From 751f052ca10b9a5f6a34579df7515118d52e9652 Mon Sep 17 00:00:00 2001 From: Sakshi Shukla Date: Tue, 18 Nov 2025 17:49:54 +0000 Subject: [PATCH] Your commit message here --- .github/ISSUE_TEMPLATE/bug-report.md | 52 +- .github/ISSUE_TEMPLATE/cut-release.md | 306 +- .github/ISSUE_TEMPLATE/feature.md | 22 +- .github/ISSUE_TEMPLATE/lead.md | 180 +- .../post-release-branch-creation.md | 156 +- .github/ISSUE_TEMPLATE/release-manager.md | 234 +- .../release-team-lead-progress.md | 510 +- .github/PULL_REQUEST_TEMPLATE.md | 66 +- .github/SECURITY.md | 28 +- .../krel-release-notes-validate.yaml | 252 +- CONTRIBUTING.md | 1216 +- LICENSE | 402 +- OWNERS | 36 +- OWNERS_ALIASES | 88 +- README.md | 68 +- SECURITY.md | 44 +- SECURITY_CONTACTS | 36 +- code-of-conduct.md | 6 +- leads/onboarding.md | 168 +- release-blocking-jobs.md | 314 +- release-engineering/OWNERS | 18 +- release-engineering/README.md | 420 +- release-engineering/artifacts.md | 2810 +-- .../baseimage-exception-list.md | 144 +- release-engineering/gcp.md | 114 +- release-engineering/handbooks/go.md | 342 +- .../handbooks/k8s-release-cut.md | 1188 +- .../handbooks/post-release-branch-creation.md | 796 +- release-engineering/platforms/README.md | 168 +- release-engineering/platforms/guide.md | 6 +- release-engineering/release-notes.md | 52 +- .../role-handbooks/branch-manager.md | 1552 +- .../role-handbooks/patch-release-team.md | 1208 +- release-engineering/versioning.md | 252 +- release-team/OWNERS | 22 +- release-team/README.md | 654 +- release-team/deprecated/README.md | 14 +- release-team/deprecated/bug-triage/README.md | 640 +- release-team/deprecated/ci-signal/README.md | 696 +- .../deprecated/ci-signal/one-pager.md | 58 +- .../ci-signal/upgrade-job-versions.md | 320 +- .../deprecated/release-notes/README.md | 608 +- .../deprecated/release-notes/editing-flow.md | 510 +- .../release-notes/known-issues-bucket.md | 48 +- .../release-notes/relnotes-template.md | 72 +- .../release-notes/sig-leads-email.md | 66 +- .../sync-bug-triage-github-project-beta.sh | 392 +- .../sync-enhancements-github-project-beta.sh | 314 +- release-team/release-team-onboarding.md | 144 +- release-team/release-team-removal.md | 104 +- release-team/release-team-selection.md | 262 +- release-team/release-team.svg | 284 +- release-team/role-handbooks/README.md | 12 +- .../role-handbooks/communications/OWNERS | 12 +- .../role-handbooks/communications/README.md | 926 +- .../templates/feature-blog-messages.md | 222 +- .../templates/mid-cycle-blog-sneak-peek.md | 180 +- .../communications/templates/pr-email.md | 36 +- .../communications/templates/release-blog.md | 418 +- .../release-highlights-discussion.md | 28 +- .../release-highlights-tracking-issue.md | 138 +- .../sig-release-highlight-message.md | 28 +- .../communications/templates/webinar-email.md | 32 +- .../templates/writing-buddy-assignment.md | 40 +- .../communications/tips-and-tricks.md | 174 +- release-team/role-handbooks/docs/OWNERS | 12 +- release-team/role-handbooks/docs/README.md | 422 +- .../role-handbooks/docs/Release-Timeline.md | 2030 +- .../docs/branch-sync-script/README.md | 68 +- .../docs/branch-sync-script/branch-sync.sh | 280 +- .../role-handbooks/docs/editing-flow.md | 514 +- .../docs/how-tos/Take-over-a-doc-pr.md | 98 +- .../docs/known-issues-bucket.md | 48 +- .../role-handbooks/docs/relnotes-template.md | 72 +- .../role-handbooks/docs/sig-leads-email.md | 66 +- .../role-handbooks/emeritus-adviser/README.md | 208 +- .../role-handbooks/enhancements/OWNERS | 12 +- .../role-handbooks/enhancements/README.md | 1766 +- .../role-handbooks/enhancements/TODO.md | 22 +- .../role-handbooks/release-signal/OWNERS | 12 +- .../role-handbooks/release-signal/README.md | 1260 +- .../release-signal/one-pager.md | 140 +- .../release-signal/project-boards.md | 294 +- .../release-team-lead/README.md | 532 +- release-team/shadows.md | 258 +- releases/EXCEPTIONS.md | 198 +- releases/OWNERS | 22 +- releases/release-1.10/README.md | 872 +- .../burndown_meeting_minutes_archive.md | 7952 +++---- releases/release-1.10/exceptions.yaml | 76 +- releases/release-1.10/features.csv | 66 +- releases/release-1.10/release-1.10.md | 2 +- releases/release-1.10/release-notes-draft.md | 1988 +- releases/release-1.10/release_team.md | 30 +- releases/release-1.11/README.md | 300 +- releases/release-1.11/exceptions.yaml | 34 +- releases/release-1.11/features.csv | 56 +- releases/release-1.11/release-1.11.md | 2 +- releases/release-1.11/release_team.md | 40 +- releases/release-1.12/README.md | 294 +- releases/release-1.12/features.csv | 94 +- releases/release-1.12/release-1.12.md | 2 +- releases/release-1.12/release-notes-draft.md | 1160 +- releases/release-1.12/release_team.md | 40 +- releases/release-1.13/README.md | 302 +- releases/release-1.13/release-notes-draft.md | 918 +- releases/release-1.13/release_team.md | 26 +- releases/release-1.14/README.md | 456 +- releases/release-1.14/exception.yaml | 158 +- releases/release-1.14/release-notes-draft.md | 860 +- releases/release-1.14/release_team.md | 24 +- releases/release-1.15/README.md | 390 +- releases/release-1.15/release-notes-draft.md | 1104 +- releases/release-1.15/release_team.md | 36 +- releases/release-1.16/README.md | 398 +- releases/release-1.16/exceptions.yaml | 82 +- releases/release-1.16/release-notes-draft.md | 1342 +- releases/release-1.16/release_team.md | 34 +- releases/release-1.17/README.md | 194 +- releases/release-1.17/exceptions.yaml | 84 +- releases/release-1.17/release-notes-draft.md | 1276 +- releases/release-1.17/release_team.md | 32 +- releases/release-1.18/README.md | 222 +- releases/release-1.18/exceptions.yaml | 148 +- releases/release-1.18/release-notes-draft.md | 942 +- releases/release-1.18/release_team.md | 32 +- releases/release-1.19/README.md | 230 +- releases/release-1.19/exceptions.yaml | 124 +- releases/release-1.19/release-notes-draft.md | 1780 +- .../release-notes/maps/pr-81185-map.yaml | 6 +- .../release-notes/maps/pr-88985-map.yaml | 6 +- .../release-notes/maps/pr-89367-map.yaml | 6 +- .../release-notes/maps/pr-89401-map.yaml | 8 +- .../release-notes/maps/pr-90502-map.yaml | 6 +- .../release-notes/maps/pr-90660-map.yaml | 8 +- .../release-notes/maps/pr-91097-map.yaml | 8 +- .../release-notes/maps/pr-91357-map.yaml | 8 +- .../release-notes/maps/pr-91373-map.yaml | 8 +- .../release-notes/maps/pr-91504-map.yaml | 8 +- .../release-notes/maps/pr-91562-map.yaml | 6 +- .../release-notes/maps/pr-91748-map.yaml | 8 +- .../release-notes/maps/pr-91945-map.yaml | 6 +- .../release-notes/maps/pr-92017-map.yaml | 12 +- .../release-notes/maps/pr-92440-map.yaml | 4 +- .../release-notes/maps/pr-92604-map.yaml | 8 +- releases/release-1.19/release_team.md | 32 +- releases/release-1.20/README.md | 228 +- releases/release-1.20/exceptions.yaml | 314 +- .../meeting-updates/2020-11-04.md | 338 +- .../meeting-updates/2020-11-06.md | 346 +- .../meeting-updates/2020-11-09.md | 1748 +- .../meeting-updates/2020-11-11.md | 2572 +-- .../meeting-updates/2020-11-13.md | 384 +- .../meeting-updates/2020-11-16.md | 340 +- .../meeting-updates/2020-11-17.md | 364 +- .../meeting-updates/2020-11-18.md | 356 +- .../meeting-updates/2020-11-19.md | 360 +- .../meeting-updates/2020-11-20.md | 342 +- .../meeting-updates/2020-11-23.md | 342 +- .../meeting-updates/2020-11-24.md | 152 +- .../meeting-updates/2020-11-25.md | 388 +- .../meeting-updates/2020-11-27.md | 328 +- .../release-1.20/meeting-updates/TEMPLATE.md | 328 +- .../meeting-updates/ci-status/rel-full.md | 2026 +- .../meeting-updates/ci-status/rel-summary.md | 16 +- .../release-1.20/release-notes-draft.json | 8492 ++++---- releases/release-1.20/release-notes-draft.md | 1422 +- .../release-notes/maps/pr-90014-map.yaml | 6 +- .../release-notes/maps/pr-91469-map.yaml | 6 +- .../release-notes/maps/pr-92027-map.yaml | 6 +- .../release-notes/maps/pr-92878-map.yaml | 6 +- .../release-notes/maps/pr-93066-map.yaml | 12 +- .../release-notes/maps/pr-93078-map.yaml | 6 +- .../release-notes/maps/pr-93108-map.yaml | 6 +- .../release-notes/maps/pr-93384-map.yaml | 6 +- .../release-notes/maps/pr-93457-map.yaml | 6 +- .../release-notes/maps/pr-93567-map.yaml | 6 +- .../release-notes/maps/pr-93577-map.yaml | 6 +- .../release-notes/maps/pr-93626-map.yaml | 6 +- .../release-notes/maps/pr-93702-map.yaml | 6 +- .../release-notes/maps/pr-93837-map.yaml | 6 +- .../release-notes/maps/pr-93962-map.yaml | 6 +- .../release-notes/maps/pr-94140-map.yaml | 10 +- .../release-notes/maps/pr-94171-map.yaml | 6 +- .../release-notes/maps/pr-94180-map.yaml | 6 +- .../release-notes/maps/pr-94239-map.yaml | 6 +- .../release-notes/maps/pr-94443-map.yaml | 6 +- .../release-notes/maps/pr-94494-map.yaml | 6 +- .../release-notes/maps/pr-94504-map.yaml | 6 +- .../release-notes/maps/pr-94546-map.yaml | 6 +- .../release-notes/maps/pr-94580-map.yaml | 6 +- .../release-notes/maps/pr-94728-map.yaml | 6 +- .../release-notes/maps/pr-94730-map.yaml | 6 +- .../release-notes/maps/pr-94751-map.yaml | 6 +- .../release-notes/maps/pr-94814-map.yaml | 6 +- .../release-notes/maps/pr-94871-map.yaml | 8 +- .../release-notes/maps/pr-94903-map.yaml | 6 +- .../release-notes/maps/pr-94988-map.yaml | 6 +- .../release-notes/maps/pr-95184-map.yaml | 6 +- .../release-notes/maps/pr-95202-map.yaml | 6 +- .../release-notes/maps/pr-95245-map.yaml | 6 +- .../release-notes/maps/pr-95311-map.yaml | 6 +- .../sessions/maps-1603063594.json | 2 +- releases/release-1.20/release-team.md | 2 +- releases/release-1.20/release_team.md | 32 +- releases/release-1.21/README.md | 222 +- releases/release-1.21/exceptions.yaml | 238 +- releases/release-1.21/release-notes-draft.md | 980 +- .../release-notes/major-themes.md | 82 +- .../release-notes/maps/pr-100001-map.yaml | 8 +- .../release-notes/maps/pr-100002-map.yaml | 8 +- .../release-notes/maps/pr-100082-map.yaml | 8 +- .../release-notes/maps/pr-100163-map.yaml | 8 +- .../release-notes/maps/pr-100196-map.yaml | 6 +- .../release-notes/maps/pr-100265-map.yaml | 8 +- .../release-notes/maps/pr-100472-map.yaml | 16 +- .../release-notes/maps/pr-100563-map.yaml | 8 +- .../release-notes/maps/pr-100571-map.yaml | 8 +- .../release-notes/maps/pr-83730-map.yaml | 8 +- .../release-notes/maps/pr-91592-map.yaml | 8 +- .../release-notes/maps/pr-92817-map.yaml | 6 +- .../release-notes/maps/pr-93861-map.yaml | 12 +- .../release-notes/maps/pr-93920-map.yaml | 6 +- .../release-notes/maps/pr-94858-map.yaml | 6 +- .../release-notes/maps/pr-96021-map.yaml | 10 +- .../release-notes/maps/pr-96293-map.yaml | 18 +- .../release-notes/maps/pr-96539-map.yaml | 8 +- .../release-notes/maps/pr-96655-map.yaml | 6 +- .../release-notes/maps/pr-96689-map.yaml | 6 +- .../release-notes/maps/pr-96691-map.yaml | 8 +- .../release-notes/maps/pr-96877-map.yaml | 8 +- .../release-notes/maps/pr-97011-map.yaml | 6 +- .../release-notes/maps/pr-97096-map.yaml | 10 +- .../release-notes/maps/pr-97115-map.yaml | 6 +- .../release-notes/maps/pr-97193-map.yaml | 6 +- .../release-notes/maps/pr-97216-map.yaml | 6 +- .../release-notes/maps/pr-97244-map.yaml | 6 +- .../release-notes/maps/pr-97336-map.yaml | 10 +- .../release-notes/maps/pr-97349-map.yaml | 8 +- .../release-notes/maps/pr-97395-map.yaml | 10 +- .../release-notes/maps/pr-97408-map.yaml | 8 +- .../release-notes/maps/pr-97417-map.yaml | 6 +- .../release-notes/maps/pr-97431-map.yaml | 10 +- .../release-notes/maps/pr-97507-map.yaml | 8 +- .../release-notes/maps/pr-97509-map.yaml | 8 +- .../release-notes/maps/pr-97543-map.yaml | 6 +- .../release-notes/maps/pr-97627-map.yaml | 6 +- .../release-notes/maps/pr-97678-map.yaml | 8 +- .../release-notes/maps/pr-97686-map.yaml | 8 +- .../release-notes/maps/pr-97754-map.yaml | 6 +- .../release-notes/maps/pr-97837-map.yaml | 8 +- .../release-notes/maps/pr-97877-map.yaml | 6 +- .../release-notes/maps/pr-97888-map.yaml | 6 +- .../release-notes/maps/pr-97935-map.yaml | 10 +- .../release-notes/maps/pr-97941-map.yaml | 8 +- .../release-notes/maps/pr-98001-map.yaml | 8 +- .../release-notes/maps/pr-98033-map.yaml | 6 +- .../release-notes/maps/pr-98074-map.yaml | 8 +- .../release-notes/maps/pr-98093-map.yaml | 8 +- .../release-notes/maps/pr-98111-map.yaml | 10 +- .../release-notes/maps/pr-98116-map.yaml | 12 +- .../release-notes/maps/pr-98134-map.yaml | 8 +- .../release-notes/maps/pr-98138-map.yaml | 8 +- .../release-notes/maps/pr-98154-map.yaml | 8 +- .../release-notes/maps/pr-98169-map.yaml | 8 +- .../release-notes/maps/pr-98201-map.yaml | 6 +- .../release-notes/maps/pr-98203-map.yaml | 18 +- .../release-notes/maps/pr-98205-map.yaml | 8 +- .../release-notes/maps/pr-98243-map.yaml | 14 +- .../release-notes/maps/pr-98252-map.yaml | 8 +- .../release-notes/maps/pr-98257-map.yaml | 6 +- .../release-notes/maps/pr-98259-map.yaml | 8 +- .../release-notes/maps/pr-98277-map.yaml | 6 +- .../release-notes/maps/pr-98301-map.yaml | 6 +- .../release-notes/maps/pr-98305-map.yaml | 8 +- .../release-notes/maps/pr-98324-map.yaml | 8 +- .../release-notes/maps/pr-98334-map.yaml | 8 +- .../release-notes/maps/pr-98358-map.yaml | 8 +- .../release-notes/maps/pr-98376-map.yaml | 10 +- .../release-notes/maps/pr-98458-map.yaml | 14 +- .../release-notes/maps/pr-98526-map.yaml | 6 +- .../release-notes/maps/pr-98546-map.yaml | 24 +- .../release-notes/maps/pr-98576-map.yaml | 6 +- .../release-notes/maps/pr-98589-map.yaml | 8 +- .../release-notes/maps/pr-98627-map.yaml | 8 +- .../release-notes/maps/pr-98643-map.yaml | 8 +- .../release-notes/maps/pr-98676-map.yaml | 8 +- .../release-notes/maps/pr-98678-map.yaml | 6 +- .../release-notes/maps/pr-98715-map.yaml | 8 +- .../release-notes/maps/pr-98727-map.yaml | 10 +- .../release-notes/maps/pr-98730-map.yaml | 8 +- .../release-notes/maps/pr-98750-map.yaml | 8 +- .../release-notes/maps/pr-98753-map.yaml | 6 +- .../release-notes/maps/pr-98809-map.yaml | 8 +- .../release-notes/maps/pr-98839-map.yaml | 6 +- .../release-notes/maps/pr-98847-map.yaml | 8 +- .../release-notes/maps/pr-98850-map.yaml | 8 +- .../release-notes/maps/pr-98878-map.yaml | 6 +- .../release-notes/maps/pr-98911-map.yaml | 6 +- .../release-notes/maps/pr-98931-map.yaml | 8 +- .../release-notes/maps/pr-98939-map.yaml | 10 +- .../release-notes/maps/pr-98946-map.yaml | 14 +- .../release-notes/maps/pr-98952-map.yaml | 8 +- .../release-notes/maps/pr-98968-map.yaml | 8 +- .../release-notes/maps/pr-98969-map.yaml | 10 +- .../release-notes/maps/pr-98990-map.yaml | 8 +- .../release-notes/maps/pr-98993-map.yaml | 10 +- .../release-notes/maps/pr-98999-map.yaml | 8 +- .../release-notes/maps/pr-99001-map.yaml | 8 +- .../release-notes/maps/pr-99006-map.yaml | 8 +- .../release-notes/maps/pr-99032-map.yaml | 8 +- .../release-notes/maps/pr-99045-map.yaml | 12 +- .../release-notes/maps/pr-99060-map.yaml | 6 +- .../release-notes/maps/pr-99068-map.yaml | 6 +- .../release-notes/maps/pr-99127-map.yaml | 6 +- .../release-notes/maps/pr-99158-map.yaml | 6 +- .../release-notes/maps/pr-99163-map.yaml | 12 +- .../release-notes/maps/pr-99194-map.yaml | 8 +- .../release-notes/maps/pr-99217-map.yaml | 6 +- .../release-notes/maps/pr-99236-map.yaml | 8 +- .../release-notes/maps/pr-99242-map.yaml | 6 +- .../release-notes/maps/pr-99264-map.yaml | 8 +- .../release-notes/maps/pr-99275-map.yaml | 12 +- .../release-notes/maps/pr-99294-map.yaml | 8 +- .../release-notes/maps/pr-99298-map.yaml | 6 +- .../release-notes/maps/pr-99341-map.yaml | 10 +- .../release-notes/maps/pr-99479-map.yaml | 8 +- .../release-notes/maps/pr-99550-map.yaml | 6 +- .../release-notes/maps/pr-99563-map.yaml | 8 +- .../release-notes/maps/pr-99585-map.yaml | 10 +- .../release-notes/maps/pr-99600-map.yaml | 6 +- .../release-notes/maps/pr-99607-map.yaml | 8 +- .../release-notes/maps/pr-99641-map.yaml | 10 +- .../release-notes/maps/pr-99651-map.yaml | 6 +- .../release-notes/maps/pr-99654-map.yaml | 10 +- .../release-notes/maps/pr-99658-map.yaml | 8 +- .../release-notes/maps/pr-99662-map.yaml | 12 +- .../release-notes/maps/pr-99732-map.yaml | 10 +- .../release-notes/maps/pr-99735-map.yaml | 6 +- .../release-notes/maps/pr-99746-map.yaml | 8 +- .../release-notes/maps/pr-99785-map.yaml | 10 +- .../release-notes/maps/pr-99788-map.yaml | 12 +- .../release-notes/maps/pr-99823-map.yaml | 8 +- .../release-notes/maps/pr-99830-map.yaml | 8 +- .../release-notes/maps/pr-99833-map.yaml | 8 +- .../release-notes/maps/pr-99836-map.yaml | 8 +- .../release-notes/maps/pr-99838-map.yaml | 10 +- .../release-notes/maps/pr-99848-map.yaml | 8 +- .../release-notes/maps/pr-99855-map.yaml | 8 +- .../release-notes/maps/pr-99861-map.yaml | 8 +- .../release-notes/maps/pr-99870-map.yaml | 10 +- .../release-notes/maps/pr-99885-map.yaml | 8 +- .../release-notes/maps/pr-99944-map.yaml | 8 +- .../release-notes/maps/pr-99969-map.yaml | 6 +- .../release-notes/maps/pr-99970-map.yaml | 8 +- .../release-notes/maps/pr-99974-map.yaml | 8 +- .../release-notes/maps/pr-99976-map.yaml | 8 +- .../release-notes/maps/pr-99994-map.yaml | 8 +- .../release-notes/release-notes-draft.json | 13056 ++++++------ .../release-notes/release-notes-draft.md | 980 +- releases/release-1.21/release-team.md | 32 +- releases/release-1.22/README.md | 224 +- releases/release-1.22/exceptions.yaml | 330 +- .../release-notes/major-themes.md | 140 +- .../release-notes/maps/pr-100085-map.yaml | 6 +- .../release-notes/maps/pr-100100-map.yaml | 6 +- .../release-notes/maps/pr-100101-map.yaml | 6 +- .../release-notes/maps/pr-100136-map.yaml | 10 +- .../release-notes/maps/pr-100139-map.yaml | 8 +- .../release-notes/maps/pr-100141-map.yaml | 8 +- .../release-notes/maps/pr-100142-map.yaml | 4 +- .../release-notes/maps/pr-100148-map.yaml | 10 +- .../release-notes/maps/pr-100183-map.yaml | 6 +- .../release-notes/maps/pr-100200-map.yaml | 8 +- .../release-notes/maps/pr-100206-map.yaml | 6 +- .../release-notes/maps/pr-100234-map.yaml | 8 +- .../release-notes/maps/pr-100262-map.yaml | 6 +- .../release-notes/maps/pr-100267-map.yaml | 6 +- .../release-notes/maps/pr-100292-map.yaml | 12 +- .../release-notes/maps/pr-100339-map.yaml | 8 +- .../release-notes/maps/pr-100350-map.yaml | 10 +- .../release-notes/maps/pr-100369-map.yaml | 6 +- .../release-notes/maps/pr-100404-map.yaml | 6 +- .../release-notes/maps/pr-100412-map.yaml | 6 +- .../release-notes/maps/pr-100435-map.yaml | 8 +- .../release-notes/maps/pr-100488-map.yaml | 8 +- .../release-notes/maps/pr-100500-map.yaml | 6 +- .../release-notes/maps/pr-100565-map.yaml | 8 +- .../release-notes/maps/pr-100568-map.yaml | 6 +- .../release-notes/maps/pr-100599-map.yaml | 6 +- .../release-notes/maps/pr-100608-map.yaml | 6 +- .../release-notes/maps/pr-100612-map.yaml | 6 +- .../release-notes/maps/pr-100635-map.yaml | 6 +- .../release-notes/maps/pr-100638-map.yaml | 6 +- .../release-notes/maps/pr-100644-map.yaml | 8 +- .../release-notes/maps/pr-100651-map.yaml | 8 +- .../release-notes/maps/pr-100678-map.yaml | 8 +- .../release-notes/maps/pr-100684-map.yaml | 8 +- .../release-notes/maps/pr-100694-map.yaml | 8 +- .../release-notes/maps/pr-100724-map.yaml | 8 +- .../release-notes/maps/pr-100728-map.yaml | 8 +- .../release-notes/maps/pr-100731-map.yaml | 6 +- .../release-notes/maps/pr-100784-map.yaml | 6 +- .../release-notes/maps/pr-100842-map.yaml | 4 +- .../release-notes/maps/pr-100861-map.yaml | 12 +- .../release-notes/maps/pr-100907-map.yaml | 8 +- .../release-notes/maps/pr-100913-map.yaml | 6 +- .../release-notes/maps/pr-100939-map.yaml | 6 +- .../release-notes/maps/pr-100944-map.yaml | 6 +- .../release-notes/maps/pr-100956-map.yaml | 6 +- .../release-notes/maps/pr-100959-map.yaml | 10 +- .../release-notes/maps/pr-100976-map.yaml | 12 +- .../release-notes/maps/pr-101005-map.yaml | 6 +- .../release-notes/maps/pr-101025-map.yaml | 6 +- .../release-notes/maps/pr-101030-map.yaml | 8 +- .../release-notes/maps/pr-101048-map.yaml | 8 +- .../release-notes/maps/pr-101074-map.yaml | 8 +- .../release-notes/maps/pr-101076-map.yaml | 8 +- .../release-notes/maps/pr-101080-map.yaml | 6 +- .../release-notes/maps/pr-101082-map.yaml | 8 +- .../release-notes/maps/pr-101084-map.yaml | 6 +- .../release-notes/maps/pr-101093-map.yaml | 8 +- .../release-notes/maps/pr-101110-map.yaml | 8 +- .../release-notes/maps/pr-101120-map.yaml | 6 +- .../release-notes/maps/pr-101129-map.yaml | 12 +- .../release-notes/maps/pr-101151-map.yaml | 6 +- .../release-notes/maps/pr-101160-map.yaml | 6 +- .../release-notes/maps/pr-101171-map.yaml | 6 +- .../release-notes/maps/pr-101181-map.yaml | 6 +- .../release-notes/maps/pr-101186-map.yaml | 8 +- .../release-notes/maps/pr-101187-map.yaml | 6 +- .../release-notes/maps/pr-101203-map.yaml | 6 +- .../release-notes/maps/pr-101208-map.yaml | 10 +- .../release-notes/maps/pr-101235-map.yaml | 6 +- .../release-notes/maps/pr-101252-map.yaml | 10 +- .../release-notes/maps/pr-101256-map.yaml | 8 +- .../release-notes/maps/pr-101271-map.yaml | 8 +- .../release-notes/maps/pr-101272-map.yaml | 6 +- .../release-notes/maps/pr-101292-map.yaml | 10 +- .../release-notes/maps/pr-101294-map.yaml | 8 +- .../release-notes/maps/pr-101296-map.yaml | 8 +- .../release-notes/maps/pr-101316-map.yaml | 6 +- .../release-notes/maps/pr-101342-map.yaml | 10 +- .../release-notes/maps/pr-101377-map.yaml | 8 +- .../release-notes/maps/pr-101394-map.yaml | 6 +- .../release-notes/maps/pr-101398-map.yaml | 8 +- .../release-notes/maps/pr-101411-map.yaml | 8 +- .../release-notes/maps/pr-101420-map.yaml | 6 +- .../release-notes/maps/pr-101436-map.yaml | 6 +- .../release-notes/maps/pr-101441-map.yaml | 8 +- .../release-notes/maps/pr-101449-map.yaml | 10 +- .../release-notes/maps/pr-101477-map.yaml | 8 +- .../release-notes/maps/pr-101496-map.yaml | 8 +- .../release-notes/maps/pr-101510-map.yaml | 6 +- .../release-notes/maps/pr-101534-map.yaml | 8 +- .../release-notes/maps/pr-101537-map.yaml | 8 +- .../release-notes/maps/pr-101542-map.yaml | 12 +- .../release-notes/maps/pr-101547-map.yaml | 8 +- .../release-notes/maps/pr-101560-map.yaml | 6 +- .../release-notes/maps/pr-101578-map.yaml | 10 +- .../release-notes/maps/pr-101579-map.yaml | 8 +- .../release-notes/maps/pr-101581-map.yaml | 8 +- .../release-notes/maps/pr-101587-map.yaml | 16 +- .../release-notes/maps/pr-101600-map.yaml | 10 +- .../release-notes/maps/pr-101647-map.yaml | 12 +- .../release-notes/maps/pr-101669-map.yaml | 6 +- .../release-notes/maps/pr-101685-map.yaml | 6 +- .../release-notes/maps/pr-101688-map.yaml | 8 +- .../release-notes/maps/pr-101711-map.yaml | 10 +- .../release-notes/maps/pr-101742-map.yaml | 6 +- .../release-notes/maps/pr-101752-map.yaml | 6 +- .../release-notes/maps/pr-101767-map.yaml | 6 +- .../release-notes/maps/pr-101773-map.yaml | 8 +- .../release-notes/maps/pr-101822-map.yaml | 14 +- .../release-notes/maps/pr-101857-map.yaml | 8 +- .../release-notes/maps/pr-101862-map.yaml | 8 +- .../release-notes/maps/pr-101915-map.yaml | 18 +- .../release-notes/maps/pr-101923-map.yaml | 10 +- .../release-notes/maps/pr-101938-map.yaml | 8 +- .../release-notes/maps/pr-101947-map.yaml | 6 +- .../release-notes/maps/pr-101950-map.yaml | 8 +- .../release-notes/maps/pr-101977-map.yaml | 6 +- .../release-notes/maps/pr-101992-map.yaml | 8 +- .../release-notes/maps/pr-102005-map.yaml | 6 +- .../release-notes/maps/pr-102022-map.yaml | 6 +- .../release-notes/maps/pr-102028-map.yaml | 8 +- .../release-notes/maps/pr-102030-map.yaml | 6 +- .../release-notes/maps/pr-102039-map.yaml | 6 +- .../release-notes/maps/pr-102059-map.yaml | 8 +- .../release-notes/maps/pr-102062-map.yaml | 6 +- .../release-notes/maps/pr-102063-map.yaml | 8 +- .../release-notes/maps/pr-102067-map.yaml | 10 +- .../release-notes/maps/pr-102071-map.yaml | 8 +- .../release-notes/maps/pr-102083-map.yaml | 6 +- .../release-notes/maps/pr-102108-map.yaml | 10 +- .../release-notes/maps/pr-102121-map.yaml | 10 +- .../release-notes/maps/pr-102133-map.yaml | 12 +- .../release-notes/maps/pr-102147-map.yaml | 6 +- .../release-notes/maps/pr-102158-map.yaml | 12 +- .../release-notes/maps/pr-102159-map.yaml | 6 +- .../release-notes/maps/pr-102171-map.yaml | 8 +- .../release-notes/maps/pr-102176-map.yaml | 8 +- .../release-notes/maps/pr-102193-map.yaml | 6 +- .../release-notes/maps/pr-102201-map.yaml | 6 +- .../release-notes/maps/pr-102239-map.yaml | 8 +- .../release-notes/maps/pr-102297-map.yaml | 8 +- .../release-notes/maps/pr-102302-map.yaml | 12 +- .../release-notes/maps/pr-102323-map.yaml | 8 +- .../release-notes/maps/pr-102328-map.yaml | 6 +- .../release-notes/maps/pr-102332-map.yaml | 6 +- .../release-notes/maps/pr-102363-map.yaml | 6 +- .../release-notes/maps/pr-102366-map.yaml | 8 +- .../release-notes/maps/pr-102377-map.yaml | 6 +- .../release-notes/maps/pr-102386-map.yaml | 6 +- .../release-notes/maps/pr-102412-map.yaml | 12 +- .../release-notes/maps/pr-102414-map.yaml | 8 +- .../release-notes/maps/pr-102437-map.yaml | 8 +- .../release-notes/maps/pr-102441-map.yaml | 6 +- .../release-notes/maps/pr-102443-map.yaml | 6 +- .../release-notes/maps/pr-102444-map.yaml | 8 +- .../release-notes/maps/pr-102461-map.yaml | 6 +- .../release-notes/maps/pr-102466-map.yaml | 8 +- .../release-notes/maps/pr-102467-map.yaml | 6 +- .../release-notes/maps/pr-102489-map.yaml | 6 +- .../release-notes/maps/pr-102498-map.yaml | 6 +- .../release-notes/maps/pr-102502-map.yaml | 18 +- .../release-notes/maps/pr-102509-map.yaml | 12 +- .../release-notes/maps/pr-102516-map.yaml | 8 +- .../release-notes/maps/pr-102529-map.yaml | 6 +- .../release-notes/maps/pr-102539-map.yaml | 8 +- .../release-notes/maps/pr-102578-map.yaml | 6 +- .../release-notes/maps/pr-102590-map.yaml | 10 +- .../release-notes/maps/pr-102594-map.yaml | 6 +- .../release-notes/maps/pr-102598-map.yaml | 10 +- .../release-notes/maps/pr-102620-map.yaml | 6 +- .../release-notes/maps/pr-102642-map.yaml | 8 +- .../release-notes/maps/pr-102665-map.yaml | 6 +- .../release-notes/maps/pr-102677-map.yaml | 6 +- .../release-notes/maps/pr-102683-map.yaml | 8 +- .../release-notes/maps/pr-102689-map.yaml | 6 +- .../release-notes/maps/pr-102711-map.yaml | 8 +- .../release-notes/maps/pr-102722-map.yaml | 8 +- .../release-notes/maps/pr-102731-map.yaml | 8 +- .../release-notes/maps/pr-102783-map.yaml | 8 +- .../release-notes/maps/pr-102788-map.yaml | 8 +- .../release-notes/maps/pr-102795-map.yaml | 10 +- .../release-notes/maps/pr-102805-map.yaml | 10 +- .../release-notes/maps/pr-102821-map.yaml | 8 +- .../release-notes/maps/pr-102823-map.yaml | 10 +- .../release-notes/maps/pr-102825-map.yaml | 8 +- .../release-notes/maps/pr-102834-map.yaml | 6 +- .../release-notes/maps/pr-102840-map.yaml | 10 +- .../release-notes/maps/pr-102858-map.yaml | 6 +- .../release-notes/maps/pr-102873-map.yaml | 10 +- .../release-notes/maps/pr-102890-map.yaml | 6 +- .../release-notes/maps/pr-102892-map.yaml | 8 +- .../release-notes/maps/pr-102901-map.yaml | 14 +- .../release-notes/maps/pr-102925-map.yaml | 10 +- .../release-notes/maps/pr-102934-map.yaml | 8 +- .../release-notes/maps/pr-102935-map.yaml | 6 +- .../release-notes/maps/pr-102965-map.yaml | 6 +- .../release-notes/maps/pr-102970-map.yaml | 12 +- .../release-notes/maps/pr-103001-map.yaml | 6 +- .../release-notes/maps/pr-103019-map.yaml | 6 +- .../release-notes/maps/pr-103063-map.yaml | 22 +- .../release-notes/maps/pr-103082-map.yaml | 6 +- .../release-notes/maps/pr-103129-map.yaml | 8 +- .../release-notes/maps/pr-103169-map.yaml | 10 +- .../release-notes/maps/pr-103190-map.yaml | 6 +- .../release-notes/maps/pr-103244-map.yaml | 12 +- .../release-notes/maps/pr-103245-map.yaml | 10 +- .../release-notes/maps/pr-103276-map.yaml | 8 +- .../release-notes/maps/pr-103292-map.yaml | 12 +- .../release-notes/maps/pr-103306-map.yaml | 6 +- .../release-notes/maps/pr-103307-map.yaml | 8 +- .../release-notes/maps/pr-103313-map.yaml | 10 +- .../release-notes/maps/pr-103326-map.yaml | 6 +- .../release-notes/maps/pr-103383-map.yaml | 8 +- .../release-notes/maps/pr-103390-map.yaml | 8 +- .../release-notes/maps/pr-103451-map.yaml | 10 +- .../release-notes/maps/pr-103462-map.yaml | 8 +- .../release-notes/maps/pr-103514-map.yaml | 6 +- .../release-notes/maps/pr-103596-map.yaml | 8 +- .../release-notes/maps/pr-103703-map.yaml | 10 +- .../release-notes/maps/pr-103747-map.yaml | 6 +- .../release-notes/maps/pr-68004-map.yaml | 6 +- .../release-notes/maps/pr-90368-map.yaml | 10 +- .../release-notes/maps/pr-92739-map.yaml | 8 +- .../release-notes/maps/pr-94942-map.yaml | 8 +- .../release-notes/maps/pr-95286-map.yaml | 6 +- .../release-notes/maps/pr-96084-map.yaml | 6 +- .../release-notes/maps/pr-96702-map.yaml | 6 +- .../release-notes/maps/pr-96959-map.yaml | 6 +- .../release-notes/maps/pr-97238-map.yaml | 20 +- .../release-notes/maps/pr-97796-map.yaml | 6 +- .../release-notes/maps/pr-98077-map.yaml | 6 +- .../release-notes/maps/pr-98287-map.yaml | 6 +- .../release-notes/maps/pr-98350-map.yaml | 6 +- .../release-notes/maps/pr-98431-map.yaml | 8 +- .../release-notes/maps/pr-98817-map.yaml | 10 +- .../release-notes/maps/pr-98866-map.yaml | 14 +- .../release-notes/maps/pr-99023-map.yaml | 12 +- .../release-notes/maps/pr-99069-map.yaml | 6 +- .../release-notes/maps/pr-99095-map.yaml | 6 +- .../release-notes/maps/pr-99144-map.yaml | 10 +- .../release-notes/maps/pr-99178-map.yaml | 14 +- .../release-notes/maps/pr-99310-map.yaml | 8 +- .../release-notes/maps/pr-99336-map.yaml | 8 +- .../release-notes/maps/pr-99358-map.yaml | 8 +- .../release-notes/maps/pr-99364-map.yaml | 8 +- .../release-notes/maps/pr-99378-map.yaml | 6 +- .../release-notes/maps/pr-99494-map.yaml | 14 +- .../release-notes/maps/pr-99566-map.yaml | 6 +- .../release-notes/maps/pr-99582-map.yaml | 12 +- .../release-notes/maps/pr-99597-map.yaml | 10 +- .../release-notes/maps/pr-99647-map.yaml | 22 +- .../release-notes/maps/pr-99729-map.yaml | 24 +- .../release-notes/maps/pr-99775-map.yaml | 8 +- .../release-notes/maps/pr-99829-map.yaml | 6 +- .../release-notes/maps/pr-99839-map.yaml | 6 +- .../release-notes/maps/pr-99900-map.yaml | 6 +- .../release-notes/maps/pr-99915-map.yaml | 8 +- .../release-notes/maps/pr-99961-map.yaml | 10 +- .../release-notes/maps/pr-99963-map.yaml | 8 +- .../release-notes/release-notes-draft.json | 15532 +++++++------- .../release-notes/release-notes-draft.md | 1386 +- .../sessions/maps-1621875902.json | 572 +- .../sessions/maps-1623430674.json | 460 +- .../sessions/maps-1625055206.json | 348 +- .../sessions/maps-1625170626.json | 324 +- .../sessions/maps-1626107552.json | 612 +- .../sessions/maps-1626129419.json | 2668 +-- .../sessions/maps-1626709760.json | 1652 +- .../sessions/maps-1626711948.json | 68 +- .../sessions/maps-1626954300.json | 2852 +-- releases/release-1.22/release-team.md | 44 +- releases/release-1.23/README.md | 242 +- releases/release-1.23/exceptions.yaml | 214 +- .../release-notes/maps/pr-100125-map.yaml | 10 +- .../release-notes/maps/pr-100482-map.yaml | 8 +- .../release-notes/maps/pr-100720-map.yaml | 8 +- .../release-notes/maps/pr-101081-map.yaml | 6 +- .../release-notes/maps/pr-101257-map.yaml | 12 +- .../release-notes/maps/pr-101646-map.yaml | 6 +- .../release-notes/maps/pr-101789-map.yaml | 6 +- .../release-notes/maps/pr-101928-map.yaml | 10 +- .../release-notes/maps/pr-102015-map.yaml | 8 +- .../release-notes/maps/pr-102242-map.yaml | 8 +- .../release-notes/maps/pr-102507-map.yaml | 12 +- .../release-notes/maps/pr-102886-map.yaml | 6 +- .../release-notes/maps/pr-102915-map.yaml | 6 +- .../release-notes/maps/pr-102945-map.yaml | 6 +- .../release-notes/maps/pr-102981-map.yaml | 8 +- .../release-notes/maps/pr-103027-map.yaml | 10 +- .../release-notes/maps/pr-103095-map.yaml | 8 +- .../release-notes/maps/pr-103137-map.yaml | 8 +- .../release-notes/maps/pr-103162-map.yaml | 14 +- .../release-notes/maps/pr-103172-map.yaml | 10 +- .../release-notes/maps/pr-103174-map.yaml | 10 +- .../release-notes/maps/pr-103178-map.yaml | 6 +- .../release-notes/maps/pr-103231-map.yaml | 10 +- .../release-notes/maps/pr-103439-map.yaml | 6 +- .../release-notes/maps/pr-103515-map.yaml | 12 +- .../release-notes/maps/pr-103526-map.yaml | 8 +- .../release-notes/maps/pr-103538-map.yaml | 8 +- .../release-notes/maps/pr-103564-map.yaml | 8 +- .../release-notes/maps/pr-103654-map.yaml | 6 +- .../release-notes/maps/pr-103685-map.yaml | 8 +- .../release-notes/maps/pr-103692-map.yaml | 6 +- .../release-notes/maps/pr-103724-map.yaml | 8 +- .../release-notes/maps/pr-103751-map.yaml | 8 +- .../release-notes/maps/pr-103758-map.yaml | 6 +- .../release-notes/maps/pr-103793-map.yaml | 8 +- .../release-notes/maps/pr-103794-map.yaml | 6 +- .../release-notes/maps/pr-103796-map.yaml | 8 +- .../release-notes/maps/pr-103799-map.yaml | 8 +- .../release-notes/maps/pr-103801-map.yaml | 20 +- .../release-notes/maps/pr-103813-map.yaml | 10 +- .../release-notes/maps/pr-103823-map.yaml | 8 +- .../release-notes/maps/pr-103831-map.yaml | 6 +- .../release-notes/maps/pr-103843-map.yaml | 8 +- .../release-notes/maps/pr-103852-map.yaml | 8 +- .../release-notes/maps/pr-103875-map.yaml | 6 +- .../release-notes/maps/pr-103894-map.yaml | 6 +- .../release-notes/maps/pr-103917-map.yaml | 8 +- .../release-notes/maps/pr-103918-map.yaml | 10 +- .../release-notes/maps/pr-103941-map.yaml | 6 +- .../release-notes/maps/pr-103958-map.yaml | 8 +- .../release-notes/maps/pr-103997-map.yaml | 6 +- .../release-notes/maps/pr-104009-map.yaml | 6 +- .../release-notes/maps/pr-104011-map.yaml | 8 +- .../release-notes/maps/pr-104033-map.yaml | 8 +- .../release-notes/maps/pr-104045-map.yaml | 6 +- .../release-notes/maps/pr-104065-map.yaml | 12 +- .../release-notes/maps/pr-104080-map.yaml | 6 +- .../release-notes/maps/pr-104102-map.yaml | 8 +- .../release-notes/maps/pr-104103-map.yaml | 12 +- .../release-notes/maps/pr-104116-map.yaml | 6 +- .../release-notes/maps/pr-104119-map.yaml | 16 +- .../release-notes/maps/pr-104134-map.yaml | 14 +- .../release-notes/maps/pr-104142-map.yaml | 14 +- .../release-notes/maps/pr-104157-map.yaml | 10 +- .../release-notes/maps/pr-104160-map.yaml | 8 +- .../release-notes/maps/pr-104161-map.yaml | 6 +- .../release-notes/maps/pr-104163-map.yaml | 10 +- .../release-notes/maps/pr-104167-map.yaml | 10 +- .../release-notes/maps/pr-104168-map.yaml | 8 +- .../release-notes/maps/pr-104182-map.yaml | 8 +- .../release-notes/maps/pr-104185-map.yaml | 6 +- .../release-notes/maps/pr-104199-map.yaml | 6 +- .../release-notes/maps/pr-104232-map.yaml | 6 +- .../release-notes/maps/pr-104248-map.yaml | 10 +- .../release-notes/maps/pr-104251-map.yaml | 16 +- .../release-notes/maps/pr-104253-map.yaml | 6 +- .../release-notes/maps/pr-104293-map.yaml | 6 +- .../release-notes/maps/pr-104301-map.yaml | 6 +- .../release-notes/maps/pr-104327-map.yaml | 8 +- .../release-notes/maps/pr-104368-map.yaml | 16 +- .../release-notes/maps/pr-104382-map.yaml | 6 +- .../release-notes/maps/pr-104384-map.yaml | 6 +- .../release-notes/maps/pr-104389-map.yaml | 12 +- .../release-notes/maps/pr-104399-map.yaml | 6 +- .../release-notes/maps/pr-104426-map.yaml | 6 +- .../release-notes/maps/pr-104430-map.yaml | 6 +- .../release-notes/maps/pr-104438-map.yaml | 6 +- .../release-notes/maps/pr-104466-map.yaml | 8 +- .../release-notes/maps/pr-104482-map.yaml | 8 +- .../release-notes/maps/pr-104483-map.yaml | 8 +- .../release-notes/maps/pr-104503-map.yaml | 6 +- .../release-notes/maps/pr-104518-map.yaml | 6 +- .../release-notes/maps/pr-104523-map.yaml | 10 +- .../release-notes/maps/pr-104528-map.yaml | 6 +- .../release-notes/maps/pr-104551-map.yaml | 6 +- .../release-notes/maps/pr-104571-map.yaml | 6 +- .../release-notes/maps/pr-104572-map.yaml | 6 +- .../release-notes/maps/pr-104577-map.yaml | 10 +- .../release-notes/maps/pr-104590-map.yaml | 10 +- .../release-notes/maps/pr-104593-map.yaml | 6 +- .../release-notes/maps/pr-104601-map.yaml | 8 +- .../release-notes/maps/pr-104604-map.yaml | 8 +- .../release-notes/maps/pr-104605-map.yaml | 10 +- .../release-notes/maps/pr-104624-map.yaml | 8 +- .../release-notes/maps/pr-104631-map.yaml | 8 +- .../release-notes/maps/pr-104636-map.yaml | 6 +- .../release-notes/maps/pr-104664-map.yaml | 12 +- .../release-notes/maps/pr-104666-map.yaml | 8 +- .../release-notes/maps/pr-104667-map.yaml | 6 +- .../release-notes/maps/pr-104670-map.yaml | 6 +- .../release-notes/maps/pr-104691-map.yaml | 16 +- .../release-notes/maps/pr-104693-map.yaml | 6 +- .../release-notes/maps/pr-104696-map.yaml | 6 +- .../release-notes/maps/pr-104699-map.yaml | 8 +- .../release-notes/maps/pr-104705-map.yaml | 6 +- .../release-notes/maps/pr-104711-map.yaml | 6 +- .../release-notes/maps/pr-104722-map.yaml | 6 +- .../release-notes/maps/pr-104741-map.yaml | 6 +- .../release-notes/maps/pr-104742-map.yaml | 14 +- .../release-notes/maps/pr-104744-map.yaml | 6 +- .../release-notes/maps/pr-104748-map.yaml | 12 +- .../release-notes/maps/pr-104756-map.yaml | 6 +- .../release-notes/maps/pr-104782-map.yaml | 10 +- .../release-notes/maps/pr-104792-map.yaml | 8 +- .../release-notes/maps/pr-104796-map.yaml | 8 +- .../release-notes/maps/pr-104817-map.yaml | 14 +- .../release-notes/maps/pr-104847-map.yaml | 8 +- .../release-notes/maps/pr-104854-map.yaml | 16 +- .../release-notes/maps/pr-104873-map.yaml | 10 +- .../release-notes/maps/pr-104877-map.yaml | 8 +- .../release-notes/maps/pr-104891-map.yaml | 6 +- .../release-notes/maps/pr-104894-map.yaml | 6 +- .../release-notes/maps/pr-104904-map.yaml | 6 +- .../release-notes/maps/pr-104908-map.yaml | 6 +- .../release-notes/maps/pr-104915-map.yaml | 8 +- .../release-notes/maps/pr-104923-map.yaml | 10 +- .../release-notes/maps/pr-104928-map.yaml | 6 +- .../release-notes/maps/pr-104931-map.yaml | 6 +- .../release-notes/maps/pr-104932-map.yaml | 6 +- .../release-notes/maps/pr-104942-map.yaml | 8 +- .../release-notes/maps/pr-104944-map.yaml | 6 +- .../release-notes/maps/pr-104969-map.yaml | 8 +- .../release-notes/maps/pr-104970-map.yaml | 6 +- .../release-notes/maps/pr-104983-map.yaml | 24 +- .../release-notes/maps/pr-104986-map.yaml | 10 +- .../release-notes/maps/pr-105003-map.yaml | 8 +- .../release-notes/maps/pr-105012-map.yaml | 8 +- .../release-notes/maps/pr-105034-map.yaml | 10 +- .../release-notes/maps/pr-105035-map.yaml | 6 +- .../release-notes/maps/pr-105042-map.yaml | 8 +- .../release-notes/maps/pr-105046-map.yaml | 8 +- .../release-notes/maps/pr-105069-map.yaml | 8 +- .../release-notes/maps/pr-105076-map.yaml | 20 +- .../release-notes/maps/pr-105107-map.yaml | 8 +- .../release-notes/maps/pr-105140-map.yaml | 10 +- .../release-notes/maps/pr-105156-map.yaml | 18 +- .../release-notes/maps/pr-105158-map.yaml | 22 +- .../release-notes/maps/pr-105185-map.yaml | 6 +- .../release-notes/maps/pr-105188-map.yaml | 10 +- .../release-notes/maps/pr-105196-map.yaml | 8 +- .../release-notes/maps/pr-105197-map.yaml | 12 +- .../release-notes/maps/pr-105211-map.yaml | 10 +- .../release-notes/maps/pr-105213-map.yaml | 8 +- .../release-notes/maps/pr-105214-map.yaml | 8 +- .../release-notes/maps/pr-105215-map.yaml | 6 +- .../release-notes/maps/pr-105219-map.yaml | 6 +- .../release-notes/maps/pr-105222-map.yaml | 8 +- .../release-notes/maps/pr-105245-map.yaml | 6 +- .../release-notes/maps/pr-105253-map.yaml | 6 +- .../release-notes/maps/pr-105267-map.yaml | 10 +- .../release-notes/maps/pr-105295-map.yaml | 12 +- .../release-notes/maps/pr-105327-map.yaml | 8 +- .../release-notes/maps/pr-105352-map.yaml | 6 +- .../release-notes/maps/pr-105396-map.yaml | 8 +- .../release-notes/maps/pr-105405-map.yaml | 6 +- .../release-notes/maps/pr-105421-map.yaml | 8 +- .../release-notes/maps/pr-105424-map.yaml | 12 +- .../release-notes/maps/pr-105445-map.yaml | 6 +- .../release-notes/maps/pr-105462-map.yaml | 6 +- .../release-notes/maps/pr-105466-map.yaml | 6 +- .../release-notes/maps/pr-105474-map.yaml | 8 +- .../release-notes/maps/pr-105479-map.yaml | 8 +- .../release-notes/maps/pr-105484-map.yaml | 6 +- .../release-notes/maps/pr-105490-map.yaml | 8 +- .../release-notes/maps/pr-105495-map.yaml | 8 +- .../release-notes/maps/pr-105511-map.yaml | 10 +- .../release-notes/maps/pr-105563-map.yaml | 6 +- .../release-notes/maps/pr-105569-map.yaml | 8 +- .../release-notes/maps/pr-105606-map.yaml | 6 +- .../release-notes/maps/pr-105609-map.yaml | 8 +- .../release-notes/maps/pr-105631-map.yaml | 12 +- .../release-notes/maps/pr-105649-map.yaml | 8 +- .../release-notes/maps/pr-105666-map.yaml | 6 +- .../release-notes/maps/pr-105673-map.yaml | 6 +- .../release-notes/maps/pr-105676-map.yaml | 6 +- .../release-notes/maps/pr-105682-map.yaml | 6 +- .../release-notes/maps/pr-105687-map.yaml | 6 +- .../release-notes/maps/pr-105711-map.yaml | 10 +- .../release-notes/maps/pr-105712-map.yaml | 6 +- .../release-notes/maps/pr-105734-map.yaml | 6 +- .../release-notes/maps/pr-105773-map.yaml | 8 +- .../release-notes/maps/pr-105776-map.yaml | 6 +- .../release-notes/maps/pr-105777-map.yaml | 6 +- .../release-notes/maps/pr-105794-map.yaml | 8 +- .../release-notes/maps/pr-105839-map.yaml | 6 +- .../release-notes/maps/pr-105845-map.yaml | 8 +- .../release-notes/maps/pr-105851-map.yaml | 6 +- .../release-notes/maps/pr-105855-map.yaml | 10 +- .../release-notes/maps/pr-105857-map.yaml | 10 +- .../release-notes/maps/pr-105885-map.yaml | 8 +- .../release-notes/maps/pr-105888-map.yaml | 8 +- .../release-notes/maps/pr-105896-map.yaml | 6 +- .../release-notes/maps/pr-105898-map.yaml | 8 +- .../release-notes/maps/pr-105908-map.yaml | 16 +- .../release-notes/maps/pr-105913-map.yaml | 6 +- .../release-notes/maps/pr-105915-map.yaml | 6 +- .../release-notes/maps/pr-105916-map.yaml | 6 +- .../release-notes/maps/pr-105931-map.yaml | 8 +- .../release-notes/maps/pr-105940-map.yaml | 6 +- .../release-notes/maps/pr-105945-map.yaml | 8 +- .../release-notes/maps/pr-105980-map.yaml | 8 +- .../release-notes/maps/pr-105999-map.yaml | 6 +- .../release-notes/maps/pr-106058-map.yaml | 6 +- .../release-notes/maps/pr-106089-map.yaml | 12 +- .../release-notes/maps/pr-106098-map.yaml | 8 +- .../release-notes/maps/pr-106219-map.yaml | 6 +- .../release-notes/maps/pr-106271-map.yaml | 6 +- .../release-notes/maps/pr-106301-map.yaml | 8 +- .../release-notes/maps/pr-106317-map.yaml | 6 +- .../release-notes/maps/pr-106501-map.yaml | 8 +- .../release-notes/maps/pr-106507-map.yaml | 8 +- .../release-notes/maps/pr-106510-map.yaml | 6 +- .../release-notes/maps/pr-106520-map.yaml | 8 +- .../release-notes/maps/pr-106661-map.yaml | 8 +- .../release-notes/maps/pr-106808-map.yaml | 6 +- .../release-notes/maps/pr-92433-map.yaml | 6 +- .../release-notes/maps/pr-92853-map.yaml | 6 +- .../release-notes/maps/pr-92989-map.yaml | 6 +- .../release-notes/maps/pr-95128-map.yaml | 8 +- .../release-notes/maps/pr-96345-map.yaml | 16 +- .../release-notes/maps/pr-96684-map.yaml | 14 +- .../release-notes/maps/pr-97350-map.yaml | 8 +- .../release-notes/maps/pr-97415-map.yaml | 6 +- .../release-notes/maps/pr-98913-map.yaml | 6 +- .../release-notes/maps/pr-99273-map.yaml | 6 +- .../release-notes/maps/pr-99557-map.yaml | 6 +- .../release-notes/maps/pr-99728-map.yaml | 8 +- .../release-notes/release-notes-draft.json | 13368 ++++++------ .../release-notes/release-notes-draft.md | 1014 +- .../sessions/maps-1629741951.json | 492 +- .../sessions/maps-1632072296.json | 428 +- .../sessions/maps-1633406937.json | 1124 +- .../sessions/maps-1635354988.json | 20 +- .../sessions/maps-1636752000.json | 660 +- .../sessions/maps-1637187438.json | 1772 +- .../sessions/maps-1637365719.json | 652 +- .../sessions/maps-1637950799.json | 76 +- .../sessions/maps-1638814441.json | 28 +- releases/release-1.23/release-team.md | 34 +- releases/release-1.24/README.md | 254 +- releases/release-1.24/logo/README.md | 14 +- releases/release-1.24/logo/main-logo.svg | 340 +- releases/release-1.24/logo/small-logo.svg | 284 +- .../release-notes/maps/pr-101028-map.yaml | 18 +- .../release-notes/maps/pr-101218-map.yaml | 8 +- .../release-notes/maps/pr-101719-map.yaml | 6 +- .../release-notes/maps/pr-102265-map.yaml | 8 +- .../release-notes/maps/pr-103061-map.yaml | 8 +- .../release-notes/maps/pr-103516-map.yaml | 8 +- .../release-notes/maps/pr-104244-map.yaml | 8 +- .../release-notes/maps/pr-104620-map.yaml | 6 +- .../release-notes/maps/pr-104732-map.yaml | 10 +- .../release-notes/maps/pr-104736-map.yaml | 6 +- .../release-notes/maps/pr-104774-map.yaml | 6 +- .../release-notes/maps/pr-104837-map.yaml | 8 +- .../release-notes/maps/pr-104846-map.yaml | 10 +- .../release-notes/maps/pr-105070-map.yaml | 6 +- .../release-notes/maps/pr-105164-map.yaml | 6 +- .../release-notes/maps/pr-105297-map.yaml | 6 +- .../release-notes/maps/pr-105360-map.yaml | 6 +- .../release-notes/maps/pr-105517-map.yaml | 10 +- .../release-notes/maps/pr-105566-map.yaml | 6 +- .../release-notes/maps/pr-105585-map.yaml | 8 +- .../release-notes/maps/pr-105632-map.yaml | 8 +- .../release-notes/maps/pr-105853-map.yaml | 8 +- .../release-notes/maps/pr-105954-map.yaml | 10 +- .../release-notes/maps/pr-105964-map.yaml | 8 +- .../release-notes/maps/pr-106109-map.yaml | 6 +- .../release-notes/maps/pr-106164-map.yaml | 6 +- .../release-notes/maps/pr-106179-map.yaml | 6 +- .../release-notes/maps/pr-106203-map.yaml | 8 +- .../release-notes/maps/pr-106313-map.yaml | 8 +- .../release-notes/maps/pr-106366-map.yaml | 10 +- .../release-notes/maps/pr-106445-map.yaml | 6 +- .../release-notes/maps/pr-106453-map.yaml | 6 +- .../release-notes/maps/pr-106492-map.yaml | 6 +- .../release-notes/maps/pr-106497-map.yaml | 12 +- .../release-notes/maps/pr-106539-map.yaml | 10 +- .../release-notes/maps/pr-106570-map.yaml | 6 +- .../release-notes/maps/pr-106581-map.yaml | 6 +- .../release-notes/maps/pr-106600-map.yaml | 6 +- .../release-notes/maps/pr-106619-map.yaml | 6 +- .../release-notes/maps/pr-106628-map.yaml | 8 +- .../release-notes/maps/pr-106629-map.yaml | 10 +- .../release-notes/maps/pr-106648-map.yaml | 8 +- .../release-notes/maps/pr-106660-map.yaml | 8 +- .../release-notes/maps/pr-106715-map.yaml | 8 +- .../release-notes/maps/pr-106721-map.yaml | 10 +- .../release-notes/maps/pr-106725-map.yaml | 8 +- .../release-notes/maps/pr-106739-map.yaml | 6 +- .../release-notes/maps/pr-106792-map.yaml | 10 +- .../release-notes/maps/pr-106803-map.yaml | 6 +- .../release-notes/maps/pr-106816-map.yaml | 8 +- .../release-notes/maps/pr-106824-map.yaml | 6 +- .../release-notes/maps/pr-106830-map.yaml | 6 +- .../release-notes/maps/pr-106833-map.yaml | 6 +- .../release-notes/maps/pr-106838-map.yaml | 6 +- .../release-notes/maps/pr-106850-map.yaml | 8 +- .../release-notes/maps/pr-106853-map.yaml | 8 +- .../release-notes/maps/pr-106854-map.yaml | 10 +- .../release-notes/maps/pr-106859-map.yaml | 8 +- .../release-notes/maps/pr-106860-map.yaml | 8 +- .../release-notes/maps/pr-106865-map.yaml | 8 +- .../release-notes/maps/pr-106875-map.yaml | 8 +- .../release-notes/maps/pr-106882-map.yaml | 10 +- .../release-notes/maps/pr-106891-map.yaml | 14 +- .../release-notes/maps/pr-106901-map.yaml | 18 +- .../release-notes/maps/pr-106907-map.yaml | 10 +- .../release-notes/maps/pr-106911-map.yaml | 12 +- .../release-notes/maps/pr-106912-map.yaml | 8 +- .../release-notes/maps/pr-106932-map.yaml | 6 +- .../release-notes/maps/pr-106949-map.yaml | 6 +- .../release-notes/maps/pr-106954-map.yaml | 8 +- .../release-notes/maps/pr-106956-map.yaml | 6 +- .../release-notes/maps/pr-106973-map.yaml | 20 +- .../release-notes/maps/pr-106978-map.yaml | 8 +- .../release-notes/maps/pr-107003-map.yaml | 8 +- .../release-notes/maps/pr-107006-map.yaml | 6 +- .../release-notes/maps/pr-107009-map.yaml | 16 +- .../release-notes/maps/pr-107013-map.yaml | 12 +- .../release-notes/maps/pr-107025-map.yaml | 6 +- .../release-notes/maps/pr-107027-map.yaml | 8 +- .../release-notes/maps/pr-107034-map.yaml | 6 +- .../release-notes/maps/pr-107035-map.yaml | 8 +- .../release-notes/maps/pr-107044-map.yaml | 10 +- .../release-notes/maps/pr-107056-map.yaml | 8 +- .../release-notes/maps/pr-107065-map.yaml | 8 +- .../release-notes/maps/pr-107088-map.yaml | 8 +- .../release-notes/maps/pr-107090-map.yaml | 6 +- .../release-notes/maps/pr-107091-map.yaml | 10 +- .../release-notes/maps/pr-107094-map.yaml | 8 +- .../release-notes/maps/pr-107096-map.yaml | 6 +- .../release-notes/maps/pr-107103-map.yaml | 10 +- .../release-notes/maps/pr-107105-map.yaml | 6 +- .../release-notes/maps/pr-107116-map.yaml | 6 +- .../release-notes/maps/pr-107131-map.yaml | 6 +- .../release-notes/maps/pr-107141-map.yaml | 6 +- .../release-notes/maps/pr-107142-map.yaml | 6 +- .../release-notes/maps/pr-107152-map.yaml | 6 +- .../release-notes/maps/pr-107171-map.yaml | 8 +- .../release-notes/maps/pr-107178-map.yaml | 8 +- .../release-notes/maps/pr-107180-map.yaml | 10 +- .../release-notes/maps/pr-107201-map.yaml | 8 +- .../release-notes/maps/pr-107207-map.yaml | 8 +- .../release-notes/maps/pr-107221-map.yaml | 8 +- .../release-notes/maps/pr-107235-map.yaml | 12 +- .../release-notes/maps/pr-107295-map.yaml | 24 +- .../release-notes/maps/pr-107311-map.yaml | 8 +- .../release-notes/maps/pr-107317-map.yaml | 16 +- .../release-notes/maps/pr-107327-map.yaml | 10 +- .../release-notes/maps/pr-107337-map.yaml | 10 +- .../release-notes/maps/pr-107363-map.yaml | 6 +- .../release-notes/maps/pr-107384-map.yaml | 8 +- .../release-notes/maps/pr-107395-map.yaml | 6 +- .../release-notes/maps/pr-107402-map.yaml | 8 +- .../release-notes/maps/pr-107406-map.yaml | 6 +- .../release-notes/maps/pr-107410-map.yaml | 8 +- .../release-notes/maps/pr-107413-map.yaml | 8 +- .../release-notes/maps/pr-107429-map.yaml | 6 +- .../release-notes/maps/pr-107432-map.yaml | 6 +- .../release-notes/maps/pr-107439-map.yaml | 8 +- .../release-notes/maps/pr-107452-map.yaml | 6 +- .../release-notes/maps/pr-107455-map.yaml | 8 +- .../release-notes/maps/pr-107462-map.yaml | 10 +- .../release-notes/maps/pr-107467-map.yaml | 6 +- .../release-notes/maps/pr-107468-map.yaml | 10 +- .../release-notes/maps/pr-107476-map.yaml | 6 +- .../release-notes/maps/pr-107481-map.yaml | 6 +- .../release-notes/maps/pr-107507-map.yaml | 8 +- .../release-notes/maps/pr-107512-map.yaml | 10 +- .../release-notes/maps/pr-107516-map.yaml | 8 +- .../release-notes/maps/pr-107527-map.yaml | 10 +- .../release-notes/maps/pr-107533-map.yaml | 28 +- .../release-notes/maps/pr-107552-map.yaml | 12 +- .../release-notes/maps/pr-107553-map.yaml | 8 +- .../release-notes/maps/pr-107554-map.yaml | 10 +- .../release-notes/maps/pr-107559-map.yaml | 6 +- .../release-notes/maps/pr-107565-map.yaml | 8 +- .../release-notes/maps/pr-107575-map.yaml | 6 +- .../release-notes/maps/pr-107604-map.yaml | 6 +- .../release-notes/maps/pr-107607-map.yaml | 10 +- .../release-notes/maps/pr-107612-map.yaml | 6 +- .../release-notes/maps/pr-107631-map.yaml | 6 +- .../release-notes/maps/pr-107674-map.yaml | 8 +- .../release-notes/maps/pr-107681-map.yaml | 6 +- .../release-notes/maps/pr-107684-map.yaml | 8 +- .../release-notes/maps/pr-107686-map.yaml | 10 +- .../release-notes/maps/pr-107688-map.yaml | 8 +- .../release-notes/maps/pr-107695-map.yaml | 6 +- .../release-notes/maps/pr-107725-map.yaml | 20 +- .../release-notes/maps/pr-107750-map.yaml | 8 +- .../release-notes/maps/pr-107763-map.yaml | 10 +- .../release-notes/maps/pr-107775-map.yaml | 6 +- .../release-notes/maps/pr-107785-map.yaml | 8 +- .../release-notes/maps/pr-107789-map.yaml | 8 +- .../release-notes/maps/pr-107796-map.yaml | 18 +- .../release-notes/maps/pr-107806-map.yaml | 8 +- .../release-notes/maps/pr-107845-map.yaml | 8 +- .../release-notes/maps/pr-107847-map.yaml | 10 +- .../release-notes/maps/pr-107859-map.yaml | 6 +- .../release-notes/maps/pr-107880-map.yaml | 10 +- .../release-notes/maps/pr-107900-map.yaml | 8 +- .../release-notes/maps/pr-107904-map.yaml | 10 +- .../release-notes/maps/pr-107921-map.yaml | 8 +- .../release-notes/maps/pr-107956-map.yaml | 6 +- .../release-notes/maps/pr-107963-map.yaml | 6 +- .../release-notes/maps/pr-107967-map.yaml | 6 +- .../release-notes/maps/pr-107970-map.yaml | 6 +- .../release-notes/maps/pr-107974-map.yaml | 6 +- .../release-notes/maps/pr-107979-map.yaml | 6 +- .../release-notes/maps/pr-107981-map.yaml | 10 +- .../release-notes/maps/pr-107982-map.yaml | 8 +- .../release-notes/maps/pr-107986-map.yaml | 6 +- .../release-notes/maps/pr-107997-map.yaml | 8 +- .../release-notes/maps/pr-108000-map.yaml | 10 +- .../release-notes/maps/pr-108004-map.yaml | 6 +- .../release-notes/maps/pr-108013-map.yaml | 8 +- .../release-notes/maps/pr-108016-map.yaml | 10 +- .../release-notes/maps/pr-108017-map.yaml | 8 +- .../release-notes/maps/pr-108020-map.yaml | 8 +- .../release-notes/maps/pr-108027-map.yaml | 22 +- .../release-notes/maps/pr-108032-map.yaml | 8 +- .../release-notes/maps/pr-108034-map.yaml | 8 +- .../release-notes/maps/pr-108038-map.yaml | 6 +- .../release-notes/maps/pr-108045-map.yaml | 8 +- .../release-notes/maps/pr-108052-map.yaml | 8 +- .../release-notes/maps/pr-108053-map.yaml | 6 +- .../release-notes/maps/pr-108059-map.yaml | 6 +- .../release-notes/maps/pr-108062-map.yaml | 8 +- .../release-notes/maps/pr-108073-map.yaml | 8 +- .../release-notes/maps/pr-108078-map.yaml | 8 +- .../release-notes/maps/pr-108091-map.yaml | 6 +- .../release-notes/maps/pr-108092-map.yaml | 10 +- .../release-notes/maps/pr-108107-map.yaml | 12 +- .../release-notes/maps/pr-108129-map.yaml | 8 +- .../release-notes/maps/pr-108136-map.yaml | 10 +- .../release-notes/maps/pr-108138-map.yaml | 16 +- .../release-notes/maps/pr-108146-map.yaml | 8 +- .../release-notes/maps/pr-108149-map.yaml | 8 +- .../release-notes/maps/pr-108154-map.yaml | 6 +- .../release-notes/maps/pr-108167-map.yaml | 8 +- .../release-notes/maps/pr-108198-map.yaml | 8 +- .../release-notes/maps/pr-108209-map.yaml | 6 +- .../release-notes/maps/pr-108224-map.yaml | 8 +- .../release-notes/maps/pr-108253-map.yaml | 8 +- .../release-notes/maps/pr-108278-map.yaml | 6 +- .../release-notes/maps/pr-108290-map.yaml | 6 +- .../release-notes/maps/pr-108296-map.yaml | 8 +- .../release-notes/maps/pr-108309-map.yaml | 16 +- .../release-notes/maps/pr-108312-map.yaml | 8 +- .../release-notes/maps/pr-108315-map.yaml | 8 +- .../release-notes/maps/pr-108341-map.yaml | 6 +- .../release-notes/maps/pr-108350-map.yaml | 14 +- .../release-notes/maps/pr-108366-map.yaml | 16 +- .../release-notes/maps/pr-108394-map.yaml | 8 +- .../release-notes/maps/pr-108400-map.yaml | 6 +- .../release-notes/maps/pr-108410-map.yaml | 8 +- .../release-notes/maps/pr-108423-map.yaml | 10 +- .../release-notes/maps/pr-108429-map.yaml | 6 +- .../release-notes/maps/pr-108437-map.yaml | 10 +- .../release-notes/maps/pr-108441-map.yaml | 6 +- .../release-notes/maps/pr-108445-map.yaml | 12 +- .../release-notes/maps/pr-108448-map.yaml | 6 +- .../release-notes/maps/pr-108450-map.yaml | 10 +- .../release-notes/maps/pr-108455-map.yaml | 6 +- .../release-notes/maps/pr-108457-map.yaml | 6 +- .../release-notes/maps/pr-108458-map.yaml | 8 +- .../release-notes/maps/pr-108482-map.yaml | 8 +- .../release-notes/maps/pr-108486-map.yaml | 6 +- .../release-notes/maps/pr-108493-map.yaml | 12 +- .../release-notes/maps/pr-108496-map.yaml | 8 +- .../release-notes/maps/pr-108505-map.yaml | 6 +- .../release-notes/maps/pr-108506-map.yaml | 8 +- .../release-notes/maps/pr-108522-map.yaml | 8 +- .../release-notes/maps/pr-108531-map.yaml | 6 +- .../release-notes/maps/pr-108561-map.yaml | 6 +- .../release-notes/maps/pr-108611-map.yaml | 6 +- .../release-notes/maps/pr-108613-map.yaml | 8 +- .../release-notes/maps/pr-108614-map.yaml | 6 +- .../release-notes/maps/pr-108616-map.yaml | 12 +- .../release-notes/maps/pr-108617-map.yaml | 10 +- .../release-notes/maps/pr-108628-map.yaml | 6 +- .../release-notes/maps/pr-108631-map.yaml | 8 +- .../release-notes/maps/pr-108648-map.yaml | 8 +- .../release-notes/maps/pr-108662-map.yaml | 6 +- .../release-notes/maps/pr-108691-map.yaml | 8 +- .../release-notes/maps/pr-108693-map.yaml | 6 +- .../release-notes/maps/pr-108701-map.yaml | 6 +- .../release-notes/maps/pr-108717-map.yaml | 12 +- .../release-notes/maps/pr-108724-map.yaml | 6 +- .../release-notes/maps/pr-108736-map.yaml | 10 +- .../release-notes/maps/pr-108747-map.yaml | 10 +- .../release-notes/maps/pr-108748-map.yaml | 6 +- .../release-notes/maps/pr-108752-map.yaml | 8 +- .../release-notes/maps/pr-108758-map.yaml | 8 +- .../release-notes/maps/pr-108761-map.yaml | 6 +- .../release-notes/maps/pr-108769-map.yaml | 8 +- .../release-notes/maps/pr-108772-map.yaml | 8 +- .../release-notes/maps/pr-108782-map.yaml | 10 +- .../release-notes/maps/pr-108817-map.yaml | 6 +- .../release-notes/maps/pr-108820-map.yaml | 8 +- .../release-notes/maps/pr-108829-map.yaml | 6 +- .../release-notes/maps/pr-108831-map.yaml | 6 +- .../release-notes/maps/pr-108847-map.yaml | 10 +- .../release-notes/maps/pr-108859-map.yaml | 8 +- .../release-notes/maps/pr-108870-map.yaml | 20 +- .../release-notes/maps/pr-108889-map.yaml | 10 +- .../release-notes/maps/pr-108898-map.yaml | 6 +- .../release-notes/maps/pr-108919-map.yaml | 6 +- .../release-notes/maps/pr-108927-map.yaml | 6 +- .../release-notes/maps/pr-108929-map.yaml | 6 +- .../release-notes/maps/pr-108930-map.yaml | 10 +- .../release-notes/maps/pr-108953-map.yaml | 8 +- .../release-notes/maps/pr-108987-map.yaml | 8 +- .../release-notes/maps/pr-108988-map.yaml | 6 +- .../release-notes/maps/pr-108992-map.yaml | 8 +- .../release-notes/maps/pr-108994-map.yaml | 6 +- .../release-notes/maps/pr-108995-map.yaml | 8 +- .../release-notes/maps/pr-109018-map.yaml | 8 +- .../release-notes/maps/pr-109019-map.yaml | 8 +- .../release-notes/maps/pr-109024-map.yaml | 10 +- .../release-notes/maps/pr-109029-map.yaml | 6 +- .../release-notes/maps/pr-109031-map.yaml | 6 +- .../release-notes/maps/pr-109035-map.yaml | 6 +- .../release-notes/maps/pr-109050-map.yaml | 8 +- .../release-notes/maps/pr-109059-map.yaml | 16 +- .../release-notes/maps/pr-109060-map.yaml | 8 +- .../release-notes/maps/pr-109072-map.yaml | 8 +- .../release-notes/maps/pr-109074-map.yaml | 8 +- .../release-notes/maps/pr-109089-map.yaml | 16 +- .../release-notes/maps/pr-109104-map.yaml | 6 +- .../release-notes/maps/pr-109120-map.yaml | 10 +- .../release-notes/maps/pr-109128-map.yaml | 8 +- .../release-notes/maps/pr-109137-map.yaml | 8 +- .../release-notes/maps/pr-109154-map.yaml | 8 +- .../release-notes/maps/pr-109178-map.yaml | 12 +- .../release-notes/maps/pr-109188-map.yaml | 8 +- .../release-notes/maps/pr-109205-map.yaml | 8 +- .../release-notes/maps/pr-109213-map.yaml | 6 +- .../release-notes/maps/pr-109241-map.yaml | 6 +- .../release-notes/maps/pr-109245-map.yaml | 8 +- .../release-notes/maps/pr-109271-map.yaml | 6 +- .../release-notes/maps/pr-109436-map.yaml | 6 +- .../release-notes/maps/pr-109442-map.yaml | 8 +- .../release-notes/maps/pr-109461-map.yaml | 6 +- .../release-notes/maps/pr-109471-map.yaml | 6 +- .../release-notes/maps/pr-109487-map.yaml | 8 +- .../release-notes/maps/pr-82162-map.yaml | 10 +- .../release-notes/maps/pr-94637-map.yaml | 12 +- .../release-notes/maps/pr-95400-map.yaml | 10 +- .../release-notes/maps/pr-97252-map.yaml | 14 +- .../release-notes/maps/pr-97966-map.yaml | 8 +- .../release-notes/maps/pr-99287-map.yaml | 18 +- .../release-notes/maps/pr-99441-map.yaml | 6 +- .../release-notes/maps/pr-99556-map.yaml | 8 +- .../release-notes/maps/pr-99758-map.yaml | 6 +- .../release-notes/release-notes-draft.json | 14568 ++++++------- .../release-notes/release-notes-draft.md | 904 +- .../sessions/maps-1643816881.json | 156 +- .../sessions/maps-1644303140.json | 868 +- .../sessions/maps-1645585977.json | 228 +- .../sessions/maps-1649348752.json | 692 +- .../sessions/maps-1651081940.json | 2500 +-- .../sessions/maps-1651169858.json | 220 +- releases/release-1.24/release-team.md | 34 +- releases/release-1.25/README.md | 250 +- releases/release-1.25/exceptions.yaml | 276 +- releases/release-1.25/logo/README.md | 22 +- .../release-notes/maps/pr-101882-map.yaml | 6 +- .../release-notes/maps/pr-103523-map.yaml | 8 +- .../release-notes/maps/pr-104484-map.yaml | 6 +- .../release-notes/maps/pr-105100-map.yaml | 6 +- .../release-notes/maps/pr-105797-map.yaml | 10 +- .../release-notes/maps/pr-105919-map.yaml | 18 +- .../release-notes/maps/pr-105936-map.yaml | 6 +- .../release-notes/maps/pr-105963-map.yaml | 14 +- .../release-notes/maps/pr-107329-map.yaml | 6 +- .../release-notes/maps/pr-107490-map.yaml | 6 +- .../release-notes/maps/pr-107787-map.yaml | 6 +- .../release-notes/maps/pr-108414-map.yaml | 10 +- .../release-notes/maps/pr-108447-map.yaml | 8 +- .../release-notes/maps/pr-108476-map.yaml | 10 +- .../release-notes/maps/pr-108492-map.yaml | 6 +- .../release-notes/maps/pr-108541-map.yaml | 6 +- .../release-notes/maps/pr-108554-map.yaml | 6 +- .../release-notes/maps/pr-108624-map.yaml | 8 +- .../release-notes/maps/pr-108777-map.yaml | 6 +- .../release-notes/maps/pr-109070-map.yaml | 6 +- .../release-notes/maps/pr-109090-map.yaml | 12 +- .../release-notes/maps/pr-109124-map.yaml | 6 +- .../release-notes/maps/pr-109141-map.yaml | 6 +- .../release-notes/maps/pr-109217-map.yaml | 10 +- .../release-notes/maps/pr-109250-map.yaml | 6 +- .../release-notes/maps/pr-109251-map.yaml | 12 +- .../release-notes/maps/pr-109254-map.yaml | 6 +- .../release-notes/maps/pr-109263-map.yaml | 8 +- .../release-notes/maps/pr-109268-map.yaml | 8 +- .../release-notes/maps/pr-109388-map.yaml | 8 +- .../release-notes/maps/pr-109435-map.yaml | 14 +- .../release-notes/maps/pr-109443-map.yaml | 6 +- .../release-notes/maps/pr-109464-map.yaml | 6 +- .../release-notes/maps/pr-109479-map.yaml | 8 +- .../release-notes/maps/pr-109486-map.yaml | 14 +- .../release-notes/maps/pr-109510-map.yaml | 12 +- .../release-notes/maps/pr-109541-map.yaml | 10 +- .../release-notes/maps/pr-109563-map.yaml | 8 +- .../release-notes/maps/pr-109579-map.yaml | 6 +- .../release-notes/maps/pr-109601-map.yaml | 8 +- .../release-notes/maps/pr-109602-map.yaml | 8 +- .../release-notes/maps/pr-109612-map.yaml | 8 +- .../release-notes/maps/pr-109624-map.yaml | 6 +- .../release-notes/maps/pr-109658-map.yaml | 8 +- .../release-notes/maps/pr-109680-map.yaml | 10 +- .../release-notes/maps/pr-109706-map.yaml | 20 +- .../release-notes/maps/pr-109709-map.yaml | 8 +- .../release-notes/maps/pr-109721-map.yaml | 6 +- .../release-notes/maps/pr-109752-map.yaml | 6 +- .../release-notes/maps/pr-109764-map.yaml | 6 +- .../release-notes/maps/pr-109773-map.yaml | 6 +- .../release-notes/maps/pr-109782-map.yaml | 8 +- .../release-notes/maps/pr-109798-map.yaml | 12 +- .../release-notes/maps/pr-109813-map.yaml | 6 +- .../release-notes/maps/pr-109819-map.yaml | 20 +- .../release-notes/maps/pr-109826-map.yaml | 8 +- .../release-notes/maps/pr-109840-map.yaml | 10 +- .../release-notes/maps/pr-109928-map.yaml | 8 +- .../release-notes/maps/pr-109938-map.yaml | 20 +- .../release-notes/maps/pr-109995-map.yaml | 12 +- .../release-notes/maps/pr-110007-map.yaml | 6 +- .../release-notes/maps/pr-110013-map.yaml | 8 +- .../release-notes/maps/pr-110027-map.yaml | 6 +- .../release-notes/maps/pr-110043-map.yaml | 6 +- .../release-notes/maps/pr-110058-map.yaml | 8 +- .../release-notes/maps/pr-110072-map.yaml | 12 +- .../release-notes/maps/pr-110075-map.yaml | 8 +- .../release-notes/maps/pr-110076-map.yaml | 8 +- .../release-notes/maps/pr-110095-map.yaml | 10 +- .../release-notes/maps/pr-110134-map.yaml | 10 +- .../release-notes/maps/pr-110140-map.yaml | 8 +- .../release-notes/maps/pr-110145-map.yaml | 6 +- .../release-notes/maps/pr-110164-map.yaml | 10 +- .../release-notes/maps/pr-110179-map.yaml | 18 +- .../release-notes/maps/pr-110191-map.yaml | 6 +- .../release-notes/maps/pr-110201-map.yaml | 6 +- .../release-notes/maps/pr-110214-map.yaml | 8 +- .../release-notes/maps/pr-110255-map.yaml | 14 +- .../release-notes/maps/pr-110256-map.yaml | 10 +- .../release-notes/maps/pr-110292-map.yaml | 6 +- .../release-notes/maps/pr-110294-map.yaml | 8 +- .../release-notes/maps/pr-110310-map.yaml | 10 +- .../release-notes/maps/pr-110326-map.yaml | 8 +- .../release-notes/maps/pr-110327-map.yaml | 18 +- .../release-notes/maps/pr-110334-map.yaml | 22 +- .../release-notes/maps/pr-110337-map.yaml | 12 +- .../release-notes/maps/pr-110343-map.yaml | 12 +- .../release-notes/maps/pr-110371-map.yaml | 6 +- .../release-notes/maps/pr-110379-map.yaml | 10 +- .../release-notes/maps/pr-110405-map.yaml | 18 +- .../release-notes/maps/pr-110410-map.yaml | 8 +- .../release-notes/maps/pr-110411-map.yaml | 6 +- .../release-notes/maps/pr-110419-map.yaml | 6 +- .../release-notes/maps/pr-110425-map.yaml | 8 +- .../release-notes/maps/pr-110459-map.yaml | 8 +- .../release-notes/maps/pr-110488-map.yaml | 6 +- .../release-notes/maps/pr-110489-map.yaml | 6 +- .../release-notes/maps/pr-110491-map.yaml | 6 +- .../release-notes/maps/pr-110495-map.yaml | 8 +- .../release-notes/maps/pr-110496-map.yaml | 6 +- .../release-notes/maps/pr-110523-map.yaml | 6 +- .../release-notes/maps/pr-110534-map.yaml | 8 +- .../release-notes/maps/pr-110553-map.yaml | 10 +- .../release-notes/maps/pr-110558-map.yaml | 14 +- .../release-notes/maps/pr-110593-map.yaml | 6 +- .../release-notes/maps/pr-110639-map.yaml | 18 +- .../release-notes/maps/pr-110648-map.yaml | 6 +- .../release-notes/maps/pr-110652-map.yaml | 8 +- .../release-notes/maps/pr-110656-map.yaml | 6 +- .../release-notes/maps/pr-110668-map.yaml | 6 +- .../release-notes/maps/pr-110670-map.yaml | 8 +- .../release-notes/maps/pr-110688-map.yaml | 6 +- .../release-notes/maps/pr-110691-map.yaml | 6 +- .../release-notes/maps/pr-110703-map.yaml | 6 +- .../release-notes/maps/pr-110709-map.yaml | 8 +- .../release-notes/maps/pr-110719-map.yaml | 8 +- .../release-notes/maps/pr-110721-map.yaml | 10 +- .../release-notes/maps/pr-110728-map.yaml | 6 +- .../release-notes/maps/pr-110748-map.yaml | 6 +- .../release-notes/maps/pr-110764-map.yaml | 6 +- .../release-notes/maps/pr-110791-map.yaml | 8 +- .../release-notes/maps/pr-110868-map.yaml | 20 +- .../release-notes/maps/pr-110914-map.yaml | 6 +- .../release-notes/maps/pr-110940-map.yaml | 8 +- .../release-notes/maps/pr-110948-map.yaml | 8 +- .../release-notes/maps/pr-110957-map.yaml | 6 +- .../release-notes/maps/pr-110959-map.yaml | 16 +- .../release-notes/maps/pr-111009-map.yaml | 8 +- .../release-notes/maps/pr-111026-map.yaml | 8 +- .../release-notes/maps/pr-111033-map.yaml | 6 +- .../release-notes/maps/pr-111060-map.yaml | 8 +- .../release-notes/maps/pr-111061-map.yaml | 6 +- .../release-notes/maps/pr-111090-map.yaml | 8 +- .../release-notes/maps/pr-111113-map.yaml | 8 +- .../release-notes/maps/pr-111119-map.yaml | 8 +- .../release-notes/maps/pr-111126-map.yaml | 6 +- .../release-notes/maps/pr-111186-map.yaml | 8 +- .../release-notes/maps/pr-111192-map.yaml | 6 +- .../release-notes/maps/pr-111194-map.yaml | 12 +- .../release-notes/maps/pr-111206-map.yaml | 8 +- .../release-notes/maps/pr-111229-map.yaml | 10 +- .../release-notes/maps/pr-111254-map.yaml | 8 +- .../release-notes/maps/pr-111255-map.yaml | 10 +- .../release-notes/maps/pr-111258-map.yaml | 6 +- .../release-notes/maps/pr-111278-map.yaml | 8 +- .../release-notes/maps/pr-111301-map.yaml | 8 +- .../release-notes/maps/pr-111319-map.yaml | 10 +- .../release-notes/maps/pr-111358-map.yaml | 6 +- .../release-notes/maps/pr-111383-map.yaml | 10 +- .../release-notes/maps/pr-111399-map.yaml | 8 +- .../release-notes/maps/pr-111402-map.yaml | 16 +- .../release-notes/maps/pr-111406-map.yaml | 6 +- .../release-notes/maps/pr-111411-map.yaml | 12 +- .../release-notes/maps/pr-111435-map.yaml | 6 +- .../release-notes/maps/pr-111439-map.yaml | 6 +- .../release-notes/maps/pr-111441-map.yaml | 6 +- .../release-notes/maps/pr-111462-map.yaml | 8 +- .../release-notes/maps/pr-111466-map.yaml | 8 +- .../release-notes/maps/pr-111467-map.yaml | 10 +- .../release-notes/maps/pr-111472-map.yaml | 8 +- .../release-notes/maps/pr-111475-map.yaml | 8 +- .../release-notes/maps/pr-111479-map.yaml | 8 +- .../release-notes/maps/pr-111481-map.yaml | 8 +- .../release-notes/maps/pr-111485-map.yaml | 8 +- .../release-notes/maps/pr-111513-map.yaml | 12 +- .../release-notes/maps/pr-111524-map.yaml | 8 +- .../release-notes/maps/pr-111547-map.yaml | 6 +- .../release-notes/maps/pr-111557-map.yaml | 8 +- .../release-notes/maps/pr-111606-map.yaml | 10 +- .../release-notes/maps/pr-111618-map.yaml | 6 +- .../release-notes/maps/pr-111619-map.yaml | 8 +- .../release-notes/maps/pr-111620-map.yaml | 8 +- .../release-notes/maps/pr-111633-map.yaml | 10 +- .../release-notes/maps/pr-111645-map.yaml | 10 +- .../release-notes/maps/pr-111646-map.yaml | 8 +- .../release-notes/maps/pr-111647-map.yaml | 6 +- .../release-notes/maps/pr-111679-map.yaml | 6 +- .../release-notes/maps/pr-111691-map.yaml | 8 +- .../release-notes/maps/pr-111721-map.yaml | 6 +- .../release-notes/release-notes-draft.json | 10576 +++++----- .../release-notes/release-notes-draft.md | 722 +- .../sessions/maps-1655405536.json | 36 +- .../sessions/maps-1655499865.json | 44 +- .../sessions/maps-1655765007.json | 268 +- .../sessions/maps-1656055065.json | 204 +- .../sessions/maps-1657118430.json | 484 +- .../sessions/maps-1658855812.json | 484 +- .../sessions/maps-1660059324.json | 860 +- .../sessions/maps-1660239162.json | 68 +- .../sessions/maps-1660876102.json | 20 +- releases/release-1.25/release-team.md | 34 +- releases/release-1.26/README.md | 270 +- releases/release-1.26/exceptions.yaml | 252 +- .../release-notes/maps/pr-103177-map.yaml | 8 +- .../release-notes/maps/pr-105867-map.yaml | 8 +- .../release-notes/maps/pr-108250-map.yaml | 10 +- .../release-notes/maps/pr-108501-map.yaml | 8 +- .../release-notes/maps/pr-108832-map.yaml | 10 +- .../release-notes/maps/pr-109189-map.yaml | 8 +- .../release-notes/maps/pr-109505-map.yaml | 8 +- .../release-notes/maps/pr-109525-map.yaml | 8 +- .../release-notes/maps/pr-110268-map.yaml | 10 +- .../release-notes/maps/pr-110559-map.yaml | 8 +- .../release-notes/maps/pr-110618-map.yaml | 8 +- .../release-notes/maps/pr-110907-map.yaml | 12 +- .../release-notes/maps/pr-111023-map.yaml | 16 +- .../release-notes/maps/pr-111093-map.yaml | 8 +- .../release-notes/maps/pr-111277-map.yaml | 8 +- .../release-notes/maps/pr-111344-map.yaml | 8 +- .../release-notes/maps/pr-111384-map.yaml | 6 +- .../release-notes/maps/pr-111512-map.yaml | 12 +- .../release-notes/maps/pr-111571-map.yaml | 8 +- .../release-notes/maps/pr-111616-map.yaml | 10 +- .../release-notes/maps/pr-111752-map.yaml | 8 +- .../release-notes/maps/pr-111783-map.yaml | 8 +- .../release-notes/maps/pr-111807-map.yaml | 12 +- .../release-notes/maps/pr-111808-map.yaml | 8 +- .../release-notes/maps/pr-111809-map.yaml | 8 +- .../release-notes/maps/pr-111866-map.yaml | 8 +- .../release-notes/maps/pr-111910-map.yaml | 66 +- .../release-notes/maps/pr-111930-map.yaml | 6 +- .../release-notes/maps/pr-111936-map.yaml | 12 +- .../release-notes/maps/pr-111973-map.yaml | 10 +- .../release-notes/maps/pr-111998-map.yaml | 14 +- .../release-notes/maps/pr-111999-map.yaml | 8 +- .../release-notes/maps/pr-112000-map.yaml | 10 +- .../release-notes/maps/pr-112008-map.yaml | 14 +- .../release-notes/maps/pr-112011-map.yaml | 14 +- .../release-notes/maps/pr-112015-map.yaml | 8 +- .../release-notes/maps/pr-112017-map.yaml | 10 +- .../release-notes/maps/pr-112026-map.yaml | 6 +- .../release-notes/maps/pr-112042-map.yaml | 10 +- .../release-notes/maps/pr-112043-map.yaml | 18 +- .../release-notes/maps/pr-112046-map.yaml | 12 +- .../release-notes/maps/pr-112058-map.yaml | 6 +- .../release-notes/maps/pr-112076-map.yaml | 6 +- .../release-notes/maps/pr-112123-map.yaml | 8 +- .../release-notes/maps/pr-112127-map.yaml | 6 +- .../release-notes/maps/pr-112133-map.yaml | 12 +- .../release-notes/maps/pr-112150-map.yaml | 6 +- .../release-notes/maps/pr-112157-map.yaml | 6 +- .../release-notes/maps/pr-112163-map.yaml | 6 +- .../release-notes/maps/pr-112172-map.yaml | 8 +- .../release-notes/maps/pr-112181-map.yaml | 8 +- .../release-notes/maps/pr-112183-map.yaml | 8 +- .../release-notes/maps/pr-112195-map.yaml | 6 +- .../release-notes/maps/pr-112200-map.yaml | 8 +- .../release-notes/maps/pr-112243-map.yaml | 8 +- .../release-notes/maps/pr-112261-map.yaml | 10 +- .../release-notes/maps/pr-112267-map.yaml | 8 +- .../release-notes/maps/pr-112299-map.yaml | 12 +- .../release-notes/maps/pr-112306-map.yaml | 12 +- .../release-notes/maps/pr-112309-map.yaml | 14 +- .../release-notes/maps/pr-112341-map.yaml | 12 +- .../release-notes/maps/pr-112353-map.yaml | 8 +- .../release-notes/maps/pr-112357-map.yaml | 8 +- .../release-notes/maps/pr-112360-map.yaml | 10 +- .../release-notes/maps/pr-112374-map.yaml | 8 +- .../release-notes/maps/pr-112386-map.yaml | 10 +- .../release-notes/maps/pr-112403-map.yaml | 12 +- .../release-notes/maps/pr-112427-map.yaml | 6 +- .../release-notes/maps/pr-112489-map.yaml | 6 +- .../release-notes/maps/pr-112507-map.yaml | 8 +- .../release-notes/maps/pr-112508-map.yaml | 6 +- .../release-notes/maps/pr-112518-map.yaml | 8 +- .../release-notes/maps/pr-112521-map.yaml | 10 +- .../release-notes/maps/pr-112526-map.yaml | 8 +- .../release-notes/maps/pr-112542-map.yaml | 8 +- .../release-notes/maps/pr-112545-map.yaml | 8 +- .../release-notes/maps/pr-112553-map.yaml | 8 +- .../release-notes/maps/pr-112556-map.yaml | 8 +- .../release-notes/maps/pr-112557-map.yaml | 8 +- .../release-notes/maps/pr-112567-map.yaml | 10 +- .../release-notes/maps/pr-112571-map.yaml | 6 +- .../release-notes/maps/pr-112577-map.yaml | 8 +- .../release-notes/maps/pr-112579-map.yaml | 6 +- .../release-notes/maps/pr-112580-map.yaml | 12 +- .../release-notes/maps/pr-112589-map.yaml | 8 +- .../release-notes/maps/pr-112607-map.yaml | 6 +- .../release-notes/maps/pr-112643-map.yaml | 12 +- .../release-notes/maps/pr-112650-map.yaml | 6 +- .../release-notes/maps/pr-112652-map.yaml | 8 +- .../release-notes/maps/pr-112679-map.yaml | 10 +- .../release-notes/maps/pr-112690-map.yaml | 8 +- .../release-notes/maps/pr-112693-map.yaml | 6 +- .../release-notes/maps/pr-112696-map.yaml | 6 +- .../release-notes/maps/pr-112700-map.yaml | 6 +- .../release-notes/maps/pr-112731-map.yaml | 6 +- .../release-notes/maps/pr-112732-map.yaml | 6 +- .../release-notes/maps/pr-112741-map.yaml | 6 +- .../release-notes/maps/pr-112744-map.yaml | 8 +- .../release-notes/maps/pr-112748-map.yaml | 8 +- .../release-notes/maps/pr-112751-map.yaml | 8 +- .../release-notes/maps/pr-112797-map.yaml | 8 +- .../release-notes/maps/pr-112837-map.yaml | 8 +- .../release-notes/maps/pr-112838-map.yaml | 8 +- .../release-notes/maps/pr-112855-map.yaml | 6 +- .../release-notes/maps/pr-112895-map.yaml | 6 +- .../release-notes/maps/pr-112905-map.yaml | 12 +- .../release-notes/maps/pr-112907-map.yaml | 10 +- .../release-notes/maps/pr-112914-map.yaml | 12 +- .../release-notes/maps/pr-112924-map.yaml | 6 +- .../release-notes/maps/pr-112939-map.yaml | 6 +- .../release-notes/maps/pr-112948-map.yaml | 6 +- .../release-notes/maps/pr-112961-map.yaml | 6 +- .../release-notes/maps/pr-112978-map.yaml | 8 +- .../release-notes/maps/pr-112979-map.yaml | 8 +- .../release-notes/maps/pr-112980-map.yaml | 6 +- .../release-notes/maps/pr-112989-map.yaml | 6 +- .../release-notes/maps/pr-113005-map.yaml | 8 +- .../release-notes/maps/pr-113008-map.yaml | 12 +- .../release-notes/maps/pr-113010-map.yaml | 12 +- .../release-notes/maps/pr-113015-map.yaml | 8 +- .../release-notes/maps/pr-113018-map.yaml | 6 +- .../release-notes/maps/pr-113021-map.yaml | 6 +- .../release-notes/maps/pr-113026-map.yaml | 8 +- .../release-notes/maps/pr-113041-map.yaml | 8 +- .../release-notes/maps/pr-113057-map.yaml | 8 +- .../release-notes/maps/pr-113113-map.yaml | 8 +- .../release-notes/maps/pr-113116-map.yaml | 10 +- .../release-notes/maps/pr-113133-map.yaml | 8 +- .../release-notes/maps/pr-113160-map.yaml | 6 +- .../release-notes/maps/pr-113171-map.yaml | 8 +- .../release-notes/maps/pr-113176-map.yaml | 10 +- .../release-notes/maps/pr-113186-map.yaml | 8 +- .../release-notes/maps/pr-113206-map.yaml | 8 +- .../release-notes/maps/pr-113212-map.yaml | 6 +- .../release-notes/maps/pr-113217-map.yaml | 8 +- .../release-notes/maps/pr-113225-map.yaml | 8 +- .../release-notes/maps/pr-113274-map.yaml | 8 +- .../release-notes/maps/pr-113275-map.yaml | 10 +- .../release-notes/maps/pr-113291-map.yaml | 8 +- .../release-notes/maps/pr-113307-map.yaml | 8 +- .../release-notes/maps/pr-113314-map.yaml | 12 +- .../release-notes/maps/pr-113323-map.yaml | 12 +- .../release-notes/maps/pr-113329-map.yaml | 8 +- .../release-notes/maps/pr-113336-map.yaml | 12 +- .../release-notes/maps/pr-113340-map.yaml | 8 +- .../release-notes/maps/pr-113351-map.yaml | 8 +- .../release-notes/maps/pr-113360-map.yaml | 8 +- .../release-notes/maps/pr-113363-map.yaml | 12 +- .../release-notes/maps/pr-113369-map.yaml | 8 +- .../release-notes/maps/pr-113375-map.yaml | 16 +- .../release-notes/maps/pr-113448-map.yaml | 8 +- .../release-notes/maps/pr-113476-map.yaml | 6 +- .../release-notes/maps/pr-113481-map.yaml | 6 +- .../release-notes/maps/pr-113485-map.yaml | 40 +- .../release-notes/maps/pr-113491-map.yaml | 10 +- .../release-notes/maps/pr-113496-map.yaml | 6 +- .../release-notes/maps/pr-113500-map.yaml | 8 +- .../release-notes/maps/pr-113501-map.yaml | 6 +- .../release-notes/maps/pr-113510-map.yaml | 18 +- .../release-notes/maps/pr-113511-map.yaml | 8 +- .../release-notes/maps/pr-113521-map.yaml | 6 +- .../release-notes/maps/pr-113529-map.yaml | 14 +- .../release-notes/maps/pr-113544-map.yaml | 6 +- .../release-notes/maps/pr-113550-map.yaml | 6 +- .../release-notes/maps/pr-113580-map.yaml | 8 +- .../release-notes/maps/pr-113596-map.yaml | 10 +- .../release-notes/maps/pr-113609-map.yaml | 8 +- .../release-notes/maps/pr-113629-map.yaml | 14 +- .../release-notes/maps/pr-113636-map.yaml | 6 +- .../release-notes/maps/pr-113697-map.yaml | 12 +- .../release-notes/maps/pr-113699-map.yaml | 14 +- .../release-notes/maps/pr-113710-map.yaml | 8 +- .../release-notes/maps/pr-113711-map.yaml | 6 +- .../release-notes/maps/pr-113719-map.yaml | 6 +- .../release-notes/maps/pr-113735-map.yaml | 6 +- .../release-notes/maps/pr-113754-map.yaml | 10 +- .../release-notes/maps/pr-113769-map.yaml | 6 +- .../release-notes/maps/pr-113819-map.yaml | 6 +- .../release-notes/maps/pr-113856-map.yaml | 8 +- .../release-notes/maps/pr-67782-map.yaml | 8 +- .../release-notes/maps/pr-86139-map.yaml | 28 +- .../release-notes/release-notes-draft.json | 10360 ++++----- .../release-notes/release-notes-draft.md | 742 +- .../sessions/maps-1663864374.json | 36 +- .../sessions/maps-1663929908.json | 188 +- .../sessions/maps-1665672047.json | 364 +- .../sessions/maps-1666211958.json | 92 +- .../sessions/maps-1668162889.json | 44 +- .../sessions/maps-1668289772.json | 596 +- .../sessions/maps-1669239784.json | 628 +- .../sessions/maps-1670569599.json | 36 +- .../sessions/maps-1673999876.json | 36 +- releases/release-1.26/release-team.md | 34 +- releases/release-1.27/README.md | 234 +- releases/release-1.27/exceptions.yaml | 156 +- .../release-notes/maps/pr-102884-map.yaml | 18 +- .../release-notes/maps/pr-108095-map.yaml | 6 +- .../release-notes/maps/pr-108396-map.yaml | 10 +- .../release-notes/maps/pr-108838-map.yaml | 6 +- .../release-notes/maps/pr-108984-map.yaml | 6 +- .../release-notes/maps/pr-109877-map.yaml | 10 +- .../release-notes/maps/pr-110566-map.yaml | 8 +- .../release-notes/maps/pr-110723-map.yaml | 6 +- .../release-notes/maps/pr-110960-map.yaml | 12 +- .../release-notes/maps/pr-111207-map.yaml | 6 +- .../release-notes/maps/pr-111372-map.yaml | 6 +- .../release-notes/maps/pr-111453-map.yaml | 8 +- .../release-notes/maps/pr-111634-map.yaml | 6 +- .../release-notes/maps/pr-111658-map.yaml | 14 +- .../release-notes/maps/pr-111660-map.yaml | 8 +- .../release-notes/maps/pr-111683-map.yaml | 6 +- .../release-notes/maps/pr-111802-map.yaml | 10 +- .../release-notes/maps/pr-111982-map.yaml | 6 +- .../release-notes/maps/pr-111988-map.yaml | 6 +- .../release-notes/maps/pr-112021-map.yaml | 6 +- .../release-notes/maps/pr-112136-map.yaml | 10 +- .../release-notes/maps/pr-112260-map.yaml | 8 +- .../release-notes/maps/pr-112334-map.yaml | 8 +- .../release-notes/maps/pr-112365-map.yaml | 8 +- .../release-notes/maps/pr-112393-map.yaml | 10 +- .../release-notes/maps/pr-112624-map.yaml | 8 +- .../release-notes/maps/pr-112670-map.yaml | 10 +- .../release-notes/maps/pr-112925-map.yaml | 8 +- .../release-notes/maps/pr-112977-map.yaml | 8 +- .../release-notes/maps/pr-113040-map.yaml | 8 +- .../release-notes/maps/pr-113121-map.yaml | 8 +- .../release-notes/maps/pr-113267-map.yaml | 6 +- .../release-notes/maps/pr-113284-map.yaml | 8 +- .../release-notes/maps/pr-113318-map.yaml | 8 +- .../release-notes/maps/pr-113428-map.yaml | 6 +- .../release-notes/maps/pr-113443-map.yaml | 8 +- .../release-notes/maps/pr-113471-map.yaml | 8 +- .../release-notes/maps/pr-113525-map.yaml | 8 +- .../release-notes/maps/pr-113534-map.yaml | 8 +- .../release-notes/maps/pr-113581-map.yaml | 8 +- .../release-notes/maps/pr-113584-map.yaml | 12 +- .../release-notes/maps/pr-113622-map.yaml | 8 +- .../release-notes/maps/pr-113742-map.yaml | 10 +- .../release-notes/maps/pr-113776-map.yaml | 8 +- .../release-notes/maps/pr-113787-map.yaml | 6 +- .../release-notes/maps/pr-113794-map.yaml | 6 +- .../release-notes/maps/pr-113795-map.yaml | 6 +- .../release-notes/maps/pr-113834-map.yaml | 6 +- .../release-notes/maps/pr-113840-map.yaml | 8 +- .../release-notes/maps/pr-113910-map.yaml | 12 +- .../release-notes/maps/pr-113916-map.yaml | 8 +- .../release-notes/maps/pr-113933-map.yaml | 10 +- .../release-notes/maps/pr-113942-map.yaml | 10 +- .../release-notes/maps/pr-113943-map.yaml | 6 +- .../release-notes/maps/pr-113985-map.yaml | 12 +- .../release-notes/maps/pr-113986-map.yaml | 8 +- .../release-notes/maps/pr-113998-map.yaml | 6 +- .../release-notes/maps/pr-114015-map.yaml | 6 +- .../release-notes/maps/pr-114033-map.yaml | 6 +- .../release-notes/maps/pr-114051-map.yaml | 6 +- .../release-notes/maps/pr-114055-map.yaml | 8 +- .../release-notes/maps/pr-114065-map.yaml | 6 +- .../release-notes/maps/pr-114086-map.yaml | 8 +- .../release-notes/maps/pr-114116-map.yaml | 8 +- .../release-notes/maps/pr-114125-map.yaml | 14 +- .../release-notes/maps/pr-114155-map.yaml | 8 +- .../release-notes/maps/pr-114172-map.yaml | 14 +- .../release-notes/maps/pr-114176-map.yaml | 8 +- .../release-notes/maps/pr-114226-map.yaml | 8 +- .../release-notes/maps/pr-114227-map.yaml | 8 +- .../release-notes/maps/pr-114228-map.yaml | 8 +- .../release-notes/maps/pr-114231-map.yaml | 8 +- .../release-notes/maps/pr-114236-map.yaml | 6 +- .../release-notes/maps/pr-114237-map.yaml | 8 +- .../release-notes/maps/pr-114246-map.yaml | 8 +- .../release-notes/maps/pr-114249-map.yaml | 8 +- .../release-notes/maps/pr-114252-map.yaml | 8 +- .../release-notes/maps/pr-114279-map.yaml | 6 +- .../release-notes/maps/pr-114350-map.yaml | 6 +- .../release-notes/maps/pr-114355-map.yaml | 6 +- .../release-notes/maps/pr-114357-map.yaml | 6 +- .../release-notes/maps/pr-114393-map.yaml | 18 +- .../release-notes/maps/pr-114397-map.yaml | 6 +- .../release-notes/maps/pr-114407-map.yaml | 8 +- .../release-notes/maps/pr-114412-map.yaml | 8 +- .../release-notes/maps/pr-114414-map.yaml | 6 +- .../release-notes/maps/pr-114417-map.yaml | 8 +- .../release-notes/maps/pr-114418-map.yaml | 12 +- .../release-notes/maps/pr-114426-map.yaml | 6 +- .../release-notes/maps/pr-114434-map.yaml | 8 +- .../release-notes/maps/pr-114445-map.yaml | 10 +- .../release-notes/maps/pr-114446-map.yaml | 6 +- .../release-notes/maps/pr-114455-map.yaml | 8 +- .../release-notes/maps/pr-114459-map.yaml | 8 +- .../release-notes/maps/pr-114460-map.yaml | 10 +- .../release-notes/maps/pr-114464-map.yaml | 12 +- .../release-notes/maps/pr-114472-map.yaml | 14 +- .../release-notes/maps/pr-114490-map.yaml | 8 +- .../release-notes/maps/pr-114494-map.yaml | 6 +- .../release-notes/maps/pr-114497-map.yaml | 12 +- .../release-notes/maps/pr-114498-map.yaml | 6 +- .../release-notes/maps/pr-114505-map.yaml | 12 +- .../release-notes/maps/pr-114516-map.yaml | 12 +- .../release-notes/maps/pr-114518-map.yaml | 6 +- .../release-notes/maps/pr-114540-map.yaml | 10 +- .../release-notes/maps/pr-114570-map.yaml | 6 +- .../release-notes/maps/pr-114584-map.yaml | 6 +- .../release-notes/maps/pr-114585-map.yaml | 10 +- .../release-notes/maps/pr-114596-map.yaml | 10 +- .../release-notes/maps/pr-114598-map.yaml | 6 +- .../release-notes/maps/pr-114605-map.yaml | 8 +- .../release-notes/maps/pr-114609-map.yaml | 10 +- .../release-notes/maps/pr-114623-map.yaml | 10 +- .../release-notes/maps/pr-114630-map.yaml | 6 +- .../release-notes/maps/pr-114647-map.yaml | 8 +- .../release-notes/maps/pr-114669-map.yaml | 10 +- .../release-notes/maps/pr-114694-map.yaml | 6 +- .../release-notes/maps/pr-114699-map.yaml | 8 +- .../release-notes/maps/pr-114701-map.yaml | 6 +- .../release-notes/maps/pr-114731-map.yaml | 8 +- .../release-notes/maps/pr-114736-map.yaml | 6 +- .../release-notes/maps/pr-114740-map.yaml | 8 +- .../release-notes/maps/pr-114770-map.yaml | 10 +- .../release-notes/maps/pr-114776-map.yaml | 6 +- .../release-notes/maps/pr-114814-map.yaml | 6 +- .../release-notes/maps/pr-114857-map.yaml | 12 +- .../release-notes/maps/pr-114863-map.yaml | 8 +- .../release-notes/maps/pr-114869-map.yaml | 8 +- .../release-notes/maps/pr-114871-map.yaml | 8 +- .../release-notes/maps/pr-114872-map.yaml | 6 +- .../release-notes/maps/pr-114878-map.yaml | 10 +- .../release-notes/maps/pr-114883-map.yaml | 6 +- .../release-notes/maps/pr-114886-map.yaml | 6 +- .../release-notes/maps/pr-114889-map.yaml | 10 +- .../release-notes/maps/pr-114914-map.yaml | 6 +- .../release-notes/maps/pr-114920-map.yaml | 6 +- .../release-notes/maps/pr-114923-map.yaml | 6 +- .../release-notes/maps/pr-114930-map.yaml | 10 +- .../release-notes/maps/pr-114947-map.yaml | 14 +- .../release-notes/maps/pr-114953-map.yaml | 8 +- .../release-notes/maps/pr-114980-map.yaml | 6 +- .../release-notes/maps/pr-114981-map.yaml | 6 +- .../release-notes/maps/pr-114987-map.yaml | 8 +- .../release-notes/maps/pr-114997-map.yaml | 8 +- .../release-notes/maps/pr-115010-map.yaml | 6 +- .../release-notes/maps/pr-115017-map.yaml | 6 +- .../release-notes/maps/pr-115038-map.yaml | 8 +- .../release-notes/maps/pr-115046-map.yaml | 6 +- .../release-notes/maps/pr-115049-map.yaml | 6 +- .../release-notes/maps/pr-115056-map.yaml | 8 +- .../release-notes/maps/pr-115068-map.yaml | 6 +- .../release-notes/maps/pr-115079-map.yaml | 6 +- .../release-notes/maps/pr-115082-map.yaml | 10 +- .../release-notes/maps/pr-115093-map.yaml | 8 +- .../release-notes/maps/pr-115096-map.yaml | 8 +- .../release-notes/maps/pr-115102-map.yaml | 8 +- .../release-notes/maps/pr-115113-map.yaml | 12 +- .../release-notes/maps/pr-115116-map.yaml | 10 +- .../release-notes/maps/pr-115123-map.yaml | 6 +- .../release-notes/maps/pr-115137-map.yaml | 8 +- .../release-notes/maps/pr-115138-map.yaml | 14 +- .../release-notes/maps/pr-115140-map.yaml | 10 +- .../release-notes/maps/pr-115143-map.yaml | 14 +- .../release-notes/maps/pr-115149-map.yaml | 10 +- .../release-notes/maps/pr-115179-map.yaml | 6 +- .../release-notes/maps/pr-115204-map.yaml | 14 +- .../release-notes/maps/pr-115207-map.yaml | 6 +- .../release-notes/maps/pr-115209-map.yaml | 12 +- .../release-notes/maps/pr-115233-map.yaml | 10 +- .../release-notes/maps/pr-115254-map.yaml | 6 +- .../release-notes/maps/pr-115260-map.yaml | 6 +- .../release-notes/maps/pr-115268-map.yaml | 12 +- .../release-notes/maps/pr-115277-map.yaml | 6 +- .../release-notes/maps/pr-115283-map.yaml | 6 +- .../release-notes/maps/pr-115310-map.yaml | 6 +- .../release-notes/maps/pr-115322-map.yaml | 10 +- .../release-notes/maps/pr-115336-map.yaml | 6 +- .../release-notes/maps/pr-115341-map.yaml | 6 +- .../release-notes/maps/pr-115346-map.yaml | 8 +- .../release-notes/maps/pr-115349-map.yaml | 10 +- .../release-notes/maps/pr-115354-map.yaml | 12 +- .../release-notes/maps/pr-115371-map.yaml | 8 +- .../release-notes/maps/pr-115384-map.yaml | 6 +- .../release-notes/maps/pr-115391-map.yaml | 10 +- .../release-notes/maps/pr-115402-map.yaml | 12 +- .../release-notes/maps/pr-115412-map.yaml | 6 +- .../release-notes/maps/pr-115420-map.yaml | 10 +- .../release-notes/maps/pr-115434-map.yaml | 6 +- .../release-notes/maps/pr-115447-map.yaml | 8 +- .../release-notes/maps/pr-115451-map.yaml | 6 +- .../release-notes/maps/pr-115454-map.yaml | 6 +- .../release-notes/maps/pr-115464-map.yaml | 10 +- .../release-notes/maps/pr-115480-map.yaml | 8 +- .../release-notes/maps/pr-115503-map.yaml | 8 +- .../release-notes/maps/pr-115569-map.yaml | 6 +- .../release-notes/maps/pr-115575-map.yaml | 8 +- .../release-notes/maps/pr-115577-map.yaml | 8 +- .../release-notes/maps/pr-115590-map.yaml | 8 +- .../release-notes/maps/pr-115603-map.yaml | 6 +- .../release-notes/maps/pr-115606-map.yaml | 8 +- .../release-notes/maps/pr-115610-map.yaml | 8 +- .../release-notes/maps/pr-115620-map.yaml | 10 +- .../release-notes/maps/pr-115621-map.yaml | 8 +- .../release-notes/maps/pr-115652-map.yaml | 10 +- .../release-notes/maps/pr-115655-map.yaml | 10 +- .../release-notes/maps/pr-115668-map.yaml | 10 +- .../release-notes/maps/pr-115690-map.yaml | 6 +- .../release-notes/maps/pr-115709-map.yaml | 6 +- .../release-notes/maps/pr-115739-map.yaml | 6 +- .../release-notes/maps/pr-115747-map.yaml | 16 +- .../release-notes/maps/pr-115750-map.yaml | 8 +- .../release-notes/maps/pr-115758-map.yaml | 6 +- .../release-notes/maps/pr-115769-map.yaml | 8 +- .../release-notes/maps/pr-115770-map.yaml | 8 +- .../release-notes/maps/pr-115786-map.yaml | 6 +- .../release-notes/maps/pr-115800-map.yaml | 6 +- .../release-notes/maps/pr-115815-map.yaml | 6 +- .../release-notes/maps/pr-115840-map.yaml | 6 +- .../release-notes/maps/pr-115856-map.yaml | 6 +- .../release-notes/maps/pr-115879-map.yaml | 8 +- .../release-notes/maps/pr-115893-map.yaml | 6 +- .../release-notes/maps/pr-115904-map.yaml | 6 +- .../release-notes/maps/pr-115919-map.yaml | 10 +- .../release-notes/maps/pr-115928-map.yaml | 8 +- .../release-notes/maps/pr-115967-map.yaml | 8 +- .../release-notes/maps/pr-115969-map.yaml | 6 +- .../release-notes/maps/pr-115973-map.yaml | 10 +- .../release-notes/maps/pr-116010-map.yaml | 10 +- .../release-notes/maps/pr-116015-map.yaml | 6 +- .../release-notes/maps/pr-116018-map.yaml | 8 +- .../release-notes/maps/pr-116033-map.yaml | 6 +- .../release-notes/maps/pr-116043-map.yaml | 10 +- .../release-notes/maps/pr-116046-map.yaml | 6 +- .../release-notes/maps/pr-116066-map.yaml | 6 +- .../release-notes/maps/pr-116074-map.yaml | 8 +- .../release-notes/maps/pr-116093-map.yaml | 6 +- .../release-notes/maps/pr-116108-map.yaml | 6 +- .../release-notes/maps/pr-116119-map.yaml | 6 +- .../release-notes/maps/pr-116121-map.yaml | 6 +- .../release-notes/maps/pr-116144-map.yaml | 10 +- .../release-notes/maps/pr-116155-map.yaml | 10 +- .../release-notes/maps/pr-116161-map.yaml | 8 +- .../release-notes/maps/pr-116167-map.yaml | 6 +- .../release-notes/maps/pr-116171-map.yaml | 6 +- .../release-notes/maps/pr-116172-map.yaml | 10 +- .../release-notes/maps/pr-116201-map.yaml | 8 +- .../release-notes/maps/pr-116205-map.yaml | 28 +- .../release-notes/maps/pr-116219-map.yaml | 8 +- .../release-notes/maps/pr-116233-map.yaml | 10 +- .../release-notes/maps/pr-116235-map.yaml | 6 +- .../release-notes/maps/pr-116255-map.yaml | 14 +- .../release-notes/maps/pr-116287-map.yaml | 6 +- .../release-notes/maps/pr-116291-map.yaml | 6 +- .../release-notes/maps/pr-116293-map.yaml | 10 +- .../release-notes/maps/pr-116299-map.yaml | 16 +- .../release-notes/maps/pr-116301-map.yaml | 6 +- .../release-notes/maps/pr-116332-map.yaml | 10 +- .../release-notes/maps/pr-116350-map.yaml | 8 +- .../release-notes/maps/pr-116351-map.yaml | 6 +- .../release-notes/maps/pr-116353-map.yaml | 12 +- .../release-notes/maps/pr-116420-map.yaml | 8 +- .../release-notes/maps/pr-116425-map.yaml | 6 +- .../release-notes/maps/pr-116436-map.yaml | 8 +- .../release-notes/maps/pr-116450-map.yaml | 6 +- .../release-notes/maps/pr-116500-map.yaml | 6 +- .../release-notes/maps/pr-116501-map.yaml | 6 +- .../release-notes/maps/pr-116510-map.yaml | 6 +- .../release-notes/maps/pr-116529-map.yaml | 6 +- .../release-notes/maps/pr-116533-map.yaml | 6 +- .../release-notes/maps/pr-116535-map.yaml | 6 +- .../release-notes/maps/pr-116550-map.yaml | 10 +- .../release-notes/maps/pr-116554-map.yaml | 12 +- .../release-notes/maps/pr-116558-map.yaml | 8 +- .../release-notes/maps/pr-116576-map.yaml | 10 +- .../release-notes/maps/pr-116590-map.yaml | 6 +- .../release-notes/maps/pr-116595-map.yaml | 6 +- .../release-notes/maps/pr-116607-map.yaml | 8 +- .../release-notes/maps/pr-116610-map.yaml | 6 +- .../release-notes/maps/pr-116612-map.yaml | 12 +- .../release-notes/maps/pr-116621-map.yaml | 6 +- .../release-notes/maps/pr-116684-map.yaml | 6 +- .../release-notes/maps/pr-116702-map.yaml | 6 +- .../release-notes/maps/pr-116770-map.yaml | 10 +- .../release-notes/maps/pr-96120-map.yaml | 10 +- .../release-notes/release-notes-draft.json | 17612 ++++++++-------- .../release-notes/release-notes-draft.md | 962 +- .../sessions/maps-1674623486.json | 1036 +- .../sessions/maps-1676748443.json | 492 +- .../sessions/maps-1677855845.json | 1892 +- .../sessions/maps-1680072916.json | 388 +- .../sessions/maps-1680985901.json | 948 +- releases/release-1.27/release-team.md | 34 +- releases/release-1.28/README.md | 232 +- releases/release-1.28/exceptions.yaml | 196 +- .../release-notes/maps/pr-113209-map.yaml | 8 +- .../release-notes/maps/pr-113245-map.yaml | 8 +- .../release-notes/maps/pr-113362-map.yaml | 10 +- .../release-notes/maps/pr-113969-map.yaml | 6 +- .../release-notes/maps/pr-114307-map.yaml | 6 +- .../release-notes/maps/pr-114606-map.yaml | 8 +- .../release-notes/maps/pr-114746-map.yaml | 6 +- .../release-notes/maps/pr-114875-map.yaml | 6 +- .../release-notes/maps/pr-114909-map.yaml | 8 +- .../release-notes/maps/pr-115133-map.yaml | 8 +- .../release-notes/maps/pr-115357-map.yaml | 8 +- .../release-notes/maps/pr-115554-map.yaml | 18 +- .../release-notes/maps/pr-115694-map.yaml | 6 +- .../release-notes/maps/pr-115813-map.yaml | 14 +- .../release-notes/maps/pr-115835-map.yaml | 6 +- .../release-notes/maps/pr-115843-map.yaml | 6 +- .../release-notes/maps/pr-116104-map.yaml | 6 +- .../release-notes/maps/pr-116208-map.yaml | 8 +- .../release-notes/maps/pr-116327-map.yaml | 8 +- .../release-notes/maps/pr-116374-map.yaml | 6 +- .../release-notes/maps/pr-116408-map.yaml | 6 +- .../release-notes/maps/pr-116469-map.yaml | 8 +- .../release-notes/maps/pr-116470-map.yaml | 6 +- .../release-notes/maps/pr-116530-map.yaml | 6 +- .../release-notes/maps/pr-116685-map.yaml | 10 +- .../release-notes/maps/pr-116720-map.yaml | 10 +- .../release-notes/maps/pr-116729-map.yaml | 8 +- .../release-notes/maps/pr-116748-map.yaml | 6 +- .../release-notes/maps/pr-116749-map.yaml | 8 +- .../release-notes/maps/pr-116755-map.yaml | 6 +- .../release-notes/maps/pr-116835-map.yaml | 6 +- .../release-notes/maps/pr-116849-map.yaml | 6 +- .../release-notes/maps/pr-116865-map.yaml | 6 +- .../release-notes/maps/pr-116879-map.yaml | 12 +- .../release-notes/maps/pr-116901-map.yaml | 6 +- .../release-notes/maps/pr-116968-map.yaml | 8 +- .../release-notes/maps/pr-117002-map.yaml | 10 +- .../release-notes/maps/pr-117015-map.yaml | 8 +- .../release-notes/maps/pr-117020-map.yaml | 8 +- .../release-notes/maps/pr-117034-map.yaml | 10 +- .../release-notes/maps/pr-117055-map.yaml | 8 +- .../release-notes/maps/pr-117079-map.yaml | 8 +- .../release-notes/maps/pr-117102-map.yaml | 6 +- .../release-notes/maps/pr-117108-map.yaml | 12 +- .../release-notes/maps/pr-117120-map.yaml | 6 +- .../release-notes/maps/pr-117138-map.yaml | 8 +- .../release-notes/maps/pr-117211-map.yaml | 10 +- .../release-notes/maps/pr-117214-map.yaml | 8 +- .../release-notes/maps/pr-117216-map.yaml | 6 +- .../release-notes/maps/pr-117237-map.yaml | 10 +- .../release-notes/maps/pr-117238-map.yaml | 8 +- .../release-notes/maps/pr-117243-map.yaml | 6 +- .../release-notes/maps/pr-117245-map.yaml | 8 +- .../release-notes/maps/pr-117275-map.yaml | 6 +- .../release-notes/maps/pr-117295-map.yaml | 26 +- .../release-notes/maps/pr-117301-map.yaml | 10 +- .../release-notes/maps/pr-117330-map.yaml | 6 +- .../release-notes/maps/pr-117335-map.yaml | 6 +- .../release-notes/maps/pr-117350-map.yaml | 6 +- .../release-notes/maps/pr-117352-map.yaml | 6 +- .../release-notes/maps/pr-117368-map.yaml | 6 +- .../release-notes/maps/pr-117386-map.yaml | 6 +- .../release-notes/maps/pr-117391-map.yaml | 6 +- .../release-notes/maps/pr-117399-map.yaml | 6 +- .../release-notes/maps/pr-117408-map.yaml | 6 +- .../release-notes/maps/pr-117448-map.yaml | 8 +- .../release-notes/maps/pr-117495-map.yaml | 8 +- .../release-notes/maps/pr-117535-map.yaml | 8 +- .../release-notes/maps/pr-117543-map.yaml | 6 +- .../release-notes/maps/pr-117545-map.yaml | 6 +- .../release-notes/maps/pr-117550-map.yaml | 8 +- .../release-notes/maps/pr-117568-map.yaml | 8 +- .../release-notes/maps/pr-117586-map.yaml | 8 +- .../release-notes/maps/pr-117594-map.yaml | 8 +- .../release-notes/maps/pr-117633-map.yaml | 6 +- .../release-notes/maps/pr-117649-map.yaml | 10 +- .../release-notes/maps/pr-117655-map.yaml | 6 +- .../release-notes/maps/pr-117656-map.yaml | 6 +- .../release-notes/maps/pr-117660-map.yaml | 16 +- .../release-notes/maps/pr-117683-map.yaml | 10 +- .../release-notes/maps/pr-117687-map.yaml | 8 +- .../release-notes/maps/pr-117705-map.yaml | 6 +- .../release-notes/maps/pr-117717-map.yaml | 8 +- .../release-notes/maps/pr-117784-map.yaml | 6 +- .../release-notes/maps/pr-117787-map.yaml | 14 +- .../release-notes/maps/pr-117791-map.yaml | 6 +- .../release-notes/maps/pr-117800-map.yaml | 6 +- .../release-notes/maps/pr-117835-map.yaml | 8 +- .../release-notes/maps/pr-117861-map.yaml | 10 +- .../release-notes/maps/pr-117865-map.yaml | 6 +- .../release-notes/maps/pr-117877-map.yaml | 8 +- .../release-notes/maps/pr-117879-map.yaml | 6 +- .../release-notes/maps/pr-117913-map.yaml | 6 +- .../release-notes/maps/pr-117930-map.yaml | 12 +- .../release-notes/maps/pr-117984-map.yaml | 12 +- .../release-notes/maps/pr-118000-map.yaml | 6 +- .../release-notes/maps/pr-118009-map.yaml | 6 +- .../release-notes/maps/pr-118013-map.yaml | 16 +- .../release-notes/maps/pr-118018-map.yaml | 8 +- .../release-notes/maps/pr-118025-map.yaml | 10 +- .../release-notes/maps/pr-118029-map.yaml | 6 +- .../release-notes/maps/pr-118049-map.yaml | 8 +- .../release-notes/maps/pr-118055-map.yaml | 6 +- .../release-notes/maps/pr-118069-map.yaml | 10 +- .../release-notes/maps/pr-118102-map.yaml | 8 +- .../release-notes/maps/pr-118104-map.yaml | 8 +- .../release-notes/maps/pr-118137-map.yaml | 8 +- .../release-notes/maps/pr-118143-map.yaml | 10 +- .../release-notes/maps/pr-118160-map.yaml | 14 +- .../release-notes/maps/pr-118204-map.yaml | 8 +- .../release-notes/maps/pr-118212-map.yaml | 10 +- .../release-notes/maps/pr-118228-map.yaml | 6 +- .../release-notes/maps/pr-118229-map.yaml | 6 +- .../release-notes/maps/pr-118235-map.yaml | 6 +- .../release-notes/maps/pr-118236-map.yaml | 6 +- .../release-notes/maps/pr-118270-map.yaml | 8 +- .../release-notes/maps/pr-118278-map.yaml | 8 +- .../release-notes/maps/pr-118303-map.yaml | 10 +- .../release-notes/maps/pr-118329-map.yaml | 6 +- .../release-notes/maps/pr-118386-map.yaml | 6 +- .../release-notes/maps/pr-118460-map.yaml | 10 +- .../release-notes/maps/pr-118480-map.yaml | 8 +- .../release-notes/maps/pr-118497-map.yaml | 6 +- .../release-notes/maps/pr-118499-map.yaml | 10 +- .../release-notes/maps/pr-118507-map.yaml | 6 +- .../release-notes/maps/pr-118508-map.yaml | 8 +- .../release-notes/maps/pr-118530-map.yaml | 6 +- .../release-notes/maps/pr-118552-map.yaml | 12 +- .../release-notes/maps/pr-118567-map.yaml | 8 +- .../release-notes/maps/pr-118578-map.yaml | 8 +- .../release-notes/maps/pr-118601-map.yaml | 12 +- .../release-notes/maps/pr-118608-map.yaml | 10 +- .../release-notes/maps/pr-118686-map.yaml | 12 +- .../release-notes/maps/pr-118691-map.yaml | 8 +- .../release-notes/maps/pr-118716-map.yaml | 8 +- .../release-notes/maps/pr-118724-map.yaml | 8 +- .../release-notes/maps/pr-118759-map.yaml | 6 +- .../release-notes/maps/pr-118763-map.yaml | 10 +- .../release-notes/maps/pr-118764-map.yaml | 30 +- .../release-notes/maps/pr-118770-map.yaml | 12 +- .../release-notes/maps/pr-118772-map.yaml | 6 +- .../release-notes/maps/pr-118774-map.yaml | 6 +- .../release-notes/maps/pr-118786-map.yaml | 8 +- .../release-notes/maps/pr-118808-map.yaml | 12 +- .../release-notes/maps/pr-118810-map.yaml | 8 +- .../release-notes/maps/pr-118812-map.yaml | 8 +- .../release-notes/maps/pr-118816-map.yaml | 8 +- .../release-notes/maps/pr-118817-map.yaml | 8 +- .../release-notes/maps/pr-118828-map.yaml | 10 +- .../release-notes/maps/pr-118842-map.yaml | 6 +- .../release-notes/maps/pr-118865-map.yaml | 8 +- .../release-notes/maps/pr-118866-map.yaml | 8 +- .../release-notes/maps/pr-118876-map.yaml | 8 +- .../release-notes/maps/pr-118879-map.yaml | 6 +- .../release-notes/maps/pr-118895-map.yaml | 6 +- .../release-notes/maps/pr-118915-map.yaml | 8 +- .../release-notes/maps/pr-118922-map.yaml | 12 +- .../release-notes/maps/pr-118936-map.yaml | 14 +- .../release-notes/maps/pr-118945-map.yaml | 10 +- .../release-notes/maps/pr-118953-map.yaml | 6 +- .../release-notes/maps/pr-118973-map.yaml | 6 +- .../release-notes/maps/pr-118986-map.yaml | 8 +- .../release-notes/maps/pr-118990-map.yaml | 10 +- .../release-notes/maps/pr-118999-map.yaml | 10 +- .../release-notes/maps/pr-119007-map.yaml | 10 +- .../release-notes/maps/pr-119008-map.yaml | 24 +- .../release-notes/maps/pr-119012-map.yaml | 8 +- .../release-notes/maps/pr-119033-map.yaml | 6 +- .../release-notes/maps/pr-119078-map.yaml | 6 +- .../release-notes/maps/pr-119095-map.yaml | 6 +- .../release-notes/maps/pr-119110-map.yaml | 8 +- .../release-notes/maps/pr-119159-map.yaml | 8 +- .../release-notes/maps/pr-119185-map.yaml | 8 +- .../release-notes/maps/pr-119225-map.yaml | 6 +- .../release-notes/maps/pr-119238-map.yaml | 6 +- .../release-notes/maps/pr-119247-map.yaml | 6 +- .../release-notes/maps/pr-119286-map.yaml | 6 +- .../release-notes/maps/pr-119294-map.yaml | 6 +- .../release-notes/maps/pr-119301-map.yaml | 6 +- .../release-notes/maps/pr-119311-map.yaml | 8 +- .../release-notes/maps/pr-119324-map.yaml | 6 +- .../release-notes/maps/pr-119351-map.yaml | 8 +- .../release-notes/maps/pr-119365-map.yaml | 6 +- .../release-notes/maps/pr-119374-map.yaml | 12 +- .../release-notes/maps/pr-119380-map.yaml | 6 +- .../release-notes/maps/pr-119390-map.yaml | 6 +- .../release-notes/maps/pr-119409-map.yaml | 8 +- .../release-notes/maps/pr-119422-map.yaml | 6 +- .../release-notes/maps/pr-119434-map.yaml | 8 +- .../release-notes/maps/pr-94021-map.yaml | 6 +- .../release-notes/release-notes-draft.json | 14004 ++++++------ .../release-notes/release-notes-draft.md | 890 +- .../sessions/maps-1685636765.json | 484 +- .../sessions/maps-1686669866.json | 1028 +- .../sessions/maps-1687796782.json | 188 +- .../sessions/maps-1689613709.json | 388 +- .../sessions/maps-1690641998.json | 724 +- .../sessions/maps-1691082306.json | 84 +- .../sessions/maps-1691936847.json | 20 +- releases/release-1.28/release-team.md | 34 +- releases/release-1.29/README.md | 256 +- releases/release-1.29/exceptions.yaml | 160 +- releases/release-1.29/logo/README.md | 48 +- .../release-notes/maps/pr-100448-map.yaml | 8 +- .../release-notes/maps/pr-113374-map.yaml | 8 +- .../release-notes/maps/pr-114095-map.yaml | 10 +- .../release-notes/maps/pr-115702-map.yaml | 8 +- .../release-notes/maps/pr-116065-map.yaml | 8 +- .../release-notes/maps/pr-116252-map.yaml | 12 +- .../release-notes/maps/pr-116516-map.yaml | 8 +- .../release-notes/maps/pr-116752-map.yaml | 6 +- .../release-notes/maps/pr-116803-map.yaml | 6 +- .../release-notes/maps/pr-116884-map.yaml | 6 +- .../release-notes/maps/pr-116938-map.yaml | 8 +- .../release-notes/maps/pr-117411-map.yaml | 6 +- .../release-notes/maps/pr-117502-map.yaml | 14 +- .../release-notes/maps/pr-117503-map.yaml | 10 +- .../release-notes/maps/pr-117615-map.yaml | 8 +- .../release-notes/maps/pr-117720-map.yaml | 8 +- .../release-notes/maps/pr-117992-map.yaml | 8 +- .../release-notes/maps/pr-118146-map.yaml | 8 +- .../release-notes/maps/pr-118189-map.yaml | 6 +- .../release-notes/maps/pr-118299-map.yaml | 8 +- .../release-notes/maps/pr-118455-map.yaml | 8 +- .../release-notes/maps/pr-118568-map.yaml | 6 +- .../release-notes/maps/pr-118619-map.yaml | 8 +- .../release-notes/maps/pr-118647-map.yaml | 8 +- .../release-notes/maps/pr-118653-map.yaml | 8 +- .../release-notes/maps/pr-118704-map.yaml | 8 +- .../release-notes/maps/pr-118705-map.yaml | 8 +- .../release-notes/maps/pr-118748-map.yaml | 8 +- .../release-notes/maps/pr-118846-map.yaml | 12 +- .../release-notes/maps/pr-118923-map.yaml | 12 +- .../release-notes/maps/pr-118942-map.yaml | 12 +- .../release-notes/maps/pr-118996-map.yaml | 6 +- .../release-notes/maps/pr-119026-map.yaml | 8 +- .../release-notes/maps/pr-119049-map.yaml | 8 +- .../release-notes/maps/pr-119100-map.yaml | 6 +- .../release-notes/maps/pr-119105-map.yaml | 8 +- .../release-notes/maps/pr-119109-map.yaml | 8 +- .../release-notes/maps/pr-119142-map.yaml | 12 +- .../release-notes/maps/pr-119150-map.yaml | 6 +- .../release-notes/maps/pr-119155-map.yaml | 12 +- .../release-notes/maps/pr-119208-map.yaml | 6 +- .../release-notes/maps/pr-119290-map.yaml | 12 +- .../release-notes/maps/pr-119317-map.yaml | 10 +- .../release-notes/maps/pr-119346-map.yaml | 10 +- .../release-notes/maps/pr-119385-map.yaml | 10 +- .../release-notes/maps/pr-119396-map.yaml | 12 +- .../release-notes/maps/pr-119399-map.yaml | 6 +- .../release-notes/maps/pr-119410-map.yaml | 8 +- .../release-notes/maps/pr-119503-map.yaml | 6 +- .../release-notes/maps/pr-119522-map.yaml | 8 +- .../release-notes/maps/pr-119537-map.yaml | 8 +- .../release-notes/maps/pr-119556-map.yaml | 8 +- .../release-notes/maps/pr-119557-map.yaml | 10 +- .../release-notes/maps/pr-119592-map.yaml | 8 +- .../release-notes/maps/pr-119659-map.yaml | 6 +- .../release-notes/maps/pr-119665-map.yaml | 10 +- .../release-notes/maps/pr-119705-map.yaml | 6 +- .../release-notes/maps/pr-119732-map.yaml | 6 +- .../release-notes/maps/pr-119735-map.yaml | 8 +- .../release-notes/maps/pr-119753-map.yaml | 6 +- .../release-notes/maps/pr-119761-map.yaml | 6 +- .../release-notes/maps/pr-119762-map.yaml | 10 +- .../release-notes/maps/pr-119769-map.yaml | 8 +- .../release-notes/maps/pr-119776-map.yaml | 8 +- .../release-notes/maps/pr-119778-map.yaml | 8 +- .../release-notes/maps/pr-119785-map.yaml | 10 +- .../release-notes/maps/pr-119789-map.yaml | 18 +- .../release-notes/maps/pr-119795-map.yaml | 6 +- .../release-notes/maps/pr-119796-map.yaml | 6 +- .../release-notes/maps/pr-119825-map.yaml | 8 +- .../release-notes/maps/pr-119859-map.yaml | 10 +- .../release-notes/maps/pr-119870-map.yaml | 12 +- .../release-notes/maps/pr-119878-map.yaml | 8 +- .../release-notes/maps/pr-119933-map.yaml | 6 +- .../release-notes/maps/pr-119944-map.yaml | 8 +- .../release-notes/maps/pr-119946-map.yaml | 10 +- .../release-notes/maps/pr-119969-map.yaml | 6 +- .../release-notes/maps/pr-119986-map.yaml | 8 +- .../release-notes/maps/pr-119994-map.yaml | 10 +- .../release-notes/maps/pr-120001-map.yaml | 6 +- .../release-notes/maps/pr-120018-map.yaml | 14 +- .../release-notes/maps/pr-120064-map.yaml | 10 +- .../release-notes/maps/pr-120069-map.yaml | 8 +- .../release-notes/maps/pr-120072-map.yaml | 10 +- .../release-notes/maps/pr-120105-map.yaml | 6 +- .../release-notes/maps/pr-120108-map.yaml | 6 +- .../release-notes/maps/pr-120116-map.yaml | 6 +- .../release-notes/maps/pr-120118-map.yaml | 8 +- .../release-notes/maps/pr-120119-map.yaml | 8 +- .../release-notes/maps/pr-120154-map.yaml | 14 +- .../release-notes/maps/pr-120198-map.yaml | 12 +- .../release-notes/maps/pr-120204-map.yaml | 6 +- .../release-notes/maps/pr-120213-map.yaml | 10 +- .../release-notes/maps/pr-120228-map.yaml | 10 +- .../release-notes/maps/pr-120233-map.yaml | 6 +- .../release-notes/maps/pr-120248-map.yaml | 8 +- .../release-notes/maps/pr-120255-map.yaml | 12 +- .../release-notes/maps/pr-120257-map.yaml | 6 +- .../release-notes/maps/pr-120269-map.yaml | 8 +- .../release-notes/maps/pr-120274-map.yaml | 12 +- .../release-notes/maps/pr-120275-map.yaml | 14 +- .../release-notes/maps/pr-120279-map.yaml | 8 +- .../release-notes/maps/pr-120281-map.yaml | 8 +- .../release-notes/maps/pr-120312-map.yaml | 8 +- .../release-notes/maps/pr-120327-map.yaml | 6 +- .../release-notes/maps/pr-120330-map.yaml | 6 +- .../release-notes/maps/pr-120334-map.yaml | 16 +- .../release-notes/maps/pr-120336-map.yaml | 8 +- .../release-notes/maps/pr-120338-map.yaml | 8 +- .../release-notes/maps/pr-120352-map.yaml | 6 +- .../release-notes/maps/pr-120354-map.yaml | 12 +- .../release-notes/maps/pr-120371-map.yaml | 8 +- .../release-notes/maps/pr-120375-map.yaml | 6 +- .../release-notes/maps/pr-120380-map.yaml | 10 +- .../release-notes/maps/pr-120398-map.yaml | 8 +- .../release-notes/maps/pr-120400-map.yaml | 8 +- .../release-notes/maps/pr-120412-map.yaml | 10 +- .../release-notes/maps/pr-120413-map.yaml | 10 +- .../release-notes/maps/pr-120416-map.yaml | 8 +- .../release-notes/maps/pr-120427-map.yaml | 8 +- .../release-notes/maps/pr-120428-map.yaml | 10 +- .../release-notes/maps/pr-120438-map.yaml | 18 +- .../release-notes/maps/pr-120448-map.yaml | 8 +- .../release-notes/maps/pr-120461-map.yaml | 8 +- .../release-notes/maps/pr-120490-map.yaml | 10 +- .../release-notes/maps/pr-120492-map.yaml | 10 +- .../release-notes/maps/pr-120493-map.yaml | 6 +- .../release-notes/maps/pr-120503-map.yaml | 6 +- .../release-notes/maps/pr-120514-map.yaml | 6 +- .../release-notes/maps/pr-120521-map.yaml | 10 +- .../release-notes/maps/pr-120527-map.yaml | 6 +- .../release-notes/maps/pr-120534-map.yaml | 8 +- .../release-notes/maps/pr-120549-map.yaml | 6 +- .../release-notes/maps/pr-120559-map.yaml | 8 +- .../release-notes/maps/pr-120574-map.yaml | 8 +- .../release-notes/maps/pr-120577-map.yaml | 8 +- .../release-notes/maps/pr-120583-map.yaml | 10 +- .../release-notes/maps/pr-120595-map.yaml | 8 +- .../release-notes/maps/pr-120616-map.yaml | 6 +- .../release-notes/maps/pr-120620-map.yaml | 10 +- .../release-notes/maps/pr-120623-map.yaml | 10 +- .../release-notes/maps/pr-120627-map.yaml | 6 +- .../release-notes/maps/pr-120649-map.yaml | 8 +- .../release-notes/maps/pr-120663-map.yaml | 6 +- .../release-notes/maps/pr-120678-map.yaml | 6 +- .../release-notes/maps/pr-120680-map.yaml | 10 +- .../release-notes/maps/pr-120682-map.yaml | 28 +- .../release-notes/maps/pr-120707-map.yaml | 6 +- .../release-notes/maps/pr-120723-map.yaml | 8 +- .../release-notes/maps/pr-120729-map.yaml | 8 +- .../release-notes/maps/pr-120731-map.yaml | 8 +- .../release-notes/maps/pr-120735-map.yaml | 8 +- .../release-notes/maps/pr-120736-map.yaml | 14 +- .../release-notes/maps/pr-120757-map.yaml | 8 +- .../release-notes/maps/pr-120777-map.yaml | 6 +- .../release-notes/maps/pr-120779-map.yaml | 8 +- .../release-notes/maps/pr-120780-map.yaml | 14 +- .../release-notes/maps/pr-120784-map.yaml | 8 +- .../release-notes/maps/pr-120788-map.yaml | 16 +- .../release-notes/maps/pr-120808-map.yaml | 8 +- .../release-notes/maps/pr-120814-map.yaml | 8 +- .../release-notes/maps/pr-120825-map.yaml | 18 +- .../release-notes/maps/pr-120828-map.yaml | 8 +- .../release-notes/maps/pr-120843-map.yaml | 8 +- .../release-notes/maps/pr-120861-map.yaml | 8 +- .../release-notes/maps/pr-120868-map.yaml | 8 +- .../release-notes/maps/pr-120871-map.yaml | 10 +- .../release-notes/maps/pr-120877-map.yaml | 8 +- .../release-notes/maps/pr-120914-map.yaml | 6 +- .../release-notes/maps/pr-120942-map.yaml | 8 +- .../release-notes/maps/pr-120954-map.yaml | 8 +- .../release-notes/maps/pr-121001-map.yaml | 8 +- .../release-notes/maps/pr-121008-map.yaml | 12 +- .../release-notes/maps/pr-121016-map.yaml | 8 +- .../release-notes/maps/pr-121021-map.yaml | 6 +- .../release-notes/maps/pr-121028-map.yaml | 10 +- .../release-notes/maps/pr-121034-map.yaml | 8 +- .../release-notes/maps/pr-121041-map.yaml | 8 +- .../release-notes/maps/pr-121046-map.yaml | 40 +- .../release-notes/maps/pr-121059-map.yaml | 10 +- .../release-notes/maps/pr-121065-map.yaml | 10 +- .../release-notes/maps/pr-121073-map.yaml | 6 +- .../release-notes/maps/pr-121077-map.yaml | 6 +- .../release-notes/maps/pr-121078-map.yaml | 6 +- .../release-notes/maps/pr-121083-map.yaml | 16 +- .../release-notes/maps/pr-121089-map.yaml | 12 +- .../release-notes/maps/pr-121091-map.yaml | 8 +- .../release-notes/maps/pr-121095-map.yaml | 6 +- .../release-notes/maps/pr-121103-map.yaml | 14 +- .../release-notes/maps/pr-121116-map.yaml | 8 +- .../release-notes/maps/pr-121120-map.yaml | 26 +- .../release-notes/maps/pr-121121-map.yaml | 6 +- .../release-notes/maps/pr-121142-map.yaml | 8 +- .../release-notes/maps/pr-121147-map.yaml | 8 +- .../release-notes/maps/pr-121149-map.yaml | 6 +- .../release-notes/maps/pr-121172-map.yaml | 10 +- .../release-notes/maps/pr-121193-map.yaml | 8 +- .../release-notes/maps/pr-121216-map.yaml | 6 +- .../release-notes/maps/pr-121223-map.yaml | 8 +- .../release-notes/maps/pr-121229-map.yaml | 6 +- .../release-notes/maps/pr-121240-map.yaml | 12 +- .../release-notes/maps/pr-121246-map.yaml | 6 +- .../release-notes/maps/pr-121252-map.yaml | 6 +- .../release-notes/maps/pr-121254-map.yaml | 8 +- .../release-notes/maps/pr-121255-map.yaml | 6 +- .../release-notes/maps/pr-121257-map.yaml | 6 +- .../release-notes/maps/pr-121275-map.yaml | 8 +- .../release-notes/maps/pr-121291-map.yaml | 6 +- .../release-notes/maps/pr-121292-map.yaml | 8 +- .../release-notes/maps/pr-121302-map.yaml | 6 +- .../release-notes/maps/pr-121303-map.yaml | 12 +- .../release-notes/maps/pr-121305-map.yaml | 34 +- .../release-notes/maps/pr-121327-map.yaml | 8 +- .../release-notes/maps/pr-121342-map.yaml | 8 +- .../release-notes/maps/pr-121356-map.yaml | 6 +- .../release-notes/maps/pr-121373-map.yaml | 8 +- .../release-notes/maps/pr-121389-map.yaml | 8 +- .../release-notes/maps/pr-121391-map.yaml | 8 +- .../release-notes/maps/pr-121441-map.yaml | 8 +- .../release-notes/maps/pr-121456-map.yaml | 14 +- .../release-notes/maps/pr-121459-map.yaml | 8 +- .../release-notes/maps/pr-121460-map.yaml | 8 +- .../release-notes/maps/pr-121462-map.yaml | 8 +- .../release-notes/maps/pr-121477-map.yaml | 6 +- .../release-notes/maps/pr-121481-map.yaml | 8 +- .../release-notes/maps/pr-121485-map.yaml | 8 +- .../release-notes/maps/pr-121491-map.yaml | 6 +- .../release-notes/maps/pr-121566-map.yaml | 6 +- .../release-notes/maps/pr-121567-map.yaml | 6 +- .../release-notes/maps/pr-121571-map.yaml | 10 +- .../release-notes/maps/pr-121575-map.yaml | 14 +- .../release-notes/maps/pr-121577-map.yaml | 6 +- .../release-notes/maps/pr-121579-map.yaml | 8 +- .../release-notes/maps/pr-121614-map.yaml | 6 +- .../release-notes/maps/pr-121628-map.yaml | 8 +- .../release-notes/maps/pr-121632-map.yaml | 12 +- .../release-notes/maps/pr-121638-map.yaml | 8 +- .../release-notes/maps/pr-121739-map.yaml | 6 +- .../release-notes/maps/pr-121764-map.yaml | 6 +- .../release-notes/maps/pr-121765-map.yaml | 6 +- .../release-notes/maps/pr-121808-map.yaml | 6 +- .../release-notes/maps/pr-121837-map.yaml | 10 +- .../release-notes/maps/pr-121841-map.yaml | 8 +- .../release-notes/maps/pr-121851-map.yaml | 6 +- .../release-notes/maps/pr-121867-map.yaml | 12 +- .../release-notes/maps/pr-121871-map.yaml | 6 +- .../release-notes/release-notes-draft.json | 14168 ++++++------- .../release-notes/release-notes-draft.md | 898 +- .../sessions/maps-1695733993.json | 1084 +- .../sessions/maps-1697646382.json | 204 +- .../sessions/maps-1700042444.json | 1164 +- .../sessions/maps-1700642920.json | 132 +- .../sessions/maps-1701205965.json | 2532 +-- .../sessions/maps-1702051199.json | 28 +- releases/release-1.29/release-team.md | 34 +- releases/release-1.3/README.md | 160 +- releases/release-1.3/features-1.3.md | 306 +- releases/release-1.3/features.csv | 28 +- releases/release-1.3/release-1.3.md | 2 +- releases/release-1.30/README.md | 184 +- releases/release-1.30/exceptions.yaml | 302 +- .../release-notes/maps/pr-112957-map.yaml | 10 +- .../release-notes/maps/pr-114301-map.yaml | 12 +- .../release-notes/maps/pr-114672-map.yaml | 14 +- .../release-notes/maps/pr-115768-map.yaml | 10 +- .../release-notes/maps/pr-116209-map.yaml | 8 +- .../release-notes/maps/pr-117024-map.yaml | 10 +- .../release-notes/maps/pr-117046-map.yaml | 10 +- .../release-notes/maps/pr-119177-map.yaml | 12 +- .../release-notes/maps/pr-119200-map.yaml | 8 +- .../release-notes/maps/pr-119779-map.yaml | 20 +- .../release-notes/maps/pr-119923-map.yaml | 10 +- .../release-notes/maps/pr-120111-map.yaml | 10 +- .../release-notes/maps/pr-120159-map.yaml | 6 +- .../release-notes/maps/pr-120246-map.yaml | 10 +- .../release-notes/maps/pr-120291-map.yaml | 10 +- .../release-notes/maps/pr-120344-map.yaml | 18 +- .../release-notes/maps/pr-120346-map.yaml | 10 +- .../release-notes/maps/pr-120642-map.yaml | 10 +- .../release-notes/maps/pr-120718-map.yaml | 10 +- .../release-notes/maps/pr-120902-map.yaml | 8 +- .../release-notes/maps/pr-121461-map.yaml | 10 +- .../release-notes/maps/pr-121512-map.yaml | 6 +- .../release-notes/maps/pr-121669-map.yaml | 6 +- .../release-notes/maps/pr-121719-map.yaml | 12 +- .../release-notes/maps/pr-121720-map.yaml | 10 +- .../release-notes/maps/pr-121736-map.yaml | 6 +- .../release-notes/maps/pr-121778-map.yaml | 6 +- .../release-notes/maps/pr-121815-map.yaml | 10 +- .../release-notes/maps/pr-121834-map.yaml | 10 +- .../release-notes/maps/pr-121876-map.yaml | 10 +- .../release-notes/maps/pr-121908-map.yaml | 6 +- .../release-notes/maps/pr-121912-map.yaml | 10 +- .../release-notes/maps/pr-121919-map.yaml | 10 +- .../release-notes/maps/pr-121946-map.yaml | 10 +- .../release-notes/maps/pr-121952-map.yaml | 6 +- .../release-notes/maps/pr-121954-map.yaml | 10 +- .../release-notes/maps/pr-121958-map.yaml | 10 +- .../release-notes/maps/pr-121983-map.yaml | 10 +- .../release-notes/maps/pr-122013-map.yaml | 18 +- .../release-notes/maps/pr-122022-map.yaml | 10 +- .../release-notes/maps/pr-122023-map.yaml | 8 +- .../release-notes/maps/pr-122030-map.yaml | 18 +- .../release-notes/maps/pr-122032-map.yaml | 10 +- .../release-notes/maps/pr-122056-map.yaml | 10 +- .../release-notes/maps/pr-122058-map.yaml | 10 +- .../release-notes/maps/pr-122068-map.yaml | 10 +- .../release-notes/maps/pr-122069-map.yaml | 10 +- .../release-notes/maps/pr-122079-map.yaml | 8 +- .../release-notes/maps/pr-122086-map.yaml | 10 +- .../release-notes/maps/pr-122088-map.yaml | 8 +- .../release-notes/maps/pr-122134-map.yaml | 8 +- .../release-notes/maps/pr-122136-map.yaml | 10 +- .../release-notes/maps/pr-122137-map.yaml | 8 +- .../release-notes/maps/pr-122138-map.yaml | 10 +- .../release-notes/maps/pr-122139-map.yaml | 10 +- .../release-notes/maps/pr-122142-map.yaml | 10 +- .../release-notes/maps/pr-122178-map.yaml | 8 +- .../release-notes/maps/pr-122195-map.yaml | 12 +- .../release-notes/maps/pr-122197-map.yaml | 6 +- .../release-notes/maps/pr-122204-map.yaml | 14 +- .../release-notes/maps/pr-122211-map.yaml | 8 +- .../release-notes/maps/pr-122225-map.yaml | 10 +- .../release-notes/maps/pr-122231-map.yaml | 10 +- .../release-notes/maps/pr-122233-map.yaml | 10 +- .../release-notes/maps/pr-122271-map.yaml | 10 +- .../release-notes/maps/pr-122276-map.yaml | 10 +- .../release-notes/maps/pr-122285-map.yaml | 10 +- .../release-notes/maps/pr-122288-map.yaml | 10 +- .../release-notes/maps/pr-122292-map.yaml | 10 +- .../release-notes/maps/pr-122293-map.yaml | 10 +- .../release-notes/maps/pr-122296-map.yaml | 6 +- .../release-notes/maps/pr-122309-map.yaml | 6 +- .../release-notes/maps/pr-122329-map.yaml | 10 +- .../release-notes/maps/pr-122334-map.yaml | 10 +- .../release-notes/maps/pr-122339-map.yaml | 8 +- .../release-notes/maps/pr-122341-map.yaml | 10 +- .../release-notes/maps/pr-122346-map.yaml | 10 +- .../release-notes/maps/pr-122393-map.yaml | 6 +- .../release-notes/maps/pr-122409-map.yaml | 10 +- .../release-notes/maps/pr-122415-map.yaml | 12 +- .../release-notes/maps/pr-122422-map.yaml | 10 +- .../release-notes/maps/pr-122435-map.yaml | 10 +- .../release-notes/maps/pr-122447-map.yaml | 10 +- .../release-notes/maps/pr-122449-map.yaml | 6 +- .../release-notes/maps/pr-122456-map.yaml | 10 +- .../release-notes/maps/pr-122468-map.yaml | 10 +- .../release-notes/maps/pr-122475-map.yaml | 8 +- .../release-notes/maps/pr-122477-map.yaml | 10 +- .../release-notes/maps/pr-122493-map.yaml | 10 +- .../release-notes/maps/pr-122498-map.yaml | 10 +- .../release-notes/maps/pr-122503-map.yaml | 6 +- .../release-notes/maps/pr-122508-map.yaml | 10 +- .../release-notes/maps/pr-122530-map.yaml | 10 +- .../release-notes/maps/pr-122555-map.yaml | 10 +- .../release-notes/maps/pr-122558-map.yaml | 10 +- .../release-notes/maps/pr-122571-map.yaml | 10 +- .../release-notes/maps/pr-122574-map.yaml | 8 +- .../release-notes/maps/pr-122576-map.yaml | 8 +- .../release-notes/maps/pr-122578-map.yaml | 10 +- .../release-notes/maps/pr-122589-map.yaml | 12 +- .../release-notes/maps/pr-122600-map.yaml | 10 +- .../release-notes/maps/pr-122612-map.yaml | 10 +- .../release-notes/maps/pr-122614-map.yaml | 10 +- .../release-notes/maps/pr-122618-map.yaml | 10 +- .../release-notes/maps/pr-122635-map.yaml | 6 +- .../release-notes/maps/pr-122640-map.yaml | 10 +- .../release-notes/maps/pr-122647-map.yaml | 10 +- .../release-notes/maps/pr-122697-map.yaml | 10 +- .../release-notes/maps/pr-122701-map.yaml | 8 +- .../release-notes/maps/pr-122704-map.yaml | 10 +- .../release-notes/maps/pr-122705-map.yaml | 6 +- .../release-notes/maps/pr-122717-map.yaml | 14 +- .../release-notes/maps/pr-122724-map.yaml | 10 +- .../release-notes/maps/pr-122729-map.yaml | 10 +- .../release-notes/maps/pr-122735-map.yaml | 10 +- .../release-notes/maps/pr-122745-map.yaml | 10 +- .../release-notes/maps/pr-122750-map.yaml | 6 +- .../release-notes/maps/pr-122804-map.yaml | 8 +- .../release-notes/maps/pr-122807-map.yaml | 12 +- .../release-notes/maps/pr-122830-map.yaml | 10 +- .../release-notes/maps/pr-122846-map.yaml | 10 +- .../release-notes/maps/pr-122857-map.yaml | 10 +- .../release-notes/maps/pr-122870-map.yaml | 14 +- .../release-notes/maps/pr-122874-map.yaml | 8 +- .../release-notes/maps/pr-122881-map.yaml | 10 +- .../release-notes/maps/pr-122882-map.yaml | 10 +- .../release-notes/maps/pr-122883-map.yaml | 8 +- .../release-notes/maps/pr-122887-map.yaml | 14 +- .../release-notes/maps/pr-122889-map.yaml | 6 +- .../release-notes/maps/pr-122893-map.yaml | 10 +- .../release-notes/maps/pr-122907-map.yaml | 10 +- .../release-notes/maps/pr-122914-map.yaml | 6 +- .../release-notes/maps/pr-122937-map.yaml | 12 +- .../release-notes/maps/pr-122946-map.yaml | 12 +- .../release-notes/maps/pr-122961-map.yaml | 6 +- .../release-notes/maps/pr-122999-map.yaml | 6 +- .../release-notes/maps/pr-123001-map.yaml | 10 +- .../release-notes/maps/pr-123003-map.yaml | 10 +- .../release-notes/maps/pr-123011-map.yaml | 12 +- .../release-notes/maps/pr-123023-map.yaml | 4 +- .../release-notes/maps/pr-123032-map.yaml | 8 +- .../release-notes/maps/pr-123038-map.yaml | 10 +- .../release-notes/maps/pr-123052-map.yaml | 10 +- .../release-notes/maps/pr-123055-map.yaml | 6 +- .../release-notes/maps/pr-123069-map.yaml | 6 +- .../release-notes/maps/pr-123077-map.yaml | 10 +- .../release-notes/maps/pr-123083-map.yaml | 10 +- .../release-notes/maps/pr-123093-map.yaml | 10 +- .../release-notes/maps/pr-123117-map.yaml | 10 +- .../release-notes/maps/pr-123134-map.yaml | 12 +- .../release-notes/maps/pr-123135-map.yaml | 14 +- .../release-notes/maps/pr-123150-map.yaml | 10 +- .../release-notes/maps/pr-123157-map.yaml | 10 +- .../release-notes/maps/pr-123165-map.yaml | 12 +- .../release-notes/maps/pr-123170-map.yaml | 10 +- .../release-notes/maps/pr-123171-map.yaml | 8 +- .../release-notes/maps/pr-123179-map.yaml | 10 +- .../release-notes/maps/pr-123180-map.yaml | 10 +- .../release-notes/maps/pr-123190-map.yaml | 10 +- .../release-notes/maps/pr-123205-map.yaml | 10 +- .../release-notes/maps/pr-123215-map.yaml | 6 +- .../release-notes/maps/pr-123216-map.yaml | 10 +- .../release-notes/maps/pr-123217-map.yaml | 6 +- .../release-notes/maps/pr-123222-map.yaml | 8 +- .../release-notes/maps/pr-123223-map.yaml | 10 +- .../release-notes/maps/pr-123225-map.yaml | 12 +- .../release-notes/maps/pr-123226-map.yaml | 10 +- .../release-notes/maps/pr-123261-map.yaml | 10 +- .../release-notes/maps/pr-123271-map.yaml | 10 +- .../release-notes/maps/pr-123272-map.yaml | 10 +- .../release-notes/maps/pr-123273-map.yaml | 10 +- .../release-notes/maps/pr-123281-map.yaml | 16 +- .../release-notes/maps/pr-123282-map.yaml | 10 +- .../release-notes/maps/pr-123310-map.yaml | 8 +- .../release-notes/maps/pr-123323-map.yaml | 12 +- .../release-notes/maps/pr-123331-map.yaml | 10 +- .../release-notes/maps/pr-123333-map.yaml | 10 +- .../release-notes/maps/pr-123341-map.yaml | 10 +- .../release-notes/maps/pr-123343-map.yaml | 10 +- .../release-notes/maps/pr-123344-map.yaml | 10 +- .../release-notes/maps/pr-123345-map.yaml | 10 +- .../release-notes/maps/pr-123366-map.yaml | 12 +- .../release-notes/maps/pr-123372-map.yaml | 10 +- .../release-notes/maps/pr-123384-map.yaml | 10 +- .../release-notes/maps/pr-123385-map.yaml | 14 +- .../release-notes/maps/pr-123405-map.yaml | 8 +- .../release-notes/maps/pr-123406-map.yaml | 10 +- .../release-notes/maps/pr-123412-map.yaml | 10 +- .../release-notes/maps/pr-123413-map.yaml | 10 +- .../release-notes/maps/pr-123418-map.yaml | 6 +- .../release-notes/maps/pr-123424-map.yaml | 8 +- .../release-notes/maps/pr-123425-map.yaml | 8 +- .../release-notes/maps/pr-123431-map.yaml | 12 +- .../release-notes/maps/pr-123435-map.yaml | 12 +- .../release-notes/maps/pr-123442-map.yaml | 10 +- .../release-notes/maps/pr-123461-map.yaml | 10 +- .../release-notes/maps/pr-123464-map.yaml | 12 +- .../release-notes/maps/pr-123475-map.yaml | 10 +- .../release-notes/maps/pr-123479-map.yaml | 8 +- .../release-notes/maps/pr-123481-map.yaml | 14 +- .../release-notes/maps/pr-123482-map.yaml | 8 +- .../release-notes/maps/pr-123484-map.yaml | 8 +- .../release-notes/maps/pr-123487-map.yaml | 12 +- .../release-notes/maps/pr-123492-map.yaml | 10 +- .../release-notes/maps/pr-123504-map.yaml | 10 +- .../release-notes/maps/pr-123508-map.yaml | 10 +- .../release-notes/maps/pr-123516-map.yaml | 10 +- .../release-notes/maps/pr-123517-map.yaml | 8 +- .../release-notes/maps/pr-123520-map.yaml | 10 +- .../release-notes/maps/pr-123525-map.yaml | 10 +- .../release-notes/maps/pr-123527-map.yaml | 10 +- .../release-notes/maps/pr-123529-map.yaml | 16 +- .../release-notes/maps/pr-123532-map.yaml | 10 +- .../release-notes/maps/pr-123540-map.yaml | 12 +- .../release-notes/maps/pr-123543-map.yaml | 12 +- .../release-notes/maps/pr-123555-map.yaml | 12 +- .../release-notes/maps/pr-123560-map.yaml | 10 +- .../release-notes/maps/pr-123561-map.yaml | 14 +- .../release-notes/maps/pr-123562-map.yaml | 10 +- .../release-notes/maps/pr-123565-map.yaml | 10 +- .../release-notes/maps/pr-123568-map.yaml | 12 +- .../release-notes/maps/pr-123570-map.yaml | 10 +- .../release-notes/maps/pr-123575-map.yaml | 14 +- .../release-notes/maps/pr-123578-map.yaml | 10 +- .../release-notes/maps/pr-123593-map.yaml | 10 +- .../release-notes/maps/pr-123599-map.yaml | 10 +- .../release-notes/maps/pr-123611-map.yaml | 10 +- .../release-notes/maps/pr-123639-map.yaml | 16 +- .../release-notes/maps/pr-123640-map.yaml | 10 +- .../release-notes/maps/pr-123641-map.yaml | 10 +- .../release-notes/maps/pr-123654-map.yaml | 8 +- .../release-notes/maps/pr-123667-map.yaml | 8 +- .../release-notes/maps/pr-123674-map.yaml | 10 +- .../release-notes/maps/pr-123676-map.yaml | 6 +- .../release-notes/maps/pr-123696-map.yaml | 10 +- .../release-notes/maps/pr-123713-map.yaml | 20 +- .../release-notes/maps/pr-123719-map.yaml | 8 +- .../release-notes/maps/pr-123730-map.yaml | 10 +- .../release-notes/maps/pr-123737-map.yaml | 14 +- .../release-notes/maps/pr-123738-map.yaml | 10 +- .../release-notes/maps/pr-123750-map.yaml | 8 +- .../release-notes/maps/pr-123758-map.yaml | 6 +- .../release-notes/maps/pr-123793-map.yaml | 10 +- .../release-notes/maps/pr-123935-map.yaml | 18 +- .../release-notes/maps/pr-124001-map.yaml | 10 +- .../release-notes/release-notes-draft.json | 11734 +++++----- .../release-notes/release-notes-draft.md | 820 +- .../sessions/maps-1706895622.json | 884 +- .../sessions/maps-1708071507.json | 1100 +- .../sessions/maps-1709744010.json | 1580 +- .../sessions/maps-1711378753.json | 2148 +- .../sessions/maps-1712246948.json | 2204 +- .../sessions/maps-1712855313.json | 2204 +- .../sessions/maps-1713210685.json | 20 +- releases/release-1.30/release-team.md | 32 +- releases/release-1.31/README.md | 177 +- releases/release-1.31/exceptions.yaml | 220 +- releases/release-1.31/release-notes/README.md | 30 +- .../release-notes/maps/pr-109939-map.yaml | 14 +- .../release-notes/maps/pr-112104-map.yaml | 10 +- .../release-notes/maps/pr-117842-map.yaml | 16 +- .../release-notes/maps/pr-118148-map.yaml | 10 +- .../release-notes/maps/pr-119589-map.yaml | 12 +- .../release-notes/maps/pr-120611-map.yaml | 12 +- .../release-notes/maps/pr-120696-map.yaml | 10 +- .../release-notes/maps/pr-121508-map.yaml | 12 +- .../release-notes/maps/pr-121770-map.yaml | 14 +- .../release-notes/maps/pr-121970-map.yaml | 12 +- .../release-notes/maps/pr-122025-map.yaml | 8 +- .../release-notes/maps/pr-122038-map.yaml | 8 +- .../release-notes/maps/pr-122047-map.yaml | 16 +- .../release-notes/maps/pr-122082-map.yaml | 8 +- .../release-notes/maps/pr-122176-map.yaml | 8 +- .../release-notes/maps/pr-122234-map.yaml | 36 +- .../release-notes/maps/pr-122363-map.yaml | 8 +- .../release-notes/maps/pr-122471-map.yaml | 14 +- .../release-notes/maps/pr-122499-map.yaml | 8 +- .../release-notes/maps/pr-122628-map.yaml | 10 +- .../release-notes/maps/pr-122636-map.yaml | 8 +- .../release-notes/maps/pr-122657-map.yaml | 14 +- .../release-notes/maps/pr-122791-map.yaml | 12 +- .../release-notes/maps/pr-122812-map.yaml | 12 +- .../release-notes/maps/pr-122892-map.yaml | 18 +- .../release-notes/maps/pr-122979-map.yaml | 6 +- .../release-notes/maps/pr-123102-map.yaml | 14 +- .../release-notes/maps/pr-123105-map.yaml | 22 +- .../release-notes/maps/pr-123149-map.yaml | 12 +- .../release-notes/maps/pr-123233-map.yaml | 8 +- .../release-notes/maps/pr-123315-map.yaml | 8 +- .../release-notes/maps/pr-123316-map.yaml | 10 +- .../release-notes/maps/pr-123398-map.yaml | 10 +- .../release-notes/maps/pr-123428-map.yaml | 12 +- .../release-notes/maps/pr-123513-map.yaml | 8 +- .../release-notes/maps/pr-123545-map.yaml | 10 +- .../release-notes/maps/pr-123572-map.yaml | 8 +- .../release-notes/maps/pr-123587-map.yaml | 8 +- .../release-notes/maps/pr-123597-map.yaml | 8 +- .../release-notes/maps/pr-123620-map.yaml | 8 +- .../release-notes/maps/pr-123638-map.yaml | 10 +- .../release-notes/maps/pr-123669-map.yaml | 6 +- .../release-notes/maps/pr-123797-map.yaml | 6 +- .../release-notes/maps/pr-123809-map.yaml | 12 +- .../release-notes/maps/pr-123822-map.yaml | 8 +- .../release-notes/maps/pr-123845-map.yaml | 10 +- .../release-notes/maps/pr-123894-map.yaml | 6 +- .../release-notes/maps/pr-123905-map.yaml | 12 +- .../release-notes/maps/pr-123919-map.yaml | 12 +- .../release-notes/maps/pr-124012-map.yaml | 14 +- .../release-notes/maps/pr-124017-map.yaml | 12 +- .../release-notes/maps/pr-124025-map.yaml | 8 +- .../release-notes/maps/pr-124026-map.yaml | 8 +- .../release-notes/maps/pr-124027-map.yaml | 8 +- .../release-notes/maps/pr-124038-map.yaml | 12 +- .../release-notes/maps/pr-124055-map.yaml | 8 +- .../release-notes/maps/pr-124063-map.yaml | 14 +- .../release-notes/maps/pr-124075-map.yaml | 8 +- .../release-notes/maps/pr-124091-map.yaml | 6 +- .../release-notes/maps/pr-124092-map.yaml | 12 +- .../release-notes/maps/pr-124101-map.yaml | 10 +- .../release-notes/maps/pr-124116-map.yaml | 8 +- .../release-notes/maps/pr-124123-map.yaml | 12 +- .../release-notes/maps/pr-124131-map.yaml | 8 +- .../release-notes/maps/pr-124147-map.yaml | 8 +- .../release-notes/maps/pr-124189-map.yaml | 8 +- .../release-notes/maps/pr-124210-map.yaml | 10 +- .../release-notes/maps/pr-124220-map.yaml | 10 +- .../release-notes/maps/pr-124221-map.yaml | 10 +- .../release-notes/maps/pr-124281-map.yaml | 6 +- .../release-notes/maps/pr-124287-map.yaml | 8 +- .../release-notes/maps/pr-124316-map.yaml | 8 +- .../release-notes/maps/pr-124328-map.yaml | 10 +- .../release-notes/maps/pr-124329-map.yaml | 6 +- .../release-notes/maps/pr-124344-map.yaml | 8 +- .../release-notes/maps/pr-124350-map.yaml | 10 +- .../release-notes/maps/pr-124352-map.yaml | 12 +- .../release-notes/maps/pr-124361-map.yaml | 14 +- .../release-notes/maps/pr-124364-map.yaml | 6 +- .../release-notes/maps/pr-124373-map.yaml | 8 +- .../release-notes/maps/pr-124374-map.yaml | 8 +- .../release-notes/maps/pr-124375-map.yaml | 6 +- .../release-notes/maps/pr-124381-map.yaml | 6 +- .../release-notes/maps/pr-124383-map.yaml | 12 +- .../release-notes/maps/pr-124393-map.yaml | 16 +- .../release-notes/maps/pr-124417-map.yaml | 10 +- .../release-notes/maps/pr-124419-map.yaml | 14 +- .../release-notes/maps/pr-124428-map.yaml | 10 +- .../release-notes/maps/pr-124430-map.yaml | 10 +- .../release-notes/maps/pr-124444-map.yaml | 8 +- .../release-notes/maps/pr-124462-map.yaml | 6 +- .../release-notes/maps/pr-124463-map.yaml | 6 +- .../release-notes/maps/pr-124464-map.yaml | 8 +- .../release-notes/maps/pr-124465-map.yaml | 12 +- .../release-notes/maps/pr-124480-map.yaml | 16 +- .../release-notes/maps/pr-124496-map.yaml | 8 +- .../release-notes/maps/pr-124500-map.yaml | 20 +- .../release-notes/maps/pr-124503-map.yaml | 6 +- .../release-notes/maps/pr-124505-map.yaml | 8 +- .../release-notes/maps/pr-124509-map.yaml | 12 +- .../release-notes/maps/pr-124514-map.yaml | 6 +- .../release-notes/maps/pr-124516-map.yaml | 10 +- .../release-notes/maps/pr-124519-map.yaml | 14 +- .../release-notes/maps/pr-124530-map.yaml | 12 +- .../release-notes/maps/pr-124544-map.yaml | 16 +- .../release-notes/maps/pr-124546-map.yaml | 16 +- .../release-notes/maps/pr-124553-map.yaml | 14 +- .../release-notes/maps/pr-124557-map.yaml | 10 +- .../release-notes/maps/pr-124574-map.yaml | 8 +- .../release-notes/maps/pr-124589-map.yaml | 10 +- .../release-notes/maps/pr-124592-map.yaml | 8 +- .../release-notes/maps/pr-124595-map.yaml | 8 +- .../release-notes/maps/pr-124598-map.yaml | 8 +- .../release-notes/maps/pr-124612-map.yaml | 8 +- .../release-notes/maps/pr-124614-map.yaml | 10 +- .../release-notes/maps/pr-124618-map.yaml | 6 +- .../release-notes/maps/pr-124634-map.yaml | 8 +- .../release-notes/maps/pr-124635-map.yaml | 8 +- .../release-notes/maps/pr-124653-map.yaml | 8 +- .../release-notes/maps/pr-124665-map.yaml | 8 +- .../release-notes/maps/pr-124667-map.yaml | 10 +- .../release-notes/maps/pr-124673-map.yaml | 12 +- .../release-notes/maps/pr-124675-map.yaml | 10 +- .../release-notes/maps/pr-124681-map.yaml | 8 +- .../release-notes/maps/pr-124683-map.yaml | 6 +- .../release-notes/maps/pr-124685-map.yaml | 22 +- .../release-notes/maps/pr-124688-map.yaml | 12 +- .../release-notes/maps/pr-124714-map.yaml | 8 +- .../release-notes/maps/pr-124715-map.yaml | 8 +- .../release-notes/maps/pr-124732-map.yaml | 8 +- .../release-notes/maps/pr-124735-map.yaml | 10 +- .../release-notes/maps/pr-124738-map.yaml | 8 +- .../release-notes/maps/pr-124767-map.yaml | 8 +- .../release-notes/maps/pr-124779-map.yaml | 8 +- .../release-notes/maps/pr-124793-map.yaml | 8 +- .../release-notes/maps/pr-124798-map.yaml | 12 +- .../release-notes/maps/pr-124819-map.yaml | 10 +- .../release-notes/maps/pr-124820-map.yaml | 16 +- .../release-notes/maps/pr-124828-map.yaml | 8 +- .../release-notes/maps/pr-124864-map.yaml | 8 +- .../release-notes/maps/pr-124883-map.yaml | 12 +- .../release-notes/maps/pr-124884-map.yaml | 10 +- .../release-notes/maps/pr-124886-map.yaml | 10 +- .../release-notes/maps/pr-124906-map.yaml | 8 +- .../release-notes/maps/pr-124912-map.yaml | 18 +- .../release-notes/maps/pr-124917-map.yaml | 12 +- .../release-notes/maps/pr-124926-map.yaml | 12 +- .../release-notes/maps/pr-124931-map.yaml | 12 +- .../release-notes/maps/pr-124933-map.yaml | 8 +- .../release-notes/maps/pr-124942-map.yaml | 8 +- .../release-notes/maps/pr-124948-map.yaml | 10 +- .../release-notes/maps/pr-124958-map.yaml | 12 +- .../release-notes/maps/pr-124959-map.yaml | 12 +- .../release-notes/maps/pr-124961-map.yaml | 12 +- .../release-notes/maps/pr-124969-map.yaml | 8 +- .../release-notes/maps/pr-124994-map.yaml | 8 +- .../release-notes/maps/pr-124996-map.yaml | 14 +- .../release-notes/maps/pr-124997-map.yaml | 12 +- .../release-notes/maps/pr-125015-map.yaml | 10 +- .../release-notes/maps/pr-125016-map.yaml | 14 +- .../release-notes/maps/pr-125021-map.yaml | 12 +- .../release-notes/maps/pr-125029-map.yaml | 26 +- .../release-notes/maps/pr-125040-map.yaml | 10 +- .../release-notes/maps/pr-125067-map.yaml | 12 +- .../release-notes/maps/pr-125082-map.yaml | 8 +- .../release-notes/maps/pr-125097-map.yaml | 10 +- .../release-notes/maps/pr-125112-map.yaml | 8 +- .../release-notes/maps/pr-125113-map.yaml | 8 +- .../release-notes/maps/pr-125116-map.yaml | 12 +- .../release-notes/maps/pr-125117-map.yaml | 10 +- .../release-notes/maps/pr-125145-map.yaml | 12 +- .../release-notes/maps/pr-125150-map.yaml | 6 +- .../release-notes/maps/pr-125157-map.yaml | 8 +- .../release-notes/maps/pr-125162-map.yaml | 8 +- .../release-notes/maps/pr-125163-map.yaml | 14 +- .../release-notes/maps/pr-125168-map.yaml | 10 +- .../release-notes/maps/pr-125175-map.yaml | 8 +- .../release-notes/maps/pr-125179-map.yaml | 14 +- .../release-notes/maps/pr-125197-map.yaml | 12 +- .../release-notes/maps/pr-125218-map.yaml | 16 +- .../release-notes/maps/pr-125225-map.yaml | 14 +- .../release-notes/maps/pr-125235-map.yaml | 8 +- .../release-notes/maps/pr-125238-map.yaml | 12 +- .../release-notes/maps/pr-125257-map.yaml | 10 +- .../release-notes/maps/pr-125259-map.yaml | 8 +- .../release-notes/maps/pr-125263-map.yaml | 10 +- .../release-notes/maps/pr-125265-map.yaml | 10 +- .../release-notes/maps/pr-125279-map.yaml | 12 +- .../release-notes/maps/pr-125328-map.yaml | 8 +- .../release-notes/maps/pr-125333-map.yaml | 10 +- .../release-notes/maps/pr-125359-map.yaml | 12 +- .../release-notes/maps/pr-125360-map.yaml | 8 +- .../release-notes/maps/pr-125363-map.yaml | 8 +- .../release-notes/maps/pr-125374-map.yaml | 12 +- .../release-notes/maps/pr-125377-map.yaml | 8 +- .../release-notes/maps/pr-125388-map.yaml | 8 +- .../release-notes/maps/pr-125396-map.yaml | 8 +- .../release-notes/maps/pr-125429-map.yaml | 12 +- .../release-notes/maps/pr-125437-map.yaml | 16 +- .../release-notes/maps/pr-125442-map.yaml | 8 +- .../release-notes/maps/pr-125450-map.yaml | 6 +- .../release-notes/maps/pr-125459-map.yaml | 8 +- .../release-notes/maps/pr-125470-map.yaml | 10 +- .../release-notes/maps/pr-125475-map.yaml | 8 +- .../release-notes/maps/pr-125480-map.yaml | 8 +- .../release-notes/maps/pr-125488-map.yaml | 8 +- .../release-notes/maps/pr-125510-map.yaml | 28 +- .../release-notes/maps/pr-125527-map.yaml | 16 +- .../release-notes/maps/pr-125528-map.yaml | 14 +- .../release-notes/maps/pr-125536-map.yaml | 10 +- .../release-notes/maps/pr-125540-map.yaml | 8 +- .../release-notes/maps/pr-125546-map.yaml | 10 +- .../release-notes/maps/pr-125549-map.yaml | 10 +- .../release-notes/maps/pr-125560-map.yaml | 12 +- .../release-notes/maps/pr-125566-map.yaml | 10 +- .../release-notes/maps/pr-125571-map.yaml | 14 +- .../release-notes/maps/pr-125578-map.yaml | 10 +- .../release-notes/maps/pr-125582-map.yaml | 26 +- .../release-notes/maps/pr-125584-map.yaml | 8 +- .../release-notes/maps/pr-125591-map.yaml | 10 +- .../release-notes/maps/pr-125641-map.yaml | 8 +- .../release-notes/maps/pr-125646-map.yaml | 10 +- .../release-notes/maps/pr-125650-map.yaml | 8 +- .../release-notes/maps/pr-125656-map.yaml | 10 +- .../release-notes/maps/pr-125660-map.yaml | 10 +- .../release-notes/maps/pr-125661-map.yaml | 8 +- .../release-notes/maps/pr-125751-map.yaml | 8 +- .../release-notes/maps/pr-125758-map.yaml | 10 +- .../release-notes/maps/pr-125767-map.yaml | 18 +- .../release-notes/maps/pr-125776-map.yaml | 8 +- .../release-notes/maps/pr-125779-map.yaml | 14 +- .../release-notes/maps/pr-125782-map.yaml | 12 +- .../release-notes/maps/pr-125787-map.yaml | 12 +- .../release-notes/maps/pr-125797-map.yaml | 16 +- .../release-notes/maps/pr-125813-map.yaml | 16 +- .../release-notes/maps/pr-125828-map.yaml | 18 +- .../release-notes/maps/pr-125838-map.yaml | 16 +- .../release-notes/maps/pr-125894-map.yaml | 8 +- .../release-notes/maps/pr-125929-map.yaml | 10 +- .../release-notes/maps/pr-125970-map.yaml | 12 +- .../release-notes/maps/pr-126012-map.yaml | 8 +- .../release-notes/maps/pr-126014-map.yaml | 12 +- .../release-notes/maps/pr-126031-map.yaml | 8 +- .../release-notes/maps/pr-126046-map.yaml | 8 +- .../release-notes/maps/pr-126047-map.yaml | 8 +- .../release-notes/maps/pr-126057-map.yaml | 10 +- .../release-notes/maps/pr-126067-map.yaml | 18 +- .../release-notes/maps/pr-126072-map.yaml | 10 +- .../release-notes/maps/pr-126073-map.yaml | 8 +- .../release-notes/maps/pr-126108-map.yaml | 20 +- .../release-notes/maps/pr-126125-map.yaml | 8 +- .../release-notes/maps/pr-126139-map.yaml | 8 +- .../release-notes/maps/pr-126145-map.yaml | 12 +- .../release-notes/maps/pr-126163-map.yaml | 12 +- .../release-notes/maps/pr-126165-map.yaml | 10 +- .../release-notes/maps/pr-126167-map.yaml | 10 +- .../release-notes/maps/pr-126174-map.yaml | 8 +- .../release-notes/maps/pr-126191-map.yaml | 10 +- .../release-notes/maps/pr-126205-map.yaml | 10 +- .../release-notes/maps/pr-126227-map.yaml | 10 +- .../release-notes/maps/pr-126237-map.yaml | 8 +- .../release-notes/maps/pr-126243-map.yaml | 10 +- .../release-notes/maps/pr-126330-map.yaml | 8 +- .../release-notes/maps/pr-126335-map.yaml | 10 +- .../release-notes/maps/pr-126355-map.yaml | 10 +- .../release-notes/maps/pr-126441-map.yaml | 18 +- .../release-notes/release-notes-draft.json | 14566 ++++++------- .../release-notes/release-notes-draft.md | 1062 +- .../sessions/maps-1718353375.json | 1268 +- .../sessions/maps-1719945684.json | 1364 +- .../sessions/maps-1721052956.json | 1716 +- .../sessions/maps-1721765255.json | 804 +- .../sessions/maps-1722538475.json | 556 +- .../sessions/maps-1723123535.json | 20 +- releases/release-1.31/release-team.md | 32 +- releases/release-1.32/README.md | 176 +- releases/release-1.32/exceptions.yaml | 48 +- .../release-notes/maps/pr-119089-map.yaml | 10 +- .../release-notes/maps/pr-121206-map.yaml | 36 +- .../release-notes/maps/pr-121968-map.yaml | 32 +- .../release-notes/maps/pr-122890-map.yaml | 16 +- .../release-notes/maps/pr-124003-map.yaml | 18 +- .../release-notes/maps/pr-124285-map.yaml | 8 +- .../release-notes/maps/pr-124389-map.yaml | 10 +- .../release-notes/maps/pr-124703-map.yaml | 10 +- .../release-notes/maps/pr-124952-map.yaml | 40 +- .../release-notes/maps/pr-125070-map.yaml | 10 +- .../release-notes/maps/pr-125118-map.yaml | 16 +- .../release-notes/maps/pr-125171-map.yaml | 10 +- .../release-notes/maps/pr-125337-map.yaml | 16 +- .../release-notes/maps/pr-125372-map.yaml | 10 +- .../release-notes/maps/pr-125398-map.yaml | 12 +- .../release-notes/maps/pr-125577-map.yaml | 64 +- .../release-notes/maps/pr-125634-map.yaml | 10 +- .../release-notes/maps/pr-125796-map.yaml | 22 +- .../release-notes/maps/pr-125923-map.yaml | 14 +- .../release-notes/maps/pr-125982-map.yaml | 10 +- .../release-notes/maps/pr-126347-map.yaml | 18 +- .../release-notes/maps/pr-126359-map.yaml | 10 +- .../release-notes/maps/pr-126449-map.yaml | 8 +- .../release-notes/maps/pr-126503-map.yaml | 40 +- .../release-notes/maps/pr-126512-map.yaml | 12 +- .../release-notes/maps/pr-126532-map.yaml | 10 +- .../release-notes/maps/pr-126533-map.yaml | 8 +- .../release-notes/maps/pr-126543-map.yaml | 12 +- .../release-notes/maps/pr-126562-map.yaml | 12 +- .../release-notes/maps/pr-126575-map.yaml | 8 +- .../release-notes/maps/pr-126620-map.yaml | 8 +- .../release-notes/maps/pr-126644-map.yaml | 14 +- .../release-notes/maps/pr-126706-map.yaml | 10 +- .../release-notes/maps/pr-126727-map.yaml | 10 +- .../release-notes/maps/pr-126745-map.yaml | 10 +- .../release-notes/maps/pr-126773-map.yaml | 8 +- .../release-notes/maps/pr-126776-map.yaml | 14 +- .../release-notes/maps/pr-126806-map.yaml | 46 +- .../release-notes/maps/pr-126851-map.yaml | 8 +- .../release-notes/maps/pr-126897-map.yaml | 10 +- .../release-notes/maps/pr-126924-map.yaml | 26 +- .../release-notes/maps/pr-126953-map.yaml | 10 +- .../release-notes/maps/pr-126957-map.yaml | 10 +- .../release-notes/maps/pr-126962-map.yaml | 8 +- .../release-notes/maps/pr-126976-map.yaml | 10 +- .../release-notes/maps/pr-126981-map.yaml | 8 +- .../release-notes/maps/pr-126996-map.yaml | 12 +- .../release-notes/maps/pr-126997-map.yaml | 10 +- .../release-notes/maps/pr-127012-map.yaml | 8 +- .../release-notes/maps/pr-127016-map.yaml | 10 +- .../release-notes/maps/pr-127058-map.yaml | 8 +- .../release-notes/maps/pr-127083-map.yaml | 10 +- .../release-notes/maps/pr-127134-map.yaml | 14 +- .../release-notes/maps/pr-127155-map.yaml | 10 +- .../release-notes/maps/pr-127187-map.yaml | 8 +- .../release-notes/maps/pr-127228-map.yaml | 8 +- .../release-notes/maps/pr-127239-map.yaml | 10 +- .../release-notes/maps/pr-127279-map.yaml | 8 +- .../release-notes/maps/pr-127302-map.yaml | 8 +- .../release-notes/maps/pr-127341-map.yaml | 8 +- .../release-notes/maps/pr-127348-map.yaml | 8 +- .../release-notes/maps/pr-127360-map.yaml | 60 +- .../release-notes/maps/pr-127378-map.yaml | 8 +- .../release-notes/maps/pr-127402-map.yaml | 8 +- .../release-notes/maps/pr-127417-map.yaml | 10 +- .../release-notes/maps/pr-127421-map.yaml | 10 +- .../release-notes/maps/pr-127427-map.yaml | 12 +- .../release-notes/maps/pr-127444-map.yaml | 10 +- .../release-notes/maps/pr-127473-map.yaml | 10 +- .../release-notes/maps/pr-127489-map.yaml | 14 +- .../release-notes/maps/pr-127551-map.yaml | 12 +- .../release-notes/maps/pr-127565-map.yaml | 8 +- .../release-notes/maps/pr-127566-map.yaml | 10 +- .../release-notes/maps/pr-127581-map.yaml | 36 +- .../release-notes/maps/pr-127598-map.yaml | 14 +- .../release-notes/maps/pr-127611-map.yaml | 8 +- .../release-notes/maps/pr-127634-map.yaml | 10 +- .../release-notes/maps/pr-127650-map.yaml | 10 +- .../release-notes/maps/pr-127661-map.yaml | 10 +- .../release-notes/maps/pr-127663-map.yaml | 10 +- .../release-notes/maps/pr-127669-map.yaml | 10 +- .../release-notes/maps/pr-127673-map.yaml | 12 +- .../release-notes/maps/pr-127780-map.yaml | 14 +- .../release-notes/maps/pr-127786-map.yaml | 10 +- .../release-notes/maps/pr-127787-map.yaml | 10 +- .../release-notes/maps/pr-127861-map.yaml | 8 +- .../release-notes/maps/pr-127869-map.yaml | 12 +- .../release-notes/maps/pr-127874-map.yaml | 8 +- .../release-notes/maps/pr-127878-map.yaml | 10 +- .../release-notes/maps/pr-127898-map.yaml | 12 +- .../release-notes/maps/pr-127918-map.yaml | 12 +- .../release-notes/maps/pr-127919-map.yaml | 8 +- .../release-notes/maps/pr-127965-map.yaml | 14 +- .../release-notes/maps/pr-127976-map.yaml | 8 +- .../release-notes/maps/pr-128003-map.yaml | 14 +- .../release-notes/maps/pr-128009-map.yaml | 12 +- .../release-notes/maps/pr-128011-map.yaml | 12 +- .../release-notes/maps/pr-128013-map.yaml | 12 +- .../release-notes/maps/pr-128029-map.yaml | 12 +- .../release-notes/maps/pr-128035-map.yaml | 10 +- .../release-notes/maps/pr-128038-map.yaml | 12 +- .../release-notes/maps/pr-128052-map.yaml | 8 +- .../release-notes/maps/pr-128053-map.yaml | 10 +- .../release-notes/maps/pr-128062-map.yaml | 14 +- .../release-notes/maps/pr-128073-map.yaml | 10 +- .../release-notes/maps/pr-128081-map.yaml | 8 +- .../release-notes/maps/pr-128083-map.yaml | 10 +- .../release-notes/maps/pr-128091-map.yaml | 8 +- .../release-notes/maps/pr-128099-map.yaml | 12 +- .../release-notes/maps/pr-128100-map.yaml | 10 +- .../release-notes/maps/pr-128101-map.yaml | 12 +- .../release-notes/maps/pr-128110-map.yaml | 8 +- .../release-notes/maps/pr-128118-map.yaml | 10 +- .../release-notes/maps/pr-128119-map.yaml | 10 +- .../release-notes/maps/pr-128124-map.yaml | 10 +- .../release-notes/maps/pr-128139-map.yaml | 8 +- .../release-notes/maps/pr-128149-map.yaml | 8 +- .../release-notes/maps/pr-128168-map.yaml | 24 +- .../release-notes/maps/pr-128169-map.yaml | 14 +- .../release-notes/maps/pr-128172-map.yaml | 12 +- .../release-notes/maps/pr-128179-map.yaml | 16 +- .../release-notes/maps/pr-128182-map.yaml | 10 +- .../release-notes/maps/pr-128186-map.yaml | 36 +- .../release-notes/maps/pr-128190-map.yaml | 84 +- .../release-notes/maps/pr-128197-map.yaml | 14 +- .../release-notes/maps/pr-128219-map.yaml | 14 +- .../release-notes/maps/pr-128240-map.yaml | 48 +- .../release-notes/maps/pr-128244-map.yaml | 8 +- .../release-notes/maps/pr-128259-map.yaml | 10 +- .../release-notes/maps/pr-128287-map.yaml | 48 +- .../release-notes/maps/pr-128305-map.yaml | 8 +- .../release-notes/maps/pr-128317-map.yaml | 8 +- .../release-notes/maps/pr-128318-map.yaml | 10 +- .../release-notes/maps/pr-128336-map.yaml | 10 +- .../release-notes/maps/pr-128430-map.yaml | 8 +- .../release-notes/maps/pr-128444-map.yaml | 8 +- .../release-notes/maps/pr-128463-map.yaml | 8 +- .../release-notes/maps/pr-128495-map.yaml | 30 +- .../release-notes/maps/pr-128503-map.yaml | 38 +- .../release-notes/maps/pr-128517-map.yaml | 8 +- .../release-notes/maps/pr-128533-map.yaml | 8 +- .../release-notes/maps/pr-128556-map.yaml | 32 +- .../release-notes/maps/pr-128623-map.yaml | 38 +- .../release-notes/maps/pr-128640-map.yaml | 32 +- .../release-notes/maps/pr-128646-map.yaml | 44 +- .../release-notes/maps/pr-128764-map.yaml | 34 +- .../release-notes/maps/pr-128852-map.yaml | 34 +- .../release-notes/maps/pr-128932-map.yaml | 38 +- .../release-notes/release-notes-draft.json | 13368 ++++++------ .../release-notes/release-notes-draft.md | 778 +- .../sessions/maps-1728313621.json | 1052 +- .../sessions/maps-1729531290.json | 340 +- .../sessions/maps-1731440047.json | 372 +- .../sessions/maps-1732261652.json | 268 +- .../sessions/maps-1733275958.json | 428 +- releases/release-1.32/release-team.md | 32 +- releases/release-1.33/README.md | 198 +- releases/release-1.33/exceptions.yaml | 182 +- releases/release-1.33/logo/README.md | 56 +- .../release-1.33/logo/k8s133-octarine.svg | 15658 +++++++------- .../release-notes/maps/pr-122550-map.yaml | 42 +- .../release-notes/maps/pr-122646-map.yaml | 10 +- .../release-notes/maps/pr-124360-map.yaml | 16 +- .../release-notes/maps/pr-125230-map.yaml | 8 +- .../release-notes/maps/pr-125901-map.yaml | 14 +- .../release-notes/maps/pr-127053-map.yaml | 10 +- .../release-notes/maps/pr-127092-map.yaml | 18 +- .../release-notes/maps/pr-127193-map.yaml | 12 +- .../release-notes/maps/pr-127525-map.yaml | 18 +- .../release-notes/maps/pr-127577-map.yaml | 16 +- .../release-notes/maps/pr-127696-map.yaml | 12 +- .../release-notes/maps/pr-127709-map.yaml | 12 +- .../release-notes/maps/pr-127897-map.yaml | 22 +- .../release-notes/maps/pr-128086-map.yaml | 10 +- .../release-notes/maps/pr-128152-map.yaml | 14 +- .../release-notes/maps/pr-128184-map.yaml | 18 +- .../release-notes/maps/pr-128212-map.yaml | 10 +- .../release-notes/maps/pr-128367-map.yaml | 10 +- .../release-notes/maps/pr-128372-map.yaml | 20 +- .../release-notes/maps/pr-128499-map.yaml | 12 +- .../release-notes/maps/pr-128516-map.yaml | 8 +- .../release-notes/maps/pr-128546-map.yaml | 12 +- .../release-notes/maps/pr-128586-map.yaml | 10 +- .../release-notes/maps/pr-128621-map.yaml | 8 +- .../release-notes/maps/pr-128662-map.yaml | 10 +- .../release-notes/maps/pr-128786-map.yaml | 16 +- .../release-notes/maps/pr-128810-map.yaml | 12 +- .../release-notes/maps/pr-128811-map.yaml | 8 +- .../release-notes/maps/pr-128818-map.yaml | 8 +- .../release-notes/maps/pr-128824-map.yaml | 8 +- .../release-notes/maps/pr-128850-map.yaml | 12 +- .../release-notes/maps/pr-128856-map.yaml | 8 +- .../release-notes/maps/pr-128857-map.yaml | 8 +- .../release-notes/maps/pr-128886-map.yaml | 12 +- .../release-notes/maps/pr-128906-map.yaml | 12 +- .../release-notes/maps/pr-128926-map.yaml | 8 +- .../release-notes/maps/pr-128929-map.yaml | 8 +- .../release-notes/maps/pr-128950-map.yaml | 14 +- .../release-notes/maps/pr-128971-map.yaml | 12 +- .../release-notes/maps/pr-128972-map.yaml | 8 +- .../release-notes/maps/pr-128985-map.yaml | 8 +- .../release-notes/maps/pr-128987-map.yaml | 8 +- .../release-notes/maps/pr-128989-map.yaml | 8 +- .../release-notes/maps/pr-128991-map.yaml | 8 +- .../release-notes/maps/pr-129006-map.yaml | 10 +- .../release-notes/maps/pr-129017-map.yaml | 10 +- .../release-notes/maps/pr-129023-map.yaml | 12 +- .../release-notes/maps/pr-129028-map.yaml | 8 +- .../release-notes/maps/pr-129058-map.yaml | 12 +- .../release-notes/maps/pr-129072-map.yaml | 8 +- .../release-notes/maps/pr-129106-map.yaml | 10 +- .../release-notes/maps/pr-129116-map.yaml | 8 +- .../release-notes/maps/pr-129119-map.yaml | 8 +- .../release-notes/maps/pr-129131-map.yaml | 14 +- .../release-notes/maps/pr-129142-map.yaml | 10 +- .../release-notes/maps/pr-129151-map.yaml | 12 +- .../release-notes/maps/pr-129170-map.yaml | 10 +- .../release-notes/maps/pr-129173-map.yaml | 10 +- .../release-notes/maps/pr-129174-map.yaml | 8 +- .../release-notes/maps/pr-129175-map.yaml | 8 +- .../release-notes/maps/pr-129186-map.yaml | 10 +- .../release-notes/maps/pr-129207-map.yaml | 10 +- .../release-notes/maps/pr-129219-map.yaml | 12 +- .../release-notes/maps/pr-129232-map.yaml | 8 +- .../release-notes/maps/pr-129257-map.yaml | 12 +- .../release-notes/maps/pr-129271-map.yaml | 10 +- .../release-notes/maps/pr-129278-map.yaml | 12 +- .../release-notes/maps/pr-129279-map.yaml | 12 +- .../release-notes/maps/pr-129295-map.yaml | 8 +- .../release-notes/maps/pr-129296-map.yaml | 8 +- .../release-notes/maps/pr-129297-map.yaml | 16 +- .../release-notes/maps/pr-129301-map.yaml | 10 +- .../release-notes/maps/pr-129307-map.yaml | 10 +- .../release-notes/maps/pr-129317-map.yaml | 8 +- .../release-notes/maps/pr-129334-map.yaml | 14 +- .../release-notes/maps/pr-129368-map.yaml | 8 +- .../release-notes/maps/pr-129370-map.yaml | 14 +- .../release-notes/maps/pr-129375-map.yaml | 8 +- .../release-notes/maps/pr-129401-map.yaml | 8 +- .../release-notes/maps/pr-129407-map.yaml | 16 +- .../release-notes/maps/pr-129418-map.yaml | 10 +- .../release-notes/maps/pr-129422-map.yaml | 8 +- .../release-notes/maps/pr-129450-map.yaml | 12 +- .../release-notes/maps/pr-129452-map.yaml | 10 +- .../release-notes/maps/pr-129457-map.yaml | 10 +- .../release-notes/maps/pr-129486-map.yaml | 8 +- .../release-notes/maps/pr-129497-map.yaml | 8 +- .../release-notes/maps/pr-129498-map.yaml | 10 +- .../release-notes/maps/pr-129500-map.yaml | 8 +- .../release-notes/maps/pr-129506-map.yaml | 8 +- .../release-notes/maps/pr-129543-map.yaml | 16 +- .../release-notes/maps/pr-129560-map.yaml | 18 +- .../release-notes/maps/pr-129568-map.yaml | 14 +- .../release-notes/maps/pr-129583-map.yaml | 8 +- .../release-notes/maps/pr-129589-map.yaml | 10 +- .../release-notes/maps/pr-129591-map.yaml | 10 +- .../release-notes/maps/pr-129594-map.yaml | 10 +- .../release-notes/maps/pr-129620-map.yaml | 14 +- .../release-notes/maps/pr-129630-map.yaml | 14 +- .../release-notes/maps/pr-129635-map.yaml | 10 +- .../release-notes/maps/pr-129644-map.yaml | 10 +- .../release-notes/maps/pr-129653-map.yaml | 16 +- .../release-notes/maps/pr-129656-map.yaml | 10 +- .../release-notes/maps/pr-129658-map.yaml | 10 +- .../release-notes/maps/pr-129661-map.yaml | 10 +- .../release-notes/maps/pr-129670-map.yaml | 12 +- .../release-notes/maps/pr-129688-map.yaml | 8 +- .../release-notes/maps/pr-129692-map.yaml | 8 +- .../release-notes/maps/pr-129713-map.yaml | 12 +- .../release-notes/maps/pr-129731-map.yaml | 12 +- .../release-notes/maps/pr-129770-map.yaml | 8 +- .../release-notes/maps/pr-129776-map.yaml | 8 +- .../release-notes/maps/pr-129790-map.yaml | 12 +- .../release-notes/maps/pr-129816-map.yaml | 14 +- .../release-notes/maps/pr-129823-map.yaml | 12 +- .../release-notes/maps/pr-129826-map.yaml | 10 +- .../release-notes/maps/pr-129832-map.yaml | 14 +- .../release-notes/maps/pr-129844-map.yaml | 8 +- .../release-notes/maps/pr-129859-map.yaml | 12 +- .../release-notes/maps/pr-129872-map.yaml | 8 +- .../release-notes/maps/pr-129887-map.yaml | 12 +- .../release-notes/maps/pr-129893-map.yaml | 10 +- .../release-notes/maps/pr-129923-map.yaml | 8 +- .../release-notes/maps/pr-129929-map.yaml | 8 +- .../release-notes/maps/pr-129930-map.yaml | 10 +- .../release-notes/maps/pr-129933-map.yaml | 8 +- .../release-notes/maps/pr-129934-map.yaml | 8 +- .../release-notes/maps/pr-129946-map.yaml | 8 +- .../release-notes/maps/pr-129950-map.yaml | 8 +- .../release-notes/maps/pr-129954-map.yaml | 8 +- .../release-notes/maps/pr-129956-map.yaml | 20 +- .../release-notes/maps/pr-129962-map.yaml | 8 +- .../release-notes/maps/pr-129970-map.yaml | 10 +- .../release-notes/maps/pr-129993-map.yaml | 10 +- .../release-notes/maps/pr-129996-map.yaml | 10 +- .../release-notes/maps/pr-130007-map.yaml | 14 +- .../release-notes/maps/pr-130013-map.yaml | 8 +- .../release-notes/maps/pr-130017-map.yaml | 12 +- .../release-notes/maps/pr-130019-map.yaml | 10 +- .../release-notes/maps/pr-130023-map.yaml | 12 +- .../release-notes/maps/pr-130028-map.yaml | 8 +- .../release-notes/maps/pr-130032-map.yaml | 10 +- .../release-notes/maps/pr-130033-map.yaml | 8 +- .../release-notes/maps/pr-130035-map.yaml | 10 +- .../release-notes/maps/pr-130037-map.yaml | 10 +- .../release-notes/maps/pr-130040-map.yaml | 12 +- .../release-notes/maps/pr-130045-map.yaml | 8 +- .../release-notes/maps/pr-130047-map.yaml | 10 +- .../release-notes/maps/pr-130058-map.yaml | 12 +- .../release-notes/maps/pr-130060-map.yaml | 14 +- .../release-notes/maps/pr-130061-map.yaml | 8 +- .../release-notes/maps/pr-130074-map.yaml | 8 +- .../release-notes/maps/pr-130098-map.yaml | 10 +- .../release-notes/maps/pr-130101-map.yaml | 12 +- .../release-notes/maps/pr-130113-map.yaml | 12 +- .../release-notes/maps/pr-130116-map.yaml | 8 +- .../release-notes/maps/pr-130128-map.yaml | 10 +- .../release-notes/maps/pr-130133-map.yaml | 8 +- .../release-notes/maps/pr-130135-map.yaml | 14 +- .../release-notes/maps/pr-130138-map.yaml | 8 +- .../release-notes/maps/pr-130162-map.yaml | 12 +- .../release-notes/maps/pr-130181-map.yaml | 12 +- .../release-notes/maps/pr-130183-map.yaml | 12 +- .../release-notes/maps/pr-130189-map.yaml | 12 +- .../release-notes/maps/pr-130200-map.yaml | 8 +- .../release-notes/maps/pr-130202-map.yaml | 10 +- .../release-notes/maps/pr-130204-map.yaml | 8 +- .../release-notes/maps/pr-130210-map.yaml | 14 +- .../release-notes/maps/pr-130225-map.yaml | 16 +- .../release-notes/maps/pr-130233-map.yaml | 12 +- .../release-notes/maps/pr-130238-map.yaml | 8 +- .../release-notes/maps/pr-130243-map.yaml | 14 +- .../release-notes/maps/pr-130250-map.yaml | 8 +- .../release-notes/maps/pr-130256-map.yaml | 8 +- .../release-notes/maps/pr-130260-map.yaml | 10 +- .../release-notes/maps/pr-130290-map.yaml | 12 +- .../release-notes/maps/pr-130291-map.yaml | 8 +- .../release-notes/maps/pr-130328-map.yaml | 10 +- .../release-notes/maps/pr-130335-map.yaml | 10 +- .../release-notes/maps/pr-130345-map.yaml | 8 +- .../release-notes/maps/pr-130347-map.yaml | 8 +- .../release-notes/maps/pr-130348-map.yaml | 10 +- .../release-notes/maps/pr-130352-map.yaml | 12 +- .../release-notes/maps/pr-130354-map.yaml | 12 +- .../release-notes/maps/pr-130394-map.yaml | 8 +- .../release-notes/maps/pr-130398-map.yaml | 8 +- .../release-notes/maps/pr-130401-map.yaml | 14 +- .../release-notes/maps/pr-130405-map.yaml | 28 +- .../release-notes/maps/pr-130423-map.yaml | 10 +- .../release-notes/maps/pr-130447-map.yaml | 14 +- .../release-notes/maps/pr-130450-map.yaml | 10 +- .../release-notes/maps/pr-130463-map.yaml | 10 +- .../release-notes/maps/pr-130475-map.yaml | 10 +- .../release-notes/maps/pr-130484-map.yaml | 14 +- .../release-notes/maps/pr-130485-map.yaml | 10 +- .../release-notes/maps/pr-130491-map.yaml | 8 +- .../release-notes/maps/pr-130507-map.yaml | 8 +- .../release-notes/maps/pr-130535-map.yaml | 8 +- .../release-notes/maps/pr-130536-map.yaml | 8 +- .../release-notes/maps/pr-130537-map.yaml | 8 +- .../release-notes/maps/pr-130541-map.yaml | 8 +- .../release-notes/maps/pr-130544-map.yaml | 10 +- .../release-notes/maps/pr-130550-map.yaml | 10 +- .../release-notes/maps/pr-130553-map.yaml | 14 +- .../release-notes/maps/pr-130556-map.yaml | 10 +- .../release-notes/maps/pr-130559-map.yaml | 10 +- .../release-notes/maps/pr-130560-map.yaml | 16 +- .../release-notes/maps/pr-130564-map.yaml | 14 +- .../release-notes/maps/pr-130571-map.yaml | 14 +- .../release-notes/maps/pr-130573-map.yaml | 10 +- .../release-notes/maps/pr-130574-map.yaml | 10 +- .../release-notes/maps/pr-130577-map.yaml | 10 +- .../release-notes/maps/pr-130591-map.yaml | 12 +- .../release-notes/maps/pr-130599-map.yaml | 10 +- .../release-notes/maps/pr-130616-map.yaml | 16 +- .../release-notes/maps/pr-130621-map.yaml | 10 +- .../release-notes/maps/pr-130626-map.yaml | 10 +- .../release-notes/maps/pr-130649-map.yaml | 10 +- .../release-notes/maps/pr-130650-map.yaml | 10 +- .../release-notes/maps/pr-130655-map.yaml | 10 +- .../release-notes/maps/pr-130658-map.yaml | 8 +- .../release-notes/maps/pr-130666-map.yaml | 10 +- .../release-notes/maps/pr-130673-map.yaml | 18 +- .../release-notes/maps/pr-130701-map.yaml | 8 +- .../release-notes/maps/pr-130711-map.yaml | 22 +- .../release-notes/maps/pr-130725-map.yaml | 14 +- .../release-notes/maps/pr-130728-map.yaml | 12 +- .../release-notes/maps/pr-130733-map.yaml | 12 +- .../release-notes/maps/pr-130738-map.yaml | 12 +- .../release-notes/maps/pr-130742-map.yaml | 14 +- .../release-notes/maps/pr-130751-map.yaml | 12 +- .../release-notes/maps/pr-130764-map.yaml | 10 +- .../release-notes/maps/pr-130772-map.yaml | 14 +- .../release-notes/maps/pr-130797-map.yaml | 10 +- .../release-notes/maps/pr-130798-map.yaml | 8 +- .../release-notes/maps/pr-130814-map.yaml | 10 +- .../release-notes/maps/pr-130831-map.yaml | 10 +- .../release-notes/maps/pr-130844-map.yaml | 18 +- .../release-notes/maps/pr-130875-map.yaml | 22 +- .../release-notes/maps/pr-130876-map.yaml | 10 +- .../release-notes/maps/pr-130880-map.yaml | 12 +- .../release-notes/maps/pr-130899-map.yaml | 10 +- .../release-notes/maps/pr-130902-map.yaml | 8 +- .../release-notes/maps/pr-130905-map.yaml | 10 +- .../release-notes/maps/pr-130908-map.yaml | 14 +- .../release-notes/maps/pr-130920-map.yaml | 8 +- .../release-notes/maps/pr-130935-map.yaml | 8 +- .../release-notes/maps/pr-131020-map.yaml | 10 +- .../release-notes/maps/pr-131036-map.yaml | 12 +- .../release-notes/maps/pr-131103-map.yaml | 8 +- .../release-notes/release-notes-draft.json | 12612 +++++------ .../release-notes/release-notes-draft.md | 732 +- .../sessions/maps-1739546172.json | 660 +- .../sessions/maps-1740367440.json | 204 +- .../sessions/maps-1741475931.json | 364 +- .../sessions/maps-1742231000.json | 164 +- .../sessions/maps-1744197681.json | 2060 +- .../sessions/maps-1744804413.json | 2060 +- releases/release-1.33/release-team.md | 30 +- releases/release-1.34/README.md | 268 +- releases/release-1.34/exceptions.yaml | 258 +- .../release-notes/maps/pr-120816-map.yaml | 10 +- .../release-notes/maps/pr-125271-map.yaml | 10 +- .../release-notes/maps/pr-126619-map.yaml | 10 +- .../release-notes/maps/pr-127365-map.yaml | 10 +- .../release-notes/maps/pr-127667-map.yaml | 14 +- .../release-notes/maps/pr-128010-map.yaml | 8 +- .../release-notes/maps/pr-128351-map.yaml | 8 +- .../release-notes/maps/pr-128748-map.yaml | 10 +- .../release-notes/maps/pr-129237-map.yaml | 16 +- .../release-notes/maps/pr-129373-map.yaml | 10 +- .../release-notes/maps/pr-129438-map.yaml | 14 +- .../release-notes/maps/pr-129837-map.yaml | 26 +- .../release-notes/maps/pr-129874-map.yaml | 24 +- .../release-notes/maps/pr-130160-map.yaml | 8 +- .../release-notes/maps/pr-130333-map.yaml | 10 +- .../release-notes/maps/pr-130387-map.yaml | 8 +- .../release-notes/maps/pr-130542-map.yaml | 10 +- .../release-notes/maps/pr-130593-map.yaml | 14 +- .../release-notes/maps/pr-130606-map.yaml | 16 +- .../release-notes/maps/pr-130653-map.yaml | 14 +- .../release-notes/maps/pr-130713-map.yaml | 8 +- .../release-notes/maps/pr-130720-map.yaml | 10 +- .../release-notes/maps/pr-130727-map.yaml | 8 +- .../release-notes/maps/pr-130782-map.yaml | 10 +- .../release-notes/maps/pr-130852-map.yaml | 8 +- .../release-notes/maps/pr-130909-map.yaml | 8 +- .../release-notes/maps/pr-130919-map.yaml | 14 +- .../release-notes/maps/pr-130994-map.yaml | 10 +- .../release-notes/maps/pr-131001-map.yaml | 8 +- .../release-notes/maps/pr-131018-map.yaml | 10 +- .../release-notes/maps/pr-131085-map.yaml | 8 +- .../release-notes/maps/pr-131089-map.yaml | 12 +- .../release-notes/maps/pr-131151-map.yaml | 8 +- .../release-notes/maps/pr-131157-map.yaml | 12 +- .../release-notes/maps/pr-131165-map.yaml | 10 +- .../release-notes/maps/pr-131213-map.yaml | 8 +- .../release-notes/maps/pr-131215-map.yaml | 14 +- .../release-notes/maps/pr-131265-map.yaml | 8 +- .../release-notes/maps/pr-131299-map.yaml | 10 +- .../release-notes/maps/pr-131300-map.yaml | 18 +- .../release-notes/maps/pr-131306-map.yaml | 8 +- .../release-notes/maps/pr-131311-map.yaml | 10 +- .../release-notes/maps/pr-131318-map.yaml | 10 +- .../release-notes/maps/pr-131354-map.yaml | 10 +- .../release-notes/maps/pr-131408-map.yaml | 8 +- .../release-notes/maps/pr-131418-map.yaml | 10 +- .../release-notes/maps/pr-131425-map.yaml | 10 +- .../release-notes/maps/pr-131444-map.yaml | 8 +- .../release-notes/maps/pr-131459-map.yaml | 8 +- .../release-notes/maps/pr-131463-map.yaml | 8 +- .../release-notes/maps/pr-131493-map.yaml | 10 +- .../release-notes/maps/pr-131495-map.yaml | 12 +- .../release-notes/maps/pr-131501-map.yaml | 8 +- .../release-notes/maps/pr-131506-map.yaml | 12 +- .../release-notes/maps/pr-131514-map.yaml | 8 +- .../release-notes/maps/pr-131525-map.yaml | 12 +- .../release-notes/maps/pr-131563-map.yaml | 10 +- .../release-notes/maps/pr-131568-map.yaml | 10 +- .../release-notes/maps/pr-131574-map.yaml | 16 +- .../release-notes/maps/pr-131586-map.yaml | 8 +- .../release-notes/maps/pr-131587-map.yaml | 10 +- .../release-notes/maps/pr-131623-map.yaml | 10 +- .../release-notes/maps/pr-131632-map.yaml | 10 +- .../release-notes/maps/pr-131641-map.yaml | 10 +- .../release-notes/maps/pr-131647-map.yaml | 10 +- .../release-notes/maps/pr-131654-map.yaml | 10 +- .../release-notes/maps/pr-131658-map.yaml | 14 +- .../release-notes/maps/pr-131677-map.yaml | 10 +- .../release-notes/maps/pr-131741-map.yaml | 8 +- .../release-notes/maps/pr-131752-map.yaml | 10 +- .../release-notes/maps/pr-131768-map.yaml | 12 +- .../release-notes/maps/pr-131790-map.yaml | 8 +- .../release-notes/maps/pr-131798-map.yaml | 12 +- .../release-notes/maps/pr-131799-map.yaml | 10 +- .../release-notes/maps/pr-131818-map.yaml | 12 +- .../release-notes/maps/pr-131822-map.yaml | 10 +- .../release-notes/maps/pr-131837-map.yaml | 12 +- .../release-notes/maps/pr-131844-map.yaml | 12 +- .../release-notes/maps/pr-131868-map.yaml | 10 +- .../release-notes/maps/pr-131887-map.yaml | 12 +- .../release-notes/maps/pr-131907-map.yaml | 8 +- .../release-notes/maps/pr-131919-map.yaml | 10 +- .../release-notes/maps/pr-131934-map.yaml | 8 +- .../release-notes/maps/pr-131961-map.yaml | 8 +- .../release-notes/maps/pr-131965-map.yaml | 10 +- .../release-notes/maps/pr-131968-map.yaml | 12 +- .../release-notes/maps/pr-131979-map.yaml | 8 +- .../release-notes/maps/pr-131981-map.yaml | 16 +- .../release-notes/maps/pr-131989-map.yaml | 14 +- .../release-notes/maps/pr-131992-map.yaml | 8 +- .../release-notes/maps/pr-131996-map.yaml | 8 +- .../release-notes/maps/pr-132007-map.yaml | 14 +- .../release-notes/maps/pr-132012-map.yaml | 8 +- .../release-notes/maps/pr-132019-map.yaml | 10 +- .../release-notes/maps/pr-132028-map.yaml | 16 +- .../release-notes/maps/pr-132033-map.yaml | 14 +- .../release-notes/maps/pr-132034-map.yaml | 10 +- .../release-notes/maps/pr-132040-map.yaml | 10 +- .../release-notes/maps/pr-132054-map.yaml | 10 +- .../release-notes/maps/pr-132058-map.yaml | 12 +- .../release-notes/maps/pr-132080-map.yaml | 8 +- .../release-notes/maps/pr-132083-map.yaml | 8 +- .../release-notes/maps/pr-132087-map.yaml | 12 +- .../release-notes/maps/pr-132096-map.yaml | 10 +- .../release-notes/maps/pr-132106-map.yaml | 8 +- .../release-notes/maps/pr-132108-map.yaml | 8 +- .../release-notes/maps/pr-132109-map.yaml | 10 +- .../release-notes/maps/pr-132117-map.yaml | 8 +- .../release-notes/maps/pr-132149-map.yaml | 8 +- .../release-notes/maps/pr-132173-map.yaml | 10 +- .../release-notes/maps/pr-132190-map.yaml | 10 +- .../release-notes/maps/pr-132194-map.yaml | 10 +- .../release-notes/maps/pr-132210-map.yaml | 10 +- .../release-notes/maps/pr-132214-map.yaml | 10 +- .../release-notes/maps/pr-132219-map.yaml | 8 +- .../release-notes/maps/pr-132222-map.yaml | 8 +- .../release-notes/maps/pr-132229-map.yaml | 8 +- .../release-notes/maps/pr-132236-map.yaml | 10 +- .../release-notes/maps/pr-132244-map.yaml | 10 +- .../release-notes/maps/pr-132257-map.yaml | 8 +- .../release-notes/maps/pr-132276-map.yaml | 8 +- .../release-notes/maps/pr-132277-map.yaml | 8 +- .../release-notes/maps/pr-132284-map.yaml | 8 +- .../release-notes/maps/pr-132285-map.yaml | 8 +- .../release-notes/maps/pr-132296-map.yaml | 10 +- .../release-notes/maps/pr-132299-map.yaml | 18 +- .../release-notes/maps/pr-132305-map.yaml | 10 +- .../release-notes/maps/pr-132326-map.yaml | 10 +- .../release-notes/maps/pr-132336-map.yaml | 10 +- .../release-notes/maps/pr-132338-map.yaml | 10 +- .../release-notes/maps/pr-132340-map.yaml | 12 +- .../release-notes/maps/pr-132342-map.yaml | 12 +- .../release-notes/maps/pr-132348-map.yaml | 8 +- .../release-notes/maps/pr-132351-map.yaml | 8 +- .../release-notes/maps/pr-132352-map.yaml | 10 +- .../release-notes/maps/pr-132355-map.yaml | 10 +- .../release-notes/maps/pr-132361-map.yaml | 14 +- .../release-notes/maps/pr-132374-map.yaml | 10 +- .../release-notes/maps/pr-132376-map.yaml | 8 +- .../release-notes/maps/pr-132391-map.yaml | 12 +- .../release-notes/maps/pr-132413-map.yaml | 10 +- .../release-notes/maps/pr-132429-map.yaml | 8 +- .../release-notes/maps/pr-132430-map.yaml | 12 +- .../release-notes/maps/pr-132433-map.yaml | 8 +- .../release-notes/maps/pr-132443-map.yaml | 12 +- .../release-notes/maps/pr-132456-map.yaml | 10 +- .../release-notes/maps/pr-132457-map.yaml | 12 +- .../release-notes/maps/pr-132462-map.yaml | 14 +- .../release-notes/maps/pr-132467-map.yaml | 10 +- .../release-notes/maps/pr-132472-map.yaml | 10 +- .../release-notes/maps/pr-132473-map.yaml | 8 +- .../release-notes/maps/pr-132484-map.yaml | 8 +- .../release-notes/maps/pr-132509-map.yaml | 8 +- .../release-notes/maps/pr-132513-map.yaml | 10 +- .../release-notes/maps/pr-132514-map.yaml | 12 +- .../release-notes/maps/pr-132522-map.yaml | 18 +- .../release-notes/maps/pr-132529-map.yaml | 10 +- .../release-notes/maps/pr-132537-map.yaml | 10 +- .../release-notes/maps/pr-132542-map.yaml | 10 +- .../release-notes/maps/pr-132548-map.yaml | 8 +- .../release-notes/maps/pr-132558-map.yaml | 12 +- .../release-notes/maps/pr-132574-map.yaml | 12 +- .../release-notes/maps/pr-132581-map.yaml | 8 +- .../release-notes/maps/pr-132593-map.yaml | 8 +- .../release-notes/maps/pr-132594-map.yaml | 14 +- .../release-notes/maps/pr-132595-map.yaml | 8 +- .../release-notes/maps/pr-132604-map.yaml | 8 +- .../release-notes/maps/pr-132605-map.yaml | 12 +- .../release-notes/maps/pr-132614-map.yaml | 10 +- .../release-notes/maps/pr-132617-map.yaml | 12 +- .../release-notes/maps/pr-132626-map.yaml | 14 +- .../release-notes/maps/pr-132632-map.yaml | 10 +- .../release-notes/maps/pr-132642-map.yaml | 10 +- .../release-notes/maps/pr-132645-map.yaml | 8 +- .../release-notes/maps/pr-132647-map.yaml | 10 +- .../release-notes/maps/pr-132648-map.yaml | 10 +- .../release-notes/maps/pr-132656-map.yaml | 10 +- .../release-notes/maps/pr-132662-map.yaml | 8 +- .../release-notes/maps/pr-132674-map.yaml | 10 +- .../release-notes/maps/pr-132698-map.yaml | 10 +- .../release-notes/maps/pr-132699-map.yaml | 10 +- .../release-notes/maps/pr-132700-map.yaml | 12 +- .../release-notes/maps/pr-132701-map.yaml | 10 +- .../release-notes/maps/pr-132704-map.yaml | 10 +- .../release-notes/maps/pr-132706-map.yaml | 10 +- .../release-notes/maps/pr-132720-map.yaml | 10 +- .../release-notes/maps/pr-132721-map.yaml | 10 +- .../release-notes/maps/pr-132723-map.yaml | 10 +- .../release-notes/maps/pr-132724-map.yaml | 10 +- .../release-notes/maps/pr-132725-map.yaml | 10 +- .../release-notes/maps/pr-132726-map.yaml | 10 +- .../release-notes/maps/pr-132741-map.yaml | 10 +- .../release-notes/maps/pr-132742-map.yaml | 10 +- .../release-notes/maps/pr-132743-map.yaml | 10 +- .../release-notes/maps/pr-132750-map.yaml | 10 +- .../release-notes/maps/pr-132751-map.yaml | 10 +- .../release-notes/maps/pr-132752-map.yaml | 10 +- .../release-notes/maps/pr-132753-map.yaml | 10 +- .../release-notes/maps/pr-132754-map.yaml | 10 +- .../release-notes/maps/pr-132755-map.yaml | 10 +- .../release-notes/maps/pr-132762-map.yaml | 10 +- .../release-notes/maps/pr-132763-map.yaml | 10 +- .../release-notes/maps/pr-132764-map.yaml | 10 +- .../release-notes/maps/pr-132765-map.yaml | 10 +- .../release-notes/maps/pr-132767-map.yaml | 10 +- .../release-notes/maps/pr-132768-map.yaml | 16 +- .../release-notes/maps/pr-132771-map.yaml | 16 +- .../release-notes/maps/pr-132773-map.yaml | 10 +- .../release-notes/maps/pr-132776-map.yaml | 16 +- .../release-notes/maps/pr-132777-map.yaml | 10 +- .../release-notes/maps/pr-132778-map.yaml | 10 +- .../release-notes/maps/pr-132779-map.yaml | 10 +- .../release-notes/maps/pr-132781-map.yaml | 10 +- .../release-notes/maps/pr-132784-map.yaml | 10 +- .../release-notes/maps/pr-132794-map.yaml | 8 +- .../release-notes/maps/pr-132800-map.yaml | 14 +- .../release-notes/maps/pr-132803-map.yaml | 16 +- .../release-notes/maps/pr-132806-map.yaml | 8 +- .../release-notes/maps/pr-132821-map.yaml | 18 +- .../release-notes/maps/pr-132832-map.yaml | 10 +- .../release-notes/maps/pr-132837-map.yaml | 10 +- .../release-notes/maps/pr-132838-map.yaml | 14 +- .../release-notes/maps/pr-132840-map.yaml | 10 +- .../release-notes/maps/pr-132868-map.yaml | 10 +- .../release-notes/maps/pr-132876-map.yaml | 8 +- .../release-notes/maps/pr-132884-map.yaml | 14 +- .../release-notes/maps/pr-132886-map.yaml | 12 +- .../release-notes/maps/pr-132893-map.yaml | 8 +- .../release-notes/maps/pr-132895-map.yaml | 10 +- .../release-notes/maps/pr-132896-map.yaml | 8 +- .../release-notes/maps/pr-132901-map.yaml | 8 +- .../release-notes/maps/pr-132902-map.yaml | 12 +- .../release-notes/maps/pr-132903-map.yaml | 8 +- .../release-notes/maps/pr-132907-map.yaml | 8 +- .../release-notes/maps/pr-132910-map.yaml | 10 +- .../release-notes/maps/pr-132912-map.yaml | 16 +- .../release-notes/maps/pr-132932-map.yaml | 14 +- .../release-notes/maps/pr-132933-map.yaml | 14 +- .../release-notes/maps/pr-132935-map.yaml | 12 +- .../release-notes/maps/pr-132940-map.yaml | 10 +- .../release-notes/maps/pr-132942-map.yaml | 14 +- .../release-notes/maps/pr-132965-map.yaml | 10 +- .../release-notes/maps/pr-132999-map.yaml | 10 +- .../release-notes/maps/pr-133012-map.yaml | 12 +- .../release-notes/maps/pr-133013-map.yaml | 16 +- .../release-notes/maps/pr-133016-map.yaml | 10 +- .../release-notes/maps/pr-133017-map.yaml | 10 +- .../release-notes/maps/pr-133018-map.yaml | 10 +- .../release-notes/maps/pr-133021-map.yaml | 14 +- .../release-notes/maps/pr-133023-map.yaml | 10 +- .../release-notes/maps/pr-133030-map.yaml | 8 +- .../release-notes/maps/pr-133034-map.yaml | 8 +- .../release-notes/maps/pr-133042-map.yaml | 10 +- .../release-notes/maps/pr-133046-map.yaml | 14 +- .../release-notes/maps/pr-133060-map.yaml | 10 +- .../release-notes/maps/pr-133062-map.yaml | 8 +- .../release-notes/maps/pr-133068-map.yaml | 14 +- .../release-notes/maps/pr-133076-map.yaml | 12 +- .../release-notes/maps/pr-133085-map.yaml | 14 +- .../release-notes/maps/pr-133120-map.yaml | 16 +- .../release-notes/maps/pr-133135-map.yaml | 8 +- .../release-notes/maps/pr-133136-map.yaml | 12 +- .../release-notes/maps/pr-133157-map.yaml | 10 +- .../release-notes/maps/pr-133164-map.yaml | 8 +- .../release-notes/maps/pr-133226-map.yaml | 8 +- .../release-notes/maps/pr-133276-map.yaml | 12 +- .../release-notes/maps/pr-133279-map.yaml | 12 +- .../release-notes/maps/pr-133293-map.yaml | 10 +- .../release-notes/maps/pr-133350-map.yaml | 8 +- .../release-notes/maps/pr-133412-map.yaml | 10 +- .../release-notes/release-notes-draft.json | 15206 ++++++------- .../release-notes/release-notes-draft.md | 816 +- .../sessions/maps-1750758381.json | 908 +- .../sessions/maps-1752576012.json | 156 +- .../sessions/maps-1752850350.json | 500 +- .../sessions/maps-1753196145.json | 252 +- .../sessions/maps-1755281132.json | 836 +- .../sessions/maps-1755870745.json | 2588 +-- .../sessions/maps-1756226433.json | 2588 +-- releases/release-1.34/release-team.md | 30 +- releases/release-1.35/OWNERS | 22 +- releases/release-1.35/README.md | 252 +- .../release-notes/maps/pr-117160-map.yaml | 10 +- .../release-notes/maps/pr-122140-map.yaml | 8 +- .../release-notes/maps/pr-123642-map.yaml | 14 +- .../release-notes/maps/pr-125912-map.yaml | 8 +- .../release-notes/maps/pr-126979-map.yaml | 8 +- .../release-notes/maps/pr-130548-map.yaml | 8 +- .../release-notes/maps/pr-130551-map.yaml | 8 +- .../release-notes/maps/pr-130951-map.yaml | 8 +- .../release-notes/maps/pr-131092-map.yaml | 8 +- .../release-notes/maps/pr-131411-map.yaml | 14 +- .../release-notes/maps/pr-131755-map.yaml | 14 +- .../release-notes/maps/pr-132157-map.yaml | 12 +- .../release-notes/maps/pr-132240-map.yaml | 10 +- .../release-notes/maps/pr-132288-map.yaml | 8 +- .../release-notes/maps/pr-132549-map.yaml | 10 +- .../release-notes/maps/pr-132550-map.yaml | 10 +- .../release-notes/maps/pr-132578-map.yaml | 18 +- .../release-notes/maps/pr-132606-map.yaml | 8 +- .../release-notes/maps/pr-132607-map.yaml | 8 +- .../release-notes/maps/pr-132644-map.yaml | 12 +- .../release-notes/maps/pr-132663-map.yaml | 10 +- .../release-notes/maps/pr-132665-map.yaml | 8 +- .../release-notes/maps/pr-132798-map.yaml | 10 +- .../release-notes/maps/pr-132825-map.yaml | 8 +- .../release-notes/maps/pr-132927-map.yaml | 10 +- .../release-notes/maps/pr-133072-map.yaml | 12 +- .../release-notes/maps/pr-133097-map.yaml | 10 +- .../release-notes/maps/pr-133128-map.yaml | 10 +- .../release-notes/maps/pr-133153-map.yaml | 8 +- .../release-notes/maps/pr-133172-map.yaml | 32 +- .../release-notes/maps/pr-133190-map.yaml | 10 +- .../release-notes/maps/pr-133239-map.yaml | 8 +- .../release-notes/maps/pr-133323-map.yaml | 10 +- .../release-notes/maps/pr-133327-map.yaml | 8 +- .../release-notes/maps/pr-133338-map.yaml | 10 +- .../release-notes/maps/pr-133357-map.yaml | 8 +- .../release-notes/maps/pr-133358-map.yaml | 10 +- .../release-notes/maps/pr-133363-map.yaml | 12 +- .../release-notes/maps/pr-133373-map.yaml | 10 +- .../release-notes/maps/pr-133394-map.yaml | 8 +- .../release-notes/maps/pr-133436-map.yaml | 8 +- .../release-notes/maps/pr-133492-map.yaml | 12 +- .../release-notes/maps/pr-133511-map.yaml | 10 +- .../release-notes/maps/pr-133513-map.yaml | 12 +- .../release-notes/maps/pr-133540-map.yaml | 10 +- .../release-notes/maps/pr-133571-map.yaml | 10 +- .../release-notes/maps/pr-133603-map.yaml | 8 +- .../release-notes/maps/pr-133615-map.yaml | 8 +- .../release-notes/maps/pr-133627-map.yaml | 8 +- .../release-notes/maps/pr-133706-map.yaml | 10 +- .../release-notes/maps/pr-133715-map.yaml | 8 +- .../release-notes/maps/pr-133720-map.yaml | 8 +- .../release-notes/maps/pr-133721-map.yaml | 12 +- .../release-notes/maps/pr-133731-map.yaml | 8 +- .../release-notes/maps/pr-133742-map.yaml | 10 +- .../release-notes/maps/pr-133771-map.yaml | 8 +- .../release-notes/maps/pr-133778-map.yaml | 14 +- .../release-notes/maps/pr-133779-map.yaml | 14 +- .../release-notes/maps/pr-133792-map.yaml | 8 +- .../release-notes/maps/pr-133817-map.yaml | 12 +- .../release-notes/maps/pr-133841-map.yaml | 12 +- .../release-notes/maps/pr-133873-map.yaml | 14 +- .../release-notes/maps/pr-133883-map.yaml | 12 +- .../release-notes/maps/pr-133890-map.yaml | 8 +- .../release-notes/maps/pr-133894-map.yaml | 10 +- .../release-notes/maps/pr-133896-map.yaml | 12 +- .../release-notes/maps/pr-133904-map.yaml | 8 +- .../release-notes/maps/pr-133907-map.yaml | 10 +- .../release-notes/maps/pr-133917-map.yaml | 10 +- .../release-notes/maps/pr-133926-map.yaml | 10 +- .../release-notes/maps/pr-133929-map.yaml | 8 +- .../release-notes/maps/pr-133948-map.yaml | 8 +- .../release-notes/maps/pr-133980-map.yaml | 10 +- .../release-notes/maps/pr-134007-map.yaml | 12 +- .../release-notes/maps/pr-134017-map.yaml | 16 +- .../release-notes/maps/pr-134024-map.yaml | 14 +- .../release-notes/maps/pr-134028-map.yaml | 10 +- .../release-notes/maps/pr-134043-map.yaml | 8 +- .../release-notes/maps/pr-134054-map.yaml | 8 +- .../release-notes/maps/pr-134072-map.yaml | 14 +- .../release-notes/maps/pr-134103-map.yaml | 12 +- .../release-notes/maps/pr-134106-map.yaml | 20 +- .../release-notes/maps/pr-134130-map.yaml | 12 +- .../release-notes/maps/pr-134152-map.yaml | 16 +- .../release-notes/maps/pr-134154-map.yaml | 10 +- .../release-notes/maps/pr-134157-map.yaml | 10 +- .../release-notes/maps/pr-134193-map.yaml | 10 +- .../release-notes/maps/pr-134245-map.yaml | 10 +- .../release-notes/maps/pr-134251-map.yaml | 8 +- .../release-notes/maps/pr-134256-map.yaml | 20 +- .../release-notes/maps/pr-134263-map.yaml | 10 +- .../release-notes/maps/pr-134265-map.yaml | 12 +- .../release-notes/maps/pr-134279-map.yaml | 10 +- .../release-notes/maps/pr-134294-map.yaml | 12 +- .../release-notes/maps/pr-134298-map.yaml | 12 +- .../release-notes/maps/pr-134312-map.yaml | 8 +- .../release-notes/maps/pr-134313-map.yaml | 10 +- .../release-notes/maps/pr-134319-map.yaml | 14 +- .../release-notes/maps/pr-134330-map.yaml | 10 +- .../release-notes/maps/pr-134378-map.yaml | 10 +- .../release-notes/maps/pr-134379-map.yaml | 10 +- .../release-notes/maps/pr-134381-map.yaml | 10 +- .../release-notes/maps/pr-134384-map.yaml | 10 +- .../release-notes/maps/pr-134388-map.yaml | 10 +- .../release-notes/maps/pr-134390-map.yaml | 8 +- .../release-notes/maps/pr-134400-map.yaml | 12 +- .../release-notes/maps/pr-134433-map.yaml | 10 +- .../release-notes/maps/pr-134445-map.yaml | 10 +- .../release-notes/maps/pr-134452-map.yaml | 10 +- .../release-notes/maps/pr-134457-map.yaml | 16 +- .../release-notes/maps/pr-134466-map.yaml | 10 +- .../release-notes/maps/pr-134479-map.yaml | 14 +- .../release-notes/maps/pr-134481-map.yaml | 10 +- .../release-notes/maps/pr-134493-map.yaml | 12 +- .../release-notes/maps/pr-134510-map.yaml | 10 +- .../release-notes/maps/pr-134523-map.yaml | 12 +- .../release-notes/maps/pr-134539-map.yaml | 10 +- .../release-notes/maps/pr-134577-map.yaml | 14 +- .../release-notes/maps/pr-134588-map.yaml | 10 +- .../release-notes/maps/pr-134598-map.yaml | 8 +- .../release-notes/maps/pr-134601-map.yaml | 14 +- .../release-notes/maps/pr-134611-map.yaml | 8 +- .../release-notes/maps/pr-134614-map.yaml | 10 +- .../release-notes/maps/pr-134624-map.yaml | 18 +- .../release-notes/maps/pr-134625-map.yaml | 10 +- .../release-notes/maps/pr-134631-map.yaml | 12 +- .../release-notes/maps/pr-134647-map.yaml | 8 +- .../release-notes/maps/pr-134654-map.yaml | 10 +- .../release-notes/maps/pr-134656-map.yaml | 8 +- .../release-notes/maps/pr-134685-map.yaml | 8 +- .../release-notes/maps/pr-134691-map.yaml | 16 +- .../release-notes/maps/pr-134692-map.yaml | 10 +- .../release-notes/maps/pr-134709-map.yaml | 8 +- .../release-notes/maps/pr-134715-map.yaml | 12 +- .../release-notes/maps/pr-134729-map.yaml | 8 +- .../release-notes/maps/pr-134730-map.yaml | 10 +- .../release-notes/maps/pr-134739-map.yaml | 12 +- .../release-notes/maps/pr-134740-map.yaml | 10 +- .../release-notes/maps/pr-134743-map.yaml | 12 +- .../release-notes/maps/pr-134744-map.yaml | 26 +- .../release-notes/maps/pr-134746-map.yaml | 14 +- .../release-notes/maps/pr-134760-map.yaml | 10 +- .../release-notes/maps/pr-134769-map.yaml | 12 +- .../release-notes/maps/pr-134777-map.yaml | 8 +- .../release-notes/maps/pr-134779-map.yaml | 10 +- .../release-notes/maps/pr-134780-map.yaml | 8 +- .../release-notes/maps/pr-134781-map.yaml | 10 +- .../release-notes/maps/pr-134782-map.yaml | 10 +- .../release-notes/maps/pr-134784-map.yaml | 14 +- .../release-notes/maps/pr-134793-map.yaml | 10 +- .../release-notes/maps/pr-134803-map.yaml | 8 +- .../release-notes/maps/pr-134826-map.yaml | 16 +- .../release-notes/maps/pr-134833-map.yaml | 10 +- .../release-notes/maps/pr-134875-map.yaml | 12 +- .../release-notes/maps/pr-134905-map.yaml | 12 +- .../release-notes/maps/pr-134906-map.yaml | 14 +- .../release-notes/maps/pr-134913-map.yaml | 8 +- .../release-notes/maps/pr-134948-map.yaml | 8 +- .../release-notes/maps/pr-134949-map.yaml | 8 +- .../release-notes/maps/pr-134956-map.yaml | 10 +- .../release-notes/maps/pr-134962-map.yaml | 10 +- .../release-notes/maps/pr-134964-map.yaml | 10 +- .../release-notes/maps/pr-134984-map.yaml | 8 +- .../release-notes/maps/pr-134994-map.yaml | 10 +- .../release-notes/maps/pr-134995-map.yaml | 10 +- .../release-notes/maps/pr-135003-map.yaml | 10 +- .../release-notes/maps/pr-135007-map.yaml | 12 +- .../release-notes/maps/pr-135017-map.yaml | 14 +- .../release-notes/maps/pr-135059-map.yaml | 10 +- .../release-notes/maps/pr-135080-map.yaml | 10 +- .../release-notes/maps/pr-135081-map.yaml | 10 +- .../release-notes/maps/pr-135084-map.yaml | 10 +- .../release-notes/release-notes-draft.json | 8554 ++++---- .../release-notes/release-notes-draft.md | 494 +- .../sessions/maps-1760008566.json | 732 +- .../sessions/maps-1761415847.json | 292 +- .../sessions/maps-1762418245.json | 500 +- releases/release-1.35/release-team.md | 34 +- releases/release-1.35/schedule.ics | 816 +- releases/release-1.4/README.md | 96 +- releases/release-1.4/features.csv | 58 +- releases/release-1.4/release-1.4.md | 2 +- releases/release-1.5/README.md | 118 +- releases/release-1.5/features.csv | 80 +- releases/release-1.5/release-1.5.md | 2 +- releases/release-1.5/release-notes-draft.md | 286 +- releases/release-1.6/README.md | 130 +- releases/release-1.6/features.csv | 70 +- .../release-1.6/flake-reports/2017-03-03.md | 108 +- .../go-signal-reports/2017-03-06.md | 272 +- .../go-signal-reports/2017-03-08.md | 302 +- .../go-signal-reports/2017-03-10.md | 256 +- .../go-signal-reports/2017-03-13.md | 410 +- .../go-signal-reports/2017-03-14.md | 244 +- .../go-signal-reports/2017-03-15.md | 334 +- .../go-signal-reports/2017-03-16.md | 302 +- .../go-signal-reports/2017-03-17.md | 356 +- .../go-signal-reports/2017-03-20.md | 326 +- .../go-signal-reports/2017-03-21.md | 330 +- .../go-signal-reports/2017-03-22.md | 342 +- .../go-signal-reports/2017-03-23.md | 356 +- .../go-signal-reports/2017-03-24.md | 296 +- releases/release-1.6/release-1.6.md | 2 +- releases/release-1.6/release-notes-draft.md | 1730 +- releases/release-1.6/release_team.md | 26 +- releases/release-1.7/README.md | 162 +- releases/release-1.7/features.csv | 66 +- releases/release-1.7/release-1.7.md | 2 +- releases/release-1.7/release-notes-draft.md | 2138 +- releases/release-1.7/release_team.md | 24 +- .../release_team_absence_tracker.md | 40 +- releases/release-1.8/README.md | 182 +- .../add_release_notes_email_template.md | 52 +- releases/release-1.8/features.csv | 114 +- releases/release-1.8/release-1.8.md | 2 +- releases/release-1.8/release-notes-draft.md | 1574 +- .../release-1.8/release_notes_discussion.md | 98 +- releases/release-1.8/release_team.md | 26 +- .../scalability_validation_report.md | 90 +- releases/release-1.9/README.md | 280 +- releases/release-1.9/features.csv | 100 +- releases/release-1.9/release-1.9.md | 2 +- releases/release-1.9/release-notes-draft.md | 1294 +- .../release-1.9/release_notes_discussion.md | 98 +- releases/release-1.9/release_team.md | 28 +- .../scalability_validation_report.md | 118 +- releases/release_phases.md | 362 +- roadmap.md | 432 +- 3838 files changed, 214689 insertions(+), 214690 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md index ec23e879592..4d7d1e37d9a 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -1,26 +1,26 @@ ---- -name: Bug Report -about: Report a SIG Release bug -labels: kind/bug, sig/release - ---- - - - -#### What happened: - -#### What you expected to happen: - -#### How to reproduce it (as minimally and precisely as possible): - -#### Anything else we need to know?: - -#### Environment: - -- Cloud provider or hardware configuration: -- OS (e.g: `cat /etc/os-release`): -- Kernel (e.g. `uname -a`): -- Others: +--- +name: Bug Report +about: Report a SIG Release bug +labels: kind/bug, sig/release + +--- + + + +#### What happened: + +#### What you expected to happen: + +#### How to reproduce it (as minimally and precisely as possible): + +#### Anything else we need to know?: + +#### Environment: + +- Cloud provider or hardware configuration: +- OS (e.g: `cat /etc/os-release`): +- Kernel (e.g. `uname -a`): +- Others: diff --git a/.github/ISSUE_TEMPLATE/cut-release.md b/.github/ISSUE_TEMPLATE/cut-release.md index e5091d062cd..e98d145a504 100644 --- a/.github/ISSUE_TEMPLATE/cut-release.md +++ b/.github/ISSUE_TEMPLATE/cut-release.md @@ -1,153 +1,153 @@ ---- -name: Cut a release -about: Create a tracking issue for a release cut -title: Cut v1.x.y-{alpha,beta,rc}.z release -labels: sig/release, area/release-eng ---- -## Scheduled to happen: - -_Note for v1.x.0 releases: Having this issue in open state will stop the -periodic run of [`krel fast-forward`](https://testgrid.k8s.io/sig-release-releng-blocking#git-repo-kubernetes-fast-forward) -to avoid conflicts with releases running in parallel. The fast-forward will -automatically stop once the v1.x.0 tag is available._ - -## Release Blocking Issues - - - - -## Release Steps - -- [ ] Ensure a green signal has been given by Release Signal **on the day of the cut** -- [ ] Create a thread on #release-management: -- [ ] Screenshot unhealthy release branch testgrid boards -- [ ] Check the health of the publishing-bot -- Mock Run - - [ ] Stage - - [ ] Release -- NoMock Run - - [ ] Stage - - [ ] Image Promotion PR: - - [ ] Release -- [ ] Send email notification: -- [ ] Notify #release-management on Slack: -- [ ] Update [`schedule.yaml` file](https://github.com/kubernetes/website/blob/main/data/releases/schedule.yaml) with the latest release using [`schedule-builder`](https://github.com/kubernetes/release/tree/master/cmd/schedule-builder) (_patch releases only_) -- [ ] Collect metrics and add them to the `Release steps` table below through `krel history --branch release-1.xx --date-from yyyy-mm-dd` (current date) - - - -## Release Tools Version - - -``` -GitVersion: vM.m.p -GitCommit: 191ddd0b0b49af1adb04a98e45cebdd36cae9307 -GitTreeState: clean -BuildDate: YYYY-MM-DDTHH:mm:ssZ -GoVersion: go1.16.3 -Compiler: gc -Platform: linux/amd64 -``` - -## Release Jobs History - - -| Step | Command | Link | Start | Duration | Succeeded? | -| --- | --- | --- | --- | --- | --- | -| Mock stage | `krel stage [arguments]` | | | | | -| Mock release | `krel release [arguments]` | | | | | -| Stage | `krel stage [arguments]` | | | | | -| Release | `krel release [arguments]` | | | | | - -## Action Items - - - -## Open Questions - - - -/milestone -/assign -/cc @kubernetes/release-managers -/priority important-soon -/kind documentation +--- +name: Cut a release +about: Create a tracking issue for a release cut +title: Cut v1.x.y-{alpha,beta,rc}.z release +labels: sig/release, area/release-eng +--- +## Scheduled to happen: + +_Note for v1.x.0 releases: Having this issue in open state will stop the +periodic run of [`krel fast-forward`](https://testgrid.k8s.io/sig-release-releng-blocking#git-repo-kubernetes-fast-forward) +to avoid conflicts with releases running in parallel. The fast-forward will +automatically stop once the v1.x.0 tag is available._ + +## Release Blocking Issues + + + + +## Release Steps + +- [ ] Ensure a green signal has been given by Release Signal **on the day of the cut** +- [ ] Create a thread on #release-management: +- [ ] Screenshot unhealthy release branch testgrid boards +- [ ] Check the health of the publishing-bot +- Mock Run + - [ ] Stage + - [ ] Release +- NoMock Run + - [ ] Stage + - [ ] Image Promotion PR: + - [ ] Release +- [ ] Send email notification: +- [ ] Notify #release-management on Slack: +- [ ] Update [`schedule.yaml` file](https://github.com/kubernetes/website/blob/main/data/releases/schedule.yaml) with the latest release using [`schedule-builder`](https://github.com/kubernetes/release/tree/master/cmd/schedule-builder) (_patch releases only_) +- [ ] Collect metrics and add them to the `Release steps` table below through `krel history --branch release-1.xx --date-from yyyy-mm-dd` (current date) + + + +## Release Tools Version + + +``` +GitVersion: vM.m.p +GitCommit: 191ddd0b0b49af1adb04a98e45cebdd36cae9307 +GitTreeState: clean +BuildDate: YYYY-MM-DDTHH:mm:ssZ +GoVersion: go1.16.3 +Compiler: gc +Platform: linux/amd64 +``` + +## Release Jobs History + + +| Step | Command | Link | Start | Duration | Succeeded? | +| --- | --- | --- | --- | --- | --- | +| Mock stage | `krel stage [arguments]` | | | | | +| Mock release | `krel release [arguments]` | | | | | +| Stage | `krel stage [arguments]` | | | | | +| Release | `krel release [arguments]` | | | | | + +## Action Items + + + +## Open Questions + + + +/milestone +/assign +/cc @kubernetes/release-managers +/priority important-soon +/kind documentation diff --git a/.github/ISSUE_TEMPLATE/feature.md b/.github/ISSUE_TEMPLATE/feature.md index da75421e16d..a7577b5e276 100644 --- a/.github/ISSUE_TEMPLATE/feature.md +++ b/.github/ISSUE_TEMPLATE/feature.md @@ -1,11 +1,11 @@ ---- -name: Feature Request -about: Suggest a SIG Release feature -labels: kind/feature, sig/release - ---- - - -#### What would you like to be added: - -#### Why is this needed: +--- +name: Feature Request +about: Suggest a SIG Release feature +labels: kind/feature, sig/release + +--- + + +#### What would you like to be added: + +#### Why is this needed: diff --git a/.github/ISSUE_TEMPLATE/lead.md b/.github/ISSUE_TEMPLATE/lead.md index 8411e2e0cbf..854613fcef7 100644 --- a/.github/ISSUE_TEMPLATE/lead.md +++ b/.github/ISSUE_TEMPLATE/lead.md @@ -1,90 +1,90 @@ ---- -name: Chair or Technical Lead onboarding -about: Grant/update access for a new Chair/Technical Lead -title: "Chair/Technical Lead access for " -labels: sig/release, area/release-eng ---- - -### GitHub Username - -e.g., (at)example_user - -### [Chair/Technical Lead](https://git.k8s.io/sig-release/lead/onboarding.md) role - -e.g., Chair, Technical Lead - -### Chair and Technical Lead Onboarding - -**All pull requests within these checklists should be marked with an _explicit_ -hold and only released once approved by a SIG Release (subproject) owner.** - -- [ ] Addition of a new Release Manager has been discussed with and approved by - SIG Release owners -- [ ] Ensure new Chair/Technical Lead: - - [ ] Has joined the following mailing lists: - - [kubernetes-sig-release](https://groups.google.com/forum/#!forum/kubernetes-sig-release) - - [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) - - [kubernetes-dev](https://groups.google.com/a/kubernetes.io/g/dev) - - [kubernetes-announce](https://groups.google.com/forum/#!forum/kubernetes-announce) - - [release-managers](https://groups.google.com/a/kubernetes.io/forum/#!forum/release-managers) - - [release-managers-private](https://groups.google.com/a/kubernetes.io/forum/#!forum/release-managers-private) - - [ ] Has joined the following Slack channels: - - [#sig-release](https://kubernetes.slack.com/messages/C2C40FMNF) - - [#release-management](https://kubernetes.slack.com/messages/CJH2GBF7Y) - - [ ] Is a [Kubernetes GitHub org member](https://github.com/kubernetes/community/blob/master/community-membership.md#member) - - [ ] Is part of the [@kubernetes/sig-release-admins](https://github.com/orgs/kubernetes/teams/sig-release-admins) GitHub team -- [ ] Update [Release Managers](https://git.k8s.io/sig-release/release-managers.md) page to include the new Chair or Technical Lead - - - - - -cc: @kubernetes/sig-release-admins +--- +name: Chair or Technical Lead onboarding +about: Grant/update access for a new Chair/Technical Lead +title: "Chair/Technical Lead access for " +labels: sig/release, area/release-eng +--- + +### GitHub Username + +e.g., (at)example_user + +### [Chair/Technical Lead](https://git.k8s.io/sig-release/lead/onboarding.md) role + +e.g., Chair, Technical Lead + +### Chair and Technical Lead Onboarding + +**All pull requests within these checklists should be marked with an _explicit_ +hold and only released once approved by a SIG Release (subproject) owner.** + +- [ ] Addition of a new Release Manager has been discussed with and approved by + SIG Release owners +- [ ] Ensure new Chair/Technical Lead: + - [ ] Has joined the following mailing lists: + - [kubernetes-sig-release](https://groups.google.com/forum/#!forum/kubernetes-sig-release) + - [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) + - [kubernetes-dev](https://groups.google.com/a/kubernetes.io/g/dev) + - [kubernetes-announce](https://groups.google.com/forum/#!forum/kubernetes-announce) + - [release-managers](https://groups.google.com/a/kubernetes.io/forum/#!forum/release-managers) + - [release-managers-private](https://groups.google.com/a/kubernetes.io/forum/#!forum/release-managers-private) + - [ ] Has joined the following Slack channels: + - [#sig-release](https://kubernetes.slack.com/messages/C2C40FMNF) + - [#release-management](https://kubernetes.slack.com/messages/CJH2GBF7Y) + - [ ] Is a [Kubernetes GitHub org member](https://github.com/kubernetes/community/blob/master/community-membership.md#member) + - [ ] Is part of the [@kubernetes/sig-release-admins](https://github.com/orgs/kubernetes/teams/sig-release-admins) GitHub team +- [ ] Update [Release Managers](https://git.k8s.io/sig-release/release-managers.md) page to include the new Chair or Technical Lead + + + + + +cc: @kubernetes/sig-release-admins diff --git a/.github/ISSUE_TEMPLATE/post-release-branch-creation.md b/.github/ISSUE_TEMPLATE/post-release-branch-creation.md index 7ed6642b016..175007c91df 100644 --- a/.github/ISSUE_TEMPLATE/post-release-branch-creation.md +++ b/.github/ISSUE_TEMPLATE/post-release-branch-creation.md @@ -1,78 +1,78 @@ ---- -name: Post Release Branch Creation Tasks -about: Tasks to perform after the rc.0 is cut and the upcoming release branch is created -title: Post Release Branch Creation Tasks for v1.x.y-rc.0 -labels: sig/release, area/release-eng ---- - -## As a follow up on: - -## Tasks - - - -- [ ] Create a thread in #release-management: -- [ ] (optional) Remove jobs for EOL versions, **only** if agreed upon with Release Managers - -- [ ] Update [`milestone_applier` rules](https://github.com/kubernetes/test-infra/blob/master/config/prow/plugins.yaml) -- [ ] Update [`kubekins-e2e-v2/variants.yaml`](https://github.com/kubernetes/test-infra/blob/master/images/kubekins-e2e-v2/variants.yaml) with the new version config -- [ ] Rotate configuration of release branch jobs in kubernetes/test-infra in particular `releng/test_config.yaml` for the upcoming release -- [ ] Run test generation script, configure the new release dashboards and send a PR with both tests and dashboards config -- [ ] Add a new variant for the `kube-cross` image (`kubernetes/release` repository) and ensure the image is built and pushed properly -- [ ] Add new variants for `k8s-cloud-builder` and `k8s-ci-builder` images (`kubernetes/release` repository) and ensure images are built and pushed properly -- [ ] Update references in `kubernetes/kubernetes` with the new kube-cross image (only after all images are pushed/promoted) -- [ ] Update publishing-bot rules to include the new release branch -- [ ] Ensure that a new [performance tests](https://github.com/kubernetes/perf-tests/) branch is created by SIG Scalability maintainers -- [ ] Inform stakeholders about the post branch creation tasks being completed -- [ ] Monitor the new release dashboard with the Release Signal Lead for at least 48 hours - mainly for missing or misconfigured jobs - -## Action Items - - - -## Open Questions - - - -/milestone -/assign -/cc @kubernetes/release-managers @kubernetes/release-team-release-signal -/priority important-soon -/kind documentation +--- +name: Post Release Branch Creation Tasks +about: Tasks to perform after the rc.0 is cut and the upcoming release branch is created +title: Post Release Branch Creation Tasks for v1.x.y-rc.0 +labels: sig/release, area/release-eng +--- + +## As a follow up on: + +## Tasks + + + +- [ ] Create a thread in #release-management: +- [ ] (optional) Remove jobs for EOL versions, **only** if agreed upon with Release Managers + +- [ ] Update [`milestone_applier` rules](https://github.com/kubernetes/test-infra/blob/master/config/prow/plugins.yaml) +- [ ] Update [`kubekins-e2e-v2/variants.yaml`](https://github.com/kubernetes/test-infra/blob/master/images/kubekins-e2e-v2/variants.yaml) with the new version config +- [ ] Rotate configuration of release branch jobs in kubernetes/test-infra in particular `releng/test_config.yaml` for the upcoming release +- [ ] Run test generation script, configure the new release dashboards and send a PR with both tests and dashboards config +- [ ] Add a new variant for the `kube-cross` image (`kubernetes/release` repository) and ensure the image is built and pushed properly +- [ ] Add new variants for `k8s-cloud-builder` and `k8s-ci-builder` images (`kubernetes/release` repository) and ensure images are built and pushed properly +- [ ] Update references in `kubernetes/kubernetes` with the new kube-cross image (only after all images are pushed/promoted) +- [ ] Update publishing-bot rules to include the new release branch +- [ ] Ensure that a new [performance tests](https://github.com/kubernetes/perf-tests/) branch is created by SIG Scalability maintainers +- [ ] Inform stakeholders about the post branch creation tasks being completed +- [ ] Monitor the new release dashboard with the Release Signal Lead for at least 48 hours - mainly for missing or misconfigured jobs + +## Action Items + + + +## Open Questions + + + +/milestone +/assign +/cc @kubernetes/release-managers @kubernetes/release-team-release-signal +/priority important-soon +/kind documentation diff --git a/.github/ISSUE_TEMPLATE/release-manager.md b/.github/ISSUE_TEMPLATE/release-manager.md index d09b7429546..448307161dd 100644 --- a/.github/ISSUE_TEMPLATE/release-manager.md +++ b/.github/ISSUE_TEMPLATE/release-manager.md @@ -1,117 +1,117 @@ ---- -name: Release Manager onboarding -about: Grant/update access for a new Release Manager -title: 'Release Manager access for ' -labels: sig/release, area/release-eng ---- - -### GitHub Username - -e.g., (at)example_user - -### [Release Manager](https://git.k8s.io/sig-release/release-managers.md) role - -e.g., Release Manager, Release Manager Associate - -### Tenure - - -e.g., permanent, temporary - -### Release Manager Onboarding - -**All pull requests within these checklists should be marked with an _explicit_ hold and only released once approved by a Release Engineering subproject owner.** - -- [ ] Addition of a new Release Manager has been discussed with and approved by Release Engineering subproject owners -- [ ] Ensure new Release Manager: - - [ ] Has joined the following mailing lists: - - [kubernetes-sig-release](https://groups.google.com/forum/#!forum/kubernetes-sig-release) - - [kubernetes-dev](https://groups.google.com/a/kubernetes.io/g/dev) - - [ ] Has joined the following Slack channels: - - [#sig-release](https://kubernetes.slack.com/messages/C2C40FMNF) - - [#release-management](https://kubernetes.slack.com/messages/CJH2GBF7Y) - - [ ] Is a [Kubernetes GitHub org member](https://github.com/kubernetes/community/blob/master/community-membership.md#member) -- [ ] Update [Release Managers](https://git.k8s.io/website/content/en/releases/release-managers.md) page to include the new Release Manager -- [ ] Update the [`cherry_pick_approved` prow plugin configuration](https://github.com/kubernetes/test-infra/blob/ce9ca27/config/prow/plugins.yaml#L1104-L1115) section to contain the new approver. - - - - - - - -cc: @kubernetes/release-engineering +--- +name: Release Manager onboarding +about: Grant/update access for a new Release Manager +title: 'Release Manager access for ' +labels: sig/release, area/release-eng +--- + +### GitHub Username + +e.g., (at)example_user + +### [Release Manager](https://git.k8s.io/sig-release/release-managers.md) role + +e.g., Release Manager, Release Manager Associate + +### Tenure + + +e.g., permanent, temporary + +### Release Manager Onboarding + +**All pull requests within these checklists should be marked with an _explicit_ hold and only released once approved by a Release Engineering subproject owner.** + +- [ ] Addition of a new Release Manager has been discussed with and approved by Release Engineering subproject owners +- [ ] Ensure new Release Manager: + - [ ] Has joined the following mailing lists: + - [kubernetes-sig-release](https://groups.google.com/forum/#!forum/kubernetes-sig-release) + - [kubernetes-dev](https://groups.google.com/a/kubernetes.io/g/dev) + - [ ] Has joined the following Slack channels: + - [#sig-release](https://kubernetes.slack.com/messages/C2C40FMNF) + - [#release-management](https://kubernetes.slack.com/messages/CJH2GBF7Y) + - [ ] Is a [Kubernetes GitHub org member](https://github.com/kubernetes/community/blob/master/community-membership.md#member) +- [ ] Update [Release Managers](https://git.k8s.io/website/content/en/releases/release-managers.md) page to include the new Release Manager +- [ ] Update the [`cherry_pick_approved` prow plugin configuration](https://github.com/kubernetes/test-infra/blob/ce9ca27/config/prow/plugins.yaml#L1104-L1115) section to contain the new approver. + + + + + + + +cc: @kubernetes/release-engineering diff --git a/.github/ISSUE_TEMPLATE/release-team-lead-progress.md b/.github/ISSUE_TEMPLATE/release-team-lead-progress.md index 35cc3b63c17..8055b263ea0 100644 --- a/.github/ISSUE_TEMPLATE/release-team-lead-progress.md +++ b/.github/ISSUE_TEMPLATE/release-team-lead-progress.md @@ -1,255 +1,255 @@ ---- -name: Release Team Lead Cycle Progress -about: Used to track release lead work which needs to be done every release cycle -title: '[1.XX] Release Team Lead Cycle Progress' -labels: sig/release, area/release-eng, area/release-team ---- - - - -* Release Team Leads - * Release Lead: (at)USERNAME - * Release Lead Shadow: (at)USERNAME - * Release Lead Shadow: (at)USERNAME - * Release Lead Shadow: (at)USERNAME - * Release Lead Shadow: (at)USERNAME -* Release Cycle: `Kubernetes 1.XX` -* [Release Timeline](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.XX) - -Additional information can be found in the [release team lead handbook](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/release-team-lead). If tasks are not needed to be done or additional tasks are required, make sure to update the issue template! - -## Release Lead tasks - -### 1. Before the start of the Release Cycle (Week 0) - -- [ ] Captured feedback from previous release cycle retro and planned to incorporate it into the release cycle -- [ ] Release directory named `release-1.XX` added to [k/sig-release/releases](https://github.com/kubernetes/sig-release/tree/master/releases) -- [ ] Started planning the release schedule by opening a thread in `#sig-release` -- [ ] Release Lead Shadows are confirmed -- [ ] Team leads notified that all release team members read the [release team onboarding document](https://github.com/kubernetes/sig-release/blob/master/release-team/release-team-onboarding.md) -- [ ] Update slack channel descriptions for the `#sig-release` channel and all `#release-xxx` channels - -**Release Lead Onboarding:** -- [ ] Release Team Lead has agreed to abide by the guidelines set forth in the - [Security Release Process](https://git.k8s.io/security/security-release-process.md), specifically the embargo on CVE communications. - This must be done as an issue comment by the incoming Release Team Lead. -- [ ] Updated GitHub teams [(`kubernetes/org`)](https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml) - - `milestone-maintainers` - - `release-team` - - `release-team-leads` - - `sig-release` -- [ ] Updated `kubernetes/sig-release` `OWNERS` - - Release Team Lead and Shadows - - Add an `approvers` entry in `releases/release-1.XX/OWNERS` - - **Release Team Lead only** - - In `OWNERS_ALIASES`, add an entry in the following sections: - - `release-team` - - `release-team-lead-role` -- [ ] Updated Google Groups/GCP IAM membership [(`kubernetes/k8s.io`)](https://git.k8s.io/k8s.io/groups/groups.yaml) - - `k8s-infra-release-viewers@` - - `release-managers@` - - `release-team@` -- [ ] Release Team calendar access granted (reach out to sig-release chairs) -- [ ] Zoom credentials (host key) granted (reach out to sig-release chairs) -- [ ] Added incoming release team leads to `release-team-leads` Slack Group [(`kubernetes/community`)](https://git.k8s.io/community/communication/slack-config/sig-release/usergroups.yaml) - - Add slack ID(s) to [`users.yaml`](https://git.k8s.io/community/communication/slack-config/users.yaml), if they are not yet in the file - - Add username(s) to [`usergroups.yaml`](https://git.k8s.io/community/communication/slack-config/sig-release/usergroups.yaml) -- [ ] Ensured the Release Team subproject owners are the owners of the [kubernetes-release-team-shadows](https://groups.google.com/a/kubernetes.io/g/release-team-shadows) Google Group. -- [ ] Ensured top-level `OWNERS_ALIASES` only includes Release Team personnel from four (4) releases, including the current one. - -**Create Release Team Documents:** -- [ ] Meeting Notes document created - - Access: public comment access, edit access [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) - - Bit.ly: `bit.ly/k8s1XX-releasemtg` - - Example: [1.26](https://bit.ly/k8s126-releasemtg) -- [ ] Retro document created - - Access: public comment access, edit rights shared with [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) - - Bit.ly: `bit.ly/k8s1XX-retro` - - Example: [1.26](https://bit.ly/k8s126-retro) -- [ ] Release Team contact sheet created - - Access: **restricted access** edit rights shared with [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) - - Bit.ly: `bit.ly/k8s1XX-contacts` -- [ ] Lead rotation sheet created - - Access: : **restricted access**, edit rights shared with release team lead shadows individually - -**One week before the start of the release cycle:** -- [ ] "Release Sneak Peak" email to introduce yourself, lead shadows, role leads, and branch manager has been send out - - Send the email to [k-dev](https://groups.google.com/a/kubernetes.io/g/dev), [SIG Leads](https://groups.google.com/a/kubernetes.io/g/leads), [SIG Release](https://groups.google.com/forum/#!forum/kubernetes-sig-release), [Release Team](https://groups.google.com/a/kubernetes.io/g/release-team) - - Example: [1.26 sneak peek](https://groups.google.com/a/kubernetes.io/g/dev/c/PVe1OG8yjHw/m/zZjnttXWAQAJ) - -### 2. First weeks of the release cycle up to Enhancements Freeze (1-3 Weeks) - -**First Week of the release cycle:** -- [ ] Checked in with team leads and verified that the release team is complete -- [ ] Reminded release team members to subscribe to the [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) and [kubernetes-sig-release](https://groups.google.com/forum/#!forum/kubernetes-sig-release) google groups and to the [kubernetes-release calendar](https://bit.ly/k8s-release-cal). -- [ ] Notified team leads to update the contact sheet with shadow information `bit.ly/k8s1XX-contacts` -- [ ] Release schedule finalized -- [ ] Begin paying attention to CI signal, as it may begin degrading soon after the prior release is cut and any slips must be caught and rectified promptly. -- [ ] Meet your Shadows and create a communication channel with them. Establish expectations and share out work - delegate! -- [ ] Pair your Shadows to support two subteams for the duration of the release. -- [ ] Request review of this document by the Release Team Lead shadow(s). The shadow(s) should also take all actions in this document around joining groups and requesting access permissions. -- [ ] Update the SIG Release groups in the `k/k8s.io/groups/sig-release/groups.yaml` with the following: - - [ ] Add Lead and Lead shadows to members of `k8s-infra-release-viewers` - - [ ] Add EA, Lead, Lead shadows, comms lead, comms shadows to members of `release-comms` - - [ ] Add EA, Lead and Lead shadows to members of `release-managers` - - [ ] Add EA, Lead and Lead shadows to managers of `release-team` - - [ ] Add Role Leads and Role shadows to members of `release-team` - - [ ] Add Role shadows and Lead shadows to members of `release-team-shadows` - - [ ] Add EA to manager of release-team-shadows, if EA is owner of `release-team-shadows` already then add Lead to manager of `release-team-shadows` -- [ ] Ensured that there is a branch manager available for cutting 1.XX.0-alpha.1 - -- Assist the Enhancements Lead in collecting planned work from SIGs -- [ ] Discussed and scheduled a weekly Release Team meetings on a day that is most acceptable to the team. Invite the `kubernetes-sig-release` group. -- [ ] Update the release calendar with the initial release meeting times and dates set to UTC. -- [ ] Poll Release Team membership and schedule a weekly alternate meeting to better enable more attendance outside of the Americas. -- [ ] Major release cycle events have been added to the Kubernetes Release Calendar with one week in advance reminders set. (defer to the [handbook for more information](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/release-team-lead#working-with-the-release-team-calendar)) -- [ ] Checked in with ci-signal and branch managers if 1.XX.0-alpha.2 is ok to be released and [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) tests are all green - -**A week before Enhancements Freeze:** -- [ ] Remind the community about Enhancements Freeze reminder send out. Example email: [1.26](https://groups.google.com/a/kubernetes.io/g/dev/c/pJZC2cnkeJ8); It may also be useful to send a short version to the `#sig-release` and `#chairs-and-techleads` Slack channels referencing to the k-dev email. - -### 3. Enhancements freeze up to Release Halfway Point (~Week 5 - 7) - -**General Tasks:** -- [ ] Bring exceptions to the #sig-release Slack channel and to Release Team meetings, and make sure SIG representatives for the exception(s) know to attend and discuss if necessary. -- [ ] Begin casual observation of issues, CI signal, test flakes, and critical PRs -- [ ] Release Team Retro is scheduled shortly after the "Release Halfway Point" and a host is selected -- [ ] Make sure everyone knows the Docs deadline (PRs ready for review) is coming the following week. (around week 6) - -**Release Cut Alpha 3:** -- [ ] Checked in with ci-signal and branch managers if 1.XX.0-alpha.3 is ok to be released and [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) tests are all green -- [ ] Checked in with Docs team on release notes progress after the tag for 1.XX.0-alpha.3 is generated - -**Release Cut Alpha 4:** -- [ ] Checked in with ci-signal and branch managers if 1.XX.0-alpha.4 is ok to be released and [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) tests are all green -- [ ] Checked in with Docs team on release notes progress after the tag for 1.XX.0-alpha.4 is generated - -### 4. Release Halfway Point up to Code Freeze (~Week 8 - 11) - -**General Tasks:** -- [ ] Send out a "Release Update / State of the Release", example: [1.26](https://groups.google.com/a/kubernetes.io/g/dev/c/_nToVaHVN1Q) -- [ ] Notify SIGs and about upcoming Code Freeze Deadline by sending an email to the [kubernetes-dev](https://groups.google.com/a/kubernetes.io/g/dev) list -- [ ] The first retrospective meeting is scheduled for the first week of Monday, Wednesday, and Friday burndown meetings, typically mid-week. Confirm the Emeritus Adviser can serve as facilitator. If Emeritus Adviser is unavailable then defer the responsibility as appropriate. -- [ ] Make sure everyone knows the Docs deadline (PRs ready for review) is coming the following week. -- [ ] Started release team meetings on Monday, Wednesday, and Friday -- [ ] Pinged role leads reminding them to start considering succession plans. If they are handing the role off to a successor, identifying them early gives more time for the committed volunteer to get targeted mentoring. - -**Removals, Deprecations, and Major Changes Blog:** -- [ ] Check in with release-comms if they are in contact with the release-enhancements team to collect "deprecations and removals" targeting the release -- [ ] Identified with release-comms & sig-docs if a "Removals, Deprecations, and Major Changes" blog is needed and if so, started drafting it up (ref [1.26 blog](https://kubernetes.io/blog/2022/11/18/upcoming-changes-in-kubernetes-1-26/)) -- [ ] A Release Team representative (ideally from release-comms) should attend the sig-docs meeting to raise awareness about the "Deprecations and Removals blog" for reviews. -- [ ] The Deprecations and Removals blog is scheduled for next week shortly after Code Freeze. A draft of the blog should be started as reviews and iterations will be needed before publication next week -- [ ] Insured that "Removals, Deprecations, and Major Changes"-authors are reviewing the blog before it's being publicized - -**Release Highlights & Release Blog:** -- [ ] Followed up with SIGs on the release highlights of the release -- [ ] Checked in with release-comms about the status of release highlights collection - -### 5. Around Docs Freeze (~Week 12) -Defer to the [Docs Freeze section in the release-team-lead handbook](#). - -#### Shortly before Docs Freeze -- [ ] Monitor the docs tab of the enhancements GitHub project to get an idea of how many PRs are still outstanding leading up to Docs Freeze. -- [ ] Make sure everyone knows Docs Freeze is coming the following week. (week 12) - -#### Week of Docs Freeze -- [ ] As needed, assist the Docs subteam lead with any last-minute escalations. - -#### After Docs Freeze -- [ ] Bring exceptions to the **#sig-release** Slack channel, start a thread for each, and ensure SIG representatives for the exception(s) discuss in the thread. - -### 6. Around Code Freeze (~Week 13) -Defer to the [code freeze section](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/release-team-lead#standards) in the release-team-lead handbook. - -#### Shortly before Code freeze -Code Freeze begins, and it’s now the home stretch of the release. SIGs will need to ensure all work moving forward is carefully curated with required merge labels. - -- [ ] Monitor the enhancements GitHub project to get an idea of how many PRs are still outstanding leading up to Code Freeze -- [ ] Monitor Testgrid and Prow to understand the stability of the release and PRs getting ready to merge. If Prow and Test grid are not in a good state consult folks from SIG Testing on delaying code freeze by a day if needed. - - If the release branch is not healthy, stable, and passing tests consistently, notify community through standard channels of need to rectify or code freeze will come early to force focus on stabilization. -- [ ] Reminded the Branch Manager that branch CI jobs will be needed next week -- [ ] Send out a reminder email to [kubernetes-dev](https://groups.google.com/a/kubernetes.io/g/dev) - -#### With Code Freeze -- As needed, assist the Release Signal Lead and Enhancements Lead removing PRs and enhancements from the milestone that aren't merged in time `/milestone clear` - -#### After Code Freeze -- [ ] Verified that the [`release-1.XX` branch](https://github.com/kubernetes/kubernetes/branches) has been automatically created at the start of Test Freeze -- [ ] Verified that the Branch Manager created the CI board on [Testgrid](https://testgrid.k8s.io/sig-release) for the release cycle (1.XX-blocking & 1.XX-informing) -- [ ] Published the "Removals, Deprecations, and Major Changes blog" - -### 7. Test Freeze up to Release Day (~Week 14) -- [ ] Verified together with the release-docs team that all KEPs with required documentation are ready for review -- [ ] Completed release theme (slogan, logo and explanation text) and add it to the [release cycle documentation in k/sig-release/releases/release-1.XX](https://github.com/kubernetes/sig-release/tree/master/releases) -- [ ] Decided with the Release team if burndown meetings are necessary or updates are done via Slack thread on Tuesdays and Thursdays -- [ ] Discussed Release Lead succession with the EA and sig-release leads -- [ ] Remind team lead to find successors for the upcoming cycle and discuss candidates with the EA -- [ ] The task is now to ensure the release branch is ready to go. This means there are zero pending PRs, no failing 1.XX-blocking tests, no open issues in the milestone. This will continue until release day. -- [ ] Final documentation PRs are reviewed and ready to be merged. Likely, this is not true and some are outstanding, so you need to help convince SIG doc writers to get these in with urgency. -- [ ] Planned something for Release Day. Make the day as fun as you can for the team. Plan ahead for this and do something nice -- [ ] Prepared [Release Team gifts](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/release-team-lead#release-theme-gifts) -- [ ] The Communications Lead contacts CNCF to gauge media interest, schedule the CNCF Kubernetes release workshop, and publish the release blog post. Stay in the loop for that. If there is media interest in the release, an interview between the journalist will be organized by the CNCF. -- [ ] Check in with the docs lead and verify tasks that should happen before the release day are completed (ref [release-docs handbook](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/docs/Release-Timeline.md#release-week-week-12)) -- [ ] The Release Team Retro part 2 and part 3 is scheduled shortly after the "Release Halfway Point" and a host / facilitator is available -- [ ] Remind the release team to add items to the retro meeting agenda - -### 8. Release Day (~Week 15) - -- Note that release day can and should be postponed if any of the conditions outlined in week 11 are not satisfied. -- Every issue in the milestone is considered release blocking -- If you have to push the release date back, try to avoid Friday since it makes release publicity extremely difficult. Also, people seem to have patience with delay as long as the reasons are clear and openly communicated. This is your duty. You must over-communicate and ensure the team is also talking to their stakeholders (CNCF, community, press, etc.) - -- The following final actions **must occur in order**, with successful completion of each being the entry criteria to the next. - - Release day morning: - - [ ] Go / No-Go: should generally be clear a day or three ahead of release, but the day's burndown provides a final opportunity for the team to affirm things are ready. - - [ ] Docs Lead PRs final draft release notes to sig-release, with Release Team Lead approving merge. - - [ ] Branch Manager does mock release build. - - [ ] Branch Manager does mock publication. Validates with Release Team lead and broader team the mock announcement email content. - - [ ] Branch Manager does nomock release build. - - Starting when ready: - - [ ] Communications Lead should have completed staging blog post, merging the blog with `draft:true` and creating a second PR that removes the draft with a `/hold` label. - - [ ] Branch Manager Lead does nomock publication. - - [ ] Branch Manager affirms build is complete. - - [ ] Verify with the docs lead that the staging release website is in correct shape by verifying the blog posts, the release page, download page, etc. - - [ ] Docs Lead publishes release docs to website (ref [tasks todo](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/docs/Release-Timeline.md#release-week-week-12)) - - [ ] Branch Manager does release-notify. - - [ ] Approximately 5pm Pacific: all work is complete and the release team - lead announces release to [k-dev](https://groups.google.com/a/kubernetes.io/g/dev), [SIG Leads](https://groups.google.com/a/kubernetes.io/g/leads), and discuss.k8s.io. -- [ ] After the release, it’s time to lift code freeze. The bot will need to be updated. - - [Thaw k/k](https://github.com/kubernetes/sig-release/blob/de9e0a9821c4f73b83b4382df7a7dc837f91e18f/releases/release_phases.md#thaw), - master branch is then opened for new pull requests. -- [ ] The Docs lead thaws k/website -- [ ] Use all of the appropriate communications channels to announce the lifting of Code Freeze and thawing of - k/website, this can part of the release announcement. - -### 9. After the Release Day (~Week 16, 17) -- [ ] Release Retrospective Part 2 completed -- [ ] Release Retrospective Part 3 completed or cancelled -- [ ] Contact the Release Managers Google Group to complete the Release Team Lead & Lead Shadows offboarding tasks from the previously-opened onboarding issue -- [ ] Help fill any open positions for the next release milestone -- [ ] Work with the incoming Release Team Lead to establish incoming Release Team. - -**Release Lead Offboarding tasks**: -- [ ] Remove from GitHub teams [(`kubernetes/org`)](https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml) - - `milestone-maintainers` - - `release-team` - - `release-team-leads` -- [ ] Remove from Google Groups/GCP IAM membership [(`kubernetes/k8s.io`)](https://git.k8s.io/k8s.io/groups/groups.yaml) - - `k8s-infra-release-viewers@` - - `release-managers@` -- [ ] Manually remove from the following Google Groups: - - [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) (Add as Manager) - - [kubernetes-sig-leads](https://groups.google.com/forum/#!forum/kubernetes-sig-leads) (Add as Member) -- [ ] Remove from `release-team-leads` Slack Group [(`kubernetes/community`)](https://git.k8s.io/community/communication/slack-config/sig-release/usergroups.yaml) - - Remove slack ID(s) from [`users.yaml`](https://git.k8s.io/community/communication/slack-config/users.yaml), if no longer in a group - - Remove username(s) from [`usergroups.yaml`](https://git.k8s.io/community/communication/slack-config/sig-release/usergroups.yaml) - -## Further comments - -`NONE` - -cc: @kubernetes/release-engineering @kubernetes/release-team +--- +name: Release Team Lead Cycle Progress +about: Used to track release lead work which needs to be done every release cycle +title: '[1.XX] Release Team Lead Cycle Progress' +labels: sig/release, area/release-eng, area/release-team +--- + + + +* Release Team Leads + * Release Lead: (at)USERNAME + * Release Lead Shadow: (at)USERNAME + * Release Lead Shadow: (at)USERNAME + * Release Lead Shadow: (at)USERNAME + * Release Lead Shadow: (at)USERNAME +* Release Cycle: `Kubernetes 1.XX` +* [Release Timeline](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.XX) + +Additional information can be found in the [release team lead handbook](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/release-team-lead). If tasks are not needed to be done or additional tasks are required, make sure to update the issue template! + +## Release Lead tasks + +### 1. Before the start of the Release Cycle (Week 0) + +- [ ] Captured feedback from previous release cycle retro and planned to incorporate it into the release cycle +- [ ] Release directory named `release-1.XX` added to [k/sig-release/releases](https://github.com/kubernetes/sig-release/tree/master/releases) +- [ ] Started planning the release schedule by opening a thread in `#sig-release` +- [ ] Release Lead Shadows are confirmed +- [ ] Team leads notified that all release team members read the [release team onboarding document](https://github.com/kubernetes/sig-release/blob/master/release-team/release-team-onboarding.md) +- [ ] Update slack channel descriptions for the `#sig-release` channel and all `#release-xxx` channels + +**Release Lead Onboarding:** +- [ ] Release Team Lead has agreed to abide by the guidelines set forth in the + [Security Release Process](https://git.k8s.io/security/security-release-process.md), specifically the embargo on CVE communications. + This must be done as an issue comment by the incoming Release Team Lead. +- [ ] Updated GitHub teams [(`kubernetes/org`)](https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml) + - `milestone-maintainers` + - `release-team` + - `release-team-leads` + - `sig-release` +- [ ] Updated `kubernetes/sig-release` `OWNERS` + - Release Team Lead and Shadows + - Add an `approvers` entry in `releases/release-1.XX/OWNERS` + - **Release Team Lead only** + - In `OWNERS_ALIASES`, add an entry in the following sections: + - `release-team` + - `release-team-lead-role` +- [ ] Updated Google Groups/GCP IAM membership [(`kubernetes/k8s.io`)](https://git.k8s.io/k8s.io/groups/groups.yaml) + - `k8s-infra-release-viewers@` + - `release-managers@` + - `release-team@` +- [ ] Release Team calendar access granted (reach out to sig-release chairs) +- [ ] Zoom credentials (host key) granted (reach out to sig-release chairs) +- [ ] Added incoming release team leads to `release-team-leads` Slack Group [(`kubernetes/community`)](https://git.k8s.io/community/communication/slack-config/sig-release/usergroups.yaml) + - Add slack ID(s) to [`users.yaml`](https://git.k8s.io/community/communication/slack-config/users.yaml), if they are not yet in the file + - Add username(s) to [`usergroups.yaml`](https://git.k8s.io/community/communication/slack-config/sig-release/usergroups.yaml) +- [ ] Ensured the Release Team subproject owners are the owners of the [kubernetes-release-team-shadows](https://groups.google.com/a/kubernetes.io/g/release-team-shadows) Google Group. +- [ ] Ensured top-level `OWNERS_ALIASES` only includes Release Team personnel from four (4) releases, including the current one. + +**Create Release Team Documents:** +- [ ] Meeting Notes document created + - Access: public comment access, edit access [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) + - Bit.ly: `bit.ly/k8s1XX-releasemtg` + - Example: [1.26](https://bit.ly/k8s126-releasemtg) +- [ ] Retro document created + - Access: public comment access, edit rights shared with [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) + - Bit.ly: `bit.ly/k8s1XX-retro` + - Example: [1.26](https://bit.ly/k8s126-retro) +- [ ] Release Team contact sheet created + - Access: **restricted access** edit rights shared with [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) + - Bit.ly: `bit.ly/k8s1XX-contacts` +- [ ] Lead rotation sheet created + - Access: : **restricted access**, edit rights shared with release team lead shadows individually + +**One week before the start of the release cycle:** +- [ ] "Release Sneak Peak" email to introduce yourself, lead shadows, role leads, and branch manager has been send out + - Send the email to [k-dev](https://groups.google.com/a/kubernetes.io/g/dev), [SIG Leads](https://groups.google.com/a/kubernetes.io/g/leads), [SIG Release](https://groups.google.com/forum/#!forum/kubernetes-sig-release), [Release Team](https://groups.google.com/a/kubernetes.io/g/release-team) + - Example: [1.26 sneak peek](https://groups.google.com/a/kubernetes.io/g/dev/c/PVe1OG8yjHw/m/zZjnttXWAQAJ) + +### 2. First weeks of the release cycle up to Enhancements Freeze (1-3 Weeks) + +**First Week of the release cycle:** +- [ ] Checked in with team leads and verified that the release team is complete +- [ ] Reminded release team members to subscribe to the [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) and [kubernetes-sig-release](https://groups.google.com/forum/#!forum/kubernetes-sig-release) google groups and to the [kubernetes-release calendar](https://bit.ly/k8s-release-cal). +- [ ] Notified team leads to update the contact sheet with shadow information `bit.ly/k8s1XX-contacts` +- [ ] Release schedule finalized +- [ ] Begin paying attention to CI signal, as it may begin degrading soon after the prior release is cut and any slips must be caught and rectified promptly. +- [ ] Meet your Shadows and create a communication channel with them. Establish expectations and share out work - delegate! +- [ ] Pair your Shadows to support two subteams for the duration of the release. +- [ ] Request review of this document by the Release Team Lead shadow(s). The shadow(s) should also take all actions in this document around joining groups and requesting access permissions. +- [ ] Update the SIG Release groups in the `k/k8s.io/groups/sig-release/groups.yaml` with the following: + - [ ] Add Lead and Lead shadows to members of `k8s-infra-release-viewers` + - [ ] Add EA, Lead, Lead shadows, comms lead, comms shadows to members of `release-comms` + - [ ] Add EA, Lead and Lead shadows to members of `release-managers` + - [ ] Add EA, Lead and Lead shadows to managers of `release-team` + - [ ] Add Role Leads and Role shadows to members of `release-team` + - [ ] Add Role shadows and Lead shadows to members of `release-team-shadows` + - [ ] Add EA to manager of release-team-shadows, if EA is owner of `release-team-shadows` already then add Lead to manager of `release-team-shadows` +- [ ] Ensured that there is a branch manager available for cutting 1.XX.0-alpha.1 + +- Assist the Enhancements Lead in collecting planned work from SIGs +- [ ] Discussed and scheduled a weekly Release Team meetings on a day that is most acceptable to the team. Invite the `kubernetes-sig-release` group. +- [ ] Update the release calendar with the initial release meeting times and dates set to UTC. +- [ ] Poll Release Team membership and schedule a weekly alternate meeting to better enable more attendance outside of the Americas. +- [ ] Major release cycle events have been added to the Kubernetes Release Calendar with one week in advance reminders set. (defer to the [handbook for more information](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/release-team-lead#working-with-the-release-team-calendar)) +- [ ] Checked in with ci-signal and branch managers if 1.XX.0-alpha.2 is ok to be released and [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) tests are all green + +**A week before Enhancements Freeze:** +- [ ] Remind the community about Enhancements Freeze reminder send out. Example email: [1.26](https://groups.google.com/a/kubernetes.io/g/dev/c/pJZC2cnkeJ8); It may also be useful to send a short version to the `#sig-release` and `#chairs-and-techleads` Slack channels referencing to the k-dev email. + +### 3. Enhancements freeze up to Release Halfway Point (~Week 5 - 7) + +**General Tasks:** +- [ ] Bring exceptions to the #sig-release Slack channel and to Release Team meetings, and make sure SIG representatives for the exception(s) know to attend and discuss if necessary. +- [ ] Begin casual observation of issues, CI signal, test flakes, and critical PRs +- [ ] Release Team Retro is scheduled shortly after the "Release Halfway Point" and a host is selected +- [ ] Make sure everyone knows the Docs deadline (PRs ready for review) is coming the following week. (around week 6) + +**Release Cut Alpha 3:** +- [ ] Checked in with ci-signal and branch managers if 1.XX.0-alpha.3 is ok to be released and [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) tests are all green +- [ ] Checked in with Docs team on release notes progress after the tag for 1.XX.0-alpha.3 is generated + +**Release Cut Alpha 4:** +- [ ] Checked in with ci-signal and branch managers if 1.XX.0-alpha.4 is ok to be released and [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) tests are all green +- [ ] Checked in with Docs team on release notes progress after the tag for 1.XX.0-alpha.4 is generated + +### 4. Release Halfway Point up to Code Freeze (~Week 8 - 11) + +**General Tasks:** +- [ ] Send out a "Release Update / State of the Release", example: [1.26](https://groups.google.com/a/kubernetes.io/g/dev/c/_nToVaHVN1Q) +- [ ] Notify SIGs and about upcoming Code Freeze Deadline by sending an email to the [kubernetes-dev](https://groups.google.com/a/kubernetes.io/g/dev) list +- [ ] The first retrospective meeting is scheduled for the first week of Monday, Wednesday, and Friday burndown meetings, typically mid-week. Confirm the Emeritus Adviser can serve as facilitator. If Emeritus Adviser is unavailable then defer the responsibility as appropriate. +- [ ] Make sure everyone knows the Docs deadline (PRs ready for review) is coming the following week. +- [ ] Started release team meetings on Monday, Wednesday, and Friday +- [ ] Pinged role leads reminding them to start considering succession plans. If they are handing the role off to a successor, identifying them early gives more time for the committed volunteer to get targeted mentoring. + +**Removals, Deprecations, and Major Changes Blog:** +- [ ] Check in with release-comms if they are in contact with the release-enhancements team to collect "deprecations and removals" targeting the release +- [ ] Identified with release-comms & sig-docs if a "Removals, Deprecations, and Major Changes" blog is needed and if so, started drafting it up (ref [1.26 blog](https://kubernetes.io/blog/2022/11/18/upcoming-changes-in-kubernetes-1-26/)) +- [ ] A Release Team representative (ideally from release-comms) should attend the sig-docs meeting to raise awareness about the "Deprecations and Removals blog" for reviews. +- [ ] The Deprecations and Removals blog is scheduled for next week shortly after Code Freeze. A draft of the blog should be started as reviews and iterations will be needed before publication next week +- [ ] Insured that "Removals, Deprecations, and Major Changes"-authors are reviewing the blog before it's being publicized + +**Release Highlights & Release Blog:** +- [ ] Followed up with SIGs on the release highlights of the release +- [ ] Checked in with release-comms about the status of release highlights collection + +### 5. Around Docs Freeze (~Week 12) +Defer to the [Docs Freeze section in the release-team-lead handbook](#). + +#### Shortly before Docs Freeze +- [ ] Monitor the docs tab of the enhancements GitHub project to get an idea of how many PRs are still outstanding leading up to Docs Freeze. +- [ ] Make sure everyone knows Docs Freeze is coming the following week. (week 12) + +#### Week of Docs Freeze +- [ ] As needed, assist the Docs subteam lead with any last-minute escalations. + +#### After Docs Freeze +- [ ] Bring exceptions to the **#sig-release** Slack channel, start a thread for each, and ensure SIG representatives for the exception(s) discuss in the thread. + +### 6. Around Code Freeze (~Week 13) +Defer to the [code freeze section](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/release-team-lead#standards) in the release-team-lead handbook. + +#### Shortly before Code freeze +Code Freeze begins, and it’s now the home stretch of the release. SIGs will need to ensure all work moving forward is carefully curated with required merge labels. + +- [ ] Monitor the enhancements GitHub project to get an idea of how many PRs are still outstanding leading up to Code Freeze +- [ ] Monitor Testgrid and Prow to understand the stability of the release and PRs getting ready to merge. If Prow and Test grid are not in a good state consult folks from SIG Testing on delaying code freeze by a day if needed. + - If the release branch is not healthy, stable, and passing tests consistently, notify community through standard channels of need to rectify or code freeze will come early to force focus on stabilization. +- [ ] Reminded the Branch Manager that branch CI jobs will be needed next week +- [ ] Send out a reminder email to [kubernetes-dev](https://groups.google.com/a/kubernetes.io/g/dev) + +#### With Code Freeze +- As needed, assist the Release Signal Lead and Enhancements Lead removing PRs and enhancements from the milestone that aren't merged in time `/milestone clear` + +#### After Code Freeze +- [ ] Verified that the [`release-1.XX` branch](https://github.com/kubernetes/kubernetes/branches) has been automatically created at the start of Test Freeze +- [ ] Verified that the Branch Manager created the CI board on [Testgrid](https://testgrid.k8s.io/sig-release) for the release cycle (1.XX-blocking & 1.XX-informing) +- [ ] Published the "Removals, Deprecations, and Major Changes blog" + +### 7. Test Freeze up to Release Day (~Week 14) +- [ ] Verified together with the release-docs team that all KEPs with required documentation are ready for review +- [ ] Completed release theme (slogan, logo and explanation text) and add it to the [release cycle documentation in k/sig-release/releases/release-1.XX](https://github.com/kubernetes/sig-release/tree/master/releases) +- [ ] Decided with the Release team if burndown meetings are necessary or updates are done via Slack thread on Tuesdays and Thursdays +- [ ] Discussed Release Lead succession with the EA and sig-release leads +- [ ] Remind team lead to find successors for the upcoming cycle and discuss candidates with the EA +- [ ] The task is now to ensure the release branch is ready to go. This means there are zero pending PRs, no failing 1.XX-blocking tests, no open issues in the milestone. This will continue until release day. +- [ ] Final documentation PRs are reviewed and ready to be merged. Likely, this is not true and some are outstanding, so you need to help convince SIG doc writers to get these in with urgency. +- [ ] Planned something for Release Day. Make the day as fun as you can for the team. Plan ahead for this and do something nice +- [ ] Prepared [Release Team gifts](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/release-team-lead#release-theme-gifts) +- [ ] The Communications Lead contacts CNCF to gauge media interest, schedule the CNCF Kubernetes release workshop, and publish the release blog post. Stay in the loop for that. If there is media interest in the release, an interview between the journalist will be organized by the CNCF. +- [ ] Check in with the docs lead and verify tasks that should happen before the release day are completed (ref [release-docs handbook](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/docs/Release-Timeline.md#release-week-week-12)) +- [ ] The Release Team Retro part 2 and part 3 is scheduled shortly after the "Release Halfway Point" and a host / facilitator is available +- [ ] Remind the release team to add items to the retro meeting agenda + +### 8. Release Day (~Week 15) + +- Note that release day can and should be postponed if any of the conditions outlined in week 11 are not satisfied. +- Every issue in the milestone is considered release blocking +- If you have to push the release date back, try to avoid Friday since it makes release publicity extremely difficult. Also, people seem to have patience with delay as long as the reasons are clear and openly communicated. This is your duty. You must over-communicate and ensure the team is also talking to their stakeholders (CNCF, community, press, etc.) + +- The following final actions **must occur in order**, with successful completion of each being the entry criteria to the next. + - Release day morning: + - [ ] Go / No-Go: should generally be clear a day or three ahead of release, but the day's burndown provides a final opportunity for the team to affirm things are ready. + - [ ] Docs Lead PRs final draft release notes to sig-release, with Release Team Lead approving merge. + - [ ] Branch Manager does mock release build. + - [ ] Branch Manager does mock publication. Validates with Release Team lead and broader team the mock announcement email content. + - [ ] Branch Manager does nomock release build. + - Starting when ready: + - [ ] Communications Lead should have completed staging blog post, merging the blog with `draft:true` and creating a second PR that removes the draft with a `/hold` label. + - [ ] Branch Manager Lead does nomock publication. + - [ ] Branch Manager affirms build is complete. + - [ ] Verify with the docs lead that the staging release website is in correct shape by verifying the blog posts, the release page, download page, etc. + - [ ] Docs Lead publishes release docs to website (ref [tasks todo](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/docs/Release-Timeline.md#release-week-week-12)) + - [ ] Branch Manager does release-notify. + - [ ] Approximately 5pm Pacific: all work is complete and the release team + lead announces release to [k-dev](https://groups.google.com/a/kubernetes.io/g/dev), [SIG Leads](https://groups.google.com/a/kubernetes.io/g/leads), and discuss.k8s.io. +- [ ] After the release, it’s time to lift code freeze. The bot will need to be updated. + - [Thaw k/k](https://github.com/kubernetes/sig-release/blob/de9e0a9821c4f73b83b4382df7a7dc837f91e18f/releases/release_phases.md#thaw), + master branch is then opened for new pull requests. +- [ ] The Docs lead thaws k/website +- [ ] Use all of the appropriate communications channels to announce the lifting of Code Freeze and thawing of + k/website, this can part of the release announcement. + +### 9. After the Release Day (~Week 16, 17) +- [ ] Release Retrospective Part 2 completed +- [ ] Release Retrospective Part 3 completed or cancelled +- [ ] Contact the Release Managers Google Group to complete the Release Team Lead & Lead Shadows offboarding tasks from the previously-opened onboarding issue +- [ ] Help fill any open positions for the next release milestone +- [ ] Work with the incoming Release Team Lead to establish incoming Release Team. + +**Release Lead Offboarding tasks**: +- [ ] Remove from GitHub teams [(`kubernetes/org`)](https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml) + - `milestone-maintainers` + - `release-team` + - `release-team-leads` +- [ ] Remove from Google Groups/GCP IAM membership [(`kubernetes/k8s.io`)](https://git.k8s.io/k8s.io/groups/groups.yaml) + - `k8s-infra-release-viewers@` + - `release-managers@` +- [ ] Manually remove from the following Google Groups: + - [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) (Add as Manager) + - [kubernetes-sig-leads](https://groups.google.com/forum/#!forum/kubernetes-sig-leads) (Add as Member) +- [ ] Remove from `release-team-leads` Slack Group [(`kubernetes/community`)](https://git.k8s.io/community/communication/slack-config/sig-release/usergroups.yaml) + - Remove slack ID(s) from [`users.yaml`](https://git.k8s.io/community/communication/slack-config/users.yaml), if no longer in a group + - Remove username(s) from [`usergroups.yaml`](https://git.k8s.io/community/communication/slack-config/sig-release/usergroups.yaml) + +## Further comments + +`NONE` + +cc: @kubernetes/release-engineering @kubernetes/release-team diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 961440a7f13..bdf3b627c73 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,33 +1,33 @@ - - -#### What type of PR is this: - - - -#### What this PR does / why we need it: - -#### Which issue(s) this PR fixes: - - - -#### Special notes for your reviewer: + + +#### What type of PR is this: + + + +#### What this PR does / why we need it: + +#### Which issue(s) this PR fixes: + + + +#### Special notes for your reviewer: diff --git a/.github/SECURITY.md b/.github/SECURITY.md index 3bafc83a139..8880a476454 100644 --- a/.github/SECURITY.md +++ b/.github/SECURITY.md @@ -1,14 +1,14 @@ -# Security Policy - -## Supported Versions - -Information about supported Kubernetes versions can be found on the -[Kubernetes version and version skew support policy] page on the Kubernetes website. - -## Reporting a Vulnerability - -Instructions for reporting a vulnerability can be found on the -[Kubernetes Security and Disclosure Information] page. - -[Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions -[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability +# Security Policy + +## Supported Versions + +Information about supported Kubernetes versions can be found on the +[Kubernetes version and version skew support policy] page on the Kubernetes website. + +## Reporting a Vulnerability + +Instructions for reporting a vulnerability can be found on the +[Kubernetes Security and Disclosure Information] page. + +[Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions +[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability diff --git a/.github/workflows/krel-release-notes-validate.yaml b/.github/workflows/krel-release-notes-validate.yaml index 28adfcee2a2..44fef7f11ba 100644 --- a/.github/workflows/krel-release-notes-validate.yaml +++ b/.github/workflows/krel-release-notes-validate.yaml @@ -1,126 +1,126 @@ -# Copyright 2025 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -name: Yaml Lint Release Notes -on: - pull_request: - paths: - - releases/**/release-notes/**.yaml - - releases/**/release-notes/**.yml - # Allow manual triggering - workflow_dispatch: { } - -permissions: { } - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -jobs: - krel_release_notes_validate_action: - name: Validate release notes with krel - runs-on: ubuntu-latest - if: ${{ !github.event.pull_request.draft }} - steps: - - name: Check out code - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - with: - fetch-depth: 0 - - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0 - with: - go-version: '1.23' - check-latest: true - - uses: sigstore/cosign-installer@dc72c7d5c4d10cd6bcb8cf6e3fd625a9e5e537da # v3.7.0 - with: - use-sudo: false - - id: install-krel - shell: bash - run: | - #!/bin/bash - set -euo pipefail - - # Get the latest release version from GitHub API - KREL_VERSION=$(curl -s https://api.github.com/repos/kubernetes/release/releases/latest | grep '"tag_name":' | cut -d'"' -f4) - ARTIFACT_NAME=krel-amd64-linux - TEMP_DIR=$(mktemp -d) - cd "$TEMP_DIR" - - echo "Downloading latest krel version $KREL_VERSION..." - if ! curl -sL "https://github.com/kubernetes/release/releases/download/$KREL_VERSION/$ARTIFACT_NAME" -o krel; then - echo "Failed to download krel" - exit 1 - fi - - KREL_CERT="https://github.com/kubernetes/release/releases/download/$KREL_VERSION/$ARTIFACT_NAME.pem" - KREL_SIG="https://github.com/kubernetes/release/releases/download/$KREL_VERSION/$ARTIFACT_NAME.sig" - - echo "Using cosign to verify signature of krel version $KREL_VERSION" - if ! cosign verify-blob --certificate "$KREL_CERT" --signature "$KREL_SIG" \ - --certificate-identity "https://github.com/kubernetes/release/.github/workflows/release.yml@refs/tags/$KREL_VERSION" \ - --certificate-oidc-issuer "https://token.actions.githubusercontent.com" krel; then - echo "Signature verification failed for krel version: '$KREL_VERSION'" - exit 1 - fi - - chmod +x krel - mkdir -p "$HOME/.local/bin" - mv krel "$HOME/.local/bin/" - cd - > /dev/null - rm -rf "$TEMP_DIR" - - KREL_PATH="$HOME/.local/bin/krel" - echo "krel-path=$KREL_PATH" >> "$GITHUB_OUTPUT" - echo "Krel installed at: $KREL_PATH" - - name: Run if releases YAML changes exist and validate the YAML - id: validate_releases_yaml - env: - KREL_PATH: ${{ steps.install-krel.outputs.krel-path }} - run: | - # Get a list of changed YAML files based on git diff - CHANGED_FILES=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} -- releases/ | grep -E '\.ya?ml$' || true) - - if [ -n "$CHANGED_FILES" ]; then - echo "### YAML Validation Results :mag:" >> $GITHUB_STEP_SUMMARY - echo "Validating files against base SHA: ${{ github.event.pull_request.base.sha }}" >> $GITHUB_STEP_SUMMARY - - INVALID_FILES="" - - while IFS= read -r file; do - echo "#### Validating: ${file##*/}" >> $GITHUB_STEP_SUMMARY - set +e - VALIDATION_OUTPUT=$("${KREL_PATH}" release-notes validate --path-to-release-notes "$file" 2>&1) - exit_code=$? - set -e - - if [ $exit_code -ne 0 ]; then - INVALID_FILES="${INVALID_FILES}- ${file##*/}\n" - echo "❌ Validation failed with the following errors:" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - echo "$VALIDATION_OUTPUT" >> $GITHUB_STEP_SUMMARY - echo "\`\`\`" >> $GITHUB_STEP_SUMMARY - else - echo "✅ File is valid" >> $GITHUB_STEP_SUMMARY - fi - done <<< "$CHANGED_FILES" - - if [ -n "$INVALID_FILES" ]; then - echo -e "\n### ❌ Validation Failed" >> $GITHUB_STEP_SUMMARY - echo "The following files contain invalid YAML:" >> $GITHUB_STEP_SUMMARY - echo -e "$INVALID_FILES" >> $GITHUB_STEP_SUMMARY - exit 1 - fi - else - echo "### No YAML Changes Detected" >> $GITHUB_STEP_SUMMARY - echo "No YAML files were changed under /releases/*" >> $GITHUB_STEP_SUMMARY - fi +# Copyright 2025 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Yaml Lint Release Notes +on: + pull_request: + paths: + - releases/**/release-notes/**.yaml + - releases/**/release-notes/**.yml + # Allow manual triggering + workflow_dispatch: { } + +permissions: { } + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + krel_release_notes_validate_action: + name: Validate release notes with krel + runs-on: ubuntu-latest + if: ${{ !github.event.pull_request.draft }} + steps: + - name: Check out code + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + with: + fetch-depth: 0 + - uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0 + with: + go-version: '1.23' + check-latest: true + - uses: sigstore/cosign-installer@dc72c7d5c4d10cd6bcb8cf6e3fd625a9e5e537da # v3.7.0 + with: + use-sudo: false + - id: install-krel + shell: bash + run: | + #!/bin/bash + set -euo pipefail + + # Get the latest release version from GitHub API + KREL_VERSION=$(curl -s https://api.github.com/repos/kubernetes/release/releases/latest | grep '"tag_name":' | cut -d'"' -f4) + ARTIFACT_NAME=krel-amd64-linux + TEMP_DIR=$(mktemp -d) + cd "$TEMP_DIR" + + echo "Downloading latest krel version $KREL_VERSION..." + if ! curl -sL "https://github.com/kubernetes/release/releases/download/$KREL_VERSION/$ARTIFACT_NAME" -o krel; then + echo "Failed to download krel" + exit 1 + fi + + KREL_CERT="https://github.com/kubernetes/release/releases/download/$KREL_VERSION/$ARTIFACT_NAME.pem" + KREL_SIG="https://github.com/kubernetes/release/releases/download/$KREL_VERSION/$ARTIFACT_NAME.sig" + + echo "Using cosign to verify signature of krel version $KREL_VERSION" + if ! cosign verify-blob --certificate "$KREL_CERT" --signature "$KREL_SIG" \ + --certificate-identity "https://github.com/kubernetes/release/.github/workflows/release.yml@refs/tags/$KREL_VERSION" \ + --certificate-oidc-issuer "https://token.actions.githubusercontent.com" krel; then + echo "Signature verification failed for krel version: '$KREL_VERSION'" + exit 1 + fi + + chmod +x krel + mkdir -p "$HOME/.local/bin" + mv krel "$HOME/.local/bin/" + cd - > /dev/null + rm -rf "$TEMP_DIR" + + KREL_PATH="$HOME/.local/bin/krel" + echo "krel-path=$KREL_PATH" >> "$GITHUB_OUTPUT" + echo "Krel installed at: $KREL_PATH" + - name: Run if releases YAML changes exist and validate the YAML + id: validate_releases_yaml + env: + KREL_PATH: ${{ steps.install-krel.outputs.krel-path }} + run: | + # Get a list of changed YAML files based on git diff + CHANGED_FILES=$(git diff --name-only ${{ github.event.pull_request.base.sha }} ${{ github.sha }} -- releases/ | grep -E '\.ya?ml$' || true) + + if [ -n "$CHANGED_FILES" ]; then + echo "### YAML Validation Results :mag:" >> $GITHUB_STEP_SUMMARY + echo "Validating files against base SHA: ${{ github.event.pull_request.base.sha }}" >> $GITHUB_STEP_SUMMARY + + INVALID_FILES="" + + while IFS= read -r file; do + echo "#### Validating: ${file##*/}" >> $GITHUB_STEP_SUMMARY + set +e + VALIDATION_OUTPUT=$("${KREL_PATH}" release-notes validate --path-to-release-notes "$file" 2>&1) + exit_code=$? + set -e + + if [ $exit_code -ne 0 ]; then + INVALID_FILES="${INVALID_FILES}- ${file##*/}\n" + echo "❌ Validation failed with the following errors:" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + echo "$VALIDATION_OUTPUT" >> $GITHUB_STEP_SUMMARY + echo "\`\`\`" >> $GITHUB_STEP_SUMMARY + else + echo "✅ File is valid" >> $GITHUB_STEP_SUMMARY + fi + done <<< "$CHANGED_FILES" + + if [ -n "$INVALID_FILES" ]; then + echo -e "\n### ❌ Validation Failed" >> $GITHUB_STEP_SUMMARY + echo "The following files contain invalid YAML:" >> $GITHUB_STEP_SUMMARY + echo -e "$INVALID_FILES" >> $GITHUB_STEP_SUMMARY + exit 1 + fi + else + echo "### No YAML Changes Detected" >> $GITHUB_STEP_SUMMARY + echo "No YAML files were changed under /releases/*" >> $GITHUB_STEP_SUMMARY + fi diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0f6d2ec6b85..f66582408f0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,608 +1,608 @@ -# Contributing Guidelines - -Welcome to Kubernetes. We are excited about the prospect of you joining our [community](https://git.k8s.io/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt: - -_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._ - -- [Getting Started](#getting-started) -- [Mentorship](#mentorship) -- [Contact Information](#contact-information) -- [Contributing Code](#contributing-code) -- [Coding Style](#coding-style) - - [Explain 'nolint' Directives](#explain-nolint-directives) - - [Use Descriptive Variable Names Sparingly](#use-descriptive-variable-names-sparingly) - - [Don't Wrap Function Signatures](#dont-wrap-function-signatures) - - [Return Early](#return-early) - - [Wrap Errors](#wrap-errors) - - [Scope Errors](#scope-errors) - - [Prefer Table Driven Tests](#prefer-table-driven-tests) -- [Establishing a Development Environment](#establishing-a-development-environment) -- [Attribution](#attribution) - -## Getting Started - -We have full documentation on how to get started contributing here: - - - -- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests -- [Kubernetes Contributor Guide](https://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](https://git.k8s.io/community/contributors/guide#contributing) -- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet) - Common resources for existing developers - -## Mentorship - -- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers! - -## Contact Information - - - -- [Slack channel](https://kubernetes.slack.com/messages/sig-release) -- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-release) - -## Contributing Code - -To contribute bug fixes or features to SIG Release repositories: - -1. Communicate your intent. -1. Make your changes. -1. Test your changes. -1. Update documentation and examples where appropriate. -1. Open a Pull Request (PR). - -Communicating your intent lets SIG Release members know that you intend -to contribute, and how. This sets you up for success - you can avoid duplicating -an effort that may already be underway, adding a feature that may be rejected, -or heading down a path that you would be steered away from at review time. The -best way to communicate your intent is via a detailed GitHub issue. Take a look -first to see if there's already an issue relating to the thing you'd like to -contribute. If there isn't, please raise a new one! Let us know what you'd like -to work on, and why. SIG Release members can't always triage new issues -immediately, but we encourage you to bring them to our attention via one of our -[communication channels][contact]. - -> NOTE: Unlike the core [Kubernetes release cycle][kubernetes-release-cycle], -> [SIG Release repositories][sig-release-subprojects] are versioned/released on -> ad hoc (as needed basis), which means that the changes you've made will -> not necessarily be immediately available for consumption in tagged artifacts. -> -> We may release components for the following, non-exhaustive reasons: -> -> - unblocking a core Kubernetes release cycle -> - unblocking Kubernetes projects that leverage our libraries -> - mitigating a security vulnerability -> - critical bug fixes or regressions -> - a feature is incomplete or does not work as intended -> -> If you need a new component release to unblock your project, please contact us to request one. - - - -Be sure to practice [good git commit hygiene] as you make your changes. All but -the smallest changes should be broken up into a few commits that tell a story. -Use your git commits to provide context for the folks who will review PR, and -the folks who will be spelunking the codebase in the months and years to come. -Ensure each of your commits is signed-off by using `git commit -s`. SIG Release -members highly values readable, idiomatic Go code. Familiarize yourself with -the [Coding Style](#coding-style) section below and try to preempt any comments -your reviewers would otherwise leave. Most repos will contain `Makefile`s or -[`mage`][mage] targets that will help you build/test/lint/verify your changes. -If you don't see a target for your use case, maybe that could be your first -contribution! - - - -All code should be covered by tests. We strive, wherever possible, to follow -the common Go [test review comments]. We encourage the use of table-driven -unit tests - you can find an example [below](#prefer-table-driven-tests). Note -that when opening a PR your reviewer will expect you to detail how you've -tested your work. For all but the smallest changes, some manual testing is -encouraged in addition to unit tests. - -All documentation is under revision control. Any change that introduces new -behavior or changes existing behavior must include updates to any relevant -documentation. Please keep documentation changes in distinct commits. - -Once your change is written, tested, and documented the final step is to have it -reviewed! You'll be presented with a template and a small checklist when you -open a PR. Please read the template and fill out the checklist. Please make all -requested changes in subsequent commits. This allows your reviewers to see what -has changed as you address their comments. Be mindful of your commit history as -you do this - avoid commit messages like "Address review feedback" if possible. -If doing so is difficult a good alternative is to rewrite your commit history -to clean them up after your PR is approved but before it is merged. - -In summary, please: - -- Discuss your change in a GitHub issue before you start. -- Use your Git commit messages to communicate your intent to your reviewers. -- Sign-off on all git commits by running `git commit -s` -- Add or update tests for all changes. -- Preempt [coding style](#coding-style) review comments. -- Update all relevant documentation. -- Don't force push to address review feedback. Your commits should tell a story. -- If necessary, tidy up your git commit history once your PR is approved. - -Thank you for reading through our contributing guide! We appreciate you taking -the time to ensure your contributions are high quality and easy for our -community to review and accept. Please don't hesitate to [reach out to -us][contact] if you have any questions about contributing! - -## Coding Style - -SIG Release prefers not to maintain its own style guide, but we do -enforce the style and best practices established by the Go project and its -community. This means contributors should: - -- Follow the guidelines set out by the [Effective Go] document. -- Preempt common Go [code review comments] and [test review comments]. - -These coding style guidelines apply to all SIG Release repositories unless -stated otherwise. - -Below we cover some of the feedback we most frequently leave on pull requests. -Most of these are covered by the documents above, but may be subtle or easily -missed and thus warrant closer attention. - -### Explain 'nolint' Directives - -We use [golangci-lint] on all our Golang-based repositories to enforce many -style and safety rules that are not covered here. We prefer to tolerate false -positives from our linter configuration in order to make sure we catch as many -issues as possible. -This means it's sometimes necessary to override the linter to make a build pass. - -You can override the linter using a `//nolint` comment directive. When you do so -you must: - -1. Be specific. Apply `//nolint:nameoflinter` at as tight a scope as possible. -1. Include a comment explaining why you're disabling the linter. - -For example: - -```go -func hash(s string) string { - h := fnv.New32() - _ = h.Write([]byte(s)) //nolint:errcheck // Writing to a hash never returns an error. - return fmt.Sprintf("%x", h.Sum32()) -} -``` - -Here we only disable the specific linter that would emit a warning (`errcheck`), -for the specific line where that warning would be emitted. - -### Use Descriptive Variable Names Sparingly - -Quoting the Go [code review comments]: - -> Variable names in Go should be short rather than long. This is especially true -> for local variables with limited scope. Prefer `c` to `lineCount`. Prefer `i` -> to `sliceIndex`. -> -> The basic rule: the further from its declaration that a name is used, the more -> descriptive the name must be. For a method receiver, one or two letters is -> sufficient. Common variables such as loop indices and readers can be a single -> letter (`i`, `r`). More unusual things and global variables need more -> descriptive names. - -Another way to frame the above is that we prefer to use short variables in all -cases where a (human) reader could easily infer what the variable was from its -source. For example: - -```go -// NumberOfGeese might be used outside this package, or many many lines further -// down the file so it needs a descriptive name. It's also just an int, which -// doesn't give the reader much clue about what it's for. -const NumberOfGeese = 42 - -// w is plenty for the first argument here. Naming it gooseWrangler is redundant -// because readers can tell what it is from its type. looseGeese on the other -// hand warrants a descriptive name. It's short lived (lines wise), and its type -// doesn't give us any context about what it's for. -func capture(w goose.Wrangler, looseGeese int) error { - // Important goose capturing logic. - for looseGeese > 0 { - // It's not obvious from the w.Wrangle method name what the - // return value is, so a descriptive name names sense here too. - captured, err := w.Wrangle() - if err != nil { - return errors.Wrap(err, "defeated by geese") - } - looseGeese = looseGeese - captured - } - - // We prefer 'y' to 'yard' here because 'yard' is implied by 'NewYard'. - y := goose.NewYard(w) - return y.Secure() -} -``` - -### Don't Wrap Function Signatures - -Quoting again from the Go [code review comments]: - -> Most of the time when people wrap lines "unnaturally" (in the middle of -> function calls or function declarations, more or less, say, though some -> exceptions are around), the wrapping would be unnecessary if they had a -> reasonable number of parameters and reasonably short variable names. Long -> lines seem to go with long names, and getting rid of the long names helps a -> lot. - -```go -func capture(gooseWrangler goose.Wrangler, looseGeese int, gooseYard goose.Yard, - duckWrangler duck.Wrangler, looseDucks, duckYard duck.Yard) error { - // Important fowl wrangling logic. -} -``` - -If you find the need to wrap a function signature like the above it's almost -always a sign that your argument names are superfluously verbose, or that your -function is doing too much. If your function needs to take many optional -arguments, perhaps to enable dependency injection, use variadic functions as -options. In this case we usually make an exception for wrapped function calls. -For example: - -```go -type Wrangler struct { - fw fowl.Wrangler - loose int -} - -type Option func(w *Wrangler) - -func WithFowlWrangler(fw fowl.Wrangler) Option { - return func(w *Wrangler) { - w.fw = fw - } -} - -func NewWrangler(looseGeese int, o ...Option) *Wrangler { - w := &Wrangler{ - fw: fowl.DefaultWrangler{} - loose: - } - - for _, fn := range o { - fn(w) - } - - return w -} - -func example() { - w := NewWrangler(42, - WithFowlWrangler(chicken.NewWrangler()), - WithSomeOtherOption(), - WithYetAnotherOption()) - - w.Wrangle() -} -``` - -You can read more about this pattern on [Dave Cheney's blog]. - -### Return Early - -We prefer to return early. Another way to think about this is that we prefer to -handle terminal cases (e.g., errors) early. So for example instead of: - -```go -func example() error { - v := fetch() - if v == 42 { - // Really important business logic. - b := embiggen(v) - for k, v := range lookup(b) { - if v == true { - store(k) - } else { - remove(k) - } - } - return nil - } - return errors.New("v was a bad number") -} -``` - -We prefer: - -```go -func example() error { - v := fetch() - if v != 42 { - return errors.New("v was a bad number") - } - // Really important business logic. - b := embiggen(v) - for k, v := range lookup(b) { - // "Continue early" is a variant of "return early". - if v == false { - remove(k) - continue - } - store(k) - } - return nil -} -``` - -This approach gets error handling out of the way first, allowing the 'core' of -the function to follow at the scope of the function, not a conditional. Or put -otherwise, with the least amount of indentation. - -Quoting [Effective Go]: - -> In the Go libraries, you'll find that when an `if` statement doesn't flow into -> the next statement—that is, the body ends in break, continue, goto, or -> return—the unnecessary else is omitted. - -### Wrap Errors - - - -Always wrap errors with context. This allows us to emit logs and events with -useful, specific errors that can be related to deeper parts of the codebase -without having to actually plumb loggers and event sources deep down into the -codebase. - -For example: - -```go -import "github.com/crossplane/crossplane-runtime/pkg/errors" - -func example() error { - v, err := fetch() - if err != nil { - return errors.Wrap(err, "could not fetch the thing") - } - - store(embiggen(v)) - return nil -} -``` - -### Scope Errors - -Where possible, keep errors as narrowly scoped as possible. This avoids bugs -that can appear due to 'shadowed' errors, i.e. accidental re-use of an existing -`err` variable, as code is refactored over time. Keeping errors scoped to the -error handling conditional block can help protect against this. - -So for example, instead of: - -```go -func example() error { - err := enable() - if err != nil { - return errors.Wrap(err, "could not enable the thing") - } - - // 'err' still exists here at the function scope. - - return errors.Wrap(emit(), "could not emit the thing") -} -``` - -We prefer: - -```go -func example() error { - if err := enable(); err != nil { - // 'err' exists here inside the conditional block. - return errors.Wrap(err, "could not enable the thing") - } - - // 'err' does not exist here at the function scope. It's scoped to the - // above conditional block. - - return errors.Wrap(emit(), "could not emit the thing") -} -``` - -Note that the 'return early' advice above trumps this rule - it's okay to -declare errors at the function scope if it lets you keep business logic less -nested. - -That is, instead of: - -```go -func example() error { - if v, err := fetch(); err != nil { - return errors.Wrap(err, "could not enable the thing") - } else { - store(embiggen(v)) - } - - return nil -} -``` - -We prefer: - -```go -func example() error { - v, err := fetch() - if err != nil { - return errors.Wrap(err, "could not enable the thing") - } - - store(embiggen(v)) - return nil -} -``` - -### Prefer Table Driven Tests - -As mentioned in [Contributing Code](#contributing-code), we defer to the advice -laid out in the Go project's [test review comments] documents. This means we -prefer table-driven tests. - -The most common form of a test is as follows: - -```go -// Example is the function we're testing. -func Example(ctx context.Context, input string) (int, error) { - // ... -} - -// Test function names are always PascalCase. No underscores. -func TestExample(t *testing.T) { - type args struct { - ctx context.Context - input string - } - - type want struct { - output int - err error - } - - cases := map[string]struct{ - reason string - args args - want want - }{ - // The summary is always PascalCase. No spaces, hyphens, or underscores. - "BriefTestCaseSummary": { - reason: "A longer summary of what we're testing - printed if the test fails.", - args: args{ - ctx: context.Background(), - input: "some input value", - } - want: want{ - output: "the expected output", - err: nil, - } - }, - } - - for name, tc := range cases { - t.Run(name, func(t *testing.T) { - got, err := Example(tc.args.ctx, tc.args.input) - - // We prefer to use https://github.com/google/go-cmp/ - // even for simple comparisons to keep test output - // consistent. - if diff := cmp.Diff(tc.want.err, err, test.EquateErrors()); diff != "" { - t.Errorf("%s\nExample(...): -want, +got:\n%s", tc.reason, diff) - } - - if diff := cmp.Diff(tc.want.output, got); diff != "" { - t.Errorf("%s\nExample(...): -want, +got:\n%s", tc.reason, diff) - } - }) - } -} -``` - -## Establishing a Development Environment - - - -Coming soon! - -## Attribution - -This guide was initially created from the -[`kubernetes-template-project`][template-project]. - -The style guide was copied from the amazing -[CONTRIBUTING.md][crossplane-contributing] created by the -[Crossplane][crossplane] project maintainers. - -Copied at [this commit][crossplane-contributing-commit], with attribution to -the following Crossplane contributors: - -- [negz](https://github.com/negz) -- [hasheddan](https://github.com/hasheddan) -- [jbw976](https://github.com/jbw976) -- [bassam](https://github.com/bassam) -- [alvarodelvalle](https://github.com/alvarodelvalle) -- [tv42](https://github.com/tv42) -- [ravisantoshgudimetla](https://github.com/ravisantoshgudimetla) -- [nchetan](https://github.com/nchetan) -- [muvaf](https://github.com/muvaf) - -[contact]: #contact-information -[crossplane]: https://github.com/crossplane -[crossplane-contributing]: https://github.com/crossplane/crossplane/blob/master/CONTRIBUTING.md -[crossplane-contributing-commit]: https://github.com/crossplane/crossplane/blob/2c10ff0e81b83d609cfa81c3a24ce842ab234c38/CONTRIBUTING.md -[build submodule]: https://github.com/upbound/build/ -[`kind`]: https://kind.sigs.k8s.io/ -[kubernetes-release-cycle]: https://kubernetes.io/releases/release/ -[good git commit hygiene]: https://www.futurelearn.com/info/blog/telling-stories-with-your-git-history -[Developer Certificate of Origin]: https://github.com/apps/dco -[code review comments]: https://github.com/golang/go/wiki/CodeReviewComments -[test review comments]: https://github.com/golang/go/wiki/TestComments -[Effective Go]: https://golang.org/doc/effective_go -[Dave Cheney's blog]: https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis -[`crossplane-runtime/pkg/errors`]: https://pkg.go.dev/github.com/crossplane/crossplane-runtime/pkg/errors -[golangci-lint]: https://golangci-lint.run/ -[mage]: https://magefile.org/ -[sig-release-subprojects]: https://git.k8s.io/community/sig-release#subprojects -[template-project]: https://git.k8s.io/kubernetes-template-project +# Contributing Guidelines + +Welcome to Kubernetes. We are excited about the prospect of you joining our [community](https://git.k8s.io/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt: + +_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._ + +- [Getting Started](#getting-started) +- [Mentorship](#mentorship) +- [Contact Information](#contact-information) +- [Contributing Code](#contributing-code) +- [Coding Style](#coding-style) + - [Explain 'nolint' Directives](#explain-nolint-directives) + - [Use Descriptive Variable Names Sparingly](#use-descriptive-variable-names-sparingly) + - [Don't Wrap Function Signatures](#dont-wrap-function-signatures) + - [Return Early](#return-early) + - [Wrap Errors](#wrap-errors) + - [Scope Errors](#scope-errors) + - [Prefer Table Driven Tests](#prefer-table-driven-tests) +- [Establishing a Development Environment](#establishing-a-development-environment) +- [Attribution](#attribution) + +## Getting Started + +We have full documentation on how to get started contributing here: + + + +- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests +- [Kubernetes Contributor Guide](https://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](https://git.k8s.io/community/contributors/guide#contributing) +- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet) - Common resources for existing developers + +## Mentorship + +- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers! + +## Contact Information + + + +- [Slack channel](https://kubernetes.slack.com/messages/sig-release) +- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-release) + +## Contributing Code + +To contribute bug fixes or features to SIG Release repositories: + +1. Communicate your intent. +1. Make your changes. +1. Test your changes. +1. Update documentation and examples where appropriate. +1. Open a Pull Request (PR). + +Communicating your intent lets SIG Release members know that you intend +to contribute, and how. This sets you up for success - you can avoid duplicating +an effort that may already be underway, adding a feature that may be rejected, +or heading down a path that you would be steered away from at review time. The +best way to communicate your intent is via a detailed GitHub issue. Take a look +first to see if there's already an issue relating to the thing you'd like to +contribute. If there isn't, please raise a new one! Let us know what you'd like +to work on, and why. SIG Release members can't always triage new issues +immediately, but we encourage you to bring them to our attention via one of our +[communication channels][contact]. + +> NOTE: Unlike the core [Kubernetes release cycle][kubernetes-release-cycle], +> [SIG Release repositories][sig-release-subprojects] are versioned/released on +> ad hoc (as needed basis), which means that the changes you've made will +> not necessarily be immediately available for consumption in tagged artifacts. +> +> We may release components for the following, non-exhaustive reasons: +> +> - unblocking a core Kubernetes release cycle +> - unblocking Kubernetes projects that leverage our libraries +> - mitigating a security vulnerability +> - critical bug fixes or regressions +> - a feature is incomplete or does not work as intended +> +> If you need a new component release to unblock your project, please contact us to request one. + + + +Be sure to practice [good git commit hygiene] as you make your changes. All but +the smallest changes should be broken up into a few commits that tell a story. +Use your git commits to provide context for the folks who will review PR, and +the folks who will be spelunking the codebase in the months and years to come. +Ensure each of your commits is signed-off by using `git commit -s`. SIG Release +members highly values readable, idiomatic Go code. Familiarize yourself with +the [Coding Style](#coding-style) section below and try to preempt any comments +your reviewers would otherwise leave. Most repos will contain `Makefile`s or +[`mage`][mage] targets that will help you build/test/lint/verify your changes. +If you don't see a target for your use case, maybe that could be your first +contribution! + + + +All code should be covered by tests. We strive, wherever possible, to follow +the common Go [test review comments]. We encourage the use of table-driven +unit tests - you can find an example [below](#prefer-table-driven-tests). Note +that when opening a PR your reviewer will expect you to detail how you've +tested your work. For all but the smallest changes, some manual testing is +encouraged in addition to unit tests. + +All documentation is under revision control. Any change that introduces new +behavior or changes existing behavior must include updates to any relevant +documentation. Please keep documentation changes in distinct commits. + +Once your change is written, tested, and documented the final step is to have it +reviewed! You'll be presented with a template and a small checklist when you +open a PR. Please read the template and fill out the checklist. Please make all +requested changes in subsequent commits. This allows your reviewers to see what +has changed as you address their comments. Be mindful of your commit history as +you do this - avoid commit messages like "Address review feedback" if possible. +If doing so is difficult a good alternative is to rewrite your commit history +to clean them up after your PR is approved but before it is merged. + +In summary, please: + +- Discuss your change in a GitHub issue before you start. +- Use your Git commit messages to communicate your intent to your reviewers. +- Sign-off on all git commits by running `git commit -s` +- Add or update tests for all changes. +- Preempt [coding style](#coding-style) review comments. +- Update all relevant documentation. +- Don't force push to address review feedback. Your commits should tell a story. +- If necessary, tidy up your git commit history once your PR is approved. + +Thank you for reading through our contributing guide! We appreciate you taking +the time to ensure your contributions are high quality and easy for our +community to review and accept. Please don't hesitate to [reach out to +us][contact] if you have any questions about contributing! + +## Coding Style + +SIG Release prefers not to maintain its own style guide, but we do +enforce the style and best practices established by the Go project and its +community. This means contributors should: + +- Follow the guidelines set out by the [Effective Go] document. +- Preempt common Go [code review comments] and [test review comments]. + +These coding style guidelines apply to all SIG Release repositories unless +stated otherwise. + +Below we cover some of the feedback we most frequently leave on pull requests. +Most of these are covered by the documents above, but may be subtle or easily +missed and thus warrant closer attention. + +### Explain 'nolint' Directives + +We use [golangci-lint] on all our Golang-based repositories to enforce many +style and safety rules that are not covered here. We prefer to tolerate false +positives from our linter configuration in order to make sure we catch as many +issues as possible. +This means it's sometimes necessary to override the linter to make a build pass. + +You can override the linter using a `//nolint` comment directive. When you do so +you must: + +1. Be specific. Apply `//nolint:nameoflinter` at as tight a scope as possible. +1. Include a comment explaining why you're disabling the linter. + +For example: + +```go +func hash(s string) string { + h := fnv.New32() + _ = h.Write([]byte(s)) //nolint:errcheck // Writing to a hash never returns an error. + return fmt.Sprintf("%x", h.Sum32()) +} +``` + +Here we only disable the specific linter that would emit a warning (`errcheck`), +for the specific line where that warning would be emitted. + +### Use Descriptive Variable Names Sparingly + +Quoting the Go [code review comments]: + +> Variable names in Go should be short rather than long. This is especially true +> for local variables with limited scope. Prefer `c` to `lineCount`. Prefer `i` +> to `sliceIndex`. +> +> The basic rule: the further from its declaration that a name is used, the more +> descriptive the name must be. For a method receiver, one or two letters is +> sufficient. Common variables such as loop indices and readers can be a single +> letter (`i`, `r`). More unusual things and global variables need more +> descriptive names. + +Another way to frame the above is that we prefer to use short variables in all +cases where a (human) reader could easily infer what the variable was from its +source. For example: + +```go +// NumberOfGeese might be used outside this package, or many many lines further +// down the file so it needs a descriptive name. It's also just an int, which +// doesn't give the reader much clue about what it's for. +const NumberOfGeese = 42 + +// w is plenty for the first argument here. Naming it gooseWrangler is redundant +// because readers can tell what it is from its type. looseGeese on the other +// hand warrants a descriptive name. It's short lived (lines wise), and its type +// doesn't give us any context about what it's for. +func capture(w goose.Wrangler, looseGeese int) error { + // Important goose capturing logic. + for looseGeese > 0 { + // It's not obvious from the w.Wrangle method name what the + // return value is, so a descriptive name names sense here too. + captured, err := w.Wrangle() + if err != nil { + return errors.Wrap(err, "defeated by geese") + } + looseGeese = looseGeese - captured + } + + // We prefer 'y' to 'yard' here because 'yard' is implied by 'NewYard'. + y := goose.NewYard(w) + return y.Secure() +} +``` + +### Don't Wrap Function Signatures + +Quoting again from the Go [code review comments]: + +> Most of the time when people wrap lines "unnaturally" (in the middle of +> function calls or function declarations, more or less, say, though some +> exceptions are around), the wrapping would be unnecessary if they had a +> reasonable number of parameters and reasonably short variable names. Long +> lines seem to go with long names, and getting rid of the long names helps a +> lot. + +```go +func capture(gooseWrangler goose.Wrangler, looseGeese int, gooseYard goose.Yard, + duckWrangler duck.Wrangler, looseDucks, duckYard duck.Yard) error { + // Important fowl wrangling logic. +} +``` + +If you find the need to wrap a function signature like the above it's almost +always a sign that your argument names are superfluously verbose, or that your +function is doing too much. If your function needs to take many optional +arguments, perhaps to enable dependency injection, use variadic functions as +options. In this case we usually make an exception for wrapped function calls. +For example: + +```go +type Wrangler struct { + fw fowl.Wrangler + loose int +} + +type Option func(w *Wrangler) + +func WithFowlWrangler(fw fowl.Wrangler) Option { + return func(w *Wrangler) { + w.fw = fw + } +} + +func NewWrangler(looseGeese int, o ...Option) *Wrangler { + w := &Wrangler{ + fw: fowl.DefaultWrangler{} + loose: + } + + for _, fn := range o { + fn(w) + } + + return w +} + +func example() { + w := NewWrangler(42, + WithFowlWrangler(chicken.NewWrangler()), + WithSomeOtherOption(), + WithYetAnotherOption()) + + w.Wrangle() +} +``` + +You can read more about this pattern on [Dave Cheney's blog]. + +### Return Early + +We prefer to return early. Another way to think about this is that we prefer to +handle terminal cases (e.g., errors) early. So for example instead of: + +```go +func example() error { + v := fetch() + if v == 42 { + // Really important business logic. + b := embiggen(v) + for k, v := range lookup(b) { + if v == true { + store(k) + } else { + remove(k) + } + } + return nil + } + return errors.New("v was a bad number") +} +``` + +We prefer: + +```go +func example() error { + v := fetch() + if v != 42 { + return errors.New("v was a bad number") + } + // Really important business logic. + b := embiggen(v) + for k, v := range lookup(b) { + // "Continue early" is a variant of "return early". + if v == false { + remove(k) + continue + } + store(k) + } + return nil +} +``` + +This approach gets error handling out of the way first, allowing the 'core' of +the function to follow at the scope of the function, not a conditional. Or put +otherwise, with the least amount of indentation. + +Quoting [Effective Go]: + +> In the Go libraries, you'll find that when an `if` statement doesn't flow into +> the next statement—that is, the body ends in break, continue, goto, or +> return—the unnecessary else is omitted. + +### Wrap Errors + + + +Always wrap errors with context. This allows us to emit logs and events with +useful, specific errors that can be related to deeper parts of the codebase +without having to actually plumb loggers and event sources deep down into the +codebase. + +For example: + +```go +import "github.com/crossplane/crossplane-runtime/pkg/errors" + +func example() error { + v, err := fetch() + if err != nil { + return errors.Wrap(err, "could not fetch the thing") + } + + store(embiggen(v)) + return nil +} +``` + +### Scope Errors + +Where possible, keep errors as narrowly scoped as possible. This avoids bugs +that can appear due to 'shadowed' errors, i.e. accidental re-use of an existing +`err` variable, as code is refactored over time. Keeping errors scoped to the +error handling conditional block can help protect against this. + +So for example, instead of: + +```go +func example() error { + err := enable() + if err != nil { + return errors.Wrap(err, "could not enable the thing") + } + + // 'err' still exists here at the function scope. + + return errors.Wrap(emit(), "could not emit the thing") +} +``` + +We prefer: + +```go +func example() error { + if err := enable(); err != nil { + // 'err' exists here inside the conditional block. + return errors.Wrap(err, "could not enable the thing") + } + + // 'err' does not exist here at the function scope. It's scoped to the + // above conditional block. + + return errors.Wrap(emit(), "could not emit the thing") +} +``` + +Note that the 'return early' advice above trumps this rule - it's okay to +declare errors at the function scope if it lets you keep business logic less +nested. + +That is, instead of: + +```go +func example() error { + if v, err := fetch(); err != nil { + return errors.Wrap(err, "could not enable the thing") + } else { + store(embiggen(v)) + } + + return nil +} +``` + +We prefer: + +```go +func example() error { + v, err := fetch() + if err != nil { + return errors.Wrap(err, "could not enable the thing") + } + + store(embiggen(v)) + return nil +} +``` + +### Prefer Table Driven Tests + +As mentioned in [Contributing Code](#contributing-code), we defer to the advice +laid out in the Go project's [test review comments] documents. This means we +prefer table-driven tests. + +The most common form of a test is as follows: + +```go +// Example is the function we're testing. +func Example(ctx context.Context, input string) (int, error) { + // ... +} + +// Test function names are always PascalCase. No underscores. +func TestExample(t *testing.T) { + type args struct { + ctx context.Context + input string + } + + type want struct { + output int + err error + } + + cases := map[string]struct{ + reason string + args args + want want + }{ + // The summary is always PascalCase. No spaces, hyphens, or underscores. + "BriefTestCaseSummary": { + reason: "A longer summary of what we're testing - printed if the test fails.", + args: args{ + ctx: context.Background(), + input: "some input value", + } + want: want{ + output: "the expected output", + err: nil, + } + }, + } + + for name, tc := range cases { + t.Run(name, func(t *testing.T) { + got, err := Example(tc.args.ctx, tc.args.input) + + // We prefer to use https://github.com/google/go-cmp/ + // even for simple comparisons to keep test output + // consistent. + if diff := cmp.Diff(tc.want.err, err, test.EquateErrors()); diff != "" { + t.Errorf("%s\nExample(...): -want, +got:\n%s", tc.reason, diff) + } + + if diff := cmp.Diff(tc.want.output, got); diff != "" { + t.Errorf("%s\nExample(...): -want, +got:\n%s", tc.reason, diff) + } + }) + } +} +``` + +## Establishing a Development Environment + + + +Coming soon! + +## Attribution + +This guide was initially created from the +[`kubernetes-template-project`][template-project]. + +The style guide was copied from the amazing +[CONTRIBUTING.md][crossplane-contributing] created by the +[Crossplane][crossplane] project maintainers. + +Copied at [this commit][crossplane-contributing-commit], with attribution to +the following Crossplane contributors: + +- [negz](https://github.com/negz) +- [hasheddan](https://github.com/hasheddan) +- [jbw976](https://github.com/jbw976) +- [bassam](https://github.com/bassam) +- [alvarodelvalle](https://github.com/alvarodelvalle) +- [tv42](https://github.com/tv42) +- [ravisantoshgudimetla](https://github.com/ravisantoshgudimetla) +- [nchetan](https://github.com/nchetan) +- [muvaf](https://github.com/muvaf) + +[contact]: #contact-information +[crossplane]: https://github.com/crossplane +[crossplane-contributing]: https://github.com/crossplane/crossplane/blob/master/CONTRIBUTING.md +[crossplane-contributing-commit]: https://github.com/crossplane/crossplane/blob/2c10ff0e81b83d609cfa81c3a24ce842ab234c38/CONTRIBUTING.md +[build submodule]: https://github.com/upbound/build/ +[`kind`]: https://kind.sigs.k8s.io/ +[kubernetes-release-cycle]: https://kubernetes.io/releases/release/ +[good git commit hygiene]: https://www.futurelearn.com/info/blog/telling-stories-with-your-git-history +[Developer Certificate of Origin]: https://github.com/apps/dco +[code review comments]: https://github.com/golang/go/wiki/CodeReviewComments +[test review comments]: https://github.com/golang/go/wiki/TestComments +[Effective Go]: https://golang.org/doc/effective_go +[Dave Cheney's blog]: https://dave.cheney.net/2014/10/17/functional-options-for-friendly-apis +[`crossplane-runtime/pkg/errors`]: https://pkg.go.dev/github.com/crossplane/crossplane-runtime/pkg/errors +[golangci-lint]: https://golangci-lint.run/ +[mage]: https://magefile.org/ +[sig-release-subprojects]: https://git.k8s.io/community/sig-release#subprojects +[template-project]: https://git.k8s.io/kubernetes-template-project diff --git a/LICENSE b/LICENSE index 8dada3edaf5..c0ee81299bd 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,201 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/OWNERS b/OWNERS index fcfa168d0b8..519558ce70b 100644 --- a/OWNERS +++ b/OWNERS @@ -1,18 +1,18 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -approvers: - - sig-release-leads -reviewers: - - sig-release-leads - - release-engineering-approvers - - release-team-approvers -labels: - - sig/release - -# Thanks for everything! -emeritus_approvers: - - alejandrox1 # Emeritus Technical Lead - - calebamiles # Emeritus Chair - - hasheddan # Emeritus Technical Lead - - jdumars # Emeritus Chair - - tpepper # Emeritus Chair +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - sig-release-leads +reviewers: + - sig-release-leads + - release-engineering-approvers + - release-team-approvers +labels: + - sig/release + +# Thanks for everything! +emeritus_approvers: + - alejandrox1 # Emeritus Technical Lead + - calebamiles # Emeritus Chair + - hasheddan # Emeritus Technical Lead + - jdumars # Emeritus Chair + - tpepper # Emeritus Chair diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index f795d90ab58..9483f8099e5 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -1,44 +1,44 @@ -aliases: - sig-release-leads: - - cpanato # SIG Technical Lead - - jeremyrickard # SIG Chair - - justaugustus # SIG Chair - - puerco # SIG Technical Lead - - saschagrunert # SIG Chair - - Verolop # SIG Technical Lead - - # Release Engineering subproject - release-engineering-approvers: - - cici37 # subproject owner / Release Manager - - cpanato # subproject owner / Release Manager - - jeremyrickard # subproject owner / Release Manager - - justaugustus # subproject owner / Release Manager - - palnabarun # Release Manager - - puerco # subproject owner / Release Manager - - saschagrunert # subproject owner / Release Manager - - xmudrii # Release Manager - - Verolop # subproject owner / Release Manager - release-engineering-reviewers: - - ameukam # Release Manager Associate - - jimangel # Release Manager Associate - - jrsapi # Release Manager Associate - - salaxander # Release Manager Associate - - # Release Team subproject - release-team-approvers: - - katcosgrove # Release Team Subproject Lead - release-team-lead: - - drewhagen # v1.35 - release-team-lead-shadows: - - rytswd # v1.35 - - dipesh-rawat # v1.35 - - jenshu # v1.35 - - Rajalakshmi-Girish # v1.35 - communications-subteam-approvers: - - graz-dev # v1.35 - docs-subteam-approvers: - - Urvashi0109 # v1.35 - enhancements-subteam-approvers: - - rayandas # v1.35 - release-signal-subteam-approvers: - - tico88612 # v1.35 +aliases: + sig-release-leads: + - cpanato # SIG Technical Lead + - jeremyrickard # SIG Chair + - justaugustus # SIG Chair + - puerco # SIG Technical Lead + - saschagrunert # SIG Chair + - Verolop # SIG Technical Lead + + # Release Engineering subproject + release-engineering-approvers: + - cici37 # subproject owner / Release Manager + - cpanato # subproject owner / Release Manager + - jeremyrickard # subproject owner / Release Manager + - justaugustus # subproject owner / Release Manager + - palnabarun # Release Manager + - puerco # subproject owner / Release Manager + - saschagrunert # subproject owner / Release Manager + - xmudrii # Release Manager + - Verolop # subproject owner / Release Manager + release-engineering-reviewers: + - ameukam # Release Manager Associate + - jimangel # Release Manager Associate + - jrsapi # Release Manager Associate + - salaxander # Release Manager Associate + + # Release Team subproject + release-team-approvers: + - katcosgrove # Release Team Subproject Lead + release-team-lead: + - drewhagen # v1.35 + release-team-lead-shadows: + - rytswd # v1.35 + - dipesh-rawat # v1.35 + - jenshu # v1.35 + - Rajalakshmi-Girish # v1.35 + communications-subteam-approvers: + - graz-dev # v1.35 + docs-subteam-approvers: + - Urvashi0109 # v1.35 + enhancements-subteam-approvers: + - rayandas # v1.35 + release-signal-subteam-approvers: + - tico88612 # v1.35 diff --git a/README.md b/README.md index 6e98b1ce180..fe0231349da 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,34 @@ -# SIG Release - -## Charter - -The [charter] defines the scope and governance of the Release Special Interest Group. - -## Join us! - -If you are new to the Kubernetes community and would like to start contributing, you can check out the ["Getting Started"](https://www.kubernetes.dev/docs/guide/) guide for Kubernetes contributors. Below are some more links specifically to sig-release to get in touch with us. - -- [Slack](https://kubernetes.slack.com/messages/sig-release) -- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-release) -- [Open Issues / PRs](https://github.com/search?q=org%3Akubernetes+org%3Akubernetes-client+org%3Akubernetes-csi+org%3Akubernetes-incubator+org%3Akubernetes-retired+org%3Akubernetes-sigs+is%3Aopen+label%3Asig%2Frelease) -- [Meeting agenda and notes](https://docs.google.com/document/d/1Fu6HxXQu8wl6TwloGUEOXVzZ1rwZ72IAhglnaAMCPqA/edit) - -## Roadmap and Vision - -SIG Release maintains their own [Roadmap and Vision in a dedicated document](roadmap.md). - -## Release Team - -Several of the responsibilities of SIG Release are discharged by the Release Team, a subproject of SIG Release. Explicit details on each of the roles can be found in the [Release Team subproject directory][rt-directory]. - - -[charter]: https://git.k8s.io/community/sig-release/charter.md -[rt-directory]: /release-team/README.md - -## Processes - -The following high-level descriptions of SIG Release processes should provide a -general overview about the work we're doing: - -- [Release Notes](/release-engineering/release-notes.md) -- [Versioning](/release-engineering/versioning.md) +# SIG Release + +## Charter + +The [charter] defines the scope and governance of the Release Special Interest Group. + +## Join us! + +If you are new to the Kubernetes community and would like to start contributing, you can check out the ["Getting Started"](https://www.kubernetes.dev/docs/guide/) guide for Kubernetes contributors. Below are some more links specifically to sig-release to get in touch with us. + +- [Slack](https://kubernetes.slack.com/messages/sig-release) +- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-release) +- [Open Issues / PRs](https://github.com/search?q=org%3Akubernetes+org%3Akubernetes-client+org%3Akubernetes-csi+org%3Akubernetes-incubator+org%3Akubernetes-retired+org%3Akubernetes-sigs+is%3Aopen+label%3Asig%2Frelease) +- [Meeting agenda and notes](https://docs.google.com/document/d/1Fu6HxXQu8wl6TwloGUEOXVzZ1rwZ72IAhglnaAMCPqA/edit) + +## Roadmap and Vision + +SIG Release maintains their own [Roadmap and Vision in a dedicated document](roadmap.md). + +## Release Team + +Several of the responsibilities of SIG Release are discharged by the Release Team, a subproject of SIG Release. Explicit details on each of the roles can be found in the [Release Team subproject directory][rt-directory]. + + +[charter]: https://git.k8s.io/community/sig-release/charter.md +[rt-directory]: /release-team/README.md + +## Processes + +The following high-level descriptions of SIG Release processes should provide a +general overview about the work we're doing: + +- [Release Notes](/release-engineering/release-notes.md) +- [Versioning](/release-engineering/versioning.md) diff --git a/SECURITY.md b/SECURITY.md index 2083d44cdf9..cdf24b6f77b 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,22 +1,22 @@ -# Security Policy - -## Security Announcements - -Join the [kubernetes-security-announce] group for security and vulnerability announcements. - -You can also subscribe to an RSS feed of the above using [this link][kubernetes-security-announce-rss]. - -## Reporting a Vulnerability - -Instructions for reporting a vulnerability can be found on the -[Kubernetes Security and Disclosure Information] page. - -## Supported Versions - -Information about supported Kubernetes versions can be found on the -[Kubernetes version and version skew support policy] page on the Kubernetes website. - -[kubernetes-security-announce]: https://groups.google.com/forum/#!forum/kubernetes-security-announce -[kubernetes-security-announce-rss]: https://groups.google.com/forum/feed/kubernetes-security-announce/msgs/rss_v2_0.xml?num=50 -[Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions -[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability +# Security Policy + +## Security Announcements + +Join the [kubernetes-security-announce] group for security and vulnerability announcements. + +You can also subscribe to an RSS feed of the above using [this link][kubernetes-security-announce-rss]. + +## Reporting a Vulnerability + +Instructions for reporting a vulnerability can be found on the +[Kubernetes Security and Disclosure Information] page. + +## Supported Versions + +Information about supported Kubernetes versions can be found on the +[Kubernetes version and version skew support policy] page on the Kubernetes website. + +[kubernetes-security-announce]: https://groups.google.com/forum/#!forum/kubernetes-security-announce +[kubernetes-security-announce-rss]: https://groups.google.com/forum/feed/kubernetes-security-announce/msgs/rss_v2_0.xml?num=50 +[Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions +[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability diff --git a/SECURITY_CONTACTS b/SECURITY_CONTACTS index 40651b8882a..2a9f5222ea3 100644 --- a/SECURITY_CONTACTS +++ b/SECURITY_CONTACTS @@ -1,18 +1,18 @@ -# Defined below are the security contacts for this repo. -# -# They are the contact point for the Security Response Committee to reach out -# to for triaging and handling of incoming issues. -# -# The below names agree to abide by the -# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy) -# and will be removed and replaced if they violate that agreement. -# -# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE -# INSTRUCTIONS AT https://kubernetes.io/security/ - -cpanato -jeremyrickard -justaugustus -puerco -saschagrunert -Verolop +# Defined below are the security contacts for this repo. +# +# They are the contact point for the Security Response Committee to reach out +# to for triaging and handling of incoming issues. +# +# The below names agree to abide by the +# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy) +# and will be removed and replaced if they violate that agreement. +# +# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE +# INSTRUCTIONS AT https://kubernetes.io/security/ + +cpanato +jeremyrickard +justaugustus +puerco +saschagrunert +Verolop diff --git a/code-of-conduct.md b/code-of-conduct.md index 0d15c00cf32..96cdae5adbb 100644 --- a/code-of-conduct.md +++ b/code-of-conduct.md @@ -1,3 +1,3 @@ -# Kubernetes Community Code of Conduct - -Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md) +# Kubernetes Community Code of Conduct + +Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md) diff --git a/leads/onboarding.md b/leads/onboarding.md index 2fed560bba1..891f4d0ba3d 100644 --- a/leads/onboarding.md +++ b/leads/onboarding.md @@ -1,84 +1,84 @@ -# Onboarding Chairs and Technical Leads - -To ensure quality communication SIG Release Chairs and Technical Leads should: - -- Be part of the Kubernetes GitHub organization: - https://github.com/kubernetes/community/blob/master/community-membership.md#member - -- Be part of the @kubernetes/sig-release-admins GitHub team: - https://github.com/orgs/kubernetes/teams/sig-release-admins - -- Join the following mailing lists and be able to post there: - - - kubernetes-sig-release: - https://groups.google.com/forum/#!forum/kubernetes-sig-release - - kubernetes-release-team: - https://groups.google.com/a/kubernetes.io/g/release-team - - kubernetes-dev: - https://groups.google.com/a/kubernetes.io/g/dev - - kubernetes-announce: - https://groups.google.com/forum/#!forum/kubernetes-announce - - release-managers: - https://groups.google.com/a/kubernetes.io/forum/#!forum/release-managers - - release-managers-private: - https://groups.google.com/a/kubernetes.io/forum/#!forum/release-managers-private - -- Join the following Slack channels: - - #sig-release: - https://kubernetes.slack.com/messages/C2C40FMNF - - #release-management: - https://kubernetes.slack.com/messages/CJH2GBF7Y - -The following permissions are needed to be able to act in the role as technical -lead: - -- Be part of sig-release-leads in kubernetes/community/OWNERS_ALIASES: - https://github.com/kubernetes/community/blob/fd5df0deed97536095a28c4f881bb5ce6247f85f/OWNERS_ALIASES#L63 - -- Be part of tech\*leads in kubernetes/community/sigs.yaml: - https://github.com/kubernetes/community/blob/fd5df0deed97536095a28c4f881bb5ce6247f85f/sigs.yaml#L1680 - -- Be part of the Technical Leads section in kubernetes/community/sig-release/README.md: - https://github.com/kubernetes/community/tree/master/sig-release#technical-leads - -Technical leads should have the full set of permissions equally to Branch -Managers, which are: - -- Technical leads should have formally agreed to abide by the guidelines set - forth in the Security Release Process, specifically the embargo on CVE - communications: https://git.k8s.io/security/security-release-process.md - -- Be part of the following GitHub teams in kubernetes/org: - https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml - - - milestone-maintainers - - release-managers - - release-engineering - - sig-release - -- Be part of the following OWNERS files: - - - kubernetes/kubernetes: OWNERS_ALIASES (sig-release-approvers section) - - kubernetes/sig-release: OWNERS_ALIASES (sig-release-leads section) - - kubernetes/release: OWNERS_ALIASES (sig-release-leads section) - - kubernetes/k8s.io OWNERS_ALIASES (release-engineering-approvers section) - - kubernetes/test-infra (as reviewer for SIG Release OWNERS) - -- Be part of the following SECURITY_CONTACTS files: - - - kubernetes/sig-release - - kubernetes/release - -- Have the correct Google Groups/GCP IAM membership in kubernetes/k8s.io: - https://git.k8s.io/k8s.io/groups/groups.yaml - - - leads (members) - - k8s-infra-release-admins (members) - - k8s-infra-release-editors (members) - - release-comms (owners) - - release-managers (owners) - - release-managers-private (owners) - -- Be part of the Slack release-managers and release-team-leads User Group in - kubernetes/community: - https://git.k8s.io/community/communication/slack-config/sig-release/usergroups.yaml +# Onboarding Chairs and Technical Leads + +To ensure quality communication SIG Release Chairs and Technical Leads should: + +- Be part of the Kubernetes GitHub organization: + https://github.com/kubernetes/community/blob/master/community-membership.md#member + +- Be part of the @kubernetes/sig-release-admins GitHub team: + https://github.com/orgs/kubernetes/teams/sig-release-admins + +- Join the following mailing lists and be able to post there: + + - kubernetes-sig-release: + https://groups.google.com/forum/#!forum/kubernetes-sig-release + - kubernetes-release-team: + https://groups.google.com/a/kubernetes.io/g/release-team + - kubernetes-dev: + https://groups.google.com/a/kubernetes.io/g/dev + - kubernetes-announce: + https://groups.google.com/forum/#!forum/kubernetes-announce + - release-managers: + https://groups.google.com/a/kubernetes.io/forum/#!forum/release-managers + - release-managers-private: + https://groups.google.com/a/kubernetes.io/forum/#!forum/release-managers-private + +- Join the following Slack channels: + - #sig-release: + https://kubernetes.slack.com/messages/C2C40FMNF + - #release-management: + https://kubernetes.slack.com/messages/CJH2GBF7Y + +The following permissions are needed to be able to act in the role as technical +lead: + +- Be part of sig-release-leads in kubernetes/community/OWNERS_ALIASES: + https://github.com/kubernetes/community/blob/fd5df0deed97536095a28c4f881bb5ce6247f85f/OWNERS_ALIASES#L63 + +- Be part of tech\*leads in kubernetes/community/sigs.yaml: + https://github.com/kubernetes/community/blob/fd5df0deed97536095a28c4f881bb5ce6247f85f/sigs.yaml#L1680 + +- Be part of the Technical Leads section in kubernetes/community/sig-release/README.md: + https://github.com/kubernetes/community/tree/master/sig-release#technical-leads + +Technical leads should have the full set of permissions equally to Branch +Managers, which are: + +- Technical leads should have formally agreed to abide by the guidelines set + forth in the Security Release Process, specifically the embargo on CVE + communications: https://git.k8s.io/security/security-release-process.md + +- Be part of the following GitHub teams in kubernetes/org: + https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml + + - milestone-maintainers + - release-managers + - release-engineering + - sig-release + +- Be part of the following OWNERS files: + + - kubernetes/kubernetes: OWNERS_ALIASES (sig-release-approvers section) + - kubernetes/sig-release: OWNERS_ALIASES (sig-release-leads section) + - kubernetes/release: OWNERS_ALIASES (sig-release-leads section) + - kubernetes/k8s.io OWNERS_ALIASES (release-engineering-approvers section) + - kubernetes/test-infra (as reviewer for SIG Release OWNERS) + +- Be part of the following SECURITY_CONTACTS files: + + - kubernetes/sig-release + - kubernetes/release + +- Have the correct Google Groups/GCP IAM membership in kubernetes/k8s.io: + https://git.k8s.io/k8s.io/groups/groups.yaml + + - leads (members) + - k8s-infra-release-admins (members) + - k8s-infra-release-editors (members) + - release-comms (owners) + - release-managers (owners) + - release-managers-private (owners) + +- Be part of the Slack release-managers and release-team-leads User Group in + kubernetes/community: + https://git.k8s.io/community/communication/slack-config/sig-release/usergroups.yaml diff --git a/release-blocking-jobs.md b/release-blocking-jobs.md index b0038e6f22f..f74386e3c9a 100644 --- a/release-blocking-jobs.md +++ b/release-blocking-jobs.md @@ -1,157 +1,157 @@ -# Release Blocking Jobs and Criteria - -* [SIG-Release-Master-Blocking](https://testgrid.k8s.io/sig-release-master-blocking) -* [SIG-Release-Master-Informing](https://testgrid.k8s.io/sig-release-master-informing) - -SIG-release maintains two sets of jobs that decide whether the release is -healthy: Blocking and Informing. Each of these sets is instantiated for each -active release (beta or later), plus Master, so at any given time there will -be 8-10 dashboards in pairs. - -Below, the set of "sig-release-master-blocking" and "sig-release-X.Y-blocking" -dashboards will be referred to collectively as "Blocking", and the set of all -"-informing" dashboards as Informing. Where only specific dashboards are -required, they will be referred to by name or pattern. - -There are also some other release dashboards, such as sig-release-misc, -sig-release-orphaned, and sig-release-x.y-all, none of which are used to -determine readiness to release. They are there either to support other -teams (such as the Release Engineering) or as "parking" for jobs that need to -be fixed. - -If you want to add a Blocking job, please ask to add them to the appropriate -Informing dashboard first. The release team can later decide if the test should -be moved to the Blocking dashboard. - -Additional documentation may be found in the [CI Signal Role Handbook](./release-team/role-handbooks/ci-signal/README.md). - -## Release-Blocking Criteria and Dashboard - -Jobs on the Blocking dashboard for a particular release should block that -release if they do not have at least three successive "green" runs at go/nogo -decision time. In some cases, the CI Signal team may authorize release with a -job still failing for thoroughly investigated reasons, but the general -expectation is "jobs red, do not release." - -As such, criteria for what jobs are on Blocking are rather stringent, in order -to prevent aborting a release unnecessarily. Note that not all current jobs -meet the below criteria completely due to technical debt. Blocking jobs must: - -- Have a documented reason for its inclusion in the Blocking suite - -- Provision clusters via open-source software instead of a hosted service -- Have the average of 75% percentile duration of all runs for a week finishing in 120 minutes or less -- Run at least every 3 hours -- Be able to pass 3 times in a row against the same commit -- Be Owned by a SIG, or other team, that is responsive to addressing failures, and whose alert email is configured in the job. -- Depend on accounts and resources owned by The Kubernetes Project through SIG K8s Infra, so the project has visibility into funding and management of resources -- Have passed 75% of all of its runs in a week, and have failed for no more than 10 runs in a row - -*In the case of failures, there must be an issue in kubernetes/kubernetes -detailing that there is at least one person from the owning SIG working to -resolve the issue. Said issue must be acknowledged within a short period -(i.e., a week) and resolved within a short period being acknowledged by the -owning SIG (i.e., a week as well).* - -The reasoning for the above time limits is that as we get to the end of a release cycle, -we are usually waiting on a handful of bug fixes and want to be certain that -the underlying bug is truly fixed. This means we prefer to see multiple test -results for the same commit. If we wait for three successful runs that are -scheduled every three hours, we wait for nine hours. This effectively gives -us the chance to make two changes/decisions in a 24 hour period. - -The thresholds given have some flexibility. We recognize that not every job may be -able to strictly adhere to all of these criteria all of the time. We also -recognize that metrics can be gamed. Thus we consider human review to be the -ultimate authority in the process to promote a demote a job as -Blocking, and metrics to be the triggering criteria for such review. -There is no shame in being demoted, and once the problems have been fixed, a -job can be promoted back. - -## Release-Informing Dashboard - - - -Jobs that are considered useful or necessary to inform whether a commit on -master is ready for release, but that clearly do not meet Blocking -criteria, may be placed on the Informing dashboard. These -are often jobs that are some combination of slow, flaky, infrequent, or -difficult to maintain. There are often good reasons for these jobs to not meet -Blocking criteria, such as requiring 12 hours for each run, or having -intrinsic race conditions. - -These jobs may still block the release, but because they require a lot of -manual, human interpretation, we choose to move them to a separate dashboard. - -CI Signal Team members will regularly check the Informing Dashboard for new -failures. Unexplained failures that are not flakes should be considered reason -to block the release until the failures are investigated and evaluated. -Unlike Blocking, however, jobs in Informing do not need to be green before -authorizing a release, they can be failing for known and "acceptable" reasons. -Such failures are "tolerated", meaning that they are not release-blocking, although -they need to be corrected after the release as time allows. - -The criteria for deciding whether a failure in informing is not release-blocking is -based on the following considerations: - -* Failure is due to a malfunction of the components that run a job and said - components are not part of Kubernetes - * For example, if a job is marked as failing because a test cluster could not be setup - but there are similar jobs that run the same tests, then the failing job - is tolerated. - * If a job fails at a stage that is not related to any Kubernetes e2e test, - (e.g., couldn't upload some logs to a remote source) then the job failure can be - tolerated given that the stage doesn't disrupt any e2e tests. - * If a test-infra-related component fails and there are no other factors - that could be responsible for the failure then the failure can be tolerated. -* Failure is well understood and is caused by the configuration of a test and said - configuration is not related to an official SLO - * For example, if a test polls for metrics more frequently than these are - updated and fails because of it, then the failure may be tolerated. -* Job is flaking too frequently and is marked as failing - * This should only be done when different tests are flaking. If the same set - of tests are flaking then we should fix them. -* A test failed and was subsequently removed, thus marking the job as failed. - -## Promoting or Demoting Jobs - -As described above, the thresholds and criteria given for jobs to be considered -blocking or informing are aspirational. The same applies to having a formal, -detailed process to promote or demote jobs. The key factor for such a process is -to provide enough time for discussions and consensus within the Kubernetes -community and all participating roles. - -The general process to promote or demote jobs follows these steps: - -1. Posting a note to the k-dev and kubernetes-sig-release mailing lists about - the overall plan, linking to a k/sig-release issue to leave room for - further discussions. - -1. In the issue, provide links to data or reasoning that prove the job should be - promoted or demoted. The goal is to make your case, and do the legwork for - your audience, so that the resulting test-infra PR can represent an auditable - decision. Examples for such data are: - - - links to issues or this doc if a job is seen as not meeting criteria - - links to testgrid dashboards or summaries that show the job's performance - - links to triage that show the job's performance - - rationale for why this job is (no longer) meaningful or necessary - -1. Ensure approval from the job OWNERS, SIG Release Tech Leads or Chairs as well - as: - - - the current Release Team Lead, CI Signal Lead and Release Manager if the - intention is to change a `sig-release-master-*` dashboard - - the Release Managers if the intention is to change a `sig-release-1.x-*` - dashboard - -1. Ensure that lazy consensus is reached in the issue by setting a deadline at - least 4 weeks after creation. If code freeze for a minor release is in place, - then the consensus deadline will automatically extend until the Kubernetes - `master` branch gets reopened. - -1. Open a kubernetes/test-infra PR that promotes or demotes the job to/from any - of the sig-release boards. +# Release Blocking Jobs and Criteria + +* [SIG-Release-Master-Blocking](https://testgrid.k8s.io/sig-release-master-blocking) +* [SIG-Release-Master-Informing](https://testgrid.k8s.io/sig-release-master-informing) + +SIG-release maintains two sets of jobs that decide whether the release is +healthy: Blocking and Informing. Each of these sets is instantiated for each +active release (beta or later), plus Master, so at any given time there will +be 8-10 dashboards in pairs. + +Below, the set of "sig-release-master-blocking" and "sig-release-X.Y-blocking" +dashboards will be referred to collectively as "Blocking", and the set of all +"-informing" dashboards as Informing. Where only specific dashboards are +required, they will be referred to by name or pattern. + +There are also some other release dashboards, such as sig-release-misc, +sig-release-orphaned, and sig-release-x.y-all, none of which are used to +determine readiness to release. They are there either to support other +teams (such as the Release Engineering) or as "parking" for jobs that need to +be fixed. + +If you want to add a Blocking job, please ask to add them to the appropriate +Informing dashboard first. The release team can later decide if the test should +be moved to the Blocking dashboard. + +Additional documentation may be found in the [CI Signal Role Handbook](./release-team/role-handbooks/ci-signal/README.md). + +## Release-Blocking Criteria and Dashboard + +Jobs on the Blocking dashboard for a particular release should block that +release if they do not have at least three successive "green" runs at go/nogo +decision time. In some cases, the CI Signal team may authorize release with a +job still failing for thoroughly investigated reasons, but the general +expectation is "jobs red, do not release." + +As such, criteria for what jobs are on Blocking are rather stringent, in order +to prevent aborting a release unnecessarily. Note that not all current jobs +meet the below criteria completely due to technical debt. Blocking jobs must: + +- Have a documented reason for its inclusion in the Blocking suite + +- Provision clusters via open-source software instead of a hosted service +- Have the average of 75% percentile duration of all runs for a week finishing in 120 minutes or less +- Run at least every 3 hours +- Be able to pass 3 times in a row against the same commit +- Be Owned by a SIG, or other team, that is responsive to addressing failures, and whose alert email is configured in the job. +- Depend on accounts and resources owned by The Kubernetes Project through SIG K8s Infra, so the project has visibility into funding and management of resources +- Have passed 75% of all of its runs in a week, and have failed for no more than 10 runs in a row + +*In the case of failures, there must be an issue in kubernetes/kubernetes +detailing that there is at least one person from the owning SIG working to +resolve the issue. Said issue must be acknowledged within a short period +(i.e., a week) and resolved within a short period being acknowledged by the +owning SIG (i.e., a week as well).* + +The reasoning for the above time limits is that as we get to the end of a release cycle, +we are usually waiting on a handful of bug fixes and want to be certain that +the underlying bug is truly fixed. This means we prefer to see multiple test +results for the same commit. If we wait for three successful runs that are +scheduled every three hours, we wait for nine hours. This effectively gives +us the chance to make two changes/decisions in a 24 hour period. + +The thresholds given have some flexibility. We recognize that not every job may be +able to strictly adhere to all of these criteria all of the time. We also +recognize that metrics can be gamed. Thus we consider human review to be the +ultimate authority in the process to promote a demote a job as +Blocking, and metrics to be the triggering criteria for such review. +There is no shame in being demoted, and once the problems have been fixed, a +job can be promoted back. + +## Release-Informing Dashboard + + + +Jobs that are considered useful or necessary to inform whether a commit on +master is ready for release, but that clearly do not meet Blocking +criteria, may be placed on the Informing dashboard. These +are often jobs that are some combination of slow, flaky, infrequent, or +difficult to maintain. There are often good reasons for these jobs to not meet +Blocking criteria, such as requiring 12 hours for each run, or having +intrinsic race conditions. + +These jobs may still block the release, but because they require a lot of +manual, human interpretation, we choose to move them to a separate dashboard. + +CI Signal Team members will regularly check the Informing Dashboard for new +failures. Unexplained failures that are not flakes should be considered reason +to block the release until the failures are investigated and evaluated. +Unlike Blocking, however, jobs in Informing do not need to be green before +authorizing a release, they can be failing for known and "acceptable" reasons. +Such failures are "tolerated", meaning that they are not release-blocking, although +they need to be corrected after the release as time allows. + +The criteria for deciding whether a failure in informing is not release-blocking is +based on the following considerations: + +* Failure is due to a malfunction of the components that run a job and said + components are not part of Kubernetes + * For example, if a job is marked as failing because a test cluster could not be setup + but there are similar jobs that run the same tests, then the failing job + is tolerated. + * If a job fails at a stage that is not related to any Kubernetes e2e test, + (e.g., couldn't upload some logs to a remote source) then the job failure can be + tolerated given that the stage doesn't disrupt any e2e tests. + * If a test-infra-related component fails and there are no other factors + that could be responsible for the failure then the failure can be tolerated. +* Failure is well understood and is caused by the configuration of a test and said + configuration is not related to an official SLO + * For example, if a test polls for metrics more frequently than these are + updated and fails because of it, then the failure may be tolerated. +* Job is flaking too frequently and is marked as failing + * This should only be done when different tests are flaking. If the same set + of tests are flaking then we should fix them. +* A test failed and was subsequently removed, thus marking the job as failed. + +## Promoting or Demoting Jobs + +As described above, the thresholds and criteria given for jobs to be considered +blocking or informing are aspirational. The same applies to having a formal, +detailed process to promote or demote jobs. The key factor for such a process is +to provide enough time for discussions and consensus within the Kubernetes +community and all participating roles. + +The general process to promote or demote jobs follows these steps: + +1. Posting a note to the k-dev and kubernetes-sig-release mailing lists about + the overall plan, linking to a k/sig-release issue to leave room for + further discussions. + +1. In the issue, provide links to data or reasoning that prove the job should be + promoted or demoted. The goal is to make your case, and do the legwork for + your audience, so that the resulting test-infra PR can represent an auditable + decision. Examples for such data are: + + - links to issues or this doc if a job is seen as not meeting criteria + - links to testgrid dashboards or summaries that show the job's performance + - links to triage that show the job's performance + - rationale for why this job is (no longer) meaningful or necessary + +1. Ensure approval from the job OWNERS, SIG Release Tech Leads or Chairs as well + as: + + - the current Release Team Lead, CI Signal Lead and Release Manager if the + intention is to change a `sig-release-master-*` dashboard + - the Release Managers if the intention is to change a `sig-release-1.x-*` + dashboard + +1. Ensure that lazy consensus is reached in the issue by setting a deadline at + least 4 weeks after creation. If code freeze for a minor release is in place, + then the consensus deadline will automatically extend until the Kubernetes + `master` branch gets reopened. + +1. Open a kubernetes/test-infra PR that promotes or demotes the job to/from any + of the sig-release boards. diff --git a/release-engineering/OWNERS b/release-engineering/OWNERS index 2d292509feb..c5345629efc 100644 --- a/release-engineering/OWNERS +++ b/release-engineering/OWNERS @@ -1,9 +1,9 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -approvers: - - release-engineering-approvers -reviewers: - - release-engineering-approvers - - release-engineering-reviewers -labels: - - area/release-eng +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - release-engineering-approvers +reviewers: + - release-engineering-approvers + - release-engineering-reviewers +labels: + - area/release-eng diff --git a/release-engineering/README.md b/release-engineering/README.md index 08af979c0b3..19ba1490ea8 100644 --- a/release-engineering/README.md +++ b/release-engineering/README.md @@ -1,210 +1,210 @@ -# Release Engineering - -## Table of Contents -- [Communication Channels, and How We Use Them](#communication-channels-and-how-we-use-them) - - [Slack](#slack) - - [Mailing List](#mailing-list) - - [GitHub Project Board](#github-project-board) - - [Meetings](#meetings) - - [Instructional Meetings and Using Zoom](#instructional-meetings-and-using-zoom) -- [How We Discuss Work](#how-we-discuss-work) - - [Communicating Decisions](#communicating-decisions) - - [Communicating Decisions on Pull Requests](#communicating-decisions-on-pull-requests) - - [Communicating Your Availability: Quick Tips](#communicating-your-availability-quick-tips) - - [Handing Over Work That You Can't Finish: Steps](#handing-over-work-that-you-cant-finish-steps) - - [Tracking Progress](#tracking-progress) -- [Roles, Responsibilities, and Notes for Newcomers](#roles-responsibilities-and-notes-for-newcomers) -- [Schedule of Recurring Work](#schedule-of-recurring-work) - - [Weekly](#weekly) - - [Bimonthly](#bimonthly) - - [Monthly](#monthly) - - [Ongoing](#ongoing) - - [Ad Hoc/As Needed](#ad-hocas-needed) - -## Communication Channels, and How We Use Them - -- [Slack](https://kubernetes.slack.com/messages/release-management) -- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-release) -- [Meeting agenda and notes](https://bit.ly/k8s-releng-meeting) - -### Slack - -- We strongly encourage you to raise questions about our work in the [#release-management](https://kubernetes.slack.com/messages/release-management) channel and *not* via direct messages. This enables us to avoid duplicating conversations, and drives transparency and knowledge exchange. -- To prompt a discussion thread, we post a question or issue in brief (1-3 lines) and use the spool-of-thread emoticon to draw attention to it. -- To post several discussion topics or questions at one time, please post them individually in the channel. This helps us to keep discussion focused. - -### Mailing List - -We use the [kubernetes-sig-release@ mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-release). Feel free to use it if you have a topic or question that, due to its complexity or need for brainstorming discussion, would be difficult to resolve over Slack or GitHub. - -### Roadmap and Vision - -Please see the SIG Release Roadmap and Vision document [here](https://github.com/kubernetes/sig-release/blob/master/roadmap.md). This is a great place to look if you're a newcomer looking to help out. - -### Meetings - -Release Engineering meetings take place every other Tuesday at 7:30am PT / 14:30 UTC and last 60 minutes. - -- We set the core meeting agenda by the previous Friday, leaving time for open discussion/spontaneous topics. Topics come from group members. -- Meetings are recorded and follow the Kubernetes Code of Conduct. -- A SIG Release Chair facilitates. -- A volunteer takes notes to create a decision log and call out questions and Action Items (AIs). - - Notetakers shouldn’t feel obligated to transcribe discussions; we record meetings to eliminate this need. -- Meetings cover critical Release Engineering deliverables, policies, and processes. -- We aim to have at least three different people present topics per meeting, to drive inclusivity. - -If you’re driving a discussion topic, think about: -- What do you need from the group? -- How can others in the group help you? -- How much discussion time would you like? Noting this in the agenda helps us streamline meetings. - -If you’d like to present topics during meetings but aren’t comfortable speaking up, please let us know and we’ll help ensure your ideas get discussed. - -#### Instructional Meetings and Using Zoom - -Sometimes group members hold small meetings to exchange knowledge. If you want to hold an instructional meeting that will be useful for the future, please ask the Release Managers for the SIG Release Zoom account credentials and record the meeting. - -## How We Discuss Work - -We’re biased toward asynchronous communication, but use our bimonthly meetings, Zoom calls, and Slack whenever questions arise that require discussion. - -For discussions related to work in progress, team priorities, policies and practices, and complex implementations: -- We recommend starting a discussion via meetings and GitHub issues. - - The mailing list is also useful, but please note that many people receive a lot of email so they might not see your message right away. -- Try to keep your initial announcements and ideas pitches brief: messages that are under 2-3 sentences generate more and quicker responses than lengthy messages. -- If you’re not sure whether a topic merits discussion, first ping @leads on the #release-management Slack channel for guidance. -- Add your items/questions to the Release Engineering meeting agenda as early as possible. -- File a GitHub issue describing your idea and post it in the #release-management channel—this is an efficient way to provide context and spark discussion. -- If you have a small idea that you’re confident about, go forward with it—we support entrepreneurial spirit. Please communicate about your effort via Slack early on so that you don’t duplicate efforts or get blocked/block others. -- When you don’t get a response in the #release-management channel, please try again. People are busy and might have missed it. - -### Communicating Decisions - -This section remains under development while we work on creating a stakeholder communications matrix. Generally speaking, we use these mechanisms: - -- Release Engineering agenda notes -- PRs, and amendment PRs on top of prior merged PRs - -### Communicating Decisions on Pull Requests - -We follow this flow: -- Reviewer gives `/lgtm`. -- Approver gives `/approve`. - -If you’re making code changes and unsure about something, open the PR with a hold (`do-not-merge/hold`). This gives us time for discussion and collecting input from critical stakeholders. - -We do not bypass the “at least one reviewer” rule, so please wait for a review. - -### Communicating Your Availability: Quick Tips - -- We don’t require people to work on nights and weekends. However, if they are the times you want to dedicate to the project, feel free to do so. It's also important to note that for some contributors the weekend starts on a Thursday, and that meetings scheduled on Friday are an inconvenience. - - We don't cut releases on Mondays precisely to preserve everyone’s weekends. -- Communicate honestly and openly about what you can and can’t do, and please ask for help. -- If you ever feel workload-related pressure, please reach out to the SIG Release Chairs, Tech Leads, and/or Release Managers. -- When you're not sure what to work on, ping/@ the leads in the #release-management Slack channel. Doing this can inform others with the same question. - -### Handing Over Work That You Can't Finish: Steps - -- First, bring it up in a Slack channel post that you can’t finish something. -- If no one responds within 2-3 days, cc @leads to raise awareness. -- Once someone claims the issue from you, unassign yourself from the GitHub issue. -- If the matter is not urgent, you can raise it at the Release Engineering. This tends to be successful and increases visibility around the issue. -- Please do not reassign work to others without some sort of communication first. - -### Tracking Progress - -- We use project boards linked in the [Roadmap and Vision document](https://github.com/kubernetes/sig-release/blob/master/roadmap.md) and try to review them during the Release Engineering meeting. -- We organize our work into sub-themes based on urgency and impact, and identify drivers of those topics. -- We call out and celebrate achievements. Some suggested communication paths for amplifying: - - **First order**: role promotions, finishing a PR, etc.: - - Mention in Release Engineering meeting; also in Release Team meeting, if it affects the release - - Post in #release-management Slack channel - - **Bigger order**: completing a milestone, finishing a major docs effort, other “headline news": - - Post in #release-management and #sig-release Slack channels - - Mention in Release Engineering and SIG Release meetings; also in Release Team meeting, if it affects the release - - Post about individual and small-team efforts in the #shoutouts Slack channel - - **Biggest order**: forming a new subproject, shipping a release: - - Mentions in Release Engineering, SIG Release and Release Team meetings - - Post in #sig-release and #release-management Slack channels - - Post about individual and small-team efforts in the #shoutouts Slack channel - - Demo or mention at Monthly Community Meeting - -## Roles, Responsibilities, and Notes for Newcomers - -[This page](https://github.com/kubernetes/sig-release/blob/master/release-managers.md) provides details about the different roles in Release Engineering, along with requirements for moving up the "career ladder." - -### For Newcomers -At Release Engineering meetings, we like to give newcomers a happy and warm welcome. We also give space for newcomers to introduce themselves and their motivations/interests for joining. However, if you prefer not to speak during your first meeting we'll respect that. - -As of Autumn 2020 we're developing a Buddy Program to improve our onboarding. Here's how it will work: - -- Release Managers follow up with newcomers to go over the details of this page and empower them to ask questions about our work and processes. -- Newcomers can request a Buddy (a Release Manager), who will also be shadowed/supported by up to two Release Manager Associates. -- Buddies will come from the same general time zone area and, as often as possible, share the same language. -- Work-related conversations should take place in the Slack channel as much as possible to help other newcomers onboard. - -More information about the Buddy Program is available [on this page](https://github.com/kubernetes/sig-release/blob/master/release-managers.md). - -## Schedule of Recurring Work - -These topics recur for release engineering during every release cycle. To keep the team’s workflow more manageable, it’s advisable to account for this work as part of the time/planning budget: - -### Weekly - -- Cherry pick triage and approval -- Provide status updates at Release Team meetings - -### Bimonthly - -- k/release updates - - Go dependencies / go.mod updates - - We don’t deliver k/release binaries to users, but toolchain artifacts may leak into the actual -Kubernetes project delivered artifacts—making it important for these dependencies to be updated from a security perspective. - - Push new semver tags to demarcate a release or preferred consumable instance of the release tooling. - -### Monthly - -- Patch releases: 1.Y.Z, 1.Y.(Z-1), ...1.Y.(Z-...n) - - A week before each patch deadline, notify the community of the pending deadline. - - A week before each patch deadline, generate an updated status report on all cherry picks and share it. - - Cut the three most recent minor versions. - - Communicate to the community ahead of the final release from a release branch, to ensure -that any final cherry-pick content is merged ahead of that last release. - - Deprovision CI for the oldest release branch after its last release. - - Golang versions in Kubernetes - - Document the different triage types/priorities and a triage process: - - Golang 1.X release - - Golang 1.X.Y release - - Golang 1.X.Y release with CVE with no or minor Kubernetes impact (what is the maximum CVSS?) - - Golang 1.X.Y release with CVE with major Kubernetes impact (what is the mininum CVSS?) - - Document the different triage per repo/image. - - kubernetes/kubernetes - - UNLESS there are CVEs (then we must address) - - Every update requires an update to bazel rules_go - - kubernetes/release - - images/k8s-cloud-builder - - images/build/cross (kube-cross) - - images/build/go-runner (arguably part of the Golang version updates above) - - kubernetes/test-infra - - kubekins - - Krte - -### Ongoing - -- Cut prereleases (Alpha, Beta, Release Candidate) for the minor release in development. - -### Ad Hoc/As Needed - -- Update Golang versions in Kubernetes. -- Update core Kubernetes base images, e.g.: - - CRI tools - - CNI plugins - - OS base images (example: debian-base) - - distroless-iptables - - debian-hyperkube-base - - Publishing bot updates - - The bot runs on a schedule but sometimes breaks, requiring ad hoc fixes. - - Curation of the [base images exception list](https://github.com/kubernetes/sig-release/blob/master/release-engineering/baseimage-exception-list.md) (most of this list is complete; more info [here](https://github.com/kubernetes/enhancements/issues/1729)). - - Maintaining instructions on how to consume all above official artifacts, plus variations for how -consumers can test pre-release Alpha/Beta/RC artifacts - - push-build.sh maintenance, until it goes away +# Release Engineering + +## Table of Contents +- [Communication Channels, and How We Use Them](#communication-channels-and-how-we-use-them) + - [Slack](#slack) + - [Mailing List](#mailing-list) + - [GitHub Project Board](#github-project-board) + - [Meetings](#meetings) + - [Instructional Meetings and Using Zoom](#instructional-meetings-and-using-zoom) +- [How We Discuss Work](#how-we-discuss-work) + - [Communicating Decisions](#communicating-decisions) + - [Communicating Decisions on Pull Requests](#communicating-decisions-on-pull-requests) + - [Communicating Your Availability: Quick Tips](#communicating-your-availability-quick-tips) + - [Handing Over Work That You Can't Finish: Steps](#handing-over-work-that-you-cant-finish-steps) + - [Tracking Progress](#tracking-progress) +- [Roles, Responsibilities, and Notes for Newcomers](#roles-responsibilities-and-notes-for-newcomers) +- [Schedule of Recurring Work](#schedule-of-recurring-work) + - [Weekly](#weekly) + - [Bimonthly](#bimonthly) + - [Monthly](#monthly) + - [Ongoing](#ongoing) + - [Ad Hoc/As Needed](#ad-hocas-needed) + +## Communication Channels, and How We Use Them + +- [Slack](https://kubernetes.slack.com/messages/release-management) +- [Mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-release) +- [Meeting agenda and notes](https://bit.ly/k8s-releng-meeting) + +### Slack + +- We strongly encourage you to raise questions about our work in the [#release-management](https://kubernetes.slack.com/messages/release-management) channel and *not* via direct messages. This enables us to avoid duplicating conversations, and drives transparency and knowledge exchange. +- To prompt a discussion thread, we post a question or issue in brief (1-3 lines) and use the spool-of-thread emoticon to draw attention to it. +- To post several discussion topics or questions at one time, please post them individually in the channel. This helps us to keep discussion focused. + +### Mailing List + +We use the [kubernetes-sig-release@ mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-release). Feel free to use it if you have a topic or question that, due to its complexity or need for brainstorming discussion, would be difficult to resolve over Slack or GitHub. + +### Roadmap and Vision + +Please see the SIG Release Roadmap and Vision document [here](https://github.com/kubernetes/sig-release/blob/master/roadmap.md). This is a great place to look if you're a newcomer looking to help out. + +### Meetings + +Release Engineering meetings take place every other Tuesday at 7:30am PT / 14:30 UTC and last 60 minutes. + +- We set the core meeting agenda by the previous Friday, leaving time for open discussion/spontaneous topics. Topics come from group members. +- Meetings are recorded and follow the Kubernetes Code of Conduct. +- A SIG Release Chair facilitates. +- A volunteer takes notes to create a decision log and call out questions and Action Items (AIs). + - Notetakers shouldn’t feel obligated to transcribe discussions; we record meetings to eliminate this need. +- Meetings cover critical Release Engineering deliverables, policies, and processes. +- We aim to have at least three different people present topics per meeting, to drive inclusivity. + +If you’re driving a discussion topic, think about: +- What do you need from the group? +- How can others in the group help you? +- How much discussion time would you like? Noting this in the agenda helps us streamline meetings. + +If you’d like to present topics during meetings but aren’t comfortable speaking up, please let us know and we’ll help ensure your ideas get discussed. + +#### Instructional Meetings and Using Zoom + +Sometimes group members hold small meetings to exchange knowledge. If you want to hold an instructional meeting that will be useful for the future, please ask the Release Managers for the SIG Release Zoom account credentials and record the meeting. + +## How We Discuss Work + +We’re biased toward asynchronous communication, but use our bimonthly meetings, Zoom calls, and Slack whenever questions arise that require discussion. + +For discussions related to work in progress, team priorities, policies and practices, and complex implementations: +- We recommend starting a discussion via meetings and GitHub issues. + - The mailing list is also useful, but please note that many people receive a lot of email so they might not see your message right away. +- Try to keep your initial announcements and ideas pitches brief: messages that are under 2-3 sentences generate more and quicker responses than lengthy messages. +- If you’re not sure whether a topic merits discussion, first ping @leads on the #release-management Slack channel for guidance. +- Add your items/questions to the Release Engineering meeting agenda as early as possible. +- File a GitHub issue describing your idea and post it in the #release-management channel—this is an efficient way to provide context and spark discussion. +- If you have a small idea that you’re confident about, go forward with it—we support entrepreneurial spirit. Please communicate about your effort via Slack early on so that you don’t duplicate efforts or get blocked/block others. +- When you don’t get a response in the #release-management channel, please try again. People are busy and might have missed it. + +### Communicating Decisions + +This section remains under development while we work on creating a stakeholder communications matrix. Generally speaking, we use these mechanisms: + +- Release Engineering agenda notes +- PRs, and amendment PRs on top of prior merged PRs + +### Communicating Decisions on Pull Requests + +We follow this flow: +- Reviewer gives `/lgtm`. +- Approver gives `/approve`. + +If you’re making code changes and unsure about something, open the PR with a hold (`do-not-merge/hold`). This gives us time for discussion and collecting input from critical stakeholders. + +We do not bypass the “at least one reviewer” rule, so please wait for a review. + +### Communicating Your Availability: Quick Tips + +- We don’t require people to work on nights and weekends. However, if they are the times you want to dedicate to the project, feel free to do so. It's also important to note that for some contributors the weekend starts on a Thursday, and that meetings scheduled on Friday are an inconvenience. + - We don't cut releases on Mondays precisely to preserve everyone’s weekends. +- Communicate honestly and openly about what you can and can’t do, and please ask for help. +- If you ever feel workload-related pressure, please reach out to the SIG Release Chairs, Tech Leads, and/or Release Managers. +- When you're not sure what to work on, ping/@ the leads in the #release-management Slack channel. Doing this can inform others with the same question. + +### Handing Over Work That You Can't Finish: Steps + +- First, bring it up in a Slack channel post that you can’t finish something. +- If no one responds within 2-3 days, cc @leads to raise awareness. +- Once someone claims the issue from you, unassign yourself from the GitHub issue. +- If the matter is not urgent, you can raise it at the Release Engineering. This tends to be successful and increases visibility around the issue. +- Please do not reassign work to others without some sort of communication first. + +### Tracking Progress + +- We use project boards linked in the [Roadmap and Vision document](https://github.com/kubernetes/sig-release/blob/master/roadmap.md) and try to review them during the Release Engineering meeting. +- We organize our work into sub-themes based on urgency and impact, and identify drivers of those topics. +- We call out and celebrate achievements. Some suggested communication paths for amplifying: + - **First order**: role promotions, finishing a PR, etc.: + - Mention in Release Engineering meeting; also in Release Team meeting, if it affects the release + - Post in #release-management Slack channel + - **Bigger order**: completing a milestone, finishing a major docs effort, other “headline news": + - Post in #release-management and #sig-release Slack channels + - Mention in Release Engineering and SIG Release meetings; also in Release Team meeting, if it affects the release + - Post about individual and small-team efforts in the #shoutouts Slack channel + - **Biggest order**: forming a new subproject, shipping a release: + - Mentions in Release Engineering, SIG Release and Release Team meetings + - Post in #sig-release and #release-management Slack channels + - Post about individual and small-team efforts in the #shoutouts Slack channel + - Demo or mention at Monthly Community Meeting + +## Roles, Responsibilities, and Notes for Newcomers + +[This page](https://github.com/kubernetes/sig-release/blob/master/release-managers.md) provides details about the different roles in Release Engineering, along with requirements for moving up the "career ladder." + +### For Newcomers +At Release Engineering meetings, we like to give newcomers a happy and warm welcome. We also give space for newcomers to introduce themselves and their motivations/interests for joining. However, if you prefer not to speak during your first meeting we'll respect that. + +As of Autumn 2020 we're developing a Buddy Program to improve our onboarding. Here's how it will work: + +- Release Managers follow up with newcomers to go over the details of this page and empower them to ask questions about our work and processes. +- Newcomers can request a Buddy (a Release Manager), who will also be shadowed/supported by up to two Release Manager Associates. +- Buddies will come from the same general time zone area and, as often as possible, share the same language. +- Work-related conversations should take place in the Slack channel as much as possible to help other newcomers onboard. + +More information about the Buddy Program is available [on this page](https://github.com/kubernetes/sig-release/blob/master/release-managers.md). + +## Schedule of Recurring Work + +These topics recur for release engineering during every release cycle. To keep the team’s workflow more manageable, it’s advisable to account for this work as part of the time/planning budget: + +### Weekly + +- Cherry pick triage and approval +- Provide status updates at Release Team meetings + +### Bimonthly + +- k/release updates + - Go dependencies / go.mod updates + - We don’t deliver k/release binaries to users, but toolchain artifacts may leak into the actual +Kubernetes project delivered artifacts—making it important for these dependencies to be updated from a security perspective. + - Push new semver tags to demarcate a release or preferred consumable instance of the release tooling. + +### Monthly + +- Patch releases: 1.Y.Z, 1.Y.(Z-1), ...1.Y.(Z-...n) + - A week before each patch deadline, notify the community of the pending deadline. + - A week before each patch deadline, generate an updated status report on all cherry picks and share it. + - Cut the three most recent minor versions. + - Communicate to the community ahead of the final release from a release branch, to ensure +that any final cherry-pick content is merged ahead of that last release. + - Deprovision CI for the oldest release branch after its last release. + - Golang versions in Kubernetes + - Document the different triage types/priorities and a triage process: + - Golang 1.X release + - Golang 1.X.Y release + - Golang 1.X.Y release with CVE with no or minor Kubernetes impact (what is the maximum CVSS?) + - Golang 1.X.Y release with CVE with major Kubernetes impact (what is the mininum CVSS?) + - Document the different triage per repo/image. + - kubernetes/kubernetes + - UNLESS there are CVEs (then we must address) + - Every update requires an update to bazel rules_go + - kubernetes/release + - images/k8s-cloud-builder + - images/build/cross (kube-cross) + - images/build/go-runner (arguably part of the Golang version updates above) + - kubernetes/test-infra + - kubekins + - Krte + +### Ongoing + +- Cut prereleases (Alpha, Beta, Release Candidate) for the minor release in development. + +### Ad Hoc/As Needed + +- Update Golang versions in Kubernetes. +- Update core Kubernetes base images, e.g.: + - CRI tools + - CNI plugins + - OS base images (example: debian-base) + - distroless-iptables + - debian-hyperkube-base + - Publishing bot updates + - The bot runs on a schedule but sometimes breaks, requiring ad hoc fixes. + - Curation of the [base images exception list](https://github.com/kubernetes/sig-release/blob/master/release-engineering/baseimage-exception-list.md) (most of this list is complete; more info [here](https://github.com/kubernetes/enhancements/issues/1729)). + - Maintaining instructions on how to consume all above official artifacts, plus variations for how +consumers can test pre-release Alpha/Beta/RC artifacts + - push-build.sh maintenance, until it goes away diff --git a/release-engineering/artifacts.md b/release-engineering/artifacts.md index c53dcce2f93..cbc4e71c044 100644 --- a/release-engineering/artifacts.md +++ b/release-engineering/artifacts.md @@ -1,1405 +1,1405 @@ -## Container Images - -| | 386 | amd64 | arm64 | ppc64le | s390x | -| ----------------------- | :-: | :---: | :---: | :-----: | :---: | -| conformance | ✅ | ✅ | ✅ | ✅ | ✅ | -| kube-apiserver | ✅ | ✅ | ✅ | ✅ | ✅ | -| kube-controller-manager | ✅ | ✅ | ✅ | ✅ | ✅ | -| kube-proxy | ✅ | ✅ | ✅ | ✅ | ✅ | -| kube-scheduler | ✅ | ✅ | ✅ | ✅ | ✅ | -| kubectl | ✅ | ✅ | ✅ | ✅ | ✅ | - -## Storage - -### Binaries - -| | darwin/amd64 | linux/386 | linux/amd64 | linux/arm64 | linux/ppc64le | linux/s390x | windows/386 | windows/amd64 | -| ----------------------- | ------------------------------------- | ------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | --------------------------- | --------------------------- | -| apiextensions-apiserver | | | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | | | -| kube-apiserver | | | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | | | -| kube-controller-manager | | | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | | | -| kube-proxy | | | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | | exe
sha256
sha512 | -| kube-scheduler | | | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | | | -| kubeadm | | | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | | exe
sha256
sha512 | -| kubectl | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | exe
sha256
sha512 | exe
sha256
sha512 | -| kubelet | | | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | | exe
sha256
sha512 | -| mounter | | | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | | | - -### Extra files (for GCE) - -There are also corresponding `*.sha256` and `*.sha512` for every file below - -| File | -| --------------------------- | -| configure.sh | -| master.yaml | -| node.yaml | -| shutdown.sh | -| windows/common.psm1 | -| windows/configure.ps1 | -| windows/install-ssh.psm1 | -| windows/k8s-node-setup.psm1 | -| windows/user-profile.psm1 | - -### Tar archives - -There are also corresponding `*.sha256` and `*.sha512` for every file below - -| File | darwin/amd64 | linux/386 | linux/amd64 | linux/arm64 | linux/ppc64le | linux/s390x | windows/386 | windows/amd64 | portable | -| ------------------------------------------ | :----------: | :-------: | :---------: | :---------: | :-----------: | :---------: | :---------: | :-----------: | :------: | -| kubernetes-client-**[system-arch]**.tar.gz | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | -| kubernetes-node-**[system-arch]**.tar.gz | | | ✅ | ✅ | ✅ | ✅ | | ✅ | | -| kubernetes-server-**[system-arch]**.tar.gz | | | ✅ | ✅ | ✅ | ✅ | | | | -| kubernetes-test-**[system-arch]**.tar.gz | ✅ | | ✅ | ✅ | ✅ | ✅ | | ✅ | ✅ | -| kubernetes-manifests.tar.gz | | | | | | | | | | -| kubernetes-test.tar.gz | | | | | | | | | | -| kubernetes-src.tar.gz | | | | | | | | | | -| kubernetes.tar.gz | | | | | | | | | | - -### Other (uncategorized) files - -| File | -| ----------------------- | -| release/latest-1.16.txt | -| release/latest-1.txt | -| release/latest.txt | - -Files in directory: **archive** - -Comment: It looks like in the directory: **archive** we can find: - -- copy of **anago** (script used for building artifacts) -- shallow copy of kubernetes repository - -Staged files -It looks like all staged files were copied to release directory, but please be aware there was no effort taken to compare them. - -## Packages - -### RPMs - -| | aarch64 | ppc64le | s390x | x86_64 | -| ----------------------------------------------- | :-----: | :-----: | :---: | :----: | -| cri-tools-**[k8s-version]**.**[arch]**.rpm | ✅ | ✅ | ✅ | ✅ | -| kubectl-**[k8s-version]**.**[arch]**.rpm | ✅ | ✅ | ✅ | ✅ | -| kubernetes-cni-**[cni-version]**.**[arch]**.rpm | ✅ | ✅ | ✅ | ✅ | -| kubeadm-**[k8s-version]**.**[arch]**.rpm | ✅ | ✅ | ✅ | ✅ | -| kubelet-**[k8s-version]**.**[arch]**.rpm | ✅ | ✅ | ✅ | ✅ | -| repodata/**[checksum]**-primary.sqlite.bz2 | ✅ | ✅ | ✅ | ✅ | -| repodata/**[checksum]**-filelists.sqlite.bz2 | ✅ | ✅ | ✅ | ✅ | -| repodata/**[checksum]**-primary.xml.gz | ✅ | ✅ | ✅ | ✅ | -| repodata/**[checksum]**-other.sqlite.bz2 | ✅ | ✅ | ✅ | ✅ | -| repodata/**[checksum]**-other.xml.gz | ✅ | ✅ | ✅ | ✅ | -| repodata/**[checksum]**-filelists.xml.gz | ✅ | ✅ | ✅ | ✅ | -| repodata/repomd.xml | ✅ | ✅ | ✅ | ✅ | - -### Debs - -| File | amd64 | arm64 | ppc64el | s390x | -| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| cri-tools**\*[cri-tools-version]\*\*\***[arch]\*\*.deb | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | -| kubeadm**\*[k8s-version]\*\*\***[arch]\*\*.deb | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | -| kubectl**\*[k8s-version]\*\*\***[arch]\*\*.deb | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | -| kubelet**\*[k8s-version]\*\*\***[arch]\*\*.deb | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | -| kubernetes-cni**\*[k8s-cni-version]\*\*\***[arch]\*\*.deb | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | - -### Contents of tar archives - -All contents listed below are artifacts of the [v1.20.0 release](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#v1200). - -##### Content of `kubernetes-client-[system-arch].tar.gz` on example of `kubernetes-client-linux-386.tar.gz` (directories removed from list): - -*Summary* - -- Binary for `kubectl` - -
Expand Contents -

- -``` -➜ $ tar -ztvf kubernetes-client-linux-386.tar.gz --rwxr-xr-x root/root 35266560 2020-12-08 12:10 kubernetes/client/bin/kubectl -``` - -

-
- -##### Content of `kubernetes-node-[system-arch].tar.gz` on example of `kubernetes-node-linux-amd64.tar.gz` (directories removed from list): - -*Summary* - -- Kubernetes source tarball -- Binaries for `kubectl` / `kubeadm` / `kube-proxy` / `kubelet` -- [LICENSES](https://github.com/kubernetes/kubernetes/tree/master/LICENSES) - -
Expand Contents -

- -``` -➜ $ tar -ztvf kubernetes-node-linux-amd64.tar.gz --rw-r--r-- root/root 35790270 2020-12-08 12:11 kubernetes/kubernetes-src.tar.gz --rwxr-xr-x root/root 40230912 2020-12-08 12:11 kubernetes/node/bin/kubectl --rwxr-xr-x root/root 39219200 2020-12-08 12:11 kubernetes/node/bin/kubeadm --rwxr-xr-x root/root 39485440 2020-12-08 12:11 kubernetes/node/bin/kube-proxy --rwxr-xr-x root/root 113974120 2020-12-08 12:11 kubernetes/node/bin/kubelet --rw-r--r-- root/root 11596 2020-12-08 12:11 kubernetes/LICENSES/LICENSE --rw-r--r-- root/root 78 2020-12-08 12:11 kubernetes/LICENSES/OWNERS --rw-r--r-- root/root 11492 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.mongodb.org/mongo-driver/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:11 kubernetes/LICENSES/vendor/google.golang.org/appengine/LICENSE --rw-r--r-- root/root 11483 2020-12-08 12:11 kubernetes/LICENSES/vendor/google.golang.org/grpc/LICENSE --rw-r--r-- root/root 1612 2020-12-08 12:11 kubernetes/LICENSES/vendor/google.golang.org/protobuf/LICENSE --rw-r--r-- root/root 1598 2020-12-08 12:11 kubernetes/LICENSES/vendor/google.golang.org/api/LICENSE --rw-r--r-- root/root 11491 2020-12-08 12:11 kubernetes/LICENSES/vendor/google.golang.org/genproto/LICENSE --rw-r--r-- root/root 1228 2020-12-08 12:11 kubernetes/LICENSES/vendor/bitbucket.org/bertimus9/systemstat/LICENSE --rw-r--r-- root/root 11469 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.etcd.io/etcd/LICENSE --rw-r--r-- root/root 1191 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.etcd.io/bbolt/LICENSE --rw-r--r-- root/root 1598 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/oauth2/LICENSE --rw-r--r-- root/root 1592 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/net/LICENSE --rw-r--r-- root/root 1594 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/text/LICENSE --rw-r--r-- root/root 1592 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/sys/LICENSE --rw-r--r-- root/root 1596 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/tools/LICENSE --rw-r--r-- root/root 1594 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/time/LICENSE --rw-r--r-- root/root 1598 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/crypto/LICENSE --rw-r--r-- root/root 1600 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/xerrors/LICENSE --rw-r--r-- root/root 1592 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/mod/LICENSE --rw-r--r-- root/root 1594 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/sync/LICENSE --rw-r--r-- root/root 11477 2020-12-08 12:11 kubernetes/LICENSES/vendor/cloud.google.com/go/LICENSE --rw-r--r-- root/root 1187 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.uber.org/zap/LICENSE --rw-r--r-- root/root 1192 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.uber.org/multierr/LICENSE --rw-r--r-- root/root 1188 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.uber.org/atomic/LICENSE --rw-r--r-- root/root 2670 2020-12-08 12:11 kubernetes/LICENSES/vendor/sigs.k8s.io/yaml/LICENSE --rw-r--r-- root/root 11480 2020-12-08 12:11 kubernetes/LICENSES/vendor/sigs.k8s.io/kustomize/LICENSE --rw-r--r-- root/root 11548 2020-12-08 12:11 kubernetes/LICENSES/vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/LICENSE --rw-r--r-- root/root 11510 2020-12-08 12:11 kubernetes/LICENSES/vendor/sigs.k8s.io/structured-merge-diff/v4/LICENSE --rw-r--r-- root/root 11470 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.opencensus.io/LICENSE --rw-r--r-- root/root 1647 2020-12-08 12:11 kubernetes/LICENSES/vendor/gonum.org/v1/gonum/LICENSE --rw-r--r-- root/root 1637 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/gcfg.v1/LICENSE --rw-r--r-- root/root 1396 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/warnings.v0/LICENSE --rw-r--r-- root/root 1222 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE --rw-r--r-- root/root 1721 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/tomb.v1/LICENSE --rw-r--r-- root/root 1658 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/fsnotify.v1/LICENSE --rw-r--r-- root/root 11491 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/square/go-jose.v2/LICENSE --rw-r--r-- root/root 10364 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/ini.v1/LICENSE --rw-r--r-- root/root 1635 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/inf.v0/LICENSE --rw-r--r-- root/root 2264 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/yaml.v3/LICENSE --rw-r--r-- root/root 11470 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/yaml.v2/LICENSE --rw-r--r-- root/root 1227 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/asaskevich/govalidator/LICENSE --rw-r--r-- root/root 11509 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/LICENSE --rw-r--r-- root/root 1672 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/grpc-gateway/LICENSE --rw-r--r-- root/root 11509 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-middleware/LICENSE --rw-r--r-- root/root 2516 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/storageos/go-api/LICENSE --rw-r--r-- root/root 11470 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/thecodeteam/goscaleio/LICENSE --rw-r--r-- root/root 1212 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Microsoft/hcsshim/LICENSE --rw-r--r-- root/root 1216 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Microsoft/go-winio/LICENSE --rw-r--r-- root/root 1215 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/subosito/gotenv/LICENSE --rw-r--r-- root/root 1190 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mailru/easyjson/LICENSE --rw-r--r-- root/root 1209 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/cespare/xxhash/v2/LICENSE --rw-r--r-- root/root 1213 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/satori/go.uuid/LICENSE --rw-r--r-- root/root 11500 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/modern-go/concurrent/LICENSE --rw-r--r-- root/root 11496 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/modern-go/reflect2/LICENSE --rw-r--r-- root/root 11465 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/jonboulle/clockwork/LICENSE --rw-r--r-- root/root 11501 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/pquerna/cachecontrol/LICENSE --rw-r--r-- root/root 704 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/inconshreveable/mousetrap/LICENSE --rw-r--r-- root/root 10894 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/docker/docker/LICENSE --rw-r--r-- root/root 10900 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/docker/spdystream/LICENSE --rw-r--r-- root/root 11466 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/docker/distribution/LICENSE --rw-r--r-- root/root 10905 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/docker/go-connections/LICENSE --rw-r--r-- root/root 10893 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/docker/go-units/LICENSE --rw-r--r-- root/root 1613 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/golang/protobuf/LICENSE --rw-r--r-- root/root 11483 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/golang/mock/LICENSE --rw-r--r-- root/root 10410 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/golang/groupcache/LICENSE --rw-r--r-- root/root 1209 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/morikuni/aec/LICENSE --rw-r--r-- root/root 11491 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/swag/LICENSE --rw-r--r-- root/root 11495 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/strfmt/LICENSE --rw-r--r-- root/root 11509 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/jsonreference/LICENSE --rw-r--r-- root/root 11497 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/runtime/LICENSE --rw-r--r-- root/root 11491 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/spec/LICENSE --rw-r--r-- root/root 11505 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/jsonpointer/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/loads/LICENSE --rw-r--r-- root/root 11499 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/validate/LICENSE --rw-r--r-- root/root 11495 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/errors/LICENSE --rw-r--r-- root/root 11499 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/analysis/LICENSE --rw-r--r-- root/root 1207 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/tmc/grpc-websocket-proxy/LICENSE --rw-r--r-- root/root 11524 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/container-storage-interface/spec/LICENSE --rw-r--r-- root/root 1212 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-stack/stack/LICENSE --rw-r--r-- root/root 1201 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/peterbourgon/diskv/LICENSE --rw-r--r-- root/root 1216 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/emicklei/go-restful/LICENSE --rw-r--r-- root/root 1618 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/PuerkitoBio/urlesc/LICENSE --rw-r--r-- root/root 1610 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/PuerkitoBio/purell/LICENSE --rw-r--r-- root/root 1233 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mitchellh/go-wordwrap/LICENSE --rw-r--r-- root/root 1232 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mitchellh/mapstructure/LICENSE --rw-r--r-- root/root 1209 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/xiang90/probing/LICENSE --rw-r--r-- root/root 10901 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/clusterhq/flocker-go/LICENSE --rw-r--r-- root/root 11537 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/aws/aws-sdk-go/LICENSE --rw-r--r-- root/root 1217 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/robfig/cron/LICENSE --rw-r--r-- root/root 11500 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/euank/go-kmsg-parser/LICENSE --rw-r--r-- root/root 1211 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/rubiojr/go-vhd/LICENSE --rw-r--r-- root/root 1514 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/seccomp/libseccomp-golang/LICENSE --rw-r--r-- root/root 2682 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/ghodss/yaml/LICENSE --rw-r--r-- root/root 11498 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/caddyserver/caddy/LICENSE --rw-r--r-- root/root 10933 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/vishvananda/netns/LICENSE --rw-r--r-- root/root 10937 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/vishvananda/netlink/LICENSE --rw-r--r-- root/root 1679 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/fsnotify/fsnotify/LICENSE --rw-r--r-- root/root 1236 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/shurcooL/sanitized_anchor_name/LICENSE --rw-r--r-- root/root 11468 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mistifyio/go-zfs/LICENSE --rw-r--r-- root/root 1215 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/sirupsen/logrus/LICENSE --rw-r--r-- root/root 1616 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/liggitt/tabwriter/LICENSE --rw-r--r-- root/root 1459 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/karrick/godirwalk/LICENSE --rw-r--r-- root/root 1607 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/willf/bitset/LICENSE --rw-r--r-- root/root 1608 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/google/go-cmp/LICENSE --rw-r--r-- root/root 1605 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/google/uuid/LICENSE --rw-r--r-- root/root 11485 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/google/btree/LICENSE --rw-r--r-- root/root 10898 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/google/cadvisor/LICENSE --rw-r--r-- root/root 11487 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/google/gofuzz/LICENSE --rw-r--r-- root/root 1736 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/miekg/dns/LICENSE --rw-r--r-- root/root 11504 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/opencontainers/selinux/LICENSE --rw-r--r-- root/root 10899 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/opencontainers/runc/LICENSE --rw-r--r-- root/root 10952 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/opencontainers/go-digest/LICENSE --rw-r--r-- root/root 10920 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/opencontainers/image-spec/LICENSE --rw-r--r-- root/root 10924 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/opencontainers/runtime-spec/LICENSE --rw-r--r-- root/root 11512 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/coredns/corefile-migration/LICENSE --rw-r--r-- root/root 1459 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/godbus/dbus/v5/LICENSE --rw-r--r-- root/root 11456 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/coreos/go-oidc/LICENSE --rw-r--r-- root/root 10410 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/coreos/go-systemd/LICENSE --rw-r--r-- root/root 10414 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/coreos/go-systemd/v22/LICENSE --rw-r--r-- root/root 11448 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/coreos/pkg/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/coreos/go-semver/LICENSE --rw-r--r-- root/root 1193 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/dgrijalva/jwt-go/LICENSE --rw-r--r-- root/root 10917 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/libopenstorage/openstorage/LICENSE --rw-r--r-- root/root 1449 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/gorilla/websocket/LICENSE --rw-r--r-- root/root 1563 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/russross/blackfriday/LICENSE --rw-r--r-- root/root 1566 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/russross/blackfriday/v2/LICENSE --rw-r--r-- root/root 1542 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/JeffAshton/win_pdh/LICENSE --rw-r--r-- root/root 1640 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/chai2010/gettext-go/LICENSE --rw-r--r-- root/root 11497 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/moby/sys/mountinfo/LICENSE --rw-r--r-- root/root 10886 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/moby/term/LICENSE --rw-r--r-- root/root 11446 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/moby/ipvs/LICENSE --rw-r--r-- root/root 11495 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mindprince/gonvml/LICENSE --rw-r--r-- root/root 11494 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/ishidawataru/sctp/LICENSE --rw-r--r-- root/root 11518 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/checkpoint-restore/go-criu/v4/LICENSE --rw-r--r-- root/root 1435 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/pkg/errors/LICENSE --rw-r--r-- root/root 11484 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-logr/logr/LICENSE --rw-r--r-- root/root 1230 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/blang/semver/LICENSE --rw-r--r-- root/root 11534 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE --rw-r--r-- root/root 1500 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/magiconair/properties/LICENSE --rw-r--r-- root/root 1185 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/beorn7/perks/LICENSE --rw-r--r-- root/root 11499 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/azure-sdk-for-go/LICENSE --rw-r--r-- root/root 10904 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/LICENSE --rw-r--r-- root/root 10911 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/logger/LICENSE --rw-r--r-- root/root 10918 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/adal/LICENSE --rw-r--r-- root/root 10916 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/to/LICENSE --rw-r--r-- root/root 10913 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/LICENSE --rw-r--r-- root/root 10919 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/mocks/LICENSE --rw-r--r-- root/root 10918 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/date/LICENSE --rw-r--r-- root/root 10924 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/validation/LICENSE --rw-r--r-- root/root 10912 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/tracing/LICENSE --rw-r--r-- root/root 1225 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-ansiterm/LICENSE --rw-r--r-- root/root 314 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-bindata/go-bindata/LICENSE --rw-r--r-- root/root 1201 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/form3tech-oss/jwt-go/LICENSE --rw-r--r-- root/root 899 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/davecgh/go-spew/LICENSE --rw-r--r-- root/root 1272 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/hpcloud/tail/LICENSE --rw-r--r-- root/root 1205 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/json-iterator/go/LICENSE --rw-r--r-- root/root 2737 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/daviddengcn/go-colortext/LICENSE --rw-r--r-- root/root 1267 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/cilium/ebpf/LICENSE --rw-r--r-- root/root 1620 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/elazarl/goproxy/LICENSE --rw-r--r-- root/root 1230 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/MakeNowJust/heredoc/LICENSE --rw-r--r-- root/root 1202 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/spf13/cast/LICENSE --rw-r--r-- root/root 10269 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/spf13/afero/LICENSE --rw-r--r-- root/root 1656 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/spf13/pflag/LICENSE --rw-r--r-- root/root 1204 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/spf13/viper/LICENSE --rw-r--r-- root/root 1228 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/spf13/jwalterweatherman/LICENSE --rw-r--r-- root/root 10269 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/spf13/cobra/LICENSE --rw-r--r-- root/root 1218 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/fvbommel/sortorder/LICENSE --rw-r--r-- root/root 1613 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mvdan/xurls/LICENSE --rw-r--r-- root/root 1698 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/cyphar/filepath-securejoin/LICENSE --rw-r--r-- root/root 1634 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/evanphx/json-patch/LICENSE --rw-r--r-- root/root 1614 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/quobyte/api/LICENSE --rw-r--r-- root/root 1208 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/armon/circbuf/LICENSE --rw-r--r-- root/root 721 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/NYTimes/gziphandler/LICENSE --rw-r--r-- root/root 11498 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/googleapis/gnostic/LICENSE --rw-r--r-- root/root 1614 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/googleapis/gax-go/v2/LICENSE --rw-r--r-- root/root 1683 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/munnerz/goautoneg/LICENSE --rw-r--r-- root/root 1227 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/exponent-io/jsonpath/LICENSE --rw-r--r-- root/root 1202 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mohae/deepcopy/LICENSE --rw-r--r-- root/root 1294 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/konsorten/go-windows-terminal-sequences/LICENSE --rw-r--r-- root/root 702 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/jmespath/go-jmespath/LICENSE --rw-r--r-- root/root 1242 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/pelletier/go-toml/LICENSE --rw-r--r-- root/root 1187 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/onsi/gomega/LICENSE --rw-r--r-- root/root 1187 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/onsi/ginkgo/LICENSE --rw-r--r-- root/root 1225 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/cpuguy83/go-md2man/v2/LICENSE --rw-r--r-- root/root 1665 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/imdario/mergo/LICENSE --rw-r--r-- root/root 389 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/heketi/heketi/LICENSE --rw-r--r-- root/root 1225 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-ozzo/ozzo-validation/LICENSE --rw-r--r-- root/root 1238 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/stretchr/testify/LICENSE --rw-r--r-- root/root 1246 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/stretchr/objx/LICENSE --rw-r--r-- root/root 1215 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/fatih/camelcase/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/vmware/govmomi/LICENSE --rw-r--r-- root/root 1459 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/syndtr/gocapability/LICENSE --rw-r--r-- root/root 10895 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mrunalp/fileutils/LICENSE --rw-r--r-- root/root 11487 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/soheilhy/cmux/LICENSE --rw-r--r-- root/root 1275 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/dustin/go-humanize/LICENSE --rw-r--r-- root/root 11507 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/containernetworking/cni/LICENSE --rw-r--r-- root/root 11494 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/prometheus/common/LICENSE --rw-r--r-- root/root 11506 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/prometheus/client_model/LICENSE --rw-r--r-- root/root 11494 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/prometheus/procfs/LICENSE --rw-r--r-- root/root 11508 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/prometheus/client_golang/LICENSE --rw-r--r-- root/root 16106 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/hashicorp/hcl/LICENSE --rw-r--r-- root/root 16064 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/hashicorp/golang-lru/LICENSE --rw-r--r-- root/root 1584 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/pmezard/go-difflib/LICENSE --rw-r--r-- root/root 11492 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/containerd/ttrpc/LICENSE --rw-r--r-- root/root 10904 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/containerd/console/LICENSE --rw-r--r-- root/root 11496 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/containerd/cgroups/LICENSE --rw-r--r-- root/root 10910 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/containerd/containerd/LICENSE --rw-r--r-- root/root 1228 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/gregjones/httpcache/LICENSE --rw-r--r-- root/root 1647 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mxk/go-flowrate/LICENSE --rw-r--r-- root/root 10896 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/gophercloud/gophercloud/LICENSE --rw-r--r-- root/root 1810 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/gogo/protobuf/LICENSE --rw-r--r-- root/root 1217 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/lithammer/dedent/LICENSE --rw-r--r-- root/root 11435 2020-12-08 12:11 kubernetes/LICENSES/vendor/k8s.io/heapster/LICENSE --rw-r--r-- root/root 11486 2020-12-08 12:11 kubernetes/LICENSES/vendor/k8s.io/system-validators/LICENSE --rw-r--r-- root/root 11477 2020-12-08 12:11 kubernetes/LICENSES/vendor/k8s.io/kube-openapi/LICENSE --rw-r--r-- root/root 11459 2020-12-08 12:11 kubernetes/LICENSES/vendor/k8s.io/gengo/LICENSE --rw-r--r-- root/root 10382 2020-12-08 12:11 kubernetes/LICENSES/vendor/k8s.io/klog/v2/LICENSE --rw-r--r-- root/root 11463 2020-12-08 12:11 kubernetes/LICENSES/vendor/k8s.io/utils/LICENSE -``` - -

-
- -##### Content of `kubernetes-server-[system-arch].tar.gz` on example of `kubernetes-server-linux-amd64.tar.gz` (directories removed from list): - -*Summary* - -- Kubernetes source tarball (`kubernetes-src.tar.gz`) -- OCI image tarballs (`*.tar`) for `kube-proxy` / `kube-apiserver` / `kube-controller-manager` / `kube-scheduler` -- Docker tags (`*.docker_tag`) for `kube-proxy` / `kube-apiserver` / `kube-controller-manager` / `kube-scheduler` -- Binaries for `kube-proxy` / `kube-apiserver` / `kube-controller-manager` / `kube-scheduler` / `kubelet` / `kubeadm` / `mounter` -- [LICENSES](https://github.com/kubernetes/kubernetes/tree/master/LICENSES) - -
Expand Contents -

- -``` -➜ $ tar -ztvf kubernetes-server-linux-amd64.tar.gz --rw-r--r-- root/root 35790270 2020-12-08 12:12 kubernetes/kubernetes-src.tar.gz --rw------- root/root 120378880 2020-12-08 12:11 kubernetes/server/bin/kube-proxy.tar --rwxr-xr-x root/root 46665728 2020-12-08 12:12 kubernetes/server/bin/apiextensions-apiserver --rw------- root/root 122924544 2020-12-08 12:11 kubernetes/server/bin/kube-apiserver.tar --rw-r--r-- root/root 8 2020-12-08 12:11 kubernetes/server/bin/kube-controller-manager.docker_tag --rwxr-xr-x root/root 40230912 2020-12-08 12:12 kubernetes/server/bin/kubectl --rw-r--r-- root/root 8 2020-12-08 12:11 kubernetes/server/bin/kube-scheduler.docker_tag --rw-r--r-- root/root 8 2020-12-08 12:11 kubernetes/server/bin/kube-proxy.docker_tag --rwxr-xr-x root/root 44658688 2020-12-08 12:12 kubernetes/server/bin/kube-aggregator --rwxr-xr-x root/root 1630208 2020-12-08 12:12 kubernetes/server/bin/mounter --rwxr-xr-x root/root 42848256 2020-12-08 12:12 kubernetes/server/bin/kube-scheduler --rwxr-xr-x root/root 112308224 2020-12-08 12:12 kubernetes/server/bin/kube-controller-manager --rwxr-xr-x root/root 118128640 2020-12-08 12:12 kubernetes/server/bin/kube-apiserver --rw------- root/root 47644160 2020-12-08 12:11 kubernetes/server/bin/kube-scheduler.tar --rwxr-xr-x root/root 39219200 2020-12-08 12:12 kubernetes/server/bin/kubeadm --rwxr-xr-x root/root 39485440 2020-12-08 12:12 kubernetes/server/bin/kube-proxy --rw-r--r-- root/root 8 2020-12-08 12:11 kubernetes/server/bin/kube-apiserver.docker_tag --rwxr-xr-x root/root 113974120 2020-12-08 12:12 kubernetes/server/bin/kubelet --rw------- root/root 117104128 2020-12-08 12:11 kubernetes/server/bin/kube-controller-manager.tar --rw-r--r-- root/root 11596 2020-12-08 12:12 kubernetes/LICENSES/LICENSE --rw-r--r-- root/root 78 2020-12-08 12:12 kubernetes/LICENSES/OWNERS --rw-r--r-- root/root 11492 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.mongodb.org/mongo-driver/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:12 kubernetes/LICENSES/vendor/google.golang.org/appengine/LICENSE --rw-r--r-- root/root 11483 2020-12-08 12:12 kubernetes/LICENSES/vendor/google.golang.org/grpc/LICENSE --rw-r--r-- root/root 1612 2020-12-08 12:12 kubernetes/LICENSES/vendor/google.golang.org/protobuf/LICENSE --rw-r--r-- root/root 1598 2020-12-08 12:12 kubernetes/LICENSES/vendor/google.golang.org/api/LICENSE --rw-r--r-- root/root 11491 2020-12-08 12:12 kubernetes/LICENSES/vendor/google.golang.org/genproto/LICENSE --rw-r--r-- root/root 1228 2020-12-08 12:12 kubernetes/LICENSES/vendor/bitbucket.org/bertimus9/systemstat/LICENSE --rw-r--r-- root/root 11469 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.etcd.io/etcd/LICENSE --rw-r--r-- root/root 1191 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.etcd.io/bbolt/LICENSE --rw-r--r-- root/root 1598 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/oauth2/LICENSE --rw-r--r-- root/root 1592 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/net/LICENSE --rw-r--r-- root/root 1594 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/text/LICENSE --rw-r--r-- root/root 1592 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/sys/LICENSE --rw-r--r-- root/root 1596 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/tools/LICENSE --rw-r--r-- root/root 1594 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/time/LICENSE --rw-r--r-- root/root 1598 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/crypto/LICENSE --rw-r--r-- root/root 1600 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/xerrors/LICENSE --rw-r--r-- root/root 1592 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/mod/LICENSE --rw-r--r-- root/root 1594 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/sync/LICENSE --rw-r--r-- root/root 11477 2020-12-08 12:12 kubernetes/LICENSES/vendor/cloud.google.com/go/LICENSE --rw-r--r-- root/root 1187 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.uber.org/zap/LICENSE --rw-r--r-- root/root 1192 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.uber.org/multierr/LICENSE --rw-r--r-- root/root 1188 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.uber.org/atomic/LICENSE --rw-r--r-- root/root 2670 2020-12-08 12:12 kubernetes/LICENSES/vendor/sigs.k8s.io/yaml/LICENSE --rw-r--r-- root/root 11480 2020-12-08 12:12 kubernetes/LICENSES/vendor/sigs.k8s.io/kustomize/LICENSE --rw-r--r-- root/root 11548 2020-12-08 12:12 kubernetes/LICENSES/vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/LICENSE --rw-r--r-- root/root 11510 2020-12-08 12:12 kubernetes/LICENSES/vendor/sigs.k8s.io/structured-merge-diff/v4/LICENSE --rw-r--r-- root/root 11470 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.opencensus.io/LICENSE --rw-r--r-- root/root 1647 2020-12-08 12:12 kubernetes/LICENSES/vendor/gonum.org/v1/gonum/LICENSE --rw-r--r-- root/root 1637 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/gcfg.v1/LICENSE --rw-r--r-- root/root 1396 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/warnings.v0/LICENSE --rw-r--r-- root/root 1222 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE --rw-r--r-- root/root 1721 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/tomb.v1/LICENSE --rw-r--r-- root/root 1658 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/fsnotify.v1/LICENSE --rw-r--r-- root/root 11491 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/square/go-jose.v2/LICENSE --rw-r--r-- root/root 10364 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/ini.v1/LICENSE --rw-r--r-- root/root 1635 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/inf.v0/LICENSE --rw-r--r-- root/root 2264 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/yaml.v3/LICENSE --rw-r--r-- root/root 11470 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/yaml.v2/LICENSE --rw-r--r-- root/root 1227 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/asaskevich/govalidator/LICENSE --rw-r--r-- root/root 11509 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/LICENSE --rw-r--r-- root/root 1672 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/grpc-gateway/LICENSE --rw-r--r-- root/root 11509 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-middleware/LICENSE --rw-r--r-- root/root 2516 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/storageos/go-api/LICENSE --rw-r--r-- root/root 11470 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/thecodeteam/goscaleio/LICENSE --rw-r--r-- root/root 1212 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Microsoft/hcsshim/LICENSE --rw-r--r-- root/root 1216 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Microsoft/go-winio/LICENSE --rw-r--r-- root/root 1215 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/subosito/gotenv/LICENSE --rw-r--r-- root/root 1190 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mailru/easyjson/LICENSE --rw-r--r-- root/root 1209 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/cespare/xxhash/v2/LICENSE --rw-r--r-- root/root 1213 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/satori/go.uuid/LICENSE --rw-r--r-- root/root 11500 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/modern-go/concurrent/LICENSE --rw-r--r-- root/root 11496 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/modern-go/reflect2/LICENSE --rw-r--r-- root/root 11465 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/jonboulle/clockwork/LICENSE --rw-r--r-- root/root 11501 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/pquerna/cachecontrol/LICENSE --rw-r--r-- root/root 704 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/inconshreveable/mousetrap/LICENSE --rw-r--r-- root/root 10894 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/docker/docker/LICENSE --rw-r--r-- root/root 10900 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/docker/spdystream/LICENSE --rw-r--r-- root/root 11466 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/docker/distribution/LICENSE --rw-r--r-- root/root 10905 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/docker/go-connections/LICENSE --rw-r--r-- root/root 10893 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/docker/go-units/LICENSE --rw-r--r-- root/root 1613 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/golang/protobuf/LICENSE --rw-r--r-- root/root 11483 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/golang/mock/LICENSE --rw-r--r-- root/root 10410 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/golang/groupcache/LICENSE --rw-r--r-- root/root 1209 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/morikuni/aec/LICENSE --rw-r--r-- root/root 11491 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/swag/LICENSE --rw-r--r-- root/root 11495 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/strfmt/LICENSE --rw-r--r-- root/root 11509 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/jsonreference/LICENSE --rw-r--r-- root/root 11497 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/runtime/LICENSE --rw-r--r-- root/root 11491 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/spec/LICENSE --rw-r--r-- root/root 11505 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/jsonpointer/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/loads/LICENSE --rw-r--r-- root/root 11499 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/validate/LICENSE --rw-r--r-- root/root 11495 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/errors/LICENSE --rw-r--r-- root/root 11499 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/analysis/LICENSE --rw-r--r-- root/root 1207 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/tmc/grpc-websocket-proxy/LICENSE --rw-r--r-- root/root 11524 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/container-storage-interface/spec/LICENSE --rw-r--r-- root/root 1212 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-stack/stack/LICENSE --rw-r--r-- root/root 1201 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/peterbourgon/diskv/LICENSE --rw-r--r-- root/root 1216 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/emicklei/go-restful/LICENSE --rw-r--r-- root/root 1618 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/PuerkitoBio/urlesc/LICENSE --rw-r--r-- root/root 1610 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/PuerkitoBio/purell/LICENSE --rw-r--r-- root/root 1233 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mitchellh/go-wordwrap/LICENSE --rw-r--r-- root/root 1232 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mitchellh/mapstructure/LICENSE --rw-r--r-- root/root 1209 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/xiang90/probing/LICENSE --rw-r--r-- root/root 10901 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/clusterhq/flocker-go/LICENSE --rw-r--r-- root/root 11537 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/aws/aws-sdk-go/LICENSE --rw-r--r-- root/root 1217 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/robfig/cron/LICENSE --rw-r--r-- root/root 11500 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/euank/go-kmsg-parser/LICENSE --rw-r--r-- root/root 1211 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/rubiojr/go-vhd/LICENSE --rw-r--r-- root/root 1514 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/seccomp/libseccomp-golang/LICENSE --rw-r--r-- root/root 2682 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/ghodss/yaml/LICENSE --rw-r--r-- root/root 11498 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/caddyserver/caddy/LICENSE --rw-r--r-- root/root 10933 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/vishvananda/netns/LICENSE --rw-r--r-- root/root 10937 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/vishvananda/netlink/LICENSE --rw-r--r-- root/root 1679 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/fsnotify/fsnotify/LICENSE --rw-r--r-- root/root 1236 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/shurcooL/sanitized_anchor_name/LICENSE --rw-r--r-- root/root 11468 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mistifyio/go-zfs/LICENSE --rw-r--r-- root/root 1215 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/sirupsen/logrus/LICENSE --rw-r--r-- root/root 1616 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/liggitt/tabwriter/LICENSE --rw-r--r-- root/root 1459 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/karrick/godirwalk/LICENSE --rw-r--r-- root/root 1607 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/willf/bitset/LICENSE --rw-r--r-- root/root 1608 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/google/go-cmp/LICENSE --rw-r--r-- root/root 1605 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/google/uuid/LICENSE --rw-r--r-- root/root 11485 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/google/btree/LICENSE --rw-r--r-- root/root 10898 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/google/cadvisor/LICENSE --rw-r--r-- root/root 11487 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/google/gofuzz/LICENSE --rw-r--r-- root/root 1736 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/miekg/dns/LICENSE --rw-r--r-- root/root 11504 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/opencontainers/selinux/LICENSE --rw-r--r-- root/root 10899 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/opencontainers/runc/LICENSE --rw-r--r-- root/root 10952 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/opencontainers/go-digest/LICENSE --rw-r--r-- root/root 10920 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/opencontainers/image-spec/LICENSE --rw-r--r-- root/root 10924 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/opencontainers/runtime-spec/LICENSE --rw-r--r-- root/root 11512 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/coredns/corefile-migration/LICENSE --rw-r--r-- root/root 1459 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/godbus/dbus/v5/LICENSE --rw-r--r-- root/root 11456 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/coreos/go-oidc/LICENSE --rw-r--r-- root/root 10410 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/coreos/go-systemd/LICENSE --rw-r--r-- root/root 10414 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/coreos/go-systemd/v22/LICENSE --rw-r--r-- root/root 11448 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/coreos/pkg/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/coreos/go-semver/LICENSE --rw-r--r-- root/root 1193 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/dgrijalva/jwt-go/LICENSE --rw-r--r-- root/root 10917 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/libopenstorage/openstorage/LICENSE --rw-r--r-- root/root 1449 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/gorilla/websocket/LICENSE --rw-r--r-- root/root 1563 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/russross/blackfriday/LICENSE --rw-r--r-- root/root 1566 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/russross/blackfriday/v2/LICENSE --rw-r--r-- root/root 1542 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/JeffAshton/win_pdh/LICENSE --rw-r--r-- root/root 1640 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/chai2010/gettext-go/LICENSE --rw-r--r-- root/root 11497 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/moby/sys/mountinfo/LICENSE --rw-r--r-- root/root 10886 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/moby/term/LICENSE --rw-r--r-- root/root 11446 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/moby/ipvs/LICENSE --rw-r--r-- root/root 11495 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mindprince/gonvml/LICENSE --rw-r--r-- root/root 11494 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/ishidawataru/sctp/LICENSE --rw-r--r-- root/root 11518 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/checkpoint-restore/go-criu/v4/LICENSE --rw-r--r-- root/root 1435 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/pkg/errors/LICENSE --rw-r--r-- root/root 11484 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-logr/logr/LICENSE --rw-r--r-- root/root 1230 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/blang/semver/LICENSE --rw-r--r-- root/root 11534 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE --rw-r--r-- root/root 1500 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/magiconair/properties/LICENSE --rw-r--r-- root/root 1185 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/beorn7/perks/LICENSE --rw-r--r-- root/root 11499 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/azure-sdk-for-go/LICENSE --rw-r--r-- root/root 10904 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/LICENSE --rw-r--r-- root/root 10911 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/logger/LICENSE --rw-r--r-- root/root 10918 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/adal/LICENSE --rw-r--r-- root/root 10916 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/to/LICENSE --rw-r--r-- root/root 10913 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/LICENSE --rw-r--r-- root/root 10919 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/mocks/LICENSE --rw-r--r-- root/root 10918 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/date/LICENSE --rw-r--r-- root/root 10924 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/validation/LICENSE --rw-r--r-- root/root 10912 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/tracing/LICENSE --rw-r--r-- root/root 1225 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-ansiterm/LICENSE --rw-r--r-- root/root 314 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-bindata/go-bindata/LICENSE --rw-r--r-- root/root 1201 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/form3tech-oss/jwt-go/LICENSE --rw-r--r-- root/root 899 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/davecgh/go-spew/LICENSE --rw-r--r-- root/root 1272 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/hpcloud/tail/LICENSE --rw-r--r-- root/root 1205 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/json-iterator/go/LICENSE --rw-r--r-- root/root 2737 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/daviddengcn/go-colortext/LICENSE --rw-r--r-- root/root 1267 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/cilium/ebpf/LICENSE --rw-r--r-- root/root 1620 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/elazarl/goproxy/LICENSE --rw-r--r-- root/root 1230 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/MakeNowJust/heredoc/LICENSE --rw-r--r-- root/root 1202 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/spf13/cast/LICENSE --rw-r--r-- root/root 10269 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/spf13/afero/LICENSE --rw-r--r-- root/root 1656 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/spf13/pflag/LICENSE --rw-r--r-- root/root 1204 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/spf13/viper/LICENSE --rw-r--r-- root/root 1228 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/spf13/jwalterweatherman/LICENSE --rw-r--r-- root/root 10269 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/spf13/cobra/LICENSE --rw-r--r-- root/root 1218 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/fvbommel/sortorder/LICENSE --rw-r--r-- root/root 1613 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mvdan/xurls/LICENSE --rw-r--r-- root/root 1698 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/cyphar/filepath-securejoin/LICENSE --rw-r--r-- root/root 1634 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/evanphx/json-patch/LICENSE --rw-r--r-- root/root 1614 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/quobyte/api/LICENSE --rw-r--r-- root/root 1208 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/armon/circbuf/LICENSE --rw-r--r-- root/root 721 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/NYTimes/gziphandler/LICENSE --rw-r--r-- root/root 11498 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/googleapis/gnostic/LICENSE --rw-r--r-- root/root 1614 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/googleapis/gax-go/v2/LICENSE --rw-r--r-- root/root 1683 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/munnerz/goautoneg/LICENSE --rw-r--r-- root/root 1227 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/exponent-io/jsonpath/LICENSE --rw-r--r-- root/root 1202 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mohae/deepcopy/LICENSE --rw-r--r-- root/root 1294 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/konsorten/go-windows-terminal-sequences/LICENSE --rw-r--r-- root/root 702 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/jmespath/go-jmespath/LICENSE --rw-r--r-- root/root 1242 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/pelletier/go-toml/LICENSE --rw-r--r-- root/root 1187 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/onsi/gomega/LICENSE --rw-r--r-- root/root 1187 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/onsi/ginkgo/LICENSE --rw-r--r-- root/root 1225 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/cpuguy83/go-md2man/v2/LICENSE --rw-r--r-- root/root 1665 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/imdario/mergo/LICENSE --rw-r--r-- root/root 389 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/heketi/heketi/LICENSE --rw-r--r-- root/root 1225 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-ozzo/ozzo-validation/LICENSE --rw-r--r-- root/root 1238 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/stretchr/testify/LICENSE --rw-r--r-- root/root 1246 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/stretchr/objx/LICENSE --rw-r--r-- root/root 1215 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/fatih/camelcase/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/vmware/govmomi/LICENSE --rw-r--r-- root/root 1459 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/syndtr/gocapability/LICENSE --rw-r--r-- root/root 10895 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mrunalp/fileutils/LICENSE --rw-r--r-- root/root 11487 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/soheilhy/cmux/LICENSE --rw-r--r-- root/root 1275 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/dustin/go-humanize/LICENSE --rw-r--r-- root/root 11507 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/containernetworking/cni/LICENSE --rw-r--r-- root/root 11494 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/prometheus/common/LICENSE --rw-r--r-- root/root 11506 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/prometheus/client_model/LICENSE --rw-r--r-- root/root 11494 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/prometheus/procfs/LICENSE --rw-r--r-- root/root 11508 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/prometheus/client_golang/LICENSE --rw-r--r-- root/root 16106 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/hashicorp/hcl/LICENSE --rw-r--r-- root/root 16064 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/hashicorp/golang-lru/LICENSE --rw-r--r-- root/root 1584 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/pmezard/go-difflib/LICENSE --rw-r--r-- root/root 11492 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/containerd/ttrpc/LICENSE --rw-r--r-- root/root 10904 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/containerd/console/LICENSE --rw-r--r-- root/root 11496 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/containerd/cgroups/LICENSE --rw-r--r-- root/root 10910 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/containerd/containerd/LICENSE --rw-r--r-- root/root 1228 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/gregjones/httpcache/LICENSE --rw-r--r-- root/root 1647 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mxk/go-flowrate/LICENSE --rw-r--r-- root/root 10896 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/gophercloud/gophercloud/LICENSE --rw-r--r-- root/root 1810 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/gogo/protobuf/LICENSE --rw-r--r-- root/root 1217 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/lithammer/dedent/LICENSE --rw-r--r-- root/root 11435 2020-12-08 12:12 kubernetes/LICENSES/vendor/k8s.io/heapster/LICENSE --rw-r--r-- root/root 11486 2020-12-08 12:12 kubernetes/LICENSES/vendor/k8s.io/system-validators/LICENSE --rw-r--r-- root/root 11477 2020-12-08 12:12 kubernetes/LICENSES/vendor/k8s.io/kube-openapi/LICENSE --rw-r--r-- root/root 11459 2020-12-08 12:12 kubernetes/LICENSES/vendor/k8s.io/gengo/LICENSE --rw-r--r-- root/root 10382 2020-12-08 12:12 kubernetes/LICENSES/vendor/k8s.io/klog/v2/LICENSE --rw-r--r-- root/root 11463 2020-12-08 12:12 kubernetes/LICENSES/vendor/k8s.io/utils/LICENSE -``` - -

-
- -##### Content of `kubernetes-test-[system-arch].tar.gz` on example of `kubernetes-test-linux-amd64.tar.gz` (directories removed from list): - -- Binaries for `genyaml` / `gendocs` / `e2e.test` / `go-runner` / `kubemark` / `genkubedocs` / `linkcheck` / `genswaggertypedocs` / `e2e_node.test` / `genman` / `ginkgo` - -
Expand Contents -

- -``` -➜ $ tar -ztvf kubernetes-test-linux-amd64.tar.gz --rwxr-xr-x root/root 39895040 2020-12-08 12:17 kubernetes/test/bin/genyaml --rwxr-xr-x root/root 39903232 2020-12-08 12:17 kubernetes/test/bin/gendocs --rwxr-xr-x root/root 122987792 2020-12-08 12:17 kubernetes/test/bin/e2e.test --rwxr-xr-x root/root 1929216 2020-12-08 12:17 kubernetes/test/bin/go-runner --rwxr-xr-x root/root 112175880 2020-12-08 12:16 kubernetes/test/bin/kubemark --rwxr-xr-x root/root 150267272 2020-12-08 12:17 kubernetes/test/bin/genkubedocs --rwxr-xr-x root/root 5091328 2020-12-08 12:17 kubernetes/test/bin/linkcheck --rwxr-xr-x root/root 6717440 2020-12-08 12:17 kubernetes/test/bin/genswaggertypedocs --rwxr-xr-x root/root 135916432 2020-12-08 12:16 kubernetes/test/bin/e2e_node.test --rwxr-xr-x root/root 157217352 2020-12-08 12:17 kubernetes/test/bin/genman --rwxr-xr-x root/root 7651328 2020-12-08 12:17 kubernetes/test/bin/ginkgo -``` - -

-
- -##### Content of `kubernetes-manifests.tar.gz` (directories removed from list): - -*Summary* - -- `kube-system` manifests for Kubernetes distros, such as COS (see [cluster/gce/gci](https://github.com/kubernetes/kubernetes/tree/master/cluster/gce/gci) for more information) - -
Expand Contents -

- -``` -➜ $ tar -ztvf kubernetes-manifests.tar.gz --rw-r--r-- root/root 2845 2020-12-08 12:10 kubernetes/gci-trusty/glbc.manifest --rw-r--r-- root/root 419 2020-12-08 11:50 kubernetes/gci-trusty/metrics-server/auth-reader.yaml --rw-r--r-- root/root 388 2020-12-08 11:50 kubernetes/gci-trusty/metrics-server/metrics-apiservice.yaml --rw-r--r-- root/root 3352 2020-12-08 11:50 kubernetes/gci-trusty/metrics-server/metrics-server-deployment.yaml --rw-r--r-- root/root 398 2020-12-08 11:50 kubernetes/gci-trusty/metrics-server/auth-delegator.yaml --rw-r--r-- root/root 844 2020-12-08 11:50 kubernetes/gci-trusty/metrics-server/resource-reader.yaml --rw-r--r-- root/root 336 2020-12-08 11:50 kubernetes/gci-trusty/metrics-server/metrics-server-service.yaml --rw-r--r-- root/root 118780 2020-12-08 12:10 kubernetes/gci-trusty/gci-configure-helper.sh --rw-r--r-- root/root 16675 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/fluentd-gcp-configmap-old.yaml --rw-r--r-- root/root 190 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/fluentd-gcp-ds-sa.yaml --rw-r--r-- root/root 2366 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/event-exporter.yaml --rw-r--r-- root/root 350 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-role.yaml --rw-r--r-- root/root 415 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-binding.yaml --rw-r--r-- root/root 356 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/podsecuritypolicies/event-exporter-psp-role.yaml --rw-r--r-- root/root 427 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/podsecuritypolicies/event-exporter-psp-binding.yaml --rw-r--r-- root/root 1189 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp.yaml --rw-r--r-- root/root 1281 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/podsecuritypolicies/event-exporter-psp.yaml --rw-r--r-- root/root 18765 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/fluentd-gcp-configmap.yaml --rw-r--r-- root/root 968 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/scaler-deployment.yaml --rw-r--r-- root/root 1009 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/scaler-rbac.yaml --rw-r--r-- root/root 323 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/scaler-policy.yaml --rw-r--r-- root/root 4216 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/fluentd-gcp-ds.yaml --rw-r--r-- root/root 397 2020-12-08 11:50 kubernetes/gci-trusty/node-problem-detector/standalone/npd-binding.yaml --rw-r--r-- root/root 2507 2020-12-08 11:50 kubernetes/gci-trusty/node-problem-detector/npd.yaml --rw-r--r-- root/root 423 2020-12-08 11:50 kubernetes/gci-trusty/node-problem-detector/podsecuritypolicies/npd-psp-binding.yaml --rw-r--r-- root/root 389 2020-12-08 11:50 kubernetes/gci-trusty/node-problem-detector/kubelet-user-standalone/npd-binding.yaml --rw-r--r-- root/root 261 2020-12-08 11:50 kubernetes/gci-trusty/storage-class/aws/default.yaml --rw-r--r-- root/root 241 2020-12-08 11:50 kubernetes/gci-trusty/storage-class/openstack/default.yaml --rw-r--r-- root/root 228 2020-12-08 11:50 kubernetes/gci-trusty/storage-class/vsphere/default.yaml --rw-r--r-- root/root 245 2020-12-08 11:50 kubernetes/gci-trusty/storage-class/azure/default.yaml --rw-r--r-- root/root 300 2020-12-08 11:50 kubernetes/gci-trusty/storage-class/gce/default.yaml --rw-r--r-- root/root 269 2020-12-08 11:50 kubernetes/gci-trusty/storage-class/local/default.yaml --rw-r--r-- root/root 4140 2020-12-08 12:10 kubernetes/gci-trusty/health-monitor.sh --rw-r--r-- root/root 409 2020-12-08 11:50 kubernetes/gci-trusty/konnectivity-agent/konnectivity-rbac.yaml --rw-r--r-- root/root 197 2020-12-08 11:50 kubernetes/gci-trusty/konnectivity-agent/konnectivity-agent-rbac.yaml --rw-r--r-- root/root 2023 2020-12-08 11:50 kubernetes/gci-trusty/konnectivity-agent/konnectivity-agent-ds.yaml --rw-r--r-- root/root 1289 2020-12-08 12:10 kubernetes/gci-trusty/abac-authz-policy.jsonl --rw-r--r-- root/root 2434 2020-12-08 11:50 kubernetes/gci-trusty/node-termination-handler/daemonset.yaml --rw-r--r-- root/root 791 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/privileged.yaml --rw-r--r-- root/root 572 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/persistent-volume-binder-role.yaml --rw-r--r-- root/root 878 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/persistent-volume-binder.yaml --rw-r--r-- root/root 535 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/kube-system-binding.yaml --rw-r--r-- root/root 643 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/persistent-volume-binder-binding.yaml --rw-r--r-- root/root 425 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/kube-proxy-binding.yaml --rw-r--r-- root/root 364 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/unprivileged-addon-role.yaml --rw-r--r-- root/root 742 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/node-binding.yaml --rw-r--r-- root/root 1577 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/unprivileged-addon.yaml --rw-r--r-- root/root 330 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/privileged-role.yaml --rw-r--r-- root/root 25526 2020-12-08 12:10 kubernetes/gci-trusty/configure-kubeapiserver.sh --rw-r--r-- root/root 1021 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-deployment.yaml --rw-r--r-- root/root 329 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-role.yaml --rw-r--r-- root/root 321 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-clusterrolebinding.yaml --rw-r--r-- root/root 1037 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-vertical-autoscaler-deployment.yaml --rw-r--r-- root/root 331 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/networkset-crd.yaml --rw-r--r-- root/root 2020 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-deployment.yaml --rw-r--r-- root/root 147 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-serviceaccount.yaml --rw-r--r-- root/root 352 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/globalnetworksets-crd.yaml --rw-r--r-- root/root 312 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/ippool-crd.yaml --rw-r--r-- root/root 356 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/globalfelixconfig-crd.yaml --rw-r--r-- root/root 356 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-service.yaml --rw-r--r-- root/root 293 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-vertical-autoscaler-clusterrole.yaml --rw-r--r-- root/root 148 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-cpva-serviceaccount.yaml --rw-r--r-- root/root 369 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/podsecuritypolicies/calico-node-psp-binding.yaml --rw-r--r-- root/root 352 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/bgpconfigurations-crd.yaml --rw-r--r-- root/root 342 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/blockaffinity-crd.yaml --rw-r--r-- root/root 414 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-vertical-autoscaler-configmap.yaml --rw-r--r-- root/root 308 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-cpva-clusterrole.yaml --rw-r--r-- root/root 345 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/networkpolicies-crd.yaml --rw-r--r-- root/root 360 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/clusterinformations-crd.yaml --rw-r--r-- root/root 316 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/bgppeers-crd.yaml --rw-r--r-- root/root 303 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-clusterrolebinding.yaml --rw-r--r-- root/root 336 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/hostendpoints-crd.yaml --rw-r--r-- root/root 348 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/globalbgpconfig-crd.yaml --rw-r--r-- root/root 360 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/felixconfigurations-crd.yaml --rw-r--r-- root/root 328 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/ipamhandle-crd.yaml --rw-r--r-- root/root 324 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-cpva-clusterrolebinding.yaml --rw-r--r-- root/root 6099 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-node-daemonset.yaml --rw-r--r-- root/root 410 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-configmap.yaml --rw-r--r-- root/root 324 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/ipamblock-crd.yaml --rw-r--r-- root/root 3380 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-clusterrole.yaml --rw-r--r-- root/root 226 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-clusterrole.yaml --rw-r--r-- root/root 143 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-serviceaccount.yaml --rw-r--r-- root/root 366 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/globalnetworkpolicy-crd.yaml --rw-r--r-- root/root 409 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-node-vertical-autoscaler-configmap.yaml --rw-r--r-- root/root 321 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-vertical-autoscaler-clusterrolebinding.yaml --rw-r--r-- root/root 1029 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-node-vertical-autoscaler-deployment.yaml --rw-r--r-- root/root 328 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/ipamconfig-crd.yaml --rw-r--r-- root/root 147 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-vertical-autoscaler-serviceaccount.yaml --rw-r--r-- root/root 332 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-rolebinding.yaml --rw-r--r-- root/root 1579 2020-12-08 12:10 kubernetes/gci-trusty/kube-addon-manager.yaml --rw-r--r-- root/root 2941 2020-12-08 11:50 kubernetes/gci-trusty/volumesnapshots/volume-snapshot-controller/rbac-volume-snapshot-controller.yaml --rw-r--r-- root/root 675 2020-12-08 11:50 kubernetes/gci-trusty/volumesnapshots/volume-snapshot-controller/volume-snapshot-controller-deployment.yaml --rw-r--r-- root/root 5888 2020-12-08 11:50 kubernetes/gci-trusty/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml --rw-r--r-- root/root 19001 2020-12-08 11:50 kubernetes/gci-trusty/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshots.yaml --rw-r--r-- root/root 22543 2020-12-08 11:50 kubernetes/gci-trusty/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml --rw-r--r-- root/root 3624 2020-12-08 12:10 kubernetes/gci-trusty/etcd.manifest --rw-r--r-- root/root 1931 2020-12-08 12:10 kubernetes/gci-trusty/kube-proxy.manifest --rw-r--r-- root/root 3354 2020-12-08 11:50 kubernetes/gci-trusty/dns-horizontal-autoscaler/dns-horizontal-autoscaler.yaml --rw-r--r-- root/root 2507 2020-12-08 11:50 kubernetes/gci-trusty/metadata-proxy/gce/metadata-proxy.yaml --rw-r--r-- root/root 427 2020-12-08 11:50 kubernetes/gci-trusty/metadata-proxy/gce/podsecuritypolicies/metadata-proxy-psp-binding.yaml --rw-r--r-- root/root 425 2020-12-08 11:50 kubernetes/gci-trusty/ip-masq-agent/podsecuritypolicies/ip-masq-agent-psp-binding.yaml --rw-r--r-- root/root 1748 2020-12-08 11:50 kubernetes/gci-trusty/ip-masq-agent/ip-masq-agent.yaml --rw-r--r-- root/root 226 2020-12-08 11:50 kubernetes/gci-trusty/limit-range/limit-range.yaml --rw-r--r-- root/root 399 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/podsecuritypolicies/es-psp-binding.yaml --rw-r--r-- root/root 1519 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/kibana-deployment.yaml --rw-r--r-- root/root 3186 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/es-statefulset.yaml --rw-r--r-- root/root 354 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/kibana-service.yaml --rw-r--r-- root/root 580 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/es-service.yaml --rw-r--r-- root/root 16125 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/fluentd-es-configmap.yaml --rw-r--r-- root/root 2581 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/fluentd-es-ds.yaml --rw-r--r-- root/root 6878 2020-12-08 11:50 kubernetes/gci-trusty/dashboard/dashboard.yaml --rw-r--r-- root/root 433 2020-12-08 11:50 kubernetes/gci-trusty/metadata-agent/stackdriver/podsecuritypolicies/metadata-agent-psp-binding.yaml --rw-r--r-- root/root 685 2020-12-08 11:50 kubernetes/gci-trusty/metadata-agent/stackdriver/metadata-agent-rbac.yaml --rw-r--r-- root/root 3581 2020-12-08 11:50 kubernetes/gci-trusty/metadata-agent/stackdriver/metadata-agent.yaml --rw-r--r-- root/root 5007 2020-12-08 11:50 kubernetes/gci-trusty/dns/coredns/coredns.yaml.in --rw-r--r-- root/root 7245 2020-12-08 11:50 kubernetes/gci-trusty/dns/kube-dns/kube-dns.yaml.in --rw-r--r-- root/root 5334 2020-12-08 11:50 kubernetes/gci-trusty/dns/nodelocaldns/nodelocaldns.yaml --rw-r--r-- root/root 1765 2020-12-08 12:10 kubernetes/gci-trusty/kube-scheduler.manifest --rw-r--r-- root/root 2024 2020-12-08 11:50 kubernetes/gci-trusty/kube-proxy/kube-proxy-ds.yaml --rw-r--r-- root/root 488 2020-12-08 11:50 kubernetes/gci-trusty/kube-proxy/kube-proxy-rbac.yaml --rw-r--r-- root/root 644 2020-12-08 11:50 kubernetes/gci-trusty/admission-resource-quota-critical-pods/resource-quota.yaml --rw-r--r-- root/root 685 2020-12-08 11:50 kubernetes/gci-trusty/loadbalancing/cloud-provider-binding.yaml --rw-r--r-- root/root 1540 2020-12-08 11:50 kubernetes/gci-trusty/loadbalancing/cloud-provider-role.yaml --rw-r--r-- root/root 3680 2020-12-08 12:10 kubernetes/gci-trusty/cluster-autoscaler.manifest --rw-r--r-- root/root 1641 2020-12-08 12:10 kubernetes/gci-trusty/konnectivity-server.yaml --rw-r--r-- root/root 1587 2020-12-08 11:50 kubernetes/gci-trusty/device-plugins/nvidia-gpu/daemonset.yaml --rw-r--r-- root/root 2970 2020-12-08 12:10 kubernetes/gci-trusty/kube-controller-manager.manifest --rw-r--r-- root/root 4216 2020-12-08 12:10 kubernetes/gci-trusty/kube-apiserver.manifest --rw-r--r-- root/root 577 2020-12-08 11:50 kubernetes/gci-trusty/cluster-loadbalancing/glbc/default-svc.yaml --rw-r--r-- root/root 1108 2020-12-08 11:50 kubernetes/gci-trusty/cluster-loadbalancing/glbc/default-svc-controller.yaml --rw-r--r-- root/root 782 2020-12-08 11:50 kubernetes/gci-trusty/rbac/legacy-kubelet-user-disable/kubelet-binding.yaml --rw-r--r-- root/root 565 2020-12-08 11:50 kubernetes/gci-trusty/rbac/legacy-kubelet-user/kubelet-binding.yaml --rw-r--r-- root/root 1399 2020-12-08 11:50 kubernetes/gci-trusty/rbac/kubelet-cert-rotation/kubelet-certificate-management.yaml --rw-r--r-- root/root 2089 2020-12-08 11:50 kubernetes/gci-trusty/rbac/cluster-autoscaler/cluster-autoscaler-rbac.yaml --rw-r--r-- root/root 338 2020-12-08 11:50 kubernetes/gci-trusty/rbac/kubelet-api-auth/kubelet-api-admin-role.yaml --rw-r--r-- root/root 427 2020-12-08 11:50 kubernetes/gci-trusty/rbac/kubelet-api-auth/kube-apiserver-kubelet-api-admin-binding.yaml --rw-r--r-- root/root 647 2020-12-08 11:50 kubernetes/gci-trusty/rbac/cluster-loadbalancing/glbc/user-rolebindings.yaml --rw-r--r-- root/root 2593 2020-12-08 11:50 kubernetes/gci-trusty/rbac/cluster-loadbalancing/glbc/roles.yaml -``` - -

-
- -##### Content of `kubernetes.tar.gz` (directories removed from list): - -*Summary* - -- Various scripts, `README`'s, `OWNERS` files, `BUILD` files, `.gitignore` files, etc. -- Source code for tools that live in `kubernetes/kubernetes`, but are not core components (e.g. binaries in `kubernetes-test` tarball) -- [LICENSES](https://github.com/kubernetes/kubernetes/tree/master/LICENSES) - -
Expand Contents -

- -``` -➜ $ tar -ztvf kubernetes.tar.gz --rw-r--r-- root/root 146 2020-12-08 12:16 kubernetes/client/README --rw-r--r-- root/root 208 2020-12-08 12:16 kubernetes/docs/OWNERS --rw-r--r-- root/root 346 2020-12-08 12:16 kubernetes/docs/BUILD --rw-r--r-- root/root 46 2020-12-08 12:16 kubernetes/docs/.gitignore --rwxr-xr-x root/root 2826 2020-12-08 12:16 kubernetes/cluster/kubectl.sh --rw-r--r-- root/root 2192 2020-12-08 12:16 kubernetes/cluster/pre-existing/util.sh --rw-r--r-- root/root 77 2020-12-08 12:16 kubernetes/cluster/pre-existing/OWNERS --rwxr-xr-x root/root 1414 2020-12-08 12:16 kubernetes/cluster/kube-util.sh --rw-r--r-- root/root 2417 2020-12-08 12:16 kubernetes/cluster/skeleton/util.sh --rw-r--r-- root/root 73 2020-12-08 12:16 kubernetes/cluster/skeleton/OWNERS --rw-r--r-- root/root 848 2020-12-08 12:16 kubernetes/cluster/kubemark/util.sh --rw-r--r-- root/root 1373 2020-12-08 12:16 kubernetes/cluster/kubemark/pre-existing/config-default.sh --rw-r--r-- root/root 2939 2020-12-08 12:16 kubernetes/cluster/kubemark/gce/config-default.sh --rw-r--r-- root/root 233 2020-12-08 12:16 kubernetes/cluster/kubemark/OWNERS --rw-r--r-- root/root 2138 2020-12-08 12:16 kubernetes/cluster/kubemark/iks/config-default.sh --rwxr-xr-x root/root 18035 2020-12-08 12:16 kubernetes/cluster/common.sh --rwxr-xr-x root/root 7476 2020-12-08 12:16 kubernetes/cluster/validate-cluster.sh --rw-r--r-- root/root 624 2020-12-08 12:16 kubernetes/cluster/images/etcd/cp/BUILD --rw-r--r-- root/root 1599 2020-12-08 12:16 kubernetes/cluster/images/etcd/cp/cp.go --rw-r--r-- root/root 1161 2020-12-08 12:16 kubernetes/cluster/images/etcd/Dockerfile --rw-r--r-- root/root 700 2020-12-08 12:16 kubernetes/cluster/images/etcd/cloudbuild.yaml --rw-r--r-- root/root 8964 2020-12-08 12:16 kubernetes/cluster/images/etcd/Makefile --rw-r--r-- root/root 137 2020-12-08 12:16 kubernetes/cluster/images/etcd/OWNERS --rwxr-xr-x root/root 836 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate-if-needed.sh --rw-r--r-- root/root 4374 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/data_dir.go --rw-r--r-- root/root 3442 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/options_test.go --rw-r--r-- root/root 5980 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/versions.go --rw-r--r-- root/root 2634 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/versions_test.go --rw-r--r-- root/root 752 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/util_others.go --rw-r--r-- root/root 13 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/testdata/datadir_with_version/version.txt --rw-r--r-- root/root 0 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/testdata/datadir_without_version/.placeholder --rw-r--r-- root/root 4613 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/data_dir_test.go --rw-r--r-- root/root 1474 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/copy_file.go --rw-r--r-- root/root 3885 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/migrate.go --rw-r--r-- root/root 11043 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/integration_test.go --rw-r--r-- root/root 7437 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/migrate_client.go --rw-r--r-- root/root 720 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/utils_windows.go --rw-r--r-- root/root 6578 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/migrator.go --rw-r--r-- root/root 3563 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/BUILD --rw-r--r-- root/root 3880 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/migrate_server.go --rw-r--r-- root/root 9790 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/options.go --rw-r--r-- root/root 2933 2020-12-08 12:16 kubernetes/cluster/images/etcd/README.md --rw-r--r-- root/root 862 2020-12-08 12:16 kubernetes/cluster/images/kubemark/Dockerfile --rw-r--r-- root/root 1268 2020-12-08 12:16 kubernetes/cluster/images/kubemark/Makefile --rw-r--r-- root/root 173 2020-12-08 12:16 kubernetes/cluster/images/kubemark/OWNERS --rw-r--r-- root/root 791 2020-12-08 12:16 kubernetes/cluster/images/kubemark/BUILD --rw-r--r-- root/root 687 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/Dockerfile --rw-r--r-- root/root 250 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/etcd-version-monitor.yaml --rw-r--r-- root/root 11758 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/etcd-version-monitor.go --rw-r--r-- root/root 1515 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/Makefile --rw-r--r-- root/root 79 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/OWNERS --rw-r--r-- root/root 1056 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/BUILD --rw-r--r-- root/root 1356 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/README.md --rw-r--r-- root/root 107 2020-12-08 12:16 kubernetes/cluster/images/OWNERS --rw-r--r-- root/root 1538 2020-12-08 12:16 kubernetes/cluster/images/conformance/conformance-e2e.yaml --rw-r--r-- root/root 1007 2020-12-08 12:16 kubernetes/cluster/images/conformance/Dockerfile --rwxr-xr-x root/root 1294 2020-12-08 12:16 kubernetes/cluster/images/conformance/conformance-e2e.sh --rw-r--r-- root/root 2548 2020-12-08 12:16 kubernetes/cluster/images/conformance/Makefile --rw-r--r-- root/root 2345 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/tar.go --rw-r--r-- root/root 785 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/Makefile --rw-r--r-- root/root 3738 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/tar_test.go --rw-r--r-- root/root 2739 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/cmd.go --rw-r--r-- root/root 3663 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/e2erunner.go --rw-r--r-- root/root 1052 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/BUILD --rw-r--r-- root/root 3793 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/cmd_test.go --rw-r--r-- root/root 2542 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/const.go --rw-r--r-- root/root 0 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/README.md --rw-r--r-- root/root 1695 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/env_test.go --rw-r--r-- root/root 1896 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/env.go --rwxr-xr-x root/root 2271 2020-12-08 12:16 kubernetes/cluster/images/conformance/run_e2e.sh --rw-r--r-- root/root 334 2020-12-08 12:16 kubernetes/cluster/images/conformance/OWNERS --rw-r--r-- root/root 1879 2020-12-08 12:16 kubernetes/cluster/images/conformance/BUILD --rw-r--r-- root/root 1376 2020-12-08 12:16 kubernetes/cluster/images/conformance/README.md --rwxr-xr-x root/root 6149 2020-12-08 12:16 kubernetes/cluster/gce/upgrade-aliases.sh --rw-r--r-- root/root 6093 2020-12-08 12:16 kubernetes/cluster/gce/windows/configure.ps1 --rw-r--r-- root/root 7498 2020-12-08 12:16 kubernetes/cluster/gce/windows/README-GCE-Windows-kube-up.md --rw-r--r-- root/root 82204 2020-12-08 12:16 kubernetes/cluster/gce/windows/k8s-node-setup.psm1 --rwxr-xr-x root/root 2656 2020-12-08 12:16 kubernetes/cluster/gce/windows/node-helper.sh --rw-r--r-- root/root 189 2020-12-08 12:16 kubernetes/cluster/gce/windows/OWNERS --rw-r--r-- root/root 1121 2020-12-08 12:16 kubernetes/cluster/gce/windows/BUILD --rw-r--r-- root/root 9675 2020-12-08 12:16 kubernetes/cluster/gce/windows/testonly/user-profile.psm1 --rw-r--r-- root/root 11389 2020-12-08 12:16 kubernetes/cluster/gce/windows/testonly/install-ssh.psm1 --rw-r--r-- root/root 21811 2020-12-08 12:16 kubernetes/cluster/gce/windows/common.psm1 --rwxr-xr-x root/root 22249 2020-12-08 12:16 kubernetes/cluster/gce/windows/smoke-test.sh --rwxr-xr-x root/root 146797 2020-12-08 12:16 kubernetes/cluster/gce/util.sh --rwxr-xr-x root/root 29153 2020-12-08 12:16 kubernetes/cluster/gce/config-test.sh --rw-r--r-- root/root 2845 2020-12-08 12:16 kubernetes/cluster/gce/manifests/glbc.manifest --rw-r--r-- root/root 1289 2020-12-08 12:16 kubernetes/cluster/gce/manifests/abac-authz-policy.jsonl --rw-r--r-- root/root 1579 2020-12-08 12:16 kubernetes/cluster/gce/manifests/kube-addon-manager.yaml --rw-r--r-- root/root 3624 2020-12-08 12:16 kubernetes/cluster/gce/manifests/etcd.manifest --rw-r--r-- root/root 1931 2020-12-08 12:16 kubernetes/cluster/gce/manifests/kube-proxy.manifest --rw-r--r-- root/root 143 2020-12-08 12:16 kubernetes/cluster/gce/manifests/OWNERS --rw-r--r-- root/root 1765 2020-12-08 12:16 kubernetes/cluster/gce/manifests/kube-scheduler.manifest --rw-r--r-- root/root 1074 2020-12-08 12:16 kubernetes/cluster/gce/manifests/BUILD --rw-r--r-- root/root 3680 2020-12-08 12:16 kubernetes/cluster/gce/manifests/cluster-autoscaler.manifest --rw-r--r-- root/root 1641 2020-12-08 12:16 kubernetes/cluster/gce/manifests/konnectivity-server.yaml --rw-r--r-- root/root 2970 2020-12-08 12:16 kubernetes/cluster/gce/manifests/kube-controller-manager.manifest --rw-r--r-- root/root 4216 2020-12-08 12:16 kubernetes/cluster/gce/manifests/kube-apiserver.manifest --rwxr-xr-x root/root 3734 2020-12-08 12:16 kubernetes/cluster/gce/list-resources.sh -lrwxrwxrwx root/root 0 2020-12-08 12:16 kubernetes/cluster/gce/ubuntu -> gci --rw-r--r-- root/root 5809 2020-12-08 12:16 kubernetes/cluster/gce/gci/apiserver_etcd_test.go --rwxr-xr-x root/root 1192 2020-12-08 12:16 kubernetes/cluster/gce/gci/helper.sh --rw-r--r-- root/root 9980 2020-12-08 12:16 kubernetes/cluster/gce/gci/audit_policy_test.go --rw-r--r-- root/root 24524 2020-12-08 12:16 kubernetes/cluster/gce/gci/configure.sh --rw-r--r-- root/root 4158 2020-12-08 12:16 kubernetes/cluster/gce/gci/append_or_replace_prefixed_line_test.go --rw-r--r-- root/root 4979 2020-12-08 12:16 kubernetes/cluster/gce/gci/configure_helper_test.go --rw-r--r-- root/root 1163 2020-12-08 12:16 kubernetes/cluster/gce/gci/testdata/kube-apiserver/base.template --rw-r--r-- root/root 271 2020-12-08 12:16 kubernetes/cluster/gce/gci/testdata/kube-apiserver/kms.template --rw-r--r-- root/root 856 2020-12-08 12:16 kubernetes/cluster/gce/gci/testdata/kube-apiserver/etcd.template --rwxr-xr-x root/root 8993 2020-12-08 12:16 kubernetes/cluster/gce/gci/master-helper.sh --rw-r--r-- root/root 4140 2020-12-08 12:16 kubernetes/cluster/gce/gci/health-monitor.sh --rwxr-xr-x root/root 1082 2020-12-08 12:16 kubernetes/cluster/gce/gci/shutdown.sh --rw-r--r-- root/root 25526 2020-12-08 12:16 kubernetes/cluster/gce/gci/configure-kubeapiserver.sh --rw-r--r-- root/root 745 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/Dockerfile --rw-r--r-- root/root 862 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/Makefile --rw-r--r-- root/root 2912 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/mounter.go --rw-r--r-- root/root 367 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/Changelog --rw-r--r-- root/root 578 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/BUILD --rwxr-xr-x root/root 2478 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/stage-upload.sh --rw-r--r-- root/root 8 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/.gitignore --rw-r--r-- root/root 6236 2020-12-08 12:16 kubernetes/cluster/gce/gci/apiserver_kms_test.go --rw-r--r-- root/root 118780 2020-12-08 12:16 kubernetes/cluster/gce/gci/configure-helper.sh --rw-r--r-- root/root 3930 2020-12-08 12:16 kubernetes/cluster/gce/gci/node.yaml --rwxr-xr-x root/root 5974 2020-12-08 12:16 kubernetes/cluster/gce/gci/flexvolume_node_setup.sh --rwxr-xr-x root/root 2010 2020-12-08 12:16 kubernetes/cluster/gce/gci/node-helper.sh --rw-r--r-- root/root 144 2020-12-08 12:16 kubernetes/cluster/gce/gci/OWNERS --rw-r--r-- root/root 2887 2020-12-08 12:16 kubernetes/cluster/gce/gci/BUILD --rw-r--r-- root/root 1109 2020-12-08 12:16 kubernetes/cluster/gce/gci/kube-master-internal-route.sh --rw-r--r-- root/root 4785 2020-12-08 12:16 kubernetes/cluster/gce/gci/master.yaml --rw-r--r-- root/root 6640 2020-12-08 12:16 kubernetes/cluster/gce/gci/README.md --rw-r--r-- root/root 442 2020-12-08 12:16 kubernetes/cluster/gce/OWNERS --rw-r--r-- root/root 5631 2020-12-08 12:16 kubernetes/cluster/gce/config-common.sh --rwxr-xr-x root/root 27134 2020-12-08 12:16 kubernetes/cluster/gce/config-default.sh --rw-r--r-- root/root 583 2020-12-08 12:16 kubernetes/cluster/gce/BUILD --rwxr-xr-x root/root 1427 2020-12-08 12:16 kubernetes/cluster/gce/delete-stranded-load-balancers.sh --rwxr-xr-x root/root 25740 2020-12-08 12:16 kubernetes/cluster/gce/upgrade.sh --rw-r--r-- root/root 409 2020-12-08 12:16 kubernetes/cluster/gce/addons/konnectivity-agent/konnectivity-rbac.yaml --rw-r--r-- root/root 197 2020-12-08 12:16 kubernetes/cluster/gce/addons/konnectivity-agent/konnectivity-agent-rbac.yaml --rw-r--r-- root/root 2023 2020-12-08 12:16 kubernetes/cluster/gce/addons/konnectivity-agent/konnectivity-agent-ds.yaml --rw-r--r-- root/root 2434 2020-12-08 12:16 kubernetes/cluster/gce/addons/node-termination-handler/daemonset.yaml --rw-r--r-- root/root 287 2020-12-08 12:16 kubernetes/cluster/gce/addons/node-termination-handler/README --rw-r--r-- root/root 791 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/privileged.yaml --rw-r--r-- root/root 572 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder-role.yaml --rw-r--r-- root/root 878 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder.yaml --rw-r--r-- root/root 535 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/kube-system-binding.yaml --rw-r--r-- root/root 643 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder-binding.yaml --rw-r--r-- root/root 425 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/kube-proxy-binding.yaml --rw-r--r-- root/root 364 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/unprivileged-addon-role.yaml --rw-r--r-- root/root 742 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/node-binding.yaml --rw-r--r-- root/root 1577 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/unprivileged-addon.yaml --rw-r--r-- root/root 330 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/privileged-role.yaml --rw-r--r-- root/root 226 2020-12-08 12:16 kubernetes/cluster/gce/addons/limit-range/limit-range.yaml --rw-r--r-- root/root 682 2020-12-08 12:16 kubernetes/cluster/gce/addons/BUILD --rw-r--r-- root/root 644 2020-12-08 12:16 kubernetes/cluster/gce/addons/admission-resource-quota-critical-pods/resource-quota.yaml --rw-r--r-- root/root 685 2020-12-08 12:16 kubernetes/cluster/gce/addons/loadbalancing/cloud-provider-binding.yaml --rw-r--r-- root/root 1540 2020-12-08 12:16 kubernetes/cluster/gce/addons/loadbalancing/cloud-provider-role.yaml --rw-r--r-- root/root 357 2020-12-08 12:16 kubernetes/cluster/gce/addons/README.md -lrwxrwxrwx root/root 0 2020-12-08 12:16 kubernetes/cluster/gce/custom -> gci -lrwxrwxrwx root/root 0 2020-12-08 12:16 kubernetes/cluster/gce/cos -> gci --rw-r--r-- root/root 307 2020-12-08 12:16 kubernetes/cluster/OWNERS --rwxr-xr-x root/root 1112 2020-12-08 12:16 kubernetes/cluster/kube-down.sh --rwxr-xr-x root/root 9005 2020-12-08 12:16 kubernetes/cluster/get-kube.sh --rw-r--r-- root/root 1235 2020-12-08 12:16 kubernetes/cluster/BUILD --rwxr-xr-x root/root 9459 2020-12-08 12:16 kubernetes/cluster/get-kube-binaries.sh --rw-r--r-- root/root 419 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/auth-reader.yaml --rw-r--r-- root/root 388 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/metrics-apiservice.yaml --rw-r--r-- root/root 3352 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/metrics-server-deployment.yaml --rw-r--r-- root/root 188 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/OWNERS --rw-r--r-- root/root 398 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/auth-delegator.yaml --rw-r--r-- root/root 844 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/resource-reader.yaml --rw-r--r-- root/root 336 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/metrics-server-service.yaml --rw-r--r-- root/root 1227 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/README.md --rw-r--r-- root/root 322 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-image/README.md --rw-r--r-- root/root 16675 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-configmap-old.yaml --rw-r--r-- root/root 190 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-ds-sa.yaml --rw-r--r-- root/root 2366 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/event-exporter.yaml --rw-r--r-- root/root 350 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-role.yaml --rw-r--r-- root/root 415 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-binding.yaml --rw-r--r-- root/root 356 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp-role.yaml --rw-r--r-- root/root 427 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp-binding.yaml --rw-r--r-- root/root 1189 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp.yaml --rw-r--r-- root/root 1281 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp.yaml --rw-r--r-- root/root 194 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/OWNERS --rw-r--r-- root/root 18765 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-configmap.yaml --rw-r--r-- root/root 968 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/scaler-deployment.yaml --rw-r--r-- root/root 1009 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/scaler-rbac.yaml --rw-r--r-- root/root 323 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/scaler-policy.yaml --rw-r--r-- root/root 4216 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-ds.yaml --rw-r--r-- root/root 2775 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/README.md --rw-r--r-- root/root 397 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/standalone/npd-binding.yaml --rw-r--r-- root/root 78 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/MAINTAINERS.md --rw-r--r-- root/root 2507 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/npd.yaml --rw-r--r-- root/root 423 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/podsecuritypolicies/npd-psp-binding.yaml --rw-r--r-- root/root 389 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/kubelet-user-standalone/npd-binding.yaml --rw-r--r-- root/root 127 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/OWNERS --rw-r--r-- root/root 192 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/README.md --rw-r--r-- root/root 261 2020-12-08 12:16 kubernetes/cluster/addons/storage-class/aws/default.yaml --rw-r--r-- root/root 241 2020-12-08 12:16 kubernetes/cluster/addons/storage-class/openstack/default.yaml --rw-r--r-- root/root 228 2020-12-08 12:16 kubernetes/cluster/addons/storage-class/vsphere/default.yaml --rw-r--r-- root/root 245 2020-12-08 12:16 kubernetes/cluster/addons/storage-class/azure/default.yaml --rw-r--r-- root/root 300 2020-12-08 12:16 kubernetes/cluster/addons/storage-class/gce/default.yaml --rw-r--r-- root/root 269 2020-12-08 12:16 kubernetes/cluster/addons/storage-class/local/default.yaml --rw-r--r-- root/root 1021 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-deployment.yaml --rw-r--r-- root/root 329 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-role.yaml --rw-r--r-- root/root 321 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-clusterrolebinding.yaml --rw-r--r-- root/root 1037 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-vertical-autoscaler-deployment.yaml --rw-r--r-- root/root 331 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/networkset-crd.yaml --rw-r--r-- root/root 2020 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-deployment.yaml --rw-r--r-- root/root 147 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-serviceaccount.yaml --rw-r--r-- root/root 352 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/globalnetworksets-crd.yaml --rw-r--r-- root/root 312 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/ippool-crd.yaml --rw-r--r-- root/root 356 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/globalfelixconfig-crd.yaml --rw-r--r-- root/root 356 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-service.yaml --rw-r--r-- root/root 293 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-vertical-autoscaler-clusterrole.yaml --rw-r--r-- root/root 148 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-cpva-serviceaccount.yaml --rw-r--r-- root/root 369 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/podsecuritypolicies/calico-node-psp-binding.yaml --rw-r--r-- root/root 352 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/bgpconfigurations-crd.yaml --rw-r--r-- root/root 342 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/blockaffinity-crd.yaml --rw-r--r-- root/root 414 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-vertical-autoscaler-configmap.yaml --rw-r--r-- root/root 308 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-cpva-clusterrole.yaml --rw-r--r-- root/root 345 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/networkpolicies-crd.yaml --rw-r--r-- root/root 360 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/clusterinformations-crd.yaml --rw-r--r-- root/root 316 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/bgppeers-crd.yaml --rw-r--r-- root/root 303 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-clusterrolebinding.yaml --rw-r--r-- root/root 336 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/hostendpoints-crd.yaml --rw-r--r-- root/root 170 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/OWNERS --rw-r--r-- root/root 348 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/globalbgpconfig-crd.yaml --rw-r--r-- root/root 360 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/felixconfigurations-crd.yaml --rw-r--r-- root/root 328 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/ipamhandle-crd.yaml --rw-r--r-- root/root 324 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-cpva-clusterrolebinding.yaml --rw-r--r-- root/root 6099 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-node-daemonset.yaml --rw-r--r-- root/root 410 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-configmap.yaml --rw-r--r-- root/root 324 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/ipamblock-crd.yaml --rw-r--r-- root/root 3380 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-clusterrole.yaml --rw-r--r-- root/root 226 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-clusterrole.yaml --rw-r--r-- root/root 143 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-serviceaccount.yaml --rw-r--r-- root/root 366 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/globalnetworkpolicy-crd.yaml --rw-r--r-- root/root 409 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-node-vertical-autoscaler-configmap.yaml --rw-r--r-- root/root 321 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-vertical-autoscaler-clusterrolebinding.yaml --rw-r--r-- root/root 1029 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-node-vertical-autoscaler-deployment.yaml --rw-r--r-- root/root 328 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/ipamconfig-crd.yaml --rw-r--r-- root/root 147 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-vertical-autoscaler-serviceaccount.yaml --rw-r--r-- root/root 332 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-rolebinding.yaml --rw-r--r-- root/root 409 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/README.md --rw-r--r-- root/root 2941 2020-12-08 12:16 kubernetes/cluster/addons/volumesnapshots/volume-snapshot-controller/rbac-volume-snapshot-controller.yaml --rw-r--r-- root/root 675 2020-12-08 12:16 kubernetes/cluster/addons/volumesnapshots/volume-snapshot-controller/volume-snapshot-controller-deployment.yaml --rw-r--r-- root/root 91 2020-12-08 12:16 kubernetes/cluster/addons/volumesnapshots/OWNERS --rw-r--r-- root/root 5888 2020-12-08 12:16 kubernetes/cluster/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml --rw-r--r-- root/root 19001 2020-12-08 12:16 kubernetes/cluster/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshots.yaml --rw-r--r-- root/root 22543 2020-12-08 12:16 kubernetes/cluster/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml --rw-r--r-- root/root 49 2020-12-08 12:16 kubernetes/cluster/addons/dns-horizontal-autoscaler/MAINTAINERS.md --rw-r--r-- root/root 107 2020-12-08 12:16 kubernetes/cluster/addons/dns-horizontal-autoscaler/OWNERS --rw-r--r-- root/root 3354 2020-12-08 12:16 kubernetes/cluster/addons/dns-horizontal-autoscaler/dns-horizontal-autoscaler.yaml --rw-r--r-- root/root 596 2020-12-08 12:16 kubernetes/cluster/addons/dns-horizontal-autoscaler/README.md --rw-r--r-- root/root 2507 2020-12-08 12:16 kubernetes/cluster/addons/metadata-proxy/gce/metadata-proxy.yaml --rw-r--r-- root/root 427 2020-12-08 12:16 kubernetes/cluster/addons/metadata-proxy/gce/podsecuritypolicies/metadata-proxy-psp-binding.yaml --rw-r--r-- root/root 149 2020-12-08 12:16 kubernetes/cluster/addons/metadata-proxy/OWNERS --rw-r--r-- root/root 153 2020-12-08 12:16 kubernetes/cluster/addons/metadata-proxy/README.md --rw-r--r-- root/root 425 2020-12-08 12:16 kubernetes/cluster/addons/ip-masq-agent/podsecuritypolicies/ip-masq-agent-psp-binding.yaml --rw-r--r-- root/root 1748 2020-12-08 12:16 kubernetes/cluster/addons/ip-masq-agent/ip-masq-agent.yaml --rw-r--r-- root/root 136 2020-12-08 12:16 kubernetes/cluster/addons/ip-masq-agent/OWNERS --rw-r--r-- root/root 2226 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/go.mod --rw-r--r-- root/root 1127 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/Dockerfile --rwxr-xr-x root/root 871 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/Makefile --rw-r--r-- root/root 23010 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/go.sum --rw-r--r-- root/root 4576 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go --rw-r--r-- root/root 330 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/config/log4j2.properties --rw-r--r-- root/root 205 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/config/elasticsearch.yml --rw-r--r-- root/root 1195 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/BUILD --rwxr-xr-x root/root 1040 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/run.sh --rw-r--r-- root/root 32 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/.gitignore --rw-r--r-- root/root 2190 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Dockerfile --rw-r--r-- root/root 865 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Makefile --rwxr-xr-x root/root 1052 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/entrypoint.sh --rw-r--r-- root/root 267 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/fluent.conf --rw-r--r-- root/root 451 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Gemfile --rw-r--r-- root/root 662 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/README.md --rw-r--r-- root/root 399 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/podsecuritypolicies/es-psp-binding.yaml --rw-r--r-- root/root 1519 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/kibana-deployment.yaml --rw-r--r-- root/root 189 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/OWNERS --rw-r--r-- root/root 3186 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-statefulset.yaml --rw-r--r-- root/root 354 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/kibana-service.yaml --rw-r--r-- root/root 580 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-service.yaml --rw-r--r-- root/root 16125 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-configmap.yaml --rw-r--r-- root/root 4550 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/README.md --rw-r--r-- root/root 2581 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-ds.yaml --rw-r--r-- root/root 242 2020-12-08 12:16 kubernetes/cluster/addons/dashboard/MAINTAINERS.md --rw-r--r-- root/root 6878 2020-12-08 12:16 kubernetes/cluster/addons/dashboard/dashboard.yaml --rw-r--r-- root/root 147 2020-12-08 12:16 kubernetes/cluster/addons/dashboard/OWNERS --rw-r--r-- root/root 281 2020-12-08 12:16 kubernetes/cluster/addons/dashboard/README.md --rw-r--r-- root/root 100 2020-12-08 12:16 kubernetes/cluster/addons/OWNERS --rw-r--r-- root/root 433 2020-12-08 12:16 kubernetes/cluster/addons/metadata-agent/stackdriver/podsecuritypolicies/metadata-agent-psp-binding.yaml --rw-r--r-- root/root 685 2020-12-08 12:16 kubernetes/cluster/addons/metadata-agent/stackdriver/metadata-agent-rbac.yaml --rw-r--r-- root/root 3581 2020-12-08 12:16 kubernetes/cluster/addons/metadata-agent/stackdriver/metadata-agent.yaml --rw-r--r-- root/root 183 2020-12-08 12:16 kubernetes/cluster/addons/metadata-agent/OWNERS --rw-r--r-- root/root 132 2020-12-08 12:16 kubernetes/cluster/addons/metadata-agent/README.md --rw-r--r-- root/root 1075 2020-12-08 12:16 kubernetes/cluster/addons/dns/coredns/Makefile --rw-r--r-- root/root 5009 2020-12-08 12:16 kubernetes/cluster/addons/dns/coredns/coredns.yaml.sed --rw-r--r-- root/root 287 2020-12-08 12:16 kubernetes/cluster/addons/dns/coredns/transforms2sed.sed --rw-r--r-- root/root 4957 2020-12-08 12:16 kubernetes/cluster/addons/dns/coredns/coredns.yaml.base --rw-r--r-- root/root 5007 2020-12-08 12:16 kubernetes/cluster/addons/dns/coredns/coredns.yaml.in --rw-r--r-- root/root 344 2020-12-08 12:16 kubernetes/cluster/addons/dns/coredns/transforms2salt.sed --rw-r--r-- root/root 129 2020-12-08 12:16 kubernetes/cluster/addons/dns/OWNERS --rw-r--r-- root/root 7245 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/kube-dns.yaml.in --rw-r--r-- root/root 7252 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/kube-dns.yaml.sed --rw-r--r-- root/root 1077 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/Makefile --rw-r--r-- root/root 287 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/transforms2sed.sed --rw-r--r-- root/root 7211 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/kube-dns.yaml.base --rw-r--r-- root/root 344 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/transforms2salt.sed --rw-r--r-- root/root 1841 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/README.md --rw-r--r-- root/root 5334 2020-12-08 12:16 kubernetes/cluster/addons/dns/nodelocaldns/nodelocaldns.yaml --rw-r--r-- root/root 2644 2020-12-08 12:16 kubernetes/cluster/addons/dns/nodelocaldns/README.md --rw-r--r-- root/root 2024 2020-12-08 12:16 kubernetes/cluster/addons/kube-proxy/kube-proxy-ds.yaml --rw-r--r-- root/root 149 2020-12-08 12:16 kubernetes/cluster/addons/kube-proxy/OWNERS --rw-r--r-- root/root 488 2020-12-08 12:16 kubernetes/cluster/addons/kube-proxy/kube-proxy-rbac.yaml --rw-r--r-- root/root 765 2020-12-08 12:16 kubernetes/cluster/addons/BUILD --rw-r--r-- root/root 745 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/Dockerfile --rw-r--r-- root/root 2065 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/Makefile --rwxr-xr-x root/root 3147 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/kube-addons-main.sh --rw-r--r-- root/root 3879 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/CHANGELOG.md --rw-r--r-- root/root 119 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/OWNERS --rwxr-xr-x root/root 9523 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/kube-addons-test.sh --rwxr-xr-x root/root 11053 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/kube-addons.sh --rw-r--r-- root/root 2544 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/README.md --rw-r--r-- root/root 1587 2020-12-08 12:16 kubernetes/cluster/addons/device-plugins/nvidia-gpu/daemonset.yaml --rw-r--r-- root/root 577 2020-12-08 12:16 kubernetes/cluster/addons/cluster-loadbalancing/glbc/default-svc.yaml --rw-r--r-- root/root 1108 2020-12-08 12:16 kubernetes/cluster/addons/cluster-loadbalancing/glbc/default-svc-controller.yaml --rw-r--r-- root/root 309 2020-12-08 12:16 kubernetes/cluster/addons/cluster-loadbalancing/glbc/README.md --rw-r--r-- root/root 102 2020-12-08 12:16 kubernetes/cluster/addons/cluster-loadbalancing/OWNERS --rw-r--r-- root/root 782 2020-12-08 12:16 kubernetes/cluster/addons/rbac/legacy-kubelet-user-disable/kubelet-binding.yaml --rw-r--r-- root/root 565 2020-12-08 12:16 kubernetes/cluster/addons/rbac/legacy-kubelet-user/kubelet-binding.yaml --rw-r--r-- root/root 1399 2020-12-08 12:16 kubernetes/cluster/addons/rbac/kubelet-cert-rotation/kubelet-certificate-management.yaml --rw-r--r-- root/root 2089 2020-12-08 12:16 kubernetes/cluster/addons/rbac/cluster-autoscaler/cluster-autoscaler-rbac.yaml --rw-r--r-- root/root 338 2020-12-08 12:16 kubernetes/cluster/addons/rbac/kubelet-api-auth/kubelet-api-admin-role.yaml --rw-r--r-- root/root 427 2020-12-08 12:16 kubernetes/cluster/addons/rbac/kubelet-api-auth/kube-apiserver-kubelet-api-admin-binding.yaml --rw-r--r-- root/root 647 2020-12-08 12:16 kubernetes/cluster/addons/rbac/cluster-loadbalancing/glbc/user-rolebindings.yaml --rw-r--r-- root/root 2593 2020-12-08 12:16 kubernetes/cluster/addons/rbac/cluster-loadbalancing/glbc/roles.yaml --rw-r--r-- root/root 1655 2020-12-08 12:16 kubernetes/cluster/addons/README.md --rw-r--r-- root/root 2326 2020-12-08 12:16 kubernetes/cluster/log-dump/logexporter-daemonset.yaml --rw-r--r-- root/root 173 2020-12-08 12:16 kubernetes/cluster/log-dump/OWNERS --rwxr-xr-x root/root 29094 2020-12-08 12:16 kubernetes/cluster/log-dump/log-dump.sh --rw-r--r-- root/root 1007 2020-12-08 12:16 kubernetes/cluster/log-dump/README.md --rwxr-xr-x root/root 2483 2020-12-08 12:16 kubernetes/cluster/kube-up.sh --rw-r--r-- root/root 331 2020-12-08 12:16 kubernetes/cluster/README.md --rw-r--r-- root/root 2959 2020-12-08 12:16 kubernetes/hack/lib/protoc.sh --rwxr-xr-x root/root 25774 2020-12-08 12:16 kubernetes/hack/lib/util.sh --rw-r--r-- root/root 7345 2020-12-08 12:16 kubernetes/hack/lib/version.sh --rw-r--r-- root/root 12383 2020-12-08 12:16 kubernetes/hack/lib/test.sh --rw-r--r-- root/root 4443 2020-12-08 12:16 kubernetes/hack/lib/logging.sh --rwxr-xr-x root/root 5406 2020-12-08 12:16 kubernetes/hack/lib/etcd.sh --rw-r--r-- root/root 2313 2020-12-08 12:16 kubernetes/hack/lib/swagger.sh --rwxr-xr-x root/root 29049 2020-12-08 12:16 kubernetes/hack/lib/golang.sh --rw-r--r-- root/root 502 2020-12-08 12:16 kubernetes/hack/lib/BUILD --rwxr-xr-x root/root 5694 2020-12-08 12:16 kubernetes/hack/lib/init.sh --rw-r--r-- root/root 24 2020-12-08 12:16 kubernetes/hack/lib/.gitattributes --rw-r--r-- root/root 84317 2020-12-08 12:16 kubernetes/server/kubernetes-manifests.tar.gz --rw-r--r-- root/root 153 2020-12-08 12:16 kubernetes/server/README --rw-r--r-- root/root 8 2020-12-08 12:16 kubernetes/version --rw-r--r-- root/root 3386 2020-12-08 12:16 kubernetes/README.md --rw-r--r-- root/root 11596 2020-12-08 12:16 kubernetes/LICENSES/LICENSE --rw-r--r-- root/root 78 2020-12-08 12:16 kubernetes/LICENSES/OWNERS --rw-r--r-- root/root 11492 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.mongodb.org/mongo-driver/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:16 kubernetes/LICENSES/vendor/google.golang.org/appengine/LICENSE --rw-r--r-- root/root 11483 2020-12-08 12:16 kubernetes/LICENSES/vendor/google.golang.org/grpc/LICENSE --rw-r--r-- root/root 1612 2020-12-08 12:16 kubernetes/LICENSES/vendor/google.golang.org/protobuf/LICENSE --rw-r--r-- root/root 1598 2020-12-08 12:16 kubernetes/LICENSES/vendor/google.golang.org/api/LICENSE --rw-r--r-- root/root 11491 2020-12-08 12:16 kubernetes/LICENSES/vendor/google.golang.org/genproto/LICENSE --rw-r--r-- root/root 1228 2020-12-08 12:16 kubernetes/LICENSES/vendor/bitbucket.org/bertimus9/systemstat/LICENSE --rw-r--r-- root/root 11469 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.etcd.io/etcd/LICENSE --rw-r--r-- root/root 1191 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.etcd.io/bbolt/LICENSE --rw-r--r-- root/root 1598 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/oauth2/LICENSE --rw-r--r-- root/root 1592 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/net/LICENSE --rw-r--r-- root/root 1594 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/text/LICENSE --rw-r--r-- root/root 1592 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/sys/LICENSE --rw-r--r-- root/root 1596 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/tools/LICENSE --rw-r--r-- root/root 1594 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/time/LICENSE --rw-r--r-- root/root 1598 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/crypto/LICENSE --rw-r--r-- root/root 1600 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/xerrors/LICENSE --rw-r--r-- root/root 1592 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/mod/LICENSE --rw-r--r-- root/root 1594 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/sync/LICENSE --rw-r--r-- root/root 11477 2020-12-08 12:16 kubernetes/LICENSES/vendor/cloud.google.com/go/LICENSE --rw-r--r-- root/root 1187 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.uber.org/zap/LICENSE --rw-r--r-- root/root 1192 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.uber.org/multierr/LICENSE --rw-r--r-- root/root 1188 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.uber.org/atomic/LICENSE --rw-r--r-- root/root 2670 2020-12-08 12:16 kubernetes/LICENSES/vendor/sigs.k8s.io/yaml/LICENSE --rw-r--r-- root/root 11480 2020-12-08 12:16 kubernetes/LICENSES/vendor/sigs.k8s.io/kustomize/LICENSE --rw-r--r-- root/root 11548 2020-12-08 12:16 kubernetes/LICENSES/vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/LICENSE --rw-r--r-- root/root 11510 2020-12-08 12:16 kubernetes/LICENSES/vendor/sigs.k8s.io/structured-merge-diff/v4/LICENSE --rw-r--r-- root/root 11470 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.opencensus.io/LICENSE --rw-r--r-- root/root 1647 2020-12-08 12:16 kubernetes/LICENSES/vendor/gonum.org/v1/gonum/LICENSE --rw-r--r-- root/root 1637 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/gcfg.v1/LICENSE --rw-r--r-- root/root 1396 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/warnings.v0/LICENSE --rw-r--r-- root/root 1222 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE --rw-r--r-- root/root 1721 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/tomb.v1/LICENSE --rw-r--r-- root/root 1658 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/fsnotify.v1/LICENSE --rw-r--r-- root/root 11491 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/square/go-jose.v2/LICENSE --rw-r--r-- root/root 10364 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/ini.v1/LICENSE --rw-r--r-- root/root 1635 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/inf.v0/LICENSE --rw-r--r-- root/root 2264 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/yaml.v3/LICENSE --rw-r--r-- root/root 11470 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/yaml.v2/LICENSE --rw-r--r-- root/root 1227 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/asaskevich/govalidator/LICENSE --rw-r--r-- root/root 11509 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/LICENSE --rw-r--r-- root/root 1672 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/grpc-gateway/LICENSE --rw-r--r-- root/root 11509 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-middleware/LICENSE --rw-r--r-- root/root 2516 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/storageos/go-api/LICENSE --rw-r--r-- root/root 11470 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/thecodeteam/goscaleio/LICENSE --rw-r--r-- root/root 1212 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Microsoft/hcsshim/LICENSE --rw-r--r-- root/root 1216 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Microsoft/go-winio/LICENSE --rw-r--r-- root/root 1215 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/subosito/gotenv/LICENSE --rw-r--r-- root/root 1190 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mailru/easyjson/LICENSE --rw-r--r-- root/root 1209 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/cespare/xxhash/v2/LICENSE --rw-r--r-- root/root 1213 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/satori/go.uuid/LICENSE --rw-r--r-- root/root 11500 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/modern-go/concurrent/LICENSE --rw-r--r-- root/root 11496 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/modern-go/reflect2/LICENSE --rw-r--r-- root/root 11465 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/jonboulle/clockwork/LICENSE --rw-r--r-- root/root 11501 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/pquerna/cachecontrol/LICENSE --rw-r--r-- root/root 704 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/inconshreveable/mousetrap/LICENSE --rw-r--r-- root/root 10894 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/docker/docker/LICENSE --rw-r--r-- root/root 10900 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/docker/spdystream/LICENSE --rw-r--r-- root/root 11466 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/docker/distribution/LICENSE --rw-r--r-- root/root 10905 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/docker/go-connections/LICENSE --rw-r--r-- root/root 10893 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/docker/go-units/LICENSE --rw-r--r-- root/root 1613 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/golang/protobuf/LICENSE --rw-r--r-- root/root 11483 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/golang/mock/LICENSE --rw-r--r-- root/root 10410 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/golang/groupcache/LICENSE --rw-r--r-- root/root 1209 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/morikuni/aec/LICENSE --rw-r--r-- root/root 11491 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/swag/LICENSE --rw-r--r-- root/root 11495 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/strfmt/LICENSE --rw-r--r-- root/root 11509 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/jsonreference/LICENSE --rw-r--r-- root/root 11497 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/runtime/LICENSE --rw-r--r-- root/root 11491 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/spec/LICENSE --rw-r--r-- root/root 11505 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/jsonpointer/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/loads/LICENSE --rw-r--r-- root/root 11499 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/validate/LICENSE --rw-r--r-- root/root 11495 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/errors/LICENSE --rw-r--r-- root/root 11499 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/analysis/LICENSE --rw-r--r-- root/root 1207 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/tmc/grpc-websocket-proxy/LICENSE --rw-r--r-- root/root 11524 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/container-storage-interface/spec/LICENSE --rw-r--r-- root/root 1212 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-stack/stack/LICENSE --rw-r--r-- root/root 1201 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/peterbourgon/diskv/LICENSE --rw-r--r-- root/root 1216 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/emicklei/go-restful/LICENSE --rw-r--r-- root/root 1618 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/PuerkitoBio/urlesc/LICENSE --rw-r--r-- root/root 1610 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/PuerkitoBio/purell/LICENSE --rw-r--r-- root/root 1233 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mitchellh/go-wordwrap/LICENSE --rw-r--r-- root/root 1232 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mitchellh/mapstructure/LICENSE --rw-r--r-- root/root 1209 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/xiang90/probing/LICENSE --rw-r--r-- root/root 10901 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/clusterhq/flocker-go/LICENSE --rw-r--r-- root/root 11537 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/aws/aws-sdk-go/LICENSE --rw-r--r-- root/root 1217 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/robfig/cron/LICENSE --rw-r--r-- root/root 11500 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/euank/go-kmsg-parser/LICENSE --rw-r--r-- root/root 1211 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/rubiojr/go-vhd/LICENSE --rw-r--r-- root/root 1514 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/seccomp/libseccomp-golang/LICENSE --rw-r--r-- root/root 2682 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/ghodss/yaml/LICENSE --rw-r--r-- root/root 11498 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/caddyserver/caddy/LICENSE --rw-r--r-- root/root 10933 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/vishvananda/netns/LICENSE --rw-r--r-- root/root 10937 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/vishvananda/netlink/LICENSE --rw-r--r-- root/root 1679 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/fsnotify/fsnotify/LICENSE --rw-r--r-- root/root 1236 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/shurcooL/sanitized_anchor_name/LICENSE --rw-r--r-- root/root 11468 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mistifyio/go-zfs/LICENSE --rw-r--r-- root/root 1215 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/sirupsen/logrus/LICENSE --rw-r--r-- root/root 1616 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/liggitt/tabwriter/LICENSE --rw-r--r-- root/root 1459 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/karrick/godirwalk/LICENSE --rw-r--r-- root/root 1607 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/willf/bitset/LICENSE --rw-r--r-- root/root 1608 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/google/go-cmp/LICENSE --rw-r--r-- root/root 1605 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/google/uuid/LICENSE --rw-r--r-- root/root 11485 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/google/btree/LICENSE --rw-r--r-- root/root 10898 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/google/cadvisor/LICENSE --rw-r--r-- root/root 11487 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/google/gofuzz/LICENSE --rw-r--r-- root/root 1736 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/miekg/dns/LICENSE --rw-r--r-- root/root 11504 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/opencontainers/selinux/LICENSE --rw-r--r-- root/root 10899 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/opencontainers/runc/LICENSE --rw-r--r-- root/root 10952 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/opencontainers/go-digest/LICENSE --rw-r--r-- root/root 10920 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/opencontainers/image-spec/LICENSE --rw-r--r-- root/root 10924 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/opencontainers/runtime-spec/LICENSE --rw-r--r-- root/root 11512 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/coredns/corefile-migration/LICENSE --rw-r--r-- root/root 1459 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/godbus/dbus/v5/LICENSE --rw-r--r-- root/root 11456 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/coreos/go-oidc/LICENSE --rw-r--r-- root/root 10410 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/coreos/go-systemd/LICENSE --rw-r--r-- root/root 10414 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/coreos/go-systemd/v22/LICENSE --rw-r--r-- root/root 11448 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/coreos/pkg/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/coreos/go-semver/LICENSE --rw-r--r-- root/root 1193 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/dgrijalva/jwt-go/LICENSE --rw-r--r-- root/root 10917 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/libopenstorage/openstorage/LICENSE --rw-r--r-- root/root 1449 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/gorilla/websocket/LICENSE --rw-r--r-- root/root 1563 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/russross/blackfriday/LICENSE --rw-r--r-- root/root 1566 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/russross/blackfriday/v2/LICENSE --rw-r--r-- root/root 1542 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/JeffAshton/win_pdh/LICENSE --rw-r--r-- root/root 1640 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/chai2010/gettext-go/LICENSE --rw-r--r-- root/root 11497 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/moby/sys/mountinfo/LICENSE --rw-r--r-- root/root 10886 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/moby/term/LICENSE --rw-r--r-- root/root 11446 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/moby/ipvs/LICENSE --rw-r--r-- root/root 11495 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mindprince/gonvml/LICENSE --rw-r--r-- root/root 11494 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/ishidawataru/sctp/LICENSE --rw-r--r-- root/root 11518 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/checkpoint-restore/go-criu/v4/LICENSE --rw-r--r-- root/root 1435 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/pkg/errors/LICENSE --rw-r--r-- root/root 11484 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-logr/logr/LICENSE --rw-r--r-- root/root 1230 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/blang/semver/LICENSE --rw-r--r-- root/root 11534 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE --rw-r--r-- root/root 1500 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/magiconair/properties/LICENSE --rw-r--r-- root/root 1185 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/beorn7/perks/LICENSE --rw-r--r-- root/root 11499 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/azure-sdk-for-go/LICENSE --rw-r--r-- root/root 10904 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/LICENSE --rw-r--r-- root/root 10911 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/logger/LICENSE --rw-r--r-- root/root 10918 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/adal/LICENSE --rw-r--r-- root/root 10916 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/to/LICENSE --rw-r--r-- root/root 10913 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/LICENSE --rw-r--r-- root/root 10919 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/mocks/LICENSE --rw-r--r-- root/root 10918 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/date/LICENSE --rw-r--r-- root/root 10924 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/validation/LICENSE --rw-r--r-- root/root 10912 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/tracing/LICENSE --rw-r--r-- root/root 1225 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-ansiterm/LICENSE --rw-r--r-- root/root 314 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-bindata/go-bindata/LICENSE --rw-r--r-- root/root 1201 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/form3tech-oss/jwt-go/LICENSE --rw-r--r-- root/root 899 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/davecgh/go-spew/LICENSE --rw-r--r-- root/root 1272 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/hpcloud/tail/LICENSE --rw-r--r-- root/root 1205 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/json-iterator/go/LICENSE --rw-r--r-- root/root 2737 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/daviddengcn/go-colortext/LICENSE --rw-r--r-- root/root 1267 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/cilium/ebpf/LICENSE --rw-r--r-- root/root 1620 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/elazarl/goproxy/LICENSE --rw-r--r-- root/root 1230 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/MakeNowJust/heredoc/LICENSE --rw-r--r-- root/root 1202 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/spf13/cast/LICENSE --rw-r--r-- root/root 10269 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/spf13/afero/LICENSE --rw-r--r-- root/root 1656 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/spf13/pflag/LICENSE --rw-r--r-- root/root 1204 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/spf13/viper/LICENSE --rw-r--r-- root/root 1228 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/spf13/jwalterweatherman/LICENSE --rw-r--r-- root/root 10269 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/spf13/cobra/LICENSE --rw-r--r-- root/root 1218 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/fvbommel/sortorder/LICENSE --rw-r--r-- root/root 1613 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mvdan/xurls/LICENSE --rw-r--r-- root/root 1698 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/cyphar/filepath-securejoin/LICENSE --rw-r--r-- root/root 1634 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/evanphx/json-patch/LICENSE --rw-r--r-- root/root 1614 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/quobyte/api/LICENSE --rw-r--r-- root/root 1208 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/armon/circbuf/LICENSE --rw-r--r-- root/root 721 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/NYTimes/gziphandler/LICENSE --rw-r--r-- root/root 11498 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/googleapis/gnostic/LICENSE --rw-r--r-- root/root 1614 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/googleapis/gax-go/v2/LICENSE --rw-r--r-- root/root 1683 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/munnerz/goautoneg/LICENSE --rw-r--r-- root/root 1227 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/exponent-io/jsonpath/LICENSE --rw-r--r-- root/root 1202 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mohae/deepcopy/LICENSE --rw-r--r-- root/root 1294 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/konsorten/go-windows-terminal-sequences/LICENSE --rw-r--r-- root/root 702 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/jmespath/go-jmespath/LICENSE --rw-r--r-- root/root 1242 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/pelletier/go-toml/LICENSE --rw-r--r-- root/root 1187 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/onsi/gomega/LICENSE --rw-r--r-- root/root 1187 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/onsi/ginkgo/LICENSE --rw-r--r-- root/root 1225 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/cpuguy83/go-md2man/v2/LICENSE --rw-r--r-- root/root 1665 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/imdario/mergo/LICENSE --rw-r--r-- root/root 389 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/heketi/heketi/LICENSE --rw-r--r-- root/root 1225 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-ozzo/ozzo-validation/LICENSE --rw-r--r-- root/root 1238 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/stretchr/testify/LICENSE --rw-r--r-- root/root 1246 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/stretchr/objx/LICENSE --rw-r--r-- root/root 1215 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/fatih/camelcase/LICENSE --rw-r--r-- root/root 11493 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/vmware/govmomi/LICENSE --rw-r--r-- root/root 1459 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/syndtr/gocapability/LICENSE --rw-r--r-- root/root 10895 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mrunalp/fileutils/LICENSE --rw-r--r-- root/root 11487 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/soheilhy/cmux/LICENSE --rw-r--r-- root/root 1275 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/dustin/go-humanize/LICENSE --rw-r--r-- root/root 11507 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/containernetworking/cni/LICENSE --rw-r--r-- root/root 11494 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/prometheus/common/LICENSE --rw-r--r-- root/root 11506 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/prometheus/client_model/LICENSE --rw-r--r-- root/root 11494 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/prometheus/procfs/LICENSE --rw-r--r-- root/root 11508 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/prometheus/client_golang/LICENSE --rw-r--r-- root/root 16106 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/hashicorp/hcl/LICENSE --rw-r--r-- root/root 16064 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/hashicorp/golang-lru/LICENSE --rw-r--r-- root/root 1584 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/pmezard/go-difflib/LICENSE --rw-r--r-- root/root 11492 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/containerd/ttrpc/LICENSE --rw-r--r-- root/root 10904 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/containerd/console/LICENSE --rw-r--r-- root/root 11496 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/containerd/cgroups/LICENSE --rw-r--r-- root/root 10910 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/containerd/containerd/LICENSE --rw-r--r-- root/root 1228 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/gregjones/httpcache/LICENSE --rw-r--r-- root/root 1647 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mxk/go-flowrate/LICENSE --rw-r--r-- root/root 10896 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/gophercloud/gophercloud/LICENSE --rw-r--r-- root/root 1810 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/gogo/protobuf/LICENSE --rw-r--r-- root/root 1217 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/lithammer/dedent/LICENSE --rw-r--r-- root/root 11435 2020-12-08 12:16 kubernetes/LICENSES/vendor/k8s.io/heapster/LICENSE --rw-r--r-- root/root 11486 2020-12-08 12:16 kubernetes/LICENSES/vendor/k8s.io/system-validators/LICENSE --rw-r--r-- root/root 11477 2020-12-08 12:16 kubernetes/LICENSES/vendor/k8s.io/kube-openapi/LICENSE --rw-r--r-- root/root 11459 2020-12-08 12:16 kubernetes/LICENSES/vendor/k8s.io/gengo/LICENSE --rw-r--r-- root/root 10382 2020-12-08 12:16 kubernetes/LICENSES/vendor/k8s.io/klog/v2/LICENSE --rw-r--r-- root/root 11463 2020-12-08 12:16 kubernetes/LICENSES/vendor/k8s.io/utils/LICENSE -``` - -

-
- -> Content of `kubernetes-test.tar.gz` and `kubernetes-src.tar.gz` are not present in this document because of the amount of information present inside. First contains content of https://github.com/kubernetes/kubernetes/tree/master/test + some helpers, and the second contains source code of kubernetes. +## Container Images + +| | 386 | amd64 | arm64 | ppc64le | s390x | +| ----------------------- | :-: | :---: | :---: | :-----: | :---: | +| conformance | ✅ | ✅ | ✅ | ✅ | ✅ | +| kube-apiserver | ✅ | ✅ | ✅ | ✅ | ✅ | +| kube-controller-manager | ✅ | ✅ | ✅ | ✅ | ✅ | +| kube-proxy | ✅ | ✅ | ✅ | ✅ | ✅ | +| kube-scheduler | ✅ | ✅ | ✅ | ✅ | ✅ | +| kubectl | ✅ | ✅ | ✅ | ✅ | ✅ | + +## Storage + +### Binaries + +| | darwin/amd64 | linux/386 | linux/amd64 | linux/arm64 | linux/ppc64le | linux/s390x | windows/386 | windows/amd64 | +| ----------------------- | ------------------------------------- | ------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | --------------------------- | --------------------------- | +| apiextensions-apiserver | | | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | | | +| kube-apiserver | | | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | | | +| kube-controller-manager | | | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | | | +| kube-proxy | | | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | | exe
sha256
sha512 | +| kube-scheduler | | | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | [binary_file]
docker_tag
tar
sha256
sha512 | | | +| kubeadm | | | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | | exe
sha256
sha512 | +| kubectl | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | exe
sha256
sha512 | exe
sha256
sha512 | +| kubelet | | | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | | exe
sha256
sha512 | +| mounter | | | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | [binary_file]
sha256
sha512 | | | + +### Extra files (for GCE) + +There are also corresponding `*.sha256` and `*.sha512` for every file below + +| File | +| --------------------------- | +| configure.sh | +| master.yaml | +| node.yaml | +| shutdown.sh | +| windows/common.psm1 | +| windows/configure.ps1 | +| windows/install-ssh.psm1 | +| windows/k8s-node-setup.psm1 | +| windows/user-profile.psm1 | + +### Tar archives + +There are also corresponding `*.sha256` and `*.sha512` for every file below + +| File | darwin/amd64 | linux/386 | linux/amd64 | linux/arm64 | linux/ppc64le | linux/s390x | windows/386 | windows/amd64 | portable | +| ------------------------------------------ | :----------: | :-------: | :---------: | :---------: | :-----------: | :---------: | :---------: | :-----------: | :------: | +| kubernetes-client-**[system-arch]**.tar.gz | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | | +| kubernetes-node-**[system-arch]**.tar.gz | | | ✅ | ✅ | ✅ | ✅ | | ✅ | | +| kubernetes-server-**[system-arch]**.tar.gz | | | ✅ | ✅ | ✅ | ✅ | | | | +| kubernetes-test-**[system-arch]**.tar.gz | ✅ | | ✅ | ✅ | ✅ | ✅ | | ✅ | ✅ | +| kubernetes-manifests.tar.gz | | | | | | | | | | +| kubernetes-test.tar.gz | | | | | | | | | | +| kubernetes-src.tar.gz | | | | | | | | | | +| kubernetes.tar.gz | | | | | | | | | | + +### Other (uncategorized) files + +| File | +| ----------------------- | +| release/latest-1.16.txt | +| release/latest-1.txt | +| release/latest.txt | + +Files in directory: **archive** + +Comment: It looks like in the directory: **archive** we can find: + +- copy of **anago** (script used for building artifacts) +- shallow copy of kubernetes repository + +Staged files +It looks like all staged files were copied to release directory, but please be aware there was no effort taken to compare them. + +## Packages + +### RPMs + +| | aarch64 | ppc64le | s390x | x86_64 | +| ----------------------------------------------- | :-----: | :-----: | :---: | :----: | +| cri-tools-**[k8s-version]**.**[arch]**.rpm | ✅ | ✅ | ✅ | ✅ | +| kubectl-**[k8s-version]**.**[arch]**.rpm | ✅ | ✅ | ✅ | ✅ | +| kubernetes-cni-**[cni-version]**.**[arch]**.rpm | ✅ | ✅ | ✅ | ✅ | +| kubeadm-**[k8s-version]**.**[arch]**.rpm | ✅ | ✅ | ✅ | ✅ | +| kubelet-**[k8s-version]**.**[arch]**.rpm | ✅ | ✅ | ✅ | ✅ | +| repodata/**[checksum]**-primary.sqlite.bz2 | ✅ | ✅ | ✅ | ✅ | +| repodata/**[checksum]**-filelists.sqlite.bz2 | ✅ | ✅ | ✅ | ✅ | +| repodata/**[checksum]**-primary.xml.gz | ✅ | ✅ | ✅ | ✅ | +| repodata/**[checksum]**-other.sqlite.bz2 | ✅ | ✅ | ✅ | ✅ | +| repodata/**[checksum]**-other.xml.gz | ✅ | ✅ | ✅ | ✅ | +| repodata/**[checksum]**-filelists.xml.gz | ✅ | ✅ | ✅ | ✅ | +| repodata/repomd.xml | ✅ | ✅ | ✅ | ✅ | + +### Debs + +| File | amd64 | arm64 | ppc64el | s390x | +| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| cri-tools**\*[cri-tools-version]\*\*\***[arch]\*\*.deb | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | +| kubeadm**\*[k8s-version]\*\*\***[arch]\*\*.deb | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | +| kubectl**\*[k8s-version]\*\*\***[arch]\*\*.deb | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | +| kubelet**\*[k8s-version]\*\*\***[arch]\*\*.deb | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | +| kubernetes-cni**\*[k8s-cni-version]\*\*\***[arch]\*\*.deb | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | nightly/bionic
nightly/jessie
nightly/sid
nightly/stretch
nightly/trusty
nightly/xenial

stable/bionic
stable/jessie
stable/sid
stable/stretch
stable/trusty
stable/xenial

unstable/bionic
unstable/jessie
unstable/sid
unstable/stretch
unstable/trusty
unstable/xenial | + +### Contents of tar archives + +All contents listed below are artifacts of the [v1.20.0 release](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#v1200). + +##### Content of `kubernetes-client-[system-arch].tar.gz` on example of `kubernetes-client-linux-386.tar.gz` (directories removed from list): + +*Summary* + +- Binary for `kubectl` + +
Expand Contents +

+ +``` +➜ $ tar -ztvf kubernetes-client-linux-386.tar.gz +-rwxr-xr-x root/root 35266560 2020-12-08 12:10 kubernetes/client/bin/kubectl +``` + +

+
+ +##### Content of `kubernetes-node-[system-arch].tar.gz` on example of `kubernetes-node-linux-amd64.tar.gz` (directories removed from list): + +*Summary* + +- Kubernetes source tarball +- Binaries for `kubectl` / `kubeadm` / `kube-proxy` / `kubelet` +- [LICENSES](https://github.com/kubernetes/kubernetes/tree/master/LICENSES) + +
Expand Contents +

+ +``` +➜ $ tar -ztvf kubernetes-node-linux-amd64.tar.gz +-rw-r--r-- root/root 35790270 2020-12-08 12:11 kubernetes/kubernetes-src.tar.gz +-rwxr-xr-x root/root 40230912 2020-12-08 12:11 kubernetes/node/bin/kubectl +-rwxr-xr-x root/root 39219200 2020-12-08 12:11 kubernetes/node/bin/kubeadm +-rwxr-xr-x root/root 39485440 2020-12-08 12:11 kubernetes/node/bin/kube-proxy +-rwxr-xr-x root/root 113974120 2020-12-08 12:11 kubernetes/node/bin/kubelet +-rw-r--r-- root/root 11596 2020-12-08 12:11 kubernetes/LICENSES/LICENSE +-rw-r--r-- root/root 78 2020-12-08 12:11 kubernetes/LICENSES/OWNERS +-rw-r--r-- root/root 11492 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.mongodb.org/mongo-driver/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:11 kubernetes/LICENSES/vendor/google.golang.org/appengine/LICENSE +-rw-r--r-- root/root 11483 2020-12-08 12:11 kubernetes/LICENSES/vendor/google.golang.org/grpc/LICENSE +-rw-r--r-- root/root 1612 2020-12-08 12:11 kubernetes/LICENSES/vendor/google.golang.org/protobuf/LICENSE +-rw-r--r-- root/root 1598 2020-12-08 12:11 kubernetes/LICENSES/vendor/google.golang.org/api/LICENSE +-rw-r--r-- root/root 11491 2020-12-08 12:11 kubernetes/LICENSES/vendor/google.golang.org/genproto/LICENSE +-rw-r--r-- root/root 1228 2020-12-08 12:11 kubernetes/LICENSES/vendor/bitbucket.org/bertimus9/systemstat/LICENSE +-rw-r--r-- root/root 11469 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.etcd.io/etcd/LICENSE +-rw-r--r-- root/root 1191 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.etcd.io/bbolt/LICENSE +-rw-r--r-- root/root 1598 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/oauth2/LICENSE +-rw-r--r-- root/root 1592 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/net/LICENSE +-rw-r--r-- root/root 1594 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/text/LICENSE +-rw-r--r-- root/root 1592 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/sys/LICENSE +-rw-r--r-- root/root 1596 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/tools/LICENSE +-rw-r--r-- root/root 1594 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/time/LICENSE +-rw-r--r-- root/root 1598 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/crypto/LICENSE +-rw-r--r-- root/root 1600 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/xerrors/LICENSE +-rw-r--r-- root/root 1592 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/mod/LICENSE +-rw-r--r-- root/root 1594 2020-12-08 12:11 kubernetes/LICENSES/vendor/golang.org/x/sync/LICENSE +-rw-r--r-- root/root 11477 2020-12-08 12:11 kubernetes/LICENSES/vendor/cloud.google.com/go/LICENSE +-rw-r--r-- root/root 1187 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.uber.org/zap/LICENSE +-rw-r--r-- root/root 1192 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.uber.org/multierr/LICENSE +-rw-r--r-- root/root 1188 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.uber.org/atomic/LICENSE +-rw-r--r-- root/root 2670 2020-12-08 12:11 kubernetes/LICENSES/vendor/sigs.k8s.io/yaml/LICENSE +-rw-r--r-- root/root 11480 2020-12-08 12:11 kubernetes/LICENSES/vendor/sigs.k8s.io/kustomize/LICENSE +-rw-r--r-- root/root 11548 2020-12-08 12:11 kubernetes/LICENSES/vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/LICENSE +-rw-r--r-- root/root 11510 2020-12-08 12:11 kubernetes/LICENSES/vendor/sigs.k8s.io/structured-merge-diff/v4/LICENSE +-rw-r--r-- root/root 11470 2020-12-08 12:11 kubernetes/LICENSES/vendor/go.opencensus.io/LICENSE +-rw-r--r-- root/root 1647 2020-12-08 12:11 kubernetes/LICENSES/vendor/gonum.org/v1/gonum/LICENSE +-rw-r--r-- root/root 1637 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/gcfg.v1/LICENSE +-rw-r--r-- root/root 1396 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/warnings.v0/LICENSE +-rw-r--r-- root/root 1222 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE +-rw-r--r-- root/root 1721 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/tomb.v1/LICENSE +-rw-r--r-- root/root 1658 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/fsnotify.v1/LICENSE +-rw-r--r-- root/root 11491 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/square/go-jose.v2/LICENSE +-rw-r--r-- root/root 10364 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/ini.v1/LICENSE +-rw-r--r-- root/root 1635 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/inf.v0/LICENSE +-rw-r--r-- root/root 2264 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/yaml.v3/LICENSE +-rw-r--r-- root/root 11470 2020-12-08 12:11 kubernetes/LICENSES/vendor/gopkg.in/yaml.v2/LICENSE +-rw-r--r-- root/root 1227 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/asaskevich/govalidator/LICENSE +-rw-r--r-- root/root 11509 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/LICENSE +-rw-r--r-- root/root 1672 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/grpc-gateway/LICENSE +-rw-r--r-- root/root 11509 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-middleware/LICENSE +-rw-r--r-- root/root 2516 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/storageos/go-api/LICENSE +-rw-r--r-- root/root 11470 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/thecodeteam/goscaleio/LICENSE +-rw-r--r-- root/root 1212 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Microsoft/hcsshim/LICENSE +-rw-r--r-- root/root 1216 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Microsoft/go-winio/LICENSE +-rw-r--r-- root/root 1215 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/subosito/gotenv/LICENSE +-rw-r--r-- root/root 1190 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mailru/easyjson/LICENSE +-rw-r--r-- root/root 1209 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/cespare/xxhash/v2/LICENSE +-rw-r--r-- root/root 1213 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/satori/go.uuid/LICENSE +-rw-r--r-- root/root 11500 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/modern-go/concurrent/LICENSE +-rw-r--r-- root/root 11496 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/modern-go/reflect2/LICENSE +-rw-r--r-- root/root 11465 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/jonboulle/clockwork/LICENSE +-rw-r--r-- root/root 11501 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/pquerna/cachecontrol/LICENSE +-rw-r--r-- root/root 704 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/inconshreveable/mousetrap/LICENSE +-rw-r--r-- root/root 10894 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/docker/docker/LICENSE +-rw-r--r-- root/root 10900 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/docker/spdystream/LICENSE +-rw-r--r-- root/root 11466 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/docker/distribution/LICENSE +-rw-r--r-- root/root 10905 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/docker/go-connections/LICENSE +-rw-r--r-- root/root 10893 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/docker/go-units/LICENSE +-rw-r--r-- root/root 1613 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/golang/protobuf/LICENSE +-rw-r--r-- root/root 11483 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/golang/mock/LICENSE +-rw-r--r-- root/root 10410 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/golang/groupcache/LICENSE +-rw-r--r-- root/root 1209 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/morikuni/aec/LICENSE +-rw-r--r-- root/root 11491 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/swag/LICENSE +-rw-r--r-- root/root 11495 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/strfmt/LICENSE +-rw-r--r-- root/root 11509 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/jsonreference/LICENSE +-rw-r--r-- root/root 11497 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/runtime/LICENSE +-rw-r--r-- root/root 11491 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/spec/LICENSE +-rw-r--r-- root/root 11505 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/jsonpointer/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/loads/LICENSE +-rw-r--r-- root/root 11499 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/validate/LICENSE +-rw-r--r-- root/root 11495 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/errors/LICENSE +-rw-r--r-- root/root 11499 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-openapi/analysis/LICENSE +-rw-r--r-- root/root 1207 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/tmc/grpc-websocket-proxy/LICENSE +-rw-r--r-- root/root 11524 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/container-storage-interface/spec/LICENSE +-rw-r--r-- root/root 1212 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-stack/stack/LICENSE +-rw-r--r-- root/root 1201 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/peterbourgon/diskv/LICENSE +-rw-r--r-- root/root 1216 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/emicklei/go-restful/LICENSE +-rw-r--r-- root/root 1618 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/PuerkitoBio/urlesc/LICENSE +-rw-r--r-- root/root 1610 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/PuerkitoBio/purell/LICENSE +-rw-r--r-- root/root 1233 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mitchellh/go-wordwrap/LICENSE +-rw-r--r-- root/root 1232 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mitchellh/mapstructure/LICENSE +-rw-r--r-- root/root 1209 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/xiang90/probing/LICENSE +-rw-r--r-- root/root 10901 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/clusterhq/flocker-go/LICENSE +-rw-r--r-- root/root 11537 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/aws/aws-sdk-go/LICENSE +-rw-r--r-- root/root 1217 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/robfig/cron/LICENSE +-rw-r--r-- root/root 11500 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/euank/go-kmsg-parser/LICENSE +-rw-r--r-- root/root 1211 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/rubiojr/go-vhd/LICENSE +-rw-r--r-- root/root 1514 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/seccomp/libseccomp-golang/LICENSE +-rw-r--r-- root/root 2682 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/ghodss/yaml/LICENSE +-rw-r--r-- root/root 11498 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/caddyserver/caddy/LICENSE +-rw-r--r-- root/root 10933 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/vishvananda/netns/LICENSE +-rw-r--r-- root/root 10937 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/vishvananda/netlink/LICENSE +-rw-r--r-- root/root 1679 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/fsnotify/fsnotify/LICENSE +-rw-r--r-- root/root 1236 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/shurcooL/sanitized_anchor_name/LICENSE +-rw-r--r-- root/root 11468 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mistifyio/go-zfs/LICENSE +-rw-r--r-- root/root 1215 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/sirupsen/logrus/LICENSE +-rw-r--r-- root/root 1616 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/liggitt/tabwriter/LICENSE +-rw-r--r-- root/root 1459 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/karrick/godirwalk/LICENSE +-rw-r--r-- root/root 1607 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/willf/bitset/LICENSE +-rw-r--r-- root/root 1608 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/google/go-cmp/LICENSE +-rw-r--r-- root/root 1605 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/google/uuid/LICENSE +-rw-r--r-- root/root 11485 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/google/btree/LICENSE +-rw-r--r-- root/root 10898 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/google/cadvisor/LICENSE +-rw-r--r-- root/root 11487 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/google/gofuzz/LICENSE +-rw-r--r-- root/root 1736 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/miekg/dns/LICENSE +-rw-r--r-- root/root 11504 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/opencontainers/selinux/LICENSE +-rw-r--r-- root/root 10899 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/opencontainers/runc/LICENSE +-rw-r--r-- root/root 10952 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/opencontainers/go-digest/LICENSE +-rw-r--r-- root/root 10920 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/opencontainers/image-spec/LICENSE +-rw-r--r-- root/root 10924 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/opencontainers/runtime-spec/LICENSE +-rw-r--r-- root/root 11512 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/coredns/corefile-migration/LICENSE +-rw-r--r-- root/root 1459 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/godbus/dbus/v5/LICENSE +-rw-r--r-- root/root 11456 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/coreos/go-oidc/LICENSE +-rw-r--r-- root/root 10410 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/coreos/go-systemd/LICENSE +-rw-r--r-- root/root 10414 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/coreos/go-systemd/v22/LICENSE +-rw-r--r-- root/root 11448 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/coreos/pkg/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/coreos/go-semver/LICENSE +-rw-r--r-- root/root 1193 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/dgrijalva/jwt-go/LICENSE +-rw-r--r-- root/root 10917 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/libopenstorage/openstorage/LICENSE +-rw-r--r-- root/root 1449 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/gorilla/websocket/LICENSE +-rw-r--r-- root/root 1563 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/russross/blackfriday/LICENSE +-rw-r--r-- root/root 1566 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/russross/blackfriday/v2/LICENSE +-rw-r--r-- root/root 1542 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/JeffAshton/win_pdh/LICENSE +-rw-r--r-- root/root 1640 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/chai2010/gettext-go/LICENSE +-rw-r--r-- root/root 11497 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/moby/sys/mountinfo/LICENSE +-rw-r--r-- root/root 10886 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/moby/term/LICENSE +-rw-r--r-- root/root 11446 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/moby/ipvs/LICENSE +-rw-r--r-- root/root 11495 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mindprince/gonvml/LICENSE +-rw-r--r-- root/root 11494 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/ishidawataru/sctp/LICENSE +-rw-r--r-- root/root 11518 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/checkpoint-restore/go-criu/v4/LICENSE +-rw-r--r-- root/root 1435 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/pkg/errors/LICENSE +-rw-r--r-- root/root 11484 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-logr/logr/LICENSE +-rw-r--r-- root/root 1230 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/blang/semver/LICENSE +-rw-r--r-- root/root 11534 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE +-rw-r--r-- root/root 1500 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/magiconair/properties/LICENSE +-rw-r--r-- root/root 1185 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/beorn7/perks/LICENSE +-rw-r--r-- root/root 11499 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/azure-sdk-for-go/LICENSE +-rw-r--r-- root/root 10904 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/LICENSE +-rw-r--r-- root/root 10911 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/logger/LICENSE +-rw-r--r-- root/root 10918 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/adal/LICENSE +-rw-r--r-- root/root 10916 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/to/LICENSE +-rw-r--r-- root/root 10913 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/LICENSE +-rw-r--r-- root/root 10919 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/mocks/LICENSE +-rw-r--r-- root/root 10918 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/date/LICENSE +-rw-r--r-- root/root 10924 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/validation/LICENSE +-rw-r--r-- root/root 10912 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/tracing/LICENSE +-rw-r--r-- root/root 1225 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/Azure/go-ansiterm/LICENSE +-rw-r--r-- root/root 314 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-bindata/go-bindata/LICENSE +-rw-r--r-- root/root 1201 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/form3tech-oss/jwt-go/LICENSE +-rw-r--r-- root/root 899 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/davecgh/go-spew/LICENSE +-rw-r--r-- root/root 1272 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/hpcloud/tail/LICENSE +-rw-r--r-- root/root 1205 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/json-iterator/go/LICENSE +-rw-r--r-- root/root 2737 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/daviddengcn/go-colortext/LICENSE +-rw-r--r-- root/root 1267 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/cilium/ebpf/LICENSE +-rw-r--r-- root/root 1620 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/elazarl/goproxy/LICENSE +-rw-r--r-- root/root 1230 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/MakeNowJust/heredoc/LICENSE +-rw-r--r-- root/root 1202 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/spf13/cast/LICENSE +-rw-r--r-- root/root 10269 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/spf13/afero/LICENSE +-rw-r--r-- root/root 1656 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/spf13/pflag/LICENSE +-rw-r--r-- root/root 1204 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/spf13/viper/LICENSE +-rw-r--r-- root/root 1228 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/spf13/jwalterweatherman/LICENSE +-rw-r--r-- root/root 10269 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/spf13/cobra/LICENSE +-rw-r--r-- root/root 1218 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/fvbommel/sortorder/LICENSE +-rw-r--r-- root/root 1613 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mvdan/xurls/LICENSE +-rw-r--r-- root/root 1698 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/cyphar/filepath-securejoin/LICENSE +-rw-r--r-- root/root 1634 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/evanphx/json-patch/LICENSE +-rw-r--r-- root/root 1614 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/quobyte/api/LICENSE +-rw-r--r-- root/root 1208 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/armon/circbuf/LICENSE +-rw-r--r-- root/root 721 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/NYTimes/gziphandler/LICENSE +-rw-r--r-- root/root 11498 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/googleapis/gnostic/LICENSE +-rw-r--r-- root/root 1614 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/googleapis/gax-go/v2/LICENSE +-rw-r--r-- root/root 1683 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/munnerz/goautoneg/LICENSE +-rw-r--r-- root/root 1227 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/exponent-io/jsonpath/LICENSE +-rw-r--r-- root/root 1202 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mohae/deepcopy/LICENSE +-rw-r--r-- root/root 1294 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/konsorten/go-windows-terminal-sequences/LICENSE +-rw-r--r-- root/root 702 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/jmespath/go-jmespath/LICENSE +-rw-r--r-- root/root 1242 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/pelletier/go-toml/LICENSE +-rw-r--r-- root/root 1187 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/onsi/gomega/LICENSE +-rw-r--r-- root/root 1187 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/onsi/ginkgo/LICENSE +-rw-r--r-- root/root 1225 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/cpuguy83/go-md2man/v2/LICENSE +-rw-r--r-- root/root 1665 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/imdario/mergo/LICENSE +-rw-r--r-- root/root 389 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/heketi/heketi/LICENSE +-rw-r--r-- root/root 1225 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/go-ozzo/ozzo-validation/LICENSE +-rw-r--r-- root/root 1238 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/stretchr/testify/LICENSE +-rw-r--r-- root/root 1246 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/stretchr/objx/LICENSE +-rw-r--r-- root/root 1215 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/fatih/camelcase/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/vmware/govmomi/LICENSE +-rw-r--r-- root/root 1459 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/syndtr/gocapability/LICENSE +-rw-r--r-- root/root 10895 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mrunalp/fileutils/LICENSE +-rw-r--r-- root/root 11487 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/soheilhy/cmux/LICENSE +-rw-r--r-- root/root 1275 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/dustin/go-humanize/LICENSE +-rw-r--r-- root/root 11507 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/containernetworking/cni/LICENSE +-rw-r--r-- root/root 11494 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/prometheus/common/LICENSE +-rw-r--r-- root/root 11506 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/prometheus/client_model/LICENSE +-rw-r--r-- root/root 11494 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/prometheus/procfs/LICENSE +-rw-r--r-- root/root 11508 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/prometheus/client_golang/LICENSE +-rw-r--r-- root/root 16106 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/hashicorp/hcl/LICENSE +-rw-r--r-- root/root 16064 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/hashicorp/golang-lru/LICENSE +-rw-r--r-- root/root 1584 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/pmezard/go-difflib/LICENSE +-rw-r--r-- root/root 11492 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/containerd/ttrpc/LICENSE +-rw-r--r-- root/root 10904 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/containerd/console/LICENSE +-rw-r--r-- root/root 11496 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/containerd/cgroups/LICENSE +-rw-r--r-- root/root 10910 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/containerd/containerd/LICENSE +-rw-r--r-- root/root 1228 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/gregjones/httpcache/LICENSE +-rw-r--r-- root/root 1647 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/mxk/go-flowrate/LICENSE +-rw-r--r-- root/root 10896 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/gophercloud/gophercloud/LICENSE +-rw-r--r-- root/root 1810 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/gogo/protobuf/LICENSE +-rw-r--r-- root/root 1217 2020-12-08 12:11 kubernetes/LICENSES/vendor/github.com/lithammer/dedent/LICENSE +-rw-r--r-- root/root 11435 2020-12-08 12:11 kubernetes/LICENSES/vendor/k8s.io/heapster/LICENSE +-rw-r--r-- root/root 11486 2020-12-08 12:11 kubernetes/LICENSES/vendor/k8s.io/system-validators/LICENSE +-rw-r--r-- root/root 11477 2020-12-08 12:11 kubernetes/LICENSES/vendor/k8s.io/kube-openapi/LICENSE +-rw-r--r-- root/root 11459 2020-12-08 12:11 kubernetes/LICENSES/vendor/k8s.io/gengo/LICENSE +-rw-r--r-- root/root 10382 2020-12-08 12:11 kubernetes/LICENSES/vendor/k8s.io/klog/v2/LICENSE +-rw-r--r-- root/root 11463 2020-12-08 12:11 kubernetes/LICENSES/vendor/k8s.io/utils/LICENSE +``` + +

+
+ +##### Content of `kubernetes-server-[system-arch].tar.gz` on example of `kubernetes-server-linux-amd64.tar.gz` (directories removed from list): + +*Summary* + +- Kubernetes source tarball (`kubernetes-src.tar.gz`) +- OCI image tarballs (`*.tar`) for `kube-proxy` / `kube-apiserver` / `kube-controller-manager` / `kube-scheduler` +- Docker tags (`*.docker_tag`) for `kube-proxy` / `kube-apiserver` / `kube-controller-manager` / `kube-scheduler` +- Binaries for `kube-proxy` / `kube-apiserver` / `kube-controller-manager` / `kube-scheduler` / `kubelet` / `kubeadm` / `mounter` +- [LICENSES](https://github.com/kubernetes/kubernetes/tree/master/LICENSES) + +
Expand Contents +

+ +``` +➜ $ tar -ztvf kubernetes-server-linux-amd64.tar.gz +-rw-r--r-- root/root 35790270 2020-12-08 12:12 kubernetes/kubernetes-src.tar.gz +-rw------- root/root 120378880 2020-12-08 12:11 kubernetes/server/bin/kube-proxy.tar +-rwxr-xr-x root/root 46665728 2020-12-08 12:12 kubernetes/server/bin/apiextensions-apiserver +-rw------- root/root 122924544 2020-12-08 12:11 kubernetes/server/bin/kube-apiserver.tar +-rw-r--r-- root/root 8 2020-12-08 12:11 kubernetes/server/bin/kube-controller-manager.docker_tag +-rwxr-xr-x root/root 40230912 2020-12-08 12:12 kubernetes/server/bin/kubectl +-rw-r--r-- root/root 8 2020-12-08 12:11 kubernetes/server/bin/kube-scheduler.docker_tag +-rw-r--r-- root/root 8 2020-12-08 12:11 kubernetes/server/bin/kube-proxy.docker_tag +-rwxr-xr-x root/root 44658688 2020-12-08 12:12 kubernetes/server/bin/kube-aggregator +-rwxr-xr-x root/root 1630208 2020-12-08 12:12 kubernetes/server/bin/mounter +-rwxr-xr-x root/root 42848256 2020-12-08 12:12 kubernetes/server/bin/kube-scheduler +-rwxr-xr-x root/root 112308224 2020-12-08 12:12 kubernetes/server/bin/kube-controller-manager +-rwxr-xr-x root/root 118128640 2020-12-08 12:12 kubernetes/server/bin/kube-apiserver +-rw------- root/root 47644160 2020-12-08 12:11 kubernetes/server/bin/kube-scheduler.tar +-rwxr-xr-x root/root 39219200 2020-12-08 12:12 kubernetes/server/bin/kubeadm +-rwxr-xr-x root/root 39485440 2020-12-08 12:12 kubernetes/server/bin/kube-proxy +-rw-r--r-- root/root 8 2020-12-08 12:11 kubernetes/server/bin/kube-apiserver.docker_tag +-rwxr-xr-x root/root 113974120 2020-12-08 12:12 kubernetes/server/bin/kubelet +-rw------- root/root 117104128 2020-12-08 12:11 kubernetes/server/bin/kube-controller-manager.tar +-rw-r--r-- root/root 11596 2020-12-08 12:12 kubernetes/LICENSES/LICENSE +-rw-r--r-- root/root 78 2020-12-08 12:12 kubernetes/LICENSES/OWNERS +-rw-r--r-- root/root 11492 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.mongodb.org/mongo-driver/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:12 kubernetes/LICENSES/vendor/google.golang.org/appengine/LICENSE +-rw-r--r-- root/root 11483 2020-12-08 12:12 kubernetes/LICENSES/vendor/google.golang.org/grpc/LICENSE +-rw-r--r-- root/root 1612 2020-12-08 12:12 kubernetes/LICENSES/vendor/google.golang.org/protobuf/LICENSE +-rw-r--r-- root/root 1598 2020-12-08 12:12 kubernetes/LICENSES/vendor/google.golang.org/api/LICENSE +-rw-r--r-- root/root 11491 2020-12-08 12:12 kubernetes/LICENSES/vendor/google.golang.org/genproto/LICENSE +-rw-r--r-- root/root 1228 2020-12-08 12:12 kubernetes/LICENSES/vendor/bitbucket.org/bertimus9/systemstat/LICENSE +-rw-r--r-- root/root 11469 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.etcd.io/etcd/LICENSE +-rw-r--r-- root/root 1191 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.etcd.io/bbolt/LICENSE +-rw-r--r-- root/root 1598 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/oauth2/LICENSE +-rw-r--r-- root/root 1592 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/net/LICENSE +-rw-r--r-- root/root 1594 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/text/LICENSE +-rw-r--r-- root/root 1592 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/sys/LICENSE +-rw-r--r-- root/root 1596 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/tools/LICENSE +-rw-r--r-- root/root 1594 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/time/LICENSE +-rw-r--r-- root/root 1598 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/crypto/LICENSE +-rw-r--r-- root/root 1600 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/xerrors/LICENSE +-rw-r--r-- root/root 1592 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/mod/LICENSE +-rw-r--r-- root/root 1594 2020-12-08 12:12 kubernetes/LICENSES/vendor/golang.org/x/sync/LICENSE +-rw-r--r-- root/root 11477 2020-12-08 12:12 kubernetes/LICENSES/vendor/cloud.google.com/go/LICENSE +-rw-r--r-- root/root 1187 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.uber.org/zap/LICENSE +-rw-r--r-- root/root 1192 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.uber.org/multierr/LICENSE +-rw-r--r-- root/root 1188 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.uber.org/atomic/LICENSE +-rw-r--r-- root/root 2670 2020-12-08 12:12 kubernetes/LICENSES/vendor/sigs.k8s.io/yaml/LICENSE +-rw-r--r-- root/root 11480 2020-12-08 12:12 kubernetes/LICENSES/vendor/sigs.k8s.io/kustomize/LICENSE +-rw-r--r-- root/root 11548 2020-12-08 12:12 kubernetes/LICENSES/vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/LICENSE +-rw-r--r-- root/root 11510 2020-12-08 12:12 kubernetes/LICENSES/vendor/sigs.k8s.io/structured-merge-diff/v4/LICENSE +-rw-r--r-- root/root 11470 2020-12-08 12:12 kubernetes/LICENSES/vendor/go.opencensus.io/LICENSE +-rw-r--r-- root/root 1647 2020-12-08 12:12 kubernetes/LICENSES/vendor/gonum.org/v1/gonum/LICENSE +-rw-r--r-- root/root 1637 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/gcfg.v1/LICENSE +-rw-r--r-- root/root 1396 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/warnings.v0/LICENSE +-rw-r--r-- root/root 1222 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE +-rw-r--r-- root/root 1721 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/tomb.v1/LICENSE +-rw-r--r-- root/root 1658 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/fsnotify.v1/LICENSE +-rw-r--r-- root/root 11491 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/square/go-jose.v2/LICENSE +-rw-r--r-- root/root 10364 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/ini.v1/LICENSE +-rw-r--r-- root/root 1635 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/inf.v0/LICENSE +-rw-r--r-- root/root 2264 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/yaml.v3/LICENSE +-rw-r--r-- root/root 11470 2020-12-08 12:12 kubernetes/LICENSES/vendor/gopkg.in/yaml.v2/LICENSE +-rw-r--r-- root/root 1227 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/asaskevich/govalidator/LICENSE +-rw-r--r-- root/root 11509 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/LICENSE +-rw-r--r-- root/root 1672 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/grpc-gateway/LICENSE +-rw-r--r-- root/root 11509 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-middleware/LICENSE +-rw-r--r-- root/root 2516 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/storageos/go-api/LICENSE +-rw-r--r-- root/root 11470 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/thecodeteam/goscaleio/LICENSE +-rw-r--r-- root/root 1212 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Microsoft/hcsshim/LICENSE +-rw-r--r-- root/root 1216 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Microsoft/go-winio/LICENSE +-rw-r--r-- root/root 1215 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/subosito/gotenv/LICENSE +-rw-r--r-- root/root 1190 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mailru/easyjson/LICENSE +-rw-r--r-- root/root 1209 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/cespare/xxhash/v2/LICENSE +-rw-r--r-- root/root 1213 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/satori/go.uuid/LICENSE +-rw-r--r-- root/root 11500 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/modern-go/concurrent/LICENSE +-rw-r--r-- root/root 11496 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/modern-go/reflect2/LICENSE +-rw-r--r-- root/root 11465 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/jonboulle/clockwork/LICENSE +-rw-r--r-- root/root 11501 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/pquerna/cachecontrol/LICENSE +-rw-r--r-- root/root 704 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/inconshreveable/mousetrap/LICENSE +-rw-r--r-- root/root 10894 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/docker/docker/LICENSE +-rw-r--r-- root/root 10900 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/docker/spdystream/LICENSE +-rw-r--r-- root/root 11466 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/docker/distribution/LICENSE +-rw-r--r-- root/root 10905 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/docker/go-connections/LICENSE +-rw-r--r-- root/root 10893 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/docker/go-units/LICENSE +-rw-r--r-- root/root 1613 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/golang/protobuf/LICENSE +-rw-r--r-- root/root 11483 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/golang/mock/LICENSE +-rw-r--r-- root/root 10410 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/golang/groupcache/LICENSE +-rw-r--r-- root/root 1209 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/morikuni/aec/LICENSE +-rw-r--r-- root/root 11491 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/swag/LICENSE +-rw-r--r-- root/root 11495 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/strfmt/LICENSE +-rw-r--r-- root/root 11509 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/jsonreference/LICENSE +-rw-r--r-- root/root 11497 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/runtime/LICENSE +-rw-r--r-- root/root 11491 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/spec/LICENSE +-rw-r--r-- root/root 11505 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/jsonpointer/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/loads/LICENSE +-rw-r--r-- root/root 11499 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/validate/LICENSE +-rw-r--r-- root/root 11495 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/errors/LICENSE +-rw-r--r-- root/root 11499 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-openapi/analysis/LICENSE +-rw-r--r-- root/root 1207 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/tmc/grpc-websocket-proxy/LICENSE +-rw-r--r-- root/root 11524 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/container-storage-interface/spec/LICENSE +-rw-r--r-- root/root 1212 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-stack/stack/LICENSE +-rw-r--r-- root/root 1201 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/peterbourgon/diskv/LICENSE +-rw-r--r-- root/root 1216 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/emicklei/go-restful/LICENSE +-rw-r--r-- root/root 1618 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/PuerkitoBio/urlesc/LICENSE +-rw-r--r-- root/root 1610 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/PuerkitoBio/purell/LICENSE +-rw-r--r-- root/root 1233 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mitchellh/go-wordwrap/LICENSE +-rw-r--r-- root/root 1232 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mitchellh/mapstructure/LICENSE +-rw-r--r-- root/root 1209 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/xiang90/probing/LICENSE +-rw-r--r-- root/root 10901 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/clusterhq/flocker-go/LICENSE +-rw-r--r-- root/root 11537 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/aws/aws-sdk-go/LICENSE +-rw-r--r-- root/root 1217 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/robfig/cron/LICENSE +-rw-r--r-- root/root 11500 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/euank/go-kmsg-parser/LICENSE +-rw-r--r-- root/root 1211 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/rubiojr/go-vhd/LICENSE +-rw-r--r-- root/root 1514 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/seccomp/libseccomp-golang/LICENSE +-rw-r--r-- root/root 2682 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/ghodss/yaml/LICENSE +-rw-r--r-- root/root 11498 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/caddyserver/caddy/LICENSE +-rw-r--r-- root/root 10933 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/vishvananda/netns/LICENSE +-rw-r--r-- root/root 10937 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/vishvananda/netlink/LICENSE +-rw-r--r-- root/root 1679 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/fsnotify/fsnotify/LICENSE +-rw-r--r-- root/root 1236 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/shurcooL/sanitized_anchor_name/LICENSE +-rw-r--r-- root/root 11468 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mistifyio/go-zfs/LICENSE +-rw-r--r-- root/root 1215 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/sirupsen/logrus/LICENSE +-rw-r--r-- root/root 1616 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/liggitt/tabwriter/LICENSE +-rw-r--r-- root/root 1459 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/karrick/godirwalk/LICENSE +-rw-r--r-- root/root 1607 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/willf/bitset/LICENSE +-rw-r--r-- root/root 1608 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/google/go-cmp/LICENSE +-rw-r--r-- root/root 1605 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/google/uuid/LICENSE +-rw-r--r-- root/root 11485 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/google/btree/LICENSE +-rw-r--r-- root/root 10898 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/google/cadvisor/LICENSE +-rw-r--r-- root/root 11487 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/google/gofuzz/LICENSE +-rw-r--r-- root/root 1736 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/miekg/dns/LICENSE +-rw-r--r-- root/root 11504 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/opencontainers/selinux/LICENSE +-rw-r--r-- root/root 10899 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/opencontainers/runc/LICENSE +-rw-r--r-- root/root 10952 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/opencontainers/go-digest/LICENSE +-rw-r--r-- root/root 10920 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/opencontainers/image-spec/LICENSE +-rw-r--r-- root/root 10924 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/opencontainers/runtime-spec/LICENSE +-rw-r--r-- root/root 11512 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/coredns/corefile-migration/LICENSE +-rw-r--r-- root/root 1459 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/godbus/dbus/v5/LICENSE +-rw-r--r-- root/root 11456 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/coreos/go-oidc/LICENSE +-rw-r--r-- root/root 10410 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/coreos/go-systemd/LICENSE +-rw-r--r-- root/root 10414 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/coreos/go-systemd/v22/LICENSE +-rw-r--r-- root/root 11448 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/coreos/pkg/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/coreos/go-semver/LICENSE +-rw-r--r-- root/root 1193 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/dgrijalva/jwt-go/LICENSE +-rw-r--r-- root/root 10917 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/libopenstorage/openstorage/LICENSE +-rw-r--r-- root/root 1449 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/gorilla/websocket/LICENSE +-rw-r--r-- root/root 1563 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/russross/blackfriday/LICENSE +-rw-r--r-- root/root 1566 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/russross/blackfriday/v2/LICENSE +-rw-r--r-- root/root 1542 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/JeffAshton/win_pdh/LICENSE +-rw-r--r-- root/root 1640 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/chai2010/gettext-go/LICENSE +-rw-r--r-- root/root 11497 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/moby/sys/mountinfo/LICENSE +-rw-r--r-- root/root 10886 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/moby/term/LICENSE +-rw-r--r-- root/root 11446 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/moby/ipvs/LICENSE +-rw-r--r-- root/root 11495 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mindprince/gonvml/LICENSE +-rw-r--r-- root/root 11494 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/ishidawataru/sctp/LICENSE +-rw-r--r-- root/root 11518 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/checkpoint-restore/go-criu/v4/LICENSE +-rw-r--r-- root/root 1435 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/pkg/errors/LICENSE +-rw-r--r-- root/root 11484 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-logr/logr/LICENSE +-rw-r--r-- root/root 1230 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/blang/semver/LICENSE +-rw-r--r-- root/root 11534 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE +-rw-r--r-- root/root 1500 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/magiconair/properties/LICENSE +-rw-r--r-- root/root 1185 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/beorn7/perks/LICENSE +-rw-r--r-- root/root 11499 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/azure-sdk-for-go/LICENSE +-rw-r--r-- root/root 10904 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/LICENSE +-rw-r--r-- root/root 10911 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/logger/LICENSE +-rw-r--r-- root/root 10918 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/adal/LICENSE +-rw-r--r-- root/root 10916 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/to/LICENSE +-rw-r--r-- root/root 10913 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/LICENSE +-rw-r--r-- root/root 10919 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/mocks/LICENSE +-rw-r--r-- root/root 10918 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/date/LICENSE +-rw-r--r-- root/root 10924 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/validation/LICENSE +-rw-r--r-- root/root 10912 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/tracing/LICENSE +-rw-r--r-- root/root 1225 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/Azure/go-ansiterm/LICENSE +-rw-r--r-- root/root 314 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-bindata/go-bindata/LICENSE +-rw-r--r-- root/root 1201 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/form3tech-oss/jwt-go/LICENSE +-rw-r--r-- root/root 899 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/davecgh/go-spew/LICENSE +-rw-r--r-- root/root 1272 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/hpcloud/tail/LICENSE +-rw-r--r-- root/root 1205 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/json-iterator/go/LICENSE +-rw-r--r-- root/root 2737 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/daviddengcn/go-colortext/LICENSE +-rw-r--r-- root/root 1267 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/cilium/ebpf/LICENSE +-rw-r--r-- root/root 1620 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/elazarl/goproxy/LICENSE +-rw-r--r-- root/root 1230 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/MakeNowJust/heredoc/LICENSE +-rw-r--r-- root/root 1202 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/spf13/cast/LICENSE +-rw-r--r-- root/root 10269 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/spf13/afero/LICENSE +-rw-r--r-- root/root 1656 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/spf13/pflag/LICENSE +-rw-r--r-- root/root 1204 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/spf13/viper/LICENSE +-rw-r--r-- root/root 1228 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/spf13/jwalterweatherman/LICENSE +-rw-r--r-- root/root 10269 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/spf13/cobra/LICENSE +-rw-r--r-- root/root 1218 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/fvbommel/sortorder/LICENSE +-rw-r--r-- root/root 1613 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mvdan/xurls/LICENSE +-rw-r--r-- root/root 1698 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/cyphar/filepath-securejoin/LICENSE +-rw-r--r-- root/root 1634 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/evanphx/json-patch/LICENSE +-rw-r--r-- root/root 1614 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/quobyte/api/LICENSE +-rw-r--r-- root/root 1208 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/armon/circbuf/LICENSE +-rw-r--r-- root/root 721 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/NYTimes/gziphandler/LICENSE +-rw-r--r-- root/root 11498 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/googleapis/gnostic/LICENSE +-rw-r--r-- root/root 1614 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/googleapis/gax-go/v2/LICENSE +-rw-r--r-- root/root 1683 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/munnerz/goautoneg/LICENSE +-rw-r--r-- root/root 1227 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/exponent-io/jsonpath/LICENSE +-rw-r--r-- root/root 1202 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mohae/deepcopy/LICENSE +-rw-r--r-- root/root 1294 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/konsorten/go-windows-terminal-sequences/LICENSE +-rw-r--r-- root/root 702 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/jmespath/go-jmespath/LICENSE +-rw-r--r-- root/root 1242 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/pelletier/go-toml/LICENSE +-rw-r--r-- root/root 1187 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/onsi/gomega/LICENSE +-rw-r--r-- root/root 1187 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/onsi/ginkgo/LICENSE +-rw-r--r-- root/root 1225 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/cpuguy83/go-md2man/v2/LICENSE +-rw-r--r-- root/root 1665 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/imdario/mergo/LICENSE +-rw-r--r-- root/root 389 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/heketi/heketi/LICENSE +-rw-r--r-- root/root 1225 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/go-ozzo/ozzo-validation/LICENSE +-rw-r--r-- root/root 1238 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/stretchr/testify/LICENSE +-rw-r--r-- root/root 1246 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/stretchr/objx/LICENSE +-rw-r--r-- root/root 1215 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/fatih/camelcase/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/vmware/govmomi/LICENSE +-rw-r--r-- root/root 1459 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/syndtr/gocapability/LICENSE +-rw-r--r-- root/root 10895 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mrunalp/fileutils/LICENSE +-rw-r--r-- root/root 11487 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/soheilhy/cmux/LICENSE +-rw-r--r-- root/root 1275 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/dustin/go-humanize/LICENSE +-rw-r--r-- root/root 11507 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/containernetworking/cni/LICENSE +-rw-r--r-- root/root 11494 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/prometheus/common/LICENSE +-rw-r--r-- root/root 11506 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/prometheus/client_model/LICENSE +-rw-r--r-- root/root 11494 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/prometheus/procfs/LICENSE +-rw-r--r-- root/root 11508 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/prometheus/client_golang/LICENSE +-rw-r--r-- root/root 16106 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/hashicorp/hcl/LICENSE +-rw-r--r-- root/root 16064 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/hashicorp/golang-lru/LICENSE +-rw-r--r-- root/root 1584 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/pmezard/go-difflib/LICENSE +-rw-r--r-- root/root 11492 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/containerd/ttrpc/LICENSE +-rw-r--r-- root/root 10904 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/containerd/console/LICENSE +-rw-r--r-- root/root 11496 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/containerd/cgroups/LICENSE +-rw-r--r-- root/root 10910 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/containerd/containerd/LICENSE +-rw-r--r-- root/root 1228 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/gregjones/httpcache/LICENSE +-rw-r--r-- root/root 1647 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/mxk/go-flowrate/LICENSE +-rw-r--r-- root/root 10896 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/gophercloud/gophercloud/LICENSE +-rw-r--r-- root/root 1810 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/gogo/protobuf/LICENSE +-rw-r--r-- root/root 1217 2020-12-08 12:12 kubernetes/LICENSES/vendor/github.com/lithammer/dedent/LICENSE +-rw-r--r-- root/root 11435 2020-12-08 12:12 kubernetes/LICENSES/vendor/k8s.io/heapster/LICENSE +-rw-r--r-- root/root 11486 2020-12-08 12:12 kubernetes/LICENSES/vendor/k8s.io/system-validators/LICENSE +-rw-r--r-- root/root 11477 2020-12-08 12:12 kubernetes/LICENSES/vendor/k8s.io/kube-openapi/LICENSE +-rw-r--r-- root/root 11459 2020-12-08 12:12 kubernetes/LICENSES/vendor/k8s.io/gengo/LICENSE +-rw-r--r-- root/root 10382 2020-12-08 12:12 kubernetes/LICENSES/vendor/k8s.io/klog/v2/LICENSE +-rw-r--r-- root/root 11463 2020-12-08 12:12 kubernetes/LICENSES/vendor/k8s.io/utils/LICENSE +``` + +

+
+ +##### Content of `kubernetes-test-[system-arch].tar.gz` on example of `kubernetes-test-linux-amd64.tar.gz` (directories removed from list): + +- Binaries for `genyaml` / `gendocs` / `e2e.test` / `go-runner` / `kubemark` / `genkubedocs` / `linkcheck` / `genswaggertypedocs` / `e2e_node.test` / `genman` / `ginkgo` + +
Expand Contents +

+ +``` +➜ $ tar -ztvf kubernetes-test-linux-amd64.tar.gz +-rwxr-xr-x root/root 39895040 2020-12-08 12:17 kubernetes/test/bin/genyaml +-rwxr-xr-x root/root 39903232 2020-12-08 12:17 kubernetes/test/bin/gendocs +-rwxr-xr-x root/root 122987792 2020-12-08 12:17 kubernetes/test/bin/e2e.test +-rwxr-xr-x root/root 1929216 2020-12-08 12:17 kubernetes/test/bin/go-runner +-rwxr-xr-x root/root 112175880 2020-12-08 12:16 kubernetes/test/bin/kubemark +-rwxr-xr-x root/root 150267272 2020-12-08 12:17 kubernetes/test/bin/genkubedocs +-rwxr-xr-x root/root 5091328 2020-12-08 12:17 kubernetes/test/bin/linkcheck +-rwxr-xr-x root/root 6717440 2020-12-08 12:17 kubernetes/test/bin/genswaggertypedocs +-rwxr-xr-x root/root 135916432 2020-12-08 12:16 kubernetes/test/bin/e2e_node.test +-rwxr-xr-x root/root 157217352 2020-12-08 12:17 kubernetes/test/bin/genman +-rwxr-xr-x root/root 7651328 2020-12-08 12:17 kubernetes/test/bin/ginkgo +``` + +

+
+ +##### Content of `kubernetes-manifests.tar.gz` (directories removed from list): + +*Summary* + +- `kube-system` manifests for Kubernetes distros, such as COS (see [cluster/gce/gci](https://github.com/kubernetes/kubernetes/tree/master/cluster/gce/gci) for more information) + +
Expand Contents +

+ +``` +➜ $ tar -ztvf kubernetes-manifests.tar.gz +-rw-r--r-- root/root 2845 2020-12-08 12:10 kubernetes/gci-trusty/glbc.manifest +-rw-r--r-- root/root 419 2020-12-08 11:50 kubernetes/gci-trusty/metrics-server/auth-reader.yaml +-rw-r--r-- root/root 388 2020-12-08 11:50 kubernetes/gci-trusty/metrics-server/metrics-apiservice.yaml +-rw-r--r-- root/root 3352 2020-12-08 11:50 kubernetes/gci-trusty/metrics-server/metrics-server-deployment.yaml +-rw-r--r-- root/root 398 2020-12-08 11:50 kubernetes/gci-trusty/metrics-server/auth-delegator.yaml +-rw-r--r-- root/root 844 2020-12-08 11:50 kubernetes/gci-trusty/metrics-server/resource-reader.yaml +-rw-r--r-- root/root 336 2020-12-08 11:50 kubernetes/gci-trusty/metrics-server/metrics-server-service.yaml +-rw-r--r-- root/root 118780 2020-12-08 12:10 kubernetes/gci-trusty/gci-configure-helper.sh +-rw-r--r-- root/root 16675 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/fluentd-gcp-configmap-old.yaml +-rw-r--r-- root/root 190 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/fluentd-gcp-ds-sa.yaml +-rw-r--r-- root/root 2366 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/event-exporter.yaml +-rw-r--r-- root/root 350 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-role.yaml +-rw-r--r-- root/root 415 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-binding.yaml +-rw-r--r-- root/root 356 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/podsecuritypolicies/event-exporter-psp-role.yaml +-rw-r--r-- root/root 427 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/podsecuritypolicies/event-exporter-psp-binding.yaml +-rw-r--r-- root/root 1189 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp.yaml +-rw-r--r-- root/root 1281 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/podsecuritypolicies/event-exporter-psp.yaml +-rw-r--r-- root/root 18765 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/fluentd-gcp-configmap.yaml +-rw-r--r-- root/root 968 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/scaler-deployment.yaml +-rw-r--r-- root/root 1009 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/scaler-rbac.yaml +-rw-r--r-- root/root 323 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/scaler-policy.yaml +-rw-r--r-- root/root 4216 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-gcp/fluentd-gcp-ds.yaml +-rw-r--r-- root/root 397 2020-12-08 11:50 kubernetes/gci-trusty/node-problem-detector/standalone/npd-binding.yaml +-rw-r--r-- root/root 2507 2020-12-08 11:50 kubernetes/gci-trusty/node-problem-detector/npd.yaml +-rw-r--r-- root/root 423 2020-12-08 11:50 kubernetes/gci-trusty/node-problem-detector/podsecuritypolicies/npd-psp-binding.yaml +-rw-r--r-- root/root 389 2020-12-08 11:50 kubernetes/gci-trusty/node-problem-detector/kubelet-user-standalone/npd-binding.yaml +-rw-r--r-- root/root 261 2020-12-08 11:50 kubernetes/gci-trusty/storage-class/aws/default.yaml +-rw-r--r-- root/root 241 2020-12-08 11:50 kubernetes/gci-trusty/storage-class/openstack/default.yaml +-rw-r--r-- root/root 228 2020-12-08 11:50 kubernetes/gci-trusty/storage-class/vsphere/default.yaml +-rw-r--r-- root/root 245 2020-12-08 11:50 kubernetes/gci-trusty/storage-class/azure/default.yaml +-rw-r--r-- root/root 300 2020-12-08 11:50 kubernetes/gci-trusty/storage-class/gce/default.yaml +-rw-r--r-- root/root 269 2020-12-08 11:50 kubernetes/gci-trusty/storage-class/local/default.yaml +-rw-r--r-- root/root 4140 2020-12-08 12:10 kubernetes/gci-trusty/health-monitor.sh +-rw-r--r-- root/root 409 2020-12-08 11:50 kubernetes/gci-trusty/konnectivity-agent/konnectivity-rbac.yaml +-rw-r--r-- root/root 197 2020-12-08 11:50 kubernetes/gci-trusty/konnectivity-agent/konnectivity-agent-rbac.yaml +-rw-r--r-- root/root 2023 2020-12-08 11:50 kubernetes/gci-trusty/konnectivity-agent/konnectivity-agent-ds.yaml +-rw-r--r-- root/root 1289 2020-12-08 12:10 kubernetes/gci-trusty/abac-authz-policy.jsonl +-rw-r--r-- root/root 2434 2020-12-08 11:50 kubernetes/gci-trusty/node-termination-handler/daemonset.yaml +-rw-r--r-- root/root 791 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/privileged.yaml +-rw-r--r-- root/root 572 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/persistent-volume-binder-role.yaml +-rw-r--r-- root/root 878 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/persistent-volume-binder.yaml +-rw-r--r-- root/root 535 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/kube-system-binding.yaml +-rw-r--r-- root/root 643 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/persistent-volume-binder-binding.yaml +-rw-r--r-- root/root 425 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/kube-proxy-binding.yaml +-rw-r--r-- root/root 364 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/unprivileged-addon-role.yaml +-rw-r--r-- root/root 742 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/node-binding.yaml +-rw-r--r-- root/root 1577 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/unprivileged-addon.yaml +-rw-r--r-- root/root 330 2020-12-08 11:50 kubernetes/gci-trusty/podsecuritypolicies/privileged-role.yaml +-rw-r--r-- root/root 25526 2020-12-08 12:10 kubernetes/gci-trusty/configure-kubeapiserver.sh +-rw-r--r-- root/root 1021 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-deployment.yaml +-rw-r--r-- root/root 329 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-role.yaml +-rw-r--r-- root/root 321 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-clusterrolebinding.yaml +-rw-r--r-- root/root 1037 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-vertical-autoscaler-deployment.yaml +-rw-r--r-- root/root 331 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/networkset-crd.yaml +-rw-r--r-- root/root 2020 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-deployment.yaml +-rw-r--r-- root/root 147 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-serviceaccount.yaml +-rw-r--r-- root/root 352 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/globalnetworksets-crd.yaml +-rw-r--r-- root/root 312 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/ippool-crd.yaml +-rw-r--r-- root/root 356 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/globalfelixconfig-crd.yaml +-rw-r--r-- root/root 356 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-service.yaml +-rw-r--r-- root/root 293 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-vertical-autoscaler-clusterrole.yaml +-rw-r--r-- root/root 148 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-cpva-serviceaccount.yaml +-rw-r--r-- root/root 369 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/podsecuritypolicies/calico-node-psp-binding.yaml +-rw-r--r-- root/root 352 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/bgpconfigurations-crd.yaml +-rw-r--r-- root/root 342 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/blockaffinity-crd.yaml +-rw-r--r-- root/root 414 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-vertical-autoscaler-configmap.yaml +-rw-r--r-- root/root 308 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-cpva-clusterrole.yaml +-rw-r--r-- root/root 345 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/networkpolicies-crd.yaml +-rw-r--r-- root/root 360 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/clusterinformations-crd.yaml +-rw-r--r-- root/root 316 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/bgppeers-crd.yaml +-rw-r--r-- root/root 303 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-clusterrolebinding.yaml +-rw-r--r-- root/root 336 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/hostendpoints-crd.yaml +-rw-r--r-- root/root 348 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/globalbgpconfig-crd.yaml +-rw-r--r-- root/root 360 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/felixconfigurations-crd.yaml +-rw-r--r-- root/root 328 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/ipamhandle-crd.yaml +-rw-r--r-- root/root 324 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-cpva-clusterrolebinding.yaml +-rw-r--r-- root/root 6099 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-node-daemonset.yaml +-rw-r--r-- root/root 410 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-configmap.yaml +-rw-r--r-- root/root 324 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/ipamblock-crd.yaml +-rw-r--r-- root/root 3380 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-clusterrole.yaml +-rw-r--r-- root/root 226 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-clusterrole.yaml +-rw-r--r-- root/root 143 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-serviceaccount.yaml +-rw-r--r-- root/root 366 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/globalnetworkpolicy-crd.yaml +-rw-r--r-- root/root 409 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-node-vertical-autoscaler-configmap.yaml +-rw-r--r-- root/root 321 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-vertical-autoscaler-clusterrolebinding.yaml +-rw-r--r-- root/root 1029 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/calico-node-vertical-autoscaler-deployment.yaml +-rw-r--r-- root/root 328 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/ipamconfig-crd.yaml +-rw-r--r-- root/root 147 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-vertical-autoscaler-serviceaccount.yaml +-rw-r--r-- root/root 332 2020-12-08 11:50 kubernetes/gci-trusty/calico-policy-controller/typha-horizontal-autoscaler-rolebinding.yaml +-rw-r--r-- root/root 1579 2020-12-08 12:10 kubernetes/gci-trusty/kube-addon-manager.yaml +-rw-r--r-- root/root 2941 2020-12-08 11:50 kubernetes/gci-trusty/volumesnapshots/volume-snapshot-controller/rbac-volume-snapshot-controller.yaml +-rw-r--r-- root/root 675 2020-12-08 11:50 kubernetes/gci-trusty/volumesnapshots/volume-snapshot-controller/volume-snapshot-controller-deployment.yaml +-rw-r--r-- root/root 5888 2020-12-08 11:50 kubernetes/gci-trusty/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml +-rw-r--r-- root/root 19001 2020-12-08 11:50 kubernetes/gci-trusty/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshots.yaml +-rw-r--r-- root/root 22543 2020-12-08 11:50 kubernetes/gci-trusty/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml +-rw-r--r-- root/root 3624 2020-12-08 12:10 kubernetes/gci-trusty/etcd.manifest +-rw-r--r-- root/root 1931 2020-12-08 12:10 kubernetes/gci-trusty/kube-proxy.manifest +-rw-r--r-- root/root 3354 2020-12-08 11:50 kubernetes/gci-trusty/dns-horizontal-autoscaler/dns-horizontal-autoscaler.yaml +-rw-r--r-- root/root 2507 2020-12-08 11:50 kubernetes/gci-trusty/metadata-proxy/gce/metadata-proxy.yaml +-rw-r--r-- root/root 427 2020-12-08 11:50 kubernetes/gci-trusty/metadata-proxy/gce/podsecuritypolicies/metadata-proxy-psp-binding.yaml +-rw-r--r-- root/root 425 2020-12-08 11:50 kubernetes/gci-trusty/ip-masq-agent/podsecuritypolicies/ip-masq-agent-psp-binding.yaml +-rw-r--r-- root/root 1748 2020-12-08 11:50 kubernetes/gci-trusty/ip-masq-agent/ip-masq-agent.yaml +-rw-r--r-- root/root 226 2020-12-08 11:50 kubernetes/gci-trusty/limit-range/limit-range.yaml +-rw-r--r-- root/root 399 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/podsecuritypolicies/es-psp-binding.yaml +-rw-r--r-- root/root 1519 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/kibana-deployment.yaml +-rw-r--r-- root/root 3186 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/es-statefulset.yaml +-rw-r--r-- root/root 354 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/kibana-service.yaml +-rw-r--r-- root/root 580 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/es-service.yaml +-rw-r--r-- root/root 16125 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/fluentd-es-configmap.yaml +-rw-r--r-- root/root 2581 2020-12-08 11:50 kubernetes/gci-trusty/fluentd-elasticsearch/fluentd-es-ds.yaml +-rw-r--r-- root/root 6878 2020-12-08 11:50 kubernetes/gci-trusty/dashboard/dashboard.yaml +-rw-r--r-- root/root 433 2020-12-08 11:50 kubernetes/gci-trusty/metadata-agent/stackdriver/podsecuritypolicies/metadata-agent-psp-binding.yaml +-rw-r--r-- root/root 685 2020-12-08 11:50 kubernetes/gci-trusty/metadata-agent/stackdriver/metadata-agent-rbac.yaml +-rw-r--r-- root/root 3581 2020-12-08 11:50 kubernetes/gci-trusty/metadata-agent/stackdriver/metadata-agent.yaml +-rw-r--r-- root/root 5007 2020-12-08 11:50 kubernetes/gci-trusty/dns/coredns/coredns.yaml.in +-rw-r--r-- root/root 7245 2020-12-08 11:50 kubernetes/gci-trusty/dns/kube-dns/kube-dns.yaml.in +-rw-r--r-- root/root 5334 2020-12-08 11:50 kubernetes/gci-trusty/dns/nodelocaldns/nodelocaldns.yaml +-rw-r--r-- root/root 1765 2020-12-08 12:10 kubernetes/gci-trusty/kube-scheduler.manifest +-rw-r--r-- root/root 2024 2020-12-08 11:50 kubernetes/gci-trusty/kube-proxy/kube-proxy-ds.yaml +-rw-r--r-- root/root 488 2020-12-08 11:50 kubernetes/gci-trusty/kube-proxy/kube-proxy-rbac.yaml +-rw-r--r-- root/root 644 2020-12-08 11:50 kubernetes/gci-trusty/admission-resource-quota-critical-pods/resource-quota.yaml +-rw-r--r-- root/root 685 2020-12-08 11:50 kubernetes/gci-trusty/loadbalancing/cloud-provider-binding.yaml +-rw-r--r-- root/root 1540 2020-12-08 11:50 kubernetes/gci-trusty/loadbalancing/cloud-provider-role.yaml +-rw-r--r-- root/root 3680 2020-12-08 12:10 kubernetes/gci-trusty/cluster-autoscaler.manifest +-rw-r--r-- root/root 1641 2020-12-08 12:10 kubernetes/gci-trusty/konnectivity-server.yaml +-rw-r--r-- root/root 1587 2020-12-08 11:50 kubernetes/gci-trusty/device-plugins/nvidia-gpu/daemonset.yaml +-rw-r--r-- root/root 2970 2020-12-08 12:10 kubernetes/gci-trusty/kube-controller-manager.manifest +-rw-r--r-- root/root 4216 2020-12-08 12:10 kubernetes/gci-trusty/kube-apiserver.manifest +-rw-r--r-- root/root 577 2020-12-08 11:50 kubernetes/gci-trusty/cluster-loadbalancing/glbc/default-svc.yaml +-rw-r--r-- root/root 1108 2020-12-08 11:50 kubernetes/gci-trusty/cluster-loadbalancing/glbc/default-svc-controller.yaml +-rw-r--r-- root/root 782 2020-12-08 11:50 kubernetes/gci-trusty/rbac/legacy-kubelet-user-disable/kubelet-binding.yaml +-rw-r--r-- root/root 565 2020-12-08 11:50 kubernetes/gci-trusty/rbac/legacy-kubelet-user/kubelet-binding.yaml +-rw-r--r-- root/root 1399 2020-12-08 11:50 kubernetes/gci-trusty/rbac/kubelet-cert-rotation/kubelet-certificate-management.yaml +-rw-r--r-- root/root 2089 2020-12-08 11:50 kubernetes/gci-trusty/rbac/cluster-autoscaler/cluster-autoscaler-rbac.yaml +-rw-r--r-- root/root 338 2020-12-08 11:50 kubernetes/gci-trusty/rbac/kubelet-api-auth/kubelet-api-admin-role.yaml +-rw-r--r-- root/root 427 2020-12-08 11:50 kubernetes/gci-trusty/rbac/kubelet-api-auth/kube-apiserver-kubelet-api-admin-binding.yaml +-rw-r--r-- root/root 647 2020-12-08 11:50 kubernetes/gci-trusty/rbac/cluster-loadbalancing/glbc/user-rolebindings.yaml +-rw-r--r-- root/root 2593 2020-12-08 11:50 kubernetes/gci-trusty/rbac/cluster-loadbalancing/glbc/roles.yaml +``` + +

+
+ +##### Content of `kubernetes.tar.gz` (directories removed from list): + +*Summary* + +- Various scripts, `README`'s, `OWNERS` files, `BUILD` files, `.gitignore` files, etc. +- Source code for tools that live in `kubernetes/kubernetes`, but are not core components (e.g. binaries in `kubernetes-test` tarball) +- [LICENSES](https://github.com/kubernetes/kubernetes/tree/master/LICENSES) + +
Expand Contents +

+ +``` +➜ $ tar -ztvf kubernetes.tar.gz +-rw-r--r-- root/root 146 2020-12-08 12:16 kubernetes/client/README +-rw-r--r-- root/root 208 2020-12-08 12:16 kubernetes/docs/OWNERS +-rw-r--r-- root/root 346 2020-12-08 12:16 kubernetes/docs/BUILD +-rw-r--r-- root/root 46 2020-12-08 12:16 kubernetes/docs/.gitignore +-rwxr-xr-x root/root 2826 2020-12-08 12:16 kubernetes/cluster/kubectl.sh +-rw-r--r-- root/root 2192 2020-12-08 12:16 kubernetes/cluster/pre-existing/util.sh +-rw-r--r-- root/root 77 2020-12-08 12:16 kubernetes/cluster/pre-existing/OWNERS +-rwxr-xr-x root/root 1414 2020-12-08 12:16 kubernetes/cluster/kube-util.sh +-rw-r--r-- root/root 2417 2020-12-08 12:16 kubernetes/cluster/skeleton/util.sh +-rw-r--r-- root/root 73 2020-12-08 12:16 kubernetes/cluster/skeleton/OWNERS +-rw-r--r-- root/root 848 2020-12-08 12:16 kubernetes/cluster/kubemark/util.sh +-rw-r--r-- root/root 1373 2020-12-08 12:16 kubernetes/cluster/kubemark/pre-existing/config-default.sh +-rw-r--r-- root/root 2939 2020-12-08 12:16 kubernetes/cluster/kubemark/gce/config-default.sh +-rw-r--r-- root/root 233 2020-12-08 12:16 kubernetes/cluster/kubemark/OWNERS +-rw-r--r-- root/root 2138 2020-12-08 12:16 kubernetes/cluster/kubemark/iks/config-default.sh +-rwxr-xr-x root/root 18035 2020-12-08 12:16 kubernetes/cluster/common.sh +-rwxr-xr-x root/root 7476 2020-12-08 12:16 kubernetes/cluster/validate-cluster.sh +-rw-r--r-- root/root 624 2020-12-08 12:16 kubernetes/cluster/images/etcd/cp/BUILD +-rw-r--r-- root/root 1599 2020-12-08 12:16 kubernetes/cluster/images/etcd/cp/cp.go +-rw-r--r-- root/root 1161 2020-12-08 12:16 kubernetes/cluster/images/etcd/Dockerfile +-rw-r--r-- root/root 700 2020-12-08 12:16 kubernetes/cluster/images/etcd/cloudbuild.yaml +-rw-r--r-- root/root 8964 2020-12-08 12:16 kubernetes/cluster/images/etcd/Makefile +-rw-r--r-- root/root 137 2020-12-08 12:16 kubernetes/cluster/images/etcd/OWNERS +-rwxr-xr-x root/root 836 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate-if-needed.sh +-rw-r--r-- root/root 4374 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/data_dir.go +-rw-r--r-- root/root 3442 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/options_test.go +-rw-r--r-- root/root 5980 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/versions.go +-rw-r--r-- root/root 2634 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/versions_test.go +-rw-r--r-- root/root 752 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/util_others.go +-rw-r--r-- root/root 13 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/testdata/datadir_with_version/version.txt +-rw-r--r-- root/root 0 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/testdata/datadir_without_version/.placeholder +-rw-r--r-- root/root 4613 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/data_dir_test.go +-rw-r--r-- root/root 1474 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/copy_file.go +-rw-r--r-- root/root 3885 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/migrate.go +-rw-r--r-- root/root 11043 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/integration_test.go +-rw-r--r-- root/root 7437 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/migrate_client.go +-rw-r--r-- root/root 720 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/utils_windows.go +-rw-r--r-- root/root 6578 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/migrator.go +-rw-r--r-- root/root 3563 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/BUILD +-rw-r--r-- root/root 3880 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/migrate_server.go +-rw-r--r-- root/root 9790 2020-12-08 12:16 kubernetes/cluster/images/etcd/migrate/options.go +-rw-r--r-- root/root 2933 2020-12-08 12:16 kubernetes/cluster/images/etcd/README.md +-rw-r--r-- root/root 862 2020-12-08 12:16 kubernetes/cluster/images/kubemark/Dockerfile +-rw-r--r-- root/root 1268 2020-12-08 12:16 kubernetes/cluster/images/kubemark/Makefile +-rw-r--r-- root/root 173 2020-12-08 12:16 kubernetes/cluster/images/kubemark/OWNERS +-rw-r--r-- root/root 791 2020-12-08 12:16 kubernetes/cluster/images/kubemark/BUILD +-rw-r--r-- root/root 687 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/Dockerfile +-rw-r--r-- root/root 250 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/etcd-version-monitor.yaml +-rw-r--r-- root/root 11758 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/etcd-version-monitor.go +-rw-r--r-- root/root 1515 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/Makefile +-rw-r--r-- root/root 79 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/OWNERS +-rw-r--r-- root/root 1056 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/BUILD +-rw-r--r-- root/root 1356 2020-12-08 12:16 kubernetes/cluster/images/etcd-version-monitor/README.md +-rw-r--r-- root/root 107 2020-12-08 12:16 kubernetes/cluster/images/OWNERS +-rw-r--r-- root/root 1538 2020-12-08 12:16 kubernetes/cluster/images/conformance/conformance-e2e.yaml +-rw-r--r-- root/root 1007 2020-12-08 12:16 kubernetes/cluster/images/conformance/Dockerfile +-rwxr-xr-x root/root 1294 2020-12-08 12:16 kubernetes/cluster/images/conformance/conformance-e2e.sh +-rw-r--r-- root/root 2548 2020-12-08 12:16 kubernetes/cluster/images/conformance/Makefile +-rw-r--r-- root/root 2345 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/tar.go +-rw-r--r-- root/root 785 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/Makefile +-rw-r--r-- root/root 3738 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/tar_test.go +-rw-r--r-- root/root 2739 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/cmd.go +-rw-r--r-- root/root 3663 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/e2erunner.go +-rw-r--r-- root/root 1052 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/BUILD +-rw-r--r-- root/root 3793 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/cmd_test.go +-rw-r--r-- root/root 2542 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/const.go +-rw-r--r-- root/root 0 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/README.md +-rw-r--r-- root/root 1695 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/env_test.go +-rw-r--r-- root/root 1896 2020-12-08 12:16 kubernetes/cluster/images/conformance/go-runner/env.go +-rwxr-xr-x root/root 2271 2020-12-08 12:16 kubernetes/cluster/images/conformance/run_e2e.sh +-rw-r--r-- root/root 334 2020-12-08 12:16 kubernetes/cluster/images/conformance/OWNERS +-rw-r--r-- root/root 1879 2020-12-08 12:16 kubernetes/cluster/images/conformance/BUILD +-rw-r--r-- root/root 1376 2020-12-08 12:16 kubernetes/cluster/images/conformance/README.md +-rwxr-xr-x root/root 6149 2020-12-08 12:16 kubernetes/cluster/gce/upgrade-aliases.sh +-rw-r--r-- root/root 6093 2020-12-08 12:16 kubernetes/cluster/gce/windows/configure.ps1 +-rw-r--r-- root/root 7498 2020-12-08 12:16 kubernetes/cluster/gce/windows/README-GCE-Windows-kube-up.md +-rw-r--r-- root/root 82204 2020-12-08 12:16 kubernetes/cluster/gce/windows/k8s-node-setup.psm1 +-rwxr-xr-x root/root 2656 2020-12-08 12:16 kubernetes/cluster/gce/windows/node-helper.sh +-rw-r--r-- root/root 189 2020-12-08 12:16 kubernetes/cluster/gce/windows/OWNERS +-rw-r--r-- root/root 1121 2020-12-08 12:16 kubernetes/cluster/gce/windows/BUILD +-rw-r--r-- root/root 9675 2020-12-08 12:16 kubernetes/cluster/gce/windows/testonly/user-profile.psm1 +-rw-r--r-- root/root 11389 2020-12-08 12:16 kubernetes/cluster/gce/windows/testonly/install-ssh.psm1 +-rw-r--r-- root/root 21811 2020-12-08 12:16 kubernetes/cluster/gce/windows/common.psm1 +-rwxr-xr-x root/root 22249 2020-12-08 12:16 kubernetes/cluster/gce/windows/smoke-test.sh +-rwxr-xr-x root/root 146797 2020-12-08 12:16 kubernetes/cluster/gce/util.sh +-rwxr-xr-x root/root 29153 2020-12-08 12:16 kubernetes/cluster/gce/config-test.sh +-rw-r--r-- root/root 2845 2020-12-08 12:16 kubernetes/cluster/gce/manifests/glbc.manifest +-rw-r--r-- root/root 1289 2020-12-08 12:16 kubernetes/cluster/gce/manifests/abac-authz-policy.jsonl +-rw-r--r-- root/root 1579 2020-12-08 12:16 kubernetes/cluster/gce/manifests/kube-addon-manager.yaml +-rw-r--r-- root/root 3624 2020-12-08 12:16 kubernetes/cluster/gce/manifests/etcd.manifest +-rw-r--r-- root/root 1931 2020-12-08 12:16 kubernetes/cluster/gce/manifests/kube-proxy.manifest +-rw-r--r-- root/root 143 2020-12-08 12:16 kubernetes/cluster/gce/manifests/OWNERS +-rw-r--r-- root/root 1765 2020-12-08 12:16 kubernetes/cluster/gce/manifests/kube-scheduler.manifest +-rw-r--r-- root/root 1074 2020-12-08 12:16 kubernetes/cluster/gce/manifests/BUILD +-rw-r--r-- root/root 3680 2020-12-08 12:16 kubernetes/cluster/gce/manifests/cluster-autoscaler.manifest +-rw-r--r-- root/root 1641 2020-12-08 12:16 kubernetes/cluster/gce/manifests/konnectivity-server.yaml +-rw-r--r-- root/root 2970 2020-12-08 12:16 kubernetes/cluster/gce/manifests/kube-controller-manager.manifest +-rw-r--r-- root/root 4216 2020-12-08 12:16 kubernetes/cluster/gce/manifests/kube-apiserver.manifest +-rwxr-xr-x root/root 3734 2020-12-08 12:16 kubernetes/cluster/gce/list-resources.sh +lrwxrwxrwx root/root 0 2020-12-08 12:16 kubernetes/cluster/gce/ubuntu -> gci +-rw-r--r-- root/root 5809 2020-12-08 12:16 kubernetes/cluster/gce/gci/apiserver_etcd_test.go +-rwxr-xr-x root/root 1192 2020-12-08 12:16 kubernetes/cluster/gce/gci/helper.sh +-rw-r--r-- root/root 9980 2020-12-08 12:16 kubernetes/cluster/gce/gci/audit_policy_test.go +-rw-r--r-- root/root 24524 2020-12-08 12:16 kubernetes/cluster/gce/gci/configure.sh +-rw-r--r-- root/root 4158 2020-12-08 12:16 kubernetes/cluster/gce/gci/append_or_replace_prefixed_line_test.go +-rw-r--r-- root/root 4979 2020-12-08 12:16 kubernetes/cluster/gce/gci/configure_helper_test.go +-rw-r--r-- root/root 1163 2020-12-08 12:16 kubernetes/cluster/gce/gci/testdata/kube-apiserver/base.template +-rw-r--r-- root/root 271 2020-12-08 12:16 kubernetes/cluster/gce/gci/testdata/kube-apiserver/kms.template +-rw-r--r-- root/root 856 2020-12-08 12:16 kubernetes/cluster/gce/gci/testdata/kube-apiserver/etcd.template +-rwxr-xr-x root/root 8993 2020-12-08 12:16 kubernetes/cluster/gce/gci/master-helper.sh +-rw-r--r-- root/root 4140 2020-12-08 12:16 kubernetes/cluster/gce/gci/health-monitor.sh +-rwxr-xr-x root/root 1082 2020-12-08 12:16 kubernetes/cluster/gce/gci/shutdown.sh +-rw-r--r-- root/root 25526 2020-12-08 12:16 kubernetes/cluster/gce/gci/configure-kubeapiserver.sh +-rw-r--r-- root/root 745 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/Dockerfile +-rw-r--r-- root/root 862 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/Makefile +-rw-r--r-- root/root 2912 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/mounter.go +-rw-r--r-- root/root 367 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/Changelog +-rw-r--r-- root/root 578 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/BUILD +-rwxr-xr-x root/root 2478 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/stage-upload.sh +-rw-r--r-- root/root 8 2020-12-08 12:16 kubernetes/cluster/gce/gci/mounter/.gitignore +-rw-r--r-- root/root 6236 2020-12-08 12:16 kubernetes/cluster/gce/gci/apiserver_kms_test.go +-rw-r--r-- root/root 118780 2020-12-08 12:16 kubernetes/cluster/gce/gci/configure-helper.sh +-rw-r--r-- root/root 3930 2020-12-08 12:16 kubernetes/cluster/gce/gci/node.yaml +-rwxr-xr-x root/root 5974 2020-12-08 12:16 kubernetes/cluster/gce/gci/flexvolume_node_setup.sh +-rwxr-xr-x root/root 2010 2020-12-08 12:16 kubernetes/cluster/gce/gci/node-helper.sh +-rw-r--r-- root/root 144 2020-12-08 12:16 kubernetes/cluster/gce/gci/OWNERS +-rw-r--r-- root/root 2887 2020-12-08 12:16 kubernetes/cluster/gce/gci/BUILD +-rw-r--r-- root/root 1109 2020-12-08 12:16 kubernetes/cluster/gce/gci/kube-master-internal-route.sh +-rw-r--r-- root/root 4785 2020-12-08 12:16 kubernetes/cluster/gce/gci/master.yaml +-rw-r--r-- root/root 6640 2020-12-08 12:16 kubernetes/cluster/gce/gci/README.md +-rw-r--r-- root/root 442 2020-12-08 12:16 kubernetes/cluster/gce/OWNERS +-rw-r--r-- root/root 5631 2020-12-08 12:16 kubernetes/cluster/gce/config-common.sh +-rwxr-xr-x root/root 27134 2020-12-08 12:16 kubernetes/cluster/gce/config-default.sh +-rw-r--r-- root/root 583 2020-12-08 12:16 kubernetes/cluster/gce/BUILD +-rwxr-xr-x root/root 1427 2020-12-08 12:16 kubernetes/cluster/gce/delete-stranded-load-balancers.sh +-rwxr-xr-x root/root 25740 2020-12-08 12:16 kubernetes/cluster/gce/upgrade.sh +-rw-r--r-- root/root 409 2020-12-08 12:16 kubernetes/cluster/gce/addons/konnectivity-agent/konnectivity-rbac.yaml +-rw-r--r-- root/root 197 2020-12-08 12:16 kubernetes/cluster/gce/addons/konnectivity-agent/konnectivity-agent-rbac.yaml +-rw-r--r-- root/root 2023 2020-12-08 12:16 kubernetes/cluster/gce/addons/konnectivity-agent/konnectivity-agent-ds.yaml +-rw-r--r-- root/root 2434 2020-12-08 12:16 kubernetes/cluster/gce/addons/node-termination-handler/daemonset.yaml +-rw-r--r-- root/root 287 2020-12-08 12:16 kubernetes/cluster/gce/addons/node-termination-handler/README +-rw-r--r-- root/root 791 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/privileged.yaml +-rw-r--r-- root/root 572 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder-role.yaml +-rw-r--r-- root/root 878 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder.yaml +-rw-r--r-- root/root 535 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/kube-system-binding.yaml +-rw-r--r-- root/root 643 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/persistent-volume-binder-binding.yaml +-rw-r--r-- root/root 425 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/kube-proxy-binding.yaml +-rw-r--r-- root/root 364 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/unprivileged-addon-role.yaml +-rw-r--r-- root/root 742 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/node-binding.yaml +-rw-r--r-- root/root 1577 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/unprivileged-addon.yaml +-rw-r--r-- root/root 330 2020-12-08 12:16 kubernetes/cluster/gce/addons/podsecuritypolicies/privileged-role.yaml +-rw-r--r-- root/root 226 2020-12-08 12:16 kubernetes/cluster/gce/addons/limit-range/limit-range.yaml +-rw-r--r-- root/root 682 2020-12-08 12:16 kubernetes/cluster/gce/addons/BUILD +-rw-r--r-- root/root 644 2020-12-08 12:16 kubernetes/cluster/gce/addons/admission-resource-quota-critical-pods/resource-quota.yaml +-rw-r--r-- root/root 685 2020-12-08 12:16 kubernetes/cluster/gce/addons/loadbalancing/cloud-provider-binding.yaml +-rw-r--r-- root/root 1540 2020-12-08 12:16 kubernetes/cluster/gce/addons/loadbalancing/cloud-provider-role.yaml +-rw-r--r-- root/root 357 2020-12-08 12:16 kubernetes/cluster/gce/addons/README.md +lrwxrwxrwx root/root 0 2020-12-08 12:16 kubernetes/cluster/gce/custom -> gci +lrwxrwxrwx root/root 0 2020-12-08 12:16 kubernetes/cluster/gce/cos -> gci +-rw-r--r-- root/root 307 2020-12-08 12:16 kubernetes/cluster/OWNERS +-rwxr-xr-x root/root 1112 2020-12-08 12:16 kubernetes/cluster/kube-down.sh +-rwxr-xr-x root/root 9005 2020-12-08 12:16 kubernetes/cluster/get-kube.sh +-rw-r--r-- root/root 1235 2020-12-08 12:16 kubernetes/cluster/BUILD +-rwxr-xr-x root/root 9459 2020-12-08 12:16 kubernetes/cluster/get-kube-binaries.sh +-rw-r--r-- root/root 419 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/auth-reader.yaml +-rw-r--r-- root/root 388 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/metrics-apiservice.yaml +-rw-r--r-- root/root 3352 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/metrics-server-deployment.yaml +-rw-r--r-- root/root 188 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/OWNERS +-rw-r--r-- root/root 398 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/auth-delegator.yaml +-rw-r--r-- root/root 844 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/resource-reader.yaml +-rw-r--r-- root/root 336 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/metrics-server-service.yaml +-rw-r--r-- root/root 1227 2020-12-08 12:16 kubernetes/cluster/addons/metrics-server/README.md +-rw-r--r-- root/root 322 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-image/README.md +-rw-r--r-- root/root 16675 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-configmap-old.yaml +-rw-r--r-- root/root 190 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-ds-sa.yaml +-rw-r--r-- root/root 2366 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/event-exporter.yaml +-rw-r--r-- root/root 350 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-role.yaml +-rw-r--r-- root/root 415 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp-binding.yaml +-rw-r--r-- root/root 356 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp-role.yaml +-rw-r--r-- root/root 427 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp-binding.yaml +-rw-r--r-- root/root 1189 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/fluentd-gcp-psp.yaml +-rw-r--r-- root/root 1281 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/podsecuritypolicies/event-exporter-psp.yaml +-rw-r--r-- root/root 194 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/OWNERS +-rw-r--r-- root/root 18765 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-configmap.yaml +-rw-r--r-- root/root 968 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/scaler-deployment.yaml +-rw-r--r-- root/root 1009 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/scaler-rbac.yaml +-rw-r--r-- root/root 323 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/scaler-policy.yaml +-rw-r--r-- root/root 4216 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/fluentd-gcp-ds.yaml +-rw-r--r-- root/root 2775 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-gcp/README.md +-rw-r--r-- root/root 397 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/standalone/npd-binding.yaml +-rw-r--r-- root/root 78 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/MAINTAINERS.md +-rw-r--r-- root/root 2507 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/npd.yaml +-rw-r--r-- root/root 423 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/podsecuritypolicies/npd-psp-binding.yaml +-rw-r--r-- root/root 389 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/kubelet-user-standalone/npd-binding.yaml +-rw-r--r-- root/root 127 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/OWNERS +-rw-r--r-- root/root 192 2020-12-08 12:16 kubernetes/cluster/addons/node-problem-detector/README.md +-rw-r--r-- root/root 261 2020-12-08 12:16 kubernetes/cluster/addons/storage-class/aws/default.yaml +-rw-r--r-- root/root 241 2020-12-08 12:16 kubernetes/cluster/addons/storage-class/openstack/default.yaml +-rw-r--r-- root/root 228 2020-12-08 12:16 kubernetes/cluster/addons/storage-class/vsphere/default.yaml +-rw-r--r-- root/root 245 2020-12-08 12:16 kubernetes/cluster/addons/storage-class/azure/default.yaml +-rw-r--r-- root/root 300 2020-12-08 12:16 kubernetes/cluster/addons/storage-class/gce/default.yaml +-rw-r--r-- root/root 269 2020-12-08 12:16 kubernetes/cluster/addons/storage-class/local/default.yaml +-rw-r--r-- root/root 1021 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-deployment.yaml +-rw-r--r-- root/root 329 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-role.yaml +-rw-r--r-- root/root 321 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-clusterrolebinding.yaml +-rw-r--r-- root/root 1037 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-vertical-autoscaler-deployment.yaml +-rw-r--r-- root/root 331 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/networkset-crd.yaml +-rw-r--r-- root/root 2020 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-deployment.yaml +-rw-r--r-- root/root 147 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-serviceaccount.yaml +-rw-r--r-- root/root 352 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/globalnetworksets-crd.yaml +-rw-r--r-- root/root 312 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/ippool-crd.yaml +-rw-r--r-- root/root 356 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/globalfelixconfig-crd.yaml +-rw-r--r-- root/root 356 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-service.yaml +-rw-r--r-- root/root 293 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-vertical-autoscaler-clusterrole.yaml +-rw-r--r-- root/root 148 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-cpva-serviceaccount.yaml +-rw-r--r-- root/root 369 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/podsecuritypolicies/calico-node-psp-binding.yaml +-rw-r--r-- root/root 352 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/bgpconfigurations-crd.yaml +-rw-r--r-- root/root 342 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/blockaffinity-crd.yaml +-rw-r--r-- root/root 414 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-vertical-autoscaler-configmap.yaml +-rw-r--r-- root/root 308 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-cpva-clusterrole.yaml +-rw-r--r-- root/root 345 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/networkpolicies-crd.yaml +-rw-r--r-- root/root 360 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/clusterinformations-crd.yaml +-rw-r--r-- root/root 316 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/bgppeers-crd.yaml +-rw-r--r-- root/root 303 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-clusterrolebinding.yaml +-rw-r--r-- root/root 336 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/hostendpoints-crd.yaml +-rw-r--r-- root/root 170 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/OWNERS +-rw-r--r-- root/root 348 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/globalbgpconfig-crd.yaml +-rw-r--r-- root/root 360 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/felixconfigurations-crd.yaml +-rw-r--r-- root/root 328 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/ipamhandle-crd.yaml +-rw-r--r-- root/root 324 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-cpva-clusterrolebinding.yaml +-rw-r--r-- root/root 6099 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-node-daemonset.yaml +-rw-r--r-- root/root 410 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-configmap.yaml +-rw-r--r-- root/root 324 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/ipamblock-crd.yaml +-rw-r--r-- root/root 3380 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-clusterrole.yaml +-rw-r--r-- root/root 226 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-clusterrole.yaml +-rw-r--r-- root/root 143 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-serviceaccount.yaml +-rw-r--r-- root/root 366 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/globalnetworkpolicy-crd.yaml +-rw-r--r-- root/root 409 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-node-vertical-autoscaler-configmap.yaml +-rw-r--r-- root/root 321 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-vertical-autoscaler-clusterrolebinding.yaml +-rw-r--r-- root/root 1029 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/calico-node-vertical-autoscaler-deployment.yaml +-rw-r--r-- root/root 328 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/ipamconfig-crd.yaml +-rw-r--r-- root/root 147 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-vertical-autoscaler-serviceaccount.yaml +-rw-r--r-- root/root 332 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/typha-horizontal-autoscaler-rolebinding.yaml +-rw-r--r-- root/root 409 2020-12-08 12:16 kubernetes/cluster/addons/calico-policy-controller/README.md +-rw-r--r-- root/root 2941 2020-12-08 12:16 kubernetes/cluster/addons/volumesnapshots/volume-snapshot-controller/rbac-volume-snapshot-controller.yaml +-rw-r--r-- root/root 675 2020-12-08 12:16 kubernetes/cluster/addons/volumesnapshots/volume-snapshot-controller/volume-snapshot-controller-deployment.yaml +-rw-r--r-- root/root 91 2020-12-08 12:16 kubernetes/cluster/addons/volumesnapshots/OWNERS +-rw-r--r-- root/root 5888 2020-12-08 12:16 kubernetes/cluster/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml +-rw-r--r-- root/root 19001 2020-12-08 12:16 kubernetes/cluster/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshots.yaml +-rw-r--r-- root/root 22543 2020-12-08 12:16 kubernetes/cluster/addons/volumesnapshots/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml +-rw-r--r-- root/root 49 2020-12-08 12:16 kubernetes/cluster/addons/dns-horizontal-autoscaler/MAINTAINERS.md +-rw-r--r-- root/root 107 2020-12-08 12:16 kubernetes/cluster/addons/dns-horizontal-autoscaler/OWNERS +-rw-r--r-- root/root 3354 2020-12-08 12:16 kubernetes/cluster/addons/dns-horizontal-autoscaler/dns-horizontal-autoscaler.yaml +-rw-r--r-- root/root 596 2020-12-08 12:16 kubernetes/cluster/addons/dns-horizontal-autoscaler/README.md +-rw-r--r-- root/root 2507 2020-12-08 12:16 kubernetes/cluster/addons/metadata-proxy/gce/metadata-proxy.yaml +-rw-r--r-- root/root 427 2020-12-08 12:16 kubernetes/cluster/addons/metadata-proxy/gce/podsecuritypolicies/metadata-proxy-psp-binding.yaml +-rw-r--r-- root/root 149 2020-12-08 12:16 kubernetes/cluster/addons/metadata-proxy/OWNERS +-rw-r--r-- root/root 153 2020-12-08 12:16 kubernetes/cluster/addons/metadata-proxy/README.md +-rw-r--r-- root/root 425 2020-12-08 12:16 kubernetes/cluster/addons/ip-masq-agent/podsecuritypolicies/ip-masq-agent-psp-binding.yaml +-rw-r--r-- root/root 1748 2020-12-08 12:16 kubernetes/cluster/addons/ip-masq-agent/ip-masq-agent.yaml +-rw-r--r-- root/root 136 2020-12-08 12:16 kubernetes/cluster/addons/ip-masq-agent/OWNERS +-rw-r--r-- root/root 2226 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/go.mod +-rw-r--r-- root/root 1127 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/Dockerfile +-rwxr-xr-x root/root 871 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/Makefile +-rw-r--r-- root/root 23010 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/go.sum +-rw-r--r-- root/root 4576 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/elasticsearch_logging_discovery.go +-rw-r--r-- root/root 330 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/config/log4j2.properties +-rw-r--r-- root/root 205 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/config/elasticsearch.yml +-rw-r--r-- root/root 1195 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/BUILD +-rwxr-xr-x root/root 1040 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/run.sh +-rw-r--r-- root/root 32 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-image/.gitignore +-rw-r--r-- root/root 2190 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Dockerfile +-rw-r--r-- root/root 865 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Makefile +-rwxr-xr-x root/root 1052 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/entrypoint.sh +-rw-r--r-- root/root 267 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/fluent.conf +-rw-r--r-- root/root 451 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Gemfile +-rw-r--r-- root/root 662 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image/README.md +-rw-r--r-- root/root 399 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/podsecuritypolicies/es-psp-binding.yaml +-rw-r--r-- root/root 1519 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/kibana-deployment.yaml +-rw-r--r-- root/root 189 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/OWNERS +-rw-r--r-- root/root 3186 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-statefulset.yaml +-rw-r--r-- root/root 354 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/kibana-service.yaml +-rw-r--r-- root/root 580 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/es-service.yaml +-rw-r--r-- root/root 16125 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-configmap.yaml +-rw-r--r-- root/root 4550 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/README.md +-rw-r--r-- root/root 2581 2020-12-08 12:16 kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-ds.yaml +-rw-r--r-- root/root 242 2020-12-08 12:16 kubernetes/cluster/addons/dashboard/MAINTAINERS.md +-rw-r--r-- root/root 6878 2020-12-08 12:16 kubernetes/cluster/addons/dashboard/dashboard.yaml +-rw-r--r-- root/root 147 2020-12-08 12:16 kubernetes/cluster/addons/dashboard/OWNERS +-rw-r--r-- root/root 281 2020-12-08 12:16 kubernetes/cluster/addons/dashboard/README.md +-rw-r--r-- root/root 100 2020-12-08 12:16 kubernetes/cluster/addons/OWNERS +-rw-r--r-- root/root 433 2020-12-08 12:16 kubernetes/cluster/addons/metadata-agent/stackdriver/podsecuritypolicies/metadata-agent-psp-binding.yaml +-rw-r--r-- root/root 685 2020-12-08 12:16 kubernetes/cluster/addons/metadata-agent/stackdriver/metadata-agent-rbac.yaml +-rw-r--r-- root/root 3581 2020-12-08 12:16 kubernetes/cluster/addons/metadata-agent/stackdriver/metadata-agent.yaml +-rw-r--r-- root/root 183 2020-12-08 12:16 kubernetes/cluster/addons/metadata-agent/OWNERS +-rw-r--r-- root/root 132 2020-12-08 12:16 kubernetes/cluster/addons/metadata-agent/README.md +-rw-r--r-- root/root 1075 2020-12-08 12:16 kubernetes/cluster/addons/dns/coredns/Makefile +-rw-r--r-- root/root 5009 2020-12-08 12:16 kubernetes/cluster/addons/dns/coredns/coredns.yaml.sed +-rw-r--r-- root/root 287 2020-12-08 12:16 kubernetes/cluster/addons/dns/coredns/transforms2sed.sed +-rw-r--r-- root/root 4957 2020-12-08 12:16 kubernetes/cluster/addons/dns/coredns/coredns.yaml.base +-rw-r--r-- root/root 5007 2020-12-08 12:16 kubernetes/cluster/addons/dns/coredns/coredns.yaml.in +-rw-r--r-- root/root 344 2020-12-08 12:16 kubernetes/cluster/addons/dns/coredns/transforms2salt.sed +-rw-r--r-- root/root 129 2020-12-08 12:16 kubernetes/cluster/addons/dns/OWNERS +-rw-r--r-- root/root 7245 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/kube-dns.yaml.in +-rw-r--r-- root/root 7252 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/kube-dns.yaml.sed +-rw-r--r-- root/root 1077 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/Makefile +-rw-r--r-- root/root 287 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/transforms2sed.sed +-rw-r--r-- root/root 7211 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/kube-dns.yaml.base +-rw-r--r-- root/root 344 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/transforms2salt.sed +-rw-r--r-- root/root 1841 2020-12-08 12:16 kubernetes/cluster/addons/dns/kube-dns/README.md +-rw-r--r-- root/root 5334 2020-12-08 12:16 kubernetes/cluster/addons/dns/nodelocaldns/nodelocaldns.yaml +-rw-r--r-- root/root 2644 2020-12-08 12:16 kubernetes/cluster/addons/dns/nodelocaldns/README.md +-rw-r--r-- root/root 2024 2020-12-08 12:16 kubernetes/cluster/addons/kube-proxy/kube-proxy-ds.yaml +-rw-r--r-- root/root 149 2020-12-08 12:16 kubernetes/cluster/addons/kube-proxy/OWNERS +-rw-r--r-- root/root 488 2020-12-08 12:16 kubernetes/cluster/addons/kube-proxy/kube-proxy-rbac.yaml +-rw-r--r-- root/root 765 2020-12-08 12:16 kubernetes/cluster/addons/BUILD +-rw-r--r-- root/root 745 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/Dockerfile +-rw-r--r-- root/root 2065 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/Makefile +-rwxr-xr-x root/root 3147 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/kube-addons-main.sh +-rw-r--r-- root/root 3879 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/CHANGELOG.md +-rw-r--r-- root/root 119 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/OWNERS +-rwxr-xr-x root/root 9523 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/kube-addons-test.sh +-rwxr-xr-x root/root 11053 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/kube-addons.sh +-rw-r--r-- root/root 2544 2020-12-08 12:16 kubernetes/cluster/addons/addon-manager/README.md +-rw-r--r-- root/root 1587 2020-12-08 12:16 kubernetes/cluster/addons/device-plugins/nvidia-gpu/daemonset.yaml +-rw-r--r-- root/root 577 2020-12-08 12:16 kubernetes/cluster/addons/cluster-loadbalancing/glbc/default-svc.yaml +-rw-r--r-- root/root 1108 2020-12-08 12:16 kubernetes/cluster/addons/cluster-loadbalancing/glbc/default-svc-controller.yaml +-rw-r--r-- root/root 309 2020-12-08 12:16 kubernetes/cluster/addons/cluster-loadbalancing/glbc/README.md +-rw-r--r-- root/root 102 2020-12-08 12:16 kubernetes/cluster/addons/cluster-loadbalancing/OWNERS +-rw-r--r-- root/root 782 2020-12-08 12:16 kubernetes/cluster/addons/rbac/legacy-kubelet-user-disable/kubelet-binding.yaml +-rw-r--r-- root/root 565 2020-12-08 12:16 kubernetes/cluster/addons/rbac/legacy-kubelet-user/kubelet-binding.yaml +-rw-r--r-- root/root 1399 2020-12-08 12:16 kubernetes/cluster/addons/rbac/kubelet-cert-rotation/kubelet-certificate-management.yaml +-rw-r--r-- root/root 2089 2020-12-08 12:16 kubernetes/cluster/addons/rbac/cluster-autoscaler/cluster-autoscaler-rbac.yaml +-rw-r--r-- root/root 338 2020-12-08 12:16 kubernetes/cluster/addons/rbac/kubelet-api-auth/kubelet-api-admin-role.yaml +-rw-r--r-- root/root 427 2020-12-08 12:16 kubernetes/cluster/addons/rbac/kubelet-api-auth/kube-apiserver-kubelet-api-admin-binding.yaml +-rw-r--r-- root/root 647 2020-12-08 12:16 kubernetes/cluster/addons/rbac/cluster-loadbalancing/glbc/user-rolebindings.yaml +-rw-r--r-- root/root 2593 2020-12-08 12:16 kubernetes/cluster/addons/rbac/cluster-loadbalancing/glbc/roles.yaml +-rw-r--r-- root/root 1655 2020-12-08 12:16 kubernetes/cluster/addons/README.md +-rw-r--r-- root/root 2326 2020-12-08 12:16 kubernetes/cluster/log-dump/logexporter-daemonset.yaml +-rw-r--r-- root/root 173 2020-12-08 12:16 kubernetes/cluster/log-dump/OWNERS +-rwxr-xr-x root/root 29094 2020-12-08 12:16 kubernetes/cluster/log-dump/log-dump.sh +-rw-r--r-- root/root 1007 2020-12-08 12:16 kubernetes/cluster/log-dump/README.md +-rwxr-xr-x root/root 2483 2020-12-08 12:16 kubernetes/cluster/kube-up.sh +-rw-r--r-- root/root 331 2020-12-08 12:16 kubernetes/cluster/README.md +-rw-r--r-- root/root 2959 2020-12-08 12:16 kubernetes/hack/lib/protoc.sh +-rwxr-xr-x root/root 25774 2020-12-08 12:16 kubernetes/hack/lib/util.sh +-rw-r--r-- root/root 7345 2020-12-08 12:16 kubernetes/hack/lib/version.sh +-rw-r--r-- root/root 12383 2020-12-08 12:16 kubernetes/hack/lib/test.sh +-rw-r--r-- root/root 4443 2020-12-08 12:16 kubernetes/hack/lib/logging.sh +-rwxr-xr-x root/root 5406 2020-12-08 12:16 kubernetes/hack/lib/etcd.sh +-rw-r--r-- root/root 2313 2020-12-08 12:16 kubernetes/hack/lib/swagger.sh +-rwxr-xr-x root/root 29049 2020-12-08 12:16 kubernetes/hack/lib/golang.sh +-rw-r--r-- root/root 502 2020-12-08 12:16 kubernetes/hack/lib/BUILD +-rwxr-xr-x root/root 5694 2020-12-08 12:16 kubernetes/hack/lib/init.sh +-rw-r--r-- root/root 24 2020-12-08 12:16 kubernetes/hack/lib/.gitattributes +-rw-r--r-- root/root 84317 2020-12-08 12:16 kubernetes/server/kubernetes-manifests.tar.gz +-rw-r--r-- root/root 153 2020-12-08 12:16 kubernetes/server/README +-rw-r--r-- root/root 8 2020-12-08 12:16 kubernetes/version +-rw-r--r-- root/root 3386 2020-12-08 12:16 kubernetes/README.md +-rw-r--r-- root/root 11596 2020-12-08 12:16 kubernetes/LICENSES/LICENSE +-rw-r--r-- root/root 78 2020-12-08 12:16 kubernetes/LICENSES/OWNERS +-rw-r--r-- root/root 11492 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.mongodb.org/mongo-driver/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:16 kubernetes/LICENSES/vendor/google.golang.org/appengine/LICENSE +-rw-r--r-- root/root 11483 2020-12-08 12:16 kubernetes/LICENSES/vendor/google.golang.org/grpc/LICENSE +-rw-r--r-- root/root 1612 2020-12-08 12:16 kubernetes/LICENSES/vendor/google.golang.org/protobuf/LICENSE +-rw-r--r-- root/root 1598 2020-12-08 12:16 kubernetes/LICENSES/vendor/google.golang.org/api/LICENSE +-rw-r--r-- root/root 11491 2020-12-08 12:16 kubernetes/LICENSES/vendor/google.golang.org/genproto/LICENSE +-rw-r--r-- root/root 1228 2020-12-08 12:16 kubernetes/LICENSES/vendor/bitbucket.org/bertimus9/systemstat/LICENSE +-rw-r--r-- root/root 11469 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.etcd.io/etcd/LICENSE +-rw-r--r-- root/root 1191 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.etcd.io/bbolt/LICENSE +-rw-r--r-- root/root 1598 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/oauth2/LICENSE +-rw-r--r-- root/root 1592 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/net/LICENSE +-rw-r--r-- root/root 1594 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/text/LICENSE +-rw-r--r-- root/root 1592 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/sys/LICENSE +-rw-r--r-- root/root 1596 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/tools/LICENSE +-rw-r--r-- root/root 1594 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/time/LICENSE +-rw-r--r-- root/root 1598 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/crypto/LICENSE +-rw-r--r-- root/root 1600 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/xerrors/LICENSE +-rw-r--r-- root/root 1592 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/mod/LICENSE +-rw-r--r-- root/root 1594 2020-12-08 12:16 kubernetes/LICENSES/vendor/golang.org/x/sync/LICENSE +-rw-r--r-- root/root 11477 2020-12-08 12:16 kubernetes/LICENSES/vendor/cloud.google.com/go/LICENSE +-rw-r--r-- root/root 1187 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.uber.org/zap/LICENSE +-rw-r--r-- root/root 1192 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.uber.org/multierr/LICENSE +-rw-r--r-- root/root 1188 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.uber.org/atomic/LICENSE +-rw-r--r-- root/root 2670 2020-12-08 12:16 kubernetes/LICENSES/vendor/sigs.k8s.io/yaml/LICENSE +-rw-r--r-- root/root 11480 2020-12-08 12:16 kubernetes/LICENSES/vendor/sigs.k8s.io/kustomize/LICENSE +-rw-r--r-- root/root 11548 2020-12-08 12:16 kubernetes/LICENSES/vendor/sigs.k8s.io/apiserver-network-proxy/konnectivity-client/LICENSE +-rw-r--r-- root/root 11510 2020-12-08 12:16 kubernetes/LICENSES/vendor/sigs.k8s.io/structured-merge-diff/v4/LICENSE +-rw-r--r-- root/root 11470 2020-12-08 12:16 kubernetes/LICENSES/vendor/go.opencensus.io/LICENSE +-rw-r--r-- root/root 1647 2020-12-08 12:16 kubernetes/LICENSES/vendor/gonum.org/v1/gonum/LICENSE +-rw-r--r-- root/root 1637 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/gcfg.v1/LICENSE +-rw-r--r-- root/root 1396 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/warnings.v0/LICENSE +-rw-r--r-- root/root 1222 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/natefinch/lumberjack.v2/LICENSE +-rw-r--r-- root/root 1721 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/tomb.v1/LICENSE +-rw-r--r-- root/root 1658 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/fsnotify.v1/LICENSE +-rw-r--r-- root/root 11491 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/square/go-jose.v2/LICENSE +-rw-r--r-- root/root 10364 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/ini.v1/LICENSE +-rw-r--r-- root/root 1635 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/inf.v0/LICENSE +-rw-r--r-- root/root 2264 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/yaml.v3/LICENSE +-rw-r--r-- root/root 11470 2020-12-08 12:16 kubernetes/LICENSES/vendor/gopkg.in/yaml.v2/LICENSE +-rw-r--r-- root/root 1227 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/asaskevich/govalidator/LICENSE +-rw-r--r-- root/root 11509 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-prometheus/LICENSE +-rw-r--r-- root/root 1672 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/grpc-gateway/LICENSE +-rw-r--r-- root/root 11509 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/grpc-ecosystem/go-grpc-middleware/LICENSE +-rw-r--r-- root/root 2516 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/storageos/go-api/LICENSE +-rw-r--r-- root/root 11470 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/thecodeteam/goscaleio/LICENSE +-rw-r--r-- root/root 1212 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Microsoft/hcsshim/LICENSE +-rw-r--r-- root/root 1216 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Microsoft/go-winio/LICENSE +-rw-r--r-- root/root 1215 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/subosito/gotenv/LICENSE +-rw-r--r-- root/root 1190 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mailru/easyjson/LICENSE +-rw-r--r-- root/root 1209 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/cespare/xxhash/v2/LICENSE +-rw-r--r-- root/root 1213 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/satori/go.uuid/LICENSE +-rw-r--r-- root/root 11500 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/modern-go/concurrent/LICENSE +-rw-r--r-- root/root 11496 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/modern-go/reflect2/LICENSE +-rw-r--r-- root/root 11465 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/jonboulle/clockwork/LICENSE +-rw-r--r-- root/root 11501 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/pquerna/cachecontrol/LICENSE +-rw-r--r-- root/root 704 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/inconshreveable/mousetrap/LICENSE +-rw-r--r-- root/root 10894 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/docker/docker/LICENSE +-rw-r--r-- root/root 10900 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/docker/spdystream/LICENSE +-rw-r--r-- root/root 11466 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/docker/distribution/LICENSE +-rw-r--r-- root/root 10905 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/docker/go-connections/LICENSE +-rw-r--r-- root/root 10893 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/docker/go-units/LICENSE +-rw-r--r-- root/root 1613 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/golang/protobuf/LICENSE +-rw-r--r-- root/root 11483 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/golang/mock/LICENSE +-rw-r--r-- root/root 10410 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/golang/groupcache/LICENSE +-rw-r--r-- root/root 1209 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/morikuni/aec/LICENSE +-rw-r--r-- root/root 11491 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/swag/LICENSE +-rw-r--r-- root/root 11495 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/strfmt/LICENSE +-rw-r--r-- root/root 11509 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/jsonreference/LICENSE +-rw-r--r-- root/root 11497 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/runtime/LICENSE +-rw-r--r-- root/root 11491 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/spec/LICENSE +-rw-r--r-- root/root 11505 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/jsonpointer/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/loads/LICENSE +-rw-r--r-- root/root 11499 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/validate/LICENSE +-rw-r--r-- root/root 11495 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/errors/LICENSE +-rw-r--r-- root/root 11499 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-openapi/analysis/LICENSE +-rw-r--r-- root/root 1207 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/tmc/grpc-websocket-proxy/LICENSE +-rw-r--r-- root/root 11524 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/container-storage-interface/spec/LICENSE +-rw-r--r-- root/root 1212 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-stack/stack/LICENSE +-rw-r--r-- root/root 1201 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/peterbourgon/diskv/LICENSE +-rw-r--r-- root/root 1216 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/emicklei/go-restful/LICENSE +-rw-r--r-- root/root 1618 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/PuerkitoBio/urlesc/LICENSE +-rw-r--r-- root/root 1610 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/PuerkitoBio/purell/LICENSE +-rw-r--r-- root/root 1233 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mitchellh/go-wordwrap/LICENSE +-rw-r--r-- root/root 1232 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mitchellh/mapstructure/LICENSE +-rw-r--r-- root/root 1209 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/xiang90/probing/LICENSE +-rw-r--r-- root/root 10901 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/clusterhq/flocker-go/LICENSE +-rw-r--r-- root/root 11537 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/aws/aws-sdk-go/LICENSE +-rw-r--r-- root/root 1217 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/robfig/cron/LICENSE +-rw-r--r-- root/root 11500 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/euank/go-kmsg-parser/LICENSE +-rw-r--r-- root/root 1211 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/rubiojr/go-vhd/LICENSE +-rw-r--r-- root/root 1514 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/seccomp/libseccomp-golang/LICENSE +-rw-r--r-- root/root 2682 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/ghodss/yaml/LICENSE +-rw-r--r-- root/root 11498 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/caddyserver/caddy/LICENSE +-rw-r--r-- root/root 10933 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/vishvananda/netns/LICENSE +-rw-r--r-- root/root 10937 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/vishvananda/netlink/LICENSE +-rw-r--r-- root/root 1679 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/fsnotify/fsnotify/LICENSE +-rw-r--r-- root/root 1236 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/shurcooL/sanitized_anchor_name/LICENSE +-rw-r--r-- root/root 11468 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mistifyio/go-zfs/LICENSE +-rw-r--r-- root/root 1215 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/sirupsen/logrus/LICENSE +-rw-r--r-- root/root 1616 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/liggitt/tabwriter/LICENSE +-rw-r--r-- root/root 1459 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/karrick/godirwalk/LICENSE +-rw-r--r-- root/root 1607 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/willf/bitset/LICENSE +-rw-r--r-- root/root 1608 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/google/go-cmp/LICENSE +-rw-r--r-- root/root 1605 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/google/uuid/LICENSE +-rw-r--r-- root/root 11485 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/google/btree/LICENSE +-rw-r--r-- root/root 10898 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/google/cadvisor/LICENSE +-rw-r--r-- root/root 11487 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/google/gofuzz/LICENSE +-rw-r--r-- root/root 1736 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/miekg/dns/LICENSE +-rw-r--r-- root/root 11504 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/opencontainers/selinux/LICENSE +-rw-r--r-- root/root 10899 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/opencontainers/runc/LICENSE +-rw-r--r-- root/root 10952 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/opencontainers/go-digest/LICENSE +-rw-r--r-- root/root 10920 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/opencontainers/image-spec/LICENSE +-rw-r--r-- root/root 10924 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/opencontainers/runtime-spec/LICENSE +-rw-r--r-- root/root 11512 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/coredns/corefile-migration/LICENSE +-rw-r--r-- root/root 1459 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/godbus/dbus/v5/LICENSE +-rw-r--r-- root/root 11456 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/coreos/go-oidc/LICENSE +-rw-r--r-- root/root 10410 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/coreos/go-systemd/LICENSE +-rw-r--r-- root/root 10414 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/coreos/go-systemd/v22/LICENSE +-rw-r--r-- root/root 11448 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/coreos/pkg/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/coreos/go-semver/LICENSE +-rw-r--r-- root/root 1193 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/dgrijalva/jwt-go/LICENSE +-rw-r--r-- root/root 10917 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/libopenstorage/openstorage/LICENSE +-rw-r--r-- root/root 1449 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/gorilla/websocket/LICENSE +-rw-r--r-- root/root 1563 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/russross/blackfriday/LICENSE +-rw-r--r-- root/root 1566 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/russross/blackfriday/v2/LICENSE +-rw-r--r-- root/root 1542 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/JeffAshton/win_pdh/LICENSE +-rw-r--r-- root/root 1640 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/chai2010/gettext-go/LICENSE +-rw-r--r-- root/root 11497 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/moby/sys/mountinfo/LICENSE +-rw-r--r-- root/root 10886 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/moby/term/LICENSE +-rw-r--r-- root/root 11446 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/moby/ipvs/LICENSE +-rw-r--r-- root/root 11495 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mindprince/gonvml/LICENSE +-rw-r--r-- root/root 11494 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/ishidawataru/sctp/LICENSE +-rw-r--r-- root/root 11518 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/checkpoint-restore/go-criu/v4/LICENSE +-rw-r--r-- root/root 1435 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/pkg/errors/LICENSE +-rw-r--r-- root/root 11484 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-logr/logr/LICENSE +-rw-r--r-- root/root 1230 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/blang/semver/LICENSE +-rw-r--r-- root/root 11534 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/matttproud/golang_protobuf_extensions/LICENSE +-rw-r--r-- root/root 1500 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/magiconair/properties/LICENSE +-rw-r--r-- root/root 1185 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/beorn7/perks/LICENSE +-rw-r--r-- root/root 11499 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/azure-sdk-for-go/LICENSE +-rw-r--r-- root/root 10904 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/LICENSE +-rw-r--r-- root/root 10911 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/logger/LICENSE +-rw-r--r-- root/root 10918 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/adal/LICENSE +-rw-r--r-- root/root 10916 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/to/LICENSE +-rw-r--r-- root/root 10913 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/LICENSE +-rw-r--r-- root/root 10919 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/mocks/LICENSE +-rw-r--r-- root/root 10918 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/date/LICENSE +-rw-r--r-- root/root 10924 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/autorest/validation/LICENSE +-rw-r--r-- root/root 10912 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-autorest/tracing/LICENSE +-rw-r--r-- root/root 1225 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/Azure/go-ansiterm/LICENSE +-rw-r--r-- root/root 314 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-bindata/go-bindata/LICENSE +-rw-r--r-- root/root 1201 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/form3tech-oss/jwt-go/LICENSE +-rw-r--r-- root/root 899 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/davecgh/go-spew/LICENSE +-rw-r--r-- root/root 1272 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/hpcloud/tail/LICENSE +-rw-r--r-- root/root 1205 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/json-iterator/go/LICENSE +-rw-r--r-- root/root 2737 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/daviddengcn/go-colortext/LICENSE +-rw-r--r-- root/root 1267 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/cilium/ebpf/LICENSE +-rw-r--r-- root/root 1620 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/elazarl/goproxy/LICENSE +-rw-r--r-- root/root 1230 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/MakeNowJust/heredoc/LICENSE +-rw-r--r-- root/root 1202 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/spf13/cast/LICENSE +-rw-r--r-- root/root 10269 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/spf13/afero/LICENSE +-rw-r--r-- root/root 1656 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/spf13/pflag/LICENSE +-rw-r--r-- root/root 1204 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/spf13/viper/LICENSE +-rw-r--r-- root/root 1228 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/spf13/jwalterweatherman/LICENSE +-rw-r--r-- root/root 10269 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/spf13/cobra/LICENSE +-rw-r--r-- root/root 1218 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/fvbommel/sortorder/LICENSE +-rw-r--r-- root/root 1613 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mvdan/xurls/LICENSE +-rw-r--r-- root/root 1698 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/cyphar/filepath-securejoin/LICENSE +-rw-r--r-- root/root 1634 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/evanphx/json-patch/LICENSE +-rw-r--r-- root/root 1614 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/quobyte/api/LICENSE +-rw-r--r-- root/root 1208 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/armon/circbuf/LICENSE +-rw-r--r-- root/root 721 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/NYTimes/gziphandler/LICENSE +-rw-r--r-- root/root 11498 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/googleapis/gnostic/LICENSE +-rw-r--r-- root/root 1614 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/googleapis/gax-go/v2/LICENSE +-rw-r--r-- root/root 1683 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/munnerz/goautoneg/LICENSE +-rw-r--r-- root/root 1227 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/exponent-io/jsonpath/LICENSE +-rw-r--r-- root/root 1202 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mohae/deepcopy/LICENSE +-rw-r--r-- root/root 1294 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/konsorten/go-windows-terminal-sequences/LICENSE +-rw-r--r-- root/root 702 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/jmespath/go-jmespath/LICENSE +-rw-r--r-- root/root 1242 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/pelletier/go-toml/LICENSE +-rw-r--r-- root/root 1187 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/onsi/gomega/LICENSE +-rw-r--r-- root/root 1187 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/onsi/ginkgo/LICENSE +-rw-r--r-- root/root 1225 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/cpuguy83/go-md2man/v2/LICENSE +-rw-r--r-- root/root 1665 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/imdario/mergo/LICENSE +-rw-r--r-- root/root 389 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/heketi/heketi/LICENSE +-rw-r--r-- root/root 1225 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/go-ozzo/ozzo-validation/LICENSE +-rw-r--r-- root/root 1238 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/stretchr/testify/LICENSE +-rw-r--r-- root/root 1246 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/stretchr/objx/LICENSE +-rw-r--r-- root/root 1215 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/fatih/camelcase/LICENSE +-rw-r--r-- root/root 11493 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/vmware/govmomi/LICENSE +-rw-r--r-- root/root 1459 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/syndtr/gocapability/LICENSE +-rw-r--r-- root/root 10895 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mrunalp/fileutils/LICENSE +-rw-r--r-- root/root 11487 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/soheilhy/cmux/LICENSE +-rw-r--r-- root/root 1275 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/dustin/go-humanize/LICENSE +-rw-r--r-- root/root 11507 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/containernetworking/cni/LICENSE +-rw-r--r-- root/root 11494 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/prometheus/common/LICENSE +-rw-r--r-- root/root 11506 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/prometheus/client_model/LICENSE +-rw-r--r-- root/root 11494 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/prometheus/procfs/LICENSE +-rw-r--r-- root/root 11508 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/prometheus/client_golang/LICENSE +-rw-r--r-- root/root 16106 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/hashicorp/hcl/LICENSE +-rw-r--r-- root/root 16064 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/hashicorp/golang-lru/LICENSE +-rw-r--r-- root/root 1584 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/pmezard/go-difflib/LICENSE +-rw-r--r-- root/root 11492 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/containerd/ttrpc/LICENSE +-rw-r--r-- root/root 10904 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/containerd/console/LICENSE +-rw-r--r-- root/root 11496 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/containerd/cgroups/LICENSE +-rw-r--r-- root/root 10910 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/containerd/containerd/LICENSE +-rw-r--r-- root/root 1228 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/gregjones/httpcache/LICENSE +-rw-r--r-- root/root 1647 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/mxk/go-flowrate/LICENSE +-rw-r--r-- root/root 10896 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/gophercloud/gophercloud/LICENSE +-rw-r--r-- root/root 1810 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/gogo/protobuf/LICENSE +-rw-r--r-- root/root 1217 2020-12-08 12:16 kubernetes/LICENSES/vendor/github.com/lithammer/dedent/LICENSE +-rw-r--r-- root/root 11435 2020-12-08 12:16 kubernetes/LICENSES/vendor/k8s.io/heapster/LICENSE +-rw-r--r-- root/root 11486 2020-12-08 12:16 kubernetes/LICENSES/vendor/k8s.io/system-validators/LICENSE +-rw-r--r-- root/root 11477 2020-12-08 12:16 kubernetes/LICENSES/vendor/k8s.io/kube-openapi/LICENSE +-rw-r--r-- root/root 11459 2020-12-08 12:16 kubernetes/LICENSES/vendor/k8s.io/gengo/LICENSE +-rw-r--r-- root/root 10382 2020-12-08 12:16 kubernetes/LICENSES/vendor/k8s.io/klog/v2/LICENSE +-rw-r--r-- root/root 11463 2020-12-08 12:16 kubernetes/LICENSES/vendor/k8s.io/utils/LICENSE +``` + +

+
+ +> Content of `kubernetes-test.tar.gz` and `kubernetes-src.tar.gz` are not present in this document because of the amount of information present inside. First contains content of https://github.com/kubernetes/kubernetes/tree/master/test + some helpers, and the second contains source code of kubernetes. diff --git a/release-engineering/baseimage-exception-list.md b/release-engineering/baseimage-exception-list.md index 83aa3ce399d..b2d7f58affb 100644 --- a/release-engineering/baseimage-exception-list.md +++ b/release-engineering/baseimage-exception-list.md @@ -1,72 +1,72 @@ -# Base Image Exception List - -Theoretically, we expect to have all kubernetes images based on distroless (Please see this [KEP](https://github.com/kubernetes/enhancements/blob/master/keps/sig-release/20190316-rebase-images-to-distroless.md) for details). Due to the complexity and difficulty of rebasing all those images, we keep the exception list below to track the reasons and blockers about why certain images are not rebased. - -Please feel free to edit this file when you find any updates. Links to detailed `Reason` are welcomed. - -- [Release images](#release-images) - - [Release: `debian-base`](#release-debian-base) - - [Release: `distroless-iptables`](#release-distroless-iptables) - - [Release: `go-runner`](#release-go-runner) -- [Non-release images](#non-release-images) -- [Non-org images](#non-org-images) - -## Release images - -### Release: `debian-base` - -| Image Name | Reasons for exception | -|---|---| -| [distroless-iptables] | Needed to supported images that require `iptables` | - -### Release: `distroless-iptables` - -| Image Name | Reasons for exception | -|---|---| -| [kube-proxy][core-images] | Requires `iptables` | - -### Release: `go-runner` - -| Image Name | Reasons for exception | -|---|---| -| [kube-apiserver][core-images] | `go-runner` (`distroless++`)[[1](https://github.com/kubernetes/kubernetes/pull/90804)][[2](https://github.com/kubernetes/kubernetes/pull/90674)] | -| [kube-scheduler][core-images] | `go-runner` (`distroless++`)[[1](https://github.com/kubernetes/kubernetes/pull/90804)][[2](https://github.com/kubernetes/kubernetes/pull/90674)] | -| [kubectl][core-images] | `go-runner` (`distroless++`)[[1](https://github.com/kubernetes/kubernetes/pull/90804)][[2](https://github.com/kubernetes/kubernetes/pull/90674)] | - -## Non-release images - -| Image Name | Base Image | OWNER | Supported? (Yes/No/Unknown) | Reasons for exception | -|---|---|---|---|---| -| [etcd] | [debian-base] | https://github.com/kubernetes/kubernetes/blob/master/cluster/images/etcd/OWNERS | Y | Requires shell to do data migration | -| [etcd-empty-dir-cleanup] | [debian-base] | https://github.com/kubernetes/kubernetes/blob/master/cluster/images/etcd-empty-dir-cleanup/OWNERS | U | Requires shell to do some cleanup | -| [fluentd-elasticsearch] | `ruby:2.7-slim-buster` | https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/fluentd-elasticsearch/OWNERS | U | Requires shell to install fluentd via ruby | -| [ip-masq-agent] | [distroless-iptables] | https://github.com/kubernetes-sigs/ip-masq-agent/blob/master/OWNERS | U | Requires `iptables` | -| [k8s-dns-dnsmasq-nanny] | [debian-base] | https://github.com/kubernetes/dns/blob/master/OWNERS | U | Requires [container debugging tooling](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190212-ephemeral-containers.md) | -| [k8s-dns-kube-dns] | [debian-base] | https://github.com/kubernetes/dns/blob/master/OWNERS | U | Requires [container debugging tooling](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190212-ephemeral-containers.md) | -| [k8s-dns-node-cache] | [debian-base] | https://github.com/kubernetes/dns/blob/master/OWNERS | U | Requires [container debugging tooling](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190212-ephemeral-containers.md) | -| [k8s-dns-sidecar] | [debian-base] | https://github.com/kubernetes/dns/blob/master/OWNERS | U | Requires [container debugging tooling](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190212-ephemeral-containers.md) | -| [kube-addon-manager] | [debian-base] | https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/addon-manager/OWNERS | U | Requires [shell](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/addon-manager/kube-addons.sh) | -| [node-problem-detector] | [debian-base] | https://github.com/kubernetes/node-problem-detector/blob/master/OWNERS | U | Requires `libsystemd0` | - -## Non-org images - -| Image Name | Base Image | OWNER | Supported? (Yes/No/Unknown) | Reasons for exception | -|---|---|---|---|---| -| [fluentd-gcp-scaler] | [debian-base] | | U | Requires shell and kubectl | -| [stackdriver-logging-agent] | `debian:buster` | | U | Requires fluentd | - -[core-images]: https://github.com/kubernetes/kubernetes/blob/75889ecec5d30cbe1dcb6636d5334b21b4378e9c/build/common.sh#L114-L133 -[debian-base]: https://github.com/kubernetes/release/blob/8227bf2da2223e69617dcccde85ff02719628d55/images/build/debian-base -[distroless-iptables]: https://github.com/kubernetes/release/tree/9a6bbeaf5012ea2540b7f198f4eeff337442ec36/images/build/distroless-iptables -[etcd]: https://github.com/kubernetes/kubernetes/blob/d63d77dc4cae044702dac1fc5a97fafebebcbb0f/cluster/images/etcd/Dockerfile -[etcd-empty-dir-cleanup]: https://github.com/kubernetes/kubernetes/blob/d63d77dc4cae044702dac1fc5a97fafebebcbb0f/cluster/images/etcd-empty-dir-cleanup/Dockerfile -[fluentd-elasticsearch]: https://github.com/kubernetes/kubernetes/blob/d63d77dc4cae044702dac1fc5a97fafebebcbb0f/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Dockerfile -[fluentd-gcp-scaler]: https://github.com/GoogleCloudPlatform/k8s-stackdriver/blob/a8690c15342dc0545c8ed404c7e3ba70867e08f2/fluentd-gcp-scaler/Dockerfile -[ip-masq-agent]: https://github.com/kubernetes-sigs/ip-masq-agent/blob/83d8fe820435ac4c6b045a597d993ddee2983d1f/Dockerfile.in -[k8s-dns-dnsmasq-nanny]: https://github.com/kubernetes/dns/blob/69830ba1a789b3e44d4bb37a96ef01332b8044a0/Dockerfile.dnsmasq-nanny -[k8s-dns-kube-dns]: https://github.com/kubernetes/dns/blob/69830ba1a789b3e44d4bb37a96ef01332b8044a0/Dockerfile.kube-dns -[k8s-dns-node-cache]: https://github.com/kubernetes/dns/blob/69830ba1a789b3e44d4bb37a96ef01332b8044a0/Dockerfile.node-cache -[k8s-dns-sidecar]: https://github.com/kubernetes/dns/blob/69830ba1a789b3e44d4bb37a96ef01332b8044a0/Dockerfile.sidecar -[kube-addon-manager]: https://github.com/kubernetes/kubernetes/blob/d63d77dc4cae044702dac1fc5a97fafebebcbb0f/cluster/addons/addon-manager/Dockerfile -[node-problem-detector]: https://github.com/kubernetes/node-problem-detector/blob/1d03b66f1516657a354a7466e975e59fc9aafd29/Dockerfile.in -[stackdriver-logging-agent]: https://github.com/Stackdriver/agent-packaging +# Base Image Exception List + +Theoretically, we expect to have all kubernetes images based on distroless (Please see this [KEP](https://github.com/kubernetes/enhancements/blob/master/keps/sig-release/20190316-rebase-images-to-distroless.md) for details). Due to the complexity and difficulty of rebasing all those images, we keep the exception list below to track the reasons and blockers about why certain images are not rebased. + +Please feel free to edit this file when you find any updates. Links to detailed `Reason` are welcomed. + +- [Release images](#release-images) + - [Release: `debian-base`](#release-debian-base) + - [Release: `distroless-iptables`](#release-distroless-iptables) + - [Release: `go-runner`](#release-go-runner) +- [Non-release images](#non-release-images) +- [Non-org images](#non-org-images) + +## Release images + +### Release: `debian-base` + +| Image Name | Reasons for exception | +|---|---| +| [distroless-iptables] | Needed to supported images that require `iptables` | + +### Release: `distroless-iptables` + +| Image Name | Reasons for exception | +|---|---| +| [kube-proxy][core-images] | Requires `iptables` | + +### Release: `go-runner` + +| Image Name | Reasons for exception | +|---|---| +| [kube-apiserver][core-images] | `go-runner` (`distroless++`)[[1](https://github.com/kubernetes/kubernetes/pull/90804)][[2](https://github.com/kubernetes/kubernetes/pull/90674)] | +| [kube-scheduler][core-images] | `go-runner` (`distroless++`)[[1](https://github.com/kubernetes/kubernetes/pull/90804)][[2](https://github.com/kubernetes/kubernetes/pull/90674)] | +| [kubectl][core-images] | `go-runner` (`distroless++`)[[1](https://github.com/kubernetes/kubernetes/pull/90804)][[2](https://github.com/kubernetes/kubernetes/pull/90674)] | + +## Non-release images + +| Image Name | Base Image | OWNER | Supported? (Yes/No/Unknown) | Reasons for exception | +|---|---|---|---|---| +| [etcd] | [debian-base] | https://github.com/kubernetes/kubernetes/blob/master/cluster/images/etcd/OWNERS | Y | Requires shell to do data migration | +| [etcd-empty-dir-cleanup] | [debian-base] | https://github.com/kubernetes/kubernetes/blob/master/cluster/images/etcd-empty-dir-cleanup/OWNERS | U | Requires shell to do some cleanup | +| [fluentd-elasticsearch] | `ruby:2.7-slim-buster` | https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/fluentd-elasticsearch/OWNERS | U | Requires shell to install fluentd via ruby | +| [ip-masq-agent] | [distroless-iptables] | https://github.com/kubernetes-sigs/ip-masq-agent/blob/master/OWNERS | U | Requires `iptables` | +| [k8s-dns-dnsmasq-nanny] | [debian-base] | https://github.com/kubernetes/dns/blob/master/OWNERS | U | Requires [container debugging tooling](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190212-ephemeral-containers.md) | +| [k8s-dns-kube-dns] | [debian-base] | https://github.com/kubernetes/dns/blob/master/OWNERS | U | Requires [container debugging tooling](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190212-ephemeral-containers.md) | +| [k8s-dns-node-cache] | [debian-base] | https://github.com/kubernetes/dns/blob/master/OWNERS | U | Requires [container debugging tooling](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190212-ephemeral-containers.md) | +| [k8s-dns-sidecar] | [debian-base] | https://github.com/kubernetes/dns/blob/master/OWNERS | U | Requires [container debugging tooling](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190212-ephemeral-containers.md) | +| [kube-addon-manager] | [debian-base] | https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/addon-manager/OWNERS | U | Requires [shell](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/addon-manager/kube-addons.sh) | +| [node-problem-detector] | [debian-base] | https://github.com/kubernetes/node-problem-detector/blob/master/OWNERS | U | Requires `libsystemd0` | + +## Non-org images + +| Image Name | Base Image | OWNER | Supported? (Yes/No/Unknown) | Reasons for exception | +|---|---|---|---|---| +| [fluentd-gcp-scaler] | [debian-base] | | U | Requires shell and kubectl | +| [stackdriver-logging-agent] | `debian:buster` | | U | Requires fluentd | + +[core-images]: https://github.com/kubernetes/kubernetes/blob/75889ecec5d30cbe1dcb6636d5334b21b4378e9c/build/common.sh#L114-L133 +[debian-base]: https://github.com/kubernetes/release/blob/8227bf2da2223e69617dcccde85ff02719628d55/images/build/debian-base +[distroless-iptables]: https://github.com/kubernetes/release/tree/9a6bbeaf5012ea2540b7f198f4eeff337442ec36/images/build/distroless-iptables +[etcd]: https://github.com/kubernetes/kubernetes/blob/d63d77dc4cae044702dac1fc5a97fafebebcbb0f/cluster/images/etcd/Dockerfile +[etcd-empty-dir-cleanup]: https://github.com/kubernetes/kubernetes/blob/d63d77dc4cae044702dac1fc5a97fafebebcbb0f/cluster/images/etcd-empty-dir-cleanup/Dockerfile +[fluentd-elasticsearch]: https://github.com/kubernetes/kubernetes/blob/d63d77dc4cae044702dac1fc5a97fafebebcbb0f/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Dockerfile +[fluentd-gcp-scaler]: https://github.com/GoogleCloudPlatform/k8s-stackdriver/blob/a8690c15342dc0545c8ed404c7e3ba70867e08f2/fluentd-gcp-scaler/Dockerfile +[ip-masq-agent]: https://github.com/kubernetes-sigs/ip-masq-agent/blob/83d8fe820435ac4c6b045a597d993ddee2983d1f/Dockerfile.in +[k8s-dns-dnsmasq-nanny]: https://github.com/kubernetes/dns/blob/69830ba1a789b3e44d4bb37a96ef01332b8044a0/Dockerfile.dnsmasq-nanny +[k8s-dns-kube-dns]: https://github.com/kubernetes/dns/blob/69830ba1a789b3e44d4bb37a96ef01332b8044a0/Dockerfile.kube-dns +[k8s-dns-node-cache]: https://github.com/kubernetes/dns/blob/69830ba1a789b3e44d4bb37a96ef01332b8044a0/Dockerfile.node-cache +[k8s-dns-sidecar]: https://github.com/kubernetes/dns/blob/69830ba1a789b3e44d4bb37a96ef01332b8044a0/Dockerfile.sidecar +[kube-addon-manager]: https://github.com/kubernetes/kubernetes/blob/d63d77dc4cae044702dac1fc5a97fafebebcbb0f/cluster/addons/addon-manager/Dockerfile +[node-problem-detector]: https://github.com/kubernetes/node-problem-detector/blob/1d03b66f1516657a354a7466e975e59fc9aafd29/Dockerfile.in +[stackdriver-logging-agent]: https://github.com/Stackdriver/agent-packaging diff --git a/release-engineering/gcp.md b/release-engineering/gcp.md index 13d4f2c553b..d33db1b6c6a 100644 --- a/release-engineering/gcp.md +++ b/release-engineering/gcp.md @@ -1,58 +1,58 @@ -# Google Cloud Platform - -- [IAM](#iam) -- [Projects](#projects) - - [Kubernetes Releases](#kubernetes-releases) - - [Release Engineering](#release-engineering) -- [KMS](#kms) - -## IAM - -The following kubernetes.io Google Groups exist to grant Release Managers access to K8s Infra GCP resources. - -Mail to the groups below will be ignored. Please instead use the [contact groups listed on the Release Managers page][release-managers]. - -- `k8s-infra-release-admins` - Release Engineering subproject owners -- `k8s-infra-release-editors` - Patch Release Team / Branch Managers -- `k8s-infra-release-viewers` - Release Manager Associates - -[Membership](https://git.k8s.io/k8s.io/groups/groups.yaml) and [permissions](https://git.k8s.io/k8s.io/infra/gcp/ensure-release-projects.sh) for each group is defined in [kubernetes/k8s.io](https://git.k8s.io/k8s.io). - -## Projects - -### Kubernetes Releases - -| Name | Status | Tenancy | Ownership | Purpose | -|---|---|---|---|---| -| `kubernetes-release-test` | Active | Google | Release Engineering | Staging project for Kubernetes releases (Google) | -| `google-containers` | Active | Google | Google | Production project for Kubernetes releases (Google) | -| `k8s-staging-kubernetes` | Active | Kubernetes | Release Engineering | Staging project for Kubernetes releases (K8s Infra) | -| `k8s-release-test-prod` | Active | Kubernetes | Release Engineering | Test production project for Kubernetes releases (K8s Infra) | -| `k8s-artifacts-prod` | Active | Kubernetes | WG K8s Infra | Production project for Kubernetes Community (K8s Infra) | - -### Release Engineering - -| Name | Status | Tenancy | Ownership | Purpose | -|---|---|---|---|---| -| `k8s-infra-sig-release-prototype` | Deprecated | Kubernetes | Release Engineering | Test staging project for Release Engineering (K8s Infra) | -| `k8s-staging-release-test` | Deprecated | Kubernetes | Release Engineering | Test staging project for Release Engineering (K8s Infra) | -| `k8s-staging-releng` | Active | Kubernetes | Release Engineering | Staging project for Release Engineering tooling (K8s Infra) | -| `k8s-releng-prod` | Active | Kubernetes | Release Engineering | Production project for Release Engineering (K8s Infra) | -| `k8s-staging-releng-test` | Active | Kubernetes | Release Engineering | Staging project for Release Engineering build images (K8s Infra) | - -## KMS - -Release Engineering GCP projects often require access to sensitive credentials to execute work. - -An example is the `k8s-release-robot`'s GitHub token, used to commit, push, and create GitHub releases for `kubernetes/kubernetes`. - -To facilitate this on K8s Infra, we use the `k8s-releng-prod` project to store KMS assets. - -Decryption access to specific keyrings within the `k8s-releng-prod` project is then delegated out to the other Release Engineering GCP projects by members of the `k8s-infra-release-admins` group. - -To date, the following projects have access to decrypt KMS assets: - -- `k8s-staging-kubernetes` -- `k8s-staging-releng` - +# Google Cloud Platform + +- [IAM](#iam) +- [Projects](#projects) + - [Kubernetes Releases](#kubernetes-releases) + - [Release Engineering](#release-engineering) +- [KMS](#kms) + +## IAM + +The following kubernetes.io Google Groups exist to grant Release Managers access to K8s Infra GCP resources. + +Mail to the groups below will be ignored. Please instead use the [contact groups listed on the Release Managers page][release-managers]. + +- `k8s-infra-release-admins` - Release Engineering subproject owners +- `k8s-infra-release-editors` - Patch Release Team / Branch Managers +- `k8s-infra-release-viewers` - Release Manager Associates + +[Membership](https://git.k8s.io/k8s.io/groups/groups.yaml) and [permissions](https://git.k8s.io/k8s.io/infra/gcp/ensure-release-projects.sh) for each group is defined in [kubernetes/k8s.io](https://git.k8s.io/k8s.io). + +## Projects + +### Kubernetes Releases + +| Name | Status | Tenancy | Ownership | Purpose | +|---|---|---|---|---| +| `kubernetes-release-test` | Active | Google | Release Engineering | Staging project for Kubernetes releases (Google) | +| `google-containers` | Active | Google | Google | Production project for Kubernetes releases (Google) | +| `k8s-staging-kubernetes` | Active | Kubernetes | Release Engineering | Staging project for Kubernetes releases (K8s Infra) | +| `k8s-release-test-prod` | Active | Kubernetes | Release Engineering | Test production project for Kubernetes releases (K8s Infra) | +| `k8s-artifacts-prod` | Active | Kubernetes | WG K8s Infra | Production project for Kubernetes Community (K8s Infra) | + +### Release Engineering + +| Name | Status | Tenancy | Ownership | Purpose | +|---|---|---|---|---| +| `k8s-infra-sig-release-prototype` | Deprecated | Kubernetes | Release Engineering | Test staging project for Release Engineering (K8s Infra) | +| `k8s-staging-release-test` | Deprecated | Kubernetes | Release Engineering | Test staging project for Release Engineering (K8s Infra) | +| `k8s-staging-releng` | Active | Kubernetes | Release Engineering | Staging project for Release Engineering tooling (K8s Infra) | +| `k8s-releng-prod` | Active | Kubernetes | Release Engineering | Production project for Release Engineering (K8s Infra) | +| `k8s-staging-releng-test` | Active | Kubernetes | Release Engineering | Staging project for Release Engineering build images (K8s Infra) | + +## KMS + +Release Engineering GCP projects often require access to sensitive credentials to execute work. + +An example is the `k8s-release-robot`'s GitHub token, used to commit, push, and create GitHub releases for `kubernetes/kubernetes`. + +To facilitate this on K8s Infra, we use the `k8s-releng-prod` project to store KMS assets. + +Decryption access to specific keyrings within the `k8s-releng-prod` project is then delegated out to the other Release Engineering GCP projects by members of the `k8s-infra-release-admins` group. + +To date, the following projects have access to decrypt KMS assets: + +- `k8s-staging-kubernetes` +- `k8s-staging-releng` + [release-managers]: /release-managers.md \ No newline at end of file diff --git a/release-engineering/handbooks/go.md b/release-engineering/handbooks/go.md index 1479dcb6586..209951a0ddc 100644 --- a/release-engineering/handbooks/go.md +++ b/release-engineering/handbooks/go.md @@ -1,171 +1,171 @@ -# Updating Go - -This handbook covers updating Go versions in `kubernetes/kubernetes` and the -various interdependent repositories that need to be updated in tandem. - -- [Audience](#audience) -- [Scope](#scope) -- [Signaling intent](#signaling-intent) -- [kube-cross image](#kube-cross-image) - - [kube-cross image building](#kube-cross-image-building) - - [kube-cross image promotion](#kube-cross-image-promotion) -- [k8s-cloud-builder image](#k8s-cloud-builder-image) -- [`kubernetes/kubernetes` updates](#kuberneteskubernetes-updates) - - [`master` branch updates](#master-branch-updates) - - [Cherry picks](#cherry-picks) -- [kubekins and krte images](#kubekins-and-krte-images) -- [`publishing-bot` updates](#publishing-bot-updates) -- [Minor version updates](#minor-version-updates) - -## Audience - -Updating Go is intended to be handled by a member of the -[Release Managers][release-managers] group. - -There are a variety of touchpoints in this process that require special access -to debug potential failures, which are restricted to Release Managers. - -## Scope - -This handbook is intended to cover both minor and patch Golang version updates. - -- Minor version upgrade: `x.y.z` --> `x.y+N.z`, where `N` is usually `1` -- Patch version upgrade: `x.y.z` --> `x.y.z+N`, where `N` is usually `1` - -While the mechanics of a minor and patch are primarily the same, be aware that -a minor version update _may_ require: - -- code changes to `kubernetes/kubernetes` -- coordination across multiple SIGs/subprojects to attain reviews/approvals for - various code areas -- coordination with external projects e.g., golang, etcd -- extended lead time to merge (rebases, mending test failures) - -Minor version updates are initially made *only* to the current development branch, -and require additional [tracking of changes and prerequisites](#minor-version-updates), -before backporting changes to release branches. - -**Please pair with a more senior Release Manager if you find yourself working -on a minor version update.** - - -## Signaling intent - -Before you get started, it's important to inform a few groups that you will be -working on a Golang update. - -Some broad requirements (which can be expanded as we get more people involved): - -- Open an issue in `kubernetes/release` to track the work - - Examples: - - https://github.com/kubernetes/release/issues/3076 (minor version update) - - https://github.com/kubernetes/release/issues/3347 (patch version update) -- Tag `@kubernetes/release-engineering` in the tracking issue -- (For minor updates) Tag [SIG Scalability Chairs/Technical Leads](https://github.com/kubernetes/community/tree/master/sig-scalability#leadership) in the tracking issue - -## kube-cross image - -- the image that we use within kubernetes/kubernetes that allows cross compilation builds -- it has to have the same go version that we're intending to bump Kubernetes to -Relevant files to create a PR: -- https://github.com/kubernetes/release/blob/master/images/build/cross/ - - Dockerfile - - variants.yaml: update KUBE_CROSS_VERSION, e.g. "KUBE_CROSS_VERSION: 'v1.14'" - - Makefile: - these values must default to the current version (or prevailing minor version) - *e.g. - CONFIG?=go1.14 - KUBE_CROSS_VERSION?=v1.14* -- Sending this PR will trigger kube-cross image building - -### kube-cross image building - -Test Infra -https://github.com/kubernetes/test-infra/blob/master/config/jobs/image-pushing/k8s-staging-build-image.yaml (don't have to change anything) - -- we use GCP builder -- we only trigger these jobs on changes on the relevant directory (kubecross dir, in this case); images don't need to be built all the time -- See Testgrid dashboard for job performance details, which lead to GCP(@ k8s-staging-build-image) (Note: a privileged account is needed to access the Execution Details) -- Copy the docker image digest from GCP - -### kube-cross image promotion - -- promote the image from staging to production, for it to be an official image -- create PR in kubernetes/k8s.io - - Update the docker image digest and its version tag @ https://github.com/kubernetes/k8s.io/blob/main/k8s.gcr.io/images/k8s-staging-build-image/images.yaml - - indicate the image, a link to the staging run, signature ( e.g. "Signed off by : Stephen Augustus saugustus@example.com"), CC @kubernetes/release-engineering & relevant reviewers - - the structure of the file is structured by the digests' SHAs - -## k8s-cloud-builder image - -## `kubernetes/kubernetes` updates - -### `master` branch updates - -### Cherry picks - -## kubekins and krte images - -## `publishing-bot` updates - -## Minor version updates - -Minor version updates are initially made *only* to the current development branch, -and require additional tracking of changes and prerequisites, -before backporting changes to release branches. - -**1. Track prereq changes for a new minor go version** - -In the `kubernetes/release` issue, track any changes made to the default Kubernetes development branch -that were required to adopt a new go minor version (go 1.N). This typically includes changes like: - -* updates to static analysis tooling to support any go language changes - (e.g. [#115129](https://github.com/kubernetes/kubernetes/pull/115129)) -* updates to dependencies needed to work with go 1.N - (e.g. [#114766](https://github.com/kubernetes/kubernetes/pull/114766)) -* updates to Kubernetes code to fix issues identified by improved vet or lint checks -* updates to Kubernetes code to work with both go 1.N and 1.(N‑1) - (e.g. [commit c31cc5ec](https://github.com/kubernetes/kubernetes/commit/c31cc5ec46315a02343ec6d6a2ef659e2cc8668e)) - -Prioritize making the prereq changes as minimal and low-risk as possible. -Merge those changes to the default Kubernetes development branch *prior* to updating to go 1.N. -This ensures those changes build and pass tests with both go 1.N and 1.(N‑1). -Here is an [example of tracking prereq changes for go1.20](https://github.com/kubernetes/release/issues/2815#issuecomment-1373891562). - -**2. Backport prereq changes to release-1.x branches** - -Backport all prereq changes for go 1.N to release-1.x branches, keeping in mind the guidance to -[avoid introducing risk to release branches](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/cherry-picks.md#what-kind-of-prs-are-good-for-cherry-picks). - -Considering the typical changes required to update go versions: - -* Tooling and test changes carry minimal risk -* Dependency updates should be evaluated for extent / risk; if needed, and if possible, work with dependency maintainers to obtain the required fix in a more scoped way -* Updates to fix issues caught by improved vet or lint checks generally fix real problems and are reasonable to backport, or are very small / isolated and carry minimal risk -* Updates to make code work with both go 1.N and 1.(N‑1) should be evaluated for extent / risk; if needed, isolate the change in go-version-specific files. - -Here is an [example of tracking backports of prereq changes for go 1.20](https://github.com/kubernetes/release/issues/2815#issuecomment-1373891562). - -**3. Update release-1.x branches to new go minor versions** - -Update release-1.x branches to build/release using go 1.N *after* all of these conditions are satisfied: - -1. go 1.N has been released at least 3 months - * this gives ~3 months for adoption of go 1.N by the go community - * this gives ~3 months for completing the backports and cutting Kubernetes patch releases - until go 1.(N+1) is released and go 1.(N‑1) previously used by Kubernetes patch releases - goes out of support -2. go 1.N has been used in a released Kubernetes version for at least 1 month - * this ensures all release-blocking and release-informing CI has run on go 1.N - * this gives time for release candidates and early adoption by the Kubernetes community -3. Backported code and dependency changes build and pass unit and integration tests with both go 1.N - and the go minor version used for the .0 release of the Kubernetes release branch - * this ensures consumers of patch releases of published Kubernetes - libraries are not *forced* to update to go 1.N -4. There are no regressions relative to go 1.(N‑1) known to impact Kubernetes -5. Behavior changes in go 1.N are mitigated to preserve existing behavior for previous - Kubernetes minor versions without requiring action by Kubernetes end-users. - In go1.21+, the go runtime is expected to match previous runtime behavior by default - if we leave the go version indicated in `go.mod` files in release branches unchanged. - -[release-managers]: /release-managers.md +# Updating Go + +This handbook covers updating Go versions in `kubernetes/kubernetes` and the +various interdependent repositories that need to be updated in tandem. + +- [Audience](#audience) +- [Scope](#scope) +- [Signaling intent](#signaling-intent) +- [kube-cross image](#kube-cross-image) + - [kube-cross image building](#kube-cross-image-building) + - [kube-cross image promotion](#kube-cross-image-promotion) +- [k8s-cloud-builder image](#k8s-cloud-builder-image) +- [`kubernetes/kubernetes` updates](#kuberneteskubernetes-updates) + - [`master` branch updates](#master-branch-updates) + - [Cherry picks](#cherry-picks) +- [kubekins and krte images](#kubekins-and-krte-images) +- [`publishing-bot` updates](#publishing-bot-updates) +- [Minor version updates](#minor-version-updates) + +## Audience + +Updating Go is intended to be handled by a member of the +[Release Managers][release-managers] group. + +There are a variety of touchpoints in this process that require special access +to debug potential failures, which are restricted to Release Managers. + +## Scope + +This handbook is intended to cover both minor and patch Golang version updates. + +- Minor version upgrade: `x.y.z` --> `x.y+N.z`, where `N` is usually `1` +- Patch version upgrade: `x.y.z` --> `x.y.z+N`, where `N` is usually `1` + +While the mechanics of a minor and patch are primarily the same, be aware that +a minor version update _may_ require: + +- code changes to `kubernetes/kubernetes` +- coordination across multiple SIGs/subprojects to attain reviews/approvals for + various code areas +- coordination with external projects e.g., golang, etcd +- extended lead time to merge (rebases, mending test failures) + +Minor version updates are initially made *only* to the current development branch, +and require additional [tracking of changes and prerequisites](#minor-version-updates), +before backporting changes to release branches. + +**Please pair with a more senior Release Manager if you find yourself working +on a minor version update.** + + +## Signaling intent + +Before you get started, it's important to inform a few groups that you will be +working on a Golang update. + +Some broad requirements (which can be expanded as we get more people involved): + +- Open an issue in `kubernetes/release` to track the work + - Examples: + - https://github.com/kubernetes/release/issues/3076 (minor version update) + - https://github.com/kubernetes/release/issues/3347 (patch version update) +- Tag `@kubernetes/release-engineering` in the tracking issue +- (For minor updates) Tag [SIG Scalability Chairs/Technical Leads](https://github.com/kubernetes/community/tree/master/sig-scalability#leadership) in the tracking issue + +## kube-cross image + +- the image that we use within kubernetes/kubernetes that allows cross compilation builds +- it has to have the same go version that we're intending to bump Kubernetes to +Relevant files to create a PR: +- https://github.com/kubernetes/release/blob/master/images/build/cross/ + - Dockerfile + - variants.yaml: update KUBE_CROSS_VERSION, e.g. "KUBE_CROSS_VERSION: 'v1.14'" + - Makefile: + these values must default to the current version (or prevailing minor version) + *e.g. + CONFIG?=go1.14 + KUBE_CROSS_VERSION?=v1.14* +- Sending this PR will trigger kube-cross image building + +### kube-cross image building + +Test Infra +https://github.com/kubernetes/test-infra/blob/master/config/jobs/image-pushing/k8s-staging-build-image.yaml (don't have to change anything) + +- we use GCP builder +- we only trigger these jobs on changes on the relevant directory (kubecross dir, in this case); images don't need to be built all the time +- See Testgrid dashboard for job performance details, which lead to GCP(@ k8s-staging-build-image) (Note: a privileged account is needed to access the Execution Details) +- Copy the docker image digest from GCP + +### kube-cross image promotion + +- promote the image from staging to production, for it to be an official image +- create PR in kubernetes/k8s.io + - Update the docker image digest and its version tag @ https://github.com/kubernetes/k8s.io/blob/main/k8s.gcr.io/images/k8s-staging-build-image/images.yaml + - indicate the image, a link to the staging run, signature ( e.g. "Signed off by : Stephen Augustus saugustus@example.com"), CC @kubernetes/release-engineering & relevant reviewers + - the structure of the file is structured by the digests' SHAs + +## k8s-cloud-builder image + +## `kubernetes/kubernetes` updates + +### `master` branch updates + +### Cherry picks + +## kubekins and krte images + +## `publishing-bot` updates + +## Minor version updates + +Minor version updates are initially made *only* to the current development branch, +and require additional tracking of changes and prerequisites, +before backporting changes to release branches. + +**1. Track prereq changes for a new minor go version** + +In the `kubernetes/release` issue, track any changes made to the default Kubernetes development branch +that were required to adopt a new go minor version (go 1.N). This typically includes changes like: + +* updates to static analysis tooling to support any go language changes + (e.g. [#115129](https://github.com/kubernetes/kubernetes/pull/115129)) +* updates to dependencies needed to work with go 1.N + (e.g. [#114766](https://github.com/kubernetes/kubernetes/pull/114766)) +* updates to Kubernetes code to fix issues identified by improved vet or lint checks +* updates to Kubernetes code to work with both go 1.N and 1.(N‑1) + (e.g. [commit c31cc5ec](https://github.com/kubernetes/kubernetes/commit/c31cc5ec46315a02343ec6d6a2ef659e2cc8668e)) + +Prioritize making the prereq changes as minimal and low-risk as possible. +Merge those changes to the default Kubernetes development branch *prior* to updating to go 1.N. +This ensures those changes build and pass tests with both go 1.N and 1.(N‑1). +Here is an [example of tracking prereq changes for go1.20](https://github.com/kubernetes/release/issues/2815#issuecomment-1373891562). + +**2. Backport prereq changes to release-1.x branches** + +Backport all prereq changes for go 1.N to release-1.x branches, keeping in mind the guidance to +[avoid introducing risk to release branches](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/cherry-picks.md#what-kind-of-prs-are-good-for-cherry-picks). + +Considering the typical changes required to update go versions: + +* Tooling and test changes carry minimal risk +* Dependency updates should be evaluated for extent / risk; if needed, and if possible, work with dependency maintainers to obtain the required fix in a more scoped way +* Updates to fix issues caught by improved vet or lint checks generally fix real problems and are reasonable to backport, or are very small / isolated and carry minimal risk +* Updates to make code work with both go 1.N and 1.(N‑1) should be evaluated for extent / risk; if needed, isolate the change in go-version-specific files. + +Here is an [example of tracking backports of prereq changes for go 1.20](https://github.com/kubernetes/release/issues/2815#issuecomment-1373891562). + +**3. Update release-1.x branches to new go minor versions** + +Update release-1.x branches to build/release using go 1.N *after* all of these conditions are satisfied: + +1. go 1.N has been released at least 3 months + * this gives ~3 months for adoption of go 1.N by the go community + * this gives ~3 months for completing the backports and cutting Kubernetes patch releases + until go 1.(N+1) is released and go 1.(N‑1) previously used by Kubernetes patch releases + goes out of support +2. go 1.N has been used in a released Kubernetes version for at least 1 month + * this ensures all release-blocking and release-informing CI has run on go 1.N + * this gives time for release candidates and early adoption by the Kubernetes community +3. Backported code and dependency changes build and pass unit and integration tests with both go 1.N + and the go minor version used for the .0 release of the Kubernetes release branch + * this ensures consumers of patch releases of published Kubernetes + libraries are not *forced* to update to go 1.N +4. There are no regressions relative to go 1.(N‑1) known to impact Kubernetes +5. Behavior changes in go 1.N are mitigated to preserve existing behavior for previous + Kubernetes minor versions without requiring action by Kubernetes end-users. + In go1.21+, the go runtime is expected to match previous runtime behavior by default + if we leave the go version indicated in `go.mod` files in release branches unchanged. + +[release-managers]: /release-managers.md diff --git a/release-engineering/handbooks/k8s-release-cut.md b/release-engineering/handbooks/k8s-release-cut.md index fd39c4d2f5d..04e2c7bec38 100644 --- a/release-engineering/handbooks/k8s-release-cut.md +++ b/release-engineering/handbooks/k8s-release-cut.md @@ -1,594 +1,594 @@ -# Cutting a Kubernetes release - - -- [Cutting a Kubernetes release](#cutting-a-kubernetes-release) - - [Prerequisites](#prerequisites) - - [Green Release Signal (pre-releases only)](#green-release-signal-pre-releases-only) - - [Access to GCP](#access-to-gcp) - - [Install latest software (every time)](#install-latest-software-every-time) - - [Download or update `Go` to the latest available stable version:](#download-or-update-go-to-the-latest-available-stable-version) - - [Download or update the `gcloud` CLI to interact with GCP.](#download-or-update-the-gcloud-cli-to-interact-with-gcp) - - [Download or update `krel`](#download-or-update-krel) - - [Download or update the latest `kpromo` tool](#download-or-update-the-latest-kpromo-tool) - - [Download schedule-builder](#download-schedule-builder) - - [Configure GitHub Personal Access Token](#configure-github-personal-access-token) - - [1. Release cut issue](#1-release-cut-issue) - - [2. Create a thread on the `#release-management` Slack channel](#2-create-a-thread-on-the-release-management-slack-channel) - - [3. Generate testgrid screenshots](#3-generate-testgrid-screenshots) - - [4. Check publishing-bot status](#4-check-publishing-bot-status) - - [5. Mock stage and Mock release](#5-mock-stage-and-mock-release) - - [6. No-mock stage](#6-no-mock-stage) - - [7. Image promotion](#7-image-promotion) - - [Merge promo PR](#merge-promo-pr) - - [Wait on image promotion job](#wait-on-image-promotion-job) - - [8. No-mock release](#8-no-mock-release) - - [9. Notify public dev Google group mailinglist](#9-notify-public-dev-google-group-mailinglist) - - [Manually create release HTML announcements](#manually-create-release-html-announcements) - - [Legacy Sendgrid method:](#legacy-sendgrid-method) - - [10. Post release tasks](#10-post-release-tasks) - - [\[RC.0 only\] Considerations and post branch creation release tasks](#rc0-only-considerations-and-post-branch-creation-release-tasks) - - [Next Release Branch Creation](#next-release-branch-creation) - - [Post branch creation release tasks](#post-branch-creation-release-tasks) - - [\[Stable only\] Code Thaw](#stable-only-code-thaw) - - [\[Patch only\] Update schedule on k/website](#patch-only-update-schedule-on-kwebsite) - - [Cleanup](#cleanup) - -A step by step guide for cutting Kubernetes patch releases. At a high-level: - -- Maintain GitHub release cut issue -- Update tools (~15m) -- Run `krel stage` (~1h 15m - up to 2h) -- Run `krel release` (~15m) -- Run `krel stage --no-mock` (~1h 15m - up to 2h) -- Run `kpromo pr` & merge PR -- Wait for image promo prow job (~1h) -- Run `krel release --no-mock` (~15m) -- Send announcements (~30m) - - -## Prerequisites - -### Green Release Signal (pre-releases only) - -On the same day of the release, a green signal must've been given in the #release-management Slack channel. If in doubt, double check with the current Release Signal Team Lead. -You can find the complete list of release signal team members at this link (substitute `1.xx` with the current release version): - -`https://github.com/kubernetes/sig-release/blob/master/releases/release-1.xx/release-team.md` - -> [!NOTE] -Ensure that there are no patch releases in progress, coordinating with @release-managers. -These are typically scheduled on different days of the week, so there is usually no need to plan around them, but since they can sometimes overlap with other release activities, it's good to double-check. - -### Access to GCP - -You must be a member of [k8s-infra-release-editors](https://github.com/kubernetes/k8s.io/blob/main/groups/sig-release/groups.yaml) on GitHub. - -Group membership grants access to [Google Cloud Platform (GCP)](https://console.cloud.google.com/) for issuing `krel` commands that ultimately launch [Cloud Build](https://cloud.google.com/build) jobs. - -> [Example PR](https://github.com/kubernetes/k8s.io/pull/7781) - -### Install latest software (every time) - -Begin by updating to the latest package versions. This helps reduce failure points in the build process. The following packages are needed: - -- golang (Go, used to build OSS tools) -- gcloud (GCP CLI) -- krel (OSS CLI Tool) -- kpromo (OSS CLI Tool) -- [optional] schedule-builder (OSS CLI Tool) - -#### Download or update `Go` to the latest available stable version: - -[go.dev/dl](https://go.dev/dl/) - -``` -# to install -brew install go - -# to update (latest) -brew upgrade go -``` - -[optional] if on a Linux-based system using [zsh](https://www.zsh.org/) (Mac, Linux, Windows WSL) add to `~/.zshrc` PATH: - -``` -export GOPATH=$(go env GOPATH) -export PATH="$HOME/go/bin:${PATH}" -#reload your .zshrc -source ~/.zshrc -``` - -#### Download or update the `gcloud` CLI to interact with GCP. - -``` -# to install -brew install --cask google-cloud-sdk - -# to update -gcloud components update --quiet -``` - -Ensure your GCP credentials are active. - -``` -gcloud auth login -``` - -You will be prompted to log in via your default browser. - -> [!TIP] -Ensure that the email you are using to login is the same added in the [Access to GCP](#Access-to-GCP) step. - -#### Download or update `krel` - -Krel ([docs](https://github.com/kubernetes/release/blob/master/docs/krel/README.md)). - -First time: - -``` -git clone git@github.com:kubernetes/release.git -``` - -Every time: - -``` -cd release - -# to update -git checkout master -git pull origin master -``` - -Compile `krel` using the script in the repo: - -``` -./compile-release-tools krel -``` - -Validate with: - -``` -krel version -``` - - -#### Download or update the latest `kpromo` tool - -Run the following command ([source](https://github.com/kubernetes-sigs/promo-tools/blob/main/docs/promotion-pull-requests.md#preparing-environment)) to get the latest release of `kpromo`: - -``` -go install sigs.k8s.io/promo-tools/v4/cmd/kpromo@main -``` - -or to build the latest version directly from a target branch: - -``` -git clone https://github.com/kubernetes-sigs/promo-tools -git pull origin -make kpromo -``` - -Validate with: - -``` -kpromo version -``` - -Output should look like this: - -``` -_ __ ____ ____ ___ __ __ ___ -| |/ / | _ \ | _ \ / _ \ | \/ | / _ \ -| ' / | |_) | | |_) | | | | | | |\/| | | | | | -| . \ | __/ | _ < | |_| | | | | | | |_| | -|_|\_\ |_| |_| \_\ \___/ |_| |_| \___/ -kpromo: Kubernetes project artifact promoter - -GitVersion: v3.4.4 -GitCommit: unknown -GitTreeState: unknown -BuildDate: unknown -GoVersion: go1.19.1 -Compiler: gc -Platform: darwin/arm64 -``` - -#### Download schedule-builder - -Only when cutting a patch release (not a pre-release like alpha, beta, etc.). - -``` -go install k8s.io/release/cmd/schedule-builder@latest -``` - -### Configure GitHub Personal Access Token - -Get a GitHub API token (one off or expiration based) - -Navigate to `Settings > Developer Settings > Personal Access Token` to generate a new token. For the scopes, select: - -- repo -- gist -- notifications -- user - -Set an appropriate expiration date then click on `[GENERATE TOKEN]` and copy it. - -> NOTE / TODO: Look into using fine grained tokens: https://stackoverflow.com/questions/78216547/minimum-permissions-for-a-github-access-token-to-clone-push-and-pull-from-repo. Doing the bare minimum seemed to not work. - -Run this command in your shell to export the token and making it available for `krel` and `kpromo`. They should be short lived, no need to store. - -``` -export GITHUB_TOKEN=xyz -``` - -## 1. Release cut issue - -First step before cutting the release is to open an [issue](https://github.com/kubernetes/sig-release/issues/new?template=cut-release.md). - -An example issue you can follow can be found [here](https://github.com/kubernetes/sig-release/issues/2719). - -The issue contains a series of steps to follow and at some point you will be asked to input the `krel version` command output: - -``` -GitVersion: v0.13.0 -GitCommit: 2c2e73f4e15c85beba135e4513308bffa79abc64 -GitTreeState: clean -BuildDate: 2022-09-14T08:01:01 -GoVersion: go1.19.1 -Compiler: gc -Platform: darwin/arm64 -``` - -> [!WARNING] -Always recompile `krel` before cutting a release. - -## 2. Create a thread on the `#release-management` Slack channel - -Helpful templates, each one has a "completed" response too: - -``` -:thread: Release Cut v1.xx.yy-alpha|beta|rc-z (GH Issue) - -:hourglass_flowing_sand: Mock Stage (logs) --> :white_check_mark: - -:hourglass_flowing_sand: Mock Release (logs) --> :white_check_mark: - -:hourglass_flowing_sand: No-mock Stage (logs) --> :white_check_mark: - -https://github.com/kubernetes/k8s.io/pull/xxxx - -Image Promotion PR (link) -cc: @release-managers --> Image promotion is :white_check_mark: - -:hourglass_flowing_sand: No-mock Release (logs) --> :white_check_mark: -``` - -## 3. Generate testgrid screenshots - -Generate a comment with the `krel testgridshot` command as follows: - -``` -# defaults to master / main: -krel testgridshot - -# specific branch: -krel testgridshot --branch 1.xx -``` - -Post the comment generated in the **GitHub issue**. - -This comment contains a current snapshot of the test results for the target branch, if there is any error you should stop the release process and inform #release-management on Slack. Before proceeding the failing tests need to be either fixed or marked as non-release blocking. - -## 4. Check publishing-bot status - -Check the health of the publishing-bot by navigating to [this issue](https://github.com/kubernetes/kubernetes/issues/56876) if it's closed, the bot is healthy and you can keep going. - -If the issue is open you must stop the release process and inform #release-management on Slack. - -## 5. Mock stage and Mock release - -> [!WARNING] -Before cutting `alpha.1` ideally some days before, ensure that @release-managers have performed the propedeutic tasks for the alpha cut (e.g. setting up the new OBS project) - -Mock stages and mock releases are non-destructive and can be reran upon failure. To begin the mock stage, run the following `krel stage` command (replace the stage with the appropriate "type"). - -Run the following command from within the release repo directory. - -``` -# if cutting any unreleased version -krel stage --type alpha --branch master - -krel stage --type beta --branch master - -# or specify a branched version -krel stage --type official --branch release-1.xx - -krel stage --type rc --branch release-1.xx -``` - -> [!WARNING] -If you encounter an error that looks like this -`Step #4: level=fatal msg="checking out obs project: checking out obs project: command /usr/local/bin/osc checkout isv:kubernetes:core:prerelease:v1.33:build did not succeed: Server returned an error: HTTP Error 404: Not Found\nProject not found: isv:kubernetes:core:prerelease:v1.33:build\n"` -The OBS project has not been created, contact @release-managers on Slack. - -> [!CAUTION] -If you encounter this error -"FATA submit stage job: verifying repository state: local HEAD (d2eb4818bbaf2820128f21c1895308dad4cfc6de) is not equal to latest remote commit (90469b0184a2e3d1b31209bf8fed413273f92a17)" you need to pull the release repo [as follows](#Download-or-update-krel-docs) - -The `krel` tool outputs a link to the logs. - -This takes about **2 hours**. Once passed, move on to the "release" command using a specific build-version string (output from the first stage). - -> [!NOTE] -At this point you should start updating the Slack ([thread](#Create-a-thread-on-release-management)) and the release-cut GitHub [issue](#Release-cut-issue) - -``` -# take the output of the previous command from the logs and run the command -# It should look like this: -krel release --type=alpha|beta|official|release --branch=release-1.xx --build-version=v1.xx.yy-alpha|beta|rc-z+ -``` - -If you are releasing an `alpha.1` you will have a command output that has a `build-version` parameter value containing `alpha.0`, same goes for `alpha.2` having `alpha.1` and so on. This is expected, you can proceed with executing the krel release command. - -> [!NOTE] -Remember to update the Slack ([thread](#Create-a-thread-on-release-management)) and the release-cut GitHub [issue](#Release-cut-issue) after this step - -## 6. No-mock stage - -The following stages, called no-mock, create real artifacts that can be promoted for general use. The process should be near identical to the `no-mock` stages ran prior. - -Run the no-mock staging: - -``` -# if cutting an unreleased version -krel stage --type alpha --branch master --nomock - -krel stage --type rc --branch release-1.xx --nomock - -# or specify a branch version -krel stage --type official --branch release-1.xx --nomock -``` - -> [!NOTE] -Remember to update the Slack ([thread](#Create-a-thread-on-release-management)) and the release-cut GitHub [issue](#Release-cut-issue) after this no-mock stage step - -This also takes about **2 hours**. Once passed, move on to the `kpromo` command. - -> [!CAUTION] -Do not run the release command yet, just copy it somewhere and wait for the image promo to happen first (which means the image promo PR gets merged and the prow job has to be completed). - -## 7. Image promotion - -Complete docs can be found [here](https://github.com/kubernetes-sigs/promo-tools/blob/main/docs/promotion-pull-requests.md) - - > [!WARNING] -`FATA growing manifest with image filter [] and tag [1.29.0-alpha.1]: no images survived filtering; double-check your --filter_* flag(s) for typos` -means you forgot the letter "v" in the tag parameter. - -Once you've run the command its output should look like this: - -``` -INFO Successfully created PR #xxxx -INFO Successfully created PR: https://github.com/kubernetes/k8s.io/pull/xxxx -``` - -### Merge promo PR - -Wait for the generated PR to be merged (after approval and LGTM). -You might wanna ping @release-managers on Slack to speed this process up. - -**The PR has no dependencies outside of approvals / review.** - -> [!CAUTION] -In case a blocking test goes red during the release cut, you should keep the PR held and reach a consesus with @release-managers that the promo can continue. -e.g. if a test went red for infra flakyness "Node not ready" it's probably ok to continue, but it's always better to double check. - -> [Example PR](https://github.com/kubernetes/k8s.io/pull/3024). - -### Wait on image promotion job - -!! DO NOT CONTINUE **RELEASE** (UNTIL FINISHED) - -> [!CAUTION] -**After** the Pull Request is merged and **before** starting the official nomock release step, watch [the following Prow Job](https://prow.k8s.io/?job=post-k8sio-image-promo) and wait for it to succeed. - -If the job fails, look into the root cause and message the Slack thread. In many cases a rerun is fine (such as 429 too many requests or limit quota exceeded). -A resolution to this problem is being discussed [here](https://docs.google.com/document/d/1S5NlwOdtXKEWXvdkGRvVTsNip6niyhb52FSNk8-uJiQ/edit?resourcekey=0-IRBLdEtrNfK9e7z1w4y9ng&tab=t.0). - -To check the logs after failure, click on the spyglass eye icon, otherwise you can look at the POD logs when the job is running by clicking on the paper icon. - -To Rerun, click the refresh icon button shown below: - -image - -The UI can be funky at times, if you click rerun and it forces you to log in - you might need to click it again. -In case it doesn't it should show a pop up: -- if it says it didn’t run, retry -- if it says it ran wait 30s and check again (takes a minute) - -You might notice different jobs running, be sure to check out the hash from the merge commit that has been generated by prow after your image promo PR. -That is the hash of the job you want to check and rerun if it fails. - -If the job is stuck in "triggered" (empty clock yellow icon), especially after a rerun, it's normal and expected. Please wait and do not touch it. - -> [!NOTE] -Remember to update the Slack ([thread](#Create-a-thread-on-release-management)) and the release-cut GitHub [issue](#Release-cut-issue) after the image promotion step - -## 8. No-mock release - -You should have copied the nomock release command output from the nomock stage previously run, now you can execute the release command as follows: - -``` -krel release --type=alpha|beta|official|release --branch=release-1.xx --build-version=v1.xx.yy-alpha|beta|rc-z+ -``` - -> [!NOTE] -Remember to update the Slack ([thread](#Create-a-thread-on-release-management)) and the release-cut GitHub [issue](#Release-cut-issue) after this no-mock release step. - -## 9. Notify public dev Google group mailinglist - -Ensure that you are a moderator of dev@kubernetes.io so you can send messages without passing by the moderation queue, and also an admin of [kubernetes-announce](https://groups.google.com/g/kubernetes-announce). -In case you are not part of these groups as moderator/admin, ask to be added in #release-management. -Ideally this is a task that should be performed during onboarding and not on the day of the cut. - -> **NOTE as of February 2025: Using manual is the preferred method given the issues with Sendgrid.** - -### Manually create release HTML announcements - -Sometimes you might need to manually send the announcement, in which case you can run this command: - -``` -krel announce send -p --tag v1.xx.yy-alpha|beta|rc.z --name "First Last" --email "your-email@gmail.com" > ~/Downloads/announce.html -``` - -And then send the email from your account as follows: - -``` -# SUBJECT: -# Kubernetes v1.xx.yy-alpha|beta|rc-z is live! - -# ... -# SEND TO: -dev@kubernetes.io, kubernetes-announce@googlegroups.com -``` - -#### Legacy Sendgrid method: - -> [!TIP] -username == email` & `password == normalx2`. - -``` -cd ~/release -export SENDGRID_API_KEY= - -krel announce send --tag v1.xx.yy-alpha|beta|rc-z --name "First Last" --email "your-email@gmail.com" --nomock -``` - -Samples: - -``` -# for 1.22.14, 1.23.11, 1.24.5 and 1.25.1 -krel announce send --tag v1.24.14 --name "Jim Angel" --email "jameswangel@gmail.com" --nomock -krel announce send --tag v1.25.10 --name "Jim Angel" --email "jameswangel@gmail.com" --nomock -krel announce send --tag v1.26.5 --name "Jim Angel" --email "jameswangel@gmail.com" --nomock -krel announce send --tag v1.27.2 --name "Jim Angel" --email "jameswangel@gmail.com" --nomock -``` - -> [!WARNING] -You could run in a reached max recipients quota, in such case communicate with #release-management. - -> [!TIP] -Kubernetes-announce might require permissions to post, check you have them or ask your release-manager buddy to post the message for you. - -Post this message in release-management: - -``` -:kubernetes: Kubernetes v1.xx.yy is live! (shoutout to @xx & @Byfor helping cut the release) -https://groups.google.com/a/kubernetes.io/g/dev/c/fbaBcFvZFMo -``` - -Examples - -``` -:kubernetes: Kubernetes v1.23.11 is live! (shoutout to @arnaud & @Benjamin Kazemi for helping cut the release) -https://groups.google.com/a/kubernetes.io/g/dev/c/E14i6e2ndNc - -:kubernetes: Kubernetes v1.24.5 is live! (shoutout to @arnaud & @Benjamin Kazemi for helping cut the release) -https://groups.google.com/a/kubernetes.io/g/dev/c/WSQwY55HeeI - -:kubernetes: Kubernetes v1.25.1 is live! (shoutout to @arnaud & @Benjamin Kazemi for helping cut the release) -https://groups.google.com/a/kubernetes.io/g/dev/c/R5vB-jFqnDw -``` - -Copy / paste link to #release-management notification post. - -> [!NOTE] -Remember to provide one last final update to the Slack ([thread](#Create-a-thread-on-release-management)) and the release-cut GitHub [issue](#Release-cut-issue) after the announcement step - -To valorize the release stats required in the release cut issue, run this command: - -``` -# date should be the previous release date -krel history --branch master --date-from yyyy-mm-dd - -krel history --branch release-1.xx --date-from yyyy-mm-dd - -#example -krel history --branch release-1.33 --date-from 2025-04-23 -``` - -## 10. Post release tasks - -### [RC.0 only] Considerations and post branch creation release tasks - -Remember that before launching the `nomock release` command for an rc.0, you need to ensure that the image promo job for the next alpha.0 has been completed successfully. - -#### Next Release Branch Creation - -> [!IMPORTANT] -> The new release branch is created in the `nomock` staging phase and pushed to the repository during the `nomock` release phase of an rc.0 cut. - -During a `rc.0` release our release tooling creates a new release branch named `release-X.Y`, where `X.Y.0` is the version of the upcoming release. -Additionally, the `rc.0` release automatically triggers an `alpha.0` build for the subsequent release (e.g. for `v1.34.0-rc.0`, `v1.35.0-alpha.0` is created automatically). - -Behind the scenes `krel` is executing a `git branch create` command and `git push`. - -At the same time Prow’s [`branchprotector`](https://git.k8s.io/test-infra/prow/cmd/branchprotector/README.md) runs every hour at 54 minutes past the hour and automatically adds [branch protection](https://help.github.com/articles/about-protected-branches/) to any new branch in the `kubernetes/kubernetes` repo, including the newly created one. -No need to manually create the branch protection rule. - -However, it is important to ensure that the branch is protected. We had cases where the branch was not protected and this was noticed very late. - -> [!NOTE] -This means that the staging step will take about twice as long, as it will stage both versions `vX.Y.0-rc.0` and `vX.{Y+1}.0-alpha.0`. -The release step will also be extended, but not substantially longer in time. - -#### Post branch creation release tasks - -See [here](post-rc0-release-tasks.md) for the complete list of post branch creation release tasks. - -Such list resides in a different document to mainain this one in a bite-sized SRE style format. - -> [!WARNING] -You will not be able to cut an rc.1 or any other cut against the new branch until the post branch creation tasks (post rc.0) are complete. - -### [Stable only] Code Thaw - -Code thaw means you need to lift the code freeze, [here](https://github.com/kubernetes/sig-release/blob/master/release-engineering/role-handbooks/branch-manager.md#code-thaw) -are the docs on how to do it, with an example PR. - -### [Patch only] Update schedule on k/website - -> [!NOTE] -Only for patch releases, 1.x.y not for alpha, beta, rc or official. - -You need to update the release schedule on the official Kubernetes website through schedule-builder, here is how: - -``` -# update k/website repo -git checkout main -git fetch upstream -git pull upstream main -git reset --hard upstream/main -rm -rf api-ref-generator -git submodule deinit -f api-ref-generator -git submodule update --init --recursive - - -# from in the k/website repo -git checkout -b schedule-updates-nov-2024 -schedule-builder -uc ./data/releases/schedule.yaml -e ./data/releases/eol.yaml -git add . -git commit -m "updating release schedule" -git push -u origin schedule-updates-oct-2024 -``` - -## Cleanup - -Close the release cut issue and possibly related issues, open new issues if you find any docs or feature missing, and ask Google admins to revoke your personal access to GCP if it is no longer required. -You might want to delete your GitHub access token too. +# Cutting a Kubernetes release + + +- [Cutting a Kubernetes release](#cutting-a-kubernetes-release) + - [Prerequisites](#prerequisites) + - [Green Release Signal (pre-releases only)](#green-release-signal-pre-releases-only) + - [Access to GCP](#access-to-gcp) + - [Install latest software (every time)](#install-latest-software-every-time) + - [Download or update `Go` to the latest available stable version:](#download-or-update-go-to-the-latest-available-stable-version) + - [Download or update the `gcloud` CLI to interact with GCP.](#download-or-update-the-gcloud-cli-to-interact-with-gcp) + - [Download or update `krel`](#download-or-update-krel) + - [Download or update the latest `kpromo` tool](#download-or-update-the-latest-kpromo-tool) + - [Download schedule-builder](#download-schedule-builder) + - [Configure GitHub Personal Access Token](#configure-github-personal-access-token) + - [1. Release cut issue](#1-release-cut-issue) + - [2. Create a thread on the `#release-management` Slack channel](#2-create-a-thread-on-the-release-management-slack-channel) + - [3. Generate testgrid screenshots](#3-generate-testgrid-screenshots) + - [4. Check publishing-bot status](#4-check-publishing-bot-status) + - [5. Mock stage and Mock release](#5-mock-stage-and-mock-release) + - [6. No-mock stage](#6-no-mock-stage) + - [7. Image promotion](#7-image-promotion) + - [Merge promo PR](#merge-promo-pr) + - [Wait on image promotion job](#wait-on-image-promotion-job) + - [8. No-mock release](#8-no-mock-release) + - [9. Notify public dev Google group mailinglist](#9-notify-public-dev-google-group-mailinglist) + - [Manually create release HTML announcements](#manually-create-release-html-announcements) + - [Legacy Sendgrid method:](#legacy-sendgrid-method) + - [10. Post release tasks](#10-post-release-tasks) + - [\[RC.0 only\] Considerations and post branch creation release tasks](#rc0-only-considerations-and-post-branch-creation-release-tasks) + - [Next Release Branch Creation](#next-release-branch-creation) + - [Post branch creation release tasks](#post-branch-creation-release-tasks) + - [\[Stable only\] Code Thaw](#stable-only-code-thaw) + - [\[Patch only\] Update schedule on k/website](#patch-only-update-schedule-on-kwebsite) + - [Cleanup](#cleanup) + +A step by step guide for cutting Kubernetes patch releases. At a high-level: + +- Maintain GitHub release cut issue +- Update tools (~15m) +- Run `krel stage` (~1h 15m - up to 2h) +- Run `krel release` (~15m) +- Run `krel stage --no-mock` (~1h 15m - up to 2h) +- Run `kpromo pr` & merge PR +- Wait for image promo prow job (~1h) +- Run `krel release --no-mock` (~15m) +- Send announcements (~30m) + + +## Prerequisites + +### Green Release Signal (pre-releases only) + +On the same day of the release, a green signal must've been given in the #release-management Slack channel. If in doubt, double check with the current Release Signal Team Lead. +You can find the complete list of release signal team members at this link (substitute `1.xx` with the current release version): + +`https://github.com/kubernetes/sig-release/blob/master/releases/release-1.xx/release-team.md` + +> [!NOTE] +Ensure that there are no patch releases in progress, coordinating with @release-managers. +These are typically scheduled on different days of the week, so there is usually no need to plan around them, but since they can sometimes overlap with other release activities, it's good to double-check. + +### Access to GCP + +You must be a member of [k8s-infra-release-editors](https://github.com/kubernetes/k8s.io/blob/main/groups/sig-release/groups.yaml) on GitHub. + +Group membership grants access to [Google Cloud Platform (GCP)](https://console.cloud.google.com/) for issuing `krel` commands that ultimately launch [Cloud Build](https://cloud.google.com/build) jobs. + +> [Example PR](https://github.com/kubernetes/k8s.io/pull/7781) + +### Install latest software (every time) + +Begin by updating to the latest package versions. This helps reduce failure points in the build process. The following packages are needed: + +- golang (Go, used to build OSS tools) +- gcloud (GCP CLI) +- krel (OSS CLI Tool) +- kpromo (OSS CLI Tool) +- [optional] schedule-builder (OSS CLI Tool) + +#### Download or update `Go` to the latest available stable version: + +[go.dev/dl](https://go.dev/dl/) + +``` +# to install +brew install go + +# to update (latest) +brew upgrade go +``` + +[optional] if on a Linux-based system using [zsh](https://www.zsh.org/) (Mac, Linux, Windows WSL) add to `~/.zshrc` PATH: + +``` +export GOPATH=$(go env GOPATH) +export PATH="$HOME/go/bin:${PATH}" +#reload your .zshrc +source ~/.zshrc +``` + +#### Download or update the `gcloud` CLI to interact with GCP. + +``` +# to install +brew install --cask google-cloud-sdk + +# to update +gcloud components update --quiet +``` + +Ensure your GCP credentials are active. + +``` +gcloud auth login +``` + +You will be prompted to log in via your default browser. + +> [!TIP] +Ensure that the email you are using to login is the same added in the [Access to GCP](#Access-to-GCP) step. + +#### Download or update `krel` + +Krel ([docs](https://github.com/kubernetes/release/blob/master/docs/krel/README.md)). + +First time: + +``` +git clone git@github.com:kubernetes/release.git +``` + +Every time: + +``` +cd release + +# to update +git checkout master +git pull origin master +``` + +Compile `krel` using the script in the repo: + +``` +./compile-release-tools krel +``` + +Validate with: + +``` +krel version +``` + + +#### Download or update the latest `kpromo` tool + +Run the following command ([source](https://github.com/kubernetes-sigs/promo-tools/blob/main/docs/promotion-pull-requests.md#preparing-environment)) to get the latest release of `kpromo`: + +``` +go install sigs.k8s.io/promo-tools/v4/cmd/kpromo@main +``` + +or to build the latest version directly from a target branch: + +``` +git clone https://github.com/kubernetes-sigs/promo-tools +git pull origin +make kpromo +``` + +Validate with: + +``` +kpromo version +``` + +Output should look like this: + +``` +_ __ ____ ____ ___ __ __ ___ +| |/ / | _ \ | _ \ / _ \ | \/ | / _ \ +| ' / | |_) | | |_) | | | | | | |\/| | | | | | +| . \ | __/ | _ < | |_| | | | | | | |_| | +|_|\_\ |_| |_| \_\ \___/ |_| |_| \___/ +kpromo: Kubernetes project artifact promoter + +GitVersion: v3.4.4 +GitCommit: unknown +GitTreeState: unknown +BuildDate: unknown +GoVersion: go1.19.1 +Compiler: gc +Platform: darwin/arm64 +``` + +#### Download schedule-builder + +Only when cutting a patch release (not a pre-release like alpha, beta, etc.). + +``` +go install k8s.io/release/cmd/schedule-builder@latest +``` + +### Configure GitHub Personal Access Token + +Get a GitHub API token (one off or expiration based) + +Navigate to `Settings > Developer Settings > Personal Access Token` to generate a new token. For the scopes, select: + +- repo +- gist +- notifications +- user + +Set an appropriate expiration date then click on `[GENERATE TOKEN]` and copy it. + +> NOTE / TODO: Look into using fine grained tokens: https://stackoverflow.com/questions/78216547/minimum-permissions-for-a-github-access-token-to-clone-push-and-pull-from-repo. Doing the bare minimum seemed to not work. + +Run this command in your shell to export the token and making it available for `krel` and `kpromo`. They should be short lived, no need to store. + +``` +export GITHUB_TOKEN=xyz +``` + +## 1. Release cut issue + +First step before cutting the release is to open an [issue](https://github.com/kubernetes/sig-release/issues/new?template=cut-release.md). + +An example issue you can follow can be found [here](https://github.com/kubernetes/sig-release/issues/2719). + +The issue contains a series of steps to follow and at some point you will be asked to input the `krel version` command output: + +``` +GitVersion: v0.13.0 +GitCommit: 2c2e73f4e15c85beba135e4513308bffa79abc64 +GitTreeState: clean +BuildDate: 2022-09-14T08:01:01 +GoVersion: go1.19.1 +Compiler: gc +Platform: darwin/arm64 +``` + +> [!WARNING] +Always recompile `krel` before cutting a release. + +## 2. Create a thread on the `#release-management` Slack channel + +Helpful templates, each one has a "completed" response too: + +``` +:thread: Release Cut v1.xx.yy-alpha|beta|rc-z (GH Issue) + +:hourglass_flowing_sand: Mock Stage (logs) +-> :white_check_mark: + +:hourglass_flowing_sand: Mock Release (logs) +-> :white_check_mark: + +:hourglass_flowing_sand: No-mock Stage (logs) +-> :white_check_mark: + +https://github.com/kubernetes/k8s.io/pull/xxxx + +Image Promotion PR (link) +cc: @release-managers +-> Image promotion is :white_check_mark: + +:hourglass_flowing_sand: No-mock Release (logs) +-> :white_check_mark: +``` + +## 3. Generate testgrid screenshots + +Generate a comment with the `krel testgridshot` command as follows: + +``` +# defaults to master / main: +krel testgridshot + +# specific branch: +krel testgridshot --branch 1.xx +``` + +Post the comment generated in the **GitHub issue**. + +This comment contains a current snapshot of the test results for the target branch, if there is any error you should stop the release process and inform #release-management on Slack. Before proceeding the failing tests need to be either fixed or marked as non-release blocking. + +## 4. Check publishing-bot status + +Check the health of the publishing-bot by navigating to [this issue](https://github.com/kubernetes/kubernetes/issues/56876) if it's closed, the bot is healthy and you can keep going. + +If the issue is open you must stop the release process and inform #release-management on Slack. + +## 5. Mock stage and Mock release + +> [!WARNING] +Before cutting `alpha.1` ideally some days before, ensure that @release-managers have performed the propedeutic tasks for the alpha cut (e.g. setting up the new OBS project) + +Mock stages and mock releases are non-destructive and can be reran upon failure. To begin the mock stage, run the following `krel stage` command (replace the stage with the appropriate "type"). + +Run the following command from within the release repo directory. + +``` +# if cutting any unreleased version +krel stage --type alpha --branch master + +krel stage --type beta --branch master + +# or specify a branched version +krel stage --type official --branch release-1.xx + +krel stage --type rc --branch release-1.xx +``` + +> [!WARNING] +If you encounter an error that looks like this +`Step #4: level=fatal msg="checking out obs project: checking out obs project: command /usr/local/bin/osc checkout isv:kubernetes:core:prerelease:v1.33:build did not succeed: Server returned an error: HTTP Error 404: Not Found\nProject not found: isv:kubernetes:core:prerelease:v1.33:build\n"` +The OBS project has not been created, contact @release-managers on Slack. + +> [!CAUTION] +If you encounter this error +"FATA submit stage job: verifying repository state: local HEAD (d2eb4818bbaf2820128f21c1895308dad4cfc6de) is not equal to latest remote commit (90469b0184a2e3d1b31209bf8fed413273f92a17)" you need to pull the release repo [as follows](#Download-or-update-krel-docs) + +The `krel` tool outputs a link to the logs. + +This takes about **2 hours**. Once passed, move on to the "release" command using a specific build-version string (output from the first stage). + +> [!NOTE] +At this point you should start updating the Slack ([thread](#Create-a-thread-on-release-management)) and the release-cut GitHub [issue](#Release-cut-issue) + +``` +# take the output of the previous command from the logs and run the command +# It should look like this: +krel release --type=alpha|beta|official|release --branch=release-1.xx --build-version=v1.xx.yy-alpha|beta|rc-z+ +``` + +If you are releasing an `alpha.1` you will have a command output that has a `build-version` parameter value containing `alpha.0`, same goes for `alpha.2` having `alpha.1` and so on. This is expected, you can proceed with executing the krel release command. + +> [!NOTE] +Remember to update the Slack ([thread](#Create-a-thread-on-release-management)) and the release-cut GitHub [issue](#Release-cut-issue) after this step + +## 6. No-mock stage + +The following stages, called no-mock, create real artifacts that can be promoted for general use. The process should be near identical to the `no-mock` stages ran prior. + +Run the no-mock staging: + +``` +# if cutting an unreleased version +krel stage --type alpha --branch master --nomock + +krel stage --type rc --branch release-1.xx --nomock + +# or specify a branch version +krel stage --type official --branch release-1.xx --nomock +``` + +> [!NOTE] +Remember to update the Slack ([thread](#Create-a-thread-on-release-management)) and the release-cut GitHub [issue](#Release-cut-issue) after this no-mock stage step + +This also takes about **2 hours**. Once passed, move on to the `kpromo` command. + +> [!CAUTION] +Do not run the release command yet, just copy it somewhere and wait for the image promo to happen first (which means the image promo PR gets merged and the prow job has to be completed). + +## 7. Image promotion + +Complete docs can be found [here](https://github.com/kubernetes-sigs/promo-tools/blob/main/docs/promotion-pull-requests.md) + + > [!WARNING] +`FATA growing manifest with image filter [] and tag [1.29.0-alpha.1]: no images survived filtering; double-check your --filter_* flag(s) for typos` +means you forgot the letter "v" in the tag parameter. + +Once you've run the command its output should look like this: + +``` +INFO Successfully created PR #xxxx +INFO Successfully created PR: https://github.com/kubernetes/k8s.io/pull/xxxx +``` + +### Merge promo PR + +Wait for the generated PR to be merged (after approval and LGTM). +You might wanna ping @release-managers on Slack to speed this process up. + +**The PR has no dependencies outside of approvals / review.** + +> [!CAUTION] +In case a blocking test goes red during the release cut, you should keep the PR held and reach a consesus with @release-managers that the promo can continue. +e.g. if a test went red for infra flakyness "Node not ready" it's probably ok to continue, but it's always better to double check. + +> [Example PR](https://github.com/kubernetes/k8s.io/pull/3024). + +### Wait on image promotion job + +!! DO NOT CONTINUE **RELEASE** (UNTIL FINISHED) + +> [!CAUTION] +**After** the Pull Request is merged and **before** starting the official nomock release step, watch [the following Prow Job](https://prow.k8s.io/?job=post-k8sio-image-promo) and wait for it to succeed. + +If the job fails, look into the root cause and message the Slack thread. In many cases a rerun is fine (such as 429 too many requests or limit quota exceeded). +A resolution to this problem is being discussed [here](https://docs.google.com/document/d/1S5NlwOdtXKEWXvdkGRvVTsNip6niyhb52FSNk8-uJiQ/edit?resourcekey=0-IRBLdEtrNfK9e7z1w4y9ng&tab=t.0). + +To check the logs after failure, click on the spyglass eye icon, otherwise you can look at the POD logs when the job is running by clicking on the paper icon. + +To Rerun, click the refresh icon button shown below: + +image + +The UI can be funky at times, if you click rerun and it forces you to log in - you might need to click it again. +In case it doesn't it should show a pop up: +- if it says it didn’t run, retry +- if it says it ran wait 30s and check again (takes a minute) + +You might notice different jobs running, be sure to check out the hash from the merge commit that has been generated by prow after your image promo PR. +That is the hash of the job you want to check and rerun if it fails. + +If the job is stuck in "triggered" (empty clock yellow icon), especially after a rerun, it's normal and expected. Please wait and do not touch it. + +> [!NOTE] +Remember to update the Slack ([thread](#Create-a-thread-on-release-management)) and the release-cut GitHub [issue](#Release-cut-issue) after the image promotion step + +## 8. No-mock release + +You should have copied the nomock release command output from the nomock stage previously run, now you can execute the release command as follows: + +``` +krel release --type=alpha|beta|official|release --branch=release-1.xx --build-version=v1.xx.yy-alpha|beta|rc-z+ +``` + +> [!NOTE] +Remember to update the Slack ([thread](#Create-a-thread-on-release-management)) and the release-cut GitHub [issue](#Release-cut-issue) after this no-mock release step. + +## 9. Notify public dev Google group mailinglist + +Ensure that you are a moderator of dev@kubernetes.io so you can send messages without passing by the moderation queue, and also an admin of [kubernetes-announce](https://groups.google.com/g/kubernetes-announce). +In case you are not part of these groups as moderator/admin, ask to be added in #release-management. +Ideally this is a task that should be performed during onboarding and not on the day of the cut. + +> **NOTE as of February 2025: Using manual is the preferred method given the issues with Sendgrid.** + +### Manually create release HTML announcements + +Sometimes you might need to manually send the announcement, in which case you can run this command: + +``` +krel announce send -p --tag v1.xx.yy-alpha|beta|rc.z --name "First Last" --email "your-email@gmail.com" > ~/Downloads/announce.html +``` + +And then send the email from your account as follows: + +``` +# SUBJECT: +# Kubernetes v1.xx.yy-alpha|beta|rc-z is live! + +# ... +# SEND TO: +dev@kubernetes.io, kubernetes-announce@googlegroups.com +``` + +#### Legacy Sendgrid method: + +> [!TIP] +username == email` & `password == normalx2`. + +``` +cd ~/release +export SENDGRID_API_KEY= + +krel announce send --tag v1.xx.yy-alpha|beta|rc-z --name "First Last" --email "your-email@gmail.com" --nomock +``` + +Samples: + +``` +# for 1.22.14, 1.23.11, 1.24.5 and 1.25.1 +krel announce send --tag v1.24.14 --name "Jim Angel" --email "jameswangel@gmail.com" --nomock +krel announce send --tag v1.25.10 --name "Jim Angel" --email "jameswangel@gmail.com" --nomock +krel announce send --tag v1.26.5 --name "Jim Angel" --email "jameswangel@gmail.com" --nomock +krel announce send --tag v1.27.2 --name "Jim Angel" --email "jameswangel@gmail.com" --nomock +``` + +> [!WARNING] +You could run in a reached max recipients quota, in such case communicate with #release-management. + +> [!TIP] +Kubernetes-announce might require permissions to post, check you have them or ask your release-manager buddy to post the message for you. + +Post this message in release-management: + +``` +:kubernetes: Kubernetes v1.xx.yy is live! (shoutout to @xx & @Byfor helping cut the release) +https://groups.google.com/a/kubernetes.io/g/dev/c/fbaBcFvZFMo +``` + +Examples + +``` +:kubernetes: Kubernetes v1.23.11 is live! (shoutout to @arnaud & @Benjamin Kazemi for helping cut the release) +https://groups.google.com/a/kubernetes.io/g/dev/c/E14i6e2ndNc + +:kubernetes: Kubernetes v1.24.5 is live! (shoutout to @arnaud & @Benjamin Kazemi for helping cut the release) +https://groups.google.com/a/kubernetes.io/g/dev/c/WSQwY55HeeI + +:kubernetes: Kubernetes v1.25.1 is live! (shoutout to @arnaud & @Benjamin Kazemi for helping cut the release) +https://groups.google.com/a/kubernetes.io/g/dev/c/R5vB-jFqnDw +``` + +Copy / paste link to #release-management notification post. + +> [!NOTE] +Remember to provide one last final update to the Slack ([thread](#Create-a-thread-on-release-management)) and the release-cut GitHub [issue](#Release-cut-issue) after the announcement step + +To valorize the release stats required in the release cut issue, run this command: + +``` +# date should be the previous release date +krel history --branch master --date-from yyyy-mm-dd + +krel history --branch release-1.xx --date-from yyyy-mm-dd + +#example +krel history --branch release-1.33 --date-from 2025-04-23 +``` + +## 10. Post release tasks + +### [RC.0 only] Considerations and post branch creation release tasks + +Remember that before launching the `nomock release` command for an rc.0, you need to ensure that the image promo job for the next alpha.0 has been completed successfully. + +#### Next Release Branch Creation + +> [!IMPORTANT] +> The new release branch is created in the `nomock` staging phase and pushed to the repository during the `nomock` release phase of an rc.0 cut. + +During a `rc.0` release our release tooling creates a new release branch named `release-X.Y`, where `X.Y.0` is the version of the upcoming release. +Additionally, the `rc.0` release automatically triggers an `alpha.0` build for the subsequent release (e.g. for `v1.34.0-rc.0`, `v1.35.0-alpha.0` is created automatically). + +Behind the scenes `krel` is executing a `git branch create` command and `git push`. + +At the same time Prow’s [`branchprotector`](https://git.k8s.io/test-infra/prow/cmd/branchprotector/README.md) runs every hour at 54 minutes past the hour and automatically adds [branch protection](https://help.github.com/articles/about-protected-branches/) to any new branch in the `kubernetes/kubernetes` repo, including the newly created one. +No need to manually create the branch protection rule. + +However, it is important to ensure that the branch is protected. We had cases where the branch was not protected and this was noticed very late. + +> [!NOTE] +This means that the staging step will take about twice as long, as it will stage both versions `vX.Y.0-rc.0` and `vX.{Y+1}.0-alpha.0`. +The release step will also be extended, but not substantially longer in time. + +#### Post branch creation release tasks + +See [here](post-rc0-release-tasks.md) for the complete list of post branch creation release tasks. + +Such list resides in a different document to mainain this one in a bite-sized SRE style format. + +> [!WARNING] +You will not be able to cut an rc.1 or any other cut against the new branch until the post branch creation tasks (post rc.0) are complete. + +### [Stable only] Code Thaw + +Code thaw means you need to lift the code freeze, [here](https://github.com/kubernetes/sig-release/blob/master/release-engineering/role-handbooks/branch-manager.md#code-thaw) +are the docs on how to do it, with an example PR. + +### [Patch only] Update schedule on k/website + +> [!NOTE] +Only for patch releases, 1.x.y not for alpha, beta, rc or official. + +You need to update the release schedule on the official Kubernetes website through schedule-builder, here is how: + +``` +# update k/website repo +git checkout main +git fetch upstream +git pull upstream main +git reset --hard upstream/main +rm -rf api-ref-generator +git submodule deinit -f api-ref-generator +git submodule update --init --recursive + + +# from in the k/website repo +git checkout -b schedule-updates-nov-2024 +schedule-builder -uc ./data/releases/schedule.yaml -e ./data/releases/eol.yaml +git add . +git commit -m "updating release schedule" +git push -u origin schedule-updates-oct-2024 +``` + +## Cleanup + +Close the release cut issue and possibly related issues, open new issues if you find any docs or feature missing, and ask Google admins to revoke your personal access to GCP if it is no longer required. +You might want to delete your GitHub access token too. diff --git a/release-engineering/handbooks/post-release-branch-creation.md b/release-engineering/handbooks/post-release-branch-creation.md index e96812505a6..3bf8d15dcf6 100644 --- a/release-engineering/handbooks/post-release-branch-creation.md +++ b/release-engineering/handbooks/post-release-branch-creation.md @@ -1,398 +1,398 @@ -# Post release branch creation - - -- [Post release branch creation](#post-release-branch-creation) - - [Checklist](#checklist) - - [Remove EOL version jobs from test-infra (optional)](#remove-eol-version-jobs-from-test-infra-optional) - - [Update milestone applier rules and check milestone requirements](#update-milestone-applier-rules-and-check-milestone-requirements) - - [Update Kubekins-e2e v2 variants](#update-kubekins-e2e-v2-variants) - - [Update release branch jobs in kubernetes/test-infra for the new release and create the dashboards](#update-release-branch-jobs-in-kubernetestest-infra-for-the-new-release-and-create-the-dashboards) - - [Configure the release dashboards](#configure-the-release-dashboards) - - [Run test generation script](#run-test-generation-script) - - [Submit the PR for release branch jobs and dashboards in kubernetes/test-infra](#submit-the-pr-for-release-branch-jobs-and-dashboards-in-kubernetestest-infra) - - [Add new variant for kube-cross image](#add-new-variant-for-kube-cross-image) - - [Update k8s-cloud-builder and k8s-ci-builder](#update-k8s-cloud-builder-and-k8s-ci-builder) - - [Update `kubernetes/kubernetes` references for the `kube-cross` image](#update-kuberneteskubernetes-references-for-the-kube-cross-image) - - [Update publishing bot rules](#update-publishing-bot-rules) - - [Create Performance Tests Branch](#create-performance-tests-branch) - - [Check and eventually improve release scripts (optional)](#check-and-eventually-improve-release-scripts-optional) - - [Additional Resources](#additional-resources) - - [Notes](#notes) - -This document details the tasks that need to be executed after cutting a Kubernetes rc.0 release. These tasks ensure proper configuration for the new release branch and testing infrastructure. -They must be executed after the `nomock release` is completed, and the release branch is created, as stated in the [branch creation chapter](k8s-release-cut.md#next-release-branch-creation) of the release cut handbook. - -PR can be created beforehand (and this is recommended in order to get reviews in a timely manner) but you got to remember to put a `/hold` on all the PRs, they have to be lifted only once the `nomock` release phase is done and the branch is created. - -> [!WARNING] -It is essential to follow these steps to maintain the integrity of the release process and ensure that all necessary components are updated accordingly, the examples provided are for illustrative purposes and need to be adapted to the specific release version, so please replace `1.30`, `1.33` and `1.34` with the actual version(s) you are deprecating, currently working on or preparing grounds for. - -## Checklist - -Open a new issue using [this template](https://github.com/kubernetes/sig-release/issues/new?template=post-release-branch-creation.md). - -### Remove EOL version jobs from test-infra (optional) - -Consider removing jobs for versions that are going EOL. This is sometimes done before adding new jobs to avoid overwhelming the Prow cluster. - -Removing EOL jobs involves different steps, including deleting old configs from `config/jobs/kubernetes/sig-release/release-branch-jobs/` e.g. 1.29 EOL jobs removed in [this PR](https://github.com/kubernetes/test-infra/pull/34672). -There could also be some other jobs living outside `config/jobs/kubernetes/sig-release/release-branch-jobs` that also needs to be removed. - -You should also remove the unused EOL jobs from the `kubekins-e2e-v2/variants.yaml` file ([here](https://github.com/kubernetes/test-infra/blob/master/images/kubekins-e2e-v2/variants.yaml)), for example: - -```bash -# Example PR: https://github.com/kubernetes/test-infra/pull/34674 -# Changes would involve removing the EOL version from: images/kubekins-e2e-v2/variants.yaml - -# Diff example: - -- '1.30': -- CONFIG: '1.30' -- GO_VERSION: 1.23.6 -- K8S_RELEASE: latest-1.30 -- BAZEL_VERSION: 3.4.1 -``` - -> [!NOTE] -This step may alternatively be performed as part of a patch release process. It's mandatory to consult with the release engineering team regarding the timing of this step. - -### Update milestone applier rules and check milestone requirements - -Create a PR to update the milestone applier rules to include the new version and remove the oldest version. - -> [!WARNING] -Only remove the oldest version if it is already EOL and the release branch jobs have been already removed. - -```yaml -# Example PR: https://github.com/kubernetes/test-infra/pull/34650 -# Edit this file: config/prow/plugins.yaml - -# Add the new version and remove the oldest version in the kubernetes/kubernetes section - if the oldest version is EOL: -milestone_applier: - kubernetes/kubernetes: - master: v1.33 - release-1.33: v1.33 - release-1.32: v1.32 - ... - # remove oldest version (e.g., release-1.29: v1.29) -``` - -> [!NOTE] -Look out for the code freeze config and ensure excluded and included branches include the newly created release branch `release-1.xy`. - -### Update Kubekins-e2e v2 variants - -Create a PR to update the `kubekins-e2e-v2/variants.yaml` file with the new version's configuration. -File can be found [here](https://github.com/kubernetes/test-infra/blob/master/images/kubekins-e2e-v2/variants.yaml). - -> [!WARNING] -Remember to use the appropriate (updated) Go version for the release, coordinate with #release-management and @release-managers to ensure the correct version is used. - -```yaml -# Example PR: https://github.com/kubernetes/test-infra/pull/34651 -# Edit this file: images/kubekins-e2e-v2/variants.yaml - -# Add the new version configuration as follows: -variants: - '1.34': - CONFIG: '1.34' - GO_VERSION: 1.24.5 # Use appropriate Go version for the release - K8S_RELEASE: latest-1.34 - BAZEL_VERSION: 3.4.1 -``` - -Before proceding with the next step, wait for the `post-test-infra-push-kubekins-e2e` postsubmit to finish. You can check the status on [the Prow Status page](https://prow.k8s.io/?job=post-test-infra-push-kubekins-e2e). - -### Update release branch jobs in kubernetes/test-infra for the new release and create the dashboards - -> [!CAUTION] -Follow the guidelines below very carefully during the update process. - -- Do not remove old jobs while adding new jobs in this phase, just do not. Handle it before or after the post branch creation tasks, or let release engineering take care of this. -- Do not segregate PRs, just separate auto-generated files from manually updated ones in two (or more) clearly documented commits. -- Be super careful about `releng/test_config.yaml` epecially when commenting out `stable4` -- Do not hesitate to remove broken jobs, but let the interested SIG(s) know about it so they can re-add it. - -Updating the release branch jobs in `kubernetes/test-infra` for the new release version involves some steps, it is unpredictable work and requires manual intervention as not every job is generated. -Some of them are added manually and live outside of the generated job tree. - -First of all you need to modify the `releng/test_config.yaml` file ([here](https://github.com/kubernetes/test-infra/blob/master/releng/test_config.yaml)) to: -- Update version references -- Rotate stable job configurations sequentially (n -> n+1) - _note: you should put config of stable1 to stable2, then repeat it until you get to the end._ -- Add new version as beta -- Update configuration for all test suites - -Just shift "args" but not touch interval, sigowners or any other field. -Remember that args are bound to a set of tests for a specific release, while intervals and everything else is bound to a release "status": stable1/2/3/4 or beta. An example of how to correctly rotate the jobs can be found [here](https://github.com/kubernetes/test-infra/pull/34668/commits/819c9d253ab873aff6626a5eaf7635560f7b769e). - -Keep in mind that jobs order might be different, e.g. the first stable1 job and and the first stable2 job might not be the same type of the job, so remember to pay particular attention where you're copying from and to. - -> [!WARNING] -Consider what has been pointed out in [this issue](https://github.com/kubernetes/test-infra/issues/34675). -When updating to new release image variants, you’ll need to update the jobs to use these new images. However, keep in mind that you can only update a job after the new image tag is available. If you attempt to update before the new image exists, the job may fail. -This is related to how the tags are managed and you should consider using `latest` images instead or you will find yourself opening PRs like [this](https://github.com/kubernetes/test-infra/pull/35288) to fix the image tags for some jobs. - -Remember to update all configs before running the [generation script](#run-test-generation-script) for the upcoming release branch jobs and to verify that the jobs are generated correctly. - -#### Configure the release dashboards - -After configuring the jobs you can now configure the [release dashboards](https://github.com/kubernetes/test-infra/blob/master/config/testgrids/kubernetes/sig-release/config.yaml), example [commit](https://github.com/kubernetes/test-infra/commit/31fb8f2b5c4458af675e37765dfebd128da19971), remembering to: - -- Remove the deprecated release sig-release-1.xx-{blocking,informing} dashboards -- Add the new dashboards for the current release e.g., sig-release-1.xx-{blocking,informing} - -> [!NOTE] -Comparing the new jobs with previous version(s) might help to identify any missing jobs or misconfigurations. - -#### Run test generation script - -After updating the configurations you can run the following command from the root of your `test-infra` fork to generate the updated jobs configurations, remember to use the correct architecture and OS for your environment, e.g., `GOARCH=arm64 GOOS=darwin` for macOS on ARM: - -```bash -GOARCH=arm64 GOOS=darwin make -C releng prepare-release-branch -``` - -Breaking down what the above command does: - -- Navigates to the releng directory (-C releng) -- Executes the `prepare-release-branch target` from the `Makefile` in that directory -- Ensures Python 3 requirements are installed -- Executes the `run.sh` script in the releng directory, passing `prepare-release-branch` as an argument -- Sets error handling (errexit, nounset, pipefail) -- Determines the repository root directory -- Sources Go setup script `setup-go.sh` -- Builds the binary and stores them in the `_bin` directory -- Runs `config-rotator` -- Runs `config-forker` -- Runs the Python script `prepare_release_branch.py` inside a Python container -- Passes the built tools and another Python script `generate_tests.py` as arguments to the main script - -#### Submit the PR for release branch jobs and dashboards in kubernetes/test-infra - -You can finally issue a new PR as [this example](https://github.com/kubernetes/test-infra/pull/34668/files) one. - -After this PR is merged, you will be pairing with the Release Signal lead, checking that the new dashboards are working by visiting the TestGrid pages for the new dashboards and verifying that all the necessary jobs show up correctly. This task should be considered completed within 48 hours after the dashboards are created. - -Additionally update/fix the following scripts, if you've found any issues with or a way to improve them (they are fragile): -- `hack/run-in-python-container.sh` -- `releng/run.sh` -- `releng/prepare_release_branch.py` - -### Add new variant for kube-cross image - -> [!Note] -This work on the kube-cross image could have been done as part of the Golang bumps, but it is worth mentioning here as it is a common step. - -Before updating the builder images, you need to update the kube-cross image which they depend on: - -1. Create a PR to update the kube-cross variants.yaml file: - - Update the [dependencies.yaml](https://github.com/kubernetes/release/blob/master/dependencies.yaml) file - - Edit [images/build/cross/variants.yaml](https://github.com/kubernetes/release/blob/master/images/build/cross/variants.yaml) - - Add a new variant with the appropriate Go version for the current release - - - Example PR: https://github.com/kubernetes/release/pull/3870/files - - You also have to edit the dependencies.yaml to update "Kubernetes version (next candidate.0)" to the upcoming minor. - -> [!WARNING] -Bumping the stable version to the n+1 version of Kubernetes is done only when the official release is out. - -```yaml - - name: "Kubernetes version (stable.0)" # Update after the stable marker has been updated to stable.0 - version: v1.34.0 - refPaths: - - path: images/build/cross/Makefile - match: KUBERNETES_VERSION\ \?=\ v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?) - - path: images/build/cross/variants.yaml - match: "KUBERNETES_VERSION: 'v((([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)'" - - # Update after the stable marker has been updated to stable.0 - - name: "Kubernetes version (next candidate.0)" - version: v1.35.0 - refPaths: - - path: images/build/cross/variants.yaml - match: "KUBERNETES_VERSION: 'v((([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)'" -``` - -2. Wait for the Prow job to complete: - - Monitor the [post-release-push-image-kube-cross](https://prow.k8s.io/view/gs/kubernetes-jenkins/logs/post-release-push-image-kube-cross) job - -3. Create an image promotion PR: - - This promotes the image from staging to production - - Example PR: https://github.com/kubernetes/k8s.io/pull/8307/files - -### Update k8s-cloud-builder and k8s-ci-builder - -> [!NOTE] -Part of this work on k8s-cloud-builder and k8s-ci-builder could have been done as part of the Golang bumps, but it is worth mentioning here as it is a common step. -In any case you should always update the k8s-cloud-builder and k8s-ci-builder images to use the new kube-cross image. - -Once the updated kube-cross image is available: - -1. Update the k8s-cloud-builder variants.yaml file: - - Update dependencies.yaml - - Edit [images/k8s-cloud-builder/variants.yaml](https://github.com/kubernetes/release/blob/master/images/k8s-cloud-builder/variants.yaml) - - Add a new variant that references the new kube-cross image - - ```yaml - v1.XX-cross1.XX.Y-Z: # Example addition to variants.yaml - CONFIG: 'cross1.XX' - KUBE_CROSS_VERSION: 'v1.XX.y-go1.XX.Y-Z' # Match with the kube-cross image you created - ``` - -The k8s-ci-builder needs to be updated in a similar fashion: - -2. Update the k8s-ci-builder variants.yaml file: - - Update dependencies.yaml - - Edit [images/releng/k8s-ci-builder/variants.yaml](https://github.com/kubernetes/release/blob/master/images/releng/k8s-ci-builder/variants.yaml) - - Add a new variant with the appropriate Go version that matches the release - - ```yaml - '1.34': - CONFIG: '1.34' - GO_VERSION: '1.24.5' - GO_VERSION_TOOLING: '1.24.5' - OS_CODENAME: 'bullseye' - ``` - -3. Submit your PR and wait for review and merge - - Example PR (that also included the k8s-ci-builder Image update): https://github.com/kubernetes/release/pull/4065/files - -4. Monitor the build job in Prow: - - After merge, the image will be automatically built - -After the PR is merged, make sure the relevant ProwJobs are green. - -You can verify the images were built successfully by either pulling the images or using `crane` to check their digest. - -Or you can use `gcloud` to list the tags of the images: - - ```bash - # Check the kube-cross image - gcloud container images list-tags gcr.io/k8s-staging-build-image/kube-cross - - # Check the k8s-cloud-builder image - gcloud container images list-tags gcr.io/k8s-staging-releng/k8s-cloud-builder - - # Check the k8s-ci-builder image - gcloud container images list-tags gcr.io/k8s-staging-releng/k8s-ci-builder - ``` - -### Update `kubernetes/kubernetes` references for the `kube-cross` image - -Once the new builder images are available: - -Create a PR in kubernetes/kubernetes to reference the new kube-cross image in `build/build-image/cross/VERSION` ([here](https://github.com/kubernetes/kubernetes/blob/master/build/build-image/cross/VERSION)): - - Example PR: https://github.com/kubernetes/kubernetes/pull/132897/files - -### Update publishing bot rules - -The Kubernetes Publishing Bot is responsible for: -- ensuring that the master and release branches in the staging repositories are in-sync with the appropriate branches in `kubernetes/kubernetes` -- creating tags in the staging repositories for each Kubernetes release - -Update the publishing bot rules to include the new version. Use the update-rules CLI tool to generate the necessary changes as described [here](https://github.com/kubernetes/publishing-bot/blob/master/cmd/update-rules/README.md). - -You can install the tool on Linux with a simple `make build` command, similarly on MacOS by specifying your OS `GOOS=darwin make build`. -By default the binary will be located in `_output/update-rules`. This is the preferred way to run the tool. - -You can also use the Docker image to run the tool, which is useful if you don't want to build it locally (but you can also do that with make `make build-image`). The live Docker image is available at `gcr.io/k8s-staging-publishing-bot/publishing-bot:latest` and you can invoke the containerized tool as follows: - -```bash -docker run -t gcr.io/k8s-staging-publishing-bot/publishing-bot:latest /update-rules -branch release-1.34 -go 1.24.5 -rules ~/kubernetes/staging/publishing/rules.yaml -o /tmp/rules.yaml -``` - -It's recommended to set the release branch, the Go version and the current publishing rules from kubernetes/kubernetes master branch as environment variables before running the command: - -```bash - # set release branch - export K8S_REL_BRANCH=release-1.34 - # https://github.com/kubernetes/release/blob/master/images/build/cross/variants.yaml#L7 - export GO_VERSION=1.24.5 - export CURRENT_K8S_MASTER_RULES_FILE=/kubernetes/staging/publishing/rules.yaml -``` - -> [!WARNING] -Remember to use the appropriate (updated) Go version for the release, coordinate with #release-management or @release-managers to ensure the correct version is used. - -Basically you need to run the following command after having the `update-rules` tool installed. - -```bash -_output/update-rules -branch ${K8S_REL_BRANCH} -go ${GO_VERSION} -rules ${CURRENT_K8S_MASTER_RULES_FILE} -o /tmp/rules.yaml -``` - -Or, if you ever need to manually edit the rules file, you can do so, as follows: - -```yaml -# Example PR: https://github.com/kubernetes/kubernetes/pull/131250 -# Edit this file: staging/publishing/rules.yaml - -# Repeat this new section for each repository following this pattern: -- name: release-1.34 - go: 1.24.5 # Remember to use the appropriate Go version for the release - dependencies: - - repository: apimachinery - branch: release-1.34 - - repository: api - branch: release-1.34 - source: - branch: release-1.34 - dirs: - - staging/src/k8s.io/[repository-name] -``` - -> [!WARNING] -You should never really have to manually do this. If you have problems with the update-rules tool, those should be addressed as soon as possible. - -Once the rules are updated you can submit a PR similar to [this one](https://github.com/kubernetes/kubernetes/pull/131250), to the publishing-bot repository. - -### Create Performance Tests Branch - -Ensure a performance tests branch is created for the new version: - -```bash -# Example: https://github.com/kubernetes/perf-tests/issues/3290 - -# A maintainer from SIG Scalability should create: -https://github.com/kubernetes/perf-tests/tree/release-1.xx - -# Example for 1.34: -https://github.com/kubernetes/perf-tests/tree/release-1.34 - -# Verify the branch is working in CI: -https://prow.k8s.io/view/gs/kubernetes-ci-logs/logs/ci-kubernetes-kubemark-500-gce-1-xx - -# Example for 1.34: -https://prow.k8s.io/view/gs/kubernetes-ci-logs/logs/ci-kubernetes-kubemark-500-gce-1-34 -``` - -Reach out to SIG Scalability to ensure a new branch is cut in the [sigs.k8s.io/perf-tests](https://github.com/kubernetes/perf-tests/) repo. - -### Check and eventually improve release scripts (optional) - -If needed, fix error messages or anomalies found in any of the release scripts you've run during the post-rc.0 tasks. - -```bash -# Example: Fixing line 307 of this script: -# http://github.com/kubernetes/release/blob/9a9572f7c48f637de8499a201fb8e3ff52f8d4ba/pkg/gcp/gcb/gcb.go#L307 - -# This would help avoid having a "release job" message for nomock stage commands -``` - -Generally speaking, update scripts and documentation as needed to ensure they are up-to-date and reflect the current release process. - -## Additional Resources - -- [Release Manager Handbook](https://github.com/kubernetes/sig-release/blob/master/release-engineering/role-handbooks/branch-manager.md) -- [Example 1.34.0-rc.0 Release Cut Issue](https://github.com/kubernetes/sig-release/issues/2824) -- [Example of post branch creation tasks issue for 1.34.0-rc.0](https://github.com/kubernetes/sig-release/issues/2826) _this also contains an example of each PR linkedin in the body of the issue_ -- [Slack Discussion Thread for 1.33.0-rc.0](https://kubernetes.slack.com/archives/CJH2GBF7Y/p1744125003875769) - _do not rely on the Slack thread being long lived, if it got archived or the channel got deleted, you should just rely on the docs and the PRs linked in this document_ - -## Notes - -- The order of operations is important. Generally, update configuration files first, then generate files, check them and push on your fork before opening a PR. -- Some tasks may be release-specific. Always check with the rest of release engineering and inform them if you're unsure about any step. Also remember to keep the Release Team informed as they are responsible for the success of the release as a whole. -- After completing these tasks, verify that CI jobs are running properly for the new release branch and that the dashboards reflect the new version. - ---- +# Post release branch creation + + +- [Post release branch creation](#post-release-branch-creation) + - [Checklist](#checklist) + - [Remove EOL version jobs from test-infra (optional)](#remove-eol-version-jobs-from-test-infra-optional) + - [Update milestone applier rules and check milestone requirements](#update-milestone-applier-rules-and-check-milestone-requirements) + - [Update Kubekins-e2e v2 variants](#update-kubekins-e2e-v2-variants) + - [Update release branch jobs in kubernetes/test-infra for the new release and create the dashboards](#update-release-branch-jobs-in-kubernetestest-infra-for-the-new-release-and-create-the-dashboards) + - [Configure the release dashboards](#configure-the-release-dashboards) + - [Run test generation script](#run-test-generation-script) + - [Submit the PR for release branch jobs and dashboards in kubernetes/test-infra](#submit-the-pr-for-release-branch-jobs-and-dashboards-in-kubernetestest-infra) + - [Add new variant for kube-cross image](#add-new-variant-for-kube-cross-image) + - [Update k8s-cloud-builder and k8s-ci-builder](#update-k8s-cloud-builder-and-k8s-ci-builder) + - [Update `kubernetes/kubernetes` references for the `kube-cross` image](#update-kuberneteskubernetes-references-for-the-kube-cross-image) + - [Update publishing bot rules](#update-publishing-bot-rules) + - [Create Performance Tests Branch](#create-performance-tests-branch) + - [Check and eventually improve release scripts (optional)](#check-and-eventually-improve-release-scripts-optional) + - [Additional Resources](#additional-resources) + - [Notes](#notes) + +This document details the tasks that need to be executed after cutting a Kubernetes rc.0 release. These tasks ensure proper configuration for the new release branch and testing infrastructure. +They must be executed after the `nomock release` is completed, and the release branch is created, as stated in the [branch creation chapter](k8s-release-cut.md#next-release-branch-creation) of the release cut handbook. + +PR can be created beforehand (and this is recommended in order to get reviews in a timely manner) but you got to remember to put a `/hold` on all the PRs, they have to be lifted only once the `nomock` release phase is done and the branch is created. + +> [!WARNING] +It is essential to follow these steps to maintain the integrity of the release process and ensure that all necessary components are updated accordingly, the examples provided are for illustrative purposes and need to be adapted to the specific release version, so please replace `1.30`, `1.33` and `1.34` with the actual version(s) you are deprecating, currently working on or preparing grounds for. + +## Checklist + +Open a new issue using [this template](https://github.com/kubernetes/sig-release/issues/new?template=post-release-branch-creation.md). + +### Remove EOL version jobs from test-infra (optional) + +Consider removing jobs for versions that are going EOL. This is sometimes done before adding new jobs to avoid overwhelming the Prow cluster. + +Removing EOL jobs involves different steps, including deleting old configs from `config/jobs/kubernetes/sig-release/release-branch-jobs/` e.g. 1.29 EOL jobs removed in [this PR](https://github.com/kubernetes/test-infra/pull/34672). +There could also be some other jobs living outside `config/jobs/kubernetes/sig-release/release-branch-jobs` that also needs to be removed. + +You should also remove the unused EOL jobs from the `kubekins-e2e-v2/variants.yaml` file ([here](https://github.com/kubernetes/test-infra/blob/master/images/kubekins-e2e-v2/variants.yaml)), for example: + +```bash +# Example PR: https://github.com/kubernetes/test-infra/pull/34674 +# Changes would involve removing the EOL version from: images/kubekins-e2e-v2/variants.yaml + +# Diff example: + +- '1.30': +- CONFIG: '1.30' +- GO_VERSION: 1.23.6 +- K8S_RELEASE: latest-1.30 +- BAZEL_VERSION: 3.4.1 +``` + +> [!NOTE] +This step may alternatively be performed as part of a patch release process. It's mandatory to consult with the release engineering team regarding the timing of this step. + +### Update milestone applier rules and check milestone requirements + +Create a PR to update the milestone applier rules to include the new version and remove the oldest version. + +> [!WARNING] +Only remove the oldest version if it is already EOL and the release branch jobs have been already removed. + +```yaml +# Example PR: https://github.com/kubernetes/test-infra/pull/34650 +# Edit this file: config/prow/plugins.yaml + +# Add the new version and remove the oldest version in the kubernetes/kubernetes section - if the oldest version is EOL: +milestone_applier: + kubernetes/kubernetes: + master: v1.33 + release-1.33: v1.33 + release-1.32: v1.32 + ... + # remove oldest version (e.g., release-1.29: v1.29) +``` + +> [!NOTE] +Look out for the code freeze config and ensure excluded and included branches include the newly created release branch `release-1.xy`. + +### Update Kubekins-e2e v2 variants + +Create a PR to update the `kubekins-e2e-v2/variants.yaml` file with the new version's configuration. +File can be found [here](https://github.com/kubernetes/test-infra/blob/master/images/kubekins-e2e-v2/variants.yaml). + +> [!WARNING] +Remember to use the appropriate (updated) Go version for the release, coordinate with #release-management and @release-managers to ensure the correct version is used. + +```yaml +# Example PR: https://github.com/kubernetes/test-infra/pull/34651 +# Edit this file: images/kubekins-e2e-v2/variants.yaml + +# Add the new version configuration as follows: +variants: + '1.34': + CONFIG: '1.34' + GO_VERSION: 1.24.5 # Use appropriate Go version for the release + K8S_RELEASE: latest-1.34 + BAZEL_VERSION: 3.4.1 +``` + +Before proceding with the next step, wait for the `post-test-infra-push-kubekins-e2e` postsubmit to finish. You can check the status on [the Prow Status page](https://prow.k8s.io/?job=post-test-infra-push-kubekins-e2e). + +### Update release branch jobs in kubernetes/test-infra for the new release and create the dashboards + +> [!CAUTION] +Follow the guidelines below very carefully during the update process. + +- Do not remove old jobs while adding new jobs in this phase, just do not. Handle it before or after the post branch creation tasks, or let release engineering take care of this. +- Do not segregate PRs, just separate auto-generated files from manually updated ones in two (or more) clearly documented commits. +- Be super careful about `releng/test_config.yaml` epecially when commenting out `stable4` +- Do not hesitate to remove broken jobs, but let the interested SIG(s) know about it so they can re-add it. + +Updating the release branch jobs in `kubernetes/test-infra` for the new release version involves some steps, it is unpredictable work and requires manual intervention as not every job is generated. +Some of them are added manually and live outside of the generated job tree. + +First of all you need to modify the `releng/test_config.yaml` file ([here](https://github.com/kubernetes/test-infra/blob/master/releng/test_config.yaml)) to: +- Update version references +- Rotate stable job configurations sequentially (n -> n+1) - _note: you should put config of stable1 to stable2, then repeat it until you get to the end._ +- Add new version as beta +- Update configuration for all test suites + +Just shift "args" but not touch interval, sigowners or any other field. +Remember that args are bound to a set of tests for a specific release, while intervals and everything else is bound to a release "status": stable1/2/3/4 or beta. An example of how to correctly rotate the jobs can be found [here](https://github.com/kubernetes/test-infra/pull/34668/commits/819c9d253ab873aff6626a5eaf7635560f7b769e). + +Keep in mind that jobs order might be different, e.g. the first stable1 job and and the first stable2 job might not be the same type of the job, so remember to pay particular attention where you're copying from and to. + +> [!WARNING] +Consider what has been pointed out in [this issue](https://github.com/kubernetes/test-infra/issues/34675). +When updating to new release image variants, you’ll need to update the jobs to use these new images. However, keep in mind that you can only update a job after the new image tag is available. If you attempt to update before the new image exists, the job may fail. +This is related to how the tags are managed and you should consider using `latest` images instead or you will find yourself opening PRs like [this](https://github.com/kubernetes/test-infra/pull/35288) to fix the image tags for some jobs. + +Remember to update all configs before running the [generation script](#run-test-generation-script) for the upcoming release branch jobs and to verify that the jobs are generated correctly. + +#### Configure the release dashboards + +After configuring the jobs you can now configure the [release dashboards](https://github.com/kubernetes/test-infra/blob/master/config/testgrids/kubernetes/sig-release/config.yaml), example [commit](https://github.com/kubernetes/test-infra/commit/31fb8f2b5c4458af675e37765dfebd128da19971), remembering to: + +- Remove the deprecated release sig-release-1.xx-{blocking,informing} dashboards +- Add the new dashboards for the current release e.g., sig-release-1.xx-{blocking,informing} + +> [!NOTE] +Comparing the new jobs with previous version(s) might help to identify any missing jobs or misconfigurations. + +#### Run test generation script + +After updating the configurations you can run the following command from the root of your `test-infra` fork to generate the updated jobs configurations, remember to use the correct architecture and OS for your environment, e.g., `GOARCH=arm64 GOOS=darwin` for macOS on ARM: + +```bash +GOARCH=arm64 GOOS=darwin make -C releng prepare-release-branch +``` + +Breaking down what the above command does: + +- Navigates to the releng directory (-C releng) +- Executes the `prepare-release-branch target` from the `Makefile` in that directory +- Ensures Python 3 requirements are installed +- Executes the `run.sh` script in the releng directory, passing `prepare-release-branch` as an argument +- Sets error handling (errexit, nounset, pipefail) +- Determines the repository root directory +- Sources Go setup script `setup-go.sh` +- Builds the binary and stores them in the `_bin` directory +- Runs `config-rotator` +- Runs `config-forker` +- Runs the Python script `prepare_release_branch.py` inside a Python container +- Passes the built tools and another Python script `generate_tests.py` as arguments to the main script + +#### Submit the PR for release branch jobs and dashboards in kubernetes/test-infra + +You can finally issue a new PR as [this example](https://github.com/kubernetes/test-infra/pull/34668/files) one. + +After this PR is merged, you will be pairing with the Release Signal lead, checking that the new dashboards are working by visiting the TestGrid pages for the new dashboards and verifying that all the necessary jobs show up correctly. This task should be considered completed within 48 hours after the dashboards are created. + +Additionally update/fix the following scripts, if you've found any issues with or a way to improve them (they are fragile): +- `hack/run-in-python-container.sh` +- `releng/run.sh` +- `releng/prepare_release_branch.py` + +### Add new variant for kube-cross image + +> [!Note] +This work on the kube-cross image could have been done as part of the Golang bumps, but it is worth mentioning here as it is a common step. + +Before updating the builder images, you need to update the kube-cross image which they depend on: + +1. Create a PR to update the kube-cross variants.yaml file: + - Update the [dependencies.yaml](https://github.com/kubernetes/release/blob/master/dependencies.yaml) file + - Edit [images/build/cross/variants.yaml](https://github.com/kubernetes/release/blob/master/images/build/cross/variants.yaml) + - Add a new variant with the appropriate Go version for the current release + + + Example PR: https://github.com/kubernetes/release/pull/3870/files + + You also have to edit the dependencies.yaml to update "Kubernetes version (next candidate.0)" to the upcoming minor. + +> [!WARNING] +Bumping the stable version to the n+1 version of Kubernetes is done only when the official release is out. + +```yaml + - name: "Kubernetes version (stable.0)" # Update after the stable marker has been updated to stable.0 + version: v1.34.0 + refPaths: + - path: images/build/cross/Makefile + match: KUBERNETES_VERSION\ \?=\ v((([0-9]+)\.([0-9]+)\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?) + - path: images/build/cross/variants.yaml + match: "KUBERNETES_VERSION: 'v((([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)'" + + # Update after the stable marker has been updated to stable.0 + - name: "Kubernetes version (next candidate.0)" + version: v1.35.0 + refPaths: + - path: images/build/cross/variants.yaml + match: "KUBERNETES_VERSION: 'v((([0-9]+)\\.([0-9]+)\\.([0-9]+)(?:-([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?)'" +``` + +2. Wait for the Prow job to complete: + - Monitor the [post-release-push-image-kube-cross](https://prow.k8s.io/view/gs/kubernetes-jenkins/logs/post-release-push-image-kube-cross) job + +3. Create an image promotion PR: + - This promotes the image from staging to production + - Example PR: https://github.com/kubernetes/k8s.io/pull/8307/files + +### Update k8s-cloud-builder and k8s-ci-builder + +> [!NOTE] +Part of this work on k8s-cloud-builder and k8s-ci-builder could have been done as part of the Golang bumps, but it is worth mentioning here as it is a common step. +In any case you should always update the k8s-cloud-builder and k8s-ci-builder images to use the new kube-cross image. + +Once the updated kube-cross image is available: + +1. Update the k8s-cloud-builder variants.yaml file: + - Update dependencies.yaml + - Edit [images/k8s-cloud-builder/variants.yaml](https://github.com/kubernetes/release/blob/master/images/k8s-cloud-builder/variants.yaml) + - Add a new variant that references the new kube-cross image + + ```yaml + v1.XX-cross1.XX.Y-Z: # Example addition to variants.yaml + CONFIG: 'cross1.XX' + KUBE_CROSS_VERSION: 'v1.XX.y-go1.XX.Y-Z' # Match with the kube-cross image you created + ``` + +The k8s-ci-builder needs to be updated in a similar fashion: + +2. Update the k8s-ci-builder variants.yaml file: + - Update dependencies.yaml + - Edit [images/releng/k8s-ci-builder/variants.yaml](https://github.com/kubernetes/release/blob/master/images/releng/k8s-ci-builder/variants.yaml) + - Add a new variant with the appropriate Go version that matches the release + + ```yaml + '1.34': + CONFIG: '1.34' + GO_VERSION: '1.24.5' + GO_VERSION_TOOLING: '1.24.5' + OS_CODENAME: 'bullseye' + ``` + +3. Submit your PR and wait for review and merge + - Example PR (that also included the k8s-ci-builder Image update): https://github.com/kubernetes/release/pull/4065/files + +4. Monitor the build job in Prow: + - After merge, the image will be automatically built + +After the PR is merged, make sure the relevant ProwJobs are green. + +You can verify the images were built successfully by either pulling the images or using `crane` to check their digest. + +Or you can use `gcloud` to list the tags of the images: + + ```bash + # Check the kube-cross image + gcloud container images list-tags gcr.io/k8s-staging-build-image/kube-cross + + # Check the k8s-cloud-builder image + gcloud container images list-tags gcr.io/k8s-staging-releng/k8s-cloud-builder + + # Check the k8s-ci-builder image + gcloud container images list-tags gcr.io/k8s-staging-releng/k8s-ci-builder + ``` + +### Update `kubernetes/kubernetes` references for the `kube-cross` image + +Once the new builder images are available: + +Create a PR in kubernetes/kubernetes to reference the new kube-cross image in `build/build-image/cross/VERSION` ([here](https://github.com/kubernetes/kubernetes/blob/master/build/build-image/cross/VERSION)): + - Example PR: https://github.com/kubernetes/kubernetes/pull/132897/files + +### Update publishing bot rules + +The Kubernetes Publishing Bot is responsible for: +- ensuring that the master and release branches in the staging repositories are in-sync with the appropriate branches in `kubernetes/kubernetes` +- creating tags in the staging repositories for each Kubernetes release + +Update the publishing bot rules to include the new version. Use the update-rules CLI tool to generate the necessary changes as described [here](https://github.com/kubernetes/publishing-bot/blob/master/cmd/update-rules/README.md). + +You can install the tool on Linux with a simple `make build` command, similarly on MacOS by specifying your OS `GOOS=darwin make build`. +By default the binary will be located in `_output/update-rules`. This is the preferred way to run the tool. + +You can also use the Docker image to run the tool, which is useful if you don't want to build it locally (but you can also do that with make `make build-image`). The live Docker image is available at `gcr.io/k8s-staging-publishing-bot/publishing-bot:latest` and you can invoke the containerized tool as follows: + +```bash +docker run -t gcr.io/k8s-staging-publishing-bot/publishing-bot:latest /update-rules -branch release-1.34 -go 1.24.5 -rules ~/kubernetes/staging/publishing/rules.yaml -o /tmp/rules.yaml +``` + +It's recommended to set the release branch, the Go version and the current publishing rules from kubernetes/kubernetes master branch as environment variables before running the command: + +```bash + # set release branch + export K8S_REL_BRANCH=release-1.34 + # https://github.com/kubernetes/release/blob/master/images/build/cross/variants.yaml#L7 + export GO_VERSION=1.24.5 + export CURRENT_K8S_MASTER_RULES_FILE=/kubernetes/staging/publishing/rules.yaml +``` + +> [!WARNING] +Remember to use the appropriate (updated) Go version for the release, coordinate with #release-management or @release-managers to ensure the correct version is used. + +Basically you need to run the following command after having the `update-rules` tool installed. + +```bash +_output/update-rules -branch ${K8S_REL_BRANCH} -go ${GO_VERSION} -rules ${CURRENT_K8S_MASTER_RULES_FILE} -o /tmp/rules.yaml +``` + +Or, if you ever need to manually edit the rules file, you can do so, as follows: + +```yaml +# Example PR: https://github.com/kubernetes/kubernetes/pull/131250 +# Edit this file: staging/publishing/rules.yaml + +# Repeat this new section for each repository following this pattern: +- name: release-1.34 + go: 1.24.5 # Remember to use the appropriate Go version for the release + dependencies: + - repository: apimachinery + branch: release-1.34 + - repository: api + branch: release-1.34 + source: + branch: release-1.34 + dirs: + - staging/src/k8s.io/[repository-name] +``` + +> [!WARNING] +You should never really have to manually do this. If you have problems with the update-rules tool, those should be addressed as soon as possible. + +Once the rules are updated you can submit a PR similar to [this one](https://github.com/kubernetes/kubernetes/pull/131250), to the publishing-bot repository. + +### Create Performance Tests Branch + +Ensure a performance tests branch is created for the new version: + +```bash +# Example: https://github.com/kubernetes/perf-tests/issues/3290 + +# A maintainer from SIG Scalability should create: +https://github.com/kubernetes/perf-tests/tree/release-1.xx + +# Example for 1.34: +https://github.com/kubernetes/perf-tests/tree/release-1.34 + +# Verify the branch is working in CI: +https://prow.k8s.io/view/gs/kubernetes-ci-logs/logs/ci-kubernetes-kubemark-500-gce-1-xx + +# Example for 1.34: +https://prow.k8s.io/view/gs/kubernetes-ci-logs/logs/ci-kubernetes-kubemark-500-gce-1-34 +``` + +Reach out to SIG Scalability to ensure a new branch is cut in the [sigs.k8s.io/perf-tests](https://github.com/kubernetes/perf-tests/) repo. + +### Check and eventually improve release scripts (optional) + +If needed, fix error messages or anomalies found in any of the release scripts you've run during the post-rc.0 tasks. + +```bash +# Example: Fixing line 307 of this script: +# http://github.com/kubernetes/release/blob/9a9572f7c48f637de8499a201fb8e3ff52f8d4ba/pkg/gcp/gcb/gcb.go#L307 + +# This would help avoid having a "release job" message for nomock stage commands +``` + +Generally speaking, update scripts and documentation as needed to ensure they are up-to-date and reflect the current release process. + +## Additional Resources + +- [Release Manager Handbook](https://github.com/kubernetes/sig-release/blob/master/release-engineering/role-handbooks/branch-manager.md) +- [Example 1.34.0-rc.0 Release Cut Issue](https://github.com/kubernetes/sig-release/issues/2824) +- [Example of post branch creation tasks issue for 1.34.0-rc.0](https://github.com/kubernetes/sig-release/issues/2826) _this also contains an example of each PR linkedin in the body of the issue_ +- [Slack Discussion Thread for 1.33.0-rc.0](https://kubernetes.slack.com/archives/CJH2GBF7Y/p1744125003875769) - _do not rely on the Slack thread being long lived, if it got archived or the channel got deleted, you should just rely on the docs and the PRs linked in this document_ + +## Notes + +- The order of operations is important. Generally, update configuration files first, then generate files, check them and push on your fork before opening a PR. +- Some tasks may be release-specific. Always check with the rest of release engineering and inform them if you're unsure about any step. Also remember to keep the Release Team informed as they are responsible for the success of the release as a whole. +- After completing these tasks, verify that CI jobs are running properly for the new release branch and that the dashboards reflect the new version. + +--- diff --git a/release-engineering/platforms/README.md b/release-engineering/platforms/README.md index 61990a1b6d9..e60e046d7db 100644 --- a/release-engineering/platforms/README.md +++ b/release-engineering/platforms/README.md @@ -1,84 +1,84 @@ -# Platform Builds - -The Kubernetes project's development process produces -[artifacts](../artifacts.md) for different architectures and operating systems. -We consider the combination of architecture (`GOARCH`) and operating system -(`GOOS`) as "platforms". Target of this document is to outline different -categories of platforms as well as guiding through their graduation criteria. - -How to introduce new supported architectures and operating systems is outline in -the [platforms guide](https://github.com/kubernetes/community/blob/master/contributors/guide/platforms.md). - -## Tiers - -Build and release support for different platforms' artifacts are organized into -three tiers, whereas each comes with a different set of guarantees. Tiers can be -scoped to single binaries or a subset of them. This means for example that we -can provide Tier 1 support for client binaries, even if the server binaries do -not exist at all. - -### Tier 1 - -Tier 1 platforms are considered as "expected to work". To achieve this, they -have to fulfill the following criteria: - -- Official binary releases are provided for the platform. This includes - container images as well as deb and rpm packages. Building the artifacts is - integrated in the release process. -- Continuous Integration is set up to run tests for the platform. Necessary - tests are defined by SIG Release and usually correspond to the - [`blocking`](https://testgrid.k8s.io/sig-release-master-blocking) and - [`informing`](https://testgrid.k8s.io/sig-release-master-informing) testgrid - dashboards. -- Documentation about the usage of artifacts for the platform is available. - -### Tier 2 - -Tier 2 platforms are considered as "expected to build". To achieve this, they -have to fulfill the following criteria: - -- Official binary releases are provided for the platform. Building the artifacts - is integrated in the release process. -- Automated testing is not or only partially setup. - -It may be possible that single features are not available for a certain -platform. - -### Tier 3 - -Tier 3 platforms are those that have been demonstrated to work and have a -documented build process that is available to anyone in the community. There is -no guarantee that builds will continue to work, and the platform may be dropped -if documentation is not maintained. - -- Official builds are not available. -- Automated testing is not setup. -- Documentation on how to build for the platform is available. - -## Currently available Kubernetes platforms - -The following table defines the current setup of available Kubernetes platforms: - -| Platform | Tier 1 | Tier 2 | Tier 3 | -| --------------- | :----------------: | :----------------: | :----: | -| `amd64-linux` | :heavy_check_mark: | | | -| `arm64-linux` | | :heavy_check_mark: | | -| `amd64-darwin` | | :heavy_check_mark: | | -| `386-linux` | | :heavy_check_mark: | | -| `ppc64le-linux` | | :heavy_check_mark: | | -| `s390x-linux` | | :heavy_check_mark: | | -| `386-windows` | | :heavy_check_mark: | | -| `amd64-windows` | | :heavy_check_mark: | | - -## Removed platforms - -The following platforms have been removed from building officially in -Kubernetes: - -- **Platform:** `arm-linux` - - **Reason:** Due to relocation problems on linking breaking the `build-master` job. - - **Resources:** - - https://github.com/kubernetes/kubernetes/pull/115742 - - https://github.com/kubernetes/kubernetes/issues/116492 - - https://github.com/kubernetes/kubernetes/issues/115738 - - https://github.com/kubernetes/kubernetes/issues/115675 +# Platform Builds + +The Kubernetes project's development process produces +[artifacts](../artifacts.md) for different architectures and operating systems. +We consider the combination of architecture (`GOARCH`) and operating system +(`GOOS`) as "platforms". Target of this document is to outline different +categories of platforms as well as guiding through their graduation criteria. + +How to introduce new supported architectures and operating systems is outline in +the [platforms guide](https://github.com/kubernetes/community/blob/master/contributors/guide/platforms.md). + +## Tiers + +Build and release support for different platforms' artifacts are organized into +three tiers, whereas each comes with a different set of guarantees. Tiers can be +scoped to single binaries or a subset of them. This means for example that we +can provide Tier 1 support for client binaries, even if the server binaries do +not exist at all. + +### Tier 1 + +Tier 1 platforms are considered as "expected to work". To achieve this, they +have to fulfill the following criteria: + +- Official binary releases are provided for the platform. This includes + container images as well as deb and rpm packages. Building the artifacts is + integrated in the release process. +- Continuous Integration is set up to run tests for the platform. Necessary + tests are defined by SIG Release and usually correspond to the + [`blocking`](https://testgrid.k8s.io/sig-release-master-blocking) and + [`informing`](https://testgrid.k8s.io/sig-release-master-informing) testgrid + dashboards. +- Documentation about the usage of artifacts for the platform is available. + +### Tier 2 + +Tier 2 platforms are considered as "expected to build". To achieve this, they +have to fulfill the following criteria: + +- Official binary releases are provided for the platform. Building the artifacts + is integrated in the release process. +- Automated testing is not or only partially setup. + +It may be possible that single features are not available for a certain +platform. + +### Tier 3 + +Tier 3 platforms are those that have been demonstrated to work and have a +documented build process that is available to anyone in the community. There is +no guarantee that builds will continue to work, and the platform may be dropped +if documentation is not maintained. + +- Official builds are not available. +- Automated testing is not setup. +- Documentation on how to build for the platform is available. + +## Currently available Kubernetes platforms + +The following table defines the current setup of available Kubernetes platforms: + +| Platform | Tier 1 | Tier 2 | Tier 3 | +| --------------- | :----------------: | :----------------: | :----: | +| `amd64-linux` | :heavy_check_mark: | | | +| `arm64-linux` | | :heavy_check_mark: | | +| `amd64-darwin` | | :heavy_check_mark: | | +| `386-linux` | | :heavy_check_mark: | | +| `ppc64le-linux` | | :heavy_check_mark: | | +| `s390x-linux` | | :heavy_check_mark: | | +| `386-windows` | | :heavy_check_mark: | | +| `amd64-windows` | | :heavy_check_mark: | | + +## Removed platforms + +The following platforms have been removed from building officially in +Kubernetes: + +- **Platform:** `arm-linux` + - **Reason:** Due to relocation problems on linking breaking the `build-master` job. + - **Resources:** + - https://github.com/kubernetes/kubernetes/pull/115742 + - https://github.com/kubernetes/kubernetes/issues/116492 + - https://github.com/kubernetes/kubernetes/issues/115738 + - https://github.com/kubernetes/kubernetes/issues/115675 diff --git a/release-engineering/platforms/guide.md b/release-engineering/platforms/guide.md index e0ec00b33a6..df9320cef27 100644 --- a/release-engineering/platforms/guide.md +++ b/release-engineering/platforms/guide.md @@ -1,3 +1,3 @@ -This document has been moved: - -https://github.com/kubernetes/community/blob/master/contributors/guide/platforms.md +This document has been moved: + +https://github.com/kubernetes/community/blob/master/contributors/guide/platforms.md diff --git a/release-engineering/release-notes.md b/release-engineering/release-notes.md index 1198f3ab1ee..b0e43d080e0 100644 --- a/release-engineering/release-notes.md +++ b/release-engineering/release-notes.md @@ -1,26 +1,26 @@ -# Kubernetes Release Notes Overview - -The process around the creation of the Release Notes in Kubernetes falls into -the responsibility of SIG Release. Multiple teams are involved in the -process as well as different publishing targets (or consumers). The current -state of the involved participants and tooling looks like this: - -![release notes overview](./img/kubernetes-release-notes.svg "Overview about the Kubernetes Release Notes") - -During the release cycle, the **Release Notes** sub-team of the Release Team continuously -creates drafted Markdown and JSON versions of the ongoing release. The [Release -Notes Website](https://relnotes.k8s.io) as well as this repository are updated -throughout the cycle. - -The **Branch Managers** (part of the [Release Managers group](https://git.k8s.io/website/content/en/releases/release-managers.md)) update -[`kubernetes/kubernetes`](https://git.k8s.io/kubernetes) throughout the release cycle. -This happens as part of the release cuts in an -automated fashion. - -The **Documentation** sub-team of the Release Team ensures that the official -[kubernetes.io](https://kubernetes.io) website gets updated after the final -release version has been cut. - -Patch releases happen on their own [cadence](https://git.k8s.io/website/content/en/releases/patch-releases.md), separate from the active release -schedule. The **Patch Release Team** (part of the [Release Managers group](https://git.k8s.io/website/content/en/releases/release-managers.md)) takes -care of updating the relevant repositories during a patch release. +# Kubernetes Release Notes Overview + +The process around the creation of the Release Notes in Kubernetes falls into +the responsibility of SIG Release. Multiple teams are involved in the +process as well as different publishing targets (or consumers). The current +state of the involved participants and tooling looks like this: + +![release notes overview](./img/kubernetes-release-notes.svg "Overview about the Kubernetes Release Notes") + +During the release cycle, the **Release Notes** sub-team of the Release Team continuously +creates drafted Markdown and JSON versions of the ongoing release. The [Release +Notes Website](https://relnotes.k8s.io) as well as this repository are updated +throughout the cycle. + +The **Branch Managers** (part of the [Release Managers group](https://git.k8s.io/website/content/en/releases/release-managers.md)) update +[`kubernetes/kubernetes`](https://git.k8s.io/kubernetes) throughout the release cycle. +This happens as part of the release cuts in an +automated fashion. + +The **Documentation** sub-team of the Release Team ensures that the official +[kubernetes.io](https://kubernetes.io) website gets updated after the final +release version has been cut. + +Patch releases happen on their own [cadence](https://git.k8s.io/website/content/en/releases/patch-releases.md), separate from the active release +schedule. The **Patch Release Team** (part of the [Release Managers group](https://git.k8s.io/website/content/en/releases/release-managers.md)) takes +care of updating the relevant repositories during a patch release. diff --git a/release-engineering/role-handbooks/branch-manager.md b/release-engineering/role-handbooks/branch-manager.md index 0616d42df10..b596a16b39f 100644 --- a/release-engineering/role-handbooks/branch-manager.md +++ b/release-engineering/role-handbooks/branch-manager.md @@ -1,776 +1,776 @@ -# Branch Manager Handbook - - -- [Branch Manager Handbook](#branch-manager-handbook) - - [Content Notice](#content-notice) - - [Overview](#overview) - - [Conventions](#conventions) - - [Prerequisites](#prerequisites) - - [Branch Management Onboarding](#branch-management-onboarding) - - [Machine setup](#machine-setup) - - [Operating System](#operating-system) - - [Release tooling](#release-tooling) - - [Google Cloud SDK](#google-cloud-sdk) - - [Sending mail](#sending-mail) - - [Mailing List Permissions](#mailing-list-permissions) - - [Skopeo](#skopeo) - - [Releases Management](#releases-management) - - [Creating and managing the Release Issue](#creating-and-managing-the-release-issue) - - [Testgrid Screenshots](#testgrid-screenshots) - - [Adding data about the Cloud Build Jobs](#adding-data-about-the-cloud-build-jobs) - - [Closing the Issue](#closing-the-issue) - - [Alpha Releases](#alpha-releases) - - [Alpha Stage](#alpha-stage) - - [krel stage](#krel-stage) - - [Alpha Release](#alpha-release) - - [krel release](#krel-release) - - [Mock vs nomock](#mock-vs-nomock) - - [Beta Releases](#beta-releases) - - [Release Candidates](#release-candidates) - - [Official Releases](#official-releases) - - [Security fixes](#security-fixes) - - [Announcing Security Fixes](#announcing-security-fixes) - - [Release Validation](#release-validation) - - [Branch Management](#branch-management) - - [Release Branch Creation](#release-branch-creation) - - [Post new release branch creation tasks](#post-new-release-branch-creation-tasks) - - [Configure Merge Automation](#configure-merge-automation) - - [Tide](#tide) - - [Code Freeze](#code-freeze) - - [Code Thaw](#code-thaw) - - [Branch Fast Forward](#branch-fast-forward) - - [Reverts](#reverts) - - [Cherry Picks](#cherry-picks) - - [Staging Repositories](#staging-repositories) - - [Debugging](#debugging) - - [Search past builds](#search-past-builds) - - [Limitation](#limitation) - - [References](#references) - - [Test Infra references](#test-infra-references) - - [Background information](#background-information) -- [Visual Release Cut Process](#visual-release-cut-process) - - -## Content Notice - -The Patch Release Team and Branch Manager roles have been consolidated into a -single [Release Managers][release-managers] group. - -This means that several areas of this document may currently be out of date. -While we work to update these documents, please reach out to -[Release Managers][release-managers] directly for any clarifications on Release -Engineering processes. - -**This notice will be removed when the documentation is no longer under -construction.** - -## Overview - -### Conventions - -In this handbook, we will make several references to Kubernetes releases, milestones, and [semantic versioning](http://semver.org/). - -For the purposes of this handbook, we'll assume that: - -- the current release in development is Kubernetes 1.18 -- the previous release is Kubernetes 1.17 -- the next release is Kubernetes 1.19 -- the release no longer in support is Kubernetes 1.14 - -To simplify certain instructions, we will make the following connections: - -| Text | SemVer | Reference Release | -|---|---|---| -| "current release", "current milestone", "in development" | `x.y` | Kubernetes 1.18 | -| "previous release", "previous milestone" | `x.y-1` | Kubernetes 1.17 | -| "next release", "next milestone" | `x.y+1` | Kubernetes 1.19 | -| "release no longer in support" | `x.y-4` | Kubernetes 1.14 | - -**As an editor of this content, Branch Managers should periodically update these conventions and the examples contained within this handbook.** - -## Prerequisites - -This is a collection of requirements and conditions to fulfill when taking on the role as branch manager. - -### Branch Management Onboarding - -**Before we can grant Release Manager access to new Branch Managers, a [Release Manager onboarding issue](https://github.com/kubernetes/sig-release/issues/new?labels=sig%2Frelease%2C+area%2Frelease-eng&template=release-manager.md&title=Release+Manager+access+for+%3CGH-handle%3E) _MUST_ be opened in this repo. Please take a moment to do that before executing the tasks contained in this handbook.** - -### Machine setup - -#### Operating System - -There's a small amount of effort to ensure our [release tools] are supported on multiple platforms, please note that only the following systems are supported: - -- Debian-like (Debian, Ubuntu) -- Fedora-like (Fedora, RHEL, CentOS) -- MacOS - -Windows is not supported by [release tools]. - -While our tooling may not support every platform, you may find success running within a container image. - -See "Cutting v1.15.0-alpha.2" under [References](#References) for an example Dockerfile. - -**If you notice that [release tools] are not working as expected, please file an issue in [kubernetes/release].** - -#### Release tooling - -To leverage/contribute to our [release tools], Release Managers will need to fork and clone the [kubernetes/release] repo. - -Building and publishing releases requires the latest revision of the release tools. The release tools can be compiled by running the following command from the [kubernetes/release] repository: - -```shell -make release-tools -``` - -Release Managers primarily use an SSH key to authenticate to GitHub. - -GitHub has documentation to assist in: - -- [Connecting to GitHub with SSH](https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) -- [Forking a repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) - -Additionally, `kubernetes/community` has a great [overview of the GitHub workflow](https://git.k8s.io/community/contributors/guide/github-workflow.md) we use across several Kubernetes org repositories. - -Please take a moment to review the above documentation before continuing. - -#### Google Cloud SDK - -[Kubernetes release artifacts](/release-engineering/artifacts.md) are stored on Google Cloud Platform (GCP). - -Release Managers will need to use the Google Cloud SDK to interact with release artifacts. - -Google Cloud has [documentation on installing and configuring the Google Cloud SDK CLI tools](https://cloud.google.com/sdk/docs/quickstarts). - -To authenticate the Google Cloud SDK tool with your GCP account, you can run: - -```shell -gcloud auth login -``` - -It might ask you to define the default project, region, and similar settings. The project can be set to `kubernetes-release-test`, while other settings can be ignored. - -In addition to `gcloud,` `gsutil` is required as well. By default, it comes with Google Cloud SDK. - -#### Sending mail - -At the end of a release, Release Managers will need to announce the new release to the community. - -> NOTE: ALL OF THE FOLLOWING `krel` COMMANDS RUN AS MOCK (NO CHANGES) BY DEFAULT. No mock (`--nomock`) must be specified for command to execute / take action. This is clear in the output based on the targeted email test groups, but not obvious before running the command. - -This can be done in one of two ways: - -- The `krel announce` sub command -- A [`SENDGRID_API_KEY`](https://sendgrid.com/docs/ui/account-and-settings/api-keys) will need to be configured correctly on your environment for this to work - - If you haven't used SendGrid before, SendGrid might require you to go through the [Sender Identity Verification process][sendgrid-identity-verification] before you can send emails/announcements - ```shell - export SENDGRID_API_KEY= - krel announce send --tag vX.Y.0-{alpha,beta,rc}.Z --name "" --name - ``` -- Manually -- Send the email notification manually to [kubernetes-announce][k-announce-list] and [kubernetes-dev][k-dev-list]. You can take contents of the announcement in one of the following ways: - - By taking the contents from the Release Cloud Bucket: `https://dl.k8s.io/release/v1.y.z/announcement.html` and using the subject "[kubernetes-announce] Kubernetes v1.y.z is live!", for example: - - https://dl.k8s.io/archive/v1.31.1/announcement.html - - By using `krel announce` command with the `--print-only` flag - -See the [Release Commands Cheat Sheet](https://github.com/kubernetes/sig-release/blob/master/release-engineering/role-handbooks/patch-release-team.md#release-commands-cheat-sheet) for example commands. - -[k-announce-list]: https://groups.google.com/forum/#!forum/kubernetes-announce -[k-dev-list]: https://groups.google.com/a/kubernetes.io/g/dev -[release tools]: https://github.com/kubernetes/release#tools -[kubernetes/release]: https://github.com/kubernetes/release -[sendgrid-identity-verification]: https://sendgrid.com/docs/for-developers/sending-email/sender-identity/ - -##### Mailing List Permissions - -Permissions to send mail to the [kubernetes-announce](https://groups.google.com/g/kubernetes-announce) are managed in Google Groups. To request access please reach out to the [list owners](https://groups.google.com/g/kubernetes-announce/members?q=role%3Aowner) in slack. -This is only needed if you plan on sending mails manually (not through sendgrid). - -#### Skopeo - -[Skopeo][skopeo] is a command line utility that performs various operations on container images and image repositories. Skopeo is not required for performing branch management tasks (if needed, Docker and other relevant tools can be used instead), however, it might be referred to by other guides. If you want to install Skopeo, you can follow the [official installation guide][skopeo-install]. - -[skopeo]: https://github.com/containers/skopeo -[skopeo-install]: https://github.com/containers/skopeo/blob/master/install.md - -## Releases Management - -**General overview**: - -Public build artifacts are published and an email notification goes out to the community. You will become very familiar with the following commands over the course of the 3 month release cycle: - - - `krel stage/release` for creating releases - - `krel announce` to send the announcement email notification. - -There are more examples of the release process under the [References](#references) section. - -It is also highly recommended to glance over the [Release Commands Cheat Sheet](https://github.com/kubernetes/sig-release/blob/master/release-engineering/role-handbooks/patch-release-team.md#release-commands-cheat-sheet). - -### Creating and managing the Release Issue - -Prior to cutting a release version, [open a "Cut a Release" issue](https://github.com/kubernetes/sig-release/issues/new?template=cut-release.md&title=Cut+1.x.y-%7Balpha%2Cbeta%2Crc%7D.z+release) on [kubernetes/sig-release](https://github.com/kubernetes/sig-release). - -On the issue template, there are comments describing the predefined items that -need to be completed. - -#### Testgrid Screenshots - -For the item `Screenshot unhealthy release branch testgrid boards...`: - -`krel testgridshot` takes care of generating screenshots of -[Testgrid](https://testgrid.k8s.io/) to keep as a reference of the state -it was in before cutting a release. This subcommand will generate images -of the boards and upload them to a Cloud Storage bucket, as well as the -Markdown code. - -To invoke the subcommand, run it with the branch you are working on: - -``` -krel testgridshot --branch 1.20 -``` - -You can include other testgrid states in the output and even have krel -autocomment the issue for you: - -``` -krel testgridshot --branch 1.20 --github-issue 12345 --states=FLAKY -``` - -Once the script generates the Markdown table, post it as a comment on the created issue. You can take a look at the [following comment](https://github.com/kubernetes/sig-release/issues/1249#issuecomment-696702503) as an example. - -#### Adding data about the Cloud Build Jobs - -When running a release cut, you should open a thread in the -[#release-management][release-management-url] Slack channel and include links -to the GCP build console. You can take a look at the -[following thread][example-release-thread] as an example. - -[release-management-url]: https://app.slack.com/client/T09NY5SBT/CJH2GBF7Y -[example-release-thread]: https://kubernetes.slack.com/archives/CJH2GBF7Y/p1600247891103600 - -Once mock and nomock runs are complete, data about the jobs launched must be -collected in the issue. These are assembled in a table and correspond to the -`Collect metrics, links...` check mark. - -After the release process has been completed, get the data table by using the -`krel history` subcommand. It will output a markdown table with the options used -to run the jobs, links to the GCB logs, and the result of each run. - -```shell -krel history --branch release-1.xy --date-from -``` -The generated table is then appended to the release issue, as it can be seen in -the [following issue for the v1.20.0-alpha.1 release](https://github.com/kubernetes/sig-release/issues/1249#issue-705792603). - - -__Note:__ `krel history` works using the [Default Application -Credentials](https://cloud.google.com/sdk/gcloud/reference/auth/application-default) -set in your environment. While you may be logged as a user with one or more Google -accounts in the GCP SDK (which are used in `gsutil`, `gcloud`, etc), you need to -make sure your user identity is set as DAC as software using the Google Cloud -libraries uses it to authenticate. - -If you have not set any Default Application Credentials previously, krel will notify -you. If you have another user or a service account you will simply get an -authentication error. - -Use the following command to start the authorization flow to set your default credentials: - -```shell -gcloud auth application-default login -``` - -#### Closing the Issue - -After having thoroughly read the section on cutting a release version of the handbook, and that all items on the checklist have completed (you may include notes on events that was unique to cutting that release version as comments), close the issue with `/close` as a comment the issue thread. - -### Alpha Releases - -#### Alpha Stage - -##### krel stage - -To stage a new alpha release, simply run `krel stage`. The default command line -parameters will already default to the correct `--branch` and `--type`. - -The output of the command should provide a link to GCP, where you can track the -progress of the build. The build duration takes approximately 1 hour. `krel -stage` is building all the bits for a bunch of target operating systems and -hardware architectures. - - - -#### Alpha Release - -The actual releasing may be intentionally delayed after staging. For example, the branch manager may stage a build from the head of the release branch late in the release cycle, doing so in the morning so that it is fully built and would be releasable in the afternoon (pending CI tests run against the head of the branch). - -If the CI results are good and the release team approves, you can initiate the publishing portion of the release process. If staging the build only happened after the receipt of clean CI tests results, this will delay completing the entire release process for a release version (alpha,beta,rc,...). - -This presumes reproducible builds and that the CI tests are meaningful relative to the release builds. There is always a risk that these diverge, and this needs to be managed broadly by the project and the release team. - -##### krel release - -Before running the release step, please refer to the [Image Promotion documentation][image-promotion]. - -To finish the previously staged release, run `krel release --build-version=…`. -Use the `--build-version=` as specified in the output when `krel stage` is done. - -This copies the staged build to public GCP buckets at well-known urls for the truncated release version string. The unique build staging identifier will subsequently be “v1.16.0-alpha.1”, even though the staged build had an “alpha.0” in its name. - -This can be confusing. The v1.16.0-alpha.0 tag was created automatically in the past when the v1.15 branch was forked, but it wasn’t actually built. - -##### Mock vs nomock - -Any `krel stage/release` command without the `--nomock` flag is a dry run. It is highly encouraged to dry run first before letting `krel stage/release` take any actual impact on the release process. Mock building/releasing can help you verify that you have a working setup! - -To get more information on `krel stage/release`, please refer to their -corresponding help (`-h`) output. - -**Note: This run may fail. Mock builds can only be mock released. A nomock release requires a nomock build to be staged.** - -### Beta Releases - -Before run the `official release step` please refer to the [Image Promotion documentation][image-promotion]. - -To stage a new beta release, simply run `krel stage --type=beta`. The same -applies to `krel release --build-version=… --type=beta`. - -### Release Candidates - -Builds against a `release-x.y` branch are implicitly the next RC (release candidate). `krel` automatically finds and increments the current build number. - -**Note: If this is the first release (`rc.0`), there are additional tasks to complete. Please review them _COMPLETELY_ in the [Branch Creation section](#branch-creation), _before_ continuing.** - -Before run the `official release step` please refer to the [Image Promotion documentation][image-promotion]. - -To stage a new RC release, simply run `krel stage --type=rc --branch=release-x.y`. The same -applies to `krel release --build-version=… --type=rc --branch=release-x.y`. - -In a perfect world, `rc.1` and the official release are the same commit. To get as close to that perfect state as we can, the following things should be considered: - -1. PRs tagged with the release cycle milestone should have all merged onto the `master` branch: - - For example, there should be no open PRs tagged with the v1.18 milestone, `is:pr is:open milestone:v1.18`. - - You and the release team should push for PRs to get merged before the [code freeze](#code-freeze) is lifted or determine if the open PRs can be removed from the milestone and be merged in the next release cycle. - -2. When to stage and release `rc.1`: - - Make sure that all the changes that have been merged onto `master`, make it onto the release branch. Run [`krel ff`](#branch-fast-forward) to see the state of the two branches and pull any remaining PRs from `master` onto the release branch. - - At this point in time, `master` and the release branch should have the same commits. Nothing new gets merged onto `master`, since [code freeze](#code-freeze) is not lifted. Therefore, it is safe to cut the release candidate. - -3. Factors that determine if Code Freeze can be lifted: - - - Zero pending PRs and no open issues tagged with the release cycle milestone. - - No failing X.Y-blocking tests, for example the [sig-release-1.18-blocking](https://testgrid.k8s.io/sig-release-1.18-blocking) dashboard should not have any red failing test builds. - - > **Note:** If there are non-zero pending PRs, open issues or failing tests, there is high confidence that the issue is understood and the solution can be [cherry picked](#cherry-picks) over to the release branch between the release candidate(s) and official release. - -Technically we can keep [code freeze](#code-freeze) in place after `rc.1` was cut. However, we should aim at lifting code freeze relatively quickly after `rc.1`. - -Otherwise we might have a mix of PRs against master, some have been merged in code freeze and for the milestone, just after `rc.1`, and others have been merged when code freeze has been lifted. We might miss this specific PR in the plethora of PRs that [tide] merges after [code thaw](#code-thaw), and we might miss that this PR actually needs to be cherry-picked into the release branch. - -[tide]: https://git.k8s.io/test-infra/prow/tide - -### Official Releases - -Before run the `official release step` please refer to the [Image Promotion documentation][image-promotion]. - -To stage a new official release, simply run `krel stage --type=official ---branch=release-x.y`. The same applies to `krel release --build-version=… ---type=official --branch=release-x.y`. - -In addition to `v1.18.n` this will also build and stage the subsequent patch's -`rc.0`, in this example `v1.18.(n+1)-rc.0`. Similar to [creating a new branch](#branch-creation), the staging step will take about twice as long, the -release step will also take a couple of minutes more. - -To better prepare and see what to expect, this is a sequence of events that took place on past official release days [1.14-1.16](https://docs.google.com/document/d/1K0B91lgeEiJTbT602VloA5arb6AkaTif-MLryaHmlYc/edit?usp=sharing), and the most recent [1.32](https://kubernetes.slack.com/archives/CJH2GBF7Y/p1733928000598509). - -#### Security fixes - -The Security Response Committee (SRC) may contact you via the [Security Release Team][security-release-team] -mailing list if there are security fixes needed on the release branch. - -Once the release has been confirmed to contain security fixes, the Branch Manager must inform the current -Release Team Lead and Lead Shadows. Information pertaining to these fixes is considered need-to-know and should not be disseminated to anyone else on the Release Team. - -You must not make any public announcements regarding these fixes unless the SRC tells you to. - -See the [Security Release Process](https://git.k8s.io/security/security-release-process.md) doc for more details. - -[security-release-team]: https://groups.google.com/a/kubernetes.io/forum/#!forum/security-release-team - -#### Announcing Security Fixes - -The security fixes are usually announced upon publishing releases by: - -- including information about security fixes in the release announcement sent to kubernetes-announce and dev mailing lists -- including information about security fixes in CHANGELOGs for affected releases -- sending an email announcement for each security fix to the relevant mailing lists (done by the Security Response Committee) - -The first two are handled by Release Managers in coordination with the Security Response Committee (SRC). Before starting the release process, the Release Managers need to reach out to the SRC and ask them to provide a CVE data map that contains information about security fixes. - -CVE data map file is created for each CVE and it looks like this: - -```yaml ---- -pr: -datafields: - cve: - id: CVE-2022-0000 - title: "" - description: | - <description of vulnerability> -​ - **Affected Versions**: - - kube-apiserver v1.25.0 - <list of affected versions>... -​ - **Fixed Versions**: - - kube-apiserver v1.25.1 - <list of fixed versions>... -​ - <credits and acknowledgements (optional)> - trackingissue: "[https://github.com/kubernetes/kubernetes/issues/TODO](https://github.com/kubernetes/kubernetes/issues/TODO)" - vector: "<cvss vector string>" - score: <cvss score> - rating: "<CVE rating (Low/Medium/High/Critical)>" - linkedprs: [] - -``` - -The CVE data map can also be created by using `krel`. Running the following command will open a text editor with a sample data map. Populating and saving the data map will automatically upload it to the appropriate (private) bucket (this requires access to the said bucket, therefore only the Release Managers can use this command). - -```shell -krel cve edit CVE-2022-0000 -``` - -If multiple releases affected releases are affected by the same CVE, you must put a data map for each release in the **same data map file**, such as: - -```yaml ---- -pr: <cherry-pick PR number for first release branch> -datafields: - cve: - id: CVE-2022-0000 - ... ---- -pr: <cherry-pick PR number for second release branch> -datafields: - cve: - id: CVE-2022-0000 - ... ---- -pr: <cherry-pick PR number for third release branch> -datafields: - cve: - id: CVE-2022-0000 - ... -``` - -If CVE data map YAML files are provided by the SRC (instead of using `krel cve` command), those files can be uploaded to the appropriate private bucket using `krel` such as: - -```shell -krel cve edit CVE-2022-0000 -f ./path-to-data-map.yaml -``` - -This command will also take care of validating the provided data map file. Once the data maps are uploaded, `krel` will (automatically) take those data maps into account when generating the changelog and the release announcement emails. - -#### Release Validation - -The following are some ways to determine if the release process was successful: - -1. The build tag and release artifacts become [visible on GitHub at https://github.com/kubernetes/kubernetes/releases](https://github.com/kubernetes/kubernetes/releases) - -2. The release is logged automatically by [k8s-release-robot](https://github.com/k8s-release-robot) in [k/sig-release](https://git.k8s.io/sig-release) - -3. CHANGELOG-X.Y.md is automatically loaded into the kubernetes/kubernetes repo: [https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.16.md](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.16.md) - - -## Branch Management - -This section discusses the methods in managing commits on the `release-x.y` branch. - -### Release Branch Creation - -See [this section](../handbooks/k8s-release-cut.md#next-release-branch-creation) of the release cut handbook for more info. - -#### Post new release branch creation tasks - -Run through the following tasks detailed [here](../handbooks/post-rc0-release-tasks.md) after the `rc.0` release is communicated and therefore the release branch has been created. - ---- - -### Configure Merge Automation - -Between the [Code Freeze](#code-freeze) and lifting Code Freeze ([Code Thaw](#code-thaw)) period, merging new code is restricted. The main focus is on fixing existing code and getting green test builds on Testgrid. Preventing new code is implemented by config changes for [tide]. The `master` and current release cycle branch (`release-x.y`) are the only branches affected during this period. - -Code freeze initiates additional merge requirements, while Code thaw marks the switch back to the development phase. Look at the [release cycle timeline](https://github.com/kubernetes/sig-release/tree/master/releases) for the exact dates for code freeze and code thaw. Usually the the date for code thaw is flexible depending on pending PRs. - -As Branch Manager, coordinate with the Release Lead on checking the exact config changes required to enable and disable merge restrictions. - -#### Tide - -Tide automates merges and is configured via a [config.yaml][config.yaml] file. Tide identifies PRs that are mergeable using GitHub queries that correspond to the configuration. Here is an example of what the query config for `kubernetes/kubernetes` looks like without additional constraints related to the release cycle: - -```yaml - - repos: - - kubernetes/kubernetes - labels: - - lgtm - - approved - - "cncf-cla: yes" - missingLabels: - - do-not-merge - - do-not-merge/blocked-paths - - do-not-merge/cherry-pick-not-approved - - do-not-merge/hold - - do-not-merge/invalid-owners-file - - do-not-merge/release-note-label-needed - - do-not-merge/work-in-progress - - do-not-merge/needs-kind - - do-not-merge/needs-sig - - needs-rebase -``` - -During code freeze, two queries are used instead of just one for the `kubernetes/kubernetes` repo. One query handles the `master` and current release branches while the other query handles all other branches. The partition is achieved with the `includedBranches` and `excludedBranches` fields. - -#### Code Freeze - -Code freeze means the code is "frozen" and there will not be any further modifications from the developers. - -Branch managers create the "freeze" by altering the Tide merge requirements for the `master` and current `release-x.y` branch from the other branches (enforced by Tide with two queries). - -We only add additional merge requirements for PRs to these two branches for code freeze: - -- PRs must be in the GitHub milestone for the current release. - -Milestone requirements are configured by adding `milestone: vX.Y` to a query config. - -It is also helpful to remind [#sig-testing](https://kubernetes.slack.com/messages/C09QZ4DQB) when code freeze starts so they know not to do any major changes. - -```yaml - - repos: - - kubernetes/kubernetes - milestone: v1.16 - includedBranches: - - master - - release-1.16 - labels: - - lgtm - - approved - - "cncf-cla: yes" - missingLabels: - # as above... - - repos: - - kubernetes/kubernetes - excludedBranches: - - master - - release-1.16 - labels: - - lgtm - - approved - - "cncf-cla: yes" - missingLabels: - ... -``` - -Example PR: - - - [1.18](https://github.com/kubernetes/test-infra/pull/16603) - - [1.17](https://github.com/kubernetes/test-infra/pull/15301) - -#### Code Thaw - -Code Thaw removes the release cycle merge restrictions and replaces the two queries with one single query. We remain in this state until the next Code Freeze. - -```yaml - - repos: - - kubernetes/kubernetes - labels: - - lgtm - - approved - - "cncf-cla: yes" - missingLabels: - ... -``` - -Update the `milestoneapplier` plugin configs for the following repos to the **_next_** milestone: - -- `kubernetes/enhancements` -- `kubernetes/kubernetes` -- `kubernetes/release` -- `kubernetes/sig-release` -- `kubernetes/test-infra` - -Example PRs: - -- [1.33](https://github.com/kubernetes/test-infra/pull/34693) - -> [!IMPORTANT] -After Code Thaw is performed, remind @release-managers to perform the propedeutic tasks for the next `alpha.1` cut, such as setting up the new OBS project. - -### Branch Fast Forward - -We now run the branch fast forward automatically to even the branches. - -Noted that no need for manual cherry-pick against current release and the job would be promoted to [release-blocking](https://testgrid.k8s.io/sig-release-releng-blocking#git-repo-kubernetes-fast-forward). - -Once code freeze is lifted ([code thaw](#code-thaw) occurred), PRs that need to be merged onto the release branch are cherry-picked over from `master`. - -### Reverts - -During code freeze it is especially important to first look at the list of commits on `master` since the prior fast forward, scanning their content and issues/PRs to ensure they are changes expected for this milestone. - -**The merge-blocking mechanisms are relatively weak.** - -It is possible still for some people to write directly to the repo (bypassing blocking mechanisms) as well as for unintentional milestone maintainers to approve a merge incorrectly. The branch manager is the last line of defense. - -If code incorrectly merges onto `master` it should be reverted in `master`. Alternatively, release branch management must go to all cherry picks, picking around the incorrectly added commit. - -### Cherry Picks - -Once code freeze is lifted, and for the post-release patch management process, commits are cherry picked from `master`. - -It's important to take note of [what is considered as a release blocking issue or PR](https://github.com/kubernetes/sig-release/blob/master/release-blocking-jobs.md) and identify PRs and issues as soon as possible. Ensure that there's work being done to release blocking PRs completed prior to the official release day. - -Let the release lead know if there's not enough attention placed on the release blocking PR. This way we can prevent from prolonging the official release. - -The current documentation in the [contributor guide for cherry picks](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md) should be generally sufficient. There are a couple prerequisites to running the script which are outlined in that guide. - -The cherry pick script is also fairly self documenting in terms of how to invoke the command. - -Running [cherry_pick_pull.sh](https://git.k8s.io/kubernetes/hack/cherry_pick_pull.sh) creates a cherry pick PR against the specified `release-x.y` branch. The content of the cherry pick PR is taken from a PR that was made against `master`. Once the appropriate approval is given to the cherry pick PR and has met the requirements set by the [k8s-ci-robot](https://github.com/k8s-ci-robot), this will trigger test re-runs on the PR. As soon as these tests all pass, add the `cherry-pick-approved` label. - -For example, [#79044](https://github.com/kubernetes/kubernetes/pull/79044) is the cherry pick PR of [#78999](https://github.com/kubernetes/kubernetes/pull/78999). Once [#79044](https://github.com/kubernetes/kubernetes/pull/79044) is tagged with the `cherry-pick-approved` label, Prow begins the merge onto the release branch. - -There has been quite a bit of recent discussion (see: [1](https://github.com/kubernetes/community/pull/2408), [2](https://github.com/kubernetes/community/pull/1980)) around improving both the cherry pick process process and its documentation. - -After the official release has been published, the [Release Managers](../../release-managers.md#release-managers) will take over in handling cherry picks. In the time between [code thaw](#code-thaw) and the official release, cherry picks are the responsibility of the branch management team. - -Consider the following when assessing the cherry-picks: - -- Check regularly if there are new cherry picks with - [`is:open is:pr base:release-1.18 label:do-not-merge/cherry-pick-not-approved`][cherry-pick-query] -- Consider that each cherry-pick diverges the latest release candidate that has been cut from the bits to be released as the official release -- Engage with the cherry pick requester: How important is that cherry-pick, can it be pushed to a later release (patch or even minor), ... ? -- Discuss (especially controversial) cherry-picks in [#sig-release] or at the burndown meeting if you are unsure -- If certain cherry-picks merge, does this mean we want another release - candidate, more time for the release candidate to soak (e.g. over the - weekend)? - -[cherry-pick-query]: https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+base%3Arelease-1.18+label%3Ado-not-merge%2Fcherry-pick-not-approved - -## Staging Repositories - -The [publishing-bot](https://github.com/kubernetes/publishing-bot) is responsible for publishing the code in [staging](https://git.k8s.io/kubernetes/staging/src/k8s.io) to their own repositories. - -The bot also syncs the Kubernetes version tags to the published repos, prefixed with `kubernetes-`. For example, if you check out the `kubernetes-1.16.0` tag in client-go, the code you get is exactly the same as if you check out the `v1.16.0` tag in Kubernetes, and change the directory to `staging/src/k8s.io/client-go`. - -[client-go](https://github.com/kubernetes/client-go) follows [semver](http://semver.org/) and has its own release process. This release process and the publishing-bot are maintained by SIG API Machinery. In case of any questions related to the published staging repos, please ask someone listed in the following [OWNERS](https://git.k8s.io/publishing-bot/OWNERS) file. - -The bot runs every four hours, so it might take sometime for a new tag to appear on a published repository. - -The client-go major release (e.g. `v1.18.0`) is released manually a day after the main Kubernetes release. - -## Debugging - -To debug `krel stage/release` you can set the log level to `debug` by doing -`krel --log-level debug [args]`. There is also a `trace` log level for maximum -output verbosity. The log level is passed correctly to the Google Cloud console -and can be inspected there. - -## Search past builds - -To search past `cloudbuilds` to make any kind of analysis and check metrics you can use the Google Cloud Console for that. -You can access [Google Cloud Build History](https://console.cloud.google.com/cloud-build/builds?project=kubernetes-release-test) - -There you can see all the `cloudbuilds` that already ran or if there is any one running in the moment you can see that as well. - -To filter for a specific build or set of builds you can use the `Filter Builds` textbox. When you click there it opens a dropdown box to you select which kind of keys you want to filter. - -For example you can select `Tags` and then add the tags you want to filter, like, `Tags: release-1.18 Status: Successful`. This query in the [Google Cloud Build](https://console.cloud.google.com/cloud-build/builds?project=kubernetes-release-test&pageState=(%22builds%22:(%22f%22:%22%255B%257B_22k_22_3A_22Tags_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22release-1.18_5C_22_22_2C_22s_22_3Atrue_2C_22i_22_3A_22tags_22%257D_2C%257B_22k_22_3A_22Status_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22Successful_5C_22_22_2C_22s_22_3Atrue_2C_22i_22_3A_22status_22%257D%255D%22))) - - -#### Limitation - -Looks like in the Google Cloud Build History you cannot set more than one `tag` when using the `AND` operator. The query does not bring anything if you add, for example, `Tags: release-1.18 Tags: STAGE`. -Besides the fact that exists. - - -## References - -- [Release Tools Documentation](https://github.com/kubernetes/release/blob/master/README.md) -- [Generic Release Steps](https://docs.google.com/document/d/1x-GQDZpKk3WajtSnO0axDazE9Xs2mOSVgjziIuTWNO0/edit) -- [Detailed overview (Cutting v1.15.0-alpha.2)](https://docs.google.com/document/d/1Xv5w_eNvLvD-nNinMNqQAh0qlzee8btqAyHyFFMz3z4/edit?usp=sharing) -- If you prefer a video walk-through, see [cutting release candidate v1.15.0-rc.1](https://youtu.be/ldYt1elShD4). - -### Test Infra references - -Concerns and questions can be directed to [#testing-ops](https://kubernetes.slack.com/messages/C7J9RP96G) and [#sig-testing](https://kubernetes.slack.com/messages/C09QZ4DQB). For urgent matters, please contact the user group [@test-infra-oncall](https://get.slack.help/hc/en-us/articles/212906697-Create-a-user-group#browse-user-groups-and-view-members) on Slack. - -- [Prow](https://github.com/kubernetes/test-infra/tree/master/prow) the Kubernetes-based CI/CD system - - [PR Status](https://prow.k8s.io/pr) - - [Tide Status](https://prow.k8s.io/tide) -- [Hound](https://cs.k8s.io/) a Kubernetes Codebase Search -- [Kubernetes DevStats](https://k8s.devstats.cncf.io/) displays Kubernetes Developer Productivity -- [Kubernetes On-call Rotation](https://go.k8s.io/oncall) displays the current Test Infra person on call -- [APISnoop](https://apisnoop.cncf.io/) snoops on the Kubernetes OpenAPI communications - - [Source](https://github.com/cncf/apisnoop) -- [TestGrid](https://testgrid.k8s.io/) displays Kubernetes CI tests results in grids - - [Source](https://github.com/GoogleCloudPlatform/testgrid) - - [TestGrid Open-sourcing Planning](https://github.com/kubernetes/test-infra/issues/10409) - - [Displaying Kubernetes Conformance Results with Testgrid](https://docs.google.com/document/d/1lGvP89_DdeNO84I86BVAU4qY3h2VCRll45tGrpyx90A/edit) - -## Background information - -You may have seen reference to `./anago` when cutting releases but there's no mention of using `anago` in this handbook, see: - -- [Summary of discussion with Caleb about moving from `anago` to `gcbmgr`](https://groups.google.com/d/topic/kubernetes-milestone-burndown/YdHa51d95VI/discussion) - -> Note: To access this forum, you will need to join the [kubernetes-milestone-burndown](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) Google group. - -See the branch management process prior to v1.12 when `anago` was still used. - -- [Branch Management Playbook](https://docs.google.com/document/d/1Qoqz5IZYBp6A-Q_R9CGhMAc358ykOiE49GXZU9r5usQ/edit#heading=h.s71iha1627td) - -> Note: To view this document, you will need to join the [kubernetes-dev](https://groups.google.com/a/kubernetes.io/g/dev) Google group. - -[image-promotion]: https://sigs.k8s.io/promo-tools/docs/promotion-pull-requests.md -[kubernetes-release-team]: https://groups.google.com/a/kubernetes.io/g/release-team -[release-branch-job-creation]: https://git.k8s.io/test-infra/releng/README.md -[release-managers]: /release-managers.md#release-managers -[release-managers-group]: https://groups.google.com/a/kubernetes.io/forum/#!forum/release-managers - -# Visual Release Cut Process - -The diagram below shows the actions needed to cut a Kubernetes release - -```mermaid -flowchart TD - Start(["Start"]) --> issue["Create a release cut issue on GitHub"] -->|"update along the way"| issue - issue --> thread["Create a Slack Thread in #release-management \n and cc release-managers"] -->|"update along the way"| thread - thread --> build_admins["Contact Google Build Admins \n for their availability to plan when to cut the release"] - build_admins --> mock["Mock run (stage and release)"] - mock --> staging["Nomock stage"] - staging --> artifact_promotion["Image promotion"] - artifact_promotion --> release["Nomock release"] - release --> publish_pkgs["Contact Google Build Admins to publish the deps/rpms"] - publish_pkgs --> announcement_chat["Notify Slack channel #release-management \n about the new release"] - announcement_chat --> announcement_email["Notify Community by Email \n using Krel"] - announcement_email --> close["Close release cut GitHub Issue"] - close --> done(["End"]) - - classDef cluster fill:#fff,stroke:#bbb,stroke-width:2px,color:#326ce5; - classDef plain fill:#ddd,stroke:#fff,stroke-width:4px,color:#000; - classDef k8s fill:#326ce5,stroke:#fff,stroke-width:4px,color:#fff; - class Start,done plain; - class issue,thread,build_admins,mock,staging,artifact_promotion,release,publish_pkgs,announcement_chat,announcement_email,close k8s; -``` +# Branch Manager Handbook + +<!-- toc --> +- [Branch Manager Handbook](#branch-manager-handbook) + - [Content Notice](#content-notice) + - [Overview](#overview) + - [Conventions](#conventions) + - [Prerequisites](#prerequisites) + - [Branch Management Onboarding](#branch-management-onboarding) + - [Machine setup](#machine-setup) + - [Operating System](#operating-system) + - [Release tooling](#release-tooling) + - [Google Cloud SDK](#google-cloud-sdk) + - [Sending mail](#sending-mail) + - [Mailing List Permissions](#mailing-list-permissions) + - [Skopeo](#skopeo) + - [Releases Management](#releases-management) + - [Creating and managing the Release Issue](#creating-and-managing-the-release-issue) + - [Testgrid Screenshots](#testgrid-screenshots) + - [Adding data about the Cloud Build Jobs](#adding-data-about-the-cloud-build-jobs) + - [Closing the Issue](#closing-the-issue) + - [Alpha Releases](#alpha-releases) + - [Alpha Stage](#alpha-stage) + - [krel stage](#krel-stage) + - [Alpha Release](#alpha-release) + - [krel release](#krel-release) + - [Mock vs nomock](#mock-vs-nomock) + - [Beta Releases](#beta-releases) + - [Release Candidates](#release-candidates) + - [Official Releases](#official-releases) + - [Security fixes](#security-fixes) + - [Announcing Security Fixes](#announcing-security-fixes) + - [Release Validation](#release-validation) + - [Branch Management](#branch-management) + - [Release Branch Creation](#release-branch-creation) + - [Post new release branch creation tasks](#post-new-release-branch-creation-tasks) + - [Configure Merge Automation](#configure-merge-automation) + - [Tide](#tide) + - [Code Freeze](#code-freeze) + - [Code Thaw](#code-thaw) + - [Branch Fast Forward](#branch-fast-forward) + - [Reverts](#reverts) + - [Cherry Picks](#cherry-picks) + - [Staging Repositories](#staging-repositories) + - [Debugging](#debugging) + - [Search past builds](#search-past-builds) + - [Limitation](#limitation) + - [References](#references) + - [Test Infra references](#test-infra-references) + - [Background information](#background-information) +- [Visual Release Cut Process](#visual-release-cut-process) +<!-- /toc --> + +## Content Notice + +The Patch Release Team and Branch Manager roles have been consolidated into a +single [Release Managers][release-managers] group. + +This means that several areas of this document may currently be out of date. +While we work to update these documents, please reach out to +[Release Managers][release-managers] directly for any clarifications on Release +Engineering processes. + +**This notice will be removed when the documentation is no longer under +construction.** + +## Overview + +### Conventions + +In this handbook, we will make several references to Kubernetes releases, milestones, and [semantic versioning](http://semver.org/). + +For the purposes of this handbook, we'll assume that: + +- the current release in development is Kubernetes 1.18 +- the previous release is Kubernetes 1.17 +- the next release is Kubernetes 1.19 +- the release no longer in support is Kubernetes 1.14 + +To simplify certain instructions, we will make the following connections: + +| Text | SemVer | Reference Release | +|---|---|---| +| "current release", "current milestone", "in development" | `x.y` | Kubernetes 1.18 | +| "previous release", "previous milestone" | `x.y-1` | Kubernetes 1.17 | +| "next release", "next milestone" | `x.y+1` | Kubernetes 1.19 | +| "release no longer in support" | `x.y-4` | Kubernetes 1.14 | + +**As an editor of this content, Branch Managers should periodically update these conventions and the examples contained within this handbook.** + +## Prerequisites + +This is a collection of requirements and conditions to fulfill when taking on the role as branch manager. + +### Branch Management Onboarding + +**Before we can grant Release Manager access to new Branch Managers, a [Release Manager onboarding issue](https://github.com/kubernetes/sig-release/issues/new?labels=sig%2Frelease%2C+area%2Frelease-eng&template=release-manager.md&title=Release+Manager+access+for+%3CGH-handle%3E) _MUST_ be opened in this repo. Please take a moment to do that before executing the tasks contained in this handbook.** + +### Machine setup + +#### Operating System + +There's a small amount of effort to ensure our [release tools] are supported on multiple platforms, please note that only the following systems are supported: + +- Debian-like (Debian, Ubuntu) +- Fedora-like (Fedora, RHEL, CentOS) +- MacOS + +Windows is not supported by [release tools]. + +While our tooling may not support every platform, you may find success running within a container image. + +See "Cutting v1.15.0-alpha.2" under [References](#References) for an example Dockerfile. + +**If you notice that [release tools] are not working as expected, please file an issue in [kubernetes/release].** + +#### Release tooling + +To leverage/contribute to our [release tools], Release Managers will need to fork and clone the [kubernetes/release] repo. + +Building and publishing releases requires the latest revision of the release tools. The release tools can be compiled by running the following command from the [kubernetes/release] repository: + +```shell +make release-tools +``` + +Release Managers primarily use an SSH key to authenticate to GitHub. + +GitHub has documentation to assist in: + +- [Connecting to GitHub with SSH](https://help.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh) +- [Forking a repo](https://help.github.com/en/github/getting-started-with-github/fork-a-repo) + +Additionally, `kubernetes/community` has a great [overview of the GitHub workflow](https://git.k8s.io/community/contributors/guide/github-workflow.md) we use across several Kubernetes org repositories. + +Please take a moment to review the above documentation before continuing. + +#### Google Cloud SDK + +[Kubernetes release artifacts](/release-engineering/artifacts.md) are stored on Google Cloud Platform (GCP). + +Release Managers will need to use the Google Cloud SDK to interact with release artifacts. + +Google Cloud has [documentation on installing and configuring the Google Cloud SDK CLI tools](https://cloud.google.com/sdk/docs/quickstarts). + +To authenticate the Google Cloud SDK tool with your GCP account, you can run: + +```shell +gcloud auth login +``` + +It might ask you to define the default project, region, and similar settings. The project can be set to `kubernetes-release-test`, while other settings can be ignored. + +In addition to `gcloud,` `gsutil` is required as well. By default, it comes with Google Cloud SDK. + +#### Sending mail + +At the end of a release, Release Managers will need to announce the new release to the community. + +> NOTE: ALL OF THE FOLLOWING `krel` COMMANDS RUN AS MOCK (NO CHANGES) BY DEFAULT. No mock (`--nomock`) must be specified for command to execute / take action. This is clear in the output based on the targeted email test groups, but not obvious before running the command. + +This can be done in one of two ways: + +- The `krel announce` sub command -- A [`SENDGRID_API_KEY`](https://sendgrid.com/docs/ui/account-and-settings/api-keys) will need to be configured correctly on your environment for this to work + - If you haven't used SendGrid before, SendGrid might require you to go through the [Sender Identity Verification process][sendgrid-identity-verification] before you can send emails/announcements + ```shell + export SENDGRID_API_KEY=<API_KEY> + krel announce send --tag vX.Y.0-{alpha,beta,rc}.Z --name "<Your Name>" --name <Your Email Address> + ``` +- Manually -- Send the email notification manually to [kubernetes-announce][k-announce-list] and [kubernetes-dev][k-dev-list]. You can take contents of the announcement in one of the following ways: + - By taking the contents from the Release Cloud Bucket: `https://dl.k8s.io/release/v1.y.z/announcement.html` and using the subject "[kubernetes-announce] Kubernetes v1.y.z is live!", for example: + - https://dl.k8s.io/archive/v1.31.1/announcement.html + - By using `krel announce` command with the `--print-only` flag + +See the [Release Commands Cheat Sheet](https://github.com/kubernetes/sig-release/blob/master/release-engineering/role-handbooks/patch-release-team.md#release-commands-cheat-sheet) for example commands. + +[k-announce-list]: https://groups.google.com/forum/#!forum/kubernetes-announce +[k-dev-list]: https://groups.google.com/a/kubernetes.io/g/dev +[release tools]: https://github.com/kubernetes/release#tools +[kubernetes/release]: https://github.com/kubernetes/release +[sendgrid-identity-verification]: https://sendgrid.com/docs/for-developers/sending-email/sender-identity/ + +##### Mailing List Permissions + +Permissions to send mail to the [kubernetes-announce](https://groups.google.com/g/kubernetes-announce) are managed in Google Groups. To request access please reach out to the [list owners](https://groups.google.com/g/kubernetes-announce/members?q=role%3Aowner) in slack. +This is only needed if you plan on sending mails manually (not through sendgrid). + +#### Skopeo + +[Skopeo][skopeo] is a command line utility that performs various operations on container images and image repositories. Skopeo is not required for performing branch management tasks (if needed, Docker and other relevant tools can be used instead), however, it might be referred to by other guides. If you want to install Skopeo, you can follow the [official installation guide][skopeo-install]. + +[skopeo]: https://github.com/containers/skopeo +[skopeo-install]: https://github.com/containers/skopeo/blob/master/install.md + +## Releases Management + +**General overview**: + +Public build artifacts are published and an email notification goes out to the community. You will become very familiar with the following commands over the course of the 3 month release cycle: + + - `krel stage/release` for creating releases + - `krel announce` to send the announcement email notification. + +There are more examples of the release process under the [References](#references) section. + +It is also highly recommended to glance over the [Release Commands Cheat Sheet](https://github.com/kubernetes/sig-release/blob/master/release-engineering/role-handbooks/patch-release-team.md#release-commands-cheat-sheet). + +### Creating and managing the Release Issue + +Prior to cutting a release version, [open a "Cut a Release" issue](https://github.com/kubernetes/sig-release/issues/new?template=cut-release.md&title=Cut+1.x.y-%7Balpha%2Cbeta%2Crc%7D.z+release) on [kubernetes/sig-release](https://github.com/kubernetes/sig-release). + +On the issue template, there are comments describing the predefined items that +need to be completed. + +#### Testgrid Screenshots + +For the item `Screenshot unhealthy release branch testgrid boards...`: + +`krel testgridshot` takes care of generating screenshots of +[Testgrid](https://testgrid.k8s.io/) to keep as a reference of the state +it was in before cutting a release. This subcommand will generate images +of the boards and upload them to a Cloud Storage bucket, as well as the +Markdown code. + +To invoke the subcommand, run it with the branch you are working on: + +``` +krel testgridshot --branch 1.20 +``` + +You can include other testgrid states in the output and even have krel +autocomment the issue for you: + +``` +krel testgridshot --branch 1.20 --github-issue 12345 --states=FLAKY +``` + +Once the script generates the Markdown table, post it as a comment on the created issue. You can take a look at the [following comment](https://github.com/kubernetes/sig-release/issues/1249#issuecomment-696702503) as an example. + +#### Adding data about the Cloud Build Jobs + +When running a release cut, you should open a thread in the +[#release-management][release-management-url] Slack channel and include links +to the GCP build console. You can take a look at the +[following thread][example-release-thread] as an example. + +[release-management-url]: https://app.slack.com/client/T09NY5SBT/CJH2GBF7Y +[example-release-thread]: https://kubernetes.slack.com/archives/CJH2GBF7Y/p1600247891103600 + +Once mock and nomock runs are complete, data about the jobs launched must be +collected in the issue. These are assembled in a table and correspond to the +`Collect metrics, links...` check mark. + +After the release process has been completed, get the data table by using the +`krel history` subcommand. It will output a markdown table with the options used +to run the jobs, links to the GCB logs, and the result of each run. + +```shell +krel history --branch release-1.xy --date-from <date-of-release> +``` +The generated table is then appended to the release issue, as it can be seen in +the [following issue for the v1.20.0-alpha.1 release](https://github.com/kubernetes/sig-release/issues/1249#issue-705792603). + + +__Note:__ `krel history` works using the [Default Application +Credentials](https://cloud.google.com/sdk/gcloud/reference/auth/application-default) +set in your environment. While you may be logged as a user with one or more Google +accounts in the GCP SDK (which are used in `gsutil`, `gcloud`, etc), you need to +make sure your user identity is set as DAC as software using the Google Cloud +libraries uses it to authenticate. + +If you have not set any Default Application Credentials previously, krel will notify +you. If you have another user or a service account you will simply get an +authentication error. + +Use the following command to start the authorization flow to set your default credentials: + +```shell +gcloud auth application-default login +``` + +#### Closing the Issue + +After having thoroughly read the section on cutting a release version of the handbook, and that all items on the checklist have completed (you may include notes on events that was unique to cutting that release version as comments), close the issue with `/close` as a comment the issue thread. + +### Alpha Releases + +#### Alpha Stage + +##### krel stage + +To stage a new alpha release, simply run `krel stage`. The default command line +parameters will already default to the correct `--branch` and `--type`. + +The output of the command should provide a link to GCP, where you can track the +progress of the build. The build duration takes approximately 1 hour. `krel +stage` is building all the bits for a bunch of target operating systems and +hardware architectures. + +<!-- TODO: krel is not checking testgrid + +Early in the release cycle, it is likely that the build might fail. By default the `stage master` command automatically looks for a place where [release master blocking tests](https://testgrid.k8s.io/sig-release-master-blocking) have green results, which traditionally has not happened in Kubernetes on an ongoing basis. + +WE REALLY WANT (and need) TO GET THERE. Quality needs to be a continual focus. But in the meantime, acknowledging today especially for an early alpha or beta release, it is possible to just build via: + +Rather than having `krel stage` pick a candidate by analyzing test data from the commit history that had no fails and building automatically from that point, we instead indicate we want to build explicitly from the last commit on the current branch. +--> + +#### Alpha Release + +The actual releasing may be intentionally delayed after staging. For example, the branch manager may stage a build from the head of the release branch late in the release cycle, doing so in the morning so that it is fully built and would be releasable in the afternoon (pending CI tests run against the head of the branch). + +If the CI results are good and the release team approves, you can initiate the publishing portion of the release process. If staging the build only happened after the receipt of clean CI tests results, this will delay completing the entire release process for a release version (alpha,beta,rc,...). + +This presumes reproducible builds and that the CI tests are meaningful relative to the release builds. There is always a risk that these diverge, and this needs to be managed broadly by the project and the release team. + +##### krel release + +Before running the release step, please refer to the [Image Promotion documentation][image-promotion]. + +To finish the previously staged release, run `krel release --build-version=…`. +Use the `--build-version=` as specified in the output when `krel stage` is done. + +This copies the staged build to public GCP buckets at well-known urls for the truncated release version string. The unique build staging identifier will subsequently be “v1.16.0-alpha.1”, even though the staged build had an “alpha.0” in its name. + +This can be confusing. The v1.16.0-alpha.0 tag was created automatically in the past when the v1.15 branch was forked, but it wasn’t actually built. + +##### Mock vs nomock + +Any `krel stage/release` command without the `--nomock` flag is a dry run. It is highly encouraged to dry run first before letting `krel stage/release` take any actual impact on the release process. Mock building/releasing can help you verify that you have a working setup! + +To get more information on `krel stage/release`, please refer to their +corresponding help (`-h`) output. + +**Note: This run may fail. Mock builds can only be mock released. A nomock release requires a nomock build to be staged.** + +### Beta Releases + +Before run the `official release step` please refer to the [Image Promotion documentation][image-promotion]. + +To stage a new beta release, simply run `krel stage --type=beta`. The same +applies to `krel release --build-version=… --type=beta`. + +### Release Candidates + +Builds against a `release-x.y` branch are implicitly the next RC (release candidate). `krel` automatically finds and increments the current build number. + +**Note: If this is the first release (`rc.0`), there are additional tasks to complete. Please review them _COMPLETELY_ in the [Branch Creation section](#branch-creation), _before_ continuing.** + +Before run the `official release step` please refer to the [Image Promotion documentation][image-promotion]. + +To stage a new RC release, simply run `krel stage --type=rc --branch=release-x.y`. The same +applies to `krel release --build-version=… --type=rc --branch=release-x.y`. + +In a perfect world, `rc.1` and the official release are the same commit. To get as close to that perfect state as we can, the following things should be considered: + +1. PRs tagged with the release cycle milestone should have all merged onto the `master` branch: + + For example, there should be no open PRs tagged with the v1.18 milestone, `is:pr is:open milestone:v1.18`. + + You and the release team should push for PRs to get merged before the [code freeze](#code-freeze) is lifted or determine if the open PRs can be removed from the milestone and be merged in the next release cycle. + +2. When to stage and release `rc.1`: + + Make sure that all the changes that have been merged onto `master`, make it onto the release branch. Run [`krel ff`](#branch-fast-forward) to see the state of the two branches and pull any remaining PRs from `master` onto the release branch. + + At this point in time, `master` and the release branch should have the same commits. Nothing new gets merged onto `master`, since [code freeze](#code-freeze) is not lifted. Therefore, it is safe to cut the release candidate. + +3. Factors that determine if Code Freeze can be lifted: + + - Zero pending PRs and no open issues tagged with the release cycle milestone. + - No failing X.Y-blocking tests, for example the [sig-release-1.18-blocking](https://testgrid.k8s.io/sig-release-1.18-blocking) dashboard should not have any red failing test builds. + + > **Note:** If there are non-zero pending PRs, open issues or failing tests, there is high confidence that the issue is understood and the solution can be [cherry picked](#cherry-picks) over to the release branch between the release candidate(s) and official release. + +Technically we can keep [code freeze](#code-freeze) in place after `rc.1` was cut. However, we should aim at lifting code freeze relatively quickly after `rc.1`. + +Otherwise we might have a mix of PRs against master, some have been merged in code freeze and for the milestone, just after `rc.1`, and others have been merged when code freeze has been lifted. We might miss this specific PR in the plethora of PRs that [tide] merges after [code thaw](#code-thaw), and we might miss that this PR actually needs to be cherry-picked into the release branch. + +[tide]: https://git.k8s.io/test-infra/prow/tide + +### Official Releases + +Before run the `official release step` please refer to the [Image Promotion documentation][image-promotion]. + +To stage a new official release, simply run `krel stage --type=official +--branch=release-x.y`. The same applies to `krel release --build-version=… +--type=official --branch=release-x.y`. + +In addition to `v1.18.n` this will also build and stage the subsequent patch's +`rc.0`, in this example `v1.18.(n+1)-rc.0`. Similar to [creating a new branch](#branch-creation), the staging step will take about twice as long, the +release step will also take a couple of minutes more. + +To better prepare and see what to expect, this is a sequence of events that took place on past official release days [1.14-1.16](https://docs.google.com/document/d/1K0B91lgeEiJTbT602VloA5arb6AkaTif-MLryaHmlYc/edit?usp=sharing), and the most recent [1.32](https://kubernetes.slack.com/archives/CJH2GBF7Y/p1733928000598509). + +#### Security fixes + +The Security Response Committee (SRC) may contact you via the [Security Release Team][security-release-team] +mailing list if there are security fixes needed on the release branch. + +Once the release has been confirmed to contain security fixes, the Branch Manager must inform the current +Release Team Lead and Lead Shadows. Information pertaining to these fixes is considered need-to-know and should not be disseminated to anyone else on the Release Team. + +You must not make any public announcements regarding these fixes unless the SRC tells you to. + +See the [Security Release Process](https://git.k8s.io/security/security-release-process.md) doc for more details. + +[security-release-team]: https://groups.google.com/a/kubernetes.io/forum/#!forum/security-release-team + +#### Announcing Security Fixes + +The security fixes are usually announced upon publishing releases by: + +- including information about security fixes in the release announcement sent to kubernetes-announce and dev mailing lists +- including information about security fixes in CHANGELOGs for affected releases +- sending an email announcement for each security fix to the relevant mailing lists (done by the Security Response Committee) + +The first two are handled by Release Managers in coordination with the Security Response Committee (SRC). Before starting the release process, the Release Managers need to reach out to the SRC and ask them to provide a CVE data map that contains information about security fixes. + +CVE data map file is created for each CVE and it looks like this: + +```yaml +--- +pr: <cherry-pick PR number> +datafields: + cve: + id: CVE-2022-0000 + title: "<title for given CVE>" + description: | + <description of vulnerability> +​ + **Affected Versions**: + - kube-apiserver v1.25.0 + <list of affected versions>... +​ + **Fixed Versions**: + - kube-apiserver v1.25.1 + <list of fixed versions>... +​ + <credits and acknowledgements (optional)> + trackingissue: "[https://github.com/kubernetes/kubernetes/issues/TODO](https://github.com/kubernetes/kubernetes/issues/TODO)" + vector: "<cvss vector string>" + score: <cvss score> + rating: "<CVE rating (Low/Medium/High/Critical)>" + linkedprs: [] + +``` + +The CVE data map can also be created by using `krel`. Running the following command will open a text editor with a sample data map. Populating and saving the data map will automatically upload it to the appropriate (private) bucket (this requires access to the said bucket, therefore only the Release Managers can use this command). + +```shell +krel cve edit CVE-2022-0000 +``` + +If multiple releases affected releases are affected by the same CVE, you must put a data map for each release in the **same data map file**, such as: + +```yaml +--- +pr: <cherry-pick PR number for first release branch> +datafields: + cve: + id: CVE-2022-0000 + ... +--- +pr: <cherry-pick PR number for second release branch> +datafields: + cve: + id: CVE-2022-0000 + ... +--- +pr: <cherry-pick PR number for third release branch> +datafields: + cve: + id: CVE-2022-0000 + ... +``` + +If CVE data map YAML files are provided by the SRC (instead of using `krel cve` command), those files can be uploaded to the appropriate private bucket using `krel` such as: + +```shell +krel cve edit CVE-2022-0000 -f ./path-to-data-map.yaml +``` + +This command will also take care of validating the provided data map file. Once the data maps are uploaded, `krel` will (automatically) take those data maps into account when generating the changelog and the release announcement emails. + +#### Release Validation + +The following are some ways to determine if the release process was successful: + +1. The build tag and release artifacts become [visible on GitHub at https://github.com/kubernetes/kubernetes/releases](https://github.com/kubernetes/kubernetes/releases) + +2. The release is logged automatically by [k8s-release-robot](https://github.com/k8s-release-robot) in [k/sig-release](https://git.k8s.io/sig-release) + +3. CHANGELOG-X.Y.md is automatically loaded into the kubernetes/kubernetes repo: [https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.16.md](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.16.md) + + +## Branch Management + +This section discusses the methods in managing commits on the `release-x.y` branch. + +### Release Branch Creation + +See [this section](../handbooks/k8s-release-cut.md#next-release-branch-creation) of the release cut handbook for more info. + +#### Post new release branch creation tasks + +Run through the following tasks detailed [here](../handbooks/post-rc0-release-tasks.md) after the `rc.0` release is communicated and therefore the release branch has been created. + +--- + +### Configure Merge Automation + +Between the [Code Freeze](#code-freeze) and lifting Code Freeze ([Code Thaw](#code-thaw)) period, merging new code is restricted. The main focus is on fixing existing code and getting green test builds on Testgrid. Preventing new code is implemented by config changes for [tide]. The `master` and current release cycle branch (`release-x.y`) are the only branches affected during this period. + +Code freeze initiates additional merge requirements, while Code thaw marks the switch back to the development phase. Look at the [release cycle timeline](https://github.com/kubernetes/sig-release/tree/master/releases) for the exact dates for code freeze and code thaw. Usually the the date for code thaw is flexible depending on pending PRs. + +As Branch Manager, coordinate with the Release Lead on checking the exact config changes required to enable and disable merge restrictions. + +#### Tide + +Tide automates merges and is configured via a [config.yaml][config.yaml] file. Tide identifies PRs that are mergeable using GitHub queries that correspond to the configuration. Here is an example of what the query config for `kubernetes/kubernetes` looks like without additional constraints related to the release cycle: + +```yaml + - repos: + - kubernetes/kubernetes + labels: + - lgtm + - approved + - "cncf-cla: yes" + missingLabels: + - do-not-merge + - do-not-merge/blocked-paths + - do-not-merge/cherry-pick-not-approved + - do-not-merge/hold + - do-not-merge/invalid-owners-file + - do-not-merge/release-note-label-needed + - do-not-merge/work-in-progress + - do-not-merge/needs-kind + - do-not-merge/needs-sig + - needs-rebase +``` + +During code freeze, two queries are used instead of just one for the `kubernetes/kubernetes` repo. One query handles the `master` and current release branches while the other query handles all other branches. The partition is achieved with the `includedBranches` and `excludedBranches` fields. + +#### Code Freeze + +Code freeze means the code is "frozen" and there will not be any further modifications from the developers. + +Branch managers create the "freeze" by altering the Tide merge requirements for the `master` and current `release-x.y` branch from the other branches (enforced by Tide with two queries). + +We only add additional merge requirements for PRs to these two branches for code freeze: + +- PRs must be in the GitHub milestone for the current release. + +Milestone requirements are configured by adding `milestone: vX.Y` to a query config. + +It is also helpful to remind [#sig-testing](https://kubernetes.slack.com/messages/C09QZ4DQB) when code freeze starts so they know not to do any major changes. + +```yaml + - repos: + - kubernetes/kubernetes + milestone: v1.16 + includedBranches: + - master + - release-1.16 + labels: + - lgtm + - approved + - "cncf-cla: yes" + missingLabels: + # as above... + - repos: + - kubernetes/kubernetes + excludedBranches: + - master + - release-1.16 + labels: + - lgtm + - approved + - "cncf-cla: yes" + missingLabels: + ... +``` + +Example PR: + + - [1.18](https://github.com/kubernetes/test-infra/pull/16603) + - [1.17](https://github.com/kubernetes/test-infra/pull/15301) + +#### Code Thaw + +Code Thaw removes the release cycle merge restrictions and replaces the two queries with one single query. We remain in this state until the next Code Freeze. + +```yaml + - repos: + - kubernetes/kubernetes + labels: + - lgtm + - approved + - "cncf-cla: yes" + missingLabels: + ... +``` + +Update the `milestoneapplier` plugin configs for the following repos to the **_next_** milestone: + +- `kubernetes/enhancements` +- `kubernetes/kubernetes` +- `kubernetes/release` +- `kubernetes/sig-release` +- `kubernetes/test-infra` + +Example PRs: + +- [1.33](https://github.com/kubernetes/test-infra/pull/34693) + +> [!IMPORTANT] +After Code Thaw is performed, remind @release-managers to perform the propedeutic tasks for the next `alpha.1` cut, such as setting up the new OBS project. + +### Branch Fast Forward + +We now run the branch fast forward automatically to even the branches. + +Noted that no need for manual cherry-pick against current release and the job would be promoted to [release-blocking](https://testgrid.k8s.io/sig-release-releng-blocking#git-repo-kubernetes-fast-forward). + +Once code freeze is lifted ([code thaw](#code-thaw) occurred), PRs that need to be merged onto the release branch are cherry-picked over from `master`. + +### Reverts + +During code freeze it is especially important to first look at the list of commits on `master` since the prior fast forward, scanning their content and issues/PRs to ensure they are changes expected for this milestone. + +**The merge-blocking mechanisms are relatively weak.** + +It is possible still for some people to write directly to the repo (bypassing blocking mechanisms) as well as for unintentional milestone maintainers to approve a merge incorrectly. The branch manager is the last line of defense. + +If code incorrectly merges onto `master` it should be reverted in `master`. Alternatively, release branch management must go to all cherry picks, picking around the incorrectly added commit. + +### Cherry Picks + +Once code freeze is lifted, and for the post-release patch management process, commits are cherry picked from `master`. + +It's important to take note of [what is considered as a release blocking issue or PR](https://github.com/kubernetes/sig-release/blob/master/release-blocking-jobs.md) and identify PRs and issues as soon as possible. Ensure that there's work being done to release blocking PRs completed prior to the official release day. + +Let the release lead know if there's not enough attention placed on the release blocking PR. This way we can prevent from prolonging the official release. + +The current documentation in the [contributor guide for cherry picks](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md) should be generally sufficient. There are a couple prerequisites to running the script which are outlined in that guide. + +The cherry pick script is also fairly self documenting in terms of how to invoke the command. + +Running [cherry_pick_pull.sh](https://git.k8s.io/kubernetes/hack/cherry_pick_pull.sh) creates a cherry pick PR against the specified `release-x.y` branch. The content of the cherry pick PR is taken from a PR that was made against `master`. Once the appropriate approval is given to the cherry pick PR and has met the requirements set by the [k8s-ci-robot](https://github.com/k8s-ci-robot), this will trigger test re-runs on the PR. As soon as these tests all pass, add the `cherry-pick-approved` label. + +For example, [#79044](https://github.com/kubernetes/kubernetes/pull/79044) is the cherry pick PR of [#78999](https://github.com/kubernetes/kubernetes/pull/78999). Once [#79044](https://github.com/kubernetes/kubernetes/pull/79044) is tagged with the `cherry-pick-approved` label, Prow begins the merge onto the release branch. + +There has been quite a bit of recent discussion (see: [1](https://github.com/kubernetes/community/pull/2408), [2](https://github.com/kubernetes/community/pull/1980)) around improving both the cherry pick process process and its documentation. + +After the official release has been published, the [Release Managers](../../release-managers.md#release-managers) will take over in handling cherry picks. In the time between [code thaw](#code-thaw) and the official release, cherry picks are the responsibility of the branch management team. + +Consider the following when assessing the cherry-picks: + +- Check regularly if there are new cherry picks with + [`is:open is:pr base:release-1.18 label:do-not-merge/cherry-pick-not-approved`][cherry-pick-query] +- Consider that each cherry-pick diverges the latest release candidate that has been cut from the bits to be released as the official release +- Engage with the cherry pick requester: How important is that cherry-pick, can it be pushed to a later release (patch or even minor), ... ? +- Discuss (especially controversial) cherry-picks in [#sig-release] or at the burndown meeting if you are unsure +- If certain cherry-picks merge, does this mean we want another release + candidate, more time for the release candidate to soak (e.g. over the + weekend)? + +[cherry-pick-query]: https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+base%3Arelease-1.18+label%3Ado-not-merge%2Fcherry-pick-not-approved + +## Staging Repositories + +The [publishing-bot](https://github.com/kubernetes/publishing-bot) is responsible for publishing the code in [staging](https://git.k8s.io/kubernetes/staging/src/k8s.io) to their own repositories. + +The bot also syncs the Kubernetes version tags to the published repos, prefixed with `kubernetes-`. For example, if you check out the `kubernetes-1.16.0` tag in client-go, the code you get is exactly the same as if you check out the `v1.16.0` tag in Kubernetes, and change the directory to `staging/src/k8s.io/client-go`. + +[client-go](https://github.com/kubernetes/client-go) follows [semver](http://semver.org/) and has its own release process. This release process and the publishing-bot are maintained by SIG API Machinery. In case of any questions related to the published staging repos, please ask someone listed in the following [OWNERS](https://git.k8s.io/publishing-bot/OWNERS) file. + +The bot runs every four hours, so it might take sometime for a new tag to appear on a published repository. + +The client-go major release (e.g. `v1.18.0`) is released manually a day after the main Kubernetes release. + +## Debugging + +To debug `krel stage/release` you can set the log level to `debug` by doing +`krel --log-level debug [args]`. There is also a `trace` log level for maximum +output verbosity. The log level is passed correctly to the Google Cloud console +and can be inspected there. + +## Search past builds + +To search past `cloudbuilds` to make any kind of analysis and check metrics you can use the Google Cloud Console for that. +You can access [Google Cloud Build History](https://console.cloud.google.com/cloud-build/builds?project=kubernetes-release-test) + +There you can see all the `cloudbuilds` that already ran or if there is any one running in the moment you can see that as well. + +To filter for a specific build or set of builds you can use the `Filter Builds` textbox. When you click there it opens a dropdown box to you select which kind of keys you want to filter. + +For example you can select `Tags` and then add the tags you want to filter, like, `Tags: release-1.18 Status: Successful`. This query in the [Google Cloud Build](https://console.cloud.google.com/cloud-build/builds?project=kubernetes-release-test&pageState=(%22builds%22:(%22f%22:%22%255B%257B_22k_22_3A_22Tags_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22release-1.18_5C_22_22_2C_22s_22_3Atrue_2C_22i_22_3A_22tags_22%257D_2C%257B_22k_22_3A_22Status_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22Successful_5C_22_22_2C_22s_22_3Atrue_2C_22i_22_3A_22status_22%257D%255D%22))) + + +#### Limitation + +Looks like in the Google Cloud Build History you cannot set more than one `tag` when using the `AND` operator. The query does not bring anything if you add, for example, `Tags: release-1.18 Tags: STAGE`. +Besides the fact that exists. + + +## References + +- [Release Tools Documentation](https://github.com/kubernetes/release/blob/master/README.md) +- [Generic Release Steps](https://docs.google.com/document/d/1x-GQDZpKk3WajtSnO0axDazE9Xs2mOSVgjziIuTWNO0/edit) +- [Detailed overview (Cutting v1.15.0-alpha.2)](https://docs.google.com/document/d/1Xv5w_eNvLvD-nNinMNqQAh0qlzee8btqAyHyFFMz3z4/edit?usp=sharing) +- If you prefer a video walk-through, see [cutting release candidate v1.15.0-rc.1](https://youtu.be/ldYt1elShD4). + +### Test Infra references + +Concerns and questions can be directed to [#testing-ops](https://kubernetes.slack.com/messages/C7J9RP96G) and [#sig-testing](https://kubernetes.slack.com/messages/C09QZ4DQB). For urgent matters, please contact the user group [@test-infra-oncall](https://get.slack.help/hc/en-us/articles/212906697-Create-a-user-group#browse-user-groups-and-view-members) on Slack. + +- [Prow](https://github.com/kubernetes/test-infra/tree/master/prow) the Kubernetes-based CI/CD system + - [PR Status](https://prow.k8s.io/pr) + - [Tide Status](https://prow.k8s.io/tide) +- [Hound](https://cs.k8s.io/) a Kubernetes Codebase Search +- [Kubernetes DevStats](https://k8s.devstats.cncf.io/) displays Kubernetes Developer Productivity +- [Kubernetes On-call Rotation](https://go.k8s.io/oncall) displays the current Test Infra person on call +- [APISnoop](https://apisnoop.cncf.io/) snoops on the Kubernetes OpenAPI communications + - [Source](https://github.com/cncf/apisnoop) +- [TestGrid](https://testgrid.k8s.io/) displays Kubernetes CI tests results in grids + - [Source](https://github.com/GoogleCloudPlatform/testgrid) + - [TestGrid Open-sourcing Planning](https://github.com/kubernetes/test-infra/issues/10409) + - [Displaying Kubernetes Conformance Results with Testgrid](https://docs.google.com/document/d/1lGvP89_DdeNO84I86BVAU4qY3h2VCRll45tGrpyx90A/edit) + +## Background information + +You may have seen reference to `./anago` when cutting releases but there's no mention of using `anago` in this handbook, see: + +- [Summary of discussion with Caleb about moving from `anago` to `gcbmgr`](https://groups.google.com/d/topic/kubernetes-milestone-burndown/YdHa51d95VI/discussion) + +> Note: To access this forum, you will need to join the [kubernetes-milestone-burndown](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) Google group. + +See the branch management process prior to v1.12 when `anago` was still used. + +- [Branch Management Playbook](https://docs.google.com/document/d/1Qoqz5IZYBp6A-Q_R9CGhMAc358ykOiE49GXZU9r5usQ/edit#heading=h.s71iha1627td) + +> Note: To view this document, you will need to join the [kubernetes-dev](https://groups.google.com/a/kubernetes.io/g/dev) Google group. + +[image-promotion]: https://sigs.k8s.io/promo-tools/docs/promotion-pull-requests.md +[kubernetes-release-team]: https://groups.google.com/a/kubernetes.io/g/release-team +[release-branch-job-creation]: https://git.k8s.io/test-infra/releng/README.md +[release-managers]: /release-managers.md#release-managers +[release-managers-group]: https://groups.google.com/a/kubernetes.io/forum/#!forum/release-managers + +# Visual Release Cut Process + +The diagram below shows the actions needed to cut a Kubernetes release + +```mermaid +flowchart TD + Start(["Start"]) --> issue["Create a release cut issue on GitHub"] -->|"update along the way"| issue + issue --> thread["Create a Slack Thread in #release-management \n and cc release-managers"] -->|"update along the way"| thread + thread --> build_admins["Contact Google Build Admins \n for their availability to plan when to cut the release"] + build_admins --> mock["Mock run (stage and release)"] + mock --> staging["Nomock stage"] + staging --> artifact_promotion["Image promotion"] + artifact_promotion --> release["Nomock release"] + release --> publish_pkgs["Contact Google Build Admins to publish the deps/rpms"] + publish_pkgs --> announcement_chat["Notify Slack channel #release-management \n about the new release"] + announcement_chat --> announcement_email["Notify Community by Email \n using Krel"] + announcement_email --> close["Close release cut GitHub Issue"] + close --> done(["End"]) + + classDef cluster fill:#fff,stroke:#bbb,stroke-width:2px,color:#326ce5; + classDef plain fill:#ddd,stroke:#fff,stroke-width:4px,color:#000; + classDef k8s fill:#326ce5,stroke:#fff,stroke-width:4px,color:#fff; + class Start,done plain; + class issue,thread,build_admins,mock,staging,artifact_promotion,release,publish_pkgs,announcement_chat,announcement_email,close k8s; +``` diff --git a/release-engineering/role-handbooks/patch-release-team.md b/release-engineering/role-handbooks/patch-release-team.md index 2b8ed8aeb62..8bb84270b0b 100644 --- a/release-engineering/role-handbooks/patch-release-team.md +++ b/release-engineering/role-handbooks/patch-release-team.md @@ -1,604 +1,604 @@ -# Patch Release Team Playbook <!-- omit in toc --> - -As the name implies, Patch Release Team members are responsible for -managing patches against Kubernetes release branches and making the -1.X.Y patch releases during the support period after each 1.X minor -release. Kubernetes 1.X releases receive approximately one year -of support (for releases 1.19 and newer; release 1.18 and earlier received -9 months of support) in terms of patches for bugfixes and ongoing CI insuring -the branch's health and the ability to update from 1.X.Y to 1.(X+1).Y, -for the newest Y on each of those two branches. - -- [Content Notice](#content-notice) -- [Prerequisites for Patch Release Team members](#prerequisites-for-patch-release-team-members) - - [General Requirements](#general-requirements) -- [Getting started](#getting-started) -- [Cherry-pick requests](#cherry-pick-requests) -- [Patch branch merge workflow and status tracking](#patch-branch-merge-workflow-and-status-tracking) - - [Rationale](#rationale) - - [Spreadsheets](#spreadsheets) - - [Time Ordered Rows](#time-ordered-rows) - - [Coloring](#coloring) - - [Row Details](#row-details) - - [Future Work](#future-work) -- [Branch health](#branch-health) -- [Release timing](#release-timing) -- [Release cut](#release-cut) - - [Hotfix release](#hotfix-release) - - [Security release](#security-release) -- [Release Commands Cheat Sheet](#release-commands-cheat-sheet) - -## Content Notice - -The Patch Release Team and Branch Manager roles have been consolidated into a -single [Release Managers][release-managers] group. - -This means that several areas of this document may currently be out of date. -While we work to update these documents, please reach out to -[Release Managers][release-managers] directly for any clarifications on Release -Engineering processes. - -**This notice will be removed when the documentation is no longer under -construction.** - ---- - -While this playbook is intended to guide Patch Release Team members, -it largely consists of opinions and recommendations from former -patch release managers. Each Patch Release Team member is ultimately -responsible for carrying out their duties in the manner they deem -best for the project. The playbook then is more what you might -call "guidelines" than actual hard rules. Still each Patch Release -Team member should endeavor to keep this document up to date, improve -its content, and improve the overall process of patch management -for the project. - -## Prerequisites for Patch Release Team members - -### General Requirements - -**Before continuing on to the Patch Release specific requirements listed below, please review and work through the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md).** - - -## Getting started - -You're here because you've volunteered and have been selected to -contribute to patch release management for one or more branches. -You will need to make yourself known to the community and gain -access to multiple build and release tools: - -* Add your name and contact info, and if applicable a new section - for the current release, to the [Patch Releases landing - page](/releases/patch-release.md) so the community knows you're the - point of contact. If your work is specific to one particular - release, add your name to that release's release team in the patch - release manager row, for example [here for - 1.13](https://git.k8s.io/sig-release/releases/release-1.13/release_team.md). -* Peribolos is used for GitHub team membership. You need to be a member of the - [kubernetes-release-managers](https://github.com/orgs/kubernetes/teams/kubernetes-release-managers/members) - team to have write access to the main repository. Send a pull request - against the [sig-release teams configuration](https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml) - adding your userid to the kubernetes-release-managers member list. -* Ask the list owner(s) to add you to the - [release-managers-private](https://groups.google.com/a/kubernetes.io/forum/#!forum/release-managers-private) - via the owner contact form [here](https://groups.google.com/forum/#!contactowner/kubernetes-dev). -* Ask the list owner(s) to give you access to post to these mailing lists: - * [kubernetes-announce](https://groups.google.com/forum/#!forum/kubernetes-announce) via owner contact form [here](https://groups.google.com/forum/#!contactowner/kubernetes-announce) - * [kubernetes-dev-announce](https://groups.google.com/forum/#!forum/kubernetes-dev-announce) via owner contact form [here](https://groups.google.com/forum/#!contactowner/kubernetes-dev-announce) -* If applicable, sync up with the outgoing release branch manager - to take ownership of any lingering issues on the branch. -* Review the [Branch Manager - Handbook](/release-engineering/role-handbooks/branch-manager.md) as - much of the tooling and process used by the branch manager pre-release - relates to the post-release duties of Patch Release management. - Pay close attention to the - [Pre-requirements](/release-team/role-handbooks/branch-manager#pre-requirements), - [Safety Check](/release-team/role-handbooks/branch-manager#safety-check), and - [Build and Release](/release-team/role-handbooks/branch-manager#build-and-release) - sections. This outlines current requirements for running `krel stage/release` to do - builds. - -## Cherry-pick requests - -As a patch release manager, you are responsible for reviewing -[cherry-picks](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md) -on your release branch. - -**Finding outstanding cherry-picks** - -Use a GitHub search such as [`is:pr is:open -label:do-not-merge/cherry-pick-not-approved -base:release-1.13`](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+base%3Arelease-1.13+label%3Ado-not-merge%2Fcherry-pick-not-approved+) -to find all un-triaged cherry-pick PRs for a branch. - -As an example of the kind of load to expect, there were close to -300 cherry-pick PRs against the 1.10 milestone during its approximately -one year lifetime. - -For each cherry-pick request: - -1. **Decide if it meets the criteria for a cherry-pick** - - Make sure the PR author has supplied enough information to answer: - - * What bug does this fix? - (e.g. *enhancement X was already launched but doesn't work as intended*) - * What is the scope of users affected? - (e.g. *anyone who uses enhancement X*) - * How big is the impact on affected users? - (e.g. *pods using X fail to start*) - * How have you verified the fix works and is safe? - (e.g. *added new regression test*) - - Ask the PR author for details if these are missing and not obvious. - If you aren't sure what to do, escalate to the relevant SIGs. - - **Notes** - - * Version bumps (e.g. v0.5.1 -> v0.5.2) for dependencies with their own - release cycles (e.g. kube-dns, autoscaler, ingress controllers, etc.) - deserve special attention because it's hard to see what's changing. - In the past, such bumps have been a significant source of regressions in - the stable release branch. - - Check the release notes for the dependency to make sure there are no new - behaviors that could destabilize the release branch. - Ideally you should only accept version bumps whose release deltas contain - only changes that you would have approved individually, if they had been - part of the Kubernetes release cycle. - - However, this gets tricky when there are fixes you need for your branch - that are tied up with other changes. Ask the cherry-pick requester for - context on the other changes and use your best judgment. - - * Historically (up through at least 1.6), there have been exceptions - occasionally granted to the "no new enhancements" rule for - cherry-picks that are confined to plugins like cloud providers - (e.g. vSphere, Azure) and volumes (e.g. Portworx). - - However, we required that these exceptions be approved by the plugin - owners, who were asked to `/approve` through the normal `OWNERS` process - (despite it being a cherry-pick PR). - -1. **Make sure it has an appropriate release note** - - [Good release notes](https://github.com/kubernetes/community/issues/484) - are particularly important for patch releases because cluster admins expect - the release branch to remain stable and need to know exactly what changed. - Take care to ensure every cherry-pick that deserves a release note has one - *before you approve it* or else the change may fall through the cracks at - release cut time. - - Also make sure the release note expresses the change from a user's - perspective, not from the perspective of someone contributing to Kubernetes. - Think about what the user would experience when hitting the problem, - not the implementation details of the root cause. - - For example: - - User perspective (good) | Code perspective (bad) - ----------------------- | ---------------------- - *"Fix kubelet crash when Node detaches old volumes after restart."* | *"Call initStuff() before startLoop() to prevent race condition."* - - Ask the PR author for context if it's not clear to you what the release note - should say. - - Lastly, make sure the release note is located where the - [relnotes](https://git.k8s.io/release/relnotes) script will - find it. You'll know it was not in such a place if the PR is - labelled as `do-not-merge/release-note-label-needed`. This can be - resolved by either of: - - * If the cherry-pick PR comes from a branch called `automated-cherry-pick-of-*`, - then the release notes are taken from each parent PR (possibly more than one) - and the cherry-pick PR itself is ignored. - - Make sure the cherry-pick PR and parent PRs have the `release-note` label. - - * Otherwise, the release note is taken from the cherry-pick PR. - - Make sure the cherry-pick PR has the `release-note` label. - - **Notes** - - * Almost all changes that are important enough to cherry-pick are important - enough that we should inform users about them when they upgrade. - - Rare exceptions include test-only changes or follow-ups to a previous - cherry-pick whose release note already explains all the intended changes. - -1. **Approve for Cherry-pick** - - PRs on release branches follow a different review process than those on the - `master` branch. Patch Release Team members review every PR on the release branch, - but the focus is just on ensuring the above criteria are met. - The code itself was already reviewed, assuming it's copied from `master`, and - should have `/lgtm` and `/approve` from the relevant reviewers and - approvers in the code's associated OWNERS file. - - * For an *automated cherry-pick* (created with `hack/cherry_pick_pull.sh`), - first make sure the parent PR has merged into master. - - If the parent PR hasn't merged yet, leave a comment explaining that you - will wait for it before approving the cherry-pick. - We don't want the release branch to get out of sync if the parent PR changes. - - If the parent PR has merged, comment `/lgtm` to apply the `lgtm` label and - notify the author that you've reviewed the cherry-pick request. - - For cherry-picks that are clearly justified and low risk in your judgment, - you can directly apply the `approved` label as long as the parent PR was - approved and merged into `master`. - - If you lack sufficient context or have any doubts, leave a comment - explaining that the PR needs to get an `/approve` from relevant OWNERS - to ensure that the change is appropriate for a cherry-pick. - - * For a *manual patch or cherry-pick* (not a direct copy of a PR already merged - on `master`), leave a comment explaining that it needs to get - LGTM+Approval through the usual review process. - - You don't need to do anything special to fall back to this process. - The bot will suggest reviewers and approvers just like on `master`. - - Compared to non-cherry-pick PR's, a cherry-pick PR has one - additional merge criteria: The Patch Release Team members are - entrusted with applying the `cherry-pick-approved` label. This - is done directly through the GitHub review feature by approving the PR. The - [prow `cherrypickapproved` plugin](https://github.com/kubernetes/test-infra/tree/ce9ca27/prow/plugins/cherrypickapproved) - will take care of applying the label if the GitHub user - [is configured as privileged cherry-pick approver](https://github.com/kubernetes/test-infra/blob/ce9ca27/config/prow/plugins.yaml#L1104-L1115). - In addition, prow will also remove the - `do-not-merge/cherry-pick-not-approved` label. - - Note that the PR will not actually merge until it meets all usual criteria - enforced by the merge bot (`lgtm` + `approved` labels, required presubmits, - etc.) and makes its way through the submit queue. - - Tide has pools per active branch, so release branch cherry-pick - PRs pending merge will be visible as rows distinct from the master - branch in the [Tide Status](https://prow.k8s.io/tide). - -## Patch branch merge workflow and status tracking - -### Rationale - -At any moment we typically have between a half dozen and a dozen -cherry pick PRs pending on each branch. Many of these are in a -"cluster", picking the same change from master back to the various -release branches. These can be found per branch by a query such as: -[is:open is:pr base:release-1.16 -label:do-not-merge/cherry-pick-not-approved](https://github.com/kubernetes/kubernetes/pulls?utf8=✓&q=is%3Aopen+is%3Apr+base%3Arelease-1.16+label%3Ado-not-merge%2Fcherry-pick-not-approved+). - -But these GitHub queries are point-in-time and do not show what's -changed versus a prior run of the query. Intermediate state must -be externally recorded and updated for consistency. - -### Spreadsheets - -We maintain this evolving state in a set of spreadsheets, one -spreadsheet per release branch. These are privately shared amongst -the patch release team because they contain information on inbound -PRs that relate to security patches and target release date information -that may be embargoed as per the Kubernetes security process (link). -The use of the Google Docs platform means the team can simultaneously -edit the state while also retaining a version history of changes -for the team's future reference. - -![Image of a patch release team spreadsheet example](patch-release-team-spreadsheet-example.png) - -#### Time Ordered Rows - -The spreadsheets run in reverse chronological order with the newest -patch release's activity at the top. - -Sections are made per patch release. - -A row is entered in a section per cherry pick pending ahead of that -patch release. Within each of these sections, cherry picks are -listed in reverse PR number order, newest on top. To add a notation -for a newly inbound cherry pick, add a row above the current newest -row. - -Using a consistent schema for rows and columns means the results -of triaging one cherry pick, when it is part of a cluster of cherry -picks on multiple branches pulling the same change from master, can -be copy/pasted between spreadsheets. This on average saves a lot -of time and effort. While we have settled into a roughly monthly -release cadence and release updates for all branches simultaneously -most of the time, on occasion the branches do diverge both on release -timing and on state for a cluster of cherry picks of the same parent -PR, and this divergent state needs tracked distinctly per branch. - -The result is roughly a running log of our activities with the -newest items on top. - -#### Coloring - -Rows are colored with red/yellow/green scheme to focus activity on -specific cherry picks: - - * red - a cherry pick that has been closed - - * yellow - a cherry pick that is open and has no 'cherry-pick-approved' label - - * green - a cherry pick that has the 'cherry-pick-approved' label - -Cells are colored with bright yellow or red to highlight special action -required, eg: - - * yellow - Eg: decision needed, is in Tide merge pool, is a CVE or security related - - * red - Eg: PR is held - -#### Row Details - -Each cherry pick row has a set of associated columns: - - * ***Issue*** - link to GitHub issue, or "none" - - * ***PR*** - link to the cherry pick PR - - * ***Kind*** - eg: "bug", "cleanup", "feature", etc. from the PR label - - * May be comma separated list depending on PR labels - - * If the bug is determined to be a CVE this should also be noted, eg: - "bug CVE" and highlighted bright yellow. This serves to help remind - that these are important to not discuss publicly and may have - additional external context not yet publicly in the GitHub PR. - - * ***Submitter*** - human contact for the cherry pick PR - - * ***SIG*** - comma separated list of SIGs labelled on the cherry pick PR - - * ***Notes*** - short, human readable summary of the cherry pick PR, eg: - - * "race in the ECR credentials provider kubernetes -> kubelet panic" - - * "NPE in apiserver(?) and/or cli{?)" - - * "upgrade release-1.13 to go1.11.13" - - * In general our community does not provide the best of PR summary lines - and it can take considerable time for each patch release team member to - get to an understanding of the PR content. Once one of us has done - that, storing it helps the rest of us as we collaboratively assess the - merit of the cherry pick. - - * ***Disposition*** - "to merge?", "to close?", "to merge", "merging", "merged", "hold", "closed" - - * current short form thinking of the team regarding where the cherry pick is - - * "merging": when applying the ```cherry-pick-approved``` label in GitHub, update - the disposition to "merging" and highlight it bright yellow. These PRs - will fall off the standard query of ```cherry-pick-not-approved``` PRs, - but may not actually merge for example due to a test failure or a Tide - hiccup, yet they need tracked until they have actually fully merged. - Once merged the cell can move back to a basic green. - - * ***TODO*** - multi-line additional details on status and actions, where each - line may be, eg: - - * "needs lgtm" - - * "needs approve" - - * "needs lgtm/approve" - - * "CVE-2018-1002105" - - * For many of the cherry picks, there is a corresponding cherry pick on - other release branches which should be noted, eg: - - ``` - CP in other releases: - 1.13 https://github.com/kubernetes/kubernetes/pull/82503 - 1.14 https://github.com/kubernetes/kubernetes/pull/82502 - 1.15 https://github.com/kubernetes/kubernetes/pull/82384 - ``` - - Filling this out means that once an issue is triaged for one branch, - it's just a copy/paste of that row into the spreadsheet for the other - branches. - - * It can be useful to note your name and a date next to a line of text - here, especially early during the triage where we're trying to come to - a consensus on the merit of the cherry pick. - -A number of the fields here come from the parent PR automatically -when the cherry pick automation is used (this should be the norm -for most PRs). The parent PRs may have poor labelling resulting -in incomplete labels on the cherry pick. Attempt to clean then up -if possible or comment asking for owners to better disposition them. -When recording unsure status from labels add a "?" in the spreadsheet -cell to indicate the uncertainty. - -### Future Work - - * It would be awesome to replace this manual stateful review workflow with a - tool. Such a tool appears to need invented. - - * Enhancing the cherry pick automation to accept a list of branches to - target, add cross-reference mentions between the clustered GitHub pull - requests, and assign the same human initial default reviewer to the set. - - * Enhancing the k8s-ci-robot and merge criteria automation such that - features, api-changes, and non-critical-urgent pull requests are by default - merge blocked. - -## Branch health - -Keep an eye on approved cherry-pick PRs to make sure they aren't getting blocked -on presubmits that are failing across the whole branch. -Also periodically check the [testgrid](https://testgrid.k8s.io) -dashboard for your release branch to make sure the continuous jobs are healthy. - -Escalate to test owners, -[sig-testing](https://git.k8s.io/community/sig-testing), and -[test-infra](https://git.k8s.io/test-infra) as needed to diagnose -failures. - -## Release timing - -The general guideline is to leave about 2 to 4 weeks between patch releases on -a given minor release branch. -The lower bound is intended to avoid upgrade churn for cluster administrators, -and to allow patches time to undergo testing on `master` and on the release -branch. -The upper bound is intended to avoid making users wait too long for fixes that -are ready to go. - -The actual timing is up to the patch release team, who should take into -account input from cherry-pick PR authors and SIGs. -For example, some bugs may be serious enough, and have a clear enough fix, -to trigger a new patch release immediately. - -As a 1.X minor release is getting towards its final weeks pre-release, it -is beneficial to begin tracking that release team's meetings to get an -early idea of bugs for which the fix may need delays to the 1.X.1 first -patch release and ensure a smooth handoff from the release team into the -post-release patch support phase. - -You should attend the [Kubernetes Community Meeting](http://bit.ly/k8scommunity) -whenever possible to give updates on activity in your release branch -(bugs, tests, cherry-picks, etc.) and discuss release timing. - -When you have a plan for the next patch release, send an announcement -([example](https://groups.google.com/forum/#!topic/kubernetes-dev-announce/HGYsjOFtcdU)): - -* TO: [kubernetes-dev@googlegroups.com](https://groups.google.com/a/kubernetes.io/g/dev) -* *BCC*: [kubernetes-dev-announce@googlegroups.com](https://groups.google.com/forum/#!forum/kubernetes-dev-announce) - -several working days in advance, including a release notes preview. Also -update the [posted schedule](https://git.k8s.io/sig-release/releases/patch-releases.md). - -You generate the preview with the [relnotes](https://git.k8s.io/release/relnotes) -script, run against a local checkout of the release branch, and querying -GitHub via an API token associated with your GitHub identity. For example: - -```bash -~$ cd src/k8s.io/kubernetes -~/src/k8s.io/kubernetes$ git checkout release-1.13 -~/src/k8s.io/kubernetes$ ../release/relnotes --htmlize-md \ - --markdown-file=$HOME/tmp/relnotes.md \ - --html-file=$HOME/tmp/relnotes.html \ - --preview -``` - -## Release cut - -A few days before you plan to cut a patch release, put a temporary freeze on -cherry-pick requests by removing the `cherry-pick-approved` label from any PR that -isn't ready to merge. -Leave a comment explaining that a freeze is in effect until after the release. - -The freeze serves several purposes: - -1. It ensures a minimum time period during which problems with the accepted - patches may be discovered by people testing on `master`, or by continuous - test jobs on the release branch. - -1. It allows the continuous jobs to catch up with `HEAD` on the release branch. - Note that you cannot cut a patch release from any point other than `HEAD` - on the release branch; for example, you can't cut at the last green build. - -1. It allows slow test jobs like "serial", which has a period of many hours, - to run several times at `HEAD` to ensure they pass consistently. - -On the day before the planned release, run a mock build with `krel stage/release` -to make sure the tooling is ready as per the [Branch Manager -Handbook](/release-engineering/role-handbooks/branch-manager.md). -Also give the Google Debs/RPMs build staff notification that their -help will be needed the next day. Once you've done the mock build, you can -also do a mock release and notify, sending the release notification email -to yourself to visual confirm its content: - -```bash -~$ cd src/k8s.io/release -~$ export SENDGRID_API_KEY=<API_KEY> -~$ krel announce send --tag v1.13.2 --nomock -``` - -If the mock build and release goes well and CI tests show the branch -is healthy, run the real cut the next day by repeating the build -and release process with the `--nomock` argument in the commands. -Collaborate with the Google Debs/RPMs build staff to insure the -packages are successfully published. Then announce the release: - -```bash -~$ cd src/k8s.io/release -~$ export SENDGRID_API_KEY=<API_KEY> -~$ krel announce send --tag v1.13.2 --nomock -``` - -This will automatically send the formatted announcement to the -kubernetes-dev and kubernetes-announce mailing lists. - -After the release cut, reapply the `cherry-pick-approved` label to any PRs that -had it before the freeze, and go through the backlog of new cherry-picks. - -Update the [posted schedule](https://git.k8s.io/sig-release/releases/patch-releases.md) -to reflect the actual release date and any initial info on the next release's timing. - -### Hotfix release - -A normal patch release rolls up everything that merged into the release branch -since the last patch release. -Sometimes it's necessary to cut an emergency hotfix release that contains only -one specific change relative to the last past release. -For example, we may need to fix a severe bug quickly without taking on the added -risk of allowing other changes in. - -In this case, you would create a new, three-part branch of the form -`release-X.Y.Z`, which [branches from a tag](https://git.k8s.io/release/docs/branching.md#branching-from-a-tag) -called `vX.Y.Z`. -You would then use the normal cherry-pick PR flow, except that you target PRs at -the `release-X.Y.Z` branch instead of `release-X.Y`. -This lets you exclude the rest of the changes that already went into -`release-X.Y` since the `vX.Y.Z` tag was cut. - -Make sure you communicate clearly in your release plan announcement that some -changes on the release branch will be excluded, and will have to wait until the -next patch release. - -### Security release - -The Security Response Committee (SRC) will contact you via the [Security Release Team][security-release-team] -mailing list if security releases are needed on branches. - -In contrast to a normal release, you must not make any public announcements -or push tags or release artifacts to public repositories until the SRC tells you to. - -See the [Security Release Process](https://git.k8s.io/security/security-release-process.md) -doc for more details. - -[security-release-team]: https://groups.google.com/a/kubernetes.io/forum/#!forum/security-release-team - -## Release Commands Cheat Sheet - -For more information in how to run `krel stage/release` please check their -corresponding command line help (`-h`) outputs. - -| Action | Example | -| --- |--- | -| Make sure you have latest release tooling | ```cd ~/go/src/k8s.io/release && git pull``` | -| Configure branch | n/a | -| Mock build staging | `krel stage --type=official --branch=release-x.y` | -| Mock build staging success? | Visually confirm yes | -| Mock release | `krel release --type=official --branch=release.x.y --build-verison=…` (get the build-version from the Google Cloud console output of `krel stage`) | -| Mock release success? | Visually confirm yes | -| Mock email notify test | ```krel announce send --tag v1.13.3-beta.1``` | -| Check mail arrives, list has expected commits? | manual/visual | -| Official build staging | `krel stage --nomock --type=official --branch=release-x.y` | -| Official build staging success? | Visually confirm yes | -| Official release | `krel release --nomock --type=official --branch=release.x.y --build-verison=…` | -| Official email notify test | ```krel announce send --tag vX.Y.Z``` | -| Check mail arrives, list has expected commits? | manual/visual | -| Package creation (needs its own improved workflow; work starting on that) | Ping [Build Admins](https://git.k8s.io/sig-release/release-managers.md#build-admins) by name on Slack for package building | -| Package testing (needs improvement) | Visually validate [yum repo](https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64/repodata/primary.xml) and [apt repo](https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages) have entries for "1.13.3" in package NVRs (Name-Version-Release) | -| Official email notify | ```krel announce send --tag v1.13.3 --nomock``` | -| Check mail arrives | manual/visual check that [k-announce](https://groups.google.com/forum/#!forum/kubernetes-announce) and [k-dev](https://groups.google.com/a/kubernetes.io/g/dev) got mail OK | -| Completion | n/a | - -[release-managers]: /release-managers.md#release-managers +# Patch Release Team Playbook <!-- omit in toc --> + +As the name implies, Patch Release Team members are responsible for +managing patches against Kubernetes release branches and making the +1.X.Y patch releases during the support period after each 1.X minor +release. Kubernetes 1.X releases receive approximately one year +of support (for releases 1.19 and newer; release 1.18 and earlier received +9 months of support) in terms of patches for bugfixes and ongoing CI insuring +the branch's health and the ability to update from 1.X.Y to 1.(X+1).Y, +for the newest Y on each of those two branches. + +- [Content Notice](#content-notice) +- [Prerequisites for Patch Release Team members](#prerequisites-for-patch-release-team-members) + - [General Requirements](#general-requirements) +- [Getting started](#getting-started) +- [Cherry-pick requests](#cherry-pick-requests) +- [Patch branch merge workflow and status tracking](#patch-branch-merge-workflow-and-status-tracking) + - [Rationale](#rationale) + - [Spreadsheets](#spreadsheets) + - [Time Ordered Rows](#time-ordered-rows) + - [Coloring](#coloring) + - [Row Details](#row-details) + - [Future Work](#future-work) +- [Branch health](#branch-health) +- [Release timing](#release-timing) +- [Release cut](#release-cut) + - [Hotfix release](#hotfix-release) + - [Security release](#security-release) +- [Release Commands Cheat Sheet](#release-commands-cheat-sheet) + +## Content Notice + +The Patch Release Team and Branch Manager roles have been consolidated into a +single [Release Managers][release-managers] group. + +This means that several areas of this document may currently be out of date. +While we work to update these documents, please reach out to +[Release Managers][release-managers] directly for any clarifications on Release +Engineering processes. + +**This notice will be removed when the documentation is no longer under +construction.** + +--- + +While this playbook is intended to guide Patch Release Team members, +it largely consists of opinions and recommendations from former +patch release managers. Each Patch Release Team member is ultimately +responsible for carrying out their duties in the manner they deem +best for the project. The playbook then is more what you might +call "guidelines" than actual hard rules. Still each Patch Release +Team member should endeavor to keep this document up to date, improve +its content, and improve the overall process of patch management +for the project. + +## Prerequisites for Patch Release Team members + +### General Requirements + +**Before continuing on to the Patch Release specific requirements listed below, please review and work through the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md).** + + +## Getting started + +You're here because you've volunteered and have been selected to +contribute to patch release management for one or more branches. +You will need to make yourself known to the community and gain +access to multiple build and release tools: + +* Add your name and contact info, and if applicable a new section + for the current release, to the [Patch Releases landing + page](/releases/patch-release.md) so the community knows you're the + point of contact. If your work is specific to one particular + release, add your name to that release's release team in the patch + release manager row, for example [here for + 1.13](https://git.k8s.io/sig-release/releases/release-1.13/release_team.md). +* Peribolos is used for GitHub team membership. You need to be a member of the + [kubernetes-release-managers](https://github.com/orgs/kubernetes/teams/kubernetes-release-managers/members) + team to have write access to the main repository. Send a pull request + against the [sig-release teams configuration](https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml) + adding your userid to the kubernetes-release-managers member list. +* Ask the list owner(s) to add you to the + [release-managers-private](https://groups.google.com/a/kubernetes.io/forum/#!forum/release-managers-private) + via the owner contact form [here](https://groups.google.com/forum/#!contactowner/kubernetes-dev). +* Ask the list owner(s) to give you access to post to these mailing lists: + * [kubernetes-announce](https://groups.google.com/forum/#!forum/kubernetes-announce) via owner contact form [here](https://groups.google.com/forum/#!contactowner/kubernetes-announce) + * [kubernetes-dev-announce](https://groups.google.com/forum/#!forum/kubernetes-dev-announce) via owner contact form [here](https://groups.google.com/forum/#!contactowner/kubernetes-dev-announce) +* If applicable, sync up with the outgoing release branch manager + to take ownership of any lingering issues on the branch. +* Review the [Branch Manager + Handbook](/release-engineering/role-handbooks/branch-manager.md) as + much of the tooling and process used by the branch manager pre-release + relates to the post-release duties of Patch Release management. + Pay close attention to the + [Pre-requirements](/release-team/role-handbooks/branch-manager#pre-requirements), + [Safety Check](/release-team/role-handbooks/branch-manager#safety-check), and + [Build and Release](/release-team/role-handbooks/branch-manager#build-and-release) + sections. This outlines current requirements for running `krel stage/release` to do + builds. + +## Cherry-pick requests + +As a patch release manager, you are responsible for reviewing +[cherry-picks](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md) +on your release branch. + +**Finding outstanding cherry-picks** + +Use a GitHub search such as [`is:pr is:open +label:do-not-merge/cherry-pick-not-approved +base:release-1.13`](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+base%3Arelease-1.13+label%3Ado-not-merge%2Fcherry-pick-not-approved+) +to find all un-triaged cherry-pick PRs for a branch. + +As an example of the kind of load to expect, there were close to +300 cherry-pick PRs against the 1.10 milestone during its approximately +one year lifetime. + +For each cherry-pick request: + +1. **Decide if it meets the criteria for a cherry-pick** + + Make sure the PR author has supplied enough information to answer: + + * What bug does this fix? + (e.g. *enhancement X was already launched but doesn't work as intended*) + * What is the scope of users affected? + (e.g. *anyone who uses enhancement X*) + * How big is the impact on affected users? + (e.g. *pods using X fail to start*) + * How have you verified the fix works and is safe? + (e.g. *added new regression test*) + + Ask the PR author for details if these are missing and not obvious. + If you aren't sure what to do, escalate to the relevant SIGs. + + **Notes** + + * Version bumps (e.g. v0.5.1 -> v0.5.2) for dependencies with their own + release cycles (e.g. kube-dns, autoscaler, ingress controllers, etc.) + deserve special attention because it's hard to see what's changing. + In the past, such bumps have been a significant source of regressions in + the stable release branch. + + Check the release notes for the dependency to make sure there are no new + behaviors that could destabilize the release branch. + Ideally you should only accept version bumps whose release deltas contain + only changes that you would have approved individually, if they had been + part of the Kubernetes release cycle. + + However, this gets tricky when there are fixes you need for your branch + that are tied up with other changes. Ask the cherry-pick requester for + context on the other changes and use your best judgment. + + * Historically (up through at least 1.6), there have been exceptions + occasionally granted to the "no new enhancements" rule for + cherry-picks that are confined to plugins like cloud providers + (e.g. vSphere, Azure) and volumes (e.g. Portworx). + + However, we required that these exceptions be approved by the plugin + owners, who were asked to `/approve` through the normal `OWNERS` process + (despite it being a cherry-pick PR). + +1. **Make sure it has an appropriate release note** + + [Good release notes](https://github.com/kubernetes/community/issues/484) + are particularly important for patch releases because cluster admins expect + the release branch to remain stable and need to know exactly what changed. + Take care to ensure every cherry-pick that deserves a release note has one + *before you approve it* or else the change may fall through the cracks at + release cut time. + + Also make sure the release note expresses the change from a user's + perspective, not from the perspective of someone contributing to Kubernetes. + Think about what the user would experience when hitting the problem, + not the implementation details of the root cause. + + For example: + + User perspective (good) | Code perspective (bad) + ----------------------- | ---------------------- + *"Fix kubelet crash when Node detaches old volumes after restart."* | *"Call initStuff() before startLoop() to prevent race condition."* + + Ask the PR author for context if it's not clear to you what the release note + should say. + + Lastly, make sure the release note is located where the + [relnotes](https://git.k8s.io/release/relnotes) script will + find it. You'll know it was not in such a place if the PR is + labelled as `do-not-merge/release-note-label-needed`. This can be + resolved by either of: + + * If the cherry-pick PR comes from a branch called `automated-cherry-pick-of-*`, + then the release notes are taken from each parent PR (possibly more than one) + and the cherry-pick PR itself is ignored. + + Make sure the cherry-pick PR and parent PRs have the `release-note` label. + + * Otherwise, the release note is taken from the cherry-pick PR. + + Make sure the cherry-pick PR has the `release-note` label. + + **Notes** + + * Almost all changes that are important enough to cherry-pick are important + enough that we should inform users about them when they upgrade. + + Rare exceptions include test-only changes or follow-ups to a previous + cherry-pick whose release note already explains all the intended changes. + +1. **Approve for Cherry-pick** + + PRs on release branches follow a different review process than those on the + `master` branch. Patch Release Team members review every PR on the release branch, + but the focus is just on ensuring the above criteria are met. + The code itself was already reviewed, assuming it's copied from `master`, and + should have `/lgtm` and `/approve` from the relevant reviewers and + approvers in the code's associated OWNERS file. + + * For an *automated cherry-pick* (created with `hack/cherry_pick_pull.sh`), + first make sure the parent PR has merged into master. + + If the parent PR hasn't merged yet, leave a comment explaining that you + will wait for it before approving the cherry-pick. + We don't want the release branch to get out of sync if the parent PR changes. + + If the parent PR has merged, comment `/lgtm` to apply the `lgtm` label and + notify the author that you've reviewed the cherry-pick request. + + For cherry-picks that are clearly justified and low risk in your judgment, + you can directly apply the `approved` label as long as the parent PR was + approved and merged into `master`. + + If you lack sufficient context or have any doubts, leave a comment + explaining that the PR needs to get an `/approve` from relevant OWNERS + to ensure that the change is appropriate for a cherry-pick. + + * For a *manual patch or cherry-pick* (not a direct copy of a PR already merged + on `master`), leave a comment explaining that it needs to get + LGTM+Approval through the usual review process. + + You don't need to do anything special to fall back to this process. + The bot will suggest reviewers and approvers just like on `master`. + + Compared to non-cherry-pick PR's, a cherry-pick PR has one + additional merge criteria: The Patch Release Team members are + entrusted with applying the `cherry-pick-approved` label. This + is done directly through the GitHub review feature by approving the PR. The + [prow `cherrypickapproved` plugin](https://github.com/kubernetes/test-infra/tree/ce9ca27/prow/plugins/cherrypickapproved) + will take care of applying the label if the GitHub user + [is configured as privileged cherry-pick approver](https://github.com/kubernetes/test-infra/blob/ce9ca27/config/prow/plugins.yaml#L1104-L1115). + In addition, prow will also remove the + `do-not-merge/cherry-pick-not-approved` label. + + Note that the PR will not actually merge until it meets all usual criteria + enforced by the merge bot (`lgtm` + `approved` labels, required presubmits, + etc.) and makes its way through the submit queue. + + Tide has pools per active branch, so release branch cherry-pick + PRs pending merge will be visible as rows distinct from the master + branch in the [Tide Status](https://prow.k8s.io/tide). + +## Patch branch merge workflow and status tracking + +### Rationale + +At any moment we typically have between a half dozen and a dozen +cherry pick PRs pending on each branch. Many of these are in a +"cluster", picking the same change from master back to the various +release branches. These can be found per branch by a query such as: +[is:open is:pr base:release-1.16 +label:do-not-merge/cherry-pick-not-approved](https://github.com/kubernetes/kubernetes/pulls?utf8=✓&q=is%3Aopen+is%3Apr+base%3Arelease-1.16+label%3Ado-not-merge%2Fcherry-pick-not-approved+). + +But these GitHub queries are point-in-time and do not show what's +changed versus a prior run of the query. Intermediate state must +be externally recorded and updated for consistency. + +### Spreadsheets + +We maintain this evolving state in a set of spreadsheets, one +spreadsheet per release branch. These are privately shared amongst +the patch release team because they contain information on inbound +PRs that relate to security patches and target release date information +that may be embargoed as per the Kubernetes security process (link). +The use of the Google Docs platform means the team can simultaneously +edit the state while also retaining a version history of changes +for the team's future reference. + +![Image of a patch release team spreadsheet example](patch-release-team-spreadsheet-example.png) + +#### Time Ordered Rows + +The spreadsheets run in reverse chronological order with the newest +patch release's activity at the top. + +Sections are made per patch release. + +A row is entered in a section per cherry pick pending ahead of that +patch release. Within each of these sections, cherry picks are +listed in reverse PR number order, newest on top. To add a notation +for a newly inbound cherry pick, add a row above the current newest +row. + +Using a consistent schema for rows and columns means the results +of triaging one cherry pick, when it is part of a cluster of cherry +picks on multiple branches pulling the same change from master, can +be copy/pasted between spreadsheets. This on average saves a lot +of time and effort. While we have settled into a roughly monthly +release cadence and release updates for all branches simultaneously +most of the time, on occasion the branches do diverge both on release +timing and on state for a cluster of cherry picks of the same parent +PR, and this divergent state needs tracked distinctly per branch. + +The result is roughly a running log of our activities with the +newest items on top. + +#### Coloring + +Rows are colored with red/yellow/green scheme to focus activity on +specific cherry picks: + + * red - a cherry pick that has been closed + + * yellow - a cherry pick that is open and has no 'cherry-pick-approved' label + + * green - a cherry pick that has the 'cherry-pick-approved' label + +Cells are colored with bright yellow or red to highlight special action +required, eg: + + * yellow - Eg: decision needed, is in Tide merge pool, is a CVE or security related + + * red - Eg: PR is held + +#### Row Details + +Each cherry pick row has a set of associated columns: + + * ***Issue*** - link to GitHub issue, or "none" + + * ***PR*** - link to the cherry pick PR + + * ***Kind*** - eg: "bug", "cleanup", "feature", etc. from the PR label + + * May be comma separated list depending on PR labels + + * If the bug is determined to be a CVE this should also be noted, eg: + "bug CVE" and highlighted bright yellow. This serves to help remind + that these are important to not discuss publicly and may have + additional external context not yet publicly in the GitHub PR. + + * ***Submitter*** - human contact for the cherry pick PR + + * ***SIG*** - comma separated list of SIGs labelled on the cherry pick PR + + * ***Notes*** - short, human readable summary of the cherry pick PR, eg: + + * "race in the ECR credentials provider kubernetes -> kubelet panic" + + * "NPE in apiserver(?) and/or cli{?)" + + * "upgrade release-1.13 to go1.11.13" + + * In general our community does not provide the best of PR summary lines + and it can take considerable time for each patch release team member to + get to an understanding of the PR content. Once one of us has done + that, storing it helps the rest of us as we collaboratively assess the + merit of the cherry pick. + + * ***Disposition*** - "to merge?", "to close?", "to merge", "merging", "merged", "hold", "closed" + + * current short form thinking of the team regarding where the cherry pick is + + * "merging": when applying the ```cherry-pick-approved``` label in GitHub, update + the disposition to "merging" and highlight it bright yellow. These PRs + will fall off the standard query of ```cherry-pick-not-approved``` PRs, + but may not actually merge for example due to a test failure or a Tide + hiccup, yet they need tracked until they have actually fully merged. + Once merged the cell can move back to a basic green. + + * ***TODO*** - multi-line additional details on status and actions, where each + line may be, eg: + + * "needs lgtm" + + * "needs approve" + + * "needs lgtm/approve" + + * "CVE-2018-1002105" + + * For many of the cherry picks, there is a corresponding cherry pick on + other release branches which should be noted, eg: + + ``` + CP in other releases: + 1.13 https://github.com/kubernetes/kubernetes/pull/82503 + 1.14 https://github.com/kubernetes/kubernetes/pull/82502 + 1.15 https://github.com/kubernetes/kubernetes/pull/82384 + ``` + + Filling this out means that once an issue is triaged for one branch, + it's just a copy/paste of that row into the spreadsheet for the other + branches. + + * It can be useful to note your name and a date next to a line of text + here, especially early during the triage where we're trying to come to + a consensus on the merit of the cherry pick. + +A number of the fields here come from the parent PR automatically +when the cherry pick automation is used (this should be the norm +for most PRs). The parent PRs may have poor labelling resulting +in incomplete labels on the cherry pick. Attempt to clean then up +if possible or comment asking for owners to better disposition them. +When recording unsure status from labels add a "?" in the spreadsheet +cell to indicate the uncertainty. + +### Future Work + + * It would be awesome to replace this manual stateful review workflow with a + tool. Such a tool appears to need invented. + + * Enhancing the cherry pick automation to accept a list of branches to + target, add cross-reference mentions between the clustered GitHub pull + requests, and assign the same human initial default reviewer to the set. + + * Enhancing the k8s-ci-robot and merge criteria automation such that + features, api-changes, and non-critical-urgent pull requests are by default + merge blocked. + +## Branch health + +Keep an eye on approved cherry-pick PRs to make sure they aren't getting blocked +on presubmits that are failing across the whole branch. +Also periodically check the [testgrid](https://testgrid.k8s.io) +dashboard for your release branch to make sure the continuous jobs are healthy. + +Escalate to test owners, +[sig-testing](https://git.k8s.io/community/sig-testing), and +[test-infra](https://git.k8s.io/test-infra) as needed to diagnose +failures. + +## Release timing + +The general guideline is to leave about 2 to 4 weeks between patch releases on +a given minor release branch. +The lower bound is intended to avoid upgrade churn for cluster administrators, +and to allow patches time to undergo testing on `master` and on the release +branch. +The upper bound is intended to avoid making users wait too long for fixes that +are ready to go. + +The actual timing is up to the patch release team, who should take into +account input from cherry-pick PR authors and SIGs. +For example, some bugs may be serious enough, and have a clear enough fix, +to trigger a new patch release immediately. + +As a 1.X minor release is getting towards its final weeks pre-release, it +is beneficial to begin tracking that release team's meetings to get an +early idea of bugs for which the fix may need delays to the 1.X.1 first +patch release and ensure a smooth handoff from the release team into the +post-release patch support phase. + +You should attend the [Kubernetes Community Meeting](http://bit.ly/k8scommunity) +whenever possible to give updates on activity in your release branch +(bugs, tests, cherry-picks, etc.) and discuss release timing. + +When you have a plan for the next patch release, send an announcement +([example](https://groups.google.com/forum/#!topic/kubernetes-dev-announce/HGYsjOFtcdU)): + +* TO: [kubernetes-dev@googlegroups.com](https://groups.google.com/a/kubernetes.io/g/dev) +* *BCC*: [kubernetes-dev-announce@googlegroups.com](https://groups.google.com/forum/#!forum/kubernetes-dev-announce) + +several working days in advance, including a release notes preview. Also +update the [posted schedule](https://git.k8s.io/sig-release/releases/patch-releases.md). + +You generate the preview with the [relnotes](https://git.k8s.io/release/relnotes) +script, run against a local checkout of the release branch, and querying +GitHub via an API token associated with your GitHub identity. For example: + +```bash +~$ cd src/k8s.io/kubernetes +~/src/k8s.io/kubernetes$ git checkout release-1.13 +~/src/k8s.io/kubernetes$ ../release/relnotes --htmlize-md \ + --markdown-file=$HOME/tmp/relnotes.md \ + --html-file=$HOME/tmp/relnotes.html \ + --preview +``` + +## Release cut + +A few days before you plan to cut a patch release, put a temporary freeze on +cherry-pick requests by removing the `cherry-pick-approved` label from any PR that +isn't ready to merge. +Leave a comment explaining that a freeze is in effect until after the release. + +The freeze serves several purposes: + +1. It ensures a minimum time period during which problems with the accepted + patches may be discovered by people testing on `master`, or by continuous + test jobs on the release branch. + +1. It allows the continuous jobs to catch up with `HEAD` on the release branch. + Note that you cannot cut a patch release from any point other than `HEAD` + on the release branch; for example, you can't cut at the last green build. + +1. It allows slow test jobs like "serial", which has a period of many hours, + to run several times at `HEAD` to ensure they pass consistently. + +On the day before the planned release, run a mock build with `krel stage/release` +to make sure the tooling is ready as per the [Branch Manager +Handbook](/release-engineering/role-handbooks/branch-manager.md). +Also give the Google Debs/RPMs build staff notification that their +help will be needed the next day. Once you've done the mock build, you can +also do a mock release and notify, sending the release notification email +to yourself to visual confirm its content: + +```bash +~$ cd src/k8s.io/release +~$ export SENDGRID_API_KEY=<API_KEY> +~$ krel announce send --tag v1.13.2 --nomock +``` + +If the mock build and release goes well and CI tests show the branch +is healthy, run the real cut the next day by repeating the build +and release process with the `--nomock` argument in the commands. +Collaborate with the Google Debs/RPMs build staff to insure the +packages are successfully published. Then announce the release: + +```bash +~$ cd src/k8s.io/release +~$ export SENDGRID_API_KEY=<API_KEY> +~$ krel announce send --tag v1.13.2 --nomock +``` + +This will automatically send the formatted announcement to the +kubernetes-dev and kubernetes-announce mailing lists. + +After the release cut, reapply the `cherry-pick-approved` label to any PRs that +had it before the freeze, and go through the backlog of new cherry-picks. + +Update the [posted schedule](https://git.k8s.io/sig-release/releases/patch-releases.md) +to reflect the actual release date and any initial info on the next release's timing. + +### Hotfix release + +A normal patch release rolls up everything that merged into the release branch +since the last patch release. +Sometimes it's necessary to cut an emergency hotfix release that contains only +one specific change relative to the last past release. +For example, we may need to fix a severe bug quickly without taking on the added +risk of allowing other changes in. + +In this case, you would create a new, three-part branch of the form +`release-X.Y.Z`, which [branches from a tag](https://git.k8s.io/release/docs/branching.md#branching-from-a-tag) +called `vX.Y.Z`. +You would then use the normal cherry-pick PR flow, except that you target PRs at +the `release-X.Y.Z` branch instead of `release-X.Y`. +This lets you exclude the rest of the changes that already went into +`release-X.Y` since the `vX.Y.Z` tag was cut. + +Make sure you communicate clearly in your release plan announcement that some +changes on the release branch will be excluded, and will have to wait until the +next patch release. + +### Security release + +The Security Response Committee (SRC) will contact you via the [Security Release Team][security-release-team] +mailing list if security releases are needed on branches. + +In contrast to a normal release, you must not make any public announcements +or push tags or release artifacts to public repositories until the SRC tells you to. + +See the [Security Release Process](https://git.k8s.io/security/security-release-process.md) +doc for more details. + +[security-release-team]: https://groups.google.com/a/kubernetes.io/forum/#!forum/security-release-team + +## Release Commands Cheat Sheet + +For more information in how to run `krel stage/release` please check their +corresponding command line help (`-h`) outputs. + +| Action | Example | +| --- |--- | +| Make sure you have latest release tooling | ```cd ~/go/src/k8s.io/release && git pull``` | +| Configure branch | n/a | +| Mock build staging | `krel stage --type=official --branch=release-x.y` | +| Mock build staging success? | Visually confirm yes | +| Mock release | `krel release --type=official --branch=release.x.y --build-verison=…` (get the build-version from the Google Cloud console output of `krel stage`) | +| Mock release success? | Visually confirm yes | +| Mock email notify test | ```krel announce send --tag v1.13.3-beta.1``` | +| Check mail arrives, list has expected commits? | manual/visual | +| Official build staging | `krel stage --nomock --type=official --branch=release-x.y` | +| Official build staging success? | Visually confirm yes | +| Official release | `krel release --nomock --type=official --branch=release.x.y --build-verison=…` | +| Official email notify test | ```krel announce send --tag vX.Y.Z``` | +| Check mail arrives, list has expected commits? | manual/visual | +| Package creation (needs its own improved workflow; work starting on that) | Ping [Build Admins](https://git.k8s.io/sig-release/release-managers.md#build-admins) by name on Slack for package building | +| Package testing (needs improvement) | Visually validate [yum repo](https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64/repodata/primary.xml) and [apt repo](https://packages.cloud.google.com/apt/dists/kubernetes-xenial/main/binary-amd64/Packages) have entries for "1.13.3" in package NVRs (Name-Version-Release) | +| Official email notify | ```krel announce send --tag v1.13.3 --nomock``` | +| Check mail arrives | manual/visual check that [k-announce](https://groups.google.com/forum/#!forum/kubernetes-announce) and [k-dev](https://groups.google.com/a/kubernetes.io/g/dev) got mail OK | +| Completion | n/a | + +[release-managers]: /release-managers.md#release-managers diff --git a/release-engineering/versioning.md b/release-engineering/versioning.md index e61fc8a9407..285e1ceebf1 100644 --- a/release-engineering/versioning.md +++ b/release-engineering/versioning.md @@ -1,126 +1,126 @@ -# Kubernetes Release Versioning - -Reference: [Semantic Versioning](http://semver.org) - -Legend: - -- **X.Y.Z** refers to the version (git tag) of Kubernetes that is released. - This versions all components: apiserver, kubelet, kubectl, etc. (**X** is the - major version, **Y** is the minor version, and **Z** is the patch version.) - -## Release versioning - -### Minor version scheme and timeline - -- X.Y.0-{alpha,beta}.W, W >= 0 (Branch: master) - - Alpha and beta releases are created roughly every two weeks directly from - the master branch. - - Depending on the release schedule progress, the release team decides when to - move from alpha.W to beta releases, which then start again at beta.0. - - No cherrypick releases. If there is a critical bugfix, a new release from - master can be created ahead of schedule. -- X.Y.Z-rc.W (Branch: release-X.Y) - - When master is feature-complete for X.Y, we will cut the release-X.Y - branch 2 weeks prior to the desired X.Y.0 date and cherrypick only PRs essential - to X.Y. - - This cut will be marked as X.Y.0-rc.0, and master will be revved to X.Y+1.0-alpha.0. - - If we're not satisfied with X.Y.0-rc.0, we'll release other rc releases, - (X.Y.0-rc.W | W > 0) as necessary. -- X.Y.0 (Branch: release-X.Y) - - Final release, cut from the release-X.Y branch cut two weeks prior. - - X.Y.1-rc.0 will be tagged at the same commit on the same branch. - - X.Y.0 occur 3 to 4 months after X.(Y-1).0. -- X.Y.Z, Z > 0 (Branch: release-X.Y) - - [Patch releases](#patch-releases) are released as we cherrypick commits into - the release-X.Y branch, (which is at X.Y.Z-beta.W,) as needed. - - X.Y.Z is cut straight from the release-X.Y branch, and X.Y.Z+1-beta.0 is - tagged on the followup commit that updates pkg/version/base.go with the beta - version. -- X.Y.Z, Z > 0 (Branch: release-X.Y.Z) - - These are special and different in that the X.Y.Z tag is branched to isolate - the emergency/critical fix from all other changes that have landed on the - release branch since the previous tag - - Cut release-X.Y.Z branch to hold the isolated patch release - - Tag release-X.Y.Z branch + fixes with X.Y.(Z+1) - - Branched [patch releases](#patch-releases) are rarely needed but used for - emergency/critical fixes to the latest release - - See [#19849](https://issues.k8s.io/19849) tracking the work that is needed - for this kind of release to be possible. - -### Major version timeline - -There is no mandated timeline for major versions and there are currently no criteria -for shipping 2.0.0. We haven't so far applied a rigorous interpretation of semantic -versioning with respect to incompatible changes of any kind (e.g., component flag changes). -We previously discussed releasing 2.0.0 when removing the monolithic `v1` API -group/version, but there are no current plans to do so. - -### CI and dev version scheme - -- Continuous integration versions also exist, and are versioned off of alpha and - beta releases. X.Y.Z-alpha.W.C+aaaa is C commits after X.Y.Z-alpha.W, with an - additional +aaaa build suffix added; X.Y.Z-beta.W.C+bbbb is C commits after - X.Y.Z-beta.W, with an additional +bbbb build suffix added. Furthermore, builds - that are built off of a dirty build tree, (during development, with things in - the tree that are not checked it,) it will be appended with -dirty. - -### Supported releases and component skew - -We expect users to stay reasonably up-to-date with the versions of Kubernetes -they use in production, but understand that it may take time to upgrade, -especially for production-critical components. - -We expect users to be running approximately the latest patch release of a given -minor release; we often include critical bug fixes in -[patch releases](#patch-releases), and so encourage users to upgrade as soon as -possible. - -Different components are expected to be compatible across different amounts of -skew, all relative to the master version. Nodes may lag masters components by -up to two minor versions but should be at a version no newer than the master; a -client should be skewed no more than one minor version from the master, but may -lead the master by up to one minor version. For example, a v1.3 master should -work with v1.1, v1.2, and v1.3 nodes, and should work with v1.2, v1.3, and v1.4 -clients. - -Furthermore, we expect to "support" three minor releases at a time. "Support" -means we expect users to be running that version in production, though we may -not port fixes back before the latest minor version. For example, when v1.3 -comes out, v1.0 will no longer be supported: basically, that means that the -reasonable response to the question "my v1.0 cluster isn't working," is, "you -should probably upgrade it, (and probably should have some time ago)". With -minor releases happening approximately every three months, that means a minor -release is supported for approximately nine months. - -## Patch releases - -Patch releases are intended for critical bug fixes to the latest minor version, -such as addressing security vulnerabilities, fixes to problems affecting a large -number of users, severe problems with no workaround, and blockers for products -based on Kubernetes. - -They should not contain miscellaneous feature additions or improvements, and -especially no incompatibilities should be introduced between patch versions of -the same minor version (or even major version). - -Dependencies, such as Docker or Etcd, should also not be changed unless -absolutely necessary, and also just to fix critical bugs (so, at most patch -version changes, not new major nor minor versions). - -## Upgrades - -- Users can upgrade from any 1.x release to any other 1.x release as a - rolling upgrade across their cluster. (Rolling upgrade means being able to - upgrade the master first, then one node at a time. See [#4855](https://issues.k8s.io/4855) for details.) - - However, we do not recommend upgrading more than two minor releases at a - time (see [Supported releases and component skew](#Supported-releases-and-component-skew)), and do not recommend - running non-latest patch releases of a given minor release. -- No hard breaking changes over version boundaries. - - For example, if a user is at 1.x, we may require them to upgrade to - 1.x+y before upgrading to 2.x. In others words, an upgrade across - major versions (e.g. 1.x to 2.x) should effectively be a no-op and as - graceful as an upgrade from 1.x to 1.x+1. But you can require someone - to go from 1.x to 1.x+y before they go to 2.x. - -There is a separate question of how to track the capabilities of a kubelet to -facilitate rolling upgrades. That is not addressed here. +# Kubernetes Release Versioning + +Reference: [Semantic Versioning](http://semver.org) + +Legend: + +- **X.Y.Z** refers to the version (git tag) of Kubernetes that is released. + This versions all components: apiserver, kubelet, kubectl, etc. (**X** is the + major version, **Y** is the minor version, and **Z** is the patch version.) + +## Release versioning + +### Minor version scheme and timeline + +- X.Y.0-{alpha,beta}.W, W >= 0 (Branch: master) + - Alpha and beta releases are created roughly every two weeks directly from + the master branch. + - Depending on the release schedule progress, the release team decides when to + move from alpha.W to beta releases, which then start again at beta.0. + - No cherrypick releases. If there is a critical bugfix, a new release from + master can be created ahead of schedule. +- X.Y.Z-rc.W (Branch: release-X.Y) + - When master is feature-complete for X.Y, we will cut the release-X.Y + branch 2 weeks prior to the desired X.Y.0 date and cherrypick only PRs essential + to X.Y. + - This cut will be marked as X.Y.0-rc.0, and master will be revved to X.Y+1.0-alpha.0. + - If we're not satisfied with X.Y.0-rc.0, we'll release other rc releases, + (X.Y.0-rc.W | W > 0) as necessary. +- X.Y.0 (Branch: release-X.Y) + - Final release, cut from the release-X.Y branch cut two weeks prior. + - X.Y.1-rc.0 will be tagged at the same commit on the same branch. + - X.Y.0 occur 3 to 4 months after X.(Y-1).0. +- X.Y.Z, Z > 0 (Branch: release-X.Y) + - [Patch releases](#patch-releases) are released as we cherrypick commits into + the release-X.Y branch, (which is at X.Y.Z-beta.W,) as needed. + - X.Y.Z is cut straight from the release-X.Y branch, and X.Y.Z+1-beta.0 is + tagged on the followup commit that updates pkg/version/base.go with the beta + version. +- X.Y.Z, Z > 0 (Branch: release-X.Y.Z) + - These are special and different in that the X.Y.Z tag is branched to isolate + the emergency/critical fix from all other changes that have landed on the + release branch since the previous tag + - Cut release-X.Y.Z branch to hold the isolated patch release + - Tag release-X.Y.Z branch + fixes with X.Y.(Z+1) + - Branched [patch releases](#patch-releases) are rarely needed but used for + emergency/critical fixes to the latest release + - See [#19849](https://issues.k8s.io/19849) tracking the work that is needed + for this kind of release to be possible. + +### Major version timeline + +There is no mandated timeline for major versions and there are currently no criteria +for shipping 2.0.0. We haven't so far applied a rigorous interpretation of semantic +versioning with respect to incompatible changes of any kind (e.g., component flag changes). +We previously discussed releasing 2.0.0 when removing the monolithic `v1` API +group/version, but there are no current plans to do so. + +### CI and dev version scheme + +- Continuous integration versions also exist, and are versioned off of alpha and + beta releases. X.Y.Z-alpha.W.C+aaaa is C commits after X.Y.Z-alpha.W, with an + additional +aaaa build suffix added; X.Y.Z-beta.W.C+bbbb is C commits after + X.Y.Z-beta.W, with an additional +bbbb build suffix added. Furthermore, builds + that are built off of a dirty build tree, (during development, with things in + the tree that are not checked it,) it will be appended with -dirty. + +### Supported releases and component skew + +We expect users to stay reasonably up-to-date with the versions of Kubernetes +they use in production, but understand that it may take time to upgrade, +especially for production-critical components. + +We expect users to be running approximately the latest patch release of a given +minor release; we often include critical bug fixes in +[patch releases](#patch-releases), and so encourage users to upgrade as soon as +possible. + +Different components are expected to be compatible across different amounts of +skew, all relative to the master version. Nodes may lag masters components by +up to two minor versions but should be at a version no newer than the master; a +client should be skewed no more than one minor version from the master, but may +lead the master by up to one minor version. For example, a v1.3 master should +work with v1.1, v1.2, and v1.3 nodes, and should work with v1.2, v1.3, and v1.4 +clients. + +Furthermore, we expect to "support" three minor releases at a time. "Support" +means we expect users to be running that version in production, though we may +not port fixes back before the latest minor version. For example, when v1.3 +comes out, v1.0 will no longer be supported: basically, that means that the +reasonable response to the question "my v1.0 cluster isn't working," is, "you +should probably upgrade it, (and probably should have some time ago)". With +minor releases happening approximately every three months, that means a minor +release is supported for approximately nine months. + +## Patch releases + +Patch releases are intended for critical bug fixes to the latest minor version, +such as addressing security vulnerabilities, fixes to problems affecting a large +number of users, severe problems with no workaround, and blockers for products +based on Kubernetes. + +They should not contain miscellaneous feature additions or improvements, and +especially no incompatibilities should be introduced between patch versions of +the same minor version (or even major version). + +Dependencies, such as Docker or Etcd, should also not be changed unless +absolutely necessary, and also just to fix critical bugs (so, at most patch +version changes, not new major nor minor versions). + +## Upgrades + +- Users can upgrade from any 1.x release to any other 1.x release as a + rolling upgrade across their cluster. (Rolling upgrade means being able to + upgrade the master first, then one node at a time. See [#4855](https://issues.k8s.io/4855) for details.) + - However, we do not recommend upgrading more than two minor releases at a + time (see [Supported releases and component skew](#Supported-releases-and-component-skew)), and do not recommend + running non-latest patch releases of a given minor release. +- No hard breaking changes over version boundaries. + - For example, if a user is at 1.x, we may require them to upgrade to + 1.x+y before upgrading to 2.x. In others words, an upgrade across + major versions (e.g. 1.x to 2.x) should effectively be a no-op and as + graceful as an upgrade from 1.x to 1.x+1. But you can require someone + to go from 1.x to 1.x+y before they go to 2.x. + +There is a separate question of how to track the capabilities of a kubelet to +facilitate rolling upgrades. That is not addressed here. diff --git a/release-team/OWNERS b/release-team/OWNERS index 996df73266f..2a964db910d 100644 --- a/release-team/OWNERS +++ b/release-team/OWNERS @@ -1,11 +1,11 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -approvers: - - release-team-approvers - - release-team-lead -reviewers: - - release-team-approvers - - release-team-lead - - release-team-lead-shadows -labels: - - area/release-team +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - release-team-approvers + - release-team-lead +reviewers: + - release-team-approvers + - release-team-lead + - release-team-lead-shadows +labels: + - area/release-team diff --git a/release-team/README.md b/release-team/README.md index 7ae07fad749..1e47a16ff28 100644 --- a/release-team/README.md +++ b/release-team/README.md @@ -1,327 +1,327 @@ -# Kubernetes Release Team - -- [Overview][overview] -- [Specific responsibilities][specific-responsibilities] -- [Kubernetes Release Team roles][kubernetes-release-team-roles] -- [Other activities of the Release Team][other-activities-of-the-release-team] -- [Release Team Selection][release-team-selection] -- [Milestone Maintainers][milestone-maintainers] -- [Filing exceptions][filing-exceptions] -- [Visual Release Path](#visual-release-path) - -## Overview - -The Kubernetes Release Team is embedded within SIG Release and is responsible for the day to day work required to -successfully release while the SIG at large is focused on the continued improvement of the release process. Historically -the Release Manager (previously Release Czar) -and later Release Team have assumed the following responsibilities -- Authority to build and publish releases at the published release date under the auspices of the CNCF -- Authority to accept or reject cherrypick merge requests to the release branch -- Authority to accept or reject PRs to the kubernetes/kubernetes master branch during code freeze period -- Changing the release timeline as needed if keeping it would materially impact the stability or quality of the release - -These responsibilities will continue to be discharged by SIG release through the Release Team. This charter grants SIG -Release the following additional responsibilities: -- Authority to revert code changes which imperil the ability to produce a release by the communicated date or otherwise - negatively impact the quality of the release (e.g. insufficient testing, lack of documentation) -- Authority to guard code changes behind a feature flag which do not meet criteria for release -- Authority to close the submit queue to any changes which do not target the release as part of enforcing the code freeze - period -which shall be the discharged by the Release Team. - -## Specific responsibilities - -- Generation of release notes -- Communicate enhancement burndown progress during a release cycle -- Manage repositories and tooling dedicated to releasing Kubernetes which at time of chartering these include: - - kubernetes/release - - deb/rpm packaging and hosting - - Container image hosting -- Set and enforce criteria for repository inclusion in a Kubernetes release - - Governance - - Stabilization - - Test coverage -- Set and enforce criteria for code inclusion in a Kubernetes release - - Feature flags - - Documentation - - Test coverage - - Dashboards - - Status reports -- Define template and format for communication of release status - - Ongoing status of the release process - - Announcement of alpha, beta, release candidate availability - - Announcement of release availability -- Deriving signal from the following sources - - [test grid](https://testgrid.k8s.io/) - - GitHub [flake issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3Akind%2Fflake) - - GitHub [bug issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3Akind%2Fbug) -- Identifying owning individuals and SIGs for blocking issues -- Working with SIGs and individuals to drive resolution of open issues -- Building summary of release criteria and status and publish to the community on a regular basis throughout the release cycle -- Manage the contents of `kubernetes/enhancements` -- Define burndown process - - use of GitHub labels to signal release blocking status - - use of GitHub milestones to communicate release blocking issues - - use of flake GitHub issue count or CI signal as a release blocking status -- Coordinate the resolution of release blocking issues - -## Kubernetes Release Team roles - -As documented in the [Kubernetes Versioning doc](../release-engineering/versioning.md), -there are 3 types of Kubernetes releases: -- Major (x.0.0) -- Minor (x.x.0) -- Patch (x.x.x) - -![release-team](release-team.svg "Release Team Diagram") - -| Role | Handbook | -|-------------------|--------------------------------------------------------------------| -| Release Team Lead | [Lead Handbook](role-handbooks/release-team-lead/README.md) | -| Enhancements | [Enhancements Handbook](role-handbooks/enhancements/README.md) | -| Release Signal | [Release Signal Handbook](role-handbooks/release-signal/README.md) | -| Docs | [Docs Handbook](role-handbooks/docs/README.md) | -| Communications | [Communications Handbook](role-handbooks/communications/README.md) | - - -#### Retired Release Team roles - -- Patch Release Manager: moved to a role of [Release Managers](https://git.k8s.io/website/content/en/releases/release-managers.md), which operates under the Release Engineering subproject. -- Branch Manager: moved to a role of [Release Managers](https://git.k8s.io/website/content/en/releases/release-managers.md), which operates under the Release Engineering subproject. -- Test Infra: deprecated at the end of Kubernetes 1.15. Duties are now distributed to the [Branch Manager](/release-engineering/role-handbooks/branch-manager.md) and [Test Infra On-call (SIG Testing)](https://go.k8s.io/oncall) (#testing-ops and #sig-testing on Slack). - -### Release Team Shadow -Any Release Team member may select one or more mentees to shadow the release process in order to help fulfill future -Release Team staffing requirements and continue to grow the Kubernetes community in general. Potential mentees should -be prepared to devote a significant amount of time to shadowing their mentor during the release cycle. Successful Release Team Shadows -should be prepared to assume a lead role in a subsequent release. - -### Individual Contributors -Release responsibilities of individual contributors to the Kubernetes project are captured below - -#### During a patch release -If you have a patch that needs to be ported back to a previous release (meaning it is a critical bug/security fix), once it is merged to the Kubernetes `master` branch: -- Follow the [cherry-pick instructions to open a cherry-pick PR.](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md) -- The Patch Release Manager will then review the PR and if it is ok for cherry-picking, will apply a `cherrypick-approved` label to it. - -#### During a major/minor release - -##### Propose and track enhancement -If you are developing an enhancement for Kubernetes, make sure that an issue is open in the [enhancements repository](https://github.com/kubernetes/enhancements/issues). If you are targeting a particular release, make sure the issue is marked with the corresponding release milestone. - -Ensure that all code for your enhancement is written, tested, reviewed, and merged before code freeze date for the target release. - -During the code freeze period, fix any bugs discovered with your enhancement, and write enhancement documentation. - -##### Write enhancement documentation - -1. Make sure your enhancement for the upcoming release is on the github release tracking board (e.g. [link](https://github.com/orgs/kubernetes/projects/98) for 1.26). -2. Create a PR with documentation for your enhancement in the [documents repo](https://github.com/kubernetes/kubernetes.github.io). - - **Your PR should target the release branch (e.g. [release-1.6](https://github.com/kubernetes/kubernetes.github.io/tree/release-1.6)), not the [`master`](https://github.com/kubernetes/kubernetes.github.io/tree/master) branch.** - - Any changes to the master branch become live on https://kubernetes.io/docs/ as soon as they are merged, and for releases we do not want documentation to go live until the release is cut. -3. Add link to your docs PR in the release tracking board, and notify the docs lead for the release ( Release team details for each release can be found under the [releases](../releases) directory. E.g. [Docs lead](../releases/release-1.26/release-team.md) for 1.26). -4. The docs lead will review your PR and give you feedback. -5. Once approved, the docs lead will merge your PR into the release branch. -6. When the release is cut, the docs lead will push the docs release branch to master, making your docs live on https://kubernetes.io/docs/. - -## Other activities of the Release Team - -### During "Major" releases -To date no major release has been scheduled, however, SIG Release would be responsible for working closely with SIG Testing -to coordinate this effort across SIGs. The precise work required to produce a major release (e.g. 2.0, 3.0) -is undefined. - -### During "Security" releases -For all unplanned or embargoed releases -- Facilitate security releases following the [Security Release Process](https://git.k8s.io/security/security-release-process.md) - -## Release Team Selection - -If you're interested in learning more about how the Release Team is selected, as well as how to volunteer, please review the [Release Team Selection Process][release-team-selection-process]. - ---- - -## Milestone Maintainers - -The [milestone maintainers](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/release.md#milestone-maintainers) are responsible for adding, adapting, or removing a milestone, e.g. the next major Kubernetes release, on an enhancement, issue, PR. - -Across release cycles, a "/milestone" is one of the best signals for [issue triage](https://github.com/kubernetes/community/blob/master/contributors/guide/issue-triage.md#milestones) whether or not an issue or PR is actually targeted for the current release milestone. - -Adding the in-progress release milestone to pull requests after the Code Freeze is strictly prohibited, as it can compromise the stability of the release. Prior to making such changes, approval must be obtained from both the Release Team Lead and the Emeritus Advisor(s). - -Each release cycle, the current Release Team Lead must update membership to the aforementioned GitHub team. - -The actual process of maintaining milestones is owned by the SIGs and special elected contributors. The SIG Release team steers the enhancements through the release cycle and take care that only well-maintained enhancements will make it up to a new major release. ---- - -## Filing exceptions - -The process for filing an enhancement exception can be found [here][exceptions]. - - -[overview]: #overview -[specific-responsibilities]: #specific-responsibilities -[kubernetes-release-team-roles]: #kubernetes-release-team-roles -[other-activities-of-the-release-team]: #other-activities-of-the-release-team -[release-managers]: /release-managers.md -[release-team-selection]: #release-team-selection -[release-team-selection-process]: release-team-selection.md -[milestone-maintainers]: #milestone-maintainers -[filing-exceptions]: #filing-exceptions -[exceptions]: /releases/EXCEPTIONS.md -[k/enhancements]: https://git.k8s.io/enhancements -[k/org]: https://git.k8s.io/org - -## Visual Release Path - -The diagram below shows a high level overview of tasks of the release team sub teams (Release Signal, Enhancements, Docs, Comms) during a release cycle. -```mermaid -graph LR - START([Start of Release Cycle]) - START --> SET - START --> MONITOR - EF --> FBOD - EF --> CMT - EIP --> CF - CF --> DPD - TF --> FDRN - - END((Release Day)) - TEST --> END - EAARB --> END - DCF --> END - FBRD --> END - RNC --> END - - subgraph Enhancements - SET[Start Enhancements Tracking] --> PRRF[Production Readiness Review Freeze] - PRRF --> EF[Enhancements Freeze] - EF --> CF[Code Freeze] - CF --> TF[Test Freeze] - end - - subgraph Docs - DPD[Docs Placeholder Deadline] --> DRD[Docs Ready For Review Deadline] - DRD --> DCF[Docs Complete Deadline] - CMT[Start Collecting Major Themes] --> FDRN[Start Final Draft of Release Notes] - FDRN --> RNC[Release Note Complete] - end - - subgraph Comms - FBOD[Feature Blog Opt-in Deadline] --> RBRD[Release Blog Ready For Review Deadline] - RBRD --> FBRD[Feature Blogs Ready For Review Deadline] - end - - subgraph Release Signal - TA[Track All Issues and PRs] --> EIP[Escalate Issues and PRs] - MONITOR[Monitor E2E Tests and All Jobs In SIG Release Dashboards] - MONITOR --> OPEN[Open Issues For Failing Or Flaking Jobs] - CF --> ESCALATE[Escalate Any New Failures] - TF --> EAARB[Ensure Attention on Any Release-Blocking and Major Bug Fix PRs] - OPEN --> ESCALATE - EAARB --> TEST[Ensure Tests have Stabilized] - ESCALATE --> TEST - end - - classDef cluster fill:#fff,stroke:#bbb,stroke-width:2px,color:#326ce5; - classDef plain fill:#ddd,stroke:#fff,stroke-width:4px,color:#000; - classDef k8s fill:#326ce5,stroke:#fff,stroke-width:4px,color:#fff; - class START,END plain; - class SET,PRRF,EF k8s; - class DPD,DRD,DCF k8s; - class FBOD,RBRD,FBRD k8s; - class CMT,FDRN,RNC k8s; - class MONITOR,OPEN,CF,ESCALATE,EAARB,TEST,TA,EIP,TF k8s; -``` - -The diagram below provides an overview of the work done by KEP authors during the release process and how it relates to release deadlines. -```mermaid -graph TD - KEP_AUTHOR([KEP AUTHOR]) --> DISCUSS - - subgraph Release Team Schedule - START[Start of Release Cycle] - START_ENHANCEMENTS_TRACKING[Start Enhancements Tracking] - PRR_FREEZE[Production Readiness Review Freeze] - ENHANCEMENTS_FREEZE[Enhancements Freeze] - FEATURE_BLOG_FREEZE[Feature Blog Freeze] - CODE_FREEZE[Code Freeze] - DOCS_PLACEHOLDER_FREEZE[Docs Placeholder PR Deadline] - TEST_FREEZE[Test Freeze] - DOCS_READY_FOR_REVIEW[Docs PR Ready For Review Deadline] - FEATURE_BLOG_READY_FOR_REVIEW[Feature Blog PR Ready For Review Deadline] - DOCS_FREEZE[Docs Freeze] - END[Release Day] - - START --> START_ENHANCEMENTS_TRACKING - START_ENHANCEMENTS_TRACKING --> PRR_FREEZE - PRR_FREEZE --> ENHANCEMENTS_FREEZE - ENHANCEMENTS_FREEZE --> FEATURE_BLOG_FREEZE - FEATURE_BLOG_FREEZE --> CODE_FREEZE - CODE_FREEZE --> DOCS_PLACEHOLDER_FREEZE - DOCS_PLACEHOLDER_FREEZE --> TEST_FREEZE - TEST_FREEZE --> DOCS_READY_FOR_REVIEW - DOCS_READY_FOR_REVIEW --> DOCS_FREEZE - DOCS_FREEZE --> FEATURE_BLOG_READY_FOR_REVIEW - FEATURE_BLOG_READY_FOR_REVIEW --> END - end - - subgraph Before the Release - DISCUSS[Introduce and discuss your enhancements with sponsoring and participating SIGs] - ISSUE[Create or Update Enhancement Issue] - KEP[Create or Update Kubernetes Enhancements Proposal] - - DISCUSS --> ISSUE - ISSUE --> KEP - end - - subgraph During the Release - OPT_IN[Opt-in to the Release] - KEP_DONE[KEP Approved and Merged] - - CODE_COMPLETE[All k/k PRs Merged] - TEST_COMPLETE[All Test PRs Merged] - - FEATURE_BLOG_OPT_IN[Opt-in for Feature Blog] - FEATURE_BLOG_POST_COMPLETE[Complete Feature Blog] - - DOCS_PLACEHOLDER_COMPLETE[Docs Placeholder PR Created] - DOCS_READY_TO_REVIEW_COMPLETE[Docs Finished, PR Ready for Review] - DOCS_COMPLETE[k/website PR Merged] - - KEP --> OPT_IN - OPT_IN --> |Work On KEP| KEP_DONE - - KEP_DONE --> |Work On Code| CODE_COMPLETE - KEP_DONE --> |Work On Draft Doc| DOCS_PLACEHOLDER_COMPLETE - KEP_DONE --> |Work On Test| TEST_COMPLETE - - KEP_DONE --> | Optional | FEATURE_BLOG_OPT_IN - FEATURE_BLOG_OPT_IN --------> |Work On Blog Post| FEATURE_BLOG_POST_COMPLETE - - DOCS_PLACEHOLDER_COMPLETE --> |Complete Doc| DOCS_READY_TO_REVIEW_COMPLETE - DOCS_READY_TO_REVIEW_COMPLETE ---> |Address Feedback From Reviewers | DOCS_COMPLETE - end - - subgraph After the Release - END --> FEATURE_BLOG_PUBLISHED[Feature Blogs Published] - end - - OPT_IN -.- START_ENHANCEMENTS_TRACKING - KEP_DONE -.- ENHANCEMENTS_FREEZE - CODE_COMPLETE -.- CODE_FREEZE - TEST_COMPLETE -.- TEST_FREEZE - DOCS_PLACEHOLDER_COMPLETE -.- DOCS_PLACEHOLDER_FREEZE - DOCS_READY_TO_REVIEW_COMPLETE -.- DOCS_READY_FOR_REVIEW - DOCS_COMPLETE -.- DOCS_FREEZE - FEATURE_BLOG_OPT_IN -.- FEATURE_BLOG_FREEZE - FEATURE_BLOG_POST_COMPLETE -.- FEATURE_BLOG_READY_FOR_REVIEW - - classDef cluster fill:#fff,stroke:#bbb,stroke-width:2px,color:#326ce5; - classDef plain fill:#ddd,stroke:#fff,stroke-width:4px,color:#000; - classDef k8s fill:#326ce5,stroke:#fff,stroke-width:4px,color:#fff; - class KEP_AUTHOR plain; - class START,PRR_FREEZE,ENHANCEMENTS_FREEZE,FEATURE_BLOG_FREEZE,CODE_FREEZE,DOCS_PLACEHOLDER_FREEZE,TEST_FREEZE,START_ENHANCEMENTS_TRACKING,DOCS_READY_FOR_REVIEW,FEATURE_BLOG_READY_FOR_REVIEW,DOCS_FREEZE,END,FEATURE_BLOG_PUBLISHED k8s; - class DISCUSS,ISSUE,KEP k8s; - class OPT_IN,KEP_DONE,CODE_COMPLETE,TEST_COMPLETE,DOCS_PLACEHOLDER_COMPLETE,DOCS_READY_TO_REVIEW_COMPLETE,DOCS_COMPLETE,FEATURE_BLOG_OPT_IN,FEATURE_BLOG_POST_COMPLETE k8s; -``` +# Kubernetes Release Team + +- [Overview][overview] +- [Specific responsibilities][specific-responsibilities] +- [Kubernetes Release Team roles][kubernetes-release-team-roles] +- [Other activities of the Release Team][other-activities-of-the-release-team] +- [Release Team Selection][release-team-selection] +- [Milestone Maintainers][milestone-maintainers] +- [Filing exceptions][filing-exceptions] +- [Visual Release Path](#visual-release-path) + +## Overview + +The Kubernetes Release Team is embedded within SIG Release and is responsible for the day to day work required to +successfully release while the SIG at large is focused on the continued improvement of the release process. Historically +the Release Manager (previously Release Czar) +and later Release Team have assumed the following responsibilities +- Authority to build and publish releases at the published release date under the auspices of the CNCF +- Authority to accept or reject cherrypick merge requests to the release branch +- Authority to accept or reject PRs to the kubernetes/kubernetes master branch during code freeze period +- Changing the release timeline as needed if keeping it would materially impact the stability or quality of the release + +These responsibilities will continue to be discharged by SIG release through the Release Team. This charter grants SIG +Release the following additional responsibilities: +- Authority to revert code changes which imperil the ability to produce a release by the communicated date or otherwise + negatively impact the quality of the release (e.g. insufficient testing, lack of documentation) +- Authority to guard code changes behind a feature flag which do not meet criteria for release +- Authority to close the submit queue to any changes which do not target the release as part of enforcing the code freeze + period +which shall be the discharged by the Release Team. + +## Specific responsibilities + +- Generation of release notes +- Communicate enhancement burndown progress during a release cycle +- Manage repositories and tooling dedicated to releasing Kubernetes which at time of chartering these include: + - kubernetes/release + - deb/rpm packaging and hosting + - Container image hosting +- Set and enforce criteria for repository inclusion in a Kubernetes release + - Governance + - Stabilization + - Test coverage +- Set and enforce criteria for code inclusion in a Kubernetes release + - Feature flags + - Documentation + - Test coverage + - Dashboards + - Status reports +- Define template and format for communication of release status + - Ongoing status of the release process + - Announcement of alpha, beta, release candidate availability + - Announcement of release availability +- Deriving signal from the following sources + - [test grid](https://testgrid.k8s.io/) + - GitHub [flake issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3Akind%2Fflake) + - GitHub [bug issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aopen%20is%3Aissue%20label%3Akind%2Fbug) +- Identifying owning individuals and SIGs for blocking issues +- Working with SIGs and individuals to drive resolution of open issues +- Building summary of release criteria and status and publish to the community on a regular basis throughout the release cycle +- Manage the contents of `kubernetes/enhancements` +- Define burndown process + - use of GitHub labels to signal release blocking status + - use of GitHub milestones to communicate release blocking issues + - use of flake GitHub issue count or CI signal as a release blocking status +- Coordinate the resolution of release blocking issues + +## Kubernetes Release Team roles + +As documented in the [Kubernetes Versioning doc](../release-engineering/versioning.md), +there are 3 types of Kubernetes releases: +- Major (x.0.0) +- Minor (x.x.0) +- Patch (x.x.x) + +![release-team](release-team.svg "Release Team Diagram") + +| Role | Handbook | +|-------------------|--------------------------------------------------------------------| +| Release Team Lead | [Lead Handbook](role-handbooks/release-team-lead/README.md) | +| Enhancements | [Enhancements Handbook](role-handbooks/enhancements/README.md) | +| Release Signal | [Release Signal Handbook](role-handbooks/release-signal/README.md) | +| Docs | [Docs Handbook](role-handbooks/docs/README.md) | +| Communications | [Communications Handbook](role-handbooks/communications/README.md) | + + +#### Retired Release Team roles + +- Patch Release Manager: moved to a role of [Release Managers](https://git.k8s.io/website/content/en/releases/release-managers.md), which operates under the Release Engineering subproject. +- Branch Manager: moved to a role of [Release Managers](https://git.k8s.io/website/content/en/releases/release-managers.md), which operates under the Release Engineering subproject. +- Test Infra: deprecated at the end of Kubernetes 1.15. Duties are now distributed to the [Branch Manager](/release-engineering/role-handbooks/branch-manager.md) and [Test Infra On-call (SIG Testing)](https://go.k8s.io/oncall) (#testing-ops and #sig-testing on Slack). + +### Release Team Shadow +Any Release Team member may select one or more mentees to shadow the release process in order to help fulfill future +Release Team staffing requirements and continue to grow the Kubernetes community in general. Potential mentees should +be prepared to devote a significant amount of time to shadowing their mentor during the release cycle. Successful Release Team Shadows +should be prepared to assume a lead role in a subsequent release. + +### Individual Contributors +Release responsibilities of individual contributors to the Kubernetes project are captured below + +#### During a patch release +If you have a patch that needs to be ported back to a previous release (meaning it is a critical bug/security fix), once it is merged to the Kubernetes `master` branch: +- Follow the [cherry-pick instructions to open a cherry-pick PR.](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md) +- The Patch Release Manager will then review the PR and if it is ok for cherry-picking, will apply a `cherrypick-approved` label to it. + +#### During a major/minor release + +##### Propose and track enhancement +If you are developing an enhancement for Kubernetes, make sure that an issue is open in the [enhancements repository](https://github.com/kubernetes/enhancements/issues). If you are targeting a particular release, make sure the issue is marked with the corresponding release milestone. + +Ensure that all code for your enhancement is written, tested, reviewed, and merged before code freeze date for the target release. + +During the code freeze period, fix any bugs discovered with your enhancement, and write enhancement documentation. + +##### Write enhancement documentation + +1. Make sure your enhancement for the upcoming release is on the github release tracking board (e.g. [link](https://github.com/orgs/kubernetes/projects/98) for 1.26). +2. Create a PR with documentation for your enhancement in the [documents repo](https://github.com/kubernetes/kubernetes.github.io). + - **Your PR should target the release branch (e.g. [release-1.6](https://github.com/kubernetes/kubernetes.github.io/tree/release-1.6)), not the [`master`](https://github.com/kubernetes/kubernetes.github.io/tree/master) branch.** + - Any changes to the master branch become live on https://kubernetes.io/docs/ as soon as they are merged, and for releases we do not want documentation to go live until the release is cut. +3. Add link to your docs PR in the release tracking board, and notify the docs lead for the release ( Release team details for each release can be found under the [releases](../releases) directory. E.g. [Docs lead](../releases/release-1.26/release-team.md) for 1.26). +4. The docs lead will review your PR and give you feedback. +5. Once approved, the docs lead will merge your PR into the release branch. +6. When the release is cut, the docs lead will push the docs release branch to master, making your docs live on https://kubernetes.io/docs/. + +## Other activities of the Release Team + +### During "Major" releases +To date no major release has been scheduled, however, SIG Release would be responsible for working closely with SIG Testing +to coordinate this effort across SIGs. The precise work required to produce a major release (e.g. 2.0, 3.0) +is undefined. + +### During "Security" releases +For all unplanned or embargoed releases +- Facilitate security releases following the [Security Release Process](https://git.k8s.io/security/security-release-process.md) + +## Release Team Selection + +If you're interested in learning more about how the Release Team is selected, as well as how to volunteer, please review the [Release Team Selection Process][release-team-selection-process]. + +--- + +## Milestone Maintainers + +The [milestone maintainers](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-release/release.md#milestone-maintainers) are responsible for adding, adapting, or removing a milestone, e.g. the next major Kubernetes release, on an enhancement, issue, PR. + +Across release cycles, a "/milestone" is one of the best signals for [issue triage](https://github.com/kubernetes/community/blob/master/contributors/guide/issue-triage.md#milestones) whether or not an issue or PR is actually targeted for the current release milestone. + +Adding the in-progress release milestone to pull requests after the Code Freeze is strictly prohibited, as it can compromise the stability of the release. Prior to making such changes, approval must be obtained from both the Release Team Lead and the Emeritus Advisor(s). + +Each release cycle, the current Release Team Lead must update membership to the aforementioned GitHub team. + +The actual process of maintaining milestones is owned by the SIGs and special elected contributors. The SIG Release team steers the enhancements through the release cycle and take care that only well-maintained enhancements will make it up to a new major release. +--- + +## Filing exceptions + +The process for filing an enhancement exception can be found [here][exceptions]. + + +[overview]: #overview +[specific-responsibilities]: #specific-responsibilities +[kubernetes-release-team-roles]: #kubernetes-release-team-roles +[other-activities-of-the-release-team]: #other-activities-of-the-release-team +[release-managers]: /release-managers.md +[release-team-selection]: #release-team-selection +[release-team-selection-process]: release-team-selection.md +[milestone-maintainers]: #milestone-maintainers +[filing-exceptions]: #filing-exceptions +[exceptions]: /releases/EXCEPTIONS.md +[k/enhancements]: https://git.k8s.io/enhancements +[k/org]: https://git.k8s.io/org + +## Visual Release Path + +The diagram below shows a high level overview of tasks of the release team sub teams (Release Signal, Enhancements, Docs, Comms) during a release cycle. +```mermaid +graph LR + START([Start of Release Cycle]) + START --> SET + START --> MONITOR + EF --> FBOD + EF --> CMT + EIP --> CF + CF --> DPD + TF --> FDRN + + END((Release Day)) + TEST --> END + EAARB --> END + DCF --> END + FBRD --> END + RNC --> END + + subgraph Enhancements + SET[Start Enhancements Tracking] --> PRRF[Production Readiness Review Freeze] + PRRF --> EF[Enhancements Freeze] + EF --> CF[Code Freeze] + CF --> TF[Test Freeze] + end + + subgraph Docs + DPD[Docs Placeholder Deadline] --> DRD[Docs Ready For Review Deadline] + DRD --> DCF[Docs Complete Deadline] + CMT[Start Collecting Major Themes] --> FDRN[Start Final Draft of Release Notes] + FDRN --> RNC[Release Note Complete] + end + + subgraph Comms + FBOD[Feature Blog Opt-in Deadline] --> RBRD[Release Blog Ready For Review Deadline] + RBRD --> FBRD[Feature Blogs Ready For Review Deadline] + end + + subgraph Release Signal + TA[Track All Issues and PRs] --> EIP[Escalate Issues and PRs] + MONITOR[Monitor E2E Tests and All Jobs In SIG Release Dashboards] + MONITOR --> OPEN[Open Issues For Failing Or Flaking Jobs] + CF --> ESCALATE[Escalate Any New Failures] + TF --> EAARB[Ensure Attention on Any Release-Blocking and Major Bug Fix PRs] + OPEN --> ESCALATE + EAARB --> TEST[Ensure Tests have Stabilized] + ESCALATE --> TEST + end + + classDef cluster fill:#fff,stroke:#bbb,stroke-width:2px,color:#326ce5; + classDef plain fill:#ddd,stroke:#fff,stroke-width:4px,color:#000; + classDef k8s fill:#326ce5,stroke:#fff,stroke-width:4px,color:#fff; + class START,END plain; + class SET,PRRF,EF k8s; + class DPD,DRD,DCF k8s; + class FBOD,RBRD,FBRD k8s; + class CMT,FDRN,RNC k8s; + class MONITOR,OPEN,CF,ESCALATE,EAARB,TEST,TA,EIP,TF k8s; +``` + +The diagram below provides an overview of the work done by KEP authors during the release process and how it relates to release deadlines. +```mermaid +graph TD + KEP_AUTHOR([KEP AUTHOR]) --> DISCUSS + + subgraph Release Team Schedule + START[Start of Release Cycle] + START_ENHANCEMENTS_TRACKING[Start Enhancements Tracking] + PRR_FREEZE[Production Readiness Review Freeze] + ENHANCEMENTS_FREEZE[Enhancements Freeze] + FEATURE_BLOG_FREEZE[Feature Blog Freeze] + CODE_FREEZE[Code Freeze] + DOCS_PLACEHOLDER_FREEZE[Docs Placeholder PR Deadline] + TEST_FREEZE[Test Freeze] + DOCS_READY_FOR_REVIEW[Docs PR Ready For Review Deadline] + FEATURE_BLOG_READY_FOR_REVIEW[Feature Blog PR Ready For Review Deadline] + DOCS_FREEZE[Docs Freeze] + END[Release Day] + + START --> START_ENHANCEMENTS_TRACKING + START_ENHANCEMENTS_TRACKING --> PRR_FREEZE + PRR_FREEZE --> ENHANCEMENTS_FREEZE + ENHANCEMENTS_FREEZE --> FEATURE_BLOG_FREEZE + FEATURE_BLOG_FREEZE --> CODE_FREEZE + CODE_FREEZE --> DOCS_PLACEHOLDER_FREEZE + DOCS_PLACEHOLDER_FREEZE --> TEST_FREEZE + TEST_FREEZE --> DOCS_READY_FOR_REVIEW + DOCS_READY_FOR_REVIEW --> DOCS_FREEZE + DOCS_FREEZE --> FEATURE_BLOG_READY_FOR_REVIEW + FEATURE_BLOG_READY_FOR_REVIEW --> END + end + + subgraph Before the Release + DISCUSS[Introduce and discuss your enhancements with sponsoring and participating SIGs] + ISSUE[Create or Update Enhancement Issue] + KEP[Create or Update Kubernetes Enhancements Proposal] + + DISCUSS --> ISSUE + ISSUE --> KEP + end + + subgraph During the Release + OPT_IN[Opt-in to the Release] + KEP_DONE[KEP Approved and Merged] + + CODE_COMPLETE[All k/k PRs Merged] + TEST_COMPLETE[All Test PRs Merged] + + FEATURE_BLOG_OPT_IN[Opt-in for Feature Blog] + FEATURE_BLOG_POST_COMPLETE[Complete Feature Blog] + + DOCS_PLACEHOLDER_COMPLETE[Docs Placeholder PR Created] + DOCS_READY_TO_REVIEW_COMPLETE[Docs Finished, PR Ready for Review] + DOCS_COMPLETE[k/website PR Merged] + + KEP --> OPT_IN + OPT_IN --> |Work On KEP| KEP_DONE + + KEP_DONE --> |Work On Code| CODE_COMPLETE + KEP_DONE --> |Work On Draft Doc| DOCS_PLACEHOLDER_COMPLETE + KEP_DONE --> |Work On Test| TEST_COMPLETE + + KEP_DONE --> | Optional | FEATURE_BLOG_OPT_IN + FEATURE_BLOG_OPT_IN --------> |Work On Blog Post| FEATURE_BLOG_POST_COMPLETE + + DOCS_PLACEHOLDER_COMPLETE --> |Complete Doc| DOCS_READY_TO_REVIEW_COMPLETE + DOCS_READY_TO_REVIEW_COMPLETE ---> |Address Feedback From Reviewers | DOCS_COMPLETE + end + + subgraph After the Release + END --> FEATURE_BLOG_PUBLISHED[Feature Blogs Published] + end + + OPT_IN -.- START_ENHANCEMENTS_TRACKING + KEP_DONE -.- ENHANCEMENTS_FREEZE + CODE_COMPLETE -.- CODE_FREEZE + TEST_COMPLETE -.- TEST_FREEZE + DOCS_PLACEHOLDER_COMPLETE -.- DOCS_PLACEHOLDER_FREEZE + DOCS_READY_TO_REVIEW_COMPLETE -.- DOCS_READY_FOR_REVIEW + DOCS_COMPLETE -.- DOCS_FREEZE + FEATURE_BLOG_OPT_IN -.- FEATURE_BLOG_FREEZE + FEATURE_BLOG_POST_COMPLETE -.- FEATURE_BLOG_READY_FOR_REVIEW + + classDef cluster fill:#fff,stroke:#bbb,stroke-width:2px,color:#326ce5; + classDef plain fill:#ddd,stroke:#fff,stroke-width:4px,color:#000; + classDef k8s fill:#326ce5,stroke:#fff,stroke-width:4px,color:#fff; + class KEP_AUTHOR plain; + class START,PRR_FREEZE,ENHANCEMENTS_FREEZE,FEATURE_BLOG_FREEZE,CODE_FREEZE,DOCS_PLACEHOLDER_FREEZE,TEST_FREEZE,START_ENHANCEMENTS_TRACKING,DOCS_READY_FOR_REVIEW,FEATURE_BLOG_READY_FOR_REVIEW,DOCS_FREEZE,END,FEATURE_BLOG_PUBLISHED k8s; + class DISCUSS,ISSUE,KEP k8s; + class OPT_IN,KEP_DONE,CODE_COMPLETE,TEST_COMPLETE,DOCS_PLACEHOLDER_COMPLETE,DOCS_READY_TO_REVIEW_COMPLETE,DOCS_COMPLETE,FEATURE_BLOG_OPT_IN,FEATURE_BLOG_POST_COMPLETE k8s; +``` diff --git a/release-team/deprecated/README.md b/release-team/deprecated/README.md index 6c9ecf00b0b..bf8fdbf908d 100644 --- a/release-team/deprecated/README.md +++ b/release-team/deprecated/README.md @@ -1,7 +1,7 @@ -# Deprecated handbooks - -These handbooks are no longer relevant as the teams have been merged. - - -CI Signal and Bug Triage are now the Release Signal team. -Release Notes is now part of the Docs team. +# Deprecated handbooks + +These handbooks are no longer relevant as the teams have been merged. + + +CI Signal and Bug Triage are now the Release Signal team. +Release Notes is now part of the Docs team. diff --git a/release-team/deprecated/bug-triage/README.md b/release-team/deprecated/bug-triage/README.md index 54a7f51882e..1130f32d4ee 100644 --- a/release-team/deprecated/bug-triage/README.md +++ b/release-team/deprecated/bug-triage/README.md @@ -1,320 +1,320 @@ -# Bug Triage Role Handbook - -- [Bug Triage Role Handbook](#bug-triage-role-handbook) - - [Overview](#overview) - - [Responsibilities](#responsibilities) - - [Requirements](#requirements) - - [Time Requirements](#time-requirements) - - [Additional Requirements for Shadows](#additional-requirements-for-shadows) - - [Additional Requirements for Leads](#additional-requirements-for-leads) - - [Getting Started](#getting-started) - - [Bug Triage Project Board](#bug-triage-project-board) - - [Information on the Bug Triage Board](#information-on-the-bug-triage-board) - - [Bug Triage Board Views](#bug-triage-board-views) - - [How to Escalate](#how-to-escalate) - - [Timeline](#timeline) - - [Onboarding Session (week 1)](#onboarding-session-week-1) - - [Early Release](#early-release) - - [Setting up the Bug Triage Project Board](#setting-up-the-bug-triage-project-board) - - [Sample Searches](#sample-searches) - - [Reports](#reports) - - [Mid-Release Cycle](#mid-release-cycle) - - [Reports](#reports-1) - - [Code Freeze](#code-freeze) - - [Day Of The Code Freeze](#day-of-the-code-freeze) - - [Once the Code Freeze starts until one week later](#once-the-code-freeze-starts-until-one-week-later) - - [Week 1 of Code Freeze until Code Thaw starts](#week-1-of-code-freeze-until-code-thaw-starts) - - [Reports](#reports-2) - - [Code Thaw](#code-thaw) - - [Sample Searches](#sample-searches-1) - - [Reports](#reports-3) - -## Overview - -The bug triage team is responsible to make sure that Issues and Pull Requests (PRs) which are targeted for the ongoing release cycle are dealt with in a timely fashion. - -The role has been interchangeably called "Bug Triage" and "Issue Triage", but the general term "issue" can be conflated with the specific GitHub usage of `is:issue` artifact type. It is important to consider both `is:issue` and `is:pr` GitHub artifacts when triaging bugs. - -## Responsibilities - -The bug triage role has the following responsibilities: - -- Listing open issues and PRs targeted for the ongoing release cycle -- Communicating with relevant assignees, owners, and SIG leads of issues/PRs to get the status -- Updating issues/PRs, clarifying situations, enabling next level decision making -- Presenting summary reports at release team and burndown meetings -- Maintaining the automation around tracking issues/PRs against the current milestone - -There are four relevant periods where the workload changes: - -1. Early Release: from week 0 up to mid-release cycle (week 6). *Duration: ~6-7 weeks* -2. Mid release: from week 6 up to the code freeze (around week 9). *Duration: ~3-4 weeks* -3. Code Freeze: from around week 9 up to the code thaw (week 11). *Duration: ~2 weeks* -4. Code Thaw: the last week of the cycle. *Duration: 1 week* - -## Requirements - -**Before continuing on to the Bug Triage specific requirements listed below, please review and work through the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md).** - -### Time Requirements - -Bug Triage has a lower time requirement than most roles at the beginning of the release cycle, however, leading up to and during Code Freeze, that requirement increases drastically. - -General time requirements for Leads and Shadows are: - -- Availability to attend the majority of Release Team (weekly) and Burndown meetings -- Ability to follow-up on issues and PRs since around week 6 (mid-release) -- From week 6 to the end of the release cycle the time commitment becomes greater. Shadows should expect to spend at least 3-5 hours and leads around 5-10 hours a week. - -### Additional Requirements for Shadows - -- Have signed the contributor CLA for Kubernetes. -- [Become a Kubernetes org member](https://git.k8s.io/community/community-membership.md#member). This should be done with the sponsorship of the Bug Triage Lead and the Release Lead in the first weeks of the cycle. - - The process to become one of these is in [our community membership ladder](https://github.com/kubernetes/community/blob/master/community-membership.md#requirements-for-outside-collaborators) -- General familiarity with GitHub labels and how to find issues/PRs for the current milestone. -- Commitment to follow-up with contributors about issues/PRs on Slack, mailing lists, and SIG meetings, as appropriate. -- General knowledge of the [Kubernetes Community governance model](https://git.k8s.io/community/governance.md#community-groups), specifically, a SIGs' areas of responsibility. - -Additionally, the following qualifications make a candidate more suitable for the Bug Triage team, but are not requirements: -- Experience with quality assurance and bug tracking systems. -- Experience with the GitHub automation. - -### Additional Requirements for Leads - -In addition to the above requirements for Shadows, most of which become prerequisites, Bug Triage Leads must: - -- Have the ability to add a milestone to issues/PRs, so must be a member of the [milestone maintainers team](/release-team/README.md#milestone-maintainers) -- Have a working knowledge of GitHub labeling and labels used by the project. Bug Triage leads must be able to identify relevant issues and PRs for a given milestone. -- Have an understanding of what defines a Release Blocking issue or PR, or know who to contact to determine that information. -- The bug triage lead should take the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) training course - -## Getting Started - -As the Bug Triage lead, _it is not your job_ to make decisions in what milestone issue/PR should end up, how should it be prioritized, or to gatekeep issues and PRs. Instead, you should get the assignees, owners, SIG leads or key contributors to do it, as it is their job to do so. Check [How To Escalate](#how-to-escalate) on how you can do it. - -In practice, you should fix anything simple that saves folks time when the intent is obvious or a milestone decision has been made. For example, you might add/modify `kind` and `priority` labels for a PR to match a correlating issue, or make sure an urgently awaited PR is in the milestone so it will pass CI. - -The Bug Triage role relates to both the Enhancements and CI Signal roles. Understanding the in-bound enhancements is important during the Early Release phase as they set the themes for incoming issues and bugs. Having an awareness on current test status is also critical, even though there is a specific lead for that area. The [documentation for CI Signal lead role](../ci-signal) includes a listing of special high risk test categories to monitor with useful information for the Bug Triage to also understand. The Bug Triage Lead should regularly interact with the peer leads for Enhancements and CI Signal. - -Before starting, the Bug Triage members should refer to the following guides to get familiar with used labels: -- [the documentation for issue `kind` labels](https://git.k8s.io/community/contributors/devel/sig-release/release.md#issuepr-kind-label) -- [the documentation for defining priority and `priority` labels](https://github.com/kubernetes/community/blob/master/contributors/guide/issue-triage.md#step-three-define-priority). - -### Bug Triage Project Board - -The Bug Triage team is using a [GitHub project board](https://github.com/orgs/kubernetes/projects/80) to track the current status of all issues and PRs targeting the release, their priorities, and to distribute the work among the Bug Triage team. - -Bug triage team members are expected to assign themselves as the `Responsible` person to track an issue to the extent of their time availability throughout the cycle. The bug triage team should keep an eye on the board for new issues/PRs and make sure they are tracked. - -The project board is public so that both the release team and anyone interested from the community can stay updated about the current status of issues and PRs that are targetting the release. Write access to the board is limited to members of [@kubernetes/release-team-bug-triage](https://github.com/orgs/kubernetes/teams/release-team-bug-triage). - -New issues and PRs that target the current release milestone are automatically added to the board with a [a prow job](https://prow.k8s.io/?job=periodic-sync-bug-triage-github-project-*). The prow job is defined in [kubernetes/test-infra](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes/sig-k8s-infra/trusted/sig-release-release-team-jobs/release-team-periodics.yaml) and the script can be found in [kubernetes/sig-release](https://github.com/kubernetes/sig-release/blob/master/release-team/hack/sync-bug-triage-github-project-beta.sh). - -#### Information on the Bug Triage Board - -For each board item, the following details are set and managed by the bug triage team: - -- `Responsible`: The bug triage team member that is responsible for tracking the progress on the issue/PR. This is not the same as the issue assignee -- `Notes`: Short note by the bug triage team member regarding the issue/PR, e.g. `[6/3] No progress made since last comment; notified them about the code freeze` -- `Status`: One of the following values: - - `Tracked`: a member of the bug triage team is actively tracking the issue - - `Pending inclusion`: the issue is not actively tracked by anyone yet - - `At Risk`: the issue is marked as `at-risk` and might not make the release - - `Release Blocker`: the issue is marked as a `release-blocker` - - `Done`: work on the issue is complete and all pull requests have been merged -- `Priority`: This should match the `priority/*` label that is currently assigned to the issue or PR -- `Fixes`: This should match the `kind/*` label that is currently assigned to the issue or PR - -The following details for each item can be seen on the board. Editing the fields below from the board should be avoided (and for some it might not even be possible): - -- `Title`: Issue/PR title -- `Type`: Issue or Pull Request -- `Milestone`: The milestone that the issue/PR is targetting. This should be the current release -- `Labels`: Issue/PR labels, mostly useful to identify `kind` and `priority` of each item - -#### Bug Triage Board Views - -The bug triage board has a number of views to simplify issue management. - -- [Bug Triage](https://github.com/orgs/kubernetes/projects/80/views/1) shows all open issues and PRs for the current milestone -- [Bug Triage (Filter by Responsible)](https://github.com/orgs/kubernetes/projects/80/views/19) shows all open issues and PRs, grouped by the bug triage team member that is responsible for them -- [Issues](https://github.com/orgs/kubernetes/projects/80/views/12) shows all open issues for the current milestone -- [PR](https://github.com/orgs/kubernetes/projects/80/views/13) shows all open PRs for the current milestone -- [Release Blocker](https://github.com/orgs/kubernetes/projects/80/views/7) shows all issues and PRs that are marked as release blockers -- [By Priority](https://github.com/orgs/kubernetes/projects/80/views/6) shows all open issues and PRs, grouped by priority -- [ALL](https://github.com/orgs/kubernetes/projects/80/views/10) shows all issues and PRs on the board - -### How to Escalate - -Whenever you find an issue or PR that needs to be finished or kicked out of the release, try the following escalation path: - -1. Leave a comment on the GitHub issue or PR: "This issue hasn't been updated in 3 months. Are you still expecting to complete it for 1.28?". It's helpful to @ mention individuals or SIG ```-bugs``` or ```-pr-reviews``` aliases, e.g. "@kubernetes/sig-node-bugs" or "@kubernetes/sig-network-pr-reviews". -2. Send a message to relevant SIG Slack channel or mailing list about the problem: It's helpful to directly @ mention the relevant SIG Leads / Owners, and to condense multiple issues into a list, e.g. "Hey, these three issues haven't seen any attention, are they still valid for 1.28?" -3. Message individual owners and reviewers directly via Slack. If owners and reviewers are unresponsive, you can reach out to the SIG leads using the `kubernetes-sig-${name}-leads@googlegroups.com` mailing lists. -4. Escalate to the Release Team Lead with suggestions on what to do with non-responsive issues. - -## Timeline - -### Onboarding Session (week 1) -In the first week of the release cycle, the Bug Triage Lead will organize an onboarding session with the shadows to go over general responsibilities and expectations. - -### Early Release - -This stage lasts about 6 weeks (from week 0 until week 6/mid-release cycle). - -You should use this time to familiarize yourself with the _major enhancements and fixes_ planned by each SIG for this release, so that you can have context in advance of when you will need to identify incoming bugs as being associated with a work focus in the current release. This can greatly help in focused communication with the relevant SIG leads, as in later stages there can be an elevated urgency to fix related critical bugs and deliver new features in time. - -It is also a good time to interact with the Enhancements Lead and CI Signal Lead to understand any early concerns they might have, as the release team's risk management comes as much from this proactive collaboration more as from the Bug Triage lead reacting to incoming issues and PRs. - -The major and potentially release-blocking PRs/issues in this stage should be identified and a strategy to distribute them among the team should be devised. It is also important to identify _priority/critical-urgent_ and _priority/important-soon_ PRs/issues early on which could become release blocking later in the cycle. - -This is the best stage to get involved with any automation work that can ease the workload of later stages. Some tasks include: -- updating/extending scripts that populate the Bug Triage project board with relevant issues/PRs, delegate them to Bug Triage team members, and track them. -- automation of notifications on relevant issues/PRs of the release cycle timeline. -- automation of tracking/categorizing issues/PRs by responses to notifications of release cycle timeline. - -In order to make work at later stages easier, it can also be beneficial to start pinging stale or long-running issues / PRs, so that an early assessment can be made if these should be moved out of the current release cycle's milestone. - -It is also important to make sure all membership requirements and permissions needed for the members of the team are in place, for example that they all have org access and only Lead is added to `milestone-maintainers`. - -#### Setting up the Bug Triage Project Board - -At the beginning of the cycle, the Bug Triage Lead should prepare the bug triage board for the ongoing release cycle. The following steps should be taken: - -1. Edit bug triage board name for current cycle, e.g. `[sig-release] 1.xx bug-triage` -2. Update the milestone for the periodic prow job. [Example PR from 1.28](https://github.com/kubernetes/test-infra/pull/29527) -3. Edit the [Responsible](https://github.com/orgs/kubernetes/projects/80/settings/fields/2845019) field and add the new bug triage team members -4. Update the milestone filter to `milestone:v1.xx` in all relevant views. You can do this by editing the filter and then clicking `Save` -5. Set the `Status` field to `Pending inclusion` value for all open issues and PRs targeting the current milestone to indicate that no one is responsible yet at the beginning of the cycle. Later, any Bug Triage member picking up the issue/PR should set it to `Tracked`. - -#### Sample Searches - -You can use the following queries to get yourself familiarized with issues/PRs targeting the release: - -* Issues which could require early intervention - - [Issues in the v1.28 milestone with the `priority/critical-urgent` label](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+milestone%3Av1.28+label%3Apriority%2Fcritical-urgent): `is:open is:issue milestone:v1.28 label:priority/critical-urgent` - - - [PRs in the v1.28 milestone with the `priority/critical-urgent` label](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+milestone%3Av1.28+label%3Apriority%2Fcritical-urgent): `is:open is:pr milestone:v1.28 label:priority/critical-urgent` - - - [Issues in the v1.28 milestone which haven't been updated since 2023-06-01](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+milestone%3Av1.28+updated%3A%3C2023-06-01): `is:open is:issue milestone:v1.28 updated:<2023-06-01` - - - [PRs in the v1.28 milestone which haven't been updated since 2023-06-01](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+milestone%3Av1.28+updated%3A%3C2023-06-01): `is:open is:pr milestone:v1.28 updated:<2023-06-01` - -* Enhancements: - - - [k/enhancements repo milestone enhancements](https://github.com/kubernetes/enhancements/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.28) `is:issue is:open milestone:v1.28 repo:kubernetes/enhancements` - - - [k/k main repo milestone enhancements](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.28+label%3Akind%2Ffeature)`is:issue is:open milestone:v1.28 label:kind/feature repo:kubernetes/kubernetes` - -#### Reports - -It is expected that at least one member in the Bug Triage role should be present for all release team meetings to provide the report. At this stage, the report should contain the number of `priority/critical-urgent` issues/PRs and what's their status. - -The status is usually going to be green, yellow or red depending on the number of `priority/critical-urgent` issues/PRs and are those going to be fixed in a timely manner. The number of issues/PRs is mostly irrelevant because it's changing rapidly. - -### Mid-Release Cycle - -This stage lasts from around week 6 until the code freeze starts (usually week 9). At this point, the Bug Triage team should start [escalating issues/PRs](#how-to-escalate) and communicating deadlines with contributors and SIG leads. - -There are three main tasks that should be done: - -- Ensure that issues and PRs targeting the release have a correct *milestone* and *priority* labels - - Linked issues and PRs tracked in the current milestone should have the `priority` and `kind` labels -- Ensure that `priority/critical-urgent` issues and PRs are not blocked - - If you find such `priority/critical-urgent` issue/PR, you should ping the owner and owner SIGs, as well as, alert the release team leads. -- Ping all issues and PRs to remind contributors and SIG leads informing about code freeze approaching in a month or so. - - You may want to ping issues at least two times to ensure deadlines are communicated correctly, usually once this stage starts and a couple of days before the code freeze starts. - -At the beginning, you should prioritize pinging issues/PRs that haven't been updated for a longer time. You can use the following queries: [`is:issue is:open milestone:v1.28 sort:updated-asc`](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.28+sort%3Aupdated-asc) and [`is:pr is:open milestone:v1.28 sort:updated-asc`](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.28+sort%3Aupdated-asc). - -For pinging, the following template can be used: - -``` -Hello! This <issue|PR> has not been updated for a long time, so I'd like to check what's the status. The code freeze is starting <insert date> (about <number of weeks> from now) and while there is still plenty of time, we want to ensure that each PR has a chance to be merged on time. - -As the PR is tagged for 1.28, is it still planned for this release? -``` - -#### Reports - -Beside the number of the `priority/critical-urgent` issues, you can start reporting the number of `priority/important-soon` issues and how good the response rate is for pinged issues. - -Similar to the early release phase, the status (green/yellow/red) depends on the number of release blocking `label:release-blocker` issues/PRs. You might want to declare yellow or red if there are big number of release blocking/`priority/critical-urgent` issues and/or if they're being blocked for any reason. - -### Code Freeze - -One of the main purposes of Code Freeze is to ensure that the code base is stable and that most of tests are passing (CI Signal is green). At this point, only release-blocking issues and PRs (usually bug fixes: `kind/bug`) are considered to be merged. - -Your responsibility here is to actively watch for any new issues/PRs targeting the milestone, monitor the status of existing issues/PRs, and filter the milestone by removing issues/PRs that are out of this release cycle. - -#### Day Of The Code Freeze - -On the day of the Code Freeze, your responsibility is to try to help contributors to get the approval on their PRs and needed label. Check [How To Escalate](#how-to-escalate) part of the document for guide how to do this. - -Please note that Code Freeze is EOD Pacific Time (astronomical sun) on the day of. No items are to be removed from the milestone until the next day. - -The day after the Code Freeze has begun, the Bug Triage team will wait to see if new exception requests are filed and approved (see [exception process](/releases/EXCEPTIONS.md) for more details), it is at this time you will remove the remaining issues / PRs that are not approved into the next milestone. It is important to ensure that the Release Team Lead has been informed during the Burndown meetings following Code Freeze that items are being removed so they may provide any additional feedback. - -When the code freeze starts, the highest priority has the PRs which had `approved` and `lgtm` labels before the code freeze started and are in the milestones. Depending on the merge queue length, it might be proposed to hold PRs that have `approved` and `lgtm`, but are not in the milestone (using the following query [`is:pr is:open no:milestone label:approved label:lgtm`](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+no%3Amilestone+label%3Aapproved+label%3Algtm)). - -You can monitor PRs using the following queries: -- [PRs supposed to be in the merge pool (`is:pr is:open milestone:v1.28 label:approved label:lgtm -label:do-not-merge/hold`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.28+label%3Aapproved+label%3Algtm+-label%3Ado-not-merge%2Fhold) -- [PRs that have `approved` and `lgtm`, but are on-hold (`is:pr is:open milestone:v1.28 label:approved label:lgtm label:do-not-merge/hold`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.28+label%3Aapproved+label%3Algtm+label%3Ado-not-merge%2Fhold+) -- [PRs that doesn't have `approved` but have `lgtm` (`is:pr is:open milestone:v1.28 -label:approved label:lgtm`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.28+-label%3Aapproved+label%3Algtm) -- [PRs that doesn't have `lgtm` but have `approved` (`is:pr is:open milestone:v1.28 label:approved -label:lgtm`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.28+label%3Aapproved+-label%3Algtm+) - -#### Once the Code Freeze starts until one week later - -Usually, the removal of issues/PRs doesn't start right once the code freeze starts. Depending on the CI Signal, the merge queue length, and the release team lead's decision, it might be decided to allow some more time for PRs to get merged. At this stage, `kind/bug` PRs are prioritized, but other PRs can be allowed too if there is no risk of destabilizing the release/CI Signal (such PRs require an exception). - -You can still use the queries from the previous section at this stage to monitor PRs, but you should also monitor issues using similar queries. - -#### Week 1 of Code Freeze until Code Thaw starts - -> **_NOTE:_** When changing or removing milestones, be sure to communicate _why_ the change is being made to avoid confusion. The issue/PR author may not always be familiar with all the processes and deadlines surrounding code freeze, and we want contributing to be a friendly and transparent process. - -At this stage, the Bug Triage Lead should start removing issues/PRs from the milestone. Before doing so, the Bug Triage Lead should confirm the intention with the Release Team Lead. - -If the issue/PR got confirmation that it's planned for the next milestone or there was recent activity, it should be moved to the next milestone using the `/milestone v1.xx` command. - -If there is no response on the issue/PR and no recent activity, the issue/PR should be removed from the milestone to reduce the burden on the next Bug Triage team. This is done by using the `/milestone clear` command. - -If the issue/PR has the `priority/critical-urgent` label, it should be coordinated with the owning SIG and the Release Team Lead should it be allowed to stay or should the priority be decreased and issue/PR moved to the next milestone. - -#### Reports - -At this point, the report is contained of the following items: -- Total number of non-test/flake related issues, number of `priority/critical-urgent` and `priority/important-soon` issues - - If there are `priority/critical-urgent` issues, those should be listed -- Total number of PRs and number of `priority/critical-urgent` and `priority/important-soon` PRs - - If there are `priority/critical-urgent` PRs, those should be listed -- Total number of issues, including flake/test related ones - -If there are issues/PRs that are going to block the release (i.e. `priority/critical-urgent` issues) and those are not close to being merged (e.g. in the merge pool or in-review process) that status is usually red. Otherwise, the status is yellow (if such issues/PRs are close to being merged) or green (if we don't have such issues/PRs). - -### Code Thaw - -Starting a week before the release target date, Code Freeze labeling restrictions are lifted. At this point, you need to make sure that three things happen: - -1. major breakage bugs get fixed immediately -2. any pending release-blocking PRs get approved and merged -3. _anything else should get kicked out of the release_ - -During this period, it's reasonable to expect issue owners and SIG leads to get back to you within hours (check their time zones, though). In cases where SIG Leads are unavailable, you may need to appeal to Kubernetes project leaders to deal with stuck PRs. - -Another part of staying on top of code churn, regression, and risk is monitoring commits to master and the release branch especially in the final days of the release, as shown below in Sample Searches for this phase. On occasion, things will merge that are unexpected by the release team. This possibility needs to be monitored and when it happens, the commits need to be triaged for destabilizing risk and proper exception justification, tests, docs, etc. - -#### Sample Searches - -Most important query at this point is a plain `milestone:v1.xx`, which includes all remaining issues/PRs. Ideally, the queue should be empty. - -Additionally for tracking recent changes to master and the release branch, -eg: -* [master branch commits](https://github.com/kubernetes/kubernetes/commits/master/) -* [release-1.28 branch commits](https://github.com/kubernetes/kubernetes/commits/release-1.28) - -#### Reports - -Same as Code Freeze. - -During this short period it may also be necessary to check in on and report out status changes on the weekend. This should be an exception versus the norm because all the prior months' work by the release team and community has led to well managed and understood risks, but surprises do happen. +# Bug Triage Role Handbook + +- [Bug Triage Role Handbook](#bug-triage-role-handbook) + - [Overview](#overview) + - [Responsibilities](#responsibilities) + - [Requirements](#requirements) + - [Time Requirements](#time-requirements) + - [Additional Requirements for Shadows](#additional-requirements-for-shadows) + - [Additional Requirements for Leads](#additional-requirements-for-leads) + - [Getting Started](#getting-started) + - [Bug Triage Project Board](#bug-triage-project-board) + - [Information on the Bug Triage Board](#information-on-the-bug-triage-board) + - [Bug Triage Board Views](#bug-triage-board-views) + - [How to Escalate](#how-to-escalate) + - [Timeline](#timeline) + - [Onboarding Session (week 1)](#onboarding-session-week-1) + - [Early Release](#early-release) + - [Setting up the Bug Triage Project Board](#setting-up-the-bug-triage-project-board) + - [Sample Searches](#sample-searches) + - [Reports](#reports) + - [Mid-Release Cycle](#mid-release-cycle) + - [Reports](#reports-1) + - [Code Freeze](#code-freeze) + - [Day Of The Code Freeze](#day-of-the-code-freeze) + - [Once the Code Freeze starts until one week later](#once-the-code-freeze-starts-until-one-week-later) + - [Week 1 of Code Freeze until Code Thaw starts](#week-1-of-code-freeze-until-code-thaw-starts) + - [Reports](#reports-2) + - [Code Thaw](#code-thaw) + - [Sample Searches](#sample-searches-1) + - [Reports](#reports-3) + +## Overview + +The bug triage team is responsible to make sure that Issues and Pull Requests (PRs) which are targeted for the ongoing release cycle are dealt with in a timely fashion. + +The role has been interchangeably called "Bug Triage" and "Issue Triage", but the general term "issue" can be conflated with the specific GitHub usage of `is:issue` artifact type. It is important to consider both `is:issue` and `is:pr` GitHub artifacts when triaging bugs. + +## Responsibilities + +The bug triage role has the following responsibilities: + +- Listing open issues and PRs targeted for the ongoing release cycle +- Communicating with relevant assignees, owners, and SIG leads of issues/PRs to get the status +- Updating issues/PRs, clarifying situations, enabling next level decision making +- Presenting summary reports at release team and burndown meetings +- Maintaining the automation around tracking issues/PRs against the current milestone + +There are four relevant periods where the workload changes: + +1. Early Release: from week 0 up to mid-release cycle (week 6). *Duration: ~6-7 weeks* +2. Mid release: from week 6 up to the code freeze (around week 9). *Duration: ~3-4 weeks* +3. Code Freeze: from around week 9 up to the code thaw (week 11). *Duration: ~2 weeks* +4. Code Thaw: the last week of the cycle. *Duration: 1 week* + +## Requirements + +**Before continuing on to the Bug Triage specific requirements listed below, please review and work through the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md).** + +### Time Requirements + +Bug Triage has a lower time requirement than most roles at the beginning of the release cycle, however, leading up to and during Code Freeze, that requirement increases drastically. + +General time requirements for Leads and Shadows are: + +- Availability to attend the majority of Release Team (weekly) and Burndown meetings +- Ability to follow-up on issues and PRs since around week 6 (mid-release) +- From week 6 to the end of the release cycle the time commitment becomes greater. Shadows should expect to spend at least 3-5 hours and leads around 5-10 hours a week. + +### Additional Requirements for Shadows + +- Have signed the contributor CLA for Kubernetes. +- [Become a Kubernetes org member](https://git.k8s.io/community/community-membership.md#member). This should be done with the sponsorship of the Bug Triage Lead and the Release Lead in the first weeks of the cycle. + - The process to become one of these is in [our community membership ladder](https://github.com/kubernetes/community/blob/master/community-membership.md#requirements-for-outside-collaborators) +- General familiarity with GitHub labels and how to find issues/PRs for the current milestone. +- Commitment to follow-up with contributors about issues/PRs on Slack, mailing lists, and SIG meetings, as appropriate. +- General knowledge of the [Kubernetes Community governance model](https://git.k8s.io/community/governance.md#community-groups), specifically, a SIGs' areas of responsibility. + +Additionally, the following qualifications make a candidate more suitable for the Bug Triage team, but are not requirements: +- Experience with quality assurance and bug tracking systems. +- Experience with the GitHub automation. + +### Additional Requirements for Leads + +In addition to the above requirements for Shadows, most of which become prerequisites, Bug Triage Leads must: + +- Have the ability to add a milestone to issues/PRs, so must be a member of the [milestone maintainers team](/release-team/README.md#milestone-maintainers) +- Have a working knowledge of GitHub labeling and labels used by the project. Bug Triage leads must be able to identify relevant issues and PRs for a given milestone. +- Have an understanding of what defines a Release Blocking issue or PR, or know who to contact to determine that information. +- The bug triage lead should take the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) training course + +## Getting Started + +As the Bug Triage lead, _it is not your job_ to make decisions in what milestone issue/PR should end up, how should it be prioritized, or to gatekeep issues and PRs. Instead, you should get the assignees, owners, SIG leads or key contributors to do it, as it is their job to do so. Check [How To Escalate](#how-to-escalate) on how you can do it. + +In practice, you should fix anything simple that saves folks time when the intent is obvious or a milestone decision has been made. For example, you might add/modify `kind` and `priority` labels for a PR to match a correlating issue, or make sure an urgently awaited PR is in the milestone so it will pass CI. + +The Bug Triage role relates to both the Enhancements and CI Signal roles. Understanding the in-bound enhancements is important during the Early Release phase as they set the themes for incoming issues and bugs. Having an awareness on current test status is also critical, even though there is a specific lead for that area. The [documentation for CI Signal lead role](../ci-signal) includes a listing of special high risk test categories to monitor with useful information for the Bug Triage to also understand. The Bug Triage Lead should regularly interact with the peer leads for Enhancements and CI Signal. + +Before starting, the Bug Triage members should refer to the following guides to get familiar with used labels: +- [the documentation for issue `kind` labels](https://git.k8s.io/community/contributors/devel/sig-release/release.md#issuepr-kind-label) +- [the documentation for defining priority and `priority` labels](https://github.com/kubernetes/community/blob/master/contributors/guide/issue-triage.md#step-three-define-priority). + +### Bug Triage Project Board + +The Bug Triage team is using a [GitHub project board](https://github.com/orgs/kubernetes/projects/80) to track the current status of all issues and PRs targeting the release, their priorities, and to distribute the work among the Bug Triage team. + +Bug triage team members are expected to assign themselves as the `Responsible` person to track an issue to the extent of their time availability throughout the cycle. The bug triage team should keep an eye on the board for new issues/PRs and make sure they are tracked. + +The project board is public so that both the release team and anyone interested from the community can stay updated about the current status of issues and PRs that are targetting the release. Write access to the board is limited to members of [@kubernetes/release-team-bug-triage](https://github.com/orgs/kubernetes/teams/release-team-bug-triage). + +New issues and PRs that target the current release milestone are automatically added to the board with a [a prow job](https://prow.k8s.io/?job=periodic-sync-bug-triage-github-project-*). The prow job is defined in [kubernetes/test-infra](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes/sig-k8s-infra/trusted/sig-release-release-team-jobs/release-team-periodics.yaml) and the script can be found in [kubernetes/sig-release](https://github.com/kubernetes/sig-release/blob/master/release-team/hack/sync-bug-triage-github-project-beta.sh). + +#### Information on the Bug Triage Board + +For each board item, the following details are set and managed by the bug triage team: + +- `Responsible`: The bug triage team member that is responsible for tracking the progress on the issue/PR. This is not the same as the issue assignee +- `Notes`: Short note by the bug triage team member regarding the issue/PR, e.g. `[6/3] No progress made since last comment; notified them about the code freeze` +- `Status`: One of the following values: + - `Tracked`: a member of the bug triage team is actively tracking the issue + - `Pending inclusion`: the issue is not actively tracked by anyone yet + - `At Risk`: the issue is marked as `at-risk` and might not make the release + - `Release Blocker`: the issue is marked as a `release-blocker` + - `Done`: work on the issue is complete and all pull requests have been merged +- `Priority`: This should match the `priority/*` label that is currently assigned to the issue or PR +- `Fixes`: This should match the `kind/*` label that is currently assigned to the issue or PR + +The following details for each item can be seen on the board. Editing the fields below from the board should be avoided (and for some it might not even be possible): + +- `Title`: Issue/PR title +- `Type`: Issue or Pull Request +- `Milestone`: The milestone that the issue/PR is targetting. This should be the current release +- `Labels`: Issue/PR labels, mostly useful to identify `kind` and `priority` of each item + +#### Bug Triage Board Views + +The bug triage board has a number of views to simplify issue management. + +- [Bug Triage](https://github.com/orgs/kubernetes/projects/80/views/1) shows all open issues and PRs for the current milestone +- [Bug Triage (Filter by Responsible)](https://github.com/orgs/kubernetes/projects/80/views/19) shows all open issues and PRs, grouped by the bug triage team member that is responsible for them +- [Issues](https://github.com/orgs/kubernetes/projects/80/views/12) shows all open issues for the current milestone +- [PR](https://github.com/orgs/kubernetes/projects/80/views/13) shows all open PRs for the current milestone +- [Release Blocker](https://github.com/orgs/kubernetes/projects/80/views/7) shows all issues and PRs that are marked as release blockers +- [By Priority](https://github.com/orgs/kubernetes/projects/80/views/6) shows all open issues and PRs, grouped by priority +- [ALL](https://github.com/orgs/kubernetes/projects/80/views/10) shows all issues and PRs on the board + +### How to Escalate + +Whenever you find an issue or PR that needs to be finished or kicked out of the release, try the following escalation path: + +1. Leave a comment on the GitHub issue or PR: "This issue hasn't been updated in 3 months. Are you still expecting to complete it for 1.28?". It's helpful to @ mention individuals or SIG ```-bugs``` or ```-pr-reviews``` aliases, e.g. "@kubernetes/sig-node-bugs" or "@kubernetes/sig-network-pr-reviews". +2. Send a message to relevant SIG Slack channel or mailing list about the problem: It's helpful to directly @ mention the relevant SIG Leads / Owners, and to condense multiple issues into a list, e.g. "Hey, these three issues haven't seen any attention, are they still valid for 1.28?" +3. Message individual owners and reviewers directly via Slack. If owners and reviewers are unresponsive, you can reach out to the SIG leads using the `kubernetes-sig-${name}-leads@googlegroups.com` mailing lists. +4. Escalate to the Release Team Lead with suggestions on what to do with non-responsive issues. + +## Timeline + +### Onboarding Session (week 1) +In the first week of the release cycle, the Bug Triage Lead will organize an onboarding session with the shadows to go over general responsibilities and expectations. + +### Early Release + +This stage lasts about 6 weeks (from week 0 until week 6/mid-release cycle). + +You should use this time to familiarize yourself with the _major enhancements and fixes_ planned by each SIG for this release, so that you can have context in advance of when you will need to identify incoming bugs as being associated with a work focus in the current release. This can greatly help in focused communication with the relevant SIG leads, as in later stages there can be an elevated urgency to fix related critical bugs and deliver new features in time. + +It is also a good time to interact with the Enhancements Lead and CI Signal Lead to understand any early concerns they might have, as the release team's risk management comes as much from this proactive collaboration more as from the Bug Triage lead reacting to incoming issues and PRs. + +The major and potentially release-blocking PRs/issues in this stage should be identified and a strategy to distribute them among the team should be devised. It is also important to identify _priority/critical-urgent_ and _priority/important-soon_ PRs/issues early on which could become release blocking later in the cycle. + +This is the best stage to get involved with any automation work that can ease the workload of later stages. Some tasks include: +- updating/extending scripts that populate the Bug Triage project board with relevant issues/PRs, delegate them to Bug Triage team members, and track them. +- automation of notifications on relevant issues/PRs of the release cycle timeline. +- automation of tracking/categorizing issues/PRs by responses to notifications of release cycle timeline. + +In order to make work at later stages easier, it can also be beneficial to start pinging stale or long-running issues / PRs, so that an early assessment can be made if these should be moved out of the current release cycle's milestone. + +It is also important to make sure all membership requirements and permissions needed for the members of the team are in place, for example that they all have org access and only Lead is added to `milestone-maintainers`. + +#### Setting up the Bug Triage Project Board + +At the beginning of the cycle, the Bug Triage Lead should prepare the bug triage board for the ongoing release cycle. The following steps should be taken: + +1. Edit bug triage board name for current cycle, e.g. `[sig-release] 1.xx bug-triage` +2. Update the milestone for the periodic prow job. [Example PR from 1.28](https://github.com/kubernetes/test-infra/pull/29527) +3. Edit the [Responsible](https://github.com/orgs/kubernetes/projects/80/settings/fields/2845019) field and add the new bug triage team members +4. Update the milestone filter to `milestone:v1.xx` in all relevant views. You can do this by editing the filter and then clicking `Save` +5. Set the `Status` field to `Pending inclusion` value for all open issues and PRs targeting the current milestone to indicate that no one is responsible yet at the beginning of the cycle. Later, any Bug Triage member picking up the issue/PR should set it to `Tracked`. + +#### Sample Searches + +You can use the following queries to get yourself familiarized with issues/PRs targeting the release: + +* Issues which could require early intervention + - [Issues in the v1.28 milestone with the `priority/critical-urgent` label](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+milestone%3Av1.28+label%3Apriority%2Fcritical-urgent): `is:open is:issue milestone:v1.28 label:priority/critical-urgent` + + - [PRs in the v1.28 milestone with the `priority/critical-urgent` label](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+milestone%3Av1.28+label%3Apriority%2Fcritical-urgent): `is:open is:pr milestone:v1.28 label:priority/critical-urgent` + + - [Issues in the v1.28 milestone which haven't been updated since 2023-06-01](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aopen+is%3Aissue+milestone%3Av1.28+updated%3A%3C2023-06-01): `is:open is:issue milestone:v1.28 updated:<2023-06-01` + + - [PRs in the v1.28 milestone which haven't been updated since 2023-06-01](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Aopen+is%3Apr+milestone%3Av1.28+updated%3A%3C2023-06-01): `is:open is:pr milestone:v1.28 updated:<2023-06-01` + +* Enhancements: + + - [k/enhancements repo milestone enhancements](https://github.com/kubernetes/enhancements/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.28) `is:issue is:open milestone:v1.28 repo:kubernetes/enhancements` + + - [k/k main repo milestone enhancements](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.28+label%3Akind%2Ffeature)`is:issue is:open milestone:v1.28 label:kind/feature repo:kubernetes/kubernetes` + +#### Reports + +It is expected that at least one member in the Bug Triage role should be present for all release team meetings to provide the report. At this stage, the report should contain the number of `priority/critical-urgent` issues/PRs and what's their status. + +The status is usually going to be green, yellow or red depending on the number of `priority/critical-urgent` issues/PRs and are those going to be fixed in a timely manner. The number of issues/PRs is mostly irrelevant because it's changing rapidly. + +### Mid-Release Cycle + +This stage lasts from around week 6 until the code freeze starts (usually week 9). At this point, the Bug Triage team should start [escalating issues/PRs](#how-to-escalate) and communicating deadlines with contributors and SIG leads. + +There are three main tasks that should be done: + +- Ensure that issues and PRs targeting the release have a correct *milestone* and *priority* labels + - Linked issues and PRs tracked in the current milestone should have the `priority` and `kind` labels +- Ensure that `priority/critical-urgent` issues and PRs are not blocked + - If you find such `priority/critical-urgent` issue/PR, you should ping the owner and owner SIGs, as well as, alert the release team leads. +- Ping all issues and PRs to remind contributors and SIG leads informing about code freeze approaching in a month or so. + - You may want to ping issues at least two times to ensure deadlines are communicated correctly, usually once this stage starts and a couple of days before the code freeze starts. + +At the beginning, you should prioritize pinging issues/PRs that haven't been updated for a longer time. You can use the following queries: [`is:issue is:open milestone:v1.28 sort:updated-asc`](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.28+sort%3Aupdated-asc) and [`is:pr is:open milestone:v1.28 sort:updated-asc`](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.28+sort%3Aupdated-asc). + +For pinging, the following template can be used: + +``` +Hello! This <issue|PR> has not been updated for a long time, so I'd like to check what's the status. The code freeze is starting <insert date> (about <number of weeks> from now) and while there is still plenty of time, we want to ensure that each PR has a chance to be merged on time. + +As the PR is tagged for 1.28, is it still planned for this release? +``` + +#### Reports + +Beside the number of the `priority/critical-urgent` issues, you can start reporting the number of `priority/important-soon` issues and how good the response rate is for pinged issues. + +Similar to the early release phase, the status (green/yellow/red) depends on the number of release blocking `label:release-blocker` issues/PRs. You might want to declare yellow or red if there are big number of release blocking/`priority/critical-urgent` issues and/or if they're being blocked for any reason. + +### Code Freeze + +One of the main purposes of Code Freeze is to ensure that the code base is stable and that most of tests are passing (CI Signal is green). At this point, only release-blocking issues and PRs (usually bug fixes: `kind/bug`) are considered to be merged. + +Your responsibility here is to actively watch for any new issues/PRs targeting the milestone, monitor the status of existing issues/PRs, and filter the milestone by removing issues/PRs that are out of this release cycle. + +#### Day Of The Code Freeze + +On the day of the Code Freeze, your responsibility is to try to help contributors to get the approval on their PRs and needed label. Check [How To Escalate](#how-to-escalate) part of the document for guide how to do this. + +Please note that Code Freeze is EOD Pacific Time (astronomical sun) on the day of. No items are to be removed from the milestone until the next day. + +The day after the Code Freeze has begun, the Bug Triage team will wait to see if new exception requests are filed and approved (see [exception process](/releases/EXCEPTIONS.md) for more details), it is at this time you will remove the remaining issues / PRs that are not approved into the next milestone. It is important to ensure that the Release Team Lead has been informed during the Burndown meetings following Code Freeze that items are being removed so they may provide any additional feedback. + +When the code freeze starts, the highest priority has the PRs which had `approved` and `lgtm` labels before the code freeze started and are in the milestones. Depending on the merge queue length, it might be proposed to hold PRs that have `approved` and `lgtm`, but are not in the milestone (using the following query [`is:pr is:open no:milestone label:approved label:lgtm`](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+no%3Amilestone+label%3Aapproved+label%3Algtm)). + +You can monitor PRs using the following queries: +- [PRs supposed to be in the merge pool (`is:pr is:open milestone:v1.28 label:approved label:lgtm -label:do-not-merge/hold`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.28+label%3Aapproved+label%3Algtm+-label%3Ado-not-merge%2Fhold) +- [PRs that have `approved` and `lgtm`, but are on-hold (`is:pr is:open milestone:v1.28 label:approved label:lgtm label:do-not-merge/hold`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.28+label%3Aapproved+label%3Algtm+label%3Ado-not-merge%2Fhold+) +- [PRs that doesn't have `approved` but have `lgtm` (`is:pr is:open milestone:v1.28 -label:approved label:lgtm`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.28+-label%3Aapproved+label%3Algtm) +- [PRs that doesn't have `lgtm` but have `approved` (`is:pr is:open milestone:v1.28 label:approved -label:lgtm`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.28+label%3Aapproved+-label%3Algtm+) + +#### Once the Code Freeze starts until one week later + +Usually, the removal of issues/PRs doesn't start right once the code freeze starts. Depending on the CI Signal, the merge queue length, and the release team lead's decision, it might be decided to allow some more time for PRs to get merged. At this stage, `kind/bug` PRs are prioritized, but other PRs can be allowed too if there is no risk of destabilizing the release/CI Signal (such PRs require an exception). + +You can still use the queries from the previous section at this stage to monitor PRs, but you should also monitor issues using similar queries. + +#### Week 1 of Code Freeze until Code Thaw starts + +> **_NOTE:_** When changing or removing milestones, be sure to communicate _why_ the change is being made to avoid confusion. The issue/PR author may not always be familiar with all the processes and deadlines surrounding code freeze, and we want contributing to be a friendly and transparent process. + +At this stage, the Bug Triage Lead should start removing issues/PRs from the milestone. Before doing so, the Bug Triage Lead should confirm the intention with the Release Team Lead. + +If the issue/PR got confirmation that it's planned for the next milestone or there was recent activity, it should be moved to the next milestone using the `/milestone v1.xx` command. + +If there is no response on the issue/PR and no recent activity, the issue/PR should be removed from the milestone to reduce the burden on the next Bug Triage team. This is done by using the `/milestone clear` command. + +If the issue/PR has the `priority/critical-urgent` label, it should be coordinated with the owning SIG and the Release Team Lead should it be allowed to stay or should the priority be decreased and issue/PR moved to the next milestone. + +#### Reports + +At this point, the report is contained of the following items: +- Total number of non-test/flake related issues, number of `priority/critical-urgent` and `priority/important-soon` issues + - If there are `priority/critical-urgent` issues, those should be listed +- Total number of PRs and number of `priority/critical-urgent` and `priority/important-soon` PRs + - If there are `priority/critical-urgent` PRs, those should be listed +- Total number of issues, including flake/test related ones + +If there are issues/PRs that are going to block the release (i.e. `priority/critical-urgent` issues) and those are not close to being merged (e.g. in the merge pool or in-review process) that status is usually red. Otherwise, the status is yellow (if such issues/PRs are close to being merged) or green (if we don't have such issues/PRs). + +### Code Thaw + +Starting a week before the release target date, Code Freeze labeling restrictions are lifted. At this point, you need to make sure that three things happen: + +1. major breakage bugs get fixed immediately +2. any pending release-blocking PRs get approved and merged +3. _anything else should get kicked out of the release_ + +During this period, it's reasonable to expect issue owners and SIG leads to get back to you within hours (check their time zones, though). In cases where SIG Leads are unavailable, you may need to appeal to Kubernetes project leaders to deal with stuck PRs. + +Another part of staying on top of code churn, regression, and risk is monitoring commits to master and the release branch especially in the final days of the release, as shown below in Sample Searches for this phase. On occasion, things will merge that are unexpected by the release team. This possibility needs to be monitored and when it happens, the commits need to be triaged for destabilizing risk and proper exception justification, tests, docs, etc. + +#### Sample Searches + +Most important query at this point is a plain `milestone:v1.xx`, which includes all remaining issues/PRs. Ideally, the queue should be empty. + +Additionally for tracking recent changes to master and the release branch, +eg: +* [master branch commits](https://github.com/kubernetes/kubernetes/commits/master/) +* [release-1.28 branch commits](https://github.com/kubernetes/kubernetes/commits/release-1.28) + +#### Reports + +Same as Code Freeze. + +During this short period it may also be necessary to check in on and report out status changes on the weekend. This should be an exception versus the norm because all the prior months' work by the release team and community has led to well managed and understood risks, but surprises do happen. diff --git a/release-team/deprecated/ci-signal/README.md b/release-team/deprecated/ci-signal/README.md index 5afa816bd2b..e9e019b09f7 100644 --- a/release-team/deprecated/ci-signal/README.md +++ b/release-team/deprecated/ci-signal/README.md @@ -1,348 +1,348 @@ -# CI Signal Lead Playbook - -## Content - -- [Overview of CI Signal responsibilities](#overview-of-ci-signal-responsibilities) - - [Explicit detail is important:](#explicit-detail-is-important) - - [Requirements](#requirements) - - [Time Requirements](#time-requirements) - - [Additional Requirements for Shadows](#additional-requirements-for-shadows) - - [Additional Requirements for Leads](#additional-requirements-for-leads) - - [Overview of tasks across release timeline](#overview-of-tasks-across-release-timeline) - - [Onboarding](#onboarding) - - [Pre Enhancement Freeze](#pre-enhancement-freeze) - - [**_Best Practice:_**](#best-practice) - - [Enhancement Freeze to Burndown](#enhancement-freeze-to-burndown) - - [Burndown to Code Freeze](#burndown-to-code-freeze) - - [During Code Freeze](#during-code-freeze) - - [Exit Code Freeze](#exit-code-freeze) - - [Release Cutting - Go or No-Go](#release-cutting---go-or-no-go) - - [Blocking vs. Informing Dashboards](#blocking-vs-informing-dashboards) - - [Opening Issues](#opening-issues) - - [Decision Tree](#decision-tree) - - [Closing Issues](#closing-issues) - - [Special high risk test categories to monitor](#special-high-risk-test-categories-to-monitor) - - [Scalability tests](#scalability-tests) - - [Working with SIGs outside sig-release](#working-with-sigs-outside-sig-release) - - [SIG-scalability report](#sig-scalability-report) - - [Tips and Tricks of the game](#tips-and-tricks-of-the-game) - - [A Tour of CI on the Kubernetes Project](#a-tour-of-ci-on-the-kubernetes-project) - - [Checking test dashboards](#checking-test-dashboards) - - [Priority Labels](#priority-labels) - - [Milestones](#milestones) - - [Monitoring Commits for test failure triangulation](#monitoring-commits-for-test-failure-triangulation) - -## Overview of CI Signal responsibilities - -CI Signal lead assumes the responsibility of the quality gate for the release. This person is responsible for: - -- Continuously monitoring various e2e tests in sig-release dashboards ([master-blocking](https://testgrid.k8s.io/sig-release-master-blocking), [master-informing](https://testgrid.k8s.io/sig-release-master-informing), `release-x.y-blocking/informing` (x.y being the current release)) throughout the release cycle -- Providing early and ongoing signals on release and test health to both Release team and various SIGs -- Ensuring that all release blocking tests provide a clear Go/No-Go signal for the release -- Flagging regressions as close to source as possible i.e., as soon as the offending code was merged -- Filing issues proactively for test failures and flakes, triaging issues to appropriate SIG/owner, following up on status and verifying fixes on newer test runs - - See also: [Working with SIGs outside sig-release](#working-with-sigs-outside-sig-release) -- Studying patterns/history of test health from previous releases and working closely with SIGs and test owners to - - Understand and fix the test for the current release - - Understand if the test needs to be release blocking - - Work with SIG-Testing on any possible test infra improvement to help improve test pass rate -- Making recommendations to SIG-Release for promoting and demoting release blocking and merge blocking tests as per the [Blocking Jobs Criteria](/release-blocking-jobs.md) - -The core responsibility of the CI Signal lead is to foster a culture of continuous test integration, fail-fast and fix-fast mindset and strive for continuously passing tests that provide true positive signal to the release team. To ensure that releases go out on-time with high quality it is absolutely critical to maintain a sustained focus on test health through the entire release cycle, as opposed to accepting destabilizing test failures during active enhancement development followed by a long test stabilization phase. - -### Explicit detail is important: - -- If you're looking for answer that's not in this document, please file an issue so we can keep the document current. -- Generally CI Signal lead errs on the side of filing an issue for each test failure or flake before following up with SIGs/owners. This way we don't _lose track of an issue_ -- If a dashboard isn't listed here, or a test isn't on one of the listed dashboards, **_CI Signal lead is not looking at it_** - -## Requirements - -**Before continuing on to the CI Signal specific requirements listed below, please review and work through the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md).** - -### Time Requirements - -CI Signal is one of the more time-intensive roles on the release team, and as such is not recommended for candidates who do not have employer support for their work on the Release Team. General time requirements for Leads and Shadows are: - -- 1/2 hour to 2 hours a day, every workday, checking failing tests and following up on failing test and flake issues. -- Availability to attend the majority of Release Team (weekly) and Burndown meetings (daily during Code Freeze), subject to time zone appropriateness. -- Ability to follow-up on test fixes during Code Freeze at arbitrary times to ensure rapid turnaround. -- The time commitment becomes greater through the release cycle, peaking during Code Freeze. In the last week of Code Freeze, Shadows should expect to spend at least 10 hours and leads at least 20 hours. - -### Additional Requirements for Shadows - -The following requirements are all things that Leads should already have, and Shadows should acquire, with coaching, within the first weeks of the release cycle: - -- Have signed the contributor CLA for Kubernetes. -- Become a Kubernetes org member. In many cases, this will be done with the sponsorship of the CI Signal Lead or Release Lead in the first week of the cycle. - - The process to become an org member is in [our community membership ladder](https://github.com/kubernetes/community/blob/master/community-membership.md#requirements-for-outside-collaborators) -- General familiarity with our [test boards](https://testgrid.k8s.io/) and examining test results from automated tests. -- Willingness and ability to follow-up with contributors about test failures, on Slack, email, Discuss, and SIG meetings, as appropriate. -- Ability to file well-crafted Kubernetes issues, including labelling. -- General knowledge of our SIG system and SIGs' areas of responsibility. - -Additionally, the following qualifications make a candidate more suitable for the CI Signal team, but are not requirements: - -- Prior involvement with SIG Testing and the Test Infrastructure team. -- Experience with automated testing, CI/CD, quality engineering, and/or quality assurance. - -### Additional Requirements for Leads - -In addition to the above requirements for Shadows, most of which become prerequisites, CI Signal Leads must: - -- Have the ability to add a milestone to issues, so must be a member of the [milestone maintainers](https://github.com/orgs/kubernetes/teams/milestone-maintainers) -- Have a working knowledge of our various test infrastructure tools, such as Testgrid, Triage, Spyglass, gubernator, Prow, and Tide. -- Signal lead needs to understand what tests matter and generally how our testing infra is wired together. - - They can ask previous CI Signal leads for advice - - They can ask SIG-Testing for guidance -- The CI Signal lead should take the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) training course - -## Overview of tasks across release timeline - -For any release, its schedule and activities/deliverable for each week will be published in the release directory, e.g: [1.24 schedule](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.24#timeline). This section talks about specific CI Signal lead deliverable for each milestone in the release cycle. - -### Onboarding - -Right after the CI signal release team is formed, CI signal lead is responsible for following onboarding actions: - -- Update the [ci signal team in the teams.yaml](https://github.com/kubernetes/org/blob/main/config/kubernetes/sig-release/teams.yaml) which grants access to the [ci signal project board](https://github.com/orgs/kubernetes/projects/68/). _Coordinate with the release lead to make multiple changes to this file in one PR._ -- Adding the lead and (more experienced) shadows as milestone maintainers in the [teams.yaml](https://github.com/kubernetes/org/blob/master/config/kubernetes/sig-release/teams.yaml). _Coordinate with the release lead to make multiple changes to this file in one PR._ -- Plan release support and status reporting. See [CI Signal GitHub Projects Board, view: 1.XX-reporting](https://github.com/orgs/kubernetes/projects/68). If the view of the current version does not yet exist, a view of a previous version can be duplicated and the filters adjusted. -- CI Signal Shadows must be a member of the Kubernetes organization and therefore apply for membership by opening an issue on [kubernetes/org](https://github.com/kubernetes/org) (see [Issue template](https://github.com/kubernetes/org/issues/new?assignees=&labels=area%2Fgithub-membership&template=membership.yml&title=REQUEST%3A+New+membership+for+%3Cyour-GH-handle%3E)). -- Organizing an onboarding meeting with shadows to walk through this handbook and useful tools like TestGrid, Spyglass, and Triage. - -### Pre Enhancement Freeze - -Here are some good early deliverables from the CI Signal lead between start of the release to enhancement freeze. - -- Start maintain the [CI signal project board](https://github.com/orgs/kubernetes/projects/68) and keep it up-to-date with issues tracking any test failure/flake -- Assign the new milestone labels to the open issues from previous release, assign a member of the CI signal team, and have that member follow up on the issue with owners -- Monitor [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) and [master-informing](https://testgrid.k8s.io/sig-release-master-informing) dashboards **twice a week** and ensure all failures and flakes are tracked via open issues. See [Opening Issues](#opening-issues) for how to write an effective issue. -- Build and maintain a document of area experts / owners across SIGs for future needs e.g.: Scalability experts, upgrade test experts etc - -#### **_Best Practice:_** - -The SLA and involvement of signal lead at this stage might vary from release to release (and the CI Signal lead). However in an effort to establish an early baseline of the test health the signal lead can take an initial stab at the tests runs at the start of the release, open issues, gather and report on the current status. Post that, it might suffice to check on the tests **twice a week** due to high code churn and expected test instability. - -### Enhancement Freeze to Burndown - -Day to day tasks remain pretty much the same as before, with the following slight changes - -- Monitor [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) dashboard **daily** -- Monitor [master-informing](https://testgrid.k8s.io/sig-release-master-informing) **every other day** - -Increased attention on maintaining signal early in the release cycle goes a long way in reducing the risk of late-found issues destabilizing the release during code freeze. - -### Burndown to Code Freeze - -This is when things really begin to ramp up in the release cycle with active bug triaging and followup on possible release blocking issues to assess release health. Day to day tasks of CI Signal lead include - -- Auditing test status of master-blocking, master-informing, release-x.y-blocking and release-x.y-informing dashboards on **daily basis** -- Keeping issues' status up-to-date on GitHub -- Working closely with SIGs, test owners, bug triage lead and Release team in triaging, punting and closing issues -- Updating issue tracker frequently so anyone on the release team can get to speed and help followup on open issues - -### During Code Freeze - -- Continue best practices from Burndown stage. Monitor master-blocking, master-informing, release-x.y-blocking, and release-x.y-informing dashboards on **daily basis** -- Quickly escalate any new failures to release team and SIGs - -### Exit Code Freeze - -- Once 1.x.0-rc.1 release branch is cut and master re-opens for next release PRs - - continue **release-x.y-blocking, and release-x.y-informing dashboards on daily basis** - - check the **scalability jobs on master-informing** as often as they run. - - you need not monitor master-blocking on a daily basis. It is, however, worth keeping an eye on master-blocking especially before risky cherry-picks make their way into the release branch - -### Release Cutting - Go or No-Go - -Over the release cycle, the release engineering team will cut several releases (alpha, beta, rc), before it ends with a new major Kubernetes release. During the release cycle, tests fail and potentially prevent the cut of a new version. - -Therefore, the key objective is to create a picture of whether the release branch manager can start the release process or there is a major failure that needs to be solved first. To avoid a last-minute No-Go, the assigned CI Signal member aligns at least 2-3 days before the day of the release cut with the [corresponding release branch manager](<[https://github.com/kubernetes/sig-release/tree/master/releases](https://github.com/kubernetes/sig-release/tree/master/releases)>). Potentially blocking tests have to be followed up with high priority and being driven to be solved until release day. Having a short daily alignment telling the Go/No-Go indication should give an idea if this is going in the right direction. If the CI Signal member decides on a No-Go, the issues have to be addressed. A short heads up about what is blocking, what are the current actions to resolve this and, if possible, an estimation of how long it will take to be solved should be given to the release lead, branch manager and to the test corresponding SIG leads. - -On the release day, indicate to the branch manager your availability and the current Go/No-Go status. Monitor the jobs and tests closely until the branch manager starts the release cut. In case that a test fails very close to the beginning of the release cut and the reason seems to be severe, align with the branch manager to postpone the cut until the next test runs or if you are familiar with how to test Kubernetes, if the failed test was just a flake. - -## Blocking vs. Informing Dashboards - -Summary: failing Blocking jobs always block release. Failing Informing jobs sometimes block release. - -Jobs on the master-blocking and release-x.y-blocking dashboards are expected to be green _all the time_. As such, you should take immediate action when one of them turns red, and may recommend postponing the release if any one of these jobs is not passing. - -Jobs on the master-informing and release-x.y-informing dashboards require more interpretation. Some run infrequently or for a long time, and can take days to show effects from merged changes. Others are inconsistent and require you to wait for several failed runs to file an issue and consult the owning SIG. As a result, these tests block release either when they have unexplained failures, or failures that have been investigated and relate to blocking issues. If they're just flaking, or failing for explained and tolerated reasons, they do not block. - -<!-- TODO: document procedure/criteria for tolerated failures in Informing --> - -For more detailed information about what's on these dashboards, see [Release Blocking Jobs](/release-blocking-jobs.md) documentation. - -## Opening Issues - -The appropriate response to a failing or flaking job on either a blocking or informing dashboard is to open an issue. The primary goal of opening an issue is to track the work that needs to be done to bring the job back to a healthy status while providing accurate signal. The format for a helpful and informative issue may vary depending on the type of job, the test(s) that are failing for the job, and the responsible parties for the job. - -Before creating a new github issue, check if somebody else has already opened an issue. To filter already opened issues, [queries](https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests#search-by-project-board) can be applied. - -Example queries: - -```bash -is:issue is:open created:>=<YEAR>-<MONTH>-<DAY> label:"<label name>" - -is:issue is:open created:>=2021-10-01 label:"kind/failing-test" - -is:issue is:open created:>=2021-10-01 label:"kind/flake" -``` - -### Decision Tree - -The decision tree below can be followed to make sure that you are opening an issue that is most effective for triaging, tracking, and resolving a failing or flaking job. - -_All instances of "failing" below can be replaced with "flaking" when appropriate._ - -1. If a single test is failing across multiple jobs, open a test-level issue with title `[Failing Test] [responsible-SIG] failing-test-name`. - - If you are unsure of the responsible SIG, you may omit `[responsible-SIG]`. - - If a short regex can be used to describe the jobs that are failing (example: `kind-*-parallel`), you may add it to the end of the title in parentheses. -2. If one or more tests are failing for a single job that is owned by a single SIG (example: sig-node owns all tests in [node-kubelet-master](https://testgrid.k8s.io/sig-release-master-blocking#node-kubelet-master)), open a job-level issue with title: `[Failing Test] [responsible-SIG] failing-test-name (failing job name)`. - - If multiple tests are failing, you can pick one for the title if it reflects the root cause, or you can write a very succinct description in place of `failing-test-name`. -3. If a job is failing for a reason that is unrelated to the test behavior or the functionality being tested, such as a failure to schedule the Pod or a timeout due to resource contention, open a job-level issue with title: `[Failing Test] failing-test-name (failing-job-name)`. - - If the failure is clearly related to a testing infrastructure issue, it may be appropriate to open the issue in [k/test-infra](https://github.com/kubernetes/test-infra) or [k/k8s.io](https://github.com/kubernetes/k8s.io). -4. If one or more tests are failing for a single job that is not owned by a single SIG, open a separate issue for each failing test with title: `[Failing Test] [responsible-SIG] failing-test-name (failing-job-name)`. - -An issue should remain open until the appropriate fix has been made and the affected tests have returned to a healthy status. If an issue is closed prematurely, or the same test starts failing or flaking again, a new issue should be opened. Do not reopen closed issues. - -Once you have decided the number of issues to open an how to name them, it is important to provide appropriate information in the content of the issue such that the relevant parties are notified and have enough information to take action. For all opened issues: - -- Make sure all open issues have a `priority/` label (see: [Priority Labels](#priority-labels)) and one of either the `kind/flake` or `kind/failing-test` label. -- Make sure the issue is assigned against the current milestone 1.x, using `/milestone`. -- Assign the issue to appropriate SIG using `/sig` label. -- If you are aware of the individual associated with the enhancement area or issue, @mention of individual(s) and SIG leads tends to result in faster turn around. -- Add `@kubernetes/sig-foo-test-failures` to draw SIG-foo’s attention to the issue. -- `/cc @kubernetes/ci-signal` github team on the issue to let rest of the team know about it, you might also `/cc` the release lead and bug triage lead if the issue needs extra attention immediately. -- Assign the issue to yourself or recruit another member of the CI signal team to own the issue. The CI signal team member assigned to an issue is responsible for driving it to resolution alongside the assignee from the appropriate SIG. -- Post the test failure in SIG’s Slack channel to get help in routing the issue to the rightful owner(s). -- Add the issue to [CI signal board](https://github.com/orgs/kubernetes/projects/68) under "New". The CI signal team lead is responsible for making sure every issue on the CI signal board is assigned to a member of the CI signal team and is being actively driven to resolution. - -In addition to the steps above, make sure to fill in any additional information that is part of the [Failing Test](https://github.com/kubernetes/kubernetes/issues/new?labels=kind%2Ffailing-test&template=failing-test.md) or [Flaking Test](https://github.com/kubernetes/kubernetes/issues/new?labels=kind%2Fflake&template=flaking-test.md) issue template. - -### Closing Issues - -After a fix is applied to an issue, it often gets fast closed. Be aware that the issue's status (open/closed) is not the same as it is on the CI Signal board (New/under investigation/observing/resolved). For the same reasons, as explained earlier, we have to see if a flaky test got stable. When a fix is applied and it is expected, that this should solve the problem, the issue gets moved to Observing. After an appropriate amount of time, a big thumb rule would be two weeks, the issue can be moved to resolved. An issue should remain open until the appropriate fix has been made and the affected tests have returned to a healthy status. If an issue is closed prematurely, or the same test starts failing or flaking again, a new issue should be opened. Do not reopen closed issues. - -## Special high risk test categories to monitor - -Historically there are a couple of families of test that are hard to stabilize, regression prone and pose a high risk of delaying and/or derailing a release. As CI Signal lead it is highly recommended to pay close attention and extra caution when dealing with test failures in the following areas. - -### Scalability tests - -Scalability testing is inherently challenging and regressions in this area are potentially a huge project risk - -- Requires lots and lots of servers running tests, and hence expensive -- Tests are long running, so especially hard/expensive/slow to resolve issues via Git bisection -- Examination of results is actually the bigger more expensive part of the situation - -The following scalability jobs/tests could regress quite easily (due to seemingly unrelated PRs anywhere in k8s codebase), require constant manual monitoring/triaging and domain expertise to investigate and resolve. - -- [master-blocking gce-cos-master-scalability-100](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-scalability-100) -- [master-informing gce-scale-correctness](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-correctness) -- [master-informing gce-scale-performance](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-performance) -- `release-x.y-blocking gce-cos-x.y-scalability-100` - -Importantly, the expensive scalability jobs that run on master-informing do not run or appear on release-x.y-informing because we don't currently run them against the release branch as well as master. This means that during Code Freeze, when you would normally ignore master-informing, you still need to keep track of gce-scale-performance and gce-scale-correctness there, since they don't run in the current release branch. In the event of a problem with these jobs, you then will have to figure out whether the problem is related to code that's in the release branch, as opposed to code that exists only in master. - -The CI Signal team should - -- Continuously monitor these tests early in the release cycle, ensure issues are filed and escalated to the Release team and right owners in [SIG-Scalability](https://github.com/kubernetes/community/tree/master/sig-scalability#chairs) -- Work with SIG-Scalability to understand if the failure is a product regression versus a test issue (flake) and in either case followup closely on a fix -- Additionally, it might help to monitor SIG-Scalability’s performance dashboard to flag if and when there is considerable performance degradation - -Starting in 1.11, scalability tests are now blocking OSS presubmits. Specifically we are running performance tests on gce-100 and kubemark-500 setups. This is a step towards catching regressions sooner and stabilizing the release faster. - -## Working with SIGs outside sig-release - -2 scenarios that you will be involved in: - -1. Identifying tests from sig-<name> that should be/are part of sig-release's blocking and informing dashboards. Those tests could be submitted as part of a new enhancement that sig-<name> is developing, or could be existing tests in blocking/informing dashboards. - Questions to ask sig-<name>: - -- Which e2e test jobs are release blocking for your SIG? -- What is the process for making sure the SIG's test grid remains healthy and resolving test failures? -- Would moving the e2e tests for the SIG into their own test jobs make maintaining those tests easier? If yes, consider placing them in a dashboard owned by sig-<name>. -- Is there a playbook for how to resolve test failures and how to identify whether or not another SIG owns the resolution of the issue? If not, could you (sig-<name>) develop one? -- What is the escalation point (email + slack) that will be responsible for keeping this test healthy? - -2. Escalating test failures/flakes to sig-<name>. Expectations: - -- Each test must have an escalation point (email + slack). The escalation point is responsible for keeping the test healthy. -- Fixes for test failures caused by areas of ownership outside the responsibility of the escalation point should be coordinated with other teams by the test escalation point. -- Escalation points are expected to be responsive within 24 hours, and to prioritize test failure issues over other issues. - - If you don't see this happening, get in touch with them on slack or other means to ask for their support. - -### SIG-scalability report - -We've had to delay releases due to failing scalability tests in the past, as these can take multiple days to run. It is therefore important to check in with SIG-scalability on the status of their tests weekly. Ask that a member of SIG-scalability should fill the "Weekly Scalability Report" section in the release team meeting notes with an update, once a week. Additionally, a representative of the Release Team (either a CI Signal team member or a Lead team member) should attend the SIG meeting once a month (beginning of the release, code freeze, and near end of release) and check in on the following things: - -- Clearly communicate deadlines (code freeze, planned release date) -- Check in on outstanding issues: - - anything that may hold a release - - anything that could prevent the upgrade of another dependency (for example a change to the golang major/minor version) - - whether there are any other tests they are running - they occasionally run scalability jobs on certain PRs, or on certain special configurations (run job with pinned Golang version, alpha feature turned on, etc) - -## Tips and Tricks of the game - -### A Tour of CI on the Kubernetes Project - -[A guide to CI on Kubernetes with Rob Kielty (1.20 CI Signal lead) and Dan Magnum (1.19 CI Signal lead)](https://www.youtube.com/watch?v=bttEcArAjUw): -Introduces the role of CI Signal members and walks through the tools and processes used for logging flaky/failing tests (as explained below). - -Notes to follow along: http://bit.ly/k8s-ci-signal - -### Checking test dashboards - -- Quirk: if a job is listed as FAILING but doesn't have "Overall" as one of its ongoing failures, it's not actually failing. It might be "red" from some previous test runs failures and will clear up after a few "green" runs -- if a job is failing in one of the meta-stages (Up, Down, DumpClusterLogs, etc), find the owning SIG since it is a infra failure -- if a job is failing because a specific test case is failing, and that test case has a [sig-foo] in its name, tag SIG-foo in the issue and find appropriate owner within the SIG -- with unit test case failures, try to infer the SIG from the path or OWNERS files in it. Otherwise find the owning SIG to help -- with verify failures, try to infer the failure from the log. Otherwise find the owning SIG to help -- if a test case is failing in one job consistently, but not others, both the job owner and test case owner are responsible for identifying why this combination is different -- You can look at past history of the job/test (even as far back as multiple releases) by querying the [triage dashboard for specific job and/or test name](https://storage.googleapis.com/k8s-gubernator/triage/index.html) - -### Priority Labels - -Issues you create for test failures and flakes must be assigned a `priority` label, that is compatible with the priorities described in the [Issue Triage contributor guide](https://github.com/kubernetes/community/blob/master/contributors/guide/issue-triage.md#define-priority). - -In the CI signal context, we're using priority labels to mean: - -| priority | Description | Expectation | -| --- | --- | --- | -| `priority/critical-urgent` | Actively impacting release-blocking signal. Includes: consistently failing tests, frequently (more than 20% of the time) flaking tests in release-blocking dashboards. | Work with sigs for these to be worked on as soon as possible, prioritized over other work. | -| `priority/important-soon` | Negatively impacting release-blocking signal. Includes: Flakes (especially occurring >2% of the time) in release-blocking jobs, failures and flakes in release-informing jobs. | Work with sigs to resolve them soon, ideally before the end of this release cycle. | -| `priority/important-longterm` | Painful, results in manual workarounds/toil, limits developer productivity, but is of lower urgency and importance than issues in `priority/critical-urgent` or `priority/important-soon`. | In reality, there's a high chance these won't be finished, or even started within the current release. Work with sigs to ensure they are on their radar, and help find ways they can be broken down into smaller chunks. | - -CI signal is not currently using `priority/backlog` or `priority/awaiting-more-evidence`. -If ever in doubt, label as `critical-urgent` to make sure you get eyes on the -issue. - -### Milestones - -All issues the CI signal team creates must be part of the current milestone. -In order to apply a milestone, you'll need to be part of the GitHub team -[milestone-maintainers](https://github.com/orgs/kubernetes/teams/milestone-maintainers). - -To add an issue or PR to a milestone use the following Prow command: - -``` -/milestone v1.x -``` - -Near the end of the release cycle, if you still have open issues that are not -release blocking, then feel free to move these to the next milestone. - -### Monitoring Commits for test failure triangulation - -Yet another effective way for the signal team to stay on top of code churn and regression is by monitoring commits to master and specific branch periodically. - -- Once a day look at https://github.com/kubernetes/kubernetes/commits/master/ for master or a specific branch -- Look for any new end-to-end tests added by a PR - -This helps us - -- Stay aware of tests’ history and identify ownership when they start failing -- Identify possible culprit PRs incase of a regression -- Usually if the volume of things merged is very low, then that’s a signal that something is terribly broken as well +# CI Signal Lead Playbook + +## Content + +- [Overview of CI Signal responsibilities](#overview-of-ci-signal-responsibilities) + - [Explicit detail is important:](#explicit-detail-is-important) + - [Requirements](#requirements) + - [Time Requirements](#time-requirements) + - [Additional Requirements for Shadows](#additional-requirements-for-shadows) + - [Additional Requirements for Leads](#additional-requirements-for-leads) + - [Overview of tasks across release timeline](#overview-of-tasks-across-release-timeline) + - [Onboarding](#onboarding) + - [Pre Enhancement Freeze](#pre-enhancement-freeze) + - [**_Best Practice:_**](#best-practice) + - [Enhancement Freeze to Burndown](#enhancement-freeze-to-burndown) + - [Burndown to Code Freeze](#burndown-to-code-freeze) + - [During Code Freeze](#during-code-freeze) + - [Exit Code Freeze](#exit-code-freeze) + - [Release Cutting - Go or No-Go](#release-cutting---go-or-no-go) + - [Blocking vs. Informing Dashboards](#blocking-vs-informing-dashboards) + - [Opening Issues](#opening-issues) + - [Decision Tree](#decision-tree) + - [Closing Issues](#closing-issues) + - [Special high risk test categories to monitor](#special-high-risk-test-categories-to-monitor) + - [Scalability tests](#scalability-tests) + - [Working with SIGs outside sig-release](#working-with-sigs-outside-sig-release) + - [SIG-scalability report](#sig-scalability-report) + - [Tips and Tricks of the game](#tips-and-tricks-of-the-game) + - [A Tour of CI on the Kubernetes Project](#a-tour-of-ci-on-the-kubernetes-project) + - [Checking test dashboards](#checking-test-dashboards) + - [Priority Labels](#priority-labels) + - [Milestones](#milestones) + - [Monitoring Commits for test failure triangulation](#monitoring-commits-for-test-failure-triangulation) + +## Overview of CI Signal responsibilities + +CI Signal lead assumes the responsibility of the quality gate for the release. This person is responsible for: + +- Continuously monitoring various e2e tests in sig-release dashboards ([master-blocking](https://testgrid.k8s.io/sig-release-master-blocking), [master-informing](https://testgrid.k8s.io/sig-release-master-informing), `release-x.y-blocking/informing` (x.y being the current release)) throughout the release cycle +- Providing early and ongoing signals on release and test health to both Release team and various SIGs +- Ensuring that all release blocking tests provide a clear Go/No-Go signal for the release +- Flagging regressions as close to source as possible i.e., as soon as the offending code was merged +- Filing issues proactively for test failures and flakes, triaging issues to appropriate SIG/owner, following up on status and verifying fixes on newer test runs + - See also: [Working with SIGs outside sig-release](#working-with-sigs-outside-sig-release) +- Studying patterns/history of test health from previous releases and working closely with SIGs and test owners to + - Understand and fix the test for the current release + - Understand if the test needs to be release blocking + - Work with SIG-Testing on any possible test infra improvement to help improve test pass rate +- Making recommendations to SIG-Release for promoting and demoting release blocking and merge blocking tests as per the [Blocking Jobs Criteria](/release-blocking-jobs.md) + +The core responsibility of the CI Signal lead is to foster a culture of continuous test integration, fail-fast and fix-fast mindset and strive for continuously passing tests that provide true positive signal to the release team. To ensure that releases go out on-time with high quality it is absolutely critical to maintain a sustained focus on test health through the entire release cycle, as opposed to accepting destabilizing test failures during active enhancement development followed by a long test stabilization phase. + +### Explicit detail is important: + +- If you're looking for answer that's not in this document, please file an issue so we can keep the document current. +- Generally CI Signal lead errs on the side of filing an issue for each test failure or flake before following up with SIGs/owners. This way we don't _lose track of an issue_ +- If a dashboard isn't listed here, or a test isn't on one of the listed dashboards, **_CI Signal lead is not looking at it_** + +## Requirements + +**Before continuing on to the CI Signal specific requirements listed below, please review and work through the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md).** + +### Time Requirements + +CI Signal is one of the more time-intensive roles on the release team, and as such is not recommended for candidates who do not have employer support for their work on the Release Team. General time requirements for Leads and Shadows are: + +- 1/2 hour to 2 hours a day, every workday, checking failing tests and following up on failing test and flake issues. +- Availability to attend the majority of Release Team (weekly) and Burndown meetings (daily during Code Freeze), subject to time zone appropriateness. +- Ability to follow-up on test fixes during Code Freeze at arbitrary times to ensure rapid turnaround. +- The time commitment becomes greater through the release cycle, peaking during Code Freeze. In the last week of Code Freeze, Shadows should expect to spend at least 10 hours and leads at least 20 hours. + +### Additional Requirements for Shadows + +The following requirements are all things that Leads should already have, and Shadows should acquire, with coaching, within the first weeks of the release cycle: + +- Have signed the contributor CLA for Kubernetes. +- Become a Kubernetes org member. In many cases, this will be done with the sponsorship of the CI Signal Lead or Release Lead in the first week of the cycle. + - The process to become an org member is in [our community membership ladder](https://github.com/kubernetes/community/blob/master/community-membership.md#requirements-for-outside-collaborators) +- General familiarity with our [test boards](https://testgrid.k8s.io/) and examining test results from automated tests. +- Willingness and ability to follow-up with contributors about test failures, on Slack, email, Discuss, and SIG meetings, as appropriate. +- Ability to file well-crafted Kubernetes issues, including labelling. +- General knowledge of our SIG system and SIGs' areas of responsibility. + +Additionally, the following qualifications make a candidate more suitable for the CI Signal team, but are not requirements: + +- Prior involvement with SIG Testing and the Test Infrastructure team. +- Experience with automated testing, CI/CD, quality engineering, and/or quality assurance. + +### Additional Requirements for Leads + +In addition to the above requirements for Shadows, most of which become prerequisites, CI Signal Leads must: + +- Have the ability to add a milestone to issues, so must be a member of the [milestone maintainers](https://github.com/orgs/kubernetes/teams/milestone-maintainers) +- Have a working knowledge of our various test infrastructure tools, such as Testgrid, Triage, Spyglass, gubernator, Prow, and Tide. +- Signal lead needs to understand what tests matter and generally how our testing infra is wired together. + - They can ask previous CI Signal leads for advice + - They can ask SIG-Testing for guidance +- The CI Signal lead should take the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) training course + +## Overview of tasks across release timeline + +For any release, its schedule and activities/deliverable for each week will be published in the release directory, e.g: [1.24 schedule](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.24#timeline). This section talks about specific CI Signal lead deliverable for each milestone in the release cycle. + +### Onboarding + +Right after the CI signal release team is formed, CI signal lead is responsible for following onboarding actions: + +- Update the [ci signal team in the teams.yaml](https://github.com/kubernetes/org/blob/main/config/kubernetes/sig-release/teams.yaml) which grants access to the [ci signal project board](https://github.com/orgs/kubernetes/projects/68/). _Coordinate with the release lead to make multiple changes to this file in one PR._ +- Adding the lead and (more experienced) shadows as milestone maintainers in the [teams.yaml](https://github.com/kubernetes/org/blob/master/config/kubernetes/sig-release/teams.yaml). _Coordinate with the release lead to make multiple changes to this file in one PR._ +- Plan release support and status reporting. See [CI Signal GitHub Projects Board, view: 1.XX-reporting](https://github.com/orgs/kubernetes/projects/68). If the view of the current version does not yet exist, a view of a previous version can be duplicated and the filters adjusted. +- CI Signal Shadows must be a member of the Kubernetes organization and therefore apply for membership by opening an issue on [kubernetes/org](https://github.com/kubernetes/org) (see [Issue template](https://github.com/kubernetes/org/issues/new?assignees=&labels=area%2Fgithub-membership&template=membership.yml&title=REQUEST%3A+New+membership+for+%3Cyour-GH-handle%3E)). +- Organizing an onboarding meeting with shadows to walk through this handbook and useful tools like TestGrid, Spyglass, and Triage. + +### Pre Enhancement Freeze + +Here are some good early deliverables from the CI Signal lead between start of the release to enhancement freeze. + +- Start maintain the [CI signal project board](https://github.com/orgs/kubernetes/projects/68) and keep it up-to-date with issues tracking any test failure/flake +- Assign the new milestone labels to the open issues from previous release, assign a member of the CI signal team, and have that member follow up on the issue with owners +- Monitor [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) and [master-informing](https://testgrid.k8s.io/sig-release-master-informing) dashboards **twice a week** and ensure all failures and flakes are tracked via open issues. See [Opening Issues](#opening-issues) for how to write an effective issue. +- Build and maintain a document of area experts / owners across SIGs for future needs e.g.: Scalability experts, upgrade test experts etc + +#### **_Best Practice:_** + +The SLA and involvement of signal lead at this stage might vary from release to release (and the CI Signal lead). However in an effort to establish an early baseline of the test health the signal lead can take an initial stab at the tests runs at the start of the release, open issues, gather and report on the current status. Post that, it might suffice to check on the tests **twice a week** due to high code churn and expected test instability. + +### Enhancement Freeze to Burndown + +Day to day tasks remain pretty much the same as before, with the following slight changes + +- Monitor [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) dashboard **daily** +- Monitor [master-informing](https://testgrid.k8s.io/sig-release-master-informing) **every other day** + +Increased attention on maintaining signal early in the release cycle goes a long way in reducing the risk of late-found issues destabilizing the release during code freeze. + +### Burndown to Code Freeze + +This is when things really begin to ramp up in the release cycle with active bug triaging and followup on possible release blocking issues to assess release health. Day to day tasks of CI Signal lead include + +- Auditing test status of master-blocking, master-informing, release-x.y-blocking and release-x.y-informing dashboards on **daily basis** +- Keeping issues' status up-to-date on GitHub +- Working closely with SIGs, test owners, bug triage lead and Release team in triaging, punting and closing issues +- Updating issue tracker frequently so anyone on the release team can get to speed and help followup on open issues + +### During Code Freeze + +- Continue best practices from Burndown stage. Monitor master-blocking, master-informing, release-x.y-blocking, and release-x.y-informing dashboards on **daily basis** +- Quickly escalate any new failures to release team and SIGs + +### Exit Code Freeze + +- Once 1.x.0-rc.1 release branch is cut and master re-opens for next release PRs + - continue **release-x.y-blocking, and release-x.y-informing dashboards on daily basis** + - check the **scalability jobs on master-informing** as often as they run. + - you need not monitor master-blocking on a daily basis. It is, however, worth keeping an eye on master-blocking especially before risky cherry-picks make their way into the release branch + +### Release Cutting - Go or No-Go + +Over the release cycle, the release engineering team will cut several releases (alpha, beta, rc), before it ends with a new major Kubernetes release. During the release cycle, tests fail and potentially prevent the cut of a new version. + +Therefore, the key objective is to create a picture of whether the release branch manager can start the release process or there is a major failure that needs to be solved first. To avoid a last-minute No-Go, the assigned CI Signal member aligns at least 2-3 days before the day of the release cut with the [corresponding release branch manager](<[https://github.com/kubernetes/sig-release/tree/master/releases](https://github.com/kubernetes/sig-release/tree/master/releases)>). Potentially blocking tests have to be followed up with high priority and being driven to be solved until release day. Having a short daily alignment telling the Go/No-Go indication should give an idea if this is going in the right direction. If the CI Signal member decides on a No-Go, the issues have to be addressed. A short heads up about what is blocking, what are the current actions to resolve this and, if possible, an estimation of how long it will take to be solved should be given to the release lead, branch manager and to the test corresponding SIG leads. + +On the release day, indicate to the branch manager your availability and the current Go/No-Go status. Monitor the jobs and tests closely until the branch manager starts the release cut. In case that a test fails very close to the beginning of the release cut and the reason seems to be severe, align with the branch manager to postpone the cut until the next test runs or if you are familiar with how to test Kubernetes, if the failed test was just a flake. + +## Blocking vs. Informing Dashboards + +Summary: failing Blocking jobs always block release. Failing Informing jobs sometimes block release. + +Jobs on the master-blocking and release-x.y-blocking dashboards are expected to be green _all the time_. As such, you should take immediate action when one of them turns red, and may recommend postponing the release if any one of these jobs is not passing. + +Jobs on the master-informing and release-x.y-informing dashboards require more interpretation. Some run infrequently or for a long time, and can take days to show effects from merged changes. Others are inconsistent and require you to wait for several failed runs to file an issue and consult the owning SIG. As a result, these tests block release either when they have unexplained failures, or failures that have been investigated and relate to blocking issues. If they're just flaking, or failing for explained and tolerated reasons, they do not block. + +<!-- TODO: document procedure/criteria for tolerated failures in Informing --> + +For more detailed information about what's on these dashboards, see [Release Blocking Jobs](/release-blocking-jobs.md) documentation. + +## Opening Issues + +The appropriate response to a failing or flaking job on either a blocking or informing dashboard is to open an issue. The primary goal of opening an issue is to track the work that needs to be done to bring the job back to a healthy status while providing accurate signal. The format for a helpful and informative issue may vary depending on the type of job, the test(s) that are failing for the job, and the responsible parties for the job. + +Before creating a new github issue, check if somebody else has already opened an issue. To filter already opened issues, [queries](https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests#search-by-project-board) can be applied. + +Example queries: + +```bash +is:issue is:open created:>=<YEAR>-<MONTH>-<DAY> label:"<label name>" + +is:issue is:open created:>=2021-10-01 label:"kind/failing-test" + +is:issue is:open created:>=2021-10-01 label:"kind/flake" +``` + +### Decision Tree + +The decision tree below can be followed to make sure that you are opening an issue that is most effective for triaging, tracking, and resolving a failing or flaking job. + +_All instances of "failing" below can be replaced with "flaking" when appropriate._ + +1. If a single test is failing across multiple jobs, open a test-level issue with title `[Failing Test] [responsible-SIG] failing-test-name`. + - If you are unsure of the responsible SIG, you may omit `[responsible-SIG]`. + - If a short regex can be used to describe the jobs that are failing (example: `kind-*-parallel`), you may add it to the end of the title in parentheses. +2. If one or more tests are failing for a single job that is owned by a single SIG (example: sig-node owns all tests in [node-kubelet-master](https://testgrid.k8s.io/sig-release-master-blocking#node-kubelet-master)), open a job-level issue with title: `[Failing Test] [responsible-SIG] failing-test-name (failing job name)`. + - If multiple tests are failing, you can pick one for the title if it reflects the root cause, or you can write a very succinct description in place of `failing-test-name`. +3. If a job is failing for a reason that is unrelated to the test behavior or the functionality being tested, such as a failure to schedule the Pod or a timeout due to resource contention, open a job-level issue with title: `[Failing Test] failing-test-name (failing-job-name)`. + - If the failure is clearly related to a testing infrastructure issue, it may be appropriate to open the issue in [k/test-infra](https://github.com/kubernetes/test-infra) or [k/k8s.io](https://github.com/kubernetes/k8s.io). +4. If one or more tests are failing for a single job that is not owned by a single SIG, open a separate issue for each failing test with title: `[Failing Test] [responsible-SIG] failing-test-name (failing-job-name)`. + +An issue should remain open until the appropriate fix has been made and the affected tests have returned to a healthy status. If an issue is closed prematurely, or the same test starts failing or flaking again, a new issue should be opened. Do not reopen closed issues. + +Once you have decided the number of issues to open an how to name them, it is important to provide appropriate information in the content of the issue such that the relevant parties are notified and have enough information to take action. For all opened issues: + +- Make sure all open issues have a `priority/` label (see: [Priority Labels](#priority-labels)) and one of either the `kind/flake` or `kind/failing-test` label. +- Make sure the issue is assigned against the current milestone 1.x, using `/milestone`. +- Assign the issue to appropriate SIG using `/sig` label. +- If you are aware of the individual associated with the enhancement area or issue, @mention of individual(s) and SIG leads tends to result in faster turn around. +- Add `@kubernetes/sig-foo-test-failures` to draw SIG-foo’s attention to the issue. +- `/cc @kubernetes/ci-signal` github team on the issue to let rest of the team know about it, you might also `/cc` the release lead and bug triage lead if the issue needs extra attention immediately. +- Assign the issue to yourself or recruit another member of the CI signal team to own the issue. The CI signal team member assigned to an issue is responsible for driving it to resolution alongside the assignee from the appropriate SIG. +- Post the test failure in SIG’s Slack channel to get help in routing the issue to the rightful owner(s). +- Add the issue to [CI signal board](https://github.com/orgs/kubernetes/projects/68) under "New". The CI signal team lead is responsible for making sure every issue on the CI signal board is assigned to a member of the CI signal team and is being actively driven to resolution. + +In addition to the steps above, make sure to fill in any additional information that is part of the [Failing Test](https://github.com/kubernetes/kubernetes/issues/new?labels=kind%2Ffailing-test&template=failing-test.md) or [Flaking Test](https://github.com/kubernetes/kubernetes/issues/new?labels=kind%2Fflake&template=flaking-test.md) issue template. + +### Closing Issues + +After a fix is applied to an issue, it often gets fast closed. Be aware that the issue's status (open/closed) is not the same as it is on the CI Signal board (New/under investigation/observing/resolved). For the same reasons, as explained earlier, we have to see if a flaky test got stable. When a fix is applied and it is expected, that this should solve the problem, the issue gets moved to Observing. After an appropriate amount of time, a big thumb rule would be two weeks, the issue can be moved to resolved. An issue should remain open until the appropriate fix has been made and the affected tests have returned to a healthy status. If an issue is closed prematurely, or the same test starts failing or flaking again, a new issue should be opened. Do not reopen closed issues. + +## Special high risk test categories to monitor + +Historically there are a couple of families of test that are hard to stabilize, regression prone and pose a high risk of delaying and/or derailing a release. As CI Signal lead it is highly recommended to pay close attention and extra caution when dealing with test failures in the following areas. + +### Scalability tests + +Scalability testing is inherently challenging and regressions in this area are potentially a huge project risk + +- Requires lots and lots of servers running tests, and hence expensive +- Tests are long running, so especially hard/expensive/slow to resolve issues via Git bisection +- Examination of results is actually the bigger more expensive part of the situation + +The following scalability jobs/tests could regress quite easily (due to seemingly unrelated PRs anywhere in k8s codebase), require constant manual monitoring/triaging and domain expertise to investigate and resolve. + +- [master-blocking gce-cos-master-scalability-100](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-scalability-100) +- [master-informing gce-scale-correctness](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-correctness) +- [master-informing gce-scale-performance](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-performance) +- `release-x.y-blocking gce-cos-x.y-scalability-100` + +Importantly, the expensive scalability jobs that run on master-informing do not run or appear on release-x.y-informing because we don't currently run them against the release branch as well as master. This means that during Code Freeze, when you would normally ignore master-informing, you still need to keep track of gce-scale-performance and gce-scale-correctness there, since they don't run in the current release branch. In the event of a problem with these jobs, you then will have to figure out whether the problem is related to code that's in the release branch, as opposed to code that exists only in master. + +The CI Signal team should + +- Continuously monitor these tests early in the release cycle, ensure issues are filed and escalated to the Release team and right owners in [SIG-Scalability](https://github.com/kubernetes/community/tree/master/sig-scalability#chairs) +- Work with SIG-Scalability to understand if the failure is a product regression versus a test issue (flake) and in either case followup closely on a fix +- Additionally, it might help to monitor SIG-Scalability’s performance dashboard to flag if and when there is considerable performance degradation + +Starting in 1.11, scalability tests are now blocking OSS presubmits. Specifically we are running performance tests on gce-100 and kubemark-500 setups. This is a step towards catching regressions sooner and stabilizing the release faster. + +## Working with SIGs outside sig-release + +2 scenarios that you will be involved in: + +1. Identifying tests from sig-<name> that should be/are part of sig-release's blocking and informing dashboards. Those tests could be submitted as part of a new enhancement that sig-<name> is developing, or could be existing tests in blocking/informing dashboards. + Questions to ask sig-<name>: + +- Which e2e test jobs are release blocking for your SIG? +- What is the process for making sure the SIG's test grid remains healthy and resolving test failures? +- Would moving the e2e tests for the SIG into their own test jobs make maintaining those tests easier? If yes, consider placing them in a dashboard owned by sig-<name>. +- Is there a playbook for how to resolve test failures and how to identify whether or not another SIG owns the resolution of the issue? If not, could you (sig-<name>) develop one? +- What is the escalation point (email + slack) that will be responsible for keeping this test healthy? + +2. Escalating test failures/flakes to sig-<name>. Expectations: + +- Each test must have an escalation point (email + slack). The escalation point is responsible for keeping the test healthy. +- Fixes for test failures caused by areas of ownership outside the responsibility of the escalation point should be coordinated with other teams by the test escalation point. +- Escalation points are expected to be responsive within 24 hours, and to prioritize test failure issues over other issues. + - If you don't see this happening, get in touch with them on slack or other means to ask for their support. + +### SIG-scalability report + +We've had to delay releases due to failing scalability tests in the past, as these can take multiple days to run. It is therefore important to check in with SIG-scalability on the status of their tests weekly. Ask that a member of SIG-scalability should fill the "Weekly Scalability Report" section in the release team meeting notes with an update, once a week. Additionally, a representative of the Release Team (either a CI Signal team member or a Lead team member) should attend the SIG meeting once a month (beginning of the release, code freeze, and near end of release) and check in on the following things: + +- Clearly communicate deadlines (code freeze, planned release date) +- Check in on outstanding issues: + - anything that may hold a release + - anything that could prevent the upgrade of another dependency (for example a change to the golang major/minor version) + - whether there are any other tests they are running - they occasionally run scalability jobs on certain PRs, or on certain special configurations (run job with pinned Golang version, alpha feature turned on, etc) + +## Tips and Tricks of the game + +### A Tour of CI on the Kubernetes Project + +[A guide to CI on Kubernetes with Rob Kielty (1.20 CI Signal lead) and Dan Magnum (1.19 CI Signal lead)](https://www.youtube.com/watch?v=bttEcArAjUw): +Introduces the role of CI Signal members and walks through the tools and processes used for logging flaky/failing tests (as explained below). + +Notes to follow along: http://bit.ly/k8s-ci-signal + +### Checking test dashboards + +- Quirk: if a job is listed as FAILING but doesn't have "Overall" as one of its ongoing failures, it's not actually failing. It might be "red" from some previous test runs failures and will clear up after a few "green" runs +- if a job is failing in one of the meta-stages (Up, Down, DumpClusterLogs, etc), find the owning SIG since it is a infra failure +- if a job is failing because a specific test case is failing, and that test case has a [sig-foo] in its name, tag SIG-foo in the issue and find appropriate owner within the SIG +- with unit test case failures, try to infer the SIG from the path or OWNERS files in it. Otherwise find the owning SIG to help +- with verify failures, try to infer the failure from the log. Otherwise find the owning SIG to help +- if a test case is failing in one job consistently, but not others, both the job owner and test case owner are responsible for identifying why this combination is different +- You can look at past history of the job/test (even as far back as multiple releases) by querying the [triage dashboard for specific job and/or test name](https://storage.googleapis.com/k8s-gubernator/triage/index.html) + +### Priority Labels + +Issues you create for test failures and flakes must be assigned a `priority` label, that is compatible with the priorities described in the [Issue Triage contributor guide](https://github.com/kubernetes/community/blob/master/contributors/guide/issue-triage.md#define-priority). + +In the CI signal context, we're using priority labels to mean: + +| priority | Description | Expectation | +| --- | --- | --- | +| `priority/critical-urgent` | Actively impacting release-blocking signal. Includes: consistently failing tests, frequently (more than 20% of the time) flaking tests in release-blocking dashboards. | Work with sigs for these to be worked on as soon as possible, prioritized over other work. | +| `priority/important-soon` | Negatively impacting release-blocking signal. Includes: Flakes (especially occurring >2% of the time) in release-blocking jobs, failures and flakes in release-informing jobs. | Work with sigs to resolve them soon, ideally before the end of this release cycle. | +| `priority/important-longterm` | Painful, results in manual workarounds/toil, limits developer productivity, but is of lower urgency and importance than issues in `priority/critical-urgent` or `priority/important-soon`. | In reality, there's a high chance these won't be finished, or even started within the current release. Work with sigs to ensure they are on their radar, and help find ways they can be broken down into smaller chunks. | + +CI signal is not currently using `priority/backlog` or `priority/awaiting-more-evidence`. +If ever in doubt, label as `critical-urgent` to make sure you get eyes on the +issue. + +### Milestones + +All issues the CI signal team creates must be part of the current milestone. +In order to apply a milestone, you'll need to be part of the GitHub team +[milestone-maintainers](https://github.com/orgs/kubernetes/teams/milestone-maintainers). + +To add an issue or PR to a milestone use the following Prow command: + +``` +/milestone v1.x +``` + +Near the end of the release cycle, if you still have open issues that are not +release blocking, then feel free to move these to the next milestone. + +### Monitoring Commits for test failure triangulation + +Yet another effective way for the signal team to stay on top of code churn and regression is by monitoring commits to master and specific branch periodically. + +- Once a day look at https://github.com/kubernetes/kubernetes/commits/master/ for master or a specific branch +- Look for any new end-to-end tests added by a PR + +This helps us + +- Stay aware of tests’ history and identify ownership when they start failing +- Identify possible culprit PRs incase of a regression +- Usually if the volume of things merged is very low, then that’s a signal that something is terribly broken as well diff --git a/release-team/deprecated/ci-signal/one-pager.md b/release-team/deprecated/ci-signal/one-pager.md index 7b987c851e8..11b7c1c90f2 100644 --- a/release-team/deprecated/ci-signal/one-pager.md +++ b/release-team/deprecated/ci-signal/one-pager.md @@ -1,30 +1,30 @@ -# CI Signal Responsibility Summary - -The scope of CI Signal team is to monitor the results from our CI and raise any issues we find. - -Detailed information can be found in the [CI Signal handbook](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md), but essentially the job consists of the following. - -1. The team is particularly interested in the [testgrid dashboards](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#blocking-vs-informing-dashboards): [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) & [master-informing](https://testgrid.k8s.io/sig-release-master-informing). -2. Create issues on GitHub: [Create GitHub issues](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#opening-issues) reporting [*failing*](https://github.com/kubernetes/kubernetes/issues/new?assignees=&labels=kind%2Ffailing-test&template=failing-test.yaml) or [*flaky*](https://github.com/kubernetes/kubernetes/issues/new?assignees=&labels=kind%2Fflake&template=flaking-test.yaml) tests. -3. Track GitHub issues: Follow up on github issues, talk to [other sigs](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#working-with-sigs-outside-sig-release), ping and cc people. You may add the [milestone](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#working-with-sigs-outside-sig-release) or a [priority lables](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#priority-labels) to the github issue. -4. Report status: [Report](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#reporting-status) in Slack and in release-team meetings about the current ci signal status. We use an excel sheet to coordinate. -5. Help cutting the release: The release branch manager cuts the release. We give a [go or no go signal](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#release-cutting---go-or-no-go). We use an excel sheet to coordinate. - -Always update the [CI Signal project board](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#release-cutting---go-or-no-go) along the way! - - -## Videos - -**Onboarding** - -- 2022 [CI Signal Onboarding Clips](https://www.youtube.com/playlist?list=PL69nYSiGNLP2Lzsjir9W7S8u0UsQeeW71) -- 2021 [CI Signal Onboarding](https://youtu.be/bttEcArAjUw) - -**Flaky tests** - -Rob Kielty and Dan Mangum kick off Flake Finder Fridays, a new Kubernetes community livestream where we explore building, testing, CI and all other aspects of delivering Kubernetes artifacts to end users in a consistent and reliable manner -- 2021 [Flake finders 0](https://youtu.be/Hqlm2h2AEvA) -- 2021 [Flake finders 1](https://youtu.be/9muoWaXZK8I) - -Jordan Liggitt walks through finding and fixing test flakes +# CI Signal Responsibility Summary + +The scope of CI Signal team is to monitor the results from our CI and raise any issues we find. + +Detailed information can be found in the [CI Signal handbook](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md), but essentially the job consists of the following. + +1. The team is particularly interested in the [testgrid dashboards](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#blocking-vs-informing-dashboards): [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) & [master-informing](https://testgrid.k8s.io/sig-release-master-informing). +2. Create issues on GitHub: [Create GitHub issues](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#opening-issues) reporting [*failing*](https://github.com/kubernetes/kubernetes/issues/new?assignees=&labels=kind%2Ffailing-test&template=failing-test.yaml) or [*flaky*](https://github.com/kubernetes/kubernetes/issues/new?assignees=&labels=kind%2Fflake&template=flaking-test.yaml) tests. +3. Track GitHub issues: Follow up on github issues, talk to [other sigs](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#working-with-sigs-outside-sig-release), ping and cc people. You may add the [milestone](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#working-with-sigs-outside-sig-release) or a [priority lables](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#priority-labels) to the github issue. +4. Report status: [Report](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#reporting-status) in Slack and in release-team meetings about the current ci signal status. We use an excel sheet to coordinate. +5. Help cutting the release: The release branch manager cuts the release. We give a [go or no go signal](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#release-cutting---go-or-no-go). We use an excel sheet to coordinate. + +Always update the [CI Signal project board](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/ci-signal/README.md#release-cutting---go-or-no-go) along the way! + + +## Videos + +**Onboarding** + +- 2022 [CI Signal Onboarding Clips](https://www.youtube.com/playlist?list=PL69nYSiGNLP2Lzsjir9W7S8u0UsQeeW71) +- 2021 [CI Signal Onboarding](https://youtu.be/bttEcArAjUw) + +**Flaky tests** + +Rob Kielty and Dan Mangum kick off Flake Finder Fridays, a new Kubernetes community livestream where we explore building, testing, CI and all other aspects of delivering Kubernetes artifacts to end users in a consistent and reliable manner +- 2021 [Flake finders 0](https://youtu.be/Hqlm2h2AEvA) +- 2021 [Flake finders 1](https://youtu.be/9muoWaXZK8I) + +Jordan Liggitt walks through finding and fixing test flakes - 2020-08-25 [Deflaking Kubernetes](https://www.youtube.com/watch?v=Ewp8LNY_qTg) \ No newline at end of file diff --git a/release-team/deprecated/ci-signal/upgrade-job-versions.md b/release-team/deprecated/ci-signal/upgrade-job-versions.md index ca01f0480a1..7d38fec529a 100644 --- a/release-team/deprecated/ci-signal/upgrade-job-versions.md +++ b/release-team/deprecated/ci-signal/upgrade-job-versions.md @@ -1,160 +1,160 @@ -# Upgrade Job Versions - -An example of how, given an upgrade job, the different ways I can verify: -- what version is it upgrading FROM (**old-version**) -- what version is it upgrading TO (**new-version**) - -## TL;DR -- there are [very few jobs](#jobs-that-do-use-release-builds) that actually use released/tagged builds -- most jobs use one of these versions, built off the HEAD of a branch - -| name | branch eg | actual eg | -| -------------- | ------------ | ----------------------------------- | -| ci/latest | master | v1.13.0-alpha.0.1226+426ef9d349bb3a | -| ci/k8s-beta | release-1.12 | v1.12.0-beta.1.129+1d58f1aebfe1e3 | -| ci/k8s-stable1 | release-1.11 | v1.11.3-beta.0.71+a4529464e4629c | -| ci/k8s-stable2 | release-1.10 | v1.10.8-beta.0.33+a963fce72fed31 | -| ci/k8s-stable3 | release-1.9 | v1.9.11-beta.0.36+06bf888123ca89 | - -NB: these examples are based on the current cycle at time of writing, which is release-1.12 - -### Option A: Look at the job name -aka trust the job - -- upgrade-cluster: master + nodes upgraded to **new-version**, **old-version** tests run -- upgrade-cluster-new: master + nodes upgraded to **new-version**, **new-version** tests run -- upgrade-master: master upgraded to **new-version**, nodes left at **old-version**, **old-version** tests run - -references: -- https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/e2e-tests.md#test-jobs-naming-convention - -### Option B: Look at the job arguments -aka trust the CI - -- job config is output as first line of build log -- OR if you know the job name, you can search for it in kubernetes/test-infra -- look for the `--extract=` flags -- the version there corresponds to files in GCS buckets - -ci/foo versions live in k8s-release-dev: -```shell -$ for suffix in beta stable1 stable2 stable3; do - echo ci/k8s-$suffix: $(curl -sL https://dl.k8s.io/ci/k8s-$suffix.txt); -done - -ci/k8s-beta: v1.27.1-19+237d7362345728 -ci/k8s-stable1: v1.27.1-89+2555e0f90e80a1 -ci/k8s-stable2: v1.26.4-64+8b09b36478f65c -ci/k8s-stable3: v1.25.9-45+0a7c2a9ad8e0c4 -``` - -release/foo versions live in kubernetes release: -```shell -$ for prefix in latest stable; do - echo release/$prefix-1.23: $(curl -sL https://dl.k8s.io/release/$prefix-1.23.txt) -done - -release/latest-1.26: v1.23.18-rc.0 -release/stable-1.26: v1.23.17 -``` -references: -- https://github.com/kubernetes/test-infra#release-branch-jobs--image-validation-jobs -- https://github.com/kubernetes/test-infra/tree/master/kubetest#extract-a-build -- https://github.com/kubernetes/test-infra/blob/master/kubetest/extract_k8s.go - -### Option C: Look at the job's log -aka trust nothing - -- look at the build log -- search for "kube-apiserver version:" -- if the version has an -alpha -beta or -rc suffix, it is a build, not a released version -- if there is a +, everything after the + is a commit sha -- you can use https://github.com/kubernetes/kubernetes/commit/`<commit sha>` -- everything displayed under the commit has made it into the build - -### Known Issues - -- the "version" displayed by Gubernator is the **old-version** -- the commit displayed by TestGrid is the **old-version** -- neither of these display the **new-version** (ref: [kubernetes/test-infra#3392](https://github.com/kubernetes/test-infra/issues/3392)) - ---- - -## Example - -https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-new-master-upgrade-cluster-parallel/4843 - -### Option A: Look at the job name - -- this is upgrading a new cluster to the HEAD of master -- **old-version** is `release-1.11` HEAD, **new-version** is `master` HEAD - -### Option B: Look at the job arguments - -- first line of build log has `--extract=ci/latest --extract=ci/k8s-stable1` -- **old-version** is `release-1.11` HEAD, **new-version** is `master` HEAD (as of the the time the job ran) - -OR: - -- search for the job https://github.com/kubernetes/test-infra/search?q=ci-kubernetes-e2e-gce-new-master-upgrade-cluster-parallel&unscoped_q=ci-kubernetes-e2e-gce-new-master-upgrade-cluster-parallel -- job is defined at https://github.com/kubernetes/test-infra/blob/3caafeffebfef243499a92c76cc5eea9e216f138/config/jobs/kubernetes/sig-cluster-lifecycle/k8s-upgrade-gce.yaml#L355 -- relevant parameters are `- --extract=ci/latest - --extract=ci/k8s-stable1` -- **old-version** is `release-1.11` HEAD, **new-version** is `master` HEAD (as of the the time the job ran) - -### Option C: Look at the job's log - -- look at https://storage.googleapis.com/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-new-master-upgrade-cluster-parallel/4843/build-log.txt -- search for kube-apiserver-version -``` -I0912 04:20:36.512] Sep 12 04:20:36.512: INFO: kube-apiserver version: v1.11.3-beta.0.71+a4529464e4629c -I0912 04:58:45.311] Sep 12 04:58:45.307: INFO: kube-apiserver version: v1.13.0-alpha.0.1226+426ef9d349bb3a -``` -- **old-version** is v1.11.3-beta.0.71+a4529464e4629c - - it has v1.11 in it, it is from somewhere on the release-1.11 branch - - it has a -alpha or -beta suffix, it is not a tag or cut build - - everything after the + is a commit sha https://github.com/kubernetes/kubernetes/commit/a4529464e4629c - - everything under that commit has been included -- **new-version** is v1.13.0-alpha.0.1226+426ef9d349bb3a - - it has v1.13 in it, it is from somewhere on the master branch - - it has a -alpha or -beta suffix, it is not a tag or cut build - - everything after the + is a commit sha https://github.com/kubernetes/kubernetes/commit/426ef9d349bb3a - - everything under that commit has been included - ---- - -## Jobs that do use release builds - -- ci-kubernetes-gce-conformance-stable-1-y -- ci-kubernetes-e2e-kubeadm-gce-stable-on-master -- ci-kubernetes-e2e-kubeadm-gce-upgrade-stable-master - -```shell -config/jobs/kubernetes/sig-gcp/gce-conformance.yaml -119: - --extract=release/stable-1.9 -140: - --extract=release/stable-1.10 -161: - --extract=release/stable-1.11 - -config/jobs/kubernetes/sig-cluster-lifecycle/kubeadm-x-on-y.yaml -98: - --extract=release/stable - -config/jobs/kubernetes/sig-cluster-lifecycle/kubeadm-upgrade.yaml -115: - --extract=release/stable -``` - -- ci-kubernetes-e2e-kubeadm-gce-upgrade-1-x-1-y - -```shell -config/jobs/kubernetes/sig-cluster-lifecycle/kubeadm-upgrade.yaml -21: - --extract=release/latest-1.10 -32: - --upgrade_args=--ginkgo.focus=\[Feature:MasterUpgrade\] --ginkgo.skip=statefulset-upgrade|hpa-upgrade|service-upgrade --upgrade-target=release/latest-1.10 -52: - --extract=release/latest-1.11 -63: - --upgrade_args=--ginkgo.focus=\[Feature:MasterUpgrade\] --ginkgo.skip=statefulset-upgrade|hpa-upgrade|service-upgrade --upgrade-target=release/latest-1.11 -83: - --extract=release/latest-1.12 -94: - --upgrade_args=--ginkgo.focus=\[Feature:MasterUpgrade\] --ginkgo.skip=statefulset-upgrade|hpa-upgrade|service-upgrade --upgrade-target=release/latest-1.9 -``` - ---- - -## Known Issues - -- https://github.com/kubernetes/test-infra/issues/3392 - testgrid only shows **old-version**'s sha, can it also show **new-version**'s sha? +# Upgrade Job Versions + +An example of how, given an upgrade job, the different ways I can verify: +- what version is it upgrading FROM (**old-version**) +- what version is it upgrading TO (**new-version**) + +## TL;DR +- there are [very few jobs](#jobs-that-do-use-release-builds) that actually use released/tagged builds +- most jobs use one of these versions, built off the HEAD of a branch + +| name | branch eg | actual eg | +| -------------- | ------------ | ----------------------------------- | +| ci/latest | master | v1.13.0-alpha.0.1226+426ef9d349bb3a | +| ci/k8s-beta | release-1.12 | v1.12.0-beta.1.129+1d58f1aebfe1e3 | +| ci/k8s-stable1 | release-1.11 | v1.11.3-beta.0.71+a4529464e4629c | +| ci/k8s-stable2 | release-1.10 | v1.10.8-beta.0.33+a963fce72fed31 | +| ci/k8s-stable3 | release-1.9 | v1.9.11-beta.0.36+06bf888123ca89 | + +NB: these examples are based on the current cycle at time of writing, which is release-1.12 + +### Option A: Look at the job name +aka trust the job + +- upgrade-cluster: master + nodes upgraded to **new-version**, **old-version** tests run +- upgrade-cluster-new: master + nodes upgraded to **new-version**, **new-version** tests run +- upgrade-master: master upgraded to **new-version**, nodes left at **old-version**, **old-version** tests run + +references: +- https://github.com/kubernetes/community/blob/master/contributors/devel/sig-testing/e2e-tests.md#test-jobs-naming-convention + +### Option B: Look at the job arguments +aka trust the CI + +- job config is output as first line of build log +- OR if you know the job name, you can search for it in kubernetes/test-infra +- look for the `--extract=` flags +- the version there corresponds to files in GCS buckets + +ci/foo versions live in k8s-release-dev: +```shell +$ for suffix in beta stable1 stable2 stable3; do + echo ci/k8s-$suffix: $(curl -sL https://dl.k8s.io/ci/k8s-$suffix.txt); +done + +ci/k8s-beta: v1.27.1-19+237d7362345728 +ci/k8s-stable1: v1.27.1-89+2555e0f90e80a1 +ci/k8s-stable2: v1.26.4-64+8b09b36478f65c +ci/k8s-stable3: v1.25.9-45+0a7c2a9ad8e0c4 +``` + +release/foo versions live in kubernetes release: +```shell +$ for prefix in latest stable; do + echo release/$prefix-1.23: $(curl -sL https://dl.k8s.io/release/$prefix-1.23.txt) +done + +release/latest-1.26: v1.23.18-rc.0 +release/stable-1.26: v1.23.17 +``` +references: +- https://github.com/kubernetes/test-infra#release-branch-jobs--image-validation-jobs +- https://github.com/kubernetes/test-infra/tree/master/kubetest#extract-a-build +- https://github.com/kubernetes/test-infra/blob/master/kubetest/extract_k8s.go + +### Option C: Look at the job's log +aka trust nothing + +- look at the build log +- search for "kube-apiserver version:" +- if the version has an -alpha -beta or -rc suffix, it is a build, not a released version +- if there is a +, everything after the + is a commit sha +- you can use https://github.com/kubernetes/kubernetes/commit/`<commit sha>` +- everything displayed under the commit has made it into the build + +### Known Issues + +- the "version" displayed by Gubernator is the **old-version** +- the commit displayed by TestGrid is the **old-version** +- neither of these display the **new-version** (ref: [kubernetes/test-infra#3392](https://github.com/kubernetes/test-infra/issues/3392)) + +--- + +## Example + +https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-new-master-upgrade-cluster-parallel/4843 + +### Option A: Look at the job name + +- this is upgrading a new cluster to the HEAD of master +- **old-version** is `release-1.11` HEAD, **new-version** is `master` HEAD + +### Option B: Look at the job arguments + +- first line of build log has `--extract=ci/latest --extract=ci/k8s-stable1` +- **old-version** is `release-1.11` HEAD, **new-version** is `master` HEAD (as of the the time the job ran) + +OR: + +- search for the job https://github.com/kubernetes/test-infra/search?q=ci-kubernetes-e2e-gce-new-master-upgrade-cluster-parallel&unscoped_q=ci-kubernetes-e2e-gce-new-master-upgrade-cluster-parallel +- job is defined at https://github.com/kubernetes/test-infra/blob/3caafeffebfef243499a92c76cc5eea9e216f138/config/jobs/kubernetes/sig-cluster-lifecycle/k8s-upgrade-gce.yaml#L355 +- relevant parameters are `- --extract=ci/latest - --extract=ci/k8s-stable1` +- **old-version** is `release-1.11` HEAD, **new-version** is `master` HEAD (as of the the time the job ran) + +### Option C: Look at the job's log + +- look at https://storage.googleapis.com/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-new-master-upgrade-cluster-parallel/4843/build-log.txt +- search for kube-apiserver-version +``` +I0912 04:20:36.512] Sep 12 04:20:36.512: INFO: kube-apiserver version: v1.11.3-beta.0.71+a4529464e4629c +I0912 04:58:45.311] Sep 12 04:58:45.307: INFO: kube-apiserver version: v1.13.0-alpha.0.1226+426ef9d349bb3a +``` +- **old-version** is v1.11.3-beta.0.71+a4529464e4629c + - it has v1.11 in it, it is from somewhere on the release-1.11 branch + - it has a -alpha or -beta suffix, it is not a tag or cut build + - everything after the + is a commit sha https://github.com/kubernetes/kubernetes/commit/a4529464e4629c + - everything under that commit has been included +- **new-version** is v1.13.0-alpha.0.1226+426ef9d349bb3a + - it has v1.13 in it, it is from somewhere on the master branch + - it has a -alpha or -beta suffix, it is not a tag or cut build + - everything after the + is a commit sha https://github.com/kubernetes/kubernetes/commit/426ef9d349bb3a + - everything under that commit has been included + +--- + +## Jobs that do use release builds + +- ci-kubernetes-gce-conformance-stable-1-y +- ci-kubernetes-e2e-kubeadm-gce-stable-on-master +- ci-kubernetes-e2e-kubeadm-gce-upgrade-stable-master + +```shell +config/jobs/kubernetes/sig-gcp/gce-conformance.yaml +119: - --extract=release/stable-1.9 +140: - --extract=release/stable-1.10 +161: - --extract=release/stable-1.11 + +config/jobs/kubernetes/sig-cluster-lifecycle/kubeadm-x-on-y.yaml +98: - --extract=release/stable + +config/jobs/kubernetes/sig-cluster-lifecycle/kubeadm-upgrade.yaml +115: - --extract=release/stable +``` + +- ci-kubernetes-e2e-kubeadm-gce-upgrade-1-x-1-y + +```shell +config/jobs/kubernetes/sig-cluster-lifecycle/kubeadm-upgrade.yaml +21: - --extract=release/latest-1.10 +32: - --upgrade_args=--ginkgo.focus=\[Feature:MasterUpgrade\] --ginkgo.skip=statefulset-upgrade|hpa-upgrade|service-upgrade --upgrade-target=release/latest-1.10 +52: - --extract=release/latest-1.11 +63: - --upgrade_args=--ginkgo.focus=\[Feature:MasterUpgrade\] --ginkgo.skip=statefulset-upgrade|hpa-upgrade|service-upgrade --upgrade-target=release/latest-1.11 +83: - --extract=release/latest-1.12 +94: - --upgrade_args=--ginkgo.focus=\[Feature:MasterUpgrade\] --ginkgo.skip=statefulset-upgrade|hpa-upgrade|service-upgrade --upgrade-target=release/latest-1.9 +``` + +--- + +## Known Issues + +- https://github.com/kubernetes/test-infra/issues/3392 - testgrid only shows **old-version**'s sha, can it also show **new-version**'s sha? diff --git a/release-team/deprecated/release-notes/README.md b/release-team/deprecated/release-notes/README.md index 5cfccf778ab..88aeceb0c8d 100644 --- a/release-team/deprecated/release-notes/README.md +++ b/release-team/deprecated/release-notes/README.md @@ -1,304 +1,304 @@ -# Kubernetes Release Team: Release Notes - -- [Kubernetes Release Team: Release Notes](#kubernetes-release-team-release-notes) - - [Overview:](#overview) - - [Prerequisites for Release Notes Lead and Shadows](#prerequisites-for-release-notes-lead-and-shadows) - - [General Requirements](#general-requirements) - - [Skills and Experience Requirements](#skills-and-experience-requirements) - - [Time Requirements](#time-requirements) - - [Onboarding Session (week 1) ~1 hour](#onboarding-session-week-1-1-hour) - - [Early and mid release cycle (weeks 1-8) ~1-5 hours/week](#early-and-mid-release-cycle-weeks-1-8-1-5-hoursweek) - - [Late release cycle (weeks 9-12+) ~4-10 hours/week](#late-release-cycle-weeks-9-12-4-10-hoursweek) - - [GitHub Organization Membership](#github-organization-membership) - - [Machine and GitHub Setup](#machine-and-github-setup) - - [Setup krel](#setup-krel) - - [Fork the kubernetes repositories](#fork-the-kubernetes-repositories) - - [Tasks and Responsibilities](#tasks-and-responsibilities) - - [Manage permissions](#manage-permissions) - - [Setup the Tools and Generate the Release Notes](#setup-the-tools-and-generate-the-release-notes) - - [Periodically review and fix new release notes](#periodically-review-and-fix-new-release-notes) - - [Attend Release Meetings and follow #sig-release](#attend-release-meetings-and-follow-sig-release) - - [Maintain the _Known Issues_ Issue](#maintain-the-known-issues-issue) - - [Ensure Major Themes are Reflected in the Notes](#ensure-major-themes-are-reflected-in-the-notes) - - [Get feedback from SIG Leads](#get-feedback-from-sig-leads) - - [Clean up and edit the final document](#clean-up-and-edit-the-final-document) - - [Curate the External Dependencies Section](#curate-the-external-dependencies-section) - - [Release Cycle Milestone Activities:](#release-cycle-milestone-activities) - - [Week 1](#week-1) - - [Weeks 2 - 10](#weeks-2---10) - - [Week 4](#week-4) - - [Week 10](#week-10) - - [Week 11 (Begin of Code Freeze)](#week-11-begin-of-code-freeze) - - [Weeks 13-16](#weeks-13-16) - - [Week 15](#week-15) - - [Week 16](#week-16) - - [Week 17](#week-17) - - [Week 19](#week-19) - - [Tools](#tools) - - [TODOs](#todos) - - [Post 1.17 TODOs](#post-117-todos) - - [If any team members have NLP experience](#if-any-team-members-have-nlp-experience) - -## Overview: - -The Release Notes role is responsible for collecting and fine-tuning release-notes from the many contributions to Kubernetes between release cycles. This role is likely to find that work during the first several weeks of the release cycle is very laid back with the bulk of the tasks being completed at the end, once the release is firmed up. - -The release lead will be responsible for introducing shadows to the team and the release notes subcommand in [krel](https://github.com/kubernetes/release/tree/master/docs/krel) and may ask shadows to run it and make the update PR’s. The release notes lead should indicate pain points and known issues to the shadows (if there are any) and work on strategies for overcoming them to avoid their coalescence during the later weeks. - -If there are potential fixes to the issues indicated and team members are keen, fixes and automation of the process is very welcome but not expected. - -## Prerequisites for Release Notes Lead and Shadows - -### General Requirements - -**Before continuing on to the Release Notes specific requirements listed below, please review and work through the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md).** - -### Skills and Experience Requirements - -- Strong written and verbal communications skills -- A working knowledge of Kubernetes concepts -- Project management experience is helpful but not required -- The release notes lead should take the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) training course - -### Time Requirements - -Compared to other release team roles, release notes is one of the least time intensive roles. - -#### Onboarding Session (week 1) ~1 hour - -In the first week of the release cycle, the Release Notes Lead will organize an onboarding session with the shadows to go over general responsibilities and expectations. - -#### Early and mid release cycle (weeks 1-8) ~1-5 hours/week - -In the first 8 weeks of the cycle, the Release Notes team must attend weekly release meetings and run the [release-notes subcommand of krel](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md) for every `alpha`, `beta` and `rc` to create an early draft of the release notes. This ensures that the overall quality of the release notes can be verified from the beginning of the release cycle. - -#### Late release cycle (weeks 9-12+) ~4-10 hours/week - -This period has an increase in release team meetings each week and there is also significantly more work to do to ensure the release notes are in good working order for the release. - -The `release-notes` subcommand of `krel` must continue to be run on the release branch (for `beta` and `rc` releases) in order to pull in any outstanding PRs that are merged between the beginning of code freeze and the release. - -### GitHub Organization Membership - -As well as becoming a member of the kubernetes GitHub organization as discussed in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md), release notes members should ensure that they [become members of the kubernetes-sigs GitHub organization](https://github.com/kubernetes/community/blob/master/community-membership.md#kubernetes-ecosystem). The tooling used by the release notes team creates pull requests kubernetes and kubernetes-sigs repositories, so membership of both is needed to streamline reviews. - -### Machine and GitHub Setup - -#### Setup krel - -[Install Go](https://golang.org/doc/install) in your machine and follow the [instructions to build the release tools](https://github.com/kubernetes/release/tree/master/docs/krel#installation) in your machine. Check the system requirements in the krel documentation. - -#### Fork the kubernetes repositories - -Fork the following repositories to your GitHub account, and clone them using SSH: - - - [`kubernetes/sig-release`](https://github.com/kubernetes/sig-release): This is where you will push regular PRs to keep the Release Notes draft up to date. - - [`kubernetes-sigs/release-notes`](https://github.com/kubernetes-sigs/release-notes): This repo has the [release notes website](https://relnotes.k8s.io) sources - -## Tasks and Responsibilities - -### Manage permissions - -Release Notes lead should be responsible for granting team members required access: -1. Add OWNERS file into release notes directory. [Sample PR](https://github.com/kubernetes/sig-release/pull/1943) for v1.25 release. -2. Add release notes team members for CHANGELOG review/approval. - [Sample PR](https://github.com/kubernetes/kubernetes/pull/112045) for v1.25 release. -3. Typically, the release lead updates the [release-team-release-notes](https://github.com/kubernetes/org/blob/main/config/kubernetes/sig-release/teams.yaml) GitHub team along with other teams in a single PR; check the PR and make sure the release notes team has been updated, otherwise open a PR yourself [Sample PR](https://github.com/kubernetes/org/pull/3735). - -### Setup the Tools and Generate the Release Notes - -The main task of the Release Notes team is the generation of the release notes during the release cycle. - -At least one member of the Release Notes Team should be responsible for [setting up](https://github.com/kubernetes/release/tree/master/docs/krel#installation) and [running](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md) the release-notes subcommand of krel to generate the release notes after each Patch Release: - -1. Update the release notes draft, a markdown file which will become the final document which will encompass all release notes written by contributors during the current release cycle. See previous drafts for versions [1.25](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.25/release-notes/release-notes-draft.md), [v1.24](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.24/release-notes/release-notes-draft.md) or [v1.23](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.23/release-notes/release-notes-draft.md). - -Detailed instructions for generating the release notes bundle is in the [krel release-notes subcommand documentation](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md). - -### Periodically review and fix new release notes - -The Release Notes team must make sure that the final document includes well written and informative release notes. To achieve a high-quality document the team should review and edit the -notes by running `krel release-notes --fix` weekly or as often as development pace -demands. - -This command will enable the team to review each release note and edit the note's data. -It is recommended that the team splits the work among all members and runs the editing flow -on a weekly or biweekly basis. More information about the editing flow can be found in -a separate document detailing the [editing process and tooling](editing-flow.md). - -The general style guide for release notes includes checking for: -- Past tense: Release notes should be written in the past tense since the changes have already been implemented. -- Technical jargon: While the notes are generally user-friendly, some technical terms like "VAC" or "scheduling hints" could be explained briefly with backticks or double quotes for users unfamiliar with them. -- Additional context: In some cases, providing more context about the problem these changes address or the specific situations where they're relevant could be helpful for understanding their significance. You can find additional context referenced in the PR in k8s/k8s repo to check what the PR does for end users. - -Additional style guidelines can be found in the [Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/). - -### Attend Release Meetings and follow #sig-release - -The Release Notes Lead and Shadows attend burn down meetings, SIG Release meetings and follow the [#sig-release](https://kubernetes.slack.com/messages/C2C40FMNF) Slack channel for relevant information throughout the release cycle. - -### Maintain the _Known Issues_ Issue - -A ["Known Issues Umbrella Issue"](known-issues-bucket.md) for the release must be created by the release notes team in [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/issues/new) so issues can be collected for the "Known Issues" section of the release notes. See previous known issues for [1.25](https://github.com/kubernetes/kubernetes/issues/110336), [1.24](https://github.com/kubernetes/kubernetes/issues/109027), [v1.23](https://github.com/kubernetes/kubernetes/issues/104885), [v1.22](https://github.com/kubernetes/kubernetes/issues/101728), [v1.21](https://github.com/kubernetes/kubernetes/issues/98232), [v1.19](https://github.com/kubernetes/kubernetes/issues/90304), [v1.18](https://github.com/kubernetes/kubernetes/issues/86882) or [v1.17](https://github.com/kubernetes/kubernetes/issues/83683). - -### Ensure Major Themes are Reflected in the Notes - -The Communications team will hold a meeting to discuss Major Themes sometime around Code Freeze. Ensure that at least one person from the Release Notes team attends this meeting with the Release Lead and Enhancements Lead. The Release Notes team should ensure that the "Major Themes" identified in this meeting are reflected in the "Major Themes" section of the release notes. If no one is able to attend the meeting, reach out to the Communications team, Release Lead or Enhancements Lead to ensure messaging around Major Themes is coordinated. - -### Get feedback from SIG Leads - -Around Code Freeze, the Release Notes team will get in touch with the SIG Leads to ensure that the Release Notes accurately reflect the major themes for their SIGs. The team will also ensure that major issues captured in the release notes are confirmed by the SIG leads before release day. - -If gentle nudging of SIG Leads is not effective in retrieving feedback/confirmation, the Release Notes Team can use a reasonable amount of creative liberty in completing the notes. - -### Clean up and edit the final document - -The confirmed notes are cleaned up and copy edited by the release-notes team to ensure uniform language/style is used. The team must make sure that the final document conforms to the [Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/). - -### Curate the External Dependencies Section - -A "Dependencies" section should be curated which outlines how external dependency versions have changed since the last release. These changes are currently [automatically aggregated](https://github.com/kubernetes/community/issues/2234), but should still be manually validated for correct content and formatting. - -## Release Cycle Milestone Activities: - -### Week 0 - -Create a table to track `Release`, `Branch Created Day`, `Week of Release`, `PR Merge Deadline`, `Release Notes Assignee` -and `Release Notes Reviewer` based on the release timeline. This will serve as an internal schedule and signup sheet for -the release notes team to follow. The schedule is used to track progress and give status updates during release team meetings. - -##### Release Team Meeting Updates - -For the release team meeting, provide a `status` based on the following criteria: -- A `Red` on our release notes status means that we are delayed past the deadline or there is a major blocker for our work to create Release Notes pull requests. -- A `Yellow` status generally means that we are still within the deadline of creating the Release Notes pull request, but -there are things (minor blockages, `krel` issues, etc.) that could cause a delay past the PR merge deadline. -- A `Green` status means that everything looks good and done from Release Notes team side, i.e. the release notes pull requests are being created, reviewed and merged before the deadline. Everything is A-OK here. - -### Week 1 - -Begin running release-notes tool for the ongoing collection of release notes with the first alpha release, which has been cut directly after the latest minor. - -- Update the `release-notes-draft.md` -- Verify release notes are available on (relnotes.k8s.io)[https://relnotes.k8s.io/] -- Begin attending release team meetings -- Informal intro meeting with release notes team to discuss contact information and logistics - -### Weeks 2 - 10 - -- Begin attending burndown meetings -- Same as above, but generate the notes for each `alpha` and `beta`. Announce in the #release-notes channel when the release notes PR is ready for review. - -#### Week 10 - -- Coordinate with Release Comms to ensure major themes of the release are checked in before Code Freeze; reach out to SIGs and release leads if additional coordination is needed. - -### Week 11 (Beginning of Code Freeze) - -- Create [known issues issue](known-issues-bucket.md) in `kubernetes/kubernetes` to capture known issues for the release. -- Share created doc with release-team -- Send [an email to SIG-leads](sig-leads-email.md) to ensure major changes for their SIGs are accurately reflected in the release notes -- Start determining major themes for release notes template to send to SIG-leads - -### Weeks 13-16 - -- Repeat previous tasks until the final copy is complete -- Ensure "known issues" section is incorporated into a final document - -### Week 15 - -- Finalize subteam lead for subsequent release -- Work with SIG-leads to finalize major themes for release-notes -- Copy edit notes for spelling, grammar and uniform style - -### Week 16 - -- Start attending daily burndown meetings - -### Week 17 - -- __Release day__ -- Final version of release notes committed for release -- Close the _Known Issues_ Issue and make sure everything has been resolved -- Release Notes must be merged into master prior to the release. If this is not done the release will include the latest draft. -- Keep an eye on the #release-notes channel for any requests for any questions, edits or missed release notes. - -### Week 19 - -- Release retrospective participation -- Update the Release Notes Team Handbook to include any tool documentation, debugging tips, etc. that were discovered during the release cycle -- Update the TODOs section at the end of each release for the next Release Notes Team - -## Tools -- [krel](https://github.com/kubernetes/release/tree/master/docs/krel) The Kubernetes Release Toolbox *(note: always use the latest version of krel to ensure you have the latest fixes/patches)* -- [The krel `release-notes` subcommand](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md) -- [The old release notes tool](https://github.com/kubernetes/release/tree/master/cmd/release-notes) -- [Release notes website](https://relnotes.k8s.io) *(note: release notes website is only required for the final release)* -- [go-modiff](https://github.com/saschagrunert/go-modiff) -- [Hackmd](https://hackmd.io/) -- [LWKD](http://lwkd.info) *(note: consider contributing to LWKD as part of your role)* -- [Kubernetes Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/) - -## Debugging Tips - -If you are having trouble running the `krel` tool, here are some common issues and solutions: - -1. Try running with `--log-level=debug` or `--log-level=trace` to get more information about what is going wrong. -2. A temp directory gets created at `/var/folders/7t/273pt80d51l70mj4rxznq_lm0000gn/T/<k8s-hash>` when the `krel` tool is called. -If this data is stale, you can try clearing to remove old data with `rm -rf /var/folders/7t/273pt80d51l70mj4rxznq_lm0000gn/T/k8s` - -Checkout the documentation for the [krel `release-notes` subcommand](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md). - -## Release Notes File Structure - -All the release notes for a release are stored under the [releases](https://github.com/kubernetes/sig-release/tree/master/releases) -directory in the sig-release repo. - -For each release there is a JSON and markdown file that contains the collected release notes across path releases. For example, -the 1.30 release [markdown file](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.30/release-notes/release-notes-draft.md) -contains all the correctly formatted release notes text for the 1.30 release. The [JSON file](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.30/release-notes/release-notes-draft.json) -contains the release notes metadata that is used to generate the markdown file. - -When a release notes team member runs the `krel release-notes` command, a new session is created so that you can pause and resume -the editing process. For example the 1.30 release notes sessions are stored in the [sessions](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.30/release-notes/sessions) -directory in the sig-release repo under `release-1.30`. - -If a release notes team member finds a mistake in the release notes, the edit will be saved as a map yaml file in the [maps](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.30/release-notes/maps) -directory. These maps are used to generate the markdown file and JSON file with the correctly edited release note. - -## TODOs - -As a Release Notes shadow, if you are interested in contributing to the improvement of the release notes process, consider the following -areas of improvement: - -#### Github Workflow to Detect Common Release Note Issues - -- YAML linter to block invalid yaml merging in from manually edited release notes. If suggestions are commited that have -invalid yaml, the krel tool will not be able to be run on the next release until the error is fixed in a separate pr. -See [example PR](https://github.com/kubernetes/sig-release/pull/2446) from the 1.30 release that unblocked the `v1.30.0-alpha.3` release. -- Spell check based on dictionary of common Kubernetes terms. -- Check for correct punctuation in release notes. -- Check for incorrect tense in release notes. -- Look into using [Vale.sh](https://vale.sh/) or the [Valve GitHub action](https://github.com/errata-ai/vale) to add editorial checks to the release notes PR - -Some initial work has been done in [this GitHub workflow](https://github.com/npolshakova/sig-release/blob/npolshak/workflow/.github/workflows/release-notes-checker.yaml) to introduce checks for common issues in release notes. -Here is an [example run of the workflow](https://github.com/rudrakshkarpe/sig-release/actions/runs/8073807523/job/22058097731) for the 1.30.0-alpha2 release. This is a good starting point for further improvements. - -#### Release Notes tool to automatically process language - -If any team members have NLP experience, implement functionality in release-notes tool to automatically process language in generated release notes file - -Goals: - -- Generate uniform style across release notes (ie. past tense, formatting). -- Decrease copy editing time. - -#### Release Notes Machine Learning Classifier - -The idea is to build a continuous release notes improvement process to train a machine learning model to classify. -release notes as good or bad. The input for the model should be created continuously during the whole release cycle. -by Release Notes Team of SIG Release. See the [issue](https://github.com/kubernetes/enhancements/issues/1833) for more details. - -#### Krel tool improvements - -- Update krel tool to show progress of how many PRs to review are left and other bugs. +# Kubernetes Release Team: Release Notes + +- [Kubernetes Release Team: Release Notes](#kubernetes-release-team-release-notes) + - [Overview:](#overview) + - [Prerequisites for Release Notes Lead and Shadows](#prerequisites-for-release-notes-lead-and-shadows) + - [General Requirements](#general-requirements) + - [Skills and Experience Requirements](#skills-and-experience-requirements) + - [Time Requirements](#time-requirements) + - [Onboarding Session (week 1) ~1 hour](#onboarding-session-week-1-1-hour) + - [Early and mid release cycle (weeks 1-8) ~1-5 hours/week](#early-and-mid-release-cycle-weeks-1-8-1-5-hoursweek) + - [Late release cycle (weeks 9-12+) ~4-10 hours/week](#late-release-cycle-weeks-9-12-4-10-hoursweek) + - [GitHub Organization Membership](#github-organization-membership) + - [Machine and GitHub Setup](#machine-and-github-setup) + - [Setup krel](#setup-krel) + - [Fork the kubernetes repositories](#fork-the-kubernetes-repositories) + - [Tasks and Responsibilities](#tasks-and-responsibilities) + - [Manage permissions](#manage-permissions) + - [Setup the Tools and Generate the Release Notes](#setup-the-tools-and-generate-the-release-notes) + - [Periodically review and fix new release notes](#periodically-review-and-fix-new-release-notes) + - [Attend Release Meetings and follow #sig-release](#attend-release-meetings-and-follow-sig-release) + - [Maintain the _Known Issues_ Issue](#maintain-the-known-issues-issue) + - [Ensure Major Themes are Reflected in the Notes](#ensure-major-themes-are-reflected-in-the-notes) + - [Get feedback from SIG Leads](#get-feedback-from-sig-leads) + - [Clean up and edit the final document](#clean-up-and-edit-the-final-document) + - [Curate the External Dependencies Section](#curate-the-external-dependencies-section) + - [Release Cycle Milestone Activities:](#release-cycle-milestone-activities) + - [Week 1](#week-1) + - [Weeks 2 - 10](#weeks-2---10) + - [Week 4](#week-4) + - [Week 10](#week-10) + - [Week 11 (Begin of Code Freeze)](#week-11-begin-of-code-freeze) + - [Weeks 13-16](#weeks-13-16) + - [Week 15](#week-15) + - [Week 16](#week-16) + - [Week 17](#week-17) + - [Week 19](#week-19) + - [Tools](#tools) + - [TODOs](#todos) + - [Post 1.17 TODOs](#post-117-todos) + - [If any team members have NLP experience](#if-any-team-members-have-nlp-experience) + +## Overview: + +The Release Notes role is responsible for collecting and fine-tuning release-notes from the many contributions to Kubernetes between release cycles. This role is likely to find that work during the first several weeks of the release cycle is very laid back with the bulk of the tasks being completed at the end, once the release is firmed up. + +The release lead will be responsible for introducing shadows to the team and the release notes subcommand in [krel](https://github.com/kubernetes/release/tree/master/docs/krel) and may ask shadows to run it and make the update PR’s. The release notes lead should indicate pain points and known issues to the shadows (if there are any) and work on strategies for overcoming them to avoid their coalescence during the later weeks. + +If there are potential fixes to the issues indicated and team members are keen, fixes and automation of the process is very welcome but not expected. + +## Prerequisites for Release Notes Lead and Shadows + +### General Requirements + +**Before continuing on to the Release Notes specific requirements listed below, please review and work through the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md).** + +### Skills and Experience Requirements + +- Strong written and verbal communications skills +- A working knowledge of Kubernetes concepts +- Project management experience is helpful but not required +- The release notes lead should take the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) training course + +### Time Requirements + +Compared to other release team roles, release notes is one of the least time intensive roles. + +#### Onboarding Session (week 1) ~1 hour + +In the first week of the release cycle, the Release Notes Lead will organize an onboarding session with the shadows to go over general responsibilities and expectations. + +#### Early and mid release cycle (weeks 1-8) ~1-5 hours/week + +In the first 8 weeks of the cycle, the Release Notes team must attend weekly release meetings and run the [release-notes subcommand of krel](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md) for every `alpha`, `beta` and `rc` to create an early draft of the release notes. This ensures that the overall quality of the release notes can be verified from the beginning of the release cycle. + +#### Late release cycle (weeks 9-12+) ~4-10 hours/week + +This period has an increase in release team meetings each week and there is also significantly more work to do to ensure the release notes are in good working order for the release. + +The `release-notes` subcommand of `krel` must continue to be run on the release branch (for `beta` and `rc` releases) in order to pull in any outstanding PRs that are merged between the beginning of code freeze and the release. + +### GitHub Organization Membership + +As well as becoming a member of the kubernetes GitHub organization as discussed in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md), release notes members should ensure that they [become members of the kubernetes-sigs GitHub organization](https://github.com/kubernetes/community/blob/master/community-membership.md#kubernetes-ecosystem). The tooling used by the release notes team creates pull requests kubernetes and kubernetes-sigs repositories, so membership of both is needed to streamline reviews. + +### Machine and GitHub Setup + +#### Setup krel + +[Install Go](https://golang.org/doc/install) in your machine and follow the [instructions to build the release tools](https://github.com/kubernetes/release/tree/master/docs/krel#installation) in your machine. Check the system requirements in the krel documentation. + +#### Fork the kubernetes repositories + +Fork the following repositories to your GitHub account, and clone them using SSH: + + - [`kubernetes/sig-release`](https://github.com/kubernetes/sig-release): This is where you will push regular PRs to keep the Release Notes draft up to date. + - [`kubernetes-sigs/release-notes`](https://github.com/kubernetes-sigs/release-notes): This repo has the [release notes website](https://relnotes.k8s.io) sources + +## Tasks and Responsibilities + +### Manage permissions + +Release Notes lead should be responsible for granting team members required access: +1. Add OWNERS file into release notes directory. [Sample PR](https://github.com/kubernetes/sig-release/pull/1943) for v1.25 release. +2. Add release notes team members for CHANGELOG review/approval. + [Sample PR](https://github.com/kubernetes/kubernetes/pull/112045) for v1.25 release. +3. Typically, the release lead updates the [release-team-release-notes](https://github.com/kubernetes/org/blob/main/config/kubernetes/sig-release/teams.yaml) GitHub team along with other teams in a single PR; check the PR and make sure the release notes team has been updated, otherwise open a PR yourself [Sample PR](https://github.com/kubernetes/org/pull/3735). + +### Setup the Tools and Generate the Release Notes + +The main task of the Release Notes team is the generation of the release notes during the release cycle. + +At least one member of the Release Notes Team should be responsible for [setting up](https://github.com/kubernetes/release/tree/master/docs/krel#installation) and [running](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md) the release-notes subcommand of krel to generate the release notes after each Patch Release: + +1. Update the release notes draft, a markdown file which will become the final document which will encompass all release notes written by contributors during the current release cycle. See previous drafts for versions [1.25](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.25/release-notes/release-notes-draft.md), [v1.24](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.24/release-notes/release-notes-draft.md) or [v1.23](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.23/release-notes/release-notes-draft.md). + +Detailed instructions for generating the release notes bundle is in the [krel release-notes subcommand documentation](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md). + +### Periodically review and fix new release notes + +The Release Notes team must make sure that the final document includes well written and informative release notes. To achieve a high-quality document the team should review and edit the +notes by running `krel release-notes --fix` weekly or as often as development pace +demands. + +This command will enable the team to review each release note and edit the note's data. +It is recommended that the team splits the work among all members and runs the editing flow +on a weekly or biweekly basis. More information about the editing flow can be found in +a separate document detailing the [editing process and tooling](editing-flow.md). + +The general style guide for release notes includes checking for: +- Past tense: Release notes should be written in the past tense since the changes have already been implemented. +- Technical jargon: While the notes are generally user-friendly, some technical terms like "VAC" or "scheduling hints" could be explained briefly with backticks or double quotes for users unfamiliar with them. +- Additional context: In some cases, providing more context about the problem these changes address or the specific situations where they're relevant could be helpful for understanding their significance. You can find additional context referenced in the PR in k8s/k8s repo to check what the PR does for end users. + +Additional style guidelines can be found in the [Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/). + +### Attend Release Meetings and follow #sig-release + +The Release Notes Lead and Shadows attend burn down meetings, SIG Release meetings and follow the [#sig-release](https://kubernetes.slack.com/messages/C2C40FMNF) Slack channel for relevant information throughout the release cycle. + +### Maintain the _Known Issues_ Issue + +A ["Known Issues Umbrella Issue"](known-issues-bucket.md) for the release must be created by the release notes team in [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/issues/new) so issues can be collected for the "Known Issues" section of the release notes. See previous known issues for [1.25](https://github.com/kubernetes/kubernetes/issues/110336), [1.24](https://github.com/kubernetes/kubernetes/issues/109027), [v1.23](https://github.com/kubernetes/kubernetes/issues/104885), [v1.22](https://github.com/kubernetes/kubernetes/issues/101728), [v1.21](https://github.com/kubernetes/kubernetes/issues/98232), [v1.19](https://github.com/kubernetes/kubernetes/issues/90304), [v1.18](https://github.com/kubernetes/kubernetes/issues/86882) or [v1.17](https://github.com/kubernetes/kubernetes/issues/83683). + +### Ensure Major Themes are Reflected in the Notes + +The Communications team will hold a meeting to discuss Major Themes sometime around Code Freeze. Ensure that at least one person from the Release Notes team attends this meeting with the Release Lead and Enhancements Lead. The Release Notes team should ensure that the "Major Themes" identified in this meeting are reflected in the "Major Themes" section of the release notes. If no one is able to attend the meeting, reach out to the Communications team, Release Lead or Enhancements Lead to ensure messaging around Major Themes is coordinated. + +### Get feedback from SIG Leads + +Around Code Freeze, the Release Notes team will get in touch with the SIG Leads to ensure that the Release Notes accurately reflect the major themes for their SIGs. The team will also ensure that major issues captured in the release notes are confirmed by the SIG leads before release day. + +If gentle nudging of SIG Leads is not effective in retrieving feedback/confirmation, the Release Notes Team can use a reasonable amount of creative liberty in completing the notes. + +### Clean up and edit the final document + +The confirmed notes are cleaned up and copy edited by the release-notes team to ensure uniform language/style is used. The team must make sure that the final document conforms to the [Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/). + +### Curate the External Dependencies Section + +A "Dependencies" section should be curated which outlines how external dependency versions have changed since the last release. These changes are currently [automatically aggregated](https://github.com/kubernetes/community/issues/2234), but should still be manually validated for correct content and formatting. + +## Release Cycle Milestone Activities: + +### Week 0 + +Create a table to track `Release`, `Branch Created Day`, `Week of Release`, `PR Merge Deadline`, `Release Notes Assignee` +and `Release Notes Reviewer` based on the release timeline. This will serve as an internal schedule and signup sheet for +the release notes team to follow. The schedule is used to track progress and give status updates during release team meetings. + +##### Release Team Meeting Updates + +For the release team meeting, provide a `status` based on the following criteria: +- A `Red` on our release notes status means that we are delayed past the deadline or there is a major blocker for our work to create Release Notes pull requests. +- A `Yellow` status generally means that we are still within the deadline of creating the Release Notes pull request, but +there are things (minor blockages, `krel` issues, etc.) that could cause a delay past the PR merge deadline. +- A `Green` status means that everything looks good and done from Release Notes team side, i.e. the release notes pull requests are being created, reviewed and merged before the deadline. Everything is A-OK here. + +### Week 1 + +Begin running release-notes tool for the ongoing collection of release notes with the first alpha release, which has been cut directly after the latest minor. + +- Update the `release-notes-draft.md` +- Verify release notes are available on (relnotes.k8s.io)[https://relnotes.k8s.io/] +- Begin attending release team meetings +- Informal intro meeting with release notes team to discuss contact information and logistics + +### Weeks 2 - 10 + +- Begin attending burndown meetings +- Same as above, but generate the notes for each `alpha` and `beta`. Announce in the #release-notes channel when the release notes PR is ready for review. + +#### Week 10 + +- Coordinate with Release Comms to ensure major themes of the release are checked in before Code Freeze; reach out to SIGs and release leads if additional coordination is needed. + +### Week 11 (Beginning of Code Freeze) + +- Create [known issues issue](known-issues-bucket.md) in `kubernetes/kubernetes` to capture known issues for the release. +- Share created doc with release-team +- Send [an email to SIG-leads](sig-leads-email.md) to ensure major changes for their SIGs are accurately reflected in the release notes +- Start determining major themes for release notes template to send to SIG-leads + +### Weeks 13-16 + +- Repeat previous tasks until the final copy is complete +- Ensure "known issues" section is incorporated into a final document + +### Week 15 + +- Finalize subteam lead for subsequent release +- Work with SIG-leads to finalize major themes for release-notes +- Copy edit notes for spelling, grammar and uniform style + +### Week 16 + +- Start attending daily burndown meetings + +### Week 17 + +- __Release day__ +- Final version of release notes committed for release +- Close the _Known Issues_ Issue and make sure everything has been resolved +- Release Notes must be merged into master prior to the release. If this is not done the release will include the latest draft. +- Keep an eye on the #release-notes channel for any requests for any questions, edits or missed release notes. + +### Week 19 + +- Release retrospective participation +- Update the Release Notes Team Handbook to include any tool documentation, debugging tips, etc. that were discovered during the release cycle +- Update the TODOs section at the end of each release for the next Release Notes Team + +## Tools +- [krel](https://github.com/kubernetes/release/tree/master/docs/krel) The Kubernetes Release Toolbox *(note: always use the latest version of krel to ensure you have the latest fixes/patches)* +- [The krel `release-notes` subcommand](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md) +- [The old release notes tool](https://github.com/kubernetes/release/tree/master/cmd/release-notes) +- [Release notes website](https://relnotes.k8s.io) *(note: release notes website is only required for the final release)* +- [go-modiff](https://github.com/saschagrunert/go-modiff) +- [Hackmd](https://hackmd.io/) +- [LWKD](http://lwkd.info) *(note: consider contributing to LWKD as part of your role)* +- [Kubernetes Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/) + +## Debugging Tips + +If you are having trouble running the `krel` tool, here are some common issues and solutions: + +1. Try running with `--log-level=debug` or `--log-level=trace` to get more information about what is going wrong. +2. A temp directory gets created at `/var/folders/7t/273pt80d51l70mj4rxznq_lm0000gn/T/<k8s-hash>` when the `krel` tool is called. +If this data is stale, you can try clearing to remove old data with `rm -rf /var/folders/7t/273pt80d51l70mj4rxznq_lm0000gn/T/k8s` + +Checkout the documentation for the [krel `release-notes` subcommand](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md). + +## Release Notes File Structure + +All the release notes for a release are stored under the [releases](https://github.com/kubernetes/sig-release/tree/master/releases) +directory in the sig-release repo. + +For each release there is a JSON and markdown file that contains the collected release notes across path releases. For example, +the 1.30 release [markdown file](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.30/release-notes/release-notes-draft.md) +contains all the correctly formatted release notes text for the 1.30 release. The [JSON file](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.30/release-notes/release-notes-draft.json) +contains the release notes metadata that is used to generate the markdown file. + +When a release notes team member runs the `krel release-notes` command, a new session is created so that you can pause and resume +the editing process. For example the 1.30 release notes sessions are stored in the [sessions](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.30/release-notes/sessions) +directory in the sig-release repo under `release-1.30`. + +If a release notes team member finds a mistake in the release notes, the edit will be saved as a map yaml file in the [maps](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.30/release-notes/maps) +directory. These maps are used to generate the markdown file and JSON file with the correctly edited release note. + +## TODOs + +As a Release Notes shadow, if you are interested in contributing to the improvement of the release notes process, consider the following +areas of improvement: + +#### Github Workflow to Detect Common Release Note Issues + +- YAML linter to block invalid yaml merging in from manually edited release notes. If suggestions are commited that have +invalid yaml, the krel tool will not be able to be run on the next release until the error is fixed in a separate pr. +See [example PR](https://github.com/kubernetes/sig-release/pull/2446) from the 1.30 release that unblocked the `v1.30.0-alpha.3` release. +- Spell check based on dictionary of common Kubernetes terms. +- Check for correct punctuation in release notes. +- Check for incorrect tense in release notes. +- Look into using [Vale.sh](https://vale.sh/) or the [Valve GitHub action](https://github.com/errata-ai/vale) to add editorial checks to the release notes PR + +Some initial work has been done in [this GitHub workflow](https://github.com/npolshakova/sig-release/blob/npolshak/workflow/.github/workflows/release-notes-checker.yaml) to introduce checks for common issues in release notes. +Here is an [example run of the workflow](https://github.com/rudrakshkarpe/sig-release/actions/runs/8073807523/job/22058097731) for the 1.30.0-alpha2 release. This is a good starting point for further improvements. + +#### Release Notes tool to automatically process language + +If any team members have NLP experience, implement functionality in release-notes tool to automatically process language in generated release notes file + +Goals: + +- Generate uniform style across release notes (ie. past tense, formatting). +- Decrease copy editing time. + +#### Release Notes Machine Learning Classifier + +The idea is to build a continuous release notes improvement process to train a machine learning model to classify. +release notes as good or bad. The input for the model should be created continuously during the whole release cycle. +by Release Notes Team of SIG Release. See the [issue](https://github.com/kubernetes/enhancements/issues/1833) for more details. + +#### Krel tool improvements + +- Update krel tool to show progress of how many PRs to review are left and other bugs. diff --git a/release-team/deprecated/release-notes/editing-flow.md b/release-team/deprecated/release-notes/editing-flow.md index fb14fc2d5d7..9a1b625a394 100644 --- a/release-team/deprecated/release-notes/editing-flow.md +++ b/release-team/deprecated/release-notes/editing-flow.md @@ -1,255 +1,255 @@ -# Release Notes Editing Flow - - [Introduction](#introduction) - - [Motivation](#motivation) - - [Workflow Operation](#workflow-operation) - - [krel release-notes --fix](#krel-release-notes--fix) - - [Starting the interactive mode](#starting-the-interactive-mode) - - [Reviewing and editing the release notes](#reviewing-and-editing-the-release-notes) - - [Exiting the review loop](#exiting-the-review-loop) - - [Submitting changes back](#submitting-changes-back) - - [Re-running the workflow](#re-running-the-workflow) - - [Modified Release Notes](#modified-release-notes) - - -## Introduction - -Ensuring the production of a document comprised of well written and -informative release notes is one of the responsibilities of the -Release Team each cycle. - -A good introduction talk is the "[Lightning Talk: Kubernetes Release Notes Tips & Tricks](https://www.youtube.com/watch?v=n62oPohOyYs)" -where you can find some general guidelines about the release notes -(wording, grammar, labels, etc). - -Release Engineering has developed various tools to help the Team -complete its duties. One of them is `krel` — the [Kubernetes Release -Toolbox](https://github.com/kubernetes/release/tree/master/docs/krel). -Krel has many subcommands that help the release process in many ways, -among them the `release-notes` subcommand. - -This document details how to use krel to review and edit the -Kubernetes release notes during the cycle. - -## Motivation - -The final Kubernetes Release Notes document is a large document composed of -hundreds of entries that the contributors write into their Pull Requests. As -an example, the [release notes document for Kubernetes 1.19](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.19.md) -has 388 entries. - -Before v1.20, the Release Notes Team had to wait until code freeze to review -and edit each Kubernetes release note in a short time. During the same -timespan, the Team was expected to contact the sigs and edit the Major themes. -Work was unbalanced with little to do most of the cycle and a packed -agenda during the last few weeks. - -To balance the team's efforts evenly, tooling was developed to enable a new workflow. - -## Workflow Operation - -Reviewing the release notes involves running krel regularly to review new release -notes in incoming pull requests, possibly editing some of them, and submitting -changes back to the `sig-release` repository. - -### `krel release-notes --fix` - -The main interactive editing flow is started with the `--fix` flag. The interactive -mode will show the user all release notes that need to be reviewed. After -reviewing each note, the user can edit the note's attributes using their editor of -choice. - -The `--fix` flag is available when invoking krel with the `--create-draft-pr` option. -This is an example invocation to edit the release notes for Kubernetes v1.19: - -```bash -krel release-notes --create-draft-pr --org=MyGitHubOrg --fix --tag=v1.19.0 -``` -As with all `krel release-notes` subcommands, a GitHub token must be exported in -an environment variable called `GITHUB_TOKEN`. The user should supply their GitHub -organization where krel will push changes and from where it will create pull -requests. - -After invoking the subcommand, krel will clone the `kubernetes/kubernetes` repository -and query GitHub for all pull requests filed during the specified range. Note that -this process might take a long time, particularly at the end of the cycle when the -branch has lots of commits. - -Since the note gatherer hits the GitHub API quite heavily, you will get rate limited. -During a normal operation `krel` will handle them correctly, but you may find yourself -forced to wait when doing several runs after one another. - - -#### Starting the interactive mode - -When `--fix` is used, krel will switch to interactive mode. -It will print a short intro and prompt the user before starting: - -``` -Welcome to the Kubernetes Release Notes editing tool! - -This tool will allow you to review and edit all the release -notes submitted by the Kubernetes contributors before publishing -the updated draft. - -The flow will show each of the release notes that need to be -reviewed once and you can choose to edit it or not. - -After you choose, it will be marked as reviewed and will not -be shown during the next sessions unless you choose to do a -full review of all notes. - -You can hit Ctrl+C at any time to exit the review process -and submit the draft PR with the revisions made so far. - -Would you like to continue from the last session? (y/n): -``` - -#### Reviewing and editing the release notes - -Once started, the flow will present the user each release note to -review. If the user's notices a field that needs to be changed, -they might choose to edit that note. Here is an example: - -``` -Release Note for PR 92546: -========================== -Pull Request URL: https://github.com/kubernetes/kubernetes/pull/92546 - Author: @liggitt - SIGs: [api-machinery] - Kinds: [cleanup] - Areas: [custom-resources] - Feature: false - ActionRequired: false - ReleaseVersion: 1.19.0 - Text: - │ kube-apiserver: openapi schemas published for custom resources now reference - │ standard ListMeta schema definitions - -- Fix note for PR #92546? (y/N): - -``` - -If the user chooses to edit the note when prompted, krel will open the current note -in the default editor (defined in `$EDITOR`) for the user to edit: - -``` ---- -# This is the current map for this Pull Request. -# The original note content is commented out, if you need to -# change a field, remove the comment and change the value. -# To cancel, exit without changing anything or leave the file blank. -# Important! pr: and releasenote: have to be uncommented. -# -# pr: 92546 -# releasenote: -# text: 'kube-apiserver: openapi schemas published for custom resources now reference -# standard ListMeta schema definitions' -# documentation: [] -# author: liggitt -# areas: -# - custom-resources -# kinds: -# - cleanup -# sigs: -# - api-machinery -# feature: false -# action_required: false -# release_version: 1.19.0 -~ -~ -~ -``` - -By default, all the note's fields are commented out. The user can choose one or more -fields to uncomment and modify. If at least one field is modified, a [release note map -file](https://github.com/kubernetes/release/blob/master/docs/release-notes-maps.md) -will be created in the release directory after saving the file and exiting the editor. - -__Note:__ A valid map file should have at least the PR number and the releasenote struct. - -If the user makes an error (a YAML syntax error for example), krel will prompt the user -to retry editing the note: - -``` -ERRO The yaml code does not have a PR number -- An error occurred while editing PR #92546. Try again? (y/n) -``` - -#### Exiting the review loop - -When in the interactive cycle, krel will present the user with every release note that -has not yet been reviewed. It is not necessary to review all the notes in one go, at -any time the user may hit Ctrl+C and the interactive flow will exit at that point. - -To continue the editing process at a later time, `krel` will save its state -in the release directory. It will store information about each review session inside of -the `release-notes/sessions/`. The JSON files include the user's data and the release -notes reviewed during the session. - -At this point, krel will create the current release notes draft. This file is the -latest version of the automatically generated release notes and is made public for -any interested party to review. - -### Submitting changes back - -After exiting the interactive mode, krel will prompt the user to create a pull request -submitting all changes back to the sig-release repository: - -``` -INFO Release Notes Draft written to /tmp/k8s-730127624/releases/release-1.19/release-notes-draft.md -Create pull request with your changes? (y/n): -``` - -If the user choses so, krel will create the pull request on their behalf by creating a -branch in their sig-release fork, pushing the changes, and creating the PR in GitHub. - -Note that the PR will include the release notes draft with all changes defined in -the maps during the editing flow. All the mapping files and session data will be -submitted in the same PR. - -If the user cancels the PR, the local fork of sig-release will be left in a temporary -directory with all changes done by krel. To submit the changes back to sig-release, -the user will be required to push and create the PR manually. To assist them with this -process, krel will show some instructions: - -``` -Create pull request with your changes? (y/n): n -Pull request creation was canceled. Your local copy of k/sig-release -has not been deleted for you to review your changes. You may -push your changes to your fork and create the PR from there. - -Your fork of kubernetes/sig-release was cloned here: -/tmp/k8s-730127624 - -WARN Pull request canceled. Local changes were not pushed back. -``` - -Needless to say, all editing not PR'ed back to sig-release will be lost. - -### Re-running the workflow - -It is highly recommended that the Release Notes team runs the editing flow -frequently (say on a weekly basis), alternating team members ensure the -current user has a reasonable amount of work to do and the editing effort -is split fairly. - -Thanks to the session files, each subsequent run of krel will remember where -it left off. This means that each user will need to review only new Pull -Requests that are filed after the last run. - -#### Modified Release Notes - -During the release cycle, each Pull Request author and/or admins may modify -the release note and/or flags in GitHub. When this happens, krel will detect -the change and will present the note again for review, flagging it so that the -user knows that the contents have been modified: - -``` -Release Note for PR 92546: -✨ Note contents are modified with a map -========================== -Pull Request URL: https://github.com/kubernetes/kubernetes/pull/92546 - Author: @liggitt - SIGs: [api-machinery] -``` - +# Release Notes Editing Flow + - [Introduction](#introduction) + - [Motivation](#motivation) + - [Workflow Operation](#workflow-operation) + - [krel release-notes --fix](#krel-release-notes--fix) + - [Starting the interactive mode](#starting-the-interactive-mode) + - [Reviewing and editing the release notes](#reviewing-and-editing-the-release-notes) + - [Exiting the review loop](#exiting-the-review-loop) + - [Submitting changes back](#submitting-changes-back) + - [Re-running the workflow](#re-running-the-workflow) + - [Modified Release Notes](#modified-release-notes) + + +## Introduction + +Ensuring the production of a document comprised of well written and +informative release notes is one of the responsibilities of the +Release Team each cycle. + +A good introduction talk is the "[Lightning Talk: Kubernetes Release Notes Tips & Tricks](https://www.youtube.com/watch?v=n62oPohOyYs)" +where you can find some general guidelines about the release notes +(wording, grammar, labels, etc). + +Release Engineering has developed various tools to help the Team +complete its duties. One of them is `krel` — the [Kubernetes Release +Toolbox](https://github.com/kubernetes/release/tree/master/docs/krel). +Krel has many subcommands that help the release process in many ways, +among them the `release-notes` subcommand. + +This document details how to use krel to review and edit the +Kubernetes release notes during the cycle. + +## Motivation + +The final Kubernetes Release Notes document is a large document composed of +hundreds of entries that the contributors write into their Pull Requests. As +an example, the [release notes document for Kubernetes 1.19](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.19.md) +has 388 entries. + +Before v1.20, the Release Notes Team had to wait until code freeze to review +and edit each Kubernetes release note in a short time. During the same +timespan, the Team was expected to contact the sigs and edit the Major themes. +Work was unbalanced with little to do most of the cycle and a packed +agenda during the last few weeks. + +To balance the team's efforts evenly, tooling was developed to enable a new workflow. + +## Workflow Operation + +Reviewing the release notes involves running krel regularly to review new release +notes in incoming pull requests, possibly editing some of them, and submitting +changes back to the `sig-release` repository. + +### `krel release-notes --fix` + +The main interactive editing flow is started with the `--fix` flag. The interactive +mode will show the user all release notes that need to be reviewed. After +reviewing each note, the user can edit the note's attributes using their editor of +choice. + +The `--fix` flag is available when invoking krel with the `--create-draft-pr` option. +This is an example invocation to edit the release notes for Kubernetes v1.19: + +```bash +krel release-notes --create-draft-pr --org=MyGitHubOrg --fix --tag=v1.19.0 +``` +As with all `krel release-notes` subcommands, a GitHub token must be exported in +an environment variable called `GITHUB_TOKEN`. The user should supply their GitHub +organization where krel will push changes and from where it will create pull +requests. + +After invoking the subcommand, krel will clone the `kubernetes/kubernetes` repository +and query GitHub for all pull requests filed during the specified range. Note that +this process might take a long time, particularly at the end of the cycle when the +branch has lots of commits. + +Since the note gatherer hits the GitHub API quite heavily, you will get rate limited. +During a normal operation `krel` will handle them correctly, but you may find yourself +forced to wait when doing several runs after one another. + + +#### Starting the interactive mode + +When `--fix` is used, krel will switch to interactive mode. +It will print a short intro and prompt the user before starting: + +``` +Welcome to the Kubernetes Release Notes editing tool! + +This tool will allow you to review and edit all the release +notes submitted by the Kubernetes contributors before publishing +the updated draft. + +The flow will show each of the release notes that need to be +reviewed once and you can choose to edit it or not. + +After you choose, it will be marked as reviewed and will not +be shown during the next sessions unless you choose to do a +full review of all notes. + +You can hit Ctrl+C at any time to exit the review process +and submit the draft PR with the revisions made so far. + +Would you like to continue from the last session? (y/n): +``` + +#### Reviewing and editing the release notes + +Once started, the flow will present the user each release note to +review. If the user's notices a field that needs to be changed, +they might choose to edit that note. Here is an example: + +``` +Release Note for PR 92546: +========================== +Pull Request URL: https://github.com/kubernetes/kubernetes/pull/92546 + Author: @liggitt + SIGs: [api-machinery] + Kinds: [cleanup] + Areas: [custom-resources] + Feature: false + ActionRequired: false + ReleaseVersion: 1.19.0 + Text: + │ kube-apiserver: openapi schemas published for custom resources now reference + │ standard ListMeta schema definitions + +- Fix note for PR #92546? (y/N): + +``` + +If the user chooses to edit the note when prompted, krel will open the current note +in the default editor (defined in `$EDITOR`) for the user to edit: + +``` +--- +# This is the current map for this Pull Request. +# The original note content is commented out, if you need to +# change a field, remove the comment and change the value. +# To cancel, exit without changing anything or leave the file blank. +# Important! pr: and releasenote: have to be uncommented. +# +# pr: 92546 +# releasenote: +# text: 'kube-apiserver: openapi schemas published for custom resources now reference +# standard ListMeta schema definitions' +# documentation: [] +# author: liggitt +# areas: +# - custom-resources +# kinds: +# - cleanup +# sigs: +# - api-machinery +# feature: false +# action_required: false +# release_version: 1.19.0 +~ +~ +~ +``` + +By default, all the note's fields are commented out. The user can choose one or more +fields to uncomment and modify. If at least one field is modified, a [release note map +file](https://github.com/kubernetes/release/blob/master/docs/release-notes-maps.md) +will be created in the release directory after saving the file and exiting the editor. + +__Note:__ A valid map file should have at least the PR number and the releasenote struct. + +If the user makes an error (a YAML syntax error for example), krel will prompt the user +to retry editing the note: + +``` +ERRO The yaml code does not have a PR number +- An error occurred while editing PR #92546. Try again? (y/n) +``` + +#### Exiting the review loop + +When in the interactive cycle, krel will present the user with every release note that +has not yet been reviewed. It is not necessary to review all the notes in one go, at +any time the user may hit Ctrl+C and the interactive flow will exit at that point. + +To continue the editing process at a later time, `krel` will save its state +in the release directory. It will store information about each review session inside of +the `release-notes/sessions/`. The JSON files include the user's data and the release +notes reviewed during the session. + +At this point, krel will create the current release notes draft. This file is the +latest version of the automatically generated release notes and is made public for +any interested party to review. + +### Submitting changes back + +After exiting the interactive mode, krel will prompt the user to create a pull request +submitting all changes back to the sig-release repository: + +``` +INFO Release Notes Draft written to /tmp/k8s-730127624/releases/release-1.19/release-notes-draft.md +Create pull request with your changes? (y/n): +``` + +If the user choses so, krel will create the pull request on their behalf by creating a +branch in their sig-release fork, pushing the changes, and creating the PR in GitHub. + +Note that the PR will include the release notes draft with all changes defined in +the maps during the editing flow. All the mapping files and session data will be +submitted in the same PR. + +If the user cancels the PR, the local fork of sig-release will be left in a temporary +directory with all changes done by krel. To submit the changes back to sig-release, +the user will be required to push and create the PR manually. To assist them with this +process, krel will show some instructions: + +``` +Create pull request with your changes? (y/n): n +Pull request creation was canceled. Your local copy of k/sig-release +has not been deleted for you to review your changes. You may +push your changes to your fork and create the PR from there. + +Your fork of kubernetes/sig-release was cloned here: +/tmp/k8s-730127624 + +WARN Pull request canceled. Local changes were not pushed back. +``` + +Needless to say, all editing not PR'ed back to sig-release will be lost. + +### Re-running the workflow + +It is highly recommended that the Release Notes team runs the editing flow +frequently (say on a weekly basis), alternating team members ensure the +current user has a reasonable amount of work to do and the editing effort +is split fairly. + +Thanks to the session files, each subsequent run of krel will remember where +it left off. This means that each user will need to review only new Pull +Requests that are filed after the last run. + +#### Modified Release Notes + +During the release cycle, each Pull Request author and/or admins may modify +the release note and/or flags in GitHub. When this happens, krel will detect +the change and will present the note again for review, flagging it so that the +user knows that the contents have been modified: + +``` +Release Note for PR 92546: +✨ Note contents are modified with a map +========================== +Pull Request URL: https://github.com/kubernetes/kubernetes/pull/92546 + Author: @liggitt + SIGs: [api-machinery] +``` + diff --git a/release-team/deprecated/release-notes/known-issues-bucket.md b/release-team/deprecated/release-notes/known-issues-bucket.md index 6220aff49f7..457808b336a 100644 --- a/release-team/deprecated/release-notes/known-issues-bucket.md +++ b/release-team/deprecated/release-notes/known-issues-bucket.md @@ -1,24 +1,24 @@ -First search in [Kubernetes -issues](https://github.com/kubernetes/kubernetes/issues) to ensure that an -issue hasn't already been created for `known issues` in the current release. Create a regular issue in -[kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/issues/new) -with a title such as: - -``` -<RELEASE NUMBER> Release Notes: "Known Issues" - -``` - -And a body such as: - -``` -This issue is a bucket placeholder for collaborating on the "Known Issues" additions for the 1.13 Release Notes. If you know of issues or API changes that are going out in 1.13, please comment here so that we can coordinate incorporating information about these changes in the Release Notes. - -/assign @<RELEASE NOTES TEAM MEMBERS> - -/sig release -/milestone v<RELEASE NUMBER> -``` - -Note: You need to be part of `kubernetes/kubernetes-milestone-maintainers` to -use the `/milestone` label. If this does not currently apply to you, send a message to the release notes lead or release lead to set the milestone. +First search in [Kubernetes +issues](https://github.com/kubernetes/kubernetes/issues) to ensure that an +issue hasn't already been created for `known issues` in the current release. Create a regular issue in +[kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/issues/new) +with a title such as: + +``` +<RELEASE NUMBER> Release Notes: "Known Issues" + +``` + +And a body such as: + +``` +This issue is a bucket placeholder for collaborating on the "Known Issues" additions for the 1.13 Release Notes. If you know of issues or API changes that are going out in 1.13, please comment here so that we can coordinate incorporating information about these changes in the Release Notes. + +/assign @<RELEASE NOTES TEAM MEMBERS> + +/sig release +/milestone v<RELEASE NUMBER> +``` + +Note: You need to be part of `kubernetes/kubernetes-milestone-maintainers` to +use the `/milestone` label. If this does not currently apply to you, send a message to the release notes lead or release lead to set the milestone. diff --git a/release-team/deprecated/release-notes/relnotes-template.md b/release-team/deprecated/release-notes/relnotes-template.md index c0564ef5bd4..28830048159 100644 --- a/release-team/deprecated/release-notes/relnotes-template.md +++ b/release-team/deprecated/release-notes/relnotes-template.md @@ -1,36 +1,36 @@ -<!-- TODO: change the previous version number --> - -## Changelog since v1.x.0 - -A complete changelog for the release notes is now hosted in a customizable -format at [https://relnotes.k8s.io][1]. Check it out and please give us your -feedback! - -<!-- TODO: change the version number --> - -[1]: https://relnotes.k8s.io/?releaseVersions=1.x.0 - -## What’s New (Major Themes) - -<!-- Add themes from Comms Blog here --> - -## Known Issues - -<!-- Add issues from known issues bucket (known-issues-bucket.md) here --> - -<!-- Insert the generated release notes here. Usually they look like: -## Urgent Upgrade Notes -### (No, really, you MUST read this before you upgrade) -## Changes by Kind -### Deprecation -### API Change -### Feature -### Design -### Documentation -### Failing Test -### Other (Bug, Cleanup or Flake) ---> - -## Dependencies - -<!-- Add here --> +<!-- TODO: change the previous version number --> + +## Changelog since v1.x.0 + +A complete changelog for the release notes is now hosted in a customizable +format at [https://relnotes.k8s.io][1]. Check it out and please give us your +feedback! + +<!-- TODO: change the version number --> + +[1]: https://relnotes.k8s.io/?releaseVersions=1.x.0 + +## What’s New (Major Themes) + +<!-- Add themes from Comms Blog here --> + +## Known Issues + +<!-- Add issues from known issues bucket (known-issues-bucket.md) here --> + +<!-- Insert the generated release notes here. Usually they look like: +## Urgent Upgrade Notes +### (No, really, you MUST read this before you upgrade) +## Changes by Kind +### Deprecation +### API Change +### Feature +### Design +### Documentation +### Failing Test +### Other (Bug, Cleanup or Flake) +--> + +## Dependencies + +<!-- Add here --> diff --git a/release-team/deprecated/release-notes/sig-leads-email.md b/release-team/deprecated/release-notes/sig-leads-email.md index 8a6dd28426a..438a8e76b7c 100644 --- a/release-team/deprecated/release-notes/sig-leads-email.md +++ b/release-team/deprecated/release-notes/sig-leads-email.md @@ -1,33 +1,33 @@ -Hey Everyone, - -My name is {NAME}, and I'm on the Release Notes Team for the {RELEASE NUMBER} release. - -We've put together a draft of the release notes document so far, but we need -your help to make sure that the work each SIG has contributed is reflected accurately. -Please check out the release notes draft document [here]({LINK HERE}) ASAP and: - -1. CTRL-F your SIG and edit/move notes to a more appropriate location--we just -ask that you do it as a suggestion so it's easy for the release notes team to -keep track of changes. - -For example, if you're the SIG lead of SIG CLI, then search for "SIG CLI". This -will show release notes that were contributed by your SIG as well as release -notes for features that were a collaboration between your SIG and other SIGs. - -2. If you know of anything that should appear in the "Known Issues" section of -the Release Notes, please leave a comment with the issue and a draft of the note -text on [this GitHub Issue]({LINK TO GITHUB ISSUE}) - -3. If you have some more time and want to help shape your SIG's sections of the -release notes for {RELEASE NUMBER}, there are a few more things you can do as well! - -- Copy-edit notes from your SIG that may contain what you know to be technical -inaccuracies, grammar inconsistencies, etc. -- Remove minor and/or non-user facing release notes contributed by your SIG -- In the sections where notes are attributed to multiple SIGs (including yours), -leave a comment if the note is more related to your SIG or one of the other SIGs. -We can then use this to further categorize the notes! - - -Thank you so much for helping put together release notes for your SIG, we know -you're busy and appreciate your support of the {RELEASE NUMBER} release! +Hey Everyone, + +My name is {NAME}, and I'm on the Release Notes Team for the {RELEASE NUMBER} release. + +We've put together a draft of the release notes document so far, but we need +your help to make sure that the work each SIG has contributed is reflected accurately. +Please check out the release notes draft document [here]({LINK HERE}) ASAP and: + +1. CTRL-F your SIG and edit/move notes to a more appropriate location--we just +ask that you do it as a suggestion so it's easy for the release notes team to +keep track of changes. + +For example, if you're the SIG lead of SIG CLI, then search for "SIG CLI". This +will show release notes that were contributed by your SIG as well as release +notes for features that were a collaboration between your SIG and other SIGs. + +2. If you know of anything that should appear in the "Known Issues" section of +the Release Notes, please leave a comment with the issue and a draft of the note +text on [this GitHub Issue]({LINK TO GITHUB ISSUE}) + +3. If you have some more time and want to help shape your SIG's sections of the +release notes for {RELEASE NUMBER}, there are a few more things you can do as well! + +- Copy-edit notes from your SIG that may contain what you know to be technical +inaccuracies, grammar inconsistencies, etc. +- Remove minor and/or non-user facing release notes contributed by your SIG +- In the sections where notes are attributed to multiple SIGs (including yours), +leave a comment if the note is more related to your SIG or one of the other SIGs. +We can then use this to further categorize the notes! + + +Thank you so much for helping put together release notes for your SIG, we know +you're busy and appreciate your support of the {RELEASE NUMBER} release! diff --git a/release-team/hack/sync-bug-triage-github-project-beta.sh b/release-team/hack/sync-bug-triage-github-project-beta.sh index 438fb8f41e8..719f6a77e7b 100755 --- a/release-team/hack/sync-bug-triage-github-project-beta.sh +++ b/release-team/hack/sync-bug-triage-github-project-beta.sh @@ -1,196 +1,196 @@ -#!/usr/bin/env bash - -# Copyright 2022 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Usage: `sync-bug-triage-github-project-beta.sh` -# Pre-requisite: add a GITHUB_TOKEN as the environment variable (Ref: https://github.com/kubernetes/org/issues/3558) - -set -eu -o pipefail - -: "${ORGANIZATION:=kubernetes}" -: "${REPOSITORY:=kubernetes}" - -PROJECT_NUMBER=${PROJECT_NUMBER:-} -MILESTONE=${MILESTONE:-} - -if [ "${GITHUB_TOKEN:-}" == "" ]; then - echo "[Error] Required environment variable \"GITHUB_TOKEN\" is not set." - exit 1 -fi - -if [ "$PROJECT_NUMBER" == "" ]; then - echo "[Error] Required environment variable \"PROJECT_NUMBER\" is not set." - exit 1 -fi - -if [ "$MILESTONE" == "" ]; then - echo "[Error] Required environment variable \"MILESTONE\" is not set." - exit 1 -fi - -GITHUB_TOKEN="$(echo "$GITHUB_TOKEN" | tr -d '\n')" - -milestone_issue_ids=() -milestone_pr_ids=() - - -## Function definitions - -function get_project_id_from_github_beta_project() { - query='.data.organization.projectV2.id' - - ID="$( gh api graphql -f query=' - query($org: String!, $number: Int!) { - organization(login: $org){ - projectV2(number: $number) { - id - fields(first:100) { - nodes { - ... on ProjectV2Field { - id - name - } - ... on ProjectV2SingleSelectField { - id - name - options { - id - name - } - } - } - } - } - } - }' -f org="${ORGANIZATION}" -F number="${PROJECT_NUMBER}" --jq "$query")" - echo "$ID" -} - - -echo 'Starting sync...' -echo -e "[INFO] Fetching the list of open issues and PRs from k/k under the current release milestone, ${MILESTONE}" - - -## Fetch issues -MILESTONE_ISSUES_JSON="$(gh api graphql --paginate -f query=' - query($org: String!, $repo: String!, $milestone: String!, $endCursor: String){ - repository(owner: $org, name: $repo) { - description - url - milestones(states: [OPEN],first:1, query: $milestone) { - nodes{ - issues(states:[OPEN], first: 100, after: $endCursor){ - nodes{ - id - } - pageInfo{ - hasNextPage - endCursor - } - } - } - } - } - }' -f org="${ORGANIZATION}" -f repo="${REPOSITORY}" -f milestone="${MILESTONE}")" - -milestone_issues=($(jq ".data.repository.milestones.nodes[].issues.nodes | length" <<< "${MILESTONE_ISSUES_JSON}")) - -for issues in "${milestone_issues[@]}" -do - for index in $(seq 0 $(( issues - 1 ))); - do - issue_id=($(jq ".data.repository.milestones.nodes[].issues.nodes[$index].id" <<< "${MILESTONE_ISSUES_JSON}")) - milestone_issue_ids+=("${issue_id[@]}") - done -done - - -## Fetch PRs -MILESTONE_PRS_JSON="$(gh api graphql --paginate -f query=' - query($org: String!, $repo: String!, $milestone: String!, $endCursor: String){ - repository(owner: $org, name: $repo) { - description - url - milestones(states: [OPEN],first:1, query: $milestone) { - nodes{ - pullRequests(states:[OPEN], first: 100, after: $endCursor){ - nodes{ - id - } - pageInfo{ - hasNextPage - endCursor - } - } - } - } - } - }' -f org="${ORGANIZATION}" -f repo="${REPOSITORY}" -f milestone="${MILESTONE}")" - - -milestone_prs=($(jq ".data.repository.milestones.nodes[].pullRequests.nodes | length" <<< "${MILESTONE_PRS_JSON}")) - -for prs in "${milestone_prs[@]}" -do - for index in $(seq 0 $(( prs - 1 ))); - do - pr_id=($(jq ".data.repository.milestones.nodes[].pullRequests.nodes[$index].id" <<< "${MILESTONE_PRS_JSON}")) - milestone_pr_ids+=("${pr_id[@]}") - done -done - - -## Fetch Project metadata -echo -e "[INFO] Getting metadata for the Bug Triage GitHub Beta Project with ID: ${PROJECT_NUMBER}" - -PROJECT_ID=$( get_project_id_from_github_beta_project) - - -## Add data to the Project Board -echo '[INFO] Feeding data from k/k issues into the GitHub Project Beta' - -for issue_id in "${milestone_issue_ids[@]}"; -do - # Issues - if [ "${issue_id}" != null ]; then - item_id="$( gh api graphql -f query=' - mutation($project:ID!, $issue:ID!) { - addProjectV2ItemById(input: {projectId: $project, contentId: $issue}) { - item { - id - } - } - }' -f project="${PROJECT_ID}" -f issue="${issue_id}" --jq '.data.addProjectV2ItemById.item.id')" - fi -done - -echo '[INFO] Feeding data from k/k PRs into the GitHub Project Beta' - -for pr_id in "${milestone_pr_ids[@]}"; -do - # PRs - if [ "${pr_id}" != null ]; then - item_id="$( gh api graphql -f query=' - mutation($project:ID!, $pr:ID!) { - addProjectV2ItemById(input: {projectId: $project, contentId: $pr}) { - item { - id - } - } - }' -f project="${PROJECT_ID}" -f pr="${pr_id}" --jq '.data.addProjectV2ItemById.item.id')" - fi -done - -echo 'Sync finished!' +#!/usr/bin/env bash + +# Copyright 2022 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Usage: `sync-bug-triage-github-project-beta.sh` +# Pre-requisite: add a GITHUB_TOKEN as the environment variable (Ref: https://github.com/kubernetes/org/issues/3558) + +set -eu -o pipefail + +: "${ORGANIZATION:=kubernetes}" +: "${REPOSITORY:=kubernetes}" + +PROJECT_NUMBER=${PROJECT_NUMBER:-} +MILESTONE=${MILESTONE:-} + +if [ "${GITHUB_TOKEN:-}" == "" ]; then + echo "[Error] Required environment variable \"GITHUB_TOKEN\" is not set." + exit 1 +fi + +if [ "$PROJECT_NUMBER" == "" ]; then + echo "[Error] Required environment variable \"PROJECT_NUMBER\" is not set." + exit 1 +fi + +if [ "$MILESTONE" == "" ]; then + echo "[Error] Required environment variable \"MILESTONE\" is not set." + exit 1 +fi + +GITHUB_TOKEN="$(echo "$GITHUB_TOKEN" | tr -d '\n')" + +milestone_issue_ids=() +milestone_pr_ids=() + + +## Function definitions + +function get_project_id_from_github_beta_project() { + query='.data.organization.projectV2.id' + + ID="$( gh api graphql -f query=' + query($org: String!, $number: Int!) { + organization(login: $org){ + projectV2(number: $number) { + id + fields(first:100) { + nodes { + ... on ProjectV2Field { + id + name + } + ... on ProjectV2SingleSelectField { + id + name + options { + id + name + } + } + } + } + } + } + }' -f org="${ORGANIZATION}" -F number="${PROJECT_NUMBER}" --jq "$query")" + echo "$ID" +} + + +echo 'Starting sync...' +echo -e "[INFO] Fetching the list of open issues and PRs from k/k under the current release milestone, ${MILESTONE}" + + +## Fetch issues +MILESTONE_ISSUES_JSON="$(gh api graphql --paginate -f query=' + query($org: String!, $repo: String!, $milestone: String!, $endCursor: String){ + repository(owner: $org, name: $repo) { + description + url + milestones(states: [OPEN],first:1, query: $milestone) { + nodes{ + issues(states:[OPEN], first: 100, after: $endCursor){ + nodes{ + id + } + pageInfo{ + hasNextPage + endCursor + } + } + } + } + } + }' -f org="${ORGANIZATION}" -f repo="${REPOSITORY}" -f milestone="${MILESTONE}")" + +milestone_issues=($(jq ".data.repository.milestones.nodes[].issues.nodes | length" <<< "${MILESTONE_ISSUES_JSON}")) + +for issues in "${milestone_issues[@]}" +do + for index in $(seq 0 $(( issues - 1 ))); + do + issue_id=($(jq ".data.repository.milestones.nodes[].issues.nodes[$index].id" <<< "${MILESTONE_ISSUES_JSON}")) + milestone_issue_ids+=("${issue_id[@]}") + done +done + + +## Fetch PRs +MILESTONE_PRS_JSON="$(gh api graphql --paginate -f query=' + query($org: String!, $repo: String!, $milestone: String!, $endCursor: String){ + repository(owner: $org, name: $repo) { + description + url + milestones(states: [OPEN],first:1, query: $milestone) { + nodes{ + pullRequests(states:[OPEN], first: 100, after: $endCursor){ + nodes{ + id + } + pageInfo{ + hasNextPage + endCursor + } + } + } + } + } + }' -f org="${ORGANIZATION}" -f repo="${REPOSITORY}" -f milestone="${MILESTONE}")" + + +milestone_prs=($(jq ".data.repository.milestones.nodes[].pullRequests.nodes | length" <<< "${MILESTONE_PRS_JSON}")) + +for prs in "${milestone_prs[@]}" +do + for index in $(seq 0 $(( prs - 1 ))); + do + pr_id=($(jq ".data.repository.milestones.nodes[].pullRequests.nodes[$index].id" <<< "${MILESTONE_PRS_JSON}")) + milestone_pr_ids+=("${pr_id[@]}") + done +done + + +## Fetch Project metadata +echo -e "[INFO] Getting metadata for the Bug Triage GitHub Beta Project with ID: ${PROJECT_NUMBER}" + +PROJECT_ID=$( get_project_id_from_github_beta_project) + + +## Add data to the Project Board +echo '[INFO] Feeding data from k/k issues into the GitHub Project Beta' + +for issue_id in "${milestone_issue_ids[@]}"; +do + # Issues + if [ "${issue_id}" != null ]; then + item_id="$( gh api graphql -f query=' + mutation($project:ID!, $issue:ID!) { + addProjectV2ItemById(input: {projectId: $project, contentId: $issue}) { + item { + id + } + } + }' -f project="${PROJECT_ID}" -f issue="${issue_id}" --jq '.data.addProjectV2ItemById.item.id')" + fi +done + +echo '[INFO] Feeding data from k/k PRs into the GitHub Project Beta' + +for pr_id in "${milestone_pr_ids[@]}"; +do + # PRs + if [ "${pr_id}" != null ]; then + item_id="$( gh api graphql -f query=' + mutation($project:ID!, $pr:ID!) { + addProjectV2ItemById(input: {projectId: $project, contentId: $pr}) { + item { + id + } + } + }' -f project="${PROJECT_ID}" -f pr="${pr_id}" --jq '.data.addProjectV2ItemById.item.id')" + fi +done + +echo 'Sync finished!' diff --git a/release-team/hack/sync-enhancements-github-project-beta.sh b/release-team/hack/sync-enhancements-github-project-beta.sh index 3815103c101..3a24e3d2958 100755 --- a/release-team/hack/sync-enhancements-github-project-beta.sh +++ b/release-team/hack/sync-enhancements-github-project-beta.sh @@ -1,157 +1,157 @@ -#!/usr/bin/env bash - -# Copyright 2022 The Kubernetes Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# Usage: `sync-enhancements-github-project-beta.sh` -# Pre-requisite: add a GITHUB_TOKEN as the environment variable (Ref: https://github.com/kubernetes/org/issues/3558) - -set -eu -o pipefail - -SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -ORGANIZATION='kubernetes' -REPOSITORY='enhancements' -PROJECT_NUMBER=${GITHUB_PROJECT_BETA_NUMBER:-} - -if [ "$PROJECT_NUMBER" == "" ]; then - echo "[Error] Required environment variable \"GITHUB_PROJECT_BETA_NUMBER\" is not set." - exit 1 -fi - -if [ "$GITHUB_TOKEN" == "" ]; then - echo "[Error] Required environment variable \"GITHUB_TOKEN\" is not set." - exit 1 -fi - -GITHUB_TOKEN="$(echo "$GITHUB_TOKEN" | tr -d '\n')" - -milestone_issue_ids=() -milestone_issue_numbers=() - - -# function definitions -function get_field_ids_from_github_beta_project() { - if [ $1 == 'project-id' ] - then - query='.data.organization.projectV2.id' - else - ##for 'issue-number-field-id' - query='.data.organization.projectV2.fields.nodes[] | select(.name== "Issue Number") | .id' - fi - - ID="$( gh api graphql --paginate -f query='query($org: String!, $number: Int!) { - organization(login: $org){ - projectV2(number: $number) { - id - fields(first:100) { - nodes { - ... on ProjectV2Field { - id - name - } - ... on ProjectV2SingleSelectField { - id - name - options { - id - name - } - } - } - } - } - } - }' -f org=${ORGANIZATION} -F number=${PROJECT_NUMBER} --jq "$query")" - echo $ID -} - -echo 'Startig sync...' -echo -e "[INFO] Fetching the list of open KEP issues from k/enhancements with the label, \"lead-opted-in\"" - - -## Fetch k/enhancements issues & process json data -MILESTONE_ISSUES_JSON="$(gh api graphql --paginate -f query='query($org: String!, $repo: String!){ - repository(owner: $org, name: $repo) { - description - url - issues(states:[OPEN], first: 100, labels: ["lead-opted-in"]) { - nodes { - id - number - } - pageInfo{ - endCursor - hasNextPage - } - } - } - }' -f org=${ORGANIZATION} -f repo=${REPOSITORY})" - -no_of_issues=$(jq ".data.repository.issues.nodes | length" <<< "$MILESTONE_ISSUES_JSON") -loop_index_range=$(( no_of_issues - 1 )) - -for index in $(seq 0 $loop_index_range); -do - issue_id=$(jq ".data.repository.issues.nodes[$index].id" <<< "$MILESTONE_ISSUES_JSON") - issue_no=$(jq ".data.repository.issues.nodes[$index].number" <<< "$MILESTONE_ISSUES_JSON") - milestone_issue_ids+=("${issue_id}") - milestone_issue_numbers+=("${issue_no}") -done - - -# Fetch Project metadata -echo -e "[INFO] Getting metadata for the Enhancements GitHub Beta Project with ID: ${PROJECT_NUMBER}" - -PROJECT_ID=$( get_field_ids_from_github_beta_project 'project-id') -ISSUE_NO_FIELD_ID=$( get_field_ids_from_github_beta_project 'issue-number-field-id') - - -# Add data into the Project Board -echo '[INFO] Feeding data from k/enhancements into the GitHub Project Beta' - -for index in $(seq 0 ${loop_index_range}); -do - item_id="$( gh api graphql -f query=' - mutation($project:ID!, $issue:ID!) { - addProjectV2ItemById(input: {projectId: $project, contentId: $issue}) { - item { - id - } - } - }' -f project="${PROJECT_ID}" -f issue="${milestone_issue_ids[index]}" --jq '.data.addProjectV2ItemById.item.id')" - - gh api graphql -f query=' - mutation ( - $project: ID! - $item: ID! - $issue_no_field: ID! - $issue_no_value: String - ) { - set_issue_no: updateProjectV2ItemFieldValue(input: { - projectId: $project - itemId: $item - fieldId: $issue_no_field - value: { - text: $issue_no_value - } - }) { - projectV2Item { - id - } - } - }' -f project="${PROJECT_ID}" -f item="${item_id}" -f issue_no_field="${ISSUE_NO_FIELD_ID}" -f issue_no_value="${milestone_issue_numbers[index]}" --silent -done - -echo 'Sync finished!' +#!/usr/bin/env bash + +# Copyright 2022 The Kubernetes Authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Usage: `sync-enhancements-github-project-beta.sh` +# Pre-requisite: add a GITHUB_TOKEN as the environment variable (Ref: https://github.com/kubernetes/org/issues/3558) + +set -eu -o pipefail + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +ORGANIZATION='kubernetes' +REPOSITORY='enhancements' +PROJECT_NUMBER=${GITHUB_PROJECT_BETA_NUMBER:-} + +if [ "$PROJECT_NUMBER" == "" ]; then + echo "[Error] Required environment variable \"GITHUB_PROJECT_BETA_NUMBER\" is not set." + exit 1 +fi + +if [ "$GITHUB_TOKEN" == "" ]; then + echo "[Error] Required environment variable \"GITHUB_TOKEN\" is not set." + exit 1 +fi + +GITHUB_TOKEN="$(echo "$GITHUB_TOKEN" | tr -d '\n')" + +milestone_issue_ids=() +milestone_issue_numbers=() + + +# function definitions +function get_field_ids_from_github_beta_project() { + if [ $1 == 'project-id' ] + then + query='.data.organization.projectV2.id' + else + ##for 'issue-number-field-id' + query='.data.organization.projectV2.fields.nodes[] | select(.name== "Issue Number") | .id' + fi + + ID="$( gh api graphql --paginate -f query='query($org: String!, $number: Int!) { + organization(login: $org){ + projectV2(number: $number) { + id + fields(first:100) { + nodes { + ... on ProjectV2Field { + id + name + } + ... on ProjectV2SingleSelectField { + id + name + options { + id + name + } + } + } + } + } + } + }' -f org=${ORGANIZATION} -F number=${PROJECT_NUMBER} --jq "$query")" + echo $ID +} + +echo 'Startig sync...' +echo -e "[INFO] Fetching the list of open KEP issues from k/enhancements with the label, \"lead-opted-in\"" + + +## Fetch k/enhancements issues & process json data +MILESTONE_ISSUES_JSON="$(gh api graphql --paginate -f query='query($org: String!, $repo: String!){ + repository(owner: $org, name: $repo) { + description + url + issues(states:[OPEN], first: 100, labels: ["lead-opted-in"]) { + nodes { + id + number + } + pageInfo{ + endCursor + hasNextPage + } + } + } + }' -f org=${ORGANIZATION} -f repo=${REPOSITORY})" + +no_of_issues=$(jq ".data.repository.issues.nodes | length" <<< "$MILESTONE_ISSUES_JSON") +loop_index_range=$(( no_of_issues - 1 )) + +for index in $(seq 0 $loop_index_range); +do + issue_id=$(jq ".data.repository.issues.nodes[$index].id" <<< "$MILESTONE_ISSUES_JSON") + issue_no=$(jq ".data.repository.issues.nodes[$index].number" <<< "$MILESTONE_ISSUES_JSON") + milestone_issue_ids+=("${issue_id}") + milestone_issue_numbers+=("${issue_no}") +done + + +# Fetch Project metadata +echo -e "[INFO] Getting metadata for the Enhancements GitHub Beta Project with ID: ${PROJECT_NUMBER}" + +PROJECT_ID=$( get_field_ids_from_github_beta_project 'project-id') +ISSUE_NO_FIELD_ID=$( get_field_ids_from_github_beta_project 'issue-number-field-id') + + +# Add data into the Project Board +echo '[INFO] Feeding data from k/enhancements into the GitHub Project Beta' + +for index in $(seq 0 ${loop_index_range}); +do + item_id="$( gh api graphql -f query=' + mutation($project:ID!, $issue:ID!) { + addProjectV2ItemById(input: {projectId: $project, contentId: $issue}) { + item { + id + } + } + }' -f project="${PROJECT_ID}" -f issue="${milestone_issue_ids[index]}" --jq '.data.addProjectV2ItemById.item.id')" + + gh api graphql -f query=' + mutation ( + $project: ID! + $item: ID! + $issue_no_field: ID! + $issue_no_value: String + ) { + set_issue_no: updateProjectV2ItemFieldValue(input: { + projectId: $project + itemId: $item + fieldId: $issue_no_field + value: { + text: $issue_no_value + } + }) { + projectV2Item { + id + } + } + }' -f project="${PROJECT_ID}" -f item="${item_id}" -f issue_no_field="${ISSUE_NO_FIELD_ID}" -f issue_no_value="${milestone_issue_numbers[index]}" --silent +done + +echo 'Sync finished!' diff --git a/release-team/release-team-onboarding.md b/release-team/release-team-onboarding.md index 0f26bccce73..2ce6d107b57 100644 --- a/release-team/release-team-onboarding.md +++ b/release-team/release-team-onboarding.md @@ -1,72 +1,72 @@ -# Release Team Onboarding Guide - -When joining the Release Team or taking on a new role on the Release Team, there are various lists and groups you'll need to be a part of, various permissions that you'll need to have, keys you may need to know, etc. For roles ranging from someone new to the Kubernetes Community to the incoming Release Lead, this document aims to enumerate the access that you'll need to ensure you have to various repos and tools. - -## New Members - -If you're a brand new member to the Kubernetes Community or the Release Team, welcome! It's great to have you involved with SIG Release. - -### Slack - -The communication and coordination for the overwhelming majority of SIG Release topics happens in the [`#sig-release`](https://kubernetes.slack.com/messages/C2C40FMNF/) channel of the Kubernetes Slack. If you need access to the Kubernetes Slack, please see [http://slack.k8s.io/](http://slack.k8s.io/). If you need help with any of your additional access needs, `#sig-release` is a good place to ask for help. - -### Kubernetes Community Membership - -The Kubernetes Community [defines](https://github.com/kubernetes/community/blob/master/community-membership.md#member) Members as the following: - -> Members are continuously active contributors in the community. They can have issues and PRs assigned to them, participate in SIGs through GitHub teams, and pre-submit tests are automatically run for their PRs. Members are expected to remain active contributors to the community. -> -> Defined by: Member of the Kubernetes GitHub organization - -The requirements for becoming a member are enumerated in the [k/community repo documentation](https://github.com/kubernetes/community/blob/master/community-membership.md#member). Generally, you'll need a few public contributions and some existing community members to sponsor you. The Release Team is a great place to meet members of the community that might be able to sponsor you! - -For new shadows, it's not always necessary to become a member of the GitHub organization right away. Talk to the lead for the Release Team role you're shadowing for the definitive answer. For some roles (Enhancements for example) it is important for Shadows to be members of the GitHub organization because they have to maintain milestones in the [k/enhancements](https://github.com/kubernetes/enhancements) repo. For other roles it's less urgent for new Shadows to be members of the GitHub organization. Your mileage may vary, but you should try to become an official member of the Kubernetes Community as soon as possible. - -## All Members - -### Contact Sheet - -Each release has a Release Team contact sheet which is a source of truth for who has which role in the Release Team and what their contact information is. The Release Lead usually makes this very early on in the release. Make sure that you have filled in your contact information in the contact sheet as soon as you become a member of the Release Team. - -### Mailing Lists - -There are a few mailing lists that you should be aware of. Depending on your relationship with the Release Team, you may want to join one or more of the following lists: - -#### Release Team Mailing List - -All members of the current release team should be a part of this list. If you're on the Release Team and cannot access: https://groups.google.com/a/kubernetes.io/g/release-team, please tell your role lead or the Release Team lead that you need access. The Release Lead, as well as Relase Lead shadows, can manage list membership. - -#### SIG Release Mailing List - -All members of the release team and anyone who attends Release Team meetings / keeps up with the release process should join the SIG Release group: https://groups.google.com/forum/#!forum/kubernetes-sig-release - -### Familiarize with Prow commands - -Kubernetes uses [Prow](https://docs.prow.k8s.io/docs/overview/) to manage CI automation. Issues and PRs are categorized by applying suitable labels, which helps in prioritization of that specific issue/PR during the release cycle. Learn more about the available labels and prow commands from here: https://prow.k8s.io/command-help - -## Role Leads - -The leads of each role need some access. If this is your first time as a lead, please go through the following list and make sure you have the required access. - -### Milestone Maintainers - -The leads of all roles should be able to manage issue milestones (often in [k/enhancements](https://github.com/kubernetes/enhancements)) using the [Prow `/milestone` command](https://prow.k8s.io/command-help#milestone). To gain access as a Milestone Maintainer, please talk to the Release Lead. For more information on Prow, see [the docs](https://github.com/kubernetes/test-infra/tree/master/prow). - -## Release Lead - -The Release Lead needs some additional access. With great power comes great responsibility. - -### `OWNER` File Entries - -The Release Lead (and most past Release Leads) are members of the `release-team-lead-role` role in [k/sig-release](https://github.com/kubernetes/sig-release). When you become Release Lead, PR yourself to the [`OWNERS_ALIASES`](https://github.com/kubernetes/sig-release/blob/master/OWNERS_ALIASES) file. - -### Everything Else... - -Please complete a [Release Team Lead onboarding issue][rtl-onboarding] - -The onboarding issue will be the official checklist for Zoom meeting owner -code, release team calendar access, etc. -The issue will help you keep track of all the things you need in order to -fulfill your role as lead and lead shadows. - -[rtl-onboarding]: https://github.com/kubernetes/sig-release/issues/new?labels=sig%2Frelease%2C+area%2Frelease-eng%2C+area%2Frelease-team&template=release-team-lead.md&title=Release+Team+Lead+access+for+%3CGH-handle%3E +# Release Team Onboarding Guide + +When joining the Release Team or taking on a new role on the Release Team, there are various lists and groups you'll need to be a part of, various permissions that you'll need to have, keys you may need to know, etc. For roles ranging from someone new to the Kubernetes Community to the incoming Release Lead, this document aims to enumerate the access that you'll need to ensure you have to various repos and tools. + +## New Members + +If you're a brand new member to the Kubernetes Community or the Release Team, welcome! It's great to have you involved with SIG Release. + +### Slack + +The communication and coordination for the overwhelming majority of SIG Release topics happens in the [`#sig-release`](https://kubernetes.slack.com/messages/C2C40FMNF/) channel of the Kubernetes Slack. If you need access to the Kubernetes Slack, please see [http://slack.k8s.io/](http://slack.k8s.io/). If you need help with any of your additional access needs, `#sig-release` is a good place to ask for help. + +### Kubernetes Community Membership + +The Kubernetes Community [defines](https://github.com/kubernetes/community/blob/master/community-membership.md#member) Members as the following: + +> Members are continuously active contributors in the community. They can have issues and PRs assigned to them, participate in SIGs through GitHub teams, and pre-submit tests are automatically run for their PRs. Members are expected to remain active contributors to the community. +> +> Defined by: Member of the Kubernetes GitHub organization + +The requirements for becoming a member are enumerated in the [k/community repo documentation](https://github.com/kubernetes/community/blob/master/community-membership.md#member). Generally, you'll need a few public contributions and some existing community members to sponsor you. The Release Team is a great place to meet members of the community that might be able to sponsor you! + +For new shadows, it's not always necessary to become a member of the GitHub organization right away. Talk to the lead for the Release Team role you're shadowing for the definitive answer. For some roles (Enhancements for example) it is important for Shadows to be members of the GitHub organization because they have to maintain milestones in the [k/enhancements](https://github.com/kubernetes/enhancements) repo. For other roles it's less urgent for new Shadows to be members of the GitHub organization. Your mileage may vary, but you should try to become an official member of the Kubernetes Community as soon as possible. + +## All Members + +### Contact Sheet + +Each release has a Release Team contact sheet which is a source of truth for who has which role in the Release Team and what their contact information is. The Release Lead usually makes this very early on in the release. Make sure that you have filled in your contact information in the contact sheet as soon as you become a member of the Release Team. + +### Mailing Lists + +There are a few mailing lists that you should be aware of. Depending on your relationship with the Release Team, you may want to join one or more of the following lists: + +#### Release Team Mailing List + +All members of the current release team should be a part of this list. If you're on the Release Team and cannot access: https://groups.google.com/a/kubernetes.io/g/release-team, please tell your role lead or the Release Team lead that you need access. The Release Lead, as well as Relase Lead shadows, can manage list membership. + +#### SIG Release Mailing List + +All members of the release team and anyone who attends Release Team meetings / keeps up with the release process should join the SIG Release group: https://groups.google.com/forum/#!forum/kubernetes-sig-release + +### Familiarize with Prow commands + +Kubernetes uses [Prow](https://docs.prow.k8s.io/docs/overview/) to manage CI automation. Issues and PRs are categorized by applying suitable labels, which helps in prioritization of that specific issue/PR during the release cycle. Learn more about the available labels and prow commands from here: https://prow.k8s.io/command-help + +## Role Leads + +The leads of each role need some access. If this is your first time as a lead, please go through the following list and make sure you have the required access. + +### Milestone Maintainers + +The leads of all roles should be able to manage issue milestones (often in [k/enhancements](https://github.com/kubernetes/enhancements)) using the [Prow `/milestone` command](https://prow.k8s.io/command-help#milestone). To gain access as a Milestone Maintainer, please talk to the Release Lead. For more information on Prow, see [the docs](https://github.com/kubernetes/test-infra/tree/master/prow). + +## Release Lead + +The Release Lead needs some additional access. With great power comes great responsibility. + +### `OWNER` File Entries + +The Release Lead (and most past Release Leads) are members of the `release-team-lead-role` role in [k/sig-release](https://github.com/kubernetes/sig-release). When you become Release Lead, PR yourself to the [`OWNERS_ALIASES`](https://github.com/kubernetes/sig-release/blob/master/OWNERS_ALIASES) file. + +### Everything Else... + +Please complete a [Release Team Lead onboarding issue][rtl-onboarding] + +The onboarding issue will be the official checklist for Zoom meeting owner +code, release team calendar access, etc. +The issue will help you keep track of all the things you need in order to +fulfill your role as lead and lead shadows. + +[rtl-onboarding]: https://github.com/kubernetes/sig-release/issues/new?labels=sig%2Frelease%2C+area%2Frelease-eng%2C+area%2Frelease-team&template=release-team-lead.md&title=Release+Team+Lead+access+for+%3CGH-handle%3E diff --git a/release-team/release-team-removal.md b/release-team/release-team-removal.md index b8e6c5a1aa4..6487b7439e9 100644 --- a/release-team/release-team-removal.md +++ b/release-team/release-team-removal.md @@ -1,52 +1,52 @@ -# Release Team Removal Process - -The release team is reassembled with a new team for each cycle. All team members are automatically removed if they do not re-apply and are selected for the next release cycle. While this process generally functions smoothly, there are instances when a team member might leave mid-cycle or the release team leaders may decide to part ways early. - -## Resignation -Voluntary resignation is outlined in the [shadow handbook](https://github.com/kubernetes/sig-release/blob/master/release-team/shadows.md#leaving-the-shadow-program-before-the-release-cycle-ended). The Role Lead should discuss with the Release Lead and the Emeritus Advisor (EA) to find a replacement if they would like to step down. - - -Remaining on the team without contributing creates an unhealthy environment for the rest of the team and negatively affects the outcome of the release. We strive to be inclusive and empathetic to individuals' circumstances, but our first priority is a stable, high-quality release. -The following outline is not meant to be definitive or punitive but rather outlines general guidance for leads on the process. -## Shadow Removal Guideline - -Reasons for removal could include but are not limited to: -- Failure to attend the shadow orientation hosted by the EA (we host 2-3 sessions at the beginning of the release cycle in different timezones) -- Failure to attend the orientation hosted by the Role Lead (if the Role Lead doesn't offer a timezone-appropriate meeting, the shadow should communicate to the Role Lead about obtaining the provided information async and watching the recording) -- Failure to attend 3 consecutive release team meetings without communication to the Role Lead -- Failure to perform shadow tasks in due time, after 2-3 discussions with the Role Lead and the EA about performance -- Unresponsive on Slack to messages for more than 2 days during non-peak time and 24 hours during peak time, without prior notice of absence. Peak time is different depending on the team's responsibility -- Violation of [CNCF Code of Conduct](http://cncf.io/conduct/) - -Note that communications ahead of time to inform the leads or find alternative arrangements are greatly preferred in these circumstances. -### Process -It is important to be kind and patient while trying to resolve the situation. -- Upon a pattern of inactivity, the Role Lead will notify the EA and have an initial discussion with the shadow about their performance. -- If the shadow is still not contributing to the team, the Release Team Subproject Leads or the Release Lead will remove the shadow from the team, and find a replacement if appropriate. The EA will be responsible for finding backfill. - -### Consequences -- If the current release is the reason the shadow has Kubernetes membership, membership should be revoked -- Removal of name in release-team document -- Shadow will not be able to return to the following release. However, they are welcome to apply to releases after that - -## Role Lead Removal Guideline -A role lead has been selected by the previous team lead to supervise, perform the duties of the team -and mentor the shadows to be future leads. Failure to perform lead duties can have a lasting impact on the release team. -Reasons for removal could include but are not limited to: -- Failure to attend or send appropriate representation to 2 consecutive release meetings or relevant SIG meetings -- Failure to perform tasks expected of a Role Lead -- Unresponsive on Slack to messages for more than 2 days during non-peak time and 24 hours during peak time, without prior notice of absence. Peak time is different depending on team -- Violation of [CNCF Code of Conduct](http://cncf.io/conduct/) - -### Process -- SIGs outside of SIG Release, shadows, leads, or contributors can express concern to the Release Team Subproject Leads, Release Lead, or EA -- The Release Lead and the EA will have an initial discussion with the Role Lead -- If the situation is not improved, the Release Lead and EA will have another discussion with the Role Lead and begin to look for a replacement -- If deemed necessary by the Release Lead, EA and Release Team Subproject Leads, the Role Lead will be replaced with an experienced shadow or someone who previously led the same role. EA will be responsible for finding backfill - -### Consequences -- Removal of name in release-team document -- Role lead will need to shadow again and demonstrate sufficient responsibility, and leading ability, before holding another leadership position on the release team - -## Appeal -If the release team member disagrees with their removal decision. They can escalate to SIG Release chairs by sending an email to sig-release-leads@kubernetes.io. +# Release Team Removal Process + +The release team is reassembled with a new team for each cycle. All team members are automatically removed if they do not re-apply and are selected for the next release cycle. While this process generally functions smoothly, there are instances when a team member might leave mid-cycle or the release team leaders may decide to part ways early. + +## Resignation +Voluntary resignation is outlined in the [shadow handbook](https://github.com/kubernetes/sig-release/blob/master/release-team/shadows.md#leaving-the-shadow-program-before-the-release-cycle-ended). The Role Lead should discuss with the Release Lead and the Emeritus Advisor (EA) to find a replacement if they would like to step down. + + +Remaining on the team without contributing creates an unhealthy environment for the rest of the team and negatively affects the outcome of the release. We strive to be inclusive and empathetic to individuals' circumstances, but our first priority is a stable, high-quality release. +The following outline is not meant to be definitive or punitive but rather outlines general guidance for leads on the process. +## Shadow Removal Guideline + +Reasons for removal could include but are not limited to: +- Failure to attend the shadow orientation hosted by the EA (we host 2-3 sessions at the beginning of the release cycle in different timezones) +- Failure to attend the orientation hosted by the Role Lead (if the Role Lead doesn't offer a timezone-appropriate meeting, the shadow should communicate to the Role Lead about obtaining the provided information async and watching the recording) +- Failure to attend 3 consecutive release team meetings without communication to the Role Lead +- Failure to perform shadow tasks in due time, after 2-3 discussions with the Role Lead and the EA about performance +- Unresponsive on Slack to messages for more than 2 days during non-peak time and 24 hours during peak time, without prior notice of absence. Peak time is different depending on the team's responsibility +- Violation of [CNCF Code of Conduct](http://cncf.io/conduct/) + +Note that communications ahead of time to inform the leads or find alternative arrangements are greatly preferred in these circumstances. +### Process +It is important to be kind and patient while trying to resolve the situation. +- Upon a pattern of inactivity, the Role Lead will notify the EA and have an initial discussion with the shadow about their performance. +- If the shadow is still not contributing to the team, the Release Team Subproject Leads or the Release Lead will remove the shadow from the team, and find a replacement if appropriate. The EA will be responsible for finding backfill. + +### Consequences +- If the current release is the reason the shadow has Kubernetes membership, membership should be revoked +- Removal of name in release-team document +- Shadow will not be able to return to the following release. However, they are welcome to apply to releases after that + +## Role Lead Removal Guideline +A role lead has been selected by the previous team lead to supervise, perform the duties of the team +and mentor the shadows to be future leads. Failure to perform lead duties can have a lasting impact on the release team. +Reasons for removal could include but are not limited to: +- Failure to attend or send appropriate representation to 2 consecutive release meetings or relevant SIG meetings +- Failure to perform tasks expected of a Role Lead +- Unresponsive on Slack to messages for more than 2 days during non-peak time and 24 hours during peak time, without prior notice of absence. Peak time is different depending on team +- Violation of [CNCF Code of Conduct](http://cncf.io/conduct/) + +### Process +- SIGs outside of SIG Release, shadows, leads, or contributors can express concern to the Release Team Subproject Leads, Release Lead, or EA +- The Release Lead and the EA will have an initial discussion with the Role Lead +- If the situation is not improved, the Release Lead and EA will have another discussion with the Role Lead and begin to look for a replacement +- If deemed necessary by the Release Lead, EA and Release Team Subproject Leads, the Role Lead will be replaced with an experienced shadow or someone who previously led the same role. EA will be responsible for finding backfill + +### Consequences +- Removal of name in release-team document +- Role lead will need to shadow again and demonstrate sufficient responsibility, and leading ability, before holding another leadership position on the release team + +## Appeal +If the release team member disagrees with their removal decision. They can escalate to SIG Release chairs by sending an email to sig-release-leads@kubernetes.io. diff --git a/release-team/release-team-selection.md b/release-team/release-team-selection.md index 107cd92c325..6399012ec05 100644 --- a/release-team/release-team-selection.md +++ b/release-team/release-team-selection.md @@ -1,131 +1,131 @@ -# Release Team Selection - -In addition to discharging the duties of their respective Release Team roles, the current Release Team is charged with selecting the team for the following release cycle. - -Team selection should happen transparently. - -In the 1.11 release cycle, we selected the Release Team Lead by quorum during a public Release Team meeting and additional roles were staffed via [an issue in k/sig-release](https://github.com/kubernetes/sig-release/issues/167) and a set of PRs, starting with [this one](https://github.com/kubernetes/sig-release/pull/168). - -Each Release Team role is responsible for staffing their respective role, with this order of fall-through in mind: -- training and selecting a successor from the current pool of role shadows -- training and selecting a successor from non-Release Team members -- staffing the role themselves - -Ultimately, if none of these can be satisfied, responsibility falls to the future Release Team Lead and SIG Release to staff the roles. - -## Considerations - -### Timing - -Staff early! The Release Team should undertake the selection process at the beginning of Code Freeze, with a deadline of three days following the current release. - -Any staffing decisions that cannot be made within this timeframe should be escalated to SIG Release Chairs and discussed publicly. - -Following the future Release Team selection, or the end of Code Freeze (whichever comes first), the Emeritus Adviser will publish a questionnaire and announce that we are accepting submissions for [shadows](#shadows). - -The questionnaire / survey will remain open for 2 weeks. Once closed, the respective role leads within the Release Team will have 1 week to review and select their shadows based on the role's specific handbook criteria and fit. - -### Membership - -Try to ensure potential Release Team candidates: -- can commit to the amount of time required across the release cycle -- are enthusiastic about being on the release team -- are members of the relevant SIGs for their role, if applicable -- have some prior experience with contributing to Kubernetes (such as shadowing a role for a prior release) - -Most importantly, strive for diversity in: -- gender identity -- ethnicity -- nationality -- locality -- company affiliation - -## Selection Criteria - -### Release Team Lead - -Consensus must be reached about the next Release Team Lead (RT Lead) by: - -- [SIG Release Leads](https://git.k8s.io/community/sig-release/#leadership) -- The current Release Team Lead -- The current Emeritus Advisor - -The incoming Release Team Lead _MUST_ have participated on the Release Team for two or more release cycles, acting in a lead (non-shadow) or Release Team Lead shadow capacity for at least one of those cycles. - -Release Team Leads should be staffed, with this order of fall-through in mind: - -- the current pool of Release Team Lead shadows -- the current pool of Release Team members -- former Release Team members - -Bear in mind that these are suggestions based on precedent and a Release Team Lead may be nominated by any Release Team member, past or present. - -#### Selection Process - -At least 2 weeks before the end of the current release cycle, the EA is responsible for -posting the "Assemble the X.Y Release Team" issue in the SIG Release repo -([example](https://github.com/kubernetes/sig-release/issues/776)). Before doing -that, it's required to reach consensus with all [SIG Release Leads](https://git.k8s.io/community/sig-release/#leadership) -about the next Release Team Lead as well as EA, which can be done by using a -Slack group DM or an email thread to sig-release-leads@kubernetes.io. If consensus has been reached, then the -proposed Release Team can get nominated directly within that issue. After that, -the issue can act as a call for nominations/volunteers for the other Role Leads. - -### Release Team Lead Shadow - -Same as [Release Team Lead](#release-team-lead). - -The release lead should reach out to all release lead shadows and release team leads directly from the previous cycle to gather input from people interested in helping shadowing the new release. - -### <a name="shadows"></a>Shadows - -Every Release Team role should seek to accommodate a set of role shadows. This creates a new avenue for code and non-code contributors alike to contribute to the project. Additionally, it seeds future release cycles with new leaders. - -While there isn't a strict restriction on the amount of shadows, we've found four shadows per role to be a reasonable -upper bound. However, as shadowing is intended to be a mentor / mentee journey, it is important that role leads only -accept an amount of shadows that they feel that can reasonably mentor within the scope of a release cycle. As there is -tacit knowledge gained from Release Team experience, we've found that having two shadows with prior Release Team -experience has been helpful to seed and grow future release team leaders. In addition to two shadows with prior Release -Team experience, we have found that having two new shadows helps grow contributors to the Release Team. Having two -shadows with prior Release Team experience and two new shadows per Release Team role is not a requirement and is a -suggestion. - -If there are more contributors interested in shadowing once hitting that upper bound, we welcome them to sit in on Release Team meetings in preparation for shadowing in a future release cycle. - -In Kubernetes 1.14, we begun handling shadow selection using a questionnaire, as opposed to the first-come, first-served GitHub issue approach that we had adopted during previous release cycles ([1.12](https://github.com/kubernetes/sig-release/issues/167), [1.13](https://github.com/kubernetes/sig-release/issues/280)). - -Moving to a [questionnaire](#sample-questionnaire) / survey format will allow us to capture more of the information required to vet potential shadows and well as begin to generate metrics around some of the Release Team processes. - -Questionnaire creation will be facilitated by SIG Release Chairs or a delegated coordinator to ensure consistency across release cycles. - -Following submissions, the questionnaires will be reviewed by role leads of the incoming Release Team. - -Volunteers that meet the requirements of the respective role will be contacted by those leads via some convenient mechanism (Slack, video chat, etc.) to further discuss. - -After vetting the volunteers for their roles, role leads should make a final decision on selected shadows with the incoming Release Team Lead. Once selections have been finalized, each role lead should submit a PR to the `release_team.md` file of the release to add the selected shadows. Please refer to [this PR](https://github.com/kubernetes/sig-release/pull/942) for an example. - - -### Sample Questionnaire - -Thank you for volunteering for the Kubernetes 1.14 Release Team! - -This questionnaire is meant to learn a little bit more about you, your journey with Kubernetes, your understanding of the Release Team processes and procedures, as well as to determine if you're a good fit for the current Release Team. Please note that you are expected to be inexperienced in some areas, as a role shadow is a mentorship opportunity. - -Participation in the Release Team can include somewhat open-ended expectations. We never know what blocking/critical issue may come up at what point during the release cycle. On a rare occasion this may mean we each make some personal sacrifice to check in on a status or show up at a meeting to give or receive information. The team of leads and shadows must be flexible and pragmatic in addressing these. The Release Team Lead will endeavor to make sure any such inconveniences do not unfairly hit individuals or specific timezones. - -#### Logistics - -- What [Release Team role(s)](https://git.k8s.io/sig-release/release-team#kubernetes-release-team-roles) are you interested in shadowing? _[Select up to two (2)]_ -- The [Role Handbooks](https://git.k8s.io/sig-release/release-team/role-handbooks) defines the tasks and responsibilities of each role for this release cycle. Are you prepared to assist in fulfilling these duties? You must read the handbook relevant to the role you're interested in before answering. -- Shadowing Release Team roles requires a substantial time commitment, especially during the periods specified in your role handbook. The time requirements specified are estimates and depending on the need, you may need to dedicate more time than initially estimated. This may include attending video meetings at inconvenient times. Is this time you can commit to? (This usually requires support from your employer, as you may need to do release work during work hours.) -- Do you have any schedule conflicts during [this release cycle](https://git.k8s.io/sig-release/releases/release-1.14/README.md), such as vacations, school, or intense periods of work, that would make you unavailable for more than a couple of workdays? -- The purpose of shadowing is to train new Release Team members. Assuming that your job or life situations don't change between now and then, are you willing to volunteer for the relevant role Lead position for 1.15 or 1.16? (This usually requires support from your employer, as you may need to do release work during work hours.) -- What time zone are you usually in? - -#### Experience - -- What's your current experience and involvement with Kubernetes SIGs? -- Are you already a [Kubernetes organization member](https://git.k8s.io/community/community-membership.md#member)? -- Have you applied to, or served on, a prior release team? Please give details. -- Do you have any past experience (outside of the Kubernetes upstream community) working/volunteering in the role you're interested in? Please give details. -- Is there any specific goal you hope to accomplish or experience you intend to gain by participating in the Release Team? Please give details. +# Release Team Selection + +In addition to discharging the duties of their respective Release Team roles, the current Release Team is charged with selecting the team for the following release cycle. + +Team selection should happen transparently. + +In the 1.11 release cycle, we selected the Release Team Lead by quorum during a public Release Team meeting and additional roles were staffed via [an issue in k/sig-release](https://github.com/kubernetes/sig-release/issues/167) and a set of PRs, starting with [this one](https://github.com/kubernetes/sig-release/pull/168). + +Each Release Team role is responsible for staffing their respective role, with this order of fall-through in mind: +- training and selecting a successor from the current pool of role shadows +- training and selecting a successor from non-Release Team members +- staffing the role themselves + +Ultimately, if none of these can be satisfied, responsibility falls to the future Release Team Lead and SIG Release to staff the roles. + +## Considerations + +### Timing + +Staff early! The Release Team should undertake the selection process at the beginning of Code Freeze, with a deadline of three days following the current release. + +Any staffing decisions that cannot be made within this timeframe should be escalated to SIG Release Chairs and discussed publicly. + +Following the future Release Team selection, or the end of Code Freeze (whichever comes first), the Emeritus Adviser will publish a questionnaire and announce that we are accepting submissions for [shadows](#shadows). + +The questionnaire / survey will remain open for 2 weeks. Once closed, the respective role leads within the Release Team will have 1 week to review and select their shadows based on the role's specific handbook criteria and fit. + +### Membership + +Try to ensure potential Release Team candidates: +- can commit to the amount of time required across the release cycle +- are enthusiastic about being on the release team +- are members of the relevant SIGs for their role, if applicable +- have some prior experience with contributing to Kubernetes (such as shadowing a role for a prior release) + +Most importantly, strive for diversity in: +- gender identity +- ethnicity +- nationality +- locality +- company affiliation + +## Selection Criteria + +### Release Team Lead + +Consensus must be reached about the next Release Team Lead (RT Lead) by: + +- [SIG Release Leads](https://git.k8s.io/community/sig-release/#leadership) +- The current Release Team Lead +- The current Emeritus Advisor + +The incoming Release Team Lead _MUST_ have participated on the Release Team for two or more release cycles, acting in a lead (non-shadow) or Release Team Lead shadow capacity for at least one of those cycles. + +Release Team Leads should be staffed, with this order of fall-through in mind: + +- the current pool of Release Team Lead shadows +- the current pool of Release Team members +- former Release Team members + +Bear in mind that these are suggestions based on precedent and a Release Team Lead may be nominated by any Release Team member, past or present. + +#### Selection Process + +At least 2 weeks before the end of the current release cycle, the EA is responsible for +posting the "Assemble the X.Y Release Team" issue in the SIG Release repo +([example](https://github.com/kubernetes/sig-release/issues/776)). Before doing +that, it's required to reach consensus with all [SIG Release Leads](https://git.k8s.io/community/sig-release/#leadership) +about the next Release Team Lead as well as EA, which can be done by using a +Slack group DM or an email thread to sig-release-leads@kubernetes.io. If consensus has been reached, then the +proposed Release Team can get nominated directly within that issue. After that, +the issue can act as a call for nominations/volunteers for the other Role Leads. + +### Release Team Lead Shadow + +Same as [Release Team Lead](#release-team-lead). + +The release lead should reach out to all release lead shadows and release team leads directly from the previous cycle to gather input from people interested in helping shadowing the new release. + +### <a name="shadows"></a>Shadows + +Every Release Team role should seek to accommodate a set of role shadows. This creates a new avenue for code and non-code contributors alike to contribute to the project. Additionally, it seeds future release cycles with new leaders. + +While there isn't a strict restriction on the amount of shadows, we've found four shadows per role to be a reasonable +upper bound. However, as shadowing is intended to be a mentor / mentee journey, it is important that role leads only +accept an amount of shadows that they feel that can reasonably mentor within the scope of a release cycle. As there is +tacit knowledge gained from Release Team experience, we've found that having two shadows with prior Release Team +experience has been helpful to seed and grow future release team leaders. In addition to two shadows with prior Release +Team experience, we have found that having two new shadows helps grow contributors to the Release Team. Having two +shadows with prior Release Team experience and two new shadows per Release Team role is not a requirement and is a +suggestion. + +If there are more contributors interested in shadowing once hitting that upper bound, we welcome them to sit in on Release Team meetings in preparation for shadowing in a future release cycle. + +In Kubernetes 1.14, we begun handling shadow selection using a questionnaire, as opposed to the first-come, first-served GitHub issue approach that we had adopted during previous release cycles ([1.12](https://github.com/kubernetes/sig-release/issues/167), [1.13](https://github.com/kubernetes/sig-release/issues/280)). + +Moving to a [questionnaire](#sample-questionnaire) / survey format will allow us to capture more of the information required to vet potential shadows and well as begin to generate metrics around some of the Release Team processes. + +Questionnaire creation will be facilitated by SIG Release Chairs or a delegated coordinator to ensure consistency across release cycles. + +Following submissions, the questionnaires will be reviewed by role leads of the incoming Release Team. + +Volunteers that meet the requirements of the respective role will be contacted by those leads via some convenient mechanism (Slack, video chat, etc.) to further discuss. + +After vetting the volunteers for their roles, role leads should make a final decision on selected shadows with the incoming Release Team Lead. Once selections have been finalized, each role lead should submit a PR to the `release_team.md` file of the release to add the selected shadows. Please refer to [this PR](https://github.com/kubernetes/sig-release/pull/942) for an example. + + +### Sample Questionnaire + +Thank you for volunteering for the Kubernetes 1.14 Release Team! + +This questionnaire is meant to learn a little bit more about you, your journey with Kubernetes, your understanding of the Release Team processes and procedures, as well as to determine if you're a good fit for the current Release Team. Please note that you are expected to be inexperienced in some areas, as a role shadow is a mentorship opportunity. + +Participation in the Release Team can include somewhat open-ended expectations. We never know what blocking/critical issue may come up at what point during the release cycle. On a rare occasion this may mean we each make some personal sacrifice to check in on a status or show up at a meeting to give or receive information. The team of leads and shadows must be flexible and pragmatic in addressing these. The Release Team Lead will endeavor to make sure any such inconveniences do not unfairly hit individuals or specific timezones. + +#### Logistics + +- What [Release Team role(s)](https://git.k8s.io/sig-release/release-team#kubernetes-release-team-roles) are you interested in shadowing? _[Select up to two (2)]_ +- The [Role Handbooks](https://git.k8s.io/sig-release/release-team/role-handbooks) defines the tasks and responsibilities of each role for this release cycle. Are you prepared to assist in fulfilling these duties? You must read the handbook relevant to the role you're interested in before answering. +- Shadowing Release Team roles requires a substantial time commitment, especially during the periods specified in your role handbook. The time requirements specified are estimates and depending on the need, you may need to dedicate more time than initially estimated. This may include attending video meetings at inconvenient times. Is this time you can commit to? (This usually requires support from your employer, as you may need to do release work during work hours.) +- Do you have any schedule conflicts during [this release cycle](https://git.k8s.io/sig-release/releases/release-1.14/README.md), such as vacations, school, or intense periods of work, that would make you unavailable for more than a couple of workdays? +- The purpose of shadowing is to train new Release Team members. Assuming that your job or life situations don't change between now and then, are you willing to volunteer for the relevant role Lead position for 1.15 or 1.16? (This usually requires support from your employer, as you may need to do release work during work hours.) +- What time zone are you usually in? + +#### Experience + +- What's your current experience and involvement with Kubernetes SIGs? +- Are you already a [Kubernetes organization member](https://git.k8s.io/community/community-membership.md#member)? +- Have you applied to, or served on, a prior release team? Please give details. +- Do you have any past experience (outside of the Kubernetes upstream community) working/volunteering in the role you're interested in? Please give details. +- Is there any specific goal you hope to accomplish or experience you intend to gain by participating in the Release Team? Please give details. diff --git a/release-team/release-team.svg b/release-team/release-team.svg index 3bb3f44413c..88f7dc250a7 100644 --- a/release-team/release-team.svg +++ b/release-team/release-team.svg @@ -1,142 +1,142 @@ -<?xml version="1.0" encoding="utf-8"?> -<svg width="100%" height="100%" viewBox="0 0 915 154" version="1.1" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" xmlns="http://www.w3.org/2000/svg"> - <g id="layer3" transform="matrix(1,0,0,1,-28.4387,-187.296)"> - <g id="Shadows"> - <g id="shadowN" transform="matrix(1,0,0,1,28.4387,187.296)"> - <path d="M122.868,108.924C122.868,113.13 126.278,116.541 130.485,116.541L219.251,116.541C223.458,116.541 226.868,113.13 226.868,108.924L226.868,121.75C226.868,125.957 223.458,129.367 219.251,129.367L130.485,129.367C126.278,129.367 122.868,125.957 122.868,121.75L122.868,108.924Z" style="fill:rgb(204,0,0);fill-opacity:0.6;"/> - </g> - <g id="shadow2" transform="matrix(1,0,0,1,28.4387,187.296)"> - <path d="M122.868,121.75C122.868,125.957 126.278,129.367 130.485,129.367L219.251,129.367C223.458,129.367 226.868,125.957 226.868,121.75L226.868,135.845C226.868,140.052 223.458,143.462 219.251,143.462L130.485,143.462C126.278,143.462 122.868,140.052 122.868,135.845L122.868,121.75Z" style="fill:rgb(204,0,0);fill-opacity:0.4;"/> - </g> - <path id="shadow1" d="M151.307,265.753C151.307,261.546 154.717,258.136 158.924,258.136L247.69,258.136C249.71,258.136 251.647,258.939 253.076,260.367C254.504,261.796 255.307,263.733 255.307,265.753L255.307,296.22C255.307,300.427 251.896,303.837 247.69,303.837L158.924,303.837C154.717,303.837 151.307,300.427 151.307,296.22L151.307,265.753Z" style="fill:rgb(204,0,0);fill-opacity:0.8;"/> - </g> - <g id="Shadows1" transform="matrix(1,0,0,1,112.87,0)"> - <g id="shadowN1" transform="matrix(1,0,0,1,28.4387,187.296)"> - <path d="M122.868,108.924C122.868,113.13 126.278,116.541 130.485,116.541L219.251,116.541C223.458,116.541 226.868,113.13 226.868,108.924L226.868,121.75C226.868,125.957 223.458,129.367 219.251,129.367L130.485,129.367C126.278,129.367 122.868,125.957 122.868,121.75L122.868,108.924Z" style="fill:rgb(61,133,198);fill-opacity:0.6;"/> - </g> - <g id="shadow21" transform="matrix(1,0,0,1,28.4387,187.296)"> - <path d="M122.868,121.75C122.868,125.957 126.278,129.367 130.485,129.367L219.251,129.367C223.458,129.367 226.868,125.957 226.868,121.75L226.868,135.845C226.868,140.052 223.458,143.462 219.251,143.462L130.485,143.462C126.278,143.462 122.868,140.052 122.868,135.845L122.868,121.75Z" style="fill:rgb(61,133,198);fill-opacity:0.4;"/> - </g> - <path id="shadow11" d="M151.307,265.753C151.307,261.546 154.717,258.136 158.924,258.136L247.69,258.136C249.71,258.136 251.647,258.939 253.076,260.367C254.504,261.796 255.307,263.733 255.307,265.753L255.307,296.22C255.307,300.427 251.896,303.837 247.69,303.837L158.924,303.837C154.717,303.837 151.307,300.427 151.307,296.22L151.307,265.753Z" style="fill:rgb(61,133,198);fill-opacity:0.8;"/> - </g> - <g id="Shadows2" transform="matrix(1,0,0,1,225.74,0)"> - <g id="shadowN2" transform="matrix(1,0,0,1,28.4387,187.296)"> - <path d="M122.868,108.924C122.868,113.13 126.278,116.541 130.485,116.541L219.251,116.541C223.458,116.541 226.868,113.13 226.868,108.924L226.868,121.75C226.868,125.957 223.458,129.367 219.251,129.367L130.485,129.367C126.278,129.367 122.868,125.957 122.868,121.75L122.868,108.924Z" style="fill:rgb(61,133,198);fill-opacity:0.6;"/> - </g> - <g id="shadow22" transform="matrix(1,0,0,1,28.4387,187.296)"> - <path d="M122.868,121.75C122.868,125.957 126.278,129.367 130.485,129.367L219.251,129.367C223.458,129.367 226.868,125.957 226.868,121.75L226.868,135.845C226.868,140.052 223.458,143.462 219.251,143.462L130.485,143.462C126.278,143.462 122.868,140.052 122.868,135.845L122.868,121.75Z" style="fill:rgb(61,133,198);fill-opacity:0.4;"/> - </g> - <path id="shadow12" d="M151.307,265.753C151.307,261.546 154.717,258.136 158.924,258.136L247.69,258.136C249.71,258.136 251.647,258.939 253.076,260.367C254.504,261.796 255.307,263.733 255.307,265.753L255.307,296.22C255.307,300.427 251.896,303.837 247.69,303.837L158.924,303.837C154.717,303.837 151.307,300.427 151.307,296.22L151.307,265.753Z" style="fill:rgb(61,133,198);fill-opacity:0.8;"/> - </g> - <g id="Shadows3" transform="matrix(1,0,0,1,338.609,0)"> - <g id="shadowN3" transform="matrix(1,0,0,1,28.4387,187.296)"> - <path d="M122.868,108.924C122.868,113.13 126.278,116.541 130.485,116.541L219.251,116.541C223.458,116.541 226.868,113.13 226.868,108.924L226.868,121.75C226.868,125.957 223.458,129.367 219.251,129.367L130.485,129.367C126.278,129.367 122.868,125.957 122.868,121.75L122.868,108.924Z" style="fill:rgb(61,133,198);fill-opacity:0.6;"/> - </g> - <g id="shadow23" transform="matrix(1,0,0,1,28.4387,187.296)"> - <path d="M122.868,121.75C122.868,125.957 126.278,129.367 130.485,129.367L219.251,129.367C223.458,129.367 226.868,125.957 226.868,121.75L226.868,135.845C226.868,140.052 223.458,143.462 219.251,143.462L130.485,143.462C126.278,143.462 122.868,140.052 122.868,135.845L122.868,121.75Z" style="fill:rgb(61,133,198);fill-opacity:0.4;"/> - </g> - <path id="shadow13" d="M151.307,265.753C151.307,261.546 154.717,258.136 158.924,258.136L247.69,258.136C249.71,258.136 251.647,258.939 253.076,260.367C254.504,261.796 255.307,263.733 255.307,265.753L255.307,296.22C255.307,300.427 251.896,303.837 247.69,303.837L158.924,303.837C154.717,303.837 151.307,300.427 151.307,296.22L151.307,265.753Z" style="fill:rgb(61,133,198);fill-opacity:0.8;"/> - </g> - <g id="Shadows4" transform="matrix(1,0,0,1,451.478,0)"> - <g id="shadowN4" transform="matrix(1,0,0,1,28.4387,187.296)"> - <path d="M122.868,108.924C122.868,113.13 126.278,116.541 130.485,116.541L219.251,116.541C223.458,116.541 226.868,113.13 226.868,108.924L226.868,121.75C226.868,125.957 223.458,129.367 219.251,129.367L130.485,129.367C126.278,129.367 122.868,125.957 122.868,121.75L122.868,108.924Z" style="fill:rgb(61,133,198);fill-opacity:0.6;"/> - </g> - <g id="shadow24" transform="matrix(1,0,0,1,28.4387,187.296)"> - <path d="M122.868,121.75C122.868,125.957 126.278,129.367 130.485,129.367L219.251,129.367C223.458,129.367 226.868,125.957 226.868,121.75L226.868,135.845C226.868,140.052 223.458,143.462 219.251,143.462L130.485,143.462C126.278,143.462 122.868,140.052 122.868,135.845L122.868,121.75Z" style="fill:rgb(61,133,198);fill-opacity:0.4;"/> - </g> - <path id="shadow14" d="M151.307,265.753C151.307,261.546 154.717,258.136 158.924,258.136L247.69,258.136C249.71,258.136 251.647,258.939 253.076,260.367C254.504,261.796 255.307,263.733 255.307,265.753L255.307,296.22C255.307,300.427 251.896,303.837 247.69,303.837L158.924,303.837C154.717,303.837 151.307,300.427 151.307,296.22L151.307,265.753Z" style="fill:rgb(61,133,198);fill-opacity:0.8;"/> - </g> - <path id="path71" d="M264.177,204.913C264.177,200.706 267.587,197.296 271.794,197.296L360.56,197.296C362.58,197.296 364.518,198.099 365.946,199.527C367.374,200.956 368.177,202.893 368.177,204.913L368.177,235.38C368.177,239.587 364.767,242.997 360.56,242.997L271.794,242.997C267.587,242.997 264.177,239.587 264.177,235.38L264.177,204.913Z" style="fill:rgb(61,133,198);"/> - <path id="path79" d="M151.307,204.913C151.307,200.706 154.717,197.296 158.924,197.296L247.69,197.296C249.71,197.296 251.647,198.099 253.076,199.527C254.504,200.956 255.307,202.893 255.307,204.913L255.307,235.38C255.307,239.587 251.896,242.997 247.69,242.997L158.924,242.997C154.717,242.997 151.307,239.587 151.307,235.38L151.307,204.913Z" style="fill:rgb(204,0,0);"/> - <g id="path93" transform="matrix(1,0,0,1,-5e-06,0)"> - <path d="M377.047,204.913C377.047,200.706 380.457,197.296 384.664,197.296L473.43,197.296C475.45,197.296 477.387,198.099 478.816,199.527C480.244,200.956 481.047,202.893 481.047,204.913L481.047,235.38C481.047,239.587 477.636,242.997 473.43,242.997L384.664,242.997C380.457,242.997 377.047,239.587 377.047,235.38L377.047,204.913Z" style="fill:rgb(61,133,198);"/> - </g> - <g id="path99" transform="matrix(1,0,0,1,5e-06,0)"> - <path d="M489.916,204.913C489.916,200.706 493.326,197.296 497.533,197.296L586.299,197.296C588.319,197.296 590.256,198.099 591.685,199.527C593.113,200.956 593.916,202.893 593.916,204.913L593.916,235.38C593.916,239.587 590.505,242.997 586.299,242.997L497.533,242.997C493.326,242.997 489.916,239.587 489.916,235.38L489.916,204.913Z" style="fill:rgb(61,133,198);"/> - </g> - <path id="path107" d="M602.785,204.913C602.785,200.706 606.195,197.296 610.402,197.296L699.168,197.296C701.188,197.296 703.125,198.099 704.554,199.527C705.982,200.956 706.785,202.893 706.785,204.913L706.785,235.38C706.785,239.587 703.375,242.997 699.168,242.997L610.402,242.997C606.195,242.997 602.785,239.587 602.785,235.38L602.785,204.913Z" style="fill:rgb(61,133,198);"/> - <path id="path173" d="M38.439,204.913C38.439,200.706 41.849,197.296 46.056,197.296L134.822,197.296C136.842,197.296 138.779,198.099 140.208,199.527C141.636,200.956 142.439,202.893 142.439,204.913L142.439,235.38C142.439,239.587 139.028,242.997 134.822,242.997L46.056,242.997C41.849,242.997 38.439,239.587 38.439,235.38L38.439,204.913Z" style="fill:rgb(106,168,79);"/> - <g> - <g id="text205" transform="matrix(1,0,0,1,4.13823,-6.12879)"> - <g transform="matrix(1,0,0,1,86.0032,220.635)"> - <text x="-33.932px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Subproject</text> - </g> - <g transform="matrix(1,0,0,1,86.0032,238.969)"> - <text x="-20.453px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Owner</text> - </g> - </g> - <g transform="matrix(1,0,0,1,203.26,214.506)"> - <g id="text205-2"> - <text x="-45.257px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Release Lead</text> - </g> - </g> - <g id="text205-2-1" transform="matrix(1,0,0,1,88.4678,54.9094)"> - <g transform="matrix(1,0,0,1,114.792,220.635)"> - <text x="-45.257px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Release Lead</text> - </g> - <g transform="matrix(1,0,0,1,114.792,238.969)"> - <text x="-30.168px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Shadows</text> - </g> - </g> - <g id="text205-2-5" transform="matrix(1,0,0,1,201.088,-6.12879)"> - <g transform="matrix(1,0,0,1,114.792,220.635)"> - <text x="-48.92px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Enhancements</text> - </g> - <g transform="matrix(1,0,0,1,114.792,238.969)"> - <text x="-16.314px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Lead</text> - </g> - </g> - <g id="text205-2-5-4" transform="matrix(1,0,0,1,201.088,54.9094)"> - <g transform="matrix(1,0,0,1,114.792,220.635)"> - <text x="-48.92px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Enhancements</text> - </g> - <g transform="matrix(1,0,0,1,114.792,238.969)"> - <text x="-30.168px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Shadows</text> - </g> - </g> - <g transform="matrix(1,0,0,1,381.104,214.685)"> - <g id="text205-2-5-8"> - <text x="4px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Comms Lead</text> - </g> - </g> - <g id="text205-2-5-8-3" transform="matrix(1,0,0,1,284.04,55.0885)"> - <g transform="matrix(1,0,0,1,114.792,220.635)"> - <text x="4px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Comms</text> - </g> - <g transform="matrix(1,0,0,1,114.792,238.969)"> - <text x="0px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Shadows</text> - </g> - </g> - <g id="text205-2-5-8-2" transform="matrix(1,0,0,1,391.921,-6.12879)"> - <g transform="matrix(1,0,0,1,149.762,220.635)"> - <text x="-49.467px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Release Signal</text> - </g> - <g transform="matrix(1,0,0,1,149.762,238.969)"> - <text x="-16.314px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Lead</text> - </g> - </g> - <g id="text205-2-5-8-2-3" transform="matrix(1,0,0,1,391.921,54.9094)"> - <g transform="matrix(1,0,0,1,149.762,220.635)"> - <text x="-49.467px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Release Signal</text> - </g> - <g transform="matrix(1,0,0,1,149.762,238.969)"> - <text x="-30.168px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Shadows</text> - </g> - </g> - <g transform="matrix(1,0,0,1,654.749,214.506)"> - <g id="text205-2-5-8-2-2"> - <text x="-35.059px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Docs Lead</text> - </g> - </g> - <g id="text205-2-5-8-2-2-5" transform="matrix(1,0,0,1,504.976,54.9094)"> - <g transform="matrix(1,0,0,1,149.762,220.635)"> - <text x="-16.708px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Docs</text> - </g> - <g transform="matrix(1,0,0,1,149.762,238.969)"> - <text x="-30.168px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Shadows</text> - </g> - </g> - <g id="text205-2-5-8-2-2-9-9-4" transform="matrix(1,0,0,1,683.127,55.0885)"/> - </g> - </g> -</svg> +<?xml version="1.0" encoding="utf-8"?> +<svg width="100%" height="100%" viewBox="0 0 915 154" version="1.1" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;" xmlns="http://www.w3.org/2000/svg"> + <g id="layer3" transform="matrix(1,0,0,1,-28.4387,-187.296)"> + <g id="Shadows"> + <g id="shadowN" transform="matrix(1,0,0,1,28.4387,187.296)"> + <path d="M122.868,108.924C122.868,113.13 126.278,116.541 130.485,116.541L219.251,116.541C223.458,116.541 226.868,113.13 226.868,108.924L226.868,121.75C226.868,125.957 223.458,129.367 219.251,129.367L130.485,129.367C126.278,129.367 122.868,125.957 122.868,121.75L122.868,108.924Z" style="fill:rgb(204,0,0);fill-opacity:0.6;"/> + </g> + <g id="shadow2" transform="matrix(1,0,0,1,28.4387,187.296)"> + <path d="M122.868,121.75C122.868,125.957 126.278,129.367 130.485,129.367L219.251,129.367C223.458,129.367 226.868,125.957 226.868,121.75L226.868,135.845C226.868,140.052 223.458,143.462 219.251,143.462L130.485,143.462C126.278,143.462 122.868,140.052 122.868,135.845L122.868,121.75Z" style="fill:rgb(204,0,0);fill-opacity:0.4;"/> + </g> + <path id="shadow1" d="M151.307,265.753C151.307,261.546 154.717,258.136 158.924,258.136L247.69,258.136C249.71,258.136 251.647,258.939 253.076,260.367C254.504,261.796 255.307,263.733 255.307,265.753L255.307,296.22C255.307,300.427 251.896,303.837 247.69,303.837L158.924,303.837C154.717,303.837 151.307,300.427 151.307,296.22L151.307,265.753Z" style="fill:rgb(204,0,0);fill-opacity:0.8;"/> + </g> + <g id="Shadows1" transform="matrix(1,0,0,1,112.87,0)"> + <g id="shadowN1" transform="matrix(1,0,0,1,28.4387,187.296)"> + <path d="M122.868,108.924C122.868,113.13 126.278,116.541 130.485,116.541L219.251,116.541C223.458,116.541 226.868,113.13 226.868,108.924L226.868,121.75C226.868,125.957 223.458,129.367 219.251,129.367L130.485,129.367C126.278,129.367 122.868,125.957 122.868,121.75L122.868,108.924Z" style="fill:rgb(61,133,198);fill-opacity:0.6;"/> + </g> + <g id="shadow21" transform="matrix(1,0,0,1,28.4387,187.296)"> + <path d="M122.868,121.75C122.868,125.957 126.278,129.367 130.485,129.367L219.251,129.367C223.458,129.367 226.868,125.957 226.868,121.75L226.868,135.845C226.868,140.052 223.458,143.462 219.251,143.462L130.485,143.462C126.278,143.462 122.868,140.052 122.868,135.845L122.868,121.75Z" style="fill:rgb(61,133,198);fill-opacity:0.4;"/> + </g> + <path id="shadow11" d="M151.307,265.753C151.307,261.546 154.717,258.136 158.924,258.136L247.69,258.136C249.71,258.136 251.647,258.939 253.076,260.367C254.504,261.796 255.307,263.733 255.307,265.753L255.307,296.22C255.307,300.427 251.896,303.837 247.69,303.837L158.924,303.837C154.717,303.837 151.307,300.427 151.307,296.22L151.307,265.753Z" style="fill:rgb(61,133,198);fill-opacity:0.8;"/> + </g> + <g id="Shadows2" transform="matrix(1,0,0,1,225.74,0)"> + <g id="shadowN2" transform="matrix(1,0,0,1,28.4387,187.296)"> + <path d="M122.868,108.924C122.868,113.13 126.278,116.541 130.485,116.541L219.251,116.541C223.458,116.541 226.868,113.13 226.868,108.924L226.868,121.75C226.868,125.957 223.458,129.367 219.251,129.367L130.485,129.367C126.278,129.367 122.868,125.957 122.868,121.75L122.868,108.924Z" style="fill:rgb(61,133,198);fill-opacity:0.6;"/> + </g> + <g id="shadow22" transform="matrix(1,0,0,1,28.4387,187.296)"> + <path d="M122.868,121.75C122.868,125.957 126.278,129.367 130.485,129.367L219.251,129.367C223.458,129.367 226.868,125.957 226.868,121.75L226.868,135.845C226.868,140.052 223.458,143.462 219.251,143.462L130.485,143.462C126.278,143.462 122.868,140.052 122.868,135.845L122.868,121.75Z" style="fill:rgb(61,133,198);fill-opacity:0.4;"/> + </g> + <path id="shadow12" d="M151.307,265.753C151.307,261.546 154.717,258.136 158.924,258.136L247.69,258.136C249.71,258.136 251.647,258.939 253.076,260.367C254.504,261.796 255.307,263.733 255.307,265.753L255.307,296.22C255.307,300.427 251.896,303.837 247.69,303.837L158.924,303.837C154.717,303.837 151.307,300.427 151.307,296.22L151.307,265.753Z" style="fill:rgb(61,133,198);fill-opacity:0.8;"/> + </g> + <g id="Shadows3" transform="matrix(1,0,0,1,338.609,0)"> + <g id="shadowN3" transform="matrix(1,0,0,1,28.4387,187.296)"> + <path d="M122.868,108.924C122.868,113.13 126.278,116.541 130.485,116.541L219.251,116.541C223.458,116.541 226.868,113.13 226.868,108.924L226.868,121.75C226.868,125.957 223.458,129.367 219.251,129.367L130.485,129.367C126.278,129.367 122.868,125.957 122.868,121.75L122.868,108.924Z" style="fill:rgb(61,133,198);fill-opacity:0.6;"/> + </g> + <g id="shadow23" transform="matrix(1,0,0,1,28.4387,187.296)"> + <path d="M122.868,121.75C122.868,125.957 126.278,129.367 130.485,129.367L219.251,129.367C223.458,129.367 226.868,125.957 226.868,121.75L226.868,135.845C226.868,140.052 223.458,143.462 219.251,143.462L130.485,143.462C126.278,143.462 122.868,140.052 122.868,135.845L122.868,121.75Z" style="fill:rgb(61,133,198);fill-opacity:0.4;"/> + </g> + <path id="shadow13" d="M151.307,265.753C151.307,261.546 154.717,258.136 158.924,258.136L247.69,258.136C249.71,258.136 251.647,258.939 253.076,260.367C254.504,261.796 255.307,263.733 255.307,265.753L255.307,296.22C255.307,300.427 251.896,303.837 247.69,303.837L158.924,303.837C154.717,303.837 151.307,300.427 151.307,296.22L151.307,265.753Z" style="fill:rgb(61,133,198);fill-opacity:0.8;"/> + </g> + <g id="Shadows4" transform="matrix(1,0,0,1,451.478,0)"> + <g id="shadowN4" transform="matrix(1,0,0,1,28.4387,187.296)"> + <path d="M122.868,108.924C122.868,113.13 126.278,116.541 130.485,116.541L219.251,116.541C223.458,116.541 226.868,113.13 226.868,108.924L226.868,121.75C226.868,125.957 223.458,129.367 219.251,129.367L130.485,129.367C126.278,129.367 122.868,125.957 122.868,121.75L122.868,108.924Z" style="fill:rgb(61,133,198);fill-opacity:0.6;"/> + </g> + <g id="shadow24" transform="matrix(1,0,0,1,28.4387,187.296)"> + <path d="M122.868,121.75C122.868,125.957 126.278,129.367 130.485,129.367L219.251,129.367C223.458,129.367 226.868,125.957 226.868,121.75L226.868,135.845C226.868,140.052 223.458,143.462 219.251,143.462L130.485,143.462C126.278,143.462 122.868,140.052 122.868,135.845L122.868,121.75Z" style="fill:rgb(61,133,198);fill-opacity:0.4;"/> + </g> + <path id="shadow14" d="M151.307,265.753C151.307,261.546 154.717,258.136 158.924,258.136L247.69,258.136C249.71,258.136 251.647,258.939 253.076,260.367C254.504,261.796 255.307,263.733 255.307,265.753L255.307,296.22C255.307,300.427 251.896,303.837 247.69,303.837L158.924,303.837C154.717,303.837 151.307,300.427 151.307,296.22L151.307,265.753Z" style="fill:rgb(61,133,198);fill-opacity:0.8;"/> + </g> + <path id="path71" d="M264.177,204.913C264.177,200.706 267.587,197.296 271.794,197.296L360.56,197.296C362.58,197.296 364.518,198.099 365.946,199.527C367.374,200.956 368.177,202.893 368.177,204.913L368.177,235.38C368.177,239.587 364.767,242.997 360.56,242.997L271.794,242.997C267.587,242.997 264.177,239.587 264.177,235.38L264.177,204.913Z" style="fill:rgb(61,133,198);"/> + <path id="path79" d="M151.307,204.913C151.307,200.706 154.717,197.296 158.924,197.296L247.69,197.296C249.71,197.296 251.647,198.099 253.076,199.527C254.504,200.956 255.307,202.893 255.307,204.913L255.307,235.38C255.307,239.587 251.896,242.997 247.69,242.997L158.924,242.997C154.717,242.997 151.307,239.587 151.307,235.38L151.307,204.913Z" style="fill:rgb(204,0,0);"/> + <g id="path93" transform="matrix(1,0,0,1,-5e-06,0)"> + <path d="M377.047,204.913C377.047,200.706 380.457,197.296 384.664,197.296L473.43,197.296C475.45,197.296 477.387,198.099 478.816,199.527C480.244,200.956 481.047,202.893 481.047,204.913L481.047,235.38C481.047,239.587 477.636,242.997 473.43,242.997L384.664,242.997C380.457,242.997 377.047,239.587 377.047,235.38L377.047,204.913Z" style="fill:rgb(61,133,198);"/> + </g> + <g id="path99" transform="matrix(1,0,0,1,5e-06,0)"> + <path d="M489.916,204.913C489.916,200.706 493.326,197.296 497.533,197.296L586.299,197.296C588.319,197.296 590.256,198.099 591.685,199.527C593.113,200.956 593.916,202.893 593.916,204.913L593.916,235.38C593.916,239.587 590.505,242.997 586.299,242.997L497.533,242.997C493.326,242.997 489.916,239.587 489.916,235.38L489.916,204.913Z" style="fill:rgb(61,133,198);"/> + </g> + <path id="path107" d="M602.785,204.913C602.785,200.706 606.195,197.296 610.402,197.296L699.168,197.296C701.188,197.296 703.125,198.099 704.554,199.527C705.982,200.956 706.785,202.893 706.785,204.913L706.785,235.38C706.785,239.587 703.375,242.997 699.168,242.997L610.402,242.997C606.195,242.997 602.785,239.587 602.785,235.38L602.785,204.913Z" style="fill:rgb(61,133,198);"/> + <path id="path173" d="M38.439,204.913C38.439,200.706 41.849,197.296 46.056,197.296L134.822,197.296C136.842,197.296 138.779,198.099 140.208,199.527C141.636,200.956 142.439,202.893 142.439,204.913L142.439,235.38C142.439,239.587 139.028,242.997 134.822,242.997L46.056,242.997C41.849,242.997 38.439,239.587 38.439,235.38L38.439,204.913Z" style="fill:rgb(106,168,79);"/> + <g> + <g id="text205" transform="matrix(1,0,0,1,4.13823,-6.12879)"> + <g transform="matrix(1,0,0,1,86.0032,220.635)"> + <text x="-33.932px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Subproject</text> + </g> + <g transform="matrix(1,0,0,1,86.0032,238.969)"> + <text x="-20.453px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Owner</text> + </g> + </g> + <g transform="matrix(1,0,0,1,203.26,214.506)"> + <g id="text205-2"> + <text x="-45.257px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Release Lead</text> + </g> + </g> + <g id="text205-2-1" transform="matrix(1,0,0,1,88.4678,54.9094)"> + <g transform="matrix(1,0,0,1,114.792,220.635)"> + <text x="-45.257px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Release Lead</text> + </g> + <g transform="matrix(1,0,0,1,114.792,238.969)"> + <text x="-30.168px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Shadows</text> + </g> + </g> + <g id="text205-2-5" transform="matrix(1,0,0,1,201.088,-6.12879)"> + <g transform="matrix(1,0,0,1,114.792,220.635)"> + <text x="-48.92px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Enhancements</text> + </g> + <g transform="matrix(1,0,0,1,114.792,238.969)"> + <text x="-16.314px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Lead</text> + </g> + </g> + <g id="text205-2-5-4" transform="matrix(1,0,0,1,201.088,54.9094)"> + <g transform="matrix(1,0,0,1,114.792,220.635)"> + <text x="-48.92px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Enhancements</text> + </g> + <g transform="matrix(1,0,0,1,114.792,238.969)"> + <text x="-30.168px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Shadows</text> + </g> + </g> + <g transform="matrix(1,0,0,1,381.104,214.685)"> + <g id="text205-2-5-8"> + <text x="4px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Comms Lead</text> + </g> + </g> + <g id="text205-2-5-8-3" transform="matrix(1,0,0,1,284.04,55.0885)"> + <g transform="matrix(1,0,0,1,114.792,220.635)"> + <text x="4px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Comms</text> + </g> + <g transform="matrix(1,0,0,1,114.792,238.969)"> + <text x="0px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Shadows</text> + </g> + </g> + <g id="text205-2-5-8-2" transform="matrix(1,0,0,1,391.921,-6.12879)"> + <g transform="matrix(1,0,0,1,149.762,220.635)"> + <text x="-49.467px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Release Signal</text> + </g> + <g transform="matrix(1,0,0,1,149.762,238.969)"> + <text x="-16.314px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Lead</text> + </g> + </g> + <g id="text205-2-5-8-2-3" transform="matrix(1,0,0,1,391.921,54.9094)"> + <g transform="matrix(1,0,0,1,149.762,220.635)"> + <text x="-49.467px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Release Signal</text> + </g> + <g transform="matrix(1,0,0,1,149.762,238.969)"> + <text x="-30.168px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Shadows</text> + </g> + </g> + <g transform="matrix(1,0,0,1,654.749,214.506)"> + <g id="text205-2-5-8-2-2"> + <text x="-35.059px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Docs Lead</text> + </g> + </g> + <g id="text205-2-5-8-2-2-5" transform="matrix(1,0,0,1,504.976,54.9094)"> + <g transform="matrix(1,0,0,1,149.762,220.635)"> + <text x="-16.708px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Docs</text> + </g> + <g transform="matrix(1,0,0,1,149.762,238.969)"> + <text x="-30.168px" y="0px" style="font-family: ArialMT, Arial, sans-serif; font-size: 14.667px; white-space: pre;">Shadows</text> + </g> + </g> + <g id="text205-2-5-8-2-2-9-9-4" transform="matrix(1,0,0,1,683.127,55.0885)"/> + </g> + </g> +</svg> diff --git a/release-team/role-handbooks/README.md b/release-team/role-handbooks/README.md index 77d2464aaa3..5d5472848c6 100644 --- a/release-team/role-handbooks/README.md +++ b/release-team/role-handbooks/README.md @@ -1,6 +1,6 @@ -# role-handbooks - -These handbooks are maintained by current and previous contributors who have -staffed these roles. They are intended to be living documents that evolve as -the roles and project evolves. Do not treat them as rules set in stone, but -guidelines to be re-examined. +# role-handbooks + +These handbooks are maintained by current and previous contributors who have +staffed these roles. They are intended to be living documents that evolve as +the roles and project evolves. Do not treat them as rules set in stone, but +guidelines to be re-examined. diff --git a/release-team/role-handbooks/communications/OWNERS b/release-team/role-handbooks/communications/OWNERS index f8c8b1d676f..29768d928cf 100644 --- a/release-team/role-handbooks/communications/OWNERS +++ b/release-team/role-handbooks/communications/OWNERS @@ -1,6 +1,6 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -approvers: - - communications-subteam-approvers -reviewers: - - communications-subteam-approvers +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - communications-subteam-approvers +reviewers: + - communications-subteam-approvers diff --git a/release-team/role-handbooks/communications/README.md b/release-team/role-handbooks/communications/README.md index 4a2c5ec3eb9..dfd9b8c559b 100644 --- a/release-team/role-handbooks/communications/README.md +++ b/release-team/role-handbooks/communications/README.md @@ -1,463 +1,463 @@ -# Kubernetes Release Team: Communications Coordinator - -## Overview - -The Communications Coordinator role is responsible for facilitating, empowering, and curating communication between the release team and various stakeholders including the Cloud Native Computing Foundation (CNCF), the media, contributing vendors, Kubernetes project managers, and the overall Kubernetes community at large. - -Communications deliverables that come from the release process include a release blog, an optional removals and deprecations blog, facilitation of a feature blog series, scheduling of a CNCF Kubernetes release webinar as well as other speaking opportunities, and approved messaging for media. In the event the release schedule slips, the communications coordinator will ensure media opportunities through the CNCF are synchronized and that all stakeholders are kept advised of changes in timing. - -## Requirements - -**Before continuing on to the Communications specific requirements listed below, please review and work through the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md).** - -### Skills and Experience Required - -- Strong written and verbal communications skills -- A working knowledge of Kubernetes concepts -- Fundamental GitHub skills and experience with open source projects -- Enough experience with the Kubernetes release process to understand how communications milestones fit into the overall release -- Project management experience -- Existing relationships with the CNCF, relevant media personnel and outlets, Kubernetes project managers, and vendor stakeholders is helpful, but not required -- The communications lead should take the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) training course - -### Expected Time Investment - -The Kubernetes release cycle spans 15 weeks, however it may run longer. The typical workload for the communications team is very light during the first few weeks of the release cycle. In the later weeks, **the workload can become heavy, and will continue a few weeks after the release.** - -The expected time investment for both leads and shadows are as follows: - -- 30 minutes to 2 hours a day (depending upon week), requesting and reviewing incoming KEPs and blog PRs, working with other SIGs or the CNCF to manage the feature blog posts, and following Slack channels in order to keep pending content current. - -- 1 to 5 hours a week, attending - - Release Team (weekly) - - SIG Docs Team (biweekly) and - - Burndown meetings (daily during Code Freeze). - -**NOTE:** These are estimates and your personal experience may vary. The keys to success in this role are collaboration with the team and maintaining regular communication within the team. - -## External Release Communication - -Please use the `release-comms@kubernetes.io` Google Group list for external release communications (communicating with the CNCF, etc.). - -The following groups should be members: -* The current release cycle's Release Team Lead & Lead Shadows -* The current release cycle's Communications Lead & Comms Shadows -* SIG Release Chairs - -The list must rotated/actively managed every cycle. Submit a PR to update [this document](https://git.k8s.io/k8s.io/groups/groups.yaml) per the milestone activities described below. - -### Slack Channel - -There is a channel on the Kubernetes Slack workspace, `#release-comms`, which is used by the communications release team to coordinate their efforts. If you're on the communications team, or applying to be, then it would be advantageous to follow along with the conversations. The Communications Coordinator (often referred to as the "Comms Lead") should post a status here at a regular cadence to keep release team members and other stakeholders informed. - -How a particular team communicates day-to-day is up to the Comms Lead and teams members, but usually they Slack DM on day-to-day coordination and post summary updates in `#release-comms`. -A good practice is to also update `#sig-docs` and `#sig-docs-blogs` channels with the status of the release blog, feature blogs, and other deliverables. - -## Working with other teams and SIGs - -Throughout the release cycle, the comms team works with lots of different teams within the Kubernetes community. As a Comms lead or member of the comms team, you should feel empowered to reach out and ask questions or ask for help from SIGs and other Release team members to meet deadlines. - -Some groups you may need to contact, on top of the already mentioned SIG Docs (Blog), include: - -* SIG Contributor Experience in the `#sig-contribex` slack channel and by attending meetings. They can help promote the feature blogs through social media. Also, see the special posts section below. -* Chairs and Tech Leads of SIGs in the `#chairs-and-techleads` Slack channel. This can be a helpful place to post reminders about blog deadlines SIG leads to see. - -## Release deliverables - -Throughout the release cycle, the main Communications deliverables include: -* **Collection of Release Highlights.** The Communications team coordinates with SIG Leads to solicit Release Highlights for the release, to be used in both the Release Blog and Release Notes. -* **Authoring the Kubernetes release blog.** The Communications team writes the release blog, which is the official announcement of the Kubernetes release. This includes the Release Highlights from SIG leads. -* **Coordination and support of the feature blog series.** SIGs opt-in to author feature blogs for the release. These blogs are written by technical owners, and the Communications team supports authors from the early stages through facilitating editorial and tech reviews as well as publication. -* **Coordination and support of an optional Mid-Cycle / Deprecations and Removals blog.** Depending upon the content of a given release, it may be necessary to prepare the community for upcoming deprecations and removals. This is decided per release cycle around the time of Code Freeze. -* **Scheduling press activities and the post-release webinar with the CNCF.** The Communications Coordinator works with the CNCF to schedule press release activities around the release, and to schedule the release webinar (typically scheduled 3-4 weeks post-release). - -### Collect Release Highlights - -A GitHub Discussion must be open to invite all SIG leads and members to add Release Highlights for inclusion in the Release Blog and Release Notes. The discussion must be opened in kubernetes/sig-release under General Category. - -Past discussions: [1.34](https://github.com/kubernetes/sig-release/discussions/2806), [1.33](https://github.com/kubernetes/sig-release/discussions/2734), [1.32](https://github.com/kubernetes/sig-release/discussions/2639), [1.25](https://github.com/kubernetes/sig-release/pull/1987), [1.24](https://github.com/kubernetes/sig-release/discussions/1868), [1.23](https://github.com/kubernetes/sig-release/discussions/1709), [1.22](https://github.com/kubernetes/sig-release/discussions/1575), [1.21](https://github.com/kubernetes/sig-release/discussions/1436). - -Each SIG should be pinged via their individual Slack channels and the `#chairs-and-techleads` channel to solicit suggestions, and each KEP owner can be asked about inclusion as a Release Highlight at the same time Feature Blogs are being solicited. - -For each submission, SIG representatives should provide: -- A link to KEP -- The stage the feature is moving to -- A brief description of KEP that will be used as an outline for the blog post content - -The Communications team should hold a meeting to discuss Release Highlights sometime around Code Freeze. Ensure that at least one person from the Docs/Release Notes team attends this meeting with the Release Lead and Enhancements Lead. - -**NOT EVERY KEP NEEDS A HIGHLIGHT**. Work with the SIGs owners and Release Team to make sure all highlights gathered in the discussion actually need a section in the release announcement blog. - -### Release blog - -The Communications Coordinator along with the Comms shadows are responsible for authoring the official Kubernetes Release blog. This blog is the official statement of release. The release blog is the primary vehicle by which the release team communicates the release highlights, known issues, and other aspects of the release to the community. - -Start the draft with the team around week 11, striking a balance between the enhancements being close to finalized and having enough to time author the blog and have it reviewed. Ahead of review, open a pull request on the [website repository](https://github.com/kubernetes/website) and assign the release lead and other stakeholders as reviewers. - -It's up to you and your team regarding how best to do this. Typically it works well to assign sections to different team members and have the lead pull it all together and manage the PR and reviews. You can work on a draft in Google Docs or [Hackmd](https://hackmd.io/), then move into the PR when content is more finalized. It's also recommended to get KEP authors or SIG Leads to provide 1-2 paragraph descriptions of KEP changes as a starting point for the release blog. This is an easier starting point for putting the whole release blog together. - -The release lead will drive the content for the release theme and logo. - -#### Process to publish the release blog - -1. Open a PR against [k/website](https://github.com/kubernetes/website) targeting the `main` branch, and adding a front matter with `draft: true`. This flag will ensure that the blog will not be published even if it passes the target publication date, but available from the CI build for PRs. - -2. The PR has to be reviewed by the SIG Docs Blog team, which will provide a content and style review. SIG's chairs and tech leads will provide a tech review. After `lgtm` and `approve` labels are applied, the blog can be merged to the `main` branch. With the `draft: true` flag, this blog will not be published to the website. - -3. In a second PR opened (ideally) a week before the release day, the Comms Lead will: -- remove the `draft: true` parameter -- ensure the date parameter is set to the release date -- add the release logo and theme to the final release blog - -> [!IMPORTANT] -> Because of the merge freeze in place, this PR will need to be merged by the Docs Lead, triggering the `/unhold` command on the release day. The Comms Lead just has to make sure that the PR is ready for merge with all the checks passed and required `lgtm` and `approve` labels applied. - -An example of this final PR can be found [here](https://github.com/kubernetes/website/pull/51991/files). - -4. The release blog will be published on the Kubernetes blog on the agreed date. - -5. Once the release blog is published, the Comms Lead should share the blog in `#announcements` ([example](https://kubernetes.slack.com/archives/C9T0QMNG4/p1756378122306569)) and `#release-comms` ([example](https://kubernetes.slack.com/archives/CNT9Y603D/p1756388540054189)) Slack channels. To get access to write in `#announcements`, please reach out Slack admins in #slack-admins. - -### Feature blogs - -Tracking, facilitating, and organizing the publication of the Feature Blog series is a major deliverable of the Comms team. Feature blogs are opt-in for SIGs, and are authored by enhancement developers and others close to the features. We do, however, need to encourage owners of important enhancements to opt in to writing feature blogs. - -Examples of enhancements that warrant a feature blog might include: -* breaking changes -* features and changes important to our users -* features that have been in progress for a long time and are graduating -* features that are considered mandatory by the Release Lead. - -It helps to work closely with the Release Lead and use the respective SIG Slack channels to remind the SIGs about opting in to feature blogs and provide any necessary context to blog authors. - -**Reach out in KEP issues to ask for feature blog opt-in.** Ask every KEP owner if they want to contribute a blog by reaching out in the KEP issue. Example messaging can be found [here](/release-team/role-handbooks/communications/templates/feature-blog-opt-in-message.md). - -**NOT EVERY KEP NEEDS A BLOG**. Work with the KEP owners, Release Lead, and SIG Docs Blog team (though #sig-docs-blog slack channel) to make sure all KEPs that opt-in really need a blog written. If a feature is small, or new in Alpha it may not be ready for a blog. You should also encourage important features to sign up to write a blog. Try to limit the number of blogs to 15 or fewer. - -**As feature blogs are opted in and placeholder PRs are created**, assign the blogs to shadows and yourself for tracking and facilitation. The Comms team is responsible for making sure blog authors have the resources and information they need to write the blog, and tracking the blogs progress through editorial and tech reviews once the blog is ready. After a blog placeholder PR has been created, you should switch to using the placeholder PR for contacting authors on GitHub instead of the KEP issue. - -> Some features that opt-in to writing a blog may miss the code freeze deadline. Blog placeholder PRs for features that are no longer in the release should be closed. - -When a placeholder PR is created, make sure the PR has been opened using a `draft: true` parameter in its metadata. - -Once the placeholder PRs are open, **assign a writing buddy to each PR as needed**. Select the writing buddy from the KEP authors of the other open placeholder PRs and pair them up. The writing buddy will act as a peer reviewer and provide support for the main author of the feature blog. Some feature blog PRs are written collaboratively within SIGs or are opened with the blog content already complete; these may not need a writing buddy. -For more information about the writing buddy assignment process and their role, please refer to [this documentation page](https://kubernetes.io/docs/contribute/blog/writing-buddy/). -Example messaging can be found [here](/release-team/role-handbooks/communications/templates/writing-buddy-assignment.md). - -#### Feature blog PR instructions for authors - -The blog author has to open a PR against [k/website](https://github.com/kubernetes/website) targeting the `main` branch (**not dev branch**), and adding a front matter with `draft: true`. The following front matter is suggested, the `draft: true` parameter is required to keep the blog from being published before its ready: -```yaml ---- -layout: blog -title: 'Kubernetes v1.<minor>: <title>' -draft: true -slug: kubernetes-v1-<minor>-<slug> -author: <author> ---- -``` - -#### Creating a blog publication schedule - -**The Comms team establishes the feature blog publication schedule.** Other members of the release team or blog reviewers may contribute ideas and feedback on the schedule, but ultimately the schedule is determined by the Comms team. - -Use the blog schedule field in the Feature Blog view on the tracking board to assign a publication date. - -Feature blog publication usually starts the day after the release. The release blog goes out on same day as the release and the first feature blog typically goes out the day after the release. The rest of the blogs are published one-at-a-time, typically at a rate of two to three posts weekly. Depending on how many feature blogs you have, you may want to publish one per day after the release (excluding weekends). In general, all feature blogs should be published within month of the release day. - -> Note that blog PRs in k/website are dated, and automation will publish future-dated entries. This enables a PR process decoupled from blog publication date. Once a blog has passed the review process and its after the release day, the PR can be merged and will be published on the date on the blog. - -**Communicate the planned publish date to SIG Docs**. Notify the following Slack channels: `#sig-docs-blog`, `#sig-docs` about the schedule. The communications team will assist in coordinating and publishing the feature blogs on schedule. - -Please note that the release team will support the blog publication after the release day too. - -#### Feature blog reviews - -Also see the docs for [pull requests review process](https://kubernetes.io/docs/contribute/review/reviewing-prs/) and [reviewing a pull request](https://kubernetes.io/docs/contribute/review/for-approvers/#reviewing-a-pr). - -**Work closely with the [SIG Docs Blogs](https://github.com/kubernetes/community/tree/master/sig-docs/blog-subproject) team.** These are the folks responsible for editorial reviews (and sometimes tech reviews) of Kubernetes blogs. The Comms lead should plan to regularly share updates on blog status and review timelines with the blog reviewers via `#sig-docs-blogs` and during sig-docs meetings. - -Each blog should pass 2 official reviews, an editorial review and tech review. Anyone is open to do an "informal" review on any blog and leave suggestions. As part of the comms team, it's encouraged (but not required) to help reviews blogs for both editorial and technical correctness, if you have time. - -An official review comes from someone with [permission to add the lgtm label](https://kubernetes.io/docs/contribute/review/for-approvers/#prow-commands-for-reviewing) to a pull request. -* **Tech reviews** usually come from the sponsoring SIG. If you dont see a tech review on the blog, reach out to the author to make sure the PR has been flagged for review. You can also reach out in the SIG slack channel to ask for help with tech reviews. -* **Editorial reviews** usually come from blog reviewers or SIG Docs reviewers. They make sure that the blog is readable and adheres to the [style guide](https://kubernetes.io/docs/contribute/style/style-guide/). You can also reach out to the SIG Docs [PR wrangler](https://kubernetes.io/docs/contribute/participate/pr-wranglers/), for help getting reviews or approvals on PRs. See the [PR wrangler schedule](https://github.com/kubernetes/website/wiki/PR-Wranglers) for more details. - -Once a blog has the `lgtm` label added, an [approver] can add the `approve` label to get the PR merged. Note that reviews can still happen on blogs with a `lgtm` label. - -Aim to have all blogs reviewed and approved (merged) by release day. But note that its common for some blog reviews to continue past the release day. - -#### Process to publish opt-in feature blogs - -1. The PRs with blog contents have to be reviewed by the SIG Docs Blog team, which will provide a content and style review. A tech review is mandatory and has to be performed by the SIG that owns that KEP. After these reviews, the blogs will be merged in the `main` branch, in draft mode, so not visible on the Kubernetes blog. - -2. All feature blogs will be scheduled for publication in a bulk PR opened (ideally) a week before the release day, the Comms team will: -- remove the `draft: true` parameter from the metadata of all feature blogs -- ensure the date parameter is set to the agreed publication date -- rename all the files and folders to follow the date convention, according to the schedule agreed with SIG Docs Blog. -- ensure title and slug are correct - -3. This publication PR has to be reviewed and approved by SIG Docs Blog team. After lgtm and approve labels are applied, the blog will be merged in the `main` branch. - -4. The feature blogs will be published in kubernetes.io/blog on the dates agreed in the schedule. - -_Note: content fixes are possible for feature blogs but handled by the author and SIG Docs blog, separately._ - -### Mid-cycle / deprecations and removals blog - -This blog is OPTIONAL and will vary from release to release. Work with the rest of the release team ahead of **the Code Freeze date to determine if a mid-cycle blog focused on feature deprecations and removals is warranted**. -Its content is agreed upon by the Comms Lead, Enhancements Lead, and Release Lead. - -If so, facilitate its creation and publication. You can create a Slack thread on [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) and `#sig-docs-blog` to discuss this. - -If the release will deprecate important and commonly-used features (or simply a large number of features will be deprecated) or if there's a desire to inform about the release status mid cycle, consider publishing this blog. - -Keep in mind that the deadline for a mid-cycle blog has to be **after the code freeze**, at least 4/5 days later to make sure the content of this blog is relevant. - -Follow these examples: -- [Kubernetes v1.32 sneak peek](https://kubernetes.io/blog/2024/11/08/kubernetes-1-32-upcoming-changes/) -- [Kubernetes Removals and Major Changes In 1.25](https://kubernetes.io/blog/2022/08/04/upcoming-changes-in-kubernetes-1-25/) -- [Kubernetes API and Feature Removals in 1.22](https://kubernetes.io/blog/2021/07/14/upcoming-changes-in-kubernetes-1-22/) -- [Deprecated APIs Removed in 1.16](https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/) - -> Publication should occur ahead of the release in order to inform the community and allow for preparation time. Start the discussion mid-cycle and well ahead of Code Freeze, and target publication for right after the Code Freeze week. - -### Press and release webinar - -This is a simple but very important component of the Communications Coordinator role. Two sets of activities need to be scheduled with the CNCF: -- press release and interview scheduling around the release day -- the release webinar after the release. - -You will be a liaison between the Release lead and the CNCF contacts to schedule the press briefings. Send an email to `pr@cncf.io` about a month ahead of the release (on week 10/11) and coordinate between the parties to get release day press events scheduled. - -See the sample email [here](/release-team/role-handbooks/communications/templates/pr-email.md) for schedule press and pre-briefings for the release lead. - -To schedule the release webinar with the CNCF, start a conversation with an email to `webinars@cncf.io`. - -See the sample webinar email [here](/release-team/role-handbooks/communications/templates/webinar-email.md) for reference. - -You will likely use the Calendly link (below) to schedule a "live webinar". If things are tight on the schedule, CNCF will help find a spot. -The webinar is typically scheduled for 3-4 weeks after the release and is primarily presented by the Release lead and Enhancements lead. Often the Comms lead will also join the webinar. The format is open, but primarily the team walks through the enhancements in the release and gives a sneak peek of what's coming in the next release. - -Refer to past [slides](/releases/release-1.34/Kubernetes%20v1.34%20Release%20Webinar.pptx) and [webinars](https://www.youtube.com/live/1hOOplxu6g0?si=DqvJD9MpS3fr4vLh) as an example. - -_Note: you'll need to send headshots and company/title information when you schedule the webinar and the slides should be ready at least one week ahead of the webinar._ - ---- -The Release Lead is probably the best person to put together the slides, but it can also be something the lead, comms lead, and enhancement lead for a release can decided on the best way to pull the presentation together. - -For the 1.31 release the release and enhancement lead created the slides 1 week before the webinar was scheduled. We then had a quick 10 minute meeting to talk about how to run through the slides on the webinar. Release Lead and Enhancements Lead alternated on each slide and mostly just read out the content on the slides and maybe added a little more context. - -As a Comms Lead you don't have to talk on the presentation, but you can if you want to. -The presentation isn't intended to be very technical. Just an overview of the changes. The listeners may have questions but it's perfectly fine to direct them to read the KEP or asking in the sig-slack channel to get more information. So there is no need to be an expert on any of the changes. The CNCF has a moderator on the webinar with you to help with running it, recording, and managing the chat. They don't need the slides ahead of time, you just show up with the slides to the webinar. - -### Tips and tricks - -See this file for some [tips and tricks](/release-team/role-handbooks/communications/tips-and-tricks.md) that may help you succeed in this role. - -### Social posts - -The Release Communications team is **NOT** responsible for social posting. [SIG Contributor Experience](https://github.com/kubernetes/community/tree/master/sig-contributor-experience) (SIG Contribex) manages the official Kubernetes social accounts and is responsible for all posts to those accounts. SIG Contribex has created automation around blog posts, so once a blog is published to the Kubernetes website, social posts are created and posted according to SIG Contribex's automation schedule. - -If the Communications team and Release Lead determine a feature or other release communication needs a more detailed communications or calls to action, reach out to with SIG Contributor Experience for help making posts use the `@contributor-comms` tag in the `#sig-contribex` Slack channel. - -## Release Milestone Activities - -This is an example of a typical release cycle and the order of how tasks will flow for Comms. Note that some tasks may take longer than their designated "release week". Each release is a little different, the following guideline is only a suggestion. You should always refer to the specific release schedule for exact dates and deadlines in a release cycle. - -<table> - <tr> - <td><h3><b>Release Week</h3></b></td> - <td><h3><b>Milestones</h3></b></td> - <td><h3><b>Activities</h3></b></td> - </tr> - <tr> - <td>1</td> - <td><b>Start of release cycle</b></td> - <td> - <ul> - <li>Start attending the Release Team weekly meeting - <li>Join the following Slack channels: <code>#sig-release</code>, <code>#release-comms</code>, <code>#sig-docs</code>, and <code>#sig-docs-blog</code>. - <li>Check if there are any holidays or events (e.g. KubeCon) that will occur during this release which may impact communication with the CNCF and SIG Chairs, plan accordingly - <li>Select shadows for the team - <li>Ensure shadows are all in the Kubernetes org on GitHub - <li>Ensure you and your shadows are entered into the release contact sheet - <li>Ensure you and your shadows are on the release team meeting invites - <li>Establish initial meeting with the Comms team to introduce everyone and review tasks and the release timeline - <li>Plan a regular-cadence Comms team sync up (mostly needed toward the end of the cycle) - </ul> - </ul> - </td> - </tr> - <tr> - <td>2</td> - <td></td> - <td> - <ul> - <li>Update the <code>release-comms</code> Group. <a href="https://github.com/kubernetes/k8s.io/blob/main/groups/sig-release/groups.yaml">Membership</a> for this group is defined in <a href="https://git.k8s.io/k8s.io">kubernetes/k8s.io</a>. Ensure the list <b>only includes</b>: - <ul> - <li>The current release cycle's Release Team Lead & Lead Shadows - <li>The current release cycle's Communications Lead & Comms Shadows - <li>SIG Release Chairs - </ul></ul> - <ul> - <li>Start communications with the SIG leads to align on the communications timeline and support for writing feature posts - <li>Setup a communications plan aligned with the Release Calendar - <li>Agree on participation together with Enhancements team lead at the next SIG Leads monthly meeting to align on expectations and communication possibilities - </ul> - </td> - </tr> - <tr> - <td>3</td> - <td><b>Production Readiness Freeze</b></td> - <td> - <ul> - <li>Get access to the <code>Enhancements</code> and <code>Feature blog opt-in</code> tracking boards and start following along. Edit the <code>Comms Opt-in Assignee</code> and <code>Comms Editor</code> columns with everyone on the comms team. - </ul> - </td> - </tr> - <tr> - <td>4</td> - <td><b>Enhancements Freeze</b></td> - <td> - <ul> - <li>Work with the enhancements lead to understand big-ticket items to be included in the release - <li>Start monitoring the <code>Feature blog opt-in</code> sheet for new entries and use the <code>Status field</code> to assign and track status throughout the cycle - <li> With Enhancement freeze in effect, create a GitHub discussion (<a href="https://github.com/kubernetes/sig-release/discussions/2047">example v1.26</a>) to start collecting the Release Highlights of the release, and reach out to all SIGs on and off over the next few weeks to ask for Release Highlights and explain why this is important to the community. - <ul> - </ul> - </ul> - </td> - </tr> - <tr> - <td>5</td> - <td></td> - <td> - <ul> - <li>Work with Enhancements and Release Note leads to determine which deliverables are most noteworthy post-Enhancements Freeze - <li>In the coming weeks, follow the progress of these enhancements, as they will roll into the Release Highlights and be called out and described in the release blog - <li>Work with the Release Team and decide if the release warrants a mid-cycle 'Deprecations and Removals' blog. Generally, this is decided at a minimum of two deprecations or removals, or if there are significant deprecations and removals that will impact the community. - <li>If needed, solicit author(s) for a 'Deprecations and Removals' blog and get a placeholder PR in k/website for tracking - </ul> - </td> - </tr> - <tr> - <td>8</td> - <td></td> - <td> - <ul> - <li>Post reminders for the feature blog opt-in on the SIG slack channels (<a href="https://kubernetes.slack.com/archives/C0BP8PW9G/p1622556913118800">for example</a>) - <li>Assign feature blog topics as they come in to team shadows for support and tracking efforts - <li>Join the <code>#sig-docs-blog</code> channel on Slack. Share the current status of the Feature blog opt-in's and in Slack and in the sig-docs call and work with the team to establish review expectations and publication strategy. - </ul> - </td> - </tr> - <tr> - <td>10</td> - <td></td> - <td> - <ul> - <li>Send out final reminders for feature blog opt-in on the SIG slack channels or KEP issues - <li>Facilitate or start writing the optional Deprecations and Removals blog - <li>Coordinate with Release Notes to ensure Release Highlights are checked in before Code Freeze. - </ul> - </td> - </tr> - <tr> - <td>11</td> - <td><b>Feature blog freeze</b></td> - <td> - <ul> - <li>Start attending burndown meetings - <li>Participate in the release retro part 1 - <li>Feature blog freeze is this week - <li>Assign remaining feature blog topics - <li>Establish feature blog post-release publication schedule, typically 2-3 posts per week. - <li>Post the feature blog publication schedule in <code>#sig-docs-blog</code> (<a href="https://kubernetes.slack.com/archives/CJDHVD54J/p1628649661040600">example post</a>) - <li>Establish a regular cadence status check-in with the <code>#sig-docs-blog</code> team and maintain the publication schedule post in Slack to keep everyone synced - <li>Request placeholder PRs in k/website from all feature blog authors - <li>Optional 'Deprecations and Removals' blog ready for review - </ul> - </td> - </tr> - <tr> - <td>12</td> - <td><b>Code Freeze</b></td> - <td> - <ul> - <li>Begin the release blog draft, if not yet started - <li>Host a meeting with the Release Lead, Enhancements Lead, and Release Notes to discuss the Release Highlights to be highlighted in the release blog and ensure consistency with Release Notes - <li>Publish the optional 'Mid-Cycle (Deprecations and Removals)' blog - <li>Schedule the release Live Webinar with CNCF by emailing <code>webinars@cncf.io</code>. You may be referred to <a href="https://calendly.com/cncfonlineprograms">Calendly</a>. The webinar is typically scheduled for 3-4 weeks after the release - <li>Schedule press and analyst pre-briefings and interviews for the release lead with CNCF by emailing <code>pr@cncf.io</code> - <li>Schedule release blog and press embargo with CNCF - </ul> - </td> - </tr> - <tr> - <td>13</td> - <td></td> - <td> - <ul> - <li>Finalize and publish the 'Deprecations and Removals' blog once code freeze is in place. - <li>Update release blog draft, post-Code Freeze - <li>Check status with Release Notes lead on content for the Known Issues section of the release blog - <li>Check status on all feature blog PRs. Keep <code>#sig-docs-blog</code> up-to-date for editorial review, and establish tech reviewers are available - </ul> - </td> - </tr> - <tr> - <td>14</td> - <td><b>Feature Blogs ready to review</b></td> - <td> - <ul> - <li>Feature blog reviews start - <li>Continue to partner with <code>#sig-docs-blog</code> for editorial review, work to ensure tech reviews are moving forward from SIGs - <li>Connect with Release Lead to ensure theme and release logo will be ready for release blog (not required for draft revisions) - <li>Ensure that short one-to-two paragraph summaries of each Release Highlights are available for the release blog from Release Notes lead or SIG Chairs - <li>Finalize Release blog final draft and start reviews - <li>Send release blog draft to CNCF - </ul> - </td> - </tr> - <tr> - <td>15</td> - <td><b>Release Week</b></td> - <td> - <ul> - <li>Finalize Release Blog, ensure it's ready for Docs Lead to publish on release day (Docs lead has to unhold the final PR, due to website freeze) - <li>Ensure feature blogs are ready to publish and that review and merge plans are in place for any still outstanding. - </ul> - </td> - </tr> - <tr> - <td>16</td> - <td><b>Release retrospective</b></td> - <td> - <ul> - <li>Participate in release retro parts 2 and 3 (as needed) - <li>Organize the slides for the CNCF release webinar, and send to the CNCF for review at least one week ahead of the scheduled date. - <li>Update this document! - <li>Rest, you did a great job :) - </ul> - </td> - </tr> -</table> - -The table above is a guideline for the release cycle. A realistic outline of the activities for a release cycle is [here](https://github.com/kubernetes/sig-release/issues/2625). - -Remember to consider (whenever possible) KubeCons, holidays (e.g. American Thanksgiving), sig-docs-blog review capacity and other events that may impact the release cycle for Comms and adjust the schedule accordingly. - -## Release Blog Outline & Templates - -To support you in the creation of the release blog this [outline](/release-team/role-handbooks/communications/templates/release-blog.md) summarize ideas for sections and gives you a template for easier release blog creation. - -There are other templates available in the [templates folder](/release-team/role-handbooks/communications/templates/), such as: -- [Mid-cycle / deprecations and removal blog template](/release-team/role-handbooks/communications/templates/mid-cycle-blog-sneak-peek.md) -- [Release Highlight Discussion](/release-team/role-handbooks/communications/templates/release-highlights-discussion.md) -- [Release Highlight Tracking Issue](/release-team/role-handbooks/communications/templates/release-highlights-tracking-issue.md) -- [Release Highlight Message](/release-team/role-handbooks/communications/templates/release-highlight-message.md) -- [Feature blog messages](/release-team/role-handbooks/communications/templates/feature-blog-messages.md) -- [Mail for the CNCF webinar](/release-team/role-handbooks/communications/templates/webinar-email.md) -- [Mail to coordinate the PR with the CNCF](/release-team/role-handbooks/communications/templates/pr-email.md) - +# Kubernetes Release Team: Communications Coordinator + +## Overview + +The Communications Coordinator role is responsible for facilitating, empowering, and curating communication between the release team and various stakeholders including the Cloud Native Computing Foundation (CNCF), the media, contributing vendors, Kubernetes project managers, and the overall Kubernetes community at large. + +Communications deliverables that come from the release process include a release blog, an optional removals and deprecations blog, facilitation of a feature blog series, scheduling of a CNCF Kubernetes release webinar as well as other speaking opportunities, and approved messaging for media. In the event the release schedule slips, the communications coordinator will ensure media opportunities through the CNCF are synchronized and that all stakeholders are kept advised of changes in timing. + +## Requirements + +**Before continuing on to the Communications specific requirements listed below, please review and work through the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md).** + +### Skills and Experience Required + +- Strong written and verbal communications skills +- A working knowledge of Kubernetes concepts +- Fundamental GitHub skills and experience with open source projects +- Enough experience with the Kubernetes release process to understand how communications milestones fit into the overall release +- Project management experience +- Existing relationships with the CNCF, relevant media personnel and outlets, Kubernetes project managers, and vendor stakeholders is helpful, but not required +- The communications lead should take the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) training course + +### Expected Time Investment + +The Kubernetes release cycle spans 15 weeks, however it may run longer. The typical workload for the communications team is very light during the first few weeks of the release cycle. In the later weeks, **the workload can become heavy, and will continue a few weeks after the release.** + +The expected time investment for both leads and shadows are as follows: + +- 30 minutes to 2 hours a day (depending upon week), requesting and reviewing incoming KEPs and blog PRs, working with other SIGs or the CNCF to manage the feature blog posts, and following Slack channels in order to keep pending content current. + +- 1 to 5 hours a week, attending + - Release Team (weekly) + - SIG Docs Team (biweekly) and + - Burndown meetings (daily during Code Freeze). + +**NOTE:** These are estimates and your personal experience may vary. The keys to success in this role are collaboration with the team and maintaining regular communication within the team. + +## External Release Communication + +Please use the `release-comms@kubernetes.io` Google Group list for external release communications (communicating with the CNCF, etc.). + +The following groups should be members: +* The current release cycle's Release Team Lead & Lead Shadows +* The current release cycle's Communications Lead & Comms Shadows +* SIG Release Chairs + +The list must rotated/actively managed every cycle. Submit a PR to update [this document](https://git.k8s.io/k8s.io/groups/groups.yaml) per the milestone activities described below. + +### Slack Channel + +There is a channel on the Kubernetes Slack workspace, `#release-comms`, which is used by the communications release team to coordinate their efforts. If you're on the communications team, or applying to be, then it would be advantageous to follow along with the conversations. The Communications Coordinator (often referred to as the "Comms Lead") should post a status here at a regular cadence to keep release team members and other stakeholders informed. + +How a particular team communicates day-to-day is up to the Comms Lead and teams members, but usually they Slack DM on day-to-day coordination and post summary updates in `#release-comms`. +A good practice is to also update `#sig-docs` and `#sig-docs-blogs` channels with the status of the release blog, feature blogs, and other deliverables. + +## Working with other teams and SIGs + +Throughout the release cycle, the comms team works with lots of different teams within the Kubernetes community. As a Comms lead or member of the comms team, you should feel empowered to reach out and ask questions or ask for help from SIGs and other Release team members to meet deadlines. + +Some groups you may need to contact, on top of the already mentioned SIG Docs (Blog), include: + +* SIG Contributor Experience in the `#sig-contribex` slack channel and by attending meetings. They can help promote the feature blogs through social media. Also, see the special posts section below. +* Chairs and Tech Leads of SIGs in the `#chairs-and-techleads` Slack channel. This can be a helpful place to post reminders about blog deadlines SIG leads to see. + +## Release deliverables + +Throughout the release cycle, the main Communications deliverables include: +* **Collection of Release Highlights.** The Communications team coordinates with SIG Leads to solicit Release Highlights for the release, to be used in both the Release Blog and Release Notes. +* **Authoring the Kubernetes release blog.** The Communications team writes the release blog, which is the official announcement of the Kubernetes release. This includes the Release Highlights from SIG leads. +* **Coordination and support of the feature blog series.** SIGs opt-in to author feature blogs for the release. These blogs are written by technical owners, and the Communications team supports authors from the early stages through facilitating editorial and tech reviews as well as publication. +* **Coordination and support of an optional Mid-Cycle / Deprecations and Removals blog.** Depending upon the content of a given release, it may be necessary to prepare the community for upcoming deprecations and removals. This is decided per release cycle around the time of Code Freeze. +* **Scheduling press activities and the post-release webinar with the CNCF.** The Communications Coordinator works with the CNCF to schedule press release activities around the release, and to schedule the release webinar (typically scheduled 3-4 weeks post-release). + +### Collect Release Highlights + +A GitHub Discussion must be open to invite all SIG leads and members to add Release Highlights for inclusion in the Release Blog and Release Notes. The discussion must be opened in kubernetes/sig-release under General Category. + +Past discussions: [1.34](https://github.com/kubernetes/sig-release/discussions/2806), [1.33](https://github.com/kubernetes/sig-release/discussions/2734), [1.32](https://github.com/kubernetes/sig-release/discussions/2639), [1.25](https://github.com/kubernetes/sig-release/pull/1987), [1.24](https://github.com/kubernetes/sig-release/discussions/1868), [1.23](https://github.com/kubernetes/sig-release/discussions/1709), [1.22](https://github.com/kubernetes/sig-release/discussions/1575), [1.21](https://github.com/kubernetes/sig-release/discussions/1436). + +Each SIG should be pinged via their individual Slack channels and the `#chairs-and-techleads` channel to solicit suggestions, and each KEP owner can be asked about inclusion as a Release Highlight at the same time Feature Blogs are being solicited. + +For each submission, SIG representatives should provide: +- A link to KEP +- The stage the feature is moving to +- A brief description of KEP that will be used as an outline for the blog post content + +The Communications team should hold a meeting to discuss Release Highlights sometime around Code Freeze. Ensure that at least one person from the Docs/Release Notes team attends this meeting with the Release Lead and Enhancements Lead. + +**NOT EVERY KEP NEEDS A HIGHLIGHT**. Work with the SIGs owners and Release Team to make sure all highlights gathered in the discussion actually need a section in the release announcement blog. + +### Release blog + +The Communications Coordinator along with the Comms shadows are responsible for authoring the official Kubernetes Release blog. This blog is the official statement of release. The release blog is the primary vehicle by which the release team communicates the release highlights, known issues, and other aspects of the release to the community. + +Start the draft with the team around week 11, striking a balance between the enhancements being close to finalized and having enough to time author the blog and have it reviewed. Ahead of review, open a pull request on the [website repository](https://github.com/kubernetes/website) and assign the release lead and other stakeholders as reviewers. + +It's up to you and your team regarding how best to do this. Typically it works well to assign sections to different team members and have the lead pull it all together and manage the PR and reviews. You can work on a draft in Google Docs or [Hackmd](https://hackmd.io/), then move into the PR when content is more finalized. It's also recommended to get KEP authors or SIG Leads to provide 1-2 paragraph descriptions of KEP changes as a starting point for the release blog. This is an easier starting point for putting the whole release blog together. + +The release lead will drive the content for the release theme and logo. + +#### Process to publish the release blog + +1. Open a PR against [k/website](https://github.com/kubernetes/website) targeting the `main` branch, and adding a front matter with `draft: true`. This flag will ensure that the blog will not be published even if it passes the target publication date, but available from the CI build for PRs. + +2. The PR has to be reviewed by the SIG Docs Blog team, which will provide a content and style review. SIG's chairs and tech leads will provide a tech review. After `lgtm` and `approve` labels are applied, the blog can be merged to the `main` branch. With the `draft: true` flag, this blog will not be published to the website. + +3. In a second PR opened (ideally) a week before the release day, the Comms Lead will: +- remove the `draft: true` parameter +- ensure the date parameter is set to the release date +- add the release logo and theme to the final release blog + +> [!IMPORTANT] +> Because of the merge freeze in place, this PR will need to be merged by the Docs Lead, triggering the `/unhold` command on the release day. The Comms Lead just has to make sure that the PR is ready for merge with all the checks passed and required `lgtm` and `approve` labels applied. + +An example of this final PR can be found [here](https://github.com/kubernetes/website/pull/51991/files). + +4. The release blog will be published on the Kubernetes blog on the agreed date. + +5. Once the release blog is published, the Comms Lead should share the blog in `#announcements` ([example](https://kubernetes.slack.com/archives/C9T0QMNG4/p1756378122306569)) and `#release-comms` ([example](https://kubernetes.slack.com/archives/CNT9Y603D/p1756388540054189)) Slack channels. To get access to write in `#announcements`, please reach out Slack admins in #slack-admins. + +### Feature blogs + +Tracking, facilitating, and organizing the publication of the Feature Blog series is a major deliverable of the Comms team. Feature blogs are opt-in for SIGs, and are authored by enhancement developers and others close to the features. We do, however, need to encourage owners of important enhancements to opt in to writing feature blogs. + +Examples of enhancements that warrant a feature blog might include: +* breaking changes +* features and changes important to our users +* features that have been in progress for a long time and are graduating +* features that are considered mandatory by the Release Lead. + +It helps to work closely with the Release Lead and use the respective SIG Slack channels to remind the SIGs about opting in to feature blogs and provide any necessary context to blog authors. + +**Reach out in KEP issues to ask for feature blog opt-in.** Ask every KEP owner if they want to contribute a blog by reaching out in the KEP issue. Example messaging can be found [here](/release-team/role-handbooks/communications/templates/feature-blog-opt-in-message.md). + +**NOT EVERY KEP NEEDS A BLOG**. Work with the KEP owners, Release Lead, and SIG Docs Blog team (though #sig-docs-blog slack channel) to make sure all KEPs that opt-in really need a blog written. If a feature is small, or new in Alpha it may not be ready for a blog. You should also encourage important features to sign up to write a blog. Try to limit the number of blogs to 15 or fewer. + +**As feature blogs are opted in and placeholder PRs are created**, assign the blogs to shadows and yourself for tracking and facilitation. The Comms team is responsible for making sure blog authors have the resources and information they need to write the blog, and tracking the blogs progress through editorial and tech reviews once the blog is ready. After a blog placeholder PR has been created, you should switch to using the placeholder PR for contacting authors on GitHub instead of the KEP issue. + +> Some features that opt-in to writing a blog may miss the code freeze deadline. Blog placeholder PRs for features that are no longer in the release should be closed. + +When a placeholder PR is created, make sure the PR has been opened using a `draft: true` parameter in its metadata. + +Once the placeholder PRs are open, **assign a writing buddy to each PR as needed**. Select the writing buddy from the KEP authors of the other open placeholder PRs and pair them up. The writing buddy will act as a peer reviewer and provide support for the main author of the feature blog. Some feature blog PRs are written collaboratively within SIGs or are opened with the blog content already complete; these may not need a writing buddy. +For more information about the writing buddy assignment process and their role, please refer to [this documentation page](https://kubernetes.io/docs/contribute/blog/writing-buddy/). +Example messaging can be found [here](/release-team/role-handbooks/communications/templates/writing-buddy-assignment.md). + +#### Feature blog PR instructions for authors + +The blog author has to open a PR against [k/website](https://github.com/kubernetes/website) targeting the `main` branch (**not dev branch**), and adding a front matter with `draft: true`. The following front matter is suggested, the `draft: true` parameter is required to keep the blog from being published before its ready: +```yaml +--- +layout: blog +title: 'Kubernetes v1.<minor>: <title>' +draft: true +slug: kubernetes-v1-<minor>-<slug> +author: <author> +--- +``` + +#### Creating a blog publication schedule + +**The Comms team establishes the feature blog publication schedule.** Other members of the release team or blog reviewers may contribute ideas and feedback on the schedule, but ultimately the schedule is determined by the Comms team. + +Use the blog schedule field in the Feature Blog view on the tracking board to assign a publication date. + +Feature blog publication usually starts the day after the release. The release blog goes out on same day as the release and the first feature blog typically goes out the day after the release. The rest of the blogs are published one-at-a-time, typically at a rate of two to three posts weekly. Depending on how many feature blogs you have, you may want to publish one per day after the release (excluding weekends). In general, all feature blogs should be published within month of the release day. + +> Note that blog PRs in k/website are dated, and automation will publish future-dated entries. This enables a PR process decoupled from blog publication date. Once a blog has passed the review process and its after the release day, the PR can be merged and will be published on the date on the blog. + +**Communicate the planned publish date to SIG Docs**. Notify the following Slack channels: `#sig-docs-blog`, `#sig-docs` about the schedule. The communications team will assist in coordinating and publishing the feature blogs on schedule. + +Please note that the release team will support the blog publication after the release day too. + +#### Feature blog reviews + +Also see the docs for [pull requests review process](https://kubernetes.io/docs/contribute/review/reviewing-prs/) and [reviewing a pull request](https://kubernetes.io/docs/contribute/review/for-approvers/#reviewing-a-pr). + +**Work closely with the [SIG Docs Blogs](https://github.com/kubernetes/community/tree/master/sig-docs/blog-subproject) team.** These are the folks responsible for editorial reviews (and sometimes tech reviews) of Kubernetes blogs. The Comms lead should plan to regularly share updates on blog status and review timelines with the blog reviewers via `#sig-docs-blogs` and during sig-docs meetings. + +Each blog should pass 2 official reviews, an editorial review and tech review. Anyone is open to do an "informal" review on any blog and leave suggestions. As part of the comms team, it's encouraged (but not required) to help reviews blogs for both editorial and technical correctness, if you have time. + +An official review comes from someone with [permission to add the lgtm label](https://kubernetes.io/docs/contribute/review/for-approvers/#prow-commands-for-reviewing) to a pull request. +* **Tech reviews** usually come from the sponsoring SIG. If you dont see a tech review on the blog, reach out to the author to make sure the PR has been flagged for review. You can also reach out in the SIG slack channel to ask for help with tech reviews. +* **Editorial reviews** usually come from blog reviewers or SIG Docs reviewers. They make sure that the blog is readable and adheres to the [style guide](https://kubernetes.io/docs/contribute/style/style-guide/). You can also reach out to the SIG Docs [PR wrangler](https://kubernetes.io/docs/contribute/participate/pr-wranglers/), for help getting reviews or approvals on PRs. See the [PR wrangler schedule](https://github.com/kubernetes/website/wiki/PR-Wranglers) for more details. + +Once a blog has the `lgtm` label added, an [approver] can add the `approve` label to get the PR merged. Note that reviews can still happen on blogs with a `lgtm` label. + +Aim to have all blogs reviewed and approved (merged) by release day. But note that its common for some blog reviews to continue past the release day. + +#### Process to publish opt-in feature blogs + +1. The PRs with blog contents have to be reviewed by the SIG Docs Blog team, which will provide a content and style review. A tech review is mandatory and has to be performed by the SIG that owns that KEP. After these reviews, the blogs will be merged in the `main` branch, in draft mode, so not visible on the Kubernetes blog. + +2. All feature blogs will be scheduled for publication in a bulk PR opened (ideally) a week before the release day, the Comms team will: +- remove the `draft: true` parameter from the metadata of all feature blogs +- ensure the date parameter is set to the agreed publication date +- rename all the files and folders to follow the date convention, according to the schedule agreed with SIG Docs Blog. +- ensure title and slug are correct + +3. This publication PR has to be reviewed and approved by SIG Docs Blog team. After lgtm and approve labels are applied, the blog will be merged in the `main` branch. + +4. The feature blogs will be published in kubernetes.io/blog on the dates agreed in the schedule. + +_Note: content fixes are possible for feature blogs but handled by the author and SIG Docs blog, separately._ + +### Mid-cycle / deprecations and removals blog + +This blog is OPTIONAL and will vary from release to release. Work with the rest of the release team ahead of **the Code Freeze date to determine if a mid-cycle blog focused on feature deprecations and removals is warranted**. +Its content is agreed upon by the Comms Lead, Enhancements Lead, and Release Lead. + +If so, facilitate its creation and publication. You can create a Slack thread on [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) and `#sig-docs-blog` to discuss this. + +If the release will deprecate important and commonly-used features (or simply a large number of features will be deprecated) or if there's a desire to inform about the release status mid cycle, consider publishing this blog. + +Keep in mind that the deadline for a mid-cycle blog has to be **after the code freeze**, at least 4/5 days later to make sure the content of this blog is relevant. + +Follow these examples: +- [Kubernetes v1.32 sneak peek](https://kubernetes.io/blog/2024/11/08/kubernetes-1-32-upcoming-changes/) +- [Kubernetes Removals and Major Changes In 1.25](https://kubernetes.io/blog/2022/08/04/upcoming-changes-in-kubernetes-1-25/) +- [Kubernetes API and Feature Removals in 1.22](https://kubernetes.io/blog/2021/07/14/upcoming-changes-in-kubernetes-1-22/) +- [Deprecated APIs Removed in 1.16](https://kubernetes.io/blog/2019/07/18/api-deprecations-in-1-16/) + +> Publication should occur ahead of the release in order to inform the community and allow for preparation time. Start the discussion mid-cycle and well ahead of Code Freeze, and target publication for right after the Code Freeze week. + +### Press and release webinar + +This is a simple but very important component of the Communications Coordinator role. Two sets of activities need to be scheduled with the CNCF: +- press release and interview scheduling around the release day +- the release webinar after the release. + +You will be a liaison between the Release lead and the CNCF contacts to schedule the press briefings. Send an email to `pr@cncf.io` about a month ahead of the release (on week 10/11) and coordinate between the parties to get release day press events scheduled. + +See the sample email [here](/release-team/role-handbooks/communications/templates/pr-email.md) for schedule press and pre-briefings for the release lead. + +To schedule the release webinar with the CNCF, start a conversation with an email to `webinars@cncf.io`. + +See the sample webinar email [here](/release-team/role-handbooks/communications/templates/webinar-email.md) for reference. + +You will likely use the Calendly link (below) to schedule a "live webinar". If things are tight on the schedule, CNCF will help find a spot. +The webinar is typically scheduled for 3-4 weeks after the release and is primarily presented by the Release lead and Enhancements lead. Often the Comms lead will also join the webinar. The format is open, but primarily the team walks through the enhancements in the release and gives a sneak peek of what's coming in the next release. + +Refer to past [slides](/releases/release-1.34/Kubernetes%20v1.34%20Release%20Webinar.pptx) and [webinars](https://www.youtube.com/live/1hOOplxu6g0?si=DqvJD9MpS3fr4vLh) as an example. + +_Note: you'll need to send headshots and company/title information when you schedule the webinar and the slides should be ready at least one week ahead of the webinar._ + +--- +The Release Lead is probably the best person to put together the slides, but it can also be something the lead, comms lead, and enhancement lead for a release can decided on the best way to pull the presentation together. + +For the 1.31 release the release and enhancement lead created the slides 1 week before the webinar was scheduled. We then had a quick 10 minute meeting to talk about how to run through the slides on the webinar. Release Lead and Enhancements Lead alternated on each slide and mostly just read out the content on the slides and maybe added a little more context. + +As a Comms Lead you don't have to talk on the presentation, but you can if you want to. +The presentation isn't intended to be very technical. Just an overview of the changes. The listeners may have questions but it's perfectly fine to direct them to read the KEP or asking in the sig-slack channel to get more information. So there is no need to be an expert on any of the changes. The CNCF has a moderator on the webinar with you to help with running it, recording, and managing the chat. They don't need the slides ahead of time, you just show up with the slides to the webinar. + +### Tips and tricks + +See this file for some [tips and tricks](/release-team/role-handbooks/communications/tips-and-tricks.md) that may help you succeed in this role. + +### Social posts + +The Release Communications team is **NOT** responsible for social posting. [SIG Contributor Experience](https://github.com/kubernetes/community/tree/master/sig-contributor-experience) (SIG Contribex) manages the official Kubernetes social accounts and is responsible for all posts to those accounts. SIG Contribex has created automation around blog posts, so once a blog is published to the Kubernetes website, social posts are created and posted according to SIG Contribex's automation schedule. + +If the Communications team and Release Lead determine a feature or other release communication needs a more detailed communications or calls to action, reach out to with SIG Contributor Experience for help making posts use the `@contributor-comms` tag in the `#sig-contribex` Slack channel. + +## Release Milestone Activities + +This is an example of a typical release cycle and the order of how tasks will flow for Comms. Note that some tasks may take longer than their designated "release week". Each release is a little different, the following guideline is only a suggestion. You should always refer to the specific release schedule for exact dates and deadlines in a release cycle. + +<table> + <tr> + <td><h3><b>Release Week</h3></b></td> + <td><h3><b>Milestones</h3></b></td> + <td><h3><b>Activities</h3></b></td> + </tr> + <tr> + <td>1</td> + <td><b>Start of release cycle</b></td> + <td> + <ul> + <li>Start attending the Release Team weekly meeting + <li>Join the following Slack channels: <code>#sig-release</code>, <code>#release-comms</code>, <code>#sig-docs</code>, and <code>#sig-docs-blog</code>. + <li>Check if there are any holidays or events (e.g. KubeCon) that will occur during this release which may impact communication with the CNCF and SIG Chairs, plan accordingly + <li>Select shadows for the team + <li>Ensure shadows are all in the Kubernetes org on GitHub + <li>Ensure you and your shadows are entered into the release contact sheet + <li>Ensure you and your shadows are on the release team meeting invites + <li>Establish initial meeting with the Comms team to introduce everyone and review tasks and the release timeline + <li>Plan a regular-cadence Comms team sync up (mostly needed toward the end of the cycle) + </ul> + </ul> + </td> + </tr> + <tr> + <td>2</td> + <td></td> + <td> + <ul> + <li>Update the <code>release-comms</code> Group. <a href="https://github.com/kubernetes/k8s.io/blob/main/groups/sig-release/groups.yaml">Membership</a> for this group is defined in <a href="https://git.k8s.io/k8s.io">kubernetes/k8s.io</a>. Ensure the list <b>only includes</b>: + <ul> + <li>The current release cycle's Release Team Lead & Lead Shadows + <li>The current release cycle's Communications Lead & Comms Shadows + <li>SIG Release Chairs + </ul></ul> + <ul> + <li>Start communications with the SIG leads to align on the communications timeline and support for writing feature posts + <li>Setup a communications plan aligned with the Release Calendar + <li>Agree on participation together with Enhancements team lead at the next SIG Leads monthly meeting to align on expectations and communication possibilities + </ul> + </td> + </tr> + <tr> + <td>3</td> + <td><b>Production Readiness Freeze</b></td> + <td> + <ul> + <li>Get access to the <code>Enhancements</code> and <code>Feature blog opt-in</code> tracking boards and start following along. Edit the <code>Comms Opt-in Assignee</code> and <code>Comms Editor</code> columns with everyone on the comms team. + </ul> + </td> + </tr> + <tr> + <td>4</td> + <td><b>Enhancements Freeze</b></td> + <td> + <ul> + <li>Work with the enhancements lead to understand big-ticket items to be included in the release + <li>Start monitoring the <code>Feature blog opt-in</code> sheet for new entries and use the <code>Status field</code> to assign and track status throughout the cycle + <li> With Enhancement freeze in effect, create a GitHub discussion (<a href="https://github.com/kubernetes/sig-release/discussions/2047">example v1.26</a>) to start collecting the Release Highlights of the release, and reach out to all SIGs on and off over the next few weeks to ask for Release Highlights and explain why this is important to the community. + <ul> + </ul> + </ul> + </td> + </tr> + <tr> + <td>5</td> + <td></td> + <td> + <ul> + <li>Work with Enhancements and Release Note leads to determine which deliverables are most noteworthy post-Enhancements Freeze + <li>In the coming weeks, follow the progress of these enhancements, as they will roll into the Release Highlights and be called out and described in the release blog + <li>Work with the Release Team and decide if the release warrants a mid-cycle 'Deprecations and Removals' blog. Generally, this is decided at a minimum of two deprecations or removals, or if there are significant deprecations and removals that will impact the community. + <li>If needed, solicit author(s) for a 'Deprecations and Removals' blog and get a placeholder PR in k/website for tracking + </ul> + </td> + </tr> + <tr> + <td>8</td> + <td></td> + <td> + <ul> + <li>Post reminders for the feature blog opt-in on the SIG slack channels (<a href="https://kubernetes.slack.com/archives/C0BP8PW9G/p1622556913118800">for example</a>) + <li>Assign feature blog topics as they come in to team shadows for support and tracking efforts + <li>Join the <code>#sig-docs-blog</code> channel on Slack. Share the current status of the Feature blog opt-in's and in Slack and in the sig-docs call and work with the team to establish review expectations and publication strategy. + </ul> + </td> + </tr> + <tr> + <td>10</td> + <td></td> + <td> + <ul> + <li>Send out final reminders for feature blog opt-in on the SIG slack channels or KEP issues + <li>Facilitate or start writing the optional Deprecations and Removals blog + <li>Coordinate with Release Notes to ensure Release Highlights are checked in before Code Freeze. + </ul> + </td> + </tr> + <tr> + <td>11</td> + <td><b>Feature blog freeze</b></td> + <td> + <ul> + <li>Start attending burndown meetings + <li>Participate in the release retro part 1 + <li>Feature blog freeze is this week + <li>Assign remaining feature blog topics + <li>Establish feature blog post-release publication schedule, typically 2-3 posts per week. + <li>Post the feature blog publication schedule in <code>#sig-docs-blog</code> (<a href="https://kubernetes.slack.com/archives/CJDHVD54J/p1628649661040600">example post</a>) + <li>Establish a regular cadence status check-in with the <code>#sig-docs-blog</code> team and maintain the publication schedule post in Slack to keep everyone synced + <li>Request placeholder PRs in k/website from all feature blog authors + <li>Optional 'Deprecations and Removals' blog ready for review + </ul> + </td> + </tr> + <tr> + <td>12</td> + <td><b>Code Freeze</b></td> + <td> + <ul> + <li>Begin the release blog draft, if not yet started + <li>Host a meeting with the Release Lead, Enhancements Lead, and Release Notes to discuss the Release Highlights to be highlighted in the release blog and ensure consistency with Release Notes + <li>Publish the optional 'Mid-Cycle (Deprecations and Removals)' blog + <li>Schedule the release Live Webinar with CNCF by emailing <code>webinars@cncf.io</code>. You may be referred to <a href="https://calendly.com/cncfonlineprograms">Calendly</a>. The webinar is typically scheduled for 3-4 weeks after the release + <li>Schedule press and analyst pre-briefings and interviews for the release lead with CNCF by emailing <code>pr@cncf.io</code> + <li>Schedule release blog and press embargo with CNCF + </ul> + </td> + </tr> + <tr> + <td>13</td> + <td></td> + <td> + <ul> + <li>Finalize and publish the 'Deprecations and Removals' blog once code freeze is in place. + <li>Update release blog draft, post-Code Freeze + <li>Check status with Release Notes lead on content for the Known Issues section of the release blog + <li>Check status on all feature blog PRs. Keep <code>#sig-docs-blog</code> up-to-date for editorial review, and establish tech reviewers are available + </ul> + </td> + </tr> + <tr> + <td>14</td> + <td><b>Feature Blogs ready to review</b></td> + <td> + <ul> + <li>Feature blog reviews start + <li>Continue to partner with <code>#sig-docs-blog</code> for editorial review, work to ensure tech reviews are moving forward from SIGs + <li>Connect with Release Lead to ensure theme and release logo will be ready for release blog (not required for draft revisions) + <li>Ensure that short one-to-two paragraph summaries of each Release Highlights are available for the release blog from Release Notes lead or SIG Chairs + <li>Finalize Release blog final draft and start reviews + <li>Send release blog draft to CNCF + </ul> + </td> + </tr> + <tr> + <td>15</td> + <td><b>Release Week</b></td> + <td> + <ul> + <li>Finalize Release Blog, ensure it's ready for Docs Lead to publish on release day (Docs lead has to unhold the final PR, due to website freeze) + <li>Ensure feature blogs are ready to publish and that review and merge plans are in place for any still outstanding. + </ul> + </td> + </tr> + <tr> + <td>16</td> + <td><b>Release retrospective</b></td> + <td> + <ul> + <li>Participate in release retro parts 2 and 3 (as needed) + <li>Organize the slides for the CNCF release webinar, and send to the CNCF for review at least one week ahead of the scheduled date. + <li>Update this document! + <li>Rest, you did a great job :) + </ul> + </td> + </tr> +</table> + +The table above is a guideline for the release cycle. A realistic outline of the activities for a release cycle is [here](https://github.com/kubernetes/sig-release/issues/2625). + +Remember to consider (whenever possible) KubeCons, holidays (e.g. American Thanksgiving), sig-docs-blog review capacity and other events that may impact the release cycle for Comms and adjust the schedule accordingly. + +## Release Blog Outline & Templates + +To support you in the creation of the release blog this [outline](/release-team/role-handbooks/communications/templates/release-blog.md) summarize ideas for sections and gives you a template for easier release blog creation. + +There are other templates available in the [templates folder](/release-team/role-handbooks/communications/templates/), such as: +- [Mid-cycle / deprecations and removal blog template](/release-team/role-handbooks/communications/templates/mid-cycle-blog-sneak-peek.md) +- [Release Highlight Discussion](/release-team/role-handbooks/communications/templates/release-highlights-discussion.md) +- [Release Highlight Tracking Issue](/release-team/role-handbooks/communications/templates/release-highlights-tracking-issue.md) +- [Release Highlight Message](/release-team/role-handbooks/communications/templates/release-highlight-message.md) +- [Feature blog messages](/release-team/role-handbooks/communications/templates/feature-blog-messages.md) +- [Mail for the CNCF webinar](/release-team/role-handbooks/communications/templates/webinar-email.md) +- [Mail to coordinate the PR with the CNCF](/release-team/role-handbooks/communications/templates/pr-email.md) + diff --git a/release-team/role-handbooks/communications/templates/feature-blog-messages.md b/release-team/role-handbooks/communications/templates/feature-blog-messages.md index 6de347e5b29..11471f311a2 100644 --- a/release-team/role-handbooks/communications/templates/feature-blog-messages.md +++ b/release-team/role-handbooks/communications/templates/feature-blog-messages.md @@ -1,111 +1,111 @@ -# Feature Blog Opt-in - -## Initial Reach-out - -This is a message to send to enhancement owners to opt in to write a feature blog for their enhancement, it should be sent on the KEP issue. -After this message is sent, the Comms team will follow up with the enhancement owner to help them keep in mind the timeline for the feature blog, every 1-2 weeks. - -``` -Hi @xx 👋 - -This is <Comms shadow/lead name> from the <current release cycle version> Communications Team! - -For the <current version> release, we are in the process of collecting and curating a list of potential feature blogs, and we'd love for you to consider writing one for your enhancement! - -As you may be aware, feature blogs are a great way to communicate to users about features which fall into (but not limited to) the following categories: -- This KEP introduces some breaking change(s) -- This KEP has significant impacts and/or implications for Kubernetes users -- ...Or this is a long-awaited feature, in which case a blog would go a long way to cover the journey more in detail. - -To opt in to write a feature blog, could you please let us know and open a "Feature Blog placeholder PR" (which can be only a skeleton at first) against the [website repository](https://github.com/kubernetes/website) by **<insert deadline here>**? For more information about writing a blog, please find the [blog contribution guidelines](https://kubernetes.io/docs/contribute/new-content/blogs-case-studies/#technical-considerations-for-submitting-a-blog-post) 📚 - -Some timelines to keep in mind: -- <insert feature blog freeze deadline here>: Feature blog PR freeze -- <insert feature blog ready for review here>: Feature blogs ready for review -- You can find more in the [release document](https://github.com/kubernetes/sig-release/tree/master/releases/release-<version>#timeline) - -**Note**: In your placeholder PR, use the current scheduled overall release date for the blog `date` and add a `draft:true` to the front matter. This will help us to merging this ahead of the release date and scheduling it after the release date. - -If you have any questions or need help, please feel free to reach out to me or any of the Communications Team members. We are here to help you! -``` - ----- - -Another template you could use with GitHub callouts: - -``` -Hi @xx 👋 -- this is YOURNAME (@your_github_id) from the x.yy Communications Team! - -For the x.yy release, we are currently in the process of collecting and curating a list of potential feature blogs, and we'd love for you to consider writing one for your enhancement! - -**Please note that feature blogs are optional and not mandatory.** However, they are a great way to communicate to users about features which fall into (but not limited to) the following categories: -- This introduces some breaking change(s) -- This has significant impacts and/or implications to users -- ...Or this is a long-awaited feature, which would go a long way to cover the journey more in detail 🎉 - -To opt in to write a feature blog, could you please let us know and open a "Feature Blog placeholder PR" (which can be only a skeleton at first) against the [website repository](https://github.com/kubernetes/website) by **<<BLOG_PLACEHOLDER_DEADLINE>> WEEKDAY, DAY MONTH**? For more information about writing a blog, please find the [release communications guidelines](https://kubernetes.io/docs/contribute/blog/release-comms/) 📚 - -> [!Tip] -> Some timeline to keep in mind: -> - **02:00 UTC <<BLOG_PLACEHOLDER_DEADLINE>> WEEKDAY, DAY MONTH**: Feature blog PR freeze -> - **<<BLOG_READY>> WEEKDAY, DAY MONTH**: Feature blogs ready for review -> - You can find more in the [release document](LINK) -> - -> [!Note] -> In your placeholder PR, use `XX` characters for the blog `date` in the front matter and file name. We will work with you on updating the PR with the publication date once we have a final number of feature blogs for this release. -``` - -With this one, you'd need to update the following placeholders: -- `@xx`: Mention KEP's primary contact(s), assignee(s), and even potentially other members who are actively working on the KEP -- `YOURNAME`: Your name, as you prefer -- `your_github_id`: Your GitHub ID -- `x.yy`: The upcoming Kubernetes version, such as 1.33, 1.34, etc. -- Dates: There are 2 separate dates; one for the placeholder PR, and another for the blog ready for review - - `<<BLOG_PLACEHOLDER_DEADLINE>> WEEKDAY, DAY MONTH`: Deadline for the placeholder PR, which is usually at 02:00 UTC on Wednesday (on week 8) - - `<<BLOG_READY>> WEEKDAY, DAY MONTH`: Deadline for the Feature Blogs being ready for review, which is usually on week 13 -- `LINK`: Add a link to the release document, such as `https://github.com/kubernetes/sig-release/tree/master/releases/release-1.33#timeline` - -## Follow-up - -``` -Hi @xx 👋, x.yy Communications Team here again! - -This is a gentle reminder for the feature blog deadline mentioned above, which is **02:00 UTC <<BLOG_PLACEHOLDER_DEADLINE>> WEEKDAY, DAY MONTH**. To opt in, please let us know and open a Feature Blog placeholder PR against [`k/website`](https://github.com/kubernetes/website) by the deadline. If you have any questions, please feel free to reach out to us! - -> [!Tip] -> Some timeline to keep in mind: -> - **02:00 UTC <<BLOG_PLACEHOLDER_DEADLINE>> WEEKDAY, DAY MONTH**: Feature blog PR freeze -> - **<<BLOG_READY>> WEEKDAY, DAY MONTH**: Feature blogs ready for review -> - You can find more in the [release document](LINK) -> - -> [!Note] -> In your placeholder PR, use `XX` characters for the blog `date` in the front matter and file name. We will work with you on updating the PR with the publication date once we have a final number of feature blogs for this release. -``` - -With this one, you'd need to update the following placeholders: -- `@xx`: Mention KEP's primary contact(s), assignee(s), and even potentially other members who are actively working on the KEP -- `x.yy`: The upcoming Kubernetes version, such as 1.33, 1.34, etc. -- Dates: There are 2 separate dates; one for the placeholder PR, and another for the blog ready for review - - `<<BLOG_PLACEHOLDER_DEADLINE>> WEEKDAY, DAY MONTH`: Deadline for the placeholder PR, which is usually at 02:00 UTC on Wednesday (on week 8) - - `<<BLOG_READY>> WEEKDAY, DAY MONTH`: Deadline for the Feature Blogs being ready for review, which is usually on week 13 -- `LINK`: Add a link to the release document, such as `https://github.com/kubernetes/sig-release/tree/master/releases/release-1.33#timeline` - -# Feature Blog PR - -## "ready for review" deadline reminder -This is a message to send Feature Blog authors in their Feature Blog PR if they haven't marked it as "ready for review" days before the deadline. -``` -Hi @xx 👋 -- this is YOURNAME (@your_github_id) from the vX.yy Communications Team! - -Just a friendly reminder that we are approaching the feature blog "ready for review" deadline: **<<BLOG_READY>> WEEKDAY, DAY MONTH**. We ask you to have the blog in non-draft state, and all write-up to be complete, so that we can start the blog review from SIG Docs Blog team. - -If you have any questions or need help, please don't hesitate to reach out to me or any of the Communications Team members. We are here to help you! -``` -In this template, you'd need to update the following placeholders: -- `@xx`: Mention Feature Blog PR author(s) -- `YOURNAME`: Your name, as you prefer -- `your_github_id`: Your GitHub ID -- `vX.yy`: The upcoming Kubernetes version, such as v1.33, v1.34, etc. -- `<<BLOG_READY>> WEEKDAY, DAY MONTH`: Deadline for the Feature Blogs being ready for review, which is usually on week 13 +# Feature Blog Opt-in + +## Initial Reach-out + +This is a message to send to enhancement owners to opt in to write a feature blog for their enhancement, it should be sent on the KEP issue. +After this message is sent, the Comms team will follow up with the enhancement owner to help them keep in mind the timeline for the feature blog, every 1-2 weeks. + +``` +Hi @xx 👋 + +This is <Comms shadow/lead name> from the <current release cycle version> Communications Team! + +For the <current version> release, we are in the process of collecting and curating a list of potential feature blogs, and we'd love for you to consider writing one for your enhancement! + +As you may be aware, feature blogs are a great way to communicate to users about features which fall into (but not limited to) the following categories: +- This KEP introduces some breaking change(s) +- This KEP has significant impacts and/or implications for Kubernetes users +- ...Or this is a long-awaited feature, in which case a blog would go a long way to cover the journey more in detail. + +To opt in to write a feature blog, could you please let us know and open a "Feature Blog placeholder PR" (which can be only a skeleton at first) against the [website repository](https://github.com/kubernetes/website) by **<insert deadline here>**? For more information about writing a blog, please find the [blog contribution guidelines](https://kubernetes.io/docs/contribute/new-content/blogs-case-studies/#technical-considerations-for-submitting-a-blog-post) 📚 + +Some timelines to keep in mind: +- <insert feature blog freeze deadline here>: Feature blog PR freeze +- <insert feature blog ready for review here>: Feature blogs ready for review +- You can find more in the [release document](https://github.com/kubernetes/sig-release/tree/master/releases/release-<version>#timeline) + +**Note**: In your placeholder PR, use the current scheduled overall release date for the blog `date` and add a `draft:true` to the front matter. This will help us to merging this ahead of the release date and scheduling it after the release date. + +If you have any questions or need help, please feel free to reach out to me or any of the Communications Team members. We are here to help you! +``` + +---- + +Another template you could use with GitHub callouts: + +``` +Hi @xx 👋 -- this is YOURNAME (@your_github_id) from the x.yy Communications Team! + +For the x.yy release, we are currently in the process of collecting and curating a list of potential feature blogs, and we'd love for you to consider writing one for your enhancement! + +**Please note that feature blogs are optional and not mandatory.** However, they are a great way to communicate to users about features which fall into (but not limited to) the following categories: +- This introduces some breaking change(s) +- This has significant impacts and/or implications to users +- ...Or this is a long-awaited feature, which would go a long way to cover the journey more in detail 🎉 + +To opt in to write a feature blog, could you please let us know and open a "Feature Blog placeholder PR" (which can be only a skeleton at first) against the [website repository](https://github.com/kubernetes/website) by **<<BLOG_PLACEHOLDER_DEADLINE>> WEEKDAY, DAY MONTH**? For more information about writing a blog, please find the [release communications guidelines](https://kubernetes.io/docs/contribute/blog/release-comms/) 📚 + +> [!Tip] +> Some timeline to keep in mind: +> - **02:00 UTC <<BLOG_PLACEHOLDER_DEADLINE>> WEEKDAY, DAY MONTH**: Feature blog PR freeze +> - **<<BLOG_READY>> WEEKDAY, DAY MONTH**: Feature blogs ready for review +> - You can find more in the [release document](LINK) +> + +> [!Note] +> In your placeholder PR, use `XX` characters for the blog `date` in the front matter and file name. We will work with you on updating the PR with the publication date once we have a final number of feature blogs for this release. +``` + +With this one, you'd need to update the following placeholders: +- `@xx`: Mention KEP's primary contact(s), assignee(s), and even potentially other members who are actively working on the KEP +- `YOURNAME`: Your name, as you prefer +- `your_github_id`: Your GitHub ID +- `x.yy`: The upcoming Kubernetes version, such as 1.33, 1.34, etc. +- Dates: There are 2 separate dates; one for the placeholder PR, and another for the blog ready for review + - `<<BLOG_PLACEHOLDER_DEADLINE>> WEEKDAY, DAY MONTH`: Deadline for the placeholder PR, which is usually at 02:00 UTC on Wednesday (on week 8) + - `<<BLOG_READY>> WEEKDAY, DAY MONTH`: Deadline for the Feature Blogs being ready for review, which is usually on week 13 +- `LINK`: Add a link to the release document, such as `https://github.com/kubernetes/sig-release/tree/master/releases/release-1.33#timeline` + +## Follow-up + +``` +Hi @xx 👋, x.yy Communications Team here again! + +This is a gentle reminder for the feature blog deadline mentioned above, which is **02:00 UTC <<BLOG_PLACEHOLDER_DEADLINE>> WEEKDAY, DAY MONTH**. To opt in, please let us know and open a Feature Blog placeholder PR against [`k/website`](https://github.com/kubernetes/website) by the deadline. If you have any questions, please feel free to reach out to us! + +> [!Tip] +> Some timeline to keep in mind: +> - **02:00 UTC <<BLOG_PLACEHOLDER_DEADLINE>> WEEKDAY, DAY MONTH**: Feature blog PR freeze +> - **<<BLOG_READY>> WEEKDAY, DAY MONTH**: Feature blogs ready for review +> - You can find more in the [release document](LINK) +> + +> [!Note] +> In your placeholder PR, use `XX` characters for the blog `date` in the front matter and file name. We will work with you on updating the PR with the publication date once we have a final number of feature blogs for this release. +``` + +With this one, you'd need to update the following placeholders: +- `@xx`: Mention KEP's primary contact(s), assignee(s), and even potentially other members who are actively working on the KEP +- `x.yy`: The upcoming Kubernetes version, such as 1.33, 1.34, etc. +- Dates: There are 2 separate dates; one for the placeholder PR, and another for the blog ready for review + - `<<BLOG_PLACEHOLDER_DEADLINE>> WEEKDAY, DAY MONTH`: Deadline for the placeholder PR, which is usually at 02:00 UTC on Wednesday (on week 8) + - `<<BLOG_READY>> WEEKDAY, DAY MONTH`: Deadline for the Feature Blogs being ready for review, which is usually on week 13 +- `LINK`: Add a link to the release document, such as `https://github.com/kubernetes/sig-release/tree/master/releases/release-1.33#timeline` + +# Feature Blog PR + +## "ready for review" deadline reminder +This is a message to send Feature Blog authors in their Feature Blog PR if they haven't marked it as "ready for review" days before the deadline. +``` +Hi @xx 👋 -- this is YOURNAME (@your_github_id) from the vX.yy Communications Team! + +Just a friendly reminder that we are approaching the feature blog "ready for review" deadline: **<<BLOG_READY>> WEEKDAY, DAY MONTH**. We ask you to have the blog in non-draft state, and all write-up to be complete, so that we can start the blog review from SIG Docs Blog team. + +If you have any questions or need help, please don't hesitate to reach out to me or any of the Communications Team members. We are here to help you! +``` +In this template, you'd need to update the following placeholders: +- `@xx`: Mention Feature Blog PR author(s) +- `YOURNAME`: Your name, as you prefer +- `your_github_id`: Your GitHub ID +- `vX.yy`: The upcoming Kubernetes version, such as v1.33, v1.34, etc. +- `<<BLOG_READY>> WEEKDAY, DAY MONTH`: Deadline for the Feature Blogs being ready for review, which is usually on week 13 diff --git a/release-team/role-handbooks/communications/templates/mid-cycle-blog-sneak-peek.md b/release-team/role-handbooks/communications/templates/mid-cycle-blog-sneak-peek.md index b4cbf4dbede..e25bc6c010f 100644 --- a/release-team/role-handbooks/communications/templates/mid-cycle-blog-sneak-peek.md +++ b/release-team/role-handbooks/communications/templates/mid-cycle-blog-sneak-peek.md @@ -1,91 +1,91 @@ -# Outline for the release mid-cycle blog -This outline can be used as a reference for writing up the mid cycle release blog in case of sneak peek is required. Deprecations and removal are required in case there are any. - -The following sections should give you an idea what can be considered for this mid-cycle blog, but it's not necessary to include every section. Include the ones that make sense for the features/announcements in the release. - -* Introduction to the current status of the release -* The Kubernetes API Removal and Deprecation process -* Notes of important removals or deprecations (if any) -* Changes (KEPs) that are deemed to be interesting - * Order release features by impact, maturity, vision or grouped by SIG. - * This section lists out the key features (even if they are not being recommended to be used in production or are alphas). - * Call out important API deprecations and removals - * When possible, link upstream docs or KEP docs (past blogs link k/enhancement issues) -* Want to know more? -* Get involved - * SIGs - * Community meeting - * Where to host questions (or answer questions) - * Advocates - * Bluesky - * Slack - * Kubernetes blog - - -## Release Mid-Cycle Blog Template - -The template should give you some boilerplate. However, this blog is optional and each release has its own story to tell. You can be creative with it! - -```md ---- -layout: blog -title: 'Kubernetes 1.XX: Sneak peek' -date: 202n-mm-dd -slug: kubernetes-1-XX-sneak-peek -author: > - [Kubernetes v1.XX Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.XX/release-team.md) ---- - -**Editors:** [Comms teams members, ordered by last name ascending] - -As we get closer to the release date for Kubernetes v1.xx, the project develops and matures, features may be deprecated, removed, or replaced with better ones for the project's overall health. This blog outlines some of the planned changes for the Kubernetes 1.xx release, that the release team feels you should be aware of for the continued maintenance of your Kubernetes environment and keeping up to date with the latest changes. The information listed below is based on the current status of the v1.xx release and may change before the actual release date. - -### The Kubernetes API Removal and Deprecation process -The Kubernetes project has a well-documented [deprecation policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/) for features. This policy states that stable APIs may only be deprecated when a newer, stable version of that same API is available and that APIs have a minimum lifetime for each stability level. A deprecated API has been marked for removal in a future Kubernetes release, it will continue to function until removal (at least one year from the deprecation), but usage will result in a warning being displayed. Removed APIs are no longer available in the current version, at which point you must migrate to using the replacement. - -* Generally available (GA) or stable API versions may be marked as deprecated but must not be removed within a major version of Kubernetes. - -* Beta or pre-release API versions must be supported for 3 releases after the deprecation. - -* Alpha or experimental API versions may be removed in any release without prior deprecation notice, this process can become a withdrawal in cases where a different implementation for the same feature is already in place. - -Whether an API is removed as a result of a feature graduating from beta to stable or because that API simply did not succeed, all removals comply with this deprecation policy. Whenever an API is removed, migration options are communicated in the [documentation](https://kubernetes.io/docs/reference/using-api/deprecation-guide/). - -## A note about xxx - Comms Lead - -Here you can insert a note about a topic of the release or tangential to it. This can be a note about a feature, a process, or a community initiative that you think is important to highlight in the mid-cycle blog. - -## Sneak peek of Kubernetes 1.xx - -### KEP [#xxx](https://github.com/kubernetes/enhancements/issues/xxx) - Comms Owner -<insert here a KEP explanation paragraph> -- Repeat for every KEP that is interesting for the release - -## Want to know more? -New features and deprecations are also announced in the Kubernetes release notes. We will formally announce what's new in [Kubernetes v1.xx](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.xx.md) as part of the CHANGELOG for that release. - -You can see the announcements of changes in the release notes for: - -* [Kubernetes v1.32](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.32.md) - -* [Kubernetes v1.31](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.31.md) - -* [Kubernetes v1.30](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md) - -* [Kubernetes v1.29](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md) - -## Get involved - -The simplest way to get involved with Kubernetes is by joining one of the many [Special Interest Groups](https://github.com/kubernetes/community/blob/master/sig-list.md) (SIGs) that align with your interests. -Have something you’d like to broadcast to the Kubernetes community? -Share your voice at our weekly [community meeting](https://github.com/kubernetes/community/tree/master/communication), and through the channels below. -Thank you for your continued feedback and support. - -- Follow us on Bluesky [@Kubernetesio](https://bsky.app/profile/kubernetes.io) for the latest updates -- Join the community discussion on [Discuss](https://discuss.kubernetes.io/) -- Join the community on [Slack](http://slack.k8s.io/) -- Post questions (or answer questions) on [Stack Overflow](http://stackoverflow.com/questions/tagged/kubernetes) -- Share your Kubernetes [story](https://docs.google.com/a/linuxfoundation.org/forms/d/e/1FAIpQLScuI7Ye3VQHQTwBASrgkjQDSS5TP0g3AXfFhwSM9YpHgxRKFA/viewform) -- Read more about what’s happening with Kubernetes on the [blog](https://kubernetes.io/blog/) -- Learn more about the [Kubernetes Release Team](https://github.com/kubernetes/sig-release/tree/master/release-team) +# Outline for the release mid-cycle blog +This outline can be used as a reference for writing up the mid cycle release blog in case of sneak peek is required. Deprecations and removal are required in case there are any. + +The following sections should give you an idea what can be considered for this mid-cycle blog, but it's not necessary to include every section. Include the ones that make sense for the features/announcements in the release. + +* Introduction to the current status of the release +* The Kubernetes API Removal and Deprecation process +* Notes of important removals or deprecations (if any) +* Changes (KEPs) that are deemed to be interesting + * Order release features by impact, maturity, vision or grouped by SIG. + * This section lists out the key features (even if they are not being recommended to be used in production or are alphas). + * Call out important API deprecations and removals + * When possible, link upstream docs or KEP docs (past blogs link k/enhancement issues) +* Want to know more? +* Get involved + * SIGs + * Community meeting + * Where to host questions (or answer questions) + * Advocates + * Bluesky + * Slack + * Kubernetes blog + + +## Release Mid-Cycle Blog Template + +The template should give you some boilerplate. However, this blog is optional and each release has its own story to tell. You can be creative with it! + +```md +--- +layout: blog +title: 'Kubernetes 1.XX: Sneak peek' +date: 202n-mm-dd +slug: kubernetes-1-XX-sneak-peek +author: > + [Kubernetes v1.XX Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.XX/release-team.md) +--- + +**Editors:** [Comms teams members, ordered by last name ascending] + +As we get closer to the release date for Kubernetes v1.xx, the project develops and matures, features may be deprecated, removed, or replaced with better ones for the project's overall health. This blog outlines some of the planned changes for the Kubernetes 1.xx release, that the release team feels you should be aware of for the continued maintenance of your Kubernetes environment and keeping up to date with the latest changes. The information listed below is based on the current status of the v1.xx release and may change before the actual release date. + +### The Kubernetes API Removal and Deprecation process +The Kubernetes project has a well-documented [deprecation policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/) for features. This policy states that stable APIs may only be deprecated when a newer, stable version of that same API is available and that APIs have a minimum lifetime for each stability level. A deprecated API has been marked for removal in a future Kubernetes release, it will continue to function until removal (at least one year from the deprecation), but usage will result in a warning being displayed. Removed APIs are no longer available in the current version, at which point you must migrate to using the replacement. + +* Generally available (GA) or stable API versions may be marked as deprecated but must not be removed within a major version of Kubernetes. + +* Beta or pre-release API versions must be supported for 3 releases after the deprecation. + +* Alpha or experimental API versions may be removed in any release without prior deprecation notice, this process can become a withdrawal in cases where a different implementation for the same feature is already in place. + +Whether an API is removed as a result of a feature graduating from beta to stable or because that API simply did not succeed, all removals comply with this deprecation policy. Whenever an API is removed, migration options are communicated in the [documentation](https://kubernetes.io/docs/reference/using-api/deprecation-guide/). + +## A note about xxx - Comms Lead + +Here you can insert a note about a topic of the release or tangential to it. This can be a note about a feature, a process, or a community initiative that you think is important to highlight in the mid-cycle blog. + +## Sneak peek of Kubernetes 1.xx + +### KEP [#xxx](https://github.com/kubernetes/enhancements/issues/xxx) - Comms Owner +<insert here a KEP explanation paragraph> +- Repeat for every KEP that is interesting for the release + +## Want to know more? +New features and deprecations are also announced in the Kubernetes release notes. We will formally announce what's new in [Kubernetes v1.xx](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.xx.md) as part of the CHANGELOG for that release. + +You can see the announcements of changes in the release notes for: + +* [Kubernetes v1.32](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.32.md) + +* [Kubernetes v1.31](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.31.md) + +* [Kubernetes v1.30](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.30.md) + +* [Kubernetes v1.29](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.29.md) + +## Get involved + +The simplest way to get involved with Kubernetes is by joining one of the many [Special Interest Groups](https://github.com/kubernetes/community/blob/master/sig-list.md) (SIGs) that align with your interests. +Have something you’d like to broadcast to the Kubernetes community? +Share your voice at our weekly [community meeting](https://github.com/kubernetes/community/tree/master/communication), and through the channels below. +Thank you for your continued feedback and support. + +- Follow us on Bluesky [@Kubernetesio](https://bsky.app/profile/kubernetes.io) for the latest updates +- Join the community discussion on [Discuss](https://discuss.kubernetes.io/) +- Join the community on [Slack](http://slack.k8s.io/) +- Post questions (or answer questions) on [Stack Overflow](http://stackoverflow.com/questions/tagged/kubernetes) +- Share your Kubernetes [story](https://docs.google.com/a/linuxfoundation.org/forms/d/e/1FAIpQLScuI7Ye3VQHQTwBASrgkjQDSS5TP0g3AXfFhwSM9YpHgxRKFA/viewform) +- Read more about what’s happening with Kubernetes on the [blog](https://kubernetes.io/blog/) +- Learn more about the [Kubernetes Release Team](https://github.com/kubernetes/sig-release/tree/master/release-team) ``` \ No newline at end of file diff --git a/release-team/role-handbooks/communications/templates/pr-email.md b/release-team/role-handbooks/communications/templates/pr-email.md index 4cff14c4543..fe0b5bc332c 100644 --- a/release-team/role-handbooks/communications/templates/pr-email.md +++ b/release-team/role-handbooks/communications/templates/pr-email.md @@ -1,19 +1,19 @@ -This email must be sent to the following recipients: -- pr@cncf.io -- release-comms@kubernetes.io -- <release-lead email, found in the contact sheet> - -``` -Hi there! - -I'm the Comms Lead for Kubernetes <release version> (currently scheduled to release <release date>). -I'm reaching out to get our release day and pre-release press handled. - -- 2-3 release highlights: <share 2-3 release highlights> -- Availability of our Lead for interviews <get it from release lead> -- the draft blog can be found at this link: https://github.com/kubernetes/website/pull/xxxx <share the draft PR> - -Note: the draft blog will not contain the theme and the release logo, those will be added just ahead of the release to avoid spoiling the news but we can share such material in advance and in a separate file with you, as soon as our Lead creates the logo and shares the theme. - -If you need anything else from the Comms team, don't hesitate to reach out! +This email must be sent to the following recipients: +- pr@cncf.io +- release-comms@kubernetes.io +- <release-lead email, found in the contact sheet> + +``` +Hi there! + +I'm the Comms Lead for Kubernetes <release version> (currently scheduled to release <release date>). +I'm reaching out to get our release day and pre-release press handled. + +- 2-3 release highlights: <share 2-3 release highlights> +- Availability of our Lead for interviews <get it from release lead> +- the draft blog can be found at this link: https://github.com/kubernetes/website/pull/xxxx <share the draft PR> + +Note: the draft blog will not contain the theme and the release logo, those will be added just ahead of the release to avoid spoiling the news but we can share such material in advance and in a separate file with you, as soon as our Lead creates the logo and shares the theme. + +If you need anything else from the Comms team, don't hesitate to reach out! ``` \ No newline at end of file diff --git a/release-team/role-handbooks/communications/templates/release-blog.md b/release-team/role-handbooks/communications/templates/release-blog.md index 33cfe22107f..cabb280f308 100644 --- a/release-team/role-handbooks/communications/templates/release-blog.md +++ b/release-team/role-handbooks/communications/templates/release-blog.md @@ -1,210 +1,210 @@ -# Outline for the Kubernetes Release Blog -This outline can be used as reference for writing up the release blog. The following sections should give you an idea what can be consider for the blog, but it's not necessary to include every section. Include the ones that make sense for the features/announcements in the release. - -* Introduction to release - * The first paragraph of the release blog announcement introduces the release, its focus, and its importance. -* Release Highlights (Enhancements) - * Order release features by impact, maturity, vision. - * This section lists out the key features (even if they are not being recommended to be used in production or are alphas). - * When we describe something in the alpha state, we are highlighting what is going on (in/to) the community. - * Release cycles are so short, just because it is alpha right now, it will be stable soon. Position it as “this is what is coming.” - * Include additional features and what's next section following the key release features. - * This is the vision and brand new thing you can do in-production right now. - * Everything else is included in the release notes. -* Changes in stable, beta, alpha - * List major changes not covered in themes - * Call out important API deprecations and removals - * When possible, link upstream docs or KEP docs (past blogs link k/enhancement issues) -* Known Issues - * Optional section to call out specific known issues and workarounds, if applicable. -* Release notes - * Release notes are always included in the blog announcement. -* Availability of release - * Link to where the release can be downloaded on GitHub. - * Include interactive tutorials on the current release or how to get started with Kubernetes when relevant. -* Release Team - * Mention job of release team - * Important to highlight company contributions in a way that is respectful to the entire community – including a copy of the release team in relation to the project and their work - * Mention efforts of community - * Mention the growth of the community - * List of contributors to the spec should go in the 5 Day blog series -* Project Velocity - * Growth since the last release - * Number of companies involved in the release - * Other relevant velocity numbers from DevStats -* Event Updates - * Relevant KubeCon dates and information - * Conferences where the release will be discussed -* Upcoming release webinar - * CNCF hosts a release webinar 30 days after the release is available. Webinar is conducted by the release team and discusses the current release. Include information on the webinar in the release announcement blog to encourage attendance. -* Get Involved - * SIGs - * Community Meeting - * Where to host questions (or answer questions) - * Advocates - * Twitter - * Slack - * Kubernetes blog - -## Latest Release Blogs as Reference -* [Kubernetes 1.32: Penelope](https://kubernetes.io/blog/2024/12/11/kubernetes-v1-32-release/) -* [Kubernetes 1.31: Elli](https://kubernetes.io/blog/2024/08/13/kubernetes-v1-31-release/) -* [Kubernetes 1.30: Uwubernetes](https://kubernetes.io/blog/2024/04/17/kubernetes-v1-30-release/) -* [Kubernetes 1.27: Chill Vibes](https://kubernetes.io/blog/2023/04/11/kubernetes-v1-27-release/) -* [Kubernetes 1.26: Electrifying](https://kubernetes.io/blog/2022/12/09/kubernetes-v1-26-release/) -* [Kubernetes 1.25: Combiner](https://kubernetes.io/blog/2022/08/23/kubernetes-v1-25-release/) - -## Release Blog Template - -The template should give you some boilerplate. However, each release has its own story to tell, there will be always something special around and exactly this flavour must be brought and individualized into the relase blog. Don't be just a copy cat. - -```md ---- -layout: blog -title: 'Kubernetes 1.XX: <Release Name>' -date: 202n-mm-dd -slug: kubernetes-1-XX-release-announcement -author: > - [Kubernetes v1.XX Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.XX/release-team.md) ---- ---- - -**Editors:** [Comms teams members] - -Similar to previous releases, the release of Kubernetes v1.XX introduces new stable, beta, and alpha features. The consistent delivery of high-quality releases underscores the strength of our development cycle and the vibrant support from our community. - -This release consists of X enhancements. -Of those enhancements, X have graduated to Stable, X are entering Beta, -and X have graduated to Alpha. - -## Release theme and logo -<Logo image size is recommended to be no more than 2160px> -{{< figure src="/images/blog/YYYY-MM-DD-kubernetes-1.XX-release/k8s-1.XX.png" alt="Kubernetes v1.XX <release theme> logo" class="release-logo" >}} - - -## Release highlights - -<MESSAGE ABOUT THE HIGHLIGHTS BELOW AND WHY THEY WERE CHOSEN> - -### <THEME 1> - -### <THEME 2> - -### <THEME 3> - -### <THEME 4> - -### <THEME 5> - -## Features graduating to Stable - -_This is a selection of some of the improvements that are now stable following the v1.XX release._ - -### <FEATURE TITLE> - -<1-2 PARAGRAPH DESCRIPTION OF CHANGE> - -This work was done as part of [KEP #XXXX](https://github.com/kubernetes/enhancements/issues/XXXX) led by [SIG XXXX](https://github.com/kubernetes/community/tree/master/sig-XXXXX). - -## New features in Beta - -_This is a selection of some of the improvements that are now beta following the v1.XX release._ - -### <FEATURE TITLE> - -<1-2 PARAGRAPH DESCRIPTION OF CHANGE> - -This work was done as part of [KEP #XXXX](https://github.com/kubernetes/enhancements/issues/XXXX) led by [SIG XXXX](https://github.com/kubernetes/community/tree/master/sig-XXXXX). - - -## New features in Alpha - -_This is a selection of some of the improvements that are now alpha following the v1.XX release._ - -### <FEATURE TITLE> - -<1-2 PARAGRAPH DESCRIPTION OF CHANGE> - -This work was done as part of [KEP #XXXX](https://github.com/kubernetes/enhancements/issues/XXXX) led by [SIG XXXX](https://github.com/kubernetes/community/tree/master/sig-XXXXX). - - -## Graduations, deprecations, and removals in 1.XX - -### Graduations to stable - -This lists all the features that graduated to stable (also known as _general availability_). For a full list of updates including new features and graduations from alpha to beta, see the release notes. - -This release includes a total of X enhancements promoted to stable: -* [KEP TITLE](https://github.com/kubernetes/enhancements/issues/XXXXXX) - -### Deprecations and removals - -As Kubernetes develops and matures, features may be deprecated, removed, or replaced with better ones for the project's overall health. -See the Kubernetes [deprecation and removal policy](/docs/reference/using-api/deprecation-policy/) for more details on this process. -Many of these deprecations and removals were announced in the [Deprecations and Removals blog](LINK TO MID-CYCLE BLOG) - - -### Release notes - -Check out the full details of the Kubernetes 1.XX release in our [release notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.XX.md). - -### Availability - -Kubernetes v1.XX is available for download on [GitHub](https://github.com/kubernetes/kubernetes/releases/tag/v1.XX.0) or on the [Kubernetes download page](/releases/download/). - -To get started with Kubernetes, check out these [interactive tutorials](/docs/tutorials/) or run local Kubernetes clusters using [minikube](https://minikube.sigs.k8s.io/). -You can also easily install v1.XX using [kubeadm](/docs/setup/independent/create-cluster-kubeadm/). - -### Release Team - -<FIND AN INDIVIDUAL TEXT, EACH RELEASE TEAM HAS ITS OWN STORY, TELL IT! BELOW IS AN EXAMPLE FROM PAST RELEASES> - -Kubernetes is only possible with the support, commitment, and hard work of its community. -Each release team is made up of dedicated community volunteers who work together to build the many pieces that make up the Kubernetes releases you rely on. -This requires the specialized skills of people from all corners of our community, from the code itself to its documentation and project management. - -We would like to thank the entire [release team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.XX/release-team.md) for the hours spent hard at work to deliver the Kubernetes v1.31 release to our community. -The Release Team's membership ranges from first-time shadows to returning team leads with experience forged over several release cycles. -A very special thanks goes out our release lead, RELEASE LEAD, for supporting us through a successful release cycle, advocating for us, making sure that we could all contribute in the best way possible, and challenging us to improve the release process. - -### Project Velocity - -<CHECKOUT THE DEVSTATS AND HIGHLIGHT SOME INTRESTING NUMBERS https://k8s.devstats.cncf.io/d/12/dashboards?orgId=1&refresh=15m, INCLUDE ANY INTERESTED DATA YOU FIND FOR THE CYCLE> - -The CNCF K8s [DevStats](https://k8s.devstats.cncf.io/d/11/companies-contributing-in-repository-groups?orgId=1&var-period=m&var-repogroup_name=All) project aggregates a number of interesting data points related to the velocity of Kubernetes and various sub-projects. -This includes everything from individual contributions to the number of companies that are contributing and is an illustration of the depth and breadth of effort that goes into evolving this ecosystem. - -In the v1.XX release cycle, which ran for X weeks (START DATE to RELEASE DATE), we saw contributions to Kubernetes from X different companies and X individuals. - -Source for this data: -- [Companies contributing to Kubernetes](https://k8s.devstats.cncf.io/d/11/companies-contributing-in-repository-groups?orgId=1&from=1715032800000&to=1723586399000&var-period=d28&var-repogroup_name=Kubernetes&var-repo_name=kubernetes%2Fkubernetes) -- [Overall ecosystem contributions](https://k8s.devstats.cncf.io/d/11/companies-contributing-in-repository-groups?orgId=1&from=1715032800000&to=1723586399000&var-period=d28&var-repogroup_name=All&var-repo_name=kubernetes%2Fkubernetes) - -By contribution we mean when someone makes a commit, code review, comment, creates an issue or PR, reviews a PR (including blogs and documentation) or comments on issues and PRs. - -If you are interested in contributing see our [getting started](https://www.kubernetes.dev/docs/guide/#getting-started) page. - -### Event Update -Explore the upcoming Kubernetes events, featuring KubeCon, KCD, and other notable conferences worldwide. - -<THERE WILL BE ALWAYS A KUBECON/CLOUDNATIVECON, PULL EVENTS FROM https://community.cncf.io/events/#/list, GIVE THE LATEST INFORMATION> - -### Upcoming Release Webinar - -<RELEASE WEBINARE WILL TAKE PLACE NORMALLY 30 DAYS AFTER RELEASE, ALIGN WITH CNCF TO HIGHLIGHT THE WEBINAR> - -### Get Involved -<THIS COMMUNITY LIVES BY ITS GREAT COMMUNITY, GET THEM INVOLVED!> -The simplest way to get involved with Kubernetes is by joining one of the many [Special Interest Groups](https://github.com/kubernetes/community/blob/master/sig-list.md) (SIGs) that align with your interests. -Have something you’d like to broadcast to the Kubernetes community? -Share your voice at our weekly [community meeting](https://github.com/kubernetes/community/tree/master/communication), and through the channels below. -Thank you for your continued feedback and support. - -- Follow us on Bluesky [@Kubernetesio](https://bsky.app/profile/kubernetes.io) for the latest updates -- Join the community discussion on [Discuss](https://discuss.kubernetes.io/) -- Join the community on [Slack](http://slack.k8s.io/) -- Post questions (or answer questions) on [Stack Overflow](http://stackoverflow.com/questions/tagged/kubernetes) -- Share your Kubernetes [story](https://docs.google.com/a/linuxfoundation.org/forms/d/e/1FAIpQLScuI7Ye3VQHQTwBASrgkjQDSS5TP0g3AXfFhwSM9YpHgxRKFA/viewform) -- Read more about what’s happening with Kubernetes on the [blog](https://kubernetes.io/blog/) -- Learn more about the [Kubernetes Release Team](https://github.com/kubernetes/sig-release/tree/master/release-team) +# Outline for the Kubernetes Release Blog +This outline can be used as reference for writing up the release blog. The following sections should give you an idea what can be consider for the blog, but it's not necessary to include every section. Include the ones that make sense for the features/announcements in the release. + +* Introduction to release + * The first paragraph of the release blog announcement introduces the release, its focus, and its importance. +* Release Highlights (Enhancements) + * Order release features by impact, maturity, vision. + * This section lists out the key features (even if they are not being recommended to be used in production or are alphas). + * When we describe something in the alpha state, we are highlighting what is going on (in/to) the community. + * Release cycles are so short, just because it is alpha right now, it will be stable soon. Position it as “this is what is coming.” + * Include additional features and what's next section following the key release features. + * This is the vision and brand new thing you can do in-production right now. + * Everything else is included in the release notes. +* Changes in stable, beta, alpha + * List major changes not covered in themes + * Call out important API deprecations and removals + * When possible, link upstream docs or KEP docs (past blogs link k/enhancement issues) +* Known Issues + * Optional section to call out specific known issues and workarounds, if applicable. +* Release notes + * Release notes are always included in the blog announcement. +* Availability of release + * Link to where the release can be downloaded on GitHub. + * Include interactive tutorials on the current release or how to get started with Kubernetes when relevant. +* Release Team + * Mention job of release team + * Important to highlight company contributions in a way that is respectful to the entire community – including a copy of the release team in relation to the project and their work + * Mention efforts of community + * Mention the growth of the community + * List of contributors to the spec should go in the 5 Day blog series +* Project Velocity + * Growth since the last release + * Number of companies involved in the release + * Other relevant velocity numbers from DevStats +* Event Updates + * Relevant KubeCon dates and information + * Conferences where the release will be discussed +* Upcoming release webinar + * CNCF hosts a release webinar 30 days after the release is available. Webinar is conducted by the release team and discusses the current release. Include information on the webinar in the release announcement blog to encourage attendance. +* Get Involved + * SIGs + * Community Meeting + * Where to host questions (or answer questions) + * Advocates + * Twitter + * Slack + * Kubernetes blog + +## Latest Release Blogs as Reference +* [Kubernetes 1.32: Penelope](https://kubernetes.io/blog/2024/12/11/kubernetes-v1-32-release/) +* [Kubernetes 1.31: Elli](https://kubernetes.io/blog/2024/08/13/kubernetes-v1-31-release/) +* [Kubernetes 1.30: Uwubernetes](https://kubernetes.io/blog/2024/04/17/kubernetes-v1-30-release/) +* [Kubernetes 1.27: Chill Vibes](https://kubernetes.io/blog/2023/04/11/kubernetes-v1-27-release/) +* [Kubernetes 1.26: Electrifying](https://kubernetes.io/blog/2022/12/09/kubernetes-v1-26-release/) +* [Kubernetes 1.25: Combiner](https://kubernetes.io/blog/2022/08/23/kubernetes-v1-25-release/) + +## Release Blog Template + +The template should give you some boilerplate. However, each release has its own story to tell, there will be always something special around and exactly this flavour must be brought and individualized into the relase blog. Don't be just a copy cat. + +```md +--- +layout: blog +title: 'Kubernetes 1.XX: <Release Name>' +date: 202n-mm-dd +slug: kubernetes-1-XX-release-announcement +author: > + [Kubernetes v1.XX Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.XX/release-team.md) +--- +--- + +**Editors:** [Comms teams members] + +Similar to previous releases, the release of Kubernetes v1.XX introduces new stable, beta, and alpha features. The consistent delivery of high-quality releases underscores the strength of our development cycle and the vibrant support from our community. + +This release consists of X enhancements. +Of those enhancements, X have graduated to Stable, X are entering Beta, +and X have graduated to Alpha. + +## Release theme and logo +<Logo image size is recommended to be no more than 2160px> +{{< figure src="/images/blog/YYYY-MM-DD-kubernetes-1.XX-release/k8s-1.XX.png" alt="Kubernetes v1.XX <release theme> logo" class="release-logo" >}} + + +## Release highlights + +<MESSAGE ABOUT THE HIGHLIGHTS BELOW AND WHY THEY WERE CHOSEN> + +### <THEME 1> + +### <THEME 2> + +### <THEME 3> + +### <THEME 4> + +### <THEME 5> + +## Features graduating to Stable + +_This is a selection of some of the improvements that are now stable following the v1.XX release._ + +### <FEATURE TITLE> + +<1-2 PARAGRAPH DESCRIPTION OF CHANGE> + +This work was done as part of [KEP #XXXX](https://github.com/kubernetes/enhancements/issues/XXXX) led by [SIG XXXX](https://github.com/kubernetes/community/tree/master/sig-XXXXX). + +## New features in Beta + +_This is a selection of some of the improvements that are now beta following the v1.XX release._ + +### <FEATURE TITLE> + +<1-2 PARAGRAPH DESCRIPTION OF CHANGE> + +This work was done as part of [KEP #XXXX](https://github.com/kubernetes/enhancements/issues/XXXX) led by [SIG XXXX](https://github.com/kubernetes/community/tree/master/sig-XXXXX). + + +## New features in Alpha + +_This is a selection of some of the improvements that are now alpha following the v1.XX release._ + +### <FEATURE TITLE> + +<1-2 PARAGRAPH DESCRIPTION OF CHANGE> + +This work was done as part of [KEP #XXXX](https://github.com/kubernetes/enhancements/issues/XXXX) led by [SIG XXXX](https://github.com/kubernetes/community/tree/master/sig-XXXXX). + + +## Graduations, deprecations, and removals in 1.XX + +### Graduations to stable + +This lists all the features that graduated to stable (also known as _general availability_). For a full list of updates including new features and graduations from alpha to beta, see the release notes. + +This release includes a total of X enhancements promoted to stable: +* [KEP TITLE](https://github.com/kubernetes/enhancements/issues/XXXXXX) + +### Deprecations and removals + +As Kubernetes develops and matures, features may be deprecated, removed, or replaced with better ones for the project's overall health. +See the Kubernetes [deprecation and removal policy](/docs/reference/using-api/deprecation-policy/) for more details on this process. +Many of these deprecations and removals were announced in the [Deprecations and Removals blog](LINK TO MID-CYCLE BLOG) + + +### Release notes + +Check out the full details of the Kubernetes 1.XX release in our [release notes](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.XX.md). + +### Availability + +Kubernetes v1.XX is available for download on [GitHub](https://github.com/kubernetes/kubernetes/releases/tag/v1.XX.0) or on the [Kubernetes download page](/releases/download/). + +To get started with Kubernetes, check out these [interactive tutorials](/docs/tutorials/) or run local Kubernetes clusters using [minikube](https://minikube.sigs.k8s.io/). +You can also easily install v1.XX using [kubeadm](/docs/setup/independent/create-cluster-kubeadm/). + +### Release Team + +<FIND AN INDIVIDUAL TEXT, EACH RELEASE TEAM HAS ITS OWN STORY, TELL IT! BELOW IS AN EXAMPLE FROM PAST RELEASES> + +Kubernetes is only possible with the support, commitment, and hard work of its community. +Each release team is made up of dedicated community volunteers who work together to build the many pieces that make up the Kubernetes releases you rely on. +This requires the specialized skills of people from all corners of our community, from the code itself to its documentation and project management. + +We would like to thank the entire [release team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.XX/release-team.md) for the hours spent hard at work to deliver the Kubernetes v1.31 release to our community. +The Release Team's membership ranges from first-time shadows to returning team leads with experience forged over several release cycles. +A very special thanks goes out our release lead, RELEASE LEAD, for supporting us through a successful release cycle, advocating for us, making sure that we could all contribute in the best way possible, and challenging us to improve the release process. + +### Project Velocity + +<CHECKOUT THE DEVSTATS AND HIGHLIGHT SOME INTRESTING NUMBERS https://k8s.devstats.cncf.io/d/12/dashboards?orgId=1&refresh=15m, INCLUDE ANY INTERESTED DATA YOU FIND FOR THE CYCLE> + +The CNCF K8s [DevStats](https://k8s.devstats.cncf.io/d/11/companies-contributing-in-repository-groups?orgId=1&var-period=m&var-repogroup_name=All) project aggregates a number of interesting data points related to the velocity of Kubernetes and various sub-projects. +This includes everything from individual contributions to the number of companies that are contributing and is an illustration of the depth and breadth of effort that goes into evolving this ecosystem. + +In the v1.XX release cycle, which ran for X weeks (START DATE to RELEASE DATE), we saw contributions to Kubernetes from X different companies and X individuals. + +Source for this data: +- [Companies contributing to Kubernetes](https://k8s.devstats.cncf.io/d/11/companies-contributing-in-repository-groups?orgId=1&from=1715032800000&to=1723586399000&var-period=d28&var-repogroup_name=Kubernetes&var-repo_name=kubernetes%2Fkubernetes) +- [Overall ecosystem contributions](https://k8s.devstats.cncf.io/d/11/companies-contributing-in-repository-groups?orgId=1&from=1715032800000&to=1723586399000&var-period=d28&var-repogroup_name=All&var-repo_name=kubernetes%2Fkubernetes) + +By contribution we mean when someone makes a commit, code review, comment, creates an issue or PR, reviews a PR (including blogs and documentation) or comments on issues and PRs. + +If you are interested in contributing see our [getting started](https://www.kubernetes.dev/docs/guide/#getting-started) page. + +### Event Update +Explore the upcoming Kubernetes events, featuring KubeCon, KCD, and other notable conferences worldwide. + +<THERE WILL BE ALWAYS A KUBECON/CLOUDNATIVECON, PULL EVENTS FROM https://community.cncf.io/events/#/list, GIVE THE LATEST INFORMATION> + +### Upcoming Release Webinar + +<RELEASE WEBINARE WILL TAKE PLACE NORMALLY 30 DAYS AFTER RELEASE, ALIGN WITH CNCF TO HIGHLIGHT THE WEBINAR> + +### Get Involved +<THIS COMMUNITY LIVES BY ITS GREAT COMMUNITY, GET THEM INVOLVED!> +The simplest way to get involved with Kubernetes is by joining one of the many [Special Interest Groups](https://github.com/kubernetes/community/blob/master/sig-list.md) (SIGs) that align with your interests. +Have something you’d like to broadcast to the Kubernetes community? +Share your voice at our weekly [community meeting](https://github.com/kubernetes/community/tree/master/communication), and through the channels below. +Thank you for your continued feedback and support. + +- Follow us on Bluesky [@Kubernetesio](https://bsky.app/profile/kubernetes.io) for the latest updates +- Join the community discussion on [Discuss](https://discuss.kubernetes.io/) +- Join the community on [Slack](http://slack.k8s.io/) +- Post questions (or answer questions) on [Stack Overflow](http://stackoverflow.com/questions/tagged/kubernetes) +- Share your Kubernetes [story](https://docs.google.com/a/linuxfoundation.org/forms/d/e/1FAIpQLScuI7Ye3VQHQTwBASrgkjQDSS5TP0g3AXfFhwSM9YpHgxRKFA/viewform) +- Read more about what’s happening with Kubernetes on the [blog](https://kubernetes.io/blog/) +- Learn more about the [Kubernetes Release Team](https://github.com/kubernetes/sig-release/tree/master/release-team) ``` \ No newline at end of file diff --git a/release-team/role-handbooks/communications/templates/release-highlights-discussion.md b/release-team/role-handbooks/communications/templates/release-highlights-discussion.md index 2f92d5d93dd..4520527633f 100644 --- a/release-team/role-handbooks/communications/templates/release-highlights-discussion.md +++ b/release-team/role-handbooks/communications/templates/release-highlights-discussion.md @@ -1,15 +1,15 @@ -This discussion is created by the Communications team to collect the Release Highlights for the current release cycle. - -``` -This is a discussion to collect the Release Highlights for the <version> release cycle. - -Release Highlights are an essential part of the Kubernetes release cycle as they provide a birds-eye view of improvements, breaking or user-facing changes that are coming as part of the upcoming release. The release Comms team is asking for SIGs to comment on this discussion with items that we should highlight in release communications for <version>. -For each submission, please include a link to the KEP, the stage the feature is moving to, and a brief description of the KEP that will be used as an outline for the blog post content. - -The deadline for <version> Release Highlights is <deadline>. - -Here is the [discussion thread](https://github.com/kubernetes/sig-release/discussions/2639) from the last release cycle. - -cc @kubernetes/release-team-leads -cc @comms-shadow1 @comms-shadow2 @comms-shadow3 @comms-shadow4 +This discussion is created by the Communications team to collect the Release Highlights for the current release cycle. + +``` +This is a discussion to collect the Release Highlights for the <version> release cycle. + +Release Highlights are an essential part of the Kubernetes release cycle as they provide a birds-eye view of improvements, breaking or user-facing changes that are coming as part of the upcoming release. The release Comms team is asking for SIGs to comment on this discussion with items that we should highlight in release communications for <version>. +For each submission, please include a link to the KEP, the stage the feature is moving to, and a brief description of the KEP that will be used as an outline for the blog post content. + +The deadline for <version> Release Highlights is <deadline>. + +Here is the [discussion thread](https://github.com/kubernetes/sig-release/discussions/2639) from the last release cycle. + +cc @kubernetes/release-team-leads +cc @comms-shadow1 @comms-shadow2 @comms-shadow3 @comms-shadow4 ``` \ No newline at end of file diff --git a/release-team/role-handbooks/communications/templates/release-highlights-tracking-issue.md b/release-team/role-handbooks/communications/templates/release-highlights-tracking-issue.md index 895d2e1e58b..9fc0dac585c 100644 --- a/release-team/role-handbooks/communications/templates/release-highlights-tracking-issue.md +++ b/release-team/role-handbooks/communications/templates/release-highlights-tracking-issue.md @@ -1,69 +1,69 @@ -### Overview -The release comms team will use this issue to track the work on nudging SIGs for entries on release highlights for the <version> release cycle. - -Release Highlights discussion for <version>: #xxxx Release Highlights deadline: **Some deadline**. - -Release Highlights are collected during each release cycle for every SIG to see what should be highlighted in the release blog, webinar, and other communications. Different SIGs have a different number of [tracked enhancements](<enhancement-tracking-board-link>). Some SIGs have activities that aren't quite coupled with Kubernetes releases, and it's worth checking with them in case there are things worth calling out in what they did between the previous release and the current release. One example is the Dockershim removal from 1.24 or Immutable Secrets and ConfigMaps from the 1.21 release, as well the cgroup v2 change in 1.31. - -### What do I need to do? -1. Pick a group of SIGs to reach out to (listed below), and comment your selection on this issue -2. Reach out to the SIGs in slack to ask for Release Highlights feedback and directing them to the github discussion using the template below -3. Comment here when you've completed reaching out to the SIGs - -Depending on the responses we get, we may need to send out a reminder in Slack later in the release cycle to each SIG to get more feedback on Release Highlights Themes. - -### How do I find a SIG's slack channel? -The Slack channel for each SIG is usually #sig-, but accurate links are available in [k/community](https://github.com/kubernetes/community) under [sig-list.md](https://github.com/kubernetes/community/blob/master/sig-list.md). The plan is to ask for responses on the public Slack channel (non-disruptively). - -### What should I say? -Following is a bootstrap template that you can use to reach out to the individual SIGs informing them about the discussion thread. This template includes the important information to convey to the SIG, but you are free to add your own personalization to the message if you'd like to. - -A template message can be found [here](/release-team/role-handbooks/communications/templates/release-highlight-message.md) - -Following that message it is advised to ping the SIGs every 2 weeks to remind them about the release highlights. - -### SIG groups -The following are groups of SIGs we need to reach out to. The SIGs are grouped together in a mix of those that have tracked enhancements for this release and those that do not. Please comment below with the group you'd like to reach out to. - -Group 1 - -* [ ] Node -* [ ] Cloud Provider -* [ ] Architecture -* [ ] Testing - -Group 2 - -* [ ] Auth -* [ ] CLI -* [ ] K8s Infra -* [ ] Multicluster - -Group 3 - -* [ ] API Machinery -* [ ] Scheduling -* [ ] Autoscaling -* [ ] Security - -Group 4 - -* [ ] Network -* [ ] Instrumentation -* [ ] Cluster Lifecycle -* [ ] Scalability - -Group 5 - -* [ ] Storage -* [ ] Apps -* [ ] Windows -* [ ] UI - - -We'll try to keep the list up-to-date, but please double-check in the comments if someone has contacted their assigned channels. We can debate more details in Slack. - -/milestone <version> - -xref: #old-issue - +### Overview +The release comms team will use this issue to track the work on nudging SIGs for entries on release highlights for the <version> release cycle. + +Release Highlights discussion for <version>: #xxxx Release Highlights deadline: **Some deadline**. + +Release Highlights are collected during each release cycle for every SIG to see what should be highlighted in the release blog, webinar, and other communications. Different SIGs have a different number of [tracked enhancements](<enhancement-tracking-board-link>). Some SIGs have activities that aren't quite coupled with Kubernetes releases, and it's worth checking with them in case there are things worth calling out in what they did between the previous release and the current release. One example is the Dockershim removal from 1.24 or Immutable Secrets and ConfigMaps from the 1.21 release, as well the cgroup v2 change in 1.31. + +### What do I need to do? +1. Pick a group of SIGs to reach out to (listed below), and comment your selection on this issue +2. Reach out to the SIGs in slack to ask for Release Highlights feedback and directing them to the github discussion using the template below +3. Comment here when you've completed reaching out to the SIGs + +Depending on the responses we get, we may need to send out a reminder in Slack later in the release cycle to each SIG to get more feedback on Release Highlights Themes. + +### How do I find a SIG's slack channel? +The Slack channel for each SIG is usually #sig-, but accurate links are available in [k/community](https://github.com/kubernetes/community) under [sig-list.md](https://github.com/kubernetes/community/blob/master/sig-list.md). The plan is to ask for responses on the public Slack channel (non-disruptively). + +### What should I say? +Following is a bootstrap template that you can use to reach out to the individual SIGs informing them about the discussion thread. This template includes the important information to convey to the SIG, but you are free to add your own personalization to the message if you'd like to. + +A template message can be found [here](/release-team/role-handbooks/communications/templates/release-highlight-message.md) + +Following that message it is advised to ping the SIGs every 2 weeks to remind them about the release highlights. + +### SIG groups +The following are groups of SIGs we need to reach out to. The SIGs are grouped together in a mix of those that have tracked enhancements for this release and those that do not. Please comment below with the group you'd like to reach out to. + +Group 1 + +* [ ] Node +* [ ] Cloud Provider +* [ ] Architecture +* [ ] Testing + +Group 2 + +* [ ] Auth +* [ ] CLI +* [ ] K8s Infra +* [ ] Multicluster + +Group 3 + +* [ ] API Machinery +* [ ] Scheduling +* [ ] Autoscaling +* [ ] Security + +Group 4 + +* [ ] Network +* [ ] Instrumentation +* [ ] Cluster Lifecycle +* [ ] Scalability + +Group 5 + +* [ ] Storage +* [ ] Apps +* [ ] Windows +* [ ] UI + + +We'll try to keep the list up-to-date, but please double-check in the comments if someone has contacted their assigned channels. We can debate more details in Slack. + +/milestone <version> + +xref: #old-issue + diff --git a/release-team/role-handbooks/communications/templates/sig-release-highlight-message.md b/release-team/role-handbooks/communications/templates/sig-release-highlight-message.md index b2db7ccfc49..ff9fe2cd478 100644 --- a/release-team/role-handbooks/communications/templates/sig-release-highlight-message.md +++ b/release-team/role-handbooks/communications/templates/sig-release-highlight-message.md @@ -1,15 +1,15 @@ -This message is sent to SIGs, in their channel, to collect the Release Highlights for the release cycle. - -``` -Hi SIG @xxx 👋 - -this is <Comms shadow/lead name> from the <current release cycle version> Communications Team! - -Release Highlights are an essential part of the Kubernetes release cycle as they provide a birds-eye view of improvements, breaking or user-facing changes that are coming as part of the upcoming release. - -Release Comms team is asking for your help gathering your Release Highlights for this release. If you have anything to call out, we would appreciate it if your SIG can submit the content in Kubernetes <current release cycle version> Release Highlights [GitHub discussion](https://github.com/kubernetes/sig-release/discussions/xxxx). - -Ideally, we would like this to be completed by **<deadline>**. - -Thank you so much for your cooperation :smile: +This message is sent to SIGs, in their channel, to collect the Release Highlights for the release cycle. + +``` +Hi SIG @xxx 👋 + +this is <Comms shadow/lead name> from the <current release cycle version> Communications Team! + +Release Highlights are an essential part of the Kubernetes release cycle as they provide a birds-eye view of improvements, breaking or user-facing changes that are coming as part of the upcoming release. + +Release Comms team is asking for your help gathering your Release Highlights for this release. If you have anything to call out, we would appreciate it if your SIG can submit the content in Kubernetes <current release cycle version> Release Highlights [GitHub discussion](https://github.com/kubernetes/sig-release/discussions/xxxx). + +Ideally, we would like this to be completed by **<deadline>**. + +Thank you so much for your cooperation :smile: ``` \ No newline at end of file diff --git a/release-team/role-handbooks/communications/templates/webinar-email.md b/release-team/role-handbooks/communications/templates/webinar-email.md index 3f56b3aa608..3ff515e0a60 100644 --- a/release-team/role-handbooks/communications/templates/webinar-email.md +++ b/release-team/role-handbooks/communications/templates/webinar-email.md @@ -1,17 +1,17 @@ -This email must be sent to the following recipients: -- webinars@cncf.io; -- release-comms@kubernetes.io -- <release-lead email, found in the contact sheet> -- <enhancement-lead email, found in the contact sheet> - -``` -Hi! - -I'm the Communications Lead for Kubernetes <release-version>, and I'm reaching out to schedule a live webinar for our Release and Enhancements Leads, reading in CC. -This version is currently scheduled to be released on the <release date>, see the details here: https://www.kubernetes.dev/resources/release/ - -Could you help us to schedule the webinar? -Do you have availability sometime for 3-4 weeks after the release? We can work around your schedule. - -Thanks! +This email must be sent to the following recipients: +- webinars@cncf.io; +- release-comms@kubernetes.io +- <release-lead email, found in the contact sheet> +- <enhancement-lead email, found in the contact sheet> + +``` +Hi! + +I'm the Communications Lead for Kubernetes <release-version>, and I'm reaching out to schedule a live webinar for our Release and Enhancements Leads, reading in CC. +This version is currently scheduled to be released on the <release date>, see the details here: https://www.kubernetes.dev/resources/release/ + +Could you help us to schedule the webinar? +Do you have availability sometime for 3-4 weeks after the release? We can work around your schedule. + +Thanks! ``` \ No newline at end of file diff --git a/release-team/role-handbooks/communications/templates/writing-buddy-assignment.md b/release-team/role-handbooks/communications/templates/writing-buddy-assignment.md index 587867c0d11..3bcf47a1976 100644 --- a/release-team/role-handbooks/communications/templates/writing-buddy-assignment.md +++ b/release-team/role-handbooks/communications/templates/writing-buddy-assignment.md @@ -1,21 +1,21 @@ -# Writing Buddy Assignement - -This is a message to send to the owners of the Feature Blog in the placeholder PRs to assign them a writing buddy. - -``` -Hi @xx 👋 vx.yy Communications team here, - -@BUDDY as author of #BUDDY-PR, I'd like you to be a [writing buddy](https://kubernetes.io/docs/contribute/blog/writing-buddy/) for @xx on this PR. - -Please: - -- Review this PR, paying attention to the [guidelines](https://kubernetes.io/docs/contribute/blog/guidelines/) and [review hints](https://kubernetes.io/docs/contribute/blog/writing-buddy/#pull-request-review) -- Update your own PR based on any best practices you identify that should be applied -- Remember to be compassionate with your fellow article author -``` - -You'd need to update the following placeholders: -- `@xx`: Mention PR's author -- `x.yy`: The upcoming Kubernetes version, such as 1.33, 1.34, etc. -- `@BUDDY`: Mention the choosed writing buddy to pair to this PR +# Writing Buddy Assignement + +This is a message to send to the owners of the Feature Blog in the placeholder PRs to assign them a writing buddy. + +``` +Hi @xx 👋 vx.yy Communications team here, + +@BUDDY as author of #BUDDY-PR, I'd like you to be a [writing buddy](https://kubernetes.io/docs/contribute/blog/writing-buddy/) for @xx on this PR. + +Please: + +- Review this PR, paying attention to the [guidelines](https://kubernetes.io/docs/contribute/blog/guidelines/) and [review hints](https://kubernetes.io/docs/contribute/blog/writing-buddy/#pull-request-review) +- Update your own PR based on any best practices you identify that should be applied +- Remember to be compassionate with your fellow article author +``` + +You'd need to update the following placeholders: +- `@xx`: Mention PR's author +- `x.yy`: The upcoming Kubernetes version, such as 1.33, 1.34, etc. +- `@BUDDY`: Mention the choosed writing buddy to pair to this PR - `#BUDDY-PR`: Link the buddy's PR \ No newline at end of file diff --git a/release-team/role-handbooks/communications/tips-and-tricks.md b/release-team/role-handbooks/communications/tips-and-tricks.md index ed9c5e406b2..d99ef43b9bb 100644 --- a/release-team/role-handbooks/communications/tips-and-tricks.md +++ b/release-team/role-handbooks/communications/tips-and-tricks.md @@ -1,88 +1,88 @@ -### Tips and best practices - -#### Use the 2 week guideline - -Try to give 2 weeks notice for all deadlines and requests for reviews. When planning to reach out for blog opt-in or asking for reviews on blog drafts, you should start posting messages or have blog drafts ready for review at least two weeks from the deadline. Especially when asking for blog reviews, as the blog team is understaffed, this will give reviewers enough time to do the review and you enough time to address any feedback. This is best effort guideline, as the schedule does not always allow for this much lead time before a deadline. - -#### Reaching out to KEP owners, blog authors, and reviewers - -Post messages to GitHub or in SIG slack channels for the best visibility into ongoing work and to allow other contributors to help. Having messages in the KEPs, blog PRs, or SIG slack channels, can help centralize information about the work being done and any outstanding issues. If you need to escalate an issue to Release Leads or SIG Chairs, having public messages/records of conversations can make it easy to tag who you need to. - -If you do use direct messages to contact someone during a release, post summaries of the conversation to PRs or SIG slack channels. This way everyone can stay up-to-date on the ongoing work. - -#### Deadlines - -As much as possible stick to the comms deadlines set in the release schedule for the mid-cycle blog and main release blog. This will ensure that no release-blocking issues come up and that all blogs go out when they need to. - -Feature blog deadlines are a little more flexible compared to other release deadlines. Because the feature blogs are published after the release, there is usually more wiggle room on the deadlines. In general, as long as blog authors are responsive and blog content is getting added/reviewed, it's OK to give authors extra time to finish their work. If you need to, you can publish the blog later in the publication schedule to give the author and reviewers more time to complete the blog. If you feel that a blog author is not responsive, progress is not being made, and the deadlines have been stretched too far, escalate to the release or SIG chairs or cancel the blog. A blog can always be written outside of the release cycle. - -##### An example process to handle blog opt-in deadlines - -Pushing deadlines is a common practice in the release team, but it's not always clear how to handle it for Comms since we don't have a hard deadline like code/docs freeze. -Here's a proposal for a process to handle the push of deadlines for blogs: - -- Talk with the Release Lead about the new deadline and the reason for the push; -- Push the new deadline out with a clear message to the author(s) and the SIGs involved; -- Ask the author(s) to confirm if they are ready for review on the new deadline; -- Are you ready for review on the new (pushed back) deadline? - - If yes, comms decides the feature blog publishing date and follows through to get the SIGs to review and push sig docs to do the same (eventually providing additional review); - - If not, the feature blog follows the standard sig docs process, the approvers decide when to publish and the responsibility of reaching out to SIGs for the tech review passes to the author; - -This eases up our work as Comms after the release is complete and helps sig-docs not to have a big urgent backlog of blogs to review. - -#### Useful queries on the enhancement board - -My issues as comms-opt-in-assignee: -`https://github.com/orgs/kubernetes/projects/195/views/4?filterQuery=comms-opt-in-assignee%3A<username>` - -All the issues that are tracked for the enhancements freeze: -`https://github.com/orgs/kubernetes/projects/195/views/4?filterQuery=status%3A%22Tracked+for+enhancements+freeze%22+&sortedBy%5Bdirection%5D=desc&sortedBy%5BcolumnId%5D=Status` - -All issues tracked for enhancement freeze + at risk for code freeze, with a placeholder created: -`https://github.com/orgs/kubernetes/projects/195/views/4?filterQuery=status%3A%22Tracked+for+enhancements+freeze%22%2C%22At+risk+for+code+freeze%22+blog-status%3A%22Placeholder+created%22&sortedBy%5Bdirection%5D=desc&sortedBy%5BcolumnId%5D=Status&sortedBy%5Bdirection%5D=asc&sortedBy%5BcolumnId%5D=130436282` - -All issues tracked for code freeze and exceptions (after code freeze), that have a placeholder created, with a link assigned: -`https://github.com/orgs/kubernetes/projects/195/views/4?filterQuery=status%3A%22Tracked+for+code+freeze%22%2C%22Exception+Required%22+has%3Apod-pr` - -#### KEP statuses for Comms purposes - -These are the possible values of Blog Status in the enhancement board explained: - -- `Opted-in` - the owner replied to your comment on the issue, expressing their interest in having a blog about their KEP -- `Opted-out` - the owner replied to your comment on the issue, saying that there won't be a blog - this can be for various reason that we don't ask as we don't necessarily need to know why! -- `Placeholder created` - the owner created a placeholder PR and linked it in the KEP - in this last case, "Placeholder created" we also fill the field "pod-PR" with the GitHub link. (see picture #2) -- `Opted out (no answer)` value to track the lack of communication around the blog opt-in. Only after deadline -- `Cancelled` - when the KEP is cancelled or the author doesn't want to proceed with the blog anymore, it can be used to track blogs that fell off the release cycle too due to deadlines being missed. -- `Ready for review` - when the content of the blog is ready for review, communicate with SIG-docs-(blog) to get the content review started and with the SIGs involved to get the tech review needed. -- `Merged` - when the blog is merged and ready to be scheduled. -- `Scheduled` - when the blog is scheduled for publication on the Kubernetes blog. -- `Published` - when the blog is published, it can be used to track the status of the blog post-release. - -#### I was asked to rebase my blogs, help me! - -In case you are asked to rebase (on main) and squash: - -```bash -# > sync your fork with the latest "main" of the upstream via the GitHub UI < - -git clone # your fork - -# rebase on main -git checkout # your fork's branch -git remote add upstream https://github.com/kubernetes/website.git -git fetch upstream -git rebase upstream/main -git push -f - -# squash all commits -git rebase -i upstream/main -# change all to "squash" except the first one to "pick" as example: -# pick 123abc Commit message 1 -# squash 456def Commit message 2 -# :wq -# edit commit message (dd to delete line, i to insert, :wq to save and exit) -# wait for rebase -git push -f -``` - +### Tips and best practices + +#### Use the 2 week guideline + +Try to give 2 weeks notice for all deadlines and requests for reviews. When planning to reach out for blog opt-in or asking for reviews on blog drafts, you should start posting messages or have blog drafts ready for review at least two weeks from the deadline. Especially when asking for blog reviews, as the blog team is understaffed, this will give reviewers enough time to do the review and you enough time to address any feedback. This is best effort guideline, as the schedule does not always allow for this much lead time before a deadline. + +#### Reaching out to KEP owners, blog authors, and reviewers + +Post messages to GitHub or in SIG slack channels for the best visibility into ongoing work and to allow other contributors to help. Having messages in the KEPs, blog PRs, or SIG slack channels, can help centralize information about the work being done and any outstanding issues. If you need to escalate an issue to Release Leads or SIG Chairs, having public messages/records of conversations can make it easy to tag who you need to. + +If you do use direct messages to contact someone during a release, post summaries of the conversation to PRs or SIG slack channels. This way everyone can stay up-to-date on the ongoing work. + +#### Deadlines + +As much as possible stick to the comms deadlines set in the release schedule for the mid-cycle blog and main release blog. This will ensure that no release-blocking issues come up and that all blogs go out when they need to. + +Feature blog deadlines are a little more flexible compared to other release deadlines. Because the feature blogs are published after the release, there is usually more wiggle room on the deadlines. In general, as long as blog authors are responsive and blog content is getting added/reviewed, it's OK to give authors extra time to finish their work. If you need to, you can publish the blog later in the publication schedule to give the author and reviewers more time to complete the blog. If you feel that a blog author is not responsive, progress is not being made, and the deadlines have been stretched too far, escalate to the release or SIG chairs or cancel the blog. A blog can always be written outside of the release cycle. + +##### An example process to handle blog opt-in deadlines + +Pushing deadlines is a common practice in the release team, but it's not always clear how to handle it for Comms since we don't have a hard deadline like code/docs freeze. +Here's a proposal for a process to handle the push of deadlines for blogs: + +- Talk with the Release Lead about the new deadline and the reason for the push; +- Push the new deadline out with a clear message to the author(s) and the SIGs involved; +- Ask the author(s) to confirm if they are ready for review on the new deadline; +- Are you ready for review on the new (pushed back) deadline? + - If yes, comms decides the feature blog publishing date and follows through to get the SIGs to review and push sig docs to do the same (eventually providing additional review); + - If not, the feature blog follows the standard sig docs process, the approvers decide when to publish and the responsibility of reaching out to SIGs for the tech review passes to the author; + +This eases up our work as Comms after the release is complete and helps sig-docs not to have a big urgent backlog of blogs to review. + +#### Useful queries on the enhancement board + +My issues as comms-opt-in-assignee: +`https://github.com/orgs/kubernetes/projects/195/views/4?filterQuery=comms-opt-in-assignee%3A<username>` + +All the issues that are tracked for the enhancements freeze: +`https://github.com/orgs/kubernetes/projects/195/views/4?filterQuery=status%3A%22Tracked+for+enhancements+freeze%22+&sortedBy%5Bdirection%5D=desc&sortedBy%5BcolumnId%5D=Status` + +All issues tracked for enhancement freeze + at risk for code freeze, with a placeholder created: +`https://github.com/orgs/kubernetes/projects/195/views/4?filterQuery=status%3A%22Tracked+for+enhancements+freeze%22%2C%22At+risk+for+code+freeze%22+blog-status%3A%22Placeholder+created%22&sortedBy%5Bdirection%5D=desc&sortedBy%5BcolumnId%5D=Status&sortedBy%5Bdirection%5D=asc&sortedBy%5BcolumnId%5D=130436282` + +All issues tracked for code freeze and exceptions (after code freeze), that have a placeholder created, with a link assigned: +`https://github.com/orgs/kubernetes/projects/195/views/4?filterQuery=status%3A%22Tracked+for+code+freeze%22%2C%22Exception+Required%22+has%3Apod-pr` + +#### KEP statuses for Comms purposes + +These are the possible values of Blog Status in the enhancement board explained: + +- `Opted-in` - the owner replied to your comment on the issue, expressing their interest in having a blog about their KEP +- `Opted-out` - the owner replied to your comment on the issue, saying that there won't be a blog - this can be for various reason that we don't ask as we don't necessarily need to know why! +- `Placeholder created` - the owner created a placeholder PR and linked it in the KEP - in this last case, "Placeholder created" we also fill the field "pod-PR" with the GitHub link. (see picture #2) +- `Opted out (no answer)` value to track the lack of communication around the blog opt-in. Only after deadline +- `Cancelled` - when the KEP is cancelled or the author doesn't want to proceed with the blog anymore, it can be used to track blogs that fell off the release cycle too due to deadlines being missed. +- `Ready for review` - when the content of the blog is ready for review, communicate with SIG-docs-(blog) to get the content review started and with the SIGs involved to get the tech review needed. +- `Merged` - when the blog is merged and ready to be scheduled. +- `Scheduled` - when the blog is scheduled for publication on the Kubernetes blog. +- `Published` - when the blog is published, it can be used to track the status of the blog post-release. + +#### I was asked to rebase my blogs, help me! + +In case you are asked to rebase (on main) and squash: + +```bash +# > sync your fork with the latest "main" of the upstream via the GitHub UI < + +git clone # your fork + +# rebase on main +git checkout # your fork's branch +git remote add upstream https://github.com/kubernetes/website.git +git fetch upstream +git rebase upstream/main +git push -f + +# squash all commits +git rebase -i upstream/main +# change all to "squash" except the first one to "pick" as example: +# pick 123abc Commit message 1 +# squash 456def Commit message 2 +# :wq +# edit commit message (dd to delete line, i to insert, :wq to save and exit) +# wait for rebase +git push -f +``` + _Yes, you can do everything in a single rebase command, but if you are not used to how git works, doing it in two steps helps avoiding mistakes_ \ No newline at end of file diff --git a/release-team/role-handbooks/docs/OWNERS b/release-team/role-handbooks/docs/OWNERS index b210a939dfc..afb1ea4f347 100644 --- a/release-team/role-handbooks/docs/OWNERS +++ b/release-team/role-handbooks/docs/OWNERS @@ -1,6 +1,6 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -approvers: - - docs-subteam-approvers -reviewers: - - docs-subteam-approvers +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - docs-subteam-approvers +reviewers: + - docs-subteam-approvers diff --git a/release-team/role-handbooks/docs/README.md b/release-team/role-handbooks/docs/README.md index dfc3368a314..00d3682f8f4 100644 --- a/release-team/role-handbooks/docs/README.md +++ b/release-team/role-handbooks/docs/README.md @@ -1,211 +1,211 @@ -# Kubernetes Docs Role Handbook -- [Overview](#overview) - - [Common Terms](#common-terms) -- [Tasks and Responsibilities](#tasks-and-responsibilities) -- [Prerequisites for Docs Lead and Shadows](#prerequisites-for-docs-lead-and-shadows) - - [General Requirements](#general-requirements) - - [Time Requirements](#time-requirements) - - [Prerequisites for Docs Leads](#prerequisites-for-docs-leads) - - [Prerequisites for Shadows](#prerequisites-for-shadows) - - [Machine and GitHub Setup](#machine-and-github-setup) - - [Set up krel](#set-up-krel) - - [Fork the kubernetes repositories](#fork-the-kubernetes-repositories) -- [Release Timeline](#release-timeline) -- [Tools](#tools) -- [Debugging Tips](#debugging-tips) -- [Release Notes File Structure](#release-notes-file-structure) -- [TODOs](#todos) - -## Overview - -This document covers the responsibilities, time commitments, and timeline for Docs Leads shepherding docs releases for Kubernetes, including the generation and fine-tuning of Release Notes. Docs Lead Shadows should also read through this document and understand the launch processes so they can do it in the future. - -The Docs Lead will be responsible for introducing shadows to the team and the release notes subcommand in [krel](https://github.com/kubernetes/release/tree/master/docs/krel). Shadows should expect to perform this task at least once themselves. The Docs Lead should indicate pain points and known issues to the shadows (if there are any) and work on strategies for overcoming them to avoid their coalescence during the later weeks. - -If there are potential fixes to the issues indicated and team members are keen, fixes and automation of the process are encouraged but not required. - -**Please refer to the Docs [Release Timeline](/release-team/role-handbooks/docs/Release-Timeline.md) for an exhaustive list of the responsibilities of the Docs Team.** - -### Common Terms - -| Variable | Explanation | Example | -|----------------------|---------------------------------------------|----------------------------------------------------------| -| [current release] | Active Kubernetes release | 1.27 | -| [future release] | Release that the team is actively composing | 1.28 | -| [integration branch] | A PR [WIP] merging dev branch into main | [Official 1.27 Release Docs dev branch](https://github.com/kubernetes/website/pull/39124) | - -## Tasks and Responsibilities - -The Docs Lead is responsible for working with the Release Team to coordinate documentation updates for the next Kubernetes release, including the generation of Release Notes. - -### Responsibilities Overview - -* Identifying new Kubernetes features and enhancements ([Kubernetes Enhancement Proposals, also referred to as KEPs](https://www.kubernetes.dev/resources/keps/)) that require new documentation and tracking them using the Enhancements Tracking sheet created for the release (e.g. [Example Enhancements Tracking sheet from the Kubernetes 1.26 Release](https://github.com/orgs/kubernetes/projects/117/views/3)) -* Creating a dev branch used by contributors to target documentation updates for the upcoming release -* Generating, reviewing, and fixing Release Notes periodically throughout the release cycle -* Offering guidance to contributors about how to contribute new feature and enhancements documentation and working with contributors to modify existing docs to accurately represent any upcoming changes -* Providing weekly updates to the Release Team about the current state of release-bound docs -* Mentoring Docs Lead Shadows throughout this process and empowering them with the knowledge needed to be future Docs Leads -* Working with SIG Docs to review documentation PRs according to the website [Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/) to ensure quality -* Working with SIG owners to ensure documentation is reviewed for technical accuracy -* Working with Release Comms to review the Release Blog -* Approving reviewed documentation to ensure its inclusion in the upcoming release -* Migrating the old website [version] documentation and updating it with the new release -* Communicating changes with all of the localization branches in order to stay synced across repositories -* Updating the [Docs Lead and Shadow Handbook](release-team/role-handbooks/docs/README.md) and [Release Team Onboarding Guide](/release-team/release-team-onboarding.md) instructions following each release - -## Prerequisites for Docs Lead and Shadows - -### General Requirements - -Before continuing on to the Docs specific requirements listed below, please review the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md). - -### Time Requirements - -Releases are usually 15 weeks long. In general, there is less work in the first few weeks of the release cycle, more work in the middle as KEP owners need to be reminded to contribute documentation updates, and a lot of work in the last few weeks of the release cycle as documentation must be reviewed and approved prior to release day. The largest time commitment for the Docs Lead is the release day itself, because on that day the Docs Lead must follow the process to merge all documentation updates and unfreeze the website. - -General time requirements for leads and shadows are: - -- ½ hour to 2 hours a day, reviewing incoming enhancements, tracking documentation PRs, and monitoring Slack -- Between 1 and 2 hours a week to attend the majority of Release Team (weekly) and Burndown meetings (daily during Code Freeze), subject to time zone appropriateness -- Up to 1 hour weekly to attend [SIG Docs meetings](https://github.com/kubernetes/community/tree/master/sig-docs#meetings) for status reports -- Create [known issues issue](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/release-notes/known-issues-bucket.md) in kubernetes/kubernetes to capture known issues for the release -- Send [an email to SIG-leads](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/release-notes/sig-leads-email.md) to ensure major changes for their SIGs are accurately reflected in the release notes -- Send a slack message to the sig channels to ensure major changes for the SIGs are accurately reflected in the release notes - -#### Onboarding Session (week 1) ~1 hour - -In the first week of the release cycle, the Docs Lead will organize an onboarding session with the shadows to go over general responsibilities and expectations. - -#### Early and mid release cycle (weeks 1-8) ~1-5 hours/week - -In the first 8 weeks of the cycle, the Docs team must attend weekly release meetings and run the [release-notes subcommand of krel](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md) for every `alpha`, `beta` and `rc` to create an early draft of the release notes. This ensures that the overall quality of the release notes can be verified from the beginning of the release cycle. - -Weekly branch syncs must be run to ensure consistency from `main` to `dev-[future-release]`. The Docs team is responsible for the communication of documentation-related deadlines to KEP owners and SIG leads, as well as the tracking of documentation and enforcement of deadlines. - -All members of the Docs subteam should participate in PR reviews as time allows. - -#### Late release cycle (weeks 9-12+) ~4-10 hours/week - -This period has an increase in release team meetings each week and there is also significantly more work to do to ensure the release notes and documentation are in good working order for the release. - -The `release-notes` subcommand of `krel` must continue to be run on the release branch (for `alpha`, `beta` and `rc` releases) in order to pull in any outstanding PRs that are merged between the beginning of code freeze and the release. - -The Docs Lead will sync with the Comms team as well as SIG Docs and SIG Cluster-lifecycle, as well as begin prepping the website for the release day. On release day, the Docs Lead merges the documentation, publishes the release blog, and updates the website. - -**During the last weeks of the release, shadows should expect to spend at least 5 hours and leads at least 10 hours finalizing the launch.** - -### Prerequisites for Docs Leads - -In addition to the time requirements above, a Docs Lead must: - -- Familiarity with Github -- Have the ability to add a milestone to issues, so must be a member of the [website milestone maintainers](https://github.com/orgs/kubernetes/teams/website-milestone-maintainers/). Access can be requested by creating a [PR](https://github.com/kubernetes/org/pull/2235) against `kubernetes/org` repo. -> Note: access to see [website milestone maintainers](https://github.com/orgs/kubernetes/teams/website-milestone-maintainers/) is restricted to Kubernetes GitHub org members -- Have the ability to `/approve` PRs. Access can be requested by creating a [PR](https://github.com/kubernetes/website/pull/20351) against `main` branch. -- Take the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) training course - -### Prerequisites for Shadows - -Docs Lead Shadows are people who are preparing to be a Docs Lead in the future. In addition to the time requirements above, shadows must: - -- Strong written and verbal communications skills -- A working knowledge of Kubernetes concepts -- Familiarity with Git and command line tools. -- Project management experience is helpful but not required. -- Have signed the [contributor CLA](https://github.com/kubernetes/community/blob/master/CLA.md) for Kubernetes. -- Be invested in becoming an org member within the release cycle. This can often be achieved during the release cycle with sponsorship from a role lead. See the [Release Team onboarding guide](/release-team/release-team-onboarding.md) for more details. -- General knowledge of our SIG Docs [areas of responsibility](https://github.com/kubernetes/community/tree/master/sig-docs#subprojects). -- Experience with the general process involved with [contributing](https://kubernetes.io/docs/contribute/start/) to Kubernetes website. -- Be a [milestone maintainer](https://github.com/orgs/kubernetes/teams/website-milestone-maintainers/) in order to have the ability to add a milestone to an issue. Access can be requested by creating a [PR](https://github.com/kubernetes/org/pull/2235) against `kubernetes/org` repo. - -### Machine and GitHub Setup - -#### Setup krel - -[Install Go](https://golang.org/doc/install) in your machine and follow the [instructions to build the release tools](https://github.com/kubernetes/release/tree/master/docs/krel#installation) in your machine. Check the system requirements in the krel documentation. - -#### Fork the kubernetes repositories - -Fork the following repositories to your GitHub account, and clone them using SSH: - - - [`kubernetes/sig-release`](https://github.com/kubernetes/sig-release): This is where you will push regular PRs to keep the Release Notes draft up to date. - - [`kubernetes-sigs/release-notes`](https://github.com/kubernetes-sigs/release-notes): This repo has the [release notes website](https://relnotes.k8s.io) sources - -## Release Timeline - -Reference the Docs [Release Timeline](Release-Timeline.md) for key dates and responsibilities during the release cycle and the Kubernetes Release Information page for the specific release (e.g. [Kubernetes 1.28 Release Information page](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.28/README.md) for information regarding the current release cycle including important dates, Release Team contact information, tracking spreadsheets, and more. - -## Tools -- [krel](https://github.com/kubernetes/release/tree/master/docs/krel) The Kubernetes Release Toolbox *(note: always use the latest version of krel to ensure you have the latest fixes/patches)* -- [The krel `release-notes` subcommand](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md) -- [The old release notes tool](https://github.com/kubernetes/release/tree/master/cmd/release-notes) -- [Release notes website](https://relnotes.k8s.io) *(note: release notes website is automatically updated)* -- [go-modiff](https://github.com/saschagrunert/go-modiff) -- [Hackmd](https://hackmd.io/) -- [LWKD](http://lwkd.info) *(note: contributing to LWKD is not a requirement as part of the Docs shadow role, but might be of interest to shadows.)* -- [Kubernetes Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/) - -## Debugging Tips - -If you are having trouble running the `krel` tool, here are some common issues and solutions: - -1. Try running with `--log-level=debug` or `--log-level=trace` to get more information about what is going wrong. -2. A temp directory gets created at `/var/folders/7t/273pt80d51l70mj4rxznq_lm0000gn/T/<k8s-hash>` when the `krel` tool is called. -If this data is stale, you can try clearing to remove old data with `rm -rf /var/folders/7t/273pt80d51l70mj4rxznq_lm0000gn/T/k8s` - -Checkout the documentation for the [krel `release-notes` subcommand](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md). - -## Release Notes File Structure - -All the release notes for a release are stored under the [releases](https://github.com/kubernetes/sig-release/tree/master/releases) -directory in the sig-release repo. - -For each release there is a JSON and markdown file that contains the collected release notes across path releases. For example, -the 1.30 release [markdown file](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.30/release-notes/release-notes-draft.md) -contains all the correctly formatted release notes text for the 1.30 release. The [JSON file](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.30/release-notes/release-notes-draft.json) -contains the release notes metadata that is used to generate the markdown file. - -When a Docs team member runs the `krel release-notes` command, a new session is created so that you can pause and resume -the editing process. For example the 1.30 release notes sessions are stored in the [sessions](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.30/release-notes/sessions) -directory in the sig-release repo under `release-1.30`. - -If a Docs team member finds a mistake in the release notes, the edit will be saved as a map yaml file in the [maps](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.30/release-notes/maps) -directory. These maps are used to generate the markdown file and JSON file with the correctly edited release note. - -## TODOs - -As a Docs shadow, if you are interested in contributing to the improvement of the release notes process, consider the following -areas of improvement: - -#### Github Workflow to Detect Common Release Note Issues - -- YAML linter to block invalid yaml merging in from manually edited release notes. If suggestions are commited that have -invalid yaml, the krel tool will not be able to be run on the next release until the error is fixed in a separate pr. -See [example PR](https://github.com/kubernetes/sig-release/pull/2446) from the 1.30 release that unblocked the `v1.30.0-alpha.3` release. -- Spell check based on dictionary of common Kubernetes terms. -- Check for correct punctuation in release notes. -- Check for incorrect tense in release notes. -- Look into using [Vale.sh](https://vale.sh/) or the [Valve GitHub action](https://github.com/errata-ai/vale) to add editorial checks to the release notes PR - -Some initial work has been done in [this GitHub workflow](https://github.com/npolshakova/sig-release/blob/npolshak/workflow/.github/workflows/release-notes-checker.yaml) to introduce checks for common issues in release notes. -Here is an [example run of the workflow](https://github.com/rudrakshkarpe/sig-release/actions/runs/8073807523/job/22058097731) for the 1.30.0-alpha2 release. This is a good starting point for further improvements. - -#### Release Notes tool to automatically process language - -If any team members have NLP experience, implement functionality in release-notes tool to automatically process language in generated release notes file - -Goals: - -- Generate uniform style across release notes (ie. past tense, formatting). -- Decrease copy editing time. - -#### Release Notes Machine Learning Classifier - -The idea is to build a continuous release notes improvement process to train a machine learning model to classify. -release notes as good or bad. The input for the model should be created continuously during the whole release cycle. -by Release Notes Team of SIG Release. See the [issue](https://github.com/kubernetes/enhancements/issues/1833) for more details. - -#### Krel tool improvements - -- Update krel tool to show progress of how many PRs to review are left and other bugs. +# Kubernetes Docs Role Handbook +- [Overview](#overview) + - [Common Terms](#common-terms) +- [Tasks and Responsibilities](#tasks-and-responsibilities) +- [Prerequisites for Docs Lead and Shadows](#prerequisites-for-docs-lead-and-shadows) + - [General Requirements](#general-requirements) + - [Time Requirements](#time-requirements) + - [Prerequisites for Docs Leads](#prerequisites-for-docs-leads) + - [Prerequisites for Shadows](#prerequisites-for-shadows) + - [Machine and GitHub Setup](#machine-and-github-setup) + - [Set up krel](#set-up-krel) + - [Fork the kubernetes repositories](#fork-the-kubernetes-repositories) +- [Release Timeline](#release-timeline) +- [Tools](#tools) +- [Debugging Tips](#debugging-tips) +- [Release Notes File Structure](#release-notes-file-structure) +- [TODOs](#todos) + +## Overview + +This document covers the responsibilities, time commitments, and timeline for Docs Leads shepherding docs releases for Kubernetes, including the generation and fine-tuning of Release Notes. Docs Lead Shadows should also read through this document and understand the launch processes so they can do it in the future. + +The Docs Lead will be responsible for introducing shadows to the team and the release notes subcommand in [krel](https://github.com/kubernetes/release/tree/master/docs/krel). Shadows should expect to perform this task at least once themselves. The Docs Lead should indicate pain points and known issues to the shadows (if there are any) and work on strategies for overcoming them to avoid their coalescence during the later weeks. + +If there are potential fixes to the issues indicated and team members are keen, fixes and automation of the process are encouraged but not required. + +**Please refer to the Docs [Release Timeline](/release-team/role-handbooks/docs/Release-Timeline.md) for an exhaustive list of the responsibilities of the Docs Team.** + +### Common Terms + +| Variable | Explanation | Example | +|----------------------|---------------------------------------------|----------------------------------------------------------| +| [current release] | Active Kubernetes release | 1.27 | +| [future release] | Release that the team is actively composing | 1.28 | +| [integration branch] | A PR [WIP] merging dev branch into main | [Official 1.27 Release Docs dev branch](https://github.com/kubernetes/website/pull/39124) | + +## Tasks and Responsibilities + +The Docs Lead is responsible for working with the Release Team to coordinate documentation updates for the next Kubernetes release, including the generation of Release Notes. + +### Responsibilities Overview + +* Identifying new Kubernetes features and enhancements ([Kubernetes Enhancement Proposals, also referred to as KEPs](https://www.kubernetes.dev/resources/keps/)) that require new documentation and tracking them using the Enhancements Tracking sheet created for the release (e.g. [Example Enhancements Tracking sheet from the Kubernetes 1.26 Release](https://github.com/orgs/kubernetes/projects/117/views/3)) +* Creating a dev branch used by contributors to target documentation updates for the upcoming release +* Generating, reviewing, and fixing Release Notes periodically throughout the release cycle +* Offering guidance to contributors about how to contribute new feature and enhancements documentation and working with contributors to modify existing docs to accurately represent any upcoming changes +* Providing weekly updates to the Release Team about the current state of release-bound docs +* Mentoring Docs Lead Shadows throughout this process and empowering them with the knowledge needed to be future Docs Leads +* Working with SIG Docs to review documentation PRs according to the website [Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/) to ensure quality +* Working with SIG owners to ensure documentation is reviewed for technical accuracy +* Working with Release Comms to review the Release Blog +* Approving reviewed documentation to ensure its inclusion in the upcoming release +* Migrating the old website [version] documentation and updating it with the new release +* Communicating changes with all of the localization branches in order to stay synced across repositories +* Updating the [Docs Lead and Shadow Handbook](release-team/role-handbooks/docs/README.md) and [Release Team Onboarding Guide](/release-team/release-team-onboarding.md) instructions following each release + +## Prerequisites for Docs Lead and Shadows + +### General Requirements + +Before continuing on to the Docs specific requirements listed below, please review the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md). + +### Time Requirements + +Releases are usually 15 weeks long. In general, there is less work in the first few weeks of the release cycle, more work in the middle as KEP owners need to be reminded to contribute documentation updates, and a lot of work in the last few weeks of the release cycle as documentation must be reviewed and approved prior to release day. The largest time commitment for the Docs Lead is the release day itself, because on that day the Docs Lead must follow the process to merge all documentation updates and unfreeze the website. + +General time requirements for leads and shadows are: + +- ½ hour to 2 hours a day, reviewing incoming enhancements, tracking documentation PRs, and monitoring Slack +- Between 1 and 2 hours a week to attend the majority of Release Team (weekly) and Burndown meetings (daily during Code Freeze), subject to time zone appropriateness +- Up to 1 hour weekly to attend [SIG Docs meetings](https://github.com/kubernetes/community/tree/master/sig-docs#meetings) for status reports +- Create [known issues issue](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/release-notes/known-issues-bucket.md) in kubernetes/kubernetes to capture known issues for the release +- Send [an email to SIG-leads](https://github.com/kubernetes/sig-release/blob/master/release-team/role-handbooks/release-notes/sig-leads-email.md) to ensure major changes for their SIGs are accurately reflected in the release notes +- Send a slack message to the sig channels to ensure major changes for the SIGs are accurately reflected in the release notes + +#### Onboarding Session (week 1) ~1 hour + +In the first week of the release cycle, the Docs Lead will organize an onboarding session with the shadows to go over general responsibilities and expectations. + +#### Early and mid release cycle (weeks 1-8) ~1-5 hours/week + +In the first 8 weeks of the cycle, the Docs team must attend weekly release meetings and run the [release-notes subcommand of krel](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md) for every `alpha`, `beta` and `rc` to create an early draft of the release notes. This ensures that the overall quality of the release notes can be verified from the beginning of the release cycle. + +Weekly branch syncs must be run to ensure consistency from `main` to `dev-[future-release]`. The Docs team is responsible for the communication of documentation-related deadlines to KEP owners and SIG leads, as well as the tracking of documentation and enforcement of deadlines. + +All members of the Docs subteam should participate in PR reviews as time allows. + +#### Late release cycle (weeks 9-12+) ~4-10 hours/week + +This period has an increase in release team meetings each week and there is also significantly more work to do to ensure the release notes and documentation are in good working order for the release. + +The `release-notes` subcommand of `krel` must continue to be run on the release branch (for `alpha`, `beta` and `rc` releases) in order to pull in any outstanding PRs that are merged between the beginning of code freeze and the release. + +The Docs Lead will sync with the Comms team as well as SIG Docs and SIG Cluster-lifecycle, as well as begin prepping the website for the release day. On release day, the Docs Lead merges the documentation, publishes the release blog, and updates the website. + +**During the last weeks of the release, shadows should expect to spend at least 5 hours and leads at least 10 hours finalizing the launch.** + +### Prerequisites for Docs Leads + +In addition to the time requirements above, a Docs Lead must: + +- Familiarity with Github +- Have the ability to add a milestone to issues, so must be a member of the [website milestone maintainers](https://github.com/orgs/kubernetes/teams/website-milestone-maintainers/). Access can be requested by creating a [PR](https://github.com/kubernetes/org/pull/2235) against `kubernetes/org` repo. +> Note: access to see [website milestone maintainers](https://github.com/orgs/kubernetes/teams/website-milestone-maintainers/) is restricted to Kubernetes GitHub org members +- Have the ability to `/approve` PRs. Access can be requested by creating a [PR](https://github.com/kubernetes/website/pull/20351) against `main` branch. +- Take the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) training course + +### Prerequisites for Shadows + +Docs Lead Shadows are people who are preparing to be a Docs Lead in the future. In addition to the time requirements above, shadows must: + +- Strong written and verbal communications skills +- A working knowledge of Kubernetes concepts +- Familiarity with Git and command line tools. +- Project management experience is helpful but not required. +- Have signed the [contributor CLA](https://github.com/kubernetes/community/blob/master/CLA.md) for Kubernetes. +- Be invested in becoming an org member within the release cycle. This can often be achieved during the release cycle with sponsorship from a role lead. See the [Release Team onboarding guide](/release-team/release-team-onboarding.md) for more details. +- General knowledge of our SIG Docs [areas of responsibility](https://github.com/kubernetes/community/tree/master/sig-docs#subprojects). +- Experience with the general process involved with [contributing](https://kubernetes.io/docs/contribute/start/) to Kubernetes website. +- Be a [milestone maintainer](https://github.com/orgs/kubernetes/teams/website-milestone-maintainers/) in order to have the ability to add a milestone to an issue. Access can be requested by creating a [PR](https://github.com/kubernetes/org/pull/2235) against `kubernetes/org` repo. + +### Machine and GitHub Setup + +#### Setup krel + +[Install Go](https://golang.org/doc/install) in your machine and follow the [instructions to build the release tools](https://github.com/kubernetes/release/tree/master/docs/krel#installation) in your machine. Check the system requirements in the krel documentation. + +#### Fork the kubernetes repositories + +Fork the following repositories to your GitHub account, and clone them using SSH: + + - [`kubernetes/sig-release`](https://github.com/kubernetes/sig-release): This is where you will push regular PRs to keep the Release Notes draft up to date. + - [`kubernetes-sigs/release-notes`](https://github.com/kubernetes-sigs/release-notes): This repo has the [release notes website](https://relnotes.k8s.io) sources + +## Release Timeline + +Reference the Docs [Release Timeline](Release-Timeline.md) for key dates and responsibilities during the release cycle and the Kubernetes Release Information page for the specific release (e.g. [Kubernetes 1.28 Release Information page](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.28/README.md) for information regarding the current release cycle including important dates, Release Team contact information, tracking spreadsheets, and more. + +## Tools +- [krel](https://github.com/kubernetes/release/tree/master/docs/krel) The Kubernetes Release Toolbox *(note: always use the latest version of krel to ensure you have the latest fixes/patches)* +- [The krel `release-notes` subcommand](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md) +- [The old release notes tool](https://github.com/kubernetes/release/tree/master/cmd/release-notes) +- [Release notes website](https://relnotes.k8s.io) *(note: release notes website is automatically updated)* +- [go-modiff](https://github.com/saschagrunert/go-modiff) +- [Hackmd](https://hackmd.io/) +- [LWKD](http://lwkd.info) *(note: contributing to LWKD is not a requirement as part of the Docs shadow role, but might be of interest to shadows.)* +- [Kubernetes Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/) + +## Debugging Tips + +If you are having trouble running the `krel` tool, here are some common issues and solutions: + +1. Try running with `--log-level=debug` or `--log-level=trace` to get more information about what is going wrong. +2. A temp directory gets created at `/var/folders/7t/273pt80d51l70mj4rxznq_lm0000gn/T/<k8s-hash>` when the `krel` tool is called. +If this data is stale, you can try clearing to remove old data with `rm -rf /var/folders/7t/273pt80d51l70mj4rxznq_lm0000gn/T/k8s` + +Checkout the documentation for the [krel `release-notes` subcommand](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md). + +## Release Notes File Structure + +All the release notes for a release are stored under the [releases](https://github.com/kubernetes/sig-release/tree/master/releases) +directory in the sig-release repo. + +For each release there is a JSON and markdown file that contains the collected release notes across path releases. For example, +the 1.30 release [markdown file](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.30/release-notes/release-notes-draft.md) +contains all the correctly formatted release notes text for the 1.30 release. The [JSON file](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.30/release-notes/release-notes-draft.json) +contains the release notes metadata that is used to generate the markdown file. + +When a Docs team member runs the `krel release-notes` command, a new session is created so that you can pause and resume +the editing process. For example the 1.30 release notes sessions are stored in the [sessions](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.30/release-notes/sessions) +directory in the sig-release repo under `release-1.30`. + +If a Docs team member finds a mistake in the release notes, the edit will be saved as a map yaml file in the [maps](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.30/release-notes/maps) +directory. These maps are used to generate the markdown file and JSON file with the correctly edited release note. + +## TODOs + +As a Docs shadow, if you are interested in contributing to the improvement of the release notes process, consider the following +areas of improvement: + +#### Github Workflow to Detect Common Release Note Issues + +- YAML linter to block invalid yaml merging in from manually edited release notes. If suggestions are commited that have +invalid yaml, the krel tool will not be able to be run on the next release until the error is fixed in a separate pr. +See [example PR](https://github.com/kubernetes/sig-release/pull/2446) from the 1.30 release that unblocked the `v1.30.0-alpha.3` release. +- Spell check based on dictionary of common Kubernetes terms. +- Check for correct punctuation in release notes. +- Check for incorrect tense in release notes. +- Look into using [Vale.sh](https://vale.sh/) or the [Valve GitHub action](https://github.com/errata-ai/vale) to add editorial checks to the release notes PR + +Some initial work has been done in [this GitHub workflow](https://github.com/npolshakova/sig-release/blob/npolshak/workflow/.github/workflows/release-notes-checker.yaml) to introduce checks for common issues in release notes. +Here is an [example run of the workflow](https://github.com/rudrakshkarpe/sig-release/actions/runs/8073807523/job/22058097731) for the 1.30.0-alpha2 release. This is a good starting point for further improvements. + +#### Release Notes tool to automatically process language + +If any team members have NLP experience, implement functionality in release-notes tool to automatically process language in generated release notes file + +Goals: + +- Generate uniform style across release notes (ie. past tense, formatting). +- Decrease copy editing time. + +#### Release Notes Machine Learning Classifier + +The idea is to build a continuous release notes improvement process to train a machine learning model to classify. +release notes as good or bad. The input for the model should be created continuously during the whole release cycle. +by Release Notes Team of SIG Release. See the [issue](https://github.com/kubernetes/enhancements/issues/1833) for more details. + +#### Krel tool improvements + +- Update krel tool to show progress of how many PRs to review are left and other bugs. diff --git a/release-team/role-handbooks/docs/Release-Timeline.md b/release-team/role-handbooks/docs/Release-Timeline.md index ea351665091..a2a0d11675c 100644 --- a/release-team/role-handbooks/docs/Release-Timeline.md +++ b/release-team/role-handbooks/docs/Release-Timeline.md @@ -1,1015 +1,1015 @@ -# Release Timeline - -- [Release Timeline](#release-timeline) - - [Overview](#overview) - - [Early Steps (Weeks 1-2)](#early-steps-weeks-1-2) - - [Connect with the release team through Slack and Google Groups](#connect-with-the-release-team-through-slack-and-google-groups) - - [Introduce yourself to docs localization teams](#introduce-yourself-to-docs-localization-teams) - - [Attend meetings and provide updates](#attend-meetings-and-provide-updates) - - [Read up on the release team](#read-up-on-the-release-team) - - [Select Shadows](#select-shadows) - - [Contact volunteers](#contact-volunteers) - - [Meet with Shadows](#meet-with-shadows) - - [Define schedule](#define-schedule) - - [Ensure access is set up](#ensure-access-is-set-up) - - [Update the website configuration ahead of the release](#update-the-website-configuration-ahead-of-the-release) - - [Middle Steps (Weeks 3-8)](#middle-steps-weeks-3-8) - - [Track PRs](#track-prs) - - [Communicate major deadlines](#communicate-major-deadlines) - - [Begin Generating Release Notes](#begin-generating-release-notes) - - [Set up the Tools and Generate the Release Notes](#set-up-the-tools-and-generate-the-release-notes) - - [Periodically review and fix new release notes](#periodically-review-and-fix-new-release-notes) - - [Maintain Known Issues](#maintain-known-issues) - - [Ensure Release Highlights are Reflected in the Notes](#ensure-release-highlights-are-reflected-in-the-notes) - - [Get feedback from SIG Leads](#get-feedback-from-sig-leads) - - [Reach out to Enhancement Owners](#reach-out-to-enhancement-owners) - - [Before the Open Placeholder PR Deadline](#before-the-open-placeholder-pr-deadline) - - [Before the PRs Ready for Review Deadline](#before-the-prs-ready-for-review-deadline) - - [Before the Docs Freeze Deadline](#before-the-docs-freeze-deadline) - - [Week of Docs Freeze](#week-of-docs-freeze) - - [After Docs Freeze](#after-docs-freeze) - - [Maintain the current and upcoming `dev` branch](#maintain-the-current-and-upcoming-dev-branch) - - [⚠️ Periodically merge `main` into `dev-[future release]`](#️-periodically-merge-main-into-dev-future-release) - - [Monitor PRs](#monitor-prs) - - [Enforce deadlines](#enforce-deadlines) - - [Review PRs](#review-prs) - - [Style Guide Checklist (High to Low Level)](#style-guide-checklist-high-to-low-level) - - [Nominate a Docs Lead for the Next Release](#nominate-a-docs-lead-for-the-next-release) - - [Late-Middle Steps (Weeks 7-8) - Sync with Comms team on the release blog post](#late-middle-steps-weeks-7-8---sync-with-comms-team-on-the-release-blog-post) - - [Late Steps (Weeks 9-11) - Prep for the release](#late-steps-weeks-9-11---prep-for-the-release) - - [Touch base with SIG Docs](#touch-base-with-sig-docs) - - [Touch base with SIG Cluster Lifecycle (kubeadm)](#touch-base-with-sig-cluster-lifecycle-kubeadm) - - [Clean up and edit the final Release Notes](#clean-up-and-edit-the-final-release-notes) - - [Curate the External Dependencies section](#curate-the-external-dependencies-section) - - [Update Releases Page (the week before the release)](#update-releases-page-the-week-before-the-release) - - [Release Week (Week 12)](#release-week-week-12) - - [Update the site configuration files for previous releases](#update-the-site-configuration-files-for-previous-releases) - - [Update the site configuration files for future release](#update-the-site-configuration-files-for-future-release) - - [Inform localization teams](#inform-localization-teams) - - [Day before Release Day](#day-before-release-day) - - [Request for temporary write access to the website repo](#request-for-temporary-write-access-to-the-website-repo) - - [Freeze Kubernetes website](#freeze-kubernetes-website) - - [Create the release branch](#create-the-release-branch) - - [Update Netlify](#update-netlify) - - [Merge `main`](#merge-main) - - [Get approvals for open PRs](#get-approvals-for-open-prs) - - [Review milestone](#review-milestone) - - [Release Day](#release-day) - - [Publish final Release Notes](#publish-final-release-notes) - - [Merge the integration branch](#merge-the-integration-branch) - - [Publish the release blog post](#publish-the-release-blog-post) - - [Create release with tag](#create-release-with-tag) - - [Unfreeze Kubernetes website](#unfreeze-kubernetes-website) - - [Close the \[future release\] milestone](#close-the-future-release-milestone) - - [Same day or Day After Release - Verification, Cleanup, and Handoff](#same-day-or-day-after-release---verification-cleanup-and-handoff) - - [Review Docs Process and Update Documentation](#review-docs-process-and-update-documentation) - - [Hold a docs-only retro with Sig Docs](#hold-a-docs-only-retro-with-sig-docs) - - [Day after Release - Prepare the Next Docs Lead for Success](#day-after-release---prepare-the-next-docs-lead-for-success) - - [Create the dev-future-FUTURE branch](#create-the-dev-future-future-branch) - - [Modify prow config file](#modify-prow-config-file) - - [Create milestone](#create-milestone) - - [Update Netlify](#update-netlify-1) - - [Update Slack](#update-slack) - - [Reassign issues](#reassign-issues) - - [Clean up access](#clean-up-access) - - [Celebrate!](#celebrate) - ---- - -## Overview - -For each release, the schedule with deliverables is added to the release directory. This section talks about specific Docs Lead deliverables for each milestone in the release timeline. - -Read the release timeline and **make sure the timeline includes deadlines for documentation work**, e.g: [1.21 timeline](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.21#timeline): - -- Docs deadline - Reminder for *Open placeholder PRs* in the respective KEPs (~3.5 weeks before release) -- Docs deadline - Reminder for *PRs ready for review* in the respective KEPs (~2 weeks before release) -- Docs complete - All PRs reviewed and ready to merge (~1 week before release) - -If these deadlines aren't listed in the release timeline, request that the Release Lead add them. -Define deadlines clearly e.g. End of Day (EOD) PST is not clear if EOD is 5:00 PM or 11:59 AM PST. - -Responsibilities of the Docs Team: -- Same as [Docs Lead responsibilities](../docs#docs-lead-responsibilities) -- Track Doc PRs for KEPs in the [website](https://github.com/kubernetes/website) project, plus all Doc PRs for the dev-[future release] branch that may include general updates without a KEP. -- By default, all opted-in KEPs will `Need Docs`. Enhancement owners/contributors should confirm the enhancement does not need new or updated documentation. - -> Note: The blog-PR is tracked by the Release Comms Team. - -> Note: The kubernetes/website repo changed from using a `master` branch to a `main` branch in 2021. -> Be aware that several linked, example PRs uses the `master` branch. -> For the end-of-year release, KubeCon NA and the US Thanksgiving holiday can be additional impediments to Docs-related deadlines. Please communicate to enhancement owners/contributors about upcoming deadlines earlier and more frequently. - -## Early Steps (Weeks 1-2) -These steps take approximately one hour to complete, and should be completed immediately. - -### Connect with the release team through Slack and Google Groups - -- Join the Kubernetes [#sig-release](https://kubernetes.slack.com/messages/sig-release) Slack channel. Introduce yourself as the Docs Lead for the [future release]. - -- Send a Slack direct message to the [future release] lead to introduce yourself. - -- ⚠️ Join these Google groups: - - [kubernetes-sig-release](https://groups.google.com/forum/#!forum/kubernetes-sig-release) - - [kubernetes-sig-docs](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) - - [kubernetes-dev](https://groups.google.com/a/kubernetes.io/g/dev) - - [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) - - ⚠️ List of members for this group is managed in git. Please create a PR against `kuberenetes/sig-release` repo to include your email under `release-team` group in [`sig-release/group.yaml`](https://github.com/kubernetes/k8s.io/blob/main/groups/sig-release/groups.yaml) - - [kubernetes-release-team-shadows](https://groups.google.com/a/kubernetes.io/g/release-team-shadows) - - ⚠️ List of members for this group is managed in git. Please create a PR against `kuberenetes/sig-release` repo to include your email under `release-team-shadows` group in [`sig-release/group.yaml`](https://github.com/kubernetes/k8s.io/blob/main/groups/sig-release/groups.yaml) - -Early in the release cycle, the Enhancements Lead opens a Github Project, e.g: [the 1.26 Enhancement Tracking](https://github.com/orgs/kubernetes/projects/98/views/1). Later in the release this spreadsheet will contain important information for docs, check the Docs view [here](https://github.com/orgs/kubernetes/projects/98/views/6): - -- Which enhancements we'll be tracking for this release -- Feature owners (and their GitHub IDs) -- Links to docs PRs opened for each enhancement - Docs PR -- Docs Required? - By default "Needs Docs" -- PR Doc Status (No PR, Draft PR, Ready-for-Review PR, Merged PR) - -> Note: Until [1.25](https://tinyurl.com/k8s125-enhancements) was used tracking spreadsheet, e.g: [the 1.21 release spreadsheet](http://bit.ly/k8s121-enhancements). - -⚠️ Tasks to DO: -- [ ] Make sure your team is included in the "current" release team file, e.g: [release 1.21](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.21/release-team.md). **If not submit a PR see a sample for 1.21 [here](https://github.com/kubernetes/sig-release/pull/1432)**. -- [ ] Please create a PR against kubernetes/sig-release repo to include the Team Docs email of this release under release-team group in [sig-release/group.yaml](https://github.com/kubernetes/k8s.io/blob/main/groups/sig-release/groups.yaml) -- [ ] Open a PR to add the Docs Team in the release-1.xx. For example here is the Release Team of [1.26](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.26/release-team.md) -- [ ] Open a PR to add yourself (Docs Lead Only) to kubernetes/kubernetes [CHANGELOG OWNERS](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/OWNERS) `approvers` and `reviewers` section. - -### Introduce yourself to docs localization teams - -- [ ] Create a GitHub discussion in [k/sig-release](https://github.com/kubernetes/sig-release/discussions/) to introduce yourself to the current localization owners and to sync up early on the release timeline, e.g: -> Title: K8s 1.21 - Formalize docs release strategy with docs localization owners -> -> Hello :wave:, -> I'm Rey Lejano, the SIG Release Docs lead for the 1.21 release. I'm opening this discussion to coordinate the docs release (scheduled tentnatively for [April 8, 2021](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.21#timeline) with localization owners. -> I look forward to working with everyone! Let me know if you have any questions! -> Thank you! 🙏 -> -> cc: @kubernetes/sig-docs-fr-owners @kubernetes/sig-docs-de-owners @kubernetes/sig-docs-hi-owners @kubernetes/sig-docs-id-owners @kubernetes/sig-docs-ja-owners @kubernetes/sig-docs-ru-owners @kubernetes/sig-docs-pl-owners @kubernetes/sig-docs-ko-owners @kubernetes/sig-docs-pt-owners @kubernetes/sig-docs-es-owners @kubernetes/sig-docs-zh-owners @kubernetes/sig-docs-vi-owners @kubernetes/sig-docs-uk-owners @kubernetes/sig-docs-it-owners - -### Attend meetings and provide updates - -⚠️ Attend the release team meeting outlined in the current release. If you cannot attend, a Shadow needs to attend in your place. -⚠️ Attend [SIG Docs meetings](https://github.com/kubernetes/community/tree/master/sig-docs#meetings) to report a status update. -If you cannot attend, a Shadow needs to attend in your place and/or update the [SIG Docs meeting notes](https://docs.google.com/document/d/1emuO4nmaQq3K8JZ9-MQeIygtrCPO9kWv7U7RzTaW4F8/edit?usp=sharing) with the information necessary to keep the community informed (e.g. staffing updates, branch syncs, placeholder PR deadlines, etc). -⚠️ The Docs Lead and Shadows must either attend all release team and SIG Docs meetings or communicate with the team if unable to attend. Every team member should have equal opportunities to provide verbal status updates in the meetings. The Docs Lead must ensure Shadows are well-informed on the status updates that release team and SIG Docs need, while Shadows must actively monitor progress to report on. - -- Here is a checklist to guide the weekly status report. - -_Note:_ SIG Docs prefers and welcomes a status of yellow or red on anything that needs attention, has the possiblity to miss deadlines or target dates, or requires follow-up from feature authors and SIGs that you're not receiving. - -[ ] Is the integration branch healthy (does not need rebase)? - -[ ] Has the weekly branch sync been done? (a lapse in 1-2 branch syncs indicates 'yellow' status, 3 or more lapses should be deemed red) - -[ ] Has the PR for the weekly branch sync merged or does it need review? If assistance is needed to resolve merge conflicts, please flag others by communicating on the #release-docs Slack channel - -[ ] Is the Release Notes PR open, reviewed, and merged within the deadline? - -[ ] Is the Release Notes PR late or blocked? - -[ ] A week before the Docs PR Placeholder deadline, have 80% of the enhancements that opted in for docs created a placeholder PR? (anything below 60% opt-in for docs where placeholder PRs are needed should indicate yellow (or red) status, contingent on the amount) - -[ ] Three days before the Docs PR Placeholder deadline, have 90% of the enhancements that opted in for docs created a placeholder PR? (anything below 90% of placeholder PRs being created by enhancements opted in for doc are needed should indicate yellow (or red) status, contingent on the amount) - -[ ] A week before the Docs Ready for Review deadline, are 80% of the docs PRs ready for review? (anything below 60% should indicate yellow (or red) status, contingent on the amount) - -[ ] Three days before the Docs Ready for Review deadline, are 90% of the docs PRs ready for review? (anything below 90% of placeholder PRs being ready for review should indicate yellow (or red) status, contingent on the amount) - -[ ] A week before the Docs Complete deadline, have 80% of the docs PRs merged? (anything below 60% should indicate yellow (or red) status, contingent on the amount) - -[ ] Three days before the Docs Complete deadline, have 90% of the docs PRs merged? (be sure to mention if you need the help of SIG Docs approvers/reviewers to meet your deadline) - -[ ] On the day before any deadline, are there any outstanding items or PRs? - -[ ] On the day of any deadline, are there any outstanding items or PRs? - -### Read up on the release team - -Read this to learn more about the entire [release team and process](https://github.com/kubernetes/sig-release/tree/master/release-team) - -### Select Shadows - -You will be provided with survey results from people interested working on the release team. If you do not have the results, contact the release lead for more information. - -After vetting the volunteers for their roles, role leads should make a final decision on selected shadows with the incoming Release Team Lead. In the past the SIG Docs release team has been between 3-6 members. - -⚠️ Beyond meeting the basic requirements and time commitments, a good Shadow is someone who is active in SIG-Docs. Selection priority should go to previous shadows who want to eventually lead a SIG-Docs release. Other than those few guidelines, use your best judgement! - -[Link for additional information on shadows](https://github.com/kubernetes/sig-release/blob/master/release-team/release-team-selection.md#shadows) - -Verify the shadow selections with the release lead and the emeritus advisor on Slack. - -### Contact volunteers - -- [ ] Send a Slack message to those that you select, e.g: - -> Hey, you're officially on the SIG Docs 1.21 release team as a shadow! Let me know if there's any issues with being a shadow (as far as timing / availability / etc) and feel free to introduce yourself! -> -> Let me start: [General Introduction about your name, workplace, k8s community involvement, timezone etc] -> ->Ok, on to the business... -> ->We are an inclusive group so if there’s something you’re concerned about, or don’t understand, don’t worry and just ask! -> -> First off, check out the release team on-boarding guide: https://github.com/kubernetes/sig-release/blob/master/release-team/release-team-onboarding.md -> ->Make sure you join the following Slack channels: #sig-docs, #sig-release, #release-docs -You'll then want to join these mailing lists if you haven't already: ->- https://groups.google.com/forum/#!forum/kubernetes-sig-release ->- https://groups.google.com/forum/#!forum/kubernetes-sig-docs ->- https://groups.google.com/a/kubernetes.io/g/dev -> ->Access to Google docs and calendar invites are often based on these mailing lists, so it's a good idea to subscribe. -> ->When it comes to contributing and reviewing PRs, you should check out the docs style guide: https://kubernetes.io/docs/contribute/style/style-guide/ -> ->We'll go over this in the meeting, but you may also want to take a quick look at the 1.21 release readme. https://github.com/kubernetes/sig-release/blob/master/releases/release-1.21/README.md -> ->Lastly, I'd love to jump on a call to go over the release process with everybody, describe what we'll be doing, and answer any questions. Below is a poll to see what time works best on Friday (if any). As we near the end of the release cycle I will add a regular weekly check-in. -> ->Please select your preferred time(s) Friday: https://doodle.com/<link-removed> - - -⚠️ Please coordinate with Emeritus Adviser for the release before taking this step. -Send a Slack message to those that you didn't select, e.g: - -> Hey, I'm Jim Angel (Docs Lead for SIG Docs). Thanks for your interest in the SIG Docs 1.14 release team! -> -> The release team for sig-doc shadows has no additional availability, but please stick around help out with some of our other sigs (including sig-docs)! -> -> How can you help? -> - Attend the sig release meetings (07 30 AM PST Bi-weekly on Tuesdays - see #sig-release for more info). -> - SIG-DOCs is always looking for new contributors, please go introduce yourself and we're happy to help! As a bonus, you will be preferred during the next release cycle as opposed to someone not involved with sig-docs. - - Slack is full of other great SIGs that could always use your help! -> -> I am also a resource to reach out to if you have any community questions (there's also #sig-contribex). I started out as a volunteer and now I am part of many Kubernetes sigs and teams. -> -> Thanks again for your interest and time! -> -> Jim Angel - - -### Meet with Shadows - -Find .5-1 hour of time to meet with shadows and explain the release process. Walk through this entire document and review the flow with them. It helps to set expectations that the mantra is "hurry up and wait" but then it gets very hectic at the end. If you have the ability to, please record the meeting and share it with your Shadows for future review. - -1. Add contacts to the shadows release docs, e.g: [https://bit.ly/k8s121-contacts](https://bit.ly/k8s121-contacts) - -### Define schedule - -Create a table to track `Release`, `Branch Created Day`, `Week of Release`, `PR Merge Deadline`, `Release Notes Assignee` -and `Release Notes Reviewer` based on the release timeline. This will serve as an internal schedule and signup sheet for -the release notes team to follow. The schedule is used to track progress and give status updates during release team meetings. - -### Ensure access is set up - -1. As a lead, make sure you are part of the [sig-docs-en-owners](https://github.com/orgs/kubernetes/teams/sig-docs-en-owners). - -1. As a lead, open a PR for approval permission in the [OWNERS_ALIASES](https://github.com/kubernetes/website/blob/main/OWNERS_ALIASES), e.g: [1.21 release](https://github.com/kubernetes/website/pull/26114). - -1. Add docs team to the `website-milestone-maintainers` group in k/org/config/kubernetes/sig-docs/teams.yaml and `release-team` group in k/org/kubernetes/sig-release/teams.yaml, e.g: [1.21 release](https://github.com/kubernetes/org/pull/2445). - -1. Make sure all shadows have edit access to the enhancement spreadsheet. Contact the enhancements lead to grant access for you and shadows. - -1. You need push access to the Kubernetes website repo (contact a SIG Docs chair if you don't have it) - - ⚠️ (**This should be done by the Docs Lead**) Open the [integration branch] by creating a pull request against `main` referencing the `dev-[future release]` branch e.g., the [Release 1.21](https://github.com/kubernetes/website/pull/26153) PR uses the branch `dev-1.21`. - - This release pull request (also known as the [integration branch]) serves as the base for individual, component enhancement PRs of the release. A [integration branch] lets you bundle and merge multiple PRs simultaneously. - - ⚠️ Add the label `do-not-merge/hold` to the PR. - -1. First PR in `dev-[future release]`: Update hugo.toml to show `[future release]` as the current version and add the `[future release]` entry to the drop-down, e.g: [hugo.toml diff](https://github.com/kubernetes/website/pull/40231) - - The intent is that your new branch should be showing as the current version IN the new branch... - -### Update the website configuration ahead of the release - -Update the main `hugo.toml` based on the version on the `main` branch. Open a PR for these changes against the `dev-[future release]` branch (which should already exist - this is a good check!) - -```shell -# Step 1 -# Do this on a fresh local clone OF YOUR FORK -# It's OK to use SSH for the git URL if you know how to do that -git clone https://github.com/yourGitHubUsername/website.git kubernetes-website -cd kubernetes-website -# Step 2 -# Add the upstream repo as a remote -git remote add upstream https://github.com/kubernetes/website.git - -git fetch upstream dev-[future release] -git checkout --track upstream/dev-[future release] -git checkout -b config-toml-[future release] # change for the release you're making, for example config-toml-1.21 -# Step 3 -# Edit hugo.toml to make the changes described above -# save your changes -git add hugo.toml -git commit -m "Updated hugo.toml for [future release] release" -# Step 4 -# Check things look right -git status -git remote -v -# Step 5 -# Push this new branch to your fork -git push origin config-toml-[future release] -``` - -Now create a pull request that targets the next release (here: `dev-1.21`) **not** `main`. - - -## Middle Steps (Weeks 3-8) -The middle weeks of the launch are where the Docs Lead and Docs Lead Shadows track and review incoming PRs. - -### Track PRs - -Track PRs based on the enhancement (KEP) spreadsheet. - -Keep the enhancement tracking spreadsheet up to date with review progress and merge status for each documentation PR. For example: [Kubernetes Enhancements OSS tracking board (1.21 release)](http://bit.ly/k8s121-enhancements) - -⚠️ Assign the enhancements evenly across your Shadows after the enhancement freeze. Assigning shadows before the - enhancement freeze will cause unexpected behavior in the tracking spreadsheet due to frequent updates to dynamic data. - (Tip: When assigning enhancements, try grouping enhancement owners and/or by SIGs) - - You and your Shadows will be responsible for tracking whether the enhancement: - - **has docs:** Actively has docs in place on Kubernetes website or in flight - - **needs docs:** Actively needs docs to support the enhancement in the [future-release] - - **unknown:** After reviewing the KEP, it is unclear if this needs docs or not - - **not required:** The KEP doesn't change anything that requires reflection in Kubernetes website - - You and your Shadows will also be responsible for marking whether the docs are: - - **Complete (Merged):** PR on the dev-[future-release] is done and merged - - **No PR:** No PR is open (helpful for dead line tracking) - - **Late:** No PR is open AND it's passed the deadline - - **Draft (PR):** PR is open but content isn't ready for review - - **Ready for Review (PR):** PR is open but content IS ready for review -- ⚠️ Make sure that every docs PRs for the release have the correct base and set the correct Milestone. For example, enhancement PRs for version 1.21 need abase branch of `dev-1.21` and the Milestone set to `1.21`. - -The spreadsheet can be used to track the current health of the docs for release. For example: - -![Sample spreadsheet](pics/enhancement-tracking.png) - -On the "Enhancement Stats" tab, a table was created to track the Doc Stats and then based on their category, in the other tab, assign a status "Green / Yellow / Red." - -This is very helpful for weekly reports and managing deadlines - -### Communicate major deadlines - -The Release Lead and Enhancements Lead will send announcements to the [Kubernetes Dev Group](https://groups.google.com/a/kubernetes.io/g/dev) periodically during the release cycle. -Communicate with the Release Lead and Enhancements Lead to include the Doc Placeholder PR, Doc PR Ready-for-Review, and Docs Complete deadlines in their announccements. - -COMMUNICATE ALL 3 MAJOR DATES AT LEAST A WEEK PRIOR, INCLUDING THE RELEASE DATE REPO FREEZE, FOLLOWING THE BELOW METHODS: - -- Keep developers apprised of due dates for docs. - Send announcements to: - - [#sig-release](https://kubernetes.slack.com/messages/sig-release) on Slack - - Your team / shadows - - [#sig-docs](https://kubernetes.slack.com/messages/sig-docs) - - [#sig-docs-maintainers](https://kubernetes.slack.com/messages/sig-docs-maintainers) - - [#chairs-and-techleads](https://kubernetes.slack.com/messages/chairs-and-techleads) - - Release subteams: - - [#enhancements](https://kubernetes.slack.com/messages/enhancements) - - [#release-bug-triage](https://kubernetes.slack.com/messages/release-bug-triage) - - [#release-ci-signal](https://kubernetes.slack.com/messages/release-ci-signal) - - [#release-notes](https://kubernetes.slack.com/messages/release-notes) - - [#release-comms](https://kubernetes.slack.com/messages/release-comms) - - (optional) Twitter - - If you tweet, send a message to [#sig-release](https://kubernetes.slack.com/messages/sig-release) and ask for a friendly signal boost (retweets) - -Example notice: - -> Hey! The Docs `Placeholder PR` deadline is Tuesday March 16 HH:MM timezone. -> -> That means if you have a v1.21 enhancement (that requires docs), #sig-docs require that you have _at the very least_ a PR opened against the `dev-1.21` branch in the kubernetes/website repo. -> -> It would be AWESOME if it's the full doc! 😀 -> -> Thanks! Important dates for v1.21: https://github.com/kubernetes/sig-release/blob/master/releases/release-1.21/README.md#tldr -> -> ![Bring out your docs](pics/meme-deadline.jpg) - -### Begin generating Release Notes -Begin running release-notes tool for the ongoing collection of release notes with the first alpha release, which has been cut directly after the latest minor. - -- Update the `release-notes-draft.md` -- Verify release notes are available on (relnotes.k8s.io)[https://relnotes.k8s.io/] -- Informal intro meeting with release notes team to discuss contact information and logistics - -#### Set up the Tools and Generate the Release Notes - -The Docs team is responsible for the generation of the release notes during the release cycle. - -At least one member of the Docs Team should be responsible for [setting up](https://github.com/kubernetes/release/tree/master/docs/krel#installation) and [running](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md) the release-notes subcommand of krel to generate the release notes after each Patch Release: - -1. Update the release notes draft, a markdown file which will become the final document which will encompass all release notes written by contributors during the current release cycle. See previous drafts for versions [1.25](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.25/release-notes/release-notes-draft.md), [v1.24](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.24/release-notes/release-notes-draft.md) or [v1.23](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.23/release-notes/release-notes-draft.md). - -Detailed instructions for generating the release notes bundle is in the [krel release-notes subcommand documentation](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md). - -#### Periodically review and fix new release notes - -The Docs team must make sure that the final document includes well-written and informative release notes. To achieve a high-quality document the team should review and edit the -notes by running `krel release-notes --fix` weekly or as often as development pace -demands. - -This command will enable the team to review each release note and edit the note's data. It is recommended that the team splits the work among all members and runs the editing flow on a weekly or biweekly basis. More information about the editing flow can be found in a separate document detailing the [editing process and tooling](editing-flow.md). - -The general style guide for release notes includes checking for: -- Past tense: Release notes should be written in the past tense since the changes have already been implemented. -- Technical jargon: While the notes are generally user-friendly, some technical terms like "VAC" or "scheduling hints" could be explained briefly with backticks or double quotes for users unfamiliar with them. -- Additional context: In some cases, providing more context about the problem these changes address or the specific situations where they're relevant could be helpful for understanding their significance. You can find additional context referenced in the PR in k8s/k8s repo to check what the PR does for end users. - -Additional style guidelines can be found in the [Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/). - -#### Maintain Known Issues - -A ["Known Issues Umbrella Issue"](known-issues-bucket.md) for the release must be created by the Docs team in [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/issues/new) so issues can be collected for the "Known Issues" section of the release notes. See previous known issues for [1.25](https://github.com/kubernetes/kubernetes/issues/110336), [1.24](https://github.com/kubernetes/kubernetes/issues/109027), [v1.23](https://github.com/kubernetes/kubernetes/issues/104885), [v1.22](https://github.com/kubernetes/kubernetes/issues/101728), [v1.21](https://github.com/kubernetes/kubernetes/issues/98232), [v1.19](https://github.com/kubernetes/kubernetes/issues/90304), [v1.18](https://github.com/kubernetes/kubernetes/issues/86882) or [v1.17](https://github.com/kubernetes/kubernetes/issues/83683). - -#### Ensure Release Highlights are Reflected in the Notes - -The Communications team will hold a meeting to discuss Release Highlights sometime around Code Freeze. Ensure that at least one person from the Docs team attends this meeting with the Release Lead and Enhancements Lead. The Docs team should ensure that the "Release Highlights" identified in this meeting are reflected in the "Release Highlights" section of the release notes. If no one is able to attend the meeting, reach out to the Communications team, Release Lead or Enhancements Lead to ensure messaging around Release Highlights is coordinated. - -#### Get feedback from SIG Leads - -Around Code Freeze, the Docs team will get in touch with the SIG Leads to ensure that the Release Notes accurately reflect the major themes for their SIGs. The team will also ensure that major issues captured in the release notes are confirmed by the SIG leads before release day. - -If gentle nudging of SIG Leads is not effective in retrieving feedback/confirmation, the Docs Team can use a reasonable amount of creative liberty in completing the notes. - -### Reach out to Enhancement Owners - -#### Before the Open Placeholder PR Deadline -After the Enhancement Freeze, reach out to all tracked enhancements to see if new docs or modification to existing docs -are required, e.g: - -> Hello < tag enhancement owner(s) > :wave:, < future-release > Docs < Shadow/Lead > here. -> -> Does this enhancement work planned for < future-release > require any new docs or modification to existing docs? -> -> If so, please follows the steps [here](https://kubernetes.io/docs/contribute/new-content/new-features/#open-a-placeholder-pr) -> to open a PR against `dev-[future release]` branch in the `k/website` repo. This PR can be just a placeholder at this -> time and must be created before < Docs Open Paceholder deadline HH:MM timezone> -> -> Also, take a look at [Documenting for a release](https://kubernetes.io/docs/contribute/new-content/new-features/#for-developers-or-other-sig-members) -> to get yourself familiarize with the docs requirement for the release. -> -> Thank you! - -#### Before the PRs Ready for Review Deadline -After the Open Placeholder PR deadline, reach out to all open/tracked doc PRs to remind the PR owners to get their doc ready to be reviewed, e.g: - -> Hello < tag doc owner(s) > :wave: please take a look at [Documenting for a release - PR Ready for Review](https://kubernetes.io/docs/contribute/new-content/new-features/#pr-ready-for-review) -> to get your PR ready for review before < PR Ready for Review deadline HH:MM timezone >. Thank you! - -#### Before the Docs Freeze Deadline - -1. **Update the Enhancements board** - - You and your Shadows are also responsible for updating the Status of the enhancement as tracked or at risk for Docs Freeze: - - **Tracked for Docs Freeze:** Documentation is in an active review, will likely be merged by Doc Freeze deadline or has already been merged. - - **At Risk for Docs Freeze:** The Docs Freeze deadline is upcoming and the documentation looks to be at risk of making that deadline, risking an exception. - -2. **Coordinate a Plan with SIG Docs**: -It is crucial for the Docs Lead to plan and coordinate with the SIG Docs leads, especially between the PR Ready for Review deadline and the Docs Freeze deadline. Establish a clear plan to address the available capacity of SIG Docs and Release Docs to review doc PRs and anticipate potential obstacles such as KubeCon or other events that might affect the availability of reviewers. Ask how Release Docs can help! - -3. **Communicate Docs Freeze at start of Review** -After the PR ready for review deadline, reach out to all open/tracked doc PRs to remind the PR owners to get docs reviewed, e.g: - -> Hello < tag doc owner(s) > :wave:, a friendly reminder that this PR needs a doc review by < Docs Complete Deadline HH:MM timezone > to get this -> into the release. Please reach out to required SIGs to get their review. Thank you! - -For a technical review, reach out to the KEP reviewers and approvers. KEP reviewers and approvers are usually listed in the -[kep.yaml e.g.](https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/1194-prod-readiness/kep.yaml) - -> Hello < tag KEP reviewer(s) / approver(s) > :wave: please provide a technical review for this PR by < Docs Complete deadline HH:MM timezone > -> to get this into the release. Thank you! - -#### Week of Docs Freeze - -Follow up with owners of all docs PRs that are not in a mergeable state via both a GitHub comment and a Slack DM. To be ready to merge, a PR requires both `/lgtm` and `/approve`, one of them from a technical reviewer, and comments and suggestions addressed. If the docs owner or KEP owners are unresponsive, you may reach out to the chairs and technical leads of the SIG that owns the associated KEP. - -Example: - - ->Hello {doc/KEP owners} 👋! I'm reaching out from the Docs team. -Just checking in as we approach **Docs Freeze on {date with timezone}**. -This documentation appears to still be under review. To meet the Docs Freeze, this PR must have a technical review as well as `lgtm` and `approve` labels applied, without any unaddressed comments or concerns from SIG Docs. -The status of this enhancement is marked as `at risk for docs freeze`. Thank you! - - -#### After Docs Freeze - -Once Docs Freeze has passed, if there are any docs PRs not marked "ready to merge," reach out in the PR with the following: - ->Hello 👋, {current release} Docs team here. -This PR did not meet deadline for [docs freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#docs-freeze). -Enhancements without required documentation may be removed from the current release. If you still wish to include this enhancement in {current release}, please file an [exception](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) request. Thanks! - -### Maintain the current and upcoming `dev` branch - -This allows us to avoid merge conflicts on release day with `dev-[future release]`. - -#### ⚠️ Periodically merge `main` into `dev-[future release]` - -To merge `main` into `dev-[future release]` on your local fork: - -```bash -git clone git@github.com:{YOUR_USER}/website.git -# Step 0 (if you don't already have a remote called "upstream") -git remote add upstream https://github.com/kubernetes/website.git | git remote add upstream git@github.com:kubernetes/website.git -# Step 1 -git fetch upstream main -# Step 2 -git fetch upstream dev-[future release] -# Step 3 -git checkout --track upstream/dev-[future release] -# Step 4 -git pull --ff-only # make sure you're up to date -# Step 5 You might see merge conflicts at this point. -git merge upstream/main -## if needed: https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/ -## git add ... -## git merge --continue -# Step 6 -git checkout -b merged-main-dev-[future release] -# Step 7 -git commit -m "Merge main into dev-[future release] to keep in sync" -# Step 8 -git push origin merged-main-dev-[future release] -``` - -You may need to fix conflicts manually. If somebody has improved a page on `main`, and at the same time it has been updated in the dev branch for the next release, we may need to figure out how to make those changes work together. If something comes up which isn't obvious, you can always abort the merge and reach out to SIG Docs for help. - -When you have completed resolving the differences manually, run `git merge --continue` to complete the merge. Then carry on from step 5. - -Submit a PR against upstream `dev-[future release]` from your fork's branch `merged-main-dev-[future release]` by changing the -`base` to `dev-[future-release]` when creating the PR. -e.g. [Merge main into future release](https://github.com/kubernetes/website/pull/16225). - -⚠️ **Ensure the PR is passing tests on GitHub**. - -Perform merge activity on a regular basis to ensure a smooth release. eg: once/week during intial weeks and increase the frequency if required closer to the end of the release cycle. - -Report out the `dev-[future release]` branch health in Release Team meetings and sig-docs meetings. - -### Monitor PRs - -Make a query showing all PRs raised against dev-[future release] and monitor that regularly e.g., [1.21 search](https://github.com/kubernetes/website/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+base%3Adev-1.21+label%3Alanguage%2Fen) - -### Enforce deadlines - -Enforce deadlines the day after. Communicate with SIGs via Slack and email lists to keep everyone up-to-date on status. - -### Review PRs - -It is the Docs Lead and Shadows' responsibility to ensure the incoming docs meet our standards. Considering SIG Docs has limited capacity, the Release Doc Lead and Shadows should actively engage in reviewing and providing feedback on documentation changes in each of their PRs. It's impossible for us to understand every technical component, so it is important to get a technical LGTM too if you're unsure about technical accuracy. - -Also review each PR for: - -- Check that the PR is in the `[future release]` milestone -- Check that the KEP / enhancement is likely to land in `[future release]`. -- Review PR commit histories, and make sure that PR commit histories contain only changes to files. It's especially important to **avoid revert commits**. Encourage developers to rebase any PRs with complicated commit histories. -- Check that the PR has a technical LGTM. -- KEP reviewers and approvers can provide a technical review or delegate appropriatley. KEP reviewers and approvers are usually listed in the [kep.yaml e.g.](https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/1194-prod-readiness/kep.yaml) -- If no LGTM, assign `sig/*` labels (listed in the enhancement tracking spreadsheet) to help find technical reviewers. - -#### Style Guide Checklist (High to Low Level) - -The [style guide](https://kubernetes.io/docs/contribute/style/style-guide/) consists of guidelines, not rules. - -- Make sure new docs use the correct page content type. - - [Concept](https://kubernetes.io/docs/contribute/style/page-content-types/#concept) - - [Task](https://kubernetes.io/docs/contribute/style/page-content-types/#task) - - [Tutorial](https://kubernetes.io/docs/contribute/style/page-content-types/#tutorial) -- Make sure the page content renders correctly. - - Numbered list - - Code blocks - - [Shortcodes](https://kubernetes.io/docs/contribute/style/style-guide/#shortcodes) for notes, cautions, and warnings -- Make sure the content makes sense - - Check spelling - - Consider the Style Guide's [best practices](https://kubernetes.io/docs/contribute/style/style-guide/#content-best-practices) and [patterns to avoid](https://kubernetes.io/docs/contribute/style/style-guide/#patterns-to-avoid) - -> Note: Most PR owners are **not** writers, and many are non-native / secondary English speakers. Missing commas or passive voice should **not** block a /lgtm if the content is accurate. If something really bugs you, make a note and open a PR to fix it later. - -Once the above is met, comment the following on the PR: - -``` -/lgtm -/approve -``` - -(you might already have /lgtm from the technical review stage; another /lgtm is fine if the prerequisites are already met). - -If you need help reviewing PRs, ask SIG Docs (#sig-docs channel on Slack) for help. The weekly [PR Wrangler](https://github.com/kubernetes/website/wiki/PR-Wranglers) is your best resource. - -> Note: PR's against the dev branch can merged at any time assuming they meet the criteria. Be careful though that you don't merge a feature that might be pushed out to the next release. If that happens, you can revert - but it's better to avoid the mess all together. -> -> You can add /hold to mark a PR that should not merge until the matching code changes are already in. - -### Nominate a Docs Lead for the Next Release - -⚠️ During Code Freeze, pick a successor who has demonstrated the ability and understanding of the process. - -**Usually this is a Docs Lead Shadow that has been on the team for 2 releases with a desire to continue with the SIG Docs.** - -- Reach out to the person you have in mind and confirm they are able to commit the time and effort for a successful release. -- Once confirmed, inform the Release Team and the SIG Docs Team. - -If no suitable candidates are available, you may choose to lead again or nominate someone outside of the current release team (e.g: a recent Docs Lead). - -## Late-Middle Steps (Weeks 7-8) - Sync with Comms team on the release blog post - -The Docs Lead is responsible for publishing the release blog post during the release day. Therefore, it's important to -follow the status of the blog posts created by the Comms team. - -Validate that the Comms team has all the blog posts (release and features) ready for the upcoming release. -If unsure, send a message to their [Slack](https://kubernetes.slack.com/messages/release-comms/) channel, e.g: - -> Hi Comms team :wave: 1.21 Docs Lead here, can someone confirm that all blog posts PRs related to the release have been -> opened and are being reviewed? Is there anything the Docs team can do to help? - -Be congnizant of the status of the release blog post as merging and publishing the release blog post is a significant step on release day e.g., [1.21 release blog](https://github.com/kubernetes/website/pull/27233). - -## Late Steps (Weeks 9-11) - Prep for the release - -### Touch base with SIG Docs - -The Kubernetes API reference, kubectl, and components documentation are generated by a SIG Docs tech lead. Check in with SIG Docs with a brief reminder, and confirm that they have everything they need to generate these docs. - -### Touch base with SIG Cluster Lifecycle (kubeadm) - -Validate that SIG Cluster Lifecycle has all of the docs in place for the upcoming release. These are mainly kubeadm docs (upgrading, installing, changes, etc). If unsure, send a message to their [Slack](https://kubernetes.slack.com/messages/sig-cluster-lifecycle/) channel, e.g: - -> Hi SIG Cluster Lifecylce :wave: 1.21 Docs Lead here, can someone confirm that all docs are in place for the upcoming 1.21 release? - -### Clean up and edit the final Release Notes - -The confirmed release notes are cleaned up and copy edited by the Docs team to ensure uniform language/style is used. The team must make sure that the final document conforms to the [Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/). - -### Curate the External Dependencies section - -A "Dependencies" section should be curated which outlines how external dependency versions have changed since the last release. These changes are currently [automatically aggregated](https://github.com/kubernetes/community/issues/2234), but should still be manually validated for correct content and formatting. - -### Update Releases Page (the week before the release) - -Create a PR against the dev-[future-release] branch to add an entry for [future-release] on https://kubernetes.io/releases. - -To update https://kubernetes.io/releases, update https://github.com/kubernetes/website/blob/main/data/releases/schedule.yaml. -The following fields are required: - - `release`: <1.xy> - - `releaseDate`: <YYYY-MM-DD> # date of release - - `next`: <1.xy.1> - - `cherryPickDeadline`: <YYYY-MM-DD> # the Friday before `targetDate` - - `targetDate`: <YYYY-MM-DD> # the 2nd Wednesday of the next month - - `maintenanceModeStartDate`: # 2 months before `endOfLifeDate` - - `endOfLifeDate`: <YYYY-MM-DD> # the 28th of the month after 1 year and 2 months after the release - -[Example PR for 1.29](https://github.com/kubernetes/website/pull/44135) -Have a Release Manager lgtm the dates on the PR. -This PR can be merged on release day by the Docs lead. - -## Release Week (Week 12) -⚠️ Everything in this section is important. It's OK to ask for advice if you're not sure. - -### Update the site configuration files for previous releases - -Working from your fork of the `kubernetes/website` repository, update the `config.toml` files for the 4 previous releases. You need to open 4 separate PRs, because each release has its own `release-` branch. - -For the immediately previous release, there will not be a `release-[previous-release]` branch, so you should open the pull request updating the site configuration for the previous release targeting `main` and update the base branch to `release-[previous-release]` once you have created the `release-[previous-release]` branch. - -See this for example (1.29 was the "future release"): -* 1.25 https://github.com/kubernetes/website/pull/44302 -* 1.26 https://github.com/kubernetes/website/pull/44301 -* 1.27 https://github.com/kubernetes/website/pull/44299 -* 1.28 https://github.com/kubernetes/website/pull/44298 - -Changes required: -- Set `latest` to the [future release] version -- Update `githubbranch` and `fullversion` (if present) to the latest patched version of the corresponding release -- Update the list of versions to include the [future release] and remove the oldest release -- Set `deprecated` to `true` -- For each previous release, update the patch version to the latest patch version available - -Here is an example of the steps taken to update the release 1.28 config.toml for the future release 1.29, as well as the [PR](https://github.com/kubernetes/website/pull/44298) - -```shell -git remote add upstream https://github.com/kubernetes/website.git && git remote set-url --push upstream no_push -git fetch upstream main -git pull --ff-only -# make necessary updates to hugo.toml at this point -git checkout -b update-release-1.28-hugo.toml -git add . -git commit -m "Updates v1.28 hugo.toml for release v1.29" -git push origin update-release-1.28-hugo.toml -Go to your fork in a browser: https://www.github.com/{YOUR_USER}/website -Submit a PR against upstream `main` from your fork's branch `update-release-[previous-release]-hugo.toml`. The day before the release, once you have created the `release-[previous-release]` branch, change the base branch for this PR from `main` to `release-[previous-release]` -``` - -Here is an example of the steps taken to update the release 1.27 config.toml for the future release v1.29, as well as the [PR](https://github.com/kubernetes/website/pull/44299) - -```shell -git fetch upstream release-1.27 -git checkout --track upstream/release-1.27 -# make necessary updates to hugo.toml at this point -git checkout -b update-release-1.27-hugo.toml -git add . -git commit -m "Updates v1.27 hugo.toml for release v1.29" -git push origin update-release-1.27-hugo.toml -In this case, a PR is submitted against `release-1.27` from the fork's branch `update-release-1.27-hugo.toml`. -``` - -⚠️ DO NOT MERGE **ANY** OF THE CONFIGURATION PULL REQUESTS UNTIL THE RELEASE HAS OCCURRED - -### Update the site configuration files for future release - -The future release branch site configuration also needs to be updated to reflect the latest patch versions of the past releases. -Create a PR against the `dev-[future-release]` branch to update the `config.toml` file that matches the -[PRs for previous releases](#update-the-site-configuration-files-for-previous-releases). - -### Inform localization teams - -Let localization teams know about the k/website repo freeze and the tentative timeline(s) for important dates with a comment to the GitHub discussion created earlier in the release cycle. - -> Hello localization team leads! I don't think any action is required from you, but I wanted to let you know that we are on track for the release on April 8, 2021 and all Kubernetes website branches are up to date (main, dev-1.21). Let me know if I can help with anything! Thanks! - -### Day before Release Day -⚠️ Everything in this section is important. It's OK to ask for advice if you're not sure. - -#### Request for temporary write access to the website repo - -Create a PR against [kubernetes/org](https://github.com/kubernetes/org) repo to add current Docs Lead to the -[website-maintainers](https://github.com/orgs/kubernetes/teams/website-maintainers) team e.g., -[PR to org repo](https://github.com/kubernetes/org/pull/2364) - -Assign PR to current [SIG Docs chairs](https://github.com/kubernetes/community/tree/master/sig-docs#chairs) for approval. - -⚠️ write access is required to freeze the website repo and to complete tasks during the release day - -⚠️ With elevated access, make sure you are not accidentally pushing to upstream by disabling `git push` command against upstream repo. -``` -git remote set-url --push upstream no_push -``` -> Note: Temporary write access to the website repo is required for the following tasks. Notify a SIG Docs chair to review and approve the PR before proceeding to the next step. - -#### Freeze Kubernetes website - -24 hours before the release, freeze the [k/website](https://github.com/kubernetes/website) repo: ⚠️ no PRs should be allowed to merge **AT ALL** until the release PR has successfully merged. There is an exception for your release PRs, which will bypass that restriction. - -- Submit an issue with `tide/merge-blocker` label. Depending upon your permissions, a [SIG Docs chair](https://github.com/kubernetes/community/tree/master/sig-docs#leadership) can assist you with adding the label. You may need to add the label manually by selecting the gear icon in the labels section on the left-hand side of the issue after you have opened it, rather than using a `tide` command. - -- Submit a freeze announcement following our [protocols](#communicate-major-deadlines) to #sig-docs and #kubernetes-contributors - -#### Create the release branch - -Creating the release branch lets you snapshot the current docs in a new branch, `release-[current release]`, after merging `dev-[future release]`. For example: For the 1.21 release cycle where `main` represents `v1.20`, you would create `release-1.20`. - -> **Note:** Creating a branch requires someone with write access to `k/website`, such as a [SIG Docs co-chair](https://github.com/kubernetes/community/tree/master/sig-docs#leadership). - -- From [k/website](https://github.com/kubernetes/website) click on `main` branch. -- Type the name of the release branch. -- **click** Create branch `release-x.yy` from `main` - -![](pics/new-branch.png) - -> **Note:** During the v1.29 release process, it was discovered that someone during the v1.28 release cycle had erroneously created and abandoned a `release-1.28` branch. This left the v1.29 Docs team with a release branch that was 2,330 commits behind `main`, rendering it unusuable as a release branch. Should this issue arise again, any repo admin or org admin has the necessary permissions to delete the branch. Reach out to the [SIG Docs chairs](https://github.com/kubernetes/community/tree/master/sig-docs#leadership) to obtain their agreement that deletion is necessary. You may also be able to simply fast-forward the branch. - -#### Update Netlify - -Update the Netlify configuration. You will need to work with a [SIG Docs chair](https://github.com/kubernetes/community/tree/master/sig-docs#leadership) to have them complete this task for you. - -Log in to [Netlify](https://app.netlify.com/) and navigate to the Sites tab. - -- Create a Netlify site that builds from `release-[current-release]` branch. Even though the `[current-release]` is currently `main` (e.g: https://kubernetes.io), eventually `main` will be a newer k8s version and we'll use the `release-[current-release]` branch to contain all prior changes - like a snapshot. (e.g https://v1-20.docs.kubernetes.io) - - Taking the defaults here is mostly fine - - When in doubt, compare it to a working example - - e.g, site name: k8s-v1-20 - - e.g, custom domain: v1-20.docs.kubernetes.io - -> Note: if the `release-[current-release]` is created before the website is frozen you may need to merge in main to keep up-to-date -> If you create the `release-[current-release]` right before freezing the k/website repo, it is less likely you need to keep the `release-[current-release]` up-to-date but always verify with the following steps: -To merge `main` into `release-[current-release]` on your local fork: - -```shell -# Step 0 (if you don't already have a remote called "upstream") -git remote add upstream https://github.com/kubernetes/website.git -# Step 1 -git fetch upstream main -# Step 2 -git checkout --track upstream/release-[current release] -# Step 3 -git merge upstream/main -# Step 4 -git checkout -b merged-main-release-[current release] -# Step 5 -git commit -m "Merge main into release-[current release] to keep in sync" -# Step 6 -git push origin merged-main-release-[current release] -``` - -Now create a pull request to merge the new branch you've made into the `release-[current-release]` branch on [k/website](https://github.com/kubernetes/website). - -> Note: Make a note of the commit hash of the last commit of the `release-current-release]` branch as it will be used to tag the commit as the final commit for the snapshot. - -#### Merge `main` - -After the freeze, if the dev-[future-release] branch is behind `main`, create a PR to merge `main` into dev-[future-release]. - -[Sync](#%EF%B8%8F-periodically-merge-main-into-dev-future-release) `main` into the release-[current-release] branch the day before the release. - -After review from SIG Docs, both PRs will need to be merged manually using the `Create a merge commit` method of merging. - -#### Get approvals for open PRs - -At this stage, [integration branch] PR and configuration PRs should be ready to be reviewed and approved by Sig Docs. -Request a review for all open PRs, especially the [integration branch], to make sure it can be merged on time during the -release day. - -#### Review milestone - -Review milestone for completion and outstanding PRs. For PRs that won't make the release, change their milestone and make sure everyone is clear. - - -## Release Day -⚠️ Everything in this section is important. It's OK to ask for advice if you're not sure. - -This process takes approximately 4 hours. - -Coordinate with the Release Team for the exact timing. Typically the release is 'officially' built, then you merge the docs, and then you approve the blog post to "make it official". For 1.21, we merged docs at 11:00 am PDT and the blog was merged at 11:30 am PDT - marking the release "complete". - -### Publish final Release Notes - -- Final version of release notes committed for release -- Close the _Known Issues_ Issue and make sure everything has been resolved -- Release Notes must be merged into master prior to the release. If this is not done the release will include the latest draft. -- Keep an eye on the #release-notes channel for any requests for any questions, edits or missed release notes. - -### Merge the integration branch - -Once release management team has successfully cut the release, Docs Lead will merge the [integration branch] manually using -the `Create a merge commit` method of merging. -Do not delete the dev-[future-release] when GitHub asks. - -- Verify that the pull request has an `approved` and an `lgtm` label. -- Remove the hold from the on-hold integration PR when needed and merge into `main`. -- Check the [Netlify build logs](https://app.netlify.com/sites/kubernetes-io-main-staging/deploys) to make sure the -site builds successfully. -- Once the site is up, validate the docs by checking the navigation, version dropdown, [generated APIs](https://kubernetes.io/docs/reference/), -[documentation version](https://kubernetes.io/docs/home/supported-doc-versions/), and random clicks. -> Note: Make a note of the commit hash of the integration branch merge - -> Note: In 1.28 the Docs Release Team had failing CLA checks while merging the integration branch, in which case they made a decision to not change history at all. Rather, they merged the integration branch even with failing CLA checks since the commit did pass CLA when it was merged to `dev-1.28`, and the docs team did not want to fix this by altering history due to the side effects of doing so. - -### Publish the release blog post - -After validation, merge the blog post manually using the `Create a merge commit` method of merging. - -- Verify that the pull request has an `approved` and an `lgtm` label. -- Remove the hold from blog post when needed and merge into `main`. -- Check the [Netlify build logs](https://app.netlify.com/sites/kubernetes-io-main-staging/deploys) to make sure the -site builds successfully. -- Navigate to the [blog page](https://kubernetes.io/blog/) to validate that release blog post is available. -- Once confirmed, notify the release team with the link to the blog post. This will allow the Release Lead to send out -a notification of the release to the Kubernetes Dev mailing list. - -### Create release with tag - -- Tag the commit hash before the [integration branch] as the final commit for [current release]. -- Tag the commit hash of the [integration branch] as the initial commit of the [future release] - -> Note: This can be done at any time post-release. -> You should have kept track of the last commit hash of the release branch, `release-[current release]` and the commit hash of the integration branch merge. The following steps will confirm the commit hashes. - -```shell -git clone https://github.com/kubernetes/website/ -cd website -git checkout main -``` -``` -Switched to branch 'main' -Your branch is up to date with 'origin/main'. -``` -Confirm the commit hash before the [integration branch]: -```shell -git show <merge commit of integration branch>^1 -``` -The following example is from the 1.21 release: - - It was noted that the last commit hash of the `release-1.20` branch is 6d252624b21452bcf6c22f156cccd316111204d4 from PR 2738 - - The commit hash of the integration branch merge, which is the first commit of 1.21, is 969a3db92326746a94e2eb4449fd60f25d9151b8. -```shell -git show 969a3db92326746a94e2eb4449fd60f25d9151b8^1 - -commit 6d252624b21452bcf6c22f156cccd316111204d4 (origin/release-1.20) -Merge: d1c650d2a 5767f39fd -Author: Kubernetes Prow Robot <k8s-ci-robot@users.noreply.github.com> -Date: Wed Apr 7 07:53:53 2021 -0700 - - Merge pull request #27387 from Arhell/label - - [ja] updated labels for cli command in the PHP Guestbook tutorial -``` -Proceed with tagging the commit hashes: -```shell -git tag -a snapshot-final-v1.20 6d252624b -m "Release 1.20 final snapshot" -git tag -a snapshot-initial-v1.21 969a3db92 -m "Release 1.21 initial snapshot" -git push --tags origin main -``` - -After creating the tags, you can create a release based off of a tag very easily. Follow the naming conventions as done before and update: https://github.com/kubernetes/website/releases - -- Navigate to the [k/website releases page](https://github.com/kubernetes/website/releases) -- Click "Draft a new release" -- Enter the snapshot initial version tag in the "tag version" box -- Enter "snapshot-initial-v1.20: Release 1.20" as release title and "Release 1.20 initial snapshot" as the description. -- Click "Publish release" - -> Note: 1.20 should be replaced with the [future release] - -### Unfreeze Kubernetes website - -Unfreeze the k/website repo as done earlier (remove the `tide/merge-blocker` label and close issue). - -Afterwards, submit an unfreeze announcement following our [protocols](#communicate-major-deadlines) - -### Close the [future release] milestone - -- Merge the 4 config.toml's created as part of the sunsetting docs. - - Remove hold from the configuration PRs to allow merge automatically by Prow. -- Find the open milestone for [future release] and close it. ⚠️ Be careful not to delete it. - -## Same day or Day After Release - Verification, Cleanup, and Handoff -These steps should be done after the launch. They require approximately 4 hours of work. - -### Review Docs Process and Update Documentation - -### Hold a docs-only retro with Sig Docs - -- Can we improve process? -- Can we improve playbook? -- Can we add / **remove** stuff from playbook? - - -## Day after Release - Prepare the Next Docs Lead for Success - -### Create the dev-future-FUTURE branch - -⚠️ Create a working branch (Named `dev-[future FUTURE release]`, for example `dev-1.22`) locally, based on `main`. Push it to upstream. - -```shell -# This example is for a future release version 1.22 -git clone https://github.com/kubernetes/website.git -git checkout -b dev-1.22 -git commit --allow-empty -m "Tracking commit for v1.22 docs" -git push -u origin dev-1.22 -``` - -### Modify prow config file - -Create a [pull request](https://github.com/kubernetes/test-infra/pull/21727) against [k/test-infra](https://github.com/kubernetes/test-infra) - to configure [prow](https://github.com/kubernetes/test-infra/tree/master/prow#) to automatically apply milestones to future release branch - and to remove the configuration for the last release e.g. [Add branch protection and milestone applier for k/website](https://github.com/kubernetes/test-infra/pull/30389). - -```diff -kubernetes/website: -- dev-1.21: 1.21 -+ dev-1.22: 1.22 -``` - - -### Create milestone - -Create a milestone for NEW upcoming release. Depending on your permissions, you might need to contact a SIG Docs maintainer. Move anything missed for the current release to the new milestone. - -### Update Netlify - -You will need to work with a [SIG Docs Chair or Technical Lead](https://git.k8s.io/community/sig-docs#leadership) to have them complete this task for you. - -Log in to [Netlify](https://app.netlify.com/) and navigate to the Sites tab. - -- Clean Up - - Delete the oldest docs site (usually a deprecated version 5+ releases ago) - ![Delete old site](pics/netlify-delete-old-site.png) -- Update [vnext](https://app.netlify.com/sites/kubernetes-io-vnext-staging/settings) staging - - Point at the new future dev-[future release] - ![Update vnext](pics/netlify-update-vnext.png) - - Taking the defaults here is mostly fine - - When in doubt, compare it to a working example - - (check) build only production branch - -- Save the change and verify that the change is live at [https://kubernetes-io-vnext-staging.netlify.com/](https://kubernetes-io-vnext-staging.netlify.com/). - -### Update Slack - -Announce that `[dev-future FUTURE release]` branch is open for new feature docs on slack #sig-docs. - -### Reassign issues - -- Clean Up -⚠️ Assign any issues / features / PRs (that missed the release) to the new Docs Lead - -### Clean up access - -- ⚠️ Create a PR against the **[kubernetes/org](https://github.com/kubernetes/org) repo** to **remove** the current Docs Lead from -the [website-maintainers](https://github.com/orgs/kubernetes/teams/website-maintainers) team and to **remove** current -Docs shadows from [website-milestone maintainers](https://github.com/orgs/kubernetes/teams/website-milestone-maintainers/), -e.g., [Remove 1.21 shadows from sig docs teams](https://github.com/kubernetes/org/pull/2624) - - The current lead must stay in the website milestone maintainers list until the `[current release]` website version is officially supported. - - The future lead must stay in the website milestone maintainers list to prepare for the next release. -- ⚠️ Create a PR against the **[kubernetes/website](https://github.com/kubernetes/website) repo** to **remove** the current Docs Lead from [sig-docs-en-owners](https://github.com/orgs/kubernetes/teams/sig-docs-en-owners) - - -## Celebrate! -YOU MADE IT! 🎉 Celebrate a job well done, keep an eye out for anything on fire, and begin to relax! +# Release Timeline + +- [Release Timeline](#release-timeline) + - [Overview](#overview) + - [Early Steps (Weeks 1-2)](#early-steps-weeks-1-2) + - [Connect with the release team through Slack and Google Groups](#connect-with-the-release-team-through-slack-and-google-groups) + - [Introduce yourself to docs localization teams](#introduce-yourself-to-docs-localization-teams) + - [Attend meetings and provide updates](#attend-meetings-and-provide-updates) + - [Read up on the release team](#read-up-on-the-release-team) + - [Select Shadows](#select-shadows) + - [Contact volunteers](#contact-volunteers) + - [Meet with Shadows](#meet-with-shadows) + - [Define schedule](#define-schedule) + - [Ensure access is set up](#ensure-access-is-set-up) + - [Update the website configuration ahead of the release](#update-the-website-configuration-ahead-of-the-release) + - [Middle Steps (Weeks 3-8)](#middle-steps-weeks-3-8) + - [Track PRs](#track-prs) + - [Communicate major deadlines](#communicate-major-deadlines) + - [Begin Generating Release Notes](#begin-generating-release-notes) + - [Set up the Tools and Generate the Release Notes](#set-up-the-tools-and-generate-the-release-notes) + - [Periodically review and fix new release notes](#periodically-review-and-fix-new-release-notes) + - [Maintain Known Issues](#maintain-known-issues) + - [Ensure Release Highlights are Reflected in the Notes](#ensure-release-highlights-are-reflected-in-the-notes) + - [Get feedback from SIG Leads](#get-feedback-from-sig-leads) + - [Reach out to Enhancement Owners](#reach-out-to-enhancement-owners) + - [Before the Open Placeholder PR Deadline](#before-the-open-placeholder-pr-deadline) + - [Before the PRs Ready for Review Deadline](#before-the-prs-ready-for-review-deadline) + - [Before the Docs Freeze Deadline](#before-the-docs-freeze-deadline) + - [Week of Docs Freeze](#week-of-docs-freeze) + - [After Docs Freeze](#after-docs-freeze) + - [Maintain the current and upcoming `dev` branch](#maintain-the-current-and-upcoming-dev-branch) + - [⚠️ Periodically merge `main` into `dev-[future release]`](#️-periodically-merge-main-into-dev-future-release) + - [Monitor PRs](#monitor-prs) + - [Enforce deadlines](#enforce-deadlines) + - [Review PRs](#review-prs) + - [Style Guide Checklist (High to Low Level)](#style-guide-checklist-high-to-low-level) + - [Nominate a Docs Lead for the Next Release](#nominate-a-docs-lead-for-the-next-release) + - [Late-Middle Steps (Weeks 7-8) - Sync with Comms team on the release blog post](#late-middle-steps-weeks-7-8---sync-with-comms-team-on-the-release-blog-post) + - [Late Steps (Weeks 9-11) - Prep for the release](#late-steps-weeks-9-11---prep-for-the-release) + - [Touch base with SIG Docs](#touch-base-with-sig-docs) + - [Touch base with SIG Cluster Lifecycle (kubeadm)](#touch-base-with-sig-cluster-lifecycle-kubeadm) + - [Clean up and edit the final Release Notes](#clean-up-and-edit-the-final-release-notes) + - [Curate the External Dependencies section](#curate-the-external-dependencies-section) + - [Update Releases Page (the week before the release)](#update-releases-page-the-week-before-the-release) + - [Release Week (Week 12)](#release-week-week-12) + - [Update the site configuration files for previous releases](#update-the-site-configuration-files-for-previous-releases) + - [Update the site configuration files for future release](#update-the-site-configuration-files-for-future-release) + - [Inform localization teams](#inform-localization-teams) + - [Day before Release Day](#day-before-release-day) + - [Request for temporary write access to the website repo](#request-for-temporary-write-access-to-the-website-repo) + - [Freeze Kubernetes website](#freeze-kubernetes-website) + - [Create the release branch](#create-the-release-branch) + - [Update Netlify](#update-netlify) + - [Merge `main`](#merge-main) + - [Get approvals for open PRs](#get-approvals-for-open-prs) + - [Review milestone](#review-milestone) + - [Release Day](#release-day) + - [Publish final Release Notes](#publish-final-release-notes) + - [Merge the integration branch](#merge-the-integration-branch) + - [Publish the release blog post](#publish-the-release-blog-post) + - [Create release with tag](#create-release-with-tag) + - [Unfreeze Kubernetes website](#unfreeze-kubernetes-website) + - [Close the \[future release\] milestone](#close-the-future-release-milestone) + - [Same day or Day After Release - Verification, Cleanup, and Handoff](#same-day-or-day-after-release---verification-cleanup-and-handoff) + - [Review Docs Process and Update Documentation](#review-docs-process-and-update-documentation) + - [Hold a docs-only retro with Sig Docs](#hold-a-docs-only-retro-with-sig-docs) + - [Day after Release - Prepare the Next Docs Lead for Success](#day-after-release---prepare-the-next-docs-lead-for-success) + - [Create the dev-future-FUTURE branch](#create-the-dev-future-future-branch) + - [Modify prow config file](#modify-prow-config-file) + - [Create milestone](#create-milestone) + - [Update Netlify](#update-netlify-1) + - [Update Slack](#update-slack) + - [Reassign issues](#reassign-issues) + - [Clean up access](#clean-up-access) + - [Celebrate!](#celebrate) + +--- + +## Overview + +For each release, the schedule with deliverables is added to the release directory. This section talks about specific Docs Lead deliverables for each milestone in the release timeline. + +Read the release timeline and **make sure the timeline includes deadlines for documentation work**, e.g: [1.21 timeline](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.21#timeline): + +- Docs deadline - Reminder for *Open placeholder PRs* in the respective KEPs (~3.5 weeks before release) +- Docs deadline - Reminder for *PRs ready for review* in the respective KEPs (~2 weeks before release) +- Docs complete - All PRs reviewed and ready to merge (~1 week before release) + +If these deadlines aren't listed in the release timeline, request that the Release Lead add them. +Define deadlines clearly e.g. End of Day (EOD) PST is not clear if EOD is 5:00 PM or 11:59 AM PST. + +Responsibilities of the Docs Team: +- Same as [Docs Lead responsibilities](../docs#docs-lead-responsibilities) +- Track Doc PRs for KEPs in the [website](https://github.com/kubernetes/website) project, plus all Doc PRs for the dev-[future release] branch that may include general updates without a KEP. +- By default, all opted-in KEPs will `Need Docs`. Enhancement owners/contributors should confirm the enhancement does not need new or updated documentation. + +> Note: The blog-PR is tracked by the Release Comms Team. + +> Note: The kubernetes/website repo changed from using a `master` branch to a `main` branch in 2021. +> Be aware that several linked, example PRs uses the `master` branch. +> For the end-of-year release, KubeCon NA and the US Thanksgiving holiday can be additional impediments to Docs-related deadlines. Please communicate to enhancement owners/contributors about upcoming deadlines earlier and more frequently. + +## Early Steps (Weeks 1-2) +These steps take approximately one hour to complete, and should be completed immediately. + +### Connect with the release team through Slack and Google Groups + +- Join the Kubernetes [#sig-release](https://kubernetes.slack.com/messages/sig-release) Slack channel. Introduce yourself as the Docs Lead for the [future release]. + +- Send a Slack direct message to the [future release] lead to introduce yourself. + +- ⚠️ Join these Google groups: + - [kubernetes-sig-release](https://groups.google.com/forum/#!forum/kubernetes-sig-release) + - [kubernetes-sig-docs](https://groups.google.com/forum/#!forum/kubernetes-sig-docs) + - [kubernetes-dev](https://groups.google.com/a/kubernetes.io/g/dev) + - [kubernetes-release-team](https://groups.google.com/a/kubernetes.io/g/release-team) + - ⚠️ List of members for this group is managed in git. Please create a PR against `kuberenetes/sig-release` repo to include your email under `release-team` group in [`sig-release/group.yaml`](https://github.com/kubernetes/k8s.io/blob/main/groups/sig-release/groups.yaml) + - [kubernetes-release-team-shadows](https://groups.google.com/a/kubernetes.io/g/release-team-shadows) + - ⚠️ List of members for this group is managed in git. Please create a PR against `kuberenetes/sig-release` repo to include your email under `release-team-shadows` group in [`sig-release/group.yaml`](https://github.com/kubernetes/k8s.io/blob/main/groups/sig-release/groups.yaml) + +Early in the release cycle, the Enhancements Lead opens a Github Project, e.g: [the 1.26 Enhancement Tracking](https://github.com/orgs/kubernetes/projects/98/views/1). Later in the release this spreadsheet will contain important information for docs, check the Docs view [here](https://github.com/orgs/kubernetes/projects/98/views/6): + +- Which enhancements we'll be tracking for this release +- Feature owners (and their GitHub IDs) +- Links to docs PRs opened for each enhancement - Docs PR +- Docs Required? - By default "Needs Docs" +- PR Doc Status (No PR, Draft PR, Ready-for-Review PR, Merged PR) + +> Note: Until [1.25](https://tinyurl.com/k8s125-enhancements) was used tracking spreadsheet, e.g: [the 1.21 release spreadsheet](http://bit.ly/k8s121-enhancements). + +⚠️ Tasks to DO: +- [ ] Make sure your team is included in the "current" release team file, e.g: [release 1.21](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.21/release-team.md). **If not submit a PR see a sample for 1.21 [here](https://github.com/kubernetes/sig-release/pull/1432)**. +- [ ] Please create a PR against kubernetes/sig-release repo to include the Team Docs email of this release under release-team group in [sig-release/group.yaml](https://github.com/kubernetes/k8s.io/blob/main/groups/sig-release/groups.yaml) +- [ ] Open a PR to add the Docs Team in the release-1.xx. For example here is the Release Team of [1.26](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.26/release-team.md) +- [ ] Open a PR to add yourself (Docs Lead Only) to kubernetes/kubernetes [CHANGELOG OWNERS](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/OWNERS) `approvers` and `reviewers` section. + +### Introduce yourself to docs localization teams + +- [ ] Create a GitHub discussion in [k/sig-release](https://github.com/kubernetes/sig-release/discussions/) to introduce yourself to the current localization owners and to sync up early on the release timeline, e.g: +> Title: K8s 1.21 - Formalize docs release strategy with docs localization owners +> +> Hello :wave:, +> I'm Rey Lejano, the SIG Release Docs lead for the 1.21 release. I'm opening this discussion to coordinate the docs release (scheduled tentnatively for [April 8, 2021](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.21#timeline) with localization owners. +> I look forward to working with everyone! Let me know if you have any questions! +> Thank you! 🙏 +> +> cc: @kubernetes/sig-docs-fr-owners @kubernetes/sig-docs-de-owners @kubernetes/sig-docs-hi-owners @kubernetes/sig-docs-id-owners @kubernetes/sig-docs-ja-owners @kubernetes/sig-docs-ru-owners @kubernetes/sig-docs-pl-owners @kubernetes/sig-docs-ko-owners @kubernetes/sig-docs-pt-owners @kubernetes/sig-docs-es-owners @kubernetes/sig-docs-zh-owners @kubernetes/sig-docs-vi-owners @kubernetes/sig-docs-uk-owners @kubernetes/sig-docs-it-owners + +### Attend meetings and provide updates + +⚠️ Attend the release team meeting outlined in the current release. If you cannot attend, a Shadow needs to attend in your place. +⚠️ Attend [SIG Docs meetings](https://github.com/kubernetes/community/tree/master/sig-docs#meetings) to report a status update. +If you cannot attend, a Shadow needs to attend in your place and/or update the [SIG Docs meeting notes](https://docs.google.com/document/d/1emuO4nmaQq3K8JZ9-MQeIygtrCPO9kWv7U7RzTaW4F8/edit?usp=sharing) with the information necessary to keep the community informed (e.g. staffing updates, branch syncs, placeholder PR deadlines, etc). +⚠️ The Docs Lead and Shadows must either attend all release team and SIG Docs meetings or communicate with the team if unable to attend. Every team member should have equal opportunities to provide verbal status updates in the meetings. The Docs Lead must ensure Shadows are well-informed on the status updates that release team and SIG Docs need, while Shadows must actively monitor progress to report on. + +- Here is a checklist to guide the weekly status report. + +_Note:_ SIG Docs prefers and welcomes a status of yellow or red on anything that needs attention, has the possiblity to miss deadlines or target dates, or requires follow-up from feature authors and SIGs that you're not receiving. + +[ ] Is the integration branch healthy (does not need rebase)? + +[ ] Has the weekly branch sync been done? (a lapse in 1-2 branch syncs indicates 'yellow' status, 3 or more lapses should be deemed red) + +[ ] Has the PR for the weekly branch sync merged or does it need review? If assistance is needed to resolve merge conflicts, please flag others by communicating on the #release-docs Slack channel + +[ ] Is the Release Notes PR open, reviewed, and merged within the deadline? + +[ ] Is the Release Notes PR late or blocked? + +[ ] A week before the Docs PR Placeholder deadline, have 80% of the enhancements that opted in for docs created a placeholder PR? (anything below 60% opt-in for docs where placeholder PRs are needed should indicate yellow (or red) status, contingent on the amount) + +[ ] Three days before the Docs PR Placeholder deadline, have 90% of the enhancements that opted in for docs created a placeholder PR? (anything below 90% of placeholder PRs being created by enhancements opted in for doc are needed should indicate yellow (or red) status, contingent on the amount) + +[ ] A week before the Docs Ready for Review deadline, are 80% of the docs PRs ready for review? (anything below 60% should indicate yellow (or red) status, contingent on the amount) + +[ ] Three days before the Docs Ready for Review deadline, are 90% of the docs PRs ready for review? (anything below 90% of placeholder PRs being ready for review should indicate yellow (or red) status, contingent on the amount) + +[ ] A week before the Docs Complete deadline, have 80% of the docs PRs merged? (anything below 60% should indicate yellow (or red) status, contingent on the amount) + +[ ] Three days before the Docs Complete deadline, have 90% of the docs PRs merged? (be sure to mention if you need the help of SIG Docs approvers/reviewers to meet your deadline) + +[ ] On the day before any deadline, are there any outstanding items or PRs? + +[ ] On the day of any deadline, are there any outstanding items or PRs? + +### Read up on the release team + +Read this to learn more about the entire [release team and process](https://github.com/kubernetes/sig-release/tree/master/release-team) + +### Select Shadows + +You will be provided with survey results from people interested working on the release team. If you do not have the results, contact the release lead for more information. + +After vetting the volunteers for their roles, role leads should make a final decision on selected shadows with the incoming Release Team Lead. In the past the SIG Docs release team has been between 3-6 members. + +⚠️ Beyond meeting the basic requirements and time commitments, a good Shadow is someone who is active in SIG-Docs. Selection priority should go to previous shadows who want to eventually lead a SIG-Docs release. Other than those few guidelines, use your best judgement! + +[Link for additional information on shadows](https://github.com/kubernetes/sig-release/blob/master/release-team/release-team-selection.md#shadows) + +Verify the shadow selections with the release lead and the emeritus advisor on Slack. + +### Contact volunteers + +- [ ] Send a Slack message to those that you select, e.g: + +> Hey, you're officially on the SIG Docs 1.21 release team as a shadow! Let me know if there's any issues with being a shadow (as far as timing / availability / etc) and feel free to introduce yourself! +> +> Let me start: [General Introduction about your name, workplace, k8s community involvement, timezone etc] +> +>Ok, on to the business... +> +>We are an inclusive group so if there’s something you’re concerned about, or don’t understand, don’t worry and just ask! +> +> First off, check out the release team on-boarding guide: https://github.com/kubernetes/sig-release/blob/master/release-team/release-team-onboarding.md +> +>Make sure you join the following Slack channels: #sig-docs, #sig-release, #release-docs +You'll then want to join these mailing lists if you haven't already: +>- https://groups.google.com/forum/#!forum/kubernetes-sig-release +>- https://groups.google.com/forum/#!forum/kubernetes-sig-docs +>- https://groups.google.com/a/kubernetes.io/g/dev +> +>Access to Google docs and calendar invites are often based on these mailing lists, so it's a good idea to subscribe. +> +>When it comes to contributing and reviewing PRs, you should check out the docs style guide: https://kubernetes.io/docs/contribute/style/style-guide/ +> +>We'll go over this in the meeting, but you may also want to take a quick look at the 1.21 release readme. https://github.com/kubernetes/sig-release/blob/master/releases/release-1.21/README.md +> +>Lastly, I'd love to jump on a call to go over the release process with everybody, describe what we'll be doing, and answer any questions. Below is a poll to see what time works best on Friday (if any). As we near the end of the release cycle I will add a regular weekly check-in. +> +>Please select your preferred time(s) Friday: https://doodle.com/<link-removed> + + +⚠️ Please coordinate with Emeritus Adviser for the release before taking this step. +Send a Slack message to those that you didn't select, e.g: + +> Hey, I'm Jim Angel (Docs Lead for SIG Docs). Thanks for your interest in the SIG Docs 1.14 release team! +> +> The release team for sig-doc shadows has no additional availability, but please stick around help out with some of our other sigs (including sig-docs)! +> +> How can you help? +> - Attend the sig release meetings (07 30 AM PST Bi-weekly on Tuesdays - see #sig-release for more info). +> - SIG-DOCs is always looking for new contributors, please go introduce yourself and we're happy to help! As a bonus, you will be preferred during the next release cycle as opposed to someone not involved with sig-docs. + - Slack is full of other great SIGs that could always use your help! +> +> I am also a resource to reach out to if you have any community questions (there's also #sig-contribex). I started out as a volunteer and now I am part of many Kubernetes sigs and teams. +> +> Thanks again for your interest and time! +> +> Jim Angel + + +### Meet with Shadows + +Find .5-1 hour of time to meet with shadows and explain the release process. Walk through this entire document and review the flow with them. It helps to set expectations that the mantra is "hurry up and wait" but then it gets very hectic at the end. If you have the ability to, please record the meeting and share it with your Shadows for future review. + +1. Add contacts to the shadows release docs, e.g: [https://bit.ly/k8s121-contacts](https://bit.ly/k8s121-contacts) + +### Define schedule + +Create a table to track `Release`, `Branch Created Day`, `Week of Release`, `PR Merge Deadline`, `Release Notes Assignee` +and `Release Notes Reviewer` based on the release timeline. This will serve as an internal schedule and signup sheet for +the release notes team to follow. The schedule is used to track progress and give status updates during release team meetings. + +### Ensure access is set up + +1. As a lead, make sure you are part of the [sig-docs-en-owners](https://github.com/orgs/kubernetes/teams/sig-docs-en-owners). + +1. As a lead, open a PR for approval permission in the [OWNERS_ALIASES](https://github.com/kubernetes/website/blob/main/OWNERS_ALIASES), e.g: [1.21 release](https://github.com/kubernetes/website/pull/26114). + +1. Add docs team to the `website-milestone-maintainers` group in k/org/config/kubernetes/sig-docs/teams.yaml and `release-team` group in k/org/kubernetes/sig-release/teams.yaml, e.g: [1.21 release](https://github.com/kubernetes/org/pull/2445). + +1. Make sure all shadows have edit access to the enhancement spreadsheet. Contact the enhancements lead to grant access for you and shadows. + +1. You need push access to the Kubernetes website repo (contact a SIG Docs chair if you don't have it) + + ⚠️ (**This should be done by the Docs Lead**) Open the [integration branch] by creating a pull request against `main` referencing the `dev-[future release]` branch e.g., the [Release 1.21](https://github.com/kubernetes/website/pull/26153) PR uses the branch `dev-1.21`. + + This release pull request (also known as the [integration branch]) serves as the base for individual, component enhancement PRs of the release. A [integration branch] lets you bundle and merge multiple PRs simultaneously. + + ⚠️ Add the label `do-not-merge/hold` to the PR. + +1. First PR in `dev-[future release]`: Update hugo.toml to show `[future release]` as the current version and add the `[future release]` entry to the drop-down, e.g: [hugo.toml diff](https://github.com/kubernetes/website/pull/40231) + + The intent is that your new branch should be showing as the current version IN the new branch... + +### Update the website configuration ahead of the release + +Update the main `hugo.toml` based on the version on the `main` branch. Open a PR for these changes against the `dev-[future release]` branch (which should already exist - this is a good check!) + +```shell +# Step 1 +# Do this on a fresh local clone OF YOUR FORK +# It's OK to use SSH for the git URL if you know how to do that +git clone https://github.com/yourGitHubUsername/website.git kubernetes-website +cd kubernetes-website +# Step 2 +# Add the upstream repo as a remote +git remote add upstream https://github.com/kubernetes/website.git + +git fetch upstream dev-[future release] +git checkout --track upstream/dev-[future release] +git checkout -b config-toml-[future release] # change for the release you're making, for example config-toml-1.21 +# Step 3 +# Edit hugo.toml to make the changes described above +# save your changes +git add hugo.toml +git commit -m "Updated hugo.toml for [future release] release" +# Step 4 +# Check things look right +git status +git remote -v +# Step 5 +# Push this new branch to your fork +git push origin config-toml-[future release] +``` + +Now create a pull request that targets the next release (here: `dev-1.21`) **not** `main`. + + +## Middle Steps (Weeks 3-8) +The middle weeks of the launch are where the Docs Lead and Docs Lead Shadows track and review incoming PRs. + +### Track PRs + +Track PRs based on the enhancement (KEP) spreadsheet. + +Keep the enhancement tracking spreadsheet up to date with review progress and merge status for each documentation PR. For example: [Kubernetes Enhancements OSS tracking board (1.21 release)](http://bit.ly/k8s121-enhancements) + +⚠️ Assign the enhancements evenly across your Shadows after the enhancement freeze. Assigning shadows before the + enhancement freeze will cause unexpected behavior in the tracking spreadsheet due to frequent updates to dynamic data. + (Tip: When assigning enhancements, try grouping enhancement owners and/or by SIGs) + - You and your Shadows will be responsible for tracking whether the enhancement: + - **has docs:** Actively has docs in place on Kubernetes website or in flight + - **needs docs:** Actively needs docs to support the enhancement in the [future-release] + - **unknown:** After reviewing the KEP, it is unclear if this needs docs or not + - **not required:** The KEP doesn't change anything that requires reflection in Kubernetes website + - You and your Shadows will also be responsible for marking whether the docs are: + - **Complete (Merged):** PR on the dev-[future-release] is done and merged + - **No PR:** No PR is open (helpful for dead line tracking) + - **Late:** No PR is open AND it's passed the deadline + - **Draft (PR):** PR is open but content isn't ready for review + - **Ready for Review (PR):** PR is open but content IS ready for review +- ⚠️ Make sure that every docs PRs for the release have the correct base and set the correct Milestone. For example, enhancement PRs for version 1.21 need abase branch of `dev-1.21` and the Milestone set to `1.21`. + +The spreadsheet can be used to track the current health of the docs for release. For example: + +![Sample spreadsheet](pics/enhancement-tracking.png) + +On the "Enhancement Stats" tab, a table was created to track the Doc Stats and then based on their category, in the other tab, assign a status "Green / Yellow / Red." + +This is very helpful for weekly reports and managing deadlines + +### Communicate major deadlines + +The Release Lead and Enhancements Lead will send announcements to the [Kubernetes Dev Group](https://groups.google.com/a/kubernetes.io/g/dev) periodically during the release cycle. +Communicate with the Release Lead and Enhancements Lead to include the Doc Placeholder PR, Doc PR Ready-for-Review, and Docs Complete deadlines in their announccements. + +COMMUNICATE ALL 3 MAJOR DATES AT LEAST A WEEK PRIOR, INCLUDING THE RELEASE DATE REPO FREEZE, FOLLOWING THE BELOW METHODS: + +- Keep developers apprised of due dates for docs. + Send announcements to: + - [#sig-release](https://kubernetes.slack.com/messages/sig-release) on Slack + - Your team / shadows + - [#sig-docs](https://kubernetes.slack.com/messages/sig-docs) + - [#sig-docs-maintainers](https://kubernetes.slack.com/messages/sig-docs-maintainers) + - [#chairs-and-techleads](https://kubernetes.slack.com/messages/chairs-and-techleads) + - Release subteams: + - [#enhancements](https://kubernetes.slack.com/messages/enhancements) + - [#release-bug-triage](https://kubernetes.slack.com/messages/release-bug-triage) + - [#release-ci-signal](https://kubernetes.slack.com/messages/release-ci-signal) + - [#release-notes](https://kubernetes.slack.com/messages/release-notes) + - [#release-comms](https://kubernetes.slack.com/messages/release-comms) + - (optional) Twitter + - If you tweet, send a message to [#sig-release](https://kubernetes.slack.com/messages/sig-release) and ask for a friendly signal boost (retweets) + +Example notice: + +> Hey! The Docs `Placeholder PR` deadline is Tuesday March 16 HH:MM timezone. +> +> That means if you have a v1.21 enhancement (that requires docs), #sig-docs require that you have _at the very least_ a PR opened against the `dev-1.21` branch in the kubernetes/website repo. +> +> It would be AWESOME if it's the full doc! 😀 +> +> Thanks! Important dates for v1.21: https://github.com/kubernetes/sig-release/blob/master/releases/release-1.21/README.md#tldr +> +> ![Bring out your docs](pics/meme-deadline.jpg) + +### Begin generating Release Notes +Begin running release-notes tool for the ongoing collection of release notes with the first alpha release, which has been cut directly after the latest minor. + +- Update the `release-notes-draft.md` +- Verify release notes are available on (relnotes.k8s.io)[https://relnotes.k8s.io/] +- Informal intro meeting with release notes team to discuss contact information and logistics + +#### Set up the Tools and Generate the Release Notes + +The Docs team is responsible for the generation of the release notes during the release cycle. + +At least one member of the Docs Team should be responsible for [setting up](https://github.com/kubernetes/release/tree/master/docs/krel#installation) and [running](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md) the release-notes subcommand of krel to generate the release notes after each Patch Release: + +1. Update the release notes draft, a markdown file which will become the final document which will encompass all release notes written by contributors during the current release cycle. See previous drafts for versions [1.25](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.25/release-notes/release-notes-draft.md), [v1.24](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.24/release-notes/release-notes-draft.md) or [v1.23](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.23/release-notes/release-notes-draft.md). + +Detailed instructions for generating the release notes bundle is in the [krel release-notes subcommand documentation](https://github.com/kubernetes/release/blob/master/docs/krel/release-notes.md). + +#### Periodically review and fix new release notes + +The Docs team must make sure that the final document includes well-written and informative release notes. To achieve a high-quality document the team should review and edit the +notes by running `krel release-notes --fix` weekly or as often as development pace +demands. + +This command will enable the team to review each release note and edit the note's data. It is recommended that the team splits the work among all members and runs the editing flow on a weekly or biweekly basis. More information about the editing flow can be found in a separate document detailing the [editing process and tooling](editing-flow.md). + +The general style guide for release notes includes checking for: +- Past tense: Release notes should be written in the past tense since the changes have already been implemented. +- Technical jargon: While the notes are generally user-friendly, some technical terms like "VAC" or "scheduling hints" could be explained briefly with backticks or double quotes for users unfamiliar with them. +- Additional context: In some cases, providing more context about the problem these changes address or the specific situations where they're relevant could be helpful for understanding their significance. You can find additional context referenced in the PR in k8s/k8s repo to check what the PR does for end users. + +Additional style guidelines can be found in the [Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/). + +#### Maintain Known Issues + +A ["Known Issues Umbrella Issue"](known-issues-bucket.md) for the release must be created by the Docs team in [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/issues/new) so issues can be collected for the "Known Issues" section of the release notes. See previous known issues for [1.25](https://github.com/kubernetes/kubernetes/issues/110336), [1.24](https://github.com/kubernetes/kubernetes/issues/109027), [v1.23](https://github.com/kubernetes/kubernetes/issues/104885), [v1.22](https://github.com/kubernetes/kubernetes/issues/101728), [v1.21](https://github.com/kubernetes/kubernetes/issues/98232), [v1.19](https://github.com/kubernetes/kubernetes/issues/90304), [v1.18](https://github.com/kubernetes/kubernetes/issues/86882) or [v1.17](https://github.com/kubernetes/kubernetes/issues/83683). + +#### Ensure Release Highlights are Reflected in the Notes + +The Communications team will hold a meeting to discuss Release Highlights sometime around Code Freeze. Ensure that at least one person from the Docs team attends this meeting with the Release Lead and Enhancements Lead. The Docs team should ensure that the "Release Highlights" identified in this meeting are reflected in the "Release Highlights" section of the release notes. If no one is able to attend the meeting, reach out to the Communications team, Release Lead or Enhancements Lead to ensure messaging around Release Highlights is coordinated. + +#### Get feedback from SIG Leads + +Around Code Freeze, the Docs team will get in touch with the SIG Leads to ensure that the Release Notes accurately reflect the major themes for their SIGs. The team will also ensure that major issues captured in the release notes are confirmed by the SIG leads before release day. + +If gentle nudging of SIG Leads is not effective in retrieving feedback/confirmation, the Docs Team can use a reasonable amount of creative liberty in completing the notes. + +### Reach out to Enhancement Owners + +#### Before the Open Placeholder PR Deadline +After the Enhancement Freeze, reach out to all tracked enhancements to see if new docs or modification to existing docs +are required, e.g: + +> Hello < tag enhancement owner(s) > :wave:, < future-release > Docs < Shadow/Lead > here. +> +> Does this enhancement work planned for < future-release > require any new docs or modification to existing docs? +> +> If so, please follows the steps [here](https://kubernetes.io/docs/contribute/new-content/new-features/#open-a-placeholder-pr) +> to open a PR against `dev-[future release]` branch in the `k/website` repo. This PR can be just a placeholder at this +> time and must be created before < Docs Open Paceholder deadline HH:MM timezone> +> +> Also, take a look at [Documenting for a release](https://kubernetes.io/docs/contribute/new-content/new-features/#for-developers-or-other-sig-members) +> to get yourself familiarize with the docs requirement for the release. +> +> Thank you! + +#### Before the PRs Ready for Review Deadline +After the Open Placeholder PR deadline, reach out to all open/tracked doc PRs to remind the PR owners to get their doc ready to be reviewed, e.g: + +> Hello < tag doc owner(s) > :wave: please take a look at [Documenting for a release - PR Ready for Review](https://kubernetes.io/docs/contribute/new-content/new-features/#pr-ready-for-review) +> to get your PR ready for review before < PR Ready for Review deadline HH:MM timezone >. Thank you! + +#### Before the Docs Freeze Deadline + +1. **Update the Enhancements board** + - You and your Shadows are also responsible for updating the Status of the enhancement as tracked or at risk for Docs Freeze: + - **Tracked for Docs Freeze:** Documentation is in an active review, will likely be merged by Doc Freeze deadline or has already been merged. + - **At Risk for Docs Freeze:** The Docs Freeze deadline is upcoming and the documentation looks to be at risk of making that deadline, risking an exception. + +2. **Coordinate a Plan with SIG Docs**: +It is crucial for the Docs Lead to plan and coordinate with the SIG Docs leads, especially between the PR Ready for Review deadline and the Docs Freeze deadline. Establish a clear plan to address the available capacity of SIG Docs and Release Docs to review doc PRs and anticipate potential obstacles such as KubeCon or other events that might affect the availability of reviewers. Ask how Release Docs can help! + +3. **Communicate Docs Freeze at start of Review** +After the PR ready for review deadline, reach out to all open/tracked doc PRs to remind the PR owners to get docs reviewed, e.g: + +> Hello < tag doc owner(s) > :wave:, a friendly reminder that this PR needs a doc review by < Docs Complete Deadline HH:MM timezone > to get this +> into the release. Please reach out to required SIGs to get their review. Thank you! + +For a technical review, reach out to the KEP reviewers and approvers. KEP reviewers and approvers are usually listed in the +[kep.yaml e.g.](https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/1194-prod-readiness/kep.yaml) + +> Hello < tag KEP reviewer(s) / approver(s) > :wave: please provide a technical review for this PR by < Docs Complete deadline HH:MM timezone > +> to get this into the release. Thank you! + +#### Week of Docs Freeze + +Follow up with owners of all docs PRs that are not in a mergeable state via both a GitHub comment and a Slack DM. To be ready to merge, a PR requires both `/lgtm` and `/approve`, one of them from a technical reviewer, and comments and suggestions addressed. If the docs owner or KEP owners are unresponsive, you may reach out to the chairs and technical leads of the SIG that owns the associated KEP. + +Example: + + +>Hello {doc/KEP owners} 👋! I'm reaching out from the Docs team. +Just checking in as we approach **Docs Freeze on {date with timezone}**. +This documentation appears to still be under review. To meet the Docs Freeze, this PR must have a technical review as well as `lgtm` and `approve` labels applied, without any unaddressed comments or concerns from SIG Docs. +The status of this enhancement is marked as `at risk for docs freeze`. Thank you! + + +#### After Docs Freeze + +Once Docs Freeze has passed, if there are any docs PRs not marked "ready to merge," reach out in the PR with the following: + +>Hello 👋, {current release} Docs team here. +This PR did not meet deadline for [docs freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#docs-freeze). +Enhancements without required documentation may be removed from the current release. If you still wish to include this enhancement in {current release}, please file an [exception](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) request. Thanks! + +### Maintain the current and upcoming `dev` branch + +This allows us to avoid merge conflicts on release day with `dev-[future release]`. + +#### ⚠️ Periodically merge `main` into `dev-[future release]` + +To merge `main` into `dev-[future release]` on your local fork: + +```bash +git clone git@github.com:{YOUR_USER}/website.git +# Step 0 (if you don't already have a remote called "upstream") +git remote add upstream https://github.com/kubernetes/website.git | git remote add upstream git@github.com:kubernetes/website.git +# Step 1 +git fetch upstream main +# Step 2 +git fetch upstream dev-[future release] +# Step 3 +git checkout --track upstream/dev-[future release] +# Step 4 +git pull --ff-only # make sure you're up to date +# Step 5 You might see merge conflicts at this point. +git merge upstream/main +## if needed: https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/ +## git add ... +## git merge --continue +# Step 6 +git checkout -b merged-main-dev-[future release] +# Step 7 +git commit -m "Merge main into dev-[future release] to keep in sync" +# Step 8 +git push origin merged-main-dev-[future release] +``` + +You may need to fix conflicts manually. If somebody has improved a page on `main`, and at the same time it has been updated in the dev branch for the next release, we may need to figure out how to make those changes work together. If something comes up which isn't obvious, you can always abort the merge and reach out to SIG Docs for help. + +When you have completed resolving the differences manually, run `git merge --continue` to complete the merge. Then carry on from step 5. + +Submit a PR against upstream `dev-[future release]` from your fork's branch `merged-main-dev-[future release]` by changing the +`base` to `dev-[future-release]` when creating the PR. +e.g. [Merge main into future release](https://github.com/kubernetes/website/pull/16225). + +⚠️ **Ensure the PR is passing tests on GitHub**. + +Perform merge activity on a regular basis to ensure a smooth release. eg: once/week during intial weeks and increase the frequency if required closer to the end of the release cycle. + +Report out the `dev-[future release]` branch health in Release Team meetings and sig-docs meetings. + +### Monitor PRs + +Make a query showing all PRs raised against dev-[future release] and monitor that regularly e.g., [1.21 search](https://github.com/kubernetes/website/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+base%3Adev-1.21+label%3Alanguage%2Fen) + +### Enforce deadlines + +Enforce deadlines the day after. Communicate with SIGs via Slack and email lists to keep everyone up-to-date on status. + +### Review PRs + +It is the Docs Lead and Shadows' responsibility to ensure the incoming docs meet our standards. Considering SIG Docs has limited capacity, the Release Doc Lead and Shadows should actively engage in reviewing and providing feedback on documentation changes in each of their PRs. It's impossible for us to understand every technical component, so it is important to get a technical LGTM too if you're unsure about technical accuracy. + +Also review each PR for: + +- Check that the PR is in the `[future release]` milestone +- Check that the KEP / enhancement is likely to land in `[future release]`. +- Review PR commit histories, and make sure that PR commit histories contain only changes to files. It's especially important to **avoid revert commits**. Encourage developers to rebase any PRs with complicated commit histories. +- Check that the PR has a technical LGTM. +- KEP reviewers and approvers can provide a technical review or delegate appropriatley. KEP reviewers and approvers are usually listed in the [kep.yaml e.g.](https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/1194-prod-readiness/kep.yaml) +- If no LGTM, assign `sig/*` labels (listed in the enhancement tracking spreadsheet) to help find technical reviewers. + +#### Style Guide Checklist (High to Low Level) + +The [style guide](https://kubernetes.io/docs/contribute/style/style-guide/) consists of guidelines, not rules. + +- Make sure new docs use the correct page content type. + - [Concept](https://kubernetes.io/docs/contribute/style/page-content-types/#concept) + - [Task](https://kubernetes.io/docs/contribute/style/page-content-types/#task) + - [Tutorial](https://kubernetes.io/docs/contribute/style/page-content-types/#tutorial) +- Make sure the page content renders correctly. + - Numbered list + - Code blocks + - [Shortcodes](https://kubernetes.io/docs/contribute/style/style-guide/#shortcodes) for notes, cautions, and warnings +- Make sure the content makes sense + - Check spelling + - Consider the Style Guide's [best practices](https://kubernetes.io/docs/contribute/style/style-guide/#content-best-practices) and [patterns to avoid](https://kubernetes.io/docs/contribute/style/style-guide/#patterns-to-avoid) + +> Note: Most PR owners are **not** writers, and many are non-native / secondary English speakers. Missing commas or passive voice should **not** block a /lgtm if the content is accurate. If something really bugs you, make a note and open a PR to fix it later. + +Once the above is met, comment the following on the PR: + +``` +/lgtm +/approve +``` + +(you might already have /lgtm from the technical review stage; another /lgtm is fine if the prerequisites are already met). + +If you need help reviewing PRs, ask SIG Docs (#sig-docs channel on Slack) for help. The weekly [PR Wrangler](https://github.com/kubernetes/website/wiki/PR-Wranglers) is your best resource. + +> Note: PR's against the dev branch can merged at any time assuming they meet the criteria. Be careful though that you don't merge a feature that might be pushed out to the next release. If that happens, you can revert - but it's better to avoid the mess all together. +> +> You can add /hold to mark a PR that should not merge until the matching code changes are already in. + +### Nominate a Docs Lead for the Next Release + +⚠️ During Code Freeze, pick a successor who has demonstrated the ability and understanding of the process. + +**Usually this is a Docs Lead Shadow that has been on the team for 2 releases with a desire to continue with the SIG Docs.** + +- Reach out to the person you have in mind and confirm they are able to commit the time and effort for a successful release. +- Once confirmed, inform the Release Team and the SIG Docs Team. + +If no suitable candidates are available, you may choose to lead again or nominate someone outside of the current release team (e.g: a recent Docs Lead). + +## Late-Middle Steps (Weeks 7-8) - Sync with Comms team on the release blog post + +The Docs Lead is responsible for publishing the release blog post during the release day. Therefore, it's important to +follow the status of the blog posts created by the Comms team. + +Validate that the Comms team has all the blog posts (release and features) ready for the upcoming release. +If unsure, send a message to their [Slack](https://kubernetes.slack.com/messages/release-comms/) channel, e.g: + +> Hi Comms team :wave: 1.21 Docs Lead here, can someone confirm that all blog posts PRs related to the release have been +> opened and are being reviewed? Is there anything the Docs team can do to help? + +Be congnizant of the status of the release blog post as merging and publishing the release blog post is a significant step on release day e.g., [1.21 release blog](https://github.com/kubernetes/website/pull/27233). + +## Late Steps (Weeks 9-11) - Prep for the release + +### Touch base with SIG Docs + +The Kubernetes API reference, kubectl, and components documentation are generated by a SIG Docs tech lead. Check in with SIG Docs with a brief reminder, and confirm that they have everything they need to generate these docs. + +### Touch base with SIG Cluster Lifecycle (kubeadm) + +Validate that SIG Cluster Lifecycle has all of the docs in place for the upcoming release. These are mainly kubeadm docs (upgrading, installing, changes, etc). If unsure, send a message to their [Slack](https://kubernetes.slack.com/messages/sig-cluster-lifecycle/) channel, e.g: + +> Hi SIG Cluster Lifecylce :wave: 1.21 Docs Lead here, can someone confirm that all docs are in place for the upcoming 1.21 release? + +### Clean up and edit the final Release Notes + +The confirmed release notes are cleaned up and copy edited by the Docs team to ensure uniform language/style is used. The team must make sure that the final document conforms to the [Documentation Style Guide](https://kubernetes.io/docs/contribute/style/style-guide/). + +### Curate the External Dependencies section + +A "Dependencies" section should be curated which outlines how external dependency versions have changed since the last release. These changes are currently [automatically aggregated](https://github.com/kubernetes/community/issues/2234), but should still be manually validated for correct content and formatting. + +### Update Releases Page (the week before the release) + +Create a PR against the dev-[future-release] branch to add an entry for [future-release] on https://kubernetes.io/releases. + +To update https://kubernetes.io/releases, update https://github.com/kubernetes/website/blob/main/data/releases/schedule.yaml. +The following fields are required: + - `release`: <1.xy> + - `releaseDate`: <YYYY-MM-DD> # date of release + - `next`: <1.xy.1> + - `cherryPickDeadline`: <YYYY-MM-DD> # the Friday before `targetDate` + - `targetDate`: <YYYY-MM-DD> # the 2nd Wednesday of the next month + - `maintenanceModeStartDate`: # 2 months before `endOfLifeDate` + - `endOfLifeDate`: <YYYY-MM-DD> # the 28th of the month after 1 year and 2 months after the release + +[Example PR for 1.29](https://github.com/kubernetes/website/pull/44135) +Have a Release Manager lgtm the dates on the PR. +This PR can be merged on release day by the Docs lead. + +## Release Week (Week 12) +⚠️ Everything in this section is important. It's OK to ask for advice if you're not sure. + +### Update the site configuration files for previous releases + +Working from your fork of the `kubernetes/website` repository, update the `config.toml` files for the 4 previous releases. You need to open 4 separate PRs, because each release has its own `release-` branch. + +For the immediately previous release, there will not be a `release-[previous-release]` branch, so you should open the pull request updating the site configuration for the previous release targeting `main` and update the base branch to `release-[previous-release]` once you have created the `release-[previous-release]` branch. + +See this for example (1.29 was the "future release"): +* 1.25 https://github.com/kubernetes/website/pull/44302 +* 1.26 https://github.com/kubernetes/website/pull/44301 +* 1.27 https://github.com/kubernetes/website/pull/44299 +* 1.28 https://github.com/kubernetes/website/pull/44298 + +Changes required: +- Set `latest` to the [future release] version +- Update `githubbranch` and `fullversion` (if present) to the latest patched version of the corresponding release +- Update the list of versions to include the [future release] and remove the oldest release +- Set `deprecated` to `true` +- For each previous release, update the patch version to the latest patch version available + +Here is an example of the steps taken to update the release 1.28 config.toml for the future release 1.29, as well as the [PR](https://github.com/kubernetes/website/pull/44298) + +```shell +git remote add upstream https://github.com/kubernetes/website.git && git remote set-url --push upstream no_push +git fetch upstream main +git pull --ff-only +# make necessary updates to hugo.toml at this point +git checkout -b update-release-1.28-hugo.toml +git add . +git commit -m "Updates v1.28 hugo.toml for release v1.29" +git push origin update-release-1.28-hugo.toml +Go to your fork in a browser: https://www.github.com/{YOUR_USER}/website +Submit a PR against upstream `main` from your fork's branch `update-release-[previous-release]-hugo.toml`. The day before the release, once you have created the `release-[previous-release]` branch, change the base branch for this PR from `main` to `release-[previous-release]` +``` + +Here is an example of the steps taken to update the release 1.27 config.toml for the future release v1.29, as well as the [PR](https://github.com/kubernetes/website/pull/44299) + +```shell +git fetch upstream release-1.27 +git checkout --track upstream/release-1.27 +# make necessary updates to hugo.toml at this point +git checkout -b update-release-1.27-hugo.toml +git add . +git commit -m "Updates v1.27 hugo.toml for release v1.29" +git push origin update-release-1.27-hugo.toml +In this case, a PR is submitted against `release-1.27` from the fork's branch `update-release-1.27-hugo.toml`. +``` + +⚠️ DO NOT MERGE **ANY** OF THE CONFIGURATION PULL REQUESTS UNTIL THE RELEASE HAS OCCURRED + +### Update the site configuration files for future release + +The future release branch site configuration also needs to be updated to reflect the latest patch versions of the past releases. +Create a PR against the `dev-[future-release]` branch to update the `config.toml` file that matches the +[PRs for previous releases](#update-the-site-configuration-files-for-previous-releases). + +### Inform localization teams + +Let localization teams know about the k/website repo freeze and the tentative timeline(s) for important dates with a comment to the GitHub discussion created earlier in the release cycle. + +> Hello localization team leads! I don't think any action is required from you, but I wanted to let you know that we are on track for the release on April 8, 2021 and all Kubernetes website branches are up to date (main, dev-1.21). Let me know if I can help with anything! Thanks! + +### Day before Release Day +⚠️ Everything in this section is important. It's OK to ask for advice if you're not sure. + +#### Request for temporary write access to the website repo + +Create a PR against [kubernetes/org](https://github.com/kubernetes/org) repo to add current Docs Lead to the +[website-maintainers](https://github.com/orgs/kubernetes/teams/website-maintainers) team e.g., +[PR to org repo](https://github.com/kubernetes/org/pull/2364) + +Assign PR to current [SIG Docs chairs](https://github.com/kubernetes/community/tree/master/sig-docs#chairs) for approval. + +⚠️ write access is required to freeze the website repo and to complete tasks during the release day + +⚠️ With elevated access, make sure you are not accidentally pushing to upstream by disabling `git push` command against upstream repo. +``` +git remote set-url --push upstream no_push +``` +> Note: Temporary write access to the website repo is required for the following tasks. Notify a SIG Docs chair to review and approve the PR before proceeding to the next step. + +#### Freeze Kubernetes website + +24 hours before the release, freeze the [k/website](https://github.com/kubernetes/website) repo: ⚠️ no PRs should be allowed to merge **AT ALL** until the release PR has successfully merged. There is an exception for your release PRs, which will bypass that restriction. + +- Submit an issue with `tide/merge-blocker` label. Depending upon your permissions, a [SIG Docs chair](https://github.com/kubernetes/community/tree/master/sig-docs#leadership) can assist you with adding the label. You may need to add the label manually by selecting the gear icon in the labels section on the left-hand side of the issue after you have opened it, rather than using a `tide` command. + +- Submit a freeze announcement following our [protocols](#communicate-major-deadlines) to #sig-docs and #kubernetes-contributors + +#### Create the release branch + +Creating the release branch lets you snapshot the current docs in a new branch, `release-[current release]`, after merging `dev-[future release]`. For example: For the 1.21 release cycle where `main` represents `v1.20`, you would create `release-1.20`. + +> **Note:** Creating a branch requires someone with write access to `k/website`, such as a [SIG Docs co-chair](https://github.com/kubernetes/community/tree/master/sig-docs#leadership). + +- From [k/website](https://github.com/kubernetes/website) click on `main` branch. +- Type the name of the release branch. +- **click** Create branch `release-x.yy` from `main` + +![](pics/new-branch.png) + +> **Note:** During the v1.29 release process, it was discovered that someone during the v1.28 release cycle had erroneously created and abandoned a `release-1.28` branch. This left the v1.29 Docs team with a release branch that was 2,330 commits behind `main`, rendering it unusuable as a release branch. Should this issue arise again, any repo admin or org admin has the necessary permissions to delete the branch. Reach out to the [SIG Docs chairs](https://github.com/kubernetes/community/tree/master/sig-docs#leadership) to obtain their agreement that deletion is necessary. You may also be able to simply fast-forward the branch. + +#### Update Netlify + +Update the Netlify configuration. You will need to work with a [SIG Docs chair](https://github.com/kubernetes/community/tree/master/sig-docs#leadership) to have them complete this task for you. + +Log in to [Netlify](https://app.netlify.com/) and navigate to the Sites tab. + +- Create a Netlify site that builds from `release-[current-release]` branch. Even though the `[current-release]` is currently `main` (e.g: https://kubernetes.io), eventually `main` will be a newer k8s version and we'll use the `release-[current-release]` branch to contain all prior changes - like a snapshot. (e.g https://v1-20.docs.kubernetes.io) + - Taking the defaults here is mostly fine + - When in doubt, compare it to a working example + - e.g, site name: k8s-v1-20 + - e.g, custom domain: v1-20.docs.kubernetes.io + +> Note: if the `release-[current-release]` is created before the website is frozen you may need to merge in main to keep up-to-date +> If you create the `release-[current-release]` right before freezing the k/website repo, it is less likely you need to keep the `release-[current-release]` up-to-date but always verify with the following steps: +To merge `main` into `release-[current-release]` on your local fork: + +```shell +# Step 0 (if you don't already have a remote called "upstream") +git remote add upstream https://github.com/kubernetes/website.git +# Step 1 +git fetch upstream main +# Step 2 +git checkout --track upstream/release-[current release] +# Step 3 +git merge upstream/main +# Step 4 +git checkout -b merged-main-release-[current release] +# Step 5 +git commit -m "Merge main into release-[current release] to keep in sync" +# Step 6 +git push origin merged-main-release-[current release] +``` + +Now create a pull request to merge the new branch you've made into the `release-[current-release]` branch on [k/website](https://github.com/kubernetes/website). + +> Note: Make a note of the commit hash of the last commit of the `release-current-release]` branch as it will be used to tag the commit as the final commit for the snapshot. + +#### Merge `main` + +After the freeze, if the dev-[future-release] branch is behind `main`, create a PR to merge `main` into dev-[future-release]. + +[Sync](#%EF%B8%8F-periodically-merge-main-into-dev-future-release) `main` into the release-[current-release] branch the day before the release. + +After review from SIG Docs, both PRs will need to be merged manually using the `Create a merge commit` method of merging. + +#### Get approvals for open PRs + +At this stage, [integration branch] PR and configuration PRs should be ready to be reviewed and approved by Sig Docs. +Request a review for all open PRs, especially the [integration branch], to make sure it can be merged on time during the +release day. + +#### Review milestone + +Review milestone for completion and outstanding PRs. For PRs that won't make the release, change their milestone and make sure everyone is clear. + + +## Release Day +⚠️ Everything in this section is important. It's OK to ask for advice if you're not sure. + +This process takes approximately 4 hours. + +Coordinate with the Release Team for the exact timing. Typically the release is 'officially' built, then you merge the docs, and then you approve the blog post to "make it official". For 1.21, we merged docs at 11:00 am PDT and the blog was merged at 11:30 am PDT - marking the release "complete". + +### Publish final Release Notes + +- Final version of release notes committed for release +- Close the _Known Issues_ Issue and make sure everything has been resolved +- Release Notes must be merged into master prior to the release. If this is not done the release will include the latest draft. +- Keep an eye on the #release-notes channel for any requests for any questions, edits or missed release notes. + +### Merge the integration branch + +Once release management team has successfully cut the release, Docs Lead will merge the [integration branch] manually using +the `Create a merge commit` method of merging. +Do not delete the dev-[future-release] when GitHub asks. + +- Verify that the pull request has an `approved` and an `lgtm` label. +- Remove the hold from the on-hold integration PR when needed and merge into `main`. +- Check the [Netlify build logs](https://app.netlify.com/sites/kubernetes-io-main-staging/deploys) to make sure the +site builds successfully. +- Once the site is up, validate the docs by checking the navigation, version dropdown, [generated APIs](https://kubernetes.io/docs/reference/), +[documentation version](https://kubernetes.io/docs/home/supported-doc-versions/), and random clicks. +> Note: Make a note of the commit hash of the integration branch merge + +> Note: In 1.28 the Docs Release Team had failing CLA checks while merging the integration branch, in which case they made a decision to not change history at all. Rather, they merged the integration branch even with failing CLA checks since the commit did pass CLA when it was merged to `dev-1.28`, and the docs team did not want to fix this by altering history due to the side effects of doing so. + +### Publish the release blog post + +After validation, merge the blog post manually using the `Create a merge commit` method of merging. + +- Verify that the pull request has an `approved` and an `lgtm` label. +- Remove the hold from blog post when needed and merge into `main`. +- Check the [Netlify build logs](https://app.netlify.com/sites/kubernetes-io-main-staging/deploys) to make sure the +site builds successfully. +- Navigate to the [blog page](https://kubernetes.io/blog/) to validate that release blog post is available. +- Once confirmed, notify the release team with the link to the blog post. This will allow the Release Lead to send out +a notification of the release to the Kubernetes Dev mailing list. + +### Create release with tag + +- Tag the commit hash before the [integration branch] as the final commit for [current release]. +- Tag the commit hash of the [integration branch] as the initial commit of the [future release] + +> Note: This can be done at any time post-release. +> You should have kept track of the last commit hash of the release branch, `release-[current release]` and the commit hash of the integration branch merge. The following steps will confirm the commit hashes. + +```shell +git clone https://github.com/kubernetes/website/ +cd website +git checkout main +``` +``` +Switched to branch 'main' +Your branch is up to date with 'origin/main'. +``` +Confirm the commit hash before the [integration branch]: +```shell +git show <merge commit of integration branch>^1 +``` +The following example is from the 1.21 release: + - It was noted that the last commit hash of the `release-1.20` branch is 6d252624b21452bcf6c22f156cccd316111204d4 from PR 2738 + - The commit hash of the integration branch merge, which is the first commit of 1.21, is 969a3db92326746a94e2eb4449fd60f25d9151b8. +```shell +git show 969a3db92326746a94e2eb4449fd60f25d9151b8^1 + +commit 6d252624b21452bcf6c22f156cccd316111204d4 (origin/release-1.20) +Merge: d1c650d2a 5767f39fd +Author: Kubernetes Prow Robot <k8s-ci-robot@users.noreply.github.com> +Date: Wed Apr 7 07:53:53 2021 -0700 + + Merge pull request #27387 from Arhell/label + + [ja] updated labels for cli command in the PHP Guestbook tutorial +``` +Proceed with tagging the commit hashes: +```shell +git tag -a snapshot-final-v1.20 6d252624b -m "Release 1.20 final snapshot" +git tag -a snapshot-initial-v1.21 969a3db92 -m "Release 1.21 initial snapshot" +git push --tags origin main +``` + +After creating the tags, you can create a release based off of a tag very easily. Follow the naming conventions as done before and update: https://github.com/kubernetes/website/releases + +- Navigate to the [k/website releases page](https://github.com/kubernetes/website/releases) +- Click "Draft a new release" +- Enter the snapshot initial version tag in the "tag version" box +- Enter "snapshot-initial-v1.20: Release 1.20" as release title and "Release 1.20 initial snapshot" as the description. +- Click "Publish release" + +> Note: 1.20 should be replaced with the [future release] + +### Unfreeze Kubernetes website + +Unfreeze the k/website repo as done earlier (remove the `tide/merge-blocker` label and close issue). + +Afterwards, submit an unfreeze announcement following our [protocols](#communicate-major-deadlines) + +### Close the [future release] milestone + +- Merge the 4 config.toml's created as part of the sunsetting docs. + - Remove hold from the configuration PRs to allow merge automatically by Prow. +- Find the open milestone for [future release] and close it. ⚠️ Be careful not to delete it. + +## Same day or Day After Release - Verification, Cleanup, and Handoff +These steps should be done after the launch. They require approximately 4 hours of work. + +### Review Docs Process and Update Documentation + +### Hold a docs-only retro with Sig Docs + +- Can we improve process? +- Can we improve playbook? +- Can we add / **remove** stuff from playbook? + + +## Day after Release - Prepare the Next Docs Lead for Success + +### Create the dev-future-FUTURE branch + +⚠️ Create a working branch (Named `dev-[future FUTURE release]`, for example `dev-1.22`) locally, based on `main`. Push it to upstream. + +```shell +# This example is for a future release version 1.22 +git clone https://github.com/kubernetes/website.git +git checkout -b dev-1.22 +git commit --allow-empty -m "Tracking commit for v1.22 docs" +git push -u origin dev-1.22 +``` + +### Modify prow config file + +Create a [pull request](https://github.com/kubernetes/test-infra/pull/21727) against [k/test-infra](https://github.com/kubernetes/test-infra) + to configure [prow](https://github.com/kubernetes/test-infra/tree/master/prow#) to automatically apply milestones to future release branch + and to remove the configuration for the last release e.g. [Add branch protection and milestone applier for k/website](https://github.com/kubernetes/test-infra/pull/30389). + +```diff +kubernetes/website: +- dev-1.21: 1.21 ++ dev-1.22: 1.22 +``` + + +### Create milestone + +Create a milestone for NEW upcoming release. Depending on your permissions, you might need to contact a SIG Docs maintainer. Move anything missed for the current release to the new milestone. + +### Update Netlify + +You will need to work with a [SIG Docs Chair or Technical Lead](https://git.k8s.io/community/sig-docs#leadership) to have them complete this task for you. + +Log in to [Netlify](https://app.netlify.com/) and navigate to the Sites tab. + +- Clean Up + - Delete the oldest docs site (usually a deprecated version 5+ releases ago) + ![Delete old site](pics/netlify-delete-old-site.png) +- Update [vnext](https://app.netlify.com/sites/kubernetes-io-vnext-staging/settings) staging + - Point at the new future dev-[future release] + ![Update vnext](pics/netlify-update-vnext.png) + - Taking the defaults here is mostly fine + - When in doubt, compare it to a working example + - (check) build only production branch + +- Save the change and verify that the change is live at [https://kubernetes-io-vnext-staging.netlify.com/](https://kubernetes-io-vnext-staging.netlify.com/). + +### Update Slack + +Announce that `[dev-future FUTURE release]` branch is open for new feature docs on slack #sig-docs. + +### Reassign issues + +- Clean Up +⚠️ Assign any issues / features / PRs (that missed the release) to the new Docs Lead + +### Clean up access + +- ⚠️ Create a PR against the **[kubernetes/org](https://github.com/kubernetes/org) repo** to **remove** the current Docs Lead from +the [website-maintainers](https://github.com/orgs/kubernetes/teams/website-maintainers) team and to **remove** current +Docs shadows from [website-milestone maintainers](https://github.com/orgs/kubernetes/teams/website-milestone-maintainers/), +e.g., [Remove 1.21 shadows from sig docs teams](https://github.com/kubernetes/org/pull/2624) + - The current lead must stay in the website milestone maintainers list until the `[current release]` website version is officially supported. + - The future lead must stay in the website milestone maintainers list to prepare for the next release. +- ⚠️ Create a PR against the **[kubernetes/website](https://github.com/kubernetes/website) repo** to **remove** the current Docs Lead from [sig-docs-en-owners](https://github.com/orgs/kubernetes/teams/sig-docs-en-owners) + + +## Celebrate! +YOU MADE IT! 🎉 Celebrate a job well done, keep an eye out for anything on fire, and begin to relax! diff --git a/release-team/role-handbooks/docs/branch-sync-script/README.md b/release-team/role-handbooks/docs/branch-sync-script/README.md index 270701e8e6e..c86930e6a35 100644 --- a/release-team/role-handbooks/docs/branch-sync-script/README.md +++ b/release-team/role-handbooks/docs/branch-sync-script/README.md @@ -1,35 +1,35 @@ -# Kubernetes Release Docs Team - Branch Sync Script - -Bash script to use to perform weekly branch syncs for kubernetes release team - -## Description - -Each week the release docs team needs to merge the `main` branch into `dev-[future release]` branch in order to avoid merge conflicts on release day. This script provides a user friendly execution of the branch sync commands from the [release docs handbook](https://github.com/kubernetes/sig-release/blob/b51237ddb556bb6d24e43d7424e55cb9e66694d5/release-team/role-handbooks/docs/Release-Timeline.md#maintain-the-current-and-upcoming-dev-branch)). - -## Getting Started - -### Installing - -Download the script or clone this repo and add executable permissions to the script to allow it to run -``` -chmod +x branch-sync.sh -``` - -## Usage -``` -Usage: ./branch-sync.sh FUTURE_RELEASE [-p | --push] [-u | --user] -Options: - -p, --push Push the branch sync automatically - -u, --user Manually set github user - -h, --help Display this help message -``` - -### Example Start of Script - -``` -➜ ./branch-sync.sh 1.31 -u youruser -USER: youruser -FUTURE_RELEASE: 1.31 -AUTO_PUSH: false -Do you want to proceed with these values? (y/n): +# Kubernetes Release Docs Team - Branch Sync Script + +Bash script to use to perform weekly branch syncs for kubernetes release team + +## Description + +Each week the release docs team needs to merge the `main` branch into `dev-[future release]` branch in order to avoid merge conflicts on release day. This script provides a user friendly execution of the branch sync commands from the [release docs handbook](https://github.com/kubernetes/sig-release/blob/b51237ddb556bb6d24e43d7424e55cb9e66694d5/release-team/role-handbooks/docs/Release-Timeline.md#maintain-the-current-and-upcoming-dev-branch)). + +## Getting Started + +### Installing + +Download the script or clone this repo and add executable permissions to the script to allow it to run +``` +chmod +x branch-sync.sh +``` + +## Usage +``` +Usage: ./branch-sync.sh FUTURE_RELEASE [-p | --push] [-u | --user] +Options: + -p, --push Push the branch sync automatically + -u, --user Manually set github user + -h, --help Display this help message +``` + +### Example Start of Script + +``` +➜ ./branch-sync.sh 1.31 -u youruser +USER: youruser +FUTURE_RELEASE: 1.31 +AUTO_PUSH: false +Do you want to proceed with these values? (y/n): ``` \ No newline at end of file diff --git a/release-team/role-handbooks/docs/branch-sync-script/branch-sync.sh b/release-team/role-handbooks/docs/branch-sync-script/branch-sync.sh index 0d6dc5a03f6..d9ef3e7ce71 100644 --- a/release-team/role-handbooks/docs/branch-sync-script/branch-sync.sh +++ b/release-team/role-handbooks/docs/branch-sync-script/branch-sync.sh @@ -1,141 +1,141 @@ -#!/bin/bash - -# Initialize Variables -YOUR_USER="" -AUTO_PUSH=false -FUTURE_RELEASE="" - -# Help Function -help() { - echo "Usage: $0 FUTURE_RELEASE [-p | --push] [-u | --user]" - echo "Options:" - echo " -p, --push Push the branch sync automatically without prompting" - echo " -u, --user Manually set github user" - echo " -h, --help Display this help message" -} - -# Function to print commands in bold and colored text -print_command() { - echo -e "\033[1;34mExecuting: $1\033[0m" -} - -# Function to execute a command and handle errors -execute() { - print_command "$1" - eval $1 - if [ $? -ne 0 ]; then - echo -e "\033[1;31mError: Command failed - $1\033[0m" - exit 1 - fi -} - -# Parse command-line options -while [[ $# -gt 0 ]]; do - key="$1" - case $key in - -h|--help) - help - exit 0 - ;; - -p|--push) - AUTO_PUSH=true - shift - ;; - -u|--user) - YOUR_USER="$2" - shift - shift - ;; - *) - FUTURE_RELEASE="$key" - shift - ;; - esac -done - -# Ensure a future release argument is provided -if [ -z "$FUTURE_RELEASE" ]; then - help - exit 1 -fi - -# Ensure a github user is provided -if [ -z "$YOUR_USER" ]; then - echo "Error: Please provide your github user either through the -u option or directly adding it in the branch-sync.sh file" - help - exit 1 -fi - -# Display configuration and prompt user before execution -echo -e "USER: $YOUR_USER" -echo -e "FUTURE_RELEASE: $FUTURE_RELEASE" -echo -e "AUTO_PUSH: $AUTO_PUSH" - -echo -e "\033[1;35mDo you want to proceed with these values? (y/n):\033[0m" -read response -if [[ "$response" =~ ^[Yy]$ ]]; then - - # Print recieved arguments - print_command "FUTURE_RELEASE: $FUTURE_RELEASE" - print_command "AUTO_PUSH: $AUTO_PUSH" - - # Clone the repository - execute "git clone git@github.com:$YOUR_USER/website.git" - - # Change directory to the cloned repository - execute "cd website" - - # Add the upstream remote and set the push URL to no_push - execute "git remote add upstream https://github.com/kubernetes/website.git" - execute "git remote set-url --push upstream no_push" - - # Fetch the upstream main and future release branches - execute "git fetch upstream main" - execute "git fetch upstream dev-$FUTURE_RELEASE" - - # Checkout the future release branch tracking upstream - execute "git checkout --track upstream/dev-$FUTURE_RELEASE" - - # Ensure the branch is up-to-date - execute "git pull --ff-only" - - # Merge the main branch from upstream, stopping on conflicts - print_command "git merge upstream/main -m "Merge main into dev-$FUTURE_RELEASE to keep in sync"" - git merge upstream/main -m "Merge main into dev-$FUTURE_RELEASE to keep in sync" - if [ $? -ne 0 ]; then - echo -e "\033[1;31mError: Potentially a merge conflict has been detected.\033[0m" - echo -e "\033[1;32mIf there is a merge conflict, resolve the conflict\033[0m" - echo -e "\033[1;32m- More on resolving merge conflicts: https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/\033[0m" - echo -e "\033[1;32m- e.g. git add ... and git commit -m "Merge main into dev-[future release] to keep in sync"\033[0m" - exit 1 - fi - - # Create a new branch for the merged changes - execute "git checkout -b merged-main-dev-$FUTURE_RELEASE" - - # Push the new branch to the origin repository - if [ "$AUTO_PUSH" = true ]; then - execute "git push origin merged-main-dev-$FUTURE_RELEASE" - echo -e "\033[1;32mBranch Sync Pushed!\033[0m" - echo -e "\033[1;33mTo create the PR, go to your fork in a browser: https://www.github.com/{YOUR_USER}/website\033[0m" - echo -e "\033[1;33mSubmit a PR against upstream 'dev-$FUTURE_RELEASE' from your fork's branch 'merged-main-dev-$FUTURE_RELEASE' by changing the 'base' from 'main' to 'dev-[future-release]' when creating the PR.\033[0m" - echo -e "\033[1;33me.g. [Merge main into future release](https://github.com/kubernetes/website/pull/16225).\033[0m" - else - # Prompt to confirm before pushing to origin - echo -e "\033[1;35mDo you want to push the changes to origin? (y/n):\033[0m" - read response - if [[ "$response" =~ ^[Yy]$ ]]; then - execute "git push origin merged-main-dev-$FUTURE_RELEASE" - echo -e "\033[1;32mBranch Sync Pushed!\033[0m" - echo -e "\033[1;33mTo create the PR, go to your fork in a browser: https://www.github.com/{YOUR_USER}/website\033[0m" - echo -e "\033[1;33mSubmit a PR against upstream 'dev-$FUTURE_RELEASE' from your fork's branch 'merged-main-dev-$FUTURE_RELEASE' by changing the 'base' from 'main' to 'dev-[future-release]' when creating the PR.\033[0m" - echo -e "\033[1;33me.g. [Merge main into future release](https://github.com/kubernetes/website/pull/16225).\033[0m" - else - echo -e "\033[1;33mChanges were not pushed to origin.\n\033[0m" - echo -e "You can manually push using the following command:" - echo -e "\033[0;32mgit push origin merged-main-dev-$FUTURE_RELEASE\033[0m" - fi - fi -else - echo -e "\033[1;31mTerminating...\033[0m" +#!/bin/bash + +# Initialize Variables +YOUR_USER="" +AUTO_PUSH=false +FUTURE_RELEASE="" + +# Help Function +help() { + echo "Usage: $0 FUTURE_RELEASE [-p | --push] [-u | --user]" + echo "Options:" + echo " -p, --push Push the branch sync automatically without prompting" + echo " -u, --user Manually set github user" + echo " -h, --help Display this help message" +} + +# Function to print commands in bold and colored text +print_command() { + echo -e "\033[1;34mExecuting: $1\033[0m" +} + +# Function to execute a command and handle errors +execute() { + print_command "$1" + eval $1 + if [ $? -ne 0 ]; then + echo -e "\033[1;31mError: Command failed - $1\033[0m" + exit 1 + fi +} + +# Parse command-line options +while [[ $# -gt 0 ]]; do + key="$1" + case $key in + -h|--help) + help + exit 0 + ;; + -p|--push) + AUTO_PUSH=true + shift + ;; + -u|--user) + YOUR_USER="$2" + shift + shift + ;; + *) + FUTURE_RELEASE="$key" + shift + ;; + esac +done + +# Ensure a future release argument is provided +if [ -z "$FUTURE_RELEASE" ]; then + help + exit 1 +fi + +# Ensure a github user is provided +if [ -z "$YOUR_USER" ]; then + echo "Error: Please provide your github user either through the -u option or directly adding it in the branch-sync.sh file" + help + exit 1 +fi + +# Display configuration and prompt user before execution +echo -e "USER: $YOUR_USER" +echo -e "FUTURE_RELEASE: $FUTURE_RELEASE" +echo -e "AUTO_PUSH: $AUTO_PUSH" + +echo -e "\033[1;35mDo you want to proceed with these values? (y/n):\033[0m" +read response +if [[ "$response" =~ ^[Yy]$ ]]; then + + # Print recieved arguments + print_command "FUTURE_RELEASE: $FUTURE_RELEASE" + print_command "AUTO_PUSH: $AUTO_PUSH" + + # Clone the repository + execute "git clone git@github.com:$YOUR_USER/website.git" + + # Change directory to the cloned repository + execute "cd website" + + # Add the upstream remote and set the push URL to no_push + execute "git remote add upstream https://github.com/kubernetes/website.git" + execute "git remote set-url --push upstream no_push" + + # Fetch the upstream main and future release branches + execute "git fetch upstream main" + execute "git fetch upstream dev-$FUTURE_RELEASE" + + # Checkout the future release branch tracking upstream + execute "git checkout --track upstream/dev-$FUTURE_RELEASE" + + # Ensure the branch is up-to-date + execute "git pull --ff-only" + + # Merge the main branch from upstream, stopping on conflicts + print_command "git merge upstream/main -m "Merge main into dev-$FUTURE_RELEASE to keep in sync"" + git merge upstream/main -m "Merge main into dev-$FUTURE_RELEASE to keep in sync" + if [ $? -ne 0 ]; then + echo -e "\033[1;31mError: Potentially a merge conflict has been detected.\033[0m" + echo -e "\033[1;32mIf there is a merge conflict, resolve the conflict\033[0m" + echo -e "\033[1;32m- More on resolving merge conflicts: https://help.github.com/articles/resolving-a-merge-conflict-using-the-command-line/\033[0m" + echo -e "\033[1;32m- e.g. git add ... and git commit -m "Merge main into dev-[future release] to keep in sync"\033[0m" + exit 1 + fi + + # Create a new branch for the merged changes + execute "git checkout -b merged-main-dev-$FUTURE_RELEASE" + + # Push the new branch to the origin repository + if [ "$AUTO_PUSH" = true ]; then + execute "git push origin merged-main-dev-$FUTURE_RELEASE" + echo -e "\033[1;32mBranch Sync Pushed!\033[0m" + echo -e "\033[1;33mTo create the PR, go to your fork in a browser: https://www.github.com/{YOUR_USER}/website\033[0m" + echo -e "\033[1;33mSubmit a PR against upstream 'dev-$FUTURE_RELEASE' from your fork's branch 'merged-main-dev-$FUTURE_RELEASE' by changing the 'base' from 'main' to 'dev-[future-release]' when creating the PR.\033[0m" + echo -e "\033[1;33me.g. [Merge main into future release](https://github.com/kubernetes/website/pull/16225).\033[0m" + else + # Prompt to confirm before pushing to origin + echo -e "\033[1;35mDo you want to push the changes to origin? (y/n):\033[0m" + read response + if [[ "$response" =~ ^[Yy]$ ]]; then + execute "git push origin merged-main-dev-$FUTURE_RELEASE" + echo -e "\033[1;32mBranch Sync Pushed!\033[0m" + echo -e "\033[1;33mTo create the PR, go to your fork in a browser: https://www.github.com/{YOUR_USER}/website\033[0m" + echo -e "\033[1;33mSubmit a PR against upstream 'dev-$FUTURE_RELEASE' from your fork's branch 'merged-main-dev-$FUTURE_RELEASE' by changing the 'base' from 'main' to 'dev-[future-release]' when creating the PR.\033[0m" + echo -e "\033[1;33me.g. [Merge main into future release](https://github.com/kubernetes/website/pull/16225).\033[0m" + else + echo -e "\033[1;33mChanges were not pushed to origin.\n\033[0m" + echo -e "You can manually push using the following command:" + echo -e "\033[0;32mgit push origin merged-main-dev-$FUTURE_RELEASE\033[0m" + fi + fi +else + echo -e "\033[1;31mTerminating...\033[0m" fi \ No newline at end of file diff --git a/release-team/role-handbooks/docs/editing-flow.md b/release-team/role-handbooks/docs/editing-flow.md index 88413a7776a..c1397813988 100644 --- a/release-team/role-handbooks/docs/editing-flow.md +++ b/release-team/role-handbooks/docs/editing-flow.md @@ -1,257 +1,257 @@ -# Release Notes Editing Flow - - [Introduction](#introduction) - - [Motivation](#motivation) - - [Workflow Operation](#workflow-operation) - - [krel release-notes --fix](#krel-release-notes--fix) - - [Starting the interactive mode](#starting-the-interactive-mode) - - [Reviewing and editing the release notes](#reviewing-and-editing-the-release-notes) - - [Exiting the review loop](#exiting-the-review-loop) - - [Submitting changes back](#submitting-changes-back) - - [Re-running the workflow](#re-running-the-workflow) - - [Modified Release Notes](#modified-release-notes) - - -## Introduction - -Ensuring the production of a document comprised of well written and -informative release notes is one of the responsibilities of the -Release Team each cycle. - -A good introduction talk is the "[Lightning Talk: Kubernetes Release Notes Tips & Tricks](https://www.youtube.com/watch?v=n62oPohOyYs)" -where you can find some general guidelines about the release notes -(wording, grammar, labels, etc). - -Release Engineering has developed various tools to help the Team -complete its duties. One of them is `krel` — the [Kubernetes Release -Toolbox](https://github.com/kubernetes/release/tree/master/docs/krel). -Krel has many subcommands that help the release process in many ways, -among them the `release-notes` subcommand. - -This document details how to use krel to review and edit the -Kubernetes release notes during the cycle. - -## Motivation - -The final Kubernetes Release Notes document is a large document composed of -hundreds of entries that the contributors write into their Pull Requests. As -an example, the [release notes document for Kubernetes 1.19](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.19.md) -has 388 entries. - -Before v1.20, the Release Notes Team had to wait until code freeze to review -and edit each Kubernetes release note in a short time. During the same -timespan, the Team was expected to contact the sigs and edit the Major themes. -Work was unbalanced with little to do most of the cycle and a packed -agenda during the last few weeks. - -To balance the team's efforts evenly, tooling was developed to enable a new workflow. - -## Workflow Operation - -Reviewing the release notes involves running krel regularly to review new release -notes in incoming pull requests, possibly editing some of them, and submitting -changes back to the `sig-release` repository. - -### `krel release-notes --fix` - -The main interactive editing flow is started with the `--fix` flag. The interactive -mode will show the user all release notes that need to be reviewed. After -reviewing each note, the user can edit the note's attributes using their editor of -choice. - -The `--fix` flag is available when invoking krel with the `--create-draft-pr` option. -This is an example invocation to edit the release notes for Kubernetes v1.19: - -```bash -krel release-notes --create-draft-pr --org=MyGitHubOrg --fix --tag=v1.19.0 --fork=MyGitHubUsername -``` -As with all `krel release-notes` subcommands, a GitHub token must be exported in -an environment variable called `GITHUB_TOKEN`. The user should supply their GitHub -organization where krel will push changes and from where it will create pull -requests. - -After invoking the subcommand, krel will clone the `kubernetes/kubernetes` repository -and query GitHub for all pull requests filed during the specified range. Note that -this process might take a long time, particularly at the end of the cycle when the -branch has lots of commits. - -The `--fork` flag should be set to your GitHub user (the organization that owns your fork of k/sig-release). This is required to automatically create the release notes branch on your fork of sig-release. - -Since the note gatherer hits the GitHub API quite heavily, you will get rate limited. -During a normal operation `krel` will handle them correctly, but you may find yourself -forced to wait when doing several runs after one another. - - -#### Starting the interactive mode - -When `--fix` is used, krel will switch to interactive mode. -It will print a short intro and prompt the user before starting: - -``` -Welcome to the Kubernetes Release Notes editing tool! - -This tool will allow you to review and edit all the release -notes submitted by the Kubernetes contributors before publishing -the updated draft. - -The flow will show each of the release notes that need to be -reviewed once and you can choose to edit it or not. - -After you choose, it will be marked as reviewed and will not -be shown during the next sessions unless you choose to do a -full review of all notes. - -You can hit Ctrl+C at any time to exit the review process -and submit the draft PR with the revisions made so far. - -Would you like to continue from the last session? (y/n): -``` - -#### Reviewing and editing the release notes - -Once started, the flow will present the user each release note to -review. If the user's notices a field that needs to be changed, -they might choose to edit that note. Here is an example: - -``` -Release Note for PR 92546: -========================== -Pull Request URL: https://github.com/kubernetes/kubernetes/pull/92546 - Author: @liggitt - SIGs: [api-machinery] - Kinds: [cleanup] - Areas: [custom-resources] - Feature: false - ActionRequired: false - ReleaseVersion: 1.19.0 - Text: - │ kube-apiserver: openapi schemas published for custom resources now reference - │ standard ListMeta schema definitions - -- Fix note for PR #92546? (y/N): - -``` - -If the user chooses to edit the note when prompted, krel will open the current note -in the default editor (defined in `$EDITOR`) for the user to edit: - -``` ---- -# This is the current map for this Pull Request. -# The original note content is commented out, if you need to -# change a field, remove the comment and change the value. -# To cancel, exit without changing anything or leave the file blank. -# Important! pr: and releasenote: have to be uncommented. -# -# pr: 92546 -# releasenote: -# text: 'kube-apiserver: openapi schemas published for custom resources now reference -# standard ListMeta schema definitions' -# documentation: [] -# author: liggitt -# areas: -# - custom-resources -# kinds: -# - cleanup -# sigs: -# - api-machinery -# feature: false -# action_required: false -# release_version: 1.19.0 -~ -~ -~ -``` - -By default, all the note's fields are commented out. The user can choose one or more -fields to uncomment and modify. If at least one field is modified, a [release note map -file](https://github.com/kubernetes/release/blob/master/docs/release-notes-maps.md) -will be created in the release directory after saving the file and exiting the editor. - -__Note:__ A valid map file should have at least the PR number and the releasenote struct. - -If the user makes an error (a YAML syntax error for example), krel will prompt the user -to retry editing the note: - -``` -ERRO The yaml code does not have a PR number -- An error occurred while editing PR #92546. Try again? (y/n) -``` - -#### Exiting the review loop - -When in the interactive cycle, krel will present the user with every release note that -has not yet been reviewed. It is not necessary to review all the notes in one go, at -any time the user may hit Ctrl+C and the interactive flow will exit at that point. - -To continue the editing process at a later time, `krel` will save its state -in the release directory. It will store information about each review session inside of -the `release-notes/sessions/`. The JSON files include the user's data and the release -notes reviewed during the session. - -At this point, krel will create the current release notes draft. This file is the -latest version of the automatically generated release notes and is made public for -any interested party to review. - -### Submitting changes back - -After exiting the interactive mode, krel will prompt the user to create a pull request -submitting all changes back to the sig-release repository: - -``` -INFO Release Notes Draft written to /tmp/k8s-730127624/releases/release-1.19/release-notes-draft.md -Create pull request with your changes? (y/n): -``` - -If the user choses so, krel will create the pull request on their behalf by creating a -branch in their sig-release fork, pushing the changes, and creating the PR in GitHub. - -Note that the PR will include the release notes draft with all changes defined in -the maps during the editing flow. All the mapping files and session data will be -submitted in the same PR. - -If the user cancels the PR, the local fork of sig-release will be left in a temporary -directory with all changes done by krel. To submit the changes back to sig-release, -the user will be required to push and create the PR manually. To assist them with this -process, krel will show some instructions: - -``` -Create pull request with your changes? (y/n): n -Pull request creation was canceled. Your local copy of k/sig-release -has not been deleted for you to review your changes. You may -push your changes to your fork and create the PR from there. - -Your fork of kubernetes/sig-release was cloned here: -/tmp/k8s-730127624 - -WARN Pull request canceled. Local changes were not pushed back. -``` - -Needless to say, all editing not PR'ed back to sig-release will be lost. - -### Re-running the workflow - -It is highly recommended that the Release Notes team runs the editing flow -frequently (say on a weekly basis), alternating team members ensure the -current user has a reasonable amount of work to do and the editing effort -is split fairly. - -Thanks to the session files, each subsequent run of krel will remember where -it left off. This means that each user will need to review only new Pull -Requests that are filed after the last run. - -#### Modified Release Notes - -During the release cycle, each Pull Request author and/or admins may modify -the release note and/or flags in GitHub. When this happens, krel will detect -the change and will present the note again for review, flagging it so that the -user knows that the contents have been modified: - -``` -Release Note for PR 92546: -✨ Note contents are modified with a map -========================== -Pull Request URL: https://github.com/kubernetes/kubernetes/pull/92546 - Author: @liggitt - SIGs: [api-machinery] -``` - +# Release Notes Editing Flow + - [Introduction](#introduction) + - [Motivation](#motivation) + - [Workflow Operation](#workflow-operation) + - [krel release-notes --fix](#krel-release-notes--fix) + - [Starting the interactive mode](#starting-the-interactive-mode) + - [Reviewing and editing the release notes](#reviewing-and-editing-the-release-notes) + - [Exiting the review loop](#exiting-the-review-loop) + - [Submitting changes back](#submitting-changes-back) + - [Re-running the workflow](#re-running-the-workflow) + - [Modified Release Notes](#modified-release-notes) + + +## Introduction + +Ensuring the production of a document comprised of well written and +informative release notes is one of the responsibilities of the +Release Team each cycle. + +A good introduction talk is the "[Lightning Talk: Kubernetes Release Notes Tips & Tricks](https://www.youtube.com/watch?v=n62oPohOyYs)" +where you can find some general guidelines about the release notes +(wording, grammar, labels, etc). + +Release Engineering has developed various tools to help the Team +complete its duties. One of them is `krel` — the [Kubernetes Release +Toolbox](https://github.com/kubernetes/release/tree/master/docs/krel). +Krel has many subcommands that help the release process in many ways, +among them the `release-notes` subcommand. + +This document details how to use krel to review and edit the +Kubernetes release notes during the cycle. + +## Motivation + +The final Kubernetes Release Notes document is a large document composed of +hundreds of entries that the contributors write into their Pull Requests. As +an example, the [release notes document for Kubernetes 1.19](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.19.md) +has 388 entries. + +Before v1.20, the Release Notes Team had to wait until code freeze to review +and edit each Kubernetes release note in a short time. During the same +timespan, the Team was expected to contact the sigs and edit the Major themes. +Work was unbalanced with little to do most of the cycle and a packed +agenda during the last few weeks. + +To balance the team's efforts evenly, tooling was developed to enable a new workflow. + +## Workflow Operation + +Reviewing the release notes involves running krel regularly to review new release +notes in incoming pull requests, possibly editing some of them, and submitting +changes back to the `sig-release` repository. + +### `krel release-notes --fix` + +The main interactive editing flow is started with the `--fix` flag. The interactive +mode will show the user all release notes that need to be reviewed. After +reviewing each note, the user can edit the note's attributes using their editor of +choice. + +The `--fix` flag is available when invoking krel with the `--create-draft-pr` option. +This is an example invocation to edit the release notes for Kubernetes v1.19: + +```bash +krel release-notes --create-draft-pr --org=MyGitHubOrg --fix --tag=v1.19.0 --fork=MyGitHubUsername +``` +As with all `krel release-notes` subcommands, a GitHub token must be exported in +an environment variable called `GITHUB_TOKEN`. The user should supply their GitHub +organization where krel will push changes and from where it will create pull +requests. + +After invoking the subcommand, krel will clone the `kubernetes/kubernetes` repository +and query GitHub for all pull requests filed during the specified range. Note that +this process might take a long time, particularly at the end of the cycle when the +branch has lots of commits. + +The `--fork` flag should be set to your GitHub user (the organization that owns your fork of k/sig-release). This is required to automatically create the release notes branch on your fork of sig-release. + +Since the note gatherer hits the GitHub API quite heavily, you will get rate limited. +During a normal operation `krel` will handle them correctly, but you may find yourself +forced to wait when doing several runs after one another. + + +#### Starting the interactive mode + +When `--fix` is used, krel will switch to interactive mode. +It will print a short intro and prompt the user before starting: + +``` +Welcome to the Kubernetes Release Notes editing tool! + +This tool will allow you to review and edit all the release +notes submitted by the Kubernetes contributors before publishing +the updated draft. + +The flow will show each of the release notes that need to be +reviewed once and you can choose to edit it or not. + +After you choose, it will be marked as reviewed and will not +be shown during the next sessions unless you choose to do a +full review of all notes. + +You can hit Ctrl+C at any time to exit the review process +and submit the draft PR with the revisions made so far. + +Would you like to continue from the last session? (y/n): +``` + +#### Reviewing and editing the release notes + +Once started, the flow will present the user each release note to +review. If the user's notices a field that needs to be changed, +they might choose to edit that note. Here is an example: + +``` +Release Note for PR 92546: +========================== +Pull Request URL: https://github.com/kubernetes/kubernetes/pull/92546 + Author: @liggitt + SIGs: [api-machinery] + Kinds: [cleanup] + Areas: [custom-resources] + Feature: false + ActionRequired: false + ReleaseVersion: 1.19.0 + Text: + │ kube-apiserver: openapi schemas published for custom resources now reference + │ standard ListMeta schema definitions + +- Fix note for PR #92546? (y/N): + +``` + +If the user chooses to edit the note when prompted, krel will open the current note +in the default editor (defined in `$EDITOR`) for the user to edit: + +``` +--- +# This is the current map for this Pull Request. +# The original note content is commented out, if you need to +# change a field, remove the comment and change the value. +# To cancel, exit without changing anything or leave the file blank. +# Important! pr: and releasenote: have to be uncommented. +# +# pr: 92546 +# releasenote: +# text: 'kube-apiserver: openapi schemas published for custom resources now reference +# standard ListMeta schema definitions' +# documentation: [] +# author: liggitt +# areas: +# - custom-resources +# kinds: +# - cleanup +# sigs: +# - api-machinery +# feature: false +# action_required: false +# release_version: 1.19.0 +~ +~ +~ +``` + +By default, all the note's fields are commented out. The user can choose one or more +fields to uncomment and modify. If at least one field is modified, a [release note map +file](https://github.com/kubernetes/release/blob/master/docs/release-notes-maps.md) +will be created in the release directory after saving the file and exiting the editor. + +__Note:__ A valid map file should have at least the PR number and the releasenote struct. + +If the user makes an error (a YAML syntax error for example), krel will prompt the user +to retry editing the note: + +``` +ERRO The yaml code does not have a PR number +- An error occurred while editing PR #92546. Try again? (y/n) +``` + +#### Exiting the review loop + +When in the interactive cycle, krel will present the user with every release note that +has not yet been reviewed. It is not necessary to review all the notes in one go, at +any time the user may hit Ctrl+C and the interactive flow will exit at that point. + +To continue the editing process at a later time, `krel` will save its state +in the release directory. It will store information about each review session inside of +the `release-notes/sessions/`. The JSON files include the user's data and the release +notes reviewed during the session. + +At this point, krel will create the current release notes draft. This file is the +latest version of the automatically generated release notes and is made public for +any interested party to review. + +### Submitting changes back + +After exiting the interactive mode, krel will prompt the user to create a pull request +submitting all changes back to the sig-release repository: + +``` +INFO Release Notes Draft written to /tmp/k8s-730127624/releases/release-1.19/release-notes-draft.md +Create pull request with your changes? (y/n): +``` + +If the user choses so, krel will create the pull request on their behalf by creating a +branch in their sig-release fork, pushing the changes, and creating the PR in GitHub. + +Note that the PR will include the release notes draft with all changes defined in +the maps during the editing flow. All the mapping files and session data will be +submitted in the same PR. + +If the user cancels the PR, the local fork of sig-release will be left in a temporary +directory with all changes done by krel. To submit the changes back to sig-release, +the user will be required to push and create the PR manually. To assist them with this +process, krel will show some instructions: + +``` +Create pull request with your changes? (y/n): n +Pull request creation was canceled. Your local copy of k/sig-release +has not been deleted for you to review your changes. You may +push your changes to your fork and create the PR from there. + +Your fork of kubernetes/sig-release was cloned here: +/tmp/k8s-730127624 + +WARN Pull request canceled. Local changes were not pushed back. +``` + +Needless to say, all editing not PR'ed back to sig-release will be lost. + +### Re-running the workflow + +It is highly recommended that the Release Notes team runs the editing flow +frequently (say on a weekly basis), alternating team members ensure the +current user has a reasonable amount of work to do and the editing effort +is split fairly. + +Thanks to the session files, each subsequent run of krel will remember where +it left off. This means that each user will need to review only new Pull +Requests that are filed after the last run. + +#### Modified Release Notes + +During the release cycle, each Pull Request author and/or admins may modify +the release note and/or flags in GitHub. When this happens, krel will detect +the change and will present the note again for review, flagging it so that the +user knows that the contents have been modified: + +``` +Release Note for PR 92546: +✨ Note contents are modified with a map +========================== +Pull Request URL: https://github.com/kubernetes/kubernetes/pull/92546 + Author: @liggitt + SIGs: [api-machinery] +``` + diff --git a/release-team/role-handbooks/docs/how-tos/Take-over-a-doc-pr.md b/release-team/role-handbooks/docs/how-tos/Take-over-a-doc-pr.md index a3d8fd872da..f5adf24c90b 100644 --- a/release-team/role-handbooks/docs/how-tos/Take-over-a-doc-pr.md +++ b/release-team/role-handbooks/docs/how-tos/Take-over-a-doc-pr.md @@ -1,49 +1,49 @@ -# Taking over a Doc PR - -Sometimes, exceptions to Doc Freeze arise when a feature and its documentation are almost ready for release, but the original author cannot complete the documentation due to extenuating circumstances. In rare cases where SIG Docs, SIG Release, and the relevant technical SIG all agree, a lead or shadow from the Release Docs team may be asked to finish the documentation. This document outlines the process. - -## Contributing to the Original PR - -Ideally, the Doc lead should be able to contribute new commits to the same PR that another SIG originally opened. [Here's the detailed process](https://kubernetes.io/docs/contribute/review/for-approvers/#commit-into-another-person-s-pr). This can be done through editing in the GitHub UI. - -It's also common for the author's source branch to be from their personal fork of the Kubernetes website. As an alternative, Release Docs may need to push commits to the branch of the author's fork. - -## Creating a New PR - -If it's determined that Release Doc members cannot make commits on the original PR, they may need to create a new one. To do so, a fork of the author's fork needs to be created so that their source branch can continue to be iterated on. Here are the Git commands to accomplish this: - -```bash -# Step 0 - Clone the kubernetes website repo, only if you haven't before: -git clone https://github.com/yourGitHubUsername/website.git kubernetes-website -cd kubernetes-website -git remote add upstream https://github.com/kubernetes/website.git && git remote set-url --push upstream no_push - -# Step 1 - Add the original author's fork -git remote add docAuthor git@github.com:docAuthor/website.git && git remote set-url --push docAuthor no_push - -# Step 2 - Confirm that you have `docAuthor` as a remote -git remote -v - -# Step 3 - Fetch the state of all branches from their remote repo -git fetch docAuthor - -# Step 4 - Checkout the doc PR's source branch -git checkout kep_xxxx_authors_pr_branch_name - -# Step 5 - Checkout a new branch based on this one -git checkout -b kep_xxx_authors_branch_name_releasedocs - -# Step 6 - Push your new branch to your fork -git push --set-upstream origin/kep_xxxx_authors_pr_branch_name_releasedocs - -# Step 7 - Make all the changes you'd like in the editor of your choice - -# Step 8 - Add, commit, and push your changes -git add path/to/changed/files -git commit -m "Helpful commit message for changes" -git push - -# Step 9 - On GitHub, open a new PR from your fork and branch to the Kubernetes fork and `dev-[future release]` -``` -Once a new PR is open, proceed with the normal review process, collaborating with SIG Docs and the relevant technical SIG to ensure the changes are approved. - +# Taking over a Doc PR + +Sometimes, exceptions to Doc Freeze arise when a feature and its documentation are almost ready for release, but the original author cannot complete the documentation due to extenuating circumstances. In rare cases where SIG Docs, SIG Release, and the relevant technical SIG all agree, a lead or shadow from the Release Docs team may be asked to finish the documentation. This document outlines the process. + +## Contributing to the Original PR + +Ideally, the Doc lead should be able to contribute new commits to the same PR that another SIG originally opened. [Here's the detailed process](https://kubernetes.io/docs/contribute/review/for-approvers/#commit-into-another-person-s-pr). This can be done through editing in the GitHub UI. + +It's also common for the author's source branch to be from their personal fork of the Kubernetes website. As an alternative, Release Docs may need to push commits to the branch of the author's fork. + +## Creating a New PR + +If it's determined that Release Doc members cannot make commits on the original PR, they may need to create a new one. To do so, a fork of the author's fork needs to be created so that their source branch can continue to be iterated on. Here are the Git commands to accomplish this: + +```bash +# Step 0 - Clone the kubernetes website repo, only if you haven't before: +git clone https://github.com/yourGitHubUsername/website.git kubernetes-website +cd kubernetes-website +git remote add upstream https://github.com/kubernetes/website.git && git remote set-url --push upstream no_push + +# Step 1 - Add the original author's fork +git remote add docAuthor git@github.com:docAuthor/website.git && git remote set-url --push docAuthor no_push + +# Step 2 - Confirm that you have `docAuthor` as a remote +git remote -v + +# Step 3 - Fetch the state of all branches from their remote repo +git fetch docAuthor + +# Step 4 - Checkout the doc PR's source branch +git checkout kep_xxxx_authors_pr_branch_name + +# Step 5 - Checkout a new branch based on this one +git checkout -b kep_xxx_authors_branch_name_releasedocs + +# Step 6 - Push your new branch to your fork +git push --set-upstream origin/kep_xxxx_authors_pr_branch_name_releasedocs + +# Step 7 - Make all the changes you'd like in the editor of your choice + +# Step 8 - Add, commit, and push your changes +git add path/to/changed/files +git commit -m "Helpful commit message for changes" +git push + +# Step 9 - On GitHub, open a new PR from your fork and branch to the Kubernetes fork and `dev-[future release]` +``` +Once a new PR is open, proceed with the normal review process, collaborating with SIG Docs and the relevant technical SIG to ensure the changes are approved. + diff --git a/release-team/role-handbooks/docs/known-issues-bucket.md b/release-team/role-handbooks/docs/known-issues-bucket.md index 6220aff49f7..457808b336a 100644 --- a/release-team/role-handbooks/docs/known-issues-bucket.md +++ b/release-team/role-handbooks/docs/known-issues-bucket.md @@ -1,24 +1,24 @@ -First search in [Kubernetes -issues](https://github.com/kubernetes/kubernetes/issues) to ensure that an -issue hasn't already been created for `known issues` in the current release. Create a regular issue in -[kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/issues/new) -with a title such as: - -``` -<RELEASE NUMBER> Release Notes: "Known Issues" - -``` - -And a body such as: - -``` -This issue is a bucket placeholder for collaborating on the "Known Issues" additions for the 1.13 Release Notes. If you know of issues or API changes that are going out in 1.13, please comment here so that we can coordinate incorporating information about these changes in the Release Notes. - -/assign @<RELEASE NOTES TEAM MEMBERS> - -/sig release -/milestone v<RELEASE NUMBER> -``` - -Note: You need to be part of `kubernetes/kubernetes-milestone-maintainers` to -use the `/milestone` label. If this does not currently apply to you, send a message to the release notes lead or release lead to set the milestone. +First search in [Kubernetes +issues](https://github.com/kubernetes/kubernetes/issues) to ensure that an +issue hasn't already been created for `known issues` in the current release. Create a regular issue in +[kubernetes/kubernetes](https://github.com/kubernetes/kubernetes/issues/new) +with a title such as: + +``` +<RELEASE NUMBER> Release Notes: "Known Issues" + +``` + +And a body such as: + +``` +This issue is a bucket placeholder for collaborating on the "Known Issues" additions for the 1.13 Release Notes. If you know of issues or API changes that are going out in 1.13, please comment here so that we can coordinate incorporating information about these changes in the Release Notes. + +/assign @<RELEASE NOTES TEAM MEMBERS> + +/sig release +/milestone v<RELEASE NUMBER> +``` + +Note: You need to be part of `kubernetes/kubernetes-milestone-maintainers` to +use the `/milestone` label. If this does not currently apply to you, send a message to the release notes lead or release lead to set the milestone. diff --git a/release-team/role-handbooks/docs/relnotes-template.md b/release-team/role-handbooks/docs/relnotes-template.md index c0564ef5bd4..28830048159 100644 --- a/release-team/role-handbooks/docs/relnotes-template.md +++ b/release-team/role-handbooks/docs/relnotes-template.md @@ -1,36 +1,36 @@ -<!-- TODO: change the previous version number --> - -## Changelog since v1.x.0 - -A complete changelog for the release notes is now hosted in a customizable -format at [https://relnotes.k8s.io][1]. Check it out and please give us your -feedback! - -<!-- TODO: change the version number --> - -[1]: https://relnotes.k8s.io/?releaseVersions=1.x.0 - -## What’s New (Major Themes) - -<!-- Add themes from Comms Blog here --> - -## Known Issues - -<!-- Add issues from known issues bucket (known-issues-bucket.md) here --> - -<!-- Insert the generated release notes here. Usually they look like: -## Urgent Upgrade Notes -### (No, really, you MUST read this before you upgrade) -## Changes by Kind -### Deprecation -### API Change -### Feature -### Design -### Documentation -### Failing Test -### Other (Bug, Cleanup or Flake) ---> - -## Dependencies - -<!-- Add here --> +<!-- TODO: change the previous version number --> + +## Changelog since v1.x.0 + +A complete changelog for the release notes is now hosted in a customizable +format at [https://relnotes.k8s.io][1]. Check it out and please give us your +feedback! + +<!-- TODO: change the version number --> + +[1]: https://relnotes.k8s.io/?releaseVersions=1.x.0 + +## What’s New (Major Themes) + +<!-- Add themes from Comms Blog here --> + +## Known Issues + +<!-- Add issues from known issues bucket (known-issues-bucket.md) here --> + +<!-- Insert the generated release notes here. Usually they look like: +## Urgent Upgrade Notes +### (No, really, you MUST read this before you upgrade) +## Changes by Kind +### Deprecation +### API Change +### Feature +### Design +### Documentation +### Failing Test +### Other (Bug, Cleanup or Flake) +--> + +## Dependencies + +<!-- Add here --> diff --git a/release-team/role-handbooks/docs/sig-leads-email.md b/release-team/role-handbooks/docs/sig-leads-email.md index 8a6dd28426a..438a8e76b7c 100644 --- a/release-team/role-handbooks/docs/sig-leads-email.md +++ b/release-team/role-handbooks/docs/sig-leads-email.md @@ -1,33 +1,33 @@ -Hey Everyone, - -My name is {NAME}, and I'm on the Release Notes Team for the {RELEASE NUMBER} release. - -We've put together a draft of the release notes document so far, but we need -your help to make sure that the work each SIG has contributed is reflected accurately. -Please check out the release notes draft document [here]({LINK HERE}) ASAP and: - -1. CTRL-F your SIG and edit/move notes to a more appropriate location--we just -ask that you do it as a suggestion so it's easy for the release notes team to -keep track of changes. - -For example, if you're the SIG lead of SIG CLI, then search for "SIG CLI". This -will show release notes that were contributed by your SIG as well as release -notes for features that were a collaboration between your SIG and other SIGs. - -2. If you know of anything that should appear in the "Known Issues" section of -the Release Notes, please leave a comment with the issue and a draft of the note -text on [this GitHub Issue]({LINK TO GITHUB ISSUE}) - -3. If you have some more time and want to help shape your SIG's sections of the -release notes for {RELEASE NUMBER}, there are a few more things you can do as well! - -- Copy-edit notes from your SIG that may contain what you know to be technical -inaccuracies, grammar inconsistencies, etc. -- Remove minor and/or non-user facing release notes contributed by your SIG -- In the sections where notes are attributed to multiple SIGs (including yours), -leave a comment if the note is more related to your SIG or one of the other SIGs. -We can then use this to further categorize the notes! - - -Thank you so much for helping put together release notes for your SIG, we know -you're busy and appreciate your support of the {RELEASE NUMBER} release! +Hey Everyone, + +My name is {NAME}, and I'm on the Release Notes Team for the {RELEASE NUMBER} release. + +We've put together a draft of the release notes document so far, but we need +your help to make sure that the work each SIG has contributed is reflected accurately. +Please check out the release notes draft document [here]({LINK HERE}) ASAP and: + +1. CTRL-F your SIG and edit/move notes to a more appropriate location--we just +ask that you do it as a suggestion so it's easy for the release notes team to +keep track of changes. + +For example, if you're the SIG lead of SIG CLI, then search for "SIG CLI". This +will show release notes that were contributed by your SIG as well as release +notes for features that were a collaboration between your SIG and other SIGs. + +2. If you know of anything that should appear in the "Known Issues" section of +the Release Notes, please leave a comment with the issue and a draft of the note +text on [this GitHub Issue]({LINK TO GITHUB ISSUE}) + +3. If you have some more time and want to help shape your SIG's sections of the +release notes for {RELEASE NUMBER}, there are a few more things you can do as well! + +- Copy-edit notes from your SIG that may contain what you know to be technical +inaccuracies, grammar inconsistencies, etc. +- Remove minor and/or non-user facing release notes contributed by your SIG +- In the sections where notes are attributed to multiple SIGs (including yours), +leave a comment if the note is more related to your SIG or one of the other SIGs. +We can then use this to further categorize the notes! + + +Thank you so much for helping put together release notes for your SIG, we know +you're busy and appreciate your support of the {RELEASE NUMBER} release! diff --git a/release-team/role-handbooks/emeritus-adviser/README.md b/release-team/role-handbooks/emeritus-adviser/README.md index 95483c20b04..cb3a323822c 100644 --- a/release-team/role-handbooks/emeritus-adviser/README.md +++ b/release-team/role-handbooks/emeritus-adviser/README.md @@ -1,104 +1,104 @@ -# Emeritus Adviser Handbook - -## Overview - -The Emeritus Adviser (EA) is an experienced Release Team (RT) member who returns to the team in an advisory role. - -### Requirements and Selection -The EA should be an individual who has served on the Release Team, in a Lead capacity. The primary selection pool should be former Release Team Leads (ideally from the previous 4 releases). However, if there are no available individuals the EA can be another former Role Lead, who has been an exemplary member of a previous Release Team or a SIG Release subproject owner e.g., Release Engineering. - -An ideal Emeritus Adviser is inherently suited to people management, has shown sustained interest in the health and growth of SIG Release, and has a commitment to Release Team diversity and helping others ascend the [Contributor Ladder](https://git.k8s.io/community/community-membership.md). - -Time commitments for the EA are relatively light, with the largest time commitment in the two-week period where Shadows are being selected. However, the EA role starts 2-3 weeks before the release cycle officially begins, and continues for 1-2 weeks after it ends. - -EAs are not chosen as part of the regular RT selection process. Instead, interested candidates should contact the outgoing EA and the incoming Release Lead 2 weeks before the final prior release. Based on those interested in the EA role, the outgoing EA will choose 2-3 folks to nominate to the outgoing and incoming release leads who will select the individual to be EA for the next release cycle - -The EA for the next release team should be selected ahead of opening up nominations for the next release cycle, and the incoming EA will be assigned that issue. - -Due to the nature of the role, the EA has no shadows. The job may, however, be split between more than one person. - -## Responsibilities -Responsibilities for the EA are to help enable the Release Team. Activities the EA is responsible for are - -* Track the former release retrospective AIs -* Create the incoming release shadow surveys -* Assist release role leads in shadow selection -* Run a general shadow orientation for folks, explaining the basics of the release team -* Check in on leads and shadows throughout the release and offering support to them -* Conduct Shadow experience surveys throughout the release cycle and a lead/mentor questionaire at the end of the cycle -* Facilitate the release retrospectives. The first retrospective is held during the cycle typically during the first week of M, W, F burndown meetings -- typically mid-week. The second and third (if necessary) retrospectives are at the end of the cycle - -## Requirements - -Due to timing (see below) - -## Tasks - -### Release Team Selection - -Weeks: -2 to 0 - -Please refer to the [Selection Process within the Release Team Selection documentation](/release-team/release-team-selection.md#selection-process). - -### Lead Onboarding - -1. Ensure the outgoing EA or one of the SIG Release co-chairs has added you in as an owner of the [Kubernetes Release Calendar](https://bit.ly/k8s-release-cal) Google calendar -2. Grant the Lead permission to add calendar entries to the [Kubernetes Release Calendar](https://bit.ly/k8s-release-cal) - -### Shadow Selection - -Weeks: -1 to 1 - -Once most of the Role Leads are selected, the EA should solicit candidates for Shadows. Steps for this are: - -1. Get a copy of the Shadow Application (on Google Forms, currently) from the outgoing EA. -2. Make any changes to it identified as required in the Retro or elsewhere. -3. When the new RT Lead gives the OK, open the form and announce it in the following places: #sig-release channel, sig-release mailing list, kubernetes-dev mailing list, and the Kubernetes Community Meeting. -4. Close the Shadow Application around 7-10 days after the initial announcement. -5. Chat with each of the incoming Role Leads about selecting their shadows, and make sure that they stay on schedule for it. -6. Once all role leads select their shadows the EA will send out a notification to all applicants not selected for this release cycle -7. Ensure the outgoing EA or one of the SIG Release co-chairs has added you in as an owner of the [kubernetes-release-team-shadows](https://groups.google.com/a/kubernetes.io/g/release-team-shadows) Google Group. - -The most time-consuming part of this is helping the Role Leads select shadows. In addition to the usual dilemmas of too -many good candidates, the EA needs to give advice that makes sure that a diverse pool of shadows is selected, and that -the Role Lead doesn't take on more shadows than they can effectively mentor. We have found that having two shadows with -prior Release Team experience has helped grow the shadows' contributions with the Release Team and a better experience -for each role team. In addition to two shadows with prior Release Team experience, having two new shadows helps grow the -Release Team pool and brings in new contributors. - -Occasionally, a role may not get enough qualified candidates, in which case it's the EA's job to work with the new Role Lead to find or solicit additional candidates. - -### Shadow and Lead Status - -Weeks: 1 to 12 - -Remove prior release shadows from the [kubernetes-release-team-shadows](https://groups.google.com/a/kubernetes.io/g/release-team-shadows) Google Group and add the current release shadows. This list can facilitate easier communication between what at times is 2-3 dozen shadows. - -Poll the new shadows (eg: [Doodle](Doodle.com)) for their availability to have a "shadow orientation" meeting sometime in week 2 or week 3, after all shadows are selected. This meeting will likely have to be split for time zone reasons and held twice. In this meeting, go over the information in the main Shadow docs, give information about the release team and SIG Release, and then open things for questions or discussion. Make sure that Shadows know they can come to you if they have problems during their apprenticeship. - -**For leads, ensure they have enough support for their role, and to be an effective mentor to their shadows.** - -During the first month or so of the release try to solicit feedback from shadows. This can be done in a survey (similar to the one sent at the end of the cycle). - -Then, throughout the release cycle, do what you can to make sure that the shadows are participating in RT activities, particularly meetings. For example, each Shadow should deliver the Role update during a release meeting or burndown meeting at least once. If a Role Lead is absent from a meeting and no Shadow takes over, that often indicates a problem. - -### Retrospectives - -Verify availability to faciliate the retrospectives for the release. If unavailable, defer the responsibility as appropriate. The first retrospective is held during the release cycle during the first week of M, W, F burndown meetings -- typically mid-week. The second and third (if necessary) retrospectives are at the end of the cycle. - - -### Succession - -Weeks: 9 to 12 - -Connect with each Role Lead and each Shadow Team to talk about succession. For the Shadows, ask them to think about what they want to do after the release. This not only includes further RT roles, but other things they could do such as Release Engineering. - -The EA also needs to pick the EA for the next release no later than Week 11 (pending confirmation by the incoming RT Lead), because they need to get started before final release. - -### Evaluation - -Weeks: 12 to 14 - -Prepare two forms based on the ones used for prior releases. The first form goes to all of the shadows to evaluate how the shadowing/apprenticeship experience went for them. The second form is for the Role Lead to evaluate how they felt they did as a mentor, and make some notes on the performance of each Shadow in case they ask to join future teams. - -Release these forms no later than the week of release, although it is unlikely that the team members will fill them out until after final release. Follow up and make sure that all the Role Leads, at least, fill out theirs. +# Emeritus Adviser Handbook + +## Overview + +The Emeritus Adviser (EA) is an experienced Release Team (RT) member who returns to the team in an advisory role. + +### Requirements and Selection +The EA should be an individual who has served on the Release Team, in a Lead capacity. The primary selection pool should be former Release Team Leads (ideally from the previous 4 releases). However, if there are no available individuals the EA can be another former Role Lead, who has been an exemplary member of a previous Release Team or a SIG Release subproject owner e.g., Release Engineering. + +An ideal Emeritus Adviser is inherently suited to people management, has shown sustained interest in the health and growth of SIG Release, and has a commitment to Release Team diversity and helping others ascend the [Contributor Ladder](https://git.k8s.io/community/community-membership.md). + +Time commitments for the EA are relatively light, with the largest time commitment in the two-week period where Shadows are being selected. However, the EA role starts 2-3 weeks before the release cycle officially begins, and continues for 1-2 weeks after it ends. + +EAs are not chosen as part of the regular RT selection process. Instead, interested candidates should contact the outgoing EA and the incoming Release Lead 2 weeks before the final prior release. Based on those interested in the EA role, the outgoing EA will choose 2-3 folks to nominate to the outgoing and incoming release leads who will select the individual to be EA for the next release cycle + +The EA for the next release team should be selected ahead of opening up nominations for the next release cycle, and the incoming EA will be assigned that issue. + +Due to the nature of the role, the EA has no shadows. The job may, however, be split between more than one person. + +## Responsibilities +Responsibilities for the EA are to help enable the Release Team. Activities the EA is responsible for are + +* Track the former release retrospective AIs +* Create the incoming release shadow surveys +* Assist release role leads in shadow selection +* Run a general shadow orientation for folks, explaining the basics of the release team +* Check in on leads and shadows throughout the release and offering support to them +* Conduct Shadow experience surveys throughout the release cycle and a lead/mentor questionaire at the end of the cycle +* Facilitate the release retrospectives. The first retrospective is held during the cycle typically during the first week of M, W, F burndown meetings -- typically mid-week. The second and third (if necessary) retrospectives are at the end of the cycle + +## Requirements + +Due to timing (see below) + +## Tasks + +### Release Team Selection + +Weeks: -2 to 0 + +Please refer to the [Selection Process within the Release Team Selection documentation](/release-team/release-team-selection.md#selection-process). + +### Lead Onboarding + +1. Ensure the outgoing EA or one of the SIG Release co-chairs has added you in as an owner of the [Kubernetes Release Calendar](https://bit.ly/k8s-release-cal) Google calendar +2. Grant the Lead permission to add calendar entries to the [Kubernetes Release Calendar](https://bit.ly/k8s-release-cal) + +### Shadow Selection + +Weeks: -1 to 1 + +Once most of the Role Leads are selected, the EA should solicit candidates for Shadows. Steps for this are: + +1. Get a copy of the Shadow Application (on Google Forms, currently) from the outgoing EA. +2. Make any changes to it identified as required in the Retro or elsewhere. +3. When the new RT Lead gives the OK, open the form and announce it in the following places: #sig-release channel, sig-release mailing list, kubernetes-dev mailing list, and the Kubernetes Community Meeting. +4. Close the Shadow Application around 7-10 days after the initial announcement. +5. Chat with each of the incoming Role Leads about selecting their shadows, and make sure that they stay on schedule for it. +6. Once all role leads select their shadows the EA will send out a notification to all applicants not selected for this release cycle +7. Ensure the outgoing EA or one of the SIG Release co-chairs has added you in as an owner of the [kubernetes-release-team-shadows](https://groups.google.com/a/kubernetes.io/g/release-team-shadows) Google Group. + +The most time-consuming part of this is helping the Role Leads select shadows. In addition to the usual dilemmas of too +many good candidates, the EA needs to give advice that makes sure that a diverse pool of shadows is selected, and that +the Role Lead doesn't take on more shadows than they can effectively mentor. We have found that having two shadows with +prior Release Team experience has helped grow the shadows' contributions with the Release Team and a better experience +for each role team. In addition to two shadows with prior Release Team experience, having two new shadows helps grow the +Release Team pool and brings in new contributors. + +Occasionally, a role may not get enough qualified candidates, in which case it's the EA's job to work with the new Role Lead to find or solicit additional candidates. + +### Shadow and Lead Status + +Weeks: 1 to 12 + +Remove prior release shadows from the [kubernetes-release-team-shadows](https://groups.google.com/a/kubernetes.io/g/release-team-shadows) Google Group and add the current release shadows. This list can facilitate easier communication between what at times is 2-3 dozen shadows. + +Poll the new shadows (eg: [Doodle](Doodle.com)) for their availability to have a "shadow orientation" meeting sometime in week 2 or week 3, after all shadows are selected. This meeting will likely have to be split for time zone reasons and held twice. In this meeting, go over the information in the main Shadow docs, give information about the release team and SIG Release, and then open things for questions or discussion. Make sure that Shadows know they can come to you if they have problems during their apprenticeship. + +**For leads, ensure they have enough support for their role, and to be an effective mentor to their shadows.** + +During the first month or so of the release try to solicit feedback from shadows. This can be done in a survey (similar to the one sent at the end of the cycle). + +Then, throughout the release cycle, do what you can to make sure that the shadows are participating in RT activities, particularly meetings. For example, each Shadow should deliver the Role update during a release meeting or burndown meeting at least once. If a Role Lead is absent from a meeting and no Shadow takes over, that often indicates a problem. + +### Retrospectives + +Verify availability to faciliate the retrospectives for the release. If unavailable, defer the responsibility as appropriate. The first retrospective is held during the release cycle during the first week of M, W, F burndown meetings -- typically mid-week. The second and third (if necessary) retrospectives are at the end of the cycle. + + +### Succession + +Weeks: 9 to 12 + +Connect with each Role Lead and each Shadow Team to talk about succession. For the Shadows, ask them to think about what they want to do after the release. This not only includes further RT roles, but other things they could do such as Release Engineering. + +The EA also needs to pick the EA for the next release no later than Week 11 (pending confirmation by the incoming RT Lead), because they need to get started before final release. + +### Evaluation + +Weeks: 12 to 14 + +Prepare two forms based on the ones used for prior releases. The first form goes to all of the shadows to evaluate how the shadowing/apprenticeship experience went for them. The second form is for the Role Lead to evaluate how they felt they did as a mentor, and make some notes on the performance of each Shadow in case they ask to join future teams. + +Release these forms no later than the week of release, although it is unlikely that the team members will fill them out until after final release. Follow up and make sure that all the Role Leads, at least, fill out theirs. diff --git a/release-team/role-handbooks/enhancements/OWNERS b/release-team/role-handbooks/enhancements/OWNERS index 1ad3b20e258..e44e8458aa6 100644 --- a/release-team/role-handbooks/enhancements/OWNERS +++ b/release-team/role-handbooks/enhancements/OWNERS @@ -1,6 +1,6 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -approvers: - - enhancements-subteam-approvers -reviewers: - - enhancements-subteam-approvers +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - enhancements-subteam-approvers +reviewers: + - enhancements-subteam-approvers diff --git a/release-team/role-handbooks/enhancements/README.md b/release-team/role-handbooks/enhancements/README.md index 30ab34b5d4e..10964142818 100644 --- a/release-team/role-handbooks/enhancements/README.md +++ b/release-team/role-handbooks/enhancements/README.md @@ -1,883 +1,883 @@ -# Enhancements Lead Handbook - -## Overview - -While the Enhancements Lead serves as a member of the Release Team (a subproject of [SIG Release][sig-release]), this role is also a liaison to [sig-arch-Enhancements][sig-arch-enhancements] subproject of [SIG Architecture][sig-arch-readme]. - -## Responsibilities - -An Enhancements Lead holds the following responsibilities: - -- Maintain the active status of Enhancements within [kubernetes/enhancements][k/enhancements] -- Facilitate communication between Enhancement Owners, and SIG leadership, as necessary -- Collate the Release Highlights of the release, including but not limited to: - - new enhancements - - long-awaited enhancements - - enhancements moving into GA - - enhancement deprecations - - notable changes to existing behaviors -- Assist in Communications activities (in conjunction with the Communications Lead & the CNCF Communications team): - - Draft and/or review https://kubernetes.io/blog/ release announcement post, leveraging the themes collected across the release cycle e.g., [1.17 Announcement][1.17-announcement] - - Engage with media analysts during the embargo period to discuss the release themes - - CNCF Kubernetes Release webinar - - Identify potential contributors for the “5 Days of Kubernetes” blog series -- Identify candidates to assume the Enhancements Lead role (according to the [Release Team selection process][rt-selection]) in the following release cycle - - Chose Enhancement shadows whom you believe would be a good fit for succession and help mentor them throughout the release cycle - -## Prerequisites for Enhancements Lead and Shadows - -### General Requirements - -**Before continuing on to the Enhancements specific requirements listed below, please review and work through the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md).** - -### Enhancements Specific Requirements - -- MUST have served on the Release Team in a previous capacity, ideally as an Enhancements Shadow -- MUST be a member of the [Release Team Google Group][rt-group] - - List of members for this group is managed in git. Create a [pull request](https://github.com/kubernetes/k8s.io/pull/1533) against [kubernetes/k8s.io](https://github.com/kubernetes/k8s.io/) repo to include both Lead and Shadows under `release-team` group in [k8s.io/sig-release/group.yaml](https://github.com/kubernetes/k8s.io/blob/bd082f195599b8a86b76b0249e5f70f219f1d079/groups/sig-release/groups.yaml#L318) -- MUST be a member of the [SIG Release Google Group][sig-release-group] -- MUST be a member of the [SIG Architecture Google Group][sig-arch-group] -- MUST be a member of the [Kubernetes Enhancements Google Group][enhancements-group] -- The enhancements lead should take the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) training course - -Helpful characteristics of an Enhancements Lead include: - -- experience with the Kubernetes community, code layout, ecosystem projects, organizational norms, governance, SIG structure, architecture, and release process -- product/project/program management experience -- release management experience - -### Time Commitments - -Enhancement is one of the most time-intensive areas of the release team, and especially so during the early parts of the release. An Enhancements Lead can expect to spend: - -- Beginning of the cycle through enhancement freeze: ~8–15 hours a week -- Week of enhancements freeze: 20+ hours -- Enhancement Freeze through Code Freeze: ~4–7 hours a week -- Code Freeze through Release Day: ~1–4 hours a week - -Note that Enhancements Lead in particular will need to do work **during the week** during the early release, and will need to be available at least daily. - -Enhancements shadows can expect to spend ~10–15 hours a week during the early release until enhancements freeze, and ~1–5 hours a week after enhancements freeze. Unlike Enhancements Lead, shadows can expect to do their work largely on weekends if they desire. - -## Mentoring Shadows - -The selected shadows should be: - -- Interested in learning more about the Kubernetes release process. -- Able to dedicate a couple of hours each week to attending the Release meeting in addition to helping with weekly tasks. - -The shadows should be selected keeping in mind that one of them may eventually be taking up the Enhancements Lead role. It is important to delegate tasks and give the shadows broad exposure to the different aspects of the role. - -## Getting Started - -### Access Required - -Ensure that the previous Enhancements Lead has given you access to: - -- The previous Kubernetes release enhancements tracking board. - -Ensure that you and the shadows have been added to: - -- GitHub teams - - [enhancements](https://git.k8s.io/org/config/kubernetes/sig-architecture/teams.yaml) (This group should be used for Enhancement Subproject related pinging only and not for Release Team Enhancements Group) - - [milestone-maintainers](https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml) - - [release-team](https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml) - - [release-team-enhancements](https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml) (For elevated access to tracking board) - -### Slack - -Join the following Kubernetes Slack channels: - -- [#sig-release](https://kubernetes.slack.com/messages/sig-release) -- [#enhancements](https://kubernetes.slack.com/messages/enhancements) -- [#release-enhancements](https://kubernetes.slack.com/messages/release-enhancements) -- (optional) [#prod-readiness](https://kubernetes.slack.com/messages/prod-readiness) -- (optional) [#release-management](https://kubernetes.slack.com/messages/release-management) - -## Process - -### Standards - -As mentioned previously, the Enhancements Lead role encompasses several cross-functional responsibilities with [sig-arch-Enhancements][sig-arch-enhancements] subproject of [SIG Architecture][sig-arch-readme]. - -The process of maintaining an enhancement in Kubernetes is documented in the [kubernetes/enhancements][k/enhancements] repo. Any questions / concerns / suggestions for improvement to the Enhancements process should be raised as GitHub issues / PRs to k/enhancements. - -It is important that this process be followed and documentation remain up-to-date as the [Enhancements repo][k/enhancements] is the primary ingress point for contributors interested in tracking enhancements. - -### Milestone Activities + Timing - -> Note: The week #n timings given below are tentative. There are special releases like Kubernetes 1.19 or releases at the end of the year which may not strictly conform to that. - -#### Week 0 - -- Create the Enhancements Tracking Board for the current release - - Navigate to https://github.com/orgs/kubernetes/projects/, click the `New Project` button, select the `Table` template (default), and click the `Create` button. - - Update project settings by clicking `...` -> `Settings` from the project board - - Update the `Project name` to reflect the current release, e.g. **1.29 Enhancements Tracking** - - Set the project's `Visibility` to **Public** - - Update project access by clicking `Manage Access` from the settings page - - Set the `Base role` access to **Read** - - Add the following GitHub teams with **Admin** access - - @release-team-leads - - Add the following GitHub teams with **Write** access - - @production-readiness - - @release-team-comms - - @release-team-docs - - @release-team-enhancements - - @prod-readiness-reviewers - - Add the @k8s-infra-ci-robot account to the board with **Write** access. - - Create all the Fields (columns) for the board - > Note: This is currently a manual process and <https://github.com/orgs/community/discussions/41133> filed to help automate the process. - > Note: Since `v1.30` an exceptions process for the Release Doc team is enforced. The previous PR Ready for Review deadline has been replaced with a Docs Freeze phase. Make sure to add `At Risk for Docs Freeze` and `Tracked for Docs Freeze` to the options in `status` column. Moreover add `docs` to the options in `type` column. - - Until this can be automated; manually create fields with the same `Field Name`, `Field type`, and `Option` values from the previous release's project board. - - Create all the Views for the board - > Note: This is also currently a manual process until GitHub GraphQL APIs allow for manipulating Views - - Until this can be automated; manually create Views with the same Names and Fields from the previous release's project board. - Tip: You can easily view all the Fields present in each view by clicking the `v` next to the View's name a selecting `Configuration` -> `Fields` - Note: Remember to **save** each View. If there is a blue bubble next to the Views name there are unsaved changed for that view! - - Disable all Workflows for the project - - Click `...` -> `Workflows` - - For each workflow that enabled (has a green circle next to it), click the workflow and slide the toggle to 'Off' - - Find [Issues labeled `lead-opted-in`](https://github.com/kubernetes/enhancements/issues?q=+is%3Aissue+label%3Alead-opted-in+) and remove the `lead-opted-in` label from all issues. Enhancements must be explicitly opted into each release. - > **Make sure you remove the `lead-opted-in` labels from all the KEPs of the previous release before you turn on the `test-infra` job. Otherwise KEPs from the previous release will be added to the board.** - - Update automation to add issues to the correct Enhancement Tracking Board. Open a PR into [kubernetes/test-infra](https://github.com/kubernetes/test-infra) with the following changes: - - Update the [`GITHUB_PROJECT_BETA_NUMBER`](https://github.com/kubernetes/test-infra/blob/3de59f96b327c87c6d23a7308abc785268931707/config/jobs/kubernetes/sig-k8s-infra/trusted/sig-release-release-team-jobs/release-team-periodics.yaml#L20-L21) variable used by automation to identity the enhancements tracking board for the current release. - - Enable the test-infra job that syncs enhancements to the GitHub project board based on the `lead-opted-in` label. Update the name of the [periodic-sync-enhancements-github-project](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes/sig-k8s-infra/trusted/sig-release-release-team-jobs/release-team-periodics.yaml#L2) cronjob with the version number of the release and enable the cronjob by commenting the impossible cron and uncommenting the `interval`. You can see how this was done for the v1.29 release cycle in [this commit](https://github.com/kubernetes/test-infra/pull/30528/files#diff-9d86ca0a46a2f74a2cf59fff3d18cbba57b5b3489ecc00c36b03f6b6a0c2ac3a). - > Note: Make sure you remove the `lead-opted-in` label from all the KEPs of the previous release before enabling the job. Otherwise KEPs from the previous cycle will be populated in the board. -- Create a shortlink for the Tracking Board - - Create a free account on [bitly](https://bitly.com/) to create a shortlink for the new Enhancement Tracking Board following the pattern `k8sxyy-enhancements`, e.g. <https://bit.ly/k8s127-enhancements>. -- Make a [pull request](https://github.com/kubernetes/sig-release/pull/1411) to add the shortlinked Enhancement Tracking Board to the current release page in [sig-release][sig-release]. -- Make a pull request to add the shortlinked Enhancement Tracking Board to [kubernetes/enhancements README page](https://github.com/kubernetes/enhancements#enhancements-tracking-board). -- Find [Issues][enhancements-issues] from previous milestone that have graduated to Stable. Check to see if the KEP status has been updated to `implemented`. If it has, close the issue. If it has not, ask the issue contact to both update the KEP status field and close the Enhancement issue once the update PR has merged. -- Close previous milestone by ensuring that there are no open issues/PRs in that milestone. -- Gather Shadows to have them read this handbook and give expectations on what the process looks like and their particular role. If possible, try to schedule a call with the shadows to get them accustomed to the team. This helps as a great team building exercise. -- Add Shadows to the `release-team` and `release-team-enhancements` GitHub teams. (See [access-required](#access-required)) -- Add Shadows to the `Enhancements Contact` Field of the Enhancements Tracking Board. -- Create a Google Sheet to track who will give updates at release team meetings - - Access: : **restricted access**, edit rights shared with release team enhancements shadows individually - -#### Week 1 - -- Send an email to the [Kubernetes-Dev](https://groups.google.com/a/kubernetes.io/g/dev) mailing list and a message to #chairs-and-techleads Slack channel with a call for enhancements and how to opt in to the release. Previous communications can be used as a template. - - [1.26 call for enhancements](https://groups.google.com/a/kubernetes.io/g/dev/c/lnxXgZmOOMo/m/r6QNJIewBwAJ?utm_medium=email) -- Verify issues have k/k PRs associated, so they can be referenced and easily tracked. This is going to be critical come Enhancement Freeze and Code Freeze to see the status of the code. -- Work with the Release Lead to introduce yourself, talk about release information, and relay information about opting into the release with SIG Leads. - -#### Before Enhancements Freeze - -- Monitor the Enhancements Tracking Board for new additions as SIGs opt-in KEPs for the release and assign an enhancement contact to each Issue. - -##### What Changes Require Tracking - -A KEP may still be required to opt-in in order for the Enhancements subteam to monitor it, even if it is not graduating to a new stage. - -**Changes that typically do NOT require tracking by the Release Team:** -- Improvements or refactors that do not affect behaviour (e.g., code cleanup, variable renaming, internal function reorganisation) -- Bug fixes that preserve functionality while restoring the intended behaviour - -**Changes that typically DO require tracking by the Release Team:** -- Refactors or enhancements that affect behaviour (e.g., altering the functionality of a feature, modulating error handling, or changing performance characteristics) -- Any modifications that affect the user experience - -The team will collaborate with the KEP authors to ensure that any outstanding exception request deadlines are met in the event that a KEP is discovered to contain modifications that should have been monitored. - -Please contact SIG Release on Slack if there is any uncertainty regarding whether the planned action meets the threshold for required tracking. - -- For opted in Issues periodically (at least once a week): - - Ensure Issue is in the current milestone - - Ensure Issue has correct labels (`stage/xxx` is accurate, etc.) - - Ensure Fields in the Enhancement Tracking Board are populated and accurate (Status, Stage, SIG, ...) - - Evaluate if the enhancement satisfies all the [requirements](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze) for inclusion in the current release. - - Comment on the Issue with a status updating using one of the [templates from below](#enhancement-freeze-templates) - - Update `Enhancement Status` field for this Enhancement in the Enhancement Tracking Board (`Tracked for enhancements freeze` or `At risk for enhancements freeze`) - - KEPs targeting `stable` will need to be marked as `implemented` after code PRs are merged. This will need to be verified after the code freeze. - - *Note*: Refer to the [README template](https://github.com/kubernetes/enhancements/blob/master/keps/NNNN-kep-template/README.md?plain=1) to determine which sections are required based on the stage (`alpha`/`beta`/`stable`) that the enhancement is targeting. It is not the Enhancement team's responsibility to validate the correctness/completeness of the README content; we only need to make sure that each required section is present. - - *Tip*: In case they are not linked from the issue description, both the `kep.yaml` and `README.md` can be found in a directory with the format `https://github.com/kubernetes/enhancements/tree/master/keps/<sig>/<kep-issue-number>-<kep-title>/`, and the PRR can be found at `https://github.com/kubernetes/enhancements/blob/master/keps/prod-readiness/<sig>/<kep-number>.yaml`. - - In the (relatively rare) case of a KEP deprecation or removal: - - The `kep.yaml` should have `status` set to `withdrawn`, and the `latest-milestone` updated to the current release. - - The `README.md` should be updated to indicate that the KEP is deprecated or withdrawn. - - No changes are needed to the PRR. - - Verify that the KEP author has followed the [Kubernetes Deprecation Policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/). If there is any uncertaintly, it may be helpful to start a thread in the #enhancements channel in Slack. -- Reach out to each [SIG on Slack](https://github.com/kubernetes/community/blob/master/sig-list.md) tagging one or more chairs or technical leads to communicate the Enhancements statuses. Example [communication templates](#sig-outreach-templates-optional) can be found below. -- Start syncing with Communications Team on giving an induction what's coming up for the release. -- Send an email to [Kubernetes-Dev](https://groups.google.com/a/kubernetes.io/g/dev) that Enhancement freeze is coming and share current Enhancements status. Examples [1](https://groups.google.com/g/kubernetes-dev/c/-nTNtBBHL2Y/m/WfNzb_E1EAAJ). -- Provide updates during release team meetings - - Use the `KEPs by Stage` insight from the Enhancement Tracking Board ([example](https://github.com/orgs/kubernetes/projects/98/insights/3)) -- Notify folks in [#prod-readiness](https://kubernetes.slack.com/archives/CPNHUMN74) about KEPs waiting for PRR reviews with the project board filtered for KEPs missing PRR assignees. - -#### PRR Reviews - -The KEP template production readiness questionnaire should be filled out by the KEP authors, and reviewed by the SIG leads. -Once the leads are satisfied with both the overall KEP (i.e., it is ready to move to `implementable` state) and the PRR answers, -the authors request a PRR approval. See [submitting a KEP for production readiness approval](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval) for more details. - -When should a KEP owner request for a new PRR? -1. When the KEP is ready to move to `implementable` state from `provisional`. -2. Everytime the KEP graduates to a new stage (`alpha`/`beta`/`stable`) the KEP needs a new PRR approval. If the KEP is graduating and is missing a section in the README that was not required for earlier stages (e.g. the scalability section is only required for `beta` or `stable`) it will need a new PRR review. -3. When there are major changes introduced in the responses of the PRR questionnaire in the KEP README.md file (this requires a new PRR review even if the KEP is staying in the same stage). - -For example, the Enhancements team needs to check the KEP has PRR approval when: - -**KEP graduates to `alpha`:** - -``` -# keps/prod-readiness/<name-of-the-sig>/1234.yaml -kep-number: 1234 -alpha: - approver: @<gh-handle-of-PRR-approver> -``` - -**KEP graduating from `alpha` -> `beta`** - -``` -# keps/prod-readiness/<name-of-the-sig>/1234.yaml -kep-number: 1234 -alpha: - approver: @<gh-handle-of-PRR-approver> -beta: - approver: @<gh-handle-of-PRR-approver> -``` - -**and `beta` -> `stable`** - -``` -# keps/prod-readiness/<name-of-the-sig>/1234.yaml -kep-number: 1234 -alpha: - approver: @<gh-handle-of-PRR-approver> -beta: - approver: @<gh-handle-of-PRR-approver> -stable: - approver: @<gh-handle-of-PRR-approver> -``` - -##### PRR Freeze - -The PRR freeze is a hard deadline happening one week before the [Enhancements Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze). KEPs that will miss this deadline require an [Exception](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) or they will be removed from the milestone. - -As described by the PRR team [here](https://groups.google.com/a/kubernetes.io/g/dev/c/CQ33yPqp-H4/m/hHO-NaQiAQAJ): - -- By the PRR freeze date, KEP authors must have completed the PRR questionnaire for all opted-in enhancements (KEPs). -- It is important to note that the PRR freeze **_does not_** mean that the KEPs need to have received an approval or even a review from the PRR team by this date. -- To emphasize, the sole requirement is that all opted-in KEPs have their PRR questionnaires answered by the deadline, to ensure the PRR team has sufficient time to review them by Enhancements Freeze. - -> Note: KEPs that doesn't complete the PRR questionnaire and get back to the reviews from the PRR team are removed from the milestone during the enhancements freeze party. The PRR freeze deadline exists as a reminder for this. - -##### Enhancement KEP Status - -For each Enhancement KEP, the Enhancement team needs to verify that the `status` set in the KEP is one of `provisional`, `implementable`, `implemented`, `deferred`, `rejected`, `withdrawn`, or `replaced`. -The `status` must follow the criteria: - -| Status | Description | -|--------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| provisional | The KEP has been proposed and is actively being defined. This is the starting state while the KEP is being fleshed out and actively defined and discussed. The owning SIG has accepted that this work must be done. | -| implementable | Enhancement KEP should no longer have major changes and must be approved by each of the KEP approvers to enter `implementable`. | -| implemented | Enhancement is graduating to`Stable`, code PRs are merged and feature flags have been removed. Once a feature has become `implemented`, major changes should get new KEPs. | -| deferred | Enhancement is proposed but not actively being worked on or the Enhancement has been bumped to a future release by owning SIG. | -| rejected | The approvers and authors have decided that this KEP is not moving forward. The KEP is kept around as a historical document. | -| withdrawn | Enhancement KEP authors have withdrawn the KEP and Enhancement will be removed from the code. | -| replaced | The KEP has been replaced by a new KEP. The superseded-by metadata value should point to the new KEP. | - -See the sig-architecture Enhancements [KEP Template](https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/0000-kep-process/README.md#kep-template) guide for a walkthrough of the metadata fields found in the KEP template. - -#### Week of Enhancements Freeze -- On the day of the Enhancements Freeze, schedule an "Enhancement Freeze Party". Invite all the Enhancement shadows, Emeritus Advisor, Release Team Lead and Lead Shadows (make participation optional for the invitees due to potential timezone differences.) Post the "Enhancement Freeze Party" meeting details in the #sig-release and #release-enhancements Kubernetes Slack channels. **Note**: It is helpful to delegate enhancements to review to shadows to help with the process. -- Clean up Enhancements issues by removing release milestone (e.g., v1.28) from the KEP GitHub issue by commenting /milestone clear on the KEP issue for Enhancements that have not opted-in - - [example GitHub comment](https://github.com/kubernetes/enhancements/issues/3140#issuecomment-1121930633) on removing 1.24 milestone - - Make sure that number of in-tree open issues with current milestone matches number of opted-in enhancements by checking the Enhancements Tracking Board and GitHub issues with the current milestone. **Note**: in-tree refers to KEPs with PRs inside the [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) repository. -- If a previously removed Enhancement has had their exception Approved, set their **Enhancement Status** to `Tracked for enhancements freeze` in the Enhancement Tracking Board. -- On Freeze day, email [Kubernetes-Dev](https://groups.google.com/a/kubernetes.io/g/dev) that freeze has happened and upcoming key dates. Examples [1](https://groups.google.com/g/kubernetes-dev/c/JDM7bNKvhqQ/m/8S7BXtXPBQAJ). -- Disable the [periodic-sync-enhancements-github-project](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes/sig-k8s-infra/trusted/sig-release-release-team-jobs/release-team-periodics.yaml#L2) cronjob which syncs enhancements where the `lead-opt-in` label has been added to the GitHub project board. - - Disable the job by commenting the `interval` and uncommenting the impossible cron date. You can see how this was done in the v1.29 release in [this commit](https://github.com/kubernetes/test-infra/commit/064dd07f0164c2aadc12d611f5a851d6cc40afdd). -- Remove any Enhancements that failed to meet the criteria by the Enhancement freeze deadline. - - Set their **Enhancement Status** in the board to `Removed from Milestone`. - - Remove the milestone. - ```text - /milestone clear - ``` - -<figure class="image"> - <img alt="Sample project board with milestones" src="img/project-board-milestones.png" height="200" width="450"> - <figcaption> - Sample GitHub project board with labels showing `lead-opted-in` and different milestones. - Only the enhancements targeting the current release should have the milestone set. - </figcaption> -</figure> - -#### Post Enhancements Freeze - -- Any enhancements removed from the milestone will now require an exception. As exception requests come in, discuss each with the Release Lead (and Shadows) to arrive at an approve/reject decision. - - Create an exception file in the Release for exceptions Example [1](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.33/exceptions.yaml). - - Example PRs where the `exceptions.yaml` file was created to track enhancement freeze exception requests: - - [Add exceptions from v1.33 Enhancement Freeze](https://github.com/kubernetes/sig-release/pull/2732) - - [Add exceptions from v1.32 Enhancement Freeze](https://github.com/kubernetes/sig-release/pull/2645) -- Stay on top of issues and continually monitor them twice a week and look at attached PRs. As Code Freeze gets closer, if there are PRs that have not been merged, move the issue to `At risk for code freeze`. If there is no activity, ping issue owners on either the issue or the k/k PR. -- Monitor issues that are `At risk for code freeze` closely, almost daily. Code Freeze means no new code and keeping tabs on the status of the k/k PR is critical to planning. Make decisions if the enhancement should be deferred and work with SIG Leads to determine the best path forward. - -#### Before Code Freeze - -**All** enhancements going into the release must have their pull requests in a merge-ready state with approved and lgtm labels applied. This includes tests, and docs PRs opened by the due date. Due to the Prow queue, this may mean that approved PRs merge shortly after the deadline. - -> **Note**: Refer to the [What Changes Require Tracking](#what-changes-require-tracking) section for guidance on whether your KEP needs to be tracked by the Release Team and marked as `Tracked for code freeze`. - -To avoid delays and ensure everything is in place for Code Freeze: -- **Coordinate with the Release Branch Manager**: Reach out to the Release Branch Manager to give them a heads-up about the upcoming Code Freeze. They are responsible for raising the PR that officially enforces the Code Freeze. Coordinating early helps minimize the risk of delays and last-minute blockers. For more details on their role and responsibilities, refer to the [Release Branch Manager Handbook](https://github.com/kubernetes/sig-release/blob/master/release-engineering/role-handbooks/branch-manager.md) - -- **Ensure the Code Freeze PR is Ready to Merge**: - The Code Freeze PR should be ready for merge (i.e., it has both `lgtm` and `approved` labels) **on or before the date of Code Freeze**. - **Recommendation:** Work with the Release Branch Manager to get the PR created ahead of time and ensure all **required labels** (`lgtm`, `approved`) are in place. They can add a `/hold` to prevent the PR from merging early - then simply lift the hold in the Code Freeze Party. - -- **Reference Code Freeze PRs**: Below are examples of PRs used to enforce Code Freeze in previous releases: - - [PR Enforcing Code Freeze - v1.33](https://github.com/kubernetes/test-infra/pull/34532) - - [PR Enforcing Code Freeze - v1.32](https://github.com/kubernetes/test-infra/pull/33778) - - [PR Enforcing Code Freeze - v1.31](https://github.com/kubernetes/test-infra/pull/33049) - -Read https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze for more information on the Code Freeze. - -#### Pre-Freeze Check: Catching untracked feature changes - -As part of the Enhancements team’s responsibilities, this step helps ensure that user-facing feature changes are not merged without being properly tracked via a KEP. - -#### When to check for Untracked feature work - -- Before **Code Freeze** -- Especially useful in active release cycles where many `kind/feature` PRs are being merged. - -#### How to identify merged feature PRs for current release - -Use the GitHub search below to list PRs: -- Labeled `kind/feature` -- Closed (i.e., merged or declined) -- Targeting the **current release milestone** - -[View feature PRs merged in v1.33](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+milestone%3Av1.33+is%3Aclosed+sort%3Acreated-asc+label%3Akind%2Ffeature) - -```text -https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+milestone%3Av1.33+is%3Aclosed+sort%3Acreated-asc+label%3Akind%2Ffeature -``` -> [!NOTE] -> Be sure to update the milestone (`v1.33`) in the query to the current release (e.g., `v1.34`). - -#### Why check for untracked user-facing features - -In past releases, we've seen partial implementations get merged without being fully tracked. This can result in: - - User-facing features with no docs or release notes. - - Confusion during testing or upgrade planning. - - Late-stage reversions or rushed exceptions. - -By doing this simple check, we give ourselves an early window to document changes, request follow-ups, or even coordinate a rollback if needed. - -#### Visual Flow: Handling partially merged KEPs -Use this decision flow to determine next steps when a KEP’s implementation is only partially complete at freeze time: - -```mermaid -flowchart TD - direction TB - - Start["Start: KEP is targeting this release"] - - Intent["What are you working on this cycle?"] - AddFeature["Graduating to a new stage or adding user-facing features"] - RefineQuietly["Refining implementation only (no graduation or user-facing changes)"] - - %% Add feature path - EF1["Enhancement Freeze: 1. KEP issue: lead-opted-in label, milestone added, 2. KEP updates: kep.yaml, README.md, 3. PRR review complete"] - CF1["Code and Test Freeze: Were all implementation and tests PRs merged?"] - AllMerged["KEP marked tracked for Code Freeze as usual"] - NotAllMerged{"Some PRs merged, others not"} - UserImpact{"Do merged PRs include user-facing changes?"} - NotifyRelease["Reach out to the release team and have multiple iterations of the same stage."] - NotTracked1["No user-facing impact. KEP will not be tracked for this release (no docs, no release highlights)."] - - %% Continue work path - EF2["Enhancement Freeze: No KEP updates needed"] - CF2["Code Freeze: All or some PRs merged, no user-facing changes"] - ChangelogOnly["KEP appears in changelog, but not tracked by release team."] - - %% Flow - Start --> Intent - Intent -->|Graduate or add user-facing features| AddFeature --> EF1 --> CF1 - - CF1 -->|All merged| AllMerged - CF1 -->|Some merged| NotAllMerged --> UserImpact - UserImpact -->|Yes| NotifyRelease - UserImpact -->|No| NotTracked1 - - Intent -->|Refine only| RefineQuietly --> EF2 --> CF2 --> ChangelogOnly -``` - -#### Week of Code Freeze - -- Delegate enhancements to shadows to reach out to assigned KEPs two weeks before code freeze. - - Evaluate if the enhancement satisfies all the [requirements](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze) for inclusion in the current release. - - Comment on the Issue with a status updating using one of the [templates from below](#code-freeze-templates) - - Update `Enhancement Status` field for this Enhancement in the Enhancement Tracking Board (`Tracked for code freeze` or `At risk for code freeze`) - - If the code PRs are not tracked in the GitHub issue description, search [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) for the KEP number or KEP keywords to find the PRs and add them to the GitHub issue description. Validate that you found the correct code PRs with the KEP author. - - KEPs targeting `stable` for the release will now need to be marked as `implemented` after code PRs are merged. -- Start planning for the next release while assisting the Release Lead with anything relating to analytics or Public Relation planning of the release. Work with the Communications Lead to develop Release Highlights for the official Kubernetes blog post. - -**Note**: out-of-tree enhancements i.e. enhancements with label `tracked/out-of-tree` applied to them don't have their PRs inside [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) repository unlike other enhancements, therefore during enhancements-freeze and code-freeze they might not strictly comply with the tracking criteria. - Examples: - - https://github.com/kubernetes/enhancements/issues/3203#issuecomment-1421928726 - - https://github.com/kubernetes/enhancements/issues/3476#issuecomment-1467208685 - -#### Code Freeze Party 🎉 -- Schedule a "Code Freeze Party" on the day of the code freeze. Invite all the Enhancement shadows, Emeritus Advisor, Release Team Lead and Lead Shadows (make participation optional for the invitees due to potential timezone differences.) Post the "Code Freeze Party" meeting details in the #sig-release and #release-enhancements Kubernetes Slack channels. -- During the "Code Freeze Party" meeting, review each of the tracked Enhancements to perform a final status assessment for code freeze readiness. If an Enhancement doesn't meet the requirements for the [code freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze), notify the author of the KEP by leaving a comment on the corresponding KEP issue. Use the [second code freeze communication template from below.](#code-freeze-templates) **Note**: It is helpful to delegate enhancements to review to shadows to help with the process. -- Remove any enhancements that failed to merge their code by the Code freeze deadline. - - Set their status in the sheet to `Removed from Milestone`. - - Remove the milestone. - ```text - /milestone clear - ``` - - - Remove the milestone from all open `k/k` PRs related to the enhancement. -- Any enhancements removed from the milestone will now require an exception. As exception requests come in, discuss each with the Release Lead (and Shadows) to arrive at an approve/reject decision. - - Add a `/hold` label to `k/k` PRs associated with incoming exceptions to prevent from accidental merge. - - Add incoming exception information to the previous created `exceptions.yaml` file (e.g., [PR #2753](https://github.com/kubernetes/sig-release/pull/2753), [PR #2593](https://github.com/kubernetes/sig-release/pull/2593)). - - If an **Exception Request** for a previously removed Enhancement is approved by the Release Team (on the Exception Request email), update its **Enhancement Status** to `Tracked for enhancements freeze` on the Enhancement Tracking Board. - -### Communication Templates - -In all the templates, replace the text in `{ }` with appropriate values. - -The freeze dates/times can be found at `https://github.com/kubernetes/sig-release/blob/master/releases/release-{version}/README.md`. - -#### PRR Freeze Templates - -If the Enhancement Issue **does not** meet the criteria for inclusion in the current release use this template in Issue comments: - -```markdown -Hello {enhancement owner} 👋, {current release} Enhancements team here. - -This is a reminder of the upcoming [PRR freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#prr-freeze) on **{ PRR_FREEZE_DATETIME }**. - -This enhancement is targeting stage `{stage}` for {current release} (correct me, if otherwise) - -Here's where this enhancement currently stands: - -- [ ] PR open or merged with the KEP's [PRR questionnaire](https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template#production-readiness-review-questionnaire) filled out. -- [ ] PR open or merged with [kep.yaml](https://github.com/kubernetes/enhancements/blob/master/keps/NNNN-kep-template/kep.yaml) updated with the `stage`, `latest-milestone`, and `milestone` struct filled out. -- [ ] PR open or merged with a [PRR approval file](https://github.com/kubernetes/enhancements/blob/master/keps/prod-readiness/template/nnnn.yaml) with the PRR approver listed for the stage the KEP is targeting. - -For this KEP, we would just need to update the following: -- {insert list of action items} - -Note that the PR is not required to be approved or merged by the PRR freeze deadline. Having the PRR questionnaire filled out by the deadline will help ensure that the PRR team has enough time to review your KEP before **enhancements freeze on { ENHANCEMENTS_FREEZE_DATETIME }**. For more information on the PRR process, see [here](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval). - -The status of this enhancement is marked as `At risk for PRR freeze`. Please keep the issue description up-to-date with appropriate stages as well. - -If you anticipate missing PRR freeze, you can file an [exception request](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) in advance. Thank you! -``` - -Then make sure the status of the enhancement is set to `At risk for PRR freeze`. - -If the Enhancement Issue **does** meet the criteria for inclusion in the current release use this template in Issue comments: - -```markdown -Hello {enhancement owner} 👋, {current release} Enhancements team here. - -This is a reminder of the upcoming [PRR freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#prr-freeze) on **{ PRR_FREEZE_DATETIME }**. - -This enhancement is targeting stage `{stage}` for {current release} (correct me, if otherwise) - -Here's where this enhancement currently stands: - -- [x] PR open or merged with the KEP's [PRR questionnaire](https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template#production-readiness-review-questionnaire) filled out. -- [x] PR open or merged with [kep.yaml](https://github.com/kubernetes/enhancements/blob/master/keps/NNNN-kep-template/kep.yaml) updated with the `stage`, `latest-milestone`, and `milestone` struct filled out. -- [x] PR open or merged with a [PRR approval file](https://github.com/kubernetes/enhancements/blob/master/keps/prod-readiness/template/nnnn.yaml) with the PRR approver listed for the stage the KEP is targeting. - -Note that the PR is not required to be approved or merged by the PRR freeze deadline. Having the PRR questionnaire filled out by the deadline will help ensure that the PRR team has enough time to review your KEP before **enhancements freeze on { ENHANCEMENTS_FREEZE_DATETIME }**. For more information on the PRR process, see [here](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval). - -With all the PRR freeze requirements in place, this enhancement is now marked as `Tracked for PRR freeze`! Please keep the issue description up-to-date with appropriate stages as well. - -/label tracked/yes -``` - -Then make sure the status of the enhancement is set to `Tracked for PRR freeze`. - -#### Enhancement Freeze Templates - -If the Enhancement Issue **does not** meet the criteria for inclusion in the current release use this template in Issue comments: - -```markdown -Hello {enhancement owner} 👋, {current release} Enhancements team here. - -Just checking in as we approach [enhancements freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze) on **{ ENHANCEMENTS_FREEZE_DATETIME }**. - -This enhancement is targeting stage `{stage}` for {current release} (correct me, if otherwise) - -Here's where this enhancement currently stands: - -- [ ] KEP readme using the [latest template](https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template) has been merged into the k/enhancements repo. -- [ ] KEP status is marked as `implementable` for `latest-milestone: { CURRENT_RELEASE }`. -- [ ] KEP readme has up-to-date graduation criteria. -- [ ] KEP has a production readiness review that has been completed and merged into k/enhancements. (For more information on the PRR process, check [here](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval)). - -For this KEP, we would just need to update the following: -- {insert list of action items} - -The status of this enhancement is marked as `At risk for enhancements freeze`. Please keep the issue description up-to-date with appropriate stages as well. - -If you anticipate missing enhancements freeze, you can file an [exception request](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) in advance. Thank you! -``` - -Then make sure the status of the enhancement is set to `At risk for enhancements freeze`. - -If the Enhancement Issue **does** meet the criteria for inclusion in the current release use this template in Issue comments: - -```markdown -Hello {enhancement owner} 👋, {current release} Enhancements team here. - -Just checking in as we approach [enhancements freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze) on **{ ENHANCEMENTS_FREEZE_DATETIME }**. - -This enhancement is targeting stage `{stage}` for {current release} (correct me, if otherwise) - -Here’s where this enhancement currently stands: - -- [X] KEP readme using the [latest template](https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template) has been merged into the k/enhancements repo. -- [X] KEP status is marked as `implementable` for `latest-milestone: { CURRENT_RELEASE }`. KEPs targeting `stable` will need to be marked as `implemented` after code PRs are merged. -- [X] KEP readme has up-to-date graduation criteria. -- [X] KEP has [submitted a production readiness review](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval) request for approval and has a reviewer assigned. -- [X] KEP has a production readiness review that has been completed and merged into k/enhancements. (For more information on the PRR process, check [here](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval)). - -With all the KEP requirements in place and merged into k/enhancements, this enhancement is all good for the upcoming enhancements freeze. 🚀 - -The status of this enhancement is marked as `Tracked for enhancements freeze`. Please keep the issue description up-to-date with appropriate stages as well. Thank you! - -/label tracked/yes -``` - -Then make sure the status of the enhancement is set to `Tracked for enhancements freeze`. - -#### Enhancement Freeze Party Templates - -If the Enhancement Issue **does not** meet the enhancement freeze criteria for inclusion in the current release use this template in Issue comments: - -```markdown -Hello {enhancement owner} 👋, {current release} Enhancements team here. - -Unfortunately, this enhancement did not meet requirements for [enhancements freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze). - -If you still wish to progress this enhancement in {current release}, please file an [exception](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) request as soon as possible, within three days. If you have any questions, you can reach out in the #release-enhancements channel on Slack and we'll be happy to help. Thanks! - -/label tracked/no -/milestone clear -``` - -Then make sure the status of the enhancement is set to `Removed from Milestone`. - -If the Enhancement Issue **does** meet the enhancement freeze criteria for inclusion in the current release (and has not already been marked as `Tracked for enhancements freeze`), use this template in Issue comments: - -```markdown -Hello {enhancement owner} 👋, {current release} Enhancements team here. - -With all the requirements fulfilled, this enhancement is now marked as tracked for the upcoming enhancements freeze 🚀 - -/label tracked/yes -``` - -Then make sure the status of the enhancement is set to `Tracked for enhancements freeze`. - -#### Code Freeze Templates - -> **Note**: Refer to the [What Changes Require Tracking](#what-changes-require-tracking) section for guidance on whether your KEP needs to be tracked by the Release Team and marked as `Tracked for code freeze`. - -If the Enhancement Issue **does not** meet the code freeze criteria for inclusion in the current release use this template in Issue comments: - -```markdown -Hey again {enhancement owner} 👋, {current release} Enhancements team here, - -Just checking in as we approach [code freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze) and [test freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#test-freeze) at **{ CODE_FREEZE_DATETIME }**. - -Here's where this enhancement currently stands: - -- [ ] All PRs to the Kubernetes repo that are related to your enhancement are linked in the above issue description (for tracking purposes). -- [ ] All PRs are ready to be merged (they have `approved` and `lgtm` labels applied) by the code freeze deadline. This **includes** tests. - -Per the issue description, these are all of the implementation (code-related) PRs for {current release}, some of which are not merged yet: -- { list of PRs associated with this enhancement } - -Please let me know (and keep the issue description updated) if there are any other PRs in [`k/k`](https://github.com/kubernetes/kubernetes) that we should track for this KEP, so that we can maintain accurate status. - -If the implementation work for this enhancement is occurring **out-of-tree** (i.e., outside of `k/k`), please link the relevant PRs in the issue description for visibility. Alternatively, if you're unable to provide specific PR links, a confirmation that **all out-of-tree implementation work is complete and merged** will help us finalize tracking and maintain accuracy. - -The status of this enhancement is marked as `At risk for code freeze`. - -If you anticipate missing code freeze, you can file an [exception request](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) in advance. -``` - -Then make sure the status of the enhancement is set to `At risk for code freeze`. - -If the Enhancement Issue **does** meet the code freeze criteria for inclusion in the current release use this template in Issue comments: - -```markdown -Hey again {enhancement owner} 👋, {current release} Enhancements team here, - -Just checking in as we approach [code freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze) and [test freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#test-freeze) at **{ CODE_FREEZE_DATETIME }**. - -Here's where this enhancement currently stands: - -- [x] All PRs to the Kubernetes repo that are related to your enhancement are linked in the above issue description (for tracking purposes). -- [x] All PRs are ready to be merged (they have `approved` and `lgtm` labels applied) by the code freeze deadline. This **includes** tests. - -Per the issue description, these are all of the implementation (code-related) PRs for {current release}: -- { list of PRs associated with this enhancement } - -Please let me know (and keep the issue description updated) if there are any other PRs in [`k/k`](https://github.com/kubernetes/kubernetes) that we should track for this KEP, so that we can maintain accurate status. - -If the implementation work for this enhancement is occurring **out-of-tree** (i.e., outside of `k/k`), please link the relevant PRs in the issue description for visibility. Alternatively, if you're unable to provide specific PR links, a confirmation that **all out-of-tree implementation work is complete and merged** will help us finalize tracking and maintain accuracy. - -This enhancement is now marked as `Tracked for code freeze`! - -Please note that KEPs targeting `stable` need to have the `status` field marked as `implemented` in the kep.yaml file after code PRs are merged. - -/label tracked/yes -``` - -Then make sure the status of the enhancement is set to `Tracked for code freeze`. - -#### Code Freeze Party Templates - -If the Enhancement Issue **does not** meet the code freeze criteria for inclusion in the current release use this template in Issue comments: - -```markdown -Hello {enhancement owner} 👋, {current release} Enhancements team here, - -Unfortunately, the implementation (code-related) PRs associated with this enhancement are not in the merge-ready state by code-freeze and hence this enhancement is now removed from the {current release} milestone. - -<!-- Use the following paragraph if not all implementation PRs for the KEP were merged before freeze deadline --> -Additionally, if **any of the merged implementation PRs** for this enhancement include **user-facing changes**, please let us know. This will help us determine whether the changes should be documented or considered for rollback to maintain release integrity. - -If you still wish to progress this enhancement in {current release}, please file an [exception](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) request as soon as possible, within three days. If you have any questions, you can reach out in the #release-enhancements channel on Slack and we'll be happy to help. Thanks! - -/label tracked/no -/milestone clear -``` - -Then make sure the status of the enhancement is set to `Removed from Milestone`. - -If the Enhancement Issue **does** meet the code freeze criteria for inclusion in the current release (and has not already been marked as `Tracked for code freeze`), use this template in Issue comments: - -```markdown -Hello {enhancement owner} 👋, {current release} Enhancements team here. - -With all the implementation (code-related) PRs merged per the issue description: -- {insert list of code prs} - -This enhancement is now marked as `Tracked for code freeze` for the {current release} Code Freeze! - -Please note that KEPs targeting `stable` need to have the `status` field marked as `implemented` in the kep.yaml file after code PRs are merged. - -/label tracked/yes -``` - -Then make sure the status of the enhancement is set to `Tracked for code freeze`. - -#### SIG Outreach Templates (optional) - -For SIGs which have opted to include Enhancements in the current release: - -```markdown -Hello SIG { SIG_NAME }! Enhancements team here. -Just checking in as we approach PRR freeze at { PRR_FREEZE_DATETIME }. -Your SIG has submitted { X } enhancements for the { CURRENT_RELEASE } cycle, and { Y } enhancements are currently `At risk for PRR freeze`. -Refer to the [announcement here]({link to announcement for current release cycle}) for the list of review requirements. -If your SIG still plans to submit more enhancements, follow the [instructions here]({link to announcement for current release cycle}) so the enhancements team can begin tracking. -Please plan to make KEP updates to meet all the requirements before enhancement freeze. -Please reach out to [#release-enhancements](https://kubernetes.slack.com/archives/C02BY55KV7E) if you have any questions. -``` - -For SIGs which have not opted to include Enhancements in the current release: - -```markdown -Hello SIG {{ SIG_NAME }}. Enhancements team here. -Just checking in as we approach PRR freeze at {{ PRR_FREEZE_DATETIME }}. -Your SIG has not submitted any enhancements for the { CURRENT_RELEASE } cycle. -If your SIG still plans to submit an enhancement, follow the [instructions here]({link to announcement for current release cycle}) so the enhancements team can begin tracking. -If your SIG is not planning to submit an enhancement, please reply to this message to confirm. -Please reach out to [#release-enhancements](https://kubernetes.slack.com/archives/C02BY55KV7E) if you have any questions. -``` - -### Working with the Enhancement Tracking Board - -The Enhancements Tracking Board is used by the release-enhancements, release-docs, and release-comms teams. -Information in this document will be focused on how the Enhancements team should interact with the project board. - -#### Enhancements View - -The `Enhancements` view is the primary view for the project board and is owned by the Enhancements subteam. -This view is used source of truth for tracking the status of enhancements included in a given release. - -> - **Do not** archive items from the board! Enhancements that are no longer being tracked for the current release are filtered out of the default View but should remain in the board for tracking purposes. - -| Field | Description | -|---------------------:|-----------------------------------------------------------------------------------| -| Title | Title of (and link to) the `Issue` in k/enhancements. | -| Assignees | Assignees for the `Issue` in k/enhancements. | -| Type | [Type](#type) of enhancement. | -| Stage | Target stage (Alpha, Beta, Stable) for the current release. | -| Status | [Status](#status) of the enhancement. | -| Enhancements Contact | Alias of the Enhancements team designated as primary contact for the enhancement. | -| SIG | Owning SIG. | -| PRR Status | Status of PRR review for the enhancement. | -| Labels | Labels applied to the `Issue` in k/enhancements. | -| Milestone | The milestone assigned to the `Issue` in k/enhancements. | -| Note | Freeform notes added by the Enhancements team. | - -##### Type - -| Type | Description | -|-------------:|---------------------------------------------------------------------------------------------------------------| -| Net New | Enhancement is adding net-new work. Usually reserved for enhancements targeting their `Alpha` implementation. | -| Major Change | Enhancement is staying at the current Stage, but major changes in functionality are being implemented. | -| Graduating | Enhancement is graduating to `Beta` or `Stable`. | -| Deprecation | Enhancement is tracking a deprecations or removals. | -| Docs | This is a PR for Docs that is being tracked by Docs team. | -Notes : - -- If the feature is graduating to `Alpha`, the type can either be Net New/Major Change. But usually when features are introduced to Kubernetes, they are not Major Changes. -- If the feature is graduating to `Beta/Stable`, almost always the type is Graduating/Major Change. One exception to that is some features directly jump the hoop to Beta, in that case, the type can be Net New for even a `Beta` feature. - -##### Status - -The field `Status` tracks if the KEP has met all the criteria for inclusion in the current release. -Refer to the [Enhancement Freeze Communications](#enhancement-freeze-templates) for detailed requirements. - -| Status | Description | -|-----------------------:|---------------------------------------------------------------------------------------------------------------------------------------------| -| Tracked For Enhancement Freeze | Enhancement has met all requirements for inclusion into current release. | -| At Risk For Enhancement Freeze | Enhancement does not currently meet requirements for inclusion into current release. | -| Tracked For Code Freeze | Enhancement has met all code freeze requirements for inclusion into current release. | -| At Risk For Code Freeze | Enhancement does not currently meet requirements for inclusion into current release because code freeze requirements have not been met. | -| Tracked For Docs Freeze | Enhancement has met all docs freeze requirements for inclusion into current release. | -| At Risk For Docs Freeze | Enhancement does not currently meet requirements for inclusion into current release because docs freeze requirements have not been met. | -| Exception Required | Enhancement did not meet requirements by enhancement / code freeze and deadlines for requesting an [exception](#exceptions) has not passed. | -| Deferred | Enhancement has been bumped to a future release by owning SIG. | -| Removed From Milestone | Enhancement did not meet requirements by enhancement / code freeze for current release and an exception was not requested and/or approved. | - -Notes: - -- If the Enhancement is being bumped to a later release, set its status to `Deferred`. -- If it is being removed due to missing criteria or lack of response after being included in the milestone, set its status to `Removed from Milestone`. - -> Feel free to ask the previous enhancements leads about this when in doubt. - -##### Release Team Meeting Updates - -For the release team meeting, provide a `status` based on the following criteria: -- A `Red` on our enhancements status means that something major is blocking our work while tracking the enhancements. We hardly have a red status on our enhancements team. -- A `Yellow` status generally means that we are still in progress of tracking and reaching out to KEPs and owners, or we have some minor blockages but will be good as they will be resolved soon. -- A `Green` status means that everything looks good and done from enhancements team side, i.e. every KEP on the tracking board has been communicated with, done with the follow-ups, outreaches etc. Everything is A-OK here. - - -### Escalation / Handling Unresponsive Enhancement Owners - -For issues where the initial owner is unresponsive, try escalating to the relevant SIG's leadership to determine if the issue is still targeted for the release. - -If there is continued unresponsiveness on issues, remove them from the milestone at your discretion. - -### Exceptions - -Exception process is outlined [here](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) - -#### Exceptions.yaml File Format - -When tracking exceptions for a release, create an `exceptions.yaml` file in the release directory (e.g., `releases/release-1.35/exceptions.yaml`). Here's the expected format: - -```yaml -# Exception requests in v1.35 -# Google Group: https://groups.google.com/g/kubernetes-sig-release -# Release Team Lead: [Name] ([@github-handle](https://github.com/github-handle)) - -# Enhancements Freeze Exceptions requested in v1.35 - -enhancementFreeze: - -- name: "Feature Name" - issue: 1234 - date_requested: 2025-01-15 - date_reviewed: 2025-01-18 - thread: https://groups.google.com/g/kubernetes-sig-release/c/thread-id - pull_requests: - - https://github.com/kubernetes/enhancements/pull/5678 - status: "approved" # or "rejected" - -# Code Freeze Exceptions requested in v1.35 - -codeFreeze: - -- name: "Another Feature Name" - issue: 5678 - date_requested: 2025-02-15 - date_reviewed: 2025-02-18 - thread: https://groups.google.com/g/kubernetes-sig-release/c/thread-id - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/123456 - status: "approved" # or "rejected" -``` - -**Field Descriptions:** -- `name`: Human-readable name of the enhancement -- `issue`: Enhancement issue number in kubernetes/enhancements -- `date_requested`: Date when the exception was requested (YYYY-MM-DD format) -- `date_reviewed`: Date when the exception was formally approved/rejected by the release team (YYYY-MM-DD format) -- `thread`: Link to the Google Groups discussion thread -- `pull_requests`: List of relevant PRs (enhancements PRs for enhancement freeze, k/k PRs for code freeze) -- `status`: Either "approved" or "rejected" - -### CNCF / Media Engagement - -- You may be called upon by the communications lead to help with media engagement near the end of the release cycle. Please ensure that if there are any restrictions or training required by your company before engaging that you have completed those ahead of Code Thaw. - -### Succession - -- Select who will be the new enhancement lead for the next release. Shadows should be the first source pool. If none are available to lead then look externally through other release team members or members of [SIG Architecture Enhancements Subproject](https://github.com/kubernetes/community/blob/master/sig-architecture/README.md#enhancements) -- Continually work to improve Enhancements process -- Review / update documentation as the release cycle ends -- Close issues marked as stable that made it into the release, only after the corresponding KEPs have been marked `Implemented` -- Close milestones that are complete -- Cleanup old milestones -- Open a pull request to add the exceptions.yaml file with all the KEPs which applied for an exception during enhancements freeze and code freeze. You can find an example of this exceptions.yaml file [here](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.29/exceptions.yaml). - -### Limitations - -- Populating the Enhancements Tracking sheet is a manual process -- Enhancements issues that are not submitted to [k/enhancements][k/enhancements] are not actively tracked in the context of the Release Team and Release cycle e.g., - - `kubeadm` (https://github.com/kubernetes/kubeadm/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Akind%2Ffeature+milestone%3Av1.12+) - - out-of-tree Cloud Provider code that may live in `kubernetes-sigs/*` - - additional out-of-tree code that may live in the following organizations: - - `kubernetes` - - `kubernetes-client` - - `kubernetes-csi` - - `kubernetes-incubator` - - `kubernetes-sig-testing` - - `kubernetes-sigs` -- Finding consensus on how frequently to triage enhancements - -## Signals - -## Tips & Tricks - -### Sample Searches (examples) - -### GitHub Notifications - -https://groups.google.com/forum/#!topic/kubernetes-dev/5qU8irU7_tE - -[enhancements-group]: https://groups.google.com/forum/#!forum/kubernetes-keps -[enhancements-issues]: https://github.com/kubernetes/enhancements/issues -[k/enhancements]: https://github.com/kubernetes/enhancements -[rt-group]: https://groups.google.com/a/kubernetes.io/g/release-team -[rt-selection]: /release-team/release-team-selection.md -[rt-requirements]: /release-team/release-team-onboarding.md -[sig-arch-readme]: https://github.com/kubernetes/community/tree/master/sig-architecture/README.md -[sig-arch-group]: https://groups.google.com/forum/#!forum/kubernetes-sig-architecture -[sig-arch-enhancements]: https://github.com/kubernetes/community/tree/master/sig-architecture#enhancements -[sig-docs-group]: https://groups.google.com/forum/#!forum/kubernetes-sig-docs -[sig-leads-group]: https://groups.google.com/a/kubernetes.io/g/leads -[sig-release]: https://github.com/kubernetes/community/blob/master/sig-release/README.md -[sig-release-group]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[sig-release-leads-group]: https://groups.google.com/forum/#!forum/kubernetes-sig-release-leads -[1.17-announcement]: https://kubernetes.io/blog/2019/12/09/kubernetes-1-17-release-announcement/ -[1.17-tracking]: https://bit.ly/k8s117-enhancement-tracking +# Enhancements Lead Handbook + +## Overview + +While the Enhancements Lead serves as a member of the Release Team (a subproject of [SIG Release][sig-release]), this role is also a liaison to [sig-arch-Enhancements][sig-arch-enhancements] subproject of [SIG Architecture][sig-arch-readme]. + +## Responsibilities + +An Enhancements Lead holds the following responsibilities: + +- Maintain the active status of Enhancements within [kubernetes/enhancements][k/enhancements] +- Facilitate communication between Enhancement Owners, and SIG leadership, as necessary +- Collate the Release Highlights of the release, including but not limited to: + - new enhancements + - long-awaited enhancements + - enhancements moving into GA + - enhancement deprecations + - notable changes to existing behaviors +- Assist in Communications activities (in conjunction with the Communications Lead & the CNCF Communications team): + - Draft and/or review https://kubernetes.io/blog/ release announcement post, leveraging the themes collected across the release cycle e.g., [1.17 Announcement][1.17-announcement] + - Engage with media analysts during the embargo period to discuss the release themes + - CNCF Kubernetes Release webinar + - Identify potential contributors for the “5 Days of Kubernetes” blog series +- Identify candidates to assume the Enhancements Lead role (according to the [Release Team selection process][rt-selection]) in the following release cycle + - Chose Enhancement shadows whom you believe would be a good fit for succession and help mentor them throughout the release cycle + +## Prerequisites for Enhancements Lead and Shadows + +### General Requirements + +**Before continuing on to the Enhancements specific requirements listed below, please review and work through the tasks in the [Release Team Onboarding Guide](/release-team/release-team-onboarding.md).** + +### Enhancements Specific Requirements + +- MUST have served on the Release Team in a previous capacity, ideally as an Enhancements Shadow +- MUST be a member of the [Release Team Google Group][rt-group] + - List of members for this group is managed in git. Create a [pull request](https://github.com/kubernetes/k8s.io/pull/1533) against [kubernetes/k8s.io](https://github.com/kubernetes/k8s.io/) repo to include both Lead and Shadows under `release-team` group in [k8s.io/sig-release/group.yaml](https://github.com/kubernetes/k8s.io/blob/bd082f195599b8a86b76b0249e5f70f219f1d079/groups/sig-release/groups.yaml#L318) +- MUST be a member of the [SIG Release Google Group][sig-release-group] +- MUST be a member of the [SIG Architecture Google Group][sig-arch-group] +- MUST be a member of the [Kubernetes Enhancements Google Group][enhancements-group] +- The enhancements lead should take the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) training course + +Helpful characteristics of an Enhancements Lead include: + +- experience with the Kubernetes community, code layout, ecosystem projects, organizational norms, governance, SIG structure, architecture, and release process +- product/project/program management experience +- release management experience + +### Time Commitments + +Enhancement is one of the most time-intensive areas of the release team, and especially so during the early parts of the release. An Enhancements Lead can expect to spend: + +- Beginning of the cycle through enhancement freeze: ~8–15 hours a week +- Week of enhancements freeze: 20+ hours +- Enhancement Freeze through Code Freeze: ~4–7 hours a week +- Code Freeze through Release Day: ~1–4 hours a week + +Note that Enhancements Lead in particular will need to do work **during the week** during the early release, and will need to be available at least daily. + +Enhancements shadows can expect to spend ~10–15 hours a week during the early release until enhancements freeze, and ~1–5 hours a week after enhancements freeze. Unlike Enhancements Lead, shadows can expect to do their work largely on weekends if they desire. + +## Mentoring Shadows + +The selected shadows should be: + +- Interested in learning more about the Kubernetes release process. +- Able to dedicate a couple of hours each week to attending the Release meeting in addition to helping with weekly tasks. + +The shadows should be selected keeping in mind that one of them may eventually be taking up the Enhancements Lead role. It is important to delegate tasks and give the shadows broad exposure to the different aspects of the role. + +## Getting Started + +### Access Required + +Ensure that the previous Enhancements Lead has given you access to: + +- The previous Kubernetes release enhancements tracking board. + +Ensure that you and the shadows have been added to: + +- GitHub teams + - [enhancements](https://git.k8s.io/org/config/kubernetes/sig-architecture/teams.yaml) (This group should be used for Enhancement Subproject related pinging only and not for Release Team Enhancements Group) + - [milestone-maintainers](https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml) + - [release-team](https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml) + - [release-team-enhancements](https://git.k8s.io/org/config/kubernetes/sig-release/teams.yaml) (For elevated access to tracking board) + +### Slack + +Join the following Kubernetes Slack channels: + +- [#sig-release](https://kubernetes.slack.com/messages/sig-release) +- [#enhancements](https://kubernetes.slack.com/messages/enhancements) +- [#release-enhancements](https://kubernetes.slack.com/messages/release-enhancements) +- (optional) [#prod-readiness](https://kubernetes.slack.com/messages/prod-readiness) +- (optional) [#release-management](https://kubernetes.slack.com/messages/release-management) + +## Process + +### Standards + +As mentioned previously, the Enhancements Lead role encompasses several cross-functional responsibilities with [sig-arch-Enhancements][sig-arch-enhancements] subproject of [SIG Architecture][sig-arch-readme]. + +The process of maintaining an enhancement in Kubernetes is documented in the [kubernetes/enhancements][k/enhancements] repo. Any questions / concerns / suggestions for improvement to the Enhancements process should be raised as GitHub issues / PRs to k/enhancements. + +It is important that this process be followed and documentation remain up-to-date as the [Enhancements repo][k/enhancements] is the primary ingress point for contributors interested in tracking enhancements. + +### Milestone Activities + Timing + +> Note: The week #n timings given below are tentative. There are special releases like Kubernetes 1.19 or releases at the end of the year which may not strictly conform to that. + +#### Week 0 + +- Create the Enhancements Tracking Board for the current release + - Navigate to https://github.com/orgs/kubernetes/projects/, click the `New Project` button, select the `Table` template (default), and click the `Create` button. + - Update project settings by clicking `...` -> `Settings` from the project board + - Update the `Project name` to reflect the current release, e.g. **1.29 Enhancements Tracking** + - Set the project's `Visibility` to **Public** + - Update project access by clicking `Manage Access` from the settings page + - Set the `Base role` access to **Read** + - Add the following GitHub teams with **Admin** access + - @release-team-leads + - Add the following GitHub teams with **Write** access + - @production-readiness + - @release-team-comms + - @release-team-docs + - @release-team-enhancements + - @prod-readiness-reviewers + - Add the @k8s-infra-ci-robot account to the board with **Write** access. + - Create all the Fields (columns) for the board + > Note: This is currently a manual process and <https://github.com/orgs/community/discussions/41133> filed to help automate the process. + > Note: Since `v1.30` an exceptions process for the Release Doc team is enforced. The previous PR Ready for Review deadline has been replaced with a Docs Freeze phase. Make sure to add `At Risk for Docs Freeze` and `Tracked for Docs Freeze` to the options in `status` column. Moreover add `docs` to the options in `type` column. + - Until this can be automated; manually create fields with the same `Field Name`, `Field type`, and `Option` values from the previous release's project board. + - Create all the Views for the board + > Note: This is also currently a manual process until GitHub GraphQL APIs allow for manipulating Views + - Until this can be automated; manually create Views with the same Names and Fields from the previous release's project board. + Tip: You can easily view all the Fields present in each view by clicking the `v` next to the View's name a selecting `Configuration` -> `Fields` + Note: Remember to **save** each View. If there is a blue bubble next to the Views name there are unsaved changed for that view! + - Disable all Workflows for the project + - Click `...` -> `Workflows` + - For each workflow that enabled (has a green circle next to it), click the workflow and slide the toggle to 'Off' + - Find [Issues labeled `lead-opted-in`](https://github.com/kubernetes/enhancements/issues?q=+is%3Aissue+label%3Alead-opted-in+) and remove the `lead-opted-in` label from all issues. Enhancements must be explicitly opted into each release. + > **Make sure you remove the `lead-opted-in` labels from all the KEPs of the previous release before you turn on the `test-infra` job. Otherwise KEPs from the previous release will be added to the board.** + - Update automation to add issues to the correct Enhancement Tracking Board. Open a PR into [kubernetes/test-infra](https://github.com/kubernetes/test-infra) with the following changes: + - Update the [`GITHUB_PROJECT_BETA_NUMBER`](https://github.com/kubernetes/test-infra/blob/3de59f96b327c87c6d23a7308abc785268931707/config/jobs/kubernetes/sig-k8s-infra/trusted/sig-release-release-team-jobs/release-team-periodics.yaml#L20-L21) variable used by automation to identity the enhancements tracking board for the current release. + - Enable the test-infra job that syncs enhancements to the GitHub project board based on the `lead-opted-in` label. Update the name of the [periodic-sync-enhancements-github-project](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes/sig-k8s-infra/trusted/sig-release-release-team-jobs/release-team-periodics.yaml#L2) cronjob with the version number of the release and enable the cronjob by commenting the impossible cron and uncommenting the `interval`. You can see how this was done for the v1.29 release cycle in [this commit](https://github.com/kubernetes/test-infra/pull/30528/files#diff-9d86ca0a46a2f74a2cf59fff3d18cbba57b5b3489ecc00c36b03f6b6a0c2ac3a). + > Note: Make sure you remove the `lead-opted-in` label from all the KEPs of the previous release before enabling the job. Otherwise KEPs from the previous cycle will be populated in the board. +- Create a shortlink for the Tracking Board + - Create a free account on [bitly](https://bitly.com/) to create a shortlink for the new Enhancement Tracking Board following the pattern `k8sxyy-enhancements`, e.g. <https://bit.ly/k8s127-enhancements>. +- Make a [pull request](https://github.com/kubernetes/sig-release/pull/1411) to add the shortlinked Enhancement Tracking Board to the current release page in [sig-release][sig-release]. +- Make a pull request to add the shortlinked Enhancement Tracking Board to [kubernetes/enhancements README page](https://github.com/kubernetes/enhancements#enhancements-tracking-board). +- Find [Issues][enhancements-issues] from previous milestone that have graduated to Stable. Check to see if the KEP status has been updated to `implemented`. If it has, close the issue. If it has not, ask the issue contact to both update the KEP status field and close the Enhancement issue once the update PR has merged. +- Close previous milestone by ensuring that there are no open issues/PRs in that milestone. +- Gather Shadows to have them read this handbook and give expectations on what the process looks like and their particular role. If possible, try to schedule a call with the shadows to get them accustomed to the team. This helps as a great team building exercise. +- Add Shadows to the `release-team` and `release-team-enhancements` GitHub teams. (See [access-required](#access-required)) +- Add Shadows to the `Enhancements Contact` Field of the Enhancements Tracking Board. +- Create a Google Sheet to track who will give updates at release team meetings + - Access: : **restricted access**, edit rights shared with release team enhancements shadows individually + +#### Week 1 + +- Send an email to the [Kubernetes-Dev](https://groups.google.com/a/kubernetes.io/g/dev) mailing list and a message to #chairs-and-techleads Slack channel with a call for enhancements and how to opt in to the release. Previous communications can be used as a template. + - [1.26 call for enhancements](https://groups.google.com/a/kubernetes.io/g/dev/c/lnxXgZmOOMo/m/r6QNJIewBwAJ?utm_medium=email) +- Verify issues have k/k PRs associated, so they can be referenced and easily tracked. This is going to be critical come Enhancement Freeze and Code Freeze to see the status of the code. +- Work with the Release Lead to introduce yourself, talk about release information, and relay information about opting into the release with SIG Leads. + +#### Before Enhancements Freeze + +- Monitor the Enhancements Tracking Board for new additions as SIGs opt-in KEPs for the release and assign an enhancement contact to each Issue. + +##### What Changes Require Tracking + +A KEP may still be required to opt-in in order for the Enhancements subteam to monitor it, even if it is not graduating to a new stage. + +**Changes that typically do NOT require tracking by the Release Team:** +- Improvements or refactors that do not affect behaviour (e.g., code cleanup, variable renaming, internal function reorganisation) +- Bug fixes that preserve functionality while restoring the intended behaviour + +**Changes that typically DO require tracking by the Release Team:** +- Refactors or enhancements that affect behaviour (e.g., altering the functionality of a feature, modulating error handling, or changing performance characteristics) +- Any modifications that affect the user experience + +The team will collaborate with the KEP authors to ensure that any outstanding exception request deadlines are met in the event that a KEP is discovered to contain modifications that should have been monitored. + +Please contact SIG Release on Slack if there is any uncertainty regarding whether the planned action meets the threshold for required tracking. + +- For opted in Issues periodically (at least once a week): + - Ensure Issue is in the current milestone + - Ensure Issue has correct labels (`stage/xxx` is accurate, etc.) + - Ensure Fields in the Enhancement Tracking Board are populated and accurate (Status, Stage, SIG, ...) + - Evaluate if the enhancement satisfies all the [requirements](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze) for inclusion in the current release. + - Comment on the Issue with a status updating using one of the [templates from below](#enhancement-freeze-templates) + - Update `Enhancement Status` field for this Enhancement in the Enhancement Tracking Board (`Tracked for enhancements freeze` or `At risk for enhancements freeze`) + - KEPs targeting `stable` will need to be marked as `implemented` after code PRs are merged. This will need to be verified after the code freeze. + - *Note*: Refer to the [README template](https://github.com/kubernetes/enhancements/blob/master/keps/NNNN-kep-template/README.md?plain=1) to determine which sections are required based on the stage (`alpha`/`beta`/`stable`) that the enhancement is targeting. It is not the Enhancement team's responsibility to validate the correctness/completeness of the README content; we only need to make sure that each required section is present. + - *Tip*: In case they are not linked from the issue description, both the `kep.yaml` and `README.md` can be found in a directory with the format `https://github.com/kubernetes/enhancements/tree/master/keps/<sig>/<kep-issue-number>-<kep-title>/`, and the PRR can be found at `https://github.com/kubernetes/enhancements/blob/master/keps/prod-readiness/<sig>/<kep-number>.yaml`. + - In the (relatively rare) case of a KEP deprecation or removal: + - The `kep.yaml` should have `status` set to `withdrawn`, and the `latest-milestone` updated to the current release. + - The `README.md` should be updated to indicate that the KEP is deprecated or withdrawn. + - No changes are needed to the PRR. + - Verify that the KEP author has followed the [Kubernetes Deprecation Policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/). If there is any uncertaintly, it may be helpful to start a thread in the #enhancements channel in Slack. +- Reach out to each [SIG on Slack](https://github.com/kubernetes/community/blob/master/sig-list.md) tagging one or more chairs or technical leads to communicate the Enhancements statuses. Example [communication templates](#sig-outreach-templates-optional) can be found below. +- Start syncing with Communications Team on giving an induction what's coming up for the release. +- Send an email to [Kubernetes-Dev](https://groups.google.com/a/kubernetes.io/g/dev) that Enhancement freeze is coming and share current Enhancements status. Examples [1](https://groups.google.com/g/kubernetes-dev/c/-nTNtBBHL2Y/m/WfNzb_E1EAAJ). +- Provide updates during release team meetings + - Use the `KEPs by Stage` insight from the Enhancement Tracking Board ([example](https://github.com/orgs/kubernetes/projects/98/insights/3)) +- Notify folks in [#prod-readiness](https://kubernetes.slack.com/archives/CPNHUMN74) about KEPs waiting for PRR reviews with the project board filtered for KEPs missing PRR assignees. + +#### PRR Reviews + +The KEP template production readiness questionnaire should be filled out by the KEP authors, and reviewed by the SIG leads. +Once the leads are satisfied with both the overall KEP (i.e., it is ready to move to `implementable` state) and the PRR answers, +the authors request a PRR approval. See [submitting a KEP for production readiness approval](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval) for more details. + +When should a KEP owner request for a new PRR? +1. When the KEP is ready to move to `implementable` state from `provisional`. +2. Everytime the KEP graduates to a new stage (`alpha`/`beta`/`stable`) the KEP needs a new PRR approval. If the KEP is graduating and is missing a section in the README that was not required for earlier stages (e.g. the scalability section is only required for `beta` or `stable`) it will need a new PRR review. +3. When there are major changes introduced in the responses of the PRR questionnaire in the KEP README.md file (this requires a new PRR review even if the KEP is staying in the same stage). + +For example, the Enhancements team needs to check the KEP has PRR approval when: + +**KEP graduates to `alpha`:** + +``` +# keps/prod-readiness/<name-of-the-sig>/1234.yaml +kep-number: 1234 +alpha: + approver: @<gh-handle-of-PRR-approver> +``` + +**KEP graduating from `alpha` -> `beta`** + +``` +# keps/prod-readiness/<name-of-the-sig>/1234.yaml +kep-number: 1234 +alpha: + approver: @<gh-handle-of-PRR-approver> +beta: + approver: @<gh-handle-of-PRR-approver> +``` + +**and `beta` -> `stable`** + +``` +# keps/prod-readiness/<name-of-the-sig>/1234.yaml +kep-number: 1234 +alpha: + approver: @<gh-handle-of-PRR-approver> +beta: + approver: @<gh-handle-of-PRR-approver> +stable: + approver: @<gh-handle-of-PRR-approver> +``` + +##### PRR Freeze + +The PRR freeze is a hard deadline happening one week before the [Enhancements Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze). KEPs that will miss this deadline require an [Exception](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) or they will be removed from the milestone. + +As described by the PRR team [here](https://groups.google.com/a/kubernetes.io/g/dev/c/CQ33yPqp-H4/m/hHO-NaQiAQAJ): + +- By the PRR freeze date, KEP authors must have completed the PRR questionnaire for all opted-in enhancements (KEPs). +- It is important to note that the PRR freeze **_does not_** mean that the KEPs need to have received an approval or even a review from the PRR team by this date. +- To emphasize, the sole requirement is that all opted-in KEPs have their PRR questionnaires answered by the deadline, to ensure the PRR team has sufficient time to review them by Enhancements Freeze. + +> Note: KEPs that doesn't complete the PRR questionnaire and get back to the reviews from the PRR team are removed from the milestone during the enhancements freeze party. The PRR freeze deadline exists as a reminder for this. + +##### Enhancement KEP Status + +For each Enhancement KEP, the Enhancement team needs to verify that the `status` set in the KEP is one of `provisional`, `implementable`, `implemented`, `deferred`, `rejected`, `withdrawn`, or `replaced`. +The `status` must follow the criteria: + +| Status | Description | +|--------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| provisional | The KEP has been proposed and is actively being defined. This is the starting state while the KEP is being fleshed out and actively defined and discussed. The owning SIG has accepted that this work must be done. | +| implementable | Enhancement KEP should no longer have major changes and must be approved by each of the KEP approvers to enter `implementable`. | +| implemented | Enhancement is graduating to`Stable`, code PRs are merged and feature flags have been removed. Once a feature has become `implemented`, major changes should get new KEPs. | +| deferred | Enhancement is proposed but not actively being worked on or the Enhancement has been bumped to a future release by owning SIG. | +| rejected | The approvers and authors have decided that this KEP is not moving forward. The KEP is kept around as a historical document. | +| withdrawn | Enhancement KEP authors have withdrawn the KEP and Enhancement will be removed from the code. | +| replaced | The KEP has been replaced by a new KEP. The superseded-by metadata value should point to the new KEP. | + +See the sig-architecture Enhancements [KEP Template](https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/0000-kep-process/README.md#kep-template) guide for a walkthrough of the metadata fields found in the KEP template. + +#### Week of Enhancements Freeze +- On the day of the Enhancements Freeze, schedule an "Enhancement Freeze Party". Invite all the Enhancement shadows, Emeritus Advisor, Release Team Lead and Lead Shadows (make participation optional for the invitees due to potential timezone differences.) Post the "Enhancement Freeze Party" meeting details in the #sig-release and #release-enhancements Kubernetes Slack channels. **Note**: It is helpful to delegate enhancements to review to shadows to help with the process. +- Clean up Enhancements issues by removing release milestone (e.g., v1.28) from the KEP GitHub issue by commenting /milestone clear on the KEP issue for Enhancements that have not opted-in + - [example GitHub comment](https://github.com/kubernetes/enhancements/issues/3140#issuecomment-1121930633) on removing 1.24 milestone + - Make sure that number of in-tree open issues with current milestone matches number of opted-in enhancements by checking the Enhancements Tracking Board and GitHub issues with the current milestone. **Note**: in-tree refers to KEPs with PRs inside the [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) repository. +- If a previously removed Enhancement has had their exception Approved, set their **Enhancement Status** to `Tracked for enhancements freeze` in the Enhancement Tracking Board. +- On Freeze day, email [Kubernetes-Dev](https://groups.google.com/a/kubernetes.io/g/dev) that freeze has happened and upcoming key dates. Examples [1](https://groups.google.com/g/kubernetes-dev/c/JDM7bNKvhqQ/m/8S7BXtXPBQAJ). +- Disable the [periodic-sync-enhancements-github-project](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes/sig-k8s-infra/trusted/sig-release-release-team-jobs/release-team-periodics.yaml#L2) cronjob which syncs enhancements where the `lead-opt-in` label has been added to the GitHub project board. + - Disable the job by commenting the `interval` and uncommenting the impossible cron date. You can see how this was done in the v1.29 release in [this commit](https://github.com/kubernetes/test-infra/commit/064dd07f0164c2aadc12d611f5a851d6cc40afdd). +- Remove any Enhancements that failed to meet the criteria by the Enhancement freeze deadline. + - Set their **Enhancement Status** in the board to `Removed from Milestone`. + - Remove the milestone. + ```text + /milestone clear + ``` + +<figure class="image"> + <img alt="Sample project board with milestones" src="img/project-board-milestones.png" height="200" width="450"> + <figcaption> + Sample GitHub project board with labels showing `lead-opted-in` and different milestones. + Only the enhancements targeting the current release should have the milestone set. + </figcaption> +</figure> + +#### Post Enhancements Freeze + +- Any enhancements removed from the milestone will now require an exception. As exception requests come in, discuss each with the Release Lead (and Shadows) to arrive at an approve/reject decision. + - Create an exception file in the Release for exceptions Example [1](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.33/exceptions.yaml). + - Example PRs where the `exceptions.yaml` file was created to track enhancement freeze exception requests: + - [Add exceptions from v1.33 Enhancement Freeze](https://github.com/kubernetes/sig-release/pull/2732) + - [Add exceptions from v1.32 Enhancement Freeze](https://github.com/kubernetes/sig-release/pull/2645) +- Stay on top of issues and continually monitor them twice a week and look at attached PRs. As Code Freeze gets closer, if there are PRs that have not been merged, move the issue to `At risk for code freeze`. If there is no activity, ping issue owners on either the issue or the k/k PR. +- Monitor issues that are `At risk for code freeze` closely, almost daily. Code Freeze means no new code and keeping tabs on the status of the k/k PR is critical to planning. Make decisions if the enhancement should be deferred and work with SIG Leads to determine the best path forward. + +#### Before Code Freeze + +**All** enhancements going into the release must have their pull requests in a merge-ready state with approved and lgtm labels applied. This includes tests, and docs PRs opened by the due date. Due to the Prow queue, this may mean that approved PRs merge shortly after the deadline. + +> **Note**: Refer to the [What Changes Require Tracking](#what-changes-require-tracking) section for guidance on whether your KEP needs to be tracked by the Release Team and marked as `Tracked for code freeze`. + +To avoid delays and ensure everything is in place for Code Freeze: +- **Coordinate with the Release Branch Manager**: Reach out to the Release Branch Manager to give them a heads-up about the upcoming Code Freeze. They are responsible for raising the PR that officially enforces the Code Freeze. Coordinating early helps minimize the risk of delays and last-minute blockers. For more details on their role and responsibilities, refer to the [Release Branch Manager Handbook](https://github.com/kubernetes/sig-release/blob/master/release-engineering/role-handbooks/branch-manager.md) + +- **Ensure the Code Freeze PR is Ready to Merge**: + The Code Freeze PR should be ready for merge (i.e., it has both `lgtm` and `approved` labels) **on or before the date of Code Freeze**. + **Recommendation:** Work with the Release Branch Manager to get the PR created ahead of time and ensure all **required labels** (`lgtm`, `approved`) are in place. They can add a `/hold` to prevent the PR from merging early - then simply lift the hold in the Code Freeze Party. + +- **Reference Code Freeze PRs**: Below are examples of PRs used to enforce Code Freeze in previous releases: + - [PR Enforcing Code Freeze - v1.33](https://github.com/kubernetes/test-infra/pull/34532) + - [PR Enforcing Code Freeze - v1.32](https://github.com/kubernetes/test-infra/pull/33778) + - [PR Enforcing Code Freeze - v1.31](https://github.com/kubernetes/test-infra/pull/33049) + +Read https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze for more information on the Code Freeze. + +#### Pre-Freeze Check: Catching untracked feature changes + +As part of the Enhancements team’s responsibilities, this step helps ensure that user-facing feature changes are not merged without being properly tracked via a KEP. + +#### When to check for Untracked feature work + +- Before **Code Freeze** +- Especially useful in active release cycles where many `kind/feature` PRs are being merged. + +#### How to identify merged feature PRs for current release + +Use the GitHub search below to list PRs: +- Labeled `kind/feature` +- Closed (i.e., merged or declined) +- Targeting the **current release milestone** + +[View feature PRs merged in v1.33](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+milestone%3Av1.33+is%3Aclosed+sort%3Acreated-asc+label%3Akind%2Ffeature) + +```text +https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+milestone%3Av1.33+is%3Aclosed+sort%3Acreated-asc+label%3Akind%2Ffeature +``` +> [!NOTE] +> Be sure to update the milestone (`v1.33`) in the query to the current release (e.g., `v1.34`). + +#### Why check for untracked user-facing features + +In past releases, we've seen partial implementations get merged without being fully tracked. This can result in: + - User-facing features with no docs or release notes. + - Confusion during testing or upgrade planning. + - Late-stage reversions or rushed exceptions. + +By doing this simple check, we give ourselves an early window to document changes, request follow-ups, or even coordinate a rollback if needed. + +#### Visual Flow: Handling partially merged KEPs +Use this decision flow to determine next steps when a KEP’s implementation is only partially complete at freeze time: + +```mermaid +flowchart TD + direction TB + + Start["Start: KEP is targeting this release"] + + Intent["What are you working on this cycle?"] + AddFeature["Graduating to a new stage or adding user-facing features"] + RefineQuietly["Refining implementation only (no graduation or user-facing changes)"] + + %% Add feature path + EF1["Enhancement Freeze: 1. KEP issue: lead-opted-in label, milestone added, 2. KEP updates: kep.yaml, README.md, 3. PRR review complete"] + CF1["Code and Test Freeze: Were all implementation and tests PRs merged?"] + AllMerged["KEP marked tracked for Code Freeze as usual"] + NotAllMerged{"Some PRs merged, others not"} + UserImpact{"Do merged PRs include user-facing changes?"} + NotifyRelease["Reach out to the release team and have multiple iterations of the same stage."] + NotTracked1["No user-facing impact. KEP will not be tracked for this release (no docs, no release highlights)."] + + %% Continue work path + EF2["Enhancement Freeze: No KEP updates needed"] + CF2["Code Freeze: All or some PRs merged, no user-facing changes"] + ChangelogOnly["KEP appears in changelog, but not tracked by release team."] + + %% Flow + Start --> Intent + Intent -->|Graduate or add user-facing features| AddFeature --> EF1 --> CF1 + + CF1 -->|All merged| AllMerged + CF1 -->|Some merged| NotAllMerged --> UserImpact + UserImpact -->|Yes| NotifyRelease + UserImpact -->|No| NotTracked1 + + Intent -->|Refine only| RefineQuietly --> EF2 --> CF2 --> ChangelogOnly +``` + +#### Week of Code Freeze + +- Delegate enhancements to shadows to reach out to assigned KEPs two weeks before code freeze. + - Evaluate if the enhancement satisfies all the [requirements](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze) for inclusion in the current release. + - Comment on the Issue with a status updating using one of the [templates from below](#code-freeze-templates) + - Update `Enhancement Status` field for this Enhancement in the Enhancement Tracking Board (`Tracked for code freeze` or `At risk for code freeze`) + - If the code PRs are not tracked in the GitHub issue description, search [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) for the KEP number or KEP keywords to find the PRs and add them to the GitHub issue description. Validate that you found the correct code PRs with the KEP author. + - KEPs targeting `stable` for the release will now need to be marked as `implemented` after code PRs are merged. +- Start planning for the next release while assisting the Release Lead with anything relating to analytics or Public Relation planning of the release. Work with the Communications Lead to develop Release Highlights for the official Kubernetes blog post. + +**Note**: out-of-tree enhancements i.e. enhancements with label `tracked/out-of-tree` applied to them don't have their PRs inside [kubernetes/kubernetes](https://github.com/kubernetes/kubernetes) repository unlike other enhancements, therefore during enhancements-freeze and code-freeze they might not strictly comply with the tracking criteria. + Examples: + - https://github.com/kubernetes/enhancements/issues/3203#issuecomment-1421928726 + - https://github.com/kubernetes/enhancements/issues/3476#issuecomment-1467208685 + +#### Code Freeze Party 🎉 +- Schedule a "Code Freeze Party" on the day of the code freeze. Invite all the Enhancement shadows, Emeritus Advisor, Release Team Lead and Lead Shadows (make participation optional for the invitees due to potential timezone differences.) Post the "Code Freeze Party" meeting details in the #sig-release and #release-enhancements Kubernetes Slack channels. +- During the "Code Freeze Party" meeting, review each of the tracked Enhancements to perform a final status assessment for code freeze readiness. If an Enhancement doesn't meet the requirements for the [code freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze), notify the author of the KEP by leaving a comment on the corresponding KEP issue. Use the [second code freeze communication template from below.](#code-freeze-templates) **Note**: It is helpful to delegate enhancements to review to shadows to help with the process. +- Remove any enhancements that failed to merge their code by the Code freeze deadline. + - Set their status in the sheet to `Removed from Milestone`. + - Remove the milestone. + ```text + /milestone clear + ``` + + - Remove the milestone from all open `k/k` PRs related to the enhancement. +- Any enhancements removed from the milestone will now require an exception. As exception requests come in, discuss each with the Release Lead (and Shadows) to arrive at an approve/reject decision. + - Add a `/hold` label to `k/k` PRs associated with incoming exceptions to prevent from accidental merge. + - Add incoming exception information to the previous created `exceptions.yaml` file (e.g., [PR #2753](https://github.com/kubernetes/sig-release/pull/2753), [PR #2593](https://github.com/kubernetes/sig-release/pull/2593)). + - If an **Exception Request** for a previously removed Enhancement is approved by the Release Team (on the Exception Request email), update its **Enhancement Status** to `Tracked for enhancements freeze` on the Enhancement Tracking Board. + +### Communication Templates + +In all the templates, replace the text in `{ }` with appropriate values. + +The freeze dates/times can be found at `https://github.com/kubernetes/sig-release/blob/master/releases/release-{version}/README.md`. + +#### PRR Freeze Templates + +If the Enhancement Issue **does not** meet the criteria for inclusion in the current release use this template in Issue comments: + +```markdown +Hello {enhancement owner} 👋, {current release} Enhancements team here. + +This is a reminder of the upcoming [PRR freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#prr-freeze) on **{ PRR_FREEZE_DATETIME }**. + +This enhancement is targeting stage `{stage}` for {current release} (correct me, if otherwise) + +Here's where this enhancement currently stands: + +- [ ] PR open or merged with the KEP's [PRR questionnaire](https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template#production-readiness-review-questionnaire) filled out. +- [ ] PR open or merged with [kep.yaml](https://github.com/kubernetes/enhancements/blob/master/keps/NNNN-kep-template/kep.yaml) updated with the `stage`, `latest-milestone`, and `milestone` struct filled out. +- [ ] PR open or merged with a [PRR approval file](https://github.com/kubernetes/enhancements/blob/master/keps/prod-readiness/template/nnnn.yaml) with the PRR approver listed for the stage the KEP is targeting. + +For this KEP, we would just need to update the following: +- {insert list of action items} + +Note that the PR is not required to be approved or merged by the PRR freeze deadline. Having the PRR questionnaire filled out by the deadline will help ensure that the PRR team has enough time to review your KEP before **enhancements freeze on { ENHANCEMENTS_FREEZE_DATETIME }**. For more information on the PRR process, see [here](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval). + +The status of this enhancement is marked as `At risk for PRR freeze`. Please keep the issue description up-to-date with appropriate stages as well. + +If you anticipate missing PRR freeze, you can file an [exception request](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) in advance. Thank you! +``` + +Then make sure the status of the enhancement is set to `At risk for PRR freeze`. + +If the Enhancement Issue **does** meet the criteria for inclusion in the current release use this template in Issue comments: + +```markdown +Hello {enhancement owner} 👋, {current release} Enhancements team here. + +This is a reminder of the upcoming [PRR freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#prr-freeze) on **{ PRR_FREEZE_DATETIME }**. + +This enhancement is targeting stage `{stage}` for {current release} (correct me, if otherwise) + +Here's where this enhancement currently stands: + +- [x] PR open or merged with the KEP's [PRR questionnaire](https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template#production-readiness-review-questionnaire) filled out. +- [x] PR open or merged with [kep.yaml](https://github.com/kubernetes/enhancements/blob/master/keps/NNNN-kep-template/kep.yaml) updated with the `stage`, `latest-milestone`, and `milestone` struct filled out. +- [x] PR open or merged with a [PRR approval file](https://github.com/kubernetes/enhancements/blob/master/keps/prod-readiness/template/nnnn.yaml) with the PRR approver listed for the stage the KEP is targeting. + +Note that the PR is not required to be approved or merged by the PRR freeze deadline. Having the PRR questionnaire filled out by the deadline will help ensure that the PRR team has enough time to review your KEP before **enhancements freeze on { ENHANCEMENTS_FREEZE_DATETIME }**. For more information on the PRR process, see [here](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval). + +With all the PRR freeze requirements in place, this enhancement is now marked as `Tracked for PRR freeze`! Please keep the issue description up-to-date with appropriate stages as well. + +/label tracked/yes +``` + +Then make sure the status of the enhancement is set to `Tracked for PRR freeze`. + +#### Enhancement Freeze Templates + +If the Enhancement Issue **does not** meet the criteria for inclusion in the current release use this template in Issue comments: + +```markdown +Hello {enhancement owner} 👋, {current release} Enhancements team here. + +Just checking in as we approach [enhancements freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze) on **{ ENHANCEMENTS_FREEZE_DATETIME }**. + +This enhancement is targeting stage `{stage}` for {current release} (correct me, if otherwise) + +Here's where this enhancement currently stands: + +- [ ] KEP readme using the [latest template](https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template) has been merged into the k/enhancements repo. +- [ ] KEP status is marked as `implementable` for `latest-milestone: { CURRENT_RELEASE }`. +- [ ] KEP readme has up-to-date graduation criteria. +- [ ] KEP has a production readiness review that has been completed and merged into k/enhancements. (For more information on the PRR process, check [here](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval)). + +For this KEP, we would just need to update the following: +- {insert list of action items} + +The status of this enhancement is marked as `At risk for enhancements freeze`. Please keep the issue description up-to-date with appropriate stages as well. + +If you anticipate missing enhancements freeze, you can file an [exception request](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) in advance. Thank you! +``` + +Then make sure the status of the enhancement is set to `At risk for enhancements freeze`. + +If the Enhancement Issue **does** meet the criteria for inclusion in the current release use this template in Issue comments: + +```markdown +Hello {enhancement owner} 👋, {current release} Enhancements team here. + +Just checking in as we approach [enhancements freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze) on **{ ENHANCEMENTS_FREEZE_DATETIME }**. + +This enhancement is targeting stage `{stage}` for {current release} (correct me, if otherwise) + +Here’s where this enhancement currently stands: + +- [X] KEP readme using the [latest template](https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template) has been merged into the k/enhancements repo. +- [X] KEP status is marked as `implementable` for `latest-milestone: { CURRENT_RELEASE }`. KEPs targeting `stable` will need to be marked as `implemented` after code PRs are merged. +- [X] KEP readme has up-to-date graduation criteria. +- [X] KEP has [submitted a production readiness review](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval) request for approval and has a reviewer assigned. +- [X] KEP has a production readiness review that has been completed and merged into k/enhancements. (For more information on the PRR process, check [here](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval)). + +With all the KEP requirements in place and merged into k/enhancements, this enhancement is all good for the upcoming enhancements freeze. 🚀 + +The status of this enhancement is marked as `Tracked for enhancements freeze`. Please keep the issue description up-to-date with appropriate stages as well. Thank you! + +/label tracked/yes +``` + +Then make sure the status of the enhancement is set to `Tracked for enhancements freeze`. + +#### Enhancement Freeze Party Templates + +If the Enhancement Issue **does not** meet the enhancement freeze criteria for inclusion in the current release use this template in Issue comments: + +```markdown +Hello {enhancement owner} 👋, {current release} Enhancements team here. + +Unfortunately, this enhancement did not meet requirements for [enhancements freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#enhancements-freeze). + +If you still wish to progress this enhancement in {current release}, please file an [exception](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) request as soon as possible, within three days. If you have any questions, you can reach out in the #release-enhancements channel on Slack and we'll be happy to help. Thanks! + +/label tracked/no +/milestone clear +``` + +Then make sure the status of the enhancement is set to `Removed from Milestone`. + +If the Enhancement Issue **does** meet the enhancement freeze criteria for inclusion in the current release (and has not already been marked as `Tracked for enhancements freeze`), use this template in Issue comments: + +```markdown +Hello {enhancement owner} 👋, {current release} Enhancements team here. + +With all the requirements fulfilled, this enhancement is now marked as tracked for the upcoming enhancements freeze 🚀 + +/label tracked/yes +``` + +Then make sure the status of the enhancement is set to `Tracked for enhancements freeze`. + +#### Code Freeze Templates + +> **Note**: Refer to the [What Changes Require Tracking](#what-changes-require-tracking) section for guidance on whether your KEP needs to be tracked by the Release Team and marked as `Tracked for code freeze`. + +If the Enhancement Issue **does not** meet the code freeze criteria for inclusion in the current release use this template in Issue comments: + +```markdown +Hey again {enhancement owner} 👋, {current release} Enhancements team here, + +Just checking in as we approach [code freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze) and [test freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#test-freeze) at **{ CODE_FREEZE_DATETIME }**. + +Here's where this enhancement currently stands: + +- [ ] All PRs to the Kubernetes repo that are related to your enhancement are linked in the above issue description (for tracking purposes). +- [ ] All PRs are ready to be merged (they have `approved` and `lgtm` labels applied) by the code freeze deadline. This **includes** tests. + +Per the issue description, these are all of the implementation (code-related) PRs for {current release}, some of which are not merged yet: +- { list of PRs associated with this enhancement } + +Please let me know (and keep the issue description updated) if there are any other PRs in [`k/k`](https://github.com/kubernetes/kubernetes) that we should track for this KEP, so that we can maintain accurate status. + +If the implementation work for this enhancement is occurring **out-of-tree** (i.e., outside of `k/k`), please link the relevant PRs in the issue description for visibility. Alternatively, if you're unable to provide specific PR links, a confirmation that **all out-of-tree implementation work is complete and merged** will help us finalize tracking and maintain accuracy. + +The status of this enhancement is marked as `At risk for code freeze`. + +If you anticipate missing code freeze, you can file an [exception request](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) in advance. +``` + +Then make sure the status of the enhancement is set to `At risk for code freeze`. + +If the Enhancement Issue **does** meet the code freeze criteria for inclusion in the current release use this template in Issue comments: + +```markdown +Hey again {enhancement owner} 👋, {current release} Enhancements team here, + +Just checking in as we approach [code freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#code-freeze) and [test freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release_phases.md#test-freeze) at **{ CODE_FREEZE_DATETIME }**. + +Here's where this enhancement currently stands: + +- [x] All PRs to the Kubernetes repo that are related to your enhancement are linked in the above issue description (for tracking purposes). +- [x] All PRs are ready to be merged (they have `approved` and `lgtm` labels applied) by the code freeze deadline. This **includes** tests. + +Per the issue description, these are all of the implementation (code-related) PRs for {current release}: +- { list of PRs associated with this enhancement } + +Please let me know (and keep the issue description updated) if there are any other PRs in [`k/k`](https://github.com/kubernetes/kubernetes) that we should track for this KEP, so that we can maintain accurate status. + +If the implementation work for this enhancement is occurring **out-of-tree** (i.e., outside of `k/k`), please link the relevant PRs in the issue description for visibility. Alternatively, if you're unable to provide specific PR links, a confirmation that **all out-of-tree implementation work is complete and merged** will help us finalize tracking and maintain accuracy. + +This enhancement is now marked as `Tracked for code freeze`! + +Please note that KEPs targeting `stable` need to have the `status` field marked as `implemented` in the kep.yaml file after code PRs are merged. + +/label tracked/yes +``` + +Then make sure the status of the enhancement is set to `Tracked for code freeze`. + +#### Code Freeze Party Templates + +If the Enhancement Issue **does not** meet the code freeze criteria for inclusion in the current release use this template in Issue comments: + +```markdown +Hello {enhancement owner} 👋, {current release} Enhancements team here, + +Unfortunately, the implementation (code-related) PRs associated with this enhancement are not in the merge-ready state by code-freeze and hence this enhancement is now removed from the {current release} milestone. + +<!-- Use the following paragraph if not all implementation PRs for the KEP were merged before freeze deadline --> +Additionally, if **any of the merged implementation PRs** for this enhancement include **user-facing changes**, please let us know. This will help us determine whether the changes should be documented or considered for rollback to maintain release integrity. + +If you still wish to progress this enhancement in {current release}, please file an [exception](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) request as soon as possible, within three days. If you have any questions, you can reach out in the #release-enhancements channel on Slack and we'll be happy to help. Thanks! + +/label tracked/no +/milestone clear +``` + +Then make sure the status of the enhancement is set to `Removed from Milestone`. + +If the Enhancement Issue **does** meet the code freeze criteria for inclusion in the current release (and has not already been marked as `Tracked for code freeze`), use this template in Issue comments: + +```markdown +Hello {enhancement owner} 👋, {current release} Enhancements team here. + +With all the implementation (code-related) PRs merged per the issue description: +- {insert list of code prs} + +This enhancement is now marked as `Tracked for code freeze` for the {current release} Code Freeze! + +Please note that KEPs targeting `stable` need to have the `status` field marked as `implemented` in the kep.yaml file after code PRs are merged. + +/label tracked/yes +``` + +Then make sure the status of the enhancement is set to `Tracked for code freeze`. + +#### SIG Outreach Templates (optional) + +For SIGs which have opted to include Enhancements in the current release: + +```markdown +Hello SIG { SIG_NAME }! Enhancements team here. +Just checking in as we approach PRR freeze at { PRR_FREEZE_DATETIME }. +Your SIG has submitted { X } enhancements for the { CURRENT_RELEASE } cycle, and { Y } enhancements are currently `At risk for PRR freeze`. +Refer to the [announcement here]({link to announcement for current release cycle}) for the list of review requirements. +If your SIG still plans to submit more enhancements, follow the [instructions here]({link to announcement for current release cycle}) so the enhancements team can begin tracking. +Please plan to make KEP updates to meet all the requirements before enhancement freeze. +Please reach out to [#release-enhancements](https://kubernetes.slack.com/archives/C02BY55KV7E) if you have any questions. +``` + +For SIGs which have not opted to include Enhancements in the current release: + +```markdown +Hello SIG {{ SIG_NAME }}. Enhancements team here. +Just checking in as we approach PRR freeze at {{ PRR_FREEZE_DATETIME }}. +Your SIG has not submitted any enhancements for the { CURRENT_RELEASE } cycle. +If your SIG still plans to submit an enhancement, follow the [instructions here]({link to announcement for current release cycle}) so the enhancements team can begin tracking. +If your SIG is not planning to submit an enhancement, please reply to this message to confirm. +Please reach out to [#release-enhancements](https://kubernetes.slack.com/archives/C02BY55KV7E) if you have any questions. +``` + +### Working with the Enhancement Tracking Board + +The Enhancements Tracking Board is used by the release-enhancements, release-docs, and release-comms teams. +Information in this document will be focused on how the Enhancements team should interact with the project board. + +#### Enhancements View + +The `Enhancements` view is the primary view for the project board and is owned by the Enhancements subteam. +This view is used source of truth for tracking the status of enhancements included in a given release. + +> - **Do not** archive items from the board! Enhancements that are no longer being tracked for the current release are filtered out of the default View but should remain in the board for tracking purposes. + +| Field | Description | +|---------------------:|-----------------------------------------------------------------------------------| +| Title | Title of (and link to) the `Issue` in k/enhancements. | +| Assignees | Assignees for the `Issue` in k/enhancements. | +| Type | [Type](#type) of enhancement. | +| Stage | Target stage (Alpha, Beta, Stable) for the current release. | +| Status | [Status](#status) of the enhancement. | +| Enhancements Contact | Alias of the Enhancements team designated as primary contact for the enhancement. | +| SIG | Owning SIG. | +| PRR Status | Status of PRR review for the enhancement. | +| Labels | Labels applied to the `Issue` in k/enhancements. | +| Milestone | The milestone assigned to the `Issue` in k/enhancements. | +| Note | Freeform notes added by the Enhancements team. | + +##### Type + +| Type | Description | +|-------------:|---------------------------------------------------------------------------------------------------------------| +| Net New | Enhancement is adding net-new work. Usually reserved for enhancements targeting their `Alpha` implementation. | +| Major Change | Enhancement is staying at the current Stage, but major changes in functionality are being implemented. | +| Graduating | Enhancement is graduating to `Beta` or `Stable`. | +| Deprecation | Enhancement is tracking a deprecations or removals. | +| Docs | This is a PR for Docs that is being tracked by Docs team. | +Notes : + +- If the feature is graduating to `Alpha`, the type can either be Net New/Major Change. But usually when features are introduced to Kubernetes, they are not Major Changes. +- If the feature is graduating to `Beta/Stable`, almost always the type is Graduating/Major Change. One exception to that is some features directly jump the hoop to Beta, in that case, the type can be Net New for even a `Beta` feature. + +##### Status + +The field `Status` tracks if the KEP has met all the criteria for inclusion in the current release. +Refer to the [Enhancement Freeze Communications](#enhancement-freeze-templates) for detailed requirements. + +| Status | Description | +|-----------------------:|---------------------------------------------------------------------------------------------------------------------------------------------| +| Tracked For Enhancement Freeze | Enhancement has met all requirements for inclusion into current release. | +| At Risk For Enhancement Freeze | Enhancement does not currently meet requirements for inclusion into current release. | +| Tracked For Code Freeze | Enhancement has met all code freeze requirements for inclusion into current release. | +| At Risk For Code Freeze | Enhancement does not currently meet requirements for inclusion into current release because code freeze requirements have not been met. | +| Tracked For Docs Freeze | Enhancement has met all docs freeze requirements for inclusion into current release. | +| At Risk For Docs Freeze | Enhancement does not currently meet requirements for inclusion into current release because docs freeze requirements have not been met. | +| Exception Required | Enhancement did not meet requirements by enhancement / code freeze and deadlines for requesting an [exception](#exceptions) has not passed. | +| Deferred | Enhancement has been bumped to a future release by owning SIG. | +| Removed From Milestone | Enhancement did not meet requirements by enhancement / code freeze for current release and an exception was not requested and/or approved. | + +Notes: + +- If the Enhancement is being bumped to a later release, set its status to `Deferred`. +- If it is being removed due to missing criteria or lack of response after being included in the milestone, set its status to `Removed from Milestone`. + +> Feel free to ask the previous enhancements leads about this when in doubt. + +##### Release Team Meeting Updates + +For the release team meeting, provide a `status` based on the following criteria: +- A `Red` on our enhancements status means that something major is blocking our work while tracking the enhancements. We hardly have a red status on our enhancements team. +- A `Yellow` status generally means that we are still in progress of tracking and reaching out to KEPs and owners, or we have some minor blockages but will be good as they will be resolved soon. +- A `Green` status means that everything looks good and done from enhancements team side, i.e. every KEP on the tracking board has been communicated with, done with the follow-ups, outreaches etc. Everything is A-OK here. + + +### Escalation / Handling Unresponsive Enhancement Owners + +For issues where the initial owner is unresponsive, try escalating to the relevant SIG's leadership to determine if the issue is still targeted for the release. + +If there is continued unresponsiveness on issues, remove them from the milestone at your discretion. + +### Exceptions + +Exception process is outlined [here](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md) + +#### Exceptions.yaml File Format + +When tracking exceptions for a release, create an `exceptions.yaml` file in the release directory (e.g., `releases/release-1.35/exceptions.yaml`). Here's the expected format: + +```yaml +# Exception requests in v1.35 +# Google Group: https://groups.google.com/g/kubernetes-sig-release +# Release Team Lead: [Name] ([@github-handle](https://github.com/github-handle)) + +# Enhancements Freeze Exceptions requested in v1.35 + +enhancementFreeze: + +- name: "Feature Name" + issue: 1234 + date_requested: 2025-01-15 + date_reviewed: 2025-01-18 + thread: https://groups.google.com/g/kubernetes-sig-release/c/thread-id + pull_requests: + - https://github.com/kubernetes/enhancements/pull/5678 + status: "approved" # or "rejected" + +# Code Freeze Exceptions requested in v1.35 + +codeFreeze: + +- name: "Another Feature Name" + issue: 5678 + date_requested: 2025-02-15 + date_reviewed: 2025-02-18 + thread: https://groups.google.com/g/kubernetes-sig-release/c/thread-id + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/123456 + status: "approved" # or "rejected" +``` + +**Field Descriptions:** +- `name`: Human-readable name of the enhancement +- `issue`: Enhancement issue number in kubernetes/enhancements +- `date_requested`: Date when the exception was requested (YYYY-MM-DD format) +- `date_reviewed`: Date when the exception was formally approved/rejected by the release team (YYYY-MM-DD format) +- `thread`: Link to the Google Groups discussion thread +- `pull_requests`: List of relevant PRs (enhancements PRs for enhancement freeze, k/k PRs for code freeze) +- `status`: Either "approved" or "rejected" + +### CNCF / Media Engagement + +- You may be called upon by the communications lead to help with media engagement near the end of the release cycle. Please ensure that if there are any restrictions or training required by your company before engaging that you have completed those ahead of Code Thaw. + +### Succession + +- Select who will be the new enhancement lead for the next release. Shadows should be the first source pool. If none are available to lead then look externally through other release team members or members of [SIG Architecture Enhancements Subproject](https://github.com/kubernetes/community/blob/master/sig-architecture/README.md#enhancements) +- Continually work to improve Enhancements process +- Review / update documentation as the release cycle ends +- Close issues marked as stable that made it into the release, only after the corresponding KEPs have been marked `Implemented` +- Close milestones that are complete +- Cleanup old milestones +- Open a pull request to add the exceptions.yaml file with all the KEPs which applied for an exception during enhancements freeze and code freeze. You can find an example of this exceptions.yaml file [here](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.29/exceptions.yaml). + +### Limitations + +- Populating the Enhancements Tracking sheet is a manual process +- Enhancements issues that are not submitted to [k/enhancements][k/enhancements] are not actively tracked in the context of the Release Team and Release cycle e.g., + - `kubeadm` (https://github.com/kubernetes/kubeadm/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3Akind%2Ffeature+milestone%3Av1.12+) + - out-of-tree Cloud Provider code that may live in `kubernetes-sigs/*` + - additional out-of-tree code that may live in the following organizations: + - `kubernetes` + - `kubernetes-client` + - `kubernetes-csi` + - `kubernetes-incubator` + - `kubernetes-sig-testing` + - `kubernetes-sigs` +- Finding consensus on how frequently to triage enhancements + +## Signals + +## Tips & Tricks + +### Sample Searches (examples) + +### GitHub Notifications + +https://groups.google.com/forum/#!topic/kubernetes-dev/5qU8irU7_tE + +[enhancements-group]: https://groups.google.com/forum/#!forum/kubernetes-keps +[enhancements-issues]: https://github.com/kubernetes/enhancements/issues +[k/enhancements]: https://github.com/kubernetes/enhancements +[rt-group]: https://groups.google.com/a/kubernetes.io/g/release-team +[rt-selection]: /release-team/release-team-selection.md +[rt-requirements]: /release-team/release-team-onboarding.md +[sig-arch-readme]: https://github.com/kubernetes/community/tree/master/sig-architecture/README.md +[sig-arch-group]: https://groups.google.com/forum/#!forum/kubernetes-sig-architecture +[sig-arch-enhancements]: https://github.com/kubernetes/community/tree/master/sig-architecture#enhancements +[sig-docs-group]: https://groups.google.com/forum/#!forum/kubernetes-sig-docs +[sig-leads-group]: https://groups.google.com/a/kubernetes.io/g/leads +[sig-release]: https://github.com/kubernetes/community/blob/master/sig-release/README.md +[sig-release-group]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[sig-release-leads-group]: https://groups.google.com/forum/#!forum/kubernetes-sig-release-leads +[1.17-announcement]: https://kubernetes.io/blog/2019/12/09/kubernetes-1-17-release-announcement/ +[1.17-tracking]: https://bit.ly/k8s117-enhancement-tracking diff --git a/release-team/role-handbooks/enhancements/TODO.md b/release-team/role-handbooks/enhancements/TODO.md index 0efbd8e3549..551050ecad1 100644 --- a/release-team/role-handbooks/enhancements/TODO.md +++ b/release-team/role-handbooks/enhancements/TODO.md @@ -1,11 +1,11 @@ -- Add sections for: - - [ ] Mentoring Shadows - - [ ] Escalation / Handling Unresponsive Enhancement Owners - - [ ] Filing Exceptions - - [ ] CNCF / Media Engagement - - [ ] Useful Signals - - [ ] Sample Searches (examples) - - [ ] Understanding Labels (this should be in k/enhancements) - - [ ] Archiving Enhancements Tracking sheets as `.csv`s - - [ ] Link cleanup, where necessary - - [ ] [Qualifying a tracked issue](https://github.com/kubernetes/sig-release/issues/124#issuecomment-407140647) +- Add sections for: + - [ ] Mentoring Shadows + - [ ] Escalation / Handling Unresponsive Enhancement Owners + - [ ] Filing Exceptions + - [ ] CNCF / Media Engagement + - [ ] Useful Signals + - [ ] Sample Searches (examples) + - [ ] Understanding Labels (this should be in k/enhancements) + - [ ] Archiving Enhancements Tracking sheets as `.csv`s + - [ ] Link cleanup, where necessary + - [ ] [Qualifying a tracked issue](https://github.com/kubernetes/sig-release/issues/124#issuecomment-407140647) diff --git a/release-team/role-handbooks/release-signal/OWNERS b/release-team/role-handbooks/release-signal/OWNERS index 20ccaadb465..8cf2c051b9c 100644 --- a/release-team/role-handbooks/release-signal/OWNERS +++ b/release-team/role-handbooks/release-signal/OWNERS @@ -1,6 +1,6 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -approvers: - - release-signal-subteam-approvers -reviewers: - - release-signal-subteam-approvers +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - release-signal-subteam-approvers +reviewers: + - release-signal-subteam-approvers diff --git a/release-team/role-handbooks/release-signal/README.md b/release-team/role-handbooks/release-signal/README.md index d9f4e8711a7..3e3d7d8e042 100644 --- a/release-team/role-handbooks/release-signal/README.md +++ b/release-team/role-handbooks/release-signal/README.md @@ -1,630 +1,630 @@ - -# Release Signal Role Handbook - -<!-- TOC --> -* [Release Signal Role Handbook](#release-signal-role-handbook) - * [Overview](#overview) - * [Requirements](#requirements) - * [Time Requirements](#time-requirements) - * [Additional Requirements for Shadows](#additional-requirements-for-shadows) - * [Good To Have](#good-to-have) - * [Additional Requirements for Leads](#additional-requirements-for-leads) - * [Timeline](#timeline) - * [Onboarding](#onboarding) - * [Create Assignment Excel Sheet](#create-assignment-excel-sheet) - * [Early Release](#early-release) - * [Mid-Release Cycle](#mid-release-cycle) - * [Code Freeze](#code-freeze) - * [Day Of The Code Freeze](#day-of-the-code-freeze) - * [Once the Code Freeze starts - one week later](#once-the-code-freeze-starts---one-week-later) - * [Week 1 of Code Freeze until Code Thaw starts](#week-1-of-code-freeze-until-code-thaw-starts) - * [Release Candidates](#release-candidates) - * [Code Thaw](#code-thaw) - * [Release Cutting - Go or No-Go](#release-cutting---go-or-no-go) - * [Judging State of Testgrid dashboards](#judging-state-of-testgrid-dashboards) - * [Blocking vs. Informing Dashboards](#blocking-vs-informing-dashboards) - * [Opening Issues](#opening-issues) - * [Decision Tree](#decision-tree) - * [Closing Issues](#closing-issues) - * [Special high risk test categories to monitor](#special-high-risk-test-categories-to-monitor) - * [Scalability tests](#scalability-tests) - * [Reporting](#reporting) - * [Tips and Tricks of the game](#tips-and-tricks-of-the-game) - * [A Tour of CI on the Kubernetes Project](#a-tour-of-ci-on-the-kubernetes-project) - * [How to Escalate](#how-to-escalate) - * [Checking test dashboards](#checking-test-dashboards) - * [Inferring Responsible SIG from the failure](#inferring-responsible-sig-from-the-failure) - * [Finding a Flaky Test](#finding-a-flaky-test) - * [Priority Labels](#priority-labels) - * [Milestones](#milestones) -<!-- TOC --> - -## Overview - -[**Quick Overview ~ _The One Pager_**](/release-team/role-handbooks/release-signal/one-pager.md) - -**_The One-Pager is just a brief summary and NOT A COMPREHENSIVE GUIDE_** - -The release signal team is responsible for making sure that **both** Issues (`is:issue`) and Pull Requests (PRs) (`is:pr`), which -are targeted for the ongoing release cycle, are dealt with in a timely fashion. It also assumes the responsibility of the quality -gate for the release, checking the health status of testgrid dashboards. This team is a combination of old [CI Signal](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/ci-signal) and [Bug -Triage](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/bug-triage) sub-team. Further responsibilities are: - -- Consistently monitor end-to-end (e2e) tests in sig-release - dashboards ([master-blocking](https://testgrid.k8s.io/sig-release-master-blocking), [master-informing](https://testgrid.k8s.io/sig-release-master-informing), `release-x.y-blocking/informing` ( - x.y being the current release)) throughout the release cycle and notify / signal the release team on the status of the tests and coordinate with the responsible SIG's to resolve unhealthy tests. - - Give a “Go” or “No-Go” Signal to the release team whenever a release is being cut. - - Flagging regressions as close to the source as possible, i.e., as soon as the offending code was merged - - Making recommendations to SIG-Release for promoting and demoting release blocking and merge blocking tests as per - the [Blocking Jobs Criteria](/release-blocking-jobs.md) -- Tracking issues and PRs in the current milestone -- Presenting summary reports at release team and burndown meetings -- Maintaining the automation around tracking issues/PRs against the current milestone - -Release Signal team maintains two GitHub project boards. Detailed information can be found [here](/release-team/role-handbooks/release-signal/project-boards.md). As a Release Signal Team member, it is not your -responsibility to fix issues/create PRs; instead, you should get the assignees, owners, SIG leads, or contributors to do it. -Check [How To Escalate](#how-to-escalate) on how to do it. - -## Requirements - -### Time Requirements - -Release Signal is one of the most time-intensive roles on the release team. General time requirements: - -For Release Signal Lead: - -- 1/2 hour to 2 hours daily, every workday, checking and following up on failing/flaky tests, issues and PRs targeted for the - ongoing release cycle around week 6 (mid-release). - -For Release Signal Shadows: - -- 10 minutes daily, checking the state of testgrid, and tracking issues/PRs on the Bug Triage Board. 1/2 hour during assigned periods, where - shadow is the [main coordinator](#create-assignment-excel-sheet) (to create issues, investigate and follow up). - -For Both: - -- Availability to attend most of Release Team (weekly) and Burndown meetings (daily during Code Freeze), subject to time zone - appropriateness. -- Ability to follow up on test fixes during Code Freeze at arbitrary times to ensure rapid turnaround. -- The time commitment increases through the release cycle, peaking during Code Freeze. In the last week of Code Freeze, shadows - should expect to spend at least 10 hours and lead at least 20 hours per week. - -### Additional Requirements for Shadows - -The following requirements are all things that the lead should already have, and shadows should acquire, with coaching, within the -first weeks of the release cycle: - -- Get [Kubernetes Community Membership](https://github.com/kubernetes/sig-release/blob/master/release-team/release-team-onboarding.md#kubernetes-community-membership) -- General familiarity with our [test boards](https://testgrid.k8s.io/) and examining test results from automated tests. -- Willingness and ability to follow up with contributors about test failures on Slack, email, and SIG meetings, as - appropriate. -- Ability to file well-crafted Kubernetes issues, including labelling. -- General familiarity with GitHub labels and how to find issues/PRs for the current milestone. -- General knowledge of our SIG system and SIGs' areas of responsibility. - -#### Good To Have - -- Prior involvement with [SIG Testing](https://github.com/kubernetes/community/blob/master/sig-testing/README.md) and the [Test Infrastructure](https://github.com/kubernetes/community/blob/master/sig-k8s-infra/README.md) team. -- Experience with automated testing, CI/CD, quality engineering, and/or quality assurance. -- Experience with quality assurance and bug-tracking systems. -- Experience with the GitHub automation. - -### Additional Requirements for Leads - -In addition to the above requirements for shadows, most of which become prerequisites, Release Signal Leads must: - -- Have the ability to add a milestone to issues, so must be a member of - the [milestone maintainers](https://github.com/orgs/kubernetes/teams/milestone-maintainers). Reach out to the Release Add for the same. -- Have a working knowledge of our various test infrastructure tools, such as [Testgrid](https://github.com/GoogleCloudPlatform/testgrid), [Triage](https://github.com/kubernetes/test-infra/tree/master/triage), [Spyglass](https://docs.prow.k8s.io/docs/spyglass/), [Prow](https://docs.prow.k8s.io/docs/), and [Tide](https://docs.prow.k8s.io/docs/components/core/tide/). -- Have a working knowledge of GitHub labelling (using [prow](https://prow.k8s.io/command-help)) and labels (main: SIG, Area, Priority, Kind, Triage) used by the project. Release Signal leads must be able to identify - relevant issues and PRs for a given milestone. -- Understand what defines a Release Blocking issue or PR, or know who to contact to determine that information. -- Release Signal lead needs to understand what tests matter and how our testing infra is wired together. - - They can ask previous Release Signal leads for advice. - - They can ask SIG-Testing for guidance. -- The Release Signal lead should take - the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) - training course. - -The core responsibility of the Release Signal lead is to foster a culture of continuous test integration, fail-fast and fix-fast -mindset and strive for continuously passing tests that provide an accurate positive signal to the release team to ensure that -releases go out on time with high quality. It is critical to maintain a sustained focus on test health through the entire release -cycle, as opposed to accepting destabilizing test failures during active enhancement development followed by an extended test -stabilization phase. - -## Timeline - -### Onboarding - -- Update - the [release-signal team in the teams.yaml](https://github.com/kubernetes/org/blob/main/config/kubernetes/sig-release/teams.yaml) - which grants access to the [ci signal project board](https://github.com/orgs/kubernetes/projects/68/) and the [bug triage project board](https://github.com/orgs/kubernetes/projects/80). _Coordinate with the - release lead to make multiple changes to this file in one PR._ -- Adding the lead and (more experienced) shadows as milestone maintainers in - the [teams.yaml](https://github.com/kubernetes/org/blob/master/config/kubernetes/sig-release/teams.yaml). - _Coordinate with the release lead to make multiple changes to this file in one PR._ -- Plan release support and status reporting. Setup [CI-Signal project board](/release-team/role-handbooks/release-signal/project-boards.md#setting-up-the-ci-signal-project-board) and the [Bug Triage Project Board](/release-team/role-handbooks/release-signal/project-boards.md#setting-up-the-bug-triage-project-board). -- Release Signal Shadows must be a member of the Kubernetes organization and, therefore, apply for membership by opening an issue - on [kubernetes/org](https://github.com/kubernetes/org) ( - see [Issue template](https://github.com/kubernetes/org/issues/new?assignees=&labels=area%2Fgithub-membership&template=membership.yml&title=REQUEST%3A+New+membership+for+%3Cyour-GH-handle%3E)). -- Organizing an onboarding meeting with shadows to walk through this handbook and useful tools like [Testgrid](https://github.com/GoogleCloudPlatform/testgrid), - [Triage](https://github.com/kubernetes/test-infra/tree/master/triage), [Spyglass](https://docs.prow.k8s.io/docs/spyglass/), [Prow](https://docs.prow.k8s.io/docs/), and [Tide](https://docs.prow.k8s.io/docs/components/core/tide/). - -#### Create Assignment Excel Sheet - -Create an excel sheet to track various assignments during the release cycle. [Example](https://docs.google.com/spreadsheets/d/1lYbCOGvG9jD-AVT0Ajc3LoSLNKHC6xIIy1t6BJPlO7E/edit?usp=sharing) - -Roles in the assignments excel sheet: - -1. **Task Assignee:** Responsible for completing an assigned task, including providing team meeting updates and/or giving the Go/No-Go signal. -2. **Main Coordinator:** Main coordinator is responsible for: - - Observing testgrid dashboards (along with other shadows). - - Creating issues for failing/flaking tests. - - Following up with related SIGs/WGs to get the issue resolved. - - Close fixed issues after verifying the fix. - - _**Additionally the main coordinator has the authority to assign above mentioned tasks to other shadows explicitly.**_ <br> - eg: - - _Assigning other shadows to create issues for failures/flakes._ - - _Assigning other shadows to observe a particular job._ - - _Assigning other shadows to follow up on issues with related SIGs/WGs_ - - _Assigning any other task that the main coordinator does._ - - <br>**_Note:_** The Release Signal Lead has the ensure that the assignments are fair and the work distribution during the cycle is even. - -**_Note:_** Shadows not having any of the above roles in any week are supposed to complete tasks assigned by the 'Main Coordinator' and regularly observe and report about failures/flakes on the testgrid dashboards. - -### Early Release - -Once the onboarding meetings have been organized, the following tasks are good to begin with during the early release cycle (Week -0 - Week 6) - -- Ask shadows to fill the assignments excel sheet ([example](https://docs.google.com/spreadsheets/d/1lYbCOGvG9jD-AVT0Ajc3LoSLNKHC6xIIy1t6BJPlO7E/edit?usp=sharing)). Lead assigns the remaining spots (to themselves or to the shadows) -- Start maintaining the [CI signal project board](https://github.com/orgs/kubernetes/projects/68) and keep it up-to-date with - issues tracking any test failure/flake -- Assign the new milestone labels to the open issues from the previous release, assign a member of the Release Signal team, and - have that member follow up on the issue with the owners -- Monitor [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - and [master-informing](https://testgrid.k8s.io/sig-release-master-informing) dashboards daily and ensure all failures and flakes - are tracked via open issues. See [Opening Issues](#opening-issues) for how to write an effective issue. -- Updating/Extending scripts/actions that populate the Bug Triage and CI Signal project board with relevant issues/PRs. -- Familiarize yourself with major enhancements and fixes planned by each SIG for this release so that you can have context in - advance of when you will need to identify incoming bugs as being associated with a work focus in the current release. -- Start pinging stale or long-running issues / PRs so that an early assessment can be made if these should be moved out of the - current release cycle's milestone. - -### Mid-Release Cycle - -This stage lasts from around week 6 until the code freeze starts (usually week 9). At this point, the Release Signal team should -start [escalating issues/PRs](#how-to-escalate) and communicating deadlines with contributors and SIG leads. - -The following are the major tasks: - -- Monitoring the master-blocking, master-informing dashboards on a daily basis. -- Closely working with SIGs/WGs and test owners to fix failing and flaky tests. -- Ensure that issues and PRs targeting the release have the correct *milestone* and *priority* labels. - - Linked issues and PRs tracked in the current milestone should have `priority` and `kind` labels. -- Ensure that `priority/critical-urgent` issues and PRs are not blocked. - - If such a `priority/critical-urgent` issue/PR is found, ping the owner and owner SIGs and alert the release team leads. -- Ping all issues and PRs to remind contributors and SIG leads about the code freeze approaching in a month or so. - - You may want to ping issues at least two times to ensure deadlines are communicated correctly, usually once this stage - starts and a couple of days before the code freeze starts. - -Initially, you should prioritize pinging issues/PRs that haven't been updated for a longer time. You can use the following -queries: [`is:issue is:open milestone:v1.33 sort:updated-asc`](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.33+sort%3Aupdated-asc) -and [`is:pr is:open milestone:v1.33 sort:updated-asc`](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.33+sort%3Aupdated-asc). - -For pinging, the following template can be used: - -``` -Hello! This <issue|PR> has not been updated for a long time, so I'd like to check what's the status. The code freeze is starting <insert date> (about <number of weeks> from now), and while there is still plenty of time, we want to ensure that each PR has a chance to be merged on time. - -As the PR is tagged for 1.33, is it still planned for this release? -``` - -### Code Freeze - -One of the main purposes of Code Freeze is to ensure that the code base is stable and tests on informing and blocking (master and -release-x.y) dashboards are passing. At this point, only release-blocking issues and PRs (usually bug fixes: `kind/bug`) are -considered to be merged. - -Your responsibility here is to actively watch for any new issues/PRs targeting the milestone, monitor the status of existing -issues/PRs, and filter the milestone by removing issues/PRs that are out of this release cycle. - -#### Day Of The Code Freeze - -On the day of the Code Freeze, your responsibility is to help contributors get the approval on their PRs and needed labels. Check -the [How To Escalate](#how-to-escalate) part of the document for a guide on how to do this. - -Please note that Code Freeze is EOD Pacific Time (astronomical sun) on the day of. No items are to be removed from the milestone -until the next day. - -The day after the Code Freeze has begun, the Release Signal team will wait to see if new exception requests are filed and -approved (see [exception process](/releases/EXCEPTIONS.md) for more details). You will remove the remaining issues / PRs that are -not approved for the next milestone. It is important to ensure that the Release Team Lead has been informed during the Burndown -meetings following Code Freeze that items are being removed so they may provide any additional feedback. - -When the code freeze starts, the highest priority is the PRs that had `approved` and `lgtm` labels before the code freeze started -and are in the milestones. Depending on the merge queue length, it might be proposed to hold PRs that have `approved` -and `lgtm`, but are not in the milestone (using the following -query [`is:pr is:open no:milestone label:approved label:lgtm`](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+no%3Amilestone+label%3Aapproved+label%3Algtm)). - -You can monitor PRs using the following queries: - -- [PRs supposed to be in the merge pool (`is:pr is:open milestone:v1.33 label:approved label:lgtm -label:do-not-merge/hold`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.33+label%3Aapproved+label%3Algtm+-label%3Ado-not-merge%2Fhold) -- [PRs that have `approved` and `lgtm`, but are on-hold (`is:pr is:open milestone:v1.33 label:approved label:lgtm label:do-not-merge/hold`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.33+label%3Aapproved+label%3Algtm+label%3Ado-not-merge%2Fhold+) -- [PRs that doesn't have `approved` but have `lgtm` (`is:pr is:open milestone:v1.33 -label:approved label:lgtm`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.33+-label%3Aapproved+label%3Algtm) -- [PRs that doesn't have `lgtm` but have `approved` (`is:pr is:open milestone:v1.33 label:approved -label:lgtm`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.33+label%3Aapproved+-label%3Algtm+) - -#### Once the Code Freeze starts - one week later - -Usually, the removal of issues/PRs doesn't start right once the code freeze starts. Depending on the testgrid state, the merge -queue length, and the release team lead's decision, it might be decided to allow some more time for PRs to get merged. At this -stage, `kind/bug` PRs are prioritized, but other PRs can be allowed too if there is no risk of destabilizing the release (such PRs -require an exception). - -You can still use the queries from the previous section at this stage to monitor PRs, but you should also monitor issues using -similar queries. - -#### Week 1 of Code Freeze until Code Thaw starts - -> **_NOTE:_** When changing or removing milestones, be sure to communicate _why_ the change is being made to avoid confusion. The -> issue/PR author may not always be familiar with all the processes and deadlines surrounding code freeze, and we want to contribute -> to a friendly and transparent process. - -At this stage, the Release Signal Lead should remove issues/PRs from the milestone. Before doing so, the Release Signal Lead -should confirm the intention with the Release Team Lead. - -If the issue/PR got confirmation that it's planned for the next milestone or there was recent activity, it should be moved to the -next milestone using the `/milestone v1.xx` command. - -If there is no response on the issue/PR and no recent activity, the issue/PR should be removed from the milestone to reduce the -burden on the next Release Signal team. This is done by using the `/milestone clear` command. - -If the issue/PR has the `priority/critical-urgent` label, it should be coordinated with the owning SIG and the Release Team Lead -to determine whether it should be allowed to stay or whether the priority should be decreased and the issue/PR moved to the next -milestone. - -### Release Candidates - -After the rc.0 and rc.1 cuts, referred to as release candidates, no enhancements are allowed—only bug fixes and regression fixes. - -The branch manager sets up the release-x.y-informing and release-x.y-blocking dashboards after the rc.0 cut. -The Release Signal team should coordinate with the branch manager to ensure the dashboards are set up within the same week. -The Release Signal Lead and Shadows can assist with dashboard setup and resolving any job misconfigurations. - -Once the release-x.y-blocking and release-x.y-informing dashboards are set up (typically around week 12), the Release Signal team should monitor these new dashboards alongside the existing master-blocking and master-informing dashboards on a daily basis until the final release cut. - -### Code Thaw - -A week before the release target date, Code Freeze labelling restrictions are lifted. At this point, you need to make sure that -three things happen: - -1. major breakage bugs get fixed immediately -2. any pending release-blocking PRs get approved and merged -3. _anything else should get kicked out of the release_ -4. tests on blocking and informing dashboards are green - -During this period, it is reasonable to expect issue owners and SIG leads to get back to you within hours (check their time zones, -though). In cases where SIG Leads are unavailable, you may need to appeal to Kubernetes project leaders to deal with stuck PRs. - -Another part of staying on top of code churn, regression, and risk is monitoring commits to the master and the release branch, -especially in the final days of the release. On occasion, things will merge that are unexpected by the release team. This -possibility needs to be monitored, and when it happens, the commits need to be triaged for destabilizing risk and proper exception -justification, tests, docs, etc. - -## Release Cutting - Go or No-Go - -Basic idea behind giving go/no-go signal: - -```mermaid -flowchart TD - A[Identify Failures/Flakes] -->|No Failures/Flakes| B[Go Signal] - A --> |Failures/Flakes Present| C[Get Blocking/Non-Blocking confirmation from responsible SIG/WG] - C --> |No Blockers| B - C --> |Blockers Present| D[No-Go Signal] - D --> |Summarize the status in #release-management and ping the release lead| E[Subject matter experts work on the blocker/s] - E --> F[Blocking issue resolved] - F --> B - style B fill:#008000 - style D fill:#FF0000 -``` - -Over the release cycle, the release engineering team will cut several releases (alpha, beta, rc), before it ends with a new major -Kubernetes release. During the release cycle, tests fail and potentially prevent the cut of a new version. The release signal team -is responsible for getting these failures resolved timely to prevent delaying a release cut. - -The responsible member for the particular release from the release signal team should get in touch with -the [current release branch manager](https://kubernetes.io/releases/release-managers/) 2-3 days before the release cut. Typically, -this is done via starting a thread like [this](https://kubernetes.slack.com/archives/CJH2GBF7Y/p1694951715192089) in -the [#release-management](https://kubernetes.slack.com/archives/CJH2GBF7Y) slack channel. - -See [Judging State of Testgrid dashboards](#judging-state-of-testgrid-dashboards) for the actual Go/No-Go signal for the release -cut. - -## Judging State of Testgrid dashboards - -As a general rule of thumb, **any** failure/flake on **any** board under observation is a reason for concern. It should be brought -to the notice of the responsible SIG/someone with technical expertise in that area as soon as possible. However broadly, giving -green/yellow/red signals can be initially checked from the table below (Note: Release cutting has only Go/No-Go, so yellow is -equivalent to red). - -See [Blocking vs. Informing Dashboards](#blocking-vs-informing-dashboards) for the reason behind these signals. - -| (master/release-x.y)-blocking | (master/release-x.y)-informing | Signal | -|-------------------------------|--------------------------------|--------| -| ✅ | ✅ | 🟢 | -| ✅ | ⚠️ | 🟢 | -| ✅ | ❌ | 🔴 | -| ⚠️ | ⚠️ | 🟡 | -| ⚠️ | ✅ | 🟡 | -| ⚠️ | ❌ | 🔴 | -| ❌ | ⚠️ | 🔴 | -| ❌ | ✅ | 🔴 | -| ❌ | ❌ | 🔴 | - -Key: - -- ❌ - Failing Test -- ⚠️ - Flaking Test -- ✅ - Passing Test - -**_Important Notes:_** - -- Red/Yellow Signals block a release cut, and it is not until the issue is resolved or someone from a related SIG/someone with - technical expertise marks that issue as a non-blocker that the release is cut. - -- For reporting the testgrid status in the weekly meetings, the following factors come into play: - - Is someone from the responsible SIG working on that issue? - - How close are we to the next release cut? - - What is the estimated time to solve the issue? Would it take too long? - - Is the fix for that issue blocked by some other issue? - -All these questions contribute to the signal in the weekly meeting and are up to the release signal team's interpretation based on -the situation. Red and Yellow indicate that we want attention to the issues or that the actual fix still needs to be implemented. - -## Blocking vs. Informing Dashboards - -Summary: Failing 'Blocking' jobs always block the release. Failing 'Informing' jobs sometimes blocks the release. - -Jobs on the master-blocking and release-x.y-blocking dashboards are expected to be green _all the time_. As such, you should take -immediate action when one of them turns red and may recommend postponing the release if any one of these jobs is not passing. - -Jobs on the master-informing and release-x.y-informing dashboards require more interpretation. Some run infrequently or for a long -time and can take days to show effects from merged changes. Others are inconsistent and require you to wait for several failed -runs to file an issue and consult the owning SIG. As a result, these tests block release either when they have unexplained -failures or failures that have been investigated and relate to blocking issues. If they're just flaking, or failing for explained -and tolerated reasons, they do not block. - -For more detailed information about what's on these dashboards, see [Release Blocking Jobs](/release-blocking-jobs.md) -documentation. - -## Opening Issues - -The appropriate response to a failing or flaking job on a blocking or informing dashboard is to open an issue. The primary goal of -opening an issue is to track the work that needs to be done to bring the job back to a healthy status while providing an accurate -signal. The format for a helpful and informative issue may vary depending on the type of job, the test(s) that are failing for the -job, and the responsible parties for the job. - -Before creating a new GitHub issue, check if somebody else has already opened an issue. To filter already opened -issues, [queries](https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests#search-by-project-board) -can be applied. - -### Decision Tree - -The decision tree below can be followed to make sure that you are opening an issue that is most effective for triaging, tracking, -and resolving a failing or flaking job. - -_All instances of "failing" below can be replaced with "flaking" when appropriate._ - -- The following pattern can be used to title a failure/flake while opening an issue: - - [Failing Test] [Responsible SIG]... (failing test name/failure description) (failing-job-name) - - The `...` used above is somewhat similar to variadic functions. You can tag as well as mention multiple SIGs if a test - belongs to them, example: [Failing Test] [sig apps] [sig testing] (failing test name/failure description) (failing-job-name) - -- If the failure is clearly related to a testing infrastructure issue, it may be appropriate to open the issue - in [k/test-infra](https://github.com/kubernetes/test-infra) or [k/k8s.io](https://github.com/kubernetes/k8s.io). - -An issue should remain open until the appropriate fix has been made and the affected tests have returned to a healthy status. If -an issue is closed prematurely, or the same test starts failing or flaking again, a new issue should be opened. Do not reopen -closed issues. - -For all opened issues: - -- Make sure all open issues have a `priority/` label (see: [Priority Labels](#priority-labels)) and one of either the `kind/flake` - or `kind/failing-test` label. -- Make sure the issue is assigned against the current milestone 1.x, using `/milestone`. -- Assign the issue to the appropriate SIG using the `/sig` label. -- If you are aware of the individual associated with the enhancement area or issue, @mention of the individual(s) and SIG leads - tends to result in a faster turnaround. -- Add `@kubernetes/sig-foo-test-failures` to draw SIG-foo's attention to the issue. -- `/cc @kubernetes/release-team-release-signal` GitHub team on the issue to let the rest of the team know about it. You might also `/cc` the release - lead if the issue needs extra attention immediately. -- Assign the issue to yourself or recruit another member of the Release Signal team to own the issue. The Release Signal team - member assigned to an issue is responsible for driving it to resolution alongside the assignee from the appropriate SIG. -- Post the test failure in SIG's Slack channel to get help in routing the issue to the rightful owner(s). -- Add the issue to the [CI signal board](https://github.com/orgs/kubernetes/projects/68) under "New". The Release Signal team lead - is responsible for making sure every issue on the CI signal board is assigned to a member of the Release Signal team and is - being actively driven to resolution. - -In addition to the steps above, make sure to fill in any additional information that is part of -the [Failing Test](https://github.com/kubernetes/kubernetes/issues/new?labels=kind%2Ffailing-test&template=failing-test.md) -or [Flaking Test](https://github.com/kubernetes/kubernetes/issues/new?labels=kind%2Fflake&template=flaking-test.md) issue -template. - -### Closing Issues - -After a fix is applied to an issue, it often gets fast closed. Be aware that the issue's status (open/closed) is not the same as -on the CI Signal board (New/under investigation/observing/resolved). For the same reasons, as explained earlier, we have to see if -a flaky test is stable. When a fix is applied, and it is expected that this should solve the problem, the issue gets moved to -Observing. After an appropriate amount of time, a big thumb rule would be two weeks; the issue can be moved to resolved. An issue -should remain open until the appropriate fix has been made and the affected tests have returned to a healthy status. If an issue -is closed prematurely, or the same test starts failing or flaking again, a new issue should be opened. Do not reopen closed -issues. - -Closing flaky tests requires more investigation as the test may have passed on the informing and blocking dashboards but may be failing in other clusters with the same configuration. Always use [Triage](https://go.k8s.io/triage) to see whether the test health is stable across different jobs. - -## Special high risk test categories to monitor - -Historically, there are a couple of families of tests that are hard to stabilize, regression-prone and pose a high risk of -delaying and/or derailing a release. As a Release Signal lead, it is highly recommended to pay close attention and extra caution -when dealing with test failures in the following areas. - -### Scalability tests - -Scalability testing is inherently challenging, and regressions in this area are potentially a huge project risk. - -- Requires lots and lots of servers running tests, and hence expensive -- Tests are long-running, so it is especially hard/expensive/slow to resolve issues via Git bisection -- Examination of results is actually the bigger, more expensive part of the situation - -The following scalability jobs/tests could regress quite easily (due to seemingly unrelated PRs anywhere in the k8s codebase) and -require constant manual monitoring/triaging and domain expertise to investigate and resolve. - -- [master-blocking gce-cos-master-scalability-100](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-scalability-100) -- [master-informing gce-scale-correctness](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-correctness) -- [master-informing gce-scale-performance](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-performance) -- `release-x.y-blocking gce-cos-x.y-scalability-100` - -Importantly, the expensive scalability jobs that run on master-informing do not run or appear on release-x.y-informing because we -do not currently run them against the release branch as well as the master. In the event of a problem with these jobs, you then -will have to figure out whether the problem is related to code that's in the release branch as opposed to code that exists only in -the master. - -The Release Signal team should - -- Continuously monitor these tests early in the release cycle, ensure issues are filed and escalated to the Release team and right - owners in [SIG-Scalability](https://github.com/kubernetes/community/tree/master/sig-scalability#chairs). -- Work with SIG-Scalability to understand if the failure is a product regression versus a test issue (flake) and, in either case, - follow-up closely on a fix. -- Additionally, it might help to monitor SIG-Scalability's performance dashboard to flag if and when there is considerable - performance degradation. - -## Reporting - -A member of the Release Signal team should give status updates in every release team meeting. For summarizing the signal for the -testgrid see [judging state of testgrid dashboards](#judging-state-of-testgrid-dashboards). For summarizing the issues and PRs -being tracked for this release, the following template is to be used. - -- Release [blocking Issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3Arelease-blocker) (#number) -- Release [blocking PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+label%3Arelease-blocker+) (#number) - -- Query: [open non-test/flake k/k issues for v1.29](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.29+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+) (#number) - - [priority/critical-urgent issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.29+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+) (#number) - - [priority/important-soon issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.29+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+) (#number) - -- Query: open k/k [PR’s for v1.29](https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.29+is%3Apr+sort%3Aupdated-asc+) (#number) - - [priority/critical-urgent PRs](https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.29+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent) (#number) - - [priority/important-soon PRs](https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.29+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+) (#number) - -- Query: ALL [open k/k issues for v1.29](https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.29+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+) (#number) (incl. [this query](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.26+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake) (#number)) - -**Note:** - -The actual template and links would vary according to the particular release. Also, apart from this, add any important points you -feel should be brought to the attention of the release team. - -## Tips and Tricks of the game - -### A Tour of CI on the Kubernetes Project - -- [A guide to CI on Kubernetes with Rob Kielty (1.20 CI Signal lead) and Dan Magnum (1.19 CI Signal lead)](https://www.youtube.com/watch?v=bttEcArAjUw): -Introduces the role of CI Signal members and walks through the tools and processes used for logging flaky/failing tests (as -explained below). -<br> Notes to follow along: http://bit.ly/k8s-ci-signal - -- The [Release Signal Walkthroughs Playlist](https://youtube.com/playlist?list=PL69nYSiGNLP2Lzsjir9W7S8u0UsQeeW71&si=mp8zpMyheVR1eI1i) contains short videos explaining some essential aspects of Release Signal. - -### How to Escalate - -This role consists of creating issues for failing and flaky tests on the testgrid and monitoring issues and PRs targeted for the -current release cycle. The path of escalation is slightly different for both types of issues. - -As a general rule of thumb: - -_**Always ping folks alongside posting to a Slack channel**_ - -- For tests failing/flaking on testgrid: - 1. Create an issue in the [k/k](https://github.com/kubernetes/kubernetes) - or [k/test-infra](https://github.com/kubernetes/test-infra) - or [k/k8s.io](https://github.com/kubernetes/k8s.io) (depending on the type of issue) repository and tag the appropriate SIG - and ping the relevant contributor (if a PR broke something), Leads/Technical Leads of the SIGs involved or anyone who you - feel should know about that particular issue. - 2. Start a thread in the [#release-ci-signal](https://kubernetes.slack.com/archives/CN0K3TE2C) channel on Kubernetes slack and - CC the folks mentioned in the previous point. - 3. Cross-post the link to the thread in the relevant SIGs/WGs channel on the Kubernetes slack; for example, - see [this](https://kubernetes.slack.com/archives/CN0K3TE2C/p1694239448798339) thread in - the [#release-ci-signal](https://kubernetes.slack.com/archives/CN0K3TE2C) channel. - -- For issues and PRs targeted for the current release cycle: - 1. Leave a comment on the GitHub issue or PR: "This issue hasn't been updated in 3 months. Are you still expecting to complete - it for 1.33?". It's helpful to @ mention individuals or SIG ```-bugs``` or ```-pr-reviews``` alias, e.g. - "@kubernetes/sig-node-bugs" or - "@kubernetes/sig-network-pr-reviews". - 2. Send a message to the relevant SIG Slack channel or mailing list about the problem: It's helpful to directly @ mention the - relevant SIG Leads / Owners and to condense multiple issues into a list, e.g. "Hey, these three issues haven't seen any - attention, are they still valid for 1.33?" - 3. Message individual owners and reviewers directly via Slack. If owners and reviewers are unresponsive, you can reach out to - the SIG leads using the `kubernetes-sig-${name}-leads@googlegroups.com` mailing lists. - -If none of the methods mentioned above work, you can escalate to the EA, Release Team Lead, and Lead Shadows with suggestions on what to do with -non-responsive issues. - -### Checking test dashboards - -- Quirk: If a job is listed as FAILING but doesn't have "Overall" as one of its ongoing failures, it's not actually failing. It - might be "red" from some previous test run failures and will clear up after a few "green" runs. -- If a job is failing in one of the meta-stages (Up, Down, DumpClusterLogs, etc.), find the owning SIG since it is a infra failure. -- You can look at the past history of the job/test (even as far back as multiple releases) by querying - the [triage dashboard for specific job and/or test name](https://storage.googleapis.com/k8s-triage/index.html). - -#### Inferring Responsible SIG from the failure - -- If a job is failing because a specific test case is failing, and that test case has a [sig-foo] in its name, tag SIG-foo in the - issue and find the appropriate owner within the SIG -- With unit test case failures, try to infer the SIG from the path or OWNERS files in it. Otherwise, find the owning SIG to help. OWNERS file is present in the same directry as a job's config file. - -<img alt="Prowjob Config File" src="img/prowjob-config-file.png" style="max-width: 800px; height: auto; "/> - -- With verify failures, try to infer the failure from the log. Otherwise, find the owning SIG to help -- If a test case is failing in one job consistently but not others, both the job owner and test case owner are responsible for - identifying why this combination is different. -- [Triage](https://go.k8s.io/triage) also has the ability to infer the responsible SIG in some cases. - -<img alt="Triage inferring SIG" src="img/triage-inferring-sig.png" style="max-width: 800px; height: auto; "/> - -### Finding a Flaky Test - -A flaky test is a software test that yields both passing and failing results despite zero changes to the code or test. A test may flake for different reasons, including bad synchronization, environmental issues, race conditions, etc. Release Signal team members should, in general, keep an eye on overall top flakes using [Triage](https://go.k8s.io/triage). - -If a test is suspected to be flaky and not enough evidence is present on the testgrid dashboard itself, search that test name in [Triage](https://go.k8s.io/triage) to see the test results across different jobs. Not all results may be accurate, as tests running in different jobs may have different configurations. But this, overall, gives a good picture of the test's health. - -### Priority Labels - -Issues you create for test failures and flakes must be assigned a `priority` label, that is compatible with the priorities -described in -the [Issue Triage Contributor Guide](https://github.com/kubernetes/community/blob/master/contributors/guide/issue-triage.md#define-priority). - -In the CI signal context, we use priority labels to mean: - -| priority | Description | Expectation | -|-------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `priority/critical-urgent` | Actively impacting release-blocking signal. Includes: consistently failing tests, frequently (more than 20% of the time) flaking tests in release-blocking dashboards. | Work with SIGs for these to be worked on as soon as possible, prioritized over other work. | -| `priority/important-soon` | Negatively impacting release-blocking signal. Includes: Flakes (especially occurring >2% of the time) in release-blocking jobs, failures and flakes in release-informing jobs. | Work with SIGs to resolve them soon, ideally before the end of this release cycle. | -| `priority/important-longterm` | Painful, results in manual workarounds/toil, limits developer productivity, but is of lower urgency and importance than issues in `priority/critical-urgent` or `priority/important-soon`. | In reality, there's a high chance these won't be finished, or even started within the current release. Work with sigs to ensure they are on their radar, and help find ways they can be broken down into smaller chunks. | - -CI monitoring part is not currently using `priority/backlog` or `priority/awaiting-more-evidence`. If ever in doubt, label it -as `critical-urgent` to ensure you get eyes on the issue. - -### Milestones - -All issues the Release Signal team creates must be part of the current milestone. In order to apply a milestone, you will need to -be part of the GitHub team [milestone-maintainers](https://github.com/orgs/kubernetes/teams/milestone-maintainers). - -To add an issue or PR to a milestone, use the following Prow command: - -``` -/milestone v1.x -``` - -Near the end of the release cycle, if you still have open issues that are not release blocking, please move these to the next -milestone. + +# Release Signal Role Handbook + +<!-- TOC --> +* [Release Signal Role Handbook](#release-signal-role-handbook) + * [Overview](#overview) + * [Requirements](#requirements) + * [Time Requirements](#time-requirements) + * [Additional Requirements for Shadows](#additional-requirements-for-shadows) + * [Good To Have](#good-to-have) + * [Additional Requirements for Leads](#additional-requirements-for-leads) + * [Timeline](#timeline) + * [Onboarding](#onboarding) + * [Create Assignment Excel Sheet](#create-assignment-excel-sheet) + * [Early Release](#early-release) + * [Mid-Release Cycle](#mid-release-cycle) + * [Code Freeze](#code-freeze) + * [Day Of The Code Freeze](#day-of-the-code-freeze) + * [Once the Code Freeze starts - one week later](#once-the-code-freeze-starts---one-week-later) + * [Week 1 of Code Freeze until Code Thaw starts](#week-1-of-code-freeze-until-code-thaw-starts) + * [Release Candidates](#release-candidates) + * [Code Thaw](#code-thaw) + * [Release Cutting - Go or No-Go](#release-cutting---go-or-no-go) + * [Judging State of Testgrid dashboards](#judging-state-of-testgrid-dashboards) + * [Blocking vs. Informing Dashboards](#blocking-vs-informing-dashboards) + * [Opening Issues](#opening-issues) + * [Decision Tree](#decision-tree) + * [Closing Issues](#closing-issues) + * [Special high risk test categories to monitor](#special-high-risk-test-categories-to-monitor) + * [Scalability tests](#scalability-tests) + * [Reporting](#reporting) + * [Tips and Tricks of the game](#tips-and-tricks-of-the-game) + * [A Tour of CI on the Kubernetes Project](#a-tour-of-ci-on-the-kubernetes-project) + * [How to Escalate](#how-to-escalate) + * [Checking test dashboards](#checking-test-dashboards) + * [Inferring Responsible SIG from the failure](#inferring-responsible-sig-from-the-failure) + * [Finding a Flaky Test](#finding-a-flaky-test) + * [Priority Labels](#priority-labels) + * [Milestones](#milestones) +<!-- TOC --> + +## Overview + +[**Quick Overview ~ _The One Pager_**](/release-team/role-handbooks/release-signal/one-pager.md) + +**_The One-Pager is just a brief summary and NOT A COMPREHENSIVE GUIDE_** + +The release signal team is responsible for making sure that **both** Issues (`is:issue`) and Pull Requests (PRs) (`is:pr`), which +are targeted for the ongoing release cycle, are dealt with in a timely fashion. It also assumes the responsibility of the quality +gate for the release, checking the health status of testgrid dashboards. This team is a combination of old [CI Signal](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/ci-signal) and [Bug +Triage](https://github.com/kubernetes/sig-release/tree/master/release-team/role-handbooks/bug-triage) sub-team. Further responsibilities are: + +- Consistently monitor end-to-end (e2e) tests in sig-release + dashboards ([master-blocking](https://testgrid.k8s.io/sig-release-master-blocking), [master-informing](https://testgrid.k8s.io/sig-release-master-informing), `release-x.y-blocking/informing` ( + x.y being the current release)) throughout the release cycle and notify / signal the release team on the status of the tests and coordinate with the responsible SIG's to resolve unhealthy tests. + - Give a “Go” or “No-Go” Signal to the release team whenever a release is being cut. + - Flagging regressions as close to the source as possible, i.e., as soon as the offending code was merged + - Making recommendations to SIG-Release for promoting and demoting release blocking and merge blocking tests as per + the [Blocking Jobs Criteria](/release-blocking-jobs.md) +- Tracking issues and PRs in the current milestone +- Presenting summary reports at release team and burndown meetings +- Maintaining the automation around tracking issues/PRs against the current milestone + +Release Signal team maintains two GitHub project boards. Detailed information can be found [here](/release-team/role-handbooks/release-signal/project-boards.md). As a Release Signal Team member, it is not your +responsibility to fix issues/create PRs; instead, you should get the assignees, owners, SIG leads, or contributors to do it. +Check [How To Escalate](#how-to-escalate) on how to do it. + +## Requirements + +### Time Requirements + +Release Signal is one of the most time-intensive roles on the release team. General time requirements: + +For Release Signal Lead: + +- 1/2 hour to 2 hours daily, every workday, checking and following up on failing/flaky tests, issues and PRs targeted for the + ongoing release cycle around week 6 (mid-release). + +For Release Signal Shadows: + +- 10 minutes daily, checking the state of testgrid, and tracking issues/PRs on the Bug Triage Board. 1/2 hour during assigned periods, where + shadow is the [main coordinator](#create-assignment-excel-sheet) (to create issues, investigate and follow up). + +For Both: + +- Availability to attend most of Release Team (weekly) and Burndown meetings (daily during Code Freeze), subject to time zone + appropriateness. +- Ability to follow up on test fixes during Code Freeze at arbitrary times to ensure rapid turnaround. +- The time commitment increases through the release cycle, peaking during Code Freeze. In the last week of Code Freeze, shadows + should expect to spend at least 10 hours and lead at least 20 hours per week. + +### Additional Requirements for Shadows + +The following requirements are all things that the lead should already have, and shadows should acquire, with coaching, within the +first weeks of the release cycle: + +- Get [Kubernetes Community Membership](https://github.com/kubernetes/sig-release/blob/master/release-team/release-team-onboarding.md#kubernetes-community-membership) +- General familiarity with our [test boards](https://testgrid.k8s.io/) and examining test results from automated tests. +- Willingness and ability to follow up with contributors about test failures on Slack, email, and SIG meetings, as + appropriate. +- Ability to file well-crafted Kubernetes issues, including labelling. +- General familiarity with GitHub labels and how to find issues/PRs for the current milestone. +- General knowledge of our SIG system and SIGs' areas of responsibility. + +#### Good To Have + +- Prior involvement with [SIG Testing](https://github.com/kubernetes/community/blob/master/sig-testing/README.md) and the [Test Infrastructure](https://github.com/kubernetes/community/blob/master/sig-k8s-infra/README.md) team. +- Experience with automated testing, CI/CD, quality engineering, and/or quality assurance. +- Experience with quality assurance and bug-tracking systems. +- Experience with the GitHub automation. + +### Additional Requirements for Leads + +In addition to the above requirements for shadows, most of which become prerequisites, Release Signal Leads must: + +- Have the ability to add a milestone to issues, so must be a member of + the [milestone maintainers](https://github.com/orgs/kubernetes/teams/milestone-maintainers). Reach out to the Release Add for the same. +- Have a working knowledge of our various test infrastructure tools, such as [Testgrid](https://github.com/GoogleCloudPlatform/testgrid), [Triage](https://github.com/kubernetes/test-infra/tree/master/triage), [Spyglass](https://docs.prow.k8s.io/docs/spyglass/), [Prow](https://docs.prow.k8s.io/docs/), and [Tide](https://docs.prow.k8s.io/docs/components/core/tide/). +- Have a working knowledge of GitHub labelling (using [prow](https://prow.k8s.io/command-help)) and labels (main: SIG, Area, Priority, Kind, Triage) used by the project. Release Signal leads must be able to identify + relevant issues and PRs for a given milestone. +- Understand what defines a Release Blocking issue or PR, or know who to contact to determine that information. +- Release Signal lead needs to understand what tests matter and how our testing infra is wired together. + - They can ask previous Release Signal leads for advice. + - They can ask SIG-Testing for guidance. +- The Release Signal lead should take + the [Inclusive Speaker Orientation (LFC101)](https://training.linuxfoundation.org/training/inclusive-speaker-orientation/) + training course. + +The core responsibility of the Release Signal lead is to foster a culture of continuous test integration, fail-fast and fix-fast +mindset and strive for continuously passing tests that provide an accurate positive signal to the release team to ensure that +releases go out on time with high quality. It is critical to maintain a sustained focus on test health through the entire release +cycle, as opposed to accepting destabilizing test failures during active enhancement development followed by an extended test +stabilization phase. + +## Timeline + +### Onboarding + +- Update + the [release-signal team in the teams.yaml](https://github.com/kubernetes/org/blob/main/config/kubernetes/sig-release/teams.yaml) + which grants access to the [ci signal project board](https://github.com/orgs/kubernetes/projects/68/) and the [bug triage project board](https://github.com/orgs/kubernetes/projects/80). _Coordinate with the + release lead to make multiple changes to this file in one PR._ +- Adding the lead and (more experienced) shadows as milestone maintainers in + the [teams.yaml](https://github.com/kubernetes/org/blob/master/config/kubernetes/sig-release/teams.yaml). + _Coordinate with the release lead to make multiple changes to this file in one PR._ +- Plan release support and status reporting. Setup [CI-Signal project board](/release-team/role-handbooks/release-signal/project-boards.md#setting-up-the-ci-signal-project-board) and the [Bug Triage Project Board](/release-team/role-handbooks/release-signal/project-boards.md#setting-up-the-bug-triage-project-board). +- Release Signal Shadows must be a member of the Kubernetes organization and, therefore, apply for membership by opening an issue + on [kubernetes/org](https://github.com/kubernetes/org) ( + see [Issue template](https://github.com/kubernetes/org/issues/new?assignees=&labels=area%2Fgithub-membership&template=membership.yml&title=REQUEST%3A+New+membership+for+%3Cyour-GH-handle%3E)). +- Organizing an onboarding meeting with shadows to walk through this handbook and useful tools like [Testgrid](https://github.com/GoogleCloudPlatform/testgrid), + [Triage](https://github.com/kubernetes/test-infra/tree/master/triage), [Spyglass](https://docs.prow.k8s.io/docs/spyglass/), [Prow](https://docs.prow.k8s.io/docs/), and [Tide](https://docs.prow.k8s.io/docs/components/core/tide/). + +#### Create Assignment Excel Sheet + +Create an excel sheet to track various assignments during the release cycle. [Example](https://docs.google.com/spreadsheets/d/1lYbCOGvG9jD-AVT0Ajc3LoSLNKHC6xIIy1t6BJPlO7E/edit?usp=sharing) + +Roles in the assignments excel sheet: + +1. **Task Assignee:** Responsible for completing an assigned task, including providing team meeting updates and/or giving the Go/No-Go signal. +2. **Main Coordinator:** Main coordinator is responsible for: + - Observing testgrid dashboards (along with other shadows). + - Creating issues for failing/flaking tests. + - Following up with related SIGs/WGs to get the issue resolved. + - Close fixed issues after verifying the fix. + - _**Additionally the main coordinator has the authority to assign above mentioned tasks to other shadows explicitly.**_ <br> + eg: + - _Assigning other shadows to create issues for failures/flakes._ + - _Assigning other shadows to observe a particular job._ + - _Assigning other shadows to follow up on issues with related SIGs/WGs_ + - _Assigning any other task that the main coordinator does._ + + <br>**_Note:_** The Release Signal Lead has the ensure that the assignments are fair and the work distribution during the cycle is even. + +**_Note:_** Shadows not having any of the above roles in any week are supposed to complete tasks assigned by the 'Main Coordinator' and regularly observe and report about failures/flakes on the testgrid dashboards. + +### Early Release + +Once the onboarding meetings have been organized, the following tasks are good to begin with during the early release cycle (Week +0 - Week 6) + +- Ask shadows to fill the assignments excel sheet ([example](https://docs.google.com/spreadsheets/d/1lYbCOGvG9jD-AVT0Ajc3LoSLNKHC6xIIy1t6BJPlO7E/edit?usp=sharing)). Lead assigns the remaining spots (to themselves or to the shadows) +- Start maintaining the [CI signal project board](https://github.com/orgs/kubernetes/projects/68) and keep it up-to-date with + issues tracking any test failure/flake +- Assign the new milestone labels to the open issues from the previous release, assign a member of the Release Signal team, and + have that member follow up on the issue with the owners +- Monitor [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + and [master-informing](https://testgrid.k8s.io/sig-release-master-informing) dashboards daily and ensure all failures and flakes + are tracked via open issues. See [Opening Issues](#opening-issues) for how to write an effective issue. +- Updating/Extending scripts/actions that populate the Bug Triage and CI Signal project board with relevant issues/PRs. +- Familiarize yourself with major enhancements and fixes planned by each SIG for this release so that you can have context in + advance of when you will need to identify incoming bugs as being associated with a work focus in the current release. +- Start pinging stale or long-running issues / PRs so that an early assessment can be made if these should be moved out of the + current release cycle's milestone. + +### Mid-Release Cycle + +This stage lasts from around week 6 until the code freeze starts (usually week 9). At this point, the Release Signal team should +start [escalating issues/PRs](#how-to-escalate) and communicating deadlines with contributors and SIG leads. + +The following are the major tasks: + +- Monitoring the master-blocking, master-informing dashboards on a daily basis. +- Closely working with SIGs/WGs and test owners to fix failing and flaky tests. +- Ensure that issues and PRs targeting the release have the correct *milestone* and *priority* labels. + - Linked issues and PRs tracked in the current milestone should have `priority` and `kind` labels. +- Ensure that `priority/critical-urgent` issues and PRs are not blocked. + - If such a `priority/critical-urgent` issue/PR is found, ping the owner and owner SIGs and alert the release team leads. +- Ping all issues and PRs to remind contributors and SIG leads about the code freeze approaching in a month or so. + - You may want to ping issues at least two times to ensure deadlines are communicated correctly, usually once this stage + starts and a couple of days before the code freeze starts. + +Initially, you should prioritize pinging issues/PRs that haven't been updated for a longer time. You can use the following +queries: [`is:issue is:open milestone:v1.33 sort:updated-asc`](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.33+sort%3Aupdated-asc) +and [`is:pr is:open milestone:v1.33 sort:updated-asc`](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.33+sort%3Aupdated-asc). + +For pinging, the following template can be used: + +``` +Hello! This <issue|PR> has not been updated for a long time, so I'd like to check what's the status. The code freeze is starting <insert date> (about <number of weeks> from now), and while there is still plenty of time, we want to ensure that each PR has a chance to be merged on time. + +As the PR is tagged for 1.33, is it still planned for this release? +``` + +### Code Freeze + +One of the main purposes of Code Freeze is to ensure that the code base is stable and tests on informing and blocking (master and +release-x.y) dashboards are passing. At this point, only release-blocking issues and PRs (usually bug fixes: `kind/bug`) are +considered to be merged. + +Your responsibility here is to actively watch for any new issues/PRs targeting the milestone, monitor the status of existing +issues/PRs, and filter the milestone by removing issues/PRs that are out of this release cycle. + +#### Day Of The Code Freeze + +On the day of the Code Freeze, your responsibility is to help contributors get the approval on their PRs and needed labels. Check +the [How To Escalate](#how-to-escalate) part of the document for a guide on how to do this. + +Please note that Code Freeze is EOD Pacific Time (astronomical sun) on the day of. No items are to be removed from the milestone +until the next day. + +The day after the Code Freeze has begun, the Release Signal team will wait to see if new exception requests are filed and +approved (see [exception process](/releases/EXCEPTIONS.md) for more details). You will remove the remaining issues / PRs that are +not approved for the next milestone. It is important to ensure that the Release Team Lead has been informed during the Burndown +meetings following Code Freeze that items are being removed so they may provide any additional feedback. + +When the code freeze starts, the highest priority is the PRs that had `approved` and `lgtm` labels before the code freeze started +and are in the milestones. Depending on the merge queue length, it might be proposed to hold PRs that have `approved` +and `lgtm`, but are not in the milestone (using the following +query [`is:pr is:open no:milestone label:approved label:lgtm`](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+no%3Amilestone+label%3Aapproved+label%3Algtm)). + +You can monitor PRs using the following queries: + +- [PRs supposed to be in the merge pool (`is:pr is:open milestone:v1.33 label:approved label:lgtm -label:do-not-merge/hold`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.33+label%3Aapproved+label%3Algtm+-label%3Ado-not-merge%2Fhold) +- [PRs that have `approved` and `lgtm`, but are on-hold (`is:pr is:open milestone:v1.33 label:approved label:lgtm label:do-not-merge/hold`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.33+label%3Aapproved+label%3Algtm+label%3Ado-not-merge%2Fhold+) +- [PRs that doesn't have `approved` but have `lgtm` (`is:pr is:open milestone:v1.33 -label:approved label:lgtm`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.33+-label%3Aapproved+label%3Algtm) +- [PRs that doesn't have `lgtm` but have `approved` (`is:pr is:open milestone:v1.33 label:approved -label:lgtm`)](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.33+label%3Aapproved+-label%3Algtm+) + +#### Once the Code Freeze starts - one week later + +Usually, the removal of issues/PRs doesn't start right once the code freeze starts. Depending on the testgrid state, the merge +queue length, and the release team lead's decision, it might be decided to allow some more time for PRs to get merged. At this +stage, `kind/bug` PRs are prioritized, but other PRs can be allowed too if there is no risk of destabilizing the release (such PRs +require an exception). + +You can still use the queries from the previous section at this stage to monitor PRs, but you should also monitor issues using +similar queries. + +#### Week 1 of Code Freeze until Code Thaw starts + +> **_NOTE:_** When changing or removing milestones, be sure to communicate _why_ the change is being made to avoid confusion. The +> issue/PR author may not always be familiar with all the processes and deadlines surrounding code freeze, and we want to contribute +> to a friendly and transparent process. + +At this stage, the Release Signal Lead should remove issues/PRs from the milestone. Before doing so, the Release Signal Lead +should confirm the intention with the Release Team Lead. + +If the issue/PR got confirmation that it's planned for the next milestone or there was recent activity, it should be moved to the +next milestone using the `/milestone v1.xx` command. + +If there is no response on the issue/PR and no recent activity, the issue/PR should be removed from the milestone to reduce the +burden on the next Release Signal team. This is done by using the `/milestone clear` command. + +If the issue/PR has the `priority/critical-urgent` label, it should be coordinated with the owning SIG and the Release Team Lead +to determine whether it should be allowed to stay or whether the priority should be decreased and the issue/PR moved to the next +milestone. + +### Release Candidates + +After the rc.0 and rc.1 cuts, referred to as release candidates, no enhancements are allowed—only bug fixes and regression fixes. + +The branch manager sets up the release-x.y-informing and release-x.y-blocking dashboards after the rc.0 cut. +The Release Signal team should coordinate with the branch manager to ensure the dashboards are set up within the same week. +The Release Signal Lead and Shadows can assist with dashboard setup and resolving any job misconfigurations. + +Once the release-x.y-blocking and release-x.y-informing dashboards are set up (typically around week 12), the Release Signal team should monitor these new dashboards alongside the existing master-blocking and master-informing dashboards on a daily basis until the final release cut. + +### Code Thaw + +A week before the release target date, Code Freeze labelling restrictions are lifted. At this point, you need to make sure that +three things happen: + +1. major breakage bugs get fixed immediately +2. any pending release-blocking PRs get approved and merged +3. _anything else should get kicked out of the release_ +4. tests on blocking and informing dashboards are green + +During this period, it is reasonable to expect issue owners and SIG leads to get back to you within hours (check their time zones, +though). In cases where SIG Leads are unavailable, you may need to appeal to Kubernetes project leaders to deal with stuck PRs. + +Another part of staying on top of code churn, regression, and risk is monitoring commits to the master and the release branch, +especially in the final days of the release. On occasion, things will merge that are unexpected by the release team. This +possibility needs to be monitored, and when it happens, the commits need to be triaged for destabilizing risk and proper exception +justification, tests, docs, etc. + +## Release Cutting - Go or No-Go + +Basic idea behind giving go/no-go signal: + +```mermaid +flowchart TD + A[Identify Failures/Flakes] -->|No Failures/Flakes| B[Go Signal] + A --> |Failures/Flakes Present| C[Get Blocking/Non-Blocking confirmation from responsible SIG/WG] + C --> |No Blockers| B + C --> |Blockers Present| D[No-Go Signal] + D --> |Summarize the status in #release-management and ping the release lead| E[Subject matter experts work on the blocker/s] + E --> F[Blocking issue resolved] + F --> B + style B fill:#008000 + style D fill:#FF0000 +``` + +Over the release cycle, the release engineering team will cut several releases (alpha, beta, rc), before it ends with a new major +Kubernetes release. During the release cycle, tests fail and potentially prevent the cut of a new version. The release signal team +is responsible for getting these failures resolved timely to prevent delaying a release cut. + +The responsible member for the particular release from the release signal team should get in touch with +the [current release branch manager](https://kubernetes.io/releases/release-managers/) 2-3 days before the release cut. Typically, +this is done via starting a thread like [this](https://kubernetes.slack.com/archives/CJH2GBF7Y/p1694951715192089) in +the [#release-management](https://kubernetes.slack.com/archives/CJH2GBF7Y) slack channel. + +See [Judging State of Testgrid dashboards](#judging-state-of-testgrid-dashboards) for the actual Go/No-Go signal for the release +cut. + +## Judging State of Testgrid dashboards + +As a general rule of thumb, **any** failure/flake on **any** board under observation is a reason for concern. It should be brought +to the notice of the responsible SIG/someone with technical expertise in that area as soon as possible. However broadly, giving +green/yellow/red signals can be initially checked from the table below (Note: Release cutting has only Go/No-Go, so yellow is +equivalent to red). + +See [Blocking vs. Informing Dashboards](#blocking-vs-informing-dashboards) for the reason behind these signals. + +| (master/release-x.y)-blocking | (master/release-x.y)-informing | Signal | +|-------------------------------|--------------------------------|--------| +| ✅ | ✅ | 🟢 | +| ✅ | ⚠️ | 🟢 | +| ✅ | ❌ | 🔴 | +| ⚠️ | ⚠️ | 🟡 | +| ⚠️ | ✅ | 🟡 | +| ⚠️ | ❌ | 🔴 | +| ❌ | ⚠️ | 🔴 | +| ❌ | ✅ | 🔴 | +| ❌ | ❌ | 🔴 | + +Key: + +- ❌ - Failing Test +- ⚠️ - Flaking Test +- ✅ - Passing Test + +**_Important Notes:_** + +- Red/Yellow Signals block a release cut, and it is not until the issue is resolved or someone from a related SIG/someone with + technical expertise marks that issue as a non-blocker that the release is cut. + +- For reporting the testgrid status in the weekly meetings, the following factors come into play: + - Is someone from the responsible SIG working on that issue? + - How close are we to the next release cut? + - What is the estimated time to solve the issue? Would it take too long? + - Is the fix for that issue blocked by some other issue? + +All these questions contribute to the signal in the weekly meeting and are up to the release signal team's interpretation based on +the situation. Red and Yellow indicate that we want attention to the issues or that the actual fix still needs to be implemented. + +## Blocking vs. Informing Dashboards + +Summary: Failing 'Blocking' jobs always block the release. Failing 'Informing' jobs sometimes blocks the release. + +Jobs on the master-blocking and release-x.y-blocking dashboards are expected to be green _all the time_. As such, you should take +immediate action when one of them turns red and may recommend postponing the release if any one of these jobs is not passing. + +Jobs on the master-informing and release-x.y-informing dashboards require more interpretation. Some run infrequently or for a long +time and can take days to show effects from merged changes. Others are inconsistent and require you to wait for several failed +runs to file an issue and consult the owning SIG. As a result, these tests block release either when they have unexplained +failures or failures that have been investigated and relate to blocking issues. If they're just flaking, or failing for explained +and tolerated reasons, they do not block. + +For more detailed information about what's on these dashboards, see [Release Blocking Jobs](/release-blocking-jobs.md) +documentation. + +## Opening Issues + +The appropriate response to a failing or flaking job on a blocking or informing dashboard is to open an issue. The primary goal of +opening an issue is to track the work that needs to be done to bring the job back to a healthy status while providing an accurate +signal. The format for a helpful and informative issue may vary depending on the type of job, the test(s) that are failing for the +job, and the responsible parties for the job. + +Before creating a new GitHub issue, check if somebody else has already opened an issue. To filter already opened +issues, [queries](https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests#search-by-project-board) +can be applied. + +### Decision Tree + +The decision tree below can be followed to make sure that you are opening an issue that is most effective for triaging, tracking, +and resolving a failing or flaking job. + +_All instances of "failing" below can be replaced with "flaking" when appropriate._ + +- The following pattern can be used to title a failure/flake while opening an issue: + - [Failing Test] [Responsible SIG]... (failing test name/failure description) (failing-job-name) + - The `...` used above is somewhat similar to variadic functions. You can tag as well as mention multiple SIGs if a test + belongs to them, example: [Failing Test] [sig apps] [sig testing] (failing test name/failure description) (failing-job-name) + +- If the failure is clearly related to a testing infrastructure issue, it may be appropriate to open the issue + in [k/test-infra](https://github.com/kubernetes/test-infra) or [k/k8s.io](https://github.com/kubernetes/k8s.io). + +An issue should remain open until the appropriate fix has been made and the affected tests have returned to a healthy status. If +an issue is closed prematurely, or the same test starts failing or flaking again, a new issue should be opened. Do not reopen +closed issues. + +For all opened issues: + +- Make sure all open issues have a `priority/` label (see: [Priority Labels](#priority-labels)) and one of either the `kind/flake` + or `kind/failing-test` label. +- Make sure the issue is assigned against the current milestone 1.x, using `/milestone`. +- Assign the issue to the appropriate SIG using the `/sig` label. +- If you are aware of the individual associated with the enhancement area or issue, @mention of the individual(s) and SIG leads + tends to result in a faster turnaround. +- Add `@kubernetes/sig-foo-test-failures` to draw SIG-foo's attention to the issue. +- `/cc @kubernetes/release-team-release-signal` GitHub team on the issue to let the rest of the team know about it. You might also `/cc` the release + lead if the issue needs extra attention immediately. +- Assign the issue to yourself or recruit another member of the Release Signal team to own the issue. The Release Signal team + member assigned to an issue is responsible for driving it to resolution alongside the assignee from the appropriate SIG. +- Post the test failure in SIG's Slack channel to get help in routing the issue to the rightful owner(s). +- Add the issue to the [CI signal board](https://github.com/orgs/kubernetes/projects/68) under "New". The Release Signal team lead + is responsible for making sure every issue on the CI signal board is assigned to a member of the Release Signal team and is + being actively driven to resolution. + +In addition to the steps above, make sure to fill in any additional information that is part of +the [Failing Test](https://github.com/kubernetes/kubernetes/issues/new?labels=kind%2Ffailing-test&template=failing-test.md) +or [Flaking Test](https://github.com/kubernetes/kubernetes/issues/new?labels=kind%2Fflake&template=flaking-test.md) issue +template. + +### Closing Issues + +After a fix is applied to an issue, it often gets fast closed. Be aware that the issue's status (open/closed) is not the same as +on the CI Signal board (New/under investigation/observing/resolved). For the same reasons, as explained earlier, we have to see if +a flaky test is stable. When a fix is applied, and it is expected that this should solve the problem, the issue gets moved to +Observing. After an appropriate amount of time, a big thumb rule would be two weeks; the issue can be moved to resolved. An issue +should remain open until the appropriate fix has been made and the affected tests have returned to a healthy status. If an issue +is closed prematurely, or the same test starts failing or flaking again, a new issue should be opened. Do not reopen closed +issues. + +Closing flaky tests requires more investigation as the test may have passed on the informing and blocking dashboards but may be failing in other clusters with the same configuration. Always use [Triage](https://go.k8s.io/triage) to see whether the test health is stable across different jobs. + +## Special high risk test categories to monitor + +Historically, there are a couple of families of tests that are hard to stabilize, regression-prone and pose a high risk of +delaying and/or derailing a release. As a Release Signal lead, it is highly recommended to pay close attention and extra caution +when dealing with test failures in the following areas. + +### Scalability tests + +Scalability testing is inherently challenging, and regressions in this area are potentially a huge project risk. + +- Requires lots and lots of servers running tests, and hence expensive +- Tests are long-running, so it is especially hard/expensive/slow to resolve issues via Git bisection +- Examination of results is actually the bigger, more expensive part of the situation + +The following scalability jobs/tests could regress quite easily (due to seemingly unrelated PRs anywhere in the k8s codebase) and +require constant manual monitoring/triaging and domain expertise to investigate and resolve. + +- [master-blocking gce-cos-master-scalability-100](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-scalability-100) +- [master-informing gce-scale-correctness](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-correctness) +- [master-informing gce-scale-performance](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-performance) +- `release-x.y-blocking gce-cos-x.y-scalability-100` + +Importantly, the expensive scalability jobs that run on master-informing do not run or appear on release-x.y-informing because we +do not currently run them against the release branch as well as the master. In the event of a problem with these jobs, you then +will have to figure out whether the problem is related to code that's in the release branch as opposed to code that exists only in +the master. + +The Release Signal team should + +- Continuously monitor these tests early in the release cycle, ensure issues are filed and escalated to the Release team and right + owners in [SIG-Scalability](https://github.com/kubernetes/community/tree/master/sig-scalability#chairs). +- Work with SIG-Scalability to understand if the failure is a product regression versus a test issue (flake) and, in either case, + follow-up closely on a fix. +- Additionally, it might help to monitor SIG-Scalability's performance dashboard to flag if and when there is considerable + performance degradation. + +## Reporting + +A member of the Release Signal team should give status updates in every release team meeting. For summarizing the signal for the +testgrid see [judging state of testgrid dashboards](#judging-state-of-testgrid-dashboards). For summarizing the issues and PRs +being tracked for this release, the following template is to be used. + +- Release [blocking Issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3Arelease-blocker) (#number) +- Release [blocking PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+label%3Arelease-blocker+) (#number) + +- Query: [open non-test/flake k/k issues for v1.29](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.29+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+) (#number) + - [priority/critical-urgent issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.29+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+) (#number) + - [priority/important-soon issues](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.29+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+) (#number) + +- Query: open k/k [PR’s for v1.29](https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.29+is%3Apr+sort%3Aupdated-asc+) (#number) + - [priority/critical-urgent PRs](https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.29+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent) (#number) + - [priority/important-soon PRs](https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.29+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+) (#number) + +- Query: ALL [open k/k issues for v1.29](https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.29+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+) (#number) (incl. [this query](https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.26+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake) (#number)) + +**Note:** + +The actual template and links would vary according to the particular release. Also, apart from this, add any important points you +feel should be brought to the attention of the release team. + +## Tips and Tricks of the game + +### A Tour of CI on the Kubernetes Project + +- [A guide to CI on Kubernetes with Rob Kielty (1.20 CI Signal lead) and Dan Magnum (1.19 CI Signal lead)](https://www.youtube.com/watch?v=bttEcArAjUw): +Introduces the role of CI Signal members and walks through the tools and processes used for logging flaky/failing tests (as +explained below). +<br> Notes to follow along: http://bit.ly/k8s-ci-signal + +- The [Release Signal Walkthroughs Playlist](https://youtube.com/playlist?list=PL69nYSiGNLP2Lzsjir9W7S8u0UsQeeW71&si=mp8zpMyheVR1eI1i) contains short videos explaining some essential aspects of Release Signal. + +### How to Escalate + +This role consists of creating issues for failing and flaky tests on the testgrid and monitoring issues and PRs targeted for the +current release cycle. The path of escalation is slightly different for both types of issues. + +As a general rule of thumb: + +_**Always ping folks alongside posting to a Slack channel**_ + +- For tests failing/flaking on testgrid: + 1. Create an issue in the [k/k](https://github.com/kubernetes/kubernetes) + or [k/test-infra](https://github.com/kubernetes/test-infra) + or [k/k8s.io](https://github.com/kubernetes/k8s.io) (depending on the type of issue) repository and tag the appropriate SIG + and ping the relevant contributor (if a PR broke something), Leads/Technical Leads of the SIGs involved or anyone who you + feel should know about that particular issue. + 2. Start a thread in the [#release-ci-signal](https://kubernetes.slack.com/archives/CN0K3TE2C) channel on Kubernetes slack and + CC the folks mentioned in the previous point. + 3. Cross-post the link to the thread in the relevant SIGs/WGs channel on the Kubernetes slack; for example, + see [this](https://kubernetes.slack.com/archives/CN0K3TE2C/p1694239448798339) thread in + the [#release-ci-signal](https://kubernetes.slack.com/archives/CN0K3TE2C) channel. + +- For issues and PRs targeted for the current release cycle: + 1. Leave a comment on the GitHub issue or PR: "This issue hasn't been updated in 3 months. Are you still expecting to complete + it for 1.33?". It's helpful to @ mention individuals or SIG ```-bugs``` or ```-pr-reviews``` alias, e.g. + "@kubernetes/sig-node-bugs" or + "@kubernetes/sig-network-pr-reviews". + 2. Send a message to the relevant SIG Slack channel or mailing list about the problem: It's helpful to directly @ mention the + relevant SIG Leads / Owners and to condense multiple issues into a list, e.g. "Hey, these three issues haven't seen any + attention, are they still valid for 1.33?" + 3. Message individual owners and reviewers directly via Slack. If owners and reviewers are unresponsive, you can reach out to + the SIG leads using the `kubernetes-sig-${name}-leads@googlegroups.com` mailing lists. + +If none of the methods mentioned above work, you can escalate to the EA, Release Team Lead, and Lead Shadows with suggestions on what to do with +non-responsive issues. + +### Checking test dashboards + +- Quirk: If a job is listed as FAILING but doesn't have "Overall" as one of its ongoing failures, it's not actually failing. It + might be "red" from some previous test run failures and will clear up after a few "green" runs. +- If a job is failing in one of the meta-stages (Up, Down, DumpClusterLogs, etc.), find the owning SIG since it is a infra failure. +- You can look at the past history of the job/test (even as far back as multiple releases) by querying + the [triage dashboard for specific job and/or test name](https://storage.googleapis.com/k8s-triage/index.html). + +#### Inferring Responsible SIG from the failure + +- If a job is failing because a specific test case is failing, and that test case has a [sig-foo] in its name, tag SIG-foo in the + issue and find the appropriate owner within the SIG +- With unit test case failures, try to infer the SIG from the path or OWNERS files in it. Otherwise, find the owning SIG to help. OWNERS file is present in the same directry as a job's config file. + +<img alt="Prowjob Config File" src="img/prowjob-config-file.png" style="max-width: 800px; height: auto; "/> + +- With verify failures, try to infer the failure from the log. Otherwise, find the owning SIG to help +- If a test case is failing in one job consistently but not others, both the job owner and test case owner are responsible for + identifying why this combination is different. +- [Triage](https://go.k8s.io/triage) also has the ability to infer the responsible SIG in some cases. + +<img alt="Triage inferring SIG" src="img/triage-inferring-sig.png" style="max-width: 800px; height: auto; "/> + +### Finding a Flaky Test + +A flaky test is a software test that yields both passing and failing results despite zero changes to the code or test. A test may flake for different reasons, including bad synchronization, environmental issues, race conditions, etc. Release Signal team members should, in general, keep an eye on overall top flakes using [Triage](https://go.k8s.io/triage). + +If a test is suspected to be flaky and not enough evidence is present on the testgrid dashboard itself, search that test name in [Triage](https://go.k8s.io/triage) to see the test results across different jobs. Not all results may be accurate, as tests running in different jobs may have different configurations. But this, overall, gives a good picture of the test's health. + +### Priority Labels + +Issues you create for test failures and flakes must be assigned a `priority` label, that is compatible with the priorities +described in +the [Issue Triage Contributor Guide](https://github.com/kubernetes/community/blob/master/contributors/guide/issue-triage.md#define-priority). + +In the CI signal context, we use priority labels to mean: + +| priority | Description | Expectation | +|-------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `priority/critical-urgent` | Actively impacting release-blocking signal. Includes: consistently failing tests, frequently (more than 20% of the time) flaking tests in release-blocking dashboards. | Work with SIGs for these to be worked on as soon as possible, prioritized over other work. | +| `priority/important-soon` | Negatively impacting release-blocking signal. Includes: Flakes (especially occurring >2% of the time) in release-blocking jobs, failures and flakes in release-informing jobs. | Work with SIGs to resolve them soon, ideally before the end of this release cycle. | +| `priority/important-longterm` | Painful, results in manual workarounds/toil, limits developer productivity, but is of lower urgency and importance than issues in `priority/critical-urgent` or `priority/important-soon`. | In reality, there's a high chance these won't be finished, or even started within the current release. Work with sigs to ensure they are on their radar, and help find ways they can be broken down into smaller chunks. | + +CI monitoring part is not currently using `priority/backlog` or `priority/awaiting-more-evidence`. If ever in doubt, label it +as `critical-urgent` to ensure you get eyes on the issue. + +### Milestones + +All issues the Release Signal team creates must be part of the current milestone. In order to apply a milestone, you will need to +be part of the GitHub team [milestone-maintainers](https://github.com/orgs/kubernetes/teams/milestone-maintainers). + +To add an issue or PR to a milestone, use the following Prow command: + +``` +/milestone v1.x +``` + +Near the end of the release cycle, if you still have open issues that are not release blocking, please move these to the next +milestone. diff --git a/release-team/role-handbooks/release-signal/one-pager.md b/release-team/role-handbooks/release-signal/one-pager.md index c80a4025c0c..537be24b038 100644 --- a/release-team/role-handbooks/release-signal/one-pager.md +++ b/release-team/role-handbooks/release-signal/one-pager.md @@ -1,70 +1,70 @@ -# Release Signal One Pager - -<h3>Minimum text, maximum learning.</h3> - -Detailed version of this is the [Release Signal Handbook](/release-team/role-handbooks/release-signal/README.md). This is meant to be a quick -reference rather than a comprehensive guide. - -Also refer to [tips and tricks of the game](/release-team/role-handbooks/release-signal/README.md#tips-and-tricks-of-the-game). - -## Release Signal - Testgrid Observation Loop - -```mermaid -flowchart TD - A["Observe Testgrid"] -- Failure --> B["Create GitHub Issue using flake/failure template"] - A -- Flake --> C["Confirm using Triage"] - C -- Is a flake --> B - C -- Not a flake --> A - B --> D["Add relevant details"] - D --> A1["Add labels: </br> #8226; Priority </br> #8226; Milestone </br> #8226; SIG Label"] - A1 --> E["Tag @kubernetes/release-team-release-signal"] - E --> F["Message #release-ci-signal Slack channel"] - F --> G["Reach out to SIG on Slack"] - G --> H["Ping SIG TLs/Chairs/Active Members"] - H --> I["Ask if it's a blocker for upcoming release cut"] - I -- Is a blocker --> J["Mark as blocker"] - I -- Not a blocker --> K["Mark as non-blocker"] - J & K --> L["Add issue with Metadata (e.g. Links, Notes, etc.) to CI Signal Board"] - L --> A - - style H fill:#FFD700,color:#000000 - style I fill:#90EE90,color:#000000 - style J fill:#FF6347,color:#FFFFFF - style K fill:#87CEFA,color:#000000 - - linkStyle 0 stroke:red,stroke-width:2px; - linkStyle 1,2 stroke:purple,stroke-width:2px; - - classDef important fill:#FF9999,stroke:#333,stroke-width:2px,color:#000000; - class N important -``` - -## Release Signal - Go or No-Go - -Go or No-Go signal with diagrams and steps can be found [here](/release-team/role-handbooks/release-signal/README.md#release-cutting---go-or-no-go). - -## Release Signal - Following up on issues/PRs in milestone - -```mermaid -sequenceDiagram - participant RS as Release Signal Team - participant IO as Issue/PR Owners - Note over RS, IO: Release Cycle Starts - RS ->> IO: Send Code Freeze Reminder (1 month+ before) - Note over IO: Review issues/PRs - RS ->> IO: Send Code Freeze Reminder (1.5 weeks before) - Note over IO: Finalize issues/PRs - Note over RS, IO: Code Freeze Deadline - RS ->> IO: Help merge PRs - Note over IO: Submit exception requests - Note over RS, IO: Post Code Freeze - Note over RS: Remove non-release issues/PRs from milestone <br> (Except those with approved exception requests) - - par Monitor Post-Freeze Changes - Note over RS: Monitor bug fixes, regressions, and <br> important PRs added after code freeze - and Continue Release Process - Note over RS: Remove issues/PRs that could not be completed <br> even after additional exception request time - end - - Note over RS, IO: Release Cycle Ends -``` +# Release Signal One Pager + +<h3>Minimum text, maximum learning.</h3> + +Detailed version of this is the [Release Signal Handbook](/release-team/role-handbooks/release-signal/README.md). This is meant to be a quick +reference rather than a comprehensive guide. + +Also refer to [tips and tricks of the game](/release-team/role-handbooks/release-signal/README.md#tips-and-tricks-of-the-game). + +## Release Signal - Testgrid Observation Loop + +```mermaid +flowchart TD + A["Observe Testgrid"] -- Failure --> B["Create GitHub Issue using flake/failure template"] + A -- Flake --> C["Confirm using Triage"] + C -- Is a flake --> B + C -- Not a flake --> A + B --> D["Add relevant details"] + D --> A1["Add labels: </br> #8226; Priority </br> #8226; Milestone </br> #8226; SIG Label"] + A1 --> E["Tag @kubernetes/release-team-release-signal"] + E --> F["Message #release-ci-signal Slack channel"] + F --> G["Reach out to SIG on Slack"] + G --> H["Ping SIG TLs/Chairs/Active Members"] + H --> I["Ask if it's a blocker for upcoming release cut"] + I -- Is a blocker --> J["Mark as blocker"] + I -- Not a blocker --> K["Mark as non-blocker"] + J & K --> L["Add issue with Metadata (e.g. Links, Notes, etc.) to CI Signal Board"] + L --> A + + style H fill:#FFD700,color:#000000 + style I fill:#90EE90,color:#000000 + style J fill:#FF6347,color:#FFFFFF + style K fill:#87CEFA,color:#000000 + + linkStyle 0 stroke:red,stroke-width:2px; + linkStyle 1,2 stroke:purple,stroke-width:2px; + + classDef important fill:#FF9999,stroke:#333,stroke-width:2px,color:#000000; + class N important +``` + +## Release Signal - Go or No-Go + +Go or No-Go signal with diagrams and steps can be found [here](/release-team/role-handbooks/release-signal/README.md#release-cutting---go-or-no-go). + +## Release Signal - Following up on issues/PRs in milestone + +```mermaid +sequenceDiagram + participant RS as Release Signal Team + participant IO as Issue/PR Owners + Note over RS, IO: Release Cycle Starts + RS ->> IO: Send Code Freeze Reminder (1 month+ before) + Note over IO: Review issues/PRs + RS ->> IO: Send Code Freeze Reminder (1.5 weeks before) + Note over IO: Finalize issues/PRs + Note over RS, IO: Code Freeze Deadline + RS ->> IO: Help merge PRs + Note over IO: Submit exception requests + Note over RS, IO: Post Code Freeze + Note over RS: Remove non-release issues/PRs from milestone <br> (Except those with approved exception requests) + + par Monitor Post-Freeze Changes + Note over RS: Monitor bug fixes, regressions, and <br> important PRs added after code freeze + and Continue Release Process + Note over RS: Remove issues/PRs that could not be completed <br> even after additional exception request time + end + + Note over RS, IO: Release Cycle Ends +``` diff --git a/release-team/role-handbooks/release-signal/project-boards.md b/release-team/role-handbooks/release-signal/project-boards.md index edb6a76222a..11653036711 100644 --- a/release-team/role-handbooks/release-signal/project-boards.md +++ b/release-team/role-handbooks/release-signal/project-boards.md @@ -1,147 +1,147 @@ -# Release Signal Boards - -<!-- TOC --> -* [Release Signal Boards](#release-signal-boards) - * [Project Board Overview](#project-board-overview) - * [CI Signal Project Board](#ci-signal-project-board) - * [Information on the CI Signal Board](#information-on-the-ci-signal-board) - * [Setting up the CI Signal Project Board](#setting-up-the-ci-signal-project-board) - * [Bug Triage Project Board](#bug-triage-project-board) - * [Information on the Bug Triage Board](#information-on-the-bug-triage-board) - * [Bug Triage Board Views](#bug-triage-board-views) - * [Setting up the Bug Triage Project Board](#setting-up-the-bug-triage-project-board) -<!-- TOC --> - -The release signal team maintains two project boards throughout the release cycle. These boards are set up by the release signal -lead and are maintained by the entire release signal team. The [CI Signal Project Board](#ci-signal-project-board) keeps track of -the failures and flakes on the testgrid dashboards. In contrast, the [Bug Triage Board](#bug-triage-project-board) tracks the -current status of all issues and PRs targeting the release, their priorities, and to distribute the work amongst the team. - -## Project Board Overview - -### CI Signal Project Board - -The CI component of the team is using [GitHub project board](https://github.com/orgs/kubernetes/projects/68) to track the -currently failing and flaking tests across various testgrid dashboards. - -Release Signal team members are expected to observe the testgrid dashboards and create issues, and add them to the GitHub project -board. You may create issues from the board or add them later. This board acts as a single point of reference for the current -state of the CI and is referred to by both the general public and the release management team. Issues directly created in the -kubernetes/kubernetes repository are not directly added to the board; they need to be manually added. - -The CI component of the release signal team only looks at the dashboard mentioned in this document, failures on other boards, if -important and not mentioned may go unnoticed by the team. - -#### Information on the CI Signal Board - -The release signal team members set the following items for each issue. Some are automatically populated when you create issues -through the project board itself. - -- `Status`: One of the following values: - - `NEW`: Default category when an item is added to this board (defined in the workflow) - - `CRITICAL`: Indicates that the item is of critical priority. Consider adding `priority/critical-urgent` label too - - `FAILING`: Indicates that the issue is about a failing test - - `FLAKY`: Indicates that the issue is about a flaking test - - `INVESTIGATING`: Default category when an item is re-opened in this board (defined in the workflow) - - `OBSERVING`: Indicates that the test mentioned in the issue is under observation - - `RESOLVED`: Default category when an item is closed in this board (defined in the workflow) - - `PASSING`: Indicates that the test mentioned in the issue is passing -- `Testgrid Board`: Indicates the board that the failing test is a part of i.e. `master-blocking`, `master-informing` or both -- `K8s Release`: Signifies the release version this issue is targeting, consider setting the `milestone` label too -- `Testgrid URL`: The URL of the testgrid job -- `Date`: Date of addition to the board -- `CI Signal Member`: The CI Signal member tracking the issue -- `Slack discussion link`: The slack discussion link in the [#release-ci-signal](https://kubernetes.slack.com/archives/CN0K3TE2C) - channel or the SIG/WG channel -- `view`: The view of the board, single value, added for future modifications: - - `issue-tracking`: The item is part of currently tracked issues - -#### Setting up the CI Signal Project Board - -- Copy the prior project board as it has some settings related to Workflows, fields, grouping, etc that help with some basic - automation and the look and feel (you can look at the past Workflows in prior tabs). - -<img alt="How to Duplicate View" height="428" src="img/project-board-duplicate-view.png" width="400"/> - -- You need to add a new option to the field `K8s Release` to add and view items being tracked in the current release. - -<img alt="How to add a new option to K8s Release field" height="406" src="img/project-board-add-new-k8s-release.png" width="800"/> - -- Your new board will need to have the filter updated (see red line below) to make sure it is pulling in issues tagged with the - proper release. - -<img alt="How to Update Filter" height="400" src="img/project-board-update-filter.png" width="464"/> - -### Bug Triage Project Board - -The Bug Triage component of the team is using a [GitHub project board](https://github.com/orgs/kubernetes/projects/80) to track -the current status of all issues and PRs targeting the release, their priorities, and to distribute the work amongst the team. - -Release Signal team members are expected to assign themselves as the `Responsible` person to track an issue to the extent of their -time availability throughout the cycle. The release signal team should keep an eye on the board for new issues/PRs and make sure -they are tracked. - -The project board is public so that both the release team and anyone interested from the community can stay updated about the -current status of issues and PRs that are targetting the release. Write access to the board is limited to members -of [@kubernetes/release-team-bug-triage](https://github.com/orgs/kubernetes/teams/release-team-bug-triage). - -New issues and PRs that target the current release milestone are automatically added to the board with -a [a prow job](https://prow.k8s.io/?job=periodic-sync-bug-triage-github-project-*). The prow job is defined -in [kubernetes/test-infra](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes/sig-k8s-infra/trusted/sig-release-release-team-jobs/release-team-periodics.yaml) -and the script can be found -in [kubernetes/sig-release](https://github.com/kubernetes/sig-release/blob/master/release-team/hack/sync-bug-triage-github-project-beta.sh). - -#### Information on the Bug Triage Board - -For each board item, the following details are set and managed by the release signal team: - -- `Responsible`: The release signal team member that is responsible for tracking the progress on the issue/PR. This is not the - same as the issue assignee. -- `Notes`: Short note by the release signal team member regarding the issue/PR, - e.g. `[6/3] No progress made since last comment; notified them about the code freeze` -- `Status`: One of the following values: - - `Tracked`: a member of the release signal team is actively tracking the issue - - `Pending inclusion`: the issue is not actively tracked by anyone yet - - `At Risk`: the issue is marked as `at-risk` and might not make the release - - `Release Blocker`: the issue is marked as a `release-blocker` - - `Done`: work on the issue is complete and all pull requests have been merged -- `Priority`: This should match the `priority/*` label that is currently assigned to the issue or PR -- `Fixes`: This should match the `kind/*` label that is currently assigned to the issue or PR - -The following details for each item can be seen on the board. Editing the fields below from the board should be avoided (and for -some it might not even be possible): - -- `Title`: Issue/PR title -- `Type`: Issue or Pull Request -- `Milestone`: The milestone that the issue/PR is targeting. This should be the current release -- `Labels`: Issue/PR labels, mostly useful to identify `kind` and `priority` of each item - -#### Bug Triage Board Views - -The bug triage board has a number of views to simplify issue management. - -- [Bug Triage](https://github.com/orgs/kubernetes/projects/80/views/1) shows all open issues and PRs for the current milestone -- [Bug Triage (Filter by Responsible)](https://github.com/orgs/kubernetes/projects/80/views/19) - shows all open issues and PRs, grouped by the Release Signal team member that is responsible for them -- [Issues](https://github.com/orgs/kubernetes/projects/80/views/12) shows all open issues for the current milestone -- [PR](https://github.com/orgs/kubernetes/projects/80/views/13) shows all open PRs for the current milestone -- [Release Blocker](https://github.com/orgs/kubernetes/projects/80/views/7) shows all issues and PRs that are marked as release - blockers -- [By Priority](https://github.com/orgs/kubernetes/projects/80/views/6) shows all open issues and PRs, grouped by priority -- [ALL](https://github.com/orgs/kubernetes/projects/80/views/10) shows all issues and PRs on the board - -#### Setting up the Bug Triage Project Board - -At the beginning of the cycle, the Release Signal Lead should prepare the bug triage board for the ongoing release cycle. The -following steps should be taken: - -1. Edit bug triage board name for current cycle, e.g. `[sig-release] 1.xx bug-triage` -2. Update the milestone for the periodic prow job. [Example PR from 1.28](https://github.com/kubernetes/test-infra/pull/29527) -3. Edit the [Responsible](https://github.com/orgs/kubernetes/projects/80/settings/fields/2845019) field and add the new Release Signal - team members -4. Update the milestone filter to `milestone:v1.xx` in all relevant views. You can do this by editing the filter and then - clicking `Save` -5. Set the `Status` field to `Pending inclusion` value for all open issues and PRs targeting the current milestone to indicate - that no one is responsible yet at the beginning of the cycle. Later, any Release Signal member picking up the issue/PR should set - it to `Tracked`. - +# Release Signal Boards + +<!-- TOC --> +* [Release Signal Boards](#release-signal-boards) + * [Project Board Overview](#project-board-overview) + * [CI Signal Project Board](#ci-signal-project-board) + * [Information on the CI Signal Board](#information-on-the-ci-signal-board) + * [Setting up the CI Signal Project Board](#setting-up-the-ci-signal-project-board) + * [Bug Triage Project Board](#bug-triage-project-board) + * [Information on the Bug Triage Board](#information-on-the-bug-triage-board) + * [Bug Triage Board Views](#bug-triage-board-views) + * [Setting up the Bug Triage Project Board](#setting-up-the-bug-triage-project-board) +<!-- TOC --> + +The release signal team maintains two project boards throughout the release cycle. These boards are set up by the release signal +lead and are maintained by the entire release signal team. The [CI Signal Project Board](#ci-signal-project-board) keeps track of +the failures and flakes on the testgrid dashboards. In contrast, the [Bug Triage Board](#bug-triage-project-board) tracks the +current status of all issues and PRs targeting the release, their priorities, and to distribute the work amongst the team. + +## Project Board Overview + +### CI Signal Project Board + +The CI component of the team is using [GitHub project board](https://github.com/orgs/kubernetes/projects/68) to track the +currently failing and flaking tests across various testgrid dashboards. + +Release Signal team members are expected to observe the testgrid dashboards and create issues, and add them to the GitHub project +board. You may create issues from the board or add them later. This board acts as a single point of reference for the current +state of the CI and is referred to by both the general public and the release management team. Issues directly created in the +kubernetes/kubernetes repository are not directly added to the board; they need to be manually added. + +The CI component of the release signal team only looks at the dashboard mentioned in this document, failures on other boards, if +important and not mentioned may go unnoticed by the team. + +#### Information on the CI Signal Board + +The release signal team members set the following items for each issue. Some are automatically populated when you create issues +through the project board itself. + +- `Status`: One of the following values: + - `NEW`: Default category when an item is added to this board (defined in the workflow) + - `CRITICAL`: Indicates that the item is of critical priority. Consider adding `priority/critical-urgent` label too + - `FAILING`: Indicates that the issue is about a failing test + - `FLAKY`: Indicates that the issue is about a flaking test + - `INVESTIGATING`: Default category when an item is re-opened in this board (defined in the workflow) + - `OBSERVING`: Indicates that the test mentioned in the issue is under observation + - `RESOLVED`: Default category when an item is closed in this board (defined in the workflow) + - `PASSING`: Indicates that the test mentioned in the issue is passing +- `Testgrid Board`: Indicates the board that the failing test is a part of i.e. `master-blocking`, `master-informing` or both +- `K8s Release`: Signifies the release version this issue is targeting, consider setting the `milestone` label too +- `Testgrid URL`: The URL of the testgrid job +- `Date`: Date of addition to the board +- `CI Signal Member`: The CI Signal member tracking the issue +- `Slack discussion link`: The slack discussion link in the [#release-ci-signal](https://kubernetes.slack.com/archives/CN0K3TE2C) + channel or the SIG/WG channel +- `view`: The view of the board, single value, added for future modifications: + - `issue-tracking`: The item is part of currently tracked issues + +#### Setting up the CI Signal Project Board + +- Copy the prior project board as it has some settings related to Workflows, fields, grouping, etc that help with some basic + automation and the look and feel (you can look at the past Workflows in prior tabs). + +<img alt="How to Duplicate View" height="428" src="img/project-board-duplicate-view.png" width="400"/> + +- You need to add a new option to the field `K8s Release` to add and view items being tracked in the current release. + +<img alt="How to add a new option to K8s Release field" height="406" src="img/project-board-add-new-k8s-release.png" width="800"/> + +- Your new board will need to have the filter updated (see red line below) to make sure it is pulling in issues tagged with the + proper release. + +<img alt="How to Update Filter" height="400" src="img/project-board-update-filter.png" width="464"/> + +### Bug Triage Project Board + +The Bug Triage component of the team is using a [GitHub project board](https://github.com/orgs/kubernetes/projects/80) to track +the current status of all issues and PRs targeting the release, their priorities, and to distribute the work amongst the team. + +Release Signal team members are expected to assign themselves as the `Responsible` person to track an issue to the extent of their +time availability throughout the cycle. The release signal team should keep an eye on the board for new issues/PRs and make sure +they are tracked. + +The project board is public so that both the release team and anyone interested from the community can stay updated about the +current status of issues and PRs that are targetting the release. Write access to the board is limited to members +of [@kubernetes/release-team-bug-triage](https://github.com/orgs/kubernetes/teams/release-team-bug-triage). + +New issues and PRs that target the current release milestone are automatically added to the board with +a [a prow job](https://prow.k8s.io/?job=periodic-sync-bug-triage-github-project-*). The prow job is defined +in [kubernetes/test-infra](https://github.com/kubernetes/test-infra/blob/master/config/jobs/kubernetes/sig-k8s-infra/trusted/sig-release-release-team-jobs/release-team-periodics.yaml) +and the script can be found +in [kubernetes/sig-release](https://github.com/kubernetes/sig-release/blob/master/release-team/hack/sync-bug-triage-github-project-beta.sh). + +#### Information on the Bug Triage Board + +For each board item, the following details are set and managed by the release signal team: + +- `Responsible`: The release signal team member that is responsible for tracking the progress on the issue/PR. This is not the + same as the issue assignee. +- `Notes`: Short note by the release signal team member regarding the issue/PR, + e.g. `[6/3] No progress made since last comment; notified them about the code freeze` +- `Status`: One of the following values: + - `Tracked`: a member of the release signal team is actively tracking the issue + - `Pending inclusion`: the issue is not actively tracked by anyone yet + - `At Risk`: the issue is marked as `at-risk` and might not make the release + - `Release Blocker`: the issue is marked as a `release-blocker` + - `Done`: work on the issue is complete and all pull requests have been merged +- `Priority`: This should match the `priority/*` label that is currently assigned to the issue or PR +- `Fixes`: This should match the `kind/*` label that is currently assigned to the issue or PR + +The following details for each item can be seen on the board. Editing the fields below from the board should be avoided (and for +some it might not even be possible): + +- `Title`: Issue/PR title +- `Type`: Issue or Pull Request +- `Milestone`: The milestone that the issue/PR is targeting. This should be the current release +- `Labels`: Issue/PR labels, mostly useful to identify `kind` and `priority` of each item + +#### Bug Triage Board Views + +The bug triage board has a number of views to simplify issue management. + +- [Bug Triage](https://github.com/orgs/kubernetes/projects/80/views/1) shows all open issues and PRs for the current milestone +- [Bug Triage (Filter by Responsible)](https://github.com/orgs/kubernetes/projects/80/views/19) + shows all open issues and PRs, grouped by the Release Signal team member that is responsible for them +- [Issues](https://github.com/orgs/kubernetes/projects/80/views/12) shows all open issues for the current milestone +- [PR](https://github.com/orgs/kubernetes/projects/80/views/13) shows all open PRs for the current milestone +- [Release Blocker](https://github.com/orgs/kubernetes/projects/80/views/7) shows all issues and PRs that are marked as release + blockers +- [By Priority](https://github.com/orgs/kubernetes/projects/80/views/6) shows all open issues and PRs, grouped by priority +- [ALL](https://github.com/orgs/kubernetes/projects/80/views/10) shows all issues and PRs on the board + +#### Setting up the Bug Triage Project Board + +At the beginning of the cycle, the Release Signal Lead should prepare the bug triage board for the ongoing release cycle. The +following steps should be taken: + +1. Edit bug triage board name for current cycle, e.g. `[sig-release] 1.xx bug-triage` +2. Update the milestone for the periodic prow job. [Example PR from 1.28](https://github.com/kubernetes/test-infra/pull/29527) +3. Edit the [Responsible](https://github.com/orgs/kubernetes/projects/80/settings/fields/2845019) field and add the new Release Signal + team members +4. Update the milestone filter to `milestone:v1.xx` in all relevant views. You can do this by editing the filter and then + clicking `Save` +5. Set the `Status` field to `Pending inclusion` value for all open issues and PRs targeting the current milestone to indicate + that no one is responsible yet at the beginning of the cycle. Later, any Release Signal member picking up the issue/PR should set + it to `Tracked`. + diff --git a/release-team/role-handbooks/release-team-lead/README.md b/release-team/role-handbooks/release-team-lead/README.md index b3d657d23c7..8095bafe23d 100644 --- a/release-team/role-handbooks/release-team-lead/README.md +++ b/release-team/role-handbooks/release-team-lead/README.md @@ -1,266 +1,266 @@ -# Release Team Lead <!-- omit in toc --> - -## Overview <!-- omit in toc --> - -The release team leader role is responsible for coordinating release activities, assembling the release team, taking ultimate accountability for all release tasks to be completed on time, and ensuring that a retrospective happens. The lead is also responsible for ensuring a successor is selected and trained for future release cycles. - -- [Authority and Responsibility](#authority-and-responsibility) -- [Prerequisites](#prerequisites) -- [Skills and Experience Required](#skills-and-experience-required) -- [Time Commitments](#time-commitments) -- [Choosing a Release Team](#choosing-a-release-team) - - [Lead Shadows](#lead-shadows) -- [Standards](#standards) - - [Mailing List Standards](#mailing-list-standards) -- [Release theme gifts](#release-theme-gifts) -- [Code Freeze](#code-freeze) -- [Working with the Release Team Calendar](#working-with-the-release-team-calendar) -- [Release Team Meeting Host Playbook](#release-team-meeting-host-playbook) - - [Requirements to host the meeting as Release Team Lead / Lead Shadow](#requirements-to-host-the-meeting-as-release-team-lead--lead-shadow) - - [Pre-Meeting](#pre-meeting) - - [Pre-Recording](#pre-recording) - - [During-Recording](#during-recording) - - [Post-Recording](#post-recording) -- [Media and Webinar](#media-and-webinar) - - [Media Interviews](#media-interviews) - - [Webinar](#webinar) - -## Authority and Responsibility - -The Release Team Lead should be an arbiter of decisions, and not the primary decision-maker. A lead should constantly search for the best-qualified people or SIGs to guide the decision, not "go it alone", unless it is a very specific concern within the release process itself. When decisions are made they must be weighted in favor of community concerns over those of individuals or specific companies. Leads must also relinquish any favoritism for the company they work for. If there is a conflict of interest, the lead must recuse themselves from that decision. Above all, the release lead is a servant leader to the team and the community. - -## Prerequisites - -**Before we can grant access to new Release Team Leads, a [Release Team Lead onboarding issue][rtl-onboarding] _MUST_ be opened in this repo. Please take a moment to do that before executing the tasks contained in this handbook.** - -## Skills and Experience Required - -This role requires a tremendous amount of experience with the Kubernetes community, code layout, ecosystem projects, organizational norms, governance, SIG structure, architecture, and release process. - -In addition to the [Release Team Lead selection criteria][lead-criteria] you are required to fulfill, there are some additional aspirations we have for a Release Team Lead. - -- The Release Team is a global volunteer group, as is the Kubernetes project, so the Lead must be prepared to schedule and attend meetings that may be very late or very early in their time zone, in order to include as many of the team as possible. -- Project management experience is highly desirable -- Strong written and verbal communications skills are required -- As the public face of the community during release time, you must do so with a very high level of professionalism -- Prior experience in release management is extremely helpful - -## Time Commitments - -Release Lead is a very time-consuming role, especially towards the end of the release cycle. Before you volunteer to be Release Lead, please make certain that your employer and your family are okay with you spending a lot of time on the release for the next four months. Here's a rough estimate of the time requirements by week: - -- Weeks 1-4: 6-12 hours a week -- Weeks 5-10: 6-12 hours a week -- Week after Code Freeze: Be prepared to spend a lot of time each day on release-related activities -- Weeks 11-15: 10 to 25 hours a week -- Release Day: Prepare to spend all day on release-related activities. Given the choice between working after-hours or weekends, and having the release be later than the initial target, delaying the release is preferred. - -Among the specific time commitments you have are: - -- SIG Release and Release Team meetings once a week during weeks 1-10. -- Burndown meetings three to five times a week during weeks 11-15. - -In addition to the absolute time commitment you make, you must also consider the relative burdens on yourself and your team when establishing meetings. This means scheduling meetings and release events compatible with global working hours and coordinating with a global set of team leads and shadows. -A few ways to accomplish this goal are as follows (but please feel free to implement and add your own solution): - -- Create a poll amongst your Leads as to their preferred meeting time -- Schedule duplicate meetings at alternate times (these can be run by Shadows in those time zones) -- Encourage delegation of reports and meetings to Shadows -- Vary the final weeks' burndown meeting times -- Work to maximize asynchronous communications and reduce face to face meetings to where absolutely required. -- Time sacrifices may be necessary at times and the Release Team Lead should endeavor to spread this so as not to focus any inconvenience on specific individuals or specific geographies, for example considering major global holidays and KubeCons when planning the release timeline while also making sure the project is correctly moving forward. - -Please lead by example and encourage everyone to work within their working hours as much as possible. - -## Choosing a Release Team - -One of your first and definitely most important duties as Release Lead is to ensure a Release Team is in place. - -Release Team selection should happen in accordance with the [Release Team selection process][selection]. - -### Lead Shadows - -Once you have selected your Lead Shadows, each Shadow should get assigned to support two teams. One should be a team they have previously led or have extensive experience in. The other will be a team they have had no exposure to prior. They will work closely with their subteams to provide timely support. This will make sure that they are well-rounded to step up to lead. - -In the event that a subteam loses a shadow, we might ask the paired Lead Shadow to step in as a backup Shadow. - -## Standards - -- The GitHub repository layout is: - - kubernetes/sig-release - - releases/release-x.y - - README.md (release schedule) - - release-notes-draft.md (consumed by the automated release process) - - release_team.md -- Short links are handled with [http://bit.ly](http://bit.ly). Each release should have the following documents (replacing XYY with the release version number minus dots): - - Retro doc: `http://bit.ly/k8sXYYretro` - - Release Schedule overview: `http://bit.ly/k8sXYY-release-info` - - Zoom link: `http://bit.ly/k8sXYY-zoom` - - Burndown/Meeting Minutes: `http://bit.ly/k8sXYY-burndown` - - Enhancements tracking spreadsheet: `http://bit.ly/k8sXYY-enhancement-tracking` - - Merged PRs with release notes: `http://bit.ly/k8sXYY-relnotes` - - Use the same conventions for additional documents -- Burndown meetings happen at 10AM Pacific Time, and you invite the Kubernetes Release calendar (`agst.us_b07popf7t4avmt4km7eq5tk5ao@group.calendar.google.com`) to them. Make sure to use UTC time for the meeting. -- Burndown communications happen on the [kubernetes-sig-release] mailing list. -- Enhancement exceptions are to be reviewed by the owning SIG and brought to the Release Team for assessment of risk, especially across the project -- General notification regarding the release should go to the [kubernetes-dev] and [kubernetes-sig-leads] lists, and this should automatically be captured into the [Kubernetes Discourse site][discourse]. -- All issues and PRs in the milestone are considered [release-blocking] until proven otherwise by the owning SIG. - - Issues and PRs are added to the milestone by members of the milestone-maintainers GitHub team, which primarily includes SIG leads. Review the [milestone-maintainers] page for full criteria for membership to that team. The Release Team Lead is responsible for adding certain members of the Release Team to the group, and should check with and prune prior Release Team members who are no longer active. - - Members of the Release Team should not be the primary contributors making the choice whether issues and PRs are in a milestone. This is the job of SIG Leads. However, the Release Team may apply milestones when doing housekeeping on tracked issues and PRs where the milestone label has clearly been forgotten. -- The Release Team Lead is responsible for updating the [burndown template] ahead of the release (changing the milestone in links and anything else requested during the retrospective) -- Release theme: There is no particular reason for this other than to have fun, and possibly provide a theme for Release Team gifts. As Release Team Lead, you get to pick a theme for the release. Release themes can be browsed over [k/sig-release/releases/release-v1.XX](https://github.com/kubernetes/sig-release/tree/master/releases). - -### Communications and Mailing List Standards - -Important communications and discussions should be posted in the Release Team -mailing list [kubernetes-release-team]. - -This list is owned by SIG Release and as such the SIG Release Chairs are owners -of it. -While SIG Release leads are owners of this list, the Release Team Lead and -Release Team Lead shadows will serve as managers of the list for the duration of the cycle. - -The Release Team Lead and Release Team Lead shadows should periodically go through -the Release Team mailing list and prune members from the last release who are -no longer part of the Release Team. -This should be done after shadows for the new release cycle have been chosen -but before sending invites to the new members. - -The membership criteria is as follows: -* All members of the Release Team must be part of the mailing list -* All members of the [Branch Management Team](https://github.com/kubernetes/sig-release/blob/master/release-managers.md#branch-managers) - must be part of the mailing list -* SIG Release Chairs must be part of the mailing list - -In addition to the mailing list, [SIG Contributor -Experience](https://github.com/kubernetes/community/tree/master/sig-contributor-experience), -particularly through the [SIG Contribex -Comms](https://github.com/kubernetes/community/blob/master/sig-contributor-experience/README.md#contributor-comms) -subproject, is responsible for the social media accounts of the project: while there is some degree -of automation in terms of broadcasting updates to the official blogs, there are circumstances where -a more direct collaboration is useful. With that in mind, it's recommended that the Lead introduces -themselves in the [sig-contribex-comms Slack -channel](https://kubernetes.slack.com/archives/C03KT3SUJ20) during the start of the cycle so that -the team can be ready to assist when needed. - -## Release theme gifts - -You cannot start too early on this! - -Once you have a release theme, there is a budget for you to create a release team gift as a thank you for each of your hard working team members. -This gift traditionally has been a t-shirt with a fun design of your choice and creation that relates to the release theme. Email [projects@cncf.io](mailto:projects@cncf.io) to kick the process off once you have a design and a list of all the t-shirt sizes required. The CNCF can also provide stickers of the release theme/logo, if explicitly requested. - -## Code Freeze -With code exception in effect, you will likely have to assemble decision makers on specific pending PRs to assess whether the risk of inclusion is acceptable or not. Remember this is not you making a decision, it’s you helping SIGs follow the process, and ensuring there’s consensus. In the event of a contentious PR, you should err on the side of risk aversion. In extreme cases, you can defer to the steering committee, but that is extremely unlikely. - -Depending on the number of exceptions code freeze will be a **very busy time**. - -**With Code Freeze in effect** -- Clear milestones and labels from feature PRs in k/k -- Wait for exception requests and bring them to `#sig-release` -- Update exception requests in the enhancements project board view `Code Freeze exceptions` -- Broadly discuss exception requests in the community - -**To triage a single exception request follow the following guidelines:** -1. Open a slack thread in `#sig-release` to open the discussion. -Example message: - -```md -`@exception-request-author` filed an exception request for [KEP: `name-of-the-kep`](`https://github.com/kubernetes/enhancements/issues/XXX`). This thread is intended for the discussion of this request ([criteria](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md#exception-criteria)). PRs: [`PR-NUMBER`](`https://github.com/kubernetes/kubernetes/pull/PR-NUMBER`) -cc @release-team-leads -``` - -2. Collect input from responsible sig-leads and require ask for a green light (if multiple sigs are involved reach out to all!) -3. Approved exception requests must be merged prior to the rc.0 cut; therefore, do not extend the deadline for an exception request if its after the rc.0 cut! -4. Give enough time to get consensus -5. If the exception request got accepted add milestone and labels back to the KEP and related PRs -6. Communicate your decision and explain it thoroughly - -## Working with the Release Team Calendar - -To get access to the [release team calendar](https://calendar.google.com/calendar/embed?src=kipmnllvl17vl9m98jen6ujcrs%40group.calendar.google.com) reach out to a SIG Release tech lead or chair. -It's useful to add major events of the release cycle to the calendar e.g. Enhancements Freeze, Code Freeze and Test Freeze. - -It is also useful to add estimated release cut dates to the calendar e.g. 1.XX.0-alpha.1. Cuts are typically scheduled for -Wednesdays, but can be moved to a different day if needed or based on the Branch Manager's availability. - -**Additional tips:** -- Add a calendar entry for the time period before Enhancements Freeze with the title [1.xx] Enhancements Freeze coming on HH:mm PDT Month Day, Year -- When creating Google calendar entries, delete the Google Meet link which is created by default -- Be aware of the time zone when creating Google calendar entries as it will default to the last time zone used to create the last calendar entry -- If you get the "Message blocked" response after creating a calendar invitation, don't worry the invitation will be sent anyway. The reason why this message is generated is various, for example, the change of employers, the change of company DNS can lead to this. -- You can use [everytimezone.com](https://everytimezone.com/) or a similar tool to communicate deadlines easier - ---- - -## Release Team Meeting Host Playbook - -Release Team meetings are held to coordinate and discuss release-related activities. The Release Lead and Lead Shadows host Release Team meetings throughout the release cycle. -The following playbook can be used for reference to structure the meeting, you don't need to stick step by step (word by word), it should give guidance how a meeting usually is structured. - -### Requirements to host the meeting as Release Team Lead / Lead Shadow -1. Install Zoom and check your settings (especially the audio) -2. Make sure to get the **host key** from the Emeritus Adviser or Release Lead , otherwise you wont be able to claim host share the screen and start the recording - -### Pre-Meeting -1. Add a new blank agenda entry to the meeting notes by copying the template and editing the details accordingly. -2. Announce the release team meeting about an hour before in the sig-release slack channel. - -```txt -Hi folks! The release meeting takes place 1 hour from now -Links: -* Agenda & Minutes: https://bit.ly/k8s125-releasemtg -* Zoom Link: https://zoom.us/j/406805785?pwd=elQ1aVc0THZ, passcode 77777 - -If anyone has anything they’d like to discuss, please add to the notes. -``` - -### Pre-Recording -1. *Slack reminder (thread)* **"The meeting start now!"** -2. *join the meeting* -3. *turn on the camera* -4. *say hello to everyone* **"Hello all, let's wait a few minutes for everyone to join"** -5. *post the meeting notes to the meeting chat* -6. *claim host* (you can claim host by opening the attendees window and clicking claim host and inserting the host key) - -***wait until 3 minutes past*** - -7. *post the meeting notes link to the meeting chat* **"I posted the meeting notes link to chat, please add yourself to the attendees list, thank you!"** -8. **"Since it is now 3 minutes past, we will get started"** -9. **"If you rather not get recorded, you can now turn off your video"** -10. *open meeting notes and share screen* (NOTE: on Linux you might need to share the entire screen, a single window does not work sometimes) - -### During-Recording -1. *start recording* record to the cloud, the automation will automatically upload the recording to YouTube. -2. *say hello to everyone* **"Hello everyone, my name is 'Alice' and I will be the host for this Kubernetes 'X.XX' release team meeting. Today is 'May' the '4th' and we are in week 'X' of the release cycle.** -3. *code of conduct* **"Please be aware that this is a Kubernetes community meeting which falls under the Kubernetes code of conduct, which can be summarized to be excellent to each other, thank you all!"** -4. *recording warning* **"This meeting is recorded and will be publicly posted to YouTube so please be mindful what you say is being recorded."** -5. *open discussion items*: If something is on the list, you can read it out loud and wait for the person to respond. If there is nothing on the open discussion list, you can say something like: **"There is nothing in the open discussion section in the meeting notes. Is there anything to discuss before we get into the team updates?"** wait a few seconds - **"Okay, let's move on"** -6. *team updates*: **"Lets start with the team updates"** Call the person giving the update and wait for the update. Ask if there are any comments or questions for the team. If no one from the team gives the update, then you can review the last update given in a previous meeting, read it aloud, and then move to the next team. - -### Post-Recording -1. *Off record discussions* **"I stopped the recording, is there anything you like to discuss off record?"** wait a few seconds -2. *Thank all for joining the meeting* **"Thank you all again for joining the meeting, see you in the next one!"** - -## Media and Webinar -Towards the end of the release, you will work with the Comms lead and a CNCF staff to schedule press interviews and the CNCF webinar. - -### Media Interviews -You will be asked to provide availabilities for interviews which could end up being articles or podcasts. You can expect 5-10 engagements per release. Preparing 2-3 major themes that you can talk in-depth about, any KEPs you are excited about, and any anecdotes about the release have been helpful to leads in the past. - -### Webinar -After the release, the CNCF will schedule an official webinar that you, Enhancements Lead and Comms Lead will host together. The webinar will go over a [slide deck](https://docs.google.com/presentation/d/1Dbc-Vl7BwU4KeZ2_5_y9Tl0-jYRasDVvUk4b6FUEeLE/edit?usp=sharing) that summarizes the release and goes over all Major Themes. - ---- - -[discourse]: https://discuss.kubernetes.io/ -[kubernetes-release-team]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[kubernetes-sig-leads]: https://groups.google.com/a/kubernetes.io/g/leads -[kubernetes-dev]: https://groups.google.com/a/kubernetes.io/g/dev -[lead-criteria]: /release-team/release-team-selection.md#release-team-lead -[milestone-maintainers]: /release-team/README.md#milestone-maintainers -[release-blocking]: /release-blocking-jobs.md -[rtl-onboarding]: https://github.com/kubernetes/sig-release/issues/new?assignees=&labels=sig%2Frelease%2C+area%2Frelease-eng%2C+area%2Frelease-team&template=release-team-lead-progress.md&title=[1.XX]+Release+Team+Lead+Cycle+Progress - -[selection]: /release-team/release-team-selection.md +# Release Team Lead <!-- omit in toc --> + +## Overview <!-- omit in toc --> + +The release team leader role is responsible for coordinating release activities, assembling the release team, taking ultimate accountability for all release tasks to be completed on time, and ensuring that a retrospective happens. The lead is also responsible for ensuring a successor is selected and trained for future release cycles. + +- [Authority and Responsibility](#authority-and-responsibility) +- [Prerequisites](#prerequisites) +- [Skills and Experience Required](#skills-and-experience-required) +- [Time Commitments](#time-commitments) +- [Choosing a Release Team](#choosing-a-release-team) + - [Lead Shadows](#lead-shadows) +- [Standards](#standards) + - [Mailing List Standards](#mailing-list-standards) +- [Release theme gifts](#release-theme-gifts) +- [Code Freeze](#code-freeze) +- [Working with the Release Team Calendar](#working-with-the-release-team-calendar) +- [Release Team Meeting Host Playbook](#release-team-meeting-host-playbook) + - [Requirements to host the meeting as Release Team Lead / Lead Shadow](#requirements-to-host-the-meeting-as-release-team-lead--lead-shadow) + - [Pre-Meeting](#pre-meeting) + - [Pre-Recording](#pre-recording) + - [During-Recording](#during-recording) + - [Post-Recording](#post-recording) +- [Media and Webinar](#media-and-webinar) + - [Media Interviews](#media-interviews) + - [Webinar](#webinar) + +## Authority and Responsibility + +The Release Team Lead should be an arbiter of decisions, and not the primary decision-maker. A lead should constantly search for the best-qualified people or SIGs to guide the decision, not "go it alone", unless it is a very specific concern within the release process itself. When decisions are made they must be weighted in favor of community concerns over those of individuals or specific companies. Leads must also relinquish any favoritism for the company they work for. If there is a conflict of interest, the lead must recuse themselves from that decision. Above all, the release lead is a servant leader to the team and the community. + +## Prerequisites + +**Before we can grant access to new Release Team Leads, a [Release Team Lead onboarding issue][rtl-onboarding] _MUST_ be opened in this repo. Please take a moment to do that before executing the tasks contained in this handbook.** + +## Skills and Experience Required + +This role requires a tremendous amount of experience with the Kubernetes community, code layout, ecosystem projects, organizational norms, governance, SIG structure, architecture, and release process. + +In addition to the [Release Team Lead selection criteria][lead-criteria] you are required to fulfill, there are some additional aspirations we have for a Release Team Lead. + +- The Release Team is a global volunteer group, as is the Kubernetes project, so the Lead must be prepared to schedule and attend meetings that may be very late or very early in their time zone, in order to include as many of the team as possible. +- Project management experience is highly desirable +- Strong written and verbal communications skills are required +- As the public face of the community during release time, you must do so with a very high level of professionalism +- Prior experience in release management is extremely helpful + +## Time Commitments + +Release Lead is a very time-consuming role, especially towards the end of the release cycle. Before you volunteer to be Release Lead, please make certain that your employer and your family are okay with you spending a lot of time on the release for the next four months. Here's a rough estimate of the time requirements by week: + +- Weeks 1-4: 6-12 hours a week +- Weeks 5-10: 6-12 hours a week +- Week after Code Freeze: Be prepared to spend a lot of time each day on release-related activities +- Weeks 11-15: 10 to 25 hours a week +- Release Day: Prepare to spend all day on release-related activities. Given the choice between working after-hours or weekends, and having the release be later than the initial target, delaying the release is preferred. + +Among the specific time commitments you have are: + +- SIG Release and Release Team meetings once a week during weeks 1-10. +- Burndown meetings three to five times a week during weeks 11-15. + +In addition to the absolute time commitment you make, you must also consider the relative burdens on yourself and your team when establishing meetings. This means scheduling meetings and release events compatible with global working hours and coordinating with a global set of team leads and shadows. +A few ways to accomplish this goal are as follows (but please feel free to implement and add your own solution): + +- Create a poll amongst your Leads as to their preferred meeting time +- Schedule duplicate meetings at alternate times (these can be run by Shadows in those time zones) +- Encourage delegation of reports and meetings to Shadows +- Vary the final weeks' burndown meeting times +- Work to maximize asynchronous communications and reduce face to face meetings to where absolutely required. +- Time sacrifices may be necessary at times and the Release Team Lead should endeavor to spread this so as not to focus any inconvenience on specific individuals or specific geographies, for example considering major global holidays and KubeCons when planning the release timeline while also making sure the project is correctly moving forward. + +Please lead by example and encourage everyone to work within their working hours as much as possible. + +## Choosing a Release Team + +One of your first and definitely most important duties as Release Lead is to ensure a Release Team is in place. + +Release Team selection should happen in accordance with the [Release Team selection process][selection]. + +### Lead Shadows + +Once you have selected your Lead Shadows, each Shadow should get assigned to support two teams. One should be a team they have previously led or have extensive experience in. The other will be a team they have had no exposure to prior. They will work closely with their subteams to provide timely support. This will make sure that they are well-rounded to step up to lead. + +In the event that a subteam loses a shadow, we might ask the paired Lead Shadow to step in as a backup Shadow. + +## Standards + +- The GitHub repository layout is: + - kubernetes/sig-release + - releases/release-x.y + - README.md (release schedule) + - release-notes-draft.md (consumed by the automated release process) + - release_team.md +- Short links are handled with [http://bit.ly](http://bit.ly). Each release should have the following documents (replacing XYY with the release version number minus dots): + - Retro doc: `http://bit.ly/k8sXYYretro` + - Release Schedule overview: `http://bit.ly/k8sXYY-release-info` + - Zoom link: `http://bit.ly/k8sXYY-zoom` + - Burndown/Meeting Minutes: `http://bit.ly/k8sXYY-burndown` + - Enhancements tracking spreadsheet: `http://bit.ly/k8sXYY-enhancement-tracking` + - Merged PRs with release notes: `http://bit.ly/k8sXYY-relnotes` + - Use the same conventions for additional documents +- Burndown meetings happen at 10AM Pacific Time, and you invite the Kubernetes Release calendar (`agst.us_b07popf7t4avmt4km7eq5tk5ao@group.calendar.google.com`) to them. Make sure to use UTC time for the meeting. +- Burndown communications happen on the [kubernetes-sig-release] mailing list. +- Enhancement exceptions are to be reviewed by the owning SIG and brought to the Release Team for assessment of risk, especially across the project +- General notification regarding the release should go to the [kubernetes-dev] and [kubernetes-sig-leads] lists, and this should automatically be captured into the [Kubernetes Discourse site][discourse]. +- All issues and PRs in the milestone are considered [release-blocking] until proven otherwise by the owning SIG. + - Issues and PRs are added to the milestone by members of the milestone-maintainers GitHub team, which primarily includes SIG leads. Review the [milestone-maintainers] page for full criteria for membership to that team. The Release Team Lead is responsible for adding certain members of the Release Team to the group, and should check with and prune prior Release Team members who are no longer active. + - Members of the Release Team should not be the primary contributors making the choice whether issues and PRs are in a milestone. This is the job of SIG Leads. However, the Release Team may apply milestones when doing housekeeping on tracked issues and PRs where the milestone label has clearly been forgotten. +- The Release Team Lead is responsible for updating the [burndown template] ahead of the release (changing the milestone in links and anything else requested during the retrospective) +- Release theme: There is no particular reason for this other than to have fun, and possibly provide a theme for Release Team gifts. As Release Team Lead, you get to pick a theme for the release. Release themes can be browsed over [k/sig-release/releases/release-v1.XX](https://github.com/kubernetes/sig-release/tree/master/releases). + +### Communications and Mailing List Standards + +Important communications and discussions should be posted in the Release Team +mailing list [kubernetes-release-team]. + +This list is owned by SIG Release and as such the SIG Release Chairs are owners +of it. +While SIG Release leads are owners of this list, the Release Team Lead and +Release Team Lead shadows will serve as managers of the list for the duration of the cycle. + +The Release Team Lead and Release Team Lead shadows should periodically go through +the Release Team mailing list and prune members from the last release who are +no longer part of the Release Team. +This should be done after shadows for the new release cycle have been chosen +but before sending invites to the new members. + +The membership criteria is as follows: +* All members of the Release Team must be part of the mailing list +* All members of the [Branch Management Team](https://github.com/kubernetes/sig-release/blob/master/release-managers.md#branch-managers) + must be part of the mailing list +* SIG Release Chairs must be part of the mailing list + +In addition to the mailing list, [SIG Contributor +Experience](https://github.com/kubernetes/community/tree/master/sig-contributor-experience), +particularly through the [SIG Contribex +Comms](https://github.com/kubernetes/community/blob/master/sig-contributor-experience/README.md#contributor-comms) +subproject, is responsible for the social media accounts of the project: while there is some degree +of automation in terms of broadcasting updates to the official blogs, there are circumstances where +a more direct collaboration is useful. With that in mind, it's recommended that the Lead introduces +themselves in the [sig-contribex-comms Slack +channel](https://kubernetes.slack.com/archives/C03KT3SUJ20) during the start of the cycle so that +the team can be ready to assist when needed. + +## Release theme gifts + +You cannot start too early on this! + +Once you have a release theme, there is a budget for you to create a release team gift as a thank you for each of your hard working team members. +This gift traditionally has been a t-shirt with a fun design of your choice and creation that relates to the release theme. Email [projects@cncf.io](mailto:projects@cncf.io) to kick the process off once you have a design and a list of all the t-shirt sizes required. The CNCF can also provide stickers of the release theme/logo, if explicitly requested. + +## Code Freeze +With code exception in effect, you will likely have to assemble decision makers on specific pending PRs to assess whether the risk of inclusion is acceptable or not. Remember this is not you making a decision, it’s you helping SIGs follow the process, and ensuring there’s consensus. In the event of a contentious PR, you should err on the side of risk aversion. In extreme cases, you can defer to the steering committee, but that is extremely unlikely. + +Depending on the number of exceptions code freeze will be a **very busy time**. + +**With Code Freeze in effect** +- Clear milestones and labels from feature PRs in k/k +- Wait for exception requests and bring them to `#sig-release` +- Update exception requests in the enhancements project board view `Code Freeze exceptions` +- Broadly discuss exception requests in the community + +**To triage a single exception request follow the following guidelines:** +1. Open a slack thread in `#sig-release` to open the discussion. +Example message: + +```md +`@exception-request-author` filed an exception request for [KEP: `name-of-the-kep`](`https://github.com/kubernetes/enhancements/issues/XXX`). This thread is intended for the discussion of this request ([criteria](https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md#exception-criteria)). PRs: [`PR-NUMBER`](`https://github.com/kubernetes/kubernetes/pull/PR-NUMBER`) +cc @release-team-leads +``` + +2. Collect input from responsible sig-leads and require ask for a green light (if multiple sigs are involved reach out to all!) +3. Approved exception requests must be merged prior to the rc.0 cut; therefore, do not extend the deadline for an exception request if its after the rc.0 cut! +4. Give enough time to get consensus +5. If the exception request got accepted add milestone and labels back to the KEP and related PRs +6. Communicate your decision and explain it thoroughly + +## Working with the Release Team Calendar + +To get access to the [release team calendar](https://calendar.google.com/calendar/embed?src=kipmnllvl17vl9m98jen6ujcrs%40group.calendar.google.com) reach out to a SIG Release tech lead or chair. +It's useful to add major events of the release cycle to the calendar e.g. Enhancements Freeze, Code Freeze and Test Freeze. + +It is also useful to add estimated release cut dates to the calendar e.g. 1.XX.0-alpha.1. Cuts are typically scheduled for +Wednesdays, but can be moved to a different day if needed or based on the Branch Manager's availability. + +**Additional tips:** +- Add a calendar entry for the time period before Enhancements Freeze with the title [1.xx] Enhancements Freeze coming on HH:mm PDT Month Day, Year +- When creating Google calendar entries, delete the Google Meet link which is created by default +- Be aware of the time zone when creating Google calendar entries as it will default to the last time zone used to create the last calendar entry +- If you get the "Message blocked" response after creating a calendar invitation, don't worry the invitation will be sent anyway. The reason why this message is generated is various, for example, the change of employers, the change of company DNS can lead to this. +- You can use [everytimezone.com](https://everytimezone.com/) or a similar tool to communicate deadlines easier + +--- + +## Release Team Meeting Host Playbook + +Release Team meetings are held to coordinate and discuss release-related activities. The Release Lead and Lead Shadows host Release Team meetings throughout the release cycle. +The following playbook can be used for reference to structure the meeting, you don't need to stick step by step (word by word), it should give guidance how a meeting usually is structured. + +### Requirements to host the meeting as Release Team Lead / Lead Shadow +1. Install Zoom and check your settings (especially the audio) +2. Make sure to get the **host key** from the Emeritus Adviser or Release Lead , otherwise you wont be able to claim host share the screen and start the recording + +### Pre-Meeting +1. Add a new blank agenda entry to the meeting notes by copying the template and editing the details accordingly. +2. Announce the release team meeting about an hour before in the sig-release slack channel. + +```txt +Hi folks! The release meeting takes place 1 hour from now +Links: +* Agenda & Minutes: https://bit.ly/k8s125-releasemtg +* Zoom Link: https://zoom.us/j/406805785?pwd=elQ1aVc0THZ, passcode 77777 + +If anyone has anything they’d like to discuss, please add to the notes. +``` + +### Pre-Recording +1. *Slack reminder (thread)* **"The meeting start now!"** +2. *join the meeting* +3. *turn on the camera* +4. *say hello to everyone* **"Hello all, let's wait a few minutes for everyone to join"** +5. *post the meeting notes to the meeting chat* +6. *claim host* (you can claim host by opening the attendees window and clicking claim host and inserting the host key) + +***wait until 3 minutes past*** + +7. *post the meeting notes link to the meeting chat* **"I posted the meeting notes link to chat, please add yourself to the attendees list, thank you!"** +8. **"Since it is now 3 minutes past, we will get started"** +9. **"If you rather not get recorded, you can now turn off your video"** +10. *open meeting notes and share screen* (NOTE: on Linux you might need to share the entire screen, a single window does not work sometimes) + +### During-Recording +1. *start recording* record to the cloud, the automation will automatically upload the recording to YouTube. +2. *say hello to everyone* **"Hello everyone, my name is 'Alice' and I will be the host for this Kubernetes 'X.XX' release team meeting. Today is 'May' the '4th' and we are in week 'X' of the release cycle.** +3. *code of conduct* **"Please be aware that this is a Kubernetes community meeting which falls under the Kubernetes code of conduct, which can be summarized to be excellent to each other, thank you all!"** +4. *recording warning* **"This meeting is recorded and will be publicly posted to YouTube so please be mindful what you say is being recorded."** +5. *open discussion items*: If something is on the list, you can read it out loud and wait for the person to respond. If there is nothing on the open discussion list, you can say something like: **"There is nothing in the open discussion section in the meeting notes. Is there anything to discuss before we get into the team updates?"** wait a few seconds - **"Okay, let's move on"** +6. *team updates*: **"Lets start with the team updates"** Call the person giving the update and wait for the update. Ask if there are any comments or questions for the team. If no one from the team gives the update, then you can review the last update given in a previous meeting, read it aloud, and then move to the next team. + +### Post-Recording +1. *Off record discussions* **"I stopped the recording, is there anything you like to discuss off record?"** wait a few seconds +2. *Thank all for joining the meeting* **"Thank you all again for joining the meeting, see you in the next one!"** + +## Media and Webinar +Towards the end of the release, you will work with the Comms lead and a CNCF staff to schedule press interviews and the CNCF webinar. + +### Media Interviews +You will be asked to provide availabilities for interviews which could end up being articles or podcasts. You can expect 5-10 engagements per release. Preparing 2-3 major themes that you can talk in-depth about, any KEPs you are excited about, and any anecdotes about the release have been helpful to leads in the past. + +### Webinar +After the release, the CNCF will schedule an official webinar that you, Enhancements Lead and Comms Lead will host together. The webinar will go over a [slide deck](https://docs.google.com/presentation/d/1Dbc-Vl7BwU4KeZ2_5_y9Tl0-jYRasDVvUk4b6FUEeLE/edit?usp=sharing) that summarizes the release and goes over all Major Themes. + +--- + +[discourse]: https://discuss.kubernetes.io/ +[kubernetes-release-team]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[kubernetes-sig-leads]: https://groups.google.com/a/kubernetes.io/g/leads +[kubernetes-dev]: https://groups.google.com/a/kubernetes.io/g/dev +[lead-criteria]: /release-team/release-team-selection.md#release-team-lead +[milestone-maintainers]: /release-team/README.md#milestone-maintainers +[release-blocking]: /release-blocking-jobs.md +[rtl-onboarding]: https://github.com/kubernetes/sig-release/issues/new?assignees=&labels=sig%2Frelease%2C+area%2Frelease-eng%2C+area%2Frelease-team&template=release-team-lead-progress.md&title=[1.XX]+Release+Team+Lead+Cycle+Progress + +[selection]: /release-team/release-team-selection.md diff --git a/release-team/shadows.md b/release-team/shadows.md index 9e7ba2540f3..092dfa4fa3a 100644 --- a/release-team/shadows.md +++ b/release-team/shadows.md @@ -1,129 +1,129 @@ -# Release Team Shadows - -The Release Team recruits a number of apprentices for each release role, in order to train new release team leads, handle tasks that each lead may not be able to cover, share knowledge about the release process, and help contributors broaden their areas of knowledge and participation. These apprentices are called "Shadows" on the release team, and are equivalent to similar trainee positions on other teams, such as the Release Management Assistants. - -The Shadow system is an apprenticeship model, like those used by union tradespeople. The idea is that Shadows learn by doing, while in the process taking load off the leads and improving the release. After unplanned developments, they may even end up taking over for their lead. - -The following guide is for both Release role leads and shadows so that everyone knows what shadows are expected to do and when they are expected to do it. In cases where the guide says "you," it is addressing the Shadow or potential Shadow. - -## Asking to be a Shadow - -In the last week of the prior release cycle, or the first week of the new one, the Emeritus Advisor and Release Lead will post a sign-up form for people who want to be Shadows. Potential Shadows should fill out this form, which has a number of questions about their interests, availability, and experience; this is to judge who will be the most suitable and balance the team. - -Please read the [Role Handbooks](/release-team/role-handbooks) for those roles before filling out the form. Some handbooks will have a specific Shadow section that addresses what background Shadows are expected to have and what tasks they do. - -Shadow is an apprenticeship position, so candidates are not expected to be that experienced in contributing to Kubernetes or working on releases. - -During several release cycles, there have been three or more applicants for each Shadow spot, so many qualified candidates were turned down and asked to re-apply to a later team. Role Leads, the EA and the Release Lead will choose Shadows based on a combination of suitability, availability, skills coverage, diversity, and compatible or covering time zones. - -## Week 1 - -The first week should be used to get Shadows set up with all of the "paperwork" they need in order to participate fully in the Release Team: - -* Sign the [CNCF CLA](https://github.com/kubernetes/community/blob/master/CLA.md), which they need for all contributions. -* Apply to be an Org Member if they are not already (see below). -* Join the [#sig-release slack channel](https://slack.k8s.io/). -* Get added to the `kubernetes-release-team` group by the Release Lead. -* Join the [sig-release](https://groups.google.com/forum/#!forum/kubernetes-sig-release) and [release-team](https://groups.google.com/a/kubernetes.io/g/release-team) Google Groups and calendars. For the release-team group, you need to wait until a lead adds you to the list to get access. -* Add all contact information to their Release Team's contact sheet. -* Get invited to the weekly Release Team Meeting and add the [sig-release calendar](https://calendar.google.com/calendar/embed?src=kipmnllvl17vl9m98jen6ujcrs%40group.calendar.google.com) to their calendar -* Get added to the [kubernetes-release-team-shadows](https://groups.google.com/a/kubernetes.io/g/release-team-shadows) Google Group by the Emeritus Advisor. - -Becoming a Release Team Shadow is considered sufficient contribution to become a Kubernetes Org Member, and membership is needed for several tasks, especially having the Github bots obey the Shadow's commands. As such, each Shadow who is not already an org member should [apply to become one](https://github.com/kubernetes/community/blob/master/community-membership.md#member) with their mentoring role lead, the Release Lead, and/or the Emeritus Advisor as their sponsors. - -Most times, groups of shadows and their lead for a specific role will have a meeting during the first two weeks. Not all do, though, since sometimes there's a considerable spread of time zones, and some leads prefer to work asynchronously. - -## Weeks 2-8 - -For the "main" part of the development cycle, new shadows should be learning their roles and starting to take on tasks for their roles. This may include: - -* Attending the weekly Release Team meeting, and possibly delivering the report for their Role for the week. -* Checking on daily statuses of things in their roles and recording them in documents shared by the team. -* Contacting and sending reminders to SIGs. -* Reviewing and resolving open issues in sig-release and test-infra that affect their roles, especially ones left over from last release. -* Other tasks as defined in the [Role Handbook](https://github.com/kubernetes/sig-release/tree/master/release-team). - -For a couple roles, particularly Enhancements, this first period is actually the busiest period of the release, so there will be a lot for the Shadows to do. Consult the Role Handbook for the role to find out. For other roles, the shadows for a role should expect to be in communication with their Lead and each other a few times a week, via Slack, shared documents, and Github issues/project boards. - -More experienced shadows (those returning to the Release Team) may be starting work on some project to improve the efficiency or effectiveness of their roles. Early in the release cycle is really the best time to work on longstanding issues. See Experienced Shadow Projects below. - -## Weeks 9-13 - -The final weeks of the release are the busiest for most roles; Shadows should expect to double the amount of time they put in during this period. General tasks here include: - -* Attending burndown meetings. Since there will be 9-12 burndown meetings during the last weeks, each Shadow should take a turn preparing and delivering the role report for the burndown. Shadows are also there to cover if the Role Lead can't make it to one of the meetings. -* Otherwise taking responsibility for the Role if the Lead is unavailable for a few days during burndown and Code Freeze. -* Checking on, and updating, release status tracking more than once a day, especially if you have several different time zones in your team. -* Following up on issues/failures/missing docs/exceptions etc. with their owners or SIGs. During Code Freeze problems often need rapid attention, and your team should divide or rotate communication and follow-up duties. Sometimes it makes sense for a Shadow to be dedicated to tracking one particularly difficult task, such as a problematic PR or a mysterious blocking test failure. - -Each Role team should be in daily, or more frequent, communication during the last three weeks, generally via Slack and Github comments. - -Shadows who have been working on improvement projects should generally expect to wrap them up before Code Freeze, unless their help really isn't needed with the general Role duties. - -Towards the end of the cycle, Shadows should think about whether or not they want to go on in their Role, either as Lead or Shadowing again. See After Shadowing below. - -## Shadow Improvement Projects - -Sometimes contributors return to the Release Team to work on some longstanding improvement project, like better tracking boards or improved automation. Even new Release Team members with technical experience of the Kubernetes infrastructure have done this. In this case, the Shadow spends most of the release cycle working on the improvement project instead of, or in addition, to their usual duties. - -The idea is to make a lasting efficiency improvement, while leaving the Lead free to deal with current release issues. Much of the existing Release Team infrastructure originated this way, and the ultimate aspiration of SIG-Release would be to automate away 80% of the work of the Release Team. - -Generally, if you're going to do an improvement project, you need to have a pretty good idea of what you want to do by the 2nd week of the release cycle. You'll also need a knowledge of test-infra, docs/website, or some other relevant technical area where you're going to implement the improvement. Finally, you'll want the agreement of your Role Lead and the Release Lead that the improvement you plan to implement (and how you want to implement it) is a good idea. - -## After Shadowing: What's Next? - -Shadowing is an apprenticeship, and as such is intended to be a stepping-stone to greater Kubernetes contributions in the future. Towards the end of the release cycle, your Role Lead and the Emeritus Advisor (EA) will chat with you about what you want to do next. - -Here's the common paths for Shadows after the release cycle ends: - -**Shadowing Again**: if you didn't really get accustomed to the Role, possibly because personal issues interrupted Shadowing, you might want to Shadow the Role a second time. Other Shadows discover that the first Role they tried isn't for them, and they want to shadow a different one so that they can try that one out. In either case, you'll re-apply to Shadow when the next cycle opens, noting your experience in the application form. - -**Becoming Role Lead**: The main goal of the Shadow program is to train new Leads. So, if you are ready to take on Leading the Role in the succeeding cycle, then let your Role Lead know. They will be selecting a nominee or nominees to recommend to the incoming Release Lead, who has the final decision. You can also skip a release cycle, and volunteer to become Role Lead in a later release cycle, in which case you should contact the incoming Release Lead as soon as they are announced. There is usually an issue in the SIG-Release repository called "Assemble Kubernetes X.YY Release Team" where you can comment with your interest in a Role. - -**Another role in SIG-Release**: some Shadows go on to do something else within SIG-Release. For example, they may join the Branch Managers as an Release Management Associate (RMA), or they may decide to take on a release-related project that's not directly tied to the release cycle. If you are interested in the Branch Managers, wait for them to announce their next recruitment cycle, or ask in the SIG-Release Slack channel. - -## Leaving the shadow program before the release cycle ended - -As a shadow, you have signed up for a release cycle to help the release team to ship the next Kubernetes version. -You may not be able to fulfill the entire “term” due to various possible reasons. -That's not a problem! -Each team onboards usually 4–5 shadows and builds redundancy with that. -If you like to leave the release team early, please notify your responsible team lead, the release lead and the EA about that. - -If the team lead observes over an extended period of time that one of the shadows is not participating, this should be communicated to the release lead and the EA and, after careful consideration, may result in the removal of the shadow from the release-team. -Note that this has not really happened before. -If you agree beforehand, it is no problem at all if you take some days of vacation or something else during the releases cycle and cannot support the community during this time. - -Especially the shadow roles are designed to get a feeling of how to work with the community and what the release team is like. -This kind of work may not be for everyone. -If you should leave because your experience wasn't good, please reach out to someone from the community (see [contributor-experience](https://github.com/kubernetes/community/tree/master/sig-contributor-experience#leadership)) over slack, so there is the opportunity for the release-team to improve. - -## Q&A - -*Q: I want to shadow, but I'm not able to work on Kubernetes during my workday. Can I still do this?* - -A: Yes. The time requirements for shadows are smaller and more flexible than they are for Role Leads. As long as you're clear about your time availability, then you should be able to shadow. Keep in mind, though, that you may need to have your boss's support to become a Lead for some Roles. - -*Q: I want to shadow, but I'll be unavailable for part of the release cycle. Is that OK?* - -A: Maybe; it depends on when it is, and which role. Put your availability limitations in the form, and the Role Lead will decide if your absence means that shadowing won't work. - -*Q: I've run into problems with Shadowing, who do I talk to?* - -A: if it's a problem with your schedule or the tasks you're assigned, you can simply ask your Role Lead. If you're having problems in your relationship with your Role Lead, then contact the Emeritus Advisor. If someone in the Release Team violates the Kubernetes Code of Conduct, then contact the CoC Committee *and* the EA. - -*Q: I'm a Role Lead and I'm having Shadow issues, who do I talk to?* - -A: Talk to the Emeritus Advisor. - -*Q: What if a Shadow needs to drop out?* - -A: This happens frequently; usually the Shadow is simply dropped from the roster. In some cases, particularly in the first two weeks of the release cycle, they may be replaced. - -*Q: What if the Role Lead can't continue, and one of the Shadows needs to take over?* - -A: The Release Lead, the EA, and the outgoing Role Lead (if possible) will discuss the matter and select one of the Shadows to become the new Role Lead. This is one of the reasons we have Shadows. - -*Q: How/When are Shadows selected?* - -A: The Release Leads work with the EA and are responsible for collecting shadow applications and selecting the Shadows. Generally this is one week into the release. [Relevant EA docs](./role-handbooks/emeritus-adviser#shadow-selection). +# Release Team Shadows + +The Release Team recruits a number of apprentices for each release role, in order to train new release team leads, handle tasks that each lead may not be able to cover, share knowledge about the release process, and help contributors broaden their areas of knowledge and participation. These apprentices are called "Shadows" on the release team, and are equivalent to similar trainee positions on other teams, such as the Release Management Assistants. + +The Shadow system is an apprenticeship model, like those used by union tradespeople. The idea is that Shadows learn by doing, while in the process taking load off the leads and improving the release. After unplanned developments, they may even end up taking over for their lead. + +The following guide is for both Release role leads and shadows so that everyone knows what shadows are expected to do and when they are expected to do it. In cases where the guide says "you," it is addressing the Shadow or potential Shadow. + +## Asking to be a Shadow + +In the last week of the prior release cycle, or the first week of the new one, the Emeritus Advisor and Release Lead will post a sign-up form for people who want to be Shadows. Potential Shadows should fill out this form, which has a number of questions about their interests, availability, and experience; this is to judge who will be the most suitable and balance the team. + +Please read the [Role Handbooks](/release-team/role-handbooks) for those roles before filling out the form. Some handbooks will have a specific Shadow section that addresses what background Shadows are expected to have and what tasks they do. + +Shadow is an apprenticeship position, so candidates are not expected to be that experienced in contributing to Kubernetes or working on releases. + +During several release cycles, there have been three or more applicants for each Shadow spot, so many qualified candidates were turned down and asked to re-apply to a later team. Role Leads, the EA and the Release Lead will choose Shadows based on a combination of suitability, availability, skills coverage, diversity, and compatible or covering time zones. + +## Week 1 + +The first week should be used to get Shadows set up with all of the "paperwork" they need in order to participate fully in the Release Team: + +* Sign the [CNCF CLA](https://github.com/kubernetes/community/blob/master/CLA.md), which they need for all contributions. +* Apply to be an Org Member if they are not already (see below). +* Join the [#sig-release slack channel](https://slack.k8s.io/). +* Get added to the `kubernetes-release-team` group by the Release Lead. +* Join the [sig-release](https://groups.google.com/forum/#!forum/kubernetes-sig-release) and [release-team](https://groups.google.com/a/kubernetes.io/g/release-team) Google Groups and calendars. For the release-team group, you need to wait until a lead adds you to the list to get access. +* Add all contact information to their Release Team's contact sheet. +* Get invited to the weekly Release Team Meeting and add the [sig-release calendar](https://calendar.google.com/calendar/embed?src=kipmnllvl17vl9m98jen6ujcrs%40group.calendar.google.com) to their calendar +* Get added to the [kubernetes-release-team-shadows](https://groups.google.com/a/kubernetes.io/g/release-team-shadows) Google Group by the Emeritus Advisor. + +Becoming a Release Team Shadow is considered sufficient contribution to become a Kubernetes Org Member, and membership is needed for several tasks, especially having the Github bots obey the Shadow's commands. As such, each Shadow who is not already an org member should [apply to become one](https://github.com/kubernetes/community/blob/master/community-membership.md#member) with their mentoring role lead, the Release Lead, and/or the Emeritus Advisor as their sponsors. + +Most times, groups of shadows and their lead for a specific role will have a meeting during the first two weeks. Not all do, though, since sometimes there's a considerable spread of time zones, and some leads prefer to work asynchronously. + +## Weeks 2-8 + +For the "main" part of the development cycle, new shadows should be learning their roles and starting to take on tasks for their roles. This may include: + +* Attending the weekly Release Team meeting, and possibly delivering the report for their Role for the week. +* Checking on daily statuses of things in their roles and recording them in documents shared by the team. +* Contacting and sending reminders to SIGs. +* Reviewing and resolving open issues in sig-release and test-infra that affect their roles, especially ones left over from last release. +* Other tasks as defined in the [Role Handbook](https://github.com/kubernetes/sig-release/tree/master/release-team). + +For a couple roles, particularly Enhancements, this first period is actually the busiest period of the release, so there will be a lot for the Shadows to do. Consult the Role Handbook for the role to find out. For other roles, the shadows for a role should expect to be in communication with their Lead and each other a few times a week, via Slack, shared documents, and Github issues/project boards. + +More experienced shadows (those returning to the Release Team) may be starting work on some project to improve the efficiency or effectiveness of their roles. Early in the release cycle is really the best time to work on longstanding issues. See Experienced Shadow Projects below. + +## Weeks 9-13 + +The final weeks of the release are the busiest for most roles; Shadows should expect to double the amount of time they put in during this period. General tasks here include: + +* Attending burndown meetings. Since there will be 9-12 burndown meetings during the last weeks, each Shadow should take a turn preparing and delivering the role report for the burndown. Shadows are also there to cover if the Role Lead can't make it to one of the meetings. +* Otherwise taking responsibility for the Role if the Lead is unavailable for a few days during burndown and Code Freeze. +* Checking on, and updating, release status tracking more than once a day, especially if you have several different time zones in your team. +* Following up on issues/failures/missing docs/exceptions etc. with their owners or SIGs. During Code Freeze problems often need rapid attention, and your team should divide or rotate communication and follow-up duties. Sometimes it makes sense for a Shadow to be dedicated to tracking one particularly difficult task, such as a problematic PR or a mysterious blocking test failure. + +Each Role team should be in daily, or more frequent, communication during the last three weeks, generally via Slack and Github comments. + +Shadows who have been working on improvement projects should generally expect to wrap them up before Code Freeze, unless their help really isn't needed with the general Role duties. + +Towards the end of the cycle, Shadows should think about whether or not they want to go on in their Role, either as Lead or Shadowing again. See After Shadowing below. + +## Shadow Improvement Projects + +Sometimes contributors return to the Release Team to work on some longstanding improvement project, like better tracking boards or improved automation. Even new Release Team members with technical experience of the Kubernetes infrastructure have done this. In this case, the Shadow spends most of the release cycle working on the improvement project instead of, or in addition, to their usual duties. + +The idea is to make a lasting efficiency improvement, while leaving the Lead free to deal with current release issues. Much of the existing Release Team infrastructure originated this way, and the ultimate aspiration of SIG-Release would be to automate away 80% of the work of the Release Team. + +Generally, if you're going to do an improvement project, you need to have a pretty good idea of what you want to do by the 2nd week of the release cycle. You'll also need a knowledge of test-infra, docs/website, or some other relevant technical area where you're going to implement the improvement. Finally, you'll want the agreement of your Role Lead and the Release Lead that the improvement you plan to implement (and how you want to implement it) is a good idea. + +## After Shadowing: What's Next? + +Shadowing is an apprenticeship, and as such is intended to be a stepping-stone to greater Kubernetes contributions in the future. Towards the end of the release cycle, your Role Lead and the Emeritus Advisor (EA) will chat with you about what you want to do next. + +Here's the common paths for Shadows after the release cycle ends: + +**Shadowing Again**: if you didn't really get accustomed to the Role, possibly because personal issues interrupted Shadowing, you might want to Shadow the Role a second time. Other Shadows discover that the first Role they tried isn't for them, and they want to shadow a different one so that they can try that one out. In either case, you'll re-apply to Shadow when the next cycle opens, noting your experience in the application form. + +**Becoming Role Lead**: The main goal of the Shadow program is to train new Leads. So, if you are ready to take on Leading the Role in the succeeding cycle, then let your Role Lead know. They will be selecting a nominee or nominees to recommend to the incoming Release Lead, who has the final decision. You can also skip a release cycle, and volunteer to become Role Lead in a later release cycle, in which case you should contact the incoming Release Lead as soon as they are announced. There is usually an issue in the SIG-Release repository called "Assemble Kubernetes X.YY Release Team" where you can comment with your interest in a Role. + +**Another role in SIG-Release**: some Shadows go on to do something else within SIG-Release. For example, they may join the Branch Managers as an Release Management Associate (RMA), or they may decide to take on a release-related project that's not directly tied to the release cycle. If you are interested in the Branch Managers, wait for them to announce their next recruitment cycle, or ask in the SIG-Release Slack channel. + +## Leaving the shadow program before the release cycle ended + +As a shadow, you have signed up for a release cycle to help the release team to ship the next Kubernetes version. +You may not be able to fulfill the entire “term” due to various possible reasons. +That's not a problem! +Each team onboards usually 4–5 shadows and builds redundancy with that. +If you like to leave the release team early, please notify your responsible team lead, the release lead and the EA about that. + +If the team lead observes over an extended period of time that one of the shadows is not participating, this should be communicated to the release lead and the EA and, after careful consideration, may result in the removal of the shadow from the release-team. +Note that this has not really happened before. +If you agree beforehand, it is no problem at all if you take some days of vacation or something else during the releases cycle and cannot support the community during this time. + +Especially the shadow roles are designed to get a feeling of how to work with the community and what the release team is like. +This kind of work may not be for everyone. +If you should leave because your experience wasn't good, please reach out to someone from the community (see [contributor-experience](https://github.com/kubernetes/community/tree/master/sig-contributor-experience#leadership)) over slack, so there is the opportunity for the release-team to improve. + +## Q&A + +*Q: I want to shadow, but I'm not able to work on Kubernetes during my workday. Can I still do this?* + +A: Yes. The time requirements for shadows are smaller and more flexible than they are for Role Leads. As long as you're clear about your time availability, then you should be able to shadow. Keep in mind, though, that you may need to have your boss's support to become a Lead for some Roles. + +*Q: I want to shadow, but I'll be unavailable for part of the release cycle. Is that OK?* + +A: Maybe; it depends on when it is, and which role. Put your availability limitations in the form, and the Role Lead will decide if your absence means that shadowing won't work. + +*Q: I've run into problems with Shadowing, who do I talk to?* + +A: if it's a problem with your schedule or the tasks you're assigned, you can simply ask your Role Lead. If you're having problems in your relationship with your Role Lead, then contact the Emeritus Advisor. If someone in the Release Team violates the Kubernetes Code of Conduct, then contact the CoC Committee *and* the EA. + +*Q: I'm a Role Lead and I'm having Shadow issues, who do I talk to?* + +A: Talk to the Emeritus Advisor. + +*Q: What if a Shadow needs to drop out?* + +A: This happens frequently; usually the Shadow is simply dropped from the roster. In some cases, particularly in the first two weeks of the release cycle, they may be replaced. + +*Q: What if the Role Lead can't continue, and one of the Shadows needs to take over?* + +A: The Release Lead, the EA, and the outgoing Role Lead (if possible) will discuss the matter and select one of the Shadows to become the new Role Lead. This is one of the reasons we have Shadows. + +*Q: How/When are Shadows selected?* + +A: The Release Leads work with the EA and are responsible for collecting shadow applications and selecting the Shadows. Generally this is one week into the release. [Relevant EA docs](./role-handbooks/emeritus-adviser#shadow-selection). diff --git a/releases/EXCEPTIONS.md b/releases/EXCEPTIONS.md index 64d29fab60a..eae42c3e9b3 100644 --- a/releases/EXCEPTIONS.md +++ b/releases/EXCEPTIONS.md @@ -1,99 +1,99 @@ -# Exceptions to Milestone Enhancement Complete dates - -For minor (1.x) milestones, the Kubernetes project has enhancement complete dates (hitting enhancement complete is all enhancement LGTMed and in submit queue with tests written) after which no new enhancements are accepted. Since minor releases come three times per year, missing a enhancement complete date by just one day can mean that enhancement takes an additional 4 months to be released. - -While the enhancement complete milestone dates are published well in advance, and the default is that missing the date means your enhancement will be part of the next milestone, there may be cases where an exception makes sense. - -Note that the exception process only applies to enhancements, not bugs managed by the Release Signal team. - -If you have questions about the status of your enhancement, including the reasons for its removal from the milestone, please reach out to the enhancements lead in the `#release-enhancements` channel on Slack. Some trivial "clerical errors", such as forgetting the set the milestone, can be remedied without a formal exception. - -## Exception Criteria - -Exceptions will be granted on the basis of *risk*, *length of exception required*, and *timeliness of exception request*. - -The enhancement coming in late should represent a **low risk to the Kubernetes system** - it should not risk other areas of the code, and it should itself be well contained and tested. - -The length of exception needed should be on the order of days, not weeks. If there are 3 PRs in and 1 still waiting review, that's a much stronger case than a enhancement that doesn't have any PRs out yet. Granted exception requests are due at the end of the last day [Anywhere on Earth (AoE) time](https://dateful.com/convert/aoe-anywhere-on-earth). - -Exceptions should be filed at the earliest opportunity i.e., as soon as it's clear an enhancement may miss the deadline. - -## Requesting an exception - -### Enhancement Owners - -To file for an exception, please fill out the questions below: - -- Enhancement name: -- Enhancement status (alpha/beta/stable): -- SIG: -- k/enhancements repo issue #: -- PR #’s: -- Additional time needed (in calendar days, due end of day AoE): -- Reason this enhancement is critical for this milestone: -- Risks from adding code late: (to k8s stability, testing, etc.) -- Risks from cutting enhancement: (partial implementation, critical customer usecase, etc.) - -Email them to: - -- Your SIG's mailing list -- release-team@kubernetes.io -- kubernetes-sig-release@googlegroups.com - -[You should have *very high confidence* on the “additional time needed” number - we will not grant multiple exceptions for a enhancement. The same goes for over-estimating on the time needed. If the exception request is rejected on the basis that the asking time is too high, we will not re-evaluate if the asking time decreases.] - -#### Exceptions after PRR freeze: -- Requests for exceptions must be submitted within 3 days after PRR freeze. You may file an exception request in advance if you know your KEP will miss the PRR freeze deadline. -- Due to the proximity to enhancements freeze, if you anticipate that you will need an enhancements freeze exception as well, you may submit an exception request for both in the same request (please mention that the request is for both PRR freeze and enhancements freeze, and list the expected completion date of both combined). -- All requests will be reviewed and either approved or rejected as they come in. The release team will be responsible for approving or rejecting exceptions based on the questions above. - -#### Exceptions after enhancements freeze: -- Requests for exceptions must be submitted within 3 days after enhancements freeze. You may file an exception request in advance if you know your KEP will miss the enhancements freeze deadline. -- All requests will be reviewed and either approved or rejected as they come in. The release team will be responsible for approving or rejecting exceptions based on the questions above. - -#### Exceptions after code freeze and test freeze: -- Requests for exceptions must be submitted within 3 days after code freeze and test freeze. You may file an exception request in advance if you know your KEP will miss the code freeze and test freeze deadline. -- All requests for exception will be reviewed and either approved or rejected during the first meeting. The release team will be responsible for approving or rejecting exceptions based on the questions above. - -#### Exceptions after docs freeze: -- As the docs freeze takes place close to the end of the release cycle, please file an exception request as soon as possible, ideally in advance of the deadline if you know you will miss it, or within 24 hours of missing the docs freeze deadline. -- All requests will be reviewed and approved or rejected as they come in. The release team will be responsible for approving or rejecting exceptions based on the questions above, with input from SIG Docs. - - -Information about the current release can be found in the relevant release directory: -- important dates e.g., [releases/release-1.14/README.md](/releases/release-1.14/README.md) -- Release Team members e.g., [releases/release-1.14/release_team.md](/releases/release-1.14/release_team.md) - - -Once an exception is approved, it should be broadcast broadly: send an email with the data and approval to kubernetes-dev@ and your SIG group, then follow up with a reply to that email once the enhancement is completed. - -### Enhancement Lead - -After exceptions have been reviewed, the Enhancements Lead should create an `exceptions.yaml` file in the current release's directory e.g., [release-1.11/exceptions.yaml](release-1.11/exceptions.yaml). - - -`exceptions.yaml` should be formatted as follows: - -```yaml -# Exceptions to Code Freeze requested in 1.13 -# Google Group: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown -# Release Team Lead: Aishwarya Sundar (@AishSundar) - -- name: "Update Istio addon manifest" - issue: "https://github.com/kubernetes/kubernetes/issues/64563" - date_requested: 2018-10-24 - date_reviewed: 2018-10-24 - thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/68ivj9MGBdU" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/64537" - status: "approved" - -- name: "Implement IPVS-based in-cluster service load balancing" - issue: "https://github.com/kubernetes/enhancements/issues/265" - date_requested: 2018-10-24 - date_reviewed: 2018-10-24 - thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/MJrcqkLAcn0" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/58442" - status: "approved" -``` +# Exceptions to Milestone Enhancement Complete dates + +For minor (1.x) milestones, the Kubernetes project has enhancement complete dates (hitting enhancement complete is all enhancement LGTMed and in submit queue with tests written) after which no new enhancements are accepted. Since minor releases come three times per year, missing a enhancement complete date by just one day can mean that enhancement takes an additional 4 months to be released. + +While the enhancement complete milestone dates are published well in advance, and the default is that missing the date means your enhancement will be part of the next milestone, there may be cases where an exception makes sense. + +Note that the exception process only applies to enhancements, not bugs managed by the Release Signal team. + +If you have questions about the status of your enhancement, including the reasons for its removal from the milestone, please reach out to the enhancements lead in the `#release-enhancements` channel on Slack. Some trivial "clerical errors", such as forgetting the set the milestone, can be remedied without a formal exception. + +## Exception Criteria + +Exceptions will be granted on the basis of *risk*, *length of exception required*, and *timeliness of exception request*. + +The enhancement coming in late should represent a **low risk to the Kubernetes system** - it should not risk other areas of the code, and it should itself be well contained and tested. + +The length of exception needed should be on the order of days, not weeks. If there are 3 PRs in and 1 still waiting review, that's a much stronger case than a enhancement that doesn't have any PRs out yet. Granted exception requests are due at the end of the last day [Anywhere on Earth (AoE) time](https://dateful.com/convert/aoe-anywhere-on-earth). + +Exceptions should be filed at the earliest opportunity i.e., as soon as it's clear an enhancement may miss the deadline. + +## Requesting an exception + +### Enhancement Owners + +To file for an exception, please fill out the questions below: + +- Enhancement name: +- Enhancement status (alpha/beta/stable): +- SIG: +- k/enhancements repo issue #: +- PR #’s: +- Additional time needed (in calendar days, due end of day AoE): +- Reason this enhancement is critical for this milestone: +- Risks from adding code late: (to k8s stability, testing, etc.) +- Risks from cutting enhancement: (partial implementation, critical customer usecase, etc.) + +Email them to: + +- Your SIG's mailing list +- release-team@kubernetes.io +- kubernetes-sig-release@googlegroups.com + +[You should have *very high confidence* on the “additional time needed” number - we will not grant multiple exceptions for a enhancement. The same goes for over-estimating on the time needed. If the exception request is rejected on the basis that the asking time is too high, we will not re-evaluate if the asking time decreases.] + +#### Exceptions after PRR freeze: +- Requests for exceptions must be submitted within 3 days after PRR freeze. You may file an exception request in advance if you know your KEP will miss the PRR freeze deadline. +- Due to the proximity to enhancements freeze, if you anticipate that you will need an enhancements freeze exception as well, you may submit an exception request for both in the same request (please mention that the request is for both PRR freeze and enhancements freeze, and list the expected completion date of both combined). +- All requests will be reviewed and either approved or rejected as they come in. The release team will be responsible for approving or rejecting exceptions based on the questions above. + +#### Exceptions after enhancements freeze: +- Requests for exceptions must be submitted within 3 days after enhancements freeze. You may file an exception request in advance if you know your KEP will miss the enhancements freeze deadline. +- All requests will be reviewed and either approved or rejected as they come in. The release team will be responsible for approving or rejecting exceptions based on the questions above. + +#### Exceptions after code freeze and test freeze: +- Requests for exceptions must be submitted within 3 days after code freeze and test freeze. You may file an exception request in advance if you know your KEP will miss the code freeze and test freeze deadline. +- All requests for exception will be reviewed and either approved or rejected during the first meeting. The release team will be responsible for approving or rejecting exceptions based on the questions above. + +#### Exceptions after docs freeze: +- As the docs freeze takes place close to the end of the release cycle, please file an exception request as soon as possible, ideally in advance of the deadline if you know you will miss it, or within 24 hours of missing the docs freeze deadline. +- All requests will be reviewed and approved or rejected as they come in. The release team will be responsible for approving or rejecting exceptions based on the questions above, with input from SIG Docs. + + +Information about the current release can be found in the relevant release directory: +- important dates e.g., [releases/release-1.14/README.md](/releases/release-1.14/README.md) +- Release Team members e.g., [releases/release-1.14/release_team.md](/releases/release-1.14/release_team.md) + + +Once an exception is approved, it should be broadcast broadly: send an email with the data and approval to kubernetes-dev@ and your SIG group, then follow up with a reply to that email once the enhancement is completed. + +### Enhancement Lead + +After exceptions have been reviewed, the Enhancements Lead should create an `exceptions.yaml` file in the current release's directory e.g., [release-1.11/exceptions.yaml](release-1.11/exceptions.yaml). + + +`exceptions.yaml` should be formatted as follows: + +```yaml +# Exceptions to Code Freeze requested in 1.13 +# Google Group: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown +# Release Team Lead: Aishwarya Sundar (@AishSundar) + +- name: "Update Istio addon manifest" + issue: "https://github.com/kubernetes/kubernetes/issues/64563" + date_requested: 2018-10-24 + date_reviewed: 2018-10-24 + thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/68ivj9MGBdU" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/64537" + status: "approved" + +- name: "Implement IPVS-based in-cluster service load balancing" + issue: "https://github.com/kubernetes/enhancements/issues/265" + date_requested: 2018-10-24 + date_reviewed: 2018-10-24 + thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/MJrcqkLAcn0" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/58442" + status: "approved" +``` diff --git a/releases/OWNERS b/releases/OWNERS index 996df73266f..2a964db910d 100644 --- a/releases/OWNERS +++ b/releases/OWNERS @@ -1,11 +1,11 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -approvers: - - release-team-approvers - - release-team-lead -reviewers: - - release-team-approvers - - release-team-lead - - release-team-lead-shadows -labels: - - area/release-team +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - release-team-approvers + - release-team-lead +reviewers: + - release-team-approvers + - release-team-lead + - release-team-lead-shadows +labels: + - area/release-team diff --git a/releases/release-1.10/README.md b/releases/release-1.10/README.md index 541189d3c90..d806805da50 100644 --- a/releases/release-1.10/README.md +++ b/releases/release-1.10/README.md @@ -1,436 +1,436 @@ -# Kubernetes 1.10 Release Schedule -*Handy Links:* -* [Release Team](http://bit.ly/k8s110-team) -* [Zoom](http://bit.ly/k8s110-zoom) -* [Slack](https://kubernetes.slack.com/messages/sig-release/) -* [Forum](https://groups.google.com/forum/#!forum/kubernetes-sig-release) -* [Feature Tracking Sheet](https://docs.google.com/spreadsheets/d/17bZrKTk8dOx5nomLrD1-93uBfajK5JS-v1o-nCLJmzE/edit?usp=sharing) -* [Milestone Process](https://github.com/kubernetes/community/blob/master/contributors/devel/release/issues.md) -* [Burndown / Meeting Minutes](http://bit.ly/k8s110-burndown) -* [Retrospective Document](http://bit.ly/kube110retro) - -**tl;dr** The 1.10 release cycle begins on **Tuesday, January 2nd, 2018**, and ends on release day, **Wednesday, March 21st**. Feature freeze is **Monday, January 22nd**. Code freeze begins **Monday February 26th** and ends **Wednesday, March 14th**. Docs must be completed and reviewed by **Friday, March 9th**. - -## Notes About this Release - -* The feature process is remaining as it has in prior releases. -* Features that don't have complete code and tests by [Code Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md#code-freeze) may be disabled by the release team before cutting the first beta. -* The release team will escalate [release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) failures to SIGs throughout the cycle, not just near release cuts. -* Key deliverables (e.g. initial release cuts) tend to be scheduled on Tuesdays to maintain context while ramping up and then responding to any problems. The final release will be on a Wednesday in keeping with prior practice. -* The release length is nearly 12 weeks -* Code name "*Left Shark*" because it's been my favorite meme of the release cycle (Thanks [Christoph](https://github.com/cblecker)) - -## Timeline - -<table> - <tr> - <td>What</td> - <td>Who</td> - <td>JAN</td> - <td>FEB</td> - <td>MAR</td> - <td>APR</td> - <td>DEV WEEK</td> - <td>TEST GATES</td> - </tr> - <tr> - <td>Start of Release Cycle</td> - <td>Lead</td> - <td>2</td> - <td></td> - <td></td> - <td></td> - <td>week 1</td> - <td></td> - </tr> - <tr> - <td>Finalize Schedule</td> - <td>Lead</td> - <td>5</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>Begin collecting planned work from SIGs</td> - <td>Lead, Features Lead</td> - <td>8</td> - <td></td> - <td></td> - <td></td> - <td>week 2</td> - <td></td> - </tr> - <tr> - <td>Begin weekly release team meetings</td> - <td>Lead</td> - <td>9</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>Begin weekly status reports at Community</td> - <td>Lead, Shadow</td> - <td>11</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>Finalize Release Team</td> - <td>Lead</td> - <td>12</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>Start Release Notes Draft</td> - <td>Release Notes Lead</td> - <td>15</td> - <td></td> - <td></td> - <td></td> - <td>week 3</td> - <td></td> - </tr> - <tr> - <td>Clean up features repo</td> - <td>Features Lead</td> - <td>15</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>1.10.0-alpha.2 release</td> - <td>Branch Manager</td> - <td>16</td> - <td></td> - <td></td> - <td></td> - <td></td> - <td>master-blocking</td> - </tr> - <tr> - <td>"Feature Freeze" begins (EOD PST)</td> - <td>Feature Lead</td> - <td>22</td> - <td></td> - <td></td> - <td></td> - <td>week 4</td> - <td></td> - </tr> - <tr> - <td>1.10.0-alpha.3 release</td> - <td>Branch Manager</td> - <td>30</td> - <td></td> - <td></td> - <td></td> - <td>week 5</td> - <td>master-blocking</td> - </tr> - <tr> - <td>Blog post: what we're working on for 1.10</td> - <td>Communications</td> - <td></td> - <td>6</td> - <td></td> - <td></td> - <td>week 6</td> - <td></td> - </tr> - <tr> - <td>1.10.0-beta.0 release</td> - <td>Branch Manager</td> - <td></td> - <td>13</td> - <td></td> - <td></td> - <td>week 7</td> - <td>master-blocking, master-upgrade</td> - </tr> - <tr> - <td>Create 'release-1.10' branch and begin daily branchff</td> - <td>Branch Manager</td> - <td></td> - <td>13</td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>All release branch CI jobs created</td> - <td>Test Infra Lead</td> - <td></td> - <td>16</td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>Begin Code Slush</td> - <td>Bot, Lead</td> - <td></td> - <td>20</td> - <td></td> - <td></td> - <td>week 8</td> - <td></td> - </tr> - <tr> - <td>Begin code freeze (EOD PST)</td> - <td>Bot, Lead</td> - <td></td> - <td>26</td> - <td></td> - <td></td> - <td>week 9</td> - <td>1.10-blocking, master-blocking, master-upgrade</td> - </tr> - <tr> - <td>Begin MWF Burndown meetings</td> - <td>Lead</td> - <td></td> - <td>26</td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>Begin pruning</td> - <td>Lead and release team</td> - <td></td> - <td>26</td> - <td></td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>1.10.0-beta.1 release</td> - <td>Branch Manager</td> - <td></td> - <td>27</td> - <td></td> - <td></td> - <td></td> - <td>1.10-blocking, master-blocking, master-upgrade</td> - </tr> - <tr> - <td>Docs deadline - PRs ready for review</td> - <td>Docs Lead</td> - <td></td> - <td></td> - <td>2</td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>1.10.0-beta.2 release</td> - <td>Branch Manager</td> - <td></td> - <td></td> - <td>6</td> - <td></td> - <td>week 10</td> - <td>1.10-blocking, master-blocking, master-upgrade</td> - </tr> - <tr> - <td>Docs complete - All PRs reviewed and ready to merge</td> - <td>Docs Lead</td> - <td></td> - <td></td> - <td>9</td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>Begin M-F Burndown meetings</td> - <td>Lead</td> - <td></td> - <td></td> - <td>12</td> - <td></td> - <td>week 11</td> - <td></td> - </tr> - <tr> - <td>End of code freeze (EOD PST)</td> - <td>Bot, Lead</td> - <td></td> - <td></td> - <td>19</td> - <td></td> - <td>week 12</td> - <td></td> - </tr> - <tr> - <td>Perform final branchff</td> - <td>Branch Manager</td> - <td></td> - <td></td> - <td>19</td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>1.10.0-rc.1 release</td> - <td>Branch Manager</td> - <td></td> - <td></td> - <td>19</td> - <td></td> - <td></td> - <td>1.10-blocking, master-blocking, master-upgrade</td> - </tr> - <tr> - <td>Master branch re-opens for 1.11</td> - <td>Bot, Branch Manager</td> - <td></td> - <td></td> - <td>19</td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>PRs for v1.10.0 must be cherry picked to release-1.10</td> - <td>Branch Manager</td> - <td></td> - <td></td> - <td>19</td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>Notify kubernetes-dev of lifting code freeze</td> - <td>Lead</td> - <td></td> - <td></td> - <td>20</td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>v1.10.0</td> - <td>Branch Manager</td> - <td></td> - <td></td> - <td>26</td> - <td></td> - <td>week 13</td> - <td>1.10-blocking</td> - </tr> - <tr> - <td>v1.11.0-alpha.1</td> - <td>Branch Manager</td> - <td></td> - <td></td> - <td>27</td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>Release retrospective</td> - <td>Community</td> - <td></td> - <td></td> - <td>29</td> - <td></td> - <td></td> - <td></td> - </tr> - <tr> - <td>1.11 Release Cycle Begins</td> - <td>Next Lead</td> - <td></td> - <td></td> - <td></td> - <td>2</td> - <td></td> - <td></td> - </tr> -</table> - -## Details - -### Feature Freeze - -All features going into the release must have an associated issue in the features repo by Monday, January 22nd. That issue must be in the 1.10 milestone. SIG "themes" should also be in the release notes draft at this time to prepare for blog posts and release marketing. Any work the SIG wants publicized needs to be called out to the Features Lead so the Release Team communications lead can work with SIG-PM and the CNCF. - -### Code Slush - -Starting on Tuesday, February 20th, only PRs labeled by their owner SIGs with [`status/approved-for-milestone`](/ephemera/issues.md)will be allowed to merge into the master branch. All others will be deferred until the end of Code Freeze, when master opens back up for the next release cycle. If necessary, the release team can add the `status/approved-for-milestone` label in cases where the SIG approvers do not have permissions to do so. - -Code Slush begins prior to Code Freeze to help reduce noise from miscellaneous changes that aren't related to issues that SIGs have approved for the milestone. Feature work is still allowed at this point, but it must follow the process to get approved for the milestone. SIGs are the gatekeepers of this label, not the release team. - -#### Exceptions - -Starting at Code Slush, the release team will solicit and rule on [exception requests](https://github.com/kubernetes/features/blob/master/EXCEPTIONS.md) for feature and test work that is unlikely to be done by Code Freeze. As with the `status/approved-for-milestone` label, the exception approval is the responsibility of the SIG or SIGs labeled in the pull request. The release team may intervene or deny the request only if it poses a risk to release quality, or could negatively impact the overall timeline. Changes introduced at this point should be well-tested, well-understood, limited in architectural scope, and low risk. All of those factors should be considered in the approval process. - -### Code Freeze - -All features going into the release must be code-complete (including tests) and have docs PRs open by Monday, February 26th. - -The docs PRs don't have to be ready to merge, but it should be clear what the topic will be and who is responsible for writing it. This person will become the primary contact for the documentation lead. It’s incredibly important that documentation work gets completed as quickly as possible. - -After this point, only release-blocking issues and PRs will be allowed in the milestone. The milestone bot will remove anything that lacks the priority/critical-urgent label, as well as other required labels. - -### Pruning - -Features that are partially implemented and/or lack sufficient tests may be considered for pruning beginning after code freeze, unless they've been granted exceptions. - -The release team will work with SIGs and feature owners to evaluate each case, but for example, pruning could include actions such as: - -* Disabling the use of a new API or field -* Switching the default value of a flag or field -* Moving a new API or field behind an Alpha feature gate -* Reverting commits or deleting code - -This needs to occur before 1.10.0-beta.1 is cut so we have time to gather signal on whether the system is stable in this state. These are considered drastic measures, so the release team will strive to coordinate at-risk work with SIGs before this time. The goal is to make code freeze, and overall project transparency, enforceable despite the lack of a feature branch process. - -### Docs - -If a feature needs documentation, enter Yes in the feature tracking spreadsheet and add a link to the documentation PR. You can open documentation PRs in the [kubernetes/website](https://github.com/kubernetes/website) repository. If you have questions, the release documentation lead, or representatives from SIG-Docs will be happy to assist you. - -For documentation PRs: - -* Open PRs against the release-1.10 branch based off of the 1.10 release PR. The documentation workflow uses feature branches for release documentation, rather than basing from master. **Be sure to open your PR against the release branch**. -* Add your PR to the 1.10 Release milestone. - -### Burndown - -Burndown meetings are held on Mondays, Wednesdays and Fridays at 10AM Pacific until the final release is near, and then every business day until the release. On Thursdays of the final 2 weeks, the meeting will happen alongside the Community Meeting. - -Join the [Kubernetes Milestone Burndown Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) to get the calendar invite. - -The intent of these meetings is to: - -* Focus on fixing bugs, eliminating test flakes and general release stabilization. -* Ensure docs and release notes are written and accurate. -* Identify all features going into the release, and make sure alpha, beta, ga is marked in features repo. -* Provide a [one-stop view of release progress](http://bit.ly/k8s110-burndown) including relevant release metrics. -* Host SIG stakeholders for updates. +# Kubernetes 1.10 Release Schedule +*Handy Links:* +* [Release Team](http://bit.ly/k8s110-team) +* [Zoom](http://bit.ly/k8s110-zoom) +* [Slack](https://kubernetes.slack.com/messages/sig-release/) +* [Forum](https://groups.google.com/forum/#!forum/kubernetes-sig-release) +* [Feature Tracking Sheet](https://docs.google.com/spreadsheets/d/17bZrKTk8dOx5nomLrD1-93uBfajK5JS-v1o-nCLJmzE/edit?usp=sharing) +* [Milestone Process](https://github.com/kubernetes/community/blob/master/contributors/devel/release/issues.md) +* [Burndown / Meeting Minutes](http://bit.ly/k8s110-burndown) +* [Retrospective Document](http://bit.ly/kube110retro) + +**tl;dr** The 1.10 release cycle begins on **Tuesday, January 2nd, 2018**, and ends on release day, **Wednesday, March 21st**. Feature freeze is **Monday, January 22nd**. Code freeze begins **Monday February 26th** and ends **Wednesday, March 14th**. Docs must be completed and reviewed by **Friday, March 9th**. + +## Notes About this Release + +* The feature process is remaining as it has in prior releases. +* Features that don't have complete code and tests by [Code Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md#code-freeze) may be disabled by the release team before cutting the first beta. +* The release team will escalate [release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) failures to SIGs throughout the cycle, not just near release cuts. +* Key deliverables (e.g. initial release cuts) tend to be scheduled on Tuesdays to maintain context while ramping up and then responding to any problems. The final release will be on a Wednesday in keeping with prior practice. +* The release length is nearly 12 weeks +* Code name "*Left Shark*" because it's been my favorite meme of the release cycle (Thanks [Christoph](https://github.com/cblecker)) + +## Timeline + +<table> + <tr> + <td>What</td> + <td>Who</td> + <td>JAN</td> + <td>FEB</td> + <td>MAR</td> + <td>APR</td> + <td>DEV WEEK</td> + <td>TEST GATES</td> + </tr> + <tr> + <td>Start of Release Cycle</td> + <td>Lead</td> + <td>2</td> + <td></td> + <td></td> + <td></td> + <td>week 1</td> + <td></td> + </tr> + <tr> + <td>Finalize Schedule</td> + <td>Lead</td> + <td>5</td> + <td></td> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>Begin collecting planned work from SIGs</td> + <td>Lead, Features Lead</td> + <td>8</td> + <td></td> + <td></td> + <td></td> + <td>week 2</td> + <td></td> + </tr> + <tr> + <td>Begin weekly release team meetings</td> + <td>Lead</td> + <td>9</td> + <td></td> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>Begin weekly status reports at Community</td> + <td>Lead, Shadow</td> + <td>11</td> + <td></td> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>Finalize Release Team</td> + <td>Lead</td> + <td>12</td> + <td></td> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>Start Release Notes Draft</td> + <td>Release Notes Lead</td> + <td>15</td> + <td></td> + <td></td> + <td></td> + <td>week 3</td> + <td></td> + </tr> + <tr> + <td>Clean up features repo</td> + <td>Features Lead</td> + <td>15</td> + <td></td> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>1.10.0-alpha.2 release</td> + <td>Branch Manager</td> + <td>16</td> + <td></td> + <td></td> + <td></td> + <td></td> + <td>master-blocking</td> + </tr> + <tr> + <td>"Feature Freeze" begins (EOD PST)</td> + <td>Feature Lead</td> + <td>22</td> + <td></td> + <td></td> + <td></td> + <td>week 4</td> + <td></td> + </tr> + <tr> + <td>1.10.0-alpha.3 release</td> + <td>Branch Manager</td> + <td>30</td> + <td></td> + <td></td> + <td></td> + <td>week 5</td> + <td>master-blocking</td> + </tr> + <tr> + <td>Blog post: what we're working on for 1.10</td> + <td>Communications</td> + <td></td> + <td>6</td> + <td></td> + <td></td> + <td>week 6</td> + <td></td> + </tr> + <tr> + <td>1.10.0-beta.0 release</td> + <td>Branch Manager</td> + <td></td> + <td>13</td> + <td></td> + <td></td> + <td>week 7</td> + <td>master-blocking, master-upgrade</td> + </tr> + <tr> + <td>Create 'release-1.10' branch and begin daily branchff</td> + <td>Branch Manager</td> + <td></td> + <td>13</td> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>All release branch CI jobs created</td> + <td>Test Infra Lead</td> + <td></td> + <td>16</td> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>Begin Code Slush</td> + <td>Bot, Lead</td> + <td></td> + <td>20</td> + <td></td> + <td></td> + <td>week 8</td> + <td></td> + </tr> + <tr> + <td>Begin code freeze (EOD PST)</td> + <td>Bot, Lead</td> + <td></td> + <td>26</td> + <td></td> + <td></td> + <td>week 9</td> + <td>1.10-blocking, master-blocking, master-upgrade</td> + </tr> + <tr> + <td>Begin MWF Burndown meetings</td> + <td>Lead</td> + <td></td> + <td>26</td> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>Begin pruning</td> + <td>Lead and release team</td> + <td></td> + <td>26</td> + <td></td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>1.10.0-beta.1 release</td> + <td>Branch Manager</td> + <td></td> + <td>27</td> + <td></td> + <td></td> + <td></td> + <td>1.10-blocking, master-blocking, master-upgrade</td> + </tr> + <tr> + <td>Docs deadline - PRs ready for review</td> + <td>Docs Lead</td> + <td></td> + <td></td> + <td>2</td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>1.10.0-beta.2 release</td> + <td>Branch Manager</td> + <td></td> + <td></td> + <td>6</td> + <td></td> + <td>week 10</td> + <td>1.10-blocking, master-blocking, master-upgrade</td> + </tr> + <tr> + <td>Docs complete - All PRs reviewed and ready to merge</td> + <td>Docs Lead</td> + <td></td> + <td></td> + <td>9</td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>Begin M-F Burndown meetings</td> + <td>Lead</td> + <td></td> + <td></td> + <td>12</td> + <td></td> + <td>week 11</td> + <td></td> + </tr> + <tr> + <td>End of code freeze (EOD PST)</td> + <td>Bot, Lead</td> + <td></td> + <td></td> + <td>19</td> + <td></td> + <td>week 12</td> + <td></td> + </tr> + <tr> + <td>Perform final branchff</td> + <td>Branch Manager</td> + <td></td> + <td></td> + <td>19</td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>1.10.0-rc.1 release</td> + <td>Branch Manager</td> + <td></td> + <td></td> + <td>19</td> + <td></td> + <td></td> + <td>1.10-blocking, master-blocking, master-upgrade</td> + </tr> + <tr> + <td>Master branch re-opens for 1.11</td> + <td>Bot, Branch Manager</td> + <td></td> + <td></td> + <td>19</td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>PRs for v1.10.0 must be cherry picked to release-1.10</td> + <td>Branch Manager</td> + <td></td> + <td></td> + <td>19</td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>Notify kubernetes-dev of lifting code freeze</td> + <td>Lead</td> + <td></td> + <td></td> + <td>20</td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>v1.10.0</td> + <td>Branch Manager</td> + <td></td> + <td></td> + <td>26</td> + <td></td> + <td>week 13</td> + <td>1.10-blocking</td> + </tr> + <tr> + <td>v1.11.0-alpha.1</td> + <td>Branch Manager</td> + <td></td> + <td></td> + <td>27</td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>Release retrospective</td> + <td>Community</td> + <td></td> + <td></td> + <td>29</td> + <td></td> + <td></td> + <td></td> + </tr> + <tr> + <td>1.11 Release Cycle Begins</td> + <td>Next Lead</td> + <td></td> + <td></td> + <td></td> + <td>2</td> + <td></td> + <td></td> + </tr> +</table> + +## Details + +### Feature Freeze + +All features going into the release must have an associated issue in the features repo by Monday, January 22nd. That issue must be in the 1.10 milestone. SIG "themes" should also be in the release notes draft at this time to prepare for blog posts and release marketing. Any work the SIG wants publicized needs to be called out to the Features Lead so the Release Team communications lead can work with SIG-PM and the CNCF. + +### Code Slush + +Starting on Tuesday, February 20th, only PRs labeled by their owner SIGs with [`status/approved-for-milestone`](/ephemera/issues.md)will be allowed to merge into the master branch. All others will be deferred until the end of Code Freeze, when master opens back up for the next release cycle. If necessary, the release team can add the `status/approved-for-milestone` label in cases where the SIG approvers do not have permissions to do so. + +Code Slush begins prior to Code Freeze to help reduce noise from miscellaneous changes that aren't related to issues that SIGs have approved for the milestone. Feature work is still allowed at this point, but it must follow the process to get approved for the milestone. SIGs are the gatekeepers of this label, not the release team. + +#### Exceptions + +Starting at Code Slush, the release team will solicit and rule on [exception requests](https://github.com/kubernetes/features/blob/master/EXCEPTIONS.md) for feature and test work that is unlikely to be done by Code Freeze. As with the `status/approved-for-milestone` label, the exception approval is the responsibility of the SIG or SIGs labeled in the pull request. The release team may intervene or deny the request only if it poses a risk to release quality, or could negatively impact the overall timeline. Changes introduced at this point should be well-tested, well-understood, limited in architectural scope, and low risk. All of those factors should be considered in the approval process. + +### Code Freeze + +All features going into the release must be code-complete (including tests) and have docs PRs open by Monday, February 26th. + +The docs PRs don't have to be ready to merge, but it should be clear what the topic will be and who is responsible for writing it. This person will become the primary contact for the documentation lead. It’s incredibly important that documentation work gets completed as quickly as possible. + +After this point, only release-blocking issues and PRs will be allowed in the milestone. The milestone bot will remove anything that lacks the priority/critical-urgent label, as well as other required labels. + +### Pruning + +Features that are partially implemented and/or lack sufficient tests may be considered for pruning beginning after code freeze, unless they've been granted exceptions. + +The release team will work with SIGs and feature owners to evaluate each case, but for example, pruning could include actions such as: + +* Disabling the use of a new API or field +* Switching the default value of a flag or field +* Moving a new API or field behind an Alpha feature gate +* Reverting commits or deleting code + +This needs to occur before 1.10.0-beta.1 is cut so we have time to gather signal on whether the system is stable in this state. These are considered drastic measures, so the release team will strive to coordinate at-risk work with SIGs before this time. The goal is to make code freeze, and overall project transparency, enforceable despite the lack of a feature branch process. + +### Docs + +If a feature needs documentation, enter Yes in the feature tracking spreadsheet and add a link to the documentation PR. You can open documentation PRs in the [kubernetes/website](https://github.com/kubernetes/website) repository. If you have questions, the release documentation lead, or representatives from SIG-Docs will be happy to assist you. + +For documentation PRs: + +* Open PRs against the release-1.10 branch based off of the 1.10 release PR. The documentation workflow uses feature branches for release documentation, rather than basing from master. **Be sure to open your PR against the release branch**. +* Add your PR to the 1.10 Release milestone. + +### Burndown + +Burndown meetings are held on Mondays, Wednesdays and Fridays at 10AM Pacific until the final release is near, and then every business day until the release. On Thursdays of the final 2 weeks, the meeting will happen alongside the Community Meeting. + +Join the [Kubernetes Milestone Burndown Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) to get the calendar invite. + +The intent of these meetings is to: + +* Focus on fixing bugs, eliminating test flakes and general release stabilization. +* Ensure docs and release notes are written and accurate. +* Identify all features going into the release, and make sure alpha, beta, ga is marked in features repo. +* Provide a [one-stop view of release progress](http://bit.ly/k8s110-burndown) including relevant release metrics. +* Host SIG stakeholders for updates. diff --git a/releases/release-1.10/burndown_meeting_minutes_archive.md b/releases/release-1.10/burndown_meeting_minutes_archive.md index 4bb7224a02e..e252f23bdb1 100644 --- a/releases/release-1.10/burndown_meeting_minutes_archive.md +++ b/releases/release-1.10/burndown_meeting_minutes_archive.md @@ -1,3976 +1,3976 @@ -Kubernetes 1.10 "left shark" Release Burndown - -Self-link: [bit.ly/k8s110-burndown](http://bit.ly/k8s110-burndown) - -Agenda [template](https://docs.google.com/document/d/1zLnmDDOp_ko9Yh5uPJtgqPFD7GKq76fQsKaenXoMHzM/edit) - -Zoom [Link](http://bit.ly/k8s110-zoom) - -## Date: 3/26/2018 ~ tentative Release Day! - -Video [Link](https://youtu.be/dbh5RaKSXdQ) - -* Release day mechanics: - - * Wrap up release notes, merge into draft that anago will consume - - * Need external dependencies - - * Ask sig-node, sig-api-machinery, etc., See prior list for 1.9 at [https://github.com/kubernetes/sig-release/blob/master/releases/release-1.9/release-notes-draft.md#external-dependencies](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.9/release-notes-draft.md#external-dependencies) - - * Etcd: 3.1.12; from [here](https://github.com/kubernetes/kubernetes/blob/master/hack/lib/etcd.sh#L19) or [here](https://github.com/kubernetes/kubernetes/blob/master/build/root/WORKSPACE#L22); last PR [60998](https://github.com/kubernetes/kubernetes/pull/60998) - - * Docker: - - * see sig-node and [here](https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/system/docker_validator_test.go) … looks unchanged since 1.8 - - * "The validated docker versions are the same as for v1.8 and v1.9: 1.11.2 to 1.13.1 and 17.03.x" - - * Go: 1.9.3; from [here](https://github.com/kubernetes/kubernetes/blob/master/build/root/WORKSPACE#L49); last PR [59012](https://github.com/kubernetes/kubernetes/pull/59012) - - * CNI: 0.6.0; from [here](https://github.com/kubernetes/kubernetes/blob/master/build/root/WORKSPACE#L57); last PR [51250](https://github.com/kubernetes/kubernetes/pull/51250) - - * CSI: 0.2.0; from [here](https://github.com/kubernetes/kubernetes/blob/master/Godeps/Godeps.json#L456); last PR [60736](https://github.com/kubernetes/kubernetes/pull/60736) - - * Dashboard add-on: 1.8.3, from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dashboard/dashboard-deployment.yaml#L33), last PR [57326](https://github.com/kubernetes/kubernetes/pull57326) - - * Heapster: unchanged at 1.5.0 from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/cluster-monitoring/google/heapster-controller.yaml) (note: changes in v1.11) - - * Cluster autoscaler: 1.1.2; from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/gce/manifests/cluster-autoscaler.manifest#L17); last PR [60842](https://github.com/kubernetes/kubernetes/pull/60842) [@mwielgus](https://github.com/mwielgus)) - - * Kube-dns: 1.14.8 from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/kube-dns/kube-dns.yaml.base#L98); last PR [58013](https://github.com/kubernetes/kubernetes/pull/58013) and [57918](https://github.com/kubernetes/kubernetes/pull/57918) - - * influxdb: v1.3.3 and grafana v4.4.3 (unchanged); from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/cluster-monitoring/influxdb/influxdb-grafana-controller.yaml); last PR [53319](https://github.com/kubernetes/kubernetes/pull/53319) - - * Cadvisor: 0.29.1, from [here](https://github.com/kubernetes/kubernetes/blob/master/Godeps/Godeps.json#L1478), last PR [60867](https://github.com/kubernetes/kubernetes/pull/60867) - - * fluentd-gcp-scaler: 0.3.0, from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/fluentd-gcp/scaler-deployment.yaml), last PR [61269](https://github.com/kubernetes/kubernetes/pull/61269) - - * Fluentd: 1.1.0; from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Gemfile#L3); last PR [58525](https://github.com/kubernetes/kubernetes/pull/58525), [@monotek](https://github.com/monotek)) - - * Fluentd-elasticsearch: 2.0.4; from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/fluentd-elasticsearch/fluentd-es-ds.yaml#L51); last PR [58525](https://github.com/kubernetes/kubernetes/pull/58525) - - * Fluentd-gcp: v3.0.0; from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/fluentd-gcp/fluentd-gcp-ds.yaml#L4); last PR [60722](https://github.com/kubernetes/kubernetes/pull/60722)) - - * ingress glbc image: 1.0.0, from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/gce/manifests/glbc.manifest#L16), last PR [61302](https://github.com/kubernetes/kubernetes/pull/61302) - - * oidc authentication: coreos/go-oidc v2; from [here](https://github.com/kubernetes/kubernetes/blob/master/Godeps/Godeps.json#L909) (but must go look at upstream dep to find the tag corresponding to the vendored commit and they don’t actually have releases?), last PR [58544](https://github.com/kubernetes/kubernetes/pull/58544) - - * Calico: 2.6.7; from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/calico-policy-controller/calico-node-daemonset.yaml#L36); last PR [59130](https://github.com/kubernetes/kubernetes/pull/59130) - - * COS image version: cos-stable-63-10032-71-0; from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/gce/config-default.sh#L77); last PR [57204](https://github.com/kubernetes/kubernetes/pull/57204) [@yujuhong](https://github.com/yujuhong)) - - * ...others? - - * Need clarity on PV resize vs volume resize - - * Michelle offered to help - - * Need PVC section (Jennifer) - - * Also ask Michelle? - - * Known issues to be translated into release notes - - * Final doc check - - * OTW - - * Final signal check on release branch - - * Good to go - - * Final issue check - - * two upgrade issues - - * 61640 ~ testing env issue - - * 61645 ~ test depends on k8s dashboard pod which is not started by default anymore - - * Blog questions: - - * Need someone to insert link for where you download & interactive tutorial - - * Blog series = 2 blogs - - * Branch manager cuts the release - - * 5pm Pacific ~ Release announcement sent to k8s-dev / announce - - * Media announcement - - * Rejoice! - -* Issue review - - * [[test failed] should ensure that critical pod is scheduled in case there is no resources available ](https://github.com/kubernetes/kubernetes/issues/61645) - - * Not approved for milestone - - * This is known issue - - * Test needs to be patched - - * [[test failed] regular resource usage tracking resource tracking for 100 pods per node](https://github.com/kubernetes/kubernetes/issues/61640) - - * Need Google help (gke only) - - * Patch release fix, ACK by dchen - - * [[test flakes] master-scalability suites ](https://github.com/kubernetes/kubernetes/issues/60589) - - * Not blocking - -* PR review - - * None - -* Test signal review - - * [https://github.com/kubernetes/kubernetes/issues/61640](https://github.com/kubernetes/kubernetes/issues/61640) - - * Gke only, should not be a blocker, but probably need to patch up in following patch release for the testing environment - - * [https://github.com/kubernetes/kubernetes/issues/61645](https://github.com/kubernetes/kubernetes/issues/61645) - - * Dashboard issue again - - * [https://github.com/kubernetes/kubernetes/issues/61483](https://github.com/kubernetes/kubernetes/issues/61483) - - * Due to don’t have branched cross build job - - * Will fix in 1.11 - -* Docs review - -## Date: 3/23/2018 - -Video [Link](https://youtu.be/QLiym7j60f4) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Risk assessment of what is in flight - - * [https://github.com/kubernetes/kubernetes/pull/61536](https://github.com/kubernetes/kubernetes/pull/61536) - - * What the heck? - - * Document known issues and workarounds for: (msau, jrondeau, nchase) - - * [https://github.com/kubernetes/kubernetes/issues/61446](https://github.com/kubernetes/kubernetes/issues/61446) - - * [https://github.com/kubernetes/kubernetes/issues/61456](https://github.com/kubernetes/kubernetes/issues/61456) - - * [https://github.com/kubernetes/kubernetes/issues/61483](https://github.com/kubernetes/kubernetes/issues/61483) - - * This job is not going to work properly, not blocking - - * Move job out of dashboard until it’s properly configured - - * [https://github.com/kubernetes/kubernetes/issues/61485](https://github.com/kubernetes/kubernetes/issues/61485) - - * Done and green - - * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) - - * Status update - - * Once merged, we need to get perf data to understand if it fixes the issue - - * Confidence check on release date - - * Any changes here? - - * Need SIG Scalability to attend Monday and agree to release - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW ~ Based on scalability regression] - - * Mon:** Release v1.10** 5 pm Pacific ~ Caleb to hold the announce until then, even if it ships earlier - - * Mon: release v1.11 alpha - - * M-F: Manage media engagements - - * Tue: Hand-off to release to 1.10 patch manager - - * Thu: Retro - - * Draft 1.11 schedule ASAP - -* Metrics review ↕0 ↑# ↓# [YELLOW] - - * Issues Tracking [Spreadsheet](http://bit.ly/k8s110-issues) - - * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 6 ↑1 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 6 ↑2 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 3 ↕0 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 0 ↕0 - - * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels) issues: 0 ↓1 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 3 ↕0 vs 354 ↑3 closed - - * [Increase fluentd rolling-upgrade maxUnavailable to large value ](https://github.com/kubernetes/kubernetes/pull/61472) - - * needs approve from one of: [@crassirostris](https://github.com/crassirostris) [@piosz](https://github.com/piosz) [@x13n](https://github.com/x13n) - - * [[1.10] Automated cherry pick of #61373: Use inner volume name instead of outer volume name for subpath directory ](https://github.com/kubernetes/kubernetes/pull/61518) - - * Needs approve from one of: [@Random-Liu](https://github.com/random-liu) [@derekwaynecarr](https://github.com/derekwaynecarr) [@tallclair](https://github.com/tallclair) [@vishh](https://github.com/vishh) [@yujuhong](https://github.com/yujuhong) - - * [Fix `PodScheduled` bug for static pod. ](https://github.com/kubernetes/kubernetes/pull/61504) - - * Needs passing tests - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Branch Updates / Branch Health [GREEN] - -* Critical failures [YELLOW] - - * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) - -* Test failure triage/resolution updates [YELLOW] - - * Gce-kubeadm-1.9-on-1.10 - - * [https://github.com/kubernetes/kubernetes/issues/61483](https://github.com/kubernetes/kubernetes/issues/61483) - - * Due to we don’t have a branched cross job - -* Test Infra Updates [GREEN] - -* User-facing Documentation [GREENISH] - -* Marketing [YELLOW] - - * Embargoed blog hitting the streets - - * Interview requests - -* Release notes update [GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - - * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) - - * Edits are done and need confirmation from SIGs - - * Locking edits on the doc, moving to MD - - * Noah doing awesome work tracking things down - -* Announcements / Open Mic - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - - * Props for Noah who had this as his first contributor experience! - -## * * * - - -## Date: 3/22/2018 - -Video [Link](https://youtu.be/5NnZ1wuHo7Y) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Risk assessment of what is in flight - - * [https://github.com/kubernetes/kubernetes/pull/61547](https://github.com/kubernetes/kubernetes/pull/61547#event-1536032521) - - * Should go to master, then be CP’d, but where is the context on this? - - * [https://github.com/kubernetes/kubernetes/pull/61373](https://github.com/kubernetes/kubernetes/pull/61373) - - * [https://github.com/kubernetes/kubernetes/pull/61518](https://github.com/kubernetes/kubernetes/pull/61518) - - * Needs cp-approved from Caleb - - * Needs lgtm from Saad - - * Document known issues and workarounds for: (msau, jrondeau, nchase) - - * [https://github.com/kubernetes/kubernetes/issues/61446](https://github.com/kubernetes/kubernetes/issues/61446) - - * [https://github.com/kubernetes/kubernetes/issues/61456](https://github.com/kubernetes/kubernetes/issues/61456) - - * [https://github.com/kubernetes/kubernetes/issues/61483](https://github.com/kubernetes/kubernetes/issues/61483) - - * Need help from SIG-CL - - * [https://github.com/kubernetes/kubernetes/issues/61485](https://github.com/kubernetes/kubernetes/issues/61485) - - * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) - - * Status update - - * Second run also seems good: - - * INFO: perc50: 2.583489146s, perc90: 3.466873901s, perc99: 4.380595534 - - * Fairly confident now the fix did the trick. Let's get it into 1.10 asap. - - * Follow-up with Shyam - - * Initial RT Lead nomination for 1.11: Josh Berkus - - * Confidence check on release date - - * 70%+ confidence - - * Dims says "SHIP IT!" - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW ~ Based on scalability regression] - - * Mon:** Release v1.10** 5 pm Pacific ~ Caleb to hold the announce until then, even if it ships earlier - - * Mon: release v1.11 alpha - - * M-F: Manage media engagements - - * Tue: Hand-off to release to 1.10 patch manager - - * Thu: Retro - -* Metrics review ↕0 ↑# ↓# [YELLOW] - - * Issues Tracking [Spreadsheet](http://bit.ly/k8s110-issues) - - * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 5 ↑1 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 4 ↕0 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 3 ↑1 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 0 ↕0 - - * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels) issues: 1 ↑1 - - * [[job failed][1.10] ci-kubernetes-e2e-kubeadm-gce-1-9-on-1-10 ](https://github.com/kubernetes/kubernetes/issues/61483) - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 3 ↑2 vs 351 ↑1 closed - - * [Increase fluentd rolling-upgrade maxUnavailable to large value ](https://github.com/kubernetes/kubernetes/pull/61472) - - * Ask Shyam - - * [[1.10] Automated cherry pick of #61373: Use inner volume name instead of outer volume name for subpath directory ](https://github.com/kubernetes/kubernetes/pull/61518) - - * [Fix `PodScheduled` bug for static pod. ](https://github.com/kubernetes/kubernetes/pull/61504) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Branch Updates / Branch Health [GREEN] - -* Critical failures [YELLOW] - - * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) - -* Test failure triage/resolution updates [YELLOW] - - * Gce-kubeadm-1.9-on-1.10 - - * Should this be blocking? There’s no equivalent job in master-blocking - - * [https://github.com/kubernetes/kubernetes/issues/61483](https://github.com/kubernetes/kubernetes/issues/61483) - - * Who owns this? - - * Soak test looks bad? - - * [https://testgrid.k8s.io/sig-release-1.10-all#gci-gce-soak-1.10](https://testgrid.k8s.io/sig-release-1.10-all#gci-gce-soak-1.10) - - * Bumped timeout 2h but still timing out? Gonna bump again... - -* Test Infra Updates [GREEN] - -* User-facing Documentation [GREENISH] - - * One outstanding PR. Plan B can merge without requested changes - - * Generated docs still not done. Should be able to make progress today, but might need to call in help. - - * Need to check merge status (merged branches yesterday but wrestling with git mysteries) - -* Marketing [YELLOW] - - * **All hands on deck to review the ****[blo**g](https://docs.google.com/document/d/1_Wr6bnuWBP8oBGG_PdawUxK4f8aHO6eVyTlQy_rB1rM/edit)**!** - - * **Volunteers:** - - * **@Ihor** - - * **SIGs needed:** - - * **Node** - - * **API-Machinery** - - * **Need to answer ****[thes**e](https://docs.google.com/document/d/1k8wMmIMgKIb42cgRV1Zpa3ng2LsfBrY1ewHCyL3ih6M/edit)** questions** - -* Release notes update [GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - - * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) - - * Running behind on editing but will have it done today, expect markdown version tomorrow morning. Anybody who doesn't respond to comments by then will have to live with our interpretation of their release notes. We will run "TLDR" by the sigs in slack - -* Announcements / Open Mic - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - -## * * * - - -## Date: 3/21/2018 - -Video [Link](https://youtu.be/5NnZ1wuHo7Y) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Risk assessment of what is in flight - - * [https://github.com/kubernetes/kubernetes/pull/61373](https://github.com/kubernetes/kubernetes/pull/61373) - - * Should be picked into 1.10 release - - * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) - - * looking promising! - - * Need SIG Node to look into the bug/reversion - - * [https://github.com/kubernetes/kubernetes/pull/59953](https://github.com/kubernetes/kubernetes/pull/59953) - - * Random-liu looking into this - - * fluentd issue not release blocking, but needs follow-up - - * @shyam & @ working on this - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW ~ Based on scalability regression] - - * Mon:** Release v1.10** - - * Mon: release v1.11 alpha - - * M-F: Manage media engagements - - * Tue: Hand-off to release to 1.10 patch manager - - * Thu: Retro - -* Metrics review ↕0 ↑# ↓# [YELLOW] - - * Issues Tracking [Spreadsheet](http://bit.ly/k8s110-issues) - - * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 4 ↓1 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 4 ↓1 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 2 ↓1 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 0 ↕0 - - * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels) issues: 0 ↕0 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 1 ↕0 vs 350 ↑2 closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels+) (links to PRs of interest) - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-longterm) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Branch Updates / Branch Health [GREEN] - -* Critical failures [YELLOW] - - * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) - -* Test failure triage/resolution updates [YELLOW] - - * gke jobs - fixed from gke side - - * Gke-1.10 need to enable dashboard addon - - * [https://testgrid.k8s.io/sig-release-1.10-blocking#gke-1.10](https://testgrid.k8s.io/sig-release-1.10-blocking#gke-1.10) - - * Similar to [https://github.com/kubernetes/test-infra/pull/7217](https://github.com/kubernetes/test-infra/pull/7217), will do shortly - - * Should the dashboard test be in it’s own feature? - - * Gce-kubeadm-1.9-on-1.10 - - * Should this be blocking? There’s no equivalent job in master-blocking - - * Need to ping SIG Cluster-Lifecycle ~ Sen will create an issue - - * Soak test looks bad? - - * [https://testgrid.k8s.io/sig-release-1.10-all#gci-gce-soak-1.10](https://testgrid.k8s.io/sig-release-1.10-all#gci-gce-soak-1.10) - - * Scalability performance: - - * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) - - * Looks like [https://github.com/kubernetes/kubernetes/pull/59953](https://github.com/kubernetes/kubernetes/pull/59953) is the culprit? - -* Test Infra Updates [GREEN] - -* User-facing Documentation [YELLOW] - - * Down to 3 open docs PRs. Should have all merged by EOD today (all are on docs to finish, no more waiting on tech review) - - * Building api ref docs at a minimum today (previews requested by a couple of folks) - - * Should be green by tomorrow (Thursday, March 22) - -* Marketing [YELLOW] - - * **All hands on deck to review the ****[blo**g](https://docs.google.com/document/d/1_Wr6bnuWBP8oBGG_PdawUxK4f8aHO6eVyTlQy_rB1rM/edit)**!** - - * **Volunteers:** - - * **@jdumars** - - * **@Ihor** - - * **SIGs needed:** - - * **Networking** - - * **Node** - - * **API-Machinery** - - * **Need to answer ****[thes**e](https://docs.google.com/document/d/1k8wMmIMgKIb42cgRV1Zpa3ng2LsfBrY1ewHCyL3ih6M/edit)** questions** - -* Release notes update [GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - - * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) - -* Announcements / Open Mic - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - -## * * * - - -## Date: 3/20/2018 - -Video [Link](https://youtu.be/BZ1jshT198E) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Risk assessment of what is in flight - - * Need to evaluate/approve: (approved by RT) [https://github.com/kubernetes/kubernetes/pull/61411](https://github.com/kubernetes/kubernetes/pull/61411) which elminates the need for: - - * [https://github.com/kubernetes/kubernetes/pull/61313](https://github.com/kubernetes/kubernetes/pull/61313) - - * [https://github.com/kubernetes/kubernetes/pull/61311](https://github.com/kubernetes/kubernetes/pull/61311) - - * [https://github.com/kubernetes/website/pull/7678](https://github.com/kubernetes/website/pull/7678) - - * [#61299](https://github.com/kubernetes/kubernetes/pull/61299) (downgrade test change) vs -[#61282](https://github.com/kubernetes/kubernetes/pull/61282) + [#61316](https://github.com/kubernetes/kubernetes/pull/61316) (1.9 PVC controller change + PV controller pick) - - * Needed to get green downgrade test - - * In review as a single PR - - * Mon: End of code freeze (EOD PST) - - * Mon: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) - - * Mon: Master branch re-opens for 1.11 - - * Mon: PRs for v1.10.0 must be cherry picked to release-1.10 - - * Tue: Notify kubernetes-dev of lifting code freeze - - * Issue triage, clean-up, resolution - - * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) - - * [@wasylkowski-a](https://github.com/wasylkowski-a) working on this - - * Need a go/no-go on this by Thursday - - * **Need to escalate to ______ ~ what is the actual impact of this?** - - * **5k nodes, time for pods to start up** - - * **@Wojtekt @shyam && SIG Scalability** - - * **Need to look at ****[kubemark 5k node**s](https://testgrid.k8s.io/sig-scalability-kubemark)** test for comparison** - - * **[http://perf-dash.k8s.i**o](http://perf-dash.k8s.io)** ** - - * **as opposed to gce-5kNodes-master-DensityPodStartup ** - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW ~ Based on scalability regression] - - * Mon:** Release v1.10** - - * Mon: release v1.11 alpha - - * M-F: Manage media engagements - - * Tue: Hand-off to release to 1.10 patch manager - - * Thu: Retro - -* Metrics review ↕0 ↑# ↓# [YELLOW] - - * Issues Tracking [Spreadsheet](http://bit.ly/k8s110-issues) - - * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 5 ↓4 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 5 ↓4 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 3 ↓1 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 0 ↕0 - - * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels) issues: 0 ↕0 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 1 ↓4 vs 348 ↑4 closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * **[disable DaemonSet scheduling feature for 1.10** ](https://github.com/kubernetes/kubernetes/pull/61411) - - * **[Automated cherry pick of #61411: disable DaemonSet scheduling feature for 1.10** ](https://github.com/kubernetes/kubernetes/pull/61412) - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels+) (links to PRs of interest) - - * [Always Start pvc-protection-controller and pv-protection-controller ](https://github.com/kubernetes/kubernetes/pull/61324) - - * Needs review, approvals, etc. - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-longterm) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Branch Updates / Branch Health [GREEN] - -* Critical failures [YELLOW] - - * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) - -* Test failure triage/resolution updates [YELLOW] - - * All gke jobs start to fail since last night - - * [https://github.com/kubernetes/kubernetes/issues/61416](https://github.com/kubernetes/kubernetes/issues/61416) - - * **Looks like a gke issue, trying to track down** - - * Alpha-feature suite failing: - - * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) - - * Scalability performance/flake: - - * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) - - * **@wasylkowski-a continuing bisecting ** - - * **Latest update: ****[https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-37451104**6](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-374511046)** ** - -* Test Infra Updates [GREEN] - - * Lifted freeze - - * cblecker mentioned it should not nagging 1.11 prs? - -* User-facing Documentation [YELLOW] - - * PRs still trickling in, but small - - * [https://github.com/kubernetes/website/pull/7678](https://github.com/kubernetes/website/pull/7678) now moot, per ^^ (not yet closed, but tracking) - - * 1.9 downgrade issue still needs attention/doc - - * Jordan to help get this over the line - - * Generated docs this week; starting today - -* Marketing [YELLOW] - - * **All hands on deck to review the ****[blo**g](https://docs.google.com/document/d/1_Wr6bnuWBP8oBGG_PdawUxK4f8aHO6eVyTlQy_rB1rM/edit)**!** - - * **Volunteers:** - - * **@jdumars** - - * **@Ihor** - - * **SIGs needed:** - - * **Networking** - - * **Node** - - * **API-Machinery** - - * **Need to answer ****[thes**e](https://docs.google.com/document/d/1k8wMmIMgKIb42cgRV1Zpa3ng2LsfBrY1ewHCyL3ih6M/edit)** questions** - -* Release notes update [GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - - * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) - - * Expect it to be edited down by Wednesday - -* Announcements / Open Mic - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - -## * * * - - -## Date: 3/19/2018 - -Video [Link](https://youtu.be/Kiu4lUPxJig) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Risk assessment of what is in flight - - * [https://github.com/kubernetes/kubernetes/pull/61313](https://github.com/kubernetes/kubernetes/pull/61313) - - * - prefer to change yaml file ([https://github.com/kubernetes/kubernetes/pull/61311](https://github.com/kubernetes/kubernetes/pull/61311) ) instead of depending an optional admission controller ([https://github.com/kubernetes/kubernetes/pull/61313](https://github.com/kubernetes/kubernetes/pull/61313) ) - - * - I'll update doc ([https://github.com/kubernetes/website/pull/7678](https://github.com/kubernetes/website/pull/7678) ) about that: Pod using hostNetwork should tolerate NetworkUnavailable taints - - * - I'll update release note for it - - * Changes to make alpha green - - * Automatically add tolerations for the conditions in an admission plugin [https://github.com/kubernetes/kubernetes/pull/61313](https://github.com/kubernetes/kubernetes/pull/61313) - - * or Adding particular tolerations to a particular component ~ [https://github.com/kubernetes/kubernetes/pull/61311](https://github.com/kubernetes/kubernetes/pull/61311) - - * Low risk - - * for 1.11 if graduating to beta, we need to revisit this discussion because it could impact daemonsets - - * Moving forward with this - - * [https://github.com/kubernetes/kubernetes/pull/61324](https://github.com/kubernetes/kubernetes/pull/61324) - - * By default, interactions between 1.10/1.11 are fine - - * Consider this non-blocking - - * [#61299](https://github.com/kubernetes/kubernetes/pull/61299) (downgrade test change) vs -[#61282](https://github.com/kubernetes/kubernetes/pull/61282) + [#61316](https://github.com/kubernetes/kubernetes/pull/61316) (1.9 PVC controller change + PV controller pick) - - * Needed to get green downgrade test - - * Test changes still need review - - * JBerkus to get SIG-Storage attention - - * Need to test these somehow - - * Ping @krousey on this - - * Downgrade signal is ok even with PVC namespace cleanup failure - - * Will document as known issue with fix in progress for 1.9.x to clean up finalizers ([#61282](https://github.com/kubernetes/kubernetes/pull/61282) + [#61316](https://github.com/kubernetes/kubernetes/pull/61316)) - - * (not blocking) [https://github.com/kubernetes/kubernetes/issues/61100](https://github.com/kubernetes/kubernetes/issues/61100) - - * Ambiguous and far-reaching, currently P0 in cloud providers - - * Might be worked by @khenidak (will know more tonight) - - * 1.9.x is broken for Azure and OpenStack - - * Need document under known issues - - * [https://github.com/kubernetes/kubernetes/pull/61302](https://github.com/kubernetes/kubernetes/pull/61302) - - * diff between alpha and this is rate limiting - - * Approved (**needs to be in exception workflow**) - - * Mon: End of code freeze (EOD PST) - - * Cole OOO - - * Test jobs for 1.9 to master, signal goes way down (are there equivalent ug/dg jobs?) - yes - - * Mon: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) - - * Mon: Master branch re-opens for 1.11 - - * Mon: PRs for v1.10.0 must be cherry picked to release-1.10 - - * Mon: Notify kubernetes-dev of lifting code freeze - - * Issue triage, clean-up, resolution - - * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) - - * [@wasylkowski-a](https://github.com/wasylkowski-a) working on this - - * Need a go/no-go on this by Thursday - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] - - * Mon:** Release v1.10** - - * Mon: release v1.11 alpha - - * M-F: Manage media engagements - - * Tue: Hand-off to release to 1.10 patch manager - - * Thu: Retro - -* Metrics review ↕0 ↑# ↓# [YELLOW] - - * Issues Tracking [Spreadsheet](http://bit.ly/k8s110-issues) - - * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 9 ↕0 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 9 ↕0 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 4 ↓2 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 0 ↓4 - - * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels) issues: 0 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 5 ↑1 vs 344 ↑7 closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [https://github.com/kubernetes/kubernetes/pull/61127](https://github.com/kubernetes/kubernetes/pull/61127) ~ **must be merged right before 1.10 goes out** - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Added NetworkUnavailable toleration to pod using host network. ](https://github.com/kubernetes/kubernetes/pull/61313) - - * Needs review, a-f-m label, approvals - - * [Fix cpu cfs quota flag with pod cgroups ](https://github.com/kubernetes/kubernetes/pull/61294) - - * needs LGTM, a-f-m label, pinged Dawn in Slack, others unresponsive - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Wait for only enough no. of RC replicas to be running in testutil ](https://github.com/kubernetes/kubernetes/pull/61351) - - * Merging once tests are green - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels+) (links to PRs of interest) - - * [Always Start pvc-protection-controller and pv-protection-controller ](https://github.com/kubernetes/kubernetes/pull/61324) - - * Needs review, approvals, etc. - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-longterm) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Branch Updates / Branch Health [GREEN] - -* Critical failures [YELLOW] - - * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) - -* Test failure triage/resolution updates [YELLOW] - - * Alpha-feature suite failing: - - * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) - - * Pending on [https://github.com/kubernetes/kubernetes/pull/61313](https://github.com/kubernetes/kubernetes/pull/61313)** ** - - * Scalability performance/flake: - - * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) - - * **@wasylkowski-a continuing bisecting ** - - * **Latest update: ****[https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-37425185**4](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-374251854)** ** - - * Upgrade suites - - * Mostly green, some one-off flakes, will - - * Downgrade is still busted [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) - - * [https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533) - - * **Test fix in ****[https://github.com/kubernetes/kubernetes/pull/6131**6](https://github.com/kubernetes/kubernetes/pull/61316)** ** - - * **Document into known?** - - * **Doc draft with comments here: ****[https://github.com/kubernetes/website/pull/773**1](https://github.com/kubernetes/website/pull/7731) - - * **@nickchase also aware, we're coordinating for relnotes** - - * **[https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-37377817**9](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-373778179)** saad’s summary** - -* Test Infra Updates [GREEN] - - * All ok - -* User-facing Documentation [YELLOW] - - * PRs still trickling in, but small - - * [https://github.com/kubernetes/website/pull/7678](https://github.com/kubernetes/website/pull/7678) looks ready to merge; putting hold until further notification (per item ^^) - - * 1.9 downgrade issue still needs attention/doc - - * Jordan to help get this over the line - - * Meeting with Steve Perry re: auto doc generation - -* Marketing [YELLOW] - - * **All hands on deck to review the ****[blo**g](https://docs.google.com/document/d/1_Wr6bnuWBP8oBGG_PdawUxK4f8aHO6eVyTlQy_rB1rM/edit)**!** - - * **Volunteers:** - - * **@jdumars** - - * **@Ihor** - - * **SIGs needed:** - - * **Networking** - - * **Node** - - * **API-Machinery** - - * **Need to answer ****[thes**e](https://docs.google.com/document/d/1k8wMmIMgKIb42cgRV1Zpa3ng2LsfBrY1ewHCyL3ih6M/edit)** questions** - -* Release notes update [GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - - * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) - - * Expect it to be edited down by Wednesday - - * One last PR to catch last changes - -* Announcements / Open Mic - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - -## * * * - - -## Date: 3/16/2018 - -Video [Link](https://youtu.be/gdW3a7PvBbs) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Issue triage, clean-up, resolution - - * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) - - * [@wasylkowski-a](https://github.com/wasylkowski-a) working on this - - * **Staffing**: Mehdy (@mbohlool) is on vacation and handing off 1.9 branch duties to Joe Betz (@jpbetz) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] - - * Mon: End of code freeze (EOD PST) - - * Mon: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) - - * Mon: Master branch re-opens for 1.11 - - * Mon: PRs for v1.10.0 must be cherry picked to release-1.10 - - * Mon: Notify kubernetes-dev of lifting code freeze - -* ** **[Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for **_week 13_*** *[YELLOW] - - * Mon:** Release v1.10** - - * Mon: release v1.11 alpha - - * M-F: Manage media engagements - - * Tue: Hand-off to release to 1.10 patch manager - - * Thu: Retro - -* Metrics review ↕0 ↑# ↓# [YELLOW] - - * Issues Tracking [Spreadsheet](http://bit.ly/k8s110-issues) - - * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 9 ↓8 Suspect bot removed? - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 9 ↓8 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 6 ↓5 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 4 ↓2 - - * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels) issues: - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 4 ↓3 vs 337 ↑9 closed (**velocity is slowing**) - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [https://github.com/kubernetes/kubernetes/pull/61127](https://github.com/kubernetes/kubernetes/pull/61127) ~ **must be merged right before 1.10 goes out** - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Added unschedulable taint ](https://github.com/kubernetes/kubernetes/pull/61161) - - * Milestone not approved - - * Needs general attention, esp since tests were manual - - * [(WIP) Add AUTOSCALER_ENV_VARS to kube-env to hotfix cluster autoscaler ](https://github.com/kubernetes/kubernetes/pull/61119) - - * **Needs LGTM / Approve** - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels+) (links to PRs of interest) - - * [Fail the ingress test if it timesout getting address ](https://github.com/kubernetes/kubernetes/pull/61234) - - * Needs SIG, approved-for-milestone labels - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-longterm) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Branch Updates / Branch Health [GREEN] - -* Critical failures [YELLOW] - - * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) - -* Test failure triage/resolution updates [YELLOW] - - * GKE upgrade test failing - - * [https://github.com/kubernetes/kubernetes/issues/61290](https://github.com/kubernetes/kubernetes/issues/61290) - - * Gce presubmit was failing on logging sink quota - - * Manually cleaned up stale logging sinks - - * This resource does not have a creation timestamp (?!) thus test-infra janitor cannot help with that - - * It should not be leaking to start with?! Sig-instrumentation want to investigate there. - - * Alpha-feature suite failing: - - * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) - - * [https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442](https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442) - - * **Fix in ****[https://github.com/kubernetes/kubernetes/pull/6116**1](https://github.com/kubernetes/kubernetes/pull/61161)** ** - - * **Still pending review** - - * Gce-serial has one last test failure - - * Should restart all nodes: [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) waiting for triage updates - - * [https://github.com/kubernetes/kubernetes/issues/60763#issuecomment-373358971](https://github.com/kubernetes/kubernetes/issues/60763#issuecomment-373358971) - - * fluentd's asking more cpu resources than 1.9 - - * Hopefully fixed by [https://github.com/kubernetes/kubernetes/pull/61269](https://github.com/kubernetes/kubernetes/pull/61269) - - * **re-opened until testgrid goes green** - - * Scalability performance/flake: - - * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) - - * **@wasylkowski-a continuing bisecting ** - - * **[https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-37365535**9](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-373655359)** still going on** - - * Run same test against the tip of the tree and see if the revert already handled the problem - - * Upgrade suites - - * 1.9 fixes merged - - * [http://testgrid.k8s.io/sig-release-master-upgrade#gce-1.9-master-upgrade-cluster](http://testgrid.k8s.io/sig-release-master-upgrade#gce-1.9-master-upgrade-cluster) has one last serial issue, same as [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) - - * [http://testgrid.k8s.io/sig-release-master-upgrade#gce-1.9-master-upgrade-cluster-parallel](http://testgrid.k8s.io/sig-release-master-upgrade#gce-1.9-master-upgrade-cluster-parallel) looks like `Proxy version v1` is still an issue? - - * Reopened [https://github.com/kubernetes/kubernetes/issues/60769](https://github.com/kubernetes/kubernetes/issues/60769) - - * Downgrade is still busted [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) - - * [https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533) - - * **AI? Maybe need to disable admission controller?** - - * **[https://github.com/kubernetes/kubernetes/pull/6128**2](https://github.com/kubernetes/kubernetes/pull/61282)** opened in 1.9 to always start pvc-protection-controller** - - * **Document into known?** - - * **Doc draft with comments here: ****[https://github.com/kubernetes/website/pull/773**1](https://github.com/kubernetes/website/pull/7731) - - * **@nickchase also aware, we're coordinating for relnotes** - - * **[https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-37377817**9](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-373778179)** saad’s summary** - -* Test Infra Updates [GREEN] - -* User-facing Documentation [YELLOW] - - * Docs PRs are continuing to trickle in, some against the wrong branch (we know, it can be confusing). In high careful triage mode. - - * PVC Protection (1.9)/Storage Object in Use Protection (1.10) docs are getting resolved. Plan B we'll finish fixing after release. - - * Generated docs coming next week - - * Jennifer traveling 3/16, can't make release burndown - -* Marketing [YELLOW] - - * **Jaice/Ihor final review & draft by EOD Monday** - - * **Need to answer ****[thes**e](https://docs.google.com/document/d/1k8wMmIMgKIb42cgRV1Zpa3ng2LsfBrY1ewHCyL3ih6M/edit)** questions** - - * Need to figure out what "An average Kubernetes release" gets marketed like - -* Release notes update [GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - - * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) - -* Announcements / Open Mic - - * SIG Scheduling update - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - -## * * * - - -## Date: 3/15/2018 - -Video [Link](https://youtu.be/p7Nlrub-dg4) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Issue triage, clean-up, resolution - - * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) - - * [@wasylkowski-a](https://github.com/wasylkowski-a) working on this - - * **Staffing**: Shyam hand-off to [@wasylkowski-a](https://github.com/wasylkowski-a), Mehdy (@mbohlool) is on vacation and handing off 1.9 branch duties to Joe Betz (@jpbetz) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] - - * Mon: End of code freeze (EOD PST) - - * Mon: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) - - * Mon: Master branch re-opens for 1.11 - - * Mon: PRs for v1.10.0 must be cherry picked to release-1.10 - - * Mon: Notify kubernetes-dev of lifting code freeze - -* ** **[Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for **_week 13_*** *[YELLOW] - - * Mon:** Release v1.10** - - * Mon: release v1.11 alpha - - * M-F: Manage media engagements - - * Tue: Hand-off to release to 1.10 patch manager - - * Thu: Retro - -* Metrics review ↕0 ↑# ↓# [RED] - - * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 17 ↑1 (up 3 in 2 days) - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 17 ↑1 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 11 ↕0 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 6 ↕0 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 7 ↓1 vs 328 ↑2 closed (**velocity is slowing**) - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [https://github.com/kubernetes/kubernetes/pull/61127](https://github.com/kubernetes/kubernetes/pull/61127) ~ **must be merged right before 1.10 goes out** - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Fix deprecated gcloud compute networks --mode switches. ](https://github.com/kubernetes/kubernetes/pull/61203) - - * Needs approval from [@gmarek](https://github.com/gmarek) - - * [Added unschedulable taint ](https://github.com/kubernetes/kubernetes/pull/61161) - - * Milestone not approved - - * Needs general attention, esp since tests were manual - - * [(WIP) Add AUTOSCALER_ENV_VARS to kube-env to hotfix cluster autoscaler ](https://github.com/kubernetes/kubernetes/pull/61119) - - * **Needs LGTM / Approve** - - * [Fix issue with race condition during pod deletion ](https://github.com/kubernetes/kubernetes/pull/61071) - - * Needs clarification from [jsafrane](https://github.com/jsafrane) - - * Needs approve - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Backoff only when failed pod shows up ](https://github.com/kubernetes/kubernetes/pull/60985) - - * **_Still_**** needs LGTM from @janetkuo in the PR ** - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-longterm) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Branch Updates / Branch Health [GREEN] - - * beta.4 cut last night - -* Critical failures [RED] - - * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) - -* Test failure triage/resolution updates [YELLOW] - - * Brief outage for gke suite yesterday, due to gcloud killed a deprecated flag in staging - - * Fixed by [https://github.com/kubernetes/test-infra/pull/7278](https://github.com/kubernetes/test-infra/pull/7278) - - * K8s fix [https://github.com/kubernetes/kubernetes/pull/61203](https://github.com/kubernetes/kubernetes/pull/61203) - need to get in before next gcloud release - - * Retro: someone need to watch for gcloud warnings? [https://github.com/kubernetes/kubernetes/issues/54238](https://github.com/kubernetes/kubernetes/issues/54238) was opened half year ago - - * Alpha-feature suite failing: - - * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) - - * [https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442](https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442) - - * **Fix in ****[https://github.com/kubernetes/kubernetes/pull/6116**1](https://github.com/kubernetes/kubernetes/pull/61161)** ** - - * Gce-serial has one last test failure - - * Should restart all nodes: [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) waiting for triage updates - - * [https://github.com/kubernetes/kubernetes/issues/60763#issuecomment-373358971](https://github.com/kubernetes/kubernetes/issues/60763#issuecomment-373358971) - - * fluentd's asking more cpu resources than 1.9 - - * @x13n is still looking into this - - * **Needs update** - - * Scalability performance/flake: - - * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) - - * @wasylkowski-a continuing bisecting - - * Upgrade suites - - * A few 1.9 backport fixes pending - - * Downgrade is still busted [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) - - * [https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533) - - * **AI? Maybe need to disable admission controller?** - - * **Document into known?** - - * **Doc draft with comments here: ****[https://github.com/kubernetes/website/pull/773**1](https://github.com/kubernetes/website/pull/7731) - - * **@nickchase also aware, we're coordinating for relnotes** - -* Test Infra Updates [GREEN] - -* User-facing Documentation [YELLOW] - - * Docs PRs are continuing to trickle in, some against the wrong branch (we know, it can be confusing). In high careful triage mode. - - * PVC Protection (1.9)/Storage Object in Use Protection (1.10) docs are getting resolved. Plan B we'll finish fixing after release. - - * Generated docs coming next week - - * Jennifer traveling 3/16, can't make release burndown - -* Marketing [YELLOW] - - * Only SIG to review was storage - - * Network, security both pretty lean - - * Jaice/Ihor final review & draft by EOD Monday - - * Changes are affecting the blog series, so SIGs/I/J need to look this over ~ 2 of 5 got cut - - * Need to answer [these](https://docs.google.com/document/d/1k8wMmIMgKIb42cgRV1Zpa3ng2LsfBrY1ewHCyL3ih6M/edit) questions - - * "An average Kubernetes release" - -* Release notes update [GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - - * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) - -* Announcements / Open Mic - - * SIG Scheduling is missing docs reviews - - * 3 Blog series not 5 this go around - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - -## * * * - - -## Date: 3/14/2018 - -Video [Link](https://youtu.be/e14tlUBd2jQ) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Issue triage, clean-up, resolution - - * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) - - * **Staffing**: Shyam to hand-off to someone (@Wojtekt is out sick), Mehdy (@mbohlool) is on vacation and handing off 1.9 branch duties to Joe Betz (@jpbetz) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] - - * Mon: End of code freeze (EOD PST) - - * Mon: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) - - * Mon: Master branch re-opens for 1.11 - - * Mon: PRs for v1.10.0 must be cherry picked to release-1.10 - - * Mon: Notify kubernetes-dev of lifting code freeze - -* ** **[Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for **_week 13_*** *[YELLOW] - - * Mon:** Release v1.10** - - * Mon: release v1.11 alpha - - * M-F: Manage media engagements - - * Tue: Hand-off to release to 1.10 patch manager - - * Thu: Retro - -* Metrics review ↕0 ↑# ↓# [RED] - - * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 16 ↑2 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 16 ↑2 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 11 ↑1 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 6 ↑2 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 8 ↓5 vs 326 ↑11 closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [https://github.com/kubernetes/kubernetes/pull/61127](https://github.com/kubernetes/kubernetes/pull/61127) ~ **must be merged right before 1.10 goes out** - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [(WIP) Add AUTOSCALER_ENV_VARS to kube-env to hotfix cluster autoscaler ](https://github.com/kubernetes/kubernetes/pull/61119) - - * **In progress** - - * [Fix issue with race condition during pod deletion ](https://github.com/kubernetes/kubernetes/pull/61071) - - * pull-kubernetes-e2e-gce failing: - - * test/e2e/framework/framework.go:142 -Mar 14 15:10:02.845: Couldn't delete ns: "e2e-tests-volume-xpbrd": namespace e2e-tests-volume-xpbrd was not deleted with limit: **timed out waiting for the condition**, pods remaining: 1 (&errors.errorString{s:"namespace e2e-tests-volume-xpbrd was not deleted with limit: timed out waiting for the condition, pods remaining: 1"}) -test/e2e/framework/framework.go:318 - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Increase apiserver mem-threshold in density test ](https://github.com/kubernetes/kubernetes/pull/61118) - - * **Ready to merge** - - * [Fix error handling in gc e2e test ](https://github.com/kubernetes/kubernetes/pull/60671) - - * **Still Needs LGTM & Approve**, @sig-testing-approvers - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Backoff only when failed pod shows up ](https://github.com/kubernetes/kubernetes/pull/60985) - - * **Still needs LGTM from @janetkuo in the PR ** - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-longterm) - - * [Backoff only when failed pod shows up ](https://github.com/kubernetes/kubernetes/pull/60985) - - * Needs LGTM - - * [Increase loging verbosity for deleting stateful set pods ](https://github.com/kubernetes/kubernetes/pull/60579) - - * Ready to merge - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Branch Updates / Branch Health [GREEN] - - * beta.4 cut last night - -* Critical failures [RED] - - * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) - - * Mem increases in controller manager understood: - - * fluentd scaler PR changed to look at correct thing, so scaler is trying to patch alongside the autoscaler, makes the daemonset controller do a lot of work, and leads to higher memory use: fluentd gcp pods being deleted/re-created. Not sure why they are being deleted, but preceded by calls to kubelet for pod status - Shyam spoke to Daniel, and we need to change the fluentd scaler to not make API calls if the resource request for the object have not changed. Daniel working on pod startup latency issue, and also creating an issue for the instrumentation code. - -* Test failure triage/resolution updates [YELLOW] - - * Alpha-feature suite failing: - - * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) - - * [https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442](https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442) **@k82cn is working on a fix (no updates yet?)** - - * Gke-serial back to green - - * Gce-serial has one last test failure - - * Should restart all nodes: [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) waiting for triage updates - - * [https://github.com/kubernetes/kubernetes/pull/60386](https://github.com/kubernetes/kubernetes/pull/60386)** **might be the culprit? Assigned to sig-apps - - * Scalability performance/flake: - - * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) - - * See Shyam’s update above in critical failures - - * Port kubemark presubmit to use kubetest (failing in 1.7/1.8 which uses older go version and cannot compile kubetest) - - * I’m working on 1.7/1.8 fixes so those two branches can be unblocked - - * Upgrade suites - - * A few 1.9 backport fixes pending - - * Downgrade is still busted [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) - - * [https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533) - - * **AI? Maybe need to disable admission controller?** - - * **Document into known?** - - * **Doc draft with comments here: ****[https://github.com/kubernetes/website/pull/773**1](https://github.com/kubernetes/website/pull/7731) - - * **@nickchase also aware, we're coordinating for relnotes** - -* Test Infra Updates [GREEN] - -* User-facing Documentation [YELLOW] - - * Docs PRs are continuing to trickle in, some against the wrong branch (we know, it can be confusing). In high careful triage mode. - - * A bit of a mess with docs for renamed beta feature. Anyone available to help pick through what we should do about PVC Protection (1.9)/Storage Object in Use Protection (1.10)? - - * Related to previous, looks like docs had better track Downgrade busted issue. We have a doc in, but … it needs a lotta love. - - * Asking for help with generated docs (helpers identified in sig-docs) - -* Marketing [GREEN] - -* Release notes update [RED/YELLOW/GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - - * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) - -* Announcements / Open Mic - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - - * Scalability is a big problem, and needs to be dealt with earlier ([https://github.com/kubernetes/community/blob/master/sig-scalability/processes/formal-scalability-processes.md](https://github.com/kubernetes/community/blob/master/sig-scalability/processes/formal-scalability-processes.md)) ~ need more attention on this,** it is a project risk! ** - - * Need consistent place for procedural docs related to "known issues" - -## * * * - - -## Date: 3/13/2018 - -Video [Link](https://youtu.be/kcKw57uEp20) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * **CRUNCH WEEK!!** - - * Begin M-F Burndown meetings - - * Wed: End of code freeze (EOD PST) - - * Wed: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) - - * Wed: Master branch re-opens for 1.11 - - * Wed: PRs for v1.10.0 must be cherry picked to release-1.10 - - * Thu: Notify kubernetes-dev of lifting code freeze - - * Fri: Initial go/no-go prediction for the release - - * **All-hands on deck for missing docs** - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[RED] - - * **Wed: Release v1.10 3/21/2018** - - * release v1.11 alpha - - * Manage media engagements - - * Hand-off to release to 1.10 patch manager - - * Prep for retro - -* Metrics review ↕0 ↑# ↓# [RED] - - * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 14 ↓4 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 14 ↓4 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 10 ↓2 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 4 ↓12 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 13 ↓3 vs 315 ↑9 closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * We will get one PR from sig-cluster-lifecycle for kubeadm that will need to merge just before we cut v1.10 release. Similar to what was in [https://github.com/kubernetes/kubernetes/pull/56599](https://github.com/kubernetes/kubernetes/pull/56599) for 1.9. @timothysc will be creating a PR. - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Bump to etcd 3.1.12 to pick up critical fix](https://github.com/kubernetes/kubernetes/pull/60998)[ ](https://github.com/kubernetes/kubernetes/pull/60998)(merged) - - * **Pinged sttts, mikedanese** - - * [Use grpc to improve the CPU utilization of the logging agent. ](https://github.com/kubernetes/kubernetes/pull/60981)(merged) - - * **Ready to merge** - - * [Find most recent modified date for fluentd buffers recursively. ](https://github.com/kubernetes/kubernetes/pull/60951) - - * **Ready to merge** - - * [Fix default auditing options. ](https://github.com/kubernetes/kubernetes/pull/60739) - - * **Tests failing** - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Update Kubelet command option description for IPv6 ](https://github.com/kubernetes/kubernetes/pull/60737) - - * **Added ****[@dchen110**7](https://github.com/dchen1107)** ****[@Random-Li**u](https://github.com/random-liu)** ****[@yujuhon**g](https://github.com/yujuhong)** to PR** - - * [Use pod UID as cache key instead of namespace/name ](https://github.com/kubernetes/kubernetes/pull/61069) - - * **Needs LGTM & Approve, @****sig-scheduling-maintainers** - - * [Fix error handling in gc e2e test ](https://github.com/kubernetes/kubernetes/pull/60671) - - * **Needs LGTM & Approve**, @sig-testing-approvers - - * [Cleanup old upgrading code that is v1.8->v1.9-specific ](https://github.com/kubernetes/kubernetes/pull/60359) - - * **Needs LGTM from ****[@dixud**x](https://github.com/dixudx)** ****[@fabriziopandin**i](https://github.com/fabriziopandini)** ****[@timothys**c](https://github.com/timothysc)** ****[@luxa**s](https://github.com/luxas)** ** - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Backoff only when failed pod shows up ](https://github.com/kubernetes/kubernetes/pull/60985) - - * **Needs LGTM, pinged @janetkuo in the PR**** ** - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Branch Updates / Branch Health [RED/YELLOW/GREEN] - - * Fast forwarded branch this morning. Will fast forward again around noon PST - -* Critical failures [RED/YELLOW/GREEN] - -* Test failure triage/resolution updates [YELLOW] - - * Gke tests back to green now :-) - - * Alpha-feature suite failing: - - * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) - - * [https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442](https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442) **@k82cn is working on a fix ** - - * Gci-gce|gke-serial: two tests left: - - * failing on resource usage tracking ~ - - * [https://github.com/kubernetes/kubernetes/issues/60762](https://github.com/kubernetes/kubernetes/issues/60762) - - * [https://github.com/kubernetes/kubernetes/pull/60981](https://github.com/kubernetes/kubernetes/pull/60981) claim fix the issue, and merged just now - - * Waiting for next run - - * Should restart all nodes: [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) waiting for triage updates - - * @Crassirostris is looking into it - - * Scalability performance/unstability: - - * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) - - * Still tracking down performance caused by etcd version - - * **[https://github.com/kubernetes/kubernetes/pull/6099**8](https://github.com/kubernetes/kubernetes/pull/60998) - - * ^^ merged just now, waiting for result - - * Shyam still doing regression test - - * Upgrade suites - - * A few 1.9 backport fixes pending - - * Downgrade is still busted [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) - - * [https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533) - - * **AI? Maybe need to disable admission controller?** - - * **Document into known?** - -* Test Infra Updates [GREEN] - -* User-facing Documentation [GREEN] - - * 3 docs PRs outstanding: 1 awaiting final tech review (could be merged without, just being extra careful), 1 waiting on final copyedit changes (could also be merged without, @jrondeau can make that call if need be), 1 landed this morning and needs only confirmation that it belongs in the 1.10 docs (not master and therefore published immediately) - - * Asking for help with generated docs (helpers identified in sig-docs) - -* Marketing [GREEN] - -* Release notes update [RED/YELLOW/GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - -* Announcements / Open Mic - - * RC1 Monday 19th - - * Code freeze lifting Monday 19th mid-day - - * **New release date Monday 26th** - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - -## * * * - - -## Date: 3/12/2018 - -Video [Link](https://youtu.be/xuScNCEaHJ4) - -Attending: - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * **CRUNCH WEEK!!** - - * Begin M-F Burndown meetings - - * Wed: End of code freeze (EOD PST) - - * Wed: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) - - * Wed: Master branch re-opens for 1.11 - - * Wed: PRs for v1.10.0 must be cherry picked to release-1.10 - - * Thu: Notify kubernetes-dev of lifting code freeze - - * Fri: Initial go/no-go prediction for the release - - * **All-hands on deck for missing docs** - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[RED/YELLOW/GREEN] - - * **Wed: Release v1.10 3/21/2018** - - * release v1.11 alpha - - * Manage media engagements - - * Hand-off to release to 1.10 patch manager - - * Prep for retro - -* Metrics review ↕0 ↑# ↓# [RED/YELLOW/GREEN] - - * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 18 ↓4 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 18 ↓2 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↓1 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 12 ↓1 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 16 ↑1 Review Needed - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 16 ↑1 vs 306 ↑11 closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Bump to etcd 3.1.12 to pick up critical fix ](https://github.com/kubernetes/kubernetes/pull/60998) - - * [Use grpc to improve the CPU utilization of the logging agent. ](https://github.com/kubernetes/kubernetes/pull/60981) - - * [Find most recent modified date for fluentd buffers recursively. ](https://github.com/kubernetes/kubernetes/pull/60951) - - * [Fix default auditing options. ](https://github.com/kubernetes/kubernetes/pull/60739) **(Needs attention)** - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [fix show-all option description ](https://github.com/kubernetes/kubernetes/pull/61022) - - * [Fix error handling in gc e2e test ](https://github.com/kubernetes/kubernetes/pull/60671) - - * [Cleanup old upgrading code that is v1.8->v1.9-specific ](https://github.com/kubernetes/kubernetes/pull/60359) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Backoff only when failed pod shows up ](https://github.com/kubernetes/kubernetes/pull/60985) **(Needs attention) ** - - * [prevent conformance test failure in DIND scenario ](https://github.com/kubernetes/kubernetes/pull/60811) **(Needs attention) ** - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Branch Updates / Branch Health [No status] - - * No update - -* Critical failures [YELLOW] - - * Alpha feature fails ~ Sen to open issue - - * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) - - * GKE problem with the dashboard being disabled ~ - - * Ben has a fix? [https://github.com/kubernetes/test-infra/pull/7217](https://github.com/kubernetes/test-infra/pull/7217) - -* Test failure triage/resolution updates [YELLOW] - - * Gci-gke|pull-gke failing on a sig-ui test [https://github.com/kubernetes/kubernetes/issues/60767](https://github.com/kubernetes/kubernetes/issues/60767) - - * Gci-gce|gke-serial: - - * failing on resource usage tracking ~ - - * [https://github.com/kubernetes/kubernetes/issues/60762](https://github.com/kubernetes/kubernetes/issues/60762) - - * [https://github.com/kubernetes/kubernetes/pull/60981](https://github.com/kubernetes/kubernetes/pull/60981) claim fix the issue - - * Flexvolume e2e fix: [https://github.com/kubernetes/kubernetes/pull/60859](https://github.com/kubernetes/kubernetes/pull/60859) - - * Should restart all nodes: [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) waiting for triage updates - - * **Need to hassle the sig** - - * Scalability performance/unstability: - - * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) - - * Still tracking down performance caused by etcd version - - * **Probably need to invite sig for an update ****here****?** - - * **[https://github.com/kubernetes/kubernetes/pull/6099**8](https://github.com/kubernetes/kubernetes/pull/60998) - - * **To be tracked as an individual item** - - * (also related etcd experimentation: [https://github.com/kubernetes/kubernetes/pull/61037](https://github.com/kubernetes/kubernetes/pull/61037)) - - * etcd with Shyam - - * Reversion helped fix the issue, but there is another regression (over 5 second SLO) - - * Second round of bisection to ID problem - - * ETA? Understand/debug by hopefully Wed - - * Another scalability/performance regression [issue](https://github.com/kubernetes/kubernetes/issues/60500) [60500](https://github.com/kubernetes/kubernetes/issues/60500) - - * Not super serious, but may be something behind it - - * Unrelated to etcd regression - - * Upgrade suites - - * A few 1.9 backport fixes pending - - * Downgrade is still busted [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) - -* Test Infra Updates [No update] - -* User-facing Documentation [YELLOW] - - * Docs in "unusually good shape" woo! - - * A couple of new docs over the weekend, and need to synchronize with Ihor - -* Marketing [GREEN] - - * Refine blog post so an early draft can go to media - - * Get permission for interviews based on features - - * Due by Wednesday - - * AI: Jaice, Ihor, Caleb ~ up front, title, features section review - - * Kaitlyn updating 5 blog series - - * Jaice - project velocity - - * Case studies/eco highlights done - - * Kaitlyn working on webinar scheduling - - * Needs a "source of truth" review - - * Aparna to review with Brian/Tim - - * Needs a formal sign off - -* Release notes update [YELLOW] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) ([https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#)) - - * They are not perfect, but they are mostly there - - * 93 pages, 70 pages of extraneous info that needs to be merged - - * Need help getting themes in & some unknown items reconciled - - * Need a docs hack ~ Jaice to schedule - -* Announcements / Open Mic - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - -* * * - - -## Date: 3/9/2018 - -Video [Link](https://youtu.be/JU8ZwLScA4Q) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Close out docs PRs by EOD today - - * 4 outstanding docs PRs, mostly there - - * Still need info on storage feature (J to follow-up with Saad Ali) - - * Content generation will happen next week - - * Good idea what release notes looks like - - * Generated version [draft](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit) - - * Release themes by Wednesday - - * Sort out release branch health (flakes vs. real) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] - - * **CRUNCH WEEK!!** - - * Begin M-F Burndown meetings - - * End of code freeze (EOD PST) - - * Perform final branchff - - * Master branch re-opens for 1.11 - - * PRs for v1.10.0 must be cherry picked to release-1.10 - - * Notify kubernetes-dev of lifting code freeze - - * Initial go/no-go prediction for the release - - * All-hands on deck for missing docs - -* Metrics review ↕0 ↑# ↓# [YELLOW] - - * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 22 ↓2 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 20 ↓2 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 1 ↕0 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 13 ↓2 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 0 ↕0 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 15 ↓1 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 15 ↕0 vs 295 ↑17 closed - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Fix default auditing options. ](https://github.com/kubernetes/kubernetes/pull/60739)(depends on [#60926](https://github.com/kubernetes/kubernetes/pull/60926) merging first) - - * [Make log audit backend configurable in GCE ](https://github.com/kubernetes/kubernetes/pull/60926)(needs approval) - - * [use temp kubeconfig for fake factory ](https://github.com/kubernetes/kubernetes/pull/60950) (needs a-f-m) - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) ~ 7 - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Exception Requests [GREEN] - - * None - -* Branch Updates / Branch Health [YELLOW] - - * Things are ok, FFW done for today - - * Release building ~ bot user is now in GH org - -* Marketing Updates [GREEN] - - * Jaice still needs to update the blog post - - * Monday, marketing team is looking for user feedback on the beta post-blog post - -* Documentation Updates [GREEN] - - * See above - -* Critical build failures [RED] - - * Serial suite is still failing [https://github.com/kubernetes/kubernetes/issues/60003](https://github.com/kubernetes/kubernetes/issues/60003) - - * Fixes for two DaemonSet test failures merged: [#60747](https://github.com/kubernetes/kubernetes/pull/60747), [#60820](https://github.com/kubernetes/kubernetes/pull/60820) - - * 6 tests in gce-serial - - * Flexvolumes fix opened [https://github.com/kubernetes/kubernetes/pull/60859](https://github.com/kubernetes/kubernetes/pull/60859) - - * Upgrade suites are still failing - - * [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) - - * Downgrade failed due to fail to delete a statefulset, assigned to sig-storage/sig-apps - - * Need to either backport fixes to 1.9 tests or skip those tests - - * **Waiting for feedback from sig-apps ** - - * Scalability suite is still flaky - - * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) - - * Rolling back etcd server: (DONE) [https://github.com/kubernetes/kubernetes/pull/60891](https://github.com/kubernetes/kubernetes/pull/60891) - - * One sig-ui failure in [https://testgrid.k8s.io/sig-release-master-blocking#gci-gke](https://testgrid.k8s.io/sig-release-master-blocking#gci-gke) - -* Test Infra Updates [GREEN] (no update) - -* * * - - -## Date: 3/7/2018 - -Video Link - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Close out docs PRs - - * Good idea what release notes looks like - - * Sort out release branch health (flakes vs. real) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] - - * **CRUNCH WEEK!!** - - * Begin M-F Burndown meetings - - * End of code freeze (EOD PST) - - * Perform final branchff - - * Master branch re-opens for 1.11 - - * PRs for v1.10.0 must be cherry picked to release-1.10 - - * Notify kubernetes-dev of lifting code freeze - - * Initial go/no-go prediction for the release - - * All-hands on deck for missing docs - -* Metrics review ↕0 ↑# ↓# [YELLOW] - - * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 24 ↓3 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 22 ↕0 - - * **API Memory usage regression** - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 1 ↓1 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 15 ↕0 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↓1 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 0 ↓2 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 16 ↑2 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 15 ↓14 vs 278 ↑21 closed - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Fix default auditing options. ](https://github.com/kubernetes/kubernetes/pull/60739) - - * [Revert "Audit use buffered backend" ](https://github.com/kubernetes/kubernetes/pull/60727) - - * [WIP - Prevent read anomalies from the watch cache ](https://github.com/kubernetes/kubernetes/pull/60478) - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Exception Requests [GREEN] - - * None - -* Branch Updates / Branch Health [RED/YELLOW/GREEN] - - * FF this morning to pull in daemonset fixes, but master is still failing. - - * Beta to be cut right after this meeting - -* Marketing Updates [GREEN] - - * - -* Documentation Updates [GREEN] - - * A few features still seem to be in doubt. Straggler PRs are coming in steadily; sig-docs is doing an awesome job of staying on top of doc merges. - -* Critical build failures [YELLOW] - - * Kubeadm suites is back to green now :-) Thanks Ben - - * Submit-queue blocked for a few hours last night - [https://github.com/kubernetes/kubernetes/issues/60870](https://github.com/kubernetes/kubernetes/issues/60870) fixed by [https://github.com/kubernetes/kubernetes/pull/60872](https://github.com/kubernetes/kubernetes/pull/60872) - - * Serial suite is still failing [https://github.com/kubernetes/kubernetes/issues/60003](https://github.com/kubernetes/kubernetes/issues/60003) - - * Fixes for two DaemonSet test failures merged: [#60747](https://github.com/kubernetes/kubernetes/pull/60747), [#60820](https://github.com/kubernetes/kubernetes/pull/60820) - - * 6 tests in gce-serial - - * Flexvolumes fix opened [https://github.com/kubernetes/kubernetes/pull/60859](https://github.com/kubernetes/kubernetes/pull/60859) - - * 1 test in gke-serial - - * Update: looking better now, with just a flexvolume fix pending - - * Upgrade suites are still failing - - * [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) - - * Downgrade failed due to fail to delete a statefulset, assigned to sig-storage/sig-apps - - * Need to either backport fixes to 1.9 tests or skip those tests - - * Waiting for feedback from sig-apps - - * Scalability suite is still flaky - - * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) - - * Rolling back etcd server: [https://github.com/kubernetes/kubernetes/pull/60891](https://github.com/kubernetes/kubernetes/pull/60891) - - * Caused by etcd upgrade, PR in to revert for k8s, should fix the flake; Sen will follow up - -* Test Infra Updates [GREEN] (no update) - -* * * - - -## Date: 3/5/2018 - -Video [Link](https://youtu.be/WLeK9jZ2oEc) - -Attending: - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Close out docs PRs - - * Good idea what release notes looks like - - * Sort out release branch health (flakes vs. real) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] - - * **CRUNCH WEEK!!** - - * Begin M-F Burndown meetings - - * End of code freeze (EOD PST) - - * Perform final branchff - - * Master branch re-opens for 1.11 - - * PRs for v1.10.0 must be cherry picked to release-1.10 - - * Notify kubernetes-dev of lifting code freeze - - * Initial go/no-go prediction for the release - - * All-hands on deck for missing docs - -* Metrics review ↕0 ↑# ↓# [RED/YELLOW/GREEN] - - * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 27 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 22 - - * API Memory usage regression - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 2 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 15 - - * Test failures have been added - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 1 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 2 - - * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 14 - - * Other priority Issues: - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 29 ↓7 vs 257 ↑19 closed - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Exception Requests [GREEN] - - * None - - * Caleb is going to make a GH-based storage mechanism for completed exception requests - -* Branch Updates / Branch Health [RED/YELLOW/GREEN] - -* Marketing Updates [RED/YELLOW/GREEN] - - * - -* Documentation Updates [RED/YELLOW/GREEN] - - * A few features still seem to be in doubt. Straggler PRs are coming in steadily; sig-docs is doing an awesome job of staying on top of doc merges. - -* Critical build failures [YELLOW] - - * Gce|gke-serial is failing multiple tests: - - * (looks worse after daemonset tests are fixed) - - * Unbrella issue: [https://github.com/kubernetes/kubernetes/issues/60003](https://github.com/kubernetes/kubernetes/issues/60003) - - * Failing test issues: - - * [https://github.com/kubernetes/kubernetes/issues/60761](https://github.com/kubernetes/kubernetes/issues/60761) - - * [https://github.com/kubernetes/kubernetes/issues/60762](https://github.com/kubernetes/kubernetes/issues/60762) - - * [https://github.com/kubernetes/kubernetes/issues/60745](https://github.com/kubernetes/kubernetes/issues/60745) - - * [https://github.com/kubernetes/kubernetes/issues/60725](https://github.com/kubernetes/kubernetes/issues/60725) - - * [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) - - * 1.9-master upgrade suites - - * Successfully upgraded! - - * Now deal with REAL test failures: - - * Unbrella issue: [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) - - * Test failures are linked within the issue - - * The downgrade suite is still borked, assigned to sig-cluster-lifecycle - - * 1.9 test breaks after upgrading to 1.10 - better design? - - * Talking to sig-cluster-lifecycle - - * Scalability suite is still flaky - - * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) - - * [https://github.com/kubernetes/kubernetes/pull/60740](https://github.com/kubernetes/kubernetes/pull/60740) fixes the timeout issue, @shyamjvs is following up to monitoring performance issue - - * Kubeadm suite start to failing again - - * [https://github.com/kubernetes/kubernetes/issues/59762](https://github.com/kubernetes/kubernetes/issues/59762) - - * After some test-infra fixes still cannot find kubeconfig - - * And according to [https://github.com/kubernetes/kubernetes/issues/59762#issuecomment-365550168](https://github.com/kubernetes/kubernetes/issues/59762#issuecomment-365550168), the kubeadm jobs should not be release blocking anymore? - -* Test Infra Updates [GREEN] - - * `/milestone` had a bug, but is working now. - -* * * - - -## Date: 3/2/2018 - -Video [Link](https://youtu.be/HeuMd3UDut8) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[GREEN] - - * Beta cut - - * Docs PRs due for review - - * Code freeze - - * Exception reviews - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[GREEN] - - * Another beta - - * Docs PRs are finalized - - * Release notes draft ready for review/refine - -* Metrics review ↕0 ↑# ↓# [YELLOW] - - * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 22 - - * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: - - * [https://github.com/kubernetes/kubernetes/issues/60507](https://github.com/kubernetes/kubernetes/issues/60507) has PR open now and looking on track - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: - - * Other priority Issues: - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 36 ↑# ↓# vs 238 ↑# closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Exception Requests [GREEN] - - * Approved request: - - * **Feature name:** [RunAsGroup in pod and container SecurityContext](https://groups.google.com/d/msg/kubernetes-milestone-burndown/kq4zhEI_c-I/vLVpJlMMBAAJ) - -* Branch Updates / Branch Health [GREEN] - - * Nothing to add - -* Critical build failures [YELLOW] - - * Gce|gke-serial is failing daemonset tests - - * [https://github.com/kubernetes/kubernetes/issues/60003](https://github.com/kubernetes/kubernetes/issues/60003) - - * Fix opened: [https://github.com/kubernetes/kubernetes/pull/60672](https://github.com/kubernetes/kubernetes/pull/60672) - - * 1.9-master upgrade suites are failing on daemonset upgrade - - * [https://github.com/kubernetes/kubernetes/issues/60437](https://github.com/kubernetes/kubernetes/issues/60437) - - * [https://github.com/kubernetes/kubernetes/pull/60386](https://github.com/kubernetes/kubernetes/pull/60386) merged this morning, will follow up with today’s run - - * Scalability suite is flaky - - * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) - - * Thanks Wojtec for triaging - - * Kubeadm suite start to failing again - - * [https://github.com/kubernetes/kubernetes/issues/59762](https://github.com/kubernetes/kubernetes/issues/59762) - - * @bentheelder has some fix to let kubeadm use latest-bazel build - -* Test Infra Updates [GREEN] - - * `/milestone` command should be available later today. (WOOO!) - -* User-facing Documentation YELLOW - - * (jrondeau) Working through tracking spreadsheet, pinging outstanding docs. Today is deadline, but I’m cutting some slack because I haven’t been reminding folks - - * (jrondeau) EOD update 3/2: 7 PRs + 4 features that don’t need docs identified on tracking board, out of 33 features. 3 other features look to be in doubt. Qs out in all remaining GH issues; at least half a dozen look as though they don’t need doc updates, but still confirming. - -* Marketing [GREEN] - - * Nick, Ihor, Caleb, Jaice, Jennifer need to give the blog a once-over to ensure what is in there is accurate - - * Need to look at media key messages document ASAP! - - * 5 blog series is looking good - - * email sent out with those links/timing, please +1 in thread - -* Release notes update [YELLOW] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - - * Noah Abrahams is working on the basic draft - - * Correlating timeline vs. github branching ~ - - * Jaice, Noah, and Jennifer meeting next week! - -* Announcements / Open Mic - - * Nick will be running meetings next week - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - - * Release notes continues to be agonizing - -## * * * - - -## Date: 2/28/2018 - -Video [Link](https://youtu.be/cx9bdcKY3jw) - -Attending: - -* Jaice, Nick, Vignesh, Noah, Sen, Jordan, Tim Pepper, Ihor, Josh, Cole Wagner, Natasha, - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Code freeze - - * In effect - - * Exceptions have been going ok - - * Pruning - - * What do we need to keep an eye on? - - * beta to be cut - - * Fast forwarded release-1.10 branch today (28 Feb 18) [calebamiles] - - * Will wait for CI to run against branch - - * Will start cutting beta from branch - - * Docs PR deadline (not reviewed, but ready for review, and at a high level) - - * We need an update ASAP - - * Release notes - hopefully a cut by Friday - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] - - * Next beta - - * Docs complete deadline - -* Issue review by SIG -[Bug Leaderboard](https://docs.google.com/spreadsheets/d/1SAl4YcsB6V9yrBVN88FGMoC9rUUykAepDq2sfKQAOfM/edit?usp=sharing) ~ updated later today - - * Extra 24 hours helped - - * - -* Updates (general) - -* Critical build failures [YELLOW] - - * Gke suites are fixed (yay) - - * Gci-gke|gce-slow is failing on a network test - - * [https://github.com/kubernetes/kubernetes/issues/60588](https://github.com/kubernetes/kubernetes/issues/60588) - - * Gce|gke-ingress is failing L7 LB tests - - * [https://github.com/kubernetes/kubernetes/issues/60381](https://github.com/kubernetes/kubernetes/issues/60381) - - * Gce|gke-serial is failing daemonset tests - - * [https://github.com/kubernetes/kubernetes/issues/60003](https://github.com/kubernetes/kubernetes/issues/60003) - - * 1.9-master upgrade suites are failing on daemonset upgrade - - * [https://github.com/kubernetes/kubernetes/issues/60437](https://github.com/kubernetes/kubernetes/issues/60437) - - * Fix opened in [https://github.com/kubernetes/kubernetes/pull/60386](https://github.com/kubernetes/kubernetes/pull/60386) - - * Scalability suite is flaky - - * Kubeadm suite start to failing again - - * [https://github.com/kubernetes/kubernetes/issues/59762](https://github.com/kubernetes/kubernetes/issues/59762) - -* Exception Requests [GREEN] - - * Approved the following exceptions: - - * **Feature name:** [Advanced Audit Logging](https://groups.google.com/d/msg/kubernetes-milestone-burndown/FeOcIqdRmZQ/7G2s2WMIAQAJ) - - * **Feature name:** [GCE Regional Persistent Disk to beta](https://groups.google.com/d/msg/kubernetes-milestone-burndown/pwI3QwuCYL4/ugg9UdhWAQAJ) - - * Needs review/approval: - - * **Feature name:** [RunAsGroup in pod and container SecurityContext](https://groups.google.com/d/msg/kubernetes-milestone-burndown/kq4zhEI_c-I/vLVpJlMMBAAJ) - -* * * - - -## Date: 2/26/2018 - -Video [Link](https://youtu.be/2HRpZ8TLUlg) - -Attending: - -* Jaice, Josh, Nick, Natasha, Sen, Caleb, Stephen, Kaitlyn, Ihor - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] - - * Code freeze - - * Question: Is mungegithub still responsible for enforcing code freeze or do will live in an all tide world now **Answer: mungegithub for now** - - * PR: https://github.com/kubernetes/test-infra/pull/6999 - - * Pruning - - * What do we need to keep an eye on? - - * beta to be cut - - * Docs PR deadline (not reviewed, but ready for review, and at a high level) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] - - * Next beta - - * Docs complete deadline - -* Metrics review ↕0 ↑# ↓# [YELLOW] - - * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 36↓12 - - * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: 0↕0 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 1↕0 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 17↓2 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 7↑1 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 6↓1 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 5↑1 - - * Other priority Issues: 0↓2 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 38 ↑# ↓# vs 148 ↑# closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Issue review by SIG -[Bug Leaderboard](https://docs.google.com/spreadsheets/d/1SAl4YcsB6V9yrBVN88FGMoC9rUUykAepDq2sfKQAOfM/edit?usp=sharing) - -* Critical build failures [YELLOW] - - * OSS gke tests are all failing reach API server - [https://github.com/kubernetes/kubernetes/issues/60380](https://github.com/kubernetes/kubernetes/issues/60380) - - * Fix opened [https://github.com/kubernetes/kubernetes/pull/60334](https://github.com/kubernetes/kubernetes/pull/60334) - - * Ingress-gce is failing - - * [https://github.com/kubernetes/kubernetes/issues/60381](https://github.com/kubernetes/kubernetes/issues/60381) - - * Fix opened [https://github.com/kubernetes/kubernetes/pull/59982](https://github.com/kubernetes/kubernetes/pull/59982) - - * Serial-gce suite is failing - - * [https://github.com/kubernetes/kubernetes/issues/60003](https://github.com/kubernetes/kubernetes/issues/60003) - - * sig-network and sig-app tests - - * Needs triage - - * Upgrade test is failing - - * **Looks like daemonset upgrade is failing (sig-apps)** - - * [https://github.com/kubernetes/kubernetes/issues/60437](https://github.com/kubernetes/kubernetes/issues/60437) - - * Needs triage - -* Test failure triage/resolution updates [GREEN] - - * 7 open issues - - * Lots of noise from GKE tests, but fix PRs are open - -* Test Infra Updates [YELLOW] - - * Cole to finish release jobs PR: [https://github.com/kubernetes/test-infra/pull/6834](https://github.com/kubernetes/test-infra/pull/6834) - - * Prioritized for today - - * Also doing code freeze - -* Documentation & Marketing [GREEN] - - * Marketing: - - * Blog announcement is pre-drafted, Jaice to review and ensure what is in the release is reflected in the blog - - * Solidify the 5 blogs for the blog series - get agreement - - * Sound bite document for media Q&A - source of truth on the release - - * Schedule the post-release webinar with release team - - * Docs: - - * Need update from Jennifer - -* Release notes update [GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - - * Auto-generated version is now working - - * Have basics in the preview blog, probably on k8s.io - - * Some status in the features tracking spreadsheet are not accurate (Ihor) - - * First cut soon - - * Link to the preview blog - -* Announcements / Open Mic - - * M-W-F ~ cancellations will be in email and Slack channel - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - -## * * * - - -## Date: 12/19/2018 ~ Cancelled for holiday - -Video Link - -Attending: - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[GREEN] - - * Code slush - - * Issue labels are correct and tracked - - * Begin hunting for "black swans" - - * Release notes status especially important so we know how to target our efforts on collecting this - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] - - * Code Freeze - - * Need to turn on automation - - * Begin MWF Burndown meetings - - * Begin pruning (as necessary) - - * 1.10.0-beta.1 release - - * Docs deadline - PRs ready for review - - * Getting into crunch time - -* Metrics review ↕0 ↑# ↓# [RED/YELLOW/GREEN] - - * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 48 ↑5 - - * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: 0 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 1 ↑1 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 21 ↑3 (trending up week over week) - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 5 ↑5 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 8 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 13 ↓3 - - * Other priority Issues: - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 32 vs 92 closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Maximum of N per topology value. ](https://github.com/kubernetes/kubernetes/pull/41718) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Issue review by [SIG](https://docs.google.com/spreadsheets/d/1SAl4YcsB6V9yrBVN88FGMoC9rUUykAepDq2sfKQAOfM/edit#gid=161799236) - -* First critical and failing test issues - -* * * - - -## Date: 2/12/2018 - -Video Link - -Attending: - -* Jaice Singer DuMars, SIG-human - -* Jennifer Rondeau - -* Nick Chase - -* Jasmine the Puppy - -* Sen Lu - -* Natasha Woods - -* Vignesh Pamu - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week 7/12 *[GREEN] - - * 1.10.0-beta.0 release - - * Create 'release-1.10' branch and begin daily branchff - - * All release branch CI jobs created - - * Send out weekly update - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week 8/12 *[GREEN] - - * Begin Code Slush - -* Metrics review ↕0 ↑# ↓# [GREEN] - - * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 43 ↓4 - - * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: 0 ↕0 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 0 ↕0 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 18 ↑2 (trending up) - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 0 ↕0 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 8 ↑3 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 16 ↓8 - - * Other Priority Issues: 1 ↕0 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: # ↑# ↓# vs # ↑# closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Exception Requests [GREEN] - - * None - -* Issue review by SIG -[Bug Leaderboard](https://docs.google.com/spreadsheets/d/1SAl4YcsB6V9yrBVN88FGMoC9rUUykAepDq2sfKQAOfM/edit?usp=sharing) - - - Approved-for-milestone: 6 - Not approved: 37 - -<table> - <tr> - <td>SIG</td> - <td>LINK</td> - <td>COUNT</td> - <td>DELTA ↕0 ↑# ↓# </td> - </tr> - <tr> - <td>sig/api-machinery</td> - <td>sig/api-machinery</td> - <td>8</td> - <td>↓1</td> - </tr> - <tr> - <td>sig/apps</td> - <td>sig/apps</td> - <td>2</td> - <td>↑2</td> - </tr> - <tr> - <td>sig/architecture</td> - <td>sig/architecture</td> - <td>2</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/auth</td> - <td>sig/auth</td> - <td>6</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/autoscaling</td> - <td>sig/autoscaling</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/aws</td> - <td>sig/aws</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/azure</td> - <td>sig/azure</td> - <td>6</td> - <td>↓1</td> - </tr> - <tr> - <td>sig/cli</td> - <td>sig/cli</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/cluster-lifecycle</td> - <td>sig/cluster-lifecycle</td> - <td>7</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/federation</td> - <td>sig/federation</td> - <td>0</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/gcp</td> - <td>sig/gcp</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/instrumentation</td> - <td>sig/instrumentation</td> - <td>3</td> - <td>↓1</td> - </tr> - <tr> - <td>sig/network</td> - <td>sig/network</td> - <td>2</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/node</td> - <td>sig/node</td> - <td>19</td> - <td>↓1</td> - </tr> - <tr> - <td>sig/release</td> - <td>sig/release</td> - <td>0</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/scalability</td> - <td>sig/scalability</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/service-catalog</td> - <td>sig/service-catalog</td> - <td>0</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/storage</td> - <td>sig/storage</td> - <td>2</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/testing</td> - <td>sig/testing</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/windows</td> - <td>sig/windows</td> - <td>3</td> - <td>↑1</td> - </tr> -</table> - - -* Branch Updates / Branch Health [GREEN] - -* Test failure triage/resolution updates [YELLOW] - - * kubeadm tests need attention - -* Test Infra Updates [GREEN] - - * On track to have the blocking tests on the release branch this week - -* Documentation & Marketing [GREEN] - - * Tracking the timeline - -* Release notes update [GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - -* Announcements / Open Mic - - * None - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - -* * * - - -## Date: 2/5/2018 ~ [video](https://youtu.be/hH9qfh-HWdI) - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[GREEN] - - * Possibly the pre-blog - - * Next week - - * Looking at issues, signal, release notes more deeply - - * New label coming for external-facing docs needed - - * Intermediate release notes draft underway - - * Starting to connect with SIGs on RNs early March - - * Send out weekly update + reminder of code slush/freeze dates - - * Marketing met with Ihor and developed an outline - - * Need reviews - - * Questions reporters have that need a source of truth, but are not in the blog - - * Marketing on track - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[GREEN] - - * 1.10.0-beta.0 release - - * Create 'release-1.10' branch and begin daily branchff - - * All release branch CI jobs created - -* Metrics review ↕0 ↑# ↓# [GREEN] - - * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 47 ↑2 - - * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: 0 ↕0 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 0 ↕0 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 16 ↑4 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 0 ↕0 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 5 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 25 ↓2 - - * Other Priority Issues: 1 ↕0 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: # ↑# ↓# vs # ↑# closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Issue review by SIG - - Issue Leaderboard as of 2/3: - -<table> - <tr> - <td>SIG</td> - <td>LINK</td> - <td>COUNT</td> - <td>DELTA ↕0 ↑# ↓# </td> - </tr> - <tr> - <td>sig/api-machinery</td> - <td>sig/api-machinery</td> - <td>9</td> - <td>↑1</td> - </tr> - <tr> - <td>sig/apps</td> - <td>sig/apps</td> - <td>2</td> - <td>0</td> - </tr> - <tr> - <td>sig/architecture</td> - <td>sig/architecture</td> - <td>2</td> - <td>↑1</td> - </tr> - <tr> - <td>sig/auth</td> - <td>sig/auth</td> - <td>6</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/autoscaling</td> - <td>sig/autoscaling</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/aws</td> - <td>sig/aws</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/azure</td> - <td>sig/azure</td> - <td>7</td> - <td>↑1</td> - </tr> - <tr> - <td>sig/cli</td> - <td>sig/cli</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/cluster-lifecycle</td> - <td>sig/cluster-lifecycle</td> - <td>7</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/federation</td> - <td>sig/federation</td> - <td>0</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/gcp</td> - <td>sig/gcp</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/instrumentation</td> - <td>sig/instrumentation</td> - <td>4</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/network</td> - <td>sig/network</td> - <td>2</td> - <td>↑1 </td> - </tr> - <tr> - <td>sig/node</td> - <td>sig/node</td> - <td>20</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/release</td> - <td>sig/release</td> - <td>0</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/scalability</td> - <td>sig/scalability</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/service-catalog</td> - <td>sig/service-catalog</td> - <td>0</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/storage</td> - <td>sig/storage</td> - <td>2</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/testing</td> - <td>sig/testing</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/windows</td> - <td>sig/windows</td> - <td>2</td> - <td>↕0</td> - </tr> -</table> - - -### List of Issues which look suspiciously like untracked features: - -This is from Josh, for Ihor, as of 2/2. List may not be complete, this is a by-hand review: - -* CRI log rotation: [https://github.com/kubernetes/kubernetes/issues/58823](https://github.com/kubernetes/kubernetes/issues/58823) - -* Taint CSI node shutdown condition: [https://github.com/kubernetes/kubernetes/issues/58635](https://github.com/kubernetes/kubernetes/issues/58635) - -* Add metadata to on-disk log file: [https://github.com/kubernetes/kubernetes/issues/58638](https://github.com/kubernetes/kubernetes/issues/58638) - -* Add field to NodeStatus: [https://github.com/kubernetes/kubernetes/issues/56896](https://github.com/kubernetes/kubernetes/issues/56896) - -* Do deprecations get tracked as features? [https://github.com/kubernetes/kubernetes/issues/56523](https://github.com/kubernetes/kubernetes/issues/56523) - -* CRI log stats: [https://github.com/kubernetes/kubernetes/issues/55905](https://github.com/kubernetes/kubernetes/issues/55905) - -* NVIDIA plugin: [https://github.com/kubernetes/kubernetes/issues/54011](https://github.com/kubernetes/kubernetes/issues/54011) - -* Non-builtin CRI runtimes: [https://github.com/kubernetes/kubernetes/issues/47872](https://github.com/kubernetes/kubernetes/issues/47872) - -* File-based interface for container logs: [https://github.com/kubernetes/kubernetes/issues/42188](https://github.com/kubernetes/kubernetes/issues/42188) - - All owners of issues with incomplete labels have been nagged. - -* Test failure triage/resolution updates [GREEN] - - * Tests for GKE fixed - -* Test Infra Updates [GREEN] - - * Everything looking good so far - -* Documentation & Marketing [GREEN] - - * On track - -* Release notes update [GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - -* Announcements / Open Mic - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - -* * * - - -## Date: 1/29/2018 - -Video Link - -Attending: - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[GREEN] - - * Feature freeze follow-up [ Ihor ] - - * In good progress with features, 35 in the release - - * Smaller than previous releases, may have some things in the KEP process - - * Marketing team follow-up tomorrow - - * Documentation team and Release team GO! See Ihor if you have questions - - * Need non-user facing docs label ~ either SIG-Testing or SIG-Contribx - - * Alpha release follow-up [ Caleb ] - - * Cut -alpha.2 this Friday no hiccups - -* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[GREEN] - - * Marketing ramps up - - * Preview blog? - - * Start looking at issues, signal, release notes more deeply - -* Metrics review ↕0 ↑# ↓# [GREEN] - - * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 45 ↕0 - - * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: 0 ↕0 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 0 ↕0 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 12 ↕0 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 0 ↕0 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 5 ↕0 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 27 ↕0 - - * Other Priority Issues: 1 ↕0 - - * [Non-Blocking, Labels Incomplete](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone-labels-incomplete) Issues: 0 ↕0 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 30 ↑3 vs 60 ↑9 closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Issue review by SIG -[Issue Leaderboard](https://docs.google.com/spreadsheets/d/1SAl4YcsB6V9yrBVN88FGMoC9rUUykAepDq2sfKQAOfM/edit?usp=sharing) - -<table> - <tr> - <td>SIG</td> - <td>LINK</td> - <td>COUNT</td> - <td>DELTA ↕0 ↑# ↓# </td> - </tr> - <tr> - <td>sig/api-machinery</td> - <td>sig/api-machinery</td> - <td>8</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/apps</td> - <td>sig/apps</td> - <td>2</td> - <td>↓1</td> - </tr> - <tr> - <td>sig/architecture</td> - <td>sig/architecture</td> - <td>1</td> - <td>?</td> - </tr> - <tr> - <td>sig/auth</td> - <td>sig/auth</td> - <td>6</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/autoscaling</td> - <td>sig/autoscaling</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/aws</td> - <td>sig/aws</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/azure</td> - <td>sig/azure</td> - <td>6</td> - <td>?</td> - </tr> - <tr> - <td>sig/cli</td> - <td>sig/cli</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/cluster-lifecycle</td> - <td>sig/cluster-lifecycle</td> - <td>7</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/federation</td> - <td>sig/federation</td> - <td>0</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/gcp</td> - <td>sig/gcp</td> - <td>1</td> - <td>?</td> - </tr> - <tr> - <td>sig/instrumentation</td> - <td>sig/instrumentation</td> - <td>4</td> - <td>↑2 </td> - </tr> - <tr> - <td>sig/network</td> - <td>sig/network</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/node</td> - <td>sig/node</td> - <td>20</td> - <td>↑1 </td> - </tr> - <tr> - <td>sig/release</td> - <td>sig/release</td> - <td>0</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/scalability</td> - <td>sig/scalability</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/service-catalog</td> - <td>sig/service-catalog</td> - <td>0</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/storage</td> - <td>sig/storage</td> - <td>2</td> - <td>↑1 </td> - </tr> - <tr> - <td>sig/testing</td> - <td>sig/testing</td> - <td>1</td> - <td>↕0</td> - </tr> - <tr> - <td>sig/windows</td> - <td>sig/windows</td> - <td>2</td> - <td>??</td> - </tr> -</table> - - -* Branch Updates / Branch Health [RED/YELLOW/GREEN] - - * None - -* Critical build failures [RED/YELLOW/GREEN] - -* Test failure triage/resolution updates [RED/YELLOW/GREEN] - -* Test Infra Updates [RED/YELLOW/GREEN] - -* Documentation & Marketing [RED/YELLOW/GREEN] - - * JR: Sending email to SIGs later today with docs information, working with Zach to get docs documentation for the release process updated, - -* Release notes update [RED/YELLOW/GREEN] - - * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) - -* Announcements / Open Mic - - * Ihor missing next Monday - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - -## * * * -Date: 1/22/2018 - release week 4 / 12 - -Video [Link](https://www.youtube.com/watch?v=onlFHICYB4Q&feature=youtu.be) - -Attending: - -* Ihor Dvoretskyi (features lead/CNCF) - -* Jennifer Rondeau (docs lead/Heptio) - -* Jaice Singer DuMars (Release lead, SIG-multiples) - -* Steve Wade (Shadow Release Lead, Apprenda) - -* Noah Abrahams (Shadow Release Notes) - -* Tim Pepper (Shadow Bug Wrangler, VMware) - -* Josh Berkus (Bug Wranglere, Red Hat) - -* Sen Lu (CI Signal) - -* David McMahon - -* [Timeline](https://github.com/kubernetes/features/blob/master/release-1.10/release-1.10.md) for *this week *[RED] - - * Need to get alpha prerequisites figured out for Caleb - - * Caleb trying finish onboarding again today (22 Jan 2018) - - * Extend Feature Freeze to 1/29 and radiate - - * Marketing efforts begin - - * Need to start digging into CI signal and issues - - * SIGs need to identify what will need docs or not - - * Need to discuss better project tracking - - * Jaice to replace Phil as SIG-Release lead - -* [Timeline](https://github.com/kubernetes/features/blob/master/release-1.10/release-1.10.md) for *next week *[GREEN] - - * 1.10.0-alpha.2 release - - * Wrap up the features process - - * Marketing planning/meeting - -* Metrics review [GREEN] - - * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 44 - - * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: 0 - - * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 0 - - * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 12 - - * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 0 - - * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 5 - - * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 27 - - * [Non-Blocking, Labels Incomplete](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone-labels-incomplete) Issues: 0 - - * [Bot-removed issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20label%3Amilestone-removed): 0 - - * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 27 vs 51 closed - - * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) - - * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) - - * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) - - * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) - - * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) - - * Testgrid dashboards - - * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) - - * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - - * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) - - * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) - - * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) - -* Issue review by SIG - -<table> - <tr> - <td>SIG</td> - <td>LINK</td> - <td>COUNT</td> - <td>DELTA ↕0 ↑# ↓# </td> - </tr> - <tr> - <td>sig/api-machinery</td> - <td>sig/api-machinery</td> - <td>8</td> - <td></td> - </tr> - <tr> - <td>sig/apps</td> - <td>sig/apps</td> - <td>3</td> - <td></td> - </tr> - <tr> - <td>sig/auth</td> - <td>sig/auth</td> - <td>6</td> - <td></td> - </tr> - <tr> - <td>sig/autoscaling</td> - <td>sig/autoscaling</td> - <td>1</td> - <td></td> - </tr> - <tr> - <td>sig/aws</td> - <td>sig/aws</td> - <td>1</td> - <td></td> - </tr> - <tr> - <td>sig/cluster-lifecycle</td> - <td>sig/cluster-lifecycle</td> - <td>7</td> - <td></td> - </tr> - <tr> - <td>sig/federation</td> - <td>sig/federation</td> - <td>0</td> - <td></td> - </tr> - <tr> - <td>sig/instrumentation</td> - <td>sig/instrumentation</td> - <td>2</td> - <td></td> - </tr> - <tr> - <td>sig/network</td> - <td>sig/network</td> - <td>1</td> - <td></td> - </tr> - <tr> - <td>sig/node</td> - <td>sig/node</td> - <td>19</td> - <td></td> - </tr> - <tr> - <td>sig/release</td> - <td>sig/release</td> - <td>0</td> - <td></td> - </tr> - <tr> - <td>sig/scalability</td> - <td>sig/scalability</td> - <td>1</td> - <td></td> - </tr> - <tr> - <td>sig/service-catalog</td> - <td>sig/service-catalog</td> - <td>0</td> - <td></td> - </tr> - <tr> - <td>sig/storage</td> - <td>sig/storage</td> - <td>1</td> - <td></td> - </tr> - <tr> - <td>sig/testing</td> - <td>sig/testing</td> - <td>1</td> - <td></td> - </tr> - <tr> - <td>sig/cli</td> - <td>sig/cli</td> - <td>1</td> - <td></td> - </tr> -</table> - - -* Branch Updates / Branch Health [RED] - - * Cannot cut an Alpha currently - -* Testing - - * Some AWS tests may fail due to quota issues - -* Documentation & Marketing [YELLOW] - - * Need to set up 1.10 docs branch, reach out to individual SIGs - - * Docs branch strategy is different - - * 22 open features in 1.10 milestone, not all feature owners have updated - - * Key features and messages are available - - * Meeting today to discuss messaging, blog outline, and planning - -* Release notes update [RED/YELLOW/GREEN] - - * Link to the [draft](https://github.com/kubernetes/features/blob/master/release-1.10/release-notes-draft.md) - - * Nick wants a better solution for generated docs - - * Updates pending - -* Announcements / Open Mic - - * None - -* Retro items ([Retro doc](http://bit.ly/kube110retro)) - - * Reminder to log your feedback as we go so it doesn’t get missed - +Kubernetes 1.10 "left shark" Release Burndown + +Self-link: [bit.ly/k8s110-burndown](http://bit.ly/k8s110-burndown) + +Agenda [template](https://docs.google.com/document/d/1zLnmDDOp_ko9Yh5uPJtgqPFD7GKq76fQsKaenXoMHzM/edit) + +Zoom [Link](http://bit.ly/k8s110-zoom) + +## Date: 3/26/2018 ~ tentative Release Day! + +Video [Link](https://youtu.be/dbh5RaKSXdQ) + +* Release day mechanics: + + * Wrap up release notes, merge into draft that anago will consume + + * Need external dependencies + + * Ask sig-node, sig-api-machinery, etc., See prior list for 1.9 at [https://github.com/kubernetes/sig-release/blob/master/releases/release-1.9/release-notes-draft.md#external-dependencies](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.9/release-notes-draft.md#external-dependencies) + + * Etcd: 3.1.12; from [here](https://github.com/kubernetes/kubernetes/blob/master/hack/lib/etcd.sh#L19) or [here](https://github.com/kubernetes/kubernetes/blob/master/build/root/WORKSPACE#L22); last PR [60998](https://github.com/kubernetes/kubernetes/pull/60998) + + * Docker: + + * see sig-node and [here](https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/system/docker_validator_test.go) … looks unchanged since 1.8 + + * "The validated docker versions are the same as for v1.8 and v1.9: 1.11.2 to 1.13.1 and 17.03.x" + + * Go: 1.9.3; from [here](https://github.com/kubernetes/kubernetes/blob/master/build/root/WORKSPACE#L49); last PR [59012](https://github.com/kubernetes/kubernetes/pull/59012) + + * CNI: 0.6.0; from [here](https://github.com/kubernetes/kubernetes/blob/master/build/root/WORKSPACE#L57); last PR [51250](https://github.com/kubernetes/kubernetes/pull/51250) + + * CSI: 0.2.0; from [here](https://github.com/kubernetes/kubernetes/blob/master/Godeps/Godeps.json#L456); last PR [60736](https://github.com/kubernetes/kubernetes/pull/60736) + + * Dashboard add-on: 1.8.3, from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dashboard/dashboard-deployment.yaml#L33), last PR [57326](https://github.com/kubernetes/kubernetes/pull57326) + + * Heapster: unchanged at 1.5.0 from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/cluster-monitoring/google/heapster-controller.yaml) (note: changes in v1.11) + + * Cluster autoscaler: 1.1.2; from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/gce/manifests/cluster-autoscaler.manifest#L17); last PR [60842](https://github.com/kubernetes/kubernetes/pull/60842) [@mwielgus](https://github.com/mwielgus)) + + * Kube-dns: 1.14.8 from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/kube-dns/kube-dns.yaml.base#L98); last PR [58013](https://github.com/kubernetes/kubernetes/pull/58013) and [57918](https://github.com/kubernetes/kubernetes/pull/57918) + + * influxdb: v1.3.3 and grafana v4.4.3 (unchanged); from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/cluster-monitoring/influxdb/influxdb-grafana-controller.yaml); last PR [53319](https://github.com/kubernetes/kubernetes/pull/53319) + + * Cadvisor: 0.29.1, from [here](https://github.com/kubernetes/kubernetes/blob/master/Godeps/Godeps.json#L1478), last PR [60867](https://github.com/kubernetes/kubernetes/pull/60867) + + * fluentd-gcp-scaler: 0.3.0, from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/fluentd-gcp/scaler-deployment.yaml), last PR [61269](https://github.com/kubernetes/kubernetes/pull/61269) + + * Fluentd: 1.1.0; from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/fluentd-elasticsearch/fluentd-es-image/Gemfile#L3); last PR [58525](https://github.com/kubernetes/kubernetes/pull/58525), [@monotek](https://github.com/monotek)) + + * Fluentd-elasticsearch: 2.0.4; from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/fluentd-elasticsearch/fluentd-es-ds.yaml#L51); last PR [58525](https://github.com/kubernetes/kubernetes/pull/58525) + + * Fluentd-gcp: v3.0.0; from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/fluentd-gcp/fluentd-gcp-ds.yaml#L4); last PR [60722](https://github.com/kubernetes/kubernetes/pull/60722)) + + * ingress glbc image: 1.0.0, from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/gce/manifests/glbc.manifest#L16), last PR [61302](https://github.com/kubernetes/kubernetes/pull/61302) + + * oidc authentication: coreos/go-oidc v2; from [here](https://github.com/kubernetes/kubernetes/blob/master/Godeps/Godeps.json#L909) (but must go look at upstream dep to find the tag corresponding to the vendored commit and they don’t actually have releases?), last PR [58544](https://github.com/kubernetes/kubernetes/pull/58544) + + * Calico: 2.6.7; from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/calico-policy-controller/calico-node-daemonset.yaml#L36); last PR [59130](https://github.com/kubernetes/kubernetes/pull/59130) + + * COS image version: cos-stable-63-10032-71-0; from [here](https://github.com/kubernetes/kubernetes/blob/master/cluster/gce/config-default.sh#L77); last PR [57204](https://github.com/kubernetes/kubernetes/pull/57204) [@yujuhong](https://github.com/yujuhong)) + + * ...others? + + * Need clarity on PV resize vs volume resize + + * Michelle offered to help + + * Need PVC section (Jennifer) + + * Also ask Michelle? + + * Known issues to be translated into release notes + + * Final doc check + + * OTW + + * Final signal check on release branch + + * Good to go + + * Final issue check + + * two upgrade issues + + * 61640 ~ testing env issue + + * 61645 ~ test depends on k8s dashboard pod which is not started by default anymore + + * Blog questions: + + * Need someone to insert link for where you download & interactive tutorial + + * Blog series = 2 blogs + + * Branch manager cuts the release + + * 5pm Pacific ~ Release announcement sent to k8s-dev / announce + + * Media announcement + + * Rejoice! + +* Issue review + + * [[test failed] should ensure that critical pod is scheduled in case there is no resources available ](https://github.com/kubernetes/kubernetes/issues/61645) + + * Not approved for milestone + + * This is known issue + + * Test needs to be patched + + * [[test failed] regular resource usage tracking resource tracking for 100 pods per node](https://github.com/kubernetes/kubernetes/issues/61640) + + * Need Google help (gke only) + + * Patch release fix, ACK by dchen + + * [[test flakes] master-scalability suites ](https://github.com/kubernetes/kubernetes/issues/60589) + + * Not blocking + +* PR review + + * None + +* Test signal review + + * [https://github.com/kubernetes/kubernetes/issues/61640](https://github.com/kubernetes/kubernetes/issues/61640) + + * Gke only, should not be a blocker, but probably need to patch up in following patch release for the testing environment + + * [https://github.com/kubernetes/kubernetes/issues/61645](https://github.com/kubernetes/kubernetes/issues/61645) + + * Dashboard issue again + + * [https://github.com/kubernetes/kubernetes/issues/61483](https://github.com/kubernetes/kubernetes/issues/61483) + + * Due to don’t have branched cross build job + + * Will fix in 1.11 + +* Docs review + +## Date: 3/23/2018 + +Video [Link](https://youtu.be/QLiym7j60f4) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Risk assessment of what is in flight + + * [https://github.com/kubernetes/kubernetes/pull/61536](https://github.com/kubernetes/kubernetes/pull/61536) + + * What the heck? + + * Document known issues and workarounds for: (msau, jrondeau, nchase) + + * [https://github.com/kubernetes/kubernetes/issues/61446](https://github.com/kubernetes/kubernetes/issues/61446) + + * [https://github.com/kubernetes/kubernetes/issues/61456](https://github.com/kubernetes/kubernetes/issues/61456) + + * [https://github.com/kubernetes/kubernetes/issues/61483](https://github.com/kubernetes/kubernetes/issues/61483) + + * This job is not going to work properly, not blocking + + * Move job out of dashboard until it’s properly configured + + * [https://github.com/kubernetes/kubernetes/issues/61485](https://github.com/kubernetes/kubernetes/issues/61485) + + * Done and green + + * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) + + * Status update + + * Once merged, we need to get perf data to understand if it fixes the issue + + * Confidence check on release date + + * Any changes here? + + * Need SIG Scalability to attend Monday and agree to release + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW ~ Based on scalability regression] + + * Mon:** Release v1.10** 5 pm Pacific ~ Caleb to hold the announce until then, even if it ships earlier + + * Mon: release v1.11 alpha + + * M-F: Manage media engagements + + * Tue: Hand-off to release to 1.10 patch manager + + * Thu: Retro + + * Draft 1.11 schedule ASAP + +* Metrics review ↕0 ↑# ↓# [YELLOW] + + * Issues Tracking [Spreadsheet](http://bit.ly/k8s110-issues) + + * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 6 ↑1 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 6 ↑2 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 3 ↕0 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 0 ↕0 + + * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels) issues: 0 ↓1 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 3 ↕0 vs 354 ↑3 closed + + * [Increase fluentd rolling-upgrade maxUnavailable to large value ](https://github.com/kubernetes/kubernetes/pull/61472) + + * needs approve from one of: [@crassirostris](https://github.com/crassirostris) [@piosz](https://github.com/piosz) [@x13n](https://github.com/x13n) + + * [[1.10] Automated cherry pick of #61373: Use inner volume name instead of outer volume name for subpath directory ](https://github.com/kubernetes/kubernetes/pull/61518) + + * Needs approve from one of: [@Random-Liu](https://github.com/random-liu) [@derekwaynecarr](https://github.com/derekwaynecarr) [@tallclair](https://github.com/tallclair) [@vishh](https://github.com/vishh) [@yujuhong](https://github.com/yujuhong) + + * [Fix `PodScheduled` bug for static pod. ](https://github.com/kubernetes/kubernetes/pull/61504) + + * Needs passing tests + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Branch Updates / Branch Health [GREEN] + +* Critical failures [YELLOW] + + * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) + +* Test failure triage/resolution updates [YELLOW] + + * Gce-kubeadm-1.9-on-1.10 + + * [https://github.com/kubernetes/kubernetes/issues/61483](https://github.com/kubernetes/kubernetes/issues/61483) + + * Due to we don’t have a branched cross job + +* Test Infra Updates [GREEN] + +* User-facing Documentation [GREENISH] + +* Marketing [YELLOW] + + * Embargoed blog hitting the streets + + * Interview requests + +* Release notes update [GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + + * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) + + * Edits are done and need confirmation from SIGs + + * Locking edits on the doc, moving to MD + + * Noah doing awesome work tracking things down + +* Announcements / Open Mic + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + + * Props for Noah who had this as his first contributor experience! + +## * * * + + +## Date: 3/22/2018 + +Video [Link](https://youtu.be/5NnZ1wuHo7Y) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Risk assessment of what is in flight + + * [https://github.com/kubernetes/kubernetes/pull/61547](https://github.com/kubernetes/kubernetes/pull/61547#event-1536032521) + + * Should go to master, then be CP’d, but where is the context on this? + + * [https://github.com/kubernetes/kubernetes/pull/61373](https://github.com/kubernetes/kubernetes/pull/61373) + + * [https://github.com/kubernetes/kubernetes/pull/61518](https://github.com/kubernetes/kubernetes/pull/61518) + + * Needs cp-approved from Caleb + + * Needs lgtm from Saad + + * Document known issues and workarounds for: (msau, jrondeau, nchase) + + * [https://github.com/kubernetes/kubernetes/issues/61446](https://github.com/kubernetes/kubernetes/issues/61446) + + * [https://github.com/kubernetes/kubernetes/issues/61456](https://github.com/kubernetes/kubernetes/issues/61456) + + * [https://github.com/kubernetes/kubernetes/issues/61483](https://github.com/kubernetes/kubernetes/issues/61483) + + * Need help from SIG-CL + + * [https://github.com/kubernetes/kubernetes/issues/61485](https://github.com/kubernetes/kubernetes/issues/61485) + + * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) + + * Status update + + * Second run also seems good: + + * INFO: perc50: 2.583489146s, perc90: 3.466873901s, perc99: 4.380595534 + + * Fairly confident now the fix did the trick. Let's get it into 1.10 asap. + + * Follow-up with Shyam + + * Initial RT Lead nomination for 1.11: Josh Berkus + + * Confidence check on release date + + * 70%+ confidence + + * Dims says "SHIP IT!" + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW ~ Based on scalability regression] + + * Mon:** Release v1.10** 5 pm Pacific ~ Caleb to hold the announce until then, even if it ships earlier + + * Mon: release v1.11 alpha + + * M-F: Manage media engagements + + * Tue: Hand-off to release to 1.10 patch manager + + * Thu: Retro + +* Metrics review ↕0 ↑# ↓# [YELLOW] + + * Issues Tracking [Spreadsheet](http://bit.ly/k8s110-issues) + + * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 5 ↑1 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 4 ↕0 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 3 ↑1 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 0 ↕0 + + * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels) issues: 1 ↑1 + + * [[job failed][1.10] ci-kubernetes-e2e-kubeadm-gce-1-9-on-1-10 ](https://github.com/kubernetes/kubernetes/issues/61483) + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 3 ↑2 vs 351 ↑1 closed + + * [Increase fluentd rolling-upgrade maxUnavailable to large value ](https://github.com/kubernetes/kubernetes/pull/61472) + + * Ask Shyam + + * [[1.10] Automated cherry pick of #61373: Use inner volume name instead of outer volume name for subpath directory ](https://github.com/kubernetes/kubernetes/pull/61518) + + * [Fix `PodScheduled` bug for static pod. ](https://github.com/kubernetes/kubernetes/pull/61504) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Branch Updates / Branch Health [GREEN] + +* Critical failures [YELLOW] + + * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) + +* Test failure triage/resolution updates [YELLOW] + + * Gce-kubeadm-1.9-on-1.10 + + * Should this be blocking? There’s no equivalent job in master-blocking + + * [https://github.com/kubernetes/kubernetes/issues/61483](https://github.com/kubernetes/kubernetes/issues/61483) + + * Who owns this? + + * Soak test looks bad? + + * [https://testgrid.k8s.io/sig-release-1.10-all#gci-gce-soak-1.10](https://testgrid.k8s.io/sig-release-1.10-all#gci-gce-soak-1.10) + + * Bumped timeout 2h but still timing out? Gonna bump again... + +* Test Infra Updates [GREEN] + +* User-facing Documentation [GREENISH] + + * One outstanding PR. Plan B can merge without requested changes + + * Generated docs still not done. Should be able to make progress today, but might need to call in help. + + * Need to check merge status (merged branches yesterday but wrestling with git mysteries) + +* Marketing [YELLOW] + + * **All hands on deck to review the ****[blo**g](https://docs.google.com/document/d/1_Wr6bnuWBP8oBGG_PdawUxK4f8aHO6eVyTlQy_rB1rM/edit)**!** + + * **Volunteers:** + + * **@Ihor** + + * **SIGs needed:** + + * **Node** + + * **API-Machinery** + + * **Need to answer ****[thes**e](https://docs.google.com/document/d/1k8wMmIMgKIb42cgRV1Zpa3ng2LsfBrY1ewHCyL3ih6M/edit)** questions** + +* Release notes update [GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + + * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) + + * Running behind on editing but will have it done today, expect markdown version tomorrow morning. Anybody who doesn't respond to comments by then will have to live with our interpretation of their release notes. We will run "TLDR" by the sigs in slack + +* Announcements / Open Mic + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + +## * * * + + +## Date: 3/21/2018 + +Video [Link](https://youtu.be/5NnZ1wuHo7Y) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Risk assessment of what is in flight + + * [https://github.com/kubernetes/kubernetes/pull/61373](https://github.com/kubernetes/kubernetes/pull/61373) + + * Should be picked into 1.10 release + + * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) + + * looking promising! + + * Need SIG Node to look into the bug/reversion + + * [https://github.com/kubernetes/kubernetes/pull/59953](https://github.com/kubernetes/kubernetes/pull/59953) + + * Random-liu looking into this + + * fluentd issue not release blocking, but needs follow-up + + * @shyam & @ working on this + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW ~ Based on scalability regression] + + * Mon:** Release v1.10** + + * Mon: release v1.11 alpha + + * M-F: Manage media engagements + + * Tue: Hand-off to release to 1.10 patch manager + + * Thu: Retro + +* Metrics review ↕0 ↑# ↓# [YELLOW] + + * Issues Tracking [Spreadsheet](http://bit.ly/k8s110-issues) + + * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 4 ↓1 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 4 ↓1 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 2 ↓1 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 0 ↕0 + + * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels) issues: 0 ↕0 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 1 ↕0 vs 350 ↑2 closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels+) (links to PRs of interest) + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-longterm) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Branch Updates / Branch Health [GREEN] + +* Critical failures [YELLOW] + + * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) + +* Test failure triage/resolution updates [YELLOW] + + * gke jobs - fixed from gke side + + * Gke-1.10 need to enable dashboard addon + + * [https://testgrid.k8s.io/sig-release-1.10-blocking#gke-1.10](https://testgrid.k8s.io/sig-release-1.10-blocking#gke-1.10) + + * Similar to [https://github.com/kubernetes/test-infra/pull/7217](https://github.com/kubernetes/test-infra/pull/7217), will do shortly + + * Should the dashboard test be in it’s own feature? + + * Gce-kubeadm-1.9-on-1.10 + + * Should this be blocking? There’s no equivalent job in master-blocking + + * Need to ping SIG Cluster-Lifecycle ~ Sen will create an issue + + * Soak test looks bad? + + * [https://testgrid.k8s.io/sig-release-1.10-all#gci-gce-soak-1.10](https://testgrid.k8s.io/sig-release-1.10-all#gci-gce-soak-1.10) + + * Scalability performance: + + * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) + + * Looks like [https://github.com/kubernetes/kubernetes/pull/59953](https://github.com/kubernetes/kubernetes/pull/59953) is the culprit? + +* Test Infra Updates [GREEN] + +* User-facing Documentation [YELLOW] + + * Down to 3 open docs PRs. Should have all merged by EOD today (all are on docs to finish, no more waiting on tech review) + + * Building api ref docs at a minimum today (previews requested by a couple of folks) + + * Should be green by tomorrow (Thursday, March 22) + +* Marketing [YELLOW] + + * **All hands on deck to review the ****[blo**g](https://docs.google.com/document/d/1_Wr6bnuWBP8oBGG_PdawUxK4f8aHO6eVyTlQy_rB1rM/edit)**!** + + * **Volunteers:** + + * **@jdumars** + + * **@Ihor** + + * **SIGs needed:** + + * **Networking** + + * **Node** + + * **API-Machinery** + + * **Need to answer ****[thes**e](https://docs.google.com/document/d/1k8wMmIMgKIb42cgRV1Zpa3ng2LsfBrY1ewHCyL3ih6M/edit)** questions** + +* Release notes update [GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + + * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) + +* Announcements / Open Mic + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + +## * * * + + +## Date: 3/20/2018 + +Video [Link](https://youtu.be/BZ1jshT198E) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Risk assessment of what is in flight + + * Need to evaluate/approve: (approved by RT) [https://github.com/kubernetes/kubernetes/pull/61411](https://github.com/kubernetes/kubernetes/pull/61411) which elminates the need for: + + * [https://github.com/kubernetes/kubernetes/pull/61313](https://github.com/kubernetes/kubernetes/pull/61313) + + * [https://github.com/kubernetes/kubernetes/pull/61311](https://github.com/kubernetes/kubernetes/pull/61311) + + * [https://github.com/kubernetes/website/pull/7678](https://github.com/kubernetes/website/pull/7678) + + * [#61299](https://github.com/kubernetes/kubernetes/pull/61299) (downgrade test change) vs +[#61282](https://github.com/kubernetes/kubernetes/pull/61282) + [#61316](https://github.com/kubernetes/kubernetes/pull/61316) (1.9 PVC controller change + PV controller pick) + + * Needed to get green downgrade test + + * In review as a single PR + + * Mon: End of code freeze (EOD PST) + + * Mon: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) + + * Mon: Master branch re-opens for 1.11 + + * Mon: PRs for v1.10.0 must be cherry picked to release-1.10 + + * Tue: Notify kubernetes-dev of lifting code freeze + + * Issue triage, clean-up, resolution + + * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) + + * [@wasylkowski-a](https://github.com/wasylkowski-a) working on this + + * Need a go/no-go on this by Thursday + + * **Need to escalate to ______ ~ what is the actual impact of this?** + + * **5k nodes, time for pods to start up** + + * **@Wojtekt @shyam && SIG Scalability** + + * **Need to look at ****[kubemark 5k node**s](https://testgrid.k8s.io/sig-scalability-kubemark)** test for comparison** + + * **[http://perf-dash.k8s.i**o](http://perf-dash.k8s.io)** ** + + * **as opposed to gce-5kNodes-master-DensityPodStartup ** + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW ~ Based on scalability regression] + + * Mon:** Release v1.10** + + * Mon: release v1.11 alpha + + * M-F: Manage media engagements + + * Tue: Hand-off to release to 1.10 patch manager + + * Thu: Retro + +* Metrics review ↕0 ↑# ↓# [YELLOW] + + * Issues Tracking [Spreadsheet](http://bit.ly/k8s110-issues) + + * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 5 ↓4 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 5 ↓4 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 3 ↓1 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 0 ↕0 + + * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels) issues: 0 ↕0 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 1 ↓4 vs 348 ↑4 closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * **[disable DaemonSet scheduling feature for 1.10** ](https://github.com/kubernetes/kubernetes/pull/61411) + + * **[Automated cherry pick of #61411: disable DaemonSet scheduling feature for 1.10** ](https://github.com/kubernetes/kubernetes/pull/61412) + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels+) (links to PRs of interest) + + * [Always Start pvc-protection-controller and pv-protection-controller ](https://github.com/kubernetes/kubernetes/pull/61324) + + * Needs review, approvals, etc. + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-longterm) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Branch Updates / Branch Health [GREEN] + +* Critical failures [YELLOW] + + * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) + +* Test failure triage/resolution updates [YELLOW] + + * All gke jobs start to fail since last night + + * [https://github.com/kubernetes/kubernetes/issues/61416](https://github.com/kubernetes/kubernetes/issues/61416) + + * **Looks like a gke issue, trying to track down** + + * Alpha-feature suite failing: + + * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) + + * Scalability performance/flake: + + * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) + + * **@wasylkowski-a continuing bisecting ** + + * **Latest update: ****[https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-37451104**6](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-374511046)** ** + +* Test Infra Updates [GREEN] + + * Lifted freeze + + * cblecker mentioned it should not nagging 1.11 prs? + +* User-facing Documentation [YELLOW] + + * PRs still trickling in, but small + + * [https://github.com/kubernetes/website/pull/7678](https://github.com/kubernetes/website/pull/7678) now moot, per ^^ (not yet closed, but tracking) + + * 1.9 downgrade issue still needs attention/doc + + * Jordan to help get this over the line + + * Generated docs this week; starting today + +* Marketing [YELLOW] + + * **All hands on deck to review the ****[blo**g](https://docs.google.com/document/d/1_Wr6bnuWBP8oBGG_PdawUxK4f8aHO6eVyTlQy_rB1rM/edit)**!** + + * **Volunteers:** + + * **@jdumars** + + * **@Ihor** + + * **SIGs needed:** + + * **Networking** + + * **Node** + + * **API-Machinery** + + * **Need to answer ****[thes**e](https://docs.google.com/document/d/1k8wMmIMgKIb42cgRV1Zpa3ng2LsfBrY1ewHCyL3ih6M/edit)** questions** + +* Release notes update [GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + + * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) + + * Expect it to be edited down by Wednesday + +* Announcements / Open Mic + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + +## * * * + + +## Date: 3/19/2018 + +Video [Link](https://youtu.be/Kiu4lUPxJig) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Risk assessment of what is in flight + + * [https://github.com/kubernetes/kubernetes/pull/61313](https://github.com/kubernetes/kubernetes/pull/61313) + + * - prefer to change yaml file ([https://github.com/kubernetes/kubernetes/pull/61311](https://github.com/kubernetes/kubernetes/pull/61311) ) instead of depending an optional admission controller ([https://github.com/kubernetes/kubernetes/pull/61313](https://github.com/kubernetes/kubernetes/pull/61313) ) + + * - I'll update doc ([https://github.com/kubernetes/website/pull/7678](https://github.com/kubernetes/website/pull/7678) ) about that: Pod using hostNetwork should tolerate NetworkUnavailable taints + + * - I'll update release note for it + + * Changes to make alpha green + + * Automatically add tolerations for the conditions in an admission plugin [https://github.com/kubernetes/kubernetes/pull/61313](https://github.com/kubernetes/kubernetes/pull/61313) + + * or Adding particular tolerations to a particular component ~ [https://github.com/kubernetes/kubernetes/pull/61311](https://github.com/kubernetes/kubernetes/pull/61311) + + * Low risk + + * for 1.11 if graduating to beta, we need to revisit this discussion because it could impact daemonsets + + * Moving forward with this + + * [https://github.com/kubernetes/kubernetes/pull/61324](https://github.com/kubernetes/kubernetes/pull/61324) + + * By default, interactions between 1.10/1.11 are fine + + * Consider this non-blocking + + * [#61299](https://github.com/kubernetes/kubernetes/pull/61299) (downgrade test change) vs +[#61282](https://github.com/kubernetes/kubernetes/pull/61282) + [#61316](https://github.com/kubernetes/kubernetes/pull/61316) (1.9 PVC controller change + PV controller pick) + + * Needed to get green downgrade test + + * Test changes still need review + + * JBerkus to get SIG-Storage attention + + * Need to test these somehow + + * Ping @krousey on this + + * Downgrade signal is ok even with PVC namespace cleanup failure + + * Will document as known issue with fix in progress for 1.9.x to clean up finalizers ([#61282](https://github.com/kubernetes/kubernetes/pull/61282) + [#61316](https://github.com/kubernetes/kubernetes/pull/61316)) + + * (not blocking) [https://github.com/kubernetes/kubernetes/issues/61100](https://github.com/kubernetes/kubernetes/issues/61100) + + * Ambiguous and far-reaching, currently P0 in cloud providers + + * Might be worked by @khenidak (will know more tonight) + + * 1.9.x is broken for Azure and OpenStack + + * Need document under known issues + + * [https://github.com/kubernetes/kubernetes/pull/61302](https://github.com/kubernetes/kubernetes/pull/61302) + + * diff between alpha and this is rate limiting + + * Approved (**needs to be in exception workflow**) + + * Mon: End of code freeze (EOD PST) + + * Cole OOO + + * Test jobs for 1.9 to master, signal goes way down (are there equivalent ug/dg jobs?) - yes + + * Mon: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) + + * Mon: Master branch re-opens for 1.11 + + * Mon: PRs for v1.10.0 must be cherry picked to release-1.10 + + * Mon: Notify kubernetes-dev of lifting code freeze + + * Issue triage, clean-up, resolution + + * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) + + * [@wasylkowski-a](https://github.com/wasylkowski-a) working on this + + * Need a go/no-go on this by Thursday + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] + + * Mon:** Release v1.10** + + * Mon: release v1.11 alpha + + * M-F: Manage media engagements + + * Tue: Hand-off to release to 1.10 patch manager + + * Thu: Retro + +* Metrics review ↕0 ↑# ↓# [YELLOW] + + * Issues Tracking [Spreadsheet](http://bit.ly/k8s110-issues) + + * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 9 ↕0 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 9 ↕0 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 4 ↓2 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 0 ↓4 + + * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels) issues: 0 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 5 ↑1 vs 344 ↑7 closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [https://github.com/kubernetes/kubernetes/pull/61127](https://github.com/kubernetes/kubernetes/pull/61127) ~ **must be merged right before 1.10 goes out** + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Added NetworkUnavailable toleration to pod using host network. ](https://github.com/kubernetes/kubernetes/pull/61313) + + * Needs review, a-f-m label, approvals + + * [Fix cpu cfs quota flag with pod cgroups ](https://github.com/kubernetes/kubernetes/pull/61294) + + * needs LGTM, a-f-m label, pinged Dawn in Slack, others unresponsive + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Wait for only enough no. of RC replicas to be running in testutil ](https://github.com/kubernetes/kubernetes/pull/61351) + + * Merging once tests are green + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels+) (links to PRs of interest) + + * [Always Start pvc-protection-controller and pv-protection-controller ](https://github.com/kubernetes/kubernetes/pull/61324) + + * Needs review, approvals, etc. + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-longterm) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Branch Updates / Branch Health [GREEN] + +* Critical failures [YELLOW] + + * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) + +* Test failure triage/resolution updates [YELLOW] + + * Alpha-feature suite failing: + + * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) + + * Pending on [https://github.com/kubernetes/kubernetes/pull/61313](https://github.com/kubernetes/kubernetes/pull/61313)** ** + + * Scalability performance/flake: + + * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) + + * **@wasylkowski-a continuing bisecting ** + + * **Latest update: ****[https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-37425185**4](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-374251854)** ** + + * Upgrade suites + + * Mostly green, some one-off flakes, will + + * Downgrade is still busted [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) + + * [https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533) + + * **Test fix in ****[https://github.com/kubernetes/kubernetes/pull/6131**6](https://github.com/kubernetes/kubernetes/pull/61316)** ** + + * **Document into known?** + + * **Doc draft with comments here: ****[https://github.com/kubernetes/website/pull/773**1](https://github.com/kubernetes/website/pull/7731) + + * **@nickchase also aware, we're coordinating for relnotes** + + * **[https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-37377817**9](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-373778179)** saad’s summary** + +* Test Infra Updates [GREEN] + + * All ok + +* User-facing Documentation [YELLOW] + + * PRs still trickling in, but small + + * [https://github.com/kubernetes/website/pull/7678](https://github.com/kubernetes/website/pull/7678) looks ready to merge; putting hold until further notification (per item ^^) + + * 1.9 downgrade issue still needs attention/doc + + * Jordan to help get this over the line + + * Meeting with Steve Perry re: auto doc generation + +* Marketing [YELLOW] + + * **All hands on deck to review the ****[blo**g](https://docs.google.com/document/d/1_Wr6bnuWBP8oBGG_PdawUxK4f8aHO6eVyTlQy_rB1rM/edit)**!** + + * **Volunteers:** + + * **@jdumars** + + * **@Ihor** + + * **SIGs needed:** + + * **Networking** + + * **Node** + + * **API-Machinery** + + * **Need to answer ****[thes**e](https://docs.google.com/document/d/1k8wMmIMgKIb42cgRV1Zpa3ng2LsfBrY1ewHCyL3ih6M/edit)** questions** + +* Release notes update [GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + + * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) + + * Expect it to be edited down by Wednesday + + * One last PR to catch last changes + +* Announcements / Open Mic + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + +## * * * + + +## Date: 3/16/2018 + +Video [Link](https://youtu.be/gdW3a7PvBbs) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Issue triage, clean-up, resolution + + * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) + + * [@wasylkowski-a](https://github.com/wasylkowski-a) working on this + + * **Staffing**: Mehdy (@mbohlool) is on vacation and handing off 1.9 branch duties to Joe Betz (@jpbetz) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] + + * Mon: End of code freeze (EOD PST) + + * Mon: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) + + * Mon: Master branch re-opens for 1.11 + + * Mon: PRs for v1.10.0 must be cherry picked to release-1.10 + + * Mon: Notify kubernetes-dev of lifting code freeze + +* ** **[Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for **_week 13_*** *[YELLOW] + + * Mon:** Release v1.10** + + * Mon: release v1.11 alpha + + * M-F: Manage media engagements + + * Tue: Hand-off to release to 1.10 patch manager + + * Thu: Retro + +* Metrics review ↕0 ↑# ↓# [YELLOW] + + * Issues Tracking [Spreadsheet](http://bit.ly/k8s110-issues) + + * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 9 ↓8 Suspect bot removed? + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 9 ↓8 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 6 ↓5 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 4 ↓2 + + * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels) issues: + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 4 ↓3 vs 337 ↑9 closed (**velocity is slowing**) + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [https://github.com/kubernetes/kubernetes/pull/61127](https://github.com/kubernetes/kubernetes/pull/61127) ~ **must be merged right before 1.10 goes out** + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Added unschedulable taint ](https://github.com/kubernetes/kubernetes/pull/61161) + + * Milestone not approved + + * Needs general attention, esp since tests were manual + + * [(WIP) Add AUTOSCALER_ENV_VARS to kube-env to hotfix cluster autoscaler ](https://github.com/kubernetes/kubernetes/pull/61119) + + * **Needs LGTM / Approve** + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [milestone/incomplete-labels](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fincomplete-labels+) (links to PRs of interest) + + * [Fail the ingress test if it timesout getting address ](https://github.com/kubernetes/kubernetes/pull/61234) + + * Needs SIG, approved-for-milestone labels + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-longterm) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Branch Updates / Branch Health [GREEN] + +* Critical failures [YELLOW] + + * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) + +* Test failure triage/resolution updates [YELLOW] + + * GKE upgrade test failing + + * [https://github.com/kubernetes/kubernetes/issues/61290](https://github.com/kubernetes/kubernetes/issues/61290) + + * Gce presubmit was failing on logging sink quota + + * Manually cleaned up stale logging sinks + + * This resource does not have a creation timestamp (?!) thus test-infra janitor cannot help with that + + * It should not be leaking to start with?! Sig-instrumentation want to investigate there. + + * Alpha-feature suite failing: + + * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) + + * [https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442](https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442) + + * **Fix in ****[https://github.com/kubernetes/kubernetes/pull/6116**1](https://github.com/kubernetes/kubernetes/pull/61161)** ** + + * **Still pending review** + + * Gce-serial has one last test failure + + * Should restart all nodes: [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) waiting for triage updates + + * [https://github.com/kubernetes/kubernetes/issues/60763#issuecomment-373358971](https://github.com/kubernetes/kubernetes/issues/60763#issuecomment-373358971) + + * fluentd's asking more cpu resources than 1.9 + + * Hopefully fixed by [https://github.com/kubernetes/kubernetes/pull/61269](https://github.com/kubernetes/kubernetes/pull/61269) + + * **re-opened until testgrid goes green** + + * Scalability performance/flake: + + * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) + + * **@wasylkowski-a continuing bisecting ** + + * **[https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-37365535**9](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-373655359)** still going on** + + * Run same test against the tip of the tree and see if the revert already handled the problem + + * Upgrade suites + + * 1.9 fixes merged + + * [http://testgrid.k8s.io/sig-release-master-upgrade#gce-1.9-master-upgrade-cluster](http://testgrid.k8s.io/sig-release-master-upgrade#gce-1.9-master-upgrade-cluster) has one last serial issue, same as [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) + + * [http://testgrid.k8s.io/sig-release-master-upgrade#gce-1.9-master-upgrade-cluster-parallel](http://testgrid.k8s.io/sig-release-master-upgrade#gce-1.9-master-upgrade-cluster-parallel) looks like `Proxy version v1` is still an issue? + + * Reopened [https://github.com/kubernetes/kubernetes/issues/60769](https://github.com/kubernetes/kubernetes/issues/60769) + + * Downgrade is still busted [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) + + * [https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533) + + * **AI? Maybe need to disable admission controller?** + + * **[https://github.com/kubernetes/kubernetes/pull/6128**2](https://github.com/kubernetes/kubernetes/pull/61282)** opened in 1.9 to always start pvc-protection-controller** + + * **Document into known?** + + * **Doc draft with comments here: ****[https://github.com/kubernetes/website/pull/773**1](https://github.com/kubernetes/website/pull/7731) + + * **@nickchase also aware, we're coordinating for relnotes** + + * **[https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-37377817**9](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-373778179)** saad’s summary** + +* Test Infra Updates [GREEN] + +* User-facing Documentation [YELLOW] + + * Docs PRs are continuing to trickle in, some against the wrong branch (we know, it can be confusing). In high careful triage mode. + + * PVC Protection (1.9)/Storage Object in Use Protection (1.10) docs are getting resolved. Plan B we'll finish fixing after release. + + * Generated docs coming next week + + * Jennifer traveling 3/16, can't make release burndown + +* Marketing [YELLOW] + + * **Jaice/Ihor final review & draft by EOD Monday** + + * **Need to answer ****[thes**e](https://docs.google.com/document/d/1k8wMmIMgKIb42cgRV1Zpa3ng2LsfBrY1ewHCyL3ih6M/edit)** questions** + + * Need to figure out what "An average Kubernetes release" gets marketed like + +* Release notes update [GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + + * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) + +* Announcements / Open Mic + + * SIG Scheduling update + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + +## * * * + + +## Date: 3/15/2018 + +Video [Link](https://youtu.be/p7Nlrub-dg4) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Issue triage, clean-up, resolution + + * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) + + * [@wasylkowski-a](https://github.com/wasylkowski-a) working on this + + * **Staffing**: Shyam hand-off to [@wasylkowski-a](https://github.com/wasylkowski-a), Mehdy (@mbohlool) is on vacation and handing off 1.9 branch duties to Joe Betz (@jpbetz) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] + + * Mon: End of code freeze (EOD PST) + + * Mon: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) + + * Mon: Master branch re-opens for 1.11 + + * Mon: PRs for v1.10.0 must be cherry picked to release-1.10 + + * Mon: Notify kubernetes-dev of lifting code freeze + +* ** **[Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for **_week 13_*** *[YELLOW] + + * Mon:** Release v1.10** + + * Mon: release v1.11 alpha + + * M-F: Manage media engagements + + * Tue: Hand-off to release to 1.10 patch manager + + * Thu: Retro + +* Metrics review ↕0 ↑# ↓# [RED] + + * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 17 ↑1 (up 3 in 2 days) + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 17 ↑1 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 11 ↕0 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 6 ↕0 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 7 ↓1 vs 328 ↑2 closed (**velocity is slowing**) + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [https://github.com/kubernetes/kubernetes/pull/61127](https://github.com/kubernetes/kubernetes/pull/61127) ~ **must be merged right before 1.10 goes out** + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Fix deprecated gcloud compute networks --mode switches. ](https://github.com/kubernetes/kubernetes/pull/61203) + + * Needs approval from [@gmarek](https://github.com/gmarek) + + * [Added unschedulable taint ](https://github.com/kubernetes/kubernetes/pull/61161) + + * Milestone not approved + + * Needs general attention, esp since tests were manual + + * [(WIP) Add AUTOSCALER_ENV_VARS to kube-env to hotfix cluster autoscaler ](https://github.com/kubernetes/kubernetes/pull/61119) + + * **Needs LGTM / Approve** + + * [Fix issue with race condition during pod deletion ](https://github.com/kubernetes/kubernetes/pull/61071) + + * Needs clarification from [jsafrane](https://github.com/jsafrane) + + * Needs approve + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Backoff only when failed pod shows up ](https://github.com/kubernetes/kubernetes/pull/60985) + + * **_Still_**** needs LGTM from @janetkuo in the PR ** + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-longterm) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Branch Updates / Branch Health [GREEN] + + * beta.4 cut last night + +* Critical failures [RED] + + * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) + +* Test failure triage/resolution updates [YELLOW] + + * Brief outage for gke suite yesterday, due to gcloud killed a deprecated flag in staging + + * Fixed by [https://github.com/kubernetes/test-infra/pull/7278](https://github.com/kubernetes/test-infra/pull/7278) + + * K8s fix [https://github.com/kubernetes/kubernetes/pull/61203](https://github.com/kubernetes/kubernetes/pull/61203) - need to get in before next gcloud release + + * Retro: someone need to watch for gcloud warnings? [https://github.com/kubernetes/kubernetes/issues/54238](https://github.com/kubernetes/kubernetes/issues/54238) was opened half year ago + + * Alpha-feature suite failing: + + * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) + + * [https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442](https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442) + + * **Fix in ****[https://github.com/kubernetes/kubernetes/pull/6116**1](https://github.com/kubernetes/kubernetes/pull/61161)** ** + + * Gce-serial has one last test failure + + * Should restart all nodes: [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) waiting for triage updates + + * [https://github.com/kubernetes/kubernetes/issues/60763#issuecomment-373358971](https://github.com/kubernetes/kubernetes/issues/60763#issuecomment-373358971) + + * fluentd's asking more cpu resources than 1.9 + + * @x13n is still looking into this + + * **Needs update** + + * Scalability performance/flake: + + * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) + + * @wasylkowski-a continuing bisecting + + * Upgrade suites + + * A few 1.9 backport fixes pending + + * Downgrade is still busted [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) + + * [https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533) + + * **AI? Maybe need to disable admission controller?** + + * **Document into known?** + + * **Doc draft with comments here: ****[https://github.com/kubernetes/website/pull/773**1](https://github.com/kubernetes/website/pull/7731) + + * **@nickchase also aware, we're coordinating for relnotes** + +* Test Infra Updates [GREEN] + +* User-facing Documentation [YELLOW] + + * Docs PRs are continuing to trickle in, some against the wrong branch (we know, it can be confusing). In high careful triage mode. + + * PVC Protection (1.9)/Storage Object in Use Protection (1.10) docs are getting resolved. Plan B we'll finish fixing after release. + + * Generated docs coming next week + + * Jennifer traveling 3/16, can't make release burndown + +* Marketing [YELLOW] + + * Only SIG to review was storage + + * Network, security both pretty lean + + * Jaice/Ihor final review & draft by EOD Monday + + * Changes are affecting the blog series, so SIGs/I/J need to look this over ~ 2 of 5 got cut + + * Need to answer [these](https://docs.google.com/document/d/1k8wMmIMgKIb42cgRV1Zpa3ng2LsfBrY1ewHCyL3ih6M/edit) questions + + * "An average Kubernetes release" + +* Release notes update [GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + + * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) + +* Announcements / Open Mic + + * SIG Scheduling is missing docs reviews + + * 3 Blog series not 5 this go around + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + +## * * * + + +## Date: 3/14/2018 + +Video [Link](https://youtu.be/e14tlUBd2jQ) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Issue triage, clean-up, resolution + + * Need to resolve: [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589#issuecomment-372660403) + + * **Staffing**: Shyam to hand-off to someone (@Wojtekt is out sick), Mehdy (@mbohlool) is on vacation and handing off 1.9 branch duties to Joe Betz (@jpbetz) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] + + * Mon: End of code freeze (EOD PST) + + * Mon: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) + + * Mon: Master branch re-opens for 1.11 + + * Mon: PRs for v1.10.0 must be cherry picked to release-1.10 + + * Mon: Notify kubernetes-dev of lifting code freeze + +* ** **[Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for **_week 13_*** *[YELLOW] + + * Mon:** Release v1.10** + + * Mon: release v1.11 alpha + + * M-F: Manage media engagements + + * Tue: Hand-off to release to 1.10 patch manager + + * Thu: Retro + +* Metrics review ↕0 ↑# ↓# [RED] + + * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 16 ↑2 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 16 ↑2 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 11 ↑1 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 6 ↑2 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 8 ↓5 vs 326 ↑11 closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [https://github.com/kubernetes/kubernetes/pull/61127](https://github.com/kubernetes/kubernetes/pull/61127) ~ **must be merged right before 1.10 goes out** + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [(WIP) Add AUTOSCALER_ENV_VARS to kube-env to hotfix cluster autoscaler ](https://github.com/kubernetes/kubernetes/pull/61119) + + * **In progress** + + * [Fix issue with race condition during pod deletion ](https://github.com/kubernetes/kubernetes/pull/61071) + + * pull-kubernetes-e2e-gce failing: + + * test/e2e/framework/framework.go:142 +Mar 14 15:10:02.845: Couldn't delete ns: "e2e-tests-volume-xpbrd": namespace e2e-tests-volume-xpbrd was not deleted with limit: **timed out waiting for the condition**, pods remaining: 1 (&errors.errorString{s:"namespace e2e-tests-volume-xpbrd was not deleted with limit: timed out waiting for the condition, pods remaining: 1"}) +test/e2e/framework/framework.go:318 + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Increase apiserver mem-threshold in density test ](https://github.com/kubernetes/kubernetes/pull/61118) + + * **Ready to merge** + + * [Fix error handling in gc e2e test ](https://github.com/kubernetes/kubernetes/pull/60671) + + * **Still Needs LGTM & Approve**, @sig-testing-approvers + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Backoff only when failed pod shows up ](https://github.com/kubernetes/kubernetes/pull/60985) + + * **Still needs LGTM from @janetkuo in the PR ** + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-longterm) + + * [Backoff only when failed pod shows up ](https://github.com/kubernetes/kubernetes/pull/60985) + + * Needs LGTM + + * [Increase loging verbosity for deleting stateful set pods ](https://github.com/kubernetes/kubernetes/pull/60579) + + * Ready to merge + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Branch Updates / Branch Health [GREEN] + + * beta.4 cut last night + +* Critical failures [RED] + + * [https://github.com/kubernetes/sig-release/issues/86](https://github.com/kubernetes/sig-release/issues/86) + + * Mem increases in controller manager understood: + + * fluentd scaler PR changed to look at correct thing, so scaler is trying to patch alongside the autoscaler, makes the daemonset controller do a lot of work, and leads to higher memory use: fluentd gcp pods being deleted/re-created. Not sure why they are being deleted, but preceded by calls to kubelet for pod status - Shyam spoke to Daniel, and we need to change the fluentd scaler to not make API calls if the resource request for the object have not changed. Daniel working on pod startup latency issue, and also creating an issue for the instrumentation code. + +* Test failure triage/resolution updates [YELLOW] + + * Alpha-feature suite failing: + + * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) + + * [https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442](https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442) **@k82cn is working on a fix (no updates yet?)** + + * Gke-serial back to green + + * Gce-serial has one last test failure + + * Should restart all nodes: [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) waiting for triage updates + + * [https://github.com/kubernetes/kubernetes/pull/60386](https://github.com/kubernetes/kubernetes/pull/60386)** **might be the culprit? Assigned to sig-apps + + * Scalability performance/flake: + + * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) + + * See Shyam’s update above in critical failures + + * Port kubemark presubmit to use kubetest (failing in 1.7/1.8 which uses older go version and cannot compile kubetest) + + * I’m working on 1.7/1.8 fixes so those two branches can be unblocked + + * Upgrade suites + + * A few 1.9 backport fixes pending + + * Downgrade is still busted [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) + + * [https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533) + + * **AI? Maybe need to disable admission controller?** + + * **Document into known?** + + * **Doc draft with comments here: ****[https://github.com/kubernetes/website/pull/773**1](https://github.com/kubernetes/website/pull/7731) + + * **@nickchase also aware, we're coordinating for relnotes** + +* Test Infra Updates [GREEN] + +* User-facing Documentation [YELLOW] + + * Docs PRs are continuing to trickle in, some against the wrong branch (we know, it can be confusing). In high careful triage mode. + + * A bit of a mess with docs for renamed beta feature. Anyone available to help pick through what we should do about PVC Protection (1.9)/Storage Object in Use Protection (1.10)? + + * Related to previous, looks like docs had better track Downgrade busted issue. We have a doc in, but … it needs a lotta love. + + * Asking for help with generated docs (helpers identified in sig-docs) + +* Marketing [GREEN] + +* Release notes update [RED/YELLOW/GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + + * Working GDoc: [https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#) + +* Announcements / Open Mic + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + + * Scalability is a big problem, and needs to be dealt with earlier ([https://github.com/kubernetes/community/blob/master/sig-scalability/processes/formal-scalability-processes.md](https://github.com/kubernetes/community/blob/master/sig-scalability/processes/formal-scalability-processes.md)) ~ need more attention on this,** it is a project risk! ** + + * Need consistent place for procedural docs related to "known issues" + +## * * * + + +## Date: 3/13/2018 + +Video [Link](https://youtu.be/kcKw57uEp20) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * **CRUNCH WEEK!!** + + * Begin M-F Burndown meetings + + * Wed: End of code freeze (EOD PST) + + * Wed: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) + + * Wed: Master branch re-opens for 1.11 + + * Wed: PRs for v1.10.0 must be cherry picked to release-1.10 + + * Thu: Notify kubernetes-dev of lifting code freeze + + * Fri: Initial go/no-go prediction for the release + + * **All-hands on deck for missing docs** + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[RED] + + * **Wed: Release v1.10 3/21/2018** + + * release v1.11 alpha + + * Manage media engagements + + * Hand-off to release to 1.10 patch manager + + * Prep for retro + +* Metrics review ↕0 ↑# ↓# [RED] + + * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 14 ↓4 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 14 ↓4 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↕0 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 10 ↓2 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 4 ↓12 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 13 ↓3 vs 315 ↑9 closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * We will get one PR from sig-cluster-lifecycle for kubeadm that will need to merge just before we cut v1.10 release. Similar to what was in [https://github.com/kubernetes/kubernetes/pull/56599](https://github.com/kubernetes/kubernetes/pull/56599) for 1.9. @timothysc will be creating a PR. + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Bump to etcd 3.1.12 to pick up critical fix](https://github.com/kubernetes/kubernetes/pull/60998)[ ](https://github.com/kubernetes/kubernetes/pull/60998)(merged) + + * **Pinged sttts, mikedanese** + + * [Use grpc to improve the CPU utilization of the logging agent. ](https://github.com/kubernetes/kubernetes/pull/60981)(merged) + + * **Ready to merge** + + * [Find most recent modified date for fluentd buffers recursively. ](https://github.com/kubernetes/kubernetes/pull/60951) + + * **Ready to merge** + + * [Fix default auditing options. ](https://github.com/kubernetes/kubernetes/pull/60739) + + * **Tests failing** + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Update Kubelet command option description for IPv6 ](https://github.com/kubernetes/kubernetes/pull/60737) + + * **Added ****[@dchen110**7](https://github.com/dchen1107)** ****[@Random-Li**u](https://github.com/random-liu)** ****[@yujuhon**g](https://github.com/yujuhong)** to PR** + + * [Use pod UID as cache key instead of namespace/name ](https://github.com/kubernetes/kubernetes/pull/61069) + + * **Needs LGTM & Approve, @****sig-scheduling-maintainers** + + * [Fix error handling in gc e2e test ](https://github.com/kubernetes/kubernetes/pull/60671) + + * **Needs LGTM & Approve**, @sig-testing-approvers + + * [Cleanup old upgrading code that is v1.8->v1.9-specific ](https://github.com/kubernetes/kubernetes/pull/60359) + + * **Needs LGTM from ****[@dixud**x](https://github.com/dixudx)** ****[@fabriziopandin**i](https://github.com/fabriziopandini)** ****[@timothys**c](https://github.com/timothysc)** ****[@luxa**s](https://github.com/luxas)** ** + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Backoff only when failed pod shows up ](https://github.com/kubernetes/kubernetes/pull/60985) + + * **Needs LGTM, pinged @janetkuo in the PR**** ** + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Branch Updates / Branch Health [RED/YELLOW/GREEN] + + * Fast forwarded branch this morning. Will fast forward again around noon PST + +* Critical failures [RED/YELLOW/GREEN] + +* Test failure triage/resolution updates [YELLOW] + + * Gke tests back to green now :-) + + * Alpha-feature suite failing: + + * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) + + * [https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442](https://github.com/kubernetes/kubernetes/issues/61050#issuecomment-372702442) **@k82cn is working on a fix ** + + * Gci-gce|gke-serial: two tests left: + + * failing on resource usage tracking ~ + + * [https://github.com/kubernetes/kubernetes/issues/60762](https://github.com/kubernetes/kubernetes/issues/60762) + + * [https://github.com/kubernetes/kubernetes/pull/60981](https://github.com/kubernetes/kubernetes/pull/60981) claim fix the issue, and merged just now + + * Waiting for next run + + * Should restart all nodes: [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) waiting for triage updates + + * @Crassirostris is looking into it + + * Scalability performance/unstability: + + * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) + + * Still tracking down performance caused by etcd version + + * **[https://github.com/kubernetes/kubernetes/pull/6099**8](https://github.com/kubernetes/kubernetes/pull/60998) + + * ^^ merged just now, waiting for result + + * Shyam still doing regression test + + * Upgrade suites + + * A few 1.9 backport fixes pending + + * Downgrade is still busted [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) + + * [https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533](https://github.com/kubernetes/kubernetes/issues/60764#issuecomment-372624533) + + * **AI? Maybe need to disable admission controller?** + + * **Document into known?** + +* Test Infra Updates [GREEN] + +* User-facing Documentation [GREEN] + + * 3 docs PRs outstanding: 1 awaiting final tech review (could be merged without, just being extra careful), 1 waiting on final copyedit changes (could also be merged without, @jrondeau can make that call if need be), 1 landed this morning and needs only confirmation that it belongs in the 1.10 docs (not master and therefore published immediately) + + * Asking for help with generated docs (helpers identified in sig-docs) + +* Marketing [GREEN] + +* Release notes update [RED/YELLOW/GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + +* Announcements / Open Mic + + * RC1 Monday 19th + + * Code freeze lifting Monday 19th mid-day + + * **New release date Monday 26th** + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + +## * * * + + +## Date: 3/12/2018 + +Video [Link](https://youtu.be/xuScNCEaHJ4) + +Attending: + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * **CRUNCH WEEK!!** + + * Begin M-F Burndown meetings + + * Wed: End of code freeze (EOD PST) + + * Wed: Perform final branchff ~ we need one sooner to catch [60989](https://github.com/kubernetes/kubernetes/pull/60989) + + * Wed: Master branch re-opens for 1.11 + + * Wed: PRs for v1.10.0 must be cherry picked to release-1.10 + + * Thu: Notify kubernetes-dev of lifting code freeze + + * Fri: Initial go/no-go prediction for the release + + * **All-hands on deck for missing docs** + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[RED/YELLOW/GREEN] + + * **Wed: Release v1.10 3/21/2018** + + * release v1.11 alpha + + * Manage media engagements + + * Hand-off to release to 1.10 patch manager + + * Prep for retro + +* Metrics review ↕0 ↑# ↓# [RED/YELLOW/GREEN] + + * [Open ](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10)**[issue**s](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 18 ↓4 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 18 ↓2 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 0 ↓1 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 12 ↓1 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues:0 ↕0 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 16 ↑1 Review Needed + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 16 ↑1 vs 306 ↑11 closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Bump to etcd 3.1.12 to pick up critical fix ](https://github.com/kubernetes/kubernetes/pull/60998) + + * [Use grpc to improve the CPU utilization of the logging agent. ](https://github.com/kubernetes/kubernetes/pull/60981) + + * [Find most recent modified date for fluentd buffers recursively. ](https://github.com/kubernetes/kubernetes/pull/60951) + + * [Fix default auditing options. ](https://github.com/kubernetes/kubernetes/pull/60739) **(Needs attention)** + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [fix show-all option description ](https://github.com/kubernetes/kubernetes/pull/61022) + + * [Fix error handling in gc e2e test ](https://github.com/kubernetes/kubernetes/pull/60671) + + * [Cleanup old upgrading code that is v1.8->v1.9-specific ](https://github.com/kubernetes/kubernetes/pull/60359) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Backoff only when failed pod shows up ](https://github.com/kubernetes/kubernetes/pull/60985) **(Needs attention) ** + + * [prevent conformance test failure in DIND scenario ](https://github.com/kubernetes/kubernetes/pull/60811) **(Needs attention) ** + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Branch Updates / Branch Health [No status] + + * No update + +* Critical failures [YELLOW] + + * Alpha feature fails ~ Sen to open issue + + * [https://github.com/kubernetes/kubernetes/issues/61050](https://github.com/kubernetes/kubernetes/issues/61050) + + * GKE problem with the dashboard being disabled ~ + + * Ben has a fix? [https://github.com/kubernetes/test-infra/pull/7217](https://github.com/kubernetes/test-infra/pull/7217) + +* Test failure triage/resolution updates [YELLOW] + + * Gci-gke|pull-gke failing on a sig-ui test [https://github.com/kubernetes/kubernetes/issues/60767](https://github.com/kubernetes/kubernetes/issues/60767) + + * Gci-gce|gke-serial: + + * failing on resource usage tracking ~ + + * [https://github.com/kubernetes/kubernetes/issues/60762](https://github.com/kubernetes/kubernetes/issues/60762) + + * [https://github.com/kubernetes/kubernetes/pull/60981](https://github.com/kubernetes/kubernetes/pull/60981) claim fix the issue + + * Flexvolume e2e fix: [https://github.com/kubernetes/kubernetes/pull/60859](https://github.com/kubernetes/kubernetes/pull/60859) + + * Should restart all nodes: [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) waiting for triage updates + + * **Need to hassle the sig** + + * Scalability performance/unstability: + + * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) + + * Still tracking down performance caused by etcd version + + * **Probably need to invite sig for an update ****here****?** + + * **[https://github.com/kubernetes/kubernetes/pull/6099**8](https://github.com/kubernetes/kubernetes/pull/60998) + + * **To be tracked as an individual item** + + * (also related etcd experimentation: [https://github.com/kubernetes/kubernetes/pull/61037](https://github.com/kubernetes/kubernetes/pull/61037)) + + * etcd with Shyam + + * Reversion helped fix the issue, but there is another regression (over 5 second SLO) + + * Second round of bisection to ID problem + + * ETA? Understand/debug by hopefully Wed + + * Another scalability/performance regression [issue](https://github.com/kubernetes/kubernetes/issues/60500) [60500](https://github.com/kubernetes/kubernetes/issues/60500) + + * Not super serious, but may be something behind it + + * Unrelated to etcd regression + + * Upgrade suites + + * A few 1.9 backport fixes pending + + * Downgrade is still busted [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) + +* Test Infra Updates [No update] + +* User-facing Documentation [YELLOW] + + * Docs in "unusually good shape" woo! + + * A couple of new docs over the weekend, and need to synchronize with Ihor + +* Marketing [GREEN] + + * Refine blog post so an early draft can go to media + + * Get permission for interviews based on features + + * Due by Wednesday + + * AI: Jaice, Ihor, Caleb ~ up front, title, features section review + + * Kaitlyn updating 5 blog series + + * Jaice - project velocity + + * Case studies/eco highlights done + + * Kaitlyn working on webinar scheduling + + * Needs a "source of truth" review + + * Aparna to review with Brian/Tim + + * Needs a formal sign off + +* Release notes update [YELLOW] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) ([https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit#)) + + * They are not perfect, but they are mostly there + + * 93 pages, 70 pages of extraneous info that needs to be merged + + * Need help getting themes in & some unknown items reconciled + + * Need a docs hack ~ Jaice to schedule + +* Announcements / Open Mic + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + +* * * + + +## Date: 3/9/2018 + +Video [Link](https://youtu.be/JU8ZwLScA4Q) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Close out docs PRs by EOD today + + * 4 outstanding docs PRs, mostly there + + * Still need info on storage feature (J to follow-up with Saad Ali) + + * Content generation will happen next week + + * Good idea what release notes looks like + + * Generated version [draft](https://docs.google.com/document/d/18I1kM4zmEEZ-HKOyP3WHolN_rAO-6iF4IeLuCAbCgtk/edit) + + * Release themes by Wednesday + + * Sort out release branch health (flakes vs. real) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] + + * **CRUNCH WEEK!!** + + * Begin M-F Burndown meetings + + * End of code freeze (EOD PST) + + * Perform final branchff + + * Master branch re-opens for 1.11 + + * PRs for v1.10.0 must be cherry picked to release-1.10 + + * Notify kubernetes-dev of lifting code freeze + + * Initial go/no-go prediction for the release + + * All-hands on deck for missing docs + +* Metrics review ↕0 ↑# ↓# [YELLOW] + + * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 22 ↓2 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 20 ↓2 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 1 ↕0 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 13 ↓2 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 0 ↕0 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 15 ↓1 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 15 ↕0 vs 295 ↑17 closed + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Fix default auditing options. ](https://github.com/kubernetes/kubernetes/pull/60739)(depends on [#60926](https://github.com/kubernetes/kubernetes/pull/60926) merging first) + + * [Make log audit backend configurable in GCE ](https://github.com/kubernetes/kubernetes/pull/60926)(needs approval) + + * [use temp kubeconfig for fake factory ](https://github.com/kubernetes/kubernetes/pull/60950) (needs a-f-m) + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) ~ 7 + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Exception Requests [GREEN] + + * None + +* Branch Updates / Branch Health [YELLOW] + + * Things are ok, FFW done for today + + * Release building ~ bot user is now in GH org + +* Marketing Updates [GREEN] + + * Jaice still needs to update the blog post + + * Monday, marketing team is looking for user feedback on the beta post-blog post + +* Documentation Updates [GREEN] + + * See above + +* Critical build failures [RED] + + * Serial suite is still failing [https://github.com/kubernetes/kubernetes/issues/60003](https://github.com/kubernetes/kubernetes/issues/60003) + + * Fixes for two DaemonSet test failures merged: [#60747](https://github.com/kubernetes/kubernetes/pull/60747), [#60820](https://github.com/kubernetes/kubernetes/pull/60820) + + * 6 tests in gce-serial + + * Flexvolumes fix opened [https://github.com/kubernetes/kubernetes/pull/60859](https://github.com/kubernetes/kubernetes/pull/60859) + + * Upgrade suites are still failing + + * [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) + + * Downgrade failed due to fail to delete a statefulset, assigned to sig-storage/sig-apps + + * Need to either backport fixes to 1.9 tests or skip those tests + + * **Waiting for feedback from sig-apps ** + + * Scalability suite is still flaky + + * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) + + * Rolling back etcd server: (DONE) [https://github.com/kubernetes/kubernetes/pull/60891](https://github.com/kubernetes/kubernetes/pull/60891) + + * One sig-ui failure in [https://testgrid.k8s.io/sig-release-master-blocking#gci-gke](https://testgrid.k8s.io/sig-release-master-blocking#gci-gke) + +* Test Infra Updates [GREEN] (no update) + +* * * + + +## Date: 3/7/2018 + +Video Link + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Close out docs PRs + + * Good idea what release notes looks like + + * Sort out release branch health (flakes vs. real) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] + + * **CRUNCH WEEK!!** + + * Begin M-F Burndown meetings + + * End of code freeze (EOD PST) + + * Perform final branchff + + * Master branch re-opens for 1.11 + + * PRs for v1.10.0 must be cherry picked to release-1.10 + + * Notify kubernetes-dev of lifting code freeze + + * Initial go/no-go prediction for the release + + * All-hands on deck for missing docs + +* Metrics review ↕0 ↑# ↓# [YELLOW] + + * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 24 ↓3 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 22 ↕0 + + * **API Memory usage regression** + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 1 ↓1 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 15 ↕0 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 0 ↓1 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 0 ↓2 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 16 ↑2 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 15 ↓14 vs 278 ↑21 closed + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Fix default auditing options. ](https://github.com/kubernetes/kubernetes/pull/60739) + + * [Revert "Audit use buffered backend" ](https://github.com/kubernetes/kubernetes/pull/60727) + + * [WIP - Prevent read anomalies from the watch cache ](https://github.com/kubernetes/kubernetes/pull/60478) + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Exception Requests [GREEN] + + * None + +* Branch Updates / Branch Health [RED/YELLOW/GREEN] + + * FF this morning to pull in daemonset fixes, but master is still failing. + + * Beta to be cut right after this meeting + +* Marketing Updates [GREEN] + + * + +* Documentation Updates [GREEN] + + * A few features still seem to be in doubt. Straggler PRs are coming in steadily; sig-docs is doing an awesome job of staying on top of doc merges. + +* Critical build failures [YELLOW] + + * Kubeadm suites is back to green now :-) Thanks Ben + + * Submit-queue blocked for a few hours last night - [https://github.com/kubernetes/kubernetes/issues/60870](https://github.com/kubernetes/kubernetes/issues/60870) fixed by [https://github.com/kubernetes/kubernetes/pull/60872](https://github.com/kubernetes/kubernetes/pull/60872) + + * Serial suite is still failing [https://github.com/kubernetes/kubernetes/issues/60003](https://github.com/kubernetes/kubernetes/issues/60003) + + * Fixes for two DaemonSet test failures merged: [#60747](https://github.com/kubernetes/kubernetes/pull/60747), [#60820](https://github.com/kubernetes/kubernetes/pull/60820) + + * 6 tests in gce-serial + + * Flexvolumes fix opened [https://github.com/kubernetes/kubernetes/pull/60859](https://github.com/kubernetes/kubernetes/pull/60859) + + * 1 test in gke-serial + + * Update: looking better now, with just a flexvolume fix pending + + * Upgrade suites are still failing + + * [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) + + * Downgrade failed due to fail to delete a statefulset, assigned to sig-storage/sig-apps + + * Need to either backport fixes to 1.9 tests or skip those tests + + * Waiting for feedback from sig-apps + + * Scalability suite is still flaky + + * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) + + * Rolling back etcd server: [https://github.com/kubernetes/kubernetes/pull/60891](https://github.com/kubernetes/kubernetes/pull/60891) + + * Caused by etcd upgrade, PR in to revert for k8s, should fix the flake; Sen will follow up + +* Test Infra Updates [GREEN] (no update) + +* * * + + +## Date: 3/5/2018 + +Video [Link](https://youtu.be/WLeK9jZ2oEc) + +Attending: + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Close out docs PRs + + * Good idea what release notes looks like + + * Sort out release branch health (flakes vs. real) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] + + * **CRUNCH WEEK!!** + + * Begin M-F Burndown meetings + + * End of code freeze (EOD PST) + + * Perform final branchff + + * Master branch re-opens for 1.11 + + * PRs for v1.10.0 must be cherry picked to release-1.10 + + * Notify kubernetes-dev of lifting code freeze + + * Initial go/no-go prediction for the release + + * All-hands on deck for missing docs + +* Metrics review ↕0 ↑# ↓# [RED/YELLOW/GREEN] + + * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 27 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 22 + + * API Memory usage regression + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 2 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 15 + + * Test failures have been added + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 1 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 2 + + * [milestone/needs-attention](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone%2Fneeds-attention) issues: 14 + + * Other priority Issues: + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 29 ↓7 vs 257 ↑19 closed + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Exception Requests [GREEN] + + * None + + * Caleb is going to make a GH-based storage mechanism for completed exception requests + +* Branch Updates / Branch Health [RED/YELLOW/GREEN] + +* Marketing Updates [RED/YELLOW/GREEN] + + * + +* Documentation Updates [RED/YELLOW/GREEN] + + * A few features still seem to be in doubt. Straggler PRs are coming in steadily; sig-docs is doing an awesome job of staying on top of doc merges. + +* Critical build failures [YELLOW] + + * Gce|gke-serial is failing multiple tests: + + * (looks worse after daemonset tests are fixed) + + * Unbrella issue: [https://github.com/kubernetes/kubernetes/issues/60003](https://github.com/kubernetes/kubernetes/issues/60003) + + * Failing test issues: + + * [https://github.com/kubernetes/kubernetes/issues/60761](https://github.com/kubernetes/kubernetes/issues/60761) + + * [https://github.com/kubernetes/kubernetes/issues/60762](https://github.com/kubernetes/kubernetes/issues/60762) + + * [https://github.com/kubernetes/kubernetes/issues/60745](https://github.com/kubernetes/kubernetes/issues/60745) + + * [https://github.com/kubernetes/kubernetes/issues/60725](https://github.com/kubernetes/kubernetes/issues/60725) + + * [https://github.com/kubernetes/kubernetes/issues/60763](https://github.com/kubernetes/kubernetes/issues/60763) + + * 1.9-master upgrade suites + + * Successfully upgraded! + + * Now deal with REAL test failures: + + * Unbrella issue: [https://github.com/kubernetes/kubernetes/issues/60764](https://github.com/kubernetes/kubernetes/issues/60764) + + * Test failures are linked within the issue + + * The downgrade suite is still borked, assigned to sig-cluster-lifecycle + + * 1.9 test breaks after upgrading to 1.10 - better design? + + * Talking to sig-cluster-lifecycle + + * Scalability suite is still flaky + + * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) + + * [https://github.com/kubernetes/kubernetes/pull/60740](https://github.com/kubernetes/kubernetes/pull/60740) fixes the timeout issue, @shyamjvs is following up to monitoring performance issue + + * Kubeadm suite start to failing again + + * [https://github.com/kubernetes/kubernetes/issues/59762](https://github.com/kubernetes/kubernetes/issues/59762) + + * After some test-infra fixes still cannot find kubeconfig + + * And according to [https://github.com/kubernetes/kubernetes/issues/59762#issuecomment-365550168](https://github.com/kubernetes/kubernetes/issues/59762#issuecomment-365550168), the kubeadm jobs should not be release blocking anymore? + +* Test Infra Updates [GREEN] + + * `/milestone` had a bug, but is working now. + +* * * + + +## Date: 3/2/2018 + +Video [Link](https://youtu.be/HeuMd3UDut8) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[GREEN] + + * Beta cut + + * Docs PRs due for review + + * Code freeze + + * Exception reviews + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[GREEN] + + * Another beta + + * Docs PRs are finalized + + * Release notes draft ready for review/refine + +* Metrics review ↕0 ↑# ↓# [YELLOW] + + * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 22 + + * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: + + * [https://github.com/kubernetes/kubernetes/issues/60507](https://github.com/kubernetes/kubernetes/issues/60507) has PR open now and looking on track + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: + + * Other priority Issues: + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 36 ↑# ↓# vs 238 ↑# closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Exception Requests [GREEN] + + * Approved request: + + * **Feature name:** [RunAsGroup in pod and container SecurityContext](https://groups.google.com/d/msg/kubernetes-milestone-burndown/kq4zhEI_c-I/vLVpJlMMBAAJ) + +* Branch Updates / Branch Health [GREEN] + + * Nothing to add + +* Critical build failures [YELLOW] + + * Gce|gke-serial is failing daemonset tests + + * [https://github.com/kubernetes/kubernetes/issues/60003](https://github.com/kubernetes/kubernetes/issues/60003) + + * Fix opened: [https://github.com/kubernetes/kubernetes/pull/60672](https://github.com/kubernetes/kubernetes/pull/60672) + + * 1.9-master upgrade suites are failing on daemonset upgrade + + * [https://github.com/kubernetes/kubernetes/issues/60437](https://github.com/kubernetes/kubernetes/issues/60437) + + * [https://github.com/kubernetes/kubernetes/pull/60386](https://github.com/kubernetes/kubernetes/pull/60386) merged this morning, will follow up with today’s run + + * Scalability suite is flaky + + * [https://github.com/kubernetes/kubernetes/issues/60589](https://github.com/kubernetes/kubernetes/issues/60589) + + * Thanks Wojtec for triaging + + * Kubeadm suite start to failing again + + * [https://github.com/kubernetes/kubernetes/issues/59762](https://github.com/kubernetes/kubernetes/issues/59762) + + * @bentheelder has some fix to let kubeadm use latest-bazel build + +* Test Infra Updates [GREEN] + + * `/milestone` command should be available later today. (WOOO!) + +* User-facing Documentation YELLOW + + * (jrondeau) Working through tracking spreadsheet, pinging outstanding docs. Today is deadline, but I’m cutting some slack because I haven’t been reminding folks + + * (jrondeau) EOD update 3/2: 7 PRs + 4 features that don’t need docs identified on tracking board, out of 33 features. 3 other features look to be in doubt. Qs out in all remaining GH issues; at least half a dozen look as though they don’t need doc updates, but still confirming. + +* Marketing [GREEN] + + * Nick, Ihor, Caleb, Jaice, Jennifer need to give the blog a once-over to ensure what is in there is accurate + + * Need to look at media key messages document ASAP! + + * 5 blog series is looking good + + * email sent out with those links/timing, please +1 in thread + +* Release notes update [YELLOW] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + + * Noah Abrahams is working on the basic draft + + * Correlating timeline vs. github branching ~ + + * Jaice, Noah, and Jennifer meeting next week! + +* Announcements / Open Mic + + * Nick will be running meetings next week + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + + * Release notes continues to be agonizing + +## * * * + + +## Date: 2/28/2018 + +Video [Link](https://youtu.be/cx9bdcKY3jw) + +Attending: + +* Jaice, Nick, Vignesh, Noah, Sen, Jordan, Tim Pepper, Ihor, Josh, Cole Wagner, Natasha, + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Code freeze + + * In effect + + * Exceptions have been going ok + + * Pruning + + * What do we need to keep an eye on? + + * beta to be cut + + * Fast forwarded release-1.10 branch today (28 Feb 18) [calebamiles] + + * Will wait for CI to run against branch + + * Will start cutting beta from branch + + * Docs PR deadline (not reviewed, but ready for review, and at a high level) + + * We need an update ASAP + + * Release notes - hopefully a cut by Friday + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] + + * Next beta + + * Docs complete deadline + +* Issue review by SIG +[Bug Leaderboard](https://docs.google.com/spreadsheets/d/1SAl4YcsB6V9yrBVN88FGMoC9rUUykAepDq2sfKQAOfM/edit?usp=sharing) ~ updated later today + + * Extra 24 hours helped + + * + +* Updates (general) + +* Critical build failures [YELLOW] + + * Gke suites are fixed (yay) + + * Gci-gke|gce-slow is failing on a network test + + * [https://github.com/kubernetes/kubernetes/issues/60588](https://github.com/kubernetes/kubernetes/issues/60588) + + * Gce|gke-ingress is failing L7 LB tests + + * [https://github.com/kubernetes/kubernetes/issues/60381](https://github.com/kubernetes/kubernetes/issues/60381) + + * Gce|gke-serial is failing daemonset tests + + * [https://github.com/kubernetes/kubernetes/issues/60003](https://github.com/kubernetes/kubernetes/issues/60003) + + * 1.9-master upgrade suites are failing on daemonset upgrade + + * [https://github.com/kubernetes/kubernetes/issues/60437](https://github.com/kubernetes/kubernetes/issues/60437) + + * Fix opened in [https://github.com/kubernetes/kubernetes/pull/60386](https://github.com/kubernetes/kubernetes/pull/60386) + + * Scalability suite is flaky + + * Kubeadm suite start to failing again + + * [https://github.com/kubernetes/kubernetes/issues/59762](https://github.com/kubernetes/kubernetes/issues/59762) + +* Exception Requests [GREEN] + + * Approved the following exceptions: + + * **Feature name:** [Advanced Audit Logging](https://groups.google.com/d/msg/kubernetes-milestone-burndown/FeOcIqdRmZQ/7G2s2WMIAQAJ) + + * **Feature name:** [GCE Regional Persistent Disk to beta](https://groups.google.com/d/msg/kubernetes-milestone-burndown/pwI3QwuCYL4/ugg9UdhWAQAJ) + + * Needs review/approval: + + * **Feature name:** [RunAsGroup in pod and container SecurityContext](https://groups.google.com/d/msg/kubernetes-milestone-burndown/kq4zhEI_c-I/vLVpJlMMBAAJ) + +* * * + + +## Date: 2/26/2018 + +Video [Link](https://youtu.be/2HRpZ8TLUlg) + +Attending: + +* Jaice, Josh, Nick, Natasha, Sen, Caleb, Stephen, Kaitlyn, Ihor + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[YELLOW] + + * Code freeze + + * Question: Is mungegithub still responsible for enforcing code freeze or do will live in an all tide world now **Answer: mungegithub for now** + + * PR: https://github.com/kubernetes/test-infra/pull/6999 + + * Pruning + + * What do we need to keep an eye on? + + * beta to be cut + + * Docs PR deadline (not reviewed, but ready for review, and at a high level) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] + + * Next beta + + * Docs complete deadline + +* Metrics review ↕0 ↑# ↓# [YELLOW] + + * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 36↓12 + + * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: 0↕0 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 1↕0 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 17↓2 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 7↑1 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 6↓1 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 5↑1 + + * Other priority Issues: 0↓2 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 38 ↑# ↓# vs 148 ↑# closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Issue review by SIG +[Bug Leaderboard](https://docs.google.com/spreadsheets/d/1SAl4YcsB6V9yrBVN88FGMoC9rUUykAepDq2sfKQAOfM/edit?usp=sharing) + +* Critical build failures [YELLOW] + + * OSS gke tests are all failing reach API server - [https://github.com/kubernetes/kubernetes/issues/60380](https://github.com/kubernetes/kubernetes/issues/60380) + + * Fix opened [https://github.com/kubernetes/kubernetes/pull/60334](https://github.com/kubernetes/kubernetes/pull/60334) + + * Ingress-gce is failing + + * [https://github.com/kubernetes/kubernetes/issues/60381](https://github.com/kubernetes/kubernetes/issues/60381) + + * Fix opened [https://github.com/kubernetes/kubernetes/pull/59982](https://github.com/kubernetes/kubernetes/pull/59982) + + * Serial-gce suite is failing + + * [https://github.com/kubernetes/kubernetes/issues/60003](https://github.com/kubernetes/kubernetes/issues/60003) + + * sig-network and sig-app tests + + * Needs triage + + * Upgrade test is failing + + * **Looks like daemonset upgrade is failing (sig-apps)** + + * [https://github.com/kubernetes/kubernetes/issues/60437](https://github.com/kubernetes/kubernetes/issues/60437) + + * Needs triage + +* Test failure triage/resolution updates [GREEN] + + * 7 open issues + + * Lots of noise from GKE tests, but fix PRs are open + +* Test Infra Updates [YELLOW] + + * Cole to finish release jobs PR: [https://github.com/kubernetes/test-infra/pull/6834](https://github.com/kubernetes/test-infra/pull/6834) + + * Prioritized for today + + * Also doing code freeze + +* Documentation & Marketing [GREEN] + + * Marketing: + + * Blog announcement is pre-drafted, Jaice to review and ensure what is in the release is reflected in the blog + + * Solidify the 5 blogs for the blog series - get agreement + + * Sound bite document for media Q&A - source of truth on the release + + * Schedule the post-release webinar with release team + + * Docs: + + * Need update from Jennifer + +* Release notes update [GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + + * Auto-generated version is now working + + * Have basics in the preview blog, probably on k8s.io + + * Some status in the features tracking spreadsheet are not accurate (Ihor) + + * First cut soon + + * Link to the preview blog + +* Announcements / Open Mic + + * M-W-F ~ cancellations will be in email and Slack channel + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + +## * * * + + +## Date: 12/19/2018 ~ Cancelled for holiday + +Video Link + +Attending: + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[GREEN] + + * Code slush + + * Issue labels are correct and tracked + + * Begin hunting for "black swans" + + * Release notes status especially important so we know how to target our efforts on collecting this + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[YELLOW] + + * Code Freeze + + * Need to turn on automation + + * Begin MWF Burndown meetings + + * Begin pruning (as necessary) + + * 1.10.0-beta.1 release + + * Docs deadline - PRs ready for review + + * Getting into crunch time + +* Metrics review ↕0 ↑# ↓# [RED/YELLOW/GREEN] + + * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 48 ↑5 + + * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: 0 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 1 ↑1 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 21 ↑3 (trending up week over week) + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 5 ↑5 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 8 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 13 ↓3 + + * Other priority Issues: + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 32 vs 92 closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Maximum of N per topology value. ](https://github.com/kubernetes/kubernetes/pull/41718) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Issue review by [SIG](https://docs.google.com/spreadsheets/d/1SAl4YcsB6V9yrBVN88FGMoC9rUUykAepDq2sfKQAOfM/edit#gid=161799236) + +* First critical and failing test issues + +* * * + + +## Date: 2/12/2018 + +Video Link + +Attending: + +* Jaice Singer DuMars, SIG-human + +* Jennifer Rondeau + +* Nick Chase + +* Jasmine the Puppy + +* Sen Lu + +* Natasha Woods + +* Vignesh Pamu + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week 7/12 *[GREEN] + + * 1.10.0-beta.0 release + + * Create 'release-1.10' branch and begin daily branchff + + * All release branch CI jobs created + + * Send out weekly update + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week 8/12 *[GREEN] + + * Begin Code Slush + +* Metrics review ↕0 ↑# ↓# [GREEN] + + * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 43 ↓4 + + * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: 0 ↕0 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 0 ↕0 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 18 ↑2 (trending up) + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 0 ↕0 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 8 ↑3 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 16 ↓8 + + * Other Priority Issues: 1 ↕0 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: # ↑# ↓# vs # ↑# closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Exception Requests [GREEN] + + * None + +* Issue review by SIG +[Bug Leaderboard](https://docs.google.com/spreadsheets/d/1SAl4YcsB6V9yrBVN88FGMoC9rUUykAepDq2sfKQAOfM/edit?usp=sharing) + + + Approved-for-milestone: 6 + Not approved: 37 + +<table> + <tr> + <td>SIG</td> + <td>LINK</td> + <td>COUNT</td> + <td>DELTA ↕0 ↑# ↓# </td> + </tr> + <tr> + <td>sig/api-machinery</td> + <td>sig/api-machinery</td> + <td>8</td> + <td>↓1</td> + </tr> + <tr> + <td>sig/apps</td> + <td>sig/apps</td> + <td>2</td> + <td>↑2</td> + </tr> + <tr> + <td>sig/architecture</td> + <td>sig/architecture</td> + <td>2</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/auth</td> + <td>sig/auth</td> + <td>6</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/autoscaling</td> + <td>sig/autoscaling</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/aws</td> + <td>sig/aws</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/azure</td> + <td>sig/azure</td> + <td>6</td> + <td>↓1</td> + </tr> + <tr> + <td>sig/cli</td> + <td>sig/cli</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/cluster-lifecycle</td> + <td>sig/cluster-lifecycle</td> + <td>7</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/federation</td> + <td>sig/federation</td> + <td>0</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/gcp</td> + <td>sig/gcp</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/instrumentation</td> + <td>sig/instrumentation</td> + <td>3</td> + <td>↓1</td> + </tr> + <tr> + <td>sig/network</td> + <td>sig/network</td> + <td>2</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/node</td> + <td>sig/node</td> + <td>19</td> + <td>↓1</td> + </tr> + <tr> + <td>sig/release</td> + <td>sig/release</td> + <td>0</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/scalability</td> + <td>sig/scalability</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/service-catalog</td> + <td>sig/service-catalog</td> + <td>0</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/storage</td> + <td>sig/storage</td> + <td>2</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/testing</td> + <td>sig/testing</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/windows</td> + <td>sig/windows</td> + <td>3</td> + <td>↑1</td> + </tr> +</table> + + +* Branch Updates / Branch Health [GREEN] + +* Test failure triage/resolution updates [YELLOW] + + * kubeadm tests need attention + +* Test Infra Updates [GREEN] + + * On track to have the blocking tests on the release branch this week + +* Documentation & Marketing [GREEN] + + * Tracking the timeline + +* Release notes update [GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + +* Announcements / Open Mic + + * None + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + +* * * + + +## Date: 2/5/2018 ~ [video](https://youtu.be/hH9qfh-HWdI) + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[GREEN] + + * Possibly the pre-blog + + * Next week + + * Looking at issues, signal, release notes more deeply + + * New label coming for external-facing docs needed + + * Intermediate release notes draft underway + + * Starting to connect with SIGs on RNs early March + + * Send out weekly update + reminder of code slush/freeze dates + + * Marketing met with Ihor and developed an outline + + * Need reviews + + * Questions reporters have that need a source of truth, but are not in the blog + + * Marketing on track + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[GREEN] + + * 1.10.0-beta.0 release + + * Create 'release-1.10' branch and begin daily branchff + + * All release branch CI jobs created + +* Metrics review ↕0 ↑# ↓# [GREEN] + + * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 47 ↑2 + + * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: 0 ↕0 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 0 ↕0 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 16 ↑4 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 0 ↕0 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 5 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 25 ↓2 + + * Other Priority Issues: 1 ↕0 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: # ↑# ↓# vs # ↑# closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Issue review by SIG + + Issue Leaderboard as of 2/3: + +<table> + <tr> + <td>SIG</td> + <td>LINK</td> + <td>COUNT</td> + <td>DELTA ↕0 ↑# ↓# </td> + </tr> + <tr> + <td>sig/api-machinery</td> + <td>sig/api-machinery</td> + <td>9</td> + <td>↑1</td> + </tr> + <tr> + <td>sig/apps</td> + <td>sig/apps</td> + <td>2</td> + <td>0</td> + </tr> + <tr> + <td>sig/architecture</td> + <td>sig/architecture</td> + <td>2</td> + <td>↑1</td> + </tr> + <tr> + <td>sig/auth</td> + <td>sig/auth</td> + <td>6</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/autoscaling</td> + <td>sig/autoscaling</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/aws</td> + <td>sig/aws</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/azure</td> + <td>sig/azure</td> + <td>7</td> + <td>↑1</td> + </tr> + <tr> + <td>sig/cli</td> + <td>sig/cli</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/cluster-lifecycle</td> + <td>sig/cluster-lifecycle</td> + <td>7</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/federation</td> + <td>sig/federation</td> + <td>0</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/gcp</td> + <td>sig/gcp</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/instrumentation</td> + <td>sig/instrumentation</td> + <td>4</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/network</td> + <td>sig/network</td> + <td>2</td> + <td>↑1 </td> + </tr> + <tr> + <td>sig/node</td> + <td>sig/node</td> + <td>20</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/release</td> + <td>sig/release</td> + <td>0</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/scalability</td> + <td>sig/scalability</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/service-catalog</td> + <td>sig/service-catalog</td> + <td>0</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/storage</td> + <td>sig/storage</td> + <td>2</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/testing</td> + <td>sig/testing</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/windows</td> + <td>sig/windows</td> + <td>2</td> + <td>↕0</td> + </tr> +</table> + + +### List of Issues which look suspiciously like untracked features: + +This is from Josh, for Ihor, as of 2/2. List may not be complete, this is a by-hand review: + +* CRI log rotation: [https://github.com/kubernetes/kubernetes/issues/58823](https://github.com/kubernetes/kubernetes/issues/58823) + +* Taint CSI node shutdown condition: [https://github.com/kubernetes/kubernetes/issues/58635](https://github.com/kubernetes/kubernetes/issues/58635) + +* Add metadata to on-disk log file: [https://github.com/kubernetes/kubernetes/issues/58638](https://github.com/kubernetes/kubernetes/issues/58638) + +* Add field to NodeStatus: [https://github.com/kubernetes/kubernetes/issues/56896](https://github.com/kubernetes/kubernetes/issues/56896) + +* Do deprecations get tracked as features? [https://github.com/kubernetes/kubernetes/issues/56523](https://github.com/kubernetes/kubernetes/issues/56523) + +* CRI log stats: [https://github.com/kubernetes/kubernetes/issues/55905](https://github.com/kubernetes/kubernetes/issues/55905) + +* NVIDIA plugin: [https://github.com/kubernetes/kubernetes/issues/54011](https://github.com/kubernetes/kubernetes/issues/54011) + +* Non-builtin CRI runtimes: [https://github.com/kubernetes/kubernetes/issues/47872](https://github.com/kubernetes/kubernetes/issues/47872) + +* File-based interface for container logs: [https://github.com/kubernetes/kubernetes/issues/42188](https://github.com/kubernetes/kubernetes/issues/42188) + + All owners of issues with incomplete labels have been nagged. + +* Test failure triage/resolution updates [GREEN] + + * Tests for GKE fixed + +* Test Infra Updates [GREEN] + + * Everything looking good so far + +* Documentation & Marketing [GREEN] + + * On track + +* Release notes update [GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + +* Announcements / Open Mic + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + +* * * + + +## Date: 1/29/2018 + +Video Link + +Attending: + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *this week *[GREEN] + + * Feature freeze follow-up [ Ihor ] + + * In good progress with features, 35 in the release + + * Smaller than previous releases, may have some things in the KEP process + + * Marketing team follow-up tomorrow + + * Documentation team and Release team GO! See Ihor if you have questions + + * Need non-user facing docs label ~ either SIG-Testing or SIG-Contribx + + * Alpha release follow-up [ Caleb ] + + * Cut -alpha.2 this Friday no hiccups + +* [Timeline](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-1.10.md) for *next week *[GREEN] + + * Marketing ramps up + + * Preview blog? + + * Start looking at issues, signal, release notes more deeply + +* Metrics review ↕0 ↑# ↓# [GREEN] + + * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 45 ↕0 + + * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: 0 ↕0 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 0 ↕0 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 12 ↕0 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 0 ↕0 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 5 ↕0 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 27 ↕0 + + * Other Priority Issues: 1 ↕0 + + * [Non-Blocking, Labels Incomplete](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone-labels-incomplete) Issues: 0 ↕0 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 30 ↑3 vs 60 ↑9 closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Issue review by SIG +[Issue Leaderboard](https://docs.google.com/spreadsheets/d/1SAl4YcsB6V9yrBVN88FGMoC9rUUykAepDq2sfKQAOfM/edit?usp=sharing) + +<table> + <tr> + <td>SIG</td> + <td>LINK</td> + <td>COUNT</td> + <td>DELTA ↕0 ↑# ↓# </td> + </tr> + <tr> + <td>sig/api-machinery</td> + <td>sig/api-machinery</td> + <td>8</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/apps</td> + <td>sig/apps</td> + <td>2</td> + <td>↓1</td> + </tr> + <tr> + <td>sig/architecture</td> + <td>sig/architecture</td> + <td>1</td> + <td>?</td> + </tr> + <tr> + <td>sig/auth</td> + <td>sig/auth</td> + <td>6</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/autoscaling</td> + <td>sig/autoscaling</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/aws</td> + <td>sig/aws</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/azure</td> + <td>sig/azure</td> + <td>6</td> + <td>?</td> + </tr> + <tr> + <td>sig/cli</td> + <td>sig/cli</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/cluster-lifecycle</td> + <td>sig/cluster-lifecycle</td> + <td>7</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/federation</td> + <td>sig/federation</td> + <td>0</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/gcp</td> + <td>sig/gcp</td> + <td>1</td> + <td>?</td> + </tr> + <tr> + <td>sig/instrumentation</td> + <td>sig/instrumentation</td> + <td>4</td> + <td>↑2 </td> + </tr> + <tr> + <td>sig/network</td> + <td>sig/network</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/node</td> + <td>sig/node</td> + <td>20</td> + <td>↑1 </td> + </tr> + <tr> + <td>sig/release</td> + <td>sig/release</td> + <td>0</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/scalability</td> + <td>sig/scalability</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/service-catalog</td> + <td>sig/service-catalog</td> + <td>0</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/storage</td> + <td>sig/storage</td> + <td>2</td> + <td>↑1 </td> + </tr> + <tr> + <td>sig/testing</td> + <td>sig/testing</td> + <td>1</td> + <td>↕0</td> + </tr> + <tr> + <td>sig/windows</td> + <td>sig/windows</td> + <td>2</td> + <td>??</td> + </tr> +</table> + + +* Branch Updates / Branch Health [RED/YELLOW/GREEN] + + * None + +* Critical build failures [RED/YELLOW/GREEN] + +* Test failure triage/resolution updates [RED/YELLOW/GREEN] + +* Test Infra Updates [RED/YELLOW/GREEN] + +* Documentation & Marketing [RED/YELLOW/GREEN] + + * JR: Sending email to SIGs later today with docs information, working with Zach to get docs documentation for the release process updated, + +* Release notes update [RED/YELLOW/GREEN] + + * Link to the [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.10/release-notes-draft.md) + +* Announcements / Open Mic + + * Ihor missing next Monday + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + +## * * * +Date: 1/22/2018 - release week 4 / 12 + +Video [Link](https://www.youtube.com/watch?v=onlFHICYB4Q&feature=youtu.be) + +Attending: + +* Ihor Dvoretskyi (features lead/CNCF) + +* Jennifer Rondeau (docs lead/Heptio) + +* Jaice Singer DuMars (Release lead, SIG-multiples) + +* Steve Wade (Shadow Release Lead, Apprenda) + +* Noah Abrahams (Shadow Release Notes) + +* Tim Pepper (Shadow Bug Wrangler, VMware) + +* Josh Berkus (Bug Wranglere, Red Hat) + +* Sen Lu (CI Signal) + +* David McMahon + +* [Timeline](https://github.com/kubernetes/features/blob/master/release-1.10/release-1.10.md) for *this week *[RED] + + * Need to get alpha prerequisites figured out for Caleb + + * Caleb trying finish onboarding again today (22 Jan 2018) + + * Extend Feature Freeze to 1/29 and radiate + + * Marketing efforts begin + + * Need to start digging into CI signal and issues + + * SIGs need to identify what will need docs or not + + * Need to discuss better project tracking + + * Jaice to replace Phil as SIG-Release lead + +* [Timeline](https://github.com/kubernetes/features/blob/master/release-1.10/release-1.10.md) for *next week *[GREEN] + + * 1.10.0-alpha.2 release + + * Wrap up the features process + + * Marketing planning/meeting + +* Metrics review [GREEN] + + * [Open issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10) in the milestone: 44 + + * [Release blocker](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Arelease-blocker) issues: 0 + + * [Critical](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fcritical-urgent) Issues: 0 + + * [Important](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-soon) Issues: 12 + + * [Failing test](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Akind%2Ffailing-test) issues: 0 + + * [Long term](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Apriority%2Fimportant-longterm) issues: 5 + + * [No-priority](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=-label%3Apriority%2Fimportant-longterm%20is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20-label%3Apriority%2Fcritical-urgent%20-label%3Apriority%2Fimportant-soon%20-label%3Akind%2Ffailing-test%20) Issues: 27 + + * [Non-Blocking, Labels Incomplete](https://github.com/kubernetes/kubernetes/issues?q=is%3Aissue+is%3Aopen+milestone%3Av1.10+label%3Amilestone-labels-incomplete) Issues: 0 + + * [Bot-removed issues](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.10%20label%3Amilestone-removed): 0 + + * [Open PRs](https://github.com/kubernetes/kubernetes/pulls?q=is%3Apr+is%3Aopen+milestone%3Av1.10+sort%3Aupdated-desc) in the milestone: 27 vs 51 closed + + * [Release Blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Arelease-blocker%20) (links to PRs of interest) + + * [Critical](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fcritical-urgent%20) (links to PRs of interest) + + * [Important-Soon](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-soon) (links to PRs of interest) + + * [Test-blocking](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Akind%2Ffailing-test) (links to PRs of interest) + + * [Long-term](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20milestone%3Av1.10%20label%3Apriority%2Fimportant-long-term) + + * Testgrid dashboards + + * [presubmits-kubernetes-blocking](http://testgrid.k8s.io/presubmits-kubernetes-blocking) + + * [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + + * [sig-release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) + + * [sig-release-1.10-blocking](https://testgrid.k8s.io/sig-release-1.10-blocking) + + * [sig-release-1.10-all](https://testgrid.k8s.io/sig-release-1.10-all) + +* Issue review by SIG + +<table> + <tr> + <td>SIG</td> + <td>LINK</td> + <td>COUNT</td> + <td>DELTA ↕0 ↑# ↓# </td> + </tr> + <tr> + <td>sig/api-machinery</td> + <td>sig/api-machinery</td> + <td>8</td> + <td></td> + </tr> + <tr> + <td>sig/apps</td> + <td>sig/apps</td> + <td>3</td> + <td></td> + </tr> + <tr> + <td>sig/auth</td> + <td>sig/auth</td> + <td>6</td> + <td></td> + </tr> + <tr> + <td>sig/autoscaling</td> + <td>sig/autoscaling</td> + <td>1</td> + <td></td> + </tr> + <tr> + <td>sig/aws</td> + <td>sig/aws</td> + <td>1</td> + <td></td> + </tr> + <tr> + <td>sig/cluster-lifecycle</td> + <td>sig/cluster-lifecycle</td> + <td>7</td> + <td></td> + </tr> + <tr> + <td>sig/federation</td> + <td>sig/federation</td> + <td>0</td> + <td></td> + </tr> + <tr> + <td>sig/instrumentation</td> + <td>sig/instrumentation</td> + <td>2</td> + <td></td> + </tr> + <tr> + <td>sig/network</td> + <td>sig/network</td> + <td>1</td> + <td></td> + </tr> + <tr> + <td>sig/node</td> + <td>sig/node</td> + <td>19</td> + <td></td> + </tr> + <tr> + <td>sig/release</td> + <td>sig/release</td> + <td>0</td> + <td></td> + </tr> + <tr> + <td>sig/scalability</td> + <td>sig/scalability</td> + <td>1</td> + <td></td> + </tr> + <tr> + <td>sig/service-catalog</td> + <td>sig/service-catalog</td> + <td>0</td> + <td></td> + </tr> + <tr> + <td>sig/storage</td> + <td>sig/storage</td> + <td>1</td> + <td></td> + </tr> + <tr> + <td>sig/testing</td> + <td>sig/testing</td> + <td>1</td> + <td></td> + </tr> + <tr> + <td>sig/cli</td> + <td>sig/cli</td> + <td>1</td> + <td></td> + </tr> +</table> + + +* Branch Updates / Branch Health [RED] + + * Cannot cut an Alpha currently + +* Testing + + * Some AWS tests may fail due to quota issues + +* Documentation & Marketing [YELLOW] + + * Need to set up 1.10 docs branch, reach out to individual SIGs + + * Docs branch strategy is different + + * 22 open features in 1.10 milestone, not all feature owners have updated + + * Key features and messages are available + + * Meeting today to discuss messaging, blog outline, and planning + +* Release notes update [RED/YELLOW/GREEN] + + * Link to the [draft](https://github.com/kubernetes/features/blob/master/release-1.10/release-notes-draft.md) + + * Nick wants a better solution for generated docs + + * Updates pending + +* Announcements / Open Mic + + * None + +* Retro items ([Retro doc](http://bit.ly/kube110retro)) + + * Reminder to log your feedback as we go so it doesn’t get missed + diff --git a/releases/release-1.10/exceptions.yaml b/releases/release-1.10/exceptions.yaml index d25a42ed49d..13075c8e3a1 100644 --- a/releases/release-1.10/exceptions.yaml +++ b/releases/release-1.10/exceptions.yaml @@ -1,38 +1,38 @@ -# Exceptions to code freeze requested in 1.10 -# Google Group: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown -# Release Team Lead: Jaice Singer DuMars (@jdumars) - -- name: "Initial implementation for ingress rate limiting" - issue: "https://github.com/kubernetes/kubernetes/issues/61305" - thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/nT-wHv4jq24" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/61302" - status: "approved" - -- name: "Schedule DaemonSet Pods by kube-scheduler" - issue: "https://github.com/kubernetes/kubernetes/pull/59862" - thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/sPvjpRMf5es" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/59862" - status: "reverted" - -- name: "GCE Regional Persistent Disk to beta" - issue: "https://github.com/kubernetes/kubernetes/issues/59988" - thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/pwI3QwuCYL4" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/60450" - status: "approved" - -- name: "RunAsGroup in pod and container SecurityContext" - issue: "https://github.com/kubernetes/features/issues/213" - thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/kq4zhEI_c-I" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/52077" - status: "approved" - -- name: "Advanced Audit Logging" - issue: "https://github.com/kubernetes/features/issues/22" - thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/FeOcIqdRmZQ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/60237" - status: "approved" +# Exceptions to code freeze requested in 1.10 +# Google Group: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown +# Release Team Lead: Jaice Singer DuMars (@jdumars) + +- name: "Initial implementation for ingress rate limiting" + issue: "https://github.com/kubernetes/kubernetes/issues/61305" + thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/nT-wHv4jq24" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/61302" + status: "approved" + +- name: "Schedule DaemonSet Pods by kube-scheduler" + issue: "https://github.com/kubernetes/kubernetes/pull/59862" + thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/sPvjpRMf5es" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/59862" + status: "reverted" + +- name: "GCE Regional Persistent Disk to beta" + issue: "https://github.com/kubernetes/kubernetes/issues/59988" + thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/pwI3QwuCYL4" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/60450" + status: "approved" + +- name: "RunAsGroup in pod and container SecurityContext" + issue: "https://github.com/kubernetes/features/issues/213" + thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/kq4zhEI_c-I" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/52077" + status: "approved" + +- name: "Advanced Audit Logging" + issue: "https://github.com/kubernetes/features/issues/22" + thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/FeOcIqdRmZQ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/60237" + status: "approved" diff --git a/releases/release-1.10/features.csv b/releases/release-1.10/features.csv index c7803b484e1..e872f8f1915 100644 --- a/releases/release-1.10/features.csv +++ b/releases/release-1.10/features.csv @@ -1,34 +1,34 @@ -Alpha,10,,,,,,,,,, -Beta,14,,,,,,,,,, -Stable,1,,,,,,,,,, -TOTAL,25,,,,,,,,,, -Themes for release:,,,,,,,,,,, -,,,,,,,,,,, -Maintainer:,idvoretskyi (Ihor Dvoretskyi),,,,,,,,,, -,,,,,,,,,,, -Feature Name,Stage,SIG,Assignee,Needs Docs?,k8s.io Docs PR,additional PR,One Line Release Note Description,Needs Doc Review,Needs Tech Review,Merged,Notes -API Aggregation,Stable,SIG-API-machinery,lavalamp,no,,,,,,, -CronJobs (previously ScheduledJobs),Beta,SIG-Apps,soltysh ,no,,,,,,, -Limit node access to API,Beta,SIG-Auth,liggitt,no,,,,,,, -Pod Security Policy ,Beta,SIG-Auth,php-coder,yes,https://github.com/kubernetes/website/pull/7562,,,,,, -Switch default DNS plugin to CoreDNS,Beta,SIG-Network,johnbelamaric ,yes,https://github.com/kubernetes/website/pull/7638,,,,,, -Support configurable pod resolv.conf,Beta,SIG-Network,mrhohn,yes,https://github.com/kubernetes/website/pull/7611,,,,,, -CRI validation test suite,Beta,SIG-Node,feiskyer,no,,,,,,, -Kubelet's ComponentConfig API,Beta,SIG-Node,mtaufen,yes,https://github.com/kubernetes/website/pull/7561,,,,,, -Prevent deletion of Persistent Volume that is bound to a Persistent Volume Claim ,Beta,SIG-Storage,pospispa,yes,https://github.com/kubernetes/website/pull/7620,,,,,, -Prevent deletion of Persistent Volume Claims that are used by a pod ,Beta,SIG-Storage,pospispa,yes,https://github.com/kubernetes/website/pull/7164,,,,,, -Mount namespace propagation,Beta,SIG-Storage,jsafrane,yes,https://github.com/kubernetes/website/pull/7655,,,,,, -Topology Aware Volume Scheduling,Beta,SIG-Storage,msau,yes,https://github.com/kubernetes/website/pull/7473,,,,,, -Local Ephemeral Storage Capacity Isolation,Beta,SIG-Storage,jingxu97 ,yes,https://github.com/kubernetes/website/pull/7614,,,,,, -Durable (non-shared) local storage management ,Beta,SIG-Storage,@msau42 @vishh,yes,https://github.com/kubernetes/website/pull/7473,,,,,, -Container Storage Interface,Beta,SIG-Storage,@saad-ali,yes,https://github.com/kubernetes/website/pull/7698,,,,,, -CRD subresources and categories,Alpha,SIG-API-machinery,sttts,yes,https://github.com/kubernetes/website/pull/7439,,CustomResources support /scale and /status,,,, -TokenRequest API,Alpha,SIG-Auth,mikedanese,no,,,,,,, -External client-go credential providers,Alpha,SIG-Auth,ericchiang ,yes,https://github.com/kubernetes/website/pull/7648,,,,,, -Add Azure support to cluster-autoscaler,Alpha,SIG-Azure,feiskyer,no,,,,,,, -Add support for Azure Virtual Machine Scale Sets,Alpha,SIG-Azure,feiskyer,no,,,,,,, -Make NodePort IP address configurable,Alpha,SIG-Network,m1093782566 ,yes,https://github.com/kubernetes/website/pull/7631,,,,,, -Configurable Pod Process Namespace Sharing,Alpha,SIG-Node,verb,yes,https://github.com/kubernetes/website/pull/7489,,,,,, -Dynamic Kubelet Configuration,Alpha,SIG-Node,mtaufen,no,,,,,,, -kubectl get and describe should work well with extensions,Alpha,SIG-CLI,smarterclayton ,yes,https://github.com/kubernetes/website/pull/7671,,,,,, +Alpha,10,,,,,,,,,, +Beta,14,,,,,,,,,, +Stable,1,,,,,,,,,, +TOTAL,25,,,,,,,,,, +Themes for release:,,,,,,,,,,, +,,,,,,,,,,, +Maintainer:,idvoretskyi (Ihor Dvoretskyi),,,,,,,,,, +,,,,,,,,,,, +Feature Name,Stage,SIG,Assignee,Needs Docs?,k8s.io Docs PR,additional PR,One Line Release Note Description,Needs Doc Review,Needs Tech Review,Merged,Notes +API Aggregation,Stable,SIG-API-machinery,lavalamp,no,,,,,,, +CronJobs (previously ScheduledJobs),Beta,SIG-Apps,soltysh ,no,,,,,,, +Limit node access to API,Beta,SIG-Auth,liggitt,no,,,,,,, +Pod Security Policy ,Beta,SIG-Auth,php-coder,yes,https://github.com/kubernetes/website/pull/7562,,,,,, +Switch default DNS plugin to CoreDNS,Beta,SIG-Network,johnbelamaric ,yes,https://github.com/kubernetes/website/pull/7638,,,,,, +Support configurable pod resolv.conf,Beta,SIG-Network,mrhohn,yes,https://github.com/kubernetes/website/pull/7611,,,,,, +CRI validation test suite,Beta,SIG-Node,feiskyer,no,,,,,,, +Kubelet's ComponentConfig API,Beta,SIG-Node,mtaufen,yes,https://github.com/kubernetes/website/pull/7561,,,,,, +Prevent deletion of Persistent Volume that is bound to a Persistent Volume Claim ,Beta,SIG-Storage,pospispa,yes,https://github.com/kubernetes/website/pull/7620,,,,,, +Prevent deletion of Persistent Volume Claims that are used by a pod ,Beta,SIG-Storage,pospispa,yes,https://github.com/kubernetes/website/pull/7164,,,,,, +Mount namespace propagation,Beta,SIG-Storage,jsafrane,yes,https://github.com/kubernetes/website/pull/7655,,,,,, +Topology Aware Volume Scheduling,Beta,SIG-Storage,msau,yes,https://github.com/kubernetes/website/pull/7473,,,,,, +Local Ephemeral Storage Capacity Isolation,Beta,SIG-Storage,jingxu97 ,yes,https://github.com/kubernetes/website/pull/7614,,,,,, +Durable (non-shared) local storage management ,Beta,SIG-Storage,@msau42 @vishh,yes,https://github.com/kubernetes/website/pull/7473,,,,,, +Container Storage Interface,Beta,SIG-Storage,@saad-ali,yes,https://github.com/kubernetes/website/pull/7698,,,,,, +CRD subresources and categories,Alpha,SIG-API-machinery,sttts,yes,https://github.com/kubernetes/website/pull/7439,,CustomResources support /scale and /status,,,, +TokenRequest API,Alpha,SIG-Auth,mikedanese,no,,,,,,, +External client-go credential providers,Alpha,SIG-Auth,ericchiang ,yes,https://github.com/kubernetes/website/pull/7648,,,,,, +Add Azure support to cluster-autoscaler,Alpha,SIG-Azure,feiskyer,no,,,,,,, +Add support for Azure Virtual Machine Scale Sets,Alpha,SIG-Azure,feiskyer,no,,,,,,, +Make NodePort IP address configurable,Alpha,SIG-Network,m1093782566 ,yes,https://github.com/kubernetes/website/pull/7631,,,,,, +Configurable Pod Process Namespace Sharing,Alpha,SIG-Node,verb,yes,https://github.com/kubernetes/website/pull/7489,,,,,, +Dynamic Kubelet Configuration,Alpha,SIG-Node,mtaufen,no,,,,,,, +kubectl get and describe should work well with extensions,Alpha,SIG-CLI,smarterclayton ,yes,https://github.com/kubernetes/website/pull/7671,,,,,, Add support for Windows Container Configuration in CRI,Alpha,SIG-Node,feiskyer&JiangtianLi,yes,https://github.com/kubernetes/website/pull/7653,,,,,, \ No newline at end of file diff --git a/releases/release-1.10/release-1.10.md b/releases/release-1.10/release-1.10.md index 7e6af0b897d..d803ddd0e25 100644 --- a/releases/release-1.10/release-1.10.md +++ b/releases/release-1.10/release-1.10.md @@ -1 +1 @@ -Please see [README.md](README.md) instead +Please see [README.md](README.md) instead diff --git a/releases/release-1.10/release-notes-draft.md b/releases/release-1.10/release-notes-draft.md index ec08fbbdc0f..d2efd05a966 100644 --- a/releases/release-1.10/release-notes-draft.md +++ b/releases/release-1.10/release-notes-draft.md @@ -1,994 +1,994 @@ -# Kubernetes 1.10 Release Notes Draft - -# Major Themes - -### Node - -Many of the changes within SIG-Node revolve around control, with the beta release of [Dynamic Kubelet Configuration](https://github.com/kubernetes/features/issues/281), the ability to make changes to Kubelet without having to bring down the node, and alpha support for the ability to [configure whether containers in a pod should share a single process namespace](https://github.com/kubernetes/features/issues/495), The CRI has also seen some improvements and has been upgraded to v1alpha2, with support for [support for Windows Container Configuration](https://github.com/kubernetes/features/issues/547) and the beta release of the [CRI validation test suite](https://github.com/kubernetes/features/issues/292). - -The Resource Management Working Group graduated three features to beta in the 1.10 release. First, [CPU Manager](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/), which allows users to request exclusive CPU cores. This helps performance in a variety of use-cases, including network latency sensitive applications, as well as applications that benefit from CPU cache residency. Next, [Huge Pages](https://kubernetes.io/docs/tasks/manage-hugepages/scheduling-hugepages/), which allows pods to consume either 2Mi or 1Gi Huge Pages. This benefits applications that consume large amounts of memory. Use of Huge Pages is a common tuning recommendation for databases and JVMs. Finally, the [Device Plugin](https://kubernetes.io/docs/concepts/cluster-administration/device-plugins/) feature, which provides a framework for vendors to advertise their resources to the Kubelet without changing Kubernetes core code. Targeted devices include GPUs, High-performance NICs, FPGAs, InfiniBand, and other similar computing resources that may require vendor specific initialization and setup. - -### Storage - -This release brings additional power to both local storage and Persistent Volumes. [Mount namespace propagation](https://github.com/kubernetes/features/issues/432) allows a container to mount a volume as rslave so that host mounts can be seen inside the container, or as rshared so that mounts made inside a container can be seen by the host. (Note that this is [not supported on Windows](https://github.com/kubernetes/kubernetes/pull/60275).) [Local Ephemeral Storage Capacity Isolation](https://github.com/kubernetes/features/issues/361) makes it possible to set requests and limits on ephemeral local storage resources. In addition, you can now create [Local Persistent Storage](https://github.com/kubernetes/features/issues/121), which enables PersistentVolumes to be created with locally attached disks, and not just network volumes. - -On the Persistent Volumes side, this release [Prevents deletion of Persistent Volume Claims that are used by a pod](https://github.com/kubernetes/features/issues/498) and [Persistent Volumes that are bound to a Persistent Volume Claim](https://github.com/kubernetes/features/issues/499), making it impossible to delete storage that is in use by a pod. - -This release also includes [Topology Aware Volume Scheduling](https://github.com/kubernetes/features/issues/490) for local persistent volumes and beta support for [Out-of-tree CSI Volume Plugins](https://github.com/kubernetes/features/issues/178). - -### Windows - -This release continues to enable more existing features on Windows, including container CPU resources, image filesystem stats, and flexvolumes. It also adds Windows service control manager support and experimental support for Hyper-V isolation of single-container pods. - -### OpenStack - -SIG-OpenStack updated the OpenStack provider to use newer APIs, consolidated community code into one repository, engaged with the Cloud Provider Working Group to have a consistent plan for moving provider code into individual repositories, improved testing of provider code, and strengthened ties with the OpenStack developer community. - -### API-machinery - -[API Aggregation](https://github.com/kubernetes/features/issues/263) has been upgraded to "stable" in Kubernetes 1.10, so you can use it in production. Webhooks have seen numerous improvements, including alpha [Support for self-hosting authorizer webhooks](https://github.com/kubernetes/features/issues/516). - -### Auth - -This release lays the groundwork for new authentication methods, including the alpha release of [External client-go credential providers](https://github.com/kubernetes/features/issues/541) and the [TokenRequest API](https://github.com/kubernetes/features/issues/542). In addition, [Pod Security Policy](https://github.com/kubernetes/features/issues/5) now lets administrators decide what contexts pods can run in, and gives administrators the ability to [limit node access to the API](https://github.com/kubernetes/features/issues/279). - -### Azure - -Kubernetes 1.10 includes alpha [Azure support for cluster-autoscaler](https://github.com/kubernetes/features/issues/514), as well as [support for Azure Virtual Machine Scale Sets](https://github.com/kubernetes/features/issues/513). - -### CLI - -This release includes a change to [kubectl get and describe to work better with extensions](https://github.com/kubernetes/features/issues/515), as the server, rather than the client, returns this information for a smoother user experience. - -### Cluster Lifecycle - -This release includes beta [support for out-of-process and out-of-tree cloud providers](https://github.com/kubernetes/features/issues/88). - -### Network - -In terms of networking, Kubernetes 1.10 is about control. Users now have beta support for the ability to [configure a pod's resolv.conf](https://github.com/kubernetes/features/issues/504), rather than relying on the cluster DNS, as well as [configuring the NodePort IP address](https://github.com/kubernetes/features/issues/539). You can also [switch the default DNS plugin to CoreDNS](https://github.com/kubernetes/features/issues/427) (beta). - -# Before Upgrading - -* In-place node upgrades to this release from versions 1.7.14, 1.8.9, and 1.9.4 are not supported if using subpath volumes with PVCs. Such pods should be drained from the node first. - -* The minimum supported version of Docker is now 1.11; if you are using Docker 1.10 or below, be sure to upgrade Docker before upgrading Kubernetes. ([#57845](https://github.com/kubernetes/kubernetes/pull/57845), [@yujuhong](https://github.com/yujuhong)) - -* The Container Runtime Interface (CRI) version has increased from v1alpha1 to v1alpha2. Runtimes implementing the CRI will need to update to the new version, which configures container namespaces using an enumeration rather than booleans. This change to the alpha API is not backwards compatible; implementations of the CRI such as containerd, will need to update to the new API version. ([#58973](https://github.com/kubernetes/kubernetes/pull/58973), [@verb](https://github.com/verb)) - -* The default Flexvolume plugin directory for COS images on GCE has changed to `/home/kubernetes/flexvolume`, rather than `/etc/srv/kubernetes/kubelet-plugins/volume/exec`. Existing Flexvolume installations in clusters using COS images must be moved to the new directory, and installation processes must be updated with the new path. ([#58171](https://github.com/kubernetes/kubernetes/pull/58171), [@verult](https://github.com/verult)) - -* Default values differ between the Kubelet's componentconfig (config file) API and the Kubelet's command line. Be sure to review the default values when migrating to using a config file. For example, the authz mode is set to "AlwaysAllow" if you rely on the command line, but defaults to the more secure "Webhook" mode if you load config from a file. ([#59666](https://github.com/kubernetes/kubernetes/pull/59666), [@mtaufen](https://github.com/mtaufen)) - -* [GCP kube-up.sh] Variables that were part of kube-env that were only used for kubelet flags are no longer being set, and are being replaced by the more portable mechanism of the kubelet configuration file. The individual variables in the kube-env metadata entry were never meant to be a stable interface and this release note only applies if you are depending on them. ([#60020](https://github.com/kubernetes/kubernetes/pull/60020), [@roberthbailey](https://github.com/roberthbailey)) - -* kube-proxy: feature gates are now specified as a map when provided via a JSON or YAML KubeProxyConfiguration, rather than as a string of key-value pairs. For example: - -KubeProxyConfiguration Before: - -``` -apiVersion: kubeproxy.config.k8s.io/v1alpha1 -kind: KubeProxyConfiguration -**featureGates: "SupportIPVSProxyMode=true"** -``` - -KubeProxyConfiguration After: - -``` -apiVersion: kubeproxy.config.k8s.io/v1alpha1 -kind: KubeProxyConfiguration -**featureGates:** -** SupportIPVSProxyMode: true** -``` - -([#57962](https://github.com/kubernetes/kubernetes/pull/57962), [@xiangpengzhao](https://github.com/xiangpengzhao)) - -* The `kubeletconfig` API group has graduated from alpha to beta, and the name has changed to `kubelet.config.k8s.io`. Please use `kubelet.config.k8s.io/v1beta1`, as `kubeletconfig/v1alpha1` is no longer available. ([#53833](https://github.com/kubernetes/kubernetes/pull/53833), [@mtaufen](https://github.com/mtaufen)) - -* kube-apiserver: the experimental in-tree Keystone password authenticator has been removed in favor of extensions that enable use of Keystone tokens. ([#59492](https://github.com/kubernetes/kubernetes/pull/59492), [@dims](https://github.com/dims)) - -* The udpTimeoutMilliseconds field in the kube-proxy configuration file has been renamed to udpIdleTimeout. Administrators must update their files accordingly. ([#57754](https://github.com/kubernetes/kubernetes/pull/57754), [@ncdc](https://github.com/ncdc)) - -* The kubelet's `--cloud-provider=auto-detect` feature has been removed; make certain to specify the cloud provider. ([#56287](https://github.com/kubernetes/kubernetes/pull/56287), [@stewart-yu](https://github.com/stewart-yu)) - -* kube-apiserver: the OpenID Connect authenticator no longer accepts tokens from the Google v3 token APIs; users must switch to the "https://www.googleapis.com/oauth2/v4/token" endpoint. - -* kube-apiserver: the root /proxy paths have been removed (deprecated since v1.2). Use the /proxy subresources on objects that support HTTP proxying. ([#59884](https://github.com/kubernetes/kubernetes/pull/59884), [@mikedanese](https://github.com/mikedanese)) - -* Eviction thresholds set to 0% or 100% will turn off eviction. ([#59681](https://github.com/kubernetes/kubernetes/pull/59681), [@mtaufen](https://github.com/mtaufen)) - -* CustomResourceDefinitions: OpenAPI v3 validation schemas containing `$ref`references are no longer permitted. Before upgrading, ensure CRD definitions do not include those `$ref` fields. ([#58438](https://github.com/kubernetes/kubernetes/pull/58438), [@carlory](https://github.com/carlory)) - -* Webhooks now do not skip cluster-scoped resources. Before upgrading your Kubernetes clusters, double check whether you have configured webhooks for cluster-scoped objects (e.g., nodes, persistentVolume), as these webhooks will start to take effect. Delete/modify the configs if that's not desirable. ([#58185](https://github.com/kubernetes/kubernetes/pull/58185), [@caesarxuchao](https://github.com/caesarxuchao)) - -* Using kubectl gcp auth plugin with a Google Service Account to authenticate to a cluster now additionally requests a token with the "userinfo.email" scope. This way, users can write ClusterRoleBindings/RoleBindings with the email address of the service account directly. (This is a breaking change if the numeric uniqueIDs of the Google service accounts were being used in RBAC role bindings. The behavior can be overridden by explicitly specifying the scope values as comma-separated string in the "users[*].config.scopes" field in the KUBECONFIG file.) This way, users can now set a Google Service Account JSON key in the GOOGLE_APPLICATION_CREDENTIALS environment variable, craft a kubeconfig file with GKE master IP+CA cert, and authenticate to GKE in headless mode without requiring gcloud CLI. ([#58141](https://github.com/kubernetes/kubernetes/pull/58141), [@ahmetb](https://github.com/ahmetb)) - -* kubectl port-forward no longer supports the deprecated -p <pod-name> flag; the flag itself is unnecessary and should be replaced by just the `<pod-name>`. ([#59705](https://github.com/kubernetes/kubernetes/pull/59705), [@phsiao](https://github.com/phsiao)) - -* Removed deprecated --require-kubeconfig flag, removed default --kubeconfig value (([#58367](https://github.com/kubernetes/kubernetes/pull/58367), [@zhangxiaoyu-zidif](https://github.com/zhangxiaoyu-zidif)) - -* The public-address-override, address, and port flags have been removed and replaced by bind-address, insecure-bind-address, and insecure-port, respectively. They are marked as deprecated in [#36604](https://github.com/kubernetes/kubernetes/pull/36604), which is more than a year ago. ([#59018](https://github.com/kubernetes/kubernetes/pull/59018), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) - -* The alpha `--init-config-dir` flag has been removed. Instead, use the `--config` flag to reference a kubelet configuration file directly. ([#57624](https://github.com/kubernetes/kubernetes/pull/57624), [@mtaufen](https://github.com/mtaufen)) - -* Removed deprecated and unmaintained salt support. kubernetes-salt.tar.gz will no longer be published in the release tarball. ([#58248](https://github.com/kubernetes/kubernetes/pull/58248), [@mikedanese](https://github.com/mikedanese)) - -* The deprecated –mode switch for GCE has been removed.([#61203](https://github.com/kubernetes/kubernetes/pull/61203)) - -* The word “manifest” has been expunged from the Kubelet API. ([#60314](https://github.com/kubernetes/kubernetes/pull/60314)) - -* [https://github.com/kubernetes/kubernetes/issues/49213](https://github.com/kubernetes/kubernetes/issues/49213) sig-cluster-lifecycle has decided to phase out the cluster/ directory over the next couple of releases in favor of deployment automations maintained outside of the core repo and outside of kubernetes orgs. [@kubernetes/sig-cluster-lifecycle-misc](https://github.com/orgs/kubernetes/teams/sig-cluster-lifecycle-misc)) - - * Remove deprecated ContainerVM support from GCE kube-up. ([#58247](https://github.com/kubernetes/kubernetes/pull/58247), [@mikedanese](https://github.com/mikedanese)) - - * Remove deprecated kube-push.sh functionality. ([#58246](https://github.com/kubernetes/kubernetes/pull/58246), [@mikedanese](https://github.com/mikedanese)) - - * Remove deprecated container-linux support in gce kube-up.sh. ([#58098](https://github.com/kubernetes/kubernetes/pull/58098), [@mikedanese](https://github.com/mikedanese)) - - * Remove deprecated and unmaintained photon-controller kube-up.sh. ([#58096](https://github.com/kubernetes/kubernetes/pull/58096), [@mikedanese](https://github.com/mikedanese)) - - * Remove deprecated and unmaintained libvirt-coreos kube-up.sh. ([#58023](https://github.com/kubernetes/kubernetes/pull/58023), [@mikedanese](https://github.com/mikedanese)) - - * Remove deprecated and unmaintained windows installer. ([#58020](https://github.com/kubernetes/kubernetes/pull/58020), [@mikedanese](https://github.com/mikedanese)) - - * Remove deprecated and unmaintained openstack-heat kube-up.sh. ([#58021](https://github.com/kubernetes/kubernetes/pull/58021), [@mikedanese](https://github.com/mikedanese)) - - * Remove deprecated vagrant kube-up.sh. ([#58118](https://github.com/kubernetes/kubernetes/pull/58118),[@roberthbailey](https://github.com/roberthbailey)) - -* The DaemonSet controller, its integration tests, and its e2e tests, have been updated to use the apps/v1 API. Users should, but are not yet required to, update their scripts accordingly. ([#59883](https://github.com/kubernetes/kubernetes/pull/59883), [@kow3ns](https://github.com/kow3ns)) - -* MountPropagation feature is now beta. As a consequence, all volume mounts in containers are now `rslave` on Linux by default. To make this default work in all Linux environments the entire mount tree should be marked as shareable, e.g. via `mount --make-rshared /`. All Linux distributions that use systemd already have the root directory mounted as rshared and hence they need not do anything. In Linux environments without systemd we recommend running `mount --make-rshared /` during boot before docker is started, ([@jsafrane](https://github.com/jsafrane)) - -# Known Issues - -* Use of subPath module with hostPath volumes can cause issues during reconstruction ([#61446](https://github.com/kubernetes/kubernetes/issues/61446)) and with containerized kubelets ([#61456](https://github.com/kubernetes/kubernetes/issues/61456)). The workaround for this issue is to specify the complete path in the hostPath volume. Use of subPathmounts nested within atomic writer volumes (configmap, secret, downwardAPI, projected) does not work ([#61545](https://github.com/kubernetes/kubernetes/issues/61545)), and socket files cannot be loaded from a subPath ([#62377](https://github.com/kubernetes/kubernetes/issues/61377)). Work on these issues is ongoing. - -* Kubeadm is currently omitting etcd certificates in a self-hosted deployment; this will be fixed in a point relelase. ([#61322](https://github.com/kubernetes/kubernetes/issues/61322)) - -* Some users, especially those with very large clusters, may see higher memory usage by the kube-controller-manager in 1.10. ([#61041](https://github.com/kubernetes/kubernetes/issues/61041)) - -# Deprecations - -* etcd2 as a backend is deprecated and support will be removed in Kubernetes 1.13. - -* VolumeScheduling and LocalPersistentVolume features are beta and enabled by default. The PersistentVolume NodeAffinity alpha annotation is deprecated and will be removed in a future release. ([#59391](https://github.com/kubernetes/kubernetes/pull/59391), [@msau42](https://github.com/msau42)) - -* The alpha Accelerators feature gate is deprecated and will be removed in v1.11. Please use device plugins ([https://github.com/kubernetes/features/issues/368](https://github.com/kubernetes/features/issues/368)) instead. They can be enabled using the DevicePlugins feature gate. ([#57384](https://github.com/kubernetes/kubernetes/pull/57384), [@mindprince](https://github.com/mindprince)) - -* The ability to use kubectl scale jobs is deprecated. All other scale operations remain in place, but the ability to scale jobs will be removed in a future release. ([#60139](https://github.com/kubernetes/kubernetes/pull/60139), [@soltysh](https://github.com/soltysh)) - -* Flags that can be set via the [Kubelet's --config file](https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/) are now deprecated in favor of the file. ([#60148](https://github.com/kubernetes/kubernetes/pull/60148), [@mtaufen](https://github.com/mtaufen)) - -* `--show-all` (which only affected pods and only for human readable/non-API printers) is now defaulted to true and deprecated. The flag determines whether pods in a terminal state are displayed. It will be inert in 1.11 and removed in a future release. ([#60210](https://github.com/kubernetes/kubernetes/pull/60210), [@deads2k](https://github.com/deads2k)) - -* The ability to use the insecure HTTP port of kube-controller-manager and cloud-controller-manager has been deprecated, and will be removed in a future release. Use `--secure-port` and `--bind-address` instead. ([#59582](https://github.com/kubernetes/kubernetes/pull/59582), [@sttts](https://github.com/sttts)) - -* The ability to use the insecure flags `--insecure-bind-address`, `--insecure-port` in the apiserver has been deprecated and will be removed in a future release. Use `--secure-port` and `--bind-address` instead. ([#59018](https://github.com/kubernetes/kubernetes/pull/59018), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) - -* The recycling reclaim policy has been deprecated. Users should use dynamic provisioning instead. ([#59063](https://github.com/kubernetes/kubernetes/pull/59063), [@ayushpateria](https://github.com/ayushpateria)) - -* kube-apiserver flag --tls-ca-file has had no effect for some time. It is now deprecated and slated for removal in 1.11. If you are specifying this flag, you must remove it from your launch config before upgrading to 1.11. ([#58968](https://github.com/kubernetes/kubernetes/pull/58968), [@deads2k](https://github.com/deads2k)) - -* The `PodSecurityPolicy` API has been moved to the `policy/v1beta1` API group. The `PodSecurityPolicy` API in the `extensions/v1beta1` API group is deprecated and will be removed in a future release. Authorizations for using pod security policy resources should change to reference the `policy` API group after upgrading to 1.11. ([#54933](https://github.com/kubernetes/kubernetes/pull/54933), [@php-coder](https://github.com/php-coder)) - -* Add `--enable-admission-plugin` `--disable-admission-plugin` flags and deprecate `--admission-control`. When using the separate flag, the order in which they're specified doesn't matter. ([#58123](https://github.com/kubernetes/kubernetes/pull/58123), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) - -* The kubelet --docker-disable-shared-pid flag, which runs docker containers with a process namespace that is shared between all containers in a pod, is now deprecated and will be removed in a future release. It is replaced by `v1.Pod.Spec.ShareProcessNamespace`, which configures this behavior. This field is alpha and can be enabled with --feature-gates=PodShareProcessNamespace=true. ([#58093](https://github.com/kubernetes/kubernetes/pull/58093), [@verb](https://github.com/verb)) - -* The kubelet's cadvisor port has been deprecated. The default will change to 0 (disabled) in 1.12, and the cadvisor port will be removed entirely in 1.13. ([#59827](https://github.com/kubernetes/kubernetes/pull/59827), [@dashpole](https://github.com/dashpole)) - -* rktnetes has been deprecated in favor of rktlet. Please see [https://github.com/kubernetes-incubator/rktlet](https://github.com/kubernetes-incubator/rktlet) for more information. ([#58418](https://github.com/kubernetes/kubernetes/pull/58418), [@yujuhong](https://github.com/yujuhong)) - -* The Kubelet now explicitly registers all of its command-line flags with an internal flagset, which prevents flags from third party libraries from unintentionally leaking into the Kubelet's command-line API. Many unintentionally leaked flags are now marked deprecated, so that users have a chance to migrate away from them before they are removed. In addition, one previously leaked flag, --cloud-provider-gce-lb-src-cidrs, has been entirely removed from the Kubelet's command-line API, because it is irrelevant to Kubelet operation. The deprecated flags are: - - * --application_metrics_count_limit - * --boot_id_file - * --container_hints - * --containerd - * --docker - * --docker_env_metadata_whitelist - * --docker_only - * --docker-tls - * --docker-tls-ca - * --docker-tls-cert - * --docker-tls-key - * --enable_load_reader - * --event_storage_age_limit - * --event_storage_event_limit - * --global_housekeeping_interval - * --google-json-key - * --log_cadvisor_usage - * --machine_id_file - * --storage_driver_user - * --storage_driver_password - * --storage_driver_host - * --storage_driver_db - * --storage_driver_table - * --storage_driver_secure - * --storage_driver_buffer_duration - -([#57613](https://github.com/kubernetes/kubernetes/pull/57613), [@mtaufen](https://github.com/mtaufen)) - -* The boostrapped RBAC role and rolebinding for the `cloud-provider` service account is now deprecated. If you're currently using this service account, you must create and apply your own [RBAC policy](https://kubernetes.io/docs/admin/authorization/rbac/) for new clusters. ([#59949](https://github.com/kubernetes/kubernetes/pull/59949), [@nicksardo](https://github.com/nicksardo)) - -* Format-separated endpoints for the OpenAPI spec, such as /swagger.json, /swagger-2.0.0.0.json, and so on, have been deprecated. The old endpoints will remain in 1.10, 1.11, 1.12 and 1.13, and get removed in 1.14. Please use single `/openapi/v2` endpoint with the appropriate Accept: header instead. For example: - -<table> - <tr> - <td>previous</td> - <td>now</td> - </tr> - <tr> - <td>GET /swagger.json</td> - <td>GET /openapi/v2 -Accept: application/json</td> - </tr> - <tr> - <td>GET /swagger-2.0.0.pb-v1</td> - <td>GET /openapi/v2 -Accept: application/com.github.proto-openapi.spec.v2@v1.0+protobuf</td> - </tr> - <tr> - <td>GET /swagger-2.0.0.pb-v1.gz</td> - <td>GET /openapi/v2 -Accept: application/com.github.proto-openapi.spec.v2@v1.0+protobuf Accept-Encoding: gzip</td> - </tr> -</table> - - ([#59293](https://github.com/kubernetes/kubernetes/pull/59293), [@roycaihw](https://github.com/roycaihw)) - -# Other Notable Changes - -### Apps - -* Updated defaultbackend image to 1.4 and deployment apiVersion to apps/v1. Users should concentrate on updating scripts to the new version. ([#57866](https://github.com/kubernetes/kubernetes/pull/57866), [@zouyee](https://github.com/zouyee)) - -* Fix StatefulSet to work correctly with set-based selectors. ([#59365](https://github.com/kubernetes/kubernetes/pull/59365), [@ayushpateria](https://github.com/ayushpateria)) - -* Fixes a case when Deployment with recreate strategy could get stuck on old failed Pod. ([#60301](https://github.com/kubernetes/kubernetes/pull/60301), [@tnozicka](https://github.com/tnozicka)) - -* ConfigMap objects now support binary data via a new `binaryData` field. When using `kubectl create configmap --from-file`, files containing non-UTF8 data will be placed in this new field in order to preserve the non-UTF8 data. Note that kubectl's `--append-hash` feature doesn't take `binaryData` into account. Use of this feature requires 1.10+ apiserver and kubelets. ([#57938](https://github.com/kubernetes/kubernetes/pull/57938), [@dims](https://github.com/dims)) - -### AWS - -* Add AWS cloud provider option to use an assumed IAM role. For example, this allows running Controller Manager in a account separate from the worker nodes, but still allows all resources created to interact with the workers. ELBs created would be in the same account as the worker nodes for instance.([#59668](https://github.com/kubernetes/kubernetes/pull/59668), [@brycecarman](https://github.com/brycecarman)) - -* AWS EBS volume plugin now includes block and volumeMode support. ([#58625](https://github.com/kubernetes/kubernetes/pull/58625), [@screeley44](https://github.com/screeley44)) - -* On AWS kubelet returns an error when started under conditions that do not allow it to work (AWS has not yet tagged the instance), rather than failing silently. ([#60125](https://github.com/kubernetes/kubernetes/pull/60125), [@vainu-arto](https://github.com/vainu-arto)) - -* AWS Security Groups created for ELBs will now be tagged with the same additional tags as the ELB; that is, the tags specified by the "service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags" annotation. This is useful for identifying orphaned resources. ([#58767](https://github.com/kubernetes/kubernetes/pull/58767), [@2rs2ts](https://github.com/2rs2ts)) - -* AWS Network Load Balancers will now be deleted properly, including security group rules. Fixes [#57568](https://github.com/kubernetes/kubernetes/pull/57568) ([#57569](https://github.com/kubernetes/kubernetes/pull/57569), [@micahhausler](https://github.com/micahhausler)) - -* Time for attach/detach retry operations has been decreased from 10-12s to 2-6s ([#56974](https://github.com/kubernetes/kubernetes/pull/56974), [@gnufied](https://github.com/gnufied)) - -### Auth - -* Contexts must be named in kubeconfigs. ([#56769](https://github.com/kubernetes/kubernetes/pull/56769), [@dixudx](https://github.com/dixudx)) - -* vSphere operations will no longer fail due to authentication errors. ([#57978](https://github.com/kubernetes/kubernetes/pull/57978), [@prashima](https://github.com/prashima)) - -* This removes the cloud-provider role and role binding from the rbac boostrapper and replaces it with a policy applied via addon mgr. This also creates a new clusterrole allowing the service account to create events for any namespace. - -* client-go: alpha support for out-of-tree exec-based credential providers. For example, a cloud provider could create their own authentication system rather than using the standard authentication provided with Kubernetes. ([#59495](https://github.com/kubernetes/kubernetes/pull/59495), [@ericchiang](https://github.com/ericchiang)) - -* The node authorizer now allows nodes to request service account tokens for the service accounts of pods running on them. This allows agents using the node identity to take actions on behalf of local pods. ([#55019](https://github.com/kubernetes/kubernetes/pull/55019), [@mikedanese](https://github.com/mikedanese)) - -* kube-apiserver: the OpenID Connect authenticator can now verify ID Tokens signed with JOSE algorithms other than RS256 through the --oidc-signing-algs flag. ([#58544](https://github.com/kubernetes/kubernetes/pull/58544), [@ericchiang](https://github.com/ericchiang)) - -* Requests with invalid credentials no longer match audit policy rules where users or groups are set, correcting a problem where authorized requests were getting through. ([#59398](https://github.com/kubernetes/kubernetes/pull/59398), [@CaoShuFeng](https://github.com/CaoShuFeng)) - -* The Stackdriver Metadata Agent addon now includes RBAC manifests, enabling it to watch nodes and pods. ([#57455](https://github.com/kubernetes/kubernetes/pull/57455), [@kawych](https://github.com/kawych)) - -* Fix RBAC role for certificate controller to allow cleaning up of Certificate Signing Requests that are Approved and issued or Denied. ([#59375](https://github.com/kubernetes/kubernetes/pull/59375), [@mikedanese](https://github.com/mikedanese)) - -* kube-apiserver: Use of the `--admission-control-config-file` with a file containing an AdmissionConfiguration apiserver.k8s.io/v1alpha1 config object no longer leads to an error when launching kube-apiserver. ([#58439]([https://github.com/kubernetes/kubernetes/pull/58439](https://github.com/kubernetes/kubernetes/pull/58439)) [@liggitt](https://github.com/liggitt)) - -* Default enabled admission plugins are now `NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota`. Please note that if you previously had not set the `--admission-control` flag, your cluster behavior may change (to be more standard). ([#58684](https://github.com/kubernetes/kubernetes/pull/58684), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) - -* Encryption key and encryption provider rotation now works properly. ([#58375](https://github.com/kubernetes/kubernetes/pull/58375), [@liggitt](https://github.com/liggitt) - -* RBAC: The system:kubelet-api-admin cluster role can be used to grant full access to the kubelet API so integrators can grant this role to the --kubelet-client-certificate credential given to the apiserver. ([#57128](https://github.com/kubernetes/kubernetes/pull/57128), [@liggitt](https://github.com/liggitt)) - -* DenyEscalatingExec admission controller now checks psp HostNetwork as well as hostIPC and hostPID. hostNetwork is also checked to deny exec /attach. ([#56839](https://github.com/kubernetes/kubernetes/pull/56839), [@hzxuzhonghu]=(https://github.com/hzxuzhonghu)) - -* When using Role-Based Access Control, the "admin", "edit", and "view" roles now have the expected permissions on NetworkPolicy resources, rather than reserving those permissions to only cluster-admin. ([#56650](https://github.com/kubernetes/kubernetes/pull/56650), [@danwinship](https://github.com/danwinship)) - -* Added docker-logins config to kubernetes-worker charm. ([#56217](https://github.com/kubernetes/kubernetes/pull/56217), [@Cynerva](https://github.com/Cynerva)) - -* Add ability to control primary GID of containers through Pod Spec at Pod level and Per Container SecurityContext level. ([#52077](https://github.com/kubernetes/kubernetes/pull/52077)) - -### CLI - -* Use structured generator for kubectl autoscale. ([#55913](https://github.com/kubernetes/kubernetes/pull/55913), [@wackxu](https://github.com/wackxu)) - -* Allow kubectl to set image|env on a cronjob ([#57742](https://github.com/kubernetes/kubernetes/pull/57742), [@soltysh](https://github.com/soltysh)) - -* Fixed crash in kubectl cp when path has multiple leading slashes. ([#58144](https://github.com/kubernetes/kubernetes/pull/58144), [@tomerf](https://github.com/tomerf)) - -* kubectl port-forward now allows using resource name (e.g., deployment/www) to select a matching pod, as well as the use of --pod-running-timeout to wait until at least one pod is running. ([#59705](https://github.com/kubernetes/kubernetes/pull/59705), [@phsiao](https://github.com/phsiao)) - -* 'cj' has been added as a shortname for CronJobs, as in `kubectl get cj` ([#59499](https://github.com/kubernetes/kubernetes/pull/59499), [@soltysh](https://github.com/soltysh)) - -* `crds` has been added as a shortname for CustomResourceDefinition, as in `kubectl get crds` ([#59061](https://github.com/kubernetes/kubernetes/pull/59061), [@nikhita](https://github.com/nikhita)) - -* Fix kubectl explain for resources not existing in default version of API group, such as `batch/v1, Kind=CronJob`. ([#58753](https://github.com/kubernetes/kubernetes/pull/58753), [@soltysh](https://github.com/soltysh)) - -* Added the ability to select pods in a chosen node to be drained based on given pod label-selector. ([#56864](https://github.com/kubernetes/kubernetes/pull/56864), [@juanvallejo](https://github.com/juanvallejo)) - -* Kubectl explain now prints out the Kind and API version of the resource being explained. ([#55689](https://github.com/kubernetes/kubernetes/pull/55689), [@luksa](https://github.com/luksa)) - -### Cluster Lifecycle - -* The default Kubernetes version for kubeadm is now 1.10. ([#61127](https://github.com/kubernetes/kubernetes/pull/61127), [@timothysc](https://github.com/timothysc)) - -* The minimum Kubernetes version in kubeadm is now v1.9.0. ([#57233](https://github.com/kubernetes/kubernetes/pull/57233), [@xiangpengzhao](https://github.com/xiangpengzhao)) - -* Fixes a bug in Heapster deployment for google sink. ([#57902](https://github.com/kubernetes/kubernetes/pull/57902), [@kawych](https://github.com/kawych)) - -* On cluster provision or upgrade, kubeadm now generates certs and secures all connections to the etcd static-pod with mTLS. This includes the etcd serving cert, the etcd peer cert, and the apiserver etcd client cert. Flags and hostMounts are added to the etcd and apiserver static-pods to load these certs. For connections to etcd, https is now used in favor of http. ([#57415](https://github.com/kubernetes/kubernetes/pull/57415), [@stealthybox](https://github.com/stealthybox) These certs are also generated on upgrade. ([#60385](https://github.com/kubernetes/kubernetes/pull/60385), [@stealthybox](https://github.com/stealthybox)) - -* Demoted controlplane passthrough flags apiserver-extra-args, controller-manager-extra-args, scheduler-extra-args to alpha flags ([#59882](https://github.com/kubernetes/kubernetes/pull/59882), [@kris-nova](https://github.com/kris-nova)) - -* The new flag `--apiserver-advertise-dns-address` is used in the node's kubelet.confg to point to the API server, allowing users to define a DNS entry instead of an IP address. ([#59288](https://github.com/kubernetes/kubernetes/pull/59288), [@stevesloka](https://github.com/stevesloka)) - -* MasterConfiguration manifiest The criSocket flag is now usable within the `MasterConfiguration` and `NodeConfiguration` manifest files that exist for configuring kubeadm. Before it only existed as a command line flag and was not able to be configured when using the `--config` flag and the manifest files. ([#59057](https://github.com/kubernetes/kubernetes/pull/59057)([#59292](https://github.com/kubernetes/kubernetes/pull/59292), [@JordanFaust](https://github.com/JordanFaust)) - -* `kubeadm init` can now omit the tainting of the master node if configured to do so in `kubeadm.yaml` using `noTaintMaster: true`. For example, uses can create a file with the content: - -``` -apiVersion: [kubeadm.k8s.io/v1alpha1](http://kubeadm.k8s.io/v1alpha1) -kind: MasterConfiguration -kubernetesVersion: v1.9.1 -noTaintMaster: true -``` - -And point to the file using the --config flag, as in - -`kubeadm init --config /etc/kubeadm/kubeadm.yaml` - -([#55479](https://github.com/kubernetes/kubernetes/pull/55479), [@ijc](https://github.com/ijc)) - -* kubeadm: New "imagePullPolicy" option in the init configuration file, that gets forwarded to kubelet static pods to control pull policy for etcd and control plane images. This option allows for precise image pull policy specification for master nodes and thus for more tight control over images. It is useful in CI environments and in environments, where the user has total control over master VM templates (thus, the master VM templates can be preloaded with the required Docker images for the control plane services). ([#58960](https://github.com/kubernetes/kubernetes/pull/58960), [@rosti](https://github.com/rosti)) - -* Fixed issue with charm upgrades resulting in an error state. ([#59064](https://github.com/kubernetes/kubernetes/pull/59064), [@hyperbolic2346](https://github.com/hyperbolic2346)) - -* kube-apiserver --advertise-address is now set using downward API for self-hosted Kubernetes with kubeadm. ([#56084](https://github.com/kubernetes/kubernetes/pull/56084), [@andrewsykim](https://github.com/andrewsykim)) - -* When using client or server certificate rotation, the Kubelet will no longer wait until the initial rotation succeeds or fails before starting static pods. This makes running self-hosted masters with rotation more predictable. ([#58930](https://github.com/kubernetes/kubernetes/pull/58930), [@smarterclayton](https://github.com/smarterclayton)) - -* Kubeadm no longer throws an error for the --cloud-provider=external flag. ([#58259](https://github.com/kubernetes/kubernetes/pull/58259), [@dims](https://github.com/dims)) - -* Added support for network spaces in the kubeapi-load-balancer charm. ([#58708](https://github.com/kubernetes/kubernetes/pull/58708), [@hyperbolic2346](https://github.com/hyperbolic2346)) - -* Added support for network spaces in the kubernetes-master charm. ([#58704](https://github.com/kubernetes/kubernetes/pull/58704), [@hyperbolic2346](https://github.com/hyperbolic2346)) - -* Added support for network spaces in the kubernetes-worker charm. ([#58523](https://github.com/kubernetes/kubernetes/pull/58523), [@hyperbolic2346](https://github.com/hyperbolic2346)) - -* Added support for changing nginx and default backend images to kubernetes-worker config. ([#58542](https://github.com/kubernetes/kubernetes/pull/58542), [@hyperbolic2346](https://github.com/hyperbolic2346)) - -* kubeadm now accepts `--apiserver-extra-args`, `--controller-manager-extra-args` and `--scheduler-extra-args`, making it possible to override / specify additional flags for control plane components. One good example is to deploy Kubernetes with a different admission-control flag on API server. ([#58080](https://github.com/kubernetes/kubernetes/pull/58080), [@simonferquel](https://github.com/simonferquel)) - -* Alpha Initializers have been removed from kubadm admission control. Kubeadm users who still want to use Initializers can use apiServerExtraArgs through the kubeadm config file to enable it when booting up the cluster. ([#58428](https://github.com/kubernetes/kubernetes/pull/58428), [@dixudx](https://github.com/dixudx)) - -* ValidatingAdmissionWebhook and MutatingAdmissionWebhook are beta, and are enabled in kubeadm by default. ([#58255](https://github.com/kubernetes/kubernetes/pull/58255), [@dixudx](https://github.com/dixudx)) - -* Add proxy_read_timeout flag to kubeapi_load_balancer charm. ([#57926](https://github.com/kubernetes/kubernetes/pull/57926), [@wwwtyro](https://github.com/wwwtyro)) - -* Check for known manifests during preflight instead of only checking for non-empty manifests directory. This makes the preflight checks less heavy-handed by specifically checking for well-known files (kube-apiserver.yaml, kube-controller-manager.yaml, kube-scheduler.yaml, etcd.yaml) in /etc/kubernetes/manifests instead of simply checking for a non-empty directory. ([#57287](https://github.com/kubernetes/kubernetes/pull/57287), [@mattkelly](https://github.com/mattkelly)) - -* PVC Protection alpha feature was renamed to Storage Protection. The Storage Protection feature is beta. ([#59052](https://github.com/kubernetes/kubernetes/pull/59052), [@pospispa](https://github.com/pospispa)) - -* iSCSI sessions managed by kubernetes will now explicitly set startup.mode to 'manual' to prevent automatic login after node failure recovery. This is the default open-iscsi mode, so this change will only impact users who have changed their startup.mode to be 'automatic' in /etc/iscsi/iscsid.conf. ([#57475](https://github.com/kubernetes/kubernetes/pull/57475), [@stmcginnis](https://github.com/stmcginnis)) - -* The IPVS feature gateway is now enabled by default in kubeadm, which makes the --feature-gates=SupportIPVSProxyMode=true obsolete, and it is no longer supported. ([#60540](https://github.com/kubernetes/kubernetes/pull/60540), [@m1093782566](https://github.com/m1093782566)) - -### GCP - -* ingress-gce image in glbc.manifest updated to 1.0.0 ([#61302](https://github.com/kubernetes/kubernetes/pull/61302), [@rramkumar1](https://github.com/rramkumar1)) - -### Instrumentation - -* For advanced auditing, audit policy supports subresources wildcard matching, such as "resource/", "/subresource","*". ([#55306](https://github.com/kubernetes/kubernetes/pull/55306), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) - -* [Auditing](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/) is now enabled behind a featureGate in kubeadm. A user can supply their own audit policy with configuration option as well as a place for the audit logs to live. If no policy is supplied a default policy will be provided. The default policy will log all Metadata level policy logs. It is the example provided in the documentation. ([#59067](https://github.com/kubernetes/kubernetes/pull/59067), [@chuckha](https://github.com/chuckha)) - -* Reduce Metrics Server memory requirement from 140Mi + 4Mi per node to 40Mi + 4Mi per node. ([#58391](https://github.com/kubernetes/kubernetes/pull/58391), [@kawych](https://github.com/kawych)) - -* Annotations is added to advanced audit api. ([#58806](https://github.com/kubernetes/kubernetes/pull/58806), [@CaoShuFeng](https://github.com/CaoShuFeng)) - -* Reorganized iptables rules to fix a performance regression on clusters with thousands of services. ([#56164](https://github.com/kubernetes/kubernetes/pull/56164), [@danwinship](https://github.com/danwinship)) - -* Container runtime daemon (e.g. dockerd) logs in GCE cluster will be uploaded to stackdriver and elasticsearch with tag `container-runtime`. ([#59103](https://github.com/kubernetes/kubernetes/pull/59103), [@Random-Liu](https://github.com/Random-Liu)) - -* Enable prometheus apiserver metrics for custom resources. ([#57682](https://github.com/kubernetes/kubernetes/pull/57682), [@nikhita](https://github.com/nikhita)) - -* Add apiserver metric for number of requests dropped because of inflight limit, making it easier to figure out on which dimension the master is overloaded. ([#58340](https://github.com/kubernetes/kubernetes/pull/58340), [@gmarek](https://github.com/gmarek)) - -* The Metrics Server now exposes metrics via the /metric endpoint. These metrics are in the prometheus format. ([#57456](https://github.com/kubernetes/kubernetes/pull/57456), [@kawych](https://github.com/kawych)) - -* Reduced the CPU and memory requests for the Metrics Server Nanny sidecar container to free up unused resources. ([#57252](https://github.com/kubernetes/kubernetes/pull/57252), [@kawych](https://github.com/kawych)) - -* Enabled log rotation for load balancer's api logs to prevent running out of disk space. ([#56979](https://github.com/kubernetes/kubernetes/pull/56979), [@hyperbolic2346](https://github.com/hyperbolic2346)) - -* Fixed `etcd-version-monitor` to backward compatibly support etcd 3.1 [go-grpc-prometheus](https://github.com/grpc-ecosystem/go-grpc-prometheus) metrics format. ([#56871](https://github.com/kubernetes/kubernetes/pull/56871), [@jpbetz](https://github.com/jpbetz)) - -### Node - -* Summary of Container Runtime changes: - * [beta] [cri-tools](https://github.com/kubernetes-incubator/cri-tools): CLI and validation tools for CRI is now v1.0.0-beta.0. This release mainly focused on UX improvements. [@feiskyer] - * [stable] [containerd](https://github.com/containerd/containerd): containerd v1.1 natively supports CRI v1alpha2 now, so users can use Kubernetes v1.10 with containerd v1.1 directly, without having to use the intermediate cri-containerd daemon. [All Kubernetes 1.10 tests passed](https://testgrid.k8s.io/sig-node-containerd). [@Random-Liu] - * [stable] [cri-o](https://github.com/kubernetes-incubator/cri-o): cri-o v1.10 updated CRI version to v1alpha2 and made several bug and stability fixes. [@mrunalp] - * [stable] [frakti](https://github.com/kubernetes/frakti): frakti v1.10 implemented GCE Persistent Disk as a high performance volume, fixed several bugs, added ARM64 support, and passed all CRI validation conformance tests and node e2e conformance tests. [@resouer] - -* Fixed race conditions around devicemanager Allocate() and endpoint deletion. ([#60856](https://github.com/kubernetes/kubernetes/pull/60856), [@jiayingz](https://github.com/jiayingz)) - -* kubelet initial flag parse now normalizes flags instead of exiting. ([#61053](https://github.com/kubernetes/kubernetes/pull/61053), [@andrewsykim](https://github.com/andrewsykim)) - -* Fixed regression where kubelet --cpu-cfs-quota flag did not work when --cgroups-per-qos was enabled ([#61294](https://github.com/kubernetes/kubernetes/pull/61294), [@derekwaynecarr](https://github.com/derekwaynecarr)) - -* Kubelet now supports container log rotation for container runtimes implementing CRI (container runtime interface). The feature can be enabled with feature gate `CRIContainerLogRotation`. The flags `--container-log-max-size` and `--container-log-max-files` can be used to configure the rotation behavior. ([#59898](https://github.com/kubernetes/kubernetes/pull/59898), [@Random-Liu](https://github.com/Random-Liu)) - -* Fixed a bug where if an error was returned that was not an `autorest.DetailedError` we would return `"not found", nil` which caused nodes to go to `NotReady` state. ([#57484](https://github.com/kubernetes/kubernetes/pull/57484), [@brendandburns](https://github.com/brendandburns)) - -* [HugePages](https://kubernetes.io/docs/tasks/manage-hugepages/scheduling-hugepages/) feature is beta, and thus enabled by default. ([#56939](https://github.com/kubernetes/kubernetes/pull/56939), [@derekwaynecarr](https://github.com/derekwaynecarr)) - -* Avoid panic when failing to allocate a Cloud CIDR (aka GCE Alias IP Range). ([#58186](https://github.com/kubernetes/kubernetes/pull/58186), [@negz](https://github.com/negz)) - -* 'none' can now be specified in KubeletConfiguration.EnforceNodeAllocatable (--enforce-node-allocatable) to explicitly disable enforcement. ([#59515](https://github.com/kubernetes/kubernetes/pull/59515), [@mtaufen](https://github.com/mtaufen)) - -* The alpha KubeletConfiguration.ConfigTrialDuration field is no longer available. It can still be set using the dynamic configuration alpha feature. ([#59628](https://github.com/kubernetes/kubernetes/pull/59628), [@mtaufen](https://github.com/mtaufen)) - -* Summary API will include pod CPU and Memory stats for CRI container runtime. ([#60328](https://github.com/kubernetes/kubernetes/pull/60328), [@Random-Liu](https://github.com/Random-Liu)) - -* Some field names in the Kubelet's now v1beta1 config API differ from the v1alpha1 API: for example, PodManifestPath is renamed to StaticPodPath, ManifestURL is renamed to StaticPodURL, and ManifestURLHeader is renamed to StaticPodURLHeader. Users should focus on switching to the v1beta1 API. ([#60314](https://github.com/kubernetes/kubernetes/pull/60314), [@mtaufen](https://github.com/mtaufen)) - -* The DevicePlugins feature has graduated to beta, and is now enabled by default; users should focus on moving to the v1beta API if possible. ([#60170](https://github.com/kubernetes/kubernetes/pull/60170), [@jiayingz](https://github.com/jiayingz)) - -* Per-cpu metrics have been disabled by default for to improve scalability. ([#60106](https://github.com/kubernetes/kubernetes/pull/60106), [@dashpole](https://github.com/dashpole)) - -* When the `PodShareProcessNamespace` alpha feature is enabled, setting `pod.Spec.ShareProcessNamespace` to `true` will cause a single process namespace to be shared between all containers in a pod. ([#58716](https://github.com/kubernetes/kubernetes/pull/58716), [@verb](https://github.com/verb)) - -* Resource quotas on extended resources such as GPUs are now supported. ([#57302](https://github.com/kubernetes/kubernetes/pull/57302), [@lichuqiang](https://github.com/lichuqiang)) - -* If the TaintNodesByCondition is enabled, a node will be tainted when it is under PID pressure. ([#60008](https://github.com/kubernetes/kubernetes/pull/60008), [@k82cn](https://github.com/k82cn)) - -* The Kubelet Summary API will now include total usage of pods through the "pods" SystemContainer. ([#57802](https://github.com/kubernetes/kubernetes/pull/57802), [@dashpole](https://github.com/dashpole)) - -* vSphere Cloud Provider supports VMs provisioned on vSphere v6.5. ([#59519](https://github.com/kubernetes/kubernetes/pull/59519), [@abrarshivani](https://github.com/abrarshivani)) - -* Created k8s.gcr.io image repo alias to pull images from the closest regional repo. Replaces gcr.io/google_containers. ([#57824](https://github.com/kubernetes/kubernetes/pull/57824), [@thockin](https://github.com/thockin)) - -* Fix the bug where kubelet in the standalone mode would wait for the update from the apiserver source, even if there wasn't one. ([#59276](https://github.com/kubernetes/kubernetes/pull/59276), [@roboll](https://github.com/roboll)) - -* Changes secret, configMap, downwardAPI and projected volumes to mount read-only, instead of allowing applications to write data and then reverting it automatically. Until version 1.11, setting the feature gate ReadOnlyAPIDataVolumes=false will preserve the old behavior. ([#58720](https://github.com/kubernetes/kubernetes/pull/58720), [@joelsmith](https://github.com/joelsmith)) - -* Fixes a bug where kubelet crashes trying to free memory under memory pressure. ([#58574](https://github.com/kubernetes/kubernetes/pull/58574), [@yastij](https://github.com/yastij)) - -* New alpha feature limits the number of processes running in a pod. Cluster administrators will be able to place limits by using the new kubelet command line parameter --pod-max-pids. Note that since this is a alpha feature they will need to enable the "SupportPodPidsLimit" feature. By default, we do not set any maximum limit, If an administrator wants to enable this, they should enable SupportPodPidsLimit=true in the --feature-gates= parameter to kubelet and specify the limit using the --pod-max-pids parameter. The limit set is the total count of all processes running in all containers in the pod. ([#57973](https://github.com/kubernetes/kubernetes/pull/57973),[@dims](https://github.com/dims)) - -* Fixes bug finding master replicas in GCE when running multiple Kubernetes clusters. ([#58561](https://github.com/kubernetes/kubernetes/pull/58561), [@jesseshieh](https://github.com/jesseshieh)) - -* --tls-min-version on kubelet and kube-apiserver allow for configuring minimum TLS versions ([#58528](https://github.com/kubernetes/kubernetes/pull/58528), [@deads2k](https://github.com/deads2k)) - -* Fix a bug affecting nested data volumes such as secret, configmap, etc. ([#57422](https://github.com/kubernetes/kubernetes/pull/57422), [@joelsmith](https://github.com/joelsmith)) - -* kubelet will no longer attempt to remove images being used by running containers when garbage collecting. ([#57020](https://github.com/kubernetes/kubernetes/pull/57020), [@dixudx](https://github.com/dixudx)) - -* Allow kubernetes components to react to SIGTERM signal and shutdown gracefully. ([#57756](https://github.com/kubernetes/kubernetes/pull/57756), [@mborsz](https://github.com/mborsz)) - -* Fixed garbage collection and resource quota issue when the controller-manager uses --leader-elect=false ([#57340](https://github.com/kubernetes/kubernetes/pull/57340), [@jmcmeek](https://github.com/jmcmeek)) - -* Fixed issue creating docker secrets with kubectl 1.9 for accessing docker private registries. ([#57463](https://github.com/kubernetes/kubernetes/pull/57463), [@dims](https://github.com/dims)) - -* The CPU Manager feature is now beta, and is enabled by default, but the default policy is no-op so no action is required. ([#55977](https://github.com/kubernetes/kubernetes/pull/55977), [@ConnorDoyle](https://github.com/ConnorDoyle)) - -### OpenStack - -* Fixed a bug in the OpenStack cloud provider where dual stack deployments (IPv4 and IPv6) did not work well when using kubenet as the network plugin. ([#59749](https://github.com/kubernetes/kubernetes/pull/59749), [@zioproto](https://github.com/zioproto)) - -* Fixed a bug that tries to use the octavia client to query flip. ([#59075](https://github.com/kubernetes/kubernetes/pull/59075), [@jrperritt](https://github.com/jrperritt)) - -* Kubernetes now registers metadata.hostname as node name for OpenStack nodes, eliminating a problem with invalid node names. ([#58502](https://github.com/kubernetes/kubernetes/pull/58502), [@dixudx](https://github.com/dixudx)) - -* Authentication information for OpenStack cloud provider can now be specified as environment variables. When we convert the OpenStack cloud provider to run in an external process, we can now use the kubernetes Secrets capability to inject the OS_* variables. This way we can specify the cloud configuration as a configmap, and specify secrets for the userid/password information. The configmap is mounted as a file, and the secrets are made available as environment variables. The external controller itself runs as a pod/daemonset. For backward compatibility, we preload all the OS_* variables, and if anything is in the config file, then that overrides the environment variables. ([#58300](https://github.com/kubernetes/kubernetes/pull/58300), [@dims](https://github.com/dims)) - -* Fixed issue when using OpenStack config drive for node metadata. Since we need to run commands such as blkid, we need to ensure that api server and kube controller are running in the privileged mode. ([#57561](https://github.com/kubernetes/kubernetes/pull/57561), [@dims](https://github.com/dims)) - -* Orphaned routes are properly removed from terminated instances. ([#56258](https://github.com/kubernetes/kubernetes/pull/56258), [@databus23](https://github.com/databus23)) - -* OpenStack Cinder will now detach properly when Nova is shut down. ([#56846](https://github.com/kubernetes/kubernetes/pull/56846), [@zetaab](https://github.com/zetaab)) -### Scalability - -* Added the ability to limit the increase in apiserver memory usage when audit logging with buffering is enabled. ([#61118](https://github.com/kubernetes/kubernetes/pull/61118), [@shyamjvs](https://github.com/shyamjvs)) - -* Upgrade to etcd client 3.2.13 and grpc 1.7.5 to improve HA etcd cluster stability. ([#57480](https://github.com/kubernetes/kubernetes/pull/57480), [@jpbetz](https://github.com/jpbetz)) - -### Storage - -* Fixes CVE-2017-1002101 - See [https://issue.k8s.io/60813](https://issue.k8s.io/60813) for details on this **major security fix**. ([#61044](https://github.com/kubernetes/kubernetes/pull/61044), [@liggitt](https://github.com/liggitt)) - -* Fixed missing error checking that could cause kubelet to crash in a race condition. ([#60962](https://github.com/kubernetes/kubernetes/pull/60962), [@technicianted](https://github.com/technicianted)) - -* Fixed a regression that prevented using `subPath` volume mounts with secret, configMap, projected, and downwardAPI volumes. ([#61080](https://github.com/kubernetes/kubernetes/pull/61080), [@liggitt](https://github.com/liggitt)) - -* K8s supports cephfs fuse mount. ([#55866](https://github.com/kubernetes/kubernetes/pull/55866), [@zhangxiaoyu-zidif](https://github.com/zhangxiaoyu-zidif)) - -* Use GiB unit for creating and resizing volumes for Glusterfs. ([#56581](https://github.com/kubernetes/kubernetes/pull/56581), [@gnufied](https://github.com/gnufied)) - -* Adding support for Block Volume type to rbd plugin. ([#56651](https://github.com/kubernetes/kubernetes/pull/56651), [@sbezverk](https://github.com/sbezverk)) - -* Add FSType for CSI volume source to specify filesystems (alpha defaults to ext4) ([#58209](https://github.com/kubernetes/kubernetes/pull/58209), [@NickrenREN](https://github.com/NickrenREN)) - -* Enabled File system resize of mounted volumes. ([#58794](https://github.com/kubernetes/kubernetes/pull/58794), [@gnufied](https://github.com/gnufied)) - -* The Local Volume Plugin has been updated to support Block volumeMode PVs. With this change, it is now possible to create local volume PVs for raw block devices. ([#59303](https://github.com/kubernetes/kubernetes/pull/59303), [@dhirajh](https://github.com/dhirajh)) - -* Fixed an issue where Portworx volume driver wasn't passing namespace and annotations to the Portworx Create API. ([#59607](https://github.com/kubernetes/kubernetes/pull/59607), [@harsh-px](https://github.com/harsh-px)) - -* Addressed breaking changes introduced by new 0.2.0 release of CSI spec. Specifically, csi.Version was removed from all API calls and CcontrollerProbe and NodeProbe were consolidated into a single Probe API call. ([#59209](https://github.com/kubernetes/kubernetes/pull/59209), [@sbezverk](https://github.com/sbezverk)) - -* GCE PD volume plugin now supports block volumes. ([#58710](https://github.com/kubernetes/kubernetes/pull/58710), [@screeley44](https://github.com/screeley44)) - -* Implements MountDevice and UnmountDevice for the CSI Plugin, the functions will call through to NodeStageVolume/NodeUnstageVolume for CSI plugins. ([#60115](https://github.com/kubernetes/kubernetes/pull/60115), [@davidz627](https://github.com/davidz627)) - -* The LocalStorageCapacityIsolation feature is beta and enabled by default. The LocalStorageCapacityIsolation feature added a new resource type ResourceEphemeralStorage "ephemeral-storage" so that this resource can be allocated, limited, and consumed as the same way as CPU/memory. All the features related to resource management (resource request/limit, quota, limitrange) are available for local ephemeral storage. This local ephemeral storage represents the storage for root file system, which will be consumed by containers' writable layer and logs. Some volumes such as emptyDir might also consume this storage. ([#60159](https://github.com/kubernetes/kubernetes/pull/60159), [@jingxu97](https://github.com/jingxu97)) - -* VolumeScheduling and LocalPersistentVolume features are beta and enabled by default. The PersistentVolume NodeAffinity alpha annotation is deprecated and will be removed in a future release. ([#59391](https://github.com/kubernetes/kubernetes/pull/59391), [@msau42](https://github.com/msau42)) - -* K8s now supports rbd-nbd for Ceph rbd volume mounts. ([#58916](https://github.com/kubernetes/kubernetes/pull/58916), [@ianchakeres](https://github.com/ianchakeres)) - -* CSI now allows credentials to be specified on CreateVolume/DeleteVolume, ControllerPublishVolume/ControllerUnpublishVolume, and NodePublishVolume/NodeUnpublishVolume operations. Before this change all API calls had to fetch key/value stored in secret and use it to authenticate/authorize these operations. With this change API calls receive key/value as a input parameter so they not need to know where and how credentials were stored and fetched. Main goal was to make these API calls CO (Container Orchestrator) agnostic. ([#60118](https://github.com/kubernetes/kubernetes/pull/60118), [@sbezverk](https://github.com/sbezverk)) - -* StorageOS volume plugin has been updated to support mount options and environments where the kubelet runs in a container and the device location should be specified. ([#58816](https://github.com/kubernetes/kubernetes/pull/58816), [@croomes](https://github.com/croomes)) - -* Get parent dir via canonical absolute path when trying to judge mount-point, fixing a problem that caused an NFS volume with improper permissions to get stuck in `TERMINATING` status. ([#58433](https://github.com/kubernetes/kubernetes/pull/58433), [@yue9944882]](https://github.com/yue9944882)) - -* Clusters with GCE feature 'DiskAlphaAPI' enabled can now dynamically provision GCE PD volumes. ([#59447](https://github.com/kubernetes/kubernetes/pull/59447), [@verult](https://github.com/verult)) - -* Added `keyring` parameter for Ceph RBD provisioner. ([#58287](https://github.com/kubernetes/kubernetes/pull/58287), [@madddi](https://github.com/madddi)) - -* Added xfsprogs to hyperkube container image. ([#56937](https://github.com/kubernetes/kubernetes/pull/56937), [@redbaron](https://github.com/redbaron)) - -* Improved messages user gets during and after volume resizing is done, providing a clear message to the user explaining what to do when resizing is finished. ([#58415](https://github.com/kubernetes/kubernetes/pull/58415), [@gnufied](https://github.com/gnufied)) - -* MountPropagation feature is now beta. As consequence, all volume mounts in containers are now "rslave" on Linux by default. To make this default work in all Linux environments you should have entire mount tree marked as shareable via "mount --make-rshared /". All Linux distributions that use systemd already have root directory mounted as rshared and hence they need not do anything. In Linux environments without systemd we recommend running "mount --make-rshared /" during boot, before docker is started. ([#59252](https://github.com/kubernetes/kubernetes/pull/59252), [@jsafrane](https://github.com/jsafrane)) - -* Volume metrics support for vSphere Cloud Provider has been added. You can now monitor available space, capacity, and used space on volumes created using vSphere. ([#59328](https://github.com/kubernetes/kubernetes/pull/59328), [@divyenpatel](https://github.com/divyenpatel)) - -* Emit number of bound and unbound persistent volumes as Metrics. This PR adds four kinds of Volume Metrics for kube-controller-manager: bound PVC numbers, unbound PVC numbers, bound PV numbers and unbound PV numbers. The PVC metrics use namespace as dimension and the PV metrics use StorageClassName as its dimension. With these metrics we can better monitor the use of volumes in the cluster. ([#57872](https://github.com/kubernetes/kubernetes/pull/57872), [@mlmhl](https://github.com/mlmhl)) - -* Add windows config to Kubelet CRI so that WindowsContainerResources can be managed. ([#57076](https://github.com/kubernetes/kubernetes/pull/57076), [@feiskyer](https://github.com/feiskyer)) - -* PersistentVolumes that are bound to a PersistentVolumeClaim will not be deleted. ([#58743](https://github.com/kubernetes/kubernetes/pull/58743), [@NickrenREN](https://github.com/NickrenREN)) - -* The VolumeAttachment API is now available as V1beta1, and is enabled by default. The Alpha API is deprecated and will be removed in a future release. ([#58462](https://github.com/kubernetes/kubernetes/pull/58462), [@NickrenREN](https://github.com/NickrenREN)) - -* Add storage-backend configuration option to kubernetes-master charm. ([#58830](https://github.com/kubernetes/kubernetes/pull/58830), [@wwwtyro](https://github.com/wwwtyro)) - -* Fixed dynamic provisioning of GCE PDs to round to the next GB (base 1000) instead of GiB (base 1024). ([#56600](https://github.com/kubernetes/kubernetes/pull/56600), [@edisonxiang](https://github.com/edisonxiang)) - -* PersistentVolume flexVolume sources can now reference secrets in a namespace other than the PersistentVolumeClaim's namespace. ([#56460](https://github.com/kubernetes/kubernetes/pull/56460), [@liggitt](https://github.com/liggitt)) - -### Windows - -* kubelet and kube-proxy can now be run as native Windows services. ([#60144](https://github.com/kubernetes/kubernetes/pull/60144), [@alinbalutoiu](https://github.com/alinbalutoiu)) - -* WindowsContainerResources is set now for windows containers. ([#59333](https://github.com/kubernetes/kubernetes/pull/59333), [@feiskyer](https://github.com/feiskyer)) - -* Disable mount propagation for windows containers (because it is not supported by the OS). ([#60275](https://github.com/kubernetes/kubernetes/pull/60275), [@feiskyer](https://github.com/feiskyer)) - -* Fix image file system stats for windows nodes. ([#59743](https://github.com/kubernetes/kubernetes/pull/59743), [@feiskyer](https://github.com/feiskyer)) - -* Kubernetes will now return an error if New-SmbGlobalMapping failed when mounting an azure file on Windows. ([#59540](https://github.com/kubernetes/kubernetes/pull/59540), [@andyzhangx](https://github.com/andyzhangx)) - -* Kubernetes now uses the more reliable GlobalMemoryStatusEx to get total physical memory on windows nodes. ([#57124](https://github.com/kubernetes/kubernetes/pull/57124), [@JiangtianLi](https://github.com/JiangtianLi)) - -* Windows containers now support experimental Hyper-V isolation by setting annotation `experimental.windows.kubernetes.io/isolation-type=hyperv` and feature gates HyperVContainer. At the moment this function only supports one container per pod. ([#58751]([https://github.com/kubernetes/kubernetes/pull/58751](https://github.com/kubernetes/kubernetes/pull/58751)), [@feiskyer](https://github.com/feiskyer)) - -* Get windows kernel version directly from registry rather than windows.getVersion(). ([#58498](https://github.com/kubernetes/kubernetes/pull/58498), [@feiskyer](https://github.com/feiskyer)) - -* Fixed controller manager crash when using mixed case names in a vSphere cloud provider environment. ([#57286](https://github.com/kubernetes/kubernetes/pull/57286), [@rohitjogvmw](https://github.com/rohitjogvmw)) - -* Flexvolume is now [enabled on Windows nodes](https://github.com/andyzhangx/Demo/tree/master/windows/flexvolume). ([#56921](https://github.com/kubernetes/kubernetes/pull/56921), [@andyzhangx](https://github.com/andyzhangx)) - -### Autoscaling - -* The getSubnetIDForLB() returns subnet id rather than net id. ([#58208](https://github.com/kubernetes/kubernetes/pull/58208), [@FengyunPan](https://github.com/FengyunPan)) - -* `kubectl scale` can now scale any resource (kube, CRD, aggregate) conforming to the standard scale endpoint ([#58298](https://github.com/kubernetes/kubernetes/pull/58298), [@p0lyn0mial](https://github.com/p0lyn0mial)) - -* Cluster Autoscaler has been updated to Version 1.2.0, which includes fixes around GPUs and base image change. See [https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-](https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.1.2)1.2.0for details. ([#60842](https://github.com/kubernetes/kubernetes/pull/60842), [@mwielgus](https://github.com/mwielgus)) - -* Allows HorizontalPodAutoscaler to use global metrics not associated with any Kubernetes object (for example metrics from a hosting service running outside of the Kubernetes cluster). ([#60096](https://github.com/kubernetes/kubernetes/pull/60096), [@MaciekPytel](https://github.com/MaciekPytel)) - -* fluentd-gcp resources can be modified via a ScalingPolicy. ([#59657](https://github.com/kubernetes/kubernetes/pull/59657), [@x13n](https://github.com/x13n)) - -* Added anti-affinity to kube-dns pods. Otherwise the "no single point of failure" setting doesn't actually work (a single node failure can still take down the entire cluster). ([#57683](https://github.com/kubernetes/kubernetes/pull/57683), [@vainu-arto](https://github.com/vainu-arto)) - -### API-Machinery - -* Fixed webhooks to use the scheme provided in clientConfig, instead of defaulting to http. ([#60943](https://github.com/kubernetes/kubernetes/pull/60943), [@jennybuckley](https://github.com/jennybuckley)) - -* The webhook admission controller in a custom apiserver now works off-the-shelf. ([#60995](https://github.com/kubernetes/kubernetes/pull/60995), [@caesarxuchao](https://github.com/caesarxuchao)) - -* Upgrade the default etcd server version to 3.1.12 to pick up critical etcd "mvcc "unsynced" watcher restore operation" fix. ([#60998](https://github.com/kubernetes/kubernetes/pull/60998), [@jpbetz](https://github.com/jpbetz)) - -* Fixed bug allowing garbage collector to enter a broken state that could only be fixed by restarting the controller-manager. ([#61201](https://github.com/kubernetes/kubernetes/pull/61201), [@jennybuckley](https://github.com/jennybuckley)) - -* kube-apiserver: The external hostname no longer longer use the cloud provider API to select a default. It can be set explicitly using --external-hostname, if needed. If there is no default, AdvertiseAddress or os.Hostname() will be used, in that order. ([#56812](https://github.com/kubernetes/kubernetes/pull/56812), [@dims](https://github.com/dims)) - -* Custom resources can be listed with a set of grouped resources (category) by specifying the categories in the [CustomResourceDefinition spec](https://kubernetes.io/docs/tasks/access-kubernetes-api/extend-api-custom-resource-definitions/#categories). Example: They can be used with `kubectl get important`, where `important` is a category. ([#59561](https://github.com/kubernetes/kubernetes/pull/59561), [@nikhita](https://github.com/nikhita)) - -* Fixed an issue making it possible to create a situation in which two webhooks make it impossible to delete each other. ValidatingWebhooks and MutatingWebhooks will not be called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects in the admissionregistration.k8s.io group ([#59840](https://github.com/kubernetes/kubernetes/pull/59840), [@jennybuckley](https://github.com/jennybuckley)) - -* Fixed potential deadlock when deleting CustomResourceDefinition for custom resources with finalizers. ([#60542](https://github.com/kubernetes/kubernetes/pull/60542), [@liggitt](https://github.com/liggitt)) - -* A buffered audit backend can be used with other audit backends. ([#60076](https://github.com/kubernetes/kubernetes/pull/60076), [@crassirostris](https://github.com/crassirostris)) - -* Introduced `--http2-max-streams-per-connection` command line flag on api-servers and set default to 1000 for aggregated API servers. ([#60054](https://github.com/kubernetes/kubernetes/pull/60054), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) - -* APIserver backed by etcdv3 exports metric shows number of resources per kind. ([#59757](https://github.com/kubernetes/kubernetes/pull/59757), [@gmarek](https://github.com/gmarek)) - -* Add `kubectl create job --from-cronjob` command. ([#60084](https://github.com/kubernetes/kubernetes/pull/60084), [@soltysh](https://github.com/soltysh)) - -* `/status` and `/scale` subresources have been added for custom resources. See [https://github.com/kubernetes/kubernetes/pull/55168](https://github.com/kubernetes/kubernetes/pull/55168) for more details. ([#55168](https://github.com/kubernetes/kubernetes/pull/55168), [@nikhita](https://github.com/nikhita)) - -* Restores the ability of older clients to delete and scale jobs with initContainers. ([#59880](https://github.com/kubernetes/kubernetes/pull/59880), [@liggitt](https://github.com/liggitt)) - -* Fixed a race condition causing apiserver crashes during etcd healthchecking. ([#60069](https://github.com/kubernetes/kubernetes/pull/60069), [@wojtek-t](https://github.com/wojtek-t)) - -* Fixed a race condition in k8s.io/client-go/tools/cache.SharedInformer that could violate the sequential delivery guarantee and cause panics on shutdown in Kubernetes 1.8.* and 1.9.*. ([#59828](https://github.com/kubernetes/kubernetes/pull/59828), [@krousey](https://github.com/krousey)) - -* Add automatic etcd 3.2->3.1 and 3.1->3.0 minor version rollback support to gcr.io/google_container/etcd images. For HA clusters, all members must be stopped before performing a rollback. ([#59298](https://github.com/kubernetes/kubernetes/pull/59298), [@jpbetz](https://github.com/jpbetz)) - -* The `meta.k8s.io/v1alpha1` objects for retrieving tabular responses from the server (`Table`) or fetching just the `ObjectMeta` for an object (as `PartialObjectMetadata`) are now beta as part of `meta.k8s.io/v1beta1` and configurations must be changed to use the new API. Clients may request alternate representations of normal Kubernetes objects by passing an `Accept` header like `application/json;as=Table;g=meta.k8s.io;v=v1beta1` or `application/json;as=PartialObjectMetadata;g=meta.k8s.io;v1=v1beta1`. Older servers will ignore this representation or return an error if it is not available. Clients may request fallback to the normal object by adding a non-qualified mime-type to their `Accept` header like `application/json` - the server will then respond with either the alternate representation if it is supported or the fallback mime-type which is the normal object response. ([#59059](https://github.com/kubernetes/kubernetes/pull/59059), [@smarterclayton]([https://github.com/smarterclayton](https://github.com/smarterclayton) )) - -* kube-apiserver now uses SSH tunnels for webhooks if the webhook is not directly routable from apiserver's network environment. ([#58644](https://github.com/kubernetes/kubernetes/pull/58644), [@yguo0905](https://github.com/yguo0905)) - -* Access to externally managed IP addresses via the kube-apiserver service proxy subresource is no longer allowed by default. This can be re-enabled via the `ServiceProxyAllowExternalIPs` feature gate, but will be disallowed completely in 1.11 ([#57265](https://github.com/kubernetes/kubernetes/pull/57265), [@brendandburns](https://github.com/brendandburns)) - -* The apiregistration.k8s.io (aggregation) is now generally available. Users should transition from the v1beta1 API to the v1 API. ([#58393](https://github.com/kubernetes/kubernetes/pull/58393), [@deads2k](https://github.com/deads2k)) - -* Fixes an issue where the resourceVersion of an object in a DELETE watch event was not the resourceVersion of the delete itself, but of the last update to the object. This could disrupt the ability of clients clients to re-establish watches properly. ([#58547](https://github.com/kubernetes/kubernetes/pull/58547), [@liggitt](https://github.com/liggitt)) - -* kube-apiserver: requests to endpoints handled by unavailable extension API servers (as indicated by an `Available` condition of `false` in the registered APIService) now return `503` errors instead of `404` errors. ([#58070](https://github.com/kubernetes/kubernetes/pull/58070), [@weekface](https://github.com/weekface)) - -* Custom resources can now be submitted to and received from the API server in application/yaml format, consistent with other API resources. ([#58260](https://github.com/kubernetes/kubernetes/pull/58260), [@liggitt](https://github.com/liggitt)) - -### Network - -* Fixed kube-proxy to work correctly with iptables 1.6.2 and later. ([#60978](https://github.com/kubernetes/kubernetes/pull/60978), [@danwinship](https://github.com/danwinship)) - -* Makes the kube-dns addon optional so that users can deploy their own DNS solution. ([#57113](https://github.com/kubernetes/kubernetes/pull/57113), [@wwwtyro]([https://github.com/wwwtyro](https://github.com/wwwtyro) )) - -* `kubectl port-forward` now supports specifying a service to port forward to, as in `kubectl port-forward svc/myservice 8443:443`. Additional support has also been added for looking up targetPort for a service, as well as enabling using svc/name to select a pod. ([#59809](https://github.com/kubernetes/kubernetes/pull/59809), [@phsiao](https://github.com/phsiao)) -* [Make NodePort IP address](https://github.com/kubernetes/website/pull/7631/files)[ses configurabl](https://github.com/kubernetes/website/pull/7631/files)[e](https://github.com/kubernetes/website/pull/7631/files). ([#58052](https://github.com/kubernetes/kubernetes/pull/58052), [@m1093782566](https://github.com/m1093782566)) - -* Fixed the issue in kube-proxy iptables/ipvs mode to properly handle incorrect IP version. ([#56880](https://github.com/kubernetes/kubernetes/pull/56880), [@MrHohn](https://github.com/MrHohn)) -* Kubeadm: CoreDNS supports migration of the kube-dns configuration to CoreDNS configuration when upgrading the service discovery from kube-dns to CoreDNS as part of Beta. ([#58828](https://github.com/kubernetes/kubernetes/pull/58828), [@rajansandeep](https://github.com/rajansandeep)) - -* Adds BETA support for `DNSConfig` field in PodSpec and `DNSPolicy=None`, so configurable pod resolve.conf is now enabled by default. ([#59771](https://github.com/kubernetes/kubernetes/pull/59771), [@MrHohn](https://github.com/MrHohn)) -* Removed some redundant rules created by the iptables proxier to improve performance on systems with very many services. ([#57461](https://github.com/kubernetes/kubernetes/pull/57461), [@danwinship](https://github.com/danwinship)) - -* Fix an issue where port forwarding doesn't forward local TCP6 ports to the pod ([#57457](https://github.com/kubernetes/kubernetes/pull/57457), [@vfreex](https://github.com/vfreex)) -* Correctly handle transient connection reset errors on GET requests from client library. ([#58520](https://github.com/kubernetes/kubernetes/pull/58520), [@porridge](https://github.com/porridge)) - -* GCE: Allows existing internal load balancers to continue using a subnetwork that may have been wrongfully chosen due to a bug choosing subnetworks on automatic networks. ([#57861](https://github.com/kubernetes/kubernetes/pull/57861), [@nicksardo](https://github.com/nicksardo)) -### Azure - -* Set node external IP for azure node when disabling UseInstanceMetadata. ([#60959](https://github.com/kubernetes/kubernetes/pull/60959), [@feiskyer](https://github.com/feiskyer)) - -* Changed default azure file/dir mode to 0755. ([#56551](https://github.com/kubernetes/kubernetes/pull/56551), [@andyzhangx](https://github.com/andyzhangx)) - -* Fixed azure file plugin failure issue on Windows after node restart. ([#60625](https://github.com/kubernetes/kubernetes/pull/60625), [@andyzhangx](https://github.com/andyzhangx))([#60623](https://github.com/kubernetes/kubernetes/pull/60623), [@feiskyer](https://github.com/feiskyer)) - -* Fixed race condition issue when detaching azure disk, preventing `Multi-Attach error`s when scheduling one pod from one node to another. ([#60183](https://github.com/kubernetes/kubernetes/pull/60183), [@andyzhangx](https://github.com/andyzhangx)) - -* Add AzureDisk support for vmss nodes. ([#59716]([https://github.com/kubernetes/kubernetes/pull/59716](https://github.com/kubernetes/kubernetes/pull/59716)), [@feiskyer](https://github.com/feiskyer)) - -* Map correct vmset name for Azure internal load balancers. ([#59747](https://github.com/kubernetes/kubernetes/pull/59747), [@feiskyer](https://github.com/feiskyer)) - -* Node's providerID will now follow the Azure resource ID format (`azure:///subscriptions/<id>/resourceGroups/<rg>/providers/Microsoft.Compute/virtualMachines/<node-name>` rather than `azure://d84a1c30-0c9f-11e8-8a34-000d3a919531`) when useInstanceMetadata is enabled ([#59539](https://github.com/kubernetes/kubernetes/pull/59539), [@feiskyer](https://github.com/feiskyer)) - -* Azure public IP is now correctly removed after a service is deleted. ([#59340](https://github.com/kubernetes/kubernetes/pull/59340), [@feiskyer](https://github.com/feiskyer)) - -* Added PV size grow feature for azure filesystems. ([#57017](https://github.com/kubernetes/kubernetes/pull/57017), [@andyzhangx](https://github.com/andyzhangx)) - -* Ensured IP is set for Azure internal load balancer. ([#59083](https://github.com/kubernetes/kubernetes/pull/59083), [@feiskyer](https://github.com/feiskyer)) - -* Set fsGroup by securityContext.fsGroup in azure file. However,f user both sets gid=xxx in mountOptions in azure storage class and securityContext.fsGroup, gid=xxx setting in mountOptions takes precedence. ([#58316](https://github.com/kubernetes/kubernetes/pull/58316), [@andyzhangx](https://github.com/andyzhangx)) - -* If an Azure disk is not found, K8s will immediately detach it. ([#58345](https://github.com/kubernetes/kubernetes/pull/58345), [@rootfs](https://github.com/rootfs)) -* Instrumented the Azure cloud provider for Prometheus monitoring. ([#58204](https://github.com/kubernetes/kubernetes/pull/58204), [@cosmincojocar](https://github.com/cosmincojocar)) - -* Fixed device name change issues for azure disk. ([#57953](https://github.com/kubernetes/kubernetes/pull/57953), [@andyzhangx](https://github.com/andyzhangx)) ([#57549](https://github.com/kubernetes/kubernetes/pull/57549), [@andyzhangx](https://github.com/andyzhangx)) - -* Support multiple scale sets in Azure cloud provider. ([#57543](https://github.com/kubernetes/kubernetes/pull/57543), [@feiskyer](https://github.com/feiskyer)) - -* Support LoadBalancer for Azure Virtual Machine Scale Sets ([#57131](https://github.com/kubernetes/kubernetes/pull/57131), [@feiskyer](https://github.com/feiskyer)) - -* Fixed incorrect error info when creating an azure file PVC failed. ([#56550](https://github.com/kubernetes/kubernetes/pull/56550), [@andyzhangx](https://github.com/andyzhangx)) - -* Added mount options support for azure disk. For example: - -``` -kind: StorageClass -apiVersion: storage.k8s.io/v1 -metadata: - name: hdd -provisioner: kubernetes.io/azure-disk -mountOptions: - - barrier=1 - - acl -parameters: - skuname: Standard_LRS - kind: Managed - fstype: ext3 -``` - -([#56147](https://github.com/kubernetes/kubernetes/pull/56147), [@andyzhangx](https://github.com/andyzhangx)) - -### Scheduling - -* Fixed a bug the in scheduler cache by using Pod UID as the cache key instead of namespace/name ([#61069](https://github.com/kubernetes/kubernetes/pull/61069), [@anfernee](https://github.com/anfernee)) - -* When `TaintNodesByCondition` is enabled, added `node.kubernetes.io/unschedulable:NoSchedule` ([#61161](https://github.com/kubernetes/kubernetes/pull/61161), [@k82cn](https://github.com/k82cn)) - -* kube-scheduler: Support extender managed extended resources in kube-scheduler ([#60332](https://github.com/kubernetes/kubernetes/pull/60332), [@yguo0905](https://github.com/yguo0905)) - -* Updated priority of mirror pod according to PriorityClassName. ([#58485](https://github.com/kubernetes/kubernetes/pull/58485), [@k82cn](https://github.com/k82cn)) - -* kube-scheduler: restores default leader election behavior. Setting the `--leader-elect` command line parameter to `true` ([#60524](https://github.com/kubernetes/kubernetes/pull/60524), [@dims](https://github.com/dims)) - -* All pods with priorityClassName system-node-critical and system-cluster-critical will be critical pods while preserving backwards compatibility. ([#58835](https://github.com/kubernetes/kubernetes/pull/58835), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -* Priority admission controller picks a global default with the lowest priority value if more than one such default PriorityClass exists. ([#59991](https://github.com/kubernetes/kubernetes/pull/59991), [@bsalamat](https://github.com/bsalamat)) -* Disallow PriorityClass names with 'system-' prefix for user defined priority classes. ([#59382](https://github.com/kubernetes/kubernetes/pull/59382), [@bsalamat](https://github.com/bsalamat)) -* kube-scheduler: Use default predicates/prioritizers if they are unspecified in the policy config. ([#59363](https://github.com/kubernetes/kubernetes/pull/59363), [@yguo0905](https://github.com/yguo0905)) - -* Scheduler should be able to read from config file if configmap is not present. ([#59386](https://github.com/kubernetes/kubernetes/pull/59386), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -* Add apiserver metric for current inflight-request usage. ([#58342](https://github.com/kubernetes/kubernetes/pull/58342), [@gmarek](https://github.com/gmarek)) - -* Stability: Make Pod delete event handling of scheduler more robust. ([#58712](https://github.com/kubernetes/kubernetes/pull/58712), [@bsalamat](https://github.com/bsalamat))* Allow scheduler set AlwaysCheckAllPredicates, short circuit all predicates if one predicate fails can greatly improve the scheduling performance. ([#56926](https://github.com/kubernetes/kubernetes/pull/56926), [@wgliang](https://github.com/wgliang)) - -* GCE: support passing kube-scheduler policy config via SCHEDULER_POLICY_CONFIG. This allows us to specify a customized scheduler policy configuration. ([#57425](https://github.com/kubernetes/kubernetes/pull/57425), [@yguo0905](https://github.com/yguo0905)) - -* Returns an error for non overcommitable resources if they don't have limit field set in container spec to prevent users from creating invalid configurations. ([#57170](https://github.com/kubernetes/kubernetes/pull/57170), [@jiayingz](https://github.com/jiayingz)) - -* GCE: Fixed ILB creation on automatic networks with manually created subnetworks. ([#57351](https://github.com/kubernetes/kubernetes/pull/57351), [@nicksardo](https://github.com/nicksardo)) - -* Multiple Performance Improvements to the MatchInterPodAffinity predicate ([#57476](https://github.com/kubernetes/kubernetes/pull/57476), [@misterikkit](https://github.com/misterikkit))([#57477](https://github.com/kubernetes/kubernetes/pull/57477), [@misterikkit](https://github.com/misterikkit)) - -* The calico-node addon tolerates all NoExecute and NoSchedule taints by default. So Calico components can even be scheduled on tainted nodes. ([#57122](https://github.com/kubernetes/kubernetes/pull/57122), [@caseydavenport](https://github.com/caseydavenport)) -* The scheduler skips pods that use a PVC that either does not exist or is being deleted. ([#55957](https://github.com/kubernetes/kubernetes/pull/55957), [@jsafrane](https://github.com/jsafrane)) - -### Other changes - -* Updated dashboard version to v1.8.3, which keeps auto-generated certs in memory. ([#57326](https://github.com/kubernetes/kubernetes/pull/57326), [@floreks](https://github.com/floreks)) - -* fluentd-gcp addon: Fixed bug with reporting metrics in event-exporter. ([#60126](https://github.com/kubernetes/kubernetes/pull/60126), [@serathius](https://github.com/serathius)) - -* Avoid hook errors when effecting label changes on kubernetes-worker charm. ([#59803](https://github.com/kubernetes/kubernetes/pull/59803), [@wwwtyro](https://github.com/wwwtyro)) - -* Fixed charm issue where docker login would run prior to daemon options being set. ([#59396](https://github.com/kubernetes/kubernetes/pull/59396), [@kwmonroe](https://github.com/kwmonroe)) - -* Implementers of the cloud provider interface will note the addition of a context to this interface. Trivial code modification will be necessary for a cloud provider to continue to compile. ([#59287](https://github.com/kubernetes/kubernetes/pull/59287), [@cheftako](https://github.com/cheftako)) - -* Added configurable etcd quota backend bytes in GCE. ([#59259](https://github.com/kubernetes/kubernetes/pull/59259), [@wojtek-t](https://github.com/wojtek-t)) - -* GCP: allow a master to not include a metadata concealment firewall rule (if it's not running the metadata proxy). ([#58104](https://github.com/kubernetes/kubernetes/pull/58104), [@ihmccreery](https://github.com/ihmccreery)) - -* Fixed issue with kubernetes-worker option allow-privileged not properly handling the value True with a capital T. ([#59116](https://github.com/kubernetes/kubernetes/pull/59116), [@hyperbolic2346](https://github.com/hyperbolic2346)) - -* Controller-manager --service-sync-period flag has been removed. (It was never used in the code and should have no user impact.) ([#59359](https://github.com/kubernetes/kubernetes/pull/59359), [@khenidak](https://github.com/khenidak)) - -* [fluentd-gcp addon] Switch to the image provided by Stackdriver. The Stackdriver Logging Agent container image uses fluentd v0.14.25. ([#59128](https://github.com/kubernetes/kubernetes/pull/59128), [@bmoyles0117](https://github.com/bmoyles0117)) - -# Non-user-facing Changes - -* CRI now uses moutpoint as image filesystem identifier instead of UUID. ([#59475](https://github.com/kubernetes/kubernetes/pull/59475), [@Random-Liu](https://github.com/Random-Liu)) - -* GCE: support Cloud TPU API in cloud provider ([#58029](https://github.com/kubernetes/kubernetes/pull/58029), [@yguo0905](https://github.com/yguo0905)) - -* kubelet now notifies systemd that it has finished starting, if systemd is available and running. ([#60654](https://github.com/kubernetes/kubernetes/pull/60654), [@dcbw](https://github.com/dcbw)) - -* Do not count failed pods as unready in HPA controller ([#60648](https://github.com/kubernetes/kubernetes/pull/60648), [@bskiba](https://github.com/bskiba)) - -* fixed foreground deletion of podtemplates ([#60683](https://github.com/kubernetes/kubernetes/pull/60683), [@nilebox](https://github.com/nilebox)) - -* Conformance tests are added for the DaemonSet kinds in the apps/v1 group version. Deprecated versions of DaemonSet will not be tested for conformance, and conformance is only applicable to release 1.10 and later. ([#60456](https://github.com/kubernetes/kubernetes/pull/60456), [@kow3ns](https://github.com/kow3ns)) - -* Log audit backend can now be configured to perform batching before writing events to disk. ([#60237](https://github.com/kubernetes/kubernetes/pull/60237), [@crassirostris](https://github.com/crassirostris)) - -* New conformance tests added for the Garbage Collector ([#60116](https://github.com/kubernetes/kubernetes/pull/60116), [@jennybuckley](https://github.com/jennybuckley)) - -* Fixes a bug where character devices are not recognized by the kubelet ([#60440](https://github.com/kubernetes/kubernetes/pull/60440), [@andrewsykim](https://github.com/andrewsykim)) - -* StatefulSet in apps/v1 is now included in Conformance Tests. ([#60336](https://github.com/kubernetes/kubernetes/pull/60336), [@enisoc](https://github.com/enisoc)) - -* dockertools: disable memory swap on Linux. ([#59404](https://github.com/kubernetes/kubernetes/pull/59404), [@ohmystack](https://github.com/ohmystack)) - -* Increase timeout of integration tests ([#60458](https://github.com/kubernetes/kubernetes/pull/60458), [@jennybuckley](https://github.com/jennybuckley)) - -* force node name lowercase on static pod name generating ([#59849](https://github.com/kubernetes/kubernetes/pull/59849), [@yue9944882]([https://github.com/yue9944882](https://github.com/yue9944882)) - -* fix device name change issue for azure disk ([#60346](https://github.com/kubernetes/kubernetes/pull/60346), [@andyzhangx](https://github.com/andyzhangx)) - -* Additional changes to iptables kube-proxy backend to improve performance on clusters with very large numbers of services. ([#60306](https://github.com/kubernetes/kubernetes/pull/60306), [@danwinship](https://github.com/danwinship)) - -* add spelling checking script ([#59463](https://github.com/kubernetes/kubernetes/pull/59463), [@dixudx](https://github.com/dixudx)) - -* Use consts as predicate name in handlers ([#59952](https://github.com/kubernetes/kubernetes/pull/59952), [@resouer](https://github.com/resouer)) - -* Fix instanceID for vmss nodes. ([#59857](https://github.com/kubernetes/kubernetes/pull/59857), [@feiskyer](https://github.com/feiskyer)) - -* Increase allowed lag for ssh key sync loop in tunneler to allow for one failure ([#60068](https://github.com/kubernetes/kubernetes/pull/60068), [@wojtek-t](https://github.com/wojtek-t)) - -* Set an upper bound (5 minutes) on how long the Kubelet will wait before exiting when the client cert from disk is missing or invalid. This prevents the Kubelet from waiting forever without attempting to bootstrap a new client credentials. ([#59316](https://github.com/kubernetes/kubernetes/pull/59316), [@smarterclayton](https://github.com/smarterclayton)) - -* Add ipset binary for IPVS to hyperkube docker image ([#57648](https://github.com/kubernetes/kubernetes/pull/57648), [@Fsero](https://github.com/Fsero)) - -* Making sure CSI E2E test runs on a local cluster ([#60017](https://github.com/kubernetes/kubernetes/pull/60017), [@sbezverk](https://github.com/sbezverk)) - -* Fix kubelet PVC stale metrics ([#59170](https://github.com/kubernetes/kubernetes/pull/59170), [@cofyc](https://github.com/cofyc)) - -* Separate current ARM rate limiter into read/write ([#59830](https://github.com/kubernetes/kubernetes/pull/59830), [@khenidak](https://github.com/khenidak)) - -* Improve control over how ARM rate limiter is used within Azure cloud provider, add generic cache for Azure VM/LB/NSG/RouteTable ([#59520](https://github.com/kubernetes/kubernetes/pull/59520), [@feiskyer](https://github.com/feiskyer)) - -* fix typo ([#59619](https://github.com/kubernetes/kubernetes/pull/59619), [@jianliao82](https://github.com/jianliao82)) - -* DaemonSet, Deployment, ReplicaSet, and StatefulSet objects are now persisted in etcd in apps/v1 format ([#58854](https://github.com/kubernetes/kubernetes/pull/58854), [@liggitt](https://github.com/liggitt)) - -* YAMLDecoder Read now tracks rest of buffer on io.ErrShortBuffer ([#58817](https://github.com/kubernetes/kubernetes/pull/58817), [@karlhungus](https://github.com/karlhungus)) - -* Prevent kubelet from getting wedged if initialization of modules returns an error. ([#59020](https://github.com/kubernetes/kubernetes/pull/59020), [@brendandburns](https://github.com/brendandburns)) - -* Fixed a race condition inside kubernetes-worker that would result in a temporary error situation. ([#59005](https://github.com/kubernetes/kubernetes/pull/59005), [@hyperbolic2346](https://github.com/hyperbolic2346)) - -* Fix regression in the CRI: do not add a default hostname on short image names ([#58955](https://github.com/kubernetes/kubernetes/pull/58955), [@runcom](https://github.com/runcom)) - -* use containing API group when resolving shortname from discovery ([#58741](https://github.com/kubernetes/kubernetes/pull/58741), [@dixudx](https://github.com/dixudx)) - -* remove spaces from kubectl describe hpa ([#56331](https://github.com/kubernetes/kubernetes/pull/56331), [@shiywang](https://github.com/shiywang)) - -* fluentd-es addon: multiline stacktraces are now grouped into one entry automatically ([#58063](https://github.com/kubernetes/kubernetes/pull/58063), [@monotek](https://github.com/monotek)) - -* Default scheduler code is moved out of the plugin directory. ([#57852](https://github.com/kubernetes/kubernetes/pull/57852), [@misterikkit](https://github.com/misterikkit)) - -* CDK nginx ingress is now handled via a daemon set. ([#57530](https://github.com/kubernetes/kubernetes/pull/57530), [@hyperbolic2346](https://github.com/hyperbolic2346)) - -* Move local PV negative scheduling tests to integration ([#57570](https://github.com/kubernetes/kubernetes/pull/57570), [@sbezverk](https://github.com/sbezverk)) - -* Only create Privileged PSP binding during e2e tests if RBAC is enabled. ([#56382](https://github.com/kubernetes/kubernetes/pull/56382), [@mikkeloscar](https://github.com/mikkeloscar)) - -* ignore nonexistent ns net file error when deleting container network in case a retry ([#57697](https://github.com/kubernetes/kubernetes/pull/57697), [@dixudx](https://github.com/dixudx)) - -* Use old dns-ip mechanism with older cdk-addons. ([#57403](https://github.com/kubernetes/kubernetes/pull/57403), [@wwwtyro](https://github.com/wwwtyro)) - -* Retry 'connection refused' errors when setting up clusters on GCE. ([#57394](https://github.com/kubernetes/kubernetes/pull/57394), [@mborsz](https://github.com/mborsz)) - -* YAMLDecoder Read now returns the number of bytes read ([#57000](https://github.com/kubernetes/kubernetes/pull/57000), [@sel](https://github.com/sel)) - -* Drop hacks used for Mesos integration that was already removed from main kubernetes repository ([#56754](https://github.com/kubernetes/kubernetes/pull/56754), [@dims](https://github.com/dims)) - -* Compare correct file names for volume detach operation ([#57053](https://github.com/kubernetes/kubernetes/pull/57053), [@prashima](https://github.com/prashima)) - -* Fixed documentation typo in IPVS README. ([#56578](https://github.com/kubernetes/kubernetes/pull/56578), [@shift](https://github.com/shift)) - -* The ConfigOK node condition has been renamed to KubeletConfigOk. ([#59905](https://github.com/kubernetes/kubernetes/pull/59905), [@mtaufen](https://github.com/mtaufen)) - -* Adding pkg/kubelet/apis/deviceplugin/v1beta1 API. ([#59588](https://github.com/kubernetes/kubernetes/pull/59588), [@jiayingz](https://github.com/jiayingz)) - -* Fixes volume predicate handler for equiv class ([#59335](https://github.com/kubernetes/kubernetes/pull/59335), [@resouer](https://github.com/resouer)) - -* Bugfix: vSphere Cloud Provider (VCP) does not need any special service account anymore. ([#59440](https://github.com/kubernetes/kubernetes/pull/59440), [@rohitjogvmw](https://github.com/rohitjogvmw)) - -* fix the error prone account creation method of blob disk ([#59739](https://github.com/kubernetes/kubernetes/pull/59739), [@andyzhangx](https://github.com/andyzhangx)) - -* Updated kubernetes-worker to request new security tokens when the aws cloud provider changes the registered node name. ([#59730](https://github.com/kubernetes/kubernetes/pull/59730), [@hyperbolic2346](https://github.com/hyperbolic2346)) - -* Pod priority can be specified ins PodSpec even when the feature is disabled, but it will be effective only when the feature is enabled. ([#59291](https://github.com/kubernetes/kubernetes/pull/59291), [@bsalamat](https://github.com/bsalamat))* Add generic cache for Azure VMSS ([#59652](https://github.com/kubernetes/kubernetes/pull/59652), [@feiskyer](https://github.com/feiskyer)) - -* fix the create azure file pvc failure if there is no storage account in current resource group ([#56557](https://github.com/kubernetes/kubernetes/pull/56557), [@andyzhangx](https://github.com/andyzhangx)) - -* Implement envelope service with gRPC, so that KMS providers can be pulled out from API server. ([#55684](https://github.com/kubernetes/kubernetes/pull/55684), [@wu-qiang](https://github.com/wu-qiang)) - -* Enable golint for `pkg/scheduler` and fix the golint errors in it. ([#58437](https://github.com/kubernetes/kubernetes/pull/58437), [@tossmilestone](https://github.com/tossmilestone)) - -* Ensure euqiv hash calculation is per schedule ([#59245](https://github.com/kubernetes/kubernetes/pull/59245), [@resouer](https://github.com/resouer)) - -* Upped the timeout for apiserver communication in the juju kubernetes-worker charm. ([#59219](https://github.com/kubernetes/kubernetes/pull/59219), [@hyperbolic2346](https://github.com/hyperbolic2346)) - -* kubeadm init: skip checking cri socket in preflight checks ([#58802](https://github.com/kubernetes/kubernetes/pull/58802), [@dixudx](https://github.com/dixudx)) - -* Configurable etcd compaction frequency in GCE ([#59106](https://github.com/kubernetes/kubernetes/pull/59106), [@wojtek-t](https://github.com/wojtek-t)) - -* Fixed a bug which caused the apiserver reboot failure in the presence of malfunctioning webhooks. ([#59073](https://github.com/kubernetes/kubernetes/pull/59073), [@caesarxuchao](https://github.com/caesarxuchao)) - -* GCE: Apiserver uses `InternalIP` as the most preferred kubelet address type by default. ([#59019](https://github.com/kubernetes/kubernetes/pull/59019), [@MrHohn](https://github.com/MrHohn)) - -* CRI: Add a call to reopen log file for a container. ([#58899](https://github.com/kubernetes/kubernetes/pull/58899), [@yujuhong](https://github.com/yujuhong)) - -* The alpha KubeletConfigFile feature gate has been removed, because it was redundant with the Kubelet's --config flag. It is no longer necessary to set this gate to use the flag. The --config flag is still considered alpha. ([#58978](https://github.com/kubernetes/kubernetes/pull/58978), [@mtaufen](https://github.com/mtaufen)) - -* Fixing extra_sans option on master and load balancer. ([#58843](https://github.com/kubernetes/kubernetes/pull/58843), [@hyperbolic2346](https://github.com/hyperbolic2346)) - -* Ensure config has been created before attempting to launch ingress. ([#58756](https://github.com/kubernetes/kubernetes/pull/58756), [@wwwtyro](https://github.com/wwwtyro)) - -* Support metrics API in `kubectl top` commands. ([#56206](https://github.com/kubernetes/kubernetes/pull/56206), [@brancz](https://github.com/brancz)) - -* Bump GCE metadata proxy to v0.1.9 to pick up security fixes. ([#58221](https://github.com/kubernetes/kubernetes/pull/58221), [@ihmccreery](https://github.com/ihmccreery)) - -* "ExternalTrafficLocalOnly" has been removed from feature gate. It has been a GA feature since v1.7. ([#56948](https://github.com/kubernetes/kubernetes/pull/56948), [@MrHohn](https://github.com/MrHohn)) -* feat(fakeclient): push event on watched channel on add/update/delete ([#57504](https://github.com/kubernetes/kubernetes/pull/57504), [@yue9944882](https://github.com/yue9944882)) - -* Fixes a possible deadlock preventing quota from being recalculated ([#58107](https://github.com/kubernetes/kubernetes/pull/58107), [@ironcladlou](https://github.com/ironcladlou)) - -* Bump metadata proxy version to v0.1.7 to pick up security fix. ([#57762](https://github.com/kubernetes/kubernetes/pull/57762), [@ihmccreery](https://github.com/ihmccreery)) - -* The kubelet uses a new release 3.1 of the pause container with the Docker runtime. This version will clean up orphaned zombie processes that it inherits. ([#57517](https://github.com/kubernetes/kubernetes/pull/57517), [@verb](https://github.com/verb)) - -* Add cache for VM get operation in azure cloud provider ([#57432](https://github.com/kubernetes/kubernetes/pull/57432), [@karataliu](https://github.com/karataliu)) - -* Configurable liveness probe initial delays for etcd and kube-apiserver in GCE ([#57749](https://github.com/kubernetes/kubernetes/pull/57749), [@wojtek-t](https://github.com/wojtek-t)) - -* Fixed garbage collection hang ([#57503](https://github.com/kubernetes/kubernetes/pull/57503), [@liggitt](https://github.com/liggitt) - -* Improve scheduler performance of MatchInterPodAffinity predicate. ([#57478](https://github.com/kubernetes/kubernetes/pull/57478), [@misterikkit](https://github.com/misterikkit)) - -* Add the path '/version/' to the `system:discovery` cluster role. ([#57368](https://github.com/kubernetes/kubernetes/pull/57368), [@brendandburns](https://github.com/brendandburns)) - -* adding predicates ordering for the kubernetes scheduler. ([#57168](https://github.com/kubernetes/kubernetes/pull/57168), [@yastij](https://github.com/yastij)) - -* Fix ipvs proxier nodeport ethassumption ([#56685](https://github.com/kubernetes/kubernetes/pull/56685), [@m1093782566](https://github.com/m1093782566)) - -* Fix Heapster configuration and Metrics Server configuration to enable overriding default resource requirements. ([#56965](https://github.com/kubernetes/kubernetes/pull/56965), [@kawych](https://github.com/kawych)) - -* Improved event generation in volume mount, attach, and extend operations ([#56872](https://github.com/kubernetes/kubernetes/pull/56872), [@davidz627](https://github.com/davidz627)) - -* Remove ScrubDNS interface from cloudprovider. ([#56955](https://github.com/kubernetes/kubernetes/pull/56955), [@feiskyer](https://github.com/feiskyer)) - -* Fixed a garbage collection race condition where objects with ownerRefs pointing to cluster-scoped objects could be deleted incorrectly. ([#57211](https://github.com/kubernetes/kubernetes/pull/57211), [@liggitt](https://github.com/liggitt)) - -* api-server provides specific events when unable to repair a service cluster ip or node port ([#54304](https://github.com/kubernetes/kubernetes/pull/54304), [@frodenas](https://github.com/frodenas)) - -* delete useless params containerized ([#56146](https://github.com/kubernetes/kubernetes/pull/56146), [@jiulongzaitian](https://github.com/jiulongzaitian)) - -* dockershim now makes an Image's Labels available in the Info field of ImageStatusResponse ([#58036](https://github.com/kubernetes/kubernetes/pull/58036), [@shlevy](https://github.com/shlevy)) - -* Support GetLabelsForVolume in OpenStack Provider ([#58871](https://github.com/kubernetes/kubernetes/pull/58871), [@edisonxiang](https://github.com/edisonxiang)) - -* Add "nominatedNodeName" field to PodStatus. This field is set when a pod preempts other pods on the node. ([#58990](https://github.com/kubernetes/kubernetes/pull/58990), [@bsalamat](https://github.com/bsalamat))* Fix the PersistentVolumeLabel controller from initializing the PV labels when it's not the next pending initializer. ([#56831](https://github.com/kubernetes/kubernetes/pull/56831), [@jhorwit2](https://github.com/jhorwit2)) - -* Rename StorageProtection to StorageObjectInUseProtection ([#59901](https://github.com/kubernetes/kubernetes/pull/59901), [@NickrenREN](https://github.com/NickrenREN)) - -* Add support for cloud-controller-manager in local-up-cluster.sh ([#57757](https://github.com/kubernetes/kubernetes/pull/57757), [@dims](https://github.com/dims)) - -* GCE: A role and clusterrole will now be provided with GCE/GKE for allowing the cloud-provider to post warning events on all services and watching configmaps in the kube-system namespace. No user action is required. ([#59686](https://github.com/kubernetes/kubernetes/pull/59686), [@nicksardo](https://github.com/nicksardo)) - -* Wait for kubedns to be ready when collecting the cluster IP. ([#57337](https://github.com/kubernetes/kubernetes/pull/57337), [@wwwtyro](https://github.com/wwwtyro)) - -# External Dependencies -* The supported etcd server version is 3.1.12, as compared to 3.0.17 in v1.9 ([#60988](https://github.com/kubernetes/kubernetes/pull/60988)) -* The validated docker versions are the same as for v1.9: 1.11.2 to 1.13.1 and 17.03.x ([ref](https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/system/docker_validator_test.go)) -* The Go version is go1.9.3, as compared to go1.9.2 in v1.9. ([#59012](https://github.com/kubernetes/kubernetes/pull/59012)) -* The minimum supported go is the same as for v1.9: go1.9.1. ([#55301](https://github.com/kubernetes/kubernetes/pull/55301)) -* CNI is the same as v1.9: v0.6.0 ([#51250](https://github.com/kubernetes/kubernetes/pull/51250)) -* CSI is updated to 0.2.0 as compared to 0.1.0 in v1.9. ([#60736](https://github.com/kubernetes/kubernetes/pull/60736)) -* The dashboard add-on has been updated to v1.8.3, as compared to 1.8.0 in v1.9. ([#517326](https://github.com/kubernetes/kubernetes/pull/57326)) -* Heapster has is the same as v1.9: v1.5.0. It will be upgraded in v1.11. ([ref](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/cluster-monitoring/google/heapster-controller.yaml)) -* Cluster Autoscaler has been updated to v1.2.0. ([#60842](https://github.com/kubernetes/kubernetes/pull/60842), [@mwielgus](https://github.com/mwielgus)) -* Updates kube-dns to v1.14.8 ([#57918](https://github.com/kubernetes/kubernetes/pull/57918), [@rramkumar1](https://github.com/rramkumar1)) -* Influxdb is unchanged from v1.9: v1.3.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) -* Grafana is unchanged from v1.9: v4.4.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) -* CAdvisor is v0.29.1 ([#60867](https://github.com/kubernetes/kubernetes/pull/60867)) -* fluentd-gcp-scaler is v0.3.0 ([#61269](https://github.com/kubernetes/kubernetes/pull/61269)) -* Updated fluentd in fluentd-es-image to fluentd v1.1.0 ([#58525](https://github.com/kubernetes/kubernetes/pull/58525), [@monotek](https://github.com/monotek)) -* fluentd-elasticsearch is v2.0.4 ([#58525](https://github.com/kubernetes/kubernetes/pull/58525)) -* Updated fluentd-gcp to v3.0.0. ([#60722](https://github.com/kubernetes/kubernetes/pull/60722)) -* Ingress glbc is v1.0.0 ([#61302](https://github.com/kubernetes/kubernetes/pull/61302)) -* OIDC authentication is coreos/go-oidc v2 ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) -* Updated fluentd-gcp updated to v2.0.11. ([#56927](https://github.com/kubernetes/kubernetes/pull/56927), [@x13n](https://github.com/x13n)) -* Calico has been updated to v2.6.7 ([#59130](https://github.com/kubernetes/kubernetes/pull/59130), [@caseydavenport](https://github.com/caseydavenport)) +# Kubernetes 1.10 Release Notes Draft + +# Major Themes + +### Node + +Many of the changes within SIG-Node revolve around control, with the beta release of [Dynamic Kubelet Configuration](https://github.com/kubernetes/features/issues/281), the ability to make changes to Kubelet without having to bring down the node, and alpha support for the ability to [configure whether containers in a pod should share a single process namespace](https://github.com/kubernetes/features/issues/495), The CRI has also seen some improvements and has been upgraded to v1alpha2, with support for [support for Windows Container Configuration](https://github.com/kubernetes/features/issues/547) and the beta release of the [CRI validation test suite](https://github.com/kubernetes/features/issues/292). + +The Resource Management Working Group graduated three features to beta in the 1.10 release. First, [CPU Manager](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/), which allows users to request exclusive CPU cores. This helps performance in a variety of use-cases, including network latency sensitive applications, as well as applications that benefit from CPU cache residency. Next, [Huge Pages](https://kubernetes.io/docs/tasks/manage-hugepages/scheduling-hugepages/), which allows pods to consume either 2Mi or 1Gi Huge Pages. This benefits applications that consume large amounts of memory. Use of Huge Pages is a common tuning recommendation for databases and JVMs. Finally, the [Device Plugin](https://kubernetes.io/docs/concepts/cluster-administration/device-plugins/) feature, which provides a framework for vendors to advertise their resources to the Kubelet without changing Kubernetes core code. Targeted devices include GPUs, High-performance NICs, FPGAs, InfiniBand, and other similar computing resources that may require vendor specific initialization and setup. + +### Storage + +This release brings additional power to both local storage and Persistent Volumes. [Mount namespace propagation](https://github.com/kubernetes/features/issues/432) allows a container to mount a volume as rslave so that host mounts can be seen inside the container, or as rshared so that mounts made inside a container can be seen by the host. (Note that this is [not supported on Windows](https://github.com/kubernetes/kubernetes/pull/60275).) [Local Ephemeral Storage Capacity Isolation](https://github.com/kubernetes/features/issues/361) makes it possible to set requests and limits on ephemeral local storage resources. In addition, you can now create [Local Persistent Storage](https://github.com/kubernetes/features/issues/121), which enables PersistentVolumes to be created with locally attached disks, and not just network volumes. + +On the Persistent Volumes side, this release [Prevents deletion of Persistent Volume Claims that are used by a pod](https://github.com/kubernetes/features/issues/498) and [Persistent Volumes that are bound to a Persistent Volume Claim](https://github.com/kubernetes/features/issues/499), making it impossible to delete storage that is in use by a pod. + +This release also includes [Topology Aware Volume Scheduling](https://github.com/kubernetes/features/issues/490) for local persistent volumes and beta support for [Out-of-tree CSI Volume Plugins](https://github.com/kubernetes/features/issues/178). + +### Windows + +This release continues to enable more existing features on Windows, including container CPU resources, image filesystem stats, and flexvolumes. It also adds Windows service control manager support and experimental support for Hyper-V isolation of single-container pods. + +### OpenStack + +SIG-OpenStack updated the OpenStack provider to use newer APIs, consolidated community code into one repository, engaged with the Cloud Provider Working Group to have a consistent plan for moving provider code into individual repositories, improved testing of provider code, and strengthened ties with the OpenStack developer community. + +### API-machinery + +[API Aggregation](https://github.com/kubernetes/features/issues/263) has been upgraded to "stable" in Kubernetes 1.10, so you can use it in production. Webhooks have seen numerous improvements, including alpha [Support for self-hosting authorizer webhooks](https://github.com/kubernetes/features/issues/516). + +### Auth + +This release lays the groundwork for new authentication methods, including the alpha release of [External client-go credential providers](https://github.com/kubernetes/features/issues/541) and the [TokenRequest API](https://github.com/kubernetes/features/issues/542). In addition, [Pod Security Policy](https://github.com/kubernetes/features/issues/5) now lets administrators decide what contexts pods can run in, and gives administrators the ability to [limit node access to the API](https://github.com/kubernetes/features/issues/279). + +### Azure + +Kubernetes 1.10 includes alpha [Azure support for cluster-autoscaler](https://github.com/kubernetes/features/issues/514), as well as [support for Azure Virtual Machine Scale Sets](https://github.com/kubernetes/features/issues/513). + +### CLI + +This release includes a change to [kubectl get and describe to work better with extensions](https://github.com/kubernetes/features/issues/515), as the server, rather than the client, returns this information for a smoother user experience. + +### Cluster Lifecycle + +This release includes beta [support for out-of-process and out-of-tree cloud providers](https://github.com/kubernetes/features/issues/88). + +### Network + +In terms of networking, Kubernetes 1.10 is about control. Users now have beta support for the ability to [configure a pod's resolv.conf](https://github.com/kubernetes/features/issues/504), rather than relying on the cluster DNS, as well as [configuring the NodePort IP address](https://github.com/kubernetes/features/issues/539). You can also [switch the default DNS plugin to CoreDNS](https://github.com/kubernetes/features/issues/427) (beta). + +# Before Upgrading + +* In-place node upgrades to this release from versions 1.7.14, 1.8.9, and 1.9.4 are not supported if using subpath volumes with PVCs. Such pods should be drained from the node first. + +* The minimum supported version of Docker is now 1.11; if you are using Docker 1.10 or below, be sure to upgrade Docker before upgrading Kubernetes. ([#57845](https://github.com/kubernetes/kubernetes/pull/57845), [@yujuhong](https://github.com/yujuhong)) + +* The Container Runtime Interface (CRI) version has increased from v1alpha1 to v1alpha2. Runtimes implementing the CRI will need to update to the new version, which configures container namespaces using an enumeration rather than booleans. This change to the alpha API is not backwards compatible; implementations of the CRI such as containerd, will need to update to the new API version. ([#58973](https://github.com/kubernetes/kubernetes/pull/58973), [@verb](https://github.com/verb)) + +* The default Flexvolume plugin directory for COS images on GCE has changed to `/home/kubernetes/flexvolume`, rather than `/etc/srv/kubernetes/kubelet-plugins/volume/exec`. Existing Flexvolume installations in clusters using COS images must be moved to the new directory, and installation processes must be updated with the new path. ([#58171](https://github.com/kubernetes/kubernetes/pull/58171), [@verult](https://github.com/verult)) + +* Default values differ between the Kubelet's componentconfig (config file) API and the Kubelet's command line. Be sure to review the default values when migrating to using a config file. For example, the authz mode is set to "AlwaysAllow" if you rely on the command line, but defaults to the more secure "Webhook" mode if you load config from a file. ([#59666](https://github.com/kubernetes/kubernetes/pull/59666), [@mtaufen](https://github.com/mtaufen)) + +* [GCP kube-up.sh] Variables that were part of kube-env that were only used for kubelet flags are no longer being set, and are being replaced by the more portable mechanism of the kubelet configuration file. The individual variables in the kube-env metadata entry were never meant to be a stable interface and this release note only applies if you are depending on them. ([#60020](https://github.com/kubernetes/kubernetes/pull/60020), [@roberthbailey](https://github.com/roberthbailey)) + +* kube-proxy: feature gates are now specified as a map when provided via a JSON or YAML KubeProxyConfiguration, rather than as a string of key-value pairs. For example: + +KubeProxyConfiguration Before: + +``` +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +**featureGates: "SupportIPVSProxyMode=true"** +``` + +KubeProxyConfiguration After: + +``` +apiVersion: kubeproxy.config.k8s.io/v1alpha1 +kind: KubeProxyConfiguration +**featureGates:** +** SupportIPVSProxyMode: true** +``` + +([#57962](https://github.com/kubernetes/kubernetes/pull/57962), [@xiangpengzhao](https://github.com/xiangpengzhao)) + +* The `kubeletconfig` API group has graduated from alpha to beta, and the name has changed to `kubelet.config.k8s.io`. Please use `kubelet.config.k8s.io/v1beta1`, as `kubeletconfig/v1alpha1` is no longer available. ([#53833](https://github.com/kubernetes/kubernetes/pull/53833), [@mtaufen](https://github.com/mtaufen)) + +* kube-apiserver: the experimental in-tree Keystone password authenticator has been removed in favor of extensions that enable use of Keystone tokens. ([#59492](https://github.com/kubernetes/kubernetes/pull/59492), [@dims](https://github.com/dims)) + +* The udpTimeoutMilliseconds field in the kube-proxy configuration file has been renamed to udpIdleTimeout. Administrators must update their files accordingly. ([#57754](https://github.com/kubernetes/kubernetes/pull/57754), [@ncdc](https://github.com/ncdc)) + +* The kubelet's `--cloud-provider=auto-detect` feature has been removed; make certain to specify the cloud provider. ([#56287](https://github.com/kubernetes/kubernetes/pull/56287), [@stewart-yu](https://github.com/stewart-yu)) + +* kube-apiserver: the OpenID Connect authenticator no longer accepts tokens from the Google v3 token APIs; users must switch to the "https://www.googleapis.com/oauth2/v4/token" endpoint. + +* kube-apiserver: the root /proxy paths have been removed (deprecated since v1.2). Use the /proxy subresources on objects that support HTTP proxying. ([#59884](https://github.com/kubernetes/kubernetes/pull/59884), [@mikedanese](https://github.com/mikedanese)) + +* Eviction thresholds set to 0% or 100% will turn off eviction. ([#59681](https://github.com/kubernetes/kubernetes/pull/59681), [@mtaufen](https://github.com/mtaufen)) + +* CustomResourceDefinitions: OpenAPI v3 validation schemas containing `$ref`references are no longer permitted. Before upgrading, ensure CRD definitions do not include those `$ref` fields. ([#58438](https://github.com/kubernetes/kubernetes/pull/58438), [@carlory](https://github.com/carlory)) + +* Webhooks now do not skip cluster-scoped resources. Before upgrading your Kubernetes clusters, double check whether you have configured webhooks for cluster-scoped objects (e.g., nodes, persistentVolume), as these webhooks will start to take effect. Delete/modify the configs if that's not desirable. ([#58185](https://github.com/kubernetes/kubernetes/pull/58185), [@caesarxuchao](https://github.com/caesarxuchao)) + +* Using kubectl gcp auth plugin with a Google Service Account to authenticate to a cluster now additionally requests a token with the "userinfo.email" scope. This way, users can write ClusterRoleBindings/RoleBindings with the email address of the service account directly. (This is a breaking change if the numeric uniqueIDs of the Google service accounts were being used in RBAC role bindings. The behavior can be overridden by explicitly specifying the scope values as comma-separated string in the "users[*].config.scopes" field in the KUBECONFIG file.) This way, users can now set a Google Service Account JSON key in the GOOGLE_APPLICATION_CREDENTIALS environment variable, craft a kubeconfig file with GKE master IP+CA cert, and authenticate to GKE in headless mode without requiring gcloud CLI. ([#58141](https://github.com/kubernetes/kubernetes/pull/58141), [@ahmetb](https://github.com/ahmetb)) + +* kubectl port-forward no longer supports the deprecated -p <pod-name> flag; the flag itself is unnecessary and should be replaced by just the `<pod-name>`. ([#59705](https://github.com/kubernetes/kubernetes/pull/59705), [@phsiao](https://github.com/phsiao)) + +* Removed deprecated --require-kubeconfig flag, removed default --kubeconfig value (([#58367](https://github.com/kubernetes/kubernetes/pull/58367), [@zhangxiaoyu-zidif](https://github.com/zhangxiaoyu-zidif)) + +* The public-address-override, address, and port flags have been removed and replaced by bind-address, insecure-bind-address, and insecure-port, respectively. They are marked as deprecated in [#36604](https://github.com/kubernetes/kubernetes/pull/36604), which is more than a year ago. ([#59018](https://github.com/kubernetes/kubernetes/pull/59018), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) + +* The alpha `--init-config-dir` flag has been removed. Instead, use the `--config` flag to reference a kubelet configuration file directly. ([#57624](https://github.com/kubernetes/kubernetes/pull/57624), [@mtaufen](https://github.com/mtaufen)) + +* Removed deprecated and unmaintained salt support. kubernetes-salt.tar.gz will no longer be published in the release tarball. ([#58248](https://github.com/kubernetes/kubernetes/pull/58248), [@mikedanese](https://github.com/mikedanese)) + +* The deprecated –mode switch for GCE has been removed.([#61203](https://github.com/kubernetes/kubernetes/pull/61203)) + +* The word “manifest” has been expunged from the Kubelet API. ([#60314](https://github.com/kubernetes/kubernetes/pull/60314)) + +* [https://github.com/kubernetes/kubernetes/issues/49213](https://github.com/kubernetes/kubernetes/issues/49213) sig-cluster-lifecycle has decided to phase out the cluster/ directory over the next couple of releases in favor of deployment automations maintained outside of the core repo and outside of kubernetes orgs. [@kubernetes/sig-cluster-lifecycle-misc](https://github.com/orgs/kubernetes/teams/sig-cluster-lifecycle-misc)) + + * Remove deprecated ContainerVM support from GCE kube-up. ([#58247](https://github.com/kubernetes/kubernetes/pull/58247), [@mikedanese](https://github.com/mikedanese)) + + * Remove deprecated kube-push.sh functionality. ([#58246](https://github.com/kubernetes/kubernetes/pull/58246), [@mikedanese](https://github.com/mikedanese)) + + * Remove deprecated container-linux support in gce kube-up.sh. ([#58098](https://github.com/kubernetes/kubernetes/pull/58098), [@mikedanese](https://github.com/mikedanese)) + + * Remove deprecated and unmaintained photon-controller kube-up.sh. ([#58096](https://github.com/kubernetes/kubernetes/pull/58096), [@mikedanese](https://github.com/mikedanese)) + + * Remove deprecated and unmaintained libvirt-coreos kube-up.sh. ([#58023](https://github.com/kubernetes/kubernetes/pull/58023), [@mikedanese](https://github.com/mikedanese)) + + * Remove deprecated and unmaintained windows installer. ([#58020](https://github.com/kubernetes/kubernetes/pull/58020), [@mikedanese](https://github.com/mikedanese)) + + * Remove deprecated and unmaintained openstack-heat kube-up.sh. ([#58021](https://github.com/kubernetes/kubernetes/pull/58021), [@mikedanese](https://github.com/mikedanese)) + + * Remove deprecated vagrant kube-up.sh. ([#58118](https://github.com/kubernetes/kubernetes/pull/58118),[@roberthbailey](https://github.com/roberthbailey)) + +* The DaemonSet controller, its integration tests, and its e2e tests, have been updated to use the apps/v1 API. Users should, but are not yet required to, update their scripts accordingly. ([#59883](https://github.com/kubernetes/kubernetes/pull/59883), [@kow3ns](https://github.com/kow3ns)) + +* MountPropagation feature is now beta. As a consequence, all volume mounts in containers are now `rslave` on Linux by default. To make this default work in all Linux environments the entire mount tree should be marked as shareable, e.g. via `mount --make-rshared /`. All Linux distributions that use systemd already have the root directory mounted as rshared and hence they need not do anything. In Linux environments without systemd we recommend running `mount --make-rshared /` during boot before docker is started, ([@jsafrane](https://github.com/jsafrane)) + +# Known Issues + +* Use of subPath module with hostPath volumes can cause issues during reconstruction ([#61446](https://github.com/kubernetes/kubernetes/issues/61446)) and with containerized kubelets ([#61456](https://github.com/kubernetes/kubernetes/issues/61456)). The workaround for this issue is to specify the complete path in the hostPath volume. Use of subPathmounts nested within atomic writer volumes (configmap, secret, downwardAPI, projected) does not work ([#61545](https://github.com/kubernetes/kubernetes/issues/61545)), and socket files cannot be loaded from a subPath ([#62377](https://github.com/kubernetes/kubernetes/issues/61377)). Work on these issues is ongoing. + +* Kubeadm is currently omitting etcd certificates in a self-hosted deployment; this will be fixed in a point relelase. ([#61322](https://github.com/kubernetes/kubernetes/issues/61322)) + +* Some users, especially those with very large clusters, may see higher memory usage by the kube-controller-manager in 1.10. ([#61041](https://github.com/kubernetes/kubernetes/issues/61041)) + +# Deprecations + +* etcd2 as a backend is deprecated and support will be removed in Kubernetes 1.13. + +* VolumeScheduling and LocalPersistentVolume features are beta and enabled by default. The PersistentVolume NodeAffinity alpha annotation is deprecated and will be removed in a future release. ([#59391](https://github.com/kubernetes/kubernetes/pull/59391), [@msau42](https://github.com/msau42)) + +* The alpha Accelerators feature gate is deprecated and will be removed in v1.11. Please use device plugins ([https://github.com/kubernetes/features/issues/368](https://github.com/kubernetes/features/issues/368)) instead. They can be enabled using the DevicePlugins feature gate. ([#57384](https://github.com/kubernetes/kubernetes/pull/57384), [@mindprince](https://github.com/mindprince)) + +* The ability to use kubectl scale jobs is deprecated. All other scale operations remain in place, but the ability to scale jobs will be removed in a future release. ([#60139](https://github.com/kubernetes/kubernetes/pull/60139), [@soltysh](https://github.com/soltysh)) + +* Flags that can be set via the [Kubelet's --config file](https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/) are now deprecated in favor of the file. ([#60148](https://github.com/kubernetes/kubernetes/pull/60148), [@mtaufen](https://github.com/mtaufen)) + +* `--show-all` (which only affected pods and only for human readable/non-API printers) is now defaulted to true and deprecated. The flag determines whether pods in a terminal state are displayed. It will be inert in 1.11 and removed in a future release. ([#60210](https://github.com/kubernetes/kubernetes/pull/60210), [@deads2k](https://github.com/deads2k)) + +* The ability to use the insecure HTTP port of kube-controller-manager and cloud-controller-manager has been deprecated, and will be removed in a future release. Use `--secure-port` and `--bind-address` instead. ([#59582](https://github.com/kubernetes/kubernetes/pull/59582), [@sttts](https://github.com/sttts)) + +* The ability to use the insecure flags `--insecure-bind-address`, `--insecure-port` in the apiserver has been deprecated and will be removed in a future release. Use `--secure-port` and `--bind-address` instead. ([#59018](https://github.com/kubernetes/kubernetes/pull/59018), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) + +* The recycling reclaim policy has been deprecated. Users should use dynamic provisioning instead. ([#59063](https://github.com/kubernetes/kubernetes/pull/59063), [@ayushpateria](https://github.com/ayushpateria)) + +* kube-apiserver flag --tls-ca-file has had no effect for some time. It is now deprecated and slated for removal in 1.11. If you are specifying this flag, you must remove it from your launch config before upgrading to 1.11. ([#58968](https://github.com/kubernetes/kubernetes/pull/58968), [@deads2k](https://github.com/deads2k)) + +* The `PodSecurityPolicy` API has been moved to the `policy/v1beta1` API group. The `PodSecurityPolicy` API in the `extensions/v1beta1` API group is deprecated and will be removed in a future release. Authorizations for using pod security policy resources should change to reference the `policy` API group after upgrading to 1.11. ([#54933](https://github.com/kubernetes/kubernetes/pull/54933), [@php-coder](https://github.com/php-coder)) + +* Add `--enable-admission-plugin` `--disable-admission-plugin` flags and deprecate `--admission-control`. When using the separate flag, the order in which they're specified doesn't matter. ([#58123](https://github.com/kubernetes/kubernetes/pull/58123), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) + +* The kubelet --docker-disable-shared-pid flag, which runs docker containers with a process namespace that is shared between all containers in a pod, is now deprecated and will be removed in a future release. It is replaced by `v1.Pod.Spec.ShareProcessNamespace`, which configures this behavior. This field is alpha and can be enabled with --feature-gates=PodShareProcessNamespace=true. ([#58093](https://github.com/kubernetes/kubernetes/pull/58093), [@verb](https://github.com/verb)) + +* The kubelet's cadvisor port has been deprecated. The default will change to 0 (disabled) in 1.12, and the cadvisor port will be removed entirely in 1.13. ([#59827](https://github.com/kubernetes/kubernetes/pull/59827), [@dashpole](https://github.com/dashpole)) + +* rktnetes has been deprecated in favor of rktlet. Please see [https://github.com/kubernetes-incubator/rktlet](https://github.com/kubernetes-incubator/rktlet) for more information. ([#58418](https://github.com/kubernetes/kubernetes/pull/58418), [@yujuhong](https://github.com/yujuhong)) + +* The Kubelet now explicitly registers all of its command-line flags with an internal flagset, which prevents flags from third party libraries from unintentionally leaking into the Kubelet's command-line API. Many unintentionally leaked flags are now marked deprecated, so that users have a chance to migrate away from them before they are removed. In addition, one previously leaked flag, --cloud-provider-gce-lb-src-cidrs, has been entirely removed from the Kubelet's command-line API, because it is irrelevant to Kubelet operation. The deprecated flags are: + + * --application_metrics_count_limit + * --boot_id_file + * --container_hints + * --containerd + * --docker + * --docker_env_metadata_whitelist + * --docker_only + * --docker-tls + * --docker-tls-ca + * --docker-tls-cert + * --docker-tls-key + * --enable_load_reader + * --event_storage_age_limit + * --event_storage_event_limit + * --global_housekeeping_interval + * --google-json-key + * --log_cadvisor_usage + * --machine_id_file + * --storage_driver_user + * --storage_driver_password + * --storage_driver_host + * --storage_driver_db + * --storage_driver_table + * --storage_driver_secure + * --storage_driver_buffer_duration + +([#57613](https://github.com/kubernetes/kubernetes/pull/57613), [@mtaufen](https://github.com/mtaufen)) + +* The boostrapped RBAC role and rolebinding for the `cloud-provider` service account is now deprecated. If you're currently using this service account, you must create and apply your own [RBAC policy](https://kubernetes.io/docs/admin/authorization/rbac/) for new clusters. ([#59949](https://github.com/kubernetes/kubernetes/pull/59949), [@nicksardo](https://github.com/nicksardo)) + +* Format-separated endpoints for the OpenAPI spec, such as /swagger.json, /swagger-2.0.0.0.json, and so on, have been deprecated. The old endpoints will remain in 1.10, 1.11, 1.12 and 1.13, and get removed in 1.14. Please use single `/openapi/v2` endpoint with the appropriate Accept: header instead. For example: + +<table> + <tr> + <td>previous</td> + <td>now</td> + </tr> + <tr> + <td>GET /swagger.json</td> + <td>GET /openapi/v2 +Accept: application/json</td> + </tr> + <tr> + <td>GET /swagger-2.0.0.pb-v1</td> + <td>GET /openapi/v2 +Accept: application/com.github.proto-openapi.spec.v2@v1.0+protobuf</td> + </tr> + <tr> + <td>GET /swagger-2.0.0.pb-v1.gz</td> + <td>GET /openapi/v2 +Accept: application/com.github.proto-openapi.spec.v2@v1.0+protobuf Accept-Encoding: gzip</td> + </tr> +</table> + + ([#59293](https://github.com/kubernetes/kubernetes/pull/59293), [@roycaihw](https://github.com/roycaihw)) + +# Other Notable Changes + +### Apps + +* Updated defaultbackend image to 1.4 and deployment apiVersion to apps/v1. Users should concentrate on updating scripts to the new version. ([#57866](https://github.com/kubernetes/kubernetes/pull/57866), [@zouyee](https://github.com/zouyee)) + +* Fix StatefulSet to work correctly with set-based selectors. ([#59365](https://github.com/kubernetes/kubernetes/pull/59365), [@ayushpateria](https://github.com/ayushpateria)) + +* Fixes a case when Deployment with recreate strategy could get stuck on old failed Pod. ([#60301](https://github.com/kubernetes/kubernetes/pull/60301), [@tnozicka](https://github.com/tnozicka)) + +* ConfigMap objects now support binary data via a new `binaryData` field. When using `kubectl create configmap --from-file`, files containing non-UTF8 data will be placed in this new field in order to preserve the non-UTF8 data. Note that kubectl's `--append-hash` feature doesn't take `binaryData` into account. Use of this feature requires 1.10+ apiserver and kubelets. ([#57938](https://github.com/kubernetes/kubernetes/pull/57938), [@dims](https://github.com/dims)) + +### AWS + +* Add AWS cloud provider option to use an assumed IAM role. For example, this allows running Controller Manager in a account separate from the worker nodes, but still allows all resources created to interact with the workers. ELBs created would be in the same account as the worker nodes for instance.([#59668](https://github.com/kubernetes/kubernetes/pull/59668), [@brycecarman](https://github.com/brycecarman)) + +* AWS EBS volume plugin now includes block and volumeMode support. ([#58625](https://github.com/kubernetes/kubernetes/pull/58625), [@screeley44](https://github.com/screeley44)) + +* On AWS kubelet returns an error when started under conditions that do not allow it to work (AWS has not yet tagged the instance), rather than failing silently. ([#60125](https://github.com/kubernetes/kubernetes/pull/60125), [@vainu-arto](https://github.com/vainu-arto)) + +* AWS Security Groups created for ELBs will now be tagged with the same additional tags as the ELB; that is, the tags specified by the "service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags" annotation. This is useful for identifying orphaned resources. ([#58767](https://github.com/kubernetes/kubernetes/pull/58767), [@2rs2ts](https://github.com/2rs2ts)) + +* AWS Network Load Balancers will now be deleted properly, including security group rules. Fixes [#57568](https://github.com/kubernetes/kubernetes/pull/57568) ([#57569](https://github.com/kubernetes/kubernetes/pull/57569), [@micahhausler](https://github.com/micahhausler)) + +* Time for attach/detach retry operations has been decreased from 10-12s to 2-6s ([#56974](https://github.com/kubernetes/kubernetes/pull/56974), [@gnufied](https://github.com/gnufied)) + +### Auth + +* Contexts must be named in kubeconfigs. ([#56769](https://github.com/kubernetes/kubernetes/pull/56769), [@dixudx](https://github.com/dixudx)) + +* vSphere operations will no longer fail due to authentication errors. ([#57978](https://github.com/kubernetes/kubernetes/pull/57978), [@prashima](https://github.com/prashima)) + +* This removes the cloud-provider role and role binding from the rbac boostrapper and replaces it with a policy applied via addon mgr. This also creates a new clusterrole allowing the service account to create events for any namespace. + +* client-go: alpha support for out-of-tree exec-based credential providers. For example, a cloud provider could create their own authentication system rather than using the standard authentication provided with Kubernetes. ([#59495](https://github.com/kubernetes/kubernetes/pull/59495), [@ericchiang](https://github.com/ericchiang)) + +* The node authorizer now allows nodes to request service account tokens for the service accounts of pods running on them. This allows agents using the node identity to take actions on behalf of local pods. ([#55019](https://github.com/kubernetes/kubernetes/pull/55019), [@mikedanese](https://github.com/mikedanese)) + +* kube-apiserver: the OpenID Connect authenticator can now verify ID Tokens signed with JOSE algorithms other than RS256 through the --oidc-signing-algs flag. ([#58544](https://github.com/kubernetes/kubernetes/pull/58544), [@ericchiang](https://github.com/ericchiang)) + +* Requests with invalid credentials no longer match audit policy rules where users or groups are set, correcting a problem where authorized requests were getting through. ([#59398](https://github.com/kubernetes/kubernetes/pull/59398), [@CaoShuFeng](https://github.com/CaoShuFeng)) + +* The Stackdriver Metadata Agent addon now includes RBAC manifests, enabling it to watch nodes and pods. ([#57455](https://github.com/kubernetes/kubernetes/pull/57455), [@kawych](https://github.com/kawych)) + +* Fix RBAC role for certificate controller to allow cleaning up of Certificate Signing Requests that are Approved and issued or Denied. ([#59375](https://github.com/kubernetes/kubernetes/pull/59375), [@mikedanese](https://github.com/mikedanese)) + +* kube-apiserver: Use of the `--admission-control-config-file` with a file containing an AdmissionConfiguration apiserver.k8s.io/v1alpha1 config object no longer leads to an error when launching kube-apiserver. ([#58439]([https://github.com/kubernetes/kubernetes/pull/58439](https://github.com/kubernetes/kubernetes/pull/58439)) [@liggitt](https://github.com/liggitt)) + +* Default enabled admission plugins are now `NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota`. Please note that if you previously had not set the `--admission-control` flag, your cluster behavior may change (to be more standard). ([#58684](https://github.com/kubernetes/kubernetes/pull/58684), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) + +* Encryption key and encryption provider rotation now works properly. ([#58375](https://github.com/kubernetes/kubernetes/pull/58375), [@liggitt](https://github.com/liggitt) + +* RBAC: The system:kubelet-api-admin cluster role can be used to grant full access to the kubelet API so integrators can grant this role to the --kubelet-client-certificate credential given to the apiserver. ([#57128](https://github.com/kubernetes/kubernetes/pull/57128), [@liggitt](https://github.com/liggitt)) + +* DenyEscalatingExec admission controller now checks psp HostNetwork as well as hostIPC and hostPID. hostNetwork is also checked to deny exec /attach. ([#56839](https://github.com/kubernetes/kubernetes/pull/56839), [@hzxuzhonghu]=(https://github.com/hzxuzhonghu)) + +* When using Role-Based Access Control, the "admin", "edit", and "view" roles now have the expected permissions on NetworkPolicy resources, rather than reserving those permissions to only cluster-admin. ([#56650](https://github.com/kubernetes/kubernetes/pull/56650), [@danwinship](https://github.com/danwinship)) + +* Added docker-logins config to kubernetes-worker charm. ([#56217](https://github.com/kubernetes/kubernetes/pull/56217), [@Cynerva](https://github.com/Cynerva)) + +* Add ability to control primary GID of containers through Pod Spec at Pod level and Per Container SecurityContext level. ([#52077](https://github.com/kubernetes/kubernetes/pull/52077)) + +### CLI + +* Use structured generator for kubectl autoscale. ([#55913](https://github.com/kubernetes/kubernetes/pull/55913), [@wackxu](https://github.com/wackxu)) + +* Allow kubectl to set image|env on a cronjob ([#57742](https://github.com/kubernetes/kubernetes/pull/57742), [@soltysh](https://github.com/soltysh)) + +* Fixed crash in kubectl cp when path has multiple leading slashes. ([#58144](https://github.com/kubernetes/kubernetes/pull/58144), [@tomerf](https://github.com/tomerf)) + +* kubectl port-forward now allows using resource name (e.g., deployment/www) to select a matching pod, as well as the use of --pod-running-timeout to wait until at least one pod is running. ([#59705](https://github.com/kubernetes/kubernetes/pull/59705), [@phsiao](https://github.com/phsiao)) + +* 'cj' has been added as a shortname for CronJobs, as in `kubectl get cj` ([#59499](https://github.com/kubernetes/kubernetes/pull/59499), [@soltysh](https://github.com/soltysh)) + +* `crds` has been added as a shortname for CustomResourceDefinition, as in `kubectl get crds` ([#59061](https://github.com/kubernetes/kubernetes/pull/59061), [@nikhita](https://github.com/nikhita)) + +* Fix kubectl explain for resources not existing in default version of API group, such as `batch/v1, Kind=CronJob`. ([#58753](https://github.com/kubernetes/kubernetes/pull/58753), [@soltysh](https://github.com/soltysh)) + +* Added the ability to select pods in a chosen node to be drained based on given pod label-selector. ([#56864](https://github.com/kubernetes/kubernetes/pull/56864), [@juanvallejo](https://github.com/juanvallejo)) + +* Kubectl explain now prints out the Kind and API version of the resource being explained. ([#55689](https://github.com/kubernetes/kubernetes/pull/55689), [@luksa](https://github.com/luksa)) + +### Cluster Lifecycle + +* The default Kubernetes version for kubeadm is now 1.10. ([#61127](https://github.com/kubernetes/kubernetes/pull/61127), [@timothysc](https://github.com/timothysc)) + +* The minimum Kubernetes version in kubeadm is now v1.9.0. ([#57233](https://github.com/kubernetes/kubernetes/pull/57233), [@xiangpengzhao](https://github.com/xiangpengzhao)) + +* Fixes a bug in Heapster deployment for google sink. ([#57902](https://github.com/kubernetes/kubernetes/pull/57902), [@kawych](https://github.com/kawych)) + +* On cluster provision or upgrade, kubeadm now generates certs and secures all connections to the etcd static-pod with mTLS. This includes the etcd serving cert, the etcd peer cert, and the apiserver etcd client cert. Flags and hostMounts are added to the etcd and apiserver static-pods to load these certs. For connections to etcd, https is now used in favor of http. ([#57415](https://github.com/kubernetes/kubernetes/pull/57415), [@stealthybox](https://github.com/stealthybox) These certs are also generated on upgrade. ([#60385](https://github.com/kubernetes/kubernetes/pull/60385), [@stealthybox](https://github.com/stealthybox)) + +* Demoted controlplane passthrough flags apiserver-extra-args, controller-manager-extra-args, scheduler-extra-args to alpha flags ([#59882](https://github.com/kubernetes/kubernetes/pull/59882), [@kris-nova](https://github.com/kris-nova)) + +* The new flag `--apiserver-advertise-dns-address` is used in the node's kubelet.confg to point to the API server, allowing users to define a DNS entry instead of an IP address. ([#59288](https://github.com/kubernetes/kubernetes/pull/59288), [@stevesloka](https://github.com/stevesloka)) + +* MasterConfiguration manifiest The criSocket flag is now usable within the `MasterConfiguration` and `NodeConfiguration` manifest files that exist for configuring kubeadm. Before it only existed as a command line flag and was not able to be configured when using the `--config` flag and the manifest files. ([#59057](https://github.com/kubernetes/kubernetes/pull/59057)([#59292](https://github.com/kubernetes/kubernetes/pull/59292), [@JordanFaust](https://github.com/JordanFaust)) + +* `kubeadm init` can now omit the tainting of the master node if configured to do so in `kubeadm.yaml` using `noTaintMaster: true`. For example, uses can create a file with the content: + +``` +apiVersion: [kubeadm.k8s.io/v1alpha1](http://kubeadm.k8s.io/v1alpha1) +kind: MasterConfiguration +kubernetesVersion: v1.9.1 +noTaintMaster: true +``` + +And point to the file using the --config flag, as in + +`kubeadm init --config /etc/kubeadm/kubeadm.yaml` + +([#55479](https://github.com/kubernetes/kubernetes/pull/55479), [@ijc](https://github.com/ijc)) + +* kubeadm: New "imagePullPolicy" option in the init configuration file, that gets forwarded to kubelet static pods to control pull policy for etcd and control plane images. This option allows for precise image pull policy specification for master nodes and thus for more tight control over images. It is useful in CI environments and in environments, where the user has total control over master VM templates (thus, the master VM templates can be preloaded with the required Docker images for the control plane services). ([#58960](https://github.com/kubernetes/kubernetes/pull/58960), [@rosti](https://github.com/rosti)) + +* Fixed issue with charm upgrades resulting in an error state. ([#59064](https://github.com/kubernetes/kubernetes/pull/59064), [@hyperbolic2346](https://github.com/hyperbolic2346)) + +* kube-apiserver --advertise-address is now set using downward API for self-hosted Kubernetes with kubeadm. ([#56084](https://github.com/kubernetes/kubernetes/pull/56084), [@andrewsykim](https://github.com/andrewsykim)) + +* When using client or server certificate rotation, the Kubelet will no longer wait until the initial rotation succeeds or fails before starting static pods. This makes running self-hosted masters with rotation more predictable. ([#58930](https://github.com/kubernetes/kubernetes/pull/58930), [@smarterclayton](https://github.com/smarterclayton)) + +* Kubeadm no longer throws an error for the --cloud-provider=external flag. ([#58259](https://github.com/kubernetes/kubernetes/pull/58259), [@dims](https://github.com/dims)) + +* Added support for network spaces in the kubeapi-load-balancer charm. ([#58708](https://github.com/kubernetes/kubernetes/pull/58708), [@hyperbolic2346](https://github.com/hyperbolic2346)) + +* Added support for network spaces in the kubernetes-master charm. ([#58704](https://github.com/kubernetes/kubernetes/pull/58704), [@hyperbolic2346](https://github.com/hyperbolic2346)) + +* Added support for network spaces in the kubernetes-worker charm. ([#58523](https://github.com/kubernetes/kubernetes/pull/58523), [@hyperbolic2346](https://github.com/hyperbolic2346)) + +* Added support for changing nginx and default backend images to kubernetes-worker config. ([#58542](https://github.com/kubernetes/kubernetes/pull/58542), [@hyperbolic2346](https://github.com/hyperbolic2346)) + +* kubeadm now accepts `--apiserver-extra-args`, `--controller-manager-extra-args` and `--scheduler-extra-args`, making it possible to override / specify additional flags for control plane components. One good example is to deploy Kubernetes with a different admission-control flag on API server. ([#58080](https://github.com/kubernetes/kubernetes/pull/58080), [@simonferquel](https://github.com/simonferquel)) + +* Alpha Initializers have been removed from kubadm admission control. Kubeadm users who still want to use Initializers can use apiServerExtraArgs through the kubeadm config file to enable it when booting up the cluster. ([#58428](https://github.com/kubernetes/kubernetes/pull/58428), [@dixudx](https://github.com/dixudx)) + +* ValidatingAdmissionWebhook and MutatingAdmissionWebhook are beta, and are enabled in kubeadm by default. ([#58255](https://github.com/kubernetes/kubernetes/pull/58255), [@dixudx](https://github.com/dixudx)) + +* Add proxy_read_timeout flag to kubeapi_load_balancer charm. ([#57926](https://github.com/kubernetes/kubernetes/pull/57926), [@wwwtyro](https://github.com/wwwtyro)) + +* Check for known manifests during preflight instead of only checking for non-empty manifests directory. This makes the preflight checks less heavy-handed by specifically checking for well-known files (kube-apiserver.yaml, kube-controller-manager.yaml, kube-scheduler.yaml, etcd.yaml) in /etc/kubernetes/manifests instead of simply checking for a non-empty directory. ([#57287](https://github.com/kubernetes/kubernetes/pull/57287), [@mattkelly](https://github.com/mattkelly)) + +* PVC Protection alpha feature was renamed to Storage Protection. The Storage Protection feature is beta. ([#59052](https://github.com/kubernetes/kubernetes/pull/59052), [@pospispa](https://github.com/pospispa)) + +* iSCSI sessions managed by kubernetes will now explicitly set startup.mode to 'manual' to prevent automatic login after node failure recovery. This is the default open-iscsi mode, so this change will only impact users who have changed their startup.mode to be 'automatic' in /etc/iscsi/iscsid.conf. ([#57475](https://github.com/kubernetes/kubernetes/pull/57475), [@stmcginnis](https://github.com/stmcginnis)) + +* The IPVS feature gateway is now enabled by default in kubeadm, which makes the --feature-gates=SupportIPVSProxyMode=true obsolete, and it is no longer supported. ([#60540](https://github.com/kubernetes/kubernetes/pull/60540), [@m1093782566](https://github.com/m1093782566)) + +### GCP + +* ingress-gce image in glbc.manifest updated to 1.0.0 ([#61302](https://github.com/kubernetes/kubernetes/pull/61302), [@rramkumar1](https://github.com/rramkumar1)) + +### Instrumentation + +* For advanced auditing, audit policy supports subresources wildcard matching, such as "resource/", "/subresource","*". ([#55306](https://github.com/kubernetes/kubernetes/pull/55306), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) + +* [Auditing](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/) is now enabled behind a featureGate in kubeadm. A user can supply their own audit policy with configuration option as well as a place for the audit logs to live. If no policy is supplied a default policy will be provided. The default policy will log all Metadata level policy logs. It is the example provided in the documentation. ([#59067](https://github.com/kubernetes/kubernetes/pull/59067), [@chuckha](https://github.com/chuckha)) + +* Reduce Metrics Server memory requirement from 140Mi + 4Mi per node to 40Mi + 4Mi per node. ([#58391](https://github.com/kubernetes/kubernetes/pull/58391), [@kawych](https://github.com/kawych)) + +* Annotations is added to advanced audit api. ([#58806](https://github.com/kubernetes/kubernetes/pull/58806), [@CaoShuFeng](https://github.com/CaoShuFeng)) + +* Reorganized iptables rules to fix a performance regression on clusters with thousands of services. ([#56164](https://github.com/kubernetes/kubernetes/pull/56164), [@danwinship](https://github.com/danwinship)) + +* Container runtime daemon (e.g. dockerd) logs in GCE cluster will be uploaded to stackdriver and elasticsearch with tag `container-runtime`. ([#59103](https://github.com/kubernetes/kubernetes/pull/59103), [@Random-Liu](https://github.com/Random-Liu)) + +* Enable prometheus apiserver metrics for custom resources. ([#57682](https://github.com/kubernetes/kubernetes/pull/57682), [@nikhita](https://github.com/nikhita)) + +* Add apiserver metric for number of requests dropped because of inflight limit, making it easier to figure out on which dimension the master is overloaded. ([#58340](https://github.com/kubernetes/kubernetes/pull/58340), [@gmarek](https://github.com/gmarek)) + +* The Metrics Server now exposes metrics via the /metric endpoint. These metrics are in the prometheus format. ([#57456](https://github.com/kubernetes/kubernetes/pull/57456), [@kawych](https://github.com/kawych)) + +* Reduced the CPU and memory requests for the Metrics Server Nanny sidecar container to free up unused resources. ([#57252](https://github.com/kubernetes/kubernetes/pull/57252), [@kawych](https://github.com/kawych)) + +* Enabled log rotation for load balancer's api logs to prevent running out of disk space. ([#56979](https://github.com/kubernetes/kubernetes/pull/56979), [@hyperbolic2346](https://github.com/hyperbolic2346)) + +* Fixed `etcd-version-monitor` to backward compatibly support etcd 3.1 [go-grpc-prometheus](https://github.com/grpc-ecosystem/go-grpc-prometheus) metrics format. ([#56871](https://github.com/kubernetes/kubernetes/pull/56871), [@jpbetz](https://github.com/jpbetz)) + +### Node + +* Summary of Container Runtime changes: + * [beta] [cri-tools](https://github.com/kubernetes-incubator/cri-tools): CLI and validation tools for CRI is now v1.0.0-beta.0. This release mainly focused on UX improvements. [@feiskyer] + * [stable] [containerd](https://github.com/containerd/containerd): containerd v1.1 natively supports CRI v1alpha2 now, so users can use Kubernetes v1.10 with containerd v1.1 directly, without having to use the intermediate cri-containerd daemon. [All Kubernetes 1.10 tests passed](https://testgrid.k8s.io/sig-node-containerd). [@Random-Liu] + * [stable] [cri-o](https://github.com/kubernetes-incubator/cri-o): cri-o v1.10 updated CRI version to v1alpha2 and made several bug and stability fixes. [@mrunalp] + * [stable] [frakti](https://github.com/kubernetes/frakti): frakti v1.10 implemented GCE Persistent Disk as a high performance volume, fixed several bugs, added ARM64 support, and passed all CRI validation conformance tests and node e2e conformance tests. [@resouer] + +* Fixed race conditions around devicemanager Allocate() and endpoint deletion. ([#60856](https://github.com/kubernetes/kubernetes/pull/60856), [@jiayingz](https://github.com/jiayingz)) + +* kubelet initial flag parse now normalizes flags instead of exiting. ([#61053](https://github.com/kubernetes/kubernetes/pull/61053), [@andrewsykim](https://github.com/andrewsykim)) + +* Fixed regression where kubelet --cpu-cfs-quota flag did not work when --cgroups-per-qos was enabled ([#61294](https://github.com/kubernetes/kubernetes/pull/61294), [@derekwaynecarr](https://github.com/derekwaynecarr)) + +* Kubelet now supports container log rotation for container runtimes implementing CRI (container runtime interface). The feature can be enabled with feature gate `CRIContainerLogRotation`. The flags `--container-log-max-size` and `--container-log-max-files` can be used to configure the rotation behavior. ([#59898](https://github.com/kubernetes/kubernetes/pull/59898), [@Random-Liu](https://github.com/Random-Liu)) + +* Fixed a bug where if an error was returned that was not an `autorest.DetailedError` we would return `"not found", nil` which caused nodes to go to `NotReady` state. ([#57484](https://github.com/kubernetes/kubernetes/pull/57484), [@brendandburns](https://github.com/brendandburns)) + +* [HugePages](https://kubernetes.io/docs/tasks/manage-hugepages/scheduling-hugepages/) feature is beta, and thus enabled by default. ([#56939](https://github.com/kubernetes/kubernetes/pull/56939), [@derekwaynecarr](https://github.com/derekwaynecarr)) + +* Avoid panic when failing to allocate a Cloud CIDR (aka GCE Alias IP Range). ([#58186](https://github.com/kubernetes/kubernetes/pull/58186), [@negz](https://github.com/negz)) + +* 'none' can now be specified in KubeletConfiguration.EnforceNodeAllocatable (--enforce-node-allocatable) to explicitly disable enforcement. ([#59515](https://github.com/kubernetes/kubernetes/pull/59515), [@mtaufen](https://github.com/mtaufen)) + +* The alpha KubeletConfiguration.ConfigTrialDuration field is no longer available. It can still be set using the dynamic configuration alpha feature. ([#59628](https://github.com/kubernetes/kubernetes/pull/59628), [@mtaufen](https://github.com/mtaufen)) + +* Summary API will include pod CPU and Memory stats for CRI container runtime. ([#60328](https://github.com/kubernetes/kubernetes/pull/60328), [@Random-Liu](https://github.com/Random-Liu)) + +* Some field names in the Kubelet's now v1beta1 config API differ from the v1alpha1 API: for example, PodManifestPath is renamed to StaticPodPath, ManifestURL is renamed to StaticPodURL, and ManifestURLHeader is renamed to StaticPodURLHeader. Users should focus on switching to the v1beta1 API. ([#60314](https://github.com/kubernetes/kubernetes/pull/60314), [@mtaufen](https://github.com/mtaufen)) + +* The DevicePlugins feature has graduated to beta, and is now enabled by default; users should focus on moving to the v1beta API if possible. ([#60170](https://github.com/kubernetes/kubernetes/pull/60170), [@jiayingz](https://github.com/jiayingz)) + +* Per-cpu metrics have been disabled by default for to improve scalability. ([#60106](https://github.com/kubernetes/kubernetes/pull/60106), [@dashpole](https://github.com/dashpole)) + +* When the `PodShareProcessNamespace` alpha feature is enabled, setting `pod.Spec.ShareProcessNamespace` to `true` will cause a single process namespace to be shared between all containers in a pod. ([#58716](https://github.com/kubernetes/kubernetes/pull/58716), [@verb](https://github.com/verb)) + +* Resource quotas on extended resources such as GPUs are now supported. ([#57302](https://github.com/kubernetes/kubernetes/pull/57302), [@lichuqiang](https://github.com/lichuqiang)) + +* If the TaintNodesByCondition is enabled, a node will be tainted when it is under PID pressure. ([#60008](https://github.com/kubernetes/kubernetes/pull/60008), [@k82cn](https://github.com/k82cn)) + +* The Kubelet Summary API will now include total usage of pods through the "pods" SystemContainer. ([#57802](https://github.com/kubernetes/kubernetes/pull/57802), [@dashpole](https://github.com/dashpole)) + +* vSphere Cloud Provider supports VMs provisioned on vSphere v6.5. ([#59519](https://github.com/kubernetes/kubernetes/pull/59519), [@abrarshivani](https://github.com/abrarshivani)) + +* Created k8s.gcr.io image repo alias to pull images from the closest regional repo. Replaces gcr.io/google_containers. ([#57824](https://github.com/kubernetes/kubernetes/pull/57824), [@thockin](https://github.com/thockin)) + +* Fix the bug where kubelet in the standalone mode would wait for the update from the apiserver source, even if there wasn't one. ([#59276](https://github.com/kubernetes/kubernetes/pull/59276), [@roboll](https://github.com/roboll)) + +* Changes secret, configMap, downwardAPI and projected volumes to mount read-only, instead of allowing applications to write data and then reverting it automatically. Until version 1.11, setting the feature gate ReadOnlyAPIDataVolumes=false will preserve the old behavior. ([#58720](https://github.com/kubernetes/kubernetes/pull/58720), [@joelsmith](https://github.com/joelsmith)) + +* Fixes a bug where kubelet crashes trying to free memory under memory pressure. ([#58574](https://github.com/kubernetes/kubernetes/pull/58574), [@yastij](https://github.com/yastij)) + +* New alpha feature limits the number of processes running in a pod. Cluster administrators will be able to place limits by using the new kubelet command line parameter --pod-max-pids. Note that since this is a alpha feature they will need to enable the "SupportPodPidsLimit" feature. By default, we do not set any maximum limit, If an administrator wants to enable this, they should enable SupportPodPidsLimit=true in the --feature-gates= parameter to kubelet and specify the limit using the --pod-max-pids parameter. The limit set is the total count of all processes running in all containers in the pod. ([#57973](https://github.com/kubernetes/kubernetes/pull/57973),[@dims](https://github.com/dims)) + +* Fixes bug finding master replicas in GCE when running multiple Kubernetes clusters. ([#58561](https://github.com/kubernetes/kubernetes/pull/58561), [@jesseshieh](https://github.com/jesseshieh)) + +* --tls-min-version on kubelet and kube-apiserver allow for configuring minimum TLS versions ([#58528](https://github.com/kubernetes/kubernetes/pull/58528), [@deads2k](https://github.com/deads2k)) + +* Fix a bug affecting nested data volumes such as secret, configmap, etc. ([#57422](https://github.com/kubernetes/kubernetes/pull/57422), [@joelsmith](https://github.com/joelsmith)) + +* kubelet will no longer attempt to remove images being used by running containers when garbage collecting. ([#57020](https://github.com/kubernetes/kubernetes/pull/57020), [@dixudx](https://github.com/dixudx)) + +* Allow kubernetes components to react to SIGTERM signal and shutdown gracefully. ([#57756](https://github.com/kubernetes/kubernetes/pull/57756), [@mborsz](https://github.com/mborsz)) + +* Fixed garbage collection and resource quota issue when the controller-manager uses --leader-elect=false ([#57340](https://github.com/kubernetes/kubernetes/pull/57340), [@jmcmeek](https://github.com/jmcmeek)) + +* Fixed issue creating docker secrets with kubectl 1.9 for accessing docker private registries. ([#57463](https://github.com/kubernetes/kubernetes/pull/57463), [@dims](https://github.com/dims)) + +* The CPU Manager feature is now beta, and is enabled by default, but the default policy is no-op so no action is required. ([#55977](https://github.com/kubernetes/kubernetes/pull/55977), [@ConnorDoyle](https://github.com/ConnorDoyle)) + +### OpenStack + +* Fixed a bug in the OpenStack cloud provider where dual stack deployments (IPv4 and IPv6) did not work well when using kubenet as the network plugin. ([#59749](https://github.com/kubernetes/kubernetes/pull/59749), [@zioproto](https://github.com/zioproto)) + +* Fixed a bug that tries to use the octavia client to query flip. ([#59075](https://github.com/kubernetes/kubernetes/pull/59075), [@jrperritt](https://github.com/jrperritt)) + +* Kubernetes now registers metadata.hostname as node name for OpenStack nodes, eliminating a problem with invalid node names. ([#58502](https://github.com/kubernetes/kubernetes/pull/58502), [@dixudx](https://github.com/dixudx)) + +* Authentication information for OpenStack cloud provider can now be specified as environment variables. When we convert the OpenStack cloud provider to run in an external process, we can now use the kubernetes Secrets capability to inject the OS_* variables. This way we can specify the cloud configuration as a configmap, and specify secrets for the userid/password information. The configmap is mounted as a file, and the secrets are made available as environment variables. The external controller itself runs as a pod/daemonset. For backward compatibility, we preload all the OS_* variables, and if anything is in the config file, then that overrides the environment variables. ([#58300](https://github.com/kubernetes/kubernetes/pull/58300), [@dims](https://github.com/dims)) + +* Fixed issue when using OpenStack config drive for node metadata. Since we need to run commands such as blkid, we need to ensure that api server and kube controller are running in the privileged mode. ([#57561](https://github.com/kubernetes/kubernetes/pull/57561), [@dims](https://github.com/dims)) + +* Orphaned routes are properly removed from terminated instances. ([#56258](https://github.com/kubernetes/kubernetes/pull/56258), [@databus23](https://github.com/databus23)) + +* OpenStack Cinder will now detach properly when Nova is shut down. ([#56846](https://github.com/kubernetes/kubernetes/pull/56846), [@zetaab](https://github.com/zetaab)) +### Scalability + +* Added the ability to limit the increase in apiserver memory usage when audit logging with buffering is enabled. ([#61118](https://github.com/kubernetes/kubernetes/pull/61118), [@shyamjvs](https://github.com/shyamjvs)) + +* Upgrade to etcd client 3.2.13 and grpc 1.7.5 to improve HA etcd cluster stability. ([#57480](https://github.com/kubernetes/kubernetes/pull/57480), [@jpbetz](https://github.com/jpbetz)) + +### Storage + +* Fixes CVE-2017-1002101 - See [https://issue.k8s.io/60813](https://issue.k8s.io/60813) for details on this **major security fix**. ([#61044](https://github.com/kubernetes/kubernetes/pull/61044), [@liggitt](https://github.com/liggitt)) + +* Fixed missing error checking that could cause kubelet to crash in a race condition. ([#60962](https://github.com/kubernetes/kubernetes/pull/60962), [@technicianted](https://github.com/technicianted)) + +* Fixed a regression that prevented using `subPath` volume mounts with secret, configMap, projected, and downwardAPI volumes. ([#61080](https://github.com/kubernetes/kubernetes/pull/61080), [@liggitt](https://github.com/liggitt)) + +* K8s supports cephfs fuse mount. ([#55866](https://github.com/kubernetes/kubernetes/pull/55866), [@zhangxiaoyu-zidif](https://github.com/zhangxiaoyu-zidif)) + +* Use GiB unit for creating and resizing volumes for Glusterfs. ([#56581](https://github.com/kubernetes/kubernetes/pull/56581), [@gnufied](https://github.com/gnufied)) + +* Adding support for Block Volume type to rbd plugin. ([#56651](https://github.com/kubernetes/kubernetes/pull/56651), [@sbezverk](https://github.com/sbezverk)) + +* Add FSType for CSI volume source to specify filesystems (alpha defaults to ext4) ([#58209](https://github.com/kubernetes/kubernetes/pull/58209), [@NickrenREN](https://github.com/NickrenREN)) + +* Enabled File system resize of mounted volumes. ([#58794](https://github.com/kubernetes/kubernetes/pull/58794), [@gnufied](https://github.com/gnufied)) + +* The Local Volume Plugin has been updated to support Block volumeMode PVs. With this change, it is now possible to create local volume PVs for raw block devices. ([#59303](https://github.com/kubernetes/kubernetes/pull/59303), [@dhirajh](https://github.com/dhirajh)) + +* Fixed an issue where Portworx volume driver wasn't passing namespace and annotations to the Portworx Create API. ([#59607](https://github.com/kubernetes/kubernetes/pull/59607), [@harsh-px](https://github.com/harsh-px)) + +* Addressed breaking changes introduced by new 0.2.0 release of CSI spec. Specifically, csi.Version was removed from all API calls and CcontrollerProbe and NodeProbe were consolidated into a single Probe API call. ([#59209](https://github.com/kubernetes/kubernetes/pull/59209), [@sbezverk](https://github.com/sbezverk)) + +* GCE PD volume plugin now supports block volumes. ([#58710](https://github.com/kubernetes/kubernetes/pull/58710), [@screeley44](https://github.com/screeley44)) + +* Implements MountDevice and UnmountDevice for the CSI Plugin, the functions will call through to NodeStageVolume/NodeUnstageVolume for CSI plugins. ([#60115](https://github.com/kubernetes/kubernetes/pull/60115), [@davidz627](https://github.com/davidz627)) + +* The LocalStorageCapacityIsolation feature is beta and enabled by default. The LocalStorageCapacityIsolation feature added a new resource type ResourceEphemeralStorage "ephemeral-storage" so that this resource can be allocated, limited, and consumed as the same way as CPU/memory. All the features related to resource management (resource request/limit, quota, limitrange) are available for local ephemeral storage. This local ephemeral storage represents the storage for root file system, which will be consumed by containers' writable layer and logs. Some volumes such as emptyDir might also consume this storage. ([#60159](https://github.com/kubernetes/kubernetes/pull/60159), [@jingxu97](https://github.com/jingxu97)) + +* VolumeScheduling and LocalPersistentVolume features are beta and enabled by default. The PersistentVolume NodeAffinity alpha annotation is deprecated and will be removed in a future release. ([#59391](https://github.com/kubernetes/kubernetes/pull/59391), [@msau42](https://github.com/msau42)) + +* K8s now supports rbd-nbd for Ceph rbd volume mounts. ([#58916](https://github.com/kubernetes/kubernetes/pull/58916), [@ianchakeres](https://github.com/ianchakeres)) + +* CSI now allows credentials to be specified on CreateVolume/DeleteVolume, ControllerPublishVolume/ControllerUnpublishVolume, and NodePublishVolume/NodeUnpublishVolume operations. Before this change all API calls had to fetch key/value stored in secret and use it to authenticate/authorize these operations. With this change API calls receive key/value as a input parameter so they not need to know where and how credentials were stored and fetched. Main goal was to make these API calls CO (Container Orchestrator) agnostic. ([#60118](https://github.com/kubernetes/kubernetes/pull/60118), [@sbezverk](https://github.com/sbezverk)) + +* StorageOS volume plugin has been updated to support mount options and environments where the kubelet runs in a container and the device location should be specified. ([#58816](https://github.com/kubernetes/kubernetes/pull/58816), [@croomes](https://github.com/croomes)) + +* Get parent dir via canonical absolute path when trying to judge mount-point, fixing a problem that caused an NFS volume with improper permissions to get stuck in `TERMINATING` status. ([#58433](https://github.com/kubernetes/kubernetes/pull/58433), [@yue9944882]](https://github.com/yue9944882)) + +* Clusters with GCE feature 'DiskAlphaAPI' enabled can now dynamically provision GCE PD volumes. ([#59447](https://github.com/kubernetes/kubernetes/pull/59447), [@verult](https://github.com/verult)) + +* Added `keyring` parameter for Ceph RBD provisioner. ([#58287](https://github.com/kubernetes/kubernetes/pull/58287), [@madddi](https://github.com/madddi)) + +* Added xfsprogs to hyperkube container image. ([#56937](https://github.com/kubernetes/kubernetes/pull/56937), [@redbaron](https://github.com/redbaron)) + +* Improved messages user gets during and after volume resizing is done, providing a clear message to the user explaining what to do when resizing is finished. ([#58415](https://github.com/kubernetes/kubernetes/pull/58415), [@gnufied](https://github.com/gnufied)) + +* MountPropagation feature is now beta. As consequence, all volume mounts in containers are now "rslave" on Linux by default. To make this default work in all Linux environments you should have entire mount tree marked as shareable via "mount --make-rshared /". All Linux distributions that use systemd already have root directory mounted as rshared and hence they need not do anything. In Linux environments without systemd we recommend running "mount --make-rshared /" during boot, before docker is started. ([#59252](https://github.com/kubernetes/kubernetes/pull/59252), [@jsafrane](https://github.com/jsafrane)) + +* Volume metrics support for vSphere Cloud Provider has been added. You can now monitor available space, capacity, and used space on volumes created using vSphere. ([#59328](https://github.com/kubernetes/kubernetes/pull/59328), [@divyenpatel](https://github.com/divyenpatel)) + +* Emit number of bound and unbound persistent volumes as Metrics. This PR adds four kinds of Volume Metrics for kube-controller-manager: bound PVC numbers, unbound PVC numbers, bound PV numbers and unbound PV numbers. The PVC metrics use namespace as dimension and the PV metrics use StorageClassName as its dimension. With these metrics we can better monitor the use of volumes in the cluster. ([#57872](https://github.com/kubernetes/kubernetes/pull/57872), [@mlmhl](https://github.com/mlmhl)) + +* Add windows config to Kubelet CRI so that WindowsContainerResources can be managed. ([#57076](https://github.com/kubernetes/kubernetes/pull/57076), [@feiskyer](https://github.com/feiskyer)) + +* PersistentVolumes that are bound to a PersistentVolumeClaim will not be deleted. ([#58743](https://github.com/kubernetes/kubernetes/pull/58743), [@NickrenREN](https://github.com/NickrenREN)) + +* The VolumeAttachment API is now available as V1beta1, and is enabled by default. The Alpha API is deprecated and will be removed in a future release. ([#58462](https://github.com/kubernetes/kubernetes/pull/58462), [@NickrenREN](https://github.com/NickrenREN)) + +* Add storage-backend configuration option to kubernetes-master charm. ([#58830](https://github.com/kubernetes/kubernetes/pull/58830), [@wwwtyro](https://github.com/wwwtyro)) + +* Fixed dynamic provisioning of GCE PDs to round to the next GB (base 1000) instead of GiB (base 1024). ([#56600](https://github.com/kubernetes/kubernetes/pull/56600), [@edisonxiang](https://github.com/edisonxiang)) + +* PersistentVolume flexVolume sources can now reference secrets in a namespace other than the PersistentVolumeClaim's namespace. ([#56460](https://github.com/kubernetes/kubernetes/pull/56460), [@liggitt](https://github.com/liggitt)) + +### Windows + +* kubelet and kube-proxy can now be run as native Windows services. ([#60144](https://github.com/kubernetes/kubernetes/pull/60144), [@alinbalutoiu](https://github.com/alinbalutoiu)) + +* WindowsContainerResources is set now for windows containers. ([#59333](https://github.com/kubernetes/kubernetes/pull/59333), [@feiskyer](https://github.com/feiskyer)) + +* Disable mount propagation for windows containers (because it is not supported by the OS). ([#60275](https://github.com/kubernetes/kubernetes/pull/60275), [@feiskyer](https://github.com/feiskyer)) + +* Fix image file system stats for windows nodes. ([#59743](https://github.com/kubernetes/kubernetes/pull/59743), [@feiskyer](https://github.com/feiskyer)) + +* Kubernetes will now return an error if New-SmbGlobalMapping failed when mounting an azure file on Windows. ([#59540](https://github.com/kubernetes/kubernetes/pull/59540), [@andyzhangx](https://github.com/andyzhangx)) + +* Kubernetes now uses the more reliable GlobalMemoryStatusEx to get total physical memory on windows nodes. ([#57124](https://github.com/kubernetes/kubernetes/pull/57124), [@JiangtianLi](https://github.com/JiangtianLi)) + +* Windows containers now support experimental Hyper-V isolation by setting annotation `experimental.windows.kubernetes.io/isolation-type=hyperv` and feature gates HyperVContainer. At the moment this function only supports one container per pod. ([#58751]([https://github.com/kubernetes/kubernetes/pull/58751](https://github.com/kubernetes/kubernetes/pull/58751)), [@feiskyer](https://github.com/feiskyer)) + +* Get windows kernel version directly from registry rather than windows.getVersion(). ([#58498](https://github.com/kubernetes/kubernetes/pull/58498), [@feiskyer](https://github.com/feiskyer)) + +* Fixed controller manager crash when using mixed case names in a vSphere cloud provider environment. ([#57286](https://github.com/kubernetes/kubernetes/pull/57286), [@rohitjogvmw](https://github.com/rohitjogvmw)) + +* Flexvolume is now [enabled on Windows nodes](https://github.com/andyzhangx/Demo/tree/master/windows/flexvolume). ([#56921](https://github.com/kubernetes/kubernetes/pull/56921), [@andyzhangx](https://github.com/andyzhangx)) + +### Autoscaling + +* The getSubnetIDForLB() returns subnet id rather than net id. ([#58208](https://github.com/kubernetes/kubernetes/pull/58208), [@FengyunPan](https://github.com/FengyunPan)) + +* `kubectl scale` can now scale any resource (kube, CRD, aggregate) conforming to the standard scale endpoint ([#58298](https://github.com/kubernetes/kubernetes/pull/58298), [@p0lyn0mial](https://github.com/p0lyn0mial)) + +* Cluster Autoscaler has been updated to Version 1.2.0, which includes fixes around GPUs and base image change. See [https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-](https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.1.2)1.2.0for details. ([#60842](https://github.com/kubernetes/kubernetes/pull/60842), [@mwielgus](https://github.com/mwielgus)) + +* Allows HorizontalPodAutoscaler to use global metrics not associated with any Kubernetes object (for example metrics from a hosting service running outside of the Kubernetes cluster). ([#60096](https://github.com/kubernetes/kubernetes/pull/60096), [@MaciekPytel](https://github.com/MaciekPytel)) + +* fluentd-gcp resources can be modified via a ScalingPolicy. ([#59657](https://github.com/kubernetes/kubernetes/pull/59657), [@x13n](https://github.com/x13n)) + +* Added anti-affinity to kube-dns pods. Otherwise the "no single point of failure" setting doesn't actually work (a single node failure can still take down the entire cluster). ([#57683](https://github.com/kubernetes/kubernetes/pull/57683), [@vainu-arto](https://github.com/vainu-arto)) + +### API-Machinery + +* Fixed webhooks to use the scheme provided in clientConfig, instead of defaulting to http. ([#60943](https://github.com/kubernetes/kubernetes/pull/60943), [@jennybuckley](https://github.com/jennybuckley)) + +* The webhook admission controller in a custom apiserver now works off-the-shelf. ([#60995](https://github.com/kubernetes/kubernetes/pull/60995), [@caesarxuchao](https://github.com/caesarxuchao)) + +* Upgrade the default etcd server version to 3.1.12 to pick up critical etcd "mvcc "unsynced" watcher restore operation" fix. ([#60998](https://github.com/kubernetes/kubernetes/pull/60998), [@jpbetz](https://github.com/jpbetz)) + +* Fixed bug allowing garbage collector to enter a broken state that could only be fixed by restarting the controller-manager. ([#61201](https://github.com/kubernetes/kubernetes/pull/61201), [@jennybuckley](https://github.com/jennybuckley)) + +* kube-apiserver: The external hostname no longer longer use the cloud provider API to select a default. It can be set explicitly using --external-hostname, if needed. If there is no default, AdvertiseAddress or os.Hostname() will be used, in that order. ([#56812](https://github.com/kubernetes/kubernetes/pull/56812), [@dims](https://github.com/dims)) + +* Custom resources can be listed with a set of grouped resources (category) by specifying the categories in the [CustomResourceDefinition spec](https://kubernetes.io/docs/tasks/access-kubernetes-api/extend-api-custom-resource-definitions/#categories). Example: They can be used with `kubectl get important`, where `important` is a category. ([#59561](https://github.com/kubernetes/kubernetes/pull/59561), [@nikhita](https://github.com/nikhita)) + +* Fixed an issue making it possible to create a situation in which two webhooks make it impossible to delete each other. ValidatingWebhooks and MutatingWebhooks will not be called on admission requests for ValidatingWebhookConfiguration and MutatingWebhookConfiguration objects in the admissionregistration.k8s.io group ([#59840](https://github.com/kubernetes/kubernetes/pull/59840), [@jennybuckley](https://github.com/jennybuckley)) + +* Fixed potential deadlock when deleting CustomResourceDefinition for custom resources with finalizers. ([#60542](https://github.com/kubernetes/kubernetes/pull/60542), [@liggitt](https://github.com/liggitt)) + +* A buffered audit backend can be used with other audit backends. ([#60076](https://github.com/kubernetes/kubernetes/pull/60076), [@crassirostris](https://github.com/crassirostris)) + +* Introduced `--http2-max-streams-per-connection` command line flag on api-servers and set default to 1000 for aggregated API servers. ([#60054](https://github.com/kubernetes/kubernetes/pull/60054), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) + +* APIserver backed by etcdv3 exports metric shows number of resources per kind. ([#59757](https://github.com/kubernetes/kubernetes/pull/59757), [@gmarek](https://github.com/gmarek)) + +* Add `kubectl create job --from-cronjob` command. ([#60084](https://github.com/kubernetes/kubernetes/pull/60084), [@soltysh](https://github.com/soltysh)) + +* `/status` and `/scale` subresources have been added for custom resources. See [https://github.com/kubernetes/kubernetes/pull/55168](https://github.com/kubernetes/kubernetes/pull/55168) for more details. ([#55168](https://github.com/kubernetes/kubernetes/pull/55168), [@nikhita](https://github.com/nikhita)) + +* Restores the ability of older clients to delete and scale jobs with initContainers. ([#59880](https://github.com/kubernetes/kubernetes/pull/59880), [@liggitt](https://github.com/liggitt)) + +* Fixed a race condition causing apiserver crashes during etcd healthchecking. ([#60069](https://github.com/kubernetes/kubernetes/pull/60069), [@wojtek-t](https://github.com/wojtek-t)) + +* Fixed a race condition in k8s.io/client-go/tools/cache.SharedInformer that could violate the sequential delivery guarantee and cause panics on shutdown in Kubernetes 1.8.* and 1.9.*. ([#59828](https://github.com/kubernetes/kubernetes/pull/59828), [@krousey](https://github.com/krousey)) + +* Add automatic etcd 3.2->3.1 and 3.1->3.0 minor version rollback support to gcr.io/google_container/etcd images. For HA clusters, all members must be stopped before performing a rollback. ([#59298](https://github.com/kubernetes/kubernetes/pull/59298), [@jpbetz](https://github.com/jpbetz)) + +* The `meta.k8s.io/v1alpha1` objects for retrieving tabular responses from the server (`Table`) or fetching just the `ObjectMeta` for an object (as `PartialObjectMetadata`) are now beta as part of `meta.k8s.io/v1beta1` and configurations must be changed to use the new API. Clients may request alternate representations of normal Kubernetes objects by passing an `Accept` header like `application/json;as=Table;g=meta.k8s.io;v=v1beta1` or `application/json;as=PartialObjectMetadata;g=meta.k8s.io;v1=v1beta1`. Older servers will ignore this representation or return an error if it is not available. Clients may request fallback to the normal object by adding a non-qualified mime-type to their `Accept` header like `application/json` - the server will then respond with either the alternate representation if it is supported or the fallback mime-type which is the normal object response. ([#59059](https://github.com/kubernetes/kubernetes/pull/59059), [@smarterclayton]([https://github.com/smarterclayton](https://github.com/smarterclayton) )) + +* kube-apiserver now uses SSH tunnels for webhooks if the webhook is not directly routable from apiserver's network environment. ([#58644](https://github.com/kubernetes/kubernetes/pull/58644), [@yguo0905](https://github.com/yguo0905)) + +* Access to externally managed IP addresses via the kube-apiserver service proxy subresource is no longer allowed by default. This can be re-enabled via the `ServiceProxyAllowExternalIPs` feature gate, but will be disallowed completely in 1.11 ([#57265](https://github.com/kubernetes/kubernetes/pull/57265), [@brendandburns](https://github.com/brendandburns)) + +* The apiregistration.k8s.io (aggregation) is now generally available. Users should transition from the v1beta1 API to the v1 API. ([#58393](https://github.com/kubernetes/kubernetes/pull/58393), [@deads2k](https://github.com/deads2k)) + +* Fixes an issue where the resourceVersion of an object in a DELETE watch event was not the resourceVersion of the delete itself, but of the last update to the object. This could disrupt the ability of clients clients to re-establish watches properly. ([#58547](https://github.com/kubernetes/kubernetes/pull/58547), [@liggitt](https://github.com/liggitt)) + +* kube-apiserver: requests to endpoints handled by unavailable extension API servers (as indicated by an `Available` condition of `false` in the registered APIService) now return `503` errors instead of `404` errors. ([#58070](https://github.com/kubernetes/kubernetes/pull/58070), [@weekface](https://github.com/weekface)) + +* Custom resources can now be submitted to and received from the API server in application/yaml format, consistent with other API resources. ([#58260](https://github.com/kubernetes/kubernetes/pull/58260), [@liggitt](https://github.com/liggitt)) + +### Network + +* Fixed kube-proxy to work correctly with iptables 1.6.2 and later. ([#60978](https://github.com/kubernetes/kubernetes/pull/60978), [@danwinship](https://github.com/danwinship)) + +* Makes the kube-dns addon optional so that users can deploy their own DNS solution. ([#57113](https://github.com/kubernetes/kubernetes/pull/57113), [@wwwtyro]([https://github.com/wwwtyro](https://github.com/wwwtyro) )) + +* `kubectl port-forward` now supports specifying a service to port forward to, as in `kubectl port-forward svc/myservice 8443:443`. Additional support has also been added for looking up targetPort for a service, as well as enabling using svc/name to select a pod. ([#59809](https://github.com/kubernetes/kubernetes/pull/59809), [@phsiao](https://github.com/phsiao)) +* [Make NodePort IP address](https://github.com/kubernetes/website/pull/7631/files)[ses configurabl](https://github.com/kubernetes/website/pull/7631/files)[e](https://github.com/kubernetes/website/pull/7631/files). ([#58052](https://github.com/kubernetes/kubernetes/pull/58052), [@m1093782566](https://github.com/m1093782566)) + +* Fixed the issue in kube-proxy iptables/ipvs mode to properly handle incorrect IP version. ([#56880](https://github.com/kubernetes/kubernetes/pull/56880), [@MrHohn](https://github.com/MrHohn)) +* Kubeadm: CoreDNS supports migration of the kube-dns configuration to CoreDNS configuration when upgrading the service discovery from kube-dns to CoreDNS as part of Beta. ([#58828](https://github.com/kubernetes/kubernetes/pull/58828), [@rajansandeep](https://github.com/rajansandeep)) + +* Adds BETA support for `DNSConfig` field in PodSpec and `DNSPolicy=None`, so configurable pod resolve.conf is now enabled by default. ([#59771](https://github.com/kubernetes/kubernetes/pull/59771), [@MrHohn](https://github.com/MrHohn)) +* Removed some redundant rules created by the iptables proxier to improve performance on systems with very many services. ([#57461](https://github.com/kubernetes/kubernetes/pull/57461), [@danwinship](https://github.com/danwinship)) + +* Fix an issue where port forwarding doesn't forward local TCP6 ports to the pod ([#57457](https://github.com/kubernetes/kubernetes/pull/57457), [@vfreex](https://github.com/vfreex)) +* Correctly handle transient connection reset errors on GET requests from client library. ([#58520](https://github.com/kubernetes/kubernetes/pull/58520), [@porridge](https://github.com/porridge)) + +* GCE: Allows existing internal load balancers to continue using a subnetwork that may have been wrongfully chosen due to a bug choosing subnetworks on automatic networks. ([#57861](https://github.com/kubernetes/kubernetes/pull/57861), [@nicksardo](https://github.com/nicksardo)) +### Azure + +* Set node external IP for azure node when disabling UseInstanceMetadata. ([#60959](https://github.com/kubernetes/kubernetes/pull/60959), [@feiskyer](https://github.com/feiskyer)) + +* Changed default azure file/dir mode to 0755. ([#56551](https://github.com/kubernetes/kubernetes/pull/56551), [@andyzhangx](https://github.com/andyzhangx)) + +* Fixed azure file plugin failure issue on Windows after node restart. ([#60625](https://github.com/kubernetes/kubernetes/pull/60625), [@andyzhangx](https://github.com/andyzhangx))([#60623](https://github.com/kubernetes/kubernetes/pull/60623), [@feiskyer](https://github.com/feiskyer)) + +* Fixed race condition issue when detaching azure disk, preventing `Multi-Attach error`s when scheduling one pod from one node to another. ([#60183](https://github.com/kubernetes/kubernetes/pull/60183), [@andyzhangx](https://github.com/andyzhangx)) + +* Add AzureDisk support for vmss nodes. ([#59716]([https://github.com/kubernetes/kubernetes/pull/59716](https://github.com/kubernetes/kubernetes/pull/59716)), [@feiskyer](https://github.com/feiskyer)) + +* Map correct vmset name for Azure internal load balancers. ([#59747](https://github.com/kubernetes/kubernetes/pull/59747), [@feiskyer](https://github.com/feiskyer)) + +* Node's providerID will now follow the Azure resource ID format (`azure:///subscriptions/<id>/resourceGroups/<rg>/providers/Microsoft.Compute/virtualMachines/<node-name>` rather than `azure://d84a1c30-0c9f-11e8-8a34-000d3a919531`) when useInstanceMetadata is enabled ([#59539](https://github.com/kubernetes/kubernetes/pull/59539), [@feiskyer](https://github.com/feiskyer)) + +* Azure public IP is now correctly removed after a service is deleted. ([#59340](https://github.com/kubernetes/kubernetes/pull/59340), [@feiskyer](https://github.com/feiskyer)) + +* Added PV size grow feature for azure filesystems. ([#57017](https://github.com/kubernetes/kubernetes/pull/57017), [@andyzhangx](https://github.com/andyzhangx)) + +* Ensured IP is set for Azure internal load balancer. ([#59083](https://github.com/kubernetes/kubernetes/pull/59083), [@feiskyer](https://github.com/feiskyer)) + +* Set fsGroup by securityContext.fsGroup in azure file. However,f user both sets gid=xxx in mountOptions in azure storage class and securityContext.fsGroup, gid=xxx setting in mountOptions takes precedence. ([#58316](https://github.com/kubernetes/kubernetes/pull/58316), [@andyzhangx](https://github.com/andyzhangx)) + +* If an Azure disk is not found, K8s will immediately detach it. ([#58345](https://github.com/kubernetes/kubernetes/pull/58345), [@rootfs](https://github.com/rootfs)) +* Instrumented the Azure cloud provider for Prometheus monitoring. ([#58204](https://github.com/kubernetes/kubernetes/pull/58204), [@cosmincojocar](https://github.com/cosmincojocar)) + +* Fixed device name change issues for azure disk. ([#57953](https://github.com/kubernetes/kubernetes/pull/57953), [@andyzhangx](https://github.com/andyzhangx)) ([#57549](https://github.com/kubernetes/kubernetes/pull/57549), [@andyzhangx](https://github.com/andyzhangx)) + +* Support multiple scale sets in Azure cloud provider. ([#57543](https://github.com/kubernetes/kubernetes/pull/57543), [@feiskyer](https://github.com/feiskyer)) + +* Support LoadBalancer for Azure Virtual Machine Scale Sets ([#57131](https://github.com/kubernetes/kubernetes/pull/57131), [@feiskyer](https://github.com/feiskyer)) + +* Fixed incorrect error info when creating an azure file PVC failed. ([#56550](https://github.com/kubernetes/kubernetes/pull/56550), [@andyzhangx](https://github.com/andyzhangx)) + +* Added mount options support for azure disk. For example: + +``` +kind: StorageClass +apiVersion: storage.k8s.io/v1 +metadata: + name: hdd +provisioner: kubernetes.io/azure-disk +mountOptions: + - barrier=1 + - acl +parameters: + skuname: Standard_LRS + kind: Managed + fstype: ext3 +``` + +([#56147](https://github.com/kubernetes/kubernetes/pull/56147), [@andyzhangx](https://github.com/andyzhangx)) + +### Scheduling + +* Fixed a bug the in scheduler cache by using Pod UID as the cache key instead of namespace/name ([#61069](https://github.com/kubernetes/kubernetes/pull/61069), [@anfernee](https://github.com/anfernee)) + +* When `TaintNodesByCondition` is enabled, added `node.kubernetes.io/unschedulable:NoSchedule` ([#61161](https://github.com/kubernetes/kubernetes/pull/61161), [@k82cn](https://github.com/k82cn)) + +* kube-scheduler: Support extender managed extended resources in kube-scheduler ([#60332](https://github.com/kubernetes/kubernetes/pull/60332), [@yguo0905](https://github.com/yguo0905)) + +* Updated priority of mirror pod according to PriorityClassName. ([#58485](https://github.com/kubernetes/kubernetes/pull/58485), [@k82cn](https://github.com/k82cn)) + +* kube-scheduler: restores default leader election behavior. Setting the `--leader-elect` command line parameter to `true` ([#60524](https://github.com/kubernetes/kubernetes/pull/60524), [@dims](https://github.com/dims)) + +* All pods with priorityClassName system-node-critical and system-cluster-critical will be critical pods while preserving backwards compatibility. ([#58835](https://github.com/kubernetes/kubernetes/pull/58835), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +* Priority admission controller picks a global default with the lowest priority value if more than one such default PriorityClass exists. ([#59991](https://github.com/kubernetes/kubernetes/pull/59991), [@bsalamat](https://github.com/bsalamat)) +* Disallow PriorityClass names with 'system-' prefix for user defined priority classes. ([#59382](https://github.com/kubernetes/kubernetes/pull/59382), [@bsalamat](https://github.com/bsalamat)) +* kube-scheduler: Use default predicates/prioritizers if they are unspecified in the policy config. ([#59363](https://github.com/kubernetes/kubernetes/pull/59363), [@yguo0905](https://github.com/yguo0905)) + +* Scheduler should be able to read from config file if configmap is not present. ([#59386](https://github.com/kubernetes/kubernetes/pull/59386), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +* Add apiserver metric for current inflight-request usage. ([#58342](https://github.com/kubernetes/kubernetes/pull/58342), [@gmarek](https://github.com/gmarek)) + +* Stability: Make Pod delete event handling of scheduler more robust. ([#58712](https://github.com/kubernetes/kubernetes/pull/58712), [@bsalamat](https://github.com/bsalamat))* Allow scheduler set AlwaysCheckAllPredicates, short circuit all predicates if one predicate fails can greatly improve the scheduling performance. ([#56926](https://github.com/kubernetes/kubernetes/pull/56926), [@wgliang](https://github.com/wgliang)) + +* GCE: support passing kube-scheduler policy config via SCHEDULER_POLICY_CONFIG. This allows us to specify a customized scheduler policy configuration. ([#57425](https://github.com/kubernetes/kubernetes/pull/57425), [@yguo0905](https://github.com/yguo0905)) + +* Returns an error for non overcommitable resources if they don't have limit field set in container spec to prevent users from creating invalid configurations. ([#57170](https://github.com/kubernetes/kubernetes/pull/57170), [@jiayingz](https://github.com/jiayingz)) + +* GCE: Fixed ILB creation on automatic networks with manually created subnetworks. ([#57351](https://github.com/kubernetes/kubernetes/pull/57351), [@nicksardo](https://github.com/nicksardo)) + +* Multiple Performance Improvements to the MatchInterPodAffinity predicate ([#57476](https://github.com/kubernetes/kubernetes/pull/57476), [@misterikkit](https://github.com/misterikkit))([#57477](https://github.com/kubernetes/kubernetes/pull/57477), [@misterikkit](https://github.com/misterikkit)) + +* The calico-node addon tolerates all NoExecute and NoSchedule taints by default. So Calico components can even be scheduled on tainted nodes. ([#57122](https://github.com/kubernetes/kubernetes/pull/57122), [@caseydavenport](https://github.com/caseydavenport)) +* The scheduler skips pods that use a PVC that either does not exist or is being deleted. ([#55957](https://github.com/kubernetes/kubernetes/pull/55957), [@jsafrane](https://github.com/jsafrane)) + +### Other changes + +* Updated dashboard version to v1.8.3, which keeps auto-generated certs in memory. ([#57326](https://github.com/kubernetes/kubernetes/pull/57326), [@floreks](https://github.com/floreks)) + +* fluentd-gcp addon: Fixed bug with reporting metrics in event-exporter. ([#60126](https://github.com/kubernetes/kubernetes/pull/60126), [@serathius](https://github.com/serathius)) + +* Avoid hook errors when effecting label changes on kubernetes-worker charm. ([#59803](https://github.com/kubernetes/kubernetes/pull/59803), [@wwwtyro](https://github.com/wwwtyro)) + +* Fixed charm issue where docker login would run prior to daemon options being set. ([#59396](https://github.com/kubernetes/kubernetes/pull/59396), [@kwmonroe](https://github.com/kwmonroe)) + +* Implementers of the cloud provider interface will note the addition of a context to this interface. Trivial code modification will be necessary for a cloud provider to continue to compile. ([#59287](https://github.com/kubernetes/kubernetes/pull/59287), [@cheftako](https://github.com/cheftako)) + +* Added configurable etcd quota backend bytes in GCE. ([#59259](https://github.com/kubernetes/kubernetes/pull/59259), [@wojtek-t](https://github.com/wojtek-t)) + +* GCP: allow a master to not include a metadata concealment firewall rule (if it's not running the metadata proxy). ([#58104](https://github.com/kubernetes/kubernetes/pull/58104), [@ihmccreery](https://github.com/ihmccreery)) + +* Fixed issue with kubernetes-worker option allow-privileged not properly handling the value True with a capital T. ([#59116](https://github.com/kubernetes/kubernetes/pull/59116), [@hyperbolic2346](https://github.com/hyperbolic2346)) + +* Controller-manager --service-sync-period flag has been removed. (It was never used in the code and should have no user impact.) ([#59359](https://github.com/kubernetes/kubernetes/pull/59359), [@khenidak](https://github.com/khenidak)) + +* [fluentd-gcp addon] Switch to the image provided by Stackdriver. The Stackdriver Logging Agent container image uses fluentd v0.14.25. ([#59128](https://github.com/kubernetes/kubernetes/pull/59128), [@bmoyles0117](https://github.com/bmoyles0117)) + +# Non-user-facing Changes + +* CRI now uses moutpoint as image filesystem identifier instead of UUID. ([#59475](https://github.com/kubernetes/kubernetes/pull/59475), [@Random-Liu](https://github.com/Random-Liu)) + +* GCE: support Cloud TPU API in cloud provider ([#58029](https://github.com/kubernetes/kubernetes/pull/58029), [@yguo0905](https://github.com/yguo0905)) + +* kubelet now notifies systemd that it has finished starting, if systemd is available and running. ([#60654](https://github.com/kubernetes/kubernetes/pull/60654), [@dcbw](https://github.com/dcbw)) + +* Do not count failed pods as unready in HPA controller ([#60648](https://github.com/kubernetes/kubernetes/pull/60648), [@bskiba](https://github.com/bskiba)) + +* fixed foreground deletion of podtemplates ([#60683](https://github.com/kubernetes/kubernetes/pull/60683), [@nilebox](https://github.com/nilebox)) + +* Conformance tests are added for the DaemonSet kinds in the apps/v1 group version. Deprecated versions of DaemonSet will not be tested for conformance, and conformance is only applicable to release 1.10 and later. ([#60456](https://github.com/kubernetes/kubernetes/pull/60456), [@kow3ns](https://github.com/kow3ns)) + +* Log audit backend can now be configured to perform batching before writing events to disk. ([#60237](https://github.com/kubernetes/kubernetes/pull/60237), [@crassirostris](https://github.com/crassirostris)) + +* New conformance tests added for the Garbage Collector ([#60116](https://github.com/kubernetes/kubernetes/pull/60116), [@jennybuckley](https://github.com/jennybuckley)) + +* Fixes a bug where character devices are not recognized by the kubelet ([#60440](https://github.com/kubernetes/kubernetes/pull/60440), [@andrewsykim](https://github.com/andrewsykim)) + +* StatefulSet in apps/v1 is now included in Conformance Tests. ([#60336](https://github.com/kubernetes/kubernetes/pull/60336), [@enisoc](https://github.com/enisoc)) + +* dockertools: disable memory swap on Linux. ([#59404](https://github.com/kubernetes/kubernetes/pull/59404), [@ohmystack](https://github.com/ohmystack)) + +* Increase timeout of integration tests ([#60458](https://github.com/kubernetes/kubernetes/pull/60458), [@jennybuckley](https://github.com/jennybuckley)) + +* force node name lowercase on static pod name generating ([#59849](https://github.com/kubernetes/kubernetes/pull/59849), [@yue9944882]([https://github.com/yue9944882](https://github.com/yue9944882)) + +* fix device name change issue for azure disk ([#60346](https://github.com/kubernetes/kubernetes/pull/60346), [@andyzhangx](https://github.com/andyzhangx)) + +* Additional changes to iptables kube-proxy backend to improve performance on clusters with very large numbers of services. ([#60306](https://github.com/kubernetes/kubernetes/pull/60306), [@danwinship](https://github.com/danwinship)) + +* add spelling checking script ([#59463](https://github.com/kubernetes/kubernetes/pull/59463), [@dixudx](https://github.com/dixudx)) + +* Use consts as predicate name in handlers ([#59952](https://github.com/kubernetes/kubernetes/pull/59952), [@resouer](https://github.com/resouer)) + +* Fix instanceID for vmss nodes. ([#59857](https://github.com/kubernetes/kubernetes/pull/59857), [@feiskyer](https://github.com/feiskyer)) + +* Increase allowed lag for ssh key sync loop in tunneler to allow for one failure ([#60068](https://github.com/kubernetes/kubernetes/pull/60068), [@wojtek-t](https://github.com/wojtek-t)) + +* Set an upper bound (5 minutes) on how long the Kubelet will wait before exiting when the client cert from disk is missing or invalid. This prevents the Kubelet from waiting forever without attempting to bootstrap a new client credentials. ([#59316](https://github.com/kubernetes/kubernetes/pull/59316), [@smarterclayton](https://github.com/smarterclayton)) + +* Add ipset binary for IPVS to hyperkube docker image ([#57648](https://github.com/kubernetes/kubernetes/pull/57648), [@Fsero](https://github.com/Fsero)) + +* Making sure CSI E2E test runs on a local cluster ([#60017](https://github.com/kubernetes/kubernetes/pull/60017), [@sbezverk](https://github.com/sbezverk)) + +* Fix kubelet PVC stale metrics ([#59170](https://github.com/kubernetes/kubernetes/pull/59170), [@cofyc](https://github.com/cofyc)) + +* Separate current ARM rate limiter into read/write ([#59830](https://github.com/kubernetes/kubernetes/pull/59830), [@khenidak](https://github.com/khenidak)) + +* Improve control over how ARM rate limiter is used within Azure cloud provider, add generic cache for Azure VM/LB/NSG/RouteTable ([#59520](https://github.com/kubernetes/kubernetes/pull/59520), [@feiskyer](https://github.com/feiskyer)) + +* fix typo ([#59619](https://github.com/kubernetes/kubernetes/pull/59619), [@jianliao82](https://github.com/jianliao82)) + +* DaemonSet, Deployment, ReplicaSet, and StatefulSet objects are now persisted in etcd in apps/v1 format ([#58854](https://github.com/kubernetes/kubernetes/pull/58854), [@liggitt](https://github.com/liggitt)) + +* YAMLDecoder Read now tracks rest of buffer on io.ErrShortBuffer ([#58817](https://github.com/kubernetes/kubernetes/pull/58817), [@karlhungus](https://github.com/karlhungus)) + +* Prevent kubelet from getting wedged if initialization of modules returns an error. ([#59020](https://github.com/kubernetes/kubernetes/pull/59020), [@brendandburns](https://github.com/brendandburns)) + +* Fixed a race condition inside kubernetes-worker that would result in a temporary error situation. ([#59005](https://github.com/kubernetes/kubernetes/pull/59005), [@hyperbolic2346](https://github.com/hyperbolic2346)) + +* Fix regression in the CRI: do not add a default hostname on short image names ([#58955](https://github.com/kubernetes/kubernetes/pull/58955), [@runcom](https://github.com/runcom)) + +* use containing API group when resolving shortname from discovery ([#58741](https://github.com/kubernetes/kubernetes/pull/58741), [@dixudx](https://github.com/dixudx)) + +* remove spaces from kubectl describe hpa ([#56331](https://github.com/kubernetes/kubernetes/pull/56331), [@shiywang](https://github.com/shiywang)) + +* fluentd-es addon: multiline stacktraces are now grouped into one entry automatically ([#58063](https://github.com/kubernetes/kubernetes/pull/58063), [@monotek](https://github.com/monotek)) + +* Default scheduler code is moved out of the plugin directory. ([#57852](https://github.com/kubernetes/kubernetes/pull/57852), [@misterikkit](https://github.com/misterikkit)) + +* CDK nginx ingress is now handled via a daemon set. ([#57530](https://github.com/kubernetes/kubernetes/pull/57530), [@hyperbolic2346](https://github.com/hyperbolic2346)) + +* Move local PV negative scheduling tests to integration ([#57570](https://github.com/kubernetes/kubernetes/pull/57570), [@sbezverk](https://github.com/sbezverk)) + +* Only create Privileged PSP binding during e2e tests if RBAC is enabled. ([#56382](https://github.com/kubernetes/kubernetes/pull/56382), [@mikkeloscar](https://github.com/mikkeloscar)) + +* ignore nonexistent ns net file error when deleting container network in case a retry ([#57697](https://github.com/kubernetes/kubernetes/pull/57697), [@dixudx](https://github.com/dixudx)) + +* Use old dns-ip mechanism with older cdk-addons. ([#57403](https://github.com/kubernetes/kubernetes/pull/57403), [@wwwtyro](https://github.com/wwwtyro)) + +* Retry 'connection refused' errors when setting up clusters on GCE. ([#57394](https://github.com/kubernetes/kubernetes/pull/57394), [@mborsz](https://github.com/mborsz)) + +* YAMLDecoder Read now returns the number of bytes read ([#57000](https://github.com/kubernetes/kubernetes/pull/57000), [@sel](https://github.com/sel)) + +* Drop hacks used for Mesos integration that was already removed from main kubernetes repository ([#56754](https://github.com/kubernetes/kubernetes/pull/56754), [@dims](https://github.com/dims)) + +* Compare correct file names for volume detach operation ([#57053](https://github.com/kubernetes/kubernetes/pull/57053), [@prashima](https://github.com/prashima)) + +* Fixed documentation typo in IPVS README. ([#56578](https://github.com/kubernetes/kubernetes/pull/56578), [@shift](https://github.com/shift)) + +* The ConfigOK node condition has been renamed to KubeletConfigOk. ([#59905](https://github.com/kubernetes/kubernetes/pull/59905), [@mtaufen](https://github.com/mtaufen)) + +* Adding pkg/kubelet/apis/deviceplugin/v1beta1 API. ([#59588](https://github.com/kubernetes/kubernetes/pull/59588), [@jiayingz](https://github.com/jiayingz)) + +* Fixes volume predicate handler for equiv class ([#59335](https://github.com/kubernetes/kubernetes/pull/59335), [@resouer](https://github.com/resouer)) + +* Bugfix: vSphere Cloud Provider (VCP) does not need any special service account anymore. ([#59440](https://github.com/kubernetes/kubernetes/pull/59440), [@rohitjogvmw](https://github.com/rohitjogvmw)) + +* fix the error prone account creation method of blob disk ([#59739](https://github.com/kubernetes/kubernetes/pull/59739), [@andyzhangx](https://github.com/andyzhangx)) + +* Updated kubernetes-worker to request new security tokens when the aws cloud provider changes the registered node name. ([#59730](https://github.com/kubernetes/kubernetes/pull/59730), [@hyperbolic2346](https://github.com/hyperbolic2346)) + +* Pod priority can be specified ins PodSpec even when the feature is disabled, but it will be effective only when the feature is enabled. ([#59291](https://github.com/kubernetes/kubernetes/pull/59291), [@bsalamat](https://github.com/bsalamat))* Add generic cache for Azure VMSS ([#59652](https://github.com/kubernetes/kubernetes/pull/59652), [@feiskyer](https://github.com/feiskyer)) + +* fix the create azure file pvc failure if there is no storage account in current resource group ([#56557](https://github.com/kubernetes/kubernetes/pull/56557), [@andyzhangx](https://github.com/andyzhangx)) + +* Implement envelope service with gRPC, so that KMS providers can be pulled out from API server. ([#55684](https://github.com/kubernetes/kubernetes/pull/55684), [@wu-qiang](https://github.com/wu-qiang)) + +* Enable golint for `pkg/scheduler` and fix the golint errors in it. ([#58437](https://github.com/kubernetes/kubernetes/pull/58437), [@tossmilestone](https://github.com/tossmilestone)) + +* Ensure euqiv hash calculation is per schedule ([#59245](https://github.com/kubernetes/kubernetes/pull/59245), [@resouer](https://github.com/resouer)) + +* Upped the timeout for apiserver communication in the juju kubernetes-worker charm. ([#59219](https://github.com/kubernetes/kubernetes/pull/59219), [@hyperbolic2346](https://github.com/hyperbolic2346)) + +* kubeadm init: skip checking cri socket in preflight checks ([#58802](https://github.com/kubernetes/kubernetes/pull/58802), [@dixudx](https://github.com/dixudx)) + +* Configurable etcd compaction frequency in GCE ([#59106](https://github.com/kubernetes/kubernetes/pull/59106), [@wojtek-t](https://github.com/wojtek-t)) + +* Fixed a bug which caused the apiserver reboot failure in the presence of malfunctioning webhooks. ([#59073](https://github.com/kubernetes/kubernetes/pull/59073), [@caesarxuchao](https://github.com/caesarxuchao)) + +* GCE: Apiserver uses `InternalIP` as the most preferred kubelet address type by default. ([#59019](https://github.com/kubernetes/kubernetes/pull/59019), [@MrHohn](https://github.com/MrHohn)) + +* CRI: Add a call to reopen log file for a container. ([#58899](https://github.com/kubernetes/kubernetes/pull/58899), [@yujuhong](https://github.com/yujuhong)) + +* The alpha KubeletConfigFile feature gate has been removed, because it was redundant with the Kubelet's --config flag. It is no longer necessary to set this gate to use the flag. The --config flag is still considered alpha. ([#58978](https://github.com/kubernetes/kubernetes/pull/58978), [@mtaufen](https://github.com/mtaufen)) + +* Fixing extra_sans option on master and load balancer. ([#58843](https://github.com/kubernetes/kubernetes/pull/58843), [@hyperbolic2346](https://github.com/hyperbolic2346)) + +* Ensure config has been created before attempting to launch ingress. ([#58756](https://github.com/kubernetes/kubernetes/pull/58756), [@wwwtyro](https://github.com/wwwtyro)) + +* Support metrics API in `kubectl top` commands. ([#56206](https://github.com/kubernetes/kubernetes/pull/56206), [@brancz](https://github.com/brancz)) + +* Bump GCE metadata proxy to v0.1.9 to pick up security fixes. ([#58221](https://github.com/kubernetes/kubernetes/pull/58221), [@ihmccreery](https://github.com/ihmccreery)) + +* "ExternalTrafficLocalOnly" has been removed from feature gate. It has been a GA feature since v1.7. ([#56948](https://github.com/kubernetes/kubernetes/pull/56948), [@MrHohn](https://github.com/MrHohn)) +* feat(fakeclient): push event on watched channel on add/update/delete ([#57504](https://github.com/kubernetes/kubernetes/pull/57504), [@yue9944882](https://github.com/yue9944882)) + +* Fixes a possible deadlock preventing quota from being recalculated ([#58107](https://github.com/kubernetes/kubernetes/pull/58107), [@ironcladlou](https://github.com/ironcladlou)) + +* Bump metadata proxy version to v0.1.7 to pick up security fix. ([#57762](https://github.com/kubernetes/kubernetes/pull/57762), [@ihmccreery](https://github.com/ihmccreery)) + +* The kubelet uses a new release 3.1 of the pause container with the Docker runtime. This version will clean up orphaned zombie processes that it inherits. ([#57517](https://github.com/kubernetes/kubernetes/pull/57517), [@verb](https://github.com/verb)) + +* Add cache for VM get operation in azure cloud provider ([#57432](https://github.com/kubernetes/kubernetes/pull/57432), [@karataliu](https://github.com/karataliu)) + +* Configurable liveness probe initial delays for etcd and kube-apiserver in GCE ([#57749](https://github.com/kubernetes/kubernetes/pull/57749), [@wojtek-t](https://github.com/wojtek-t)) + +* Fixed garbage collection hang ([#57503](https://github.com/kubernetes/kubernetes/pull/57503), [@liggitt](https://github.com/liggitt) + +* Improve scheduler performance of MatchInterPodAffinity predicate. ([#57478](https://github.com/kubernetes/kubernetes/pull/57478), [@misterikkit](https://github.com/misterikkit)) + +* Add the path '/version/' to the `system:discovery` cluster role. ([#57368](https://github.com/kubernetes/kubernetes/pull/57368), [@brendandburns](https://github.com/brendandburns)) + +* adding predicates ordering for the kubernetes scheduler. ([#57168](https://github.com/kubernetes/kubernetes/pull/57168), [@yastij](https://github.com/yastij)) + +* Fix ipvs proxier nodeport ethassumption ([#56685](https://github.com/kubernetes/kubernetes/pull/56685), [@m1093782566](https://github.com/m1093782566)) + +* Fix Heapster configuration and Metrics Server configuration to enable overriding default resource requirements. ([#56965](https://github.com/kubernetes/kubernetes/pull/56965), [@kawych](https://github.com/kawych)) + +* Improved event generation in volume mount, attach, and extend operations ([#56872](https://github.com/kubernetes/kubernetes/pull/56872), [@davidz627](https://github.com/davidz627)) + +* Remove ScrubDNS interface from cloudprovider. ([#56955](https://github.com/kubernetes/kubernetes/pull/56955), [@feiskyer](https://github.com/feiskyer)) + +* Fixed a garbage collection race condition where objects with ownerRefs pointing to cluster-scoped objects could be deleted incorrectly. ([#57211](https://github.com/kubernetes/kubernetes/pull/57211), [@liggitt](https://github.com/liggitt)) + +* api-server provides specific events when unable to repair a service cluster ip or node port ([#54304](https://github.com/kubernetes/kubernetes/pull/54304), [@frodenas](https://github.com/frodenas)) + +* delete useless params containerized ([#56146](https://github.com/kubernetes/kubernetes/pull/56146), [@jiulongzaitian](https://github.com/jiulongzaitian)) + +* dockershim now makes an Image's Labels available in the Info field of ImageStatusResponse ([#58036](https://github.com/kubernetes/kubernetes/pull/58036), [@shlevy](https://github.com/shlevy)) + +* Support GetLabelsForVolume in OpenStack Provider ([#58871](https://github.com/kubernetes/kubernetes/pull/58871), [@edisonxiang](https://github.com/edisonxiang)) + +* Add "nominatedNodeName" field to PodStatus. This field is set when a pod preempts other pods on the node. ([#58990](https://github.com/kubernetes/kubernetes/pull/58990), [@bsalamat](https://github.com/bsalamat))* Fix the PersistentVolumeLabel controller from initializing the PV labels when it's not the next pending initializer. ([#56831](https://github.com/kubernetes/kubernetes/pull/56831), [@jhorwit2](https://github.com/jhorwit2)) + +* Rename StorageProtection to StorageObjectInUseProtection ([#59901](https://github.com/kubernetes/kubernetes/pull/59901), [@NickrenREN](https://github.com/NickrenREN)) + +* Add support for cloud-controller-manager in local-up-cluster.sh ([#57757](https://github.com/kubernetes/kubernetes/pull/57757), [@dims](https://github.com/dims)) + +* GCE: A role and clusterrole will now be provided with GCE/GKE for allowing the cloud-provider to post warning events on all services and watching configmaps in the kube-system namespace. No user action is required. ([#59686](https://github.com/kubernetes/kubernetes/pull/59686), [@nicksardo](https://github.com/nicksardo)) + +* Wait for kubedns to be ready when collecting the cluster IP. ([#57337](https://github.com/kubernetes/kubernetes/pull/57337), [@wwwtyro](https://github.com/wwwtyro)) + +# External Dependencies +* The supported etcd server version is 3.1.12, as compared to 3.0.17 in v1.9 ([#60988](https://github.com/kubernetes/kubernetes/pull/60988)) +* The validated docker versions are the same as for v1.9: 1.11.2 to 1.13.1 and 17.03.x ([ref](https://github.com/kubernetes/kubernetes/blob/master/test/e2e_node/system/docker_validator_test.go)) +* The Go version is go1.9.3, as compared to go1.9.2 in v1.9. ([#59012](https://github.com/kubernetes/kubernetes/pull/59012)) +* The minimum supported go is the same as for v1.9: go1.9.1. ([#55301](https://github.com/kubernetes/kubernetes/pull/55301)) +* CNI is the same as v1.9: v0.6.0 ([#51250](https://github.com/kubernetes/kubernetes/pull/51250)) +* CSI is updated to 0.2.0 as compared to 0.1.0 in v1.9. ([#60736](https://github.com/kubernetes/kubernetes/pull/60736)) +* The dashboard add-on has been updated to v1.8.3, as compared to 1.8.0 in v1.9. ([#517326](https://github.com/kubernetes/kubernetes/pull/57326)) +* Heapster has is the same as v1.9: v1.5.0. It will be upgraded in v1.11. ([ref](https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/cluster-monitoring/google/heapster-controller.yaml)) +* Cluster Autoscaler has been updated to v1.2.0. ([#60842](https://github.com/kubernetes/kubernetes/pull/60842), [@mwielgus](https://github.com/mwielgus)) +* Updates kube-dns to v1.14.8 ([#57918](https://github.com/kubernetes/kubernetes/pull/57918), [@rramkumar1](https://github.com/rramkumar1)) +* Influxdb is unchanged from v1.9: v1.3.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +* Grafana is unchanged from v1.9: v4.4.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +* CAdvisor is v0.29.1 ([#60867](https://github.com/kubernetes/kubernetes/pull/60867)) +* fluentd-gcp-scaler is v0.3.0 ([#61269](https://github.com/kubernetes/kubernetes/pull/61269)) +* Updated fluentd in fluentd-es-image to fluentd v1.1.0 ([#58525](https://github.com/kubernetes/kubernetes/pull/58525), [@monotek](https://github.com/monotek)) +* fluentd-elasticsearch is v2.0.4 ([#58525](https://github.com/kubernetes/kubernetes/pull/58525)) +* Updated fluentd-gcp to v3.0.0. ([#60722](https://github.com/kubernetes/kubernetes/pull/60722)) +* Ingress glbc is v1.0.0 ([#61302](https://github.com/kubernetes/kubernetes/pull/61302)) +* OIDC authentication is coreos/go-oidc v2 ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) +* Updated fluentd-gcp updated to v2.0.11. ([#56927](https://github.com/kubernetes/kubernetes/pull/56927), [@x13n](https://github.com/x13n)) +* Calico has been updated to v2.6.7 ([#59130](https://github.com/kubernetes/kubernetes/pull/59130), [@caseydavenport](https://github.com/caseydavenport)) diff --git a/releases/release-1.10/release_team.md b/releases/release-1.10/release_team.md index d8bbd0b670a..9ca44173f79 100644 --- a/releases/release-1.10/release_team.md +++ b/releases/release-1.10/release_team.md @@ -1,15 +1,15 @@ -| **Role** | **Name** (**GitHub/Slack ID**) | **Shadow Name(s) (GitHub/Slack ID), ...** | -| ------ | ------ | ------ | -| Lead | Jaice Singer DuMars ([@jdumars](https://github.com/jdumars)) | | -| Features | Ihor Dvoretskyi ([@idvoretskyi](https://github.com/idvoretskyi)) | | -| CI Signal | Sen Lu ([@krzyzacy](https://github.com/krzyzacy)) | | -| Test Infra | Cole Wagner ([@cjwagner](https://github.com/cjwagner)) | Benjamin Elder ([@BenTheElder](https://github.com/BenTheElder)) | -| Bug Triage | Josh Berkus ([@jberkus](https://github.com/jberkus))| Tim Pepper ([@tpepper](https://github.com/tpepper))| -| Branch Manager | Caleb Miles ([@calebamiles](https://github.com/calebamiles)) | | -| Docs | Jennifer Rondeau ([@Bradamant3](https://github.com/Bradamant3)) | | -| Release Notes | Nick Chase ([@nickchase](https://github.com/nickchase)) | Noah Abrahams ([@qedrakmar](https://github.com/qedrakmar)) | -| Communications | Natasha Woods (@nwoods) | Kaitlyn Barnard / Caitlyn O'Connell | -| Patch Release Manager | Maciek Pytel ([@MaciekPytel](https://github.com/MaciekPytel)) | | -| Approval Notifier | k8s-ci-robot ([@k8s-ci-robot](https://github.com/k8s-ci-robot)) | | - -Special thanks: Jordan Liggitt ([@liggitt](https://github.com/liggitt)), Davanum Srinivas ([@dims](https://github.com/dims)), Christoph Blecker ([@cblecker](https://github.com/cblecker)) +| **Role** | **Name** (**GitHub/Slack ID**) | **Shadow Name(s) (GitHub/Slack ID), ...** | +| ------ | ------ | ------ | +| Lead | Jaice Singer DuMars ([@jdumars](https://github.com/jdumars)) | | +| Features | Ihor Dvoretskyi ([@idvoretskyi](https://github.com/idvoretskyi)) | | +| CI Signal | Sen Lu ([@krzyzacy](https://github.com/krzyzacy)) | | +| Test Infra | Cole Wagner ([@cjwagner](https://github.com/cjwagner)) | Benjamin Elder ([@BenTheElder](https://github.com/BenTheElder)) | +| Bug Triage | Josh Berkus ([@jberkus](https://github.com/jberkus))| Tim Pepper ([@tpepper](https://github.com/tpepper))| +| Branch Manager | Caleb Miles ([@calebamiles](https://github.com/calebamiles)) | | +| Docs | Jennifer Rondeau ([@Bradamant3](https://github.com/Bradamant3)) | | +| Release Notes | Nick Chase ([@nickchase](https://github.com/nickchase)) | Noah Abrahams ([@qedrakmar](https://github.com/qedrakmar)) | +| Communications | Natasha Woods (@nwoods) | Kaitlyn Barnard / Caitlyn O'Connell | +| Patch Release Manager | Maciek Pytel ([@MaciekPytel](https://github.com/MaciekPytel)) | | +| Approval Notifier | k8s-ci-robot ([@k8s-ci-robot](https://github.com/k8s-ci-robot)) | | + +Special thanks: Jordan Liggitt ([@liggitt](https://github.com/liggitt)), Davanum Srinivas ([@dims](https://github.com/dims)), Christoph Blecker ([@cblecker](https://github.com/cblecker)) diff --git a/releases/release-1.11/README.md b/releases/release-1.11/README.md index dfeb66ab9a3..d32e12c37b6 100644 --- a/releases/release-1.11/README.md +++ b/releases/release-1.11/README.md @@ -1,150 +1,150 @@ -# Eleventy-One: A Long-Expected Release - -![Hobbit Hole with Kubernetes Logo.](long_expected.png) - -# Kubernetes 1.11 Release Schedule - -*Handy Links* - -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.11/release_team.md) -* [Zoom](http://bit.ly/k8s111-zoom) -* [Slack](https://kubernetes.slack.com/messages/sig-release/) -* [Forum](https://groups.google.com/forum/#!forum/kubernetes-sig-release) -* [Feature Tracking Sheet](http://bit.ly/k8s111-features) -* [Milestone Process](https://github.com/kubernetes/community/blob/master/contributors/devel/release/issues.md) -* [Meeting Minutes](http://bit.ly/k8s111-minutes) -* [CI Signal Report](http://bit.ly/k8s111-cisignal) -* [Retrospective Document](http://bit.ly/k8s111-retro) - -**tl;dr** The 1.11 release cycle begins on **Tuesday, April 3rd, 2018**, and ends on release day, **Tuesday, June 26th**. Feature freeze is **Tuesday, April 24th**. Code freeze begins **Tuesday, June 5th** and ends **Tuesday, June 19th**. Docs must be completed and reviewed by **Friday, June 11th**. - -## Notes About this Release - -* The Release Team will be using a conditional process to potentially shorten Code Freeze, [see below](#conditionally-shortening-code-freeze). -* We have changed [burndown times]() to make it easier for more contributors to attend. -* The feature process is remaining as it has in prior releases. -* Features that don't have complete code and tests by [Code Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.11/release-1.11.md#code-freeze) may be disabled by the release team before cutting the first beta. -* The release team will escalate [release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) failures to SIGs throughout the cycle, not just near release cuts. -* Key deliverables (e.g. initial release cuts) tend to be scheduled on Tuesdays to maintain context while ramping up and then responding to any problems. The final release will be on a Wednesday in keeping with prior practice. -* The release length is nearly 12 weeks - -## Timeline - - -| **What** | **Who** | **APR** | **MAY** | **JUN** | **JUL** | **DEV WEEK** | **TEST GATES** | -| --- | --- | --- | --- | --- | --- | --- | --- | -| Start of Release Cycle | Lead | 2| | | | week 1 | -| Finalize Schedule | Lead | 4 | -| Begin collecting planned work from SIGs | Lead, Features Lead | 9| | | | week 2 | -| Begin weekly release team meetings | Lead | 10 | -| Begin weekly status reports at Community | Lead, Shadow | 12 | -| Finalize Release Team | Lead | 16 | -| Start Release Notes Draft | Release Notes Lead | 17 | || | week 3 | -| Clean up features repo | Features Lead | 17 | -| 1.11.0-alpha.1 release | Branch Manager | 18 | || | |master-blocking | -| "Feature Freeze" begins (EOD PST) | Features Lead | 24 | || | week 4 | -| 1.11.0-alpha.2 release | Branch Manager | |2 | | | week 5 | master-blocking | -| Blog post: what we're working on for 1.11 | Communications | |10 | | | week 6 | -| 1.11.0-beta.0 release | Branch Manager | |15 | | | week 7 | master-blocking, master-upgrade | -| [1st stability evaluation to shorten Code Freeze](#conditionally-shortening-code-freeze) | Release Lead | | 18 | | | | master-blocking, master-upgrade | -| Create 'release-1.11' branch and begin daily branch | Branch Manager | | 15 | -| All release branch CI jobs created | Test Infra Lead | |18 | -| Begin Code Slush | Bot, Lead | | 29 | | | week 9 | -| Docs deadline - Open placeholder PRs | Docs Lead | | 25 | | | week 8 | | -| All Issues & PRs must have complete labels | Bug Triage | | 29 | -| | 1.11-blocking, master-blocking, master-upgrade | -| 1.11.0-beta.1 release | Branch Manager | | 30 | || | 1.11-blocking, master-blocking, master-upgrade | -| Begin code freeze (EOD PST) | Bot, Lead | | | 5 | | week 10 | 1.11-blocking, master-blocking, master-upgrade | -| Begin pruning | Lead and release team | | | 5 | -| Begin MWF Burndown meetings | Lead | | | 1 | -| Unapproved/non-critical Issues/PRs get kicked out | Bot, Bug Triage | | | 1 | -| Docs deadline - PRs ready for review | Docs Lead | | | 4 | -| 1.11.0-beta.2 release | Branch Manager | | | 7 | |week 10 | 1.11-blocking, master-blocking, master-upgrade | -| Docs complete - All PRs reviewed and ready to merge | Docs Lead | | | 11 | |week 11 -| Begin M-F Burndown meetings | Lead | | | 18 | -| End of code freeze (EOD PST) | Bot, Lead | | | 19 | |week 12 | -| Perform final branch | Branch Manager | | | 20 | -| 1.11.0-rc.1 release | Branch Manager | | | 20 | | | 1.11-blocking, master-blocking, master-upgrade | -| Master branch re-opens for 1.12 | Bot, Branch Manager | | | 20 | -| PRs for v1.11.0 must be cherry picked to release-1.11 | Branch Manager | | | 21 | -| Notify kubernetes-dev of lifting code freeze | Lead | | | 21 | -| v1.11.0 | Branch Manager | | | 26 | |week 13 | 1.11-blocking | -| v1.12.0-alpha.1 | Branch Manager | || | 2 -| 1.12 Release Cycle Begins | Next Lead | || | 9 | -| Release retrospective | Community | || | 12 | - -## Details - -### Conditionally Shortening Code Freeze - -*Update: due to fairly stable test results and low bug counts, the Release Team shortened Code Freeze per the below* - -In an effort to make the Code Freeze period shorter, and allow more time for feature development, the Release Team will be testing out a procedure for postponing it based on release stability. - -On **May 18th**, the Release Team will evaluate the stability of 1.11. This stability will be primarily based on "clean signal", primarily that all tests in [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) and [master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) are passing and have been passing for a few days. If the tests boards are green, the release team will announce delaying the start of Code Slush and Code Freeze by one week each (to **May 29** and **June 5**) on that day. - -If Code Freeze is not postponed on May 18th, then on **May 25** the Release Team will evaluate again. This evaluation will be based primarily on the three test suites (master-blocking, master-upgrade, and 1.11-blocking), and if passed, Code Freeze will be postponed by one week, to **June 5th**. - -Code Freeze will end on **June 19th** regardless, unless that is delayed for unrelated reasons. - -If we are able to shorten Code Freeze, the 1.12 Release Team will take that into account when setting the 1.12 schedule. - -### Feature Freeze - -All features going into the release must have an associated issue in the features repo by Tuesday, April 24th. That issue must be in the 1.11 milestone. SIG "themes" should also be in the release notes draft at this time to prepare for blog posts and release marketing. Any work the SIG wants publicized needs to be called out to the Features Lead so the Release Team communications lead can work with SIG-PM and the CNCF. - -### Code Slush - -Starting on Tuesday, May 29th, only PRs labeled by their owner SIGs with [`status/approved-for-milestone`](/ephemera/issues.md) will be allowed to merge into the master branch. All others will be deferred until the end of Code Freeze, when master opens back up for the next release cycle. If necessary, the release team can add the `status/approved-for-milestone` label in cases where the SIG approvers do not have permissions to do so. - -At this time, any issues/PRs with incomplete labels, or which are "stale" will be removed from the release. The release team will work with SIGs to make sure that labels are complete prior to removal. - -Code Slush begins prior to Code Freeze to help reduce noise from miscellaneous changes that aren't related to issues that SIGs have approved for the milestone. Feature work is still allowed at this point, but it must follow the process to get approved for the milestone. SIGs are the gatekeepers of this label, not the release team. - -#### Exceptions - -Starting at Code Slush, the release team will solicit and rule on [exception requests](https://github.com/kubernetes/features/blob/master/EXCEPTIONS.md) for feature and test work that is unlikely to be done by Code Freeze. As with the `status/approved-for-milestone` label, the exception approval is the responsibility of the SIG or SIGs labeled in the pull request. The release team may intervene or deny the request only if it poses a risk to release quality, or could negatively impact the overall timeline. Changes introduced at this point should be well-tested, well-understood, limited in architectural scope, and low risk. All of those factors should be considered in the approval process. - -### Code Freeze - -All features going into the release must be code-complete (including tests) and have docs PRs open by Tuesday, June 5th. - -The docs PRs don't have to be ready to merge, but it should be clear what the topic will be and who is responsible for writing it. This person will become the primary contact for the documentation lead. It’s incredibly important that documentation work gets completed as quickly as possible. - -After this point, only release-blocking issues and PRs will be allowed in the milestone. The milestone bot will remove anything that lacks the priority/critical-urgent label, as well as other required labels. - -### Pruning - -Features that are partially implemented and/or lack sufficient tests may be considered for pruning beginning after code freeze, unless they've been granted exceptions. - -The release team will work with SIGs and feature owners to evaluate each case, but for example, pruning could include actions such as: - -* Disabling the use of a new API or field -* Switching the default value of a flag or field -* Moving a new API or field behind an Alpha feature gate -* Reverting commits or deleting code - -This needs to occur before 1.11.0-beta.1 is cut so we have time to gather signal on whether the system is stable in this state. These are considered drastic measures, so the release team will strive to coordinate at-risk work with SIGs before this time. The goal is to make code freeze, and overall project transparency, enforceable despite the lack of a feature branch process. - -### Docs - -If a feature needs documentation, enter Yes in the feature tracking spreadsheet and add a link to the documentation PR. You can open documentation PRs in the [kubernetes/website](https://github.com/kubernetes/website) repository. If you have questions, the release documentation lead, or representatives from SIG-Docs will be happy to assist you. - -For documentation PRs: - -* Open PRs against the release-1.11 branch based off of the 1.11 release PR. The documentation workflow uses feature branches for release documentation, rather than basing from master. **Be sure to open your PR against the release branch**. -* Add your PR to the 1.11 Release milestone. - -### Burndown - -Burndown meetings are held on Mondays, Wednesdays and Fridays, alternating between 8am Pacific and 10am Pacific, until about a week before the scheduled final release when they become every day. - -Join the [Kubernetes Milestone Burndown Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) to get the calendar invite, or subscribe to the SIG-Release calendar. - -The intent of these meetings is to: - -* Focus on fixing bugs, eliminating test flakes and general release stabilization. -* Ensure docs and release notes are written and accurate. -* Identify all features going into the release, and make sure alpha, beta, ga is marked in features repo. -* Provide a [one-stop view of release progress](http://bit.ly/kube111-burndown) including relevant release metrics. -* Host SIG stakeholders for updates. +# Eleventy-One: A Long-Expected Release + +![Hobbit Hole with Kubernetes Logo.](long_expected.png) + +# Kubernetes 1.11 Release Schedule + +*Handy Links* + +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.11/release_team.md) +* [Zoom](http://bit.ly/k8s111-zoom) +* [Slack](https://kubernetes.slack.com/messages/sig-release/) +* [Forum](https://groups.google.com/forum/#!forum/kubernetes-sig-release) +* [Feature Tracking Sheet](http://bit.ly/k8s111-features) +* [Milestone Process](https://github.com/kubernetes/community/blob/master/contributors/devel/release/issues.md) +* [Meeting Minutes](http://bit.ly/k8s111-minutes) +* [CI Signal Report](http://bit.ly/k8s111-cisignal) +* [Retrospective Document](http://bit.ly/k8s111-retro) + +**tl;dr** The 1.11 release cycle begins on **Tuesday, April 3rd, 2018**, and ends on release day, **Tuesday, June 26th**. Feature freeze is **Tuesday, April 24th**. Code freeze begins **Tuesday, June 5th** and ends **Tuesday, June 19th**. Docs must be completed and reviewed by **Friday, June 11th**. + +## Notes About this Release + +* The Release Team will be using a conditional process to potentially shorten Code Freeze, [see below](#conditionally-shortening-code-freeze). +* We have changed [burndown times]() to make it easier for more contributors to attend. +* The feature process is remaining as it has in prior releases. +* Features that don't have complete code and tests by [Code Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.11/release-1.11.md#code-freeze) may be disabled by the release team before cutting the first beta. +* The release team will escalate [release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) failures to SIGs throughout the cycle, not just near release cuts. +* Key deliverables (e.g. initial release cuts) tend to be scheduled on Tuesdays to maintain context while ramping up and then responding to any problems. The final release will be on a Wednesday in keeping with prior practice. +* The release length is nearly 12 weeks + +## Timeline + + +| **What** | **Who** | **APR** | **MAY** | **JUN** | **JUL** | **DEV WEEK** | **TEST GATES** | +| --- | --- | --- | --- | --- | --- | --- | --- | +| Start of Release Cycle | Lead | 2| | | | week 1 | +| Finalize Schedule | Lead | 4 | +| Begin collecting planned work from SIGs | Lead, Features Lead | 9| | | | week 2 | +| Begin weekly release team meetings | Lead | 10 | +| Begin weekly status reports at Community | Lead, Shadow | 12 | +| Finalize Release Team | Lead | 16 | +| Start Release Notes Draft | Release Notes Lead | 17 | || | week 3 | +| Clean up features repo | Features Lead | 17 | +| 1.11.0-alpha.1 release | Branch Manager | 18 | || | |master-blocking | +| "Feature Freeze" begins (EOD PST) | Features Lead | 24 | || | week 4 | +| 1.11.0-alpha.2 release | Branch Manager | |2 | | | week 5 | master-blocking | +| Blog post: what we're working on for 1.11 | Communications | |10 | | | week 6 | +| 1.11.0-beta.0 release | Branch Manager | |15 | | | week 7 | master-blocking, master-upgrade | +| [1st stability evaluation to shorten Code Freeze](#conditionally-shortening-code-freeze) | Release Lead | | 18 | | | | master-blocking, master-upgrade | +| Create 'release-1.11' branch and begin daily branch | Branch Manager | | 15 | +| All release branch CI jobs created | Test Infra Lead | |18 | +| Begin Code Slush | Bot, Lead | | 29 | | | week 9 | +| Docs deadline - Open placeholder PRs | Docs Lead | | 25 | | | week 8 | | +| All Issues & PRs must have complete labels | Bug Triage | | 29 | +| | 1.11-blocking, master-blocking, master-upgrade | +| 1.11.0-beta.1 release | Branch Manager | | 30 | || | 1.11-blocking, master-blocking, master-upgrade | +| Begin code freeze (EOD PST) | Bot, Lead | | | 5 | | week 10 | 1.11-blocking, master-blocking, master-upgrade | +| Begin pruning | Lead and release team | | | 5 | +| Begin MWF Burndown meetings | Lead | | | 1 | +| Unapproved/non-critical Issues/PRs get kicked out | Bot, Bug Triage | | | 1 | +| Docs deadline - PRs ready for review | Docs Lead | | | 4 | +| 1.11.0-beta.2 release | Branch Manager | | | 7 | |week 10 | 1.11-blocking, master-blocking, master-upgrade | +| Docs complete - All PRs reviewed and ready to merge | Docs Lead | | | 11 | |week 11 +| Begin M-F Burndown meetings | Lead | | | 18 | +| End of code freeze (EOD PST) | Bot, Lead | | | 19 | |week 12 | +| Perform final branch | Branch Manager | | | 20 | +| 1.11.0-rc.1 release | Branch Manager | | | 20 | | | 1.11-blocking, master-blocking, master-upgrade | +| Master branch re-opens for 1.12 | Bot, Branch Manager | | | 20 | +| PRs for v1.11.0 must be cherry picked to release-1.11 | Branch Manager | | | 21 | +| Notify kubernetes-dev of lifting code freeze | Lead | | | 21 | +| v1.11.0 | Branch Manager | | | 26 | |week 13 | 1.11-blocking | +| v1.12.0-alpha.1 | Branch Manager | || | 2 +| 1.12 Release Cycle Begins | Next Lead | || | 9 | +| Release retrospective | Community | || | 12 | + +## Details + +### Conditionally Shortening Code Freeze + +*Update: due to fairly stable test results and low bug counts, the Release Team shortened Code Freeze per the below* + +In an effort to make the Code Freeze period shorter, and allow more time for feature development, the Release Team will be testing out a procedure for postponing it based on release stability. + +On **May 18th**, the Release Team will evaluate the stability of 1.11. This stability will be primarily based on "clean signal", primarily that all tests in [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) and [master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) are passing and have been passing for a few days. If the tests boards are green, the release team will announce delaying the start of Code Slush and Code Freeze by one week each (to **May 29** and **June 5**) on that day. + +If Code Freeze is not postponed on May 18th, then on **May 25** the Release Team will evaluate again. This evaluation will be based primarily on the three test suites (master-blocking, master-upgrade, and 1.11-blocking), and if passed, Code Freeze will be postponed by one week, to **June 5th**. + +Code Freeze will end on **June 19th** regardless, unless that is delayed for unrelated reasons. + +If we are able to shorten Code Freeze, the 1.12 Release Team will take that into account when setting the 1.12 schedule. + +### Feature Freeze + +All features going into the release must have an associated issue in the features repo by Tuesday, April 24th. That issue must be in the 1.11 milestone. SIG "themes" should also be in the release notes draft at this time to prepare for blog posts and release marketing. Any work the SIG wants publicized needs to be called out to the Features Lead so the Release Team communications lead can work with SIG-PM and the CNCF. + +### Code Slush + +Starting on Tuesday, May 29th, only PRs labeled by their owner SIGs with [`status/approved-for-milestone`](/ephemera/issues.md) will be allowed to merge into the master branch. All others will be deferred until the end of Code Freeze, when master opens back up for the next release cycle. If necessary, the release team can add the `status/approved-for-milestone` label in cases where the SIG approvers do not have permissions to do so. + +At this time, any issues/PRs with incomplete labels, or which are "stale" will be removed from the release. The release team will work with SIGs to make sure that labels are complete prior to removal. + +Code Slush begins prior to Code Freeze to help reduce noise from miscellaneous changes that aren't related to issues that SIGs have approved for the milestone. Feature work is still allowed at this point, but it must follow the process to get approved for the milestone. SIGs are the gatekeepers of this label, not the release team. + +#### Exceptions + +Starting at Code Slush, the release team will solicit and rule on [exception requests](https://github.com/kubernetes/features/blob/master/EXCEPTIONS.md) for feature and test work that is unlikely to be done by Code Freeze. As with the `status/approved-for-milestone` label, the exception approval is the responsibility of the SIG or SIGs labeled in the pull request. The release team may intervene or deny the request only if it poses a risk to release quality, or could negatively impact the overall timeline. Changes introduced at this point should be well-tested, well-understood, limited in architectural scope, and low risk. All of those factors should be considered in the approval process. + +### Code Freeze + +All features going into the release must be code-complete (including tests) and have docs PRs open by Tuesday, June 5th. + +The docs PRs don't have to be ready to merge, but it should be clear what the topic will be and who is responsible for writing it. This person will become the primary contact for the documentation lead. It’s incredibly important that documentation work gets completed as quickly as possible. + +After this point, only release-blocking issues and PRs will be allowed in the milestone. The milestone bot will remove anything that lacks the priority/critical-urgent label, as well as other required labels. + +### Pruning + +Features that are partially implemented and/or lack sufficient tests may be considered for pruning beginning after code freeze, unless they've been granted exceptions. + +The release team will work with SIGs and feature owners to evaluate each case, but for example, pruning could include actions such as: + +* Disabling the use of a new API or field +* Switching the default value of a flag or field +* Moving a new API or field behind an Alpha feature gate +* Reverting commits or deleting code + +This needs to occur before 1.11.0-beta.1 is cut so we have time to gather signal on whether the system is stable in this state. These are considered drastic measures, so the release team will strive to coordinate at-risk work with SIGs before this time. The goal is to make code freeze, and overall project transparency, enforceable despite the lack of a feature branch process. + +### Docs + +If a feature needs documentation, enter Yes in the feature tracking spreadsheet and add a link to the documentation PR. You can open documentation PRs in the [kubernetes/website](https://github.com/kubernetes/website) repository. If you have questions, the release documentation lead, or representatives from SIG-Docs will be happy to assist you. + +For documentation PRs: + +* Open PRs against the release-1.11 branch based off of the 1.11 release PR. The documentation workflow uses feature branches for release documentation, rather than basing from master. **Be sure to open your PR against the release branch**. +* Add your PR to the 1.11 Release milestone. + +### Burndown + +Burndown meetings are held on Mondays, Wednesdays and Fridays, alternating between 8am Pacific and 10am Pacific, until about a week before the scheduled final release when they become every day. + +Join the [Kubernetes Milestone Burndown Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) to get the calendar invite, or subscribe to the SIG-Release calendar. + +The intent of these meetings is to: + +* Focus on fixing bugs, eliminating test flakes and general release stabilization. +* Ensure docs and release notes are written and accurate. +* Identify all features going into the release, and make sure alpha, beta, ga is marked in features repo. +* Provide a [one-stop view of release progress](http://bit.ly/kube111-burndown) including relevant release metrics. +* Host SIG stakeholders for updates. diff --git a/releases/release-1.11/exceptions.yaml b/releases/release-1.11/exceptions.yaml index e23414d5e27..5ebb118e4cd 100644 --- a/releases/release-1.11/exceptions.yaml +++ b/releases/release-1.11/exceptions.yaml @@ -1,17 +1,17 @@ -# Exceptions to code freeze requested in 1.11 -# Google Group: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown -# Release Team Lead: Josh Berkus (@jberkus) - -- name: "Update Istio addon manifest" - issue: "https://github.com/kubernetes/kubernetes/issues/64563" - thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/68ivj9MGBdU" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/64537" - status: "approved" - -- name: "Implement IPVS-based in-cluster service load balancing" - issue: "https://github.com/kubernetes/features/issues/265" - thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/MJrcqkLAcn0" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/58442" - status: "approved" +# Exceptions to code freeze requested in 1.11 +# Google Group: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown +# Release Team Lead: Josh Berkus (@jberkus) + +- name: "Update Istio addon manifest" + issue: "https://github.com/kubernetes/kubernetes/issues/64563" + thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/68ivj9MGBdU" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/64537" + status: "approved" + +- name: "Implement IPVS-based in-cluster service load balancing" + issue: "https://github.com/kubernetes/features/issues/265" + thread: "https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/MJrcqkLAcn0" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/58442" + status: "approved" diff --git a/releases/release-1.11/features.csv b/releases/release-1.11/features.csv index 73ead12da4d..96c2a1d1a51 100644 --- a/releases/release-1.11/features.csv +++ b/releases/release-1.11/features.csv @@ -1,29 +1,29 @@ -Maintainer(s):,,,,,,,,,,,,,,,,, -idvoretskyi (Ihor Dvoretskyi),,,,,,,,,,,,,,,,, -justaugustus (Stephen Augustus),,,,,,,,,,,,,,,,, - ,,, ,,,,,,,,,,,,,, -Feature Name,Feature Status,Stage Status,Stage,SIG,Assignee,k/k PR(s),Associated PR(s),Needs Docs?,Docs Status,k8s.io Docs PR,Test Status,Failing Tests,One Line Release Note Description,Needs Doc Review,Needs Tech Review,Merged,Notes -213: Provide RunAsGroup feature for Containers in a Pod,Planned,Graduating,Alpha,node,krmayankk,,,None Required,N/A,,,,Provide RunAsGroup feature for Containers in a Pod,,,,Pending e2e test -265: Implement IPVS-based in-cluster service load balancing,In Progress,Graduating,Stable,network,"m1093782566, Lion-Wei",,community#1978,Yes,Complete,8850,,,IPVS-based kube-proxy graduates to GA,,,,justaugustus: Exception approved by jberkus -279: Limit node access to API,In Progress,Graduating,Beta,auth,"liggitt, mikedanese",,,None Required,Complete,8911,,,The NodeRestriction admission plugin now prevents kubelets from modifying taints applied to their Node API object,,,, -281: Dynamic Kubelet Configuration,In Progress,Graduating,Beta,node,mtaufen,,,Yes,Complete,8766,,,New Kubelet configurations can be rolled out in a live cluster,,,, -284: Add support for resizing PVs,Planned,Graduating,Beta,storage,gnufied,,64288,Yes,Complete,Website#8896,,,Add support for resizing existing PVs,,,, -292: CRI validation test suite,Planned,Graduating,Stable,node,feiskyer,,community#2191,None Required,N/A,,,,Provide a serial of common validation test suites for Kubelet CRI,,,, -34: Add sysctl support,In Progress,Graduating,Beta,node,sttts,,,Yes,Complete,8804,,,Extending the current pod specification with support for namespaced kernel parameters (sysctls) set for each pod,,,, -427: Enable CoreDNS as a DNS plugin for Kubernetes,In Progress,Graduating,Stable,network,johnbelamaric,,PR list,Yes,Complete,several; see list in Associated PRs,,,"CoreDNS is now a GA option as the cluster DNS addon, and is the default when using kubeadm",,,,Broken down into multiple PRs. The list is provided in the `PR list` link (currently stored in the kubeadm repo). -498: StorageObjectInUseProtection (was Persistent Volume Claim Protection),In Progress,Graduating,Stable,storage,pospispa,,,Yes,Complete,8159,,,Prevent deletion of Storage Object that is In active Use (was Prevent deletion of Persistent Volume Claims that are used by a pod in 1.9),,,, -499: StorageObjectInUseProtection (was Persistent Volume Protection),In Progress,Graduating,Stable,storage,pospispa,,,Yes,Complete,8291,,,Prevent deletion of Storage Object that is In active Use (was Prevent deletion of Persistent Volume that is bound to a Persistent Volume Claim),,,, -502: ClusterRole Aggregation,In Progress,Graduating,Stable,auth,deads2k,,,Has Docs,N/A,already merged,,,Add a way for API extenders to add permissions to existing roles,,,, -513: Add support for Azure Virtual Machine Scale Sets,Planned,Graduating,Beta,azure,feiskyer,,,None Required,N/A,,,,Add beta support for Azure Virtual Machine Scale Sets (VMSS),,,, -514: Add Azure support to cluster-autoscaler,Planned,Graduating,Beta,azure,feiskyer,,,None Required,N/A,,,,Add beta Azure support to cluster-autoscaler,,,, -531: Add support for online resizing of PVs,In Progress,Net New,Alpha,storage,mlmhl,,community#1535,Yes,Complete,Website#8896,,,Allow PVs to be resized without having to terminate pods and unmount volume first,,,, -542: TokenRequest API and Kubelet integration,Planned,Net New,Alpha,auth,mikedanese,,,None Required,N/A,,,,Add a TokenRequest API to request bound serviceaccount tokens,,,, -544: Custom Resource Definition Versioning,In Progress,Net New,Beta,api-machinery,mbohlool,,,Yes,Complete,website#8834,,,Versioning for Custom Resources including a way to plug conversion for different versions,,,, -547: Add support for Windows Container Configuration in CRI,In Progress,Graduating,Beta,node,feiskyer,64009,,None Required,N/A,,,,Add security context for Windows Container Configuration in CRI,,,, -548: Schedule DaemonSet Pods by kube-scheduler,In Progress,Net New,Alpha,scheduling,k82cn,,,Yes,Complete,website#8842,,,"When the feature enabled, the DaemonSet pods is scheduled by default scheduler instead of DaemonSet controller.",,,, -"552: CRI: logging, stats, and more",Planned,Graduating,Beta,node,yujuhong,,,None Required,Complete,8665,Complete,,Continue improving CRI in various aspects to better support non-docker runtimes,,,, -554: Dynamic Maximum volume count,In Progress,Net New,Alpha,storage,gnufied,,,Yes,Complete,website#8871,,,Add support for dynamic and generic mechanism of maximum volume per node,,,, -559: Provide environment variables expansion in sub path mount,In Progress,Net New,Alpha,storage,kevtaylor,,,Yes,Complete,8835,Complete,,Provide environment variables expansion in sub path mount,,,, -564: Add pod priority and preemption,Planned,Graduating,Beta,scheduling,bsalamat,,,Yes,Complete,8144,,,"Pod priority and preemption enables Kubernetes scheduler to schedule more important Pods first and when cluster is out of resources, it removes less important pods to create room for more important ones. The importance is specified by priority.",,,, -571: Subresources for Custom Resources,Planned,Graduating,Beta,api-machinery,nikhita,,,Yes,Complete,8519,,,Subresources for Custom Resources is now beta and enabled by default.,,,, +Maintainer(s):,,,,,,,,,,,,,,,,, +idvoretskyi (Ihor Dvoretskyi),,,,,,,,,,,,,,,,, +justaugustus (Stephen Augustus),,,,,,,,,,,,,,,,, + ,,, ,,,,,,,,,,,,,, +Feature Name,Feature Status,Stage Status,Stage,SIG,Assignee,k/k PR(s),Associated PR(s),Needs Docs?,Docs Status,k8s.io Docs PR,Test Status,Failing Tests,One Line Release Note Description,Needs Doc Review,Needs Tech Review,Merged,Notes +213: Provide RunAsGroup feature for Containers in a Pod,Planned,Graduating,Alpha,node,krmayankk,,,None Required,N/A,,,,Provide RunAsGroup feature for Containers in a Pod,,,,Pending e2e test +265: Implement IPVS-based in-cluster service load balancing,In Progress,Graduating,Stable,network,"m1093782566, Lion-Wei",,community#1978,Yes,Complete,8850,,,IPVS-based kube-proxy graduates to GA,,,,justaugustus: Exception approved by jberkus +279: Limit node access to API,In Progress,Graduating,Beta,auth,"liggitt, mikedanese",,,None Required,Complete,8911,,,The NodeRestriction admission plugin now prevents kubelets from modifying taints applied to their Node API object,,,, +281: Dynamic Kubelet Configuration,In Progress,Graduating,Beta,node,mtaufen,,,Yes,Complete,8766,,,New Kubelet configurations can be rolled out in a live cluster,,,, +284: Add support for resizing PVs,Planned,Graduating,Beta,storage,gnufied,,64288,Yes,Complete,Website#8896,,,Add support for resizing existing PVs,,,, +292: CRI validation test suite,Planned,Graduating,Stable,node,feiskyer,,community#2191,None Required,N/A,,,,Provide a serial of common validation test suites for Kubelet CRI,,,, +34: Add sysctl support,In Progress,Graduating,Beta,node,sttts,,,Yes,Complete,8804,,,Extending the current pod specification with support for namespaced kernel parameters (sysctls) set for each pod,,,, +427: Enable CoreDNS as a DNS plugin for Kubernetes,In Progress,Graduating,Stable,network,johnbelamaric,,PR list,Yes,Complete,several; see list in Associated PRs,,,"CoreDNS is now a GA option as the cluster DNS addon, and is the default when using kubeadm",,,,Broken down into multiple PRs. The list is provided in the `PR list` link (currently stored in the kubeadm repo). +498: StorageObjectInUseProtection (was Persistent Volume Claim Protection),In Progress,Graduating,Stable,storage,pospispa,,,Yes,Complete,8159,,,Prevent deletion of Storage Object that is In active Use (was Prevent deletion of Persistent Volume Claims that are used by a pod in 1.9),,,, +499: StorageObjectInUseProtection (was Persistent Volume Protection),In Progress,Graduating,Stable,storage,pospispa,,,Yes,Complete,8291,,,Prevent deletion of Storage Object that is In active Use (was Prevent deletion of Persistent Volume that is bound to a Persistent Volume Claim),,,, +502: ClusterRole Aggregation,In Progress,Graduating,Stable,auth,deads2k,,,Has Docs,N/A,already merged,,,Add a way for API extenders to add permissions to existing roles,,,, +513: Add support for Azure Virtual Machine Scale Sets,Planned,Graduating,Beta,azure,feiskyer,,,None Required,N/A,,,,Add beta support for Azure Virtual Machine Scale Sets (VMSS),,,, +514: Add Azure support to cluster-autoscaler,Planned,Graduating,Beta,azure,feiskyer,,,None Required,N/A,,,,Add beta Azure support to cluster-autoscaler,,,, +531: Add support for online resizing of PVs,In Progress,Net New,Alpha,storage,mlmhl,,community#1535,Yes,Complete,Website#8896,,,Allow PVs to be resized without having to terminate pods and unmount volume first,,,, +542: TokenRequest API and Kubelet integration,Planned,Net New,Alpha,auth,mikedanese,,,None Required,N/A,,,,Add a TokenRequest API to request bound serviceaccount tokens,,,, +544: Custom Resource Definition Versioning,In Progress,Net New,Beta,api-machinery,mbohlool,,,Yes,Complete,website#8834,,,Versioning for Custom Resources including a way to plug conversion for different versions,,,, +547: Add support for Windows Container Configuration in CRI,In Progress,Graduating,Beta,node,feiskyer,64009,,None Required,N/A,,,,Add security context for Windows Container Configuration in CRI,,,, +548: Schedule DaemonSet Pods by kube-scheduler,In Progress,Net New,Alpha,scheduling,k82cn,,,Yes,Complete,website#8842,,,"When the feature enabled, the DaemonSet pods is scheduled by default scheduler instead of DaemonSet controller.",,,, +"552: CRI: logging, stats, and more",Planned,Graduating,Beta,node,yujuhong,,,None Required,Complete,8665,Complete,,Continue improving CRI in various aspects to better support non-docker runtimes,,,, +554: Dynamic Maximum volume count,In Progress,Net New,Alpha,storage,gnufied,,,Yes,Complete,website#8871,,,Add support for dynamic and generic mechanism of maximum volume per node,,,, +559: Provide environment variables expansion in sub path mount,In Progress,Net New,Alpha,storage,kevtaylor,,,Yes,Complete,8835,Complete,,Provide environment variables expansion in sub path mount,,,, +564: Add pod priority and preemption,Planned,Graduating,Beta,scheduling,bsalamat,,,Yes,Complete,8144,,,"Pod priority and preemption enables Kubernetes scheduler to schedule more important Pods first and when cluster is out of resources, it removes less important pods to create room for more important ones. The importance is specified by priority.",,,, +571: Subresources for Custom Resources,Planned,Graduating,Beta,api-machinery,nikhita,,,Yes,Complete,8519,,,Subresources for Custom Resources is now beta and enabled by default.,,,, 88: Supporting out-of-tree/external Cloud Providers,Planned,Graduating,Beta,cloud-provider,andrewsykim,,,None Required,Complete,8756,,,Supporting out-of-tree/external cloud providers. ,,,, \ No newline at end of file diff --git a/releases/release-1.11/release-1.11.md b/releases/release-1.11/release-1.11.md index 7e6af0b897d..d803ddd0e25 100644 --- a/releases/release-1.11/release-1.11.md +++ b/releases/release-1.11/release-1.11.md @@ -1 +1 @@ -Please see [README.md](README.md) instead +Please see [README.md](README.md) instead diff --git a/releases/release-1.11/release_team.md b/releases/release-1.11/release_team.md index ee54bd89f53..2a883df93e1 100644 --- a/releases/release-1.11/release_team.md +++ b/releases/release-1.11/release_team.md @@ -1,20 +1,20 @@ -| **Role** | **Name** (**GitHub/Slack ID**) | **Shadow Name(s) (GitHub/Slack ID), ...** | -| ------ | ------ | ------ | -| Lead | Josh Berkus ([@jberkus](https://github.com/jberkus)) | | -| Features | Ihor Dvoretskyi ([@idvoretskyi](https://github.com/idvoretskyi)) | Stephen Augustus ([@justaugustus](https://github.com/justaugustus)) | -| CI Signal | Aishwarya Sundar ([@AishSundar](https://github.com/AishSundar)) | Mohammed Zeeshan Ahmed ([@mohammedzee1000](https://github.com/mohammedzee1000)) | -| Test Infra | Benjamin Elder ([@BenTheElder](https://github.com/BenTheElder)) | Cole Wagner ([@cjwagner](https://github.com/cjwagner)/cjwagner) | -| Bug Triage | Tim Pepper ([@tpepper](https://github.com/tpepper)) | Cole Mickens ([@colemickens](https://github.com/colemickens)) | -| Branch Manager | Caleb Miles ([@calebamiles](https://github.com/calebamiles)) | Sen Lu ([@krzyzacy](https://github.com/krzyzacy)) | -| Docs | Misty Linville ([@misty](https://github.com/mistyhacks)) | Zach Arnold ([@zparnold](https://github.com/zparnold)), Zach Corleissen ([@zacharysarah](https://github.com/zacharysarah)) | -| Release Notes | Nick Chase ([@nickchase](https://github.com/nickchase)) | Mike Arpaia ([@marpaia](https://github.com/marpaia)) | -| Communications | Kaitlyn Barnard ([@kbarnard10](https://github.com/kbarnard10)) | Andrew Hatfield ([@andrewhatfield](https://github.com/andrewhatfield))| -| Patch Release Manager | Anirudh Ramanathan ([@foxish](https://github.com/foxish)) | | -| Approval Notifier | k8s-ci-robot ([@k8s-ci-robot](https://github.com/k8s-ci-robot)) | | | - -Special thanks: - -- Christoph Blecker ([@cblecker](https://github.com/cblecker)) -- Jordan Liggitt ([@liggitt](https://github.com/liggitt)) -- Davanum Srinivas ([@dims](https://github.com/dims)) -- Shyam Jeedigunta ([@shyamjvs](https://github.com/shyamjvs)) +| **Role** | **Name** (**GitHub/Slack ID**) | **Shadow Name(s) (GitHub/Slack ID), ...** | +| ------ | ------ | ------ | +| Lead | Josh Berkus ([@jberkus](https://github.com/jberkus)) | | +| Features | Ihor Dvoretskyi ([@idvoretskyi](https://github.com/idvoretskyi)) | Stephen Augustus ([@justaugustus](https://github.com/justaugustus)) | +| CI Signal | Aishwarya Sundar ([@AishSundar](https://github.com/AishSundar)) | Mohammed Zeeshan Ahmed ([@mohammedzee1000](https://github.com/mohammedzee1000)) | +| Test Infra | Benjamin Elder ([@BenTheElder](https://github.com/BenTheElder)) | Cole Wagner ([@cjwagner](https://github.com/cjwagner)/cjwagner) | +| Bug Triage | Tim Pepper ([@tpepper](https://github.com/tpepper)) | Cole Mickens ([@colemickens](https://github.com/colemickens)) | +| Branch Manager | Caleb Miles ([@calebamiles](https://github.com/calebamiles)) | Sen Lu ([@krzyzacy](https://github.com/krzyzacy)) | +| Docs | Misty Linville ([@misty](https://github.com/mistyhacks)) | Zach Arnold ([@zparnold](https://github.com/zparnold)), Zach Corleissen ([@zacharysarah](https://github.com/zacharysarah)) | +| Release Notes | Nick Chase ([@nickchase](https://github.com/nickchase)) | Mike Arpaia ([@marpaia](https://github.com/marpaia)) | +| Communications | Kaitlyn Barnard ([@kbarnard10](https://github.com/kbarnard10)) | Andrew Hatfield ([@andrewhatfield](https://github.com/andrewhatfield))| +| Patch Release Manager | Anirudh Ramanathan ([@foxish](https://github.com/foxish)) | | +| Approval Notifier | k8s-ci-robot ([@k8s-ci-robot](https://github.com/k8s-ci-robot)) | | | + +Special thanks: + +- Christoph Blecker ([@cblecker](https://github.com/cblecker)) +- Jordan Liggitt ([@liggitt](https://github.com/liggitt)) +- Davanum Srinivas ([@dims](https://github.com/dims)) +- Shyam Jeedigunta ([@shyamjvs](https://github.com/shyamjvs)) diff --git a/releases/release-1.12/README.md b/releases/release-1.12/README.md index ce2f4708f46..4031e24e951 100644 --- a/releases/release-1.12/README.md +++ b/releases/release-1.12/README.md @@ -1,147 +1,147 @@ -# 1.12: A next iteration in the evolving stable distributed system. - -"Class 4: Nearly all initial patterns evolve into structures that interact in complex and interesting ways, with the formation of local structures that are able to survive for long periods of time." ([see Cellular Automaton](https://en.wikipedia.org/wiki/Cellular_automaton); see also [TestGrid.k8s.io](https://testgrid.k8s.io)) - -![Conway's Game of Life configuration in shape of Kubernetes logo](1.12_life.png) - -# Kubernetes 1.12 Release Schedule - -*Handy Links* - -* [This document](https://git.k8s.io/sig-release/releases/release-1.12/README.md) -* [Release Team](https://git.k8s.io/sig-release/releases/release-1.12/release_team.md) -* Zoom: join Google Group to receive meeting invite -* [Slack](https://kubernetes.slack.com/messages/sig-release/) -* [Forum](https://groups.google.com/forum/#!forum/kubernetes-sig-release) -* [Feature Tracking Sheet](http://bit.ly/k8s112-features) -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/release.md) -* [Meeting Minutes](http://bit.ly/k8s112-minutes) -* [CI Signal Report](http://bit.ly/k8s112-cisignal) -* [Retrospective Document](http://bit.ly/k8s112-retro) - -**tl;dr** The 1.12 release cycle begins on **Monday, July 2nd, 2018**, and ends on release day, ~~Tuesday, September 25, 2018~~ **Thursday, September 27, 2018** . Feature freeze is **Tuesday, July 31, 2018**. Code freeze begins **Tuesday, September 4, 2018** and ends **Wednesday, September 19, 2018**, but [may be vary depending on CI Signal](#conditionally-shortened-code-freeze). Docs must be completed and reviewed by **Tuesday, September 18, 2018**. Release blocking test case additions must be completed by in conjunction with features by code freeze. - -## Notes About this Release - -* The Release Team will continue with the shortened Code Freeze, [see below](#conditionally-shortened-code-freeze). -* The feature process is remaining as it has in prior releases. -* Features that don't have complete code and tests by [Code Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.12/release-1.12.md#code-freeze) may be disabled by the release team before cutting the first beta. -* The release team will escalate [release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) and [release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) failures to SIGs throughout the cycle, not just near release cuts. -* Key deliverables (e.g. initial release cuts) tend to be scheduled on Tuesdays to maintain context while ramping up and then responding to any problems. The final release will also be on a Tuesday in keeping with prior practice. -* The release cycle length is approximately 12 weeks. - -## Timeline - - -| **What** | **Who** | **JUL** | **AUG** | **SEP** | **OCT** | **DEV WEEK** | **TEST GATES** | -| --- | --- | --- | --- | --- | --- | --- | --- | -| Start of Release Cycle | Lead | 2| | | | week 1 | | -| Finalize Schedule | Lead | 6 | | | | | | -| Begin collecting planned work from SIGs | Lead, Features Lead | 9| | | | week 2 | | -| Begin weekly release team meetings | Lead | 9 | | | | | | -| Begin weekly status reports at Community | Lead, Shadow | 12 | | | | | | -| Finalize Release Team | Lead | 13 | | | | | | -| Start Release Notes Draft | Release Notes Lead | 17 | || | week 3 | | -| Clean up features repo | Features Lead | 17 | | | | | | -| "Feature Freeze" begins (EOD PST) | Features Lead | 31 | || | week 4 | | -| 1.12.0-alpha.1 release | Branch Manager | 31 | | | | week 5 | [master-blocking], [master-upgrade] | -| Blog post: what we're working on for 1.12 | Communications | | 9 | | | week 6 | | -| All release-1.8 CI jobs/testgrid removed | Test Infra Lead | |14 | | | | | -| Create 'release-1.12' branch and begin daily branch | Branch Manager | |14 | | | | | -| v1.13.0-alpha.0 | Branch Manager | | 14 | | | | | -| 1.12.0-beta.0 released from branch | Branch Manager | | 14 | | | week 7 | [master-blocking], [master-upgrade] | -| All release-1.12 CI jobs/testgrid created | Test Infra Lead | |17 | | | | | -| Docs deadline - Open placeholder PRs | Docs Lead | |21 | | | | | -| Begin MWF Burndown meetings | Lead | | 27 | | | | | -| Begin Code Slush | Bot, Lead | | 28 | | | week 9 | | -| All Issues & PRs must have complete labels | Bug Triage | | 29 | | | | | -| Begin code and test freeze (EOD PST) | Bot, Lead | | | 4 | | week 10 | [1.12-blocking], [master-blocking], [master-upgrade] | -| Begin pruning | Lead and release team | | | 4 | | | | -| 1.12.0-beta.1 released from branch | Branch Manager | | | 4 || | [1.12-blocking], [master-blocking], [master-upgrade] | -| Unapproved/non-critical Issues/PRs get kicked out | Bot, Bug Triage | | | 7 | | | | -| Docs deadline - PRs ready for review | Docs Lead | | | 7 | | week 11 | | -| Begin M-F Burndown meetings | Lead | | | 10 | | | | -| 1.12.0-beta.2 released from branch | Branch Manager | | | 11 | | | [1.12-blocking], [master-blocking], [master-upgrade] | -| Docs complete - All PRs reviewed and ready to merge | Docs Lead | | | 18 | | week 12 | | -| 1.12.0-rc.1 released from branch | Branch Manager | | | 18 | | | [1.12-blocking], [master-blocking], [master-upgrade] | -| End of code freeze (EOD PST): Master branch re-opens for 1.12 | Bot, Branch Manager, Lead | | | 19 | | | | -| PRs for v1.12.0 must be cherry picked to release-1.12 | Branch Manager | | | 19 | | | | -| Notify kubernetes-dev of lifting code freeze | Lead | | | 19 | | | | -| cherry pick deadline | Branch Manager | | | 21 | | | | -| v1.12.0 | Branch Manager | | | ~~25~~ moved to **27** | |week 13 | [1.12-blocking] | -| Release retrospective | Community | | | 27? | | | | | -| 1.13 Release Cycle Begins | Next Lead | | | | 1 | | | - -## Details - -### Conditionally Shortened Code Freeze - -In an effort to make the Code Freeze period shorter, and allow more time for feature development, the 1.11 Release Team tested out a procedure for postponing it based on release stability and "clean signal". - -The goal is that all tests in [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) and [master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) are passing and have been passing for a few days. - -Based on the 1.11 outcome, the 1.12 Release Team has set the schedule with a shortened code freeze in line with the prior cycle. The release team may need to inncrease the length of code slush and freeze to begin earlier if the project does not maintain a clean CI signal heading into the planned slush and freeze. Any such changes will be communicated early and broadly. - -### Feature Freeze - -All features going into the release must have an associated issue in the features repo by ***Tuesday July 31st, 2018***. That issue must be in the 1.12 milestone. SIG "themes" should also be in the release notes draft at this time to prepare for blog posts and release marketing. Any work the SIG wants publicized needs to be called out to the Features Lead so the Release Team communications lead can work with SIG-PM and the CNCF. - -### Code Slush - -Starting on ***Tuesday, August 28th, 2018***, only PRs marked for the 1.12 milestone (issue the Prow "/milestone v1.12" command) by their owner SIGs' leadership will be allowed to merge into the master branch. All others will be deferred until the end of Code Freeze, when master opens back up for the next release cycle. If necessary, the release team can add the milestone in cases where the SIG approvers do not have permissions to do so. For more information on correct PR marking see [the release process](https://git.k8s.io/community/contributors/devel/release.md) in the developer guide. - -At this time, any issues/PRs with incomplete labels, or which are "stale" will be removed from the release. The release team will work with SIGs to make sure that labels are complete prior to removal. - -Code Slush begins prior to Code Freeze to help reduce noise from miscellaneous changes that aren't related to issues that SIGs have approved for the milestone. Feature work is still allowed at this point, but it must follow the process to get approved for the milestone. SIGs are the gatekeepers of this label, not the release team. - -#### Exceptions - -Starting at Code Slush, the release team will solicit and rule on [exception requests](https://github.com/kubernetes/features/blob/master/EXCEPTIONS.md) for feature and test work that is unlikely to be done by Code Freeze. The exception approval is the responsibility of the SIG or SIGs labeled in the pull request. The release team may intervene or deny the request only if it poses a risk to release quality, or could negatively impact the overall timeline. Changes introduced at this point should be well-tested, well-understood, limited in architectural scope, and low risk. All of those factors should be considered in the approval process. Features on a feature branch with documentation, test cases, and passing CI are more likely to be accepted. - -### Code Freeze - -All features going into the release must be code-complete, ***including tests***, and have docs PRs open by ***Tuesday, September 4th, 2018***. - -The docs PRs don't have to be ready to merge, but it should be clear what the topic will be and who is responsible for writing it. This person will become the primary contact for the documentation lead. It’s incredibly important that documentation work gets completed as quickly as possible. - -After this point, only release-blocking issues and PRs will be allowed in the milestone. - -### Pruning - -Features that are partially implemented and/or lack sufficient tests may be considered for pruning beginning after code freeze, unless they've been granted exceptions. - -The release team will work with SIGs and feature owners to evaluate each case, but for example, pruning could include actions such as: - -* Disabling the use of a new API or field -* Switching the default value of a flag or field -* Moving a new API or field behind an Alpha feature gate -* Reverting commits or deleting code - -This should occur before 1.12.0-beta.1 is cut so we have time to gather signal on whether the system is stable in this state. These are considered drastic measures, so the release team will strive to coordinate at-risk work with SIGs before this time. The goal is to make code freeze, and overall project transparency, enforceable despite the lack of a consistently used feature branch process. - -### Docs - -If a feature needs documentation, enter Yes in the feature tracking spreadsheet and add a link to the documentation PR. You can open documentation PRs in the [kubernetes/website](https://github.com/kubernetes/website) repository. If you have questions, the release documentation lead, or representatives from SIG-Docs will be happy to assist you. - -For documentation PRs: - -* Open PRs against the release-1.12 branch based off of the 1.12 release PR. The documentation workflow uses feature branches for release documentation, rather than basing from master. **Be sure to open your PR against the release branch**. -* Add your PR to the 1.12 Release milestone. - -### Burndown - -Burndown meetings are held on Mondays, Wednesdays and Fridays at TIME TBD until the final release is near, and then every business day until the release. These meetings may overlap with other SIG meetings and the Community Meeting, but it is critical that SIGs provide representation at the release burndown meeting when requested to discuss specific issues and insure they do not become gating on the release. The release lead or a release team representative will keep the Community Meeting informed of release status even if there are meeting conflicts. - -Join the [Kubernetes Milestone Burndown Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) to get the calendar invite. - -The intent of these meetings is to: - -* Focus on fixing bugs, eliminating test flakes and general release stabilization. -* Ensure docs and release notes are written and accurate. -* Identify all features going into the release, and make sure alpha, beta, ga is marked in features repo. -* Provide a [one-stop view of release progress](http://bit.ly/kube112-minutes) including relevant release metrics. -* Host SIG stakeholders for updates. - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-upgrade]: https://testgrid.k8s.io/sig-release-master-upgrade#Summary -[1.12-blocking]:https://testgrid.k8s.io/sig-release-1.12-blocking#Summary +# 1.12: A next iteration in the evolving stable distributed system. + +"Class 4: Nearly all initial patterns evolve into structures that interact in complex and interesting ways, with the formation of local structures that are able to survive for long periods of time." ([see Cellular Automaton](https://en.wikipedia.org/wiki/Cellular_automaton); see also [TestGrid.k8s.io](https://testgrid.k8s.io)) + +![Conway's Game of Life configuration in shape of Kubernetes logo](1.12_life.png) + +# Kubernetes 1.12 Release Schedule + +*Handy Links* + +* [This document](https://git.k8s.io/sig-release/releases/release-1.12/README.md) +* [Release Team](https://git.k8s.io/sig-release/releases/release-1.12/release_team.md) +* Zoom: join Google Group to receive meeting invite +* [Slack](https://kubernetes.slack.com/messages/sig-release/) +* [Forum](https://groups.google.com/forum/#!forum/kubernetes-sig-release) +* [Feature Tracking Sheet](http://bit.ly/k8s112-features) +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/release.md) +* [Meeting Minutes](http://bit.ly/k8s112-minutes) +* [CI Signal Report](http://bit.ly/k8s112-cisignal) +* [Retrospective Document](http://bit.ly/k8s112-retro) + +**tl;dr** The 1.12 release cycle begins on **Monday, July 2nd, 2018**, and ends on release day, ~~Tuesday, September 25, 2018~~ **Thursday, September 27, 2018** . Feature freeze is **Tuesday, July 31, 2018**. Code freeze begins **Tuesday, September 4, 2018** and ends **Wednesday, September 19, 2018**, but [may be vary depending on CI Signal](#conditionally-shortened-code-freeze). Docs must be completed and reviewed by **Tuesday, September 18, 2018**. Release blocking test case additions must be completed by in conjunction with features by code freeze. + +## Notes About this Release + +* The Release Team will continue with the shortened Code Freeze, [see below](#conditionally-shortened-code-freeze). +* The feature process is remaining as it has in prior releases. +* Features that don't have complete code and tests by [Code Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.12/release-1.12.md#code-freeze) may be disabled by the release team before cutting the first beta. +* The release team will escalate [release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) and [release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) failures to SIGs throughout the cycle, not just near release cuts. +* Key deliverables (e.g. initial release cuts) tend to be scheduled on Tuesdays to maintain context while ramping up and then responding to any problems. The final release will also be on a Tuesday in keeping with prior practice. +* The release cycle length is approximately 12 weeks. + +## Timeline + + +| **What** | **Who** | **JUL** | **AUG** | **SEP** | **OCT** | **DEV WEEK** | **TEST GATES** | +| --- | --- | --- | --- | --- | --- | --- | --- | +| Start of Release Cycle | Lead | 2| | | | week 1 | | +| Finalize Schedule | Lead | 6 | | | | | | +| Begin collecting planned work from SIGs | Lead, Features Lead | 9| | | | week 2 | | +| Begin weekly release team meetings | Lead | 9 | | | | | | +| Begin weekly status reports at Community | Lead, Shadow | 12 | | | | | | +| Finalize Release Team | Lead | 13 | | | | | | +| Start Release Notes Draft | Release Notes Lead | 17 | || | week 3 | | +| Clean up features repo | Features Lead | 17 | | | | | | +| "Feature Freeze" begins (EOD PST) | Features Lead | 31 | || | week 4 | | +| 1.12.0-alpha.1 release | Branch Manager | 31 | | | | week 5 | [master-blocking], [master-upgrade] | +| Blog post: what we're working on for 1.12 | Communications | | 9 | | | week 6 | | +| All release-1.8 CI jobs/testgrid removed | Test Infra Lead | |14 | | | | | +| Create 'release-1.12' branch and begin daily branch | Branch Manager | |14 | | | | | +| v1.13.0-alpha.0 | Branch Manager | | 14 | | | | | +| 1.12.0-beta.0 released from branch | Branch Manager | | 14 | | | week 7 | [master-blocking], [master-upgrade] | +| All release-1.12 CI jobs/testgrid created | Test Infra Lead | |17 | | | | | +| Docs deadline - Open placeholder PRs | Docs Lead | |21 | | | | | +| Begin MWF Burndown meetings | Lead | | 27 | | | | | +| Begin Code Slush | Bot, Lead | | 28 | | | week 9 | | +| All Issues & PRs must have complete labels | Bug Triage | | 29 | | | | | +| Begin code and test freeze (EOD PST) | Bot, Lead | | | 4 | | week 10 | [1.12-blocking], [master-blocking], [master-upgrade] | +| Begin pruning | Lead and release team | | | 4 | | | | +| 1.12.0-beta.1 released from branch | Branch Manager | | | 4 || | [1.12-blocking], [master-blocking], [master-upgrade] | +| Unapproved/non-critical Issues/PRs get kicked out | Bot, Bug Triage | | | 7 | | | | +| Docs deadline - PRs ready for review | Docs Lead | | | 7 | | week 11 | | +| Begin M-F Burndown meetings | Lead | | | 10 | | | | +| 1.12.0-beta.2 released from branch | Branch Manager | | | 11 | | | [1.12-blocking], [master-blocking], [master-upgrade] | +| Docs complete - All PRs reviewed and ready to merge | Docs Lead | | | 18 | | week 12 | | +| 1.12.0-rc.1 released from branch | Branch Manager | | | 18 | | | [1.12-blocking], [master-blocking], [master-upgrade] | +| End of code freeze (EOD PST): Master branch re-opens for 1.12 | Bot, Branch Manager, Lead | | | 19 | | | | +| PRs for v1.12.0 must be cherry picked to release-1.12 | Branch Manager | | | 19 | | | | +| Notify kubernetes-dev of lifting code freeze | Lead | | | 19 | | | | +| cherry pick deadline | Branch Manager | | | 21 | | | | +| v1.12.0 | Branch Manager | | | ~~25~~ moved to **27** | |week 13 | [1.12-blocking] | +| Release retrospective | Community | | | 27? | | | | | +| 1.13 Release Cycle Begins | Next Lead | | | | 1 | | | + +## Details + +### Conditionally Shortened Code Freeze + +In an effort to make the Code Freeze period shorter, and allow more time for feature development, the 1.11 Release Team tested out a procedure for postponing it based on release stability and "clean signal". + +The goal is that all tests in [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) and [master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) are passing and have been passing for a few days. + +Based on the 1.11 outcome, the 1.12 Release Team has set the schedule with a shortened code freeze in line with the prior cycle. The release team may need to inncrease the length of code slush and freeze to begin earlier if the project does not maintain a clean CI signal heading into the planned slush and freeze. Any such changes will be communicated early and broadly. + +### Feature Freeze + +All features going into the release must have an associated issue in the features repo by ***Tuesday July 31st, 2018***. That issue must be in the 1.12 milestone. SIG "themes" should also be in the release notes draft at this time to prepare for blog posts and release marketing. Any work the SIG wants publicized needs to be called out to the Features Lead so the Release Team communications lead can work with SIG-PM and the CNCF. + +### Code Slush + +Starting on ***Tuesday, August 28th, 2018***, only PRs marked for the 1.12 milestone (issue the Prow "/milestone v1.12" command) by their owner SIGs' leadership will be allowed to merge into the master branch. All others will be deferred until the end of Code Freeze, when master opens back up for the next release cycle. If necessary, the release team can add the milestone in cases where the SIG approvers do not have permissions to do so. For more information on correct PR marking see [the release process](https://git.k8s.io/community/contributors/devel/release.md) in the developer guide. + +At this time, any issues/PRs with incomplete labels, or which are "stale" will be removed from the release. The release team will work with SIGs to make sure that labels are complete prior to removal. + +Code Slush begins prior to Code Freeze to help reduce noise from miscellaneous changes that aren't related to issues that SIGs have approved for the milestone. Feature work is still allowed at this point, but it must follow the process to get approved for the milestone. SIGs are the gatekeepers of this label, not the release team. + +#### Exceptions + +Starting at Code Slush, the release team will solicit and rule on [exception requests](https://github.com/kubernetes/features/blob/master/EXCEPTIONS.md) for feature and test work that is unlikely to be done by Code Freeze. The exception approval is the responsibility of the SIG or SIGs labeled in the pull request. The release team may intervene or deny the request only if it poses a risk to release quality, or could negatively impact the overall timeline. Changes introduced at this point should be well-tested, well-understood, limited in architectural scope, and low risk. All of those factors should be considered in the approval process. Features on a feature branch with documentation, test cases, and passing CI are more likely to be accepted. + +### Code Freeze + +All features going into the release must be code-complete, ***including tests***, and have docs PRs open by ***Tuesday, September 4th, 2018***. + +The docs PRs don't have to be ready to merge, but it should be clear what the topic will be and who is responsible for writing it. This person will become the primary contact for the documentation lead. It’s incredibly important that documentation work gets completed as quickly as possible. + +After this point, only release-blocking issues and PRs will be allowed in the milestone. + +### Pruning + +Features that are partially implemented and/or lack sufficient tests may be considered for pruning beginning after code freeze, unless they've been granted exceptions. + +The release team will work with SIGs and feature owners to evaluate each case, but for example, pruning could include actions such as: + +* Disabling the use of a new API or field +* Switching the default value of a flag or field +* Moving a new API or field behind an Alpha feature gate +* Reverting commits or deleting code + +This should occur before 1.12.0-beta.1 is cut so we have time to gather signal on whether the system is stable in this state. These are considered drastic measures, so the release team will strive to coordinate at-risk work with SIGs before this time. The goal is to make code freeze, and overall project transparency, enforceable despite the lack of a consistently used feature branch process. + +### Docs + +If a feature needs documentation, enter Yes in the feature tracking spreadsheet and add a link to the documentation PR. You can open documentation PRs in the [kubernetes/website](https://github.com/kubernetes/website) repository. If you have questions, the release documentation lead, or representatives from SIG-Docs will be happy to assist you. + +For documentation PRs: + +* Open PRs against the release-1.12 branch based off of the 1.12 release PR. The documentation workflow uses feature branches for release documentation, rather than basing from master. **Be sure to open your PR against the release branch**. +* Add your PR to the 1.12 Release milestone. + +### Burndown + +Burndown meetings are held on Mondays, Wednesdays and Fridays at TIME TBD until the final release is near, and then every business day until the release. These meetings may overlap with other SIG meetings and the Community Meeting, but it is critical that SIGs provide representation at the release burndown meeting when requested to discuss specific issues and insure they do not become gating on the release. The release lead or a release team representative will keep the Community Meeting informed of release status even if there are meeting conflicts. + +Join the [Kubernetes Milestone Burndown Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) to get the calendar invite. + +The intent of these meetings is to: + +* Focus on fixing bugs, eliminating test flakes and general release stabilization. +* Ensure docs and release notes are written and accurate. +* Identify all features going into the release, and make sure alpha, beta, ga is marked in features repo. +* Provide a [one-stop view of release progress](http://bit.ly/kube112-minutes) including relevant release metrics. +* Host SIG stakeholders for updates. + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-upgrade]: https://testgrid.k8s.io/sig-release-master-upgrade#Summary +[1.12-blocking]:https://testgrid.k8s.io/sig-release-1.12-blocking#Summary diff --git a/releases/release-1.12/features.csv b/releases/release-1.12/features.csv index 48e37084e49..cac374a90d3 100644 --- a/releases/release-1.12/features.csv +++ b/releases/release-1.12/features.csv @@ -1,48 +1,48 @@ -,Key Dates:,,,,,,,,,,,,,,, -Lead - Stephen Augustus (justaugustus),Features Collection Begins: 7/9,,,,,,,,,,,,,,, -Kendrick Coleman (kacole2),Features Freeze: 7/31,,,,,,,,,,,,,,, -Michael Singh (wadadli),Code Slush: 8/28,, ,,,,,,,,,,,,, -SIG PM,Code & Test Freeze: 9/4,,,,,,,,,,,,,,, -,Docs deadline: 9/7,,,,,,,,,,,,,,, -,Docs ready: 9/18,,,,,,,,,,,,,,, -,v1.12 Release: 9/27,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,, -Feature Name,Feature Status,Stage Status,Stage,SIG,Assignee,Proposal,k/k PR(s),Associated PR(s),Needs Docs?,Docs Status,k8s.io Docs PR,Test Status,Needs to be in Conformance Suite?,Failing Tests,One Line Release Note Description,Notes -115: Easier installation through componentconfig,Tracked,Net New,Alpha,cluster-lifecycle,"jbeda, sttts, luxas, thockin ",,,,None Required,N/A,,,,,"As part of the work to make installation/operation easier being done by sig-cluster-lifecycle, we are going to continue to make configuration more dynamic, through ongoing work on componentconfig.", -117: Arbitrary / Custom Metrics in the Horizontal Pod Autoscaler,Tracked,Graduating,Beta,autoscaling,directxman12,,,,Yes,Complete,https://github.com/kubernetes/website/pull/8757,,,,"Revised Horizontal Pod Autoscaler v2, including support for specifying label selectors to select more specific metrics.", -177: Snapshot / Restore Volume Support for Kubernetes (CRD + External Controller),Tracked,Net New,Alpha,storage,"jingxu97, xing-yang",community#2335,,,Yes,Complete,https://github.com/kubernetes/website/pull/9948,,,,Snapshot / restore functionality for Kubernetes and CSI. This provides standardized APIs design (CRDs) and adds PV snapshot / restore support for CSI volume drivers., -21: Vertical Scaling of Pods,Tracked,Graduating,Beta,autoscaling,"mwielgus, kgrygiel",community#338,,,None Required,N/A,,,,,Vertical Scaling of Pods, -267: Kubelet Server TLS Certificate Rotation,Tracked,Graduating,Beta,auth,"liggitt, jcbsmpsn",community#602,,,Yes,Draft,https://github.com/kubernetes/website/pull/10232,,,,Rotation of the server TLS certificate on the kubelet, -288: Improve the multi-platform compatibility,Tracked,Graduating,Beta,release,luxas,multi-platform.md,,,None Required,N/A,,,,,Kubernetes should work on the platforms the community expects it to work on. Automated CI e2e tests should be run for all supported architectures. It should be possible to run clusters with nodes of mixed architectures., -366: Egress support for Network Policy,Tracked,Graduating,Stable,network,cmluciano,,,,Yes,Complete,https://github.com/kubernetes/website/pull/10151,,,,Enable Egress network policy filtering, -367: ipBlock for Network Policies ,Tracked,Graduating,Stable,network,danwinship,kubernetes/kubernetes#49978,,,Has Docs,Complete,https://github.com/kubernetes/website/pull/10151,,,,CIDR selector support for egress/ingress network policies, -382: Taint node by Condition,Tracked,Graduating,Beta,scheduling,"k82cn, Huang-Wei",community#819,kubernetes#62109,,Yes,Complete,website#9626,,,,Represent node conditions that block scheduling using taints, -43: Kubelet TLS Bootstrap,Tracked,Graduating,Stable,auth,mikedanese,kubelet-tls-bootstrap.md,,,Yes,Draft,https://github.com/kubernetes/website/pull/10232,,,,kubelet generates a private key and a CSR for submission to a cluster-level certificate signing process, -432: Mount namespace propagation,Tracked,Graduating,Stable,storage,jsafrane,community#659,,,Yes,Complete,https://github.com/kubernetes/website/pull/10090,,,,"Enable a container to mount a volume rshared so that any mounts from inside the container are reflected in the host's mount namespace (this will enable, for example, containerization of volume plugins)", -460: Encryption at rest KMS integration,Tracked,Graduating,Beta,auth,mikedanese,community#1134,,,Yes,Complete,https://github.com/kubernetes/website/pull/10230,,,,Data encryption at rest using Google KMS as an encryption provider., -495: Configurable Pod Process Namespace Sharing,Tracked,Graduating,Beta,node,verb,pod-pid-namespace.md,,,Needs Update,Complete,https://github.com/kubernetes/website/pull/9996,,,,Users can configure containers within a pod to share a common PID namespace by setting an option in the PodSpec, -513: Azure Virtual Machine Scale Sets,Tracked,Graduating,Stable,azure,feiskyer,kubernetes#43287,,,None Required,N/A,,,,,Add support for Azure Virtual Machine Scale Sets (VMSS), -514: Add Azure support to cluster-autoscaler,Tracked,Graduating,Stable,azure,feiskyer,autoscaler#449,,,None Required,N/A,in k/autoscaler,,,,Add Azure support to cluster-autoscaler, -548: Schedule DaemonSet Pods by kube-scheduler,Tracked,Graduating,Beta,scheduling,Huang-Wei,Schedule DaemonSet Pods by default scheduler,kubernetes#66526,,Yes,Complete,https://github.com/kubernetes/website/pull/9923,,,,Schedule DaemonSet Pods by kube-scheduler, -554: Dynamic Maximum volume count,Tracked,Graduating,Beta,storage,gnufied,community#2051,,,Yes,Complete,https://github.com/kubernetes/website/pull/10211,,,,Add support for dynamic and generic mechanism of maximum volume per node, -557: Kubernetes CSI topology support,Tracked,Graduating,Beta,storage,"verult, vladimirvivien",community#2034,,,Yes,Complete,https://github.com/kubernetes/website/pull/9939,,,,Kubernetes CSI topology support, -558: GCE PD topology support,Tracked,Graduating,Beta,storage,"msau42, verult",,,,Yes,Complete,https://github.com/kubernetes/website/pull/9939,,,,GCE PD topology support, -561: Topology aware dynamic provisioning,Tracked,Graduating,Beta,storage,"msau42, lichuqiang",,,,Needs Update,Complete,https://github.com/kubernetes/website/pull/9939,,,,Topology aware dynamic provisioning, -567: AWS EBS topology support,Tracked,Graduating,Beta,storage,"ddebroy, jsafrane",,,,Needs Update,Complete,https://github.com/kubernetes/website/pull/9939,,,,AWS EBS topology support, -575: Defaulting and Pruning for Custom Resources,Tracked,Net New,Alpha,api-machinery,sttts,Google Doc,,,None Required,N/A,,,,,Support for defaulting and pruning for Custom Resources,Looks like this is now in the 1.13 milestone -576: APIServer DryRun,Tracked,Net New,Alpha,api-machinery,apelisse,0015-dry-run.md,,,Yes,Complete,https://github.com/kubernetes/website/pull/10033,,,,"Add apiserver ""dry-run"" query-parameter so that requests can be validated and ""processed"" without actually being persisted.", -578: Server-side printing in kubectl,Tracked,Graduating,Stable,cli,juanvallejo,server-get.md,,,None Required,N/A,,,,,"kubectl get should get columns back from the server, not the client, and be able to handle this type of server response under all use-cases", -579: Updated plugin mechanism for kubectl,Tracked,Graduating,Beta,cli,"juanvallejo, soltysh",kubectl-extension.md,,,Yes,Complete,https://github.com/kubernetes/website/pull/10053,,,,kubectl should support extensions adding new commands as well as overriding specific subcommands (at any depth), -581: Separate repo for generic cli utils,Tracked,Graduating,Beta,cli,"juanvallejo, soltysh",,,,None Required,N/A,,,,,The package pkg/kubectl/genericclioptions should be split out from kubectl into a separate repo in order to allow use of it by plugin authors and third-party clients, -585: RuntimeClass,Tracked,Net New,Alpha,node,tallclair,community#2290,,,Yes,Complete,https://github.com/kubernetes/website/pull/10102,,,,RuntimeClass is a new cluster-scoped resource that surfaces container runtime properties to the control plane, -586: Azure Availability Zones,Tracked,Net New,Alpha,azure,feiskyer,community#2364,,,Yes,Complete,https://github.com/kubernetes/website/pull/9939,,,,Add support of Azure Availability Zones, -587: Resource Quota API,Tracked,Graduating,Beta,api-machinery,vikaschoudhary16,,,,Yes,Complete,https://github.com/kubernetes/website/pull/10217,,,,Support for the ability to configure the quota system to identify specific resources that are limited by default. A limited resource means its consumption is denied absent a covering quota. This is in contrast to the current behavior where consumption is unlimited absent a covering quota. Intended use case is to allow operators to restrict consumption of high-cost resources by default., -591: Horizontal Pod Autoscaler to reach proper size faster,Tracked,Graduating,Beta,autoscaling,jbartosik,,,,Needs Update,Complete,https://github.com/kubernetes/website/pull/9780,,,,Improvements allowing Horizontal Pod Autoscaler to reach proper size faster, -592: TTL after finish,Tracked,Net New,Alpha,apps,janetkuo,https://goo.gl/YxtxTi,,,Yes,Complete,https://github.com/kubernetes/website/pull/10064,,,,Introduce a TTL controller to clean up Jobs and Pods after they finish, -593: Scheduler checks feasibility and scores a subset of all cluster nodes,Tracked,Net New,Alpha,scheduling,bsalamat,kubernetes#66627,,,Yes,Complete,https://github.com/kubernetes/website/pull/10048,,,,Scheduler checks feasibility and scores a subset of all cluster nodes, -594: CSI Cluster Registration Mechanism,Tracked,Net New,Alpha,storage,"saad-ali, jsafrane",Google Doc,,,None Required,N/A,,,,,"Introduce the ability for a CSI driver (optionally) to register it self with the Kubernetes API to 1) Make it easy for end users to discover CSI drivers installed on their cluster AND 2) Allow CSI drivers to customize how Kubernetes interacts with them (e.g. skip attach operation, etc.)", -595: Kubelet Device Plugin Registration,Tracked,Graduating,Beta,node,vikaschoudhary16,Google Doc,kubernetes#65773,,Needs Update,N/A,Kubelet Docs,,,,"Kubelet should have a standard way to discover local plugins (CSI, GPU, etc.)", -603: Pass Pod information in CSI calls,Tracked,Net New,Alpha,storage,jsafrane,community#1937,,,None Required,N/A,CSI docs,,,,CSI driver may opt-in to receive information about Pod that requested a volume in NodePublish request, -604: Cross resource group nodes,Tracked,Net New,Alpha,azure,feiskyer,,,,None Required,N/A,Will be in kubernetes/cloud-provider-azure,,,,Add support of cross resource group nodes, -612: Quota by Priority,Tracked,Graduating,Beta,scheduling,bsalamat,,,,Yes,Complete,https://github.com/kubernetes/website/pull/10229,,,,, +,Key Dates:,,,,,,,,,,,,,,, +Lead - Stephen Augustus (justaugustus),Features Collection Begins: 7/9,,,,,,,,,,,,,,, +Kendrick Coleman (kacole2),Features Freeze: 7/31,,,,,,,,,,,,,,, +Michael Singh (wadadli),Code Slush: 8/28,, ,,,,,,,,,,,,, +SIG PM,Code & Test Freeze: 9/4,,,,,,,,,,,,,,, +,Docs deadline: 9/7,,,,,,,,,,,,,,, +,Docs ready: 9/18,,,,,,,,,,,,,,, +,v1.12 Release: 9/27,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,, +Feature Name,Feature Status,Stage Status,Stage,SIG,Assignee,Proposal,k/k PR(s),Associated PR(s),Needs Docs?,Docs Status,k8s.io Docs PR,Test Status,Needs to be in Conformance Suite?,Failing Tests,One Line Release Note Description,Notes +115: Easier installation through componentconfig,Tracked,Net New,Alpha,cluster-lifecycle,"jbeda, sttts, luxas, thockin ",,,,None Required,N/A,,,,,"As part of the work to make installation/operation easier being done by sig-cluster-lifecycle, we are going to continue to make configuration more dynamic, through ongoing work on componentconfig.", +117: Arbitrary / Custom Metrics in the Horizontal Pod Autoscaler,Tracked,Graduating,Beta,autoscaling,directxman12,,,,Yes,Complete,https://github.com/kubernetes/website/pull/8757,,,,"Revised Horizontal Pod Autoscaler v2, including support for specifying label selectors to select more specific metrics.", +177: Snapshot / Restore Volume Support for Kubernetes (CRD + External Controller),Tracked,Net New,Alpha,storage,"jingxu97, xing-yang",community#2335,,,Yes,Complete,https://github.com/kubernetes/website/pull/9948,,,,Snapshot / restore functionality for Kubernetes and CSI. This provides standardized APIs design (CRDs) and adds PV snapshot / restore support for CSI volume drivers., +21: Vertical Scaling of Pods,Tracked,Graduating,Beta,autoscaling,"mwielgus, kgrygiel",community#338,,,None Required,N/A,,,,,Vertical Scaling of Pods, +267: Kubelet Server TLS Certificate Rotation,Tracked,Graduating,Beta,auth,"liggitt, jcbsmpsn",community#602,,,Yes,Draft,https://github.com/kubernetes/website/pull/10232,,,,Rotation of the server TLS certificate on the kubelet, +288: Improve the multi-platform compatibility,Tracked,Graduating,Beta,release,luxas,multi-platform.md,,,None Required,N/A,,,,,Kubernetes should work on the platforms the community expects it to work on. Automated CI e2e tests should be run for all supported architectures. It should be possible to run clusters with nodes of mixed architectures., +366: Egress support for Network Policy,Tracked,Graduating,Stable,network,cmluciano,,,,Yes,Complete,https://github.com/kubernetes/website/pull/10151,,,,Enable Egress network policy filtering, +367: ipBlock for Network Policies ,Tracked,Graduating,Stable,network,danwinship,kubernetes/kubernetes#49978,,,Has Docs,Complete,https://github.com/kubernetes/website/pull/10151,,,,CIDR selector support for egress/ingress network policies, +382: Taint node by Condition,Tracked,Graduating,Beta,scheduling,"k82cn, Huang-Wei",community#819,kubernetes#62109,,Yes,Complete,website#9626,,,,Represent node conditions that block scheduling using taints, +43: Kubelet TLS Bootstrap,Tracked,Graduating,Stable,auth,mikedanese,kubelet-tls-bootstrap.md,,,Yes,Draft,https://github.com/kubernetes/website/pull/10232,,,,kubelet generates a private key and a CSR for submission to a cluster-level certificate signing process, +432: Mount namespace propagation,Tracked,Graduating,Stable,storage,jsafrane,community#659,,,Yes,Complete,https://github.com/kubernetes/website/pull/10090,,,,"Enable a container to mount a volume rshared so that any mounts from inside the container are reflected in the host's mount namespace (this will enable, for example, containerization of volume plugins)", +460: Encryption at rest KMS integration,Tracked,Graduating,Beta,auth,mikedanese,community#1134,,,Yes,Complete,https://github.com/kubernetes/website/pull/10230,,,,Data encryption at rest using Google KMS as an encryption provider., +495: Configurable Pod Process Namespace Sharing,Tracked,Graduating,Beta,node,verb,pod-pid-namespace.md,,,Needs Update,Complete,https://github.com/kubernetes/website/pull/9996,,,,Users can configure containers within a pod to share a common PID namespace by setting an option in the PodSpec, +513: Azure Virtual Machine Scale Sets,Tracked,Graduating,Stable,azure,feiskyer,kubernetes#43287,,,None Required,N/A,,,,,Add support for Azure Virtual Machine Scale Sets (VMSS), +514: Add Azure support to cluster-autoscaler,Tracked,Graduating,Stable,azure,feiskyer,autoscaler#449,,,None Required,N/A,in k/autoscaler,,,,Add Azure support to cluster-autoscaler, +548: Schedule DaemonSet Pods by kube-scheduler,Tracked,Graduating,Beta,scheduling,Huang-Wei,Schedule DaemonSet Pods by default scheduler,kubernetes#66526,,Yes,Complete,https://github.com/kubernetes/website/pull/9923,,,,Schedule DaemonSet Pods by kube-scheduler, +554: Dynamic Maximum volume count,Tracked,Graduating,Beta,storage,gnufied,community#2051,,,Yes,Complete,https://github.com/kubernetes/website/pull/10211,,,,Add support for dynamic and generic mechanism of maximum volume per node, +557: Kubernetes CSI topology support,Tracked,Graduating,Beta,storage,"verult, vladimirvivien",community#2034,,,Yes,Complete,https://github.com/kubernetes/website/pull/9939,,,,Kubernetes CSI topology support, +558: GCE PD topology support,Tracked,Graduating,Beta,storage,"msau42, verult",,,,Yes,Complete,https://github.com/kubernetes/website/pull/9939,,,,GCE PD topology support, +561: Topology aware dynamic provisioning,Tracked,Graduating,Beta,storage,"msau42, lichuqiang",,,,Needs Update,Complete,https://github.com/kubernetes/website/pull/9939,,,,Topology aware dynamic provisioning, +567: AWS EBS topology support,Tracked,Graduating,Beta,storage,"ddebroy, jsafrane",,,,Needs Update,Complete,https://github.com/kubernetes/website/pull/9939,,,,AWS EBS topology support, +575: Defaulting and Pruning for Custom Resources,Tracked,Net New,Alpha,api-machinery,sttts,Google Doc,,,None Required,N/A,,,,,Support for defaulting and pruning for Custom Resources,Looks like this is now in the 1.13 milestone +576: APIServer DryRun,Tracked,Net New,Alpha,api-machinery,apelisse,0015-dry-run.md,,,Yes,Complete,https://github.com/kubernetes/website/pull/10033,,,,"Add apiserver ""dry-run"" query-parameter so that requests can be validated and ""processed"" without actually being persisted.", +578: Server-side printing in kubectl,Tracked,Graduating,Stable,cli,juanvallejo,server-get.md,,,None Required,N/A,,,,,"kubectl get should get columns back from the server, not the client, and be able to handle this type of server response under all use-cases", +579: Updated plugin mechanism for kubectl,Tracked,Graduating,Beta,cli,"juanvallejo, soltysh",kubectl-extension.md,,,Yes,Complete,https://github.com/kubernetes/website/pull/10053,,,,kubectl should support extensions adding new commands as well as overriding specific subcommands (at any depth), +581: Separate repo for generic cli utils,Tracked,Graduating,Beta,cli,"juanvallejo, soltysh",,,,None Required,N/A,,,,,The package pkg/kubectl/genericclioptions should be split out from kubectl into a separate repo in order to allow use of it by plugin authors and third-party clients, +585: RuntimeClass,Tracked,Net New,Alpha,node,tallclair,community#2290,,,Yes,Complete,https://github.com/kubernetes/website/pull/10102,,,,RuntimeClass is a new cluster-scoped resource that surfaces container runtime properties to the control plane, +586: Azure Availability Zones,Tracked,Net New,Alpha,azure,feiskyer,community#2364,,,Yes,Complete,https://github.com/kubernetes/website/pull/9939,,,,Add support of Azure Availability Zones, +587: Resource Quota API,Tracked,Graduating,Beta,api-machinery,vikaschoudhary16,,,,Yes,Complete,https://github.com/kubernetes/website/pull/10217,,,,Support for the ability to configure the quota system to identify specific resources that are limited by default. A limited resource means its consumption is denied absent a covering quota. This is in contrast to the current behavior where consumption is unlimited absent a covering quota. Intended use case is to allow operators to restrict consumption of high-cost resources by default., +591: Horizontal Pod Autoscaler to reach proper size faster,Tracked,Graduating,Beta,autoscaling,jbartosik,,,,Needs Update,Complete,https://github.com/kubernetes/website/pull/9780,,,,Improvements allowing Horizontal Pod Autoscaler to reach proper size faster, +592: TTL after finish,Tracked,Net New,Alpha,apps,janetkuo,https://goo.gl/YxtxTi,,,Yes,Complete,https://github.com/kubernetes/website/pull/10064,,,,Introduce a TTL controller to clean up Jobs and Pods after they finish, +593: Scheduler checks feasibility and scores a subset of all cluster nodes,Tracked,Net New,Alpha,scheduling,bsalamat,kubernetes#66627,,,Yes,Complete,https://github.com/kubernetes/website/pull/10048,,,,Scheduler checks feasibility and scores a subset of all cluster nodes, +594: CSI Cluster Registration Mechanism,Tracked,Net New,Alpha,storage,"saad-ali, jsafrane",Google Doc,,,None Required,N/A,,,,,"Introduce the ability for a CSI driver (optionally) to register it self with the Kubernetes API to 1) Make it easy for end users to discover CSI drivers installed on their cluster AND 2) Allow CSI drivers to customize how Kubernetes interacts with them (e.g. skip attach operation, etc.)", +595: Kubelet Device Plugin Registration,Tracked,Graduating,Beta,node,vikaschoudhary16,Google Doc,kubernetes#65773,,Needs Update,N/A,Kubelet Docs,,,,"Kubelet should have a standard way to discover local plugins (CSI, GPU, etc.)", +603: Pass Pod information in CSI calls,Tracked,Net New,Alpha,storage,jsafrane,community#1937,,,None Required,N/A,CSI docs,,,,CSI driver may opt-in to receive information about Pod that requested a volume in NodePublish request, +604: Cross resource group nodes,Tracked,Net New,Alpha,azure,feiskyer,,,,None Required,N/A,Will be in kubernetes/cloud-provider-azure,,,,Add support of cross resource group nodes, +612: Quota by Priority,Tracked,Graduating,Beta,scheduling,bsalamat,,,,Yes,Complete,https://github.com/kubernetes/website/pull/10229,,,,, "614: SCTP support for Services, Pod, Endpoint, and NetworkPolicy",Tracked,Net New,Alpha,network,janosi,0015-20180614-SCTP-support.md,kubernetes#64973,,Yes,Complete,https://github.com/kubernetes/website/pull/10279,,,,"SCTP is now supported as additional protocol (alpha) alongside TCP and UDP in Pod, Service, Endpoint, and NetworkPolicy.", \ No newline at end of file diff --git a/releases/release-1.12/release-1.12.md b/releases/release-1.12/release-1.12.md index 7e6af0b897d..d803ddd0e25 100644 --- a/releases/release-1.12/release-1.12.md +++ b/releases/release-1.12/release-1.12.md @@ -1 +1 @@ -Please see [README.md](README.md) instead +Please see [README.md](README.md) instead diff --git a/releases/release-1.12/release-notes-draft.md b/releases/release-1.12/release-notes-draft.md index 098fd129871..d6c02522c07 100644 --- a/releases/release-1.12/release-notes-draft.md +++ b/releases/release-1.12/release-notes-draft.md @@ -1,580 +1,580 @@ -> - Start SHA: 91e7b4fd31fcd3d5f436da26c980becec37ceefe -> - End Sha: 337e0e18f1aefa199bd0a1786f8eab42e948064c - -## Known Issues - -- Feature [#566](https://github.com/kubernetes/kubernetes/issues/566) enabling CoreDNS as the default for kube-up deployments was dropped from the release due to a scalability memory resource consumption issue observed. If a cluster operator is considering using CoreDNS on a cluster greater than 2000 nodes, it may be necessary to give more consideration to CoreDNS pod memory resource limits and experimentally measure that memory usage versus cluster resource availability. -- kube-controller-manager currently needs a writable `--cert-dir` (default is `/var/run/kubernetes`) for generating self-signed certificates, when no `--tls-cert-file` or `--tls-private-key-file` are provided. -- The `system:kube-controller-manager` ClusterRole lacks permission to `get` the `configmap` extension-apiserver-authentication. kube-controller-manager errors if run with a service account bound to the clusterrole. -- Runtime handler and Windows npipe protocol are not supported yet in crictl v1.11.x. Those features will be supported in crictl [v1.12.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.12.0), together with Kubernetes v1.12.1. - -## Major Themes - -### SIG API Machinery - -SIG API work this cycle involved development of the "dry run" functionality, which enables users to see the results of a particular command without persisting those changes. - -### SIG-autoscaling - -SIG Autoscaling focused on improving the Horizontal Pod Autoscaling API and algorithm: -- We released autoscaling/v2beta2, which cleans up and unifies the API -- We improved readiness detection and smoothing to work well in a larger variety or use cases - -### SIG-Azure - -Sig Azure was focused on two primary new alpha features: -# Adding Azure Availability Zones support to cloud provider. -# Supporting Cross RG resources (disks, Azure File and node [Experimental] - -Besides the above new features, support for Azure Virtual Machine Scale Sets (VMSS) and Cluster-Autoscaler is now stable and considered GA: - -- Azure virtual machine scale sets (VMSS) allow you to create and manage identical load balanced -VMs that automatically increase or decrease based on demand or a set schedule. -- With this new stable feature, Kubernetes supports the scaling of containerized applications -with Azure VMSS, including the ability to integrate it with cluster-autoscaler to automatically -adjust the size of the Kubernetes clusters based on the same conditions. - -### SIG-cli - -SIG CLI focused on implementing the new plugin mechanism, providing a library with common CLI tooling for plugin authors and further refactorings of the code. - -### SIG-cloud-provider - -This is the first Kubernetes release for this SIG! In v1.12, SIG Cloud Provider focused on building the processes and infrastructure to better support existing and new cloud providers. Some of these initiatives (many of which are still in progress) are: - -- Reporting E2E conformance test results to TestGrid from every cloud provider (in collaboration with SIG Testing & SIG Release) -- Defining minimum required documentation from each cloud provider which includes (in collaboration with SIG Docs): - - example manifests for the kube-apiserver, kube-controller-manager, kube-schedule, kubelet, and the cloud-controller-manager - - labels/annotations that are consumed by any cloud specific controllers - -In addition to the above, SIG Cloud Provider has been focusing on a long running effort to remove cloud provider code from kubernetes/kubernetes. - -### SIG-cluster-lifecycle - -In 1.12, SIG Cluster lifecycle has focused on improving the user experience in kubeadm, by fixing a number of bugs and adding some new important features. - -Here is a list of some of the changes that have been made to kubeadm: - -- Kubeadm internal config has been promoted to `v1alpha3`: - - `v1alpha1` has been removed. - - `v1alpha3` has split apart `MasterConfiguration` into separate components; `InitConfiguration`, `ClusterConfiguration`, `JoinConfiguration`, `KubeletConfiguration`, and `KubeProxyConfiguration` - - Different configuration types can be supplied all in the same file separated by `---`. -- Improved CRI handling - - crictl is no longer required in docker-only setups. - - Better detection of installed CRI. - - Better output for image pull errors. -- Improved air-gapped and offline support - - kubeadm now handles air-gapped environments by using the local client version as a fallback. - - Some kubeadm commands are now allowed to work in a completely offline mode. -- Certificate handling improvements: - - Renew certs as part of upgrade. - - New `kubeadm alpha phase certs renew` command for renewing certificates. - - Certificates created with kubeadm now have improved uniqueness of Distinguished Name fields. -- HA improvements: - - `kubeadm join --experimental-control-plane` can now be used to join control plane instances to an existing cluster. - - `kubeadm upgrade node experimental-control-plane` can now be used for upgrading secondary control plane instances created with `kubeadm join --experimental-control-plane`. -Multi-arch support (EXPERIMENTAL): - - kubeadm now adds support for docker “schema 2” manifest lists. This is preliminary part of the process of making kubeadm based k8s deployments to support multiple architectures. -Deprecating features: - - The Alpha feature-gates HighAvailability, SelfHosting, CertsInSecrets are now deprecated, and will be removed in k8s v1.13.0. - -### SIG-ibmcloud - -As a newly created SIG, the SIG-ibmcloud has mainly focused on SIG set up, sharing IBM Clouds ongoing Kubernetes work like scalability tests, Kubernetes upgrade strategy etc. with the SIG members and start working on processes to move cloud provider code to a public GitHub repo. - -### SIG-instrumentation - -No feature work, but a large refactoring of metrics-server as well as a number of bug fixes. - -### SIG-node - -SIG-node graduated the PodShareProcessNamespace feature from alpha to beta. This feature allows a pod spec to request that all containers in a pod share a common process namespaces. - -Two alpha features were also added in this release. - -The RuntimeClass alpha feature enables a node to surface multiple runtime options to support a variety of workload types. Examples include native linux containers, and “sandboxed” containers that isolate the container from the host kernel. - -The CustomCFSQuotaPeriod alpha feature enables node administrators to change the default period used to enforce CFS quota on a node. This can improve performance for some workloads that experience latency while using CFS quota with the default measurement period. Finally, the SIG continues to focus on improving reliability by fixing bugs while working out design and implementation of future features. - -### SIG-OpenStack - -SIG-OpenStack development was primarily focused on fixing bugs and improving feature parity with OpenStack resources. New features were primarily limited to the external provider in an effort to drive adoption of the OpenStack external provider over the in-tree provider. - -In-tree bug fixes and improvements included: -- Fix load balancer status without VIP. -- Fix filtering of server status. -- Fix resizing PVC of Cinder volume. -- Disable load balancer configuration if it is not defined in cloud config. -- Add support for node shutdown taint. - -The external provider includes all of the above with the additional fixes and features: -- Fix bug to prevent allocation of existing floating IP. -- Fix Cinder authentication bug when OS_DOMAIN_NAME not specified. -- Fix Keystone authentication errors by skipping synchronization for unscoped tokens. -- Fix authentication error for client-auth-plugin -- Fix dependency references from in-tree-provider to point to external provider. -- Add shutdown instance by Provider ID. -- Add annotation to preserve floating IP after service delete. -- Add conformance testing to stable and development branches. -- Add support support to Manilla for trustee authentication and supplying custom CAs. -- Add and update documentation. -- Add support to Manilla for provisioning existing shares. -- Add cluster name to load balancer description -- Add synchronization between Kubernetes and Keystone projects -- Add use internal DNS name for 'hostname' of nodes. -- Add support for CSI spec v0.3.0 for both Cinder and Manilla -- Add 'cascade delete' support for Octavia load balancers to improve performance. -- Add improved load balancer naming. - -### SIG-scheduling - -SIG Scheduling development efforts have been primarily focused on improving performance and reliability of the scheduler. -- Performance of the inter-pod affinity/anti-affinity feature is improved over 100X via algorithmic optimization. -- DaemonSet pods, which used to be scheduled by the DaemonSet controller, will be scheduled by the default scheduler in 1.12. This change allows DaemonSet pods to enjoy all the scheduling features of the default scheduler. -- The Image Locality priority function of the scheduler has been improved and is now enabled by default. With this feature enabled, nodes that have all or a partial set of images required for running a pod are preferred over other nodes, which improves pod start-up time. -- TaintNodeByCondition has been moved to Beta and is enabled by default. -- Scheduler throughput has been improved by ~50% in large clusters (>2000 nodes). - -### SIG-service-catalog -- The Originating Identity feature, which lets the broker know which user that performed an action, is now GA. -- [Namespaced Brokers](https://svc-cat.io/docs/namespaced-broker-resources/), which enable operators to install a broker into a namespace instead of the cluster level, reached GA. -- The [Service Plan Defaults](https://svc-cat.io/docs/service-plan-defaults/) feature is in alpha and is under active development. This feature gives operators the ability to define defaults for when someone provisions a service. -- We now support [filtering which services are exposed by Service Catalog](https://svc-cat.io/docs/catalog-restrictions/). -- We have also Improved the CLI experience both for kubectl and svcat by improving the output formatting, and by adding more commands. - -### SIG-storage - -SIG Storage promoted the [Kubernetes volume topology feature](https://github.com/kubernetes/features/issues/490) to beta. This enables Kubernetes to understand and act intelligently on volume accessibility information (such as the “zone” a cloud volume is provisioned in, the “rack” that a SAN array is accessible from, and so on). - -The [dynamic maximum volume count](https://github.com/kubernetes/features/issues/554) feature was also moved to beta. This enables a volume plugin to specify the maximum number of a given volume type per node as a function of the node characteristics (for example, a larger limit for larger nodes, a smaller limit for smaller nodes). - -SIG Storage also worked on a number of [Container Storage Interface (CSI) features](https://github.com/kubernetes/features/issues/178) this quarter in anticipation of moving support for CSI from beta to GA in the next Kubernetes release. This includes graduating the dependent “mount namespace propagation” feature to GA, moving the Kubelet plugin registration mechanism to beta, adding alpha support for a new CSI driver registry as well as for topology, and adding a number of alpha features to support the use of CSI for “local ephemeral volumes” (that is, volumes that exist for the lifecycle of a pod and contain some injected information, like a token or secret). - -With Kubernetes v1.12, SIG Storage also introduced alpha support for [volume snapshotting](https://github.com/kubernetes/features/issues/177). This feature introduces the ability to create/delete volume snapshots and create new volumes from a snapshot using the Kubernetes API. - -### SIG-vmware - -SIG-VMware development was primarily focused on fixing bugs for the in-tree cloud provider, starting the development of the external cloud provider and taking ownership of the cluster-api provider for vSphere. - -In-tree cloud provider bug fixes and improvements included: -- Adding initial Zones support to the provider using vSphere Tags -- Improving the testing harness for the cloud provider by introducing vcsim for automated testing -- Fixing a bug that was preventing updates from 1.10 to 1.11 - -The external cloud provider was established and reached feature parity with in-tree, and we expect to stabilize it and have it as preferred deployment model by 1.13. We are also getting started on externalizing the vSphere volume functionalities in a CSI plugin to fully reproduce the current in-tree storage functionality. - -The Cluster API effort is currently undergoing a complete rehaul of the existing codebase, moving off Terraform and into using govmomi directly. - -### SIG-windows - -SIG Windows focused on stability and reliability of our existing feature set. We primarily fixed bugs as we march towards a near future stable release. - -## Action Required - -- etcd2 as a backend is deprecated and support will be removed in Kubernetes 1.13. -- The --storage-versions flag of kube-apiserver is now deprecated. This flag should be omitted to ensure the default storage versions are used. Otherwise the cluster is not safe to upgrade to a version newer than 1.12. This flag will be removed in 1.13. ([#68080](https://github.com/kubernetes/kubernetes/pull/68080), [@caesarxuchao](https://github.com/caesarxuchao)) Courtesy of SIG API Machinery -- Volume dynamic provisioning scheduling has been moved to beta, which means that the DynamicProvisioningScheduling alpha feature gate has been removed but the VolumeScheduling beta feature gate is still required for this feature. ([#67432](https://github.com/kubernetes/kubernetes/pull/67432), [@lichuqiang](https://github.com/lichuqiang)) Courtesy of SIG Apps, SIG Architecture, SIG Storage, and SIG Testing -- The API server and client-go libraries have been fixed to support additional non-alpha-numeric characters in UserInfo "extra" data keys. Both should be updated in order to properly support extra data containing "/" characters or other characters disallowed in HTTP headers. ([#65799](https://github.com/kubernetes/kubernetes/pull/65799), [@dekkagaijin](https://github.com/dekkagaijin)) Courtesy of SIG Auth -- The `NodeConfiguration` kind in the kubeadm v1alpha2 API has been renamed `JoinConfiguration` in v1alpha3 ([#65951](https://github.com/kubernetes/kubernetes/pull/65951), [@luxas](https://github.com/luxas)) Courtesy of SIG Cluster Lifecycle -- The `MasterConfiguration` kind in the kubeadm v1alpha2 API has been renamed `InitConfiguration` in v1alpha3 ([#65945](https://github.com/kubernetes/kubernetes/pull/65945), [@luxas](https://github.com/luxas)) Courtesy of SIG Cluster Lifecycle -- The formerly publicly-available cAdvisor web UI that the kubelet started using `--cadvisor-port` has been entirely removed in 1.12. The recommended way to run cAdvisor if you still need it, is via a DaemonSet. ([#65707](https://github.com/kubernetes/kubernetes/pull/65707), [@dims](https://github.com/dims)) -- Cluster Autoscaler version has been updated to 1.3.1-beta.1. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.3.1-beta.1 ([#65857](https://github.com/kubernetes/kubernetes/pull/65857), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) Courtesy of SIG Autoscaling -- kubeadm: The `v1alpha1` config API has been removed. ([#65628](https://github.com/kubernetes/kubernetes/pull/65628), [@luxas](https://github.com/luxas)) Courtesy of SIG Cluster Lifecycle -- kube-apiserver: When using `--enable-admission-plugins` the `Priority` admission plugin is now enabled by default (matching changes in 1.11.1+). If using `--admission-control` to fully specify the set of admission plugins, it is now necessary to add the `Priority` admission plugin for the PodPriority feature to work properly. ([#65739](https://github.com/kubernetes/kubernetes/pull/65739), [@liggitt](https://github.com/liggitt)) Courtesy of SIG Scheduling -- The `system-node-critical` and `system-cluster-critical` priority classes are now limited to the `kube-system` namespace by the `PodPriority` admission plugin (matching changes in 1.11.1+). ([#65593](https://github.com/kubernetes/kubernetes/pull/65593), [@bsalamat](https://github.com/bsalamat)) Courtesy of SIG Scheduling -- kubeadm: Control plane images (etcd, kube-apiserver, kube-proxy, etc.) no longer use arch suffixes. Arch suffixes are kept for kube-dns only. ([#66960](https://github.com/kubernetes/kubernetes/pull/66960), -[@rosti](https://github.com/rosti)) Courtesy of SIG Cluster Lifecycle, SIG Release, and SIG Testing -- kubeadm - Feature-gates HighAvailability, SelfHosting, CertsInSecrets are now deprecated and can no longer be used for new clusters. Cluster updates using above feature-gates flag is not supported. ([#67786](https://github.com/kubernetes/kubernetes/pull/67786), [@fabriziopandini](https://github.com/fabriziopandini)) Courtesy of SIG Cluster Lifecycle -- 'KubeSchedulerConfiguration' which used to be under GroupVersion 'componentconfig/v1alpha1', -is now under 'kubescheduler.config.k8s.io/v1alpha1'. ([#66916](https://github.com/kubernetes/kubernetes/pull/66916), [@dixudx](https://github.com/dixudx)) Courtesy of SIG Cluster Lifecycle, SIG Scheduling, and SIG Testing -- The flag `--skip-preflight-checks` of kubeadm has been removed. Please use `--ignore-preflight-errors` instead. ([#62727](https://github.com/kubernetes/kubernetes/pull/62727), [@xiangpengzhao](https://github.com/xiangpengzhao)) -- If Openstack LoadBalancer is not defined in cloud config, the loadbalancer will no longer beis not initialized. any more in openstack. All setups must have some setting under that section for the OpenStack provider. ([#65781](https://github.com/kubernetes/kubernetes/pull/65781), [@zetaab](https://github.com/zetaab)) - -## Deprecations and removals - -- Kubeadm: The Alpha feature-gates HighAvailability, SelfHosting, CertsInSecrets are now deprecated, and will be removed in k8s v1.13.0. -- The cloudstack and ovirt controllers have been deprecated and will be removed in a future version. ([#68199](https://github.com/kubernetes/kubernetes/pull/68199), [@dims](https://github.com/dims)) -- All kubectl run generators have been deprecated except for run-pod/v1. This is part of a move to make `kubectl run` simpler, enabling it create only pods; if additional resources are needed, you should use `kubectl create` instead. ([#68132](https://github.com/kubernetes/kubernetes/pull/68132), [@soltysh](https://github.com/soltysh)) -- The deprecated --interactive flag has been removed from kubectl logs. ([#65420](https://github.com/kubernetes/kubernetes/pull/65420), [@jsoref](https://github.com/jsoref)) --The deprecated shorthand flag `-c` has been removed from `kubectl version (--client)`. ([#66817](https://github.com/kubernetes/kubernetes/pull/66817), [@charrywanganthony](https://github.com/charrywanganthony)) -- The `--pod` flag (`-p` shorthand) of the kubectl exec command has been marked as deprecated, and will be removed in a future version. This flag is currently optional. ([#66558](https://github.com/kubernetes/kubernetes/pull/66558), [@quasoft](https://github.com/quasoft)) -- kubectl: `--use-openapi-print-columns` has been deprecated in favor of `--server-print`, and will be removed in a future version. ([#65601](https://github.com/kubernetes/kubernetes/pull/65601), [@liggitt](https://github.com/liggitt)) -- The watch API endpoints prefixed with `/watch` are deprecated and will be removed in a future release. These standard method for watching resources (supported since v1.0) is to use the list API endpoints with a `?watch=true` parameter. All client-go clients have used the parameter method since v1.6.0. ([#65147](https://github.com/kubernetes/kubernetes/pull/65147), [@liggitt](https://github.com/liggitt)) -- Using the Horizontal Pod Autoscaler with metrics from Heapster is now deprecated and will be disabled in a future version. ([#68089](https://github.com/kubernetes/kubernetes/pull/68089), [@DirectXMan12](https://github.com/DirectXMan12)) -- The watch API endpoints prefixed with `/watch` are deprecated and will be removed in a future release. These standard method for watching resources (supported since v1.0) is to use the list API endpoints with a `?watch=true` parameter. All client-go clients have used the parameter method since v1.6.0. ([#65147](https://github.com/kubernetes/kubernetes/pull/65147), [@liggitt](https://github.com/liggitt)) - -## New Features - -- Kubernetes now registers volume topology information reported by a node-level Container Storage Interface (CSI) driver. This enables Kubernetes support of CSI topology mechanisms. ([#67684](https://github.com/kubernetes/kubernetes/pull/67684), [@verult](https://github.com/verult)) Courtesy of SIG API Machinery, SIG Node, SIG Storage, and SIG Testing -- Addon-manager has been bumped to v8.7 ([#68299](https://github.com/kubernetes/kubernetes/pull/68299), [@MrHohn](https://github.com/MrHohn)) Courtesy of SIG Cluster Lifecycle, and SIG Testing -- The CSI volume plugin no longer needs an external attacher for non-attachable CSI volumes. ([#67955](https://github.com/kubernetes/kubernetes/pull/67955), [@jsafrane](https://github.com/jsafrane)) Courtesy of SIG API Machinery, SIG Node, SIG Storage, and SIG Testing -- KubeletPluginsWatcher feature graduated to beta. ([#68200](https://github.com/kubernetes/kubernetes/pull/68200), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) Courtesy of SIG Node, SIG Storage, and SIG Testing -- A TTL mechanism has been added to clean up Jobs after they finish. ([#66840](https://github.com/kubernetes/kubernetes/pull/66840), [@janetkuo](https://github.com/janetkuo)) Courtesy of SIG API Machinery, SIG Apps, SIG Architecture, and SIG Testing -- The scheduler is now optimized to throttle computational tasks involved with node selection. ([#67555](https://github.com/kubernetes/kubernetes/pull/67555), [@wgliang](https://github.com/wgliang)) Courtesy of SIG API Machinery, and SIG Scheduling -- The performance of Pod affinity/anti-affinity in the scheduler has been improved. ([#67788](https://github.com/kubernetes/kubernetes/pull/67788), [@ahmad-diaa](https://github.com/ahmad-diaa)) Courtesy of SIG Scalability, and SIG Scheduling -- A kubelet parameter and config option has been added to change the CFS quota period from the default 100ms to some other value between 1µs and 1s. This was done to improve response latencies for workloads running in clusters with guaranteed and burstable QoS classes. ([#63437](https://github.com/kubernetes/kubernetes/pull/63437), [@szuecs](https://github.com/szuecs)) Courtesy of SIG API Machinery, SIG Apps, SIG Architecture, SIG CLI,, SIG Node, and SIG Scheduling -- Secure serving on port 10258 to cloud-controller-manager (configurable via `--secure-port`) is now enabled. Delegated authentication and authorization are to be configured using the same flags as for aggregated API servers. Without configuration, the secure port will only allow access to `/healthz`. ([#67069](https://github.com/kubernetes/kubernetes/pull/67069), [@sttts](https://github.com/sttts)) Courtesy of SIG Auth, and SIG Cloud Provider -- The commands `kubeadm alpha phases renew <cert-name>` have been added. ([#67910](https://github.com/kubernetes/kubernetes/pull/67910), [@liztio](https://github.com/liztio)) Courtesy of SIG API Machinery, and SIG Cluster Lifecycle -- ProcMount has been added to SecurityContext and AllowedProcMounts has been added to PodSecurityPolicy to allow paths in the container's /proc to not be masked. ([#64283](https://github.com/kubernetes/kubernetes/pull/64283), [@jessfraz](https://github.com/jessfraz)) Courtesy of SIG API Machinery, SIG Apps, SIG Architecture, and SIG Node -- Secure serving on port 10257 to kube-controller-manager (configurable via `--secure-port`) is now enabled. Delegated authentication and authorization are to be configured using the same flags as for aggregated API servers. Without configuration, the secure port will only allow access to `/healthz`. ([#64149](https://github.com/kubernetes/kubernetes/pull/64149), [@sttts](https://github.com/sttts)) Courtesy of SIG API Machinery, SIG Auth, SIG Cloud Provider, SIG Scheduling, and SIG Testing -- Azure cloud provider now supports unmanaged nodes (such as on-prem) that are labeled with `kubernetes.azure.com/managed=false` and `alpha.service-controller.kubernetes.io/exclude-balancer=true` ([#67984](https://github.com/kubernetes/kubernetes/pull/67984), [@feiskyer](https://github.com/feiskyer)) Courtesy of SIG Azure, and SIG Cloud Provider -- SCTP is now supported as an additional protocol (alpha) alongside TCP and UDP in Pod, Service, Endpoint, and NetworkPolicy. ([#64973](https://github.com/kubernetes/kubernetes/pull/64973), [@janosi](https://github.com/janosi)) Courtesy of SIG API Machinery, SIG Apps, SIG Architecture, SIG CLI, SIG Cloud Provider, SIG Cluster Lifecycle, SIG Network, SIG Node, and SIG Scheduling -- Autoscaling/v2beta2 and custom_metrics/v1beta2 have been introduced, which implement metric selectors for Object and Pods metrics, as well as allowing AverageValue targets on Objects, similar to External metrics. ([#64097](https://github.com/kubernetes/kubernetes/pull/64097), [@damemi](https://github.com/damemi)) Courtesy of SIG API Machinery, SIG Architecture, SIG Autoscaling, SIG CLI, and SIG Testing -- kubelet: Users can now enable the alpha NodeLease feature gate to have the Kubelet create and periodically renew a Lease in the kube-node-lease namespace. The lease duration defaults to 40s, and can be configured via the kubelet.config.k8s.io/v1beta1.KubeletConfiguration's NodeLeaseDurationSeconds field. ([#66257](https://github.com/kubernetes/kubernetes/pull/66257), [@mtaufen](https://github.com/mtaufen)) Courtesy of SIG API Machinery, SIG Apps, SIG Architecture, SIG Cluster Lifecycle, SIG Node, and SIG Testing -- PodReadinessGate is now turned on by default. ([#67406](https://github.com/kubernetes/kubernetes/pull/67406), [@freehan](https://github.com/freehan)) Courtesy of SIG Node -- Azure cloud provider now supports cross resource group nodes that are labeled with `kubernetes.azure.com/resource-group=<rg-name>` and `alpha.service-controller.kubernetes.io/exclude-balancer=true` ([#67604](https://github.com/kubernetes/kubernetes/pull/67604), [@feiskyer](https://github.com/feiskyer)) Courtesy of SIG Azure, SIG Cloud Provider, and SIG Storage -- Annotations are now supported for remote admission webhooks. ([#58679](https://github.com/kubernetes/kubernetes/pull/58679), [@CaoShuFeng](https://github.com/CaoShuFeng)) Courtesy of SIG API Machinery, and SIG Auth -- The scheduler now scores fewer than all nodes in every scheduling cycle. This can improve performance of the scheduler in large clusters. ([#66733](https://github.com/kubernetes/kubernetes/pull/66733), [@bsalamat](https://github.com/bsalamat)) Courtesy of SIG Scheduling -- Node affinity for Azure unzoned managed disks has been added. ([#67229](https://github.com/kubernetes/kubernetes/pull/67229), [@feiskyer](https://github.com/feiskyer)) Courtesy of SIG Azure -- The Attacher/Detacher interfaces for local storage have been refactored ([#66884](https://github.com/kubernetes/kubernetes/pull/66884), [@NickrenREN](https://github.com/NickrenREN)) Courtesy of SIG Storage -- DynamicProvisioningScheduling and VolumeScheduling is now supported for Azure managed disks. Feature gates DynamicProvisioningScheduling and VolumeScheduling should be enabled before using this feature. ([#67121](https://github.com/kubernetes/kubernetes/pull/67121), [@feiskyer](https://github.com/feiskyer)) Courtesy of SIG Azure, and SIG Storage -- The audit.k8s.io api group has been upgraded from v1beta1 to v1. ([#65891](https://github.com/kubernetes/kubernetes/pull/65891), [@CaoShuFeng](https://github.com/CaoShuFeng)) Courtesy of SIG API Machinery -- The quota admission configuration API graduated to v1beta1. ([#66156](https://github.com/kubernetes/kubernetes/pull/66156), [@vikaschoudhary16](https://github.com/vikaschoudhary16)) Courtesy of SIG Node, and SIG Scheduling -- Kube-apiserver --help flag help is now printed in sections. ([#64517](https://github.com/kubernetes/kubernetes/pull/64517), [@sttts](https://github.com/sttts)) -- Azure managed disks now support availability zones and new parameters `zoned`, `zone` and `zones` are added for AzureDisk storage class. ([#66553](https://github.com/kubernetes/kubernetes/pull/66553), [@feiskyer](https://github.com/feiskyer)) Courtesy of SIG Azure -- Kubectl create job command has been added. ([#60316](https://github.com/kubernetes/kubernetes/pull/60316), [@soltysh](https://github.com/soltysh)) Courtesy of SIG CLI -- Kubelet serving certificate bootstrapping and rotation has been promoted to beta status. ([#66726](https://github.com/kubernetes/kubernetes/pull/66726), [@liggitt](https://github.com/liggitt)) Courtesy of SIG Auth, and SIG Node -- Azure nodes with availability zone will now have label `failure-domain.beta.kubernetes.io/zone=<region>-<zoneID>`. ([#66242](https://github.com/kubernetes/kubernetes/pull/66242), [@feiskyer](https://github.com/feiskyer)) Courtesy of SIG Azure -- kubeadm: Default component configs are now printable via kubeadm config print-default ([#66074](https://github.com/kubernetes/kubernetes/pull/66074), [@rosti](https://github.com/rosti)) Courtesy of SIG Cluster Lifecycle -- Mount propagation has been promoted to GA. The `MountPropagation` feature gate is deprecated and will be removed in 1.13. ([#67255](https://github.com/kubernetes/kubernetes/pull/67255), [@bertinatto](https://github.com/bertinatto)) Courtesy of SIG Apps, SIG Architecture, SIG Node, and SIG Storage -- Ubuntu 18.04 (Bionic) series has been added to Juju charms ([#65644](https://github.com/kubernetes/kubernetes/pull/65644), [@tvansteenburgh](https://github.com/tvansteenburgh)) -- kubeadm: The kubeadm configuration now supports the definition of more than one control plane instances with their own APIEndpoint. The APIEndpoint for the "bootstrap" control plane instance should be defined using `InitConfiguration.APIEndpoint`, while the APIEndpoints for additional control plane instances should be added using `JoinConfiguration.APIEndpoint`. ([#67832](https://github.com/kubernetes/kubernetes/pull/67832), [@fabriziopandini](https://github.com/fabriziopandini)) -- Add new `--server-dry-run` flag to `kubectl apply` so that the request will be sent to the server with the dry-run flag (alpha), which means that changes won't be persisted. ([#68069](https://github.com/kubernetes/kubernetes/pull/68069), [@apelisse](https://github.com/apelisse)) -- Introduce CSI Cluster Registration mechanism to ease CSI plugin discovery and allow CSI drivers to customize Kubernetes' interaction with them. ([#67803](https://github.com/kubernetes/kubernetes/pull/67803), [@saad-ali](https://github.com/saad-ali)) -- The PodShareProcessNamespace feature to configure PID namespace sharing within a pod has been promoted to beta. ([#66507](https://github.com/kubernetes/kubernetes/pull/66507), [@verb](https://github.com/verb)) - -## API Changes - -- kubeadm now supports the phase command "alpha phase kubelet config annotate-cri". ([#68449](https://github.com/kubernetes/kubernetes/pull/68449), [@fabriziopandini](https://github.com/fabriziopandini)) -- kubeadm: --cri-socket now defaults to tcp://localhost:2375 when running on Windows. ([#67447](https://github.com/kubernetes/kubernetes/pull/67447), [@benmoss](https://github.com/benmoss)) -- kubeadm now includes a new EXPERIMENTAL `--rootfs`, which (if specified) causes kubeadm to chroot before performing any file operations. This is expected to be useful when setting up kubernetes on a different filesystem, such as invoking kubeadm from docker. ([#54935](https://github.com/kubernetes/kubernetes/pull/54935), [@anguslees](https://github.com/anguslees)) -- The command line option --cri-socket-path of the kubeadm subcommand "kubeadm config images pull" has been renamed to --cri-socket to be consistent with the rest of kubeadm subcommands. -- kubeadm: The ControlPlaneEndpoint was moved from the API config struct to ClusterConfiguration ([#67830](https://github.com/kubernetes/kubernetes/pull/67830), [@fabriziopandini](https://github.com/fabriziopandini)) -- kubeadm: InitConfiguration now consists of two structs: InitConfiguration and ClusterConfiguration ([#67441](https://github.com/kubernetes/kubernetes/pull/67441), [@rosti](https://github.com/rosti)) -- The RuntimeClass API has been added. This feature is in alpha, and the RuntimeClass feature gate must be enabled in order to use it. The RuntimeClass API resource defines different classes of runtimes that may be used to run containers in the cluster. Pods can select a RuntimeClass to use via the RuntimeClassName field. ([#67737](https://github.com/kubernetes/kubernetes/pull/67737), [@tallclair](https://github.com/tallclair)) -- To address the possibility of dry-run requests overwhelming admission webhooks that rely on side effects and a reconciliation mechanism, a new field is being added to `admissionregistration.k8s.io/v1beta1.ValidatingWebhookConfiguration` and `admissionregistration.k8s.io/v1beta1.MutatingWebhookConfiguration` so that webhooks can explicitly register as having dry-run support. If a dry-run request is made on a resource that triggers a non dry-run supporting webhook, the request will be completely rejected, with "400: Bad Request". Additionally, a new field is being added to the `admission.k8s.io/v1beta1.AdmissionReview` API object, exposing to webhooks whether or not the request being reviewed is a dry-run. ([#66936](https://github.com/kubernetes/kubernetes/pull/66936), [@jennybuckley](https://github.com/jennybuckley)) -- CRI now supports a "runtime_handler" field for RunPodSandboxRequest, used for selecting the runtime configuration to run the sandbox with (alpha feature). ([#67518](https://github.com/kubernetes/kubernetes/pull/67518), [@tallclair](https://github.com/tallclair)) -- More fields are allowed at the root of the CRD validation schema when the status subresource is enabled. ([#65357](https://github.com/kubernetes/kubernetes/pull/65357), [@nikhita](https://github.com/nikhita)) -- The --docker-disable-shared-pid kubelet flag has been removed. PID namespace sharing can instead be enable per-pod using the ShareProcessNamespace option. ([#66506](https://github.com/kubernetes/kubernetes/pull/66506), [@verb](https://github.com/verb)) -- Added the --dns-loop-detect option to dnsmasq, which is run by kube-dns. ([#67302](https://github.com/kubernetes/kubernetes/pull/67302), [@dixudx](https://github.com/dixudx)) -- Kubernetes now supports extra `--prune-whitelist` resources in kube-addon-manager. ([#67743](https://github.com/kubernetes/kubernetes/pull/67743), [@Random-Liu](https://github.com/Random-Liu)) -- Graduate Resource Quota ScopeSelectors to beta, and enable it by default. ([#67077](https://github.com/kubernetes/kubernetes/pull/67077), [@vikaschoudhary16](https://github.com/vikaschoudhary16)) -- The OpenAPI spec and documentation now reflect the 202 Accepted response path for delete requests. Note that this change in the openapi spec may affect some clients that depend on the error paths. ([#63418](https://github.com/kubernetes/kubernetes/pull/63418), [@roycaihw](https://github.com/roycaihw)) -- The alpha `Initializers` admission plugin is no longer enabled by default. This matches the off-by-default behavior of the alpha API which drives initializer behavior. ([#66039](https://github.com/kubernetes/kubernetes/pull/66039), [@liggitt](https://github.com/liggitt)) -- Adding validation to kube-scheduler at the API level ([#66799](https://github.com/kubernetes/kubernetes/pull/66799), [@noqcks](https://github.com/noqcks)) -- `DisruptedPods` field in `PodDisruptionBudget` is optional instead of required. ([#63757](https://github.com/kubernetes/kubernetes/pull/63757), [@nak3](https://github.com/nak3)) - -## Other Notable Changes - -### SIG API Machinery - -- `kubectl get apiservice` now shows the target service and whether the service is available ([#67747](https://github.com/kubernetes/kubernetes/pull/67747), [@smarterclayton](https://github.com/smarterclayton)) -- Apiserver panics will now be returned as 500 errors rather than terminating the apiserver process. ([#68001](https://github.com/kubernetes/kubernetes/pull/68001), [@sttts](https://github.com/sttts)) -- API paging is now enabled for custom resource definitions, custom resources and APIService objects. ([#67861](https://github.com/kubernetes/kubernetes/pull/67861), [@liggitt](https://github.com/liggitt)) -- To address the possibility dry-run requests overwhelming admission webhooks that rely on side effects and a reconciliation mechanism, a new field is being added to admissionregistration.k8s.io/v1beta1.ValidatingWebhookConfiguration and admissionregistration.k8s.io/v1beta1.MutatingWebhookConfiguration so that webhooks can explicitly register as having dry-run support. If a dry-run request is made on a resource that triggers a non dry-run supporting webhook, the request will be completely rejected, with "400: Bad Request". Additionally, a new field is being added to the admission.k8s.io/v1beta1.AdmissionReview API object, exposing to webhooks whether or not the request being reviewed is a dry-run. ([#66936](https://github.com/kubernetes/kubernetes/pull/66936), [@jennybuckley](https://github.com/jennybuckley)) -- kube-apiserver now includes all registered API groups in discovery, including registered extension API group/versions for unavailable extension API servers. ([#66932](https://github.com/kubernetes/kubernetes/pull/66932), [@nilebox](https://github.com/nilebox)) -- kube-apiserver: setting a `dryRun` query parameter on a CONNECT request will now cause the request to be rejected, consistent with behavior of other mutating API requests. Examples of CONNECT APIs are the `nodes/proxy`, `services/proxy`, `pods/proxy`, `pods/exec`, and `pods/attach` subresources. Note that this prevents sending a `dryRun` parameter to backends via `{nodes,services,pods}/proxy` subresources. ([#66083](https://github.com/kubernetes/kubernetes/pull/66083), [@jennybuckley](https://github.com/jennybuckley)) -- In clusters where the DryRun feature is enabled, dry-run requests will go through the normal admission chain. Because of this, ImagePolicyWebhook authors should especially make sure that their webhooks do not rely on side effects. ([#66391](https://github.com/kubernetes/kubernetes/pull/66391), [@jennybuckley](https://github.com/jennybuckley)) -- Added etcd_object_count metrics for CustomResources. ([#65983](https://github.com/kubernetes/kubernetes/pull/65983), [@sttts](https://github.com/sttts)) -- The OpenAPI version field will now be properly autopopulated without needing other OpenAPI fields present in generic API server code. ([#66411](https://github.com/kubernetes/kubernetes/pull/66411), [@DirectXMan12](https://github.com/DirectXMan12)) -- TLS timeouts have been extended to work around slow arm64 math/big functions. ([#66264](https://github.com/kubernetes/kubernetes/pull/66264), [@joejulian](https://github.com/joejulian)) -- Kubernetes now checks CREATE admission for create-on-update requests instead of UPDATE admission. ([#65572](https://github.com/kubernetes/kubernetes/pull/65572), [@yue9944882](https://github.com/yue9944882)) -- kube- and cloud-controller-manager can now listen on ports up to 65535 rather than 32768, solving problems with operating systems that request these higher ports.. ([#65860](https://github.com/kubernetes/kubernetes/pull/65860), [@sttts](https://github.com/sttts)) -- LimitRange and Endpoints resources can be created via an update API call if the object does not already exist. When this occurs, an authorization check is now made to ensure the user making the API call is authorized to create the object. In previous releases, only an update authorization check was performed. ([#65150](https://github.com/kubernetes/kubernetes/pull/65150), [@jennybuckley](https://github.com/jennybuckley)) -- More fields are allowed at the root of the CRD validation schema when the status subresource is enabled. ([#65357](https://github.com/kubernetes/kubernetes/pull/65357), [@nikhita](https://github.com/nikhita)) -- api-machinery utility functions `SetTransportDefaults` and `DialerFor` once again respect custom Dial functions set on transports ([#65547](https://github.com/kubernetes/kubernetes/pull/65547), [@liggitt](https://github.com/liggitt)) -- AdvancedAuditing has been promoted to GA, replacing the previous (legacy) audit logging mechanisms. ([#65862](https://github.com/kubernetes/kubernetes/pull/65862), [@loburm](https://github.com/loburm)) -- Added --authorization-always-allow-paths to components doing delegated authorization to exclude certain HTTP paths like /healthz from authorization. ([#67543](https://github.com/kubernetes/kubernetes/pull/67543), [@sttts](https://github.com/sttts)) -- Allow ImageReview backend to return annotations to be added to the created pod. ([#64597](https://github.com/kubernetes/kubernetes/pull/64597), [@wteiken](https://github.com/wteiken)) -- Upon receiving a LIST request with an expired continue token, the apiserver now returns a continue token together with the 410 "the from parameter is too old" error. If the client does not care about getting a list from a consistent snapshot, the client can use this token to continue listing from the next key, but the returned chunk will be from the latest snapshot. ([#67284](https://github.com/kubernetes/kubernetes/pull/67284), [@caesarxuchao](https://github.com/caesarxuchao)) - -### SIG Apps - -- The service controller will now retry creating the load balancer when `persistUpdate` fails due to conflict. ([#68087](https://github.com/kubernetes/kubernetes/pull/68087), [@grayluck](https://github.com/grayluck)) -- The latent controller caches no longer cause repeating deletion messages for deleted pods. ([#67826](https://github.com/kubernetes/kubernetes/pull/67826), [@deads2k](https://github.com/deads2k)) - -### SIG Auth - -- TokenRequest and TokenRequestProjection are now beta features. To enable these feature, the API server needs to be started with the `--service-account-issuer`, `--service-account-signing-key-file`, and `--service-account-api-audiences` flags. -([#67349](https://github.com/kubernetes/kubernetes/pull/67349), [@mikedanese](https://github.com/mikedanese)) -- The admin RBAC role now aggregates edit and view. The edit RBAC role now aggregates view. ([#66684](https://github.com/kubernetes/kubernetes/pull/66684), [@deads2k](https://github.com/deads2k)) -- UserInfo derived from service account tokens created from the TokenRequest API now include the pod name and UID in the Extra field. ([#61858](https://github.com/kubernetes/kubernetes/pull/61858), [@mikedanese](https://github.com/mikedanese)) -- The extension API server can now dynamically discover the requestheader CA certificate when the core API server doesn't use certificate based authentication for it's clients. ([#66394](https://github.com/kubernetes/kubernetes/pull/66394), [@rtripat](https://github.com/rtripat)) - -### SIG Autoscaling - -- Horizontal Pod Autoscaler default update interval has been increased from 30s to 15s, improving HPA reaction time for metric changes. ([#68021](https://github.com/kubernetes/kubernetes/pull/68021), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) -- To avoid soft-deleted pods incorrectly affecting scale up replica count calculations, the HPA controller will stop counting soft-deleted pods for scaling purposes. ([#67067](https://github.com/kubernetes/kubernetes/pull/67067), [@moonek](https://github.com/moonek)) -- HPA reaction to metric changes has been spend up by removing the scale up forbidden window. ([#66615](https://github.com/kubernetes/kubernetes/pull/66615), [@jbartosik](https://github.com/jbartosik)) - -### SIG AWS - -- AWS LoadBalancer security group ICMP rules now match the documentation of spec.loadBalancerSourceRanges ([#63572](https://github.com/kubernetes/kubernetes/pull/63572), [@haz-mat](https://github.com/haz-mat)) -- The aws cloud provider now reports a `Hostname` address type for nodes based on the `local-hostname` metadata key. ([#67715](https://github.com/kubernetes/kubernetes/pull/67715), [@liggitt](https://github.com/liggitt)) - -### SIG Azure - -- \API calls for Azure instance metadata have been reduced to help avoid "too many requests" errors.. ([#67478](https://github.com/kubernetes/kubernetes/pull/67478), [@feiskyer](https://github.com/feiskyer)) -- Azure Go SDK has been upgraded to v19.0.0 and VirtualMachineScaleSetVM now supports availability zones. ([#66648](https://github.com/kubernetes/kubernetes/pull/66648), [@feiskyer](https://github.com/feiskyer)) -- User Assigned MSI (https://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview), which provides for managed identities, is now suppored for Kubernetes clusters on Azure. ([#66180](https://github.com/kubernetes/kubernetes/pull/66180), [@kkmsft](https://github.com/kkmsft)) -- The Azure load balancer idle connection timeout for services is now configurable.([#66045](https://github.com/kubernetes/kubernetes/pull/6605), [@cpuguy83](https://github.com/cpuguy83)) -- When provisioning workloads, Kubernetes will now skip nodes that have a primary NIC in a 'Failed' provisioningState. ([#65412](https://github.com/kubernetes/kubernetes/pull/65412), [@yastij](https://github.com/yastij)) -- The NodeShutdown taint is now supported for Azure. ([#68033](https://github.com/kubernetes/kubernetes/pull/68033), [@yastij](https://github.com/yastij)) - -### SIG CLI - -- Added a sample-cli-plugin staging repository and cli-runtime staging repository to help showcase the new kubectl plugins mechanism. ([#67938](https://github.com/kubernetes/kubernetes/pull/67938), [#67658](https://github.com/kubernetes/kubernetes/pull/67658), [@soltysh](https://github.com/soltysh)) -- The plugin mechanism functionality now closely follows the git plugin design ([#66876](https://github.com/kubernetes/kubernetes/pull/66876), [@juanvallejo](https://github.com/juanvallejo)) -- kubectl patch now respects --local ([#67399](https://github.com/kubernetes/kubernetes/pull/67399), [@deads2k](https://github.com/deads2k)) -- kubectl: When an object can't be updated and must be deleted by force, kubectl will now recreating resources for immutable fields.([#66602](https://github.com/kubernetes/kubernetes/pull/66602), [@dixudx](https://github.com/dixudx)) -- `kubectl create {clusterrole,role}`'s `--resources` flag now supports asterisk to specify all resources. ([#62945](https://github.com/kubernetes/kubernetes/pull/62945), [@nak3](https://github.com/nak3)) -- kubectl: the wait command now prints an error message and exits with the code 1, if there is no resources matching selectors ([#66692](https://github.com/kubernetes/kubernetes/pull/66692), [@m1kola](https://github.com/m1kola)) -- Kubectl now handles newlines for `command`, `args`, `env`, and `annotations` in `kubectl describe` wrapping. ([#66841](https://github.com/kubernetes/kubernetes/pull/66841), [@smarterclayton](https://github.com/smarterclayton)) -- The `kubectl patch` command no longer exits with exit code 1 when a redundant patch results in a no-op ([#66725](https://github.com/kubernetes/kubernetes/pull/66725), [@juanvallejo](https://github.com/juanvallejo)) -- The output of `kubectl get events` has been improved to prioritize showing the message, and to move some fields to `-o wide`. ([#66643](https://github.com/kubernetes/kubernetes/pull/66643), [@smarterclayton](https://github.com/smarterclayton)) -- `kubectl config set-context` can now set attributes of the current context, such as the current namespace, by passing `--current` instead of a specific context name ([#66140](https://github.com/kubernetes/kubernetes/pull/66140), [@liggitt](https://github.com/liggitt)) -- "kubectl delete" no longer waits for dependent objects to be deleted when removing parent resources ([#65908](https://github.com/kubernetes/kubernetes/pull/65908), [@juanvallejo](https://github.com/juanvallejo)) -- A new flag, `--keepalive`, has been introduced, for kubectl proxy to allow setting keep-alive period for long-running request. ([#63793](https://github.com/kubernetes/kubernetes/pull/63793), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) -- kubectl: fixed a regression with --use-openapi-print-columns that would not print object contents ([#65600](https://github.com/kubernetes/kubernetes/pull/65600), [@liggitt](https://github.com/liggitt)) -- The display of jobs in `kubectl get` and `kubectl describe` has been improved to emphasize progress and duration. ([#65463](https://github.com/kubernetes/kubernetes/pull/65463), [@smarterclayton](https://github.com/smarterclayton)) -- CSI volume attributes have been added to kubectl describe pv`. ([#65074](https://github.com/kubernetes/kubernetes/pull/65074), [@wgliang](https://github.com/wgliang)) -- Running `kubectl describe pvc` now shows which pods are mounted to the pvc being described with the `Mounted By` field ([#65837](https://github.com/kubernetes/kubernetes/pull/65837), [@clandry94](https://github.com/clandry94)) -- `kubectl create secret tls` can now read certificate and key files from process substitution arguments ([#67713](https://github.com/kubernetes/kubernetes/pull/67713), [@liggitt](https://github.com/liggitt)) -- `kubectl rollout status` now works for unlimited timeouts. ([#67817](https://github.com/kubernetes/kubernetes/pull/67817), [@tnozicka](https://github.com/tnozicka)) - -### SIG Cloud Provider - -- The cloudstack cloud provider now reports a `Hostname` address type for nodes based on the `local-hostname` metadata key. ([#67719](https://github.com/kubernetes/kubernetes/pull/67719), [@liggitt](https://github.com/liggitt)) -- The OpenStack cloud provider now reports a `Hostname` address type for nodes ([#67748](https://github.com/kubernetes/kubernetes/pull/67748), [@FengyunPan2](https://github.com/FengyunPan2)) -- The vSphere cloud provider now suppoerts zones. ([#66795](https://github.com/kubernetes/kubernetes/pull/66795), [@jiatongw](https://github.com/jiatongw)) - -### SIG Cluster Lifecycle - -- External CAs can now be used for kubeadm with only a certificate, as long as all required certificates already exist. ([#68296](https://github.com/kubernetes/kubernetes/pull/68296), [@liztio](https://github.com/liztio)) -- kubeadm now works better when not connected to the Internet. In addition, common kubeadm commands will now work without an available networking interface. ([#67397](https://github.com/kubernetes/kubernetes/pull/67397), [@neolit123](https://github.com/neolit123)) -- Scrape frequency of metrics-server has been increased to 30s.([#68127](https://github.com/kubernetes/kubernetes/pull/68127), [@serathius](https://github.com/serathius)) -- Kubernetes juju charms will now use CSI for ceph. ([#66523](https://github.com/kubernetes/kubernetes/pull/66523), [@hyperbolic2346](https://github.com/hyperbolic2346)) -- kubeadm uses audit policy v1 instead of v1beta1 ([#67176](https://github.com/kubernetes/kubernetes/pull/67176), [@charrywanganthony](https://github.com/charrywanganthony)) -- Kubeadm nodes will no longer be able to run with an empty or invalid hostname in /proc/sys/kernel/hostname ([#64815](https://github.com/kubernetes/kubernetes/pull/64815), [@dixudx](https://github.com/dixudx)) -- kubeadm now can join the cluster with pre-existing client certificate if provided ([#66482](https://github.com/kubernetes/kubernetes/pull/66482), [@dixudx](https://github.com/dixudx)) -([#66382](https://github.com/kubernetes/kubernetes/pull/66382), [@bart0sh](https://github.com/bart0sh)) -- kubeadm will no longer hang indefinitely if there is no Internet connection and --kubernetes-version is not specified.([#65676](https://github.com/kubernetes/kubernetes/pull/65676), [@dkoshkin](https://github.com/dkoshkin)) -- kubeadm: kube-proxy will now run on all nodes, and not just master nodes.([#65931](https://github.com/kubernetes/kubernetes/pull/65931), [@neolit123](https://github.com/neolit123)) -- kubeadm now uses separate YAML documents for the kubelet and kube-proxy ComponentConfigs. ([#65787](https://github.com/kubernetes/kubernetes/pull/65787), [@luxas](https://github.com/luxas)) -- kubeadm will now print required flags when running `kubeadm upgrade plan`.([#65802](https://github.com/kubernetes/kubernetes/pull/65802), [@xlgao-zju](https://github.com/xlgao-zju)) -- Unix support for ZFS as a valid graph driver has been added for Docker, enabling users to use Kubeadm with ZFS. ([#65635](https://github.com/kubernetes/kubernetes/pull/65635), [@neolit123](https://github.com/neolit123)) - -### SIG GCP - -- GCE: decrease cpu requests on master node, to allow more components to fit on one core machine. ([#67504](https://github.com/kubernetes/kubernetes/pull/67504), [@loburm](https://github.com/loburm)) -- Kubernetes 1.12 includes a large number of metadata agent improvements, including expanding the metadata agent's access to all API groups and removing metadata agent config maps in favor of command line flags. It also includes improvements to the logging agent, such as multiple fixes and adjustments. - ([#66485](https://github.com/kubernetes/kubernetes/pull/66485), [@bmoyles0117](https://github.com/bmoyles0117)) -- cluster/gce: Kubernetes now generates consistent key sizes in config-default.sh using /dev/urandom instead of /dev/random ([#67139](https://github.com/kubernetes/kubernetes/pull/67139), [@yogi-sagar](https://github.com/yogi-sagar)) - -### SIG Instrumentation - - The etcdv3 client can now be monitored by Prometheus. ([#64741](https://github.com/kubernetes/kubernetes/pull/64741), [@wgliang](https://github.com/wgliang)) - -### SIG Network - -- The ip-masq-agent will now be scheduled in all nodes except master due to NoSchedule/NoExecute tolerations. ([#66260](https://github.com/kubernetes/kubernetes/pull/66260), [@tanshanshan](https://github.com/tanshanshan)) -- The CoreDNS service can now be monitored by Prometheus. ([#65589](https://github.com/kubernetes/kubernetes/pull/65589), [@rajansandeep](https://github.com/rajansandeep)) -- Traffic shaping is now supported for the CNI network driver. ([#63194](https://github.com/kubernetes/kubernetes/pull/63194), [@m1093782566](https://github.com/m1093782566)) -- The dockershim now sets the "bandwidth" and "ipRanges" CNI capabilities (dynamic parameters). Plugin authors and administrators can now take advantage of this by updating their CNI configuration file. For more information, see the [CNI docs](https://github.com/containernetworking/cni/blob/master/CONVENTIONS.md#dynamic-plugin-specific-fields-capabilities--runtime-configuration) ([#64445](https://github.com/kubernetes/kubernetes/pull/64445), [@squeed](https://github.com/squeed)) - -### SIG Node - -- RuntimeClass is a new API resource for defining different classes of runtimes that may be used to run containers in the cluster. Pods can select a RunitmeClass to use via the RuntimeClassName field. This feature is in alpha, and the RuntimeClass feature gate must be enabled in order to use it. ([#67737](https://github.com/kubernetes/kubernetes/pull/67737), [@tallclair](https://github.com/tallclair)) -- Sped up kubelet start time by executing an immediate runtime and node status update when the Kubelet sees that it has a CIDR. ([#67031](https://github.com/kubernetes/kubernetes/pull/67031), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) -- cpumanager will now rollback state if updateContainerCPUSet failed, indicating that the container start failed. This change will prevent CPU leaks. ([#67430](https://github.com/kubernetes/kubernetes/pull/67430), [@choury](https://github.com/choury)) -- [CRI] RunPodSandboxRequest now has a runtime_handler field for selecting the runtime configuration to run the sandbox with. This feature is in alpha for 1.12.. ([#67518](https://github.com/kubernetes/kubernetes/pull/67518), [@tallclair](https://github.com/tallclair)) -- If a container's requested device plugin resource hasn't registered after Kubelet restart, the container start will now fail.([#67145](https://github.com/kubernetes/kubernetes/pull/67145), [@jiayingz](https://github.com/jiayingz)) -- Upgraded TaintNodesByCondition to beta. ([#62111](https://github.com/kubernetes/kubernetes/pull/62111), [@k82cn](https://github.com/k82cn)) -- The PodShareProcessNamespace feature to configure PID namespace sharing within a pod has been promoted to beta. ([#66507](https://github.com/kubernetes/kubernetes/pull/66507), [@verb](https://github.com/verb)) -- The CPU Manager will now validate the state of the node, enabling Kubernetes to maintain the CPU topology even if resources change. ([#66718](https://github.com/kubernetes/kubernetes/pull/66718), [@ipuustin](https://github.com/ipuustin)) -- Added support kubelet plugin watcher in device manager, as part of the new plugin system. ([#58755](https://github.com/kubernetes/kubernetes/pull/58755), [@vikaschoudhary16](https://github.com/vikaschoudhary16)) -- Expose docker registry config for addons used in Juju deployments ([#66092](https://github.com/kubernetes/kubernetes/pull/66092), [@kwmonroe](https://github.com/kwmonroe)) -- `RunAsGroup` which has been broken since 1.10, now works. ([#65926](https://github.com/kubernetes/kubernetes/pull/65926), [@Random-Liu](https://github.com/Random-Liu)) -- The systemd config files are now reloaded before kubelet starts, so changes can take effect([#65702](https://github.com/kubernetes/kubernetes/pull/65702), [@mborsz](https://github.com/mborsz)) -- Hostnames are now converted to lowercase before being used for node lookups in the kubernetes-worker charm. ([#65487](https://github.com/kubernetes/kubernetes/pull/65487), [@dshcherb](https://github.com/dshcherb)) -- kubelets that specify `--cloud-provider` now only report addresses in Node status as determined by the cloud provider (unless `--hostname-override` is used to force reporting of the specified hostname) ([#65594](https://github.com/kubernetes/kubernetes/pull/65594), [@liggitt](https://github.com/liggitt)) -- Kubelet now exposes `/debug/flags/v` to allow dynamically setting glog logging level. For example, to change glog level to 3, you only have to send a PUT request like `curl -X PUT http://127.0.0.1:8080/debug/flags/v -d "3"`. ([#64601](https://github.com/kubernetes/kubernetes/pull/64601), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) - -### SIG OpenStack - -- Openstack now supports the node shutdown taint. The taint is added when an instance is shutdown in openstack. ([#67982](https://github.com/kubernetes/kubernetes/pull/67982), [@zetaab](https://github.com/zetaab)) - -### SIG Scheduling - -- The equivalence class cache has been redesigned to be a two level cache, resulting in a significant increase in scheduling throughput and performance. ([#65714](https://github.com/kubernetes/kubernetes/pull/65714), [@resouer](https://github.com/resouer)) -- kube-scheduler can now listen on ports up to 65535, correcting a problem with certain operating systems that request ports greater than 32768. ([#65833](https://github.com/kubernetes/kubernetes/pull/65833), [@sttts](https://github.com/sttts)) -- Performance of the anti-affinity predicate of the default scheduler has been improved. ([#66948](https://github.com/kubernetes/kubernetes/pull/66948), [@mohamed-mehany](https://github.com/mohamed-mehany)) -- The unreachable taint gets applied to a node when it loses its network connection. ([#67734](https://github.com/kubernetes/kubernetes/pull/67734), [@Huang-Wei](https://github.com/Huang-Wei)) -- If `TaintNodesByCondition` is enabled, add `node.kubernetes.io/unschedulable` and `node.kubernetes.io/network-unavailable` automatically to DaemonSet pods. ([#64954](https://github.com/kubernetes/kubernetes/pull/64954), [@k82cn](https://github.com/k82cn)) - -### SIG Storage - -- The AllowedTopologies field inside StorageClass is now validated against set and map semantics. Specifically, there cannot be duplicate TopologySelectorTerms, MatchLabelExpressions keys, or TopologySelectorLabelRequirement Values. ([#66843](https://github.com/kubernetes/kubernetes/pull/66843), [@verult](https://github.com/verult)) -- A PersistentVolumeClaim may not have been synced to the controller local cache in time if the PersistentVolumeis bound by an external PV binder (such as kube-scheduler), so Kubernetes will now double check if PVC is not found in order to prevent the volume from being incorrectly reclaimed. ([#67062](https://github.com/kubernetes/kubernetes/pull/67062), [@cofyc](https://github.com/cofyc)) -- Filesystems will now be properly unmounted when a backend is not reachable and returns EIO. ([#67097](https://github.com/kubernetes/kubernetes/pull/67097), [@chakri-nelluri](https://github.com/chakri-nelluri)) -- The logic for attaching volumes has been changed so that attachdetach controller attaches volumes immediately when a Pod's PVCs are bound, preventing a problem that caused pods to have extremely long startup times. ([#66863](https://github.com/kubernetes/kubernetes/pull/66863), [@cofyc](https://github.com/cofyc)) -- Dynamic provisions that create iSCSI PVs can now ensure that multipath is used by specifying 2 or more target portals in the PV, which will cause kubelet to wait up to 10 seconds for the multipath device. PVs with just one portal continue to work as before, with kubelet not waiting for the multipath device and just using the first disk it finds. ([#67140](https://github.com/kubernetes/kubernetes/pull/67140), [@bswartz](https://github.com/bswartz)) -- ScaleIO volumes can now be provisioned without having to first manually create /dev/disk/by-id path on each kubernetes node (if not already present). ([#66174](https://github.com/kubernetes/kubernetes/pull/66174), [@ddebroy](https://github.com/ddebroy)) -- Multi-line annotations injected via downward API files will no longer be sorted, scrambling their information. ([#65992](https://github.com/kubernetes/kubernetes/pull/65992), [@liggitt](https://github.com/liggitt)) -- The constructed volume spec for the CSI plugin now includes a volume mode field. ([#65456](https://github.com/kubernetes/kubernetes/pull/65456), [@wenlxie](https://github.com/wenlxie)) -- Kubernetes now includes a metric that reports the number of PVCs that are in-use,with plugin and node name as dimensions, making it possible to figure out how many PVCs each node is using when troubleshooting attach/detach issues. - ([#64527](https://github.com/kubernetes/kubernetes/pull/64527), [@gnufied](https://github.com/gnufied)) -- Added support to restore a volume from a volume snapshot data source. ([#67087](https://github.com/kubernetes/kubernetes/pull/67087), [@xing-yang](https://github.com/xing-yang)) -- When attaching iSCSI volumes, kubelet now scans only the specific LUNs being attached, and also deletes them after detaching. This avoids dangling references to LUNs that no longer exist, which used to be the cause of random I/O errors/timeouts in kernel logs, slowdowns during block-device related operations, and very rare cases of data corruption. -([#63176](https://github.com/kubernetes/kubernetes/pull/63176), [@bswartz](https://github.com/bswartz)) -- Both directory and block devices are now supported for local volume plugin FileSystem VolumeMode. ([#63011](https://github.com/kubernetes/kubernetes/pull/63011), [@NickrenREN](https://github.com/NickrenREN)) -- CSI NodePublish call can optionally contain information about the pod that requested the CSI volume. ([#67945](https://github.com/kubernetes/kubernetes/pull/67945), [@jsafrane](https://github.com/jsafrane)) -- Added support for volume attach limits for CSI volumes. ([#67731](https://github.com/kubernetes/kubernetes/pull/67731), [@gnufied](https://github.com/gnufied)) - -### SIG VMWare - -- The vmUUID is now preserved when renewing nodeinfo in the vSphere cloud provider. ([#66007](https://github.com/kubernetes/kubernetes/pull/66007), [@w-leads](https://github.com/w-leads)) -- You can now configure the vsphere cloud provider with a trusted Root-CA, enabling you to take advantage of TLS certificate rotation. ([#64758](https://github.com/kubernetes/kubernetes/pull/64758), [@mariantalla](https://github.com/mariantalla)) - -### SIG Windows - -- Kubelet no longer attempts to sync iptables on non-Linux systems.. ([#67690](https://github.com/kubernetes/kubernetes/pull/67690), [@feiskyer](https://github.com/feiskyer)) -- Kubelet no longer applies default hard evictions of nodefs.inodesFree on non-Linux systems. ([#67709](https://github.com/kubernetes/kubernetes/pull/67709), [@feiskyer](https://github.com/feiskyer)) -- Windows system container "pods" now support kubelet stats. ([#66427](https://github.com/kubernetes/kubernetes/pull/66427), [@feiskyer](https://github.com/feiskyer)) - -## Other Notable Changes - -### Bug Fixes - -- Update debian-iptables and hyperkube-base images to include CVE fixes. ([#67365](https://github.com/kubernetes/kubernetes/pull/67365), [@ixdy](https://github.com/ixdy)) -- Fix for resourcepool-path configuration in the vsphere.conf file. ([#66261](https://github.com/kubernetes/kubernetes/pull/66261), [@divyenpatel](https://github.com/divyenpatel)) -- This fix prevents a GCE PD volume from being mounted if the udev device link is stale and tries to correct the link. ([#66832](https://github.com/kubernetes/kubernetes/pull/66832), [@msau42](https://github.com/msau42)) -- Fix controller-manager crashes when flex plugin is removed from flex plugin directory ([#65536](https://github.com/kubernetes/kubernetes/pull/65536), [@gnufied](https://github.com/gnufied)) -- Fix local volume directory can't be deleted because of volumeMode error ([#65310](https://github.com/kubernetes/kubernetes/pull/65310), [@wenlxie](https://github.com/wenlxie)) -- bugfix: Do not print feature gates in the generic apiserver code for glog level 0 ([#65584](https://github.com/kubernetes/kubernetes/pull/65584), [@neolit123](https://github.com/neolit123)) -- Fix an issue that pods using hostNetwork keep increasing. ([#67456](https://github.com/kubernetes/kubernetes/pull/67456), [@Huang-Wei](https://github.com/Huang-Wei)) -- fixes an out of range panic in the NoExecuteTaintManager controller when running a non-64-bit build ([#65596](https://github.com/kubernetes/kubernetes/pull/65596), [@liggitt](https://github.com/liggitt)) -- Fix kubelet to not leak goroutines/intofiy watchers on an inactive connection if it's closed ([#67285](https://github.com/kubernetes/kubernetes/pull/67285), [@yujuhong](https://github.com/yujuhong)) -- Fix pod launch by kubelet when --cgroups-per-qos=false and --cgroup-driver="systemd" ([#66617](https://github.com/kubernetes/kubernetes/pull/66617), [@pravisankar](https://github.com/pravisankar)) -- Fixed a panic in the node status update logic when existing node has nil labels. ([#66307](https://github.com/kubernetes/kubernetes/pull/66307), [@guoshimin](https://github.com/guoshimin)) -- Fix the bug where image garbage collection is disabled by mistake. ([#66051](https://github.com/kubernetes/kubernetes/pull/66051), [@jiaxuanzhou](https://github.com/jiaxuanzhou)) -- Fix a bug that preempting a pod may block forever. ([#65987](https://github.com/kubernetes/kubernetes/pull/65987), [@Random-Liu](https://github.com/Random-Liu)) -- fixes the errors/warnings in fluentd configuration ([#67947](https://github.com/kubernetes/kubernetes/pull/67947), [@saravanan30erd](https://github.com/saravanan30erd)) -- Fixed an issue which prevented `gcloud` from working on GCE when metadata concealment was enabled. ([#66630](https://github.com/kubernetes/kubernetes/pull/66630), [@dekkagaijin](https://github.com/dekkagaijin)) -- Fix Stackdriver integration based on node annotation container.googleapis.com/instance_id. ([#66676](https://github.com/kubernetes/kubernetes/pull/66676), [@kawych](https://github.com/kawych)) -- GCE: Fixes loadbalancer creation and deletion issues appearing in 1.10.5. ([#66400](https://github.com/kubernetes/kubernetes/pull/66400), [@nicksardo](https://github.com/nicksardo)) -- Fixed exception detection in fluentd-gcp plugin. ([#65361](https://github.com/kubernetes/kubernetes/pull/65361), [@xperimental](https://github.com/xperimental)) -- kubeadm: Fix panic when node annotation is nil ([#67648](https://github.com/kubernetes/kubernetes/pull/67648), [@xlgao-zju](https://github.com/xlgao-zju)) -- kubeadm: stop setting UID in the kubelet ConfigMap ([#66341](https://github.com/kubernetes/kubernetes/pull/66341), [@runiq](https://github.com/runiq)) -- bazel deb package bugfix: The kubeadm deb package now reloads the kubelet after installation ([#65554](https://github.com/kubernetes/kubernetes/pull/65554), [@rdodev](https://github.com/rdodev)) -- fix cluster-info dump error ([#66652](https://github.com/kubernetes/kubernetes/pull/66652), [@charrywanganthony](https://github.com/charrywanganthony)) -- Fix kubelet startup failure when using ExecPlugin in kubeconfig ([#66395](https://github.com/kubernetes/kubernetes/pull/66395), [@awly](https://github.com/awly)) -- kubectl: fixes a panic displaying pods with nominatedNodeName set ([#66406](https://github.com/kubernetes/kubernetes/pull/66406), [@liggitt](https://github.com/liggitt)) -- prevents infinite CLI wait on delete when item is recreated ([#66136](https://github.com/kubernetes/kubernetes/pull/66136), [@deads2k](https://github.com/deads2k)) -- Fix 'kubectl cp' with no arguments causes a panic ([#65482](https://github.com/kubernetes/kubernetes/pull/65482), [@wgliang](https://github.com/wgliang)) -- Fixes the wrong elasticsearch node counter ([#65627](https://github.com/kubernetes/kubernetes/pull/65627), [@IvanovOleg](https://github.com/IvanovOleg)) -- Fix an issue with dropped audit logs, when truncating and batch backends enabled at the same time. ([#65823](https://github.com/kubernetes/kubernetes/pull/65823), [@loburm](https://github.com/loburm)) -- DaemonSet: Fix bug- daemonset didn't create pod after node have enough resource ([#67337](https://github.com/kubernetes/kubernetes/pull/67337), [@linyouchong](https://github.com/linyouchong)) -- DaemonSet controller is now using backoff algorithm to avoid hot loops fighting with kubelet on pod recreation when a particular DaemonSet is misconfigured. ([#65309](https://github.com/kubernetes/kubernetes/pull/65309), [@tnozicka](https://github.com/tnozicka)) -- Avoid creating new controller revisions for statefulsets when cache is stale ([#67039](https://github.com/kubernetes/kubernetes/pull/67039), [@mortent](https://github.com/mortent)) -- Fixes issue when updating a DaemonSet causes a hash collision. ([#66476](https://github.com/kubernetes/kubernetes/pull/66476), [@mortent](https://github.com/mortent)) -- fix rollout status for statefulsets ([#62943](https://github.com/kubernetes/kubernetes/pull/62943), [@faraazkhan](https://github.com/faraazkhan)) -- fixes a validation error that could prevent updates to StatefulSet objects containing non-normalized resource requests ([#66165](https://github.com/kubernetes/kubernetes/pull/66165), [@liggitt](https://github.com/liggitt)) -- Headless Services with no ports defined will now create Endpoints correctly, and appear in DNS. ([#67622](https://github.com/kubernetes/kubernetes/pull/67622), [@thockin](https://github.com/thockin)) -- Prevent `resourceVersion` updates for custom resources on no-op writes. ([#67562](https://github.com/kubernetes/kubernetes/pull/67562), [@nikhita](https://github.com/nikhita)) -- kube-controller-manager can now start the quota controller when discovery results can only be partially determined. ([#67433](https://github.com/kubernetes/kubernetes/pull/67433), [@deads2k](https://github.com/deads2k)) -- Immediately close the other side of the connection when proxying. ([#67288](https://github.com/kubernetes/kubernetes/pull/67288), [@MHBauer](https://github.com/MHBauer)) -- kube-apiserver: fixes error creating system priority classes when starting multiple apiservers simultaneously ([#67372](https://github.com/kubernetes/kubernetes/pull/67372), [@tanshanshan](https://github.com/tanshanshan)) -- Forget rate limit when CRD establish controller successfully updated CRD condition ([#67370](https://github.com/kubernetes/kubernetes/pull/67370), [@yue9944882](https://github.com/yue9944882)) -- fixes a panic when using a mutating webhook admission plugin with a DELETE operation ([#66425](https://github.com/kubernetes/kubernetes/pull/66425), [@liggitt](https://github.com/liggitt)) -- Fix creation of custom resources when the CRD contains non-conventional pluralization and subresources ([#66249](https://github.com/kubernetes/kubernetes/pull/66249), [@deads2k](https://github.com/deads2k)) -- Aadjusted http/2 buffer sizes for apiservers to prevent starvation issues between concurrent streams ([#67902](https://github.com/kubernetes/kubernetes/pull/67902), [@liggitt](https://github.com/liggitt)) -- Fixed a bug that was blocking extensible error handling when serializing API responses error out. Previously, serialization failures always resulted in the status code of the original response being returned. Now, the following behavior occurs: ([#67041](https://github.com/kubernetes/kubernetes/pull/67041), [@tristanburgess](https://github.com/tristanburgess)) -- Fixes issue where pod scheduling may fail when using local PVs and pod affinity and anti-affinity without the default StatefulSet OrderedReady pod management policy ([#67556](https://github.com/kubernetes/kubernetes/pull/67556), [@msau42](https://github.com/msau42)) -- Fix panic when processing Azure HTTP response. ([#68210](https://github.com/kubernetes/kubernetes/pull/68210), [@feiskyer](https://github.com/feiskyer)) -- Fix volume limit for EBS on m5 and c5 instance types ([#66397](https://github.com/kubernetes/kubernetes/pull/66397), [@gnufied](https://github.com/gnufied)) -- Fix a bug on GCE that /etc/crictl.yaml is not generated when crictl is preloaded. ([#66877](https://github.com/kubernetes/kubernetes/pull/66877), [@Random-Liu](https://github.com/Random-Liu)) -- Revert #63905: Setup dns servers and search domains for Windows Pods. DNS for Windows containers will be set by CNI plugins. ([#66587](https://github.com/kubernetes/kubernetes/pull/66587), [@feiskyer](https://github.com/feiskyer)) -- Fix validation for HealthzBindAddress in kube-proxy when --healthz-port is set to 0 ([#66138](https://github.com/kubernetes/kubernetes/pull/66138), [@wsong](https://github.com/wsong)) -- Fixes issue [#68899](https://github.com/kubernetes/kubernetes/issues/68899) where pods might schedule on an unschedulable node. ([#68984](https://github.com/kubernetes/kubernetes/issues/68984), [@k82cn](https://github.com/k82cn)) - -### Not Very Notable (that is, non-user-facing) - -- Unit tests have been added for scopes and scope selectors in the quota spec ([#66351](https://github.com/kubernetes/kubernetes/pull/66351), [@vikaschoudhary16](https://github.com/vikaschoudhary16)) Courtesy of SIG Node, and SIG Scheduling -- kubelet v1beta1 external ComponentConfig types are now available in the `k8s.io/kubelet` repo ([#67263](https://github.com/kubernetes/kubernetes/pull/67263), [@luxas](https://github.com/luxas)) Courtesy of SIG Cluster Lifecycle, SIG Node, SIG Scheduling, and SIG Testing -- Use sync.map to scale ecache better ([#66862](https://github.com/kubernetes/kubernetes/pull/66862), [@resouer](https://github.com/resouer)) -- Extender preemption should respect IsInterested() ([#66291](https://github.com/kubernetes/kubernetes/pull/66291), [@resouer](https://github.com/resouer)) -- This PR will leverage subtests on the existing table tests for the scheduler units. ([#63665](https://github.com/kubernetes/kubernetes/pull/63665), [@xchapter7x](https://github.com/xchapter7x)) -- This PR will leverage subtests on the existing table tests for the scheduler units. ([#63666](https://github.com/kubernetes/kubernetes/pull/63666), [@xchapter7x](https://github.com/xchapter7x)) -- Re-adds `pkg/generated/bindata.go` to the repository to allow some parts of k8s.io/kubernetes to be go-vendorable. ([#65985](https://github.com/kubernetes/kubernetes/pull/65985), [@ixdy](https://github.com/ixdy)) -- If `TaintNodesByCondition` enabled, taint node with `TaintNodeUnschedulable` when initializing node to avoid race condition. -([#63955](https://github.com/kubernetes/kubernetes/pull/63955), [@k82cn](https://github.com/k82cn)) -- Remove rescheduler since scheduling DS pods by default scheduler is moving to beta. ([#67687](https://github.com/kubernetes/kubernetes/pull/67687), [@Lion-Wei](https://github.com/Lion-Wei)) -- kubeadm: make sure pre-pulled kube-proxy image and the one specified in its daemon set manifest are the same ([#67131](https://github.com/kubernetes/kubernetes/pull/67131), [@rosti](https://github.com/rosti)) -- kubeadm: remove misleading error message regarding image pulling ([#66658](https://github.com/kubernetes/kubernetes/pull/66658), [@dixudx](https://github.com/dixudx)) -- kubeadm: Pull sidecar and dnsmasq-nanny images when using kube-dns ([#66499](https://github.com/kubernetes/kubernetes/pull/66499), [@rosti](https://github.com/rosti)) -- kubeadm: Fix pause image to not use architecture, as it is a manifest list ([#65920](https://github.com/kubernetes/kubernetes/pull/65920), [@dims](https://github.com/dims)) -- kubeadm: Remove usage of `PersistentVolumeLabel` ([#65827](https://github.com/kubernetes/kubernetes/pull/65827), [@xlgao-zju](https://github.com/xlgao-zju)) -- kubeadm: Add a `v1alpha3` API. This change creates a v1alpha3 API that is initially a duplicate of v1alpha2. ([#65629](https://github.com/kubernetes/kubernetes/pull/65629), [@luxas](https://github.com/luxas)) -- Improved error message when checking the rollout status of StatefulSet with OnDelete strategy type. ([#66983](https://github.com/kubernetes/kubernetes/pull/66983), [@mortent](https://github.com/mortent)) -- Defaults for file audit logging backend in batch mode changed: ([#67223](https://github.com/kubernetes/kubernetes/pull/67223), [@tallclair](https://github.com/tallclair)) -- Role, ClusterRole and their bindings for cloud-provider is put under system namespace. Their addonmanager mode switches to EnsureExists. ([#67224](https://github.com/kubernetes/kubernetes/pull/67224), [@grayluck](https://github.com/grayluck)) -- Don't let aggregated apiservers fail to launch if the external-apiserver-authentication configmap is not found in the cluster. ([#67836](https://github.com/kubernetes/kubernetes/pull/67836), [@sttts](https://github.com/sttts)) -- Always create configmaps/extensions-apiserver-authentication from kube-apiserver. ([#67694](https://github.com/kubernetes/kubernetes/pull/67694), [@sttts](https://github.com/sttts)) -- Switched certificate data replacement from "REDACTED" to "DATA+OMITTED" ([#66023](https://github.com/kubernetes/kubernetes/pull/66023), [@ibrasho](https://github.com/ibrasho)) -- Decrease the amount of time it takes to modify kubeconfig files with large amounts of contexts ([#67093](https://github.com/kubernetes/kubernetes/pull/67093), [@juanvallejo](https://github.com/juanvallejo)) -- Make EBS volume expansion faster ([#66728](https://github.com/kubernetes/kubernetes/pull/66728), [@gnufied](https://github.com/gnufied)) -- Remove unused binary and container image for kube-aggregator. The functionality is already integrated into the kube-apiserver. ([#67157](https://github.com/kubernetes/kubernetes/pull/67157), [@dims](https://github.com/dims)) -- kube-controller-manager now uses the informer cache instead of active pod gets in HPA controller ([#68241](https://github.com/kubernetes/kubernetes/pull/68241), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) -- Replace scale down forbidden window with scale down stabilization window. Rather than waiting a fixed period of time between scale downs HPA now scales down to the highest recommendation it during the scale down stabilization window. ([#68122](https://github.com/kubernetes/kubernetes/pull/68122), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) -- Improve CPU sample sanitization in HPA by taking metric's freshness into account. ([#68068](https://github.com/kubernetes/kubernetes/pull/68068), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) -- Replace scale up forbidden window with disregarding CPU samples collected when pod was initializing. ([#67252](https://github.com/kubernetes/kubernetes/pull/67252), [@jbartosik](https://github.com/jbartosik)) -- [e2e] verifying LimitRange update is effective before creating new pod ([#68171](https://github.com/kubernetes/kubernetes/pull/68171), [@dixudx](https://github.com/dixudx)) -- Port 31337 will be used by fluentd ([#68051](https://github.com/kubernetes/kubernetes/pull/68051), [@Szetty](https://github.com/Szetty)) -- Fix flexvolume in containarized kubelets ([#65549](https://github.com/kubernetes/kubernetes/pull/65549), [@gnufied](https://github.com/gnufied)) -- The check for unsupported plugins during volume resize has been moved from the admission controller to the two controllers that handle volume resize. ([#66780](https://github.com/kubernetes/kubernetes/pull/66780), [@kangarlou](https://github.com/kangarlou)) -- kubeadm: remove redundant flags settings for kubelet ([#64682](https://github.com/kubernetes/kubernetes/pull/64682), [@dixudx](https://github.com/dixudx)) -- Set “priorityClassName: system-node-critical” on kube-proxy manifest by default. ([#60150](https://github.com/kubernetes/kubernetes/pull/60150), [@MrHohn](https://github.com/MrHohn)) -- kube-proxy v1beta1 external ComponentConfig types are now available in the `k8s.io/kube-proxy` repo ([#67688](https://github.com/kubernetes/kubernetes/pull/67688), [@Lion-Wei](https://github.com/Lion-Wei)) -- add missing LastTransitionTime of ContainerReady condition ([#64867](https://github.com/kubernetes/kubernetes/pull/64867), [@dixudx](https://github.com/dixudx)) - -## External Dependencies - -- Default etcd server version is unchanged from v1.11: v3.2.18 ([#61198](https://github.com/kubernetes/kubernetes/pull/61198)) -- Rescheduler is unchanged from v1.11: v0.4.0 ([#65454](https://github.com/kubernetes/kubernetes/pull/65454)) -- The validated docker versions are the same as for v1.10: 1.11.2 to 1.13.1 and 17.03.x -- The Go version is go1.10.3, as compared to go10.2 in v1.11. ([#65726](https://github.com/kubernetes/kubernetes/pull/65726), [@ixdy](https://github.com/ixdy)) -- The minimum supported go is the same as for v1.10: go1.9.1. ([#55301](https://github.com/kubernetes/kubernetes/pull/55301)) -- CNI is unchanged from v1.10: v0.6.0 ([#51250](https://github.com/kubernetes/kubernetes/pull/51250)) -- CSI is unchanged from v1.11: 0.3.0 ([#64719](https://github.com/kubernetes/kubernetes/pull/64719)) -- The dashboard add-on unchanged from v1.10: v1.8.3. ([#57326](https://github.com/kubernetes/kubernetes/pull/57326)) -- Bump Heapster to v1.6.0-beta as compared to v1.5.2 in v1.11 ([#67074](https://github.com/kubernetes/kubernetes/pull/67074)) -Cluster Autoscaler has been upgraded to version to v1.3.2-beta.2 from v1.3.0 in v1.11. See [release notes](https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.3.2-beta.2) for details. ([#67697](https://github.com/kubernetes/kubernetes/pull/67697)) -- Kube-dns is unchanged from v1.11: v1.14.10 ([#62676](https://github.com/kubernetes/kubernetes/pull/62676)) -- Influxdb is unchanged from v1.10: v1.3.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) -- Grafana is unchanged from v1.10: v4.4.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) -- Kibana is at v6.3.2. ([#67582](https://github.com/kubernetes/kubernetes/pull/67582)) -- CAdvisor is unchanged from v1.11: v0.30.1 ([#64987](https://github.com/kubernetes/kubernetes/pull/64987)) -- fluentd-gcp-scaler has been updated to v0.4.0, up from 0.3.0 in v1.11. ([#67691](https://github.com/kubernetes/kubernetes/pull/67691)) -- fluentd in fluentd-es-image is unchanged from 1.10: v1.1.0 ([#58525](https://github.com/kubernetes/kubernetes/pull/58525)) -- Fluentd in fluentd-elasticsearch is unchanged from v1.11: v1.2.4 ([#67434](https://github.com/kubernetes/kubernetes/pull/67434)) -- fluentd-elasticsearch is unchanged from 1.10: v2.0.4 ([#58525](https://github.com/kubernetes/kubernetes/pull/58525)) -- The fluent-plugin-kubernetes_metadata_filter plugin in fluentd-elasticsearch has been downgraded to version 2.0.0 ([#67544](https://github.com/kubernetes/kubernetes/pull/67544)) -- fluentd-gcp is unchanged from 1.10: v3.0.0. ([#60722](https://github.com/kubernetes/kubernetes/pull/60722)) -- Ingress glbc is unchanged from 1.10: v1.0.0 ([#61302](https://github.com/kubernetes/kubernetes/pull/61302)) -- OIDC authentication is unchanged from 1.10: coreos/go-oidc v2 ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) -- Calico is unchanged from 1.10: v2.6.7 ([#59130](https://github.com/kubernetes/kubernetes/pull/59130)) -- hcsshim is unchanged from v1.11, at v0.11 ([#64272](https://github.com/kubernetes/kubernetes/pull/64272)) -- gitRepo volumes in pods no longer require git 1.8.5 or newer; older git versions are now supported. ([#62394](https://github.com/kubernetes/kubernetes/pull/62394)) -- Upgraded crictl on GCE to v1.11.1, up from 1.11.0 on v1.11. ([#66152](https://github.com/kubernetes/kubernetes/pull/66152)) -CoreDNS has been updated to v1.2.2, up from v1.1.3 in v1.11 ([#68076](https://github.com/kubernetes/kubernetes/pull/68076)) -- Setup dns servers and search domains for Windows Pods in dockershim. Docker EE version >= 17.10.0 is required for propagating DNS to containers. ([#63905](https://github.com/kubernetes/kubernetes/pull/63905)) -- Istio addon is unchanged from v1.11, at 0.8.0. See [full Istio release notes](https://istio.io/about/notes/0.6.html) ([#64537](https://github.com/kubernetes/kubernetes/pull/64537)) -- cadvisor godeps is unchanged from v1.11, at v0.30.0 ([#64800](https://github.com/kubernetes/kubernetes/pull/64800)) -- event-exporter to version v0.2.2, compared to v0.2.0 in v1.11. ([#66157](https://github.com/kubernetes/kubernetes/pull/66157)) -- Rev the Azure SDK for networking to 2017-06-01 ([#61955](https://github.com/kubernetes/kubernetes/pull/61955)) -- Es-image has been upgraded to Elasticsearch 6.3.2 ([#67484](https://github.com/kubernetes/kubernetes/pull/67484)) -- metrics-server has been upgraded to v0.3.0. ([#68077](https://github.com/kubernetes/kubernetes/pull/68077)) -- GLBC has been updated to v1.2.3 ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) -- Ingress-gce has been updated to v 1.2.0 ([#65641](https://github.com/kubernetes/kubernetes/pull/65641)) -- ip-masq-agen has been updated to v2.1.1 ([#67916](https://github.com/kubernetes/kubernetes/pull/67916)) +> - Start SHA: 91e7b4fd31fcd3d5f436da26c980becec37ceefe +> - End Sha: 337e0e18f1aefa199bd0a1786f8eab42e948064c + +## Known Issues + +- Feature [#566](https://github.com/kubernetes/kubernetes/issues/566) enabling CoreDNS as the default for kube-up deployments was dropped from the release due to a scalability memory resource consumption issue observed. If a cluster operator is considering using CoreDNS on a cluster greater than 2000 nodes, it may be necessary to give more consideration to CoreDNS pod memory resource limits and experimentally measure that memory usage versus cluster resource availability. +- kube-controller-manager currently needs a writable `--cert-dir` (default is `/var/run/kubernetes`) for generating self-signed certificates, when no `--tls-cert-file` or `--tls-private-key-file` are provided. +- The `system:kube-controller-manager` ClusterRole lacks permission to `get` the `configmap` extension-apiserver-authentication. kube-controller-manager errors if run with a service account bound to the clusterrole. +- Runtime handler and Windows npipe protocol are not supported yet in crictl v1.11.x. Those features will be supported in crictl [v1.12.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.12.0), together with Kubernetes v1.12.1. + +## Major Themes + +### SIG API Machinery + +SIG API work this cycle involved development of the "dry run" functionality, which enables users to see the results of a particular command without persisting those changes. + +### SIG-autoscaling + +SIG Autoscaling focused on improving the Horizontal Pod Autoscaling API and algorithm: +- We released autoscaling/v2beta2, which cleans up and unifies the API +- We improved readiness detection and smoothing to work well in a larger variety or use cases + +### SIG-Azure + +Sig Azure was focused on two primary new alpha features: +# Adding Azure Availability Zones support to cloud provider. +# Supporting Cross RG resources (disks, Azure File and node [Experimental] + +Besides the above new features, support for Azure Virtual Machine Scale Sets (VMSS) and Cluster-Autoscaler is now stable and considered GA: + +- Azure virtual machine scale sets (VMSS) allow you to create and manage identical load balanced +VMs that automatically increase or decrease based on demand or a set schedule. +- With this new stable feature, Kubernetes supports the scaling of containerized applications +with Azure VMSS, including the ability to integrate it with cluster-autoscaler to automatically +adjust the size of the Kubernetes clusters based on the same conditions. + +### SIG-cli + +SIG CLI focused on implementing the new plugin mechanism, providing a library with common CLI tooling for plugin authors and further refactorings of the code. + +### SIG-cloud-provider + +This is the first Kubernetes release for this SIG! In v1.12, SIG Cloud Provider focused on building the processes and infrastructure to better support existing and new cloud providers. Some of these initiatives (many of which are still in progress) are: + +- Reporting E2E conformance test results to TestGrid from every cloud provider (in collaboration with SIG Testing & SIG Release) +- Defining minimum required documentation from each cloud provider which includes (in collaboration with SIG Docs): + - example manifests for the kube-apiserver, kube-controller-manager, kube-schedule, kubelet, and the cloud-controller-manager + - labels/annotations that are consumed by any cloud specific controllers + +In addition to the above, SIG Cloud Provider has been focusing on a long running effort to remove cloud provider code from kubernetes/kubernetes. + +### SIG-cluster-lifecycle + +In 1.12, SIG Cluster lifecycle has focused on improving the user experience in kubeadm, by fixing a number of bugs and adding some new important features. + +Here is a list of some of the changes that have been made to kubeadm: + +- Kubeadm internal config has been promoted to `v1alpha3`: + - `v1alpha1` has been removed. + - `v1alpha3` has split apart `MasterConfiguration` into separate components; `InitConfiguration`, `ClusterConfiguration`, `JoinConfiguration`, `KubeletConfiguration`, and `KubeProxyConfiguration` + - Different configuration types can be supplied all in the same file separated by `---`. +- Improved CRI handling + - crictl is no longer required in docker-only setups. + - Better detection of installed CRI. + - Better output for image pull errors. +- Improved air-gapped and offline support + - kubeadm now handles air-gapped environments by using the local client version as a fallback. + - Some kubeadm commands are now allowed to work in a completely offline mode. +- Certificate handling improvements: + - Renew certs as part of upgrade. + - New `kubeadm alpha phase certs renew` command for renewing certificates. + - Certificates created with kubeadm now have improved uniqueness of Distinguished Name fields. +- HA improvements: + - `kubeadm join --experimental-control-plane` can now be used to join control plane instances to an existing cluster. + - `kubeadm upgrade node experimental-control-plane` can now be used for upgrading secondary control plane instances created with `kubeadm join --experimental-control-plane`. +Multi-arch support (EXPERIMENTAL): + - kubeadm now adds support for docker “schema 2” manifest lists. This is preliminary part of the process of making kubeadm based k8s deployments to support multiple architectures. +Deprecating features: + - The Alpha feature-gates HighAvailability, SelfHosting, CertsInSecrets are now deprecated, and will be removed in k8s v1.13.0. + +### SIG-ibmcloud + +As a newly created SIG, the SIG-ibmcloud has mainly focused on SIG set up, sharing IBM Clouds ongoing Kubernetes work like scalability tests, Kubernetes upgrade strategy etc. with the SIG members and start working on processes to move cloud provider code to a public GitHub repo. + +### SIG-instrumentation + +No feature work, but a large refactoring of metrics-server as well as a number of bug fixes. + +### SIG-node + +SIG-node graduated the PodShareProcessNamespace feature from alpha to beta. This feature allows a pod spec to request that all containers in a pod share a common process namespaces. + +Two alpha features were also added in this release. + +The RuntimeClass alpha feature enables a node to surface multiple runtime options to support a variety of workload types. Examples include native linux containers, and “sandboxed” containers that isolate the container from the host kernel. + +The CustomCFSQuotaPeriod alpha feature enables node administrators to change the default period used to enforce CFS quota on a node. This can improve performance for some workloads that experience latency while using CFS quota with the default measurement period. Finally, the SIG continues to focus on improving reliability by fixing bugs while working out design and implementation of future features. + +### SIG-OpenStack + +SIG-OpenStack development was primarily focused on fixing bugs and improving feature parity with OpenStack resources. New features were primarily limited to the external provider in an effort to drive adoption of the OpenStack external provider over the in-tree provider. + +In-tree bug fixes and improvements included: +- Fix load balancer status without VIP. +- Fix filtering of server status. +- Fix resizing PVC of Cinder volume. +- Disable load balancer configuration if it is not defined in cloud config. +- Add support for node shutdown taint. + +The external provider includes all of the above with the additional fixes and features: +- Fix bug to prevent allocation of existing floating IP. +- Fix Cinder authentication bug when OS_DOMAIN_NAME not specified. +- Fix Keystone authentication errors by skipping synchronization for unscoped tokens. +- Fix authentication error for client-auth-plugin +- Fix dependency references from in-tree-provider to point to external provider. +- Add shutdown instance by Provider ID. +- Add annotation to preserve floating IP after service delete. +- Add conformance testing to stable and development branches. +- Add support support to Manilla for trustee authentication and supplying custom CAs. +- Add and update documentation. +- Add support to Manilla for provisioning existing shares. +- Add cluster name to load balancer description +- Add synchronization between Kubernetes and Keystone projects +- Add use internal DNS name for 'hostname' of nodes. +- Add support for CSI spec v0.3.0 for both Cinder and Manilla +- Add 'cascade delete' support for Octavia load balancers to improve performance. +- Add improved load balancer naming. + +### SIG-scheduling + +SIG Scheduling development efforts have been primarily focused on improving performance and reliability of the scheduler. +- Performance of the inter-pod affinity/anti-affinity feature is improved over 100X via algorithmic optimization. +- DaemonSet pods, which used to be scheduled by the DaemonSet controller, will be scheduled by the default scheduler in 1.12. This change allows DaemonSet pods to enjoy all the scheduling features of the default scheduler. +- The Image Locality priority function of the scheduler has been improved and is now enabled by default. With this feature enabled, nodes that have all or a partial set of images required for running a pod are preferred over other nodes, which improves pod start-up time. +- TaintNodeByCondition has been moved to Beta and is enabled by default. +- Scheduler throughput has been improved by ~50% in large clusters (>2000 nodes). + +### SIG-service-catalog +- The Originating Identity feature, which lets the broker know which user that performed an action, is now GA. +- [Namespaced Brokers](https://svc-cat.io/docs/namespaced-broker-resources/), which enable operators to install a broker into a namespace instead of the cluster level, reached GA. +- The [Service Plan Defaults](https://svc-cat.io/docs/service-plan-defaults/) feature is in alpha and is under active development. This feature gives operators the ability to define defaults for when someone provisions a service. +- We now support [filtering which services are exposed by Service Catalog](https://svc-cat.io/docs/catalog-restrictions/). +- We have also Improved the CLI experience both for kubectl and svcat by improving the output formatting, and by adding more commands. + +### SIG-storage + +SIG Storage promoted the [Kubernetes volume topology feature](https://github.com/kubernetes/features/issues/490) to beta. This enables Kubernetes to understand and act intelligently on volume accessibility information (such as the “zone” a cloud volume is provisioned in, the “rack” that a SAN array is accessible from, and so on). + +The [dynamic maximum volume count](https://github.com/kubernetes/features/issues/554) feature was also moved to beta. This enables a volume plugin to specify the maximum number of a given volume type per node as a function of the node characteristics (for example, a larger limit for larger nodes, a smaller limit for smaller nodes). + +SIG Storage also worked on a number of [Container Storage Interface (CSI) features](https://github.com/kubernetes/features/issues/178) this quarter in anticipation of moving support for CSI from beta to GA in the next Kubernetes release. This includes graduating the dependent “mount namespace propagation” feature to GA, moving the Kubelet plugin registration mechanism to beta, adding alpha support for a new CSI driver registry as well as for topology, and adding a number of alpha features to support the use of CSI for “local ephemeral volumes” (that is, volumes that exist for the lifecycle of a pod and contain some injected information, like a token or secret). + +With Kubernetes v1.12, SIG Storage also introduced alpha support for [volume snapshotting](https://github.com/kubernetes/features/issues/177). This feature introduces the ability to create/delete volume snapshots and create new volumes from a snapshot using the Kubernetes API. + +### SIG-vmware + +SIG-VMware development was primarily focused on fixing bugs for the in-tree cloud provider, starting the development of the external cloud provider and taking ownership of the cluster-api provider for vSphere. + +In-tree cloud provider bug fixes and improvements included: +- Adding initial Zones support to the provider using vSphere Tags +- Improving the testing harness for the cloud provider by introducing vcsim for automated testing +- Fixing a bug that was preventing updates from 1.10 to 1.11 + +The external cloud provider was established and reached feature parity with in-tree, and we expect to stabilize it and have it as preferred deployment model by 1.13. We are also getting started on externalizing the vSphere volume functionalities in a CSI plugin to fully reproduce the current in-tree storage functionality. + +The Cluster API effort is currently undergoing a complete rehaul of the existing codebase, moving off Terraform and into using govmomi directly. + +### SIG-windows + +SIG Windows focused on stability and reliability of our existing feature set. We primarily fixed bugs as we march towards a near future stable release. + +## Action Required + +- etcd2 as a backend is deprecated and support will be removed in Kubernetes 1.13. +- The --storage-versions flag of kube-apiserver is now deprecated. This flag should be omitted to ensure the default storage versions are used. Otherwise the cluster is not safe to upgrade to a version newer than 1.12. This flag will be removed in 1.13. ([#68080](https://github.com/kubernetes/kubernetes/pull/68080), [@caesarxuchao](https://github.com/caesarxuchao)) Courtesy of SIG API Machinery +- Volume dynamic provisioning scheduling has been moved to beta, which means that the DynamicProvisioningScheduling alpha feature gate has been removed but the VolumeScheduling beta feature gate is still required for this feature. ([#67432](https://github.com/kubernetes/kubernetes/pull/67432), [@lichuqiang](https://github.com/lichuqiang)) Courtesy of SIG Apps, SIG Architecture, SIG Storage, and SIG Testing +- The API server and client-go libraries have been fixed to support additional non-alpha-numeric characters in UserInfo "extra" data keys. Both should be updated in order to properly support extra data containing "/" characters or other characters disallowed in HTTP headers. ([#65799](https://github.com/kubernetes/kubernetes/pull/65799), [@dekkagaijin](https://github.com/dekkagaijin)) Courtesy of SIG Auth +- The `NodeConfiguration` kind in the kubeadm v1alpha2 API has been renamed `JoinConfiguration` in v1alpha3 ([#65951](https://github.com/kubernetes/kubernetes/pull/65951), [@luxas](https://github.com/luxas)) Courtesy of SIG Cluster Lifecycle +- The `MasterConfiguration` kind in the kubeadm v1alpha2 API has been renamed `InitConfiguration` in v1alpha3 ([#65945](https://github.com/kubernetes/kubernetes/pull/65945), [@luxas](https://github.com/luxas)) Courtesy of SIG Cluster Lifecycle +- The formerly publicly-available cAdvisor web UI that the kubelet started using `--cadvisor-port` has been entirely removed in 1.12. The recommended way to run cAdvisor if you still need it, is via a DaemonSet. ([#65707](https://github.com/kubernetes/kubernetes/pull/65707), [@dims](https://github.com/dims)) +- Cluster Autoscaler version has been updated to 1.3.1-beta.1. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.3.1-beta.1 ([#65857](https://github.com/kubernetes/kubernetes/pull/65857), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) Courtesy of SIG Autoscaling +- kubeadm: The `v1alpha1` config API has been removed. ([#65628](https://github.com/kubernetes/kubernetes/pull/65628), [@luxas](https://github.com/luxas)) Courtesy of SIG Cluster Lifecycle +- kube-apiserver: When using `--enable-admission-plugins` the `Priority` admission plugin is now enabled by default (matching changes in 1.11.1+). If using `--admission-control` to fully specify the set of admission plugins, it is now necessary to add the `Priority` admission plugin for the PodPriority feature to work properly. ([#65739](https://github.com/kubernetes/kubernetes/pull/65739), [@liggitt](https://github.com/liggitt)) Courtesy of SIG Scheduling +- The `system-node-critical` and `system-cluster-critical` priority classes are now limited to the `kube-system` namespace by the `PodPriority` admission plugin (matching changes in 1.11.1+). ([#65593](https://github.com/kubernetes/kubernetes/pull/65593), [@bsalamat](https://github.com/bsalamat)) Courtesy of SIG Scheduling +- kubeadm: Control plane images (etcd, kube-apiserver, kube-proxy, etc.) no longer use arch suffixes. Arch suffixes are kept for kube-dns only. ([#66960](https://github.com/kubernetes/kubernetes/pull/66960), +[@rosti](https://github.com/rosti)) Courtesy of SIG Cluster Lifecycle, SIG Release, and SIG Testing +- kubeadm - Feature-gates HighAvailability, SelfHosting, CertsInSecrets are now deprecated and can no longer be used for new clusters. Cluster updates using above feature-gates flag is not supported. ([#67786](https://github.com/kubernetes/kubernetes/pull/67786), [@fabriziopandini](https://github.com/fabriziopandini)) Courtesy of SIG Cluster Lifecycle +- 'KubeSchedulerConfiguration' which used to be under GroupVersion 'componentconfig/v1alpha1', +is now under 'kubescheduler.config.k8s.io/v1alpha1'. ([#66916](https://github.com/kubernetes/kubernetes/pull/66916), [@dixudx](https://github.com/dixudx)) Courtesy of SIG Cluster Lifecycle, SIG Scheduling, and SIG Testing +- The flag `--skip-preflight-checks` of kubeadm has been removed. Please use `--ignore-preflight-errors` instead. ([#62727](https://github.com/kubernetes/kubernetes/pull/62727), [@xiangpengzhao](https://github.com/xiangpengzhao)) +- If Openstack LoadBalancer is not defined in cloud config, the loadbalancer will no longer beis not initialized. any more in openstack. All setups must have some setting under that section for the OpenStack provider. ([#65781](https://github.com/kubernetes/kubernetes/pull/65781), [@zetaab](https://github.com/zetaab)) + +## Deprecations and removals + +- Kubeadm: The Alpha feature-gates HighAvailability, SelfHosting, CertsInSecrets are now deprecated, and will be removed in k8s v1.13.0. +- The cloudstack and ovirt controllers have been deprecated and will be removed in a future version. ([#68199](https://github.com/kubernetes/kubernetes/pull/68199), [@dims](https://github.com/dims)) +- All kubectl run generators have been deprecated except for run-pod/v1. This is part of a move to make `kubectl run` simpler, enabling it create only pods; if additional resources are needed, you should use `kubectl create` instead. ([#68132](https://github.com/kubernetes/kubernetes/pull/68132), [@soltysh](https://github.com/soltysh)) +- The deprecated --interactive flag has been removed from kubectl logs. ([#65420](https://github.com/kubernetes/kubernetes/pull/65420), [@jsoref](https://github.com/jsoref)) +-The deprecated shorthand flag `-c` has been removed from `kubectl version (--client)`. ([#66817](https://github.com/kubernetes/kubernetes/pull/66817), [@charrywanganthony](https://github.com/charrywanganthony)) +- The `--pod` flag (`-p` shorthand) of the kubectl exec command has been marked as deprecated, and will be removed in a future version. This flag is currently optional. ([#66558](https://github.com/kubernetes/kubernetes/pull/66558), [@quasoft](https://github.com/quasoft)) +- kubectl: `--use-openapi-print-columns` has been deprecated in favor of `--server-print`, and will be removed in a future version. ([#65601](https://github.com/kubernetes/kubernetes/pull/65601), [@liggitt](https://github.com/liggitt)) +- The watch API endpoints prefixed with `/watch` are deprecated and will be removed in a future release. These standard method for watching resources (supported since v1.0) is to use the list API endpoints with a `?watch=true` parameter. All client-go clients have used the parameter method since v1.6.0. ([#65147](https://github.com/kubernetes/kubernetes/pull/65147), [@liggitt](https://github.com/liggitt)) +- Using the Horizontal Pod Autoscaler with metrics from Heapster is now deprecated and will be disabled in a future version. ([#68089](https://github.com/kubernetes/kubernetes/pull/68089), [@DirectXMan12](https://github.com/DirectXMan12)) +- The watch API endpoints prefixed with `/watch` are deprecated and will be removed in a future release. These standard method for watching resources (supported since v1.0) is to use the list API endpoints with a `?watch=true` parameter. All client-go clients have used the parameter method since v1.6.0. ([#65147](https://github.com/kubernetes/kubernetes/pull/65147), [@liggitt](https://github.com/liggitt)) + +## New Features + +- Kubernetes now registers volume topology information reported by a node-level Container Storage Interface (CSI) driver. This enables Kubernetes support of CSI topology mechanisms. ([#67684](https://github.com/kubernetes/kubernetes/pull/67684), [@verult](https://github.com/verult)) Courtesy of SIG API Machinery, SIG Node, SIG Storage, and SIG Testing +- Addon-manager has been bumped to v8.7 ([#68299](https://github.com/kubernetes/kubernetes/pull/68299), [@MrHohn](https://github.com/MrHohn)) Courtesy of SIG Cluster Lifecycle, and SIG Testing +- The CSI volume plugin no longer needs an external attacher for non-attachable CSI volumes. ([#67955](https://github.com/kubernetes/kubernetes/pull/67955), [@jsafrane](https://github.com/jsafrane)) Courtesy of SIG API Machinery, SIG Node, SIG Storage, and SIG Testing +- KubeletPluginsWatcher feature graduated to beta. ([#68200](https://github.com/kubernetes/kubernetes/pull/68200), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) Courtesy of SIG Node, SIG Storage, and SIG Testing +- A TTL mechanism has been added to clean up Jobs after they finish. ([#66840](https://github.com/kubernetes/kubernetes/pull/66840), [@janetkuo](https://github.com/janetkuo)) Courtesy of SIG API Machinery, SIG Apps, SIG Architecture, and SIG Testing +- The scheduler is now optimized to throttle computational tasks involved with node selection. ([#67555](https://github.com/kubernetes/kubernetes/pull/67555), [@wgliang](https://github.com/wgliang)) Courtesy of SIG API Machinery, and SIG Scheduling +- The performance of Pod affinity/anti-affinity in the scheduler has been improved. ([#67788](https://github.com/kubernetes/kubernetes/pull/67788), [@ahmad-diaa](https://github.com/ahmad-diaa)) Courtesy of SIG Scalability, and SIG Scheduling +- A kubelet parameter and config option has been added to change the CFS quota period from the default 100ms to some other value between 1µs and 1s. This was done to improve response latencies for workloads running in clusters with guaranteed and burstable QoS classes. ([#63437](https://github.com/kubernetes/kubernetes/pull/63437), [@szuecs](https://github.com/szuecs)) Courtesy of SIG API Machinery, SIG Apps, SIG Architecture, SIG CLI,, SIG Node, and SIG Scheduling +- Secure serving on port 10258 to cloud-controller-manager (configurable via `--secure-port`) is now enabled. Delegated authentication and authorization are to be configured using the same flags as for aggregated API servers. Without configuration, the secure port will only allow access to `/healthz`. ([#67069](https://github.com/kubernetes/kubernetes/pull/67069), [@sttts](https://github.com/sttts)) Courtesy of SIG Auth, and SIG Cloud Provider +- The commands `kubeadm alpha phases renew <cert-name>` have been added. ([#67910](https://github.com/kubernetes/kubernetes/pull/67910), [@liztio](https://github.com/liztio)) Courtesy of SIG API Machinery, and SIG Cluster Lifecycle +- ProcMount has been added to SecurityContext and AllowedProcMounts has been added to PodSecurityPolicy to allow paths in the container's /proc to not be masked. ([#64283](https://github.com/kubernetes/kubernetes/pull/64283), [@jessfraz](https://github.com/jessfraz)) Courtesy of SIG API Machinery, SIG Apps, SIG Architecture, and SIG Node +- Secure serving on port 10257 to kube-controller-manager (configurable via `--secure-port`) is now enabled. Delegated authentication and authorization are to be configured using the same flags as for aggregated API servers. Without configuration, the secure port will only allow access to `/healthz`. ([#64149](https://github.com/kubernetes/kubernetes/pull/64149), [@sttts](https://github.com/sttts)) Courtesy of SIG API Machinery, SIG Auth, SIG Cloud Provider, SIG Scheduling, and SIG Testing +- Azure cloud provider now supports unmanaged nodes (such as on-prem) that are labeled with `kubernetes.azure.com/managed=false` and `alpha.service-controller.kubernetes.io/exclude-balancer=true` ([#67984](https://github.com/kubernetes/kubernetes/pull/67984), [@feiskyer](https://github.com/feiskyer)) Courtesy of SIG Azure, and SIG Cloud Provider +- SCTP is now supported as an additional protocol (alpha) alongside TCP and UDP in Pod, Service, Endpoint, and NetworkPolicy. ([#64973](https://github.com/kubernetes/kubernetes/pull/64973), [@janosi](https://github.com/janosi)) Courtesy of SIG API Machinery, SIG Apps, SIG Architecture, SIG CLI, SIG Cloud Provider, SIG Cluster Lifecycle, SIG Network, SIG Node, and SIG Scheduling +- Autoscaling/v2beta2 and custom_metrics/v1beta2 have been introduced, which implement metric selectors for Object and Pods metrics, as well as allowing AverageValue targets on Objects, similar to External metrics. ([#64097](https://github.com/kubernetes/kubernetes/pull/64097), [@damemi](https://github.com/damemi)) Courtesy of SIG API Machinery, SIG Architecture, SIG Autoscaling, SIG CLI, and SIG Testing +- kubelet: Users can now enable the alpha NodeLease feature gate to have the Kubelet create and periodically renew a Lease in the kube-node-lease namespace. The lease duration defaults to 40s, and can be configured via the kubelet.config.k8s.io/v1beta1.KubeletConfiguration's NodeLeaseDurationSeconds field. ([#66257](https://github.com/kubernetes/kubernetes/pull/66257), [@mtaufen](https://github.com/mtaufen)) Courtesy of SIG API Machinery, SIG Apps, SIG Architecture, SIG Cluster Lifecycle, SIG Node, and SIG Testing +- PodReadinessGate is now turned on by default. ([#67406](https://github.com/kubernetes/kubernetes/pull/67406), [@freehan](https://github.com/freehan)) Courtesy of SIG Node +- Azure cloud provider now supports cross resource group nodes that are labeled with `kubernetes.azure.com/resource-group=<rg-name>` and `alpha.service-controller.kubernetes.io/exclude-balancer=true` ([#67604](https://github.com/kubernetes/kubernetes/pull/67604), [@feiskyer](https://github.com/feiskyer)) Courtesy of SIG Azure, SIG Cloud Provider, and SIG Storage +- Annotations are now supported for remote admission webhooks. ([#58679](https://github.com/kubernetes/kubernetes/pull/58679), [@CaoShuFeng](https://github.com/CaoShuFeng)) Courtesy of SIG API Machinery, and SIG Auth +- The scheduler now scores fewer than all nodes in every scheduling cycle. This can improve performance of the scheduler in large clusters. ([#66733](https://github.com/kubernetes/kubernetes/pull/66733), [@bsalamat](https://github.com/bsalamat)) Courtesy of SIG Scheduling +- Node affinity for Azure unzoned managed disks has been added. ([#67229](https://github.com/kubernetes/kubernetes/pull/67229), [@feiskyer](https://github.com/feiskyer)) Courtesy of SIG Azure +- The Attacher/Detacher interfaces for local storage have been refactored ([#66884](https://github.com/kubernetes/kubernetes/pull/66884), [@NickrenREN](https://github.com/NickrenREN)) Courtesy of SIG Storage +- DynamicProvisioningScheduling and VolumeScheduling is now supported for Azure managed disks. Feature gates DynamicProvisioningScheduling and VolumeScheduling should be enabled before using this feature. ([#67121](https://github.com/kubernetes/kubernetes/pull/67121), [@feiskyer](https://github.com/feiskyer)) Courtesy of SIG Azure, and SIG Storage +- The audit.k8s.io api group has been upgraded from v1beta1 to v1. ([#65891](https://github.com/kubernetes/kubernetes/pull/65891), [@CaoShuFeng](https://github.com/CaoShuFeng)) Courtesy of SIG API Machinery +- The quota admission configuration API graduated to v1beta1. ([#66156](https://github.com/kubernetes/kubernetes/pull/66156), [@vikaschoudhary16](https://github.com/vikaschoudhary16)) Courtesy of SIG Node, and SIG Scheduling +- Kube-apiserver --help flag help is now printed in sections. ([#64517](https://github.com/kubernetes/kubernetes/pull/64517), [@sttts](https://github.com/sttts)) +- Azure managed disks now support availability zones and new parameters `zoned`, `zone` and `zones` are added for AzureDisk storage class. ([#66553](https://github.com/kubernetes/kubernetes/pull/66553), [@feiskyer](https://github.com/feiskyer)) Courtesy of SIG Azure +- Kubectl create job command has been added. ([#60316](https://github.com/kubernetes/kubernetes/pull/60316), [@soltysh](https://github.com/soltysh)) Courtesy of SIG CLI +- Kubelet serving certificate bootstrapping and rotation has been promoted to beta status. ([#66726](https://github.com/kubernetes/kubernetes/pull/66726), [@liggitt](https://github.com/liggitt)) Courtesy of SIG Auth, and SIG Node +- Azure nodes with availability zone will now have label `failure-domain.beta.kubernetes.io/zone=<region>-<zoneID>`. ([#66242](https://github.com/kubernetes/kubernetes/pull/66242), [@feiskyer](https://github.com/feiskyer)) Courtesy of SIG Azure +- kubeadm: Default component configs are now printable via kubeadm config print-default ([#66074](https://github.com/kubernetes/kubernetes/pull/66074), [@rosti](https://github.com/rosti)) Courtesy of SIG Cluster Lifecycle +- Mount propagation has been promoted to GA. The `MountPropagation` feature gate is deprecated and will be removed in 1.13. ([#67255](https://github.com/kubernetes/kubernetes/pull/67255), [@bertinatto](https://github.com/bertinatto)) Courtesy of SIG Apps, SIG Architecture, SIG Node, and SIG Storage +- Ubuntu 18.04 (Bionic) series has been added to Juju charms ([#65644](https://github.com/kubernetes/kubernetes/pull/65644), [@tvansteenburgh](https://github.com/tvansteenburgh)) +- kubeadm: The kubeadm configuration now supports the definition of more than one control plane instances with their own APIEndpoint. The APIEndpoint for the "bootstrap" control plane instance should be defined using `InitConfiguration.APIEndpoint`, while the APIEndpoints for additional control plane instances should be added using `JoinConfiguration.APIEndpoint`. ([#67832](https://github.com/kubernetes/kubernetes/pull/67832), [@fabriziopandini](https://github.com/fabriziopandini)) +- Add new `--server-dry-run` flag to `kubectl apply` so that the request will be sent to the server with the dry-run flag (alpha), which means that changes won't be persisted. ([#68069](https://github.com/kubernetes/kubernetes/pull/68069), [@apelisse](https://github.com/apelisse)) +- Introduce CSI Cluster Registration mechanism to ease CSI plugin discovery and allow CSI drivers to customize Kubernetes' interaction with them. ([#67803](https://github.com/kubernetes/kubernetes/pull/67803), [@saad-ali](https://github.com/saad-ali)) +- The PodShareProcessNamespace feature to configure PID namespace sharing within a pod has been promoted to beta. ([#66507](https://github.com/kubernetes/kubernetes/pull/66507), [@verb](https://github.com/verb)) + +## API Changes + +- kubeadm now supports the phase command "alpha phase kubelet config annotate-cri". ([#68449](https://github.com/kubernetes/kubernetes/pull/68449), [@fabriziopandini](https://github.com/fabriziopandini)) +- kubeadm: --cri-socket now defaults to tcp://localhost:2375 when running on Windows. ([#67447](https://github.com/kubernetes/kubernetes/pull/67447), [@benmoss](https://github.com/benmoss)) +- kubeadm now includes a new EXPERIMENTAL `--rootfs`, which (if specified) causes kubeadm to chroot before performing any file operations. This is expected to be useful when setting up kubernetes on a different filesystem, such as invoking kubeadm from docker. ([#54935](https://github.com/kubernetes/kubernetes/pull/54935), [@anguslees](https://github.com/anguslees)) +- The command line option --cri-socket-path of the kubeadm subcommand "kubeadm config images pull" has been renamed to --cri-socket to be consistent with the rest of kubeadm subcommands. +- kubeadm: The ControlPlaneEndpoint was moved from the API config struct to ClusterConfiguration ([#67830](https://github.com/kubernetes/kubernetes/pull/67830), [@fabriziopandini](https://github.com/fabriziopandini)) +- kubeadm: InitConfiguration now consists of two structs: InitConfiguration and ClusterConfiguration ([#67441](https://github.com/kubernetes/kubernetes/pull/67441), [@rosti](https://github.com/rosti)) +- The RuntimeClass API has been added. This feature is in alpha, and the RuntimeClass feature gate must be enabled in order to use it. The RuntimeClass API resource defines different classes of runtimes that may be used to run containers in the cluster. Pods can select a RuntimeClass to use via the RuntimeClassName field. ([#67737](https://github.com/kubernetes/kubernetes/pull/67737), [@tallclair](https://github.com/tallclair)) +- To address the possibility of dry-run requests overwhelming admission webhooks that rely on side effects and a reconciliation mechanism, a new field is being added to `admissionregistration.k8s.io/v1beta1.ValidatingWebhookConfiguration` and `admissionregistration.k8s.io/v1beta1.MutatingWebhookConfiguration` so that webhooks can explicitly register as having dry-run support. If a dry-run request is made on a resource that triggers a non dry-run supporting webhook, the request will be completely rejected, with "400: Bad Request". Additionally, a new field is being added to the `admission.k8s.io/v1beta1.AdmissionReview` API object, exposing to webhooks whether or not the request being reviewed is a dry-run. ([#66936](https://github.com/kubernetes/kubernetes/pull/66936), [@jennybuckley](https://github.com/jennybuckley)) +- CRI now supports a "runtime_handler" field for RunPodSandboxRequest, used for selecting the runtime configuration to run the sandbox with (alpha feature). ([#67518](https://github.com/kubernetes/kubernetes/pull/67518), [@tallclair](https://github.com/tallclair)) +- More fields are allowed at the root of the CRD validation schema when the status subresource is enabled. ([#65357](https://github.com/kubernetes/kubernetes/pull/65357), [@nikhita](https://github.com/nikhita)) +- The --docker-disable-shared-pid kubelet flag has been removed. PID namespace sharing can instead be enable per-pod using the ShareProcessNamespace option. ([#66506](https://github.com/kubernetes/kubernetes/pull/66506), [@verb](https://github.com/verb)) +- Added the --dns-loop-detect option to dnsmasq, which is run by kube-dns. ([#67302](https://github.com/kubernetes/kubernetes/pull/67302), [@dixudx](https://github.com/dixudx)) +- Kubernetes now supports extra `--prune-whitelist` resources in kube-addon-manager. ([#67743](https://github.com/kubernetes/kubernetes/pull/67743), [@Random-Liu](https://github.com/Random-Liu)) +- Graduate Resource Quota ScopeSelectors to beta, and enable it by default. ([#67077](https://github.com/kubernetes/kubernetes/pull/67077), [@vikaschoudhary16](https://github.com/vikaschoudhary16)) +- The OpenAPI spec and documentation now reflect the 202 Accepted response path for delete requests. Note that this change in the openapi spec may affect some clients that depend on the error paths. ([#63418](https://github.com/kubernetes/kubernetes/pull/63418), [@roycaihw](https://github.com/roycaihw)) +- The alpha `Initializers` admission plugin is no longer enabled by default. This matches the off-by-default behavior of the alpha API which drives initializer behavior. ([#66039](https://github.com/kubernetes/kubernetes/pull/66039), [@liggitt](https://github.com/liggitt)) +- Adding validation to kube-scheduler at the API level ([#66799](https://github.com/kubernetes/kubernetes/pull/66799), [@noqcks](https://github.com/noqcks)) +- `DisruptedPods` field in `PodDisruptionBudget` is optional instead of required. ([#63757](https://github.com/kubernetes/kubernetes/pull/63757), [@nak3](https://github.com/nak3)) + +## Other Notable Changes + +### SIG API Machinery + +- `kubectl get apiservice` now shows the target service and whether the service is available ([#67747](https://github.com/kubernetes/kubernetes/pull/67747), [@smarterclayton](https://github.com/smarterclayton)) +- Apiserver panics will now be returned as 500 errors rather than terminating the apiserver process. ([#68001](https://github.com/kubernetes/kubernetes/pull/68001), [@sttts](https://github.com/sttts)) +- API paging is now enabled for custom resource definitions, custom resources and APIService objects. ([#67861](https://github.com/kubernetes/kubernetes/pull/67861), [@liggitt](https://github.com/liggitt)) +- To address the possibility dry-run requests overwhelming admission webhooks that rely on side effects and a reconciliation mechanism, a new field is being added to admissionregistration.k8s.io/v1beta1.ValidatingWebhookConfiguration and admissionregistration.k8s.io/v1beta1.MutatingWebhookConfiguration so that webhooks can explicitly register as having dry-run support. If a dry-run request is made on a resource that triggers a non dry-run supporting webhook, the request will be completely rejected, with "400: Bad Request". Additionally, a new field is being added to the admission.k8s.io/v1beta1.AdmissionReview API object, exposing to webhooks whether or not the request being reviewed is a dry-run. ([#66936](https://github.com/kubernetes/kubernetes/pull/66936), [@jennybuckley](https://github.com/jennybuckley)) +- kube-apiserver now includes all registered API groups in discovery, including registered extension API group/versions for unavailable extension API servers. ([#66932](https://github.com/kubernetes/kubernetes/pull/66932), [@nilebox](https://github.com/nilebox)) +- kube-apiserver: setting a `dryRun` query parameter on a CONNECT request will now cause the request to be rejected, consistent with behavior of other mutating API requests. Examples of CONNECT APIs are the `nodes/proxy`, `services/proxy`, `pods/proxy`, `pods/exec`, and `pods/attach` subresources. Note that this prevents sending a `dryRun` parameter to backends via `{nodes,services,pods}/proxy` subresources. ([#66083](https://github.com/kubernetes/kubernetes/pull/66083), [@jennybuckley](https://github.com/jennybuckley)) +- In clusters where the DryRun feature is enabled, dry-run requests will go through the normal admission chain. Because of this, ImagePolicyWebhook authors should especially make sure that their webhooks do not rely on side effects. ([#66391](https://github.com/kubernetes/kubernetes/pull/66391), [@jennybuckley](https://github.com/jennybuckley)) +- Added etcd_object_count metrics for CustomResources. ([#65983](https://github.com/kubernetes/kubernetes/pull/65983), [@sttts](https://github.com/sttts)) +- The OpenAPI version field will now be properly autopopulated without needing other OpenAPI fields present in generic API server code. ([#66411](https://github.com/kubernetes/kubernetes/pull/66411), [@DirectXMan12](https://github.com/DirectXMan12)) +- TLS timeouts have been extended to work around slow arm64 math/big functions. ([#66264](https://github.com/kubernetes/kubernetes/pull/66264), [@joejulian](https://github.com/joejulian)) +- Kubernetes now checks CREATE admission for create-on-update requests instead of UPDATE admission. ([#65572](https://github.com/kubernetes/kubernetes/pull/65572), [@yue9944882](https://github.com/yue9944882)) +- kube- and cloud-controller-manager can now listen on ports up to 65535 rather than 32768, solving problems with operating systems that request these higher ports.. ([#65860](https://github.com/kubernetes/kubernetes/pull/65860), [@sttts](https://github.com/sttts)) +- LimitRange and Endpoints resources can be created via an update API call if the object does not already exist. When this occurs, an authorization check is now made to ensure the user making the API call is authorized to create the object. In previous releases, only an update authorization check was performed. ([#65150](https://github.com/kubernetes/kubernetes/pull/65150), [@jennybuckley](https://github.com/jennybuckley)) +- More fields are allowed at the root of the CRD validation schema when the status subresource is enabled. ([#65357](https://github.com/kubernetes/kubernetes/pull/65357), [@nikhita](https://github.com/nikhita)) +- api-machinery utility functions `SetTransportDefaults` and `DialerFor` once again respect custom Dial functions set on transports ([#65547](https://github.com/kubernetes/kubernetes/pull/65547), [@liggitt](https://github.com/liggitt)) +- AdvancedAuditing has been promoted to GA, replacing the previous (legacy) audit logging mechanisms. ([#65862](https://github.com/kubernetes/kubernetes/pull/65862), [@loburm](https://github.com/loburm)) +- Added --authorization-always-allow-paths to components doing delegated authorization to exclude certain HTTP paths like /healthz from authorization. ([#67543](https://github.com/kubernetes/kubernetes/pull/67543), [@sttts](https://github.com/sttts)) +- Allow ImageReview backend to return annotations to be added to the created pod. ([#64597](https://github.com/kubernetes/kubernetes/pull/64597), [@wteiken](https://github.com/wteiken)) +- Upon receiving a LIST request with an expired continue token, the apiserver now returns a continue token together with the 410 "the from parameter is too old" error. If the client does not care about getting a list from a consistent snapshot, the client can use this token to continue listing from the next key, but the returned chunk will be from the latest snapshot. ([#67284](https://github.com/kubernetes/kubernetes/pull/67284), [@caesarxuchao](https://github.com/caesarxuchao)) + +### SIG Apps + +- The service controller will now retry creating the load balancer when `persistUpdate` fails due to conflict. ([#68087](https://github.com/kubernetes/kubernetes/pull/68087), [@grayluck](https://github.com/grayluck)) +- The latent controller caches no longer cause repeating deletion messages for deleted pods. ([#67826](https://github.com/kubernetes/kubernetes/pull/67826), [@deads2k](https://github.com/deads2k)) + +### SIG Auth + +- TokenRequest and TokenRequestProjection are now beta features. To enable these feature, the API server needs to be started with the `--service-account-issuer`, `--service-account-signing-key-file`, and `--service-account-api-audiences` flags. +([#67349](https://github.com/kubernetes/kubernetes/pull/67349), [@mikedanese](https://github.com/mikedanese)) +- The admin RBAC role now aggregates edit and view. The edit RBAC role now aggregates view. ([#66684](https://github.com/kubernetes/kubernetes/pull/66684), [@deads2k](https://github.com/deads2k)) +- UserInfo derived from service account tokens created from the TokenRequest API now include the pod name and UID in the Extra field. ([#61858](https://github.com/kubernetes/kubernetes/pull/61858), [@mikedanese](https://github.com/mikedanese)) +- The extension API server can now dynamically discover the requestheader CA certificate when the core API server doesn't use certificate based authentication for it's clients. ([#66394](https://github.com/kubernetes/kubernetes/pull/66394), [@rtripat](https://github.com/rtripat)) + +### SIG Autoscaling + +- Horizontal Pod Autoscaler default update interval has been increased from 30s to 15s, improving HPA reaction time for metric changes. ([#68021](https://github.com/kubernetes/kubernetes/pull/68021), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) +- To avoid soft-deleted pods incorrectly affecting scale up replica count calculations, the HPA controller will stop counting soft-deleted pods for scaling purposes. ([#67067](https://github.com/kubernetes/kubernetes/pull/67067), [@moonek](https://github.com/moonek)) +- HPA reaction to metric changes has been spend up by removing the scale up forbidden window. ([#66615](https://github.com/kubernetes/kubernetes/pull/66615), [@jbartosik](https://github.com/jbartosik)) + +### SIG AWS + +- AWS LoadBalancer security group ICMP rules now match the documentation of spec.loadBalancerSourceRanges ([#63572](https://github.com/kubernetes/kubernetes/pull/63572), [@haz-mat](https://github.com/haz-mat)) +- The aws cloud provider now reports a `Hostname` address type for nodes based on the `local-hostname` metadata key. ([#67715](https://github.com/kubernetes/kubernetes/pull/67715), [@liggitt](https://github.com/liggitt)) + +### SIG Azure + +- \API calls for Azure instance metadata have been reduced to help avoid "too many requests" errors.. ([#67478](https://github.com/kubernetes/kubernetes/pull/67478), [@feiskyer](https://github.com/feiskyer)) +- Azure Go SDK has been upgraded to v19.0.0 and VirtualMachineScaleSetVM now supports availability zones. ([#66648](https://github.com/kubernetes/kubernetes/pull/66648), [@feiskyer](https://github.com/feiskyer)) +- User Assigned MSI (https://docs.microsoft.com/en-us/azure/active-directory/managed-service-identity/overview), which provides for managed identities, is now suppored for Kubernetes clusters on Azure. ([#66180](https://github.com/kubernetes/kubernetes/pull/66180), [@kkmsft](https://github.com/kkmsft)) +- The Azure load balancer idle connection timeout for services is now configurable.([#66045](https://github.com/kubernetes/kubernetes/pull/6605), [@cpuguy83](https://github.com/cpuguy83)) +- When provisioning workloads, Kubernetes will now skip nodes that have a primary NIC in a 'Failed' provisioningState. ([#65412](https://github.com/kubernetes/kubernetes/pull/65412), [@yastij](https://github.com/yastij)) +- The NodeShutdown taint is now supported for Azure. ([#68033](https://github.com/kubernetes/kubernetes/pull/68033), [@yastij](https://github.com/yastij)) + +### SIG CLI + +- Added a sample-cli-plugin staging repository and cli-runtime staging repository to help showcase the new kubectl plugins mechanism. ([#67938](https://github.com/kubernetes/kubernetes/pull/67938), [#67658](https://github.com/kubernetes/kubernetes/pull/67658), [@soltysh](https://github.com/soltysh)) +- The plugin mechanism functionality now closely follows the git plugin design ([#66876](https://github.com/kubernetes/kubernetes/pull/66876), [@juanvallejo](https://github.com/juanvallejo)) +- kubectl patch now respects --local ([#67399](https://github.com/kubernetes/kubernetes/pull/67399), [@deads2k](https://github.com/deads2k)) +- kubectl: When an object can't be updated and must be deleted by force, kubectl will now recreating resources for immutable fields.([#66602](https://github.com/kubernetes/kubernetes/pull/66602), [@dixudx](https://github.com/dixudx)) +- `kubectl create {clusterrole,role}`'s `--resources` flag now supports asterisk to specify all resources. ([#62945](https://github.com/kubernetes/kubernetes/pull/62945), [@nak3](https://github.com/nak3)) +- kubectl: the wait command now prints an error message and exits with the code 1, if there is no resources matching selectors ([#66692](https://github.com/kubernetes/kubernetes/pull/66692), [@m1kola](https://github.com/m1kola)) +- Kubectl now handles newlines for `command`, `args`, `env`, and `annotations` in `kubectl describe` wrapping. ([#66841](https://github.com/kubernetes/kubernetes/pull/66841), [@smarterclayton](https://github.com/smarterclayton)) +- The `kubectl patch` command no longer exits with exit code 1 when a redundant patch results in a no-op ([#66725](https://github.com/kubernetes/kubernetes/pull/66725), [@juanvallejo](https://github.com/juanvallejo)) +- The output of `kubectl get events` has been improved to prioritize showing the message, and to move some fields to `-o wide`. ([#66643](https://github.com/kubernetes/kubernetes/pull/66643), [@smarterclayton](https://github.com/smarterclayton)) +- `kubectl config set-context` can now set attributes of the current context, such as the current namespace, by passing `--current` instead of a specific context name ([#66140](https://github.com/kubernetes/kubernetes/pull/66140), [@liggitt](https://github.com/liggitt)) +- "kubectl delete" no longer waits for dependent objects to be deleted when removing parent resources ([#65908](https://github.com/kubernetes/kubernetes/pull/65908), [@juanvallejo](https://github.com/juanvallejo)) +- A new flag, `--keepalive`, has been introduced, for kubectl proxy to allow setting keep-alive period for long-running request. ([#63793](https://github.com/kubernetes/kubernetes/pull/63793), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) +- kubectl: fixed a regression with --use-openapi-print-columns that would not print object contents ([#65600](https://github.com/kubernetes/kubernetes/pull/65600), [@liggitt](https://github.com/liggitt)) +- The display of jobs in `kubectl get` and `kubectl describe` has been improved to emphasize progress and duration. ([#65463](https://github.com/kubernetes/kubernetes/pull/65463), [@smarterclayton](https://github.com/smarterclayton)) +- CSI volume attributes have been added to kubectl describe pv`. ([#65074](https://github.com/kubernetes/kubernetes/pull/65074), [@wgliang](https://github.com/wgliang)) +- Running `kubectl describe pvc` now shows which pods are mounted to the pvc being described with the `Mounted By` field ([#65837](https://github.com/kubernetes/kubernetes/pull/65837), [@clandry94](https://github.com/clandry94)) +- `kubectl create secret tls` can now read certificate and key files from process substitution arguments ([#67713](https://github.com/kubernetes/kubernetes/pull/67713), [@liggitt](https://github.com/liggitt)) +- `kubectl rollout status` now works for unlimited timeouts. ([#67817](https://github.com/kubernetes/kubernetes/pull/67817), [@tnozicka](https://github.com/tnozicka)) + +### SIG Cloud Provider + +- The cloudstack cloud provider now reports a `Hostname` address type for nodes based on the `local-hostname` metadata key. ([#67719](https://github.com/kubernetes/kubernetes/pull/67719), [@liggitt](https://github.com/liggitt)) +- The OpenStack cloud provider now reports a `Hostname` address type for nodes ([#67748](https://github.com/kubernetes/kubernetes/pull/67748), [@FengyunPan2](https://github.com/FengyunPan2)) +- The vSphere cloud provider now suppoerts zones. ([#66795](https://github.com/kubernetes/kubernetes/pull/66795), [@jiatongw](https://github.com/jiatongw)) + +### SIG Cluster Lifecycle + +- External CAs can now be used for kubeadm with only a certificate, as long as all required certificates already exist. ([#68296](https://github.com/kubernetes/kubernetes/pull/68296), [@liztio](https://github.com/liztio)) +- kubeadm now works better when not connected to the Internet. In addition, common kubeadm commands will now work without an available networking interface. ([#67397](https://github.com/kubernetes/kubernetes/pull/67397), [@neolit123](https://github.com/neolit123)) +- Scrape frequency of metrics-server has been increased to 30s.([#68127](https://github.com/kubernetes/kubernetes/pull/68127), [@serathius](https://github.com/serathius)) +- Kubernetes juju charms will now use CSI for ceph. ([#66523](https://github.com/kubernetes/kubernetes/pull/66523), [@hyperbolic2346](https://github.com/hyperbolic2346)) +- kubeadm uses audit policy v1 instead of v1beta1 ([#67176](https://github.com/kubernetes/kubernetes/pull/67176), [@charrywanganthony](https://github.com/charrywanganthony)) +- Kubeadm nodes will no longer be able to run with an empty or invalid hostname in /proc/sys/kernel/hostname ([#64815](https://github.com/kubernetes/kubernetes/pull/64815), [@dixudx](https://github.com/dixudx)) +- kubeadm now can join the cluster with pre-existing client certificate if provided ([#66482](https://github.com/kubernetes/kubernetes/pull/66482), [@dixudx](https://github.com/dixudx)) +([#66382](https://github.com/kubernetes/kubernetes/pull/66382), [@bart0sh](https://github.com/bart0sh)) +- kubeadm will no longer hang indefinitely if there is no Internet connection and --kubernetes-version is not specified.([#65676](https://github.com/kubernetes/kubernetes/pull/65676), [@dkoshkin](https://github.com/dkoshkin)) +- kubeadm: kube-proxy will now run on all nodes, and not just master nodes.([#65931](https://github.com/kubernetes/kubernetes/pull/65931), [@neolit123](https://github.com/neolit123)) +- kubeadm now uses separate YAML documents for the kubelet and kube-proxy ComponentConfigs. ([#65787](https://github.com/kubernetes/kubernetes/pull/65787), [@luxas](https://github.com/luxas)) +- kubeadm will now print required flags when running `kubeadm upgrade plan`.([#65802](https://github.com/kubernetes/kubernetes/pull/65802), [@xlgao-zju](https://github.com/xlgao-zju)) +- Unix support for ZFS as a valid graph driver has been added for Docker, enabling users to use Kubeadm with ZFS. ([#65635](https://github.com/kubernetes/kubernetes/pull/65635), [@neolit123](https://github.com/neolit123)) + +### SIG GCP + +- GCE: decrease cpu requests on master node, to allow more components to fit on one core machine. ([#67504](https://github.com/kubernetes/kubernetes/pull/67504), [@loburm](https://github.com/loburm)) +- Kubernetes 1.12 includes a large number of metadata agent improvements, including expanding the metadata agent's access to all API groups and removing metadata agent config maps in favor of command line flags. It also includes improvements to the logging agent, such as multiple fixes and adjustments. + ([#66485](https://github.com/kubernetes/kubernetes/pull/66485), [@bmoyles0117](https://github.com/bmoyles0117)) +- cluster/gce: Kubernetes now generates consistent key sizes in config-default.sh using /dev/urandom instead of /dev/random ([#67139](https://github.com/kubernetes/kubernetes/pull/67139), [@yogi-sagar](https://github.com/yogi-sagar)) + +### SIG Instrumentation + + The etcdv3 client can now be monitored by Prometheus. ([#64741](https://github.com/kubernetes/kubernetes/pull/64741), [@wgliang](https://github.com/wgliang)) + +### SIG Network + +- The ip-masq-agent will now be scheduled in all nodes except master due to NoSchedule/NoExecute tolerations. ([#66260](https://github.com/kubernetes/kubernetes/pull/66260), [@tanshanshan](https://github.com/tanshanshan)) +- The CoreDNS service can now be monitored by Prometheus. ([#65589](https://github.com/kubernetes/kubernetes/pull/65589), [@rajansandeep](https://github.com/rajansandeep)) +- Traffic shaping is now supported for the CNI network driver. ([#63194](https://github.com/kubernetes/kubernetes/pull/63194), [@m1093782566](https://github.com/m1093782566)) +- The dockershim now sets the "bandwidth" and "ipRanges" CNI capabilities (dynamic parameters). Plugin authors and administrators can now take advantage of this by updating their CNI configuration file. For more information, see the [CNI docs](https://github.com/containernetworking/cni/blob/master/CONVENTIONS.md#dynamic-plugin-specific-fields-capabilities--runtime-configuration) ([#64445](https://github.com/kubernetes/kubernetes/pull/64445), [@squeed](https://github.com/squeed)) + +### SIG Node + +- RuntimeClass is a new API resource for defining different classes of runtimes that may be used to run containers in the cluster. Pods can select a RunitmeClass to use via the RuntimeClassName field. This feature is in alpha, and the RuntimeClass feature gate must be enabled in order to use it. ([#67737](https://github.com/kubernetes/kubernetes/pull/67737), [@tallclair](https://github.com/tallclair)) +- Sped up kubelet start time by executing an immediate runtime and node status update when the Kubelet sees that it has a CIDR. ([#67031](https://github.com/kubernetes/kubernetes/pull/67031), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) +- cpumanager will now rollback state if updateContainerCPUSet failed, indicating that the container start failed. This change will prevent CPU leaks. ([#67430](https://github.com/kubernetes/kubernetes/pull/67430), [@choury](https://github.com/choury)) +- [CRI] RunPodSandboxRequest now has a runtime_handler field for selecting the runtime configuration to run the sandbox with. This feature is in alpha for 1.12.. ([#67518](https://github.com/kubernetes/kubernetes/pull/67518), [@tallclair](https://github.com/tallclair)) +- If a container's requested device plugin resource hasn't registered after Kubelet restart, the container start will now fail.([#67145](https://github.com/kubernetes/kubernetes/pull/67145), [@jiayingz](https://github.com/jiayingz)) +- Upgraded TaintNodesByCondition to beta. ([#62111](https://github.com/kubernetes/kubernetes/pull/62111), [@k82cn](https://github.com/k82cn)) +- The PodShareProcessNamespace feature to configure PID namespace sharing within a pod has been promoted to beta. ([#66507](https://github.com/kubernetes/kubernetes/pull/66507), [@verb](https://github.com/verb)) +- The CPU Manager will now validate the state of the node, enabling Kubernetes to maintain the CPU topology even if resources change. ([#66718](https://github.com/kubernetes/kubernetes/pull/66718), [@ipuustin](https://github.com/ipuustin)) +- Added support kubelet plugin watcher in device manager, as part of the new plugin system. ([#58755](https://github.com/kubernetes/kubernetes/pull/58755), [@vikaschoudhary16](https://github.com/vikaschoudhary16)) +- Expose docker registry config for addons used in Juju deployments ([#66092](https://github.com/kubernetes/kubernetes/pull/66092), [@kwmonroe](https://github.com/kwmonroe)) +- `RunAsGroup` which has been broken since 1.10, now works. ([#65926](https://github.com/kubernetes/kubernetes/pull/65926), [@Random-Liu](https://github.com/Random-Liu)) +- The systemd config files are now reloaded before kubelet starts, so changes can take effect([#65702](https://github.com/kubernetes/kubernetes/pull/65702), [@mborsz](https://github.com/mborsz)) +- Hostnames are now converted to lowercase before being used for node lookups in the kubernetes-worker charm. ([#65487](https://github.com/kubernetes/kubernetes/pull/65487), [@dshcherb](https://github.com/dshcherb)) +- kubelets that specify `--cloud-provider` now only report addresses in Node status as determined by the cloud provider (unless `--hostname-override` is used to force reporting of the specified hostname) ([#65594](https://github.com/kubernetes/kubernetes/pull/65594), [@liggitt](https://github.com/liggitt)) +- Kubelet now exposes `/debug/flags/v` to allow dynamically setting glog logging level. For example, to change glog level to 3, you only have to send a PUT request like `curl -X PUT http://127.0.0.1:8080/debug/flags/v -d "3"`. ([#64601](https://github.com/kubernetes/kubernetes/pull/64601), [@hzxuzhonghu](https://github.com/hzxuzhonghu)) + +### SIG OpenStack + +- Openstack now supports the node shutdown taint. The taint is added when an instance is shutdown in openstack. ([#67982](https://github.com/kubernetes/kubernetes/pull/67982), [@zetaab](https://github.com/zetaab)) + +### SIG Scheduling + +- The equivalence class cache has been redesigned to be a two level cache, resulting in a significant increase in scheduling throughput and performance. ([#65714](https://github.com/kubernetes/kubernetes/pull/65714), [@resouer](https://github.com/resouer)) +- kube-scheduler can now listen on ports up to 65535, correcting a problem with certain operating systems that request ports greater than 32768. ([#65833](https://github.com/kubernetes/kubernetes/pull/65833), [@sttts](https://github.com/sttts)) +- Performance of the anti-affinity predicate of the default scheduler has been improved. ([#66948](https://github.com/kubernetes/kubernetes/pull/66948), [@mohamed-mehany](https://github.com/mohamed-mehany)) +- The unreachable taint gets applied to a node when it loses its network connection. ([#67734](https://github.com/kubernetes/kubernetes/pull/67734), [@Huang-Wei](https://github.com/Huang-Wei)) +- If `TaintNodesByCondition` is enabled, add `node.kubernetes.io/unschedulable` and `node.kubernetes.io/network-unavailable` automatically to DaemonSet pods. ([#64954](https://github.com/kubernetes/kubernetes/pull/64954), [@k82cn](https://github.com/k82cn)) + +### SIG Storage + +- The AllowedTopologies field inside StorageClass is now validated against set and map semantics. Specifically, there cannot be duplicate TopologySelectorTerms, MatchLabelExpressions keys, or TopologySelectorLabelRequirement Values. ([#66843](https://github.com/kubernetes/kubernetes/pull/66843), [@verult](https://github.com/verult)) +- A PersistentVolumeClaim may not have been synced to the controller local cache in time if the PersistentVolumeis bound by an external PV binder (such as kube-scheduler), so Kubernetes will now double check if PVC is not found in order to prevent the volume from being incorrectly reclaimed. ([#67062](https://github.com/kubernetes/kubernetes/pull/67062), [@cofyc](https://github.com/cofyc)) +- Filesystems will now be properly unmounted when a backend is not reachable and returns EIO. ([#67097](https://github.com/kubernetes/kubernetes/pull/67097), [@chakri-nelluri](https://github.com/chakri-nelluri)) +- The logic for attaching volumes has been changed so that attachdetach controller attaches volumes immediately when a Pod's PVCs are bound, preventing a problem that caused pods to have extremely long startup times. ([#66863](https://github.com/kubernetes/kubernetes/pull/66863), [@cofyc](https://github.com/cofyc)) +- Dynamic provisions that create iSCSI PVs can now ensure that multipath is used by specifying 2 or more target portals in the PV, which will cause kubelet to wait up to 10 seconds for the multipath device. PVs with just one portal continue to work as before, with kubelet not waiting for the multipath device and just using the first disk it finds. ([#67140](https://github.com/kubernetes/kubernetes/pull/67140), [@bswartz](https://github.com/bswartz)) +- ScaleIO volumes can now be provisioned without having to first manually create /dev/disk/by-id path on each kubernetes node (if not already present). ([#66174](https://github.com/kubernetes/kubernetes/pull/66174), [@ddebroy](https://github.com/ddebroy)) +- Multi-line annotations injected via downward API files will no longer be sorted, scrambling their information. ([#65992](https://github.com/kubernetes/kubernetes/pull/65992), [@liggitt](https://github.com/liggitt)) +- The constructed volume spec for the CSI plugin now includes a volume mode field. ([#65456](https://github.com/kubernetes/kubernetes/pull/65456), [@wenlxie](https://github.com/wenlxie)) +- Kubernetes now includes a metric that reports the number of PVCs that are in-use,with plugin and node name as dimensions, making it possible to figure out how many PVCs each node is using when troubleshooting attach/detach issues. + ([#64527](https://github.com/kubernetes/kubernetes/pull/64527), [@gnufied](https://github.com/gnufied)) +- Added support to restore a volume from a volume snapshot data source. ([#67087](https://github.com/kubernetes/kubernetes/pull/67087), [@xing-yang](https://github.com/xing-yang)) +- When attaching iSCSI volumes, kubelet now scans only the specific LUNs being attached, and also deletes them after detaching. This avoids dangling references to LUNs that no longer exist, which used to be the cause of random I/O errors/timeouts in kernel logs, slowdowns during block-device related operations, and very rare cases of data corruption. +([#63176](https://github.com/kubernetes/kubernetes/pull/63176), [@bswartz](https://github.com/bswartz)) +- Both directory and block devices are now supported for local volume plugin FileSystem VolumeMode. ([#63011](https://github.com/kubernetes/kubernetes/pull/63011), [@NickrenREN](https://github.com/NickrenREN)) +- CSI NodePublish call can optionally contain information about the pod that requested the CSI volume. ([#67945](https://github.com/kubernetes/kubernetes/pull/67945), [@jsafrane](https://github.com/jsafrane)) +- Added support for volume attach limits for CSI volumes. ([#67731](https://github.com/kubernetes/kubernetes/pull/67731), [@gnufied](https://github.com/gnufied)) + +### SIG VMWare + +- The vmUUID is now preserved when renewing nodeinfo in the vSphere cloud provider. ([#66007](https://github.com/kubernetes/kubernetes/pull/66007), [@w-leads](https://github.com/w-leads)) +- You can now configure the vsphere cloud provider with a trusted Root-CA, enabling you to take advantage of TLS certificate rotation. ([#64758](https://github.com/kubernetes/kubernetes/pull/64758), [@mariantalla](https://github.com/mariantalla)) + +### SIG Windows + +- Kubelet no longer attempts to sync iptables on non-Linux systems.. ([#67690](https://github.com/kubernetes/kubernetes/pull/67690), [@feiskyer](https://github.com/feiskyer)) +- Kubelet no longer applies default hard evictions of nodefs.inodesFree on non-Linux systems. ([#67709](https://github.com/kubernetes/kubernetes/pull/67709), [@feiskyer](https://github.com/feiskyer)) +- Windows system container "pods" now support kubelet stats. ([#66427](https://github.com/kubernetes/kubernetes/pull/66427), [@feiskyer](https://github.com/feiskyer)) + +## Other Notable Changes + +### Bug Fixes + +- Update debian-iptables and hyperkube-base images to include CVE fixes. ([#67365](https://github.com/kubernetes/kubernetes/pull/67365), [@ixdy](https://github.com/ixdy)) +- Fix for resourcepool-path configuration in the vsphere.conf file. ([#66261](https://github.com/kubernetes/kubernetes/pull/66261), [@divyenpatel](https://github.com/divyenpatel)) +- This fix prevents a GCE PD volume from being mounted if the udev device link is stale and tries to correct the link. ([#66832](https://github.com/kubernetes/kubernetes/pull/66832), [@msau42](https://github.com/msau42)) +- Fix controller-manager crashes when flex plugin is removed from flex plugin directory ([#65536](https://github.com/kubernetes/kubernetes/pull/65536), [@gnufied](https://github.com/gnufied)) +- Fix local volume directory can't be deleted because of volumeMode error ([#65310](https://github.com/kubernetes/kubernetes/pull/65310), [@wenlxie](https://github.com/wenlxie)) +- bugfix: Do not print feature gates in the generic apiserver code for glog level 0 ([#65584](https://github.com/kubernetes/kubernetes/pull/65584), [@neolit123](https://github.com/neolit123)) +- Fix an issue that pods using hostNetwork keep increasing. ([#67456](https://github.com/kubernetes/kubernetes/pull/67456), [@Huang-Wei](https://github.com/Huang-Wei)) +- fixes an out of range panic in the NoExecuteTaintManager controller when running a non-64-bit build ([#65596](https://github.com/kubernetes/kubernetes/pull/65596), [@liggitt](https://github.com/liggitt)) +- Fix kubelet to not leak goroutines/intofiy watchers on an inactive connection if it's closed ([#67285](https://github.com/kubernetes/kubernetes/pull/67285), [@yujuhong](https://github.com/yujuhong)) +- Fix pod launch by kubelet when --cgroups-per-qos=false and --cgroup-driver="systemd" ([#66617](https://github.com/kubernetes/kubernetes/pull/66617), [@pravisankar](https://github.com/pravisankar)) +- Fixed a panic in the node status update logic when existing node has nil labels. ([#66307](https://github.com/kubernetes/kubernetes/pull/66307), [@guoshimin](https://github.com/guoshimin)) +- Fix the bug where image garbage collection is disabled by mistake. ([#66051](https://github.com/kubernetes/kubernetes/pull/66051), [@jiaxuanzhou](https://github.com/jiaxuanzhou)) +- Fix a bug that preempting a pod may block forever. ([#65987](https://github.com/kubernetes/kubernetes/pull/65987), [@Random-Liu](https://github.com/Random-Liu)) +- fixes the errors/warnings in fluentd configuration ([#67947](https://github.com/kubernetes/kubernetes/pull/67947), [@saravanan30erd](https://github.com/saravanan30erd)) +- Fixed an issue which prevented `gcloud` from working on GCE when metadata concealment was enabled. ([#66630](https://github.com/kubernetes/kubernetes/pull/66630), [@dekkagaijin](https://github.com/dekkagaijin)) +- Fix Stackdriver integration based on node annotation container.googleapis.com/instance_id. ([#66676](https://github.com/kubernetes/kubernetes/pull/66676), [@kawych](https://github.com/kawych)) +- GCE: Fixes loadbalancer creation and deletion issues appearing in 1.10.5. ([#66400](https://github.com/kubernetes/kubernetes/pull/66400), [@nicksardo](https://github.com/nicksardo)) +- Fixed exception detection in fluentd-gcp plugin. ([#65361](https://github.com/kubernetes/kubernetes/pull/65361), [@xperimental](https://github.com/xperimental)) +- kubeadm: Fix panic when node annotation is nil ([#67648](https://github.com/kubernetes/kubernetes/pull/67648), [@xlgao-zju](https://github.com/xlgao-zju)) +- kubeadm: stop setting UID in the kubelet ConfigMap ([#66341](https://github.com/kubernetes/kubernetes/pull/66341), [@runiq](https://github.com/runiq)) +- bazel deb package bugfix: The kubeadm deb package now reloads the kubelet after installation ([#65554](https://github.com/kubernetes/kubernetes/pull/65554), [@rdodev](https://github.com/rdodev)) +- fix cluster-info dump error ([#66652](https://github.com/kubernetes/kubernetes/pull/66652), [@charrywanganthony](https://github.com/charrywanganthony)) +- Fix kubelet startup failure when using ExecPlugin in kubeconfig ([#66395](https://github.com/kubernetes/kubernetes/pull/66395), [@awly](https://github.com/awly)) +- kubectl: fixes a panic displaying pods with nominatedNodeName set ([#66406](https://github.com/kubernetes/kubernetes/pull/66406), [@liggitt](https://github.com/liggitt)) +- prevents infinite CLI wait on delete when item is recreated ([#66136](https://github.com/kubernetes/kubernetes/pull/66136), [@deads2k](https://github.com/deads2k)) +- Fix 'kubectl cp' with no arguments causes a panic ([#65482](https://github.com/kubernetes/kubernetes/pull/65482), [@wgliang](https://github.com/wgliang)) +- Fixes the wrong elasticsearch node counter ([#65627](https://github.com/kubernetes/kubernetes/pull/65627), [@IvanovOleg](https://github.com/IvanovOleg)) +- Fix an issue with dropped audit logs, when truncating and batch backends enabled at the same time. ([#65823](https://github.com/kubernetes/kubernetes/pull/65823), [@loburm](https://github.com/loburm)) +- DaemonSet: Fix bug- daemonset didn't create pod after node have enough resource ([#67337](https://github.com/kubernetes/kubernetes/pull/67337), [@linyouchong](https://github.com/linyouchong)) +- DaemonSet controller is now using backoff algorithm to avoid hot loops fighting with kubelet on pod recreation when a particular DaemonSet is misconfigured. ([#65309](https://github.com/kubernetes/kubernetes/pull/65309), [@tnozicka](https://github.com/tnozicka)) +- Avoid creating new controller revisions for statefulsets when cache is stale ([#67039](https://github.com/kubernetes/kubernetes/pull/67039), [@mortent](https://github.com/mortent)) +- Fixes issue when updating a DaemonSet causes a hash collision. ([#66476](https://github.com/kubernetes/kubernetes/pull/66476), [@mortent](https://github.com/mortent)) +- fix rollout status for statefulsets ([#62943](https://github.com/kubernetes/kubernetes/pull/62943), [@faraazkhan](https://github.com/faraazkhan)) +- fixes a validation error that could prevent updates to StatefulSet objects containing non-normalized resource requests ([#66165](https://github.com/kubernetes/kubernetes/pull/66165), [@liggitt](https://github.com/liggitt)) +- Headless Services with no ports defined will now create Endpoints correctly, and appear in DNS. ([#67622](https://github.com/kubernetes/kubernetes/pull/67622), [@thockin](https://github.com/thockin)) +- Prevent `resourceVersion` updates for custom resources on no-op writes. ([#67562](https://github.com/kubernetes/kubernetes/pull/67562), [@nikhita](https://github.com/nikhita)) +- kube-controller-manager can now start the quota controller when discovery results can only be partially determined. ([#67433](https://github.com/kubernetes/kubernetes/pull/67433), [@deads2k](https://github.com/deads2k)) +- Immediately close the other side of the connection when proxying. ([#67288](https://github.com/kubernetes/kubernetes/pull/67288), [@MHBauer](https://github.com/MHBauer)) +- kube-apiserver: fixes error creating system priority classes when starting multiple apiservers simultaneously ([#67372](https://github.com/kubernetes/kubernetes/pull/67372), [@tanshanshan](https://github.com/tanshanshan)) +- Forget rate limit when CRD establish controller successfully updated CRD condition ([#67370](https://github.com/kubernetes/kubernetes/pull/67370), [@yue9944882](https://github.com/yue9944882)) +- fixes a panic when using a mutating webhook admission plugin with a DELETE operation ([#66425](https://github.com/kubernetes/kubernetes/pull/66425), [@liggitt](https://github.com/liggitt)) +- Fix creation of custom resources when the CRD contains non-conventional pluralization and subresources ([#66249](https://github.com/kubernetes/kubernetes/pull/66249), [@deads2k](https://github.com/deads2k)) +- Aadjusted http/2 buffer sizes for apiservers to prevent starvation issues between concurrent streams ([#67902](https://github.com/kubernetes/kubernetes/pull/67902), [@liggitt](https://github.com/liggitt)) +- Fixed a bug that was blocking extensible error handling when serializing API responses error out. Previously, serialization failures always resulted in the status code of the original response being returned. Now, the following behavior occurs: ([#67041](https://github.com/kubernetes/kubernetes/pull/67041), [@tristanburgess](https://github.com/tristanburgess)) +- Fixes issue where pod scheduling may fail when using local PVs and pod affinity and anti-affinity without the default StatefulSet OrderedReady pod management policy ([#67556](https://github.com/kubernetes/kubernetes/pull/67556), [@msau42](https://github.com/msau42)) +- Fix panic when processing Azure HTTP response. ([#68210](https://github.com/kubernetes/kubernetes/pull/68210), [@feiskyer](https://github.com/feiskyer)) +- Fix volume limit for EBS on m5 and c5 instance types ([#66397](https://github.com/kubernetes/kubernetes/pull/66397), [@gnufied](https://github.com/gnufied)) +- Fix a bug on GCE that /etc/crictl.yaml is not generated when crictl is preloaded. ([#66877](https://github.com/kubernetes/kubernetes/pull/66877), [@Random-Liu](https://github.com/Random-Liu)) +- Revert #63905: Setup dns servers and search domains for Windows Pods. DNS for Windows containers will be set by CNI plugins. ([#66587](https://github.com/kubernetes/kubernetes/pull/66587), [@feiskyer](https://github.com/feiskyer)) +- Fix validation for HealthzBindAddress in kube-proxy when --healthz-port is set to 0 ([#66138](https://github.com/kubernetes/kubernetes/pull/66138), [@wsong](https://github.com/wsong)) +- Fixes issue [#68899](https://github.com/kubernetes/kubernetes/issues/68899) where pods might schedule on an unschedulable node. ([#68984](https://github.com/kubernetes/kubernetes/issues/68984), [@k82cn](https://github.com/k82cn)) + +### Not Very Notable (that is, non-user-facing) + +- Unit tests have been added for scopes and scope selectors in the quota spec ([#66351](https://github.com/kubernetes/kubernetes/pull/66351), [@vikaschoudhary16](https://github.com/vikaschoudhary16)) Courtesy of SIG Node, and SIG Scheduling +- kubelet v1beta1 external ComponentConfig types are now available in the `k8s.io/kubelet` repo ([#67263](https://github.com/kubernetes/kubernetes/pull/67263), [@luxas](https://github.com/luxas)) Courtesy of SIG Cluster Lifecycle, SIG Node, SIG Scheduling, and SIG Testing +- Use sync.map to scale ecache better ([#66862](https://github.com/kubernetes/kubernetes/pull/66862), [@resouer](https://github.com/resouer)) +- Extender preemption should respect IsInterested() ([#66291](https://github.com/kubernetes/kubernetes/pull/66291), [@resouer](https://github.com/resouer)) +- This PR will leverage subtests on the existing table tests for the scheduler units. ([#63665](https://github.com/kubernetes/kubernetes/pull/63665), [@xchapter7x](https://github.com/xchapter7x)) +- This PR will leverage subtests on the existing table tests for the scheduler units. ([#63666](https://github.com/kubernetes/kubernetes/pull/63666), [@xchapter7x](https://github.com/xchapter7x)) +- Re-adds `pkg/generated/bindata.go` to the repository to allow some parts of k8s.io/kubernetes to be go-vendorable. ([#65985](https://github.com/kubernetes/kubernetes/pull/65985), [@ixdy](https://github.com/ixdy)) +- If `TaintNodesByCondition` enabled, taint node with `TaintNodeUnschedulable` when initializing node to avoid race condition. +([#63955](https://github.com/kubernetes/kubernetes/pull/63955), [@k82cn](https://github.com/k82cn)) +- Remove rescheduler since scheduling DS pods by default scheduler is moving to beta. ([#67687](https://github.com/kubernetes/kubernetes/pull/67687), [@Lion-Wei](https://github.com/Lion-Wei)) +- kubeadm: make sure pre-pulled kube-proxy image and the one specified in its daemon set manifest are the same ([#67131](https://github.com/kubernetes/kubernetes/pull/67131), [@rosti](https://github.com/rosti)) +- kubeadm: remove misleading error message regarding image pulling ([#66658](https://github.com/kubernetes/kubernetes/pull/66658), [@dixudx](https://github.com/dixudx)) +- kubeadm: Pull sidecar and dnsmasq-nanny images when using kube-dns ([#66499](https://github.com/kubernetes/kubernetes/pull/66499), [@rosti](https://github.com/rosti)) +- kubeadm: Fix pause image to not use architecture, as it is a manifest list ([#65920](https://github.com/kubernetes/kubernetes/pull/65920), [@dims](https://github.com/dims)) +- kubeadm: Remove usage of `PersistentVolumeLabel` ([#65827](https://github.com/kubernetes/kubernetes/pull/65827), [@xlgao-zju](https://github.com/xlgao-zju)) +- kubeadm: Add a `v1alpha3` API. This change creates a v1alpha3 API that is initially a duplicate of v1alpha2. ([#65629](https://github.com/kubernetes/kubernetes/pull/65629), [@luxas](https://github.com/luxas)) +- Improved error message when checking the rollout status of StatefulSet with OnDelete strategy type. ([#66983](https://github.com/kubernetes/kubernetes/pull/66983), [@mortent](https://github.com/mortent)) +- Defaults for file audit logging backend in batch mode changed: ([#67223](https://github.com/kubernetes/kubernetes/pull/67223), [@tallclair](https://github.com/tallclair)) +- Role, ClusterRole and their bindings for cloud-provider is put under system namespace. Their addonmanager mode switches to EnsureExists. ([#67224](https://github.com/kubernetes/kubernetes/pull/67224), [@grayluck](https://github.com/grayluck)) +- Don't let aggregated apiservers fail to launch if the external-apiserver-authentication configmap is not found in the cluster. ([#67836](https://github.com/kubernetes/kubernetes/pull/67836), [@sttts](https://github.com/sttts)) +- Always create configmaps/extensions-apiserver-authentication from kube-apiserver. ([#67694](https://github.com/kubernetes/kubernetes/pull/67694), [@sttts](https://github.com/sttts)) +- Switched certificate data replacement from "REDACTED" to "DATA+OMITTED" ([#66023](https://github.com/kubernetes/kubernetes/pull/66023), [@ibrasho](https://github.com/ibrasho)) +- Decrease the amount of time it takes to modify kubeconfig files with large amounts of contexts ([#67093](https://github.com/kubernetes/kubernetes/pull/67093), [@juanvallejo](https://github.com/juanvallejo)) +- Make EBS volume expansion faster ([#66728](https://github.com/kubernetes/kubernetes/pull/66728), [@gnufied](https://github.com/gnufied)) +- Remove unused binary and container image for kube-aggregator. The functionality is already integrated into the kube-apiserver. ([#67157](https://github.com/kubernetes/kubernetes/pull/67157), [@dims](https://github.com/dims)) +- kube-controller-manager now uses the informer cache instead of active pod gets in HPA controller ([#68241](https://github.com/kubernetes/kubernetes/pull/68241), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) +- Replace scale down forbidden window with scale down stabilization window. Rather than waiting a fixed period of time between scale downs HPA now scales down to the highest recommendation it during the scale down stabilization window. ([#68122](https://github.com/kubernetes/kubernetes/pull/68122), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) +- Improve CPU sample sanitization in HPA by taking metric's freshness into account. ([#68068](https://github.com/kubernetes/kubernetes/pull/68068), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) +- Replace scale up forbidden window with disregarding CPU samples collected when pod was initializing. ([#67252](https://github.com/kubernetes/kubernetes/pull/67252), [@jbartosik](https://github.com/jbartosik)) +- [e2e] verifying LimitRange update is effective before creating new pod ([#68171](https://github.com/kubernetes/kubernetes/pull/68171), [@dixudx](https://github.com/dixudx)) +- Port 31337 will be used by fluentd ([#68051](https://github.com/kubernetes/kubernetes/pull/68051), [@Szetty](https://github.com/Szetty)) +- Fix flexvolume in containarized kubelets ([#65549](https://github.com/kubernetes/kubernetes/pull/65549), [@gnufied](https://github.com/gnufied)) +- The check for unsupported plugins during volume resize has been moved from the admission controller to the two controllers that handle volume resize. ([#66780](https://github.com/kubernetes/kubernetes/pull/66780), [@kangarlou](https://github.com/kangarlou)) +- kubeadm: remove redundant flags settings for kubelet ([#64682](https://github.com/kubernetes/kubernetes/pull/64682), [@dixudx](https://github.com/dixudx)) +- Set “priorityClassName: system-node-critical” on kube-proxy manifest by default. ([#60150](https://github.com/kubernetes/kubernetes/pull/60150), [@MrHohn](https://github.com/MrHohn)) +- kube-proxy v1beta1 external ComponentConfig types are now available in the `k8s.io/kube-proxy` repo ([#67688](https://github.com/kubernetes/kubernetes/pull/67688), [@Lion-Wei](https://github.com/Lion-Wei)) +- add missing LastTransitionTime of ContainerReady condition ([#64867](https://github.com/kubernetes/kubernetes/pull/64867), [@dixudx](https://github.com/dixudx)) + +## External Dependencies + +- Default etcd server version is unchanged from v1.11: v3.2.18 ([#61198](https://github.com/kubernetes/kubernetes/pull/61198)) +- Rescheduler is unchanged from v1.11: v0.4.0 ([#65454](https://github.com/kubernetes/kubernetes/pull/65454)) +- The validated docker versions are the same as for v1.10: 1.11.2 to 1.13.1 and 17.03.x +- The Go version is go1.10.3, as compared to go10.2 in v1.11. ([#65726](https://github.com/kubernetes/kubernetes/pull/65726), [@ixdy](https://github.com/ixdy)) +- The minimum supported go is the same as for v1.10: go1.9.1. ([#55301](https://github.com/kubernetes/kubernetes/pull/55301)) +- CNI is unchanged from v1.10: v0.6.0 ([#51250](https://github.com/kubernetes/kubernetes/pull/51250)) +- CSI is unchanged from v1.11: 0.3.0 ([#64719](https://github.com/kubernetes/kubernetes/pull/64719)) +- The dashboard add-on unchanged from v1.10: v1.8.3. ([#57326](https://github.com/kubernetes/kubernetes/pull/57326)) +- Bump Heapster to v1.6.0-beta as compared to v1.5.2 in v1.11 ([#67074](https://github.com/kubernetes/kubernetes/pull/67074)) +Cluster Autoscaler has been upgraded to version to v1.3.2-beta.2 from v1.3.0 in v1.11. See [release notes](https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.3.2-beta.2) for details. ([#67697](https://github.com/kubernetes/kubernetes/pull/67697)) +- Kube-dns is unchanged from v1.11: v1.14.10 ([#62676](https://github.com/kubernetes/kubernetes/pull/62676)) +- Influxdb is unchanged from v1.10: v1.3.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +- Grafana is unchanged from v1.10: v4.4.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +- Kibana is at v6.3.2. ([#67582](https://github.com/kubernetes/kubernetes/pull/67582)) +- CAdvisor is unchanged from v1.11: v0.30.1 ([#64987](https://github.com/kubernetes/kubernetes/pull/64987)) +- fluentd-gcp-scaler has been updated to v0.4.0, up from 0.3.0 in v1.11. ([#67691](https://github.com/kubernetes/kubernetes/pull/67691)) +- fluentd in fluentd-es-image is unchanged from 1.10: v1.1.0 ([#58525](https://github.com/kubernetes/kubernetes/pull/58525)) +- Fluentd in fluentd-elasticsearch is unchanged from v1.11: v1.2.4 ([#67434](https://github.com/kubernetes/kubernetes/pull/67434)) +- fluentd-elasticsearch is unchanged from 1.10: v2.0.4 ([#58525](https://github.com/kubernetes/kubernetes/pull/58525)) +- The fluent-plugin-kubernetes_metadata_filter plugin in fluentd-elasticsearch has been downgraded to version 2.0.0 ([#67544](https://github.com/kubernetes/kubernetes/pull/67544)) +- fluentd-gcp is unchanged from 1.10: v3.0.0. ([#60722](https://github.com/kubernetes/kubernetes/pull/60722)) +- Ingress glbc is unchanged from 1.10: v1.0.0 ([#61302](https://github.com/kubernetes/kubernetes/pull/61302)) +- OIDC authentication is unchanged from 1.10: coreos/go-oidc v2 ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) +- Calico is unchanged from 1.10: v2.6.7 ([#59130](https://github.com/kubernetes/kubernetes/pull/59130)) +- hcsshim is unchanged from v1.11, at v0.11 ([#64272](https://github.com/kubernetes/kubernetes/pull/64272)) +- gitRepo volumes in pods no longer require git 1.8.5 or newer; older git versions are now supported. ([#62394](https://github.com/kubernetes/kubernetes/pull/62394)) +- Upgraded crictl on GCE to v1.11.1, up from 1.11.0 on v1.11. ([#66152](https://github.com/kubernetes/kubernetes/pull/66152)) +CoreDNS has been updated to v1.2.2, up from v1.1.3 in v1.11 ([#68076](https://github.com/kubernetes/kubernetes/pull/68076)) +- Setup dns servers and search domains for Windows Pods in dockershim. Docker EE version >= 17.10.0 is required for propagating DNS to containers. ([#63905](https://github.com/kubernetes/kubernetes/pull/63905)) +- Istio addon is unchanged from v1.11, at 0.8.0. See [full Istio release notes](https://istio.io/about/notes/0.6.html) ([#64537](https://github.com/kubernetes/kubernetes/pull/64537)) +- cadvisor godeps is unchanged from v1.11, at v0.30.0 ([#64800](https://github.com/kubernetes/kubernetes/pull/64800)) +- event-exporter to version v0.2.2, compared to v0.2.0 in v1.11. ([#66157](https://github.com/kubernetes/kubernetes/pull/66157)) +- Rev the Azure SDK for networking to 2017-06-01 ([#61955](https://github.com/kubernetes/kubernetes/pull/61955)) +- Es-image has been upgraded to Elasticsearch 6.3.2 ([#67484](https://github.com/kubernetes/kubernetes/pull/67484)) +- metrics-server has been upgraded to v0.3.0. ([#68077](https://github.com/kubernetes/kubernetes/pull/68077)) +- GLBC has been updated to v1.2.3 ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) +- Ingress-gce has been updated to v 1.2.0 ([#65641](https://github.com/kubernetes/kubernetes/pull/65641)) +- ip-masq-agen has been updated to v2.1.1 ([#67916](https://github.com/kubernetes/kubernetes/pull/67916)) diff --git a/releases/release-1.12/release_team.md b/releases/release-1.12/release_team.md index 594d2b82f8b..2d26ecf3ebd 100644 --- a/releases/release-1.12/release_team.md +++ b/releases/release-1.12/release_team.md @@ -1,20 +1,20 @@ -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -| ------ | ------ | ------ | -| Lead | Tim Pepper ([@tpepper](https://github.com/tpepper)) | Aishwarya Sundar ([@AishSundar](https://github.com/AishSundar)) | -| Features | Stephen Augustus ([@justaugustus](https://github.com/justaugustus)) | Kendrick Coleman ([@kacole2](https://github.com/kacole2)), Michael Singh ([@wadadli](https://github.com/wadadli))| -| CI Signal | Mohammed Zeeshan Ahmed ([@mohammedzee1000](https://github.com/mohammedzee1000)) | Suraj Narwade ([@surajnarwade](https://github.com/surajnarwade)) | -| Test Infra | Cole Wagner ([@cjwagner](https://github.com/cjwagner)) | Amit Watve ([@amwat](https://github.com/amwat)) | -| Bug Triage | Guinevere Saenger ([@guineveresaenger](https://github.com/guineveresaenger)/ @gsaenger on Slack) | Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard)), Arnaud Meukam ([@ameukam](https://github.com/ameukam)), Niko Penteridis ([@nikopen](https://github.com/nikopen)) | -| Branch Manager | Doug MacEachern ([@dougm](https://github.com/dougm)) | Yang Li ([@idealhack](https://github.com/idealhack)), Hannes Hoerl ([@hoegaarden](https://github.com/hoegaarden)), Travis Rhoden ([@codenrhoden](https://github.com/codenrhoden)) | -| Docs | Zach Arnold ([@zparnold](https://github.com/zparnold)) | Jim Angel ([@jimangel](https://github.com/jimangel)), Tim Fogarty ([@tfogo](https://github.com/tfogo)) | -| Release Notes | Nick Chase ([@nickchase](https://github.com/nickchase)) | Dave Strebel ([@dstrebel](https://github.com/dstrebel)), Lindsey Tulloch ([@onyiny-ang](https://github.com/onyiny-ang)), Mike Arpaia ([@marpaia](https://github.com/marpaia)) | -| Communications | Kaitlyn Barnard ([@kbarnard10](https://github.com/kbarnard10)) | Keri Dell ([@kerilynndell](https://github.com/kerilynndell)), Kristen Evans ([@kristenevans](https://github.com/kristenevans)) | -| Patch Release Manager | Pengfei Ni ([@feiskyer](https://github.com/feiskyer)) || -| Approval Notifier | k8s-ci-robot ([@k8s-ci-robot](https://github.com/k8s-ci-robot)) || - -Special thanks: -* Aaron Crickenberger ([@spiffxp](https://github.com/spiffxp)) -* Davanum Srinivas ([@dims](https://github.com/dims)) -* Caleb Miles ([@calebamiles](https://github.com/calebamiles)) -* Ben Elder ([@bentheelder](https://github.com/bentheelder)) -* Mehdy Bohlool ([@mbohlool](https://github.com/mbohlool)) +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +| ------ | ------ | ------ | +| Lead | Tim Pepper ([@tpepper](https://github.com/tpepper)) | Aishwarya Sundar ([@AishSundar](https://github.com/AishSundar)) | +| Features | Stephen Augustus ([@justaugustus](https://github.com/justaugustus)) | Kendrick Coleman ([@kacole2](https://github.com/kacole2)), Michael Singh ([@wadadli](https://github.com/wadadli))| +| CI Signal | Mohammed Zeeshan Ahmed ([@mohammedzee1000](https://github.com/mohammedzee1000)) | Suraj Narwade ([@surajnarwade](https://github.com/surajnarwade)) | +| Test Infra | Cole Wagner ([@cjwagner](https://github.com/cjwagner)) | Amit Watve ([@amwat](https://github.com/amwat)) | +| Bug Triage | Guinevere Saenger ([@guineveresaenger](https://github.com/guineveresaenger)/ @gsaenger on Slack) | Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard)), Arnaud Meukam ([@ameukam](https://github.com/ameukam)), Niko Penteridis ([@nikopen](https://github.com/nikopen)) | +| Branch Manager | Doug MacEachern ([@dougm](https://github.com/dougm)) | Yang Li ([@idealhack](https://github.com/idealhack)), Hannes Hoerl ([@hoegaarden](https://github.com/hoegaarden)), Travis Rhoden ([@codenrhoden](https://github.com/codenrhoden)) | +| Docs | Zach Arnold ([@zparnold](https://github.com/zparnold)) | Jim Angel ([@jimangel](https://github.com/jimangel)), Tim Fogarty ([@tfogo](https://github.com/tfogo)) | +| Release Notes | Nick Chase ([@nickchase](https://github.com/nickchase)) | Dave Strebel ([@dstrebel](https://github.com/dstrebel)), Lindsey Tulloch ([@onyiny-ang](https://github.com/onyiny-ang)), Mike Arpaia ([@marpaia](https://github.com/marpaia)) | +| Communications | Kaitlyn Barnard ([@kbarnard10](https://github.com/kbarnard10)) | Keri Dell ([@kerilynndell](https://github.com/kerilynndell)), Kristen Evans ([@kristenevans](https://github.com/kristenevans)) | +| Patch Release Manager | Pengfei Ni ([@feiskyer](https://github.com/feiskyer)) || +| Approval Notifier | k8s-ci-robot ([@k8s-ci-robot](https://github.com/k8s-ci-robot)) || + +Special thanks: +* Aaron Crickenberger ([@spiffxp](https://github.com/spiffxp)) +* Davanum Srinivas ([@dims](https://github.com/dims)) +* Caleb Miles ([@calebamiles](https://github.com/calebamiles)) +* Ben Elder ([@bentheelder](https://github.com/bentheelder)) +* Mehdy Bohlool ([@mbohlool](https://github.com/mbohlool)) diff --git a/releases/release-1.13/README.md b/releases/release-1.13/README.md index 3e445d565af..c04d0edf1a0 100644 --- a/releases/release-1.13/README.md +++ b/releases/release-1.13/README.md @@ -1,151 +1,151 @@ -# 1.13 - Angel Release - -Angel Number 113 signifies new beginnings, transformation and end of a chapter to open new exciting ones. This is fitting for the EOY stability release, as we look forward to evolving and further maturing Kubernetes releases next year ! - -![1.13 Angel Release](113_Angel_Release.png) - -# Kubernetes 1.13 Release Schedule - -*Handy Links* - -* [This document](https://git.k8s.io/sig-release/releases/release-1.13/README.md) -* [Release Team](https://git.k8s.io/sig-release/releases/release-1.13/release_team.md) -* Zoom: join [Google Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) to receive meeting invite -* [Slack](https://kubernetes.slack.com/messages/sig-release/) -* [Forum](https://groups.google.com/forum/#!forum/kubernetes-sig-release) -* [Enhancements Tracking Sheet](http://bit.ly/k8s113-enhancements) -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/release.md) -* [Meeting Minutes](http://bit.ly/k8s113-minutes) -* [Bug Triage Tracking Sheet](http://bit.ly/k8s113-bugtriage) -* [CI Signal Report](http://bit.ly/k8s113-cisignal) -* [Retrospective Document](http://bit.ly/k8s113-retro) - -**tl;dr** The 1.13 release cycle begins on **Monday, October 1st, 2018**, and ends on release day, **Monday, December 03, 2018**. Enhancements freeze is **Tuesday, October 23, 2018**. Code slush is **Friday, November 09, 2018**. Code freeze begins **Friday, November 16, 2018** and ends **Wednesday, November 28, 2018**, but [may vary depending on CI Signal](#conditionally-shortened-code-freeze). Docs must be completed and reviewed by **Tuesday, November 27, 2018**. Release blocking test case additions must be completed by in conjunction with enhancements by code freeze. - -## Notes About this Release - -* The Release Team will continue with the shortened Code Freeze, [see below](#conditionally-shortened-code-freeze). -* The Features process is remaining as it has in prior releases, except that it is being renamed from Features to Enhancements. -* Enhancements that don't have complete code and tests by [Code Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.13/release-1.13.md#code-freeze) may be disabled by the release team before cutting the first beta. -* The release team will escalate [release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) and [release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) failures to SIGs throughout the cycle, not just near release cuts. -* Unlike the previous cycles key deliverables, including the final release, do **not** fall on Tuesdays due to shortened release cycle. -* The release cycle length is approximately only **10 weeks** long. - -## Timeline - - -| **What** | **Who** | **Oct** | **Nov** | **Dec** | **Jan** | **DEV WEEK** | **TEST GATES** | -| --- | --- | --- | --- | --- | --- | --- | --- | -| Start of Release Cycle | Lead | 1| | | | week 1 | | -| Begin weekly release team meetings | Lead | 1 | | | | | | -| Finalize Schedule | Lead | 5 | | | | | | -| Begin collecting planned work from SIGs | Lead, Enhancements Lead | 8| | | | week 2 | | -| Begin weekly status reports at Community | Lead, Shadow | 11 | | | | | | -| Finalize Release Team | Lead | 12 | | | | | | -| 1.13.0-alpha.1 release | Branch Manager | 15 | | | | | | -| Start Release Notes Draft | Release Notes Lead | 16 | || | week 3 | | -| Clean up enhancements repo | Enhancements Lead | 16 | | | | | | -| "Enhancements Freeze" begins (EOD PST) | Enhancements Lead | 23 | || | week 4 | | -| 1.13.0-alpha.2 release | Branch Manager | 23 | | | | | [master-blocking], [master-upgrade] | -| 1.13.0-alpha.3 release | Branch Manager | 31 | | | | | [master-blocking], [master-upgrade] | -| Begin MWF Burndown meetings | Lead | | 5 | | | week 6 | | -| All release-1.9 CI jobs/testgrid removed | Test Infra Lead | | 6 | | | | | -| Create 'release-1.13' branch and begin daily branch | Branch Manager | | 6 | | | | | -| v1.14.0-alpha.0 | Branch Manager | | 6 | | | | | -| 1.13.0-beta.0 released from branch | Branch Manager | | 6 | | | | [master-blocking], [master-upgrade] | -| Docs deadline - Open placeholder PRs | Docs Lead | | 8 | | | | | -| All release-1.13 CI jobs/testgrid created | Test Infra Lead | | 9 | | | | | -| Begin Code Slush | Bot, Lead | | 9 | | | week 6 | | -| All Issues & PRs must have complete labels | Bug Triage | | 12 | | | week 7 | | -| Kubecon Shangai 2018 | Community event | | 13 - 15 | | | | | -| Begin code and test freeze (EOD PST) | Bot, Lead | | 16 | | | week 7 | [1.13-blocking], [master-blocking], [master-upgrade] | -| Begin pruning | Lead and release team | | 16 | | | | | -| 1.13.0-beta.1 released from branch | Branch Manager | | 16 | || | [1.13-blocking], [master-blocking], [master-upgrade] | -| Begin M-F Burndown meetings | Lead | | 19 | | | week 8 | | -| Unapproved/non-critical Issues/PRs get kicked out | Bot, Bug Triage | | 19 | | | | | -| Docs deadline - PRs ready for review | Docs Lead | | 19 | | | | | -| 1.13.0-beta.2 released from branch | Branch Manager | | 21 | | | | [1.13-blocking], [master-blocking], [master-upgrade] | -| US Thanksgiving | Holiday | | 22 | | | | | -| Docs complete - All PRs reviewed and ready to merge | Docs Lead | | 27 | | | week 9 | | -| 1.13.0-rc.1 released from branch | Branch Manager | | 27 | | | | [1.13-blocking], [master-blocking], [master-upgrade] | -| End of code freeze (EOD PST): Master branch re-opens for 1.13 | Bot, Branch Manager, Lead | | 28 | | | | | -| PRs for v1.13.0 must be cherry picked to release-1.13 | Branch Manager | | 28 | | | | | -| Notify kubernetes-dev of lifting code freeze | Lead | | 28 | | | | | -| cherry pick deadline (EOD PST) | Branch Manager | | 30 | | | | | -| 1.13.0-rc.2 released from branch | Branch Manager | | 30 | | | | [1.13-blocking], [master-blocking], [master-upgrade] | -| v1.13.0 | Branch Manager | | | 3 | |week 10 | [1.13-blocking] | -| Release retrospective | Community | | | 6? | | | | | -| Contributor Summit + Kubecon Seattle 2018 | Community event | | | 9 - 13 | | week 11 | | -| 1.14 Release Cycle Begins | Next Lead | | | | 2 | | | - -## Details - -### Conditionally Shortened Code Freeze - -In keeping with 1.11 and 1.12 release cycles, the 1.13 Release Team has set the schedule with a shortened code freeze. This is ofcourse contingent on all tests in [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) and [master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) passing and have been passing for a few days leading to the code slush and freeze. - -The release team may need to shorten the length of code slush and increase length of freeze to begin earlier if the project does not maintain a clean CI signal heading into the planned slush and freeze. Any such changes will be communicated early and broadly. - -### Enhancements Freeze - -All enhancements going into the release must have an associated issue in the enhancements repo by ***Tuesday, October 23, 2018***. That issue must be in the 1.13 milestone. SIG "themes" should also be in the release notes draft at this time to prepare for blog posts and release marketing. Any work the SIG wants publicized needs to be called out to the Enhancements Lead so the Release Team communications lead can work with SIG-PM and the CNCF. - -### Code Slush - -Starting on ***Friday, November 9th, 2018***, only PRs marked for the 1.13 milestone (issue the Prow "/milestone v1.13" command) by their owner SIGs' leadership will be allowed to merge into the master branch. All others will be deferred until the end of Code Freeze, when master opens back up for the next release cycle. If necessary, the release team can add the milestone in cases where the SIG approvers do not have permissions to do so. For more information on correct PR marking see [the release process](https://git.k8s.io/community/contributors/devel/release.md) in the developer guide. - -At this time, any issues/PRs with incomplete labels, or which are "stale" will be removed from the release. The release team will work with SIGs to make sure that labels are complete prior to removal. - -Code Slush begins prior to Code Freeze to help reduce noise from miscellaneous changes that aren't related to issues that SIGs have approved for the milestone. Enhancements work is still allowed at this point, but it must follow the process to get approved for the milestone. SIGs are the gatekeepers of this label, not the release team. - -#### Exceptions - -Starting at Code Slush, the release team will solicit and rule on [exception requests](https://github.com/kubernetes/enhancements/blob/master/EXCEPTIONS.md) for enhancements and test work that is unlikely to be done by Code Freeze. The exception approval is the responsibility of the SIG or SIGs labeled in the pull request. The release team may intervene or deny the request only if it poses a risk to release quality, or could negatively impact the overall timeline. Changes introduced at this point should be well-tested, well-understood, limited in architectural scope, and low risk. All of those factors should be considered in the approval process. Enhancements on an feature branch with documentation, test cases, and passing CI are more likely to be accepted. - -### Code Freeze - -All enhancements going into the release must be code-complete, ***including tests***, and have docs PRs open by ***Thursday, November 15th, 2018***. - -The docs PRs don't have to be ready to merge, but it should be clear what the topic will be and who is responsible for writing it. This person will become the primary contact for the documentation lead. It’s incredibly important that documentation work gets completed as quickly as possible. - -After this point, only release-blocking issues and PRs will be allowed in the milestone. - -### Pruning - -Enhancements that are partially implemented and/or lack sufficient tests may be considered for pruning beginning after code freeze, unless they've been granted exceptions. - -The release team will work with SIGs and enhancements owners to evaluate each case, but for example, pruning could include actions such as: - -* Disabling the use of a new API or field -* Switching the default value of a flag or field -* Moving a new API or field behind an Alpha Enhancements gate -* Reverting commits or deleting code - -This should occur before 1.13.0-beta.1 is cut so we have time to gather signal on whether the system is stable in this state. These are considered drastic measures, so the release team will strive to coordinate at-risk work with SIGs before this time. The goal is to make code freeze, and overall project transparency, enforceable despite the lack of a consistently used feature branch process. - -### Docs - -If an enhancement needs documentation, enter "Yes" in the enhancement tracking spreadsheet and add a link to the documentation PR. You can open documentation PRs in the [kubernetes/website](https://github.com/kubernetes/website) repository. If you have questions, the release documentation lead, or representatives from SIG-Docs will be happy to assist you. - -For documentation PRs: - -* Open PRs against the release-1.13 branch based off of the 1.13 release PR. The documentation workflow uses feature branches for release documentation, rather than basing from master. **Be sure to open your PR against the release branch**. -* Add your PR to the 1.13 Release milestone. - -### Burndown - -Burndown meetings are held on Mondays, Wednesdays and Fridays at 10am PST until the final release is near, and then every business day until the release. These meetings may overlap with other SIG meetings and the Community Meeting, but it is critical that SIGs provide representation at the release burndown meeting when requested to discuss specific issues and ensure they do not become gating on the release. The release lead or a release team representative will keep the Community Meeting informed of release status even if there are meeting conflicts. - -Join the [Kubernetes Milestone Burndown Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) to get the calendar invite. - -The intent of these meetings is to: - -* Focus on fixing bugs, eliminating test flakes and general release stabilization. -* Ensure docs and release notes are written and accurate. -* Identify all enhancement going into the release, and make sure alpha, beta, GA is marked in enhancements repo. -* Provide a [one-stop view of release progress](https://bit.ly/k8s113-minutes) including relevant release metrics. -* Host SIG stakeholders for updates. - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-upgrade]: https://testgrid.k8s.io/sig-release-master-upgrade#Summary -[1.13-blocking]:https://testgrid.k8s.io/sig-release-1.13-blocking#Summary +# 1.13 - Angel Release + +Angel Number 113 signifies new beginnings, transformation and end of a chapter to open new exciting ones. This is fitting for the EOY stability release, as we look forward to evolving and further maturing Kubernetes releases next year ! + +![1.13 Angel Release](113_Angel_Release.png) + +# Kubernetes 1.13 Release Schedule + +*Handy Links* + +* [This document](https://git.k8s.io/sig-release/releases/release-1.13/README.md) +* [Release Team](https://git.k8s.io/sig-release/releases/release-1.13/release_team.md) +* Zoom: join [Google Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) to receive meeting invite +* [Slack](https://kubernetes.slack.com/messages/sig-release/) +* [Forum](https://groups.google.com/forum/#!forum/kubernetes-sig-release) +* [Enhancements Tracking Sheet](http://bit.ly/k8s113-enhancements) +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/release.md) +* [Meeting Minutes](http://bit.ly/k8s113-minutes) +* [Bug Triage Tracking Sheet](http://bit.ly/k8s113-bugtriage) +* [CI Signal Report](http://bit.ly/k8s113-cisignal) +* [Retrospective Document](http://bit.ly/k8s113-retro) + +**tl;dr** The 1.13 release cycle begins on **Monday, October 1st, 2018**, and ends on release day, **Monday, December 03, 2018**. Enhancements freeze is **Tuesday, October 23, 2018**. Code slush is **Friday, November 09, 2018**. Code freeze begins **Friday, November 16, 2018** and ends **Wednesday, November 28, 2018**, but [may vary depending on CI Signal](#conditionally-shortened-code-freeze). Docs must be completed and reviewed by **Tuesday, November 27, 2018**. Release blocking test case additions must be completed by in conjunction with enhancements by code freeze. + +## Notes About this Release + +* The Release Team will continue with the shortened Code Freeze, [see below](#conditionally-shortened-code-freeze). +* The Features process is remaining as it has in prior releases, except that it is being renamed from Features to Enhancements. +* Enhancements that don't have complete code and tests by [Code Freeze](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.13/release-1.13.md#code-freeze) may be disabled by the release team before cutting the first beta. +* The release team will escalate [release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) and [release-master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) failures to SIGs throughout the cycle, not just near release cuts. +* Unlike the previous cycles key deliverables, including the final release, do **not** fall on Tuesdays due to shortened release cycle. +* The release cycle length is approximately only **10 weeks** long. + +## Timeline + + +| **What** | **Who** | **Oct** | **Nov** | **Dec** | **Jan** | **DEV WEEK** | **TEST GATES** | +| --- | --- | --- | --- | --- | --- | --- | --- | +| Start of Release Cycle | Lead | 1| | | | week 1 | | +| Begin weekly release team meetings | Lead | 1 | | | | | | +| Finalize Schedule | Lead | 5 | | | | | | +| Begin collecting planned work from SIGs | Lead, Enhancements Lead | 8| | | | week 2 | | +| Begin weekly status reports at Community | Lead, Shadow | 11 | | | | | | +| Finalize Release Team | Lead | 12 | | | | | | +| 1.13.0-alpha.1 release | Branch Manager | 15 | | | | | | +| Start Release Notes Draft | Release Notes Lead | 16 | || | week 3 | | +| Clean up enhancements repo | Enhancements Lead | 16 | | | | | | +| "Enhancements Freeze" begins (EOD PST) | Enhancements Lead | 23 | || | week 4 | | +| 1.13.0-alpha.2 release | Branch Manager | 23 | | | | | [master-blocking], [master-upgrade] | +| 1.13.0-alpha.3 release | Branch Manager | 31 | | | | | [master-blocking], [master-upgrade] | +| Begin MWF Burndown meetings | Lead | | 5 | | | week 6 | | +| All release-1.9 CI jobs/testgrid removed | Test Infra Lead | | 6 | | | | | +| Create 'release-1.13' branch and begin daily branch | Branch Manager | | 6 | | | | | +| v1.14.0-alpha.0 | Branch Manager | | 6 | | | | | +| 1.13.0-beta.0 released from branch | Branch Manager | | 6 | | | | [master-blocking], [master-upgrade] | +| Docs deadline - Open placeholder PRs | Docs Lead | | 8 | | | | | +| All release-1.13 CI jobs/testgrid created | Test Infra Lead | | 9 | | | | | +| Begin Code Slush | Bot, Lead | | 9 | | | week 6 | | +| All Issues & PRs must have complete labels | Bug Triage | | 12 | | | week 7 | | +| Kubecon Shangai 2018 | Community event | | 13 - 15 | | | | | +| Begin code and test freeze (EOD PST) | Bot, Lead | | 16 | | | week 7 | [1.13-blocking], [master-blocking], [master-upgrade] | +| Begin pruning | Lead and release team | | 16 | | | | | +| 1.13.0-beta.1 released from branch | Branch Manager | | 16 | || | [1.13-blocking], [master-blocking], [master-upgrade] | +| Begin M-F Burndown meetings | Lead | | 19 | | | week 8 | | +| Unapproved/non-critical Issues/PRs get kicked out | Bot, Bug Triage | | 19 | | | | | +| Docs deadline - PRs ready for review | Docs Lead | | 19 | | | | | +| 1.13.0-beta.2 released from branch | Branch Manager | | 21 | | | | [1.13-blocking], [master-blocking], [master-upgrade] | +| US Thanksgiving | Holiday | | 22 | | | | | +| Docs complete - All PRs reviewed and ready to merge | Docs Lead | | 27 | | | week 9 | | +| 1.13.0-rc.1 released from branch | Branch Manager | | 27 | | | | [1.13-blocking], [master-blocking], [master-upgrade] | +| End of code freeze (EOD PST): Master branch re-opens for 1.13 | Bot, Branch Manager, Lead | | 28 | | | | | +| PRs for v1.13.0 must be cherry picked to release-1.13 | Branch Manager | | 28 | | | | | +| Notify kubernetes-dev of lifting code freeze | Lead | | 28 | | | | | +| cherry pick deadline (EOD PST) | Branch Manager | | 30 | | | | | +| 1.13.0-rc.2 released from branch | Branch Manager | | 30 | | | | [1.13-blocking], [master-blocking], [master-upgrade] | +| v1.13.0 | Branch Manager | | | 3 | |week 10 | [1.13-blocking] | +| Release retrospective | Community | | | 6? | | | | | +| Contributor Summit + Kubecon Seattle 2018 | Community event | | | 9 - 13 | | week 11 | | +| 1.14 Release Cycle Begins | Next Lead | | | | 2 | | | + +## Details + +### Conditionally Shortened Code Freeze + +In keeping with 1.11 and 1.12 release cycles, the 1.13 Release Team has set the schedule with a shortened code freeze. This is ofcourse contingent on all tests in [master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) and [master-upgrade](https://testgrid.k8s.io/sig-release-master-upgrade) passing and have been passing for a few days leading to the code slush and freeze. + +The release team may need to shorten the length of code slush and increase length of freeze to begin earlier if the project does not maintain a clean CI signal heading into the planned slush and freeze. Any such changes will be communicated early and broadly. + +### Enhancements Freeze + +All enhancements going into the release must have an associated issue in the enhancements repo by ***Tuesday, October 23, 2018***. That issue must be in the 1.13 milestone. SIG "themes" should also be in the release notes draft at this time to prepare for blog posts and release marketing. Any work the SIG wants publicized needs to be called out to the Enhancements Lead so the Release Team communications lead can work with SIG-PM and the CNCF. + +### Code Slush + +Starting on ***Friday, November 9th, 2018***, only PRs marked for the 1.13 milestone (issue the Prow "/milestone v1.13" command) by their owner SIGs' leadership will be allowed to merge into the master branch. All others will be deferred until the end of Code Freeze, when master opens back up for the next release cycle. If necessary, the release team can add the milestone in cases where the SIG approvers do not have permissions to do so. For more information on correct PR marking see [the release process](https://git.k8s.io/community/contributors/devel/release.md) in the developer guide. + +At this time, any issues/PRs with incomplete labels, or which are "stale" will be removed from the release. The release team will work with SIGs to make sure that labels are complete prior to removal. + +Code Slush begins prior to Code Freeze to help reduce noise from miscellaneous changes that aren't related to issues that SIGs have approved for the milestone. Enhancements work is still allowed at this point, but it must follow the process to get approved for the milestone. SIGs are the gatekeepers of this label, not the release team. + +#### Exceptions + +Starting at Code Slush, the release team will solicit and rule on [exception requests](https://github.com/kubernetes/enhancements/blob/master/EXCEPTIONS.md) for enhancements and test work that is unlikely to be done by Code Freeze. The exception approval is the responsibility of the SIG or SIGs labeled in the pull request. The release team may intervene or deny the request only if it poses a risk to release quality, or could negatively impact the overall timeline. Changes introduced at this point should be well-tested, well-understood, limited in architectural scope, and low risk. All of those factors should be considered in the approval process. Enhancements on an feature branch with documentation, test cases, and passing CI are more likely to be accepted. + +### Code Freeze + +All enhancements going into the release must be code-complete, ***including tests***, and have docs PRs open by ***Thursday, November 15th, 2018***. + +The docs PRs don't have to be ready to merge, but it should be clear what the topic will be and who is responsible for writing it. This person will become the primary contact for the documentation lead. It’s incredibly important that documentation work gets completed as quickly as possible. + +After this point, only release-blocking issues and PRs will be allowed in the milestone. + +### Pruning + +Enhancements that are partially implemented and/or lack sufficient tests may be considered for pruning beginning after code freeze, unless they've been granted exceptions. + +The release team will work with SIGs and enhancements owners to evaluate each case, but for example, pruning could include actions such as: + +* Disabling the use of a new API or field +* Switching the default value of a flag or field +* Moving a new API or field behind an Alpha Enhancements gate +* Reverting commits or deleting code + +This should occur before 1.13.0-beta.1 is cut so we have time to gather signal on whether the system is stable in this state. These are considered drastic measures, so the release team will strive to coordinate at-risk work with SIGs before this time. The goal is to make code freeze, and overall project transparency, enforceable despite the lack of a consistently used feature branch process. + +### Docs + +If an enhancement needs documentation, enter "Yes" in the enhancement tracking spreadsheet and add a link to the documentation PR. You can open documentation PRs in the [kubernetes/website](https://github.com/kubernetes/website) repository. If you have questions, the release documentation lead, or representatives from SIG-Docs will be happy to assist you. + +For documentation PRs: + +* Open PRs against the release-1.13 branch based off of the 1.13 release PR. The documentation workflow uses feature branches for release documentation, rather than basing from master. **Be sure to open your PR against the release branch**. +* Add your PR to the 1.13 Release milestone. + +### Burndown + +Burndown meetings are held on Mondays, Wednesdays and Fridays at 10am PST until the final release is near, and then every business day until the release. These meetings may overlap with other SIG meetings and the Community Meeting, but it is critical that SIGs provide representation at the release burndown meeting when requested to discuss specific issues and ensure they do not become gating on the release. The release lead or a release team representative will keep the Community Meeting informed of release status even if there are meeting conflicts. + +Join the [Kubernetes Milestone Burndown Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) to get the calendar invite. + +The intent of these meetings is to: + +* Focus on fixing bugs, eliminating test flakes and general release stabilization. +* Ensure docs and release notes are written and accurate. +* Identify all enhancement going into the release, and make sure alpha, beta, GA is marked in enhancements repo. +* Provide a [one-stop view of release progress](https://bit.ly/k8s113-minutes) including relevant release metrics. +* Host SIG stakeholders for updates. + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-upgrade]: https://testgrid.k8s.io/sig-release-master-upgrade#Summary +[1.13-blocking]:https://testgrid.k8s.io/sig-release-1.13-blocking#Summary diff --git a/releases/release-1.13/release-notes-draft.md b/releases/release-1.13/release-notes-draft.md index 840423627f0..0522266ba3a 100644 --- a/releases/release-1.13/release-notes-draft.md +++ b/releases/release-1.13/release-notes-draft.md @@ -1,459 +1,459 @@ -# Kubernetes 1.13 Release Notes - -## Security Content - -- CVE-2018-1002105, a critical security issue in the Kubernetes API Server, is resolved in v1.13.0 (and in [v1.10.11](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.10.md/#v11011), [v1.11.5](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md/#v1115), and [v1.12.3](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.12.md/#v1123)). We recommend all clusters running previous versions update to one of these releases immediately. See issue [#71411](https://github.com/kubernetes/kubernetes/issues/71411) for details. - -## Urgent Upgrade Notes - -### (No, really, you MUST do this before you upgrade) - -Before upgrading to Kubernetes 1.13, you must keep the following in mind: - -- kube-apiserver - - The deprecated `etcd2` storage backend has been removed. Before upgrading a kube-apiserver using `--storage-backend=etcd2`, etcd v2 data must be migrated to the v3 storage backend, and kube-apiserver invocations changed to use `--storage-backend=etcd3`. Please consult the installation procedure used to set up etcd for specific migration instructions. Backups prior to upgrade are always a good practice, but since the etcd2 to etcd3 migration is not reversible, an etcd backup prior to migration is essential. - - The deprecated `--etcd-quorum-read` flag has been removed. Quorum reads are now always enabled when fetching data from etcd. Remove the `--etcd-quorum-read` flag from kube-apiserver invocations before upgrading. -- kube-controller-manager - - The deprecated `--insecure-experimental-approve-all-kubelet-csrs-for-group` flag has been removed. -- kubelet - - The deprecated `--google-json-key` flag has been removed. Remove the `--google-json-key` flag from kubelet invocations before upgrading. ([#69354](https://github.com/kubernetes/kubernetes/pull/69354), [@yujuhong](https://github.com/yujuhong)) - - DaemonSet pods now make use of scheduling features that require kubelets to be at 1.11 or above. Ensure all kubelets in the cluster are at 1.11 or above before upgrading kube-controller-manager to 1.13. - - The schema for the alpha `CSINodeInfo` CRD has been split into `spec` and `status` fields, and new fields `status.available` and `status.volumePluginMechanism` added. Clusters using the previous alpha schema must delete and recreate the CRD using the new schema. ([#70515](https://github.com/kubernetes/kubernetes/pull/70515), [@davidz627](https://github.com/davidz627)) -- kube-scheduler dropped support for configuration files with apiVersion `componentconfig/v1alpha1`. Ensure kube-scheduler is configured using command-line flags or a configuration file with apiVersion `kubescheduler.config.k8s.io/v1alpha1` before upgrading to 1.13. -- kubectl - - The deprecated command `run-container` has been removed. Invocations should use `kubectl run` instead ([#70728](https://github.com/kubernetes/kubernetes/pull/70728), [@Pingan2017](https://github.com/Pingan2017)) -- client-go releases will no longer have bootstrap (k8s.io/client-go/tools/bootstrap) related code. Any reference to it will break. Please redirect all references to k8s.io/bootstrap instead. ([#67356](https://github.com/kubernetes/kubernetes/pull/67356), [@yliaog](https://github.com/yliaog)) -- Kubernetes cannot distinguish between GCE Zonal PDs and Regional PDs with the same name. To workaround this issue, precreate PDs with unique names. PDs that are dynamically provisioned do not encounter this issue. ([#70716](https://github.com/kubernetes/kubernetes/pull/70716), [@msau42](https://github.com/msau42)) - -## Known Issues - -- If kubelet plugin registration for a driver fails, kubelet will not retry. The driver must delete and recreate the driver registration socket in order to force kubelet to attempt registration again. Restarting only the driver container may not be sufficient to trigger recreation of the socket, instead a pod restart may be required. ([#71487](https://github.com/kubernetes/kubernetes/issues/71487)) -- In some cases, a Flex volume resize may leave a PVC with erroneous Resizing condition even after volume has been successfully expanded. Users may choose to delete the condition, but it is not required. ([#71470](https://github.com/kubernetes/kubernetes/issues/71470)) -- The CSI driver-registrar external sidecar container v1.0.0-rc2 is known to take up to 1 minute to start in some cases. We expect this issue to be resolved in a future release of the sidecar container. For verification, please see the release notes of future releases of the external sidecar container. ([#76](https://github.com/kubernetes-csi/driver-registrar/issues/76)) -- When using IPV6-only, be sure to use `proxy-mode=iptables` as `proxy-mode=ipvs` is known to not work. ([#68437](https://github.com/kubernetes/kubernetes/issues/68437)) - -## Deprecations - -- kube-apiserver - - The `--service-account-api-audiences` flag is deprecated in favor of `--api-audiences`. The old flag is accepted with a warning but will be removed in a future release. ([#70105](https://github.com/kubernetes/kubernetes/pull/70105), [@mikedanese](https://github.com/mikedanese)) - - The `--experimental-encryption-provider-config` flag is deprecated in favor of `--encryption-provider-config`. The old flag is accepted with a warning but will be removed in 1.14. ([#71206](https://github.com/kubernetes/kubernetes/pull/71206), [@stlaz](https://github.com/stlaz)) - - As part of graduating the etcd encryption feature to beta, the configuration file referenced by `--encryption-provider-config` now uses `kind: EncryptionConfiguration` and `apiVersion: apiserver.config.k8s.io/v1`. Support for `kind: EncryptionConfig` and `apiVersion: v1` is deprecated and will be removed in a future release. ([#67383](https://github.com/kubernetes/kubernetes/pull/67383), [@stlaz](https://github.com/stlaz)) - - The `--deserialization-cache-size` flag is deprecated, and will be removed in a future release. The flag is inactive since the etcd2 storage backend was removed. ([#69842](https://github.com/kubernetes/kubernetes/pull/69842), [@liggitt](https://github.com/liggitt)) - - The `Node` authorization mode no longer allows kubelets to delete their Node API objects (prior to 1.11, in rare circumstances related to cloudprovider node ID changes, kubelets would attempt to delete/recreate their Node object at startup) ([#71021](https://github.com/kubernetes/kubernetes/pull/71021), [@liggitt](https://github.com/liggitt)) - - The built-in `system:csi-external-provisioner` and `system:csi-external-attacher` cluster roles are deprecated and will not be auto-created in a future release. CSI deployments should provide their own RBAC role definitions with required permissions. ([#69868](https://github.com/kubernetes/kubernetes/pull/69868), [@pohly]( https://github.com/pohly)) - - The built-in `system:aws-cloud-provider` cluster role is deprecated and will not be auto-created in a future release. Deployments using the AWS cloud provider should grant required permissions to the `aws-cloud-provider` service account in the `kube-system` namespace as part of deployment. ([#66635](https://github.com/kubernetes/kubernetes/pull/66635), [@wgliang](https://github.com/wgliang)) -- kubelet - - Use of the beta plugin registration directory `{kubelet_root_dir}/plugins/` for registration of external drivers via the kubelet plugin registration protocol is deprecated in favor of `{kubelet_root_dir}/plugins_registry/`. Support for the old directory is planned to be removed in v1.15. Device plugin and CSI storage drivers should switch to the new directory prior to v1.15. Only CSI storage drivers that support 0.x versions of the CSI API are allowed in the old directory. ([#70494](https://github.com/kubernetes/kubernetes/pull/70494) by [@RenaudWasTaken](https://github.com/RenaudWasTaken) and [#71314](https://github.com/kubernetes/kubernetes/pull/71314) by [@saad-ali](https://github.com/saad-ali)) - - With the release of the CSI 1.0 API, support for CSI drivers using 0.3 and older releases of the CSI API is deprecated, and is planned to be removed in Kubernetes v1.15. CSI drivers should be updated to support the CSI 1.0 API, and deployed in the new kubelet plugin registration directory (`{kubelet_root_dir}/plugins_registry/`) once all nodes in the cluster are at 1.13 or higher ([#71020](https://github.com/kubernetes/kubernetes/pull/71020) and [#71314](https://github.com/kubernetes/kubernetes/pull/71314), both by [@saad-ali](https://github.com/saad-ali)) - - Use of the `--node-labels` flag to set labels under the `kubernetes.io/` and `k8s.io/` prefix will be subject to restriction by the `NodeRestriction` admission plugin in future releases. [See admission plugin documentation](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction) for allowed labels. ([#68267](https://github.com/kubernetes/kubernetes/pull/68267), [@liggitt](https://github.com/liggitt)) -- kube-scheduler - - The alpha critical pod annotation (`scheduler.alpha.kubernetes.io/critical-pod`) is deprecated. Pod priority should be used instead to mark pods as critical. ([#70298](https://github.com/kubernetes/kubernetes/pull/70298), [@bsalamat](https://github.com/bsalamat)) -- The following features are now GA, and the associated feature gates are deprecated and will be removed in a future release: - - CSIPersistentVolume - - GCERegionalPersistentDisk - - KubeletPluginsWatcher - - VolumeScheduling -- kubeadm - - The DynamicKubeletConfig feature gate is deprecated. The functionality is still accessible by using the kubeadm alpha kubelet enable-dynamic command. - - The command `kubeadm config print-defaults` is deprecated in favor of `kubeadm config print init-defaults` and `kubeadm config print join-defaults` ([#69617](https://github.com/kubernetes/kubernetes/pull/69617), [@rosti](https://github.com/rosti)) - - support for the `v1alpha3` configuration file format is deprecated and will be removed in 1.14. Use `kubeadm config migrate` to migrate `v1alpha3` configuration files to `v1beta1`, which provides improvements in image repository management, addons configuration, and other areas. The documentation for `v1beta1` can be found here: https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1 -- The `node.status.volumes.attached.devicePath` field is deprecated for CSI volumes and will not be set in future releases ([#71095](https://github.com/kubernetes/kubernetes/pull/71095), [@msau42](https://github.com/msau42)) -- kubectl - - The `kubectl convert` command is deprecated and will be removed in a future release ([#70820](https://github.com/kubernetes/kubernetes/pull/70820), [@seans3](https://github.com/seans3)) -- Support for passing unknown provider names to the E2E test binaries is deprecated and will be removed in a future release. Use `--provider=skeleton` (no ssh access) or `--provider=local` (local cluster with ssh) instead. ([#70141](https://github.com/kubernetes/kubernetes/pull/70141), [@pohly](https://github.com/pohly)) - -## Major Themes - -### SIG API Machinery - -For the 1.13 release, SIG API Machinery is happy to announce that the [dry-run functionality](https://kubernetes.io//docs/reference/using-api/api-concepts/#dry-run) is now beta. - -### SIG Auth - -With this release we've made several important enhancements to core SIG Auth areas. In the authorization category, we've further reduced Kubelet privileges by [restricting node self-updates of labels to a whitelisted selection and by disallowing kubelets from deleting their Node API object](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction). In authentication, we added alpha-level support for automounting improved service account tokens through projected volumes. We also enabled [audience validation in TokenReview](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.13/#tokenreview-v1-authentication-k8s-io) for the new tokens for improved scoping. Under audit logging, the new alpha-level "dynamic audit configuration" adds support for [dynamically registering webhooks to receive a stream of audit events](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#dynamic-backend). Finally, we've enhanced secrets protection by graduating [etcd encryption](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) out of experimental. - -### SIG AWS - -In v1.13 we worked on tighter integrations of Kubernetes API objects with AWS services. These include three out-of-tree alpha feature releases: - -1) Alpha for AWS ALB (Application Load Balancer) integration to Kubernetes Ingress resources. -2) Alpha for CSI specification 0.3 integration to AWS EBS (Elastic Block Store) -3) Alpha for the cloudprovider-aws cloud controller manager binary. Additionally we added [aws-k8s-tester](https://github.com/kubernetes/test-infra/issues/9814), deployer interface for kubetest, to the test-infra repository. This plugin allowed us to integrate Prow to the 3 subprojects defined above in order to provide CI signal for all 3 features. The CI signal is visible [here](https://testgrid.k8s.io/) under SIG-AWS. - -For detailed release notes on the three alpha features from SIG AWS, please refer to the following Changelogs: - -- [aws-alb-ingress-controller v1.0.0](https://github.com/kubernetes-sigs/aws-alb-ingress-controller/releases/tag/v1.0.0) -- [aws-ebs-csi-driver v0.1](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/CHANGELOG-0.x.md#v010) -- [cloudprovider-aws external v0.1.0] (https://github.com/kubernetes/cloud-provider-aws/blob/master/changelogs/CHANGELOG-0.1.md) - -### SIG Azure - -For 1.13 SIG Azure was focused on adding additional Azure Disk support for Ultra SSD, Standard SSD, and Premium Azure Files. Azure Availability Zones and cross resource group nodes were also moved from Alpha to Beta in 1.13. - -### SIG Big Data - -During the 1.13 release cycle, SIG Big Data has been focused on community engagements relating to 3rd-party project integrations with Kubernetes. There have been no impacts on the 1.13 release. - -### SIG CLI - -Over the course of 1.13 release SIG CLI mostly focused on stabilizing the items we’ve been working on over the past releases such as server-side printing and its support in kubectl, as well as finishing [kubectl diff which is based on server-side dry-run feature](https://kubernetes.io/docs/concepts/overview/object-management-kubectl/#how-to-create-objects). We’ve continued separating kubectl code to prepare for extraction out of main repository. Finally, thanks to the awesome support and feedback from community we’ve managed to promote the new [plugin mechanism to Beta](https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/). - -### SIG Cloud Provider - -For v1.13, SIG Cloud Provider has been focused on stabilizing the common APIs and interfaces consumed by cloud providers today. This involved auditing the cloud provider APIs for anything that should be deprecated as well as adding changes where necessary. In addition, SIG Cloud Provider has begun exploratory work around having a “cloud provider” e2e test suite which can be used to test common cloud provider functionalities with resources such as nodes and load balancers. - -We are also continuing our long running effort to extract all the existing cloud providers that live in k8s.io/kubernetes into their own respective repos. Along with this migration, we are slowly transitioning users to use the cloud-controller-manager for any cloud provider features instead of the kube-controller-manager. - -### SIG Cluster Lifecycle - -For 1.13 SIG Cluster Lifecycle is pleased to announce the long awaited promotion of kubeadm to stable GA, and the promotion of kubeadm’s configuration API to `v1beta1`. -In this release the SIG again focused on further improving the user experience on cluster creation and also fixing a number of bugs and other assorted improvements. - -Some notable changes in kubeadm since Kubernetes 1.12: - -- kubeadm’s configuration API is now `v1beta1`. The new configuration format provides improvements in - image repository management, addons configuration, and other areas. We encourage `v1alpha3` users to migrate to this configuration API using `kubeadm config migrate`, as `v1alpha3` will be removed in 1.14. The documentation for `v1beta1` can be found here: https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1 -- kubeadm has graduated `kubeadm alpha phase` commands to `kubeadm init phase`. This means that the phases of creating a control-plane node are now tightly integrated as part of the `init` command. Alpha features, not yet ready for GA are still kept under `kubeadm alpha` and we appreciate feedback on them. -- `kubeadm init` and `kubeadm init phase` now have a `--image-repository` flag, improving support for environments with limited access to official kubernetes repository. -- The DynamicKubeletConfig and SelfHosting functionality was moved outside of `kubeadm init` and feature gates and is now exposed under `kubeadm alpha`. -- Kubeadm init phase certs now support the `--csr-only` option, simplifying custom CA creation. -- `kubeadm join --experimental-control-plane` now automatically adds a new etcd member for `local etcd` mode, further simplifying required tasks for HA clusters setup. -- Improvements were made to `kubeadm reset` related to cleaning etcd and notifying the user about the state of iptables. -- kubeadm commands now print warnings if input YAML documents contain unknown or duplicate fields. -- kubeadm now properly recognizes Docker 18.09.0 and newer, but still treats 18.06 as the default supported version. -- kubeadm now automatically sets the `--pod-infra-container-image` flag when starting the kubelet. - -### SIG IBM Cloud - -The IBM Cloud SIG was focused on defining its charter and working towards moving its cloud provider code to an external repository with a goal to have this work done by the end of Kubernetes 1.14 release cycle. In the SIG meetings, we also made sure to share updates on the latest Kubernetes developments in the IBM Cloud like the availability of Kubernetes v1.12.2 in the IBM Cloud Kubernetes Service (IKS). The SIG updates were provided in the Kubernetes community weekly call and at the KubeCon China 2018. - -### SIG Multicluster - -Moving Federation v2 from Alpha towards Beta has been the focus of our effort over the past quarter. To this end we engaged with end users, and successfully enlisted additional contributors from companies including IBM, Amadeus, Cisco and others. Federation v2 provides a suite of decoupled API’s and re-usable components for building multi-cluster control planes. We plan to start releasing Beta components in late 2018. In addition, more minor updates were made to our cluster-registry and multi-cluster ingress sub-projects. - -### SIG Network - -For 1.13, the areas of focus were in IPv6, DNS improvements and some smaller items: -CoreDNS is now the default cluster DNS passing all of the scale/resource usage tests -Node-local DNS cache feature is available in Alpha. This feature deploys a lightweight DNS caching Daemonset that avoids the conntrack and converts queries from UDP to more reliable TCP. -PodReady++ feature now has `kubectl` CLI support. - -Progress was made towards finalizing the IPv6 dual stack support KEP and support for topological routing of services. - -### SIG Node - -SIG Node focused on stability and performance improvements in the 1.13 release. A new alpha feature is introduced to improve the mechanism that nodes heartbeat back to the control plane. The `NodeLease` feature results in the node using a `Lease` resource in the `kube-node-lease` namespace that is renewed periodically. The `NodeStatus` that was used previously to heartbeat back to the control plane is only updated when it changes. This reduces load on the control plane for large clusters. The Kubelet plugin registration mechanism, which enables automatic discovery of external plugins (including CSI and device plugins) has been promoted to stable in this release (introduced as alpha in 1.11 and promoted to beta in 1.12). - -### SIG Openstack - -The major theme for the SIG OpenStack release is the work-in-progress for removing the in-tree provider. This work, being done in conjunction with SIG Cloud Provider, is focusing on moving internal APIs that the OpenStack (and other providers) depends upon to staging to guarantee API stability. This work also included abstracting the in-tree Cinder API and refactoring code to the external Cinder provider to remove additional Cinder volume provider code. - -Additional work was also done to implement an OpenStack driver for the Cluster API effort lead by SIG Cluster Lifecycle. For the external Cloud-Provider-OpenStack code, the SIG largely focused on bug fixes and updates to match K8s 1.13 development. - -### SIG Scalability - -SIG Scalability has mostly focused on stability and deflaking our tests, investing into framework for writing scalability tests (ClusterLoader v2) with a goal to migrate all tests to it by the end of 2018 and on the work towards extending definition of Kubernetes scalability by providing more/better user-friendly SLIs/SLOs. - -### SIG Scheduling - -SIG Scheduling has mostly focused on stability in 1.13 and has postponed some of the major features to the next versions. There are still two notable changes: 1. TaintBasedEviction is moved to Beta and will be enabled by default. With this feature enabled, condition taints are automatically added to the nodes and pods can add tolerations for them if needed. 2. Pod critical annotation is deprecated. Pods should use pod priority instead of the annotation. - -It is worth noting again that kube-scheduler will use apiVersion `kubescheduler.config.k8s.io/v1alpha1` instead of `componentconfig/v1alpha1` in its configuration files in 1.13. - -### SIG Service Catalog - -The Service Plan Defaults feature is still under active development. -We continue to improve the UX for the svcat CLI, specifically filling in gaps for the new Namespaced Service Broker feature. - -### SIG Storage - -Over the last year, SIG Storage has been focused on adding support for the Container Storage Interface (CSI) to Kubernetes. The specification recently moved to 1.0, and on the heels of this achievement, Kubernetes v1.13 moves CSI support for PersistentVolumes to GA. - -With CSI the Kubernetes volume layer becomes truly extensible, allowing third party storage developers to write drivers making their storage systems available in Kubernetes without having to touch the core code. - -CSI was first introduction as alpha in Kubernetes v1.9 and moved to beta in Kubernetes v1.10. - -You can find a list of sample and production drivers in the [CSI Documentation](https://kubernetes.io/docs/concepts/storage/volumes/#csi). - -SIG Storage also moves support for Block Volumes to beta (introduced as alpha in v1.9) and support for Topology Aware Volume Scheduling to stable (introduced as alpha in v1.9 and promoted to beta in 1.10). - -### SIG UI - -The migration to the newest version of Angular is still under active development as it is most important thing on the roadmap at the moment. We are getting closer to to the new release. We continue fixing bugs and adding other improvements. - -### SIG VMWare - -Major focus for SIG VMware for this release is the work on moving internal APIs that the vSphere provider depends upon to staging to guarantee API stability. This work is being done in conjunction with SIG Cloud Provider and includes the creation of a brand new vsphere-csi plugin to replace the current volume functionalities in-tree. - -Additional work was also done to implement a vSphere provider for the Cluster API effort lead by SIG Cluster Lifecycle. For the out-of-tree vSphere cloud provider, the SIG largely focused on bug fixes and updates to match K8s 1.13 development. - -### SIG Windows - -SIG Windows focused on improving reliability for Windows and Kubernetes support - -## New Features - -- kubelet: When node lease feature is enabled, kubelet reports node status to api server only if there is some change or it didn't report over last report interval. ([#69753](https://github.com/kubernetes/kubernetes/pull/69753), [@wangzhen127](https://github.com/wangzhen127)) -- vSphereVolume implements Raw Block Volume Support ([#68761](https://github.com/kubernetes/kubernetes/pull/68761), [@fanzhangio](https://github.com/fanzhangio)) -- CRD supports multi-version Schema, Subresources and AdditionalPrintColumns (NOTE that CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an updated that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must be explicitly set to null). ([#70211](https://github.com/kubernetes/kubernetes/pull/70211), [@roycaihw](https://github.com/roycaihw)) -- New addon in addon manager that automatically installs CSI CRDs if CSIDriverRegistry or CSINodeInfo feature gates are true. ([#70193](https://github.com/kubernetes/kubernetes/pull/70193), [@saad-ali](https://github.com/saad-ali)) -- Delegated authorization can now allow unrestricted access for `system:masters` like the main kube-apiserver ([#70671](https://github.com/kubernetes/kubernetes/pull/70671), [@deads2k](https://github.com/deads2k)) -- Added dns capabilities for Windows CNI plugins: ([#67435](https://github.com/kubernetes/kubernetes/pull/67435), [@feiskyer](https://github.com/feiskyer)) -- kube-apiserver: `--audit-webhook-version` and `--audit-log-version` now default to `audit.k8s.io/v1` if unspecified ([#70476](https://github.com/kubernetes/kubernetes/pull/70476), [@charrywanganthony](https://github.com/charrywanganthony)) -- kubeadm: timeoutForControlPlane is introduced as part of the API Server config, that controls the timeout for the wait for control plane to be up. Default value is 4 minutes. ([#70480](https://github.com/kubernetes/kubernetes/pull/70480), [@rosti](https://github.com/rosti)) -- `--api-audiences` now defaults to the `--service-account-issuer` if the issuer is provided but the API audience is not. ([#70308](https://github.com/kubernetes/kubernetes/pull/70308), [@mikedanese](https://github.com/mikedanese)) -- Added support for projected volume in describe function ([#70158](https://github.com/kubernetes/kubernetes/pull/70158), [@WanLinghao](https://github.com/WanLinghao)) -- kubeadm now automatically creates a new stacked etcd member when joining a new control plane node (does not applies to external etcd) ([#69486](https://github.com/kubernetes/kubernetes/pull/69486), [@fabriziopandini](https://github.com/fabriziopandini)) -- Display the usage of ephemeral-storage when using `kubectl describe node` ([#70268](https://github.com/kubernetes/kubernetes/pull/70268), [@Pingan2017](https://github.com/Pingan2017)) -- Added functionality to enable br_netfilter and ip_forward for debian packages to improve kubeadm support for CRI runtime besides Docker. ([#70152](https://github.com/kubernetes/kubernetes/pull/70152), [@ashwanikhemani](https://github.com/ashwanikhemani)) -- Added regions ap-northeast-3 and eu-west-3 to the list of well known AWS regions. ([#70252](https://github.com/kubernetes/kubernetes/pull/70252), [@nckturner](https://github.com/nckturner)) -- kubeadm: Implemented preflight check to ensure that number of CPUs ([#70048](https://github.com/kubernetes/kubernetes/pull/70048), [@bart0sh](https://github.com/bart0sh)) -- CoreDNS is now the default DNS server in kube-up deployments. ([#69883](https://github.com/kubernetes/kubernetes/pull/69883), [@chrisohaver](https://github.com/chrisohaver)) -- Opt out of chowning and chmoding from kubectl cp. ([#69573](https://github.com/kubernetes/kubernetes/pull/69573), [@bjhaid](https://github.com/bjhaid)) -- Failed to provision volume with StorageClass "azurefile-premium": failed to create share andy-mg1121-dynamic-pvc-1a7b2813-d1b7-11e8-9e96-000d3a03e16b in account f7228f99bcde411e8ba4900: failed to create file share, err: storage: service returned error: StatusCode=400, ErrorCode=InvalidHeaderValue, ErrorMessage=The value for one of the HTTP headers is not in the correct format. ([#69718](https://github.com/kubernetes/kubernetes/pull/69718), [@andyzhangx](https://github.com/andyzhangx)) -- `TaintBasedEvictions` feature is promoted to beta. ([#69824](https://github.com/kubernetes/kubernetes/pull/69824), [@Huang-Wei](https://github.com/Huang-Wei)) -- Fixed https://github.com/kubernetes/client-go/issues/478 by adding support for JSON Patch in client-go/dynamic/fake ([#69330](https://github.com/kubernetes/kubernetes/pull/69330), [@vaikas-google](https://github.com/vaikas-google)) -- Dry-run is promoted to Beta and will be enabled by default. ([#69644](https://github.com/kubernetes/kubernetes/pull/69644), [@apelisse](https://github.com/apelisse)) -- `kubectl get priorityclass` now prints value column by default. ([#69431](https://github.com/kubernetes/kubernetes/pull/69431), [@Huang-Wei](https://github.com/Huang-Wei)) -- Added a new container based image for running e2e tests ([#69368](https://github.com/kubernetes/kubernetes/pull/69368), [@dims](https://github.com/dims)) -- The `LC_ALL` and `LC_MESSAGES` env vars can now be used to set desired locale for `kubectl` while keeping `LANG` unchanged. ([#69500](https://github.com/kubernetes/kubernetes/pull/69500), [@m1kola](https://github.com/m1kola)) -- NodeLifecycleController: Now node lease renewal is treated as the heartbeat signal from the node, in addition to NodeStatus Update. ([#69241](https://github.com/kubernetes/kubernetes/pull/69241), [@wangzhen127](https://github.com/wangzhen127)) -- Added dynamic shared informers to write generic, non-generated controllers ([#69308](https://github.com/kubernetes/kubernetes/pull/69308), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Upgraded to etcd 3.3 client ([#69322](https://github.com/kubernetes/kubernetes/pull/69322), [@jpbetz](https://github.com/jpbetz)) -- It is now possible to use named ports in the `kubectl port-forward` command ([#69477](https://github.com/kubernetes/kubernetes/pull/69477), [@m1kola](https://github.com/m1kola)) -- `kubectl wait` now supports condition value checks other than true using `--for condition=available=false` ([#69295](https://github.com/kubernetes/kubernetes/pull/69295), [@deads2k](https://github.com/deads2k)) -- Updated defaultbackend image to 1.5. Users should concentrate on updating scripts to the new version. ([#69120](https://github.com/kubernetes/kubernetes/pull/69120), [@aledbf](https://github.com/aledbf)) -- Bumped Dashboard version to v1.10.0 ([#68450](https://github.com/kubernetes/kubernetes/pull/68450), [@jeefy](https://github.com/jeefy)) -- Added env variables to control CPU requests of kube-controller-manager and kube-scheduler. ([#68823](https://github.com/kubernetes/kubernetes/pull/68823), [@loburm](https://github.com/loburm)) -- PodSecurityPolicy objects now support a `MayRunAs` rule for `fsGroup` and `supplementalGroups` options. This allows specifying ranges of allowed GIDs for pods/containers without forcing a default GID the way `MustRunAs` does. This means that a container to which such a policy applies to won't use any fsGroup/supplementalGroup GID if not explicitly specified, yet a specified GID must still fall in the GID range according to the policy. ([#65135](https://github.com/kubernetes/kubernetes/pull/65135), [@stlaz](https://github.com/stlaz)) -- Upgrade Stackdriver Logging Agent addon image to 0.6-1.6.0-1 to use Fluentd v1.2. This provides nanoseconds timestamp granularity for logs. ([#70954](https://github.com/kubernetes/kubernetes/pull/70954), [@qingling128](https://github.com/qingling128)) -- When the BoundServiceAccountTokenVolumes Alpha feature is enabled, ServiceAccount volumes now use a projected volume source and their names have the prefix "kube-api-access". ([#69848](https://github.com/kubernetes/kubernetes/pull/69848), [@mikedanese](https://github.com/mikedanese)) -- Raw block volume support is promoted to beta, and enabled by default. This is accessible via the `volumeDevices` container field in pod specs, and the `volumeMode` field in persistent volume and persistent volume claims definitions. ([#71167](https://github.com/kubernetes/kubernetes/pull/71167), [@msau42](https://github.com/msau42)) -- TokenReview now supports audience validation of tokens with audiences other than the kube-apiserver. ([#62692](https://github.com/kubernetes/kubernetes/pull/62692), [@mikedanese](https://github.com/mikedanese)) -- StatefulSet is supported in `kubectl autoscale` command ([#71103](https://github.com/kubernetes/kubernetes/pull/71103), [@Pingan2017](https://github.com/Pingan2017)) -- Kubernetes v1.13 moves support for Container Storage Interface to GA. As part of this move Kubernetes now supports CSI v1.0.0 and deprecates support for CSI 0.3 and older releases. Older CSI drivers must be updated to CSI 1.0 and moved to the new kubelet plugin registration directory in order to work with Kubernetes 1.15+. ([#71020](https://github.com/kubernetes/kubernetes/pull/71020), [@saad-ali](https://github.com/saad-ali)) -- Added option to create CSRs instead of certificates for kubeadm init phase certs and kubeadm alpha certs renew ([#70809](https://github.com/kubernetes/kubernetes/pull/70809), [@liztio](https://github.com/liztio)) -- Added a kubelet socket which serves an grpc service containing the devices used by containers on the node. ([#70508](https://github.com/kubernetes/kubernetes/pull/70508), [@dashpole](https://github.com/dashpole)) -- Added DynamicAuditing feature which allows for the configuration of audit webhooks through the use of an AuditSink API object. ([#67257](https://github.com/kubernetes/kubernetes/pull/67257), [@pbarker](https://github.com/pbarker)) -- The kube-apiserver's healthz now takes in an optional query parameter which allows you to disable health checks from causing healthz failures. ([#70676](https://github.com/kubernetes/kubernetes/pull/70676), [@logicalhan](https://github.com/logicalhan)) -- Introduced support for running a nodelocal dns cache. It is disabled by default, can be enabled by setting KUBE_ENABLE_NODELOCAL_DNS=true ([#70555](https://github.com/kubernetes/kubernetes/pull/70555), [@prameshj](https://github.com/prameshj)) -- Added readiness gates in extended output for pods ([#70775](https://github.com/kubernetes/kubernetes/pull/70775), [@freehan](https://github.com/freehan)) -- Added `Ready` column and improve human-readable output of Deployments and StatefulSets ([#70466](https://github.com/kubernetes/kubernetes/pull/70466), [@Pingan2017](https://github.com/Pingan2017)) -- Added `kubelet_container_log_size_bytes` metric representing the log file size of a container. ([#70749](https://github.com/kubernetes/kubernetes/pull/70749), [@brancz](https://github.com/brancz)) -- NodeLifecycleController: When node lease feature is enabled, node lease will be deleted when the corresponding node is deleted. ([#70034](https://github.com/kubernetes/kubernetes/pull/70034), [@wangzhen127](https://github.com/wangzhen127)) -- GCERegionalPersistentDisk feature is GA now! ([#70716](https://github.com/kubernetes/kubernetes/pull/70716), [@jingxu97](https://github.com/jingxu97)) -- Added secure port 10259 to the kube-scheduler (enabled by default) and deprecate old insecure port 10251. Without further flags self-signed certs are created on startup in memory. ([#69663](https://github.com/kubernetes/kubernetes/pull/69663), [@sttts](https://github.com/sttts)) - -## Release Notes From SIGs - -### SIG API Machinery - -- The OwnerReferencesPermissionEnforcement admission plugin now checks authorization for the correct scope (namespaced or cluster-scoped) of the owner resource type. Previously, it always checked permissions at the same scope as the child resource. ([#70389](https://github.com/kubernetes/kubernetes/pull/70389), [@caesarxuchao](https://github.com/caesarxuchao)) -- OpenAPI spec now correctly marks delete request's body parameter as optional ([#70032](https://github.com/kubernetes/kubernetes/pull/70032), [@iamneha](https://github.com/iamneha)) -- The rules for incrementing `metadata.generation` of custom resources changed: ([#69059](https://github.com/kubernetes/kubernetes/pull/69059), [@caesarxuchao](https://github.com/caesarxuchao)) - - If the custom resource participates the spec/status convention, the metadata.generation of the CR increments when there is any change, except for the changes to the metadata or the changes to the status. - - If the custom resource does not participate the spec/status convention, the metadata.generation of the CR increments when there is any change to the CR, except for changes to the metadata. - - A custom resource is considered to participate the spec/status convention if and only if the "CustomResourceSubresources" feature gate is turned on and the CRD has `.spec.subresources.status={}`. -- Fixed patch/update operations on multi-version custom resources ([#70087](https://github.com/kubernetes/kubernetes/pull/70087), [@liggitt](https://github.com/liggitt)) -- Reduced memory utilization of admission webhook metrics by removing resource related labels. ([#69895](https://github.com/kubernetes/kubernetes/pull/69895), [@jpbetz](https://github.com/jpbetz)) -- Kubelet can now parse PEM file containing both TLS certificate and key in arbitrary order. Previously key was always required to be first. ([#69536](https://github.com/kubernetes/kubernetes/pull/69536), [@awly](https://github.com/awly)) -- Code-gen: Removed lowercasing for project imports ([#68484](https://github.com/kubernetes/kubernetes/pull/68484), [@jsturtevant](https://github.com/jsturtevant)) -- Fixed client cert setup in delegating authentication logic ([#69430](https://github.com/kubernetes/kubernetes/pull/69430), [@DirectXMan12](https://github.com/DirectXMan12)) -- OpenAPI spec and API reference now reflect dryRun query parameter for POST/PUT/PATCH operations ([#69359](https://github.com/kubernetes/kubernetes/pull/69359), [@roycaihw](https://github.com/roycaihw)) -- Fixed the sample-apiserver so that its BanFlunder admission plugin can be used. ([#68417](https://github.com/kubernetes/kubernetes/pull/68417), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) -- APIService availability related to networking glitches are corrected faster ([#68678](https://github.com/kubernetes/kubernetes/pull/68678), [@deads2k](https://github.com/deads2k)) -- Fixed an issue with stuck connections handling error responses ([#71412](https://github.com/kubernetes/kubernetes/pull/71412), [@liggitt](https://github.com/liggitt)) -- apiserver: fixed handling and logging of panics in REST handlers ([#71076](https://github.com/kubernetes/kubernetes/pull/71076), [@liggitt](https://github.com/liggitt)) -- kube-controller-manager no longer removes ownerReferences from ResourceQuota objects ([#70035](https://github.com/kubernetes/kubernetes/pull/70035), [@liggitt](https://github.com/liggitt)) -- "unfinished_work_microseconds" is added to the workqueue metrics; it can be used to detect stuck worker threads. (kube-controller-manager runs many workqueues.) ([#70884](https://github.com/kubernetes/kubernetes/pull/70884), [@lavalamp](https://github.com/lavalamp)) -- Timeouts set in ListOptions for clients are also be respected locally ([#70998](https://github.com/kubernetes/kubernetes/pull/70998), [@deads2k](https://github.com/deads2k)) -- Added support for CRD conversion webhook ([#67006](https://github.com/kubernetes/kubernetes/pull/67006), [@mbohlool](https://github.com/mbohlool)) -- client-go: fixed sending oversized data frames to spdystreams in remotecommand.NewSPDYExecutor ([#70999](https://github.com/kubernetes/kubernetes/pull/70999), [@liggitt](https://github.com/liggitt)) -- Fixed missing flags in `-controller-manager --help`. ([#71298](https://github.com/kubernetes/kubernetes/pull/71298), [@stewart-yu](https://github.com/stewart-yu)) -- Fixed missing flags in `kube-apiserver --help`. ([#70204](https://github.com/kubernetes/kubernetes/pull/70204), [@imjching](https://github.com/imjching)) -- The caBundle and service fields in admission webhook API objects now correctly indicate they are optional ([#70138](https://github.com/kubernetes/kubernetes/pull/70138), [@liggitt](https://github.com/liggitt)) -- Fixed an issue with stuck connections handling error responses ([#71419](https://github.com/kubernetes/kubernetes/pull/71419), [@liggitt](https://github.com/liggitt)) -- kube-controller-manager and cloud-controller-manager now hold generated serving certificates in-memory unless a writeable location is specified with --cert-dir ([#69884](https://github.com/kubernetes/kubernetes/pull/69884), [@liggitt](https://github.com/liggitt)) -- CCM server will not listen insecurely if secure port is specified ([#68982](https://github.com/kubernetes/kubernetes/pull/68982), [@aruneli](https://github.com/aruneli)) -- List operations against the API now return internal server errors instead of partially complete lists when a value cannot be transformed from storage. The updated behavior is consistent with all other operations that require transforming data from storage such as watch and get. ([#69399](https://github.com/kubernetes/kubernetes/pull/69399), [@mikedanese](https://github.com/mikedanese)) - -### SIG Auth - -- API Server can be configured to reject requests that cannot be audit-logged. ([#65763](https://github.com/kubernetes/kubernetes/pull/65763), [@x13n](https://github.com/x13n)) -- Go clients created from a kubeconfig that specifies a TokenFile now periodically reload the token from the specified file. ([#70606](https://github.com/kubernetes/kubernetes/pull/70606), [@mikedanese](https://github.com/mikedanese)) -- When `--rotate-server-certificates` is enabled, kubelet will no longer request a new certificate on startup if the current certificate on disk is satisfactory. ([#69991](https://github.com/kubernetes/kubernetes/pull/69991), [@agunnerson-ibm](https://github.com/agunnerson-ibm)) -- Added dynamic audit configuration api ([#67547](https://github.com/kubernetes/kubernetes/pull/67547), [@pbarker](https://github.com/pbarker)) -- Added ability to control primary GID of containers through Pod Spec and PodSecurityPolicy ([#67802](https://github.com/kubernetes/kubernetes/pull/67802), [@krmayankk](https://github.com/krmayankk)) -- kube-apiserver: the `NodeRestriction` admission plugin now prevents kubelets from modifying `Node` labels prefixed with `node-restriction.kubernetes.io/`. The `node-restriction.kubernetes.io/` label prefix is reserved for cluster administrators to use for labeling `Node` objects to target workloads to nodes in a way that kubelets cannot modify or spoof. ([#68267](https://github.com/kubernetes/kubernetes/pull/68267), [@liggitt](https://github.com/liggitt)) - -### SIG Autoscaling - -- Updated Cluster Autoscaler version to 1.13.0. See the [Release Notes](https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.13.0) for more information. ([#71513](https://github.com/kubernetes/kubernetes/pull/71513), [@losipiuk](https://github.com/losipiuk)) - -### SIG AWS - -- `service.beta.kubernetes.io/aws-load-balancer-internal` now supports true and false values, previously it only supported non-empty strings ([#69436](https://github.com/kubernetes/kubernetes/pull/69436), [@mcrute](https://github.com/mcrute)) -- Added `service.beta.kubernetes.io/aws-load-balancer-security-groups` annotation to set the security groups to the AWS ELB to be the only ones specified in the annotation in case this is present (does not add `0.0.0.0/0`). ([#62774](https://github.com/kubernetes/kubernetes/pull/62774), [@Raffo](https://github.com/Raffo)) - -### SIG Azure - -- Ensured orphan public IPs on Azure deleted when service recreated with the same name. ([#70463](https://github.com/kubernetes/kubernetes/pull/70463), [@feiskyer](https://github.com/feiskyer)) -- Improved Azure instance metadata handling by adding caches. ([#70353](https://github.com/kubernetes/kubernetes/pull/70353), [@feiskyer](https://github.com/feiskyer)) -- Corrected check for non-Azure managed nodes with the Azure cloud provider ([#70135](https://github.com/kubernetes/kubernetes/pull/70135), [@marc-sensenich](https://github.com/marc-sensenich)) -- Fixed azure disk attach/detach failed forever issue ([#71377](https://github.com/kubernetes/kubernetes/pull/71377), [@andyzhangx](https://github.com/andyzhangx)) -- DisksAreAttached --> getNodeDataDisks--> GetDataDisks --> getVirtualMachine --> vmCache.Get ([#71495](https://github.com/kubernetes/kubernetes/pull/71495), [@andyzhangx](https://github.com/andyzhangx)) - -### SIG CLI - -- `kubectl apply` can now change a deployment strategy from rollout to recreate without explicitly clearing the rollout-related fields ([#70436](https://github.com/kubernetes/kubernetes/pull/70436), [@liggitt](https://github.com/liggitt)) -- The `kubectl plugin list` command now displays discovered plugin paths in the same order as they are found in a user's PATH variable. ([#70443](https://github.com/kubernetes/kubernetes/pull/70443), [@juanvallejo](https://github.com/juanvallejo)) -- `kubectl get` no longer exits before printing all of its results if an error is found ([#70311](https://github.com/kubernetes/kubernetes/pull/70311), [@juanvallejo](https://github.com/juanvallejo)) -- Fixed a runtime error occurring when sorting the output of `kubectl get` with empty results ([#70740](https://github.com/kubernetes/kubernetes/pull/70740), [@mfpierre](https://github.com/mfpierre)) -- kubectl: support multiple arguments for cordon/uncordon and drain ([#68655](https://github.com/kubernetes/kubernetes/pull/68655), [@goodluckbot](https://github.com/goodluckbot)) -- Fixed ability for admin/edit/view users to see controller revisions, needed for kubectl rollout commands ([#70699](https://github.com/kubernetes/kubernetes/pull/70699), [@liggitt](https://github.com/liggitt)) -- `kubectl rollout undo` now returns errors when attempting to rollback a deployment to a non-existent revision ([#70039](https://github.com/kubernetes/kubernetes/pull/70039), [@liggitt](https://github.com/liggitt)) -- kubectl run now generates apps/v1 deployments by default ([#71006](https://github.com/kubernetes/kubernetes/pull/71006), [@liggitt](https://github.com/liggitt)) -- The "kubectl cp" command now supports path shortcuts (../) in remote paths. ([#65189](https://github.com/kubernetes/kubernetes/pull/65189), [@juanvallejo](https://github.com/juanvallejo)) -- Fixed dry-run output in kubectl apply --prune ([#69344](https://github.com/kubernetes/kubernetes/pull/69344), [@zegl](https://github.com/zegl)) -- The kubectl wait command must handle when a watch returns an error vs closing by printing out the error and retrying the watch. ([#69389](https://github.com/kubernetes/kubernetes/pull/69389), [@smarterclayton](https://github.com/smarterclayton)) -- kubectl: support multiple arguments for cordon/uncordon and drain ([#68655](https://github.com/kubernetes/kubernetes/pull/68655), [@goodluckbot](https://github.com/goodluckbot)) - -### SIG Cloud Provider - -- Added deprecation warning for all cloud providers ([#69171](https://github.com/kubernetes/kubernetes/pull/69171), [@andrewsykim](https://github.com/andrewsykim)) - -### SIG Cluster Lifecycle - -- kubeadm: Updates version of CoreDNS to 1.2.6 ([#70796](https://github.com/kubernetes/kubernetes/pull/70796), [@detiber](https://github.com/detiber)) -- kubeadm: Validate kubeconfig files in case of external CA mode. ([#70537](https://github.com/kubernetes/kubernetes/pull/70537), [@yagonobre](https://github.com/yagonobre)) -- kubeadm: The writable config file option for extra volumes is renamed to readOnly with a reversed meaning. With readOnly defaulted to false (as in pod specs). ([#70495](https://github.com/kubernetes/kubernetes/pull/70495), [@rosti](https://github.com/rosti)) -- kubeadm: Multiple API server endpoints support upon join is removed as it is now redundant. ([#69812](https://github.com/kubernetes/kubernetes/pull/69812), [@rosti](https://github.com/rosti)) -- `kubeadm reset` now cleans up custom etcd data path ([#70003](https://github.com/kubernetes/kubernetes/pull/70003), [@yagonobre](https://github.com/yagonobre)) -- kubeadm: Fixed unnecessary upgrades caused by undefined order of Volumes and VolumeMounts in manifests ([#70027](https://github.com/kubernetes/kubernetes/pull/70027), [@bart0sh](https://github.com/bart0sh)) -- kubeadm: Fixed node join taints. ([#69846](https://github.com/kubernetes/kubernetes/pull/69846), [@andrewrynhard](https://github.com/andrewrynhard)) -- Fixed cluster autoscaler addon permissions so it can access batch/job. ([#69858](https://github.com/kubernetes/kubernetes/pull/69858), [@losipiuk](https://github.com/losipiuk)) -- kubeadm: JoinConfiguration now houses the discovery options in a nested Discovery structure, which in turn has a couple of other nested structures to house more specific options (BootstrapTokenDiscovery and FileDiscovery) ([#67763](https://github.com/kubernetes/kubernetes/pull/67763), [@rosti](https://github.com/rosti)) -- kubeadm: Fixed a possible scenario where kubeadm can pull much newer control-plane images ([#69301](https://github.com/kubernetes/kubernetes/pull/69301), [@neolit123](https://github.com/neolit123)) -- kubeadm now allows mixing of init/cluster and join configuration in a single YAML file (although a warning gets printed in this case). ([#69426](https://github.com/kubernetes/kubernetes/pull/69426), [@rosti](https://github.com/rosti)) -- kubeadm: Added a `v1beta1` API. ([#69289](https://github.com/kubernetes/kubernetes/pull/69289), [@fabriziopandini](https://github.com/fabriziopandini)) -- kubeadm init correctly uses `--node-name` and `--cri-socket` when `--config` option is also used ([#71323](https://github.com/kubernetes/kubernetes/pull/71323), [@bart0sh](https://github.com/bart0sh)) -- kubeadm: Always pass spec.nodeName as `--hostname-override` for kube-proxy ([#71283](https://github.com/kubernetes/kubernetes/pull/71283), [@Klaven](https://github.com/Klaven)) -- `kubeadm join` correctly uses `--node-name` and `--cri-socket` when `--config` option is also used ([#71270](https://github.com/kubernetes/kubernetes/pull/71270), [@bart0sh](https://github.com/bart0sh)) -- kubeadm now supports the `--image-repository` flag for customizing what registry to pull images from ([#71135](https://github.com/kubernetes/kubernetes/pull/71135), [@luxas](https://github.com/luxas)) -- kubeadm: The writable config file option for extra volumes is renamed to readOnly with a reversed meaning. With readOnly defaulted to false (as in pod specs). ([#70495](https://github.com/kubernetes/kubernetes/pull/70495), [@rosti](https://github.com/rosti)) -- kubeadm: Multiple API server endpoints support upon join is removed as it is now redundant. ([#69812](https://github.com/kubernetes/kubernetes/pull/69812), [@rosti](https://github.com/rosti)) -- kubeadm: JoinConfiguration now houses the discovery options in a nested Discovery structure, which in turn has a couple of other nested structures to house more specific options (BootstrapTokenDiscovery and FileDiscovery) ([#67763](https://github.com/kubernetes/kubernetes/pull/67763), [@rosti](https://github.com/rosti)) -- kubeadm: Added a `v1beta1` API. ([#69289](https://github.com/kubernetes/kubernetes/pull/69289), [@fabriziopandini](https://github.com/fabriziopandini)) -- kubeadm: Use `advertise-client-urls` instead of `listen-client-urls` as and `etcd-servers` options for apiserver. ([#69827](https://github.com/kubernetes/kubernetes/pull/69827), [@tomkukral](https://github.com/tomkukral)) -- Kubeadm now respects the custom image registry configuration across joins and upgrades. Kubeadm passes the custom registry to the kubelet for a custom pause container. ([#70603](https://github.com/kubernetes/kubernetes/pull/70603), [@chuckha](https://github.com/chuckha)) -- `kubeadm reset` now outputs instructions about manual iptables rules cleanup. ([#70874](https://github.com/kubernetes/kubernetes/pull/70874), [@rdodev](https://github.com/rdodev)) -- kubeadm: remove the AuditPolicyConfiguration feature gate ([#70807](https://github.com/kubernetes/kubernetes/pull/70807), [@Klaven](https://github.com/Klaven)) -- kubeadm pre-pulls Etcd image only if external Etcd is not used and ([#70743](https://github.com/kubernetes/kubernetes/pull/70743), [@bart0sh](https://github.com/bart0sh)) -- kubeadm: UnifiedControlPlaneImage is replaced by UseHyperKubeImage boolean value. ([#70793](https://github.com/kubernetes/kubernetes/pull/70793), [@rosti](https://github.com/rosti)) -- For kube-up and derived configurations, CoreDNS will honor master taints, for consistency with kube-dns behavior. ([#70868](https://github.com/kubernetes/kubernetes/pull/70868), [@justinsb](https://github.com/justinsb)) -- Recognize newer docker versions without -ce/-ee suffix: 18.09.0 ([#71001](https://github.com/kubernetes/kubernetes/pull/71001), [@thomas-riccardi](https://github.com/thomas-riccardi)) -- Any external provider should be aware the cloud-provider interface should be imported from :- ([#68310](https://github.com/kubernetes/kubernetes/pull/68310), [@cheftako](https://github.com/cheftako)) -- Fixed 'kubeadm upgrade' infinite loop waiting for pod restart ([#69886](https://github.com/kubernetes/kubernetes/pull/69886), [@bart0sh](https://github.com/bart0sh)) -- Bumped addon-manager to v8.8 ([#69337](https://github.com/kubernetes/kubernetes/pull/69337), [@MrHohn](https://github.com/MrHohn)) -- GCE: Filter out spammy audit logs from cluster autoscaler. ([#70696](https://github.com/kubernetes/kubernetes/pull/70696), [@loburm](https://github.com/loburm)) -- GCE: Enable by default audit logging truncating backend. ([#68288](https://github.com/kubernetes/kubernetes/pull/68288), [@loburm](https://github.com/loburm)) -- Bumped cluster-proportional-autoscaler to 1.3.0 ([#69338](https://github.com/kubernetes/kubernetes/pull/69338), [@MrHohn](https://github.com/MrHohn)) -- Updated defaultbackend to v1.5 ([#69334](https://github.com/kubernetes/kubernetes/pull/69334), [@bowei](https://github.com/bowei)) - -### SIG GCP - -- Added tolerations for Stackdriver Logging and Metadata Agents. ([#69737](https://github.com/kubernetes/kubernetes/pull/69737), [@qingling128](https://github.com/qingling128)) -- Enabled insertId generation, and updated Stackdriver Logging Agent image to 0.5-1.5.36-1-k8s. This help reduce log duplication and guarantee log order. ([#68920](https://github.com/kubernetes/kubernetes/pull/68920), [@qingling128](https://github.com/qingling128)) -- Updated crictl to v1.12.0 ([#69033](https://github.com/kubernetes/kubernetes/pull/69033), [@feiskyer](https://github.com/feiskyer)) - -### SIG Network - -- Corrected family type (inet6) for ipsets in ipv6-only clusters ([#68436](https://github.com/kubernetes/kubernetes/pull/68436), [@uablrek](https://github.com/uablrek)) -- kube-proxy argument `hostname-override` can be used to override hostname defined in the configuration file ([#69340](https://github.com/kubernetes/kubernetes/pull/69340), [@stevesloka](https://github.com/stevesloka)) -- CoreDNS correctly implements DNS spec for Services with externalNames that look like IP addresses. Kube-dns does not follow the spec for the same case, resulting in a behavior change when moving from Kube-dns to CoreDNS. See: [coredns/coredns#2324](https://github.com/coredns/coredns/issues/2324) -- IPVS proxier now set net/ipv4/vs/conn_reuse_mode to 0 by default, which will highly improve IPVS proxier performance. ([#71114](https://github.com/kubernetes/kubernetes/pull/71114), [@Lion-Wei](https://github.com/Lion-Wei)) -- CoreDNS is now version 1.2.6 ([#70799](https://github.com/kubernetes/kubernetes/pull/70799), [@rajansandeep](https://github.com/rajansandeep)) -- Addon configuration is introduced in the kubeadm config API, while feature flag CoreDNS is now deprecated. ([#70024](https://github.com/kubernetes/kubernetes/pull/70024), [@fabriziopandini](https://github.com/fabriziopandini)) - -### SIG Node - -- Fixed a bug in previous releases where a pod could be placed inside another pod's cgroup when specifying --cgroup-root ([#70678](https://github.com/kubernetes/kubernetes/pull/70678), [@dashpole](https://github.com/dashpole)) -- Optimized calculating stats when only CPU and Memory stats are returned from Kubelet stats/summary http endpoint. ([#68841](https://github.com/kubernetes/kubernetes/pull/68841), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) -- kubelet now supports `log-file` option to write logs directly to a specific file ([#70917](https://github.com/kubernetes/kubernetes/pull/70917), [@dims](https://github.com/dims)) -- Do not detach volume if mount in progress ([#71145](https://github.com/kubernetes/kubernetes/pull/71145), [@gnufied](https://github.com/gnufied)) -- The runtimeHandler field on the RuntimeClass resource now accepts the empty string. ([#69550](https://github.com/kubernetes/kubernetes/pull/69550), [@tallclair](https://github.com/tallclair)) -- kube-apiserver: fixes `procMount` field incorrectly being marked as required in openapi schema ([#69694](https://github.com/kubernetes/kubernetes/pull/69694), [@jessfraz](https://github.com/jessfraz)) - -### SIG OpenStack - -- Fixed cloud-controller-manager crash when using OpenStack provider and PersistentVolume initializing controller ([#70459](https://github.com/kubernetes/kubernetes/pull/70459), [@mvladev](https://github.com/mvladev)) - -### SIG Release - -- Use debian-base instead of busybox as base image for server images ([#70245](https://github.com/kubernetes/kubernetes/pull/70245), [@ixdy](https://github.com/ixdy)) -- Images for cloud-controller-manager, kube-apiserver, kube-controller-manager, and kube-scheduler now contain a minimal /etc/nsswitch.conf and should respect /etc/hosts for lookups ([#69238](https://github.com/kubernetes/kubernetes/pull/69238), [@BenTheElder](https://github.com/BenTheElder)) - -### SIG Scheduling - -- Added metrics for volume scheduling operations ([#59529](https://github.com/kubernetes/kubernetes/pull/59529), [@wackxu](https://github.com/wackxu)) -- Improved memory use and performance when processing large numbers of pods containing tolerations ([#65350](https://github.com/kubernetes/kubernetes/pull/65350), [@liggitt](https://github.com/liggitt)) -- Fixed a bug in the scheduler that could cause the scheduler to go to an infinite loop when all nodes in a zone are removed. ([#69758](https://github.com/kubernetes/kubernetes/pull/69758), [@bsalamat](https://github.com/bsalamat)) -- Clear pod binding cache on bind error to make sure stale pod binding cache will not be used. ([#71212](https://github.com/kubernetes/kubernetes/pull/71212), [@cofyc](https://github.com/cofyc)) -- Fixed a scheduler panic due to internal cache inconsistency ([#71063](https://github.com/kubernetes/kubernetes/pull/71063), [@Huang-Wei](https://github.com/Huang-Wei)) -- Report kube-scheduler unhealthy if leader election is deadlocked. ([#71085](https://github.com/kubernetes/kubernetes/pull/71085), [@bsalamat](https://github.com/bsalamat)) -- Fixed a potential bug that scheduler preempts unnecessary pods. ([#70898](https://github.com/kubernetes/kubernetes/pull/70898), [@Huang-Wei](https://github.com/Huang-Wei)) - -### SIG Storage - -- Fixed CSI volume limits not showing up in node's capacity and allocatable ([#70540](https://github.com/kubernetes/kubernetes/pull/70540), [@gnufied](https://github.com/gnufied)) -- CSI drivers now have access to mountOptions defined on the storage class when attaching volumes. ([#67898](https://github.com/kubernetes/kubernetes/pull/67898), [@bswartz](https://github.com/bswartz)) -- change default azure file mount permission to 0777 ([#69854](https://github.com/kubernetes/kubernetes/pull/69854), [@andyzhangx](https://github.com/andyzhangx)) -- Fixed subpath in containerized kubelet. ([#69565](https://github.com/kubernetes/kubernetes/pull/69565), [@jsafrane](https://github.com/jsafrane)) -- Fixed panic on iSCSI volume tear down. ([#69140](https://github.com/kubernetes/kubernetes/pull/69140), [@jsafrane](https://github.com/jsafrane)) -- CSIPersistentVolume feature, i.e. PersistentVolumes with CSIPersistentVolumeSource, is GA. ([#69929](https://github.com/kubernetes/kubernetes/pull/69929), [@jsafrane](https://github.com/jsafrane)) -- Fixed CSIDriver API object to allow missing fields. ([#69331](https://github.com/kubernetes/kubernetes/pull/69331), [@jsafrane](https://github.com/jsafrane)) -- Flex volume plugins now support expandvolume (to increase underlying volume capacity) and expanfs (resize filesystem) commands that Flex plugin authors can implement to support expanding in use Flex PersistentVolumes ([#67851](https://github.com/kubernetes/kubernetes/pull/67851), [@aniket-s-kulkarni](https://github.com/aniket-s-kulkarni)) -- Enabled AttachVolumeLimit feature ([#69225](https://github.com/kubernetes/kubernetes/pull/69225), [@gnufied](https://github.com/gnufied)) -- The default storage class annotation for the storage addons has been changed to use the GA variant ([#68345](https://github.com/kubernetes/kubernetes/pull/68345), [@smelchior](https://github.com/smelchior)) -- GlusterFS PersistentVolumes sources can now reference endpoints in any namespace using the `spec.glusterfs.endpointsNamespace` field. Ensure all kubelets are upgraded to 1.13+ before using this capability. ([#60195](https://github.com/kubernetes/kubernetes/pull/60195), [@humblec](https://github.com/humblec)) -- Fixed GetVolumeLimits log flushing issue ([#69558](https://github.com/kubernetes/kubernetes/pull/69558), [@andyzhangx](https://github.com/andyzhangx)) -- The `MountPropagation` feature is unconditionally enabled in v1.13, and can no longer be disabled. ([#68230](https://github.com/kubernetes/kubernetes/pull/68230), [@bertinatto](https://github.com/bertinatto)) - -### SIG Windows - -- `kubelet --system-reserved` and `--kube-reserved` are supported now on Windows nodes ([#69960](https://github.com/kubernetes/kubernetes/pull/69960), [@feiskyer](https://github.com/feiskyer)) -- Windows runtime endpoints is now switched to `npipe:////./pipe/dockershim` from `tcp://localhost:3735`. ([#69516](https://github.com/kubernetes/kubernetes/pull/69516), [@feiskyer](https://github.com/feiskyer)) -- Fixed service issues with named targetPort for Windows ([#70076](https://github.com/kubernetes/kubernetes/pull/70076), [@feiskyer](https://github.com/feiskyer)) -- Handle Windows named pipes in host mounts. ([#69484](https://github.com/kubernetes/kubernetes/pull/69484), [@ddebroy](https://github.com/ddebroy)) -- Fixed inconsistency in windows kernel proxy when updating HNS policy. ([#68923](https://github.com/kubernetes/kubernetes/pull/68923), [@delulu](https://github.com/delulu)) - -## External Dependencies - -- Default etcd server is unchanged at v3.2.24 since Kubernetes 1.12. ([#68318](https://github.com/kubernetes/kubernetes/pull/68318)) -- The list of validated docker versions remain unchanged at 1.11.1, 1.12.1, 1.13.1, 17.03, 17.06, 17.09, 18.06 since Kubernetes 1.12. ([#68495](https://github.com/kubernetes/kubernetes/pull/68495)) -- The default Go version was updated to 1.11.2. ([#70665](https://github.com/kubernetes/kubernetes/pull/70665)) -- The minimum supported Go version was updated to 1.11.2 ([#69386](https://github.com/kubernetes/kubernetes/pull/69386)) -- CNI is unchanged at v0.6.0 since Kubernetes 1.10 ([#51250](https://github.com/kubernetes/kubernetes/pull/51250)) -- CSI is updated to 1.0.0. Pre-1.0.0 API support is now deprecated. ([#71020](https://github.com/kubernetes/kubernetes/pull/71020)]) -- The dashboard add-on has been updated to v1.10.0. ([#68450](https://github.com/kubernetes/kubernetes/pull/68450)) -- Heapster remains at v1.6.0-beta, but is now retired in Kubernetes 1.13 ([#67074](https://github.com/kubernetes/kubernetes/pull/67074)) -- Cluster Autoscaler has been upgraded to v1.13.0 ([#71513](https://github.com/kubernetes/kubernetes/pull/71513)) -- kube-dns is unchanged at v1.14.13 since Kubernetes 1.12 ([#68900](https://github.com/kubernetes/kubernetes/pull/68900)) -- Influxdb is unchanged at v1.3.3 since Kubernetes 1.10 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) -- Grafana is unchanged at v4.4.3 since Kubernetes 1.10 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) -- Kibana has been upgraded to v6.3.2. ([#67582](https://github.com/kubernetes/kubernetes/pull/67582)) -- CAdvisor has been updated to v0.32.0 ([#70964](https://github.com/kubernetes/kubernetes/pull/70964)) -- fluentd-gcp-scaler has been updated to v0.5.0 ([#68837](https://github.com/kubernetes/kubernetes/pull/68837)) -- Fluentd in fluentd-elasticsearch is unchanged at v1.2.4 since Kubernetes 1.11 ([#67434](https://github.com/kubernetes/kubernetes/pull/67434)) -- fluentd-elasticsearch has been updated to v2.2.1 ([#68012](https://github.com/kubernetes/kubernetes/pull/68012)) -- The fluent-plugin-kubernetes_metadata_filter plugin in fluentd-elasticsearch is unchanged at 2.0.0 since Kubernetes 1.12 ([#67544](https://github.com/kubernetes/kubernetes/pull/67544)) -- fluentd-gcp has been updated to v3.2.0 ([#70954](https://github.com/kubernetes/kubernetes/pull/70954)) -- OIDC authentication is unchanged at coreos/go-oidc v2 since Kubernetes 1.10 ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) -- Calico was updated to v3.3.1 ([#70932](https://github.com/kubernetes/kubernetes/pull/70932)) -- Upgraded crictl on GCE to v1.12.0 ([#69033](https://github.com/kubernetes/kubernetes/pull/69033)) -- CoreDNS has been updated to v1.2.6 ([#70799](https://github.com/kubernetes/kubernetes/pull/70799)) -- event-exporter has been updated to v0.2.3 ([#67691](https://github.com/kubernetes/kubernetes/pull/67691)) -- Es-image remains unchanged at Elasticsearch 6.3.2 since Kubernetes 1.12 ([#67484](https://github.com/kubernetes/kubernetes/pull/67484)) -- metrics-server remains unchanged at v0.3.1 since Kubernetes 1.12 ([#68746](https://github.com/kubernetes/kubernetes/pull/68746)) -- GLBC remains unchanged at v1.2.3 since Kubernetes 1.12 ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) -- Ingress-gce remains unchanged at v1.2.3 since Kubernetes 1.12 ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) -- ip-masq-agen remains unchanged at v2.1.1 since Kubernetes 1.12 ([#67916](https://github.com/kubernetes/kubernetes/pull/67916)) +# Kubernetes 1.13 Release Notes + +## Security Content + +- CVE-2018-1002105, a critical security issue in the Kubernetes API Server, is resolved in v1.13.0 (and in [v1.10.11](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.10.md/#v11011), [v1.11.5](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.11.md/#v1115), and [v1.12.3](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.12.md/#v1123)). We recommend all clusters running previous versions update to one of these releases immediately. See issue [#71411](https://github.com/kubernetes/kubernetes/issues/71411) for details. + +## Urgent Upgrade Notes + +### (No, really, you MUST do this before you upgrade) + +Before upgrading to Kubernetes 1.13, you must keep the following in mind: + +- kube-apiserver + - The deprecated `etcd2` storage backend has been removed. Before upgrading a kube-apiserver using `--storage-backend=etcd2`, etcd v2 data must be migrated to the v3 storage backend, and kube-apiserver invocations changed to use `--storage-backend=etcd3`. Please consult the installation procedure used to set up etcd for specific migration instructions. Backups prior to upgrade are always a good practice, but since the etcd2 to etcd3 migration is not reversible, an etcd backup prior to migration is essential. + - The deprecated `--etcd-quorum-read` flag has been removed. Quorum reads are now always enabled when fetching data from etcd. Remove the `--etcd-quorum-read` flag from kube-apiserver invocations before upgrading. +- kube-controller-manager + - The deprecated `--insecure-experimental-approve-all-kubelet-csrs-for-group` flag has been removed. +- kubelet + - The deprecated `--google-json-key` flag has been removed. Remove the `--google-json-key` flag from kubelet invocations before upgrading. ([#69354](https://github.com/kubernetes/kubernetes/pull/69354), [@yujuhong](https://github.com/yujuhong)) + - DaemonSet pods now make use of scheduling features that require kubelets to be at 1.11 or above. Ensure all kubelets in the cluster are at 1.11 or above before upgrading kube-controller-manager to 1.13. + - The schema for the alpha `CSINodeInfo` CRD has been split into `spec` and `status` fields, and new fields `status.available` and `status.volumePluginMechanism` added. Clusters using the previous alpha schema must delete and recreate the CRD using the new schema. ([#70515](https://github.com/kubernetes/kubernetes/pull/70515), [@davidz627](https://github.com/davidz627)) +- kube-scheduler dropped support for configuration files with apiVersion `componentconfig/v1alpha1`. Ensure kube-scheduler is configured using command-line flags or a configuration file with apiVersion `kubescheduler.config.k8s.io/v1alpha1` before upgrading to 1.13. +- kubectl + - The deprecated command `run-container` has been removed. Invocations should use `kubectl run` instead ([#70728](https://github.com/kubernetes/kubernetes/pull/70728), [@Pingan2017](https://github.com/Pingan2017)) +- client-go releases will no longer have bootstrap (k8s.io/client-go/tools/bootstrap) related code. Any reference to it will break. Please redirect all references to k8s.io/bootstrap instead. ([#67356](https://github.com/kubernetes/kubernetes/pull/67356), [@yliaog](https://github.com/yliaog)) +- Kubernetes cannot distinguish between GCE Zonal PDs and Regional PDs with the same name. To workaround this issue, precreate PDs with unique names. PDs that are dynamically provisioned do not encounter this issue. ([#70716](https://github.com/kubernetes/kubernetes/pull/70716), [@msau42](https://github.com/msau42)) + +## Known Issues + +- If kubelet plugin registration for a driver fails, kubelet will not retry. The driver must delete and recreate the driver registration socket in order to force kubelet to attempt registration again. Restarting only the driver container may not be sufficient to trigger recreation of the socket, instead a pod restart may be required. ([#71487](https://github.com/kubernetes/kubernetes/issues/71487)) +- In some cases, a Flex volume resize may leave a PVC with erroneous Resizing condition even after volume has been successfully expanded. Users may choose to delete the condition, but it is not required. ([#71470](https://github.com/kubernetes/kubernetes/issues/71470)) +- The CSI driver-registrar external sidecar container v1.0.0-rc2 is known to take up to 1 minute to start in some cases. We expect this issue to be resolved in a future release of the sidecar container. For verification, please see the release notes of future releases of the external sidecar container. ([#76](https://github.com/kubernetes-csi/driver-registrar/issues/76)) +- When using IPV6-only, be sure to use `proxy-mode=iptables` as `proxy-mode=ipvs` is known to not work. ([#68437](https://github.com/kubernetes/kubernetes/issues/68437)) + +## Deprecations + +- kube-apiserver + - The `--service-account-api-audiences` flag is deprecated in favor of `--api-audiences`. The old flag is accepted with a warning but will be removed in a future release. ([#70105](https://github.com/kubernetes/kubernetes/pull/70105), [@mikedanese](https://github.com/mikedanese)) + - The `--experimental-encryption-provider-config` flag is deprecated in favor of `--encryption-provider-config`. The old flag is accepted with a warning but will be removed in 1.14. ([#71206](https://github.com/kubernetes/kubernetes/pull/71206), [@stlaz](https://github.com/stlaz)) + - As part of graduating the etcd encryption feature to beta, the configuration file referenced by `--encryption-provider-config` now uses `kind: EncryptionConfiguration` and `apiVersion: apiserver.config.k8s.io/v1`. Support for `kind: EncryptionConfig` and `apiVersion: v1` is deprecated and will be removed in a future release. ([#67383](https://github.com/kubernetes/kubernetes/pull/67383), [@stlaz](https://github.com/stlaz)) + - The `--deserialization-cache-size` flag is deprecated, and will be removed in a future release. The flag is inactive since the etcd2 storage backend was removed. ([#69842](https://github.com/kubernetes/kubernetes/pull/69842), [@liggitt](https://github.com/liggitt)) + - The `Node` authorization mode no longer allows kubelets to delete their Node API objects (prior to 1.11, in rare circumstances related to cloudprovider node ID changes, kubelets would attempt to delete/recreate their Node object at startup) ([#71021](https://github.com/kubernetes/kubernetes/pull/71021), [@liggitt](https://github.com/liggitt)) + - The built-in `system:csi-external-provisioner` and `system:csi-external-attacher` cluster roles are deprecated and will not be auto-created in a future release. CSI deployments should provide their own RBAC role definitions with required permissions. ([#69868](https://github.com/kubernetes/kubernetes/pull/69868), [@pohly]( https://github.com/pohly)) + - The built-in `system:aws-cloud-provider` cluster role is deprecated and will not be auto-created in a future release. Deployments using the AWS cloud provider should grant required permissions to the `aws-cloud-provider` service account in the `kube-system` namespace as part of deployment. ([#66635](https://github.com/kubernetes/kubernetes/pull/66635), [@wgliang](https://github.com/wgliang)) +- kubelet + - Use of the beta plugin registration directory `{kubelet_root_dir}/plugins/` for registration of external drivers via the kubelet plugin registration protocol is deprecated in favor of `{kubelet_root_dir}/plugins_registry/`. Support for the old directory is planned to be removed in v1.15. Device plugin and CSI storage drivers should switch to the new directory prior to v1.15. Only CSI storage drivers that support 0.x versions of the CSI API are allowed in the old directory. ([#70494](https://github.com/kubernetes/kubernetes/pull/70494) by [@RenaudWasTaken](https://github.com/RenaudWasTaken) and [#71314](https://github.com/kubernetes/kubernetes/pull/71314) by [@saad-ali](https://github.com/saad-ali)) + - With the release of the CSI 1.0 API, support for CSI drivers using 0.3 and older releases of the CSI API is deprecated, and is planned to be removed in Kubernetes v1.15. CSI drivers should be updated to support the CSI 1.0 API, and deployed in the new kubelet plugin registration directory (`{kubelet_root_dir}/plugins_registry/`) once all nodes in the cluster are at 1.13 or higher ([#71020](https://github.com/kubernetes/kubernetes/pull/71020) and [#71314](https://github.com/kubernetes/kubernetes/pull/71314), both by [@saad-ali](https://github.com/saad-ali)) + - Use of the `--node-labels` flag to set labels under the `kubernetes.io/` and `k8s.io/` prefix will be subject to restriction by the `NodeRestriction` admission plugin in future releases. [See admission plugin documentation](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction) for allowed labels. ([#68267](https://github.com/kubernetes/kubernetes/pull/68267), [@liggitt](https://github.com/liggitt)) +- kube-scheduler + - The alpha critical pod annotation (`scheduler.alpha.kubernetes.io/critical-pod`) is deprecated. Pod priority should be used instead to mark pods as critical. ([#70298](https://github.com/kubernetes/kubernetes/pull/70298), [@bsalamat](https://github.com/bsalamat)) +- The following features are now GA, and the associated feature gates are deprecated and will be removed in a future release: + - CSIPersistentVolume + - GCERegionalPersistentDisk + - KubeletPluginsWatcher + - VolumeScheduling +- kubeadm + - The DynamicKubeletConfig feature gate is deprecated. The functionality is still accessible by using the kubeadm alpha kubelet enable-dynamic command. + - The command `kubeadm config print-defaults` is deprecated in favor of `kubeadm config print init-defaults` and `kubeadm config print join-defaults` ([#69617](https://github.com/kubernetes/kubernetes/pull/69617), [@rosti](https://github.com/rosti)) + - support for the `v1alpha3` configuration file format is deprecated and will be removed in 1.14. Use `kubeadm config migrate` to migrate `v1alpha3` configuration files to `v1beta1`, which provides improvements in image repository management, addons configuration, and other areas. The documentation for `v1beta1` can be found here: https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1 +- The `node.status.volumes.attached.devicePath` field is deprecated for CSI volumes and will not be set in future releases ([#71095](https://github.com/kubernetes/kubernetes/pull/71095), [@msau42](https://github.com/msau42)) +- kubectl + - The `kubectl convert` command is deprecated and will be removed in a future release ([#70820](https://github.com/kubernetes/kubernetes/pull/70820), [@seans3](https://github.com/seans3)) +- Support for passing unknown provider names to the E2E test binaries is deprecated and will be removed in a future release. Use `--provider=skeleton` (no ssh access) or `--provider=local` (local cluster with ssh) instead. ([#70141](https://github.com/kubernetes/kubernetes/pull/70141), [@pohly](https://github.com/pohly)) + +## Major Themes + +### SIG API Machinery + +For the 1.13 release, SIG API Machinery is happy to announce that the [dry-run functionality](https://kubernetes.io//docs/reference/using-api/api-concepts/#dry-run) is now beta. + +### SIG Auth + +With this release we've made several important enhancements to core SIG Auth areas. In the authorization category, we've further reduced Kubelet privileges by [restricting node self-updates of labels to a whitelisted selection and by disallowing kubelets from deleting their Node API object](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#noderestriction). In authentication, we added alpha-level support for automounting improved service account tokens through projected volumes. We also enabled [audience validation in TokenReview](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.13/#tokenreview-v1-authentication-k8s-io) for the new tokens for improved scoping. Under audit logging, the new alpha-level "dynamic audit configuration" adds support for [dynamically registering webhooks to receive a stream of audit events](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#dynamic-backend). Finally, we've enhanced secrets protection by graduating [etcd encryption](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/) out of experimental. + +### SIG AWS + +In v1.13 we worked on tighter integrations of Kubernetes API objects with AWS services. These include three out-of-tree alpha feature releases: + +1) Alpha for AWS ALB (Application Load Balancer) integration to Kubernetes Ingress resources. +2) Alpha for CSI specification 0.3 integration to AWS EBS (Elastic Block Store) +3) Alpha for the cloudprovider-aws cloud controller manager binary. Additionally we added [aws-k8s-tester](https://github.com/kubernetes/test-infra/issues/9814), deployer interface for kubetest, to the test-infra repository. This plugin allowed us to integrate Prow to the 3 subprojects defined above in order to provide CI signal for all 3 features. The CI signal is visible [here](https://testgrid.k8s.io/) under SIG-AWS. + +For detailed release notes on the three alpha features from SIG AWS, please refer to the following Changelogs: + +- [aws-alb-ingress-controller v1.0.0](https://github.com/kubernetes-sigs/aws-alb-ingress-controller/releases/tag/v1.0.0) +- [aws-ebs-csi-driver v0.1](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/CHANGELOG-0.x.md#v010) +- [cloudprovider-aws external v0.1.0] (https://github.com/kubernetes/cloud-provider-aws/blob/master/changelogs/CHANGELOG-0.1.md) + +### SIG Azure + +For 1.13 SIG Azure was focused on adding additional Azure Disk support for Ultra SSD, Standard SSD, and Premium Azure Files. Azure Availability Zones and cross resource group nodes were also moved from Alpha to Beta in 1.13. + +### SIG Big Data + +During the 1.13 release cycle, SIG Big Data has been focused on community engagements relating to 3rd-party project integrations with Kubernetes. There have been no impacts on the 1.13 release. + +### SIG CLI + +Over the course of 1.13 release SIG CLI mostly focused on stabilizing the items we’ve been working on over the past releases such as server-side printing and its support in kubectl, as well as finishing [kubectl diff which is based on server-side dry-run feature](https://kubernetes.io/docs/concepts/overview/object-management-kubectl/#how-to-create-objects). We’ve continued separating kubectl code to prepare for extraction out of main repository. Finally, thanks to the awesome support and feedback from community we’ve managed to promote the new [plugin mechanism to Beta](https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/). + +### SIG Cloud Provider + +For v1.13, SIG Cloud Provider has been focused on stabilizing the common APIs and interfaces consumed by cloud providers today. This involved auditing the cloud provider APIs for anything that should be deprecated as well as adding changes where necessary. In addition, SIG Cloud Provider has begun exploratory work around having a “cloud provider” e2e test suite which can be used to test common cloud provider functionalities with resources such as nodes and load balancers. + +We are also continuing our long running effort to extract all the existing cloud providers that live in k8s.io/kubernetes into their own respective repos. Along with this migration, we are slowly transitioning users to use the cloud-controller-manager for any cloud provider features instead of the kube-controller-manager. + +### SIG Cluster Lifecycle + +For 1.13 SIG Cluster Lifecycle is pleased to announce the long awaited promotion of kubeadm to stable GA, and the promotion of kubeadm’s configuration API to `v1beta1`. +In this release the SIG again focused on further improving the user experience on cluster creation and also fixing a number of bugs and other assorted improvements. + +Some notable changes in kubeadm since Kubernetes 1.12: + +- kubeadm’s configuration API is now `v1beta1`. The new configuration format provides improvements in - image repository management, addons configuration, and other areas. We encourage `v1alpha3` users to migrate to this configuration API using `kubeadm config migrate`, as `v1alpha3` will be removed in 1.14. The documentation for `v1beta1` can be found here: https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta1 +- kubeadm has graduated `kubeadm alpha phase` commands to `kubeadm init phase`. This means that the phases of creating a control-plane node are now tightly integrated as part of the `init` command. Alpha features, not yet ready for GA are still kept under `kubeadm alpha` and we appreciate feedback on them. +- `kubeadm init` and `kubeadm init phase` now have a `--image-repository` flag, improving support for environments with limited access to official kubernetes repository. +- The DynamicKubeletConfig and SelfHosting functionality was moved outside of `kubeadm init` and feature gates and is now exposed under `kubeadm alpha`. +- Kubeadm init phase certs now support the `--csr-only` option, simplifying custom CA creation. +- `kubeadm join --experimental-control-plane` now automatically adds a new etcd member for `local etcd` mode, further simplifying required tasks for HA clusters setup. +- Improvements were made to `kubeadm reset` related to cleaning etcd and notifying the user about the state of iptables. +- kubeadm commands now print warnings if input YAML documents contain unknown or duplicate fields. +- kubeadm now properly recognizes Docker 18.09.0 and newer, but still treats 18.06 as the default supported version. +- kubeadm now automatically sets the `--pod-infra-container-image` flag when starting the kubelet. + +### SIG IBM Cloud + +The IBM Cloud SIG was focused on defining its charter and working towards moving its cloud provider code to an external repository with a goal to have this work done by the end of Kubernetes 1.14 release cycle. In the SIG meetings, we also made sure to share updates on the latest Kubernetes developments in the IBM Cloud like the availability of Kubernetes v1.12.2 in the IBM Cloud Kubernetes Service (IKS). The SIG updates were provided in the Kubernetes community weekly call and at the KubeCon China 2018. + +### SIG Multicluster + +Moving Federation v2 from Alpha towards Beta has been the focus of our effort over the past quarter. To this end we engaged with end users, and successfully enlisted additional contributors from companies including IBM, Amadeus, Cisco and others. Federation v2 provides a suite of decoupled API’s and re-usable components for building multi-cluster control planes. We plan to start releasing Beta components in late 2018. In addition, more minor updates were made to our cluster-registry and multi-cluster ingress sub-projects. + +### SIG Network + +For 1.13, the areas of focus were in IPv6, DNS improvements and some smaller items: +CoreDNS is now the default cluster DNS passing all of the scale/resource usage tests +Node-local DNS cache feature is available in Alpha. This feature deploys a lightweight DNS caching Daemonset that avoids the conntrack and converts queries from UDP to more reliable TCP. +PodReady++ feature now has `kubectl` CLI support. + +Progress was made towards finalizing the IPv6 dual stack support KEP and support for topological routing of services. + +### SIG Node + +SIG Node focused on stability and performance improvements in the 1.13 release. A new alpha feature is introduced to improve the mechanism that nodes heartbeat back to the control plane. The `NodeLease` feature results in the node using a `Lease` resource in the `kube-node-lease` namespace that is renewed periodically. The `NodeStatus` that was used previously to heartbeat back to the control plane is only updated when it changes. This reduces load on the control plane for large clusters. The Kubelet plugin registration mechanism, which enables automatic discovery of external plugins (including CSI and device plugins) has been promoted to stable in this release (introduced as alpha in 1.11 and promoted to beta in 1.12). + +### SIG Openstack + +The major theme for the SIG OpenStack release is the work-in-progress for removing the in-tree provider. This work, being done in conjunction with SIG Cloud Provider, is focusing on moving internal APIs that the OpenStack (and other providers) depends upon to staging to guarantee API stability. This work also included abstracting the in-tree Cinder API and refactoring code to the external Cinder provider to remove additional Cinder volume provider code. + +Additional work was also done to implement an OpenStack driver for the Cluster API effort lead by SIG Cluster Lifecycle. For the external Cloud-Provider-OpenStack code, the SIG largely focused on bug fixes and updates to match K8s 1.13 development. + +### SIG Scalability + +SIG Scalability has mostly focused on stability and deflaking our tests, investing into framework for writing scalability tests (ClusterLoader v2) with a goal to migrate all tests to it by the end of 2018 and on the work towards extending definition of Kubernetes scalability by providing more/better user-friendly SLIs/SLOs. + +### SIG Scheduling + +SIG Scheduling has mostly focused on stability in 1.13 and has postponed some of the major features to the next versions. There are still two notable changes: 1. TaintBasedEviction is moved to Beta and will be enabled by default. With this feature enabled, condition taints are automatically added to the nodes and pods can add tolerations for them if needed. 2. Pod critical annotation is deprecated. Pods should use pod priority instead of the annotation. + +It is worth noting again that kube-scheduler will use apiVersion `kubescheduler.config.k8s.io/v1alpha1` instead of `componentconfig/v1alpha1` in its configuration files in 1.13. + +### SIG Service Catalog + +The Service Plan Defaults feature is still under active development. +We continue to improve the UX for the svcat CLI, specifically filling in gaps for the new Namespaced Service Broker feature. + +### SIG Storage + +Over the last year, SIG Storage has been focused on adding support for the Container Storage Interface (CSI) to Kubernetes. The specification recently moved to 1.0, and on the heels of this achievement, Kubernetes v1.13 moves CSI support for PersistentVolumes to GA. + +With CSI the Kubernetes volume layer becomes truly extensible, allowing third party storage developers to write drivers making their storage systems available in Kubernetes without having to touch the core code. + +CSI was first introduction as alpha in Kubernetes v1.9 and moved to beta in Kubernetes v1.10. + +You can find a list of sample and production drivers in the [CSI Documentation](https://kubernetes.io/docs/concepts/storage/volumes/#csi). + +SIG Storage also moves support for Block Volumes to beta (introduced as alpha in v1.9) and support for Topology Aware Volume Scheduling to stable (introduced as alpha in v1.9 and promoted to beta in 1.10). + +### SIG UI + +The migration to the newest version of Angular is still under active development as it is most important thing on the roadmap at the moment. We are getting closer to to the new release. We continue fixing bugs and adding other improvements. + +### SIG VMWare + +Major focus for SIG VMware for this release is the work on moving internal APIs that the vSphere provider depends upon to staging to guarantee API stability. This work is being done in conjunction with SIG Cloud Provider and includes the creation of a brand new vsphere-csi plugin to replace the current volume functionalities in-tree. + +Additional work was also done to implement a vSphere provider for the Cluster API effort lead by SIG Cluster Lifecycle. For the out-of-tree vSphere cloud provider, the SIG largely focused on bug fixes and updates to match K8s 1.13 development. + +### SIG Windows + +SIG Windows focused on improving reliability for Windows and Kubernetes support + +## New Features + +- kubelet: When node lease feature is enabled, kubelet reports node status to api server only if there is some change or it didn't report over last report interval. ([#69753](https://github.com/kubernetes/kubernetes/pull/69753), [@wangzhen127](https://github.com/wangzhen127)) +- vSphereVolume implements Raw Block Volume Support ([#68761](https://github.com/kubernetes/kubernetes/pull/68761), [@fanzhangio](https://github.com/fanzhangio)) +- CRD supports multi-version Schema, Subresources and AdditionalPrintColumns (NOTE that CRDs created prior to 1.13 populated the top-level additionalPrinterColumns field by default. To apply an updated that changes to per-version additionalPrinterColumns, the top-level additionalPrinterColumns field must be explicitly set to null). ([#70211](https://github.com/kubernetes/kubernetes/pull/70211), [@roycaihw](https://github.com/roycaihw)) +- New addon in addon manager that automatically installs CSI CRDs if CSIDriverRegistry or CSINodeInfo feature gates are true. ([#70193](https://github.com/kubernetes/kubernetes/pull/70193), [@saad-ali](https://github.com/saad-ali)) +- Delegated authorization can now allow unrestricted access for `system:masters` like the main kube-apiserver ([#70671](https://github.com/kubernetes/kubernetes/pull/70671), [@deads2k](https://github.com/deads2k)) +- Added dns capabilities for Windows CNI plugins: ([#67435](https://github.com/kubernetes/kubernetes/pull/67435), [@feiskyer](https://github.com/feiskyer)) +- kube-apiserver: `--audit-webhook-version` and `--audit-log-version` now default to `audit.k8s.io/v1` if unspecified ([#70476](https://github.com/kubernetes/kubernetes/pull/70476), [@charrywanganthony](https://github.com/charrywanganthony)) +- kubeadm: timeoutForControlPlane is introduced as part of the API Server config, that controls the timeout for the wait for control plane to be up. Default value is 4 minutes. ([#70480](https://github.com/kubernetes/kubernetes/pull/70480), [@rosti](https://github.com/rosti)) +- `--api-audiences` now defaults to the `--service-account-issuer` if the issuer is provided but the API audience is not. ([#70308](https://github.com/kubernetes/kubernetes/pull/70308), [@mikedanese](https://github.com/mikedanese)) +- Added support for projected volume in describe function ([#70158](https://github.com/kubernetes/kubernetes/pull/70158), [@WanLinghao](https://github.com/WanLinghao)) +- kubeadm now automatically creates a new stacked etcd member when joining a new control plane node (does not applies to external etcd) ([#69486](https://github.com/kubernetes/kubernetes/pull/69486), [@fabriziopandini](https://github.com/fabriziopandini)) +- Display the usage of ephemeral-storage when using `kubectl describe node` ([#70268](https://github.com/kubernetes/kubernetes/pull/70268), [@Pingan2017](https://github.com/Pingan2017)) +- Added functionality to enable br_netfilter and ip_forward for debian packages to improve kubeadm support for CRI runtime besides Docker. ([#70152](https://github.com/kubernetes/kubernetes/pull/70152), [@ashwanikhemani](https://github.com/ashwanikhemani)) +- Added regions ap-northeast-3 and eu-west-3 to the list of well known AWS regions. ([#70252](https://github.com/kubernetes/kubernetes/pull/70252), [@nckturner](https://github.com/nckturner)) +- kubeadm: Implemented preflight check to ensure that number of CPUs ([#70048](https://github.com/kubernetes/kubernetes/pull/70048), [@bart0sh](https://github.com/bart0sh)) +- CoreDNS is now the default DNS server in kube-up deployments. ([#69883](https://github.com/kubernetes/kubernetes/pull/69883), [@chrisohaver](https://github.com/chrisohaver)) +- Opt out of chowning and chmoding from kubectl cp. ([#69573](https://github.com/kubernetes/kubernetes/pull/69573), [@bjhaid](https://github.com/bjhaid)) +- Failed to provision volume with StorageClass "azurefile-premium": failed to create share andy-mg1121-dynamic-pvc-1a7b2813-d1b7-11e8-9e96-000d3a03e16b in account f7228f99bcde411e8ba4900: failed to create file share, err: storage: service returned error: StatusCode=400, ErrorCode=InvalidHeaderValue, ErrorMessage=The value for one of the HTTP headers is not in the correct format. ([#69718](https://github.com/kubernetes/kubernetes/pull/69718), [@andyzhangx](https://github.com/andyzhangx)) +- `TaintBasedEvictions` feature is promoted to beta. ([#69824](https://github.com/kubernetes/kubernetes/pull/69824), [@Huang-Wei](https://github.com/Huang-Wei)) +- Fixed https://github.com/kubernetes/client-go/issues/478 by adding support for JSON Patch in client-go/dynamic/fake ([#69330](https://github.com/kubernetes/kubernetes/pull/69330), [@vaikas-google](https://github.com/vaikas-google)) +- Dry-run is promoted to Beta and will be enabled by default. ([#69644](https://github.com/kubernetes/kubernetes/pull/69644), [@apelisse](https://github.com/apelisse)) +- `kubectl get priorityclass` now prints value column by default. ([#69431](https://github.com/kubernetes/kubernetes/pull/69431), [@Huang-Wei](https://github.com/Huang-Wei)) +- Added a new container based image for running e2e tests ([#69368](https://github.com/kubernetes/kubernetes/pull/69368), [@dims](https://github.com/dims)) +- The `LC_ALL` and `LC_MESSAGES` env vars can now be used to set desired locale for `kubectl` while keeping `LANG` unchanged. ([#69500](https://github.com/kubernetes/kubernetes/pull/69500), [@m1kola](https://github.com/m1kola)) +- NodeLifecycleController: Now node lease renewal is treated as the heartbeat signal from the node, in addition to NodeStatus Update. ([#69241](https://github.com/kubernetes/kubernetes/pull/69241), [@wangzhen127](https://github.com/wangzhen127)) +- Added dynamic shared informers to write generic, non-generated controllers ([#69308](https://github.com/kubernetes/kubernetes/pull/69308), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Upgraded to etcd 3.3 client ([#69322](https://github.com/kubernetes/kubernetes/pull/69322), [@jpbetz](https://github.com/jpbetz)) +- It is now possible to use named ports in the `kubectl port-forward` command ([#69477](https://github.com/kubernetes/kubernetes/pull/69477), [@m1kola](https://github.com/m1kola)) +- `kubectl wait` now supports condition value checks other than true using `--for condition=available=false` ([#69295](https://github.com/kubernetes/kubernetes/pull/69295), [@deads2k](https://github.com/deads2k)) +- Updated defaultbackend image to 1.5. Users should concentrate on updating scripts to the new version. ([#69120](https://github.com/kubernetes/kubernetes/pull/69120), [@aledbf](https://github.com/aledbf)) +- Bumped Dashboard version to v1.10.0 ([#68450](https://github.com/kubernetes/kubernetes/pull/68450), [@jeefy](https://github.com/jeefy)) +- Added env variables to control CPU requests of kube-controller-manager and kube-scheduler. ([#68823](https://github.com/kubernetes/kubernetes/pull/68823), [@loburm](https://github.com/loburm)) +- PodSecurityPolicy objects now support a `MayRunAs` rule for `fsGroup` and `supplementalGroups` options. This allows specifying ranges of allowed GIDs for pods/containers without forcing a default GID the way `MustRunAs` does. This means that a container to which such a policy applies to won't use any fsGroup/supplementalGroup GID if not explicitly specified, yet a specified GID must still fall in the GID range according to the policy. ([#65135](https://github.com/kubernetes/kubernetes/pull/65135), [@stlaz](https://github.com/stlaz)) +- Upgrade Stackdriver Logging Agent addon image to 0.6-1.6.0-1 to use Fluentd v1.2. This provides nanoseconds timestamp granularity for logs. ([#70954](https://github.com/kubernetes/kubernetes/pull/70954), [@qingling128](https://github.com/qingling128)) +- When the BoundServiceAccountTokenVolumes Alpha feature is enabled, ServiceAccount volumes now use a projected volume source and their names have the prefix "kube-api-access". ([#69848](https://github.com/kubernetes/kubernetes/pull/69848), [@mikedanese](https://github.com/mikedanese)) +- Raw block volume support is promoted to beta, and enabled by default. This is accessible via the `volumeDevices` container field in pod specs, and the `volumeMode` field in persistent volume and persistent volume claims definitions. ([#71167](https://github.com/kubernetes/kubernetes/pull/71167), [@msau42](https://github.com/msau42)) +- TokenReview now supports audience validation of tokens with audiences other than the kube-apiserver. ([#62692](https://github.com/kubernetes/kubernetes/pull/62692), [@mikedanese](https://github.com/mikedanese)) +- StatefulSet is supported in `kubectl autoscale` command ([#71103](https://github.com/kubernetes/kubernetes/pull/71103), [@Pingan2017](https://github.com/Pingan2017)) +- Kubernetes v1.13 moves support for Container Storage Interface to GA. As part of this move Kubernetes now supports CSI v1.0.0 and deprecates support for CSI 0.3 and older releases. Older CSI drivers must be updated to CSI 1.0 and moved to the new kubelet plugin registration directory in order to work with Kubernetes 1.15+. ([#71020](https://github.com/kubernetes/kubernetes/pull/71020), [@saad-ali](https://github.com/saad-ali)) +- Added option to create CSRs instead of certificates for kubeadm init phase certs and kubeadm alpha certs renew ([#70809](https://github.com/kubernetes/kubernetes/pull/70809), [@liztio](https://github.com/liztio)) +- Added a kubelet socket which serves an grpc service containing the devices used by containers on the node. ([#70508](https://github.com/kubernetes/kubernetes/pull/70508), [@dashpole](https://github.com/dashpole)) +- Added DynamicAuditing feature which allows for the configuration of audit webhooks through the use of an AuditSink API object. ([#67257](https://github.com/kubernetes/kubernetes/pull/67257), [@pbarker](https://github.com/pbarker)) +- The kube-apiserver's healthz now takes in an optional query parameter which allows you to disable health checks from causing healthz failures. ([#70676](https://github.com/kubernetes/kubernetes/pull/70676), [@logicalhan](https://github.com/logicalhan)) +- Introduced support for running a nodelocal dns cache. It is disabled by default, can be enabled by setting KUBE_ENABLE_NODELOCAL_DNS=true ([#70555](https://github.com/kubernetes/kubernetes/pull/70555), [@prameshj](https://github.com/prameshj)) +- Added readiness gates in extended output for pods ([#70775](https://github.com/kubernetes/kubernetes/pull/70775), [@freehan](https://github.com/freehan)) +- Added `Ready` column and improve human-readable output of Deployments and StatefulSets ([#70466](https://github.com/kubernetes/kubernetes/pull/70466), [@Pingan2017](https://github.com/Pingan2017)) +- Added `kubelet_container_log_size_bytes` metric representing the log file size of a container. ([#70749](https://github.com/kubernetes/kubernetes/pull/70749), [@brancz](https://github.com/brancz)) +- NodeLifecycleController: When node lease feature is enabled, node lease will be deleted when the corresponding node is deleted. ([#70034](https://github.com/kubernetes/kubernetes/pull/70034), [@wangzhen127](https://github.com/wangzhen127)) +- GCERegionalPersistentDisk feature is GA now! ([#70716](https://github.com/kubernetes/kubernetes/pull/70716), [@jingxu97](https://github.com/jingxu97)) +- Added secure port 10259 to the kube-scheduler (enabled by default) and deprecate old insecure port 10251. Without further flags self-signed certs are created on startup in memory. ([#69663](https://github.com/kubernetes/kubernetes/pull/69663), [@sttts](https://github.com/sttts)) + +## Release Notes From SIGs + +### SIG API Machinery + +- The OwnerReferencesPermissionEnforcement admission plugin now checks authorization for the correct scope (namespaced or cluster-scoped) of the owner resource type. Previously, it always checked permissions at the same scope as the child resource. ([#70389](https://github.com/kubernetes/kubernetes/pull/70389), [@caesarxuchao](https://github.com/caesarxuchao)) +- OpenAPI spec now correctly marks delete request's body parameter as optional ([#70032](https://github.com/kubernetes/kubernetes/pull/70032), [@iamneha](https://github.com/iamneha)) +- The rules for incrementing `metadata.generation` of custom resources changed: ([#69059](https://github.com/kubernetes/kubernetes/pull/69059), [@caesarxuchao](https://github.com/caesarxuchao)) + - If the custom resource participates the spec/status convention, the metadata.generation of the CR increments when there is any change, except for the changes to the metadata or the changes to the status. + - If the custom resource does not participate the spec/status convention, the metadata.generation of the CR increments when there is any change to the CR, except for changes to the metadata. + - A custom resource is considered to participate the spec/status convention if and only if the "CustomResourceSubresources" feature gate is turned on and the CRD has `.spec.subresources.status={}`. +- Fixed patch/update operations on multi-version custom resources ([#70087](https://github.com/kubernetes/kubernetes/pull/70087), [@liggitt](https://github.com/liggitt)) +- Reduced memory utilization of admission webhook metrics by removing resource related labels. ([#69895](https://github.com/kubernetes/kubernetes/pull/69895), [@jpbetz](https://github.com/jpbetz)) +- Kubelet can now parse PEM file containing both TLS certificate and key in arbitrary order. Previously key was always required to be first. ([#69536](https://github.com/kubernetes/kubernetes/pull/69536), [@awly](https://github.com/awly)) +- Code-gen: Removed lowercasing for project imports ([#68484](https://github.com/kubernetes/kubernetes/pull/68484), [@jsturtevant](https://github.com/jsturtevant)) +- Fixed client cert setup in delegating authentication logic ([#69430](https://github.com/kubernetes/kubernetes/pull/69430), [@DirectXMan12](https://github.com/DirectXMan12)) +- OpenAPI spec and API reference now reflect dryRun query parameter for POST/PUT/PATCH operations ([#69359](https://github.com/kubernetes/kubernetes/pull/69359), [@roycaihw](https://github.com/roycaihw)) +- Fixed the sample-apiserver so that its BanFlunder admission plugin can be used. ([#68417](https://github.com/kubernetes/kubernetes/pull/68417), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) +- APIService availability related to networking glitches are corrected faster ([#68678](https://github.com/kubernetes/kubernetes/pull/68678), [@deads2k](https://github.com/deads2k)) +- Fixed an issue with stuck connections handling error responses ([#71412](https://github.com/kubernetes/kubernetes/pull/71412), [@liggitt](https://github.com/liggitt)) +- apiserver: fixed handling and logging of panics in REST handlers ([#71076](https://github.com/kubernetes/kubernetes/pull/71076), [@liggitt](https://github.com/liggitt)) +- kube-controller-manager no longer removes ownerReferences from ResourceQuota objects ([#70035](https://github.com/kubernetes/kubernetes/pull/70035), [@liggitt](https://github.com/liggitt)) +- "unfinished_work_microseconds" is added to the workqueue metrics; it can be used to detect stuck worker threads. (kube-controller-manager runs many workqueues.) ([#70884](https://github.com/kubernetes/kubernetes/pull/70884), [@lavalamp](https://github.com/lavalamp)) +- Timeouts set in ListOptions for clients are also be respected locally ([#70998](https://github.com/kubernetes/kubernetes/pull/70998), [@deads2k](https://github.com/deads2k)) +- Added support for CRD conversion webhook ([#67006](https://github.com/kubernetes/kubernetes/pull/67006), [@mbohlool](https://github.com/mbohlool)) +- client-go: fixed sending oversized data frames to spdystreams in remotecommand.NewSPDYExecutor ([#70999](https://github.com/kubernetes/kubernetes/pull/70999), [@liggitt](https://github.com/liggitt)) +- Fixed missing flags in `-controller-manager --help`. ([#71298](https://github.com/kubernetes/kubernetes/pull/71298), [@stewart-yu](https://github.com/stewart-yu)) +- Fixed missing flags in `kube-apiserver --help`. ([#70204](https://github.com/kubernetes/kubernetes/pull/70204), [@imjching](https://github.com/imjching)) +- The caBundle and service fields in admission webhook API objects now correctly indicate they are optional ([#70138](https://github.com/kubernetes/kubernetes/pull/70138), [@liggitt](https://github.com/liggitt)) +- Fixed an issue with stuck connections handling error responses ([#71419](https://github.com/kubernetes/kubernetes/pull/71419), [@liggitt](https://github.com/liggitt)) +- kube-controller-manager and cloud-controller-manager now hold generated serving certificates in-memory unless a writeable location is specified with --cert-dir ([#69884](https://github.com/kubernetes/kubernetes/pull/69884), [@liggitt](https://github.com/liggitt)) +- CCM server will not listen insecurely if secure port is specified ([#68982](https://github.com/kubernetes/kubernetes/pull/68982), [@aruneli](https://github.com/aruneli)) +- List operations against the API now return internal server errors instead of partially complete lists when a value cannot be transformed from storage. The updated behavior is consistent with all other operations that require transforming data from storage such as watch and get. ([#69399](https://github.com/kubernetes/kubernetes/pull/69399), [@mikedanese](https://github.com/mikedanese)) + +### SIG Auth + +- API Server can be configured to reject requests that cannot be audit-logged. ([#65763](https://github.com/kubernetes/kubernetes/pull/65763), [@x13n](https://github.com/x13n)) +- Go clients created from a kubeconfig that specifies a TokenFile now periodically reload the token from the specified file. ([#70606](https://github.com/kubernetes/kubernetes/pull/70606), [@mikedanese](https://github.com/mikedanese)) +- When `--rotate-server-certificates` is enabled, kubelet will no longer request a new certificate on startup if the current certificate on disk is satisfactory. ([#69991](https://github.com/kubernetes/kubernetes/pull/69991), [@agunnerson-ibm](https://github.com/agunnerson-ibm)) +- Added dynamic audit configuration api ([#67547](https://github.com/kubernetes/kubernetes/pull/67547), [@pbarker](https://github.com/pbarker)) +- Added ability to control primary GID of containers through Pod Spec and PodSecurityPolicy ([#67802](https://github.com/kubernetes/kubernetes/pull/67802), [@krmayankk](https://github.com/krmayankk)) +- kube-apiserver: the `NodeRestriction` admission plugin now prevents kubelets from modifying `Node` labels prefixed with `node-restriction.kubernetes.io/`. The `node-restriction.kubernetes.io/` label prefix is reserved for cluster administrators to use for labeling `Node` objects to target workloads to nodes in a way that kubelets cannot modify or spoof. ([#68267](https://github.com/kubernetes/kubernetes/pull/68267), [@liggitt](https://github.com/liggitt)) + +### SIG Autoscaling + +- Updated Cluster Autoscaler version to 1.13.0. See the [Release Notes](https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.13.0) for more information. ([#71513](https://github.com/kubernetes/kubernetes/pull/71513), [@losipiuk](https://github.com/losipiuk)) + +### SIG AWS + +- `service.beta.kubernetes.io/aws-load-balancer-internal` now supports true and false values, previously it only supported non-empty strings ([#69436](https://github.com/kubernetes/kubernetes/pull/69436), [@mcrute](https://github.com/mcrute)) +- Added `service.beta.kubernetes.io/aws-load-balancer-security-groups` annotation to set the security groups to the AWS ELB to be the only ones specified in the annotation in case this is present (does not add `0.0.0.0/0`). ([#62774](https://github.com/kubernetes/kubernetes/pull/62774), [@Raffo](https://github.com/Raffo)) + +### SIG Azure + +- Ensured orphan public IPs on Azure deleted when service recreated with the same name. ([#70463](https://github.com/kubernetes/kubernetes/pull/70463), [@feiskyer](https://github.com/feiskyer)) +- Improved Azure instance metadata handling by adding caches. ([#70353](https://github.com/kubernetes/kubernetes/pull/70353), [@feiskyer](https://github.com/feiskyer)) +- Corrected check for non-Azure managed nodes with the Azure cloud provider ([#70135](https://github.com/kubernetes/kubernetes/pull/70135), [@marc-sensenich](https://github.com/marc-sensenich)) +- Fixed azure disk attach/detach failed forever issue ([#71377](https://github.com/kubernetes/kubernetes/pull/71377), [@andyzhangx](https://github.com/andyzhangx)) +- DisksAreAttached --> getNodeDataDisks--> GetDataDisks --> getVirtualMachine --> vmCache.Get ([#71495](https://github.com/kubernetes/kubernetes/pull/71495), [@andyzhangx](https://github.com/andyzhangx)) + +### SIG CLI + +- `kubectl apply` can now change a deployment strategy from rollout to recreate without explicitly clearing the rollout-related fields ([#70436](https://github.com/kubernetes/kubernetes/pull/70436), [@liggitt](https://github.com/liggitt)) +- The `kubectl plugin list` command now displays discovered plugin paths in the same order as they are found in a user's PATH variable. ([#70443](https://github.com/kubernetes/kubernetes/pull/70443), [@juanvallejo](https://github.com/juanvallejo)) +- `kubectl get` no longer exits before printing all of its results if an error is found ([#70311](https://github.com/kubernetes/kubernetes/pull/70311), [@juanvallejo](https://github.com/juanvallejo)) +- Fixed a runtime error occurring when sorting the output of `kubectl get` with empty results ([#70740](https://github.com/kubernetes/kubernetes/pull/70740), [@mfpierre](https://github.com/mfpierre)) +- kubectl: support multiple arguments for cordon/uncordon and drain ([#68655](https://github.com/kubernetes/kubernetes/pull/68655), [@goodluckbot](https://github.com/goodluckbot)) +- Fixed ability for admin/edit/view users to see controller revisions, needed for kubectl rollout commands ([#70699](https://github.com/kubernetes/kubernetes/pull/70699), [@liggitt](https://github.com/liggitt)) +- `kubectl rollout undo` now returns errors when attempting to rollback a deployment to a non-existent revision ([#70039](https://github.com/kubernetes/kubernetes/pull/70039), [@liggitt](https://github.com/liggitt)) +- kubectl run now generates apps/v1 deployments by default ([#71006](https://github.com/kubernetes/kubernetes/pull/71006), [@liggitt](https://github.com/liggitt)) +- The "kubectl cp" command now supports path shortcuts (../) in remote paths. ([#65189](https://github.com/kubernetes/kubernetes/pull/65189), [@juanvallejo](https://github.com/juanvallejo)) +- Fixed dry-run output in kubectl apply --prune ([#69344](https://github.com/kubernetes/kubernetes/pull/69344), [@zegl](https://github.com/zegl)) +- The kubectl wait command must handle when a watch returns an error vs closing by printing out the error and retrying the watch. ([#69389](https://github.com/kubernetes/kubernetes/pull/69389), [@smarterclayton](https://github.com/smarterclayton)) +- kubectl: support multiple arguments for cordon/uncordon and drain ([#68655](https://github.com/kubernetes/kubernetes/pull/68655), [@goodluckbot](https://github.com/goodluckbot)) + +### SIG Cloud Provider + +- Added deprecation warning for all cloud providers ([#69171](https://github.com/kubernetes/kubernetes/pull/69171), [@andrewsykim](https://github.com/andrewsykim)) + +### SIG Cluster Lifecycle + +- kubeadm: Updates version of CoreDNS to 1.2.6 ([#70796](https://github.com/kubernetes/kubernetes/pull/70796), [@detiber](https://github.com/detiber)) +- kubeadm: Validate kubeconfig files in case of external CA mode. ([#70537](https://github.com/kubernetes/kubernetes/pull/70537), [@yagonobre](https://github.com/yagonobre)) +- kubeadm: The writable config file option for extra volumes is renamed to readOnly with a reversed meaning. With readOnly defaulted to false (as in pod specs). ([#70495](https://github.com/kubernetes/kubernetes/pull/70495), [@rosti](https://github.com/rosti)) +- kubeadm: Multiple API server endpoints support upon join is removed as it is now redundant. ([#69812](https://github.com/kubernetes/kubernetes/pull/69812), [@rosti](https://github.com/rosti)) +- `kubeadm reset` now cleans up custom etcd data path ([#70003](https://github.com/kubernetes/kubernetes/pull/70003), [@yagonobre](https://github.com/yagonobre)) +- kubeadm: Fixed unnecessary upgrades caused by undefined order of Volumes and VolumeMounts in manifests ([#70027](https://github.com/kubernetes/kubernetes/pull/70027), [@bart0sh](https://github.com/bart0sh)) +- kubeadm: Fixed node join taints. ([#69846](https://github.com/kubernetes/kubernetes/pull/69846), [@andrewrynhard](https://github.com/andrewrynhard)) +- Fixed cluster autoscaler addon permissions so it can access batch/job. ([#69858](https://github.com/kubernetes/kubernetes/pull/69858), [@losipiuk](https://github.com/losipiuk)) +- kubeadm: JoinConfiguration now houses the discovery options in a nested Discovery structure, which in turn has a couple of other nested structures to house more specific options (BootstrapTokenDiscovery and FileDiscovery) ([#67763](https://github.com/kubernetes/kubernetes/pull/67763), [@rosti](https://github.com/rosti)) +- kubeadm: Fixed a possible scenario where kubeadm can pull much newer control-plane images ([#69301](https://github.com/kubernetes/kubernetes/pull/69301), [@neolit123](https://github.com/neolit123)) +- kubeadm now allows mixing of init/cluster and join configuration in a single YAML file (although a warning gets printed in this case). ([#69426](https://github.com/kubernetes/kubernetes/pull/69426), [@rosti](https://github.com/rosti)) +- kubeadm: Added a `v1beta1` API. ([#69289](https://github.com/kubernetes/kubernetes/pull/69289), [@fabriziopandini](https://github.com/fabriziopandini)) +- kubeadm init correctly uses `--node-name` and `--cri-socket` when `--config` option is also used ([#71323](https://github.com/kubernetes/kubernetes/pull/71323), [@bart0sh](https://github.com/bart0sh)) +- kubeadm: Always pass spec.nodeName as `--hostname-override` for kube-proxy ([#71283](https://github.com/kubernetes/kubernetes/pull/71283), [@Klaven](https://github.com/Klaven)) +- `kubeadm join` correctly uses `--node-name` and `--cri-socket` when `--config` option is also used ([#71270](https://github.com/kubernetes/kubernetes/pull/71270), [@bart0sh](https://github.com/bart0sh)) +- kubeadm now supports the `--image-repository` flag for customizing what registry to pull images from ([#71135](https://github.com/kubernetes/kubernetes/pull/71135), [@luxas](https://github.com/luxas)) +- kubeadm: The writable config file option for extra volumes is renamed to readOnly with a reversed meaning. With readOnly defaulted to false (as in pod specs). ([#70495](https://github.com/kubernetes/kubernetes/pull/70495), [@rosti](https://github.com/rosti)) +- kubeadm: Multiple API server endpoints support upon join is removed as it is now redundant. ([#69812](https://github.com/kubernetes/kubernetes/pull/69812), [@rosti](https://github.com/rosti)) +- kubeadm: JoinConfiguration now houses the discovery options in a nested Discovery structure, which in turn has a couple of other nested structures to house more specific options (BootstrapTokenDiscovery and FileDiscovery) ([#67763](https://github.com/kubernetes/kubernetes/pull/67763), [@rosti](https://github.com/rosti)) +- kubeadm: Added a `v1beta1` API. ([#69289](https://github.com/kubernetes/kubernetes/pull/69289), [@fabriziopandini](https://github.com/fabriziopandini)) +- kubeadm: Use `advertise-client-urls` instead of `listen-client-urls` as and `etcd-servers` options for apiserver. ([#69827](https://github.com/kubernetes/kubernetes/pull/69827), [@tomkukral](https://github.com/tomkukral)) +- Kubeadm now respects the custom image registry configuration across joins and upgrades. Kubeadm passes the custom registry to the kubelet for a custom pause container. ([#70603](https://github.com/kubernetes/kubernetes/pull/70603), [@chuckha](https://github.com/chuckha)) +- `kubeadm reset` now outputs instructions about manual iptables rules cleanup. ([#70874](https://github.com/kubernetes/kubernetes/pull/70874), [@rdodev](https://github.com/rdodev)) +- kubeadm: remove the AuditPolicyConfiguration feature gate ([#70807](https://github.com/kubernetes/kubernetes/pull/70807), [@Klaven](https://github.com/Klaven)) +- kubeadm pre-pulls Etcd image only if external Etcd is not used and ([#70743](https://github.com/kubernetes/kubernetes/pull/70743), [@bart0sh](https://github.com/bart0sh)) +- kubeadm: UnifiedControlPlaneImage is replaced by UseHyperKubeImage boolean value. ([#70793](https://github.com/kubernetes/kubernetes/pull/70793), [@rosti](https://github.com/rosti)) +- For kube-up and derived configurations, CoreDNS will honor master taints, for consistency with kube-dns behavior. ([#70868](https://github.com/kubernetes/kubernetes/pull/70868), [@justinsb](https://github.com/justinsb)) +- Recognize newer docker versions without -ce/-ee suffix: 18.09.0 ([#71001](https://github.com/kubernetes/kubernetes/pull/71001), [@thomas-riccardi](https://github.com/thomas-riccardi)) +- Any external provider should be aware the cloud-provider interface should be imported from :- ([#68310](https://github.com/kubernetes/kubernetes/pull/68310), [@cheftako](https://github.com/cheftako)) +- Fixed 'kubeadm upgrade' infinite loop waiting for pod restart ([#69886](https://github.com/kubernetes/kubernetes/pull/69886), [@bart0sh](https://github.com/bart0sh)) +- Bumped addon-manager to v8.8 ([#69337](https://github.com/kubernetes/kubernetes/pull/69337), [@MrHohn](https://github.com/MrHohn)) +- GCE: Filter out spammy audit logs from cluster autoscaler. ([#70696](https://github.com/kubernetes/kubernetes/pull/70696), [@loburm](https://github.com/loburm)) +- GCE: Enable by default audit logging truncating backend. ([#68288](https://github.com/kubernetes/kubernetes/pull/68288), [@loburm](https://github.com/loburm)) +- Bumped cluster-proportional-autoscaler to 1.3.0 ([#69338](https://github.com/kubernetes/kubernetes/pull/69338), [@MrHohn](https://github.com/MrHohn)) +- Updated defaultbackend to v1.5 ([#69334](https://github.com/kubernetes/kubernetes/pull/69334), [@bowei](https://github.com/bowei)) + +### SIG GCP + +- Added tolerations for Stackdriver Logging and Metadata Agents. ([#69737](https://github.com/kubernetes/kubernetes/pull/69737), [@qingling128](https://github.com/qingling128)) +- Enabled insertId generation, and updated Stackdriver Logging Agent image to 0.5-1.5.36-1-k8s. This help reduce log duplication and guarantee log order. ([#68920](https://github.com/kubernetes/kubernetes/pull/68920), [@qingling128](https://github.com/qingling128)) +- Updated crictl to v1.12.0 ([#69033](https://github.com/kubernetes/kubernetes/pull/69033), [@feiskyer](https://github.com/feiskyer)) + +### SIG Network + +- Corrected family type (inet6) for ipsets in ipv6-only clusters ([#68436](https://github.com/kubernetes/kubernetes/pull/68436), [@uablrek](https://github.com/uablrek)) +- kube-proxy argument `hostname-override` can be used to override hostname defined in the configuration file ([#69340](https://github.com/kubernetes/kubernetes/pull/69340), [@stevesloka](https://github.com/stevesloka)) +- CoreDNS correctly implements DNS spec for Services with externalNames that look like IP addresses. Kube-dns does not follow the spec for the same case, resulting in a behavior change when moving from Kube-dns to CoreDNS. See: [coredns/coredns#2324](https://github.com/coredns/coredns/issues/2324) +- IPVS proxier now set net/ipv4/vs/conn_reuse_mode to 0 by default, which will highly improve IPVS proxier performance. ([#71114](https://github.com/kubernetes/kubernetes/pull/71114), [@Lion-Wei](https://github.com/Lion-Wei)) +- CoreDNS is now version 1.2.6 ([#70799](https://github.com/kubernetes/kubernetes/pull/70799), [@rajansandeep](https://github.com/rajansandeep)) +- Addon configuration is introduced in the kubeadm config API, while feature flag CoreDNS is now deprecated. ([#70024](https://github.com/kubernetes/kubernetes/pull/70024), [@fabriziopandini](https://github.com/fabriziopandini)) + +### SIG Node + +- Fixed a bug in previous releases where a pod could be placed inside another pod's cgroup when specifying --cgroup-root ([#70678](https://github.com/kubernetes/kubernetes/pull/70678), [@dashpole](https://github.com/dashpole)) +- Optimized calculating stats when only CPU and Memory stats are returned from Kubelet stats/summary http endpoint. ([#68841](https://github.com/kubernetes/kubernetes/pull/68841), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) +- kubelet now supports `log-file` option to write logs directly to a specific file ([#70917](https://github.com/kubernetes/kubernetes/pull/70917), [@dims](https://github.com/dims)) +- Do not detach volume if mount in progress ([#71145](https://github.com/kubernetes/kubernetes/pull/71145), [@gnufied](https://github.com/gnufied)) +- The runtimeHandler field on the RuntimeClass resource now accepts the empty string. ([#69550](https://github.com/kubernetes/kubernetes/pull/69550), [@tallclair](https://github.com/tallclair)) +- kube-apiserver: fixes `procMount` field incorrectly being marked as required in openapi schema ([#69694](https://github.com/kubernetes/kubernetes/pull/69694), [@jessfraz](https://github.com/jessfraz)) + +### SIG OpenStack + +- Fixed cloud-controller-manager crash when using OpenStack provider and PersistentVolume initializing controller ([#70459](https://github.com/kubernetes/kubernetes/pull/70459), [@mvladev](https://github.com/mvladev)) + +### SIG Release + +- Use debian-base instead of busybox as base image for server images ([#70245](https://github.com/kubernetes/kubernetes/pull/70245), [@ixdy](https://github.com/ixdy)) +- Images for cloud-controller-manager, kube-apiserver, kube-controller-manager, and kube-scheduler now contain a minimal /etc/nsswitch.conf and should respect /etc/hosts for lookups ([#69238](https://github.com/kubernetes/kubernetes/pull/69238), [@BenTheElder](https://github.com/BenTheElder)) + +### SIG Scheduling + +- Added metrics for volume scheduling operations ([#59529](https://github.com/kubernetes/kubernetes/pull/59529), [@wackxu](https://github.com/wackxu)) +- Improved memory use and performance when processing large numbers of pods containing tolerations ([#65350](https://github.com/kubernetes/kubernetes/pull/65350), [@liggitt](https://github.com/liggitt)) +- Fixed a bug in the scheduler that could cause the scheduler to go to an infinite loop when all nodes in a zone are removed. ([#69758](https://github.com/kubernetes/kubernetes/pull/69758), [@bsalamat](https://github.com/bsalamat)) +- Clear pod binding cache on bind error to make sure stale pod binding cache will not be used. ([#71212](https://github.com/kubernetes/kubernetes/pull/71212), [@cofyc](https://github.com/cofyc)) +- Fixed a scheduler panic due to internal cache inconsistency ([#71063](https://github.com/kubernetes/kubernetes/pull/71063), [@Huang-Wei](https://github.com/Huang-Wei)) +- Report kube-scheduler unhealthy if leader election is deadlocked. ([#71085](https://github.com/kubernetes/kubernetes/pull/71085), [@bsalamat](https://github.com/bsalamat)) +- Fixed a potential bug that scheduler preempts unnecessary pods. ([#70898](https://github.com/kubernetes/kubernetes/pull/70898), [@Huang-Wei](https://github.com/Huang-Wei)) + +### SIG Storage + +- Fixed CSI volume limits not showing up in node's capacity and allocatable ([#70540](https://github.com/kubernetes/kubernetes/pull/70540), [@gnufied](https://github.com/gnufied)) +- CSI drivers now have access to mountOptions defined on the storage class when attaching volumes. ([#67898](https://github.com/kubernetes/kubernetes/pull/67898), [@bswartz](https://github.com/bswartz)) +- change default azure file mount permission to 0777 ([#69854](https://github.com/kubernetes/kubernetes/pull/69854), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed subpath in containerized kubelet. ([#69565](https://github.com/kubernetes/kubernetes/pull/69565), [@jsafrane](https://github.com/jsafrane)) +- Fixed panic on iSCSI volume tear down. ([#69140](https://github.com/kubernetes/kubernetes/pull/69140), [@jsafrane](https://github.com/jsafrane)) +- CSIPersistentVolume feature, i.e. PersistentVolumes with CSIPersistentVolumeSource, is GA. ([#69929](https://github.com/kubernetes/kubernetes/pull/69929), [@jsafrane](https://github.com/jsafrane)) +- Fixed CSIDriver API object to allow missing fields. ([#69331](https://github.com/kubernetes/kubernetes/pull/69331), [@jsafrane](https://github.com/jsafrane)) +- Flex volume plugins now support expandvolume (to increase underlying volume capacity) and expanfs (resize filesystem) commands that Flex plugin authors can implement to support expanding in use Flex PersistentVolumes ([#67851](https://github.com/kubernetes/kubernetes/pull/67851), [@aniket-s-kulkarni](https://github.com/aniket-s-kulkarni)) +- Enabled AttachVolumeLimit feature ([#69225](https://github.com/kubernetes/kubernetes/pull/69225), [@gnufied](https://github.com/gnufied)) +- The default storage class annotation for the storage addons has been changed to use the GA variant ([#68345](https://github.com/kubernetes/kubernetes/pull/68345), [@smelchior](https://github.com/smelchior)) +- GlusterFS PersistentVolumes sources can now reference endpoints in any namespace using the `spec.glusterfs.endpointsNamespace` field. Ensure all kubelets are upgraded to 1.13+ before using this capability. ([#60195](https://github.com/kubernetes/kubernetes/pull/60195), [@humblec](https://github.com/humblec)) +- Fixed GetVolumeLimits log flushing issue ([#69558](https://github.com/kubernetes/kubernetes/pull/69558), [@andyzhangx](https://github.com/andyzhangx)) +- The `MountPropagation` feature is unconditionally enabled in v1.13, and can no longer be disabled. ([#68230](https://github.com/kubernetes/kubernetes/pull/68230), [@bertinatto](https://github.com/bertinatto)) + +### SIG Windows + +- `kubelet --system-reserved` and `--kube-reserved` are supported now on Windows nodes ([#69960](https://github.com/kubernetes/kubernetes/pull/69960), [@feiskyer](https://github.com/feiskyer)) +- Windows runtime endpoints is now switched to `npipe:////./pipe/dockershim` from `tcp://localhost:3735`. ([#69516](https://github.com/kubernetes/kubernetes/pull/69516), [@feiskyer](https://github.com/feiskyer)) +- Fixed service issues with named targetPort for Windows ([#70076](https://github.com/kubernetes/kubernetes/pull/70076), [@feiskyer](https://github.com/feiskyer)) +- Handle Windows named pipes in host mounts. ([#69484](https://github.com/kubernetes/kubernetes/pull/69484), [@ddebroy](https://github.com/ddebroy)) +- Fixed inconsistency in windows kernel proxy when updating HNS policy. ([#68923](https://github.com/kubernetes/kubernetes/pull/68923), [@delulu](https://github.com/delulu)) + +## External Dependencies + +- Default etcd server is unchanged at v3.2.24 since Kubernetes 1.12. ([#68318](https://github.com/kubernetes/kubernetes/pull/68318)) +- The list of validated docker versions remain unchanged at 1.11.1, 1.12.1, 1.13.1, 17.03, 17.06, 17.09, 18.06 since Kubernetes 1.12. ([#68495](https://github.com/kubernetes/kubernetes/pull/68495)) +- The default Go version was updated to 1.11.2. ([#70665](https://github.com/kubernetes/kubernetes/pull/70665)) +- The minimum supported Go version was updated to 1.11.2 ([#69386](https://github.com/kubernetes/kubernetes/pull/69386)) +- CNI is unchanged at v0.6.0 since Kubernetes 1.10 ([#51250](https://github.com/kubernetes/kubernetes/pull/51250)) +- CSI is updated to 1.0.0. Pre-1.0.0 API support is now deprecated. ([#71020](https://github.com/kubernetes/kubernetes/pull/71020)]) +- The dashboard add-on has been updated to v1.10.0. ([#68450](https://github.com/kubernetes/kubernetes/pull/68450)) +- Heapster remains at v1.6.0-beta, but is now retired in Kubernetes 1.13 ([#67074](https://github.com/kubernetes/kubernetes/pull/67074)) +- Cluster Autoscaler has been upgraded to v1.13.0 ([#71513](https://github.com/kubernetes/kubernetes/pull/71513)) +- kube-dns is unchanged at v1.14.13 since Kubernetes 1.12 ([#68900](https://github.com/kubernetes/kubernetes/pull/68900)) +- Influxdb is unchanged at v1.3.3 since Kubernetes 1.10 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +- Grafana is unchanged at v4.4.3 since Kubernetes 1.10 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +- Kibana has been upgraded to v6.3.2. ([#67582](https://github.com/kubernetes/kubernetes/pull/67582)) +- CAdvisor has been updated to v0.32.0 ([#70964](https://github.com/kubernetes/kubernetes/pull/70964)) +- fluentd-gcp-scaler has been updated to v0.5.0 ([#68837](https://github.com/kubernetes/kubernetes/pull/68837)) +- Fluentd in fluentd-elasticsearch is unchanged at v1.2.4 since Kubernetes 1.11 ([#67434](https://github.com/kubernetes/kubernetes/pull/67434)) +- fluentd-elasticsearch has been updated to v2.2.1 ([#68012](https://github.com/kubernetes/kubernetes/pull/68012)) +- The fluent-plugin-kubernetes_metadata_filter plugin in fluentd-elasticsearch is unchanged at 2.0.0 since Kubernetes 1.12 ([#67544](https://github.com/kubernetes/kubernetes/pull/67544)) +- fluentd-gcp has been updated to v3.2.0 ([#70954](https://github.com/kubernetes/kubernetes/pull/70954)) +- OIDC authentication is unchanged at coreos/go-oidc v2 since Kubernetes 1.10 ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) +- Calico was updated to v3.3.1 ([#70932](https://github.com/kubernetes/kubernetes/pull/70932)) +- Upgraded crictl on GCE to v1.12.0 ([#69033](https://github.com/kubernetes/kubernetes/pull/69033)) +- CoreDNS has been updated to v1.2.6 ([#70799](https://github.com/kubernetes/kubernetes/pull/70799)) +- event-exporter has been updated to v0.2.3 ([#67691](https://github.com/kubernetes/kubernetes/pull/67691)) +- Es-image remains unchanged at Elasticsearch 6.3.2 since Kubernetes 1.12 ([#67484](https://github.com/kubernetes/kubernetes/pull/67484)) +- metrics-server remains unchanged at v0.3.1 since Kubernetes 1.12 ([#68746](https://github.com/kubernetes/kubernetes/pull/68746)) +- GLBC remains unchanged at v1.2.3 since Kubernetes 1.12 ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) +- Ingress-gce remains unchanged at v1.2.3 since Kubernetes 1.12 ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) +- ip-masq-agen remains unchanged at v2.1.1 since Kubernetes 1.12 ([#67916](https://github.com/kubernetes/kubernetes/pull/67916)) diff --git a/releases/release-1.13/release_team.md b/releases/release-1.13/release_team.md index 5cbca3b1cd4..192a809b9f3 100644 --- a/releases/release-1.13/release_team.md +++ b/releases/release-1.13/release_team.md @@ -1,13 +1,13 @@ -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -| ------ | ------ | ------ | -| Lead | Aishwarya Sundar ([@AishSundar](https://github.com/AishSundar)) | Aaron Crickenberger ([@spiffxp](https://github.com/spiffxp)) | -| Enhancements | Kendrick Coleman ([@kacole2](https://github.com/kacole2)) | Michael Singh ([@wadadli](https://github.com/wadadli)), Guinevere Saenger ([@guineveresaenger](https://github.com/guineveresaenger) / @gsaenger on Slack), Arnaud Meukam ([@ameukam](https://github.com/ameukam)), Claire Laurence ([@claurence](https://github.com/claurence)) | -| CI Signal | Josh Berkus ([@jberkus](https://github.com/jberkus)) | Morten Torkildsen ([@mortent](https://github.com/mortent)), Maria Ntalla ([@mariantalla](https://github.com/mariantalla)) | -| Test Infra | Cole Wagner ([@cjwagner](https://github.com/cjwagner)) | Amit Watve ([@amwat](https://github.com/amwat)), Dhawal Yogesh Bhanushali ([@imkin](https://github.com/imkin)), Rahul Mahale ([@RahulMahale](https://github.com/RahulMahale)) | -| Bug Triage | Niko Penteridis ([@nikopen](https://github.com/nikopen)) | Mohammed Zeeshan Ahmed ([@mohammedzee1000](https://github.com/mohammedzee1000)), Athanasios Kostopoulos ([@thanasisk](https://github.com/thanasisk)), Shubheksha Jalan ([@shubheksha](https://github.com/shubheksha)), Tunde ([@simplytunde](https://github.com/simplytunde)) | -| Branch Manager | Doug MacEachern ([@dougm](https://github.com/dougm)) | Yang Li ([@idealhack](https://github.com/idealhack)), Hannes Hoerl ([@hoegaarden](https://github.com/hoegaarden)) | -| Docs | Tim Fogarty ([@tfogo](https://github.com/tfogo)) | Jim Angel ([@jimangel](https://github.com/jimangel)), Zach Arnold ([@zparnold](https://github.com/zparnold)), Naomi Pentrel ([@npentrel](https://github.com/npentrel)), Barnabas Makonda ([@MAKOSCAFEE](https://github.com/MAKOSCAFEE)) | -| Release Notes | Mike Arpaia ([@marpaia](https://github.com/marpaia)) | Dave Strebel ([@dstrebel](https://github.com/dstrebel)), Wang Bing ([@pigletfly](https://github.com/pigletfly)), Babatunde Olu-Isa ([@boluisa](https://github.com/boluisa)) | -| Communications | Kaitlyn Barnard ([@kbarnard10](https://github.com/kbarnard10)) | Kristen Evans ([@kristenevans](https://github.com/kristenevans)), Jayakrishna Sahit ([@sahitpj](https://github.com/sahitpj)), Jorge Castro ([@castrojo](https://github.com/castrojo)), Srinivasan Rajappa ([@srajappa](https://github.com/srajappa)) | -| Patch Release Managers | Aleksandra Malinowska ([@aleksandra-malinowska](https://github.com/aleksandra-malinowska)), Tim Pepper ([@tpepper](https://github.com/tpepper)) | | -| Approval Notifier | k8s-ci-robot ([@k8s-ci-robot](https://github.com/k8s-ci-robot)) | | +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +| ------ | ------ | ------ | +| Lead | Aishwarya Sundar ([@AishSundar](https://github.com/AishSundar)) | Aaron Crickenberger ([@spiffxp](https://github.com/spiffxp)) | +| Enhancements | Kendrick Coleman ([@kacole2](https://github.com/kacole2)) | Michael Singh ([@wadadli](https://github.com/wadadli)), Guinevere Saenger ([@guineveresaenger](https://github.com/guineveresaenger) / @gsaenger on Slack), Arnaud Meukam ([@ameukam](https://github.com/ameukam)), Claire Laurence ([@claurence](https://github.com/claurence)) | +| CI Signal | Josh Berkus ([@jberkus](https://github.com/jberkus)) | Morten Torkildsen ([@mortent](https://github.com/mortent)), Maria Ntalla ([@mariantalla](https://github.com/mariantalla)) | +| Test Infra | Cole Wagner ([@cjwagner](https://github.com/cjwagner)) | Amit Watve ([@amwat](https://github.com/amwat)), Dhawal Yogesh Bhanushali ([@imkin](https://github.com/imkin)), Rahul Mahale ([@RahulMahale](https://github.com/RahulMahale)) | +| Bug Triage | Niko Penteridis ([@nikopen](https://github.com/nikopen)) | Mohammed Zeeshan Ahmed ([@mohammedzee1000](https://github.com/mohammedzee1000)), Athanasios Kostopoulos ([@thanasisk](https://github.com/thanasisk)), Shubheksha Jalan ([@shubheksha](https://github.com/shubheksha)), Tunde ([@simplytunde](https://github.com/simplytunde)) | +| Branch Manager | Doug MacEachern ([@dougm](https://github.com/dougm)) | Yang Li ([@idealhack](https://github.com/idealhack)), Hannes Hoerl ([@hoegaarden](https://github.com/hoegaarden)) | +| Docs | Tim Fogarty ([@tfogo](https://github.com/tfogo)) | Jim Angel ([@jimangel](https://github.com/jimangel)), Zach Arnold ([@zparnold](https://github.com/zparnold)), Naomi Pentrel ([@npentrel](https://github.com/npentrel)), Barnabas Makonda ([@MAKOSCAFEE](https://github.com/MAKOSCAFEE)) | +| Release Notes | Mike Arpaia ([@marpaia](https://github.com/marpaia)) | Dave Strebel ([@dstrebel](https://github.com/dstrebel)), Wang Bing ([@pigletfly](https://github.com/pigletfly)), Babatunde Olu-Isa ([@boluisa](https://github.com/boluisa)) | +| Communications | Kaitlyn Barnard ([@kbarnard10](https://github.com/kbarnard10)) | Kristen Evans ([@kristenevans](https://github.com/kristenevans)), Jayakrishna Sahit ([@sahitpj](https://github.com/sahitpj)), Jorge Castro ([@castrojo](https://github.com/castrojo)), Srinivasan Rajappa ([@srajappa](https://github.com/srajappa)) | +| Patch Release Managers | Aleksandra Malinowska ([@aleksandra-malinowska](https://github.com/aleksandra-malinowska)), Tim Pepper ([@tpepper](https://github.com/tpepper)) | | +| Approval Notifier | k8s-ci-robot ([@k8s-ci-robot](https://github.com/k8s-ci-robot)) | | diff --git a/releases/release-1.14/README.md b/releases/release-1.14/README.md index 520bf76a28c..b69c4d5fa93 100644 --- a/releases/release-1.14/README.md +++ b/releases/release-1.14/README.md @@ -1,228 +1,228 @@ -# Kubernetes 1.14: Caturnetes - -![Three Wolf Moon But The Wolves Are Cats And The Moon Is Kubernetes](caturnetes.jpg) - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.14/README.md) -* [Release Team](https://git.k8s.io/sig-release/releases/release-1.14/release_team.md) -* [Meeting Minutes](http://bit.ly/k8s114-minutes) (join [kubernetes-sig-release@] to receive meeting invites) -* [v1.14 Release Calendar][k8s114-calendar] -* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail -* [Internal Contact Info](https://bit.ly/k8s114-contacts) (accessible only to members of [kubernetes-release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Sheet](http://bit.ly/k8s114-enhancements) -* [Bug Triage Tracking Sheet](http://bit.ly/k8s114-bugtriage) -* [CI Signal Report](http://bit.ly/k8s114-cisignal) -* [Retrospective Document](http://bit.ly/k8s114-retro) -* [kubernetes/sig-release v1.14 milestone][k/sr-milestone-v1.14] - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## tl;dr - -The 1.14 release cycle is proposed as follows: - -- **Monday, January 07**: Week 1 - Release cycle begins -- **Tuesday, January 29**: Week 4 - [Enhancements Freeze] -- **Thursday, March 07**: Week 9 - [Code Freeze] -- **Monday, March 18**: Week 11 - Docs must be completed and reviewed -- **Monday, March 25**: Week 12 - Kubernetes v1.14.0 released - - -## What Will We Do Differently This Release? - -* All proposed Enhancements for this release must have an associated KEP. - * There are no exceptions; if the enhancement had no associated KEP - before, it must have one now. - * The KEP must have a checklist of requirements necessary for a feature to - land as alpha, beta, or stable. That checklist must have at a minimum a - test plan, and an upgrade/downgrade plan. -* There will be no Code Slush. - * Previous release teams have said the only value of Code Slush was a clear - one week warning that Code Freeze is coming - * Use the start of [Burndown] meetings as that date if you need it - -## Timeline - - -| **What** | **Who** | **Jan** | **Feb** | **Mar** | **WEEK** | **CI SIGNAL** | -| --- | --- | --- | --- | --- | --- | --- | -| Start of Release Cycle | Lead | Mon 7 | | | week 1 | [master-blocking] | -| Schedule finalized | Lead | Fri 11 | | | | | -| Team finalized | Lead | Fri 18 | | | week 2 | | -| Start Enhancements Tracking | Enhancements Lead | Tue 15 | | | | | -| 1.14.0-alpha.1 released | Branch Manager | Tue 15 | | | | | -| Start Release Notes Draft | Release Notes Lead | Tue 22 | | | week 3 | | -| **Begin [Enhancements Freeze]** (EOD PST) | Enhancements Lead | Tue 29 | | | week 4 | [master-blocking], [master-upgrade] | -| 1.14.0-alpha.2 released | Branch Manager | Tue 29 | | | | | -| 1.14.0-alpha.3 released | Branch Manager | | Tue 12 | | week 6 | | -| release-1.10 jobs removed | Test Infra Lead | | Tue 12 | | | | -| release-1.14 branch created | Branch Manager | | Tue 19 | | week 7 | | -| 1.14.0-beta.0 released | Branch Manager | | Tue 19 | | | | -| release-1.14 jobs created| Test Infra Lead | | Tue 19 | | | | -| **Begin [Burndown]** (MWF meetings) | Lead | | Mon 25 | | week 8 | [1.14-blocking], [master-blocking], [master-upgrade] | -| **Call for [Exceptions][Exception]** | Lead | | Mon 25 | | | | -| Brace Yourself, Code Freeze is Coming | Comms | | Mon 25 | | | | -| 1.14.0-beta.1 released | Branch Manager | | Tue 26 | | | | -| Docs deadline - Open placeholder PRs | Docs Lead | | | Fri 1 | | | -| **Begin [Code Freeze]** (EOD PST) | Test Infra | | | Thu 7 | week 9 | | -| Burndown Meetings daily| Lead | | | Mon 11 | week 10 | | -| Docs deadline - PRs ready for review | Docs Lead | | | Mon 11 | | | -| 1.14.0-beta.2 released | Branch Manager | | | Tue 12 | | | -| Docs complete - All PRs reviewed and ready to merge | Docs Lead | | | Mon 18 | | | -| **Begin [Code Thaw]** (EOD PST) | Test Infra | | | Tue 19 | week 11 | [1.14-blocking] | -| 1.14.0-rc.1 released | Branch Manager | | | Tue 19 | | | -| **Cherry Pick Deadline** (EOD PST) | Branch Manager | | | Thu 21 | week 11 | | -| **v1.14.0 released** | Branch Manager | | | Mon 25 | week 12 | | -| Release retrospective | Community | | | Thu 28 | | | | | - -## Phases - -### Enhancements Freeze - -By **Tuesday January 29, 2019** all enhancements landing in v1.14.0 must: -- have an associated tracking issue in [kubernetes/enhancements] in the - [v1.14 milestone][k/e-milestone-v1.14] -- have an associated KEP merged or in progress in [kubernetes/enhancements], - linked to in the description of the tracking issue - -By **Monday, February 4, 2019**, the KEPs associated with all enhancements landing in v1.14.0 -must be merged with an implementable status. This 1.14-specific extension is intended to allow -time to complete KEPs that were in progress by enhancements freeze. In future releases, the -intent is to require associated KEPs be merged/implementable by the enhancements freeze date. - -We will de-milestone any enhancements that fail to meet these criteria. Any -new enhancements not in the milestone will require an [Exception][Exception]. We will be -lenient within reason if a KEP not quite landing on time is the justification. - -SIG "themes" should also be in the release notes draft at this time to prepare -for blog posts and release marketing. Any work the SIG wants publicized needs -to be called out to the Enhancements Lead so the Release Team communications -lead can work with SIG-PM and the CNCF. - -### Burndown - -One week prior to Code Freeze, we increase the cadence of release team meetings -to begin tracking work more closely. We call this Burndown, because at this -point we have a list of outstanding issues and PRs, and are actively working to -burn that list down. SIG representatives are asked to attend if their SIG has -specific outstanding issues that are blocking the release. - -Join [kubernetes-sig-release@] to get a calendar invite. This meeting -may conflict with other community meetings. Please prioritize this meeting if -a member of the release team asks you to attend. - -The intent of these meetings is to: - -* Focus on fixing bugs, eliminating test flakes and general release - stabilization. -* Ensure docs and release notes are written and accurate. -* Identify all enhancement going into the release, and make sure alpha, beta, GA - is marked in enhancements repo. -* Provide a [one-stop view of release progress](https://bit.ly/k8s114-minutes) - including relevant release metrics. - -### Code Freeze - -All enhancements going into the release must be code-complete, **including -tests**, and have docs PRs open by ***Thursday, March 7th, 2018***. - -The docs PRs don't have to be ready to merge, but it should be clear what the -topic will be and who is responsible for writing it. This person will become the -primary contact for the documentation lead. It’s incredibly important that -documentation work gets completed as quickly as possible. - -After this point, only release-blocking issues and PRs will be allowed in the -milestone. - -### Code Thaw - -One week prior to release, it is expected that all but a handful of outstanding -PRs for kubernetes v1.14.0 have landed in the release-1.14 branch. Assuming the -release team agrees, Code Freeze will be lifted, and we enter Code Thaw. - -From this point forward, any PRs intended for v1.14 must be cherry picked to the -release-1.14 branch. - -## Processes - -### Exceptions - -Starting at [Enhancements Freeze] the release team will solicit and rule on -[exception requests] for enhancements and test work that is unlikely to be done -by Code Freeze. The exception approval is the responsibility of the SIG or SIGs -labeled in the pull request. The release team may intervene or deny the request -only if it poses a risk to release quality, or could negatively impact the overall -timeline. Changes introduced at this point should be well-tested, -well-understood, limited in architectural scope, and low risk. All of those -factors should be considered in the approval process. Enhancements on an -feature branch with documentation, test cases, and passing CI are more likely to -be accepted. - -### Pruning - -Enhancements that are partially implemented and/or lack sufficient tests may be -considered for pruning beginning after [Code Freeze], unless they've been -granted an [Exception]. - -The release team will work with SIGs and enhancements owners to evaluate each -case, but for example, pruning could include actions such as: - -* Disabling the use of a new API or field -* Switching the default value of a flag or field -* Moving a new API or field behind an Alpha Enhancements gate -* Reverting commits or deleting code - -This should occur before 1.14.0-beta.1 is cut so we have time to gather signal -on whether the system is stable in this state. These are considered drastic -measures, so the release team will strive to coordinate at-risk work with SIGs -before this time. The goal is to make code freeze, and overall project -transparency, enforceable despite the lack of a consistently used feature branch -process. - -### Docs - -If an enhancement needs documentation, enter "Yes" in the enhancement tracking -spreadsheet and add a link to the documentation PR. You can open documentation -PRs in the [kubernetes/website] repository. If you have questions, the release -documentation lead, or representatives from SIG-Docs will be happy to assist -you. - -For documentation PRs: - -* Open PRs against the dev-1.14 branch based off of the 1.14 release PR. The - documentation workflow uses feature branches for release documentation, rather -than basing from master. **Be sure to open your PR against the release branch**. -* Add your PR to the 1.14 Release milestone. - -[Enhancements Freeze]: #enhancements-freeze -[Burndown]: #burndown -[Code Freeze]: #code-freeze -[Code Thaw]: #code-thaw -[Exception]: #exceptions - -[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[contact-info]: https://bit.ly/k8s114-contacts -[k8s114-calendar]: https://bit.ly/k8s114-calendar - -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes -[kubernetes/enhancements]: https://github.com/kubernetes/enhancements -[kubernetes/website]: https://github.com/kubernetes/website - -[k/e-milestone-v1.14]: https://github.com/kubernetes/enhancements/milestone/13 -[k/k-milestone-v1.14]: https://github.com/kubernetes/kubernetes/milestone/41 -[k/sr-milestone-v1.14]: https://github.com/kubernetes/sig-release/milestone/7 - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-upgrade]: https://testgrid.k8s.io/sig-release-master-upgrade#Summary -[1.14-blocking]:https://testgrid.k8s.io/sig-release-1.14-blocking#Summary - -[exception requests]: https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md +# Kubernetes 1.14: Caturnetes + +![Three Wolf Moon But The Wolves Are Cats And The Moon Is Kubernetes](caturnetes.jpg) + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.14/README.md) +* [Release Team](https://git.k8s.io/sig-release/releases/release-1.14/release_team.md) +* [Meeting Minutes](http://bit.ly/k8s114-minutes) (join [kubernetes-sig-release@] to receive meeting invites) +* [v1.14 Release Calendar][k8s114-calendar] +* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail +* [Internal Contact Info](https://bit.ly/k8s114-contacts) (accessible only to members of [kubernetes-release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Sheet](http://bit.ly/k8s114-enhancements) +* [Bug Triage Tracking Sheet](http://bit.ly/k8s114-bugtriage) +* [CI Signal Report](http://bit.ly/k8s114-cisignal) +* [Retrospective Document](http://bit.ly/k8s114-retro) +* [kubernetes/sig-release v1.14 milestone][k/sr-milestone-v1.14] + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## tl;dr + +The 1.14 release cycle is proposed as follows: + +- **Monday, January 07**: Week 1 - Release cycle begins +- **Tuesday, January 29**: Week 4 - [Enhancements Freeze] +- **Thursday, March 07**: Week 9 - [Code Freeze] +- **Monday, March 18**: Week 11 - Docs must be completed and reviewed +- **Monday, March 25**: Week 12 - Kubernetes v1.14.0 released + + +## What Will We Do Differently This Release? + +* All proposed Enhancements for this release must have an associated KEP. + * There are no exceptions; if the enhancement had no associated KEP + before, it must have one now. + * The KEP must have a checklist of requirements necessary for a feature to + land as alpha, beta, or stable. That checklist must have at a minimum a + test plan, and an upgrade/downgrade plan. +* There will be no Code Slush. + * Previous release teams have said the only value of Code Slush was a clear + one week warning that Code Freeze is coming + * Use the start of [Burndown] meetings as that date if you need it + +## Timeline + + +| **What** | **Who** | **Jan** | **Feb** | **Mar** | **WEEK** | **CI SIGNAL** | +| --- | --- | --- | --- | --- | --- | --- | +| Start of Release Cycle | Lead | Mon 7 | | | week 1 | [master-blocking] | +| Schedule finalized | Lead | Fri 11 | | | | | +| Team finalized | Lead | Fri 18 | | | week 2 | | +| Start Enhancements Tracking | Enhancements Lead | Tue 15 | | | | | +| 1.14.0-alpha.1 released | Branch Manager | Tue 15 | | | | | +| Start Release Notes Draft | Release Notes Lead | Tue 22 | | | week 3 | | +| **Begin [Enhancements Freeze]** (EOD PST) | Enhancements Lead | Tue 29 | | | week 4 | [master-blocking], [master-upgrade] | +| 1.14.0-alpha.2 released | Branch Manager | Tue 29 | | | | | +| 1.14.0-alpha.3 released | Branch Manager | | Tue 12 | | week 6 | | +| release-1.10 jobs removed | Test Infra Lead | | Tue 12 | | | | +| release-1.14 branch created | Branch Manager | | Tue 19 | | week 7 | | +| 1.14.0-beta.0 released | Branch Manager | | Tue 19 | | | | +| release-1.14 jobs created| Test Infra Lead | | Tue 19 | | | | +| **Begin [Burndown]** (MWF meetings) | Lead | | Mon 25 | | week 8 | [1.14-blocking], [master-blocking], [master-upgrade] | +| **Call for [Exceptions][Exception]** | Lead | | Mon 25 | | | | +| Brace Yourself, Code Freeze is Coming | Comms | | Mon 25 | | | | +| 1.14.0-beta.1 released | Branch Manager | | Tue 26 | | | | +| Docs deadline - Open placeholder PRs | Docs Lead | | | Fri 1 | | | +| **Begin [Code Freeze]** (EOD PST) | Test Infra | | | Thu 7 | week 9 | | +| Burndown Meetings daily| Lead | | | Mon 11 | week 10 | | +| Docs deadline - PRs ready for review | Docs Lead | | | Mon 11 | | | +| 1.14.0-beta.2 released | Branch Manager | | | Tue 12 | | | +| Docs complete - All PRs reviewed and ready to merge | Docs Lead | | | Mon 18 | | | +| **Begin [Code Thaw]** (EOD PST) | Test Infra | | | Tue 19 | week 11 | [1.14-blocking] | +| 1.14.0-rc.1 released | Branch Manager | | | Tue 19 | | | +| **Cherry Pick Deadline** (EOD PST) | Branch Manager | | | Thu 21 | week 11 | | +| **v1.14.0 released** | Branch Manager | | | Mon 25 | week 12 | | +| Release retrospective | Community | | | Thu 28 | | | | | + +## Phases + +### Enhancements Freeze + +By **Tuesday January 29, 2019** all enhancements landing in v1.14.0 must: +- have an associated tracking issue in [kubernetes/enhancements] in the + [v1.14 milestone][k/e-milestone-v1.14] +- have an associated KEP merged or in progress in [kubernetes/enhancements], + linked to in the description of the tracking issue + +By **Monday, February 4, 2019**, the KEPs associated with all enhancements landing in v1.14.0 +must be merged with an implementable status. This 1.14-specific extension is intended to allow +time to complete KEPs that were in progress by enhancements freeze. In future releases, the +intent is to require associated KEPs be merged/implementable by the enhancements freeze date. + +We will de-milestone any enhancements that fail to meet these criteria. Any +new enhancements not in the milestone will require an [Exception][Exception]. We will be +lenient within reason if a KEP not quite landing on time is the justification. + +SIG "themes" should also be in the release notes draft at this time to prepare +for blog posts and release marketing. Any work the SIG wants publicized needs +to be called out to the Enhancements Lead so the Release Team communications +lead can work with SIG-PM and the CNCF. + +### Burndown + +One week prior to Code Freeze, we increase the cadence of release team meetings +to begin tracking work more closely. We call this Burndown, because at this +point we have a list of outstanding issues and PRs, and are actively working to +burn that list down. SIG representatives are asked to attend if their SIG has +specific outstanding issues that are blocking the release. + +Join [kubernetes-sig-release@] to get a calendar invite. This meeting +may conflict with other community meetings. Please prioritize this meeting if +a member of the release team asks you to attend. + +The intent of these meetings is to: + +* Focus on fixing bugs, eliminating test flakes and general release + stabilization. +* Ensure docs and release notes are written and accurate. +* Identify all enhancement going into the release, and make sure alpha, beta, GA + is marked in enhancements repo. +* Provide a [one-stop view of release progress](https://bit.ly/k8s114-minutes) + including relevant release metrics. + +### Code Freeze + +All enhancements going into the release must be code-complete, **including +tests**, and have docs PRs open by ***Thursday, March 7th, 2018***. + +The docs PRs don't have to be ready to merge, but it should be clear what the +topic will be and who is responsible for writing it. This person will become the +primary contact for the documentation lead. It’s incredibly important that +documentation work gets completed as quickly as possible. + +After this point, only release-blocking issues and PRs will be allowed in the +milestone. + +### Code Thaw + +One week prior to release, it is expected that all but a handful of outstanding +PRs for kubernetes v1.14.0 have landed in the release-1.14 branch. Assuming the +release team agrees, Code Freeze will be lifted, and we enter Code Thaw. + +From this point forward, any PRs intended for v1.14 must be cherry picked to the +release-1.14 branch. + +## Processes + +### Exceptions + +Starting at [Enhancements Freeze] the release team will solicit and rule on +[exception requests] for enhancements and test work that is unlikely to be done +by Code Freeze. The exception approval is the responsibility of the SIG or SIGs +labeled in the pull request. The release team may intervene or deny the request +only if it poses a risk to release quality, or could negatively impact the overall +timeline. Changes introduced at this point should be well-tested, +well-understood, limited in architectural scope, and low risk. All of those +factors should be considered in the approval process. Enhancements on an +feature branch with documentation, test cases, and passing CI are more likely to +be accepted. + +### Pruning + +Enhancements that are partially implemented and/or lack sufficient tests may be +considered for pruning beginning after [Code Freeze], unless they've been +granted an [Exception]. + +The release team will work with SIGs and enhancements owners to evaluate each +case, but for example, pruning could include actions such as: + +* Disabling the use of a new API or field +* Switching the default value of a flag or field +* Moving a new API or field behind an Alpha Enhancements gate +* Reverting commits or deleting code + +This should occur before 1.14.0-beta.1 is cut so we have time to gather signal +on whether the system is stable in this state. These are considered drastic +measures, so the release team will strive to coordinate at-risk work with SIGs +before this time. The goal is to make code freeze, and overall project +transparency, enforceable despite the lack of a consistently used feature branch +process. + +### Docs + +If an enhancement needs documentation, enter "Yes" in the enhancement tracking +spreadsheet and add a link to the documentation PR. You can open documentation +PRs in the [kubernetes/website] repository. If you have questions, the release +documentation lead, or representatives from SIG-Docs will be happy to assist +you. + +For documentation PRs: + +* Open PRs against the dev-1.14 branch based off of the 1.14 release PR. The + documentation workflow uses feature branches for release documentation, rather +than basing from master. **Be sure to open your PR against the release branch**. +* Add your PR to the 1.14 Release milestone. + +[Enhancements Freeze]: #enhancements-freeze +[Burndown]: #burndown +[Code Freeze]: #code-freeze +[Code Thaw]: #code-thaw +[Exception]: #exceptions + +[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[contact-info]: https://bit.ly/k8s114-contacts +[k8s114-calendar]: https://bit.ly/k8s114-calendar + +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes +[kubernetes/enhancements]: https://github.com/kubernetes/enhancements +[kubernetes/website]: https://github.com/kubernetes/website + +[k/e-milestone-v1.14]: https://github.com/kubernetes/enhancements/milestone/13 +[k/k-milestone-v1.14]: https://github.com/kubernetes/kubernetes/milestone/41 +[k/sr-milestone-v1.14]: https://github.com/kubernetes/sig-release/milestone/7 + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-upgrade]: https://testgrid.k8s.io/sig-release-master-upgrade#Summary +[1.14-blocking]:https://testgrid.k8s.io/sig-release-1.14-blocking#Summary + +[exception requests]: https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md diff --git a/releases/release-1.14/exception.yaml b/releases/release-1.14/exception.yaml index df743d3b516..8606603f5af 100644 --- a/releases/release-1.14/exception.yaml +++ b/releases/release-1.14/exception.yaml @@ -1,79 +1,79 @@ -# Exceptions to Code Freeze requested in 1.14 -# Google Group: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown -# Release Team Lead: Aaron Crickenberger (@spiffxp) - -- name: - issue: - date_requested: - date_reviewed: - thread: - pull_requests: - - - status: - -- name: Support Out-of-Tree vSphere Cloud Provider - issue: 670 - date_requested: 2019-01-30 - date_reviewed: 2019-01-30 - thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/psJ0VI-gt5U - pull_requests: - - - status: Approved - -- name: Kubelet Resource Metrics Endpoint - issue: 727 - date_requested: 2019-01-30 - date_reviewed: 2019-01-31 - thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/pFGpJkGlOZU - pull_requests: Will open after KEP merged - - - status: Approved - -- name: Promote RunAsGroup to beta - issue: 213 - date_requested: 2019-02-01 - date_reviewed: 2019-02-04 - thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/d7P6XjunEjg - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/73007 - - https://github.com/kubernetes/enhancements/pull/800 - - https://github.com/kubernetes/website/pull/12297 - - - status: Approved - -- name: Promote HugePages to GA - issue: 750 - date_requested: 2019-01-30 - date_reviewed: 2019-01-31 - thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/dap9gV230Do - pull_requests: https://github.com/kubernetes/kubernetes/issues/72651 - - - status: Approved - -- name: Pid Limiting - issue: 757 - date_requested: 2019-01-30 - date_reviewed: 2019-01-31 - thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/AdcWnQhlvdM - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/72076 - - - status: Approved - -- name: Promote Node OS/Arch labels to GA - issue: 793 - date_requested: 2019-01-30 - date_reviewed: 2019-01-31 - thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/6gYaVroafsM - pull_requests: - - - status: Approved - - - name: CSI raw block volumes to beta - issue: 565 - date_requested: 2019-01-31 - date_reviewed: 2019-02-01 - thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/G7RlJsKvsOc - pull_requests: https://github.com/kubernetes/enhancements/pull/794 - - - status: Approved +# Exceptions to Code Freeze requested in 1.14 +# Google Group: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown +# Release Team Lead: Aaron Crickenberger (@spiffxp) + +- name: + issue: + date_requested: + date_reviewed: + thread: + pull_requests: + - + status: + +- name: Support Out-of-Tree vSphere Cloud Provider + issue: 670 + date_requested: 2019-01-30 + date_reviewed: 2019-01-30 + thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/psJ0VI-gt5U + pull_requests: + - + status: Approved + +- name: Kubelet Resource Metrics Endpoint + issue: 727 + date_requested: 2019-01-30 + date_reviewed: 2019-01-31 + thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/pFGpJkGlOZU + pull_requests: Will open after KEP merged + - + status: Approved + +- name: Promote RunAsGroup to beta + issue: 213 + date_requested: 2019-02-01 + date_reviewed: 2019-02-04 + thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/d7P6XjunEjg + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/73007 + - https://github.com/kubernetes/enhancements/pull/800 + - https://github.com/kubernetes/website/pull/12297 + - + status: Approved + +- name: Promote HugePages to GA + issue: 750 + date_requested: 2019-01-30 + date_reviewed: 2019-01-31 + thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/dap9gV230Do + pull_requests: https://github.com/kubernetes/kubernetes/issues/72651 + - + status: Approved + +- name: Pid Limiting + issue: 757 + date_requested: 2019-01-30 + date_reviewed: 2019-01-31 + thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/AdcWnQhlvdM + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/72076 + - + status: Approved + +- name: Promote Node OS/Arch labels to GA + issue: 793 + date_requested: 2019-01-30 + date_reviewed: 2019-01-31 + thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/6gYaVroafsM + pull_requests: + - + status: Approved + + - name: CSI raw block volumes to beta + issue: 565 + date_requested: 2019-01-31 + date_reviewed: 2019-02-01 + thread: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown/G7RlJsKvsOc + pull_requests: https://github.com/kubernetes/enhancements/pull/794 + - + status: Approved diff --git a/releases/release-1.14/release-notes-draft.md b/releases/release-1.14/release-notes-draft.md index 1de62f1f366..a827b6662fa 100644 --- a/releases/release-1.14/release-notes-draft.md +++ b/releases/release-1.14/release-notes-draft.md @@ -1,430 +1,430 @@ -# Kubernetes v1.14 Release Notes - -## 1.14 What’s New - -Support for Windows Nodes is Graduating to Stable ([#116](https://github.com/kubernetes/enhancements/issues/116) ) - -- Support for Windows Server 2019 for worker nodes and containers -- Support for out of tree networking with Azure-CNI, OVN-Kubernetes and Flannel -- Improved support for pods, service types, workload controllers and metrics/quotas to closely match the capabilities offered for Linux containers -kubernetes/enhancements: [#116](https://github.com/kubernetes/enhancements/issues/116) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-windows/20190103-windows-node-support.md)] - -Updated Plugin Mechanism for kubectl is Graduating to Stable ([#579](https://github.com/kubernetes/enhancements/issues/579)) - -- Extends functionality to kubectl to support extensions adding new commands as well as overriding specific subcommands (at any depth). -- Documentation fixes -kubernetes/enhancements: [#579](https://github.com/kubernetes/enhancements/issues/579) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/0024-kubectl-plugins.md#summary)] - -Durable Local Storage Management is Now GA ([#121](https://github.com/kubernetes/enhancements/issues/121#issuecomment-457396290)) - -- Makes locally attached (non-network attached) storage available as a persistent volume source. -- Allows users to take advantage of the typically cheaper and improved performance of persistent local storage -kubernetes/kubernetes: [#73525](https://github.com/kubernetes/kubernetes/pull/73525), [#74391](https://github.com/kubernetes/kubernetes/pull/74391), [#74769](http://github.com/kubernetes/kubernetes/pull/74769) -kubernetes/enhancements: [#121](https://github.com/kubernetes/enhancements/issues/121#issuecomment-457396290) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/20190124-local-persistent-volumes.md)] - -Pid Limiting is Graduating to Beta ([#757](https://github.com/kubernetes/enhancements/issues/757)) - -- Prevents a pod from starving pid resource -- Ability to isolate pid resources pod-to-pod and node-to-pod -kubernetes/kubernetes: [#73651](http://github.com/kubernetes/kubernetes/pull/73651) -kubernetes/enhancements: [#757](https://github.com/kubernetes/enhancements/issues/757) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190129-pid-limiting.md)] - -Pod Priority and Preemption in Kubernetes ([#564](https://github.com/kubernetes/enhancements/issues/564)) - -- Pod priority and preemption enables Kubernetes scheduler to schedule more important Pods first and when cluster is out of resources, it removes less important pods to create room for more important ones. The importance is specified by priority. -kubernetes/kubernetes: [#73498](https://github.com/kubernetes/kubernetes/pull/73498), [#73555](https://github.com/kubernetes/kubernetes/pull/73555), [#74465](https://github.com/kubernetes/kubernetes/pull/74465) -kubernetes/enhancements: [#564](https://github.com/kubernetes/enhancements/issues/564) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-scheduling/20190131-pod-priority-preemption.md)] - -Pod Ready++ ([#580](https://github.com/kubernetes/enhancements/issues/580)) - -- Introduces extension point for external feedback on pod readiness. -kubernetes/kubernetes: [#74434](http://github.com/kubernetes/kubernetes/pull/74434), -kubernetes/enhancements: [#580](https://github.com/kubernetes/enhancements/issues/580) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md)] - -Kubeadm: Automate certificate copy between control planes in HA setups - -- Joining control plane nodes to a HA cluster can now be simplified by enabling the optional automatic copy of certificates from an existing control plane node. -- You can now use `kubeadm init --experimental-upload-certs` and `kubeadm join --experimental-control-plane --certificate-key`. -kubernetes/kubeadm: [#1373](https://github.com/kubernetes/kubeadm/issues/1373) -kubernetes/enhancements: [#357](https://github.com/kubernetes/enhancements/issues/357) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cluster-lifecycle/20190122-Certificates-copy-for-kubeadm-join--control-plane.md)] - -Kubeadm: Expose the `kubeadm join` workflow as phases - -- The `kubeadm join` command can now be used in phases. Similar to the work that was done for `kubeadm init` in 1.13, in 1.14 the `join` phases can be now executed step-by-step/selectively using the `kubeadm join phase` sub-command. This makes it possible to further customize the workflow of joining nodes to the cluster. -kubernetes/kubeadm: [#1204](https://github.com/kubernetes/kubeadm/issues/1204) -kubernetes/enhancements: [kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cluster-lifecycle/0029-20180918-kubeadm-phases-beta.md) - -## Known Issues - -- There is a known issue [coredns/coredns#2629](https://github.com/coredns/coredns/issues/2629) in CoreDNS 1.3.1, wherein if the Kubernetes API shuts down while CoreDNS is connected, CoreDNS will crash. The issue is fixed in CoreDNS 1.4.0 in [coredns/coredns#2529](https://github.com/coredns/coredns/pull/2529). -- Kubelet might fail to restart if an existing flexvolume mounted pvc contains a large number of directories, or is full. [#75019](https://github.com/kubernetes/kubernetes/pull/75019) - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- kube-apiserver: - - Default RBAC policy no longer grants access to discovery and permission-checking APIs (used by `kubectl auth can-i`) to *unauthenticated* users. Upgraded clusters preserve prior behavior, but cluster administrators wishing to grant unauthenticated users access in new clusters will need to explicitly opt-in to expose the discovery and/or permission-checking APIs: - - `kubectl create clusterrolebinding anonymous-discovery --clusterrole=system:discovery --group=system:unauthenticated` - - `kubectl create clusterrolebinding anonymous-access-review --clusterrole=system:basic-user --group=system:unauthenticated` - - The deprecated --storage-versions flag has been removed. The storage versions will always be the default value built-in the kube-apiserver binary. ([#67678](https://github.com/kubernetes/kubernetes/pull/67678), [@caesarxuchao](https://github.com/caesarxuchao)) - - The deprecated `--repair-malformed-updates` flag has been removed ([#73663](https://github.com/kubernetes/kubernetes/pull/73663), [@danielqsj](https://github.com/danielqsj)) - - The `/swaggerapi/*` schema docs, deprecated since 1.7, have been removed in favor of the /openapi/v2 schema docs. ([#72924](https://github.com/kubernetes/kubernetes/pull/72924), [@liggitt](https://github.com/liggitt)) - - The /swagger.json and /swagger-2.0.0.pb-v1 schema documents, deprecated since v1.10, have been removed in favor of `/openapi/v2` ([#73148](https://github.com/kubernetes/kubernetes/pull/73148), [@liggitt](https://github.com/liggitt)) - - `kube-apiserver` now only aggregates openapi schemas from `/openapi/v2` endpoints of aggregated API servers. The fallback to aggregate from `/swagger.json` has been removed. Ensure aggregated API servers provide schema information via `/openapi/v2` (available since v1.10). ([#73441](https://github.com/kubernetes/kubernetes/pull/73441), [@roycaihw](https://github.com/roycaihw)) - - The OpenAPI definitions with the prefix "io.k8s.kubernetes.pkg" (deprecated since 1.9) have been removed. ([#74596](https://github.com/kubernetes/kubernetes/pull/74596), [@sttts](https://github.com/sttts)) - - The `ValidateProxyRedirects` feature was promoted to Beta and enabled by default. This feature restricts redirect-following from the apiserver to same-host redirects. If nodes are configured to respond to CRI streaming requests on a different host interface than what the apiserver makes requests on (only the case if not using the built-in dockershim & setting the kubelet flag `--redirect-container-streaming=true`), then these requests will be broken. In that case, the feature can be temporarily disabled until the node configuration is corrected. We suggest setting `--redirect-container-streaming=false` on the kubelet to avoid issues.([#72552](https://github.com/kubernetes/kubernetes/pull/72552), [@tallclair](https://github.com/tallclair)) - -- kubectl - - The deprecated `--show-all` flag to `kubectl get` has been removed ([#69255](https://github.com/kubernetes/kubernetes/pull/69255), [@Pingan2017](https://github.com/Pingan2017)) - -- kubelet - - The deprecated `--experimental-fail-swap-on` flag has been removed ([#69552](https://github.com/kubernetes/kubernetes/pull/69552), [@Pingan2017](https://github.com/Pingan2017)) - - Health check (liveness & readiness) probes using an HTTPGetAction will no longer follow redirects to different hostnames from the original probe request. Instead, these non-local redirects will be treated as a Success (the documented behavior). In this case an event with reason "ProbeWarning" will be generated, indicating that the redirect was ignored. If you were previously relying on the redirect to run health checks against different endpoints, you will need to perform the healthcheck logic outside the Kubelet, for instance by proxying the external endpoint rather than redirecting to it. ([#75416](https://github.com/kubernetes/kubernetes/pull/75416), [@tallclair](https://github.com/tallclair)) - -- client-go - - The deprecated versionless API group accessors (like `clientset.Apps()`) have been removed. Use an explicit version instead (like `clientset.AppsV1()`) ([#74422](https://github.com/kubernetes/kubernetes/pull/74422), [@liggitt](https://github.com/liggitt)) - - The disk-cached discovery client is moved from k8s.io/client-go/discovery to k8s.io/client-go/discovery/cached/disk. -The memory-cached discovery client is moved from k8s.io/client-go/discovery/cached to k8s.io/client-go/discovery/cached/memory. -([#72214](https://github.com/kubernetes/kubernetes/pull/72214), [@caesarxuchao](https://github.com/caesarxuchao)) - -- kubeadm - - `kubeadm alpha preflight` and `kubeadm alpha preflight node` are removed; you can now use `kubeadm join phase preflight` ([#73718](https://github.com/kubernetes/kubernetes/pull/73718), [@fabriziopandini](https://github.com/fabriziopandini)) - -- The deprecated taints `node.alpha.kubernetes.io/notReady` and `node.alpha.kubernetes.io/unreachable` are no longer supported or adjusted. These uses should be replaced with `node.kubernetes.io/not-ready` and `node.kubernetes.io/unreachable` - ([#73001](https://github.com/kubernetes/kubernetes/pull/73001), [@shivnagarajan](https://github.com/shivnagarajan)) - -- Any Prometheus queries that match `pod_name` and `container_name` labels (e.g. cadvisor or kubelet probe metrics) should be updated to use `pod` and `container` instead. `pod_name` and `container_name` labels will be present alongside `pod` and `container` labels for one transitional release and removed in the future. -([#69099](https://github.com/kubernetes/kubernetes/pull/69099), [@ehashman](https://github.com/ehashman)) - -## Deprecations - -- kubectl - - `kubectl convert` is deprecated and will be removed in v1.17. - - The `--export` flag for the `kubectl get` command is deprecated and will be removed in v1.18. ([#73787](https://github.com/kubernetes/kubernetes/pull/73787), [@soltysh](https://github.com/soltysh)) - -- kubelet - - OS and Arch information is now recorded in `kubernetes.io/os` and `kubernetes.io/arch` labels on Node objects. The previous labels (`beta.kubernetes.io/os` and `beta.kubernetes.io/arch`) are still recorded, but are deprecated and targeted for removal in v1.18. ([#73333](https://github.com/kubernetes/kubernetes/pull/73333), [@yujuhong](https://github.com/yujuhong)) - - The `--containerized` flag is deprecated and will be removed in a future release ([#74267](https://github.com/kubernetes/kubernetes/pull/74267), [@dims](https://github.com/dims)) - -- hyperkube - - The `--make-symlinks` flag is deprecated and will be removed in a future release. ([#74975](https://github.com/kubernetes/kubernetes/pull/74975), [@dims](https://github.com/dims)) -- API - - Ingress resources are now available via `networking.k8s.io/v1beta1`. Ingress resources in `extensions/v1beta1` are deprecated and will no longer be served in v1.18. Existing persisted data is available via the new API group/version ([#74057](https://github.com/kubernetes/kubernetes/pull/74057), [@liggitt](https://github.com/liggitt)) - - NetworkPolicy resources will no longer be served from `extensions/v1beta1` in v1.16. Migrate use to the `networking.k8s.io/v1` API, available since v1.8. Existing persisted data can be retrieved via the `networking.k8s.io/v1` API. - - PodSecurityPolicy resources will no longer be served from `extensions/v1beta1` in v1.16. Migrate to the `policy/v1beta1` API, available since v1.10. Existing persisted data can be retrieved via the `policy/v1beta1` API. - - DaemonSet, Deployment, and ReplicaSet resources will no longer be served from `extensions/v1beta1`, `apps/v1beta1`, or `apps/v1beta2` in v1.16. Migrate to the `apps/v1` API, available since v1.9. Existing persisted data can be retrieved via the `apps/v1` API. - - PriorityClass resources have been promoted to `scheduling.k8s.io/v1` with no changes. The `scheduling.k8s.io/v1beta1` and `scheduling.k8s.io/v1alpha1` versions are now deprecated and will stop being served by default in v1.17. ([#73555](https://github.com/kubernetes/kubernetes/pull/73555), [#74465](https://github.com/kubernetes/kubernetes/pull/74465), [@bsalamat](https://github.com/bsalamat)) - - The `export` query parameter for list API calls is deprecated and will be removed in v1.18 ([#73783](https://github.com/kubernetes/kubernetes/pull/73783), [@deads2k](https://github.com/deads2k)) -- The following features are now GA, and the associated feature gates are deprecated and will be removed in v1.15: - - `CustomPodDNS` - - `HugePages` - - `MountPropagation` - - `PersistentLocalVolumes` -- CoreDNS: The following directives or keywords are deprecated and will be removed in v1.15: - - `upstream` option of `kubernetes` plugin, becoming default behavior in v1.15. - - `proxy` plugin replaced by `forward` plugin - -## Removed and deprecated metrics - -### Removed metrics - -- `reflector_items_per_list` -- `reflector_items_per_watch` -- `reflector_last_resource_version` -- `reflector_list_duration_seconds` -- `reflector_lists_total` -- `reflector_short_watches_total` -- `reflector_watch_duration_seconds` -- `reflector_watches_total` - -### Deprecated metrics - -- `rest_client_request_latency_seconds` -> `rest_client_request_duration_seconds` -- `apiserver_proxy_tunnel_sync_latency_secs` -> `apiserver_proxy_tunnel_sync_duration_seconds` -- `scheduler_scheduling_latency_seconds` -> `scheduler_scheduling_duration_seconds` -- `kubelet_pod_worker_latency_microseconds` -> `kubelet_pod_worker_duration_seconds` -- `kubelet_pod_start_latency_microseconds` -> `kubelet_pod_start_duration_seconds` -- `kubelet_cgroup_manager_latency_microseconds` -> `kubelet_cgroup_manager_duration_seconds` -- `kubelet_pod_worker_start_latency_microseconds` -> `kubelet_pod_worker_start_duration_seconds` -- `kubelet_pleg_relist_latency_microseconds` -> `kubelet_pleg_relist_duration_seconds` -- `kubelet_pleg_relist_interval_microseconds` -> `kubelet_pleg_relist_interval_seconds` -- `kubelet_eviction_stats_age_microseconds` -> `kubelet_eviction_stats_age_seconds` -- `kubelet_runtime_operations` -> `kubelet_runtime_operations_total` -- `kubelet_runtime_operations_latency_microseconds` -> `kubelet_runtime_operations_duration_seconds` -- `kubelet_runtime_operations_errors` -> `kubelet_runtime_operations_errors_total` -- `kubelet_device_plugin_registration_count` -> `kubelet_device_plugin_registration_total` -- `kubelet_device_plugin_alloc_latency_microseconds` -> `kubelet_device_plugin_alloc_duration_seconds` -- `docker_operations` -> `docker_operations_total` -- `docker_operations_latency_microseconds` -> `docker_operations_latency_seconds` -- `docker_operations_errors` -> `docker_operations_errors_total` -- `docker_operations_timeout` -> `docker_operations_timeout_total` -- `network_plugin_operations_latency_microseconds` -> `network_plugin_operations_latency_seconds` -- `sync_proxy_rules_latency_microseconds` -> `sync_proxy_rules_latency_seconds` -- `apiserver_request_count` -> `apiserver_request_total` -- `apiserver_request_latencies` -> `apiserver_request_latency_seconds` -- `apiserver_request_latencies_summary` -> `apiserver_request_latency_seconds` -- `apiserver_dropped_requests` -> `apiserver_dropped_requests_total` -- `etcd_helper_cache_hit_count` -> `etcd_helper_cache_hit_total` -- `etcd_helper_cache_miss_count` -> `etcd_helper_cache_miss_total` -- `etcd_helper_cache_entry_count` -> `etcd_helper_cache_entry_total` -- `etcd_request_cache_get_latencies_summary` -> `etcd_request_cache_get_latency_seconds` -- `etcd_request_cache_add_latencies_summary` -> `etcd_request_cache_add_latency_seconds` -- `etcd_request_latencies_summary` -> `etcd_request_latency_seconds` -- `transformation_latencies_microseconds` -> `transformation_latencies_seconds` -- `data_key_generation_latencies_microseconds` -> `data_key_generation_latencies_seconds` - -## Notable Features - -- Increased the histogram resolution of the API server client certificate to accommodate short-lived (< 6h) client certificates. ([#74806](https://github.com/kubernetes/kubernetes/pull/74806), [@mxinden](https://github.com/mxinden)) -- Updated to use golang 1.12 ([#74632](https://github.com/kubernetes/kubernetes/pull/74632), [@cblecker](https://github.com/cblecker)) -- The `RunAsGroup` feature has been promoted to beta and enabled by default. `PodSpec` and `PodSecurityPolicy` objects can be used to control the primary GID of containers on supported container runtimes. ([#73007](https://github.com/kubernetes/kubernetes/pull/73007), [@krmayankk](https://github.com/krmayankk)) -- Added the same information to an init container as a standard container in a pod when using `PodPresets`. ([#71479](https://github.com/kubernetes/kubernetes/pull/71479), [@soggiest](https://github.com/soggiest)) -- kube-conformance image will now run ginkgo with the `--dryRun` flag if the container is run with the environment variable E2E_DRYRUN set. ([#74731](https://github.com/kubernetes/kubernetes/pull/74731), [@johnSchnake](https://github.com/johnSchnake)) -- Introduced dynamic volume provisioning shim for CSI migration ([#73653](https://github.com/kubernetes/kubernetes/pull/73653), [@ddebroy](https://github.com/ddebroy)) -- Applied resources from a directory containing kustomization.yaml ([#74140](https://github.com/kubernetes/kubernetes/pull/74140), [@Liujingfang1](https://github.com/Liujingfang1)) -- kubeadm: Allowed to download certificate secrets uploaded by `init` or `upload-certs` phase, allowing to transfer certificate secrets (certificates and keys) from the cluster to other master machines when creating HA deployments. ([#74168](https://github.com/kubernetes/kubernetes/pull/74168), [@ereslibre](https://github.com/ereslibre)) -- The `--quiet` option to `kubectl run` now suppresses resource deletion messages emitted when the `--rm` option is specified. ([#73266](https://github.com/kubernetes/kubernetes/pull/73266), [@awh](https://github.com/awh)) -- Added Custom Resource support to `kubectl autoscale` ([#72678](https://github.com/kubernetes/kubernetes/pull/72678), [@rmohr](https://github.com/rmohr)) -- Cinder volume limit can now be configured from node too ([#74542](https://github.com/kubernetes/kubernetes/pull/74542), [@gnufied](https://github.com/gnufied)) -- It is now possible to combine the `-f` and `-l` flags in `kubectl logs` ([#67573](https://github.com/kubernetes/kubernetes/pull/67573), [@m1kola](https://github.com/m1kola)) -- New conformance tests added for API Aggregation. ([#63947](https://github.com/kubernetes/kubernetes/pull/63947), [@jennybuckley](https://github.com/jennybuckley)) -- Moved fluentd-elasticsearch addon images to community controlled location ([#73819](https://github.com/kubernetes/kubernetes/pull/73819), [@coffeepac](https://github.com/coffeepac)) -- Removed local etcd members from the etcd cluster when `kubeadm reset` ([#74112](https://github.com/kubernetes/kubernetes/pull/74112), [@pytimer](https://github.com/pytimer)) -- kubeadm will now not fail preflight checks when running on >= 5.0 Linux kernel ([#74355](https://github.com/kubernetes/kubernetes/pull/74355), [@brb](https://github.com/brb)) -- Scheduler cache snapshot algorithm has been optimized to improve scheduling throughput. ([#74041](https://github.com/kubernetes/kubernetes/pull/74041), [@bsalamat](https://github.com/bsalamat)) -- It is now possible to upload certificates required to join a new control-plane to kubeadm-certs secret using the flag `--experimental-upload-certs` on `init` or upload-certs phase. ([#73907](https://github.com/kubernetes/kubernetes/pull/73907), [@yagonobre](https://github.com/yagonobre)) -[@RobertKrawitz](https://github.com/RobertKrawitz)) -- `kubectl auth reconcile` now outputs details about what changes are being made ([#71564](https://github.com/kubernetes/kubernetes/pull/71564), [@liggitt](https://github.com/liggitt)) -- Added Kustomize as a subcommand in kubectl ([#73033](https://github.com/kubernetes/kubernetes/pull/73033), [@Liujingfang1](https://github.com/Liujingfang1)) -- Added `kubelet_node_name` metrics. ([#72910](https://github.com/kubernetes/kubernetes/pull/72910), [@danielqsj](https://github.com/danielqsj)) -- Updated AWS SDK to v1.16.26 for ECR PrivateLink support ([#73435](https://github.com/kubernetes/kubernetes/pull/73435), [@micahhausler](https://github.com/micahhausler)) -- Expanded `kubectl wait` to work with more types of selectors. ([#71746](https://github.com/kubernetes/kubernetes/pull/71746), [@rctl](https://github.com/rctl)) -([#72832](https://github.com/kubernetes/kubernetes/pull/72832), [@MrHohn](https://github.com/MrHohn)) -- Added configuration for AWS endpoint fine control: ([#72245](https://github.com/kubernetes/kubernetes/pull/72245), [@ampsingram](https://github.com/ampsingram)) -- The CoreDNS configuration now has the forward plugin for proxy in the default configuration instead of the proxy plugin. ([#73267](https://github.com/kubernetes/kubernetes/pull/73267), [@rajansandeep](https://github.com/rajansandeep)) -- Added alpha field storageVersionHash to the discovery document for each resource. Its value must be treated as opaque by clients. Only equality comparison on the value is valid. ([#73191](https://github.com/kubernetes/kubernetes/pull/73191), [@caesarxuchao](https://github.com/caesarxuchao)) -- If you are running the cloud-controller-manager and you have the `pvlabel.kubernetes.io` alpha Initializer enabled, you must now enable PersistentVolume labeling using the `PersistentVolumeLabel` admission controller instead. You can do this by adding `PersistentVolumeLabel` in the `--enable-admission-plugins` kube-apiserver flag. ([#73102](https://github.com/kubernetes/kubernetes/pull/73102), [@andrewsykim](https://github.com/andrewsykim)) -- kubectl supports copying files with wild card ([#72641](https://github.com/kubernetes/kubernetes/pull/72641), [@dixudx](https://github.com/dixudx)) -- kubeadm now attempts to detect an installed CRI by its usual domain socket, so that `--cri-socket` can be omitted from the command line if Docker is not used and there is a single CRI installed. ([#69366](https://github.com/kubernetes/kubernetes/pull/69366), [@rosti](https://github.com/rosti)) -- `CSINodeInfo` and `CSIDriver` CRDs have been installed in the local cluster. ([#72584](https://github.com/kubernetes/kubernetes/pull/72584), [@xing-yang](https://github.com/xing-yang)) -- Node OS/arch labels have been promoted to GA ([#73048](https://github.com/kubernetes/kubernetes/pull/73048), [@yujuhong](https://github.com/yujuhong)) -- Added support for max attach limit for Cinder ([#72980](https://github.com/kubernetes/kubernetes/pull/72980), [@gnufied](https://github.com/gnufied)) -- Enabled mTLS encryption between etcd and kube-apiserver in GCE ([#70144](https://github.com/kubernetes/kubernetes/pull/70144), [@wenjiaswe](https://github.com/wenjiaswe)) -- Added `ResourceVersion` as a precondition for delete in order to ensure a delete fails if an unobserved change happens to an object. ([#74040](https://github.com/kubernetes/kubernetes/pull/74040), [@ajatprabha](https://github.com/ajatprabha)) -- There is now support for collecting pod logs under `/var/log/pods/NAMESPACE_NAME_UID` to stackdriver with `k8s_pod` resource type. ([#74502](https://github.com/kubernetes/kubernetes/pull/74502), [@Random-Liu](https://github.com/Random-Liu)) -- Changed CRI pod log directory from `/var/log/pods/UID` to `/var/log/pods/NAMESPACE_NAME_UID`. ([#74441](https://github.com/kubernetes/kubernetes/pull/74441), [@Random-Liu](https://github.com/Random-Liu)) -- `RuntimeClass` has been promoted to beta, and is enabled by default. ([#75003](https://github.com/kubernetes/kubernetes/pull/75003), [@tallclair](https://github.com/tallclair)) -- New "dry_run" metric label (indicating the value of the dryRun query parameter) has been added into the metrics: -* apiserver_request_total -* apiserver_request_duration_seconds -New "APPLY" value for the "verb" metric label which indicates a PATCH with "Content-Type: apply-patch+yaml". This value is experimental and will only be present if the ServerSideApply alpha feature is enabled. ([#74997](https://github.com/kubernetes/kubernetes/pull/74997), [@jennybuckley](https://github.com/jennybuckley)) -- GCE: bumped COS image version to `cos-beta-73-11647-64-0` ([#75149](https://github.com/kubernetes/kubernetes/pull/75149), [@yguo0905](https://github.com/yguo0905)) -- Added alpha support for ephemeral CSI inline volumes that are embedded in pod specs. ([#74086](https://github.com/kubernetes/kubernetes/pull/74086), [@vladimirvivien](https://github.com/vladimirvivien)) - -## API Changes - -- [CRI] Added a new field called `runtime_handler` into `PodSandbox` and `PodSandboxStatus` to track the `RuntimeClass` information of a pod. ([#73833](https://github.com/kubernetes/kubernetes/pull/73833), [@haiyanmeng](https://github.com/haiyanmeng)) - -## Detailed Bug Fixes And Changes - -### API Machinery - -- client-go: `PortForwarder.GetPorts()` now contain correct local port if no local port was initially specified when setting up the port forwarder ([#73676](https://github.com/kubernetes/kubernetes/pull/73676), [@martin-helmich](https://github.com/martin-helmich)) -- Fixed an issue with missing `apiVersion/kind` in object data sent to admission webhooks ([#74448](https://github.com/kubernetes/kubernetes/pull/74448), [@liggitt](https://github.com/liggitt)) -- Prometheus metrics for `crd_autoregister`, `crd_finalizer` and `crd_naming_condition_controller` are exported. ([#71767](https://github.com/kubernetes/kubernetes/pull/71767), [@roycaihw](https://github.com/roycaihw)) -- Fixed admission metrics in seconds. ([#72343](https://github.com/kubernetes/kubernetes/pull/72343), [@danielqsj](https://github.com/danielqsj)) -- When a watch is closed by an HTTP2 load balancer and we are told to go away, skip printing the message to stderr by default. -- Spedup kubectl by >10 when calling out to kube-apiserver for discovery information. ([#73345](https://github.com/kubernetes/kubernetes/pull/73345), [@sttts](https://github.com/sttts)) -- Fixed watch to not send the same set of events multiple times causing watcher to go back in time ([#73845](https://github.com/kubernetes/kubernetes/pull/73845), [@wojtek-t](https://github.com/wojtek-t)) -([#73277](https://github.com/kubernetes/kubernetes/pull/73277), [@smarterclayton](https://github.com/smarterclayton)) -- Fix kube-apiserver not to create default/kubernetes service endpoints before it reports readiness via the /healthz and therefore is ready to serve requests. Also early during startup old endpoints are remove which might be left over from a previously crashed kube-apiserver. ([#74668](https://github.com/kubernetes/kubernetes/pull/74668), [@sttts](https://github.com/sttts)) -- Add a configuration field to shorten the timeout of validating/mutating admission webhook call. The timeout value must be between 1 and 30 seconds. Default to 30 seconds when unspecified. ([#74562](https://github.com/kubernetes/kubernetes/pull/74562), [@roycaihw](https://github.com/roycaihw)) -- The apiserver, including both the kube-apiserver and apiservers built with the generic apiserver library, will now return 413 RequestEntityTooLarge error if a json patch contains more than 10,000 operations. ([#74000](https://github.com/kubernetes/kubernetes/pull/74000), [@caesarxuchao](https://github.com/caesarxuchao)) -- Fixed an error processing watch events when running skewed apiservers ([#73482](https://github.com/kubernetes/kubernetes/pull/73482), [@liggitt](https://github.com/liggitt)) -- jsonpath expressions containing `[start:end:step]` slice are now evaluated correctly ([#73149](https://github.com/kubernetes/kubernetes/pull/73149), [@liggitt](https://github.com/liggitt)) -- `metadata.deletionTimestamp` is no longer moved into the future when issuing repeated DELETE requests against a resource containing a finalizer. ([#73138](https://github.com/kubernetes/kubernetes/pull/73138), [@liggitt](https://github.com/liggitt)) -- Fixed kube-apiserver not to create default/kubernetes service endpoints before it reports readiness via the /healthz and therefore is ready to serve requests. Also early during startup old endpoints are remove which might be left over from a previously crashed kube-apiserver. ([#74668](https://github.com/kubernetes/kubernetes/pull/74668), [@sttts](https://github.com/sttts)) -- `watch.Until` now works for long durations. ([#67350](https://github.com/kubernetes/kubernetes/pull/67350), [@tnozicka](https://github.com/tnozicka)) -- Added duration metric for CRD webhook converters. ([#74376](https://github.com/kubernetes/kubernetes/pull/74376), [@mbohlool](https://github.com/mbohlool)) -- Fixed keymutex issues which may crash in some platforms. ([#74348](https://github.com/kubernetes/kubernetes/pull/74348), [@danielqsj](https://github.com/danielqsj)) -- Considerably reduced the CPU load in kube-apiserver while aggregating OpenAPI specifications from aggregated API servers. ([#71223](https://github.com/kubernetes/kubernetes/pull/71223), [@sttts](https://github.com/sttts)) -- Fixed graceful apiserver shutdown to not drop outgoing bytes before the process terminates. ([#72970](https://github.com/kubernetes/kubernetes/pull/72970), [@sttts](https://github.com/sttts)) - -### Apps - -- Added deleting pods created by `DaemonSet` assigned to not existing nodes. ([#73401](https://github.com/kubernetes/kubernetes/pull/73401), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) -- Pod eviction now honors graceful deletion by default if no delete options are provided in the eviction request. ([#72730](https://github.com/kubernetes/kubernetes/pull/72730), [@liggitt](https://github.com/liggitt)) - -### Auth - -- Added `kubectl auth can-i --list` option, which allows users to know what actions they can do in specific namespaces. ([#64820](https://github.com/kubernetes/kubernetes/pull/64820), [@WanLinghao](https://github.com/WanLinghao)) -- The `rules` field in RBAC `Role` and `ClusterRole` objects is now correctly reported as optional in the openapi schema. ([#73250](https://github.com/kubernetes/kubernetes/pull/73250), [@liggitt](https://github.com/liggitt)) -- `system:kube-controller-manager` and `system:kube-scheduler` users are now permitted to perform delegated authentication/authorization checks by default RBAC policy ([#72491](https://github.com/kubernetes/kubernetes/pull/72491), [@liggitt](https://github.com/liggitt)) -- Error messages returned in authentication webhook status responses are now correctly included in the apiserver log ([#73595](https://github.com/kubernetes/kubernetes/pull/73595), [@liggitt](https://github.com/liggitt)) -- Fixed use of webhook admission plugins with multi-version custom resources ([#74154](https://github.com/kubernetes/kubernetes/pull/74154), [@mbohlool](https://github.com/mbohlool)) - -### AWS - -- Prevented AWS Network Load Balancer security groups ingress rules to be deleted by ensuring target groups are tagged. ([#73594](https://github.com/kubernetes/kubernetes/pull/73594), [@masterzen](https://github.com/masterzen)) -- AWS ELB health checks will now use HTTPS/SSL protocol for HTTPS/SSL backends. ([#70309](https://github.com/kubernetes/kubernetes/pull/70309), [@2rs2ts](https://github.com/2rs2ts)) - -### Azure - -- Fixed failure to detach Azure disk when there is server side error ([#74398](https://github.com/kubernetes/kubernetes/pull/74398), [@andyzhangx](https://github.com/andyzhangx)) -- Fixed subnet annotation checking for Azure internal loadbalancer ([#74498](https://github.com/kubernetes/kubernetes/pull/74498), [@feiskyer](https://github.com/feiskyer)) -- Fixed mixed protocol issue for Azure load balancer ([#74200](https://github.com/kubernetes/kubernetes/pull/74200), [@andyzhangx](https://github.com/andyzhangx)) -- Fixed Azure accounts timeout issue when there is no out-bound IP ([#74191](https://github.com/kubernetes/kubernetes/pull/74191), [@andyzhangx](https://github.com/andyzhangx)) -- Fixed Azure Container Registry anonymous repo image pull error ([#74715](https://github.com/kubernetes/kubernetes/pull/74715), [@andyzhangx](https://github.com/andyzhangx)) -- Fixed parse devicePath issue on Azure Disk ([#74499](https://github.com/kubernetes/kubernetes/pull/74499), [@andyzhangx](https://github.com/andyzhangx)) - -### CLI - -- Fixed `--help` flag parsing ([#74682](https://github.com/kubernetes/kubernetes/pull/74682), [@soltysh](https://github.com/soltysh)) -- Fixed a bug where `kubectl describe` cannot obtain the event messages for a static pod ([#74156](https://github.com/kubernetes/kubernetes/pull/74156), [@gaorong](https://github.com/gaorong)) -- Fixed panic when performing a `set env` operation on a `--local` resource ([#65636](https://github.com/kubernetes/kubernetes/pull/65636), [@juanvallejo](https://github.com/juanvallejo)) -- Missing directories listed in a user's PATH are no longer considered errors and are instead logged by the `kubectl plugin list` command when listing available plugins. ([#73542](https://github.com/kubernetes/kubernetes/pull/73542), [@juanvallejo](https://github.com/juanvallejo)) -- Now users can get object info like: - - ```bash - a. kubectl get pod test-pod -o custom-columns=CONTAINER:.spec.containers[0:3].name - b. kubectl get pod test-pod -o custom-columns=CONTAINER:.spec.containers[-2:].name - ``` - -([#73063](https://github.com/kubernetes/kubernetes/pull/73063), [@WanLinghao](https://github.com/WanLinghao)) - -- The `kubectl api-resources` command will no longer fail to display any resources on a single failure ([#73035](https://github.com/kubernetes/kubernetes/pull/73035), [@juanvallejo](https://github.com/juanvallejo)) -- kubectl now loads config file once and uses persistent client config ([#71117](https://github.com/kubernetes/kubernetes/pull/71117), [@dixudx](https://github.com/dixudx)) -- Printed `SizeLimit` of `EmptyDir` in `kubectl describe pod` outputs. ([#69279](https://github.com/kubernetes/kubernetes/pull/69279), [@dtaniwaki](https://github.com/dtaniwaki)) -- `kubectl delete --all-namespaces` is now a recognized flag. ([#73716](https://github.com/kubernetes/kubernetes/pull/73716), [@deads2k](https://github.com/deads2k)) - -### Cloud Provider - -- Fixed a bug that caused PV allocation on non-English vSphere installations to fail ([#73115](https://github.com/kubernetes/kubernetes/pull/73115), [@alvaroaleman](https://github.com/alvaroaleman)) - -### Cluster Lifecycle - -- kubeadm: fixed nil pointer dereference caused by a bug in url parsing ([#74454](https://github.com/kubernetes/kubernetes/pull/74454), [@bart0sh](https://github.com/bart0sh)) -- CoreDNS adds readinessProbe which prevents loadbalancing to unready pods, and also allows rolling updates to work as expected. ([#74137](https://github.com/kubernetes/kubernetes/pull/74137), [@rajansandeep](https://github.com/rajansandeep)) -- kubeadm no longer allows using v1alpha3 configs for anything else than converting them to `v1beta1`. ([#74025](https://github.com/kubernetes/kubernetes/pull/74025), [@rosti](https://github.com/rosti)) -- kubeadm: now allows the usage of `--kubeconfig-dir` and `--config` flags on kubeadm init ([#73998](https://github.com/kubernetes/kubernetes/pull/73998), [@yagonobre](https://github.com/yagonobre)) -- kubeadm: all master components are now exclusively relying on the `PriorityClassName` pod spec for annotating them as cluster critical components. Since `scheduler.alpha.kubernetes.io/critical-pod` annotation is no longer supported by Kubernetes 1.14 this annotation is no longer added to master components. ([#73857](https://github.com/kubernetes/kubernetes/pull/73857), [@ereslibre](https://github.com/ereslibre)) -- kubeadm no longer dumps backtrace if it fails to remove the running containers on reset. ([#73951](https://github.com/kubernetes/kubernetes/pull/73951), [@rosti](https://github.com/rosti)) -- kubeadm: fixed a bug in the underlying library for diff related to characters like '%' ([#73941](https://github.com/kubernetes/kubernetes/pull/73941), [@neolit123](https://github.com/neolit123)) -- Scale max-inflight now limits together with master VM sizes. ([#73268](https://github.com/kubernetes/kubernetes/pull/73268), [@wojtek-t](https://github.com/wojtek-t)) -- kubeadm reset: fixed a crash caused by the absence of a configuration file ([#73636](https://github.com/kubernetes/kubernetes/pull/73636), [@bart0sh](https://github.com/bart0sh)) -- CoreDNS is now version 1.3.1 ([#73610](https://github.com/kubernetes/kubernetes/pull/73610), [@rajansandeep](https://github.com/rajansandeep)) -- kubeadm: When certificates are present in joining a new control plane now ensures that they match at least the required SANs ([#73093](https://github.com/kubernetes/kubernetes/pull/73093), [@ereslibre](https://github.com/ereslibre)) -- kubeadm: added back `--cert-dir` option for `kubeadm init phase certs sa` ([#73239](https://github.com/kubernetes/kubernetes/pull/73239), [@mattkelly](https://github.com/mattkelly)) -- kubeadm: now explicitly waits for `etcd` to have grown when joining a new control plane ([#72984](https://github.com/kubernetes/kubernetes/pull/72984), [@ereslibre](https://github.com/ereslibre)) -- kubeadm: now pulls images when joining a new control plane instance ([#72870](https://github.com/kubernetes/kubernetes/pull/72870), [@MalloZup](https://github.com/MalloZup)) -- Exited kube-proxy when configuration file changes ([#59176](https://github.com/kubernetes/kubernetes/pull/59176), [@dixudx](https://github.com/dixudx)) -- kube-addon-manager was updated to v9.0, and now uses kubectl v1.13.2 and prunes workload resources via the apps/v1 API ([#72978](https://github.com/kubernetes/kubernetes/pull/72978), [@liggitt](https://github.com/liggitt)) -- kubeadm: Now allows certain certs/keys to be missing on the secret when transferring secrets using `--experimental-upload-certs` feature ([#75415](https://github.com/kubernetes/kubernetes/pull/75415), [@ereslibre](https://github.com/ereslibre)) - -### GCP - -- Fixed liveness probe in fluentd-gcp cluster addon ([#74522](https://github.com/kubernetes/kubernetes/pull/74522), [@Pluies](https://github.com/Pluies)) -- Reduced GCE log rotation check from 1 hour to every 5 minutes. Rotation policy is unchanged (new day starts, log file size > 100MB). ([#72062](https://github.com/kubernetes/kubernetes/pull/72062), [@jpbetz](https://github.com/jpbetz)) - -### Network - -- Reduces the cache TTL for negative responses to 5s minimum. ([#74093](https://github.com/kubernetes/kubernetes/pull/74093), [@blakebarnett](https://github.com/blakebarnett)) - -### Node - -- Fixed help message for `--container-runtime-endpoint`: only unix socket is support on Linux. ([#74712](https://github.com/kubernetes/kubernetes/pull/74712), [@feiskyer](https://github.com/feiskyer)) -- Image garbage collection no longer fails for images with only one tag but more than one repository associated. ([#70647](https://github.com/kubernetes/kubernetes/pull/70647), [@corvus-ch](https://github.com/corvus-ch)) -- Re-issued Allocate grpc calls before starting a container that requests device-plugin resources if the cached state is missing. ([#73824](https://github.com/kubernetes/kubernetes/pull/73824), [@jiayingz](https://github.com/jiayingz)) -- [CRI] Added a new field called `runtime_handler` into `PodSandbox` and `PodSandboxStatus` to track the `RuntimeClass` information of a pod. ([#73833](https://github.com/kubernetes/kubernetes/pull/73833), [@haiyanmeng](https://github.com/haiyanmeng)) -- Kubelet now tries to stop containers in unknown state once before restart or remove. ([#73802](https://github.com/kubernetes/kubernetes/pull/73802), [@Random-Liu](https://github.com/Random-Liu)) -- When pleg channel is full, events are now discarded and count is recorded ([#72709](https://github.com/kubernetes/kubernetes/pull/72709), [@changyaowei](https://github.com/changyaowei)) -- Fixed the unexpected `NotReady` status when Node's iops is full if the runtime is dockershim. ([#74389](https://github.com/kubernetes/kubernetes/pull/74389), [@answer1991](https://github.com/answer1991)) -- Fixed #73264 `cpuPeriod` was not reset, but used as set via flag, although it was disabled via alpha gate ([#73342](https://github.com/kubernetes/kubernetes/pull/73342), [@szuecs](https://github.com/szuecs)) -- Updated kubelet CLI summary documentation and generated webpage ([#73256](https://github.com/kubernetes/kubernetes/pull/73256), [@deitch](https://github.com/deitch)) -- Set a low `oom_score_adj` for containers in pods with system-critical priorities ([#73758](https://github.com/kubernetes/kubernetes/pull/73758), [@sjenning](https://github.com/sjenning)) -- kubelet: Resolved hang/timeout issues when running large numbers of pods with unique `ConfigMap/Secret` references ([#74755](https://github.com/kubernetes/kubernetes/pull/74755), [@liggitt](https://github.com/liggitt)) -- Events reported for container creation, start, and stop now report the container name in the message and are more consistently formatted. ([#73892](https://github.com/kubernetes/kubernetes/pull/73892), [@smarterclayton](https://github.com/smarterclayton)) -- Removed stale `OutOfDisk` condition from kubelet side ([#72507](https://github.com/kubernetes/kubernetes/pull/72507), [@dixudx](https://github.com/dixudx)) -- Fixed the setting of `NodeAddresses` when using the vSphere CloudProvider and nodes that have multiple IP addresses. ([#70805](https://github.com/kubernetes/kubernetes/pull/70805), [@danwinship](https://github.com/danwinship)) -- Fixed dockershim panic issues when deleting docker images. ([#75367](https://github.com/kubernetes/kubernetes/pull/75367), [@feiskyer](https://github.com/feiskyer)) -- Kubelet no longer watches `ConfigMaps` and `Secrets` for terminated pods, in worst scenario causing it to not be able to send other requests to kube-apiserver ([#74809](https://github.com/kubernetes/kubernetes/pull/74809), [@oxddr](https://github.com/oxddr)) -- A new `TaintNodesByCondition` admission plugin taints newly created Node objects as "not ready", to fix a race condition that could cause pods to be scheduled on new nodes before their taints were updated to accurately reflect their reported conditions. This admission plugin is enabled by default if the `TaintNodesByCondition` feature is enabled. ([#73097](https://github.com/kubernetes/kubernetes/pull/73097), [@bsalamat](https://github.com/bsalamat)) -- kubelet now accepts `pid=<number>` in the `--system-reserved` and `--kube-reserved` options to ensure that the specified number of process IDs will be reserved for the system as a whole and for Kubernetes system daemons respectively. Please reference `Kube Reserved` and `System Reserved` in `Reserve Compute Resources for System Daemons` in the Kubernetes documentation for general discussion of resource reservation. To utilize this functionality, you must set the feature gate `SupportNodePidsLimit=true` ([#73651](https://github.com/kubernetes/kubernetes/pull/73651) - -### Scheduling - -- Improved fairness of the scheduling queue by placing pods which are attempted recently behind other pods with the same priority. ([#73700](https://github.com/kubernetes/kubernetes/pull/73700), [@denkensk](https://github.com/denkensk)) -- Improved scheduler robustness to ensure that unschedulable pods are reconsidered for scheduling when appropriate. ([#73700](https://github.com/kubernetes/kubernetes/pull/73700), [#72558](https://github.com/kubernetes/kubernetes/pull/72558), [@denkensk](https://github.com/denkensk), [#73078](https://github.com/kubernetes/kubernetes/pull/73078), [@Huang-Wei](https://github.com/Huang-Wei)) - -### Storage - -- Fixed scanning of failed iSCSI targets. ([#74306](https://github.com/kubernetes/kubernetes/pull/74306), [@jsafrane](https://github.com/jsafrane)) -- StorageOS volume plugin updated to fix an issue where volume mount succeeds even if request to mount via StorageOS API fails. ([#69782](https://github.com/kubernetes/kubernetes/pull/69782), [@darkowlzz](https://github.com/darkowlzz)) -- Ensured directories on volumes are group-executable when using `fsGroup` ([#73533](https://github.com/kubernetes/kubernetes/pull/73533), [@mxey](https://github.com/mxey)) -- Updated CSI version to 1.1 ([#75391](https://github.com/kubernetes/kubernetes/pull/75391), [@gnufied](https://github.com/gnufied)) -- Ensured that volumes get provisioned based on the zone information provided in `allowedTopologies`. ([#72731](https://github.com/kubernetes/kubernetes/pull/72731), [@skarthiksrinivas](https://github.com/skarthiksrinivas)) -- Extended the `VolumeSubpathEnvExpansion` alpha feature to support environment variable expansion ([#71351](https://github.com/kubernetes/kubernetes/pull/71351), [@kevtaylor](https://github.com/kevtaylor)) -- Fixed a bug that prevented deletion of dynamically provisioned volumes in Quobyte backends. ([#68925](https://github.com/kubernetes/kubernetes/pull/68925), [@casusbelli](https://github.com/casusbelli)) - -### Testing - -- e2e storage tests now run faster and are easier to read ([#72434](https://github.com/kubernetes/kubernetes/pull/72434), [@pohly](https://github.com/pohly)) -- `e2e.test` now rejects unknown `--provider` values instead of merely warning about them. An empty provider name is not accepted anymore and was replaced by `skeleton` (a provider with no special behavior). ([#73402](https://github.com/kubernetes/kubernetes/pull/73402), [@pohly](https://github.com/pohly)) -- Updated to go1.11.5 ([#73326](https://github.com/kubernetes/kubernetes/pull/73326), [@ixdy](https://github.com/ixdy)) -- Updated to use go1.12.1 ([#75413](https://github.com/kubernetes/kubernetes/pull/75413), [@BenTheElder](https://github.com/BenTheElder)) -- e2e tests that require SSH may now be used against clusters that have nodes without external IP addresses by setting the environment variable `KUBE_SSH_BASTION` to the `host:port` of a machine that is allowed to SSH to those nodes. The same private key that the test would use is used for the bastion host. The test connects to the bastion and then tunnels another SSH connection to the node. ([#72286](https://github.com/kubernetes/kubernetes/pull/72286), [@smarterclayton](https://github.com/smarterclayton)) -- `PidPressure` now evicts pods from lowest priority to highest priority ([#72844](https://github.com/kubernetes/kubernetes/pull/72844), [@dashpole](https://github.com/dashpole)) -- Split up the mondo `kubernetes-test` tarball into `kubernetes-test-portable` and `kubernetes-test-{OS}-{ARCH}` tarballs. ([#74065](https://github.com/kubernetes/kubernetes/pull/74065), [@ixdy](https://github.com/ixdy)) - -### VMware - -- Applied zone labels to vSphere Volumes automatically. The zone labels are visible on the PV: ([#72687](https://github.com/kubernetes/kubernetes/pull/72687), [@subramanian-neelakantan](https://github.com/subramanian-neelakantan)) - -### Windows - -Support for Windows nodes and Windows containers went going stable. - -Support for Group Managed Service Accounts (GMSA) for Windows containers in Kubernetes. GMSA are a specific type of Active Directory account that provides automatic password management, simplified service principal name (SPN) management, and the ability to delegate the management to other administrators across multiple servers. - -- Fixed smb remount and unmount issues on Windows ([#73661](https://github.com/kubernetes/kubernetes/pull/73661), [@andyzhangx](https://github.com/andyzhangx), [#75087](https://github.com/kubernetes/kubernetes/pull/75087), [@andyzhangx](https://github.com/andyzhangx)) -- Added network stats for Windows nodes and containers ([#74788](https://github.com/kubernetes/kubernetes/pull/74788), [@feiskyer](https://github.com/feiskyer)) -- The new test `[sig-network] DNS should now provide /etc/hosts entries for the cluster [LinuxOnly] [Conformance]` will validate the host entries set in the ``/etc/hosts`` file (pod's FQDN and hostname), which should be managed by Kubelet. ([#72729](https://github.com/kubernetes/kubernetes/pull/72729), [@bclau](https://github.com/bclau)) -- Allowed the kubelet to pass Windows GMSA credentials down to Docker ([#73726](https://github.com/kubernetes/kubernetes/pull/73726), [@wk8](https://github.com/wk8)) -- Added kube-proxy support for overlay networking and DSR in Windows and new flags for `network-name`, `source-vip`, and `enable-dsr`. ([#70896](https://github.com/kubernetes/kubernetes/pull/70896), [@ksubrmnn](https://github.com/ksubrmnn)) -- windows: Ensured graceful termination when being run as windows service ([#73292](https://github.com/kubernetes/kubernetes/pull/73292), [@steffengy](https://github.com/steffengy)) -- vSphere cloud provider now correctly retrieves the VM's UUID when running on Windows ([#71147](https://github.com/kubernetes/kubernetes/pull/71147), [@benmoss](https://github.com/benmoss)) -- Kubelet: added `usageNanoCores` from CRI stats provider ([#73659](https://github.com/kubernetes/kubernetes/pull/73659), [@feiskyer](https://github.com/feiskyer)) -- Introduced support for Windows nodes into the cluster bringup scripts for GCE. ([#73442](https://github.com/kubernetes/kubernetes/pull/73442), [@pjh](https://github.com/pjh)) -- Added network stats for Windows nodes and pods. ([#70121](https://github.com/kubernetes/kubernetes/pull/70121), [@feiskyer](https://github.com/feiskyer)) -- CoreDNS is only officially supported on Linux at this time. As such, when kubeadm is used to deploy this component into your kubernetes cluster, it will be restricted (using `nodeSelectors`) to run only on nodes with that operating system. This ensures that in clusters which include Windows nodes, the scheduler will not ever attempt to place CoreDNS pods on these machines, reducing setup latency and enhancing initial cluster stability. ([#69940](https://github.com/kubernetes/kubernetes/pull/69940), [@MarcPow](https://github.com/MarcPow)) - -## External Dependencies - -- Default etcd server and client have been updated to v3.3.10. ([#71615](https://github.com/kubernetes/kubernetes/pull/71615), [#70168](https://github.com/kubernetes/kubernetes/pull/70168)) -- The list of validated docker versions has changed. 1.11.1 and 1.12.1 have been removed. The current list is 1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09. ([#72823](https://github.com/kubernetes/kubernetes/pull/72823), [#72831](https://github.com/kubernetes/kubernetes/pull/72831)) -- The default Go version was updated to 1.12.1. ([#75422](https://github.com/kubernetes/kubernetes/pull/75422)) -- CNI has been updated to v0.7.5 ([#75455](https://github.com/kubernetes/kubernetes/pull/75455)) -- CSI has been updated to v1.1.0. ([#75391](https://github.com/kubernetes/kubernetes/pull/75391)) -- The dashboard add-on has been updated to v1.10.1. ([#72495](https://github.com/kubernetes/kubernetes/pull/72495)) -- Cluster Autoscaler has been updated to v1.14.0 ([#75480](https://github.com/kubernetes/kubernetes/pull/75480)) -- kube-dns is unchanged at v1.14.13 since Kubernetes 1.12 ([#68900](https://github.com/kubernetes/kubernetes/pull/68900)) -- Influxdb is unchanged at v1.3.3 since Kubernetes 1.10 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) -- Grafana is unchanged at v4.4.3 since Kubernetes 1.10 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) -- Kibana has been upgraded to v6.6.1. ([#71251](https://github.com/kubernetes/kubernetes/pull/71251)) -- CAdvisor has been updated to v0.33.1 ([#75140](https://github.com/kubernetes/kubernetes/pull/75140)) -- fluentd-gcp-scaler is unchanged at v0.5.0 since Kubernetes 1.13 ([#68837](https://github.com/kubernetes/kubernetes/pull/68837)) -- Fluentd in fluentd-elasticsearch has been upgraded to v1.3.3 ([#71180](https://github.com/kubernetes/kubernetes/pull/71180)) -- fluentd-elasticsearch has been updated to v2.4.0 ([#71180](https://github.com/kubernetes/kubernetes/pull/71180)) -- The fluent-plugin-kubernetes_metadata_filter plugin in fluentd-elasticsearch has been updated to v2.1.6 ([#71180](https://github.com/kubernetes/kubernetes/pull/71180)) -- fluentd-gcp is unchanged at v3.2.0 since Kubernetes 1.13 ([#70954](https://github.com/kubernetes/kubernetes/pull/70954)) -- OIDC authentication is unchanged at coreos/go-oidc v2 since Kubernetes 1.10 ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) -- Calico is unchanged at v3.3.1 since Kubernetes 1.13 ([#70932](https://github.com/kubernetes/kubernetes/pull/70932)) -- crictl on GCE is unchanged at v1.12.0 since Kubernetes 1.13 ([#69033](https://github.com/kubernetes/kubernetes/pull/69033)) -- CoreDNS has been updated to v1.3.1 ([#73610](https://github.com/kubernetes/kubernetes/pull/73610)) -- event-exporter has been updated to v0.2.3 ([#67691](https://github.com/kubernetes/kubernetes/pull/67691)) -- Es-image has been updated to Elasticsearch 6.6.1 ([#71252](https://github.com/kubernetes/kubernetes/pull/71252)) -- metrics-server remains unchanged at v0.3.1 since Kubernetes 1.12 ([#68746](https://github.com/kubernetes/kubernetes/pull/68746)) -- GLBC remains unchanged at v1.2.3 since Kubernetes 1.12 ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) -- Ingress-gce remains unchanged at v1.2.3 since Kubernetes 1.12 ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) -- ip-masq-agen remains unchanged at v2.1.1 since Kubernetes 1.12 ([#67916](https://github.com/kubernetes/kubernetes/pull/67916)) +# Kubernetes v1.14 Release Notes + +## 1.14 What’s New + +Support for Windows Nodes is Graduating to Stable ([#116](https://github.com/kubernetes/enhancements/issues/116) ) + +- Support for Windows Server 2019 for worker nodes and containers +- Support for out of tree networking with Azure-CNI, OVN-Kubernetes and Flannel +- Improved support for pods, service types, workload controllers and metrics/quotas to closely match the capabilities offered for Linux containers +kubernetes/enhancements: [#116](https://github.com/kubernetes/enhancements/issues/116) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-windows/20190103-windows-node-support.md)] + +Updated Plugin Mechanism for kubectl is Graduating to Stable ([#579](https://github.com/kubernetes/enhancements/issues/579)) + +- Extends functionality to kubectl to support extensions adding new commands as well as overriding specific subcommands (at any depth). +- Documentation fixes +kubernetes/enhancements: [#579](https://github.com/kubernetes/enhancements/issues/579) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/0024-kubectl-plugins.md#summary)] + +Durable Local Storage Management is Now GA ([#121](https://github.com/kubernetes/enhancements/issues/121#issuecomment-457396290)) + +- Makes locally attached (non-network attached) storage available as a persistent volume source. +- Allows users to take advantage of the typically cheaper and improved performance of persistent local storage +kubernetes/kubernetes: [#73525](https://github.com/kubernetes/kubernetes/pull/73525), [#74391](https://github.com/kubernetes/kubernetes/pull/74391), [#74769](http://github.com/kubernetes/kubernetes/pull/74769) +kubernetes/enhancements: [#121](https://github.com/kubernetes/enhancements/issues/121#issuecomment-457396290) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/20190124-local-persistent-volumes.md)] + +Pid Limiting is Graduating to Beta ([#757](https://github.com/kubernetes/enhancements/issues/757)) + +- Prevents a pod from starving pid resource +- Ability to isolate pid resources pod-to-pod and node-to-pod +kubernetes/kubernetes: [#73651](http://github.com/kubernetes/kubernetes/pull/73651) +kubernetes/enhancements: [#757](https://github.com/kubernetes/enhancements/issues/757) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190129-pid-limiting.md)] + +Pod Priority and Preemption in Kubernetes ([#564](https://github.com/kubernetes/enhancements/issues/564)) + +- Pod priority and preemption enables Kubernetes scheduler to schedule more important Pods first and when cluster is out of resources, it removes less important pods to create room for more important ones. The importance is specified by priority. +kubernetes/kubernetes: [#73498](https://github.com/kubernetes/kubernetes/pull/73498), [#73555](https://github.com/kubernetes/kubernetes/pull/73555), [#74465](https://github.com/kubernetes/kubernetes/pull/74465) +kubernetes/enhancements: [#564](https://github.com/kubernetes/enhancements/issues/564) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-scheduling/20190131-pod-priority-preemption.md)] + +Pod Ready++ ([#580](https://github.com/kubernetes/enhancements/issues/580)) + +- Introduces extension point for external feedback on pod readiness. +kubernetes/kubernetes: [#74434](http://github.com/kubernetes/kubernetes/pull/74434), +kubernetes/enhancements: [#580](https://github.com/kubernetes/enhancements/issues/580) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/0007-pod-ready%2B%2B.md)] + +Kubeadm: Automate certificate copy between control planes in HA setups + +- Joining control plane nodes to a HA cluster can now be simplified by enabling the optional automatic copy of certificates from an existing control plane node. +- You can now use `kubeadm init --experimental-upload-certs` and `kubeadm join --experimental-control-plane --certificate-key`. +kubernetes/kubeadm: [#1373](https://github.com/kubernetes/kubeadm/issues/1373) +kubernetes/enhancements: [#357](https://github.com/kubernetes/enhancements/issues/357) [[kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cluster-lifecycle/20190122-Certificates-copy-for-kubeadm-join--control-plane.md)] + +Kubeadm: Expose the `kubeadm join` workflow as phases + +- The `kubeadm join` command can now be used in phases. Similar to the work that was done for `kubeadm init` in 1.13, in 1.14 the `join` phases can be now executed step-by-step/selectively using the `kubeadm join phase` sub-command. This makes it possible to further customize the workflow of joining nodes to the cluster. +kubernetes/kubeadm: [#1204](https://github.com/kubernetes/kubeadm/issues/1204) +kubernetes/enhancements: [kep](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cluster-lifecycle/0029-20180918-kubeadm-phases-beta.md) + +## Known Issues + +- There is a known issue [coredns/coredns#2629](https://github.com/coredns/coredns/issues/2629) in CoreDNS 1.3.1, wherein if the Kubernetes API shuts down while CoreDNS is connected, CoreDNS will crash. The issue is fixed in CoreDNS 1.4.0 in [coredns/coredns#2529](https://github.com/coredns/coredns/pull/2529). +- Kubelet might fail to restart if an existing flexvolume mounted pvc contains a large number of directories, or is full. [#75019](https://github.com/kubernetes/kubernetes/pull/75019) + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- kube-apiserver: + - Default RBAC policy no longer grants access to discovery and permission-checking APIs (used by `kubectl auth can-i`) to *unauthenticated* users. Upgraded clusters preserve prior behavior, but cluster administrators wishing to grant unauthenticated users access in new clusters will need to explicitly opt-in to expose the discovery and/or permission-checking APIs: + - `kubectl create clusterrolebinding anonymous-discovery --clusterrole=system:discovery --group=system:unauthenticated` + - `kubectl create clusterrolebinding anonymous-access-review --clusterrole=system:basic-user --group=system:unauthenticated` + - The deprecated --storage-versions flag has been removed. The storage versions will always be the default value built-in the kube-apiserver binary. ([#67678](https://github.com/kubernetes/kubernetes/pull/67678), [@caesarxuchao](https://github.com/caesarxuchao)) + - The deprecated `--repair-malformed-updates` flag has been removed ([#73663](https://github.com/kubernetes/kubernetes/pull/73663), [@danielqsj](https://github.com/danielqsj)) + - The `/swaggerapi/*` schema docs, deprecated since 1.7, have been removed in favor of the /openapi/v2 schema docs. ([#72924](https://github.com/kubernetes/kubernetes/pull/72924), [@liggitt](https://github.com/liggitt)) + - The /swagger.json and /swagger-2.0.0.pb-v1 schema documents, deprecated since v1.10, have been removed in favor of `/openapi/v2` ([#73148](https://github.com/kubernetes/kubernetes/pull/73148), [@liggitt](https://github.com/liggitt)) + - `kube-apiserver` now only aggregates openapi schemas from `/openapi/v2` endpoints of aggregated API servers. The fallback to aggregate from `/swagger.json` has been removed. Ensure aggregated API servers provide schema information via `/openapi/v2` (available since v1.10). ([#73441](https://github.com/kubernetes/kubernetes/pull/73441), [@roycaihw](https://github.com/roycaihw)) + - The OpenAPI definitions with the prefix "io.k8s.kubernetes.pkg" (deprecated since 1.9) have been removed. ([#74596](https://github.com/kubernetes/kubernetes/pull/74596), [@sttts](https://github.com/sttts)) + - The `ValidateProxyRedirects` feature was promoted to Beta and enabled by default. This feature restricts redirect-following from the apiserver to same-host redirects. If nodes are configured to respond to CRI streaming requests on a different host interface than what the apiserver makes requests on (only the case if not using the built-in dockershim & setting the kubelet flag `--redirect-container-streaming=true`), then these requests will be broken. In that case, the feature can be temporarily disabled until the node configuration is corrected. We suggest setting `--redirect-container-streaming=false` on the kubelet to avoid issues.([#72552](https://github.com/kubernetes/kubernetes/pull/72552), [@tallclair](https://github.com/tallclair)) + +- kubectl + - The deprecated `--show-all` flag to `kubectl get` has been removed ([#69255](https://github.com/kubernetes/kubernetes/pull/69255), [@Pingan2017](https://github.com/Pingan2017)) + +- kubelet + - The deprecated `--experimental-fail-swap-on` flag has been removed ([#69552](https://github.com/kubernetes/kubernetes/pull/69552), [@Pingan2017](https://github.com/Pingan2017)) + - Health check (liveness & readiness) probes using an HTTPGetAction will no longer follow redirects to different hostnames from the original probe request. Instead, these non-local redirects will be treated as a Success (the documented behavior). In this case an event with reason "ProbeWarning" will be generated, indicating that the redirect was ignored. If you were previously relying on the redirect to run health checks against different endpoints, you will need to perform the healthcheck logic outside the Kubelet, for instance by proxying the external endpoint rather than redirecting to it. ([#75416](https://github.com/kubernetes/kubernetes/pull/75416), [@tallclair](https://github.com/tallclair)) + +- client-go + - The deprecated versionless API group accessors (like `clientset.Apps()`) have been removed. Use an explicit version instead (like `clientset.AppsV1()`) ([#74422](https://github.com/kubernetes/kubernetes/pull/74422), [@liggitt](https://github.com/liggitt)) + - The disk-cached discovery client is moved from k8s.io/client-go/discovery to k8s.io/client-go/discovery/cached/disk. +The memory-cached discovery client is moved from k8s.io/client-go/discovery/cached to k8s.io/client-go/discovery/cached/memory. +([#72214](https://github.com/kubernetes/kubernetes/pull/72214), [@caesarxuchao](https://github.com/caesarxuchao)) + +- kubeadm + - `kubeadm alpha preflight` and `kubeadm alpha preflight node` are removed; you can now use `kubeadm join phase preflight` ([#73718](https://github.com/kubernetes/kubernetes/pull/73718), [@fabriziopandini](https://github.com/fabriziopandini)) + +- The deprecated taints `node.alpha.kubernetes.io/notReady` and `node.alpha.kubernetes.io/unreachable` are no longer supported or adjusted. These uses should be replaced with `node.kubernetes.io/not-ready` and `node.kubernetes.io/unreachable` + ([#73001](https://github.com/kubernetes/kubernetes/pull/73001), [@shivnagarajan](https://github.com/shivnagarajan)) + +- Any Prometheus queries that match `pod_name` and `container_name` labels (e.g. cadvisor or kubelet probe metrics) should be updated to use `pod` and `container` instead. `pod_name` and `container_name` labels will be present alongside `pod` and `container` labels for one transitional release and removed in the future. +([#69099](https://github.com/kubernetes/kubernetes/pull/69099), [@ehashman](https://github.com/ehashman)) + +## Deprecations + +- kubectl + - `kubectl convert` is deprecated and will be removed in v1.17. + - The `--export` flag for the `kubectl get` command is deprecated and will be removed in v1.18. ([#73787](https://github.com/kubernetes/kubernetes/pull/73787), [@soltysh](https://github.com/soltysh)) + +- kubelet + - OS and Arch information is now recorded in `kubernetes.io/os` and `kubernetes.io/arch` labels on Node objects. The previous labels (`beta.kubernetes.io/os` and `beta.kubernetes.io/arch`) are still recorded, but are deprecated and targeted for removal in v1.18. ([#73333](https://github.com/kubernetes/kubernetes/pull/73333), [@yujuhong](https://github.com/yujuhong)) + - The `--containerized` flag is deprecated and will be removed in a future release ([#74267](https://github.com/kubernetes/kubernetes/pull/74267), [@dims](https://github.com/dims)) + +- hyperkube + - The `--make-symlinks` flag is deprecated and will be removed in a future release. ([#74975](https://github.com/kubernetes/kubernetes/pull/74975), [@dims](https://github.com/dims)) +- API + - Ingress resources are now available via `networking.k8s.io/v1beta1`. Ingress resources in `extensions/v1beta1` are deprecated and will no longer be served in v1.18. Existing persisted data is available via the new API group/version ([#74057](https://github.com/kubernetes/kubernetes/pull/74057), [@liggitt](https://github.com/liggitt)) + - NetworkPolicy resources will no longer be served from `extensions/v1beta1` in v1.16. Migrate use to the `networking.k8s.io/v1` API, available since v1.8. Existing persisted data can be retrieved via the `networking.k8s.io/v1` API. + - PodSecurityPolicy resources will no longer be served from `extensions/v1beta1` in v1.16. Migrate to the `policy/v1beta1` API, available since v1.10. Existing persisted data can be retrieved via the `policy/v1beta1` API. + - DaemonSet, Deployment, and ReplicaSet resources will no longer be served from `extensions/v1beta1`, `apps/v1beta1`, or `apps/v1beta2` in v1.16. Migrate to the `apps/v1` API, available since v1.9. Existing persisted data can be retrieved via the `apps/v1` API. + - PriorityClass resources have been promoted to `scheduling.k8s.io/v1` with no changes. The `scheduling.k8s.io/v1beta1` and `scheduling.k8s.io/v1alpha1` versions are now deprecated and will stop being served by default in v1.17. ([#73555](https://github.com/kubernetes/kubernetes/pull/73555), [#74465](https://github.com/kubernetes/kubernetes/pull/74465), [@bsalamat](https://github.com/bsalamat)) + - The `export` query parameter for list API calls is deprecated and will be removed in v1.18 ([#73783](https://github.com/kubernetes/kubernetes/pull/73783), [@deads2k](https://github.com/deads2k)) +- The following features are now GA, and the associated feature gates are deprecated and will be removed in v1.15: + - `CustomPodDNS` + - `HugePages` + - `MountPropagation` + - `PersistentLocalVolumes` +- CoreDNS: The following directives or keywords are deprecated and will be removed in v1.15: + - `upstream` option of `kubernetes` plugin, becoming default behavior in v1.15. + - `proxy` plugin replaced by `forward` plugin + +## Removed and deprecated metrics + +### Removed metrics + +- `reflector_items_per_list` +- `reflector_items_per_watch` +- `reflector_last_resource_version` +- `reflector_list_duration_seconds` +- `reflector_lists_total` +- `reflector_short_watches_total` +- `reflector_watch_duration_seconds` +- `reflector_watches_total` + +### Deprecated metrics + +- `rest_client_request_latency_seconds` -> `rest_client_request_duration_seconds` +- `apiserver_proxy_tunnel_sync_latency_secs` -> `apiserver_proxy_tunnel_sync_duration_seconds` +- `scheduler_scheduling_latency_seconds` -> `scheduler_scheduling_duration_seconds` +- `kubelet_pod_worker_latency_microseconds` -> `kubelet_pod_worker_duration_seconds` +- `kubelet_pod_start_latency_microseconds` -> `kubelet_pod_start_duration_seconds` +- `kubelet_cgroup_manager_latency_microseconds` -> `kubelet_cgroup_manager_duration_seconds` +- `kubelet_pod_worker_start_latency_microseconds` -> `kubelet_pod_worker_start_duration_seconds` +- `kubelet_pleg_relist_latency_microseconds` -> `kubelet_pleg_relist_duration_seconds` +- `kubelet_pleg_relist_interval_microseconds` -> `kubelet_pleg_relist_interval_seconds` +- `kubelet_eviction_stats_age_microseconds` -> `kubelet_eviction_stats_age_seconds` +- `kubelet_runtime_operations` -> `kubelet_runtime_operations_total` +- `kubelet_runtime_operations_latency_microseconds` -> `kubelet_runtime_operations_duration_seconds` +- `kubelet_runtime_operations_errors` -> `kubelet_runtime_operations_errors_total` +- `kubelet_device_plugin_registration_count` -> `kubelet_device_plugin_registration_total` +- `kubelet_device_plugin_alloc_latency_microseconds` -> `kubelet_device_plugin_alloc_duration_seconds` +- `docker_operations` -> `docker_operations_total` +- `docker_operations_latency_microseconds` -> `docker_operations_latency_seconds` +- `docker_operations_errors` -> `docker_operations_errors_total` +- `docker_operations_timeout` -> `docker_operations_timeout_total` +- `network_plugin_operations_latency_microseconds` -> `network_plugin_operations_latency_seconds` +- `sync_proxy_rules_latency_microseconds` -> `sync_proxy_rules_latency_seconds` +- `apiserver_request_count` -> `apiserver_request_total` +- `apiserver_request_latencies` -> `apiserver_request_latency_seconds` +- `apiserver_request_latencies_summary` -> `apiserver_request_latency_seconds` +- `apiserver_dropped_requests` -> `apiserver_dropped_requests_total` +- `etcd_helper_cache_hit_count` -> `etcd_helper_cache_hit_total` +- `etcd_helper_cache_miss_count` -> `etcd_helper_cache_miss_total` +- `etcd_helper_cache_entry_count` -> `etcd_helper_cache_entry_total` +- `etcd_request_cache_get_latencies_summary` -> `etcd_request_cache_get_latency_seconds` +- `etcd_request_cache_add_latencies_summary` -> `etcd_request_cache_add_latency_seconds` +- `etcd_request_latencies_summary` -> `etcd_request_latency_seconds` +- `transformation_latencies_microseconds` -> `transformation_latencies_seconds` +- `data_key_generation_latencies_microseconds` -> `data_key_generation_latencies_seconds` + +## Notable Features + +- Increased the histogram resolution of the API server client certificate to accommodate short-lived (< 6h) client certificates. ([#74806](https://github.com/kubernetes/kubernetes/pull/74806), [@mxinden](https://github.com/mxinden)) +- Updated to use golang 1.12 ([#74632](https://github.com/kubernetes/kubernetes/pull/74632), [@cblecker](https://github.com/cblecker)) +- The `RunAsGroup` feature has been promoted to beta and enabled by default. `PodSpec` and `PodSecurityPolicy` objects can be used to control the primary GID of containers on supported container runtimes. ([#73007](https://github.com/kubernetes/kubernetes/pull/73007), [@krmayankk](https://github.com/krmayankk)) +- Added the same information to an init container as a standard container in a pod when using `PodPresets`. ([#71479](https://github.com/kubernetes/kubernetes/pull/71479), [@soggiest](https://github.com/soggiest)) +- kube-conformance image will now run ginkgo with the `--dryRun` flag if the container is run with the environment variable E2E_DRYRUN set. ([#74731](https://github.com/kubernetes/kubernetes/pull/74731), [@johnSchnake](https://github.com/johnSchnake)) +- Introduced dynamic volume provisioning shim for CSI migration ([#73653](https://github.com/kubernetes/kubernetes/pull/73653), [@ddebroy](https://github.com/ddebroy)) +- Applied resources from a directory containing kustomization.yaml ([#74140](https://github.com/kubernetes/kubernetes/pull/74140), [@Liujingfang1](https://github.com/Liujingfang1)) +- kubeadm: Allowed to download certificate secrets uploaded by `init` or `upload-certs` phase, allowing to transfer certificate secrets (certificates and keys) from the cluster to other master machines when creating HA deployments. ([#74168](https://github.com/kubernetes/kubernetes/pull/74168), [@ereslibre](https://github.com/ereslibre)) +- The `--quiet` option to `kubectl run` now suppresses resource deletion messages emitted when the `--rm` option is specified. ([#73266](https://github.com/kubernetes/kubernetes/pull/73266), [@awh](https://github.com/awh)) +- Added Custom Resource support to `kubectl autoscale` ([#72678](https://github.com/kubernetes/kubernetes/pull/72678), [@rmohr](https://github.com/rmohr)) +- Cinder volume limit can now be configured from node too ([#74542](https://github.com/kubernetes/kubernetes/pull/74542), [@gnufied](https://github.com/gnufied)) +- It is now possible to combine the `-f` and `-l` flags in `kubectl logs` ([#67573](https://github.com/kubernetes/kubernetes/pull/67573), [@m1kola](https://github.com/m1kola)) +- New conformance tests added for API Aggregation. ([#63947](https://github.com/kubernetes/kubernetes/pull/63947), [@jennybuckley](https://github.com/jennybuckley)) +- Moved fluentd-elasticsearch addon images to community controlled location ([#73819](https://github.com/kubernetes/kubernetes/pull/73819), [@coffeepac](https://github.com/coffeepac)) +- Removed local etcd members from the etcd cluster when `kubeadm reset` ([#74112](https://github.com/kubernetes/kubernetes/pull/74112), [@pytimer](https://github.com/pytimer)) +- kubeadm will now not fail preflight checks when running on >= 5.0 Linux kernel ([#74355](https://github.com/kubernetes/kubernetes/pull/74355), [@brb](https://github.com/brb)) +- Scheduler cache snapshot algorithm has been optimized to improve scheduling throughput. ([#74041](https://github.com/kubernetes/kubernetes/pull/74041), [@bsalamat](https://github.com/bsalamat)) +- It is now possible to upload certificates required to join a new control-plane to kubeadm-certs secret using the flag `--experimental-upload-certs` on `init` or upload-certs phase. ([#73907](https://github.com/kubernetes/kubernetes/pull/73907), [@yagonobre](https://github.com/yagonobre)) +[@RobertKrawitz](https://github.com/RobertKrawitz)) +- `kubectl auth reconcile` now outputs details about what changes are being made ([#71564](https://github.com/kubernetes/kubernetes/pull/71564), [@liggitt](https://github.com/liggitt)) +- Added Kustomize as a subcommand in kubectl ([#73033](https://github.com/kubernetes/kubernetes/pull/73033), [@Liujingfang1](https://github.com/Liujingfang1)) +- Added `kubelet_node_name` metrics. ([#72910](https://github.com/kubernetes/kubernetes/pull/72910), [@danielqsj](https://github.com/danielqsj)) +- Updated AWS SDK to v1.16.26 for ECR PrivateLink support ([#73435](https://github.com/kubernetes/kubernetes/pull/73435), [@micahhausler](https://github.com/micahhausler)) +- Expanded `kubectl wait` to work with more types of selectors. ([#71746](https://github.com/kubernetes/kubernetes/pull/71746), [@rctl](https://github.com/rctl)) +([#72832](https://github.com/kubernetes/kubernetes/pull/72832), [@MrHohn](https://github.com/MrHohn)) +- Added configuration for AWS endpoint fine control: ([#72245](https://github.com/kubernetes/kubernetes/pull/72245), [@ampsingram](https://github.com/ampsingram)) +- The CoreDNS configuration now has the forward plugin for proxy in the default configuration instead of the proxy plugin. ([#73267](https://github.com/kubernetes/kubernetes/pull/73267), [@rajansandeep](https://github.com/rajansandeep)) +- Added alpha field storageVersionHash to the discovery document for each resource. Its value must be treated as opaque by clients. Only equality comparison on the value is valid. ([#73191](https://github.com/kubernetes/kubernetes/pull/73191), [@caesarxuchao](https://github.com/caesarxuchao)) +- If you are running the cloud-controller-manager and you have the `pvlabel.kubernetes.io` alpha Initializer enabled, you must now enable PersistentVolume labeling using the `PersistentVolumeLabel` admission controller instead. You can do this by adding `PersistentVolumeLabel` in the `--enable-admission-plugins` kube-apiserver flag. ([#73102](https://github.com/kubernetes/kubernetes/pull/73102), [@andrewsykim](https://github.com/andrewsykim)) +- kubectl supports copying files with wild card ([#72641](https://github.com/kubernetes/kubernetes/pull/72641), [@dixudx](https://github.com/dixudx)) +- kubeadm now attempts to detect an installed CRI by its usual domain socket, so that `--cri-socket` can be omitted from the command line if Docker is not used and there is a single CRI installed. ([#69366](https://github.com/kubernetes/kubernetes/pull/69366), [@rosti](https://github.com/rosti)) +- `CSINodeInfo` and `CSIDriver` CRDs have been installed in the local cluster. ([#72584](https://github.com/kubernetes/kubernetes/pull/72584), [@xing-yang](https://github.com/xing-yang)) +- Node OS/arch labels have been promoted to GA ([#73048](https://github.com/kubernetes/kubernetes/pull/73048), [@yujuhong](https://github.com/yujuhong)) +- Added support for max attach limit for Cinder ([#72980](https://github.com/kubernetes/kubernetes/pull/72980), [@gnufied](https://github.com/gnufied)) +- Enabled mTLS encryption between etcd and kube-apiserver in GCE ([#70144](https://github.com/kubernetes/kubernetes/pull/70144), [@wenjiaswe](https://github.com/wenjiaswe)) +- Added `ResourceVersion` as a precondition for delete in order to ensure a delete fails if an unobserved change happens to an object. ([#74040](https://github.com/kubernetes/kubernetes/pull/74040), [@ajatprabha](https://github.com/ajatprabha)) +- There is now support for collecting pod logs under `/var/log/pods/NAMESPACE_NAME_UID` to stackdriver with `k8s_pod` resource type. ([#74502](https://github.com/kubernetes/kubernetes/pull/74502), [@Random-Liu](https://github.com/Random-Liu)) +- Changed CRI pod log directory from `/var/log/pods/UID` to `/var/log/pods/NAMESPACE_NAME_UID`. ([#74441](https://github.com/kubernetes/kubernetes/pull/74441), [@Random-Liu](https://github.com/Random-Liu)) +- `RuntimeClass` has been promoted to beta, and is enabled by default. ([#75003](https://github.com/kubernetes/kubernetes/pull/75003), [@tallclair](https://github.com/tallclair)) +- New "dry_run" metric label (indicating the value of the dryRun query parameter) has been added into the metrics: +* apiserver_request_total +* apiserver_request_duration_seconds +New "APPLY" value for the "verb" metric label which indicates a PATCH with "Content-Type: apply-patch+yaml". This value is experimental and will only be present if the ServerSideApply alpha feature is enabled. ([#74997](https://github.com/kubernetes/kubernetes/pull/74997), [@jennybuckley](https://github.com/jennybuckley)) +- GCE: bumped COS image version to `cos-beta-73-11647-64-0` ([#75149](https://github.com/kubernetes/kubernetes/pull/75149), [@yguo0905](https://github.com/yguo0905)) +- Added alpha support for ephemeral CSI inline volumes that are embedded in pod specs. ([#74086](https://github.com/kubernetes/kubernetes/pull/74086), [@vladimirvivien](https://github.com/vladimirvivien)) + +## API Changes + +- [CRI] Added a new field called `runtime_handler` into `PodSandbox` and `PodSandboxStatus` to track the `RuntimeClass` information of a pod. ([#73833](https://github.com/kubernetes/kubernetes/pull/73833), [@haiyanmeng](https://github.com/haiyanmeng)) + +## Detailed Bug Fixes And Changes + +### API Machinery + +- client-go: `PortForwarder.GetPorts()` now contain correct local port if no local port was initially specified when setting up the port forwarder ([#73676](https://github.com/kubernetes/kubernetes/pull/73676), [@martin-helmich](https://github.com/martin-helmich)) +- Fixed an issue with missing `apiVersion/kind` in object data sent to admission webhooks ([#74448](https://github.com/kubernetes/kubernetes/pull/74448), [@liggitt](https://github.com/liggitt)) +- Prometheus metrics for `crd_autoregister`, `crd_finalizer` and `crd_naming_condition_controller` are exported. ([#71767](https://github.com/kubernetes/kubernetes/pull/71767), [@roycaihw](https://github.com/roycaihw)) +- Fixed admission metrics in seconds. ([#72343](https://github.com/kubernetes/kubernetes/pull/72343), [@danielqsj](https://github.com/danielqsj)) +- When a watch is closed by an HTTP2 load balancer and we are told to go away, skip printing the message to stderr by default. +- Spedup kubectl by >10 when calling out to kube-apiserver for discovery information. ([#73345](https://github.com/kubernetes/kubernetes/pull/73345), [@sttts](https://github.com/sttts)) +- Fixed watch to not send the same set of events multiple times causing watcher to go back in time ([#73845](https://github.com/kubernetes/kubernetes/pull/73845), [@wojtek-t](https://github.com/wojtek-t)) +([#73277](https://github.com/kubernetes/kubernetes/pull/73277), [@smarterclayton](https://github.com/smarterclayton)) +- Fix kube-apiserver not to create default/kubernetes service endpoints before it reports readiness via the /healthz and therefore is ready to serve requests. Also early during startup old endpoints are remove which might be left over from a previously crashed kube-apiserver. ([#74668](https://github.com/kubernetes/kubernetes/pull/74668), [@sttts](https://github.com/sttts)) +- Add a configuration field to shorten the timeout of validating/mutating admission webhook call. The timeout value must be between 1 and 30 seconds. Default to 30 seconds when unspecified. ([#74562](https://github.com/kubernetes/kubernetes/pull/74562), [@roycaihw](https://github.com/roycaihw)) +- The apiserver, including both the kube-apiserver and apiservers built with the generic apiserver library, will now return 413 RequestEntityTooLarge error if a json patch contains more than 10,000 operations. ([#74000](https://github.com/kubernetes/kubernetes/pull/74000), [@caesarxuchao](https://github.com/caesarxuchao)) +- Fixed an error processing watch events when running skewed apiservers ([#73482](https://github.com/kubernetes/kubernetes/pull/73482), [@liggitt](https://github.com/liggitt)) +- jsonpath expressions containing `[start:end:step]` slice are now evaluated correctly ([#73149](https://github.com/kubernetes/kubernetes/pull/73149), [@liggitt](https://github.com/liggitt)) +- `metadata.deletionTimestamp` is no longer moved into the future when issuing repeated DELETE requests against a resource containing a finalizer. ([#73138](https://github.com/kubernetes/kubernetes/pull/73138), [@liggitt](https://github.com/liggitt)) +- Fixed kube-apiserver not to create default/kubernetes service endpoints before it reports readiness via the /healthz and therefore is ready to serve requests. Also early during startup old endpoints are remove which might be left over from a previously crashed kube-apiserver. ([#74668](https://github.com/kubernetes/kubernetes/pull/74668), [@sttts](https://github.com/sttts)) +- `watch.Until` now works for long durations. ([#67350](https://github.com/kubernetes/kubernetes/pull/67350), [@tnozicka](https://github.com/tnozicka)) +- Added duration metric for CRD webhook converters. ([#74376](https://github.com/kubernetes/kubernetes/pull/74376), [@mbohlool](https://github.com/mbohlool)) +- Fixed keymutex issues which may crash in some platforms. ([#74348](https://github.com/kubernetes/kubernetes/pull/74348), [@danielqsj](https://github.com/danielqsj)) +- Considerably reduced the CPU load in kube-apiserver while aggregating OpenAPI specifications from aggregated API servers. ([#71223](https://github.com/kubernetes/kubernetes/pull/71223), [@sttts](https://github.com/sttts)) +- Fixed graceful apiserver shutdown to not drop outgoing bytes before the process terminates. ([#72970](https://github.com/kubernetes/kubernetes/pull/72970), [@sttts](https://github.com/sttts)) + +### Apps + +- Added deleting pods created by `DaemonSet` assigned to not existing nodes. ([#73401](https://github.com/kubernetes/kubernetes/pull/73401), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) +- Pod eviction now honors graceful deletion by default if no delete options are provided in the eviction request. ([#72730](https://github.com/kubernetes/kubernetes/pull/72730), [@liggitt](https://github.com/liggitt)) + +### Auth + +- Added `kubectl auth can-i --list` option, which allows users to know what actions they can do in specific namespaces. ([#64820](https://github.com/kubernetes/kubernetes/pull/64820), [@WanLinghao](https://github.com/WanLinghao)) +- The `rules` field in RBAC `Role` and `ClusterRole` objects is now correctly reported as optional in the openapi schema. ([#73250](https://github.com/kubernetes/kubernetes/pull/73250), [@liggitt](https://github.com/liggitt)) +- `system:kube-controller-manager` and `system:kube-scheduler` users are now permitted to perform delegated authentication/authorization checks by default RBAC policy ([#72491](https://github.com/kubernetes/kubernetes/pull/72491), [@liggitt](https://github.com/liggitt)) +- Error messages returned in authentication webhook status responses are now correctly included in the apiserver log ([#73595](https://github.com/kubernetes/kubernetes/pull/73595), [@liggitt](https://github.com/liggitt)) +- Fixed use of webhook admission plugins with multi-version custom resources ([#74154](https://github.com/kubernetes/kubernetes/pull/74154), [@mbohlool](https://github.com/mbohlool)) + +### AWS + +- Prevented AWS Network Load Balancer security groups ingress rules to be deleted by ensuring target groups are tagged. ([#73594](https://github.com/kubernetes/kubernetes/pull/73594), [@masterzen](https://github.com/masterzen)) +- AWS ELB health checks will now use HTTPS/SSL protocol for HTTPS/SSL backends. ([#70309](https://github.com/kubernetes/kubernetes/pull/70309), [@2rs2ts](https://github.com/2rs2ts)) + +### Azure + +- Fixed failure to detach Azure disk when there is server side error ([#74398](https://github.com/kubernetes/kubernetes/pull/74398), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed subnet annotation checking for Azure internal loadbalancer ([#74498](https://github.com/kubernetes/kubernetes/pull/74498), [@feiskyer](https://github.com/feiskyer)) +- Fixed mixed protocol issue for Azure load balancer ([#74200](https://github.com/kubernetes/kubernetes/pull/74200), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed Azure accounts timeout issue when there is no out-bound IP ([#74191](https://github.com/kubernetes/kubernetes/pull/74191), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed Azure Container Registry anonymous repo image pull error ([#74715](https://github.com/kubernetes/kubernetes/pull/74715), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed parse devicePath issue on Azure Disk ([#74499](https://github.com/kubernetes/kubernetes/pull/74499), [@andyzhangx](https://github.com/andyzhangx)) + +### CLI + +- Fixed `--help` flag parsing ([#74682](https://github.com/kubernetes/kubernetes/pull/74682), [@soltysh](https://github.com/soltysh)) +- Fixed a bug where `kubectl describe` cannot obtain the event messages for a static pod ([#74156](https://github.com/kubernetes/kubernetes/pull/74156), [@gaorong](https://github.com/gaorong)) +- Fixed panic when performing a `set env` operation on a `--local` resource ([#65636](https://github.com/kubernetes/kubernetes/pull/65636), [@juanvallejo](https://github.com/juanvallejo)) +- Missing directories listed in a user's PATH are no longer considered errors and are instead logged by the `kubectl plugin list` command when listing available plugins. ([#73542](https://github.com/kubernetes/kubernetes/pull/73542), [@juanvallejo](https://github.com/juanvallejo)) +- Now users can get object info like: + + ```bash + a. kubectl get pod test-pod -o custom-columns=CONTAINER:.spec.containers[0:3].name + b. kubectl get pod test-pod -o custom-columns=CONTAINER:.spec.containers[-2:].name + ``` + +([#73063](https://github.com/kubernetes/kubernetes/pull/73063), [@WanLinghao](https://github.com/WanLinghao)) + +- The `kubectl api-resources` command will no longer fail to display any resources on a single failure ([#73035](https://github.com/kubernetes/kubernetes/pull/73035), [@juanvallejo](https://github.com/juanvallejo)) +- kubectl now loads config file once and uses persistent client config ([#71117](https://github.com/kubernetes/kubernetes/pull/71117), [@dixudx](https://github.com/dixudx)) +- Printed `SizeLimit` of `EmptyDir` in `kubectl describe pod` outputs. ([#69279](https://github.com/kubernetes/kubernetes/pull/69279), [@dtaniwaki](https://github.com/dtaniwaki)) +- `kubectl delete --all-namespaces` is now a recognized flag. ([#73716](https://github.com/kubernetes/kubernetes/pull/73716), [@deads2k](https://github.com/deads2k)) + +### Cloud Provider + +- Fixed a bug that caused PV allocation on non-English vSphere installations to fail ([#73115](https://github.com/kubernetes/kubernetes/pull/73115), [@alvaroaleman](https://github.com/alvaroaleman)) + +### Cluster Lifecycle + +- kubeadm: fixed nil pointer dereference caused by a bug in url parsing ([#74454](https://github.com/kubernetes/kubernetes/pull/74454), [@bart0sh](https://github.com/bart0sh)) +- CoreDNS adds readinessProbe which prevents loadbalancing to unready pods, and also allows rolling updates to work as expected. ([#74137](https://github.com/kubernetes/kubernetes/pull/74137), [@rajansandeep](https://github.com/rajansandeep)) +- kubeadm no longer allows using v1alpha3 configs for anything else than converting them to `v1beta1`. ([#74025](https://github.com/kubernetes/kubernetes/pull/74025), [@rosti](https://github.com/rosti)) +- kubeadm: now allows the usage of `--kubeconfig-dir` and `--config` flags on kubeadm init ([#73998](https://github.com/kubernetes/kubernetes/pull/73998), [@yagonobre](https://github.com/yagonobre)) +- kubeadm: all master components are now exclusively relying on the `PriorityClassName` pod spec for annotating them as cluster critical components. Since `scheduler.alpha.kubernetes.io/critical-pod` annotation is no longer supported by Kubernetes 1.14 this annotation is no longer added to master components. ([#73857](https://github.com/kubernetes/kubernetes/pull/73857), [@ereslibre](https://github.com/ereslibre)) +- kubeadm no longer dumps backtrace if it fails to remove the running containers on reset. ([#73951](https://github.com/kubernetes/kubernetes/pull/73951), [@rosti](https://github.com/rosti)) +- kubeadm: fixed a bug in the underlying library for diff related to characters like '%' ([#73941](https://github.com/kubernetes/kubernetes/pull/73941), [@neolit123](https://github.com/neolit123)) +- Scale max-inflight now limits together with master VM sizes. ([#73268](https://github.com/kubernetes/kubernetes/pull/73268), [@wojtek-t](https://github.com/wojtek-t)) +- kubeadm reset: fixed a crash caused by the absence of a configuration file ([#73636](https://github.com/kubernetes/kubernetes/pull/73636), [@bart0sh](https://github.com/bart0sh)) +- CoreDNS is now version 1.3.1 ([#73610](https://github.com/kubernetes/kubernetes/pull/73610), [@rajansandeep](https://github.com/rajansandeep)) +- kubeadm: When certificates are present in joining a new control plane now ensures that they match at least the required SANs ([#73093](https://github.com/kubernetes/kubernetes/pull/73093), [@ereslibre](https://github.com/ereslibre)) +- kubeadm: added back `--cert-dir` option for `kubeadm init phase certs sa` ([#73239](https://github.com/kubernetes/kubernetes/pull/73239), [@mattkelly](https://github.com/mattkelly)) +- kubeadm: now explicitly waits for `etcd` to have grown when joining a new control plane ([#72984](https://github.com/kubernetes/kubernetes/pull/72984), [@ereslibre](https://github.com/ereslibre)) +- kubeadm: now pulls images when joining a new control plane instance ([#72870](https://github.com/kubernetes/kubernetes/pull/72870), [@MalloZup](https://github.com/MalloZup)) +- Exited kube-proxy when configuration file changes ([#59176](https://github.com/kubernetes/kubernetes/pull/59176), [@dixudx](https://github.com/dixudx)) +- kube-addon-manager was updated to v9.0, and now uses kubectl v1.13.2 and prunes workload resources via the apps/v1 API ([#72978](https://github.com/kubernetes/kubernetes/pull/72978), [@liggitt](https://github.com/liggitt)) +- kubeadm: Now allows certain certs/keys to be missing on the secret when transferring secrets using `--experimental-upload-certs` feature ([#75415](https://github.com/kubernetes/kubernetes/pull/75415), [@ereslibre](https://github.com/ereslibre)) + +### GCP + +- Fixed liveness probe in fluentd-gcp cluster addon ([#74522](https://github.com/kubernetes/kubernetes/pull/74522), [@Pluies](https://github.com/Pluies)) +- Reduced GCE log rotation check from 1 hour to every 5 minutes. Rotation policy is unchanged (new day starts, log file size > 100MB). ([#72062](https://github.com/kubernetes/kubernetes/pull/72062), [@jpbetz](https://github.com/jpbetz)) + +### Network + +- Reduces the cache TTL for negative responses to 5s minimum. ([#74093](https://github.com/kubernetes/kubernetes/pull/74093), [@blakebarnett](https://github.com/blakebarnett)) + +### Node + +- Fixed help message for `--container-runtime-endpoint`: only unix socket is support on Linux. ([#74712](https://github.com/kubernetes/kubernetes/pull/74712), [@feiskyer](https://github.com/feiskyer)) +- Image garbage collection no longer fails for images with only one tag but more than one repository associated. ([#70647](https://github.com/kubernetes/kubernetes/pull/70647), [@corvus-ch](https://github.com/corvus-ch)) +- Re-issued Allocate grpc calls before starting a container that requests device-plugin resources if the cached state is missing. ([#73824](https://github.com/kubernetes/kubernetes/pull/73824), [@jiayingz](https://github.com/jiayingz)) +- [CRI] Added a new field called `runtime_handler` into `PodSandbox` and `PodSandboxStatus` to track the `RuntimeClass` information of a pod. ([#73833](https://github.com/kubernetes/kubernetes/pull/73833), [@haiyanmeng](https://github.com/haiyanmeng)) +- Kubelet now tries to stop containers in unknown state once before restart or remove. ([#73802](https://github.com/kubernetes/kubernetes/pull/73802), [@Random-Liu](https://github.com/Random-Liu)) +- When pleg channel is full, events are now discarded and count is recorded ([#72709](https://github.com/kubernetes/kubernetes/pull/72709), [@changyaowei](https://github.com/changyaowei)) +- Fixed the unexpected `NotReady` status when Node's iops is full if the runtime is dockershim. ([#74389](https://github.com/kubernetes/kubernetes/pull/74389), [@answer1991](https://github.com/answer1991)) +- Fixed #73264 `cpuPeriod` was not reset, but used as set via flag, although it was disabled via alpha gate ([#73342](https://github.com/kubernetes/kubernetes/pull/73342), [@szuecs](https://github.com/szuecs)) +- Updated kubelet CLI summary documentation and generated webpage ([#73256](https://github.com/kubernetes/kubernetes/pull/73256), [@deitch](https://github.com/deitch)) +- Set a low `oom_score_adj` for containers in pods with system-critical priorities ([#73758](https://github.com/kubernetes/kubernetes/pull/73758), [@sjenning](https://github.com/sjenning)) +- kubelet: Resolved hang/timeout issues when running large numbers of pods with unique `ConfigMap/Secret` references ([#74755](https://github.com/kubernetes/kubernetes/pull/74755), [@liggitt](https://github.com/liggitt)) +- Events reported for container creation, start, and stop now report the container name in the message and are more consistently formatted. ([#73892](https://github.com/kubernetes/kubernetes/pull/73892), [@smarterclayton](https://github.com/smarterclayton)) +- Removed stale `OutOfDisk` condition from kubelet side ([#72507](https://github.com/kubernetes/kubernetes/pull/72507), [@dixudx](https://github.com/dixudx)) +- Fixed the setting of `NodeAddresses` when using the vSphere CloudProvider and nodes that have multiple IP addresses. ([#70805](https://github.com/kubernetes/kubernetes/pull/70805), [@danwinship](https://github.com/danwinship)) +- Fixed dockershim panic issues when deleting docker images. ([#75367](https://github.com/kubernetes/kubernetes/pull/75367), [@feiskyer](https://github.com/feiskyer)) +- Kubelet no longer watches `ConfigMaps` and `Secrets` for terminated pods, in worst scenario causing it to not be able to send other requests to kube-apiserver ([#74809](https://github.com/kubernetes/kubernetes/pull/74809), [@oxddr](https://github.com/oxddr)) +- A new `TaintNodesByCondition` admission plugin taints newly created Node objects as "not ready", to fix a race condition that could cause pods to be scheduled on new nodes before their taints were updated to accurately reflect their reported conditions. This admission plugin is enabled by default if the `TaintNodesByCondition` feature is enabled. ([#73097](https://github.com/kubernetes/kubernetes/pull/73097), [@bsalamat](https://github.com/bsalamat)) +- kubelet now accepts `pid=<number>` in the `--system-reserved` and `--kube-reserved` options to ensure that the specified number of process IDs will be reserved for the system as a whole and for Kubernetes system daemons respectively. Please reference `Kube Reserved` and `System Reserved` in `Reserve Compute Resources for System Daemons` in the Kubernetes documentation for general discussion of resource reservation. To utilize this functionality, you must set the feature gate `SupportNodePidsLimit=true` ([#73651](https://github.com/kubernetes/kubernetes/pull/73651) + +### Scheduling + +- Improved fairness of the scheduling queue by placing pods which are attempted recently behind other pods with the same priority. ([#73700](https://github.com/kubernetes/kubernetes/pull/73700), [@denkensk](https://github.com/denkensk)) +- Improved scheduler robustness to ensure that unschedulable pods are reconsidered for scheduling when appropriate. ([#73700](https://github.com/kubernetes/kubernetes/pull/73700), [#72558](https://github.com/kubernetes/kubernetes/pull/72558), [@denkensk](https://github.com/denkensk), [#73078](https://github.com/kubernetes/kubernetes/pull/73078), [@Huang-Wei](https://github.com/Huang-Wei)) + +### Storage + +- Fixed scanning of failed iSCSI targets. ([#74306](https://github.com/kubernetes/kubernetes/pull/74306), [@jsafrane](https://github.com/jsafrane)) +- StorageOS volume plugin updated to fix an issue where volume mount succeeds even if request to mount via StorageOS API fails. ([#69782](https://github.com/kubernetes/kubernetes/pull/69782), [@darkowlzz](https://github.com/darkowlzz)) +- Ensured directories on volumes are group-executable when using `fsGroup` ([#73533](https://github.com/kubernetes/kubernetes/pull/73533), [@mxey](https://github.com/mxey)) +- Updated CSI version to 1.1 ([#75391](https://github.com/kubernetes/kubernetes/pull/75391), [@gnufied](https://github.com/gnufied)) +- Ensured that volumes get provisioned based on the zone information provided in `allowedTopologies`. ([#72731](https://github.com/kubernetes/kubernetes/pull/72731), [@skarthiksrinivas](https://github.com/skarthiksrinivas)) +- Extended the `VolumeSubpathEnvExpansion` alpha feature to support environment variable expansion ([#71351](https://github.com/kubernetes/kubernetes/pull/71351), [@kevtaylor](https://github.com/kevtaylor)) +- Fixed a bug that prevented deletion of dynamically provisioned volumes in Quobyte backends. ([#68925](https://github.com/kubernetes/kubernetes/pull/68925), [@casusbelli](https://github.com/casusbelli)) + +### Testing + +- e2e storage tests now run faster and are easier to read ([#72434](https://github.com/kubernetes/kubernetes/pull/72434), [@pohly](https://github.com/pohly)) +- `e2e.test` now rejects unknown `--provider` values instead of merely warning about them. An empty provider name is not accepted anymore and was replaced by `skeleton` (a provider with no special behavior). ([#73402](https://github.com/kubernetes/kubernetes/pull/73402), [@pohly](https://github.com/pohly)) +- Updated to go1.11.5 ([#73326](https://github.com/kubernetes/kubernetes/pull/73326), [@ixdy](https://github.com/ixdy)) +- Updated to use go1.12.1 ([#75413](https://github.com/kubernetes/kubernetes/pull/75413), [@BenTheElder](https://github.com/BenTheElder)) +- e2e tests that require SSH may now be used against clusters that have nodes without external IP addresses by setting the environment variable `KUBE_SSH_BASTION` to the `host:port` of a machine that is allowed to SSH to those nodes. The same private key that the test would use is used for the bastion host. The test connects to the bastion and then tunnels another SSH connection to the node. ([#72286](https://github.com/kubernetes/kubernetes/pull/72286), [@smarterclayton](https://github.com/smarterclayton)) +- `PidPressure` now evicts pods from lowest priority to highest priority ([#72844](https://github.com/kubernetes/kubernetes/pull/72844), [@dashpole](https://github.com/dashpole)) +- Split up the mondo `kubernetes-test` tarball into `kubernetes-test-portable` and `kubernetes-test-{OS}-{ARCH}` tarballs. ([#74065](https://github.com/kubernetes/kubernetes/pull/74065), [@ixdy](https://github.com/ixdy)) + +### VMware + +- Applied zone labels to vSphere Volumes automatically. The zone labels are visible on the PV: ([#72687](https://github.com/kubernetes/kubernetes/pull/72687), [@subramanian-neelakantan](https://github.com/subramanian-neelakantan)) + +### Windows + +Support for Windows nodes and Windows containers went going stable. + +Support for Group Managed Service Accounts (GMSA) for Windows containers in Kubernetes. GMSA are a specific type of Active Directory account that provides automatic password management, simplified service principal name (SPN) management, and the ability to delegate the management to other administrators across multiple servers. + +- Fixed smb remount and unmount issues on Windows ([#73661](https://github.com/kubernetes/kubernetes/pull/73661), [@andyzhangx](https://github.com/andyzhangx), [#75087](https://github.com/kubernetes/kubernetes/pull/75087), [@andyzhangx](https://github.com/andyzhangx)) +- Added network stats for Windows nodes and containers ([#74788](https://github.com/kubernetes/kubernetes/pull/74788), [@feiskyer](https://github.com/feiskyer)) +- The new test `[sig-network] DNS should now provide /etc/hosts entries for the cluster [LinuxOnly] [Conformance]` will validate the host entries set in the ``/etc/hosts`` file (pod's FQDN and hostname), which should be managed by Kubelet. ([#72729](https://github.com/kubernetes/kubernetes/pull/72729), [@bclau](https://github.com/bclau)) +- Allowed the kubelet to pass Windows GMSA credentials down to Docker ([#73726](https://github.com/kubernetes/kubernetes/pull/73726), [@wk8](https://github.com/wk8)) +- Added kube-proxy support for overlay networking and DSR in Windows and new flags for `network-name`, `source-vip`, and `enable-dsr`. ([#70896](https://github.com/kubernetes/kubernetes/pull/70896), [@ksubrmnn](https://github.com/ksubrmnn)) +- windows: Ensured graceful termination when being run as windows service ([#73292](https://github.com/kubernetes/kubernetes/pull/73292), [@steffengy](https://github.com/steffengy)) +- vSphere cloud provider now correctly retrieves the VM's UUID when running on Windows ([#71147](https://github.com/kubernetes/kubernetes/pull/71147), [@benmoss](https://github.com/benmoss)) +- Kubelet: added `usageNanoCores` from CRI stats provider ([#73659](https://github.com/kubernetes/kubernetes/pull/73659), [@feiskyer](https://github.com/feiskyer)) +- Introduced support for Windows nodes into the cluster bringup scripts for GCE. ([#73442](https://github.com/kubernetes/kubernetes/pull/73442), [@pjh](https://github.com/pjh)) +- Added network stats for Windows nodes and pods. ([#70121](https://github.com/kubernetes/kubernetes/pull/70121), [@feiskyer](https://github.com/feiskyer)) +- CoreDNS is only officially supported on Linux at this time. As such, when kubeadm is used to deploy this component into your kubernetes cluster, it will be restricted (using `nodeSelectors`) to run only on nodes with that operating system. This ensures that in clusters which include Windows nodes, the scheduler will not ever attempt to place CoreDNS pods on these machines, reducing setup latency and enhancing initial cluster stability. ([#69940](https://github.com/kubernetes/kubernetes/pull/69940), [@MarcPow](https://github.com/MarcPow)) + +## External Dependencies + +- Default etcd server and client have been updated to v3.3.10. ([#71615](https://github.com/kubernetes/kubernetes/pull/71615), [#70168](https://github.com/kubernetes/kubernetes/pull/70168)) +- The list of validated docker versions has changed. 1.11.1 and 1.12.1 have been removed. The current list is 1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09. ([#72823](https://github.com/kubernetes/kubernetes/pull/72823), [#72831](https://github.com/kubernetes/kubernetes/pull/72831)) +- The default Go version was updated to 1.12.1. ([#75422](https://github.com/kubernetes/kubernetes/pull/75422)) +- CNI has been updated to v0.7.5 ([#75455](https://github.com/kubernetes/kubernetes/pull/75455)) +- CSI has been updated to v1.1.0. ([#75391](https://github.com/kubernetes/kubernetes/pull/75391)) +- The dashboard add-on has been updated to v1.10.1. ([#72495](https://github.com/kubernetes/kubernetes/pull/72495)) +- Cluster Autoscaler has been updated to v1.14.0 ([#75480](https://github.com/kubernetes/kubernetes/pull/75480)) +- kube-dns is unchanged at v1.14.13 since Kubernetes 1.12 ([#68900](https://github.com/kubernetes/kubernetes/pull/68900)) +- Influxdb is unchanged at v1.3.3 since Kubernetes 1.10 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +- Grafana is unchanged at v4.4.3 since Kubernetes 1.10 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +- Kibana has been upgraded to v6.6.1. ([#71251](https://github.com/kubernetes/kubernetes/pull/71251)) +- CAdvisor has been updated to v0.33.1 ([#75140](https://github.com/kubernetes/kubernetes/pull/75140)) +- fluentd-gcp-scaler is unchanged at v0.5.0 since Kubernetes 1.13 ([#68837](https://github.com/kubernetes/kubernetes/pull/68837)) +- Fluentd in fluentd-elasticsearch has been upgraded to v1.3.3 ([#71180](https://github.com/kubernetes/kubernetes/pull/71180)) +- fluentd-elasticsearch has been updated to v2.4.0 ([#71180](https://github.com/kubernetes/kubernetes/pull/71180)) +- The fluent-plugin-kubernetes_metadata_filter plugin in fluentd-elasticsearch has been updated to v2.1.6 ([#71180](https://github.com/kubernetes/kubernetes/pull/71180)) +- fluentd-gcp is unchanged at v3.2.0 since Kubernetes 1.13 ([#70954](https://github.com/kubernetes/kubernetes/pull/70954)) +- OIDC authentication is unchanged at coreos/go-oidc v2 since Kubernetes 1.10 ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) +- Calico is unchanged at v3.3.1 since Kubernetes 1.13 ([#70932](https://github.com/kubernetes/kubernetes/pull/70932)) +- crictl on GCE is unchanged at v1.12.0 since Kubernetes 1.13 ([#69033](https://github.com/kubernetes/kubernetes/pull/69033)) +- CoreDNS has been updated to v1.3.1 ([#73610](https://github.com/kubernetes/kubernetes/pull/73610)) +- event-exporter has been updated to v0.2.3 ([#67691](https://github.com/kubernetes/kubernetes/pull/67691)) +- Es-image has been updated to Elasticsearch 6.6.1 ([#71252](https://github.com/kubernetes/kubernetes/pull/71252)) +- metrics-server remains unchanged at v0.3.1 since Kubernetes 1.12 ([#68746](https://github.com/kubernetes/kubernetes/pull/68746)) +- GLBC remains unchanged at v1.2.3 since Kubernetes 1.12 ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) +- Ingress-gce remains unchanged at v1.2.3 since Kubernetes 1.12 ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) +- ip-masq-agen remains unchanged at v2.1.1 since Kubernetes 1.12 ([#67916](https://github.com/kubernetes/kubernetes/pull/67916)) diff --git a/releases/release-1.14/release_team.md b/releases/release-1.14/release_team.md index 55088346919..ed4db94ccf1 100644 --- a/releases/release-1.14/release_team.md +++ b/releases/release-1.14/release_team.md @@ -1,12 +1,12 @@ -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -| ------ | ------ | ------ | -| Lead | Aaron Crickenberger ([@spiffxp](https://github.com/spiffxp)) | Benjamin Elder ([@BenTheElder](https://github.com/BenTheElder)), Mike Arpaia ([@marpaia](https://github.com/marpaia)) | -| Enhancements | Claire Laurence ([@claurence](https://github.com/claurence)) |Lachlan Evenson ([@lachie83](https://github.com/lachie83)), Loic LE DRU ([@lledru](https://github.com/lledru)) Arnaud Meukam ([@ameukam](https://github.com/ameukam)) | -| CI Signal | Maria Ntalla ([@mariantalla](https://github.com/mariantalla)) | Morten Torkildsen ([@mortent](https://github.com/mortent)), Kendrick Coleman ([@kacole2](https://github.com/kacole2)), Silvia Patricia Moura Pina ([@smourapina](https://github.com/smourapina)), Jorge Alarcon ([@alejandrox1](https://github.com/alejandrox1))| -| Test Infra | Amit Watve ([@amwat](https://github.com/amwat)) | Dhawal Yogesh Bhanushali ([@imkin](https://github.com/imkin)), James Munnelly ([@munnerz](https://github.com/munnerz)), Tara Gu ([@taragu](https://github.com/taragu)) | -| Bug Triage | Niko Penteridis ([@nikopen](https://github.com/nikopen)) | Nicholas Lane ([@soggy](https://github.com/soggiest)), Ibrahim AshShohail ([@ibrasho](https://github.com/ibrasho)), Tim Carr ([@timmycarr](https://github.com/timmycarr)), Mayank Kumar ([@mayank](https://github.com/krmayankk)), Marko Mudrinic ([@xmudrii](https://github.com/xmudrii)), Gianluca Arbezzano ([@gianarb](https://github.com/gianarb)) | -| Branch Manager | Hannes Hoerl ([@hoegaarden](https://github.com/hoegaarden)) | Cheryl Fong ([@bubblemelon](https://github.com/bubblemelon)), Melynda Hunter ([@melyndah](https://github.com/melyndah)), Nikhil Manchanda ([@SlickNik](https://github.com/SlickNik)) | -| Docs | Jim Angel ([@jimangel](https://github.com/jimangel)) | Barnabas Makonda ([@MAKOSCAFEE](https://github.com/MAKOSCAFEE)), Cody Clark ([@cody-clark](https://github.com/cody-clark)), Jared Bhatti ([@jaredbhatti](https://github.com/jaredbhatti)), Naomi Pentrel ([@npentrel](https://github.com/npentrel)), Tunde Oladipupo ([@simplytunde](https://github.com/simplytunde)) | -| Release Notes | Dave Strebel ([@dstrebel](https://github.com/dstrebel)) | Jeff Sica ([@jeefy](https://github.com/jeefy)), Lindsey Tulloch ([@onyiny-ang](https://github.com/onyiny-ang)), Alena Varkockova ([@alenkacz](https://github.com/alenkacz)) | -| Communications | Natasha Woods ([@nwoods3](https://github.com/nwoods3)) | Kaitlyn Barnard ([@kbarnard10](https://github.com/kbarnard10)), Jorge Castro ([@castrojo](https://github.com/castrojo)), Taylor Dolezal ([@onlydole](https://github.com/onlydole)) | -| Patch Release Managers | Aleksandra Malinowska ([@aleksandra-malinowska](https://github.com/aleksandra-malinowska)), Tim Pepper ([@tpepper](https://github.com/tpepper)) | | +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +| ------ | ------ | ------ | +| Lead | Aaron Crickenberger ([@spiffxp](https://github.com/spiffxp)) | Benjamin Elder ([@BenTheElder](https://github.com/BenTheElder)), Mike Arpaia ([@marpaia](https://github.com/marpaia)) | +| Enhancements | Claire Laurence ([@claurence](https://github.com/claurence)) |Lachlan Evenson ([@lachie83](https://github.com/lachie83)), Loic LE DRU ([@lledru](https://github.com/lledru)) Arnaud Meukam ([@ameukam](https://github.com/ameukam)) | +| CI Signal | Maria Ntalla ([@mariantalla](https://github.com/mariantalla)) | Morten Torkildsen ([@mortent](https://github.com/mortent)), Kendrick Coleman ([@kacole2](https://github.com/kacole2)), Silvia Patricia Moura Pina ([@smourapina](https://github.com/smourapina)), Jorge Alarcon ([@alejandrox1](https://github.com/alejandrox1))| +| Test Infra | Amit Watve ([@amwat](https://github.com/amwat)) | Dhawal Yogesh Bhanushali ([@imkin](https://github.com/imkin)), James Munnelly ([@munnerz](https://github.com/munnerz)), Tara Gu ([@taragu](https://github.com/taragu)) | +| Bug Triage | Niko Penteridis ([@nikopen](https://github.com/nikopen)) | Nicholas Lane ([@soggy](https://github.com/soggiest)), Ibrahim AshShohail ([@ibrasho](https://github.com/ibrasho)), Tim Carr ([@timmycarr](https://github.com/timmycarr)), Mayank Kumar ([@mayank](https://github.com/krmayankk)), Marko Mudrinic ([@xmudrii](https://github.com/xmudrii)), Gianluca Arbezzano ([@gianarb](https://github.com/gianarb)) | +| Branch Manager | Hannes Hoerl ([@hoegaarden](https://github.com/hoegaarden)) | Cheryl Fong ([@bubblemelon](https://github.com/bubblemelon)), Melynda Hunter ([@melyndah](https://github.com/melyndah)), Nikhil Manchanda ([@SlickNik](https://github.com/SlickNik)) | +| Docs | Jim Angel ([@jimangel](https://github.com/jimangel)) | Barnabas Makonda ([@MAKOSCAFEE](https://github.com/MAKOSCAFEE)), Cody Clark ([@cody-clark](https://github.com/cody-clark)), Jared Bhatti ([@jaredbhatti](https://github.com/jaredbhatti)), Naomi Pentrel ([@npentrel](https://github.com/npentrel)), Tunde Oladipupo ([@simplytunde](https://github.com/simplytunde)) | +| Release Notes | Dave Strebel ([@dstrebel](https://github.com/dstrebel)) | Jeff Sica ([@jeefy](https://github.com/jeefy)), Lindsey Tulloch ([@onyiny-ang](https://github.com/onyiny-ang)), Alena Varkockova ([@alenkacz](https://github.com/alenkacz)) | +| Communications | Natasha Woods ([@nwoods3](https://github.com/nwoods3)) | Kaitlyn Barnard ([@kbarnard10](https://github.com/kbarnard10)), Jorge Castro ([@castrojo](https://github.com/castrojo)), Taylor Dolezal ([@onlydole](https://github.com/onlydole)) | +| Patch Release Managers | Aleksandra Malinowska ([@aleksandra-malinowska](https://github.com/aleksandra-malinowska)), Tim Pepper ([@tpepper](https://github.com/tpepper)) | | diff --git a/releases/release-1.15/README.md b/releases/release-1.15/README.md index 4db401127ff..740d44b2bc8 100644 --- a/releases/release-1.15/README.md +++ b/releases/release-1.15/README.md @@ -1,195 +1,195 @@ -# Kubernetes 1.15: The Persevering Release -![Game-of-kubernetes](game-of-kubernetes.jpg) - -#### Links -* [This document](https://git.k8s.io/sig-release/releases/release-1.15/README.md) -* [Release Team](https://git.k8s.io/sig-release/releases/release-1.15/release_team.md) -* [Meeting Minutes](http://bit.ly/k8s115-releasemtg) - Every Monday at 9AM PT - Zoom link is in the meeting minutes -* [v1.15 Release Calendar](http://bit.ly/k8s115cal) -* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail - -#### Tracking docs - -* [Enhancements Tracking Sheet](http://bit.ly/115-enhancements) -* Bug Triage Tracking Sheet -* [CI Signal Report](http://bit.ly/k8sv115cisignal) -* [Retrospective Document](http://bit.ly/115-retro) -* [kubernetes/kubernetes v1.15 milestone](https://github.com/kubernetes/kubernetes/milestone/42) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## tl;dr -The 1.15 release cycle is proposed as follows: - -- **Monday, April 08** - Release Cycle Begins -- **Tuesday, April 30th, EOD PST** - Enhancements Freeze -- **Thursday, May 30th, EOD PST** - Code Freeze -- **Tuesday, June 04** - Docs must be completed and reviewed -- **Monday, June 17th** - Kubernetes 1.15.0 Released - -## What will we do differently this release? - -* To avoid releasing during KubeCon Shanghai (June 24-28) we will plan for an 11 week release cycle. - -* We have a new role on the release team - the emeritus lead. - *The emeritus lead will be responsible for ensuring shadow selection happens and that release shadows are getting the most out of their participation in the release process - -## What are we continuing from the previous release -* All Enhancements must have a KEP that is in an implementable state by enhancement freeze. If the enhanement does not have a KEP in an implementable state by enhancement freeze it will be removed from the milestone and will require an exception. - -* No code slush - -## Timeline -| **What** | **Who** |**WHEN** | **WEEK** | -| --- | --- | --- | --- | -| 1.15 Release Cycle begins | Release Lead | Monday, April 08, 2019 | Week 1 | -| Schedule Finalized | Release Lead | Friday, April 12, 2019 | Week 1 | -| Release Team Finalized | Release Team Leads | Friday, April 12, 2019 | Week 1 | -| Start Enhancements Tracking | Enhancements Lead | Tuesday, April 16th, 2019 | Week 2 -| 1.15.0-alpha.1 released | Branch Manager Lead | Tuesday, April 16, 2019 | Week 2 | -| Start Release Notes Draft | Release Notes Lead | Tuesday, April 23, 2019 | Week 3 | -| Enhancements Freeze | Enhancements Lead | Tuesday, April 30th, 2019 | Week 4 | -| 1.15.0-alpha.2 released | Branch Manager Lead | Monday, April 29, 2019 | Week 4| -| 1.15.0-alpha.3 releaed | Branch Manager Lead | Tuesday May 07, 2019 | Week 5 | -| 1.15.0 branch cut | Branch Manager Lead | Tuesday, May 14th, 2019 | Week 6 | -| 1.15.0-beta.0 released | Branch Manager Lead | Tuesday, May 14th, 2019 | Week 6 | -| 1.15.0 release jobs created, 1.11.0 Jobs removed | Test Infra Lead | Thursday, May 16th, 2019 | Week 6 | -| Begin [Burndown] (MWF meetings) | Release Lead | Monday, May 27th, 2019 | Week 8 | -| 1.15.0-beta.1 released | Branch Manager Lead |Tuesday, May 28th, 2019 | Week 8 | -| Docs Deadline - Open placeholder Prs | Docs Lead | Friday, May 31, 2019 | Week 8 | -| Code Freeze | Test Infra Lead | Thursday, May 30th, 2019 | Week 8 | -| Daily burndowns start | Release Lead | Monday, June 03, 2019 | Week 9 | -| Docs deadline - PRs ready for review | Docs Lead |Tuesday, June 04, 2019 | Week 9 | -| 1.15.0-beta.2 released | Branch Manager Lead | Wednesday, June 05, 2019 | Week 9 | -| Docs Last Call | Docs Lead | Monday, June 10th, 2019 | Week 10 | -| Code Thaw | Test Infra Lead | Tuesday, June 11th. 2019 | Week 10 -| 1.15.0-rc.1 released | Branch Manager Lead | Tuesday, June 11th, 2019 | Week 10 | -| Cherry pick deadline | Branch Manager | Thursday, June 13th, 2019 | Week 10 -| 1.15.0 Released | Branch Manager Lead | Monday, June 17th, 2019 | Week 11 - - -## Phases - -### Enhancements Freeze -All enhancements wishing to be included in 1.15 must have -* A KEP in an implementable state - * Including Testing Plans - * Including Graduation Criteria -* An open issue in the 1.15 Milestone - -If your enhancement doesn't not meet these requirements it will be removed from the milestone and will require an exception. - -### Burndown -One week prior to Code Freeze, we increase the cadence of release team meetings -to begin tracking work more closely. We call this Burndown, because at this -point we have a list of outstanding issues and PRs, and are actively working to -burn that list down. SIG representatives will be asked to attend if their SIG has -specific outstanding issues that are blocking the release. - -Join [kubernetes-sig-release@] to get a calendar invite. This meeting -may conflict with other community meetings. Please prioritize this meeting if -a member of the release team asks you to attend. - -The intent of these meetings is to: - -* Focus on fixing bugs, eliminating test flakes and general release - stabilization. -* Ensure docs and release notes are written and accurate. -* Identify all enhancement going into the release, and make sure alpha, beta, GA - is marked in enhancements repo. -* Provide a [one-stop view of release progress](https://bit.ly/k8s114-minutes) - including relevant release metrics. - -### Code Freeze - -All enhancements going into the release must be code-complete, **including -tests**, and have docs PRs open by ***Thursday, May 30th, 2019***. - -The docs PRs don't have to be ready to merge, but it should be clear what the -topic will be and who is responsible for writing it. This person will become the -primary contact for the documentation lead. It’s incredibly important that -documentation work gets completed as quickly as possible. - -After this point, only release-blocking issues and PRs will be allowed in the -milestone. - -### Code Thaw - -One week prior to release, it is expected that all but a handful of outstanding -PRs for kubernetes v1.16.0 have landed in the release-1.15 branch. Assuming the -release team agrees, Code Freeze will be lifted, and we enter Code Thaw. - -From this point forward, any PRs intended for v1.15 must be cherry picked to the -release-1.15 branch. - -### Exceptions - -Starting at [Enhancements Freeze] the release team will solicit and rule on -[exception requests] for enhancements and test work that is unlikely to be done -by Code Freeze. The exception approval is the responsibility of the SIG or SIGs -labeled in the pull request. The release team may intervene or deny the request -only if it poses a risk to release quality, or could negatively impact the overall -timeline. Changes introduced at this point should be well-tested, -well-understood, limited in architectural scope, and low risk. All of those -factors should be considered in the approval process. Enhancements on an -feature branch with documentation, test cases, and passing CI are more likely to -be accepted. - -### Pruning - -Enhancements that are partially implemented and/or lack sufficient tests may be -considered for pruning beginning after [Code Freeze], unless they've been -granted an [Exception]. - -The release team will work with SIGs and enhancements owners to evaluate each -case, but for example, pruning could include actions such as: - -* Disabling the use of a new API or field -* Switching the default value of a flag or field -* Moving a new API or field behind an Alpha Enhancements gate -* Reverting commits or deleting code - -This should occur before 1.14.0-beta.1 is cut so we have time to gather signal -on whether the system is stable in this state. These are considered drastic -measures, so the release team will strive to coordinate at-risk work with SIGs -before this time. The goal is to make code freeze, and overall project -transparency, enforceable despite the lack of a consistently used feature branch -process. - -### Docs - -If an enhancement needs documentation, enter "Yes" in the enhancement tracking -spreadsheet and add a link to the documentation PR. You can open documentation -PRs in the [kubernetes/website] repository. If you have questions, the release -documentation lead, or representatives from SIG-Docs will be happy to assist -you. - -For documentation PRs: - -* Open PRs against the dev-1.15 branch based off of the 1.15 release PR. The - documentation workflow uses feature branches for release documentation, rather -than basing from master. **Be sure to open your PR against the release branch**. -* Add your PR to the 1.15 Release milestone. - -[Enhancements Freeze]: #enhancements-freeze -[Burndown]: #burndown -[Code Freeze]: #code-freeze -[Code Thaw]: #code-thaw -[Exception]: #exceptions - -[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[k8s115-calendar]: http://bit.ly/k8s115cal - -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes -[kubernetes/enhancements]: https://github.com/kubernetes/enhancements -[kubernetes/website]: https://github.com/kubernetes/website - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-upgrade]: https://testgrid.k8s.io/sig-release-master-upgrade#Summary - -[exception requests]: https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md +# Kubernetes 1.15: The Persevering Release +![Game-of-kubernetes](game-of-kubernetes.jpg) + +#### Links +* [This document](https://git.k8s.io/sig-release/releases/release-1.15/README.md) +* [Release Team](https://git.k8s.io/sig-release/releases/release-1.15/release_team.md) +* [Meeting Minutes](http://bit.ly/k8s115-releasemtg) - Every Monday at 9AM PT - Zoom link is in the meeting minutes +* [v1.15 Release Calendar](http://bit.ly/k8s115cal) +* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail + +#### Tracking docs + +* [Enhancements Tracking Sheet](http://bit.ly/115-enhancements) +* Bug Triage Tracking Sheet +* [CI Signal Report](http://bit.ly/k8sv115cisignal) +* [Retrospective Document](http://bit.ly/115-retro) +* [kubernetes/kubernetes v1.15 milestone](https://github.com/kubernetes/kubernetes/milestone/42) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## tl;dr +The 1.15 release cycle is proposed as follows: + +- **Monday, April 08** - Release Cycle Begins +- **Tuesday, April 30th, EOD PST** - Enhancements Freeze +- **Thursday, May 30th, EOD PST** - Code Freeze +- **Tuesday, June 04** - Docs must be completed and reviewed +- **Monday, June 17th** - Kubernetes 1.15.0 Released + +## What will we do differently this release? + +* To avoid releasing during KubeCon Shanghai (June 24-28) we will plan for an 11 week release cycle. + +* We have a new role on the release team - the emeritus lead. + *The emeritus lead will be responsible for ensuring shadow selection happens and that release shadows are getting the most out of their participation in the release process + +## What are we continuing from the previous release +* All Enhancements must have a KEP that is in an implementable state by enhancement freeze. If the enhanement does not have a KEP in an implementable state by enhancement freeze it will be removed from the milestone and will require an exception. + +* No code slush + +## Timeline +| **What** | **Who** |**WHEN** | **WEEK** | +| --- | --- | --- | --- | +| 1.15 Release Cycle begins | Release Lead | Monday, April 08, 2019 | Week 1 | +| Schedule Finalized | Release Lead | Friday, April 12, 2019 | Week 1 | +| Release Team Finalized | Release Team Leads | Friday, April 12, 2019 | Week 1 | +| Start Enhancements Tracking | Enhancements Lead | Tuesday, April 16th, 2019 | Week 2 +| 1.15.0-alpha.1 released | Branch Manager Lead | Tuesday, April 16, 2019 | Week 2 | +| Start Release Notes Draft | Release Notes Lead | Tuesday, April 23, 2019 | Week 3 | +| Enhancements Freeze | Enhancements Lead | Tuesday, April 30th, 2019 | Week 4 | +| 1.15.0-alpha.2 released | Branch Manager Lead | Monday, April 29, 2019 | Week 4| +| 1.15.0-alpha.3 releaed | Branch Manager Lead | Tuesday May 07, 2019 | Week 5 | +| 1.15.0 branch cut | Branch Manager Lead | Tuesday, May 14th, 2019 | Week 6 | +| 1.15.0-beta.0 released | Branch Manager Lead | Tuesday, May 14th, 2019 | Week 6 | +| 1.15.0 release jobs created, 1.11.0 Jobs removed | Test Infra Lead | Thursday, May 16th, 2019 | Week 6 | +| Begin [Burndown] (MWF meetings) | Release Lead | Monday, May 27th, 2019 | Week 8 | +| 1.15.0-beta.1 released | Branch Manager Lead |Tuesday, May 28th, 2019 | Week 8 | +| Docs Deadline - Open placeholder Prs | Docs Lead | Friday, May 31, 2019 | Week 8 | +| Code Freeze | Test Infra Lead | Thursday, May 30th, 2019 | Week 8 | +| Daily burndowns start | Release Lead | Monday, June 03, 2019 | Week 9 | +| Docs deadline - PRs ready for review | Docs Lead |Tuesday, June 04, 2019 | Week 9 | +| 1.15.0-beta.2 released | Branch Manager Lead | Wednesday, June 05, 2019 | Week 9 | +| Docs Last Call | Docs Lead | Monday, June 10th, 2019 | Week 10 | +| Code Thaw | Test Infra Lead | Tuesday, June 11th. 2019 | Week 10 +| 1.15.0-rc.1 released | Branch Manager Lead | Tuesday, June 11th, 2019 | Week 10 | +| Cherry pick deadline | Branch Manager | Thursday, June 13th, 2019 | Week 10 +| 1.15.0 Released | Branch Manager Lead | Monday, June 17th, 2019 | Week 11 + + +## Phases + +### Enhancements Freeze +All enhancements wishing to be included in 1.15 must have +* A KEP in an implementable state + * Including Testing Plans + * Including Graduation Criteria +* An open issue in the 1.15 Milestone + +If your enhancement doesn't not meet these requirements it will be removed from the milestone and will require an exception. + +### Burndown +One week prior to Code Freeze, we increase the cadence of release team meetings +to begin tracking work more closely. We call this Burndown, because at this +point we have a list of outstanding issues and PRs, and are actively working to +burn that list down. SIG representatives will be asked to attend if their SIG has +specific outstanding issues that are blocking the release. + +Join [kubernetes-sig-release@] to get a calendar invite. This meeting +may conflict with other community meetings. Please prioritize this meeting if +a member of the release team asks you to attend. + +The intent of these meetings is to: + +* Focus on fixing bugs, eliminating test flakes and general release + stabilization. +* Ensure docs and release notes are written and accurate. +* Identify all enhancement going into the release, and make sure alpha, beta, GA + is marked in enhancements repo. +* Provide a [one-stop view of release progress](https://bit.ly/k8s114-minutes) + including relevant release metrics. + +### Code Freeze + +All enhancements going into the release must be code-complete, **including +tests**, and have docs PRs open by ***Thursday, May 30th, 2019***. + +The docs PRs don't have to be ready to merge, but it should be clear what the +topic will be and who is responsible for writing it. This person will become the +primary contact for the documentation lead. It’s incredibly important that +documentation work gets completed as quickly as possible. + +After this point, only release-blocking issues and PRs will be allowed in the +milestone. + +### Code Thaw + +One week prior to release, it is expected that all but a handful of outstanding +PRs for kubernetes v1.16.0 have landed in the release-1.15 branch. Assuming the +release team agrees, Code Freeze will be lifted, and we enter Code Thaw. + +From this point forward, any PRs intended for v1.15 must be cherry picked to the +release-1.15 branch. + +### Exceptions + +Starting at [Enhancements Freeze] the release team will solicit and rule on +[exception requests] for enhancements and test work that is unlikely to be done +by Code Freeze. The exception approval is the responsibility of the SIG or SIGs +labeled in the pull request. The release team may intervene or deny the request +only if it poses a risk to release quality, or could negatively impact the overall +timeline. Changes introduced at this point should be well-tested, +well-understood, limited in architectural scope, and low risk. All of those +factors should be considered in the approval process. Enhancements on an +feature branch with documentation, test cases, and passing CI are more likely to +be accepted. + +### Pruning + +Enhancements that are partially implemented and/or lack sufficient tests may be +considered for pruning beginning after [Code Freeze], unless they've been +granted an [Exception]. + +The release team will work with SIGs and enhancements owners to evaluate each +case, but for example, pruning could include actions such as: + +* Disabling the use of a new API or field +* Switching the default value of a flag or field +* Moving a new API or field behind an Alpha Enhancements gate +* Reverting commits or deleting code + +This should occur before 1.14.0-beta.1 is cut so we have time to gather signal +on whether the system is stable in this state. These are considered drastic +measures, so the release team will strive to coordinate at-risk work with SIGs +before this time. The goal is to make code freeze, and overall project +transparency, enforceable despite the lack of a consistently used feature branch +process. + +### Docs + +If an enhancement needs documentation, enter "Yes" in the enhancement tracking +spreadsheet and add a link to the documentation PR. You can open documentation +PRs in the [kubernetes/website] repository. If you have questions, the release +documentation lead, or representatives from SIG-Docs will be happy to assist +you. + +For documentation PRs: + +* Open PRs against the dev-1.15 branch based off of the 1.15 release PR. The + documentation workflow uses feature branches for release documentation, rather +than basing from master. **Be sure to open your PR against the release branch**. +* Add your PR to the 1.15 Release milestone. + +[Enhancements Freeze]: #enhancements-freeze +[Burndown]: #burndown +[Code Freeze]: #code-freeze +[Code Thaw]: #code-thaw +[Exception]: #exceptions + +[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[k8s115-calendar]: http://bit.ly/k8s115cal + +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes +[kubernetes/enhancements]: https://github.com/kubernetes/enhancements +[kubernetes/website]: https://github.com/kubernetes/website + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-upgrade]: https://testgrid.k8s.io/sig-release-master-upgrade#Summary + +[exception requests]: https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md diff --git a/releases/release-1.15/release-notes-draft.md b/releases/release-1.15/release-notes-draft.md index ab5d2c62a5e..b8bc23c5803 100644 --- a/releases/release-1.15/release-notes-draft.md +++ b/releases/release-1.15/release-notes-draft.md @@ -1,552 +1,552 @@ -# Kubernetes v1.15 Release Notes - -## 1.15 What’s New - -A complete changelog for the release notes is now hosted in a customizable format at [https://relnotes.k8s.io/](https://relnotes.k8s.io/?releaseVersions=1.15.0). Check it out and please give us your feedback! - -Kubernetes 1.15 consists of **25 enhancements**: 2 moving to stable, 13 in beta, and 10 in alpha. The main themes of this release are: - -#### Continuous Improvement -- Project sustainability is not just about features. Many SIGs have been working on improving test coverage, ensuring the basics stay reliable, and stability of the core feature set and working on maturing existing features and cleaning up the backlog. - -#### Extensibility - -- The community has been asking for continuing support of extensibility, so this cycle features more work around CRDs and API Machinery. Most of the enhancements in this cycle were from SIG API Machinery and related areas. - -### Extensibility around core Kubernetes APIs - -#### CustomResourceDefinitions Pruning -To enforce both data consistency and security, Kubernetes performs pruning, or the automatic removal of unknown fields in objects sent to a Kubernetes API. An "unknown" field is one that is not specified in the OpenAPI validation schema. This behavior is already in place for native resources and ensures only data structures specified by the CRD developer are persisted to etcd. It will be available as a beta feature in Kubernetes 1.15. - -Pruning is activated by setting `spec.preserveUnknownFields: false` in the CustomResourceDefinition. A future apiextensions.k8s.io/v1 variant of CRDs will enforce pruning. - -Pruning requires that CRD developer provides complete, structural validation schemas, either at the top-level or for all versions of the CRD. - -#### CustomResourceDefinition Defaulting - -CustomResourceDefinitions also have new support for defaulting, with defaults specified using the `default` keyword in the OpenAPI validation schema. Defaults are set for unspecified fields in an object sent to the API, and when reading from etcd. - -Defaulting will be available as alpha in Kubernetes 1.15 and requires structural schemas. - -#### CustomResourceDefinition OpenAPI Publishing - -OpenAPI specs for native types have long been served at /openapi/v2, and they are consumed by a number of components, notably kubectl client-side validation, kubectl explain and OpenAPI based client generators. - -With Kubernetes 1.15 as beta, OpenAPI schemas are also published for CRDs, as long as their schemas are structural. - -These changes are reflected in the following Kubernetes enhancements: -([#383](https://github.com/kubernetes/enhancements/issues/383)), ([#575](https://github.com/kubernetes/enhancements/issues/575) ), ([#492](https://github.com/kubernetes/enhancements/issues/492) ), ([#598](https://github.com/kubernetes/enhancements/issues/598) ), ([#692](https://github.com/kubernetes/enhancements/issues/692) ), ([#95](https://github.com/kubernetes/enhancements/issues/95) ), ([#995](https://github.com/kubernetes/enhancements/issues/995) ), ([#956](https://github.com/kubernetes/enhancements/issues/956) ) - -### Cluster Lifecycle Stability and Usability Improvements -Work on making Kubernetes installation, upgrade and configuration even more robust has been a major focus for this cycle for SIG Cluster Lifecycle (see the May 6, 2019 [Community Update](https://docs.google.com/presentation/d/1QUOsQxfEfHlMq4lPjlK2ewQHsr9peEKymDw5_XwZm8Q/edit?usp=sharing)). Bug fixes across bare metal tooling and production-ready user stories, such as the high availability use cases have been given priority for 1.15. - -kubeadm, the cluster lifecycle building block, continues to receive features and stability work required for bootstrapping production clusters efficiently. kubeadm has promoted high availability (HA) capability to beta, allowing users to use the familiar `kubeadm init` and `kubeadm join` commands to [configure and deploy an HA control plane](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/). An entire new test suite has been created specifically for ensuring these features will stay stable over time. - -Certificate management has become more robust in 1.15, with kubeadm now seamlessly rotating all your certificates (on upgrades) before they expire. Check the [kubeadm documentation](https://github.com/kubernetes/website/blob/dev-1.15/content/en/docs/reference/setup-tools/kubeadm/kubeadm-alpha.md) for information on how to manage your certificates. - -The kubeadm configuration file API is moving from v1beta1 to v1beta2 in 1.15. - -These changes are reflected in the following Kubernetes enhancements: -([#357](https://github.com/kubernetes/enhancements/issues/357) ), ([#970](https://github.com/kubernetes/enhancements/issues/970) ) - -### Continued improvement of CSI -In Kubernetes v1.15, SIG Storage continued work to [enable migration of in-tree volume plugins](https://github.com/kubernetes/enhancements/issues/625) to the Container Storage Interface (CSI). SIG Storage worked on bringing CSI to feature parity with in-tree functionality, including functionality like resizing, inline volumes, and more. SIG Storage introduces new alpha functionality in CSI that doesn't exist in the Kubernetes Storage subsystem yet, like volume cloning. - -Volume cloning enables users to specify another PVC as a "DataSource" when provisioning a new volume. If the underlying storage system supports this functionality and implements the "CLONE_VOLUME" capability in its CSI driver, then the new volume becomes a clone of the source volume. - -These changes are reflected in the following Kubernetes enhancements: -([#625](https://github.com/kubernetes/enhancements/issues/625)) - -#### Additional Notable Feature Updates -- Support for go modules in Kubernetes Core. -- Continued preparation for cloud provider extraction and code organization. The cloud provider code has been moved to kubernetes/legacy-cloud-providers for easier removal later and external consumption. -- Kubectl [get and describe](https://github.com/kubernetes/enhancements/issues/515) now works with extensions -- Nodes now support [third party monitoring plugins](https://github.com/kubernetes/enhancements/issues/606). -- A new [Scheduling Framework](https://github.com/kubernetes/enhancements/issues/624) for schedule plugins is now Alpha. -- ExecutionHook API [designed to trigger hook commands](https://github.com/kubernetes/enhancements/issues/962) in containers is now Alpha. -- Continued deprecation of extensions/v1beta1, apps/v1beta1, and apps/v1beta2 APIs; these extensions will be retired in 1.16! - -Check the [release notes website](https://relnotes.k8s.io/?releaseVersions=1.15.0) for the complete changelog of notable features and fixes. - - - - -## Known Issues - -- Concurrently joining control-plane nodes does not work as expected in kubeadm 1.15.0. The feature was planned for release in 1.15.0, but a fix may come in a follow up patch release. - -- Using `--log-file` is known to be problematic in 1.15. This presents as things being logged multiple times to the same file. The behaviour and details of this issue, as well as some preliminary attempts at fixing it are documented [here](https://github.com/kubernetes/kubernetes/issues/78734#issuecomment-501372131) - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -#### API Machinery - -- `k8s.io/kubernetes` and published components (such as `k8s.io/client-go` and `k8s.io/api`) now contain go module files including dependency version information. See [go-modules](http://git.k8s.io/client-go/INSTALL.md#go-modules) for details on consuming `k8s.io/client-go` using go modules. ([#74877](https://github.com/kubernetes/kubernetes/pull/74877), [@liggitt](https://github.com/liggitt)) - -#### Apps - -- Hyperkube short aliases have been removed from source code, because hyperkube docker image currently creates these aliases. ([#76953](https://github.com/kubernetes/kubernetes/pull/76953), [@Rand01ph](https://github.com/Rand01ph)) - -#### Auth - -- The Rancher credential provider has now been removed. This only affects you if you are using the downstream Rancher distro. ([#77099](https://github.com/kubernetes/kubernetes/pull/77099), [@dims](https://github.com/dims)) - - -#### AWS - -- The `system:aws-cloud-provider` cluster role, deprecated in v1.13, is no longer auto-created. Deployments using the AWS cloud provider should grant required permissions to the `aws-cloud-provider` service account in the `kube-system` namespace as part of deployment. ([#66635](https://github.com/kubernetes/kubernetes/pull/66635), [@wgliang](https://github.com/wgliang)) - -#### Azure - -- Kubelet can now run without identity on Azure. A sample cloud provider configuration is: `{"vmType": "vmss", "useInstanceMetadata": true, "subscriptionId": "<subscriptionId>"}` ([#77906](https://github.com/kubernetes/kubernetes/pull/77906), [@feiskyer](https://github.com/feiskyer)) -- Multiple Kubernetes clusters can now share the same resource group - - When upgrading from previous releases, issues will arise with public IPs if multiple clusters share the same resource group. To solve these problems, make the following changes to the cluster: -Recreate the relevant LoadBalancer services, or add a new tag 'kubernetes-cluster-name: <cluster-name>' manually for existing public IPs. -Configure each cluster with a different cluster name using `kube-controller-manager --cluster-name=<cluster-name>` ([#77630](https://github.com/kubernetes/kubernetes/pull/77630), [@feiskyer](https://github.com/feiskyer)) -- The cloud config for Azure cloud provider can now be initialized from Kubernetes secret azure-cloud-provider in kube-system namespace - - the secret is a serialized version of `azure.json` file with key cloud-config. And the secret name is azure-cloud-provider. - - A new option cloudConfigType has been added to the cloud-config file. Supported values are: `file`, `secret` and `merge` (`merge` is the default value). - - To allow Azure cloud provider to read secrets, the [RBAC rules](https://github.com/kubernetes/kubernetes/pull/78242) should be configured. - -#### CLI - -- `kubectl scale job`, deprecated since 1.10, has been removed. ([#78445](https://github.com/kubernetes/kubernetes/pull/78445), [@soltysh](https://github.com/soltysh)) -- The deprecated `--pod`/`-p` flag for `kubectl exec` has been removed. The flag has been marked as deprecated since k8s version v1.12. ([#76713](https://github.com/kubernetes/kubernetes/pull/76713), [@prksu](https://github.com/prksu)) - - -#### Lifecycle - -- Support for deprecated old kubeadm v1alpha3 config has been totally removed. ([#75179](https://github.com/kubernetes/kubernetes/pull/75179), [@rosti](https://github.com/rosti)) -- kube-up.sh no longer supports "centos" and "local" providers. ([#76711](https://github.com/kubernetes/kubernetes/pull/76711), [@dims](https://github.com/dims)) - -#### Network - -- The deprecated flag `--conntrack-max` has been removed from kube-proxy. Users of this flag should switch to `--conntrack-min` and `--conntrack-max-per-core` instead. ([#78399](https://github.com/kubernetes/kubernetes/pull/78399), [@rikatz](https://github.com/rikatz)) -- The deprecated kube-proxy flag `--cleanup-iptables` has been removed. ([#78344](https://github.com/kubernetes/kubernetes/pull/78344), [@aramase](https://github.com/aramase)) - -#### Node - -- The deprecated kubelet security controls `AllowPrivileged`, `HostNetworkSources`, `HostPIDSources`, and `HostIPCSources` have been removed. Enforcement of these restrictions should be done through admission control (such as `PodSecurityPolicy`) instead. ([#77820](https://github.com/kubernetes/kubernetes/pull/77820), [@dims](https://github.com/dims)) -- The deprecated Kubelet flag `--allow-privileged` has been removed. Remove any use of the flag from your kubelet scripts or manifests. ([#77820](https://github.com/kubernetes/kubernetes/pull/77820), [@dims](https://github.com/dims)) -- The kubelet now only collects cgroups metrics for the node, container runtime, kubelet, pods, and containers. ([#72787](https://github.com/kubernetes/kubernetes/pull/72787), [@dashpole](https://github.com/dashpole)) - -#### Storage - -- The `Node.Status.Volumes.Attached.DevicePath` field is now unset for CSI volumes. You must update any external controllers that depend on this field. ([#75799](https://github.com/kubernetes/kubernetes/pull/75799), [@msau42](https://github.com/msau42)) -- CSI alpha CRDs have been removed ([#75747](https://github.com/kubernetes/kubernetes/pull/75747), [@msau42](https://github.com/msau42)) -- The `StorageObjectInUseProtection` admission plugin is enabled by default, so the default enabled admission plugins are now `NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota,StorageObjectInUseProtection`. Please note that if you previously had not set the `--admission-control` flag, your cluster behavior may change (to be more standard). ([#74610](https://github.com/kubernetes/kubernetes/pull/74610), [@oomichi](https://github.com/oomichi)) - - - -## Deprecations and Removals - -- kubectl - - `kubectl convert`, deprecated since v1.14, will be removed in v1.17. - - The `--export` flag for the `kubectl get` command, deprecated since v1.14, will be removed in v1.18. - - The `--pod`/`-p` flag for `kubectl exec`, deprecated since 1.12, has been removed. - - `kubectl scale job`, deprecated since 1.10, has been removed. ([#78445](https://github.com/kubernetes/kubernetes/pull/78445), [@soltysh](https://github.com/soltysh)) - - -- kubelet - - The `beta.kubernetes.io/os` and `beta.kubernetes.io/arch` labels, deprecated since v1.14, are targeted for removal in v1.18. - - The `--containerized` flag, deprecated since v1.14, will be removed in a future release. - - cAdvisor json endpoints have been deprecated. ([#78504](https://github.com/kubernetes/kubernetes/pull/78504), [@dashpole](https://github.com/dashpole)) - -- kube-apiserver - - The `--enable-logs-handler` flag and log-serving functionality is deprecated, and scheduled to be removed in v1.19. ([#77611](https://github.com/kubernetes/kubernetes/pull/77611), [@rohitsardesai83](https://github.com/rohitsardesai83)) - -- kube-proxy - - The deprecated `--cleanup-iptables` has been removed,. ([#78344](https://github.com/kubernetes/kubernetes/pull/78344), [@aramase](https://github.com/aramase)) - - -- API - - Ingress resources will no longer be served from `extensions/v1beta1` in v1.19. Migrate use to the `networking.k8s.io/v1beta1` API, available since v1.14. Existing persisted data can be retrieved via the `networking.k8s.io/v1beta1` API. - - NetworkPolicy resources will no longer be served from `extensions/v1beta1` in v1.16. Migrate use to the `networking.k8s.io/v1` API, available since v1.8. Existing persisted data can be retrieved via the `networking.k8s.io/v1` API. - - PodSecurityPolicy resources will no longer be served from `extensions/v1beta1` in v1.16. Migrate to the `policy/v1beta1` API, available since v1.10. Existing persisted data can be retrieved via the `policy/v1beta1` API. - - DaemonSet, Deployment, and ReplicaSet resources will no longer be served from `extensions/v1beta1`, `apps/v1beta1`, or `apps/v1beta2` in v1.16. Migrate to the `apps/v1` API, available since v1.9. Existing persisted data can be retrieved via the `apps/v1` API. - - PriorityClass resources will no longer be served from `scheduling.k8s.io/v1beta1` and `scheduling.k8s.io/v1alpha1` in v1.17. Migrate use to the `scheduling.k8s.io/v1` API, available since v1.14. Existing persisted data can be retrieved via the `scheduling.k8s.io/v1` API. - - The `export` query parameter for list API calls, deprecated since v1.14, will be removed in v1.18. - - The `series.state` field in the events.k8s.io/v1beta1 Event API is deprecated and will be removed in v1.18 ([#75987](https://github.com/kubernetes/kubernetes/pull/75987), [@yastij](https://github.com/yastij)) - -- kubeadm - - The `kubeadm upgrade node config` and `kubeadm upgrade node experimental-control-plane` commands are deprecated in favor of `kubeadm upgrade node`, and will be removed in a future release. ([#78408](https://github.com/kubernetes/kubernetes/pull/78408), [@fabriziopandini](https://github.com/fabriziopandini)) - - The flag `--experimental-control-plane` is now deprecated in favor of `--control-plane`. The flag `--experimental-upload-certs` is now deprecated in favor of `--upload-certs` ([#78452](https://github.com/kubernetes/kubernetes/pull/78452), [@fabriziopandini](https://github.com/fabriziopandini)) - - `kubeadm config upload` has been deprecated, as its replacement is now graduated. Please use `kubeadm init phase upload-config` instead. ([#77946](https://github.com/kubernetes/kubernetes/pull/77946), [@Klaven](https://github.com/Klaven)) - -- The following features are now GA, and the associated feature gates are deprecated and will be removed in v1.17: - - `GCERegionalPersistentDisk` - -## Metrics Changes - -### Added metrics - -- The metric `kube_proxy_sync_proxy_rules_last_timestamp_seconds` is now available, indicating the last time that kube-proxy successfully applied proxying rules. ([#74027](https://github.com/kubernetes/kubernetes/pull/74027), [@squeed](https://github.com/squeed)) -- `process_start_time_seconds` has been added to kubelet’s '/metrics/probes' endpoint ([#77975](https://github.com/kubernetes/kubernetes/pull/77975), [@logicalhan](https://github.com/logicalhan)) -- Scheduler: added metrics to record the number of pending pods in different queues ([#75501](https://github.com/kubernetes/kubernetes/pull/75501), [@Huang-Wei](https://github.com/Huang-Wei)) -- Exposed CSI volume stats via kubelet volume metrics ([#76188](https://github.com/kubernetes/kubernetes/pull/76188), [@humblec](https://github.com/humblec)) -- Added a new `storage_operation_status_count` metric for kube-controller-manager and kubelet to count success and error statues. ([#75750](https://github.com/kubernetes/kubernetes/pull/75750), [@msau42](https://github.com/msau42)) - -### Deprecated/changed metrics - -- kubelet probe metrics are now of the counter type rather than the gauge type, and the `prober_probe_result` has been replaced by `prober_probe_total`. ([#76074](https://github.com/kubernetes/kubernetes/pull/76074), [@danielqsj](https://github.com/danielqsj)) -- The `transformer_failures_total` metric is deprecated in favor of `transformation_operation_total`. The old metric will continue to be populated but will be removed in a future release. ([#70715](https://github.com/kubernetes/kubernetes/pull/70715), [@immutableT](https://github.com/immutableT)) -- Introducing new semantic for metric `volume_operation_total_seconds` to be the end to end latency of volume provisioning/deletion. Existing metric "storage_operation_duration_seconds" will remain untouched, however it is exposed to the following potential issues: - 1. For volumes provisioned/deleted via external provisioner/deleter, `storage_operation_duration_seconds` will NOT wait for the external operation to be done before reporting latency metric (effectively close to 0). This will be fixed by using `volume_operation_total_seconds` instead - 2. if there's a transient error happened during "provisioning/deletion", i.e., a volume is still in-use while a deleteVolume has been called, original `storage_operation_duration_seconds` will NOT wait until a volume has been finally deleted before reporting an inaccurate latency metric. The newly implemented metric `volume_operation_total_seconds`, however, waits until a provisioning/deletion operation has been fully executed. - - Potential impacts: - If an SLO/alert has been defined based on `volume_operation_total_seconds`, it might get violated because of the more accurate metric might be significantly larger than previously reported. The metric is defined to be a histogram and the new semantic could change the distribution. ([#78061](https://github.com/kubernetes/kubernetes/pull/78061), [@yuxiangqian](https://github.com/yuxiangqian)) - -- Implement the scheduling framework with `Reserve`, `Prebind`, `Permit`, `Post-bind`, `Queue sort` and `Unreserve` extension points. -([#77567](https://github.com/kubernetes/kubernetes/pull/77567), [@wgliang](https://github.com/wgliang)) -([#77559](https://github.com/kubernetes/kubernetes/pull/77559), [@ahg-g](https://github.com/ahg-g)) -([#77529](https://github.com/kubernetes/kubernetes/pull/77529), [@draveness](https://github.com/draveness)) -([#77598](https://github.com/kubernetes/kubernetes/pull/77598), [@danielqsj](https://github.com/danielqsj)) -([#77501](https://github.com/kubernetes/kubernetes/pull/77501), [@JieJhih](https://github.com/JieJhih)) -([#77457](https://github.com/kubernetes/kubernetes/pull/77457), [@danielqsj](https://github.com/danielqsj)) -- Replaced *_admission_latencies_milliseconds_summary and *_admission_latencies_milliseconds metrics because they were reporting seconds rather than milliseconds. They were also subject to multiple naming guideline violations (units should be in base units and "duration" is the best practice labelling to measure the time a request takes). Please convert to use *_admission_duration_seconds and *_admission_duration_seconds_summary, as these now report the unit as described, and follow the instrumentation best practices. ([#75279](https://github.com/kubernetes/kubernetes/pull/75279), [@danielqsj](https://github.com/danielqsj)) -- Fixed admission metrics histogram bucket sizes to cover 25ms to ~2.5 seconds. ([#78608](https://github.com/kubernetes/kubernetes/pull/78608), [@jpbetz](https://github.com/jpbetz)) -- Fixed incorrect prometheus azure metrics. ([#77722](https://github.com/kubernetes/kubernetes/pull/77722), [@andyzhangx](https://github.com/andyzhangx)) -- `kubectl scale job`, deprecated since 1.10, has been removed. ([#78445](https://github.com/kubernetes/kubernetes/pull/78445), [@soltysh](https://github.com/soltysh)) - - - -## Notable Features - -### Stable - -- You can now create a non-preempting Pod priority. If set on a class, the pod will continue to be prioritized above queued pods of a lesser class, but will not preempt running pods. ([#74614](https://github.com/kubernetes/kubernetes/pull/74614), [@denkensk](https://github.com/denkensk)) - -- Third party device monitoring is now enabled by default (KubeletPodResources). ([#77274](https://github.com/kubernetes/kubernetes/pull/77274), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) -- The kube-apiserver’s `watch` can now be enabled for events using the `--watch-cache-sizes` flag. ([#74321](https://github.com/kubernetes/kubernetes/pull/74321), [@yastij](https://github.com/yastij)) - -### Beta - -- Admission webhooks can now register for a single version of a resource (for example, `apps/v1 deployments`) and be called when any other version of that resource is modified (for example `extensions/v1beta1 deployments`). This allows new versions of a resource to be handled by admission webhooks without needing to update every webhook to understand the new version. See the API documentation for the `matchPolicy: Equivalent` option in MutatingWebhookConfiguration and ValidatingWebhookConfiguration types. ([#78135](https://github.com/kubernetes/kubernetes/pull/78135), [@liggitt](https://github.com/liggitt)) -- The CustomResourcePublishOpenAPI feature is now beta and enabled by default. CustomResourceDefinitions with [structural schemas](https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190425-structural-openapi.md) now publish schemas in the OpenAPI document served at `/openapi/v2`. CustomResourceDefinitions with non-structural schemas have a `NonStructuralSchema` condition added with details about what needs to be corrected in the validation schema. ([#77825](https://github.com/kubernetes/kubernetes/pull/77825), [@roycaihw](https://github.com/roycaihw)) -- Online volume expansion (ExpandInUsePersistentVolumes) is now a beta feature. As such, it is enabled by default. ([#77755](https://github.com/kubernetes/kubernetes/pull/77755), [@gnufied](https://github.com/gnufied)) -- The `SupportNodePidsLimit` feature is now beta, and enabled by default. It is no longer necessary to set the feature gate `SupportNodePidsLimit=true`. ([#76221](https://github.com/kubernetes/kubernetes/pull/76221), [@RobertKrawitz](https://github.com/RobertKrawitz)) -- kubeadm now includes the ability to specify certificate encryption and decryption keys for the upload and download certificate phases as part of the new v1beta2 kubeadm config format. ([#77012](https://github.com/kubernetes/kubernetes/pull/77012), [@rosti](https://github.com/rosti)) -- You can now use kubeadm's `InitConfiguration` and `JoinConfiguration` to define which preflight errors will be ignored. ([#75499](https://github.com/kubernetes/kubernetes/pull/75499), [@marccarre](https://github.com/marccarre)) -- CustomResourcesDefinition conversion via Web Hooks is promoted to beta. Note that you must set `spec.preserveUnknownFields` to `false`. ([#78426](https://github.com/kubernetes/kubernetes/pull/78426), [@sttts](https://github.com/sttts)) -- Group Managed Service Account support has moved to a new API for beta. Special annotations for Windows GMSA support have been deprecated. -([#75459](https://github.com/kubernetes/kubernetes/pull/75459), [@wk8](https://github.com/wk8)) -- The `storageVersionHash` feature is now beta. `StorageVersionHash` is a field in the discovery document of each resource. It enables clients to detect whether the storage version of that resource has changed. Its value must be treated as opaque by clients. Only equality comparison on the value is valid. ([#78325](https://github.com/kubernetes/kubernetes/pull/78325), [@caesarxuchao](https://github.com/caesarxuchao)) -- Ingress objects are now persisted in etcd using the `networking.k8s.io/v1beta1` version ([#77139](https://github.com/kubernetes/kubernetes/pull/77139), [@cmluciano](https://github.com/cmluciano)) -- NodeLocal DNSCache graduating to beta. ([#77887](https://github.com/kubernetes/kubernetes/pull/77887), [@prameshj](https://github.com/prameshj)) - -### Alpha - -- kubelet now allows the use of XFS quotas (on XFS and suitably configured ext4fs filesystems) to monitor storage consumption for ephemeral storage. This method of monitoring consumption, which is currently available only for `emptyDir` volumes, is faster and more accurate than the old method of walking the filesystem tree. Note that it does not enforce limits, it only monitors consumption. To utilize this functionality, set the feature gate `LocalStorageCapacityIsolationFSQuotaMonitoring=true`. For ext4fs filesystems, create the filesystem with `mkfs.ext4 -O project <block_device>` and run `tune2fs -Q prjquota `block device`; XFS filesystems need no additional preparation. The filesystem must be mounted with option `project` in `/etc/fstab`. If the primary partition is the root filesystem, add `rootflags=pquota` to the GRUB config file. ([#66928](https://github.com/kubernetes/kubernetes/pull/66928), [@RobertKrawitz](https://github.com/RobertKrawitz)) -- Finalizer Protection for Service LoadBalancers (ServiceLoadBalancerFinalizer) has been added as an Alpha feature, which is disabled by default. This feature ensures the Service resource is not fully deleted until the correlating load balancer resources are deleted. ([#78262](https://github.com/kubernetes/kubernetes/pull/78262), [@MrHohn](https://github.com/MrHohn)) -- Inline CSI ephemeral volumes can now be controlled with PodSecurityPolicy when the CSIInlineVolume alpha feature is enabled. ([#76915](https://github.com/kubernetes/kubernetes/pull/76915), [@vladimirvivien](https://github.com/vladimirvivien)) -- Kubernetes now includes an alpha field, `AllowWatchBookmarks`, in ListOptions for requesting the watching of bookmarks from apiserver. The implementation in apiserver is hidden behind the feature gate `WatchBookmark`. ([#74074](https://github.com/kubernetes/kubernetes/pull/74074), [@wojtek-t](https://github.com/wojtek-t)) - -### Staging Repositories - -- The CRI API is now available in the `k8s.io/cri-api` staging repository. ([#75531](https://github.com/kubernetes/kubernetes/pull/75531), [@dims](https://github.com/dims)) -- Support for the Azure File plugin has been added to `csi-translation-lib` (CSIMigrationAzureFile). ([#78356](https://github.com/kubernetes/kubernetes/pull/78356), [@andyzhangx](https://github.com/andyzhangx)) -- Added support for Azure Disk plugin to csi-translation-lib (CSIMigrationAzureDisk) ([#78330](https://github.com/kubernetes/kubernetes/pull/78330), [@andyzhangx](https://github.com/andyzhangx)) - -### CLI Improvements - -- Added `kubeadm upgrade node`. This command can be used to upgrade both secondary control-plane nodes and worker nodes. The `kubeadm upgrade node config` and `kubeadm upgrade node experimental-control-plane` commands are now deprecated. ([#78408](https://github.com/kubernetes/kubernetes/pull/78408), [@fabriziopandini](https://github.com/fabriziopandini)) -- The `kubectl top` command now includes a `--sort-by` option to sort by `memory` or `cpu`. ([#75920](https://github.com/kubernetes/kubernetes/pull/75920), [@artmello](https://github.com/artmello)) -- `kubectl rollout restart` now works for DaemonSets and StatefulSets. ([#77423](https://github.com/kubernetes/kubernetes/pull/77423), [@apelisse](https://github.com/apelisse)) -- `kubectl get --watch=true` now prints custom resource definitions with custom print columns. ([#76161](https://github.com/kubernetes/kubernetes/pull/76161), [@liggitt](https://github.com/liggitt)) -- Added `kubeadm alpha certs certificate-key` command to generate secure random key to use on `kubeadm init --experimental-upload-certs` ([#77848](https://github.com/kubernetes/kubernetes/pull/77848), [@yagonobre](https://github.com/yagonobre)) -- Kubernetes now supports printing the `volumeMode` using `kubectl get pv/pvc -o wide` ([#76646](https://github.com/kubernetes/kubernetes/pull/76646), [@cwdsuzhou](https://github.com/cwdsuzhou)) -- Created a new `kubectl rollout restart` command that does a rolling restart of a deployment. ([#76062](https://github.com/kubernetes/kubernetes/pull/76062), [@apelisse](https://github.com/apelisse)) -- `kubectl exec` now allows using the resource name to select a matching pod and `--pod-running-timeout` flag to wait till at least one pod is running. ([#73664](https://github.com/kubernetes/kubernetes/pull/73664), [@prksu](https://github.com/prksu)) -- `kubeadm alpha certs renew` and `kubeadm upgrade` now supports renewal of certificates embedded in KubeConfig files managed by kubeadm; this does not apply to certificates signed by external CAs. ([#77180](https://github.com/kubernetes/kubernetes/pull/77180), [@fabriziopandini](https://github.com/fabriziopandini)) -- Kubeadm: a new command `kubeadm alpha certs check-expiration` was created in order to help users in managing expiration for local PKI certificates ([#77863](https://github.com/kubernetes/kubernetes/pull/77863), [@fabriziopandini](https://github.com/fabriziopandini)) - -### Misc - -- Service account controller clients to now use the TokenRequest API, and tokens are periodically rotated. ([#72179](https://github.com/kubernetes/kubernetes/pull/72179), [@WanLinghao](https://github.com/WanLinghao)) -- Added `ListPager.EachListItem` utility function to client-go to enable incremental processing of chunked list responses ([#75849](https://github.com/kubernetes/kubernetes/pull/75849), [@jpbetz](https://github.com/jpbetz)) -- Object count quota is now supported for namespaced custom resources using the `count/<resource>.<group>` syntax. ([#72384](https://github.com/kubernetes/kubernetes/pull/72384), [@zhouhaibing089](https://github.com/zhouhaibing089)) -- Added completed job status in Cron Job event. ([#75712](https://github.com/kubernetes/kubernetes/pull/75712), [@danielqsj](https://github.com/danielqsj)) -- Pod disruption budgets can now be updated and patched. ([#69867](https://github.com/kubernetes/kubernetes/pull/69867), [@davidmccormick](https://github.com/davidmccormick)) -- Add CRD spec.preserveUnknownFields boolean, defaulting to true in v1beta1 and to false in v1 CRDs. If false, fields not specified in the validation schema will be removed when sent to the API server or when read from etcd. ([#77333](https://github.com/kubernetes/kubernetes/pull/77333), [@sttts](https://github.com/sttts)) -- Added RuntimeClass restrictions and defaulting to PodSecurityPolicy. ([#73795](https://github.com/kubernetes/kubernetes/pull/73795), [@tallclair](https://github.com/tallclair)) -- Kubelet plugin registration now has retry and exponential backoff logic for when registration of plugins (such as CSI or device plugin) fail. ([#73891](https://github.com/kubernetes/kubernetes/pull/73891), [@taragu](https://github.com/taragu)) -- proxy/transport now supports Content-Encoding: deflate ([#76551](https://github.com/kubernetes/kubernetes/pull/76551), [@JieJhih](https://github.com/JieJhih)) -- Admission webhooks are now properly called for `scale` and `deployments/rollback` subresources. ([#76849](https://github.com/kubernetes/kubernetes/pull/76849), [@liggitt](https://github.com/liggitt)) - -## API Changes - -- CRDs get support for x-kubernetes-int-or-string to allow faithful representation of IntOrString types in CustomResources.([#78815](https://github.com/kubernetes/kubernetes/pull/78815), [@sttts](https://github.com/sttts)) -- Introduced the [`v1beta2`](https://docs.google.com/document/d/1XnP67oO1i9VcDIpw42IzptnJsc5OQM-HTf8cVcjCR2w/edit) config format to kubeadm. ([#76710](https://github.com/kubernetes/kubernetes/pull/76710), [@rosti](https://github.com/rosti)) -- Resource list requests for `PartialObjectMetadata` now correctly return list metadata like the resourceVersion and the continue token. ([#75971](https://github.com/kubernetes/kubernetes/pull/75971), [@smarterclayton](https://github.com/smarterclayton)) -- Added a condition `NonStructuralSchema` to `CustomResourceDefinition` listing Structural Schema violations as defined in the [KEP](https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190425-structural-openapi.md). CRD authors should update their validation schemas to be structural in order to participate in future CRD features. ([#77207](https://github.com/kubernetes/kubernetes/pull/77207), [@sttts](https://github.com/sttts)) -- Promoted meta.k8s.io/v1beta1 Table and PartialObjectMetadata to v1. ([#77136](https://github.com/kubernetes/kubernetes/pull/77136), [@smarterclayton](https://github.com/smarterclayton)) -- Introduced the flag `--ipvs-strict-arp` to configure stricter ARP sysctls, defaulting to false to preserve existing behaviors. This was enabled by default in 1.13.0, which impacted a few CNI plugins. ([#75295](https://github.com/kubernetes/kubernetes/pull/75295), [@lbernail](https://github.com/lbernail)) -- CRD validation schemas should not specify `metadata` fields other than `name` and `generateName`. A schema will not be considered structural (and therefore ready for future features) if `metadata` is specified in any other way. ([#77653](https://github.com/kubernetes/kubernetes/pull/77653), [@sttts](https://github.com/sttts)) - -## Other notable changes - -### API Machinery - -- Added port configuration to Admission webhook configuration service reference. -- Added port configuration to AuditSink webhook configuration service reference. -- Added port configuration to CRD Conversion webhook configuration service reference. -- Added port configuration to kube-aggregator service reference. ([#74855](https://github.com/kubernetes/kubernetes/pull/74855), [@mbohlool](https://github.com/mbohlool)) -- Implemented deduplication logic for v1beta1.Event API ([#65782](https://github.com/kubernetes/kubernetes/pull/65782), [@yastij](https://github.com/yastij)) -- Added `objectSelector` to admission webhook configurations. `objectSelector` is evaluated the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. ([#78505](https://github.com/kubernetes/kubernetes/pull/78505), [@caesarxuchao](https://github.com/caesarxuchao)) -- Watch will now support converting response objects into Table or PartialObjectMetadata forms. ([#71548](https://github.com/kubernetes/kubernetes/pull/71548), [@smarterclayton](https://github.com/smarterclayton)) -- In CRD webhook conversion, Kubernetes will now ignore changes to metadata other than for labels and annotations. ([#77743](https://github.com/kubernetes/kubernetes/pull/77743), [@sttts](https://github.com/sttts)) -- Added ListMeta.RemainingItemCount. When responding to a LIST request, if the server has more data available, and if the request does not contain label selectors or field selectors, the server sets the ListOptions.RemainingItemCount to the number of remaining objects. ([#75993](https://github.com/kubernetes/kubernetes/pull/75993), [@caesarxuchao](https://github.com/caesarxuchao)) -- Clients may now request that API objects are converted to the `v1.Table` and `v1.PartialObjectMetadata` forms for generic access to objects. ([#77448](https://github.com/kubernetes/kubernetes/pull/77448), [@smarterclayton](https://github.com/smarterclayton)) - -- Fixed a spurious error where update requests to the status subresource of multi-version custom resources would complain about an incorrect API version. ([#78713](https://github.com/kubernetes/kubernetes/pull/78713), [@liggitt](https://github.com/liggitt)) -- Fixed a bug in apiserver storage that could cause just-added finalizers to be ignored immediately following a delete request, leading to premature deletion. ([#77619](https://github.com/kubernetes/kubernetes/pull/77619), [@caesarxuchao](https://github.com/caesarxuchao)) -- API requests rejected by admission webhooks which specify an http status code < 400 are now assigned a 400 status code. ([#77022](https://github.com/kubernetes/kubernetes/pull/77022), [@liggitt](https://github.com/liggitt)) -- Fixed a transient error API requests for custom resources could encounter while changes to the CustomResourceDefinition were being applied. ([#77816](https://github.com/kubernetes/kubernetes/pull/77816), [@liggitt](https://github.com/liggitt)) -[@smarterclayton](https://github.com/smarterclayton)) -- Added name validation for dynamic client methods in client-go ([#75072](https://github.com/kubernetes/kubernetes/pull/75072), [@lblackstone](https://github.com/lblackstone)) -- CustomResourceDefinition with invalid regular expression in the pattern field of OpenAPI v3 validation schemas are no longer considered structural. ([#78453](https://github.com/kubernetes/kubernetes/pull/78453), [@sttts](https://github.com/sttts)) -- API paging is now enabled by default in k8s.io/apiserver recommended options, and in k8s.io/sample-apiserver ([#77278](https://github.com/kubernetes/kubernetes/pull/77278), [@liggitt](https://github.com/liggitt)) - -- Increased verbose level for local openapi aggregation logs to avoid flooding the log during normal operation ([#75781](https://github.com/kubernetes/kubernetes/pull/75781), [@roycaihw](https://github.com/roycaihw)) -- k8s.io/client-go/dynamic/dynamicinformer.NewFilteredDynamicSharedInformerFactory now honours the `namespace` argument. ([#77945](https://github.com/kubernetes/kubernetes/pull/77945), [@michaelfig](https://github.com/michaelfig)) -- client-go and kubectl no longer write cached discovery files with world-accessible file permissions. ([#77874](https://github.com/kubernetes/kubernetes/pull/77874), [@yuchengwu](https://github.com/yuchengwu)) -- Fixed an error with stuck informers when an etcd watch receives update or delete events with missing data. ([#76675](https://github.com/kubernetes/kubernetes/pull/76675), [@ryanmcnamara](https://github.com/ryanmcnamara)) -- `DelayingQueue.ShutDown()` can now be invoked multiple times without causing a closed channel panic. ([#77170](https://github.com/kubernetes/kubernetes/pull/77170), [@smarterclayton](https://github.com/smarterclayton)) -- When specifying an invalid value for a label, it was not always clear which label the value was specified for. Starting with this release, the label's key is included in such error messages, which makes debugging easier. ([#77144](https://github.com/kubernetes/kubernetes/pull/77144), [@kenegozi](https://github.com/kenegozi)) -- Fixed a regression error when proxying responses from aggregated API servers, which could cause watch requests to hang until the first event was received. ([#75887](https://github.com/kubernetes/kubernetes/pull/75887), [@liggitt](https://github.com/liggitt)) -- Fixed a bug where dry-run is not honored for pod/eviction sub-resource. ([#76969](https://github.com/kubernetes/kubernetes/pull/76969), [@apelisse](https://github.com/apelisse)) - -- DeleteOptions parameters for deletecollection endpoints are now published in the OpenAPI spec. ([#77843](https://github.com/kubernetes/kubernetes/pull/77843), [@roycaihw](https://github.com/roycaihw)) -- Active watches of custom resources now terminate properly if the CRD is modified. ([#78029](https://github.com/kubernetes/kubernetes/pull/78029), [@liggitt](https://github.com/liggitt)) -- Fixed a potential deadlock in the resource quota controller. Enabled recording partial usage info for quota objects specifying multiple resources, when only some of the resources' usage can be determined. ([#74747](https://github.com/kubernetes/kubernetes/pull/74747), [@liggitt](https://github.com/liggitt)) -- Updates that remove remaining `metadata.finalizers` from an object that is pending deletion (non-nil metadata.deletionTimestamp) and has no graceful deletion pending (nil or 0 metadata.deletionGracePeriodSeconds) now results in immediate deletion of the object. ([#77952](https://github.com/kubernetes/kubernetes/pull/77952), [@liggitt](https://github.com/liggitt)) -- client-go: The `rest.AnonymousClientConfig(*rest.Config) *rest.Config` helper method no longer copies custom `Transport` and `WrapTransport` fields, because those can be used to inject user credentials. ([#75771](https://github.com/kubernetes/kubernetes/pull/75771), [@liggitt](https://github.com/liggitt)) -- Validating admission webhooks are now properly called for CREATE operations on the following resources: pods/binding, pods/eviction, bindings ([#76910](https://github.com/kubernetes/kubernetes/pull/76910), [@liggitt](https://github.com/liggitt)) -- Removed the function Parallelize, please convert to use the function ParallelizeUntil. ([#76595](https://github.com/kubernetes/kubernetes/pull/76595), [@danielqsj](https://github.com/danielqsj)) - -### Apps - -- Users can now specify a DataSource/Kind of type `PersistentVolumeClaim` in their PVC spec. This can then be detected by the external csi-provisioner and plugins if capable. ([#76913](https://github.com/kubernetes/kubernetes/pull/76913), [@j-griffith](https://github.com/j-griffith)) -- Fixed bug in DaemonSetController causing it to stop processing some DaemonSets for 5 minutes after node removal. ([#76060](https://github.com/kubernetes/kubernetes/pull/76060), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) -- StatefulSet controllers no longer force a resync every 30 seconds when nothing has changed. ([#75622](https://github.com/kubernetes/kubernetes/pull/75622), [@jonsabo](https://github.com/jonsabo)) -- Enhanced the daemonset sync logic to avoid a problem where pods are thought to be unavailable when the controller's clock is slower than the node's clock. ([#77208](https://github.com/kubernetes/kubernetes/pull/77208), [@DaiHao](https://github.com/DaiHao)) -- Fixed a bug that caused a DaemonSet rolling update to hang when its pod gets stuck at terminating. ([#77773](https://github.com/kubernetes/kubernetes/pull/77773), [@DaiHao](https://github.com/DaiHao)) -- Route controller now respects rate limiting to the cloud provider on deletion; previously it was only for create. ([#78581](https://github.com/kubernetes/kubernetes/pull/78581), [@andrewsykim](https://github.com/andrewsykim)) -- Removed extra pod creation expectations when daemonset fails to create pods in batches. ([#74856](https://github.com/kubernetes/kubernetes/pull/74856), [@draveness](https://github.com/draveness)) -- Resolved spurious rollouts of workload controllers when upgrading the API server, due to incorrect defaulting of an alpha procMount field in pods. ([#78885](https://github.com/kubernetes/kubernetes/pull/78885), [@liggitt](https://github.com/liggitt)) - -### Auth - -- Fixed OpenID Connect (OIDC) token refresh when the client secret contains a special character. ([#76914](https://github.com/kubernetes/kubernetes/pull/76914), [@tsuna](https://github.com/tsuna)) -- Improved `kubectl auth can-i` command by warning users when they try to access a resource out of scope. ([#76014](https://github.com/kubernetes/kubernetes/pull/76014), [@WanLinghao](https://github.com/WanLinghao)) -- Validating admission webhooks are now properly called for CREATE operations on the following resources: tokenreviews, subjectaccessreviews, localsubjectaccessreviews, selfsubjectaccessreviews, selfsubjectrulesreviews ([#76959](https://github.com/kubernetes/kubernetes/pull/76959), [@sbezverk](https://github.com/sbezverk)) - -### Autoscaling - -- Horizontal Pod Autoscaling can now scale targets up even when one or more metrics are invalid/unavailable, as long as one metric indicates a scale up should occur. ([#78503](https://github.com/kubernetes/kubernetes/pull/78503), [@gjtempleton](https://github.com/gjtempleton)) - - -### AWS - -- Kubernetes will now use the zone from the node for topology aware aws-ebs volume creation to reduce unnecessary cloud provider calls. ([#78276](https://github.com/kubernetes/kubernetes/pull/78276), [@zhan849](https://github.com/zhan849)) -- Kubernetes now supports configure accessLogs for AWS NLB. ([#78497](https://github.com/kubernetes/kubernetes/pull/78497), [@M00nF1sh](https://github.com/M00nF1sh)) -- Kubernetes now supports update LoadBalancerSourceRanges for AWS NLB([#74692](https://github.com/kubernetes/kubernetes/pull/74692), [@M00nF1sh](https://github.com/M00nF1sh)) -- Kubernetes now supports configure TLS termination for AWS NLB([#74910](https://github.com/kubernetes/kubernetes/pull/74910), [@M00nF1sh](https://github.com/M00nF1sh)) -- Kubernetes will now consume the AWS region list from the AWS SDK instead of a hard-coded list in the cloud provider. ([#75990](https://github.com/kubernetes/kubernetes/pull/75990), [@mcrute](https://github.com/mcrute)) -- Limit use of tags when calling EC2 API to prevent API throttling for very large clusters. ([#76749](https://github.com/kubernetes/kubernetes/pull/76749), [@mcrute](https://github.com/mcrute)) -- The AWS credential provider can now obtain ECR credentials even without the AWS cloud provider or being on an EC2 instance. Additionally, AWS credential provider caching has been improved to honor the ECR credential timeout. ([#75587](https://github.com/kubernetes/kubernetes/pull/75587), [@tiffanyfay](https://github.com/tiffanyfay)) - - -### Azure - -- Kubernetes now supports specifying the Resource Group of the Route Table when updating the Pod network route on Azure. ([#75580](https://github.com/kubernetes/kubernetes/pull/75580), [@suker200](https://github.com/suker200)) -- Kubernetes now uses instance-level update APIs for Azure VMSS loadbalancer operations. ([#76656](https://github.com/kubernetes/kubernetes/pull/76656), [@feiskyer](https://github.com/feiskyer)) -- Users can now specify azure file share name in the azure file plugin, making it possible to use existing shares or specify a new share name. ([#76988](https://github.com/kubernetes/kubernetes/pull/76988), [@andyzhangx](https://github.com/andyzhangx)) -- You can now run kubelet with no Azure identity. A sample cloud provider configuration is: `{"vmType": "vmss", "useInstanceMetadata": true, "subscriptionId": "<subscriptionId>"}` ([#77906](https://github.com/kubernetes/kubernetes/pull/77906), [@feiskyer](https://github.com/feiskyer)) -- Fixed some service tags not supported issues for Azure LoadBalancer service. ([#77719](https://github.com/kubernetes/kubernetes/pull/77719), [@feiskyer](https://github.com/feiskyer)) -- Fixed an issue where `pull image` fails from a cross-subscription Azure Container Registry when using MSI to authenticate. ([#77245](https://github.com/kubernetes/kubernetes/pull/77245), [@norshtein](https://github.com/norshtein)) -- Azure cloud provider can now be configured by Kubernetes secrets and a new option `cloudConfigType` has been introduced. Candidate values are `file`, `secret` or `merge` (default is `merge`). Note that the secret is a serialized version of `azure.json` file with key cloud-config. And the secret name is azure-cloud-provider in kube-system namespace. ([#78242](https://github.com/kubernetes/kubernetes/pull/78242), [@feiskyer](https://github.com/feiskyer)) - -### CLI - -- Fixed `kubectl exec` usage string to correctly reflect flag placement. ([#77589](https://github.com/kubernetes/kubernetes/pull/77589), [@soltysh](https://github.com/soltysh)) -- Fixed `kubectl describe cronjobs` error of `Successful Job History Limit`. ([#77347](https://github.com/kubernetes/kubernetes/pull/77347), [@danielqsj](https://github.com/danielqsj)) -- In the `kubectl describe` output, the fields with names containing special characters are now displayed as-is without any pretty formatting, avoiding awkward outputs. ([#75483](https://github.com/kubernetes/kubernetes/pull/75483), [@gsadhani](https://github.com/gsadhani)) -- Fixed incorrect handling by kubectl of custom resources whose Kind is "Status". ([#77368](https://github.com/kubernetes/kubernetes/pull/77368), [@liggitt](https://github.com/liggitt)) -- Report cp errors consistently, providing full message whether copying to or from a pod. ([#77010](https://github.com/kubernetes/kubernetes/pull/77010), [@soltysh](https://github.com/soltysh)) -- Preserved existing namespace information in manifests when running ` -set ... --local` commands. ([#77267](https://github.com/kubernetes/kubernetes/pull/77267), [@liggitt](https://github.com/liggitt)) -- Support for parsing more v1.Taint forms has been added. For example, `key:effect`, `key=:effect-` are now accepted. ([#74159](https://github.com/kubernetes/kubernetes/pull/74159), [@dlipovetsky](https://github.com/dlipovetsky)) - -### Cloud Provider - -- The GCE-only flag `cloud-provider-gce-lb-src-cidrs` is now optional for external cloud providers. ([#76627](https://github.com/kubernetes/kubernetes/pull/76627), [@timoreimann](https://github.com/timoreimann)) -- Fixed a bug where cloud-controller-manager initializes nodes multiple times. ([#75405](https://github.com/kubernetes/kubernetes/pull/75405), [@tghartland](https://github.com/tghartland)) - -### Cluster Lifecycle - -- `kubeadm upgrade` now renews all the certificates used by a component before upgrading the component itself, with the exception of certificates signed by external CAs. User can eventually opt-out of certificate renewal during upgrades by setting the new flag `--certificate-renewal` to false. ([#76862](https://github.com/kubernetes/kubernetes/pull/76862), [@fabriziopandini](https://github.com/fabriziopandini)) -- kubeadm still generates RSA keys when deploying a node, but also accepts ECDSA -keys if they already exist in the directory specified in the `--cert-dir` option. ([#76390](https://github.com/kubernetes/kubernetes/pull/76390), [@rojkov](https://github.com/rojkov)) -- kubeadm now implements CRI detection for Windows worker nodes ([#78053](https://github.com/kubernetes/kubernetes/pull/78053), [@ksubrmnn](https://github.com/ksubrmnn)) -- Added `--image-repository` flag to `kubeadm config images`. ([#75866](https://github.com/kubernetes/kubernetes/pull/75866), [@jmkeyes](https://github.com/jmkeyes)) - -- kubeadm: The kubeadm reset command has now been exposed as phases. ([#77847](https://github.com/kubernetes/kubernetes/pull/77847), [@yagonobre](https://github.com/yagonobre)) -- kubeadm: Improved resiliency when it comes to updating the `kubeadm-config` configmap upon new control plane joins or resets. This allows for safe multiple control plane joins and/or resets. ([#76821](https://github.com/kubernetes/kubernetes/pull/76821), [@ereslibre](https://github.com/ereslibre)) -- kubeadm: Bumped the minimum supported Docker version to 1.13.1 ([#77051](https://github.com/kubernetes/kubernetes/pull/77051), [@chenzhiwei](https://github.com/chenzhiwei)) -- Reverted the CoreDNS version to 1.3.1 for kubeadm ([#78545](https://github.com/kubernetes/kubernetes/pull/78545), [@neolit123](https://github.com/neolit123)) -- kubeadm: Fixed the machine readability of `kubeadm token create --print-join-command` ([#75487](https://github.com/kubernetes/kubernetes/pull/75487), [@displague](https://github.com/displague)) -- `kubeadm alpha certs renew --csr-only` now reads the current certificates as the authoritative source for certificates attributes (same as kubeadm alpha certs renew). ([#77780](https://github.com/kubernetes/kubernetes/pull/77780), [@fabriziopandini](https://github.com/fabriziopandini)) -- kubeadm: You can now delete multiple bootstrap tokens at once. ([#75646](https://github.com/kubernetes/kubernetes/pull/75646), [@bart0sh](https://github.com/bart0sh)) -- util/initsystem: Added support for the OpenRC init system ([#73101](https://github.com/kubernetes/kubernetes/pull/73101), [@oz123](https://github.com/oz123)) -- Default TTL for DNS records in kubernetes zone has been changed from 5s to 30s to keep consistent with old dnsmasq based kube-dns. The TTL can be customized with command `kubectl edit -n kube-system configmap/coredns`. ([#76238](https://github.com/kubernetes/kubernetes/pull/76238), [@Dieken](https://github.com/Dieken)) -- Communication between the etcd server and kube-apiserver on master is now overridden to use HTTPS instead of HTTP when mTLS is enabled in GCE. ([#74690](https://github.com/kubernetes/kubernetes/pull/74690), [@wenjiaswe](https://github.com/wenjiaswe)) - -### GCP - -- [stackdriver addon] Bumped prometheus-to-sd to v0.5.0 to pick up security fixes. -[fluentd-gcp addon] Bumped fluentd-gcp-scaler to v0.5.1 to pick up security fixes. -[fluentd-gcp addon] Bumped event-exporter to v0.2.4 to pick up security fixes. -[fluentd-gcp addon] Bumped prometheus-to-sd to v0.5.0 to pick up security fixes. -[metatada-proxy addon] Bumped prometheus-to-sd v0.5.0 to pick up security fixes. ([#75362](https://github.com/kubernetes/kubernetes/pull/75362), [@serathius](https://github.com/serathius)) -- [fluentd-gcp addon] Bump fluentd-gcp-scaler to v0.5.2 to pick up security fixes. ([#76762](https://github.com/kubernetes/kubernetes/pull/76762), [@serathius](https://github.com/serathius)) -- The GCERegionalPersistentDisk feature gate (GA in 1.13) can no longer be disabled. The feature gate will be removed in v1.17. ([#77412](https://github.com/kubernetes/kubernetes/pull/77412), [@liggitt](https://github.com/liggitt)) -- GCE/Windows: When the service cannot be stopped Stackdriver logging processes are now force killed ([#77378](https://github.com/kubernetes/kubernetes/pull/77378), [@yujuhong](https://github.com/yujuhong)) -- Reduced GCE log rotation check from 1 hour to every 5 minutes. Rotation policy is unchanged (new day starts, log file size > 100MB). ([#76352](https://github.com/kubernetes/kubernetes/pull/76352), [@jpbetz](https://github.com/jpbetz)) -- GCE/Windows: disabled stackdriver logging agent to prevent node startup failures ([#76099](https://github.com/kubernetes/kubernetes/pull/76099), [@yujuhong](https://github.com/yujuhong)) -- API servers using the default Google Compute Engine bootstrapping scripts will have their insecure port (`:8080`) disabled by default. To enable the insecure port, set `ENABLE_APISERVER_INSECURE_PORT=true` in kube-env or as an environment variable. ([#77447](https://github.com/kubernetes/kubernetes/pull/77447), [@dekkagaijin](https://github.com/dekkagaijin)) -- Fixed a NPD bug on GCI, so that it disables glog writing to files for log-counter. ([#76211](https://github.com/kubernetes/kubernetes/pull/76211), [@wangzhen127](https://github.com/wangzhen127)) -- Windows nodes on GCE now have the Windows firewall enabled by default. ([#78507](https://github.com/kubernetes/kubernetes/pull/78507), [@pjh](https://github.com/pjh)) -- Added `CNI_VERSION` and `CNI_SHA1` environment variables in `kube-up.sh` to configure CNI versions on GCE. ([#76353](https://github.com/kubernetes/kubernetes/pull/76353), [@Random-Liu](https://github.com/Random-Liu)) -- GCE clusters will include some IP ranges that are not used on the public Internet in the list of non-masq IPs. Bumped ip-masq-agent version to v2.3.0 with flag `nomasq-all-reserved-ranges` turned on. ([#77458](https://github.com/kubernetes/kubernetes/pull/77458), [@grayluck](https://github.com/grayluck)) -- GCE/Windows: added support for the stackdriver logging agent ([#76850](https://github.com/kubernetes/kubernetes/pull/76850), [@yujuhong](https://github.com/yujuhong)) -- GCE Windows nodes will rely solely on kubernetes and kube-proxy (and not the GCE agent) for network address management. ([#75855](https://github.com/kubernetes/kubernetes/pull/75855), [@pjh](https://github.com/pjh)) -- Ensured that the `node-role.kubernetes.io/master` taint is applied to the master with NoSchedule on GCE. ([#78183](https://github.com/kubernetes/kubernetes/pull/78183), [@cheftako](https://github.com/cheftako)) -- Windows nodes on GCE now use a known-working 1809 image rather than the latest 1809 image. ([#76722](https://github.com/kubernetes/kubernetes/pull/76722), [@pjh](https://github.com/pjh)) -- kube-up.sh scripts now disable the KubeletPodResources feature for Windows nodes, due to issue #[78628](https://github.com/kubernetes/kubernetes/pull/78668). ([#78668](https://github.com/kubernetes/kubernetes/pull/78668), [@mtaufen](https://github.com/mtaufen)) - - -### Instrumentation - -- [metrics-server addon] Restored the ability to connect to nodes via IP addresses. ([#76819](https://github.com/kubernetes/kubernetes/pull/76819), [@serathius](https://github.com/serathius)) -- If a pod has a running instance, the stats of its previously terminated instances will not show up in the kubelet summary stats any more for CRI runtimes such as containerd and cri-o. This keeps the behavior consistent with Docker integration, and fixes an issue that some container Prometheus metrics don't work when there are summary stats for multiple instances of the same pod. ([#77426](https://github.com/kubernetes/kubernetes/pull/77426), [@Random-Liu](https://github.com/Random-Liu)) - - -### Network - -- Ingress objects are now persisted in etcd using the networking.k8s.io/v1beta1 version ([#77139](https://github.com/kubernetes/kubernetes/pull/77139), [@cmluciano](https://github.com/cmluciano)) -- Transparent kube-proxy restarts when using IPVS are now allowed. ([#75283](https://github.com/kubernetes/kubernetes/pull/75283), [@lbernail](https://github.com/lbernail)) -- Packets considered INVALID by conntrack are now dropped. In particular, this fixes -a problem where spurious retransmits in a long-running TCP connection to a service -IP could result in the connection being closed with the error "Connection reset by -peer" ([#74840](https://github.com/kubernetes/kubernetes/pull/74840), [@anfernee](https://github.com/anfernee)) -- kube-proxy no longer automatically cleans up network rules created by running kube-proxy in other modes. If you are switching the kube-proxy mode (EG: iptables to IPVS), you will need to run `kube-proxy --cleanup`, or restart the worker node (recommended) before restarting kube-proxy. If you are not switching kube-proxy between different modes, this change should not require any action. ([#76109](https://github.com/kubernetes/kubernetes/pull/76109), [@vllry](https://github.com/vllry)) -- kube-proxy: HealthzBindAddress and MetricsBindAddress now support ipv6 addresses. ([#76320](https://github.com/kubernetes/kubernetes/pull/76320), [@JieJhih](https://github.com/JieJhih)) -- The userspace proxy now respects the IPTables proxy's minSyncInterval parameter. ([#71735](https://github.com/kubernetes/kubernetes/pull/71735), [@dcbw](https://github.com/dcbw)) - -- iptables proxier: now routes local traffic to LB IPs to service chain ([#77523](https://github.com/kubernetes/kubernetes/pull/77523), [@andrewsykim](https://github.com/andrewsykim)) -- IPVS: Disabled graceful termination for UDP traffic to solve issues with high number of UDP connections (DNS / syslog in particular) ([#77802](https://github.com/kubernetes/kubernetes/pull/77802), [@lbernail](https://github.com/lbernail)) -- Fixed a bug where kube-proxy returns error due to existing ipset rules using a different hash type. ([#77371](https://github.com/kubernetes/kubernetes/pull/77371), [@andrewsykim](https://github.com/andrewsykim)) -- Fixed spurious error messages about failing to clean up iptables rules when using iptables 1.8. ([#77303](https://github.com/kubernetes/kubernetes/pull/77303), [@danwinship](https://github.com/danwinship)) -- Increased log level to 2 for IPVS graceful termination ([#78395](https://github.com/kubernetes/kubernetes/pull/78395), [@andrewsykim](https://github.com/andrewsykim)) -- kube-proxy: os exit when CleanupAndExit is set to true ([#76732](https://github.com/kubernetes/kubernetes/pull/76732), [@JieJhih](https://github.com/JieJhih)) -- Kubernetes will now allow trailing dots in the externalName of Services of type ExternalName. ([#78385](https://github.com/kubernetes/kubernetes/pull/78385), [@thz](https://github.com/thz)) - -### Node - -- The dockershim container runtime now accepts the `docker` runtime handler from a RuntimeClass. ([#78323](https://github.com/kubernetes/kubernetes/pull/78323), [@tallclair](https://github.com/tallclair)) -- The init container can now get its own field value as environment variable values using downwardAPI support. ([#75109](https://github.com/kubernetes/kubernetes/pull/75109), [@yuchengwu](https://github.com/yuchengwu)) -- UpdateContainerResources is no longer recorded as a `container_status` operation. It now uses the label `update_container`. ([#75278](https://github.com/kubernetes/kubernetes/pull/75278), [@Nessex](https://github.com/Nessex)) -- kubelet: fix fail to close kubelet->API connections on heartbeat failure when bootstrapping or client certificate rotation is disabled ([#78016](https://github.com/kubernetes/kubernetes/pull/78016), [@gaorong](https://github.com/gaorong)) -- Set selinux label at plugin socket directory ([#73241](https://github.com/kubernetes/kubernetes/pull/73241), [@vikaschoudhary16](https://github.com/vikaschoudhary16)) -- Fixed detection of non-root image user ID.([#78261](https://github.com/kubernetes/kubernetes/pull/78261), [@tallclair](https://github.com/tallclair)) -- Signal handling is now initialized within hyperkube commands that require it, such as apiserver and kubelet. ([#76659](https://github.com/kubernetes/kubernetes/pull/76659), [@S-Chan](https://github.com/S-Chan)) -- The Kubelet now properly requests protobuf objects where they are supported from the apiserver, reducing load in large clusters. ([#75602](https://github.com/kubernetes/kubernetes/pull/75602), [@smarterclayton](https://github.com/smarterclayton)) - -### OpenStack - -- You can now define a kubeconfig file for the OpenStack cloud provider. ([#77415](https://github.com/kubernetes/kubernetes/pull/77415), [@Fedosin](https://github.com/Fedosin)) -- OpenStack user credentials can now be read from a secret instead of a local config file. ([#75062](https://github.com/kubernetes/kubernetes/pull/75062), [@Fedosin](https://github.com/Fedosin)) - -### Release - -- Removed hyperkube short aliases from source code because hyperkube docker image currently create these aliases. ([#76953](https://github.com/kubernetes/kubernetes/pull/76953), [@Rand01ph](https://github.com/Rand01ph)) - -### Scheduling - -- Tolerations with the same key and effect will be merged into one that has the value of the latest toleration for best effort pods. ([#75985](https://github.com/kubernetes/kubernetes/pull/75985), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- Achieved 2X performance improvement on both required and preferred PodAffinity. ([#76243](https://github.com/kubernetes/kubernetes/pull/76243), [@Huang-Wei](https://github.com/Huang-Wei)) -- Fixed a scheduler racing issue to ensure low priority pods are unschedulable on the node(s) where high priority pods have `NominatedNodeName` set to the node(s). ([#77990](https://github.com/kubernetes/kubernetes/pull/77990), [@Huang-Wei](https://github.com/Huang-Wei)) - -### Storage - -- Fixed issue with kubelet waiting on invalid devicepath on AWS ([#78595](https://github.com/kubernetes/kubernetes/pull/78595), [@gnufied](https://github.com/gnufied)) -- StorageOS volumes now show correct mount information (node and mount time) in the StorageOS administration CLI and UI. ([#78522](https://github.com/kubernetes/kubernetes/pull/78522), [@croomes](https://github.com/croomes)) -- Fixed issue in Portworx volume driver causing controller manager to crash. ([#76341](https://github.com/kubernetes/kubernetes/pull/76341), [@harsh-px](https://github.com/harsh-px)) -- For an empty regular file, `stat --printf %F` will now display `regular empty file` instead of `regular file`. ([#62159](https://github.com/kubernetes/kubernetes/pull/62159), [@dixudx](https://github.com/dixudx)) -- You can now have different operation names for different storage operations. This still prevents two operations on same volume from happening concurrently but if the operation changes, it resets the exponential backoff. -([#75213](https://github.com/kubernetes/kubernetes/pull/75213), [@gnufied](https://github.com/gnufied)) -- Reduced event spam for `AttachVolume` storage operation. ([#75986](https://github.com/kubernetes/kubernetes/pull/75986), [@mucahitkurt](https://github.com/mucahitkurt)) -- Until this release, the iscsi plugin was waiting 10 seconds for a path to appear in the device list. However this timeout is not enough, or is less than the default device discovery timeout in most systems, which prevents certain devices from being discovered. This timeout has been raised to 30 seconds, which should help to avoid mount issues due to device discovery. ([#78475](https://github.com/kubernetes/kubernetes/pull/78475), [@humblec](https://github.com/humblec)) -- Added a field to store CSI volume expansion secrets ([#77516](https://github.com/kubernetes/kubernetes/pull/77516), [@gnufied](https://github.com/gnufied)) -- Fixed a bug in block volume expansion. ([#77317](https://github.com/kubernetes/kubernetes/pull/77317), [@gnufied](https://github.com/gnufied)) -- Count PVCs that are unbound towards attach limit. ([#73863](https://github.com/kubernetes/kubernetes/pull/73863), [@gnufied](https://github.com/gnufied)) - -### VMware - -- SAML token delegation (required for Zones support in vSphere) is now supported ([#78876](https://github.com/kubernetes/kubernetes/pull/78876), [@dougm](https://github.com/dougm)) -- vSphere SAML token auth is now supported when using Zones ([#75515](https://github.com/kubernetes/kubernetes/pull/75515), [@dougm](https://github.com/dougm)) - -### Windows - -- Kubectl port-forward for Windows containers was added in v1.15. To use it, you’ll need to build a new pause image including WinCAT. ([#75479](https://github.com/kubernetes/kubernetes/pull/75479), [@benmoss](https://github.com/benmoss)) -- We’re working to simplify the Windows node join experience with better scripts and kubeadm. Scripts and doc updates are still in the works, but some of the needed improvements are included in 1.15. These include: - - Windows kube-proxy will wait for HNS network creation on start ([#78612](https://github.com/kubernetes/kubernetes/pull/78612), [@ksubrmnn](https://github.com/ksubrmnn)) - - kubeadm: implemented CRI detection for Windows worker nodes ([#78053](https://github.com/kubernetes/kubernetes/pull/78053), [@ksubrmnn](https://github.com/ksubrmnn)) -- Worked toward support for Windows Server version 1903, including adding Windows support for preserving the destination IP as the VIP when loadbalancing with DSR. ([#74825](https://github.com/kubernetes/kubernetes/pull/74825), [@ksubrmnn](https://github.com/ksubrmnn)) -- Bug fix: Windows Kubelet nodes will now correctly search the default location for Docker credentials (`%USERPROFILE%\.docker\config.json`) when pulling images from a private registry. (https://kubernetes.io/docs/concepts/containers/images/#configuring-nodes-to-authenticate-to-a-private-registry) ([#78528](https://github.com/kubernetes/kubernetes/pull/78528), [@bclau](https://github.com/bclau)) - - -## Dependencies - -### Changed - -- The default Go version was updated to 1.12.5. ([#78528](https://github.com/kubernetes/kubernetes/pull/78528)) -- cri-tools has been updated to v1.14.0. ([#75658](https://github.com/kubernetes/kubernetes/pull/75658)) -- Cluster Autoscaler has been updated to v1.15.0. ([#78866](https://github.com/kubernetes/kubernetes/pull/78866)) -- Kibana has been upgraded to v6.6.1. ([#71251](https://github.com/kubernetes/kubernetes/pull/71251)) -- CAdvisor has been updated to v0.33.2. ([#76291](https://github.com/kubernetes/kubernetes/pull/76291)) -- Fluentd-gcp-scaler has been upgraded to v0.5.2. ([#76762](https://github.com/kubernetes/kubernetes/pull/76762)) -- Fluentd in fluentd-elasticsearch has been upgraded to v1.4.2. ([#76854](https://github.com/kubernetes/kubernetes/pull/76854)) -- fluentd-elasticsearch has been updated to v2.5.2. ([#76854](https://github.com/kubernetes/kubernetes/pull/76854)) -- event-exporter has been updated to v0.2.5. ([#77815](https://github.com/kubernetes/kubernetes/pull/77815)) -- es-image has been updated to Elasticsearch 6.7.2. ([#77765](https://github.com/kubernetes/kubernetes/pull/77765)) -- metrics-server has been updated to v0.3.3. ([#77950](https://github.com/kubernetes/kubernetes/pull/77950)) -- ip-masq-agent has been updated to v2.4.1. ([#77844](https://github.com/kubernetes/kubernetes/pull/77844)) -- addon-manager has been updated to v9.0.1 ([#77282](https://github.com/kubernetes/kubernetes/pull/77282)) -- go-autorest has been updated to v11.1.2 ([#77070](https://github.com/kubernetes/kubernetes/pull/77070)) -- klog has been updated to 0.3.0 ([#76474](https://github.com/kubernetes/kubernetes/pull/76474)) -- k8s-dns-node-cache image has been updated to v1.15.1 ([#76640](https://github.com/kubernetes/kubernetes/pull/76640), [@george-angel](https://github.com/george-angel)) - -### Unchanged - -- Default etcd server version remains unchanged at v3.3.10. The etcd client version was updated to v3.3.10. ([#71615](https://github.com/kubernetes/kubernetes/pull/71615), [#70168](https://github.com/kubernetes/kubernetes/pull/70168), [#76917](https://github.com/kubernetes/kubernetes/pull/76917)) -- The list of validated docker versions remains unchanged. - - The current list is 1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09. ([#72823](https://github.com/kubernetes/kubernetes/pull/72823), [#72831](https://github.com/kubernetes/kubernetes/pull/72831)) -- CNI remains unchanged at v0.7.5. ([#75455](https://github.com/kubernetes/kubernetes/pull/75455)) -- CSI remains unchanged at to v1.1.0. ([#75391](https://github.com/kubernetes/kubernetes/pull/75391)) -- The dashboard add-on remains unchanged at v1.10.1. ([#72495](https://github.com/kubernetes/kubernetes/pull/72495)) -- kube-dns is unchanged at v1.14.13 as of Kubernetes 1.12. ([#68900](https://github.com/kubernetes/kubernetes/pull/68900)) -- Influxdb is unchanged at v1.3.3 as of Kubernetes 1.10. ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) -- Grafana is unchanged at v4.4.3 as of Kubernetes 1.10. ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) -- The fluent-plugin-kubernetes_metadata_filter plugin in fluentd-elasticsearch is unchanged at v2.1.6. ([#71180](https://github.com/kubernetes/kubernetes/pull/71180)) -- fluentd-gcp is unchanged at v3.2.0 as of Kubernetes 1.13. ([#70954](https://github.com/kubernetes/kubernetes/pull/70954)) -- OIDC authentication is unchanged at coreos/go-oidc v2 as of Kubernetes 1.10. ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) -- Calico is unchanged at v3.3.1 as of Kubernetes 1.13. ([#70932](https://github.com/kubernetes/kubernetes/pull/70932)) -- crictl on GCE was updated to v1.14.0. ([#75658](https://github.com/kubernetes/kubernetes/pull/75658)) -- CoreDNS is unchanged at v1.3.1 as of Kubernetes 1.14. ([#78691](https://github.com/kubernetes/kubernetes/pull/78691)) -- GLBC remains unchanged at v1.2.3 as of Kubernetes 1.12. ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) -- Ingress-gce remains unchanged at v1.2.3 as of Kubernetes 1.12. ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) +# Kubernetes v1.15 Release Notes + +## 1.15 What’s New + +A complete changelog for the release notes is now hosted in a customizable format at [https://relnotes.k8s.io/](https://relnotes.k8s.io/?releaseVersions=1.15.0). Check it out and please give us your feedback! + +Kubernetes 1.15 consists of **25 enhancements**: 2 moving to stable, 13 in beta, and 10 in alpha. The main themes of this release are: + +#### Continuous Improvement +- Project sustainability is not just about features. Many SIGs have been working on improving test coverage, ensuring the basics stay reliable, and stability of the core feature set and working on maturing existing features and cleaning up the backlog. + +#### Extensibility + +- The community has been asking for continuing support of extensibility, so this cycle features more work around CRDs and API Machinery. Most of the enhancements in this cycle were from SIG API Machinery and related areas. + +### Extensibility around core Kubernetes APIs + +#### CustomResourceDefinitions Pruning +To enforce both data consistency and security, Kubernetes performs pruning, or the automatic removal of unknown fields in objects sent to a Kubernetes API. An "unknown" field is one that is not specified in the OpenAPI validation schema. This behavior is already in place for native resources and ensures only data structures specified by the CRD developer are persisted to etcd. It will be available as a beta feature in Kubernetes 1.15. + +Pruning is activated by setting `spec.preserveUnknownFields: false` in the CustomResourceDefinition. A future apiextensions.k8s.io/v1 variant of CRDs will enforce pruning. + +Pruning requires that CRD developer provides complete, structural validation schemas, either at the top-level or for all versions of the CRD. + +#### CustomResourceDefinition Defaulting + +CustomResourceDefinitions also have new support for defaulting, with defaults specified using the `default` keyword in the OpenAPI validation schema. Defaults are set for unspecified fields in an object sent to the API, and when reading from etcd. + +Defaulting will be available as alpha in Kubernetes 1.15 and requires structural schemas. + +#### CustomResourceDefinition OpenAPI Publishing + +OpenAPI specs for native types have long been served at /openapi/v2, and they are consumed by a number of components, notably kubectl client-side validation, kubectl explain and OpenAPI based client generators. + +With Kubernetes 1.15 as beta, OpenAPI schemas are also published for CRDs, as long as their schemas are structural. + +These changes are reflected in the following Kubernetes enhancements: +([#383](https://github.com/kubernetes/enhancements/issues/383)), ([#575](https://github.com/kubernetes/enhancements/issues/575) ), ([#492](https://github.com/kubernetes/enhancements/issues/492) ), ([#598](https://github.com/kubernetes/enhancements/issues/598) ), ([#692](https://github.com/kubernetes/enhancements/issues/692) ), ([#95](https://github.com/kubernetes/enhancements/issues/95) ), ([#995](https://github.com/kubernetes/enhancements/issues/995) ), ([#956](https://github.com/kubernetes/enhancements/issues/956) ) + +### Cluster Lifecycle Stability and Usability Improvements +Work on making Kubernetes installation, upgrade and configuration even more robust has been a major focus for this cycle for SIG Cluster Lifecycle (see the May 6, 2019 [Community Update](https://docs.google.com/presentation/d/1QUOsQxfEfHlMq4lPjlK2ewQHsr9peEKymDw5_XwZm8Q/edit?usp=sharing)). Bug fixes across bare metal tooling and production-ready user stories, such as the high availability use cases have been given priority for 1.15. + +kubeadm, the cluster lifecycle building block, continues to receive features and stability work required for bootstrapping production clusters efficiently. kubeadm has promoted high availability (HA) capability to beta, allowing users to use the familiar `kubeadm init` and `kubeadm join` commands to [configure and deploy an HA control plane](https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/). An entire new test suite has been created specifically for ensuring these features will stay stable over time. + +Certificate management has become more robust in 1.15, with kubeadm now seamlessly rotating all your certificates (on upgrades) before they expire. Check the [kubeadm documentation](https://github.com/kubernetes/website/blob/dev-1.15/content/en/docs/reference/setup-tools/kubeadm/kubeadm-alpha.md) for information on how to manage your certificates. + +The kubeadm configuration file API is moving from v1beta1 to v1beta2 in 1.15. + +These changes are reflected in the following Kubernetes enhancements: +([#357](https://github.com/kubernetes/enhancements/issues/357) ), ([#970](https://github.com/kubernetes/enhancements/issues/970) ) + +### Continued improvement of CSI +In Kubernetes v1.15, SIG Storage continued work to [enable migration of in-tree volume plugins](https://github.com/kubernetes/enhancements/issues/625) to the Container Storage Interface (CSI). SIG Storage worked on bringing CSI to feature parity with in-tree functionality, including functionality like resizing, inline volumes, and more. SIG Storage introduces new alpha functionality in CSI that doesn't exist in the Kubernetes Storage subsystem yet, like volume cloning. + +Volume cloning enables users to specify another PVC as a "DataSource" when provisioning a new volume. If the underlying storage system supports this functionality and implements the "CLONE_VOLUME" capability in its CSI driver, then the new volume becomes a clone of the source volume. + +These changes are reflected in the following Kubernetes enhancements: +([#625](https://github.com/kubernetes/enhancements/issues/625)) + +#### Additional Notable Feature Updates +- Support for go modules in Kubernetes Core. +- Continued preparation for cloud provider extraction and code organization. The cloud provider code has been moved to kubernetes/legacy-cloud-providers for easier removal later and external consumption. +- Kubectl [get and describe](https://github.com/kubernetes/enhancements/issues/515) now works with extensions +- Nodes now support [third party monitoring plugins](https://github.com/kubernetes/enhancements/issues/606). +- A new [Scheduling Framework](https://github.com/kubernetes/enhancements/issues/624) for schedule plugins is now Alpha. +- ExecutionHook API [designed to trigger hook commands](https://github.com/kubernetes/enhancements/issues/962) in containers is now Alpha. +- Continued deprecation of extensions/v1beta1, apps/v1beta1, and apps/v1beta2 APIs; these extensions will be retired in 1.16! + +Check the [release notes website](https://relnotes.k8s.io/?releaseVersions=1.15.0) for the complete changelog of notable features and fixes. + + + + +## Known Issues + +- Concurrently joining control-plane nodes does not work as expected in kubeadm 1.15.0. The feature was planned for release in 1.15.0, but a fix may come in a follow up patch release. + +- Using `--log-file` is known to be problematic in 1.15. This presents as things being logged multiple times to the same file. The behaviour and details of this issue, as well as some preliminary attempts at fixing it are documented [here](https://github.com/kubernetes/kubernetes/issues/78734#issuecomment-501372131) + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +#### API Machinery + +- `k8s.io/kubernetes` and published components (such as `k8s.io/client-go` and `k8s.io/api`) now contain go module files including dependency version information. See [go-modules](http://git.k8s.io/client-go/INSTALL.md#go-modules) for details on consuming `k8s.io/client-go` using go modules. ([#74877](https://github.com/kubernetes/kubernetes/pull/74877), [@liggitt](https://github.com/liggitt)) + +#### Apps + +- Hyperkube short aliases have been removed from source code, because hyperkube docker image currently creates these aliases. ([#76953](https://github.com/kubernetes/kubernetes/pull/76953), [@Rand01ph](https://github.com/Rand01ph)) + +#### Auth + +- The Rancher credential provider has now been removed. This only affects you if you are using the downstream Rancher distro. ([#77099](https://github.com/kubernetes/kubernetes/pull/77099), [@dims](https://github.com/dims)) + + +#### AWS + +- The `system:aws-cloud-provider` cluster role, deprecated in v1.13, is no longer auto-created. Deployments using the AWS cloud provider should grant required permissions to the `aws-cloud-provider` service account in the `kube-system` namespace as part of deployment. ([#66635](https://github.com/kubernetes/kubernetes/pull/66635), [@wgliang](https://github.com/wgliang)) + +#### Azure + +- Kubelet can now run without identity on Azure. A sample cloud provider configuration is: `{"vmType": "vmss", "useInstanceMetadata": true, "subscriptionId": "<subscriptionId>"}` ([#77906](https://github.com/kubernetes/kubernetes/pull/77906), [@feiskyer](https://github.com/feiskyer)) +- Multiple Kubernetes clusters can now share the same resource group + - When upgrading from previous releases, issues will arise with public IPs if multiple clusters share the same resource group. To solve these problems, make the following changes to the cluster: +Recreate the relevant LoadBalancer services, or add a new tag 'kubernetes-cluster-name: <cluster-name>' manually for existing public IPs. +Configure each cluster with a different cluster name using `kube-controller-manager --cluster-name=<cluster-name>` ([#77630](https://github.com/kubernetes/kubernetes/pull/77630), [@feiskyer](https://github.com/feiskyer)) +- The cloud config for Azure cloud provider can now be initialized from Kubernetes secret azure-cloud-provider in kube-system namespace + - the secret is a serialized version of `azure.json` file with key cloud-config. And the secret name is azure-cloud-provider. + - A new option cloudConfigType has been added to the cloud-config file. Supported values are: `file`, `secret` and `merge` (`merge` is the default value). + - To allow Azure cloud provider to read secrets, the [RBAC rules](https://github.com/kubernetes/kubernetes/pull/78242) should be configured. + +#### CLI + +- `kubectl scale job`, deprecated since 1.10, has been removed. ([#78445](https://github.com/kubernetes/kubernetes/pull/78445), [@soltysh](https://github.com/soltysh)) +- The deprecated `--pod`/`-p` flag for `kubectl exec` has been removed. The flag has been marked as deprecated since k8s version v1.12. ([#76713](https://github.com/kubernetes/kubernetes/pull/76713), [@prksu](https://github.com/prksu)) + + +#### Lifecycle + +- Support for deprecated old kubeadm v1alpha3 config has been totally removed. ([#75179](https://github.com/kubernetes/kubernetes/pull/75179), [@rosti](https://github.com/rosti)) +- kube-up.sh no longer supports "centos" and "local" providers. ([#76711](https://github.com/kubernetes/kubernetes/pull/76711), [@dims](https://github.com/dims)) + +#### Network + +- The deprecated flag `--conntrack-max` has been removed from kube-proxy. Users of this flag should switch to `--conntrack-min` and `--conntrack-max-per-core` instead. ([#78399](https://github.com/kubernetes/kubernetes/pull/78399), [@rikatz](https://github.com/rikatz)) +- The deprecated kube-proxy flag `--cleanup-iptables` has been removed. ([#78344](https://github.com/kubernetes/kubernetes/pull/78344), [@aramase](https://github.com/aramase)) + +#### Node + +- The deprecated kubelet security controls `AllowPrivileged`, `HostNetworkSources`, `HostPIDSources`, and `HostIPCSources` have been removed. Enforcement of these restrictions should be done through admission control (such as `PodSecurityPolicy`) instead. ([#77820](https://github.com/kubernetes/kubernetes/pull/77820), [@dims](https://github.com/dims)) +- The deprecated Kubelet flag `--allow-privileged` has been removed. Remove any use of the flag from your kubelet scripts or manifests. ([#77820](https://github.com/kubernetes/kubernetes/pull/77820), [@dims](https://github.com/dims)) +- The kubelet now only collects cgroups metrics for the node, container runtime, kubelet, pods, and containers. ([#72787](https://github.com/kubernetes/kubernetes/pull/72787), [@dashpole](https://github.com/dashpole)) + +#### Storage + +- The `Node.Status.Volumes.Attached.DevicePath` field is now unset for CSI volumes. You must update any external controllers that depend on this field. ([#75799](https://github.com/kubernetes/kubernetes/pull/75799), [@msau42](https://github.com/msau42)) +- CSI alpha CRDs have been removed ([#75747](https://github.com/kubernetes/kubernetes/pull/75747), [@msau42](https://github.com/msau42)) +- The `StorageObjectInUseProtection` admission plugin is enabled by default, so the default enabled admission plugins are now `NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota,StorageObjectInUseProtection`. Please note that if you previously had not set the `--admission-control` flag, your cluster behavior may change (to be more standard). ([#74610](https://github.com/kubernetes/kubernetes/pull/74610), [@oomichi](https://github.com/oomichi)) + + + +## Deprecations and Removals + +- kubectl + - `kubectl convert`, deprecated since v1.14, will be removed in v1.17. + - The `--export` flag for the `kubectl get` command, deprecated since v1.14, will be removed in v1.18. + - The `--pod`/`-p` flag for `kubectl exec`, deprecated since 1.12, has been removed. + - `kubectl scale job`, deprecated since 1.10, has been removed. ([#78445](https://github.com/kubernetes/kubernetes/pull/78445), [@soltysh](https://github.com/soltysh)) + + +- kubelet + - The `beta.kubernetes.io/os` and `beta.kubernetes.io/arch` labels, deprecated since v1.14, are targeted for removal in v1.18. + - The `--containerized` flag, deprecated since v1.14, will be removed in a future release. + - cAdvisor json endpoints have been deprecated. ([#78504](https://github.com/kubernetes/kubernetes/pull/78504), [@dashpole](https://github.com/dashpole)) + +- kube-apiserver + - The `--enable-logs-handler` flag and log-serving functionality is deprecated, and scheduled to be removed in v1.19. ([#77611](https://github.com/kubernetes/kubernetes/pull/77611), [@rohitsardesai83](https://github.com/rohitsardesai83)) + +- kube-proxy + - The deprecated `--cleanup-iptables` has been removed,. ([#78344](https://github.com/kubernetes/kubernetes/pull/78344), [@aramase](https://github.com/aramase)) + + +- API + - Ingress resources will no longer be served from `extensions/v1beta1` in v1.19. Migrate use to the `networking.k8s.io/v1beta1` API, available since v1.14. Existing persisted data can be retrieved via the `networking.k8s.io/v1beta1` API. + - NetworkPolicy resources will no longer be served from `extensions/v1beta1` in v1.16. Migrate use to the `networking.k8s.io/v1` API, available since v1.8. Existing persisted data can be retrieved via the `networking.k8s.io/v1` API. + - PodSecurityPolicy resources will no longer be served from `extensions/v1beta1` in v1.16. Migrate to the `policy/v1beta1` API, available since v1.10. Existing persisted data can be retrieved via the `policy/v1beta1` API. + - DaemonSet, Deployment, and ReplicaSet resources will no longer be served from `extensions/v1beta1`, `apps/v1beta1`, or `apps/v1beta2` in v1.16. Migrate to the `apps/v1` API, available since v1.9. Existing persisted data can be retrieved via the `apps/v1` API. + - PriorityClass resources will no longer be served from `scheduling.k8s.io/v1beta1` and `scheduling.k8s.io/v1alpha1` in v1.17. Migrate use to the `scheduling.k8s.io/v1` API, available since v1.14. Existing persisted data can be retrieved via the `scheduling.k8s.io/v1` API. + - The `export` query parameter for list API calls, deprecated since v1.14, will be removed in v1.18. + - The `series.state` field in the events.k8s.io/v1beta1 Event API is deprecated and will be removed in v1.18 ([#75987](https://github.com/kubernetes/kubernetes/pull/75987), [@yastij](https://github.com/yastij)) + +- kubeadm + - The `kubeadm upgrade node config` and `kubeadm upgrade node experimental-control-plane` commands are deprecated in favor of `kubeadm upgrade node`, and will be removed in a future release. ([#78408](https://github.com/kubernetes/kubernetes/pull/78408), [@fabriziopandini](https://github.com/fabriziopandini)) + - The flag `--experimental-control-plane` is now deprecated in favor of `--control-plane`. The flag `--experimental-upload-certs` is now deprecated in favor of `--upload-certs` ([#78452](https://github.com/kubernetes/kubernetes/pull/78452), [@fabriziopandini](https://github.com/fabriziopandini)) + - `kubeadm config upload` has been deprecated, as its replacement is now graduated. Please use `kubeadm init phase upload-config` instead. ([#77946](https://github.com/kubernetes/kubernetes/pull/77946), [@Klaven](https://github.com/Klaven)) + +- The following features are now GA, and the associated feature gates are deprecated and will be removed in v1.17: + - `GCERegionalPersistentDisk` + +## Metrics Changes + +### Added metrics + +- The metric `kube_proxy_sync_proxy_rules_last_timestamp_seconds` is now available, indicating the last time that kube-proxy successfully applied proxying rules. ([#74027](https://github.com/kubernetes/kubernetes/pull/74027), [@squeed](https://github.com/squeed)) +- `process_start_time_seconds` has been added to kubelet’s '/metrics/probes' endpoint ([#77975](https://github.com/kubernetes/kubernetes/pull/77975), [@logicalhan](https://github.com/logicalhan)) +- Scheduler: added metrics to record the number of pending pods in different queues ([#75501](https://github.com/kubernetes/kubernetes/pull/75501), [@Huang-Wei](https://github.com/Huang-Wei)) +- Exposed CSI volume stats via kubelet volume metrics ([#76188](https://github.com/kubernetes/kubernetes/pull/76188), [@humblec](https://github.com/humblec)) +- Added a new `storage_operation_status_count` metric for kube-controller-manager and kubelet to count success and error statues. ([#75750](https://github.com/kubernetes/kubernetes/pull/75750), [@msau42](https://github.com/msau42)) + +### Deprecated/changed metrics + +- kubelet probe metrics are now of the counter type rather than the gauge type, and the `prober_probe_result` has been replaced by `prober_probe_total`. ([#76074](https://github.com/kubernetes/kubernetes/pull/76074), [@danielqsj](https://github.com/danielqsj)) +- The `transformer_failures_total` metric is deprecated in favor of `transformation_operation_total`. The old metric will continue to be populated but will be removed in a future release. ([#70715](https://github.com/kubernetes/kubernetes/pull/70715), [@immutableT](https://github.com/immutableT)) +- Introducing new semantic for metric `volume_operation_total_seconds` to be the end to end latency of volume provisioning/deletion. Existing metric "storage_operation_duration_seconds" will remain untouched, however it is exposed to the following potential issues: + 1. For volumes provisioned/deleted via external provisioner/deleter, `storage_operation_duration_seconds` will NOT wait for the external operation to be done before reporting latency metric (effectively close to 0). This will be fixed by using `volume_operation_total_seconds` instead + 2. if there's a transient error happened during "provisioning/deletion", i.e., a volume is still in-use while a deleteVolume has been called, original `storage_operation_duration_seconds` will NOT wait until a volume has been finally deleted before reporting an inaccurate latency metric. The newly implemented metric `volume_operation_total_seconds`, however, waits until a provisioning/deletion operation has been fully executed. + + Potential impacts: + If an SLO/alert has been defined based on `volume_operation_total_seconds`, it might get violated because of the more accurate metric might be significantly larger than previously reported. The metric is defined to be a histogram and the new semantic could change the distribution. ([#78061](https://github.com/kubernetes/kubernetes/pull/78061), [@yuxiangqian](https://github.com/yuxiangqian)) + +- Implement the scheduling framework with `Reserve`, `Prebind`, `Permit`, `Post-bind`, `Queue sort` and `Unreserve` extension points. +([#77567](https://github.com/kubernetes/kubernetes/pull/77567), [@wgliang](https://github.com/wgliang)) +([#77559](https://github.com/kubernetes/kubernetes/pull/77559), [@ahg-g](https://github.com/ahg-g)) +([#77529](https://github.com/kubernetes/kubernetes/pull/77529), [@draveness](https://github.com/draveness)) +([#77598](https://github.com/kubernetes/kubernetes/pull/77598), [@danielqsj](https://github.com/danielqsj)) +([#77501](https://github.com/kubernetes/kubernetes/pull/77501), [@JieJhih](https://github.com/JieJhih)) +([#77457](https://github.com/kubernetes/kubernetes/pull/77457), [@danielqsj](https://github.com/danielqsj)) +- Replaced *_admission_latencies_milliseconds_summary and *_admission_latencies_milliseconds metrics because they were reporting seconds rather than milliseconds. They were also subject to multiple naming guideline violations (units should be in base units and "duration" is the best practice labelling to measure the time a request takes). Please convert to use *_admission_duration_seconds and *_admission_duration_seconds_summary, as these now report the unit as described, and follow the instrumentation best practices. ([#75279](https://github.com/kubernetes/kubernetes/pull/75279), [@danielqsj](https://github.com/danielqsj)) +- Fixed admission metrics histogram bucket sizes to cover 25ms to ~2.5 seconds. ([#78608](https://github.com/kubernetes/kubernetes/pull/78608), [@jpbetz](https://github.com/jpbetz)) +- Fixed incorrect prometheus azure metrics. ([#77722](https://github.com/kubernetes/kubernetes/pull/77722), [@andyzhangx](https://github.com/andyzhangx)) +- `kubectl scale job`, deprecated since 1.10, has been removed. ([#78445](https://github.com/kubernetes/kubernetes/pull/78445), [@soltysh](https://github.com/soltysh)) + + + +## Notable Features + +### Stable + +- You can now create a non-preempting Pod priority. If set on a class, the pod will continue to be prioritized above queued pods of a lesser class, but will not preempt running pods. ([#74614](https://github.com/kubernetes/kubernetes/pull/74614), [@denkensk](https://github.com/denkensk)) + +- Third party device monitoring is now enabled by default (KubeletPodResources). ([#77274](https://github.com/kubernetes/kubernetes/pull/77274), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) +- The kube-apiserver’s `watch` can now be enabled for events using the `--watch-cache-sizes` flag. ([#74321](https://github.com/kubernetes/kubernetes/pull/74321), [@yastij](https://github.com/yastij)) + +### Beta + +- Admission webhooks can now register for a single version of a resource (for example, `apps/v1 deployments`) and be called when any other version of that resource is modified (for example `extensions/v1beta1 deployments`). This allows new versions of a resource to be handled by admission webhooks without needing to update every webhook to understand the new version. See the API documentation for the `matchPolicy: Equivalent` option in MutatingWebhookConfiguration and ValidatingWebhookConfiguration types. ([#78135](https://github.com/kubernetes/kubernetes/pull/78135), [@liggitt](https://github.com/liggitt)) +- The CustomResourcePublishOpenAPI feature is now beta and enabled by default. CustomResourceDefinitions with [structural schemas](https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190425-structural-openapi.md) now publish schemas in the OpenAPI document served at `/openapi/v2`. CustomResourceDefinitions with non-structural schemas have a `NonStructuralSchema` condition added with details about what needs to be corrected in the validation schema. ([#77825](https://github.com/kubernetes/kubernetes/pull/77825), [@roycaihw](https://github.com/roycaihw)) +- Online volume expansion (ExpandInUsePersistentVolumes) is now a beta feature. As such, it is enabled by default. ([#77755](https://github.com/kubernetes/kubernetes/pull/77755), [@gnufied](https://github.com/gnufied)) +- The `SupportNodePidsLimit` feature is now beta, and enabled by default. It is no longer necessary to set the feature gate `SupportNodePidsLimit=true`. ([#76221](https://github.com/kubernetes/kubernetes/pull/76221), [@RobertKrawitz](https://github.com/RobertKrawitz)) +- kubeadm now includes the ability to specify certificate encryption and decryption keys for the upload and download certificate phases as part of the new v1beta2 kubeadm config format. ([#77012](https://github.com/kubernetes/kubernetes/pull/77012), [@rosti](https://github.com/rosti)) +- You can now use kubeadm's `InitConfiguration` and `JoinConfiguration` to define which preflight errors will be ignored. ([#75499](https://github.com/kubernetes/kubernetes/pull/75499), [@marccarre](https://github.com/marccarre)) +- CustomResourcesDefinition conversion via Web Hooks is promoted to beta. Note that you must set `spec.preserveUnknownFields` to `false`. ([#78426](https://github.com/kubernetes/kubernetes/pull/78426), [@sttts](https://github.com/sttts)) +- Group Managed Service Account support has moved to a new API for beta. Special annotations for Windows GMSA support have been deprecated. +([#75459](https://github.com/kubernetes/kubernetes/pull/75459), [@wk8](https://github.com/wk8)) +- The `storageVersionHash` feature is now beta. `StorageVersionHash` is a field in the discovery document of each resource. It enables clients to detect whether the storage version of that resource has changed. Its value must be treated as opaque by clients. Only equality comparison on the value is valid. ([#78325](https://github.com/kubernetes/kubernetes/pull/78325), [@caesarxuchao](https://github.com/caesarxuchao)) +- Ingress objects are now persisted in etcd using the `networking.k8s.io/v1beta1` version ([#77139](https://github.com/kubernetes/kubernetes/pull/77139), [@cmluciano](https://github.com/cmluciano)) +- NodeLocal DNSCache graduating to beta. ([#77887](https://github.com/kubernetes/kubernetes/pull/77887), [@prameshj](https://github.com/prameshj)) + +### Alpha + +- kubelet now allows the use of XFS quotas (on XFS and suitably configured ext4fs filesystems) to monitor storage consumption for ephemeral storage. This method of monitoring consumption, which is currently available only for `emptyDir` volumes, is faster and more accurate than the old method of walking the filesystem tree. Note that it does not enforce limits, it only monitors consumption. To utilize this functionality, set the feature gate `LocalStorageCapacityIsolationFSQuotaMonitoring=true`. For ext4fs filesystems, create the filesystem with `mkfs.ext4 -O project <block_device>` and run `tune2fs -Q prjquota `block device`; XFS filesystems need no additional preparation. The filesystem must be mounted with option `project` in `/etc/fstab`. If the primary partition is the root filesystem, add `rootflags=pquota` to the GRUB config file. ([#66928](https://github.com/kubernetes/kubernetes/pull/66928), [@RobertKrawitz](https://github.com/RobertKrawitz)) +- Finalizer Protection for Service LoadBalancers (ServiceLoadBalancerFinalizer) has been added as an Alpha feature, which is disabled by default. This feature ensures the Service resource is not fully deleted until the correlating load balancer resources are deleted. ([#78262](https://github.com/kubernetes/kubernetes/pull/78262), [@MrHohn](https://github.com/MrHohn)) +- Inline CSI ephemeral volumes can now be controlled with PodSecurityPolicy when the CSIInlineVolume alpha feature is enabled. ([#76915](https://github.com/kubernetes/kubernetes/pull/76915), [@vladimirvivien](https://github.com/vladimirvivien)) +- Kubernetes now includes an alpha field, `AllowWatchBookmarks`, in ListOptions for requesting the watching of bookmarks from apiserver. The implementation in apiserver is hidden behind the feature gate `WatchBookmark`. ([#74074](https://github.com/kubernetes/kubernetes/pull/74074), [@wojtek-t](https://github.com/wojtek-t)) + +### Staging Repositories + +- The CRI API is now available in the `k8s.io/cri-api` staging repository. ([#75531](https://github.com/kubernetes/kubernetes/pull/75531), [@dims](https://github.com/dims)) +- Support for the Azure File plugin has been added to `csi-translation-lib` (CSIMigrationAzureFile). ([#78356](https://github.com/kubernetes/kubernetes/pull/78356), [@andyzhangx](https://github.com/andyzhangx)) +- Added support for Azure Disk plugin to csi-translation-lib (CSIMigrationAzureDisk) ([#78330](https://github.com/kubernetes/kubernetes/pull/78330), [@andyzhangx](https://github.com/andyzhangx)) + +### CLI Improvements + +- Added `kubeadm upgrade node`. This command can be used to upgrade both secondary control-plane nodes and worker nodes. The `kubeadm upgrade node config` and `kubeadm upgrade node experimental-control-plane` commands are now deprecated. ([#78408](https://github.com/kubernetes/kubernetes/pull/78408), [@fabriziopandini](https://github.com/fabriziopandini)) +- The `kubectl top` command now includes a `--sort-by` option to sort by `memory` or `cpu`. ([#75920](https://github.com/kubernetes/kubernetes/pull/75920), [@artmello](https://github.com/artmello)) +- `kubectl rollout restart` now works for DaemonSets and StatefulSets. ([#77423](https://github.com/kubernetes/kubernetes/pull/77423), [@apelisse](https://github.com/apelisse)) +- `kubectl get --watch=true` now prints custom resource definitions with custom print columns. ([#76161](https://github.com/kubernetes/kubernetes/pull/76161), [@liggitt](https://github.com/liggitt)) +- Added `kubeadm alpha certs certificate-key` command to generate secure random key to use on `kubeadm init --experimental-upload-certs` ([#77848](https://github.com/kubernetes/kubernetes/pull/77848), [@yagonobre](https://github.com/yagonobre)) +- Kubernetes now supports printing the `volumeMode` using `kubectl get pv/pvc -o wide` ([#76646](https://github.com/kubernetes/kubernetes/pull/76646), [@cwdsuzhou](https://github.com/cwdsuzhou)) +- Created a new `kubectl rollout restart` command that does a rolling restart of a deployment. ([#76062](https://github.com/kubernetes/kubernetes/pull/76062), [@apelisse](https://github.com/apelisse)) +- `kubectl exec` now allows using the resource name to select a matching pod and `--pod-running-timeout` flag to wait till at least one pod is running. ([#73664](https://github.com/kubernetes/kubernetes/pull/73664), [@prksu](https://github.com/prksu)) +- `kubeadm alpha certs renew` and `kubeadm upgrade` now supports renewal of certificates embedded in KubeConfig files managed by kubeadm; this does not apply to certificates signed by external CAs. ([#77180](https://github.com/kubernetes/kubernetes/pull/77180), [@fabriziopandini](https://github.com/fabriziopandini)) +- Kubeadm: a new command `kubeadm alpha certs check-expiration` was created in order to help users in managing expiration for local PKI certificates ([#77863](https://github.com/kubernetes/kubernetes/pull/77863), [@fabriziopandini](https://github.com/fabriziopandini)) + +### Misc + +- Service account controller clients to now use the TokenRequest API, and tokens are periodically rotated. ([#72179](https://github.com/kubernetes/kubernetes/pull/72179), [@WanLinghao](https://github.com/WanLinghao)) +- Added `ListPager.EachListItem` utility function to client-go to enable incremental processing of chunked list responses ([#75849](https://github.com/kubernetes/kubernetes/pull/75849), [@jpbetz](https://github.com/jpbetz)) +- Object count quota is now supported for namespaced custom resources using the `count/<resource>.<group>` syntax. ([#72384](https://github.com/kubernetes/kubernetes/pull/72384), [@zhouhaibing089](https://github.com/zhouhaibing089)) +- Added completed job status in Cron Job event. ([#75712](https://github.com/kubernetes/kubernetes/pull/75712), [@danielqsj](https://github.com/danielqsj)) +- Pod disruption budgets can now be updated and patched. ([#69867](https://github.com/kubernetes/kubernetes/pull/69867), [@davidmccormick](https://github.com/davidmccormick)) +- Add CRD spec.preserveUnknownFields boolean, defaulting to true in v1beta1 and to false in v1 CRDs. If false, fields not specified in the validation schema will be removed when sent to the API server or when read from etcd. ([#77333](https://github.com/kubernetes/kubernetes/pull/77333), [@sttts](https://github.com/sttts)) +- Added RuntimeClass restrictions and defaulting to PodSecurityPolicy. ([#73795](https://github.com/kubernetes/kubernetes/pull/73795), [@tallclair](https://github.com/tallclair)) +- Kubelet plugin registration now has retry and exponential backoff logic for when registration of plugins (such as CSI or device plugin) fail. ([#73891](https://github.com/kubernetes/kubernetes/pull/73891), [@taragu](https://github.com/taragu)) +- proxy/transport now supports Content-Encoding: deflate ([#76551](https://github.com/kubernetes/kubernetes/pull/76551), [@JieJhih](https://github.com/JieJhih)) +- Admission webhooks are now properly called for `scale` and `deployments/rollback` subresources. ([#76849](https://github.com/kubernetes/kubernetes/pull/76849), [@liggitt](https://github.com/liggitt)) + +## API Changes + +- CRDs get support for x-kubernetes-int-or-string to allow faithful representation of IntOrString types in CustomResources.([#78815](https://github.com/kubernetes/kubernetes/pull/78815), [@sttts](https://github.com/sttts)) +- Introduced the [`v1beta2`](https://docs.google.com/document/d/1XnP67oO1i9VcDIpw42IzptnJsc5OQM-HTf8cVcjCR2w/edit) config format to kubeadm. ([#76710](https://github.com/kubernetes/kubernetes/pull/76710), [@rosti](https://github.com/rosti)) +- Resource list requests for `PartialObjectMetadata` now correctly return list metadata like the resourceVersion and the continue token. ([#75971](https://github.com/kubernetes/kubernetes/pull/75971), [@smarterclayton](https://github.com/smarterclayton)) +- Added a condition `NonStructuralSchema` to `CustomResourceDefinition` listing Structural Schema violations as defined in the [KEP](https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190425-structural-openapi.md). CRD authors should update their validation schemas to be structural in order to participate in future CRD features. ([#77207](https://github.com/kubernetes/kubernetes/pull/77207), [@sttts](https://github.com/sttts)) +- Promoted meta.k8s.io/v1beta1 Table and PartialObjectMetadata to v1. ([#77136](https://github.com/kubernetes/kubernetes/pull/77136), [@smarterclayton](https://github.com/smarterclayton)) +- Introduced the flag `--ipvs-strict-arp` to configure stricter ARP sysctls, defaulting to false to preserve existing behaviors. This was enabled by default in 1.13.0, which impacted a few CNI plugins. ([#75295](https://github.com/kubernetes/kubernetes/pull/75295), [@lbernail](https://github.com/lbernail)) +- CRD validation schemas should not specify `metadata` fields other than `name` and `generateName`. A schema will not be considered structural (and therefore ready for future features) if `metadata` is specified in any other way. ([#77653](https://github.com/kubernetes/kubernetes/pull/77653), [@sttts](https://github.com/sttts)) + +## Other notable changes + +### API Machinery + +- Added port configuration to Admission webhook configuration service reference. +- Added port configuration to AuditSink webhook configuration service reference. +- Added port configuration to CRD Conversion webhook configuration service reference. +- Added port configuration to kube-aggregator service reference. ([#74855](https://github.com/kubernetes/kubernetes/pull/74855), [@mbohlool](https://github.com/mbohlool)) +- Implemented deduplication logic for v1beta1.Event API ([#65782](https://github.com/kubernetes/kubernetes/pull/65782), [@yastij](https://github.com/yastij)) +- Added `objectSelector` to admission webhook configurations. `objectSelector` is evaluated the oldObject and newObject that would be sent to the webhook, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. ([#78505](https://github.com/kubernetes/kubernetes/pull/78505), [@caesarxuchao](https://github.com/caesarxuchao)) +- Watch will now support converting response objects into Table or PartialObjectMetadata forms. ([#71548](https://github.com/kubernetes/kubernetes/pull/71548), [@smarterclayton](https://github.com/smarterclayton)) +- In CRD webhook conversion, Kubernetes will now ignore changes to metadata other than for labels and annotations. ([#77743](https://github.com/kubernetes/kubernetes/pull/77743), [@sttts](https://github.com/sttts)) +- Added ListMeta.RemainingItemCount. When responding to a LIST request, if the server has more data available, and if the request does not contain label selectors or field selectors, the server sets the ListOptions.RemainingItemCount to the number of remaining objects. ([#75993](https://github.com/kubernetes/kubernetes/pull/75993), [@caesarxuchao](https://github.com/caesarxuchao)) +- Clients may now request that API objects are converted to the `v1.Table` and `v1.PartialObjectMetadata` forms for generic access to objects. ([#77448](https://github.com/kubernetes/kubernetes/pull/77448), [@smarterclayton](https://github.com/smarterclayton)) + +- Fixed a spurious error where update requests to the status subresource of multi-version custom resources would complain about an incorrect API version. ([#78713](https://github.com/kubernetes/kubernetes/pull/78713), [@liggitt](https://github.com/liggitt)) +- Fixed a bug in apiserver storage that could cause just-added finalizers to be ignored immediately following a delete request, leading to premature deletion. ([#77619](https://github.com/kubernetes/kubernetes/pull/77619), [@caesarxuchao](https://github.com/caesarxuchao)) +- API requests rejected by admission webhooks which specify an http status code < 400 are now assigned a 400 status code. ([#77022](https://github.com/kubernetes/kubernetes/pull/77022), [@liggitt](https://github.com/liggitt)) +- Fixed a transient error API requests for custom resources could encounter while changes to the CustomResourceDefinition were being applied. ([#77816](https://github.com/kubernetes/kubernetes/pull/77816), [@liggitt](https://github.com/liggitt)) +[@smarterclayton](https://github.com/smarterclayton)) +- Added name validation for dynamic client methods in client-go ([#75072](https://github.com/kubernetes/kubernetes/pull/75072), [@lblackstone](https://github.com/lblackstone)) +- CustomResourceDefinition with invalid regular expression in the pattern field of OpenAPI v3 validation schemas are no longer considered structural. ([#78453](https://github.com/kubernetes/kubernetes/pull/78453), [@sttts](https://github.com/sttts)) +- API paging is now enabled by default in k8s.io/apiserver recommended options, and in k8s.io/sample-apiserver ([#77278](https://github.com/kubernetes/kubernetes/pull/77278), [@liggitt](https://github.com/liggitt)) + +- Increased verbose level for local openapi aggregation logs to avoid flooding the log during normal operation ([#75781](https://github.com/kubernetes/kubernetes/pull/75781), [@roycaihw](https://github.com/roycaihw)) +- k8s.io/client-go/dynamic/dynamicinformer.NewFilteredDynamicSharedInformerFactory now honours the `namespace` argument. ([#77945](https://github.com/kubernetes/kubernetes/pull/77945), [@michaelfig](https://github.com/michaelfig)) +- client-go and kubectl no longer write cached discovery files with world-accessible file permissions. ([#77874](https://github.com/kubernetes/kubernetes/pull/77874), [@yuchengwu](https://github.com/yuchengwu)) +- Fixed an error with stuck informers when an etcd watch receives update or delete events with missing data. ([#76675](https://github.com/kubernetes/kubernetes/pull/76675), [@ryanmcnamara](https://github.com/ryanmcnamara)) +- `DelayingQueue.ShutDown()` can now be invoked multiple times without causing a closed channel panic. ([#77170](https://github.com/kubernetes/kubernetes/pull/77170), [@smarterclayton](https://github.com/smarterclayton)) +- When specifying an invalid value for a label, it was not always clear which label the value was specified for. Starting with this release, the label's key is included in such error messages, which makes debugging easier. ([#77144](https://github.com/kubernetes/kubernetes/pull/77144), [@kenegozi](https://github.com/kenegozi)) +- Fixed a regression error when proxying responses from aggregated API servers, which could cause watch requests to hang until the first event was received. ([#75887](https://github.com/kubernetes/kubernetes/pull/75887), [@liggitt](https://github.com/liggitt)) +- Fixed a bug where dry-run is not honored for pod/eviction sub-resource. ([#76969](https://github.com/kubernetes/kubernetes/pull/76969), [@apelisse](https://github.com/apelisse)) + +- DeleteOptions parameters for deletecollection endpoints are now published in the OpenAPI spec. ([#77843](https://github.com/kubernetes/kubernetes/pull/77843), [@roycaihw](https://github.com/roycaihw)) +- Active watches of custom resources now terminate properly if the CRD is modified. ([#78029](https://github.com/kubernetes/kubernetes/pull/78029), [@liggitt](https://github.com/liggitt)) +- Fixed a potential deadlock in the resource quota controller. Enabled recording partial usage info for quota objects specifying multiple resources, when only some of the resources' usage can be determined. ([#74747](https://github.com/kubernetes/kubernetes/pull/74747), [@liggitt](https://github.com/liggitt)) +- Updates that remove remaining `metadata.finalizers` from an object that is pending deletion (non-nil metadata.deletionTimestamp) and has no graceful deletion pending (nil or 0 metadata.deletionGracePeriodSeconds) now results in immediate deletion of the object. ([#77952](https://github.com/kubernetes/kubernetes/pull/77952), [@liggitt](https://github.com/liggitt)) +- client-go: The `rest.AnonymousClientConfig(*rest.Config) *rest.Config` helper method no longer copies custom `Transport` and `WrapTransport` fields, because those can be used to inject user credentials. ([#75771](https://github.com/kubernetes/kubernetes/pull/75771), [@liggitt](https://github.com/liggitt)) +- Validating admission webhooks are now properly called for CREATE operations on the following resources: pods/binding, pods/eviction, bindings ([#76910](https://github.com/kubernetes/kubernetes/pull/76910), [@liggitt](https://github.com/liggitt)) +- Removed the function Parallelize, please convert to use the function ParallelizeUntil. ([#76595](https://github.com/kubernetes/kubernetes/pull/76595), [@danielqsj](https://github.com/danielqsj)) + +### Apps + +- Users can now specify a DataSource/Kind of type `PersistentVolumeClaim` in their PVC spec. This can then be detected by the external csi-provisioner and plugins if capable. ([#76913](https://github.com/kubernetes/kubernetes/pull/76913), [@j-griffith](https://github.com/j-griffith)) +- Fixed bug in DaemonSetController causing it to stop processing some DaemonSets for 5 minutes after node removal. ([#76060](https://github.com/kubernetes/kubernetes/pull/76060), [@krzysztof-jastrzebski](https://github.com/krzysztof-jastrzebski)) +- StatefulSet controllers no longer force a resync every 30 seconds when nothing has changed. ([#75622](https://github.com/kubernetes/kubernetes/pull/75622), [@jonsabo](https://github.com/jonsabo)) +- Enhanced the daemonset sync logic to avoid a problem where pods are thought to be unavailable when the controller's clock is slower than the node's clock. ([#77208](https://github.com/kubernetes/kubernetes/pull/77208), [@DaiHao](https://github.com/DaiHao)) +- Fixed a bug that caused a DaemonSet rolling update to hang when its pod gets stuck at terminating. ([#77773](https://github.com/kubernetes/kubernetes/pull/77773), [@DaiHao](https://github.com/DaiHao)) +- Route controller now respects rate limiting to the cloud provider on deletion; previously it was only for create. ([#78581](https://github.com/kubernetes/kubernetes/pull/78581), [@andrewsykim](https://github.com/andrewsykim)) +- Removed extra pod creation expectations when daemonset fails to create pods in batches. ([#74856](https://github.com/kubernetes/kubernetes/pull/74856), [@draveness](https://github.com/draveness)) +- Resolved spurious rollouts of workload controllers when upgrading the API server, due to incorrect defaulting of an alpha procMount field in pods. ([#78885](https://github.com/kubernetes/kubernetes/pull/78885), [@liggitt](https://github.com/liggitt)) + +### Auth + +- Fixed OpenID Connect (OIDC) token refresh when the client secret contains a special character. ([#76914](https://github.com/kubernetes/kubernetes/pull/76914), [@tsuna](https://github.com/tsuna)) +- Improved `kubectl auth can-i` command by warning users when they try to access a resource out of scope. ([#76014](https://github.com/kubernetes/kubernetes/pull/76014), [@WanLinghao](https://github.com/WanLinghao)) +- Validating admission webhooks are now properly called for CREATE operations on the following resources: tokenreviews, subjectaccessreviews, localsubjectaccessreviews, selfsubjectaccessreviews, selfsubjectrulesreviews ([#76959](https://github.com/kubernetes/kubernetes/pull/76959), [@sbezverk](https://github.com/sbezverk)) + +### Autoscaling + +- Horizontal Pod Autoscaling can now scale targets up even when one or more metrics are invalid/unavailable, as long as one metric indicates a scale up should occur. ([#78503](https://github.com/kubernetes/kubernetes/pull/78503), [@gjtempleton](https://github.com/gjtempleton)) + + +### AWS + +- Kubernetes will now use the zone from the node for topology aware aws-ebs volume creation to reduce unnecessary cloud provider calls. ([#78276](https://github.com/kubernetes/kubernetes/pull/78276), [@zhan849](https://github.com/zhan849)) +- Kubernetes now supports configure accessLogs for AWS NLB. ([#78497](https://github.com/kubernetes/kubernetes/pull/78497), [@M00nF1sh](https://github.com/M00nF1sh)) +- Kubernetes now supports update LoadBalancerSourceRanges for AWS NLB([#74692](https://github.com/kubernetes/kubernetes/pull/74692), [@M00nF1sh](https://github.com/M00nF1sh)) +- Kubernetes now supports configure TLS termination for AWS NLB([#74910](https://github.com/kubernetes/kubernetes/pull/74910), [@M00nF1sh](https://github.com/M00nF1sh)) +- Kubernetes will now consume the AWS region list from the AWS SDK instead of a hard-coded list in the cloud provider. ([#75990](https://github.com/kubernetes/kubernetes/pull/75990), [@mcrute](https://github.com/mcrute)) +- Limit use of tags when calling EC2 API to prevent API throttling for very large clusters. ([#76749](https://github.com/kubernetes/kubernetes/pull/76749), [@mcrute](https://github.com/mcrute)) +- The AWS credential provider can now obtain ECR credentials even without the AWS cloud provider or being on an EC2 instance. Additionally, AWS credential provider caching has been improved to honor the ECR credential timeout. ([#75587](https://github.com/kubernetes/kubernetes/pull/75587), [@tiffanyfay](https://github.com/tiffanyfay)) + + +### Azure + +- Kubernetes now supports specifying the Resource Group of the Route Table when updating the Pod network route on Azure. ([#75580](https://github.com/kubernetes/kubernetes/pull/75580), [@suker200](https://github.com/suker200)) +- Kubernetes now uses instance-level update APIs for Azure VMSS loadbalancer operations. ([#76656](https://github.com/kubernetes/kubernetes/pull/76656), [@feiskyer](https://github.com/feiskyer)) +- Users can now specify azure file share name in the azure file plugin, making it possible to use existing shares or specify a new share name. ([#76988](https://github.com/kubernetes/kubernetes/pull/76988), [@andyzhangx](https://github.com/andyzhangx)) +- You can now run kubelet with no Azure identity. A sample cloud provider configuration is: `{"vmType": "vmss", "useInstanceMetadata": true, "subscriptionId": "<subscriptionId>"}` ([#77906](https://github.com/kubernetes/kubernetes/pull/77906), [@feiskyer](https://github.com/feiskyer)) +- Fixed some service tags not supported issues for Azure LoadBalancer service. ([#77719](https://github.com/kubernetes/kubernetes/pull/77719), [@feiskyer](https://github.com/feiskyer)) +- Fixed an issue where `pull image` fails from a cross-subscription Azure Container Registry when using MSI to authenticate. ([#77245](https://github.com/kubernetes/kubernetes/pull/77245), [@norshtein](https://github.com/norshtein)) +- Azure cloud provider can now be configured by Kubernetes secrets and a new option `cloudConfigType` has been introduced. Candidate values are `file`, `secret` or `merge` (default is `merge`). Note that the secret is a serialized version of `azure.json` file with key cloud-config. And the secret name is azure-cloud-provider in kube-system namespace. ([#78242](https://github.com/kubernetes/kubernetes/pull/78242), [@feiskyer](https://github.com/feiskyer)) + +### CLI + +- Fixed `kubectl exec` usage string to correctly reflect flag placement. ([#77589](https://github.com/kubernetes/kubernetes/pull/77589), [@soltysh](https://github.com/soltysh)) +- Fixed `kubectl describe cronjobs` error of `Successful Job History Limit`. ([#77347](https://github.com/kubernetes/kubernetes/pull/77347), [@danielqsj](https://github.com/danielqsj)) +- In the `kubectl describe` output, the fields with names containing special characters are now displayed as-is without any pretty formatting, avoiding awkward outputs. ([#75483](https://github.com/kubernetes/kubernetes/pull/75483), [@gsadhani](https://github.com/gsadhani)) +- Fixed incorrect handling by kubectl of custom resources whose Kind is "Status". ([#77368](https://github.com/kubernetes/kubernetes/pull/77368), [@liggitt](https://github.com/liggitt)) +- Report cp errors consistently, providing full message whether copying to or from a pod. ([#77010](https://github.com/kubernetes/kubernetes/pull/77010), [@soltysh](https://github.com/soltysh)) +- Preserved existing namespace information in manifests when running ` +set ... --local` commands. ([#77267](https://github.com/kubernetes/kubernetes/pull/77267), [@liggitt](https://github.com/liggitt)) +- Support for parsing more v1.Taint forms has been added. For example, `key:effect`, `key=:effect-` are now accepted. ([#74159](https://github.com/kubernetes/kubernetes/pull/74159), [@dlipovetsky](https://github.com/dlipovetsky)) + +### Cloud Provider + +- The GCE-only flag `cloud-provider-gce-lb-src-cidrs` is now optional for external cloud providers. ([#76627](https://github.com/kubernetes/kubernetes/pull/76627), [@timoreimann](https://github.com/timoreimann)) +- Fixed a bug where cloud-controller-manager initializes nodes multiple times. ([#75405](https://github.com/kubernetes/kubernetes/pull/75405), [@tghartland](https://github.com/tghartland)) + +### Cluster Lifecycle + +- `kubeadm upgrade` now renews all the certificates used by a component before upgrading the component itself, with the exception of certificates signed by external CAs. User can eventually opt-out of certificate renewal during upgrades by setting the new flag `--certificate-renewal` to false. ([#76862](https://github.com/kubernetes/kubernetes/pull/76862), [@fabriziopandini](https://github.com/fabriziopandini)) +- kubeadm still generates RSA keys when deploying a node, but also accepts ECDSA +keys if they already exist in the directory specified in the `--cert-dir` option. ([#76390](https://github.com/kubernetes/kubernetes/pull/76390), [@rojkov](https://github.com/rojkov)) +- kubeadm now implements CRI detection for Windows worker nodes ([#78053](https://github.com/kubernetes/kubernetes/pull/78053), [@ksubrmnn](https://github.com/ksubrmnn)) +- Added `--image-repository` flag to `kubeadm config images`. ([#75866](https://github.com/kubernetes/kubernetes/pull/75866), [@jmkeyes](https://github.com/jmkeyes)) + +- kubeadm: The kubeadm reset command has now been exposed as phases. ([#77847](https://github.com/kubernetes/kubernetes/pull/77847), [@yagonobre](https://github.com/yagonobre)) +- kubeadm: Improved resiliency when it comes to updating the `kubeadm-config` configmap upon new control plane joins or resets. This allows for safe multiple control plane joins and/or resets. ([#76821](https://github.com/kubernetes/kubernetes/pull/76821), [@ereslibre](https://github.com/ereslibre)) +- kubeadm: Bumped the minimum supported Docker version to 1.13.1 ([#77051](https://github.com/kubernetes/kubernetes/pull/77051), [@chenzhiwei](https://github.com/chenzhiwei)) +- Reverted the CoreDNS version to 1.3.1 for kubeadm ([#78545](https://github.com/kubernetes/kubernetes/pull/78545), [@neolit123](https://github.com/neolit123)) +- kubeadm: Fixed the machine readability of `kubeadm token create --print-join-command` ([#75487](https://github.com/kubernetes/kubernetes/pull/75487), [@displague](https://github.com/displague)) +- `kubeadm alpha certs renew --csr-only` now reads the current certificates as the authoritative source for certificates attributes (same as kubeadm alpha certs renew). ([#77780](https://github.com/kubernetes/kubernetes/pull/77780), [@fabriziopandini](https://github.com/fabriziopandini)) +- kubeadm: You can now delete multiple bootstrap tokens at once. ([#75646](https://github.com/kubernetes/kubernetes/pull/75646), [@bart0sh](https://github.com/bart0sh)) +- util/initsystem: Added support for the OpenRC init system ([#73101](https://github.com/kubernetes/kubernetes/pull/73101), [@oz123](https://github.com/oz123)) +- Default TTL for DNS records in kubernetes zone has been changed from 5s to 30s to keep consistent with old dnsmasq based kube-dns. The TTL can be customized with command `kubectl edit -n kube-system configmap/coredns`. ([#76238](https://github.com/kubernetes/kubernetes/pull/76238), [@Dieken](https://github.com/Dieken)) +- Communication between the etcd server and kube-apiserver on master is now overridden to use HTTPS instead of HTTP when mTLS is enabled in GCE. ([#74690](https://github.com/kubernetes/kubernetes/pull/74690), [@wenjiaswe](https://github.com/wenjiaswe)) + +### GCP + +- [stackdriver addon] Bumped prometheus-to-sd to v0.5.0 to pick up security fixes. +[fluentd-gcp addon] Bumped fluentd-gcp-scaler to v0.5.1 to pick up security fixes. +[fluentd-gcp addon] Bumped event-exporter to v0.2.4 to pick up security fixes. +[fluentd-gcp addon] Bumped prometheus-to-sd to v0.5.0 to pick up security fixes. +[metatada-proxy addon] Bumped prometheus-to-sd v0.5.0 to pick up security fixes. ([#75362](https://github.com/kubernetes/kubernetes/pull/75362), [@serathius](https://github.com/serathius)) +- [fluentd-gcp addon] Bump fluentd-gcp-scaler to v0.5.2 to pick up security fixes. ([#76762](https://github.com/kubernetes/kubernetes/pull/76762), [@serathius](https://github.com/serathius)) +- The GCERegionalPersistentDisk feature gate (GA in 1.13) can no longer be disabled. The feature gate will be removed in v1.17. ([#77412](https://github.com/kubernetes/kubernetes/pull/77412), [@liggitt](https://github.com/liggitt)) +- GCE/Windows: When the service cannot be stopped Stackdriver logging processes are now force killed ([#77378](https://github.com/kubernetes/kubernetes/pull/77378), [@yujuhong](https://github.com/yujuhong)) +- Reduced GCE log rotation check from 1 hour to every 5 minutes. Rotation policy is unchanged (new day starts, log file size > 100MB). ([#76352](https://github.com/kubernetes/kubernetes/pull/76352), [@jpbetz](https://github.com/jpbetz)) +- GCE/Windows: disabled stackdriver logging agent to prevent node startup failures ([#76099](https://github.com/kubernetes/kubernetes/pull/76099), [@yujuhong](https://github.com/yujuhong)) +- API servers using the default Google Compute Engine bootstrapping scripts will have their insecure port (`:8080`) disabled by default. To enable the insecure port, set `ENABLE_APISERVER_INSECURE_PORT=true` in kube-env or as an environment variable. ([#77447](https://github.com/kubernetes/kubernetes/pull/77447), [@dekkagaijin](https://github.com/dekkagaijin)) +- Fixed a NPD bug on GCI, so that it disables glog writing to files for log-counter. ([#76211](https://github.com/kubernetes/kubernetes/pull/76211), [@wangzhen127](https://github.com/wangzhen127)) +- Windows nodes on GCE now have the Windows firewall enabled by default. ([#78507](https://github.com/kubernetes/kubernetes/pull/78507), [@pjh](https://github.com/pjh)) +- Added `CNI_VERSION` and `CNI_SHA1` environment variables in `kube-up.sh` to configure CNI versions on GCE. ([#76353](https://github.com/kubernetes/kubernetes/pull/76353), [@Random-Liu](https://github.com/Random-Liu)) +- GCE clusters will include some IP ranges that are not used on the public Internet in the list of non-masq IPs. Bumped ip-masq-agent version to v2.3.0 with flag `nomasq-all-reserved-ranges` turned on. ([#77458](https://github.com/kubernetes/kubernetes/pull/77458), [@grayluck](https://github.com/grayluck)) +- GCE/Windows: added support for the stackdriver logging agent ([#76850](https://github.com/kubernetes/kubernetes/pull/76850), [@yujuhong](https://github.com/yujuhong)) +- GCE Windows nodes will rely solely on kubernetes and kube-proxy (and not the GCE agent) for network address management. ([#75855](https://github.com/kubernetes/kubernetes/pull/75855), [@pjh](https://github.com/pjh)) +- Ensured that the `node-role.kubernetes.io/master` taint is applied to the master with NoSchedule on GCE. ([#78183](https://github.com/kubernetes/kubernetes/pull/78183), [@cheftako](https://github.com/cheftako)) +- Windows nodes on GCE now use a known-working 1809 image rather than the latest 1809 image. ([#76722](https://github.com/kubernetes/kubernetes/pull/76722), [@pjh](https://github.com/pjh)) +- kube-up.sh scripts now disable the KubeletPodResources feature for Windows nodes, due to issue #[78628](https://github.com/kubernetes/kubernetes/pull/78668). ([#78668](https://github.com/kubernetes/kubernetes/pull/78668), [@mtaufen](https://github.com/mtaufen)) + + +### Instrumentation + +- [metrics-server addon] Restored the ability to connect to nodes via IP addresses. ([#76819](https://github.com/kubernetes/kubernetes/pull/76819), [@serathius](https://github.com/serathius)) +- If a pod has a running instance, the stats of its previously terminated instances will not show up in the kubelet summary stats any more for CRI runtimes such as containerd and cri-o. This keeps the behavior consistent with Docker integration, and fixes an issue that some container Prometheus metrics don't work when there are summary stats for multiple instances of the same pod. ([#77426](https://github.com/kubernetes/kubernetes/pull/77426), [@Random-Liu](https://github.com/Random-Liu)) + + +### Network + +- Ingress objects are now persisted in etcd using the networking.k8s.io/v1beta1 version ([#77139](https://github.com/kubernetes/kubernetes/pull/77139), [@cmluciano](https://github.com/cmluciano)) +- Transparent kube-proxy restarts when using IPVS are now allowed. ([#75283](https://github.com/kubernetes/kubernetes/pull/75283), [@lbernail](https://github.com/lbernail)) +- Packets considered INVALID by conntrack are now dropped. In particular, this fixes +a problem where spurious retransmits in a long-running TCP connection to a service +IP could result in the connection being closed with the error "Connection reset by +peer" ([#74840](https://github.com/kubernetes/kubernetes/pull/74840), [@anfernee](https://github.com/anfernee)) +- kube-proxy no longer automatically cleans up network rules created by running kube-proxy in other modes. If you are switching the kube-proxy mode (EG: iptables to IPVS), you will need to run `kube-proxy --cleanup`, or restart the worker node (recommended) before restarting kube-proxy. If you are not switching kube-proxy between different modes, this change should not require any action. ([#76109](https://github.com/kubernetes/kubernetes/pull/76109), [@vllry](https://github.com/vllry)) +- kube-proxy: HealthzBindAddress and MetricsBindAddress now support ipv6 addresses. ([#76320](https://github.com/kubernetes/kubernetes/pull/76320), [@JieJhih](https://github.com/JieJhih)) +- The userspace proxy now respects the IPTables proxy's minSyncInterval parameter. ([#71735](https://github.com/kubernetes/kubernetes/pull/71735), [@dcbw](https://github.com/dcbw)) + +- iptables proxier: now routes local traffic to LB IPs to service chain ([#77523](https://github.com/kubernetes/kubernetes/pull/77523), [@andrewsykim](https://github.com/andrewsykim)) +- IPVS: Disabled graceful termination for UDP traffic to solve issues with high number of UDP connections (DNS / syslog in particular) ([#77802](https://github.com/kubernetes/kubernetes/pull/77802), [@lbernail](https://github.com/lbernail)) +- Fixed a bug where kube-proxy returns error due to existing ipset rules using a different hash type. ([#77371](https://github.com/kubernetes/kubernetes/pull/77371), [@andrewsykim](https://github.com/andrewsykim)) +- Fixed spurious error messages about failing to clean up iptables rules when using iptables 1.8. ([#77303](https://github.com/kubernetes/kubernetes/pull/77303), [@danwinship](https://github.com/danwinship)) +- Increased log level to 2 for IPVS graceful termination ([#78395](https://github.com/kubernetes/kubernetes/pull/78395), [@andrewsykim](https://github.com/andrewsykim)) +- kube-proxy: os exit when CleanupAndExit is set to true ([#76732](https://github.com/kubernetes/kubernetes/pull/76732), [@JieJhih](https://github.com/JieJhih)) +- Kubernetes will now allow trailing dots in the externalName of Services of type ExternalName. ([#78385](https://github.com/kubernetes/kubernetes/pull/78385), [@thz](https://github.com/thz)) + +### Node + +- The dockershim container runtime now accepts the `docker` runtime handler from a RuntimeClass. ([#78323](https://github.com/kubernetes/kubernetes/pull/78323), [@tallclair](https://github.com/tallclair)) +- The init container can now get its own field value as environment variable values using downwardAPI support. ([#75109](https://github.com/kubernetes/kubernetes/pull/75109), [@yuchengwu](https://github.com/yuchengwu)) +- UpdateContainerResources is no longer recorded as a `container_status` operation. It now uses the label `update_container`. ([#75278](https://github.com/kubernetes/kubernetes/pull/75278), [@Nessex](https://github.com/Nessex)) +- kubelet: fix fail to close kubelet->API connections on heartbeat failure when bootstrapping or client certificate rotation is disabled ([#78016](https://github.com/kubernetes/kubernetes/pull/78016), [@gaorong](https://github.com/gaorong)) +- Set selinux label at plugin socket directory ([#73241](https://github.com/kubernetes/kubernetes/pull/73241), [@vikaschoudhary16](https://github.com/vikaschoudhary16)) +- Fixed detection of non-root image user ID.([#78261](https://github.com/kubernetes/kubernetes/pull/78261), [@tallclair](https://github.com/tallclair)) +- Signal handling is now initialized within hyperkube commands that require it, such as apiserver and kubelet. ([#76659](https://github.com/kubernetes/kubernetes/pull/76659), [@S-Chan](https://github.com/S-Chan)) +- The Kubelet now properly requests protobuf objects where they are supported from the apiserver, reducing load in large clusters. ([#75602](https://github.com/kubernetes/kubernetes/pull/75602), [@smarterclayton](https://github.com/smarterclayton)) + +### OpenStack + +- You can now define a kubeconfig file for the OpenStack cloud provider. ([#77415](https://github.com/kubernetes/kubernetes/pull/77415), [@Fedosin](https://github.com/Fedosin)) +- OpenStack user credentials can now be read from a secret instead of a local config file. ([#75062](https://github.com/kubernetes/kubernetes/pull/75062), [@Fedosin](https://github.com/Fedosin)) + +### Release + +- Removed hyperkube short aliases from source code because hyperkube docker image currently create these aliases. ([#76953](https://github.com/kubernetes/kubernetes/pull/76953), [@Rand01ph](https://github.com/Rand01ph)) + +### Scheduling + +- Tolerations with the same key and effect will be merged into one that has the value of the latest toleration for best effort pods. ([#75985](https://github.com/kubernetes/kubernetes/pull/75985), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- Achieved 2X performance improvement on both required and preferred PodAffinity. ([#76243](https://github.com/kubernetes/kubernetes/pull/76243), [@Huang-Wei](https://github.com/Huang-Wei)) +- Fixed a scheduler racing issue to ensure low priority pods are unschedulable on the node(s) where high priority pods have `NominatedNodeName` set to the node(s). ([#77990](https://github.com/kubernetes/kubernetes/pull/77990), [@Huang-Wei](https://github.com/Huang-Wei)) + +### Storage + +- Fixed issue with kubelet waiting on invalid devicepath on AWS ([#78595](https://github.com/kubernetes/kubernetes/pull/78595), [@gnufied](https://github.com/gnufied)) +- StorageOS volumes now show correct mount information (node and mount time) in the StorageOS administration CLI and UI. ([#78522](https://github.com/kubernetes/kubernetes/pull/78522), [@croomes](https://github.com/croomes)) +- Fixed issue in Portworx volume driver causing controller manager to crash. ([#76341](https://github.com/kubernetes/kubernetes/pull/76341), [@harsh-px](https://github.com/harsh-px)) +- For an empty regular file, `stat --printf %F` will now display `regular empty file` instead of `regular file`. ([#62159](https://github.com/kubernetes/kubernetes/pull/62159), [@dixudx](https://github.com/dixudx)) +- You can now have different operation names for different storage operations. This still prevents two operations on same volume from happening concurrently but if the operation changes, it resets the exponential backoff. +([#75213](https://github.com/kubernetes/kubernetes/pull/75213), [@gnufied](https://github.com/gnufied)) +- Reduced event spam for `AttachVolume` storage operation. ([#75986](https://github.com/kubernetes/kubernetes/pull/75986), [@mucahitkurt](https://github.com/mucahitkurt)) +- Until this release, the iscsi plugin was waiting 10 seconds for a path to appear in the device list. However this timeout is not enough, or is less than the default device discovery timeout in most systems, which prevents certain devices from being discovered. This timeout has been raised to 30 seconds, which should help to avoid mount issues due to device discovery. ([#78475](https://github.com/kubernetes/kubernetes/pull/78475), [@humblec](https://github.com/humblec)) +- Added a field to store CSI volume expansion secrets ([#77516](https://github.com/kubernetes/kubernetes/pull/77516), [@gnufied](https://github.com/gnufied)) +- Fixed a bug in block volume expansion. ([#77317](https://github.com/kubernetes/kubernetes/pull/77317), [@gnufied](https://github.com/gnufied)) +- Count PVCs that are unbound towards attach limit. ([#73863](https://github.com/kubernetes/kubernetes/pull/73863), [@gnufied](https://github.com/gnufied)) + +### VMware + +- SAML token delegation (required for Zones support in vSphere) is now supported ([#78876](https://github.com/kubernetes/kubernetes/pull/78876), [@dougm](https://github.com/dougm)) +- vSphere SAML token auth is now supported when using Zones ([#75515](https://github.com/kubernetes/kubernetes/pull/75515), [@dougm](https://github.com/dougm)) + +### Windows + +- Kubectl port-forward for Windows containers was added in v1.15. To use it, you’ll need to build a new pause image including WinCAT. ([#75479](https://github.com/kubernetes/kubernetes/pull/75479), [@benmoss](https://github.com/benmoss)) +- We’re working to simplify the Windows node join experience with better scripts and kubeadm. Scripts and doc updates are still in the works, but some of the needed improvements are included in 1.15. These include: + - Windows kube-proxy will wait for HNS network creation on start ([#78612](https://github.com/kubernetes/kubernetes/pull/78612), [@ksubrmnn](https://github.com/ksubrmnn)) + - kubeadm: implemented CRI detection for Windows worker nodes ([#78053](https://github.com/kubernetes/kubernetes/pull/78053), [@ksubrmnn](https://github.com/ksubrmnn)) +- Worked toward support for Windows Server version 1903, including adding Windows support for preserving the destination IP as the VIP when loadbalancing with DSR. ([#74825](https://github.com/kubernetes/kubernetes/pull/74825), [@ksubrmnn](https://github.com/ksubrmnn)) +- Bug fix: Windows Kubelet nodes will now correctly search the default location for Docker credentials (`%USERPROFILE%\.docker\config.json`) when pulling images from a private registry. (https://kubernetes.io/docs/concepts/containers/images/#configuring-nodes-to-authenticate-to-a-private-registry) ([#78528](https://github.com/kubernetes/kubernetes/pull/78528), [@bclau](https://github.com/bclau)) + + +## Dependencies + +### Changed + +- The default Go version was updated to 1.12.5. ([#78528](https://github.com/kubernetes/kubernetes/pull/78528)) +- cri-tools has been updated to v1.14.0. ([#75658](https://github.com/kubernetes/kubernetes/pull/75658)) +- Cluster Autoscaler has been updated to v1.15.0. ([#78866](https://github.com/kubernetes/kubernetes/pull/78866)) +- Kibana has been upgraded to v6.6.1. ([#71251](https://github.com/kubernetes/kubernetes/pull/71251)) +- CAdvisor has been updated to v0.33.2. ([#76291](https://github.com/kubernetes/kubernetes/pull/76291)) +- Fluentd-gcp-scaler has been upgraded to v0.5.2. ([#76762](https://github.com/kubernetes/kubernetes/pull/76762)) +- Fluentd in fluentd-elasticsearch has been upgraded to v1.4.2. ([#76854](https://github.com/kubernetes/kubernetes/pull/76854)) +- fluentd-elasticsearch has been updated to v2.5.2. ([#76854](https://github.com/kubernetes/kubernetes/pull/76854)) +- event-exporter has been updated to v0.2.5. ([#77815](https://github.com/kubernetes/kubernetes/pull/77815)) +- es-image has been updated to Elasticsearch 6.7.2. ([#77765](https://github.com/kubernetes/kubernetes/pull/77765)) +- metrics-server has been updated to v0.3.3. ([#77950](https://github.com/kubernetes/kubernetes/pull/77950)) +- ip-masq-agent has been updated to v2.4.1. ([#77844](https://github.com/kubernetes/kubernetes/pull/77844)) +- addon-manager has been updated to v9.0.1 ([#77282](https://github.com/kubernetes/kubernetes/pull/77282)) +- go-autorest has been updated to v11.1.2 ([#77070](https://github.com/kubernetes/kubernetes/pull/77070)) +- klog has been updated to 0.3.0 ([#76474](https://github.com/kubernetes/kubernetes/pull/76474)) +- k8s-dns-node-cache image has been updated to v1.15.1 ([#76640](https://github.com/kubernetes/kubernetes/pull/76640), [@george-angel](https://github.com/george-angel)) + +### Unchanged + +- Default etcd server version remains unchanged at v3.3.10. The etcd client version was updated to v3.3.10. ([#71615](https://github.com/kubernetes/kubernetes/pull/71615), [#70168](https://github.com/kubernetes/kubernetes/pull/70168), [#76917](https://github.com/kubernetes/kubernetes/pull/76917)) +- The list of validated docker versions remains unchanged. + - The current list is 1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09. ([#72823](https://github.com/kubernetes/kubernetes/pull/72823), [#72831](https://github.com/kubernetes/kubernetes/pull/72831)) +- CNI remains unchanged at v0.7.5. ([#75455](https://github.com/kubernetes/kubernetes/pull/75455)) +- CSI remains unchanged at to v1.1.0. ([#75391](https://github.com/kubernetes/kubernetes/pull/75391)) +- The dashboard add-on remains unchanged at v1.10.1. ([#72495](https://github.com/kubernetes/kubernetes/pull/72495)) +- kube-dns is unchanged at v1.14.13 as of Kubernetes 1.12. ([#68900](https://github.com/kubernetes/kubernetes/pull/68900)) +- Influxdb is unchanged at v1.3.3 as of Kubernetes 1.10. ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +- Grafana is unchanged at v4.4.3 as of Kubernetes 1.10. ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +- The fluent-plugin-kubernetes_metadata_filter plugin in fluentd-elasticsearch is unchanged at v2.1.6. ([#71180](https://github.com/kubernetes/kubernetes/pull/71180)) +- fluentd-gcp is unchanged at v3.2.0 as of Kubernetes 1.13. ([#70954](https://github.com/kubernetes/kubernetes/pull/70954)) +- OIDC authentication is unchanged at coreos/go-oidc v2 as of Kubernetes 1.10. ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) +- Calico is unchanged at v3.3.1 as of Kubernetes 1.13. ([#70932](https://github.com/kubernetes/kubernetes/pull/70932)) +- crictl on GCE was updated to v1.14.0. ([#75658](https://github.com/kubernetes/kubernetes/pull/75658)) +- CoreDNS is unchanged at v1.3.1 as of Kubernetes 1.14. ([#78691](https://github.com/kubernetes/kubernetes/pull/78691)) +- GLBC remains unchanged at v1.2.3 as of Kubernetes 1.12. ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) +- Ingress-gce remains unchanged at v1.2.3 as of Kubernetes 1.12. ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) diff --git a/releases/release-1.15/release_team.md b/releases/release-1.15/release_team.md index d497b8ca984..f132e0e7800 100644 --- a/releases/release-1.15/release_team.md +++ b/releases/release-1.15/release_team.md @@ -1,18 +1,18 @@ -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -| ------ | ------ | ------ | -| Lead | Claire Laurence ([@claurence](https://github.com/claurence)) | Lachlan Evenson ([@lachie83](https://github.com/lachie83)), Niko Penteridis ([@nikopen](https://github.com/nikopen)), Tim Pepper ([@tpepper](https://github.com/tpepper)) | -| Enhancements | Kendrick Coleman ([@kacole2](https://github.com/kacole2) / Slack: `@kacole2`) | Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables) / Slack: `@mrbobbytables`), Craig Peters ([@craiglpeters](https://github.com/craiglpeters) / Slack: `@craiglpeters`) | -| CI Signal | Jorge Alarcon ([@alejandrox1](https://github.com/alejandrox1) /Slack: `@alejandrox1`) | Jim Angel ([@jimangel](https://github.com/jimangel) / Slack: `@jimangel`), Silvia Moura Pina ([@smourapina](https://github.com/smourapina) / Slack: `@smourapina`), Alena Varkockova ([@alenkacz](https://github.com/alenkacz) / Slack: `@alenkacz`) | -| Test Infra | Dhawal Yogesh Bhanushali ([@imkin](https://github.com/imkin) / Slack: `@dbhanushali`) | Katharine Berry ([@Katharine](https://github.com/Katharine) / Slack: `@Katharine`), Tara Gu ([@taragu](http://github.com/taragu) / Slack: `@taragu`), Maria Ntalla ([@mariantalla](https://github.com/mariantalla) / Slack: @maria)| -| Bug Triage | Nicholas Lane ([@soggiest](https://github.com/soggiest) / Slack: `@soggy`) | Timmy Carr ([@timmycarr](https://github.com/timmycarr) / Slack: `@timmycarr`), Dave Strebel ([@dstrebel](https://github.com/dstrebel) / Slack: `@strebel`), Marko Mudrinic ([@xmudrii](https://github.com/xmudrii) / Slack: `@xmudrii`), Abubakr-Sadik Nii Nai Davis ([@ttousai](https://github.com/ttousai) / Slack: `@ttousai`) | -| Branch Manager | Cheryl Fong ([@bubblemelon](https://github.com/bubblemelon) / Slack: `@cherylfong`) | Nikhil Manchanda ([@slicknik](https://github.com/slicknik) / Slack: `@slicknik`), Vivek Taparia ([@vivektaparia](https://github.com/vivektaparia) / Slack: `@vivektaparia`), Christian Jantz ([@chrisz100](https://github.com/chrisz100) / Slack `@chrisz`), Yang Li ([@idealhack](https://github.com/idealhack) / Slack `@idealhack`) | -| Docs | Barnabas Makonda ([@MAKOSCAFEE](https://github.com/MAKOSCAFEE) / Slack: `@barnie`) | Tunde Oladipupo ([@simplytunde](https://github.com/simplytunde) / Slack: `@simplytunde`), Damini Satya Kammakomati ([@daminisatya](https://github.com/daminisatya) / Slack: `@Damini satya`), Christian Hernandez ([@christianh814](https://github.com/christianh814) / Slack: `@christianh814`) | -| Release Notes | Lindsey Tulloch ([@onyiny-ang](https://github.com/onyiny-ang) / Slack: `@onyiny-ang`) | Jeff Sica ([@jeefy](https://github.com/jeefy) / Slack: `@jeefy`), Nick Chase ([@NickChase](https://github.com/NickChase) / Slack: `@nickchase`), Sascha Grunert ([saschagrunert](https://github.com/saschagrunert) / Slack: `@sgrunert`), Alok Patra ([alokpatra](https://github.com/alokpatra) / `@Alok Patra`)| -| Communications | Jorge Castro ([@castrojo](https://github.com/castrojo)) | Taylor Dolezal ([@onlydole](https://github.com/onlydole)), David McKay ([@rawkode](https://github.com/rawkode))| - -Review the [Patch Releases page](/releases/patch-releases.md) for up-to-date contact information and the schedule for 1.15 patch releases. - - -**Emeritus Adviser:** Josh Berkus ([@jberkus](https://github.com/jberkus)) - -(Emeritus Adviser assists in shadow selection, and mentors shadows through Release Team participation, development, and graduation.) +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +| ------ | ------ | ------ | +| Lead | Claire Laurence ([@claurence](https://github.com/claurence)) | Lachlan Evenson ([@lachie83](https://github.com/lachie83)), Niko Penteridis ([@nikopen](https://github.com/nikopen)), Tim Pepper ([@tpepper](https://github.com/tpepper)) | +| Enhancements | Kendrick Coleman ([@kacole2](https://github.com/kacole2) / Slack: `@kacole2`) | Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables) / Slack: `@mrbobbytables`), Craig Peters ([@craiglpeters](https://github.com/craiglpeters) / Slack: `@craiglpeters`) | +| CI Signal | Jorge Alarcon ([@alejandrox1](https://github.com/alejandrox1) /Slack: `@alejandrox1`) | Jim Angel ([@jimangel](https://github.com/jimangel) / Slack: `@jimangel`), Silvia Moura Pina ([@smourapina](https://github.com/smourapina) / Slack: `@smourapina`), Alena Varkockova ([@alenkacz](https://github.com/alenkacz) / Slack: `@alenkacz`) | +| Test Infra | Dhawal Yogesh Bhanushali ([@imkin](https://github.com/imkin) / Slack: `@dbhanushali`) | Katharine Berry ([@Katharine](https://github.com/Katharine) / Slack: `@Katharine`), Tara Gu ([@taragu](http://github.com/taragu) / Slack: `@taragu`), Maria Ntalla ([@mariantalla](https://github.com/mariantalla) / Slack: @maria)| +| Bug Triage | Nicholas Lane ([@soggiest](https://github.com/soggiest) / Slack: `@soggy`) | Timmy Carr ([@timmycarr](https://github.com/timmycarr) / Slack: `@timmycarr`), Dave Strebel ([@dstrebel](https://github.com/dstrebel) / Slack: `@strebel`), Marko Mudrinic ([@xmudrii](https://github.com/xmudrii) / Slack: `@xmudrii`), Abubakr-Sadik Nii Nai Davis ([@ttousai](https://github.com/ttousai) / Slack: `@ttousai`) | +| Branch Manager | Cheryl Fong ([@bubblemelon](https://github.com/bubblemelon) / Slack: `@cherylfong`) | Nikhil Manchanda ([@slicknik](https://github.com/slicknik) / Slack: `@slicknik`), Vivek Taparia ([@vivektaparia](https://github.com/vivektaparia) / Slack: `@vivektaparia`), Christian Jantz ([@chrisz100](https://github.com/chrisz100) / Slack `@chrisz`), Yang Li ([@idealhack](https://github.com/idealhack) / Slack `@idealhack`) | +| Docs | Barnabas Makonda ([@MAKOSCAFEE](https://github.com/MAKOSCAFEE) / Slack: `@barnie`) | Tunde Oladipupo ([@simplytunde](https://github.com/simplytunde) / Slack: `@simplytunde`), Damini Satya Kammakomati ([@daminisatya](https://github.com/daminisatya) / Slack: `@Damini satya`), Christian Hernandez ([@christianh814](https://github.com/christianh814) / Slack: `@christianh814`) | +| Release Notes | Lindsey Tulloch ([@onyiny-ang](https://github.com/onyiny-ang) / Slack: `@onyiny-ang`) | Jeff Sica ([@jeefy](https://github.com/jeefy) / Slack: `@jeefy`), Nick Chase ([@NickChase](https://github.com/NickChase) / Slack: `@nickchase`), Sascha Grunert ([saschagrunert](https://github.com/saschagrunert) / Slack: `@sgrunert`), Alok Patra ([alokpatra](https://github.com/alokpatra) / `@Alok Patra`)| +| Communications | Jorge Castro ([@castrojo](https://github.com/castrojo)) | Taylor Dolezal ([@onlydole](https://github.com/onlydole)), David McKay ([@rawkode](https://github.com/rawkode))| + +Review the [Patch Releases page](/releases/patch-releases.md) for up-to-date contact information and the schedule for 1.15 patch releases. + + +**Emeritus Adviser:** Josh Berkus ([@jberkus](https://github.com/jberkus)) + +(Emeritus Adviser assists in shadow selection, and mentors shadows through Release Team participation, development, and graduation.) diff --git a/releases/release-1.16/README.md b/releases/release-1.16/README.md index 35b09b4c42d..92d33fb3f71 100644 --- a/releases/release-1.16/README.md +++ b/releases/release-1.16/README.md @@ -1,199 +1,199 @@ -# Kubernetes 1.16: Unlimited Breadsticks For All - -![1.16 Unlimited Breadsticks For All](116_unlimited_breadsticks_for_all.png) - -The Kubernetes 1.16 release crest was loosely inspired by the Apollo 16 mission crest. It represents the hard work of the release-team and the community alike and is an ode to the challenges and fun times we shared as a team throughout the release cycle. Many thanks to [Ronan Flynn-Curran](https://github.com/flynnduism) of Microsoft for creating this magnificent piece. - -#### Links -* [This document](https://git.k8s.io/sig-release/releases/release-1.16/README.md) -* [Release Team](https://git.k8s.io/sig-release/releases/release-1.16/release_team.md) -* [Meeting Minutes](http://bit.ly/k8s116-releasemtg) -* [Kubernetes Release Calendar](https://bit.ly/k8s-release-cal) -* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail - -#### Tracking docs - -* [Enhancements Tracking Sheet](http://bit.ly/k8s116-enhancement-tracking) -* [Bug Triage Tracking Sheet](http://bit.ly/k8s116-bugtriage) -* [CI Signal Report](http://bit.ly/k8s116-cisignal) -* [Retrospective Document](http://bit.ly/k8s116-retro) -* [kubernetes/kubernetes v1.16 milestone](https://github.com/kubernetes/kubernetes/milestone/45) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## tl;dr -The 1.16 release cycle is proposed as follows: - -- **Monday, July 01** - Release Cycle Begins -- **Tuesday, July 30, EOD PST** - Enhancements Freeze -- **Thursday, August 29, EOD PST** - Code Freeze -- **Monday, September 9** - Docs must be completed and reviewed -- **Wednesday, September 18** - Kubernetes 1.16.0 Released - -## What will we do differently this release? -* We have dissolved the test-infra role from the release team. The responsibilities of this role have been reallocated amongst other roles on the release team. This is the tracking [issue](https://github.com/kubernetes/sig-release/issues/631) -* The itemized list of code changes for the release will be migrated from the release changelog `CHANGELOG-x.y.md` (where `x` and `y` are major and minor versions of Kubernetes, respectively) to [https://relnotes.k8s.io](https://relnotes.k8s.io) - -## What are we continuing from the previous release -* All Enhancements must have a KEP that is in `implementable` state by Enhancements Freeze. If the enhancement does not have a KEP in `implementable` state by Enhancements Freeze it will be removed from the milestone and will require an [exception](/releases/EXCEPTIONS.md). -* No code slush -* The Emeritus Adviser will be responsible for advising the Release Team Lead and Lead Shadows, ensuring shadow selection happens, and that release shadows are getting the most out of their participation in the release process. - -## Timeline -| **What** | **Who** | **Jul** | **Aug** | **Sep** | **WEEK** | **CI SIGNAL** | -| --- | --- | --- | --- | --- | --- | --- | -| Start of Release Cycle | Lead | Mon 1 | | | week 1 | [master-blocking] | -| Schedule finalized | Lead | Fri 5 | | | | | -| Team finalized | Lead | Fri 12 | | | week 2 | | -| Start Enhancements Tracking | Enhancements Lead | Tue 16 | | | week 3 | | -| 1.16.0-alpha.1 released | Branch Manager | Tue 16 | | | | | -| Start Release Notes Draft | Release Notes Lead | Tue 23 | | | week 4 | | -| **Begin [Enhancements Freeze][Enhancements Freeze** (EOD PST) | Enhancements Lead | Tue 30 | | | week 5 | [master-blocking], [master-upgrade] | -| 1.16.0-alpha.2 released | Branch Manager | Tue 30 | | | | | -| 1.16.0-alpha.3 released | Branch Manager | | Tue 6 | | week 6 | | -| release-1.12 jobs removed | Branch Manager | | Tue 13 | | week 7 | | -| release-1.16 branch created | Branch Manager | | Tue 13 | | | | -| 1.16.0-beta.0 released | Branch Manager | | Tue 13 | | | | -| release-1.16 jobs created| Branch Manager | | Tue 13 | | | | -| **Begin [Burndown]** (MWF meetings) | Lead | | Mon 19 | | week 8 | [1.16-blocking], [master-blocking], [master-upgrade] | -| **Call for [Exceptions][Exception]** | Lead | | Mon 19 | | | | -| Brace Yourselves, Code Freeze is Coming | Comms / Bug Triage| | Mon 19 | | | | -| 1.16.0-beta.1 released | Branch Manager | | Tue 20 | | | | -| Docs deadline - Open placeholder PRs | Docs Lead | | Fri 23 | | | | -| **Begin [Code Freeze]** (EOD PST) | Branch Manager | | Thu 29 | | week 9 | | -| Burndown Meetings daily | Lead | | | Tues 3 | week 10 | | -| Docs deadline - PRs ready for review | Docs Lead | | | Tues 3 | | | -| 1.16.0-beta.2 released | Branch Manager | | | Wed 4 | | | -| Docs complete - All PRs reviewed and ready to merge | Docs Lead | | | Mon 9 | week 11 | | -| **Begin [Code Thaw]** (EOD PST) | Branch Manager | | | Tue 10 | | [1.16-blocking] | -| 1.16.0-rc.1 released | Branch Manager | | | Tue 10 | | | -| **Cherry Pick Deadline** (EOD PST) | Branch Manager | | | Thu 12 | | | -| 1.16.0-rc.2 released | Branch Manager | | | Fri 13 | | | -| **v1.16.0 released** | Branch Manager | | | Wed 18 | week 12 | | -| Release retrospective | Community | | | Thu 19 | | | | | - -## Phases - -### Enhancements Freeze -All enhancements wishing to be included in 1.16 must have -* A KEP in an implementable state - * Including Testing Plans - * Including Graduation Criteria -* An open issue in the 1.16 Milestone - -If your enhancement does not meet these requirements, it will be removed from the milestone and will require an [exception](/releases/EXCEPTIONS.md). - -### Burndown -One week prior to Code Freeze, we increase the cadence of release team meetings -to begin tracking work more closely. We call this Burndown, because at this -point we have a list of outstanding issues and PRs, and are actively working to -burn that list down. SIG representatives will be asked to attend if their SIG has -specific outstanding issues that are blocking the release. - -Please subscribe to the [Kubernetes Release Calendar][kubernetes-release-calendar] to see meeting events. Burndown meetings -may conflict with other community meetings. Please prioritize this meeting if -a member of the release team asks you to attend. - -The intent of these meetings is to: - -* Focus on fixing bugs, eliminating test flakes and general release - stabilization. -* Ensure docs and release notes are written and accurate. -* Identify all enhancement going into the release, and make sure alpha, beta, GA - is marked in enhancements repo. -* Provide a [one-stop view of release progress](http://bit.ly/k8s116-releasemtg) - including relevant release metrics. - -### Code Freeze - -All enhancements going into the release must be code-complete, **including -tests**, and have docs PRs open by ***Thursday, August 29, 2019***. - -The docs PRs don't have to be ready to merge, but it should be clear what the -topic will be and who is responsible for writing it. This person will become the -primary contact for the documentation lead. It’s incredibly important that -documentation work gets completed as quickly as possible. - -After this point, only release-blocking issues and PRs will be allowed in the -milestone. - -### Code Thaw - -One week prior to release, it is expected that all but a handful of outstanding -PRs for kubernetes v1.16.0 have landed in the release-1.16 branch. Assuming the -release team agrees, Code Freeze will be lifted, and we enter Code Thaw. - -From this point forward, any PRs intended for v1.16 must be cherry picked to the -release-1.16 branch. - -### Exceptions - -Starting at [Enhancements Freeze] the release team will solicit and rule on -[exception requests] for enhancements and test work that is unlikely to be done -by Code Freeze. The exception approval is the responsibility of the SIG or SIGs -labeled in the pull request. The release team may intervene or deny the request -only if it poses a risk to release quality, or could negatively impact the overall -timeline. Changes introduced at this point should be well-tested, -well-understood, limited in architectural scope, and low risk. All of those -factors should be considered in the approval process. Enhancements on an -feature branch with documentation, test cases, and passing CI are more likely to -be accepted. - -### Pruning - -Enhancements that are partially implemented and/or lack sufficient tests may be -considered for pruning beginning after [Code Freeze], unless they've been -granted an [Exception]. - -The release team will work with SIGs and enhancements owners to evaluate each -case, but for example, pruning could include actions such as: - -* Disabling the use of a new API or field -* Switching the default value of a flag or field -* Moving a new API or field behind an Alpha Enhancements gate -* Reverting commits or deleting code - -This should occur before 1.16.0-beta.1 is cut so we have time to gather signal -on whether the system is stable in this state. These are considered drastic -measures, so the release team will strive to coordinate at-risk work with SIGs -before this time. The goal is to make code freeze, and overall project -transparency, enforceable despite the lack of a consistently used feature branch -process. - -### Docs - -If an enhancement needs documentation, enter "Yes" in the enhancement tracking -spreadsheet and add a link to the documentation PR. You can open documentation -PRs in the [kubernetes/website] repository. If you have questions, the release -documentation lead, or representatives from SIG-Docs will be happy to assist -you. - -For documentation PRs: - -* Open PRs against the dev-1.16 branch based off of the 1.16 release PR. The - documentation workflow uses feature branches for release documentation, rather -than basing from master. **Be sure to open your PR against the release branch**. -* Add your PR to the 1.16 Release milestone. - -[Enhancements Freeze]: #enhancements-freeze -[Burndown]: #burndown -[Code Freeze]: #code-freeze -[Code Thaw]: #code-thaw -[Exception]: #exceptions - -[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes -[kubernetes/enhancements]: https://github.com/kubernetes/enhancements -[kubernetes/website]: https://github.com/kubernetes/website - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-upgrade]: https://testgrid.k8s.io/sig-release-master-upgrade#Summary -[1.16-blocking]:https://testgrid.k8s.io/sig-release-1.16-blocking#Summary - -[exception requests]: https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md +# Kubernetes 1.16: Unlimited Breadsticks For All + +![1.16 Unlimited Breadsticks For All](116_unlimited_breadsticks_for_all.png) + +The Kubernetes 1.16 release crest was loosely inspired by the Apollo 16 mission crest. It represents the hard work of the release-team and the community alike and is an ode to the challenges and fun times we shared as a team throughout the release cycle. Many thanks to [Ronan Flynn-Curran](https://github.com/flynnduism) of Microsoft for creating this magnificent piece. + +#### Links +* [This document](https://git.k8s.io/sig-release/releases/release-1.16/README.md) +* [Release Team](https://git.k8s.io/sig-release/releases/release-1.16/release_team.md) +* [Meeting Minutes](http://bit.ly/k8s116-releasemtg) +* [Kubernetes Release Calendar](https://bit.ly/k8s-release-cal) +* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail + +#### Tracking docs + +* [Enhancements Tracking Sheet](http://bit.ly/k8s116-enhancement-tracking) +* [Bug Triage Tracking Sheet](http://bit.ly/k8s116-bugtriage) +* [CI Signal Report](http://bit.ly/k8s116-cisignal) +* [Retrospective Document](http://bit.ly/k8s116-retro) +* [kubernetes/kubernetes v1.16 milestone](https://github.com/kubernetes/kubernetes/milestone/45) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## tl;dr +The 1.16 release cycle is proposed as follows: + +- **Monday, July 01** - Release Cycle Begins +- **Tuesday, July 30, EOD PST** - Enhancements Freeze +- **Thursday, August 29, EOD PST** - Code Freeze +- **Monday, September 9** - Docs must be completed and reviewed +- **Wednesday, September 18** - Kubernetes 1.16.0 Released + +## What will we do differently this release? +* We have dissolved the test-infra role from the release team. The responsibilities of this role have been reallocated amongst other roles on the release team. This is the tracking [issue](https://github.com/kubernetes/sig-release/issues/631) +* The itemized list of code changes for the release will be migrated from the release changelog `CHANGELOG-x.y.md` (where `x` and `y` are major and minor versions of Kubernetes, respectively) to [https://relnotes.k8s.io](https://relnotes.k8s.io) + +## What are we continuing from the previous release +* All Enhancements must have a KEP that is in `implementable` state by Enhancements Freeze. If the enhancement does not have a KEP in `implementable` state by Enhancements Freeze it will be removed from the milestone and will require an [exception](/releases/EXCEPTIONS.md). +* No code slush +* The Emeritus Adviser will be responsible for advising the Release Team Lead and Lead Shadows, ensuring shadow selection happens, and that release shadows are getting the most out of their participation in the release process. + +## Timeline +| **What** | **Who** | **Jul** | **Aug** | **Sep** | **WEEK** | **CI SIGNAL** | +| --- | --- | --- | --- | --- | --- | --- | +| Start of Release Cycle | Lead | Mon 1 | | | week 1 | [master-blocking] | +| Schedule finalized | Lead | Fri 5 | | | | | +| Team finalized | Lead | Fri 12 | | | week 2 | | +| Start Enhancements Tracking | Enhancements Lead | Tue 16 | | | week 3 | | +| 1.16.0-alpha.1 released | Branch Manager | Tue 16 | | | | | +| Start Release Notes Draft | Release Notes Lead | Tue 23 | | | week 4 | | +| **Begin [Enhancements Freeze][Enhancements Freeze** (EOD PST) | Enhancements Lead | Tue 30 | | | week 5 | [master-blocking], [master-upgrade] | +| 1.16.0-alpha.2 released | Branch Manager | Tue 30 | | | | | +| 1.16.0-alpha.3 released | Branch Manager | | Tue 6 | | week 6 | | +| release-1.12 jobs removed | Branch Manager | | Tue 13 | | week 7 | | +| release-1.16 branch created | Branch Manager | | Tue 13 | | | | +| 1.16.0-beta.0 released | Branch Manager | | Tue 13 | | | | +| release-1.16 jobs created| Branch Manager | | Tue 13 | | | | +| **Begin [Burndown]** (MWF meetings) | Lead | | Mon 19 | | week 8 | [1.16-blocking], [master-blocking], [master-upgrade] | +| **Call for [Exceptions][Exception]** | Lead | | Mon 19 | | | | +| Brace Yourselves, Code Freeze is Coming | Comms / Bug Triage| | Mon 19 | | | | +| 1.16.0-beta.1 released | Branch Manager | | Tue 20 | | | | +| Docs deadline - Open placeholder PRs | Docs Lead | | Fri 23 | | | | +| **Begin [Code Freeze]** (EOD PST) | Branch Manager | | Thu 29 | | week 9 | | +| Burndown Meetings daily | Lead | | | Tues 3 | week 10 | | +| Docs deadline - PRs ready for review | Docs Lead | | | Tues 3 | | | +| 1.16.0-beta.2 released | Branch Manager | | | Wed 4 | | | +| Docs complete - All PRs reviewed and ready to merge | Docs Lead | | | Mon 9 | week 11 | | +| **Begin [Code Thaw]** (EOD PST) | Branch Manager | | | Tue 10 | | [1.16-blocking] | +| 1.16.0-rc.1 released | Branch Manager | | | Tue 10 | | | +| **Cherry Pick Deadline** (EOD PST) | Branch Manager | | | Thu 12 | | | +| 1.16.0-rc.2 released | Branch Manager | | | Fri 13 | | | +| **v1.16.0 released** | Branch Manager | | | Wed 18 | week 12 | | +| Release retrospective | Community | | | Thu 19 | | | | | + +## Phases + +### Enhancements Freeze +All enhancements wishing to be included in 1.16 must have +* A KEP in an implementable state + * Including Testing Plans + * Including Graduation Criteria +* An open issue in the 1.16 Milestone + +If your enhancement does not meet these requirements, it will be removed from the milestone and will require an [exception](/releases/EXCEPTIONS.md). + +### Burndown +One week prior to Code Freeze, we increase the cadence of release team meetings +to begin tracking work more closely. We call this Burndown, because at this +point we have a list of outstanding issues and PRs, and are actively working to +burn that list down. SIG representatives will be asked to attend if their SIG has +specific outstanding issues that are blocking the release. + +Please subscribe to the [Kubernetes Release Calendar][kubernetes-release-calendar] to see meeting events. Burndown meetings +may conflict with other community meetings. Please prioritize this meeting if +a member of the release team asks you to attend. + +The intent of these meetings is to: + +* Focus on fixing bugs, eliminating test flakes and general release + stabilization. +* Ensure docs and release notes are written and accurate. +* Identify all enhancement going into the release, and make sure alpha, beta, GA + is marked in enhancements repo. +* Provide a [one-stop view of release progress](http://bit.ly/k8s116-releasemtg) + including relevant release metrics. + +### Code Freeze + +All enhancements going into the release must be code-complete, **including +tests**, and have docs PRs open by ***Thursday, August 29, 2019***. + +The docs PRs don't have to be ready to merge, but it should be clear what the +topic will be and who is responsible for writing it. This person will become the +primary contact for the documentation lead. It’s incredibly important that +documentation work gets completed as quickly as possible. + +After this point, only release-blocking issues and PRs will be allowed in the +milestone. + +### Code Thaw + +One week prior to release, it is expected that all but a handful of outstanding +PRs for kubernetes v1.16.0 have landed in the release-1.16 branch. Assuming the +release team agrees, Code Freeze will be lifted, and we enter Code Thaw. + +From this point forward, any PRs intended for v1.16 must be cherry picked to the +release-1.16 branch. + +### Exceptions + +Starting at [Enhancements Freeze] the release team will solicit and rule on +[exception requests] for enhancements and test work that is unlikely to be done +by Code Freeze. The exception approval is the responsibility of the SIG or SIGs +labeled in the pull request. The release team may intervene or deny the request +only if it poses a risk to release quality, or could negatively impact the overall +timeline. Changes introduced at this point should be well-tested, +well-understood, limited in architectural scope, and low risk. All of those +factors should be considered in the approval process. Enhancements on an +feature branch with documentation, test cases, and passing CI are more likely to +be accepted. + +### Pruning + +Enhancements that are partially implemented and/or lack sufficient tests may be +considered for pruning beginning after [Code Freeze], unless they've been +granted an [Exception]. + +The release team will work with SIGs and enhancements owners to evaluate each +case, but for example, pruning could include actions such as: + +* Disabling the use of a new API or field +* Switching the default value of a flag or field +* Moving a new API or field behind an Alpha Enhancements gate +* Reverting commits or deleting code + +This should occur before 1.16.0-beta.1 is cut so we have time to gather signal +on whether the system is stable in this state. These are considered drastic +measures, so the release team will strive to coordinate at-risk work with SIGs +before this time. The goal is to make code freeze, and overall project +transparency, enforceable despite the lack of a consistently used feature branch +process. + +### Docs + +If an enhancement needs documentation, enter "Yes" in the enhancement tracking +spreadsheet and add a link to the documentation PR. You can open documentation +PRs in the [kubernetes/website] repository. If you have questions, the release +documentation lead, or representatives from SIG-Docs will be happy to assist +you. + +For documentation PRs: + +* Open PRs against the dev-1.16 branch based off of the 1.16 release PR. The + documentation workflow uses feature branches for release documentation, rather +than basing from master. **Be sure to open your PR against the release branch**. +* Add your PR to the 1.16 Release milestone. + +[Enhancements Freeze]: #enhancements-freeze +[Burndown]: #burndown +[Code Freeze]: #code-freeze +[Code Thaw]: #code-thaw +[Exception]: #exceptions + +[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes +[kubernetes/enhancements]: https://github.com/kubernetes/enhancements +[kubernetes/website]: https://github.com/kubernetes/website + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-upgrade]: https://testgrid.k8s.io/sig-release-master-upgrade#Summary +[1.16-blocking]:https://testgrid.k8s.io/sig-release-1.16-blocking#Summary + +[exception requests]: https://github.com/kubernetes/sig-release/blob/master/releases/EXCEPTIONS.md diff --git a/releases/release-1.16/exceptions.yaml b/releases/release-1.16/exceptions.yaml index d78f008883d..95593d42b88 100644 --- a/releases/release-1.16/exceptions.yaml +++ b/releases/release-1.16/exceptions.yaml @@ -1,41 +1,41 @@ -# Exceptions to Enhancement Freeze requested in 1.16 -# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release -# Release Team Lead: Lachlan Evenson ([@lachie83](https://github.com/lachie83)) - -- name: Add status code and content check for HTTP Probe - issue: 1186 - date_requested: 2019-07-31 - date_reviewed: 2019-07-31 - thread: https://groups.google.com/forum/#!topic/kubernetes-sig-release/D1roq-x_oh4 - pull_requests: - - - status: Denied - -- name: Building Kubernetes Without In-Tree Cloud Providers - issue: 1179 - date_requested: 2019-07-31 - date_reviewed: 2019-08-01 - thread: https://groups.google.com/forum/#!topic/kubernetes-sig-release/oE9TBpgiabU - pull_requests: - - https://github.com/kubernetes/enhancements/pull/1180 - - https://github.com/kubernetes/kubernetes/pull/80353 - status: Approved - -- name: Kubernetes Metrics Overhaul - issue: 1206 - date_requested: 2019-08-07 - date_reviewed: 2019-08-09 - thread: https://groups.google.com/forum/#!topic/kubernetes-sig-release/0FT43tb7O-A - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/80376 - status: Approved - -# Exceptions to Code Freeze requested in 1.16 -- name: RuntimeClass Scheduling - issue: 894 - date_requested: 2019-08-30 - date_reviewed: 2019-08-30 - thread: https://groups.google.com/forum/#!topic/kubernetes-sig-release/aidsW6L7ryU - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/81915 - status: Approved +# Exceptions to Enhancement Freeze requested in 1.16 +# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release +# Release Team Lead: Lachlan Evenson ([@lachie83](https://github.com/lachie83)) + +- name: Add status code and content check for HTTP Probe + issue: 1186 + date_requested: 2019-07-31 + date_reviewed: 2019-07-31 + thread: https://groups.google.com/forum/#!topic/kubernetes-sig-release/D1roq-x_oh4 + pull_requests: + - + status: Denied + +- name: Building Kubernetes Without In-Tree Cloud Providers + issue: 1179 + date_requested: 2019-07-31 + date_reviewed: 2019-08-01 + thread: https://groups.google.com/forum/#!topic/kubernetes-sig-release/oE9TBpgiabU + pull_requests: + - https://github.com/kubernetes/enhancements/pull/1180 + - https://github.com/kubernetes/kubernetes/pull/80353 + status: Approved + +- name: Kubernetes Metrics Overhaul + issue: 1206 + date_requested: 2019-08-07 + date_reviewed: 2019-08-09 + thread: https://groups.google.com/forum/#!topic/kubernetes-sig-release/0FT43tb7O-A + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/80376 + status: Approved + +# Exceptions to Code Freeze requested in 1.16 +- name: RuntimeClass Scheduling + issue: 894 + date_requested: 2019-08-30 + date_reviewed: 2019-08-30 + thread: https://groups.google.com/forum/#!topic/kubernetes-sig-release/aidsW6L7ryU + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/81915 + status: Approved diff --git a/releases/release-1.16/release-notes-draft.md b/releases/release-1.16/release-notes-draft.md index b3f565afc56..5f8470246b2 100644 --- a/releases/release-1.16/release-notes-draft.md +++ b/releases/release-1.16/release-notes-draft.md @@ -1,671 +1,671 @@ -# Kubernetes v1.16.0 Release Notes - -A complete changelog for the release notes is now hosted in a customizable format at [relnotes.k8s.io](https://relnotes.k8s.io/?releaseVersions=1.16.0). Check it out and please give us your feedback! - -## What’s New (Major Themes) - -We’re pleased to announce the delivery of Kubernetes 1.16, our third release of 2019! Kubernetes 1.16 consists of 31 enhancements: 8 enhancements moving to stable, 8 enhancements in beta, and 15 enhancements in alpha. - -The main themes of this release are: - -- **Custom resources:** CRDs are in widespread use as a way to extend Kubernetes to persist and serve new resource types, and have been available in beta since the 1.7 release. The 1.16 release marks the graduation of CRDs to general availability (GA). -- **Admission webhooks:** Admission webhooks are in widespread use as a Kubernetes extensibility mechanism and have been available in beta since the 1.9 release. The 1.16 release marks the graduation of admission webhooks to general availability (GA). -- **Overhauled metrics**: Kubernetes has previously made extensive use of a global metrics registry to register metrics to be exposed. By implementing a metrics registry, metrics are registered in more transparent means. Previously, Kubernetes metrics have been excluded from any kind of stability requirements. -- **Volume Extension**: There are quite a few enhancements in this release that pertain to volumes and volume modifications. Volume resizing support in CSI specs is moving to beta which allows for any CSI spec volume plugin to be resizable. - -### Additional Notable Feature Updates - -- [Topology Manager](https://github.com/kubernetes/enhancements/issues/693), a new Kubelet component, aims to co-ordinate resource assignment decisions to provide optimized resource allocations. -- [IPv4/IPv6 dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack) enables the allocation of both IPv4 and IPv6 addresses to Pods and Services. -- [API Server Network Proxy](https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190226-network-proxy.md) going alpha in 1.16. -- [Extensions](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cloud-provider/20190422-cloud-controller-manager-migration.md) for Cloud Controller Manager Migration. -- Continued deprecation of extensions/v1beta1, apps/v1beta1, and apps/v1beta2 APIs; these extensions will be retired in 1.16! - -## Known Issues - -- The etcd and KMS plugin health checks are not exposed in the new `livez` and `readyz` endpoints. This will be fixed in 1.16.1. -- Systems running `iptables` 1.8.0 or newer should start it in legacy mode. Please note that this affects all versions of Kubernetes and not only v1.16.0. For more detailed information about the issue and how to apply a workaround, please refer to the official documentation - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -#### Cluster Lifecycle - -- Container images tar files for `amd64` will now contain the architecture in the RepoTags manifest.json section. - If you are using docker manifests there are not visible changes. ([#80266](https://github.com/kubernetes/kubernetes/pull/80266), [@javier-b-perez](https://github.com/javier-b-perez)) -- kubeadm now deletes the bootstrap-kubelet.conf file after TLS bootstrap - User relying on bootstrap-kubelet.conf should switch to kubelet.conf that contains node credentials ([#80676](https://github.com/kubernetes/kubernetes/pull/80676), [@fabriziopandini](https://github.com/fabriziopandini)) -- Node labels `beta.kubernetes.io/metadata-proxy-ready`, `beta.kubernetes.io/metadata-proxy-ready` and `beta.kubernetes.io/kube-proxy-ds-ready` are no longer added on new nodes. - - ip-mask-agent addon starts to use the label `node.kubernetes.io/masq-agent-ds-ready` instead of `beta.kubernetes.io/masq-agent-ds-ready` as its node selector. - - kube-proxy addon starts to use the label `node.kubernetes.io/kube-proxy-ds-ready` instead of `beta.kubernetes.io/kube-proxy-ds-ready` as its node selector. - - metadata-proxy addon starts to use the label `cloud.google.com/metadata-proxy-ready` instead of `beta.kubernetes.io/metadata-proxy-ready` as its node selector. - -#### Storage - -- When PodInfoOnMount is enabled for a CSI driver, the new csi.storage.k8s.io/ephemeral parameter in the volume context allows a driver's NodePublishVolume implementation to determine on a case-by-case basis whether the volume is ephemeral or a normal persistent volume ([#79983](https://github.com/kubernetes/kubernetes/pull/79983), [@pohly](https://github.com/pohly)) -- Add CSI Migration Shim for VerifyVolumesAreAttached and BulkVolumeVerify ([#80443](https://github.com/kubernetes/kubernetes/pull/80443), [@davidz627](https://github.com/davidz627)) -- Promotes VolumePVCDataSource (Cloning) feature to beta for 1.16 release ([#81792](https://github.com/kubernetes/kubernetes/pull/81792), [@j-griffith](https://github.com/j-griffith)) -- Integrated volume limits for in-tree and CSI volumes into one scheduler predicate. ([#77595](https://github.com/kubernetes/kubernetes/pull/77595), [@bertinatto](https://github.com/bertinatto)) - -## Deprecations and Removals - -- API - - - The following APIs are no longer served by default: - - - All resources under `apps/v1beta1` and `apps/v1beta2` - use `apps/v1` instead - - `daemonsets`, `deployments`, `replicasets` resources under `extensions/v1beta1` - use `apps/v1` instead - - `networkpolicies` resources under `extensions/v1beta1` - use `networking.k8s.io/v1` instead - - `podsecuritypolicies` resources under `extensions/v1beta1` - use `policy/v1beta1` instead - - Serving these resources can be temporarily re-enabled using the `--runtime-config` apiserver flag. - - - `apps/v1beta1=true` - - `apps/v1beta2=true` - - `extensions/v1beta1/daemonsets=true,extensions/v1beta1/deployments=true,extensions/v1beta1/replicasets=true,extensions/v1beta1/networkpolicies=true,extensions/v1beta1/podsecuritypolicies=true` - - The ability to serve these resources will be completely removed in v1.18. ([#70672](https://github.com/kubernetes/kubernetes/pull/70672), [@liggitt](https://github.com/liggitt)) - - - Ingress resources will no longer be served from `extensions/v1beta1` in v1.20. Migrate use to the `networking.k8s.io/v1beta1` API, available since v1.14. Existing persisted data can be retrieved via the `networking.k8s.io/v1beta1` API. - - PriorityClass resources will no longer be served from `scheduling.k8s.io/v1beta1` and `scheduling.k8s.io/v1alpha1` in v1.17. Migrate to the `scheduling.k8s.io/v1` API, available since v1.14. Existing persisted data can be retrieved via the `scheduling.k8s.io/v1` API. - - The `export` query parameter for list API calls, deprecated since v1.14, will be removed in v1.18. - - The `series.state` field in the events.k8s.io/v1beta1 Event API is deprecated and will be removed in v1.18 ([#75987](https://github.com/kubernetes/kubernetes/pull/75987), [@yastij](https://github.com/yastij)) - - The `apiextensions.k8s.io/v1beta1` version of `CustomResourceDefinition` is deprecated and will no longer be served in v1.19. Use `apiextensions.k8s.io/v1` instead. ([#79604](https://github.com/kubernetes/kubernetes/pull/79604), [@liggitt](https://github.com/liggitt)) - - The `admissionregistration.k8s.io/v1beta1` versions of `MutatingWebhookConfiguration` and `ValidatingWebhookConfiguration` are deprecated and will no longer be served in v1.19. Use `admissionregistration.k8s.io/v1` instead. ([#79549](https://github.com/kubernetes/kubernetes/pull/79549), [@liggitt](https://github.com/liggitt)) - - The alpha `metadata.initializers` field, deprecated in 1.13, has been removed. ([#79504](https://github.com/kubernetes/kubernetes/pull/79504), [@yue9944882](https://github.com/yue9944882)) - - The deprecated node condition type `OutOfDisk` has been removed. Use the `DiskPressure` condition instead. ([#72420](https://github.com/kubernetes/kubernetes/pull/72420), [@Pingan2017](https://github.com/Pingan2017)) - - The `metadata.selfLink` field is deprecated in individual and list objects. It will no longer be returned starting in v1.20, and the field will be removed entirely in v1.21. ([#80978](https://github.com/kubernetes/kubernetes/pull/80978), [@wojtek-t](https://github.com/wojtek-t)) - - The deprecated cloud providers `ovirt`, `cloudstack` and `photon` have been removed ([#72178](https://github.com/kubernetes/kubernetes/pull/72178), [@dims](https://github.com/dims)) - - The `Cinder` and `ScaleIO` volume providers have been deprecated and will be removed in a future release. ([#80099](https://github.com/kubernetes/kubernetes/pull/80099), [@dims](https://github.com/dims)) - - The GA `PodPriority` feature gate is now on by default and cannot be disabled. The feature gate will be removed in v1.18. ([#79262](https://github.com/kubernetes/kubernetes/pull/79262), [@draveness](https://github.com/draveness)) - - Aggregated discovery requests can now timeout. Aggregated API servers must complete discovery calls within 5 seconds (other requests can take longer). Use the feature gate `EnableAggregatedDiscoveryTimeout=false` to temporarily revert behavior to the previous 30 second timeout if required (the temporary `EnableAggregatedDiscoveryTimeout` feature gate will be removed in v1.17). ([#82146](https://github.com/kubernetes/kubernetes/pull/82146), [@deads2k](https://github.com/deads2k)) - - the `scheduler.alpha.kubernetes.io/critical-pod` annotation is removed. Pod priority (`spec.priorityClassName`) should be used instead to mark pods as critical. ([#80342](https://github.com/kubernetes/kubernetes/pull/80342), [@draveness](https://github.com/draveness)) - - the NormalizeScore plugin set is removed from scheduler framework config API. Use ScorePlugin only. ([#80930](https://github.com/kubernetes/kubernetes/pull/80930), [@liu-cong](https://github.com/liu-cong)) - -- Features: - - - The following features are now GA, and the associated feature gates are deprecated and will be removed in v1.17: - - `GCERegionalPersistentDisk` (since 1.15.0) - - `CustomResourcePublishOpenAPI` - - `CustomResourceSubresources` - - `CustomResourceValidation` - - `CustomResourceWebhookConversion` - - The feature flags `HugePages`, `VolumeScheduling`, `CustomPodDNS` and `PodReadinessGates` have been removed ([#79307](https://github.com/kubernetes/kubernetes/pull/79307), [@draveness](https://github.com/draveness)) - -- hyperkube - - - the `--make-symlinks` flag, deprecated in v1.14, has been removed. ([#80017](https://github.com/kubernetes/kubernetes/pull/80017), [@Pothulapati](https://github.com/Pothulapati)) - -- kube-apiserver - - - the `--basic-auth-file` flag and authentication mode is deprecated and will be removed in a future release. It is not recommended for production environments. ([#81152](https://github.com/kubernetes/kubernetes/pull/81152), [@tedyu](https://github.com/tedyu)) - - the `--cloud-provider-gce-lb-src-cidrs` flag has been deprecated. This flag will be removed once the GCE Cloud Provider is removed from kube-apiserver. ([#81094](https://github.com/kubernetes/kubernetes/pull/81094), [@andrewsykim](https://github.com/andrewsykim)) - - the `--enable-logs-handler` flag and log-serving functionality is deprecated since v1.15, and scheduled to be removed in v1.19. ([#77611](https://github.com/kubernetes/kubernetes/pull/77611), [@rohitsardesai83](https://github.com/rohitsardesai83)) - - Deprecate the default service IP CIDR. The previous default was `10.0.0.0/24` which will be removed in 6 months/2 releases. Cluster admins must specify their own desired value, by using `--service-cluster-ip-range` on kube-apiserver. ([#81668](https://github.com/kubernetes/kubernetes/pull/81668), [@darshanime](https://github.com/darshanime)) - -- kube-proxy - - - the `--resource-container` flag has been removed from kube-proxy, and specifying it will now cause an error. The behavior is now as if you specified `--resource-container=""`. If you previously specified a non-empty `--resource-container`, you can no longer do so as of kubernetes 1.16. ([#78294](https://github.com/kubernetes/kubernetes/pull/78294), [@vllry](https://github.com/vllry)) - -- kube-scheduler - - - Migrate scheduler to use v1beta1 Event API. any tool targeting scheduler events needs to use v1beta1 Event API ([#78447](https://github.com/kubernetes/kubernetes/pull/78447), [@yastij](https://github.com/yastij)) - -- kubeadm - - - The CoreDNS Deployment now checks readiness via the `ready` plugin. - - The `proxy` plugin has been deprecated. The `forward` plugin is to be used instead. - - `kubernetes` plugin removes the `resyncperiod` option. - - The `upstream` option is deprecated and ignored if included. - ([#82127](https://github.com/kubernetes/kubernetes/pull/82127), [@rajansandeep](https://github.com/rajansandeep)) - -- kubectl - - - `kubectl convert`, deprecated since v1.14, will be removed in v1.17. - - The `--export` flag for the `kubectl get` command, deprecated since v1.14, will be removed in v1.18. - - `kubectl cp` no longer supports copying symbolic links from containers; to support this use case, see `kubectl exec --help` for examples using `tar` directly ([#82143](https://github.com/kubernetes/kubernetes/pull/82143), [@soltysh](https://github.com/soltysh)) - - Removed deprecated flag `--include-uninitialized`. ([#80337](https://github.com/kubernetes/kubernetes/pull/80337), [@draveness](https://github.com/draveness)) - -- kubelet - - - the `--containerized` flag was deprecated in 1.14 and has been removed ([#80043](https://github.com/kubernetes/kubernetes/pull/80043), [@dims](https://github.com/dims)) - - the `beta.kubernetes.io/os` and `beta.kubernetes.io/arch` labels, deprecated since v1.14, are targeted for removal in v1.18. - - cAdvisor json endpoints have been deprecated since 1.15. ([#78504](https://github.com/kubernetes/kubernetes/pull/78504), [@dashpole](https://github.com/dashpole)) - - removed the ability to set `kubernetes.io`- or `k8s.io`-prefixed labels via `--node-labels`, other than the [specifically allowed labels/prefixes](https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/0000-20170814-bounding-self-labeling-kubelets.md#proposal). ([#79305](https://github.com/kubernetes/kubernetes/pull/79305), [@paivagustavo](https://github.com/paivagustavo)) - -- client-go - - Remove `DirectCodecFactory` (replaced with `serializer.WithoutConversionCodecFactory`), `DirectEncoder` (replaced with `runtime.WithVersionEncoder`) and `DirectDecoder` (replaced with `runtime.WithoutVersionDecoder`). ([#79263](https://github.com/kubernetes/kubernetes/pull/79263), [@draveness](https://github.com/draveness)) - -## Metrics Changes - -### Added metrics - -- Added metrics `aggregator_openapi_v2_regeneration_count`, `aggregator_openapi_v2_regeneration_gauge` and `apiextension_openapi_v2_regeneration_count` counting the triggering APIService and CRDs and the reason (add, update, delete) when kube-apiserver regenerates the OpenAPI spec. ([#81786](https://github.com/kubernetes/kubernetes/pull/81786), [@sttts](https://github.com/sttts)) -- Added metrics `authentication_attempts` that can be used to understand the attempts of authentication. ([#81509](https://github.com/kubernetes/kubernetes/pull/81509), [@RainbowMango](https://github.com/RainbowMango)) -- Add a new counter metrics `apiserver_admission_webhook_rejection_count` with details about the causing for a webhook rejection. ([#81399](https://github.com/kubernetes/kubernetes/pull/81399), [@roycaihw](https://github.com/roycaihw)) -- NFS Drivers are now enabled to collect metrics, StatFS metrics provider is used to collect the metrics. (@brahmaroutu) ([#75805](https://github.com/kubernetes/kubernetes/pull/75805), [@brahmaroutu](https://github.com/brahmaroutu)) -- Add `container_sockets`, `container_threads`, and `container_threads_max` metrics ([#81972](https://github.com/kubernetes/kubernetes/pull/81972), [@dashpole](https://github.com/dashpole)) -- Add `container_state` label to `running_container_count` kubelet metrics, to get count of containers based on their state(running/exited/created/unknown) ([#81573](https://github.com/kubernetes/kubernetes/pull/81573), [@irajdeep](https://github.com/irajdeep)) -- Added metric `apiserver_watch_events_total` that can be used to understand the number of watch events in the system. ([#78732](https://github.com/kubernetes/kubernetes/pull/78732), [@mborsz](https://github.com/mborsz)) -- Added metric `apiserver_watch_events_sizes` that can be used to estimate sizes of watch events in the system. ([#80477](https://github.com/kubernetes/kubernetes/pull/80477), [@mborsz](https://github.com/mborsz)) -- Added a new Prometheus counter metric `sync_proxy_rules_iptables_restore_failures_total` for kube-proxy iptables-restore failures (both ipvs and iptables modes) - ([#81210](https://github.com/kubernetes/kubernetes/pull/81210), [@figo](https://github.com/figo)) -- kubelet now exports an `kubelet_evictions` metric that counts the number of pod evictions carried out by the kubelet to reclaim resources ([#81377](https://github.com/kubernetes/kubernetes/pull/81377), [@sjenning](https://github.com/sjenning)) - -### Removed metrics - -- Removed cadvisor metric labels `pod_name` and `container_name` to match instrumentation guidelines. Any Prometheus queries that match `pod_name` and `container_name` labels (e.g. cadvisor or kubelet probe metrics) must be updated to use `pod` and `container` instead. ([#80376](https://github.com/kubernetes/kubernetes/pull/80376), [@ehashman](https://github.com/ehashman)) - -### Depreciated/changed metrics - -- kube-controller-manager and cloud-controller-manager metrics are now marked as with the ALPHA stability level. ([#81624](https://github.com/kubernetes/kubernetes/pull/81624), [@logicalhan](https://github.com/logicalhan)) -- kube-proxy metrics are now marked as with the ALPHA stability level. ([#81626](https://github.com/kubernetes/kubernetes/pull/81626), [@logicalhan](https://github.com/logicalhan)) -- kube-apiserver metrics are now marked as with the ALPHA stability level. ([#81531](https://github.com/kubernetes/kubernetes/pull/81531), [@logicalhan](https://github.com/logicalhan)) -- kubelet metrics for /metrics and /metrics/probes are now marked as with the ALPHA stability level. ([#81534](https://github.com/kubernetes/kubernetes/pull/81534), [@logicalhan](https://github.com/logicalhan)) -- Scheduler metrics are now marked as with the ALPHA stability level. ([#81576](https://github.com/kubernetes/kubernetes/pull/81576), [@logicalhan](https://github.com/logicalhan)) -- The `rejected` label in `apiserver_admission_webhook_admission_duration_seconds` metrics now properly indicates if the request was rejected. ([#81399](https://github.com/kubernetes/kubernetes/pull/81399), [@roycaihw](https://github.com/roycaihw)) -- Fixed a bug in the CSI metrics that does not return not supported error when a CSI driver does not support metrics. ([#79851](https://github.com/kubernetes/kubernetes/pull/79851), [@jparklab](https://github.com/jparklab)) -- Fix disk stats in LXD using ZFS storage pool and CRI-O missing network metris bug ([#81972](https://github.com/kubernetes/kubernetes/pull/81972), [@dashpole](https://github.com/dashpole)) - -## Notable Features - -### Beta - -- Promote WatchBookmark feature to beta and enable it by default. - With WatchBookmark feature, clients are able to request watch events with BOOKMARK type. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. ([#79786](https://github.com/kubernetes/kubernetes/pull/79786), [@wojtek-t](https://github.com/wojtek-t)) -- The server-side apply feature is now beta ([#81956](https://github.com/kubernetes/kubernetes/pull/81956), [@apelisse](https://github.com/apelisse)) -- Server-side apply will now use the openapi provided in the CRD validation field to help figure out how to correctly merge objects and update ownership. ([#77354](https://github.com/kubernetes/kubernetes/pull/77354), [@jennybuckley](https://github.com/jennybuckley)) -- The `CustomResourceDefaulting` feature is promoted to beta and enabled by default. Defaults may be specified in structural schemas via the `apiextensions.k8s.io/v1` API. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#specifying-a-structural-schema for details. ([#81872](https://github.com/kubernetes/kubernetes/pull/81872), [@sttts](https://github.com/sttts)) -- Finalizer Protection for Service LoadBalancers is now in beta (enabled by default). This feature ensures the Service resource is not fully deleted until the correlating load balancer resources are deleted. ([#81691](https://github.com/kubernetes/kubernetes/pull/81691), [@MrHohn](https://github.com/MrHohn)) -- Graduating Windows GMSA support from alpha to beta ([#82110](https://github.com/kubernetes/kubernetes/pull/82110), [@wk8](https://github.com/wk8)) - -### Alpha - -- Introduce a new admission controller for RuntimeClass. Initially, RuntimeClass will be used to apply the pod overhead associated with a given RuntimeClass to the Pod `spec` if a corresponding RuntimeClassName is specified. PodOverhead is an alpha feature as of Kubernetes 1.16. ([#78484](https://github.com/kubernetes/kubernetes/pull/78484), [@egernst](https://github.com/egernst)) -- Introduction of the pod overhead feature to the scheduler. This functionality is alpha-level as of - Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.gate. ([#78319](https://github.com/kubernetes/kubernetes/pull/78319), [@egernst](https://github.com/egernst)) -- Ephemeral containers have been added in alpha. These temporary containers can be added to running pods for purposes such as debugging, similar to how `kubectl exec` runs a process in an existing container. Also like `kubectl exec`, no resources are reserved for ephemeral containers and they are not restarted when they exit. Note that container namespace targeting is not yet implemented, so [process namespace sharing](https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) must be enabled to view process from other containers in the pod. ([#59484](https://github.com/kubernetes/kubernetes/pull/59484), [@verb](https://github.com/verb)) -- Pod spread constraints have been added in alpha. You can use these constraints to control how Pods are spread across the cluster among failure-domains. ([#77327](https://github.com/kubernetes/kubernetes/pull/77327), [#77760](https://github.com/kubernetes/kubernetes/pull/77760), [#77828](https://github.com/kubernetes/kubernetes/pull/77828), [#79062](https://github.com/kubernetes/kubernetes/pull/79062), [#80011](https://github.com/kubernetes/kubernetes/pull/80011), [#81068](https://github.com/kubernetes/kubernetes/pull/81068), [@Huang-Wei](https://github.com/Huang-Wei)) - -### CLI Improvements - -- the new flag `--endpoint-updates-batch-period` in kube-controller-manager can be used to reduce the number of endpoints updates generated by pod changes. ([#80509](https://github.com/kubernetes/kubernetes/pull/80509), [@mborsz](https://github.com/mborsz)) -- the kubectl `--all-namespaces` flag is now honored by `kubectl wait` ([#81468](https://github.com/kubernetes/kubernetes/pull/81468), [@ashutoshgngwr](https://github.com/ashutoshgngwr)) -- `kubectl get -w` now takes an `--output-watch-events` flag to indicate the event type (ADDED, MODIFIED, DELETED) ([#72416](https://github.com/kubernetes/kubernetes/pull/72416), [@liggitt](https://github.com/liggitt)) -- Adds Endpoint Slice support for kubectl when discovery API group is enabled. ([#81795](https://github.com/kubernetes/kubernetes/pull/81795), [@robscott](https://github.com/robscott)) - -### Misc - -- Add `--shutdown-delay-duration` to kube-apiserver in order to delay a graceful shutdown. `/healthz` will keep returning success during this time and requests are normally served, but `/readyz` will return failure immediately. This delay can be used to allow the SDN to update iptables on all nodes and stop sending traffic. ([#74416](https://github.com/kubernetes/kubernetes/pull/74416), [@sttts](https://github.com/sttts)) - Kubeadm now seamlessly migrates the CoreDNS Configuration when upgrading CoreDNS. ([#78033](https://github.com/kubernetes/kubernetes/pull/78033), [@rajansandeep](https://github.com/rajansandeep)) -- Add Endpoint Slice Controller for managing new EndpointSlice resource, disabled by default. ([#81048](https://github.com/kubernetes/kubernetes/pull/81048), [@robscott](https://github.com/robscott)) -- Adds `\livez` for liveness health checking for kube-apiserver. Using the parameter `--maximum-startup-sequence-duration` will allow the liveness endpoint to defer boot-sequence failures for the specified duration period. ([#81969](https://github.com/kubernetes/kubernetes/pull/81969), [@logicalhan](https://github.com/logicalhan)) -- Adds EndpointSlice integration to kube-proxy, can be enabled with EndpointSlice feature gate. ([#81430](https://github.com/kubernetes/kubernetes/pull/81430), [@robscott](https://github.com/robscott)) -- Add status condition to namespace resource ([#73405](https://github.com/kubernetes/kubernetes/pull/73405), [@wozniakjan](https://github.com/wozniakjan)) -- Enhance Azure cloud provider code to support both AAD and ADFS authentication. ([#80841](https://github.com/kubernetes/kubernetes/pull/80841), [@rjaini](https://github.com/rjaini)) -- kubeadm: implement support for concurrent add/remove of stacked etcd members ([#79677](https://github.com/kubernetes/kubernetes/pull/79677), [@neolit123](https://github.com/neolit123)) -- kubeadm: support any Linux kernel version newer than 3.10 ([#81623](https://github.com/kubernetes/kubernetes/pull/81623), [@neolit123](https://github.com/neolit123)) -- Volume expansion is enabled in the default GCE storageclass ([#78672](https://github.com/kubernetes/kubernetes/pull/78672), [@msau42](https://github.com/msau42)) -- kubeadm ClusterConfiguration now supports featureGates: IPv6DualStack: true ([#80145](https://github.com/kubernetes/kubernetes/pull/80145), [@Arvinderpal](https://github.com/Arvinderpal)) -- In order to enable dual-stack support within kubeadm and kubernetes components, as part of the init config file, the user should set feature-gate `IPv6DualStack=true` in the ClusterConfiguration. Additionally, for each worker node, the user should set the feature-gate for kubelet using either `nodeRegistration.kubeletExtraArgs` or `KUBELET_EXTRA_ARGS`. ([#80531](https://github.com/kubernetes/kubernetes/pull/80531), [@Arvinderpal](https://github.com/Arvinderpal)) -- Add possibility to configure controller manager to use IPv6 dual stack: - use `--cluster-cidr="<cidr1>,<cidr2>"`. - Notes: - 1. Only the first two CIDRs are used (soft limits for Alpha, might be lifted later on). - 2. Only the "RangeAllocator" (default) is allowed as a value for `--cidr-allocator-type`. Cloud allocators are not compatible with IPv6 dual stack - ([#73977](https://github.com/kubernetes/kubernetes/pull/73977), [@khenidak](https://github.com/khenidak)) -- Add scheduling support for RuntimeClasses. RuntimeClasses can now specify nodeSelector constraints & tolerations, which are merged into the PodSpec for pods using that RuntimeClass. ([#80825](https://github.com/kubernetes/kubernetes/pull/80825), [@tallclair](https://github.com/tallclair)) -- When specifying `--(kube|system)-reserved-cgroup`, with `--cgroup-driver=systemd`, it is now possible to use the fully qualified cgroupfs name (i.e. `/test-cgroup.slice`). ([#78793](https://github.com/kubernetes/kubernetes/pull/78793), [@mattjmcnaughton](https://github.com/mattjmcnaughton)) -- Adds support for vSphere volumes on Windows ([#80911](https://github.com/kubernetes/kubernetes/pull/80911), [@gab-satchi](https://github.com/gab-satchi)) - -## API Changes - -- The `MutatingWebhookConfiguration` and `ValidatingWebhookConfiguration` APIs have been promoted to `admissionregistration.k8s.io/v1`: - - `failurePolicy` default changed from `Ignore` to `Fail` for v1 - - `matchPolicy` default changed from `Exact` to `Equivalent` for v1 - - `timeout` default changed from `30s` to `10s` for v1 - - `sideEffects` default value is removed, and the field made required, and only `None` and `NoneOnDryRun` are permitted for v1 - - `admissionReviewVersions` default value is removed and the field made required for v1 (supported versions for AdmissionReview are `v1` and `v1beta1`) - - The `name` field for specified webhooks must be unique for `MutatingWebhookConfiguration` and `ValidatingWebhookConfiguration` objects created via `admissionregistration.k8s.io/v1` -- The `AdmissionReview` API sent to and received from admission webhooks has been promoted to `admission.k8s.io/v1`. Webhooks can specify a preference for receiving `v1` AdmissionReview objects with `admissionReviewVersions: ["v1","v1beta1"]`, and must respond with an API object in the same `apiVersion` they are sent. When webhooks use `admission.k8s.io/v1`, the following additional validation is performed on their responses: - - `response.patch` and `response.patchType` are not permitted from validating admission webhooks - - `apiVersion: "admission.k8s.io/v1"` is required - - `kind: "AdmissionReview"` is required - - `response.uid: "<value of request.uid>"` is required - - `response.patchType: "JSONPatch"` is required (if `response.patch` is set) ([#80231](https://github.com/kubernetes/kubernetes/pull/80231), [@liggitt](https://github.com/liggitt)) -- The `CustomResourceDefinition` API type is promoted to `apiextensions.k8s.io/v1` with the following changes: - - Use of the new `default` feature in validation schemas is limited to v1 - - `spec.scope` is no longer defaulted to `Namespaced` and must be explicitly specified - - `spec.version` is removed in v1; use `spec.versions` instead - - `spec.validation` is removed in v1; use `spec.versions[*].schema` instead - - `spec.subresources` is removed in v1; use `spec.versions[*].subresources` instead - - `spec.additionalPrinterColumns` is removed in v1; use `spec.versions[*].additionalPrinterColumns` instead - - `spec.conversion.webhookClientConfig` is moved to `spec.conversion.webhook.clientConfig` in v1 - - `spec.conversion.conversionReviewVersions` is moved to `spec.conversion.webhook.conversionReviewVersions` in v1 - - `spec.versions[*].schema.openAPIV3Schema` is now required when creating v1 CustomResourceDefinitions - - `spec.preserveUnknownFields: true` is disallowed when creating v1 CustomResourceDefinitions; it must be specified within schema definitions as `x-kubernetes-preserve-unknown-fields: true` - - In `additionalPrinterColumns` items, the `JSONPath` field was renamed to `jsonPath` in v1 (fixes https://github.com/kubernetes/kubernetes/issues/66531) - The `apiextensions.k8s.io/v1beta1` version of `CustomResourceDefinition` is deprecated and will no longer be served in v1.19. ([#79604](https://github.com/kubernetes/kubernetes/pull/79604), [@liggitt](https://github.com/liggitt)) -- The `ConversionReview` API sent to and received from custom resource CustomResourceDefinition conversion webhooks has been promoted to `apiextensions.k8s.io/v1`. CustomResourceDefinition conversion webhooks can now indicate they support receiving and responding with `ConversionReview` API objects in the `apiextensions.k8s.io/v1` version by including `v1` in the `conversionReviewVersions` list in their CustomResourceDefinition. Conversion webhooks must respond with a ConversionReview object in the same apiVersion they receive. `apiextensions.k8s.io/v1` `ConversionReview` responses must specify a `response.uid` that matches the `request.uid` of the object they were sent. ([#81476](https://github.com/kubernetes/kubernetes/pull/81476), [@liggitt](https://github.com/liggitt)) -- Add scheduling support for RuntimeClasses. RuntimeClasses can now specify nodeSelector constraints & tolerations, which are merged into the PodSpec for pods using that RuntimeClass. ([#80825](https://github.com/kubernetes/kubernetes/pull/80825), [@tallclair](https://github.com/tallclair)) -- Kubelet should now more reliably report the same primary node IP even if the set of node IPs reported by the CloudProvider changes. ([#79391](https://github.com/kubernetes/kubernetes/pull/79391), [@danwinship](https://github.com/danwinship)) -- Omit nil or empty field when calculating container hash value to avoid hash changed. For a new field with a non-nil default value in the container spec, the hash would still get changed. ([#57741](https://github.com/kubernetes/kubernetes/pull/57741), [@dixudx](https://github.com/dixudx)) -- Property `conditions` in `apiextensions.v1beta1.CustomResourceDefinitionStatus` and `apiextensions.v1.CustomResourceDefinitionStatus` is now optional instead of required. ([#64996](https://github.com/kubernetes/kubernetes/pull/64996), [@roycaihw](https://github.com/roycaihw)) -- When the status of a CustomResourceDefinition condition changes, its corresponding `lastTransitionTime` is now updated. ([#69655](https://github.com/kubernetes/kubernetes/pull/69655), [@CaoShuFeng](https://github.com/CaoShuFeng)) - -## Other notable changes - -### API Machinery - -- Remove `GetReference()` and `GetPartialReference()` function from `pkg/api/ref`, as the same function exists also in `staging/src/k8s.io/client-go/tools/ref` ([#80361](https://github.com/kubernetes/kubernetes/pull/80361), [@wojtek-t](https://github.com/wojtek-t)) -- Verify that CRD default values in OpenAPI specs are pruned, with the exceptions of values under `metadata`. ([#78829](https://github.com/kubernetes/kubernetes/pull/78829), [@sttts](https://github.com/sttts)) -- Fixes a bug that when there is a "connection refused" error, the reflector's ListAndWatch func will return directly but what expected is that sleep 1 second and rewatch since the specified resourceVersion. - ([#81634](https://github.com/kubernetes/kubernetes/pull/81634), [@likakuli](https://github.com/likakuli)) -- Resolves an issue serving aggregated APIs backed by services that respond to requests to `/` with non-2xx HTTP responses ([#79895](https://github.com/kubernetes/kubernetes/pull/79895), [@deads2k](https://github.com/deads2k)) -- The CRD handler now properly re-creates stale CR storage to reflect CRD update. ([#79114](https://github.com/kubernetes/kubernetes/pull/79114), [@roycaihw](https://github.com/roycaihw)) -- Fix CVE-2019-11247: API server allows access to custom resources via wrong scope ([#80750](https://github.com/kubernetes/kubernetes/pull/80750), [@sttts](https://github.com/sttts)) -- Fixed a bug with the openAPI definition for `io.k8s.apimachinery.pkg.runtime.RawExtension`, which previously required a field `raw` to be specified ([#80773](https://github.com/kubernetes/kubernetes/pull/80773), [@jennybuckley](https://github.com/jennybuckley)) -- Property `conditions` in `apiextensions.v1beta1.CustomResourceDefinitionStatus` and `apiextensions.v1.CustomResourceDefinitionStatus` is now optional instead of required. ([#64996](https://github.com/kubernetes/kubernetes/pull/64996), [@roycaihw](https://github.com/roycaihw)) -- Resolves a transient 404 response to custom resource requests during server startup ([#81244](https://github.com/kubernetes/kubernetes/pull/81244), [@liggitt](https://github.com/liggitt)) -- OpenAPI now advertises correctly supported patch types for custom resources ([#81515](https://github.com/kubernetes/kubernetes/pull/81515), [@liggitt](https://github.com/liggitt)) -- When the status of a CRD Condition changes, it's corresponding `LastTransitionTime` is now updated. ([#69655](https://github.com/kubernetes/kubernetes/pull/69655), [@CaoShuFeng](https://github.com/CaoShuFeng)) -- Add `metadata.generation=1` to old CustomResources. ([#82005](https://github.com/kubernetes/kubernetes/pull/82005), [@sttts](https://github.com/sttts)) -- Fix a bug in the apiserver that could cause a valid update request to be rejected with a precondition check failure. ([#82303](https://github.com/kubernetes/kubernetes/pull/82303), [@roycaihw](https://github.com/roycaihw)) -- Fixes regression in logging spurious stack traces when proxied connections are closed by the backend ([#82588](https://github.com/kubernetes/kubernetes/pull/82588), [@liggitt](https://github.com/liggitt)) -- RateLimiter add a context-aware method, fix client-go request goruntine backlog in async timeout scene. ([#79375](https://github.com/kubernetes/kubernetes/pull/79375), [@answer1991](https://github.com/answer1991)) -- Add a `Patch` method to `ScaleInterface` ([#80699](https://github.com/kubernetes/kubernetes/pull/80699), [@knight42](https://github.com/knight42)) -- CRDs under k8s.io and kubernetes.io must have the `api-approved.kubernetes.io` set to either `unapproved.*` or a link to the pull request approving the schema. See https://github.com/kubernetes/enhancements/pull/1111 for more details. ([#79992](https://github.com/kubernetes/kubernetes/pull/79992), [@deads2k](https://github.com/deads2k)) -- KMS Providers will install a healthz check for the status of kms-plugin in kube-apiservers' encryption config. ([#78540](https://github.com/kubernetes/kubernetes/pull/78540), [@immutableT](https://github.com/immutableT)) -- Improves validation errors for custom resources ([#81212](https://github.com/kubernetes/kubernetes/pull/81212), [@liggitt](https://github.com/liggitt)) -- Populate object name for admission attributes when CREATE ([#53185](https://github.com/kubernetes/kubernetes/pull/53185), [@dixudx](https://github.com/dixudx)) -- Add Overhead field to the PodSpec and RuntimeClass types as part of the Pod Overhead KEP ([#76968](https://github.com/kubernetes/kubernetes/pull/76968), [@egernst](https://github.com/egernst)) - -### Apps - -- Fix a bug that pods not be deleted from unmatched nodes by daemon controller ([#78974](https://github.com/kubernetes/kubernetes/pull/78974), [@DaiHao](https://github.com/DaiHao)) -- Fix a bug that causes DaemonSet rolling update hang when there exist failed pods. ([#78170](https://github.com/kubernetes/kubernetes/pull/78170), [@DaiHao](https://github.com/DaiHao)) - -### Auth - -- Service account tokens now include the JWT Key ID field in their header. ([#78502](https://github.com/kubernetes/kubernetes/pull/78502), [@ahmedtd](https://github.com/ahmedtd)) -- The nbf (not before) claim, if present in ID token, is now enforced. ([#81413](https://github.com/kubernetes/kubernetes/pull/81413), [@anderseknert](https://github.com/anderseknert)) - -### CLI - -- Fix CVE-2019-11249: Incomplete fixes for CVE-2019-1002101 and CVE-2019-11246, kubectl cp potential directory traversal ([#80436](https://github.com/kubernetes/kubernetes/pull/80436), [@M00nF1sh](https://github.com/M00nF1sh)) -- Fix the bash completion error with override flags. ([#80802](https://github.com/kubernetes/kubernetes/pull/80802), [@dtaniwaki](https://github.com/dtaniwaki)) -- Fix a bug in server printer that could cause kube-apiserver to panic. ([#79349](https://github.com/kubernetes/kubernetes/pull/79349), [@roycaihw](https://github.com/roycaihw)) -- Fix invalid "time stamp is the future" error when kubectl cp-ing a file ([#73982](https://github.com/kubernetes/kubernetes/pull/73982), [@tanshanshan](https://github.com/tanshanshan)) -- Fix a bug where `kubectl set config` hangs and uses 100% CPU on some invalid property names ([#79000](https://github.com/kubernetes/kubernetes/pull/79000), [@pswica](https://github.com/pswica)) -- Fix output of `kubectl get --watch-only` when watching a single resource ([#79345](https://github.com/kubernetes/kubernetes/pull/79345), [@liggitt](https://github.com/liggitt)) -- Make kubectl get `--ignore-not-found` continue processing when encountering error. ([#82120](https://github.com/kubernetes/kubernetes/pull/82120), [@soltysh](https://github.com/soltysh)) -- Correct a reference to a not/no longer used kustomize subcommand in the documentation ([#82535](https://github.com/kubernetes/kubernetes/pull/82535), [@demobox](https://github.com/demobox)) -- kubectl could scale custom resource again ([#81342](https://github.com/kubernetes/kubernetes/pull/81342), [@knight42](https://github.com/knight42)) -- Add PodOverhead awareness to kubectl ([#81929](https://github.com/kubernetes/kubernetes/pull/81929), [@egernst](https://github.com/egernst)) - -### Cloud Provider - -- When a load balancer type service is created in a k8s cluster that is backed by Azure Standard Load Balancer, the corresponding load balancer rule added in the Azure Standard Load Balancer would now have the "EnableTcpReset" property set to true. ([#80624](https://github.com/kubernetes/kubernetes/pull/80624), [@xuto2](https://github.com/xuto2)) -- Switch to VM Update call in attach/detach disk operation, original CreateOrUpdate call may lead to orphaned VMs or blocked resources ([#81208](https://github.com/kubernetes/kubernetes/pull/81208), [@andyzhangx](https://github.com/andyzhangx)) -- Fix azure disk naming matching issue due to case sensitive comparison ([#81720](https://github.com/kubernetes/kubernetes/pull/81720), [@andyzhangx](https://github.com/andyzhangx)) -- Fix retry issues when the nodes are under deleting on Azure ([#80419](https://github.com/kubernetes/kubernetes/pull/80419), [@feiskyer](https://github.com/feiskyer)) -- Fix conflicted cache when the requests are canceled by other Azure operations. ([#81282](https://github.com/kubernetes/kubernetes/pull/81282), [@feiskyer](https://github.com/feiskyer)) -- Fix make azure disk URI as case insensitive ([#79020](https://github.com/kubernetes/kubernetes/pull/79020), [@andyzhangx](https://github.com/andyzhangx)) -- Fix VMSS LoadBalancer backend pools so that the network won't be broken when instances are upgraded to latest model ([#81411](https://github.com/kubernetes/kubernetes/pull/81411), [@nilo19](https://github.com/nilo19)) -- Default resourceGroup should be used when the value of annotation azure-load-balancer-resource-group is an empty string. ([#79514](https://github.com/kubernetes/kubernetes/pull/79514), [@feiskyer](https://github.com/feiskyer)) -- Kubelet could be run with no Azure identity without subscriptionId configured now. - A sample cloud provider configure is: '{"vmType": "vmss", "useInstanceMetadata": true}'. ([#81500](https://github.com/kubernetes/kubernetes/pull/81500), [@feiskyer](https://github.com/feiskyer)) -- Fix public IP not found issues for VMSS nodes ([#80703](https://github.com/kubernetes/kubernetes/pull/80703), [@feiskyer](https://github.com/feiskyer)) -- Fix Azure client requests stuck issues on http.StatusTooManyRequests (HTTP Code 429). ([#81279](https://github.com/kubernetes/kubernetes/pull/81279), [@feiskyer](https://github.com/feiskyer)) -- Add a service annotation `service.beta.kubernetes.io/azure-pip-name` to specify the public IP name for Azure load balancer. ([#81213](https://github.com/kubernetes/kubernetes/pull/81213), [@nilo19](https://github.com/nilo19)) -- Optimize EC2 DescribeInstances API calls in aws cloud provider library by querying instance ID instead of EC2 filters when possible ([#78140](https://github.com/kubernetes/kubernetes/pull/78140), [@zhan849](https://github.com/zhan849)) -- Creates an annotation `service.beta.kubernetes.io/aws-load-balancer-eip-allocations` to assign AWS EIP to the newly created Network Load Balancer. Number of allocations and subnets must match. ([#69263](https://github.com/kubernetes/kubernetes/pull/69263), [@brooksgarrett](https://github.com/brooksgarrett)) -- Add an azure cloud configuration `LoadBalancerName` and `LoadBalancerResourceGroup` to allow the corresponding customizations of azure load balancer. ([#81054](https://github.com/kubernetes/kubernetes/pull/81054), [@nilo19](https://github.com/nilo19)) - -### Cluster Lifecycle - -- Fix error handling and potential go null pointer exception in kubeadm upgrade diff ([#80648](https://github.com/kubernetes/kubernetes/pull/80648), [@odinuge](https://github.com/odinuge)) -- kubeadm: fall back to client version in case of certain HTTP errors ([#80024](https://github.com/kubernetes/kubernetes/pull/80024), [@RainbowMango](https://github.com/RainbowMango)) -- kubeadm: fix a potential panic if kubeadm discovers an invalid, existing kubeconfig file ([#79165](https://github.com/kubernetes/kubernetes/pull/79165), [@neolit123](https://github.com/neolit123)) -- kubeadm: treat non-fatal errors as warnings when doing reset ([#80862](https://github.com/kubernetes/kubernetes/pull/80862), [@drpaneas](https://github.com/drpaneas)) -- kubeadm: prevent PSP blocking of upgrade image prepull by using a non-root user ([#77792](https://github.com/kubernetes/kubernetes/pull/77792), [@neolit123](https://github.com/neolit123)) -- kubeadm: fix "certificate-authority" files not being pre-loaded when using file discovery ([#80966](https://github.com/kubernetes/kubernetes/pull/80966), [@neolit123](https://github.com/neolit123)) -- Add instruction to setup "Application Default Credentials" to run GCE Windows e2e tests locally. ([#81337](https://github.com/kubernetes/kubernetes/pull/81337), [@YangLu1031](https://github.com/YangLu1031)) -- Fix error in `kubeadm join --discovery-file` when using discovery files with embedded credentials ([#80675](https://github.com/kubernetes/kubernetes/pull/80675), [@fabriziopandini](https://github.com/fabriziopandini)) -- Fix remove the etcd member from the cluster during a kubeadm reset. ([#79326](https://github.com/kubernetes/kubernetes/pull/79326), [@bradbeam](https://github.com/bradbeam)) -- kubeadm: the permissions of generated CSR files are changed from 0644 to 0600 ([#81217](https://github.com/kubernetes/kubernetes/pull/81217), [@SataQiu](https://github.com/SataQiu)) -- kubeadm: avoid double deletion of the upgrade prepull DaemonSet ([#80798](https://github.com/kubernetes/kubernetes/pull/80798), [@xlgao-zju](https://github.com/xlgao-zju)) -- kubeadm: introduce deterministic ordering for the certificates generation in the phase command `kubeadm init phase certs`. ([#78556](https://github.com/kubernetes/kubernetes/pull/78556), [@neolit123](https://github.com/neolit123)) -- kubeadm: implement retry logic for certain ConfigMap failures when joining nodes ([#78915](https://github.com/kubernetes/kubernetes/pull/78915), [@ereslibre](https://github.com/ereslibre)) -- kubeadm: use etcd's /health endpoint for a HTTP liveness probe on localhost instead of having a custom health check using etcdctl ([#81385](https://github.com/kubernetes/kubernetes/pull/81385), [@neolit123](https://github.com/neolit123)) -- kubeadm reset: unmount directories under `/var/lib/kubelet` for Linux only ([#81494](https://github.com/kubernetes/kubernetes/pull/81494), [@Klaven](https://github.com/Klaven)) -- kubeadm: fix the bug that `--cri-socket` flag does not work for `kubeadm reset` ([#79498](https://github.com/kubernetes/kubernetes/pull/79498), [@SataQiu](https://github.com/SataQiu)) -- kubeadm: produce errors if they occur when resetting cluster status for a control-plane node ([#80573](https://github.com/kubernetes/kubernetes/pull/80573), [@bart0sh](https://github.com/bart0sh)) -- Fix an error when using external etcd but storing etcd certificates in the same folder with the same name used by kubeadm for local etcd certificates; for an older version of kubeadm, the workaround is to avoid file name used by kubeadm for local etcd. ([#80867](https://github.com/kubernetes/kubernetes/pull/80867), [@fabriziopandini](https://github.com/fabriziopandini)) -- `kubeadm join` fails if file-based discovery is too long, with a default timeout of 5 minutes. ([#80804](https://github.com/kubernetes/kubernetes/pull/80804), [@olivierlemasle](https://github.com/olivierlemasle)) -- kubeadm: fixed ignoring errors when pulling control plane images ([#80529](https://github.com/kubernetes/kubernetes/pull/80529), [@bart0sh](https://github.com/bart0sh)) -- Fix a bug in kube-addon-manager's leader election logic that made all replicas active. ([#80575](https://github.com/kubernetes/kubernetes/pull/80575), [@mborsz](https://github.com/mborsz)) -- kubeadm: prevent overriding of certain kubelet security configuration parameters if the user wished to modify them ([#81903](https://github.com/kubernetes/kubernetes/pull/81903), [@jfbai](https://github.com/jfbai)) -- kubeadm no longer performs IPVS checks as part of its preflight checks ([#81791](https://github.com/kubernetes/kubernetes/pull/81791), [@yastij](https://github.com/yastij)) -- kubeadm: fix for HTTPProxy check for IPv6 addresses ([#82267](https://github.com/kubernetes/kubernetes/pull/82267), [@kad](https://github.com/kad)) -- kubeadm: Allow users to skip the kube-proxy init addon phase during init and still be able to join a cluster and perform some other minor operations (but not upgrade). ([#82248](https://github.com/kubernetes/kubernetes/pull/82248), [@rosti](https://github.com/rosti)) -- Mounts `/home/kubernetes/bin/nvidia/vulkan/icd.d` on the host to `/etc/vulkan/icd.d` inside containers requesting GPU. ([#78868](https://github.com/kubernetes/kubernetes/pull/78868), [@chardch](https://github.com/chardch)) -- kubeadm: use the `--pod-network-cidr` flag to init or use the podSubnet field in the kubeadm config to pass a comma separated list of pod CIDRs. ([#79033](https://github.com/kubernetes/kubernetes/pull/79033), [@Arvinderpal](https://github.com/Arvinderpal)) -- kubeadm: provide `--control-plane-endpoint` flag for `controlPlaneEndpoint` ([#79270](https://github.com/kubernetes/kubernetes/pull/79270), [@SataQiu](https://github.com/SataQiu)) -- kubeadm: enable secure serving for the kube-scheduler ([#80951](https://github.com/kubernetes/kubernetes/pull/80951), [@neolit123](https://github.com/neolit123)) -- kubeadm: print the stack trace of an error for klog level `--v>=5` ([#80937](https://github.com/kubernetes/kubernetes/pull/80937), [@neolit123](https://github.com/neolit123)) -- Add `--kubernetes-version` to `kubeadm init phase certs ca` and `kubeadm init phase kubeconfig` ([#80115](https://github.com/kubernetes/kubernetes/pull/80115), [@gyuho](https://github.com/gyuho)) -- kubeadm: support fetching configuration from the original cluster for `upgrade diff` ([#80025](https://github.com/kubernetes/kubernetes/pull/80025), [@SataQiu](https://github.com/SataQiu)) -- When using the conformance test image, a new environment variable `E2E_USE_GO_RUNNER` will cause the tests to be run with the new golang-based test runner rather than the current bash wrapper. ([#79284](https://github.com/kubernetes/kubernetes/pull/79284), [@johnSchnake](https://github.com/johnSchnake)) -- Implement a new feature that allows applying kustomize patches to static pod manifests generated by kubeadm. ([#80905](https://github.com/kubernetes/kubernetes/pull/80905), [@fabriziopandini](https://github.com/fabriziopandini)) -- The 404 request handler for the GCE Ingress load balancer now exports prometheus metrics, including: - - - `http_404_request_total` (the number of 404 requests handled) - - `http_404_request_duration_ms` (the amount of time the server took to respond in ms) - - Also includes percentile groupings. The directory for the default 404 handler includes instructions on how to enable prometheus for monitoring and setting alerts. - ([#79106](https://github.com/kubernetes/kubernetes/pull/79106), [@vbannai](https://github.com/vbannai)) - -### Instrumentation - -- Kibana has been slightly revamped/improved in the latest version ([#80421](https://github.com/kubernetes/kubernetes/pull/80421), [@lostick](https://github.com/lostick)) - -### Network - -- Fix a string comparison bug in IPVS graceful termination where UDP real servers are not deleted. ([#78999](https://github.com/kubernetes/kubernetes/pull/78999), [@andrewsykim](https://github.com/andrewsykim)) -- `kube-proxy --cleanup will` return the correct exit code if the cleanup was successful ([#78775](https://github.com/kubernetes/kubernetes/pull/78775), [@johscheuer](https://github.com/johscheuer)) -- Fix a bug in the IPVS proxier where virtual servers are not cleaned up even though the corresponding Service object was deleted. ([#80942](https://github.com/kubernetes/kubernetes/pull/80942), [@gongguan](https://github.com/gongguan)) -- kube-proxy waits for some duration for the node to be defined. ([#77167](https://github.com/kubernetes/kubernetes/pull/77167), [@paulsubrata55](https://github.com/paulsubrata55)) -- Increase log level for graceful termination to `v=5` ([#80100](https://github.com/kubernetes/kubernetes/pull/80100), [@andrewsykim](https://github.com/andrewsykim)) -- Reduce kube-proxy CPU usage in IPVS mode when a large number of nodePort services exist. ([#79444](https://github.com/kubernetes/kubernetes/pull/79444), [@cezarsa](https://github.com/cezarsa)) -- Fix in kube-proxy for SCTP nodeport service which only works for node's InternalIP, but doesn't work for other IPs present in the node when ipvs is enabled. ([#81477](https://github.com/kubernetes/kubernetes/pull/81477), [@paulsubrata55](https://github.com/paulsubrata55)) -- Ensure the `KUBE-MARK-DROP` chain in kube-proxy IPVS mode. The chain is ensured for both IPv4 and IPv6 in dual-stack operation. ([#82214](https://github.com/kubernetes/kubernetes/pull/82214), [@uablrek](https://github.com/uablrek)) -- Introduce `node.kubernetes.io/exclude-balancer` and `node.kubernetes.io/exclude-disruption` labels in alpha to prevent cluster deployers from being dependent on the optional `node-role` labels which not all clusters may provide. ([#80238](https://github.com/kubernetes/kubernetes/pull/80238), [@smarterclayton](https://github.com/smarterclayton)) -- If targetPort is changed that will process by service controller ([#77712](https://github.com/kubernetes/kubernetes/pull/77712), [@Sn0rt](https://github.com/Sn0rt)) - -### Node - -- Remove PIDs cgroup controller requirement when related feature gates are disabled - ([#79073](https://github.com/kubernetes/kubernetes/pull/79073), [@rafatio](https://github.com/rafatio)) -- Fix kubelet NodeLease potential performance issues. Kubelet now will try to update lease using cached one instead of get from API Server every time. ([#81174](https://github.com/kubernetes/kubernetes/pull/81174), [@answer1991](https://github.com/answer1991)) -- Passing an invalid policy name in the `--cpu-manager-policy` flag will now cause the kubelet to fail instead of simply ignoring the flag and running the `cpumanager`’s default policy instead. ([#80294](https://github.com/kubernetes/kubernetes/pull/80294), [@klueska](https://github.com/klueska)) -- Make node lease renew interval more heuristic based on node-status-update-frequency in kubelet ([#80173](https://github.com/kubernetes/kubernetes/pull/80173), [@gaorong](https://github.com/gaorong)) -- Kubelet should now more reliably report the same primary node IP even if the set of node IPs reported by the CloudProvider changes. ([#79391](https://github.com/kubernetes/kubernetes/pull/79391), [@danwinship](https://github.com/danwinship)) -- Omit `nil` or empty field when calculating container hash value to avoid hash changed. For a new field with a non-nil default value in the container spec, the hash would still get changed. ([#57741](https://github.com/kubernetes/kubernetes/pull/57741), [@dixudx](https://github.com/dixudx)) -- Fix a bug where kubelet would not retry pod sandbox creation when the restart policy of the pod is Never ([#79451](https://github.com/kubernetes/kubernetes/pull/79451), [@yujuhong](https://github.com/yujuhong)) -- Limit the body length of exec readiness/liveness probes. remote CRIs and Docker shim read a max of 16MB output of which the exec probe itself inspects 10kb. ([#82514](https://github.com/kubernetes/kubernetes/pull/82514), [@dims](https://github.com/dims)) -- Single static pod files and pod files from http endpoints cannot be larger than 10 MB. HTTP probe payloads are now truncated to 10KB. ([#82669](https://github.com/kubernetes/kubernetes/pull/82669), [@rphillips](https://github.com/rphillips)) -- Introduce support for applying pod overhead to pod cgroups, if the PodOverhead feature is enabled. ([#79247](https://github.com/kubernetes/kubernetes/pull/79247), [@egernst](https://github.com/egernst)) -- Node-Problem-Detector v0.7.1 is used on GCI ([#80726](https://github.com/kubernetes/kubernetes/pull/80726), [@wangzhen127](https://github.com/wangzhen127)) -- Node-Problem-Detector v0.7.1 is used for addon daemonset. ([#82140](https://github.com/kubernetes/kubernetes/pull/82140), [@wangzhen127](https://github.com/wangzhen127)) -- Enable cAdvisor ProcessMetrics collecting. ([#79002](https://github.com/kubernetes/kubernetes/pull/79002), [@jiayingz](https://github.com/jiayingz)) -- kubelet: change `node-lease-renew-interval` to 0.25 of lease-renew-duration ([#80429](https://github.com/kubernetes/kubernetes/pull/80429), [@gaorong](https://github.com/gaorong)) -- Attempt to set the kubelet's hostname & internal IP if `--cloud-provider=external` and no node addresses exists ([#75229](https://github.com/kubernetes/kubernetes/pull/75229), [@andrewsykim](https://github.com/andrewsykim)) - -### Scheduling - -- Scheduler should terminate when it loses leader lock. ([#81306](https://github.com/kubernetes/kubernetes/pull/81306), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- If scheduler extender filtered a not found node, current scheduling round for this pod will just be skipped. - ([#79641](https://github.com/kubernetes/kubernetes/pull/79641), [@yqwang-ms](https://github.com/yqwang-ms)) -- Extender bind should respect IsInterested ([#79804](https://github.com/kubernetes/kubernetes/pull/79804), [@yqwang-ms](https://github.com/yqwang-ms)) -- Fix an issue with toleration merging & whitelist checking in the PodTolerationRestriction admission controller. ([#81732](https://github.com/kubernetes/kubernetes/pull/81732), [@tallclair](https://github.com/tallclair)) -- Add a helper function to decode scheduler plugin args. ([#80696](https://github.com/kubernetes/kubernetes/pull/80696), [@hex108](https://github.com/hex108)) -- Fix filter plugins are not been called during preemption ([#81876](https://github.com/kubernetes/kubernetes/pull/81876), [@wgliang](https://github.com/wgliang)) -- Fix an issue that the correct PluginConfig.Args is not passed to the corresponding PluginFactory in kube-scheduler when multiple PluginConfig items are defined. ([#82483](https://github.com/kubernetes/kubernetes/pull/82483), [@everpeace](https://github.com/everpeace)) -- Take the context as the first argument of Schedule. ([#82119](https://github.com/kubernetes/kubernetes/pull/82119), [@wgliang](https://github.com/wgliang)) -- Implement `post-filter` extension point for scheduling framework ([#78097](https://github.com/kubernetes/kubernetes/pull/78097), [@draveness](https://github.com/draveness)) -- Add Bind extension point of the scheduling framework ([#78513](https://github.com/kubernetes/kubernetes/pull/78513), [@chenchun](https://github.com/chenchun)) -- Add Filter extension point to the scheduling framework. ([#78477](https://github.com/kubernetes/kubernetes/pull/78477), [@YoubingLi](https://github.com/YoubingLi)) -- Return error when the scoring plugin returns score out of range `[0, 100]`. ([#81015](https://github.com/kubernetes/kubernetes/pull/81015), [@draveness](https://github.com/draveness)) -- Use a named array instead of a score array in normalizing-score phase. ([#80901](https://github.com/kubernetes/kubernetes/pull/80901), [@draveness](https://github.com/draveness)) -- Updates the `requestedToCapacityRatioArguments` to add resources parameter that allows the users to specify the resource name along with weights for each resource to score nodes based on the request to capacity ratio. ([#77688](https://github.com/kubernetes/kubernetes/pull/77688), [@sudeshsh](https://github.com/sudeshsh)) -- Add `UnschedulableAndUnresolvable` status code for scheduling framework ([#82034](https://github.com/kubernetes/kubernetes/pull/82034), [@alculquicondor](https://github.com/alculquicondor)) -- Add normalize plugin extension point for the scheduling framework. - ([#80383](https://github.com/kubernetes/kubernetes/pull/80383), [@liu-cong](https://github.com/liu-cong)) -- Add Bind extension point to the scheduling framework. ([#79313](https://github.com/kubernetes/kubernetes/pull/79313), [@chenchun](https://github.com/chenchun)) -- Add Score extension point to the scheduling framework. ([#79109](https://github.com/kubernetes/kubernetes/pull/79109), [@ahg-g](https://github.com/ahg-g)) -- Add Pre-filter extension point to the scheduling framework. ([#78005](https://github.com/kubernetes/kubernetes/pull/78005), [@ahg-g](https://github.com/ahg-g)) -- Add support for writing out of tree custom scheduler plugins. ([#78162](https://github.com/kubernetes/kubernetes/pull/78162), [@hex108](https://github.com/hex108)) - -### Storage - -- Fix possible file descriptor leak and closing of dirs in `doSafeMakeDir` ([#79534](https://github.com/kubernetes/kubernetes/pull/79534), [@odinuge](https://github.com/odinuge)) -- Azure disks of shared kind will no longer fail if they do not contain `skuname` or `storageaccounttype`. ([#80837](https://github.com/kubernetes/kubernetes/pull/80837), [@rmweir](https://github.com/rmweir)) -- Fix CSI plugin supporting raw block that does not need attach mounted failed ([#79920](https://github.com/kubernetes/kubernetes/pull/79920), [@cwdsuzhou](https://github.com/cwdsuzhou)) -- Reduces GCE PD Node Attach Limits by 1 since the node boot disk is considered an attachable disk ([#80923](https://github.com/kubernetes/kubernetes/pull/80923), [@davidz627](https://github.com/davidz627)) -- Remove iSCSI volume storage cleartext secrets in logs ([#81215](https://github.com/kubernetes/kubernetes/pull/81215), [@zouyee](https://github.com/zouyee)) -- Fixes validation of VolumeAttachment API objects created with inline volume sources. ([#80945](https://github.com/kubernetes/kubernetes/pull/80945), [@tedyu](https://github.com/tedyu)) -- Changes timeout value in csi plugin from 15s to 2min which fixes the timeout issue ([#79529](https://github.com/kubernetes/kubernetes/pull/79529), [@andyzhangx](https://github.com/andyzhangx)) -- Fix kubelet fail to delete orphaned pod directory when the kubelet's pods directory (default is `/var/lib/kubelet/pods`) symbolically links to another disk device's directory ([#79094](https://github.com/kubernetes/kubernetes/pull/79094), [@gaorong](https://github.com/gaorong)) - -## Testing - -- Fix pod list return value of `framework.WaitForPodsWithLabelRunningReady` ([#78687](https://github.com/kubernetes/kubernetes/pull/78687), [@pohly](https://github.com/pohly)) -- Adding `TerminationGracePeriodSeconds` to the test framework API ([#82170](https://github.com/kubernetes/kubernetes/pull/82170), [@vivekbagade](https://github.com/vivekbagade)) -- `/test/e2e/framework`: Adds a flag `non-blocking-taints` which allows tests to run in environments with tainted nodes. String value should be a comma-separated list. ([#81043](https://github.com/kubernetes/kubernetes/pull/81043), [@johnSchnake](https://github.com/johnSchnake)) -- Move CSI volume expansion to beta. ([#81467](https://github.com/kubernetes/kubernetes/pull/81467), [@bertinatto](https://github.com/bertinatto)) -- Added E2E tests validating WindowsOptions.RunAsUserName. ([#79539](https://github.com/kubernetes/kubernetes/pull/79539), [@bclau](https://github.com/bclau)) -- `framework.ExpectNoError` no longer logs the error and instead relies on using the new `log.Fail` as gomega fail handler. ([#80253](https://github.com/kubernetes/kubernetes/pull/80253), [@pohly](https://github.com/pohly)) - -### Windows - -- On Windows systems, `%USERPROFILE%` is now preferred over `%HOMEDRIVE%\%HOMEPATH%` as the home folder if `%HOMEDRIVE%\%HOMEPATH%` does not contain a `.kube\config` file, and `%USERPROFILE%` exists and is writable. ([#73923](https://github.com/kubernetes/kubernetes/pull/73923), [@liggitt](https://github.com/liggitt)) -- Add support for AWS EBS on windows ([#79552](https://github.com/kubernetes/kubernetes/pull/79552), [@wongma7](https://github.com/wongma7)) -- Support Kubelet plugin watcher on Windows nodes. ([#81397](https://github.com/kubernetes/kubernetes/pull/81397), [@ddebroy](https://github.com/ddebroy)) - -## Dependencies - -### Changed - -- the default Go version was updated to v1.12.9. ([#78958](https://github.com/kubernetes/kubernetes/pull/78958), [#79966](https://github.com/kubernetes/kubernetes/pull/79966), [#81390](https://github.com/kubernetes/kubernetes/pull/81390), [#81489](https://github.com/kubernetes/kubernetes/pull/81489)) -- etcd has been updated to v3.3.15 ([#82199](https://github.com/kubernetes/kubernetes/pull/82199), [@dims](https://github.com/dims)) -- CoreDNS for kubeadm and kube-up has been updated to v1.6.2 ([#82127](https://github.com/kubernetes/kubernetes/pull/82127)) -- Cluster Autoscaler has been updated to v1.16.0 ([#82501](https://github.com/kubernetes/kubernetes/pull/82501), [@losipiuk](https://github.com/losipiuk)) -- fluentd has been updated to v1.5.1 ([#79014](https://github.com/kubernetes/kubernetes/pull/79014)) -- fluentd-elasticsearch plugin has been updated to v3.5.3 ([#79014](https://github.com/kubernetes/kubernetes/pull/79014)) -- elasticsearch has been updated to v7.1.1 ([#79014](https://github.com/kubernetes/kubernetes/pull/79014)) -- kibana has been updated to v7.1.1 ([#79014](https://github.com/kubernetes/kubernetes/pull/79014)) -- Azure SDK and go-autorest API versions have been updated ([#79574](https://github.com/kubernetes/kubernetes/pull/79574)) -- Azure API versions have been updated (container registry to 2018-09-01, network to 2018-08-01) ([#79583](https://github.com/kubernetes/kubernetes/pull/79583)) -- kube-addon-manager has been updated to v9.0.2 ([#80861](https://github.com/kubernetes/kubernetes/pull/80861)) -- golang/x/net has been updated to bring in fixes for CVE-2019-9512, CVE-2019-9514 ([#81394](https://github.com/kubernetes/kubernetes/pull/81394)) -- GCE windows node image has been updated. ([#81106](https://github.com/kubernetes/kubernetes/pull/81106)) -- portworx plugin has been updated on libopenstorage/openstorage to v1.0.0 ([#80495](https://github.com/kubernetes/kubernetes/pull/80495)) -- metrics-server has been updated to v0.3.4 ([#82322](https://github.com/kubernetes/kubernetes/pull/82322), [@olagacek](https://github.com/olagacek)) -- klog has been updated to v0.4.0 ([#81164](https://github.com/kubernetes/kubernetes/pull/81164)) - -### Unchanged - -- The list of validated docker versions remains unchanged. - - The current list is 1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09. ([#72823](https://github.com/kubernetes/kubernetes/pull/72823), [#72831](https://github.com/kubernetes/kubernetes/pull/72831)) -- CNI remains unchanged at v0.7.5. ([#75455](https://github.com/kubernetes/kubernetes/pull/75455)) -- cri-tools remains unchanged at v1.14.0. ([#75658](https://github.com/kubernetes/kubernetes/pull/75658)) -- CAdvisor remains unchanged at v0.33.2. ([#76291](https://github.com/kubernetes/kubernetes/pull/76291)) -- event-exporter remains unchanged at v0.2.5. ([#77815](https://github.com/kubernetes/kubernetes/pull/77815)) -- ip-masq-agent remains unchanged at v2.4.1. ([#77844](https://github.com/kubernetes/kubernetes/pull/77844)) -- k8s-dns-node-cache remains unchanged at v1.15.1 ([#76640](https://github.com/kubernetes/kubernetes/pull/76640), [@george-angel](https://github.com/george-angel)) -- CSI remains unchanged at to v1.1.0. ([#75391](https://github.com/kubernetes/kubernetes/pull/75391)) -- The dashboard add-on remains unchanged at v1.10.1. ([#72495](https://github.com/kubernetes/kubernetes/pull/72495)) -- kube-dns is unchanged at v1.14.13 as of Kubernetes 1.12. ([#68900](https://github.com/kubernetes/kubernetes/pull/68900)) -- Influxdb is unchanged at v1.3.3 as of Kubernetes 1.10. ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) -- Grafana is unchanged at v4.4.3 as of Kubernetes 1.10. ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) -- The fluent-plugin-kubernetes_metadata_filter plugin in fluentd-elasticsearch is unchanged at v2.1.6. ([#71180](https://github.com/kubernetes/kubernetes/pull/71180)) -- fluentd-gcp is unchanged at v3.2.0 as of Kubernetes 1.13. ([#70954](https://github.com/kubernetes/kubernetes/pull/70954)) -- OIDC authentication is unchanged at coreos/go-oidc v2 as of Kubernetes 1.10. ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) -- Calico is unchanged at v3.3.1 as of Kubernetes 1.13. ([#70932](https://github.com/kubernetes/kubernetes/pull/70932)) -- GLBC remains unchanged at v1.2.3 as of Kubernetes 1.12. ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) -- Ingress-gce remains unchanged at v1.2.3 as of Kubernetes 1.12. ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) - -### Removed - -- Remove deprecated github.com/kardianos/osext dependency ([#80142](https://github.com/kubernetes/kubernetes/pull/80142)) - -### Detailed go Dependency Changes - -#### Added - -- github.com/Azure/go-autorest/autorest/adal: [v0.5.0](https://github.com/Azure/go-autorest/autorest/adal/tree/v0.5.0) -- github.com/Azure/go-autorest/autorest/date: [v0.1.0](https://github.com/Azure/go-autorest/autorest/date/tree/v0.1.0) -- github.com/Azure/go-autorest/autorest/mocks: [v0.2.0](https://github.com/Azure/go-autorest/autorest/mocks/tree/v0.2.0) -- github.com/Azure/go-autorest/autorest/to: [v0.2.0](https://github.com/Azure/go-autorest/autorest/to/tree/v0.2.0) -- github.com/Azure/go-autorest/autorest/validation: [v0.1.0](https://github.com/Azure/go-autorest/autorest/validation/tree/v0.1.0) -- github.com/Azure/go-autorest/autorest: [v0.9.0](https://github.com/Azure/go-autorest/autorest/tree/v0.9.0) -- github.com/Azure/go-autorest/logger: [v0.1.0](https://github.com/Azure/go-autorest/logger/tree/v0.1.0) -- github.com/Azure/go-autorest/tracing: [v0.5.0](https://github.com/Azure/go-autorest/tracing/tree/v0.5.0) -- github.com/armon/consul-api: [eb2c6b5](https://github.com/armon/consul-api/tree/eb2c6b5) -- github.com/bifurcation/mint: [93c51c6](https://github.com/bifurcation/mint/tree/93c51c6) -- github.com/caddyserver/caddy: [v1.0.3](https://github.com/caddyserver/caddy/tree/v1.0.3) -- github.com/cenkalti/backoff: [v2.1.1+incompatible](https://github.com/cenkalti/backoff/tree/v2.1.1) -- github.com/checkpoint-restore/go-criu: [bdb7599](https://github.com/checkpoint-restore/go-criu/tree/bdb7599) -- github.com/cheekybits/genny: [9127e81](https://github.com/cheekybits/genny/tree/9127e81) -- github.com/coredns/corefile-migration: [v1.0.2](https://github.com/coredns/corefile-migration/tree/v1.0.2) -- github.com/coreos/go-etcd: [v2.0.0+incompatible](https://github.com/coreos/go-etcd/tree/v2.0.0) -- github.com/dustin/go-humanize: [v1.0.0](https://github.com/dustin/go-humanize/tree/v1.0.0) -- github.com/fatih/color: [v1.6.0](https://github.com/fatih/color/tree/v1.6.0) -- github.com/flynn/go-shlex: [3f9db97](https://github.com/flynn/go-shlex/tree/3f9db97) -- github.com/go-acme/lego: [v2.5.0+incompatible](https://github.com/go-acme/lego/tree/v2.5.0) -- github.com/go-bindata/go-bindata: [v3.1.1+incompatible](https://github.com/go-bindata/go-bindata/tree/v3.1.1) -- github.com/go-logr/logr: [v0.1.0](https://github.com/go-logr/logr/tree/v0.1.0) -- github.com/google/martian: [v2.1.0+incompatible](https://github.com/google/martian/tree/v2.1.0) -- github.com/google/pprof: [3ea8567](https://github.com/google/pprof/tree/3ea8567) -- github.com/google/renameio: [v0.1.0](https://github.com/google/renameio/tree/v0.1.0) -- github.com/googleapis/gax-go/v2: [v2.0.4](https://github.com/googleapis/gax-go/v2/tree/v2.0.4) -- github.com/hashicorp/go-syslog: [v1.0.0](https://github.com/hashicorp/go-syslog/tree/v1.0.0) -- github.com/jimstudt/http-authentication: [3eca13d](https://github.com/jimstudt/http-authentication/tree/3eca13d) -- github.com/kisielk/errcheck: [v1.2.0](https://github.com/kisielk/errcheck/tree/v1.2.0) -- github.com/kisielk/gotool: [v1.0.0](https://github.com/kisielk/gotool/tree/v1.0.0) -- github.com/klauspost/cpuid: [v1.2.0](https://github.com/klauspost/cpuid/tree/v1.2.0) -- github.com/kr/pty: [v1.1.5](https://github.com/kr/pty/tree/v1.1.5) -- github.com/kylelemons/godebug: [d65d576](https://github.com/kylelemons/godebug/tree/d65d576) -- github.com/lucas-clemente/aes12: [cd47fb3](https://github.com/lucas-clemente/aes12/tree/cd47fb3) -- github.com/lucas-clemente/quic-clients: [v0.1.0](https://github.com/lucas-clemente/quic-clients/tree/v0.1.0) -- github.com/lucas-clemente/quic-go-certificates: [d2f8652](https://github.com/lucas-clemente/quic-go-certificates/tree/d2f8652) -- github.com/lucas-clemente/quic-go: [v0.10.2](https://github.com/lucas-clemente/quic-go/tree/v0.10.2) -- github.com/marten-seemann/qtls: [v0.2.3](https://github.com/marten-seemann/qtls/tree/v0.2.3) -- github.com/mattn/go-colorable: [v0.0.9](https://github.com/mattn/go-colorable/tree/v0.0.9) -- github.com/mattn/go-isatty: [v0.0.3](https://github.com/mattn/go-isatty/tree/v0.0.3) -- github.com/mholt/certmagic: [6a42ef9](https://github.com/mholt/certmagic/tree/6a42ef9) -- github.com/mitchellh/go-homedir: [v1.1.0](https://github.com/mitchellh/go-homedir/tree/v1.1.0) -- github.com/naoina/go-stringutil: [v0.1.0](https://github.com/naoina/go-stringutil/tree/v0.1.0) -- github.com/naoina/toml: [v0.1.1](https://github.com/naoina/toml/tree/v0.1.1) -- github.com/rogpeppe/go-internal: [v1.3.0](https://github.com/rogpeppe/go-internal/tree/v1.3.0) -- github.com/thecodeteam/goscaleio: [v0.1.0](https://github.com/thecodeteam/goscaleio/tree/v0.1.0) -- github.com/ugorji/go/codec: [d75b2dc](https://github.com/ugorji/go/codec/tree/d75b2dc) -- github.com/xordataexchange/crypt: [b2862e3](https://github.com/xordataexchange/crypt/tree/b2862e3) -- go.opencensus.io: v0.21.0 -- golang.org/x/mod: 4bf6d31 -- gopkg.in/airbrake/gobrake.v2: v2.0.9 -- gopkg.in/errgo.v2: v2.1.0 -- gopkg.in/gemnasium/logrus-airbrake-hook.v2: v2.1.2 -- gopkg.in/mcuadros/go-syslog.v2: v2.2.1 -- gotest.tools/gotestsum: v0.3.5 -- honnef.co/go/tools: v0.0.1-2019.2.2 - -#### Changed - -- cloud.google.com/go: v0.34.0 → v0.38.0 -- github.com/Azure/azure-sdk-for-go: [v21.4.0+incompatible → v32.5.0+incompatible](https://github.com/Azure/azure-sdk-for-go/compare/v21.4.0...v32.5.0) -- github.com/BurntSushi/toml: [v0.3.0 → v0.3.1](https://github.com/BurntSushi/toml/compare/v0.3.0...v0.3.1) -- github.com/GoogleCloudPlatform/k8s-cloud-provider: [f8e9959 → 27a4ced](https://github.com/GoogleCloudPlatform/k8s-cloud-provider/compare/f8e9959...27a4ced) -- github.com/PuerkitoBio/purell: [v1.1.0 → v1.1.1](https://github.com/PuerkitoBio/purell/compare/v1.1.0...v1.1.1) -- github.com/asaskevich/govalidator: [f9ffefc → f61b66f](https://github.com/asaskevich/govalidator/compare/f9ffefc...f61b66f) -- github.com/client9/misspell: [9ce5d97 → v0.3.4](https://github.com/client9/misspell/compare/9ce5d97...v0.3.4) -- github.com/containernetworking/cni: [v0.6.0 → v0.7.1](https://github.com/containernetworking/cni/compare/v0.6.0...v0.7.1) -- github.com/coreos/etcd: [v3.3.13+incompatible → v3.3.15+incompatible](https://github.com/coreos/etcd/compare/v3.3.13...v3.3.15) -- github.com/coreos/go-oidc: [065b426 → v2.1.0+incompatible](https://github.com/coreos/go-oidc/compare/065b426...v2.1.0) -- github.com/coreos/go-semver: [e214231 → v0.3.0](https://github.com/coreos/go-semver/compare/e214231...v0.3.0) -- github.com/cpuguy83/go-md2man: [v1.0.4 → v1.0.10](https://github.com/cpuguy83/go-md2man/compare/v1.0.4...v1.0.10) -- github.com/cyphar/filepath-securejoin: [ae69057 → v0.2.2](https://github.com/cyphar/filepath-securejoin/compare/ae69057...v0.2.2) -- github.com/dgrijalva/jwt-go: [01aeca5 → v3.2.0+incompatible](https://github.com/dgrijalva/jwt-go/compare/01aeca5...v3.2.0) -- github.com/docker/distribution: [edc3ab2 → v2.7.1+incompatible](https://github.com/docker/distribution/compare/edc3ab2...v2.7.1) -- github.com/emicklei/go-restful: [ff4f55a → v2.9.5+incompatible](https://github.com/emicklei/go-restful/compare/ff4f55a...v2.9.5) -- github.com/evanphx/json-patch: [5858425 → v4.2.0+incompatible](https://github.com/evanphx/json-patch/compare/5858425...v4.2.0) -- github.com/fatih/camelcase: [f6a740d → v1.0.0](https://github.com/fatih/camelcase/compare/f6a740d...v1.0.0) -- github.com/go-openapi/analysis: [v0.17.2 → v0.19.2](https://github.com/go-openapi/analysis/compare/v0.17.2...v0.19.2) -- github.com/go-openapi/errors: [v0.17.2 → v0.19.2](https://github.com/go-openapi/errors/compare/v0.17.2...v0.19.2) -- github.com/go-openapi/jsonpointer: [v0.19.0 → v0.19.2](https://github.com/go-openapi/jsonpointer/compare/v0.19.0...v0.19.2) -- github.com/go-openapi/jsonreference: [v0.19.0 → v0.19.2](https://github.com/go-openapi/jsonreference/compare/v0.19.0...v0.19.2) -- github.com/go-openapi/loads: [v0.17.2 → v0.19.2](https://github.com/go-openapi/loads/compare/v0.17.2...v0.19.2) -- github.com/go-openapi/runtime: [v0.17.2 → v0.19.0](https://github.com/go-openapi/runtime/compare/v0.17.2...v0.19.0) -- github.com/go-openapi/spec: [v0.17.2 → v0.19.2](https://github.com/go-openapi/spec/compare/v0.17.2...v0.19.2) -- github.com/go-openapi/strfmt: [v0.17.0 → v0.19.0](https://github.com/go-openapi/strfmt/compare/v0.17.0...v0.19.0) -- github.com/go-openapi/swag: [v0.17.2 → v0.19.2](https://github.com/go-openapi/swag/compare/v0.17.2...v0.19.2) -- github.com/go-openapi/validate: [v0.18.0 → v0.19.2](https://github.com/go-openapi/validate/compare/v0.18.0...v0.19.2) -- github.com/godbus/dbus: [c7fdd8b → v4.1.0+incompatible](https://github.com/godbus/dbus/compare/c7fdd8b...v4.1.0) -- github.com/gogo/protobuf: [342cbe0 → 65acae2](https://github.com/gogo/protobuf/compare/342cbe0...65acae2) -- github.com/golang/mock: [bd3c8e8 → v1.2.0](https://github.com/golang/mock/compare/bd3c8e8...v1.2.0) -- github.com/golang/protobuf: [v1.2.0 → v1.3.1](https://github.com/golang/protobuf/compare/v1.2.0...v1.3.1) -- github.com/google/btree: [7d79101 → 4030bb1](https://github.com/google/btree/compare/7d79101...4030bb1) -- github.com/google/cadvisor: [9db8c7d → v0.34.0](https://github.com/google/cadvisor/compare/9db8c7d...v0.34.0) -- github.com/google/gofuzz: [24818f7 → v1.0.0](https://github.com/google/gofuzz/compare/24818f7...v1.0.0) -- github.com/google/uuid: [v1.0.0 → v1.1.1](https://github.com/google/uuid/compare/v1.0.0...v1.1.1) -- github.com/gophercloud/gophercloud: [c818fa6 → v0.1.0](https://github.com/gophercloud/gophercloud/compare/c818fa6...v0.1.0) -- github.com/gorilla/websocket: [4201258 → v1.4.0](https://github.com/gorilla/websocket/compare/4201258...v1.4.0) -- github.com/grpc-ecosystem/go-grpc-prometheus: [2500245 → v1.2.0](https://github.com/grpc-ecosystem/go-grpc-prometheus/compare/2500245...v1.2.0) -- github.com/hashicorp/golang-lru: [v0.5.0 → v0.5.1](https://github.com/hashicorp/golang-lru/compare/v0.5.0...v0.5.1) -- github.com/hashicorp/hcl: [d8c773c → v1.0.0](https://github.com/hashicorp/hcl/compare/d8c773c...v1.0.0) -- github.com/heketi/heketi: [558b292 → v9.0.0+incompatible](https://github.com/heketi/heketi/compare/558b292...v9.0.0) -- github.com/jonboulle/clockwork: [72f9bd7 → v0.1.0](https://github.com/jonboulle/clockwork/compare/72f9bd7...v0.1.0) -- github.com/json-iterator/go: [ab8a2e0 → v1.1.7](https://github.com/json-iterator/go/compare/ab8a2e0...v1.1.7) -- github.com/kr/pretty: [f31442d → v0.1.0](https://github.com/kr/pretty/compare/f31442d...v0.1.0) -- github.com/kr/text: [6807e77 → v0.1.0](https://github.com/kr/text/compare/6807e77...v0.1.0) -- github.com/libopenstorage/openstorage: [093a0c3 → v1.0.0](https://github.com/libopenstorage/openstorage/compare/093a0c3...v1.0.0) -- github.com/magiconair/properties: [61b492c → v1.8.1](https://github.com/magiconair/properties/compare/61b492c...v1.8.1) -- github.com/mailru/easyjson: [60711f1 → 94de47d](https://github.com/mailru/easyjson/compare/60711f1...94de47d) -- github.com/mattn/go-shellwords: [f8471b0 → v1.0.5](https://github.com/mattn/go-shellwords/compare/f8471b0...v1.0.5) -- github.com/miekg/dns: [5d001d0 → v1.1.4](https://github.com/miekg/dns/compare/5d001d0...v1.1.4) -- github.com/mistifyio/go-zfs: [1b4ae6f → v2.1.1+incompatible](https://github.com/mistifyio/go-zfs/compare/1b4ae6f...v2.1.1) -- github.com/mitchellh/go-wordwrap: [ad45545 → v1.0.0](https://github.com/mitchellh/go-wordwrap/compare/ad45545...v1.0.0) -- github.com/mvdan/xurls: [1b768d7 → v1.1.0](https://github.com/mvdan/xurls/compare/1b768d7...v1.1.0) -- github.com/onsi/ginkgo: [v1.6.0 → v1.8.0](https://github.com/onsi/ginkgo/compare/v1.6.0...v1.8.0) -- github.com/onsi/gomega: [5533ce8 → v1.5.0](https://github.com/onsi/gomega/compare/5533ce8...v1.5.0) -- github.com/opencontainers/go-digest: [a6d0ee4 → v1.0.0-rc1](https://github.com/opencontainers/go-digest/compare/a6d0ee4...v1.0.0-rc1) -- github.com/opencontainers/image-spec: [372ad78 → v1.0.1](https://github.com/opencontainers/image-spec/compare/372ad78...v1.0.1) -- github.com/opencontainers/runc: [f000fe1 → 6cc5158](https://github.com/opencontainers/runc/compare/f000fe1...6cc5158) -- github.com/opencontainers/selinux: [4a2974b → v1.2.2](https://github.com/opencontainers/selinux/compare/4a2974b...v1.2.2) -- github.com/robfig/cron: [df38d32 → v1.1.0](https://github.com/robfig/cron/compare/df38d32...v1.1.0) -- github.com/russross/blackfriday: [300106c → v1.5.2](https://github.com/russross/blackfriday/compare/300106c...v1.5.2) -- github.com/seccomp/libseccomp-golang: [1b506fc → v0.9.1](https://github.com/seccomp/libseccomp-golang/compare/1b506fc...v0.9.1) -- github.com/sirupsen/logrus: [v1.2.0 → v1.4.2](https://github.com/sirupsen/logrus/compare/v1.2.0...v1.4.2) -- github.com/spf13/afero: [b28a7ef → v1.2.2](https://github.com/spf13/afero/compare/b28a7ef...v1.2.2) -- github.com/spf13/cast: [e31f36f → v1.3.0](https://github.com/spf13/cast/compare/e31f36f...v1.3.0) -- github.com/spf13/cobra: [c439c4f → v0.0.5](https://github.com/spf13/cobra/compare/c439c4f...v0.0.5) -- github.com/spf13/jwalterweatherman: [33c24e7 → v1.1.0](https://github.com/spf13/jwalterweatherman/compare/33c24e7...v1.1.0) -- github.com/spf13/pflag: [v1.0.1 → v1.0.3](https://github.com/spf13/pflag/compare/v1.0.1...v1.0.3) -- github.com/spf13/viper: [7fb2782 → v1.3.2](https://github.com/spf13/viper/compare/7fb2782...v1.3.2) -- github.com/stretchr/objx: [v0.1.1 → v0.2.0](https://github.com/stretchr/objx/compare/v0.1.1...v0.2.0) -- github.com/stretchr/testify: [v1.2.2 → v1.3.0](https://github.com/stretchr/testify/compare/v1.2.2...v1.3.0) -- golang.org/x/net: 65e2d4e → cdfb69a -- golang.org/x/tools: aa82965 → 6e04913 -- google.golang.org/api: 583d854 → 5213b80 -- google.golang.org/genproto: 09f6ed2 → 54afdca -- google.golang.org/grpc: v1.13.0 → v1.23.0 -- gopkg.in/check.v1: 20d25e2 → 788fd78 -- gopkg.in/natefinch/lumberjack.v2: 20b71e5 → v2.0.0 -- gopkg.in/square/go-jose.v2: 89060de → v2.2.2 -- gopkg.in/yaml.v2: v2.2.1 → v2.2.2 -- k8s.io/gengo: f8a0810 → 26a6646 -- k8s.io/klog: v0.3.1 → v0.4.0 -- k8s.io/kube-openapi: b3a7cee → 743ec37 -- k8s.io/utils: c2654d5 → 581e001 -- sigs.k8s.io/structured-merge-diff: e85c7b2 → 6149e45 - -#### Removed - -- github.com/Azure/go-autorest: [v11.1.2+incompatible](https://github.com/Azure/go-autorest/tree/v11.1.2) -- github.com/codedellemc/goscaleio: [20e2ce2](https://github.com/codedellemc/goscaleio/tree/20e2ce2) -- github.com/d2g/dhcp4: [a1d1b6c](https://github.com/d2g/dhcp4/tree/a1d1b6c) -- github.com/d2g/dhcp4client: [6e570ed](https://github.com/d2g/dhcp4client/tree/6e570ed) -- github.com/jteeuwen/go-bindata: [a0ff256](https://github.com/jteeuwen/go-bindata/tree/a0ff256) -- github.com/kardianos/osext: [8fef92e](https://github.com/kardianos/osext/tree/8fef92e) -- github.com/kr/fs: [2788f0d](https://github.com/kr/fs/tree/2788f0d) -- github.com/marstr/guid: [8bdf7d1](https://github.com/marstr/guid/tree/8bdf7d1) -- github.com/mholt/caddy: [2de4950](https://github.com/mholt/caddy/tree/2de4950) -- github.com/natefinch/lumberjack: [v2.0.0+incompatible](https://github.com/natefinch/lumberjack/tree/v2.0.0) -- github.com/pkg/sftp: [4d0e916](https://github.com/pkg/sftp/tree/4d0e916) -- github.com/shurcooL/sanitized_anchor_name: [10ef21a](https://github.com/shurcooL/sanitized_anchor_name/tree/10ef21a) -- github.com/sigma/go-inotify: [c87b6cf](https://github.com/sigma/go-inotify/tree/c87b6cf) -- github.com/vmware/photon-controller-go-sdk: [4a435da](https://github.com/vmware/photon-controller-go-sdk/tree/4a435da) -- github.com/xanzy/go-cloudstack: [1e2cbf6](https://github.com/xanzy/go-cloudstack/tree/1e2cbf6) -- gopkg.in/yaml.v1: 9f9df34 +# Kubernetes v1.16.0 Release Notes + +A complete changelog for the release notes is now hosted in a customizable format at [relnotes.k8s.io](https://relnotes.k8s.io/?releaseVersions=1.16.0). Check it out and please give us your feedback! + +## What’s New (Major Themes) + +We’re pleased to announce the delivery of Kubernetes 1.16, our third release of 2019! Kubernetes 1.16 consists of 31 enhancements: 8 enhancements moving to stable, 8 enhancements in beta, and 15 enhancements in alpha. + +The main themes of this release are: + +- **Custom resources:** CRDs are in widespread use as a way to extend Kubernetes to persist and serve new resource types, and have been available in beta since the 1.7 release. The 1.16 release marks the graduation of CRDs to general availability (GA). +- **Admission webhooks:** Admission webhooks are in widespread use as a Kubernetes extensibility mechanism and have been available in beta since the 1.9 release. The 1.16 release marks the graduation of admission webhooks to general availability (GA). +- **Overhauled metrics**: Kubernetes has previously made extensive use of a global metrics registry to register metrics to be exposed. By implementing a metrics registry, metrics are registered in more transparent means. Previously, Kubernetes metrics have been excluded from any kind of stability requirements. +- **Volume Extension**: There are quite a few enhancements in this release that pertain to volumes and volume modifications. Volume resizing support in CSI specs is moving to beta which allows for any CSI spec volume plugin to be resizable. + +### Additional Notable Feature Updates + +- [Topology Manager](https://github.com/kubernetes/enhancements/issues/693), a new Kubelet component, aims to co-ordinate resource assignment decisions to provide optimized resource allocations. +- [IPv4/IPv6 dual-stack](https://kubernetes.io/docs/concepts/services-networking/dual-stack) enables the allocation of both IPv4 and IPv6 addresses to Pods and Services. +- [API Server Network Proxy](https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/20190226-network-proxy.md) going alpha in 1.16. +- [Extensions](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cloud-provider/20190422-cloud-controller-manager-migration.md) for Cloud Controller Manager Migration. +- Continued deprecation of extensions/v1beta1, apps/v1beta1, and apps/v1beta2 APIs; these extensions will be retired in 1.16! + +## Known Issues + +- The etcd and KMS plugin health checks are not exposed in the new `livez` and `readyz` endpoints. This will be fixed in 1.16.1. +- Systems running `iptables` 1.8.0 or newer should start it in legacy mode. Please note that this affects all versions of Kubernetes and not only v1.16.0. For more detailed information about the issue and how to apply a workaround, please refer to the official documentation + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +#### Cluster Lifecycle + +- Container images tar files for `amd64` will now contain the architecture in the RepoTags manifest.json section. + If you are using docker manifests there are not visible changes. ([#80266](https://github.com/kubernetes/kubernetes/pull/80266), [@javier-b-perez](https://github.com/javier-b-perez)) +- kubeadm now deletes the bootstrap-kubelet.conf file after TLS bootstrap + User relying on bootstrap-kubelet.conf should switch to kubelet.conf that contains node credentials ([#80676](https://github.com/kubernetes/kubernetes/pull/80676), [@fabriziopandini](https://github.com/fabriziopandini)) +- Node labels `beta.kubernetes.io/metadata-proxy-ready`, `beta.kubernetes.io/metadata-proxy-ready` and `beta.kubernetes.io/kube-proxy-ds-ready` are no longer added on new nodes. + - ip-mask-agent addon starts to use the label `node.kubernetes.io/masq-agent-ds-ready` instead of `beta.kubernetes.io/masq-agent-ds-ready` as its node selector. + - kube-proxy addon starts to use the label `node.kubernetes.io/kube-proxy-ds-ready` instead of `beta.kubernetes.io/kube-proxy-ds-ready` as its node selector. + - metadata-proxy addon starts to use the label `cloud.google.com/metadata-proxy-ready` instead of `beta.kubernetes.io/metadata-proxy-ready` as its node selector. + +#### Storage + +- When PodInfoOnMount is enabled for a CSI driver, the new csi.storage.k8s.io/ephemeral parameter in the volume context allows a driver's NodePublishVolume implementation to determine on a case-by-case basis whether the volume is ephemeral or a normal persistent volume ([#79983](https://github.com/kubernetes/kubernetes/pull/79983), [@pohly](https://github.com/pohly)) +- Add CSI Migration Shim for VerifyVolumesAreAttached and BulkVolumeVerify ([#80443](https://github.com/kubernetes/kubernetes/pull/80443), [@davidz627](https://github.com/davidz627)) +- Promotes VolumePVCDataSource (Cloning) feature to beta for 1.16 release ([#81792](https://github.com/kubernetes/kubernetes/pull/81792), [@j-griffith](https://github.com/j-griffith)) +- Integrated volume limits for in-tree and CSI volumes into one scheduler predicate. ([#77595](https://github.com/kubernetes/kubernetes/pull/77595), [@bertinatto](https://github.com/bertinatto)) + +## Deprecations and Removals + +- API + + - The following APIs are no longer served by default: + + - All resources under `apps/v1beta1` and `apps/v1beta2` - use `apps/v1` instead + - `daemonsets`, `deployments`, `replicasets` resources under `extensions/v1beta1` - use `apps/v1` instead + - `networkpolicies` resources under `extensions/v1beta1` - use `networking.k8s.io/v1` instead + - `podsecuritypolicies` resources under `extensions/v1beta1` - use `policy/v1beta1` instead + + Serving these resources can be temporarily re-enabled using the `--runtime-config` apiserver flag. + + - `apps/v1beta1=true` + - `apps/v1beta2=true` + - `extensions/v1beta1/daemonsets=true,extensions/v1beta1/deployments=true,extensions/v1beta1/replicasets=true,extensions/v1beta1/networkpolicies=true,extensions/v1beta1/podsecuritypolicies=true` + + The ability to serve these resources will be completely removed in v1.18. ([#70672](https://github.com/kubernetes/kubernetes/pull/70672), [@liggitt](https://github.com/liggitt)) + + - Ingress resources will no longer be served from `extensions/v1beta1` in v1.20. Migrate use to the `networking.k8s.io/v1beta1` API, available since v1.14. Existing persisted data can be retrieved via the `networking.k8s.io/v1beta1` API. + - PriorityClass resources will no longer be served from `scheduling.k8s.io/v1beta1` and `scheduling.k8s.io/v1alpha1` in v1.17. Migrate to the `scheduling.k8s.io/v1` API, available since v1.14. Existing persisted data can be retrieved via the `scheduling.k8s.io/v1` API. + - The `export` query parameter for list API calls, deprecated since v1.14, will be removed in v1.18. + - The `series.state` field in the events.k8s.io/v1beta1 Event API is deprecated and will be removed in v1.18 ([#75987](https://github.com/kubernetes/kubernetes/pull/75987), [@yastij](https://github.com/yastij)) + - The `apiextensions.k8s.io/v1beta1` version of `CustomResourceDefinition` is deprecated and will no longer be served in v1.19. Use `apiextensions.k8s.io/v1` instead. ([#79604](https://github.com/kubernetes/kubernetes/pull/79604), [@liggitt](https://github.com/liggitt)) + - The `admissionregistration.k8s.io/v1beta1` versions of `MutatingWebhookConfiguration` and `ValidatingWebhookConfiguration` are deprecated and will no longer be served in v1.19. Use `admissionregistration.k8s.io/v1` instead. ([#79549](https://github.com/kubernetes/kubernetes/pull/79549), [@liggitt](https://github.com/liggitt)) + - The alpha `metadata.initializers` field, deprecated in 1.13, has been removed. ([#79504](https://github.com/kubernetes/kubernetes/pull/79504), [@yue9944882](https://github.com/yue9944882)) + - The deprecated node condition type `OutOfDisk` has been removed. Use the `DiskPressure` condition instead. ([#72420](https://github.com/kubernetes/kubernetes/pull/72420), [@Pingan2017](https://github.com/Pingan2017)) + - The `metadata.selfLink` field is deprecated in individual and list objects. It will no longer be returned starting in v1.20, and the field will be removed entirely in v1.21. ([#80978](https://github.com/kubernetes/kubernetes/pull/80978), [@wojtek-t](https://github.com/wojtek-t)) + - The deprecated cloud providers `ovirt`, `cloudstack` and `photon` have been removed ([#72178](https://github.com/kubernetes/kubernetes/pull/72178), [@dims](https://github.com/dims)) + - The `Cinder` and `ScaleIO` volume providers have been deprecated and will be removed in a future release. ([#80099](https://github.com/kubernetes/kubernetes/pull/80099), [@dims](https://github.com/dims)) + - The GA `PodPriority` feature gate is now on by default and cannot be disabled. The feature gate will be removed in v1.18. ([#79262](https://github.com/kubernetes/kubernetes/pull/79262), [@draveness](https://github.com/draveness)) + - Aggregated discovery requests can now timeout. Aggregated API servers must complete discovery calls within 5 seconds (other requests can take longer). Use the feature gate `EnableAggregatedDiscoveryTimeout=false` to temporarily revert behavior to the previous 30 second timeout if required (the temporary `EnableAggregatedDiscoveryTimeout` feature gate will be removed in v1.17). ([#82146](https://github.com/kubernetes/kubernetes/pull/82146), [@deads2k](https://github.com/deads2k)) + - the `scheduler.alpha.kubernetes.io/critical-pod` annotation is removed. Pod priority (`spec.priorityClassName`) should be used instead to mark pods as critical. ([#80342](https://github.com/kubernetes/kubernetes/pull/80342), [@draveness](https://github.com/draveness)) + - the NormalizeScore plugin set is removed from scheduler framework config API. Use ScorePlugin only. ([#80930](https://github.com/kubernetes/kubernetes/pull/80930), [@liu-cong](https://github.com/liu-cong)) + +- Features: + + - The following features are now GA, and the associated feature gates are deprecated and will be removed in v1.17: + - `GCERegionalPersistentDisk` (since 1.15.0) + - `CustomResourcePublishOpenAPI` + - `CustomResourceSubresources` + - `CustomResourceValidation` + - `CustomResourceWebhookConversion` + - The feature flags `HugePages`, `VolumeScheduling`, `CustomPodDNS` and `PodReadinessGates` have been removed ([#79307](https://github.com/kubernetes/kubernetes/pull/79307), [@draveness](https://github.com/draveness)) + +- hyperkube + + - the `--make-symlinks` flag, deprecated in v1.14, has been removed. ([#80017](https://github.com/kubernetes/kubernetes/pull/80017), [@Pothulapati](https://github.com/Pothulapati)) + +- kube-apiserver + + - the `--basic-auth-file` flag and authentication mode is deprecated and will be removed in a future release. It is not recommended for production environments. ([#81152](https://github.com/kubernetes/kubernetes/pull/81152), [@tedyu](https://github.com/tedyu)) + - the `--cloud-provider-gce-lb-src-cidrs` flag has been deprecated. This flag will be removed once the GCE Cloud Provider is removed from kube-apiserver. ([#81094](https://github.com/kubernetes/kubernetes/pull/81094), [@andrewsykim](https://github.com/andrewsykim)) + - the `--enable-logs-handler` flag and log-serving functionality is deprecated since v1.15, and scheduled to be removed in v1.19. ([#77611](https://github.com/kubernetes/kubernetes/pull/77611), [@rohitsardesai83](https://github.com/rohitsardesai83)) + - Deprecate the default service IP CIDR. The previous default was `10.0.0.0/24` which will be removed in 6 months/2 releases. Cluster admins must specify their own desired value, by using `--service-cluster-ip-range` on kube-apiserver. ([#81668](https://github.com/kubernetes/kubernetes/pull/81668), [@darshanime](https://github.com/darshanime)) + +- kube-proxy + + - the `--resource-container` flag has been removed from kube-proxy, and specifying it will now cause an error. The behavior is now as if you specified `--resource-container=""`. If you previously specified a non-empty `--resource-container`, you can no longer do so as of kubernetes 1.16. ([#78294](https://github.com/kubernetes/kubernetes/pull/78294), [@vllry](https://github.com/vllry)) + +- kube-scheduler + + - Migrate scheduler to use v1beta1 Event API. any tool targeting scheduler events needs to use v1beta1 Event API ([#78447](https://github.com/kubernetes/kubernetes/pull/78447), [@yastij](https://github.com/yastij)) + +- kubeadm + + - The CoreDNS Deployment now checks readiness via the `ready` plugin. + - The `proxy` plugin has been deprecated. The `forward` plugin is to be used instead. + - `kubernetes` plugin removes the `resyncperiod` option. + - The `upstream` option is deprecated and ignored if included. + ([#82127](https://github.com/kubernetes/kubernetes/pull/82127), [@rajansandeep](https://github.com/rajansandeep)) + +- kubectl + + - `kubectl convert`, deprecated since v1.14, will be removed in v1.17. + - The `--export` flag for the `kubectl get` command, deprecated since v1.14, will be removed in v1.18. + - `kubectl cp` no longer supports copying symbolic links from containers; to support this use case, see `kubectl exec --help` for examples using `tar` directly ([#82143](https://github.com/kubernetes/kubernetes/pull/82143), [@soltysh](https://github.com/soltysh)) + - Removed deprecated flag `--include-uninitialized`. ([#80337](https://github.com/kubernetes/kubernetes/pull/80337), [@draveness](https://github.com/draveness)) + +- kubelet + + - the `--containerized` flag was deprecated in 1.14 and has been removed ([#80043](https://github.com/kubernetes/kubernetes/pull/80043), [@dims](https://github.com/dims)) + - the `beta.kubernetes.io/os` and `beta.kubernetes.io/arch` labels, deprecated since v1.14, are targeted for removal in v1.18. + - cAdvisor json endpoints have been deprecated since 1.15. ([#78504](https://github.com/kubernetes/kubernetes/pull/78504), [@dashpole](https://github.com/dashpole)) + - removed the ability to set `kubernetes.io`- or `k8s.io`-prefixed labels via `--node-labels`, other than the [specifically allowed labels/prefixes](https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/0000-20170814-bounding-self-labeling-kubelets.md#proposal). ([#79305](https://github.com/kubernetes/kubernetes/pull/79305), [@paivagustavo](https://github.com/paivagustavo)) + +- client-go + - Remove `DirectCodecFactory` (replaced with `serializer.WithoutConversionCodecFactory`), `DirectEncoder` (replaced with `runtime.WithVersionEncoder`) and `DirectDecoder` (replaced with `runtime.WithoutVersionDecoder`). ([#79263](https://github.com/kubernetes/kubernetes/pull/79263), [@draveness](https://github.com/draveness)) + +## Metrics Changes + +### Added metrics + +- Added metrics `aggregator_openapi_v2_regeneration_count`, `aggregator_openapi_v2_regeneration_gauge` and `apiextension_openapi_v2_regeneration_count` counting the triggering APIService and CRDs and the reason (add, update, delete) when kube-apiserver regenerates the OpenAPI spec. ([#81786](https://github.com/kubernetes/kubernetes/pull/81786), [@sttts](https://github.com/sttts)) +- Added metrics `authentication_attempts` that can be used to understand the attempts of authentication. ([#81509](https://github.com/kubernetes/kubernetes/pull/81509), [@RainbowMango](https://github.com/RainbowMango)) +- Add a new counter metrics `apiserver_admission_webhook_rejection_count` with details about the causing for a webhook rejection. ([#81399](https://github.com/kubernetes/kubernetes/pull/81399), [@roycaihw](https://github.com/roycaihw)) +- NFS Drivers are now enabled to collect metrics, StatFS metrics provider is used to collect the metrics. (@brahmaroutu) ([#75805](https://github.com/kubernetes/kubernetes/pull/75805), [@brahmaroutu](https://github.com/brahmaroutu)) +- Add `container_sockets`, `container_threads`, and `container_threads_max` metrics ([#81972](https://github.com/kubernetes/kubernetes/pull/81972), [@dashpole](https://github.com/dashpole)) +- Add `container_state` label to `running_container_count` kubelet metrics, to get count of containers based on their state(running/exited/created/unknown) ([#81573](https://github.com/kubernetes/kubernetes/pull/81573), [@irajdeep](https://github.com/irajdeep)) +- Added metric `apiserver_watch_events_total` that can be used to understand the number of watch events in the system. ([#78732](https://github.com/kubernetes/kubernetes/pull/78732), [@mborsz](https://github.com/mborsz)) +- Added metric `apiserver_watch_events_sizes` that can be used to estimate sizes of watch events in the system. ([#80477](https://github.com/kubernetes/kubernetes/pull/80477), [@mborsz](https://github.com/mborsz)) +- Added a new Prometheus counter metric `sync_proxy_rules_iptables_restore_failures_total` for kube-proxy iptables-restore failures (both ipvs and iptables modes) + ([#81210](https://github.com/kubernetes/kubernetes/pull/81210), [@figo](https://github.com/figo)) +- kubelet now exports an `kubelet_evictions` metric that counts the number of pod evictions carried out by the kubelet to reclaim resources ([#81377](https://github.com/kubernetes/kubernetes/pull/81377), [@sjenning](https://github.com/sjenning)) + +### Removed metrics + +- Removed cadvisor metric labels `pod_name` and `container_name` to match instrumentation guidelines. Any Prometheus queries that match `pod_name` and `container_name` labels (e.g. cadvisor or kubelet probe metrics) must be updated to use `pod` and `container` instead. ([#80376](https://github.com/kubernetes/kubernetes/pull/80376), [@ehashman](https://github.com/ehashman)) + +### Depreciated/changed metrics + +- kube-controller-manager and cloud-controller-manager metrics are now marked as with the ALPHA stability level. ([#81624](https://github.com/kubernetes/kubernetes/pull/81624), [@logicalhan](https://github.com/logicalhan)) +- kube-proxy metrics are now marked as with the ALPHA stability level. ([#81626](https://github.com/kubernetes/kubernetes/pull/81626), [@logicalhan](https://github.com/logicalhan)) +- kube-apiserver metrics are now marked as with the ALPHA stability level. ([#81531](https://github.com/kubernetes/kubernetes/pull/81531), [@logicalhan](https://github.com/logicalhan)) +- kubelet metrics for /metrics and /metrics/probes are now marked as with the ALPHA stability level. ([#81534](https://github.com/kubernetes/kubernetes/pull/81534), [@logicalhan](https://github.com/logicalhan)) +- Scheduler metrics are now marked as with the ALPHA stability level. ([#81576](https://github.com/kubernetes/kubernetes/pull/81576), [@logicalhan](https://github.com/logicalhan)) +- The `rejected` label in `apiserver_admission_webhook_admission_duration_seconds` metrics now properly indicates if the request was rejected. ([#81399](https://github.com/kubernetes/kubernetes/pull/81399), [@roycaihw](https://github.com/roycaihw)) +- Fixed a bug in the CSI metrics that does not return not supported error when a CSI driver does not support metrics. ([#79851](https://github.com/kubernetes/kubernetes/pull/79851), [@jparklab](https://github.com/jparklab)) +- Fix disk stats in LXD using ZFS storage pool and CRI-O missing network metris bug ([#81972](https://github.com/kubernetes/kubernetes/pull/81972), [@dashpole](https://github.com/dashpole)) + +## Notable Features + +### Beta + +- Promote WatchBookmark feature to beta and enable it by default. + With WatchBookmark feature, clients are able to request watch events with BOOKMARK type. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. ([#79786](https://github.com/kubernetes/kubernetes/pull/79786), [@wojtek-t](https://github.com/wojtek-t)) +- The server-side apply feature is now beta ([#81956](https://github.com/kubernetes/kubernetes/pull/81956), [@apelisse](https://github.com/apelisse)) +- Server-side apply will now use the openapi provided in the CRD validation field to help figure out how to correctly merge objects and update ownership. ([#77354](https://github.com/kubernetes/kubernetes/pull/77354), [@jennybuckley](https://github.com/jennybuckley)) +- The `CustomResourceDefaulting` feature is promoted to beta and enabled by default. Defaults may be specified in structural schemas via the `apiextensions.k8s.io/v1` API. See https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/#specifying-a-structural-schema for details. ([#81872](https://github.com/kubernetes/kubernetes/pull/81872), [@sttts](https://github.com/sttts)) +- Finalizer Protection for Service LoadBalancers is now in beta (enabled by default). This feature ensures the Service resource is not fully deleted until the correlating load balancer resources are deleted. ([#81691](https://github.com/kubernetes/kubernetes/pull/81691), [@MrHohn](https://github.com/MrHohn)) +- Graduating Windows GMSA support from alpha to beta ([#82110](https://github.com/kubernetes/kubernetes/pull/82110), [@wk8](https://github.com/wk8)) + +### Alpha + +- Introduce a new admission controller for RuntimeClass. Initially, RuntimeClass will be used to apply the pod overhead associated with a given RuntimeClass to the Pod `spec` if a corresponding RuntimeClassName is specified. PodOverhead is an alpha feature as of Kubernetes 1.16. ([#78484](https://github.com/kubernetes/kubernetes/pull/78484), [@egernst](https://github.com/egernst)) +- Introduction of the pod overhead feature to the scheduler. This functionality is alpha-level as of + Kubernetes v1.16, and is only honored by servers that enable the PodOverhead feature.gate. ([#78319](https://github.com/kubernetes/kubernetes/pull/78319), [@egernst](https://github.com/egernst)) +- Ephemeral containers have been added in alpha. These temporary containers can be added to running pods for purposes such as debugging, similar to how `kubectl exec` runs a process in an existing container. Also like `kubectl exec`, no resources are reserved for ephemeral containers and they are not restarted when they exit. Note that container namespace targeting is not yet implemented, so [process namespace sharing](https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/) must be enabled to view process from other containers in the pod. ([#59484](https://github.com/kubernetes/kubernetes/pull/59484), [@verb](https://github.com/verb)) +- Pod spread constraints have been added in alpha. You can use these constraints to control how Pods are spread across the cluster among failure-domains. ([#77327](https://github.com/kubernetes/kubernetes/pull/77327), [#77760](https://github.com/kubernetes/kubernetes/pull/77760), [#77828](https://github.com/kubernetes/kubernetes/pull/77828), [#79062](https://github.com/kubernetes/kubernetes/pull/79062), [#80011](https://github.com/kubernetes/kubernetes/pull/80011), [#81068](https://github.com/kubernetes/kubernetes/pull/81068), [@Huang-Wei](https://github.com/Huang-Wei)) + +### CLI Improvements + +- the new flag `--endpoint-updates-batch-period` in kube-controller-manager can be used to reduce the number of endpoints updates generated by pod changes. ([#80509](https://github.com/kubernetes/kubernetes/pull/80509), [@mborsz](https://github.com/mborsz)) +- the kubectl `--all-namespaces` flag is now honored by `kubectl wait` ([#81468](https://github.com/kubernetes/kubernetes/pull/81468), [@ashutoshgngwr](https://github.com/ashutoshgngwr)) +- `kubectl get -w` now takes an `--output-watch-events` flag to indicate the event type (ADDED, MODIFIED, DELETED) ([#72416](https://github.com/kubernetes/kubernetes/pull/72416), [@liggitt](https://github.com/liggitt)) +- Adds Endpoint Slice support for kubectl when discovery API group is enabled. ([#81795](https://github.com/kubernetes/kubernetes/pull/81795), [@robscott](https://github.com/robscott)) + +### Misc + +- Add `--shutdown-delay-duration` to kube-apiserver in order to delay a graceful shutdown. `/healthz` will keep returning success during this time and requests are normally served, but `/readyz` will return failure immediately. This delay can be used to allow the SDN to update iptables on all nodes and stop sending traffic. ([#74416](https://github.com/kubernetes/kubernetes/pull/74416), [@sttts](https://github.com/sttts)) + Kubeadm now seamlessly migrates the CoreDNS Configuration when upgrading CoreDNS. ([#78033](https://github.com/kubernetes/kubernetes/pull/78033), [@rajansandeep](https://github.com/rajansandeep)) +- Add Endpoint Slice Controller for managing new EndpointSlice resource, disabled by default. ([#81048](https://github.com/kubernetes/kubernetes/pull/81048), [@robscott](https://github.com/robscott)) +- Adds `\livez` for liveness health checking for kube-apiserver. Using the parameter `--maximum-startup-sequence-duration` will allow the liveness endpoint to defer boot-sequence failures for the specified duration period. ([#81969](https://github.com/kubernetes/kubernetes/pull/81969), [@logicalhan](https://github.com/logicalhan)) +- Adds EndpointSlice integration to kube-proxy, can be enabled with EndpointSlice feature gate. ([#81430](https://github.com/kubernetes/kubernetes/pull/81430), [@robscott](https://github.com/robscott)) +- Add status condition to namespace resource ([#73405](https://github.com/kubernetes/kubernetes/pull/73405), [@wozniakjan](https://github.com/wozniakjan)) +- Enhance Azure cloud provider code to support both AAD and ADFS authentication. ([#80841](https://github.com/kubernetes/kubernetes/pull/80841), [@rjaini](https://github.com/rjaini)) +- kubeadm: implement support for concurrent add/remove of stacked etcd members ([#79677](https://github.com/kubernetes/kubernetes/pull/79677), [@neolit123](https://github.com/neolit123)) +- kubeadm: support any Linux kernel version newer than 3.10 ([#81623](https://github.com/kubernetes/kubernetes/pull/81623), [@neolit123](https://github.com/neolit123)) +- Volume expansion is enabled in the default GCE storageclass ([#78672](https://github.com/kubernetes/kubernetes/pull/78672), [@msau42](https://github.com/msau42)) +- kubeadm ClusterConfiguration now supports featureGates: IPv6DualStack: true ([#80145](https://github.com/kubernetes/kubernetes/pull/80145), [@Arvinderpal](https://github.com/Arvinderpal)) +- In order to enable dual-stack support within kubeadm and kubernetes components, as part of the init config file, the user should set feature-gate `IPv6DualStack=true` in the ClusterConfiguration. Additionally, for each worker node, the user should set the feature-gate for kubelet using either `nodeRegistration.kubeletExtraArgs` or `KUBELET_EXTRA_ARGS`. ([#80531](https://github.com/kubernetes/kubernetes/pull/80531), [@Arvinderpal](https://github.com/Arvinderpal)) +- Add possibility to configure controller manager to use IPv6 dual stack: + use `--cluster-cidr="<cidr1>,<cidr2>"`. + Notes: + 1. Only the first two CIDRs are used (soft limits for Alpha, might be lifted later on). + 2. Only the "RangeAllocator" (default) is allowed as a value for `--cidr-allocator-type`. Cloud allocators are not compatible with IPv6 dual stack + ([#73977](https://github.com/kubernetes/kubernetes/pull/73977), [@khenidak](https://github.com/khenidak)) +- Add scheduling support for RuntimeClasses. RuntimeClasses can now specify nodeSelector constraints & tolerations, which are merged into the PodSpec for pods using that RuntimeClass. ([#80825](https://github.com/kubernetes/kubernetes/pull/80825), [@tallclair](https://github.com/tallclair)) +- When specifying `--(kube|system)-reserved-cgroup`, with `--cgroup-driver=systemd`, it is now possible to use the fully qualified cgroupfs name (i.e. `/test-cgroup.slice`). ([#78793](https://github.com/kubernetes/kubernetes/pull/78793), [@mattjmcnaughton](https://github.com/mattjmcnaughton)) +- Adds support for vSphere volumes on Windows ([#80911](https://github.com/kubernetes/kubernetes/pull/80911), [@gab-satchi](https://github.com/gab-satchi)) + +## API Changes + +- The `MutatingWebhookConfiguration` and `ValidatingWebhookConfiguration` APIs have been promoted to `admissionregistration.k8s.io/v1`: + - `failurePolicy` default changed from `Ignore` to `Fail` for v1 + - `matchPolicy` default changed from `Exact` to `Equivalent` for v1 + - `timeout` default changed from `30s` to `10s` for v1 + - `sideEffects` default value is removed, and the field made required, and only `None` and `NoneOnDryRun` are permitted for v1 + - `admissionReviewVersions` default value is removed and the field made required for v1 (supported versions for AdmissionReview are `v1` and `v1beta1`) + - The `name` field for specified webhooks must be unique for `MutatingWebhookConfiguration` and `ValidatingWebhookConfiguration` objects created via `admissionregistration.k8s.io/v1` +- The `AdmissionReview` API sent to and received from admission webhooks has been promoted to `admission.k8s.io/v1`. Webhooks can specify a preference for receiving `v1` AdmissionReview objects with `admissionReviewVersions: ["v1","v1beta1"]`, and must respond with an API object in the same `apiVersion` they are sent. When webhooks use `admission.k8s.io/v1`, the following additional validation is performed on their responses: + - `response.patch` and `response.patchType` are not permitted from validating admission webhooks + - `apiVersion: "admission.k8s.io/v1"` is required + - `kind: "AdmissionReview"` is required + - `response.uid: "<value of request.uid>"` is required + - `response.patchType: "JSONPatch"` is required (if `response.patch` is set) ([#80231](https://github.com/kubernetes/kubernetes/pull/80231), [@liggitt](https://github.com/liggitt)) +- The `CustomResourceDefinition` API type is promoted to `apiextensions.k8s.io/v1` with the following changes: + - Use of the new `default` feature in validation schemas is limited to v1 + - `spec.scope` is no longer defaulted to `Namespaced` and must be explicitly specified + - `spec.version` is removed in v1; use `spec.versions` instead + - `spec.validation` is removed in v1; use `spec.versions[*].schema` instead + - `spec.subresources` is removed in v1; use `spec.versions[*].subresources` instead + - `spec.additionalPrinterColumns` is removed in v1; use `spec.versions[*].additionalPrinterColumns` instead + - `spec.conversion.webhookClientConfig` is moved to `spec.conversion.webhook.clientConfig` in v1 + - `spec.conversion.conversionReviewVersions` is moved to `spec.conversion.webhook.conversionReviewVersions` in v1 + - `spec.versions[*].schema.openAPIV3Schema` is now required when creating v1 CustomResourceDefinitions + - `spec.preserveUnknownFields: true` is disallowed when creating v1 CustomResourceDefinitions; it must be specified within schema definitions as `x-kubernetes-preserve-unknown-fields: true` + - In `additionalPrinterColumns` items, the `JSONPath` field was renamed to `jsonPath` in v1 (fixes https://github.com/kubernetes/kubernetes/issues/66531) + The `apiextensions.k8s.io/v1beta1` version of `CustomResourceDefinition` is deprecated and will no longer be served in v1.19. ([#79604](https://github.com/kubernetes/kubernetes/pull/79604), [@liggitt](https://github.com/liggitt)) +- The `ConversionReview` API sent to and received from custom resource CustomResourceDefinition conversion webhooks has been promoted to `apiextensions.k8s.io/v1`. CustomResourceDefinition conversion webhooks can now indicate they support receiving and responding with `ConversionReview` API objects in the `apiextensions.k8s.io/v1` version by including `v1` in the `conversionReviewVersions` list in their CustomResourceDefinition. Conversion webhooks must respond with a ConversionReview object in the same apiVersion they receive. `apiextensions.k8s.io/v1` `ConversionReview` responses must specify a `response.uid` that matches the `request.uid` of the object they were sent. ([#81476](https://github.com/kubernetes/kubernetes/pull/81476), [@liggitt](https://github.com/liggitt)) +- Add scheduling support for RuntimeClasses. RuntimeClasses can now specify nodeSelector constraints & tolerations, which are merged into the PodSpec for pods using that RuntimeClass. ([#80825](https://github.com/kubernetes/kubernetes/pull/80825), [@tallclair](https://github.com/tallclair)) +- Kubelet should now more reliably report the same primary node IP even if the set of node IPs reported by the CloudProvider changes. ([#79391](https://github.com/kubernetes/kubernetes/pull/79391), [@danwinship](https://github.com/danwinship)) +- Omit nil or empty field when calculating container hash value to avoid hash changed. For a new field with a non-nil default value in the container spec, the hash would still get changed. ([#57741](https://github.com/kubernetes/kubernetes/pull/57741), [@dixudx](https://github.com/dixudx)) +- Property `conditions` in `apiextensions.v1beta1.CustomResourceDefinitionStatus` and `apiextensions.v1.CustomResourceDefinitionStatus` is now optional instead of required. ([#64996](https://github.com/kubernetes/kubernetes/pull/64996), [@roycaihw](https://github.com/roycaihw)) +- When the status of a CustomResourceDefinition condition changes, its corresponding `lastTransitionTime` is now updated. ([#69655](https://github.com/kubernetes/kubernetes/pull/69655), [@CaoShuFeng](https://github.com/CaoShuFeng)) + +## Other notable changes + +### API Machinery + +- Remove `GetReference()` and `GetPartialReference()` function from `pkg/api/ref`, as the same function exists also in `staging/src/k8s.io/client-go/tools/ref` ([#80361](https://github.com/kubernetes/kubernetes/pull/80361), [@wojtek-t](https://github.com/wojtek-t)) +- Verify that CRD default values in OpenAPI specs are pruned, with the exceptions of values under `metadata`. ([#78829](https://github.com/kubernetes/kubernetes/pull/78829), [@sttts](https://github.com/sttts)) +- Fixes a bug that when there is a "connection refused" error, the reflector's ListAndWatch func will return directly but what expected is that sleep 1 second and rewatch since the specified resourceVersion. + ([#81634](https://github.com/kubernetes/kubernetes/pull/81634), [@likakuli](https://github.com/likakuli)) +- Resolves an issue serving aggregated APIs backed by services that respond to requests to `/` with non-2xx HTTP responses ([#79895](https://github.com/kubernetes/kubernetes/pull/79895), [@deads2k](https://github.com/deads2k)) +- The CRD handler now properly re-creates stale CR storage to reflect CRD update. ([#79114](https://github.com/kubernetes/kubernetes/pull/79114), [@roycaihw](https://github.com/roycaihw)) +- Fix CVE-2019-11247: API server allows access to custom resources via wrong scope ([#80750](https://github.com/kubernetes/kubernetes/pull/80750), [@sttts](https://github.com/sttts)) +- Fixed a bug with the openAPI definition for `io.k8s.apimachinery.pkg.runtime.RawExtension`, which previously required a field `raw` to be specified ([#80773](https://github.com/kubernetes/kubernetes/pull/80773), [@jennybuckley](https://github.com/jennybuckley)) +- Property `conditions` in `apiextensions.v1beta1.CustomResourceDefinitionStatus` and `apiextensions.v1.CustomResourceDefinitionStatus` is now optional instead of required. ([#64996](https://github.com/kubernetes/kubernetes/pull/64996), [@roycaihw](https://github.com/roycaihw)) +- Resolves a transient 404 response to custom resource requests during server startup ([#81244](https://github.com/kubernetes/kubernetes/pull/81244), [@liggitt](https://github.com/liggitt)) +- OpenAPI now advertises correctly supported patch types for custom resources ([#81515](https://github.com/kubernetes/kubernetes/pull/81515), [@liggitt](https://github.com/liggitt)) +- When the status of a CRD Condition changes, it's corresponding `LastTransitionTime` is now updated. ([#69655](https://github.com/kubernetes/kubernetes/pull/69655), [@CaoShuFeng](https://github.com/CaoShuFeng)) +- Add `metadata.generation=1` to old CustomResources. ([#82005](https://github.com/kubernetes/kubernetes/pull/82005), [@sttts](https://github.com/sttts)) +- Fix a bug in the apiserver that could cause a valid update request to be rejected with a precondition check failure. ([#82303](https://github.com/kubernetes/kubernetes/pull/82303), [@roycaihw](https://github.com/roycaihw)) +- Fixes regression in logging spurious stack traces when proxied connections are closed by the backend ([#82588](https://github.com/kubernetes/kubernetes/pull/82588), [@liggitt](https://github.com/liggitt)) +- RateLimiter add a context-aware method, fix client-go request goruntine backlog in async timeout scene. ([#79375](https://github.com/kubernetes/kubernetes/pull/79375), [@answer1991](https://github.com/answer1991)) +- Add a `Patch` method to `ScaleInterface` ([#80699](https://github.com/kubernetes/kubernetes/pull/80699), [@knight42](https://github.com/knight42)) +- CRDs under k8s.io and kubernetes.io must have the `api-approved.kubernetes.io` set to either `unapproved.*` or a link to the pull request approving the schema. See https://github.com/kubernetes/enhancements/pull/1111 for more details. ([#79992](https://github.com/kubernetes/kubernetes/pull/79992), [@deads2k](https://github.com/deads2k)) +- KMS Providers will install a healthz check for the status of kms-plugin in kube-apiservers' encryption config. ([#78540](https://github.com/kubernetes/kubernetes/pull/78540), [@immutableT](https://github.com/immutableT)) +- Improves validation errors for custom resources ([#81212](https://github.com/kubernetes/kubernetes/pull/81212), [@liggitt](https://github.com/liggitt)) +- Populate object name for admission attributes when CREATE ([#53185](https://github.com/kubernetes/kubernetes/pull/53185), [@dixudx](https://github.com/dixudx)) +- Add Overhead field to the PodSpec and RuntimeClass types as part of the Pod Overhead KEP ([#76968](https://github.com/kubernetes/kubernetes/pull/76968), [@egernst](https://github.com/egernst)) + +### Apps + +- Fix a bug that pods not be deleted from unmatched nodes by daemon controller ([#78974](https://github.com/kubernetes/kubernetes/pull/78974), [@DaiHao](https://github.com/DaiHao)) +- Fix a bug that causes DaemonSet rolling update hang when there exist failed pods. ([#78170](https://github.com/kubernetes/kubernetes/pull/78170), [@DaiHao](https://github.com/DaiHao)) + +### Auth + +- Service account tokens now include the JWT Key ID field in their header. ([#78502](https://github.com/kubernetes/kubernetes/pull/78502), [@ahmedtd](https://github.com/ahmedtd)) +- The nbf (not before) claim, if present in ID token, is now enforced. ([#81413](https://github.com/kubernetes/kubernetes/pull/81413), [@anderseknert](https://github.com/anderseknert)) + +### CLI + +- Fix CVE-2019-11249: Incomplete fixes for CVE-2019-1002101 and CVE-2019-11246, kubectl cp potential directory traversal ([#80436](https://github.com/kubernetes/kubernetes/pull/80436), [@M00nF1sh](https://github.com/M00nF1sh)) +- Fix the bash completion error with override flags. ([#80802](https://github.com/kubernetes/kubernetes/pull/80802), [@dtaniwaki](https://github.com/dtaniwaki)) +- Fix a bug in server printer that could cause kube-apiserver to panic. ([#79349](https://github.com/kubernetes/kubernetes/pull/79349), [@roycaihw](https://github.com/roycaihw)) +- Fix invalid "time stamp is the future" error when kubectl cp-ing a file ([#73982](https://github.com/kubernetes/kubernetes/pull/73982), [@tanshanshan](https://github.com/tanshanshan)) +- Fix a bug where `kubectl set config` hangs and uses 100% CPU on some invalid property names ([#79000](https://github.com/kubernetes/kubernetes/pull/79000), [@pswica](https://github.com/pswica)) +- Fix output of `kubectl get --watch-only` when watching a single resource ([#79345](https://github.com/kubernetes/kubernetes/pull/79345), [@liggitt](https://github.com/liggitt)) +- Make kubectl get `--ignore-not-found` continue processing when encountering error. ([#82120](https://github.com/kubernetes/kubernetes/pull/82120), [@soltysh](https://github.com/soltysh)) +- Correct a reference to a not/no longer used kustomize subcommand in the documentation ([#82535](https://github.com/kubernetes/kubernetes/pull/82535), [@demobox](https://github.com/demobox)) +- kubectl could scale custom resource again ([#81342](https://github.com/kubernetes/kubernetes/pull/81342), [@knight42](https://github.com/knight42)) +- Add PodOverhead awareness to kubectl ([#81929](https://github.com/kubernetes/kubernetes/pull/81929), [@egernst](https://github.com/egernst)) + +### Cloud Provider + +- When a load balancer type service is created in a k8s cluster that is backed by Azure Standard Load Balancer, the corresponding load balancer rule added in the Azure Standard Load Balancer would now have the "EnableTcpReset" property set to true. ([#80624](https://github.com/kubernetes/kubernetes/pull/80624), [@xuto2](https://github.com/xuto2)) +- Switch to VM Update call in attach/detach disk operation, original CreateOrUpdate call may lead to orphaned VMs or blocked resources ([#81208](https://github.com/kubernetes/kubernetes/pull/81208), [@andyzhangx](https://github.com/andyzhangx)) +- Fix azure disk naming matching issue due to case sensitive comparison ([#81720](https://github.com/kubernetes/kubernetes/pull/81720), [@andyzhangx](https://github.com/andyzhangx)) +- Fix retry issues when the nodes are under deleting on Azure ([#80419](https://github.com/kubernetes/kubernetes/pull/80419), [@feiskyer](https://github.com/feiskyer)) +- Fix conflicted cache when the requests are canceled by other Azure operations. ([#81282](https://github.com/kubernetes/kubernetes/pull/81282), [@feiskyer](https://github.com/feiskyer)) +- Fix make azure disk URI as case insensitive ([#79020](https://github.com/kubernetes/kubernetes/pull/79020), [@andyzhangx](https://github.com/andyzhangx)) +- Fix VMSS LoadBalancer backend pools so that the network won't be broken when instances are upgraded to latest model ([#81411](https://github.com/kubernetes/kubernetes/pull/81411), [@nilo19](https://github.com/nilo19)) +- Default resourceGroup should be used when the value of annotation azure-load-balancer-resource-group is an empty string. ([#79514](https://github.com/kubernetes/kubernetes/pull/79514), [@feiskyer](https://github.com/feiskyer)) +- Kubelet could be run with no Azure identity without subscriptionId configured now. + A sample cloud provider configure is: '{"vmType": "vmss", "useInstanceMetadata": true}'. ([#81500](https://github.com/kubernetes/kubernetes/pull/81500), [@feiskyer](https://github.com/feiskyer)) +- Fix public IP not found issues for VMSS nodes ([#80703](https://github.com/kubernetes/kubernetes/pull/80703), [@feiskyer](https://github.com/feiskyer)) +- Fix Azure client requests stuck issues on http.StatusTooManyRequests (HTTP Code 429). ([#81279](https://github.com/kubernetes/kubernetes/pull/81279), [@feiskyer](https://github.com/feiskyer)) +- Add a service annotation `service.beta.kubernetes.io/azure-pip-name` to specify the public IP name for Azure load balancer. ([#81213](https://github.com/kubernetes/kubernetes/pull/81213), [@nilo19](https://github.com/nilo19)) +- Optimize EC2 DescribeInstances API calls in aws cloud provider library by querying instance ID instead of EC2 filters when possible ([#78140](https://github.com/kubernetes/kubernetes/pull/78140), [@zhan849](https://github.com/zhan849)) +- Creates an annotation `service.beta.kubernetes.io/aws-load-balancer-eip-allocations` to assign AWS EIP to the newly created Network Load Balancer. Number of allocations and subnets must match. ([#69263](https://github.com/kubernetes/kubernetes/pull/69263), [@brooksgarrett](https://github.com/brooksgarrett)) +- Add an azure cloud configuration `LoadBalancerName` and `LoadBalancerResourceGroup` to allow the corresponding customizations of azure load balancer. ([#81054](https://github.com/kubernetes/kubernetes/pull/81054), [@nilo19](https://github.com/nilo19)) + +### Cluster Lifecycle + +- Fix error handling and potential go null pointer exception in kubeadm upgrade diff ([#80648](https://github.com/kubernetes/kubernetes/pull/80648), [@odinuge](https://github.com/odinuge)) +- kubeadm: fall back to client version in case of certain HTTP errors ([#80024](https://github.com/kubernetes/kubernetes/pull/80024), [@RainbowMango](https://github.com/RainbowMango)) +- kubeadm: fix a potential panic if kubeadm discovers an invalid, existing kubeconfig file ([#79165](https://github.com/kubernetes/kubernetes/pull/79165), [@neolit123](https://github.com/neolit123)) +- kubeadm: treat non-fatal errors as warnings when doing reset ([#80862](https://github.com/kubernetes/kubernetes/pull/80862), [@drpaneas](https://github.com/drpaneas)) +- kubeadm: prevent PSP blocking of upgrade image prepull by using a non-root user ([#77792](https://github.com/kubernetes/kubernetes/pull/77792), [@neolit123](https://github.com/neolit123)) +- kubeadm: fix "certificate-authority" files not being pre-loaded when using file discovery ([#80966](https://github.com/kubernetes/kubernetes/pull/80966), [@neolit123](https://github.com/neolit123)) +- Add instruction to setup "Application Default Credentials" to run GCE Windows e2e tests locally. ([#81337](https://github.com/kubernetes/kubernetes/pull/81337), [@YangLu1031](https://github.com/YangLu1031)) +- Fix error in `kubeadm join --discovery-file` when using discovery files with embedded credentials ([#80675](https://github.com/kubernetes/kubernetes/pull/80675), [@fabriziopandini](https://github.com/fabriziopandini)) +- Fix remove the etcd member from the cluster during a kubeadm reset. ([#79326](https://github.com/kubernetes/kubernetes/pull/79326), [@bradbeam](https://github.com/bradbeam)) +- kubeadm: the permissions of generated CSR files are changed from 0644 to 0600 ([#81217](https://github.com/kubernetes/kubernetes/pull/81217), [@SataQiu](https://github.com/SataQiu)) +- kubeadm: avoid double deletion of the upgrade prepull DaemonSet ([#80798](https://github.com/kubernetes/kubernetes/pull/80798), [@xlgao-zju](https://github.com/xlgao-zju)) +- kubeadm: introduce deterministic ordering for the certificates generation in the phase command `kubeadm init phase certs`. ([#78556](https://github.com/kubernetes/kubernetes/pull/78556), [@neolit123](https://github.com/neolit123)) +- kubeadm: implement retry logic for certain ConfigMap failures when joining nodes ([#78915](https://github.com/kubernetes/kubernetes/pull/78915), [@ereslibre](https://github.com/ereslibre)) +- kubeadm: use etcd's /health endpoint for a HTTP liveness probe on localhost instead of having a custom health check using etcdctl ([#81385](https://github.com/kubernetes/kubernetes/pull/81385), [@neolit123](https://github.com/neolit123)) +- kubeadm reset: unmount directories under `/var/lib/kubelet` for Linux only ([#81494](https://github.com/kubernetes/kubernetes/pull/81494), [@Klaven](https://github.com/Klaven)) +- kubeadm: fix the bug that `--cri-socket` flag does not work for `kubeadm reset` ([#79498](https://github.com/kubernetes/kubernetes/pull/79498), [@SataQiu](https://github.com/SataQiu)) +- kubeadm: produce errors if they occur when resetting cluster status for a control-plane node ([#80573](https://github.com/kubernetes/kubernetes/pull/80573), [@bart0sh](https://github.com/bart0sh)) +- Fix an error when using external etcd but storing etcd certificates in the same folder with the same name used by kubeadm for local etcd certificates; for an older version of kubeadm, the workaround is to avoid file name used by kubeadm for local etcd. ([#80867](https://github.com/kubernetes/kubernetes/pull/80867), [@fabriziopandini](https://github.com/fabriziopandini)) +- `kubeadm join` fails if file-based discovery is too long, with a default timeout of 5 minutes. ([#80804](https://github.com/kubernetes/kubernetes/pull/80804), [@olivierlemasle](https://github.com/olivierlemasle)) +- kubeadm: fixed ignoring errors when pulling control plane images ([#80529](https://github.com/kubernetes/kubernetes/pull/80529), [@bart0sh](https://github.com/bart0sh)) +- Fix a bug in kube-addon-manager's leader election logic that made all replicas active. ([#80575](https://github.com/kubernetes/kubernetes/pull/80575), [@mborsz](https://github.com/mborsz)) +- kubeadm: prevent overriding of certain kubelet security configuration parameters if the user wished to modify them ([#81903](https://github.com/kubernetes/kubernetes/pull/81903), [@jfbai](https://github.com/jfbai)) +- kubeadm no longer performs IPVS checks as part of its preflight checks ([#81791](https://github.com/kubernetes/kubernetes/pull/81791), [@yastij](https://github.com/yastij)) +- kubeadm: fix for HTTPProxy check for IPv6 addresses ([#82267](https://github.com/kubernetes/kubernetes/pull/82267), [@kad](https://github.com/kad)) +- kubeadm: Allow users to skip the kube-proxy init addon phase during init and still be able to join a cluster and perform some other minor operations (but not upgrade). ([#82248](https://github.com/kubernetes/kubernetes/pull/82248), [@rosti](https://github.com/rosti)) +- Mounts `/home/kubernetes/bin/nvidia/vulkan/icd.d` on the host to `/etc/vulkan/icd.d` inside containers requesting GPU. ([#78868](https://github.com/kubernetes/kubernetes/pull/78868), [@chardch](https://github.com/chardch)) +- kubeadm: use the `--pod-network-cidr` flag to init or use the podSubnet field in the kubeadm config to pass a comma separated list of pod CIDRs. ([#79033](https://github.com/kubernetes/kubernetes/pull/79033), [@Arvinderpal](https://github.com/Arvinderpal)) +- kubeadm: provide `--control-plane-endpoint` flag for `controlPlaneEndpoint` ([#79270](https://github.com/kubernetes/kubernetes/pull/79270), [@SataQiu](https://github.com/SataQiu)) +- kubeadm: enable secure serving for the kube-scheduler ([#80951](https://github.com/kubernetes/kubernetes/pull/80951), [@neolit123](https://github.com/neolit123)) +- kubeadm: print the stack trace of an error for klog level `--v>=5` ([#80937](https://github.com/kubernetes/kubernetes/pull/80937), [@neolit123](https://github.com/neolit123)) +- Add `--kubernetes-version` to `kubeadm init phase certs ca` and `kubeadm init phase kubeconfig` ([#80115](https://github.com/kubernetes/kubernetes/pull/80115), [@gyuho](https://github.com/gyuho)) +- kubeadm: support fetching configuration from the original cluster for `upgrade diff` ([#80025](https://github.com/kubernetes/kubernetes/pull/80025), [@SataQiu](https://github.com/SataQiu)) +- When using the conformance test image, a new environment variable `E2E_USE_GO_RUNNER` will cause the tests to be run with the new golang-based test runner rather than the current bash wrapper. ([#79284](https://github.com/kubernetes/kubernetes/pull/79284), [@johnSchnake](https://github.com/johnSchnake)) +- Implement a new feature that allows applying kustomize patches to static pod manifests generated by kubeadm. ([#80905](https://github.com/kubernetes/kubernetes/pull/80905), [@fabriziopandini](https://github.com/fabriziopandini)) +- The 404 request handler for the GCE Ingress load balancer now exports prometheus metrics, including: + + - `http_404_request_total` (the number of 404 requests handled) + - `http_404_request_duration_ms` (the amount of time the server took to respond in ms) + + Also includes percentile groupings. The directory for the default 404 handler includes instructions on how to enable prometheus for monitoring and setting alerts. + ([#79106](https://github.com/kubernetes/kubernetes/pull/79106), [@vbannai](https://github.com/vbannai)) + +### Instrumentation + +- Kibana has been slightly revamped/improved in the latest version ([#80421](https://github.com/kubernetes/kubernetes/pull/80421), [@lostick](https://github.com/lostick)) + +### Network + +- Fix a string comparison bug in IPVS graceful termination where UDP real servers are not deleted. ([#78999](https://github.com/kubernetes/kubernetes/pull/78999), [@andrewsykim](https://github.com/andrewsykim)) +- `kube-proxy --cleanup will` return the correct exit code if the cleanup was successful ([#78775](https://github.com/kubernetes/kubernetes/pull/78775), [@johscheuer](https://github.com/johscheuer)) +- Fix a bug in the IPVS proxier where virtual servers are not cleaned up even though the corresponding Service object was deleted. ([#80942](https://github.com/kubernetes/kubernetes/pull/80942), [@gongguan](https://github.com/gongguan)) +- kube-proxy waits for some duration for the node to be defined. ([#77167](https://github.com/kubernetes/kubernetes/pull/77167), [@paulsubrata55](https://github.com/paulsubrata55)) +- Increase log level for graceful termination to `v=5` ([#80100](https://github.com/kubernetes/kubernetes/pull/80100), [@andrewsykim](https://github.com/andrewsykim)) +- Reduce kube-proxy CPU usage in IPVS mode when a large number of nodePort services exist. ([#79444](https://github.com/kubernetes/kubernetes/pull/79444), [@cezarsa](https://github.com/cezarsa)) +- Fix in kube-proxy for SCTP nodeport service which only works for node's InternalIP, but doesn't work for other IPs present in the node when ipvs is enabled. ([#81477](https://github.com/kubernetes/kubernetes/pull/81477), [@paulsubrata55](https://github.com/paulsubrata55)) +- Ensure the `KUBE-MARK-DROP` chain in kube-proxy IPVS mode. The chain is ensured for both IPv4 and IPv6 in dual-stack operation. ([#82214](https://github.com/kubernetes/kubernetes/pull/82214), [@uablrek](https://github.com/uablrek)) +- Introduce `node.kubernetes.io/exclude-balancer` and `node.kubernetes.io/exclude-disruption` labels in alpha to prevent cluster deployers from being dependent on the optional `node-role` labels which not all clusters may provide. ([#80238](https://github.com/kubernetes/kubernetes/pull/80238), [@smarterclayton](https://github.com/smarterclayton)) +- If targetPort is changed that will process by service controller ([#77712](https://github.com/kubernetes/kubernetes/pull/77712), [@Sn0rt](https://github.com/Sn0rt)) + +### Node + +- Remove PIDs cgroup controller requirement when related feature gates are disabled + ([#79073](https://github.com/kubernetes/kubernetes/pull/79073), [@rafatio](https://github.com/rafatio)) +- Fix kubelet NodeLease potential performance issues. Kubelet now will try to update lease using cached one instead of get from API Server every time. ([#81174](https://github.com/kubernetes/kubernetes/pull/81174), [@answer1991](https://github.com/answer1991)) +- Passing an invalid policy name in the `--cpu-manager-policy` flag will now cause the kubelet to fail instead of simply ignoring the flag and running the `cpumanager`’s default policy instead. ([#80294](https://github.com/kubernetes/kubernetes/pull/80294), [@klueska](https://github.com/klueska)) +- Make node lease renew interval more heuristic based on node-status-update-frequency in kubelet ([#80173](https://github.com/kubernetes/kubernetes/pull/80173), [@gaorong](https://github.com/gaorong)) +- Kubelet should now more reliably report the same primary node IP even if the set of node IPs reported by the CloudProvider changes. ([#79391](https://github.com/kubernetes/kubernetes/pull/79391), [@danwinship](https://github.com/danwinship)) +- Omit `nil` or empty field when calculating container hash value to avoid hash changed. For a new field with a non-nil default value in the container spec, the hash would still get changed. ([#57741](https://github.com/kubernetes/kubernetes/pull/57741), [@dixudx](https://github.com/dixudx)) +- Fix a bug where kubelet would not retry pod sandbox creation when the restart policy of the pod is Never ([#79451](https://github.com/kubernetes/kubernetes/pull/79451), [@yujuhong](https://github.com/yujuhong)) +- Limit the body length of exec readiness/liveness probes. remote CRIs and Docker shim read a max of 16MB output of which the exec probe itself inspects 10kb. ([#82514](https://github.com/kubernetes/kubernetes/pull/82514), [@dims](https://github.com/dims)) +- Single static pod files and pod files from http endpoints cannot be larger than 10 MB. HTTP probe payloads are now truncated to 10KB. ([#82669](https://github.com/kubernetes/kubernetes/pull/82669), [@rphillips](https://github.com/rphillips)) +- Introduce support for applying pod overhead to pod cgroups, if the PodOverhead feature is enabled. ([#79247](https://github.com/kubernetes/kubernetes/pull/79247), [@egernst](https://github.com/egernst)) +- Node-Problem-Detector v0.7.1 is used on GCI ([#80726](https://github.com/kubernetes/kubernetes/pull/80726), [@wangzhen127](https://github.com/wangzhen127)) +- Node-Problem-Detector v0.7.1 is used for addon daemonset. ([#82140](https://github.com/kubernetes/kubernetes/pull/82140), [@wangzhen127](https://github.com/wangzhen127)) +- Enable cAdvisor ProcessMetrics collecting. ([#79002](https://github.com/kubernetes/kubernetes/pull/79002), [@jiayingz](https://github.com/jiayingz)) +- kubelet: change `node-lease-renew-interval` to 0.25 of lease-renew-duration ([#80429](https://github.com/kubernetes/kubernetes/pull/80429), [@gaorong](https://github.com/gaorong)) +- Attempt to set the kubelet's hostname & internal IP if `--cloud-provider=external` and no node addresses exists ([#75229](https://github.com/kubernetes/kubernetes/pull/75229), [@andrewsykim](https://github.com/andrewsykim)) + +### Scheduling + +- Scheduler should terminate when it loses leader lock. ([#81306](https://github.com/kubernetes/kubernetes/pull/81306), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- If scheduler extender filtered a not found node, current scheduling round for this pod will just be skipped. + ([#79641](https://github.com/kubernetes/kubernetes/pull/79641), [@yqwang-ms](https://github.com/yqwang-ms)) +- Extender bind should respect IsInterested ([#79804](https://github.com/kubernetes/kubernetes/pull/79804), [@yqwang-ms](https://github.com/yqwang-ms)) +- Fix an issue with toleration merging & whitelist checking in the PodTolerationRestriction admission controller. ([#81732](https://github.com/kubernetes/kubernetes/pull/81732), [@tallclair](https://github.com/tallclair)) +- Add a helper function to decode scheduler plugin args. ([#80696](https://github.com/kubernetes/kubernetes/pull/80696), [@hex108](https://github.com/hex108)) +- Fix filter plugins are not been called during preemption ([#81876](https://github.com/kubernetes/kubernetes/pull/81876), [@wgliang](https://github.com/wgliang)) +- Fix an issue that the correct PluginConfig.Args is not passed to the corresponding PluginFactory in kube-scheduler when multiple PluginConfig items are defined. ([#82483](https://github.com/kubernetes/kubernetes/pull/82483), [@everpeace](https://github.com/everpeace)) +- Take the context as the first argument of Schedule. ([#82119](https://github.com/kubernetes/kubernetes/pull/82119), [@wgliang](https://github.com/wgliang)) +- Implement `post-filter` extension point for scheduling framework ([#78097](https://github.com/kubernetes/kubernetes/pull/78097), [@draveness](https://github.com/draveness)) +- Add Bind extension point of the scheduling framework ([#78513](https://github.com/kubernetes/kubernetes/pull/78513), [@chenchun](https://github.com/chenchun)) +- Add Filter extension point to the scheduling framework. ([#78477](https://github.com/kubernetes/kubernetes/pull/78477), [@YoubingLi](https://github.com/YoubingLi)) +- Return error when the scoring plugin returns score out of range `[0, 100]`. ([#81015](https://github.com/kubernetes/kubernetes/pull/81015), [@draveness](https://github.com/draveness)) +- Use a named array instead of a score array in normalizing-score phase. ([#80901](https://github.com/kubernetes/kubernetes/pull/80901), [@draveness](https://github.com/draveness)) +- Updates the `requestedToCapacityRatioArguments` to add resources parameter that allows the users to specify the resource name along with weights for each resource to score nodes based on the request to capacity ratio. ([#77688](https://github.com/kubernetes/kubernetes/pull/77688), [@sudeshsh](https://github.com/sudeshsh)) +- Add `UnschedulableAndUnresolvable` status code for scheduling framework ([#82034](https://github.com/kubernetes/kubernetes/pull/82034), [@alculquicondor](https://github.com/alculquicondor)) +- Add normalize plugin extension point for the scheduling framework. + ([#80383](https://github.com/kubernetes/kubernetes/pull/80383), [@liu-cong](https://github.com/liu-cong)) +- Add Bind extension point to the scheduling framework. ([#79313](https://github.com/kubernetes/kubernetes/pull/79313), [@chenchun](https://github.com/chenchun)) +- Add Score extension point to the scheduling framework. ([#79109](https://github.com/kubernetes/kubernetes/pull/79109), [@ahg-g](https://github.com/ahg-g)) +- Add Pre-filter extension point to the scheduling framework. ([#78005](https://github.com/kubernetes/kubernetes/pull/78005), [@ahg-g](https://github.com/ahg-g)) +- Add support for writing out of tree custom scheduler plugins. ([#78162](https://github.com/kubernetes/kubernetes/pull/78162), [@hex108](https://github.com/hex108)) + +### Storage + +- Fix possible file descriptor leak and closing of dirs in `doSafeMakeDir` ([#79534](https://github.com/kubernetes/kubernetes/pull/79534), [@odinuge](https://github.com/odinuge)) +- Azure disks of shared kind will no longer fail if they do not contain `skuname` or `storageaccounttype`. ([#80837](https://github.com/kubernetes/kubernetes/pull/80837), [@rmweir](https://github.com/rmweir)) +- Fix CSI plugin supporting raw block that does not need attach mounted failed ([#79920](https://github.com/kubernetes/kubernetes/pull/79920), [@cwdsuzhou](https://github.com/cwdsuzhou)) +- Reduces GCE PD Node Attach Limits by 1 since the node boot disk is considered an attachable disk ([#80923](https://github.com/kubernetes/kubernetes/pull/80923), [@davidz627](https://github.com/davidz627)) +- Remove iSCSI volume storage cleartext secrets in logs ([#81215](https://github.com/kubernetes/kubernetes/pull/81215), [@zouyee](https://github.com/zouyee)) +- Fixes validation of VolumeAttachment API objects created with inline volume sources. ([#80945](https://github.com/kubernetes/kubernetes/pull/80945), [@tedyu](https://github.com/tedyu)) +- Changes timeout value in csi plugin from 15s to 2min which fixes the timeout issue ([#79529](https://github.com/kubernetes/kubernetes/pull/79529), [@andyzhangx](https://github.com/andyzhangx)) +- Fix kubelet fail to delete orphaned pod directory when the kubelet's pods directory (default is `/var/lib/kubelet/pods`) symbolically links to another disk device's directory ([#79094](https://github.com/kubernetes/kubernetes/pull/79094), [@gaorong](https://github.com/gaorong)) + +## Testing + +- Fix pod list return value of `framework.WaitForPodsWithLabelRunningReady` ([#78687](https://github.com/kubernetes/kubernetes/pull/78687), [@pohly](https://github.com/pohly)) +- Adding `TerminationGracePeriodSeconds` to the test framework API ([#82170](https://github.com/kubernetes/kubernetes/pull/82170), [@vivekbagade](https://github.com/vivekbagade)) +- `/test/e2e/framework`: Adds a flag `non-blocking-taints` which allows tests to run in environments with tainted nodes. String value should be a comma-separated list. ([#81043](https://github.com/kubernetes/kubernetes/pull/81043), [@johnSchnake](https://github.com/johnSchnake)) +- Move CSI volume expansion to beta. ([#81467](https://github.com/kubernetes/kubernetes/pull/81467), [@bertinatto](https://github.com/bertinatto)) +- Added E2E tests validating WindowsOptions.RunAsUserName. ([#79539](https://github.com/kubernetes/kubernetes/pull/79539), [@bclau](https://github.com/bclau)) +- `framework.ExpectNoError` no longer logs the error and instead relies on using the new `log.Fail` as gomega fail handler. ([#80253](https://github.com/kubernetes/kubernetes/pull/80253), [@pohly](https://github.com/pohly)) + +### Windows + +- On Windows systems, `%USERPROFILE%` is now preferred over `%HOMEDRIVE%\%HOMEPATH%` as the home folder if `%HOMEDRIVE%\%HOMEPATH%` does not contain a `.kube\config` file, and `%USERPROFILE%` exists and is writable. ([#73923](https://github.com/kubernetes/kubernetes/pull/73923), [@liggitt](https://github.com/liggitt)) +- Add support for AWS EBS on windows ([#79552](https://github.com/kubernetes/kubernetes/pull/79552), [@wongma7](https://github.com/wongma7)) +- Support Kubelet plugin watcher on Windows nodes. ([#81397](https://github.com/kubernetes/kubernetes/pull/81397), [@ddebroy](https://github.com/ddebroy)) + +## Dependencies + +### Changed + +- the default Go version was updated to v1.12.9. ([#78958](https://github.com/kubernetes/kubernetes/pull/78958), [#79966](https://github.com/kubernetes/kubernetes/pull/79966), [#81390](https://github.com/kubernetes/kubernetes/pull/81390), [#81489](https://github.com/kubernetes/kubernetes/pull/81489)) +- etcd has been updated to v3.3.15 ([#82199](https://github.com/kubernetes/kubernetes/pull/82199), [@dims](https://github.com/dims)) +- CoreDNS for kubeadm and kube-up has been updated to v1.6.2 ([#82127](https://github.com/kubernetes/kubernetes/pull/82127)) +- Cluster Autoscaler has been updated to v1.16.0 ([#82501](https://github.com/kubernetes/kubernetes/pull/82501), [@losipiuk](https://github.com/losipiuk)) +- fluentd has been updated to v1.5.1 ([#79014](https://github.com/kubernetes/kubernetes/pull/79014)) +- fluentd-elasticsearch plugin has been updated to v3.5.3 ([#79014](https://github.com/kubernetes/kubernetes/pull/79014)) +- elasticsearch has been updated to v7.1.1 ([#79014](https://github.com/kubernetes/kubernetes/pull/79014)) +- kibana has been updated to v7.1.1 ([#79014](https://github.com/kubernetes/kubernetes/pull/79014)) +- Azure SDK and go-autorest API versions have been updated ([#79574](https://github.com/kubernetes/kubernetes/pull/79574)) +- Azure API versions have been updated (container registry to 2018-09-01, network to 2018-08-01) ([#79583](https://github.com/kubernetes/kubernetes/pull/79583)) +- kube-addon-manager has been updated to v9.0.2 ([#80861](https://github.com/kubernetes/kubernetes/pull/80861)) +- golang/x/net has been updated to bring in fixes for CVE-2019-9512, CVE-2019-9514 ([#81394](https://github.com/kubernetes/kubernetes/pull/81394)) +- GCE windows node image has been updated. ([#81106](https://github.com/kubernetes/kubernetes/pull/81106)) +- portworx plugin has been updated on libopenstorage/openstorage to v1.0.0 ([#80495](https://github.com/kubernetes/kubernetes/pull/80495)) +- metrics-server has been updated to v0.3.4 ([#82322](https://github.com/kubernetes/kubernetes/pull/82322), [@olagacek](https://github.com/olagacek)) +- klog has been updated to v0.4.0 ([#81164](https://github.com/kubernetes/kubernetes/pull/81164)) + +### Unchanged + +- The list of validated docker versions remains unchanged. + - The current list is 1.13.1, 17.03, 17.06, 17.09, 18.06, 18.09. ([#72823](https://github.com/kubernetes/kubernetes/pull/72823), [#72831](https://github.com/kubernetes/kubernetes/pull/72831)) +- CNI remains unchanged at v0.7.5. ([#75455](https://github.com/kubernetes/kubernetes/pull/75455)) +- cri-tools remains unchanged at v1.14.0. ([#75658](https://github.com/kubernetes/kubernetes/pull/75658)) +- CAdvisor remains unchanged at v0.33.2. ([#76291](https://github.com/kubernetes/kubernetes/pull/76291)) +- event-exporter remains unchanged at v0.2.5. ([#77815](https://github.com/kubernetes/kubernetes/pull/77815)) +- ip-masq-agent remains unchanged at v2.4.1. ([#77844](https://github.com/kubernetes/kubernetes/pull/77844)) +- k8s-dns-node-cache remains unchanged at v1.15.1 ([#76640](https://github.com/kubernetes/kubernetes/pull/76640), [@george-angel](https://github.com/george-angel)) +- CSI remains unchanged at to v1.1.0. ([#75391](https://github.com/kubernetes/kubernetes/pull/75391)) +- The dashboard add-on remains unchanged at v1.10.1. ([#72495](https://github.com/kubernetes/kubernetes/pull/72495)) +- kube-dns is unchanged at v1.14.13 as of Kubernetes 1.12. ([#68900](https://github.com/kubernetes/kubernetes/pull/68900)) +- Influxdb is unchanged at v1.3.3 as of Kubernetes 1.10. ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +- Grafana is unchanged at v4.4.3 as of Kubernetes 1.10. ([#53319](https://github.com/kubernetes/kubernetes/pull/53319)) +- The fluent-plugin-kubernetes_metadata_filter plugin in fluentd-elasticsearch is unchanged at v2.1.6. ([#71180](https://github.com/kubernetes/kubernetes/pull/71180)) +- fluentd-gcp is unchanged at v3.2.0 as of Kubernetes 1.13. ([#70954](https://github.com/kubernetes/kubernetes/pull/70954)) +- OIDC authentication is unchanged at coreos/go-oidc v2 as of Kubernetes 1.10. ([#58544](https://github.com/kubernetes/kubernetes/pull/58544)) +- Calico is unchanged at v3.3.1 as of Kubernetes 1.13. ([#70932](https://github.com/kubernetes/kubernetes/pull/70932)) +- GLBC remains unchanged at v1.2.3 as of Kubernetes 1.12. ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) +- Ingress-gce remains unchanged at v1.2.3 as of Kubernetes 1.12. ([#66793](https://github.com/kubernetes/kubernetes/pull/66793)) + +### Removed + +- Remove deprecated github.com/kardianos/osext dependency ([#80142](https://github.com/kubernetes/kubernetes/pull/80142)) + +### Detailed go Dependency Changes + +#### Added + +- github.com/Azure/go-autorest/autorest/adal: [v0.5.0](https://github.com/Azure/go-autorest/autorest/adal/tree/v0.5.0) +- github.com/Azure/go-autorest/autorest/date: [v0.1.0](https://github.com/Azure/go-autorest/autorest/date/tree/v0.1.0) +- github.com/Azure/go-autorest/autorest/mocks: [v0.2.0](https://github.com/Azure/go-autorest/autorest/mocks/tree/v0.2.0) +- github.com/Azure/go-autorest/autorest/to: [v0.2.0](https://github.com/Azure/go-autorest/autorest/to/tree/v0.2.0) +- github.com/Azure/go-autorest/autorest/validation: [v0.1.0](https://github.com/Azure/go-autorest/autorest/validation/tree/v0.1.0) +- github.com/Azure/go-autorest/autorest: [v0.9.0](https://github.com/Azure/go-autorest/autorest/tree/v0.9.0) +- github.com/Azure/go-autorest/logger: [v0.1.0](https://github.com/Azure/go-autorest/logger/tree/v0.1.0) +- github.com/Azure/go-autorest/tracing: [v0.5.0](https://github.com/Azure/go-autorest/tracing/tree/v0.5.0) +- github.com/armon/consul-api: [eb2c6b5](https://github.com/armon/consul-api/tree/eb2c6b5) +- github.com/bifurcation/mint: [93c51c6](https://github.com/bifurcation/mint/tree/93c51c6) +- github.com/caddyserver/caddy: [v1.0.3](https://github.com/caddyserver/caddy/tree/v1.0.3) +- github.com/cenkalti/backoff: [v2.1.1+incompatible](https://github.com/cenkalti/backoff/tree/v2.1.1) +- github.com/checkpoint-restore/go-criu: [bdb7599](https://github.com/checkpoint-restore/go-criu/tree/bdb7599) +- github.com/cheekybits/genny: [9127e81](https://github.com/cheekybits/genny/tree/9127e81) +- github.com/coredns/corefile-migration: [v1.0.2](https://github.com/coredns/corefile-migration/tree/v1.0.2) +- github.com/coreos/go-etcd: [v2.0.0+incompatible](https://github.com/coreos/go-etcd/tree/v2.0.0) +- github.com/dustin/go-humanize: [v1.0.0](https://github.com/dustin/go-humanize/tree/v1.0.0) +- github.com/fatih/color: [v1.6.0](https://github.com/fatih/color/tree/v1.6.0) +- github.com/flynn/go-shlex: [3f9db97](https://github.com/flynn/go-shlex/tree/3f9db97) +- github.com/go-acme/lego: [v2.5.0+incompatible](https://github.com/go-acme/lego/tree/v2.5.0) +- github.com/go-bindata/go-bindata: [v3.1.1+incompatible](https://github.com/go-bindata/go-bindata/tree/v3.1.1) +- github.com/go-logr/logr: [v0.1.0](https://github.com/go-logr/logr/tree/v0.1.0) +- github.com/google/martian: [v2.1.0+incompatible](https://github.com/google/martian/tree/v2.1.0) +- github.com/google/pprof: [3ea8567](https://github.com/google/pprof/tree/3ea8567) +- github.com/google/renameio: [v0.1.0](https://github.com/google/renameio/tree/v0.1.0) +- github.com/googleapis/gax-go/v2: [v2.0.4](https://github.com/googleapis/gax-go/v2/tree/v2.0.4) +- github.com/hashicorp/go-syslog: [v1.0.0](https://github.com/hashicorp/go-syslog/tree/v1.0.0) +- github.com/jimstudt/http-authentication: [3eca13d](https://github.com/jimstudt/http-authentication/tree/3eca13d) +- github.com/kisielk/errcheck: [v1.2.0](https://github.com/kisielk/errcheck/tree/v1.2.0) +- github.com/kisielk/gotool: [v1.0.0](https://github.com/kisielk/gotool/tree/v1.0.0) +- github.com/klauspost/cpuid: [v1.2.0](https://github.com/klauspost/cpuid/tree/v1.2.0) +- github.com/kr/pty: [v1.1.5](https://github.com/kr/pty/tree/v1.1.5) +- github.com/kylelemons/godebug: [d65d576](https://github.com/kylelemons/godebug/tree/d65d576) +- github.com/lucas-clemente/aes12: [cd47fb3](https://github.com/lucas-clemente/aes12/tree/cd47fb3) +- github.com/lucas-clemente/quic-clients: [v0.1.0](https://github.com/lucas-clemente/quic-clients/tree/v0.1.0) +- github.com/lucas-clemente/quic-go-certificates: [d2f8652](https://github.com/lucas-clemente/quic-go-certificates/tree/d2f8652) +- github.com/lucas-clemente/quic-go: [v0.10.2](https://github.com/lucas-clemente/quic-go/tree/v0.10.2) +- github.com/marten-seemann/qtls: [v0.2.3](https://github.com/marten-seemann/qtls/tree/v0.2.3) +- github.com/mattn/go-colorable: [v0.0.9](https://github.com/mattn/go-colorable/tree/v0.0.9) +- github.com/mattn/go-isatty: [v0.0.3](https://github.com/mattn/go-isatty/tree/v0.0.3) +- github.com/mholt/certmagic: [6a42ef9](https://github.com/mholt/certmagic/tree/6a42ef9) +- github.com/mitchellh/go-homedir: [v1.1.0](https://github.com/mitchellh/go-homedir/tree/v1.1.0) +- github.com/naoina/go-stringutil: [v0.1.0](https://github.com/naoina/go-stringutil/tree/v0.1.0) +- github.com/naoina/toml: [v0.1.1](https://github.com/naoina/toml/tree/v0.1.1) +- github.com/rogpeppe/go-internal: [v1.3.0](https://github.com/rogpeppe/go-internal/tree/v1.3.0) +- github.com/thecodeteam/goscaleio: [v0.1.0](https://github.com/thecodeteam/goscaleio/tree/v0.1.0) +- github.com/ugorji/go/codec: [d75b2dc](https://github.com/ugorji/go/codec/tree/d75b2dc) +- github.com/xordataexchange/crypt: [b2862e3](https://github.com/xordataexchange/crypt/tree/b2862e3) +- go.opencensus.io: v0.21.0 +- golang.org/x/mod: 4bf6d31 +- gopkg.in/airbrake/gobrake.v2: v2.0.9 +- gopkg.in/errgo.v2: v2.1.0 +- gopkg.in/gemnasium/logrus-airbrake-hook.v2: v2.1.2 +- gopkg.in/mcuadros/go-syslog.v2: v2.2.1 +- gotest.tools/gotestsum: v0.3.5 +- honnef.co/go/tools: v0.0.1-2019.2.2 + +#### Changed + +- cloud.google.com/go: v0.34.0 → v0.38.0 +- github.com/Azure/azure-sdk-for-go: [v21.4.0+incompatible → v32.5.0+incompatible](https://github.com/Azure/azure-sdk-for-go/compare/v21.4.0...v32.5.0) +- github.com/BurntSushi/toml: [v0.3.0 → v0.3.1](https://github.com/BurntSushi/toml/compare/v0.3.0...v0.3.1) +- github.com/GoogleCloudPlatform/k8s-cloud-provider: [f8e9959 → 27a4ced](https://github.com/GoogleCloudPlatform/k8s-cloud-provider/compare/f8e9959...27a4ced) +- github.com/PuerkitoBio/purell: [v1.1.0 → v1.1.1](https://github.com/PuerkitoBio/purell/compare/v1.1.0...v1.1.1) +- github.com/asaskevich/govalidator: [f9ffefc → f61b66f](https://github.com/asaskevich/govalidator/compare/f9ffefc...f61b66f) +- github.com/client9/misspell: [9ce5d97 → v0.3.4](https://github.com/client9/misspell/compare/9ce5d97...v0.3.4) +- github.com/containernetworking/cni: [v0.6.0 → v0.7.1](https://github.com/containernetworking/cni/compare/v0.6.0...v0.7.1) +- github.com/coreos/etcd: [v3.3.13+incompatible → v3.3.15+incompatible](https://github.com/coreos/etcd/compare/v3.3.13...v3.3.15) +- github.com/coreos/go-oidc: [065b426 → v2.1.0+incompatible](https://github.com/coreos/go-oidc/compare/065b426...v2.1.0) +- github.com/coreos/go-semver: [e214231 → v0.3.0](https://github.com/coreos/go-semver/compare/e214231...v0.3.0) +- github.com/cpuguy83/go-md2man: [v1.0.4 → v1.0.10](https://github.com/cpuguy83/go-md2man/compare/v1.0.4...v1.0.10) +- github.com/cyphar/filepath-securejoin: [ae69057 → v0.2.2](https://github.com/cyphar/filepath-securejoin/compare/ae69057...v0.2.2) +- github.com/dgrijalva/jwt-go: [01aeca5 → v3.2.0+incompatible](https://github.com/dgrijalva/jwt-go/compare/01aeca5...v3.2.0) +- github.com/docker/distribution: [edc3ab2 → v2.7.1+incompatible](https://github.com/docker/distribution/compare/edc3ab2...v2.7.1) +- github.com/emicklei/go-restful: [ff4f55a → v2.9.5+incompatible](https://github.com/emicklei/go-restful/compare/ff4f55a...v2.9.5) +- github.com/evanphx/json-patch: [5858425 → v4.2.0+incompatible](https://github.com/evanphx/json-patch/compare/5858425...v4.2.0) +- github.com/fatih/camelcase: [f6a740d → v1.0.0](https://github.com/fatih/camelcase/compare/f6a740d...v1.0.0) +- github.com/go-openapi/analysis: [v0.17.2 → v0.19.2](https://github.com/go-openapi/analysis/compare/v0.17.2...v0.19.2) +- github.com/go-openapi/errors: [v0.17.2 → v0.19.2](https://github.com/go-openapi/errors/compare/v0.17.2...v0.19.2) +- github.com/go-openapi/jsonpointer: [v0.19.0 → v0.19.2](https://github.com/go-openapi/jsonpointer/compare/v0.19.0...v0.19.2) +- github.com/go-openapi/jsonreference: [v0.19.0 → v0.19.2](https://github.com/go-openapi/jsonreference/compare/v0.19.0...v0.19.2) +- github.com/go-openapi/loads: [v0.17.2 → v0.19.2](https://github.com/go-openapi/loads/compare/v0.17.2...v0.19.2) +- github.com/go-openapi/runtime: [v0.17.2 → v0.19.0](https://github.com/go-openapi/runtime/compare/v0.17.2...v0.19.0) +- github.com/go-openapi/spec: [v0.17.2 → v0.19.2](https://github.com/go-openapi/spec/compare/v0.17.2...v0.19.2) +- github.com/go-openapi/strfmt: [v0.17.0 → v0.19.0](https://github.com/go-openapi/strfmt/compare/v0.17.0...v0.19.0) +- github.com/go-openapi/swag: [v0.17.2 → v0.19.2](https://github.com/go-openapi/swag/compare/v0.17.2...v0.19.2) +- github.com/go-openapi/validate: [v0.18.0 → v0.19.2](https://github.com/go-openapi/validate/compare/v0.18.0...v0.19.2) +- github.com/godbus/dbus: [c7fdd8b → v4.1.0+incompatible](https://github.com/godbus/dbus/compare/c7fdd8b...v4.1.0) +- github.com/gogo/protobuf: [342cbe0 → 65acae2](https://github.com/gogo/protobuf/compare/342cbe0...65acae2) +- github.com/golang/mock: [bd3c8e8 → v1.2.0](https://github.com/golang/mock/compare/bd3c8e8...v1.2.0) +- github.com/golang/protobuf: [v1.2.0 → v1.3.1](https://github.com/golang/protobuf/compare/v1.2.0...v1.3.1) +- github.com/google/btree: [7d79101 → 4030bb1](https://github.com/google/btree/compare/7d79101...4030bb1) +- github.com/google/cadvisor: [9db8c7d → v0.34.0](https://github.com/google/cadvisor/compare/9db8c7d...v0.34.0) +- github.com/google/gofuzz: [24818f7 → v1.0.0](https://github.com/google/gofuzz/compare/24818f7...v1.0.0) +- github.com/google/uuid: [v1.0.0 → v1.1.1](https://github.com/google/uuid/compare/v1.0.0...v1.1.1) +- github.com/gophercloud/gophercloud: [c818fa6 → v0.1.0](https://github.com/gophercloud/gophercloud/compare/c818fa6...v0.1.0) +- github.com/gorilla/websocket: [4201258 → v1.4.0](https://github.com/gorilla/websocket/compare/4201258...v1.4.0) +- github.com/grpc-ecosystem/go-grpc-prometheus: [2500245 → v1.2.0](https://github.com/grpc-ecosystem/go-grpc-prometheus/compare/2500245...v1.2.0) +- github.com/hashicorp/golang-lru: [v0.5.0 → v0.5.1](https://github.com/hashicorp/golang-lru/compare/v0.5.0...v0.5.1) +- github.com/hashicorp/hcl: [d8c773c → v1.0.0](https://github.com/hashicorp/hcl/compare/d8c773c...v1.0.0) +- github.com/heketi/heketi: [558b292 → v9.0.0+incompatible](https://github.com/heketi/heketi/compare/558b292...v9.0.0) +- github.com/jonboulle/clockwork: [72f9bd7 → v0.1.0](https://github.com/jonboulle/clockwork/compare/72f9bd7...v0.1.0) +- github.com/json-iterator/go: [ab8a2e0 → v1.1.7](https://github.com/json-iterator/go/compare/ab8a2e0...v1.1.7) +- github.com/kr/pretty: [f31442d → v0.1.0](https://github.com/kr/pretty/compare/f31442d...v0.1.0) +- github.com/kr/text: [6807e77 → v0.1.0](https://github.com/kr/text/compare/6807e77...v0.1.0) +- github.com/libopenstorage/openstorage: [093a0c3 → v1.0.0](https://github.com/libopenstorage/openstorage/compare/093a0c3...v1.0.0) +- github.com/magiconair/properties: [61b492c → v1.8.1](https://github.com/magiconair/properties/compare/61b492c...v1.8.1) +- github.com/mailru/easyjson: [60711f1 → 94de47d](https://github.com/mailru/easyjson/compare/60711f1...94de47d) +- github.com/mattn/go-shellwords: [f8471b0 → v1.0.5](https://github.com/mattn/go-shellwords/compare/f8471b0...v1.0.5) +- github.com/miekg/dns: [5d001d0 → v1.1.4](https://github.com/miekg/dns/compare/5d001d0...v1.1.4) +- github.com/mistifyio/go-zfs: [1b4ae6f → v2.1.1+incompatible](https://github.com/mistifyio/go-zfs/compare/1b4ae6f...v2.1.1) +- github.com/mitchellh/go-wordwrap: [ad45545 → v1.0.0](https://github.com/mitchellh/go-wordwrap/compare/ad45545...v1.0.0) +- github.com/mvdan/xurls: [1b768d7 → v1.1.0](https://github.com/mvdan/xurls/compare/1b768d7...v1.1.0) +- github.com/onsi/ginkgo: [v1.6.0 → v1.8.0](https://github.com/onsi/ginkgo/compare/v1.6.0...v1.8.0) +- github.com/onsi/gomega: [5533ce8 → v1.5.0](https://github.com/onsi/gomega/compare/5533ce8...v1.5.0) +- github.com/opencontainers/go-digest: [a6d0ee4 → v1.0.0-rc1](https://github.com/opencontainers/go-digest/compare/a6d0ee4...v1.0.0-rc1) +- github.com/opencontainers/image-spec: [372ad78 → v1.0.1](https://github.com/opencontainers/image-spec/compare/372ad78...v1.0.1) +- github.com/opencontainers/runc: [f000fe1 → 6cc5158](https://github.com/opencontainers/runc/compare/f000fe1...6cc5158) +- github.com/opencontainers/selinux: [4a2974b → v1.2.2](https://github.com/opencontainers/selinux/compare/4a2974b...v1.2.2) +- github.com/robfig/cron: [df38d32 → v1.1.0](https://github.com/robfig/cron/compare/df38d32...v1.1.0) +- github.com/russross/blackfriday: [300106c → v1.5.2](https://github.com/russross/blackfriday/compare/300106c...v1.5.2) +- github.com/seccomp/libseccomp-golang: [1b506fc → v0.9.1](https://github.com/seccomp/libseccomp-golang/compare/1b506fc...v0.9.1) +- github.com/sirupsen/logrus: [v1.2.0 → v1.4.2](https://github.com/sirupsen/logrus/compare/v1.2.0...v1.4.2) +- github.com/spf13/afero: [b28a7ef → v1.2.2](https://github.com/spf13/afero/compare/b28a7ef...v1.2.2) +- github.com/spf13/cast: [e31f36f → v1.3.0](https://github.com/spf13/cast/compare/e31f36f...v1.3.0) +- github.com/spf13/cobra: [c439c4f → v0.0.5](https://github.com/spf13/cobra/compare/c439c4f...v0.0.5) +- github.com/spf13/jwalterweatherman: [33c24e7 → v1.1.0](https://github.com/spf13/jwalterweatherman/compare/33c24e7...v1.1.0) +- github.com/spf13/pflag: [v1.0.1 → v1.0.3](https://github.com/spf13/pflag/compare/v1.0.1...v1.0.3) +- github.com/spf13/viper: [7fb2782 → v1.3.2](https://github.com/spf13/viper/compare/7fb2782...v1.3.2) +- github.com/stretchr/objx: [v0.1.1 → v0.2.0](https://github.com/stretchr/objx/compare/v0.1.1...v0.2.0) +- github.com/stretchr/testify: [v1.2.2 → v1.3.0](https://github.com/stretchr/testify/compare/v1.2.2...v1.3.0) +- golang.org/x/net: 65e2d4e → cdfb69a +- golang.org/x/tools: aa82965 → 6e04913 +- google.golang.org/api: 583d854 → 5213b80 +- google.golang.org/genproto: 09f6ed2 → 54afdca +- google.golang.org/grpc: v1.13.0 → v1.23.0 +- gopkg.in/check.v1: 20d25e2 → 788fd78 +- gopkg.in/natefinch/lumberjack.v2: 20b71e5 → v2.0.0 +- gopkg.in/square/go-jose.v2: 89060de → v2.2.2 +- gopkg.in/yaml.v2: v2.2.1 → v2.2.2 +- k8s.io/gengo: f8a0810 → 26a6646 +- k8s.io/klog: v0.3.1 → v0.4.0 +- k8s.io/kube-openapi: b3a7cee → 743ec37 +- k8s.io/utils: c2654d5 → 581e001 +- sigs.k8s.io/structured-merge-diff: e85c7b2 → 6149e45 + +#### Removed + +- github.com/Azure/go-autorest: [v11.1.2+incompatible](https://github.com/Azure/go-autorest/tree/v11.1.2) +- github.com/codedellemc/goscaleio: [20e2ce2](https://github.com/codedellemc/goscaleio/tree/20e2ce2) +- github.com/d2g/dhcp4: [a1d1b6c](https://github.com/d2g/dhcp4/tree/a1d1b6c) +- github.com/d2g/dhcp4client: [6e570ed](https://github.com/d2g/dhcp4client/tree/6e570ed) +- github.com/jteeuwen/go-bindata: [a0ff256](https://github.com/jteeuwen/go-bindata/tree/a0ff256) +- github.com/kardianos/osext: [8fef92e](https://github.com/kardianos/osext/tree/8fef92e) +- github.com/kr/fs: [2788f0d](https://github.com/kr/fs/tree/2788f0d) +- github.com/marstr/guid: [8bdf7d1](https://github.com/marstr/guid/tree/8bdf7d1) +- github.com/mholt/caddy: [2de4950](https://github.com/mholt/caddy/tree/2de4950) +- github.com/natefinch/lumberjack: [v2.0.0+incompatible](https://github.com/natefinch/lumberjack/tree/v2.0.0) +- github.com/pkg/sftp: [4d0e916](https://github.com/pkg/sftp/tree/4d0e916) +- github.com/shurcooL/sanitized_anchor_name: [10ef21a](https://github.com/shurcooL/sanitized_anchor_name/tree/10ef21a) +- github.com/sigma/go-inotify: [c87b6cf](https://github.com/sigma/go-inotify/tree/c87b6cf) +- github.com/vmware/photon-controller-go-sdk: [4a435da](https://github.com/vmware/photon-controller-go-sdk/tree/4a435da) +- github.com/xanzy/go-cloudstack: [1e2cbf6](https://github.com/xanzy/go-cloudstack/tree/1e2cbf6) +- gopkg.in/yaml.v1: 9f9df34 diff --git a/releases/release-1.16/release_team.md b/releases/release-1.16/release_team.md index dca04e400f2..50919a6e32d 100644 --- a/releases/release-1.16/release_team.md +++ b/releases/release-1.16/release_team.md @@ -1,17 +1,17 @@ -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -| ------ | ------ | ------ | -| Lead | Lachlan Evenson ([@lachie83](https://github.com/lachie83)) / Slack: `@lachie83`) | Niko Penteridis ([@nikopen](https://github.com/nikopen) / Slack: `@nikopen`), Jeff Sica ([@jeefy](https://github.com/jeefy) / Slack: `@jeefy`), Guinevere Saenger ([@guineveresaenger](https://github.com/guineveresaenger) / Slack: `@gsaenger`) | -| Enhancements | Kendrick Coleman ([@kacole2](https://github.com/kacole2) / Slack: `@kacole2`) | Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables) / Slack: `@mrbobbytables`), Maria Ntalla ([@mariantalla](https://github.com/mariantalla) / Slack: `@maria`), Eddie Villalba ([@evillgenius75](https://github.com/evillgenius75) / Slack: `@evill_genius`), Ria Bhatia ([@rbitia](https://github.com/rbitia) / Slack: `@rbitia`) | -| CI Signal | Jorge Alarcon ([@alejandrox1](https://github.com/alejandrox1) /Slack: `@alejandrox1`) | Alena Varkockova ([@alenkacz](https://github.com/alenkacz) / Slack: `@alenkacz`), Jim Angel ([@jimangel](https://github.com/jimangel) / Slack: `@jimangel`), Nicholas Lane ([@soggiest](https://github.com/soggiest) / Slack: `@soggy`), Veronica Lopez ([@verolop](https://github.com/verolop) / Slack: `@Verónica López`) | -| Bug Triage | Marko Mudrinic ([@xmudrii](https://github.com/xmudrii) / Slack: `@xmudrii`) | Abubakr-Sadik Nii Nai Davis ([@ttousai](https://github.com/ttousai) / Slack: `@ttousai`), Barnabas Makonda ([@makoscafee](https://github.com/makoscafee) / Slack: `@barnie`), Josiah Bjorgaard ([@josiahbjorgaard](https://github.com/josiahbjorgaard) / Slack: `@jb`), Tarun Pothulapati ([@pothulapati](https://github.com/pothulapati) / Slack: `@pothulapati`) | -| Docs | Tunde Oladipupo ([@simplytunde](https://github.com/simplytunde) / Slack: `@simplytunde`) | Damini Satya Kammakomati ([@daminisatya](https://github.com/daminisatya) / Slack: `@Damini Satya`), Seth McCombs ([@sethmccombs](https://github.com/sethmccombs) / Slack: `@sethmccombs`), Vineeth Pothulapati ([@VineethReddy02](https://github.com/VineethReddy02) / Slack: `@Vineeth`) | | -| Release Notes | Sascha Grunert ([saschagrunert](https://github.com/saschagrunert) / Slack: `@sgrunert`) | Lindsey Tulloch ([@onyiny-ang](https://github.com/onyiny-ang)) / Slack: `@onyiny-ang`, Chris Carty ([@cartyc](https://github.com/cartyc)) / Slack: `@macintoshprime`, Kristin Martin ([@kcmartin](https://github.com/kcmartin)) / Slack: `@kcmartin`, Paul Bouwer ([@paulbouwer](https://github.com/paulbouwer)) / Slack: `@paul-bouwer` | -| Communications | Taylor Dolezal ([@onlydole](https://github.com/onlydole) / Slack: `@onlydole`) | David McKay ([@rawkode](https://github.com/rawkode) / Slack: `@rawkode`), Karen Chu ([@karenhchu](https://github.com/karenhchu) / Slack: `@kchu`), Imran Pochi ([@ipochi](https://github.com/ipochi) / Slack: `@imran`) | - -Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.16, once the 1.16 release cycle concludes. - -**Emeritus Advisers:** Josh Berkus ([@jberkus](https://github.com/jberkus)), Stephen Augustus ([@justaugustus](https://github.com/justaugustus)) - -(Emeritus Adviser assists in shadow selection, and mentors shadows through Release Team participation, development, and graduation.) +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +| ------ | ------ | ------ | +| Lead | Lachlan Evenson ([@lachie83](https://github.com/lachie83)) / Slack: `@lachie83`) | Niko Penteridis ([@nikopen](https://github.com/nikopen) / Slack: `@nikopen`), Jeff Sica ([@jeefy](https://github.com/jeefy) / Slack: `@jeefy`), Guinevere Saenger ([@guineveresaenger](https://github.com/guineveresaenger) / Slack: `@gsaenger`) | +| Enhancements | Kendrick Coleman ([@kacole2](https://github.com/kacole2) / Slack: `@kacole2`) | Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables) / Slack: `@mrbobbytables`), Maria Ntalla ([@mariantalla](https://github.com/mariantalla) / Slack: `@maria`), Eddie Villalba ([@evillgenius75](https://github.com/evillgenius75) / Slack: `@evill_genius`), Ria Bhatia ([@rbitia](https://github.com/rbitia) / Slack: `@rbitia`) | +| CI Signal | Jorge Alarcon ([@alejandrox1](https://github.com/alejandrox1) /Slack: `@alejandrox1`) | Alena Varkockova ([@alenkacz](https://github.com/alenkacz) / Slack: `@alenkacz`), Jim Angel ([@jimangel](https://github.com/jimangel) / Slack: `@jimangel`), Nicholas Lane ([@soggiest](https://github.com/soggiest) / Slack: `@soggy`), Veronica Lopez ([@verolop](https://github.com/verolop) / Slack: `@Verónica López`) | +| Bug Triage | Marko Mudrinic ([@xmudrii](https://github.com/xmudrii) / Slack: `@xmudrii`) | Abubakr-Sadik Nii Nai Davis ([@ttousai](https://github.com/ttousai) / Slack: `@ttousai`), Barnabas Makonda ([@makoscafee](https://github.com/makoscafee) / Slack: `@barnie`), Josiah Bjorgaard ([@josiahbjorgaard](https://github.com/josiahbjorgaard) / Slack: `@jb`), Tarun Pothulapati ([@pothulapati](https://github.com/pothulapati) / Slack: `@pothulapati`) | +| Docs | Tunde Oladipupo ([@simplytunde](https://github.com/simplytunde) / Slack: `@simplytunde`) | Damini Satya Kammakomati ([@daminisatya](https://github.com/daminisatya) / Slack: `@Damini Satya`), Seth McCombs ([@sethmccombs](https://github.com/sethmccombs) / Slack: `@sethmccombs`), Vineeth Pothulapati ([@VineethReddy02](https://github.com/VineethReddy02) / Slack: `@Vineeth`) | | +| Release Notes | Sascha Grunert ([saschagrunert](https://github.com/saschagrunert) / Slack: `@sgrunert`) | Lindsey Tulloch ([@onyiny-ang](https://github.com/onyiny-ang)) / Slack: `@onyiny-ang`, Chris Carty ([@cartyc](https://github.com/cartyc)) / Slack: `@macintoshprime`, Kristin Martin ([@kcmartin](https://github.com/kcmartin)) / Slack: `@kcmartin`, Paul Bouwer ([@paulbouwer](https://github.com/paulbouwer)) / Slack: `@paul-bouwer` | +| Communications | Taylor Dolezal ([@onlydole](https://github.com/onlydole) / Slack: `@onlydole`) | David McKay ([@rawkode](https://github.com/rawkode) / Slack: `@rawkode`), Karen Chu ([@karenhchu](https://github.com/karenhchu) / Slack: `@kchu`), Imran Pochi ([@ipochi](https://github.com/ipochi) / Slack: `@imran`) | + +Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.16, once the 1.16 release cycle concludes. + +**Emeritus Advisers:** Josh Berkus ([@jberkus](https://github.com/jberkus)), Stephen Augustus ([@justaugustus](https://github.com/justaugustus)) + +(Emeritus Adviser assists in shadow selection, and mentors shadows through Release Team participation, development, and graduation.) diff --git a/releases/release-1.17/README.md b/releases/release-1.17/README.md index 09093a14706..156789beddd 100644 --- a/releases/release-1.17/README.md +++ b/releases/release-1.17/README.md @@ -1,98 +1,98 @@ -# Kubernetes 1.17 : The Chillest Release - -<img src="kubeybara.png" height=600 width=auto> - -#### Links -* [This document](https://git.k8s.io/sig-release/releases/release-1.17/README.md) -* [Release Team](https://git.k8s.io/sig-release/releases/release-1.17/release_team.md) -* [Meeting Minutes](http://bit.ly/k8s117-releasemtg) -* [Kubernetes Release Calendar](https://bit.ly/k8s-release-cal) -* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail - -#### Tracking docs - -* [Enhancements Tracking Sheet](http://bit.ly/k8s117-enhancement-tracking) -* [Bug Triage Tracking Sheet](http://bit.ly/k8s117-bugtriage) -* [CI Signal Report](http://bit.ly/k8s117-cisignal) -* [Retrospective Document](http://bit.ly/k8s117-retro) -* [kubernetes/kubernetes v1.17 milestone](https://github.com/kubernetes/kubernetes/milestone/43) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## tl;dr -The 1.17 release cycle is proposed as follows: -- **Monday, September 23** - Release Cycle Begins -- **Tuesday, October 15, EOD PST** - Enhancements Freeze -- **Thursday, November 14, EOD PST** - Code Freeze -- **Friday, November 22** - Docs must be completed and reviewed, ready to merge -- **Monday, December 9** - Kubernetes 1.17.0 Released - -## What will we do differently this release? -* Due to the end of the year, this release cycle will be shorter than the other cycles this year. In accordance, we will have a slightly accelerated schedule. - -## What are we continuing from the previous release -* All Enhancements must have a KEP that is in `implementable` state by Enhancements Freeze. If the enhancement does not have a KEP in `implementable` state by Enhancements Freeze it will be removed from the milestone and will require an [exception][Exception]. -* The Emeritus Adviser will be responsible for advising the Release Team Lead and Lead Shadows, ensuring shadow selection happens, and that release shadows are getting the most out of their participation in the release process. -* The itemized list of code changes for the release is being migrated from the release changelog `CHANGELOG-x.y.md` (where `x` and `y` are major and minor versions of Kubernetes, respectively) to [https://relnotes.k8s.io](https://relnotes.k8s.io) -* We will continue to implement guidelines and clean up around CI Signal. - -## Timeline -| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | -| --- | --- | --- | --- | --- | -| Team Leads finalized | Lead | Wed September 18 | week 0 | | -| Start of Release Cycle | Lead | Mon September 23 |week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Tue 24 | | -| Schedule finalized | Lead | Wed September 25 | | -| Team Shadows finalized | Lead | Wed September 25 | -| 1.17.0-alpha.1 released | Branch Manager | Tue October 1 | week 2| | -| Start Release Notes Draft | Release Notes Lead | Tue October 8 | week 3 | | -| **Begin [Enhancements Freeze]** (EOD PST) | Enhancements Lead | Tue October 15 | week 4 | [master-blocking], [master-informing] | -| 1.17.0-alpha.2 released | Branch Manager | Tue October 15 | | -| 1.17.0-alpha.3 released | Branch Manager | Tue October 22 | week 5 | | -| release-1.13 jobs removed | Branch Manager | Tue October 29 | week 6 | | -| release-1.17 branch created | Branch Manager | Tue October 29 | -| 1.17.0-beta.0 released | Branch Manager | Tue October 29 | -| release-1.17 jobs created| Branch Manager | Tue October 29 | | -| **Begin [Burndown]** (MWF meetings) | Lead | Mon November 4 | week 7 | [1.17-blocking], [master-blocking], [master-informing] | -| **Call for [Exceptions][Exception]** | Lead | Mon November 4 | -| Brace Yourselves, Code Freeze is Coming | Comms / Bug Triage| Mon November 4 | -| 1.17.0-beta.1 released | Branch Manager | Tue November 5 | -| Docs deadline - Open placeholder PRs | Docs Lead | Fri November 8 | -| **Begin [Code Freeze]** (EOD PST) | Branch Manager | Thu November 14 | week 8 | -| Docs deadline - PRs ready for review | Docs Lead | Fri November 15 | -| KubeCon Begins | Community |Mon November 18 | week 9 | | -| 1.17.0-beta.2 released | Branch Manager | Mon November 18 | week 9 | -| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Fri November 22 | | -| 1.17.0-rc.1 released | Branch Manager | Fri November 22 | -| **Begin [Code Thaw]** (EOD PST) | Branch Manager | Fri November 22 | [1.17-blocking]| -| Burndown Meetings daily | Lead | Tues November 26 | | -| **Cherry Pick Deadline** (EOD PST) | Branch Manager | Mon December 2 | -| 1.17.0-rc.2 released | Branch Manager | Tue December 3 | week 11 | -| **v1.17.0 released** | Branch Manager | Mon December 9 | week 12 | | -| Release retrospective | Community | Thu December 12 | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Code Thaw]: ../release_phases.md#code-thaw - -[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.17-blocking]: https://testgrid.k8s.io/sig-release-1.17-blocking#Summary - -[exception requests]: ../EXCEPTIONS.md +# Kubernetes 1.17 : The Chillest Release + +<img src="kubeybara.png" height=600 width=auto> + +#### Links +* [This document](https://git.k8s.io/sig-release/releases/release-1.17/README.md) +* [Release Team](https://git.k8s.io/sig-release/releases/release-1.17/release_team.md) +* [Meeting Minutes](http://bit.ly/k8s117-releasemtg) +* [Kubernetes Release Calendar](https://bit.ly/k8s-release-cal) +* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail + +#### Tracking docs + +* [Enhancements Tracking Sheet](http://bit.ly/k8s117-enhancement-tracking) +* [Bug Triage Tracking Sheet](http://bit.ly/k8s117-bugtriage) +* [CI Signal Report](http://bit.ly/k8s117-cisignal) +* [Retrospective Document](http://bit.ly/k8s117-retro) +* [kubernetes/kubernetes v1.17 milestone](https://github.com/kubernetes/kubernetes/milestone/43) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## tl;dr +The 1.17 release cycle is proposed as follows: +- **Monday, September 23** - Release Cycle Begins +- **Tuesday, October 15, EOD PST** - Enhancements Freeze +- **Thursday, November 14, EOD PST** - Code Freeze +- **Friday, November 22** - Docs must be completed and reviewed, ready to merge +- **Monday, December 9** - Kubernetes 1.17.0 Released + +## What will we do differently this release? +* Due to the end of the year, this release cycle will be shorter than the other cycles this year. In accordance, we will have a slightly accelerated schedule. + +## What are we continuing from the previous release +* All Enhancements must have a KEP that is in `implementable` state by Enhancements Freeze. If the enhancement does not have a KEP in `implementable` state by Enhancements Freeze it will be removed from the milestone and will require an [exception][Exception]. +* The Emeritus Adviser will be responsible for advising the Release Team Lead and Lead Shadows, ensuring shadow selection happens, and that release shadows are getting the most out of their participation in the release process. +* The itemized list of code changes for the release is being migrated from the release changelog `CHANGELOG-x.y.md` (where `x` and `y` are major and minor versions of Kubernetes, respectively) to [https://relnotes.k8s.io](https://relnotes.k8s.io) +* We will continue to implement guidelines and clean up around CI Signal. + +## Timeline +| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | +| --- | --- | --- | --- | --- | +| Team Leads finalized | Lead | Wed September 18 | week 0 | | +| Start of Release Cycle | Lead | Mon September 23 |week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Tue 24 | | +| Schedule finalized | Lead | Wed September 25 | | +| Team Shadows finalized | Lead | Wed September 25 | +| 1.17.0-alpha.1 released | Branch Manager | Tue October 1 | week 2| | +| Start Release Notes Draft | Release Notes Lead | Tue October 8 | week 3 | | +| **Begin [Enhancements Freeze]** (EOD PST) | Enhancements Lead | Tue October 15 | week 4 | [master-blocking], [master-informing] | +| 1.17.0-alpha.2 released | Branch Manager | Tue October 15 | | +| 1.17.0-alpha.3 released | Branch Manager | Tue October 22 | week 5 | | +| release-1.13 jobs removed | Branch Manager | Tue October 29 | week 6 | | +| release-1.17 branch created | Branch Manager | Tue October 29 | +| 1.17.0-beta.0 released | Branch Manager | Tue October 29 | +| release-1.17 jobs created| Branch Manager | Tue October 29 | | +| **Begin [Burndown]** (MWF meetings) | Lead | Mon November 4 | week 7 | [1.17-blocking], [master-blocking], [master-informing] | +| **Call for [Exceptions][Exception]** | Lead | Mon November 4 | +| Brace Yourselves, Code Freeze is Coming | Comms / Bug Triage| Mon November 4 | +| 1.17.0-beta.1 released | Branch Manager | Tue November 5 | +| Docs deadline - Open placeholder PRs | Docs Lead | Fri November 8 | +| **Begin [Code Freeze]** (EOD PST) | Branch Manager | Thu November 14 | week 8 | +| Docs deadline - PRs ready for review | Docs Lead | Fri November 15 | +| KubeCon Begins | Community |Mon November 18 | week 9 | | +| 1.17.0-beta.2 released | Branch Manager | Mon November 18 | week 9 | +| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Fri November 22 | | +| 1.17.0-rc.1 released | Branch Manager | Fri November 22 | +| **Begin [Code Thaw]** (EOD PST) | Branch Manager | Fri November 22 | [1.17-blocking]| +| Burndown Meetings daily | Lead | Tues November 26 | | +| **Cherry Pick Deadline** (EOD PST) | Branch Manager | Mon December 2 | +| 1.17.0-rc.2 released | Branch Manager | Tue December 3 | week 11 | +| **v1.17.0 released** | Branch Manager | Mon December 9 | week 12 | | +| Release retrospective | Community | Thu December 12 | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Code Thaw]: ../release_phases.md#code-thaw + +[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.17-blocking]: https://testgrid.k8s.io/sig-release-1.17-blocking#Summary + +[exception requests]: ../EXCEPTIONS.md [release phases document]: ../release_phases.md \ No newline at end of file diff --git a/releases/release-1.17/exceptions.yaml b/releases/release-1.17/exceptions.yaml index 971de54f0ab..b74a6d58eb7 100644 --- a/releases/release-1.17/exceptions.yaml +++ b/releases/release-1.17/exceptions.yaml @@ -1,42 +1,42 @@ -# Exceptions to Enhancement Freeze requested in 1.17 -# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release -# Release Team Lead: Guinevere Saenger ([@guineveresaenger](https://github.com/guineveresaenger) - -- name: Implement RuntimeClass on Windows - issue: 1301 - date_requested: 2019-10-15 - date_reviewed: 2019-10-16 - thread: https://groups.google.com/d/msg/kubernetes-sig-release/D_Vl5fFFodo/dg6ao0LRCwAJ - pull_requests: - - https://github.com/kubernetes/enhancements/pull/1302 - status: Approved - -- name: Immutable Fields API - issue: 1101 - date_requested: 2019-10-16 - date_reviewed: 2019-10-16 - thread: https://groups.google.com/d/msg/kubernetes-sig-release/uwiy-V5Pz-U/kkxaxgETDQAJ - pull_requests: - - https://github.com/kubernetes/enhancements/pull/1265 - - https://github.com/kubernetes/kubernetes/pull/83743 - status: Approved - -- name: Topology aware routing of services - issue: 536 - date_requested: 2019-10-17 - date_reviewed: 2019-10-17 - thread: https://groups.google.com/d/msg/kubernetes-sig-release/FLYvrsT9Qi8/WsyXLOF0DQAJ - pull_requests: - - https://github.com/kubernetes/enhancements/pull/1322 - - https://github.com/kubernetes/kubernetes/pull/72046 - status: Approved - -# Code Freeze exception requests in 1.17 -- name: In-tree storage plugin to CSI Driver Migration - issue: 625 - date_requested: 2019-11-15 - date_reviewed: 2019-11-15 - thread: https://groups.google.com/forum/#!topic/kubernetes-sig-release/9qYGo2Wh2nI - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/85231 - status: Approved +# Exceptions to Enhancement Freeze requested in 1.17 +# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release +# Release Team Lead: Guinevere Saenger ([@guineveresaenger](https://github.com/guineveresaenger) + +- name: Implement RuntimeClass on Windows + issue: 1301 + date_requested: 2019-10-15 + date_reviewed: 2019-10-16 + thread: https://groups.google.com/d/msg/kubernetes-sig-release/D_Vl5fFFodo/dg6ao0LRCwAJ + pull_requests: + - https://github.com/kubernetes/enhancements/pull/1302 + status: Approved + +- name: Immutable Fields API + issue: 1101 + date_requested: 2019-10-16 + date_reviewed: 2019-10-16 + thread: https://groups.google.com/d/msg/kubernetes-sig-release/uwiy-V5Pz-U/kkxaxgETDQAJ + pull_requests: + - https://github.com/kubernetes/enhancements/pull/1265 + - https://github.com/kubernetes/kubernetes/pull/83743 + status: Approved + +- name: Topology aware routing of services + issue: 536 + date_requested: 2019-10-17 + date_reviewed: 2019-10-17 + thread: https://groups.google.com/d/msg/kubernetes-sig-release/FLYvrsT9Qi8/WsyXLOF0DQAJ + pull_requests: + - https://github.com/kubernetes/enhancements/pull/1322 + - https://github.com/kubernetes/kubernetes/pull/72046 + status: Approved + +# Code Freeze exception requests in 1.17 +- name: In-tree storage plugin to CSI Driver Migration + issue: 625 + date_requested: 2019-11-15 + date_reviewed: 2019-11-15 + thread: https://groups.google.com/forum/#!topic/kubernetes-sig-release/9qYGo2Wh2nI + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/85231 + status: Approved diff --git a/releases/release-1.17/release-notes-draft.md b/releases/release-1.17/release-notes-draft.md index 0939e5e2bbb..1310433d19e 100644 --- a/releases/release-1.17/release-notes-draft.md +++ b/releases/release-1.17/release-notes-draft.md @@ -1,639 +1,639 @@ -# Kubernetes v1.17.0 Release Notes -A complete changelog for the release notes is now hosted in a customizable format at [relnotes.k8s.io](https://relnotes.k8s.io). Check it out and please give us your feedback! - -## What’s New (Major Themes) - -### Cloud Provider Labels reach General Availability - -Added as a beta feature way back in v1.2, v1.17 sees the general availability of cloud provider labels. - -### Volume Snapshot Moves to Beta - -The Kubernetes Volume Snapshot feature is now beta in Kubernetes v1.17. It was introduced as alpha in Kubernetes v1.12, with a second alpha with breaking changes in Kubernetes v1.13. - -### CSI Migration Beta - -The Kubernetes in-tree storage plugin to Container Storage Interface (CSI) migration infrastructure is now beta in Kubernetes v1.17. CSI migration was introduced as alpha in Kubernetes v1.14. - -## Known Issues -- volumeDevices mapping ignored when container is privileged -- The `Should recreate evicted statefulset` conformance [test]( https://github.com/kubernetes/kubernetes/blob/master/test/e2e/apps/statefulset.go) fails because `Pod ss-0 expected to be re-created at least once`. This was caused by the `Predicate PodFitsHostPorts failed` scheduling error. The root cause was a host port conflict for port `21017`. This port was in-use as an ephemeral port by another application running on the node. This will be looked at for the 1.18 release. - -## Urgent Upgrade Notes -### (No, really, you MUST read this before you upgrade) -#### Cluster Lifecycle -- Kubeadm: add a new `kubelet-finalize` phase as part of the `init` workflow and an experimental sub-phase to enable automatic kubelet client certificate rotation on primary control-plane nodes. -Prior to 1.17 and for existing nodes created by `kubeadm init` where kubelet client certificate rotation is desired, you must modify `/etc/kubernetes/kubelet.conf` to point to the PEM symlink for rotation: -`client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem` and `client-key: /var/lib/kubelet/pki/kubelet-client-current.pem`, replacing the embedded client certificate and key. ([#84118](https://github.com/kubernetes/kubernetes/pull/84118), [@neolit123](https://github.com/neolit123)) -#### Network -- EndpointSlices: If upgrading a cluster with EndpointSlices already enabled, any EndpointSlices that should be managed by the EndpointSlice controller should have a `http://endpointslice.kubernetes.io/managed-by` label set to `endpointslice-controller.k8s.io`. - -#### Scheduling - -- Kubeadm: when adding extra apiserver authorization-modes, the defaults `Node,RBAC` are no longer prepended in the resulting static Pod manifests and a full override is allowed. ([#82616](https://github.com/kubernetes/kubernetes/pull/82616), [@ghouscht](https://github.com/ghouscht)) - -#### Storage -- All nodes need to be drained before upgrading Kubernetes cluster, because paths used for block volumes are changed in this release, so on-line upgrade of nodes aren't allowed. ([#74026](https://github.com/kubernetes/kubernetes/pull/74026), [@mkimuram](https://github.com/mkimuram)) - -#### Windows -- The Windows containers RunAsUsername feature is now beta. -- Windows worker nodes in a Kubernetes cluster now support Windows Server version 1903 in addition to the existing support for Windows Server 2019 -- The RuntimeClass scheduler can now simplify steering Linux or Windows pods to appropriate nodes -- All Windows nodes now get the new label `node.kubernetes.io/windows-build` that reflects the Windows major, minor, and build number that are needed to match compatibility between Windows containers and Windows worker nodes. - - -## Deprecations and Removals -- `kubeadm.k8s.io/v1beta1` has been deprecated, you should update your config to use newer non-deprecated API versions. ([#83276](https://github.com/kubernetes/kubernetes/pull/83276), [@Klaven](https://github.com/Klaven)) -- The deprecated feature gates GCERegionalPersistentDisk, EnableAggregatedDiscoveryTimeout and PersistentLocalVolumes are now unconditionally enabled and can no longer be specified in component invocations. ([#82472](https://github.com/kubernetes/kubernetes/pull/82472), [@draveness](https://github.com/draveness)) -- Deprecate the default service IP CIDR. The previous default was `10.0.0.0/24` which will be removed in 6 months/2 releases. Cluster admins must specify their own desired value, by using `--service-cluster-ip-range` on kube-apiserver. ([#81668](https://github.com/kubernetes/kubernetes/pull/81668), [@darshanime](https://github.com/darshanime)) -- Remove deprecated "include-uninitialized" flag. ([#80337](https://github.com/kubernetes/kubernetes/pull/80337), [@draveness](https://github.com/draveness)) -- All resources within the `rbac.authorization.k8s.io/v1alpha1` and `rbac.authorization.k8s.io/v1beta1` API groups are deprecated in favor of `rbac.authorization.k8s.io/v1`, and will no longer be served in v1.20. ([#84758](https://github.com/kubernetes/kubernetes/pull/84758), [@liggitt](https://github.com/liggitt)) -- The certificate signer no longer accepts ca.key passwords via the `CFSSL_CA_PK_PASSWORD` environment variable. This capability was not prompted by user request, never advertised, and recommended against in the security audit. ([#84677](https://github.com/kubernetes/kubernetes/pull/84677), [@mikedanese](https://github.com/mikedanese)) -- Deprecate the instance type beta label (`beta.kubernetes.io/instance-type`) in favor of its GA equivalent: `node.kubernetes.io/instance-type` ([#82049](https://github.com/kubernetes/kubernetes/pull/82049), [@andrewsykim](https://github.com/andrewsykim)) -- The built-in system:csi-external-provisioner and system:csi-external-attacher cluster roles are removed as of 1.17 release ([#84282](https://github.com/kubernetes/kubernetes/pull/84282), [@tedyu](https://github.com/tedyu)) -- The in-tree GCE PD plugin `kubernetes.io/gce-pd` is now deprecated and will be removed in 1.21. Users that self-deploy Kubernetes on GCP should enable CSIMigration + CSIMigrationGCE features and install the GCE PD CSI Driver (https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver) to avoid disruption to existing Pod and PVC objects at that time. Users should start using the GCE PD CSI CSI Driver directly for any new volumes. ([#85231](https://github.com/kubernetes/kubernetes/pull/85231), [@davidz627](https://github.com/davidz627)) -- The in-tree AWS EBS plugin `kubernetes.io/aws-ebs` is now deprecated and will be removed in 1.21. Users that self-deploy Kubernetes on AWS should enable CSIMigration + CSIMigrationAWS features and install the AWS EBS CSI Driver (https://github.com/kubernetes-sigs/aws-ebs-csi-driver) to avoid disruption to existing Pod and PVC objects at that time. Users should start using the AWS EBS CSI CSI Driver directly for any new volumes. ([#85237](https://github.com/kubernetes/kubernetes/pull/85237), [@leakingtapan](https://github.com/leakingtapan)) -- The CSINodeInfo feature gate is deprecated and will be removed in a future release. The storage.k8s.io/v1beta1 CSINode object is deprecated and will be removed in a future release. ([#83474](https://github.com/kubernetes/kubernetes/pull/83474), [@msau42](https://github.com/msau42)) -- Removed Alpha feature `MountContainers` ([#84365](https://github.com/kubernetes/kubernetes/pull/84365), [@codenrhoden](https://github.com/codenrhoden)) -- Removed plugin watching of the deprecated directory `{kubelet_root_dir}/plugins` and CSI V0 support in accordance with deprecation announcement in https://v1-13.docs.kubernetes.io/docs/setup/release/notes ([#84533](https://github.com/kubernetes/kubernetes/pull/84533), [@davidz627](https://github.com/davidz627)) -- kubeadm deprecates the use of the hyperkube image ([#85094](https://github.com/kubernetes/kubernetes/pull/85094), [@rosti](https://github.com/rosti)) -## Metrics Changes -### Added metrics -- Add `scheduler_goroutines` metric to track number of kube-scheduler binding and prioritizing goroutines ([#83535](https://github.com/kubernetes/kubernetes/pull/83535), [@wgliang](https://github.com/wgliang)) -- Adding initial EndpointSlice metrics. ([#83257](https://github.com/kubernetes/kubernetes/pull/83257), [@robscott](https://github.com/robscott)) -- Adds a metric `apiserver_request_error_total` to kube-apiserver. This metric tallies the number of `request_errors` encountered by verb, group, version, resource, subresource, scope, component, and code. ([#83427](https://github.com/kubernetes/kubernetes/pull/83427), [@logicalhan](https://github.com/logicalhan)) -- A new `kubelet_preemptions` metric is reported from Kubelets to track the number of preemptions occuring over time, and which resource is triggering those preemptions. ([#84120](https://github.com/kubernetes/kubernetes/pull/84120), [@smarterclayton](https://github.com/smarterclayton)) -- Kube-apiserver: Added metrics `authentication_latency_seconds` that can be used to understand the latency of authentication. ([#82409](https://github.com/kubernetes/kubernetes/pull/82409), [@RainbowMango](https://github.com/RainbowMango)) -- Add `plugin_execution_duration_seconds` metric for scheduler framework plugins. ([#84522](https://github.com/kubernetes/kubernetes/pull/84522), [@liu-cong](https://github.com/liu-cong)) -- Add `permit_wait_duration_seconds` metric to the scheduler. ([#84011](https://github.com/kubernetes/kubernetes/pull/84011), [@liu-cong](https://github.com/liu-cong)) - -### Deprecated/changed metrics -- etcd version monitor metrics are now marked as with the ALPHA stability level. ([#83283](https://github.com/kubernetes/kubernetes/pull/83283), [@RainbowMango](https://github.com/RainbowMango)) -- Change `pod_preemption_victims` metric from Gauge to Histogram. ([#83603](https://github.com/kubernetes/kubernetes/pull/83603), [@Tabrizian](https://github.com/Tabrizian)) -- Following metrics from kubelet are now marked as with the ALPHA stability level: - `kubelet_container_log_filesystem_used_bytes` - `kubelet_volume_stats_capacity_bytes` - `kubelet_volume_stats_available_bytes` - `kubelet_volume_stats_used_bytes` - `kubelet_volume_stats_inodes` - `kubelet_volume_stats_inodes_free` - `kubelet_volume_stats_inodes_used` - `plugin_manager_total_plugins` - `volume_manager_total_volumes` - ([#84907](https://github.com/kubernetes/kubernetes/pull/84907), [@RainbowMango](https://github.com/RainbowMango)) -- Deprecated metric `rest_client_request_latency_seconds` has been turned off. ([#83836](https://github.com/kubernetes/kubernetes/pull/83836), [@RainbowMango](https://github.com/RainbowMango)) -- Following metrics from kubelet are now marked as with the ALPHA stability level: - `node_cpu_usage_seconds_total` - `node_memory_working_set_bytes` - `container_cpu_usage_seconds_total` - `container_memory_working_set_bytes` - `scrape_error` - ([#84987](https://github.com/kubernetes/kubernetes/pull/84987), [@RainbowMango](https://github.com/RainbowMango)) -- Deprecated prometheus request meta-metrics have been removed - `http_request_duration_microseconds` `http_request_duration_microseconds_sum` `http_request_duration_microseconds_count` - `http_request_size_bytes` - `http_request_size_bytes_sum` - `http_request_size_bytes_count` - `http_requests_total, http_response_size_bytes` - `http_response_size_bytes_sum` - `http_response_size_bytes_count` - due to removal from the prometheus client library. Prometheus http request meta-metrics are now generated from [`promhttp.InstrumentMetricHandler`](https://godoc.org/github.com/prometheus/client_golang/prometheus/promhttp#InstrumentMetricHandler) instead. -- Following metrics from kube-controller-manager are now marked as with the ALPHA stability level: - `storage_count_attachable_volumes_in_use` - `attachdetach_controller_total_volumes` - `pv_collector_bound_pv_count` - `pv_collector_unbound_pv_count` - `pv_collector_bound_pvc_count` - `pv_collector_unbound_pvc_count` - ([#84896](https://github.com/kubernetes/kubernetes/pull/84896), [@RainbowMango](https://github.com/RainbowMango)) -- Following metrics have been turned off: - `apiserver_request_count` - `apiserver_request_latencies` - `apiserver_request_latencies_summary` - `apiserver_dropped_requests` - `etcd_request_latencies_summary` - `apiserver_storage_transformation_latencies_microseconds` - `apiserver_storage_data_key_generation_latencies_microseconds` - `apiserver_storage_transformation_failures_total` - ([#83837](https://github.com/kubernetes/kubernetes/pull/83837), [@RainbowMango](https://github.com/RainbowMango)) -- Following metrics have been turned off: - `scheduler_scheduling_latency_seconds` - `scheduler_e2e_scheduling_latency_microseconds` - `scheduler_scheduling_algorithm_latency_microseconds` - `scheduler_scheduling_algorithm_predicate_evaluation` - `scheduler_scheduling_algorithm_priority_evaluation` - `scheduler_scheduling_algorithm_preemption_evaluation` - `scheduler_scheduling_binding_latency_microseconds ([#83838](https://github.com/kubernetes/kubernetes/pull/83838`), [@RainbowMango](https://github.com/RainbowMango)) -- Deprecated metric `kubeproxy_sync_proxy_rules_latency_microseconds` has been turned off. ([#83839](https://github.com/kubernetes/kubernetes/pull/83839), [@RainbowMango](https://github.com/RainbowMango)) - -## Notable Features -### Stable -- Graduate ScheduleDaemonSetPods to GA. (feature gate will be removed in 1.18) ([#82795](https://github.com/kubernetes/kubernetes/pull/82795), [@draveness](https://github.com/draveness)) -- Graduate TaintNodesByCondition to GA in 1.17. (feature gate will be removed in 1.18) ([#82703](https://github.com/kubernetes/kubernetes/pull/82703), [@draveness](https://github.com/draveness)) -- The WatchBookmark feature is promoted to GA. With WatchBookmark feature, clients are able to request watch events with BOOKMARK type. See https://kubernetes.io/docs/reference/using-api/api-concepts/#watch-bookmarks for more details. ([#83195](https://github.com/kubernetes/kubernetes/pull/83195), [@wojtek-t](https://github.com/wojtek-t)) -- Promote NodeLease feature to GA. -The feature make Lease object changes an additional healthiness signal from Node. Together with that, we reduce frequency of NodeStatus updates to 5m by default in case of no changes to status itself ([#84351](https://github.com/kubernetes/kubernetes/pull/84351), [@wojtek-t](https://github.com/wojtek-t)) -- CSI Topology feature is GA. ([#83474](https://github.com/kubernetes/kubernetes/pull/83474), [@msau42](https://github.com/msau42)) -- The VolumeSubpathEnvExpansion feature is graduating to GA. The `VolumeSubpathEnvExpansion` feature gate is unconditionally enabled, and will be removed in v1.19. ([#82578](https://github.com/kubernetes/kubernetes/pull/82578), [@kevtaylor](https://github.com/kevtaylor)) -- Node-specific volume limits has graduated to GA. ([#83568](https://github.com/kubernetes/kubernetes/pull/83568), [@bertinatto](https://github.com/bertinatto)) -- The ResourceQuotaScopeSelectors feature has graduated to GA. The `ResourceQuotaScopeSelectors` feature gate is now unconditionally enabled and will be removed in 1.18. ([#82690](https://github.com/kubernetes/kubernetes/pull/82690), [@draveness](https://github.com/draveness)) - -### Beta -- The Kubernetes Volume Snapshot feature has been moved to beta. The VolumeSnapshotDataSource feature gate is on by default in this release. This feature enables you to take a snapshot of a volume (if supported by the CSI driver), and use the snapshot to provision a new volume, pre-populated with data from the snapshot. -- Feature gates CSIMigration to Beta (on by default) and CSIMigrationGCE to Beta (off by default since it requires installation of the GCE PD CSI Driver) ([#85231](https://github.com/kubernetes/kubernetes/pull/85231), [@davidz627](https://github.com/davidz627)) -- EndpointSlices are now beta but not yet enabled by default. Use the EndpointSlice feature gate to enable this feature. ([#85365](https://github.com/kubernetes/kubernetes/pull/85365), [@robscott](https://github.com/robscott)) -- Promote CSIMigrationAWS to Beta (off by default since it requires installation of the AWS EBS CSI Driver) ([#85237](https://github.com/kubernetes/kubernetes/pull/85237), [@leakingtapan](https://github.com/leakingtapan)) -- Moving Windows RunAsUserName feature to beta ([#84882](https://github.com/kubernetes/kubernetes/pull/84882), [@marosset](https://github.com/marosset)) - -### CLI Improvements -- The kubectl's api-resource command now has a `--sort-by` flag to sort resources by name or kind. ([#81971](https://github.com/kubernetes/kubernetes/pull/81971), [@laddng](https://github.com/laddng)) -- A new `--prefix` flag added into kubectl logs which prepends each log line with information about it's source (pod name and container name) ([#76471](https://github.com/kubernetes/kubernetes/pull/76471), [@m1kola](https://github.com/m1kola)) - -## API Changes -- CustomResourceDefinitions now validate documented API semantics of `x-kubernetes-list-type` and `x-kubernetes-map-type` atomic to reject non-atomic sub-types. ([#84722](https://github.com/kubernetes/kubernetes/pull/84722), [@sttts](https://github.com/sttts)) -- Kube-apiserver: The `AdmissionConfiguration` type accepted by `--admission-control-config-file` has been promoted to `apiserver.config.k8s.io/v1` with no schema changes. ([#85098](https://github.com/kubernetes/kubernetes/pull/85098), [@liggitt](https://github.com/liggitt)) -- Fixed EndpointSlice port name validation to match Endpoint port name validation (allowing port names longer than 15 characters) ([#84481](https://github.com/kubernetes/kubernetes/pull/84481), [@robscott](https://github.com/robscott)) -- CustomResourceDefinitions introduce `x-kubernetes-map-type` annotation as a CRD API extension. Enables this particular validation for server-side apply. ([#84113](https://github.com/kubernetes/kubernetes/pull/84113), [@enxebre](https://github.com/enxebre)) - -## Other notable changes -### API Machinery - -- kube-apiserver: the `--runtime-config` flag now supports an `api/beta=false` value which disables all built-in REST API versions matching `v[0-9]+beta[0-9]+`. ([#84304](https://github.com/kubernetes/kubernetes/pull/84304), [@liggitt](https://github.com/liggitt)) -The `--feature-gates` flag now supports an `AllBeta=false` value which disables all beta feature gates. ([#84304](https://github.com/kubernetes/kubernetes/pull/84304), [@liggitt](https://github.com/liggitt)) -- New flag `--show-hidden-metrics-for-version` in kube-apiserver can be used to show all hidden metrics that deprecated in the previous minor release. ([#84292](https://github.com/kubernetes/kubernetes/pull/84292), [@RainbowMango](https://github.com/RainbowMango)) -- kube-apiserver: Authentication configuration for mutating and validating admission webhooks referenced from an `--admission-control-config-file` can now be specified with `apiVersion: apiserver.config.k8s.io/v1, kind: WebhookAdmissionConfiguration`. ([#85138](https://github.com/kubernetes/kubernetes/pull/85138), [@liggitt](https://github.com/liggitt)) -- kube-apiserver: The `ResourceQuota` admission plugin configuration referenced from `--admission-control-config-file` admission config has been promoted to `apiVersion: apiserver.config.k8s.io/v1`, `kind: ResourceQuotaConfiguration` with no schema changes. ([#85099](https://github.com/kubernetes/kubernetes/pull/85099), [@liggitt](https://github.com/liggitt)) -- kube-apiserver: fixed a bug that could cause a goroutine leak if the apiserver encountered an encoding error serving a watch to a websocket watcher ([#84693](https://github.com/kubernetes/kubernetes/pull/84693), [@tedyu](https://github.com/tedyu)) -- Fix the bug that EndpointSlice for masters wasn't created after enabling EndpointSlice feature on a pre-existing cluster. ([#84421](https://github.com/kubernetes/kubernetes/pull/84421), [@tnqn](https://github.com/tnqn)) -- Switched intstr.Type to sized integer to follow API guidelines and improve compatibility with proto libraries ([#83956](https://github.com/kubernetes/kubernetes/pull/83956), [@liggitt](https://github.com/liggitt)) -- Client-go: improved allocation behavior of the delaying workqueue when handling objects with far-future ready times. ([#83945](https://github.com/kubernetes/kubernetes/pull/83945), [@barkbay](https://github.com/barkbay)) -- Fixed an issue with informers missing an `Added` event if a recently deleted object was immediately recreated at the same time the informer dropped a watch and relisted. ([#83911](https://github.com/kubernetes/kubernetes/pull/83911), [@matte21](https://github.com/matte21)) -- Fixed panic when accessing CustomResources of a CRD with `x-kubernetes-int-or-string`. ([#83787](https://github.com/kubernetes/kubernetes/pull/83787), [@sttts](https://github.com/sttts)) -- The resource version option, when passed to a list call, is now consistently interpreted as the minimum allowed resource version. Previously when listing resources that had the watch cache disabled clients could retrieve a snapshot at that exact resource version. If the client requests a resource version newer than the current state, a TimeoutError is returned suggesting the client retry in a few seconds. This behavior is now consistent for both single item retrieval and list calls, and for when the watch cache is enabled or disabled. ([#72170](https://github.com/kubernetes/kubernetes/pull/72170), [@jpbetz](https://github.com/jpbetz)) -- Fixes a goroutine leak in kube-apiserver when a request times out. ([#83333](https://github.com/kubernetes/kubernetes/pull/83333), [@lavalamp](https://github.com/lavalamp)) -- Fixes the bug in informer-gen that it produces incorrect code if a type has nonNamespaced tag set. ([#80458](https://github.com/kubernetes/kubernetes/pull/80458), [@tatsuhiro-t](https://github.com/tatsuhiro-t)) -- Resolves bottleneck in internal API server communication that can cause increased goroutines and degrade API Server performance ([#80465](https://github.com/kubernetes/kubernetes/pull/80465), [@answer1991](https://github.com/answer1991)) -- Resolves regression generating informers for packages whose names contain `.` characters ([#82410](https://github.com/kubernetes/kubernetes/pull/82410), [@nikhita](https://github.com/nikhita)) -- Resolves issue with `/readyz` and `/livez` not including etcd and kms health checks ([#82713](https://github.com/kubernetes/kubernetes/pull/82713), [@logicalhan](https://github.com/logicalhan)) -- Fixes regression in logging spurious stack traces when proxied connections are closed by the backend ([#82588](https://github.com/kubernetes/kubernetes/pull/82588), [@liggitt](https://github.com/liggitt)) -- Kube-apiserver now reloads serving certificates from disk every minute to allow rotation without restarting the server process ([#84200](https://github.com/kubernetes/kubernetes/pull/84200), [@jackkleeman](https://github.com/jackkleeman)) -- Client-ca bundles for the all generic-apiserver based servers will dynamically reload from disk on content changes ([#83579](https://github.com/kubernetes/kubernetes/pull/83579), [@deads2k](https://github.com/deads2k)) -- Client-go: Clients can request protobuf and json and correctly negotiate with the server for JSON for CRD objects, allowing all client libraries to request protobuf if it is available. If an error occurs negotiating a watch with the server, the error is immediately return by the client `Watch()` method instead of being sent as an `Error` event on the watch stream. ([#84692](https://github.com/kubernetes/kubernetes/pull/84692), [@smarterclayton](https://github.com/smarterclayton)) -Renamed FeatureGate RequestManagement to APIPriorityAndFairness. This feature gate is an alpha and has not yet been associated with any actual functionality. ([#85260](https://github.com/kubernetes/kubernetes/pull/85260), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) -- Filter published OpenAPI schema by making nullable, required fields non-required in order to avoid kubectl to wrongly reject null values. ([#85722](https://github.com/kubernetes/kubernetes/pull/85722), [@sttts](https://github.com/sttts)) -- kube-apiserver: fixed a conflict error encountered attempting to delete a pod with `gracePeriodSeconds=0` and a resourceVersion precondition ([#85516](https://github.com/kubernetes/kubernetes/pull/85516), [@michaelgugino](https://github.com/michaelgugino)) -- Use context to check client closed instead of http.CloseNotifier in processing watch request which will reduce 1 goroutine for each request if proto is HTTP/2.x . ([#85408](https://github.com/kubernetes/kubernetes/pull/85408), [@answer1991](https://github.com/answer1991)) -- Reload apiserver SNI certificates from disk every minute ([#84303](https://github.com/kubernetes/kubernetes/pull/84303), [@jackkleeman](https://github.com/jackkleeman)) -- The mutating and validating admission webhook plugins now read configuration from the admissionregistration.k8s.io/v1 API. ([#80883](https://github.com/kubernetes/kubernetes/pull/80883), [@liggitt](https://github.com/liggitt)) -- kube-proxy: a configuration file specified via `--config` is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with config files that are malformed, mis-indented, or have typos in field names, and getting unexpected behavior. ([#82927](https://github.com/kubernetes/kubernetes/pull/82927), [@obitech](https://github.com/obitech)) -- When registering with a 1.17+ API server, MutatingWebhookConfiguration and ValidatingWebhookConfiguration objects can now request that only `v1` AdmissionReview requests be sent to them. Previously, webhooks were required to support receiving `v1beta1` AdmissionReview requests as well for compatibility with API servers <= 1.15. - - When registering with a 1.17+ API server, a CustomResourceDefinition conversion webhook can now request that only `v1` ConversionReview requests be sent to them. Previously, conversion webhooks were required to support receiving `v1beta1` ConversionReview requests as well for compatibility with API servers <= 1.15. ([#82707](https://github.com/kubernetes/kubernetes/pull/82707), [@liggitt](https://github.com/liggitt)) -- OpenAPI v3 format in CustomResourceDefinition schemas are now documented. ([#85381](https://github.com/kubernetes/kubernetes/pull/85381), [@sttts](https://github.com/sttts)) -- kube-apiserver: Fixed a regression accepting patch requests > 1MB ([#84963](https://github.com/kubernetes/kubernetes/pull/84963), [@liggitt](https://github.com/liggitt)) -- The example API server has renamed its `wardle.k8s.io` API group to `wardle.example.com` ([#81670](https://github.com/kubernetes/kubernetes/pull/81670), [@liggitt](https://github.com/liggitt)) -- CRDs defaulting is promoted to GA. Note: the feature gate CustomResourceDefaulting will be removed in 1.18. ([#84713](https://github.com/kubernetes/kubernetes/pull/84713), [@sttts](https://github.com/sttts)) -- Restores compatibility with <=1.15.x custom resources by not publishing OpenAPI for non-structural custom resource definitions ([#82653](https://github.com/kubernetes/kubernetes/pull/82653), [@liggitt](https://github.com/liggitt)) -- If given an IPv6 bind-address, kube-apiserver will now advertise an IPv6 endpoint for the kubernetes.default service. ([#84727](https://github.com/kubernetes/kubernetes/pull/84727), [@danwinship](https://github.com/danwinship)) -- Add table convertor to component status. ([#85174](https://github.com/kubernetes/kubernetes/pull/85174), [@zhouya0](https://github.com/zhouya0)) -- Scale custom resource unconditionally if resourceVersion is not provided ([#80572](https://github.com/kubernetes/kubernetes/pull/80572), [@knight42](https://github.com/knight42)) -- When the go-client reflector relists, the ResourceVersion list option is set to the reflector's latest synced resource version to ensure the reflector does not "go back in time" and reprocess events older than it has already processed. If the server responds with an HTTP 410 (Gone) status code response, the relist falls back to using `resourceVersion=""`. ([#83520](https://github.com/kubernetes/kubernetes/pull/83520), [@jpbetz](https://github.com/jpbetz)) -- Fix unsafe JSON construction in a number of locations in the codebase ([#81158](https://github.com/kubernetes/kubernetes/pull/81158), [@zouyee](https://github.com/zouyee)) -- Fixes a flaw (CVE-2019-11253) in json/yaml decoding where large or malformed documents could consume excessive server resources. Request bodies for normal API requests (create/delete/update/patch operations of regular resources) are now limited to 3MB. ([#83261](https://github.com/kubernetes/kubernetes/pull/83261), [@liggitt](https://github.com/liggitt)) -- CRDs can have fields named `type` with value `array` and nested array with `items` fields without validation to fall over this. ([#85223](https://github.com/kubernetes/kubernetes/pull/85223), [@sttts](https://github.com/sttts)) - -### Apps - -- Support Service Topology ([#72046](https://github.com/kubernetes/kubernetes/pull/72046), [@m1093782566](https://github.com/m1093782566)) -- Finalizer Protection for Service LoadBalancers is now in GA (enabled by default). This feature ensures the Service resource is not fully deleted until the correlating load balancer resources are deleted. ([#85023](https://github.com/kubernetes/kubernetes/pull/85023), [@MrHohn](https://github.com/MrHohn)) -- Pod process namespace sharing is now Generally Available. The `PodShareProcessNamespace` feature gate is now deprecated and will be removed in Kubernetes 1.19. ([#84356](https://github.com/kubernetes/kubernetes/pull/84356), [@verb](https://github.com/verb)) -- Fix handling tombstones in pod-disruption-budged controller. ([#83951](https://github.com/kubernetes/kubernetes/pull/83951), [@zouyee](https://github.com/zouyee)) -- Fixed the bug that deleted services were processed by EndpointSliceController repeatedly even their cleanup were successful. ([#82996](https://github.com/kubernetes/kubernetes/pull/82996), [@tnqn](https://github.com/tnqn)) -- Add `RequiresExactMatch` for `label.Selector` ([#85048](https://github.com/kubernetes/kubernetes/pull/85048), [@shaloulcy](https://github.com/shaloulcy)) -- Adds a new label to indicate what is managing an EndpointSlice. ([#83965](https://github.com/kubernetes/kubernetes/pull/83965), [@robscott](https://github.com/robscott)) -- Fix handling tombstones in pod-disruption-budged controller. ([#83951](https://github.com/kubernetes/kubernetes/pull/83951), [@zouyee](https://github.com/zouyee)) -- Fixed the bug that deleted services were processed by EndpointSliceController repeatedly even their cleanup were successful. ([#82996](https://github.com/kubernetes/kubernetes/pull/82996), [@tnqn](https://github.com/tnqn)) -- An end-user may choose to request logs without confirming the identity of the backing kubelet. This feature can be disabled by setting the `AllowInsecureBackendProxy` feature-gate to false. ([#83419](https://github.com/kubernetes/kubernetes/pull/83419), [@deads2k](https://github.com/deads2k)) -- When scaling down a ReplicaSet, delete doubled up replicas first, where a "doubled up replica" is defined as one that is on the same node as an active replica belonging to a related ReplicaSet. ReplicaSets are considered "related" if they have a common controller (typically a Deployment). ([#80004](https://github.com/kubernetes/kubernetes/pull/80004), [@Miciah](https://github.com/Miciah)) -- Kube-controller-manager: Fixes bug setting headless service labels on endpoints ([#85361](https://github.com/kubernetes/kubernetes/pull/85361), [@liggitt](https://github.com/liggitt)) -- People can see the right log and note. ([#84637](https://github.com/kubernetes/kubernetes/pull/84637), [@zhipengzuo](https://github.com/zhipengzuo)) -- Clean duplicate GetPodServiceMemberships function ([#83902](https://github.com/kubernetes/kubernetes/pull/83902), [@gongguan](https://github.com/gongguan)) - -### Auth - -- K8s docker config json secrets are now compatible with docker config desktop authentication credentials files ([#82148](https://github.com/kubernetes/kubernetes/pull/82148), [@bbourbie](https://github.com/bbourbie)) -- Kubelet and aggregated API servers now use v1 TokenReview and SubjectAccessReview endpoints to check authentication/authorization. ([#84768](https://github.com/kubernetes/kubernetes/pull/84768), [@liggitt](https://github.com/liggitt)) -- Kube-apiserver can now specify `--authentication-token-webhook-version=v1` or `--authorization-webhook-version=v1` to use `v1` TokenReview and SubjectAccessReview API objects when communicating with authentication and authorization webhooks. ([#84768](https://github.com/kubernetes/kubernetes/pull/84768), [@liggitt](https://github.com/liggitt)) -- Authentication token cache size is increased (from 4k to 32k) to support clusters with many nodes or many namespaces with active service accounts. ([#83643](https://github.com/kubernetes/kubernetes/pull/83643), [@lavalamp](https://github.com/lavalamp)) -- Apiservers based on k8s.io/apiserver with delegated authn based on cluster authentication will automatically update to new authentication information when the authoritative configmap is updated. ([#85004](https://github.com/kubernetes/kubernetes/pull/85004), [@deads2k](https://github.com/deads2k)) -- Configmaps/extension-apiserver-authentication in kube-system is continuously updated by kube-apiservers, instead of just at apiserver start ([#82705](https://github.com/kubernetes/kubernetes/pull/82705), [@deads2k](https://github.com/deads2k)) - -### CLI -- Fixed kubectl endpointslice output for get requests ([#82603](https://github.com/kubernetes/kubernetes/pull/82603), [@robscott](https://github.com/robscott)) -- Gives the right error message when using `kubectl delete` a wrong resource. ([#83825](https://github.com/kubernetes/kubernetes/pull/83825), [@zhouya0](https://github.com/zhouya0)) -- If a bad flag is supplied to a kubectl command, only a tip to run `--help` is printed, instead of the usage menu. Usage menu is printed upon running `kubectl command --help`. ([#82423](https://github.com/kubernetes/kubernetes/pull/82423), [@sallyom](https://github.com/sallyom)) -- Commands like `kubectl apply` now return errors if schema-invalid annotations are specified, rather than silently dropping the entire annotations section. ([#83552](https://github.com/kubernetes/kubernetes/pull/83552), [@liggitt](https://github.com/liggitt)) -- Fixes spurious 0 revisions listed when running `kubectl rollout history` for a StatefulSet ([#82643](https://github.com/kubernetes/kubernetes/pull/82643), [@ZP-AlwaysWin](https://github.com/ZP-AlwaysWin)) -- Correct a reference to a not/no longer used kustomize subcommand in the documentation ([#82535](https://github.com/kubernetes/kubernetes/pull/82535), [@demobox](https://github.com/demobox)) -- Kubectl set resources will no longer return an error if passed an empty change for a resource. kubectl set subject will no longer return an error if passed an empty change for a resource. ([#85490](https://github.com/kubernetes/kubernetes/pull/85490), [@sallyom](https://github.com/sallyom)) -- Kubectl: --resource-version now works properly in label/annotate/set selector commands when racing with other clients to update the target object ([#85285](https://github.com/kubernetes/kubernetes/pull/85285), [@liggitt](https://github.com/liggitt)) -- The `--certificate-authority` flag now correctly overrides existing skip-TLS or CA data settings in the kubeconfig file ([#83547](https://github.com/kubernetes/kubernetes/pull/83547), [@liggitt](https://github.com/liggitt)) -### Cloud Provider -- Azure: update disk lock logic per vm during attach/detach to allow concurrent updates for different nodes. ([#85115](https://github.com/kubernetes/kubernetes/pull/85115), [@aramase](https://github.com/aramase)) -- Fix vmss dirty cache issue in disk attach/detach on vmss node ([#85158](https://github.com/kubernetes/kubernetes/pull/85158), [@andyzhangx](https://github.com/andyzhangx)) -- Fix race condition when attach/delete azure disk in same time ([#84917](https://github.com/kubernetes/kubernetes/pull/84917), [@andyzhangx](https://github.com/andyzhangx)) -- Change GCP ILB firewall names to contain the `k8s-fw-` prefix like the rest of the firewall rules. This is needed for consistency and also for other components to identify the firewall rule as k8s/service-controller managed. ([#84622](https://github.com/kubernetes/kubernetes/pull/84622), [@prameshj](https://github.com/prameshj)) -- Ensure health probes are created for local traffic policy UDP services on Azure ([#84802](https://github.com/kubernetes/kubernetes/pull/84802), [@feiskyer](https://github.com/feiskyer)) -- Openstack: Do not delete managed LB in case of security group reconciliation errors ([#82264](https://github.com/kubernetes/kubernetes/pull/82264), [@multi-io](https://github.com/multi-io)) -- Fix aggressive VM calls for Azure VMSS ([#83102](https://github.com/kubernetes/kubernetes/pull/83102), [@feiskyer](https://github.com/feiskyer)) -- Fix: azure disk detach failure if node not exists ([#82640](https://github.com/kubernetes/kubernetes/pull/82640), [@andyzhangx](https://github.com/andyzhangx)) -- Add azure disk encryption(SSE+CMK) support ([#84605](https://github.com/kubernetes/kubernetes/pull/84605), [@andyzhangx](https://github.com/andyzhangx)) -- Update Azure SDK versions to v35.0.0 ([#84543](https://github.com/kubernetes/kubernetes/pull/84543), [@andyzhangx](https://github.com/andyzhangx)) -- Azure: Add allow unsafe read from cache ([#83685](https://github.com/kubernetes/kubernetes/pull/83685), [@aramase](https://github.com/aramase)) -- Reduces the number of calls made to the Azure API when requesting the instance view of a virtual machine scale set node. ([#82496](https://github.com/kubernetes/kubernetes/pull/82496), [@hasheddan](https://github.com/hasheddan)) -- Added cloud operation count metrics to azure cloud controller manager. ([#82574](https://github.com/kubernetes/kubernetes/pull/82574), [@kkmsft](https://github.com/kkmsft)) -- On AWS nodes with multiple network interfaces, kubelet should now more reliably report the same primary node IP. ([#80747](https://github.com/kubernetes/kubernetes/pull/80747), [@danwinship](https://github.com/danwinship)) -- Update Azure load balancer to prevent orphaned public IP addresses ([#82890](https://github.com/kubernetes/kubernetes/pull/82890), [@chewong](https://github.com/chewong)) -### Cluster Lifecycle -- Kubeadm alpha certs command now skip missing files ([#85092](https://github.com/kubernetes/kubernetes/pull/85092), [@fabriziopandini](https://github.com/fabriziopandini)) -- Kubeadm: the command "kubeadm token create" now has a "--certificate-key" flag that can be used for the formation of join commands for control-planes with automatic copy of certificates ([#84591](https://github.com/kubernetes/kubernetes/pull/84591), [@TheLastProject](https://github.com/TheLastProject)) -- Kubeadm: Fix a bug where kubeadm cannot parse kubelet's version if the latter dumps logs on the standard error. ([#85351](https://github.com/kubernetes/kubernetes/pull/85351), [@rosti](https://github.com/rosti)) -- Kubeadm: added retry to all the calls to the etcd API so kubeadm will be more resilient to network glitches ([#85201](https://github.com/kubernetes/kubernetes/pull/85201), [@fabriziopandini](https://github.com/fabriziopandini)) -- Fixes a bug in kubeadm that caused init and join to hang indefinitely in specific conditions. ([#85156](https://github.com/kubernetes/kubernetes/pull/85156), [@chuckha](https://github.com/chuckha)) -- Kubeadm now includes CoreDNS version 1.6.5 - - `kubernetes` plugin adds metrics to measure kubernetes control plane latency. - - the `health` plugin now includes the `lameduck` option by default, which waits for a duration before shutting down. ([#85109](https://github.com/kubernetes/kubernetes/pull/85109), [@rajansandeep](https://github.com/rajansandeep)) -- Fixed bug when using kubeadm alpha certs commands with clusters using external etcd ([#85091](https://github.com/kubernetes/kubernetes/pull/85091), [@fabriziopandini](https://github.com/fabriziopandini)) -- Kubeadm no longer defaults or validates the component configs of the kubelet or kube-proxy ([#79223](https://github.com/kubernetes/kubernetes/pull/79223), [@rosti](https://github.com/rosti)) -- Kubeadm: remove the deprecated `--cri-socket` flag for `kubeadm upgrade apply`. The flag has been deprecated since v1.14. ([#85044](https://github.com/kubernetes/kubernetes/pull/85044), [@neolit123](https://github.com/neolit123)) -- Kubeadm: prevent potential hanging of commands such as "kubeadm reset" if the apiserver endpoint is not reachable. ([#84648](https://github.com/kubernetes/kubernetes/pull/84648), [@neolit123](https://github.com/neolit123)) -- Kubeadm: fix skipped etcd upgrade on secondary control-plane nodes when the command `kubeadm upgrade node` is used. ([#85024](https://github.com/kubernetes/kubernetes/pull/85024), [@neolit123](https://github.com/neolit123)) -- Kubeadm: fix an issue with the kube-proxy container env. variables ([#84888](https://github.com/kubernetes/kubernetes/pull/84888), [@neolit123](https://github.com/neolit123)) -- Utilize diagnostics tool to dump GKE windows test logs ([#83517](https://github.com/kubernetes/kubernetes/pull/83517), [@YangLu1031](https://github.com/YangLu1031)) -- Kubeadm: always mount the kube-controller-manager hostPath volume that is given by the `--flex-volume-plugin-dir` flag. ([#84468](https://github.com/kubernetes/kubernetes/pull/84468), [@neolit123](https://github.com/neolit123)) -- Update Cluster Autoscaler version to 1.16.2 (CA release docs: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.16.2) ([#84038](https://github.com/kubernetes/kubernetes/pull/84038), [@losipiuk](https://github.com/losipiuk)) -- Kubeadm no longer removes /etc/cni/net.d as it does not install it. Users should remove files from it manually or rely on the component that created them ([#83950](https://github.com/kubernetes/kubernetes/pull/83950), [@yastij](https://github.com/yastij)) -- Kubeadm: fix wrong default value for the `upgrade node --certificate-renewal` flag. ([#83528](https://github.com/kubernetes/kubernetes/pull/83528), [@neolit123](https://github.com/neolit123)) -- Bump metrics-server to v0.3.5 ([#83015](https://github.com/kubernetes/kubernetes/pull/83015), [@olagacek](https://github.com/olagacek)) -- Dashboard: disable the dashboard Deployment on non-Linux nodes. This step is required to support Windows worker nodes. ([#82975](https://github.com/kubernetes/kubernetes/pull/82975), [@wawa0210](https://github.com/wawa0210)) -- Fixes a panic in kube-controller-manager cleaning up bootstrap tokens ([#82887](https://github.com/kubernetes/kubernetes/pull/82887), [@tedyu](https://github.com/tedyu)) -- Kubeadm: add a new `kubelet-finalize` phase as part of the `init` workflow and an experimental sub-phase to enable automatic kubelet client certificate rotation on primary control-plane nodes. - - Prior to 1.17 and for existing nodes created by `kubeadm init` where kubelet client certificate rotation is desired, you must modify "/etc/kubernetes/kubelet.conf" to point to the PEM symlink for rotation: -`client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem` and `client-key: /var/lib/kubelet/pki/kubelet-client-current.pem`, replacing the embedded client certificate and key. ([#84118](https://github.com/kubernetes/kubernetes/pull/84118), [@neolit123](https://github.com/neolit123)) -- Kubeadm: add a upgrade health check that deploys a Job ([#81319](https://github.com/kubernetes/kubernetes/pull/81319), [@neolit123](https://github.com/neolit123)) -- Kubeadm now supports automatic calculations of dual-stack node cidr masks to kube-controller-manager. ([#85609](https://github.com/kubernetes/kubernetes/pull/85609), [@Arvinderpal](https://github.com/Arvinderpal)) -- Kubeadm: reset raises warnings if it cannot delete folders ([#85265](https://github.com/kubernetes/kubernetes/pull/85265), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: enable the usage of the secure kube-scheduler and kube-controller-manager ports for health checks. For kube-scheduler was 10251, becomes 10259. For kube-controller-manager was 10252, becomes 10257. ([#85043](https://github.com/kubernetes/kubernetes/pull/85043), [@neolit123](https://github.com/neolit123)) -- A new kubelet command line option, `--reserved-cpus`, is introduced to explicitly define the CPU list that will be reserved for system. For example, if `--reserved-cpus=0,1,2,3` is specified, then cpu 0,1,2,3 will be reserved for the system. On a system with 24 CPUs, the user may specify `isolcpus=4-23` for the kernel option and use CPU 4-23 for the user containers. ([#83592](https://github.com/kubernetes/kubernetes/pull/83592), [@jianzzha](https://github.com/jianzzha)) -- Kubelet: a configuration file specified via `--config` is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with config files that are malformed, mis-indented, or have typos in field names, and getting unexpected behavior. ([#83204](https://github.com/kubernetes/kubernetes/pull/83204), [@obitech](https://github.com/obitech)) -- Kubeadm now propagates proxy environment variables to kube-proxy ([#84559](https://github.com/kubernetes/kubernetes/pull/84559), [@yastij](https://github.com/yastij)) -- Update the latest validated version of Docker to 19.03 ([#84476](https://github.com/kubernetes/kubernetes/pull/84476), [@neolit123](https://github.com/neolit123)) -- Update to Ingress-GCE v1.6.1 ([#84018](https://github.com/kubernetes/kubernetes/pull/84018), [@rramkumar1](https://github.com/rramkumar1)) -- Kubeadm: enhance certs check-expiration to show the expiration info of related CAs ([#83932](https://github.com/kubernetes/kubernetes/pull/83932), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: implemented structured output of 'kubeadm token list' in JSON, YAML, Go template and JsonPath formats ([#78764](https://github.com/kubernetes/kubernetes/pull/78764), [@bart0sh](https://github.com/bart0sh)) -- Kubeadm: add support for `127.0.0.1` as advertise address. kubeadm will automatically replace this value with matching global unicast IP address on the loopback interface. ([#83475](https://github.com/kubernetes/kubernetes/pull/83475), [@fabriziopandini](https://github.com/fabriziopandini)) -- Kube-scheduler: a configuration file specified via `--config` is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with config files that are malformed, mis-indented, or have typos in field names, and getting unexpected behavior. ([#83030](https://github.com/kubernetes/kubernetes/pull/83030), [@obitech](https://github.com/obitech)) -- Kubeadm: use the `--service-cluster-ip-range` flag to init or use the ServiceSubnet field in the kubeadm config to pass a comma separated list of Service CIDRs. ([#82473](https://github.com/kubernetes/kubernetes/pull/82473), [@Arvinderpal](https://github.com/Arvinderpal)) -- Update crictl to v1.16.1. ([#82856](https://github.com/kubernetes/kubernetes/pull/82856), [@Random-Liu](https://github.com/Random-Liu)) -- Bump addon-resizer to 1.8.7 to fix issues with using deprecated extensions APIs ([#85864](https://github.com/kubernetes/kubernetes/pull/85864), [@liggitt](https://github.com/liggitt)) -- Simple script based hyperkube image that bundles all the necessary binaries. This is an equivalent replacement for the image based on the go based hyperkube command + image. ([#84662](https://github.com/kubernetes/kubernetes/pull/84662), [@dims](https://github.com/dims)) -- Hyperkube will now be available in a new Github repository and will not be included in the kubernetes release from 1.17 onwards ([#83454](https://github.com/kubernetes/kubernetes/pull/83454), [@dims](https://github.com/dims)) -- Remove prometheus cluster monitoring addon from kube-up ([#83442](https://github.com/kubernetes/kubernetes/pull/83442), [@serathius](https://github.com/serathius)) -- SourcesReady provides the readiness of kubelet configuration sources such as apiserver update readiness. ([#81344](https://github.com/kubernetes/kubernetes/pull/81344), [@zouyee](https://github.com/zouyee)) -- This PR sets the --cluster-dns flag value to kube-dns service IP whether or not NodeLocal DNSCache is enabled. NodeLocal DNSCache will listen on both the link-local as well as the service IP. ([#84383](https://github.com/kubernetes/kubernetes/pull/84383), [@prameshj](https://github.com/prameshj)) -- kube-dns add-on: - - All containers are now being executed under more restrictive privileges. - - Most of the containers now run as non-root user and has the root filesystem set as read-only. - - The remaining container running as root only has the minimum Linux capabilities it requires to run. - - Privilege escalation has been disabled for all containers. ([#82347](https://github.com/kubernetes/kubernetes/pull/82347), [@pjbgf](https://github.com/pjbgf)) -- Kubernetes no longer monitors firewalld. On systems using firewalld for firewall - maintenance, kube-proxy will take slightly longer to recover from disruptive - firewalld operations that delete kube-proxy's iptables rules. - - As a side effect of these changes, kube-proxy's - `sync_proxy_rules_last_timestamp_seconds` metric no longer behaves the - way it used to; now it will only change when services or endpoints actually - change, rather than reliably updating every 60 seconds (or whatever). If you - are trying to monitor for whether iptables updates are failing, the - `sync_proxy_rules_iptables_restore_failures_total` metric may be more useful. ([#81517](https://github.com/kubernetes/kubernetes/pull/81517), [@danwinship](https://github.com/danwinship)) -### Instrumentation -- Bump version of event-exporter to 0.3.1, to switch it to protobuf. ([#83396](https://github.com/kubernetes/kubernetes/pull/83396), [@loburm](https://github.com/loburm)) -- Bumps metrics-server version to v0.3.6 with following bugfix: - - Don't break metric storage when duplicate pod metrics encountered causing hpa to fail ([#83907](https://github.com/kubernetes/kubernetes/pull/83907), [@olagacek](https://github.com/olagacek)) -- addons: elasticsearch discovery supports IPv6 ([#85543](https://github.com/kubernetes/kubernetes/pull/85543), [@SataQiu](https://github.com/SataQiu)) -- Update Cluster Autoscaler to 1.17.0; changelog: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.17.0 ([#85610](https://github.com/kubernetes/kubernetes/pull/85610), [@losipiuk](https://github.com/losipiuk)) -### Network -- The official kube-proxy image (used by kubeadm, among other things) is now compatible with systems running iptables 1.8 in "nft" mode, and will autodetect which mode it should use. ([#82966](https://github.com/kubernetes/kubernetes/pull/82966), [@danwinship](https://github.com/danwinship)) -- Kubenet: added HostPort IPv6 support. HostPortManager: operates only with one IP family, failing if receives port mapping entries with different IP families. HostPortSyncer: operates only with one IP family, skipping portmap entries with different IP families ([#80854](https://github.com/kubernetes/kubernetes/pull/80854), [@aojea](https://github.com/aojea)) -- Kube-proxy now supports DualStack feature with EndpointSlices and IPVS. ([#85246](https://github.com/kubernetes/kubernetes/pull/85246), [@robscott](https://github.com/robscott)) -- Remove redundant API validation when using Service Topology with externalTrafficPolicy=Local ([#85346](https://github.com/kubernetes/kubernetes/pull/85346), [@andrewsykim](https://github.com/andrewsykim)) -- Update github.com/vishvananda/netlink to v1.0.0 ([#83576](https://github.com/kubernetes/kubernetes/pull/83576), [@andrewsykim](https://github.com/andrewsykim)) -- `-- kube-controller-manager` - `--node-cidr-mask-size-ipv4 int32` Default: 24. Mask size for IPv4 node-cidr in dual-stack cluster. -`--node-cidr-mask-size-ipv6 int32` Default: 64. Mask size for IPv6 node-cidr in dual-stack cluster. - - These 2 flags can be used only for dual-stack clusters. For non dual-stack clusters, continue to use `--node-cidr-mask-size` flag to configure the mask size. - - The default node cidr mask size for IPv6 was 24 which is now changed to 64. ([#79993](https://github.com/kubernetes/kubernetes/pull/79993), [@aramase](https://github.com/aramase)) -- deprecate cleanup-ipvs flag ([#83832](https://github.com/kubernetes/kubernetes/pull/83832), [@gongguan](https://github.com/gongguan)) -- Kube-proxy: emits a warning when a malformed component config file is used with v1alpha1. ([#84143](https://github.com/kubernetes/kubernetes/pull/84143), [@phenixblue](https://github.com/phenixblue)) -- Set config.BindAddress to IPv4 address `127.0.0.1` if not specified ([#83822](https://github.com/kubernetes/kubernetes/pull/83822), [@zouyee](https://github.com/zouyee)) -- Updated kube-proxy ipvs README with correct grep argument to list loaded ipvs modules ([#83677](https://github.com/kubernetes/kubernetes/pull/83677), [@pete911](https://github.com/pete911)) -- The userspace mode of kube-proxy no longer confusingly logs messages about deleting endpoints that it is actually adding. ([#83644](https://github.com/kubernetes/kubernetes/pull/83644), [@danwinship](https://github.com/danwinship)) -- Kube-proxy iptables probabilities are now more granular and will result in better distribution beyond 319 endpoints. ([#83599](https://github.com/kubernetes/kubernetes/pull/83599), [@robscott](https://github.com/robscott)) -- Significant kube-proxy performance improvements for non UDP ports. ([#83208](https://github.com/kubernetes/kubernetes/pull/83208), [@robscott](https://github.com/robscott)) -- Improved performance of kube-proxy with EndpointSlice enabled with more efficient sorting. ([#83035](https://github.com/kubernetes/kubernetes/pull/83035), [@robscott](https://github.com/robscott)) -- EndpointSlices are now beta for better Network Endpoint performance at scale. ([#84390](https://github.com/kubernetes/kubernetes/pull/84390), [@robscott](https://github.com/robscott)) -- Updated EndpointSlices to use PublishNotReadyAddresses from Services. ([#84573](https://github.com/kubernetes/kubernetes/pull/84573), [@robscott](https://github.com/robscott)) -- When upgrading to 1.17 with a cluster with EndpointSlices enabled, the `endpointslice.kubernetes.io/managed-by` label needs to be set on each EndpointSlice. ([#85359](https://github.com/kubernetes/kubernetes/pull/85359), [@robscott](https://github.com/robscott)) -- Adds FQDN addressType support for EndpointSlice. ([#84091](https://github.com/kubernetes/kubernetes/pull/84091), [@robscott](https://github.com/robscott)) -- Fix incorrect network policy description suggesting that pods are isolated when a network policy has no rules of a given type ([#84194](https://github.com/kubernetes/kubernetes/pull/84194), [@jackkleeman](https://github.com/jackkleeman)) -- Fix bug where EndpointSlice controller would attempt to modify shared objects. ([#85368](https://github.com/kubernetes/kubernetes/pull/85368), [@robscott](https://github.com/robscott)) -- Splitting IP address type into IPv4 and IPv6 for EndpointSlices ([#84971](https://github.com/kubernetes/kubernetes/pull/84971), [@robscott](https://github.com/robscott)) -- Added appProtocol field to EndpointSlice Port ([#83815](https://github.com/kubernetes/kubernetes/pull/83815), [@howardjohn](https://github.com/howardjohn)) -- The docker container runtime now enforces a 220 second timeout on container network operations. ([#71653](https://github.com/kubernetes/kubernetes/pull/71653), [@liucimin](https://github.com/liucimin)) -- Fix panic in kubelet when running IPv4/IPv6 dual-stack mode with a CNI plugin ([#82508](https://github.com/kubernetes/kubernetes/pull/82508), [@aanm](https://github.com/aanm)) -- EndpointSlice hostname is now set in the same conditions Endpoints hostname is. ([#84207](https://github.com/kubernetes/kubernetes/pull/84207), [@robscott](https://github.com/robscott)) -- Improving the performance of Endpoint and EndpointSlice controllers by caching Service Selectors ([#84280](https://github.com/kubernetes/kubernetes/pull/84280), [@gongguan](https://github.com/gongguan)) -- Significant kube-proxy performance improvements when using Endpoint Slices at scale. ([#83206](https://github.com/kubernetes/kubernetes/pull/83206), [@robscott](https://github.com/robscott)) - -### Node -- Mirror pods now include an ownerReference for the node that created them. ([#84485](https://github.com/kubernetes/kubernetes/pull/84485), [@tallclair](https://github.com/tallclair)) -- Fixed a bug in the single-numa-policy of the TopologyManager. Previously, best-effort pods would result in a terminated state with a TopologyAffinity error. Now they will run as expected. ([#83777](https://github.com/kubernetes/kubernetes/pull/83777), [@lmdaly](https://github.com/lmdaly)) -- Fixed a bug in the single-numa-node policy of the TopologyManager. Previously, pods that only requested CPU resources and did not request any third-party devices would fail to launch with a TopologyAffinity error. Now they will launch successfully. ([#83697](https://github.com/kubernetes/kubernetes/pull/83697), [@klueska](https://github.com/klueska)) -- Fix error where metrics related to dynamic kubelet config isn't registered ([#83184](https://github.com/kubernetes/kubernetes/pull/83184), [@odinuge](https://github.com/odinuge)) -- If container fails because ContainerCannotRun, do not utilize the FallbackToLogsOnError TerminationMessagePolicy, as it masks more useful logs. ([#81280](https://github.com/kubernetes/kubernetes/pull/81280), [@yqwang-ms](https://github.com/yqwang-ms)) -- Use online nodes instead of possible nodes when discovering available NUMA nodes ([#83196](https://github.com/kubernetes/kubernetes/pull/83196), [@zouyee](https://github.com/zouyee)) -- Use IPv4 in wincat port forward. ([#83036](https://github.com/kubernetes/kubernetes/pull/83036), [@liyanhui1228](https://github.com/liyanhui1228)) -- Single static pod files and pod files from http endpoints cannot be larger than 10 MB. HTTP probe payloads are now truncated to 10KB. ([#82669](https://github.com/kubernetes/kubernetes/pull/82669), [@rphillips](https://github.com/rphillips)) -- Limit the body length of exec readiness/liveness probes. remote CRIs and Docker shim read a max of 16MB output of which the exec probe itself inspects 10kb. ([#82514](https://github.com/kubernetes/kubernetes/pull/82514), [@dims](https://github.com/dims)) -- Kubelet: Added kubelet serving certificate metric `server_rotation_seconds` which is a histogram reporting the age of a just rotated serving certificate in seconds. ([#84534](https://github.com/kubernetes/kubernetes/pull/84534), [@sambdavidson](https://github.com/sambdavidson)) -- Reduce default NodeStatusReportFrequency to 5 minutes. With this change, periodic node status updates will be send every 5m if node status doesn't change (otherwise they are still send with 10s). - - Bump NodeProblemDetector version to v0.8.0 to reduce forced NodeStatus updates frequency to 5 minutes. ([#84007](https://github.com/kubernetes/kubernetes/pull/84007), [@wojtek-t](https://github.com/wojtek-t)) -- The topology manager aligns resources for pods of all QoS classes with respect to NUMA locality, not just Guaranteed QoS pods. ([#83492](https://github.com/kubernetes/kubernetes/pull/83492), [@ConnorDoyle](https://github.com/ConnorDoyle)) -- Fix a bug that a node Lease object may have been created without OwnerReference. ([#84998](https://github.com/kubernetes/kubernetes/pull/84998), [@wojtek-t](https://github.com/wojtek-t)) -- External facing APIs in plugin registration and device plugin packages are now available under k8s.io/kubelet/pkg/apis/ ([#83551](https://github.com/kubernetes/kubernetes/pull/83551), [@dims](https://github.com/dims)) -### Release -- Added the `crictl` Windows binaries as well as the Linux 32bit binary to the release archives ([#83944](https://github.com/kubernetes/kubernetes/pull/83944), [@saschagrunert](https://github.com/saschagrunert)) -- Bumps the minimum version of Go required for building Kubernetes to 1.12.4. ([#83596](https://github.com/kubernetes/kubernetes/pull/83596), [@jktomer](https://github.com/jktomer)) -- The deprecated mondo `kubernetes-test` tarball is no longer built. Users running Kubernetes e2e tests should use the `kubernetes-test-portable` and `kubernetes-test-{OS}-{ARCH}` tarballs instead. ([#83093](https://github.com/kubernetes/kubernetes/pull/83093), [@ixdy](https://github.com/ixdy)) - -### Scheduling - -- Only validate duplication of the RequestedToCapacityRatio custom priority and allow other custom predicates/priorities ([#84646](https://github.com/kubernetes/kubernetes/pull/84646), [@liu-cong](https://github.com/liu-cong)) -- Scheduler policy configs can no longer be declared multiple times ([#83963](https://github.com/kubernetes/kubernetes/pull/83963), [@damemi](https://github.com/damemi)) -- TaintNodesByCondition was graduated to GA, CheckNodeMemoryPressure, CheckNodePIDPressure, CheckNodeDiskPressure, CheckNodeCondition were accidentally removed since 1.12, the replacement is to use CheckNodeUnschedulablePred ([#84152](https://github.com/kubernetes/kubernetes/pull/84152), [@draveness](https://github.com/draveness)) -- [migration phase 1] PodFitsHostPorts as filter plugin ([#83659](https://github.com/kubernetes/kubernetes/pull/83659), [@wgliang](https://github.com/wgliang)) -- [migration phase 1] PodFitsResources as framework plugin ([#83650](https://github.com/kubernetes/kubernetes/pull/83650), [@wgliang](https://github.com/wgliang)) -- [migration phase 1] PodMatchNodeSelector/NodAffinity as filter plugin ([#83660](https://github.com/kubernetes/kubernetes/pull/83660), [@wgliang](https://github.com/wgliang)) -- Add more tracing steps in generic_scheduler ([#83539](https://github.com/kubernetes/kubernetes/pull/83539), [@wgliang](https://github.com/wgliang)) -- [migration phase 1] PodFitsHost as filter plugin ([#83662](https://github.com/kubernetes/kubernetes/pull/83662), [@wgliang](https://github.com/wgliang)) -- Fixed a scheduler panic when using PodAffinity. ([#82841](https://github.com/kubernetes/kubernetes/pull/82841), [@Huang-Wei](https://github.com/Huang-Wei)) -- Take the context as the first argument of Schedule. ([#82119](https://github.com/kubernetes/kubernetes/pull/82119), [@wgliang](https://github.com/wgliang)) -- Fixed an issue that the correct PluginConfig.Args is not passed to the corresponding PluginFactory in kube-scheduler when multiple PluginConfig items are defined. ([#82483](https://github.com/kubernetes/kubernetes/pull/82483), [@everpeace](https://github.com/everpeace)) -- Profiling is enabled by default in the scheduler ([#84835](https://github.com/kubernetes/kubernetes/pull/84835), [@denkensk](https://github.com/denkensk)) -- Scheduler now reports metrics on cache size including nodes, pods, and assumed pods ([#83508](https://github.com/kubernetes/kubernetes/pull/83508), [@damemi](https://github.com/damemi)) -- User can now use component config to configure NodeLabel plugin for the scheduler framework. ([#84297](https://github.com/kubernetes/kubernetes/pull/84297), [@liu-cong](https://github.com/liu-cong)) -- Optimize inter-pod affinity preferredDuringSchedulingIgnoredDuringExecution type, up to 4x in some cases. ([#84264](https://github.com/kubernetes/kubernetes/pull/84264), [@ahg-g](https://github.com/ahg-g)) -- Filter plugin for cloud provider storage predicate ([#84148](https://github.com/kubernetes/kubernetes/pull/84148), [@gongguan](https://github.com/gongguan)) -- Refactor scheduler's framework permit API. ([#83756](https://github.com/kubernetes/kubernetes/pull/83756), [@hex108](https://github.com/hex108)) -- Add incoming pods metrics to scheduler queue. ([#83577](https://github.com/kubernetes/kubernetes/pull/83577), [@liu-cong](https://github.com/liu-cong)) -- Allow dynamically set glog logging level of kube-scheduler ([#83910](https://github.com/kubernetes/kubernetes/pull/83910), [@mrkm4ntr](https://github.com/mrkm4ntr)) -- Add latency and request count metrics for scheduler framework. ([#83569](https://github.com/kubernetes/kubernetes/pull/83569), [@liu-cong](https://github.com/liu-cong)) -- Expose SharedInformerFactory in the framework handle ([#83663](https://github.com/kubernetes/kubernetes/pull/83663), [@draveness](https://github.com/draveness)) -- Add per-pod scheduling metrics across 1 or more schedule attempts. ([#83674](https://github.com/kubernetes/kubernetes/pull/83674), [@liu-cong](https://github.com/liu-cong)) -- Add `podInitialBackoffDurationSeconds` and `podMaxBackoffDurationSeconds` to the scheduler config API ([#81263](https://github.com/kubernetes/kubernetes/pull/81263), [@draveness](https://github.com/draveness)) -- Expose kubernetes client in the scheduling framework handle. ([#82432](https://github.com/kubernetes/kubernetes/pull/82432), [@draveness](https://github.com/draveness)) -- Remove MaxPriority in the scheduler API, please use MaxNodeScore or MaxExtenderPriority instead. ([#83386](https://github.com/kubernetes/kubernetes/pull/83386), [@draveness](https://github.com/draveness)) -- Consolidate ScoreWithNormalizePlugin into the ScorePlugin interface ([#83042](https://github.com/kubernetes/kubernetes/pull/83042), [@draveness](https://github.com/draveness)) -- New APIs to allow adding/removing pods from pre-calculated prefilter state in the scheduling framework ([#82912](https://github.com/kubernetes/kubernetes/pull/82912), [@ahg-g](https://github.com/ahg-g)) -- Added Clone method to the scheduling framework's PluginContext and ContextData. ([#82951](https://github.com/kubernetes/kubernetes/pull/82951), [@ahg-g](https://github.com/ahg-g)) -- Modified the scheduling framework's Filter API. ([#82842](https://github.com/kubernetes/kubernetes/pull/82842), [@ahg-g](https://github.com/ahg-g)) -- Critical pods can now be created in namespaces other than kube-system. To limit critical pods to the kube-system namespace, cluster admins should create an admission configuration file limiting critical pods by default, and a matching quota object in the `kube-system` namespace permitting critical pods in that namespace. See https://kubernetes.io/docs/concepts/policy/resource-quotas/#limit-priority-class-consumption-by-default for details. ([#76310](https://github.com/kubernetes/kubernetes/pull/76310), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- Scheduler ComponentConfig fields are now pointers ([#83619](https://github.com/kubernetes/kubernetes/pull/83619), [@damemi](https://github.com/damemi)) -- Scheduler Policy API has a new recommended apiVersion `apiVersion: kubescheduler.config.k8s.io/v1` which is consistent with the scheduler API group `kubescheduler.config.k8s.io`. It holds the same API as the old apiVersion `apiVersion: v1`. ([#83578](https://github.com/kubernetes/kubernetes/pull/83578), [@Huang-Wei](https://github.com/Huang-Wei)) -- Rename PluginContext to CycleState in the scheduling framework ([#83430](https://github.com/kubernetes/kubernetes/pull/83430), [@draveness](https://github.com/draveness)) -- Some scheduler extender API fields are moved from `pkg/scheduler/api` to `pkg/scheduler/apis/extender/v1`. ([#83262](https://github.com/kubernetes/kubernetes/pull/83262), [@Huang-Wei](https://github.com/Huang-Wei)) -- Kube-scheduler: emits a warning when a malformed component config file is used with v1alpha1. ([#84129](https://github.com/kubernetes/kubernetes/pull/84129), [@obitech](https://github.com/obitech)) -- Kube-scheduler now falls back to emitting events using core/v1 Events when events.k8s.io/v1beta1 is disabled. ([#83692](https://github.com/kubernetes/kubernetes/pull/83692), [@yastij](https://github.com/yastij)) -- Expand scheduler priority functions and scheduling framework plugins' node score range to [0, 100]. Note: this change is internal and does not affect extender and RequestedToCapacityRatio custom priority, which are still expected to provide a [0, 10] range. ([#83522](https://github.com/kubernetes/kubernetes/pull/83522), [@draveness](https://github.com/draveness)) - -### Storage -- Bump CSI version to 1.2.0 ([#84832](https://github.com/kubernetes/kubernetes/pull/84832), [@gnufied](https://github.com/gnufied)) -- CSI Migration: Fixes issue where all volumes with the same inline volume inner spec name were staged in the same path. Migrated inline volumes are now staged at a unique path per unique volume. ([#84754](https://github.com/kubernetes/kubernetes/pull/84754), [@davidz627](https://github.com/davidz627)) -- CSI Migration: GCE PD access mode now reflects read only status of inline volumes - this allows multi-attach for read only many PDs ([#84809](https://github.com/kubernetes/kubernetes/pull/84809), [@davidz627](https://github.com/davidz627)) -- CSI detach timeout increased from 10 seconds to 2 minutes ([#84321](https://github.com/kubernetes/kubernetes/pull/84321), [@cduchesne](https://github.com/cduchesne)) -- Ceph RBD volume plugin now does not use any keyring (`/etc/ceph/ceph.client.lvs01cinder.keyring`, `/etc/ceph/ceph.keyring`, `/etc/ceph/keyring`, `/etc/ceph/keyring.bin`) for authentication. Ceph user credentials must be provided in PersistentVolume objects and referred Secrets. ([#75588](https://github.com/kubernetes/kubernetes/pull/75588), [@smileusd](https://github.com/smileusd)) -- Validate Gluster IP ([#83104](https://github.com/kubernetes/kubernetes/pull/83104), [@zouyee](https://github.com/zouyee)) -- PersistentVolumeLabel admission plugin, responsible for labeling `PersistentVolumes` with topology labels, now does not overwrite existing labels on PVs that were dynamically provisioned. It trusts the dynamic provisioning that it provided the correct labels to the `PersistentVolume`, saving one potentially expensive cloud API call. `PersistentVolumes` created manually by users are labelled by the admission plugin in the same way as before. ([#82830](https://github.com/kubernetes/kubernetes/pull/82830), [@jsafrane](https://github.com/jsafrane)) - -- Existing PVs are converted to use volume topology if migration is enabled. ([#83394](https://github.com/kubernetes/kubernetes/pull/83394), [@bertinatto](https://github.com/bertinatto)) -- local: support local filesystem volume with block resource reconstruction ([#84218](https://github.com/kubernetes/kubernetes/pull/84218), [@cofyc](https://github.com/cofyc)) -- Fixed binding of block PersistentVolumes / PersistentVolumeClaims when BlockVolume feature is off. ([#84049](https://github.com/kubernetes/kubernetes/pull/84049), [@jsafrane](https://github.com/jsafrane)) -- Report non-confusing error for negative storage size in PVC spec. ([#82759](https://github.com/kubernetes/kubernetes/pull/82759), [@sttts](https://github.com/sttts)) -- Fixed "requested device X but found Y" attach error on AWS. ([#85675](https://github.com/kubernetes/kubernetes/pull/85675), [@jsafrane](https://github.com/jsafrane)) -- Reduced frequency of DescribeVolumes calls of AWS API when attaching/detaching a volume. ([#84181](https://github.com/kubernetes/kubernetes/pull/84181), [@jsafrane](https://github.com/jsafrane)) -- Fixed attachment of AWS volumes that have just been detached. ([#83567](https://github.com/kubernetes/kubernetes/pull/83567), [@jsafrane](https://github.com/jsafrane)) -- Fix possible fd leak and closing of dirs when using openstack ([#82873](https://github.com/kubernetes/kubernetes/pull/82873), [@odinuge](https://github.com/odinuge)) -- local: support local volume block mode reconstruction ([#84173](https://github.com/kubernetes/kubernetes/pull/84173), [@cofyc](https://github.com/cofyc)) -- Fixed cleanup of raw block devices after kubelet restart. ([#83451](https://github.com/kubernetes/kubernetes/pull/83451), [@jsafrane](https://github.com/jsafrane)) -- Add data cache flushing during unmount device for GCE-PD driver in Windows Server. ([#83591](https://github.com/kubernetes/kubernetes/pull/83591), [@jingxu97](https://github.com/jingxu97)) -### Windows -- Adds Windows Server build information as a label on the node. ([#84472](https://github.com/kubernetes/kubernetes/pull/84472), [@gab-satchi](https://github.com/gab-satchi)) -- Fixes kube-proxy bug accessing self nodeip:port on windows ([#83027](https://github.com/kubernetes/kubernetes/pull/83027), [@liggitt](https://github.com/liggitt)) -- When using Containerd on Windows, the ``TerminationMessagePath`` file will now be mounted in the Windows Pod. ([#83057](https://github.com/kubernetes/kubernetes/pull/83057), [@bclau](https://github.com/bclau)) -- Fix kubelet metrics gathering on non-English Windows hosts ([#84156](https://github.com/kubernetes/kubernetes/pull/84156), [@wawa0210](https://github.com/wawa0210)) - -### Dependencies - - -- Update etcd client side to v3.4.3 ([#83987](https://github.com/kubernetes/kubernetes/pull/83987), [@wenjiaswe](https://github.com/wenjiaswe)) -- Kubernetes now requires go1.13.4+ to build ([#82809](https://github.com/kubernetes/kubernetes/pull/82809), [@liggitt](https://github.com/liggitt)) -- Update to use go1.12.12 ([#84064](https://github.com/kubernetes/kubernetes/pull/84064), [@cblecker](https://github.com/cblecker)) -- Update to go 1.12.10 ([#83139](https://github.com/kubernetes/kubernetes/pull/83139), [@cblecker](https://github.com/cblecker)) -- Update default etcd server version to 3.4.3 ([#84329](https://github.com/kubernetes/kubernetes/pull/84329), [@jingyih](https://github.com/jingyih)) -- Upgrade default etcd server version to 3.3.17 ([#83804](https://github.com/kubernetes/kubernetes/pull/83804), [@jpbetz](https://github.com/jpbetz)) -- Upgrade to etcd client 3.3.17 to fix bug where etcd client does not parse IPv6 addresses correctly when members are joining, and to fix bug where failover on multi-member etcd cluster fails certificate check on DNS mismatch ([#83801](https://github.com/kubernetes/kubernetes/pull/83801), [@jpbetz](https://github.com/jpbetz)) - -### Detailed go Dependency Changes - -#### Added -- github.com/OpenPeeDeeP/depguard: v1.0.1 -- github.com/StackExchange/wmi: 5d04971 -- github.com/agnivade/levenshtein: v1.0.1 -- github.com/alecthomas/template: a0175ee -- github.com/alecthomas/units: 2efee85 -- github.com/andreyvit/diff: c7f18ee -- github.com/anmitsu/go-shlex: 648efa6 -- github.com/bazelbuild/rules_go: 6dae44d -- github.com/bgentry/speakeasy: v0.1.0 -- github.com/bradfitz/go-smtpd: deb6d62 -- github.com/cockroachdb/datadriven: 80d97fb -- github.com/creack/pty: v1.1.7 -- github.com/gliderlabs/ssh: v0.1.1 -- github.com/go-critic/go-critic: 1df3008 -- github.com/go-kit/kit: v0.8.0 -- github.com/go-lintpack/lintpack: v0.5.2 -- github.com/go-logfmt/logfmt: v0.3.0 -- github.com/go-ole/go-ole: v1.2.1 -- github.com/go-stack/stack: v1.8.0 -- github.com/go-toolsmith/astcast: v1.0.0 -- github.com/go-toolsmith/astcopy: v1.0.0 -- github.com/go-toolsmith/astequal: v1.0.0 -- github.com/go-toolsmith/astfmt: v1.0.0 -- github.com/go-toolsmith/astinfo: 9809ff7 -- github.com/go-toolsmith/astp: v1.0.0 -- github.com/go-toolsmith/pkgload: v1.0.0 -- github.com/go-toolsmith/strparse: v1.0.0 -- github.com/go-toolsmith/typep: v1.0.0 -- github.com/gobwas/glob: v0.2.3 -- github.com/golangci/check: cfe4005 -- github.com/golangci/dupl: 3e9179a -- github.com/golangci/errcheck: ef45e06 -- github.com/golangci/go-misc: 927a3d8 -- github.com/golangci/go-tools: e32c541 -- github.com/golangci/goconst: 041c5f2 -- github.com/golangci/gocyclo: 2becd97 -- github.com/golangci/gofmt: 0b8337e -- github.com/golangci/golangci-lint: v1.18.0 -- github.com/golangci/gosec: 66fb7fc -- github.com/golangci/ineffassign: 42439a7 -- github.com/golangci/lint-1: ee948d0 -- github.com/golangci/maligned: b1d8939 -- github.com/golangci/misspell: 950f5d1 -- github.com/golangci/prealloc: 215b22d -- github.com/golangci/revgrep: d9c87f5 -- github.com/golangci/unconvert: 28b1c44 -- github.com/google/go-github: v17.0.0+incompatible -- github.com/google/go-querystring: v1.0.0 -- github.com/gostaticanalysis/analysisutil: v0.0.3 -- github.com/jellevandenhooff/dkim: f50fe3d -- github.com/julienschmidt/httprouter: v1.2.0 -- github.com/klauspost/compress: v1.4.1 -- github.com/kr/logfmt: b84e30a -- github.com/logrusorgru/aurora: a7b3b31 -- github.com/mattn/go-runewidth: v0.0.2 -- github.com/mattn/goveralls: v0.0.2 -- github.com/mitchellh/go-ps: 4fdf99a -- github.com/mozilla/tls-observatory: 8791a20 -- github.com/mwitkow/go-conntrack: cc309e4 -- github.com/nbutton23/zxcvbn-go: eafdab6 -- github.com/olekukonko/tablewriter: a0225b3 -- github.com/quasilyte/go-consistent: c6f3937 -- github.com/rogpeppe/fastuuid: 6724a57 -- github.com/ryanuber/go-glob: 256dc44 -- github.com/sergi/go-diff: v1.0.0 -- github.com/shirou/gopsutil: c95755e -- github.com/shirou/w32: bb4de01 -- github.com/shurcooL/go-goon: 37c2f52 -- github.com/shurcooL/go: 9e1955d -- github.com/sourcegraph/go-diff: v0.5.1 -- github.com/tarm/serial: 98f6abe -- github.com/tidwall/pretty: v1.0.0 -- github.com/timakin/bodyclose: 87058b9 -- github.com/ultraware/funlen: v0.0.2 -- github.com/urfave/cli: v1.20.0 -- github.com/valyala/bytebufferpool: v1.0.0 -- github.com/valyala/fasthttp: v1.2.0 -- github.com/valyala/quicktemplate: v1.1.1 -- github.com/valyala/tcplisten: ceec8f9 -- github.com/vektah/gqlparser: v1.1.2 -- go.etcd.io/etcd: 3cf2f69 -- go.mongodb.org/mongo-driver: v1.1.2 -- go4.org: 417644f -- golang.org/x/build: 2835ba2 -- golang.org/x/perf: 6e6d33e -- golang.org/x/xerrors: a985d34 -- gopkg.in/alecthomas/kingpin.v2: v2.2.6 -- gopkg.in/cheggaaa/pb.v1: v1.0.25 -- gopkg.in/resty.v1: v1.12.0 -- grpc.go4.org: 11d0a25 -- k8s.io/system-validators: v1.0.4 -- mvdan.cc/interfacer: c200402 -- mvdan.cc/lint: adc824a -- mvdan.cc/unparam: fbb5962 -- sourcegraph.com/sqs/pbtypes: d3ebe8f - -#### Changed -- github.com/Azure/azure-sdk-for-go: v32.5.0+incompatible → v35.0.0+incompatible -- github.com/Microsoft/go-winio: v0.4.11 → v0.4.14 -- github.com/bazelbuild/bazel-gazelle: c728ce9 → 70208cb -- github.com/bazelbuild/buildtools: 80c7f0d → 69366ca -- github.com/beorn7/perks: 3a771d9 → v1.0.0 -- github.com/container-storage-interface/spec: v1.1.0 → v1.2.0 -- github.com/coredns/corefile-migration: v1.0.2 → v1.0.4 -- github.com/coreos/etcd: v3.3.17+incompatible → v3.3.10+incompatible -- github.com/coreos/go-systemd: 39ca1b0 → 95778df -- github.com/docker/go-units: v0.3.3 → v0.4.0 -- github.com/docker/libnetwork: a9cd636 → f0e46a7 -- github.com/fatih/color: v1.6.0 → v1.7.0 -- github.com/ghodss/yaml: c7ce166 → v1.0.0 -- github.com/go-openapi/analysis: v0.19.2 → v0.19.5 -- github.com/go-openapi/jsonpointer: v0.19.2 → v0.19.3 -- github.com/go-openapi/jsonreference: v0.19.2 → v0.19.3 -- github.com/go-openapi/loads: v0.19.2 → v0.19.4 -- github.com/go-openapi/runtime: v0.19.0 → v0.19.4 -- github.com/go-openapi/spec: v0.19.2 → v0.19.3 -- github.com/go-openapi/strfmt: v0.19.0 → v0.19.3 -- github.com/go-openapi/swag: v0.19.2 → v0.19.5 -- github.com/go-openapi/validate: v0.19.2 → v0.19.5 -- github.com/godbus/dbus: v4.1.0+incompatible → 2ff6f7f -- github.com/golang/protobuf: v1.3.1 → v1.3.2 -- github.com/google/btree: 4030bb1 → v1.0.0 -- github.com/google/cadvisor: v0.34.0 → v0.35.0 -- github.com/gregjones/httpcache: 787624d → 9cad4c3 -- github.com/grpc-ecosystem/go-grpc-middleware: cfaf568 → f849b54 -- github.com/grpc-ecosystem/grpc-gateway: v1.3.0 → v1.9.5 -- github.com/heketi/heketi: v9.0.0+incompatible → c2e2a4a -- github.com/json-iterator/go: v1.1.7 → v1.1.8 -- github.com/mailru/easyjson: 94de47d → v0.7.0 -- github.com/mattn/go-isatty: v0.0.3 → v0.0.9 -- github.com/mindprince/gonvml: fee913c → 9ebdce4 -- github.com/mrunalp/fileutils: 4ee1cc9 → 7d4729f -- github.com/munnerz/goautoneg: a547fc6 → a7dc8b6 -- github.com/onsi/ginkgo: v1.8.0 → v1.10.1 -- github.com/onsi/gomega: v1.5.0 → v1.7.0 -- github.com/opencontainers/runc: 6cc5158 → v1.0.0-rc9 -- github.com/opencontainers/selinux: v1.2.2 → 5215b18 -- github.com/pkg/errors: v0.8.0 → v0.8.1 -- github.com/prometheus/client_golang: v0.9.2 → v1.0.0 -- github.com/prometheus/client_model: 5c3871d → fd36f42 -- github.com/prometheus/common: 4724e92 → v0.4.1 -- github.com/prometheus/procfs: 1dc9a6c → v0.0.2 -- github.com/soheilhy/cmux: v0.1.3 → v0.1.4 -- github.com/spf13/pflag: v1.0.3 → v1.0.5 -- github.com/stretchr/testify: v1.3.0 → v1.4.0 -- github.com/syndtr/gocapability: e7cb7fa → d983527 -- github.com/vishvananda/netlink: b2de5d1 → v1.0.0 -- github.com/vmware/govmomi: v0.20.1 → v0.20.3 -- github.com/xiang90/probing: 07dd2e8 → 43a291a -- go.uber.org/atomic: 8dc6146 → v1.3.2 -- go.uber.org/multierr: ddea229 → v1.1.0 -- go.uber.org/zap: 67bc79d → v1.10.0 -- golang.org/x/crypto: e84da03 → 60c769a -- golang.org/x/lint: 8f45f77 → 959b441 -- golang.org/x/net: cdfb69a → 13f9640 -- golang.org/x/oauth2: 9f33145 → 0f29369 -- golang.org/x/sync: 42b3178 → cd5d95a -- golang.org/x/sys: 3b52091 → fde4db3 -- golang.org/x/text: e6919f6 → v0.3.2 -- golang.org/x/time: f51c127 → 9d24e82 -- golang.org/x/tools: 6e04913 → 65e3620 -- google.golang.org/grpc: v1.23.0 → v1.23.1 -- gopkg.in/inf.v0: v0.9.0 → v0.9.1 -- k8s.io/klog: v0.4.0 → v1.0.0 -- k8s.io/kube-openapi: 743ec37 → 30be4d1 -- k8s.io/repo-infra: 00fe14e → v0.0.1-alpha.1 -- k8s.io/utils: 581e001 → e782cd3 -- sigs.k8s.io/structured-merge-diff: 6149e45 → b1b620d - -#### Removed -- github.com/cloudflare/cfssl: 56268a6 -- github.com/coreos/bbolt: v1.3.3 -- github.com/coreos/rkt: v1.30.0 -- github.com/globalsign/mgo: eeefdec -- github.com/google/certificate-transparency-go: v1.0.21 -- github.com/heketi/rest: aa6a652 -- github.com/heketi/utils: 435bc5b +# Kubernetes v1.17.0 Release Notes +A complete changelog for the release notes is now hosted in a customizable format at [relnotes.k8s.io](https://relnotes.k8s.io). Check it out and please give us your feedback! + +## What’s New (Major Themes) + +### Cloud Provider Labels reach General Availability + +Added as a beta feature way back in v1.2, v1.17 sees the general availability of cloud provider labels. + +### Volume Snapshot Moves to Beta + +The Kubernetes Volume Snapshot feature is now beta in Kubernetes v1.17. It was introduced as alpha in Kubernetes v1.12, with a second alpha with breaking changes in Kubernetes v1.13. + +### CSI Migration Beta + +The Kubernetes in-tree storage plugin to Container Storage Interface (CSI) migration infrastructure is now beta in Kubernetes v1.17. CSI migration was introduced as alpha in Kubernetes v1.14. + +## Known Issues +- volumeDevices mapping ignored when container is privileged +- The `Should recreate evicted statefulset` conformance [test]( https://github.com/kubernetes/kubernetes/blob/master/test/e2e/apps/statefulset.go) fails because `Pod ss-0 expected to be re-created at least once`. This was caused by the `Predicate PodFitsHostPorts failed` scheduling error. The root cause was a host port conflict for port `21017`. This port was in-use as an ephemeral port by another application running on the node. This will be looked at for the 1.18 release. + +## Urgent Upgrade Notes +### (No, really, you MUST read this before you upgrade) +#### Cluster Lifecycle +- Kubeadm: add a new `kubelet-finalize` phase as part of the `init` workflow and an experimental sub-phase to enable automatic kubelet client certificate rotation on primary control-plane nodes. +Prior to 1.17 and for existing nodes created by `kubeadm init` where kubelet client certificate rotation is desired, you must modify `/etc/kubernetes/kubelet.conf` to point to the PEM symlink for rotation: +`client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem` and `client-key: /var/lib/kubelet/pki/kubelet-client-current.pem`, replacing the embedded client certificate and key. ([#84118](https://github.com/kubernetes/kubernetes/pull/84118), [@neolit123](https://github.com/neolit123)) +#### Network +- EndpointSlices: If upgrading a cluster with EndpointSlices already enabled, any EndpointSlices that should be managed by the EndpointSlice controller should have a `http://endpointslice.kubernetes.io/managed-by` label set to `endpointslice-controller.k8s.io`. + +#### Scheduling + +- Kubeadm: when adding extra apiserver authorization-modes, the defaults `Node,RBAC` are no longer prepended in the resulting static Pod manifests and a full override is allowed. ([#82616](https://github.com/kubernetes/kubernetes/pull/82616), [@ghouscht](https://github.com/ghouscht)) + +#### Storage +- All nodes need to be drained before upgrading Kubernetes cluster, because paths used for block volumes are changed in this release, so on-line upgrade of nodes aren't allowed. ([#74026](https://github.com/kubernetes/kubernetes/pull/74026), [@mkimuram](https://github.com/mkimuram)) + +#### Windows +- The Windows containers RunAsUsername feature is now beta. +- Windows worker nodes in a Kubernetes cluster now support Windows Server version 1903 in addition to the existing support for Windows Server 2019 +- The RuntimeClass scheduler can now simplify steering Linux or Windows pods to appropriate nodes +- All Windows nodes now get the new label `node.kubernetes.io/windows-build` that reflects the Windows major, minor, and build number that are needed to match compatibility between Windows containers and Windows worker nodes. + + +## Deprecations and Removals +- `kubeadm.k8s.io/v1beta1` has been deprecated, you should update your config to use newer non-deprecated API versions. ([#83276](https://github.com/kubernetes/kubernetes/pull/83276), [@Klaven](https://github.com/Klaven)) +- The deprecated feature gates GCERegionalPersistentDisk, EnableAggregatedDiscoveryTimeout and PersistentLocalVolumes are now unconditionally enabled and can no longer be specified in component invocations. ([#82472](https://github.com/kubernetes/kubernetes/pull/82472), [@draveness](https://github.com/draveness)) +- Deprecate the default service IP CIDR. The previous default was `10.0.0.0/24` which will be removed in 6 months/2 releases. Cluster admins must specify their own desired value, by using `--service-cluster-ip-range` on kube-apiserver. ([#81668](https://github.com/kubernetes/kubernetes/pull/81668), [@darshanime](https://github.com/darshanime)) +- Remove deprecated "include-uninitialized" flag. ([#80337](https://github.com/kubernetes/kubernetes/pull/80337), [@draveness](https://github.com/draveness)) +- All resources within the `rbac.authorization.k8s.io/v1alpha1` and `rbac.authorization.k8s.io/v1beta1` API groups are deprecated in favor of `rbac.authorization.k8s.io/v1`, and will no longer be served in v1.20. ([#84758](https://github.com/kubernetes/kubernetes/pull/84758), [@liggitt](https://github.com/liggitt)) +- The certificate signer no longer accepts ca.key passwords via the `CFSSL_CA_PK_PASSWORD` environment variable. This capability was not prompted by user request, never advertised, and recommended against in the security audit. ([#84677](https://github.com/kubernetes/kubernetes/pull/84677), [@mikedanese](https://github.com/mikedanese)) +- Deprecate the instance type beta label (`beta.kubernetes.io/instance-type`) in favor of its GA equivalent: `node.kubernetes.io/instance-type` ([#82049](https://github.com/kubernetes/kubernetes/pull/82049), [@andrewsykim](https://github.com/andrewsykim)) +- The built-in system:csi-external-provisioner and system:csi-external-attacher cluster roles are removed as of 1.17 release ([#84282](https://github.com/kubernetes/kubernetes/pull/84282), [@tedyu](https://github.com/tedyu)) +- The in-tree GCE PD plugin `kubernetes.io/gce-pd` is now deprecated and will be removed in 1.21. Users that self-deploy Kubernetes on GCP should enable CSIMigration + CSIMigrationGCE features and install the GCE PD CSI Driver (https://github.com/kubernetes-sigs/gcp-compute-persistent-disk-csi-driver) to avoid disruption to existing Pod and PVC objects at that time. Users should start using the GCE PD CSI CSI Driver directly for any new volumes. ([#85231](https://github.com/kubernetes/kubernetes/pull/85231), [@davidz627](https://github.com/davidz627)) +- The in-tree AWS EBS plugin `kubernetes.io/aws-ebs` is now deprecated and will be removed in 1.21. Users that self-deploy Kubernetes on AWS should enable CSIMigration + CSIMigrationAWS features and install the AWS EBS CSI Driver (https://github.com/kubernetes-sigs/aws-ebs-csi-driver) to avoid disruption to existing Pod and PVC objects at that time. Users should start using the AWS EBS CSI CSI Driver directly for any new volumes. ([#85237](https://github.com/kubernetes/kubernetes/pull/85237), [@leakingtapan](https://github.com/leakingtapan)) +- The CSINodeInfo feature gate is deprecated and will be removed in a future release. The storage.k8s.io/v1beta1 CSINode object is deprecated and will be removed in a future release. ([#83474](https://github.com/kubernetes/kubernetes/pull/83474), [@msau42](https://github.com/msau42)) +- Removed Alpha feature `MountContainers` ([#84365](https://github.com/kubernetes/kubernetes/pull/84365), [@codenrhoden](https://github.com/codenrhoden)) +- Removed plugin watching of the deprecated directory `{kubelet_root_dir}/plugins` and CSI V0 support in accordance with deprecation announcement in https://v1-13.docs.kubernetes.io/docs/setup/release/notes ([#84533](https://github.com/kubernetes/kubernetes/pull/84533), [@davidz627](https://github.com/davidz627)) +- kubeadm deprecates the use of the hyperkube image ([#85094](https://github.com/kubernetes/kubernetes/pull/85094), [@rosti](https://github.com/rosti)) +## Metrics Changes +### Added metrics +- Add `scheduler_goroutines` metric to track number of kube-scheduler binding and prioritizing goroutines ([#83535](https://github.com/kubernetes/kubernetes/pull/83535), [@wgliang](https://github.com/wgliang)) +- Adding initial EndpointSlice metrics. ([#83257](https://github.com/kubernetes/kubernetes/pull/83257), [@robscott](https://github.com/robscott)) +- Adds a metric `apiserver_request_error_total` to kube-apiserver. This metric tallies the number of `request_errors` encountered by verb, group, version, resource, subresource, scope, component, and code. ([#83427](https://github.com/kubernetes/kubernetes/pull/83427), [@logicalhan](https://github.com/logicalhan)) +- A new `kubelet_preemptions` metric is reported from Kubelets to track the number of preemptions occuring over time, and which resource is triggering those preemptions. ([#84120](https://github.com/kubernetes/kubernetes/pull/84120), [@smarterclayton](https://github.com/smarterclayton)) +- Kube-apiserver: Added metrics `authentication_latency_seconds` that can be used to understand the latency of authentication. ([#82409](https://github.com/kubernetes/kubernetes/pull/82409), [@RainbowMango](https://github.com/RainbowMango)) +- Add `plugin_execution_duration_seconds` metric for scheduler framework plugins. ([#84522](https://github.com/kubernetes/kubernetes/pull/84522), [@liu-cong](https://github.com/liu-cong)) +- Add `permit_wait_duration_seconds` metric to the scheduler. ([#84011](https://github.com/kubernetes/kubernetes/pull/84011), [@liu-cong](https://github.com/liu-cong)) + +### Deprecated/changed metrics +- etcd version monitor metrics are now marked as with the ALPHA stability level. ([#83283](https://github.com/kubernetes/kubernetes/pull/83283), [@RainbowMango](https://github.com/RainbowMango)) +- Change `pod_preemption_victims` metric from Gauge to Histogram. ([#83603](https://github.com/kubernetes/kubernetes/pull/83603), [@Tabrizian](https://github.com/Tabrizian)) +- Following metrics from kubelet are now marked as with the ALPHA stability level: + `kubelet_container_log_filesystem_used_bytes` + `kubelet_volume_stats_capacity_bytes` + `kubelet_volume_stats_available_bytes` + `kubelet_volume_stats_used_bytes` + `kubelet_volume_stats_inodes` + `kubelet_volume_stats_inodes_free` + `kubelet_volume_stats_inodes_used` + `plugin_manager_total_plugins` + `volume_manager_total_volumes` + ([#84907](https://github.com/kubernetes/kubernetes/pull/84907), [@RainbowMango](https://github.com/RainbowMango)) +- Deprecated metric `rest_client_request_latency_seconds` has been turned off. ([#83836](https://github.com/kubernetes/kubernetes/pull/83836), [@RainbowMango](https://github.com/RainbowMango)) +- Following metrics from kubelet are now marked as with the ALPHA stability level: + `node_cpu_usage_seconds_total` + `node_memory_working_set_bytes` + `container_cpu_usage_seconds_total` + `container_memory_working_set_bytes` + `scrape_error` + ([#84987](https://github.com/kubernetes/kubernetes/pull/84987), [@RainbowMango](https://github.com/RainbowMango)) +- Deprecated prometheus request meta-metrics have been removed + `http_request_duration_microseconds` `http_request_duration_microseconds_sum` `http_request_duration_microseconds_count` + `http_request_size_bytes` + `http_request_size_bytes_sum` + `http_request_size_bytes_count` + `http_requests_total, http_response_size_bytes` + `http_response_size_bytes_sum` + `http_response_size_bytes_count` + due to removal from the prometheus client library. Prometheus http request meta-metrics are now generated from [`promhttp.InstrumentMetricHandler`](https://godoc.org/github.com/prometheus/client_golang/prometheus/promhttp#InstrumentMetricHandler) instead. +- Following metrics from kube-controller-manager are now marked as with the ALPHA stability level: + `storage_count_attachable_volumes_in_use` + `attachdetach_controller_total_volumes` + `pv_collector_bound_pv_count` + `pv_collector_unbound_pv_count` + `pv_collector_bound_pvc_count` + `pv_collector_unbound_pvc_count` + ([#84896](https://github.com/kubernetes/kubernetes/pull/84896), [@RainbowMango](https://github.com/RainbowMango)) +- Following metrics have been turned off: + `apiserver_request_count` + `apiserver_request_latencies` + `apiserver_request_latencies_summary` + `apiserver_dropped_requests` + `etcd_request_latencies_summary` + `apiserver_storage_transformation_latencies_microseconds` + `apiserver_storage_data_key_generation_latencies_microseconds` + `apiserver_storage_transformation_failures_total` + ([#83837](https://github.com/kubernetes/kubernetes/pull/83837), [@RainbowMango](https://github.com/RainbowMango)) +- Following metrics have been turned off: + `scheduler_scheduling_latency_seconds` + `scheduler_e2e_scheduling_latency_microseconds` + `scheduler_scheduling_algorithm_latency_microseconds` + `scheduler_scheduling_algorithm_predicate_evaluation` + `scheduler_scheduling_algorithm_priority_evaluation` + `scheduler_scheduling_algorithm_preemption_evaluation` + `scheduler_scheduling_binding_latency_microseconds ([#83838](https://github.com/kubernetes/kubernetes/pull/83838`), [@RainbowMango](https://github.com/RainbowMango)) +- Deprecated metric `kubeproxy_sync_proxy_rules_latency_microseconds` has been turned off. ([#83839](https://github.com/kubernetes/kubernetes/pull/83839), [@RainbowMango](https://github.com/RainbowMango)) + +## Notable Features +### Stable +- Graduate ScheduleDaemonSetPods to GA. (feature gate will be removed in 1.18) ([#82795](https://github.com/kubernetes/kubernetes/pull/82795), [@draveness](https://github.com/draveness)) +- Graduate TaintNodesByCondition to GA in 1.17. (feature gate will be removed in 1.18) ([#82703](https://github.com/kubernetes/kubernetes/pull/82703), [@draveness](https://github.com/draveness)) +- The WatchBookmark feature is promoted to GA. With WatchBookmark feature, clients are able to request watch events with BOOKMARK type. See https://kubernetes.io/docs/reference/using-api/api-concepts/#watch-bookmarks for more details. ([#83195](https://github.com/kubernetes/kubernetes/pull/83195), [@wojtek-t](https://github.com/wojtek-t)) +- Promote NodeLease feature to GA. +The feature make Lease object changes an additional healthiness signal from Node. Together with that, we reduce frequency of NodeStatus updates to 5m by default in case of no changes to status itself ([#84351](https://github.com/kubernetes/kubernetes/pull/84351), [@wojtek-t](https://github.com/wojtek-t)) +- CSI Topology feature is GA. ([#83474](https://github.com/kubernetes/kubernetes/pull/83474), [@msau42](https://github.com/msau42)) +- The VolumeSubpathEnvExpansion feature is graduating to GA. The `VolumeSubpathEnvExpansion` feature gate is unconditionally enabled, and will be removed in v1.19. ([#82578](https://github.com/kubernetes/kubernetes/pull/82578), [@kevtaylor](https://github.com/kevtaylor)) +- Node-specific volume limits has graduated to GA. ([#83568](https://github.com/kubernetes/kubernetes/pull/83568), [@bertinatto](https://github.com/bertinatto)) +- The ResourceQuotaScopeSelectors feature has graduated to GA. The `ResourceQuotaScopeSelectors` feature gate is now unconditionally enabled and will be removed in 1.18. ([#82690](https://github.com/kubernetes/kubernetes/pull/82690), [@draveness](https://github.com/draveness)) + +### Beta +- The Kubernetes Volume Snapshot feature has been moved to beta. The VolumeSnapshotDataSource feature gate is on by default in this release. This feature enables you to take a snapshot of a volume (if supported by the CSI driver), and use the snapshot to provision a new volume, pre-populated with data from the snapshot. +- Feature gates CSIMigration to Beta (on by default) and CSIMigrationGCE to Beta (off by default since it requires installation of the GCE PD CSI Driver) ([#85231](https://github.com/kubernetes/kubernetes/pull/85231), [@davidz627](https://github.com/davidz627)) +- EndpointSlices are now beta but not yet enabled by default. Use the EndpointSlice feature gate to enable this feature. ([#85365](https://github.com/kubernetes/kubernetes/pull/85365), [@robscott](https://github.com/robscott)) +- Promote CSIMigrationAWS to Beta (off by default since it requires installation of the AWS EBS CSI Driver) ([#85237](https://github.com/kubernetes/kubernetes/pull/85237), [@leakingtapan](https://github.com/leakingtapan)) +- Moving Windows RunAsUserName feature to beta ([#84882](https://github.com/kubernetes/kubernetes/pull/84882), [@marosset](https://github.com/marosset)) + +### CLI Improvements +- The kubectl's api-resource command now has a `--sort-by` flag to sort resources by name or kind. ([#81971](https://github.com/kubernetes/kubernetes/pull/81971), [@laddng](https://github.com/laddng)) +- A new `--prefix` flag added into kubectl logs which prepends each log line with information about it's source (pod name and container name) ([#76471](https://github.com/kubernetes/kubernetes/pull/76471), [@m1kola](https://github.com/m1kola)) + +## API Changes +- CustomResourceDefinitions now validate documented API semantics of `x-kubernetes-list-type` and `x-kubernetes-map-type` atomic to reject non-atomic sub-types. ([#84722](https://github.com/kubernetes/kubernetes/pull/84722), [@sttts](https://github.com/sttts)) +- Kube-apiserver: The `AdmissionConfiguration` type accepted by `--admission-control-config-file` has been promoted to `apiserver.config.k8s.io/v1` with no schema changes. ([#85098](https://github.com/kubernetes/kubernetes/pull/85098), [@liggitt](https://github.com/liggitt)) +- Fixed EndpointSlice port name validation to match Endpoint port name validation (allowing port names longer than 15 characters) ([#84481](https://github.com/kubernetes/kubernetes/pull/84481), [@robscott](https://github.com/robscott)) +- CustomResourceDefinitions introduce `x-kubernetes-map-type` annotation as a CRD API extension. Enables this particular validation for server-side apply. ([#84113](https://github.com/kubernetes/kubernetes/pull/84113), [@enxebre](https://github.com/enxebre)) + +## Other notable changes +### API Machinery + +- kube-apiserver: the `--runtime-config` flag now supports an `api/beta=false` value which disables all built-in REST API versions matching `v[0-9]+beta[0-9]+`. ([#84304](https://github.com/kubernetes/kubernetes/pull/84304), [@liggitt](https://github.com/liggitt)) +The `--feature-gates` flag now supports an `AllBeta=false` value which disables all beta feature gates. ([#84304](https://github.com/kubernetes/kubernetes/pull/84304), [@liggitt](https://github.com/liggitt)) +- New flag `--show-hidden-metrics-for-version` in kube-apiserver can be used to show all hidden metrics that deprecated in the previous minor release. ([#84292](https://github.com/kubernetes/kubernetes/pull/84292), [@RainbowMango](https://github.com/RainbowMango)) +- kube-apiserver: Authentication configuration for mutating and validating admission webhooks referenced from an `--admission-control-config-file` can now be specified with `apiVersion: apiserver.config.k8s.io/v1, kind: WebhookAdmissionConfiguration`. ([#85138](https://github.com/kubernetes/kubernetes/pull/85138), [@liggitt](https://github.com/liggitt)) +- kube-apiserver: The `ResourceQuota` admission plugin configuration referenced from `--admission-control-config-file` admission config has been promoted to `apiVersion: apiserver.config.k8s.io/v1`, `kind: ResourceQuotaConfiguration` with no schema changes. ([#85099](https://github.com/kubernetes/kubernetes/pull/85099), [@liggitt](https://github.com/liggitt)) +- kube-apiserver: fixed a bug that could cause a goroutine leak if the apiserver encountered an encoding error serving a watch to a websocket watcher ([#84693](https://github.com/kubernetes/kubernetes/pull/84693), [@tedyu](https://github.com/tedyu)) +- Fix the bug that EndpointSlice for masters wasn't created after enabling EndpointSlice feature on a pre-existing cluster. ([#84421](https://github.com/kubernetes/kubernetes/pull/84421), [@tnqn](https://github.com/tnqn)) +- Switched intstr.Type to sized integer to follow API guidelines and improve compatibility with proto libraries ([#83956](https://github.com/kubernetes/kubernetes/pull/83956), [@liggitt](https://github.com/liggitt)) +- Client-go: improved allocation behavior of the delaying workqueue when handling objects with far-future ready times. ([#83945](https://github.com/kubernetes/kubernetes/pull/83945), [@barkbay](https://github.com/barkbay)) +- Fixed an issue with informers missing an `Added` event if a recently deleted object was immediately recreated at the same time the informer dropped a watch and relisted. ([#83911](https://github.com/kubernetes/kubernetes/pull/83911), [@matte21](https://github.com/matte21)) +- Fixed panic when accessing CustomResources of a CRD with `x-kubernetes-int-or-string`. ([#83787](https://github.com/kubernetes/kubernetes/pull/83787), [@sttts](https://github.com/sttts)) +- The resource version option, when passed to a list call, is now consistently interpreted as the minimum allowed resource version. Previously when listing resources that had the watch cache disabled clients could retrieve a snapshot at that exact resource version. If the client requests a resource version newer than the current state, a TimeoutError is returned suggesting the client retry in a few seconds. This behavior is now consistent for both single item retrieval and list calls, and for when the watch cache is enabled or disabled. ([#72170](https://github.com/kubernetes/kubernetes/pull/72170), [@jpbetz](https://github.com/jpbetz)) +- Fixes a goroutine leak in kube-apiserver when a request times out. ([#83333](https://github.com/kubernetes/kubernetes/pull/83333), [@lavalamp](https://github.com/lavalamp)) +- Fixes the bug in informer-gen that it produces incorrect code if a type has nonNamespaced tag set. ([#80458](https://github.com/kubernetes/kubernetes/pull/80458), [@tatsuhiro-t](https://github.com/tatsuhiro-t)) +- Resolves bottleneck in internal API server communication that can cause increased goroutines and degrade API Server performance ([#80465](https://github.com/kubernetes/kubernetes/pull/80465), [@answer1991](https://github.com/answer1991)) +- Resolves regression generating informers for packages whose names contain `.` characters ([#82410](https://github.com/kubernetes/kubernetes/pull/82410), [@nikhita](https://github.com/nikhita)) +- Resolves issue with `/readyz` and `/livez` not including etcd and kms health checks ([#82713](https://github.com/kubernetes/kubernetes/pull/82713), [@logicalhan](https://github.com/logicalhan)) +- Fixes regression in logging spurious stack traces when proxied connections are closed by the backend ([#82588](https://github.com/kubernetes/kubernetes/pull/82588), [@liggitt](https://github.com/liggitt)) +- Kube-apiserver now reloads serving certificates from disk every minute to allow rotation without restarting the server process ([#84200](https://github.com/kubernetes/kubernetes/pull/84200), [@jackkleeman](https://github.com/jackkleeman)) +- Client-ca bundles for the all generic-apiserver based servers will dynamically reload from disk on content changes ([#83579](https://github.com/kubernetes/kubernetes/pull/83579), [@deads2k](https://github.com/deads2k)) +- Client-go: Clients can request protobuf and json and correctly negotiate with the server for JSON for CRD objects, allowing all client libraries to request protobuf if it is available. If an error occurs negotiating a watch with the server, the error is immediately return by the client `Watch()` method instead of being sent as an `Error` event on the watch stream. ([#84692](https://github.com/kubernetes/kubernetes/pull/84692), [@smarterclayton](https://github.com/smarterclayton)) +Renamed FeatureGate RequestManagement to APIPriorityAndFairness. This feature gate is an alpha and has not yet been associated with any actual functionality. ([#85260](https://github.com/kubernetes/kubernetes/pull/85260), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) +- Filter published OpenAPI schema by making nullable, required fields non-required in order to avoid kubectl to wrongly reject null values. ([#85722](https://github.com/kubernetes/kubernetes/pull/85722), [@sttts](https://github.com/sttts)) +- kube-apiserver: fixed a conflict error encountered attempting to delete a pod with `gracePeriodSeconds=0` and a resourceVersion precondition ([#85516](https://github.com/kubernetes/kubernetes/pull/85516), [@michaelgugino](https://github.com/michaelgugino)) +- Use context to check client closed instead of http.CloseNotifier in processing watch request which will reduce 1 goroutine for each request if proto is HTTP/2.x . ([#85408](https://github.com/kubernetes/kubernetes/pull/85408), [@answer1991](https://github.com/answer1991)) +- Reload apiserver SNI certificates from disk every minute ([#84303](https://github.com/kubernetes/kubernetes/pull/84303), [@jackkleeman](https://github.com/jackkleeman)) +- The mutating and validating admission webhook plugins now read configuration from the admissionregistration.k8s.io/v1 API. ([#80883](https://github.com/kubernetes/kubernetes/pull/80883), [@liggitt](https://github.com/liggitt)) +- kube-proxy: a configuration file specified via `--config` is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with config files that are malformed, mis-indented, or have typos in field names, and getting unexpected behavior. ([#82927](https://github.com/kubernetes/kubernetes/pull/82927), [@obitech](https://github.com/obitech)) +- When registering with a 1.17+ API server, MutatingWebhookConfiguration and ValidatingWebhookConfiguration objects can now request that only `v1` AdmissionReview requests be sent to them. Previously, webhooks were required to support receiving `v1beta1` AdmissionReview requests as well for compatibility with API servers <= 1.15. + - When registering with a 1.17+ API server, a CustomResourceDefinition conversion webhook can now request that only `v1` ConversionReview requests be sent to them. Previously, conversion webhooks were required to support receiving `v1beta1` ConversionReview requests as well for compatibility with API servers <= 1.15. ([#82707](https://github.com/kubernetes/kubernetes/pull/82707), [@liggitt](https://github.com/liggitt)) +- OpenAPI v3 format in CustomResourceDefinition schemas are now documented. ([#85381](https://github.com/kubernetes/kubernetes/pull/85381), [@sttts](https://github.com/sttts)) +- kube-apiserver: Fixed a regression accepting patch requests > 1MB ([#84963](https://github.com/kubernetes/kubernetes/pull/84963), [@liggitt](https://github.com/liggitt)) +- The example API server has renamed its `wardle.k8s.io` API group to `wardle.example.com` ([#81670](https://github.com/kubernetes/kubernetes/pull/81670), [@liggitt](https://github.com/liggitt)) +- CRDs defaulting is promoted to GA. Note: the feature gate CustomResourceDefaulting will be removed in 1.18. ([#84713](https://github.com/kubernetes/kubernetes/pull/84713), [@sttts](https://github.com/sttts)) +- Restores compatibility with <=1.15.x custom resources by not publishing OpenAPI for non-structural custom resource definitions ([#82653](https://github.com/kubernetes/kubernetes/pull/82653), [@liggitt](https://github.com/liggitt)) +- If given an IPv6 bind-address, kube-apiserver will now advertise an IPv6 endpoint for the kubernetes.default service. ([#84727](https://github.com/kubernetes/kubernetes/pull/84727), [@danwinship](https://github.com/danwinship)) +- Add table convertor to component status. ([#85174](https://github.com/kubernetes/kubernetes/pull/85174), [@zhouya0](https://github.com/zhouya0)) +- Scale custom resource unconditionally if resourceVersion is not provided ([#80572](https://github.com/kubernetes/kubernetes/pull/80572), [@knight42](https://github.com/knight42)) +- When the go-client reflector relists, the ResourceVersion list option is set to the reflector's latest synced resource version to ensure the reflector does not "go back in time" and reprocess events older than it has already processed. If the server responds with an HTTP 410 (Gone) status code response, the relist falls back to using `resourceVersion=""`. ([#83520](https://github.com/kubernetes/kubernetes/pull/83520), [@jpbetz](https://github.com/jpbetz)) +- Fix unsafe JSON construction in a number of locations in the codebase ([#81158](https://github.com/kubernetes/kubernetes/pull/81158), [@zouyee](https://github.com/zouyee)) +- Fixes a flaw (CVE-2019-11253) in json/yaml decoding where large or malformed documents could consume excessive server resources. Request bodies for normal API requests (create/delete/update/patch operations of regular resources) are now limited to 3MB. ([#83261](https://github.com/kubernetes/kubernetes/pull/83261), [@liggitt](https://github.com/liggitt)) +- CRDs can have fields named `type` with value `array` and nested array with `items` fields without validation to fall over this. ([#85223](https://github.com/kubernetes/kubernetes/pull/85223), [@sttts](https://github.com/sttts)) + +### Apps + +- Support Service Topology ([#72046](https://github.com/kubernetes/kubernetes/pull/72046), [@m1093782566](https://github.com/m1093782566)) +- Finalizer Protection for Service LoadBalancers is now in GA (enabled by default). This feature ensures the Service resource is not fully deleted until the correlating load balancer resources are deleted. ([#85023](https://github.com/kubernetes/kubernetes/pull/85023), [@MrHohn](https://github.com/MrHohn)) +- Pod process namespace sharing is now Generally Available. The `PodShareProcessNamespace` feature gate is now deprecated and will be removed in Kubernetes 1.19. ([#84356](https://github.com/kubernetes/kubernetes/pull/84356), [@verb](https://github.com/verb)) +- Fix handling tombstones in pod-disruption-budged controller. ([#83951](https://github.com/kubernetes/kubernetes/pull/83951), [@zouyee](https://github.com/zouyee)) +- Fixed the bug that deleted services were processed by EndpointSliceController repeatedly even their cleanup were successful. ([#82996](https://github.com/kubernetes/kubernetes/pull/82996), [@tnqn](https://github.com/tnqn)) +- Add `RequiresExactMatch` for `label.Selector` ([#85048](https://github.com/kubernetes/kubernetes/pull/85048), [@shaloulcy](https://github.com/shaloulcy)) +- Adds a new label to indicate what is managing an EndpointSlice. ([#83965](https://github.com/kubernetes/kubernetes/pull/83965), [@robscott](https://github.com/robscott)) +- Fix handling tombstones in pod-disruption-budged controller. ([#83951](https://github.com/kubernetes/kubernetes/pull/83951), [@zouyee](https://github.com/zouyee)) +- Fixed the bug that deleted services were processed by EndpointSliceController repeatedly even their cleanup were successful. ([#82996](https://github.com/kubernetes/kubernetes/pull/82996), [@tnqn](https://github.com/tnqn)) +- An end-user may choose to request logs without confirming the identity of the backing kubelet. This feature can be disabled by setting the `AllowInsecureBackendProxy` feature-gate to false. ([#83419](https://github.com/kubernetes/kubernetes/pull/83419), [@deads2k](https://github.com/deads2k)) +- When scaling down a ReplicaSet, delete doubled up replicas first, where a "doubled up replica" is defined as one that is on the same node as an active replica belonging to a related ReplicaSet. ReplicaSets are considered "related" if they have a common controller (typically a Deployment). ([#80004](https://github.com/kubernetes/kubernetes/pull/80004), [@Miciah](https://github.com/Miciah)) +- Kube-controller-manager: Fixes bug setting headless service labels on endpoints ([#85361](https://github.com/kubernetes/kubernetes/pull/85361), [@liggitt](https://github.com/liggitt)) +- People can see the right log and note. ([#84637](https://github.com/kubernetes/kubernetes/pull/84637), [@zhipengzuo](https://github.com/zhipengzuo)) +- Clean duplicate GetPodServiceMemberships function ([#83902](https://github.com/kubernetes/kubernetes/pull/83902), [@gongguan](https://github.com/gongguan)) + +### Auth + +- K8s docker config json secrets are now compatible with docker config desktop authentication credentials files ([#82148](https://github.com/kubernetes/kubernetes/pull/82148), [@bbourbie](https://github.com/bbourbie)) +- Kubelet and aggregated API servers now use v1 TokenReview and SubjectAccessReview endpoints to check authentication/authorization. ([#84768](https://github.com/kubernetes/kubernetes/pull/84768), [@liggitt](https://github.com/liggitt)) +- Kube-apiserver can now specify `--authentication-token-webhook-version=v1` or `--authorization-webhook-version=v1` to use `v1` TokenReview and SubjectAccessReview API objects when communicating with authentication and authorization webhooks. ([#84768](https://github.com/kubernetes/kubernetes/pull/84768), [@liggitt](https://github.com/liggitt)) +- Authentication token cache size is increased (from 4k to 32k) to support clusters with many nodes or many namespaces with active service accounts. ([#83643](https://github.com/kubernetes/kubernetes/pull/83643), [@lavalamp](https://github.com/lavalamp)) +- Apiservers based on k8s.io/apiserver with delegated authn based on cluster authentication will automatically update to new authentication information when the authoritative configmap is updated. ([#85004](https://github.com/kubernetes/kubernetes/pull/85004), [@deads2k](https://github.com/deads2k)) +- Configmaps/extension-apiserver-authentication in kube-system is continuously updated by kube-apiservers, instead of just at apiserver start ([#82705](https://github.com/kubernetes/kubernetes/pull/82705), [@deads2k](https://github.com/deads2k)) + +### CLI +- Fixed kubectl endpointslice output for get requests ([#82603](https://github.com/kubernetes/kubernetes/pull/82603), [@robscott](https://github.com/robscott)) +- Gives the right error message when using `kubectl delete` a wrong resource. ([#83825](https://github.com/kubernetes/kubernetes/pull/83825), [@zhouya0](https://github.com/zhouya0)) +- If a bad flag is supplied to a kubectl command, only a tip to run `--help` is printed, instead of the usage menu. Usage menu is printed upon running `kubectl command --help`. ([#82423](https://github.com/kubernetes/kubernetes/pull/82423), [@sallyom](https://github.com/sallyom)) +- Commands like `kubectl apply` now return errors if schema-invalid annotations are specified, rather than silently dropping the entire annotations section. ([#83552](https://github.com/kubernetes/kubernetes/pull/83552), [@liggitt](https://github.com/liggitt)) +- Fixes spurious 0 revisions listed when running `kubectl rollout history` for a StatefulSet ([#82643](https://github.com/kubernetes/kubernetes/pull/82643), [@ZP-AlwaysWin](https://github.com/ZP-AlwaysWin)) +- Correct a reference to a not/no longer used kustomize subcommand in the documentation ([#82535](https://github.com/kubernetes/kubernetes/pull/82535), [@demobox](https://github.com/demobox)) +- Kubectl set resources will no longer return an error if passed an empty change for a resource. kubectl set subject will no longer return an error if passed an empty change for a resource. ([#85490](https://github.com/kubernetes/kubernetes/pull/85490), [@sallyom](https://github.com/sallyom)) +- Kubectl: --resource-version now works properly in label/annotate/set selector commands when racing with other clients to update the target object ([#85285](https://github.com/kubernetes/kubernetes/pull/85285), [@liggitt](https://github.com/liggitt)) +- The `--certificate-authority` flag now correctly overrides existing skip-TLS or CA data settings in the kubeconfig file ([#83547](https://github.com/kubernetes/kubernetes/pull/83547), [@liggitt](https://github.com/liggitt)) +### Cloud Provider +- Azure: update disk lock logic per vm during attach/detach to allow concurrent updates for different nodes. ([#85115](https://github.com/kubernetes/kubernetes/pull/85115), [@aramase](https://github.com/aramase)) +- Fix vmss dirty cache issue in disk attach/detach on vmss node ([#85158](https://github.com/kubernetes/kubernetes/pull/85158), [@andyzhangx](https://github.com/andyzhangx)) +- Fix race condition when attach/delete azure disk in same time ([#84917](https://github.com/kubernetes/kubernetes/pull/84917), [@andyzhangx](https://github.com/andyzhangx)) +- Change GCP ILB firewall names to contain the `k8s-fw-` prefix like the rest of the firewall rules. This is needed for consistency and also for other components to identify the firewall rule as k8s/service-controller managed. ([#84622](https://github.com/kubernetes/kubernetes/pull/84622), [@prameshj](https://github.com/prameshj)) +- Ensure health probes are created for local traffic policy UDP services on Azure ([#84802](https://github.com/kubernetes/kubernetes/pull/84802), [@feiskyer](https://github.com/feiskyer)) +- Openstack: Do not delete managed LB in case of security group reconciliation errors ([#82264](https://github.com/kubernetes/kubernetes/pull/82264), [@multi-io](https://github.com/multi-io)) +- Fix aggressive VM calls for Azure VMSS ([#83102](https://github.com/kubernetes/kubernetes/pull/83102), [@feiskyer](https://github.com/feiskyer)) +- Fix: azure disk detach failure if node not exists ([#82640](https://github.com/kubernetes/kubernetes/pull/82640), [@andyzhangx](https://github.com/andyzhangx)) +- Add azure disk encryption(SSE+CMK) support ([#84605](https://github.com/kubernetes/kubernetes/pull/84605), [@andyzhangx](https://github.com/andyzhangx)) +- Update Azure SDK versions to v35.0.0 ([#84543](https://github.com/kubernetes/kubernetes/pull/84543), [@andyzhangx](https://github.com/andyzhangx)) +- Azure: Add allow unsafe read from cache ([#83685](https://github.com/kubernetes/kubernetes/pull/83685), [@aramase](https://github.com/aramase)) +- Reduces the number of calls made to the Azure API when requesting the instance view of a virtual machine scale set node. ([#82496](https://github.com/kubernetes/kubernetes/pull/82496), [@hasheddan](https://github.com/hasheddan)) +- Added cloud operation count metrics to azure cloud controller manager. ([#82574](https://github.com/kubernetes/kubernetes/pull/82574), [@kkmsft](https://github.com/kkmsft)) +- On AWS nodes with multiple network interfaces, kubelet should now more reliably report the same primary node IP. ([#80747](https://github.com/kubernetes/kubernetes/pull/80747), [@danwinship](https://github.com/danwinship)) +- Update Azure load balancer to prevent orphaned public IP addresses ([#82890](https://github.com/kubernetes/kubernetes/pull/82890), [@chewong](https://github.com/chewong)) +### Cluster Lifecycle +- Kubeadm alpha certs command now skip missing files ([#85092](https://github.com/kubernetes/kubernetes/pull/85092), [@fabriziopandini](https://github.com/fabriziopandini)) +- Kubeadm: the command "kubeadm token create" now has a "--certificate-key" flag that can be used for the formation of join commands for control-planes with automatic copy of certificates ([#84591](https://github.com/kubernetes/kubernetes/pull/84591), [@TheLastProject](https://github.com/TheLastProject)) +- Kubeadm: Fix a bug where kubeadm cannot parse kubelet's version if the latter dumps logs on the standard error. ([#85351](https://github.com/kubernetes/kubernetes/pull/85351), [@rosti](https://github.com/rosti)) +- Kubeadm: added retry to all the calls to the etcd API so kubeadm will be more resilient to network glitches ([#85201](https://github.com/kubernetes/kubernetes/pull/85201), [@fabriziopandini](https://github.com/fabriziopandini)) +- Fixes a bug in kubeadm that caused init and join to hang indefinitely in specific conditions. ([#85156](https://github.com/kubernetes/kubernetes/pull/85156), [@chuckha](https://github.com/chuckha)) +- Kubeadm now includes CoreDNS version 1.6.5 + - `kubernetes` plugin adds metrics to measure kubernetes control plane latency. + - the `health` plugin now includes the `lameduck` option by default, which waits for a duration before shutting down. ([#85109](https://github.com/kubernetes/kubernetes/pull/85109), [@rajansandeep](https://github.com/rajansandeep)) +- Fixed bug when using kubeadm alpha certs commands with clusters using external etcd ([#85091](https://github.com/kubernetes/kubernetes/pull/85091), [@fabriziopandini](https://github.com/fabriziopandini)) +- Kubeadm no longer defaults or validates the component configs of the kubelet or kube-proxy ([#79223](https://github.com/kubernetes/kubernetes/pull/79223), [@rosti](https://github.com/rosti)) +- Kubeadm: remove the deprecated `--cri-socket` flag for `kubeadm upgrade apply`. The flag has been deprecated since v1.14. ([#85044](https://github.com/kubernetes/kubernetes/pull/85044), [@neolit123](https://github.com/neolit123)) +- Kubeadm: prevent potential hanging of commands such as "kubeadm reset" if the apiserver endpoint is not reachable. ([#84648](https://github.com/kubernetes/kubernetes/pull/84648), [@neolit123](https://github.com/neolit123)) +- Kubeadm: fix skipped etcd upgrade on secondary control-plane nodes when the command `kubeadm upgrade node` is used. ([#85024](https://github.com/kubernetes/kubernetes/pull/85024), [@neolit123](https://github.com/neolit123)) +- Kubeadm: fix an issue with the kube-proxy container env. variables ([#84888](https://github.com/kubernetes/kubernetes/pull/84888), [@neolit123](https://github.com/neolit123)) +- Utilize diagnostics tool to dump GKE windows test logs ([#83517](https://github.com/kubernetes/kubernetes/pull/83517), [@YangLu1031](https://github.com/YangLu1031)) +- Kubeadm: always mount the kube-controller-manager hostPath volume that is given by the `--flex-volume-plugin-dir` flag. ([#84468](https://github.com/kubernetes/kubernetes/pull/84468), [@neolit123](https://github.com/neolit123)) +- Update Cluster Autoscaler version to 1.16.2 (CA release docs: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.16.2) ([#84038](https://github.com/kubernetes/kubernetes/pull/84038), [@losipiuk](https://github.com/losipiuk)) +- Kubeadm no longer removes /etc/cni/net.d as it does not install it. Users should remove files from it manually or rely on the component that created them ([#83950](https://github.com/kubernetes/kubernetes/pull/83950), [@yastij](https://github.com/yastij)) +- Kubeadm: fix wrong default value for the `upgrade node --certificate-renewal` flag. ([#83528](https://github.com/kubernetes/kubernetes/pull/83528), [@neolit123](https://github.com/neolit123)) +- Bump metrics-server to v0.3.5 ([#83015](https://github.com/kubernetes/kubernetes/pull/83015), [@olagacek](https://github.com/olagacek)) +- Dashboard: disable the dashboard Deployment on non-Linux nodes. This step is required to support Windows worker nodes. ([#82975](https://github.com/kubernetes/kubernetes/pull/82975), [@wawa0210](https://github.com/wawa0210)) +- Fixes a panic in kube-controller-manager cleaning up bootstrap tokens ([#82887](https://github.com/kubernetes/kubernetes/pull/82887), [@tedyu](https://github.com/tedyu)) +- Kubeadm: add a new `kubelet-finalize` phase as part of the `init` workflow and an experimental sub-phase to enable automatic kubelet client certificate rotation on primary control-plane nodes. + + Prior to 1.17 and for existing nodes created by `kubeadm init` where kubelet client certificate rotation is desired, you must modify "/etc/kubernetes/kubelet.conf" to point to the PEM symlink for rotation: +`client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem` and `client-key: /var/lib/kubelet/pki/kubelet-client-current.pem`, replacing the embedded client certificate and key. ([#84118](https://github.com/kubernetes/kubernetes/pull/84118), [@neolit123](https://github.com/neolit123)) +- Kubeadm: add a upgrade health check that deploys a Job ([#81319](https://github.com/kubernetes/kubernetes/pull/81319), [@neolit123](https://github.com/neolit123)) +- Kubeadm now supports automatic calculations of dual-stack node cidr masks to kube-controller-manager. ([#85609](https://github.com/kubernetes/kubernetes/pull/85609), [@Arvinderpal](https://github.com/Arvinderpal)) +- Kubeadm: reset raises warnings if it cannot delete folders ([#85265](https://github.com/kubernetes/kubernetes/pull/85265), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: enable the usage of the secure kube-scheduler and kube-controller-manager ports for health checks. For kube-scheduler was 10251, becomes 10259. For kube-controller-manager was 10252, becomes 10257. ([#85043](https://github.com/kubernetes/kubernetes/pull/85043), [@neolit123](https://github.com/neolit123)) +- A new kubelet command line option, `--reserved-cpus`, is introduced to explicitly define the CPU list that will be reserved for system. For example, if `--reserved-cpus=0,1,2,3` is specified, then cpu 0,1,2,3 will be reserved for the system. On a system with 24 CPUs, the user may specify `isolcpus=4-23` for the kernel option and use CPU 4-23 for the user containers. ([#83592](https://github.com/kubernetes/kubernetes/pull/83592), [@jianzzha](https://github.com/jianzzha)) +- Kubelet: a configuration file specified via `--config` is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with config files that are malformed, mis-indented, or have typos in field names, and getting unexpected behavior. ([#83204](https://github.com/kubernetes/kubernetes/pull/83204), [@obitech](https://github.com/obitech)) +- Kubeadm now propagates proxy environment variables to kube-proxy ([#84559](https://github.com/kubernetes/kubernetes/pull/84559), [@yastij](https://github.com/yastij)) +- Update the latest validated version of Docker to 19.03 ([#84476](https://github.com/kubernetes/kubernetes/pull/84476), [@neolit123](https://github.com/neolit123)) +- Update to Ingress-GCE v1.6.1 ([#84018](https://github.com/kubernetes/kubernetes/pull/84018), [@rramkumar1](https://github.com/rramkumar1)) +- Kubeadm: enhance certs check-expiration to show the expiration info of related CAs ([#83932](https://github.com/kubernetes/kubernetes/pull/83932), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: implemented structured output of 'kubeadm token list' in JSON, YAML, Go template and JsonPath formats ([#78764](https://github.com/kubernetes/kubernetes/pull/78764), [@bart0sh](https://github.com/bart0sh)) +- Kubeadm: add support for `127.0.0.1` as advertise address. kubeadm will automatically replace this value with matching global unicast IP address on the loopback interface. ([#83475](https://github.com/kubernetes/kubernetes/pull/83475), [@fabriziopandini](https://github.com/fabriziopandini)) +- Kube-scheduler: a configuration file specified via `--config` is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with config files that are malformed, mis-indented, or have typos in field names, and getting unexpected behavior. ([#83030](https://github.com/kubernetes/kubernetes/pull/83030), [@obitech](https://github.com/obitech)) +- Kubeadm: use the `--service-cluster-ip-range` flag to init or use the ServiceSubnet field in the kubeadm config to pass a comma separated list of Service CIDRs. ([#82473](https://github.com/kubernetes/kubernetes/pull/82473), [@Arvinderpal](https://github.com/Arvinderpal)) +- Update crictl to v1.16.1. ([#82856](https://github.com/kubernetes/kubernetes/pull/82856), [@Random-Liu](https://github.com/Random-Liu)) +- Bump addon-resizer to 1.8.7 to fix issues with using deprecated extensions APIs ([#85864](https://github.com/kubernetes/kubernetes/pull/85864), [@liggitt](https://github.com/liggitt)) +- Simple script based hyperkube image that bundles all the necessary binaries. This is an equivalent replacement for the image based on the go based hyperkube command + image. ([#84662](https://github.com/kubernetes/kubernetes/pull/84662), [@dims](https://github.com/dims)) +- Hyperkube will now be available in a new Github repository and will not be included in the kubernetes release from 1.17 onwards ([#83454](https://github.com/kubernetes/kubernetes/pull/83454), [@dims](https://github.com/dims)) +- Remove prometheus cluster monitoring addon from kube-up ([#83442](https://github.com/kubernetes/kubernetes/pull/83442), [@serathius](https://github.com/serathius)) +- SourcesReady provides the readiness of kubelet configuration sources such as apiserver update readiness. ([#81344](https://github.com/kubernetes/kubernetes/pull/81344), [@zouyee](https://github.com/zouyee)) +- This PR sets the --cluster-dns flag value to kube-dns service IP whether or not NodeLocal DNSCache is enabled. NodeLocal DNSCache will listen on both the link-local as well as the service IP. ([#84383](https://github.com/kubernetes/kubernetes/pull/84383), [@prameshj](https://github.com/prameshj)) +- kube-dns add-on: + - All containers are now being executed under more restrictive privileges. + - Most of the containers now run as non-root user and has the root filesystem set as read-only. + - The remaining container running as root only has the minimum Linux capabilities it requires to run. + - Privilege escalation has been disabled for all containers. ([#82347](https://github.com/kubernetes/kubernetes/pull/82347), [@pjbgf](https://github.com/pjbgf)) +- Kubernetes no longer monitors firewalld. On systems using firewalld for firewall + maintenance, kube-proxy will take slightly longer to recover from disruptive + firewalld operations that delete kube-proxy's iptables rules. + + As a side effect of these changes, kube-proxy's + `sync_proxy_rules_last_timestamp_seconds` metric no longer behaves the + way it used to; now it will only change when services or endpoints actually + change, rather than reliably updating every 60 seconds (or whatever). If you + are trying to monitor for whether iptables updates are failing, the + `sync_proxy_rules_iptables_restore_failures_total` metric may be more useful. ([#81517](https://github.com/kubernetes/kubernetes/pull/81517), [@danwinship](https://github.com/danwinship)) +### Instrumentation +- Bump version of event-exporter to 0.3.1, to switch it to protobuf. ([#83396](https://github.com/kubernetes/kubernetes/pull/83396), [@loburm](https://github.com/loburm)) +- Bumps metrics-server version to v0.3.6 with following bugfix: + - Don't break metric storage when duplicate pod metrics encountered causing hpa to fail ([#83907](https://github.com/kubernetes/kubernetes/pull/83907), [@olagacek](https://github.com/olagacek)) +- addons: elasticsearch discovery supports IPv6 ([#85543](https://github.com/kubernetes/kubernetes/pull/85543), [@SataQiu](https://github.com/SataQiu)) +- Update Cluster Autoscaler to 1.17.0; changelog: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.17.0 ([#85610](https://github.com/kubernetes/kubernetes/pull/85610), [@losipiuk](https://github.com/losipiuk)) +### Network +- The official kube-proxy image (used by kubeadm, among other things) is now compatible with systems running iptables 1.8 in "nft" mode, and will autodetect which mode it should use. ([#82966](https://github.com/kubernetes/kubernetes/pull/82966), [@danwinship](https://github.com/danwinship)) +- Kubenet: added HostPort IPv6 support. HostPortManager: operates only with one IP family, failing if receives port mapping entries with different IP families. HostPortSyncer: operates only with one IP family, skipping portmap entries with different IP families ([#80854](https://github.com/kubernetes/kubernetes/pull/80854), [@aojea](https://github.com/aojea)) +- Kube-proxy now supports DualStack feature with EndpointSlices and IPVS. ([#85246](https://github.com/kubernetes/kubernetes/pull/85246), [@robscott](https://github.com/robscott)) +- Remove redundant API validation when using Service Topology with externalTrafficPolicy=Local ([#85346](https://github.com/kubernetes/kubernetes/pull/85346), [@andrewsykim](https://github.com/andrewsykim)) +- Update github.com/vishvananda/netlink to v1.0.0 ([#83576](https://github.com/kubernetes/kubernetes/pull/83576), [@andrewsykim](https://github.com/andrewsykim)) +- `-- kube-controller-manager` + `--node-cidr-mask-size-ipv4 int32` Default: 24. Mask size for IPv4 node-cidr in dual-stack cluster. +`--node-cidr-mask-size-ipv6 int32` Default: 64. Mask size for IPv6 node-cidr in dual-stack cluster. + + These 2 flags can be used only for dual-stack clusters. For non dual-stack clusters, continue to use `--node-cidr-mask-size` flag to configure the mask size. + + The default node cidr mask size for IPv6 was 24 which is now changed to 64. ([#79993](https://github.com/kubernetes/kubernetes/pull/79993), [@aramase](https://github.com/aramase)) +- deprecate cleanup-ipvs flag ([#83832](https://github.com/kubernetes/kubernetes/pull/83832), [@gongguan](https://github.com/gongguan)) +- Kube-proxy: emits a warning when a malformed component config file is used with v1alpha1. ([#84143](https://github.com/kubernetes/kubernetes/pull/84143), [@phenixblue](https://github.com/phenixblue)) +- Set config.BindAddress to IPv4 address `127.0.0.1` if not specified ([#83822](https://github.com/kubernetes/kubernetes/pull/83822), [@zouyee](https://github.com/zouyee)) +- Updated kube-proxy ipvs README with correct grep argument to list loaded ipvs modules ([#83677](https://github.com/kubernetes/kubernetes/pull/83677), [@pete911](https://github.com/pete911)) +- The userspace mode of kube-proxy no longer confusingly logs messages about deleting endpoints that it is actually adding. ([#83644](https://github.com/kubernetes/kubernetes/pull/83644), [@danwinship](https://github.com/danwinship)) +- Kube-proxy iptables probabilities are now more granular and will result in better distribution beyond 319 endpoints. ([#83599](https://github.com/kubernetes/kubernetes/pull/83599), [@robscott](https://github.com/robscott)) +- Significant kube-proxy performance improvements for non UDP ports. ([#83208](https://github.com/kubernetes/kubernetes/pull/83208), [@robscott](https://github.com/robscott)) +- Improved performance of kube-proxy with EndpointSlice enabled with more efficient sorting. ([#83035](https://github.com/kubernetes/kubernetes/pull/83035), [@robscott](https://github.com/robscott)) +- EndpointSlices are now beta for better Network Endpoint performance at scale. ([#84390](https://github.com/kubernetes/kubernetes/pull/84390), [@robscott](https://github.com/robscott)) +- Updated EndpointSlices to use PublishNotReadyAddresses from Services. ([#84573](https://github.com/kubernetes/kubernetes/pull/84573), [@robscott](https://github.com/robscott)) +- When upgrading to 1.17 with a cluster with EndpointSlices enabled, the `endpointslice.kubernetes.io/managed-by` label needs to be set on each EndpointSlice. ([#85359](https://github.com/kubernetes/kubernetes/pull/85359), [@robscott](https://github.com/robscott)) +- Adds FQDN addressType support for EndpointSlice. ([#84091](https://github.com/kubernetes/kubernetes/pull/84091), [@robscott](https://github.com/robscott)) +- Fix incorrect network policy description suggesting that pods are isolated when a network policy has no rules of a given type ([#84194](https://github.com/kubernetes/kubernetes/pull/84194), [@jackkleeman](https://github.com/jackkleeman)) +- Fix bug where EndpointSlice controller would attempt to modify shared objects. ([#85368](https://github.com/kubernetes/kubernetes/pull/85368), [@robscott](https://github.com/robscott)) +- Splitting IP address type into IPv4 and IPv6 for EndpointSlices ([#84971](https://github.com/kubernetes/kubernetes/pull/84971), [@robscott](https://github.com/robscott)) +- Added appProtocol field to EndpointSlice Port ([#83815](https://github.com/kubernetes/kubernetes/pull/83815), [@howardjohn](https://github.com/howardjohn)) +- The docker container runtime now enforces a 220 second timeout on container network operations. ([#71653](https://github.com/kubernetes/kubernetes/pull/71653), [@liucimin](https://github.com/liucimin)) +- Fix panic in kubelet when running IPv4/IPv6 dual-stack mode with a CNI plugin ([#82508](https://github.com/kubernetes/kubernetes/pull/82508), [@aanm](https://github.com/aanm)) +- EndpointSlice hostname is now set in the same conditions Endpoints hostname is. ([#84207](https://github.com/kubernetes/kubernetes/pull/84207), [@robscott](https://github.com/robscott)) +- Improving the performance of Endpoint and EndpointSlice controllers by caching Service Selectors ([#84280](https://github.com/kubernetes/kubernetes/pull/84280), [@gongguan](https://github.com/gongguan)) +- Significant kube-proxy performance improvements when using Endpoint Slices at scale. ([#83206](https://github.com/kubernetes/kubernetes/pull/83206), [@robscott](https://github.com/robscott)) + +### Node +- Mirror pods now include an ownerReference for the node that created them. ([#84485](https://github.com/kubernetes/kubernetes/pull/84485), [@tallclair](https://github.com/tallclair)) +- Fixed a bug in the single-numa-policy of the TopologyManager. Previously, best-effort pods would result in a terminated state with a TopologyAffinity error. Now they will run as expected. ([#83777](https://github.com/kubernetes/kubernetes/pull/83777), [@lmdaly](https://github.com/lmdaly)) +- Fixed a bug in the single-numa-node policy of the TopologyManager. Previously, pods that only requested CPU resources and did not request any third-party devices would fail to launch with a TopologyAffinity error. Now they will launch successfully. ([#83697](https://github.com/kubernetes/kubernetes/pull/83697), [@klueska](https://github.com/klueska)) +- Fix error where metrics related to dynamic kubelet config isn't registered ([#83184](https://github.com/kubernetes/kubernetes/pull/83184), [@odinuge](https://github.com/odinuge)) +- If container fails because ContainerCannotRun, do not utilize the FallbackToLogsOnError TerminationMessagePolicy, as it masks more useful logs. ([#81280](https://github.com/kubernetes/kubernetes/pull/81280), [@yqwang-ms](https://github.com/yqwang-ms)) +- Use online nodes instead of possible nodes when discovering available NUMA nodes ([#83196](https://github.com/kubernetes/kubernetes/pull/83196), [@zouyee](https://github.com/zouyee)) +- Use IPv4 in wincat port forward. ([#83036](https://github.com/kubernetes/kubernetes/pull/83036), [@liyanhui1228](https://github.com/liyanhui1228)) +- Single static pod files and pod files from http endpoints cannot be larger than 10 MB. HTTP probe payloads are now truncated to 10KB. ([#82669](https://github.com/kubernetes/kubernetes/pull/82669), [@rphillips](https://github.com/rphillips)) +- Limit the body length of exec readiness/liveness probes. remote CRIs and Docker shim read a max of 16MB output of which the exec probe itself inspects 10kb. ([#82514](https://github.com/kubernetes/kubernetes/pull/82514), [@dims](https://github.com/dims)) +- Kubelet: Added kubelet serving certificate metric `server_rotation_seconds` which is a histogram reporting the age of a just rotated serving certificate in seconds. ([#84534](https://github.com/kubernetes/kubernetes/pull/84534), [@sambdavidson](https://github.com/sambdavidson)) +- Reduce default NodeStatusReportFrequency to 5 minutes. With this change, periodic node status updates will be send every 5m if node status doesn't change (otherwise they are still send with 10s). + + Bump NodeProblemDetector version to v0.8.0 to reduce forced NodeStatus updates frequency to 5 minutes. ([#84007](https://github.com/kubernetes/kubernetes/pull/84007), [@wojtek-t](https://github.com/wojtek-t)) +- The topology manager aligns resources for pods of all QoS classes with respect to NUMA locality, not just Guaranteed QoS pods. ([#83492](https://github.com/kubernetes/kubernetes/pull/83492), [@ConnorDoyle](https://github.com/ConnorDoyle)) +- Fix a bug that a node Lease object may have been created without OwnerReference. ([#84998](https://github.com/kubernetes/kubernetes/pull/84998), [@wojtek-t](https://github.com/wojtek-t)) +- External facing APIs in plugin registration and device plugin packages are now available under k8s.io/kubelet/pkg/apis/ ([#83551](https://github.com/kubernetes/kubernetes/pull/83551), [@dims](https://github.com/dims)) +### Release +- Added the `crictl` Windows binaries as well as the Linux 32bit binary to the release archives ([#83944](https://github.com/kubernetes/kubernetes/pull/83944), [@saschagrunert](https://github.com/saschagrunert)) +- Bumps the minimum version of Go required for building Kubernetes to 1.12.4. ([#83596](https://github.com/kubernetes/kubernetes/pull/83596), [@jktomer](https://github.com/jktomer)) +- The deprecated mondo `kubernetes-test` tarball is no longer built. Users running Kubernetes e2e tests should use the `kubernetes-test-portable` and `kubernetes-test-{OS}-{ARCH}` tarballs instead. ([#83093](https://github.com/kubernetes/kubernetes/pull/83093), [@ixdy](https://github.com/ixdy)) + +### Scheduling + +- Only validate duplication of the RequestedToCapacityRatio custom priority and allow other custom predicates/priorities ([#84646](https://github.com/kubernetes/kubernetes/pull/84646), [@liu-cong](https://github.com/liu-cong)) +- Scheduler policy configs can no longer be declared multiple times ([#83963](https://github.com/kubernetes/kubernetes/pull/83963), [@damemi](https://github.com/damemi)) +- TaintNodesByCondition was graduated to GA, CheckNodeMemoryPressure, CheckNodePIDPressure, CheckNodeDiskPressure, CheckNodeCondition were accidentally removed since 1.12, the replacement is to use CheckNodeUnschedulablePred ([#84152](https://github.com/kubernetes/kubernetes/pull/84152), [@draveness](https://github.com/draveness)) +- [migration phase 1] PodFitsHostPorts as filter plugin ([#83659](https://github.com/kubernetes/kubernetes/pull/83659), [@wgliang](https://github.com/wgliang)) +- [migration phase 1] PodFitsResources as framework plugin ([#83650](https://github.com/kubernetes/kubernetes/pull/83650), [@wgliang](https://github.com/wgliang)) +- [migration phase 1] PodMatchNodeSelector/NodAffinity as filter plugin ([#83660](https://github.com/kubernetes/kubernetes/pull/83660), [@wgliang](https://github.com/wgliang)) +- Add more tracing steps in generic_scheduler ([#83539](https://github.com/kubernetes/kubernetes/pull/83539), [@wgliang](https://github.com/wgliang)) +- [migration phase 1] PodFitsHost as filter plugin ([#83662](https://github.com/kubernetes/kubernetes/pull/83662), [@wgliang](https://github.com/wgliang)) +- Fixed a scheduler panic when using PodAffinity. ([#82841](https://github.com/kubernetes/kubernetes/pull/82841), [@Huang-Wei](https://github.com/Huang-Wei)) +- Take the context as the first argument of Schedule. ([#82119](https://github.com/kubernetes/kubernetes/pull/82119), [@wgliang](https://github.com/wgliang)) +- Fixed an issue that the correct PluginConfig.Args is not passed to the corresponding PluginFactory in kube-scheduler when multiple PluginConfig items are defined. ([#82483](https://github.com/kubernetes/kubernetes/pull/82483), [@everpeace](https://github.com/everpeace)) +- Profiling is enabled by default in the scheduler ([#84835](https://github.com/kubernetes/kubernetes/pull/84835), [@denkensk](https://github.com/denkensk)) +- Scheduler now reports metrics on cache size including nodes, pods, and assumed pods ([#83508](https://github.com/kubernetes/kubernetes/pull/83508), [@damemi](https://github.com/damemi)) +- User can now use component config to configure NodeLabel plugin for the scheduler framework. ([#84297](https://github.com/kubernetes/kubernetes/pull/84297), [@liu-cong](https://github.com/liu-cong)) +- Optimize inter-pod affinity preferredDuringSchedulingIgnoredDuringExecution type, up to 4x in some cases. ([#84264](https://github.com/kubernetes/kubernetes/pull/84264), [@ahg-g](https://github.com/ahg-g)) +- Filter plugin for cloud provider storage predicate ([#84148](https://github.com/kubernetes/kubernetes/pull/84148), [@gongguan](https://github.com/gongguan)) +- Refactor scheduler's framework permit API. ([#83756](https://github.com/kubernetes/kubernetes/pull/83756), [@hex108](https://github.com/hex108)) +- Add incoming pods metrics to scheduler queue. ([#83577](https://github.com/kubernetes/kubernetes/pull/83577), [@liu-cong](https://github.com/liu-cong)) +- Allow dynamically set glog logging level of kube-scheduler ([#83910](https://github.com/kubernetes/kubernetes/pull/83910), [@mrkm4ntr](https://github.com/mrkm4ntr)) +- Add latency and request count metrics for scheduler framework. ([#83569](https://github.com/kubernetes/kubernetes/pull/83569), [@liu-cong](https://github.com/liu-cong)) +- Expose SharedInformerFactory in the framework handle ([#83663](https://github.com/kubernetes/kubernetes/pull/83663), [@draveness](https://github.com/draveness)) +- Add per-pod scheduling metrics across 1 or more schedule attempts. ([#83674](https://github.com/kubernetes/kubernetes/pull/83674), [@liu-cong](https://github.com/liu-cong)) +- Add `podInitialBackoffDurationSeconds` and `podMaxBackoffDurationSeconds` to the scheduler config API ([#81263](https://github.com/kubernetes/kubernetes/pull/81263), [@draveness](https://github.com/draveness)) +- Expose kubernetes client in the scheduling framework handle. ([#82432](https://github.com/kubernetes/kubernetes/pull/82432), [@draveness](https://github.com/draveness)) +- Remove MaxPriority in the scheduler API, please use MaxNodeScore or MaxExtenderPriority instead. ([#83386](https://github.com/kubernetes/kubernetes/pull/83386), [@draveness](https://github.com/draveness)) +- Consolidate ScoreWithNormalizePlugin into the ScorePlugin interface ([#83042](https://github.com/kubernetes/kubernetes/pull/83042), [@draveness](https://github.com/draveness)) +- New APIs to allow adding/removing pods from pre-calculated prefilter state in the scheduling framework ([#82912](https://github.com/kubernetes/kubernetes/pull/82912), [@ahg-g](https://github.com/ahg-g)) +- Added Clone method to the scheduling framework's PluginContext and ContextData. ([#82951](https://github.com/kubernetes/kubernetes/pull/82951), [@ahg-g](https://github.com/ahg-g)) +- Modified the scheduling framework's Filter API. ([#82842](https://github.com/kubernetes/kubernetes/pull/82842), [@ahg-g](https://github.com/ahg-g)) +- Critical pods can now be created in namespaces other than kube-system. To limit critical pods to the kube-system namespace, cluster admins should create an admission configuration file limiting critical pods by default, and a matching quota object in the `kube-system` namespace permitting critical pods in that namespace. See https://kubernetes.io/docs/concepts/policy/resource-quotas/#limit-priority-class-consumption-by-default for details. ([#76310](https://github.com/kubernetes/kubernetes/pull/76310), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- Scheduler ComponentConfig fields are now pointers ([#83619](https://github.com/kubernetes/kubernetes/pull/83619), [@damemi](https://github.com/damemi)) +- Scheduler Policy API has a new recommended apiVersion `apiVersion: kubescheduler.config.k8s.io/v1` which is consistent with the scheduler API group `kubescheduler.config.k8s.io`. It holds the same API as the old apiVersion `apiVersion: v1`. ([#83578](https://github.com/kubernetes/kubernetes/pull/83578), [@Huang-Wei](https://github.com/Huang-Wei)) +- Rename PluginContext to CycleState in the scheduling framework ([#83430](https://github.com/kubernetes/kubernetes/pull/83430), [@draveness](https://github.com/draveness)) +- Some scheduler extender API fields are moved from `pkg/scheduler/api` to `pkg/scheduler/apis/extender/v1`. ([#83262](https://github.com/kubernetes/kubernetes/pull/83262), [@Huang-Wei](https://github.com/Huang-Wei)) +- Kube-scheduler: emits a warning when a malformed component config file is used with v1alpha1. ([#84129](https://github.com/kubernetes/kubernetes/pull/84129), [@obitech](https://github.com/obitech)) +- Kube-scheduler now falls back to emitting events using core/v1 Events when events.k8s.io/v1beta1 is disabled. ([#83692](https://github.com/kubernetes/kubernetes/pull/83692), [@yastij](https://github.com/yastij)) +- Expand scheduler priority functions and scheduling framework plugins' node score range to [0, 100]. Note: this change is internal and does not affect extender and RequestedToCapacityRatio custom priority, which are still expected to provide a [0, 10] range. ([#83522](https://github.com/kubernetes/kubernetes/pull/83522), [@draveness](https://github.com/draveness)) + +### Storage +- Bump CSI version to 1.2.0 ([#84832](https://github.com/kubernetes/kubernetes/pull/84832), [@gnufied](https://github.com/gnufied)) +- CSI Migration: Fixes issue where all volumes with the same inline volume inner spec name were staged in the same path. Migrated inline volumes are now staged at a unique path per unique volume. ([#84754](https://github.com/kubernetes/kubernetes/pull/84754), [@davidz627](https://github.com/davidz627)) +- CSI Migration: GCE PD access mode now reflects read only status of inline volumes - this allows multi-attach for read only many PDs ([#84809](https://github.com/kubernetes/kubernetes/pull/84809), [@davidz627](https://github.com/davidz627)) +- CSI detach timeout increased from 10 seconds to 2 minutes ([#84321](https://github.com/kubernetes/kubernetes/pull/84321), [@cduchesne](https://github.com/cduchesne)) +- Ceph RBD volume plugin now does not use any keyring (`/etc/ceph/ceph.client.lvs01cinder.keyring`, `/etc/ceph/ceph.keyring`, `/etc/ceph/keyring`, `/etc/ceph/keyring.bin`) for authentication. Ceph user credentials must be provided in PersistentVolume objects and referred Secrets. ([#75588](https://github.com/kubernetes/kubernetes/pull/75588), [@smileusd](https://github.com/smileusd)) +- Validate Gluster IP ([#83104](https://github.com/kubernetes/kubernetes/pull/83104), [@zouyee](https://github.com/zouyee)) +- PersistentVolumeLabel admission plugin, responsible for labeling `PersistentVolumes` with topology labels, now does not overwrite existing labels on PVs that were dynamically provisioned. It trusts the dynamic provisioning that it provided the correct labels to the `PersistentVolume`, saving one potentially expensive cloud API call. `PersistentVolumes` created manually by users are labelled by the admission plugin in the same way as before. ([#82830](https://github.com/kubernetes/kubernetes/pull/82830), [@jsafrane](https://github.com/jsafrane)) + +- Existing PVs are converted to use volume topology if migration is enabled. ([#83394](https://github.com/kubernetes/kubernetes/pull/83394), [@bertinatto](https://github.com/bertinatto)) +- local: support local filesystem volume with block resource reconstruction ([#84218](https://github.com/kubernetes/kubernetes/pull/84218), [@cofyc](https://github.com/cofyc)) +- Fixed binding of block PersistentVolumes / PersistentVolumeClaims when BlockVolume feature is off. ([#84049](https://github.com/kubernetes/kubernetes/pull/84049), [@jsafrane](https://github.com/jsafrane)) +- Report non-confusing error for negative storage size in PVC spec. ([#82759](https://github.com/kubernetes/kubernetes/pull/82759), [@sttts](https://github.com/sttts)) +- Fixed "requested device X but found Y" attach error on AWS. ([#85675](https://github.com/kubernetes/kubernetes/pull/85675), [@jsafrane](https://github.com/jsafrane)) +- Reduced frequency of DescribeVolumes calls of AWS API when attaching/detaching a volume. ([#84181](https://github.com/kubernetes/kubernetes/pull/84181), [@jsafrane](https://github.com/jsafrane)) +- Fixed attachment of AWS volumes that have just been detached. ([#83567](https://github.com/kubernetes/kubernetes/pull/83567), [@jsafrane](https://github.com/jsafrane)) +- Fix possible fd leak and closing of dirs when using openstack ([#82873](https://github.com/kubernetes/kubernetes/pull/82873), [@odinuge](https://github.com/odinuge)) +- local: support local volume block mode reconstruction ([#84173](https://github.com/kubernetes/kubernetes/pull/84173), [@cofyc](https://github.com/cofyc)) +- Fixed cleanup of raw block devices after kubelet restart. ([#83451](https://github.com/kubernetes/kubernetes/pull/83451), [@jsafrane](https://github.com/jsafrane)) +- Add data cache flushing during unmount device for GCE-PD driver in Windows Server. ([#83591](https://github.com/kubernetes/kubernetes/pull/83591), [@jingxu97](https://github.com/jingxu97)) +### Windows +- Adds Windows Server build information as a label on the node. ([#84472](https://github.com/kubernetes/kubernetes/pull/84472), [@gab-satchi](https://github.com/gab-satchi)) +- Fixes kube-proxy bug accessing self nodeip:port on windows ([#83027](https://github.com/kubernetes/kubernetes/pull/83027), [@liggitt](https://github.com/liggitt)) +- When using Containerd on Windows, the ``TerminationMessagePath`` file will now be mounted in the Windows Pod. ([#83057](https://github.com/kubernetes/kubernetes/pull/83057), [@bclau](https://github.com/bclau)) +- Fix kubelet metrics gathering on non-English Windows hosts ([#84156](https://github.com/kubernetes/kubernetes/pull/84156), [@wawa0210](https://github.com/wawa0210)) + +### Dependencies + + +- Update etcd client side to v3.4.3 ([#83987](https://github.com/kubernetes/kubernetes/pull/83987), [@wenjiaswe](https://github.com/wenjiaswe)) +- Kubernetes now requires go1.13.4+ to build ([#82809](https://github.com/kubernetes/kubernetes/pull/82809), [@liggitt](https://github.com/liggitt)) +- Update to use go1.12.12 ([#84064](https://github.com/kubernetes/kubernetes/pull/84064), [@cblecker](https://github.com/cblecker)) +- Update to go 1.12.10 ([#83139](https://github.com/kubernetes/kubernetes/pull/83139), [@cblecker](https://github.com/cblecker)) +- Update default etcd server version to 3.4.3 ([#84329](https://github.com/kubernetes/kubernetes/pull/84329), [@jingyih](https://github.com/jingyih)) +- Upgrade default etcd server version to 3.3.17 ([#83804](https://github.com/kubernetes/kubernetes/pull/83804), [@jpbetz](https://github.com/jpbetz)) +- Upgrade to etcd client 3.3.17 to fix bug where etcd client does not parse IPv6 addresses correctly when members are joining, and to fix bug where failover on multi-member etcd cluster fails certificate check on DNS mismatch ([#83801](https://github.com/kubernetes/kubernetes/pull/83801), [@jpbetz](https://github.com/jpbetz)) + +### Detailed go Dependency Changes + +#### Added +- github.com/OpenPeeDeeP/depguard: v1.0.1 +- github.com/StackExchange/wmi: 5d04971 +- github.com/agnivade/levenshtein: v1.0.1 +- github.com/alecthomas/template: a0175ee +- github.com/alecthomas/units: 2efee85 +- github.com/andreyvit/diff: c7f18ee +- github.com/anmitsu/go-shlex: 648efa6 +- github.com/bazelbuild/rules_go: 6dae44d +- github.com/bgentry/speakeasy: v0.1.0 +- github.com/bradfitz/go-smtpd: deb6d62 +- github.com/cockroachdb/datadriven: 80d97fb +- github.com/creack/pty: v1.1.7 +- github.com/gliderlabs/ssh: v0.1.1 +- github.com/go-critic/go-critic: 1df3008 +- github.com/go-kit/kit: v0.8.0 +- github.com/go-lintpack/lintpack: v0.5.2 +- github.com/go-logfmt/logfmt: v0.3.0 +- github.com/go-ole/go-ole: v1.2.1 +- github.com/go-stack/stack: v1.8.0 +- github.com/go-toolsmith/astcast: v1.0.0 +- github.com/go-toolsmith/astcopy: v1.0.0 +- github.com/go-toolsmith/astequal: v1.0.0 +- github.com/go-toolsmith/astfmt: v1.0.0 +- github.com/go-toolsmith/astinfo: 9809ff7 +- github.com/go-toolsmith/astp: v1.0.0 +- github.com/go-toolsmith/pkgload: v1.0.0 +- github.com/go-toolsmith/strparse: v1.0.0 +- github.com/go-toolsmith/typep: v1.0.0 +- github.com/gobwas/glob: v0.2.3 +- github.com/golangci/check: cfe4005 +- github.com/golangci/dupl: 3e9179a +- github.com/golangci/errcheck: ef45e06 +- github.com/golangci/go-misc: 927a3d8 +- github.com/golangci/go-tools: e32c541 +- github.com/golangci/goconst: 041c5f2 +- github.com/golangci/gocyclo: 2becd97 +- github.com/golangci/gofmt: 0b8337e +- github.com/golangci/golangci-lint: v1.18.0 +- github.com/golangci/gosec: 66fb7fc +- github.com/golangci/ineffassign: 42439a7 +- github.com/golangci/lint-1: ee948d0 +- github.com/golangci/maligned: b1d8939 +- github.com/golangci/misspell: 950f5d1 +- github.com/golangci/prealloc: 215b22d +- github.com/golangci/revgrep: d9c87f5 +- github.com/golangci/unconvert: 28b1c44 +- github.com/google/go-github: v17.0.0+incompatible +- github.com/google/go-querystring: v1.0.0 +- github.com/gostaticanalysis/analysisutil: v0.0.3 +- github.com/jellevandenhooff/dkim: f50fe3d +- github.com/julienschmidt/httprouter: v1.2.0 +- github.com/klauspost/compress: v1.4.1 +- github.com/kr/logfmt: b84e30a +- github.com/logrusorgru/aurora: a7b3b31 +- github.com/mattn/go-runewidth: v0.0.2 +- github.com/mattn/goveralls: v0.0.2 +- github.com/mitchellh/go-ps: 4fdf99a +- github.com/mozilla/tls-observatory: 8791a20 +- github.com/mwitkow/go-conntrack: cc309e4 +- github.com/nbutton23/zxcvbn-go: eafdab6 +- github.com/olekukonko/tablewriter: a0225b3 +- github.com/quasilyte/go-consistent: c6f3937 +- github.com/rogpeppe/fastuuid: 6724a57 +- github.com/ryanuber/go-glob: 256dc44 +- github.com/sergi/go-diff: v1.0.0 +- github.com/shirou/gopsutil: c95755e +- github.com/shirou/w32: bb4de01 +- github.com/shurcooL/go-goon: 37c2f52 +- github.com/shurcooL/go: 9e1955d +- github.com/sourcegraph/go-diff: v0.5.1 +- github.com/tarm/serial: 98f6abe +- github.com/tidwall/pretty: v1.0.0 +- github.com/timakin/bodyclose: 87058b9 +- github.com/ultraware/funlen: v0.0.2 +- github.com/urfave/cli: v1.20.0 +- github.com/valyala/bytebufferpool: v1.0.0 +- github.com/valyala/fasthttp: v1.2.0 +- github.com/valyala/quicktemplate: v1.1.1 +- github.com/valyala/tcplisten: ceec8f9 +- github.com/vektah/gqlparser: v1.1.2 +- go.etcd.io/etcd: 3cf2f69 +- go.mongodb.org/mongo-driver: v1.1.2 +- go4.org: 417644f +- golang.org/x/build: 2835ba2 +- golang.org/x/perf: 6e6d33e +- golang.org/x/xerrors: a985d34 +- gopkg.in/alecthomas/kingpin.v2: v2.2.6 +- gopkg.in/cheggaaa/pb.v1: v1.0.25 +- gopkg.in/resty.v1: v1.12.0 +- grpc.go4.org: 11d0a25 +- k8s.io/system-validators: v1.0.4 +- mvdan.cc/interfacer: c200402 +- mvdan.cc/lint: adc824a +- mvdan.cc/unparam: fbb5962 +- sourcegraph.com/sqs/pbtypes: d3ebe8f + +#### Changed +- github.com/Azure/azure-sdk-for-go: v32.5.0+incompatible → v35.0.0+incompatible +- github.com/Microsoft/go-winio: v0.4.11 → v0.4.14 +- github.com/bazelbuild/bazel-gazelle: c728ce9 → 70208cb +- github.com/bazelbuild/buildtools: 80c7f0d → 69366ca +- github.com/beorn7/perks: 3a771d9 → v1.0.0 +- github.com/container-storage-interface/spec: v1.1.0 → v1.2.0 +- github.com/coredns/corefile-migration: v1.0.2 → v1.0.4 +- github.com/coreos/etcd: v3.3.17+incompatible → v3.3.10+incompatible +- github.com/coreos/go-systemd: 39ca1b0 → 95778df +- github.com/docker/go-units: v0.3.3 → v0.4.0 +- github.com/docker/libnetwork: a9cd636 → f0e46a7 +- github.com/fatih/color: v1.6.0 → v1.7.0 +- github.com/ghodss/yaml: c7ce166 → v1.0.0 +- github.com/go-openapi/analysis: v0.19.2 → v0.19.5 +- github.com/go-openapi/jsonpointer: v0.19.2 → v0.19.3 +- github.com/go-openapi/jsonreference: v0.19.2 → v0.19.3 +- github.com/go-openapi/loads: v0.19.2 → v0.19.4 +- github.com/go-openapi/runtime: v0.19.0 → v0.19.4 +- github.com/go-openapi/spec: v0.19.2 → v0.19.3 +- github.com/go-openapi/strfmt: v0.19.0 → v0.19.3 +- github.com/go-openapi/swag: v0.19.2 → v0.19.5 +- github.com/go-openapi/validate: v0.19.2 → v0.19.5 +- github.com/godbus/dbus: v4.1.0+incompatible → 2ff6f7f +- github.com/golang/protobuf: v1.3.1 → v1.3.2 +- github.com/google/btree: 4030bb1 → v1.0.0 +- github.com/google/cadvisor: v0.34.0 → v0.35.0 +- github.com/gregjones/httpcache: 787624d → 9cad4c3 +- github.com/grpc-ecosystem/go-grpc-middleware: cfaf568 → f849b54 +- github.com/grpc-ecosystem/grpc-gateway: v1.3.0 → v1.9.5 +- github.com/heketi/heketi: v9.0.0+incompatible → c2e2a4a +- github.com/json-iterator/go: v1.1.7 → v1.1.8 +- github.com/mailru/easyjson: 94de47d → v0.7.0 +- github.com/mattn/go-isatty: v0.0.3 → v0.0.9 +- github.com/mindprince/gonvml: fee913c → 9ebdce4 +- github.com/mrunalp/fileutils: 4ee1cc9 → 7d4729f +- github.com/munnerz/goautoneg: a547fc6 → a7dc8b6 +- github.com/onsi/ginkgo: v1.8.0 → v1.10.1 +- github.com/onsi/gomega: v1.5.0 → v1.7.0 +- github.com/opencontainers/runc: 6cc5158 → v1.0.0-rc9 +- github.com/opencontainers/selinux: v1.2.2 → 5215b18 +- github.com/pkg/errors: v0.8.0 → v0.8.1 +- github.com/prometheus/client_golang: v0.9.2 → v1.0.0 +- github.com/prometheus/client_model: 5c3871d → fd36f42 +- github.com/prometheus/common: 4724e92 → v0.4.1 +- github.com/prometheus/procfs: 1dc9a6c → v0.0.2 +- github.com/soheilhy/cmux: v0.1.3 → v0.1.4 +- github.com/spf13/pflag: v1.0.3 → v1.0.5 +- github.com/stretchr/testify: v1.3.0 → v1.4.0 +- github.com/syndtr/gocapability: e7cb7fa → d983527 +- github.com/vishvananda/netlink: b2de5d1 → v1.0.0 +- github.com/vmware/govmomi: v0.20.1 → v0.20.3 +- github.com/xiang90/probing: 07dd2e8 → 43a291a +- go.uber.org/atomic: 8dc6146 → v1.3.2 +- go.uber.org/multierr: ddea229 → v1.1.0 +- go.uber.org/zap: 67bc79d → v1.10.0 +- golang.org/x/crypto: e84da03 → 60c769a +- golang.org/x/lint: 8f45f77 → 959b441 +- golang.org/x/net: cdfb69a → 13f9640 +- golang.org/x/oauth2: 9f33145 → 0f29369 +- golang.org/x/sync: 42b3178 → cd5d95a +- golang.org/x/sys: 3b52091 → fde4db3 +- golang.org/x/text: e6919f6 → v0.3.2 +- golang.org/x/time: f51c127 → 9d24e82 +- golang.org/x/tools: 6e04913 → 65e3620 +- google.golang.org/grpc: v1.23.0 → v1.23.1 +- gopkg.in/inf.v0: v0.9.0 → v0.9.1 +- k8s.io/klog: v0.4.0 → v1.0.0 +- k8s.io/kube-openapi: 743ec37 → 30be4d1 +- k8s.io/repo-infra: 00fe14e → v0.0.1-alpha.1 +- k8s.io/utils: 581e001 → e782cd3 +- sigs.k8s.io/structured-merge-diff: 6149e45 → b1b620d + +#### Removed +- github.com/cloudflare/cfssl: 56268a6 +- github.com/coreos/bbolt: v1.3.3 +- github.com/coreos/rkt: v1.30.0 +- github.com/globalsign/mgo: eeefdec +- github.com/google/certificate-transparency-go: v1.0.21 +- github.com/heketi/rest: aa6a652 +- github.com/heketi/utils: 435bc5b - github.com/pborman/uuid: v1.2.0 \ No newline at end of file diff --git a/releases/release-1.17/release_team.md b/releases/release-1.17/release_team.md index 74d9f68ccc2..06cc027221f 100644 --- a/releases/release-1.17/release_team.md +++ b/releases/release-1.17/release_team.md @@ -1,16 +1,16 @@ -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -| ------ | ------ | ------ | -| Lead | Guinevere Saenger ([@guineveresaenger](https://github.com/guineveresaenger) / Slack: `@gsaenger`) | Jeff Sica ([@jeefy](https://github.com/jeefy) / Slack: `@jeefy`), Jorge Alarcon ([@alejandrox1](https://github.com/alejandrox1) / Slack: `@alejandrox1`), Maria Ntalla ([@mariantalla](https://github.com/mariantalla) / Slack: `@maria`) | -| Enhancements | Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables) / Slack: `@mrbobbytables`) | Anna Jung ([@annajung](https://github.com/annajung) / Slack `@anna`), Jeremy Rickard ([jeremyrickard](https://github.com/jeremyrickard) / Slack: `@jerickar`), Kristin Martin ([kcmartin](https://github.com/kcmartin) / Slack: `@kcmartin`), Nabarun Pal ([palnabarun](https://github.com/palnabarun) / Slack: `@palnabarun`) | -| CI Signal | Alena Varkockova ([@alenkacz](https://github.com/alenkacz) / Slack: `@alenkacz`) | Nikolaos Moraitis / ([@droslean](https://github.com/droslean) / Slack: `@droslean`), Aditya Sharma / ([@epk](https://github.com/epk) / Slack: `@Aditya`), Daniel Mangum / ([@hasheddan](https://github.com/hasheddan) / Slack: `@hasheddan`), Verónica López / ([@verolop](https://github.com/verolop) / Slack: `@verolop`) | -| Bug Triage | Josiah Bjorgaard ([@josiahbjorgaard](https://github.com/josiahbjorgaard) / Slack: `@jb`) | Marky Jackson / ([@markyjackson-taulia](https://github.com/markyjackson-taulia) / Slack: `@markyjackson`), Kirsten Garrison / ([@kikisdeliveryservice](https://github.com/kikisdeliveryservice) / Slack: `@oikiki`), Silvia Pina / ([@smourapina](https://github.com/smourapina) / Slack: `@smourapina`), Abubakr-Sadik Nii Nai Davis / ([@ttousai](https://github.com/ttousai) / Slack: `@ttousai`) | -| Docs | Damini Satya Kammakomati ([@daminisatya](https://github.com/daminisatya) / Slack: `@Damini Satya`) | Irvi Aini ([@irvifa](https://github.com/irvifa) / Slack: `@irvifa`), Paul Burt ([@pgburt](https://github.com/pgburt) / Slack: `@paulb`), Vineeth Pothulapati ([@VineethReddy02](https://github.com/VineethReddy02) / Slack: `@Vineeth`) | -| Release Notes | Chris Carty ([@cartyc](https://github.com/cartyc)) / Slack: `@macintoshprime` | Eddie Villalba ([@Evillgenius75](https://github.com/Evillgenius75) / Slack: `Evill_genius`), Ramesh Kumar ([@kylix3511](https://github.com/kylix3511) / Slack: `kylix3511`), Bridget Kromhout ([@bridgetkromhout](https://github.com/bridgetkromhout) / Slack: `bridgetkromhout` ) | -| Communications | David McKay ([@rawkode](https://github.com/rawkode) / Slack: `@rawkode`) | Karen Chu ([@karenhchu](https://github.com/karenhchu) / Slack: `@kchu`), Imran Pochi ([@ipochi](https://github.com/ipochi) / Slack: `@imran`), Roger Klorese ([@qnetter](https://github.com/qnetter) / Slack: `@rogerk`), Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkoerbi`) | -| Emeritus Adviser | Claire Laurence ([@claurence](https://github.com/claurence)) | | - -Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.17, once the 1.17 release cycle concludes. - -(Emeritus Adviser assists in shadow selection, and mentors shadows through Release Team participation, development, and graduation.) +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +| ------ | ------ | ------ | +| Lead | Guinevere Saenger ([@guineveresaenger](https://github.com/guineveresaenger) / Slack: `@gsaenger`) | Jeff Sica ([@jeefy](https://github.com/jeefy) / Slack: `@jeefy`), Jorge Alarcon ([@alejandrox1](https://github.com/alejandrox1) / Slack: `@alejandrox1`), Maria Ntalla ([@mariantalla](https://github.com/mariantalla) / Slack: `@maria`) | +| Enhancements | Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables) / Slack: `@mrbobbytables`) | Anna Jung ([@annajung](https://github.com/annajung) / Slack `@anna`), Jeremy Rickard ([jeremyrickard](https://github.com/jeremyrickard) / Slack: `@jerickar`), Kristin Martin ([kcmartin](https://github.com/kcmartin) / Slack: `@kcmartin`), Nabarun Pal ([palnabarun](https://github.com/palnabarun) / Slack: `@palnabarun`) | +| CI Signal | Alena Varkockova ([@alenkacz](https://github.com/alenkacz) / Slack: `@alenkacz`) | Nikolaos Moraitis / ([@droslean](https://github.com/droslean) / Slack: `@droslean`), Aditya Sharma / ([@epk](https://github.com/epk) / Slack: `@Aditya`), Daniel Mangum / ([@hasheddan](https://github.com/hasheddan) / Slack: `@hasheddan`), Verónica López / ([@verolop](https://github.com/verolop) / Slack: `@verolop`) | +| Bug Triage | Josiah Bjorgaard ([@josiahbjorgaard](https://github.com/josiahbjorgaard) / Slack: `@jb`) | Marky Jackson / ([@markyjackson-taulia](https://github.com/markyjackson-taulia) / Slack: `@markyjackson`), Kirsten Garrison / ([@kikisdeliveryservice](https://github.com/kikisdeliveryservice) / Slack: `@oikiki`), Silvia Pina / ([@smourapina](https://github.com/smourapina) / Slack: `@smourapina`), Abubakr-Sadik Nii Nai Davis / ([@ttousai](https://github.com/ttousai) / Slack: `@ttousai`) | +| Docs | Damini Satya Kammakomati ([@daminisatya](https://github.com/daminisatya) / Slack: `@Damini Satya`) | Irvi Aini ([@irvifa](https://github.com/irvifa) / Slack: `@irvifa`), Paul Burt ([@pgburt](https://github.com/pgburt) / Slack: `@paulb`), Vineeth Pothulapati ([@VineethReddy02](https://github.com/VineethReddy02) / Slack: `@Vineeth`) | +| Release Notes | Chris Carty ([@cartyc](https://github.com/cartyc)) / Slack: `@macintoshprime` | Eddie Villalba ([@Evillgenius75](https://github.com/Evillgenius75) / Slack: `Evill_genius`), Ramesh Kumar ([@kylix3511](https://github.com/kylix3511) / Slack: `kylix3511`), Bridget Kromhout ([@bridgetkromhout](https://github.com/bridgetkromhout) / Slack: `bridgetkromhout` ) | +| Communications | David McKay ([@rawkode](https://github.com/rawkode) / Slack: `@rawkode`) | Karen Chu ([@karenhchu](https://github.com/karenhchu) / Slack: `@kchu`), Imran Pochi ([@ipochi](https://github.com/ipochi) / Slack: `@imran`), Roger Klorese ([@qnetter](https://github.com/qnetter) / Slack: `@rogerk`), Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkoerbi`) | +| Emeritus Adviser | Claire Laurence ([@claurence](https://github.com/claurence)) | | + +Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.17, once the 1.17 release cycle concludes. + +(Emeritus Adviser assists in shadow selection, and mentors shadows through Release Team participation, development, and graduation.) diff --git a/releases/release-1.18/README.md b/releases/release-1.18/README.md index 3f99d8e2a33..aaf485910f5 100644 --- a/releases/release-1.18/README.md +++ b/releases/release-1.18/README.md @@ -1,111 +1,111 @@ ---- -title: "Kubernetes 1.18 Release" -weight: 98 -slug: "release" ---- - -# Kubernetes 1.18 : A Bit Quarky - -<img src="large-kube-collider.png" height=600 width=auto> - -The Kubernetes 1.18 release logo was inspired by the Large Hadron Collider -(LHC). - -**Why the LHC?** -The LHC is the world’s largest and most powerful particle accelerator. It is the result of the collaboration of thousands of scientists from around the world, all for the advancement of science. In a similar manner, Kubernetes has been a project that has united thousands of contributors from hundreds of organizations – all to work towards the same goal of improving cloud computing in all aspects! “A Bit Quarky” as the release name is meant to remind us that unconventional ideas can bring about great change and keeping an open mind to diversity will lead help us innovate. - -**About the designer** -Maru Lango is a designer currently based in Mexico City. While her area of expertise is Product Design, she also enjoys branding, illustration and visual experiments using CSS + JS and contributing to diversity efforts within the tech and design communities. You may find her in most social media as @marulango or check her website: https://marulango.com - - - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.18/README.md) -* [Release Team](https://git.k8s.io/sig-release/releases/release-1.18/release_team.md) -* [Meeting Minutes](http://bit.ly/k8s118-releasemtg) (join [kubernetes-sig-release@] to receive meeting invites) -* [v1.18 Release Calendar][k8s118-calendar] -* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail -* [Internal Contact Info][Internal Contact Info] (accessible only to members of [kubernetes-release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Sheet](http://bit.ly/k8s-1-18-enhancements) -* Bug Triage Tracking Sheet: TODO -* CI Signal Report: TODO -* [Retrospective Document][Retrospective Document] -* [kubernetes/sig-release v1.18 milestone](https://github.com/kubernetes/kubernetes/milestone/44) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## tl;dr - -The 1.18 release cycle is proposed as follows: - -- **Monday, January 06, 2020**: Week 1 - Release cycle begins -- **Tuesday, January 28, 2020**: Week 4 - [Enhancements Freeze] -- **Thursday, March 05, 2020**: Week 9 - [Code Freeze] -- **Monday, March 16, 2020**: Week 11 - Docs must be completed and reviewed -- **Tuesday, March 24, 2020**: Week 12 - Kubernetes v1.18.0 released - - -## Timeline - - -| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | -| --- | --- | --- | --- | --- | -| Start of Release Cycle | Lead | Mon January 6 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Tue January 7 | | | -| Schedule finalized | Lead | Fri January 10 | | | -| Team finalized | Lead | Fri January 17 | week 2 | | -| 1.18.0-alpha.2 released | Branch Manager | Tue January 21 | | | -| Start Release Notes Draft | Release Notes Lead | Tue January 21 | week 3 | | -| **Begin [Enhancements Freeze]** (EOD PST) | Enhancements Lead | Tue January 28 | week 4 | [master-blocking], [master-informing] | -| 1.18.0-alpha.3 released | Branch Manager | Tue February 4 | week 5 | | -| 1.18.0-alpha.4 released | Branch Manager | Tue February 11 | week 6 | | -| release-1.14 jobs removed | Branch Manager | Tue February 18 | week 7 | | -| release-1.18 branch created | Branch Manager | Tue February 18 | | | -| release-1.18 jobs created | Branch Manager | Tue February 18 | | | -| 1.18.0-beta.0 released | Branch Manager | Tue February 18 | | | -| **Begin [Burndown]** (MWF meetings) | Lead | Mon February 24 | week 8 | [1.18-blocking], [master-blocking], [master-informing] | -| **Call for [Exceptions][Exception]** | Lead | Mon February 24 | | | -| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Mon February 24 | | | -| 1.18.0-beta.1 released | Branch Manager | Tue February 25 | | | -| Docs deadline - Open placeholder PRs | Docs Lead | Fri February 28 | | | -| **Begin [Code Freeze]** (EOD PST) | Branch Manager | Thu March 5 | week 9 | | -| Burndown Meetings daily| Lead | Mon March 9 | week 10 | | -| Docs deadline - PRs ready for review | Docs Lead | Mon March 9 | | | -| 1.18.0-beta.2 released | Branch Manager | Tue March 10 | | | -| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Mon March 16 | week 11 | | -| **Begin [Code Thaw]** (EOD PST) | Branch Manager | Tue March 17 | | [1.18-blocking] | -| 1.18.0-rc.1 released | Branch Manager | Tue March 17 | | | -| **Cherry Pick Deadline** (EOD PST) | Branch Manager | Thu March 19 | week 11 | | -| **v1.18.0 released** | Branch Manager | Tue March 24 | week 12 | | -| Release retrospective | Community | Thu April 16 | | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[k8s118-calendar]: https://bit.ly/k8s-release-cal -[Internal Contact Info]: http://bit.ly/k8s118-contacts -[Retrospective Document]: http://bit.ly/k8s118-retro - -[release phases document]: ../release_phases.md - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Code Thaw]: ../release_phases.md#code-thaw - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.18-blocking]: https://testgrid.k8s.io/sig-release-1.18-blocking#Summary - -[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +--- +title: "Kubernetes 1.18 Release" +weight: 98 +slug: "release" +--- + +# Kubernetes 1.18 : A Bit Quarky + +<img src="large-kube-collider.png" height=600 width=auto> + +The Kubernetes 1.18 release logo was inspired by the Large Hadron Collider +(LHC). + +**Why the LHC?** +The LHC is the world’s largest and most powerful particle accelerator. It is the result of the collaboration of thousands of scientists from around the world, all for the advancement of science. In a similar manner, Kubernetes has been a project that has united thousands of contributors from hundreds of organizations – all to work towards the same goal of improving cloud computing in all aspects! “A Bit Quarky” as the release name is meant to remind us that unconventional ideas can bring about great change and keeping an open mind to diversity will lead help us innovate. + +**About the designer** +Maru Lango is a designer currently based in Mexico City. While her area of expertise is Product Design, she also enjoys branding, illustration and visual experiments using CSS + JS and contributing to diversity efforts within the tech and design communities. You may find her in most social media as @marulango or check her website: https://marulango.com + + + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.18/README.md) +* [Release Team](https://git.k8s.io/sig-release/releases/release-1.18/release_team.md) +* [Meeting Minutes](http://bit.ly/k8s118-releasemtg) (join [kubernetes-sig-release@] to receive meeting invites) +* [v1.18 Release Calendar][k8s118-calendar] +* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail +* [Internal Contact Info][Internal Contact Info] (accessible only to members of [kubernetes-release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Sheet](http://bit.ly/k8s-1-18-enhancements) +* Bug Triage Tracking Sheet: TODO +* CI Signal Report: TODO +* [Retrospective Document][Retrospective Document] +* [kubernetes/sig-release v1.18 milestone](https://github.com/kubernetes/kubernetes/milestone/44) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## tl;dr + +The 1.18 release cycle is proposed as follows: + +- **Monday, January 06, 2020**: Week 1 - Release cycle begins +- **Tuesday, January 28, 2020**: Week 4 - [Enhancements Freeze] +- **Thursday, March 05, 2020**: Week 9 - [Code Freeze] +- **Monday, March 16, 2020**: Week 11 - Docs must be completed and reviewed +- **Tuesday, March 24, 2020**: Week 12 - Kubernetes v1.18.0 released + + +## Timeline + + +| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | +| --- | --- | --- | --- | --- | +| Start of Release Cycle | Lead | Mon January 6 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Tue January 7 | | | +| Schedule finalized | Lead | Fri January 10 | | | +| Team finalized | Lead | Fri January 17 | week 2 | | +| 1.18.0-alpha.2 released | Branch Manager | Tue January 21 | | | +| Start Release Notes Draft | Release Notes Lead | Tue January 21 | week 3 | | +| **Begin [Enhancements Freeze]** (EOD PST) | Enhancements Lead | Tue January 28 | week 4 | [master-blocking], [master-informing] | +| 1.18.0-alpha.3 released | Branch Manager | Tue February 4 | week 5 | | +| 1.18.0-alpha.4 released | Branch Manager | Tue February 11 | week 6 | | +| release-1.14 jobs removed | Branch Manager | Tue February 18 | week 7 | | +| release-1.18 branch created | Branch Manager | Tue February 18 | | | +| release-1.18 jobs created | Branch Manager | Tue February 18 | | | +| 1.18.0-beta.0 released | Branch Manager | Tue February 18 | | | +| **Begin [Burndown]** (MWF meetings) | Lead | Mon February 24 | week 8 | [1.18-blocking], [master-blocking], [master-informing] | +| **Call for [Exceptions][Exception]** | Lead | Mon February 24 | | | +| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Mon February 24 | | | +| 1.18.0-beta.1 released | Branch Manager | Tue February 25 | | | +| Docs deadline - Open placeholder PRs | Docs Lead | Fri February 28 | | | +| **Begin [Code Freeze]** (EOD PST) | Branch Manager | Thu March 5 | week 9 | | +| Burndown Meetings daily| Lead | Mon March 9 | week 10 | | +| Docs deadline - PRs ready for review | Docs Lead | Mon March 9 | | | +| 1.18.0-beta.2 released | Branch Manager | Tue March 10 | | | +| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Mon March 16 | week 11 | | +| **Begin [Code Thaw]** (EOD PST) | Branch Manager | Tue March 17 | | [1.18-blocking] | +| 1.18.0-rc.1 released | Branch Manager | Tue March 17 | | | +| **Cherry Pick Deadline** (EOD PST) | Branch Manager | Thu March 19 | week 11 | | +| **v1.18.0 released** | Branch Manager | Tue March 24 | week 12 | | +| Release retrospective | Community | Thu April 16 | | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[k8s118-calendar]: https://bit.ly/k8s-release-cal +[Internal Contact Info]: http://bit.ly/k8s118-contacts +[Retrospective Document]: http://bit.ly/k8s118-retro + +[release phases document]: ../release_phases.md + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Code Thaw]: ../release_phases.md#code-thaw + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.18-blocking]: https://testgrid.k8s.io/sig-release-1.18-blocking#Summary + +[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ diff --git a/releases/release-1.18/exceptions.yaml b/releases/release-1.18/exceptions.yaml index 1c13a500156..b97e6e099f9 100644 --- a/releases/release-1.18/exceptions.yaml +++ b/releases/release-1.18/exceptions.yaml @@ -1,74 +1,74 @@ -# Exceptions Requested in 1.18 -# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release -# Release Team Lead: Jorge Alarcon ([@alejandrox1](https://github.com/alejandrox1)) -# Release Team Lead Shadows: Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables)) / Taylor Dolezal ([@onlydole](https://github.com/onlydole)) - -# Enhancement Freeze Exceptions Requested in 1.18 - -enhancementFreeze: -- name: "Adding AppProtocol to Services and Endpoints" - issue: 1507 - date_requested: 2020-01-29 - date_reviewed: 2020-01-29 - thread: https://groups.google.com/forum/#!msg/kubernetes-release-team/9BoAzTyFP98/Sb7daSm_FQAJ - pull_requests: - - https://github.com/kubernetes/enhancements/pull/1525 - status: Approved -- name: "Pod Overhead: account resources tied to the sandbox, but not specific containers" - issue: 688 - date_requested: 2020-01-29 - date_reviewed: 2020-01-29 - thread: https://groups.google.com/forum/#!msg/kubernetes-release-team/7UvTquSxrCs/2o0MgPnBFQAJ - pull_requests: - - https://github.com/kubernetes/enhancements/pull/1526 - status: approved -- name: "Topology Manager" - issue: 693 - date_requested: 2020-01-29 - date_reviewed: 2020-01-29 - thread: https://groups.google.com/forum/#!msg/kubernetes-release-team/xFb1CbRxFTM/w9QT5vfGFQAJ - pull_requests: - - https://github.com/kubernetes/enhancements/pull/1527 - - https://github.com/kubernetes/test-infra/pull/16062 - - https://github.com/kubernetes/kubernetes/pull/86184 - - https://github.com/kubernetes/kubernetes/pull/87645 - - https://github.com/kubernetes/test-infra/pull/15599 - - https://github.com/kubernetes/kubernetes/pull/86184 - status: approved -- name: "Allow users to recover from volume expansion failure" - issue: 1516 - date_requested: 2020-01-29 - date_reviewed: 2020-01-29 - thread: https://groups.google.com/forum/#!msg/kubernetes-release-team/mTPPBQ6SwvI/AdY0mLLNFQAJ - pull_requests: - - https://github.com/kubernetes/enhancements/pull/1516 - status: denied -- name: "Configurable scale up/down velocity for HPA" - issue: 853 - date_requested: 2020-01-30 - date_reviewed: 2020-01-30 - thread: https://groups.google.com/forum/#!msg/kubernetes-release-team/A76BjjbVi1w/Zy0Lypf9EwAJ - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/74525 - status: approved -- name: "APIServer Dry Run" - issue: 576 - date_requested: 2020-01-30 - date_reviewed: 2020-01-30 - thread: https://groups.google.com/forum/#!topic/kubernetes-release-team/XhKNP7te_i0 - pull_requests: - - https://github.com/kubernetes/enhancements/pull/1535 - status: approved -- name: Extending Hugepage Feature - issue: 1539 - date_requested: 2020-02-06 - date_reviewed: 2020-02-06 - thread: https://groups.google.com/forum/#!msg/kubernetes-release-team/QpwEeqxbUG0/xFDcDLL-FgAJ - pull_requests: - - https://github.com/kubernetes/enhancements/pull/1540 - - https://github.com/kubernetes/kubernetes/pull/84051 - status: approved - - -# Code Freeze Exceptions Requested in 1.18 -codeFreeze: +# Exceptions Requested in 1.18 +# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release +# Release Team Lead: Jorge Alarcon ([@alejandrox1](https://github.com/alejandrox1)) +# Release Team Lead Shadows: Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables)) / Taylor Dolezal ([@onlydole](https://github.com/onlydole)) + +# Enhancement Freeze Exceptions Requested in 1.18 + +enhancementFreeze: +- name: "Adding AppProtocol to Services and Endpoints" + issue: 1507 + date_requested: 2020-01-29 + date_reviewed: 2020-01-29 + thread: https://groups.google.com/forum/#!msg/kubernetes-release-team/9BoAzTyFP98/Sb7daSm_FQAJ + pull_requests: + - https://github.com/kubernetes/enhancements/pull/1525 + status: Approved +- name: "Pod Overhead: account resources tied to the sandbox, but not specific containers" + issue: 688 + date_requested: 2020-01-29 + date_reviewed: 2020-01-29 + thread: https://groups.google.com/forum/#!msg/kubernetes-release-team/7UvTquSxrCs/2o0MgPnBFQAJ + pull_requests: + - https://github.com/kubernetes/enhancements/pull/1526 + status: approved +- name: "Topology Manager" + issue: 693 + date_requested: 2020-01-29 + date_reviewed: 2020-01-29 + thread: https://groups.google.com/forum/#!msg/kubernetes-release-team/xFb1CbRxFTM/w9QT5vfGFQAJ + pull_requests: + - https://github.com/kubernetes/enhancements/pull/1527 + - https://github.com/kubernetes/test-infra/pull/16062 + - https://github.com/kubernetes/kubernetes/pull/86184 + - https://github.com/kubernetes/kubernetes/pull/87645 + - https://github.com/kubernetes/test-infra/pull/15599 + - https://github.com/kubernetes/kubernetes/pull/86184 + status: approved +- name: "Allow users to recover from volume expansion failure" + issue: 1516 + date_requested: 2020-01-29 + date_reviewed: 2020-01-29 + thread: https://groups.google.com/forum/#!msg/kubernetes-release-team/mTPPBQ6SwvI/AdY0mLLNFQAJ + pull_requests: + - https://github.com/kubernetes/enhancements/pull/1516 + status: denied +- name: "Configurable scale up/down velocity for HPA" + issue: 853 + date_requested: 2020-01-30 + date_reviewed: 2020-01-30 + thread: https://groups.google.com/forum/#!msg/kubernetes-release-team/A76BjjbVi1w/Zy0Lypf9EwAJ + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/74525 + status: approved +- name: "APIServer Dry Run" + issue: 576 + date_requested: 2020-01-30 + date_reviewed: 2020-01-30 + thread: https://groups.google.com/forum/#!topic/kubernetes-release-team/XhKNP7te_i0 + pull_requests: + - https://github.com/kubernetes/enhancements/pull/1535 + status: approved +- name: Extending Hugepage Feature + issue: 1539 + date_requested: 2020-02-06 + date_reviewed: 2020-02-06 + thread: https://groups.google.com/forum/#!msg/kubernetes-release-team/QpwEeqxbUG0/xFDcDLL-FgAJ + pull_requests: + - https://github.com/kubernetes/enhancements/pull/1540 + - https://github.com/kubernetes/kubernetes/pull/84051 + status: approved + + +# Code Freeze Exceptions Requested in 1.18 +codeFreeze: diff --git a/releases/release-1.18/release-notes-draft.md b/releases/release-1.18/release-notes-draft.md index f1b1dad4e17..9b29b3292bd 100644 --- a/releases/release-1.18/release-notes-draft.md +++ b/releases/release-1.18/release-notes-draft.md @@ -1,471 +1,471 @@ -A complete changelog for the release notes is now hosted in a customizable -format at [https://relnotes.k8s.io][1]. Check it out and please give us your -feedback! - -[1]: https://relnotes.k8s.io/?releaseVersions=1.18.0 - -## What’s New (Major Themes) - -### Kubernetes Topology Manager Moves to Beta - Align Up! - -A beta feature of Kubernetes in release 1.18, the [Topology Manager feature](https://github.com/nolancon/website/blob/f4200307260ea3234540ef13ed80de325e1a7267/content/en/docs/tasks/administer-cluster/topology-manager.md) enables NUMA alignment of CPU and devices (such as SR-IOV VFs) that will allow your workload to run in an environment optimized for low-latency. Prior to the introduction of the Topology Manager, the CPU and Device Manager would make resource allocation decisions independent of each other. This could result in undesirable allocations on multi-socket systems, causing degraded performance on latency critical applications. - -### Serverside Apply - Beta 2 - -Server-side Apply was promoted to Beta in 1.16, but is now introducing a second Beta in 1.18. This new version will track and manage changes to fields of all new Kubernetes objects, allowing you to know what changed your resources and when. - -### Extending Ingress with and replacing a deprecated annotation with IngressClass - -In Kubernetes 1.18, there are two significant additions to Ingress: A new `pathType` field and a new `IngressClass` resource. The `pathType` field allows specifying how paths should be matched. In addition to the default `ImplementationSpecific` type, there are new `Exact` and `Prefix` path types. - -The `IngressClass` resource is used to describe a type of Ingress within a Kubernetes cluster. Ingresses can specify the class they are associated with by using a new `ingressClassName` field on Ingresses. This new resource and field replace the deprecated `kubernetes.io/ingress.class` annotation. - -### SIG CLI introduces kubectl debug - -SIG CLI was debating the need for a debug utility for quite some time already. With the development of [ephemeral containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/), it became more obvious how we can support developers with tooling built on top of `kubectl exec`. The addition of the `kubectl debug` [command](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/20190805-kubectl-debug.md) (it is alpha but your feedback is more than welcome), allows developers to easily debug their Pods inside the cluster. We think this addition is invaluable. This command allows one to create a temporary container which runs next to the Pod one is trying to examine, but also attaches to the console for interactive troubleshooting. - -### Introducing Windows CSI support alpha for Kubernetes - -With the release of Kubernetes 1.18, an alpha version of CSI Proxy for Windows is getting released. CSI proxy enables non-privileged (pre-approved) containers to perform privileged storage operations on Windows. CSI drivers can now be supported in Windows by leveraging CSI proxy. -SIG Storage made a lot of progress in the 1.18 release. -In particular, the following storage features are moving to GA in Kubernetes 1.18: -- Raw Block Support: Allow volumes to be surfaced as block devices inside containers instead of just mounted filesystems. -- Volume Cloning: Duplicate a PersistentVolumeClaim and underlying storage volume using the Kubernetes API via CSI. -- CSIDriver Kubernetes API Object: Simplifies CSI driver discovery and allows CSI Drivers to customize Kubernetes behavior. - -SIG Storage is also introducing the following new storage features as alpha in Kubernetes 1.18: -- Windows CSI Support: Enabling containerized CSI node plugins in Windows via new [CSIProxy](https://github.com/kubernetes-csi/csi-proxy) -- Recursive Volume Ownership OnRootMismatch Option: Add a new “OnRootMismatch” policy that can help shorten the mount time for volumes that require ownership change and have many directories and files. - -### Other notable announcements - -SIG Network is moving IPv6 to Beta in Kubernetes 1.18, after incrementing significantly the test coverage with new CI jobs. - -NodeLocal DNSCache is an add-on that runs a dnsCache pod as a daemonset to improve clusterDNS performance and reliability. The feature has been in Alpha since 1.13 release. The SIG Network is announcing the GA graduation of Node Local DNSCache [#1351](https://github.com/kubernetes/enhancements/pull/1351) - -## Known Issues - -No Known Issues Reported - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -#### kube-apiserver: -- in an `--encryption-provider-config` config file, an explicit `cacheSize: 0` parameter previously silently defaulted to caching 1000 keys. In Kubernetes 1.18, this now returns a config validation error. To disable caching, you can specify a negative cacheSize value in Kubernetes 1.18+. -- consumers of the 'certificatesigningrequests/approval' API must now have permission to 'approve' CSRs for the specific signer requested by the CSR. More information on the new signerName field and the required authorization can be found at https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests#authorization ([#88246](https://github.com/kubernetes/kubernetes/pull/88246), [@munnerz](https://github.com/munnerz)) [SIG API Machinery, Apps, Auth, CLI, Node and Testing] -- The following features are unconditionally enabled and the corresponding `--feature-gates` flags have been removed: `PodPriority`, `TaintNodesByCondition`, `ResourceQuotaScopeSelectors` and `ScheduleDaemonSetPods` ([#86210](https://github.com/kubernetes/kubernetes/pull/86210), [@draveness](https://github.com/draveness)) [SIG Apps and Scheduling] - -#### kubelet: -- `--enable-cadvisor-endpoints` is now disabled by default. If you need access to the cAdvisor v1 Json API please enable it explicitly in the kubelet command line. Please note that this flag was deprecated in 1.15 and will be removed in 1.19. ([#87440](https://github.com/kubernetes/kubernetes/pull/87440), [@dims](https://github.com/dims)) [SIG Instrumentation, Node and Testing] -- Promote CSIMigrationOpenStack to Beta (off by default since it requires installation of the OpenStack Cinder CSI Driver. The in-tree AWS OpenStack Cinder driver "kubernetes.io/cinder" was deprecated in 1.16 and will be removed in 1.20. Users should enable CSIMigration + CSIMigrationOpenStack features and install the OpenStack Cinder CSI Driver (https://github.com/kubernetes-sigs/cloud-provider-openstack) to avoid disruption to existing Pod and PVC objects at that time. Users should start using the OpenStack Cinder CSI Driver directly for any new volumes. ([#85637](https://github.com/kubernetes/kubernetes/pull/85637), [@dims](https://github.com/dims)) [SIG Cloud Provider] - -#### kubectl: -- `kubectl` and k8s.io/client-go no longer default to a server address of `http://localhost:8080`. If you own one of these legacy clusters, you are *strongly* encouraged to secure your server. If you cannot secure your server, you can set the `$KUBERNETES_MASTER` environment variable to `http://localhost:8080` to continue defaulting the server address. `kubectl` users can also set the server address using the `--server` flag, or in a kubeconfig file specified via `--kubeconfig` or `$KUBECONFIG`. ([#86173](https://github.com/kubernetes/kubernetes/pull/86173), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI and Testing] -- `kubectl run` has removed the previously deprecated generators, along with flags unrelated to creating pods. `kubectl run` now only creates pods. See specific `kubectl create` subcommands to create objects other than pods. -([#87077](https://github.com/kubernetes/kubernetes/pull/87077), [@soltysh](https://github.com/soltysh)) [SIG Architecture, CLI and Testing] -- The deprecated command `kubectl rolling-update` has been removed ([#88057](https://github.com/kubernetes/kubernetes/pull/88057), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG Architecture, CLI and Testing] - -#### client-go: -- Signatures on methods in generated clientsets, dynamic, metadata, and scale clients have been modified to accept `context.Context` as a first argument. Signatures of Create, Update, and Patch methods have been updated to accept CreateOptions, UpdateOptions and PatchOptions respectively. Signatures of Delete and DeleteCollection methods now accept DeleteOptions by value instead of by reference. Generated clientsets with the previous interface have been added in new "deprecated" packages to allow incremental migration to the new APIs. The deprecated packages will be removed in the 1.21 release. A tool is available at http://sigs.k8s.io/clientgofix to rewrite method invocations to the new signatures. - -- The following deprecated metrics are removed, please convert to the corresponding metrics: - - The following replacement metrics are available from v1.14.0: - - `rest_client_request_latency_seconds` -> `rest_client_request_duration_seconds` - - `scheduler_scheduling_latency_seconds` -> `scheduler_scheduling_duration_seconds ` - - `docker_operations` -> `docker_operations_total` - - `docker_operations_latency_microseconds` -> `docker_operations_duration_seconds` - - `docker_operations_errors` -> `docker_operations_errors_total` - - `docker_operations_timeout` -> `docker_operations_timeout_total` - - `network_plugin_operations_latency_microseconds` -> `network_plugin_operations_duration_seconds` - - `kubelet_pod_worker_latency_microseconds` -> `kubelet_pod_worker_duration_seconds` - - `kubelet_pod_start_latency_microseconds` -> `kubelet_pod_start_duration_seconds` - - `kubelet_cgroup_manager_latency_microseconds` -> `kubelet_cgroup_manager_duration_seconds` - - `kubelet_pod_worker_start_latency_microseconds` -> `kubelet_pod_worker_start_duration_seconds` - - `kubelet_pleg_relist_latency_microseconds` -> `kubelet_pleg_relist_duration_seconds` - - `kubelet_pleg_relist_interval_microseconds` -> `kubelet_pleg_relist_interval_seconds` - - `kubelet_eviction_stats_age_microseconds` -> `kubelet_eviction_stats_age_seconds` - - `kubelet_runtime_operations` -> `kubelet_runtime_operations_total` - - `kubelet_runtime_operations_latency_microseconds` -> `kubelet_runtime_operations_duration_seconds` - - `kubelet_runtime_operations_errors` -> `kubelet_runtime_operations_errors_total` - - `kubelet_device_plugin_registration_count` -> `kubelet_device_plugin_registration_total` - - `kubelet_device_plugin_alloc_latency_microseconds` -> `kubelet_device_plugin_alloc_duration_seconds` - - `scheduler_e2e_scheduling_latency_microseconds` -> `scheduler_e2e_scheduling_duration_seconds` - - `scheduler_scheduling_algorithm_latency_microseconds` -> `scheduler_scheduling_algorithm_duration_seconds` - - `scheduler_scheduling_algorithm_predicate_evaluation` -> `scheduler_scheduling_algorithm_predicate_evaluation_seconds` - - `scheduler_scheduling_algorithm_priority_evaluation` -> `scheduler_scheduling_algorithm_priority_evaluation_seconds` - - `scheduler_scheduling_algorithm_preemption_evaluation` -> `scheduler_scheduling_algorithm_preemption_evaluation_seconds` - - `scheduler_binding_latency_microseconds` -> `scheduler_binding_duration_seconds` - - `kubeproxy_sync_proxy_rules_latency_microseconds` -> `kubeproxy_sync_proxy_rules_duration_seconds` - - `apiserver_request_latencies` -> `apiserver_request_duration_seconds` - - `apiserver_dropped_requests` -> `apiserver_dropped_requests_total` - - `etcd_request_latencies_summary` -> `etcd_request_duration_seconds` - - `apiserver_storage_transformation_latencies_microseconds ` -> `apiserver_storage_transformation_duration_seconds` - - `apiserver_storage_data_key_generation_latencies_microseconds` -> `apiserver_storage_data_key_generation_duration_seconds` - - `apiserver_request_count` -> `apiserver_request_total` - - `apiserver_request_latencies_summary` - - The following replacement metrics are available from v1.15.0: - - `apiserver_storage_transformation_failures_total` -> `apiserver_storage_transformation_operations_total` ([#76496](https://github.com/kubernetes/kubernetes/pull/76496), [@danielqsj](https://github.com/danielqsj)) [SIG API Machinery, Cluster Lifecycle, Instrumentation, Network, Node and Scheduling] - -## Changes by Kind - -### Deprecation - -#### kube-apiserver: -- the following deprecated APIs can no longer be served: - - All resources under `apps/v1beta1` and `apps/v1beta2` - use `apps/v1` instead - - `daemonsets`, `deployments`, `replicasets` resources under `extensions/v1beta1` - use `apps/v1` instead - - `networkpolicies` resources under `extensions/v1beta1` - use `networking.k8s.io/v1` instead - - `podsecuritypolicies` resources under `extensions/v1beta1` - use `policy/v1beta1` instead ([#85903](https://github.com/kubernetes/kubernetes/pull/85903), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Cluster Lifecycle, Instrumentation and Testing] - -#### kube-controller-manager: -- Azure service annotation service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset has been deprecated. Its support would be removed in a future release. ([#88462](https://github.com/kubernetes/kubernetes/pull/88462), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] - -#### kubelet: -- The StreamingProxyRedirects feature and `--redirect-container-streaming` flag are deprecated, and will be removed in a future release. The default behavior (proxy streaming requests through the kubelet) will be the only supported option. If you are setting `--redirect-container-streaming=true`, then you must migrate off this configuration. The flag will no longer be able to be enabled starting in v1.20. If you are not setting the flag, no action is necessary. ([#88290](https://github.com/kubernetes/kubernetes/pull/88290), [@tallclair](https://github.com/tallclair)) [SIG API Machinery and Node] -- resource metrics endpoint `/metrics/resource/v1alpha1` as well as all metrics under this endpoint have been deprecated. Please convert to the following metrics emitted by endpoint `/metrics/resource`: - - scrape_error --> scrape_error - - node_cpu_usage_seconds_total --> node_cpu_usage_seconds - - node_memory_working_set_bytes --> node_memory_working_set_bytes - - container_cpu_usage_seconds_total --> container_cpu_usage_seconds - - container_memory_working_set_bytes --> container_memory_working_set_bytes - - scrape_error --> scrape_error - ([#86282](https://github.com/kubernetes/kubernetes/pull/86282), [@RainbowMango](https://github.com/RainbowMango)) [SIG Node] -- In a future release, kubelet will no longer create the CSI NodePublishVolume target directory, in accordance with the CSI specification. CSI drivers may need to be updated accordingly to properly create and process the target path. ([#75535](https://github.com/kubernetes/kubernetes/issues/75535)) [SIG Storage] - -#### kube-proxy: -- `--healthz-port` and `--metrics-port` flags are deprecated, please use `--healthz-bind-address` and `--metrics-bind-address` instead ([#88512](https://github.com/kubernetes/kubernetes/pull/88512), [@SataQiu](https://github.com/SataQiu)) [SIG Network] -- a new `EndpointSliceProxying` feature gate has been added to control the use of EndpointSlices in kube-proxy. The EndpointSlice feature gate that used to control this behavior no longer affects kube-proxy. This feature has been disabled by default. ([#86137](https://github.com/kubernetes/kubernetes/pull/86137), [@robscott](https://github.com/robscott)) - -#### kubeadm: -- command line option "kubelet-version" for `kubeadm upgrade node` has been deprecated and will be removed in a future release. ([#87942](https://github.com/kubernetes/kubernetes/pull/87942), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- deprecate the usage of the experimental flag '--use-api' under the 'kubeadm alpha certs renew' command. ([#88827](https://github.com/kubernetes/kubernetes/pull/88827), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- kube-dns is deprecated and will not be supported in a future version ([#86574](https://github.com/kubernetes/kubernetes/pull/86574), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- the `ClusterStatus` struct present in the kubeadm-config ConfigMap is deprecated and will be removed in a future version. It is going to be maintained by kubeadm until it gets removed. The same information can be found on `etcd` and `kube-apiserver` pod annotations, `kubeadm.kubernetes.io/etcd.advertise-client-urls` and `kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint` respectively. ([#87656](https://github.com/kubernetes/kubernetes/pull/87656), [@ereslibre](https://github.com/ereslibre)) [SIG Cluster Lifecycle] - -#### kubectl: -- the boolean and unset values for the --dry-run flag are deprecated and a value --dry-run=server|client|none will be required in a future version. ([#87580](https://github.com/kubernetes/kubernetes/pull/87580), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI] -- `kubectl apply --server-dry-run` is deprecated and replaced with --dry-run=server ([#87580](https://github.com/kubernetes/kubernetes/pull/87580), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI] - -#### add-ons: -- Remove cluster-monitoring addon ([#85512](https://github.com/kubernetes/kubernetes/pull/85512), [@serathius](https://github.com/serathius)) [SIG Cluster Lifecycle, Instrumentation, Scalability and Testing] - -#### kube-scheduler: -- The `scheduling_duration_seconds` summary metric is deprecated ([#86586](https://github.com/kubernetes/kubernetes/pull/86586), [@xiaoanyunfei](https://github.com/xiaoanyunfei)) [SIG Scheduling] -- The `scheduling_algorithm_predicate_evaluation_seconds` and - `scheduling_algorithm_priority_evaluation_seconds` metrics are deprecated, replaced by `framework_extension_point_duration_seconds[extension_point="Filter"]` and `framework_extension_point_duration_seconds[extension_point="Score"]`. ([#86584](https://github.com/kubernetes/kubernetes/pull/86584), [@xiaoanyunfei](https://github.com/xiaoanyunfei)) [SIG Scheduling] -- `AlwaysCheckAllPredicates` is deprecated in scheduler Policy API. ([#86369](https://github.com/kubernetes/kubernetes/pull/86369), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] - -#### Other deprecations: -- The k8s.io/node-api component is no longer updated. Instead, use the RuntimeClass types located within k8s.io/api, and the generated clients located within k8s.io/client-go ([#87503](https://github.com/kubernetes/kubernetes/pull/87503), [@liggitt](https://github.com/liggitt)) [SIG Node and Release] -- Removed the 'client' label from apiserver_request_total. ([#87669](https://github.com/kubernetes/kubernetes/pull/87669), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery and Instrumentation] - -### API Change - -#### New API types/versions: -- A new IngressClass resource has been added to enable better Ingress configuration. ([#88509](https://github.com/kubernetes/kubernetes/pull/88509), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps, CLI, Network, Node and Testing] -- The CSIDriver API has graduated to storage.k8s.io/v1, and is now available for use. ([#84814](https://github.com/kubernetes/kubernetes/pull/84814), [@huffmanca](https://github.com/huffmanca)) [SIG Storage] - -#### New API fields: -- autoscaling/v2beta2 HorizontalPodAutoscaler added a `spec.behavior` field that allows scale behavior to be configured. Behaviors are specified separately for scaling up and down. In each direction a stabilization window can be specified as well as a list of policies and how to select amongst them. Policies can limit the absolute number of pods added or removed, or the percentage of pods added or removed. ([#74525](https://github.com/kubernetes/kubernetes/pull/74525), [@gliush](https://github.com/gliush)) [SIG API Machinery, Apps, Autoscaling and CLI] -- Ingress: - - `spec.ingressClassName` replaces the deprecated `kubernetes.io/ingress.class` annotation, and allows associating an Ingress object with a particular controller. - - path definitions added a `pathType` field to allow indicating how the specified path should be matched against incoming requests. Valid values are `Exact`, `Prefix`, and `ImplementationSpecific` ([#88587](https://github.com/kubernetes/kubernetes/pull/88587), [@cmluciano](https://github.com/cmluciano)) [SIG Apps, Cluster Lifecycle and Network] -- The alpha feature `AnyVolumeDataSource` enables PersistentVolumeClaim objects to use the spec.dataSource field to reference a custom type as a data source ([#88636](https://github.com/kubernetes/kubernetes/pull/88636), [@bswartz](https://github.com/bswartz)) [SIG Apps and Storage] -- The alpha feature `ConfigurableFSGroupPolicy` enables v1 Pods to specify a spec.securityContext.fsGroupChangePolicy policy to control how file permissions are applied to volumes mounted into the pod. ([#88488](https://github.com/kubernetes/kubernetes/pull/88488), [@gnufied](https://github.com/gnufied)) [SIG Storage] -- The alpha feature `ServiceAppProtocol` enables setting an `appProtocol` field in ServicePort and EndpointPort definitions. ([#88503](https://github.com/kubernetes/kubernetes/pull/88503), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- The alpha feature `ImmutableEphemeralVolumes` enables an `immutable` field in both Secret and ConfigMap objects to mark their contents as immutable. ([#86377](https://github.com/kubernetes/kubernetes/pull/86377), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps, CLI and Testing] - -#### Other API changes: -- The beta feature `ServerSideApply` enables tracking and managing changed fields for all new objects, which means there will be `managedFields` in `metadata` with the list of managers and their owned fields. -- The alpha feature `ServiceAccountIssuerDiscovery` enables publishing OIDC discovery information and service account token verification keys at `/.well-known/openid-configuration` and `/openid/v1/jwks` endpoints by API servers configured to issue service account tokens. ([#80724](https://github.com/kubernetes/kubernetes/pull/80724), [@cceckman](https://github.com/cceckman)) [SIG API Machinery, Auth, Cluster Lifecycle and Testing] -- CustomResourceDefinition schemas that use `x-kubernetes-list-map-keys` to specify properties that uniquely identify list items must make those properties required or have a default value, to ensure those properties are present for all list items. See https://kubernetes.io/docs/reference/using-api/api-concepts/#merge-strategy for details. ([#88076](https://github.com/kubernetes/kubernetes/pull/88076), [@eloyekunle](https://github.com/eloyekunle)) [SIG API Machinery and Testing] -- CustomResourceDefinition schemas that use `x-kubernetes-list-type: map` or `x-kubernetes-list-type: set` now enable validation that the list items in the corresponding custom resources are unique. ([#84920](https://github.com/kubernetes/kubernetes/pull/84920), [@sttts](https://github.com/sttts)) [SIG API Machinery] - -#### Configuration file changes: - -#### kube-apiserver: -- The `--egress-selector-config-file` configuration file now accepts an apiserver.k8s.io/v1beta1 EgressSelectorConfiguration configuration object, and has been updated to allow specifying HTTP or GRPC connections to the network proxy ([#87179](https://github.com/kubernetes/kubernetes/pull/87179), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Cloud Provider and Cluster Lifecycle] - -#### kube-scheduler: -- A kubescheduler.config.k8s.io/v1alpha2 configuration file version is now accepted, with support for multiple scheduling profiles ([#87628](https://github.com/kubernetes/kubernetes/pull/87628), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] - - HardPodAffinityWeight moved from a top level ComponentConfig parameter to a PluginConfig parameter of InterPodAffinity Plugin in `kubescheduler.config.k8s.io/v1alpha2` ([#88002](https://github.com/kubernetes/kubernetes/pull/88002), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling and Testing] - - Kube-scheduler can run more than one scheduling profile. Given a pod, the profile is selected by using its `.spec.schedulerName`. ([#88285](https://github.com/kubernetes/kubernetes/pull/88285), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps, Scheduling and Testing] - - Scheduler Extenders can now be configured in the v1alpha2 component config ([#88768](https://github.com/kubernetes/kubernetes/pull/88768), [@damemi](https://github.com/damemi)) [SIG Release, Scheduling and Testing] - - The PostFilter of scheduler framework is renamed to PreScore in kubescheduler.config.k8s.io/v1alpha2. ([#87751](https://github.com/kubernetes/kubernetes/pull/87751), [@skilxn-go](https://github.com/skilxn-go)) [SIG Scheduling and Testing] - -#### kube-proxy: -- Added kube-proxy flags `--ipvs-tcp-timeout`, `--ipvs-tcpfin-timeout`, `--ipvs-udp-timeout` to configure IPVS connection timeouts. ([#85517](https://github.com/kubernetes/kubernetes/pull/85517), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cluster Lifecycle and Network] -- Added optional `--detect-local-mode` flag to kube-proxy. Valid values are "ClusterCIDR" (default matching previous behavior) and "NodeCIDR" ([#87748](https://github.com/kubernetes/kubernetes/pull/87748), [@satyasm](https://github.com/satyasm)) [SIG Cluster Lifecycle, Network and Scheduling] -- Kube-controller-manager and kube-scheduler expose profiling by default to match the kube-apiserver. Use `--enable-profiling=false` to disable. ([#88663](https://github.com/kubernetes/kubernetes/pull/88663), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Cloud Provider and Scheduling] -- Kubelet pod resources API now provides the information about active pods only. ([#79409](https://github.com/kubernetes/kubernetes/pull/79409), [@takmatsu](https://github.com/takmatsu)) [SIG Node] -- New flag `--endpointslice-updates-batch-period` in kube-controller-manager can be used to reduce the number of endpointslice updates generated by pod changes. ([#88745](https://github.com/kubernetes/kubernetes/pull/88745), [@mborsz](https://github.com/mborsz)) [SIG API Machinery, Apps and Network] -- New flag `--show-hidden-metrics-for-version` in kube-proxy, kubelet, kube-controller-manager, and kube-scheduler can be used to show all hidden metrics that are deprecated in the previous minor release. ([#85279](https://github.com/kubernetes/kubernetes/pull/85279), [@RainbowMango](https://github.com/RainbowMango)) [SIG Cluster Lifecycle and Network] - -#### Features graduated to beta: - - StartupProbe ([#83437](https://github.com/kubernetes/kubernetes/pull/83437), [@matthyx](https://github.com/matthyx)) [SIG Node, Scalability and Testing] - -#### Features graduated to GA: - - VolumePVCDataSource ([#88686](https://github.com/kubernetes/kubernetes/pull/88686), [@j-griffith](https://github.com/j-griffith)) [SIG Storage] - - TaintBasedEvictions ([#87487](https://github.com/kubernetes/kubernetes/pull/87487), [@skilxn-go](https://github.com/skilxn-go)) [SIG API Machinery, Apps, Node, Scheduling and Testing] - - BlockVolume and CSIBlockVolume ([#88673](https://github.com/kubernetes/kubernetes/pull/88673), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] - - Windows RunAsUserName ([#87790](https://github.com/kubernetes/kubernetes/pull/87790), [@marosset](https://github.com/marosset)) [SIG Apps and Windows] -- The following feature gates are removed, because the associated features were unconditionally enabled in previous releases: CustomResourceValidation, CustomResourceSubresources, CustomResourceWebhookConversion, CustomResourcePublishOpenAPI, CustomResourceDefaulting ([#87475](https://github.com/kubernetes/kubernetes/pull/87475), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] - -### Feature - -- API request throttling (due to a high rate of requests) is now reported in client-go logs at log level 2. The messages are of the form:`Throttling request took 1.50705208s, request: GET:<URL>` The presence of these messages may indicate to the administrator the need to tune the cluster accordingly. ([#87740](https://github.com/kubernetes/kubernetes/pull/87740), [@jennybuckley](https://github.com/jennybuckley)) [SIG API Machinery] -- Add support for mount options to the FC volume plugin ([#87499](https://github.com/kubernetes/kubernetes/pull/87499), [@ejweber](https://github.com/ejweber)) [SIG Storage] -- Added a config-mode flag in azure auth module to enable getting AAD token without spn: prefix in audience claim. When it's not specified, the default behavior doesn't change. ([#87630](https://github.com/kubernetes/kubernetes/pull/87630), [@weinong](https://github.com/weinong)) [SIG API Machinery, Auth, CLI and Cloud Provider] -- Allow for configuration of CoreDNS replica count ([#85837](https://github.com/kubernetes/kubernetes/pull/85837), [@pickledrick](https://github.com/pickledrick)) [SIG Cluster Lifecycle] -- Allow user to specify resource using --filename flag when invoking kubectl exec ([#88460](https://github.com/kubernetes/kubernetes/pull/88460), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] -- Apiserver added a new flag --goaway-chance which is the fraction of requests that will be closed gracefully(GOAWAY) to prevent HTTP/2 clients from getting stuck on a single apiserver. ([#88567](https://github.com/kubernetes/kubernetes/pull/88567), [@answer1991](https://github.com/answer1991)) [SIG API Machinery] -- Azure Cloud Provider now supports using Azure network resources (Virtual Network, Load Balancer, Public IP, Route Table, Network Security Group, etc.) in different AAD Tenant and Subscription than those for the Kubernetes cluster. To use the feature, please reference https://github.com/kubernetes-sigs/cloud-provider-azure/blob/master/docs/cloud-provider-config.md#host-network-resources-in-different-aad-tenant-and-subscription. ([#88384](https://github.com/kubernetes/kubernetes/pull/88384), [@bowen5](https://github.com/bowen5)) [SIG Cloud Provider] -- Azure VMSS/VMSSVM clients now suppress requests on throttling ([#86740](https://github.com/kubernetes/kubernetes/pull/86740), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Azure cloud provider cache TTL is configurable, list of the azure cloud provider is as following: - - "availabilitySetNodesCacheTTLInSeconds" - - "vmssCacheTTLInSeconds" - - "vmssVirtualMachinesCacheTTLInSeconds" - - "vmCacheTTLInSeconds" - - "loadBalancerCacheTTLInSeconds" - - "nsgCacheTTLInSeconds" - - "routeTableCacheTTLInSeconds" - ([#86266](https://github.com/kubernetes/kubernetes/pull/86266), [@zqingqing1](https://github.com/zqingqing1)) [SIG Cloud Provider] -- Azure global rate limit is switched to per-client. A set of new rate limit configure options are introduced, including routeRateLimit, SubnetsRateLimit, InterfaceRateLimit, RouteTableRateLimit, LoadBalancerRateLimit, PublicIPAddressRateLimit, SecurityGroupRateLimit, VirtualMachineRateLimit, StorageAccountRateLimit, DiskRateLimit, SnapshotRateLimit, VirtualMachineScaleSetRateLimit and VirtualMachineSizeRateLimit. The original rate limit options would be default values for those new client's rate limiter. ([#86515](https://github.com/kubernetes/kubernetes/pull/86515), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Azure network and VM clients now suppress requests on throttling ([#87122](https://github.com/kubernetes/kubernetes/pull/87122), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Azure storage clients now suppress requests on throttling ([#87306](https://github.com/kubernetes/kubernetes/pull/87306), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Azure: add support for single stack IPv6 ([#88448](https://github.com/kubernetes/kubernetes/pull/88448), [@aramase](https://github.com/aramase)) [SIG Cloud Provider] -- DefaultConstraints can be specified for PodTopologySpread Plugin in the scheduler’s ComponentConfig ([#88671](https://github.com/kubernetes/kubernetes/pull/88671), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- DisableAvailabilitySetNodes is added to avoid VM list for VMSS clusters. It should only be used when vmType is "vmss" and all the nodes (including control plane nodes) are VMSS virtual machines. ([#87685](https://github.com/kubernetes/kubernetes/pull/87685), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Elasticsearch supports automatically setting the advertise address ([#85944](https://github.com/kubernetes/kubernetes/pull/85944), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle and Instrumentation] -- EndpointSlices will now be enabled by default. A new `EndpointSliceProxying` feature gate determines if kube-proxy will use EndpointSlices, this is disabled by default. ([#86137](https://github.com/kubernetes/kubernetes/pull/86137), [@robscott](https://github.com/robscott)) [SIG Network] -- Kube-proxy: Added dual-stack IPv4/IPv6 support to the iptables proxier. ([#82462](https://github.com/kubernetes/kubernetes/pull/82462), [@vllry](https://github.com/vllry)) [SIG Network] -- Kubeadm now supports automatic calculations of dual-stack node cidr masks to kube-controller-manager. ([#85609](https://github.com/kubernetes/kubernetes/pull/85609), [@Arvinderpal](https://github.com/Arvinderpal)) [SIG Cluster Lifecycle] -- Kubeadm: add a upgrade health check that deploys a Job ([#81319](https://github.com/kubernetes/kubernetes/pull/81319), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: add the experimental feature gate PublicKeysECDSA that can be used to create a - cluster with ECDSA certificates from "kubeadm init". Renewal of existing ECDSA certificates is also supported using "kubeadm alpha certs renew", but not switching between the RSA and ECDSA algorithms on the fly or during upgrades. ([#86953](https://github.com/kubernetes/kubernetes/pull/86953), [@rojkov](https://github.com/rojkov)) [SIG API Machinery, Auth and Cluster Lifecycle] -- Kubeadm: implemented structured output of 'kubeadm config images list' command in JSON, YAML, Go template and JsonPath formats ([#86810](https://github.com/kubernetes/kubernetes/pull/86810), [@bart0sh](https://github.com/bart0sh)) [SIG Cluster Lifecycle] -- Kubeadm: on kubeconfig certificate renewal, keep the embedded CA in sync with the one on disk ([#88052](https://github.com/kubernetes/kubernetes/pull/88052), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: reject a node joining the cluster if a node with the same name already exists ([#81056](https://github.com/kubernetes/kubernetes/pull/81056), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: support Windows specific kubelet flags in kubeadm-flags.env ([#88287](https://github.com/kubernetes/kubernetes/pull/88287), [@gab-satchi](https://github.com/gab-satchi)) [SIG Cluster Lifecycle and Windows] -- Kubeadm: support automatic retry after failing to pull image ([#86899](https://github.com/kubernetes/kubernetes/pull/86899), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubeadm: upgrade supports fallback to the nearest known etcd version if an unknown k8s version is passed ([#88373](https://github.com/kubernetes/kubernetes/pull/88373), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubectl/drain: add disable-eviction option.Force drain to use delete, even if eviction is supported. This will bypass checking PodDisruptionBudgets, and should be used with caution. ([#85571](https://github.com/kubernetes/kubernetes/pull/85571), [@michaelgugino](https://github.com/michaelgugino)) [SIG CLI] -- Kubectl/drain: add skip-wait-for-delete-timeout option. If a pod’s `DeletionTimestamp` is older than N seconds, skip waiting for the pod. Seconds must be greater than 0 to skip. ([#85577](https://github.com/kubernetes/kubernetes/pull/85577), [@michaelgugino](https://github.com/michaelgugino)) [SIG CLI] -- Option `preConfiguredBackendPoolLoadBalancerTypes` is added to azure cloud provider for the pre-configured load balancers, possible values: `""`, `"internal"`, `"external"`,`"all"` ([#86338](https://github.com/kubernetes/kubernetes/pull/86338), [@gossion](https://github.com/gossion)) [SIG Cloud Provider] -- PodTopologySpread plugin now excludes terminatingPods when making scheduling decisions. ([#87845](https://github.com/kubernetes/kubernetes/pull/87845), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] -- Provider/azure: Network security groups can now be in a separate resource group. ([#87035](https://github.com/kubernetes/kubernetes/pull/87035), [@CecileRobertMichon](https://github.com/CecileRobertMichon)) [SIG Cloud Provider] -- SafeSysctlWhitelist: add net.ipv4.ping_group_range ([#85463](https://github.com/kubernetes/kubernetes/pull/85463), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Auth] -- Scheduler framework permit plugins now run at the end of the scheduling cycle, after reserve plugins. Waiting on permit will remain in the beginning of the binding cycle. ([#88199](https://github.com/kubernetes/kubernetes/pull/88199), [@mateuszlitwin](https://github.com/mateuszlitwin)) [SIG Scheduling] -- Scheduler: Add DefaultBinder plugin ([#87430](https://github.com/kubernetes/kubernetes/pull/87430), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling and Testing] -- Skip default spreading scoring plugin for pods that define TopologySpreadConstraints ([#87566](https://github.com/kubernetes/kubernetes/pull/87566), [@skilxn-go](https://github.com/skilxn-go)) [SIG Scheduling] -- The kubectl --dry-run flag now accepts the values 'client', 'server', and 'none', to support client-side and server-side dry-run strategies. The boolean and unset values for the --dry-run flag are deprecated and a value will be required in a future version. ([#87580](https://github.com/kubernetes/kubernetes/pull/87580), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI] -- Support server-side dry-run in kubectl with --dry-run=server for commands including apply, patch, create, run, annotate, label, set, autoscale, drain, rollout undo, and expose. ([#87714](https://github.com/kubernetes/kubernetes/pull/87714), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG API Machinery, CLI and Testing] -- Add --dry-run=server|client to kubectl delete, taint, replace ([#88292](https://github.com/kubernetes/kubernetes/pull/88292), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI and Testing] -- The feature PodTopologySpread (feature gate `EvenPodsSpread`) has been enabled by default in 1.18. ([#88105](https://github.com/kubernetes/kubernetes/pull/88105), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] -- The kubelet and the default docker runtime now support running ephemeral containers in the Linux process namespace of a target container. Other container runtimes must implement support for this feature before it will be available for that runtime. ([#84731](https://github.com/kubernetes/kubernetes/pull/84731), [@verb](https://github.com/verb)) [SIG Node] -- The underlying format of the `CPUManager` state file has changed. Upgrades should be seamless, but any third-party tools that rely on reading the previous format need to be updated. ([#84462](https://github.com/kubernetes/kubernetes/pull/84462), [@klueska](https://github.com/klueska)) [SIG Node and Testing] -- Update CNI version to v0.8.5 ([#78819](https://github.com/kubernetes/kubernetes/pull/78819), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Cluster Lifecycle, Network, Release and Testing] -- Webhooks have alpha support for network proxy ([#85870](https://github.com/kubernetes/kubernetes/pull/85870), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Auth and Testing] -- When client certificate files are provided, reload files for new connections, and close connections when a certificate changes. ([#79083](https://github.com/kubernetes/kubernetes/pull/79083), [@jackkleeman](https://github.com/jackkleeman)) [SIG API Machinery, Auth, Node and Testing] -- When deleting objects using kubectl with the --force flag, you are no longer required to also specify --grace-period=0. ([#87776](https://github.com/kubernetes/kubernetes/pull/87776), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] -- Windows nodes on GCE can use virtual TPM-based authentication to the control plane. ([#85466](https://github.com/kubernetes/kubernetes/pull/85466), [@pjh](https://github.com/pjh)) [SIG Cluster Lifecycle] -- You can now pass "--node-ip ::" to kubelet to indicate that it should autodetect an IPv6 address to use as the node's primary address. ([#85850](https://github.com/kubernetes/kubernetes/pull/85850), [@danwinship](https://github.com/danwinship)) [SIG Cloud Provider, Network and Node] -- `kubectl` now contains a `kubectl alpha debug` command. This command allows attaching an ephemeral container to a running pod for the purposes of debugging. ([#88004](https://github.com/kubernetes/kubernetes/pull/88004), [@verb](https://github.com/verb)) [SIG CLI] -- TLS Server Name overrides can now be specified in a kubeconfig file and via --tls-server-name in kubectl ([#88769](https://github.com/kubernetes/kubernetes/pull/88769), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth and CLI] - -#### Metrics: -- Add `rest_client_rate_limiter_duration_seconds` metric to component-base to track client side rate limiter latency in seconds. Broken down by verb and URL. ([#88134](https://github.com/kubernetes/kubernetes/pull/88134), [@jennybuckley](https://github.com/jennybuckley)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] -- Added two client certificate metrics for exec auth: - - `rest_client_certificate_expiration_seconds` a gauge reporting the lifetime of the current client certificate. Reports the time of expiry in seconds since January 1, 1970 UTC. - - `rest_client_certificate_rotation_age` a histogram reporting the age of a just rotated client certificate in seconds. ([#84382](https://github.com/kubernetes/kubernetes/pull/84382), [@sambdavidson](https://github.com/sambdavidson)) [SIG API Machinery, Auth, Cluster Lifecycle and Instrumentation] -- Controller manager serve workqueue metrics ([#87967](https://github.com/kubernetes/kubernetes/pull/87967), [@zhan849](https://github.com/zhan849)) [SIG API Machinery] -- Following metrics have been turned off: - - kubelet_pod_worker_latency_microseconds - - kubelet_pod_start_latency_microseconds - - kubelet_cgroup_manager_latency_microseconds - - kubelet_pod_worker_start_latency_microseconds - - kubelet_pleg_relist_latency_microseconds - - kubelet_pleg_relist_interval_microseconds - - kubelet_eviction_stats_age_microseconds - - kubelet_runtime_operations - - kubelet_runtime_operations_latency_microseconds - - kubelet_runtime_operations_errors - - kubelet_device_plugin_registration_count - - kubelet_device_plugin_alloc_latency_microseconds - - kubelet_docker_operations - - kubelet_docker_operations_latency_microseconds - - kubelet_docker_operations_errors - - kubelet_docker_operations_timeout - - network_plugin_operations_latency_microseconds ([#83841](https://github.com/kubernetes/kubernetes/pull/83841), [@RainbowMango](https://github.com/RainbowMango)) [SIG Network and Node] -- Kube-apiserver metrics will now include request counts, latencies, and response sizes for /healthz, /livez, and /readyz requests. ([#83598](https://github.com/kubernetes/kubernetes/pull/83598), [@jktomer](https://github.com/jktomer)) [SIG API Machinery] -- Kubelet now exports a `server_expiration_renew_failure` and `client_expiration_renew_failure` metric counter if the certificate rotations cannot be performed. ([#84614](https://github.com/kubernetes/kubernetes/pull/84614), [@rphillips](https://github.com/rphillips)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node and Release] -- Kubelet: the metric process_start_time_seconds be marked as with the ALPHA stability level. ([#85446](https://github.com/kubernetes/kubernetes/pull/85446), [@RainbowMango](https://github.com/RainbowMango)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Node] -- New metric `kubelet_pleg_last_seen_seconds` to aid diagnosis of PLEG not healthy issues. ([#86251](https://github.com/kubernetes/kubernetes/pull/86251), [@bboreham](https://github.com/bboreham)) [SIG Node] - -### Other (Bug, Cleanup or Flake) - -- Fixed a regression with clients prior to 1.15 not being able to update podIP in pod status, or podCIDR in node spec, against >= 1.16 API servers ([#88505](https://github.com/kubernetes/kubernetes/pull/88505), [@liggitt](https://github.com/liggitt)) [SIG Apps and Network] -- Fixed "kubectl describe statefulsets.apps" printing garbage for rolling update partition ([#85846](https://github.com/kubernetes/kubernetes/pull/85846), [@phil9909](https://github.com/phil9909)) [SIG CLI] -- Add a event to PV when filesystem on PV does not match actual filesystem on disk ([#86982](https://github.com/kubernetes/kubernetes/pull/86982), [@gnufied](https://github.com/gnufied)) [SIG Storage] -- Add azure disk WriteAccelerator support ([#87945](https://github.com/kubernetes/kubernetes/pull/87945), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Add delays between goroutines for vm instance update ([#88094](https://github.com/kubernetes/kubernetes/pull/88094), [@aramase](https://github.com/aramase)) [SIG Cloud Provider] -- Add init containers log to cluster dump info. ([#88324](https://github.com/kubernetes/kubernetes/pull/88324), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] -- Addons: elasticsearch discovery supports IPv6 ([#85543](https://github.com/kubernetes/kubernetes/pull/85543), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle and Instrumentation] -- Adds "volume.beta.kubernetes.io/migrated-to" annotation to PV's and PVC's when they are migrated to signal external provisioners to pick up those objects for Provisioning and Deleting. ([#87098](https://github.com/kubernetes/kubernetes/pull/87098), [@davidz627](https://github.com/davidz627)) [SIG Storage] -- All api-server log request lines in a more greppable format. ([#87203](https://github.com/kubernetes/kubernetes/pull/87203), [@lavalamp](https://github.com/lavalamp)) [SIG API Machinery] -- Azure VMSS LoadBalancerBackendAddressPools updating has been improved with sequential-sync + concurrent-async requests. ([#88699](https://github.com/kubernetes/kubernetes/pull/88699), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Azure cloud provider now obtains AAD token who audience claim will not have spn: prefix ([#87590](https://github.com/kubernetes/kubernetes/pull/87590), [@weinong](https://github.com/weinong)) [SIG Cloud Provider] -- AzureFile and CephFS use the new Mount library that prevents logging of sensitive mount options. ([#88684](https://github.com/kubernetes/kubernetes/pull/88684), [@saad-ali](https://github.com/saad-ali)) [SIG Storage] -- Bind dns-horizontal containers to linux nodes to avoid Windows scheduling on kubernetes cluster includes linux nodes and windows nodes ([#83364](https://github.com/kubernetes/kubernetes/pull/83364), [@wawa0210](https://github.com/wawa0210)) [SIG Cluster Lifecycle and Windows] -- Bind kube-dns containers to linux nodes to avoid Windows scheduling ([#83358](https://github.com/kubernetes/kubernetes/pull/83358), [@wawa0210](https://github.com/wawa0210)) [SIG Cluster Lifecycle and Windows] -- Bind metadata-agent containers to linux nodes to avoid Windows scheduling on kubernetes cluster includes linux nodes and windows nodes ([#83363](https://github.com/kubernetes/kubernetes/pull/83363), [@wawa0210](https://github.com/wawa0210)) [SIG Cluster Lifecycle, Instrumentation and Windows] -- Bind metrics-server containers to linux nodes to avoid Windows scheduling on kubernetes cluster includes linux nodes and windows nodes ([#83362](https://github.com/kubernetes/kubernetes/pull/83362), [@wawa0210](https://github.com/wawa0210)) [SIG Cluster Lifecycle, Instrumentation and Windows] -- Bug fixes: Make sure we include latest packages node #351 (@caseydavenport) ([#84163](https://github.com/kubernetes/kubernetes/pull/84163), [@david-tigera](https://github.com/david-tigera)) [SIG Cluster Lifecycle] -- CPU limits are now respected for Windows containers. If a node is over-provisioned, no weighting is used, only limits are respected. ([#86101](https://github.com/kubernetes/kubernetes/pull/86101), [@PatrickLang](https://github.com/PatrickLang)) [SIG Node, Testing and Windows] -- Changed core_pattern on COS nodes to be an absolute path. ([#86329](https://github.com/kubernetes/kubernetes/pull/86329), [@mml](https://github.com/mml)) [SIG Cluster Lifecycle and Node] -- Client-go certificate manager rotation gained the ability to preserve optional intermediate chains accompanying issued certificates ([#88744](https://github.com/kubernetes/kubernetes/pull/88744), [@jackkleeman](https://github.com/jackkleeman)) [SIG API Machinery and Auth] -- Cloud provider config CloudProviderBackoffMode has been removed since it won't be used anymore. ([#88463](https://github.com/kubernetes/kubernetes/pull/88463), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Conformance image now depends on stretch-slim instead of debian-hyperkube-base as that image is being deprecated and removed. ([#88702](https://github.com/kubernetes/kubernetes/pull/88702), [@dims](https://github.com/dims)) [SIG Cluster Lifecycle, Release and Testing] -- Deprecate --generator flag from kubectl create commands ([#88655](https://github.com/kubernetes/kubernetes/pull/88655), [@soltysh](https://github.com/soltysh)) [SIG CLI] -- During initialization phase (preflight), kubeadm now verifies the presence of the conntrack executable ([#85857](https://github.com/kubernetes/kubernetes/pull/85857), [@hnanni](https://github.com/hnanni)) [SIG Cluster Lifecycle] -- EndpointSlice should not contain endpoints for terminating pods ([#89056](https://github.com/kubernetes/kubernetes/pull/89056), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps and Network] -- Evictions due to pods breaching their ephemeral storage limits are now recorded by the `kubelet_evictions` metric and can be alerted on. ([#87906](https://github.com/kubernetes/kubernetes/pull/87906), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node] -- Filter published OpenAPI schema by making nullable, required fields non-required in order to avoid kubectl to wrongly reject null values. ([#85722](https://github.com/kubernetes/kubernetes/pull/85722), [@sttts](https://github.com/sttts)) [SIG API Machinery] -- Fix /readyz to return error immediately after a shutdown is initiated, before the --shutdown-delay-duration has elapsed. ([#88911](https://github.com/kubernetes/kubernetes/pull/88911), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] -- Fix API Server potential memory leak issue in processing watch request. ([#85410](https://github.com/kubernetes/kubernetes/pull/85410), [@answer1991](https://github.com/answer1991)) [SIG API Machinery] -- Fix EndpointSlice controller race condition and ensure that it handles external changes to EndpointSlices. ([#85703](https://github.com/kubernetes/kubernetes/pull/85703), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- Fix IPv6 addresses lost issue in pure ipv6 vsphere environment ([#86001](https://github.com/kubernetes/kubernetes/pull/86001), [@hubv](https://github.com/hubv)) [SIG Cloud Provider] -- Fix LoadBalancer rule checking so that no unexpected LoadBalancer updates are made ([#85990](https://github.com/kubernetes/kubernetes/pull/85990), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Fix a bug in kube-proxy that caused it to crash when using load balancers with a different IP family ([#87117](https://github.com/kubernetes/kubernetes/pull/87117), [@aojea](https://github.com/aojea)) [SIG Network] -- Fix a bug in port-forward: named port not working with service ([#85511](https://github.com/kubernetes/kubernetes/pull/85511), [@oke-py](https://github.com/oke-py)) [SIG CLI] -- Fix a bug in the dual-stack IPVS proxier where stale IPv6 endpoints were not being cleaned up ([#87695](https://github.com/kubernetes/kubernetes/pull/87695), [@andrewsykim](https://github.com/andrewsykim)) [SIG Network] -- Fix a bug that orphan revision cannot be adopted and statefulset cannot be synced ([#86801](https://github.com/kubernetes/kubernetes/pull/86801), [@likakuli](https://github.com/likakuli)) [SIG Apps] -- Fix a bug where ExternalTrafficPolicy is not applied to service ExternalIPs. ([#88786](https://github.com/kubernetes/kubernetes/pull/88786), [@freehan](https://github.com/freehan)) [SIG Network] -- Fix a bug where kubenet fails to parse the tc output. ([#83572](https://github.com/kubernetes/kubernetes/pull/83572), [@chendotjs](https://github.com/chendotjs)) [SIG Network] -- Fix a regression in kubenet that prevent pods to obtain ip addresses ([#85993](https://github.com/kubernetes/kubernetes/pull/85993), [@chendotjs](https://github.com/chendotjs)) [SIG Network and Node] -- Fix azure file AuthorizationFailure ([#85475](https://github.com/kubernetes/kubernetes/pull/85475), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fix bug where EndpointSlice controller would attempt to modify shared objects. ([#85368](https://github.com/kubernetes/kubernetes/pull/85368), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps and Network] -- Fix handling of aws-load-balancer-security-groups annotation. Security-Groups assigned with this annotation are no longer modified by kubernetes which is the expected behaviour of most users. Also no unnecessary Security-Groups are created anymore if this annotation is used. ([#83446](https://github.com/kubernetes/kubernetes/pull/83446), [@Elias481](https://github.com/Elias481)) [SIG Cloud Provider] -- Fix invalid VMSS updates due to incorrect cache ([#89002](https://github.com/kubernetes/kubernetes/pull/89002), [@ArchangelSDY](https://github.com/ArchangelSDY)) [SIG Cloud Provider] -- Fix isCurrentInstance for Windows by removing the dependency of hostname. ([#89138](https://github.com/kubernetes/kubernetes/pull/89138), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Fix issue #85805 about a resource not found in azure cloud provider when LoadBalancer specified in another resource group. ([#86502](https://github.com/kubernetes/kubernetes/pull/86502), [@levimm](https://github.com/levimm)) [SIG Cloud Provider] -- Fix kubectl annotate error when local=true is set ([#86952](https://github.com/kubernetes/kubernetes/pull/86952), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] -- Fix kubectl create deployment image name ([#86636](https://github.com/kubernetes/kubernetes/pull/86636), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] -- Fix `kubectl drain ignore` daemonsets and others. ([#87361](https://github.com/kubernetes/kubernetes/pull/87361), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] -- Fix missing "apiVersion" for "involvedObject" in Events for Nodes. ([#87537](https://github.com/kubernetes/kubernetes/pull/87537), [@uthark](https://github.com/uthark)) [SIG Apps and Node] -- Fix nil pointer dereference in azure cloud provider ([#85975](https://github.com/kubernetes/kubernetes/pull/85975), [@ldx](https://github.com/ldx)) [SIG Cloud Provider] -- Fix regression in statefulset conversion which prevents applying a statefulset multiple times. ([#87706](https://github.com/kubernetes/kubernetes/pull/87706), [@liggitt](https://github.com/liggitt)) [SIG Apps and Testing] -- Fix route conflicted operations when updating multiple routes together ([#88209](https://github.com/kubernetes/kubernetes/pull/88209), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Fix that prevents repeated fetching of PVC/PV objects by kubelet when processing of pod volumes fails. While this prevents hammering API server in these error scenarios, it means that some errors in processing volume(s) for a pod could now take up to 2-3 minutes before retry. ([#88141](https://github.com/kubernetes/kubernetes/pull/88141), [@tedyu](https://github.com/tedyu)) [SIG Node and Storage] -- Fix the bug PIP's DNS is deleted if no DNS label service annotation isn't set. ([#87246](https://github.com/kubernetes/kubernetes/pull/87246), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Fix control plane hosts rolling upgrade causing thundering herd of LISTs on etcd leading to control plane unavailability. ([#86430](https://github.com/kubernetes/kubernetes/pull/86430), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery, Node and Testing] -- Fix: add azure disk migration support for CSINode ([#88014](https://github.com/kubernetes/kubernetes/pull/88014), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fix: add non-retriable errors in azure clients ([#87941](https://github.com/kubernetes/kubernetes/pull/87941), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix: add remediation in azure disk attach/detach ([#88444](https://github.com/kubernetes/kubernetes/pull/88444), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix: azure data disk should use same key as os disk by default ([#86351](https://github.com/kubernetes/kubernetes/pull/86351), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix: azure disk could not mounted on Standard_DC4s/DC2s instances ([#86612](https://github.com/kubernetes/kubernetes/pull/86612), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fix: azure file mount timeout issue ([#88610](https://github.com/kubernetes/kubernetes/pull/88610), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fix: check disk status before disk azure disk ([#88360](https://github.com/kubernetes/kubernetes/pull/88360), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix: corrupted mount point in csi driver ([#88569](https://github.com/kubernetes/kubernetes/pull/88569), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage] -- Fix: get azure disk lun timeout issue ([#88158](https://github.com/kubernetes/kubernetes/pull/88158), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fix: update azure disk max count ([#88201](https://github.com/kubernetes/kubernetes/pull/88201), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fixed "requested device X but found Y" attach error on AWS. ([#85675](https://github.com/kubernetes/kubernetes/pull/85675), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider and Storage] -- Fixed NetworkPolicy validation that `Except` values are accepted when they are outside the CIDR range. ([#86578](https://github.com/kubernetes/kubernetes/pull/86578), [@tnqn](https://github.com/tnqn)) [SIG Network] -- Fixed a bug in the TopologyManager. Previously, the TopologyManager would only guarantee alignment if container creation was serialized in some way. Alignment is now guaranteed under all scenarios of container creation. ([#87759](https://github.com/kubernetes/kubernetes/pull/87759), [@klueska](https://github.com/klueska)) [SIG Node] -- Fixed a bug which could prevent a provider ID from ever being set for node if an error occurred determining the provider ID when the node was added. ([#87043](https://github.com/kubernetes/kubernetes/pull/87043), [@zjs](https://github.com/zjs)) [SIG Apps and Cloud Provider] -- Fixed a data race in the kubelet image manager that can cause static pod workers to silently stop working. ([#88915](https://github.com/kubernetes/kubernetes/pull/88915), [@roycaihw](https://github.com/roycaihw)) [SIG Node] -- Fixed a panic in the kubelet cleaning up pod volumes ([#86277](https://github.com/kubernetes/kubernetes/pull/86277), [@tedyu](https://github.com/tedyu)) [SIG Storage] -- Fixed a regression where the kubelet would fail to update the ready status of pods. ([#84951](https://github.com/kubernetes/kubernetes/pull/84951), [@tedyu](https://github.com/tedyu)) [SIG Node] -- Fixed an issue that could cause the kubelet to incorrectly run concurrent pod reconciliation loops and crash. ([#89055](https://github.com/kubernetes/kubernetes/pull/89055), [@tedyu](https://github.com/tedyu)) [SIG Node] -- Fixed block CSI volume cleanup after timeouts. ([#88660](https://github.com/kubernetes/kubernetes/pull/88660), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] -- Fixed cleaning of CSI raw block volumes. ([#87978](https://github.com/kubernetes/kubernetes/pull/87978), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] -- Fixed AWS Cloud Provider attempting to delete LoadBalancer security group it didn’t provision, and fixed AWS Cloud Provider creating a default LoadBalancer security group even if annotation `service.beta.kubernetes.io/aws-load-balancer-security-groups` is present because the intended behavior of aws-load-balancer-security-groups is to replace all security groups assigned to the load balancer. ([#84265](https://github.com/kubernetes/kubernetes/pull/84265), [@bhagwat070919](https://github.com/bhagwat070919)) [SIG Cloud Provider] -- Fixed two scheduler metrics (pending_pods and schedule_attempts_total) not being recorded ([#87692](https://github.com/kubernetes/kubernetes/pull/87692), [@everpeace](https://github.com/everpeace)) [SIG Scheduling] -- Fixes an issue with kubelet-reported pod status on deleted/recreated pods. ([#86320](https://github.com/kubernetes/kubernetes/pull/86320), [@liggitt](https://github.com/liggitt)) [SIG Node] -- Fixes conversion error in multi-version custom resources that could cause metadata.generation to increment on no-op patches or updates of a custom resource. ([#88995](https://github.com/kubernetes/kubernetes/pull/88995), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] -- Fixes issue where AAD token obtained by kubectl is incompatible with on-behalf-of flow and oidc. The audience claim before this fix has "spn:" prefix. After this fix, "spn:" prefix is omitted. ([#86412](https://github.com/kubernetes/kubernetes/pull/86412), [@weinong](https://github.com/weinong)) [SIG API Machinery, Auth and Cloud Provider] -- Fixes an issue where you can't attach more than 15 GCE Persistent Disks to c2, n2, m1, m2 machine types. ([#88602](https://github.com/kubernetes/kubernetes/pull/88602), [@yuga711](https://github.com/yuga711)) [SIG Storage] -- Fixes kube-proxy when EndpointSlice feature gate is enabled on Windows. ([#86016](https://github.com/kubernetes/kubernetes/pull/86016), [@robscott](https://github.com/robscott)) [SIG Auth and Network] -- Fixes kubelet crash in client certificate rotation cases ([#88079](https://github.com/kubernetes/kubernetes/pull/88079), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Node] -- Fixes service account token admission error in clusters that do not run the service account token controller ([#87029](https://github.com/kubernetes/kubernetes/pull/87029), [@liggitt](https://github.com/liggitt)) [SIG Auth] -- Fixes v1.17.0 regression in --service-cluster-ip-range handling with IPv4 ranges larger than 65536 IP addresses ([#86534](https://github.com/kubernetes/kubernetes/pull/86534), [@liggitt](https://github.com/liggitt)) [SIG Network] -- Fixes wrong validation result of NetworkPolicy PolicyTypes ([#85747](https://github.com/kubernetes/kubernetes/pull/85747), [@tnqn](https://github.com/tnqn)) [SIG Network] -- For subprotocol negotiation, both client and server protocol is required now. ([#86646](https://github.com/kubernetes/kubernetes/pull/86646), [@tedyu](https://github.com/tedyu)) [SIG API Machinery and Node] -- For volumes that allow attaches across multiple nodes, attach and detach operations across different nodes are now executed in parallel. ([#88678](https://github.com/kubernetes/kubernetes/pull/88678), [@verult](https://github.com/verult)) [SIG Storage] -- Garbage collector now can correctly orphan ControllerRevisions when StatefulSets are deleted with orphan propagation policy. ([#84984](https://github.com/kubernetes/kubernetes/pull/84984), [@cofyc](https://github.com/cofyc)) [SIG Apps] -- `Get-kube.sh` uses the gcloud's current local GCP service account for auth when the provider is GCE or GKE instead of the metadata server default ([#88383](https://github.com/kubernetes/kubernetes/pull/88383), [@BenTheElder](https://github.com/BenTheElder)) [SIG Cluster Lifecycle] -- Golang/x/net has been updated to bring in fixes for CVE-2020-9283 ([#88381](https://github.com/kubernetes/kubernetes/pull/88381), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] -- If a serving certificate’s param specifies a name that is an IP for an SNI certificate, it will have priority for replying to server connections. ([#85308](https://github.com/kubernetes/kubernetes/pull/85308), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] -- Improved yaml parsing performance ([#85458](https://github.com/kubernetes/kubernetes/pull/85458), [@cjcullen](https://github.com/cjcullen)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Node] -- Improves performance of the node authorizer ([#87696](https://github.com/kubernetes/kubernetes/pull/87696), [@liggitt](https://github.com/liggitt)) [SIG Auth] -- In GKE alpha clusters it will be possible to use the service annotation `cloud.google.com/network-tier: Standard` ([#88487](https://github.com/kubernetes/kubernetes/pull/88487), [@zioproto](https://github.com/zioproto)) [SIG Cloud Provider] -- Includes FSType when describing CSI persistent volumes. ([#85293](https://github.com/kubernetes/kubernetes/pull/85293), [@huffmanca](https://github.com/huffmanca)) [SIG CLI and Storage] -- Iptables/userspace proxy: improve performance by getting local addresses only once per sync loop, instead of for every external IP ([#85617](https://github.com/kubernetes/kubernetes/pull/85617), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Network] -- Kube-aggregator: always sets unavailableGauge metric to reflect the current state of a service. ([#87778](https://github.com/kubernetes/kubernetes/pull/87778), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] -- Kube-apiserver: fixed a conflict error encountered attempting to delete a pod with gracePeriodSeconds=0 and a resourceVersion precondition ([#85516](https://github.com/kubernetes/kubernetes/pull/85516), [@michaelgugino](https://github.com/michaelgugino)) [SIG API Machinery] -- Kube-proxy no longer modifies shared EndpointSlices. ([#86092](https://github.com/kubernetes/kubernetes/pull/86092), [@robscott](https://github.com/robscott)) [SIG Network] -- Kube-proxy: on dual-stack mode, if it is not able to get the IP Family of an endpoint, logs it with level InfoV(4) instead of Warning, avoiding flooding the logs for endpoints without addresses ([#88934](https://github.com/kubernetes/kubernetes/pull/88934), [@aojea](https://github.com/aojea)) [SIG Network] -- Kubeadm allows to configure single-stack clusters if dual-stack is enabled ([#87453](https://github.com/kubernetes/kubernetes/pull/87453), [@aojea](https://github.com/aojea)) [SIG API Machinery, Cluster Lifecycle and Network] -- Kubeadm now includes CoreDNS version 1.6.7 ([#86260](https://github.com/kubernetes/kubernetes/pull/86260), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] -- Kubeadm upgrades always persist the etcd backup for stacked ([#86861](https://github.com/kubernetes/kubernetes/pull/86861), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubeadm: 'kubeadm alpha kubelet config download' has been removed, please use 'kubeadm upgrade node phase kubelet-config' instead ([#87944](https://github.com/kubernetes/kubernetes/pull/87944), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubeadm: Forward cluster name to the controller-manager arguments ([#85817](https://github.com/kubernetes/kubernetes/pull/85817), [@ereslibre](https://github.com/ereslibre)) [SIG Cluster Lifecycle] -- Kubeadm: add support for the "ci/k8s-master" version label as a replacement for "ci-cross/*", which no longer exists. ([#86609](https://github.com/kubernetes/kubernetes/pull/86609), [@Pensu](https://github.com/Pensu)) [SIG Cluster Lifecycle] -- Kubeadm: apply further improvements to the tentative support for concurrent etcd member join. Fixes a bug where multiple members can receive the same hostname. Increase the etcd client dial timeout and retry timeout for add/remove/... operations. ([#87505](https://github.com/kubernetes/kubernetes/pull/87505), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: don't write the kubelet environment file on "upgrade apply" ([#85412](https://github.com/kubernetes/kubernetes/pull/85412), [@boluisa](https://github.com/boluisa)) [SIG Cluster Lifecycle] -- Kubeadm: fix potential panic when executing "kubeadm reset" with a corrupted kubelet.conf file ([#86216](https://github.com/kubernetes/kubernetes/pull/86216), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: fix the bug that 'kubeadm upgrade' hangs in single node cluster ([#88434](https://github.com/kubernetes/kubernetes/pull/88434), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubeadm: make sure images are pre-pulled even if a tag did not change but their contents changed ([#85603](https://github.com/kubernetes/kubernetes/pull/85603), [@bart0sh](https://github.com/bart0sh)) [SIG Cluster Lifecycle] -- Kubeadm: remove 'kubeadm upgrade node config' command since it was deprecated in v1.15, please use 'kubeadm upgrade node phase kubelet-config' instead ([#87975](https://github.com/kubernetes/kubernetes/pull/87975), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubeadm: remove the deprecated CoreDNS feature-gate. It was set to "true" since v1.11 when the feature went GA. In v1.13 it was marked as deprecated and hidden from the CLI. ([#87400](https://github.com/kubernetes/kubernetes/pull/87400), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: retry `kubeadm-config` ConfigMap creation or mutation if the apiserver is not responding. This will improve resiliency when joining new control plane nodes. ([#85763](https://github.com/kubernetes/kubernetes/pull/85763), [@ereslibre](https://github.com/ereslibre)) [SIG Cluster Lifecycle] -- Kubeadm: tolerate whitespace when validating certificate authority PEM data in kubeconfig files ([#86705](https://github.com/kubernetes/kubernetes/pull/86705), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: use bind-address option to configure the kube-controller-manager and kube-scheduler http probes ([#86493](https://github.com/kubernetes/kubernetes/pull/86493), [@aojea](https://github.com/aojea)) [SIG Cluster Lifecycle] -- Kubeadm: uses the api-server AdvertiseAddress IP family to choose the etcd endpoint IP family for non external etcd clusters ([#85745](https://github.com/kubernetes/kubernetes/pull/85745), [@aojea](https://github.com/aojea)) [SIG Cluster Lifecycle] -- Kubectl cluster-info dump --output-directory=xxx now generates files with an extension depending on the output format. ([#82070](https://github.com/kubernetes/kubernetes/pull/82070), [@olivierlemasle](https://github.com/olivierlemasle)) [SIG CLI] -- `Kubectl describe <type>` and `kubectl top pod` will return a message saying `"No resources found"` or `"No resources found in <namespace> namespace"` if there are no results to display. ([#87527](https://github.com/kubernetes/kubernetes/pull/87527), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] -- `Kubectl drain node --dry-run` will list pods that would be evicted or deleted ([#82660](https://github.com/kubernetes/kubernetes/pull/82660), [@sallyom](https://github.com/sallyom)) [SIG CLI] -- `Kubectl set resources` will no longer return an error if passed an empty change for a resource. `kubectl set subject` will no longer return an error if passed an empty change for a resource. ([#85490](https://github.com/kubernetes/kubernetes/pull/85490), [@sallyom](https://github.com/sallyom)) [SIG CLI] -- Kubelet metrics gathered through metrics-server or prometheus should no longer timeout for Windows nodes running more than 3 pods. ([#87730](https://github.com/kubernetes/kubernetes/pull/87730), [@marosset](https://github.com/marosset)) [SIG Node, Testing and Windows] -- Kubelet metrics have been changed to buckets. For example the `exec/{podNamespace}/{podID}/{containerName}` is now just exec. ([#87913](https://github.com/kubernetes/kubernetes/pull/87913), [@cheftako](https://github.com/cheftako)) [SIG Node] -- Kubelets perform fewer unnecessary pod status update operations on the API server. ([#88591](https://github.com/kubernetes/kubernetes/pull/88591), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node and Scalability] -- Kubernetes will try to acquire the iptables lock every 100 msec during 5 seconds instead of every second. This is especially useful for environments using kube-proxy in iptables mode with a high churn rate of services. ([#85771](https://github.com/kubernetes/kubernetes/pull/85771), [@aojea](https://github.com/aojea)) [SIG Network] -- Limit number of instances in a single update to GCE target pool to 1000. ([#87881](https://github.com/kubernetes/kubernetes/pull/87881), [@wojtek-t](https://github.com/wojtek-t)) [SIG Cloud Provider, Network and Scalability] -- Make Azure clients only retry on specified HTTP status codes ([#88017](https://github.com/kubernetes/kubernetes/pull/88017), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Make error message and service event message more clear ([#86078](https://github.com/kubernetes/kubernetes/pull/86078), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Minimize AWS NLB health check timeout when externalTrafficPolicy set to Local ([#73363](https://github.com/kubernetes/kubernetes/pull/73363), [@kellycampbell](https://github.com/kellycampbell)) [SIG Cloud Provider] -- Pause image contains "Architecture" in non-amd64 images ([#87954](https://github.com/kubernetes/kubernetes/pull/87954), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release] -- Pause image upgraded to 3.2 in kubelet and kubeadm. ([#88173](https://github.com/kubernetes/kubernetes/pull/88173), [@BenTheElder](https://github.com/BenTheElder)) [SIG CLI, Cluster Lifecycle, Node and Testing] -- Plugin/PluginConfig and Policy APIs are mutually exclusive when running the scheduler ([#88864](https://github.com/kubernetes/kubernetes/pull/88864), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- Remove `FilteredNodesStatuses` argument from `PreScore`'s interface. ([#88189](https://github.com/kubernetes/kubernetes/pull/88189), [@skilxn-go](https://github.com/skilxn-go)) [SIG Scheduling and Testing] -- Resolved a performance issue in the node authorizer index maintenance. ([#87693](https://github.com/kubernetes/kubernetes/pull/87693), [@liggitt](https://github.com/liggitt)) [SIG Auth] -- Resolved regression in admission, authentication, and authorization webhook performance in v1.17.0-rc.1 ([#85810](https://github.com/kubernetes/kubernetes/pull/85810), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] -- Resolves performance regression in `kubectl get all` and in client-go discovery clients constructed using `NewDiscoveryClientForConfig` or `NewDiscoveryClientForConfigOrDie`. ([#86168](https://github.com/kubernetes/kubernetes/pull/86168), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] -- Reverted a kubectl azure auth module change where oidc claim spn: prefix was omitted resulting a breaking behavior with existing Azure AD OIDC enabled api-server ([#87507](https://github.com/kubernetes/kubernetes/pull/87507), [@weinong](https://github.com/weinong)) [SIG API Machinery, Auth and Cloud Provider] -- Shared informers are now more reliable in the face of network disruption. ([#86015](https://github.com/kubernetes/kubernetes/pull/86015), [@squeed](https://github.com/squeed)) [SIG API Machinery] -- Specifying PluginConfig for the same plugin more than once fails scheduler startup. - Specifying extenders and configuring .ignoredResources for the NodeResourcesFit plugin fails ([#88870](https://github.com/kubernetes/kubernetes/pull/88870), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- Terminating a restartPolicy=Never pod no longer has a chance to report the pod succeeded when it actually failed. ([#88440](https://github.com/kubernetes/kubernetes/pull/88440), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node and Testing] -- The CSR signing cert/key pairs will be reloaded from disk like the kube-apiserver cert/key pairs ([#86816](https://github.com/kubernetes/kubernetes/pull/86816), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Apps and Auth] -- The EventRecorder from k8s.io/client-go/tools/events will now create events in the default namespace (instead of kube-system) when the related object does not have it set. ([#88815](https://github.com/kubernetes/kubernetes/pull/88815), [@enj](https://github.com/enj)) [SIG API Machinery] -- The audit event sourceIPs list will now always end with the IP that sent the request directly to the API server. ([#87167](https://github.com/kubernetes/kubernetes/pull/87167), [@tallclair](https://github.com/tallclair)) [SIG API Machinery and Auth] -- The sample-apiserver aggregated conformance test has updated to use the Kubernetes v1.17.0 sample apiserver ([#84735](https://github.com/kubernetes/kubernetes/pull/84735), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture, CLI and Testing] -- To reduce chances of throttling, VM cache is set to nil when Azure node provisioning state is deleting ([#87635](https://github.com/kubernetes/kubernetes/pull/87635), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- VMSS cache is added so that less chances of VMSS GET throttling ([#85885](https://github.com/kubernetes/kubernetes/pull/85885), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Wait for kubelet & kube-proxy to be ready on Windows node within 10s ([#85228](https://github.com/kubernetes/kubernetes/pull/85228), [@YangLu1031](https://github.com/YangLu1031)) [SIG Cluster Lifecycle] -- `kubectl apply -f <file> --prune -n <namespace>` should prune all resources not defined in the file in the cli specified namespace. ([#85613](https://github.com/kubernetes/kubernetes/pull/85613), [@MartinKaburu](https://github.com/MartinKaburu)) [SIG CLI] -- `kubectl create clusterrolebinding` creates rbac.authorization.k8s.io/v1 object ([#85889](https://github.com/kubernetes/kubernetes/pull/85889), [@oke-py](https://github.com/oke-py)) [SIG CLI] -- `kubectl diff` now returns 1 only on diff finding changes, and >1 on kubectl errors. The "exit status code 1" message has also been muted. ([#87437](https://github.com/kubernetes/kubernetes/pull/87437), [@apelisse](https://github.com/apelisse)) [SIG CLI and Testing] - -## Dependencies - -- Update Calico to v3.8.4 ([#84163](https://github.com/kubernetes/kubernetes/pull/84163), [@david-tigera](https://github.com/david-tigera))[SIG Cluster Lifecycle] -- Update aws-sdk-go dependency to v1.28.2 ([#87253](https://github.com/kubernetes/kubernetes/pull/87253), [@SaranBalaji90](https://github.com/SaranBalaji90))[SIG API Machinery and Cloud Provider] -- Update CNI version to v0.8.5 ([#78819](https://github.com/kubernetes/kubernetes/pull/78819), [@justaugustus](https://github.com/justaugustus))[SIG Release, Testing, Network, Cluster Lifecycle and API Machinery] -- Update cri-tools to v1.17.0 ([#86305](https://github.com/kubernetes/kubernetes/pull/86305), [@saschagrunert](https://github.com/saschagrunert))[SIG Release and Cluster Lifecycle] -- Pause image upgraded to 3.2 in kubelet and kubeadm ([#88173](https://github.com/kubernetes/kubernetes/pull/88173), [@BenTheElder](https://github.com/BenTheElder))[SIG CLI, Node, Testing and Cluster Lifecycle] -- Update CoreDNS version to 1.6.7 in kubeadm ([#86260](https://github.com/kubernetes/kubernetes/pull/86260), [@rajansandeep](https://github.com/rajansandeep))[SIG Cluster Lifecycle] -- Update golang.org/x/crypto to fix CVE-2020-9283 ([#8838](https://github.com/kubernetes/kubernetes/pull/88381), [@BenTheElder](https://github.com/BenTheElder))[SIG CLI, Instrumentation, API Machinery, CLuster Lifecycle and Cloud Provider] -- Update Go to 1.13.8 ([#87648](https://github.com/kubernetes/kubernetes/pull/87648), [@ialidzhikov](https://github.com/ialidzhikov))[SIG Release and Testing] -- Update Cluster-Autoscaler to 1.18.0 ([#89095](https://github.com/kubernetes/kubernetes/pull/89095), [@losipiuk](https://github.com/losipiuk))[SIG Autoscaling and Cluster Lifecycle] +A complete changelog for the release notes is now hosted in a customizable +format at [https://relnotes.k8s.io][1]. Check it out and please give us your +feedback! + +[1]: https://relnotes.k8s.io/?releaseVersions=1.18.0 + +## What’s New (Major Themes) + +### Kubernetes Topology Manager Moves to Beta - Align Up! + +A beta feature of Kubernetes in release 1.18, the [Topology Manager feature](https://github.com/nolancon/website/blob/f4200307260ea3234540ef13ed80de325e1a7267/content/en/docs/tasks/administer-cluster/topology-manager.md) enables NUMA alignment of CPU and devices (such as SR-IOV VFs) that will allow your workload to run in an environment optimized for low-latency. Prior to the introduction of the Topology Manager, the CPU and Device Manager would make resource allocation decisions independent of each other. This could result in undesirable allocations on multi-socket systems, causing degraded performance on latency critical applications. + +### Serverside Apply - Beta 2 + +Server-side Apply was promoted to Beta in 1.16, but is now introducing a second Beta in 1.18. This new version will track and manage changes to fields of all new Kubernetes objects, allowing you to know what changed your resources and when. + +### Extending Ingress with and replacing a deprecated annotation with IngressClass + +In Kubernetes 1.18, there are two significant additions to Ingress: A new `pathType` field and a new `IngressClass` resource. The `pathType` field allows specifying how paths should be matched. In addition to the default `ImplementationSpecific` type, there are new `Exact` and `Prefix` path types. + +The `IngressClass` resource is used to describe a type of Ingress within a Kubernetes cluster. Ingresses can specify the class they are associated with by using a new `ingressClassName` field on Ingresses. This new resource and field replace the deprecated `kubernetes.io/ingress.class` annotation. + +### SIG CLI introduces kubectl debug + +SIG CLI was debating the need for a debug utility for quite some time already. With the development of [ephemeral containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/), it became more obvious how we can support developers with tooling built on top of `kubectl exec`. The addition of the `kubectl debug` [command](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/20190805-kubectl-debug.md) (it is alpha but your feedback is more than welcome), allows developers to easily debug their Pods inside the cluster. We think this addition is invaluable. This command allows one to create a temporary container which runs next to the Pod one is trying to examine, but also attaches to the console for interactive troubleshooting. + +### Introducing Windows CSI support alpha for Kubernetes + +With the release of Kubernetes 1.18, an alpha version of CSI Proxy for Windows is getting released. CSI proxy enables non-privileged (pre-approved) containers to perform privileged storage operations on Windows. CSI drivers can now be supported in Windows by leveraging CSI proxy. +SIG Storage made a lot of progress in the 1.18 release. +In particular, the following storage features are moving to GA in Kubernetes 1.18: +- Raw Block Support: Allow volumes to be surfaced as block devices inside containers instead of just mounted filesystems. +- Volume Cloning: Duplicate a PersistentVolumeClaim and underlying storage volume using the Kubernetes API via CSI. +- CSIDriver Kubernetes API Object: Simplifies CSI driver discovery and allows CSI Drivers to customize Kubernetes behavior. + +SIG Storage is also introducing the following new storage features as alpha in Kubernetes 1.18: +- Windows CSI Support: Enabling containerized CSI node plugins in Windows via new [CSIProxy](https://github.com/kubernetes-csi/csi-proxy) +- Recursive Volume Ownership OnRootMismatch Option: Add a new “OnRootMismatch” policy that can help shorten the mount time for volumes that require ownership change and have many directories and files. + +### Other notable announcements + +SIG Network is moving IPv6 to Beta in Kubernetes 1.18, after incrementing significantly the test coverage with new CI jobs. + +NodeLocal DNSCache is an add-on that runs a dnsCache pod as a daemonset to improve clusterDNS performance and reliability. The feature has been in Alpha since 1.13 release. The SIG Network is announcing the GA graduation of Node Local DNSCache [#1351](https://github.com/kubernetes/enhancements/pull/1351) + +## Known Issues + +No Known Issues Reported + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +#### kube-apiserver: +- in an `--encryption-provider-config` config file, an explicit `cacheSize: 0` parameter previously silently defaulted to caching 1000 keys. In Kubernetes 1.18, this now returns a config validation error. To disable caching, you can specify a negative cacheSize value in Kubernetes 1.18+. +- consumers of the 'certificatesigningrequests/approval' API must now have permission to 'approve' CSRs for the specific signer requested by the CSR. More information on the new signerName field and the required authorization can be found at https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests#authorization ([#88246](https://github.com/kubernetes/kubernetes/pull/88246), [@munnerz](https://github.com/munnerz)) [SIG API Machinery, Apps, Auth, CLI, Node and Testing] +- The following features are unconditionally enabled and the corresponding `--feature-gates` flags have been removed: `PodPriority`, `TaintNodesByCondition`, `ResourceQuotaScopeSelectors` and `ScheduleDaemonSetPods` ([#86210](https://github.com/kubernetes/kubernetes/pull/86210), [@draveness](https://github.com/draveness)) [SIG Apps and Scheduling] + +#### kubelet: +- `--enable-cadvisor-endpoints` is now disabled by default. If you need access to the cAdvisor v1 Json API please enable it explicitly in the kubelet command line. Please note that this flag was deprecated in 1.15 and will be removed in 1.19. ([#87440](https://github.com/kubernetes/kubernetes/pull/87440), [@dims](https://github.com/dims)) [SIG Instrumentation, Node and Testing] +- Promote CSIMigrationOpenStack to Beta (off by default since it requires installation of the OpenStack Cinder CSI Driver. The in-tree AWS OpenStack Cinder driver "kubernetes.io/cinder" was deprecated in 1.16 and will be removed in 1.20. Users should enable CSIMigration + CSIMigrationOpenStack features and install the OpenStack Cinder CSI Driver (https://github.com/kubernetes-sigs/cloud-provider-openstack) to avoid disruption to existing Pod and PVC objects at that time. Users should start using the OpenStack Cinder CSI Driver directly for any new volumes. ([#85637](https://github.com/kubernetes/kubernetes/pull/85637), [@dims](https://github.com/dims)) [SIG Cloud Provider] + +#### kubectl: +- `kubectl` and k8s.io/client-go no longer default to a server address of `http://localhost:8080`. If you own one of these legacy clusters, you are *strongly* encouraged to secure your server. If you cannot secure your server, you can set the `$KUBERNETES_MASTER` environment variable to `http://localhost:8080` to continue defaulting the server address. `kubectl` users can also set the server address using the `--server` flag, or in a kubeconfig file specified via `--kubeconfig` or `$KUBECONFIG`. ([#86173](https://github.com/kubernetes/kubernetes/pull/86173), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI and Testing] +- `kubectl run` has removed the previously deprecated generators, along with flags unrelated to creating pods. `kubectl run` now only creates pods. See specific `kubectl create` subcommands to create objects other than pods. +([#87077](https://github.com/kubernetes/kubernetes/pull/87077), [@soltysh](https://github.com/soltysh)) [SIG Architecture, CLI and Testing] +- The deprecated command `kubectl rolling-update` has been removed ([#88057](https://github.com/kubernetes/kubernetes/pull/88057), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG Architecture, CLI and Testing] + +#### client-go: +- Signatures on methods in generated clientsets, dynamic, metadata, and scale clients have been modified to accept `context.Context` as a first argument. Signatures of Create, Update, and Patch methods have been updated to accept CreateOptions, UpdateOptions and PatchOptions respectively. Signatures of Delete and DeleteCollection methods now accept DeleteOptions by value instead of by reference. Generated clientsets with the previous interface have been added in new "deprecated" packages to allow incremental migration to the new APIs. The deprecated packages will be removed in the 1.21 release. A tool is available at http://sigs.k8s.io/clientgofix to rewrite method invocations to the new signatures. + +- The following deprecated metrics are removed, please convert to the corresponding metrics: + - The following replacement metrics are available from v1.14.0: + - `rest_client_request_latency_seconds` -> `rest_client_request_duration_seconds` + - `scheduler_scheduling_latency_seconds` -> `scheduler_scheduling_duration_seconds ` + - `docker_operations` -> `docker_operations_total` + - `docker_operations_latency_microseconds` -> `docker_operations_duration_seconds` + - `docker_operations_errors` -> `docker_operations_errors_total` + - `docker_operations_timeout` -> `docker_operations_timeout_total` + - `network_plugin_operations_latency_microseconds` -> `network_plugin_operations_duration_seconds` + - `kubelet_pod_worker_latency_microseconds` -> `kubelet_pod_worker_duration_seconds` + - `kubelet_pod_start_latency_microseconds` -> `kubelet_pod_start_duration_seconds` + - `kubelet_cgroup_manager_latency_microseconds` -> `kubelet_cgroup_manager_duration_seconds` + - `kubelet_pod_worker_start_latency_microseconds` -> `kubelet_pod_worker_start_duration_seconds` + - `kubelet_pleg_relist_latency_microseconds` -> `kubelet_pleg_relist_duration_seconds` + - `kubelet_pleg_relist_interval_microseconds` -> `kubelet_pleg_relist_interval_seconds` + - `kubelet_eviction_stats_age_microseconds` -> `kubelet_eviction_stats_age_seconds` + - `kubelet_runtime_operations` -> `kubelet_runtime_operations_total` + - `kubelet_runtime_operations_latency_microseconds` -> `kubelet_runtime_operations_duration_seconds` + - `kubelet_runtime_operations_errors` -> `kubelet_runtime_operations_errors_total` + - `kubelet_device_plugin_registration_count` -> `kubelet_device_plugin_registration_total` + - `kubelet_device_plugin_alloc_latency_microseconds` -> `kubelet_device_plugin_alloc_duration_seconds` + - `scheduler_e2e_scheduling_latency_microseconds` -> `scheduler_e2e_scheduling_duration_seconds` + - `scheduler_scheduling_algorithm_latency_microseconds` -> `scheduler_scheduling_algorithm_duration_seconds` + - `scheduler_scheduling_algorithm_predicate_evaluation` -> `scheduler_scheduling_algorithm_predicate_evaluation_seconds` + - `scheduler_scheduling_algorithm_priority_evaluation` -> `scheduler_scheduling_algorithm_priority_evaluation_seconds` + - `scheduler_scheduling_algorithm_preemption_evaluation` -> `scheduler_scheduling_algorithm_preemption_evaluation_seconds` + - `scheduler_binding_latency_microseconds` -> `scheduler_binding_duration_seconds` + - `kubeproxy_sync_proxy_rules_latency_microseconds` -> `kubeproxy_sync_proxy_rules_duration_seconds` + - `apiserver_request_latencies` -> `apiserver_request_duration_seconds` + - `apiserver_dropped_requests` -> `apiserver_dropped_requests_total` + - `etcd_request_latencies_summary` -> `etcd_request_duration_seconds` + - `apiserver_storage_transformation_latencies_microseconds ` -> `apiserver_storage_transformation_duration_seconds` + - `apiserver_storage_data_key_generation_latencies_microseconds` -> `apiserver_storage_data_key_generation_duration_seconds` + - `apiserver_request_count` -> `apiserver_request_total` + - `apiserver_request_latencies_summary` + - The following replacement metrics are available from v1.15.0: + - `apiserver_storage_transformation_failures_total` -> `apiserver_storage_transformation_operations_total` ([#76496](https://github.com/kubernetes/kubernetes/pull/76496), [@danielqsj](https://github.com/danielqsj)) [SIG API Machinery, Cluster Lifecycle, Instrumentation, Network, Node and Scheduling] + +## Changes by Kind + +### Deprecation + +#### kube-apiserver: +- the following deprecated APIs can no longer be served: + - All resources under `apps/v1beta1` and `apps/v1beta2` - use `apps/v1` instead + - `daemonsets`, `deployments`, `replicasets` resources under `extensions/v1beta1` - use `apps/v1` instead + - `networkpolicies` resources under `extensions/v1beta1` - use `networking.k8s.io/v1` instead + - `podsecuritypolicies` resources under `extensions/v1beta1` - use `policy/v1beta1` instead ([#85903](https://github.com/kubernetes/kubernetes/pull/85903), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Cluster Lifecycle, Instrumentation and Testing] + +#### kube-controller-manager: +- Azure service annotation service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset has been deprecated. Its support would be removed in a future release. ([#88462](https://github.com/kubernetes/kubernetes/pull/88462), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] + +#### kubelet: +- The StreamingProxyRedirects feature and `--redirect-container-streaming` flag are deprecated, and will be removed in a future release. The default behavior (proxy streaming requests through the kubelet) will be the only supported option. If you are setting `--redirect-container-streaming=true`, then you must migrate off this configuration. The flag will no longer be able to be enabled starting in v1.20. If you are not setting the flag, no action is necessary. ([#88290](https://github.com/kubernetes/kubernetes/pull/88290), [@tallclair](https://github.com/tallclair)) [SIG API Machinery and Node] +- resource metrics endpoint `/metrics/resource/v1alpha1` as well as all metrics under this endpoint have been deprecated. Please convert to the following metrics emitted by endpoint `/metrics/resource`: + - scrape_error --> scrape_error + - node_cpu_usage_seconds_total --> node_cpu_usage_seconds + - node_memory_working_set_bytes --> node_memory_working_set_bytes + - container_cpu_usage_seconds_total --> container_cpu_usage_seconds + - container_memory_working_set_bytes --> container_memory_working_set_bytes + - scrape_error --> scrape_error + ([#86282](https://github.com/kubernetes/kubernetes/pull/86282), [@RainbowMango](https://github.com/RainbowMango)) [SIG Node] +- In a future release, kubelet will no longer create the CSI NodePublishVolume target directory, in accordance with the CSI specification. CSI drivers may need to be updated accordingly to properly create and process the target path. ([#75535](https://github.com/kubernetes/kubernetes/issues/75535)) [SIG Storage] + +#### kube-proxy: +- `--healthz-port` and `--metrics-port` flags are deprecated, please use `--healthz-bind-address` and `--metrics-bind-address` instead ([#88512](https://github.com/kubernetes/kubernetes/pull/88512), [@SataQiu](https://github.com/SataQiu)) [SIG Network] +- a new `EndpointSliceProxying` feature gate has been added to control the use of EndpointSlices in kube-proxy. The EndpointSlice feature gate that used to control this behavior no longer affects kube-proxy. This feature has been disabled by default. ([#86137](https://github.com/kubernetes/kubernetes/pull/86137), [@robscott](https://github.com/robscott)) + +#### kubeadm: +- command line option "kubelet-version" for `kubeadm upgrade node` has been deprecated and will be removed in a future release. ([#87942](https://github.com/kubernetes/kubernetes/pull/87942), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- deprecate the usage of the experimental flag '--use-api' under the 'kubeadm alpha certs renew' command. ([#88827](https://github.com/kubernetes/kubernetes/pull/88827), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- kube-dns is deprecated and will not be supported in a future version ([#86574](https://github.com/kubernetes/kubernetes/pull/86574), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- the `ClusterStatus` struct present in the kubeadm-config ConfigMap is deprecated and will be removed in a future version. It is going to be maintained by kubeadm until it gets removed. The same information can be found on `etcd` and `kube-apiserver` pod annotations, `kubeadm.kubernetes.io/etcd.advertise-client-urls` and `kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint` respectively. ([#87656](https://github.com/kubernetes/kubernetes/pull/87656), [@ereslibre](https://github.com/ereslibre)) [SIG Cluster Lifecycle] + +#### kubectl: +- the boolean and unset values for the --dry-run flag are deprecated and a value --dry-run=server|client|none will be required in a future version. ([#87580](https://github.com/kubernetes/kubernetes/pull/87580), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI] +- `kubectl apply --server-dry-run` is deprecated and replaced with --dry-run=server ([#87580](https://github.com/kubernetes/kubernetes/pull/87580), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI] + +#### add-ons: +- Remove cluster-monitoring addon ([#85512](https://github.com/kubernetes/kubernetes/pull/85512), [@serathius](https://github.com/serathius)) [SIG Cluster Lifecycle, Instrumentation, Scalability and Testing] + +#### kube-scheduler: +- The `scheduling_duration_seconds` summary metric is deprecated ([#86586](https://github.com/kubernetes/kubernetes/pull/86586), [@xiaoanyunfei](https://github.com/xiaoanyunfei)) [SIG Scheduling] +- The `scheduling_algorithm_predicate_evaluation_seconds` and + `scheduling_algorithm_priority_evaluation_seconds` metrics are deprecated, replaced by `framework_extension_point_duration_seconds[extension_point="Filter"]` and `framework_extension_point_duration_seconds[extension_point="Score"]`. ([#86584](https://github.com/kubernetes/kubernetes/pull/86584), [@xiaoanyunfei](https://github.com/xiaoanyunfei)) [SIG Scheduling] +- `AlwaysCheckAllPredicates` is deprecated in scheduler Policy API. ([#86369](https://github.com/kubernetes/kubernetes/pull/86369), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] + +#### Other deprecations: +- The k8s.io/node-api component is no longer updated. Instead, use the RuntimeClass types located within k8s.io/api, and the generated clients located within k8s.io/client-go ([#87503](https://github.com/kubernetes/kubernetes/pull/87503), [@liggitt](https://github.com/liggitt)) [SIG Node and Release] +- Removed the 'client' label from apiserver_request_total. ([#87669](https://github.com/kubernetes/kubernetes/pull/87669), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery and Instrumentation] + +### API Change + +#### New API types/versions: +- A new IngressClass resource has been added to enable better Ingress configuration. ([#88509](https://github.com/kubernetes/kubernetes/pull/88509), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps, CLI, Network, Node and Testing] +- The CSIDriver API has graduated to storage.k8s.io/v1, and is now available for use. ([#84814](https://github.com/kubernetes/kubernetes/pull/84814), [@huffmanca](https://github.com/huffmanca)) [SIG Storage] + +#### New API fields: +- autoscaling/v2beta2 HorizontalPodAutoscaler added a `spec.behavior` field that allows scale behavior to be configured. Behaviors are specified separately for scaling up and down. In each direction a stabilization window can be specified as well as a list of policies and how to select amongst them. Policies can limit the absolute number of pods added or removed, or the percentage of pods added or removed. ([#74525](https://github.com/kubernetes/kubernetes/pull/74525), [@gliush](https://github.com/gliush)) [SIG API Machinery, Apps, Autoscaling and CLI] +- Ingress: + - `spec.ingressClassName` replaces the deprecated `kubernetes.io/ingress.class` annotation, and allows associating an Ingress object with a particular controller. + - path definitions added a `pathType` field to allow indicating how the specified path should be matched against incoming requests. Valid values are `Exact`, `Prefix`, and `ImplementationSpecific` ([#88587](https://github.com/kubernetes/kubernetes/pull/88587), [@cmluciano](https://github.com/cmluciano)) [SIG Apps, Cluster Lifecycle and Network] +- The alpha feature `AnyVolumeDataSource` enables PersistentVolumeClaim objects to use the spec.dataSource field to reference a custom type as a data source ([#88636](https://github.com/kubernetes/kubernetes/pull/88636), [@bswartz](https://github.com/bswartz)) [SIG Apps and Storage] +- The alpha feature `ConfigurableFSGroupPolicy` enables v1 Pods to specify a spec.securityContext.fsGroupChangePolicy policy to control how file permissions are applied to volumes mounted into the pod. ([#88488](https://github.com/kubernetes/kubernetes/pull/88488), [@gnufied](https://github.com/gnufied)) [SIG Storage] +- The alpha feature `ServiceAppProtocol` enables setting an `appProtocol` field in ServicePort and EndpointPort definitions. ([#88503](https://github.com/kubernetes/kubernetes/pull/88503), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- The alpha feature `ImmutableEphemeralVolumes` enables an `immutable` field in both Secret and ConfigMap objects to mark their contents as immutable. ([#86377](https://github.com/kubernetes/kubernetes/pull/86377), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps, CLI and Testing] + +#### Other API changes: +- The beta feature `ServerSideApply` enables tracking and managing changed fields for all new objects, which means there will be `managedFields` in `metadata` with the list of managers and their owned fields. +- The alpha feature `ServiceAccountIssuerDiscovery` enables publishing OIDC discovery information and service account token verification keys at `/.well-known/openid-configuration` and `/openid/v1/jwks` endpoints by API servers configured to issue service account tokens. ([#80724](https://github.com/kubernetes/kubernetes/pull/80724), [@cceckman](https://github.com/cceckman)) [SIG API Machinery, Auth, Cluster Lifecycle and Testing] +- CustomResourceDefinition schemas that use `x-kubernetes-list-map-keys` to specify properties that uniquely identify list items must make those properties required or have a default value, to ensure those properties are present for all list items. See https://kubernetes.io/docs/reference/using-api/api-concepts/#merge-strategy for details. ([#88076](https://github.com/kubernetes/kubernetes/pull/88076), [@eloyekunle](https://github.com/eloyekunle)) [SIG API Machinery and Testing] +- CustomResourceDefinition schemas that use `x-kubernetes-list-type: map` or `x-kubernetes-list-type: set` now enable validation that the list items in the corresponding custom resources are unique. ([#84920](https://github.com/kubernetes/kubernetes/pull/84920), [@sttts](https://github.com/sttts)) [SIG API Machinery] + +#### Configuration file changes: + +#### kube-apiserver: +- The `--egress-selector-config-file` configuration file now accepts an apiserver.k8s.io/v1beta1 EgressSelectorConfiguration configuration object, and has been updated to allow specifying HTTP or GRPC connections to the network proxy ([#87179](https://github.com/kubernetes/kubernetes/pull/87179), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Cloud Provider and Cluster Lifecycle] + +#### kube-scheduler: +- A kubescheduler.config.k8s.io/v1alpha2 configuration file version is now accepted, with support for multiple scheduling profiles ([#87628](https://github.com/kubernetes/kubernetes/pull/87628), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] + - HardPodAffinityWeight moved from a top level ComponentConfig parameter to a PluginConfig parameter of InterPodAffinity Plugin in `kubescheduler.config.k8s.io/v1alpha2` ([#88002](https://github.com/kubernetes/kubernetes/pull/88002), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling and Testing] + - Kube-scheduler can run more than one scheduling profile. Given a pod, the profile is selected by using its `.spec.schedulerName`. ([#88285](https://github.com/kubernetes/kubernetes/pull/88285), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps, Scheduling and Testing] + - Scheduler Extenders can now be configured in the v1alpha2 component config ([#88768](https://github.com/kubernetes/kubernetes/pull/88768), [@damemi](https://github.com/damemi)) [SIG Release, Scheduling and Testing] + - The PostFilter of scheduler framework is renamed to PreScore in kubescheduler.config.k8s.io/v1alpha2. ([#87751](https://github.com/kubernetes/kubernetes/pull/87751), [@skilxn-go](https://github.com/skilxn-go)) [SIG Scheduling and Testing] + +#### kube-proxy: +- Added kube-proxy flags `--ipvs-tcp-timeout`, `--ipvs-tcpfin-timeout`, `--ipvs-udp-timeout` to configure IPVS connection timeouts. ([#85517](https://github.com/kubernetes/kubernetes/pull/85517), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cluster Lifecycle and Network] +- Added optional `--detect-local-mode` flag to kube-proxy. Valid values are "ClusterCIDR" (default matching previous behavior) and "NodeCIDR" ([#87748](https://github.com/kubernetes/kubernetes/pull/87748), [@satyasm](https://github.com/satyasm)) [SIG Cluster Lifecycle, Network and Scheduling] +- Kube-controller-manager and kube-scheduler expose profiling by default to match the kube-apiserver. Use `--enable-profiling=false` to disable. ([#88663](https://github.com/kubernetes/kubernetes/pull/88663), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Cloud Provider and Scheduling] +- Kubelet pod resources API now provides the information about active pods only. ([#79409](https://github.com/kubernetes/kubernetes/pull/79409), [@takmatsu](https://github.com/takmatsu)) [SIG Node] +- New flag `--endpointslice-updates-batch-period` in kube-controller-manager can be used to reduce the number of endpointslice updates generated by pod changes. ([#88745](https://github.com/kubernetes/kubernetes/pull/88745), [@mborsz](https://github.com/mborsz)) [SIG API Machinery, Apps and Network] +- New flag `--show-hidden-metrics-for-version` in kube-proxy, kubelet, kube-controller-manager, and kube-scheduler can be used to show all hidden metrics that are deprecated in the previous minor release. ([#85279](https://github.com/kubernetes/kubernetes/pull/85279), [@RainbowMango](https://github.com/RainbowMango)) [SIG Cluster Lifecycle and Network] + +#### Features graduated to beta: + - StartupProbe ([#83437](https://github.com/kubernetes/kubernetes/pull/83437), [@matthyx](https://github.com/matthyx)) [SIG Node, Scalability and Testing] + +#### Features graduated to GA: + - VolumePVCDataSource ([#88686](https://github.com/kubernetes/kubernetes/pull/88686), [@j-griffith](https://github.com/j-griffith)) [SIG Storage] + - TaintBasedEvictions ([#87487](https://github.com/kubernetes/kubernetes/pull/87487), [@skilxn-go](https://github.com/skilxn-go)) [SIG API Machinery, Apps, Node, Scheduling and Testing] + - BlockVolume and CSIBlockVolume ([#88673](https://github.com/kubernetes/kubernetes/pull/88673), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] + - Windows RunAsUserName ([#87790](https://github.com/kubernetes/kubernetes/pull/87790), [@marosset](https://github.com/marosset)) [SIG Apps and Windows] +- The following feature gates are removed, because the associated features were unconditionally enabled in previous releases: CustomResourceValidation, CustomResourceSubresources, CustomResourceWebhookConversion, CustomResourcePublishOpenAPI, CustomResourceDefaulting ([#87475](https://github.com/kubernetes/kubernetes/pull/87475), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] + +### Feature + +- API request throttling (due to a high rate of requests) is now reported in client-go logs at log level 2. The messages are of the form:`Throttling request took 1.50705208s, request: GET:<URL>` The presence of these messages may indicate to the administrator the need to tune the cluster accordingly. ([#87740](https://github.com/kubernetes/kubernetes/pull/87740), [@jennybuckley](https://github.com/jennybuckley)) [SIG API Machinery] +- Add support for mount options to the FC volume plugin ([#87499](https://github.com/kubernetes/kubernetes/pull/87499), [@ejweber](https://github.com/ejweber)) [SIG Storage] +- Added a config-mode flag in azure auth module to enable getting AAD token without spn: prefix in audience claim. When it's not specified, the default behavior doesn't change. ([#87630](https://github.com/kubernetes/kubernetes/pull/87630), [@weinong](https://github.com/weinong)) [SIG API Machinery, Auth, CLI and Cloud Provider] +- Allow for configuration of CoreDNS replica count ([#85837](https://github.com/kubernetes/kubernetes/pull/85837), [@pickledrick](https://github.com/pickledrick)) [SIG Cluster Lifecycle] +- Allow user to specify resource using --filename flag when invoking kubectl exec ([#88460](https://github.com/kubernetes/kubernetes/pull/88460), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] +- Apiserver added a new flag --goaway-chance which is the fraction of requests that will be closed gracefully(GOAWAY) to prevent HTTP/2 clients from getting stuck on a single apiserver. ([#88567](https://github.com/kubernetes/kubernetes/pull/88567), [@answer1991](https://github.com/answer1991)) [SIG API Machinery] +- Azure Cloud Provider now supports using Azure network resources (Virtual Network, Load Balancer, Public IP, Route Table, Network Security Group, etc.) in different AAD Tenant and Subscription than those for the Kubernetes cluster. To use the feature, please reference https://github.com/kubernetes-sigs/cloud-provider-azure/blob/master/docs/cloud-provider-config.md#host-network-resources-in-different-aad-tenant-and-subscription. ([#88384](https://github.com/kubernetes/kubernetes/pull/88384), [@bowen5](https://github.com/bowen5)) [SIG Cloud Provider] +- Azure VMSS/VMSSVM clients now suppress requests on throttling ([#86740](https://github.com/kubernetes/kubernetes/pull/86740), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Azure cloud provider cache TTL is configurable, list of the azure cloud provider is as following: + - "availabilitySetNodesCacheTTLInSeconds" + - "vmssCacheTTLInSeconds" + - "vmssVirtualMachinesCacheTTLInSeconds" + - "vmCacheTTLInSeconds" + - "loadBalancerCacheTTLInSeconds" + - "nsgCacheTTLInSeconds" + - "routeTableCacheTTLInSeconds" + ([#86266](https://github.com/kubernetes/kubernetes/pull/86266), [@zqingqing1](https://github.com/zqingqing1)) [SIG Cloud Provider] +- Azure global rate limit is switched to per-client. A set of new rate limit configure options are introduced, including routeRateLimit, SubnetsRateLimit, InterfaceRateLimit, RouteTableRateLimit, LoadBalancerRateLimit, PublicIPAddressRateLimit, SecurityGroupRateLimit, VirtualMachineRateLimit, StorageAccountRateLimit, DiskRateLimit, SnapshotRateLimit, VirtualMachineScaleSetRateLimit and VirtualMachineSizeRateLimit. The original rate limit options would be default values for those new client's rate limiter. ([#86515](https://github.com/kubernetes/kubernetes/pull/86515), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Azure network and VM clients now suppress requests on throttling ([#87122](https://github.com/kubernetes/kubernetes/pull/87122), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Azure storage clients now suppress requests on throttling ([#87306](https://github.com/kubernetes/kubernetes/pull/87306), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Azure: add support for single stack IPv6 ([#88448](https://github.com/kubernetes/kubernetes/pull/88448), [@aramase](https://github.com/aramase)) [SIG Cloud Provider] +- DefaultConstraints can be specified for PodTopologySpread Plugin in the scheduler’s ComponentConfig ([#88671](https://github.com/kubernetes/kubernetes/pull/88671), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- DisableAvailabilitySetNodes is added to avoid VM list for VMSS clusters. It should only be used when vmType is "vmss" and all the nodes (including control plane nodes) are VMSS virtual machines. ([#87685](https://github.com/kubernetes/kubernetes/pull/87685), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Elasticsearch supports automatically setting the advertise address ([#85944](https://github.com/kubernetes/kubernetes/pull/85944), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle and Instrumentation] +- EndpointSlices will now be enabled by default. A new `EndpointSliceProxying` feature gate determines if kube-proxy will use EndpointSlices, this is disabled by default. ([#86137](https://github.com/kubernetes/kubernetes/pull/86137), [@robscott](https://github.com/robscott)) [SIG Network] +- Kube-proxy: Added dual-stack IPv4/IPv6 support to the iptables proxier. ([#82462](https://github.com/kubernetes/kubernetes/pull/82462), [@vllry](https://github.com/vllry)) [SIG Network] +- Kubeadm now supports automatic calculations of dual-stack node cidr masks to kube-controller-manager. ([#85609](https://github.com/kubernetes/kubernetes/pull/85609), [@Arvinderpal](https://github.com/Arvinderpal)) [SIG Cluster Lifecycle] +- Kubeadm: add a upgrade health check that deploys a Job ([#81319](https://github.com/kubernetes/kubernetes/pull/81319), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: add the experimental feature gate PublicKeysECDSA that can be used to create a + cluster with ECDSA certificates from "kubeadm init". Renewal of existing ECDSA certificates is also supported using "kubeadm alpha certs renew", but not switching between the RSA and ECDSA algorithms on the fly or during upgrades. ([#86953](https://github.com/kubernetes/kubernetes/pull/86953), [@rojkov](https://github.com/rojkov)) [SIG API Machinery, Auth and Cluster Lifecycle] +- Kubeadm: implemented structured output of 'kubeadm config images list' command in JSON, YAML, Go template and JsonPath formats ([#86810](https://github.com/kubernetes/kubernetes/pull/86810), [@bart0sh](https://github.com/bart0sh)) [SIG Cluster Lifecycle] +- Kubeadm: on kubeconfig certificate renewal, keep the embedded CA in sync with the one on disk ([#88052](https://github.com/kubernetes/kubernetes/pull/88052), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: reject a node joining the cluster if a node with the same name already exists ([#81056](https://github.com/kubernetes/kubernetes/pull/81056), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: support Windows specific kubelet flags in kubeadm-flags.env ([#88287](https://github.com/kubernetes/kubernetes/pull/88287), [@gab-satchi](https://github.com/gab-satchi)) [SIG Cluster Lifecycle and Windows] +- Kubeadm: support automatic retry after failing to pull image ([#86899](https://github.com/kubernetes/kubernetes/pull/86899), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubeadm: upgrade supports fallback to the nearest known etcd version if an unknown k8s version is passed ([#88373](https://github.com/kubernetes/kubernetes/pull/88373), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubectl/drain: add disable-eviction option.Force drain to use delete, even if eviction is supported. This will bypass checking PodDisruptionBudgets, and should be used with caution. ([#85571](https://github.com/kubernetes/kubernetes/pull/85571), [@michaelgugino](https://github.com/michaelgugino)) [SIG CLI] +- Kubectl/drain: add skip-wait-for-delete-timeout option. If a pod’s `DeletionTimestamp` is older than N seconds, skip waiting for the pod. Seconds must be greater than 0 to skip. ([#85577](https://github.com/kubernetes/kubernetes/pull/85577), [@michaelgugino](https://github.com/michaelgugino)) [SIG CLI] +- Option `preConfiguredBackendPoolLoadBalancerTypes` is added to azure cloud provider for the pre-configured load balancers, possible values: `""`, `"internal"`, `"external"`,`"all"` ([#86338](https://github.com/kubernetes/kubernetes/pull/86338), [@gossion](https://github.com/gossion)) [SIG Cloud Provider] +- PodTopologySpread plugin now excludes terminatingPods when making scheduling decisions. ([#87845](https://github.com/kubernetes/kubernetes/pull/87845), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] +- Provider/azure: Network security groups can now be in a separate resource group. ([#87035](https://github.com/kubernetes/kubernetes/pull/87035), [@CecileRobertMichon](https://github.com/CecileRobertMichon)) [SIG Cloud Provider] +- SafeSysctlWhitelist: add net.ipv4.ping_group_range ([#85463](https://github.com/kubernetes/kubernetes/pull/85463), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Auth] +- Scheduler framework permit plugins now run at the end of the scheduling cycle, after reserve plugins. Waiting on permit will remain in the beginning of the binding cycle. ([#88199](https://github.com/kubernetes/kubernetes/pull/88199), [@mateuszlitwin](https://github.com/mateuszlitwin)) [SIG Scheduling] +- Scheduler: Add DefaultBinder plugin ([#87430](https://github.com/kubernetes/kubernetes/pull/87430), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling and Testing] +- Skip default spreading scoring plugin for pods that define TopologySpreadConstraints ([#87566](https://github.com/kubernetes/kubernetes/pull/87566), [@skilxn-go](https://github.com/skilxn-go)) [SIG Scheduling] +- The kubectl --dry-run flag now accepts the values 'client', 'server', and 'none', to support client-side and server-side dry-run strategies. The boolean and unset values for the --dry-run flag are deprecated and a value will be required in a future version. ([#87580](https://github.com/kubernetes/kubernetes/pull/87580), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI] +- Support server-side dry-run in kubectl with --dry-run=server for commands including apply, patch, create, run, annotate, label, set, autoscale, drain, rollout undo, and expose. ([#87714](https://github.com/kubernetes/kubernetes/pull/87714), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG API Machinery, CLI and Testing] +- Add --dry-run=server|client to kubectl delete, taint, replace ([#88292](https://github.com/kubernetes/kubernetes/pull/88292), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI and Testing] +- The feature PodTopologySpread (feature gate `EvenPodsSpread`) has been enabled by default in 1.18. ([#88105](https://github.com/kubernetes/kubernetes/pull/88105), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] +- The kubelet and the default docker runtime now support running ephemeral containers in the Linux process namespace of a target container. Other container runtimes must implement support for this feature before it will be available for that runtime. ([#84731](https://github.com/kubernetes/kubernetes/pull/84731), [@verb](https://github.com/verb)) [SIG Node] +- The underlying format of the `CPUManager` state file has changed. Upgrades should be seamless, but any third-party tools that rely on reading the previous format need to be updated. ([#84462](https://github.com/kubernetes/kubernetes/pull/84462), [@klueska](https://github.com/klueska)) [SIG Node and Testing] +- Update CNI version to v0.8.5 ([#78819](https://github.com/kubernetes/kubernetes/pull/78819), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Cluster Lifecycle, Network, Release and Testing] +- Webhooks have alpha support for network proxy ([#85870](https://github.com/kubernetes/kubernetes/pull/85870), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Auth and Testing] +- When client certificate files are provided, reload files for new connections, and close connections when a certificate changes. ([#79083](https://github.com/kubernetes/kubernetes/pull/79083), [@jackkleeman](https://github.com/jackkleeman)) [SIG API Machinery, Auth, Node and Testing] +- When deleting objects using kubectl with the --force flag, you are no longer required to also specify --grace-period=0. ([#87776](https://github.com/kubernetes/kubernetes/pull/87776), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] +- Windows nodes on GCE can use virtual TPM-based authentication to the control plane. ([#85466](https://github.com/kubernetes/kubernetes/pull/85466), [@pjh](https://github.com/pjh)) [SIG Cluster Lifecycle] +- You can now pass "--node-ip ::" to kubelet to indicate that it should autodetect an IPv6 address to use as the node's primary address. ([#85850](https://github.com/kubernetes/kubernetes/pull/85850), [@danwinship](https://github.com/danwinship)) [SIG Cloud Provider, Network and Node] +- `kubectl` now contains a `kubectl alpha debug` command. This command allows attaching an ephemeral container to a running pod for the purposes of debugging. ([#88004](https://github.com/kubernetes/kubernetes/pull/88004), [@verb](https://github.com/verb)) [SIG CLI] +- TLS Server Name overrides can now be specified in a kubeconfig file and via --tls-server-name in kubectl ([#88769](https://github.com/kubernetes/kubernetes/pull/88769), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth and CLI] + +#### Metrics: +- Add `rest_client_rate_limiter_duration_seconds` metric to component-base to track client side rate limiter latency in seconds. Broken down by verb and URL. ([#88134](https://github.com/kubernetes/kubernetes/pull/88134), [@jennybuckley](https://github.com/jennybuckley)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] +- Added two client certificate metrics for exec auth: + - `rest_client_certificate_expiration_seconds` a gauge reporting the lifetime of the current client certificate. Reports the time of expiry in seconds since January 1, 1970 UTC. + - `rest_client_certificate_rotation_age` a histogram reporting the age of a just rotated client certificate in seconds. ([#84382](https://github.com/kubernetes/kubernetes/pull/84382), [@sambdavidson](https://github.com/sambdavidson)) [SIG API Machinery, Auth, Cluster Lifecycle and Instrumentation] +- Controller manager serve workqueue metrics ([#87967](https://github.com/kubernetes/kubernetes/pull/87967), [@zhan849](https://github.com/zhan849)) [SIG API Machinery] +- Following metrics have been turned off: + - kubelet_pod_worker_latency_microseconds + - kubelet_pod_start_latency_microseconds + - kubelet_cgroup_manager_latency_microseconds + - kubelet_pod_worker_start_latency_microseconds + - kubelet_pleg_relist_latency_microseconds + - kubelet_pleg_relist_interval_microseconds + - kubelet_eviction_stats_age_microseconds + - kubelet_runtime_operations + - kubelet_runtime_operations_latency_microseconds + - kubelet_runtime_operations_errors + - kubelet_device_plugin_registration_count + - kubelet_device_plugin_alloc_latency_microseconds + - kubelet_docker_operations + - kubelet_docker_operations_latency_microseconds + - kubelet_docker_operations_errors + - kubelet_docker_operations_timeout + - network_plugin_operations_latency_microseconds ([#83841](https://github.com/kubernetes/kubernetes/pull/83841), [@RainbowMango](https://github.com/RainbowMango)) [SIG Network and Node] +- Kube-apiserver metrics will now include request counts, latencies, and response sizes for /healthz, /livez, and /readyz requests. ([#83598](https://github.com/kubernetes/kubernetes/pull/83598), [@jktomer](https://github.com/jktomer)) [SIG API Machinery] +- Kubelet now exports a `server_expiration_renew_failure` and `client_expiration_renew_failure` metric counter if the certificate rotations cannot be performed. ([#84614](https://github.com/kubernetes/kubernetes/pull/84614), [@rphillips](https://github.com/rphillips)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node and Release] +- Kubelet: the metric process_start_time_seconds be marked as with the ALPHA stability level. ([#85446](https://github.com/kubernetes/kubernetes/pull/85446), [@RainbowMango](https://github.com/RainbowMango)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Node] +- New metric `kubelet_pleg_last_seen_seconds` to aid diagnosis of PLEG not healthy issues. ([#86251](https://github.com/kubernetes/kubernetes/pull/86251), [@bboreham](https://github.com/bboreham)) [SIG Node] + +### Other (Bug, Cleanup or Flake) + +- Fixed a regression with clients prior to 1.15 not being able to update podIP in pod status, or podCIDR in node spec, against >= 1.16 API servers ([#88505](https://github.com/kubernetes/kubernetes/pull/88505), [@liggitt](https://github.com/liggitt)) [SIG Apps and Network] +- Fixed "kubectl describe statefulsets.apps" printing garbage for rolling update partition ([#85846](https://github.com/kubernetes/kubernetes/pull/85846), [@phil9909](https://github.com/phil9909)) [SIG CLI] +- Add a event to PV when filesystem on PV does not match actual filesystem on disk ([#86982](https://github.com/kubernetes/kubernetes/pull/86982), [@gnufied](https://github.com/gnufied)) [SIG Storage] +- Add azure disk WriteAccelerator support ([#87945](https://github.com/kubernetes/kubernetes/pull/87945), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Add delays between goroutines for vm instance update ([#88094](https://github.com/kubernetes/kubernetes/pull/88094), [@aramase](https://github.com/aramase)) [SIG Cloud Provider] +- Add init containers log to cluster dump info. ([#88324](https://github.com/kubernetes/kubernetes/pull/88324), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] +- Addons: elasticsearch discovery supports IPv6 ([#85543](https://github.com/kubernetes/kubernetes/pull/85543), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle and Instrumentation] +- Adds "volume.beta.kubernetes.io/migrated-to" annotation to PV's and PVC's when they are migrated to signal external provisioners to pick up those objects for Provisioning and Deleting. ([#87098](https://github.com/kubernetes/kubernetes/pull/87098), [@davidz627](https://github.com/davidz627)) [SIG Storage] +- All api-server log request lines in a more greppable format. ([#87203](https://github.com/kubernetes/kubernetes/pull/87203), [@lavalamp](https://github.com/lavalamp)) [SIG API Machinery] +- Azure VMSS LoadBalancerBackendAddressPools updating has been improved with sequential-sync + concurrent-async requests. ([#88699](https://github.com/kubernetes/kubernetes/pull/88699), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Azure cloud provider now obtains AAD token who audience claim will not have spn: prefix ([#87590](https://github.com/kubernetes/kubernetes/pull/87590), [@weinong](https://github.com/weinong)) [SIG Cloud Provider] +- AzureFile and CephFS use the new Mount library that prevents logging of sensitive mount options. ([#88684](https://github.com/kubernetes/kubernetes/pull/88684), [@saad-ali](https://github.com/saad-ali)) [SIG Storage] +- Bind dns-horizontal containers to linux nodes to avoid Windows scheduling on kubernetes cluster includes linux nodes and windows nodes ([#83364](https://github.com/kubernetes/kubernetes/pull/83364), [@wawa0210](https://github.com/wawa0210)) [SIG Cluster Lifecycle and Windows] +- Bind kube-dns containers to linux nodes to avoid Windows scheduling ([#83358](https://github.com/kubernetes/kubernetes/pull/83358), [@wawa0210](https://github.com/wawa0210)) [SIG Cluster Lifecycle and Windows] +- Bind metadata-agent containers to linux nodes to avoid Windows scheduling on kubernetes cluster includes linux nodes and windows nodes ([#83363](https://github.com/kubernetes/kubernetes/pull/83363), [@wawa0210](https://github.com/wawa0210)) [SIG Cluster Lifecycle, Instrumentation and Windows] +- Bind metrics-server containers to linux nodes to avoid Windows scheduling on kubernetes cluster includes linux nodes and windows nodes ([#83362](https://github.com/kubernetes/kubernetes/pull/83362), [@wawa0210](https://github.com/wawa0210)) [SIG Cluster Lifecycle, Instrumentation and Windows] +- Bug fixes: Make sure we include latest packages node #351 (@caseydavenport) ([#84163](https://github.com/kubernetes/kubernetes/pull/84163), [@david-tigera](https://github.com/david-tigera)) [SIG Cluster Lifecycle] +- CPU limits are now respected for Windows containers. If a node is over-provisioned, no weighting is used, only limits are respected. ([#86101](https://github.com/kubernetes/kubernetes/pull/86101), [@PatrickLang](https://github.com/PatrickLang)) [SIG Node, Testing and Windows] +- Changed core_pattern on COS nodes to be an absolute path. ([#86329](https://github.com/kubernetes/kubernetes/pull/86329), [@mml](https://github.com/mml)) [SIG Cluster Lifecycle and Node] +- Client-go certificate manager rotation gained the ability to preserve optional intermediate chains accompanying issued certificates ([#88744](https://github.com/kubernetes/kubernetes/pull/88744), [@jackkleeman](https://github.com/jackkleeman)) [SIG API Machinery and Auth] +- Cloud provider config CloudProviderBackoffMode has been removed since it won't be used anymore. ([#88463](https://github.com/kubernetes/kubernetes/pull/88463), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Conformance image now depends on stretch-slim instead of debian-hyperkube-base as that image is being deprecated and removed. ([#88702](https://github.com/kubernetes/kubernetes/pull/88702), [@dims](https://github.com/dims)) [SIG Cluster Lifecycle, Release and Testing] +- Deprecate --generator flag from kubectl create commands ([#88655](https://github.com/kubernetes/kubernetes/pull/88655), [@soltysh](https://github.com/soltysh)) [SIG CLI] +- During initialization phase (preflight), kubeadm now verifies the presence of the conntrack executable ([#85857](https://github.com/kubernetes/kubernetes/pull/85857), [@hnanni](https://github.com/hnanni)) [SIG Cluster Lifecycle] +- EndpointSlice should not contain endpoints for terminating pods ([#89056](https://github.com/kubernetes/kubernetes/pull/89056), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps and Network] +- Evictions due to pods breaching their ephemeral storage limits are now recorded by the `kubelet_evictions` metric and can be alerted on. ([#87906](https://github.com/kubernetes/kubernetes/pull/87906), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node] +- Filter published OpenAPI schema by making nullable, required fields non-required in order to avoid kubectl to wrongly reject null values. ([#85722](https://github.com/kubernetes/kubernetes/pull/85722), [@sttts](https://github.com/sttts)) [SIG API Machinery] +- Fix /readyz to return error immediately after a shutdown is initiated, before the --shutdown-delay-duration has elapsed. ([#88911](https://github.com/kubernetes/kubernetes/pull/88911), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] +- Fix API Server potential memory leak issue in processing watch request. ([#85410](https://github.com/kubernetes/kubernetes/pull/85410), [@answer1991](https://github.com/answer1991)) [SIG API Machinery] +- Fix EndpointSlice controller race condition and ensure that it handles external changes to EndpointSlices. ([#85703](https://github.com/kubernetes/kubernetes/pull/85703), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- Fix IPv6 addresses lost issue in pure ipv6 vsphere environment ([#86001](https://github.com/kubernetes/kubernetes/pull/86001), [@hubv](https://github.com/hubv)) [SIG Cloud Provider] +- Fix LoadBalancer rule checking so that no unexpected LoadBalancer updates are made ([#85990](https://github.com/kubernetes/kubernetes/pull/85990), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Fix a bug in kube-proxy that caused it to crash when using load balancers with a different IP family ([#87117](https://github.com/kubernetes/kubernetes/pull/87117), [@aojea](https://github.com/aojea)) [SIG Network] +- Fix a bug in port-forward: named port not working with service ([#85511](https://github.com/kubernetes/kubernetes/pull/85511), [@oke-py](https://github.com/oke-py)) [SIG CLI] +- Fix a bug in the dual-stack IPVS proxier where stale IPv6 endpoints were not being cleaned up ([#87695](https://github.com/kubernetes/kubernetes/pull/87695), [@andrewsykim](https://github.com/andrewsykim)) [SIG Network] +- Fix a bug that orphan revision cannot be adopted and statefulset cannot be synced ([#86801](https://github.com/kubernetes/kubernetes/pull/86801), [@likakuli](https://github.com/likakuli)) [SIG Apps] +- Fix a bug where ExternalTrafficPolicy is not applied to service ExternalIPs. ([#88786](https://github.com/kubernetes/kubernetes/pull/88786), [@freehan](https://github.com/freehan)) [SIG Network] +- Fix a bug where kubenet fails to parse the tc output. ([#83572](https://github.com/kubernetes/kubernetes/pull/83572), [@chendotjs](https://github.com/chendotjs)) [SIG Network] +- Fix a regression in kubenet that prevent pods to obtain ip addresses ([#85993](https://github.com/kubernetes/kubernetes/pull/85993), [@chendotjs](https://github.com/chendotjs)) [SIG Network and Node] +- Fix azure file AuthorizationFailure ([#85475](https://github.com/kubernetes/kubernetes/pull/85475), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fix bug where EndpointSlice controller would attempt to modify shared objects. ([#85368](https://github.com/kubernetes/kubernetes/pull/85368), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps and Network] +- Fix handling of aws-load-balancer-security-groups annotation. Security-Groups assigned with this annotation are no longer modified by kubernetes which is the expected behaviour of most users. Also no unnecessary Security-Groups are created anymore if this annotation is used. ([#83446](https://github.com/kubernetes/kubernetes/pull/83446), [@Elias481](https://github.com/Elias481)) [SIG Cloud Provider] +- Fix invalid VMSS updates due to incorrect cache ([#89002](https://github.com/kubernetes/kubernetes/pull/89002), [@ArchangelSDY](https://github.com/ArchangelSDY)) [SIG Cloud Provider] +- Fix isCurrentInstance for Windows by removing the dependency of hostname. ([#89138](https://github.com/kubernetes/kubernetes/pull/89138), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Fix issue #85805 about a resource not found in azure cloud provider when LoadBalancer specified in another resource group. ([#86502](https://github.com/kubernetes/kubernetes/pull/86502), [@levimm](https://github.com/levimm)) [SIG Cloud Provider] +- Fix kubectl annotate error when local=true is set ([#86952](https://github.com/kubernetes/kubernetes/pull/86952), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] +- Fix kubectl create deployment image name ([#86636](https://github.com/kubernetes/kubernetes/pull/86636), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] +- Fix `kubectl drain ignore` daemonsets and others. ([#87361](https://github.com/kubernetes/kubernetes/pull/87361), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] +- Fix missing "apiVersion" for "involvedObject" in Events for Nodes. ([#87537](https://github.com/kubernetes/kubernetes/pull/87537), [@uthark](https://github.com/uthark)) [SIG Apps and Node] +- Fix nil pointer dereference in azure cloud provider ([#85975](https://github.com/kubernetes/kubernetes/pull/85975), [@ldx](https://github.com/ldx)) [SIG Cloud Provider] +- Fix regression in statefulset conversion which prevents applying a statefulset multiple times. ([#87706](https://github.com/kubernetes/kubernetes/pull/87706), [@liggitt](https://github.com/liggitt)) [SIG Apps and Testing] +- Fix route conflicted operations when updating multiple routes together ([#88209](https://github.com/kubernetes/kubernetes/pull/88209), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Fix that prevents repeated fetching of PVC/PV objects by kubelet when processing of pod volumes fails. While this prevents hammering API server in these error scenarios, it means that some errors in processing volume(s) for a pod could now take up to 2-3 minutes before retry. ([#88141](https://github.com/kubernetes/kubernetes/pull/88141), [@tedyu](https://github.com/tedyu)) [SIG Node and Storage] +- Fix the bug PIP's DNS is deleted if no DNS label service annotation isn't set. ([#87246](https://github.com/kubernetes/kubernetes/pull/87246), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Fix control plane hosts rolling upgrade causing thundering herd of LISTs on etcd leading to control plane unavailability. ([#86430](https://github.com/kubernetes/kubernetes/pull/86430), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery, Node and Testing] +- Fix: add azure disk migration support for CSINode ([#88014](https://github.com/kubernetes/kubernetes/pull/88014), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fix: add non-retriable errors in azure clients ([#87941](https://github.com/kubernetes/kubernetes/pull/87941), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: add remediation in azure disk attach/detach ([#88444](https://github.com/kubernetes/kubernetes/pull/88444), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: azure data disk should use same key as os disk by default ([#86351](https://github.com/kubernetes/kubernetes/pull/86351), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: azure disk could not mounted on Standard_DC4s/DC2s instances ([#86612](https://github.com/kubernetes/kubernetes/pull/86612), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fix: azure file mount timeout issue ([#88610](https://github.com/kubernetes/kubernetes/pull/88610), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fix: check disk status before disk azure disk ([#88360](https://github.com/kubernetes/kubernetes/pull/88360), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: corrupted mount point in csi driver ([#88569](https://github.com/kubernetes/kubernetes/pull/88569), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage] +- Fix: get azure disk lun timeout issue ([#88158](https://github.com/kubernetes/kubernetes/pull/88158), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fix: update azure disk max count ([#88201](https://github.com/kubernetes/kubernetes/pull/88201), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fixed "requested device X but found Y" attach error on AWS. ([#85675](https://github.com/kubernetes/kubernetes/pull/85675), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider and Storage] +- Fixed NetworkPolicy validation that `Except` values are accepted when they are outside the CIDR range. ([#86578](https://github.com/kubernetes/kubernetes/pull/86578), [@tnqn](https://github.com/tnqn)) [SIG Network] +- Fixed a bug in the TopologyManager. Previously, the TopologyManager would only guarantee alignment if container creation was serialized in some way. Alignment is now guaranteed under all scenarios of container creation. ([#87759](https://github.com/kubernetes/kubernetes/pull/87759), [@klueska](https://github.com/klueska)) [SIG Node] +- Fixed a bug which could prevent a provider ID from ever being set for node if an error occurred determining the provider ID when the node was added. ([#87043](https://github.com/kubernetes/kubernetes/pull/87043), [@zjs](https://github.com/zjs)) [SIG Apps and Cloud Provider] +- Fixed a data race in the kubelet image manager that can cause static pod workers to silently stop working. ([#88915](https://github.com/kubernetes/kubernetes/pull/88915), [@roycaihw](https://github.com/roycaihw)) [SIG Node] +- Fixed a panic in the kubelet cleaning up pod volumes ([#86277](https://github.com/kubernetes/kubernetes/pull/86277), [@tedyu](https://github.com/tedyu)) [SIG Storage] +- Fixed a regression where the kubelet would fail to update the ready status of pods. ([#84951](https://github.com/kubernetes/kubernetes/pull/84951), [@tedyu](https://github.com/tedyu)) [SIG Node] +- Fixed an issue that could cause the kubelet to incorrectly run concurrent pod reconciliation loops and crash. ([#89055](https://github.com/kubernetes/kubernetes/pull/89055), [@tedyu](https://github.com/tedyu)) [SIG Node] +- Fixed block CSI volume cleanup after timeouts. ([#88660](https://github.com/kubernetes/kubernetes/pull/88660), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- Fixed cleaning of CSI raw block volumes. ([#87978](https://github.com/kubernetes/kubernetes/pull/87978), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- Fixed AWS Cloud Provider attempting to delete LoadBalancer security group it didn’t provision, and fixed AWS Cloud Provider creating a default LoadBalancer security group even if annotation `service.beta.kubernetes.io/aws-load-balancer-security-groups` is present because the intended behavior of aws-load-balancer-security-groups is to replace all security groups assigned to the load balancer. ([#84265](https://github.com/kubernetes/kubernetes/pull/84265), [@bhagwat070919](https://github.com/bhagwat070919)) [SIG Cloud Provider] +- Fixed two scheduler metrics (pending_pods and schedule_attempts_total) not being recorded ([#87692](https://github.com/kubernetes/kubernetes/pull/87692), [@everpeace](https://github.com/everpeace)) [SIG Scheduling] +- Fixes an issue with kubelet-reported pod status on deleted/recreated pods. ([#86320](https://github.com/kubernetes/kubernetes/pull/86320), [@liggitt](https://github.com/liggitt)) [SIG Node] +- Fixes conversion error in multi-version custom resources that could cause metadata.generation to increment on no-op patches or updates of a custom resource. ([#88995](https://github.com/kubernetes/kubernetes/pull/88995), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] +- Fixes issue where AAD token obtained by kubectl is incompatible with on-behalf-of flow and oidc. The audience claim before this fix has "spn:" prefix. After this fix, "spn:" prefix is omitted. ([#86412](https://github.com/kubernetes/kubernetes/pull/86412), [@weinong](https://github.com/weinong)) [SIG API Machinery, Auth and Cloud Provider] +- Fixes an issue where you can't attach more than 15 GCE Persistent Disks to c2, n2, m1, m2 machine types. ([#88602](https://github.com/kubernetes/kubernetes/pull/88602), [@yuga711](https://github.com/yuga711)) [SIG Storage] +- Fixes kube-proxy when EndpointSlice feature gate is enabled on Windows. ([#86016](https://github.com/kubernetes/kubernetes/pull/86016), [@robscott](https://github.com/robscott)) [SIG Auth and Network] +- Fixes kubelet crash in client certificate rotation cases ([#88079](https://github.com/kubernetes/kubernetes/pull/88079), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Node] +- Fixes service account token admission error in clusters that do not run the service account token controller ([#87029](https://github.com/kubernetes/kubernetes/pull/87029), [@liggitt](https://github.com/liggitt)) [SIG Auth] +- Fixes v1.17.0 regression in --service-cluster-ip-range handling with IPv4 ranges larger than 65536 IP addresses ([#86534](https://github.com/kubernetes/kubernetes/pull/86534), [@liggitt](https://github.com/liggitt)) [SIG Network] +- Fixes wrong validation result of NetworkPolicy PolicyTypes ([#85747](https://github.com/kubernetes/kubernetes/pull/85747), [@tnqn](https://github.com/tnqn)) [SIG Network] +- For subprotocol negotiation, both client and server protocol is required now. ([#86646](https://github.com/kubernetes/kubernetes/pull/86646), [@tedyu](https://github.com/tedyu)) [SIG API Machinery and Node] +- For volumes that allow attaches across multiple nodes, attach and detach operations across different nodes are now executed in parallel. ([#88678](https://github.com/kubernetes/kubernetes/pull/88678), [@verult](https://github.com/verult)) [SIG Storage] +- Garbage collector now can correctly orphan ControllerRevisions when StatefulSets are deleted with orphan propagation policy. ([#84984](https://github.com/kubernetes/kubernetes/pull/84984), [@cofyc](https://github.com/cofyc)) [SIG Apps] +- `Get-kube.sh` uses the gcloud's current local GCP service account for auth when the provider is GCE or GKE instead of the metadata server default ([#88383](https://github.com/kubernetes/kubernetes/pull/88383), [@BenTheElder](https://github.com/BenTheElder)) [SIG Cluster Lifecycle] +- Golang/x/net has been updated to bring in fixes for CVE-2020-9283 ([#88381](https://github.com/kubernetes/kubernetes/pull/88381), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] +- If a serving certificate’s param specifies a name that is an IP for an SNI certificate, it will have priority for replying to server connections. ([#85308](https://github.com/kubernetes/kubernetes/pull/85308), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] +- Improved yaml parsing performance ([#85458](https://github.com/kubernetes/kubernetes/pull/85458), [@cjcullen](https://github.com/cjcullen)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Node] +- Improves performance of the node authorizer ([#87696](https://github.com/kubernetes/kubernetes/pull/87696), [@liggitt](https://github.com/liggitt)) [SIG Auth] +- In GKE alpha clusters it will be possible to use the service annotation `cloud.google.com/network-tier: Standard` ([#88487](https://github.com/kubernetes/kubernetes/pull/88487), [@zioproto](https://github.com/zioproto)) [SIG Cloud Provider] +- Includes FSType when describing CSI persistent volumes. ([#85293](https://github.com/kubernetes/kubernetes/pull/85293), [@huffmanca](https://github.com/huffmanca)) [SIG CLI and Storage] +- Iptables/userspace proxy: improve performance by getting local addresses only once per sync loop, instead of for every external IP ([#85617](https://github.com/kubernetes/kubernetes/pull/85617), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Network] +- Kube-aggregator: always sets unavailableGauge metric to reflect the current state of a service. ([#87778](https://github.com/kubernetes/kubernetes/pull/87778), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] +- Kube-apiserver: fixed a conflict error encountered attempting to delete a pod with gracePeriodSeconds=0 and a resourceVersion precondition ([#85516](https://github.com/kubernetes/kubernetes/pull/85516), [@michaelgugino](https://github.com/michaelgugino)) [SIG API Machinery] +- Kube-proxy no longer modifies shared EndpointSlices. ([#86092](https://github.com/kubernetes/kubernetes/pull/86092), [@robscott](https://github.com/robscott)) [SIG Network] +- Kube-proxy: on dual-stack mode, if it is not able to get the IP Family of an endpoint, logs it with level InfoV(4) instead of Warning, avoiding flooding the logs for endpoints without addresses ([#88934](https://github.com/kubernetes/kubernetes/pull/88934), [@aojea](https://github.com/aojea)) [SIG Network] +- Kubeadm allows to configure single-stack clusters if dual-stack is enabled ([#87453](https://github.com/kubernetes/kubernetes/pull/87453), [@aojea](https://github.com/aojea)) [SIG API Machinery, Cluster Lifecycle and Network] +- Kubeadm now includes CoreDNS version 1.6.7 ([#86260](https://github.com/kubernetes/kubernetes/pull/86260), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] +- Kubeadm upgrades always persist the etcd backup for stacked ([#86861](https://github.com/kubernetes/kubernetes/pull/86861), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubeadm: 'kubeadm alpha kubelet config download' has been removed, please use 'kubeadm upgrade node phase kubelet-config' instead ([#87944](https://github.com/kubernetes/kubernetes/pull/87944), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubeadm: Forward cluster name to the controller-manager arguments ([#85817](https://github.com/kubernetes/kubernetes/pull/85817), [@ereslibre](https://github.com/ereslibre)) [SIG Cluster Lifecycle] +- Kubeadm: add support for the "ci/k8s-master" version label as a replacement for "ci-cross/*", which no longer exists. ([#86609](https://github.com/kubernetes/kubernetes/pull/86609), [@Pensu](https://github.com/Pensu)) [SIG Cluster Lifecycle] +- Kubeadm: apply further improvements to the tentative support for concurrent etcd member join. Fixes a bug where multiple members can receive the same hostname. Increase the etcd client dial timeout and retry timeout for add/remove/... operations. ([#87505](https://github.com/kubernetes/kubernetes/pull/87505), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: don't write the kubelet environment file on "upgrade apply" ([#85412](https://github.com/kubernetes/kubernetes/pull/85412), [@boluisa](https://github.com/boluisa)) [SIG Cluster Lifecycle] +- Kubeadm: fix potential panic when executing "kubeadm reset" with a corrupted kubelet.conf file ([#86216](https://github.com/kubernetes/kubernetes/pull/86216), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: fix the bug that 'kubeadm upgrade' hangs in single node cluster ([#88434](https://github.com/kubernetes/kubernetes/pull/88434), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubeadm: make sure images are pre-pulled even if a tag did not change but their contents changed ([#85603](https://github.com/kubernetes/kubernetes/pull/85603), [@bart0sh](https://github.com/bart0sh)) [SIG Cluster Lifecycle] +- Kubeadm: remove 'kubeadm upgrade node config' command since it was deprecated in v1.15, please use 'kubeadm upgrade node phase kubelet-config' instead ([#87975](https://github.com/kubernetes/kubernetes/pull/87975), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubeadm: remove the deprecated CoreDNS feature-gate. It was set to "true" since v1.11 when the feature went GA. In v1.13 it was marked as deprecated and hidden from the CLI. ([#87400](https://github.com/kubernetes/kubernetes/pull/87400), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: retry `kubeadm-config` ConfigMap creation or mutation if the apiserver is not responding. This will improve resiliency when joining new control plane nodes. ([#85763](https://github.com/kubernetes/kubernetes/pull/85763), [@ereslibre](https://github.com/ereslibre)) [SIG Cluster Lifecycle] +- Kubeadm: tolerate whitespace when validating certificate authority PEM data in kubeconfig files ([#86705](https://github.com/kubernetes/kubernetes/pull/86705), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: use bind-address option to configure the kube-controller-manager and kube-scheduler http probes ([#86493](https://github.com/kubernetes/kubernetes/pull/86493), [@aojea](https://github.com/aojea)) [SIG Cluster Lifecycle] +- Kubeadm: uses the api-server AdvertiseAddress IP family to choose the etcd endpoint IP family for non external etcd clusters ([#85745](https://github.com/kubernetes/kubernetes/pull/85745), [@aojea](https://github.com/aojea)) [SIG Cluster Lifecycle] +- Kubectl cluster-info dump --output-directory=xxx now generates files with an extension depending on the output format. ([#82070](https://github.com/kubernetes/kubernetes/pull/82070), [@olivierlemasle](https://github.com/olivierlemasle)) [SIG CLI] +- `Kubectl describe <type>` and `kubectl top pod` will return a message saying `"No resources found"` or `"No resources found in <namespace> namespace"` if there are no results to display. ([#87527](https://github.com/kubernetes/kubernetes/pull/87527), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] +- `Kubectl drain node --dry-run` will list pods that would be evicted or deleted ([#82660](https://github.com/kubernetes/kubernetes/pull/82660), [@sallyom](https://github.com/sallyom)) [SIG CLI] +- `Kubectl set resources` will no longer return an error if passed an empty change for a resource. `kubectl set subject` will no longer return an error if passed an empty change for a resource. ([#85490](https://github.com/kubernetes/kubernetes/pull/85490), [@sallyom](https://github.com/sallyom)) [SIG CLI] +- Kubelet metrics gathered through metrics-server or prometheus should no longer timeout for Windows nodes running more than 3 pods. ([#87730](https://github.com/kubernetes/kubernetes/pull/87730), [@marosset](https://github.com/marosset)) [SIG Node, Testing and Windows] +- Kubelet metrics have been changed to buckets. For example the `exec/{podNamespace}/{podID}/{containerName}` is now just exec. ([#87913](https://github.com/kubernetes/kubernetes/pull/87913), [@cheftako](https://github.com/cheftako)) [SIG Node] +- Kubelets perform fewer unnecessary pod status update operations on the API server. ([#88591](https://github.com/kubernetes/kubernetes/pull/88591), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node and Scalability] +- Kubernetes will try to acquire the iptables lock every 100 msec during 5 seconds instead of every second. This is especially useful for environments using kube-proxy in iptables mode with a high churn rate of services. ([#85771](https://github.com/kubernetes/kubernetes/pull/85771), [@aojea](https://github.com/aojea)) [SIG Network] +- Limit number of instances in a single update to GCE target pool to 1000. ([#87881](https://github.com/kubernetes/kubernetes/pull/87881), [@wojtek-t](https://github.com/wojtek-t)) [SIG Cloud Provider, Network and Scalability] +- Make Azure clients only retry on specified HTTP status codes ([#88017](https://github.com/kubernetes/kubernetes/pull/88017), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Make error message and service event message more clear ([#86078](https://github.com/kubernetes/kubernetes/pull/86078), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Minimize AWS NLB health check timeout when externalTrafficPolicy set to Local ([#73363](https://github.com/kubernetes/kubernetes/pull/73363), [@kellycampbell](https://github.com/kellycampbell)) [SIG Cloud Provider] +- Pause image contains "Architecture" in non-amd64 images ([#87954](https://github.com/kubernetes/kubernetes/pull/87954), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release] +- Pause image upgraded to 3.2 in kubelet and kubeadm. ([#88173](https://github.com/kubernetes/kubernetes/pull/88173), [@BenTheElder](https://github.com/BenTheElder)) [SIG CLI, Cluster Lifecycle, Node and Testing] +- Plugin/PluginConfig and Policy APIs are mutually exclusive when running the scheduler ([#88864](https://github.com/kubernetes/kubernetes/pull/88864), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- Remove `FilteredNodesStatuses` argument from `PreScore`'s interface. ([#88189](https://github.com/kubernetes/kubernetes/pull/88189), [@skilxn-go](https://github.com/skilxn-go)) [SIG Scheduling and Testing] +- Resolved a performance issue in the node authorizer index maintenance. ([#87693](https://github.com/kubernetes/kubernetes/pull/87693), [@liggitt](https://github.com/liggitt)) [SIG Auth] +- Resolved regression in admission, authentication, and authorization webhook performance in v1.17.0-rc.1 ([#85810](https://github.com/kubernetes/kubernetes/pull/85810), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] +- Resolves performance regression in `kubectl get all` and in client-go discovery clients constructed using `NewDiscoveryClientForConfig` or `NewDiscoveryClientForConfigOrDie`. ([#86168](https://github.com/kubernetes/kubernetes/pull/86168), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] +- Reverted a kubectl azure auth module change where oidc claim spn: prefix was omitted resulting a breaking behavior with existing Azure AD OIDC enabled api-server ([#87507](https://github.com/kubernetes/kubernetes/pull/87507), [@weinong](https://github.com/weinong)) [SIG API Machinery, Auth and Cloud Provider] +- Shared informers are now more reliable in the face of network disruption. ([#86015](https://github.com/kubernetes/kubernetes/pull/86015), [@squeed](https://github.com/squeed)) [SIG API Machinery] +- Specifying PluginConfig for the same plugin more than once fails scheduler startup. + Specifying extenders and configuring .ignoredResources for the NodeResourcesFit plugin fails ([#88870](https://github.com/kubernetes/kubernetes/pull/88870), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- Terminating a restartPolicy=Never pod no longer has a chance to report the pod succeeded when it actually failed. ([#88440](https://github.com/kubernetes/kubernetes/pull/88440), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node and Testing] +- The CSR signing cert/key pairs will be reloaded from disk like the kube-apiserver cert/key pairs ([#86816](https://github.com/kubernetes/kubernetes/pull/86816), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Apps and Auth] +- The EventRecorder from k8s.io/client-go/tools/events will now create events in the default namespace (instead of kube-system) when the related object does not have it set. ([#88815](https://github.com/kubernetes/kubernetes/pull/88815), [@enj](https://github.com/enj)) [SIG API Machinery] +- The audit event sourceIPs list will now always end with the IP that sent the request directly to the API server. ([#87167](https://github.com/kubernetes/kubernetes/pull/87167), [@tallclair](https://github.com/tallclair)) [SIG API Machinery and Auth] +- The sample-apiserver aggregated conformance test has updated to use the Kubernetes v1.17.0 sample apiserver ([#84735](https://github.com/kubernetes/kubernetes/pull/84735), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture, CLI and Testing] +- To reduce chances of throttling, VM cache is set to nil when Azure node provisioning state is deleting ([#87635](https://github.com/kubernetes/kubernetes/pull/87635), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- VMSS cache is added so that less chances of VMSS GET throttling ([#85885](https://github.com/kubernetes/kubernetes/pull/85885), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Wait for kubelet & kube-proxy to be ready on Windows node within 10s ([#85228](https://github.com/kubernetes/kubernetes/pull/85228), [@YangLu1031](https://github.com/YangLu1031)) [SIG Cluster Lifecycle] +- `kubectl apply -f <file> --prune -n <namespace>` should prune all resources not defined in the file in the cli specified namespace. ([#85613](https://github.com/kubernetes/kubernetes/pull/85613), [@MartinKaburu](https://github.com/MartinKaburu)) [SIG CLI] +- `kubectl create clusterrolebinding` creates rbac.authorization.k8s.io/v1 object ([#85889](https://github.com/kubernetes/kubernetes/pull/85889), [@oke-py](https://github.com/oke-py)) [SIG CLI] +- `kubectl diff` now returns 1 only on diff finding changes, and >1 on kubectl errors. The "exit status code 1" message has also been muted. ([#87437](https://github.com/kubernetes/kubernetes/pull/87437), [@apelisse](https://github.com/apelisse)) [SIG CLI and Testing] + +## Dependencies + +- Update Calico to v3.8.4 ([#84163](https://github.com/kubernetes/kubernetes/pull/84163), [@david-tigera](https://github.com/david-tigera))[SIG Cluster Lifecycle] +- Update aws-sdk-go dependency to v1.28.2 ([#87253](https://github.com/kubernetes/kubernetes/pull/87253), [@SaranBalaji90](https://github.com/SaranBalaji90))[SIG API Machinery and Cloud Provider] +- Update CNI version to v0.8.5 ([#78819](https://github.com/kubernetes/kubernetes/pull/78819), [@justaugustus](https://github.com/justaugustus))[SIG Release, Testing, Network, Cluster Lifecycle and API Machinery] +- Update cri-tools to v1.17.0 ([#86305](https://github.com/kubernetes/kubernetes/pull/86305), [@saschagrunert](https://github.com/saschagrunert))[SIG Release and Cluster Lifecycle] +- Pause image upgraded to 3.2 in kubelet and kubeadm ([#88173](https://github.com/kubernetes/kubernetes/pull/88173), [@BenTheElder](https://github.com/BenTheElder))[SIG CLI, Node, Testing and Cluster Lifecycle] +- Update CoreDNS version to 1.6.7 in kubeadm ([#86260](https://github.com/kubernetes/kubernetes/pull/86260), [@rajansandeep](https://github.com/rajansandeep))[SIG Cluster Lifecycle] +- Update golang.org/x/crypto to fix CVE-2020-9283 ([#8838](https://github.com/kubernetes/kubernetes/pull/88381), [@BenTheElder](https://github.com/BenTheElder))[SIG CLI, Instrumentation, API Machinery, CLuster Lifecycle and Cloud Provider] +- Update Go to 1.13.8 ([#87648](https://github.com/kubernetes/kubernetes/pull/87648), [@ialidzhikov](https://github.com/ialidzhikov))[SIG Release and Testing] +- Update Cluster-Autoscaler to 1.18.0 ([#89095](https://github.com/kubernetes/kubernetes/pull/89095), [@losipiuk](https://github.com/losipiuk))[SIG Autoscaling and Cluster Lifecycle] diff --git a/releases/release-1.18/release_team.md b/releases/release-1.18/release_team.md index 68a958a4247..f7293bfa7bc 100644 --- a/releases/release-1.18/release_team.md +++ b/releases/release-1.18/release_team.md @@ -1,16 +1,16 @@ -# Kubernetes 1.18 Release Team - -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -| ------ | ------ | ------ | -| Lead | Jorge Alarcon ([@alejandrox1](https://github.com/alejandrox1) / Slack: `@alejandrox1`) | Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables) / Slack: `@mrbobbytables`), Taylor Dolezal ([@onlydole](https://github.com/onlydole) / Slack: `@onlydole`) | -| Enhancements | Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard) / Slack: `@jerickar`) | Nabarun Pal ([@palnabarun](https://github.com/palnabarun) / Slack: `@palnabarun`), Kirsten Garrison ( [@kikisdeliveryservice](https://github.com/kikisdeliveryservice) / Slack: `@oikiki`), John Belamaric ([@johnbelamaric](https://github.com/johnbelamaric) / Slack: `@johnbelamaric`), Heba Elayoty ([@helayoty](https://github.com/helayoty) / Slack: `@Heba`) | -| CI Signal | Nikolaos Moraitis / ([@droslean](https://github.com/droslean) / Slack: `@droslean`) | Daniel Mangum / ([@hasheddan](https://github.com/hasheddan) / Slack: `@hasheddan`), Hrishikesh Shinde / ([@hrishin](https://github.com/hrishin/) / Slack: `@hrihsips`), Ahmad Nurus S. / ([@prksu](https://github.com/prksu) / Slack: `@prksu`), John Reese ([@jpreese](https://github.com/jpreese) / Slack: `@John Reese`) | -| Bug Triage | Silvia Pina / ([@smourapina](https://github.com/smourapina) / Slack: `@smourapina`) | Anna Jung / ([@annajung](https://github.com/annajung) / Slack: `@annajung`), Gianluca Arbezzano / ([@gianarb](https://github.com/gianarb) / Slack: `@gianarb`), John Skarbek / ([@jtslear](https://github.com/jtslear) / Slack: `@skarbek`), Marky Jackson / ([@markyjackson-taulia](https://github.com/markyjackson-taulia) / Slack: `@markyjackson`) | -| Docs | Vineeth Pothulapati ([@VineethReddy02](https://github.com/VineethReddy02) / Slack: `@Vineeth`) | Seth McCombs ([@sethmccombs](https://github.com/sethmccombs) / Slack: `@sethmccombs`), Irvi Aini ([@irvifa](https://github.com/irvifa) / Slack: `@irvifa`), Savitha Raghunathan ([@savitharaghunathan](https://github.com/savitharaghunathan) / Slack: `@sraghunathan`), Chima Iheanyichukwu ([@iheanyi1](https://github.com/iheanyi1) / Slack: `@Chima Iheanyichukwu`) | -| Release Notes | Eddie Villalba ([@Evillgenius75](https://github.com/Evillgenius75) / Slack: `@Evill_genius`) | Justin Luk ([@jluk](https://github.com/jluk) / Slack: `@jluk`), Reyann Lejano ([@reylejano-rxm](https://github.com/reylejano-rxm) / Slack: `@rey.lejano`), Adolfo García Veytia ([@puerco](https://github.com/puerco) / Slack: `@puerco`), James Laverack ([@JamesLaverack](https://github.com/JamesLaverack) / Slack: `@james.laverack`) | -| Communications | Karen Chu ([@karenhchu](https://github.com/karenhchu) / Slack: `@karenhchu`) | Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkoerbi`), Paul Burt ([@pgburt](https://github.com/pgburt) / Slack: `@paulb`), Claudia Nadolny ([@cnadolny](https://github.com/cnadolny)/ Slack: `@cnadolny`), Meenakshi Kaushik ([@mkhaas](https://github.com/mkhaas) / Slack: `@meenakshi`)| -| Emeritus Adviser | Lachlan Evenson ([@lachie83](https://github.com/lachie83)) / Slack: `@lachie83`) | -- | - -Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.18, once the 1.18 release cycle concludes. +# Kubernetes 1.18 Release Team + +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +| ------ | ------ | ------ | +| Lead | Jorge Alarcon ([@alejandrox1](https://github.com/alejandrox1) / Slack: `@alejandrox1`) | Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables) / Slack: `@mrbobbytables`), Taylor Dolezal ([@onlydole](https://github.com/onlydole) / Slack: `@onlydole`) | +| Enhancements | Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard) / Slack: `@jerickar`) | Nabarun Pal ([@palnabarun](https://github.com/palnabarun) / Slack: `@palnabarun`), Kirsten Garrison ( [@kikisdeliveryservice](https://github.com/kikisdeliveryservice) / Slack: `@oikiki`), John Belamaric ([@johnbelamaric](https://github.com/johnbelamaric) / Slack: `@johnbelamaric`), Heba Elayoty ([@helayoty](https://github.com/helayoty) / Slack: `@Heba`) | +| CI Signal | Nikolaos Moraitis / ([@droslean](https://github.com/droslean) / Slack: `@droslean`) | Daniel Mangum / ([@hasheddan](https://github.com/hasheddan) / Slack: `@hasheddan`), Hrishikesh Shinde / ([@hrishin](https://github.com/hrishin/) / Slack: `@hrihsips`), Ahmad Nurus S. / ([@prksu](https://github.com/prksu) / Slack: `@prksu`), John Reese ([@jpreese](https://github.com/jpreese) / Slack: `@John Reese`) | +| Bug Triage | Silvia Pina / ([@smourapina](https://github.com/smourapina) / Slack: `@smourapina`) | Anna Jung / ([@annajung](https://github.com/annajung) / Slack: `@annajung`), Gianluca Arbezzano / ([@gianarb](https://github.com/gianarb) / Slack: `@gianarb`), John Skarbek / ([@jtslear](https://github.com/jtslear) / Slack: `@skarbek`), Marky Jackson / ([@markyjackson-taulia](https://github.com/markyjackson-taulia) / Slack: `@markyjackson`) | +| Docs | Vineeth Pothulapati ([@VineethReddy02](https://github.com/VineethReddy02) / Slack: `@Vineeth`) | Seth McCombs ([@sethmccombs](https://github.com/sethmccombs) / Slack: `@sethmccombs`), Irvi Aini ([@irvifa](https://github.com/irvifa) / Slack: `@irvifa`), Savitha Raghunathan ([@savitharaghunathan](https://github.com/savitharaghunathan) / Slack: `@sraghunathan`), Chima Iheanyichukwu ([@iheanyi1](https://github.com/iheanyi1) / Slack: `@Chima Iheanyichukwu`) | +| Release Notes | Eddie Villalba ([@Evillgenius75](https://github.com/Evillgenius75) / Slack: `@Evill_genius`) | Justin Luk ([@jluk](https://github.com/jluk) / Slack: `@jluk`), Reyann Lejano ([@reylejano-rxm](https://github.com/reylejano-rxm) / Slack: `@rey.lejano`), Adolfo García Veytia ([@puerco](https://github.com/puerco) / Slack: `@puerco`), James Laverack ([@JamesLaverack](https://github.com/JamesLaverack) / Slack: `@james.laverack`) | +| Communications | Karen Chu ([@karenhchu](https://github.com/karenhchu) / Slack: `@karenhchu`) | Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkoerbi`), Paul Burt ([@pgburt](https://github.com/pgburt) / Slack: `@paulb`), Claudia Nadolny ([@cnadolny](https://github.com/cnadolny)/ Slack: `@cnadolny`), Meenakshi Kaushik ([@mkhaas](https://github.com/mkhaas) / Slack: `@meenakshi`)| +| Emeritus Adviser | Lachlan Evenson ([@lachie83](https://github.com/lachie83)) / Slack: `@lachie83`) | -- | + +Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.18, once the 1.18 release cycle concludes. diff --git a/releases/release-1.19/README.md b/releases/release-1.19/README.md index 09332a5ac70..ada15f579fc 100644 --- a/releases/release-1.19/README.md +++ b/releases/release-1.19/README.md @@ -1,115 +1,115 @@ ---- -title: "Kubernetes 1.19 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.19: Accentuate The Paw-sitive - -<img src="accentuate-the-pawsitive.png" height=400 width=auto> - -All of you inspired this Kubernetes 1.19 release logo! This release was a bit more of a marathon and a testament to when the world is a wild place, we can come together and do unbelievable things. - -"Accentuate the Paw-sitive" was chosen as the release theme because it captures the positive outlook that the release team had, despite the state of the world. The characters pictured in the 1.19 logo represent everyone's personalities on our release team, from emo to peppy, and beyond! - -About the designer: Hannabeth Lagerlöf is a Visual Designer based in Los Angeles, California, and she has an extensive background in Environments and Graphic Design. Hannabeth creates art and user experiences that inspire connection. You can find Hannabeth on Twitter as @emanate_design. - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.19/README.md) -* [Release Team](https://git.k8s.io/sig-release/releases/release-1.19/release_team.md) -* [Meeting Minutes](http://bit.ly/k8s119-releasemtg) (join [kubernetes-sig-release@] to receive meeting invites) -* [v1.19 Release Calendar][k8s119-calendar] -* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail -* [Internal Contact Info]() (accessible only to members of [kubernetes-release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Sheet](http://bit.ly/k8s-1-19-enhancements) -* Bug Triage Tracking Sheet: TODO -* CI Signal Report: TODO -* [Retrospective Document][Retrospective Document] -* [kubernetes/sig-release v1.19 milestone](https://github.com/kubernetes/kubernetes/milestone/46) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## TL;DR - -The 1.19 release cycle is proposed as follows: - -- **Monday, April 13**: Week 1 - Release cycle begins -- **Tuesday, May 19**: Week 6 - [Enhancements Freeze] -- **Thursday, July 9th**: Week 13 - [Code Freeze] -- **Thursday, July 16th**: Week 14 - Docs must be completed and reviewed -- **Wednesday, August 26th**: Week 20 - Kubernetes v1.19.0 released -- **Thursday, September 3rd**: Week 21 - Release Retrospective - - -## Timeline - -| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | -|---|---|---|---|---| -| Start of Release Cycle | Lead | Mon, April 13 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Tue, April 14 | week 1 | | -| Schedule finalized | Lead | Fri, April 17 | week 1 | | -| Team finalized | Lead | Fri, April 17 | week 1 | | -| 1.19.0-alpha.2 released | Branch Manager | Tue, April 21 | week 2 | | -| Start Release Notes Draft | Release Notes Lead | Tue, April 28 | week 3 | | [master-blocking], [master-informing] | -| 1.19.0-alpha.3 released | Branch Manager | Tue, May 5 | week 4 | | -| **Begin [Enhancements Freeze]** (EOD PST) | Enhancements Lead | Tue, May 19 | week 6 | -| 1.19.0-beta.0 released | Branch Manager | Tue, May 19 | week 6 | | -| **Begin [Burndown]** (MWF meetings) | Lead | Mon, June 1 | week 8 | [1.19-blocking], [master-blocking], [master-informing] | -| **Call for [Exceptions][Exception]** | Lead | Mon, June 1 | week 8 | | -| 1.19.0-beta.1 released | Branch Manager | Tue, June 2 | week 8 | | -| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Mon, June 8 | week 9 | | -| 1.19.0-beta.2 released | Branch Manager | Tue, June 9 | week 9 | | -| Docs deadline - Open placeholder PRs | Docs Lead | Fri, June 19 | week 10 | | -| Docs deadline - PRs ready for review | Docs Lead | Mon, July 6 | week 13 | | -| **Begin [Code Freeze]** (EOD PST) | Branch Manager | Thu, July 9 | week 13 | | -| 1.19.0-rc.0 released | Branch Manager | Thu, July 9 | week 13 | | -| release-1.19 branch created | Branch Manager | Thu, July 9 | week 13 | | -| release-1.19 jobs created | Branch Manager | Thu, July 9 | week 13 | | -| 1.19.0-rc.1 released | Branch Manager | Tue, July 14 | week 14 | | -| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Thu, July 16 | week 14 | | -| 1.19.0-rc.2 released | Branch Manager | Tue, July 21 | week 15 | | -| 1.19.0-rc.3 released | Branch Manager | Wed, July 29 | week 16 | | -| Burndown Meetings daily | Lead | Mon, August 3 | week 17 | | -| 1.19.0-rc.4 released | Branch Manager | Tue, August 4 | week 17 | | -| **[Code Thaw]** (EOD PST) | Branch Manager | TBD | TBD | | -| **Cherry Pick Deadline** (EOD PST) | Branch Manager | Thu, August 6 | week 17 | | -| **[Test Freeze]** (EOD PST) | Branch Manager | Thu, August 6 | week 17 | | -| **KubeCon CloudNativeCon Europe - Break** | Community | Mon, August 10 | week 18 | | -| **KubeCon CloudNativeCon Europe - Resume** | Community | Mon, August 24 | week 20 | | -| **v1.19.0 released** | Branch Manager | Wed, August 26 | week 20 | | -| **Release Retrospective** | Community | Thu, September 3 | week 21 | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[k8s119-calendar]: https://bit.ly/k8s-release-cal -[Internal Contact Info]: https://bit.ly/k8s119-contacts -[Retrospective Document]: https://bit.ly/k8s119-retro -[release phases document]: ../release_phases.md - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Code Thaw]: ../release_phases.md#code-thaw -[Test Freeze]: ../release_phases.md#test-freeze - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.19-blocking]: https://testgrid.k8s.io/sig-release-1.19-blocking#Summary - -[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +--- +title: "Kubernetes 1.19 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.19: Accentuate The Paw-sitive + +<img src="accentuate-the-pawsitive.png" height=400 width=auto> + +All of you inspired this Kubernetes 1.19 release logo! This release was a bit more of a marathon and a testament to when the world is a wild place, we can come together and do unbelievable things. + +"Accentuate the Paw-sitive" was chosen as the release theme because it captures the positive outlook that the release team had, despite the state of the world. The characters pictured in the 1.19 logo represent everyone's personalities on our release team, from emo to peppy, and beyond! + +About the designer: Hannabeth Lagerlöf is a Visual Designer based in Los Angeles, California, and she has an extensive background in Environments and Graphic Design. Hannabeth creates art and user experiences that inspire connection. You can find Hannabeth on Twitter as @emanate_design. + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.19/README.md) +* [Release Team](https://git.k8s.io/sig-release/releases/release-1.19/release_team.md) +* [Meeting Minutes](http://bit.ly/k8s119-releasemtg) (join [kubernetes-sig-release@] to receive meeting invites) +* [v1.19 Release Calendar][k8s119-calendar] +* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail +* [Internal Contact Info]() (accessible only to members of [kubernetes-release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Sheet](http://bit.ly/k8s-1-19-enhancements) +* Bug Triage Tracking Sheet: TODO +* CI Signal Report: TODO +* [Retrospective Document][Retrospective Document] +* [kubernetes/sig-release v1.19 milestone](https://github.com/kubernetes/kubernetes/milestone/46) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## TL;DR + +The 1.19 release cycle is proposed as follows: + +- **Monday, April 13**: Week 1 - Release cycle begins +- **Tuesday, May 19**: Week 6 - [Enhancements Freeze] +- **Thursday, July 9th**: Week 13 - [Code Freeze] +- **Thursday, July 16th**: Week 14 - Docs must be completed and reviewed +- **Wednesday, August 26th**: Week 20 - Kubernetes v1.19.0 released +- **Thursday, September 3rd**: Week 21 - Release Retrospective + + +## Timeline + +| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | +|---|---|---|---|---| +| Start of Release Cycle | Lead | Mon, April 13 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Tue, April 14 | week 1 | | +| Schedule finalized | Lead | Fri, April 17 | week 1 | | +| Team finalized | Lead | Fri, April 17 | week 1 | | +| 1.19.0-alpha.2 released | Branch Manager | Tue, April 21 | week 2 | | +| Start Release Notes Draft | Release Notes Lead | Tue, April 28 | week 3 | | [master-blocking], [master-informing] | +| 1.19.0-alpha.3 released | Branch Manager | Tue, May 5 | week 4 | | +| **Begin [Enhancements Freeze]** (EOD PST) | Enhancements Lead | Tue, May 19 | week 6 | +| 1.19.0-beta.0 released | Branch Manager | Tue, May 19 | week 6 | | +| **Begin [Burndown]** (MWF meetings) | Lead | Mon, June 1 | week 8 | [1.19-blocking], [master-blocking], [master-informing] | +| **Call for [Exceptions][Exception]** | Lead | Mon, June 1 | week 8 | | +| 1.19.0-beta.1 released | Branch Manager | Tue, June 2 | week 8 | | +| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Mon, June 8 | week 9 | | +| 1.19.0-beta.2 released | Branch Manager | Tue, June 9 | week 9 | | +| Docs deadline - Open placeholder PRs | Docs Lead | Fri, June 19 | week 10 | | +| Docs deadline - PRs ready for review | Docs Lead | Mon, July 6 | week 13 | | +| **Begin [Code Freeze]** (EOD PST) | Branch Manager | Thu, July 9 | week 13 | | +| 1.19.0-rc.0 released | Branch Manager | Thu, July 9 | week 13 | | +| release-1.19 branch created | Branch Manager | Thu, July 9 | week 13 | | +| release-1.19 jobs created | Branch Manager | Thu, July 9 | week 13 | | +| 1.19.0-rc.1 released | Branch Manager | Tue, July 14 | week 14 | | +| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Thu, July 16 | week 14 | | +| 1.19.0-rc.2 released | Branch Manager | Tue, July 21 | week 15 | | +| 1.19.0-rc.3 released | Branch Manager | Wed, July 29 | week 16 | | +| Burndown Meetings daily | Lead | Mon, August 3 | week 17 | | +| 1.19.0-rc.4 released | Branch Manager | Tue, August 4 | week 17 | | +| **[Code Thaw]** (EOD PST) | Branch Manager | TBD | TBD | | +| **Cherry Pick Deadline** (EOD PST) | Branch Manager | Thu, August 6 | week 17 | | +| **[Test Freeze]** (EOD PST) | Branch Manager | Thu, August 6 | week 17 | | +| **KubeCon CloudNativeCon Europe - Break** | Community | Mon, August 10 | week 18 | | +| **KubeCon CloudNativeCon Europe - Resume** | Community | Mon, August 24 | week 20 | | +| **v1.19.0 released** | Branch Manager | Wed, August 26 | week 20 | | +| **Release Retrospective** | Community | Thu, September 3 | week 21 | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[k8s119-calendar]: https://bit.ly/k8s-release-cal +[Internal Contact Info]: https://bit.ly/k8s119-contacts +[Retrospective Document]: https://bit.ly/k8s119-retro +[release phases document]: ../release_phases.md + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Code Thaw]: ../release_phases.md#code-thaw +[Test Freeze]: ../release_phases.md#test-freeze + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.19-blocking]: https://testgrid.k8s.io/sig-release-1.19-blocking#Summary + +[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ diff --git a/releases/release-1.19/exceptions.yaml b/releases/release-1.19/exceptions.yaml index 1551d64b535..e90ffabbeef 100644 --- a/releases/release-1.19/exceptions.yaml +++ b/releases/release-1.19/exceptions.yaml @@ -1,62 +1,62 @@ -# Exceptions Requested in 1.19 -# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release -# Release Team Lead: Taylor Dolezal ([@onlydole](https://github.com/onlydole) -# Release Team Lead Shadows: Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables)) / Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard)) - -# Enhancement Freeze Exceptions Requested in 1.19 - -enhancementFreeze: -- name: "Configure FQDN as Hostname for Pods" - issue: 1797 - date_requested: 2020-05-20 - date_reviewed: 2020-05-21 - thread: https://groups.google.com/g/kubernetes-release-team/c/1xiCWxchTEk/m/Ey-VGPkbAwAJ - pull_requests: - - https://github.com/kubernetes/enhancements/pull/1792 - status: Approved -- name: "Speed up recursive SELinux label change" - issue: 1710 - date_requested: 2020-05-20 - date_reviewed: 2020-05-22 - thread: https://groups.google.com/g/kubernetes-release-team/c/TufU2Jc85nQ/m/mg_anZUbAwAJ - pull-requests: - - https://github.com/kubernetes/enhancements/pull/1621 - status: Approved -- name: "Increase Kubernetes support window to one year" - issue: 1498 - date_requested: 2020-05-20 - date_reviewed: 2020-05-22 - thread: https://groups.google.com/g/kubernetes-sig-release/c/yjEHnUVC1bo/m/idsHNOwHAgAJ - pull-requests: - - https://github.com/kubernetes/enhancements/pull/1782 - status: Approved -- name: "Clarify use of node-role labels within Kubernetes and migrate old components" - issue: 1143 - date_requested: 2020-06-01 - date_reviewed: 2020-06-02 - thread: https://groups.google.com/g/kubernetes-release-team/c/7POHlgPCgpE/m/P4YgzMuUAAAJ - pull-requests: - - https://github.com/kubernetes/enhancements/pull/1806 - status: Approved -- name: "SCTP support for Services, Pod, Endpoint, and NetworkPolicy" - issue: 614 - date_requested: 2020-06-02 - date_reviewed: 2020-06-10 - thread: https://groups.google.com/g/kubernetes-release-team/c/fJCot5af4cA/m/cOzXk3LZAAAJ - pull-requests: - - https://github.com/kubernetes/kubernetes/pull/88932 - - https://github.com/kubernetes/kubernetes/pull/88196 - - https://github.com/kubernetes/kubernetes/pull/87926 - status: Approved - -# Code Freeze Exceptions Requested in 1.19 - -codeFreeze: -- name: "Disable AcceleratorUsage Metrics" - issue: 1867 - date_requested: 2020-07-09 - date_reviewed: 2020-07-22 - thread: https://groups.google.com/g/kubernetes-release-team/c/Hd4Bgj8zd4c/m/E3TU29EDBwAJ - pull-requests: - - https://github.com/kubernetes/kubernetes/pull/91930 - status: Approved +# Exceptions Requested in 1.19 +# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release +# Release Team Lead: Taylor Dolezal ([@onlydole](https://github.com/onlydole) +# Release Team Lead Shadows: Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables)) / Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard)) + +# Enhancement Freeze Exceptions Requested in 1.19 + +enhancementFreeze: +- name: "Configure FQDN as Hostname for Pods" + issue: 1797 + date_requested: 2020-05-20 + date_reviewed: 2020-05-21 + thread: https://groups.google.com/g/kubernetes-release-team/c/1xiCWxchTEk/m/Ey-VGPkbAwAJ + pull_requests: + - https://github.com/kubernetes/enhancements/pull/1792 + status: Approved +- name: "Speed up recursive SELinux label change" + issue: 1710 + date_requested: 2020-05-20 + date_reviewed: 2020-05-22 + thread: https://groups.google.com/g/kubernetes-release-team/c/TufU2Jc85nQ/m/mg_anZUbAwAJ + pull-requests: + - https://github.com/kubernetes/enhancements/pull/1621 + status: Approved +- name: "Increase Kubernetes support window to one year" + issue: 1498 + date_requested: 2020-05-20 + date_reviewed: 2020-05-22 + thread: https://groups.google.com/g/kubernetes-sig-release/c/yjEHnUVC1bo/m/idsHNOwHAgAJ + pull-requests: + - https://github.com/kubernetes/enhancements/pull/1782 + status: Approved +- name: "Clarify use of node-role labels within Kubernetes and migrate old components" + issue: 1143 + date_requested: 2020-06-01 + date_reviewed: 2020-06-02 + thread: https://groups.google.com/g/kubernetes-release-team/c/7POHlgPCgpE/m/P4YgzMuUAAAJ + pull-requests: + - https://github.com/kubernetes/enhancements/pull/1806 + status: Approved +- name: "SCTP support for Services, Pod, Endpoint, and NetworkPolicy" + issue: 614 + date_requested: 2020-06-02 + date_reviewed: 2020-06-10 + thread: https://groups.google.com/g/kubernetes-release-team/c/fJCot5af4cA/m/cOzXk3LZAAAJ + pull-requests: + - https://github.com/kubernetes/kubernetes/pull/88932 + - https://github.com/kubernetes/kubernetes/pull/88196 + - https://github.com/kubernetes/kubernetes/pull/87926 + status: Approved + +# Code Freeze Exceptions Requested in 1.19 + +codeFreeze: +- name: "Disable AcceleratorUsage Metrics" + issue: 1867 + date_requested: 2020-07-09 + date_reviewed: 2020-07-22 + thread: https://groups.google.com/g/kubernetes-release-team/c/Hd4Bgj8zd4c/m/E3TU29EDBwAJ + pull-requests: + - https://github.com/kubernetes/kubernetes/pull/91930 + status: Approved diff --git a/releases/release-1.19/release-notes-draft.md b/releases/release-1.19/release-notes-draft.md index 72ca7b6b3ae..7b17c1848f6 100644 --- a/releases/release-1.19/release-notes-draft.md +++ b/releases/release-1.19/release-notes-draft.md @@ -1,890 +1,890 @@ -## What’s New (Major Themes) - -### Deprecation warnings - -SIG API Machinery implemented [warnings when using deprecated APIs](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#rest-resources-aka-api-objects) -that are visible to `kubectl` users and API consumers, and metrics visible to cluster administrators. -Requests to a deprecated API are returned with a warning containing a target removal release and any replacement API. -Warnings can also be returned by [admission webhooks](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#admissionreview-response-warning), -and specified for [deprecated versions of custom resources](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#version-deprecation). - -### Avoiding permanent beta - -From Kubernetes 1.20 onwards, SIG Architecture will implement a new policy to transition all REST APIs out of beta within nine months. The idea behind the new policy is to avoid features staying in beta for a long time. Once a new API enters beta, it will have nine months to either: - - - reach GA, and deprecate the beta, or - - have a new beta version _(and deprecate the previous beta)_. - -If a REST API reaches the end of that nine-month countdown, then the next Kubernetes release will deprecate that API version. More information can be found on [the Kubernetes Blog](https://kubernetes.io/blog/2020/08/21/moving-forward-from-beta/). - -### Expanded CLI support for debugging workloads and nodes - -SIG CLI expanded on debugging with `kubectl` to support two new debugging workflows: debugging workloads by creating a copy, and debugging nodes by creating a container in host namespaces. These can be convenient to: - - Insert a debug container in clusters that don’t have ephemeral containers enabled - - Modify a crashing container for easier debugging by changing its image, for example to busybox, or its command, for example, to `sleep 1d` so you have time to `kubectl exec`. - - Inspect configuration files on a node's host filesystem - -Since these new workflows don’t require any new cluster features, they’re available for experimentation with your existing clusters via `kubectl alpha debug`. We’d love to hear your feedback on debugging with `kubectl`. Reach us by opening an issue, visiting [#sig-cli](https://kubernetes.slack.com/messages/sig-cli) or commenting on enhancement [#1441](https://features.k8s.io/1441). - -### Structured logging - -SIG Instrumentation standardized the structure of log messages and references to Kubernetes objects. Structured logging makes parsing, processing, storing, querying and analyzing logs easier. New methods in the klog library enforce log message structure. - -### EndpointSlices are now enabled by default - -EndpointSlices are an exciting new API that provides a scalable and extensible alternative to the Endpoints API. EndpointSlices track IP addresses, ports, readiness, and topology information for Pods backing a Service. - -In Kubernetes 1.19 this feature will be enabled by default with kube-proxy reading from EndpointSlices instead of Endpoints. Although this will mostly be an invisible change, it should result in noticeable scalability improvements in large clusters. It will also enable significant new features in future Kubernetes releases like Topology Aware Routing. - -### Ingress graduates to General Availability - -SIG Network has graduated the widely used [Ingress API](https://kubernetes.io/docs/concepts/services-networking/ingress/) to general availability in Kubernetes 1.19. This change recognises years of hard work by Kubernetes contributors, and paves the way for further work on future networking APIs in Kubernetes. - -### seccomp graduates to General Availability - -The seccomp (secure computing mode) support for Kubernetes has graduated to General Availability (GA). This feature can be used to increase the workload security by restricting the system calls for a Pod (applies to all containers) or single containers. - -Technically this means that a first class `seccompProfile` field has been added to the Pod and Container `securityContext` objects: - -```yaml -securityContext: - seccompProfile: - type: RuntimeDefault|Localhost|Unconfined # choose one of the three - localhostProfile: my-profiles/profile-allow.json # only necessary if type == Localhost -``` - -The support for `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io/...` annotations are now deprecated, and will be removed in Kubernetes v1.22.0. Right now, an automatic version skew handling will convert the new field into the annotations and vice versa. This means there is no action required for converting existing workloads in a cluster. - -You can find more information about how to restrict container system calls with seccomp in the new [documentation page on Kubernetes.io][seccomp-docs] - -[seccomp-docs]: https://kubernetes.io/docs/tutorials/clusters/seccomp/ - - -### Production images moved to community control - -As of Kuberenetes v1.19, Kubernetes container images are stored on a community-controlled storage bucket, -located at `{asia,eu,us}.gcr.io/k8s-artifacts-prod`. The `k8s.gcr.io` vanity domain has been updated -to this new bucket. This brings production artifacts under community control. - -### KubeSchedulerConfiguration graduates to Beta - -SIG Scheduling graduates `KubeSchedulerConfiguration` to Beta. The [KubeSchedulerConfiguration](https://kubernetes.io/docs/reference/scheduling/config) feature allows you to tune the algorithms and other settings of the kube-scheduler. You can easily enable or disable specific functionality (contained in plugins) in selected scheduling phases without having to rewrite the rest of the configuration. Furthermore, a single kube-scheduler instance can serve different configurations, called profiles. Pods can select the profile they want to be scheduled under via the `.spec.schedulerName` field. - -### CSI Migration - AzureDisk and vSphere (beta) - -In-tree volume plugins and all cloud provider dependencies are being moved out of the Kubernetes core. The CSI migration feature allows existing volumes using the legacy APIs to continue to function even when the code has been removed, by routing all the volume operations to the respective CSI driver. The AzureDisk and vSphere implementations of this feature have been promoted to beta. - -### Storage capacity tracking - -Traditionally, the Kubernetes scheduler was based on the assumption that additional persistent storage is available everywhere in the cluster and has infinite capacity. Topology constraints addressed the first point, but up to now pod scheduling was still done without considering that the remaining storage capacity may not be enough to start a new pod. [Storage capacity tracking](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1472-storage-capacity-tracking), a new alpha feature, addresses that by adding an API for a CSI driver to report storage capacity and uses that information in the Kubernetes scheduler when choosing a node for a pod. This feature serves as a stepping stone for supporting dynamic provisioning for local volumes and other volume types that are more capacity constrained. - -### CSI Volume health monitoring - -The alpha version of CSI health monitoring is being released with Kubernetes 1.19. This feature enables CSI Drivers to share abnormal volume conditions from the underlying storage systems with Kubernetes so that they can be reported as events on PVCs or Pods. This feature serves as a stepping stone towards programmatic detection and resolution of individual volume health issues by Kubernetes. - -### General ephemeral volumes - -Kubernetes provides volume plugins whose lifecycle is tied to a pod and can be used as scratch space (e.g. the builtin “empty dir” volume type) or to load some data in to a pod (e.g. the builtin ConfigMap and Secret volume types or “CSI inline volumes”). The new [generic ephemeral volumes](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes) alpha feature allows any existing storage driver that supports dynamic provisioning to be used as an ephemeral volume with the volume’s lifecycle bound to the Pod. - - It can be used to provide scratch storage that is different from the root disk, for example persistent memory, or a separate local disk on that node. - - All StorageClass parameters for volume provisioning are supported. - - All features supported with PersistentVolumeClaims are supported, such as storage capacity tracking, snapshots and restore, and volume resizing. - -### Immutable Secrets and ConfigMaps (beta) - -Secret and ConfigMap volumes can be marked as immutable, which significantly reduces load on the API server if there are many Secret and ConfigMap volumes in the cluster. -See [ConfigMap](https://kubernetes.io/docs/concepts/configuration/configmap/) and [Secret](https://kubernetes.io/docs/concepts/configuration/secret/) for more information. - -### CSI Proxy for Windows - -The CSI Proxy for Windows is being promoted to beta along with the 1.19 release. This CSI Proxy enables CSI Drivers to run on Windows by allowing containers in Windows to perform privileged storage operations. At beta, the CSI Proxy for Windows supports storage drivers using direct attached disks and SMB. - -### Dashboard v2 - -SIG UI has released v2 of the Kubernetes Dashboard add-on. You can find the most recent release in the [kubernetes/dashboard](https://github.com/kubernetes/dashboard/releases) repository. Kubernetes Dashboard now includes CRD support, new translations, and an updated version of AngularJS. - -### Windows containerd support graduates to beta - -Initially introduced in Kubernetes 1.18, Windows containerd support goes to Beta on this release. This includes the added support for Windows Server version 2004 (complete version compatibility can be found in the [documentation for Windows](https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#cri-containerd)). - -SIG Windows is also including several addition to this release: - - Direct Server Return (DSR) mode support, allowing large numbers of services to scale up efficiently - - Windows containers now honor CPU limits - - Performance improvements for collections of metrics and summary - -### Increase the Kubernetes support window to one year - -As of Kubernetes 1.19, bugfix support via patch releases for a Kubernetes minor release has increased from 9 months to 1 year. - -A survey conducted in early 2019 by the working group (WG) Long Term Support (LTS) showed that a significant subset of Kubernetes end-users fail to upgrade within the previous 9-month support period. -A yearly support period provides the cushion end-users appear to desire, and is more in harmony with familiar annual planning cycles. - -## Known Issues - -The new storage capacity tracking alpha feature is known to be affected by a limitation of the WaitForFirstConsumer volume binding mode: [#94217](https://github.com/kubernetes/kubernetes/issues/94217) - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- ACTION REQUIRED: Switch core master base images (kube-controller-manager) from debian to distroless. If you need Flex Volumes support using scripts, please build your own image with required packages (like bash) ([#91329](https://github.com/kubernetes/kubernetes/pull/91329), [@dims](https://github.com/dims)) [SIG Cloud Provider, Release, Storage and Testing] -- ACTION REQUIRED: Support for basic authentication via the --basic-auth-file flag has been removed. Users should migrate to --token-auth-file for similar functionality. ([#89069](https://github.com/kubernetes/kubernetes/pull/89069), [@enj](https://github.com/enj)) [SIG API Machinery] - - Azure blob disk feature(`kind`: `Shared`, `Dedicated`) has been deprecated, you should use `kind`: `Managed` in `kubernetes.io/azure-disk` storage class. ([#92905](https://github.com/kubernetes/kubernetes/pull/92905), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] - - CVE-2020-8559 (Medium): Privilege escalation from compromised node to cluster. See https://github.com/kubernetes/kubernetes/issues/92914 for more details. - The API Server will no longer proxy non-101 responses for upgrade requests. This could break proxied backends (such as an extension API server) that respond to upgrade requests with a non-101 response code. ([#92941](https://github.com/kubernetes/kubernetes/pull/92941), [@tallclair](https://github.com/tallclair)) [SIG API Machinery] - - Kubeadm does not set the deprecated '--cgroup-driver' flag in /var/lib/kubelet/kubeadm-flags.env, it will be set in the kubelet config.yaml. If you have this flag in /var/lib/kubelet/kubeadm-flags.env or /etc/default/kubelet (/etc/sysconfig/kubelet for RPMs) please remove it and set the value using KubeletConfiguration ([#90513](https://github.com/kubernetes/kubernetes/pull/90513), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] - - Kubeadm now respects user specified etcd versions in the ClusterConfiguration and properly uses them. If users do not want to stick to the version specified in the ClusterConfiguration, they should edit the kubeadm-config config map and delete it. ([#89588](https://github.com/kubernetes/kubernetes/pull/89588), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] - - Kubeadm respects resolvConf value set by user even if systemd-resolved service is active. kubeadm no longer sets the flag in '--resolv-conf' in /var/lib/kubelet/kubeadm-flags.env. If you have this flag in /var/lib/kubelet/kubeadm-flags.env or /etc/default/kubelet (/etc/sysconfig/kubelet for RPMs) please remove it and set the value using KubeletConfiguration ([#90394](https://github.com/kubernetes/kubernetes/pull/90394), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] - - Kubeadm: Move the "kubeadm init" phase "kubelet-start" later in the init workflow, after the "kubeconfig" phase. This makes kubeadm start the kubelet only after the KubeletConfiguration component config file (/var/lib/kubelet/config.yaml) is generated and solves a problem where init systems like OpenRC cannot crashloop the kubelet service. ([#90892](https://github.com/kubernetes/kubernetes/pull/90892), [@xphoniex](https://github.com/xphoniex)) [SIG Cluster Lifecycle] - - The 'kubeadm config upload' command is finally removed after a full GA deprecation cycle. If you still use it, please, use 'kubeadm init phase upload-config' instead ([#92610](https://github.com/kubernetes/kubernetes/pull/92610), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] - - Upgrade kubescheduler.config.k8s.io/v1alpha2 to kubescheduler.config.k8s.io/v1beta1 - - - `.bindTimeoutSeconds` was moved as part of plugin args for `VolumeBinding`, - which can be configured separately per [profile](#profiles). - - `.extenders` are updated to satisfy API standards. In particular: - - `.extenders` decoding is case sensitive. All fields are affected. - - `.extenders[*].httpTimeout` is of type `metav1.Duration`. - - `.extenders[*].enableHttps` is renamed to `.extenders[*].enableHTTPS`. - - `RequestedToCapacityRatio` args decoding is case sensitive. All fields are affected. - - `DefaultPodTopologySpread` [plugin](#scheduling-plugins) is renamed to `SelectorSpread`. - - `Unreserve` extension point is removed from Profile definition. All `Reserve` - plugins implement an `Unreserve` call. - - `.disablePreemption` was removed. Users can disable preemption by disabling the - "DefaultPreemption" PostFilter plugin. ([#91420](https://github.com/kubernetes/kubernetes/pull/91420), [@pancernik](https://github.com/pancernik)) [SIG Scheduling] - -## Changes by Kind - -### Deprecation - -- Added support for vSphere in-tree volumes migration to vSphere CSI driver. The in-tree vSphere Volume plugin will be deprecated and removed in a future release. - - Users that self-deploy Kubernetes on vSphere should enable CSIMigration + CSIMigrationvSphere features and install the vSphere CSI Driver (https://github.com/kubernetes-sigs/vsphere-csi-driver) to avoid disruption to existing Pod and PVC objects at that time. Users should start using the vSphere CSI driver directly for any new volumes. - - The CSI Migration feature for vSphere Volume also requires minimum vSphere vCenter/ESXi Version to be 7.0u1 and minimum HW Version to be VM version 15. - - vSAN raw policy parameter is deprecated for the in-tree vSphere Volume plugin and will be removed in a future release. ([#90911](https://github.com/kubernetes/kubernetes/pull/90911), [@divyenpatel](https://github.com/divyenpatel)) [SIG API Machinery, Node and Storage] -- Apiextensions.k8s.io/v1beta1 is deprecated in favor of apiextensions.k8s.io/v1 ([#90673](https://github.com/kubernetes/kubernetes/pull/90673), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] -- Apiregistration.k8s.io/v1beta1 is deprecated in favor of apiregistration.k8s.io/v1 ([#90672](https://github.com/kubernetes/kubernetes/pull/90672), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] -- Authentication.k8s.io/v1beta1 and authorization.k8s.io/v1beta1 are deprecated in 1.19 in favor of v1 levels and will be removed in 1.22 ([#90458](https://github.com/kubernetes/kubernetes/pull/90458), [@deads2k](https://github.com/deads2k)) [SIG API Machinery and Auth] -- Autoscaling/v2beta1 is deprecated in favor of autoscaling/v2beta2 ([#90463](https://github.com/kubernetes/kubernetes/pull/90463), [@deads2k](https://github.com/deads2k)) [SIG Autoscaling] -- Coordination.k8s.io/v1beta1 is deprecated in 1.19, targeted for removal in 1.22, use v1 instead. ([#90559](https://github.com/kubernetes/kubernetes/pull/90559), [@deads2k](https://github.com/deads2k)) [SIG Scalability] -- Ensure that volume capability and staging target fields are present in nodeExpansion CSI calls - - Behaviour of NodeExpandVolume being called between NodeStage and NodePublish is deprecated for CSI volumes. CSI drivers should support calling NodeExpandVolume after NodePublish if they have node EXPAND_VOLUME capability ([#86968](https://github.com/kubernetes/kubernetes/pull/86968), [@gnufied](https://github.com/gnufied)) [SIG Storage] -- Feat: azure disk migration go beta in 1.19. Feature gates CSIMigration to Beta (on by default) and CSIMigrationAzureDisk to Beta (off by default since it requires installation of the AzureDisk CSI Driver) - The in-tree AzureDisk plugin "kubernetes.io/azure-disk" is now deprecated and will be removed in 1.23. Users should enable CSIMigration + CSIMigrationAzureDisk features and install the AzureDisk CSI Driver (https://github.com/kubernetes-sigs/azuredisk-csi-driver) to avoid disruption to existing Pod and PVC objects at that time. - Users should start using the AzureDisk CSI Driver directly for any new volumes. ([#90896](https://github.com/kubernetes/kubernetes/pull/90896), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Kube-apiserver: the componentstatus API is deprecated. This API provided status of etcd, kube-scheduler, and kube-controller-manager components, but only worked when those components were local to the API server, and when kube-scheduler and kube-controller-manager exposed unsecured health endpoints. Instead of this API, etcd health is included in the kube-apiserver health check and kube-scheduler/kube-controller-manager health checks can be made directly against those components' health endpoints. ([#93570](https://github.com/kubernetes/kubernetes/pull/93570), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps and Cluster Lifecycle] -- Kubeadm: `kubeadm config view` command has been deprecated and will be removed in a feature release, please use `kubectl get cm -o yaml -n kube-system kubeadm-config` to get the kubeadm config directly ([#92740](https://github.com/kubernetes/kubernetes/pull/92740), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubeadm: deprecate the "kubeadm alpha kubelet config enable-dynamic" command. To continue using the feature please defer to the guide for "Dynamic Kubelet Configuration" at k8s.io. ([#92881](https://github.com/kubernetes/kubernetes/pull/92881), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: deprecate the feature `--experimental-kustomize` in favor of `--experimental-patches`. The supported patch formats are the same as "kubectl patch". They are read as files from a directory and can be applied to kubeadm components during init/join/upgrade. Only patching of static Pods is supported for the time being. ([#92017](https://github.com/kubernetes/kubernetes/pull/92017), [@neolit123](https://github.com/neolit123)) -- Kubeadm: remove the deprecated "--use-api" flag for "kubeadm alpha certs renew" ([#90143](https://github.com/kubernetes/kubernetes/pull/90143), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubernetes no longer supports building hyperkube images ([#88676](https://github.com/kubernetes/kubernetes/pull/88676), [@dims](https://github.com/dims)) [SIG Cluster Lifecycle and Release] -- Remove --export flag from kubectl get command. ([#88649](https://github.com/kubernetes/kubernetes/pull/88649), [@oke-py](https://github.com/oke-py)) [SIG CLI and Testing] -- Scheduler's alpha feature 'ResourceLimitsPriorityFunction' is completely removed due to lack of usage ([#91883](https://github.com/kubernetes/kubernetes/pull/91883), [@SataQiu](https://github.com/SataQiu)) [SIG Scheduling and Testing] -- Storage.k8s.io/v1beta1 is deprecated in favor of storage.k8s.io/v1 ([#90671](https://github.com/kubernetes/kubernetes/pull/90671), [@deads2k](https://github.com/deads2k)) [SIG Storage] - -### API Change - -- A new alpha-level field, `SupportsFsGroup`, has been introduced for CSIDrivers to allow them to specify whether they support volume ownership and permission modifications. The `CSIVolumeSupportFSGroup` feature gate must be enabled to allow this field to be used. ([#92001](https://github.com/kubernetes/kubernetes/pull/92001), [@huffmanca](https://github.com/huffmanca)) [SIG API Machinery, CLI and Storage] -- Added pod version skew strategy for seccomp profile to synchronize the deprecated annotations with the new API Server fields. Please see the corresponding section [in the KEP](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190717-seccomp-ga.md#version-skew-strategy) for more detailed explanations. ([#91408](https://github.com/kubernetes/kubernetes/pull/91408), [@saschagrunert](https://github.com/saschagrunert)) [SIG Apps, Auth, CLI and Node] -- Adds the ability to disable Accelerator/GPU metrics collected by Kubelet ([#91930](https://github.com/kubernetes/kubernetes/pull/91930), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) [SIG Node] -- Admission webhooks can now return warning messages that are surfaced to API clients, using the `.response.warnings` field in the admission review response. ([#92667](https://github.com/kubernetes/kubernetes/pull/92667), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] -- CertificateSigningRequest API conditions were updated: - - a `status` field was added; this field defaults to `True`, and may only be set to `True` for `Approved`, `Denied`, and `Failed` conditions - - a `lastTransitionTime` field was added - - a `Failed` condition type was added to allow signers to indicate permanent failure; this condition can be added via the `certificatesigningrequests/status` subresource. - - `Approved` and `Denied` conditions are mutually exclusive - - `Approved`, `Denied`, and `Failed` conditions can no longer be removed from a CSR ([#90191](https://github.com/kubernetes/kubernetes/pull/90191), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Auth, CLI and Node] -- Cluster admins can now turn off /logs endpoint in kubelet by setting enableSystemLogHandler to false in their kubelet configuration file. enableSystemLogHandler can be set to true only when enableDebuggingHandlers is also set to true. ([#87273](https://github.com/kubernetes/kubernetes/pull/87273), [@SaranBalaji90](https://github.com/SaranBalaji90)) [SIG Node] -- Custom Endpoints are now mirrored to EndpointSlices by a new EndpointSliceMirroring controller. ([#91637](https://github.com/kubernetes/kubernetes/pull/91637), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps, Auth, Cloud Provider, Instrumentation, Network and Testing] -- CustomResourceDefinitions added support for marking versions as deprecated by setting `spec.versions[*].deprecated` to `true`, and for optionally overriding the default deprecation warning with a `spec.versions[*].deprecationWarning` field. ([#92329](https://github.com/kubernetes/kubernetes/pull/92329), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] -- EnvVarSource api doc bug fixes ([#91194](https://github.com/kubernetes/kubernetes/pull/91194), [@wawa0210](https://github.com/wawa0210)) [SIG Apps] -- Fix bug in reflector that couldn't recover from "Too large resource version" errors ([#92537](https://github.com/kubernetes/kubernetes/pull/92537), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery] -- Fixed: log timestamps now include trailing zeros to maintain a fixed width ([#91207](https://github.com/kubernetes/kubernetes/pull/91207), [@iamchuckss](https://github.com/iamchuckss)) [SIG Apps and Node] -- Generic ephemeral volumes, a new alpha feature under the `GenericEphemeralVolume` feature gate, provide a more flexible alternative to `EmptyDir` volumes: as with `EmptyDir`, volumes are created and deleted for each pod automatically by Kubernetes. But because the normal provisioning process is used (`PersistentVolumeClaim`), storage can be provided by third-party storage vendors and all of the usual volume features work. Volumes don't need to be empt; for example, restoring from snapshot is supported. ([#92784](https://github.com/kubernetes/kubernetes/pull/92784), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Instrumentation, Node, Scheduling, Storage and Testing] -- Go1.14.4 is now the minimum version required for building Kubernetes ([#92438](https://github.com/kubernetes/kubernetes/pull/92438), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Storage and Testing] -- Hide managedFields from kubectl edit command ([#91946](https://github.com/kubernetes/kubernetes/pull/91946), [@soltysh](https://github.com/soltysh)) [SIG CLI] -- K8s.io/apimachinery - scheme.Convert() now uses only explicitly registered conversions - default reflection based conversion is no longer available. `+k8s:conversion-gen` tags can be used with the `k8s.io/code-generator` component to generate conversions. ([#90018](https://github.com/kubernetes/kubernetes/pull/90018), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery, Apps and Testing] -- Kube-proxy: add `--bind-address-hard-fail` flag to treat failure to bind to a port as fatal ([#89350](https://github.com/kubernetes/kubernetes/pull/89350), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle and Network] -- Kubebuilder validation tags are set on metav1.Condition for CRD generation ([#92660](https://github.com/kubernetes/kubernetes/pull/92660), [@damemi](https://github.com/damemi)) [SIG API Machinery] -- Kubelet's --runonce option is now also available in Kubelet's config file as `runOnce`. ([#89128](https://github.com/kubernetes/kubernetes/pull/89128), [@vincent178](https://github.com/vincent178)) [SIG Node] -- Kubelet: add '--logging-format' flag to support structured logging ([#91532](https://github.com/kubernetes/kubernetes/pull/91532), [@afrouzMashaykhi](https://github.com/afrouzMashaykhi)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Node] -- Kubernetes is now built with golang 1.15.0-rc.1. - - The deprecated, legacy behavior of treating the CommonName field on X.509 serving certificates as a host name when no Subject Alternative Names are present is now disabled by default. It can be temporarily re-enabled by adding the value x509ignoreCN=0 to the GODEBUG environment variable. ([#93264](https://github.com/kubernetes/kubernetes/pull/93264), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Storage and Testing] -- Promote Immutable Secrets/ConfigMaps feature to Beta and enable the feature by default. - This allows to set `Immutable` field in Secrets or ConfigMap object to mark their contents as immutable. ([#89594](https://github.com/kubernetes/kubernetes/pull/89594), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps and Testing] -- Remove `BindTimeoutSeconds` from schedule configuration `KubeSchedulerConfiguration` ([#91580](https://github.com/kubernetes/kubernetes/pull/91580), [@cofyc](https://github.com/cofyc)) [SIG Scheduling and Testing] -- Remove kubescheduler.config.k8s.io/v1alpha1 ([#89298](https://github.com/kubernetes/kubernetes/pull/89298), [@gavinfish](https://github.com/gavinfish)) [SIG Scheduling] -- Reserve plugins that fail to reserve will trigger the unreserve extension point ([#92391](https://github.com/kubernetes/kubernetes/pull/92391), [@adtac](https://github.com/adtac)) [SIG Scheduling and Testing] -- Resolve regression in `metadata.managedFields` handling in update/patch requests submitted by older API clients ([#91748](https://github.com/kubernetes/kubernetes/pull/91748), [@apelisse](https://github.com/apelisse)) -- Scheduler: optionally check for available storage capacity before scheduling pods which have unbound volumes (alpha feature with the new `CSIStorageCapacity` feature gate, only works for CSI drivers and depends on support for the feature in a CSI driver deployment) ([#92387](https://github.com/kubernetes/kubernetes/pull/92387), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Scheduling, Storage and Testing] -- Seccomp support has graduated to GA. A new `seccompProfile` field is added to pod and container securityContext objects. Support for `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io/...` annotations is deprecated, and will be removed in v1.22. ([#91381](https://github.com/kubernetes/kubernetes/pull/91381), [@pjbgf](https://github.com/pjbgf)) [SIG Apps, Auth, Node, Release, Scheduling and Testing] -- ServiceAppProtocol feature gate is now beta and enabled by default, adding new AppProtocol field to Services and Endpoints. ([#90023](https://github.com/kubernetes/kubernetes/pull/90023), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- SetHostnameAsFQDN is a new field in PodSpec. When set to true, the fully - qualified domain name (FQDN) of a Pod is set as hostname of its containers. - In Linux containers, this means setting the FQDN in the hostname field of the - kernel (the nodename field of struct utsname). In Windows containers, this - means setting the this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. - If a pod does not have FQDN, this has no effect. ([#91699](https://github.com/kubernetes/kubernetes/pull/91699), [@javidiaz](https://github.com/javidiaz)) [SIG Apps, Network, Node and Testing] -- The CertificateSigningRequest API is promoted to certificates.k8s.io/v1 with the following changes: - - `spec.signerName` is now required, and requests for `kubernetes.io/legacy-unknown` are not allowed to be created via the `certificates.k8s.io/v1` API - - `spec.usages` is now required, may not contain duplicate values, and must only contain known usages - - `status.conditions` may not contain duplicate types - - `status.conditions[*].status` is now required - - `status.certificate` must be PEM-encoded, and contain only CERTIFICATE blocks ([#91685](https://github.com/kubernetes/kubernetes/pull/91685), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture, Auth, CLI and Testing] -- The HugePageStorageMediumSize feature gate is now on by default allowing usage of multiple sizes huge page resources on a container level. ([#90592](https://github.com/kubernetes/kubernetes/pull/90592), [@bart0sh](https://github.com/bart0sh)) [SIG Node] -- The Kubelet's --node-status-max-images option is now available via the Kubelet config file field nodeStatusMaxImage ([#91275](https://github.com/kubernetes/kubernetes/pull/91275), [@knabben](https://github.com/knabben)) [SIG Node] -- The Kubelet's --seccomp-profile-root option is now marked as deprecated. ([#91182](https://github.com/kubernetes/kubernetes/pull/91182), [@knabben](https://github.com/knabben)) [SIG Node] -- The Kubelet's `--bootstrap-checkpoint-path` option is now removed. ([#91577](https://github.com/kubernetes/kubernetes/pull/91577), [@knabben](https://github.com/knabben)) [SIG Apps and Node] -- The Kubelet's `--cloud-provider` and `--cloud-config` options are now marked as deprecated. ([#90408](https://github.com/kubernetes/kubernetes/pull/90408), [@knabben](https://github.com/knabben)) [SIG Cloud Provider and Node] -- The Kubelet's `--enable-server` and `--provider-id` option is now available via the Kubelet config file field `enableServer` and `providerID` respectively. ([#90494](https://github.com/kubernetes/kubernetes/pull/90494), [@knabben](https://github.com/knabben)) [SIG Node] -- The Kubelet's `--kernel-memcg-notification` option is now available via the Kubelet config file field kernelMemcgNotification ([#91863](https://github.com/kubernetes/kubernetes/pull/91863), [@knabben](https://github.com/knabben)) [SIG Cloud Provider, Node and Testing] -- The Kubelet's `--really-crash-for-testing` and `--chaos-chance` options are now marked as deprecated. ([#90499](https://github.com/kubernetes/kubernetes/pull/90499), [@knabben](https://github.com/knabben)) [SIG Node] -- The Kubelet's `--volume-plugin-dir` option is now available via the Kubelet config file field `VolumePluginDir`. ([#88480](https://github.com/kubernetes/kubernetes/pull/88480), [@savitharaghunathan](https://github.com/savitharaghunathan)) [SIG Node] -- The `DefaultIngressClass` feature is now GA. The `--feature-gate` parameter will be removed in 1.20. ([#91957](https://github.com/kubernetes/kubernetes/pull/91957), [@cmluciano](https://github.com/cmluciano)) [SIG API Machinery, Apps, Network and Testing] -- The alpha `DynamicAuditing` feature gate and `auditregistration.k8s.io/v1alpha1` API have been removed and are no longer supported. ([#91502](https://github.com/kubernetes/kubernetes/pull/91502), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth and Testing] -- The kube-controller-manager managed signers can now have distinct signing certificates and keys. See the help about `--cluster-signing-[signer-name]-{cert,key}-file`. `--cluster-signing-{cert,key}-file` is still the default. ([#90822](https://github.com/kubernetes/kubernetes/pull/90822), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Apps and Auth] -- The unused `series.state` field, deprecated since v1.14, is removed from the `events.k8s.io/v1beta1` and `v1` Event types. ([#90449](https://github.com/kubernetes/kubernetes/pull/90449), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps] -- Unreserve extension point for scheduler plugins is merged into Reserve extension point ([#92200](https://github.com/kubernetes/kubernetes/pull/92200), [@adtac](https://github.com/adtac)) [SIG Scheduling and Testing] -- Update Golang to v1.14.4 ([#88638](https://github.com/kubernetes/kubernetes/pull/88638), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Cloud Provider, Release and Testing] -- Updated the API documentation for Service.Spec.IPFamily to warn that its exact - semantics will probably change before the dual-stack feature goes GA, and users - should look at ClusterIP or Endpoints, not IPFamily, to figure out if an existing - Service is IPv4, IPv6, or dual-stack. ([#91527](https://github.com/kubernetes/kubernetes/pull/91527), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network] -- Users can configure a resource prefix to ignore a group of resources. ([#88842](https://github.com/kubernetes/kubernetes/pull/88842), [@angao](https://github.com/angao)) [SIG Node and Scheduling] -- `Ingress` and `IngressClass` resources have graduated to `networking.k8s.io/v1`. Ingress and IngressClass types in the `extensions/v1beta1` and `networking.k8s.io/v1beta1` API versions are deprecated and will no longer be served in 1.22+. Persisted objects can be accessed via the `networking.k8s.io/v1` API. Notable changes in v1 Ingress objects (v1beta1 field names are unchanged): - - `spec.backend` -> `spec.defaultBackend` - - `serviceName` -> `service.name` - - `servicePort` -> `service.port.name` (for string values) - - `servicePort` -> `service.port.number` (for numeric values) - - `pathType` no longer has a default value in v1; "Exact", "Prefix", or "ImplementationSpecific" must be specified - Other Ingress API updates: - - backends can now be resource or service backends - - `path` is no longer required to be a valid regular expression ([#89778](https://github.com/kubernetes/kubernetes/pull/89778), [@cmluciano](https://github.com/cmluciano)) [SIG API Machinery, Apps, CLI, Network and Testing] -- `NodeResourcesLeastAllocated` and `NodeResourcesMostAllocated` plugins now support customized weight on the CPU and memory. ([#90544](https://github.com/kubernetes/kubernetes/pull/90544), [@chendave](https://github.com/chendave)) [SIG Scheduling] -- `PostFilter` type is added to scheduler component config API on version v1beta1. ([#91547](https://github.com/kubernetes/kubernetes/pull/91547), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] -- `RequestedToCapacityRatioArgs` encoding is now strict ([#91603](https://github.com/kubernetes/kubernetes/pull/91603), [@pancernik](https://github.com/pancernik)) [SIG Scheduling] -- `v1beta1` Scheduler `Extender` encoding is case-sensitive (`v1alpha1`/`v1alpha2` was case-insensitive), its `httpTimeout` field uses duration encoding (for example, one second is specified as `"1s"`), and the `enableHttps` field in `v1alpha1`/`v1alpha2` was renamed to `enableHTTPS`. ([#91625](https://github.com/kubernetes/kubernetes/pull/91625), [@pancernik](https://github.com/pancernik)) [SIG Scheduling] - -### Feature - -- A defaultpreemption plugin is registered and enabled in scheduler which replaces the legacy hard-coded Pod preemption logic. ([#92049](https://github.com/kubernetes/kubernetes/pull/92049), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] -- A new extension point `PostFilter` is introduced to scheduler framework which runs after Filter phase to resolve scheduling filter failures. A typical implementation is running preemption logic. ([#91314](https://github.com/kubernetes/kubernetes/pull/91314), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] -- ACTION REQUIRED : In CoreDNS v1.7.0, [metrics names have been changed](https://github.com/coredns/coredns/blob/master/notes/coredns-1.7.0.md#metric-changes) which will be backward incompatible with existing reporting formulas that use the old metrics' names. Adjust your formulas to the new names before upgrading. - - Kubeadm now includes CoreDNS version v1.7.0. Some of the major changes include: - - Fixed a bug that could cause CoreDNS to stop updating service records. - - Fixed a bug in the forward plugin where only the first upstream server is always selected no matter which policy is set. - - Remove already deprecated options `resyncperiod` and `upstream` in the Kubernetes plugin. - - Includes Prometheus metrics name changes (to bring them in line with standard Prometheus metrics naming convention). They will be backward incompatible with existing reporting formulas that use the old metrics' names. - - The federation plugin (allows for v1 Kubernetes federation) has been removed. - More details are available in https://coredns.io/2020/06/15/coredns-1.7.0-release/ ([#92651](https://github.com/kubernetes/kubernetes/pull/92651), [@rajansandeep](https://github.com/rajansandeep)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] -- API requests to deprecated versions now receive a warning header in the API response, and cause a metric indicating use of a deprecated API to be published: - - `kubectl` outputs warnings to stderr, and accepts a `--warnings-as-errors` option to treat warnings as fatal errors - - `k8s.io/client-go` outputs warnings to stderr by default; override this per-client by setting `config.WarningHandler`, or per-process with `rest.SetDefaultWarningHandler()` - - `kube-apiserver` publishes `apiserver_requested_deprecated_apis` gauge metrics set to `1` for deprecated APIs which have been requested, with `group`, `version`, `resource`, `subresource`, and `removed_release` labels ([#73032](https://github.com/kubernetes/kubernetes/pull/73032), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, CLI, Instrumentation and Testing] -- Add --logging-format flag for component-base. Defaults to "text" using unchanged klog. ([#89683](https://github.com/kubernetes/kubernetes/pull/89683), [@yuzhiquan](https://github.com/yuzhiquan)) [SIG Instrumentation] -- Add --port flag to kubectl create deployment ([#91113](https://github.com/kubernetes/kubernetes/pull/91113), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] -- Add .import-restrictions file to cmd/cloud-controller-manager. ([#90630](https://github.com/kubernetes/kubernetes/pull/90630), [@nilo19](https://github.com/nilo19)) [SIG API Machinery and Cloud Provider] -- Add Annotations to CRI-API ImageSpec objects. ([#90061](https://github.com/kubernetes/kubernetes/pull/90061), [@marosset](https://github.com/marosset)) [SIG Node and Windows] -- Add attempts label to scheduler's PodSchedulingDuration metric. ([#92650](https://github.com/kubernetes/kubernetes/pull/92650), [@ahg-g](https://github.com/ahg-g)) [SIG Instrumentation and Scheduling] -- Add client-side and server-side dry-run support to kubectl scale ([#89666](https://github.com/kubernetes/kubernetes/pull/89666), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI and Testing] -- Add selectors to kubectl diff ([#90857](https://github.com/kubernetes/kubernetes/pull/90857), [@sethpollack](https://github.com/sethpollack)) [SIG CLI] -- Add support for cgroups v2 node validation ([#89901](https://github.com/kubernetes/kubernetes/pull/89901), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] -- Add support for pre allocated huge pages with different sizes, on node level ([#89252](https://github.com/kubernetes/kubernetes/pull/89252), [@odinuge](https://github.com/odinuge)) [SIG Apps and Node] -- Add tags support for Azure File Driver ([#92825](https://github.com/kubernetes/kubernetes/pull/92825), [@ZeroMagic](https://github.com/ZeroMagic)) [SIG Cloud Provider and Storage] -- Add tags support for azure disk driver ([#92356](https://github.com/kubernetes/kubernetes/pull/92356), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Added --privileged flag to kubectl run ([#90569](https://github.com/kubernetes/kubernetes/pull/90569), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] -- Added a new `GetPreferredAllocation()` call to the `v1beta1` device plugin API. ([#92665](https://github.com/kubernetes/kubernetes/pull/92665), [@klueska](https://github.com/klueska)) [SIG Node and Testing] -- Added feature support to Windows for configuring session affinity of Kubernetes services. - required: [Windows Server vNext Insider Preview Build 19551](https://blogs.windows.com/windowsexperience/2020/01/28/announcing-windows-server-vnext-insider-preview-build-19551/) (or higher) ([#91701](https://github.com/kubernetes/kubernetes/pull/91701), [@elweb9858](https://github.com/elweb9858)) [SIG Network and Windows] -- Added kube-apiserver metrics: apiserver_current_inflight_request_measures and, when API Priority and Fairness is enable, windowed_request_stats. ([#91177](https://github.com/kubernetes/kubernetes/pull/91177), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery, Instrumentation and Testing] -- Added service.beta.kubernetes.io/aws-load-balancer-target-node-labels annotation to target nodes in AWS LoadBalancer Services ([#90943](https://github.com/kubernetes/kubernetes/pull/90943), [@foobarfran](https://github.com/foobarfran)) [SIG Cloud Provider] -- Adding a set of debugging endpoints under prefix "/debug/flowcontrol/*" for dumping internal states of flow-control system with different granularity. ([#90967](https://github.com/kubernetes/kubernetes/pull/90967), [@yue9944882](https://github.com/yue9944882)) [SIG API Machinery] -- Adds profile label to kube-scheduler metric framework_extension_point_duration_seconds ([#92268](https://github.com/kubernetes/kubernetes/pull/92268), [@alculquicondor](https://github.com/alculquicondor)) [SIG Instrumentation and Scheduling] -- Adds profile label to kube-scheduler metric schedule_attempts_total - - Adds result and profile label to e2e_scheduling_duration_seconds. Times for unschedulable and error attempts are now recorded. ([#92202](https://github.com/kubernetes/kubernetes/pull/92202), [@alculquicondor](https://github.com/alculquicondor)) [SIG Instrumentation and Scheduling] -- Audit events for API requests to deprecated API versions now include a `"k8s.io/deprecated": "true"` audit annotation. If a target removal release is identified, the audit event includes a `"k8s.io/removal-release": "<majorVersion>.<minorVersion>"` audit annotation as well. ([#92842](https://github.com/kubernetes/kubernetes/pull/92842), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Instrumentation] -- Bump Dashboard to v2.0.1 ([#91526](https://github.com/kubernetes/kubernetes/pull/91526), [@maciaszczykm](https://github.com/maciaszczykm)) [SIG Cloud Provider] -- Cloud node-controller use InstancesV2 ([#91319](https://github.com/kubernetes/kubernetes/pull/91319), [@gongguan](https://github.com/gongguan)) [SIG Apps, Cloud Provider, Scalability and Storage] -- Deps: Update to Golang 1.13.9 - - build: Remove kube-cross image building ([#89275](https://github.com/kubernetes/kubernetes/pull/89275), [@justaugustus](https://github.com/justaugustus)) [SIG Release and Testing] -- Detailed scheduler scoring result can be printed at verbose level 10. ([#89384](https://github.com/kubernetes/kubernetes/pull/89384), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] -- E2e.test can print the list of conformance tests that need to pass for the cluster to be conformant. ([#88924](https://github.com/kubernetes/kubernetes/pull/88924), [@dims](https://github.com/dims)) [SIG Architecture and Testing] -- Enable feature Gate DefaultPodTopologySpread to use PodTopologySpread plugin to do defaultspreading. In doing so, legacy DefaultPodTopologySpread plugin is disabled. ([#91793](https://github.com/kubernetes/kubernetes/pull/91793), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- EndpointSlice controller waits longer to retry failed sync. ([#89438](https://github.com/kubernetes/kubernetes/pull/89438), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- Extend AWS azToRegion method to support Local Zones ([#90874](https://github.com/kubernetes/kubernetes/pull/90874), [@Jeffwan](https://github.com/Jeffwan)) [SIG Cloud Provider] -- Feat: add azure shared disk support ([#89511](https://github.com/kubernetes/kubernetes/pull/89511), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Feat: change azure disk api-version ([#89250](https://github.com/kubernetes/kubernetes/pull/89250), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Feat: support [Azure shared disk](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disks-shared-enable), added a new field(`maxShares`) in azure disk storage class: - - kind: StorageClass - apiVersion: storage.k8s.io/v1 - metadata: - name: shared-disk - provisioner: kubernetes.io/azure-disk - parameters: - skuname: Premium_LRS # Currently only available with premium SSDs. - cachingMode: None # ReadOnly host caching is not available for premium SSDs with maxShares>1 - maxShares: 2 ([#89328](https://github.com/kubernetes/kubernetes/pull/89328), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Improves IPVS proxy performance by only running `EnsureDummyInterface` if the virtual server address is not binded already. ([#92609](https://github.com/kubernetes/kubernetes/pull/92609), [@andrewsykim](https://github.com/andrewsykim)) [SIG Network] -- Kube-Proxy now supports EndpointSlices on Windows with the EndpointSliceProxying feature gate. ([#90909](https://github.com/kubernetes/kubernetes/pull/90909), [@kumarvin123](https://github.com/kumarvin123)) [SIG Network and Windows] -- Kube-Proxy now supports IPv6DualStack on Windows with the IPv6DualStack feature gate. ([#90853](https://github.com/kubernetes/kubernetes/pull/90853), [@kumarvin123](https://github.com/kumarvin123)) [SIG Network, Node and Windows] -- Kube-addon-manager has been updated to v9.1.1 to allow overriding the default list of whitelisted resources (https://github.com/kubernetes/kubernetes/pull/91018) ([#91240](https://github.com/kubernetes/kubernetes/pull/91240), [@tosi3k](https://github.com/tosi3k)) [SIG Cloud Provider, Scalability and Testing] -- Kube-apiserver backed by etcd3 exports metric showing the database file size. ([#89151](https://github.com/kubernetes/kubernetes/pull/89151), [@jingyih](https://github.com/jingyih)) [SIG API Machinery] -- Kube-apiserver, kube-scheduler and kube-controller manager now use SO_REUSEPORT socket option when listening on address defined by --bind-address and --secure-port flags, when running on Unix systems (Windows is NOT supported). This allows to run multiple instances of those processes on a single host with the same configuration, which allows to update/restart them in a graceful way, without causing downtime. ([#88893](https://github.com/kubernetes/kubernetes/pull/88893), [@invidian](https://github.com/invidian)) [SIG API Machinery, Scheduling and Testing] -- Kube-apiserver: The NodeRestriction admission plugin now restricts Node labels kubelets are permitted to set when creating a new Node to the `--node-labels` parameters accepted by kubelets in 1.16+. ([#90307](https://github.com/kubernetes/kubernetes/pull/90307), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node] -- Kube-controller-manager: add '--logging-format' flag to support structured logging ([#91521](https://github.com/kubernetes/kubernetes/pull/91521), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery and Instrumentation] -- Kube-controller-manager: the `--experimental-cluster-signing-duration` flag is marked as deprecated for removal in v1.22, and is replaced with `--cluster-signing-duration`. ([#91154](https://github.com/kubernetes/kubernetes/pull/91154), [@liggitt](https://github.com/liggitt)) [SIG Auth and Cloud Provider] -- Kube-proxy now consumes EndpointSlices instead of Endpoints by default on Linux. A new alpha `WindowsEndpointSliceProxying` feature gate allows the feature to be enabled on Windows. ([#92736](https://github.com/kubernetes/kubernetes/pull/92736), [@robscott](https://github.com/robscott)) [SIG Network] -- Kube-scheduler: add '--logging-format' flag to support structured logging ([#91522](https://github.com/kubernetes/kubernetes/pull/91522), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Scheduling] -- Kubeadm now distinguishes between generated and user supplied component configs, regenerating the former ones if a config upgrade is required ([#86070](https://github.com/kubernetes/kubernetes/pull/86070), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] -- Kubeadm: Allow manually upgraded component configs to be supplied in a YAML file via the --config option during upgrade plan & apply. The old behavior of --config in which kubeadm configuration and component configs that overwrite everything cluster stored is preserved too. The behavior to use with --config is now determined based on whether kubeadm config API objects (API group "kubeadm.kubernetes.io") were supplied in the file or not. ([#91980](https://github.com/kubernetes/kubernetes/pull/91980), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] -- Kubeadm: add startup probes for static Pods to protect slow starting containers ([#91179](https://github.com/kubernetes/kubernetes/pull/91179), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubeadm: deprecate the "--csr-only" and "--csr-dir" flags of the "kubeadm init phase certs" subcommands. Please use "kubeadm alpha certs generate-csr" instead. This new command allows you to generate new private keys and certificate signing requests for all the control-plane components, so that the certificates can be signed by an external CA. ([#92183](https://github.com/kubernetes/kubernetes/pull/92183), [@wallrj](https://github.com/wallrj)) [SIG Cluster Lifecycle] -- Kubeadm: during 'upgrade apply', if the kube-proxy ConfigMap is missing, assume that kube-proxy should not be upgraded. Same applies to a missing kube-dns/coredns ConfigMap for the DNS server addon. Note that this is a temporary workaround until 'upgrade apply' supports phases. Once phases are supported the kube-proxy/dns upgrade should be skipped manually. ([#89593](https://github.com/kubernetes/kubernetes/pull/89593), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: switch control-plane static Pods to the "system-node-critical" priority class ([#90063](https://github.com/kubernetes/kubernetes/pull/90063), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: upgrade plan now prints a table indicating the state of known component configs prior to upgrade ([#88124](https://github.com/kubernetes/kubernetes/pull/88124), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] -- Kubectl supports taint no without specifying(without having to type the full resource name) ([#88723](https://github.com/kubernetes/kubernetes/pull/88723), [@wawa0210](https://github.com/wawa0210)) [SIG CLI] -- Kubelet: following metrics have been renamed: - kubelet_running_container_count --> kubelet_running_containers - kubelet_running_pod_count --> kubelet_running_pods ([#92407](https://github.com/kubernetes/kubernetes/pull/92407), [@RainbowMango](https://github.com/RainbowMango)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Node] -- Kubelets configured to rotate client certificates now publish a `certificate_manager_server_ttl_seconds` gauge metric indicating the remaining seconds until certificate expiration. ([#91148](https://github.com/kubernetes/kubernetes/pull/91148), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node] -- New scoring for PodTopologySpreading that yields better spreading ([#90475](https://github.com/kubernetes/kubernetes/pull/90475), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- No actions required. This is a small enhancement to a utility library. ([#92440](https://github.com/kubernetes/kubernetes/pull/92440), [@luigibk](https://github.com/luigibk)) [SIG Network] -- PodTolerationRestriction: Mention Whitelist Scope in Error ([#87582](https://github.com/kubernetes/kubernetes/pull/87582), [@mrueg](https://github.com/mrueg)) [SIG Scheduling] -- Provider-specific Notes: vsphere: vsphere.conf - new option to disable credentials secret management for performance concerns ([#90836](https://github.com/kubernetes/kubernetes/pull/90836), [@Danil-Grigorev](https://github.com/Danil-Grigorev)) [SIG Cloud Provider] -- Rename pod_preemption_metrics to preemption_metrics. ([#93256](https://github.com/kubernetes/kubernetes/pull/93256), [@ahg-g](https://github.com/ahg-g)) [SIG Instrumentation and Scheduling] -- Rest.Config now supports a flag to override proxy configuration that was previously only configurable through environment variables. ([#81443](https://github.com/kubernetes/kubernetes/pull/81443), [@mikedanese](https://github.com/mikedanese)) [SIG API Machinery and Node] -- Scores from PodTopologySpreading have reduced differentiation as maxSkew increases. ([#90820](https://github.com/kubernetes/kubernetes/pull/90820), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- Server-side apply behavior has been regularized in the case where a field is removed from the applied configuration. Removed fields which have no other owners are deleted from the live object, or reset to their default value if they have one. Safe ownership transfers, such as the transfer of a `replicas` field from a user to an HPA without resetting to the default value are documented in [Transferring Ownership](https://kubernetes.io/docs/reference/using-api/api-concepts/#transferring-ownership) ([#92661](https://github.com/kubernetes/kubernetes/pull/92661), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Testing] -- Service controller: only sync LB node pools when relevant fields in Node changes ([#90769](https://github.com/kubernetes/kubernetes/pull/90769), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps and Network] -- Set CSIMigrationvSphere feature gates to beta. - Users should enable CSIMigration + CSIMigrationvSphere features and install the vSphere CSI Driver (https://github.com/kubernetes-sigs/vsphere-csi-driver) to move workload from the in-tree vSphere plugin "kubernetes.io/vsphere-volume" to vSphere CSI Driver. - - Requires: vSphere vCenter/ESXi Version: 7.0u1, HW Version: VM version 15 ([#92816](https://github.com/kubernetes/kubernetes/pull/92816), [@divyenpatel](https://github.com/divyenpatel)) [SIG Cloud Provider and Storage] -- Support `kubectl create deployment` with replicas ([#91562](https://github.com/kubernetes/kubernetes/pull/91562), [@zhouya0](https://github.com/zhouya0)) -- Support a smooth upgrade from client-side apply to server-side apply without conflicts, as well as support the corresponding downgrade. ([#90187](https://github.com/kubernetes/kubernetes/pull/90187), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG API Machinery and Testing] -- Support create or update VMSS asynchronously. ([#89248](https://github.com/kubernetes/kubernetes/pull/89248), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Support for running on a host that uses cgroups v2 unified mode ([#85218](https://github.com/kubernetes/kubernetes/pull/85218), [@giuseppe](https://github.com/giuseppe)) [SIG Node] -- Switch core master base images (kube-apiserver, kube-scheduler) from debian to distroless ([#90674](https://github.com/kubernetes/kubernetes/pull/90674), [@dims](https://github.com/dims)) [SIG Cloud Provider, Release and Scalability] -- Switch etcd image (with migration scripts) from debian to distroless ([#91171](https://github.com/kubernetes/kubernetes/pull/91171), [@dims](https://github.com/dims)) [SIG API Machinery and Cloud Provider] -- The RotateKubeletClientCertificate feature gate has been promoted to GA, and the kubelet --feature-gate RotateKubeletClientCertificate parameter will be removed in 1.20. ([#91780](https://github.com/kubernetes/kubernetes/pull/91780), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node] -- The SCTPSupport feature is now active by default. ([#88932](https://github.com/kubernetes/kubernetes/pull/88932), [@janosi](https://github.com/janosi)) [SIG Network] -- The `certificatesigningrequests/approval` subresource now supports patch API requests ([#91558](https://github.com/kubernetes/kubernetes/pull/91558), [@liggitt](https://github.com/liggitt)) [SIG Auth and Testing] -- The metric label name of `kubernetes_build_info` has been updated from `camel case` to `snake case`: - - gitVersion --> git_version - - gitCommit --> git_commit - - gitTreeState --> git_tree_state - - buildDate --> build_date - - goVersion --> go_version - - This change happens in `kube-apiserver`、`kube-scheduler`、`kube-proxy` and `kube-controller-manager`. ([#91805](https://github.com/kubernetes/kubernetes/pull/91805), [@RainbowMango](https://github.com/RainbowMango)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] -- Trace output in apiserver logs is more organized and comprehensive. Traces are nested, and for all non-long running request endpoints, the entire filter chain is instrumented (e.g. authentication check is included). ([#88936](https://github.com/kubernetes/kubernetes/pull/88936), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Scheduling] -- Try to send watch bookmarks (if requested) periodically in addition to sending them right before timeout ([#90560](https://github.com/kubernetes/kubernetes/pull/90560), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery] -- Update cri-tools to v1.18.0 ([#89720](https://github.com/kubernetes/kubernetes/pull/89720), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Cluster Lifecycle, Release and Scalability] -- Update etcd client side to v3.4.4 ([#89169](https://github.com/kubernetes/kubernetes/pull/89169), [@jingyih](https://github.com/jingyih)) [SIG API Machinery and Cloud Provider] -- Update etcd client side to v3.4.7 ([#89822](https://github.com/kubernetes/kubernetes/pull/89822), [@jingyih](https://github.com/jingyih)) [SIG API Machinery and Cloud Provider] -- Update etcd client side to v3.4.9 ([#92075](https://github.com/kubernetes/kubernetes/pull/92075), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cloud Provider and Instrumentation] -- Upgrade to azure-sdk v40.2.0 ([#89105](https://github.com/kubernetes/kubernetes/pull/89105), [@andyzhangx](https://github.com/andyzhangx)) [SIG CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Storage and Testing] -- Warn users that `kubectl port-forward` does not support UDP now ([#91616](https://github.com/kubernetes/kubernetes/pull/91616), [@knight42](https://github.com/knight42)) [SIG CLI] -- Weight of PodTopologySpread scheduling Score is doubled. ([#91258](https://github.com/kubernetes/kubernetes/pull/91258), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- `EventRecorder()` is exposed to `FrameworkHandle` interface so that scheduler plugin developers can choose to log cluster-level events. ([#92010](https://github.com/kubernetes/kubernetes/pull/92010), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] -- `kubectl alpha debug` command now supports debugging pods by copy the original one. ([#90094](https://github.com/kubernetes/kubernetes/pull/90094), [@aylei](https://github.com/aylei)) [SIG CLI] -- `kubectl alpha debug` now supports debugging nodes by creating a debugging container running in the node's host namespaces. ([#92310](https://github.com/kubernetes/kubernetes/pull/92310), [@verb](https://github.com/verb)) [SIG CLI] -- `local-up-cluster.sh` installs CSI snapshotter by default now, can be disabled with `ENABLE_CSI_SNAPSHOTTER=false`. ([#91504](https://github.com/kubernetes/kubernetes/pull/91504), [@pohly](https://github.com/pohly)) -- `maxThreshold` of `ImageLocality` plugin is now scaled by the number of images in the pod, which helps to distinguish the node priorities for pod with several images. ([#91138](https://github.com/kubernetes/kubernetes/pull/91138), [@chendave](https://github.com/chendave)) [SIG Scheduling] - -### Documentation - -- Updated the instructions for deploying the sample app. ([#82785](https://github.com/kubernetes/kubernetes/pull/82785), [@ashish-billore](https://github.com/ashish-billore)) [SIG API Machinery] - -### Failing Test - -- Kube-proxy iptables min-sync-period defaults to 1 sec. Previously, it was 0. ([#92836](https://github.com/kubernetes/kubernetes/pull/92836), [@aojea](https://github.com/aojea)) [SIG Network] - -### Bug or Regression - -- A PV set from in-tree source will have ordered requirement values in NodeAffinity when converted to CSIPersistentVolumeSource ([#88987](https://github.com/kubernetes/kubernetes/pull/88987), [@jiahuif](https://github.com/jiahuif)) [SIG Storage] -- A panic in the apiserver caused by the `informer-sync` health checker is now fixed. ([#93600](https://github.com/kubernetes/kubernetes/pull/93600), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG API Machinery] -- An issue preventing GCP cloud-controller-manager running out-of-cluster to initialize new Nodes is now fixed. ([#90057](https://github.com/kubernetes/kubernetes/pull/90057), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Apps and Cloud Provider] -- Avoid GCE API calls when initializing GCE CloudProvider for Kubelets. ([#90218](https://github.com/kubernetes/kubernetes/pull/90218), [@wojtek-t](https://github.com/wojtek-t)) [SIG Cloud Provider and Scalability] -- Avoid unnecessary GCE API calls when adding IP alises or reflecting them in Node object in GCE cloud provider. ([#90242](https://github.com/kubernetes/kubernetes/pull/90242), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps, Cloud Provider and Network] -- Avoid unnecessary scheduling churn when annotations are updated while Pods are being scheduled. ([#90373](https://github.com/kubernetes/kubernetes/pull/90373), [@fabiokung](https://github.com/fabiokung)) [SIG Scheduling] -- Azure auth module for kubectl now requests login after refresh token expires. ([#86481](https://github.com/kubernetes/kubernetes/pull/86481), [@tdihp](https://github.com/tdihp)) [SIG API Machinery and Auth] -- Azure: fix concurreny issue in lb creation ([#89604](https://github.com/kubernetes/kubernetes/pull/89604), [@aramase](https://github.com/aramase)) [SIG Cloud Provider] -- Azure: per VMSS VMSS VMs cache to prevent throttling on clusters having many attached VMSS ([#93107](https://github.com/kubernetes/kubernetes/pull/93107), [@bpineau](https://github.com/bpineau)) [SIG Cloud Provider] -- Azure: set dest prefix and port for IPv6 inbound security rule ([#91831](https://github.com/kubernetes/kubernetes/pull/91831), [@aramase](https://github.com/aramase)) [SIG Cloud Provider] -- Base-images: Update to kube-cross:v1.13.9-5 ([#90963](https://github.com/kubernetes/kubernetes/pull/90963), [@justaugustus](https://github.com/justaugustus)) [SIG Release and Testing] -- Bug fix for AWS NLB service when nodePort for existing servicePort changed manually. ([#89562](https://github.com/kubernetes/kubernetes/pull/89562), [@M00nF1sh](https://github.com/M00nF1sh)) [SIG Cloud Provider] -- CSINode initialization does not crash kubelet on startup when APIServer is not reachable or kubelet has not the right credentials yet. ([#89589](https://github.com/kubernetes/kubernetes/pull/89589), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] -- CVE-2020-8557 (Medium): Node-local denial of service via container /etc/hosts file. See https://github.com/kubernetes/kubernetes/issues/93032 for more details. ([#92916](https://github.com/kubernetes/kubernetes/pull/92916), [@joelsmith](https://github.com/joelsmith)) [SIG Node] -- Client-go: resolves an issue with informers falling back to full list requests when timeouts are encountered, rather than re-establishing a watch. ([#89652](https://github.com/kubernetes/kubernetes/pull/89652), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] -- CloudNodeLifecycleController will check node existence status before shutdown status when monitoring nodes. ([#90737](https://github.com/kubernetes/kubernetes/pull/90737), [@jiahuif](https://github.com/jiahuif)) [SIG Apps and Cloud Provider] -- Containers which specify a `startupProbe` but not a `readinessProbe` were previously considered "ready" before the `startupProbe` completed, but are now considered "not-ready". ([#92196](https://github.com/kubernetes/kubernetes/pull/92196), [@thockin](https://github.com/thockin)) [SIG Node] -- Cordoned nodes are now deregistered from AWS target groups. ([#85920](https://github.com/kubernetes/kubernetes/pull/85920), [@hoelzro](https://github.com/hoelzro)) [SIG Cloud Provider] -- Do not add nodes labeled with kubernetes.azure.com/managed=false to backend pool of load balancer. ([#93034](https://github.com/kubernetes/kubernetes/pull/93034), [@matthias50](https://github.com/matthias50)) [SIG Cloud Provider] -- Do not retry volume expansion if CSI driver returns FailedPrecondition error ([#92986](https://github.com/kubernetes/kubernetes/pull/92986), [@gnufied](https://github.com/gnufied)) [SIG Node and Storage] -- Dockershim security: pod sandbox now always run with `no-new-privileges` and `runtime/default` seccomp profile - dockershim seccomp: custom profiles can now have smaller seccomp profiles when set at pod level ([#90948](https://github.com/kubernetes/kubernetes/pull/90948), [@pjbgf](https://github.com/pjbgf)) [SIG Node] -- Dual-stack: fix the bug that Service clusterIP does not respect specified ipFamily ([#89612](https://github.com/kubernetes/kubernetes/pull/89612), [@SataQiu](https://github.com/SataQiu)) [SIG Network] -- EndpointSliceMirroring controller now copies labels from Endpoints to EndpointSlices. ([#93442](https://github.com/kubernetes/kubernetes/pull/93442), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- Ensure Azure availability zone is always in lower cases. ([#89722](https://github.com/kubernetes/kubernetes/pull/89722), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Eviction requests for pods that have a non-zero DeletionTimestamp will always succeed ([#91342](https://github.com/kubernetes/kubernetes/pull/91342), [@michaelgugino](https://github.com/michaelgugino)) [SIG Apps] -- Explain CRDs whose resource name are the same as builtin objects ([#89505](https://github.com/kubernetes/kubernetes/pull/89505), [@knight42](https://github.com/knight42)) [SIG API Machinery, CLI and Testing] -- Extend kube-apiserver /readyz with new "informer-sync" check ensuring that internal informers are synced. ([#92644](https://github.com/kubernetes/kubernetes/pull/92644), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Testing] -- Extended DSR loadbalancer feature in winkernel kube-proxy to HNS versions 9.3-9.max, 10.2+ ([#93080](https://github.com/kubernetes/kubernetes/pull/93080), [@elweb9858](https://github.com/elweb9858)) [SIG Network] -- First pod with required affinity terms can schedule only on nodes with matching topology keys. ([#91168](https://github.com/kubernetes/kubernetes/pull/91168), [@ahg-g](https://github.com/ahg-g)) [SIG Scheduling] -- Fix AWS Loadbalancer VPC CIDR calculation when CIDR in disassociated state exists. ([#92227](https://github.com/kubernetes/kubernetes/pull/92227), [@M00nF1sh](https://github.com/M00nF1sh)) [SIG Cloud Provider] -- Fix InstanceMetadataByProviderID for unmanaged nodes ([#92572](https://github.com/kubernetes/kubernetes/pull/92572), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Fix `VirtualMachineScaleSets.virtualMachines.GET` not allowed issues when customers have set VMSS orchestrationMode. ([#91097](https://github.com/kubernetes/kubernetes/pull/91097), [@feiskyer](https://github.com/feiskyer)) -- Fix a bug that didn't allow to use IPv6 addresses with leading zeros ([#89341](https://github.com/kubernetes/kubernetes/pull/89341), [@aojea](https://github.com/aojea)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] -- Fix a bug where ExternalTrafficPolicy is not applied to service ExternalIPs. ([#90537](https://github.com/kubernetes/kubernetes/pull/90537), [@freehan](https://github.com/freehan)) [SIG Network] -- Fix a condition when expiring nil VM entry in VMSS cache ([#92681](https://github.com/kubernetes/kubernetes/pull/92681), [@ArchangelSDY](https://github.com/ArchangelSDY)) [SIG Cloud Provider] -- Fix a racing issue where the scheduler may perform unnecessary scheduling attempts. ([#90660](https://github.com/kubernetes/kubernetes/pull/90660), [@Huang-Wei](https://github.com/Huang-Wei)) -- Fix an issue with container restarts using a modified configmap or secret subpath volume mount. ([#89629](https://github.com/kubernetes/kubernetes/pull/89629), [@fatedier](https://github.com/fatedier)) [SIG Architecture, Storage and Testing] -- Fix bug in the port allocation logic that caused that the NodePort creation with statically assigned portNumber collide in multi-master HA cluster ([#89937](https://github.com/kubernetes/kubernetes/pull/89937), [@aojea](https://github.com/aojea)) [SIG Network and Testing] -- Fix bug with xfs_repair from stopping xfs mount ([#89444](https://github.com/kubernetes/kubernetes/pull/89444), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Storage] -- Fix clusterdump info namespaces flag not working ([#91890](https://github.com/kubernetes/kubernetes/pull/91890), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] -- Fix detection of SystemOOMs in which the victim is a container. ([#88871](https://github.com/kubernetes/kubernetes/pull/88871), [@dashpole](https://github.com/dashpole)) [SIG Node] -- Fix detection of image filesystem, disk metrics for devicemapper, detection of OOM Kills on 5.0+ linux kernels. ([#92919](https://github.com/kubernetes/kubernetes/pull/92919), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Node] -- Fix etcd version migration script in etcd image. ([#91925](https://github.com/kubernetes/kubernetes/pull/91925), [@wenjiaswe](https://github.com/wenjiaswe)) [SIG API Machinery] -- Fix flaws in Azure File CSI translation ([#90162](https://github.com/kubernetes/kubernetes/pull/90162), [@rfranzke](https://github.com/rfranzke)) [SIG Release and Storage] -- Fix instance not found issues when an Azure Node is recreated in a short time ([#93316](https://github.com/kubernetes/kubernetes/pull/93316), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Fix issues when supported huge page sizes changes ([#80831](https://github.com/kubernetes/kubernetes/pull/80831), [@odinuge](https://github.com/odinuge)) [SIG Node and Testing] -- Fix kube-apiserver startup to wait for APIServices to be installed into the HTTP handler before reporting readiness. ([#89147](https://github.com/kubernetes/kubernetes/pull/89147), [@sttts](https://github.com/sttts)) [SIG API Machinery] -- Fix kubectl create --dryrun client ignores namespace ([#90502](https://github.com/kubernetes/kubernetes/pull/90502), [@zhouya0](https://github.com/zhouya0)) -- Fix kubectl create secret docker-registry --from-file not usable ([#90960](https://github.com/kubernetes/kubernetes/pull/90960), [@zhouya0](https://github.com/zhouya0)) [SIG CLI and Testing] -- Fix kubectl describe CSINode nil pointer error ([#89646](https://github.com/kubernetes/kubernetes/pull/89646), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] -- Fix kubectl describe node for users not having access to lease information. ([#90469](https://github.com/kubernetes/kubernetes/pull/90469), [@uthark](https://github.com/uthark)) [SIG CLI] -- Fix kubectl describe output format for empty annotations. ([#91405](https://github.com/kubernetes/kubernetes/pull/91405), [@iyashu](https://github.com/iyashu)) [SIG CLI] -- Fix kubectl diff so it doesn't actually persist patches ([#89795](https://github.com/kubernetes/kubernetes/pull/89795), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI and Testing] -- Fix kubectl run --dry-run client ignore namespace ([#90785](https://github.com/kubernetes/kubernetes/pull/90785), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] -- Fix kubectl version should print version info without config file ([#89913](https://github.com/kubernetes/kubernetes/pull/89913), [@zhouya0](https://github.com/zhouya0)) [SIG API Machinery and CLI] -- Fix missing `-c` shorthand for `--container` flag of `kubectl alpha debug` ([#89674](https://github.com/kubernetes/kubernetes/pull/89674), [@superbrothers](https://github.com/superbrothers)) [SIG CLI] -- Fix printers ignoring object average value ([#89142](https://github.com/kubernetes/kubernetes/pull/89142), [@zhouya0](https://github.com/zhouya0)) [SIG API Machinery] -- Fix public IP not shown issues after assigning public IP to Azure VMs ([#90886](https://github.com/kubernetes/kubernetes/pull/90886), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Fix scheduler crash when removing node before its pods ([#89908](https://github.com/kubernetes/kubernetes/pull/89908), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- Fix the VMSS name and resource group name when updating Azure VMSS for LoadBalancer backendPools ([#89337](https://github.com/kubernetes/kubernetes/pull/89337), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Fix throttling issues when Azure VM computer name prefix is different from VMSS name ([#92793](https://github.com/kubernetes/kubernetes/pull/92793), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Fix: Azure deallocating node should be regarded as shut down ([#92257](https://github.com/kubernetes/kubernetes/pull/92257), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix: GetLabelsForVolume panic issue for azure disk PV ([#92166](https://github.com/kubernetes/kubernetes/pull/92166), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix: add azure file migration support on annotation support ([#91093](https://github.com/kubernetes/kubernetes/pull/91093), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Node] -- Fix: azure disk dangling attach issue which would cause API throttling ([#90749](https://github.com/kubernetes/kubernetes/pull/90749), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix: determine the correct ip config based on ip family ([#93043](https://github.com/kubernetes/kubernetes/pull/93043), [@aramase](https://github.com/aramase)) [SIG Cloud Provider] -- Fix: don't use docker config cache if it's empty ([#92330](https://github.com/kubernetes/kubernetes/pull/92330), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix: fix topology issue in azure disk storage class migration ([#91196](https://github.com/kubernetes/kubernetes/pull/91196), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix: get attach disk error due to missing item in max count table ([#89768](https://github.com/kubernetes/kubernetes/pull/89768), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fix: incorrect max azure disk max count ([#92331](https://github.com/kubernetes/kubernetes/pull/92331), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fix: initial delay in mounting azure disk & file ([#93052](https://github.com/kubernetes/kubernetes/pull/93052), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fix: support removal of nodes backed by deleted non VMSS instances on Azure ([#91184](https://github.com/kubernetes/kubernetes/pull/91184), [@bpineau](https://github.com/bpineau)) [SIG Cloud Provider] -- Fix: use force detach for azure disk ([#91948](https://github.com/kubernetes/kubernetes/pull/91948), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fixed a 1.18 regression in wait.Forever that skips the backoff period on the first repeat ([#90476](https://github.com/kubernetes/kubernetes/pull/90476), [@zhan849](https://github.com/zhan849)) [SIG API Machinery] -- Fixed a bug that mistake use newObj as oldObj in endpoint slice update. ([#92339](https://github.com/kubernetes/kubernetes/pull/92339), [@fatkun](https://github.com/fatkun)) [SIG Apps and Network] -- Fixed a bug where executing a kubectl command with a jsonpath output expression that has a nested range would ignore expressions following the nested range. ([#88464](https://github.com/kubernetes/kubernetes/pull/88464), [@brianpursley](https://github.com/brianpursley)) [SIG API Machinery] -- Fixed a bug whereby the allocation of reusable CPUs and devices was not being honored when the TopologyManager was enabled ([#93189](https://github.com/kubernetes/kubernetes/pull/93189), [@klueska](https://github.com/klueska)) [SIG Node] -- Fixed a performance issue applying json patches to deeply nested objects ([#92069](https://github.com/kubernetes/kubernetes/pull/92069), [@tapih](https://github.com/tapih)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] -- Fixed a regression preventing garbage collection of RBAC role and binding objects ([#90534](https://github.com/kubernetes/kubernetes/pull/90534), [@apelisse](https://github.com/apelisse)) [SIG Auth] -- Fixed a regression running kubectl commands with --local or --dry-run flags when no kubeconfig file is present ([#90243](https://github.com/kubernetes/kubernetes/pull/90243), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI and Testing] -- Fixed ambiguous behavior when bearer token (kubectl --token=..) and an exec credential plugin was configured in the same context - the bearer token now takes precedence. ([#91745](https://github.com/kubernetes/kubernetes/pull/91745), [@anderseknert](https://github.com/anderseknert)) [SIG API Machinery, Auth and Testing] -- Fixed an issue mounting credentials for service accounts whose name contains `.` characters ([#89696](https://github.com/kubernetes/kubernetes/pull/89696), [@nabokihms](https://github.com/nabokihms)) [SIG Auth] -- Fixed an issue that a Pod's nominatedNodeName cannot be cleared upon node deletion. ([#91750](https://github.com/kubernetes/kubernetes/pull/91750), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] -- Fixed bug where a nonzero exit code was returned when initializing zsh completion even though zsh completion was successfully initialized ([#88165](https://github.com/kubernetes/kubernetes/pull/88165), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] -- Fixed memory leak in endpointSliceTracker ([#92838](https://github.com/kubernetes/kubernetes/pull/92838), [@tnqn](https://github.com/tnqn)) [SIG Apps and Network] -- Fixed mountOptions in iSCSI and FibreChannel volume plugins. ([#89172](https://github.com/kubernetes/kubernetes/pull/89172), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] -- Fixed node data lost in kube-scheduler for clusters with imbalance on number of nodes across zones ([#93355](https://github.com/kubernetes/kubernetes/pull/93355), [@maelk](https://github.com/maelk)) -- Fixed several bugs involving the IPFamily field when creating or updating services - in clusters with the IPv6DualStack feature gate enabled. - - Beware that the behavior of the IPFamily field is strange and inconsistent and will - likely be changed before the dual-stack feature goes GA. Users should treat the - field as "write-only" for now and should not make any assumptions about a service - based on its current IPFamily value. ([#91400](https://github.com/kubernetes/kubernetes/pull/91400), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network] -- Fixed the EndpointSlice controller to run without error on a cluster with the OwnerReferencesPermissionEnforcement validating admission plugin enabled. ([#89741](https://github.com/kubernetes/kubernetes/pull/89741), [@marun](https://github.com/marun)) [SIG Auth and Network] -- Fixed the EndpointSliceController to correctly create endpoints for IPv6-only pods. - - Fixed the EndpointController to allow IPv6 headless services, if the IPv6DualStack - feature gate is enabled, by specifying `ipFamily: IPv6` on the service. (This already - worked with the EndpointSliceController.) ([#91399](https://github.com/kubernetes/kubernetes/pull/91399), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network] -- Fixed using of a read-only iSCSI volume in multiple pods. ([#91738](https://github.com/kubernetes/kubernetes/pull/91738), [@jsafrane](https://github.com/jsafrane)) [SIG Storage and Testing] -- Fixes CSI volume attachment scaling issue by using informers. ([#91307](https://github.com/kubernetes/kubernetes/pull/91307), [@yuga711](https://github.com/yuga711)) [SIG API Machinery, Apps, Node, Storage and Testing] -- Fixes a bug defining a default value for a replicas field in a custom resource definition that has the scale subresource enabled ([#89833](https://github.com/kubernetes/kubernetes/pull/89833), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] -- Fixes a bug that non directory hostpath type can be recognized as HostPathFile and adds e2e tests for HostPathType ([#64829](https://github.com/kubernetes/kubernetes/pull/64829), [@dixudx](https://github.com/dixudx)) [SIG Apps, Storage and Testing] -- Fixes a problem with 63-second or 1-second connection delays with some VXLAN-based - network plugins which was first widely noticed in 1.16 (though some users saw it - earlier than that, possibly only with specific network plugins). If you were previously - using ethtool to disable checksum offload on your primary network interface, you should - now be able to stop doing that. ([#92035](https://github.com/kubernetes/kubernetes/pull/92035), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] -- Fixes a regression in 1.17 that dropped cache-control headers on API requests ([#90468](https://github.com/kubernetes/kubernetes/pull/90468), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] -- Fixes conversion error for HorizontalPodAutoscaler objects with invalid annotations ([#89963](https://github.com/kubernetes/kubernetes/pull/89963), [@liggitt](https://github.com/liggitt)) [SIG Autoscaling] -- Fixes kubectl to apply all validly built objects, instead of stopping on error. ([#89848](https://github.com/kubernetes/kubernetes/pull/89848), [@seans3](https://github.com/seans3)) [SIG CLI and Testing] -- Fixes regression in CPUManager that caused freeing of exclusive CPUs at incorrect times ([#90377](https://github.com/kubernetes/kubernetes/pull/90377), [@cbf123](https://github.com/cbf123)) [SIG Cloud Provider and Node] -- Fixes regression in CPUManager that had the (rare) possibility to release exclusive CPUs in app containers inherited from init containers. ([#90419](https://github.com/kubernetes/kubernetes/pull/90419), [@klueska](https://github.com/klueska)) [SIG Node] -- Fixes v1.18.0-rc.1 regression in `kubectl port-forward` when specifying a local and remote port ([#89401](https://github.com/kubernetes/kubernetes/pull/89401), [@liggitt](https://github.com/liggitt)) -- Fixing race condition with EndpointSlice controller garbage collection. ([#91311](https://github.com/kubernetes/kubernetes/pull/91311), [@robscott](https://github.com/robscott)) [SIG Apps, Network and Testing] -- For GCE cluster provider, fix bug of not being able to create internal type load balancer for clusters with more than 1000 nodes in a single zone. ([#89902](https://github.com/kubernetes/kubernetes/pull/89902), [@wojtek-t](https://github.com/wojtek-t)) [SIG Cloud Provider, Network and Scalability] -- For external storage e2e test suite, update external driver, to pick snapshot provisioner from VolumeSnapshotClass, when a VolumeSnapshotClass is explicitly provided as an input. ([#90878](https://github.com/kubernetes/kubernetes/pull/90878), [@saikat-royc](https://github.com/saikat-royc)) [SIG Storage and Testing] -- Get-kube.sh: fix order to get the binaries from the right bucket ([#91635](https://github.com/kubernetes/kubernetes/pull/91635), [@cpanato](https://github.com/cpanato)) [SIG Release] -- If firstTimestamp is not set use eventTime when printing event ([#89999](https://github.com/kubernetes/kubernetes/pull/89999), [@soltysh](https://github.com/soltysh)) [SIG CLI] -- If we set parameter cgroupPerQos=false and cgroupRoot=/docker,this function will retrun nodeAllocatableRoot=/docker/kubepods, it is not right, the correct return should be /docker. - cm.NodeAllocatableRoot(s.CgroupRoot, s.CgroupDriver) - - kubeDeps.CAdvisorInterface, err = cadvisor.New(imageFsInfoProvider, s.RootDirectory, cgroupRoots, cadvisor.UsingLegacyCadvisorStats(s.ContainerRuntime, s.RemoteRuntimeEndpoint)) - the above funtion,as we use cgroupRoots to create cadvisor interface,the wrong parameter cgroupRoots will lead eviction manager not to collect metric from /docker, then kubelet frequently print those error: - E0303 17:25:03.436781 63839 summary_sys_containers.go:47] Failed to get system container stats for "/docker": failed to get cgroup stats for "/docker": failed to get container info for "/docker": unknown container "/docker" - E0303 17:25:03.436809 63839 helpers.go:680] eviction manager: failed to construct signal: "allocatableMemory.available" error: system container "pods" not found in metrics ([#88970](https://github.com/kubernetes/kubernetes/pull/88970), [@mysunshine92](https://github.com/mysunshine92)) [SIG Node] -- In a HA env, during the period a standby scheduler lost connection to API server, if a Pod is deleted and recreated, and the standby scheduler becomes master afterwards, there could be a scheduler cache corruption. This PR fixes this issue. ([#91126](https://github.com/kubernetes/kubernetes/pull/91126), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] -- In the kubelet resource metrics endpoint at /metrics/resource, change the names of the following metrics: - - node_cpu_usage_seconds --> node_cpu_usage_seconds_total - - container_cpu_usage_seconds --> container_cpu_usage_seconds_total - This is a partial revert of #86282, which was added in 1.18.0, and initially removed the _total suffix ([#89540](https://github.com/kubernetes/kubernetes/pull/89540), [@dashpole](https://github.com/dashpole)) [SIG Instrumentation and Node] -- Ipvs: only attempt setting of sysctlconnreuse on supported kernels ([#88541](https://github.com/kubernetes/kubernetes/pull/88541), [@cmluciano](https://github.com/cmluciano)) [SIG Network] -- Jsonpath support in kubectl / client-go serializes complex types (maps / slices / structs) as json instead of Go-syntax. ([#89660](https://github.com/kubernetes/kubernetes/pull/89660), [@pjferrell](https://github.com/pjferrell)) [SIG API Machinery, CLI and Cluster Lifecycle] -- Kube-aggregator certificates are dynamically loaded on change from disk ([#92791](https://github.com/kubernetes/kubernetes/pull/92791), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] -- Kube-apiserver: fixes scale subresource patch handling to avoid returning unnecessary 409 Conflict error to clients ([#90342](https://github.com/kubernetes/kubernetes/pull/90342), [@liggitt](https://github.com/liggitt)) [SIG Apps, Autoscaling and Testing] -- Kube-apiserver: jsonpath expressions with consecutive recursive descent operators are no longer evaluated for custom resource printer columns ([#93408](https://github.com/kubernetes/kubernetes/pull/93408), [@joelsmith](https://github.com/joelsmith)) [SIG API Machinery] -- Kube-apiserver: multiple comma-separated protocols in a single X-Stream-Protocol-Version header are now recognized, in addition to multiple headers, complying with RFC2616 ([#89857](https://github.com/kubernetes/kubernetes/pull/89857), [@tedyu](https://github.com/tedyu)) [SIG API Machinery] -- Kube-proxy IP family will be determined by the nodeIP used by the proxier. The order of precedence is: - 1. the configured --bind-address if the bind address is not 0.0.0.0 or :: - 2. the primary IP from the Node object, if set. - 3. if no IP is found, NodeIP defaults to 127.0.0.1 and the IP family to IPv4 ([#91725](https://github.com/kubernetes/kubernetes/pull/91725), [@aojea](https://github.com/aojea)) [SIG Network] -- Kube-proxy, in dual-stack mode, infers the service IP family from the ClusterIP instead of using the `Service.Spec.IPFamily` field ([#91357](https://github.com/kubernetes/kubernetes/pull/91357), [@aojea](https://github.com/aojea)) -- Kube-up now includes CoreDNS version v1.7.0. Some of the major changes include: - - Fixed a bug that could cause CoreDNS to stop updating service records. - - Fixed a bug in the forward plugin where only the first upstream server is always selected no matter which policy is set. - - Remove already deprecated options `resyncperiod` and `upstream` in the Kubernetes plugin. - - Includes Prometheus metrics name changes (to bring them in line with standard Prometheus metrics naming convention). They will be backward incompatible with existing reporting formulas that use the old metrics' names. - - The federation plugin (allows for v1 Kubernetes federation) has been removed. - More details are available in https://coredns.io/2020/06/15/coredns-1.7.0-release/ ([#92718](https://github.com/kubernetes/kubernetes/pull/92718), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cloud Provider] -- Kube-up: fixes setup of validating admission webhook credential configuration ([#91995](https://github.com/kubernetes/kubernetes/pull/91995), [@liggitt](https://github.com/liggitt)) [SIG Cloud Provider and Cluster Lifecycle] -- Kubeadm increased to 5 minutes its timeout for the TLS bootstrapping process to complete upon join ([#89735](https://github.com/kubernetes/kubernetes/pull/89735), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] -- Kubeadm: Add retries for kubeadm join / UpdateStatus to make update status more resilient by adding a retry loop to this operation ([#91952](https://github.com/kubernetes/kubernetes/pull/91952), [@xlgao-zju](https://github.com/xlgao-zju)) [SIG Cluster Lifecycle] -- Kubeadm: add the deprecated flag --port=0 to kube-controller-manager and kube-scheduler manifests to disable insecure serving. Without this flag the components by default serve (e.g. /metrics) insecurely on the default node interface (controlled by --address). Users that wish to override this behavior and enable insecure serving can pass a custom --port=X via kubeadm's "extraArgs" mechanic for these components. ([#92720](https://github.com/kubernetes/kubernetes/pull/92720), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: during "join", don't re-add an etcd member if it already exists in the cluster. ([#92118](https://github.com/kubernetes/kubernetes/pull/92118), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: during "reset" do not remove the only remaining stacked etcd member from the cluster and just proceed with the cleanup of the local etcd storage. ([#91145](https://github.com/kubernetes/kubernetes/pull/91145), [@tnqn](https://github.com/tnqn)) [SIG Cluster Lifecycle] -- Kubeadm: during join when a check is performed that a Node with the same name already exists in the cluster, make sure the NodeReady condition is properly validated ([#89602](https://github.com/kubernetes/kubernetes/pull/89602), [@kvaps](https://github.com/kvaps)) [SIG Cluster Lifecycle] -- Kubeadm: ensure `image-pull-timeout` flag is respected during upgrade phase ([#90328](https://github.com/kubernetes/kubernetes/pull/90328), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubeadm: fix a bug where post upgrade to 1.18.x, nodes cannot join the cluster due to missing RBAC ([#89537](https://github.com/kubernetes/kubernetes/pull/89537), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: fix misleading warning about passing control-plane related flags on 'kubeadm join' ([#89596](https://github.com/kubernetes/kubernetes/pull/89596), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: increase robustness for "kubeadm join" when adding etcd members on slower setups ([#90645](https://github.com/kubernetes/kubernetes/pull/90645), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: remove duplicate DNS names and IP addresses from generated certificates ([#92753](https://github.com/kubernetes/kubernetes/pull/92753), [@QianChenglong](https://github.com/QianChenglong)) [SIG Cluster Lifecycle] -- Kubectl azure authentication: fixed a regression in 1.18.0 where "spn:" prefix was unexpectedly added to the `apiserver-id` configuration in the kubeconfig file ([#89706](https://github.com/kubernetes/kubernetes/pull/89706), [@weinong](https://github.com/weinong)) [SIG API Machinery and Auth] -- Kubectl: fix the bug that kubectl autoscale does not honor '--name' flag ([#91855](https://github.com/kubernetes/kubernetes/pull/91855), [@SataQiu](https://github.com/SataQiu)) [SIG CLI] -- Kubectl: fix the bug that kubectl scale does not honor '--timeout' flag ([#91858](https://github.com/kubernetes/kubernetes/pull/91858), [@SataQiu](https://github.com/SataQiu)) [SIG CLI] -- Kubelet: fix the bug that kubelet help information can not show the right type of flags ([#88515](https://github.com/kubernetes/kubernetes/pull/88515), [@SataQiu](https://github.com/SataQiu)) [SIG Docs and Node] -- Kuberuntime security: pod sandbox now always runs with `runtime/default` seccomp profile - kuberuntime seccomp: custom profiles can now have smaller seccomp profiles when set at pod level ([#90949](https://github.com/kubernetes/kubernetes/pull/90949), [@pjbgf](https://github.com/pjbgf)) [SIG Node] -- Make Kubelet bootstrap certificate signal aware ([#92786](https://github.com/kubernetes/kubernetes/pull/92786), [@answer1991](https://github.com/answer1991)) [SIG API Machinery, Auth and Node] -- Node ([#89677](https://github.com/kubernetes/kubernetes/pull/89677), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] -- On AWS nodes with multiple network interfaces, kubelet should now more reliably report addresses from secondary interfaces. ([#91889](https://github.com/kubernetes/kubernetes/pull/91889), [@anguslees](https://github.com/anguslees)) [SIG Cloud Provider] -- Pod Conditions updates are skipped for re-scheduling attempts ([#91252](https://github.com/kubernetes/kubernetes/pull/91252), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- Pods can now be considered for preemption after a previously nominated node has become unschedulable and unresolvable. ([#92604](https://github.com/kubernetes/kubernetes/pull/92604), [@soulxu](https://github.com/soulxu)) -- Prevent PVC requested size overflow when expanding or creating a volume ([#90907](https://github.com/kubernetes/kubernetes/pull/90907), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage] -- Provides a fix to allow a cluster in a private Azure cloud to authenticate to ACR in the same cloud. ([#90425](https://github.com/kubernetes/kubernetes/pull/90425), [@DavidParks8](https://github.com/DavidParks8)) [SIG Cloud Provider] -- Refine aws loadbalancer worker node SG rule logic to be deterministic ([#92224](https://github.com/kubernetes/kubernetes/pull/92224), [@M00nF1sh](https://github.com/M00nF1sh)) [SIG Cloud Provider] -- Resolve regression in metadata.managedFields handling in create/update/patch requests not using server-side apply ([#91690](https://github.com/kubernetes/kubernetes/pull/91690), [@apelisse](https://github.com/apelisse)) [SIG API Machinery and Testing] -- Resolved a regression in v1.18.0-rc.1 mounting windows volumes ([#89319](https://github.com/kubernetes/kubernetes/pull/89319), [@mboersma](https://github.com/mboersma)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Storage] -- Resolves an issue using `kubectl certificate approve/deny` against a server serving the v1 CSR API ([#91691](https://github.com/kubernetes/kubernetes/pull/91691), [@liggitt](https://github.com/liggitt)) [SIG Auth and CLI] -- Restore the ability to `kubectl apply --prune` without --namespace flag. Since 1.17, `kubectl apply --prune` only prunes resources in the default namespace (or from kubeconfig) or explicitly specified in command line flag. But this is s breaking change from kubectl 1.16, which can prune resources in all namespace in config file. This patch restores the kubectl 1.16 behaviour. ([#89551](https://github.com/kubernetes/kubernetes/pull/89551), [@tatsuhiro-t](https://github.com/tatsuhiro-t)) [SIG CLI and Testing] -- Restores priority of static control plane pods in the cluster/gce/manifests control-plane manifests ([#89970](https://github.com/kubernetes/kubernetes/pull/89970), [@liggitt](https://github.com/liggitt)) [SIG Cluster Lifecycle and Node] -- Reverted devicemanager for Windows node added in 1.19rc1. ([#93263](https://github.com/kubernetes/kubernetes/pull/93263), [@liggitt](https://github.com/liggitt)) [SIG Node and Windows] -- Scheduler v1 Policy config or algorithm-provider settings can now be passed alongside v1beta1 ComponentConfig to aid transition from Policy to CC ([#92531](https://github.com/kubernetes/kubernetes/pull/92531), [@damemi](https://github.com/damemi)) [SIG Scheduling] -- Scheduling failures due to no nodes available are now reported as unschedulable under ```schedule_attempts_total``` metric. ([#90989](https://github.com/kubernetes/kubernetes/pull/90989), [@ahg-g](https://github.com/ahg-g)) [SIG Scheduling] -- Service account tokens bound to pods can now be used during the pod deletion grace period. ([#89583](https://github.com/kubernetes/kubernetes/pull/89583), [@liggitt](https://github.com/liggitt)) [SIG Auth] -- Service load balancers no longer exclude nodes marked unschedulable from the candidate nodes. The service load balancer exclusion label should be used instead. - - Users upgrading from 1.18 who have cordoned nodes should set the `node.kubernetes.io/exclude-from-external-load-balancers` label on the impacted nodes before upgrading if they wish those nodes to remain excluded from service load balancers. ([#90823](https://github.com/kubernetes/kubernetes/pull/90823), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps, Cloud Provider and Network] -- Support kubectl annotate --list option ([#92576](https://github.com/kubernetes/kubernetes/pull/92576), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] -- Sync LB backend nodes for Service `Type=LoadBalancer` on Add/Delete node events. ([#81185](https://github.com/kubernetes/kubernetes/pull/81185), [@andrewsykim](https://github.com/andrewsykim)) -- The following components that do not expect non-empty, non-flag arguments will now print an error message and exit if an argument is specified: cloud-controller-manager, kube-apiserver, kube-controller-manager, kube-proxy, kubeadm {alpha|config|token|version}, kubemark. Flags should be prefixed with a single dash "-" (0x45) for short form or double dash "--" for long form. Before this change, malformed flags (for example, starting with a non-ascii dash character such as 0x8211: "–") would have been silently treated as positional arguments and ignored. ([#91349](https://github.com/kubernetes/kubernetes/pull/91349), [@neolit123](https://github.com/neolit123)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Network and Scheduling] -- The terminationGracePeriodSeconds from pod spec is respected for the mirror pod. ([#92442](https://github.com/kubernetes/kubernetes/pull/92442), [@tedyu](https://github.com/tedyu)) [SIG Node and Testing] -- Update github.com/moby/ipvs to v1.0.1 to fix IPVS compatibility issue with older kernels ([#90555](https://github.com/kubernetes/kubernetes/pull/90555), [@andrewsykim](https://github.com/andrewsykim)) [SIG Network] -- Updates to pod status via the status subresource now validate that `status.podIP` and `status.podIPs` fields are well-formed. ([#90628](https://github.com/kubernetes/kubernetes/pull/90628), [@liggitt](https://github.com/liggitt)) [SIG Apps and Node] -- Wait for all CRDs to show up in discovery endpoint before reporting readiness. ([#89145](https://github.com/kubernetes/kubernetes/pull/89145), [@sttts](https://github.com/sttts)) [SIG API Machinery] -- When evicting, Pods in Pending state are removed without checking PDBs. ([#83906](https://github.com/kubernetes/kubernetes/pull/83906), [@michaelgugino](https://github.com/michaelgugino)) [SIG API Machinery, Apps, Node and Scheduling] -- [security] Vulnerability in golang.org/x/text/encoding/unicode ([#92219](https://github.com/kubernetes/kubernetes/pull/92219), [@voor](https://github.com/voor)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Node] - -### Other (Cleanup or Flake) - -- --cache-dir sets cache directory for both http and discovery, defaults to $HOME/.kube/cache ([#92910](https://github.com/kubernetes/kubernetes/pull/92910), [@soltysh](https://github.com/soltysh)) [SIG API Machinery and CLI] -- Add `pod.Namespace` to the image log ([#91945](https://github.com/kubernetes/kubernetes/pull/91945), [@zhipengzuo](https://github.com/zhipengzuo)) -- Add the ability to disable kubeconfig file lock through DISABLE_KUBECONFIG_LOCK env var ([#92513](https://github.com/kubernetes/kubernetes/pull/92513), [@soltysh](https://github.com/soltysh)) [SIG API Machinery and CLI] -- Adds additional testing to ensure that udp pods conntrack are cleaned up ([#90180](https://github.com/kubernetes/kubernetes/pull/90180), [@JacobTanenbaum](https://github.com/JacobTanenbaum)) [SIG Architecture, Network and Testing] -- Adjusts the fsType for cinder values to be `ext4` if no fsType is specified. ([#90608](https://github.com/kubernetes/kubernetes/pull/90608), [@huffmanca](https://github.com/huffmanca)) [SIG Storage] -- Base-images: Use debian-base:v2.1.0 ([#90697](https://github.com/kubernetes/kubernetes/pull/90697), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery and Release] -- Base-images: Use debian-iptables:v12.1.0 ([#90782](https://github.com/kubernetes/kubernetes/pull/90782), [@justaugustus](https://github.com/justaugustus)) [SIG Release] -- Beta.kubernetes.io/arch is already deprecated since v1.14, are targeted for removal in v1.18 ([#89462](https://github.com/kubernetes/kubernetes/pull/89462), [@wawa0210](https://github.com/wawa0210)) [SIG Testing] -- Build: Update to debian-base@v2.1.2 and debian-iptables@v12.1.1 ([#93667](https://github.com/kubernetes/kubernetes/pull/93667), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Release and Testing] -- Change beta.kubernetes.io/os to kubernetes.io/os ([#89460](https://github.com/kubernetes/kubernetes/pull/89460), [@wawa0210](https://github.com/wawa0210)) [SIG Testing and Windows] -- Change beta.kubernetes.io/os to kubernetes.io/os ([#89461](https://github.com/kubernetes/kubernetes/pull/89461), [@wawa0210](https://github.com/wawa0210)) [SIG Cloud Provider and Cluster Lifecycle] -- Changes not found message when using `kubectl get` to retrieve not namespaced resources ([#89861](https://github.com/kubernetes/kubernetes/pull/89861), [@rccrdpccl](https://github.com/rccrdpccl)) [SIG CLI] -- CoreDNS will no longer be supporting Federation data translation for kube-dns ConfigMap ([#92716](https://github.com/kubernetes/kubernetes/pull/92716), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] -- Deprecate kubectl top flags related to heapster - Drop support of heapster in kubectl top ([#87498](https://github.com/kubernetes/kubernetes/pull/87498), [@serathius](https://github.com/serathius)) [SIG CLI] -- Deprecate the `--target-ram-md` flags that is no longer used for anything. ([#91818](https://github.com/kubernetes/kubernetes/pull/91818), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery] -- Drop some conformance tests that rely on Kubelet API directly ([#90615](https://github.com/kubernetes/kubernetes/pull/90615), [@dims](https://github.com/dims)) [SIG Architecture, Network, Release and Testing] -- Emit `WaitingForPodScheduled` event if the unbound PVC is in delay binding mode but used by a pod ([#91455](https://github.com/kubernetes/kubernetes/pull/91455), [@cofyc](https://github.com/cofyc)) [SIG Storage] -- Fix: license issue in blob disk feature ([#92824](https://github.com/kubernetes/kubernetes/pull/92824), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Improve server-side apply conflict errors by setting dedicated kubectl subcommand field managers ([#88885](https://github.com/kubernetes/kubernetes/pull/88885), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI and Testing] -- IsFullyQualifiedDomainName() validates each label based on IsDNS1123Label. ([#90172](https://github.com/kubernetes/kubernetes/pull/90172), [@nak3](https://github.com/nak3)) [SIG API Machinery and Network] -- It is now possible to use the service annotation `cloud.google.com/network-tier: Standard` to configure the Network Tier of the GCE Loadbalancer ([#88532](https://github.com/kubernetes/kubernetes/pull/88532), [@zioproto](https://github.com/zioproto)) [SIG Cloud Provider, Network and Testing] -- Kube-aggregator: renames aggregator_unavailable_apiservice_count metric to aggregator_unavailable_apiservice_total ([#88156](https://github.com/kubernetes/kubernetes/pull/88156), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] -- Kube-apiserver: openapi schemas published for custom resources now reference standard ListMeta schema definitions ([#92546](https://github.com/kubernetes/kubernetes/pull/92546), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] -- Kube-proxy exposes a new metric, `kubeproxy_sync_proxy_rules_last_queued_timestamp_seconds`, that indicates the last time a change for kube-proxy was queued to be applied. ([#90175](https://github.com/kubernetes/kubernetes/pull/90175), [@squeed](https://github.com/squeed)) [SIG Instrumentation and Network] -- Kube-scheduler: The metric name `scheduler_total_preemption_attempts` has been renamed to `scheduler_preemption_attempts_total`. ([#91448](https://github.com/kubernetes/kubernetes/pull/91448), [@RainbowMango](https://github.com/RainbowMango)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Scheduling] -- Kube-up: defaults to limiting critical pods to the kube-system namespace to match behavior prior to 1.17 ([#93121](https://github.com/kubernetes/kubernetes/pull/93121), [@liggitt](https://github.com/liggitt)) [SIG Cloud Provider and Scheduling] -- Kubeadm now forwards the IPv6DualStack feature gate using the kubelet component config, instead of the kubelet command line ([#90840](https://github.com/kubernetes/kubernetes/pull/90840), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] -- Kubeadm: do not use a DaemonSet for the pre-pull of control-plane images during "kubeadm upgrade apply". Individual node upgrades now pull the required images using a preflight check. The flag "--image-pull-timeout" for "kubeadm upgrade apply" is now deprecated and will be removed in a future release following a GA deprecation policy. ([#90788](https://github.com/kubernetes/kubernetes/pull/90788), [@xlgao-zju](https://github.com/xlgao-zju)) [SIG Cluster Lifecycle] -- Kubeadm: use two separate checks on /livez and /readyz for the kube-apiserver static Pod instead of using /healthz ([#90970](https://github.com/kubernetes/kubernetes/pull/90970), [@johscheuer](https://github.com/johscheuer)) [SIG Cluster Lifecycle] -- NONE ([#91597](https://github.com/kubernetes/kubernetes/pull/91597), [@elmiko](https://github.com/elmiko)) [SIG Autoscaling and Testing] -- Openapi-controller: remove the trailing `1` character literal from the rate limiting metric `APIServiceOpenAPIAggregationControllerQueue1` and rename it to `open_api_aggregation_controller` to adhere to Prometheus best practices. ([#77979](https://github.com/kubernetes/kubernetes/pull/77979), [@s-urbaniak](https://github.com/s-urbaniak)) [SIG API Machinery] -- Reduce event spam during a volume operation error. ([#89794](https://github.com/kubernetes/kubernetes/pull/89794), [@msau42](https://github.com/msau42)) [SIG Storage] -- Refactor the local nodeipam range allocator and instrument the cidrset used to store the allocated CIDRs with the following metrics: - "cidrset_cidrs_allocations_total", - "cidrset_cidrs_releases_total", - "cidrset_usage_cidrs", - "cidrset_allocation_tries_per_request", ([#90288](https://github.com/kubernetes/kubernetes/pull/90288), [@aojea](https://github.com/aojea)) [SIG Apps, Instrumentation, Network and Scalability] -- Remove deprecated --server-dry-run flag from kubectl apply ([#91308](https://github.com/kubernetes/kubernetes/pull/91308), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI and Testing] -- Renamed DefaultPodTopologySpread plugin to SelectorSpread plugin to avoid naming conflicts with feature Gate DefaultPodTopologySpread ([#92501](https://github.com/kubernetes/kubernetes/pull/92501), [@rakeshreddybandi](https://github.com/rakeshreddybandi)) [SIG Release, Scheduling and Testing] -- Replace framework.Failf with ExpectNoError ([#91811](https://github.com/kubernetes/kubernetes/pull/91811), [@lixiaobing1](https://github.com/lixiaobing1)) [SIG Instrumentation, Storage and Testing] -- Scheduler PreScore plugins are not executed if there is one filtered node or less. ([#89370](https://github.com/kubernetes/kubernetes/pull/89370), [@ahg-g](https://github.com/ahg-g)) [SIG Scheduling] -- The "HostPath should give a volume the correct mode" is no longer a conformance test ([#90861](https://github.com/kubernetes/kubernetes/pull/90861), [@dims](https://github.com/dims)) [SIG Architecture and Testing] -- The Kubelet's `--experimental-allocatable-ignore-eviction` option is now marked as deprecated. ([#91578](https://github.com/kubernetes/kubernetes/pull/91578), [@knabben](https://github.com/knabben)) [SIG Node] -- The Kubelet's `--experimental-mounter-path` and `--experimental-check-node-capabilities-before-mount` options are now marked as deprecated. ([#91373](https://github.com/kubernetes/kubernetes/pull/91373), [@knabben](https://github.com/knabben)) -- The PR adds functionality to generate events when a PV or PVC processing encounters certain failures. The events help users to know the reason for the failure so they can take necessary recovery actions. ([#89845](https://github.com/kubernetes/kubernetes/pull/89845), [@yuga711](https://github.com/yuga711)) [SIG Apps] -- The PodShareProcessNamespace feature gate has been removed, and the PodShareProcessNamespace is unconditionally enabled. ([#90099](https://github.com/kubernetes/kubernetes/pull/90099), [@tanjunchen](https://github.com/tanjunchen)) [SIG Node] -- The kube-apiserver `--kubelet-https` flag is deprecated. kube-apiserver connections to kubelets now unconditionally use `https` (kubelets have unconditionally used `https` to serve the endpoints the apiserver communicates with since before v1.0). ([#91630](https://github.com/kubernetes/kubernetes/pull/91630), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Node] -- Update CNI to v0.8.6 ([#91370](https://github.com/kubernetes/kubernetes/pull/91370), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Network, Release and Testing] -- Update Golang to v1.14.5 - - Update repo-infra to 0.0.7 (to support go1.14.5 and go1.13.13) - - Includes: - - bazelbuild/bazel-toolchains@3.3.2 - - bazelbuild/rules_go@v0.22.7 ([#93088](https://github.com/kubernetes/kubernetes/pull/93088), [@justaugustus](https://github.com/justaugustus)) [SIG Release and Testing] -- Update Golang to v1.14.6 - - Update repo-infra to 0.0.8 (to support go1.14.6 and go1.13.14) - - Includes: - - bazelbuild/bazel-toolchains@3.4.0 - - bazelbuild/rules_go@v0.22.8 ([#93198](https://github.com/kubernetes/kubernetes/pull/93198), [@justaugustus](https://github.com/justaugustus)) [SIG Release and Testing] -- Update corefile-migration library to 1.0.8 ([#91856](https://github.com/kubernetes/kubernetes/pull/91856), [@wawa0210](https://github.com/wawa0210)) [SIG Node] -- Update default etcd server version to 3.4.4 ([#89214](https://github.com/kubernetes/kubernetes/pull/89214), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cluster Lifecycle and Testing] -- Update default etcd server version to 3.4.7 ([#89895](https://github.com/kubernetes/kubernetes/pull/89895), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cluster Lifecycle and Testing] -- Update default etcd server version to 3.4.9 ([#92349](https://github.com/kubernetes/kubernetes/pull/92349), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing] -- Update go.etcd.io/bbolt to v1.3.5 ([#92350](https://github.com/kubernetes/kubernetes/pull/92350), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery and Cloud Provider] -- Update opencontainers/runtime-spec dependency to v1.0.2 ([#89644](https://github.com/kubernetes/kubernetes/pull/89644), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] -- `beta.kubernetes.io/os` and `beta.kubernetes.io/arch` node labels are deprecated. Update node selectors to use `kubernetes.io/os` and `kubernetes.io/arch`. ([#91046](https://github.com/kubernetes/kubernetes/pull/91046), [@wawa0210](https://github.com/wawa0210)) [SIG Apps and Node] -- `kubectl config view` now redacts bearer tokens by default, similar to client certificates. The `--raw` flag can still be used to output full content. ([#88985](https://github.com/kubernetes/kubernetes/pull/88985), [@puerco](https://github.com/puerco)) - -## Dependencies - -### Added -- cloud.google.com/go/bigquery: v1.0.1 -- cloud.google.com/go/datastore: v1.0.0 -- cloud.google.com/go/pubsub: v1.0.1 -- cloud.google.com/go/storage: v1.0.0 -- dmitri.shuralyov.com/gpu/mtl: 666a987 -- github.com/cespare/xxhash/v2: [v2.1.1](https://github.com/cespare/xxhash/v2/tree/v2.1.1) -- github.com/checkpoint-restore/go-criu/v4: [v4.0.2](https://github.com/checkpoint-restore/go-criu/v4/tree/v4.0.2) -- github.com/chzyer/logex: [v1.1.10](https://github.com/chzyer/logex/tree/v1.1.10) -- github.com/chzyer/readline: [2972be2](https://github.com/chzyer/readline/tree/2972be2) -- github.com/chzyer/test: [a1ea475](https://github.com/chzyer/test/tree/a1ea475) -- github.com/containerd/cgroups: [0dbf7f0](https://github.com/containerd/cgroups/tree/0dbf7f0) -- github.com/containerd/continuity: [aaeac12](https://github.com/containerd/continuity/tree/aaeac12) -- github.com/containerd/fifo: [a9fb20d](https://github.com/containerd/fifo/tree/a9fb20d) -- github.com/containerd/go-runc: [5a6d9f3](https://github.com/containerd/go-runc/tree/5a6d9f3) -- github.com/containerd/ttrpc: [v1.0.0](https://github.com/containerd/ttrpc/tree/v1.0.0) -- github.com/coreos/bbolt: [v1.3.2](https://github.com/coreos/bbolt/tree/v1.3.2) -- github.com/coreos/go-systemd/v22: [v22.1.0](https://github.com/coreos/go-systemd/v22/tree/v22.1.0) -- github.com/cpuguy83/go-md2man/v2: [v2.0.0](https://github.com/cpuguy83/go-md2man/v2/tree/v2.0.0) -- github.com/docopt/docopt-go: [ee0de3b](https://github.com/docopt/docopt-go/tree/ee0de3b) -- github.com/go-gl/glfw/v3.3/glfw: [12ad95a](https://github.com/go-gl/glfw/v3.3/glfw/tree/12ad95a) -- github.com/go-ini/ini: [v1.9.0](https://github.com/go-ini/ini/tree/v1.9.0) -- github.com/godbus/dbus/v5: [v5.0.3](https://github.com/godbus/dbus/v5/tree/v5.0.3) -- github.com/ianlancetaylor/demangle: [5e5cf60](https://github.com/ianlancetaylor/demangle/tree/5e5cf60) -- github.com/ishidawataru/sctp: [7c296d4](https://github.com/ishidawataru/sctp/tree/7c296d4) -- github.com/moby/ipvs: [v1.0.1](https://github.com/moby/ipvs/tree/v1.0.1) -- github.com/moby/sys/mountinfo: [v0.1.3](https://github.com/moby/sys/mountinfo/tree/v0.1.3) -- github.com/moby/term: [672ec06](https://github.com/moby/term/tree/672ec06) -- github.com/russross/blackfriday/v2: [v2.0.1](https://github.com/russross/blackfriday/v2/tree/v2.0.1) -- github.com/shurcooL/sanitized_anchor_name: [v1.0.0](https://github.com/shurcooL/sanitized_anchor_name/tree/v1.0.0) -- github.com/ugorji/go: [v1.1.4](https://github.com/ugorji/go/tree/v1.1.4) -- github.com/yuin/goldmark: [v1.1.27](https://github.com/yuin/goldmark/tree/v1.1.27) -- google.golang.org/protobuf: v1.24.0 -- gotest.tools/v3: v3.0.2 -- k8s.io/klog/v2: v2.2.0 - -### Changed -- cloud.google.com/go: v0.38.0 → v0.51.0 -- github.com/Azure/azure-sdk-for-go: [v35.0.0+incompatible → v43.0.0+incompatible](https://github.com/Azure/azure-sdk-for-go/compare/v35.0.0...v43.0.0) -- github.com/Azure/go-autorest/autorest/adal: [v0.5.0 → v0.8.2](https://github.com/Azure/go-autorest/autorest/adal/compare/v0.5.0...v0.8.2) -- github.com/Azure/go-autorest/autorest/date: [v0.1.0 → v0.2.0](https://github.com/Azure/go-autorest/autorest/date/compare/v0.1.0...v0.2.0) -- github.com/Azure/go-autorest/autorest/mocks: [v0.2.0 → v0.3.0](https://github.com/Azure/go-autorest/autorest/mocks/compare/v0.2.0...v0.3.0) -- github.com/Azure/go-autorest/autorest: [v0.9.0 → v0.9.6](https://github.com/Azure/go-autorest/autorest/compare/v0.9.0...v0.9.6) -- github.com/GoogleCloudPlatform/k8s-cloud-provider: [27a4ced → 7901bc8](https://github.com/GoogleCloudPlatform/k8s-cloud-provider/compare/27a4ced...7901bc8) -- github.com/Microsoft/go-winio: [v0.4.14 → fc70bd9](https://github.com/Microsoft/go-winio/compare/v0.4.14...fc70bd9) -- github.com/Microsoft/hcsshim: [672e52e → 5eafd15](https://github.com/Microsoft/hcsshim/compare/672e52e...5eafd15) -- github.com/alecthomas/template: [a0175ee → fb15b89](https://github.com/alecthomas/template/compare/a0175ee...fb15b89) -- github.com/alecthomas/units: [2efee85 → c3de453](https://github.com/alecthomas/units/compare/2efee85...c3de453) -- github.com/beorn7/perks: [v1.0.0 → v1.0.1](https://github.com/beorn7/perks/compare/v1.0.0...v1.0.1) -- github.com/cilium/ebpf: [95b36a5 → 1c8d4c9](https://github.com/cilium/ebpf/compare/95b36a5...1c8d4c9) -- github.com/containerd/console: [84eeaae → v1.0.0](https://github.com/containerd/console/compare/84eeaae...v1.0.0) -- github.com/containerd/containerd: [v1.0.2 → v1.3.3](https://github.com/containerd/containerd/compare/v1.0.2...v1.3.3) -- github.com/containerd/typeurl: [2a93cfd → v1.0.0](https://github.com/containerd/typeurl/compare/2a93cfd...v1.0.0) -- github.com/containernetworking/cni: [v0.7.1 → v0.8.0](https://github.com/containernetworking/cni/compare/v0.7.1...v0.8.0) -- github.com/coredns/corefile-migration: [v1.0.6 → v1.0.10](https://github.com/coredns/corefile-migration/compare/v1.0.6...v1.0.10) -- github.com/coreos/pkg: [97fdf19 → 399ea9e](https://github.com/coreos/pkg/compare/97fdf19...399ea9e) -- github.com/docker/docker: [be7ac8b → aa6a989](https://github.com/docker/docker/compare/be7ac8b...aa6a989) -- github.com/docker/go-connections: [v0.3.0 → v0.4.0](https://github.com/docker/go-connections/compare/v0.3.0...v0.4.0) -- github.com/evanphx/json-patch: [v4.2.0+incompatible → e83c0a1](https://github.com/evanphx/json-patch/compare/v4.2.0...e83c0a1) -- github.com/fsnotify/fsnotify: [v1.4.7 → v1.4.9](https://github.com/fsnotify/fsnotify/compare/v1.4.7...v1.4.9) -- github.com/go-kit/kit: [v0.8.0 → v0.9.0](https://github.com/go-kit/kit/compare/v0.8.0...v0.9.0) -- github.com/go-logfmt/logfmt: [v0.3.0 → v0.4.0](https://github.com/go-logfmt/logfmt/compare/v0.3.0...v0.4.0) -- github.com/go-logr/logr: [v0.1.0 → v0.2.0](https://github.com/go-logr/logr/compare/v0.1.0...v0.2.0) -- github.com/golang/groupcache: [02826c3 → 215e871](https://github.com/golang/groupcache/compare/02826c3...215e871) -- github.com/golang/protobuf: [v1.3.2 → v1.4.2](https://github.com/golang/protobuf/compare/v1.3.2...v1.4.2) -- github.com/google/cadvisor: [v0.35.0 → v0.37.0](https://github.com/google/cadvisor/compare/v0.35.0...v0.37.0) -- github.com/google/go-cmp: [v0.3.0 → v0.4.0](https://github.com/google/go-cmp/compare/v0.3.0...v0.4.0) -- github.com/google/pprof: [3ea8567 → d4f498a](https://github.com/google/pprof/compare/3ea8567...d4f498a) -- github.com/googleapis/gax-go/v2: [v2.0.4 → v2.0.5](https://github.com/googleapis/gax-go/v2/compare/v2.0.4...v2.0.5) -- github.com/googleapis/gnostic: [v0.1.0 → v0.4.1](https://github.com/googleapis/gnostic/compare/v0.1.0...v0.4.1) -- github.com/gorilla/mux: [v1.7.0 → v1.7.3](https://github.com/gorilla/mux/compare/v1.7.0...v1.7.3) -- github.com/json-iterator/go: [v1.1.8 → v1.1.10](https://github.com/json-iterator/go/compare/v1.1.8...v1.1.10) -- github.com/jstemmer/go-junit-report: [af01ea7 → v0.9.1](https://github.com/jstemmer/go-junit-report/compare/af01ea7...v0.9.1) -- github.com/konsorten/go-windows-terminal-sequences: [v1.0.1 → v1.0.3](https://github.com/konsorten/go-windows-terminal-sequences/compare/v1.0.1...v1.0.3) -- github.com/kr/pretty: [v0.1.0 → v0.2.0](https://github.com/kr/pretty/compare/v0.1.0...v0.2.0) -- github.com/mattn/go-isatty: [v0.0.9 → v0.0.4](https://github.com/mattn/go-isatty/compare/v0.0.9...v0.0.4) -- github.com/matttproud/golang_protobuf_extensions: [v1.0.1 → c182aff](https://github.com/matttproud/golang_protobuf_extensions/compare/v1.0.1...c182aff) -- github.com/mistifyio/go-zfs: [v2.1.1+incompatible → f784269](https://github.com/mistifyio/go-zfs/compare/v2.1.1...f784269) -- github.com/mrunalp/fileutils: [7d4729f → abd8a0e](https://github.com/mrunalp/fileutils/compare/7d4729f...abd8a0e) -- github.com/opencontainers/runc: [v1.0.0-rc10 → 819fcc6](https://github.com/opencontainers/runc/compare/v1.0.0-rc10...819fcc6) -- github.com/opencontainers/runtime-spec: [v1.0.0 → 237cc4f](https://github.com/opencontainers/runtime-spec/compare/v1.0.0...237cc4f) -- github.com/opencontainers/selinux: [5215b18 → v1.5.2](https://github.com/opencontainers/selinux/compare/5215b18...v1.5.2) -- github.com/pkg/errors: [v0.8.1 → v0.9.1](https://github.com/pkg/errors/compare/v0.8.1...v0.9.1) -- github.com/prometheus/client_golang: [v1.0.0 → v1.7.1](https://github.com/prometheus/client_golang/compare/v1.0.0...v1.7.1) -- github.com/prometheus/common: [v0.4.1 → v0.10.0](https://github.com/prometheus/common/compare/v0.4.1...v0.10.0) -- github.com/prometheus/procfs: [v0.0.2 → v0.1.3](https://github.com/prometheus/procfs/compare/v0.0.2...v0.1.3) -- github.com/rubiojr/go-vhd: [0bfd3b3 → 02e2102](https://github.com/rubiojr/go-vhd/compare/0bfd3b3...02e2102) -- github.com/sirupsen/logrus: [v1.4.2 → v1.6.0](https://github.com/sirupsen/logrus/compare/v1.4.2...v1.6.0) -- github.com/spf13/cobra: [v0.0.5 → v1.0.0](https://github.com/spf13/cobra/compare/v0.0.5...v1.0.0) -- github.com/spf13/viper: [v1.3.2 → v1.4.0](https://github.com/spf13/viper/compare/v1.3.2...v1.4.0) -- github.com/tmc/grpc-websocket-proxy: [89b8d40 → 0ad062e](https://github.com/tmc/grpc-websocket-proxy/compare/89b8d40...0ad062e) -- github.com/urfave/cli: [v1.20.0 → v1.22.2](https://github.com/urfave/cli/compare/v1.20.0...v1.22.2) -- github.com/vishvananda/netlink: [v1.0.0 → v1.1.0](https://github.com/vishvananda/netlink/compare/v1.0.0...v1.1.0) -- github.com/vishvananda/netns: [be1fbed → 52d707b](https://github.com/vishvananda/netns/compare/be1fbed...52d707b) -- go.etcd.io/bbolt: v1.3.3 → v1.3.5 -- go.etcd.io/etcd: 3cf2f69 → 18dfb9c -- go.opencensus.io: v0.21.0 → v0.22.2 -- go.uber.org/atomic: v1.3.2 → v1.4.0 -- golang.org/x/crypto: bac4c82 → 75b2880 -- golang.org/x/exp: 4b39c73 → da58074 -- golang.org/x/image: 0694c2d → cff245a -- golang.org/x/lint: 959b441 → fdd1cda -- golang.org/x/mobile: d3739f8 → d2bd2a2 -- golang.org/x/mod: 4bf6d31 → v0.3.0 -- golang.org/x/net: 13f9640 → ab34263 -- golang.org/x/oauth2: 0f29369 → 858c2ad -- golang.org/x/sys: fde4db3 → ed371f2 -- golang.org/x/text: v0.3.2 → v0.3.3 -- golang.org/x/time: 9d24e82 → 555d28b -- golang.org/x/tools: 65e3620 → c1934b7 -- golang.org/x/xerrors: a985d34 → 9bdfabe -- google.golang.org/api: 5213b80 → v0.15.1 -- google.golang.org/appengine: v1.5.0 → v1.6.5 -- google.golang.org/genproto: 24fa4b2 → cb27e3a -- google.golang.org/grpc: v1.26.0 → v1.27.0 -- gopkg.in/check.v1: 788fd78 → 41f04d3 -- honnef.co/go/tools: v0.0.1-2019.2.2 → v0.0.1-2019.2.3 -- k8s.io/gengo: 36b2048 → 8167cfd -- k8s.io/kube-openapi: bf4fb3b → 656914f -- k8s.io/system-validators: v1.0.4 → v1.1.2 -- k8s.io/utils: 0a110f9 → d5654de -- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.7 → v0.0.9 -- sigs.k8s.io/structured-merge-diff/v3: v3.0.0 → 43c19bb - -### Removed -- github.com/OpenPeeDeeP/depguard: [v1.0.1](https://github.com/OpenPeeDeeP/depguard/tree/v1.0.1) -- github.com/Rican7/retry: [v0.1.0](https://github.com/Rican7/retry/tree/v0.1.0) -- github.com/StackExchange/wmi: [5d04971](https://github.com/StackExchange/wmi/tree/5d04971) -- github.com/anmitsu/go-shlex: [648efa6](https://github.com/anmitsu/go-shlex/tree/648efa6) -- github.com/bazelbuild/bazel-gazelle: [70208cb](https://github.com/bazelbuild/bazel-gazelle/tree/70208cb) -- github.com/bazelbuild/buildtools: [69366ca](https://github.com/bazelbuild/buildtools/tree/69366ca) -- github.com/bazelbuild/rules_go: [6dae44d](https://github.com/bazelbuild/rules_go/tree/6dae44d) -- github.com/bradfitz/go-smtpd: [deb6d62](https://github.com/bradfitz/go-smtpd/tree/deb6d62) -- github.com/cespare/prettybench: [03b8cfe](https://github.com/cespare/prettybench/tree/03b8cfe) -- github.com/checkpoint-restore/go-criu: [17b0214](https://github.com/checkpoint-restore/go-criu/tree/17b0214) -- github.com/client9/misspell: [v0.3.4](https://github.com/client9/misspell/tree/v0.3.4) -- github.com/coreos/go-etcd: [v2.0.0+incompatible](https://github.com/coreos/go-etcd/tree/v2.0.0) -- github.com/cpuguy83/go-md2man: [v1.0.10](https://github.com/cpuguy83/go-md2man/tree/v1.0.10) -- github.com/docker/libnetwork: [c8a5fca](https://github.com/docker/libnetwork/tree/c8a5fca) -- github.com/gliderlabs/ssh: [v0.1.1](https://github.com/gliderlabs/ssh/tree/v0.1.1) -- github.com/go-critic/go-critic: [1df3008](https://github.com/go-critic/go-critic/tree/1df3008) -- github.com/go-lintpack/lintpack: [v0.5.2](https://github.com/go-lintpack/lintpack/tree/v0.5.2) -- github.com/go-ole/go-ole: [v1.2.1](https://github.com/go-ole/go-ole/tree/v1.2.1) -- github.com/go-toolsmith/astcast: [v1.0.0](https://github.com/go-toolsmith/astcast/tree/v1.0.0) -- github.com/go-toolsmith/astcopy: [v1.0.0](https://github.com/go-toolsmith/astcopy/tree/v1.0.0) -- github.com/go-toolsmith/astequal: [v1.0.0](https://github.com/go-toolsmith/astequal/tree/v1.0.0) -- github.com/go-toolsmith/astfmt: [v1.0.0](https://github.com/go-toolsmith/astfmt/tree/v1.0.0) -- github.com/go-toolsmith/astinfo: [9809ff7](https://github.com/go-toolsmith/astinfo/tree/9809ff7) -- github.com/go-toolsmith/astp: [v1.0.0](https://github.com/go-toolsmith/astp/tree/v1.0.0) -- github.com/go-toolsmith/pkgload: [v1.0.0](https://github.com/go-toolsmith/pkgload/tree/v1.0.0) -- github.com/go-toolsmith/strparse: [v1.0.0](https://github.com/go-toolsmith/strparse/tree/v1.0.0) -- github.com/go-toolsmith/typep: [v1.0.0](https://github.com/go-toolsmith/typep/tree/v1.0.0) -- github.com/gobwas/glob: [v0.2.3](https://github.com/gobwas/glob/tree/v0.2.3) -- github.com/godbus/dbus: [2ff6f7f](https://github.com/godbus/dbus/tree/2ff6f7f) -- github.com/golangci/check: [cfe4005](https://github.com/golangci/check/tree/cfe4005) -- github.com/golangci/dupl: [3e9179a](https://github.com/golangci/dupl/tree/3e9179a) -- github.com/golangci/errcheck: [ef45e06](https://github.com/golangci/errcheck/tree/ef45e06) -- github.com/golangci/go-misc: [927a3d8](https://github.com/golangci/go-misc/tree/927a3d8) -- github.com/golangci/go-tools: [e32c541](https://github.com/golangci/go-tools/tree/e32c541) -- github.com/golangci/goconst: [041c5f2](https://github.com/golangci/goconst/tree/041c5f2) -- github.com/golangci/gocyclo: [2becd97](https://github.com/golangci/gocyclo/tree/2becd97) -- github.com/golangci/gofmt: [0b8337e](https://github.com/golangci/gofmt/tree/0b8337e) -- github.com/golangci/golangci-lint: [v1.18.0](https://github.com/golangci/golangci-lint/tree/v1.18.0) -- github.com/golangci/gosec: [66fb7fc](https://github.com/golangci/gosec/tree/66fb7fc) -- github.com/golangci/ineffassign: [42439a7](https://github.com/golangci/ineffassign/tree/42439a7) -- github.com/golangci/lint-1: [ee948d0](https://github.com/golangci/lint-1/tree/ee948d0) -- github.com/golangci/maligned: [b1d8939](https://github.com/golangci/maligned/tree/b1d8939) -- github.com/golangci/misspell: [950f5d1](https://github.com/golangci/misspell/tree/950f5d1) -- github.com/golangci/prealloc: [215b22d](https://github.com/golangci/prealloc/tree/215b22d) -- github.com/golangci/revgrep: [d9c87f5](https://github.com/golangci/revgrep/tree/d9c87f5) -- github.com/golangci/unconvert: [28b1c44](https://github.com/golangci/unconvert/tree/28b1c44) -- github.com/google/go-github: [v17.0.0+incompatible](https://github.com/google/go-github/tree/v17.0.0) -- github.com/google/go-querystring: [v1.0.0](https://github.com/google/go-querystring/tree/v1.0.0) -- github.com/gostaticanalysis/analysisutil: [v0.0.3](https://github.com/gostaticanalysis/analysisutil/tree/v0.0.3) -- github.com/jellevandenhooff/dkim: [f50fe3d](https://github.com/jellevandenhooff/dkim/tree/f50fe3d) -- github.com/klauspost/compress: [v1.4.1](https://github.com/klauspost/compress/tree/v1.4.1) -- github.com/logrusorgru/aurora: [a7b3b31](https://github.com/logrusorgru/aurora/tree/a7b3b31) -- github.com/mattn/go-shellwords: [v1.0.5](https://github.com/mattn/go-shellwords/tree/v1.0.5) -- github.com/mattn/goveralls: [v0.0.2](https://github.com/mattn/goveralls/tree/v0.0.2) -- github.com/mesos/mesos-go: [v0.0.9](https://github.com/mesos/mesos-go/tree/v0.0.9) -- github.com/mitchellh/go-ps: [4fdf99a](https://github.com/mitchellh/go-ps/tree/4fdf99a) -- github.com/mozilla/tls-observatory: [8791a20](https://github.com/mozilla/tls-observatory/tree/8791a20) -- github.com/nbutton23/zxcvbn-go: [eafdab6](https://github.com/nbutton23/zxcvbn-go/tree/eafdab6) -- github.com/pquerna/ffjson: [af8b230](https://github.com/pquerna/ffjson/tree/af8b230) -- github.com/quasilyte/go-consistent: [c6f3937](https://github.com/quasilyte/go-consistent/tree/c6f3937) -- github.com/ryanuber/go-glob: [256dc44](https://github.com/ryanuber/go-glob/tree/256dc44) -- github.com/shirou/gopsutil: [c95755e](https://github.com/shirou/gopsutil/tree/c95755e) -- github.com/shirou/w32: [bb4de01](https://github.com/shirou/w32/tree/bb4de01) -- github.com/shurcooL/go-goon: [37c2f52](https://github.com/shurcooL/go-goon/tree/37c2f52) -- github.com/shurcooL/go: [9e1955d](https://github.com/shurcooL/go/tree/9e1955d) -- github.com/sourcegraph/go-diff: [v0.5.1](https://github.com/sourcegraph/go-diff/tree/v0.5.1) -- github.com/tarm/serial: [98f6abe](https://github.com/tarm/serial/tree/98f6abe) -- github.com/timakin/bodyclose: [87058b9](https://github.com/timakin/bodyclose/tree/87058b9) -- github.com/ugorji/go/codec: [d75b2dc](https://github.com/ugorji/go/codec/tree/d75b2dc) -- github.com/ultraware/funlen: [v0.0.2](https://github.com/ultraware/funlen/tree/v0.0.2) -- github.com/valyala/bytebufferpool: [v1.0.0](https://github.com/valyala/bytebufferpool/tree/v1.0.0) -- github.com/valyala/fasthttp: [v1.2.0](https://github.com/valyala/fasthttp/tree/v1.2.0) -- github.com/valyala/quicktemplate: [v1.1.1](https://github.com/valyala/quicktemplate/tree/v1.1.1) -- github.com/valyala/tcplisten: [ceec8f9](https://github.com/valyala/tcplisten/tree/ceec8f9) -- go4.org: 417644f -- golang.org/x/build: 2835ba2 -- golang.org/x/perf: 6e6d33e -- gopkg.in/airbrake/gobrake.v2: v2.0.9 -- gopkg.in/gemnasium/logrus-airbrake-hook.v2: v2.1.2 -- gotest.tools/gotestsum: v0.3.5 -- grpc.go4.org: 11d0a25 -- k8s.io/klog: v1.0.0 -- k8s.io/repo-infra: v0.0.1-alpha.1 -- mvdan.cc/interfacer: c200402 -- mvdan.cc/lint: adc824a -- mvdan.cc/unparam: fbb5962 -- sourcegraph.com/sqs/pbtypes: d3ebe8f +## What’s New (Major Themes) + +### Deprecation warnings + +SIG API Machinery implemented [warnings when using deprecated APIs](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#rest-resources-aka-api-objects) +that are visible to `kubectl` users and API consumers, and metrics visible to cluster administrators. +Requests to a deprecated API are returned with a warning containing a target removal release and any replacement API. +Warnings can also be returned by [admission webhooks](https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#admissionreview-response-warning), +and specified for [deprecated versions of custom resources](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#version-deprecation). + +### Avoiding permanent beta + +From Kubernetes 1.20 onwards, SIG Architecture will implement a new policy to transition all REST APIs out of beta within nine months. The idea behind the new policy is to avoid features staying in beta for a long time. Once a new API enters beta, it will have nine months to either: + + - reach GA, and deprecate the beta, or + - have a new beta version _(and deprecate the previous beta)_. + +If a REST API reaches the end of that nine-month countdown, then the next Kubernetes release will deprecate that API version. More information can be found on [the Kubernetes Blog](https://kubernetes.io/blog/2020/08/21/moving-forward-from-beta/). + +### Expanded CLI support for debugging workloads and nodes + +SIG CLI expanded on debugging with `kubectl` to support two new debugging workflows: debugging workloads by creating a copy, and debugging nodes by creating a container in host namespaces. These can be convenient to: + - Insert a debug container in clusters that don’t have ephemeral containers enabled + - Modify a crashing container for easier debugging by changing its image, for example to busybox, or its command, for example, to `sleep 1d` so you have time to `kubectl exec`. + - Inspect configuration files on a node's host filesystem + +Since these new workflows don’t require any new cluster features, they’re available for experimentation with your existing clusters via `kubectl alpha debug`. We’d love to hear your feedback on debugging with `kubectl`. Reach us by opening an issue, visiting [#sig-cli](https://kubernetes.slack.com/messages/sig-cli) or commenting on enhancement [#1441](https://features.k8s.io/1441). + +### Structured logging + +SIG Instrumentation standardized the structure of log messages and references to Kubernetes objects. Structured logging makes parsing, processing, storing, querying and analyzing logs easier. New methods in the klog library enforce log message structure. + +### EndpointSlices are now enabled by default + +EndpointSlices are an exciting new API that provides a scalable and extensible alternative to the Endpoints API. EndpointSlices track IP addresses, ports, readiness, and topology information for Pods backing a Service. + +In Kubernetes 1.19 this feature will be enabled by default with kube-proxy reading from EndpointSlices instead of Endpoints. Although this will mostly be an invisible change, it should result in noticeable scalability improvements in large clusters. It will also enable significant new features in future Kubernetes releases like Topology Aware Routing. + +### Ingress graduates to General Availability + +SIG Network has graduated the widely used [Ingress API](https://kubernetes.io/docs/concepts/services-networking/ingress/) to general availability in Kubernetes 1.19. This change recognises years of hard work by Kubernetes contributors, and paves the way for further work on future networking APIs in Kubernetes. + +### seccomp graduates to General Availability + +The seccomp (secure computing mode) support for Kubernetes has graduated to General Availability (GA). This feature can be used to increase the workload security by restricting the system calls for a Pod (applies to all containers) or single containers. + +Technically this means that a first class `seccompProfile` field has been added to the Pod and Container `securityContext` objects: + +```yaml +securityContext: + seccompProfile: + type: RuntimeDefault|Localhost|Unconfined # choose one of the three + localhostProfile: my-profiles/profile-allow.json # only necessary if type == Localhost +``` + +The support for `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io/...` annotations are now deprecated, and will be removed in Kubernetes v1.22.0. Right now, an automatic version skew handling will convert the new field into the annotations and vice versa. This means there is no action required for converting existing workloads in a cluster. + +You can find more information about how to restrict container system calls with seccomp in the new [documentation page on Kubernetes.io][seccomp-docs] + +[seccomp-docs]: https://kubernetes.io/docs/tutorials/clusters/seccomp/ + + +### Production images moved to community control + +As of Kuberenetes v1.19, Kubernetes container images are stored on a community-controlled storage bucket, +located at `{asia,eu,us}.gcr.io/k8s-artifacts-prod`. The `k8s.gcr.io` vanity domain has been updated +to this new bucket. This brings production artifacts under community control. + +### KubeSchedulerConfiguration graduates to Beta + +SIG Scheduling graduates `KubeSchedulerConfiguration` to Beta. The [KubeSchedulerConfiguration](https://kubernetes.io/docs/reference/scheduling/config) feature allows you to tune the algorithms and other settings of the kube-scheduler. You can easily enable or disable specific functionality (contained in plugins) in selected scheduling phases without having to rewrite the rest of the configuration. Furthermore, a single kube-scheduler instance can serve different configurations, called profiles. Pods can select the profile they want to be scheduled under via the `.spec.schedulerName` field. + +### CSI Migration - AzureDisk and vSphere (beta) + +In-tree volume plugins and all cloud provider dependencies are being moved out of the Kubernetes core. The CSI migration feature allows existing volumes using the legacy APIs to continue to function even when the code has been removed, by routing all the volume operations to the respective CSI driver. The AzureDisk and vSphere implementations of this feature have been promoted to beta. + +### Storage capacity tracking + +Traditionally, the Kubernetes scheduler was based on the assumption that additional persistent storage is available everywhere in the cluster and has infinite capacity. Topology constraints addressed the first point, but up to now pod scheduling was still done without considering that the remaining storage capacity may not be enough to start a new pod. [Storage capacity tracking](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1472-storage-capacity-tracking), a new alpha feature, addresses that by adding an API for a CSI driver to report storage capacity and uses that information in the Kubernetes scheduler when choosing a node for a pod. This feature serves as a stepping stone for supporting dynamic provisioning for local volumes and other volume types that are more capacity constrained. + +### CSI Volume health monitoring + +The alpha version of CSI health monitoring is being released with Kubernetes 1.19. This feature enables CSI Drivers to share abnormal volume conditions from the underlying storage systems with Kubernetes so that they can be reported as events on PVCs or Pods. This feature serves as a stepping stone towards programmatic detection and resolution of individual volume health issues by Kubernetes. + +### General ephemeral volumes + +Kubernetes provides volume plugins whose lifecycle is tied to a pod and can be used as scratch space (e.g. the builtin “empty dir” volume type) or to load some data in to a pod (e.g. the builtin ConfigMap and Secret volume types or “CSI inline volumes”). The new [generic ephemeral volumes](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes) alpha feature allows any existing storage driver that supports dynamic provisioning to be used as an ephemeral volume with the volume’s lifecycle bound to the Pod. + - It can be used to provide scratch storage that is different from the root disk, for example persistent memory, or a separate local disk on that node. + - All StorageClass parameters for volume provisioning are supported. + - All features supported with PersistentVolumeClaims are supported, such as storage capacity tracking, snapshots and restore, and volume resizing. + +### Immutable Secrets and ConfigMaps (beta) + +Secret and ConfigMap volumes can be marked as immutable, which significantly reduces load on the API server if there are many Secret and ConfigMap volumes in the cluster. +See [ConfigMap](https://kubernetes.io/docs/concepts/configuration/configmap/) and [Secret](https://kubernetes.io/docs/concepts/configuration/secret/) for more information. + +### CSI Proxy for Windows + +The CSI Proxy for Windows is being promoted to beta along with the 1.19 release. This CSI Proxy enables CSI Drivers to run on Windows by allowing containers in Windows to perform privileged storage operations. At beta, the CSI Proxy for Windows supports storage drivers using direct attached disks and SMB. + +### Dashboard v2 + +SIG UI has released v2 of the Kubernetes Dashboard add-on. You can find the most recent release in the [kubernetes/dashboard](https://github.com/kubernetes/dashboard/releases) repository. Kubernetes Dashboard now includes CRD support, new translations, and an updated version of AngularJS. + +### Windows containerd support graduates to beta + +Initially introduced in Kubernetes 1.18, Windows containerd support goes to Beta on this release. This includes the added support for Windows Server version 2004 (complete version compatibility can be found in the [documentation for Windows](https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#cri-containerd)). + +SIG Windows is also including several addition to this release: + - Direct Server Return (DSR) mode support, allowing large numbers of services to scale up efficiently + - Windows containers now honor CPU limits + - Performance improvements for collections of metrics and summary + +### Increase the Kubernetes support window to one year + +As of Kubernetes 1.19, bugfix support via patch releases for a Kubernetes minor release has increased from 9 months to 1 year. + +A survey conducted in early 2019 by the working group (WG) Long Term Support (LTS) showed that a significant subset of Kubernetes end-users fail to upgrade within the previous 9-month support period. +A yearly support period provides the cushion end-users appear to desire, and is more in harmony with familiar annual planning cycles. + +## Known Issues + +The new storage capacity tracking alpha feature is known to be affected by a limitation of the WaitForFirstConsumer volume binding mode: [#94217](https://github.com/kubernetes/kubernetes/issues/94217) + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- ACTION REQUIRED: Switch core master base images (kube-controller-manager) from debian to distroless. If you need Flex Volumes support using scripts, please build your own image with required packages (like bash) ([#91329](https://github.com/kubernetes/kubernetes/pull/91329), [@dims](https://github.com/dims)) [SIG Cloud Provider, Release, Storage and Testing] +- ACTION REQUIRED: Support for basic authentication via the --basic-auth-file flag has been removed. Users should migrate to --token-auth-file for similar functionality. ([#89069](https://github.com/kubernetes/kubernetes/pull/89069), [@enj](https://github.com/enj)) [SIG API Machinery] + - Azure blob disk feature(`kind`: `Shared`, `Dedicated`) has been deprecated, you should use `kind`: `Managed` in `kubernetes.io/azure-disk` storage class. ([#92905](https://github.com/kubernetes/kubernetes/pull/92905), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] + - CVE-2020-8559 (Medium): Privilege escalation from compromised node to cluster. See https://github.com/kubernetes/kubernetes/issues/92914 for more details. + The API Server will no longer proxy non-101 responses for upgrade requests. This could break proxied backends (such as an extension API server) that respond to upgrade requests with a non-101 response code. ([#92941](https://github.com/kubernetes/kubernetes/pull/92941), [@tallclair](https://github.com/tallclair)) [SIG API Machinery] + - Kubeadm does not set the deprecated '--cgroup-driver' flag in /var/lib/kubelet/kubeadm-flags.env, it will be set in the kubelet config.yaml. If you have this flag in /var/lib/kubelet/kubeadm-flags.env or /etc/default/kubelet (/etc/sysconfig/kubelet for RPMs) please remove it and set the value using KubeletConfiguration ([#90513](https://github.com/kubernetes/kubernetes/pull/90513), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] + - Kubeadm now respects user specified etcd versions in the ClusterConfiguration and properly uses them. If users do not want to stick to the version specified in the ClusterConfiguration, they should edit the kubeadm-config config map and delete it. ([#89588](https://github.com/kubernetes/kubernetes/pull/89588), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] + - Kubeadm respects resolvConf value set by user even if systemd-resolved service is active. kubeadm no longer sets the flag in '--resolv-conf' in /var/lib/kubelet/kubeadm-flags.env. If you have this flag in /var/lib/kubelet/kubeadm-flags.env or /etc/default/kubelet (/etc/sysconfig/kubelet for RPMs) please remove it and set the value using KubeletConfiguration ([#90394](https://github.com/kubernetes/kubernetes/pull/90394), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] + - Kubeadm: Move the "kubeadm init" phase "kubelet-start" later in the init workflow, after the "kubeconfig" phase. This makes kubeadm start the kubelet only after the KubeletConfiguration component config file (/var/lib/kubelet/config.yaml) is generated and solves a problem where init systems like OpenRC cannot crashloop the kubelet service. ([#90892](https://github.com/kubernetes/kubernetes/pull/90892), [@xphoniex](https://github.com/xphoniex)) [SIG Cluster Lifecycle] + - The 'kubeadm config upload' command is finally removed after a full GA deprecation cycle. If you still use it, please, use 'kubeadm init phase upload-config' instead ([#92610](https://github.com/kubernetes/kubernetes/pull/92610), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] + - Upgrade kubescheduler.config.k8s.io/v1alpha2 to kubescheduler.config.k8s.io/v1beta1 + + - `.bindTimeoutSeconds` was moved as part of plugin args for `VolumeBinding`, + which can be configured separately per [profile](#profiles). + - `.extenders` are updated to satisfy API standards. In particular: + - `.extenders` decoding is case sensitive. All fields are affected. + - `.extenders[*].httpTimeout` is of type `metav1.Duration`. + - `.extenders[*].enableHttps` is renamed to `.extenders[*].enableHTTPS`. + - `RequestedToCapacityRatio` args decoding is case sensitive. All fields are affected. + - `DefaultPodTopologySpread` [plugin](#scheduling-plugins) is renamed to `SelectorSpread`. + - `Unreserve` extension point is removed from Profile definition. All `Reserve` + plugins implement an `Unreserve` call. + - `.disablePreemption` was removed. Users can disable preemption by disabling the + "DefaultPreemption" PostFilter plugin. ([#91420](https://github.com/kubernetes/kubernetes/pull/91420), [@pancernik](https://github.com/pancernik)) [SIG Scheduling] + +## Changes by Kind + +### Deprecation + +- Added support for vSphere in-tree volumes migration to vSphere CSI driver. The in-tree vSphere Volume plugin will be deprecated and removed in a future release. + + Users that self-deploy Kubernetes on vSphere should enable CSIMigration + CSIMigrationvSphere features and install the vSphere CSI Driver (https://github.com/kubernetes-sigs/vsphere-csi-driver) to avoid disruption to existing Pod and PVC objects at that time. Users should start using the vSphere CSI driver directly for any new volumes. + + The CSI Migration feature for vSphere Volume also requires minimum vSphere vCenter/ESXi Version to be 7.0u1 and minimum HW Version to be VM version 15. + + vSAN raw policy parameter is deprecated for the in-tree vSphere Volume plugin and will be removed in a future release. ([#90911](https://github.com/kubernetes/kubernetes/pull/90911), [@divyenpatel](https://github.com/divyenpatel)) [SIG API Machinery, Node and Storage] +- Apiextensions.k8s.io/v1beta1 is deprecated in favor of apiextensions.k8s.io/v1 ([#90673](https://github.com/kubernetes/kubernetes/pull/90673), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] +- Apiregistration.k8s.io/v1beta1 is deprecated in favor of apiregistration.k8s.io/v1 ([#90672](https://github.com/kubernetes/kubernetes/pull/90672), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] +- Authentication.k8s.io/v1beta1 and authorization.k8s.io/v1beta1 are deprecated in 1.19 in favor of v1 levels and will be removed in 1.22 ([#90458](https://github.com/kubernetes/kubernetes/pull/90458), [@deads2k](https://github.com/deads2k)) [SIG API Machinery and Auth] +- Autoscaling/v2beta1 is deprecated in favor of autoscaling/v2beta2 ([#90463](https://github.com/kubernetes/kubernetes/pull/90463), [@deads2k](https://github.com/deads2k)) [SIG Autoscaling] +- Coordination.k8s.io/v1beta1 is deprecated in 1.19, targeted for removal in 1.22, use v1 instead. ([#90559](https://github.com/kubernetes/kubernetes/pull/90559), [@deads2k](https://github.com/deads2k)) [SIG Scalability] +- Ensure that volume capability and staging target fields are present in nodeExpansion CSI calls + + Behaviour of NodeExpandVolume being called between NodeStage and NodePublish is deprecated for CSI volumes. CSI drivers should support calling NodeExpandVolume after NodePublish if they have node EXPAND_VOLUME capability ([#86968](https://github.com/kubernetes/kubernetes/pull/86968), [@gnufied](https://github.com/gnufied)) [SIG Storage] +- Feat: azure disk migration go beta in 1.19. Feature gates CSIMigration to Beta (on by default) and CSIMigrationAzureDisk to Beta (off by default since it requires installation of the AzureDisk CSI Driver) + The in-tree AzureDisk plugin "kubernetes.io/azure-disk" is now deprecated and will be removed in 1.23. Users should enable CSIMigration + CSIMigrationAzureDisk features and install the AzureDisk CSI Driver (https://github.com/kubernetes-sigs/azuredisk-csi-driver) to avoid disruption to existing Pod and PVC objects at that time. + Users should start using the AzureDisk CSI Driver directly for any new volumes. ([#90896](https://github.com/kubernetes/kubernetes/pull/90896), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Kube-apiserver: the componentstatus API is deprecated. This API provided status of etcd, kube-scheduler, and kube-controller-manager components, but only worked when those components were local to the API server, and when kube-scheduler and kube-controller-manager exposed unsecured health endpoints. Instead of this API, etcd health is included in the kube-apiserver health check and kube-scheduler/kube-controller-manager health checks can be made directly against those components' health endpoints. ([#93570](https://github.com/kubernetes/kubernetes/pull/93570), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps and Cluster Lifecycle] +- Kubeadm: `kubeadm config view` command has been deprecated and will be removed in a feature release, please use `kubectl get cm -o yaml -n kube-system kubeadm-config` to get the kubeadm config directly ([#92740](https://github.com/kubernetes/kubernetes/pull/92740), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubeadm: deprecate the "kubeadm alpha kubelet config enable-dynamic" command. To continue using the feature please defer to the guide for "Dynamic Kubelet Configuration" at k8s.io. ([#92881](https://github.com/kubernetes/kubernetes/pull/92881), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: deprecate the feature `--experimental-kustomize` in favor of `--experimental-patches`. The supported patch formats are the same as "kubectl patch". They are read as files from a directory and can be applied to kubeadm components during init/join/upgrade. Only patching of static Pods is supported for the time being. ([#92017](https://github.com/kubernetes/kubernetes/pull/92017), [@neolit123](https://github.com/neolit123)) +- Kubeadm: remove the deprecated "--use-api" flag for "kubeadm alpha certs renew" ([#90143](https://github.com/kubernetes/kubernetes/pull/90143), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubernetes no longer supports building hyperkube images ([#88676](https://github.com/kubernetes/kubernetes/pull/88676), [@dims](https://github.com/dims)) [SIG Cluster Lifecycle and Release] +- Remove --export flag from kubectl get command. ([#88649](https://github.com/kubernetes/kubernetes/pull/88649), [@oke-py](https://github.com/oke-py)) [SIG CLI and Testing] +- Scheduler's alpha feature 'ResourceLimitsPriorityFunction' is completely removed due to lack of usage ([#91883](https://github.com/kubernetes/kubernetes/pull/91883), [@SataQiu](https://github.com/SataQiu)) [SIG Scheduling and Testing] +- Storage.k8s.io/v1beta1 is deprecated in favor of storage.k8s.io/v1 ([#90671](https://github.com/kubernetes/kubernetes/pull/90671), [@deads2k](https://github.com/deads2k)) [SIG Storage] + +### API Change + +- A new alpha-level field, `SupportsFsGroup`, has been introduced for CSIDrivers to allow them to specify whether they support volume ownership and permission modifications. The `CSIVolumeSupportFSGroup` feature gate must be enabled to allow this field to be used. ([#92001](https://github.com/kubernetes/kubernetes/pull/92001), [@huffmanca](https://github.com/huffmanca)) [SIG API Machinery, CLI and Storage] +- Added pod version skew strategy for seccomp profile to synchronize the deprecated annotations with the new API Server fields. Please see the corresponding section [in the KEP](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/20190717-seccomp-ga.md#version-skew-strategy) for more detailed explanations. ([#91408](https://github.com/kubernetes/kubernetes/pull/91408), [@saschagrunert](https://github.com/saschagrunert)) [SIG Apps, Auth, CLI and Node] +- Adds the ability to disable Accelerator/GPU metrics collected by Kubelet ([#91930](https://github.com/kubernetes/kubernetes/pull/91930), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) [SIG Node] +- Admission webhooks can now return warning messages that are surfaced to API clients, using the `.response.warnings` field in the admission review response. ([#92667](https://github.com/kubernetes/kubernetes/pull/92667), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] +- CertificateSigningRequest API conditions were updated: + - a `status` field was added; this field defaults to `True`, and may only be set to `True` for `Approved`, `Denied`, and `Failed` conditions + - a `lastTransitionTime` field was added + - a `Failed` condition type was added to allow signers to indicate permanent failure; this condition can be added via the `certificatesigningrequests/status` subresource. + - `Approved` and `Denied` conditions are mutually exclusive + - `Approved`, `Denied`, and `Failed` conditions can no longer be removed from a CSR ([#90191](https://github.com/kubernetes/kubernetes/pull/90191), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Auth, CLI and Node] +- Cluster admins can now turn off /logs endpoint in kubelet by setting enableSystemLogHandler to false in their kubelet configuration file. enableSystemLogHandler can be set to true only when enableDebuggingHandlers is also set to true. ([#87273](https://github.com/kubernetes/kubernetes/pull/87273), [@SaranBalaji90](https://github.com/SaranBalaji90)) [SIG Node] +- Custom Endpoints are now mirrored to EndpointSlices by a new EndpointSliceMirroring controller. ([#91637](https://github.com/kubernetes/kubernetes/pull/91637), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps, Auth, Cloud Provider, Instrumentation, Network and Testing] +- CustomResourceDefinitions added support for marking versions as deprecated by setting `spec.versions[*].deprecated` to `true`, and for optionally overriding the default deprecation warning with a `spec.versions[*].deprecationWarning` field. ([#92329](https://github.com/kubernetes/kubernetes/pull/92329), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] +- EnvVarSource api doc bug fixes ([#91194](https://github.com/kubernetes/kubernetes/pull/91194), [@wawa0210](https://github.com/wawa0210)) [SIG Apps] +- Fix bug in reflector that couldn't recover from "Too large resource version" errors ([#92537](https://github.com/kubernetes/kubernetes/pull/92537), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery] +- Fixed: log timestamps now include trailing zeros to maintain a fixed width ([#91207](https://github.com/kubernetes/kubernetes/pull/91207), [@iamchuckss](https://github.com/iamchuckss)) [SIG Apps and Node] +- Generic ephemeral volumes, a new alpha feature under the `GenericEphemeralVolume` feature gate, provide a more flexible alternative to `EmptyDir` volumes: as with `EmptyDir`, volumes are created and deleted for each pod automatically by Kubernetes. But because the normal provisioning process is used (`PersistentVolumeClaim`), storage can be provided by third-party storage vendors and all of the usual volume features work. Volumes don't need to be empt; for example, restoring from snapshot is supported. ([#92784](https://github.com/kubernetes/kubernetes/pull/92784), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Instrumentation, Node, Scheduling, Storage and Testing] +- Go1.14.4 is now the minimum version required for building Kubernetes ([#92438](https://github.com/kubernetes/kubernetes/pull/92438), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Storage and Testing] +- Hide managedFields from kubectl edit command ([#91946](https://github.com/kubernetes/kubernetes/pull/91946), [@soltysh](https://github.com/soltysh)) [SIG CLI] +- K8s.io/apimachinery - scheme.Convert() now uses only explicitly registered conversions - default reflection based conversion is no longer available. `+k8s:conversion-gen` tags can be used with the `k8s.io/code-generator` component to generate conversions. ([#90018](https://github.com/kubernetes/kubernetes/pull/90018), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery, Apps and Testing] +- Kube-proxy: add `--bind-address-hard-fail` flag to treat failure to bind to a port as fatal ([#89350](https://github.com/kubernetes/kubernetes/pull/89350), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle and Network] +- Kubebuilder validation tags are set on metav1.Condition for CRD generation ([#92660](https://github.com/kubernetes/kubernetes/pull/92660), [@damemi](https://github.com/damemi)) [SIG API Machinery] +- Kubelet's --runonce option is now also available in Kubelet's config file as `runOnce`. ([#89128](https://github.com/kubernetes/kubernetes/pull/89128), [@vincent178](https://github.com/vincent178)) [SIG Node] +- Kubelet: add '--logging-format' flag to support structured logging ([#91532](https://github.com/kubernetes/kubernetes/pull/91532), [@afrouzMashaykhi](https://github.com/afrouzMashaykhi)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Node] +- Kubernetes is now built with golang 1.15.0-rc.1. + - The deprecated, legacy behavior of treating the CommonName field on X.509 serving certificates as a host name when no Subject Alternative Names are present is now disabled by default. It can be temporarily re-enabled by adding the value x509ignoreCN=0 to the GODEBUG environment variable. ([#93264](https://github.com/kubernetes/kubernetes/pull/93264), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Storage and Testing] +- Promote Immutable Secrets/ConfigMaps feature to Beta and enable the feature by default. + This allows to set `Immutable` field in Secrets or ConfigMap object to mark their contents as immutable. ([#89594](https://github.com/kubernetes/kubernetes/pull/89594), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps and Testing] +- Remove `BindTimeoutSeconds` from schedule configuration `KubeSchedulerConfiguration` ([#91580](https://github.com/kubernetes/kubernetes/pull/91580), [@cofyc](https://github.com/cofyc)) [SIG Scheduling and Testing] +- Remove kubescheduler.config.k8s.io/v1alpha1 ([#89298](https://github.com/kubernetes/kubernetes/pull/89298), [@gavinfish](https://github.com/gavinfish)) [SIG Scheduling] +- Reserve plugins that fail to reserve will trigger the unreserve extension point ([#92391](https://github.com/kubernetes/kubernetes/pull/92391), [@adtac](https://github.com/adtac)) [SIG Scheduling and Testing] +- Resolve regression in `metadata.managedFields` handling in update/patch requests submitted by older API clients ([#91748](https://github.com/kubernetes/kubernetes/pull/91748), [@apelisse](https://github.com/apelisse)) +- Scheduler: optionally check for available storage capacity before scheduling pods which have unbound volumes (alpha feature with the new `CSIStorageCapacity` feature gate, only works for CSI drivers and depends on support for the feature in a CSI driver deployment) ([#92387](https://github.com/kubernetes/kubernetes/pull/92387), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Scheduling, Storage and Testing] +- Seccomp support has graduated to GA. A new `seccompProfile` field is added to pod and container securityContext objects. Support for `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io/...` annotations is deprecated, and will be removed in v1.22. ([#91381](https://github.com/kubernetes/kubernetes/pull/91381), [@pjbgf](https://github.com/pjbgf)) [SIG Apps, Auth, Node, Release, Scheduling and Testing] +- ServiceAppProtocol feature gate is now beta and enabled by default, adding new AppProtocol field to Services and Endpoints. ([#90023](https://github.com/kubernetes/kubernetes/pull/90023), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- SetHostnameAsFQDN is a new field in PodSpec. When set to true, the fully + qualified domain name (FQDN) of a Pod is set as hostname of its containers. + In Linux containers, this means setting the FQDN in the hostname field of the + kernel (the nodename field of struct utsname). In Windows containers, this + means setting the this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. + If a pod does not have FQDN, this has no effect. ([#91699](https://github.com/kubernetes/kubernetes/pull/91699), [@javidiaz](https://github.com/javidiaz)) [SIG Apps, Network, Node and Testing] +- The CertificateSigningRequest API is promoted to certificates.k8s.io/v1 with the following changes: + - `spec.signerName` is now required, and requests for `kubernetes.io/legacy-unknown` are not allowed to be created via the `certificates.k8s.io/v1` API + - `spec.usages` is now required, may not contain duplicate values, and must only contain known usages + - `status.conditions` may not contain duplicate types + - `status.conditions[*].status` is now required + - `status.certificate` must be PEM-encoded, and contain only CERTIFICATE blocks ([#91685](https://github.com/kubernetes/kubernetes/pull/91685), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture, Auth, CLI and Testing] +- The HugePageStorageMediumSize feature gate is now on by default allowing usage of multiple sizes huge page resources on a container level. ([#90592](https://github.com/kubernetes/kubernetes/pull/90592), [@bart0sh](https://github.com/bart0sh)) [SIG Node] +- The Kubelet's --node-status-max-images option is now available via the Kubelet config file field nodeStatusMaxImage ([#91275](https://github.com/kubernetes/kubernetes/pull/91275), [@knabben](https://github.com/knabben)) [SIG Node] +- The Kubelet's --seccomp-profile-root option is now marked as deprecated. ([#91182](https://github.com/kubernetes/kubernetes/pull/91182), [@knabben](https://github.com/knabben)) [SIG Node] +- The Kubelet's `--bootstrap-checkpoint-path` option is now removed. ([#91577](https://github.com/kubernetes/kubernetes/pull/91577), [@knabben](https://github.com/knabben)) [SIG Apps and Node] +- The Kubelet's `--cloud-provider` and `--cloud-config` options are now marked as deprecated. ([#90408](https://github.com/kubernetes/kubernetes/pull/90408), [@knabben](https://github.com/knabben)) [SIG Cloud Provider and Node] +- The Kubelet's `--enable-server` and `--provider-id` option is now available via the Kubelet config file field `enableServer` and `providerID` respectively. ([#90494](https://github.com/kubernetes/kubernetes/pull/90494), [@knabben](https://github.com/knabben)) [SIG Node] +- The Kubelet's `--kernel-memcg-notification` option is now available via the Kubelet config file field kernelMemcgNotification ([#91863](https://github.com/kubernetes/kubernetes/pull/91863), [@knabben](https://github.com/knabben)) [SIG Cloud Provider, Node and Testing] +- The Kubelet's `--really-crash-for-testing` and `--chaos-chance` options are now marked as deprecated. ([#90499](https://github.com/kubernetes/kubernetes/pull/90499), [@knabben](https://github.com/knabben)) [SIG Node] +- The Kubelet's `--volume-plugin-dir` option is now available via the Kubelet config file field `VolumePluginDir`. ([#88480](https://github.com/kubernetes/kubernetes/pull/88480), [@savitharaghunathan](https://github.com/savitharaghunathan)) [SIG Node] +- The `DefaultIngressClass` feature is now GA. The `--feature-gate` parameter will be removed in 1.20. ([#91957](https://github.com/kubernetes/kubernetes/pull/91957), [@cmluciano](https://github.com/cmluciano)) [SIG API Machinery, Apps, Network and Testing] +- The alpha `DynamicAuditing` feature gate and `auditregistration.k8s.io/v1alpha1` API have been removed and are no longer supported. ([#91502](https://github.com/kubernetes/kubernetes/pull/91502), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth and Testing] +- The kube-controller-manager managed signers can now have distinct signing certificates and keys. See the help about `--cluster-signing-[signer-name]-{cert,key}-file`. `--cluster-signing-{cert,key}-file` is still the default. ([#90822](https://github.com/kubernetes/kubernetes/pull/90822), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Apps and Auth] +- The unused `series.state` field, deprecated since v1.14, is removed from the `events.k8s.io/v1beta1` and `v1` Event types. ([#90449](https://github.com/kubernetes/kubernetes/pull/90449), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps] +- Unreserve extension point for scheduler plugins is merged into Reserve extension point ([#92200](https://github.com/kubernetes/kubernetes/pull/92200), [@adtac](https://github.com/adtac)) [SIG Scheduling and Testing] +- Update Golang to v1.14.4 ([#88638](https://github.com/kubernetes/kubernetes/pull/88638), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Cloud Provider, Release and Testing] +- Updated the API documentation for Service.Spec.IPFamily to warn that its exact + semantics will probably change before the dual-stack feature goes GA, and users + should look at ClusterIP or Endpoints, not IPFamily, to figure out if an existing + Service is IPv4, IPv6, or dual-stack. ([#91527](https://github.com/kubernetes/kubernetes/pull/91527), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network] +- Users can configure a resource prefix to ignore a group of resources. ([#88842](https://github.com/kubernetes/kubernetes/pull/88842), [@angao](https://github.com/angao)) [SIG Node and Scheduling] +- `Ingress` and `IngressClass` resources have graduated to `networking.k8s.io/v1`. Ingress and IngressClass types in the `extensions/v1beta1` and `networking.k8s.io/v1beta1` API versions are deprecated and will no longer be served in 1.22+. Persisted objects can be accessed via the `networking.k8s.io/v1` API. Notable changes in v1 Ingress objects (v1beta1 field names are unchanged): + - `spec.backend` -> `spec.defaultBackend` + - `serviceName` -> `service.name` + - `servicePort` -> `service.port.name` (for string values) + - `servicePort` -> `service.port.number` (for numeric values) + - `pathType` no longer has a default value in v1; "Exact", "Prefix", or "ImplementationSpecific" must be specified + Other Ingress API updates: + - backends can now be resource or service backends + - `path` is no longer required to be a valid regular expression ([#89778](https://github.com/kubernetes/kubernetes/pull/89778), [@cmluciano](https://github.com/cmluciano)) [SIG API Machinery, Apps, CLI, Network and Testing] +- `NodeResourcesLeastAllocated` and `NodeResourcesMostAllocated` plugins now support customized weight on the CPU and memory. ([#90544](https://github.com/kubernetes/kubernetes/pull/90544), [@chendave](https://github.com/chendave)) [SIG Scheduling] +- `PostFilter` type is added to scheduler component config API on version v1beta1. ([#91547](https://github.com/kubernetes/kubernetes/pull/91547), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] +- `RequestedToCapacityRatioArgs` encoding is now strict ([#91603](https://github.com/kubernetes/kubernetes/pull/91603), [@pancernik](https://github.com/pancernik)) [SIG Scheduling] +- `v1beta1` Scheduler `Extender` encoding is case-sensitive (`v1alpha1`/`v1alpha2` was case-insensitive), its `httpTimeout` field uses duration encoding (for example, one second is specified as `"1s"`), and the `enableHttps` field in `v1alpha1`/`v1alpha2` was renamed to `enableHTTPS`. ([#91625](https://github.com/kubernetes/kubernetes/pull/91625), [@pancernik](https://github.com/pancernik)) [SIG Scheduling] + +### Feature + +- A defaultpreemption plugin is registered and enabled in scheduler which replaces the legacy hard-coded Pod preemption logic. ([#92049](https://github.com/kubernetes/kubernetes/pull/92049), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] +- A new extension point `PostFilter` is introduced to scheduler framework which runs after Filter phase to resolve scheduling filter failures. A typical implementation is running preemption logic. ([#91314](https://github.com/kubernetes/kubernetes/pull/91314), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] +- ACTION REQUIRED : In CoreDNS v1.7.0, [metrics names have been changed](https://github.com/coredns/coredns/blob/master/notes/coredns-1.7.0.md#metric-changes) which will be backward incompatible with existing reporting formulas that use the old metrics' names. Adjust your formulas to the new names before upgrading. + + Kubeadm now includes CoreDNS version v1.7.0. Some of the major changes include: + - Fixed a bug that could cause CoreDNS to stop updating service records. + - Fixed a bug in the forward plugin where only the first upstream server is always selected no matter which policy is set. + - Remove already deprecated options `resyncperiod` and `upstream` in the Kubernetes plugin. + - Includes Prometheus metrics name changes (to bring them in line with standard Prometheus metrics naming convention). They will be backward incompatible with existing reporting formulas that use the old metrics' names. + - The federation plugin (allows for v1 Kubernetes federation) has been removed. + More details are available in https://coredns.io/2020/06/15/coredns-1.7.0-release/ ([#92651](https://github.com/kubernetes/kubernetes/pull/92651), [@rajansandeep](https://github.com/rajansandeep)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] +- API requests to deprecated versions now receive a warning header in the API response, and cause a metric indicating use of a deprecated API to be published: + - `kubectl` outputs warnings to stderr, and accepts a `--warnings-as-errors` option to treat warnings as fatal errors + - `k8s.io/client-go` outputs warnings to stderr by default; override this per-client by setting `config.WarningHandler`, or per-process with `rest.SetDefaultWarningHandler()` + - `kube-apiserver` publishes `apiserver_requested_deprecated_apis` gauge metrics set to `1` for deprecated APIs which have been requested, with `group`, `version`, `resource`, `subresource`, and `removed_release` labels ([#73032](https://github.com/kubernetes/kubernetes/pull/73032), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, CLI, Instrumentation and Testing] +- Add --logging-format flag for component-base. Defaults to "text" using unchanged klog. ([#89683](https://github.com/kubernetes/kubernetes/pull/89683), [@yuzhiquan](https://github.com/yuzhiquan)) [SIG Instrumentation] +- Add --port flag to kubectl create deployment ([#91113](https://github.com/kubernetes/kubernetes/pull/91113), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] +- Add .import-restrictions file to cmd/cloud-controller-manager. ([#90630](https://github.com/kubernetes/kubernetes/pull/90630), [@nilo19](https://github.com/nilo19)) [SIG API Machinery and Cloud Provider] +- Add Annotations to CRI-API ImageSpec objects. ([#90061](https://github.com/kubernetes/kubernetes/pull/90061), [@marosset](https://github.com/marosset)) [SIG Node and Windows] +- Add attempts label to scheduler's PodSchedulingDuration metric. ([#92650](https://github.com/kubernetes/kubernetes/pull/92650), [@ahg-g](https://github.com/ahg-g)) [SIG Instrumentation and Scheduling] +- Add client-side and server-side dry-run support to kubectl scale ([#89666](https://github.com/kubernetes/kubernetes/pull/89666), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI and Testing] +- Add selectors to kubectl diff ([#90857](https://github.com/kubernetes/kubernetes/pull/90857), [@sethpollack](https://github.com/sethpollack)) [SIG CLI] +- Add support for cgroups v2 node validation ([#89901](https://github.com/kubernetes/kubernetes/pull/89901), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] +- Add support for pre allocated huge pages with different sizes, on node level ([#89252](https://github.com/kubernetes/kubernetes/pull/89252), [@odinuge](https://github.com/odinuge)) [SIG Apps and Node] +- Add tags support for Azure File Driver ([#92825](https://github.com/kubernetes/kubernetes/pull/92825), [@ZeroMagic](https://github.com/ZeroMagic)) [SIG Cloud Provider and Storage] +- Add tags support for azure disk driver ([#92356](https://github.com/kubernetes/kubernetes/pull/92356), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Added --privileged flag to kubectl run ([#90569](https://github.com/kubernetes/kubernetes/pull/90569), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] +- Added a new `GetPreferredAllocation()` call to the `v1beta1` device plugin API. ([#92665](https://github.com/kubernetes/kubernetes/pull/92665), [@klueska](https://github.com/klueska)) [SIG Node and Testing] +- Added feature support to Windows for configuring session affinity of Kubernetes services. + required: [Windows Server vNext Insider Preview Build 19551](https://blogs.windows.com/windowsexperience/2020/01/28/announcing-windows-server-vnext-insider-preview-build-19551/) (or higher) ([#91701](https://github.com/kubernetes/kubernetes/pull/91701), [@elweb9858](https://github.com/elweb9858)) [SIG Network and Windows] +- Added kube-apiserver metrics: apiserver_current_inflight_request_measures and, when API Priority and Fairness is enable, windowed_request_stats. ([#91177](https://github.com/kubernetes/kubernetes/pull/91177), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery, Instrumentation and Testing] +- Added service.beta.kubernetes.io/aws-load-balancer-target-node-labels annotation to target nodes in AWS LoadBalancer Services ([#90943](https://github.com/kubernetes/kubernetes/pull/90943), [@foobarfran](https://github.com/foobarfran)) [SIG Cloud Provider] +- Adding a set of debugging endpoints under prefix "/debug/flowcontrol/*" for dumping internal states of flow-control system with different granularity. ([#90967](https://github.com/kubernetes/kubernetes/pull/90967), [@yue9944882](https://github.com/yue9944882)) [SIG API Machinery] +- Adds profile label to kube-scheduler metric framework_extension_point_duration_seconds ([#92268](https://github.com/kubernetes/kubernetes/pull/92268), [@alculquicondor](https://github.com/alculquicondor)) [SIG Instrumentation and Scheduling] +- Adds profile label to kube-scheduler metric schedule_attempts_total + - Adds result and profile label to e2e_scheduling_duration_seconds. Times for unschedulable and error attempts are now recorded. ([#92202](https://github.com/kubernetes/kubernetes/pull/92202), [@alculquicondor](https://github.com/alculquicondor)) [SIG Instrumentation and Scheduling] +- Audit events for API requests to deprecated API versions now include a `"k8s.io/deprecated": "true"` audit annotation. If a target removal release is identified, the audit event includes a `"k8s.io/removal-release": "<majorVersion>.<minorVersion>"` audit annotation as well. ([#92842](https://github.com/kubernetes/kubernetes/pull/92842), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Instrumentation] +- Bump Dashboard to v2.0.1 ([#91526](https://github.com/kubernetes/kubernetes/pull/91526), [@maciaszczykm](https://github.com/maciaszczykm)) [SIG Cloud Provider] +- Cloud node-controller use InstancesV2 ([#91319](https://github.com/kubernetes/kubernetes/pull/91319), [@gongguan](https://github.com/gongguan)) [SIG Apps, Cloud Provider, Scalability and Storage] +- Deps: Update to Golang 1.13.9 + - build: Remove kube-cross image building ([#89275](https://github.com/kubernetes/kubernetes/pull/89275), [@justaugustus](https://github.com/justaugustus)) [SIG Release and Testing] +- Detailed scheduler scoring result can be printed at verbose level 10. ([#89384](https://github.com/kubernetes/kubernetes/pull/89384), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] +- E2e.test can print the list of conformance tests that need to pass for the cluster to be conformant. ([#88924](https://github.com/kubernetes/kubernetes/pull/88924), [@dims](https://github.com/dims)) [SIG Architecture and Testing] +- Enable feature Gate DefaultPodTopologySpread to use PodTopologySpread plugin to do defaultspreading. In doing so, legacy DefaultPodTopologySpread plugin is disabled. ([#91793](https://github.com/kubernetes/kubernetes/pull/91793), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- EndpointSlice controller waits longer to retry failed sync. ([#89438](https://github.com/kubernetes/kubernetes/pull/89438), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- Extend AWS azToRegion method to support Local Zones ([#90874](https://github.com/kubernetes/kubernetes/pull/90874), [@Jeffwan](https://github.com/Jeffwan)) [SIG Cloud Provider] +- Feat: add azure shared disk support ([#89511](https://github.com/kubernetes/kubernetes/pull/89511), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Feat: change azure disk api-version ([#89250](https://github.com/kubernetes/kubernetes/pull/89250), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Feat: support [Azure shared disk](https://docs.microsoft.com/en-us/azure/virtual-machines/windows/disks-shared-enable), added a new field(`maxShares`) in azure disk storage class: + + kind: StorageClass + apiVersion: storage.k8s.io/v1 + metadata: + name: shared-disk + provisioner: kubernetes.io/azure-disk + parameters: + skuname: Premium_LRS # Currently only available with premium SSDs. + cachingMode: None # ReadOnly host caching is not available for premium SSDs with maxShares>1 + maxShares: 2 ([#89328](https://github.com/kubernetes/kubernetes/pull/89328), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Improves IPVS proxy performance by only running `EnsureDummyInterface` if the virtual server address is not binded already. ([#92609](https://github.com/kubernetes/kubernetes/pull/92609), [@andrewsykim](https://github.com/andrewsykim)) [SIG Network] +- Kube-Proxy now supports EndpointSlices on Windows with the EndpointSliceProxying feature gate. ([#90909](https://github.com/kubernetes/kubernetes/pull/90909), [@kumarvin123](https://github.com/kumarvin123)) [SIG Network and Windows] +- Kube-Proxy now supports IPv6DualStack on Windows with the IPv6DualStack feature gate. ([#90853](https://github.com/kubernetes/kubernetes/pull/90853), [@kumarvin123](https://github.com/kumarvin123)) [SIG Network, Node and Windows] +- Kube-addon-manager has been updated to v9.1.1 to allow overriding the default list of whitelisted resources (https://github.com/kubernetes/kubernetes/pull/91018) ([#91240](https://github.com/kubernetes/kubernetes/pull/91240), [@tosi3k](https://github.com/tosi3k)) [SIG Cloud Provider, Scalability and Testing] +- Kube-apiserver backed by etcd3 exports metric showing the database file size. ([#89151](https://github.com/kubernetes/kubernetes/pull/89151), [@jingyih](https://github.com/jingyih)) [SIG API Machinery] +- Kube-apiserver, kube-scheduler and kube-controller manager now use SO_REUSEPORT socket option when listening on address defined by --bind-address and --secure-port flags, when running on Unix systems (Windows is NOT supported). This allows to run multiple instances of those processes on a single host with the same configuration, which allows to update/restart them in a graceful way, without causing downtime. ([#88893](https://github.com/kubernetes/kubernetes/pull/88893), [@invidian](https://github.com/invidian)) [SIG API Machinery, Scheduling and Testing] +- Kube-apiserver: The NodeRestriction admission plugin now restricts Node labels kubelets are permitted to set when creating a new Node to the `--node-labels` parameters accepted by kubelets in 1.16+. ([#90307](https://github.com/kubernetes/kubernetes/pull/90307), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node] +- Kube-controller-manager: add '--logging-format' flag to support structured logging ([#91521](https://github.com/kubernetes/kubernetes/pull/91521), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery and Instrumentation] +- Kube-controller-manager: the `--experimental-cluster-signing-duration` flag is marked as deprecated for removal in v1.22, and is replaced with `--cluster-signing-duration`. ([#91154](https://github.com/kubernetes/kubernetes/pull/91154), [@liggitt](https://github.com/liggitt)) [SIG Auth and Cloud Provider] +- Kube-proxy now consumes EndpointSlices instead of Endpoints by default on Linux. A new alpha `WindowsEndpointSliceProxying` feature gate allows the feature to be enabled on Windows. ([#92736](https://github.com/kubernetes/kubernetes/pull/92736), [@robscott](https://github.com/robscott)) [SIG Network] +- Kube-scheduler: add '--logging-format' flag to support structured logging ([#91522](https://github.com/kubernetes/kubernetes/pull/91522), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Scheduling] +- Kubeadm now distinguishes between generated and user supplied component configs, regenerating the former ones if a config upgrade is required ([#86070](https://github.com/kubernetes/kubernetes/pull/86070), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] +- Kubeadm: Allow manually upgraded component configs to be supplied in a YAML file via the --config option during upgrade plan & apply. The old behavior of --config in which kubeadm configuration and component configs that overwrite everything cluster stored is preserved too. The behavior to use with --config is now determined based on whether kubeadm config API objects (API group "kubeadm.kubernetes.io") were supplied in the file or not. ([#91980](https://github.com/kubernetes/kubernetes/pull/91980), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] +- Kubeadm: add startup probes for static Pods to protect slow starting containers ([#91179](https://github.com/kubernetes/kubernetes/pull/91179), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubeadm: deprecate the "--csr-only" and "--csr-dir" flags of the "kubeadm init phase certs" subcommands. Please use "kubeadm alpha certs generate-csr" instead. This new command allows you to generate new private keys and certificate signing requests for all the control-plane components, so that the certificates can be signed by an external CA. ([#92183](https://github.com/kubernetes/kubernetes/pull/92183), [@wallrj](https://github.com/wallrj)) [SIG Cluster Lifecycle] +- Kubeadm: during 'upgrade apply', if the kube-proxy ConfigMap is missing, assume that kube-proxy should not be upgraded. Same applies to a missing kube-dns/coredns ConfigMap for the DNS server addon. Note that this is a temporary workaround until 'upgrade apply' supports phases. Once phases are supported the kube-proxy/dns upgrade should be skipped manually. ([#89593](https://github.com/kubernetes/kubernetes/pull/89593), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: switch control-plane static Pods to the "system-node-critical" priority class ([#90063](https://github.com/kubernetes/kubernetes/pull/90063), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: upgrade plan now prints a table indicating the state of known component configs prior to upgrade ([#88124](https://github.com/kubernetes/kubernetes/pull/88124), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] +- Kubectl supports taint no without specifying(without having to type the full resource name) ([#88723](https://github.com/kubernetes/kubernetes/pull/88723), [@wawa0210](https://github.com/wawa0210)) [SIG CLI] +- Kubelet: following metrics have been renamed: + kubelet_running_container_count --> kubelet_running_containers + kubelet_running_pod_count --> kubelet_running_pods ([#92407](https://github.com/kubernetes/kubernetes/pull/92407), [@RainbowMango](https://github.com/RainbowMango)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Node] +- Kubelets configured to rotate client certificates now publish a `certificate_manager_server_ttl_seconds` gauge metric indicating the remaining seconds until certificate expiration. ([#91148](https://github.com/kubernetes/kubernetes/pull/91148), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node] +- New scoring for PodTopologySpreading that yields better spreading ([#90475](https://github.com/kubernetes/kubernetes/pull/90475), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- No actions required. This is a small enhancement to a utility library. ([#92440](https://github.com/kubernetes/kubernetes/pull/92440), [@luigibk](https://github.com/luigibk)) [SIG Network] +- PodTolerationRestriction: Mention Whitelist Scope in Error ([#87582](https://github.com/kubernetes/kubernetes/pull/87582), [@mrueg](https://github.com/mrueg)) [SIG Scheduling] +- Provider-specific Notes: vsphere: vsphere.conf - new option to disable credentials secret management for performance concerns ([#90836](https://github.com/kubernetes/kubernetes/pull/90836), [@Danil-Grigorev](https://github.com/Danil-Grigorev)) [SIG Cloud Provider] +- Rename pod_preemption_metrics to preemption_metrics. ([#93256](https://github.com/kubernetes/kubernetes/pull/93256), [@ahg-g](https://github.com/ahg-g)) [SIG Instrumentation and Scheduling] +- Rest.Config now supports a flag to override proxy configuration that was previously only configurable through environment variables. ([#81443](https://github.com/kubernetes/kubernetes/pull/81443), [@mikedanese](https://github.com/mikedanese)) [SIG API Machinery and Node] +- Scores from PodTopologySpreading have reduced differentiation as maxSkew increases. ([#90820](https://github.com/kubernetes/kubernetes/pull/90820), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- Server-side apply behavior has been regularized in the case where a field is removed from the applied configuration. Removed fields which have no other owners are deleted from the live object, or reset to their default value if they have one. Safe ownership transfers, such as the transfer of a `replicas` field from a user to an HPA without resetting to the default value are documented in [Transferring Ownership](https://kubernetes.io/docs/reference/using-api/api-concepts/#transferring-ownership) ([#92661](https://github.com/kubernetes/kubernetes/pull/92661), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Testing] +- Service controller: only sync LB node pools when relevant fields in Node changes ([#90769](https://github.com/kubernetes/kubernetes/pull/90769), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps and Network] +- Set CSIMigrationvSphere feature gates to beta. + Users should enable CSIMigration + CSIMigrationvSphere features and install the vSphere CSI Driver (https://github.com/kubernetes-sigs/vsphere-csi-driver) to move workload from the in-tree vSphere plugin "kubernetes.io/vsphere-volume" to vSphere CSI Driver. + + Requires: vSphere vCenter/ESXi Version: 7.0u1, HW Version: VM version 15 ([#92816](https://github.com/kubernetes/kubernetes/pull/92816), [@divyenpatel](https://github.com/divyenpatel)) [SIG Cloud Provider and Storage] +- Support `kubectl create deployment` with replicas ([#91562](https://github.com/kubernetes/kubernetes/pull/91562), [@zhouya0](https://github.com/zhouya0)) +- Support a smooth upgrade from client-side apply to server-side apply without conflicts, as well as support the corresponding downgrade. ([#90187](https://github.com/kubernetes/kubernetes/pull/90187), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG API Machinery and Testing] +- Support create or update VMSS asynchronously. ([#89248](https://github.com/kubernetes/kubernetes/pull/89248), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Support for running on a host that uses cgroups v2 unified mode ([#85218](https://github.com/kubernetes/kubernetes/pull/85218), [@giuseppe](https://github.com/giuseppe)) [SIG Node] +- Switch core master base images (kube-apiserver, kube-scheduler) from debian to distroless ([#90674](https://github.com/kubernetes/kubernetes/pull/90674), [@dims](https://github.com/dims)) [SIG Cloud Provider, Release and Scalability] +- Switch etcd image (with migration scripts) from debian to distroless ([#91171](https://github.com/kubernetes/kubernetes/pull/91171), [@dims](https://github.com/dims)) [SIG API Machinery and Cloud Provider] +- The RotateKubeletClientCertificate feature gate has been promoted to GA, and the kubelet --feature-gate RotateKubeletClientCertificate parameter will be removed in 1.20. ([#91780](https://github.com/kubernetes/kubernetes/pull/91780), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node] +- The SCTPSupport feature is now active by default. ([#88932](https://github.com/kubernetes/kubernetes/pull/88932), [@janosi](https://github.com/janosi)) [SIG Network] +- The `certificatesigningrequests/approval` subresource now supports patch API requests ([#91558](https://github.com/kubernetes/kubernetes/pull/91558), [@liggitt](https://github.com/liggitt)) [SIG Auth and Testing] +- The metric label name of `kubernetes_build_info` has been updated from `camel case` to `snake case`: + - gitVersion --> git_version + - gitCommit --> git_commit + - gitTreeState --> git_tree_state + - buildDate --> build_date + - goVersion --> go_version + + This change happens in `kube-apiserver`、`kube-scheduler`、`kube-proxy` and `kube-controller-manager`. ([#91805](https://github.com/kubernetes/kubernetes/pull/91805), [@RainbowMango](https://github.com/RainbowMango)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] +- Trace output in apiserver logs is more organized and comprehensive. Traces are nested, and for all non-long running request endpoints, the entire filter chain is instrumented (e.g. authentication check is included). ([#88936](https://github.com/kubernetes/kubernetes/pull/88936), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Scheduling] +- Try to send watch bookmarks (if requested) periodically in addition to sending them right before timeout ([#90560](https://github.com/kubernetes/kubernetes/pull/90560), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery] +- Update cri-tools to v1.18.0 ([#89720](https://github.com/kubernetes/kubernetes/pull/89720), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Cluster Lifecycle, Release and Scalability] +- Update etcd client side to v3.4.4 ([#89169](https://github.com/kubernetes/kubernetes/pull/89169), [@jingyih](https://github.com/jingyih)) [SIG API Machinery and Cloud Provider] +- Update etcd client side to v3.4.7 ([#89822](https://github.com/kubernetes/kubernetes/pull/89822), [@jingyih](https://github.com/jingyih)) [SIG API Machinery and Cloud Provider] +- Update etcd client side to v3.4.9 ([#92075](https://github.com/kubernetes/kubernetes/pull/92075), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cloud Provider and Instrumentation] +- Upgrade to azure-sdk v40.2.0 ([#89105](https://github.com/kubernetes/kubernetes/pull/89105), [@andyzhangx](https://github.com/andyzhangx)) [SIG CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Storage and Testing] +- Warn users that `kubectl port-forward` does not support UDP now ([#91616](https://github.com/kubernetes/kubernetes/pull/91616), [@knight42](https://github.com/knight42)) [SIG CLI] +- Weight of PodTopologySpread scheduling Score is doubled. ([#91258](https://github.com/kubernetes/kubernetes/pull/91258), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- `EventRecorder()` is exposed to `FrameworkHandle` interface so that scheduler plugin developers can choose to log cluster-level events. ([#92010](https://github.com/kubernetes/kubernetes/pull/92010), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] +- `kubectl alpha debug` command now supports debugging pods by copy the original one. ([#90094](https://github.com/kubernetes/kubernetes/pull/90094), [@aylei](https://github.com/aylei)) [SIG CLI] +- `kubectl alpha debug` now supports debugging nodes by creating a debugging container running in the node's host namespaces. ([#92310](https://github.com/kubernetes/kubernetes/pull/92310), [@verb](https://github.com/verb)) [SIG CLI] +- `local-up-cluster.sh` installs CSI snapshotter by default now, can be disabled with `ENABLE_CSI_SNAPSHOTTER=false`. ([#91504](https://github.com/kubernetes/kubernetes/pull/91504), [@pohly](https://github.com/pohly)) +- `maxThreshold` of `ImageLocality` plugin is now scaled by the number of images in the pod, which helps to distinguish the node priorities for pod with several images. ([#91138](https://github.com/kubernetes/kubernetes/pull/91138), [@chendave](https://github.com/chendave)) [SIG Scheduling] + +### Documentation + +- Updated the instructions for deploying the sample app. ([#82785](https://github.com/kubernetes/kubernetes/pull/82785), [@ashish-billore](https://github.com/ashish-billore)) [SIG API Machinery] + +### Failing Test + +- Kube-proxy iptables min-sync-period defaults to 1 sec. Previously, it was 0. ([#92836](https://github.com/kubernetes/kubernetes/pull/92836), [@aojea](https://github.com/aojea)) [SIG Network] + +### Bug or Regression + +- A PV set from in-tree source will have ordered requirement values in NodeAffinity when converted to CSIPersistentVolumeSource ([#88987](https://github.com/kubernetes/kubernetes/pull/88987), [@jiahuif](https://github.com/jiahuif)) [SIG Storage] +- A panic in the apiserver caused by the `informer-sync` health checker is now fixed. ([#93600](https://github.com/kubernetes/kubernetes/pull/93600), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG API Machinery] +- An issue preventing GCP cloud-controller-manager running out-of-cluster to initialize new Nodes is now fixed. ([#90057](https://github.com/kubernetes/kubernetes/pull/90057), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Apps and Cloud Provider] +- Avoid GCE API calls when initializing GCE CloudProvider for Kubelets. ([#90218](https://github.com/kubernetes/kubernetes/pull/90218), [@wojtek-t](https://github.com/wojtek-t)) [SIG Cloud Provider and Scalability] +- Avoid unnecessary GCE API calls when adding IP alises or reflecting them in Node object in GCE cloud provider. ([#90242](https://github.com/kubernetes/kubernetes/pull/90242), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps, Cloud Provider and Network] +- Avoid unnecessary scheduling churn when annotations are updated while Pods are being scheduled. ([#90373](https://github.com/kubernetes/kubernetes/pull/90373), [@fabiokung](https://github.com/fabiokung)) [SIG Scheduling] +- Azure auth module for kubectl now requests login after refresh token expires. ([#86481](https://github.com/kubernetes/kubernetes/pull/86481), [@tdihp](https://github.com/tdihp)) [SIG API Machinery and Auth] +- Azure: fix concurreny issue in lb creation ([#89604](https://github.com/kubernetes/kubernetes/pull/89604), [@aramase](https://github.com/aramase)) [SIG Cloud Provider] +- Azure: per VMSS VMSS VMs cache to prevent throttling on clusters having many attached VMSS ([#93107](https://github.com/kubernetes/kubernetes/pull/93107), [@bpineau](https://github.com/bpineau)) [SIG Cloud Provider] +- Azure: set dest prefix and port for IPv6 inbound security rule ([#91831](https://github.com/kubernetes/kubernetes/pull/91831), [@aramase](https://github.com/aramase)) [SIG Cloud Provider] +- Base-images: Update to kube-cross:v1.13.9-5 ([#90963](https://github.com/kubernetes/kubernetes/pull/90963), [@justaugustus](https://github.com/justaugustus)) [SIG Release and Testing] +- Bug fix for AWS NLB service when nodePort for existing servicePort changed manually. ([#89562](https://github.com/kubernetes/kubernetes/pull/89562), [@M00nF1sh](https://github.com/M00nF1sh)) [SIG Cloud Provider] +- CSINode initialization does not crash kubelet on startup when APIServer is not reachable or kubelet has not the right credentials yet. ([#89589](https://github.com/kubernetes/kubernetes/pull/89589), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- CVE-2020-8557 (Medium): Node-local denial of service via container /etc/hosts file. See https://github.com/kubernetes/kubernetes/issues/93032 for more details. ([#92916](https://github.com/kubernetes/kubernetes/pull/92916), [@joelsmith](https://github.com/joelsmith)) [SIG Node] +- Client-go: resolves an issue with informers falling back to full list requests when timeouts are encountered, rather than re-establishing a watch. ([#89652](https://github.com/kubernetes/kubernetes/pull/89652), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] +- CloudNodeLifecycleController will check node existence status before shutdown status when monitoring nodes. ([#90737](https://github.com/kubernetes/kubernetes/pull/90737), [@jiahuif](https://github.com/jiahuif)) [SIG Apps and Cloud Provider] +- Containers which specify a `startupProbe` but not a `readinessProbe` were previously considered "ready" before the `startupProbe` completed, but are now considered "not-ready". ([#92196](https://github.com/kubernetes/kubernetes/pull/92196), [@thockin](https://github.com/thockin)) [SIG Node] +- Cordoned nodes are now deregistered from AWS target groups. ([#85920](https://github.com/kubernetes/kubernetes/pull/85920), [@hoelzro](https://github.com/hoelzro)) [SIG Cloud Provider] +- Do not add nodes labeled with kubernetes.azure.com/managed=false to backend pool of load balancer. ([#93034](https://github.com/kubernetes/kubernetes/pull/93034), [@matthias50](https://github.com/matthias50)) [SIG Cloud Provider] +- Do not retry volume expansion if CSI driver returns FailedPrecondition error ([#92986](https://github.com/kubernetes/kubernetes/pull/92986), [@gnufied](https://github.com/gnufied)) [SIG Node and Storage] +- Dockershim security: pod sandbox now always run with `no-new-privileges` and `runtime/default` seccomp profile + dockershim seccomp: custom profiles can now have smaller seccomp profiles when set at pod level ([#90948](https://github.com/kubernetes/kubernetes/pull/90948), [@pjbgf](https://github.com/pjbgf)) [SIG Node] +- Dual-stack: fix the bug that Service clusterIP does not respect specified ipFamily ([#89612](https://github.com/kubernetes/kubernetes/pull/89612), [@SataQiu](https://github.com/SataQiu)) [SIG Network] +- EndpointSliceMirroring controller now copies labels from Endpoints to EndpointSlices. ([#93442](https://github.com/kubernetes/kubernetes/pull/93442), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- Ensure Azure availability zone is always in lower cases. ([#89722](https://github.com/kubernetes/kubernetes/pull/89722), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Eviction requests for pods that have a non-zero DeletionTimestamp will always succeed ([#91342](https://github.com/kubernetes/kubernetes/pull/91342), [@michaelgugino](https://github.com/michaelgugino)) [SIG Apps] +- Explain CRDs whose resource name are the same as builtin objects ([#89505](https://github.com/kubernetes/kubernetes/pull/89505), [@knight42](https://github.com/knight42)) [SIG API Machinery, CLI and Testing] +- Extend kube-apiserver /readyz with new "informer-sync" check ensuring that internal informers are synced. ([#92644](https://github.com/kubernetes/kubernetes/pull/92644), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Testing] +- Extended DSR loadbalancer feature in winkernel kube-proxy to HNS versions 9.3-9.max, 10.2+ ([#93080](https://github.com/kubernetes/kubernetes/pull/93080), [@elweb9858](https://github.com/elweb9858)) [SIG Network] +- First pod with required affinity terms can schedule only on nodes with matching topology keys. ([#91168](https://github.com/kubernetes/kubernetes/pull/91168), [@ahg-g](https://github.com/ahg-g)) [SIG Scheduling] +- Fix AWS Loadbalancer VPC CIDR calculation when CIDR in disassociated state exists. ([#92227](https://github.com/kubernetes/kubernetes/pull/92227), [@M00nF1sh](https://github.com/M00nF1sh)) [SIG Cloud Provider] +- Fix InstanceMetadataByProviderID for unmanaged nodes ([#92572](https://github.com/kubernetes/kubernetes/pull/92572), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Fix `VirtualMachineScaleSets.virtualMachines.GET` not allowed issues when customers have set VMSS orchestrationMode. ([#91097](https://github.com/kubernetes/kubernetes/pull/91097), [@feiskyer](https://github.com/feiskyer)) +- Fix a bug that didn't allow to use IPv6 addresses with leading zeros ([#89341](https://github.com/kubernetes/kubernetes/pull/89341), [@aojea](https://github.com/aojea)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] +- Fix a bug where ExternalTrafficPolicy is not applied to service ExternalIPs. ([#90537](https://github.com/kubernetes/kubernetes/pull/90537), [@freehan](https://github.com/freehan)) [SIG Network] +- Fix a condition when expiring nil VM entry in VMSS cache ([#92681](https://github.com/kubernetes/kubernetes/pull/92681), [@ArchangelSDY](https://github.com/ArchangelSDY)) [SIG Cloud Provider] +- Fix a racing issue where the scheduler may perform unnecessary scheduling attempts. ([#90660](https://github.com/kubernetes/kubernetes/pull/90660), [@Huang-Wei](https://github.com/Huang-Wei)) +- Fix an issue with container restarts using a modified configmap or secret subpath volume mount. ([#89629](https://github.com/kubernetes/kubernetes/pull/89629), [@fatedier](https://github.com/fatedier)) [SIG Architecture, Storage and Testing] +- Fix bug in the port allocation logic that caused that the NodePort creation with statically assigned portNumber collide in multi-master HA cluster ([#89937](https://github.com/kubernetes/kubernetes/pull/89937), [@aojea](https://github.com/aojea)) [SIG Network and Testing] +- Fix bug with xfs_repair from stopping xfs mount ([#89444](https://github.com/kubernetes/kubernetes/pull/89444), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Storage] +- Fix clusterdump info namespaces flag not working ([#91890](https://github.com/kubernetes/kubernetes/pull/91890), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] +- Fix detection of SystemOOMs in which the victim is a container. ([#88871](https://github.com/kubernetes/kubernetes/pull/88871), [@dashpole](https://github.com/dashpole)) [SIG Node] +- Fix detection of image filesystem, disk metrics for devicemapper, detection of OOM Kills on 5.0+ linux kernels. ([#92919](https://github.com/kubernetes/kubernetes/pull/92919), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Node] +- Fix etcd version migration script in etcd image. ([#91925](https://github.com/kubernetes/kubernetes/pull/91925), [@wenjiaswe](https://github.com/wenjiaswe)) [SIG API Machinery] +- Fix flaws in Azure File CSI translation ([#90162](https://github.com/kubernetes/kubernetes/pull/90162), [@rfranzke](https://github.com/rfranzke)) [SIG Release and Storage] +- Fix instance not found issues when an Azure Node is recreated in a short time ([#93316](https://github.com/kubernetes/kubernetes/pull/93316), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Fix issues when supported huge page sizes changes ([#80831](https://github.com/kubernetes/kubernetes/pull/80831), [@odinuge](https://github.com/odinuge)) [SIG Node and Testing] +- Fix kube-apiserver startup to wait for APIServices to be installed into the HTTP handler before reporting readiness. ([#89147](https://github.com/kubernetes/kubernetes/pull/89147), [@sttts](https://github.com/sttts)) [SIG API Machinery] +- Fix kubectl create --dryrun client ignores namespace ([#90502](https://github.com/kubernetes/kubernetes/pull/90502), [@zhouya0](https://github.com/zhouya0)) +- Fix kubectl create secret docker-registry --from-file not usable ([#90960](https://github.com/kubernetes/kubernetes/pull/90960), [@zhouya0](https://github.com/zhouya0)) [SIG CLI and Testing] +- Fix kubectl describe CSINode nil pointer error ([#89646](https://github.com/kubernetes/kubernetes/pull/89646), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] +- Fix kubectl describe node for users not having access to lease information. ([#90469](https://github.com/kubernetes/kubernetes/pull/90469), [@uthark](https://github.com/uthark)) [SIG CLI] +- Fix kubectl describe output format for empty annotations. ([#91405](https://github.com/kubernetes/kubernetes/pull/91405), [@iyashu](https://github.com/iyashu)) [SIG CLI] +- Fix kubectl diff so it doesn't actually persist patches ([#89795](https://github.com/kubernetes/kubernetes/pull/89795), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI and Testing] +- Fix kubectl run --dry-run client ignore namespace ([#90785](https://github.com/kubernetes/kubernetes/pull/90785), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] +- Fix kubectl version should print version info without config file ([#89913](https://github.com/kubernetes/kubernetes/pull/89913), [@zhouya0](https://github.com/zhouya0)) [SIG API Machinery and CLI] +- Fix missing `-c` shorthand for `--container` flag of `kubectl alpha debug` ([#89674](https://github.com/kubernetes/kubernetes/pull/89674), [@superbrothers](https://github.com/superbrothers)) [SIG CLI] +- Fix printers ignoring object average value ([#89142](https://github.com/kubernetes/kubernetes/pull/89142), [@zhouya0](https://github.com/zhouya0)) [SIG API Machinery] +- Fix public IP not shown issues after assigning public IP to Azure VMs ([#90886](https://github.com/kubernetes/kubernetes/pull/90886), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Fix scheduler crash when removing node before its pods ([#89908](https://github.com/kubernetes/kubernetes/pull/89908), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- Fix the VMSS name and resource group name when updating Azure VMSS for LoadBalancer backendPools ([#89337](https://github.com/kubernetes/kubernetes/pull/89337), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Fix throttling issues when Azure VM computer name prefix is different from VMSS name ([#92793](https://github.com/kubernetes/kubernetes/pull/92793), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Fix: Azure deallocating node should be regarded as shut down ([#92257](https://github.com/kubernetes/kubernetes/pull/92257), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: GetLabelsForVolume panic issue for azure disk PV ([#92166](https://github.com/kubernetes/kubernetes/pull/92166), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: add azure file migration support on annotation support ([#91093](https://github.com/kubernetes/kubernetes/pull/91093), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Node] +- Fix: azure disk dangling attach issue which would cause API throttling ([#90749](https://github.com/kubernetes/kubernetes/pull/90749), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: determine the correct ip config based on ip family ([#93043](https://github.com/kubernetes/kubernetes/pull/93043), [@aramase](https://github.com/aramase)) [SIG Cloud Provider] +- Fix: don't use docker config cache if it's empty ([#92330](https://github.com/kubernetes/kubernetes/pull/92330), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: fix topology issue in azure disk storage class migration ([#91196](https://github.com/kubernetes/kubernetes/pull/91196), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: get attach disk error due to missing item in max count table ([#89768](https://github.com/kubernetes/kubernetes/pull/89768), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fix: incorrect max azure disk max count ([#92331](https://github.com/kubernetes/kubernetes/pull/92331), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fix: initial delay in mounting azure disk & file ([#93052](https://github.com/kubernetes/kubernetes/pull/93052), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fix: support removal of nodes backed by deleted non VMSS instances on Azure ([#91184](https://github.com/kubernetes/kubernetes/pull/91184), [@bpineau](https://github.com/bpineau)) [SIG Cloud Provider] +- Fix: use force detach for azure disk ([#91948](https://github.com/kubernetes/kubernetes/pull/91948), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fixed a 1.18 regression in wait.Forever that skips the backoff period on the first repeat ([#90476](https://github.com/kubernetes/kubernetes/pull/90476), [@zhan849](https://github.com/zhan849)) [SIG API Machinery] +- Fixed a bug that mistake use newObj as oldObj in endpoint slice update. ([#92339](https://github.com/kubernetes/kubernetes/pull/92339), [@fatkun](https://github.com/fatkun)) [SIG Apps and Network] +- Fixed a bug where executing a kubectl command with a jsonpath output expression that has a nested range would ignore expressions following the nested range. ([#88464](https://github.com/kubernetes/kubernetes/pull/88464), [@brianpursley](https://github.com/brianpursley)) [SIG API Machinery] +- Fixed a bug whereby the allocation of reusable CPUs and devices was not being honored when the TopologyManager was enabled ([#93189](https://github.com/kubernetes/kubernetes/pull/93189), [@klueska](https://github.com/klueska)) [SIG Node] +- Fixed a performance issue applying json patches to deeply nested objects ([#92069](https://github.com/kubernetes/kubernetes/pull/92069), [@tapih](https://github.com/tapih)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] +- Fixed a regression preventing garbage collection of RBAC role and binding objects ([#90534](https://github.com/kubernetes/kubernetes/pull/90534), [@apelisse](https://github.com/apelisse)) [SIG Auth] +- Fixed a regression running kubectl commands with --local or --dry-run flags when no kubeconfig file is present ([#90243](https://github.com/kubernetes/kubernetes/pull/90243), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI and Testing] +- Fixed ambiguous behavior when bearer token (kubectl --token=..) and an exec credential plugin was configured in the same context - the bearer token now takes precedence. ([#91745](https://github.com/kubernetes/kubernetes/pull/91745), [@anderseknert](https://github.com/anderseknert)) [SIG API Machinery, Auth and Testing] +- Fixed an issue mounting credentials for service accounts whose name contains `.` characters ([#89696](https://github.com/kubernetes/kubernetes/pull/89696), [@nabokihms](https://github.com/nabokihms)) [SIG Auth] +- Fixed an issue that a Pod's nominatedNodeName cannot be cleared upon node deletion. ([#91750](https://github.com/kubernetes/kubernetes/pull/91750), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] +- Fixed bug where a nonzero exit code was returned when initializing zsh completion even though zsh completion was successfully initialized ([#88165](https://github.com/kubernetes/kubernetes/pull/88165), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] +- Fixed memory leak in endpointSliceTracker ([#92838](https://github.com/kubernetes/kubernetes/pull/92838), [@tnqn](https://github.com/tnqn)) [SIG Apps and Network] +- Fixed mountOptions in iSCSI and FibreChannel volume plugins. ([#89172](https://github.com/kubernetes/kubernetes/pull/89172), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- Fixed node data lost in kube-scheduler for clusters with imbalance on number of nodes across zones ([#93355](https://github.com/kubernetes/kubernetes/pull/93355), [@maelk](https://github.com/maelk)) +- Fixed several bugs involving the IPFamily field when creating or updating services + in clusters with the IPv6DualStack feature gate enabled. + + Beware that the behavior of the IPFamily field is strange and inconsistent and will + likely be changed before the dual-stack feature goes GA. Users should treat the + field as "write-only" for now and should not make any assumptions about a service + based on its current IPFamily value. ([#91400](https://github.com/kubernetes/kubernetes/pull/91400), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network] +- Fixed the EndpointSlice controller to run without error on a cluster with the OwnerReferencesPermissionEnforcement validating admission plugin enabled. ([#89741](https://github.com/kubernetes/kubernetes/pull/89741), [@marun](https://github.com/marun)) [SIG Auth and Network] +- Fixed the EndpointSliceController to correctly create endpoints for IPv6-only pods. + + Fixed the EndpointController to allow IPv6 headless services, if the IPv6DualStack + feature gate is enabled, by specifying `ipFamily: IPv6` on the service. (This already + worked with the EndpointSliceController.) ([#91399](https://github.com/kubernetes/kubernetes/pull/91399), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network] +- Fixed using of a read-only iSCSI volume in multiple pods. ([#91738](https://github.com/kubernetes/kubernetes/pull/91738), [@jsafrane](https://github.com/jsafrane)) [SIG Storage and Testing] +- Fixes CSI volume attachment scaling issue by using informers. ([#91307](https://github.com/kubernetes/kubernetes/pull/91307), [@yuga711](https://github.com/yuga711)) [SIG API Machinery, Apps, Node, Storage and Testing] +- Fixes a bug defining a default value for a replicas field in a custom resource definition that has the scale subresource enabled ([#89833](https://github.com/kubernetes/kubernetes/pull/89833), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] +- Fixes a bug that non directory hostpath type can be recognized as HostPathFile and adds e2e tests for HostPathType ([#64829](https://github.com/kubernetes/kubernetes/pull/64829), [@dixudx](https://github.com/dixudx)) [SIG Apps, Storage and Testing] +- Fixes a problem with 63-second or 1-second connection delays with some VXLAN-based + network plugins which was first widely noticed in 1.16 (though some users saw it + earlier than that, possibly only with specific network plugins). If you were previously + using ethtool to disable checksum offload on your primary network interface, you should + now be able to stop doing that. ([#92035](https://github.com/kubernetes/kubernetes/pull/92035), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] +- Fixes a regression in 1.17 that dropped cache-control headers on API requests ([#90468](https://github.com/kubernetes/kubernetes/pull/90468), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] +- Fixes conversion error for HorizontalPodAutoscaler objects with invalid annotations ([#89963](https://github.com/kubernetes/kubernetes/pull/89963), [@liggitt](https://github.com/liggitt)) [SIG Autoscaling] +- Fixes kubectl to apply all validly built objects, instead of stopping on error. ([#89848](https://github.com/kubernetes/kubernetes/pull/89848), [@seans3](https://github.com/seans3)) [SIG CLI and Testing] +- Fixes regression in CPUManager that caused freeing of exclusive CPUs at incorrect times ([#90377](https://github.com/kubernetes/kubernetes/pull/90377), [@cbf123](https://github.com/cbf123)) [SIG Cloud Provider and Node] +- Fixes regression in CPUManager that had the (rare) possibility to release exclusive CPUs in app containers inherited from init containers. ([#90419](https://github.com/kubernetes/kubernetes/pull/90419), [@klueska](https://github.com/klueska)) [SIG Node] +- Fixes v1.18.0-rc.1 regression in `kubectl port-forward` when specifying a local and remote port ([#89401](https://github.com/kubernetes/kubernetes/pull/89401), [@liggitt](https://github.com/liggitt)) +- Fixing race condition with EndpointSlice controller garbage collection. ([#91311](https://github.com/kubernetes/kubernetes/pull/91311), [@robscott](https://github.com/robscott)) [SIG Apps, Network and Testing] +- For GCE cluster provider, fix bug of not being able to create internal type load balancer for clusters with more than 1000 nodes in a single zone. ([#89902](https://github.com/kubernetes/kubernetes/pull/89902), [@wojtek-t](https://github.com/wojtek-t)) [SIG Cloud Provider, Network and Scalability] +- For external storage e2e test suite, update external driver, to pick snapshot provisioner from VolumeSnapshotClass, when a VolumeSnapshotClass is explicitly provided as an input. ([#90878](https://github.com/kubernetes/kubernetes/pull/90878), [@saikat-royc](https://github.com/saikat-royc)) [SIG Storage and Testing] +- Get-kube.sh: fix order to get the binaries from the right bucket ([#91635](https://github.com/kubernetes/kubernetes/pull/91635), [@cpanato](https://github.com/cpanato)) [SIG Release] +- If firstTimestamp is not set use eventTime when printing event ([#89999](https://github.com/kubernetes/kubernetes/pull/89999), [@soltysh](https://github.com/soltysh)) [SIG CLI] +- If we set parameter cgroupPerQos=false and cgroupRoot=/docker,this function will retrun nodeAllocatableRoot=/docker/kubepods, it is not right, the correct return should be /docker. + cm.NodeAllocatableRoot(s.CgroupRoot, s.CgroupDriver) + + kubeDeps.CAdvisorInterface, err = cadvisor.New(imageFsInfoProvider, s.RootDirectory, cgroupRoots, cadvisor.UsingLegacyCadvisorStats(s.ContainerRuntime, s.RemoteRuntimeEndpoint)) + the above funtion,as we use cgroupRoots to create cadvisor interface,the wrong parameter cgroupRoots will lead eviction manager not to collect metric from /docker, then kubelet frequently print those error: + E0303 17:25:03.436781 63839 summary_sys_containers.go:47] Failed to get system container stats for "/docker": failed to get cgroup stats for "/docker": failed to get container info for "/docker": unknown container "/docker" + E0303 17:25:03.436809 63839 helpers.go:680] eviction manager: failed to construct signal: "allocatableMemory.available" error: system container "pods" not found in metrics ([#88970](https://github.com/kubernetes/kubernetes/pull/88970), [@mysunshine92](https://github.com/mysunshine92)) [SIG Node] +- In a HA env, during the period a standby scheduler lost connection to API server, if a Pod is deleted and recreated, and the standby scheduler becomes master afterwards, there could be a scheduler cache corruption. This PR fixes this issue. ([#91126](https://github.com/kubernetes/kubernetes/pull/91126), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] +- In the kubelet resource metrics endpoint at /metrics/resource, change the names of the following metrics: + - node_cpu_usage_seconds --> node_cpu_usage_seconds_total + - container_cpu_usage_seconds --> container_cpu_usage_seconds_total + This is a partial revert of #86282, which was added in 1.18.0, and initially removed the _total suffix ([#89540](https://github.com/kubernetes/kubernetes/pull/89540), [@dashpole](https://github.com/dashpole)) [SIG Instrumentation and Node] +- Ipvs: only attempt setting of sysctlconnreuse on supported kernels ([#88541](https://github.com/kubernetes/kubernetes/pull/88541), [@cmluciano](https://github.com/cmluciano)) [SIG Network] +- Jsonpath support in kubectl / client-go serializes complex types (maps / slices / structs) as json instead of Go-syntax. ([#89660](https://github.com/kubernetes/kubernetes/pull/89660), [@pjferrell](https://github.com/pjferrell)) [SIG API Machinery, CLI and Cluster Lifecycle] +- Kube-aggregator certificates are dynamically loaded on change from disk ([#92791](https://github.com/kubernetes/kubernetes/pull/92791), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] +- Kube-apiserver: fixes scale subresource patch handling to avoid returning unnecessary 409 Conflict error to clients ([#90342](https://github.com/kubernetes/kubernetes/pull/90342), [@liggitt](https://github.com/liggitt)) [SIG Apps, Autoscaling and Testing] +- Kube-apiserver: jsonpath expressions with consecutive recursive descent operators are no longer evaluated for custom resource printer columns ([#93408](https://github.com/kubernetes/kubernetes/pull/93408), [@joelsmith](https://github.com/joelsmith)) [SIG API Machinery] +- Kube-apiserver: multiple comma-separated protocols in a single X-Stream-Protocol-Version header are now recognized, in addition to multiple headers, complying with RFC2616 ([#89857](https://github.com/kubernetes/kubernetes/pull/89857), [@tedyu](https://github.com/tedyu)) [SIG API Machinery] +- Kube-proxy IP family will be determined by the nodeIP used by the proxier. The order of precedence is: + 1. the configured --bind-address if the bind address is not 0.0.0.0 or :: + 2. the primary IP from the Node object, if set. + 3. if no IP is found, NodeIP defaults to 127.0.0.1 and the IP family to IPv4 ([#91725](https://github.com/kubernetes/kubernetes/pull/91725), [@aojea](https://github.com/aojea)) [SIG Network] +- Kube-proxy, in dual-stack mode, infers the service IP family from the ClusterIP instead of using the `Service.Spec.IPFamily` field ([#91357](https://github.com/kubernetes/kubernetes/pull/91357), [@aojea](https://github.com/aojea)) +- Kube-up now includes CoreDNS version v1.7.0. Some of the major changes include: + - Fixed a bug that could cause CoreDNS to stop updating service records. + - Fixed a bug in the forward plugin where only the first upstream server is always selected no matter which policy is set. + - Remove already deprecated options `resyncperiod` and `upstream` in the Kubernetes plugin. + - Includes Prometheus metrics name changes (to bring them in line with standard Prometheus metrics naming convention). They will be backward incompatible with existing reporting formulas that use the old metrics' names. + - The federation plugin (allows for v1 Kubernetes federation) has been removed. + More details are available in https://coredns.io/2020/06/15/coredns-1.7.0-release/ ([#92718](https://github.com/kubernetes/kubernetes/pull/92718), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cloud Provider] +- Kube-up: fixes setup of validating admission webhook credential configuration ([#91995](https://github.com/kubernetes/kubernetes/pull/91995), [@liggitt](https://github.com/liggitt)) [SIG Cloud Provider and Cluster Lifecycle] +- Kubeadm increased to 5 minutes its timeout for the TLS bootstrapping process to complete upon join ([#89735](https://github.com/kubernetes/kubernetes/pull/89735), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] +- Kubeadm: Add retries for kubeadm join / UpdateStatus to make update status more resilient by adding a retry loop to this operation ([#91952](https://github.com/kubernetes/kubernetes/pull/91952), [@xlgao-zju](https://github.com/xlgao-zju)) [SIG Cluster Lifecycle] +- Kubeadm: add the deprecated flag --port=0 to kube-controller-manager and kube-scheduler manifests to disable insecure serving. Without this flag the components by default serve (e.g. /metrics) insecurely on the default node interface (controlled by --address). Users that wish to override this behavior and enable insecure serving can pass a custom --port=X via kubeadm's "extraArgs" mechanic for these components. ([#92720](https://github.com/kubernetes/kubernetes/pull/92720), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: during "join", don't re-add an etcd member if it already exists in the cluster. ([#92118](https://github.com/kubernetes/kubernetes/pull/92118), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: during "reset" do not remove the only remaining stacked etcd member from the cluster and just proceed with the cleanup of the local etcd storage. ([#91145](https://github.com/kubernetes/kubernetes/pull/91145), [@tnqn](https://github.com/tnqn)) [SIG Cluster Lifecycle] +- Kubeadm: during join when a check is performed that a Node with the same name already exists in the cluster, make sure the NodeReady condition is properly validated ([#89602](https://github.com/kubernetes/kubernetes/pull/89602), [@kvaps](https://github.com/kvaps)) [SIG Cluster Lifecycle] +- Kubeadm: ensure `image-pull-timeout` flag is respected during upgrade phase ([#90328](https://github.com/kubernetes/kubernetes/pull/90328), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubeadm: fix a bug where post upgrade to 1.18.x, nodes cannot join the cluster due to missing RBAC ([#89537](https://github.com/kubernetes/kubernetes/pull/89537), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: fix misleading warning about passing control-plane related flags on 'kubeadm join' ([#89596](https://github.com/kubernetes/kubernetes/pull/89596), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: increase robustness for "kubeadm join" when adding etcd members on slower setups ([#90645](https://github.com/kubernetes/kubernetes/pull/90645), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: remove duplicate DNS names and IP addresses from generated certificates ([#92753](https://github.com/kubernetes/kubernetes/pull/92753), [@QianChenglong](https://github.com/QianChenglong)) [SIG Cluster Lifecycle] +- Kubectl azure authentication: fixed a regression in 1.18.0 where "spn:" prefix was unexpectedly added to the `apiserver-id` configuration in the kubeconfig file ([#89706](https://github.com/kubernetes/kubernetes/pull/89706), [@weinong](https://github.com/weinong)) [SIG API Machinery and Auth] +- Kubectl: fix the bug that kubectl autoscale does not honor '--name' flag ([#91855](https://github.com/kubernetes/kubernetes/pull/91855), [@SataQiu](https://github.com/SataQiu)) [SIG CLI] +- Kubectl: fix the bug that kubectl scale does not honor '--timeout' flag ([#91858](https://github.com/kubernetes/kubernetes/pull/91858), [@SataQiu](https://github.com/SataQiu)) [SIG CLI] +- Kubelet: fix the bug that kubelet help information can not show the right type of flags ([#88515](https://github.com/kubernetes/kubernetes/pull/88515), [@SataQiu](https://github.com/SataQiu)) [SIG Docs and Node] +- Kuberuntime security: pod sandbox now always runs with `runtime/default` seccomp profile + kuberuntime seccomp: custom profiles can now have smaller seccomp profiles when set at pod level ([#90949](https://github.com/kubernetes/kubernetes/pull/90949), [@pjbgf](https://github.com/pjbgf)) [SIG Node] +- Make Kubelet bootstrap certificate signal aware ([#92786](https://github.com/kubernetes/kubernetes/pull/92786), [@answer1991](https://github.com/answer1991)) [SIG API Machinery, Auth and Node] +- Node ([#89677](https://github.com/kubernetes/kubernetes/pull/89677), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] +- On AWS nodes with multiple network interfaces, kubelet should now more reliably report addresses from secondary interfaces. ([#91889](https://github.com/kubernetes/kubernetes/pull/91889), [@anguslees](https://github.com/anguslees)) [SIG Cloud Provider] +- Pod Conditions updates are skipped for re-scheduling attempts ([#91252](https://github.com/kubernetes/kubernetes/pull/91252), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- Pods can now be considered for preemption after a previously nominated node has become unschedulable and unresolvable. ([#92604](https://github.com/kubernetes/kubernetes/pull/92604), [@soulxu](https://github.com/soulxu)) +- Prevent PVC requested size overflow when expanding or creating a volume ([#90907](https://github.com/kubernetes/kubernetes/pull/90907), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage] +- Provides a fix to allow a cluster in a private Azure cloud to authenticate to ACR in the same cloud. ([#90425](https://github.com/kubernetes/kubernetes/pull/90425), [@DavidParks8](https://github.com/DavidParks8)) [SIG Cloud Provider] +- Refine aws loadbalancer worker node SG rule logic to be deterministic ([#92224](https://github.com/kubernetes/kubernetes/pull/92224), [@M00nF1sh](https://github.com/M00nF1sh)) [SIG Cloud Provider] +- Resolve regression in metadata.managedFields handling in create/update/patch requests not using server-side apply ([#91690](https://github.com/kubernetes/kubernetes/pull/91690), [@apelisse](https://github.com/apelisse)) [SIG API Machinery and Testing] +- Resolved a regression in v1.18.0-rc.1 mounting windows volumes ([#89319](https://github.com/kubernetes/kubernetes/pull/89319), [@mboersma](https://github.com/mboersma)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Storage] +- Resolves an issue using `kubectl certificate approve/deny` against a server serving the v1 CSR API ([#91691](https://github.com/kubernetes/kubernetes/pull/91691), [@liggitt](https://github.com/liggitt)) [SIG Auth and CLI] +- Restore the ability to `kubectl apply --prune` without --namespace flag. Since 1.17, `kubectl apply --prune` only prunes resources in the default namespace (or from kubeconfig) or explicitly specified in command line flag. But this is s breaking change from kubectl 1.16, which can prune resources in all namespace in config file. This patch restores the kubectl 1.16 behaviour. ([#89551](https://github.com/kubernetes/kubernetes/pull/89551), [@tatsuhiro-t](https://github.com/tatsuhiro-t)) [SIG CLI and Testing] +- Restores priority of static control plane pods in the cluster/gce/manifests control-plane manifests ([#89970](https://github.com/kubernetes/kubernetes/pull/89970), [@liggitt](https://github.com/liggitt)) [SIG Cluster Lifecycle and Node] +- Reverted devicemanager for Windows node added in 1.19rc1. ([#93263](https://github.com/kubernetes/kubernetes/pull/93263), [@liggitt](https://github.com/liggitt)) [SIG Node and Windows] +- Scheduler v1 Policy config or algorithm-provider settings can now be passed alongside v1beta1 ComponentConfig to aid transition from Policy to CC ([#92531](https://github.com/kubernetes/kubernetes/pull/92531), [@damemi](https://github.com/damemi)) [SIG Scheduling] +- Scheduling failures due to no nodes available are now reported as unschedulable under ```schedule_attempts_total``` metric. ([#90989](https://github.com/kubernetes/kubernetes/pull/90989), [@ahg-g](https://github.com/ahg-g)) [SIG Scheduling] +- Service account tokens bound to pods can now be used during the pod deletion grace period. ([#89583](https://github.com/kubernetes/kubernetes/pull/89583), [@liggitt](https://github.com/liggitt)) [SIG Auth] +- Service load balancers no longer exclude nodes marked unschedulable from the candidate nodes. The service load balancer exclusion label should be used instead. + + Users upgrading from 1.18 who have cordoned nodes should set the `node.kubernetes.io/exclude-from-external-load-balancers` label on the impacted nodes before upgrading if they wish those nodes to remain excluded from service load balancers. ([#90823](https://github.com/kubernetes/kubernetes/pull/90823), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps, Cloud Provider and Network] +- Support kubectl annotate --list option ([#92576](https://github.com/kubernetes/kubernetes/pull/92576), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] +- Sync LB backend nodes for Service `Type=LoadBalancer` on Add/Delete node events. ([#81185](https://github.com/kubernetes/kubernetes/pull/81185), [@andrewsykim](https://github.com/andrewsykim)) +- The following components that do not expect non-empty, non-flag arguments will now print an error message and exit if an argument is specified: cloud-controller-manager, kube-apiserver, kube-controller-manager, kube-proxy, kubeadm {alpha|config|token|version}, kubemark. Flags should be prefixed with a single dash "-" (0x45) for short form or double dash "--" for long form. Before this change, malformed flags (for example, starting with a non-ascii dash character such as 0x8211: "–") would have been silently treated as positional arguments and ignored. ([#91349](https://github.com/kubernetes/kubernetes/pull/91349), [@neolit123](https://github.com/neolit123)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Network and Scheduling] +- The terminationGracePeriodSeconds from pod spec is respected for the mirror pod. ([#92442](https://github.com/kubernetes/kubernetes/pull/92442), [@tedyu](https://github.com/tedyu)) [SIG Node and Testing] +- Update github.com/moby/ipvs to v1.0.1 to fix IPVS compatibility issue with older kernels ([#90555](https://github.com/kubernetes/kubernetes/pull/90555), [@andrewsykim](https://github.com/andrewsykim)) [SIG Network] +- Updates to pod status via the status subresource now validate that `status.podIP` and `status.podIPs` fields are well-formed. ([#90628](https://github.com/kubernetes/kubernetes/pull/90628), [@liggitt](https://github.com/liggitt)) [SIG Apps and Node] +- Wait for all CRDs to show up in discovery endpoint before reporting readiness. ([#89145](https://github.com/kubernetes/kubernetes/pull/89145), [@sttts](https://github.com/sttts)) [SIG API Machinery] +- When evicting, Pods in Pending state are removed without checking PDBs. ([#83906](https://github.com/kubernetes/kubernetes/pull/83906), [@michaelgugino](https://github.com/michaelgugino)) [SIG API Machinery, Apps, Node and Scheduling] +- [security] Vulnerability in golang.org/x/text/encoding/unicode ([#92219](https://github.com/kubernetes/kubernetes/pull/92219), [@voor](https://github.com/voor)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Node] + +### Other (Cleanup or Flake) + +- --cache-dir sets cache directory for both http and discovery, defaults to $HOME/.kube/cache ([#92910](https://github.com/kubernetes/kubernetes/pull/92910), [@soltysh](https://github.com/soltysh)) [SIG API Machinery and CLI] +- Add `pod.Namespace` to the image log ([#91945](https://github.com/kubernetes/kubernetes/pull/91945), [@zhipengzuo](https://github.com/zhipengzuo)) +- Add the ability to disable kubeconfig file lock through DISABLE_KUBECONFIG_LOCK env var ([#92513](https://github.com/kubernetes/kubernetes/pull/92513), [@soltysh](https://github.com/soltysh)) [SIG API Machinery and CLI] +- Adds additional testing to ensure that udp pods conntrack are cleaned up ([#90180](https://github.com/kubernetes/kubernetes/pull/90180), [@JacobTanenbaum](https://github.com/JacobTanenbaum)) [SIG Architecture, Network and Testing] +- Adjusts the fsType for cinder values to be `ext4` if no fsType is specified. ([#90608](https://github.com/kubernetes/kubernetes/pull/90608), [@huffmanca](https://github.com/huffmanca)) [SIG Storage] +- Base-images: Use debian-base:v2.1.0 ([#90697](https://github.com/kubernetes/kubernetes/pull/90697), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery and Release] +- Base-images: Use debian-iptables:v12.1.0 ([#90782](https://github.com/kubernetes/kubernetes/pull/90782), [@justaugustus](https://github.com/justaugustus)) [SIG Release] +- Beta.kubernetes.io/arch is already deprecated since v1.14, are targeted for removal in v1.18 ([#89462](https://github.com/kubernetes/kubernetes/pull/89462), [@wawa0210](https://github.com/wawa0210)) [SIG Testing] +- Build: Update to debian-base@v2.1.2 and debian-iptables@v12.1.1 ([#93667](https://github.com/kubernetes/kubernetes/pull/93667), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Release and Testing] +- Change beta.kubernetes.io/os to kubernetes.io/os ([#89460](https://github.com/kubernetes/kubernetes/pull/89460), [@wawa0210](https://github.com/wawa0210)) [SIG Testing and Windows] +- Change beta.kubernetes.io/os to kubernetes.io/os ([#89461](https://github.com/kubernetes/kubernetes/pull/89461), [@wawa0210](https://github.com/wawa0210)) [SIG Cloud Provider and Cluster Lifecycle] +- Changes not found message when using `kubectl get` to retrieve not namespaced resources ([#89861](https://github.com/kubernetes/kubernetes/pull/89861), [@rccrdpccl](https://github.com/rccrdpccl)) [SIG CLI] +- CoreDNS will no longer be supporting Federation data translation for kube-dns ConfigMap ([#92716](https://github.com/kubernetes/kubernetes/pull/92716), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] +- Deprecate kubectl top flags related to heapster + Drop support of heapster in kubectl top ([#87498](https://github.com/kubernetes/kubernetes/pull/87498), [@serathius](https://github.com/serathius)) [SIG CLI] +- Deprecate the `--target-ram-md` flags that is no longer used for anything. ([#91818](https://github.com/kubernetes/kubernetes/pull/91818), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery] +- Drop some conformance tests that rely on Kubelet API directly ([#90615](https://github.com/kubernetes/kubernetes/pull/90615), [@dims](https://github.com/dims)) [SIG Architecture, Network, Release and Testing] +- Emit `WaitingForPodScheduled` event if the unbound PVC is in delay binding mode but used by a pod ([#91455](https://github.com/kubernetes/kubernetes/pull/91455), [@cofyc](https://github.com/cofyc)) [SIG Storage] +- Fix: license issue in blob disk feature ([#92824](https://github.com/kubernetes/kubernetes/pull/92824), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Improve server-side apply conflict errors by setting dedicated kubectl subcommand field managers ([#88885](https://github.com/kubernetes/kubernetes/pull/88885), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI and Testing] +- IsFullyQualifiedDomainName() validates each label based on IsDNS1123Label. ([#90172](https://github.com/kubernetes/kubernetes/pull/90172), [@nak3](https://github.com/nak3)) [SIG API Machinery and Network] +- It is now possible to use the service annotation `cloud.google.com/network-tier: Standard` to configure the Network Tier of the GCE Loadbalancer ([#88532](https://github.com/kubernetes/kubernetes/pull/88532), [@zioproto](https://github.com/zioproto)) [SIG Cloud Provider, Network and Testing] +- Kube-aggregator: renames aggregator_unavailable_apiservice_count metric to aggregator_unavailable_apiservice_total ([#88156](https://github.com/kubernetes/kubernetes/pull/88156), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] +- Kube-apiserver: openapi schemas published for custom resources now reference standard ListMeta schema definitions ([#92546](https://github.com/kubernetes/kubernetes/pull/92546), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] +- Kube-proxy exposes a new metric, `kubeproxy_sync_proxy_rules_last_queued_timestamp_seconds`, that indicates the last time a change for kube-proxy was queued to be applied. ([#90175](https://github.com/kubernetes/kubernetes/pull/90175), [@squeed](https://github.com/squeed)) [SIG Instrumentation and Network] +- Kube-scheduler: The metric name `scheduler_total_preemption_attempts` has been renamed to `scheduler_preemption_attempts_total`. ([#91448](https://github.com/kubernetes/kubernetes/pull/91448), [@RainbowMango](https://github.com/RainbowMango)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Scheduling] +- Kube-up: defaults to limiting critical pods to the kube-system namespace to match behavior prior to 1.17 ([#93121](https://github.com/kubernetes/kubernetes/pull/93121), [@liggitt](https://github.com/liggitt)) [SIG Cloud Provider and Scheduling] +- Kubeadm now forwards the IPv6DualStack feature gate using the kubelet component config, instead of the kubelet command line ([#90840](https://github.com/kubernetes/kubernetes/pull/90840), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] +- Kubeadm: do not use a DaemonSet for the pre-pull of control-plane images during "kubeadm upgrade apply". Individual node upgrades now pull the required images using a preflight check. The flag "--image-pull-timeout" for "kubeadm upgrade apply" is now deprecated and will be removed in a future release following a GA deprecation policy. ([#90788](https://github.com/kubernetes/kubernetes/pull/90788), [@xlgao-zju](https://github.com/xlgao-zju)) [SIG Cluster Lifecycle] +- Kubeadm: use two separate checks on /livez and /readyz for the kube-apiserver static Pod instead of using /healthz ([#90970](https://github.com/kubernetes/kubernetes/pull/90970), [@johscheuer](https://github.com/johscheuer)) [SIG Cluster Lifecycle] +- NONE ([#91597](https://github.com/kubernetes/kubernetes/pull/91597), [@elmiko](https://github.com/elmiko)) [SIG Autoscaling and Testing] +- Openapi-controller: remove the trailing `1` character literal from the rate limiting metric `APIServiceOpenAPIAggregationControllerQueue1` and rename it to `open_api_aggregation_controller` to adhere to Prometheus best practices. ([#77979](https://github.com/kubernetes/kubernetes/pull/77979), [@s-urbaniak](https://github.com/s-urbaniak)) [SIG API Machinery] +- Reduce event spam during a volume operation error. ([#89794](https://github.com/kubernetes/kubernetes/pull/89794), [@msau42](https://github.com/msau42)) [SIG Storage] +- Refactor the local nodeipam range allocator and instrument the cidrset used to store the allocated CIDRs with the following metrics: + "cidrset_cidrs_allocations_total", + "cidrset_cidrs_releases_total", + "cidrset_usage_cidrs", + "cidrset_allocation_tries_per_request", ([#90288](https://github.com/kubernetes/kubernetes/pull/90288), [@aojea](https://github.com/aojea)) [SIG Apps, Instrumentation, Network and Scalability] +- Remove deprecated --server-dry-run flag from kubectl apply ([#91308](https://github.com/kubernetes/kubernetes/pull/91308), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG CLI and Testing] +- Renamed DefaultPodTopologySpread plugin to SelectorSpread plugin to avoid naming conflicts with feature Gate DefaultPodTopologySpread ([#92501](https://github.com/kubernetes/kubernetes/pull/92501), [@rakeshreddybandi](https://github.com/rakeshreddybandi)) [SIG Release, Scheduling and Testing] +- Replace framework.Failf with ExpectNoError ([#91811](https://github.com/kubernetes/kubernetes/pull/91811), [@lixiaobing1](https://github.com/lixiaobing1)) [SIG Instrumentation, Storage and Testing] +- Scheduler PreScore plugins are not executed if there is one filtered node or less. ([#89370](https://github.com/kubernetes/kubernetes/pull/89370), [@ahg-g](https://github.com/ahg-g)) [SIG Scheduling] +- The "HostPath should give a volume the correct mode" is no longer a conformance test ([#90861](https://github.com/kubernetes/kubernetes/pull/90861), [@dims](https://github.com/dims)) [SIG Architecture and Testing] +- The Kubelet's `--experimental-allocatable-ignore-eviction` option is now marked as deprecated. ([#91578](https://github.com/kubernetes/kubernetes/pull/91578), [@knabben](https://github.com/knabben)) [SIG Node] +- The Kubelet's `--experimental-mounter-path` and `--experimental-check-node-capabilities-before-mount` options are now marked as deprecated. ([#91373](https://github.com/kubernetes/kubernetes/pull/91373), [@knabben](https://github.com/knabben)) +- The PR adds functionality to generate events when a PV or PVC processing encounters certain failures. The events help users to know the reason for the failure so they can take necessary recovery actions. ([#89845](https://github.com/kubernetes/kubernetes/pull/89845), [@yuga711](https://github.com/yuga711)) [SIG Apps] +- The PodShareProcessNamespace feature gate has been removed, and the PodShareProcessNamespace is unconditionally enabled. ([#90099](https://github.com/kubernetes/kubernetes/pull/90099), [@tanjunchen](https://github.com/tanjunchen)) [SIG Node] +- The kube-apiserver `--kubelet-https` flag is deprecated. kube-apiserver connections to kubelets now unconditionally use `https` (kubelets have unconditionally used `https` to serve the endpoints the apiserver communicates with since before v1.0). ([#91630](https://github.com/kubernetes/kubernetes/pull/91630), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Node] +- Update CNI to v0.8.6 ([#91370](https://github.com/kubernetes/kubernetes/pull/91370), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Network, Release and Testing] +- Update Golang to v1.14.5 + - Update repo-infra to 0.0.7 (to support go1.14.5 and go1.13.13) + - Includes: + - bazelbuild/bazel-toolchains@3.3.2 + - bazelbuild/rules_go@v0.22.7 ([#93088](https://github.com/kubernetes/kubernetes/pull/93088), [@justaugustus](https://github.com/justaugustus)) [SIG Release and Testing] +- Update Golang to v1.14.6 + - Update repo-infra to 0.0.8 (to support go1.14.6 and go1.13.14) + - Includes: + - bazelbuild/bazel-toolchains@3.4.0 + - bazelbuild/rules_go@v0.22.8 ([#93198](https://github.com/kubernetes/kubernetes/pull/93198), [@justaugustus](https://github.com/justaugustus)) [SIG Release and Testing] +- Update corefile-migration library to 1.0.8 ([#91856](https://github.com/kubernetes/kubernetes/pull/91856), [@wawa0210](https://github.com/wawa0210)) [SIG Node] +- Update default etcd server version to 3.4.4 ([#89214](https://github.com/kubernetes/kubernetes/pull/89214), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cluster Lifecycle and Testing] +- Update default etcd server version to 3.4.7 ([#89895](https://github.com/kubernetes/kubernetes/pull/89895), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cluster Lifecycle and Testing] +- Update default etcd server version to 3.4.9 ([#92349](https://github.com/kubernetes/kubernetes/pull/92349), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing] +- Update go.etcd.io/bbolt to v1.3.5 ([#92350](https://github.com/kubernetes/kubernetes/pull/92350), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery and Cloud Provider] +- Update opencontainers/runtime-spec dependency to v1.0.2 ([#89644](https://github.com/kubernetes/kubernetes/pull/89644), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] +- `beta.kubernetes.io/os` and `beta.kubernetes.io/arch` node labels are deprecated. Update node selectors to use `kubernetes.io/os` and `kubernetes.io/arch`. ([#91046](https://github.com/kubernetes/kubernetes/pull/91046), [@wawa0210](https://github.com/wawa0210)) [SIG Apps and Node] +- `kubectl config view` now redacts bearer tokens by default, similar to client certificates. The `--raw` flag can still be used to output full content. ([#88985](https://github.com/kubernetes/kubernetes/pull/88985), [@puerco](https://github.com/puerco)) + +## Dependencies + +### Added +- cloud.google.com/go/bigquery: v1.0.1 +- cloud.google.com/go/datastore: v1.0.0 +- cloud.google.com/go/pubsub: v1.0.1 +- cloud.google.com/go/storage: v1.0.0 +- dmitri.shuralyov.com/gpu/mtl: 666a987 +- github.com/cespare/xxhash/v2: [v2.1.1](https://github.com/cespare/xxhash/v2/tree/v2.1.1) +- github.com/checkpoint-restore/go-criu/v4: [v4.0.2](https://github.com/checkpoint-restore/go-criu/v4/tree/v4.0.2) +- github.com/chzyer/logex: [v1.1.10](https://github.com/chzyer/logex/tree/v1.1.10) +- github.com/chzyer/readline: [2972be2](https://github.com/chzyer/readline/tree/2972be2) +- github.com/chzyer/test: [a1ea475](https://github.com/chzyer/test/tree/a1ea475) +- github.com/containerd/cgroups: [0dbf7f0](https://github.com/containerd/cgroups/tree/0dbf7f0) +- github.com/containerd/continuity: [aaeac12](https://github.com/containerd/continuity/tree/aaeac12) +- github.com/containerd/fifo: [a9fb20d](https://github.com/containerd/fifo/tree/a9fb20d) +- github.com/containerd/go-runc: [5a6d9f3](https://github.com/containerd/go-runc/tree/5a6d9f3) +- github.com/containerd/ttrpc: [v1.0.0](https://github.com/containerd/ttrpc/tree/v1.0.0) +- github.com/coreos/bbolt: [v1.3.2](https://github.com/coreos/bbolt/tree/v1.3.2) +- github.com/coreos/go-systemd/v22: [v22.1.0](https://github.com/coreos/go-systemd/v22/tree/v22.1.0) +- github.com/cpuguy83/go-md2man/v2: [v2.0.0](https://github.com/cpuguy83/go-md2man/v2/tree/v2.0.0) +- github.com/docopt/docopt-go: [ee0de3b](https://github.com/docopt/docopt-go/tree/ee0de3b) +- github.com/go-gl/glfw/v3.3/glfw: [12ad95a](https://github.com/go-gl/glfw/v3.3/glfw/tree/12ad95a) +- github.com/go-ini/ini: [v1.9.0](https://github.com/go-ini/ini/tree/v1.9.0) +- github.com/godbus/dbus/v5: [v5.0.3](https://github.com/godbus/dbus/v5/tree/v5.0.3) +- github.com/ianlancetaylor/demangle: [5e5cf60](https://github.com/ianlancetaylor/demangle/tree/5e5cf60) +- github.com/ishidawataru/sctp: [7c296d4](https://github.com/ishidawataru/sctp/tree/7c296d4) +- github.com/moby/ipvs: [v1.0.1](https://github.com/moby/ipvs/tree/v1.0.1) +- github.com/moby/sys/mountinfo: [v0.1.3](https://github.com/moby/sys/mountinfo/tree/v0.1.3) +- github.com/moby/term: [672ec06](https://github.com/moby/term/tree/672ec06) +- github.com/russross/blackfriday/v2: [v2.0.1](https://github.com/russross/blackfriday/v2/tree/v2.0.1) +- github.com/shurcooL/sanitized_anchor_name: [v1.0.0](https://github.com/shurcooL/sanitized_anchor_name/tree/v1.0.0) +- github.com/ugorji/go: [v1.1.4](https://github.com/ugorji/go/tree/v1.1.4) +- github.com/yuin/goldmark: [v1.1.27](https://github.com/yuin/goldmark/tree/v1.1.27) +- google.golang.org/protobuf: v1.24.0 +- gotest.tools/v3: v3.0.2 +- k8s.io/klog/v2: v2.2.0 + +### Changed +- cloud.google.com/go: v0.38.0 → v0.51.0 +- github.com/Azure/azure-sdk-for-go: [v35.0.0+incompatible → v43.0.0+incompatible](https://github.com/Azure/azure-sdk-for-go/compare/v35.0.0...v43.0.0) +- github.com/Azure/go-autorest/autorest/adal: [v0.5.0 → v0.8.2](https://github.com/Azure/go-autorest/autorest/adal/compare/v0.5.0...v0.8.2) +- github.com/Azure/go-autorest/autorest/date: [v0.1.0 → v0.2.0](https://github.com/Azure/go-autorest/autorest/date/compare/v0.1.0...v0.2.0) +- github.com/Azure/go-autorest/autorest/mocks: [v0.2.0 → v0.3.0](https://github.com/Azure/go-autorest/autorest/mocks/compare/v0.2.0...v0.3.0) +- github.com/Azure/go-autorest/autorest: [v0.9.0 → v0.9.6](https://github.com/Azure/go-autorest/autorest/compare/v0.9.0...v0.9.6) +- github.com/GoogleCloudPlatform/k8s-cloud-provider: [27a4ced → 7901bc8](https://github.com/GoogleCloudPlatform/k8s-cloud-provider/compare/27a4ced...7901bc8) +- github.com/Microsoft/go-winio: [v0.4.14 → fc70bd9](https://github.com/Microsoft/go-winio/compare/v0.4.14...fc70bd9) +- github.com/Microsoft/hcsshim: [672e52e → 5eafd15](https://github.com/Microsoft/hcsshim/compare/672e52e...5eafd15) +- github.com/alecthomas/template: [a0175ee → fb15b89](https://github.com/alecthomas/template/compare/a0175ee...fb15b89) +- github.com/alecthomas/units: [2efee85 → c3de453](https://github.com/alecthomas/units/compare/2efee85...c3de453) +- github.com/beorn7/perks: [v1.0.0 → v1.0.1](https://github.com/beorn7/perks/compare/v1.0.0...v1.0.1) +- github.com/cilium/ebpf: [95b36a5 → 1c8d4c9](https://github.com/cilium/ebpf/compare/95b36a5...1c8d4c9) +- github.com/containerd/console: [84eeaae → v1.0.0](https://github.com/containerd/console/compare/84eeaae...v1.0.0) +- github.com/containerd/containerd: [v1.0.2 → v1.3.3](https://github.com/containerd/containerd/compare/v1.0.2...v1.3.3) +- github.com/containerd/typeurl: [2a93cfd → v1.0.0](https://github.com/containerd/typeurl/compare/2a93cfd...v1.0.0) +- github.com/containernetworking/cni: [v0.7.1 → v0.8.0](https://github.com/containernetworking/cni/compare/v0.7.1...v0.8.0) +- github.com/coredns/corefile-migration: [v1.0.6 → v1.0.10](https://github.com/coredns/corefile-migration/compare/v1.0.6...v1.0.10) +- github.com/coreos/pkg: [97fdf19 → 399ea9e](https://github.com/coreos/pkg/compare/97fdf19...399ea9e) +- github.com/docker/docker: [be7ac8b → aa6a989](https://github.com/docker/docker/compare/be7ac8b...aa6a989) +- github.com/docker/go-connections: [v0.3.0 → v0.4.0](https://github.com/docker/go-connections/compare/v0.3.0...v0.4.0) +- github.com/evanphx/json-patch: [v4.2.0+incompatible → e83c0a1](https://github.com/evanphx/json-patch/compare/v4.2.0...e83c0a1) +- github.com/fsnotify/fsnotify: [v1.4.7 → v1.4.9](https://github.com/fsnotify/fsnotify/compare/v1.4.7...v1.4.9) +- github.com/go-kit/kit: [v0.8.0 → v0.9.0](https://github.com/go-kit/kit/compare/v0.8.0...v0.9.0) +- github.com/go-logfmt/logfmt: [v0.3.0 → v0.4.0](https://github.com/go-logfmt/logfmt/compare/v0.3.0...v0.4.0) +- github.com/go-logr/logr: [v0.1.0 → v0.2.0](https://github.com/go-logr/logr/compare/v0.1.0...v0.2.0) +- github.com/golang/groupcache: [02826c3 → 215e871](https://github.com/golang/groupcache/compare/02826c3...215e871) +- github.com/golang/protobuf: [v1.3.2 → v1.4.2](https://github.com/golang/protobuf/compare/v1.3.2...v1.4.2) +- github.com/google/cadvisor: [v0.35.0 → v0.37.0](https://github.com/google/cadvisor/compare/v0.35.0...v0.37.0) +- github.com/google/go-cmp: [v0.3.0 → v0.4.0](https://github.com/google/go-cmp/compare/v0.3.0...v0.4.0) +- github.com/google/pprof: [3ea8567 → d4f498a](https://github.com/google/pprof/compare/3ea8567...d4f498a) +- github.com/googleapis/gax-go/v2: [v2.0.4 → v2.0.5](https://github.com/googleapis/gax-go/v2/compare/v2.0.4...v2.0.5) +- github.com/googleapis/gnostic: [v0.1.0 → v0.4.1](https://github.com/googleapis/gnostic/compare/v0.1.0...v0.4.1) +- github.com/gorilla/mux: [v1.7.0 → v1.7.3](https://github.com/gorilla/mux/compare/v1.7.0...v1.7.3) +- github.com/json-iterator/go: [v1.1.8 → v1.1.10](https://github.com/json-iterator/go/compare/v1.1.8...v1.1.10) +- github.com/jstemmer/go-junit-report: [af01ea7 → v0.9.1](https://github.com/jstemmer/go-junit-report/compare/af01ea7...v0.9.1) +- github.com/konsorten/go-windows-terminal-sequences: [v1.0.1 → v1.0.3](https://github.com/konsorten/go-windows-terminal-sequences/compare/v1.0.1...v1.0.3) +- github.com/kr/pretty: [v0.1.0 → v0.2.0](https://github.com/kr/pretty/compare/v0.1.0...v0.2.0) +- github.com/mattn/go-isatty: [v0.0.9 → v0.0.4](https://github.com/mattn/go-isatty/compare/v0.0.9...v0.0.4) +- github.com/matttproud/golang_protobuf_extensions: [v1.0.1 → c182aff](https://github.com/matttproud/golang_protobuf_extensions/compare/v1.0.1...c182aff) +- github.com/mistifyio/go-zfs: [v2.1.1+incompatible → f784269](https://github.com/mistifyio/go-zfs/compare/v2.1.1...f784269) +- github.com/mrunalp/fileutils: [7d4729f → abd8a0e](https://github.com/mrunalp/fileutils/compare/7d4729f...abd8a0e) +- github.com/opencontainers/runc: [v1.0.0-rc10 → 819fcc6](https://github.com/opencontainers/runc/compare/v1.0.0-rc10...819fcc6) +- github.com/opencontainers/runtime-spec: [v1.0.0 → 237cc4f](https://github.com/opencontainers/runtime-spec/compare/v1.0.0...237cc4f) +- github.com/opencontainers/selinux: [5215b18 → v1.5.2](https://github.com/opencontainers/selinux/compare/5215b18...v1.5.2) +- github.com/pkg/errors: [v0.8.1 → v0.9.1](https://github.com/pkg/errors/compare/v0.8.1...v0.9.1) +- github.com/prometheus/client_golang: [v1.0.0 → v1.7.1](https://github.com/prometheus/client_golang/compare/v1.0.0...v1.7.1) +- github.com/prometheus/common: [v0.4.1 → v0.10.0](https://github.com/prometheus/common/compare/v0.4.1...v0.10.0) +- github.com/prometheus/procfs: [v0.0.2 → v0.1.3](https://github.com/prometheus/procfs/compare/v0.0.2...v0.1.3) +- github.com/rubiojr/go-vhd: [0bfd3b3 → 02e2102](https://github.com/rubiojr/go-vhd/compare/0bfd3b3...02e2102) +- github.com/sirupsen/logrus: [v1.4.2 → v1.6.0](https://github.com/sirupsen/logrus/compare/v1.4.2...v1.6.0) +- github.com/spf13/cobra: [v0.0.5 → v1.0.0](https://github.com/spf13/cobra/compare/v0.0.5...v1.0.0) +- github.com/spf13/viper: [v1.3.2 → v1.4.0](https://github.com/spf13/viper/compare/v1.3.2...v1.4.0) +- github.com/tmc/grpc-websocket-proxy: [89b8d40 → 0ad062e](https://github.com/tmc/grpc-websocket-proxy/compare/89b8d40...0ad062e) +- github.com/urfave/cli: [v1.20.0 → v1.22.2](https://github.com/urfave/cli/compare/v1.20.0...v1.22.2) +- github.com/vishvananda/netlink: [v1.0.0 → v1.1.0](https://github.com/vishvananda/netlink/compare/v1.0.0...v1.1.0) +- github.com/vishvananda/netns: [be1fbed → 52d707b](https://github.com/vishvananda/netns/compare/be1fbed...52d707b) +- go.etcd.io/bbolt: v1.3.3 → v1.3.5 +- go.etcd.io/etcd: 3cf2f69 → 18dfb9c +- go.opencensus.io: v0.21.0 → v0.22.2 +- go.uber.org/atomic: v1.3.2 → v1.4.0 +- golang.org/x/crypto: bac4c82 → 75b2880 +- golang.org/x/exp: 4b39c73 → da58074 +- golang.org/x/image: 0694c2d → cff245a +- golang.org/x/lint: 959b441 → fdd1cda +- golang.org/x/mobile: d3739f8 → d2bd2a2 +- golang.org/x/mod: 4bf6d31 → v0.3.0 +- golang.org/x/net: 13f9640 → ab34263 +- golang.org/x/oauth2: 0f29369 → 858c2ad +- golang.org/x/sys: fde4db3 → ed371f2 +- golang.org/x/text: v0.3.2 → v0.3.3 +- golang.org/x/time: 9d24e82 → 555d28b +- golang.org/x/tools: 65e3620 → c1934b7 +- golang.org/x/xerrors: a985d34 → 9bdfabe +- google.golang.org/api: 5213b80 → v0.15.1 +- google.golang.org/appengine: v1.5.0 → v1.6.5 +- google.golang.org/genproto: 24fa4b2 → cb27e3a +- google.golang.org/grpc: v1.26.0 → v1.27.0 +- gopkg.in/check.v1: 788fd78 → 41f04d3 +- honnef.co/go/tools: v0.0.1-2019.2.2 → v0.0.1-2019.2.3 +- k8s.io/gengo: 36b2048 → 8167cfd +- k8s.io/kube-openapi: bf4fb3b → 656914f +- k8s.io/system-validators: v1.0.4 → v1.1.2 +- k8s.io/utils: 0a110f9 → d5654de +- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.7 → v0.0.9 +- sigs.k8s.io/structured-merge-diff/v3: v3.0.0 → 43c19bb + +### Removed +- github.com/OpenPeeDeeP/depguard: [v1.0.1](https://github.com/OpenPeeDeeP/depguard/tree/v1.0.1) +- github.com/Rican7/retry: [v0.1.0](https://github.com/Rican7/retry/tree/v0.1.0) +- github.com/StackExchange/wmi: [5d04971](https://github.com/StackExchange/wmi/tree/5d04971) +- github.com/anmitsu/go-shlex: [648efa6](https://github.com/anmitsu/go-shlex/tree/648efa6) +- github.com/bazelbuild/bazel-gazelle: [70208cb](https://github.com/bazelbuild/bazel-gazelle/tree/70208cb) +- github.com/bazelbuild/buildtools: [69366ca](https://github.com/bazelbuild/buildtools/tree/69366ca) +- github.com/bazelbuild/rules_go: [6dae44d](https://github.com/bazelbuild/rules_go/tree/6dae44d) +- github.com/bradfitz/go-smtpd: [deb6d62](https://github.com/bradfitz/go-smtpd/tree/deb6d62) +- github.com/cespare/prettybench: [03b8cfe](https://github.com/cespare/prettybench/tree/03b8cfe) +- github.com/checkpoint-restore/go-criu: [17b0214](https://github.com/checkpoint-restore/go-criu/tree/17b0214) +- github.com/client9/misspell: [v0.3.4](https://github.com/client9/misspell/tree/v0.3.4) +- github.com/coreos/go-etcd: [v2.0.0+incompatible](https://github.com/coreos/go-etcd/tree/v2.0.0) +- github.com/cpuguy83/go-md2man: [v1.0.10](https://github.com/cpuguy83/go-md2man/tree/v1.0.10) +- github.com/docker/libnetwork: [c8a5fca](https://github.com/docker/libnetwork/tree/c8a5fca) +- github.com/gliderlabs/ssh: [v0.1.1](https://github.com/gliderlabs/ssh/tree/v0.1.1) +- github.com/go-critic/go-critic: [1df3008](https://github.com/go-critic/go-critic/tree/1df3008) +- github.com/go-lintpack/lintpack: [v0.5.2](https://github.com/go-lintpack/lintpack/tree/v0.5.2) +- github.com/go-ole/go-ole: [v1.2.1](https://github.com/go-ole/go-ole/tree/v1.2.1) +- github.com/go-toolsmith/astcast: [v1.0.0](https://github.com/go-toolsmith/astcast/tree/v1.0.0) +- github.com/go-toolsmith/astcopy: [v1.0.0](https://github.com/go-toolsmith/astcopy/tree/v1.0.0) +- github.com/go-toolsmith/astequal: [v1.0.0](https://github.com/go-toolsmith/astequal/tree/v1.0.0) +- github.com/go-toolsmith/astfmt: [v1.0.0](https://github.com/go-toolsmith/astfmt/tree/v1.0.0) +- github.com/go-toolsmith/astinfo: [9809ff7](https://github.com/go-toolsmith/astinfo/tree/9809ff7) +- github.com/go-toolsmith/astp: [v1.0.0](https://github.com/go-toolsmith/astp/tree/v1.0.0) +- github.com/go-toolsmith/pkgload: [v1.0.0](https://github.com/go-toolsmith/pkgload/tree/v1.0.0) +- github.com/go-toolsmith/strparse: [v1.0.0](https://github.com/go-toolsmith/strparse/tree/v1.0.0) +- github.com/go-toolsmith/typep: [v1.0.0](https://github.com/go-toolsmith/typep/tree/v1.0.0) +- github.com/gobwas/glob: [v0.2.3](https://github.com/gobwas/glob/tree/v0.2.3) +- github.com/godbus/dbus: [2ff6f7f](https://github.com/godbus/dbus/tree/2ff6f7f) +- github.com/golangci/check: [cfe4005](https://github.com/golangci/check/tree/cfe4005) +- github.com/golangci/dupl: [3e9179a](https://github.com/golangci/dupl/tree/3e9179a) +- github.com/golangci/errcheck: [ef45e06](https://github.com/golangci/errcheck/tree/ef45e06) +- github.com/golangci/go-misc: [927a3d8](https://github.com/golangci/go-misc/tree/927a3d8) +- github.com/golangci/go-tools: [e32c541](https://github.com/golangci/go-tools/tree/e32c541) +- github.com/golangci/goconst: [041c5f2](https://github.com/golangci/goconst/tree/041c5f2) +- github.com/golangci/gocyclo: [2becd97](https://github.com/golangci/gocyclo/tree/2becd97) +- github.com/golangci/gofmt: [0b8337e](https://github.com/golangci/gofmt/tree/0b8337e) +- github.com/golangci/golangci-lint: [v1.18.0](https://github.com/golangci/golangci-lint/tree/v1.18.0) +- github.com/golangci/gosec: [66fb7fc](https://github.com/golangci/gosec/tree/66fb7fc) +- github.com/golangci/ineffassign: [42439a7](https://github.com/golangci/ineffassign/tree/42439a7) +- github.com/golangci/lint-1: [ee948d0](https://github.com/golangci/lint-1/tree/ee948d0) +- github.com/golangci/maligned: [b1d8939](https://github.com/golangci/maligned/tree/b1d8939) +- github.com/golangci/misspell: [950f5d1](https://github.com/golangci/misspell/tree/950f5d1) +- github.com/golangci/prealloc: [215b22d](https://github.com/golangci/prealloc/tree/215b22d) +- github.com/golangci/revgrep: [d9c87f5](https://github.com/golangci/revgrep/tree/d9c87f5) +- github.com/golangci/unconvert: [28b1c44](https://github.com/golangci/unconvert/tree/28b1c44) +- github.com/google/go-github: [v17.0.0+incompatible](https://github.com/google/go-github/tree/v17.0.0) +- github.com/google/go-querystring: [v1.0.0](https://github.com/google/go-querystring/tree/v1.0.0) +- github.com/gostaticanalysis/analysisutil: [v0.0.3](https://github.com/gostaticanalysis/analysisutil/tree/v0.0.3) +- github.com/jellevandenhooff/dkim: [f50fe3d](https://github.com/jellevandenhooff/dkim/tree/f50fe3d) +- github.com/klauspost/compress: [v1.4.1](https://github.com/klauspost/compress/tree/v1.4.1) +- github.com/logrusorgru/aurora: [a7b3b31](https://github.com/logrusorgru/aurora/tree/a7b3b31) +- github.com/mattn/go-shellwords: [v1.0.5](https://github.com/mattn/go-shellwords/tree/v1.0.5) +- github.com/mattn/goveralls: [v0.0.2](https://github.com/mattn/goveralls/tree/v0.0.2) +- github.com/mesos/mesos-go: [v0.0.9](https://github.com/mesos/mesos-go/tree/v0.0.9) +- github.com/mitchellh/go-ps: [4fdf99a](https://github.com/mitchellh/go-ps/tree/4fdf99a) +- github.com/mozilla/tls-observatory: [8791a20](https://github.com/mozilla/tls-observatory/tree/8791a20) +- github.com/nbutton23/zxcvbn-go: [eafdab6](https://github.com/nbutton23/zxcvbn-go/tree/eafdab6) +- github.com/pquerna/ffjson: [af8b230](https://github.com/pquerna/ffjson/tree/af8b230) +- github.com/quasilyte/go-consistent: [c6f3937](https://github.com/quasilyte/go-consistent/tree/c6f3937) +- github.com/ryanuber/go-glob: [256dc44](https://github.com/ryanuber/go-glob/tree/256dc44) +- github.com/shirou/gopsutil: [c95755e](https://github.com/shirou/gopsutil/tree/c95755e) +- github.com/shirou/w32: [bb4de01](https://github.com/shirou/w32/tree/bb4de01) +- github.com/shurcooL/go-goon: [37c2f52](https://github.com/shurcooL/go-goon/tree/37c2f52) +- github.com/shurcooL/go: [9e1955d](https://github.com/shurcooL/go/tree/9e1955d) +- github.com/sourcegraph/go-diff: [v0.5.1](https://github.com/sourcegraph/go-diff/tree/v0.5.1) +- github.com/tarm/serial: [98f6abe](https://github.com/tarm/serial/tree/98f6abe) +- github.com/timakin/bodyclose: [87058b9](https://github.com/timakin/bodyclose/tree/87058b9) +- github.com/ugorji/go/codec: [d75b2dc](https://github.com/ugorji/go/codec/tree/d75b2dc) +- github.com/ultraware/funlen: [v0.0.2](https://github.com/ultraware/funlen/tree/v0.0.2) +- github.com/valyala/bytebufferpool: [v1.0.0](https://github.com/valyala/bytebufferpool/tree/v1.0.0) +- github.com/valyala/fasthttp: [v1.2.0](https://github.com/valyala/fasthttp/tree/v1.2.0) +- github.com/valyala/quicktemplate: [v1.1.1](https://github.com/valyala/quicktemplate/tree/v1.1.1) +- github.com/valyala/tcplisten: [ceec8f9](https://github.com/valyala/tcplisten/tree/ceec8f9) +- go4.org: 417644f +- golang.org/x/build: 2835ba2 +- golang.org/x/perf: 6e6d33e +- gopkg.in/airbrake/gobrake.v2: v2.0.9 +- gopkg.in/gemnasium/logrus-airbrake-hook.v2: v2.1.2 +- gotest.tools/gotestsum: v0.3.5 +- grpc.go4.org: 11d0a25 +- k8s.io/klog: v1.0.0 +- k8s.io/repo-infra: v0.0.1-alpha.1 +- mvdan.cc/interfacer: c200402 +- mvdan.cc/lint: adc824a +- mvdan.cc/unparam: fbb5962 +- sourcegraph.com/sqs/pbtypes: d3ebe8f diff --git a/releases/release-1.19/release-notes/maps/pr-81185-map.yaml b/releases/release-1.19/release-notes/maps/pr-81185-map.yaml index 6ff382ad562..ef98b798108 100644 --- a/releases/release-1.19/release-notes/maps/pr-81185-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-81185-map.yaml @@ -1,3 +1,3 @@ -pr: 81185 -releasenote: - text: Sync LB backend nodes for Service `Type=LoadBalancer` on Add/Delete node events. +pr: 81185 +releasenote: + text: Sync LB backend nodes for Service `Type=LoadBalancer` on Add/Delete node events. diff --git a/releases/release-1.19/release-notes/maps/pr-88985-map.yaml b/releases/release-1.19/release-notes/maps/pr-88985-map.yaml index 5f84246092c..1219387fbc8 100644 --- a/releases/release-1.19/release-notes/maps/pr-88985-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-88985-map.yaml @@ -1,3 +1,3 @@ -pr: 88985 -releasenote: - author: puerco +pr: 88985 +releasenote: + author: puerco diff --git a/releases/release-1.19/release-notes/maps/pr-89367-map.yaml b/releases/release-1.19/release-notes/maps/pr-89367-map.yaml index f471d1aec15..1933eab9e9a 100644 --- a/releases/release-1.19/release-notes/maps/pr-89367-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-89367-map.yaml @@ -1,3 +1,3 @@ -pr: 89367 -releasenote: - text: NONE +pr: 89367 +releasenote: + text: NONE diff --git a/releases/release-1.19/release-notes/maps/pr-89401-map.yaml b/releases/release-1.19/release-notes/maps/pr-89401-map.yaml index 3ef2c818fde..3869e0e1777 100644 --- a/releases/release-1.19/release-notes/maps/pr-89401-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-89401-map.yaml @@ -1,4 +1,4 @@ -pr: 89401 -releasenote: - text: Fixes v1.18.0-rc.1 regression in `kubectl port-forward` when specifying a - local and remote port +pr: 89401 +releasenote: + text: Fixes v1.18.0-rc.1 regression in `kubectl port-forward` when specifying a + local and remote port diff --git a/releases/release-1.19/release-notes/maps/pr-90502-map.yaml b/releases/release-1.19/release-notes/maps/pr-90502-map.yaml index b44272d7111..e32ef15f62d 100644 --- a/releases/release-1.19/release-notes/maps/pr-90502-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-90502-map.yaml @@ -1,3 +1,3 @@ -pr: 90502 -releasenote: - text: Fix kubectl create --dryrun client ignores namespace +pr: 90502 +releasenote: + text: Fix kubectl create --dryrun client ignores namespace diff --git a/releases/release-1.19/release-notes/maps/pr-90660-map.yaml b/releases/release-1.19/release-notes/maps/pr-90660-map.yaml index 366c433bc5b..98cce4891dc 100644 --- a/releases/release-1.19/release-notes/maps/pr-90660-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-90660-map.yaml @@ -1,4 +1,4 @@ -pr: 90660 -releasenote: - text: Fix a racing issue where the scheduler may perform unnecessary scheduling - attempts. +pr: 90660 +releasenote: + text: Fix a racing issue where the scheduler may perform unnecessary scheduling + attempts. diff --git a/releases/release-1.19/release-notes/maps/pr-91097-map.yaml b/releases/release-1.19/release-notes/maps/pr-91097-map.yaml index ce4c62393c9..5a7addf6e66 100644 --- a/releases/release-1.19/release-notes/maps/pr-91097-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-91097-map.yaml @@ -1,4 +1,4 @@ -pr: 91097 -releasenote: - text: Fix `VirtualMachineScaleSets.virtualMachines.GET` not allowed issues when - customers have set VMSS orchestrationMode. +pr: 91097 +releasenote: + text: Fix `VirtualMachineScaleSets.virtualMachines.GET` not allowed issues when + customers have set VMSS orchestrationMode. diff --git a/releases/release-1.19/release-notes/maps/pr-91357-map.yaml b/releases/release-1.19/release-notes/maps/pr-91357-map.yaml index 2ec3142181f..a9e1a663320 100644 --- a/releases/release-1.19/release-notes/maps/pr-91357-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-91357-map.yaml @@ -1,4 +1,4 @@ -pr: 91357 -releasenote: - text: kube-proxy, in dual-stack mode, infers the service IP family from the ClusterIP - instead of using the `Service.Spec.IPFamily` field +pr: 91357 +releasenote: + text: kube-proxy, in dual-stack mode, infers the service IP family from the ClusterIP + instead of using the `Service.Spec.IPFamily` field diff --git a/releases/release-1.19/release-notes/maps/pr-91373-map.yaml b/releases/release-1.19/release-notes/maps/pr-91373-map.yaml index a5cfcd4ea0d..34bda4333ad 100644 --- a/releases/release-1.19/release-notes/maps/pr-91373-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-91373-map.yaml @@ -1,4 +1,4 @@ -pr: 91373 -releasenote: - text: The Kubelet's `--experimental-mounter-path` and `--experimental-check-node-capabilities-before-mount` - options are now marked as deprecated. +pr: 91373 +releasenote: + text: The Kubelet's `--experimental-mounter-path` and `--experimental-check-node-capabilities-before-mount` + options are now marked as deprecated. diff --git a/releases/release-1.19/release-notes/maps/pr-91504-map.yaml b/releases/release-1.19/release-notes/maps/pr-91504-map.yaml index 532617f3beb..9aabe639548 100644 --- a/releases/release-1.19/release-notes/maps/pr-91504-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-91504-map.yaml @@ -1,4 +1,4 @@ -pr: 91504 -releasenote: - text: '`local-up-cluster.sh` installs CSI snapshotter by default now, can be disabled - with `ENABLE_CSI_SNAPSHOTTER=false`.' +pr: 91504 +releasenote: + text: '`local-up-cluster.sh` installs CSI snapshotter by default now, can be disabled + with `ENABLE_CSI_SNAPSHOTTER=false`.' diff --git a/releases/release-1.19/release-notes/maps/pr-91562-map.yaml b/releases/release-1.19/release-notes/maps/pr-91562-map.yaml index cc1791e7b8c..863e7112d76 100644 --- a/releases/release-1.19/release-notes/maps/pr-91562-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-91562-map.yaml @@ -1,3 +1,3 @@ -pr: 91562 -releasenote: - text: Support `kubectl create deployment` with replicas +pr: 91562 +releasenote: + text: Support `kubectl create deployment` with replicas diff --git a/releases/release-1.19/release-notes/maps/pr-91748-map.yaml b/releases/release-1.19/release-notes/maps/pr-91748-map.yaml index d9afdd3e679..09c72a6ee44 100644 --- a/releases/release-1.19/release-notes/maps/pr-91748-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-91748-map.yaml @@ -1,4 +1,4 @@ -pr: 91748 -releasenote: - text: Resolve regression in `metadata.managedFields` handling in update/patch requests - submitted by older API clients +pr: 91748 +releasenote: + text: Resolve regression in `metadata.managedFields` handling in update/patch requests + submitted by older API clients diff --git a/releases/release-1.19/release-notes/maps/pr-91945-map.yaml b/releases/release-1.19/release-notes/maps/pr-91945-map.yaml index be5517fe60d..73941706a9c 100644 --- a/releases/release-1.19/release-notes/maps/pr-91945-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-91945-map.yaml @@ -1,3 +1,3 @@ -pr: 91945 -releasenote: - text: Add `pod.Namespace` to the image log +pr: 91945 +releasenote: + text: Add `pod.Namespace` to the image log diff --git a/releases/release-1.19/release-notes/maps/pr-92017-map.yaml b/releases/release-1.19/release-notes/maps/pr-92017-map.yaml index 01ebd366d09..0cb3a0ee5cf 100644 --- a/releases/release-1.19/release-notes/maps/pr-92017-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-92017-map.yaml @@ -1,6 +1,6 @@ -pr: 92017 -releasenote: - text: 'kubeadm: deprecate the feature `--experimental-kustomize` in favor of `--experimental-patches`. - The supported patch formats are the same as "kubectl patch". They are read as - files from a directory and can be applied to kubeadm components during init/join/upgrade. - Only patching of static Pods is supported for the time being.' +pr: 92017 +releasenote: + text: 'kubeadm: deprecate the feature `--experimental-kustomize` in favor of `--experimental-patches`. + The supported patch formats are the same as "kubectl patch". They are read as + files from a directory and can be applied to kubeadm components during init/join/upgrade. + Only patching of static Pods is supported for the time being.' diff --git a/releases/release-1.19/release-notes/maps/pr-92440-map.yaml b/releases/release-1.19/release-notes/maps/pr-92440-map.yaml index 5a68f87309b..22a2c9e708d 100644 --- a/releases/release-1.19/release-notes/maps/pr-92440-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-92440-map.yaml @@ -1,2 +1,2 @@ -pr: 92440 -releasenote: {} +pr: 92440 +releasenote: {} diff --git a/releases/release-1.19/release-notes/maps/pr-92604-map.yaml b/releases/release-1.19/release-notes/maps/pr-92604-map.yaml index c4dad1ee7d0..9323ccf0a19 100644 --- a/releases/release-1.19/release-notes/maps/pr-92604-map.yaml +++ b/releases/release-1.19/release-notes/maps/pr-92604-map.yaml @@ -1,4 +1,4 @@ -pr: 92604 -releasenote: - text: Pods can now be considered for preemption after a previously nominated node - has become unschedulable and unresolvable. +pr: 92604 +releasenote: + text: Pods can now be considered for preemption after a previously nominated node + has become unschedulable and unresolvable. diff --git a/releases/release-1.19/release_team.md b/releases/release-1.19/release_team.md index 2f191fdc42e..46682b39295 100644 --- a/releases/release-1.19/release_team.md +++ b/releases/release-1.19/release_team.md @@ -1,16 +1,16 @@ -# Kubernetes 1.19 Release Team - -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|---|---|---| -| Lead | Taylor Dolezal ([@onlydole](https://github.com/onlydole) / Slack: `@onlydole`) | Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables) / Slack: `@mrbobbytables`), Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard) / Slack: `@jerickar`) | -| Enhancements | Nabarun Pal ([@palnabarun](https://github.com/palnabarun) / Slack: `@palnabarun`) | Kirsten Garrison ( [@kikisdeliveryservice](https://github.com/kikisdeliveryservice) / Slack: `@oikiki`), John Belamaric ([@johnbelamaric](https://github.com/johnbelamaric) / Slack: `@johnbelamaric`), Harsha Narayana ([@harshanarayana](https://github.com/harshanarayana) / Slack: `@Harsha Narayana`), Miroslaw Sedzinski ([@msedzins](https://github.com/msedzins) / Slack: `@Miroslaw Sedzinski`) | -| CI Signal | Daniel Mangum ([@hasheddan](https://github.com/hasheddan) / Slack: `@hasheddan`) | Hosam Kamel ([@hkamel](https://github.com/hkamel) / Slack: `@hkamel`), Robert Kielty ([@RobertKielty](https://github.com/RobertKielty) / Slack: `@RobKielty`), Sayan Chowdhury ([@sayanchowdhury](https://github.com/sayanchowdhury) / Slack: `@yudocaa`), Vineeth Pothulapati ([@VineethReddy02](https://github.com/VineethReddy02) / Slack: `@Vineeth`) | -| Bug Triage | Gianluca Arbezzano / ([@gianarb](https://github.com/gianarb) / Slack: `@gianarb`) | John Skarbek ([@jtslear](https://github.com/jtslear) / Slack: `@skarbek`), Nikolas Moraitis ([@droslean](https://github.com/droslean) / Slack: `@droslean`), Karen M Bruner ([@kbruner](https://github.com/kbruner) / Slack: `@Karen Bruner`), Vlad Gorodetsky ([@bai](https://github.com/bai) / Slack: `@bai`) | -| Docs | Savitha Raghunathan ([@savitharaghunathan](https://github.com/savitharaghunathan) / Slack: `@sraghunathan`) | Anna Jung ([@annajung](https://github.com/annajung) / Slack: `@annajung`), Mikael Johansson ([@mikejoh](https://github.com/mikejoh) / Slack: `@mikjoh`), Zachary Estrella ([@zestrells](https://github.com/zestrells) / Slack: `@zestrella`), Divya Mohan ([@divya-mohan0209](https://github.com/divya-mohan0209) / Slack: `@Divya Mohan`) | -| Release Notes | Adolfo García Veytia ([@puerco](https://github.com/puerco) / Slack: `@puerco`) | James Laverack ([@JamesLaverack](https://github.com/JamesLaverack) / Slack: `@james.laverack`), Reyann Lejano ([@reylejano-rxm](https://github.com/reylejano-rxm) / Slack: `@rey.lejano`), Wilson Husin ([@wilsonehusin](https://github.com/wilsonehusin) / Slack: `@wilsonehusin`), Allan Guwatudde ( [@AGMETEOR](https://github.com/AGMETEOR) / Slack `Allan Guwatudde`) | -| Communications | Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkoerbi`) | Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@sandoval`), Kendall Roden ([@kendallroden](https://github.com/kendallroden) / Slack: `@keroden`), Meenakshi Kaushik ([@mkhaas](https://github.com/mkhaas) / Slack: `@meenakshi`), Russel Cantwell ([@RCantw3ll](https://github.com/RCantw3ll) / Slack: `@RCantw3ll`) | -| Emeritus Adviser | Tim Pepper ([@tpepper](https://github.com/tpepper)) / Slack: `@tpepper`) | -- | - -Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.19, once the 1.19 release cycle concludes. +# Kubernetes 1.19 Release Team + +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|---|---|---| +| Lead | Taylor Dolezal ([@onlydole](https://github.com/onlydole) / Slack: `@onlydole`) | Bob Killen ([@mrbobbytables](https://github.com/mrbobbytables) / Slack: `@mrbobbytables`), Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard) / Slack: `@jerickar`) | +| Enhancements | Nabarun Pal ([@palnabarun](https://github.com/palnabarun) / Slack: `@palnabarun`) | Kirsten Garrison ( [@kikisdeliveryservice](https://github.com/kikisdeliveryservice) / Slack: `@oikiki`), John Belamaric ([@johnbelamaric](https://github.com/johnbelamaric) / Slack: `@johnbelamaric`), Harsha Narayana ([@harshanarayana](https://github.com/harshanarayana) / Slack: `@Harsha Narayana`), Miroslaw Sedzinski ([@msedzins](https://github.com/msedzins) / Slack: `@Miroslaw Sedzinski`) | +| CI Signal | Daniel Mangum ([@hasheddan](https://github.com/hasheddan) / Slack: `@hasheddan`) | Hosam Kamel ([@hkamel](https://github.com/hkamel) / Slack: `@hkamel`), Robert Kielty ([@RobertKielty](https://github.com/RobertKielty) / Slack: `@RobKielty`), Sayan Chowdhury ([@sayanchowdhury](https://github.com/sayanchowdhury) / Slack: `@yudocaa`), Vineeth Pothulapati ([@VineethReddy02](https://github.com/VineethReddy02) / Slack: `@Vineeth`) | +| Bug Triage | Gianluca Arbezzano / ([@gianarb](https://github.com/gianarb) / Slack: `@gianarb`) | John Skarbek ([@jtslear](https://github.com/jtslear) / Slack: `@skarbek`), Nikolas Moraitis ([@droslean](https://github.com/droslean) / Slack: `@droslean`), Karen M Bruner ([@kbruner](https://github.com/kbruner) / Slack: `@Karen Bruner`), Vlad Gorodetsky ([@bai](https://github.com/bai) / Slack: `@bai`) | +| Docs | Savitha Raghunathan ([@savitharaghunathan](https://github.com/savitharaghunathan) / Slack: `@sraghunathan`) | Anna Jung ([@annajung](https://github.com/annajung) / Slack: `@annajung`), Mikael Johansson ([@mikejoh](https://github.com/mikejoh) / Slack: `@mikjoh`), Zachary Estrella ([@zestrells](https://github.com/zestrells) / Slack: `@zestrella`), Divya Mohan ([@divya-mohan0209](https://github.com/divya-mohan0209) / Slack: `@Divya Mohan`) | +| Release Notes | Adolfo García Veytia ([@puerco](https://github.com/puerco) / Slack: `@puerco`) | James Laverack ([@JamesLaverack](https://github.com/JamesLaverack) / Slack: `@james.laverack`), Reyann Lejano ([@reylejano-rxm](https://github.com/reylejano-rxm) / Slack: `@rey.lejano`), Wilson Husin ([@wilsonehusin](https://github.com/wilsonehusin) / Slack: `@wilsonehusin`), Allan Guwatudde ( [@AGMETEOR](https://github.com/AGMETEOR) / Slack `Allan Guwatudde`) | +| Communications | Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkoerbi`) | Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@sandoval`), Kendall Roden ([@kendallroden](https://github.com/kendallroden) / Slack: `@keroden`), Meenakshi Kaushik ([@mkhaas](https://github.com/mkhaas) / Slack: `@meenakshi`), Russel Cantwell ([@RCantw3ll](https://github.com/RCantw3ll) / Slack: `@RCantw3ll`) | +| Emeritus Adviser | Tim Pepper ([@tpepper](https://github.com/tpepper)) / Slack: `@tpepper`) | -- | + +Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.19, once the 1.19 release cycle concludes. diff --git a/releases/release-1.20/README.md b/releases/release-1.20/README.md index 658cd33b6ca..876e71d47fe 100644 --- a/releases/release-1.20/README.md +++ b/releases/release-1.20/README.md @@ -1,115 +1,115 @@ ---- -title: "Kubernetes 1.20 Release Information" -weight: 10 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.20: The Raddest Release - -<img src="blepurrnetes.png" height=400 width=auto> - -[raddest](https://www.dictionary.com/browse/rad): adjective, Slang. excellent; wonderful; cool: - -2020 has been a challenging year for many of us, but that didn't stop the community. Kubernetes contributors have delivered a record-breaking number of enhancements in this release and they did it during an end of the year release that overlapped with KubeCon + CloudNativeCon North America, various end of year holidays, and the general challenges of 2020. That is a great accomplishment and makes Kubernetes 1.20 one of the "raddest" releases yet. So as we end the year with a big accomplishment, we chose to add a little levity to the year and pay homage to releases past [Kubernetes 1.14 - Caturnetes](../releases/release-1.14) with a "rad" cat named Humphrey. - -Special thanks to [Henry Hsu](https://www.instagram.com/robotdancebattle/?hl=en) for the portrait of Humphrey. - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.20/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.20/release-team.md) -* [Meeting Minutes](http://bit.ly/k8s120-releasemtg) (join [kubernetes-sig-release@] to receive meeting invites) -* [v1.20 Release Calendar][k8s120-calendar] -* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail -* [Internal Contact Info][Internal Contact Info] (accessible only to members of [kubernetes-release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Sheet](http://bit.ly/k8s-1-20-enhancements) -* Bug Triage Tracking Sheet: TODO -* CI Signal Report: TODO -* [Retrospective Document][Retrospective Document] -* [kubernetes/sig-release v1.20 milestone](https://github.com/kubernetes/kubernetes/milestone/48) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## TL;DR - -The 1.20 release cycle is proposed as follows: - -- **Monday, September 14th**: Week 1 - Release cycle begins -- **Tuesday, Oct 6th**: Week 4 - [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **Thursday, Nov 12th**: Week 9 - [Code Freeze](../release_phases.md#code-freeze) -- **Monday, Nov 23rd**: Week 11 - [Test Freeze](../release_phases.md#test-freeze) -- **Wednesday, Dec 2nd**: Week 12 - Docs must be completed and reviewed -- **Tuesday, Dec 8th**: Week 13 - Kubernetes v1.20.0 released -- **Thursday, Dec 17th**: Week 14 - Release Retrospective - -## Timeline - -| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | -|---|---|---|---|---| -| Start of Release Cycle | Lead | Mon September 14 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Tue September 15 | | | -| Schedule finalized | Lead | Wed September 16 | | | -| Team finalized | Lead | Friday September 18 | | | -| 1.20.0-alpha.1 released | Branch Manager | Tue September 22 | week 2 | | -| Start Release Notes Draft | Release Notes Lead | Tue September 29 | week 3 | | -| **Begin [Enhancements Freeze]** (EOD PST) | Enhancements Lead | Tue October 6 | week 4 | [master-blocking], [master-informing] | -| 1.20.0-alpha.2 released | Branch Manager | Tue October 13 | week 5 | | -| 1.20.0-alpha.3 released | Branch Manager | Tue October 20 | week 6 | | -| 1.20.0-beta.0 released | Branch Manager | Tue October 27 | week 7 | | -| **Begin [Burndown]** (MWF meetings) | Lead | Mon November 2 | week 8 | [1.20-blocking], [master-blocking], [master-informing] | -| **Call for [Exceptions][Exception]** | Lead | Mon November 2 | | | -| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Mon November 2 | | | -| 1.20.0-beta.1 released | Branch Manager | Tue November 3 | | | -| Docs deadline - Open placeholder PRs | Docs Lead | Fri November 6 | | | -| **Begin [Code Freeze]** (EOD PST) | Branch Manager | Thu November 12 | week 9 | | -| Burndown Meetings daily| Lead | Mon November 16 | week 10 | | -| 1.20.0-beta.2 released | Branch Manager | Tue November 17 | | | -| **KubeCon CloudNativeCon North America Starts** | Community | Tue, November 17 | | | -| **KubeCon CloudNativeCon North America Ends** | Community | Friday, November 20 | | | -| Docs deadline - PRs ready for review | Docs Lead | Mon November 23 | week 11 | | -| **[Test Freeze]** (EOD PST) | Branch Manager | Mon November 23 | | -| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Wed December 2 | week 12 | | -| release-1.20 branch created | Branch Manager | Tue December 1 | | | -| release-1.20 jobs created | Branch Manager | Tue December 1 | | | -| 1.20.0-rc.0 released | Branch Manager | Tue December 1 | | | -| **v1.20.0 released** | Branch Manager | Tue December 8 | week 13 | | -| **[Thaw]** | Branch Manager | Tue, December 8 | | | -| Release retrospective | Community | Thu December 17 | week 14 | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[k8s120-calendar]: https://bit.ly/k8s-release-cal -[Internal Contact Info]: http://bit.ly/k8s120-contacts -[Retrospective Document]: http://bit.ly/k8s120-retro - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Thaw]: ../release_phases.md#thaw -[Test Freeze]: ../release_phases.md#test-freeze - -[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking#Summary - -[exception requests]: ../EXCEPTIONS.md +--- +title: "Kubernetes 1.20 Release Information" +weight: 10 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.20: The Raddest Release + +<img src="blepurrnetes.png" height=400 width=auto> + +[raddest](https://www.dictionary.com/browse/rad): adjective, Slang. excellent; wonderful; cool: + +2020 has been a challenging year for many of us, but that didn't stop the community. Kubernetes contributors have delivered a record-breaking number of enhancements in this release and they did it during an end of the year release that overlapped with KubeCon + CloudNativeCon North America, various end of year holidays, and the general challenges of 2020. That is a great accomplishment and makes Kubernetes 1.20 one of the "raddest" releases yet. So as we end the year with a big accomplishment, we chose to add a little levity to the year and pay homage to releases past [Kubernetes 1.14 - Caturnetes](../releases/release-1.14) with a "rad" cat named Humphrey. + +Special thanks to [Henry Hsu](https://www.instagram.com/robotdancebattle/?hl=en) for the portrait of Humphrey. + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.20/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.20/release-team.md) +* [Meeting Minutes](http://bit.ly/k8s120-releasemtg) (join [kubernetes-sig-release@] to receive meeting invites) +* [v1.20 Release Calendar][k8s120-calendar] +* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail +* [Internal Contact Info][Internal Contact Info] (accessible only to members of [kubernetes-release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Sheet](http://bit.ly/k8s-1-20-enhancements) +* Bug Triage Tracking Sheet: TODO +* CI Signal Report: TODO +* [Retrospective Document][Retrospective Document] +* [kubernetes/sig-release v1.20 milestone](https://github.com/kubernetes/kubernetes/milestone/48) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## TL;DR + +The 1.20 release cycle is proposed as follows: + +- **Monday, September 14th**: Week 1 - Release cycle begins +- **Tuesday, Oct 6th**: Week 4 - [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **Thursday, Nov 12th**: Week 9 - [Code Freeze](../release_phases.md#code-freeze) +- **Monday, Nov 23rd**: Week 11 - [Test Freeze](../release_phases.md#test-freeze) +- **Wednesday, Dec 2nd**: Week 12 - Docs must be completed and reviewed +- **Tuesday, Dec 8th**: Week 13 - Kubernetes v1.20.0 released +- **Thursday, Dec 17th**: Week 14 - Release Retrospective + +## Timeline + +| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | +|---|---|---|---|---| +| Start of Release Cycle | Lead | Mon September 14 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Tue September 15 | | | +| Schedule finalized | Lead | Wed September 16 | | | +| Team finalized | Lead | Friday September 18 | | | +| 1.20.0-alpha.1 released | Branch Manager | Tue September 22 | week 2 | | +| Start Release Notes Draft | Release Notes Lead | Tue September 29 | week 3 | | +| **Begin [Enhancements Freeze]** (EOD PST) | Enhancements Lead | Tue October 6 | week 4 | [master-blocking], [master-informing] | +| 1.20.0-alpha.2 released | Branch Manager | Tue October 13 | week 5 | | +| 1.20.0-alpha.3 released | Branch Manager | Tue October 20 | week 6 | | +| 1.20.0-beta.0 released | Branch Manager | Tue October 27 | week 7 | | +| **Begin [Burndown]** (MWF meetings) | Lead | Mon November 2 | week 8 | [1.20-blocking], [master-blocking], [master-informing] | +| **Call for [Exceptions][Exception]** | Lead | Mon November 2 | | | +| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Mon November 2 | | | +| 1.20.0-beta.1 released | Branch Manager | Tue November 3 | | | +| Docs deadline - Open placeholder PRs | Docs Lead | Fri November 6 | | | +| **Begin [Code Freeze]** (EOD PST) | Branch Manager | Thu November 12 | week 9 | | +| Burndown Meetings daily| Lead | Mon November 16 | week 10 | | +| 1.20.0-beta.2 released | Branch Manager | Tue November 17 | | | +| **KubeCon CloudNativeCon North America Starts** | Community | Tue, November 17 | | | +| **KubeCon CloudNativeCon North America Ends** | Community | Friday, November 20 | | | +| Docs deadline - PRs ready for review | Docs Lead | Mon November 23 | week 11 | | +| **[Test Freeze]** (EOD PST) | Branch Manager | Mon November 23 | | +| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Wed December 2 | week 12 | | +| release-1.20 branch created | Branch Manager | Tue December 1 | | | +| release-1.20 jobs created | Branch Manager | Tue December 1 | | | +| 1.20.0-rc.0 released | Branch Manager | Tue December 1 | | | +| **v1.20.0 released** | Branch Manager | Tue December 8 | week 13 | | +| **[Thaw]** | Branch Manager | Tue, December 8 | | | +| Release retrospective | Community | Thu December 17 | week 14 | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[k8s120-calendar]: https://bit.ly/k8s-release-cal +[Internal Contact Info]: http://bit.ly/k8s120-contacts +[Retrospective Document]: http://bit.ly/k8s120-retro + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Thaw]: ../release_phases.md#thaw +[Test Freeze]: ../release_phases.md#test-freeze + +[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking#Summary + +[exception requests]: ../EXCEPTIONS.md [release phases document]: ../release_phases.md \ No newline at end of file diff --git a/releases/release-1.20/exceptions.yaml b/releases/release-1.20/exceptions.yaml index a7cbca3044e..75e1338233a 100644 --- a/releases/release-1.20/exceptions.yaml +++ b/releases/release-1.20/exceptions.yaml @@ -1,157 +1,157 @@ -# Exceptions requested in 1.20 -# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release -# Release Team Lead: Jeremy Rickard ([@jeremyrickard](https://www.github.com/jeremyrickard)) -# Release Team Shadows: Daniel Mangum ([@hasheddan](https://www.github.com/hasheddan)) / Nabarun Pal ([@palnabarun](https://www.github.com/palnabarun)) / -# Savitha Raghunathan ([@savitharaghunathan] (https://www.github.com/savitharaghunathan)) - -# Enhancements Freeze Exceptions requested in 1.20 -- name: "APIServer Tracing" - issue: 647 - date_requested: 2020-10-08 - date_reviewed: 2020-10-08 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/bpM9oCHdOkI" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/1458" - status: "approved" - -- name: "Different protocols in the same service definition with type=loadbalancer" - issue: 1435 - date_requested: 2020-10-08 - date_reviewed: 2020-10-08 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/nqT47EIdmDA" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2058" - status: "approved" - -- name: "Use distroless/static for Kubernetes Core Images" - issue: 1729 - date_requested: 2020-10-08 - date_reviewed: 2020-10-08 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/mYGxI8ixeTI" - pull_requests: - - "https://github.com/kubernetes/kubernetes/issues/70249", - - "https://github.com/kubernetes/kubernetes/issues/90698" - status: "approved" - -- name: "Pass cluster information to exec credential providers" - issue: 541 - date_requested: 2020-10-08 - date_reviewed: 2020-10-12 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/x75-HY7h7P4" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2023" - status: "approved" - -- name: "Expose metrics about resource requests and limits that represent the pod model" - issue: 1748 - date_requested: 2020-10-13 - date_reviewed: 2020-10-13 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/txi97KG-gg4" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/1916" - status: "approved" - -- name: "Add Scope feature to Topology Manager" - issue: 693 - date_requested: 2020-11-2 - date_reviewed: 2020-11-3 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/otE2ymBKeMA" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/1950" - status: "approved" - -- name: "Improved service account tokens" - issue: 542 - date_requested: 2020-11-2 - date_reviewed: 2020-11-3 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/VLiE7Lsy6Es" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/95667" - - "https://github.com/kubernetes/website/pull/24823" - status: "approved" - -- name: "Kubelet Credential Provider " - issue: 2133 - date_requested: 2020-11-6 - date_reviewed: 2020-11-6 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/rYXqvvt4aDI" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/94196" - - "https://github.com/kubernetes/enhancements/pull/2151" - status: "approved" - - -# Code Freeze Exceptions requested in 1.20 -- name: "Memory Manager" - issue: 1769 - date_requested: 2020-11-11 - date_reviewed: 2020-11-12 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/y327XGmo6-4" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/95479" - status: "approved" - -- name: "API Priority and Fairness" - issue: 1040 - date_requested: 2020-11-13 - date_reviewed: 2020-11-16 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/pD9jT9hh-tU" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/96527" - status: "approved" - -- name: "Built-in Defaults" - issue: 1929 - date_requested: 2020-11-12 - date_reviewed: 2020-11-13 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/eCk4Xyb58GQ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/96317" - - "https://github.com/kubernetes/kubernetes/pull/96480" - status: "approved" - -- name: "POD Resources concrete APIs" - issue: 2043 - date_requested: 2020-11-12 - date_reviewed: 2020-11-13 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/_OleZNw4J2c" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/95734" - status: "denied" - -- name: "Controller Manager Leader Migration" - issue: 991 - date_requested: 2020-11-13 - date_reviewed: 2020-11-13 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/k1n29cyN1Z8" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/96226" - - "https://github.com/kubernetes/kubernetes/pull/96541" - status: "denied" - -- name: "Runtime Class" - issue: 585 - date_requested: 2020-11-13 - date_reviewed: 2020-11-13 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/0b5SQLz2tZg" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/96551" - status: "approved" - -- name: "Credential Provider Extraction" - issue: 2133 - date_requested: 2020-11-13 - date_reviewed: 2020-11-16 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/ZC-3ne1_LnY" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/95775" - status: "denied" - -- name: "Support for maxUnavailable in StatefulSet" - issue: 961 - date_requested: 2020-11-14 - date_reviewed: 2020-11-16 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/VCn0VuBTx5w" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/82162" - status: "denied" +# Exceptions requested in 1.20 +# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release +# Release Team Lead: Jeremy Rickard ([@jeremyrickard](https://www.github.com/jeremyrickard)) +# Release Team Shadows: Daniel Mangum ([@hasheddan](https://www.github.com/hasheddan)) / Nabarun Pal ([@palnabarun](https://www.github.com/palnabarun)) / +# Savitha Raghunathan ([@savitharaghunathan] (https://www.github.com/savitharaghunathan)) + +# Enhancements Freeze Exceptions requested in 1.20 +- name: "APIServer Tracing" + issue: 647 + date_requested: 2020-10-08 + date_reviewed: 2020-10-08 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/bpM9oCHdOkI" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/1458" + status: "approved" + +- name: "Different protocols in the same service definition with type=loadbalancer" + issue: 1435 + date_requested: 2020-10-08 + date_reviewed: 2020-10-08 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/nqT47EIdmDA" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2058" + status: "approved" + +- name: "Use distroless/static for Kubernetes Core Images" + issue: 1729 + date_requested: 2020-10-08 + date_reviewed: 2020-10-08 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/mYGxI8ixeTI" + pull_requests: + - "https://github.com/kubernetes/kubernetes/issues/70249", + - "https://github.com/kubernetes/kubernetes/issues/90698" + status: "approved" + +- name: "Pass cluster information to exec credential providers" + issue: 541 + date_requested: 2020-10-08 + date_reviewed: 2020-10-12 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/x75-HY7h7P4" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2023" + status: "approved" + +- name: "Expose metrics about resource requests and limits that represent the pod model" + issue: 1748 + date_requested: 2020-10-13 + date_reviewed: 2020-10-13 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/txi97KG-gg4" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/1916" + status: "approved" + +- name: "Add Scope feature to Topology Manager" + issue: 693 + date_requested: 2020-11-2 + date_reviewed: 2020-11-3 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/otE2ymBKeMA" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/1950" + status: "approved" + +- name: "Improved service account tokens" + issue: 542 + date_requested: 2020-11-2 + date_reviewed: 2020-11-3 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/VLiE7Lsy6Es" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/95667" + - "https://github.com/kubernetes/website/pull/24823" + status: "approved" + +- name: "Kubelet Credential Provider " + issue: 2133 + date_requested: 2020-11-6 + date_reviewed: 2020-11-6 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/rYXqvvt4aDI" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/94196" + - "https://github.com/kubernetes/enhancements/pull/2151" + status: "approved" + + +# Code Freeze Exceptions requested in 1.20 +- name: "Memory Manager" + issue: 1769 + date_requested: 2020-11-11 + date_reviewed: 2020-11-12 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/y327XGmo6-4" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/95479" + status: "approved" + +- name: "API Priority and Fairness" + issue: 1040 + date_requested: 2020-11-13 + date_reviewed: 2020-11-16 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/pD9jT9hh-tU" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/96527" + status: "approved" + +- name: "Built-in Defaults" + issue: 1929 + date_requested: 2020-11-12 + date_reviewed: 2020-11-13 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/eCk4Xyb58GQ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/96317" + - "https://github.com/kubernetes/kubernetes/pull/96480" + status: "approved" + +- name: "POD Resources concrete APIs" + issue: 2043 + date_requested: 2020-11-12 + date_reviewed: 2020-11-13 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/_OleZNw4J2c" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/95734" + status: "denied" + +- name: "Controller Manager Leader Migration" + issue: 991 + date_requested: 2020-11-13 + date_reviewed: 2020-11-13 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/k1n29cyN1Z8" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/96226" + - "https://github.com/kubernetes/kubernetes/pull/96541" + status: "denied" + +- name: "Runtime Class" + issue: 585 + date_requested: 2020-11-13 + date_reviewed: 2020-11-13 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/0b5SQLz2tZg" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/96551" + status: "approved" + +- name: "Credential Provider Extraction" + issue: 2133 + date_requested: 2020-11-13 + date_reviewed: 2020-11-16 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/ZC-3ne1_LnY" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/95775" + status: "denied" + +- name: "Support for maxUnavailable in StatefulSet" + issue: 961 + date_requested: 2020-11-14 + date_reviewed: 2020-11-16 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/VCn0VuBTx5w" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/82162" + status: "denied" diff --git a/releases/release-1.20/meeting-updates/2020-11-04.md b/releases/release-1.20/meeting-updates/2020-11-04.md index df84a2aa7be..bad502fafb5 100644 --- a/releases/release-1.20/meeting-updates/2020-11-04.md +++ b/releases/release-1.20/meeting-updates/2020-11-04.md @@ -1,169 +1,169 @@ -# Meeting Updates 2020-11-04 - -Cutoff Time: 2020-11-04 15:00 UTC / 07:00 PST / 20:30 IST / 16:00 CET [TZ Map][wtb-tz-map] -Repository sync responsibility: Nabarun Pal - -> Note: The cut-off time is later than meeting time 2020-11-04 13:00UTC for this update due to this being the first time and US election related bandwidth constraints. It should be a few hours before for the next updates. - -## Enhancements - -Author: Name / Slack Handle -Current Status: Green | Yellow | Red -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: - - Alpha: - - Beta: - - Stable: - - Deprecation: - -Additional Notes: - - <!-- PLEASE REMOVE THIS IF NO ADDITIONAL NOTES ARE THERE --> - - -## CI Signal - -Author: Rob Kelty / Slack Handle -Current Status: Yellow -Notable Events: -- Flake Tracker pushed up to Github here https://github.com/RobertKielty/flake-tracker have started to solicit feedback from CI Signal team. Feedback is welcome - -- https://kubernetes.slack.com/archives/C2C40FMNF/p1604488277091500 - - [Master-blocking][ci-signal-master-blocking]:Wed Nov 4 14:57:20 GMT 2020 - Failing 0 - Flaking 4 - Passing 15 - - [Master-informing][ci-signal-master-informing]: Wed Nov 4 15:02:05 GMT 2020 - Failing 7 - Flaking 7 - Passing 9 - - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: Not yet created - - [1.20 informing][ci-signal-1.20-informing]: Note yet created - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - [No new response](https://github.com/orgs/kubernetes/projects/11#column-4212817): 3 - - [Under investigation](https://github.com/orgs/kubernetes/projects/11#column-4212819): 29 - - Observing: 16 - - Resolved: 3 - - Resolved for over two weeks: 183 - - -## Bug triage - -Author: Vlad Gorodetsky / bai -Current Status: Yellow - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 28 (-1) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 1 (0) - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 14 (-1) -Query: - - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 65 (-1) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 36 (-1) -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 43 (-1) - - -## Docs - -Author: Rey Lejano / reylejano-rxm -Current Status: Red - -Updates: - - Completed last week's merge of master into the dev-1.20 branch to keep in sync: https://github.com/kubernetes/website/pull/24771 - - This week's sync will start later today - - The dev-1.20 branch is healthy - - Docs PR stats: we are currently tracking 29 docs — 8 merged, 7 ready for review, 10 in draft, 4 needs placeholder PRs, with 8 enhancements requiring no docs - - 22 enhancement owners have not yet responded - - -## Release Notes - -Author: James Laverack / @James.Laverack -Current Status: Yellow - -Updates: - - Have a TODO on release notes for beta.1 - - Have a TODO on website release notes for alpha.3 - - Have a TODO on more release notes reviews - - alpha.3 notes have merged - -## Comms - -Author: Name / Slack Handle -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii -Current Status: Green - -Updates: - - beta.1 has been released - - Next: beta.2 is scheduled for Tuesday, November 17th - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - <!-- START HERE --> - - -## Release Lead - -Author: Nabarun Pal / @palnabarun - -Timeline Review: - - Doc Placeholder: Friday, Nov 6th: Week 8 - - Code Freeze: Thursday, Nov 12th: Week 9 - - Docs Deadline: Monday, Nov 30: Week 12 - - Release: Tuesday, Dec 8th: Week 13 -Updates: - - Burndown meetings have started this week. This is the first one. - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) -Updates: - - <!-- START HERE --> - - -## Program Management - -Author: Lauri Apple / Slack Handle -Updates: - - <!-- START HERE --> - - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[wtb-tz-map]: https://www.worldtimebuddy.com/?qm=1&lid=100,8,30,12&h=8&date=2020-11-4&sln=7-8&hf=0 -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-04 + +Cutoff Time: 2020-11-04 15:00 UTC / 07:00 PST / 20:30 IST / 16:00 CET [TZ Map][wtb-tz-map] +Repository sync responsibility: Nabarun Pal + +> Note: The cut-off time is later than meeting time 2020-11-04 13:00UTC for this update due to this being the first time and US election related bandwidth constraints. It should be a few hours before for the next updates. + +## Enhancements + +Author: Name / Slack Handle +Current Status: Green | Yellow | Red +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: + - Alpha: + - Beta: + - Stable: + - Deprecation: + +Additional Notes: + - <!-- PLEASE REMOVE THIS IF NO ADDITIONAL NOTES ARE THERE --> + + +## CI Signal + +Author: Rob Kelty / Slack Handle +Current Status: Yellow +Notable Events: +- Flake Tracker pushed up to Github here https://github.com/RobertKielty/flake-tracker have started to solicit feedback from CI Signal team. Feedback is welcome + +- https://kubernetes.slack.com/archives/C2C40FMNF/p1604488277091500 + + [Master-blocking][ci-signal-master-blocking]:Wed Nov 4 14:57:20 GMT 2020 + Failing 0 + Flaking 4 + Passing 15 + - [Master-informing][ci-signal-master-informing]: Wed Nov 4 15:02:05 GMT 2020 + Failing 7 + Flaking 7 + Passing 9 + + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: Not yet created + - [1.20 informing][ci-signal-1.20-informing]: Note yet created + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + - [No new response](https://github.com/orgs/kubernetes/projects/11#column-4212817): 3 + - [Under investigation](https://github.com/orgs/kubernetes/projects/11#column-4212819): 29 + - Observing: 16 + - Resolved: 3 + - Resolved for over two weeks: 183 + + +## Bug triage + +Author: Vlad Gorodetsky / bai +Current Status: Yellow + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 28 (-1) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 1 (0) + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 14 (-1) +Query: + - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 65 (-1) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 36 (-1) +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 43 (-1) + + +## Docs + +Author: Rey Lejano / reylejano-rxm +Current Status: Red + +Updates: + - Completed last week's merge of master into the dev-1.20 branch to keep in sync: https://github.com/kubernetes/website/pull/24771 + - This week's sync will start later today + - The dev-1.20 branch is healthy + - Docs PR stats: we are currently tracking 29 docs — 8 merged, 7 ready for review, 10 in draft, 4 needs placeholder PRs, with 8 enhancements requiring no docs + - 22 enhancement owners have not yet responded + + +## Release Notes + +Author: James Laverack / @James.Laverack +Current Status: Yellow + +Updates: + - Have a TODO on release notes for beta.1 + - Have a TODO on website release notes for alpha.3 + - Have a TODO on more release notes reviews + - alpha.3 notes have merged + +## Comms + +Author: Name / Slack Handle +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii +Current Status: Green + +Updates: + - beta.1 has been released + - Next: beta.2 is scheduled for Tuesday, November 17th + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - <!-- START HERE --> + + +## Release Lead + +Author: Nabarun Pal / @palnabarun + +Timeline Review: + - Doc Placeholder: Friday, Nov 6th: Week 8 + - Code Freeze: Thursday, Nov 12th: Week 9 + - Docs Deadline: Monday, Nov 30: Week 12 + - Release: Tuesday, Dec 8th: Week 13 +Updates: + - Burndown meetings have started this week. This is the first one. + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) +Updates: + - <!-- START HERE --> + + +## Program Management + +Author: Lauri Apple / Slack Handle +Updates: + - <!-- START HERE --> + + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[wtb-tz-map]: https://www.worldtimebuddy.com/?qm=1&lid=100,8,30,12&h=8&date=2020-11-4&sln=7-8&hf=0 +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/2020-11-06.md b/releases/release-1.20/meeting-updates/2020-11-06.md index af01466c2e7..4ef10f91488 100644 --- a/releases/release-1.20/meeting-updates/2020-11-06.md +++ b/releases/release-1.20/meeting-updates/2020-11-06.md @@ -1,173 +1,173 @@ -# Meeting Updates 2020-11-06 - -Cutoff Time: 2020-11-06 15:00 UTC / 07:00 PST / 20:30 IST / 16:00 CET [TZ Map][wtb-tz-map-06] -Repository sync responsibility: Jeremy Rickard - -## Enhancements - -Author: Name / Slack Handle -Current Status: Green | Yellow | Red -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: - - Alpha: - - Beta: - - Stable: - - Deprecation: - -Additional Notes: - - <!-- PLEASE REMOVE THIS IF NO ADDITIONAL NOTES ARE THERE --> - - -## CI Signal - -Author: Robert Kielty / @RobKielty -Current Status: Green | Yellow | Red - -Notable Events: -Inital review of flake-tracker thanks to Joyce and Eddie for their review feedback and help! - - - [Master-blocking](https://testgrid.k8s.io/sig-release-master-blocking): - **Fri Nov 6 15:55:22 GMT 2020** -Job(s) Failing 0 -Job(s) Flaking 5 -Jobs Passing 14 -Total Jobs 19 - - [Master-informing](https://testgrid.k8s.io/sig-release-master-informing): -**Fri Nov 6 16:10:22 GMT 2020** -Job(s) Failing8 -Job(s) Flaking 8 -Jobs Passing 6 -Total Jobs 22 - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: - - [1.20 informing][ci-signal-1.20-informing]: - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - No new response: 5 - - Under investigation: 28 - - Observing: 19 - - Resolved: 3 - - Resolved for over two weeks: 183 - - -### Bug triage - -Author: Derrik Campau / @dcampau -Current Status: Yellow -Trends: Current count (diff since last mtg) (diff since last Monday) - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 29 (+1) (0) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 1 (0) (0) - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 14 (0) (-1) -Query: - - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 56 (-9) (-8) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) (0) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 29 (-7) (-6) -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 43 (0) (-1) - - -## Docs - -Author: Anna Jung / @annajung -Current Status: Red - -Updates: - - Placeholder deadline is TODAY! - - Completed this week's [master sync against dev-1.20](https://github.com/kubernetes/website/pull/24889) branch - - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy - - Docs PR stats: we are currently tracking **53** docs out of 58 - - merged: 10 - - ready for review: 7 - - in draft: 23 - - no docs required: 13 - - **unknown: 5** - - No responses are all from Sig Network, re-pinged in the previous thread to remind them about the deadline today - - On Monday, will remove enhancements from the release that didn't make the deadline - - Shoutout ✨ to the release lead team for helping to reach out to the sigs yesterday! - - -## Release Notes - -Author: Celeste Horgan / @celestehorgan -Current Status: Yellow - -Updates: - - Ran `krel` for beta-1 and alpha-1: - - beta-1: https://github.com/kubernetes/sig-release/pull/1323 - - alpha-1: https://github.com/kubernetes-sigs/release-notes/pull/209 - - Logged a bug w.r.t SSH urls: https://github.com/kubernetes/release/pull/1690 - - Still yellow due to relnote reviews ongoing, but... greenish yellow? - - -## Comms - -Author: Joseph Sandoval / @j-dawg -Current Status: Green - -Updates: - - Release blog draft in progress. Comms team will be reaching out to KEP assignees for feature blogs. - - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii -Current Status: Green - -Updates: - - Next: beta.2 is scheduled for Tuesday, November 17th - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - <!-- START HERE --> - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple -Updates: - - <!-- START HERE --> - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[wtb-tz-map]: https://www.worldtimebuddy.com/?qm=1&lid=100,8,30,12&h=8&date=2020-11-4&sln=7-8&hf=0 -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-06 + +Cutoff Time: 2020-11-06 15:00 UTC / 07:00 PST / 20:30 IST / 16:00 CET [TZ Map][wtb-tz-map-06] +Repository sync responsibility: Jeremy Rickard + +## Enhancements + +Author: Name / Slack Handle +Current Status: Green | Yellow | Red +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: + - Alpha: + - Beta: + - Stable: + - Deprecation: + +Additional Notes: + - <!-- PLEASE REMOVE THIS IF NO ADDITIONAL NOTES ARE THERE --> + + +## CI Signal + +Author: Robert Kielty / @RobKielty +Current Status: Green | Yellow | Red + +Notable Events: +Inital review of flake-tracker thanks to Joyce and Eddie for their review feedback and help! + + - [Master-blocking](https://testgrid.k8s.io/sig-release-master-blocking): + **Fri Nov 6 15:55:22 GMT 2020** +Job(s) Failing 0 +Job(s) Flaking 5 +Jobs Passing 14 +Total Jobs 19 + - [Master-informing](https://testgrid.k8s.io/sig-release-master-informing): +**Fri Nov 6 16:10:22 GMT 2020** +Job(s) Failing8 +Job(s) Flaking 8 +Jobs Passing 6 +Total Jobs 22 + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: + - [1.20 informing][ci-signal-1.20-informing]: + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + - No new response: 5 + - Under investigation: 28 + - Observing: 19 + - Resolved: 3 + - Resolved for over two weeks: 183 + + +### Bug triage + +Author: Derrik Campau / @dcampau +Current Status: Yellow +Trends: Current count (diff since last mtg) (diff since last Monday) + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 29 (+1) (0) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 1 (0) (0) + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 14 (0) (-1) +Query: + - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 56 (-9) (-8) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) (0) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 29 (-7) (-6) +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 43 (0) (-1) + + +## Docs + +Author: Anna Jung / @annajung +Current Status: Red + +Updates: + - Placeholder deadline is TODAY! + - Completed this week's [master sync against dev-1.20](https://github.com/kubernetes/website/pull/24889) branch + - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy + - Docs PR stats: we are currently tracking **53** docs out of 58 + - merged: 10 + - ready for review: 7 + - in draft: 23 + - no docs required: 13 + - **unknown: 5** + - No responses are all from Sig Network, re-pinged in the previous thread to remind them about the deadline today + - On Monday, will remove enhancements from the release that didn't make the deadline + - Shoutout ✨ to the release lead team for helping to reach out to the sigs yesterday! + + +## Release Notes + +Author: Celeste Horgan / @celestehorgan +Current Status: Yellow + +Updates: + - Ran `krel` for beta-1 and alpha-1: + - beta-1: https://github.com/kubernetes/sig-release/pull/1323 + - alpha-1: https://github.com/kubernetes-sigs/release-notes/pull/209 + - Logged a bug w.r.t SSH urls: https://github.com/kubernetes/release/pull/1690 + - Still yellow due to relnote reviews ongoing, but... greenish yellow? + + +## Comms + +Author: Joseph Sandoval / @j-dawg +Current Status: Green + +Updates: + - Release blog draft in progress. Comms team will be reaching out to KEP assignees for feature blogs. + + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii +Current Status: Green + +Updates: + - Next: beta.2 is scheduled for Tuesday, November 17th + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - <!-- START HERE --> + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple +Updates: + - <!-- START HERE --> + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[wtb-tz-map]: https://www.worldtimebuddy.com/?qm=1&lid=100,8,30,12&h=8&date=2020-11-4&sln=7-8&hf=0 +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/2020-11-09.md b/releases/release-1.20/meeting-updates/2020-11-09.md index 324377e1c71..2a2036f1f28 100644 --- a/releases/release-1.20/meeting-updates/2020-11-09.md +++ b/releases/release-1.20/meeting-updates/2020-11-09.md @@ -1,874 +1,874 @@ -# Meeting Updates 2020-11-09 - -Cutoff Time: 2020-11-09 09:30:00 PST (other times)[https://everytimezone.com/s/702e8272] - -Repository sync responsibility: Nabarun Pal / @palnabarun - -## Enhancements - -Author: Kirsten Garrison / @oikiki - -Current Status: Green - -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: 52 - - At Risk: 1 - - Alpha: 18 - - Beta: 17 - - Stable: 15 - - Deprecation: 2 - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - -## CI Signal - -Author: Robert Kielty / @RobKielty - -Current Status: Yellow - -Notable Events: - - [Master-blocking][ci-signal-master-blocking]: - - [Master-informing][ci-signal-master-informing]: - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: - - [1.20 informing][ci-signal-1.20-informing]: - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - No new response: 3 - - Under investigation: 27 - - Observing: 21 - - Resolved: 3 - - Resolved for over two weeks: 183 - -### [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) at Nov 09, 2020 16:07 UTC -Out of 19 jobs -<span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 15**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 0**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 4**</span> -#### Passing Jobs -<details> -<summary>Expand 15 passing Jobs</summary> - -##### [bazel-build-master]() - -##### [bazel-test-master]() - -##### [build-master]() - -##### [build-master-fast]() - -##### [conformance-ga-only]() - -##### [gce-cos-master-alpha-features]() - -##### [gce-cos-master-default]() - -##### [gce-cos-master-reboot]() - -##### [gce-device-plugin-gpu-master]() - -##### [gci-gce-ingress]() - -##### [integration-master]() - -##### [kind-master-parallel]() - -##### [node-kubelet-master]() - -##### [skew-cluster-latest-kubectl-stable1-gce]() - -##### [verify-master]() - -</details> - -#### Flaking Jobs -<details> -<summary>Expand 4 Flaking Jobs</summary> - -##### [Conformance - GCE - master](https://testgrid.k8s.io/sig-release-master-blocking#Conformance+-+GCE+-+master&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] PreemptionExecutionPath runs ReplicaSets to verify preemption running path [Conformance] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance] [] - -</details> - -##### [gce-cos-master-scalability-100](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-scalability-100&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner ClusterLoaderV2 [] - -1. job-owner ClusterLoaderV2.access-tokens overall (testing/access-tokens/config.yaml) [] - -1. job-owner ClusterLoaderV2.access-tokens: [step: 10] Collecting measurements [] - -</details> - -##### [gce-ubuntu-master-containerd](https://testgrid.k8s.io/sig-release-master-blocking#gce-ubuntu-master-containerd&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should run the lifecycle of a Deployment [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a configMap. [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] EndpointSlice should create Endpoints and EndpointSlices for Pods matching a Service [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume [] - -1. [sig-node] Kubernetes e2e suite.[sig-node] RuntimeClass should run a Pod requesting a RuntimeClass with a configured handler [NodeFeature:RuntimeHandler] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: udp [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PV and a pre-bound PVC: test write access [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PVC and a pre-bound PV: test write access [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a custom resource. [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] kubelet [k8s.io] [sig-node] Clean up pods on node kubelet should be able to delete 10 pods per node in 1m0s. [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: udp [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: http [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] EmptyDir volumes should support (root,0644,default) [LinuxOnly] [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a service. [Conformance] [] - -</details> - -##### [kind-ipv6-master-parallel](https://testgrid.k8s.io/sig-release-master-blocking#kind-ipv6-master-parallel&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] KubeProxy should set TCP CLOSE_WAIT timeout [Privileged] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PVC Protection Verify that scheduling of a pod that uses PVC that is being deleted fails and the pod becomes Unschedulable [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Subpath Container restart should verify that container can restart successfully after configmaps modified [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate pod and apply defaults after mutation [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] LimitRange should create a LimitRange with defaults and ensure pod has those defaults applied. [Conformance] [] - -</details> - -</details> - -#### Failing Jobs -<details> -<summary>Expand 0 Failing Jobs</summary> - -</details> - -### [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) at Nov 09, 2020 16:07 UTC -Out of 19 jobs -<span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 9**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 7**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 3**</span> -#### Passing Jobs -<details> -<summary>Expand 9 passing Jobs</summary> - -##### [build-master-canary]() - -##### [gce-cos-master-serial]() - -##### [gce-cos-master-slow]() - -##### [gce-ubuntu-master-default]() - -##### [kubeadm-kinder-latest]() - -##### [kubeadm-kinder-latest-on-1-19]() - -##### [kubeadm-kinder-upgrade-1-19-latest]() - -##### [post-kubernetes-push-image-pause]() - -##### [post-release-push-image-vulndash]() - -</details> - -#### Flaking Jobs -<details> -<summary>Expand 3 Flaking Jobs</summary> - -##### [bazel-build-master](https://testgrid.k8s.io/sig-release-master-informing#bazel-build-master&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -</details> - -##### [build-master-no-bootstrap](https://testgrid.k8s.io/sig-release-master-informing#build-master-no-bootstrap&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -</details> - -##### [gce-master-scale-performance](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-performance&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner ClusterLoaderV2 [] - -1. job-owner ClusterLoaderV2.load overall (testing/load/config.yaml) [] - -1. job-owner ClusterLoaderV2.load: [step: 20] Waiting for objects to become scaled [] - -1. job-owner ClusterLoaderV2.load: [step: 25] Collecting measurements [] - -</details> - -</details> - -#### Failing Jobs -<details> -<summary>Expand 7 Failing Jobs</summary> - -##### [Conformance - OpenStack]() -<details> -<summary>Expand failed tests</summary> - -1. job-owner DumpClusterLogs [] - -1. job-owner Test [] - -1. job-owner Timeout [] - -1. job-owner Overall [] - -</details> - -##### [capa-conformance-v1alpha3-k8s-master]() -<details> -<summary>Expand failed tests</summary> - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should update pod when spec was updated and update strategy is RollingUpdate [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance] [1] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should retry creating failed daemon pods [Conformance] [] - -1. job-owner Overall [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for node-pod communication: udp [LinuxOnly] [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Runtime blackbox test on terminated container should report termination message [LinuxOnly] as empty when pod succeeds and TerminationMessagePolicy FallbackToLogsOnError is set [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for node-pod communication: http [LinuxOnly] [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity work for service with type clusterIP [LinuxOnly] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart http hook properly [NodeConformance] [Conformance] [] - -1. job-owner capa-e2e.conformance tests conformance [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should run and stop simple daemon [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should run and stop complex daemon [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should update pod when spec was updated and update strategy is RollingUpdate [Conformance] [1] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance] [2] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [1] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Kubelet when scheduling a busybox command in a pod should print the output to logs [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should fail substituting values in a volume subpath with absolute path [sig-storage][Slow] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Garbage collector should orphan pods created by rc if delete options say so [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should rollback without unnecessary restarts [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should be restarted with a exec "cat /tmp/health" liveness probe [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu request [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap should be consumable from pods in volume with mappings as non-root [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should set DefaultMode on files [LinuxOnly] [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow composing env vars into new env vars [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's cpu limit [NodeConformance] [Conformance] [] - -</details> - -##### [capg-conformance-v1alpha3-k8s-master]() -<details> -<summary>Expand failed tests</summary> - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. job-owner Overall [] - -</details> - -##### [gce-master-scale-correctness]() -<details> -<summary>Expand failed tests</summary> - -1. job-owner Test [] - -1. job-owner Overall [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should only allow access from service loadbalancer source ranges [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide podname only [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] ESIPP [Slow] should work for type=LoadBalancer [] - -1. job-owner Timeout [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume [] - -</details> - -##### [gce-windows-1909-master]() -<details> -<summary>Expand failed tests</summary> - -1. [sig-windows] Kubernetes e2e suite.[sig-windows] Services should be able to create a functioning NodePort service for Windows [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to create a functioning NodePort service [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's memory limit [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand Verify if offline PVC expansion works [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand should resize volume when PVC is edited while pod is using it [] - -1. [sig-storage] Kubernetes e2e suite.[k8s.io] Variable Expansion should allow substituting values in a volume subpath [sig-storage] [Conformance] [] - -1. job-owner [] - -1. job-owner Up [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Update Demo should scale a replication controller [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPath should support r/w [NodeConformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu limit [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's memory request [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Runtime blackbox test when starting a container that exits should run with the expected status [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with different stored version [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny custom resource creation, update and deletion [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate pod and apply defaults after mutation [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should unconditionally reject operations on fail closed webhook [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Service endpoints latency should not be very high [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers if init containers fail on a RestartAlways pod [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow composing env vars into new env vars [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should not be able to mutate or prevent deletion of webhook configuration objects [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should delete old replica sets [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute prestop http hook properly [NodeConformance] [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should honor timeout [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should delete a job [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide node allocatable (memory) as default memory limit if the limit is not set [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support proportional scaling [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Secrets should be consumable from pods in env vars [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should adopt matching pods on creation and release no longer matching pods [Conformance] [] - -1. job-owner DumpClusterLogs [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart exec hook properly [NodeConformance] [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should include webhook resources in discovery documents [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should serve a basic image on each replica with a public image [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should provide DNS for ExternalName services [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve a basic endpoint from pods [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[sig-node] ConfigMap should be consumable via environment variable [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap updates should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu request [NodeConformance] [Conformance] [] - -1. job-owner Timeout [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should use the image defaults if command and args are blank [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's cpu request [NodeConformance] [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Events should be sent by kubelets and the scheduler about pods scheduling and running [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[sig-node] ConfigMap should be consumable via the environment [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected secret should be consumable from pods in volume [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should cap back-off at MaxContainerBackOff [Slow][NodeConformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl expose should create services for rc [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[sig-node] Downward API should provide pod name, namespace and IP address as env vars [NodeConformance] [Conformance] [] - -1. job-owner diffResources [] - -1. job-owner Overall [] - -</details> - -##### [gce-windows-2019-master]() -<details> -<summary>Expand failed tests</summary> - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] - -1. [sig-windows] Kubernetes e2e suite.[sig-windows] Services should be able to create a functioning NodePort service for Windows [] - -1. job-owner [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand Verify if offline PVC expansion works [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand should resize volume when PVC is edited while pod is using it [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. job-owner Up [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should have their auto-restart back-off timer reset on image update [Slow][NodeConformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap should be consumable from pods in volume with mappings as non-root [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to create a functioning NodePort service [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's memory request [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be consumable in multiple volumes in a pod [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default command and arguments [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default arguments (docker cmd) [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers if init containers fail on a RestartAlways pod [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a /healthz http liveness probe [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support rollover [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve multiport endpoints from pods [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should update labels on modification [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be able to mount in a volume regardless of a different secret existing with same name in different namespace [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support proportional scaling [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should be restarted with a exec "cat /tmp/health" liveness probe [NodeConformance] [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should fail substituting values in a volume subpath with backticks [sig-storage][Slow] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart exec hook properly [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Kubelet when scheduling a busybox command that always fails in a pod should have an terminated reason [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should be submitted and removed [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should delete old replica sets [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve a basic endpoint from pods [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[sig-node] ConfigMap should be consumable via environment variable [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] - -1. job-owner diffResources [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should adopt matching pods on creation [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow substituting values in a container's args [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected secret should be consumable from pods in volume [NodeConformance] [Conformance] [] - -1. [sig-windows] Kubernetes e2e suite.[sig-windows] Windows volume mounts check volume mount permissions container should have readOnly permissions on hostMapPath [] - -1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers and fail the pod if init containers fail on a RestartNever pod [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should provide DNS for pods for Subdomain [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to ClusterIP [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets optional updates should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-windows] Kubernetes e2e suite.[sig-windows] Hybrid cluster network for all supported CNIs should have stable networking for Linux and Windows pods [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Proxy version v1 should proxy through a service and a pod [Conformance] [] - -1. job-owner Overall [] - -</details> - -##### [node-kubelet-features-master]() -<details> -<summary>Expand failed tests</summary> - -1. job-owner Node Tests [runner] [] - -1. job-owner Overall [] - -1. [sig-node] E2eNode Suite.[sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN][NodeFeature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, hostname is shortname [cos-stable1] [] - -1. [sig-node] E2eNode Suite.[sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN][NodeFeature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, hostname is shortname [cos-stable2] [] - -1. [sig-node] E2eNode Suite.[sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN][NodeFeature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, hostname is shortname [ubuntu] [] - -1. [sig-node] E2eNode Suite.[sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN][NodeFeature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, when setHostnameAsFQDN is set to true, the FQDN is set as hostname [cos-stable1] [] - -1. [sig-node] E2eNode Suite.[sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN][NodeFeature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, when setHostnameAsFQDN is set to true, the FQDN is set as hostname [cos-stable2] [] - -1. [sig-node] E2eNode Suite.[sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN][NodeFeature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, when setHostnameAsFQDN is set to true, the FQDN is set as hostname [ubuntu] [] - -1. job-owner E2eNode Suite.[k8s.io] Security Context when creating a pod in the host PID namespace should not show its pid in the non-hostpid containers [NodeFeature:HostAccess] [cos-stable1] [] - -</details> - -</details> - - - -## Bug triage - -Author: Sayan Chowdhury (@yudocaa) - -Current Status: Red - -Trends: Current count (diff since last mtg) (diff since last Monday) - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 28 (-1) (-1) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 1 (0) (0) - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 13 (-1) (-2) - -Query: - - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 55 (-1) (-11) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) (0) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 29 (0) (-8) - -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 42 (-1) (-2) - - -## Docs - -Author: Kristin Martin / (@kcmartin) - -Current Status: Green - -Updates: - - Docs Placeholder deadline was Friday - - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy - - Docs PR stats: we are currently tracking **53** enhancements out of 53 - - merged: 10 - - ready for review: 8 - - in draft: 27 - - no docs required: 13 - - -## Release Notes - -Author: Wilson Husin / @wilsonehusin - -Current Status: Yellow - -Updates: - - beta-1 was merged - - reviews to come - -## Comms - -Author: Joseph Sandoval / @j-dawg - -Current Status: Green - -Updates: -Release blog in progress with first draft expected 11/23 for CNCF review. -Feature blogs KEP assignee outreach for collaboration in progress. -Coordination still needed to confirm with CNCF for webinar and blackout week. - - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii - -Current Status: Green - -Updates: - - The Code Freeze is staring on Thursday (November 12th) - - beta.2 is scheduled for the next Tuesday (November 17th) - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - Pinged Josh on the shadowing template issue and need to follow up https://github.com/kubernetes/sig-release/issues/688 - - Reached out to sig-contribex to determine best next steps to follow up on shadows looking for Kubernetes getting started content. We have https://www.kubernetes.dev/docs/guide/ and there will be a "New Contributor Workshop" from sig-contribex in the 1.21 timeframe. I will raise an issue to track this for 1.21. - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple / @Lauri Apple - -Updates: - - <!-- START HERE --> - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-09 + +Cutoff Time: 2020-11-09 09:30:00 PST (other times)[https://everytimezone.com/s/702e8272] + +Repository sync responsibility: Nabarun Pal / @palnabarun + +## Enhancements + +Author: Kirsten Garrison / @oikiki + +Current Status: Green + +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: 52 + - At Risk: 1 + - Alpha: 18 + - Beta: 17 + - Stable: 15 + - Deprecation: 2 + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + +## CI Signal + +Author: Robert Kielty / @RobKielty + +Current Status: Yellow + +Notable Events: + - [Master-blocking][ci-signal-master-blocking]: + - [Master-informing][ci-signal-master-informing]: + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: + - [1.20 informing][ci-signal-1.20-informing]: + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + - No new response: 3 + - Under investigation: 27 + - Observing: 21 + - Resolved: 3 + - Resolved for over two weeks: 183 + +### [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) at Nov 09, 2020 16:07 UTC +Out of 19 jobs +<span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 15**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 0**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 4**</span> +#### Passing Jobs +<details> +<summary>Expand 15 passing Jobs</summary> + +##### [bazel-build-master]() + +##### [bazel-test-master]() + +##### [build-master]() + +##### [build-master-fast]() + +##### [conformance-ga-only]() + +##### [gce-cos-master-alpha-features]() + +##### [gce-cos-master-default]() + +##### [gce-cos-master-reboot]() + +##### [gce-device-plugin-gpu-master]() + +##### [gci-gce-ingress]() + +##### [integration-master]() + +##### [kind-master-parallel]() + +##### [node-kubelet-master]() + +##### [skew-cluster-latest-kubectl-stable1-gce]() + +##### [verify-master]() + +</details> + +#### Flaking Jobs +<details> +<summary>Expand 4 Flaking Jobs</summary> + +##### [Conformance - GCE - master](https://testgrid.k8s.io/sig-release-master-blocking#Conformance+-+GCE+-+master&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] PreemptionExecutionPath runs ReplicaSets to verify preemption running path [Conformance] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance] [] + +</details> + +##### [gce-cos-master-scalability-100](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-scalability-100&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner ClusterLoaderV2 [] + +1. job-owner ClusterLoaderV2.access-tokens overall (testing/access-tokens/config.yaml) [] + +1. job-owner ClusterLoaderV2.access-tokens: [step: 10] Collecting measurements [] + +</details> + +##### [gce-ubuntu-master-containerd](https://testgrid.k8s.io/sig-release-master-blocking#gce-ubuntu-master-containerd&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should run the lifecycle of a Deployment [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a configMap. [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] EndpointSlice should create Endpoints and EndpointSlices for Pods matching a Service [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume [] + +1. [sig-node] Kubernetes e2e suite.[sig-node] RuntimeClass should run a Pod requesting a RuntimeClass with a configured handler [NodeFeature:RuntimeHandler] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: udp [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PV and a pre-bound PVC: test write access [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PVC and a pre-bound PV: test write access [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a custom resource. [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] kubelet [k8s.io] [sig-node] Clean up pods on node kubelet should be able to delete 10 pods per node in 1m0s. [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: udp [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: http [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] EmptyDir volumes should support (root,0644,default) [LinuxOnly] [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a service. [Conformance] [] + +</details> + +##### [kind-ipv6-master-parallel](https://testgrid.k8s.io/sig-release-master-blocking#kind-ipv6-master-parallel&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] KubeProxy should set TCP CLOSE_WAIT timeout [Privileged] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PVC Protection Verify that scheduling of a pod that uses PVC that is being deleted fails and the pod becomes Unschedulable [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Subpath Container restart should verify that container can restart successfully after configmaps modified [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate pod and apply defaults after mutation [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] LimitRange should create a LimitRange with defaults and ensure pod has those defaults applied. [Conformance] [] + +</details> + +</details> + +#### Failing Jobs +<details> +<summary>Expand 0 Failing Jobs</summary> + +</details> + +### [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) at Nov 09, 2020 16:07 UTC +Out of 19 jobs +<span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 9**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 7**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 3**</span> +#### Passing Jobs +<details> +<summary>Expand 9 passing Jobs</summary> + +##### [build-master-canary]() + +##### [gce-cos-master-serial]() + +##### [gce-cos-master-slow]() + +##### [gce-ubuntu-master-default]() + +##### [kubeadm-kinder-latest]() + +##### [kubeadm-kinder-latest-on-1-19]() + +##### [kubeadm-kinder-upgrade-1-19-latest]() + +##### [post-kubernetes-push-image-pause]() + +##### [post-release-push-image-vulndash]() + +</details> + +#### Flaking Jobs +<details> +<summary>Expand 3 Flaking Jobs</summary> + +##### [bazel-build-master](https://testgrid.k8s.io/sig-release-master-informing#bazel-build-master&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +</details> + +##### [build-master-no-bootstrap](https://testgrid.k8s.io/sig-release-master-informing#build-master-no-bootstrap&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +</details> + +##### [gce-master-scale-performance](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-performance&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner ClusterLoaderV2 [] + +1. job-owner ClusterLoaderV2.load overall (testing/load/config.yaml) [] + +1. job-owner ClusterLoaderV2.load: [step: 20] Waiting for objects to become scaled [] + +1. job-owner ClusterLoaderV2.load: [step: 25] Collecting measurements [] + +</details> + +</details> + +#### Failing Jobs +<details> +<summary>Expand 7 Failing Jobs</summary> + +##### [Conformance - OpenStack]() +<details> +<summary>Expand failed tests</summary> + +1. job-owner DumpClusterLogs [] + +1. job-owner Test [] + +1. job-owner Timeout [] + +1. job-owner Overall [] + +</details> + +##### [capa-conformance-v1alpha3-k8s-master]() +<details> +<summary>Expand failed tests</summary> + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should update pod when spec was updated and update strategy is RollingUpdate [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance] [1] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should retry creating failed daemon pods [Conformance] [] + +1. job-owner Overall [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for node-pod communication: udp [LinuxOnly] [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Runtime blackbox test on terminated container should report termination message [LinuxOnly] as empty when pod succeeds and TerminationMessagePolicy FallbackToLogsOnError is set [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for node-pod communication: http [LinuxOnly] [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity work for service with type clusterIP [LinuxOnly] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart http hook properly [NodeConformance] [Conformance] [] + +1. job-owner capa-e2e.conformance tests conformance [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should run and stop simple daemon [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should run and stop complex daemon [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should update pod when spec was updated and update strategy is RollingUpdate [Conformance] [1] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance] [2] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [1] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Kubelet when scheduling a busybox command in a pod should print the output to logs [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should fail substituting values in a volume subpath with absolute path [sig-storage][Slow] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Garbage collector should orphan pods created by rc if delete options say so [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should rollback without unnecessary restarts [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should be restarted with a exec "cat /tmp/health" liveness probe [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu request [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap should be consumable from pods in volume with mappings as non-root [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should set DefaultMode on files [LinuxOnly] [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow composing env vars into new env vars [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's cpu limit [NodeConformance] [Conformance] [] + +</details> + +##### [capg-conformance-v1alpha3-k8s-master]() +<details> +<summary>Expand failed tests</summary> + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. job-owner Overall [] + +</details> + +##### [gce-master-scale-correctness]() +<details> +<summary>Expand failed tests</summary> + +1. job-owner Test [] + +1. job-owner Overall [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should only allow access from service loadbalancer source ranges [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide podname only [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] ESIPP [Slow] should work for type=LoadBalancer [] + +1. job-owner Timeout [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume [] + +</details> + +##### [gce-windows-1909-master]() +<details> +<summary>Expand failed tests</summary> + +1. [sig-windows] Kubernetes e2e suite.[sig-windows] Services should be able to create a functioning NodePort service for Windows [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to create a functioning NodePort service [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's memory limit [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand Verify if offline PVC expansion works [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand should resize volume when PVC is edited while pod is using it [] + +1. [sig-storage] Kubernetes e2e suite.[k8s.io] Variable Expansion should allow substituting values in a volume subpath [sig-storage] [Conformance] [] + +1. job-owner [] + +1. job-owner Up [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Update Demo should scale a replication controller [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPath should support r/w [NodeConformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu limit [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's memory request [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Runtime blackbox test when starting a container that exits should run with the expected status [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with different stored version [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny custom resource creation, update and deletion [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate pod and apply defaults after mutation [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should unconditionally reject operations on fail closed webhook [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Service endpoints latency should not be very high [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers if init containers fail on a RestartAlways pod [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow composing env vars into new env vars [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should not be able to mutate or prevent deletion of webhook configuration objects [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should delete old replica sets [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute prestop http hook properly [NodeConformance] [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should honor timeout [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should delete a job [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide node allocatable (memory) as default memory limit if the limit is not set [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support proportional scaling [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Secrets should be consumable from pods in env vars [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should adopt matching pods on creation and release no longer matching pods [Conformance] [] + +1. job-owner DumpClusterLogs [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart exec hook properly [NodeConformance] [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should include webhook resources in discovery documents [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should serve a basic image on each replica with a public image [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should provide DNS for ExternalName services [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve a basic endpoint from pods [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[sig-node] ConfigMap should be consumable via environment variable [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap updates should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu request [NodeConformance] [Conformance] [] + +1. job-owner Timeout [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should use the image defaults if command and args are blank [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's cpu request [NodeConformance] [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Events should be sent by kubelets and the scheduler about pods scheduling and running [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[sig-node] ConfigMap should be consumable via the environment [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected secret should be consumable from pods in volume [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should cap back-off at MaxContainerBackOff [Slow][NodeConformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl expose should create services for rc [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[sig-node] Downward API should provide pod name, namespace and IP address as env vars [NodeConformance] [Conformance] [] + +1. job-owner diffResources [] + +1. job-owner Overall [] + +</details> + +##### [gce-windows-2019-master]() +<details> +<summary>Expand failed tests</summary> + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] + +1. [sig-windows] Kubernetes e2e suite.[sig-windows] Services should be able to create a functioning NodePort service for Windows [] + +1. job-owner [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand Verify if offline PVC expansion works [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand should resize volume when PVC is edited while pod is using it [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. job-owner Up [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should have their auto-restart back-off timer reset on image update [Slow][NodeConformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap should be consumable from pods in volume with mappings as non-root [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to create a functioning NodePort service [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's memory request [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be consumable in multiple volumes in a pod [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default command and arguments [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default arguments (docker cmd) [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers if init containers fail on a RestartAlways pod [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a /healthz http liveness probe [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support rollover [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve multiport endpoints from pods [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should update labels on modification [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be able to mount in a volume regardless of a different secret existing with same name in different namespace [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support proportional scaling [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should be restarted with a exec "cat /tmp/health" liveness probe [NodeConformance] [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should fail substituting values in a volume subpath with backticks [sig-storage][Slow] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart exec hook properly [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Kubelet when scheduling a busybox command that always fails in a pod should have an terminated reason [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should be submitted and removed [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should delete old replica sets [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve a basic endpoint from pods [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[sig-node] ConfigMap should be consumable via environment variable [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] + +1. job-owner diffResources [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should adopt matching pods on creation [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow substituting values in a container's args [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected secret should be consumable from pods in volume [NodeConformance] [Conformance] [] + +1. [sig-windows] Kubernetes e2e suite.[sig-windows] Windows volume mounts check volume mount permissions container should have readOnly permissions on hostMapPath [] + +1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers and fail the pod if init containers fail on a RestartNever pod [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should provide DNS for pods for Subdomain [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to ClusterIP [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets optional updates should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-windows] Kubernetes e2e suite.[sig-windows] Hybrid cluster network for all supported CNIs should have stable networking for Linux and Windows pods [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Proxy version v1 should proxy through a service and a pod [Conformance] [] + +1. job-owner Overall [] + +</details> + +##### [node-kubelet-features-master]() +<details> +<summary>Expand failed tests</summary> + +1. job-owner Node Tests [runner] [] + +1. job-owner Overall [] + +1. [sig-node] E2eNode Suite.[sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN][NodeFeature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, hostname is shortname [cos-stable1] [] + +1. [sig-node] E2eNode Suite.[sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN][NodeFeature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, hostname is shortname [cos-stable2] [] + +1. [sig-node] E2eNode Suite.[sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN][NodeFeature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, hostname is shortname [ubuntu] [] + +1. [sig-node] E2eNode Suite.[sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN][NodeFeature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, when setHostnameAsFQDN is set to true, the FQDN is set as hostname [cos-stable1] [] + +1. [sig-node] E2eNode Suite.[sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN][NodeFeature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, when setHostnameAsFQDN is set to true, the FQDN is set as hostname [cos-stable2] [] + +1. [sig-node] E2eNode Suite.[sig-node] Hostname of Pod [Feature:SetHostnameAsFQDN][NodeFeature:SetHostnameAsFQDN] a pod with subdomain field has FQDN, when setHostnameAsFQDN is set to true, the FQDN is set as hostname [ubuntu] [] + +1. job-owner E2eNode Suite.[k8s.io] Security Context when creating a pod in the host PID namespace should not show its pid in the non-hostpid containers [NodeFeature:HostAccess] [cos-stable1] [] + +</details> + +</details> + + + +## Bug triage + +Author: Sayan Chowdhury (@yudocaa) + +Current Status: Red + +Trends: Current count (diff since last mtg) (diff since last Monday) + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 28 (-1) (-1) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 1 (0) (0) + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 13 (-1) (-2) + +Query: + - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 55 (-1) (-11) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) (0) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 29 (0) (-8) + +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 42 (-1) (-2) + + +## Docs + +Author: Kristin Martin / (@kcmartin) + +Current Status: Green + +Updates: + - Docs Placeholder deadline was Friday + - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy + - Docs PR stats: we are currently tracking **53** enhancements out of 53 + - merged: 10 + - ready for review: 8 + - in draft: 27 + - no docs required: 13 + + +## Release Notes + +Author: Wilson Husin / @wilsonehusin + +Current Status: Yellow + +Updates: + - beta-1 was merged + - reviews to come + +## Comms + +Author: Joseph Sandoval / @j-dawg + +Current Status: Green + +Updates: +Release blog in progress with first draft expected 11/23 for CNCF review. +Feature blogs KEP assignee outreach for collaboration in progress. +Coordination still needed to confirm with CNCF for webinar and blackout week. + + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii + +Current Status: Green + +Updates: + - The Code Freeze is staring on Thursday (November 12th) + - beta.2 is scheduled for the next Tuesday (November 17th) + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - Pinged Josh on the shadowing template issue and need to follow up https://github.com/kubernetes/sig-release/issues/688 + - Reached out to sig-contribex to determine best next steps to follow up on shadows looking for Kubernetes getting started content. We have https://www.kubernetes.dev/docs/guide/ and there will be a "New Contributor Workshop" from sig-contribex in the 1.21 timeframe. I will raise an issue to track this for 1.21. + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple / @Lauri Apple + +Updates: + - <!-- START HERE --> + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/2020-11-11.md b/releases/release-1.20/meeting-updates/2020-11-11.md index 6d9190ebaa6..f110fd4e10c 100644 --- a/releases/release-1.20/meeting-updates/2020-11-11.md +++ b/releases/release-1.20/meeting-updates/2020-11-11.md @@ -1,1286 +1,1286 @@ -# Meeting Updates 2020-11-11 - -Cutoff Time: 2020-11-04 12:30 UTC / 04:30 PST / 18:00 IST / 13:30 CET (other times)[https://everytimezone.com/s/a940b8c9] - -Repository sync responsibility: Nabarun Pal - -## Enhancements - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: 52 - - At Risk: 1 - - Alpha: 18 - - Beta: 17 - - Stable: 15 - - Deprecation: 2 - -Additional Notes: - - - Found a provisional kep that was implemented in 1.20: - - https://github.com/kubernetes/kubernetes/pull/92312 - - we are asking that it not be included in 1.20: - https://github.com/kubernetes/enhancements/issues/1860#issuecomment-725028455 - -## CI Signal - -Author: Name / Slack Handle - -Current Status: Red - -Notable Events: - - [Master-blocking][ci-signal-master-blocking]: - - [Master-informing][ci-signal-master-informing]: - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: - - [1.20 informing][ci-signal-1.20-informing]: - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - No new response: - - Under investigation: - - Observing: - - Resolved: - - Resolved for over two weeks: - - -### [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) at Nov 11, 2020 13:10 UTC -Out of 19 jobs -<span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 12**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 6**</span> -#### Passing Jobs -<details> -<summary>Expand 12 passing Jobs</summary> - -##### [Conformance - GCE - master]() - -##### [bazel-build-master]() - -##### [build-master]() - -##### [build-master-fast]() - -##### [conformance-ga-only]() - -##### [gce-cos-master-reboot]() - -##### [gce-device-plugin-gpu-master]() - -##### [integration-master]() - -##### [kind-master-parallel]() - -##### [node-kubelet-master]() - -##### [skew-cluster-latest-kubectl-stable1-gce]() - -##### [verify-master]() - -</details> - -#### Flaking Jobs -<details> -<summary>Expand 6 Flaking Jobs</summary> - -##### [bazel-test-master](https://testgrid.k8s.io/sig-release-master-blocking#bazel-test-master&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/server/filters/go_default_test:run_1_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/server/filters/go_default_test:run_2_of_2 [] - -1. job-owner //pkg/kubelet/volumemanager/reconciler/go_default_test:run_1_of_2 [] - -1. job-owner //pkg/kubelet/cm/devicemanager/go_default_test:run_2_of_2 [] - -1. job-owner //pkg/kubelet/volumemanager/reconciler/go_default_test:run_2_of_2 [] - -1. job-owner //pkg/kubelet/cm/devicemanager/go_default_test:run_1_of_2 [] - -1. job-owner //staging/src/k8s.io/legacy-cloud-providers/vsphere/go_default_test:run_1_of_2 [] - -1. job-owner //staging/src/k8s.io/legacy-cloud-providers/vsphere/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/server/options/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/go_default_test:run_1_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/server/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/legacy-cloud-providers/azure/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/storage/cacher/go_default_test:run_1_of_2 [] - -1. job-owner //pkg/controller/volume/attachdetach/reconciler/go_default_test:run_2_of_2 [] - -1. job-owner //pkg/kubelet/config/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/go_default_test:run_2_of_2 [] - -1. job-owner //pkg/registry/autoscaling/horizontalpodautoscaler/storage/go_default_test:run_1_of_2 [] - -1. job-owner //staging/src/k8s.io/client-go/util/flowcontrol/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/util/webhook/go_default_test:run_2_of_2 [] - -1. job-owner //pkg/proxy/config/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/go_default_test:run_1_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/util/webhook/go_default_test:run_1_of_2 [] - -1. job-owner //pkg/controlplane/tunneler/go_default_test:run_2_of_2 [] - -</details> - -##### [gce-cos-master-alpha-features](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-alpha-features&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner Up [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update nodePort: udp [Slow] [] - -1. job-owner Test [] - -</details> - -##### [gce-cos-master-default](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-default&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NodeProblemDetector [DisabledForLargeClusters] should run without error [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for multiple endpoint-Services with same selector [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] - -1. job-owner Timeout [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for client IP based session affinity: udp [LinuxOnly] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a configMap. [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: http [] - -1. [sig-instrumentation] Kubernetes e2e suite.[sig-instrumentation] MetricsGrabber should grab all metrics from a Scheduler. [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap optional updates should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a exec "cat /tmp/health" liveness probe [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity work for service with type clusterIP [LinuxOnly] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity work for NodePort service [LinuxOnly] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should be able to handle large requests: http [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: udp [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should run the lifecycle of a Deployment [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: udp [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should preserve source pod IP for traffic thru service cluster IP [LinuxOnly] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should implement service.kubernetes.io/headless [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap updates should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should not disrupt a cloud load-balancer's connectivity during rollout [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a non-local redirect http liveness probe [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl expose should create services for rc [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: udp [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Proxy version v1 should proxy through a service and a pod [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Service endpoints latency should not be very high [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to ClusterIP [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be rejected when no endpoints exist [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: http [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Simple pod should support inline execution and attach [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default command (docker entrypoint) [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ext3)] volumes should store data [] - -1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should set ownership and permission when RunAsUser or FsGroup is present [LinuxOnly] [NodeFeature:FSGroup] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PV and a pre-bound PVC: test write access [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI attach test using mock driver should not require VolumeAttach for drivers without attachment [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI online volume expansion should expand volume without restarting pod if attach=off, nodeExpansion=on [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI online volume expansion should expand volume without restarting pod if attach=on, nodeExpansion=on [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI workload information using mock driver should not be passed when podInfoOnMount=nil [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume storage capacity exhausted, late binding, no topology [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume storage capacity unlimited [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2 [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for client IP based session affinity: http [LinuxOnly] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Delete Grace Period should be submitted and removed [] - -1. job-owner TearDown [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for endpoint-Service: udp [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Dynamic Provisioning [k8s.io] GlusterDynamicProvisioner should create and delete persistent volumes [fast] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI attach test using mock driver should require VolumeAttach for drivers with attachment [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumes should store data [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should fail to exceed backoffLimit [] - -</details> - -##### [gce-ubuntu-master-containerd](https://testgrid.k8s.io/sig-release-master-blocking#gce-ubuntu-master-containerd&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should run the lifecycle of a Deployment [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a configMap. [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NodeProblemDetector [DisabledForLargeClusters] should run without error [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should serve a basic image on each replica with a private image [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for multiple endpoint-Services with same selector [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI online volume expansion should expand volume without restarting pod if attach=off, nodeExpansion=on [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS when invoking the Recycle reclaim policy should test that a PV becomes Available and is clean after the PVC is deleted. [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should surface a failure condition on a common issue like exceeded quota [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] EndpointSlice should create Endpoints and EndpointSlices for Pods matching a Service [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume [] - -1. [sig-node] Kubernetes e2e suite.[sig-node] RuntimeClass should run a Pod requesting a RuntimeClass with a configured handler [NodeFeature:RuntimeHandler] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: udp [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PV and a pre-bound PVC: test write access [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PVC and a pre-bound PV: test write access [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a custom resource. [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] kubelet [k8s.io] [sig-node] Clean up pods on node kubelet should be able to delete 10 pods per node in 1m0s. [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: udp [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: http [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] EmptyDir volumes should support (root,0644,default) [LinuxOnly] [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a service. [Conformance] [] - -</details> - -##### [gci-gce-ingress](https://testgrid.k8s.io/sig-release-master-blocking#gci-gce-ingress&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Loadbalancing: L7 GCE [Slow] [Feature:NEG] should conform to Ingress spec [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Loadbalancing: L7 GCE [Slow] [Feature:Ingress] should conform to Ingress spec [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Loadbalancing: L7 GCE [Slow] [Feature:NEG] rolling update backend pods should not cause service disruption [] - -</details> - -##### [kind-ipv6-master-parallel](https://testgrid.k8s.io/sig-release-master-blocking#kind-ipv6-master-parallel&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] KubeProxy should set TCP CLOSE_WAIT timeout [Privileged] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PVC Protection Verify that scheduling of a pod that uses PVC that is being deleted fails and the pod becomes Unschedulable [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Subpath Container restart should verify that container can restart successfully after configmaps modified [] - -</details> - -</details> - -#### Failing Jobs -<details> -<summary>Expand 1 Failing Jobs</summary> - -##### [gce-cos-master-scalability-100]() -<details> -<summary>Expand failed tests</summary> - -1. job-owner Overall [] - -1. job-owner diffResources [] - -1. job-owner ClusterLoaderV2 [] - -1. job-owner ClusterLoaderV2.access-tokens overall (testing/access-tokens/config.yaml) [] - -1. job-owner ClusterLoaderV2.access-tokens: [step: 10] Collecting measurements [] - -</details> - -</details> - -### [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) at Nov 11, 2020 13:10 UTC -Out of 18 jobs -<span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 7**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 6**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 5**</span> -#### Passing Jobs -<details> -<summary>Expand 7 passing Jobs</summary> - -##### [bazel-build-master]() - -##### [build-master-canary]() - -##### [kubeadm-kinder-latest-on-1-19]() - -##### [kubeadm-kinder-upgrade-1-19-latest]() - -##### [node-kubelet-features-master]() - -##### [post-kubernetes-push-image-pause]() - -##### [post-release-push-image-vulndash]() - -</details> - -#### Flaking Jobs -<details> -<summary>Expand 5 Flaking Jobs</summary> - -##### [gce-cos-master-serial](https://testgrid.k8s.io/sig-release-master-informing#gce-cos-master-serial&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] volume-stress multiple pods should access different volumes repeatedly [Slow] [Serial] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] only evicts pods without tolerations from tainted nodes [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] [Serial] Volume metrics PVController should create bound pv/pvc count metrics for pvc controller after creating both pv and pvc [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Single Pod [Serial] evicts pods from tainted nodes [] - -1. [sig-cloud-provider-gcp] Kubernetes e2e suite.[k8s.io] [sig-cloud-provider-gcp] Nodes [Disruptive] Resize [Slow] should be able to delete nodes [] - -</details> - -##### [gce-cos-master-slow](https://testgrid.k8s.io/sig-release-master-informing#gce-cos-master-slow&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume [] - -1. job-owner Timeout [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update nodePort: udp [Slow] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to switch session affinity for LoadBalancer service with ESIPP on [Slow] [DisabledForLargeClusters] [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local StatefulSet with pod affinity [Slow] should use volumes on one node when pod has affinity [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] Set fsGroup for local volume should set fsGroup for one pod [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data [] - -1. job-owner diffResources [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPathType Block Device [Slow] Should fail on mounting non-existent block device 'does-not-exist-blk-dev' when HostPathType is HostPathBlockDev [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local StatefulSet with pod affinity [Slow] should use volumes on one node when pod management is parallel and pod has affinity [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] ESIPP [Slow] should work from pods [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPathType Character Device [Slow] Should fail on mounting character device 'achardev' when HostPathType is HostPathDirectory [] - -</details> - -##### [gce-master-scale-correctness](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-correctness&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Test [] - -1. job-owner Overall [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should only allow access from service loadbalancer source ranges [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide podname only [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] ESIPP [Slow] should work for type=LoadBalancer [] - -1. job-owner Timeout [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume [] - -</details> - -##### [gce-master-scale-performance](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-performance&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner ClusterLoaderV2 [] - -1. job-owner ClusterLoaderV2.load overall (testing/load/config.yaml) [] - -1. job-owner ClusterLoaderV2.load: [step: 25] Collecting measurements [] - -1. job-owner ClusterLoaderV2.load: [step: 20] Waiting for objects to become scaled [] - -</details> - -##### [kubeadm-kinder-latest](https://testgrid.k8s.io/sig-release-master-informing#kubeadm-kinder-latest&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner task-02-create-cluster [] - -1. job-owner task-09-reset [] - -1. job-owner task-10-delete [] - -1. job-owner task-07-e2e [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] listing validating webhooks should work [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Subpath Atomic writer volumes should support subpaths with configmap pod with mountPath of existing file [LinuxOnly] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Subpath Atomic writer volumes should support subpaths with downward pod [LinuxOnly] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny custom resource creation, update and deletion [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny attaching pod [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should not be able to mutate or prevent deletion of webhook configuration objects [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with different stored version [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] listing mutating webhooks should work [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny pod and configmap creation [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should deny crd creation [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should unconditionally reject operations on fail closed webhook [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to create a functioning NodePort service [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to switch session affinity for service with type clusterIP [LinuxOnly] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for service with type clusterIP [LinuxOnly] [Conformance] [] - -</details> - -</details> - -#### Failing Jobs -<details> -<summary>Expand 6 Failing Jobs</summary> - -##### [Conformance - OpenStack]() -<details> -<summary>Expand failed tests</summary> - -1. job-owner DumpClusterLogs [] - -1. job-owner Test [] - -1. job-owner Timeout [] - -1. job-owner Overall [] - -</details> - -##### [capa-conformance-v1alpha3-k8s-master]() -<details> -<summary>Expand failed tests</summary> - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should update pod when spec was updated and update strategy is RollingUpdate [Conformance] [] - -1. job-owner Overall [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should retry creating failed daemon pods [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for node-pod communication: udp [LinuxOnly] [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Runtime blackbox test on terminated container should report termination message [LinuxOnly] as empty when pod succeeds and TerminationMessagePolicy FallbackToLogsOnError is set [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for node-pod communication: http [LinuxOnly] [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity work for service with type clusterIP [LinuxOnly] [Conformance] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart http hook properly [NodeConformance] [Conformance] [] - -1. job-owner capa-e2e.conformance tests conformance [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should run and stop complex daemon [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should update pod when spec was updated and update strategy is RollingUpdate [Conformance] [1] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Kubelet when scheduling a busybox command in a pod should print the output to logs [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should run and stop simple daemon [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [1] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should fail substituting values in a volume subpath with absolute path [sig-storage][Slow] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Garbage collector should orphan pods created by rc if delete options say so [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should rollback without unnecessary restarts [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should be restarted with a exec "cat /tmp/health" liveness probe [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu request [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap should be consumable from pods in volume with mappings as non-root [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should set DefaultMode on files [LinuxOnly] [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow composing env vars into new env vars [NodeConformance] [Conformance] [] - -</details> - -##### [capg-conformance-v1alpha3-k8s-master]() -<details> -<summary>Expand failed tests</summary> - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. job-owner Overall [] - -</details> - -##### [gce-ubuntu-master-default]() -<details> -<summary>Expand failed tests</summary> - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should not disrupt a cloud load-balancer's connectivity during rollout [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] kubelet [k8s.io] [sig-node] Clean up pods on node kubelet should be able to delete 10 pods per node in 1m0s. [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for multiple endpoint-Services with same selector [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2 [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: dir-link] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2 [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should not expand volume if resizingOnDriver=off, resizingOnSC=on [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should be restarted with a docker exec liveness probe with timeout [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: http [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap optional updates should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] GCP Volumes NFSv4 should be mountable for NFSv4 [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] crictl should be able to run crictl on the node [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Mount propagation should propagate mounts to the host [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment iterative rollouts should eventually progress [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] DisruptionController evictions: enough pods, replicaSet, percentage => should allow an eviction [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: http [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: udp [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: CSI Ephemeral-volume (default fs)] ephemeral should support multiple inline ephemeral volumes [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume without restarting pod if nodeExpansion=off [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] EmptyDir volumes should support (root,0666,tmpfs) [LinuxOnly] [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS with multiple PVs and PVCs all in same ns should create 2 PVs and 4 PVCs: test write access [] - -1. job-owner Timeout [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Simple pod should support inline execution and attach [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI attach test using mock driver should not require VolumeAttach for drivers without attachment [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should update labels on modification [NodeConformance] [Conformance] [] - -</details> - -##### [gce-windows-1909-master]() -<details> -<summary>Expand failed tests</summary> - -1. [sig-windows] Kubernetes e2e suite.[sig-windows] Services should be able to create a functioning NodePort service for Windows [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand Verify if offline PVC expansion works [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand should resize volume when PVC is edited while pod is using it [] - -1. job-owner [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to create a functioning NodePort service [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's memory limit [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance] [] - -1. job-owner Up [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPath should support r/w [NodeConformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu limit [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[k8s.io] Variable Expansion should allow substituting values in a volume subpath [sig-storage] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's memory request [NodeConformance] [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Runtime blackbox test when starting a container that exits should run with the expected status [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with different stored version [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Update Demo should scale a replication controller [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny custom resource creation, update and deletion [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate pod and apply defaults after mutation [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should unconditionally reject operations on fail closed webhook [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Service endpoints latency should not be very high [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers if init containers fail on a RestartAlways pod [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow composing env vars into new env vars [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should not be able to mutate or prevent deletion of webhook configuration objects [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. job-owner Overall [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should delete old replica sets [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute prestop http hook properly [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should honor timeout [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should delete a job [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide node allocatable (memory) as default memory limit if the limit is not set [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Secrets should be consumable from pods in env vars [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should adopt matching pods on creation and release no longer matching pods [Conformance] [] - -1. job-owner DumpClusterLogs [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart exec hook properly [NodeConformance] [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should include webhook resources in discovery documents [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support proportional scaling [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should serve a basic image on each replica with a public image [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should provide DNS for ExternalName services [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve a basic endpoint from pods [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[sig-node] ConfigMap should be consumable via environment variable [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap updates should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu request [NodeConformance] [Conformance] [] - -1. job-owner Timeout [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should use the image defaults if command and args are blank [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's cpu request [NodeConformance] [Conformance] [] - -</details> - -##### [gce-windows-2019-master]() -<details> -<summary>Expand failed tests</summary> - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] - -1. [sig-windows] Kubernetes e2e suite.[sig-windows] Services should be able to create a functioning NodePort service for Windows [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow] [] - -1. job-owner [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand Verify if offline PVC expansion works [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand should resize volume when PVC is edited while pod is using it [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve multiport endpoints from pods [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [] - -1. job-owner Up [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should have their auto-restart back-off timer reset on image update [Slow][NodeConformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. job-owner Overall [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to create a functioning NodePort service [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap should be consumable from pods in volume with mappings as non-root [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's memory request [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be consumable in multiple volumes in a pod [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default command and arguments [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default arguments (docker cmd) [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers if init containers fail on a RestartAlways pod [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a /healthz http liveness probe [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support rollover [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should update labels on modification [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be able to mount in a volume regardless of a different secret existing with same name in different namespace [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should be restarted with a exec "cat /tmp/health" liveness probe [NodeConformance] [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should fail substituting values in a volume subpath with backticks [sig-storage][Slow] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart exec hook properly [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Kubelet when scheduling a busybox command that always fails in a pod should have an terminated reason [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should be submitted and removed [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should delete old replica sets [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve a basic endpoint from pods [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[sig-node] ConfigMap should be consumable via environment variable [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] - -1. job-owner diffResources [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support proportional scaling [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should adopt matching pods on creation [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow] [] - -</details> - -</details> - -### [sig-release-master-blocking](https://testgrid.k8s.io/sig-re - -## Bug triage - -Author: Vlad Gorodetsky / bai (async update) - -Current Status: Red - -Trends: +2 issues, -6 PRs - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 29 (+1) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 1 - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 14 (+1) - -Query: - - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 49 (-6) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 17 (-12) - -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 44 (+2) - - -## Docs - -Author: Rey / reylejano-rxm - -Current Status: Green - -Updates: - - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy - - 45 docs being tracked (+13 not required) - - merged: 11 - - ready for review: 8 - - in draft: 26 - - Docs team members are contacting doc PR owners that the docs ready for review deadline is right after KubeCon NA and suggest to add doc content earlier - - -## Release Notes - -Author: James Laverack / @james.laverack - -Current Status: Yellow - -Updates: - - No significant change, reviews to come. - - -## Comms - -Author: Joseph Sandoval / @j-dawg - -Current Status: Green - -Updates: -- Release blog in progress with first draft expected 11/23 for CNCF review. -- Feature blogs KEP assignee outreach ongoing. -- Coordination still needed to confirm with CNCF for webinar and blackout week. Reach out to release lead by EOW. - - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii - -Current Status: Green - -Updates: - - Code Freeze starting tomorrow (PST EOD) - - beta.2 is scheduled for Tuesday (November 17th) - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - <!-- START HERE --> - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) - -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple - -Updates: - - <!-- START HERE --> - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-11 + +Cutoff Time: 2020-11-04 12:30 UTC / 04:30 PST / 18:00 IST / 13:30 CET (other times)[https://everytimezone.com/s/a940b8c9] + +Repository sync responsibility: Nabarun Pal + +## Enhancements + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: 52 + - At Risk: 1 + - Alpha: 18 + - Beta: 17 + - Stable: 15 + - Deprecation: 2 + +Additional Notes: + + - Found a provisional kep that was implemented in 1.20: + - https://github.com/kubernetes/kubernetes/pull/92312 + - we are asking that it not be included in 1.20: + https://github.com/kubernetes/enhancements/issues/1860#issuecomment-725028455 + +## CI Signal + +Author: Name / Slack Handle + +Current Status: Red + +Notable Events: + - [Master-blocking][ci-signal-master-blocking]: + - [Master-informing][ci-signal-master-informing]: + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: + - [1.20 informing][ci-signal-1.20-informing]: + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + - No new response: + - Under investigation: + - Observing: + - Resolved: + - Resolved for over two weeks: + + +### [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) at Nov 11, 2020 13:10 UTC +Out of 19 jobs +<span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 12**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 6**</span> +#### Passing Jobs +<details> +<summary>Expand 12 passing Jobs</summary> + +##### [Conformance - GCE - master]() + +##### [bazel-build-master]() + +##### [build-master]() + +##### [build-master-fast]() + +##### [conformance-ga-only]() + +##### [gce-cos-master-reboot]() + +##### [gce-device-plugin-gpu-master]() + +##### [integration-master]() + +##### [kind-master-parallel]() + +##### [node-kubelet-master]() + +##### [skew-cluster-latest-kubectl-stable1-gce]() + +##### [verify-master]() + +</details> + +#### Flaking Jobs +<details> +<summary>Expand 6 Flaking Jobs</summary> + +##### [bazel-test-master](https://testgrid.k8s.io/sig-release-master-blocking#bazel-test-master&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/server/filters/go_default_test:run_1_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/server/filters/go_default_test:run_2_of_2 [] + +1. job-owner //pkg/kubelet/volumemanager/reconciler/go_default_test:run_1_of_2 [] + +1. job-owner //pkg/kubelet/cm/devicemanager/go_default_test:run_2_of_2 [] + +1. job-owner //pkg/kubelet/volumemanager/reconciler/go_default_test:run_2_of_2 [] + +1. job-owner //pkg/kubelet/cm/devicemanager/go_default_test:run_1_of_2 [] + +1. job-owner //staging/src/k8s.io/legacy-cloud-providers/vsphere/go_default_test:run_1_of_2 [] + +1. job-owner //staging/src/k8s.io/legacy-cloud-providers/vsphere/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/server/options/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/go_default_test:run_1_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/server/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/legacy-cloud-providers/azure/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/storage/cacher/go_default_test:run_1_of_2 [] + +1. job-owner //pkg/controller/volume/attachdetach/reconciler/go_default_test:run_2_of_2 [] + +1. job-owner //pkg/kubelet/config/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/go_default_test:run_2_of_2 [] + +1. job-owner //pkg/registry/autoscaling/horizontalpodautoscaler/storage/go_default_test:run_1_of_2 [] + +1. job-owner //staging/src/k8s.io/client-go/util/flowcontrol/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/util/webhook/go_default_test:run_2_of_2 [] + +1. job-owner //pkg/proxy/config/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/validating/go_default_test:run_1_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/util/webhook/go_default_test:run_1_of_2 [] + +1. job-owner //pkg/controlplane/tunneler/go_default_test:run_2_of_2 [] + +</details> + +##### [gce-cos-master-alpha-features](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-alpha-features&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner Up [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update nodePort: udp [Slow] [] + +1. job-owner Test [] + +</details> + +##### [gce-cos-master-default](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-default&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NodeProblemDetector [DisabledForLargeClusters] should run without error [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for multiple endpoint-Services with same selector [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] + +1. job-owner Timeout [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for client IP based session affinity: udp [LinuxOnly] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a configMap. [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: http [] + +1. [sig-instrumentation] Kubernetes e2e suite.[sig-instrumentation] MetricsGrabber should grab all metrics from a Scheduler. [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap optional updates should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a exec "cat /tmp/health" liveness probe [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity work for service with type clusterIP [LinuxOnly] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity work for NodePort service [LinuxOnly] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should be able to handle large requests: http [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: udp [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should run the lifecycle of a Deployment [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: udp [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should preserve source pod IP for traffic thru service cluster IP [LinuxOnly] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should implement service.kubernetes.io/headless [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap updates should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should not disrupt a cloud load-balancer's connectivity during rollout [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a non-local redirect http liveness probe [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl expose should create services for rc [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: udp [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Proxy version v1 should proxy through a service and a pod [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Service endpoints latency should not be very high [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to ClusterIP [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be rejected when no endpoints exist [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: http [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Simple pod should support inline execution and attach [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default command (docker entrypoint) [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ext3)] volumes should store data [] + +1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should set ownership and permission when RunAsUser or FsGroup is present [LinuxOnly] [NodeFeature:FSGroup] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PV and a pre-bound PVC: test write access [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (block volmode)(allowExpansion)] volume-expand Verify if offline PVC expansion works [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support non-existent path [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI attach test using mock driver should not require VolumeAttach for drivers without attachment [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI online volume expansion should expand volume without restarting pod if attach=off, nodeExpansion=on [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI online volume expansion should expand volume without restarting pod if attach=on, nodeExpansion=on [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI workload information using mock driver should not be passed when podInfoOnMount=nil [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume storage capacity exhausted, late binding, no topology [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume storage capacity unlimited [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2 [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for client IP based session affinity: http [LinuxOnly] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Delete Grace Period should be submitted and removed [] + +1. job-owner TearDown [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for endpoint-Service: udp [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Dynamic Provisioning [k8s.io] GlusterDynamicProvisioner should create and delete persistent volumes [fast] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should support existing directory [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI attach test using mock driver should require VolumeAttach for drivers with attachment [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumes should store data [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should fail to exceed backoffLimit [] + +</details> + +##### [gce-ubuntu-master-containerd](https://testgrid.k8s.io/sig-release-master-blocking#gce-ubuntu-master-containerd&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should run the lifecycle of a Deployment [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a configMap. [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NodeProblemDetector [DisabledForLargeClusters] should run without error [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should serve a basic image on each replica with a private image [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for multiple endpoint-Services with same selector [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI online volume expansion should expand volume without restarting pod if attach=off, nodeExpansion=on [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS when invoking the Recycle reclaim policy should test that a PV becomes Available and is clean after the PVC is deleted. [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should surface a failure condition on a common issue like exceeded quota [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] EndpointSlice should create Endpoints and EndpointSlices for Pods matching a Service [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume [] + +1. [sig-node] Kubernetes e2e suite.[sig-node] RuntimeClass should run a Pod requesting a RuntimeClass with a configured handler [NodeFeature:RuntimeHandler] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: udp [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PV and a pre-bound PVC: test write access [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS with Single PV - PVC pairs create a PVC and a pre-bound PV: test write access [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a custom resource. [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly file specified in the volumeMount [LinuxOnly] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] kubelet [k8s.io] [sig-node] Clean up pods on node kubelet should be able to delete 10 pods per node in 1m0s. [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: udp [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: http [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] EmptyDir volumes should support (root,0644,default) [LinuxOnly] [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a service. [Conformance] [] + +</details> + +##### [gci-gce-ingress](https://testgrid.k8s.io/sig-release-master-blocking#gci-gce-ingress&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Loadbalancing: L7 GCE [Slow] [Feature:NEG] should conform to Ingress spec [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Loadbalancing: L7 GCE [Slow] [Feature:Ingress] should conform to Ingress spec [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Loadbalancing: L7 GCE [Slow] [Feature:NEG] rolling update backend pods should not cause service disruption [] + +</details> + +##### [kind-ipv6-master-parallel](https://testgrid.k8s.io/sig-release-master-blocking#kind-ipv6-master-parallel&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] KubeProxy should set TCP CLOSE_WAIT timeout [Privileged] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PVC Protection Verify that scheduling of a pod that uses PVC that is being deleted fails and the pod becomes Unschedulable [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Subpath Container restart should verify that container can restart successfully after configmaps modified [] + +</details> + +</details> + +#### Failing Jobs +<details> +<summary>Expand 1 Failing Jobs</summary> + +##### [gce-cos-master-scalability-100]() +<details> +<summary>Expand failed tests</summary> + +1. job-owner Overall [] + +1. job-owner diffResources [] + +1. job-owner ClusterLoaderV2 [] + +1. job-owner ClusterLoaderV2.access-tokens overall (testing/access-tokens/config.yaml) [] + +1. job-owner ClusterLoaderV2.access-tokens: [step: 10] Collecting measurements [] + +</details> + +</details> + +### [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) at Nov 11, 2020 13:10 UTC +Out of 18 jobs +<span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 7**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 6**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 5**</span> +#### Passing Jobs +<details> +<summary>Expand 7 passing Jobs</summary> + +##### [bazel-build-master]() + +##### [build-master-canary]() + +##### [kubeadm-kinder-latest-on-1-19]() + +##### [kubeadm-kinder-upgrade-1-19-latest]() + +##### [node-kubelet-features-master]() + +##### [post-kubernetes-push-image-pause]() + +##### [post-release-push-image-vulndash]() + +</details> + +#### Flaking Jobs +<details> +<summary>Expand 5 Flaking Jobs</summary> + +##### [gce-cos-master-serial](https://testgrid.k8s.io/sig-release-master-informing#gce-cos-master-serial&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] volume-stress multiple pods should access different volumes repeatedly [Slow] [Serial] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] only evicts pods without tolerations from tainted nodes [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] [Serial] Volume metrics PVController should create bound pv/pvc count metrics for pvc controller after creating both pv and pvc [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Single Pod [Serial] evicts pods from tainted nodes [] + +1. [sig-cloud-provider-gcp] Kubernetes e2e suite.[k8s.io] [sig-cloud-provider-gcp] Nodes [Disruptive] Resize [Slow] should be able to delete nodes [] + +</details> + +##### [gce-cos-master-slow](https://testgrid.k8s.io/sig-release-master-informing#gce-cos-master-slow&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume [] + +1. job-owner Timeout [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update nodePort: udp [Slow] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to switch session affinity for LoadBalancer service with ESIPP on [Slow] [DisabledForLargeClusters] [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local StatefulSet with pod affinity [Slow] should use volumes on one node when pod has affinity [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] Set fsGroup for local volume should set fsGroup for one pod [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data [] + +1. job-owner diffResources [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPathType Block Device [Slow] Should fail on mounting non-existent block device 'does-not-exist-blk-dev' when HostPathType is HostPathBlockDev [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with different volume mode and retain data across pod recreation on different node [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local StatefulSet with pod affinity [Slow] should use volumes on one node when pod management is parallel and pod has affinity [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] ESIPP [Slow] should work from pods [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPathType Character Device [Slow] Should fail on mounting character device 'achardev' when HostPathType is HostPathDirectory [] + +</details> + +##### [gce-master-scale-correctness](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-correctness&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Test [] + +1. job-owner Overall [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should only allow access from service loadbalancer source ranges [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide podname only [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] ESIPP [Slow] should work for type=LoadBalancer [] + +1. job-owner Timeout [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumes should allow exec of files on the volume [] + +</details> + +##### [gce-master-scale-performance](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-performance&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner ClusterLoaderV2 [] + +1. job-owner ClusterLoaderV2.load overall (testing/load/config.yaml) [] + +1. job-owner ClusterLoaderV2.load: [step: 25] Collecting measurements [] + +1. job-owner ClusterLoaderV2.load: [step: 20] Waiting for objects to become scaled [] + +</details> + +##### [kubeadm-kinder-latest](https://testgrid.k8s.io/sig-release-master-informing#kubeadm-kinder-latest&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner task-02-create-cluster [] + +1. job-owner task-09-reset [] + +1. job-owner task-10-delete [] + +1. job-owner task-07-e2e [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] listing validating webhooks should work [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Subpath Atomic writer volumes should support subpaths with configmap pod with mountPath of existing file [LinuxOnly] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Subpath Atomic writer volumes should support subpaths with downward pod [LinuxOnly] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny custom resource creation, update and deletion [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny attaching pod [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should not be able to mutate or prevent deletion of webhook configuration objects [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with different stored version [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] listing mutating webhooks should work [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny pod and configmap creation [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should deny crd creation [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should unconditionally reject operations on fail closed webhook [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to create a functioning NodePort service [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to switch session affinity for service with type clusterIP [LinuxOnly] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for service with type clusterIP [LinuxOnly] [Conformance] [] + +</details> + +</details> + +#### Failing Jobs +<details> +<summary>Expand 6 Failing Jobs</summary> + +##### [Conformance - OpenStack]() +<details> +<summary>Expand failed tests</summary> + +1. job-owner DumpClusterLogs [] + +1. job-owner Test [] + +1. job-owner Timeout [] + +1. job-owner Overall [] + +</details> + +##### [capa-conformance-v1alpha3-k8s-master]() +<details> +<summary>Expand failed tests</summary> + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should update pod when spec was updated and update strategy is RollingUpdate [Conformance] [] + +1. job-owner Overall [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should retry creating failed daemon pods [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for node-pod communication: udp [LinuxOnly] [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Runtime blackbox test on terminated container should report termination message [LinuxOnly] as empty when pod succeeds and TerminationMessagePolicy FallbackToLogsOnError is set [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for node-pod communication: http [LinuxOnly] [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity work for service with type clusterIP [LinuxOnly] [Conformance] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart http hook properly [NodeConformance] [Conformance] [] + +1. job-owner capa-e2e.conformance tests conformance [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should run and stop complex daemon [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should update pod when spec was updated and update strategy is RollingUpdate [Conformance] [1] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Kubelet when scheduling a busybox command in a pod should print the output to logs [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should run and stop simple daemon [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [1] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should fail substituting values in a volume subpath with absolute path [sig-storage][Slow] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Garbage collector should orphan pods created by rc if delete options say so [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should rollback without unnecessary restarts [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should be restarted with a exec "cat /tmp/health" liveness probe [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu request [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap should be consumable from pods in volume with mappings as non-root [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should set DefaultMode on files [LinuxOnly] [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow composing env vars into new env vars [NodeConformance] [Conformance] [] + +</details> + +##### [capg-conformance-v1alpha3-k8s-master]() +<details> +<summary>Expand failed tests</summary> + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. job-owner Overall [] + +</details> + +##### [gce-ubuntu-master-default]() +<details> +<summary>Expand failed tests</summary> + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should not disrupt a cloud load-balancer's connectivity during rollout [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] kubelet [k8s.io] [sig-node] Clean up pods on node kubelet should be able to delete 10 pods per node in 1m0s. [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for multiple endpoint-Services with same selector [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2 [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: dir-link] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2 [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Pre-provisioned PV (filesystem volmode)] volumeMode should not mount / map unused volumes in a pod [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should not expand volume if resizingOnDriver=off, resizingOnSC=on [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should be restarted with a docker exec liveness probe with timeout [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: http [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap optional updates should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] GCP Volumes NFSv4 should be mountable for NFSv4 [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] crictl should be able to run crictl on the node [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Mount propagation should propagate mounts to the host [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment iterative rollouts should eventually progress [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] DisruptionController evictions: enough pods, replicaSet, percentage => should allow an eviction [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: http [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: udp [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: CSI Ephemeral-volume (default fs)] ephemeral should support multiple inline ephemeral volumes [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume without restarting pod if nodeExpansion=off [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] EmptyDir volumes should support (root,0666,tmpfs) [LinuxOnly] [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: emptydir] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support non-existent path [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS with multiple PVs and PVCs all in same ns should create 2 PVs and 4 PVCs: test write access [] + +1. job-owner Timeout [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Simple pod should support inline execution and attach [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI attach test using mock driver should not require VolumeAttach for drivers without attachment [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should update labels on modification [NodeConformance] [Conformance] [] + +</details> + +##### [gce-windows-1909-master]() +<details> +<summary>Expand failed tests</summary> + +1. [sig-windows] Kubernetes e2e suite.[sig-windows] Services should be able to create a functioning NodePort service for Windows [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand Verify if offline PVC expansion works [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand should resize volume when PVC is edited while pod is using it [] + +1. job-owner [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to create a functioning NodePort service [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's memory limit [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance] [] + +1. job-owner Up [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPath should support r/w [NodeConformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu limit [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[k8s.io] Variable Expansion should allow substituting values in a volume subpath [sig-storage] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's memory request [NodeConformance] [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Runtime blackbox test when starting a container that exits should run with the expected status [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with different stored version [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Update Demo should scale a replication controller [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny custom resource creation, update and deletion [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate pod and apply defaults after mutation [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should unconditionally reject operations on fail closed webhook [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Service endpoints latency should not be very high [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers if init containers fail on a RestartAlways pod [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow composing env vars into new env vars [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should not be able to mutate or prevent deletion of webhook configuration objects [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. job-owner Overall [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should delete old replica sets [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute prestop http hook properly [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should honor timeout [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should delete a job [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide node allocatable (memory) as default memory limit if the limit is not set [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Secrets should be consumable from pods in env vars [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should adopt matching pods on creation and release no longer matching pods [Conformance] [] + +1. job-owner DumpClusterLogs [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart exec hook properly [NodeConformance] [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should include webhook resources in discovery documents [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support proportional scaling [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should serve a basic image on each replica with a public image [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should provide DNS for ExternalName services [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve a basic endpoint from pods [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[sig-node] ConfigMap should be consumable via environment variable [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap updates should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu request [NodeConformance] [Conformance] [] + +1. job-owner Timeout [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should use the image defaults if command and args are blank [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's cpu request [NodeConformance] [Conformance] [] + +</details> + +##### [gce-windows-2019-master]() +<details> +<summary>Expand failed tests</summary> + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] + +1. [sig-windows] Kubernetes e2e suite.[sig-windows] Services should be able to create a functioning NodePort service for Windows [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] provisioning should provision storage with mount options [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow] [] + +1. job-owner [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl server-side dry-run should check if kubectl can dry-run update Pods [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand Verify if offline PVC expansion works [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)(allowExpansion)][sig-windows] volume-expand should resize volume when PVC is edited while pod is using it [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve multiport endpoints from pods [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support restarting containers using directory as subpath [Slow] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [] + +1. job-owner Up [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should have their auto-restart back-off timer reset on image update [Slow][NodeConformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. job-owner Overall [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to create a functioning NodePort service [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap should be consumable from pods in volume with mappings as non-root [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's memory request [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support non-existent path [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be consumable in multiple volumes in a pod [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default command and arguments [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default arguments (docker cmd) [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers if init containers fail on a RestartAlways pod [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a /healthz http liveness probe [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support rollover [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should update labels on modification [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be able to mount in a volume regardless of a different secret existing with same name in different namespace [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should be restarted with a exec "cat /tmp/health" liveness probe [NodeConformance] [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should fail substituting values in a volume subpath with backticks [sig-storage][Slow] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Lifecycle Hook when create a pod with lifecycle hook should execute poststart exec hook properly [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Kubelet when scheduling a busybox command that always fails in a pod should have an terminated reason [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should be submitted and removed [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should delete old replica sets [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve a basic endpoint from pods [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[sig-node] ConfigMap should be consumable via environment variable [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support readOnly directory specified in the volumeMount [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] + +1. job-owner diffResources [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support proportional scaling [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should adopt matching pods on creation [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support creating multiple subpath from same volumes [Slow] [] + +</details> + +</details> + +### [sig-release-master-blocking](https://testgrid.k8s.io/sig-re + +## Bug triage + +Author: Vlad Gorodetsky / bai (async update) + +Current Status: Red + +Trends: +2 issues, -6 PRs + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 29 (+1) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 1 + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 14 (+1) + +Query: + - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 49 (-6) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 17 (-12) + +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 44 (+2) + + +## Docs + +Author: Rey / reylejano-rxm + +Current Status: Green + +Updates: + - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy + - 45 docs being tracked (+13 not required) + - merged: 11 + - ready for review: 8 + - in draft: 26 + - Docs team members are contacting doc PR owners that the docs ready for review deadline is right after KubeCon NA and suggest to add doc content earlier + + +## Release Notes + +Author: James Laverack / @james.laverack + +Current Status: Yellow + +Updates: + - No significant change, reviews to come. + + +## Comms + +Author: Joseph Sandoval / @j-dawg + +Current Status: Green + +Updates: +- Release blog in progress with first draft expected 11/23 for CNCF review. +- Feature blogs KEP assignee outreach ongoing. +- Coordination still needed to confirm with CNCF for webinar and blackout week. Reach out to release lead by EOW. + + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii + +Current Status: Green + +Updates: + - Code Freeze starting tomorrow (PST EOD) + - beta.2 is scheduled for Tuesday (November 17th) + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - <!-- START HERE --> + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) + +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple + +Updates: + - <!-- START HERE --> + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/2020-11-13.md b/releases/release-1.20/meeting-updates/2020-11-13.md index b3bfab3df49..f9382a2aa9e 100644 --- a/releases/release-1.20/meeting-updates/2020-11-13.md +++ b/releases/release-1.20/meeting-updates/2020-11-13.md @@ -1,192 +1,192 @@ -# Meeting Updates 2020-11-13 - -Cutoff Time: 2020-11-13 08:00 PST - -Repository sync responsibility: Nabarun Pal - -## Enhancements - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: 52 - - At Risk: 1 - - Alpha: 18 - - Beta: 17 - - Stable: 15 - - Deprecation: 2 - -Additional Notes: - - - Found a provisional kep that was implemented in 1.20: - - https://github.com/kubernetes/kubernetes/pull/92312 - - we are asking that it not be included in 1.20: - https://github.com/kubernetes/enhancements/issues/1860#issuecomment-725028455 - -## CI Signal - -Author: Rob Kielty / @RobertKielty - -Current Status: Yellow to Red - - - [Master-blocking](https://testgrid.k8s.io/sig-release-master-blocking): - Out of 19 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 14**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 4**</span> - Full report - [sig-release-master-blocking Nov 13th](https://hackmd.io/3Lq3Q6avRlWJkgGwB2-v8A?both) - - Issue logged by @jk https://github.com/kubernetes/kubernetes/issues/96519 - - Fix submitted for failing gce-device-plugin-gpu-master - - https://github.com/kubernetes/kubernetes/pull/96553 - - [Master-informing](https://testgrid.k8s.io/sig-release-master-informing): - - Out of 20 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 6**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 8**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 6**</span> -Full report - [sig-release-master-informing Nov 13th](https://hackmd.io/y8t0ZyvPRNqAuuF83fhOTw) - - **Help wanted here** informing dashboard is **not in a great state** - - [#96463](https://github.com/kubernetes/kubernetes/issues/96463) Dan will take ownership of this issue - - [Failing Test] [k8s.io] Probing container should be restarted with a docker exec liveness probe with timeout [ci-kubernetes-e2e-ubuntu-gce] - - [#96568](https://github.com/kubernetes/kubernetes/issues/96568) Dan will take ownership of this issue - - [Failing Test] [sig-node] [k8s.io] ResourceMetricsAPI [NodeFeature:ResourceMetrics] when querying /resource/metrics should report resource usage through the resouce metrics api - - -[CI Signal Team Dashboard](https://github.com/orgs/kubernetes/projects/11) - - No new response:4 - - Under investigation:26 - - Observing:26 - - Resolved:3 - - Resolved for over two weeks:183 - - -## Bug triage - -Author: Nick Moraitis / droslean - -Current Status: Red - -Trend: -17 (issues) / -31 (PRs) since 6th Nov - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 20 (-9) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 1 - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 6 (-8) - -Query: - - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 40 (-9) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 14 (-3) - -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 34 (-10) - -Notes: -* Q: Will [kubernetes/pull/95479](https://github.com/kubernetes/kubernetes/pull/95479) land on 1.20. The exception for additional time for this enhancement has been approved (https://groups.google.com/g/kubernetes-sig-release/c/y327XGmo6-4/m/93lvg7nCAQAJ) - -## Docs - -Author: Rey / reylejano-rxm - -Current Status: Green - -Updates: - - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy - - 38 docs being tracked (+21 not required / removed from milestone) - - merged: 19 - - ready for review: 4 - - in draft: 15 - - Doc PR owners have been contacted and reminded that the docs ready for review deadline is right after KubeCon NA and suggested to add doc content earlier - - -## Release Notes - -Author: James Laverack / @james.laverack - -Current Status: Yellow - -Updates: - - No significant change, reviews to come. - - -## Comms - -Author: Joseph Sandoval / @j-dawg - -Current Status: Green - -Updates: -- Release blog in progress with first draft expected 11/23 for CNCF review. -- Coordination still needed to confirm with CNCF for webinar and blackout week. Reach out to release lead by EOW. -- Feature blogs still pending. - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii -Current Status: Green - -Updates: - - Code Freeze has started yesterday (November 12th) - - Upcoming milestones: - - **beta.2**: Tuesday, November 17th (next week) - - this is the last beta release for this cycle - - **Test Freeze:** Monday, November 23th (week after KubeCon) - - **release-1.20 branch cut and jobs created**: Tuesday, December 1st - - **rc.0**: Tuesday, December 1st - - **v1.20.0**: Tuesday, December 8th - - Branch fast-forward and cherry-picks: - - After discussion with Release Managers and Release Leads, it has been decided that we will **not** do fast-forwards this release cycle - - Once the release branch is cut, PRs targeting this release have to be cherry-picked to the release branch - - Historically, we have been cutting the release branch much earlier in the release cycle, so we were doing fast-forwards to keep the master branch and the release branch in sync. This release cycle the branch cut is a week before the release - - Since there is only one week between the branch cut and the release, requiring cherry-picks allows us to have better control over what gets merged for the release - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - <!-- START HERE --> - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) - -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple - -Updates: - - <!-- START HERE --> - - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[wtb-tz-map]: https://www.worldtimebuddy.com/?qm=1&lid=100,8,30,12&h=8&date=2020-11-4&sln=7-8&hf=0 -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-13 + +Cutoff Time: 2020-11-13 08:00 PST + +Repository sync responsibility: Nabarun Pal + +## Enhancements + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: 52 + - At Risk: 1 + - Alpha: 18 + - Beta: 17 + - Stable: 15 + - Deprecation: 2 + +Additional Notes: + + - Found a provisional kep that was implemented in 1.20: + - https://github.com/kubernetes/kubernetes/pull/92312 + - we are asking that it not be included in 1.20: + https://github.com/kubernetes/enhancements/issues/1860#issuecomment-725028455 + +## CI Signal + +Author: Rob Kielty / @RobertKielty + +Current Status: Yellow to Red + + - [Master-blocking](https://testgrid.k8s.io/sig-release-master-blocking): + Out of 19 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 14**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 4**</span> + Full report - [sig-release-master-blocking Nov 13th](https://hackmd.io/3Lq3Q6avRlWJkgGwB2-v8A?both) + - Issue logged by @jk https://github.com/kubernetes/kubernetes/issues/96519 + - Fix submitted for failing gce-device-plugin-gpu-master + - https://github.com/kubernetes/kubernetes/pull/96553 + - [Master-informing](https://testgrid.k8s.io/sig-release-master-informing): + - Out of 20 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 6**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 8**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 6**</span> +Full report - [sig-release-master-informing Nov 13th](https://hackmd.io/y8t0ZyvPRNqAuuF83fhOTw) + - **Help wanted here** informing dashboard is **not in a great state** + - [#96463](https://github.com/kubernetes/kubernetes/issues/96463) Dan will take ownership of this issue + - [Failing Test] [k8s.io] Probing container should be restarted with a docker exec liveness probe with timeout [ci-kubernetes-e2e-ubuntu-gce] + - [#96568](https://github.com/kubernetes/kubernetes/issues/96568) Dan will take ownership of this issue + - [Failing Test] [sig-node] [k8s.io] ResourceMetricsAPI [NodeFeature:ResourceMetrics] when querying /resource/metrics should report resource usage through the resouce metrics api + + +[CI Signal Team Dashboard](https://github.com/orgs/kubernetes/projects/11) + - No new response:4 + - Under investigation:26 + - Observing:26 + - Resolved:3 + - Resolved for over two weeks:183 + + +## Bug triage + +Author: Nick Moraitis / droslean + +Current Status: Red + +Trend: -17 (issues) / -31 (PRs) since 6th Nov + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 20 (-9) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 1 + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 6 (-8) + +Query: + - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 40 (-9) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 14 (-3) + +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 34 (-10) + +Notes: +* Q: Will [kubernetes/pull/95479](https://github.com/kubernetes/kubernetes/pull/95479) land on 1.20. The exception for additional time for this enhancement has been approved (https://groups.google.com/g/kubernetes-sig-release/c/y327XGmo6-4/m/93lvg7nCAQAJ) + +## Docs + +Author: Rey / reylejano-rxm + +Current Status: Green + +Updates: + - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy + - 38 docs being tracked (+21 not required / removed from milestone) + - merged: 19 + - ready for review: 4 + - in draft: 15 + - Doc PR owners have been contacted and reminded that the docs ready for review deadline is right after KubeCon NA and suggested to add doc content earlier + + +## Release Notes + +Author: James Laverack / @james.laverack + +Current Status: Yellow + +Updates: + - No significant change, reviews to come. + + +## Comms + +Author: Joseph Sandoval / @j-dawg + +Current Status: Green + +Updates: +- Release blog in progress with first draft expected 11/23 for CNCF review. +- Coordination still needed to confirm with CNCF for webinar and blackout week. Reach out to release lead by EOW. +- Feature blogs still pending. + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii +Current Status: Green + +Updates: + - Code Freeze has started yesterday (November 12th) + - Upcoming milestones: + - **beta.2**: Tuesday, November 17th (next week) + - this is the last beta release for this cycle + - **Test Freeze:** Monday, November 23th (week after KubeCon) + - **release-1.20 branch cut and jobs created**: Tuesday, December 1st + - **rc.0**: Tuesday, December 1st + - **v1.20.0**: Tuesday, December 8th + - Branch fast-forward and cherry-picks: + - After discussion with Release Managers and Release Leads, it has been decided that we will **not** do fast-forwards this release cycle + - Once the release branch is cut, PRs targeting this release have to be cherry-picked to the release branch + - Historically, we have been cutting the release branch much earlier in the release cycle, so we were doing fast-forwards to keep the master branch and the release branch in sync. This release cycle the branch cut is a week before the release + - Since there is only one week between the branch cut and the release, requiring cherry-picks allows us to have better control over what gets merged for the release + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - <!-- START HERE --> + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) + +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple + +Updates: + - <!-- START HERE --> + + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[wtb-tz-map]: https://www.worldtimebuddy.com/?qm=1&lid=100,8,30,12&h=8&date=2020-11-4&sln=7-8&hf=0 +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/2020-11-16.md b/releases/release-1.20/meeting-updates/2020-11-16.md index 42c109a4df8..bc05486903b 100644 --- a/releases/release-1.20/meeting-updates/2020-11-16.md +++ b/releases/release-1.20/meeting-updates/2020-11-16.md @@ -1,171 +1,171 @@ -# Meeting Updates 2020-11-16 - -Cutoff Time: 2020-11-16 10:30:00 PST (Times in a few other timezones as well) -Repository sync responsibility: Jeremy / @jerickar - -## Enhancements - -Author: Kirsten / @oikiki -Current Status: Green -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: 42 - - Alpha: 16 - - Beta: 14 - - Stable: 10 - - Deprecation: 2 - - At Risk: 3 - -Additional Notes: - - 1040 submitted an enhancement that was denied, then got another chance to get it in. - - 585 needs to have test promoted to conformance - - 1769 waiting for final reviews, passing all tests - -## CI Signal - -Author: Robert Kielty @RobKielty -Current Status: Yellow - -Notable Events: - -``` -From Joyce -[Failing Test] [sig-scheduling] [Feature:GPUDevicePlugin] run Nvidia GPU Device Plugin tests (ci-kubernetes-e2e-gce-device-plugin-gpu) #96519 -the last comment on the issue was an error dump of NVIDIA GPU metrics will not be available: Could not initialize NVML: could not load NVML library which does not sound ... good for a test to run Nvidia GPU Device Plugin tests. also looks like the PR is not passing this test - -``` - The following issue needs more attention - - - [Master-blocking][ci-signal-master-blocking]:(https://hackmd.io/Ktw3xb_LS7-bZlqPzKWNnQ) - - [Master-informing][ci-signal-master-informing](https://hackmd.io/TCa90ig-Q22wjpVMGYSAPw) - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: - - [1.20 informing][ci-signal-1.20-informing]: - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Bug triage - -Author: Derrik Campau / Slack Handle -Current Status: Yellow | Red -Trends: Current count (diff since last mtg) (diff since last Monday) - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 20 (0) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 1 (0) - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 6 (0) - -Query: - - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 35 (-5) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 10 (-4) - -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 34 (0) - -Additional Notes: - - Should the (diff since last Monday) be a 1 week floating diff vs set to a specific day? - - -## Docs - -Author: Anna Jung / @annajung -Current Status: Yellow - -Updates: - - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy - - 37 docs being tracked (+22 not required / removed from milestone) - - merged: 20 - - ready for review: 4 - - in draft: 13 - - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) - - 20 open PRs - - **Docs Ready for Review Deadline Nov. 23rd** - - -## Release Notes - -Author: Name / Slack Handle -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Comms - -Author: Joseph Sandoval / @j-dawg -Current Status: Green - -Updates: - - Release blog draft still in progress. First draft review 11/23. - - 3 feature blogs committed. 4th being confirmed. Goal is ideally 5. - - K8s release webinar awaits confirmation. - - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii -Current Status: Green - -Updates: - - beta.2 scheduled for tomorrow (November 17th) - - Upcoming: Test Freeze (November 23th) - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - I will be reaching out to leads to discuss role succession for 1.21 - - Reminder to add items to the retro doc as you go -> https://bit.ly/k8s120-retro - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple / @Lauri Apple -Updates: - - <!-- START HERE --> - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +# Meeting Updates 2020-11-16 + +Cutoff Time: 2020-11-16 10:30:00 PST (Times in a few other timezones as well) +Repository sync responsibility: Jeremy / @jerickar + +## Enhancements + +Author: Kirsten / @oikiki +Current Status: Green +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: 42 + - Alpha: 16 + - Beta: 14 + - Stable: 10 + - Deprecation: 2 + - At Risk: 3 + +Additional Notes: + - 1040 submitted an enhancement that was denied, then got another chance to get it in. + - 585 needs to have test promoted to conformance + - 1769 waiting for final reviews, passing all tests + +## CI Signal + +Author: Robert Kielty @RobKielty +Current Status: Yellow + +Notable Events: + +``` +From Joyce +[Failing Test] [sig-scheduling] [Feature:GPUDevicePlugin] run Nvidia GPU Device Plugin tests (ci-kubernetes-e2e-gce-device-plugin-gpu) #96519 +the last comment on the issue was an error dump of NVIDIA GPU metrics will not be available: Could not initialize NVML: could not load NVML library which does not sound ... good for a test to run Nvidia GPU Device Plugin tests. also looks like the PR is not passing this test + +``` + The following issue needs more attention + + - [Master-blocking][ci-signal-master-blocking]:(https://hackmd.io/Ktw3xb_LS7-bZlqPzKWNnQ) + - [Master-informing][ci-signal-master-informing](https://hackmd.io/TCa90ig-Q22wjpVMGYSAPw) + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: + - [1.20 informing][ci-signal-1.20-informing]: + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Bug triage + +Author: Derrik Campau / Slack Handle +Current Status: Yellow | Red +Trends: Current count (diff since last mtg) (diff since last Monday) + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 20 (0) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 1 (0) + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 6 (0) + +Query: + - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 35 (-5) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 10 (-4) + +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 34 (0) + +Additional Notes: + - Should the (diff since last Monday) be a 1 week floating diff vs set to a specific day? + + +## Docs + +Author: Anna Jung / @annajung +Current Status: Yellow + +Updates: + - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy + - 37 docs being tracked (+22 not required / removed from milestone) + - merged: 20 + - ready for review: 4 + - in draft: 13 + - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) + - 20 open PRs + - **Docs Ready for Review Deadline Nov. 23rd** + + +## Release Notes + +Author: Name / Slack Handle +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Comms + +Author: Joseph Sandoval / @j-dawg +Current Status: Green + +Updates: + - Release blog draft still in progress. First draft review 11/23. + - 3 feature blogs committed. 4th being confirmed. Goal is ideally 5. + - K8s release webinar awaits confirmation. + + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii +Current Status: Green + +Updates: + - beta.2 scheduled for tomorrow (November 17th) + - Upcoming: Test Freeze (November 23th) + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - I will be reaching out to leads to discuss role succession for 1.21 + - Reminder to add items to the retro doc as you go -> https://bit.ly/k8s120-retro + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple / @Lauri Apple +Updates: + - <!-- START HERE --> + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ [scalability-oncall]: https://go.k8s.io/oncall \ No newline at end of file diff --git a/releases/release-1.20/meeting-updates/2020-11-17.md b/releases/release-1.20/meeting-updates/2020-11-17.md index 6b04c80bc66..b388e1a1829 100644 --- a/releases/release-1.20/meeting-updates/2020-11-17.md +++ b/releases/release-1.20/meeting-updates/2020-11-17.md @@ -1,182 +1,182 @@ -# Meeting Updates 2020-11-17 - -Cutoff Time: 2020-11-17 10:00PST - -Repository sync responsibility: Jeremy Rickard / @jerickar - -## Enhancements - -Author: Kirsten / @oikiki - -Current Status: Green - -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: 42 - - Alpha: 16 - - Beta: 14 - - Stable: 10 - - Deprecation: 2 - - At Risk : 3 - -Additional Notes: - - expecting updates on At-Risk enhancements later today (final signoffs & dropping) - -## CI Signal - -Author: Robert Keilty @RobertKielty - -Current Status: Yellow to Red - -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) at Nov 17, 2020 17:37 UTC - -### [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - -Out of 19 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 12**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 6**</span> - -### [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) -at Nov 17, 2020 17:37 UTC -Out of 20 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 7**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 7**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 6**</span> - -Full report here - - - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: - - [1.20 informing][ci-signal-1.20-informing]: - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - No new response: - - Under investigation: - - Observing: - - Resolved: - - Resolved for over two weeks: - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Bug triage - -Author: Vlad Gorodetsky / bai - -Current Status: Red - -Trends: +1 PR / +13 issues - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 33 (+13) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 12 (+11) - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0 (-6) - -Query: - - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 36 (+1) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 6 (+6) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 1 (-9) - -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 20 (-14) - -Additional Notes: - - We're starting to bump milestone for PRs/issues that are not going to make it into 1.20. - - -## Docs - -Author: Anna Jung / @annajung - -Current Status: Yellow - -Updates: - - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy - - 37 docs being tracked (+22 not required / removed from milestone) - - merged: 20 - - ready for review: 4 - - in draft: 13 - - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) - - 19 open PRs - - Docs Ready for Review Deadline Nov. 23rd - - Final Docs Deadline moved to Dec. 2nd - - -## Release Notes - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Comms - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii - -Current Status: Green - -Updates: - - beta.2 release in progress, follow the #release-management channel on Slack for updates - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - <!-- START HERE --> - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) - -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple / @Lauri Apple - -Updates: - - <!-- START HERE --> - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-17 + +Cutoff Time: 2020-11-17 10:00PST + +Repository sync responsibility: Jeremy Rickard / @jerickar + +## Enhancements + +Author: Kirsten / @oikiki + +Current Status: Green + +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: 42 + - Alpha: 16 + - Beta: 14 + - Stable: 10 + - Deprecation: 2 + - At Risk : 3 + +Additional Notes: + - expecting updates on At-Risk enhancements later today (final signoffs & dropping) + +## CI Signal + +Author: Robert Keilty @RobertKielty + +Current Status: Yellow to Red + +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) at Nov 17, 2020 17:37 UTC + +### [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + +Out of 19 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 12**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 6**</span> + +### [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) +at Nov 17, 2020 17:37 UTC +Out of 20 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 7**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 7**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 6**</span> + +Full report here - + + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: + - [1.20 informing][ci-signal-1.20-informing]: + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + - No new response: + - Under investigation: + - Observing: + - Resolved: + - Resolved for over two weeks: + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Bug triage + +Author: Vlad Gorodetsky / bai + +Current Status: Red + +Trends: +1 PR / +13 issues + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 33 (+13) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 12 (+11) + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0 (-6) + +Query: + - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 36 (+1) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 6 (+6) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 1 (-9) + +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 20 (-14) + +Additional Notes: + - We're starting to bump milestone for PRs/issues that are not going to make it into 1.20. + + +## Docs + +Author: Anna Jung / @annajung + +Current Status: Yellow + +Updates: + - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy + - 37 docs being tracked (+22 not required / removed from milestone) + - merged: 20 + - ready for review: 4 + - in draft: 13 + - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) + - 19 open PRs + - Docs Ready for Review Deadline Nov. 23rd + - Final Docs Deadline moved to Dec. 2nd + + +## Release Notes + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Comms + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii + +Current Status: Green + +Updates: + - beta.2 release in progress, follow the #release-management channel on Slack for updates + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - <!-- START HERE --> + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) + +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple / @Lauri Apple + +Updates: + - <!-- START HERE --> + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/2020-11-18.md b/releases/release-1.20/meeting-updates/2020-11-18.md index 792df7a7038..f33a3e1f081 100644 --- a/releases/release-1.20/meeting-updates/2020-11-18.md +++ b/releases/release-1.20/meeting-updates/2020-11-18.md @@ -1,178 +1,178 @@ -# Meeting Updates 2020-11-18 - -Cutoff Time: 2020-11-18 12:30 UTC / 04:30 PST / 18:00 IST / 13:30 CET - -Repository sync responsibility: Nabarun Pal / @palnabarun - -## Enhancements - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: - - Alpha: - - Beta: - - Stable: - - Deprecation: - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - -## CI Signal - -Author: Robert Kielty /@RobertKeilty - -Current Status: Yellow - -Notable Events: -### [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) at Nov 18, 2020 12:55 UTC -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) -Out of 19 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 14**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 4**</span> - -### [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) at Nov 18, 2020 12:55 UTC -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) -Out of 20 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 8**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 5**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 7**</span> - - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: - - [1.20 informing][ci-signal-1.20-informing]: - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - No new response:3 - - Under investigation:27 - - Observing:23 - - Resolved:6 - - Resolved for over two weeks:183 - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Bug triage - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Trends: Current count (diff since last mtg) (diff since 1 week ago) - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: - - [priority/important-soon issues][bt-issue-1.20-important-soon]: - -Query: - - [open k/k PR’s for v1.20][bt-pr-1.20-open]: - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: - -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Docs - -Author: Anna Jung / @annajung - -Current Status: Yellow - -Updates: - - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy - - 37 docs being tracked (+22 not required / removed from milestone) - - merged: 21 - - ready for review: 3 - - in draft: 13 - - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) - - 18 open PRs - - -## Release Notes - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Comms - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii - -Current Status: Green - -Updates: - - beta.2 has been released yesterday (November 17th) - - Next: rc.0 (Tuesday, December 1st) - - Upcoming milestone: Test Freeze (Monday, November 23th) - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - <!-- START HERE --> - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) - -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple / @Lauri Apple - -Updates: - - <!-- START HERE --> - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-18 + +Cutoff Time: 2020-11-18 12:30 UTC / 04:30 PST / 18:00 IST / 13:30 CET + +Repository sync responsibility: Nabarun Pal / @palnabarun + +## Enhancements + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: + - Alpha: + - Beta: + - Stable: + - Deprecation: + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + +## CI Signal + +Author: Robert Kielty /@RobertKeilty + +Current Status: Yellow + +Notable Events: +### [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) at Nov 18, 2020 12:55 UTC +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) +Out of 19 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 14**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 4**</span> + +### [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) at Nov 18, 2020 12:55 UTC +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) +Out of 20 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 8**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 5**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 7**</span> + + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: + - [1.20 informing][ci-signal-1.20-informing]: + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + - No new response:3 + - Under investigation:27 + - Observing:23 + - Resolved:6 + - Resolved for over two weeks:183 + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Bug triage + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Trends: Current count (diff since last mtg) (diff since 1 week ago) + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: + - [priority/important-soon issues][bt-issue-1.20-important-soon]: + +Query: + - [open k/k PR’s for v1.20][bt-pr-1.20-open]: + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: + +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Docs + +Author: Anna Jung / @annajung + +Current Status: Yellow + +Updates: + - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy + - 37 docs being tracked (+22 not required / removed from milestone) + - merged: 21 + - ready for review: 3 + - in draft: 13 + - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) + - 18 open PRs + + +## Release Notes + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Comms + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii + +Current Status: Green + +Updates: + - beta.2 has been released yesterday (November 17th) + - Next: rc.0 (Tuesday, December 1st) + - Upcoming milestone: Test Freeze (Monday, November 23th) + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - <!-- START HERE --> + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) + +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple / @Lauri Apple + +Updates: + - <!-- START HERE --> + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/2020-11-19.md b/releases/release-1.20/meeting-updates/2020-11-19.md index 2a9d169e16a..d80070ad892 100644 --- a/releases/release-1.20/meeting-updates/2020-11-19.md +++ b/releases/release-1.20/meeting-updates/2020-11-19.md @@ -1,180 +1,180 @@ -# Meeting Updates 2020-11-19 - -Cutoff Time: 2020-11-19 10:00PST - -Repository sync responsibility: Nabarun Pal / @palnabarun - -## Enhancements - -Author: Kirsten Garrison / @oikiki - -Current Status: Green - -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: 44 - - Alpha: 16 - - Beta: 15 - - Stable: 11 - - Deprecation: 2 - -Additional Notes: - - all outstanding exceptions resolved! these are final numbers. - -## CI Signal - -Author: Robert Kielty /@RobertKeilty - -Current Status: Yellow - -Notable Events: -### [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) at Nov 18, 2020 12:55 UTC -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) -Out of 19 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 14**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 4**</span> - -### [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) at Nov 18, 2020 12:55 UTC -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) -Out of 20 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 8**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 5**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 7**</span> - - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: - - [1.20 informing][ci-signal-1.20-informing]: - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - No new response:3 - - Under investigation:27 - - Observing:23 - - Resolved:6 - - Resolved for over two weeks:183 - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Bug triage - -Author: Vlad Gorodetsky / @bai - -Current Status: Yellow - -Trends: Daily: -31 issues / -28 PRs, Weekly: -18 issues / -32 PRs - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 2 (-31) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 0 (-12) - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0 (0) - -Query: - - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 8 (-28) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (-6) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 4 (+3) - -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 14 (-6) - -Additional Notes: - - We're looking into automating Bug Triage reports and an automated way to preserve higher resolution issue/PR trends. Our current tooling relies on Google App Script in a Spreadsheet which is somewhat inconvenient to use. - - -## Docs - -Author: Anna Jung / @annajung - -Current Status: Yellow -Updates: - - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy - - Weekly sync [PR is open](https://github.com/kubernetes/website/pull/25115) - - 37 docs being tracked (+23 not required / removed from milestone) - - merged: 22 - - ready for review: 2 - - in draft: 12 - - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) - - 16 open PRs - - -## Release Notes - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Comms - -Author: Joseph Sandoval /@j-dawg - -Current Status: Green - -Updates: - - Webinar date tentatively confirmed for 1/8/2021 - - 6 feature blogs confirmed for this release cycle - - Release blog in progress with no blockers - - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii - -Current Status: Green - -Updates: - - beta.2 has been released yesterday (November 17th) - - Next: rc.0 (Tuesday, December 1st) - - Upcoming milestone: Test Freeze (Monday, November 23th) - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - <!-- START HERE --> - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) - -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple / @Lauri Apple - -Updates: - - <!-- START HERE --> - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-19 + +Cutoff Time: 2020-11-19 10:00PST + +Repository sync responsibility: Nabarun Pal / @palnabarun + +## Enhancements + +Author: Kirsten Garrison / @oikiki + +Current Status: Green + +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: 44 + - Alpha: 16 + - Beta: 15 + - Stable: 11 + - Deprecation: 2 + +Additional Notes: + - all outstanding exceptions resolved! these are final numbers. + +## CI Signal + +Author: Robert Kielty /@RobertKeilty + +Current Status: Yellow + +Notable Events: +### [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) at Nov 18, 2020 12:55 UTC +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) +Out of 19 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 14**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 4**</span> + +### [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) at Nov 18, 2020 12:55 UTC +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) +Out of 20 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 8**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 5**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 7**</span> + + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: + - [1.20 informing][ci-signal-1.20-informing]: + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + - No new response:3 + - Under investigation:27 + - Observing:23 + - Resolved:6 + - Resolved for over two weeks:183 + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Bug triage + +Author: Vlad Gorodetsky / @bai + +Current Status: Yellow + +Trends: Daily: -31 issues / -28 PRs, Weekly: -18 issues / -32 PRs + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 2 (-31) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 0 (-12) + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0 (0) + +Query: + - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 8 (-28) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (-6) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 4 (+3) + +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 14 (-6) + +Additional Notes: + - We're looking into automating Bug Triage reports and an automated way to preserve higher resolution issue/PR trends. Our current tooling relies on Google App Script in a Spreadsheet which is somewhat inconvenient to use. + + +## Docs + +Author: Anna Jung / @annajung + +Current Status: Yellow +Updates: + - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy + - Weekly sync [PR is open](https://github.com/kubernetes/website/pull/25115) + - 37 docs being tracked (+23 not required / removed from milestone) + - merged: 22 + - ready for review: 2 + - in draft: 12 + - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) + - 16 open PRs + + +## Release Notes + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Comms + +Author: Joseph Sandoval /@j-dawg + +Current Status: Green + +Updates: + - Webinar date tentatively confirmed for 1/8/2021 + - 6 feature blogs confirmed for this release cycle + - Release blog in progress with no blockers + + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii + +Current Status: Green + +Updates: + - beta.2 has been released yesterday (November 17th) + - Next: rc.0 (Tuesday, December 1st) + - Upcoming milestone: Test Freeze (Monday, November 23th) + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - <!-- START HERE --> + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) + +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple / @Lauri Apple + +Updates: + - <!-- START HERE --> + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/2020-11-20.md b/releases/release-1.20/meeting-updates/2020-11-20.md index 2c232ed34e3..f7ee0b0ae29 100644 --- a/releases/release-1.20/meeting-updates/2020-11-20.md +++ b/releases/release-1.20/meeting-updates/2020-11-20.md @@ -1,171 +1,171 @@ -# Meeting Updates 2020-11-20 - -Cutoff Time: 2020-11-20 08:00 PST - -Repository sync responsibility: Nabarun Pal / @palnabarun - -## Enhancements - -Author:Kirsten Garrison/ @oikiki - -Current Status: Green - -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: 44 - - Alpha: 16 - - Beta: 15 - - Stable: 11 - - Deprecation: 2 - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - -## CI Signal - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Notable Events: - - [Master-blocking][ci-signal-master-blocking]: - - [Master-informing][ci-signal-master-informing]: - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: - - [1.20 informing][ci-signal-1.20-informing]: - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - No new response: - - Under investigation: - - Observing: - - Resolved: - - Resolved for over two weeks: - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Bug triage - -Author: Derrik Campau / @Derrik Campau - -Current Status: Yellow - -Trends: Current count (diff since last mtg) (diff since 1 week ago) - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 2 (0) (-18) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 0 (0) (-1) - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0 (0) (-6) - -Query: - - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 4 (-4) (-36) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) (0) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 2 (-2) (-12) - -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 14 (0) (-20) - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Docs - -Author: Anna Jung / @annajung - -Current Status: Red -Updates: - - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy - - Weekly sync [PR is merged](https://github.com/kubernetes/website/pull/25115) - - 36 docs being tracked (+23 not required / removed from milestone) - - merged: 23 - - ready for review: 5 - - in draft: 8 - - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) - - 14 open PRs (+1 official release PR) = 15 total - - -## Release Notes - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Comms - -Author: Joseph / @j-dawg - -Current Status: Green - -Updates: - - 6 feature blogs confirmed for this release cycle - - Release blog in progress with no blockers- - - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii - -Current Status: Green - -Updates: - - Upcoming milestone: Test Freeze (Monday, November 23th, PST EOD) - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - <!-- START HERE --> - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) - -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple / @Lauri Apple - -Updates: - - <!-- START HERE --> - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-20 + +Cutoff Time: 2020-11-20 08:00 PST + +Repository sync responsibility: Nabarun Pal / @palnabarun + +## Enhancements + +Author:Kirsten Garrison/ @oikiki + +Current Status: Green + +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: 44 + - Alpha: 16 + - Beta: 15 + - Stable: 11 + - Deprecation: 2 + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + +## CI Signal + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Notable Events: + - [Master-blocking][ci-signal-master-blocking]: + - [Master-informing][ci-signal-master-informing]: + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: + - [1.20 informing][ci-signal-1.20-informing]: + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + - No new response: + - Under investigation: + - Observing: + - Resolved: + - Resolved for over two weeks: + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Bug triage + +Author: Derrik Campau / @Derrik Campau + +Current Status: Yellow + +Trends: Current count (diff since last mtg) (diff since 1 week ago) + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 2 (0) (-18) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 0 (0) (-1) + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0 (0) (-6) + +Query: + - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 4 (-4) (-36) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) (0) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 2 (-2) (-12) + +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 14 (0) (-20) + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Docs + +Author: Anna Jung / @annajung + +Current Status: Red +Updates: + - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy + - Weekly sync [PR is merged](https://github.com/kubernetes/website/pull/25115) + - 36 docs being tracked (+23 not required / removed from milestone) + - merged: 23 + - ready for review: 5 + - in draft: 8 + - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) + - 14 open PRs (+1 official release PR) = 15 total + + +## Release Notes + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Comms + +Author: Joseph / @j-dawg + +Current Status: Green + +Updates: + - 6 feature blogs confirmed for this release cycle + - Release blog in progress with no blockers- + + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii + +Current Status: Green + +Updates: + - Upcoming milestone: Test Freeze (Monday, November 23th, PST EOD) + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - <!-- START HERE --> + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) + +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple / @Lauri Apple + +Updates: + - <!-- START HERE --> + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/2020-11-23.md b/releases/release-1.20/meeting-updates/2020-11-23.md index 291a070058a..b6237088aec 100644 --- a/releases/release-1.20/meeting-updates/2020-11-23.md +++ b/releases/release-1.20/meeting-updates/2020-11-23.md @@ -1,171 +1,171 @@ -# Meeting Updates 2020-11-23 - -Cutoff Time: 2020-11-23 10:00 PST - -Repository sync responsibility: Nabarun Pal / @palnabarun - -## Enhancements - -Author: Kirsten Garrison / @oikiki - -Current Status: Green - -Updates: - - None, enhancements status unchanged - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - -## CI Signal - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Notable Events: - - [Master-blocking][ci-signal-master-blocking]: - - [Master-informing][ci-signal-master-informing]: - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: - - [1.20 informing][ci-signal-1.20-informing]: - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - No new response: - - Under investigation: - - Observing: - - Resolved: - - Resolved for over two weeks: - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Bug triage - -Author: Menna Elmasry / @Menna -Current Status: Yellow -Trends: Daily: (-1) issue / (-1) pr . Weekly: (-26) issues / (-41) pr -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 1 (-1) (-19) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 0 (0) (-1) - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0 (0) (-6) -Query: - - [open k/k PR's for v1.20][bt-pr-1.20-open]: 3 (-1) (-32) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) (0) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 2 (0) (-9) -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 14 (0) (-20) - -## Docs - -Author: Rey Lejano / @reylejano-rxm - -Current Status: Red -Updates: - - Docs Ready for Review deadline is today - - Doc owners have been contacted and reminded that Doc Ready for Review deadline is today - - 6 are in draft and at risk to miss today's deadline - - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy - - [PR for last week's weekly sync merged](https://github.com/kubernetes/website/pull/25115) - - 37 docs being tracked (+24 not required / removed from milestone) - - merged: 26 - - ready for review: 6 - - in draft: 5 - - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) - - 13 open PRs - - Doc PRs in Draft: - - [[WIP] document endpointslice ‘serving’ and ‘terminating’ conditions](https://github.com/kubernetes/website/pull/24927) - - [[WIP] add placeholder docs for disabling node ports for Service Type=LB](https://github.com/kubernetes/website/pull/24928) - - [add placeholder docs for kubelet credential provider](https://github.com/kubernetes/website/pull/24929) - - [Document SizeMemoryBackedVolumes feature for 1.20](https://github.com/kubernetes/website/pull/24906) - - [Add documentation for downward API hugepages](https://github.com/kubernetes/website/pull/24904) - - -## Release Notes - -Author: Wilson Husin / @wilsonehusin - -Current Status: Yellow - -Updates: - - [Compiling Major Themes for the release](https://docs.google.com/spreadsheets/d/1hNXHjm-RVkvzAY5w8qm7H8J7kJRZtx_5wk2Q_5abOdM/edit?usp=sharing) today, (ping `@wilsonehusin` on Slack for write access) - - -## Comms - -Author: Joseph Sandoval / @j-dawg - -Current Status: Yellow - -Updates: - - Release blog draft in progress. Waiting on CNCF participation for content. Draft review scheduled for 11/30. - - Feature blogs waiting on first drafts from KEP assignees. 2 additional drafts pending confirmation. Will drop if no response by 11/25. - - #177 Snapshot / Restore Volume Support for Kubernetes (CRD + External Controller) - - #2047 Release issue for feature CSIServiceAccountToken - - #1682 Allow CSI drivers to opt-in to volume ownership change - - #1867 Kubelet Feature: Disable AcceleratorUsage Metrics - - #606 Support 3rd party device monitoring plugins - - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii - -Current Status: Green - -Updates: - - Next: Test Freeze (Today, November 23th, PST EOD) - - rc.0 and the release branch and jobs creation scheduled for the next Tuesday (December 1st) - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - <!-- START HERE --> - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) - -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple / @Lauri Apple - -Updates: - - <!-- START HERE --> - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-23 + +Cutoff Time: 2020-11-23 10:00 PST + +Repository sync responsibility: Nabarun Pal / @palnabarun + +## Enhancements + +Author: Kirsten Garrison / @oikiki + +Current Status: Green + +Updates: + - None, enhancements status unchanged + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + +## CI Signal + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Notable Events: + - [Master-blocking][ci-signal-master-blocking]: + - [Master-informing][ci-signal-master-informing]: + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: + - [1.20 informing][ci-signal-1.20-informing]: + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + - No new response: + - Under investigation: + - Observing: + - Resolved: + - Resolved for over two weeks: + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Bug triage + +Author: Menna Elmasry / @Menna +Current Status: Yellow +Trends: Daily: (-1) issue / (-1) pr . Weekly: (-26) issues / (-41) pr +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 1 (-1) (-19) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 0 (0) (-1) + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0 (0) (-6) +Query: + - [open k/k PR's for v1.20][bt-pr-1.20-open]: 3 (-1) (-32) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) (0) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 2 (0) (-9) +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 14 (0) (-20) + +## Docs + +Author: Rey Lejano / @reylejano-rxm + +Current Status: Red +Updates: + - Docs Ready for Review deadline is today + - Doc owners have been contacted and reminded that Doc Ready for Review deadline is today + - 6 are in draft and at risk to miss today's deadline + - The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy + - [PR for last week's weekly sync merged](https://github.com/kubernetes/website/pull/25115) + - 37 docs being tracked (+24 not required / removed from milestone) + - merged: 26 + - ready for review: 6 + - in draft: 5 + - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) + - 13 open PRs + - Doc PRs in Draft: + - [[WIP] document endpointslice ‘serving’ and ‘terminating’ conditions](https://github.com/kubernetes/website/pull/24927) + - [[WIP] add placeholder docs for disabling node ports for Service Type=LB](https://github.com/kubernetes/website/pull/24928) + - [add placeholder docs for kubelet credential provider](https://github.com/kubernetes/website/pull/24929) + - [Document SizeMemoryBackedVolumes feature for 1.20](https://github.com/kubernetes/website/pull/24906) + - [Add documentation for downward API hugepages](https://github.com/kubernetes/website/pull/24904) + + +## Release Notes + +Author: Wilson Husin / @wilsonehusin + +Current Status: Yellow + +Updates: + - [Compiling Major Themes for the release](https://docs.google.com/spreadsheets/d/1hNXHjm-RVkvzAY5w8qm7H8J7kJRZtx_5wk2Q_5abOdM/edit?usp=sharing) today, (ping `@wilsonehusin` on Slack for write access) + + +## Comms + +Author: Joseph Sandoval / @j-dawg + +Current Status: Yellow + +Updates: + - Release blog draft in progress. Waiting on CNCF participation for content. Draft review scheduled for 11/30. + - Feature blogs waiting on first drafts from KEP assignees. 2 additional drafts pending confirmation. Will drop if no response by 11/25. + - #177 Snapshot / Restore Volume Support for Kubernetes (CRD + External Controller) + - #2047 Release issue for feature CSIServiceAccountToken + - #1682 Allow CSI drivers to opt-in to volume ownership change + - #1867 Kubelet Feature: Disable AcceleratorUsage Metrics + - #606 Support 3rd party device monitoring plugins + + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii + +Current Status: Green + +Updates: + - Next: Test Freeze (Today, November 23th, PST EOD) + - rc.0 and the release branch and jobs creation scheduled for the next Tuesday (December 1st) + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - <!-- START HERE --> + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) + +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple / @Lauri Apple + +Updates: + - <!-- START HERE --> + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/2020-11-24.md b/releases/release-1.20/meeting-updates/2020-11-24.md index 571c58267e3..53f141164de 100644 --- a/releases/release-1.20/meeting-updates/2020-11-24.md +++ b/releases/release-1.20/meeting-updates/2020-11-24.md @@ -1,76 +1,76 @@ -# Meeting Updates 2020-11-24 - -Cutoff Time: 2020-11-24 09:30 PST - -Repository sync responsibility: Nabarun Pal / @palnabarun - -## Bug triage - -Author: Vlad Gorodetsky / @bai - -Current Status: Green - -Trends: Daily: (-1) issue / (-3) PR. Weekly: (-26) issues / (-41) pr - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 1 (0) (-19) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 0 (0) (-1) - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0 (0) (-6) -Query: - - [open k/k PR's for v1.20][bt-pr-1.20-open]: 0 (-3) (-33) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) (0) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 0 (-2) (-9) -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all]: 13 (0) (-21) - - -## Docs - -Author: Rey Lejano / @reylejano-rxm - -Current Status: Yellow - -Updates: -- The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy -- Docs ready for review deadline was yesterday. An exception request was granted for 3 Docs PRs (same PR owner) to extend the deadline till Wednesday the 25th EOD -- All PRs except the following three have merged or are ready for review: - - [[WIP] document endpointslice ‘serving’ and ‘terminating’ conditions](https://github.com/kubernetes/website/pull/24927) - - [[WIP] add placeholder docs for disabling node ports for Service Type=LB](https://github.com/kubernetes/website/pull/24928) - - [add placeholder docs for kubelet credential provider](https://github.com/kubernetes/website/pull/24929) -- Doc PRs Reviewed & Merged deadline is Dec 2 -- 37 docs being tracked (+24 not required / removed from milestone) - - merged: 29 - - ready for review: 5 - - in draft: 3 - - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) - - 5 PRs open (+ 3 exception) - -## Release Notes - -Author: Wilson Husin / @wilsonehusin - -Current Status: Yellow - -Updates: -- Thanks for volunteers on the group effort to compile Major Themes! -- [All SIGs-to-contact has now been assigned to someone to reach out](https://docs.google.com/spreadsheets/d/1hNXHjm-RVkvzAY5w8qm7H8J7kJRZtx_5wk2Q_5abOdM/edit?usp=sharing), we'll be waiting for replies -- Some reports from SIG leads notifying missing deprecation notice / action required, will be looking at those - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-24 + +Cutoff Time: 2020-11-24 09:30 PST + +Repository sync responsibility: Nabarun Pal / @palnabarun + +## Bug triage + +Author: Vlad Gorodetsky / @bai + +Current Status: Green + +Trends: Daily: (-1) issue / (-3) PR. Weekly: (-26) issues / (-41) pr + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 1 (0) (-19) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 0 (0) (-1) + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0 (0) (-6) +Query: + - [open k/k PR's for v1.20][bt-pr-1.20-open]: 0 (-3) (-33) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) (0) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 0 (-2) (-9) +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all]: 13 (0) (-21) + + +## Docs + +Author: Rey Lejano / @reylejano-rxm + +Current Status: Yellow + +Updates: +- The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is healthy +- Docs ready for review deadline was yesterday. An exception request was granted for 3 Docs PRs (same PR owner) to extend the deadline till Wednesday the 25th EOD +- All PRs except the following three have merged or are ready for review: + - [[WIP] document endpointslice ‘serving’ and ‘terminating’ conditions](https://github.com/kubernetes/website/pull/24927) + - [[WIP] add placeholder docs for disabling node ports for Service Type=LB](https://github.com/kubernetes/website/pull/24928) + - [add placeholder docs for kubelet credential provider](https://github.com/kubernetes/website/pull/24929) +- Doc PRs Reviewed & Merged deadline is Dec 2 +- 37 docs being tracked (+24 not required / removed from milestone) + - merged: 29 + - ready for review: 5 + - in draft: 3 + - [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) + - 5 PRs open (+ 3 exception) + +## Release Notes + +Author: Wilson Husin / @wilsonehusin + +Current Status: Yellow + +Updates: +- Thanks for volunteers on the group effort to compile Major Themes! +- [All SIGs-to-contact has now been assigned to someone to reach out](https://docs.google.com/spreadsheets/d/1hNXHjm-RVkvzAY5w8qm7H8J7kJRZtx_5wk2Q_5abOdM/edit?usp=sharing), we'll be waiting for replies +- Some reports from SIG leads notifying missing deprecation notice / action required, will be looking at those + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/2020-11-25.md b/releases/release-1.20/meeting-updates/2020-11-25.md index f67996b267b..069199b2e96 100644 --- a/releases/release-1.20/meeting-updates/2020-11-25.md +++ b/releases/release-1.20/meeting-updates/2020-11-25.md @@ -1,194 +1,194 @@ -# Meeting Updates 2020-11-25 - -Cutoff Time: 2020-11-25 05:00 PST - -Repository sync responsibility: Nabarun Pal / @palnabarun - -## Enhancements - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: - - Alpha: - - Beta: - - Stable: - - Deprecation: - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - -## CI Signal - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Notable Events: - - [Master-blocking][ci-signal-master-blocking]: - - [Master-informing][ci-signal-master-informing]: - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: - - [1.20 informing][ci-signal-1.20-informing]: - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - No new response: - - Under investigation: - - Observing: - - Resolved: - - Resolved for over two weeks: - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Bug triage - -Author: Sayan Chowdhury / @yudocaa - -Current Status: Green - -Trends: Daily: (0) issue / (0) PR. Weekly: (-1) issues / (-12) PR - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 1 (0) (-1) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 0 (0) (0) - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0 (0) (0) - -Query: - - [open k/k PR's for v1.20][bt-pr-1.20-open]: 0 (0) (-8) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) (0) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 0 (0) (-4) - -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all]: 13 (0) (-1) - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Docs - -Author: Anna Jung / @annajung - -Current Status: Yellow - -Updates: -- The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is NOT healthy - - Planning on completing master sync today to resolve the conflict -- 36 docs being tracked (+24 not required / removed from milestone) - - merged: 30 - - ready for review: 5 - - https://github.com/kubernetes/website/pull/25164 - - Needs Rebase - Not related to enhancement - - https://github.com/kubernetes/website/pull/24921 - - Waiting on changes from PR owner - - https://github.com/kubernetes/website/pull/24906 - - Waiting on changes from PR owner - - https://github.com/kubernetes/website/pull/24904 - - Waiting on changes from PR owner - - https://github.com/kubernetes/website/pull/25226 - - Needs doc/tech review - - in draft: 2 (Exceptions) - - [[WIP] document endpointslice ‘serving’ and ‘terminating’ conditions](https://github.com/kubernetes/website/pull/24927) - - [[WIP] add placeholder docs for disabling node ports for Service Type=LB](https://github.com/kubernetes/website/pull/24928) -- [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) - - 7 PRs open (+1 release branch) = 8 total - - -## Release Notes - -Author: Wilson Husin - -Current Status: Yellow - -Updates: -- I believe at this point all SIGs have been contacted (shoutout to everyone helping out!) -- I will be updating our tracking sheet ([Sheet 4 on this document](https://docs.google.com/spreadsheets/d/1hNXHjm-RVkvzAY5w8qm7H8J7kJRZtx_5wk2Q_5abOdM/edit?usp=sharing)) as informantion come in, but so far I'm looking at APIs which graduate in this release to be added [according to the Docs preview](https://deploy-preview-24138--kubernetes-io-master-staging.netlify.app/docs/reference/command-line-tools-reference/feature-gates/), at least there are 20 (shoutout to @sftim for pointing out!) -- Also shoutout to SIG Storage for having a document ready that they share their write out for us! - - -## Comms - -Author: Divya Mohan/Divya - -Current Status: Yellow - -Updates: - - Release blog draft in progress. Waiting on CNCF participation for content. Draft review scheduled for 11/30. - - Feature blogs waiting on first drafts from KEP assignees. 2 additional drafts pending confirmation. Will drop if no response by 11/25. - - #177 Snapshot / Restore Volume Support for Kubernetes (CRD + External Controller) - - #2047 Release issue for feature CSIServiceAccountToken - - #1682 Allow CSI drivers to opt-in to volume ownership change - - #1867 Kubelet Feature: Disable AcceleratorUsage Metrics - - #606 Support 3rd party device monitoring plugins - - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii - -Current Status: Green - -Updates: - - Three milestones upcoming on Tuesday (December 1st) - - rc.0 release - - release-1.20 branch cut - - release jobs and dashboards creation - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - <!-- START HERE --> - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) - -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple / @Lauri Apple - -Updates: - - <!-- START HERE --> - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-25 + +Cutoff Time: 2020-11-25 05:00 PST + +Repository sync responsibility: Nabarun Pal / @palnabarun + +## Enhancements + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: + - Alpha: + - Beta: + - Stable: + - Deprecation: + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + +## CI Signal + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Notable Events: + - [Master-blocking][ci-signal-master-blocking]: + - [Master-informing][ci-signal-master-informing]: + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: + - [1.20 informing][ci-signal-1.20-informing]: + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + - No new response: + - Under investigation: + - Observing: + - Resolved: + - Resolved for over two weeks: + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Bug triage + +Author: Sayan Chowdhury / @yudocaa + +Current Status: Green + +Trends: Daily: (0) issue / (0) PR. Weekly: (-1) issues / (-12) PR + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 1 (0) (-1) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 0 (0) (0) + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0 (0) (0) + +Query: + - [open k/k PR's for v1.20][bt-pr-1.20-open]: 0 (0) (-8) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: 0 (0) (0) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: 0 (0) (-4) + +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all]: 13 (0) (-1) + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Docs + +Author: Anna Jung / @annajung + +Current Status: Yellow + +Updates: +- The [dev-1.20 branch](https://github.com/kubernetes/website/pull/24138) is NOT healthy + - Planning on completing master sync today to resolve the conflict +- 36 docs being tracked (+24 not required / removed from milestone) + - merged: 30 + - ready for review: 5 + - https://github.com/kubernetes/website/pull/25164 + - Needs Rebase - Not related to enhancement + - https://github.com/kubernetes/website/pull/24921 + - Waiting on changes from PR owner + - https://github.com/kubernetes/website/pull/24906 + - Waiting on changes from PR owner + - https://github.com/kubernetes/website/pull/24904 + - Waiting on changes from PR owner + - https://github.com/kubernetes/website/pull/25226 + - Needs doc/tech review + - in draft: 2 (Exceptions) + - [[WIP] document endpointslice ‘serving’ and ‘terminating’ conditions](https://github.com/kubernetes/website/pull/24927) + - [[WIP] add placeholder docs for disabling node ports for Service Type=LB](https://github.com/kubernetes/website/pull/24928) +- [k/website 1.20 Open PRs](https://github.com/kubernetes/website/pulls?q=is%3Aopen+is%3Apr+milestone%3A1.20) + - 7 PRs open (+1 release branch) = 8 total + + +## Release Notes + +Author: Wilson Husin + +Current Status: Yellow + +Updates: +- I believe at this point all SIGs have been contacted (shoutout to everyone helping out!) +- I will be updating our tracking sheet ([Sheet 4 on this document](https://docs.google.com/spreadsheets/d/1hNXHjm-RVkvzAY5w8qm7H8J7kJRZtx_5wk2Q_5abOdM/edit?usp=sharing)) as informantion come in, but so far I'm looking at APIs which graduate in this release to be added [according to the Docs preview](https://deploy-preview-24138--kubernetes-io-master-staging.netlify.app/docs/reference/command-line-tools-reference/feature-gates/), at least there are 20 (shoutout to @sftim for pointing out!) +- Also shoutout to SIG Storage for having a document ready that they share their write out for us! + + +## Comms + +Author: Divya Mohan/Divya + +Current Status: Yellow + +Updates: + - Release blog draft in progress. Waiting on CNCF participation for content. Draft review scheduled for 11/30. + - Feature blogs waiting on first drafts from KEP assignees. 2 additional drafts pending confirmation. Will drop if no response by 11/25. + - #177 Snapshot / Restore Volume Support for Kubernetes (CRD + External Controller) + - #2047 Release issue for feature CSIServiceAccountToken + - #1682 Allow CSI drivers to opt-in to volume ownership change + - #1867 Kubelet Feature: Disable AcceleratorUsage Metrics + - #606 Support 3rd party device monitoring plugins + + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii + +Current Status: Green + +Updates: + - Three milestones upcoming on Tuesday (December 1st) + - rc.0 release + - release-1.20 branch cut + - release jobs and dashboards creation + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - <!-- START HERE --> + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) + +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple / @Lauri Apple + +Updates: + - <!-- START HERE --> + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/2020-11-27.md b/releases/release-1.20/meeting-updates/2020-11-27.md index e3363f99950..dba740e8053 100644 --- a/releases/release-1.20/meeting-updates/2020-11-27.md +++ b/releases/release-1.20/meeting-updates/2020-11-27.md @@ -1,164 +1,164 @@ -# Meeting Updates 2020-11-27 - -Cutoff Time: 2020-11-27 08:00 PT - -Repository sync responsibility: Nabarun Pal / @palnabarun - -## Enhancements - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: - - Alpha: - - Beta: - - Stable: - - Deprecation: - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - -## CI Signal - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Notable Events: - - [Master-blocking][ci-signal-master-blocking]: - - [Master-informing][ci-signal-master-informing]: - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: - - [1.20 informing][ci-signal-1.20-informing]: - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - No new response: - - Under investigation: - - Observing: - - Resolved: - - Resolved for over two weeks: - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Bug triage - -Author: Max Körbächer / @mkorbi - -Current Status: Green - -Trends: Daily: (0)issue/ (1)PR. - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 1(0) - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 0(0) - - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0(0) - -Query: - - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 1(+1) - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]:0(0) - - [priority/important-soon PRs][bt-pr-1.20-important-soon]:0(0) - -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 13(0) - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Docs - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Release Notes - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Comms - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Release Branch Management - -Author: Marko Mudrinić / xmudrii - -Current Status: Green - -Updates: - - Upcoming: rc.0 and release branch cut on Tuesday (December 1st) - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - <!-- START HERE --> - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) - -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple / @Lauri Apple - -Updates: - - <!-- START HERE --> - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates 2020-11-27 + +Cutoff Time: 2020-11-27 08:00 PT + +Repository sync responsibility: Nabarun Pal / @palnabarun + +## Enhancements + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: + - Alpha: + - Beta: + - Stable: + - Deprecation: + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + +## CI Signal + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Notable Events: + - [Master-blocking][ci-signal-master-blocking]: + - [Master-informing][ci-signal-master-informing]: + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: + - [1.20 informing][ci-signal-1.20-informing]: + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + - No new response: + - Under investigation: + - Observing: + - Resolved: + - Resolved for over two weeks: + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Bug triage + +Author: Max Körbächer / @mkorbi + +Current Status: Green + +Trends: Daily: (0)issue/ (1)PR. + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 1(0) + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: 0(0) + - [priority/important-soon issues][bt-issue-1.20-important-soon]: 0(0) + +Query: + - [open k/k PR’s for v1.20][bt-pr-1.20-open]: 1(+1) + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]:0(0) + - [priority/important-soon PRs][bt-pr-1.20-important-soon]:0(0) + +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: 13(0) + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Docs + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Release Notes + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Comms + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Release Branch Management + +Author: Marko Mudrinić / xmudrii + +Current Status: Green + +Updates: + - Upcoming: rc.0 and release branch cut on Tuesday (December 1st) + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - <!-- START HERE --> + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) + +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple / @Lauri Apple + +Updates: + - <!-- START HERE --> + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/TEMPLATE.md b/releases/release-1.20/meeting-updates/TEMPLATE.md index 1cad359973d..8b8010f3e1e 100644 --- a/releases/release-1.20/meeting-updates/TEMPLATE.md +++ b/releases/release-1.20/meeting-updates/TEMPLATE.md @@ -1,164 +1,164 @@ -# Meeting Updates YYYY-mm-dd - -Cutoff Time: YYYY-mm-dd HH:MM:SS (Times in a few other timezones as well) - -Repository sync responsibility: Name / Slack Handle - -## Enhancements - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] - -Metrics: # - - Tracked: - - Alpha: - - Beta: - - Stable: - - Deprecation: - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - -## CI Signal - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Notable Events: - - [Master-blocking][ci-signal-master-blocking]: - - [Master-informing][ci-signal-master-informing]: - - [release-misc][ci-signal-release-misc]: - - [1.20 blocking][ci-signal-1.20-blocking]: - - [1.20 informing][ci-signal-1.20-informing]: - - Flaky Jobs: - -[CI Signal Team Dashboard][ci-signal-team-dashboard] - - No new response: - - Under investigation: - - Observing: - - Resolved: - - Resolved for over two weeks: - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Bug triage - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Trends: Current count (diff since last mtg) (diff since 1 week ago) - -Query: - - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: - - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: - - [priority/important-soon issues][bt-issue-1.20-important-soon]: - -Query: - - [open k/k PR’s for v1.20][bt-pr-1.20-open]: - - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: - - [priority/important-soon PRs][bt-pr-1.20-important-soon]: - -Query: - - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: - -Additional Notes: - - <!-- ANY ADDITIONAL UPDATE --> - - -## Docs - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Release Notes - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Comms - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Release Branch Management - -Author: Name / Slack Handle - -Current Status: Green | Yellow | Red - -Updates: - - <!-- START HERE --> - - -## Emeritus Lead - -Author: Lachlan Evenson / @lachie83 - -Updates: - - <!-- START HERE --> - - -## Release Lead - -Author: Name / Slack Handle - -Timeline Review: - - <!-- Important events in current week --> -Updates: - - <!-- START HERE --> - - -## SIG Scalability - -Author: @tosi3k ([On Call][scalability-oncall]) - -Updates: - - <!-- START HERE --> - -## Program Management - -Author: Lauri Apple / @Lauri Apple - -Updates: - - <!-- START HERE --> - - -<!-- References henceforth. Please modify if you see anything out of the place. --> - -[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements -[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking -[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing -[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc -[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking -[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing -[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true -[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ -[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ -[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent -[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ -[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ -[scalability-oncall]: https://go.k8s.io/oncall +# Meeting Updates YYYY-mm-dd + +Cutoff Time: YYYY-mm-dd HH:MM:SS (Times in a few other timezones as well) + +Repository sync responsibility: Name / Slack Handle + +## Enhancements + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Tracking Sheet: [Kubernetes 1.20 Enhancements][enhancements-tracking] + +Metrics: # + - Tracked: + - Alpha: + - Beta: + - Stable: + - Deprecation: + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + +## CI Signal + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Notable Events: + - [Master-blocking][ci-signal-master-blocking]: + - [Master-informing][ci-signal-master-informing]: + - [release-misc][ci-signal-release-misc]: + - [1.20 blocking][ci-signal-1.20-blocking]: + - [1.20 informing][ci-signal-1.20-informing]: + - Flaky Jobs: + +[CI Signal Team Dashboard][ci-signal-team-dashboard] + - No new response: + - Under investigation: + - Observing: + - Resolved: + - Resolved for over two weeks: + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Bug triage + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Trends: Current count (diff since last mtg) (diff since 1 week ago) + +Query: + - [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: + - [priority/critical-urgent issues][bt-issue-1.20-critical-urgent]: + - [priority/important-soon issues][bt-issue-1.20-important-soon]: + +Query: + - [open k/k PR’s for v1.20][bt-pr-1.20-open]: + - [priority/critical-urgent PRs][bt-pr-1.20-critical-urgent]: + - [priority/important-soon PRs][bt-pr-1.20-important-soon]: + +Query: + - [ALL open k/k issues for v1.20][bt-issue-1.20-all] including [open non-test/flake k/k issues for v1.20][bt-issue-1.20-open-kk-non-failing]: + +Additional Notes: + - <!-- ANY ADDITIONAL UPDATE --> + + +## Docs + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Release Notes + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Comms + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Release Branch Management + +Author: Name / Slack Handle + +Current Status: Green | Yellow | Red + +Updates: + - <!-- START HERE --> + + +## Emeritus Lead + +Author: Lachlan Evenson / @lachie83 + +Updates: + - <!-- START HERE --> + + +## Release Lead + +Author: Name / Slack Handle + +Timeline Review: + - <!-- Important events in current week --> +Updates: + - <!-- START HERE --> + + +## SIG Scalability + +Author: @tosi3k ([On Call][scalability-oncall]) + +Updates: + - <!-- START HERE --> + +## Program Management + +Author: Lauri Apple / @Lauri Apple + +Updates: + - <!-- START HERE --> + + +<!-- References henceforth. Please modify if you see anything out of the place. --> + +[enhancements-tracking]: https://bit.ly/k8s-1-20-enhancements +[ci-signal-master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking +[ci-signal-master-informing]: https://testgrid.k8s.io/sig-release-master-informing +[ci-signal-release-misc]: https://testgrid.k8s.io/sig-release-misc +[ci-signal-1.20-blocking]: https://testgrid.k8s.io/sig-release-1.20-blocking +[ci-signal-1.20-informing]: https://testgrid.k8s.io/sig-release-1.20-informing +[ci-signal-team-dashboard]: https://github.com/orgs/kubernetes/projects/11?fullscreen=true +[bt-issue-1.20-open-kk-non-failing]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fcritical-urgent+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-issue-1.20-important-soon]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Aissue+sort%3Aupdated-asc+-label%3Akind%2Ffailing-test+-label%3Akind%2Fflake+ +[bt-pr-1.20-open]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+ +[bt-pr-1.20-critical-urgent]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+is%3Apr+sort%3Aupdated-asc+label%3Apriority%2Fcritical-urgent +[bt-pr-1.20-important-soon]: https://github.com/kubernetes/kubernetes/pulls?q=repo%3Akubernetes%2Fkubernetes+is%3Aopen+milestone%3Av1.20+label%3Apriority%2Fimportant-soon+is%3Apr+sort%3Aupdated-asc+ +[bt-issue-1.20-all]: https://github.com/kubernetes/kubernetes/issues?q=repo%3Akubernetes%2Fkubernetes+milestone%3Av1.20+is%3Aissue+is%3Aopen+sort%3Aupdated-asc+ +[scalability-oncall]: https://go.k8s.io/oncall diff --git a/releases/release-1.20/meeting-updates/ci-status/rel-full.md b/releases/release-1.20/meeting-updates/ci-status/rel-full.md index da4f9c30b39..ec4d6ddb8d7 100755 --- a/releases/release-1.20/meeting-updates/ci-status/rel-full.md +++ b/releases/release-1.20/meeting-updates/ci-status/rel-full.md @@ -1,1013 +1,1013 @@ -# [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) at Nov 19, 2020 18:04 UTC - -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) -Out of 19 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 12**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 6**</span> - -## Passing Jobs -<details> -<summary>Expand 12 passing Jobs</summary> - [Conformance - GCE - master]() [bazel-build-master]() [build-master]() [build-master-fast]() [conformance-ga-only]() [gce-cos-master-alpha-features]() [gce-cos-master-scalability-100]() [gci-gce-ingress]() [integration-master]() [node-kubelet-master]() [skew-cluster-latest-kubectl-stable1-gce]() [verify-master]() -</details> - -## Flaking Jobs -<details> -<summary>Expand 6 Flaking Jobs</summary> - -### [bazel-test-master](https://testgrid.k8s.io/sig-release-master-blocking#bazel-test-master&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner //pkg/kubelet/volumemanager/reconciler/go_default_test:run_1_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/util/webhook/go_default_test:run_2_of_2 [] - -1. job-owner //pkg/kubelet/volumemanager/reconciler/go_default_test:run_2_of_2 [] - -1. job-owner //pkg/controller/volume/attachdetach/reconciler/go_default_test:run_2_of_2 [] - -1. job-owner //pkg/kubelet/cm/devicemanager/go_default_test:run_1_of_2 [] - -1. job-owner //pkg/controller/volume/attachdetach/reconciler/go_default_test:run_1_of_2 [] - -1. job-owner //staging/src/k8s.io/legacy-cloud-providers/vsphere/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/go_default_test:run_1_of_2 [] - -1. job-owner //pkg/kubelet/cm/devicemanager/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/server/filters/go_default_test:run_1_of_2 [] - -1. job-owner //staging/src/k8s.io/client-go/examples/fake-client/go_default_test:run_2_of_2 [] - -1. job-owner //pkg/kubelet/config/go_default_test:run_1_of_2 [] - -1. job-owner //pkg/volume/csi/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/legacy-cloud-providers/vsphere/go_default_test:run_1_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/server/filters/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/server/options/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/server/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/legacy-cloud-providers/azure/go_default_test:run_2_of_2 [] - -1. job-owner //staging/src/k8s.io/apiserver/pkg/storage/cacher/go_default_test:run_1_of_2 [] - -1. job-owner //pkg/kubelet/config/go_default_test:run_2_of_2 [] - -1. job-owner //pkg/registry/autoscaling/horizontalpodautoscaler/storage/go_default_test:run_1_of_2 [] - -1. job-owner //staging/src/k8s.io/client-go/util/flowcontrol/go_default_test:run_2_of_2 [] - -</details> - -### [gce-cos-master-default](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-default&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Test [] - -1. job-owner Overall [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NodeProblemDetector [DisabledForLargeClusters] should run without error [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] API priority and fairness should ensure that requests can't be drowned out (priority) [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for multiple endpoint-Services with same selector [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: http [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: udp [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a ClusterIP service [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should surface a failure condition on a common issue like exceeded quota [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a exec "cat /tmp/health" liveness probe [NodeConformance] [Conformance] [] - -1. job-owner Timeout [] - -1. job-owner DumpClusterLogs [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should verify ResourceQuota with best effort scope. [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should run through the lifecycle of Pods and PodStatus [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for service with type clusterIP [LinuxOnly] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Simple pod should return command exit codes [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should support basic nodePort: udp functionality [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to up and down services [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity work for NodePort service [LinuxOnly] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should not disrupt a cloud load-balancer's connectivity during rollout [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should implement legacy replacement when the update strategy is OnDelete [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications with PVCs [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for service endpoints using hostNetwork [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support existing directory [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume storage capacity exhausted, late binding, no topology [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Flexvolumes should be mountable when non-attachable [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should be able to handle large requests: udp [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] CronJob should remove from active list jobs that have been deleted [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] API priority and fairness should ensure that requests can be classified by testing flow-schemas/priority-levels [] - -1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for endpoint-Service: http [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a /healthz http liveness probe [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for endpoint-Service: udp [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Subpath Atomic writer volumes should support subpaths with secret pod [LinuxOnly] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource [] - -1. [sig-instrumentation] Kubernetes e2e suite.[sig-instrumentation] MetricsGrabber should grab all metrics from a Scheduler. [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for client IP based session affinity: udp [LinuxOnly] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should be able to handle large requests: http [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: udp [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should run the lifecycle of a Deployment [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap optional updates should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a configMap. [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap updates should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should implement service.kubernetes.io/headless [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl expose should create services for rc [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: udp [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: http [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Proxy version v1 should proxy through a service and a pod [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Service endpoints latency should not be very high [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to ClusterIP [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be rejected when no endpoints exist [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should preserve source pod IP for traffic thru service cluster IP [LinuxOnly] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: http [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Simple pod should support inline execution and attach [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default command (docker entrypoint) [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] - -</details> - -### [gce-cos-master-reboot](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-reboot&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner DumpClusterLogs [] - -1. job-owner TearDown [] - -1. job-owner Timeout [] - -1. [sig-cloud-provider-gcp] Kubernetes e2e suite.[k8s.io] [sig-cloud-provider-gcp] Reboot [Disruptive] [Feature:Reboot] each node by ordering clean reboot and ensure they function upon restart [] - -1. job-owner Test [] - -</details> - -### [gce-ubuntu-master-containerd](https://testgrid.k8s.io/sig-release-master-blocking#gce-ubuntu-master-containerd&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for multiple endpoint-Services with same selector [] - -1. job-owner DumpClusterLogs [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: dir-bindmounted] One pod requesting one prebound PVC should be able to mount volume and read from pod1 [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Simple pod should support inline execution and attach [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should resolve DNS of partial qualified names for services [LinuxOnly] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should run the lifecycle of a Deployment [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NodeProblemDetector [DisabledForLargeClusters] should run without error [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should serve a basic image on each replica with a private image [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI online volume expansion should expand volume without restarting pod if attach=off, nodeExpansion=on [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS when invoking the Recycle reclaim policy should test that a PV becomes Available and is clean after the PVC is deleted. [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should surface a failure condition on a common issue like exceeded quota [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] EndpointSlice should create Endpoints and EndpointSlices for Pods matching a Service [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount [] - -1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a configMap. [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[sig-node] RuntimeClass should run a Pod requesting a RuntimeClass with a configured handler [NodeFeature:RuntimeHandler] [] - -</details> - -### [kind-ipv6-master-parallel](https://testgrid.k8s.io/sig-release-master-blocking#kind-ipv6-master-parallel&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] API priority and fairness should ensure that requests can be classified by testing flow-schemas/priority-levels [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] KubeProxy should set TCP CLOSE_WAIT timeout [Privileged] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for multiple CRDs of same group and version but different kinds [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path [] - -</details> - -### [kind-master-parallel](https://testgrid.k8s.io/sig-release-master-blocking#kind-master-parallel&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] API priority and fairness should ensure that requests can be classified by testing flow-schemas/priority-levels [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Subpath Container restart should verify that container can restart successfully after configmaps modified [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=off, nodeExpansion=on [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should run the lifecycle of a Deployment [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PVC Protection Verify that scheduling of a pod that uses PVC that is being deleted fails and the pod becomes Unschedulable [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for multiple CRDs of same group but different versions [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] EmptyDir volumes should support (non-root,0644,tmpfs) [LinuxOnly] [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly] [] - -</details> - -</details> - -## Failing Jobs -<details> -<summary>Expand 1 Failing Jobs</summary> - -### [gce-device-plugin-gpu-master]() -<details> -<summary>Expand failed tests</summary> - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] [Feature:GPUDevicePlugin] run Nvidia GPU Device Plugin tests [] - -1. job-owner DumpClusterLogs [] - -1. job-owner Kubernetes e2e suite.BeforeSuite [] - -1. job-owner Overall [] - -1. job-owner Test [] - -</details> - -</details> - - -# [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) at Nov 19, 2020 18:04 UTC -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) -Out of 20 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 8**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 5**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 7**</span> -## Passing Jobs -<details> -<summary>Expand 8 passing Jobs</summary> - [bazel-build-master]() [build-master-canary]() [kubeadm-kinder-latest]() [kubeadm-kinder-latest-on-1-19]() [node-kubelet-features-master]() [post-kubernetes-push-image-pause]() [post-release-push-image-kube-cross]() [post-release-push-image-vulndash]() -</details> - -## Flaking Jobs -<details> -<summary>Expand 7 Flaking Jobs</summary> - -### [gce-cos-master-serial](https://testgrid.k8s.io/sig-release-master-informing#gce-cos-master-serial&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] only evicts pods without tolerations from tainted nodes [] - -1. [sig-cloud-provider-gcp] Kubernetes e2e suite.[k8s.io] [sig-cloud-provider-gcp] Restart [Disruptive] should restart all nodes and ensure all nodes and pods recover [] - -1. job-owner DumpClusterLogs [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Single Pod [Serial] eventually evict pod with finite tolerations from tainted nodes [] - -1. [sig-cloud-provider-gcp] Kubernetes e2e suite.[k8s.io] [sig-cloud-provider-gcp] Nodes [Disruptive] Resize [Slow] should be able to delete nodes [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] volume-stress multiple pods should access different volumes repeatedly [Slow] [Serial] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance] [] - -</details> - -### [gce-cos-master-slow](https://testgrid.k8s.io/sig-release-master-informing#gce-cos-master-slow&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow][LinuxOnly] [] - -1. job-owner DumpClusterLogs [] - -1. job-owner Timeout [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow][LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local StatefulSet with pod affinity [Slow] should use volumes on one node when pod has affinity [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local StatefulSet with pod affinity [Slow] should use volumes on one node when pod management is parallel and pod has affinity [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI volume limit information using mock driver should report attach limit when limit is bigger than 0 [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data [] - -1. job-owner diffResources [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to switch session affinity for LoadBalancer service with ESIPP on [Slow] [DisabledForLargeClusters] [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] Set fsGroup for local volume should set fsGroup for one pod [Slow] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update nodePort: udp [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPathType Block Device [Slow] Should fail on mounting non-existent block device 'does-not-exist-blk-dev' when HostPathType is HostPathBlockDev [] - -</details> - -### [gce-master-scale-correctness](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-correctness&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should have a working scale subresource [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should only allow access from service loadbalancer source ranges [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] - -</details> - -### [gce-master-scale-performance](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-performance&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner ClusterLoaderV2 [] - -1. job-owner ClusterLoaderV2.load overall (testing/load/config.yaml) [] - -1. job-owner ClusterLoaderV2.load: [step: 25] Collecting measurements [] - -1. job-owner ClusterLoaderV2.load: [step: 20] Waiting for objects to become scaled [] - -1. job-owner ClusterLoaderV2.load: [step: 22] Waiting for pods to be deleted [] - -</details> - -### [gce-windows-2019-master](https://testgrid.k8s.io/sig-release-master-informing#gce-windows-2019-master&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource [] - -1. job-owner Overall [] - -1. [sig-windows] Kubernetes e2e suite.[sig-windows] Services should be able to create a functioning NodePort service for Windows [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should use the image defaults if command and args are blank [NodeConformance] [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve multiport endpoints from pods [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve a basic endpoint from pods [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be consumable from pods in volume [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should cap back-off at MaxContainerBackOff [Slow][NodeConformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should delete old replica sets [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] - -1. [sig-windows] Kubernetes e2e suite.[sig-windows] Windows volume mounts check volume mount permissions container should have readOnly permissions on hostMapPath [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should have their auto-restart back-off timer reset on image update [Slow][NodeConformance] [] - -1. job-owner DumpClusterLogs [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default command and arguments [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should support retrieving logs from the container over websockets [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow substituting values in a container's args [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPath should support subPath [NodeConformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected combined should project all components that make up the projection API [Projection][NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected secret should be able to mount in a volume regardless of a different secret existing with same name in different namespace [NodeConformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should contain environment variables for services [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Secrets should be consumable from pods in env vars [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default arguments (docker cmd) [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should allow activeDeadlineSeconds to be updated [NodeConformance] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should have monotonically increasing restart count [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should honor timeout [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support proportional scaling [Conformance] [] - -1. job-owner Up [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny attaching pod [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl describe should check if kubectl describe prints relevant information for rc and pods [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should support configurable pod DNS nameservers [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[sig-node] Downward API should provide pod name, namespace and IP address as env vars [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's cpu limit [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume [NodeConformance] [Conformance] [] - -1. [sig-windows] Kubernetes e2e suite.[sig-windows] Hybrid cluster network for all supported CNIs should have stable networking for Linux and Windows pods [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl replace should update a single-container pod's image [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should provide DNS for the cluster [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Kubelet when scheduling a busybox command that always fails in a pod should have an terminated reason [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Proxy version v1 should proxy through a service and a pod [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] EmptyDir wrapper volumes should not conflict [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be able to mount in a volume regardless of a different secret existing with same name in different namespace [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should provide DNS for ExternalName services [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPath should support r/w [NodeConformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] - -</details> - -### [kubeadm-kinder-upgrade-1-19-latest](https://testgrid.k8s.io/sig-release-master-informing#kubeadm-kinder-upgrade-1-19-latest&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -1. job-owner task-09-e2e-after [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should have a working scale subresource [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] patching/updating a mutating webhook should work [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] patching/updating a validating webhook should work [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should not be able to mutate or prevent deletion of webhook configuration objects [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should serve a basic image on each replica with a public image [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] listing mutating webhooks should work [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with different stored version [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers and fail the pod if init containers fail on a RestartNever pod [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for CRD preserving unknown fields in an embedded object [Conformance] [] - -</details> - -### [post-release-push-image-go-runner](https://testgrid.k8s.io/sig-release-master-informing#post-release-push-image-go-runner&exclude-non-failed-tests=) -<details> -<summary>Expand flaking tests</summary> - -1. job-owner Overall [] - -</details> - -</details> - -## Failing Jobs -<details> -<summary>Expand 5 Failing Jobs</summary> - -### [Conformance - OpenStack]() -<details> -<summary>Expand failed tests</summary> - -1. job-owner DumpClusterLogs [] - -1. job-owner Test [] - -1. job-owner Timeout [] - -1. job-owner Overall [] - -</details> - -### [capa-conformance-v1alpha3-k8s-master]() -<details> -<summary>Expand failed tests</summary> - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should update pod when spec was updated and update strategy is RollingUpdate [Conformance] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] - -1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance] [1] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should provide DNS for ExternalName services [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity work for service with type clusterIP [LinuxOnly] [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [1] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [2] [] - -1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should mount projected service account token [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu request [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should retry creating failed daemon pods [Conformance] [] - -1. job-owner Overall [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should run and stop complex daemon [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Update Demo should scale a replication controller [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for node-pod communication: udp [LinuxOnly] [NodeConformance] [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Runtime blackbox test on terminated container should report termination message [LinuxOnly] as empty when pod succeeds and TerminationMessagePolicy FallbackToLogsOnError is set [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for node-pod communication: http [LinuxOnly] [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] - -1. job-owner capa-e2e.conformance tests conformance [] - -</details> - -### [capg-conformance-v1alpha3-k8s-master]() -<details> -<summary>Expand failed tests</summary> - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for CRD preserving unknown fields in an embedded object [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[sig-node] RuntimeClass should support RuntimeClasses API operations [Conformance] [] - -1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should mount projected service account token [Conformance] [] - -1. job-owner Overall [] - -</details> - -### [gce-ubuntu-master-default]() -<details> -<summary>Expand failed tests</summary> - -1. job-owner Timeout [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should have a working scale subresource [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] CronJob should remove from active list jobs that have been deleted [] - -1. job-owner TearDown [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=off, nodeExpansion=on [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] API priority and fairness should ensure that requests can't be drowned out (fairness) [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted by liveness probe because startup probe delays it [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Simple pod should support inline execution and attach [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: http [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ext3)] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2 [] - -1. job-owner Overall [] - -1. job-owner Test [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with pruning [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl expose should create services for rc [Conformance] [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] kubelet [k8s.io] [sig-node] Clean up pods on node kubelet should be able to delete 10 pods per node in 1m0s. [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should not disrupt a cloud load-balancer's connectivity during rollout [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for multiple endpoint-Services with same selector [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2 [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: dir-link] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2 [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should be restarted with a docker exec liveness probe with timeout [] - -1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should not expand volume if resizingOnDriver=off, resizingOnSC=on [] - -</details> - -### [gce-windows-1909-master]() -<details> -<summary>Expand failed tests</summary> - -1. job-owner Overall [] - -1. job-owner [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource [] - -1. [sig-windows] Kubernetes e2e suite.[sig-windows] Services should be able to create a functioning NodePort service for Windows [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance] [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] - -1. job-owner Up [] - -1. [sig-node] Kubernetes e2e suite.[sig-node] Downward API should provide pod name, namespace and IP address as env vars [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] - -1. job-owner DumpClusterLogs [] - -1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Container Runtime blackbox test when starting a container that exits should run with the expected status [NodeConformance] [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to create a functioning NodePort service [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should invoke init containers on a RestartNever pod [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should support remote command execution over websockets [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[k8s.io] Variable Expansion should allow substituting values in a volume subpath [sig-storage] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should delete a job [Conformance] [] - -1. job-owner Timeout [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should cap back-off at MaxContainerBackOff [Slow][NodeConformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Pods should have their auto-restart back-off timer reset on image update [Slow][NodeConformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] - -1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Update Demo should create and stop a replication controller [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap should be consumable from pods in volume [NodeConformance] [Conformance] [] - -1. [sig-windows] Kubernetes e2e suite.[sig-windows] Windows volume mounts check volume mount permissions container should have readOnly permissions on hostMapPath [] - -1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's memory limit [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPath should support r/w [NodeConformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu limit [NodeConformance] [Conformance] [] - -1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's memory request [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with different stored version [Conformance] [] - -1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny custom resource creation, update and deletion [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate pod and apply defaults after mutation [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should unconditionally reject operations on fail closed webhook [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Service endpoints latency should not be very high [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers if init containers fail on a RestartAlways pod [Conformance] [] - -1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow composing env vars into new env vars [NodeConformance] [Conformance] [] - -1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should not be able to mutate or prevent deletion of webhook configuration objects [Conformance] [] - -1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] - -</details> - -</details> - - -e [Conformance] [] - -</details> - -</details> +# [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) at Nov 19, 2020 18:04 UTC + +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) +Out of 19 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 12**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 6**</span> + +## Passing Jobs +<details> +<summary>Expand 12 passing Jobs</summary> + [Conformance - GCE - master]() [bazel-build-master]() [build-master]() [build-master-fast]() [conformance-ga-only]() [gce-cos-master-alpha-features]() [gce-cos-master-scalability-100]() [gci-gce-ingress]() [integration-master]() [node-kubelet-master]() [skew-cluster-latest-kubectl-stable1-gce]() [verify-master]() +</details> + +## Flaking Jobs +<details> +<summary>Expand 6 Flaking Jobs</summary> + +### [bazel-test-master](https://testgrid.k8s.io/sig-release-master-blocking#bazel-test-master&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner //pkg/kubelet/volumemanager/reconciler/go_default_test:run_1_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/util/webhook/go_default_test:run_2_of_2 [] + +1. job-owner //pkg/kubelet/volumemanager/reconciler/go_default_test:run_2_of_2 [] + +1. job-owner //pkg/controller/volume/attachdetach/reconciler/go_default_test:run_2_of_2 [] + +1. job-owner //pkg/kubelet/cm/devicemanager/go_default_test:run_1_of_2 [] + +1. job-owner //pkg/controller/volume/attachdetach/reconciler/go_default_test:run_1_of_2 [] + +1. job-owner //staging/src/k8s.io/legacy-cloud-providers/vsphere/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/admission/plugin/webhook/mutating/go_default_test:run_1_of_2 [] + +1. job-owner //pkg/kubelet/cm/devicemanager/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/storage/value/encrypt/envelope/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/server/filters/go_default_test:run_1_of_2 [] + +1. job-owner //staging/src/k8s.io/client-go/examples/fake-client/go_default_test:run_2_of_2 [] + +1. job-owner //pkg/kubelet/config/go_default_test:run_1_of_2 [] + +1. job-owner //pkg/volume/csi/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/legacy-cloud-providers/vsphere/go_default_test:run_1_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/server/filters/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/server/options/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/server/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/legacy-cloud-providers/azure/go_default_test:run_2_of_2 [] + +1. job-owner //staging/src/k8s.io/apiserver/pkg/storage/cacher/go_default_test:run_1_of_2 [] + +1. job-owner //pkg/kubelet/config/go_default_test:run_2_of_2 [] + +1. job-owner //pkg/registry/autoscaling/horizontalpodautoscaler/storage/go_default_test:run_1_of_2 [] + +1. job-owner //staging/src/k8s.io/client-go/util/flowcontrol/go_default_test:run_2_of_2 [] + +</details> + +### [gce-cos-master-default](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-default&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Test [] + +1. job-owner Overall [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NodeProblemDetector [DisabledForLargeClusters] should run without error [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] API priority and fairness should ensure that requests can't be drowned out (priority) [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for multiple endpoint-Services with same selector [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: http [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: udp [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a ClusterIP service [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should surface a failure condition on a common issue like exceeded quota [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a exec "cat /tmp/health" liveness probe [NodeConformance] [Conformance] [] + +1. job-owner Timeout [] + +1. job-owner DumpClusterLogs [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should verify ResourceQuota with best effort scope. [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should run through the lifecycle of Pods and PodStatus [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for service with type clusterIP [LinuxOnly] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Simple pod should return command exit codes [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should support basic nodePort: udp functionality [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to up and down services [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity work for NodePort service [LinuxOnly] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should not disrupt a cloud load-balancer's connectivity during rollout [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should implement legacy replacement when the update strategy is OnDelete [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications with PVCs [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for service endpoints using hostNetwork [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support existing directory [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume storage capacity exhausted, late binding, no topology [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Flexvolumes should be mountable when non-attachable [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directories when readOnly specified in the volumeSource [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should be able to handle large requests: udp [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] CronJob should remove from active list jobs that have been deleted [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] API priority and fairness should ensure that requests can be classified by testing flow-schemas/priority-levels [] + +1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing directory [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link] [Testpattern: Pre-provisioned PV (default fs)] volumes should allow exec of files on the volume [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (ext4)] volumes should store data [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for endpoint-Service: http [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a /healthz http liveness probe [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for endpoint-Service: udp [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Subpath Atomic writer volumes should support subpaths with secret pod [LinuxOnly] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] subPath should support existing directories when readOnly specified in the volumeSource [] + +1. [sig-instrumentation] Kubernetes e2e suite.[sig-instrumentation] MetricsGrabber should grab all metrics from a Scheduler. [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support existing single file [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for client IP based session affinity: udp [LinuxOnly] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should be able to handle large requests: http [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: udp [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should run the lifecycle of a Deployment [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap optional updates should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a configMap. [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap updates should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should implement service.kubernetes.io/headless [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl expose should create services for rc [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for node-Service: udp [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for pod-Service: http [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Proxy version v1 should proxy through a service and a pod [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Service endpoints latency should not be very high [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to ClusterIP [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be rejected when no endpoints exist [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should preserve source pod IP for traffic thru service cluster IP [LinuxOnly] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: http [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Simple pod should support inline execution and attach [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default command (docker entrypoint) [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: blockfs] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] + +</details> + +### [gce-cos-master-reboot](https://testgrid.k8s.io/sig-release-master-blocking#gce-cos-master-reboot&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner DumpClusterLogs [] + +1. job-owner TearDown [] + +1. job-owner Timeout [] + +1. [sig-cloud-provider-gcp] Kubernetes e2e suite.[k8s.io] [sig-cloud-provider-gcp] Reboot [Disruptive] [Feature:Reboot] each node by ordering clean reboot and ensure they function upon restart [] + +1. job-owner Test [] + +</details> + +### [gce-ubuntu-master-containerd](https://testgrid.k8s.io/sig-release-master-blocking#gce-ubuntu-master-containerd&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for multiple endpoint-Services with same selector [] + +1. job-owner DumpClusterLogs [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: dir-bindmounted] One pod requesting one prebound PVC should be able to mount volume and read from pod1 [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Simple pod should support inline execution and attach [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should resolve DNS of partial qualified names for services [LinuxOnly] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (default fs)] subPath should support readOnly directory specified in the volumeMount [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should run the lifecycle of a Deployment [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NodeProblemDetector [DisabledForLargeClusters] should run without error [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicaSet should serve a basic image on each replica with a private image [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI online volume expansion should expand volume without restarting pod if attach=off, nodeExpansion=on [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes NFS when invoking the Recycle reclaim policy should test that a PV becomes Available and is clean after the PVC is deleted. [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should surface a failure condition on a common issue like exceeded quota [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] EndpointSlice should create Endpoints and EndpointSlices for Pods matching a Service [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support readOnly directory specified in the volumeMount [] + +1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (ext3)] volumes should allow exec of files on the volume [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] ResourceQuota should create a ResourceQuota and capture the life of a configMap. [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[sig-node] RuntimeClass should run a Pod requesting a RuntimeClass with a configured handler [NodeFeature:RuntimeHandler] [] + +</details> + +### [kind-ipv6-master-parallel](https://testgrid.k8s.io/sig-release-master-blocking#kind-ipv6-master-parallel&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] API priority and fairness should ensure that requests can be classified by testing flow-schemas/priority-levels [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] KubeProxy should set TCP CLOSE_WAIT timeout [Privileged] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for multiple CRDs of same group and version but different kinds [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support non-existent path [] + +</details> + +### [kind-master-parallel](https://testgrid.k8s.io/sig-release-master-blocking#kind-master-parallel&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] API priority and fairness should ensure that requests can be classified by testing flow-schemas/priority-levels [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Subpath Container restart should verify that container can restart successfully after configmaps modified [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=off, nodeExpansion=on [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should support file as subpath [LinuxOnly] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should run the lifecycle of a Deployment [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PVC Protection Verify that scheduling of a pod that uses PVC that is being deleted fails and the pod becomes Unschedulable [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for multiple CRDs of same group but different versions [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should be able to unmount after the subpath directory is deleted [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] EmptyDir volumes should support (non-root,0644,tmpfs) [LinuxOnly] [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support file as subpath [LinuxOnly] [] + +</details> + +</details> + +## Failing Jobs +<details> +<summary>Expand 1 Failing Jobs</summary> + +### [gce-device-plugin-gpu-master]() +<details> +<summary>Expand failed tests</summary> + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] [Feature:GPUDevicePlugin] run Nvidia GPU Device Plugin tests [] + +1. job-owner DumpClusterLogs [] + +1. job-owner Kubernetes e2e suite.BeforeSuite [] + +1. job-owner Overall [] + +1. job-owner Test [] + +</details> + +</details> + + +# [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) at Nov 19, 2020 18:04 UTC +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) +Out of 20 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 8**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 5**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 7**</span> +## Passing Jobs +<details> +<summary>Expand 8 passing Jobs</summary> + [bazel-build-master]() [build-master-canary]() [kubeadm-kinder-latest]() [kubeadm-kinder-latest-on-1-19]() [node-kubelet-features-master]() [post-kubernetes-push-image-pause]() [post-release-push-image-kube-cross]() [post-release-push-image-vulndash]() +</details> + +## Flaking Jobs +<details> +<summary>Expand 7 Flaking Jobs</summary> + +### [gce-cos-master-serial](https://testgrid.k8s.io/sig-release-master-informing#gce-cos-master-serial&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] only evicts pods without tolerations from tainted nodes [] + +1. [sig-cloud-provider-gcp] Kubernetes e2e suite.[k8s.io] [sig-cloud-provider-gcp] Restart [Disruptive] should restart all nodes and ensure all nodes and pods recover [] + +1. job-owner DumpClusterLogs [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Single Pod [Serial] eventually evict pod with finite tolerations from tainted nodes [] + +1. [sig-cloud-provider-gcp] Kubernetes e2e suite.[k8s.io] [sig-cloud-provider-gcp] Nodes [Disruptive] Resize [Slow] should be able to delete nodes [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: pd.csi.storage.gke.io][Serial] [Testpattern: Dynamic PV (block volmode)] volume-stress multiple pods should access different volumes repeatedly [Slow] [Serial] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance] [] + +</details> + +### [gce-cos-master-slow](https://testgrid.k8s.io/sig-release-master-informing#gce-cos-master-slow&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Inline-volume (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow][LinuxOnly] [] + +1. job-owner DumpClusterLogs [] + +1. job-owner Timeout [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gluster] [Testpattern: Pre-provisioned PV (default fs)] volumeIO should write files of various sizes, verify size, validate content [Slow][LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local StatefulSet with pod affinity [Slow] should use volumes on one node when pod has affinity [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local StatefulSet with pod affinity [Slow] should use volumes on one node when pod management is parallel and pod has affinity [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI volume limit information using mock driver should report attach limit when limit is bigger than 0 [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data [] + +1. job-owner diffResources [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPathSymlink] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (xfs)][Slow] volumes should allow exec of files on the volume [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to switch session affinity for LoadBalancer service with ESIPP on [Slow] [DisabledForLargeClusters] [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: hostPath] [Testpattern: Inline-volume (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir] [Testpattern: Pre-provisioned PV (filesystem volmode)] multiVolume [Slow] should concurrently access the single volume from pods on the same node [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] subPath should support restarting containers using file as subpath [Slow][LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] Set fsGroup for local volume should set fsGroup for one pod [Slow] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update nodePort: udp [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPathType Block Device [Slow] Should fail on mounting non-existent block device 'does-not-exist-blk-dev' when HostPathType is HostPathBlockDev [] + +</details> + +### [gce-master-scale-correctness](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-correctness&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (block volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should have a working scale subresource [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (xfs)][Slow] volumes should store data [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Pre-provisioned PV (xfs)][Slow] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Dynamic PV (filesystem volmode)] multiVolume [Slow] should access to two volumes with the same volume mode and retain data across pod recreation on the same node [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should only allow access from service loadbalancer source ranges [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should verify container cannot write to subpath readonly volumes [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI Volumes [Driver: csi-hostpath] [Testpattern: Dynamic PV (default fs)] subPath should fail if subpath directory is outside the volume [Slow][LinuxOnly] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] + +</details> + +### [gce-master-scale-performance](https://testgrid.k8s.io/sig-release-master-informing#gce-master-scale-performance&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner ClusterLoaderV2 [] + +1. job-owner ClusterLoaderV2.load overall (testing/load/config.yaml) [] + +1. job-owner ClusterLoaderV2.load: [step: 25] Collecting measurements [] + +1. job-owner ClusterLoaderV2.load: [step: 20] Waiting for objects to become scaled [] + +1. job-owner ClusterLoaderV2.load: [step: 22] Waiting for pods to be deleted [] + +</details> + +### [gce-windows-2019-master](https://testgrid.k8s.io/sig-release-master-informing#gce-windows-2019-master&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource [] + +1. job-owner Overall [] + +1. [sig-windows] Kubernetes e2e suite.[sig-windows] Services should be able to create a functioning NodePort service for Windows [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should use the image defaults if command and args are blank [NodeConformance] [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve multiport endpoints from pods [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should serve a basic endpoint from pods [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be consumable from pods in volume [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should cap back-off at MaxContainerBackOff [Slow][NodeConformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should delete old replica sets [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] + +1. [sig-windows] Kubernetes e2e suite.[sig-windows] Windows volume mounts check volume mount permissions container should have readOnly permissions on hostMapPath [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should have their auto-restart back-off timer reset on image update [Slow][NodeConformance] [] + +1. job-owner DumpClusterLogs [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default command and arguments [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should support retrieving logs from the container over websockets [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow substituting values in a container's args [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap binary data should be reflected in volume [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPath should support subPath [NodeConformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Inline-volume (ntfs)][sig-windows] volumes should allow exec of files on the volume [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected combined should project all components that make up the projection API [Projection][NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected secret should be able to mount in a volume regardless of a different secret existing with same name in different namespace [NodeConformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should contain environment variables for services [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Secrets should be consumable from pods in env vars [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Docker Containers should be able to override the image's default arguments (docker cmd) [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should allow activeDeadlineSeconds to be updated [NodeConformance] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should have monotonically increasing restart count [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should honor timeout [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] Aggregator Should be able to support the 1.17 Sample API Server using the current Aggregator [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment deployment should support proportional scaling [Conformance] [] + +1. job-owner Up [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny attaching pod [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl describe should check if kubectl describe prints relevant information for rc and pods [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should support configurable pod DNS nameservers [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[sig-node] Downward API should provide pod name, namespace and IP address as env vars [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's cpu limit [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume [NodeConformance] [Conformance] [] + +1. [sig-windows] Kubernetes e2e suite.[sig-windows] Hybrid cluster network for all supported CNIs should have stable networking for Linux and Windows pods [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl replace should update a single-container pod's image [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should provide DNS for the cluster [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Kubelet when scheduling a busybox command that always fails in a pod should have an terminated reason [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Proxy version v1 should proxy through a service and a pod [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] EmptyDir wrapper volumes should not conflict [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Secrets should be able to mount in a volume regardless of a different secret existing with same name in different namespace [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should provide DNS for ExternalName services [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPath should support r/w [NodeConformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] + +</details> + +### [kubeadm-kinder-upgrade-1-19-latest](https://testgrid.k8s.io/sig-release-master-informing#kubeadm-kinder-upgrade-1-19-latest&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +1. job-owner task-09-e2e-after [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should have a working scale subresource [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] patching/updating a mutating webhook should work [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] patching/updating a validating webhook should work [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should not be able to mutate or prevent deletion of webhook configuration objects [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert from CR v1 to CR v2 [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should serve a basic image on each replica with a public image [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] listing mutating webhooks should work [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with different stored version [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers and fail the pod if init containers fail on a RestartNever pod [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for CRD preserving unknown fields in an embedded object [Conformance] [] + +</details> + +### [post-release-push-image-go-runner](https://testgrid.k8s.io/sig-release-master-informing#post-release-push-image-go-runner&exclude-non-failed-tests=) +<details> +<summary>Expand flaking tests</summary> + +1. job-owner Overall [] + +</details> + +</details> + +## Failing Jobs +<details> +<summary>Expand 5 Failing Jobs</summary> + +### [Conformance - OpenStack]() +<details> +<summary>Expand failed tests</summary> + +1. job-owner DumpClusterLogs [] + +1. job-owner Test [] + +1. job-owner Timeout [] + +1. job-owner Overall [] + +</details> + +### [capa-conformance-v1alpha3-k8s-master]() +<details> +<summary>Expand failed tests</summary> + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates lower priority pod preemption by critical pod [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should update pod when spec was updated and update strategy is RollingUpdate [Conformance] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] + +1. [sig-scheduling] Kubernetes e2e suite.[sig-scheduling] SchedulerPreemption [Serial] validates basic preemption works [Conformance] [1] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] DNS should provide DNS for ExternalName services [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity work for service with type clusterIP [LinuxOnly] [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [1] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] NoExecuteTaintManager Multiple Pods [Serial] evicts pods with minTolerationSeconds [Disruptive] [Conformance] [2] [] + +1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should mount projected service account token [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu request [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should retry creating failed daemon pods [Conformance] [] + +1. job-owner Overall [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Daemon set [Serial] should run and stop complex daemon [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Update Demo should scale a replication controller [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for node-pod communication: udp [LinuxOnly] [NodeConformance] [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Runtime blackbox test on terminated container should report termination message [LinuxOnly] as empty when pod succeeds and TerminationMessagePolicy FallbackToLogsOnError is set [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for node-pod communication: http [LinuxOnly] [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] + +1. job-owner capa-e2e.conformance tests conformance [] + +</details> + +### [capg-conformance-v1alpha3-k8s-master]() +<details> +<summary>Expand failed tests</summary> + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourcePublishOpenAPI [Privileged:ClusterAdmin] works for CRD preserving unknown fields in an embedded object [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ClusterIP to ExternalName [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[sig-node] RuntimeClass should support RuntimeClasses API operations [Conformance] [] + +1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should mount projected service account token [Conformance] [] + +1. job-owner Overall [] + +</details> + +### [gce-ubuntu-master-default]() +<details> +<summary>Expand failed tests</summary> + +1. job-owner Timeout [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] Pods Extended [k8s.io] Pod Container Status should never report success for a pending container [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should have a working scale subresource [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Conntrack should be able to preserve UDP traffic when server pod cycles for a NodePort service [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] CronJob should remove from active list jobs that have been deleted [] + +1. job-owner TearDown [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=off, nodeExpansion=on [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] API priority and fairness should ensure that requests can't be drowned out (fairness) [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should expand volume by restarting pod if attach=on, nodeExpansion=on [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted by liveness probe because startup probe delays it [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Simple pod should support inline execution and attach [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should update endpoints: http [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should have session affinity timeout work for NodePort service [LinuxOnly] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: gcepd] [Testpattern: Inline-volume (ext3)] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: blockfswithoutformat] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2 [] + +1. job-owner Overall [] + +1. job-owner Test [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl logs should be able to retrieve and filter logs [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with pruning [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Kubectl expose should create services for rc [Conformance] [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] kubelet [k8s.io] [sig-node] Clean up pods on node kubelet should be able to delete 10 pods per node in 1m0s. [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Deployment should not disrupt a cloud load-balancer's connectivity during rollout [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: dir-link-bindmounted] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: nfs] [Testpattern: Dynamic PV (default fs)] provisioning should provision storage with mount options [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Services should function for multiple endpoint-Services with same selector [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: tmpfs] [Testpattern: Pre-provisioned PV (default fs)] subPath should support existing single file [LinuxOnly] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: blockfswithformat] Two pods mounting a local volume at the same time should be able to write from pod1 and read from pod2 [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] PersistentVolumes-local [Volume type: dir-link] Two pods mounting a local volume one after the other should be able to write from pod1 and read from pod2 [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should be restarted with a docker exec liveness probe with timeout [] + +1. [sig-auth] Kubernetes e2e suite.[sig-auth] ServiceAccounts should guarantee kube-root-ca.crt exist in any namespace [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: local][LocalVolumeType: block] [Testpattern: Pre-provisioned PV (default fs)] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] CSI mock volume CSI Volume expansion should not expand volume if resizingOnDriver=off, resizingOnSC=on [] + +</details> + +### [gce-windows-1909-master]() +<details> +<summary>Expand failed tests</summary> + +1. job-owner Overall [] + +1. job-owner [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should verify container cannot write to subpath readonly volumes [Slow] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directories when readOnly specified in the volumeSource [] + +1. [sig-windows] Kubernetes e2e suite.[sig-windows] Services should be able to create a functioning NodePort service for Windows [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform rolling updates and roll backs of template modifications [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Probing container should *not* be restarted with a tcp:8080 liveness probe [NodeConformance] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] should perform canary updates and phased rolling updates of template modifications [Conformance] [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should succeed in writing subpaths in container [sig-storage][Slow] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Burst scaling should run to completion even with unhealthy pods [Slow] [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Should recreate evicted statefulset [Conformance] [] + +1. job-owner Up [] + +1. [sig-node] Kubernetes e2e suite.[sig-node] Downward API should provide pod name, namespace and IP address as env vars [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Pre-provisioned PV (ntfs)][sig-windows] volumes should store data [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] volumes should store data [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: udp [NodeConformance] [Conformance] [] + +1. job-owner DumpClusterLogs [] + +1. [sig-storage][Slow] Kubernetes e2e suite.[k8s.io] Variable Expansion should verify that a failing subpath expansion can be modified during the lifecycle of a container [sig-storage][Slow] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] In-tree Volumes [Driver: windows-gcepd] [Testpattern: Dynamic PV (ntfs)][sig-windows] subPath should support existing directory [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Container Runtime blackbox test when starting a container that exits should run with the expected status [NodeConformance] [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to create a functioning NodePort service [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] StatefulSet [k8s.io] Basic StatefulSet functionality [StatefulSetBasic] Scaling should happen in predictable order and halt if any stateful pod is unhealthy [Slow] [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should invoke init containers on a RestartNever pod [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should support remote command execution over websockets [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[k8s.io] Variable Expansion should allow substituting values in a volume subpath [sig-storage] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] CustomResourceConversionWebhook [Privileged:ClusterAdmin] should be able to convert a non homogeneous list of CRs [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should delete a job [Conformance] [] + +1. job-owner Timeout [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from ExternalName to NodePort [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should cap back-off at MaxContainerBackOff [Slow][NodeConformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Pods should have their auto-restart back-off timer reset on image update [Slow][NodeConformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Guestbook application should create and stop a working application [Conformance] [] + +1. [sig-cli] Kubernetes e2e suite.[sig-cli] Kubectl client Update Demo should create and stop a replication controller [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] ConfigMap should be consumable from pods in volume [NodeConformance] [Conformance] [] + +1. [sig-windows] Kubernetes e2e suite.[sig-windows] Windows volume mounts check volume mount permissions container should have readOnly permissions on hostMapPath [] + +1. [sig-node] Kubernetes e2e suite.[k8s.io] [sig-node] PreStop should call prestop when killing a pod [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] Job should adopt matching orphans and release non-matching pods [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Networking Granular Checks: Pods should function for intra-pod communication: http [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Downward API volume should provide container's memory limit [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] HostPath should support r/w [NodeConformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected configMap should be consumable from pods in volume with mappings [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's cpu limit [NodeConformance] [Conformance] [] + +1. [sig-storage] Kubernetes e2e suite.[sig-storage] Projected downwardAPI should provide container's memory request [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate custom resource with different stored version [Conformance] [] + +1. [sig-apps] Kubernetes e2e suite.[sig-apps] ReplicationController should test the lifecycle of a ReplicationController [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should be able to deny custom resource creation, update and deletion [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should mutate pod and apply defaults after mutation [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should unconditionally reject operations on fail closed webhook [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Service endpoints latency should not be very high [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] InitContainer [NodeConformance] should not start app containers if init containers fail on a RestartAlways pod [Conformance] [] + +1. job-owner Kubernetes e2e suite.[k8s.io] Variable Expansion should allow composing env vars into new env vars [NodeConformance] [Conformance] [] + +1. [sig-api-machinery] Kubernetes e2e suite.[sig-api-machinery] AdmissionWebhook [Privileged:ClusterAdmin] should not be able to mutate or prevent deletion of webhook configuration objects [Conformance] [] + +1. [sig-network] Kubernetes e2e suite.[sig-network] Services should be able to change the type from NodePort to ExternalName [Conformance] [] + +</details> + +</details> + + +e [Conformance] [] + +</details> + +</details> diff --git a/releases/release-1.20/meeting-updates/ci-status/rel-summary.md b/releases/release-1.20/meeting-updates/ci-status/rel-summary.md index aaec86ee594..eeb983e832c 100755 --- a/releases/release-1.20/meeting-updates/ci-status/rel-summary.md +++ b/releases/release-1.20/meeting-updates/ci-status/rel-summary.md @@ -1,9 +1,9 @@ - -# [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) at Nov 19, 2020 18:04 UTC -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) -Out of 19 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 12**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 6**</span> -` -# [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) at Nov 19, 2020 18:04 UTC -Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) -Out of 20 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 8**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 5**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 7**</span> + +# [sig-release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) at Nov 19, 2020 18:04 UTC +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) +Out of 19 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 12**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 1**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 6**</span> +` +# [sig-release-master-informing](https://testgrid.k8s.io/sig-release-master-informing) at Nov 19, 2020 18:04 UTC +Generated by [flake-tracker](https://github.com/RobertKielty/flake-tracker) +Out of 20 jobs <span style="background-color:#0f0;foreground-color:#555;padding: 3px;">**PASSING 8**</span> <span style="background-color:#f00;color:#fff;padding: 3px;">**FAILING 5**</span> <span style="background-color:#609;color:#fff;padding: 3px;">**FLAKING 7**</span> ` \ No newline at end of file diff --git a/releases/release-1.20/release-notes-draft.json b/releases/release-1.20/release-notes-draft.json index 15cd2e681ed..edb72b0cd2a 100644 --- a/releases/release-1.20/release-notes-draft.json +++ b/releases/release-1.20/release-notes-draft.json @@ -1,4246 +1,4246 @@ -{ - "74363": { - "commit": "80c2f61939fb01720e6d96021cc3cd8c909bf34d", - "text": "Fix client-go prometheus metrics to correctly present the API path accessed in some environments.", - "markdown": "Fix client-go prometheus metrics to correctly present the API path accessed in some environments. ([#74363](https://github.com/kubernetes/kubernetes/pull/74363), [@aanm](https://github.com/aanm)) [SIG API Machinery]", - "author": "aanm", - "author_url": "https://github.com/aanm", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/74363", - "pr_number": 74363, - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "77398": { - "commit": "0ec66026792f57c9a7d73669edb4842addc723c4", - "text": "Kubernetes E2E test image manifest lists now contain Windows images.", - "markdown": "Kubernetes E2E test image manifest lists now contain Windows images. ([#77398](https://github.com/kubernetes/kubernetes/pull/77398), [@claudiubelu](https://github.com/claudiubelu)) [SIG Testing and Windows]", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/77398", - "pr_number": 77398, - "areas": ["test"], - "kinds": ["bug", "feature"], - "sigs": ["testing", "windows"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "78153": { - "commit": "46b5eb333850b851b44bcc11cbee06d257315fb6", - "text": "Adds `create ingress` command to `kubectl`", - "markdown": "Adds `create ingress` command to `kubectl` ([#78153](https://github.com/kubernetes/kubernetes/pull/78153), [@amimof](https://github.com/amimof)) [SIG CLI and Network]", - "author": "amimof", - "author_url": "https://github.com/amimof", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/78153", - "pr_number": 78153, - "areas": ["dependency", "kubectl"], - "kinds": ["feature"], - "sigs": ["cli", "network"], - "feature": true, - "duplicate": true - }, - "86102": { - "commit": "a27a357ba1b01b82986566da79ced2df54cc56eb", - "text": "Add support for hugepages to downward API", - "markdown": "Add support for hugepages to downward API ([#86102](https://github.com/kubernetes/kubernetes/pull/86102), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG API Machinery, Apps, CLI, Network, Node, Scheduling and Testing]", - "author": "derekwaynecarr", - "author_url": "https://github.com/derekwaynecarr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/86102", - "pr_number": 86102, - "areas": ["kubectl", "kubelet", "test"], - "kinds": ["api-change", "feature"], - "sigs": [ - "api-machinery", - "apps", - "cli", - "network", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "86506": { - "commit": "ef57a095d91458327f47b492d31ad2caff93c987", - "text": "kubectl rollout history sts/sts-name --revision=some-revision will start showing the detailed view of the sts on that specified revision", - "markdown": "Kubectl rollout history sts/sts-name --revision=some-revision will start showing the detailed view of the sts on that specified revision ([#86506](https://github.com/kubernetes/kubernetes/pull/86506), [@dineshba](https://github.com/dineshba)) [SIG CLI]", - "author": "dineshba", - "author_url": "https://github.com/dineshba", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/86506", - "pr_number": 86506, - "areas": ["kubectl"], - "kinds": ["feature"], - "sigs": ["cli"], - "feature": true - }, - "87054": { - "commit": "317540a28cf6a220b67da740ae540c41373f34e9", - "text": "The kubelet recognizes the --containerd-namespace flag to configure the namespace used by cadvisor.", - "markdown": "The kubelet recognizes the --containerd-namespace flag to configure the namespace used by cadvisor. ([#87054](https://github.com/kubernetes/kubernetes/pull/87054), [@changyaowei](https://github.com/changyaowei)) [SIG Node]", - "author": "changyaowei", - "author_url": "https://github.com/changyaowei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/87054", - "pr_number": 87054, - "areas": ["kubelet"], - "kinds": ["bug"], - "sigs": ["node"] - }, - "88412": { - "commit": "72a7f94bddc4618be4840a928f7075df2da524d7", - "text": "Adds a headless service on node-local-cache addon.", - "markdown": "Adds a headless service on node-local-cache addon. ([#88412](https://github.com/kubernetes/kubernetes/pull/88412), [@stafot](https://github.com/stafot)) [SIG Cloud Provider and Network]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/20190424-NodeLocalDNS-beta-proposal.md", - "type": "KEP" - }, - { - "description": "For whom it might needed: We also created a public Grafana dashboard that can be found [here](", - "url": "https://grafana.com/grafana/dashboards/11759) and is based on the previous [dashboard](https://grafana.com/grafana/dashboards/7279) that didn't support NodeLocalDNSCache separated monitoring.", - "type": "external" - } - ], - "author": "stafot", - "author_url": "https://github.com/stafot", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/88412", - "pr_number": 88412, - "areas": ["provider/gcp", "release-eng"], - "kinds": ["feature"], - "sigs": ["cloud-provider", "network"], - "feature": true, - "duplicate": true - }, - "88759": { - "commit": "2b4be7bb5fdf99e17829af16c1804b61adb7bcf5", - "text": "For CSI drivers, kubelet no longer creates the target_path for NodePublishVolume in accordance with the CSI spec. Kubelet also no longer checks if staging and target paths are mounts or corrupted. CSI drivers need to be idempotent and do any necessary mount verification.", - "markdown": "For CSI drivers, kubelet no longer creates the target_path for NodePublishVolume in accordance with the CSI spec. Kubelet also no longer checks if staging and target paths are mounts or corrupted. CSI drivers need to be idempotent and do any necessary mount verification. ([#88759](https://github.com/kubernetes/kubernetes/pull/88759), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/88759", - "pr_number": 88759, - "kinds": ["feature"], - "sigs": ["storage"], - "feature": true, - "action_required": true - }, - "89840": { - "commit": "cd4ee6bf9abf672c1ff9aa23b778be1d3599c432", - "text": "Added `get-users` and `delete-user` to the `kubectl config` subcommand", - "markdown": "Added `get-users` and `delete-user` to the `kubectl config` subcommand ([#89840](https://github.com/kubernetes/kubernetes/pull/89840), [@eddiezane](https://github.com/eddiezane)) [SIG CLI]", - "author": "eddiezane", - "author_url": "https://github.com/eddiezane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/89840", - "pr_number": 89840, - "areas": ["kubectl"], - "kinds": ["feature"], - "sigs": ["cli"], - "feature": true - }, - "90014": { - "commit": "d2a0b6f2b8e053e8c71e7ccfd36af4caf2ae9785", - "text": "Increase maximum IOPS of AWS EBS io1 volume to current maximum (64,000).", - "markdown": "Increase maximum IOPS of AWS EBS io1 volume to current maximum (64,000). ([#90014](https://github.com/kubernetes/kubernetes/pull/90014), [@jacobmarble](https://github.com/jacobmarble))", - "author": "jacobmarble", - "author_url": "https://github.com/jacobmarble", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/90014", - "pr_number": 90014, - "areas": ["cloudprovider"], - "kinds": ["bug"], - "sigs": ["cloud-provider", "storage"], - "duplicate": true - }, - "90333": { - "commit": "1485d462efcfc27047790639543d2cc515a27d7a", - "text": "[kubectl] Fail when local source file doesn't exist", - "markdown": "[kubectl] Fail when local source file doesn't exist ([#90333](https://github.com/kubernetes/kubernetes/pull/90333), [@bamarni](https://github.com/bamarni)) [SIG CLI]", - "author": "bamarni", - "author_url": "https://github.com/bamarni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/90333", - "pr_number": 90333, - "areas": ["kubectl"], - "kinds": ["bug"], - "sigs": ["cli"] - }, - "90439": { - "commit": "56b9a69d3991713ef4f85dec89f99ce6d722839f", - "text": "dual-stack: make nodeipam compatible with existing single-stack clusters when dual-stack feature gate become enabled by default", - "markdown": "Dual-stack: make nodeipam compatible with existing single-stack clusters when dual-stack feature gate become enabled by default ([#90439](https://github.com/kubernetes/kubernetes/pull/90439), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/90439", - "pr_number": 90439, - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "90691": { - "commit": "ec453ffb1a8c829ae5d62400a845836f708f80d0", - "text": "Introduces a metric source for HPAs which allows scaling based on container resource usage.", - "markdown": "Introduces a metric source for HPAs which allows scaling based on container resource usage. ([#90691](https://github.com/kubernetes/kubernetes/pull/90691), [@arjunrn](https://github.com/arjunrn)) [SIG API Machinery, Apps, Autoscaling and CLI]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-autoscaling/0001-container-resource-autoscaling.md:", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://github.com/kubernetes/website/pull/23523", - "type": "external" - } - ], - "author": "arjunrn", - "author_url": "https://github.com/arjunrn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/90691", - "pr_number": 90691, - "areas": ["kubectl"], - "kinds": ["api-change", "feature"], - "sigs": ["api-machinery", "apps", "autoscaling", "cli"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "90969": { - "commit": "3d52b8b5d60e1f74f4207f1d046734878297e354", - "text": "Add kubectl wait --ignore-not-found flag", - "markdown": "Add kubectl wait --ignore-not-found flag ([#90969](https://github.com/kubernetes/kubernetes/pull/90969), [@zhouya0](https://github.com/zhouya0)) [SIG CLI]", - "author": "zhouya0", - "author_url": "https://github.com/zhouya0", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/90969", - "pr_number": 90969, - "areas": ["kubectl"], - "kinds": ["bug"], - "sigs": ["cli"] - }, - "91452": { - "commit": "68e4f1ff64e01fff0eaac72a0f6b77d143043d24", - "text": "Support for Windows container images (OS Versions: 1809, 1903, 1909, 2004) was added the pause:3.4 image.", - "markdown": "Support for Windows container images (OS Versions: 1809, 1903, 1909, 2004) was added the pause:3.4 image. ([#91452](https://github.com/kubernetes/kubernetes/pull/91452), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Release and Windows]", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/91452", - "pr_number": 91452, - "kinds": ["feature"], - "sigs": ["node", "release", "windows"], - "feature": true, - "duplicate": true - }, - "91469": { - "commit": "402b94f31346f31bf24bdc11c185f2f430025b04", - "text": "Fix kubelet to properly log when a container is started. Previously, kubelet may log that container is dead and was restarted when it was actually started for the first time. This behavior only happened on pods with initContainers and regular containers.", - "markdown": "Fix kubelet to properly log when a container is started. Previously, kubelet may log that container is dead and was restarted when it was actually started for the first time. This behavior only happened on pods with initContainers and regular containers. ([#91469](https://github.com/kubernetes/kubernetes/pull/91469), [@rata](https://github.com/rata))", - "author": "rata", - "author_url": "https://github.com/rata", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/91469", - "pr_number": 91469, - "areas": ["kubelet"], - "kinds": ["cleanup"], - "sigs": ["node"] - }, - "91785": { - "commit": "b86e725694e81b48ea36b11f647f28cf70a66210", - "text": "kube-controller-manager: volume plugins can be restricted from contacting local and loopback addresses by setting `--volume-host-allow-local-loopback=false`, or from contacting specific CIDR ranges by setting `--volume-host-cidr-denylist` (for example, `--volume-host-cidr-denylist=127.0.0.1/28,feed::/16`)", - "markdown": "Kube-controller-manager: volume plugins can be restricted from contacting local and loopback addresses by setting `--volume-host-allow-local-loopback=false`, or from contacting specific CIDR ranges by setting `--volume-host-cidr-denylist` (for example, `--volume-host-cidr-denylist=127.0.0.1/28,feed::/16`) ([#91785](https://github.com/kubernetes/kubernetes/pull/91785), [@mattcary](https://github.com/mattcary)) [SIG API Machinery, Apps, Auth, CLI, Network, Node, Storage and Testing]", - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/91785", - "pr_number": 91785, - "areas": [ - "apiserver", - "dependency", - "ipvs", - "kubectl", - "kubelet", - "release-eng", - "test" - ], - "kinds": ["api-change", "bug"], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cli", - "network", - "node", - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "91921": { - "commit": "2cb951d78af9b1a78056066e8ac610c7209b7133", - "text": "The ServiceAccountIssuerDiscovery feature gate is now Beta and enabled by default.", - "markdown": "The ServiceAccountIssuerDiscovery feature gate is now Beta and enabled by default. ([#91921](https://github.com/kubernetes/kubernetes/pull/91921), [@mtaufen](https://github.com/mtaufen)) [SIG Auth]", - "author": "mtaufen", - "author_url": "https://github.com/mtaufen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/91921", - "pr_number": 91921, - "kinds": ["api-change", "feature"], - "sigs": ["auth"], - "feature": true, - "duplicate_kind": true - }, - "91931": { - "commit": "0a20321bab20a6fe3f3ef3c8e055125d705049cb", - "text": "fix func name NewCreateCreateDeploymentOptions", - "markdown": "Fix func name NewCreateCreateDeploymentOptions ([#91931](https://github.com/kubernetes/kubernetes/pull/91931), [@lixiaobing1](https://github.com/lixiaobing1)) [SIG CLI]", - "author": "lixiaobing1", - "author_url": "https://github.com/lixiaobing1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/91931", - "pr_number": 91931, - "areas": ["kubectl"], - "kinds": ["cleanup"], - "sigs": ["cli"] - }, - "91977": { - "commit": "734cdb6125829c1bb4ef6ea7314b62efa05b7342", - "text": "Introduces a new GCE specific cluster creation variable KUBE_PROXY_DISABLE. When set to true, this will skip over the creation of kube-proxy (whether the daemonset or static pod). This can be used to control the lifecycle of kube-proxy separately from the lifecycle of the nodes.", - "markdown": "Introduces a new GCE specific cluster creation variable KUBE_PROXY_DISABLE. When set to true, this will skip over the creation of kube-proxy (whether the daemonset or static pod). This can be used to control the lifecycle of kube-proxy separately from the lifecycle of the nodes. ([#91977](https://github.com/kubernetes/kubernetes/pull/91977), [@varunmar](https://github.com/varunmar)) [SIG Cloud Provider]", - "author": "varunmar", - "author_url": "https://github.com/varunmar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/91977", - "pr_number": 91977, - "areas": ["provider/gcp"], - "kinds": ["feature"], - "sigs": ["cloud-provider"], - "feature": true - }, - "92027": { - "commit": "550b83b2939f68afc9767eb3748daf679e4e0e7c", - "text": "Ceph RBD volume expansion now works even when ceph.conf was not provided.", - "markdown": "Ceph RBD volume expansion now works even when ceph.conf was not provided. ([#92027](https://github.com/kubernetes/kubernetes/pull/92027), [@juliantaylor](https://github.com/juliantaylor))", - "author": "juliantaylor", - "author_url": "https://github.com/juliantaylor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92027", - "pr_number": 92027, - "kinds": ["bug"], - "sigs": ["storage"] - }, - "92165": { - "commit": "6e95025994a571a96da17cb219b8cac21c51c362", - "text": "Gradudate the Pod Resources API to G.A\nIntroduces the pod_resources_endpoint_requests_total metric which tracks the total number of requests to the pod resources API", - "markdown": "Gradudate the Pod Resources API to G.A\n Introduces the pod_resources_endpoint_requests_total metric which tracks the total number of requests to the pod resources API ([#92165](https://github.com/kubernetes/kubernetes/pull/92165), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) [SIG Instrumentation, Node and Testing]", - "author": "RenaudWasTaken", - "author_url": "https://github.com/RenaudWasTaken", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92165", - "pr_number": 92165, - "areas": ["kubelet", "test"], - "kinds": ["feature"], - "sigs": ["instrumentation", "node", "testing"], - "feature": true, - "duplicate": true - }, - "92343": { - "commit": "5937e7eef7352921fde6324eba2db96fa32966d9", - "text": "kubectl: print error if users place flags before plugin name", - "markdown": "Kubectl: print error if users place flags before plugin name ([#92343](https://github.com/kubernetes/kubernetes/pull/92343), [@knight42](https://github.com/knight42)) [SIG CLI]", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92343", - "pr_number": 92343, - "areas": ["kubectl"], - "kinds": ["bug"], - "sigs": ["cli"] - }, - "92355": { - "commit": "73dda0af5d07c9a16b1db748d635f3e1827628e7", - "text": "Ignore root user check when windows pod starts", - "markdown": "Ignore root user check when windows pod starts ([#92355](https://github.com/kubernetes/kubernetes/pull/92355), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows]", - "author": "wawa0210", - "author_url": "https://github.com/wawa0210", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92355", - "pr_number": 92355, - "areas": ["kubelet"], - "kinds": ["bug"], - "sigs": ["node", "windows"], - "duplicate": true - }, - "92466": { - "commit": "4628c605aadb9b3bdf82b3d9e1a2d77580eefcaf", - "text": "Add node_authorizer_actions_duration_seconds metric that can be used to estimate load to node authorizer.", - "markdown": "Add node_authorizer_actions_duration_seconds metric that can be used to estimate load to node authorizer. ([#92466](https://github.com/kubernetes/kubernetes/pull/92466), [@mborsz](https://github.com/mborsz)) [SIG API Machinery, Auth and Instrumentation]", - "author": "mborsz", - "author_url": "https://github.com/mborsz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92466", - "pr_number": 92466, - "areas": ["apiserver"], - "kinds": ["feature"], - "sigs": ["api-machinery", "auth", "instrumentation"], - "feature": true, - "duplicate": true - }, - "92491": { - "commit": "aa084d4919b14f49d6c7dea716844e35a768e6f3", - "text": "A new `nofuzz` go build tag now disables gofuzz support. Release binaries enable this.", - "markdown": "A new `nofuzz` go build tag now disables gofuzz support. Release binaries enable this. ([#92491](https://github.com/kubernetes/kubernetes/pull/92491), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92491", - "pr_number": 92491, - "kinds": ["api-change", "cleanup"], - "sigs": ["api-machinery"], - "duplicate_kind": true - }, - "92492": { - "commit": "5c6d853b4434f72ac10a1d9eafe15a791cd5db31", - "text": "Warn instead of fail when creating Roles and ClusterRoles with custom verbs via kubectl", - "markdown": "Warn instead of fail when creating Roles and ClusterRoles with custom verbs via kubectl ([#92492](https://github.com/kubernetes/kubernetes/pull/92492), [@eddiezane](https://github.com/eddiezane)) [SIG CLI]", - "author": "eddiezane", - "author_url": "https://github.com/eddiezane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92492", - "pr_number": 92492, - "areas": ["kubectl"], - "kinds": ["bug"], - "sigs": ["cli"] - }, - "92507": { - "commit": "4bbf4111e2e04e61945a0cfa106f8e7ae827b901", - "text": "Added new k8s.io/component-helpers repository providing shared helper code for (core) components.", - "markdown": "Added new k8s.io/component-helpers repository providing shared helper code for (core) components. ([#92507](https://github.com/kubernetes/kubernetes/pull/92507), [@ingvagabund](https://github.com/ingvagabund)) [SIG Apps, Node, Release and Scheduling]", - "author": "ingvagabund", - "author_url": "https://github.com/ingvagabund", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92507", - "pr_number": 92507, - "areas": ["code-organization", "dependency", "kubelet", "release-eng"], - "kinds": ["feature"], - "sigs": ["apps", "node", "release", "scheduling"], - "feature": true, - "duplicate": true - }, - "92608": { - "commit": "0469db9fe792784368e113ba6578faafb116665d", - "text": "For vSphere Cloud Provider, If VM of worker node is deleted, the node will also be deleted by node controller", - "markdown": "For vSphere Cloud Provider, If VM of worker node is deleted, the node will also be deleted by node controller ([#92608](https://github.com/kubernetes/kubernetes/pull/92608), [@lubronzhan](https://github.com/lubronzhan)) [SIG Cloud Provider]", - "author": "lubronzhan", - "author_url": "https://github.com/lubronzhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92608", - "pr_number": 92608, - "areas": ["cloudprovider"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "92614": { - "commit": "48d5d204c37f946a1076dcf36d70b4844c665de1", - "text": "Fixed kubelet creating extra sandbox for pods with RestartPolicyOnFailure after all containers succeeded", - "markdown": "Fixed kubelet creating extra sandbox for pods with RestartPolicyOnFailure after all containers succeeded ([#92614](https://github.com/kubernetes/kubernetes/pull/92614), [@tnqn](https://github.com/tnqn)) [SIG Node and Testing]", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92614", - "pr_number": 92614, - "areas": ["kubelet", "test"], - "kinds": ["bug"], - "sigs": ["node", "testing"], - "duplicate": true - }, - "92632": { - "commit": "fd9828b02a786d4fa8d2add04c37e33a616d0087", - "text": "external facing API podresources is now available under k8s.io/kubelet/pkg/apis/", - "markdown": "External facing API podresources is now available under k8s.io/kubelet/pkg/apis/ ([#92632](https://github.com/kubernetes/kubernetes/pull/92632), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) [SIG Node and Testing]", - "author": "RenaudWasTaken", - "author_url": "https://github.com/RenaudWasTaken", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92632", - "pr_number": 92632, - "areas": ["code-organization", "kubelet", "test"], - "kinds": ["api-change", "feature"], - "sigs": ["node", "testing"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "92669": { - "commit": "1f756e4a375ce0fe7bd0e35f9dd45fec32df007a", - "text": "Command to start network proxy changes from 'KUBE_ENABLE_EGRESS_VIA_KONNECTIVITY_SERVICE ./cluster/kube-up.sh' to 'KUBE_ENABLE_KONNECTIVITY_SERVICE=true ./hack/kube-up.sh'", - "markdown": "Command to start network proxy changes from 'KUBE_ENABLE_EGRESS_VIA_KONNECTIVITY_SERVICE ./cluster/kube-up.sh' to 'KUBE_ENABLE_KONNECTIVITY_SERVICE=true ./hack/kube-up.sh' ([#92669](https://github.com/kubernetes/kubernetes/pull/92669), [@Jefftree](https://github.com/Jefftree)) [SIG Cloud Provider]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92669", - "pr_number": 92669, - "areas": ["provider/gcp"], - "kinds": ["feature"], - "sigs": ["cloud-provider"], - "feature": true - }, - "92743": { - "commit": "e1ab99e0d662f3d9bf89ccf48f71444dbabce37e", - "text": "Resolves non-deterministic behavior of the garbage collection controller when ownerReferences with incorrect data are encountered. Events with a reason of `OwnerRefInvalidNamespace` are recorded when namespace mismatches between child and owner objects are detected.\n- A namespaced object with an ownerReference referencing a uid of a namespaced kind which does not exist in the same namespace is now consistently treated as though that owner does not exist, and the child object is deleted.\n- A cluster-scoped object with an ownerReference referencing a uid of a namespaced kind is now consistently treated as though that owner is not resolvable, and the child object is ignored by the garbage collector.", - "markdown": "Resolves non-deterministic behavior of the garbage collection controller when ownerReferences with incorrect data are encountered. Events with a reason of `OwnerRefInvalidNamespace` are recorded when namespace mismatches between child and owner objects are detected.\n - A namespaced object with an ownerReference referencing a uid of a namespaced kind which does not exist in the same namespace is now consistently treated as though that owner does not exist, and the child object is deleted.\n - A cluster-scoped object with an ownerReference referencing a uid of a namespaced kind is now consistently treated as though that owner is not resolvable, and the child object is ignored by the garbage collector. ([#92743](https://github.com/kubernetes/kubernetes/pull/92743), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps and Testing]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92743", - "pr_number": 92743, - "areas": ["test"], - "kinds": ["bug"], - "sigs": ["api-machinery", "apps", "testing"], - "duplicate": true - }, - "92744": { - "commit": "f98d3842c2621fb693953c4d1ee78805d3d945a5", - "text": "Automatic allocation of NodePorts for services with type LoadBalancer can now be disabled by setting the (new) parameter\nService.spec.allocateLoadBalancerNodePorts=false. The default is to allocate NodePorts for services with type LoadBalancer which is the existing behavior.", - "markdown": "Automatic allocation of NodePorts for services with type LoadBalancer can now be disabled by setting the (new) parameter\n Service.spec.allocateLoadBalancerNodePorts=false. The default is to allocate NodePorts for services with type LoadBalancer which is the existing behavior. ([#92744](https://github.com/kubernetes/kubernetes/pull/92744), [@uablrek](https://github.com/uablrek)) [SIG Apps and Network]", - "author": "uablrek", - "author_url": "https://github.com/uablrek", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92744", - "pr_number": 92744, - "kinds": ["api-change", "feature"], - "sigs": ["apps", "network"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "92817": { - "commit": "88512be213159f87ed2dad07f75c02d355eadac5", - "text": "Users will see increase in time for deletion of pods and also guarantee that removal of pod from api server would mean deletion of all the resources from container runtime.", - "markdown": "Users will see increase in time for deletion of pods and also guarantee that removal of pod from api server would mean deletion of all the resources from container runtime. ([#92817](https://github.com/kubernetes/kubernetes/pull/92817), [@kmala](https://github.com/kmala)) [SIG Node]", - "author": "kmala", - "author_url": "https://github.com/kmala", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92817", - "pr_number": 92817, - "areas": ["kubelet"], - "kinds": ["bug"], - "sigs": ["node"] - }, - "92878": { - "commit": "5760cef7a4fcd95947cae6c1cd305e087b9b1879", - "text": "Decrease warning message frequency on setting volume ownership for configmap/secret.", - "markdown": "Decrease warning message frequency on setting volume ownership for configmap/secret. ([#92878](https://github.com/kubernetes/kubernetes/pull/92878), [@jvanz](https://github.com/jvanz))", - "author": "jvanz", - "author_url": "https://github.com/jvanz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92878", - "pr_number": 92878, - "kinds": ["cleanup"], - "sigs": ["instrumentation", "node", "storage"], - "duplicate": true - }, - "92967": { - "commit": "75463bda1d9103a46de127528ee7b3b96ceada54", - "text": "New flag is introduced, i.e. --topology-manager-scope=container|pod. \nThe default value is the \"container\" scope.", - "markdown": "New flag is introduced, i.e. --topology-manager-scope=container|pod. \n The default value is the \"container\" scope. ([#92967](https://github.com/kubernetes/kubernetes/pull/92967), [@cezaryzukowski](https://github.com/cezaryzukowski)) [SIG Instrumentation, Node and Testing]", - "author": "cezaryzukowski", - "author_url": "https://github.com/cezaryzukowski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92967", - "pr_number": 92967, - "areas": [ - "apiserver", - "code-generation", - "e2e-test-framework", - "kubelet", - "test" - ], - "kinds": ["api-change", "feature"], - "sigs": ["instrumentation", "node", "testing"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "92968": { - "commit": "cccd77bd3a88643bade3da407065f5fc8312f511", - "text": "Add a 'serving' and `terminating` condition to the EndpointSlice API.\n\n`serving` tracks the readiness of endpoints regardless of their terminating state. This is distinct from `ready` since `ready` is only true when pods are not terminating. \n`terminating` is true when an endpoint is terminating. For pods this is any endpoint with a deletion timestamp.", - "markdown": "Add a 'serving' and `terminating` condition to the EndpointSlice API.\n \n `serving` tracks the readiness of endpoints regardless of their terminating state. This is distinct from `ready` since `ready` is only true when pods are not terminating. \n `terminating` is true when an endpoint is terminating. For pods this is any endpoint with a deletion timestamp. ([#92968](https://github.com/kubernetes/kubernetes/pull/92968), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps and Network]", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92968", - "pr_number": 92968, - "kinds": ["api-change", "feature"], - "sigs": ["apps", "network"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "92998": { - "commit": "0446ecaa812b5ab4c907e0e946a30b0c2ff27507", - "text": "kubectl: the `generator` flag of `kubectl autoscale` has been deprecated and has no effect, it will be removed in a feature release", - "markdown": "Kubectl: the `generator` flag of `kubectl autoscale` has been deprecated and has no effect, it will be removed in a feature release ([#92998](https://github.com/kubernetes/kubernetes/pull/92998), [@SataQiu](https://github.com/SataQiu)) [SIG CLI]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92998", - "pr_number": 92998, - "areas": ["kubectl"], - "kinds": ["cleanup"], - "sigs": ["cli"] - }, - "93011": { - "commit": "4093df78eada321223e30fe620242fba6210a216", - "text": "fix: azure disk resize error if source does not exist", - "markdown": "Fix: azure disk resize error if source does not exist ([#93011](https://github.com/kubernetes/kubernetes/pull/93011), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93011", - "pr_number": 93011, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug", "cleanup"], - "sigs": ["cloud-provider"], - "duplicate_kind": true - }, - "93040": { - "commit": "bdde4fb8f517d510641cecfbb12fdd5a4fd5f380", - "text": "ipvs: ensure selected scheduler kernel modules are loaded", - "markdown": "Ipvs: ensure selected scheduler kernel modules are loaded ([#93040](https://github.com/kubernetes/kubernetes/pull/93040), [@cmluciano](https://github.com/cmluciano)) [SIG Network]", - "author": "cmluciano", - "author_url": "https://github.com/cmluciano", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93040", - "pr_number": 93040, - "areas": ["ipvs"], - "kinds": ["bug"], - "sigs": ["network"] - }, - "93066": { - "commit": "0969e666dc4050fe3a51541807b7dbadefa64963", - "text": "Add the following metrics:\n- network_plugin_operations_total\n- network_plugin_operations_errors_total", - "markdown": "Add the following metrics:\n - network_plugin_operations_total\n - network_plugin_operations_errors_total ([#93066](https://github.com/kubernetes/kubernetes/pull/93066), [@AnishShah](https://github.com/AnishShah))", - "author": "AnishShah", - "author_url": "https://github.com/AnishShah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93066", - "pr_number": 93066, - "areas": ["kubelet"], - "kinds": ["cleanup"], - "sigs": ["instrumentation", "network", "node"], - "duplicate": true - }, - "93078": { - "commit": "6e3ef0be163566c08398e1e5ff43f87accfb036b", - "text": "The status of v1beta1 CRDs without \"preserveUnknownFields:false\" now shows a violation, \"spec.preserveUnknownFields: Invalid value: true: must be false\".", - "markdown": "The status of v1beta1 CRDs without \"preserveUnknownFields:false\" now shows a violation, \"spec.preserveUnknownFields: Invalid value: true: must be false\". ([#93078](https://github.com/kubernetes/kubernetes/pull/93078), [@vareti](https://github.com/vareti))", - "author": "vareti", - "author_url": "https://github.com/vareti", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93078", - "pr_number": 93078, - "kinds": ["api-change", "bug"], - "sigs": ["api-machinery"], - "duplicate_kind": true - }, - "93108": { - "commit": "08d62502fa482fbcd939860c644847264218217b", - "text": "StreamWatcher now calls HandleCrash at appropriate sequence.", - "markdown": "StreamWatcher now calls HandleCrash at appropriate sequence. ([#93108](https://github.com/kubernetes/kubernetes/pull/93108), [@lixiaobing1](https://github.com/lixiaobing1))", - "author": "lixiaobing1", - "author_url": "https://github.com/lixiaobing1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93108", - "pr_number": 93108, - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "93130": { - "commit": "55856ed727ee4a5d6b71b7e47ee964d82d33539b", - "text": "this PR will introduce a feature gate CSIServiceAccountToken with two additional fields in `CSIDriverSpec`.", - "markdown": "This PR will introduce a feature gate CSIServiceAccountToken with two additional fields in `CSIDriverSpec`. ([#93130](https://github.com/kubernetes/kubernetes/pull/93130), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Apps, Auth, CLI, Network, Node, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/1855", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93130", - "pr_number": 93130, - "areas": [ - "apiserver", - "e2e-test-framework", - "ipvs", - "kubectl", - "kubelet", - "release-eng", - "test" - ], - "kinds": ["api-change"], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cli", - "network", - "node", - "storage", - "testing" - ], - "duplicate": true - }, - "93166": { - "commit": "24a9d07bf810c846a79444cb4ea4adee90d4a821", - "text": "Added support to kube-proxy for externalTrafficPolicy=Local setting via Direct Server Return (DSR) load balancers on Windows.", - "markdown": "Added support to kube-proxy for externalTrafficPolicy=Local setting via Direct Server Return (DSR) load balancers on Windows. ([#93166](https://github.com/kubernetes/kubernetes/pull/93166), [@elweb9858](https://github.com/elweb9858)) [SIG Network]", - "author": "elweb9858", - "author_url": "https://github.com/elweb9858", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93166", - "pr_number": 93166, - "kinds": ["bug"], - "sigs": ["network"] - }, - "93180": { - "commit": "9b46d76d5e10815957d5e845289f8e3ee7fb0ff5", - "text": "to ensure the code be strong, add unit test for GetAddressAndDialer", - "markdown": "To ensure the code be strong, add unit test for GetAddressAndDialer ([#93180](https://github.com/kubernetes/kubernetes/pull/93180), [@FreeZhang61](https://github.com/FreeZhang61)) [SIG Node]", - "author": "FreeZhang61", - "author_url": "https://github.com/FreeZhang61", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93180", - "pr_number": 93180, - "areas": ["dependency", "kubelet"], - "kinds": ["cleanup"], - "sigs": ["node"] - }, - "93201": { - "commit": "8d30a5f1364a66e11d966f9efed34e7340280f3f", - "text": "Kubemark now supports both real and hollow nodes in a single cluster.", - "markdown": "Kubemark now supports both real and hollow nodes in a single cluster. ([#93201](https://github.com/kubernetes/kubernetes/pull/93201), [@ellistarn](https://github.com/ellistarn)) [SIG Scalability]", - "author": "ellistarn", - "author_url": "https://github.com/ellistarn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93201", - "pr_number": 93201, - "kinds": ["feature"], - "sigs": ["scalability"], - "feature": true - }, - "93220": { - "commit": "c6f7fbcfbc69120934ed87c5ac701bd1890347a3", - "text": "Ignore apparmor for non-linux operating systems", - "markdown": "Ignore apparmor for non-linux operating systems ([#93220](https://github.com/kubernetes/kubernetes/pull/93220), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows]", - "author": "wawa0210", - "author_url": "https://github.com/wawa0210", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93220", - "pr_number": 93220, - "areas": ["kubelet"], - "kinds": ["bug"], - "sigs": ["node", "windows"], - "duplicate": true - }, - "93244": { - "commit": "e0a51c9e6b4881df78e046d9c6daf4e6f2a11f78", - "text": "kube-apiserver: The timeout used when making health check calls to etcd can now be configured with `--etcd-healthcheck-timeout`. The default timeout is 2 seconds, matching the previous behavior.", - "markdown": "Kube-apiserver: The timeout used when making health check calls to etcd can now be configured with `--etcd-healthcheck-timeout`. The default timeout is 2 seconds, matching the previous behavior. ([#93244](https://github.com/kubernetes/kubernetes/pull/93244), [@Sh4d1](https://github.com/Sh4d1)) [SIG API Machinery]", - "author": "Sh4d1", - "author_url": "https://github.com/Sh4d1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93244", - "pr_number": 93244, - "areas": ["apiserver"], - "kinds": ["feature"], - "sigs": ["api-machinery"], - "feature": true - }, - "93250": { - "commit": "6a11d1f8aaa7a70f93541a320408fcda2354f377", - "text": "k8s.io/apimachinery: runtime.DefaultUnstructuredConverter.FromUnstructured now handles converting integer fields to typed float values", - "markdown": "K8s.io/apimachinery: runtime.DefaultUnstructuredConverter.FromUnstructured now handles converting integer fields to typed float values ([#93250](https://github.com/kubernetes/kubernetes/pull/93250), [@liggitt](https://github.com/liggitt)) [SIG API Machinery]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93250", - "pr_number": 93250, - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "93258": { - "commit": "bf67247124363a3767190999d7795fe86edad9dc", - "text": "+ `TokenRequest` and `TokenRequestProjection` features have been promoted to GA. This feature allows generating service account tokens that are not visible in Secret objects and are tied to the lifetime of a Pod object. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection for details on configuring and using this feature. The `TokenRequest` and `TokenRequestProjection` feature gates will be removed in v1.21.\n+ kubeadm's kube-apiserver Pod manifest now includes the following flags by default \"--service-account-key-file\", \"--service-account-signing-key-file\", \"--service-account-issuer\".", - "markdown": "+ `TokenRequest` and `TokenRequestProjection` features have been promoted to GA. This feature allows generating service account tokens that are not visible in Secret objects and are tied to the lifetime of a Pod object. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection for details on configuring and using this feature. The `TokenRequest` and `TokenRequestProjection` feature gates will be removed in v1.21.\n + kubeadm's kube-apiserver Pod manifest now includes the following flags by default \"--service-account-key-file\", \"--service-account-signing-key-file\", \"--service-account-issuer\". ([#93258](https://github.com/kubernetes/kubernetes/pull/93258), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Cluster Lifecycle, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1205-bound-service-account-tokens/README.md", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93258", - "pr_number": 93258, - "areas": ["apiserver", "kubeadm", "test"], - "kinds": ["api-change"], - "sigs": [ - "api-machinery", - "auth", - "cluster-lifecycle", - "storage", - "testing" - ], - "duplicate": true - }, - "93275": { - "commit": "92ba3eb7939494f657d7e4c8be981a5ec7cfb453", - "text": "kubeadm: Add a preflight check that the control-plane node has at least 1700MB of RAM", - "markdown": "Kubeadm: Add a preflight check that the control-plane node has at least 1700MB of RAM ([#93275](https://github.com/kubernetes/kubernetes/pull/93275), [@xlgao-zju](https://github.com/xlgao-zju)) [SIG Cluster Lifecycle]", - "author": "xlgao-zju", - "author_url": "https://github.com/xlgao-zju", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93275", - "pr_number": 93275, - "areas": ["dependency", "kubeadm"], - "kinds": ["feature"], - "sigs": ["cluster-lifecycle"], - "feature": true - }, - "93311": { - "commit": "a9d1482710a4c4baf112890882f4ab3d4be158a6", - "text": "Adds a bootstrapping ClusterRole, ClusterRoleBinding and group for /metrics, /livez/*, /readyz/*, \u0026 /healthz/- endpoints.", - "markdown": "Adds a bootstrapping ClusterRole, ClusterRoleBinding and group for /metrics, /livez/*, /readyz/*, \u0026 /healthz/- endpoints. ([#93311](https://github.com/kubernetes/kubernetes/pull/93311), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Auth, Cloud Provider and Instrumentation]", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93311", - "pr_number": 93311, - "areas": ["apiserver", "provider/gcp"], - "kinds": ["cleanup"], - "sigs": ["api-machinery", "auth", "cloud-provider", "instrumentation"], - "duplicate": true - }, - "93370": { - "commit": "667d1c2c3fe7f6cece4f74dfd28983d5bdbf4208", - "text": "Users can try the cronjob controller v2 using the feature gate. This will be the default controller in future releases.", - "markdown": "Users can try the cronjob controller v2 using the feature gate. This will be the default controller in future releases. ([#93370](https://github.com/kubernetes/kubernetes/pull/93370), [@alaypatel07](https://github.com/alaypatel07)) [SIG API Machinery, Apps, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-apps/19-Graduate-CronJob-to-Stable/README.md", - "type": "KEP" - } - ], - "author": "alaypatel07", - "author_url": "https://github.com/alaypatel07", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93370", - "pr_number": 93370, - "areas": ["apiserver", "code-generation", "test"], - "kinds": ["api-change", "cleanup"], - "sigs": ["api-machinery", "apps", "auth", "testing"], - "duplicate": true, - "duplicate_kind": true - }, - "93384": { - "commit": "d9b576d61ea04dc1fc0444c2a7a187d176069ba6", - "text": "Add foreground cascading deletion to kubectl with the new `kubectl delete foreground|background|orphan` option.", - "markdown": "Add foreground cascading deletion to kubectl with the new `kubectl delete foreground|background|orphan` option. ([#93384](https://github.com/kubernetes/kubernetes/pull/93384), [@zhouya0](https://github.com/zhouya0))", - "author": "zhouya0", - "author_url": "https://github.com/zhouya0", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93384", - "pr_number": 93384, - "areas": ["kubectl", "test"], - "kinds": ["feature"], - "sigs": ["cli", "testing"], - "feature": true, - "duplicate": true - }, - "93406": { - "commit": "9631d96b04ff4a83533ff04c6827cb489fda041f", - "text": "The `/debug/api_priority_and_fairness/dump_requests` path at an apiserver will no longer return a phantom line for each exempt priority level.", - "markdown": "The `/debug/api_priority_and_fairness/dump_requests` path at an apiserver will no longer return a phantom line for each exempt priority level. ([#93406](https://github.com/kubernetes/kubernetes/pull/93406), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93406", - "pr_number": 93406, - "areas": ["apiserver"], - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "93457": { - "commit": "fe67e85bbf33298e74f099b349c80c3a5c8e2d18", - "text": "StatefulSet Controller now waits for PersistentVolumeClaim deletion before creating pods.", - "markdown": "StatefulSet Controller now waits for PersistentVolumeClaim deletion before creating pods. ([#93457](https://github.com/kubernetes/kubernetes/pull/93457), [@ymmt2005](https://github.com/ymmt2005))", - "author": "ymmt2005", - "author_url": "https://github.com/ymmt2005", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93457", - "pr_number": 93457, - "kinds": ["bug"], - "sigs": ["apps"] - }, - "93475": { - "commit": "f5a42d69c94b3f928ea3f9cff78cb1a81837544a", - "text": "Strip unnecessary security contexts on Windows", - "markdown": "Strip unnecessary security contexts on Windows ([#93475](https://github.com/kubernetes/kubernetes/pull/93475), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node, Testing and Windows]", - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93475", - "pr_number": 93475, - "areas": ["kubelet", "test"], - "kinds": ["cleanup"], - "sigs": ["node", "testing", "windows"], - "duplicate": true - }, - "93515": { - "commit": "02b5b60ecdf663acc00bafe534ce7483aaf2d782", - "text": "use NLB Subnet CIDRs instead of VPC CIDRs in Health Check SG Rules", - "markdown": "Use NLB Subnet CIDRs instead of VPC CIDRs in Health Check SG Rules ([#93515](https://github.com/kubernetes/kubernetes/pull/93515), [@t0rr3sp3dr0](https://github.com/t0rr3sp3dr0)) [SIG Cloud Provider]", - "author": "t0rr3sp3dr0", - "author_url": "https://github.com/t0rr3sp3dr0", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93515", - "pr_number": 93515, - "areas": ["cloudprovider"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "93523": { - "commit": "74b04768b6d1a087c106828f45aeed2f84fa971e", - "text": "Fix incorrectly reported verbs for kube-apiserver metrics for CRD objects", - "markdown": "Fix incorrectly reported verbs for kube-apiserver metrics for CRD objects ([#93523](https://github.com/kubernetes/kubernetes/pull/93523), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Instrumentation]", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93523", - "pr_number": 93523, - "areas": ["apiserver"], - "kinds": ["bug"], - "sigs": ["api-machinery", "instrumentation"], - "duplicate": true - }, - "93534": { - "commit": "c72b30b3b7760713477114bb0eb2c62a12908265", - "text": "Scheduling Framework: expose Run[Pre]ScorePlugins functions to PreemptionHandle which can be used in PostFilter extention point.", - "markdown": "Scheduling Framework: expose Run[Pre]ScorePlugins functions to PreemptionHandle which can be used in PostFilter extention point. ([#93534](https://github.com/kubernetes/kubernetes/pull/93534), [@everpeace](https://github.com/everpeace)) [SIG Scheduling and Testing]", - "author": "everpeace", - "author_url": "https://github.com/everpeace", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93534", - "pr_number": 93534, - "areas": ["test"], - "kinds": ["feature"], - "sigs": ["scheduling", "testing"], - "feature": true, - "duplicate": true - }, - "93548": { - "commit": "67e7d5897e49452b8a4b528b294753b2eb85dfe0", - "text": "Very large patches may now be specified to `kubectl patch` with the `--patch-file` flag instead of including them directly on the command line. The `--patch` and `--patch-file` flags are mutually exclusive.", - "markdown": "Very large patches may now be specified to `kubectl patch` with the `--patch-file` flag instead of including them directly on the command line. The `--patch` and `--patch-file` flags are mutually exclusive. ([#93548](https://github.com/kubernetes/kubernetes/pull/93548), [@smarterclayton](https://github.com/smarterclayton)) [SIG CLI]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93548", - "pr_number": 93548, - "areas": ["kubectl"], - "kinds": ["bug"], - "sigs": ["cli"] - }, - "93626": { - "commit": "a39f9dfde7d3ae32bbfb116a4ab49ff489cde03a", - "text": "Remove support for \"ci/k8s-master\" version label in kubeadm, use \"ci/latest\" instead. See kubernetes/test-infra\u0026#35;18517.", - "markdown": "Remove support for \"ci/k8s-master\" version label in kubeadm, use \"ci/latest\" instead. See kubernetes/test-infra\u0026#35;18517. ([#93626](https://github.com/kubernetes/kubernetes/pull/93626), [@vikkyomkar](https://github.com/vikkyomkar))", - "author": "vikkyomkar", - "author_url": "https://github.com/vikkyomkar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93626", - "pr_number": 93626, - "areas": ["kubeadm"], - "kinds": ["cleanup"], - "sigs": ["cluster-lifecycle"] - }, - "93692": { - "commit": "f508d741698e424d5cf9d9ef0a08cf9445cc181e", - "text": "Fixed bug where kubectl top pod output is not sorted when --sort-by and --containers flags are used together", - "markdown": "Fixed bug where kubectl top pod output is not sorted when --sort-by and --containers flags are used together ([#93692](https://github.com/kubernetes/kubernetes/pull/93692), [@brianpursley](https://github.com/brianpursley)) [SIG CLI]", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93692", - "pr_number": 93692, - "areas": ["kubectl"], - "kinds": ["bug"], - "sigs": ["cli"] - }, - "93702": { - "commit": "27df218c72c3766c4252ec38f0ffc06309f72929", - "text": "kubeadm ensures \"kubeadm reset\" does not unmount the root \"/var/lib/kubelet\" directory if it is mounted by the user.", - "markdown": "Kubeadm ensures \"kubeadm reset\" does not unmount the root \"/var/lib/kubelet\" directory if it is mounted by the user. ([#93702](https://github.com/kubernetes/kubernetes/pull/93702), [@thtanaka](https://github.com/thtanaka))", - "author": "thtanaka", - "author_url": "https://github.com/thtanaka", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93702", - "pr_number": 93702, - "areas": ["kubeadm"], - "kinds": ["bug", "regression"], - "sigs": ["cluster-lifecycle"], - "duplicate_kind": true - }, - "93710": { - "commit": "e23d83eead3b5ae57731afb0209f4a2aaa4009dd", - "text": "CSIDriver object can be deployed during volume attachment.", - "markdown": "CSIDriver object can be deployed during volume attachment. ([#93710](https://github.com/kubernetes/kubernetes/pull/93710), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps, Node, Storage and Testing]", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93710", - "pr_number": 93710, - "areas": ["kubelet", "test"], - "kinds": ["bug"], - "sigs": ["apps", "node", "storage", "testing"], - "duplicate": true - }, - "93773": { - "commit": "db10d8c942a0bbe6856dfd729c24607d22bb9e08", - "text": "Fix a concurrent map writes error in kubelet", - "markdown": "Fix a concurrent map writes error in kubelet ([#93773](https://github.com/kubernetes/kubernetes/pull/93773), [@knight42](https://github.com/knight42)) [SIG Node]", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93773", - "pr_number": 93773, - "areas": ["kubelet"], - "kinds": ["bug"], - "sigs": ["node"] - }, - "93837": { - "commit": "61490bba46ee2ad39690c682db0bee425b21798e", - "text": "Add fine grained debugging to intra-pod conformance test to troubleshoot networking issues for potentially unhealthy nodes when running conformance or sonobuoy tests.", - "markdown": "Add fine grained debugging to intra-pod conformance test to troubleshoot networking issues for potentially unhealthy nodes when running conformance or sonobuoy tests. ([#93837](https://github.com/kubernetes/kubernetes/pull/93837), [@jayunit100](https://github.com/jayunit100))", - "author": "jayunit100", - "author_url": "https://github.com/jayunit100", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93837", - "pr_number": 93837, - "areas": ["e2e-test-framework", "test"], - "kinds": ["cleanup"], - "sigs": ["network", "testing"], - "duplicate": true - }, - "93873": { - "commit": "4261200724cd0541b4ff02cc56be866b98142823", - "text": "Add a StorageVersionAPI feature gate that makes API server update storageversions before serving certain write requests. \nThis feature allows the storage migrator to manage storage migration for built-in resources. \nEnabling internal.apiserver.k8s.io/v1alpha1 API and APIServerIdentity feature gate are required to use this feature.", - "markdown": "Add a StorageVersionAPI feature gate that makes API server update storageversions before serving certain write requests. \n This feature allows the storage migrator to manage storage migration for built-in resources. \n Enabling internal.apiserver.k8s.io/v1alpha1 API and APIServerIdentity feature gate are required to use this feature. ([#93873](https://github.com/kubernetes/kubernetes/pull/93873), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery, Auth and Testing]", - "author": "roycaihw", - "author_url": "https://github.com/roycaihw", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93873", - "pr_number": 93873, - "areas": ["apiserver", "test"], - "kinds": ["feature"], - "sigs": ["api-machinery", "auth", "testing"], - "feature": true, - "duplicate": true - }, - "93901": { - "commit": "90c9f7b3e198e82a756a68ffeac978a00d606e55", - "text": "Server Side Apply now treats LabelSelector fields as atomic (meaning the entire selector is managed by a single writer and updated together), since they contain interrelated and inseparable fields that do not merge in intuitive ways.", - "markdown": "Server Side Apply now treats LabelSelector fields as atomic (meaning the entire selector is managed by a single writer and updated together), since they contain interrelated and inseparable fields that do not merge in intuitive ways. ([#93901](https://github.com/kubernetes/kubernetes/pull/93901), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Storage and Testing]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93901", - "pr_number": 93901, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "ipvs", - "kubectl", - "kubelet", - "release-eng", - "test" - ], - "kinds": ["api-change", "bug"], - "sigs": [ - "api-machinery", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "93931": { - "commit": "119c94214c8b11a9f585557bff49bef26faf88b1", - "text": "kubelet: assume that swap is disabled when `/proc/swaps` does not exist", - "markdown": "Kubelet: assume that swap is disabled when `/proc/swaps` does not exist ([#93931](https://github.com/kubernetes/kubernetes/pull/93931), [@SataQiu](https://github.com/SataQiu)) [SIG Node]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93931", - "pr_number": 93931, - "areas": ["kubelet"], - "kinds": ["bug"], - "sigs": ["node"] - }, - "93962": { - "commit": "0c233eb62156771f55b55132ca25bd8125cae8cd", - "text": "Fix a bug where loadbalancer deletion gets stuck because of missing resource group.", - "markdown": "Fix a bug where loadbalancer deletion gets stuck because of missing resource group. ([#93962](https://github.com/kubernetes/kubernetes/pull/93962), [@phiphi282](https://github.com/phiphi282))", - "author": "phiphi282", - "author_url": "https://github.com/phiphi282", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93962", - "pr_number": 93962, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "93992": { - "commit": "be1d43a097c12ad8676c9b7fe2002745125de464", - "text": "kubeadm: add the \"--cluster-name\" flag to the \"kubeadm alpha kubeconfig user\" to allow configuring the cluster name in the generated kubeconfig file", - "markdown": "Kubeadm: add the \"--cluster-name\" flag to the \"kubeadm alpha kubeconfig user\" to allow configuring the cluster name in the generated kubeconfig file ([#93992](https://github.com/kubernetes/kubernetes/pull/93992), [@prabhu43](https://github.com/prabhu43)) [SIG Cluster Lifecycle]", - "author": "prabhu43", - "author_url": "https://github.com/prabhu43", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93992", - "pr_number": 93992, - "areas": ["kubeadm"], - "kinds": ["feature"], - "sigs": ["cluster-lifecycle"], - "feature": true - }, - "94016": { - "commit": "be69ccc287cea1fcf63dbf08a640e955a96d3e9b", - "text": "kubeadm: Separate argument key/value in log msg", - "markdown": "Kubeadm: Separate argument key/value in log msg ([#94016](https://github.com/kubernetes/kubernetes/pull/94016), [@mrueg](https://github.com/mrueg)) [SIG Cluster Lifecycle]", - "author": "mrueg", - "author_url": "https://github.com/mrueg", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94016", - "pr_number": 94016, - "areas": ["kubeadm"], - "kinds": ["cleanup"], - "sigs": ["cluster-lifecycle"] - }, - "94035": { - "commit": "f588ad9c597759e45dec46b34f97824ad4323548", - "text": "Fixes the message about no auth for metrics in scheduler.", - "markdown": "Fixes the message about no auth for metrics in scheduler. ([#94035](https://github.com/kubernetes/kubernetes/pull/94035), [@zhouya0](https://github.com/zhouya0)) [SIG Scheduling]", - "author": "zhouya0", - "author_url": "https://github.com/zhouya0", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94035", - "pr_number": 94035, - "kinds": ["cleanup"], - "sigs": ["scheduling"] - }, - "94066": { - "commit": "5ee72a49cbc6665bcf71d3970614cf97d9f838a7", - "text": "kube-apiserver: added support for compressing rotated audit log files with `--audit-log-compress`", - "markdown": "Kube-apiserver: added support for compressing rotated audit log files with `--audit-log-compress` ([#94066](https://github.com/kubernetes/kubernetes/pull/94066), [@lojies](https://github.com/lojies)) [SIG API Machinery and Auth]", - "author": "lojies", - "author_url": "https://github.com/lojies", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94066", - "pr_number": 94066, - "areas": ["apiserver"], - "kinds": ["feature"], - "sigs": ["api-machinery", "auth"], - "feature": true, - "duplicate": true - }, - "94078": { - "commit": "e7420a483f294384df70a38ccbab98d5ba449bb7", - "text": "Azure ARM client: don't segfault on empty response and http error", - "markdown": "Azure ARM client: don't segfault on empty response and http error ([#94078](https://github.com/kubernetes/kubernetes/pull/94078), [@bpineau](https://github.com/bpineau)) [SIG Cloud Provider]", - "author": "bpineau", - "author_url": "https://github.com/bpineau", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94078", - "pr_number": 94078, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "94090": { - "commit": "54df1fdc9083ecc459ba60f395d755a90a2cd0b8", - "text": "The v1alpha1 PodPreset API and admission plugin has been removed with no built-in replacement. Admission webhooks can be used to modify pods on creation.", - "markdown": "The v1alpha1 PodPreset API and admission plugin has been removed with no built-in replacement. Admission webhooks can be used to modify pods on creation. ([#94090](https://github.com/kubernetes/kubernetes/pull/94090), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Apps, CLI, Cloud Provider, Scalability and Testing]", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94090", - "pr_number": 94090, - "areas": ["apiserver", "kubectl", "provider/gcp", "test"], - "kinds": ["api-change", "deprecation", "feature"], - "sigs": [ - "api-machinery", - "apps", - "cli", - "cloud-provider", - "scalability", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "94102": { - "commit": "7ffc46924ff2005132e04e09453b9b6ff3509dc5", - "text": "kubeadm: ensure the etcd data directory is created with 0700 permissions during control-plane init and join", - "markdown": "Kubeadm: ensure the etcd data directory is created with 0700 permissions during control-plane init and join ([#94102](https://github.com/kubernetes/kubernetes/pull/94102), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94102", - "pr_number": 94102, - "areas": ["kubeadm"], - "kinds": ["bug", "regression"], - "sigs": ["cluster-lifecycle"], - "duplicate_kind": true - }, - "94107": { - "commit": "163504e9ae9afa2e9096dd0606449f6afa5c7548", - "text": "kube-proxy now trims extra spaces found in loadBalancerSourceRanges to match Service validation.", - "markdown": "Kube-proxy now trims extra spaces found in loadBalancerSourceRanges to match Service validation. ([#94107](https://github.com/kubernetes/kubernetes/pull/94107), [@robscott](https://github.com/robscott)) [SIG Network]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94107", - "pr_number": 94107, - "kinds": ["bug"], - "sigs": ["network"] - }, - "94112": { - "commit": "1f708f6e6272a8f4c5b9a32cc3aea33ff79aeec1", - "text": "Fixed a bug where improper storage and comparison of endpoints led to excessive API traffic from the endpoints controller", - "markdown": "Fixed a bug where improper storage and comparison of endpoints led to excessive API traffic from the endpoints controller ([#94112](https://github.com/kubernetes/kubernetes/pull/94112), [@damemi](https://github.com/damemi)) [SIG Apps, Network and Testing]", - "author": "damemi", - "author_url": "https://github.com/damemi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94112", - "pr_number": 94112, - "areas": ["test"], - "kinds": ["bug"], - "sigs": ["apps", "network", "testing"], - "duplicate": true - }, - "94114": { - "commit": "4fd93ff852291b577e7a05c9e65e8b054674b39a", - "text": "Support [service.beta.kubernetes.io/azure-pip-ip-tags] annotations to allow customers to specify ip-tags to influence public-ip creation in Azure [Tag1=Value1, Tag2=Value2, etc.]", - "markdown": "Support [service.beta.kubernetes.io/azure-pip-ip-tags] annotations to allow customers to specify ip-tags to influence public-ip creation in Azure [Tag1=Value1, Tag2=Value2, etc.] ([#94114](https://github.com/kubernetes/kubernetes/pull/94114), [@MarcPow](https://github.com/MarcPow)) [SIG Cloud Provider]", - "author": "MarcPow", - "author_url": "https://github.com/MarcPow", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94114", - "pr_number": 94114, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["feature"], - "sigs": ["cloud-provider"], - "feature": true - }, - "94115": { - "commit": "fe3779832963d00388f6e93ac58be966f8f83868", - "text": "a bug was fixed in kubelet where exec probe timeouts were not respected. Ensure that pods relying on this behavior are updated to correctly handle probe timeouts.\n\nThis change in behavior may be unexpected for some clusters and can be disabled by turning off the ExecProbeTimeout feature gate. This gate will be locked and removed in future releases so that exec probe timeouts are always respected.", - "markdown": "A bug was fixed in kubelet where exec probe timeouts were not respected. Ensure that pods relying on this behavior are updated to correctly handle probe timeouts.\n \n This change in behavior may be unexpected for some clusters and can be disabled by turning off the ExecProbeTimeout feature gate. This gate will be locked and removed in future releases so that exec probe timeouts are always respected. ([#94115](https://github.com/kubernetes/kubernetes/pull/94115), [@andrewsykim](https://github.com/andrewsykim)) [SIG Node and Testing]", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94115", - "pr_number": 94115, - "areas": ["kubelet", "test"], - "kinds": ["bug"], - "sigs": ["node", "testing"], - "duplicate": true, - "action_required": true - }, - "94124": { - "commit": "164e9fe3a03f4121b9029d4762f95e9fa58817a2", - "text": "Add metrics for azure service operations (route and loadbalancer).", - "markdown": "Add metrics for azure service operations (route and loadbalancer). ([#94124](https://github.com/kubernetes/kubernetes/pull/94124), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider and Instrumentation]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94124", - "pr_number": 94124, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["feature"], - "sigs": ["cloud-provider", "instrumentation"], - "feature": true, - "duplicate": true - }, - "94126": { - "commit": "82475c3186b9416fd6cacc451ab054c7038078e0", - "text": "fix: use sensitiveOptions on Windows mount", - "markdown": "Fix: use sensitiveOptions on Windows mount ([#94126](https://github.com/kubernetes/kubernetes/pull/94126), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94126", - "pr_number": 94126, - "areas": ["provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider", "storage"], - "duplicate": true - }, - "94140": { - "commit": "293a53f2c082259b3ba9745cdeba14b0b6ac2bf7", - "text": "Promote SupportNodePidsLimit to GA to provide node-to-pod PID isolation.\nPromote SupportPodPidsLimit to GA to provide ability to limit PIDs per pod.", - "markdown": "Promote SupportNodePidsLimit to GA to provide node-to-pod PID isolation.\n Promote SupportPodPidsLimit to GA to provide ability to limit PIDs per pod. ([#94140](https://github.com/kubernetes/kubernetes/pull/94140), [@derekwaynecarr](https://github.com/derekwaynecarr))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/1952", - "type": "KEP" - } - ], - "author": "derekwaynecarr", - "author_url": "https://github.com/derekwaynecarr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94140", - "pr_number": 94140, - "areas": ["kubelet", "test"], - "kinds": ["feature"], - "sigs": ["node", "testing"], - "feature": true, - "duplicate": true - }, - "94180": { - "commit": "54f3b85dc73e832fbca106257c2d15c7754c081b", - "text": "Azure armclient backoff step defaults to 1 (no retry).", - "markdown": "Azure armclient backoff step defaults to 1 (no retry). ([#94180](https://github.com/kubernetes/kubernetes/pull/94180), [@feiskyer](https://github.com/feiskyer))", - "author": "feiskyer", - "author_url": "https://github.com/feiskyer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94180", - "pr_number": 94180, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "94182": { - "commit": "e077b0ffa48b1c0300a2cb25dd5d45d6fc358ade", - "text": "modify DNS-1123 error messages to indicate that RFC 1123 is not followed exactly", - "markdown": "Modify DNS-1123 error messages to indicate that RFC 1123 is not followed exactly ([#94182](https://github.com/kubernetes/kubernetes/pull/94182), [@mattfenwick](https://github.com/mattfenwick)) [SIG API Machinery, Apps, Auth, Network and Node]", - "author": "mattfenwick", - "author_url": "https://github.com/mattfenwick", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94182", - "pr_number": 94182, - "kinds": ["api-change", "cleanup"], - "sigs": ["api-machinery", "apps", "auth", "network", "node"], - "duplicate": true, - "duplicate_kind": true - }, - "94196": { - "commit": "d233111f5b46acdc521f7f0757b93938ac0b2db0", - "text": "Introduce alpha support for exec-based container registry credential provider plugins in the kubelet.", - "markdown": "Introduce alpha support for exec-based container registry credential provider plugins in the kubelet. ([#94196](https://github.com/kubernetes/kubernetes/pull/94196), [@andrewsykim](https://github.com/andrewsykim)) [SIG Node and Release]", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94196", - "pr_number": 94196, - "areas": ["kubelet", "release-eng"], - "kinds": ["api-change", "feature"], - "sigs": ["node", "release"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "94239": { - "commit": "37cf1d6aaa5c5d0dba6e545a70d91e77d730e478", - "text": "Add network rule support in Azure account creation.", - "markdown": "Add network rule support in Azure account creation. ([#94239](https://github.com/kubernetes/kubernetes/pull/94239), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94239", - "pr_number": 94239, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["feature"], - "sigs": ["cloud-provider"], - "feature": true - }, - "94241": { - "commit": "058b4d60a345138ad515e937e5a52611d30c0d73", - "text": "Update Calico to v3.15.2", - "markdown": "Update Calico to v3.15.2 ([#94241](https://github.com/kubernetes/kubernetes/pull/94241), [@lmm](https://github.com/lmm)) [SIG Cloud Provider]", - "author": "lmm", - "author_url": "https://github.com/lmm", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94241", - "pr_number": 94241, - "areas": ["provider/gcp"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "94259": { - "commit": "7f813a9d05feb14d00e6bbfe460456c0c362a465", - "text": "Update etcd client side to v3.4.13", - "markdown": "Update etcd client side to v3.4.13 ([#94259](https://github.com/kubernetes/kubernetes/pull/94259), [@jingyih](https://github.com/jingyih)) [SIG API Machinery and Cloud Provider]", - "author": "jingyih", - "author_url": "https://github.com/jingyih", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94259", - "pr_number": 94259, - "areas": ["apiserver", "cloudprovider", "dependency", "etcd"], - "kinds": ["cleanup"], - "sigs": ["api-machinery", "cloud-provider"], - "duplicate": true - }, - "94265": { - "commit": "01e9ddac809e829e9a7dededa0ef15899cf8ccef", - "text": "only update Azure data disks when attach/detach", - "markdown": "Only update Azure data disks when attach/detach ([#94265](https://github.com/kubernetes/kubernetes/pull/94265), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94265", - "pr_number": 94265, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["feature"], - "sigs": ["cloud-provider"], - "feature": true - }, - "94272": { - "commit": "a0eb9d146a8aa4adfe9040de0637aa7b23461c55", - "text": "kubelet's deprecated endpoint `metrics/resource/v1alpha1` has been removed, please adopt to `metrics/resource`.", - "markdown": "Kubelet's deprecated endpoint `metrics/resource/v1alpha1` has been removed, please adopt to `metrics/resource`. ([#94272](https://github.com/kubernetes/kubernetes/pull/94272), [@RainbowMango](https://github.com/RainbowMango)) [SIG Instrumentation and Node]", - "author": "RainbowMango", - "author_url": "https://github.com/RainbowMango", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94272", - "pr_number": 94272, - "areas": ["kubelet"], - "kinds": ["api-change", "cleanup", "deprecation"], - "sigs": ["instrumentation", "node"], - "duplicate": true, - "duplicate_kind": true - }, - "94287": { - "commit": "b49724d5fcd0d4ae6abe48f32546e99a386b6a44", - "text": "Update default etcd server version to 3.4.13", - "markdown": "Update default etcd server version to 3.4.13 ([#94287](https://github.com/kubernetes/kubernetes/pull/94287), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing]", - "author": "jingyih", - "author_url": "https://github.com/jingyih", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94287", - "pr_number": 94287, - "areas": ["e2e-test-framework", "etcd", "kubeadm", "provider/gcp", "test"], - "kinds": ["bug", "cleanup"], - "sigs": ["api-machinery", "cloud-provider", "cluster-lifecycle", "testing"], - "duplicate": true, - "duplicate_kind": true - }, - "94288": { - "commit": "282ceef2cf6aecfd2383239eadacc58c354ae4b9", - "text": "Added counter metric \"apiserver_request_self\" to count API server self-requests with labels for verb, resource, and subresource.", - "markdown": "Added counter metric \"apiserver_request_self\" to count API server self-requests with labels for verb, resource, and subresource. ([#94288](https://github.com/kubernetes/kubernetes/pull/94288), [@LogicalShark](https://github.com/LogicalShark)) [SIG API Machinery, Auth, Instrumentation and Scheduling]", - "author": "LogicalShark", - "author_url": "https://github.com/LogicalShark", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94288", - "pr_number": 94288, - "areas": ["apiserver", "dependency"], - "kinds": ["feature"], - "sigs": ["api-machinery", "auth", "instrumentation", "scheduling"], - "feature": true, - "duplicate": true - }, - "94297": { - "commit": "35e235bba7e67b2c3698094ba10db11a8419e146", - "text": "service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset is removed. All Standard load balancers will always enable tcp resets.", - "markdown": "Service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset is removed. All Standard load balancers will always enable tcp resets. ([#94297](https://github.com/kubernetes/kubernetes/pull/94297), [@MarcPow](https://github.com/MarcPow)) [SIG Cloud Provider]", - "author": "MarcPow", - "author_url": "https://github.com/MarcPow", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94297", - "pr_number": 94297, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["cleanup"], - "sigs": ["cloud-provider"] - }, - "94299": { - "commit": "c19e050aeead8abc441f9276c6677bc2f13e5a9d", - "text": "kubeadm: avoid a panic when determining if the running version of CoreDNS is supported during upgrades", - "markdown": "Kubeadm: avoid a panic when determining if the running version of CoreDNS is supported during upgrades ([#94299](https://github.com/kubernetes/kubernetes/pull/94299), [@zouyee](https://github.com/zouyee)) [SIG Cluster Lifecycle]", - "author": "zouyee", - "author_url": "https://github.com/zouyee", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94299", - "pr_number": 94299, - "areas": ["kubeadm"], - "kinds": ["bug"], - "sigs": ["cluster-lifecycle"] - }, - "94306": { - "commit": "c182a599ee3f02b4b66c6d20caaa05f9a406a10f", - "text": "Azure: fix a bug that kube-controller-manager would panic if wrong Azure VMSS name is configured", - "markdown": "Azure: fix a bug that kube-controller-manager would panic if wrong Azure VMSS name is configured ([#94306](https://github.com/kubernetes/kubernetes/pull/94306), [@knight42](https://github.com/knight42)) [SIG Cloud Provider]", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94306", - "pr_number": 94306, - "areas": ["cloudprovider"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "94307": { - "commit": "b02b84870cc1e4a8e0bdecf3c58cd3caa0d1b920", - "text": "Update cri-tools to [v1.19.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.19.0)", - "markdown": "Update cri-tools to [v1.19.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.19.0) ([#94307](https://github.com/kubernetes/kubernetes/pull/94307), [@xmudrii](https://github.com/xmudrii)) [SIG Cloud Provider]", - "author": "xmudrii", - "author_url": "https://github.com/xmudrii", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94307", - "pr_number": 94307, - "areas": ["provider/gcp"], - "kinds": ["cleanup"], - "sigs": ["cloud-provider"] - }, - "94309": { - "commit": "433c3d57cca8bd59889e126df3e5e2975d530972", - "text": "`kubectl get ingress` now prefers the `networking.k8s.io/v1` over `extensions/v1beta1` (deprecated since v1.14). To explicitly request the deprecated version, use `kubectl get ingress.v1beta1.extensions`.", - "markdown": "`kubectl get ingress` now prefers the `networking.k8s.io/v1` over `extensions/v1beta1` (deprecated since v1.14). To explicitly request the deprecated version, use `kubectl get ingress.v1beta1.extensions`. ([#94309](https://github.com/kubernetes/kubernetes/pull/94309), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and CLI]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94309", - "pr_number": 94309, - "areas": ["apiserver"], - "kinds": ["cleanup"], - "sigs": ["api-machinery", "cli"], - "duplicate": true - }, - "94316": { - "commit": "fd2c584b8f39dc72c48061d14380661df1680798", - "text": "Fixed bug in reflector that couldn't recover from \"Too large resource version\" errors with API servers 1.17.0-1.18.5", - "markdown": "Fixed bug in reflector that couldn't recover from \"Too large resource version\" errors with API servers 1.17.0-1.18.5 ([#94316](https://github.com/kubernetes/kubernetes/pull/94316), [@janeczku](https://github.com/janeczku)) [SIG API Machinery]", - "author": "janeczku", - "author_url": "https://github.com/janeczku", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94316", - "pr_number": 94316, - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "94327": { - "commit": "35e20f1742db382d56081b7e5d6efd1382d15401", - "text": "kubectl create now supports creating ingress objects.", - "markdown": "Kubectl create now supports creating ingress objects. ([#94327](https://github.com/kubernetes/kubernetes/pull/94327), [@rikatz](https://github.com/rikatz)) [SIG CLI and Network]", - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94327", - "pr_number": 94327, - "areas": ["kubectl"], - "kinds": ["feature"], - "sigs": ["cli", "network"], - "feature": true, - "duplicate": true - }, - "94340": { - "commit": "5f79e91221855821efe083cbdb31291cbf9cc98e", - "text": "New Azure instance types do now have correct max data disk count information.", - "markdown": "New Azure instance types do now have correct max data disk count information. ([#94340](https://github.com/kubernetes/kubernetes/pull/94340), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Cloud Provider and Storage]", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94340", - "pr_number": 94340, - "areas": ["provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider", "storage"], - "duplicate": true - }, - "94355": { - "commit": "a69c4cb5f1d5aadd4354fc14876ba5b2828b032d", - "text": "Ensure getPrimaryInterfaceID not panic when network interfaces for Azure VMSS are null", - "markdown": "Ensure getPrimaryInterfaceID not panic when network interfaces for Azure VMSS are null ([#94355](https://github.com/kubernetes/kubernetes/pull/94355), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider]", - "author": "feiskyer", - "author_url": "https://github.com/feiskyer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94355", - "pr_number": 94355, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "94367": { - "commit": "ed6ac4e4386904b382c387e37a2a579b0d62759a", - "text": "Update CNI plugins to v0.8.7", - "markdown": "Update CNI plugins to v0.8.7 ([#94367](https://github.com/kubernetes/kubernetes/pull/94367), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Network, Node, Release and Testing]", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94367", - "pr_number": 94367, - "areas": ["dependency", "provider/gcp", "release-eng", "test"], - "kinds": ["cleanup"], - "sigs": ["cloud-provider", "network", "node", "release", "testing"], - "duplicate": true - }, - "94381": { - "commit": "7509c4eb478a3ab94ff26be2b4068da53212d538", - "text": "Unhealthy pods covered by PDBs can be successfully evicted if enough healthy pods are available.", - "markdown": "Unhealthy pods covered by PDBs can be successfully evicted if enough healthy pods are available. ([#94381](https://github.com/kubernetes/kubernetes/pull/94381), [@michaelgugino](https://github.com/michaelgugino)) [SIG Apps]", - "author": "michaelgugino", - "author_url": "https://github.com/michaelgugino", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94381", - "pr_number": 94381, - "kinds": ["bug"], - "sigs": ["apps"] - }, - "94389": { - "commit": "30a9b8b12628df6ad0faa22ac522ab8305f8538a", - "text": "Fix missing csi annotations on node during parallel csinode update.", - "markdown": "Fix missing csi annotations on node during parallel csinode update. ([#94389](https://github.com/kubernetes/kubernetes/pull/94389), [@pacoxu](https://github.com/pacoxu)) [SIG Storage]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94389", - "pr_number": 94389, - "kinds": ["bug"], - "sigs": ["storage"] - }, - "94395": { - "commit": "d5e2db896e3e1a36f22e7400be054562a529bb33", - "text": "kubeadm now makes sure the etcd manifest is regenerated upon upgrade even when no etcd version change takes place", - "markdown": "Kubeadm now makes sure the etcd manifest is regenerated upon upgrade even when no etcd version change takes place ([#94395](https://github.com/kubernetes/kubernetes/pull/94395), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle]", - "author": "rosti", - "author_url": "https://github.com/rosti", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94395", - "pr_number": 94395, - "areas": ["kubeadm"], - "kinds": ["bug"], - "sigs": ["cluster-lifecycle"] - }, - "94397": { - "commit": "f736be5721e370db8fa4445a8a3264bb3770fb6e", - "text": "Stop propagating SelfLink (deprecated in 1.16) in kube-apiserver", - "markdown": "Stop propagating SelfLink (deprecated in 1.16) in kube-apiserver ([#94397](https://github.com/kubernetes/kubernetes/pull/94397), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Testing]", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94397", - "pr_number": 94397, - "areas": ["apiserver", "test"], - "kinds": ["cleanup"], - "sigs": ["api-machinery", "testing"], - "duplicate": true - }, - "94398": { - "commit": "2c12a81cb745b4d876ad500637e1301d06497b7b", - "text": "kubeadm: make the kubeconfig files for the kube-controller-manager and kube-scheduler use the LocalAPIEndpoint instead of the ControlPlaneEndpoint. This makes kubeadm clusters more reseliant to version skew problems during immutable upgrades: https://kubernetes.io/docs/setup/release/version-skew-policy/#kube-controller-manager-kube-scheduler-and-cloud-controller-manager", - "markdown": "Kubeadm: make the kubeconfig files for the kube-controller-manager and kube-scheduler use the LocalAPIEndpoint instead of the ControlPlaneEndpoint. This makes kubeadm clusters more reseliant to version skew problems during immutable upgrades: https://kubernetes.io/docs/setup/release/version-skew-policy/#kube-controller-manager-kube-scheduler-and-cloud-controller-manager ([#94398](https://github.com/kubernetes/kubernetes/pull/94398), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94398", - "pr_number": 94398, - "areas": ["kubeadm"], - "kinds": ["bug"], - "sigs": ["cluster-lifecycle"] - }, - "94403": { - "commit": "ad97d931d90bd376c092a1a0da96525d29c31a4c", - "text": "Allow cross compilation of kubernetes on different platforms.", - "markdown": "Allow cross compilation of kubernetes on different platforms. ([#94403](https://github.com/kubernetes/kubernetes/pull/94403), [@bnrjee](https://github.com/bnrjee)) [SIG Release]", - "author": "bnrjee", - "author_url": "https://github.com/bnrjee", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94403", - "pr_number": 94403, - "kinds": ["feature"], - "sigs": ["release"], - "feature": true - }, - "94421": { - "commit": "0b92e8b16d00712594493072710f81b8d37ce623", - "text": "Fix a regression where kubeadm bails out with a fatal error when an optional version command line argument is supplied to the \"kubeadm upgrade plan\" command", - "markdown": "Fix a regression where kubeadm bails out with a fatal error when an optional version command line argument is supplied to the \"kubeadm upgrade plan\" command ([#94421](https://github.com/kubernetes/kubernetes/pull/94421), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle]", - "author": "rosti", - "author_url": "https://github.com/rosti", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94421", - "pr_number": 94421, - "areas": ["kubeadm"], - "kinds": ["bug", "regression"], - "sigs": ["cluster-lifecycle"], - "duplicate_kind": true - }, - "94443": { - "commit": "60dd999b48e7bf70886cc6875337d4d6ee614380", - "text": "Endpoint slice controller now mirrors parent's service label to its corresponding endpoint slices.", - "markdown": "Endpoint slice controller now mirrors parent's service label to its corresponding endpoint slices. ([#94443](https://github.com/kubernetes/kubernetes/pull/94443), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94443", - "pr_number": 94443, - "kinds": ["bug"], - "sigs": ["apps", "network"], - "duplicate": true - }, - "94444": { - "commit": "e3185f2cc0c81956fef3cdb36b4cae85fd4a7563", - "text": "Add feature to size memory backed volumes", - "markdown": "Add feature to size memory backed volumes ([#94444](https://github.com/kubernetes/kubernetes/pull/94444), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/1968", - "type": "KEP" - } - ], - "author": "derekwaynecarr", - "author_url": "https://github.com/derekwaynecarr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94444", - "pr_number": 94444, - "areas": ["test"], - "kinds": ["feature"], - "sigs": ["storage", "testing"], - "feature": true, - "duplicate": true - }, - "94449": { - "commit": "aed5ffd19539d4ddf8b52a4322eecc82c5b6d1d7", - "text": "Kubernetes is now built using go1.15.2\n- build: Update to k/repo-infra@v0.1.1 (supports go1.15.2)\n- build: Use go-runner:buster-v2.0.1 (built using go1.15.1)\n- bazel: Replace --features with Starlark build settings flag\n- hack/lib/util.sh: some bash cleanups\n \n - switched one spot to use kube::logging\n - make kube::util::find-binary return an error when it doesn't find\n anything so that hack scripts fail fast instead of with '' binary not\n found errors.\n - this required deleting some genfeddoc stuff. the binary no longer\n exists in k/k repo since we removed federation/, and I don't see it\n in https://github.com/kubernetes-sigs/kubefed/ either. I'm assuming\n that it's gone for good now.\n\n- bazel: output go_binary rule directly from go_binary_conditional_pure\n \n From: @mikedanese:\n Instead of aliasing. Aliases are annoying in a number of ways. This is\n specifically bugging me now because they make the action graph harder to\n analyze programmatically. By using aliases here, we would need to handle\n potentially aliased go_binary targets and dereference to the effective\n target.\n\n The comment references an issue with `pure = select(...)` which appears\n to be resolved considering this now builds.\n\n- make kube::util::find-binary not dependent on bazel-out/ structure\n\n Implement an aspect that outputs go_build_mode metadata for go binaries,\n and use that during binary selection.", - "markdown": "Kubernetes is now built using go1.15.2\n - build: Update to k/repo-infra@v0.1.1 (supports go1.15.2)\n - build: Use go-runner:buster-v2.0.1 (built using go1.15.1)\n - bazel: Replace --features with Starlark build settings flag\n - hack/lib/util.sh: some bash cleanups\n \n - switched one spot to use kube::logging\n - make kube::util::find-binary return an error when it doesn't find\n anything so that hack scripts fail fast instead of with '' binary not\n found errors.\n - this required deleting some genfeddoc stuff. the binary no longer\n exists in k/k repo since we removed federation/, and I don't see it\n in https://github.com/kubernetes-sigs/kubefed/ either. I'm assuming\n that it's gone for good now.\n \n - bazel: output go_binary rule directly from go_binary_conditional_pure\n \n From: @mikedanese:\n Instead of aliasing. Aliases are annoying in a number of ways. This is\n specifically bugging me now because they make the action graph harder to\n analyze programmatically. By using aliases here, we would need to handle\n potentially aliased go_binary targets and dereference to the effective\n target.\n \n The comment references an issue with `pure = select(...)` which appears\n to be resolved considering this now builds.\n \n - make kube::util::find-binary not dependent on bazel-out/ structure\n \n Implement an aspect that outputs go_build_mode metadata for go binaries,\n and use that during binary selection. ([#94449](https://github.com/kubernetes/kubernetes/pull/94449), [@justaugustus](https://github.com/justaugustus)) [SIG Architecture, CLI, Cluster Lifecycle, Node, Release and Testing]", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94449", - "pr_number": 94449, - "areas": [ - "conformance", - "dependency", - "kubeadm", - "kubectl", - "kubelet", - "release-eng", - "test" - ], - "kinds": ["feature"], - "sigs": [ - "architecture", - "cli", - "cluster-lifecycle", - "node", - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "94474": { - "commit": "13be1cb5717076830682281aaa6380f5fd129672", - "text": "In dual-stack clusters, kubelet will now set up both IPv4 and IPv6 iptables rules, which may\nfix some problems, eg with HostPorts.", - "markdown": "In dual-stack clusters, kubelet will now set up both IPv4 and IPv6 iptables rules, which may\n fix some problems, eg with HostPorts. ([#94474](https://github.com/kubernetes/kubernetes/pull/94474), [@danwinship](https://github.com/danwinship)) [SIG Network and Node]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94474", - "pr_number": 94474, - "areas": ["kubelet"], - "kinds": ["bug"], - "sigs": ["network", "node"], - "duplicate": true - }, - "94479": { - "commit": "0edbf2554ac47cf3ef82ebf9d6d5d4364dba1ca8", - "text": "kubeadm: make etcd pod request 100m CPU, 100Mi memory and 100Mi ephemeral_storage by default", - "markdown": "Kubeadm: make etcd pod request 100m CPU, 100Mi memory and 100Mi ephemeral_storage by default ([#94479](https://github.com/kubernetes/kubernetes/pull/94479), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle]", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94479", - "pr_number": 94479, - "areas": ["kubeadm"], - "kinds": ["feature"], - "sigs": ["cluster-lifecycle"], - "feature": true - }, - "94481": { - "commit": "3fc1bc76a95d8a6a6cd33394526f00c00a98ce07", - "text": "Fix conversions for custom metrics.", - "markdown": "Fix conversions for custom metrics. ([#94481](https://github.com/kubernetes/kubernetes/pull/94481), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Instrumentation]", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94481", - "pr_number": 94481, - "kinds": ["api-change", "bug"], - "sigs": ["api-machinery", "instrumentation"], - "duplicate": true, - "duplicate_kind": true - }, - "94489": { - "commit": "3175b59ac24782b6f4849594589675700e6ba3c0", - "text": "An issues preventing volume expand controller to annotate the PVC with `volume.kubernetes.io/storage-resizer` when the PVC StorageClass is already updated to the out-of-tree provisioner is now fixed.", - "markdown": "An issues preventing volume expand controller to annotate the PVC with `volume.kubernetes.io/storage-resizer` when the PVC StorageClass is already updated to the out-of-tree provisioner is now fixed. ([#94489](https://github.com/kubernetes/kubernetes/pull/94489), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG API Machinery, Apps and Storage]", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94489", - "pr_number": 94489, - "kinds": ["bug"], - "sigs": ["api-machinery", "apps", "storage"], - "duplicate": true - }, - "94494": { - "commit": "e6444e01ba8f14b74cb7910cfd504216b10068ed", - "text": "Port mapping now allows the same `containerPort` of different containers to different `hostPort` without naming the mapping explicitly.", - "markdown": "Port mapping now allows the same `containerPort` of different containers to different `hostPort` without naming the mapping explicitly. ([#94494](https://github.com/kubernetes/kubernetes/pull/94494), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94494", - "pr_number": 94494, - "areas": ["kubelet"], - "kinds": ["bug"], - "sigs": ["network", "node"], - "duplicate": true - }, - "94504": { - "commit": "604569482fc34d010a33339f000e75ecbbf345c6", - "text": "Kubeadm now prints warnings instead of throwing errors if the current system time is outside of the NotBefore and NotAfter bounds of a loaded certificate. ", - "markdown": "Kubeadm now prints warnings instead of throwing errors if the current system time is outside of the NotBefore and NotAfter bounds of a loaded certificate. ([#94504](https://github.com/kubernetes/kubernetes/pull/94504), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94504", - "pr_number": 94504, - "areas": ["kubeadm"], - "kinds": ["feature"], - "sigs": ["cluster-lifecycle"], - "feature": true - }, - "94506": { - "commit": "3cdfdfccc9e46858f556cc7d43abdb8966a52e45", - "text": "kubeadm: remove the CoreDNS check for known image digests when applying the addon", - "markdown": "Kubeadm: remove the CoreDNS check for known image digests when applying the addon ([#94506](https://github.com/kubernetes/kubernetes/pull/94506), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94506", - "pr_number": 94506, - "areas": ["kubeadm"], - "kinds": ["cleanup"], - "sigs": ["cluster-lifecycle"] - }, - "94508": { - "commit": "5566dc93c498c1d765a89aadb0fe815a9b004eaf", - "text": "kubelet: remove alpha warnings for CNI flags.", - "markdown": "Kubelet: remove alpha warnings for CNI flags. ([#94508](https://github.com/kubernetes/kubernetes/pull/94508), [@andrewsykim](https://github.com/andrewsykim)) [SIG Network and Node]", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94508", - "pr_number": 94508, - "areas": ["kubelet"], - "kinds": ["cleanup", "documentation"], - "sigs": ["network", "node"], - "duplicate": true, - "duplicate_kind": true - }, - "94526": { - "commit": "0f6d1ed59cf39ed8d908abb376455dcd11734aee", - "text": "Add a new `vSphere` metric: `cloudprovider_vsphere_vcenter_versions`. It's content show `vCenter` hostnames with the associated server version.", - "markdown": "Add a new `vSphere` metric: `cloudprovider_vsphere_vcenter_versions`. It's content show `vCenter` hostnames with the associated server version. ([#94526](https://github.com/kubernetes/kubernetes/pull/94526), [@Danil-Grigorev](https://github.com/Danil-Grigorev)) [SIG Cloud Provider and Instrumentation]", - "author": "Danil-Grigorev", - "author_url": "https://github.com/Danil-Grigorev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94526", - "pr_number": 94526, - "areas": ["cloudprovider"], - "kinds": ["feature"], - "sigs": ["cloud-provider", "instrumentation"], - "feature": true, - "duplicate": true - }, - "94546": { - "commit": "880344850d784e3ca7a19b454b394f34b8912204", - "text": "Configure AWS LoadBalancer health check protocol via service annotations.", - "markdown": "Configure AWS LoadBalancer health check protocol via service annotations. ([#94546](https://github.com/kubernetes/kubernetes/pull/94546), [@kishorj](https://github.com/kishorj))", - "author": "kishorj", - "author_url": "https://github.com/kishorj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94546", - "pr_number": 94546, - "areas": ["cloudprovider"], - "kinds": ["feature"], - "sigs": ["cloud-provider"], - "feature": true - }, - "94552": { - "commit": "73375fbdac6be4b308004cda49174172fa8d740b", - "text": "build/lib/release: Explicitly use '--platform' in building server images\n\nWhen we switched to go-runner for building the apiserver,\ncontroller-manager, and scheduler server components, we no longer\nreference the individual architectures in the image names, specifically\nin the 'FROM' directive of the server image Dockerfiles.\n\nAs a result, server images for non-amd64 images copy in the go-runner\namd64 binary instead of the go-runner that matches that architecture.\n\nThis commit explicitly sets the '--platform=linux/${arch}' to ensure\nwe're pulling the correct go-runner arch from the manifest list.\n\nBefore:\n`FROM ${base_image}`\n\nAfter:\n`FROM --platform=linux/${arch} ${base_image}`", - "markdown": "Build/lib/release: Explicitly use '--platform' in building server images\n \n When we switched to go-runner for building the apiserver,\n controller-manager, and scheduler server components, we no longer\n reference the individual architectures in the image names, specifically\n in the 'FROM' directive of the server image Dockerfiles.\n \n As a result, server images for non-amd64 images copy in the go-runner\n amd64 binary instead of the go-runner that matches that architecture.\n \n This commit explicitly sets the '--platform=linux/${arch}' to ensure\n we're pulling the correct go-runner arch from the manifest list.\n \n Before:\n `FROM ${base_image}`\n \n After:\n `FROM --platform=linux/${arch} ${base_image}` ([#94552](https://github.com/kubernetes/kubernetes/pull/94552), [@justaugustus](https://github.com/justaugustus)) [SIG Release]", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94552", - "pr_number": 94552, - "areas": ["dependency", "release-eng"], - "kinds": ["bug", "regression"], - "sigs": ["release"], - "duplicate_kind": true - }, - "94555": { - "commit": "5dd2676bf68e8fc5a9ed52ca9c6cba7984d44e03", - "text": "kubeadm: fix the bug that kubeadm tries to call 'docker info' even if the CRI socket was for another CR", - "markdown": "Kubeadm: fix the bug that kubeadm tries to call 'docker info' even if the CRI socket was for another CR ([#94555](https://github.com/kubernetes/kubernetes/pull/94555), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94555", - "pr_number": 94555, - "areas": ["kubeadm"], - "kinds": ["bug"], - "sigs": ["cluster-lifecycle"] - }, - "94580": { - "commit": "bcfba492ef8bd75b1cacacc25efed19b8e39f3bc", - "text": "Fix a panic in `kubectl debug` when a pod has multiple init or ephemeral containers.", - "markdown": "Fix a panic in `kubectl debug` when a pod has multiple init or ephemeral containers. ([#94580](https://github.com/kubernetes/kubernetes/pull/94580), [@kiyoshim55](https://github.com/kiyoshim55))", - "author": "kiyoshim55", - "author_url": "https://github.com/kiyoshim55", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94580", - "pr_number": 94580, - "areas": ["kubectl"], - "kinds": ["bug"], - "sigs": ["cli"] - }, - "94581": { - "commit": "b1b6464ea4a1f2e3800835c0b8b08c812b45d32d", - "text": "Lock ExternalPolicyForExternalIP to default, this feature gate will be removed in 1.22.", - "markdown": "Lock ExternalPolicyForExternalIP to default, this feature gate will be removed in 1.22. ([#94581](https://github.com/kubernetes/kubernetes/pull/94581), [@knabben](https://github.com/knabben)) [SIG Network]", - "author": "knabben", - "author_url": "https://github.com/knabben", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94581", - "pr_number": 94581, - "areas": ["ipvs"], - "kinds": ["cleanup"], - "sigs": ["network"] - }, - "94586": { - "commit": "3aa546923c1a87e728c98396c5aa3e6e82b84f46", - "text": "kubeadm: for Docker as the container runtime, make the \"kubeadm reset\" command stop containers before removing them", - "markdown": "Kubeadm: for Docker as the container runtime, make the \"kubeadm reset\" command stop containers before removing them ([#94586](https://github.com/kubernetes/kubernetes/pull/94586), [@BedivereZero](https://github.com/BedivereZero)) [SIG Cluster Lifecycle]", - "author": "BedivereZero", - "author_url": "https://github.com/BedivereZero", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94586", - "pr_number": 94586, - "areas": ["kubeadm"], - "kinds": ["bug"], - "sigs": ["cluster-lifecycle"] - }, - "94603": { - "commit": "d39214ade1d60cb7120957a4dcff13fed82c01d5", - "text": "Migrate scheduler, controller-manager and cloud-controller-manager to use LeaseLock", - "markdown": "Migrate scheduler, controller-manager and cloud-controller-manager to use LeaseLock ([#94603](https://github.com/kubernetes/kubernetes/pull/94603), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery, Apps, Cloud Provider and Scheduling]", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94603", - "pr_number": 94603, - "kinds": ["api-change", "cleanup"], - "sigs": ["api-machinery", "apps", "cloud-provider", "scheduling"], - "duplicate": true, - "duplicate_kind": true - }, - "94624": { - "commit": "f653e6cf92a2dc875c5c3437679340be76d25734", - "text": "Docker support in the kubelet is now deprecated and will be removed in a future release. The kubelet uses a module called \"dockershim\" which implements CRI support for Docker and it has seen maintenance issues in the Kubernetes community. We encourage you to evaluate moving to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available.", - "markdown": "Docker support in the kubelet is now deprecated and will be removed in a future release. The kubelet uses a module called \"dockershim\" which implements CRI support for Docker and it has seen maintenance issues in the Kubernetes community. We encourage you to evaluate moving to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available. ([#94624](https://github.com/kubernetes/kubernetes/pull/94624), [@dims](https://github.com/dims)) [SIG Node]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94624", - "pr_number": 94624, - "areas": ["kubelet"], - "kinds": ["cleanup", "deprecation"], - "sigs": ["node"], - "duplicate_kind": true, - "action_required": true - }, - "94663": { - "commit": "1cd2ed816a5c22a621c5ea59b906834c7f145301", - "text": "Print go stack traces at -v=4 and not -v=2", - "markdown": "Print go stack traces at -v=4 and not -v=2 ([#94663](https://github.com/kubernetes/kubernetes/pull/94663), [@soltysh](https://github.com/soltysh)) [SIG CLI]", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94663", - "pr_number": 94663, - "areas": ["kubectl"], - "kinds": ["bug", "cleanup", "regression"], - "sigs": ["cli"], - "duplicate_kind": true - }, - "94666": { - "commit": "2d8fbd61afe9e2bf207be88320fd9c3001885a96", - "text": "Do not fail sorting empty elements.", - "markdown": "Do not fail sorting empty elements. ([#94666](https://github.com/kubernetes/kubernetes/pull/94666), [@soltysh](https://github.com/soltysh)) [SIG CLI]", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94666", - "pr_number": 94666, - "areas": ["kubectl"], - "kinds": ["bug"], - "sigs": ["cli"] - }, - "94668": { - "commit": "3ba141173cc3b272c6dafee7cbe42af7e4134d6f", - "text": "kubeadm: remove the deprecated \"kubeadm alpha kubelet config enable-dynamic\" command. To continue using the feature please defer to the guide for \"Dynamic Kubelet Configuration\" at k8s.io. This change also removes the parent command \"kubeadm alpha kubelet\" as there are no more sub-commands under it for the time being.", - "markdown": "Kubeadm: remove the deprecated \"kubeadm alpha kubelet config enable-dynamic\" command. To continue using the feature please defer to the guide for \"Dynamic Kubelet Configuration\" at k8s.io. This change also removes the parent command \"kubeadm alpha kubelet\" as there are no more sub-commands under it for the time being. ([#94668](https://github.com/kubernetes/kubernetes/pull/94668), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94668", - "pr_number": 94668, - "areas": ["kubeadm"], - "kinds": ["cleanup", "deprecation"], - "sigs": ["cluster-lifecycle"], - "duplicate_kind": true - }, - "94685": { - "commit": "def8fe3b4ee38c2d13299978abdf3ceb6eb6e190", - "text": "Fixed a bug that prevents the use of ephemeral containers in the presence of a validating admission webhook.", - "markdown": "Fixed a bug that prevents the use of ephemeral containers in the presence of a validating admission webhook. ([#94685](https://github.com/kubernetes/kubernetes/pull/94685), [@verb](https://github.com/verb)) [SIG Node and Testing]", - "author": "verb", - "author_url": "https://github.com/verb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94685", - "pr_number": 94685, - "areas": ["test"], - "kinds": ["bug"], - "sigs": ["node", "testing"], - "duplicate": true - }, - "94687": { - "commit": "a33f6b44e936d2b63e7c9a72c4d6b8bb40019457", - "text": "Require feature flag CustomCPUCFSQuotaPeriod if setting a non-default cpuCFSQuotaPeriod in kubelet config.", - "markdown": "Require feature flag CustomCPUCFSQuotaPeriod if setting a non-default cpuCFSQuotaPeriod in kubelet config. ([#94687](https://github.com/kubernetes/kubernetes/pull/94687), [@karan](https://github.com/karan)) [SIG Node]", - "author": "karan", - "author_url": "https://github.com/karan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94687", - "pr_number": 94687, - "areas": ["kubelet"], - "kinds": ["bug"], - "sigs": ["node"] - }, - "94728": { - "commit": "28fc772d3609694aff8c0704a39185227c7ae939", - "text": "Fix regression on `kubectl portforward` when TCP and UCP services were configured on the same port.", - "markdown": "Fix regression on `kubectl portforward` when TCP and UCP services were configured on the same port. ([#94728](https://github.com/kubernetes/kubernetes/pull/94728), [@amorenoz](https://github.com/amorenoz))", - "author": "amorenoz", - "author_url": "https://github.com/amorenoz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94728", - "pr_number": 94728, - "areas": ["kubectl"], - "kinds": ["bug", "regression"], - "sigs": ["cli"], - "duplicate_kind": true - }, - "94730": { - "commit": "97e4059092d550f417ac970a744a30b7aaccb05e", - "text": "Recreate EndpointSlices on rapid Service creation.", - "markdown": "Recreate EndpointSlices on rapid Service creation. ([#94730](https://github.com/kubernetes/kubernetes/pull/94730), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94730", - "pr_number": 94730, - "areas": ["test"], - "kinds": ["bug"], - "sigs": ["apps", "network", "testing"], - "duplicate": true - }, - "94733": { - "commit": "a34fd1c65f54e4afa8d007ba8823f7a75a5b0e20", - "text": "base-images: Update to debian-iptables:buster-v1.3.0\n- Uses iptables 1.8.5\n- base-images: Update to debian-base:buster-v1.2.0\n- cluster/images/etcd: Build etcd:3.4.13-1 image\n - Uses debian-base:buster-v1.2.0", - "markdown": "Base-images: Update to debian-iptables:buster-v1.3.0\n - Uses iptables 1.8.5\n - base-images: Update to debian-base:buster-v1.2.0\n - cluster/images/etcd: Build etcd:3.4.13-1 image\n - Uses debian-base:buster-v1.2.0 ([#94733](https://github.com/kubernetes/kubernetes/pull/94733), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Release and Testing]", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94733", - "pr_number": 94733, - "areas": ["dependency", "release-eng", "test"], - "kinds": ["cleanup"], - "sigs": ["api-machinery", "release", "testing"], - "duplicate": true - }, - "94751": { - "commit": "3dc6f74d04e0bb0d02c77a9508f2809bf3ab6be1", - "text": "Fix race condition on timeCache locks.", - "markdown": "Fix race condition on timeCache locks. ([#94751](https://github.com/kubernetes/kubernetes/pull/94751), [@auxten](https://github.com/auxten))", - "author": "auxten", - "author_url": "https://github.com/auxten", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94751", - "pr_number": 94751, - "areas": ["kubelet"], - "kinds": ["bug"], - "sigs": ["node"] - }, - "94765": { - "commit": "218a2b078b7289b4ba31664cbfceb917999d01af", - "text": "kubeadm: add the \"--kubeconfig\" flag to the \"kubeadm init phase upload-certs\" command to allow users to pass a custom location for a kubeconfig file.", - "markdown": "Kubeadm: add the \"--kubeconfig\" flag to the \"kubeadm init phase upload-certs\" command to allow users to pass a custom location for a kubeconfig file. ([#94765](https://github.com/kubernetes/kubernetes/pull/94765), [@zhanw15](https://github.com/zhanw15)) [SIG Cluster Lifecycle]", - "author": "zhanw15", - "author_url": "https://github.com/zhanw15", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94765", - "pr_number": 94765, - "areas": ["kubeadm"], - "kinds": ["feature"], - "sigs": ["cluster-lifecycle"], - "feature": true - }, - "94773": { - "commit": "9fdbf1cf89809763aa7b405a7e641d37f45d2e21", - "text": "Fix etcd_object_counts metric reported by kube-apiserver", - "markdown": "Fix etcd_object_counts metric reported by kube-apiserver ([#94773](https://github.com/kubernetes/kubernetes/pull/94773), [@tkashem](https://github.com/tkashem)) [SIG API Machinery]", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94773", - "pr_number": 94773, - "areas": ["apiserver"], - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "94807": { - "commit": "ea5ca74195cbbeb4acefac966cf50edfc5ce1760", - "text": "WinOverlay feature graduated to beta", - "markdown": "WinOverlay feature graduated to beta ([#94807](https://github.com/kubernetes/kubernetes/pull/94807), [@ksubrmnn](https://github.com/ksubrmnn)) [SIG Windows]", - "author": "ksubrmnn", - "author_url": "https://github.com/ksubrmnn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94807", - "pr_number": 94807, - "kinds": ["api-change", "feature"], - "sigs": ["windows"], - "feature": true, - "duplicate_kind": true - }, - "94814": { - "commit": "bd95fb101dd83cfca9d95e55b2f0d29720016e51", - "text": "Fewer candidates are enumerated for preemption to improve performance in large clusters.", - "markdown": "Fewer candidates are enumerated for preemption to improve performance in large clusters. ([#94814](https://github.com/kubernetes/kubernetes/pull/94814), [@adtac](https://github.com/adtac))", - "author": "adtac", - "author_url": "https://github.com/adtac", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94814", - "pr_number": 94814, - "kinds": ["api-change", "feature"], - "sigs": ["scheduling"], - "feature": true, - "duplicate_kind": true - }, - "94816": { - "commit": "f682c4f142c456cc132c952537e9466fc821b47b", - "text": "kubeadm: relax the validation of kubeconfig server URLs. Allow the user to define custom kubeconfig server URLs without erroring out during validation of existing kubeconfig files (e.g. when using external CA mode).", - "markdown": "Kubeadm: relax the validation of kubeconfig server URLs. Allow the user to define custom kubeconfig server URLs without erroring out during validation of existing kubeconfig files (e.g. when using external CA mode). ([#94816](https://github.com/kubernetes/kubernetes/pull/94816), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94816", - "pr_number": 94816, - "areas": ["kubeadm"], - "kinds": ["regression"], - "sigs": ["cluster-lifecycle"] - }, - "94834": { - "commit": "6c4bae3d9b28e445eea6e187eb7b3442dc03447f", - "text": "Fixes an issue proxying to ipv6 pods without specifying a port", - "markdown": "Fixes an issue proxying to ipv6 pods without specifying a port ([#94834](https://github.com/kubernetes/kubernetes/pull/94834), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Network]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94834", - "pr_number": 94834, - "kinds": ["bug"], - "sigs": ["api-machinery", "network"], - "duplicate": true - }, - "94853": { - "commit": "57e9a41ae34433c82cacad400319d748e2d4f051", - "text": "fix azure file migration panic", - "markdown": "Fix azure file migration panic ([#94853](https://github.com/kubernetes/kubernetes/pull/94853), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94853", - "pr_number": 94853, - "areas": ["provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "94866": { - "commit": "cd21a1240a5f07e9b6c5f48e72cfd354b5183d34", - "text": "A new set of alpha metrics are reported by the Kubernetes scheduler under the `/metrics/resources` endpoint that allow administrators to easily see the resource consumption (requests and limits for all resources on the pods) and compare it to actual pod usage or node capacity.", - "markdown": "A new set of alpha metrics are reported by the Kubernetes scheduler under the `/metrics/resources` endpoint that allow administrators to easily see the resource consumption (requests and limits for all resources on the pods) and compare it to actual pod usage or node capacity. ([#94866](https://github.com/kubernetes/kubernetes/pull/94866), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Instrumentation, Node and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/1916", - "type": "KEP" - } - ], - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94866", - "pr_number": 94866, - "areas": ["kubelet"], - "kinds": ["feature"], - "sigs": ["api-machinery", "instrumentation", "node", "scheduling"], - "feature": true, - "duplicate": true - }, - "94869": { - "commit": "4304f4bdbd9f67ecc0311a645a89141cff05dd18", - "text": "kubeadm: remove the deprecated --kubelet-config flag for the command \"kubeadm upgrade node\"", - "markdown": "Kubeadm: remove the deprecated --kubelet-config flag for the command \"kubeadm upgrade node\" ([#94869](https://github.com/kubernetes/kubernetes/pull/94869), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94869", - "pr_number": 94869, - "areas": ["kubeadm"], - "kinds": ["deprecation"], - "sigs": ["cluster-lifecycle"] - }, - "94871": { - "commit": "770eb2c4a0f3b9f4e3cf1aa3024a5aa29e2ac0a8", - "text": "The deprecated flag --experimental-kustomize is now removed from kubeadm commands. Use --experimental-patches instead, which was introduced in 1.19. Migration infromation available in --help description for --exprimental-patches.", - "markdown": "The deprecated flag --experimental-kustomize is now removed from kubeadm commands. Use --experimental-patches instead, which was introduced in 1.19. Migration infromation available in --help description for --exprimental-patches. ([#94871](https://github.com/kubernetes/kubernetes/pull/94871), [@neolit123](https://github.com/neolit123))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/1739-customization-with-patches", - "type": "KEP" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94871", - "pr_number": 94871, - "areas": ["dependency", "kubeadm"], - "kinds": ["deprecation"], - "sigs": ["cluster-lifecycle"], - "action_required": true - }, - "94873": { - "commit": "b27ecb2c7054b5875b42ac36ef433911855219e8", - "text": "Fix the `cloudprovider_azure_api_request_duration_seconds` metric buckets to correctly capture the latency metrics. Previously, the majority of the calls would fall in the \"+Inf\" bucket.", - "markdown": "Fix the `cloudprovider_azure_api_request_duration_seconds` metric buckets to correctly capture the latency metrics. Previously, the majority of the calls would fall in the \"+Inf\" bucket. ([#94873](https://github.com/kubernetes/kubernetes/pull/94873), [@marwanad](https://github.com/marwanad)) [SIG Cloud Provider and Instrumentation]", - "author": "marwanad", - "author_url": "https://github.com/marwanad", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94873", - "pr_number": 94873, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider", "instrumentation"], - "duplicate": true - }, - "94879": { - "commit": "9f328540990bcb96a6f0084a8e5065971c2734b6", - "text": "kubeadm: make the command \"kubeadm alpha kubeconfig user\" accept a \"--config\" flag and remove the following flags:\n- apiserver-advertise-address / apiserver-bind-port: use either localAPIEndpoint from InitConfiguration or controlPlaneEndpoint from ClusterConfiguration.\n- cluster-name: use clusterName from ClusterConfiguration\n- cert-dir: use certificatesDir from ClusterConfiguration", - "markdown": "Kubeadm: make the command \"kubeadm alpha kubeconfig user\" accept a \"--config\" flag and remove the following flags:\n - apiserver-advertise-address / apiserver-bind-port: use either localAPIEndpoint from InitConfiguration or controlPlaneEndpoint from ClusterConfiguration.\n - cluster-name: use clusterName from ClusterConfiguration\n - cert-dir: use certificatesDir from ClusterConfiguration ([#94879](https://github.com/kubernetes/kubernetes/pull/94879), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle]", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94879", - "pr_number": 94879, - "areas": ["kubeadm"], - "kinds": ["feature"], - "sigs": ["cluster-lifecycle"], - "feature": true - }, - "94884": { - "commit": "18782e999669efa4396cb3ddcb8c84412c690026", - "text": "Removes deprecated scheduler metrics DeprecatedSchedulingDuration, DeprecatedSchedulingAlgorithmPredicateEvaluationSecondsDuration, DeprecatedSchedulingAlgorithmPriorityEvaluationSecondsDuration", - "markdown": "Removes deprecated scheduler metrics DeprecatedSchedulingDuration, DeprecatedSchedulingAlgorithmPredicateEvaluationSecondsDuration, DeprecatedSchedulingAlgorithmPriorityEvaluationSecondsDuration ([#94884](https://github.com/kubernetes/kubernetes/pull/94884), [@arghya88](https://github.com/arghya88)) [SIG Instrumentation and Scheduling]", - "author": "arghya88", - "author_url": "https://github.com/arghya88", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94884", - "pr_number": 94884, - "kinds": ["deprecation", "feature"], - "sigs": ["instrumentation", "scheduling"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "94885": { - "commit": "2cec7c61e4155c96a7cc51e2dc51507b0feed6df", - "text": "fix: detach azure disk broken on Azure Stack", - "markdown": "Fix: detach azure disk broken on Azure Stack ([#94885](https://github.com/kubernetes/kubernetes/pull/94885), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94885", - "pr_number": 94885, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "94888": { - "commit": "9983a521149a0de02a052658a9d3665ff7b27708", - "text": "Fix kubectl SchemaError on CRDs with schema using x-kubernetes-preserve-unknown-fields on array types.", - "markdown": "Fix kubectl SchemaError on CRDs with schema using x-kubernetes-preserve-unknown-fields on array types. ([#94888](https://github.com/kubernetes/kubernetes/pull/94888), [@sttts](https://github.com/sttts)) [SIG API Machinery]", - "author": "sttts", - "author_url": "https://github.com/sttts", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94888", - "pr_number": 94888, - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "94896": { - "commit": "1ebf64d343ed6ec008d26a01aeebe9dab5aecc0c", - "text": "Ephemeral containers now apply the same API defaults as initContainers and containers", - "markdown": "Ephemeral containers now apply the same API defaults as initContainers and containers ([#94896](https://github.com/kubernetes/kubernetes/pull/94896), [@wawa0210](https://github.com/wawa0210)) [SIG Apps and CLI]", - "author": "wawa0210", - "author_url": "https://github.com/wawa0210", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94896", - "pr_number": 94896, - "areas": ["kubectl"], - "kinds": ["bug", "feature"], - "sigs": ["apps", "cli"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "94903": { - "commit": "f5a0250800309017e667e82067d704b6ed28513a", - "text": "Both apiserver_request_duration_seconds metrics and RequestReceivedTimestamp fields of an audit event now take into account the time a request spends in the apiserver request filters.", - "markdown": "Both apiserver_request_duration_seconds metrics and RequestReceivedTimestamp fields of an audit event now take into account the time a request spends in the apiserver request filters. ([#94903](https://github.com/kubernetes/kubernetes/pull/94903), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94903", - "pr_number": 94903, - "areas": ["apiserver"], - "kinds": ["bug"], - "sigs": ["api-machinery", "auth", "instrumentation"], - "duplicate": true - }, - "94911": { - "commit": "e92f8c8457e9d86b9c11fd94bd8e603ae71befb7", - "text": "Enhance log information of verifyRunAsNonRoot, add pod, container information", - "markdown": "Enhance log information of verifyRunAsNonRoot, add pod, container information ([#94911](https://github.com/kubernetes/kubernetes/pull/94911), [@wawa0210](https://github.com/wawa0210)) [SIG Node]", - "author": "wawa0210", - "author_url": "https://github.com/wawa0210", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94911", - "pr_number": 94911, - "areas": ["kubelet"], - "kinds": ["cleanup"], - "sigs": ["node"] - }, - "94916": { - "commit": "4ca119f521bf6e3bf2af2d8ca7e0010c72b39e83", - "text": "Change the mount way from systemd to normal mount except ceph and glusterfs intree-volume.", - "markdown": "Change the mount way from systemd to normal mount except ceph and glusterfs intree-volume. ([#94916](https://github.com/kubernetes/kubernetes/pull/94916), [@smileusd](https://github.com/smileusd)) [SIG Apps, Cloud Provider, Network, Node, Storage and Testing]", - "author": "smileusd", - "author_url": "https://github.com/smileusd", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94916", - "pr_number": 94916, - "areas": ["cloudprovider", "kubelet", "test"], - "kinds": ["bug"], - "sigs": ["apps", "cloud-provider", "network", "node", "storage", "testing"], - "duplicate": true - }, - "94938": { - "commit": "7a2812ca6087e62d0c9b6dde050065fe2f665a0e", - "text": "kubeadm: graduate the \"kubeadm alpha certs\" command to a parent command \"kubeadm certs\". The command \"kubeadm alpha certs\" is deprecated and will be removed in a future release. Please migrate.", - "markdown": "Kubeadm: graduate the \"kubeadm alpha certs\" command to a parent command \"kubeadm certs\". The command \"kubeadm alpha certs\" is deprecated and will be removed in a future release. Please migrate. ([#94938](https://github.com/kubernetes/kubernetes/pull/94938), [@yagonobre](https://github.com/yagonobre)) [SIG Cluster Lifecycle]", - "author": "yagonobre", - "author_url": "https://github.com/yagonobre", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94938", - "pr_number": 94938, - "areas": ["kubeadm"], - "kinds": ["deprecation", "feature"], - "sigs": ["cluster-lifecycle"], - "feature": true, - "duplicate_kind": true, - "action_required": true - }, - "94985": { - "commit": "2318a13228dfaadd2de4669c8ce3ffb126ed3958", - "text": "Fixed a bug causing incorrect formatting of `kubectl describe ingress`.", - "markdown": "Fixed a bug causing incorrect formatting of `kubectl describe ingress`. ([#94985](https://github.com/kubernetes/kubernetes/pull/94985), [@howardjohn](https://github.com/howardjohn)) [SIG CLI and Network]", - "author": "howardjohn", - "author_url": "https://github.com/howardjohn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94985", - "pr_number": 94985, - "areas": ["kubectl"], - "kinds": ["bug"], - "sigs": ["cli", "network"], - "duplicate": true - }, - "94988": { - "commit": "db9f1e91d977c45fe7df8e1e1bd415a3292995e1", - "text": "kubeadm now warns (instead of error out) on missing \"ca.key\" files for root CA, front-proxy CA and etcd CA, during \"kubeadm join --control-plane\" if the user has provided all certificates, keys and kubeconfig files which require signing with the given CA keys.", - "markdown": "Kubeadm now warns (instead of error out) on missing \"ca.key\" files for root CA, front-proxy CA and etcd CA, during \"kubeadm join --control-plane\" if the user has provided all certificates, keys and kubeconfig files which require signing with the given CA keys. ([#94988](https://github.com/kubernetes/kubernetes/pull/94988), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94988", - "pr_number": 94988, - "areas": ["kubeadm"], - "kinds": ["bug"], - "sigs": ["cluster-lifecycle"] - }, - "94991": { - "commit": "24cfb410f024e8c1fbf75d7b47c252c20c8bd6ba", - "text": "Azure: Support multiple services sharing one IP address", - "markdown": "Azure: Support multiple services sharing one IP address ([#94991](https://github.com/kubernetes/kubernetes/pull/94991), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94991", - "pr_number": 94991, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["feature"], - "sigs": ["cloud-provider"], - "feature": true - }, - "95001": { - "commit": "44cd4fcedccbf35c2b674f9d53faa6fc3230b8fa", - "text": "scheduler alpha metrics binding_duration_seconds and scheduling_algorithm_preemption_evaluation_seconds are deprecated, Both of those metrics are now covered as part of framework_extension_point_duration_seconds, the former as a PostFilter the latter and a Bind plugin. The plan is to remove both in 1.21", - "markdown": "Scheduler alpha metrics binding_duration_seconds and scheduling_algorithm_preemption_evaluation_seconds are deprecated, Both of those metrics are now covered as part of framework_extension_point_duration_seconds, the former as a PostFilter the latter and a Bind plugin. The plan is to remove both in 1.21 ([#95001](https://github.com/kubernetes/kubernetes/pull/95001), [@arghya88](https://github.com/arghya88)) [SIG Instrumentation and Scheduling]", - "author": "arghya88", - "author_url": "https://github.com/arghya88", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95001", - "pr_number": 95001, - "kinds": ["deprecation", "feature"], - "sigs": ["instrumentation", "scheduling"], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "95002": { - "commit": "40ef0ad6e938c8b5bf827e6dbce68f1ad2b25900", - "text": "A new metric `requestAbortsTotal` has been introduced that counts aborted requests for each `group`, `version`, `verb`, `resource`, `subresource` and `scope`.", - "markdown": "A new metric `requestAbortsTotal` has been introduced that counts aborted requests for each `group`, `version`, `verb`, `resource`, `subresource` and `scope`. ([#95002](https://github.com/kubernetes/kubernetes/pull/95002), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, Cloud Provider, Instrumentation and Scheduling]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95002", - "pr_number": 95002, - "areas": ["apiserver"], - "kinds": ["cleanup"], - "sigs": [ - "api-machinery", - "cloud-provider", - "instrumentation", - "scheduling" - ], - "duplicate": true - }, - "95012": { - "commit": "5549a0d9bb1bc9d285487412e5440ee8a384e06a", - "text": "AdmissionReview objects sent for the creation of Namespace API objects now populate the `namespace` attribute consistently (previously the `namespace` attribute was empty for Namespace creation via POST requests, and populated for Namespace creation via server-side-apply PATCH requests)", - "markdown": "AdmissionReview objects sent for the creation of Namespace API objects now populate the `namespace` attribute consistently (previously the `namespace` attribute was empty for Namespace creation via POST requests, and populated for Namespace creation via server-side-apply PATCH requests) ([#95012](https://github.com/kubernetes/kubernetes/pull/95012), [@nodo](https://github.com/nodo)) [SIG API Machinery and Testing]", - "author": "nodo", - "author_url": "https://github.com/nodo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95012", - "pr_number": 95012, - "areas": ["apiserver", "test"], - "kinds": ["cleanup"], - "sigs": ["api-machinery", "testing"], - "duplicate": true - }, - "95048": { - "commit": "78ece5411a83029ae32bb877c05dfb93c532b24a", - "text": "New parameter `defaultingType` for `PodTopologySpread` plugin allows to use k8s defined or user provided default constraints", - "markdown": "New parameter `defaultingType` for `PodTopologySpread` plugin allows to use k8s defined or user provided default constraints ([#95048](https://github.com/kubernetes/kubernetes/pull/95048), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://git.k8s.io/enhancements/keps/sig-scheduling/1258-default-pod-topology-spread", - "type": "external" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#cluster-level-default-constraints", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95048", - "pr_number": 95048, - "kinds": ["api-change", "feature"], - "sigs": ["scheduling"], - "feature": true, - "duplicate_kind": true - }, - "95069": { - "commit": "6268e6f990522289a6a2c25db5d9cacc0988171b", - "text": "Scheduler framework interface moved from pkg/scheduler/framework/v1alpha to pkg/scheduler/framework", - "markdown": "Scheduler framework interface moved from pkg/scheduler/framework/v1alpha to pkg/scheduler/framework ([#95069](https://github.com/kubernetes/kubernetes/pull/95069), [@farah](https://github.com/farah)) [SIG Scheduling, Storage and Testing]", - "author": "farah", - "author_url": "https://github.com/farah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95069", - "pr_number": 95069, - "areas": ["e2e-test-framework", "test"], - "kinds": ["cleanup"], - "sigs": ["scheduling", "storage", "testing"], - "duplicate": true - }, - "95076": { - "commit": "f7cfe3ba0f0434f82208cc940c0770984e5758f5", - "text": "kubectl: deprecate --delete-local-data", - "markdown": "Kubectl: deprecate --delete-local-data ([#95076](https://github.com/kubernetes/kubernetes/pull/95076), [@dougsland](https://github.com/dougsland)) [SIG CLI, Cloud Provider and Scalability]", - "author": "dougsland", - "author_url": "https://github.com/dougsland", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95076", - "pr_number": 95076, - "areas": ["kubectl", "provider/gcp"], - "kinds": ["deprecation", "feature"], - "sigs": ["cli", "cloud-provider", "scalability"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "95117": { - "commit": "c5ecae737d2eb668adab12cefa3644f550fc9e8a", - "text": "fake dynamic client: document that List does not preserve TypeMeta in UnstructuredList", - "markdown": "Fake dynamic client: document that List does not preserve TypeMeta in UnstructuredList ([#95117](https://github.com/kubernetes/kubernetes/pull/95117), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery]", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95117", - "pr_number": 95117, - "kinds": ["documentation"], - "sigs": ["api-machinery"] - }, - "95125": { - "commit": "df8e3ee5f85a8a6002d899a98c121d1908e9863e", - "text": "kubeadm: deprecate self-hosting support. The experimental command \"kubeadm alpha self-hosting\" is now deprecated and will be removed in a future release.", - "markdown": "Kubeadm: deprecate self-hosting support. The experimental command \"kubeadm alpha self-hosting\" is now deprecated and will be removed in a future release. ([#95125](https://github.com/kubernetes/kubernetes/pull/95125), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95125", - "pr_number": 95125, - "areas": ["kubeadm"], - "kinds": ["deprecation"], - "sigs": ["cluster-lifecycle"] - }, - "95130": { - "commit": "3a987d5b85c620680e25e43ee6ad3cd6df25cf36", - "text": "Fix scheduler cache snapshot when a Node is deleted before its Pods", - "markdown": "Fix scheduler cache snapshot when a Node is deleted before its Pods ([#95130](https://github.com/kubernetes/kubernetes/pull/95130), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling]", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95130", - "pr_number": 95130, - "kinds": ["bug"], - "sigs": ["scheduling"] - }, - "95177": { - "commit": "75250ebeee8724887454f2a1c84fdd32832da8c2", - "text": "fix detach azure disk issue when vm not exist", - "markdown": "Fix detach azure disk issue when vm not exist ([#95177](https://github.com/kubernetes/kubernetes/pull/95177), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95177", - "pr_number": 95177, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "95184": { - "commit": "4db8c590ac8386eea08c555975e272cd1be36c94", - "text": "GPU metrics provided by kubelet are now disabled by default.", - "markdown": "GPU metrics provided by kubelet are now disabled by default. ([#95184](https://github.com/kubernetes/kubernetes/pull/95184), [@RenaudWasTaken](https://github.com/RenaudWasTaken))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2036", - "type": "KEP" - } - ], - "author": "RenaudWasTaken", - "author_url": "https://github.com/RenaudWasTaken", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95184", - "pr_number": 95184, - "kinds": ["api-change", "feature"], - "sigs": ["node"], - "feature": true, - "duplicate_kind": true - }, - "95196": { - "commit": "e91cb0b1b5fde130ab6ee9dad672f090aad90016", - "text": "Certain fields on Service objects will be automatically cleared when changing the service's `type` to a mode that does not need those fields. For example, changing from type=LoadBalancer to type=ClusterIP will clear the NodePort assignments, rather than forcing the user to clear them.", - "markdown": "Certain fields on Service objects will be automatically cleared when changing the service's `type` to a mode that does not need those fields. For example, changing from type=LoadBalancer to type=ClusterIP will clear the NodePort assignments, rather than forcing the user to clear them. ([#95196](https://github.com/kubernetes/kubernetes/pull/95196), [@thockin](https://github.com/thockin)) [SIG API Machinery, Apps, Network and Testing]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95196", - "pr_number": 95196, - "areas": ["test"], - "kinds": ["api-change", "bug"], - "sigs": ["api-machinery", "apps", "network", "testing"], - "duplicate": true, - "duplicate_kind": true - }, - "95202": { - "commit": "bf9354d8cc8ec7582c296c104563ca99d4a41b00", - "text": "Remove offensive words from kubectl cluster-info command.", - "markdown": "Remove offensive words from kubectl cluster-info command. ([#95202](https://github.com/kubernetes/kubernetes/pull/95202), [@rikatz](https://github.com/rikatz))", - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95202", - "pr_number": 95202, - "areas": ["conformance", "kubectl", "test"], - "kinds": ["cleanup"], - "sigs": ["architecture", "cli", "testing"], - "duplicate": true - }, - "95206": { - "commit": "0923b9abce7382888a077860da28a635975a0f40", - "text": "Fix CVE-2020-8555 for Quobyte client connections.", - "markdown": "Fix CVE-2020-8555 for Quobyte client connections. ([#95206](https://github.com/kubernetes/kubernetes/pull/95206), [@misterikkit](https://github.com/misterikkit)) [SIG Storage]", - "author": "misterikkit", - "author_url": "https://github.com/misterikkit", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95206", - "pr_number": 95206, - "areas": ["dependency"], - "kinds": ["bug"], - "sigs": ["storage"] - }, - "95207": { - "commit": "3b51cd1b1e9529d541a46bf754f40bc2f24dba8b", - "text": "A new metric `apiserver_request_filter_duration_seconds` has been introduced that \nmeasures request filter latency in seconds.", - "markdown": "A new metric `apiserver_request_filter_duration_seconds` has been introduced that \n measures request filter latency in seconds. ([#95207](https://github.com/kubernetes/kubernetes/pull/95207), [@tkashem](https://github.com/tkashem)) [SIG API Machinery and Instrumentation]", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95207", - "pr_number": 95207, - "areas": ["apiserver"], - "kinds": ["feature"], - "sigs": ["api-machinery", "instrumentation"], - "feature": true, - "duplicate": true - }, - "95235": { - "commit": "3d6026499b674020b4f8eec11f0b8a860a330d8a", - "text": "Support 'controlplane' as a valid EgressSelection type in the EgressSelectorConfiguration API. 'Master' is deprecated and will be removed in v1.22.", - "markdown": "Support 'controlplane' as a valid EgressSelection type in the EgressSelectorConfiguration API. 'Master' is deprecated and will be removed in v1.22. ([#95235](https://github.com/kubernetes/kubernetes/pull/95235), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery]", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95235", - "pr_number": 95235, - "areas": ["apiserver"], - "kinds": ["api-change", "deprecation"], - "sigs": ["api-machinery"], - "duplicate_kind": true - }, - "95236": { - "commit": "41f0946aa8553bc5d5514fa6092bf887e79e1a60", - "text": "vsphere: improve logging message on node cache refresh event", - "markdown": "Vsphere: improve logging message on node cache refresh event ([#95236](https://github.com/kubernetes/kubernetes/pull/95236), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider]", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95236", - "pr_number": 95236, - "areas": ["cloudprovider"], - "kinds": ["cleanup"], - "sigs": ["cloud-provider"] - }, - "95239": { - "commit": "05a46dbb6026dfd9ae11600f8dc08a99994acdec", - "text": "In dual-stack bare-metal clusters, you can now pass dual-stack IPs to `kubelet --node-ip`.\neg: `kubelet --node-ip 10.1.0.5,fd01::0005`. This is not yet supported for non-bare-metal\nclusters.\n\nIn dual-stack clusters where nodes have dual-stack addresses, hostNetwork pods\nwill now get dual-stack PodIPs.", - "markdown": "In dual-stack bare-metal clusters, you can now pass dual-stack IPs to `kubelet --node-ip`.\n eg: `kubelet --node-ip 10.1.0.5,fd01::0005`. This is not yet supported for non-bare-metal\n clusters.\n \n In dual-stack clusters where nodes have dual-stack addresses, hostNetwork pods\n will now get dual-stack PodIPs. ([#95239](https://github.com/kubernetes/kubernetes/pull/95239), [@danwinship](https://github.com/danwinship)) [SIG Network and Node]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95239", - "pr_number": 95239, - "areas": ["kubelet"], - "kinds": ["feature"], - "sigs": ["network", "node"], - "feature": true, - "duplicate": true - }, - "95245": { - "commit": "5e5ff88a5f6ac58d5bfeb07bc77a9efd29e31508", - "text": "Mask ceph RBD adminSecrets in logs when logLevel \u003e= 4.", - "markdown": "Mask ceph RBD adminSecrets in logs when logLevel \u003e= 4. ([#95245](https://github.com/kubernetes/kubernetes/pull/95245), [@sfowl](https://github.com/sfowl))", - "author": "sfowl", - "author_url": "https://github.com/sfowl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95245", - "pr_number": 95245, - "kinds": ["cleanup"], - "sigs": ["storage"] - }, - "95247": { - "commit": "d2a85502dfcfd057776b9fe385d154f91415ff54", - "text": "The AWS network load balancer attributes can now be specified during service creation", - "markdown": "The AWS network load balancer attributes can now be specified during service creation ([#95247](https://github.com/kubernetes/kubernetes/pull/95247), [@kishorj](https://github.com/kishorj)) [SIG Cloud Provider]", - "author": "kishorj", - "author_url": "https://github.com/kishorj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95247", - "pr_number": 95247, - "areas": ["cloudprovider"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "95252": { - "commit": "766ae2b81bf7cc5380e63f7ae16add093045a115", - "text": "Reorganized iptables rules to fix a performance issue", - "markdown": "Reorganized iptables rules to fix a performance issue ([#95252](https://github.com/kubernetes/kubernetes/pull/95252), [@tssurya](https://github.com/tssurya)) [SIG Network]", - "author": "tssurya", - "author_url": "https://github.com/tssurya", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95252", - "pr_number": 95252, - "kinds": ["bug"], - "sigs": ["network"] - }, - "95253": { - "commit": "838e7bb27805fd1f18ac12d6ce27bcc34ee6664c", - "text": "`kubectl api-resources` now prints the API version (as 'API group/version', same as output of `kubectl api-versions`). The column APIGROUP is now APIVERSION", - "markdown": "`kubectl api-resources` now prints the API version (as 'API group/version', same as output of `kubectl api-versions`). The column APIGROUP is now APIVERSION ([#95253](https://github.com/kubernetes/kubernetes/pull/95253), [@sallyom](https://github.com/sallyom)) [SIG CLI]", - "author": "sallyom", - "author_url": "https://github.com/sallyom", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95253", - "pr_number": 95253, - "areas": ["kubectl"], - "kinds": ["cleanup"], - "sigs": ["cli"] - }, - "95256": { - "commit": "8d226790c261f6f862a37982350b2f92fde3ba2e", - "text": "Generators for services are removed from kubectl", - "markdown": "Generators for services are removed from kubectl ([#95256](https://github.com/kubernetes/kubernetes/pull/95256), [@Git-Jiro](https://github.com/Git-Jiro)) [SIG CLI]", - "author": "Git-Jiro", - "author_url": "https://github.com/Git-Jiro", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95256", - "pr_number": 95256, - "areas": ["kubectl"], - "kinds": ["cleanup"], - "sigs": ["cli"] - }, - "95260": { - "commit": "86a208edc8dab91064513884175c3314b051a0d6", - "text": "Fixes high CPU usage in kubectl drain", - "markdown": "Fixes high CPU usage in kubectl drain ([#95260](https://github.com/kubernetes/kubernetes/pull/95260), [@amandahla](https://github.com/amandahla)) [SIG CLI]", - "author": "amandahla", - "author_url": "https://github.com/amandahla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95260", - "pr_number": 95260, - "areas": ["kubectl"], - "kinds": ["bug"], - "sigs": ["cli"] - }, - "95267": { - "commit": "c71519e53da7a79b9f5748d40d3b68aae172a18d", - "text": "SetHostnameAsFQDN has been graduated to Beta and therefore it is enabled by default.", - "markdown": "SetHostnameAsFQDN has been graduated to Beta and therefore it is enabled by default. ([#95267](https://github.com/kubernetes/kubernetes/pull/95267), [@javidiaz](https://github.com/javidiaz)) [SIG Node]", - "author": "javidiaz", - "author_url": "https://github.com/javidiaz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95267", - "pr_number": 95267, - "kinds": ["feature"], - "sigs": ["node"], - "feature": true - }, - "95282": { - "commit": "bffdc87241411f7359d1bf55e6389c1b7c017148", - "text": "VolumeSnapshotDataSource moves to GA in 1.20 release", - "markdown": "VolumeSnapshotDataSource moves to GA in 1.20 release ([#95282](https://github.com/kubernetes/kubernetes/pull/95282), [@xing-yang](https://github.com/xing-yang)) [SIG Apps]", - "documentation": [ - { - "description": "-[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/177-volume-snapshot", - "type": "KEP" - } - ], - "author": "xing-yang", - "author_url": "https://github.com/xing-yang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95282", - "pr_number": 95282, - "kinds": ["api-change", "feature"], - "sigs": ["apps"], - "feature": true, - "duplicate_kind": true - }, - "95289": { - "commit": "086b65a0009112223647f6be2d3b589bffc36759", - "text": "Gracefully delete nodes when their parent scale set went missing", - "markdown": "Gracefully delete nodes when their parent scale set went missing ([#95289](https://github.com/kubernetes/kubernetes/pull/95289), [@bpineau](https://github.com/bpineau)) [SIG Cloud Provider]", - "author": "bpineau", - "author_url": "https://github.com/bpineau", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95289", - "pr_number": 95289, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "95292": { - "commit": "93aeff4ef0678e9b746ed60862907a617005506d", - "text": "kubectl: Previously users cannot provide arguments to a external diff tool via KUBECTL_EXTERNAL_DIFF env. This release now allow users to specify args to KUBECTL_EXTERNAL_DIFF env.", - "markdown": "Kubectl: Previously users cannot provide arguments to a external diff tool via KUBECTL_EXTERNAL_DIFF env. This release now allow users to specify args to KUBECTL_EXTERNAL_DIFF env. ([#95292](https://github.com/kubernetes/kubernetes/pull/95292), [@dougsland](https://github.com/dougsland)) [SIG CLI]", - "author": "dougsland", - "author_url": "https://github.com/dougsland", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95292", - "pr_number": 95292, - "areas": ["kubectl"], - "kinds": ["feature"], - "sigs": ["cli"], - "feature": true - }, - "95311": { - "commit": "bbbab14216ee2256079da2ced5f52f91d08f5d6d", - "text": "Send GCE node startup scripts logs to console and journal.", - "markdown": "Send GCE node startup scripts logs to console and journal. ([#95311](https://github.com/kubernetes/kubernetes/pull/95311), [@karan](https://github.com/karan))", - "author": "karan", - "author_url": "https://github.com/karan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95311", - "pr_number": 95311, - "areas": ["platform/gce", "provider/gcp"], - "kinds": ["feature"], - "sigs": ["cloud-provider", "node"], - "feature": true, - "duplicate": true - }, - "95316": { - "commit": "e99df0e5a75eb6e86123b56d53e9b7ca0fd00419", - "text": "client-go header logging (at verbosity levels \u003e= 9) now masks `Authorization` header contents", - "markdown": "Client-go header logging (at verbosity levels \u003e= 9) now masks `Authorization` header contents ([#95316](https://github.com/kubernetes/kubernetes/pull/95316), [@sfowl](https://github.com/sfowl)) [SIG API Machinery]", - "author": "sfowl", - "author_url": "https://github.com/sfowl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95316", - "pr_number": 95316, - "kinds": ["cleanup"], - "sigs": ["api-machinery"] - }, - "95342": { - "commit": "77866160efce1ce4c3885d436b1cebaedc80c89c", - "text": "cloud node controller: handle empty providerID from getProviderID", - "markdown": "Cloud node controller: handle empty providerID from getProviderID ([#95342](https://github.com/kubernetes/kubernetes/pull/95342), [@nicolehanjing](https://github.com/nicolehanjing)) [SIG Cloud Provider]", - "author": "nicolehanjing", - "author_url": "https://github.com/nicolehanjing", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95342", - "pr_number": 95342, - "areas": ["cloudprovider"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "95363": { - "commit": "c9c24b46c35feae41ae5d7f0963551bab4ed6f80", - "text": "Fix network_programming_latency metric reporting for Endpoints/EndpointSlice deletions, where we don't have correct timestamp", - "markdown": "Fix network_programming_latency metric reporting for Endpoints/EndpointSlice deletions, where we don't have correct timestamp ([#95363](https://github.com/kubernetes/kubernetes/pull/95363), [@wojtek-t](https://github.com/wojtek-t)) [SIG Network and Scalability]", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95363", - "pr_number": 95363, - "kinds": ["bug"], - "sigs": ["network", "scalability"], - "duplicate": true - }, - "95382": { - "commit": "6b24a5796c47519c1b96f93b5516e46c9bcf7218", - "text": "kubeadm:\n- The label applied to control-plane nodes \"node-role.kubernetes.io/master\" is now deprecated and will be removed in a future release after a GA deprecation period.\n- Introduce a new label \"node-role.kubernetes.io/control-plane\" that will be applied in parallel to \"node-role.kubernetes.io/master\" until the removal of the \"node-role.kubernetes.io/master\" label.\n- Make \"kubeadm upgrade apply\" add the \"node-role.kubernetes.io/control-plane\" label on existing nodes that only have the \"node-role.kubernetes.io/master\" label during upgrade.\n- Please adapt your tooling built on top of kubeadm to use the \"node-role.kubernetes.io/control-plane\" label.\n\n- The taint applied to control-plane nodes \"node-role.kubernetes.io/master:NoSchedule\" is now deprecated and will be removed in a future release after a GA deprecation period.\n- Apply toleration for a new, future taint \"node-role.kubernetes.io/control-plane:NoSchedule\" to the kubeadm CoreDNS / kube-dns managed manifests. Note that this taint is not yet applied to kubeadm control-plane nodes.\n- Please adapt your workloads to tolerate the same future taint preemptively.\n\nFor more details see: http://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/2067-rename-master-label-taint/README.md", - "markdown": "Kubeadm:\n - The label applied to control-plane nodes \"node-role.kubernetes.io/master\" is now deprecated and will be removed in a future release after a GA deprecation period.\n - Introduce a new label \"node-role.kubernetes.io/control-plane\" that will be applied in parallel to \"node-role.kubernetes.io/master\" until the removal of the \"node-role.kubernetes.io/master\" label.\n - Make \"kubeadm upgrade apply\" add the \"node-role.kubernetes.io/control-plane\" label on existing nodes that only have the \"node-role.kubernetes.io/master\" label during upgrade.\n - Please adapt your tooling built on top of kubeadm to use the \"node-role.kubernetes.io/control-plane\" label.\n \n - The taint applied to control-plane nodes \"node-role.kubernetes.io/master:NoSchedule\" is now deprecated and will be removed in a future release after a GA deprecation period.\n - Apply toleration for a new, future taint \"node-role.kubernetes.io/control-plane:NoSchedule\" to the kubeadm CoreDNS / kube-dns managed manifests. Note that this taint is not yet applied to kubeadm control-plane nodes.\n - Please adapt your workloads to tolerate the same future taint preemptively.\n \n For more details see: http://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/2067-rename-master-label-taint/README.md ([#95382](https://github.com/kubernetes/kubernetes/pull/95382), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "documentation": [ - { - "description": "[KEP]", - "url": "http://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/2067-rename-master-label-taint/README.md", - "type": "external" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95382", - "pr_number": 95382, - "areas": ["kubeadm"], - "kinds": ["deprecation"], - "sigs": ["cluster-lifecycle"], - "action_required": true - }, - "95419": { - "commit": "acb3beaae4e52ff2f06ebfd3664e348821231cca", - "text": "kubeadm: update the default pause image version to 1.4.0 on Windows. With this update the image supports Windows versions 1809 (2019LTS), 1903, 1909, 2004", - "markdown": "Kubeadm: update the default pause image version to 1.4.0 on Windows. With this update the image supports Windows versions 1809 (2019LTS), 1903, 1909, 2004 ([#95419](https://github.com/kubernetes/kubernetes/pull/95419), [@jsturtevant](https://github.com/jsturtevant)) [SIG Cluster Lifecycle and Windows]", - "author": "jsturtevant", - "author_url": "https://github.com/jsturtevant", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95419", - "pr_number": 95419, - "areas": ["kubeadm"], - "kinds": ["cleanup"], - "sigs": ["cluster-lifecycle", "windows"], - "duplicate": true - }, - "95423": { - "commit": "9253aa93098f2b17d3c0ff65aa6b03863e970371", - "text": "CRDs: For structural schemas, non-nullable null map fields will now be dropped and defaulted if a default is available. null items in list will continue being preserved, and fail validation if not nullable.", - "markdown": "CRDs: For structural schemas, non-nullable null map fields will now be dropped and defaulted if a default is available. null items in list will continue being preserved, and fail validation if not nullable. ([#95423](https://github.com/kubernetes/kubernetes/pull/95423), [@apelisse](https://github.com/apelisse)) [SIG API Machinery]", - "author": "apelisse", - "author_url": "https://github.com/apelisse", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95423", - "pr_number": 95423, - "kinds": ["feature"], - "sigs": ["api-machinery"], - "feature": true - }, - "95427": { - "commit": "36a6a6493621d3b0796478bc6c08b80b82282601", - "text": "Fixed a bug in client-go where new clients with customized `Dial`, `Proxy`, `GetCert` config may get stale HTTP transports.", - "markdown": "Fixed a bug in client-go where new clients with customized `Dial`, `Proxy`, `GetCert` config may get stale HTTP transports. ([#95427](https://github.com/kubernetes/kubernetes/pull/95427), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery]", - "author": "roycaihw", - "author_url": "https://github.com/roycaihw", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95427", - "pr_number": 95427, - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "95439": { - "commit": "662bffe4ad1b50ac469cfead0034607f0a98a95e", - "text": "applies translations on all command descriptions", - "markdown": "Applies translations on all command descriptions ([#95439](https://github.com/kubernetes/kubernetes/pull/95439), [@HerrNaN](https://github.com/HerrNaN)) [SIG CLI]", - "author": "HerrNaN", - "author_url": "https://github.com/HerrNaN", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95439", - "pr_number": 95439, - "areas": ["kubectl"], - "kinds": ["cleanup"], - "sigs": ["cli"] - }, - "95447": { - "commit": "e799c852fb337be414fa2dae982fed69a67806fe", - "text": "Fix vsphere detach failure for static PVs", - "markdown": "Fix vsphere detach failure for static PVs ([#95447](https://github.com/kubernetes/kubernetes/pull/95447), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95447", - "pr_number": 95447, - "areas": ["cloudprovider"], - "kinds": ["bug"], - "sigs": ["cloud-provider", "storage"], - "duplicate": true - }, - "95448": { - "commit": "fbe806ef9e07f88d631f922062a7b18070922f42", - "text": "SelectorSpreadPriority maps to PodTopologySpread plugin when DefaultPodTopologySpread feature is enabled", - "markdown": "SelectorSpreadPriority maps to PodTopologySpread plugin when DefaultPodTopologySpread feature is enabled ([#95448](https://github.com/kubernetes/kubernetes/pull/95448), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://git.k8s.io/enhancements/keps/sig-scheduling/1258-default-pod-topology-spread", - "type": "external" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95448", - "pr_number": 95448, - "kinds": ["feature"], - "sigs": ["scheduling"], - "feature": true - }, - "95456": { - "commit": "fa15799f7409b8644221c2b43a494c74aac0c5ee", - "text": "fix azure disk data loss issue on Windows when unmount disk", - "markdown": "Fix azure disk data loss issue on Windows when unmount disk ([#95456](https://github.com/kubernetes/kubernetes/pull/95456), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95456", - "pr_number": 95456, - "areas": ["provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider", "storage"], - "duplicate": true - }, - "95463": { - "commit": "53d9bed6e0e140eb9913eb853ac57950841eed66", - "text": "fix azure disk attach failure for disk size bigger than 4TB", - "markdown": "Fix azure disk attach failure for disk size bigger than 4TB ([#95463](https://github.com/kubernetes/kubernetes/pull/95463), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95463", - "pr_number": 95463, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "95489": { - "commit": "53913a7c676c4bd21d6d3a58e6d6305729abaa9b", - "text": "client-go credential plugins can now be passed in the current cluster information via the KUBERNETES_EXEC_INFO environment variable.", - "markdown": "Client-go credential plugins can now be passed in the current cluster information via the KUBERNETES_EXEC_INFO environment variable. ([#95489](https://github.com/kubernetes/kubernetes/pull/95489), [@ankeesler](https://github.com/ankeesler)) [SIG API Machinery and Auth]", - "documentation": [ - { - "description": "Need to update", - "url": "https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins", - "type": "official" - } - ], - "author": "ankeesler", - "author_url": "https://github.com/ankeesler", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95489", - "pr_number": 95489, - "areas": ["apiserver", "dependency"], - "kinds": ["feature"], - "sigs": ["api-machinery", "auth"], - "feature": true, - "duplicate": true - }, - "95505": { - "commit": "0900340b981755ab253f191b2a7671f4601ad191", - "text": "Windows hyper-v container featuregate is deprecated in 1.20 and will be removed in 1.21", - "markdown": "Windows hyper-v container featuregate is deprecated in 1.20 and will be removed in 1.21 ([#95505](https://github.com/kubernetes/kubernetes/pull/95505), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows]", - "author": "wawa0210", - "author_url": "https://github.com/wawa0210", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95505", - "pr_number": 95505, - "areas": ["kubelet"], - "kinds": ["cleanup"], - "sigs": ["node", "windows"], - "duplicate": true, - "action_required": true - }, - "95531": { - "commit": "ad6a2af7d8bc33a440e6c2edd399fb2bf291e36b", - "text": "`MatchNodeSelectorTerms` function moved to `k8s.io/component-helpers`", - "markdown": "`MatchNodeSelectorTerms` function moved to `k8s.io/component-helpers` ([#95531](https://github.com/kubernetes/kubernetes/pull/95531), [@damemi](https://github.com/damemi)) [SIG Apps, Scheduling and Storage]", - "author": "damemi", - "author_url": "https://github.com/damemi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95531", - "pr_number": 95531, - "areas": ["dependency"], - "kinds": ["cleanup"], - "sigs": ["apps", "scheduling", "storage"], - "duplicate": true - }, - "95533": { - "commit": "281866b35c0645e9bffc00d5e6d2f97b64680fd9", - "text": "kube-apiserver now maintains a Lease object to identify itself: \n- The feature is under feature gate `APIServerIdentity`. \n- Two flags are added to kube-apiserver: `identity-lease-duration-seconds`, `identity-lease-renew-interval-seconds`", - "markdown": "Kube-apiserver now maintains a Lease object to identify itself: \n - The feature is under feature gate `APIServerIdentity`. \n - Two flags are added to kube-apiserver: `identity-lease-duration-seconds`, `identity-lease-renew-interval-seconds` ([#95533](https://github.com/kubernetes/kubernetes/pull/95533), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/1965-kube-apiserver-identity/README.md", - "type": "KEP" - } - ], - "author": "roycaihw", - "author_url": "https://github.com/roycaihw", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95533", - "pr_number": 95533, - "areas": ["apiserver"], - "kinds": ["feature"], - "sigs": ["api-machinery"], - "feature": true - }, - "95539": { - "commit": "b2de4a6159e5e6836b34f12cd172e44f31042126", - "text": "New default scheduling plugins order reduces scheduling and preemption latency when taints and node affinity are used", - "markdown": "New default scheduling plugins order reduces scheduling and preemption latency when taints and node affinity are used ([#95539](https://github.com/kubernetes/kubernetes/pull/95539), [@soulxu](https://github.com/soulxu)) [SIG Scheduling]", - "author": "soulxu", - "author_url": "https://github.com/soulxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95539", - "pr_number": 95539, - "kinds": ["feature"], - "sigs": ["scheduling"], - "feature": true - }, - "95541": { - "commit": "2d6cd683bdebcf88af617c722963b8c9221f77ac", - "text": "volume binding: report UnschedulableAndUnresolvable status instead of an error when bound PVs not found", - "markdown": "Volume binding: report UnschedulableAndUnresolvable status instead of an error when bound PVs not found ([#95541](https://github.com/kubernetes/kubernetes/pull/95541), [@cofyc](https://github.com/cofyc)) [SIG Apps, Scheduling and Storage]", - "author": "cofyc", - "author_url": "https://github.com/cofyc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95541", - "pr_number": 95541, - "kinds": ["bug"], - "sigs": ["apps", "scheduling", "storage"], - "duplicate": true - }, - "95542": { - "commit": "d7e0cb0e35dba826ca97ef4c29f2cf80a59b052c", - "text": "Support the node label `node.kubernetes.io/exclude-from-external-load-balancers`", - "markdown": "Support the node label `node.kubernetes.io/exclude-from-external-load-balancers` ([#95542](https://github.com/kubernetes/kubernetes/pull/95542), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95542", - "pr_number": 95542, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "95543": { - "commit": "722be6647a64cf55b46d785add7790a10e8aa8f3", - "text": "Remove the dependency of csi-translation-lib module on apiserver/cloud-provider/controller-manager", - "markdown": "Remove the dependency of csi-translation-lib module on apiserver/cloud-provider/controller-manager ([#95543](https://github.com/kubernetes/kubernetes/pull/95543), [@wawa0210](https://github.com/wawa0210)) [SIG Release]", - "author": "wawa0210", - "author_url": "https://github.com/wawa0210", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95543", - "pr_number": 95543, - "areas": ["code-organization", "dependency", "release-eng"], - "kinds": ["cleanup"], - "sigs": ["release"] - }, - "95544": { - "commit": "374989e4617aa99ea260fd11e5a037738468863f", - "text": "Warns user when executing kubectl apply/diff to resource currently being deleted.", - "markdown": "Warns user when executing kubectl apply/diff to resource currently being deleted. ([#95544](https://github.com/kubernetes/kubernetes/pull/95544), [@SaiHarshaK](https://github.com/SaiHarshaK)) [SIG CLI]", - "author": "SaiHarshaK", - "author_url": "https://github.com/SaiHarshaK", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95544", - "pr_number": 95544, - "areas": ["kubectl"], - "kinds": ["feature"], - "sigs": ["cli"], - "feature": true - }, - "95562": { - "commit": "cd8b87f25a25a647eb5818dc42af4ac64448646b", - "text": "Fix verb \u0026 scope reporting for kube-apiserver metrics (LIST reported instead of GET)", - "markdown": "Fix verb \u0026 scope reporting for kube-apiserver metrics (LIST reported instead of GET) ([#95562](https://github.com/kubernetes/kubernetes/pull/95562), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Testing]", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95562", - "pr_number": 95562, - "areas": ["apiserver", "test"], - "kinds": ["bug"], - "sigs": ["api-machinery", "testing"], - "duplicate": true - }, - "95566": { - "commit": "78828078ca213379b304485801a862ec76314e36", - "text": "SCTP support in API objects (Pod, Service, NetworkPolicy) is now GA.\nNote that this has no effect on whether SCTP is enabled on nodes at the kernel level,\nand note that some cloud platforms and network plugins do not support SCTP traffic.", - "markdown": "SCTP support in API objects (Pod, Service, NetworkPolicy) is now GA.\n Note that this has no effect on whether SCTP is enabled on nodes at the kernel level,\n and note that some cloud platforms and network plugins do not support SCTP traffic. ([#95566](https://github.com/kubernetes/kubernetes/pull/95566), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network]", - "documentation": [ - { - "description": "[Enhancement]", - "url": "https://github.com/kubernetes/enhancements/issues/614", - "type": "KEP" - }, - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/ee5e90d5/keps/sig-network/614-SCTP-support", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95566", - "pr_number": 95566, - "kinds": ["feature"], - "sigs": ["apps", "network"], - "feature": true, - "duplicate": true - }, - "95583": { - "commit": "9af86e8db8e965d2aec5b8d1762fc7cbab323daa", - "text": "fix: smb valid path error", - "markdown": "Fix: smb valid path error ([#95583](https://github.com/kubernetes/kubernetes/pull/95583), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95583", - "pr_number": 95583, - "kinds": ["bug"], - "sigs": ["storage"] - }, - "95603": { - "commit": "56c1be8317cb79d7465163674cc6561cc464367f", - "text": "Introduce api-extensions category which will return: mutating admission configs, validating admission configs, CRDs and APIServices when used in kubectl get, for example.", - "markdown": "Introduce api-extensions category which will return: mutating admission configs, validating admission configs, CRDs and APIServices when used in kubectl get, for example. ([#95603](https://github.com/kubernetes/kubernetes/pull/95603), [@soltysh](https://github.com/soltysh)) [SIG API Machinery]", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95603", - "pr_number": 95603, - "kinds": ["feature"], - "sigs": ["api-machinery"], - "feature": true - }, - "95631": { - "commit": "3fe372c3da3620d5de6f50ff72355cdf8caf667e", - "text": "DefaultPodTopologySpread graduated to Beta. The feature gate is enabled by default.", - "markdown": "DefaultPodTopologySpread graduated to Beta. The feature gate is enabled by default. ([#95631](https://github.com/kubernetes/kubernetes/pull/95631), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://git.k8s.io/enhancements/keps/sig-scheduling/1258-default-pod-topology-spread", - "type": "external" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#cluster-level-default-constraints", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95631", - "pr_number": 95631, - "areas": ["test"], - "kinds": ["feature"], - "sigs": ["scheduling", "testing"], - "feature": true, - "duplicate": true - }, - "95635": { - "commit": "2c58deffa87bf464293fe80c80b7fec31d0aae7c", - "text": "Alter wording to describe pods using a pvc", - "markdown": "Alter wording to describe pods using a pvc ([#95635](https://github.com/kubernetes/kubernetes/pull/95635), [@RaunakShah](https://github.com/RaunakShah)) [SIG CLI]", - "author": "RaunakShah", - "author_url": "https://github.com/RaunakShah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95635", - "pr_number": 95635, - "areas": ["kubectl"], - "kinds": ["bug"], - "sigs": ["cli"] - }, - "95641": { - "commit": "f315d49f74118fed4092f72fd4c9983664ddabac", - "text": "Changed: default \"Accept: */*\" header added to HTTP probes. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes (https://github.com/kubernetes/website/pull/24756)", - "markdown": "Changed: default \"Accept: */*\" header added to HTTP probes. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes (https://github.com/kubernetes/website/pull/24756) ([#95641](https://github.com/kubernetes/kubernetes/pull/95641), [@fonsecas72](https://github.com/fonsecas72)) [SIG Network and Node]", - "author": "fonsecas72", - "author_url": "https://github.com/fonsecas72", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95641", - "pr_number": 95641, - "kinds": ["feature"], - "sigs": ["network", "node"], - "feature": true, - "duplicate": true - }, - "95647": { - "commit": "106ee38796be33073425a5ac731ea0adbde3d151", - "text": "If we set SelectPolicy MinPolicySelect on scaleUp behavior or scaleDown behavior,Horizontal Pod Autoscaler doesn`t automatically scale the number of pods correctly", - "markdown": "If we set SelectPolicy MinPolicySelect on scaleUp behavior or scaleDown behavior,Horizontal Pod Autoscaler doesn`t automatically scale the number of pods correctly ([#95647](https://github.com/kubernetes/kubernetes/pull/95647), [@JoshuaAndrew](https://github.com/JoshuaAndrew)) [SIG Apps and Autoscaling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-autoscaling", - "type": "KEP" - }, - { - "description": "[Design]", - "url": "https://github.com/kubernetes/community/blob/master/contributors/design-proposals/autoscaling/horizontal-pod-autoscaler.md", - "type": "external" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/", - "type": "official" - } - ], - "author": "JoshuaAndrew", - "author_url": "https://github.com/JoshuaAndrew", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95647", - "pr_number": 95647, - "kinds": ["bug"], - "sigs": ["apps", "autoscaling"], - "duplicate": true - }, - "95694": { - "commit": "5f2ebe4bbc7c4c40a69b51babd12dc23cc89bafe", - "text": "UDP and SCTP protocols can left stale connections that need to be cleared to avoid services disruption, but they can cause problems that are hard to debug.\nKubernetes components using a loglevel greater or equal than 4 will log the conntrack operations and its output, to show the entries that were deleted.", - "markdown": "UDP and SCTP protocols can left stale connections that need to be cleared to avoid services disruption, but they can cause problems that are hard to debug.\n Kubernetes components using a loglevel greater or equal than 4 will log the conntrack operations and its output, to show the entries that were deleted. ([#95694](https://github.com/kubernetes/kubernetes/pull/95694), [@aojea](https://github.com/aojea)) [SIG Network]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95694", - "pr_number": 95694, - "kinds": ["cleanup", "flake"], - "sigs": ["network"], - "duplicate_kind": true - }, - "95718": { - "commit": "12d9183da03d86c65f9f17e3e28be3c7c18ed22a", - "text": "Promote RuntimeClass feature to GA.\nPromote node.k8s.io API groups from v1beta1 to v1.", - "markdown": "Promote RuntimeClass feature to GA.\n Promote node.k8s.io API groups from v1beta1 to v1. ([#95718](https://github.com/kubernetes/kubernetes/pull/95718), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Apps, Auth, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/585", - "type": "KEP" - } - ], - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95718", - "pr_number": 95718, - "areas": ["apiserver", "kubelet", "test"], - "kinds": ["api-change", "feature"], - "sigs": ["apps", "auth", "node", "scheduling", "testing"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "95719": { - "commit": "423f8731ef231298675473196100557c69165c74", - "text": "There is a new pv_collector_total_pv_count metric that counts persistent volumes by the volume plugin name and volume mode.", - "markdown": "There is a new pv_collector_total_pv_count metric that counts persistent volumes by the volume plugin name and volume mode. ([#95719](https://github.com/kubernetes/kubernetes/pull/95719), [@tsmetana](https://github.com/tsmetana)) [SIG Apps, Instrumentation, Storage and Testing]", - "author": "tsmetana", - "author_url": "https://github.com/tsmetana", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95719", - "pr_number": 95719, - "areas": ["test"], - "kinds": ["feature"], - "sigs": ["apps", "instrumentation", "storage", "testing"], - "feature": true, - "duplicate": true - }, - "95723": { - "commit": "3627a282799b323d68c99f9a294b0fd211cd0725", - "text": "kubeadm: improve the validation of serviceSubnet and podSubnet.\nServiceSubnet has to be limited in size, due to implementation details, and the mask can not allocate more than 20 bits.\nPodSubnet validates against the corresponding cluster \"--node-cidr-mask-size\" of the kube-controller-manager, it fail if the values are not compatible.\nkubeadm no longer sets the node-mask automatically on IPv6 deployments, you must check that your IPv6 service subnet mask is compatible with the default node mask /64 or set it accordenly. \nPreviously, for IPv6, if the podSubnet had a mask lower than /112, kubeadm calculated a node-mask to be multiple of eight and splitting the available bits to maximise the number used for nodes.", - "markdown": "Kubeadm: improve the validation of serviceSubnet and podSubnet.\n ServiceSubnet has to be limited in size, due to implementation details, and the mask can not allocate more than 20 bits.\n PodSubnet validates against the corresponding cluster \"--node-cidr-mask-size\" of the kube-controller-manager, it fail if the values are not compatible.\n kubeadm no longer sets the node-mask automatically on IPv6 deployments, you must check that your IPv6 service subnet mask is compatible with the default node mask /64 or set it accordenly. \n Previously, for IPv6, if the podSubnet had a mask lower than /112, kubeadm calculated a node-mask to be multiple of eight and splitting the available bits to maximise the number used for nodes. ([#95723](https://github.com/kubernetes/kubernetes/pull/95723), [@aojea](https://github.com/aojea)) [SIG Cluster Lifecycle]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95723", - "pr_number": 95723, - "areas": ["kubeadm"], - "kinds": ["cleanup"], - "sigs": ["cluster-lifecycle"], - "action_required": true - }, - "95725": { - "commit": "4df8d97af05ba562537efe5a0399c1a55206d49c", - "text": "exposes and sets a default timeout for the SubjectAccessReview client for DelegatingAuthorizationOptions", - "markdown": "Exposes and sets a default timeout for the SubjectAccessReview client for DelegatingAuthorizationOptions ([#95725](https://github.com/kubernetes/kubernetes/pull/95725), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Cloud Provider]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95725", - "pr_number": 95725, - "areas": ["apiserver"], - "kinds": ["bug"], - "sigs": ["api-machinery", "cloud-provider"], - "duplicate": true - }, - "95741": { - "commit": "30617439aa0517e3116217a6c7762828522d0521", - "text": "Add WindowsContainerResources and Annotations to CRI-API UpdateContainerResourcesRequest", - "markdown": "Add WindowsContainerResources and Annotations to CRI-API UpdateContainerResourcesRequest ([#95741](https://github.com/kubernetes/kubernetes/pull/95741), [@katiewasnothere](https://github.com/katiewasnothere)) [SIG Node]", - "author": "katiewasnothere", - "author_url": "https://github.com/katiewasnothere", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95741", - "pr_number": 95741, - "areas": ["kubelet"], - "kinds": ["api-change", "feature"], - "sigs": ["node"], - "feature": true, - "duplicate_kind": true - }, - "95748": { - "commit": "9a6e35a16a92feac757bf0621a09a2661f617617", - "text": "Update the PIP when it is not in the Succeeded provisioning state during the LB update.", - "markdown": "Update the PIP when it is not in the Succeeded provisioning state during the LB update. ([#95748](https://github.com/kubernetes/kubernetes/pull/95748), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95748", - "pr_number": 95748, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "95770": { - "commit": "f458996af14e34ec36353e5ce8452e14c6bd43a1", - "text": "Remove ready file and its directory (which is created during volume SetUp) during emptyDir volume TearDown.", - "markdown": "Remove ready file and its directory (which is created during volume SetUp) during emptyDir volume TearDown. ([#95770](https://github.com/kubernetes/kubernetes/pull/95770), [@jingxu97](https://github.com/jingxu97)) [SIG Storage]", - "author": "jingxu97", - "author_url": "https://github.com/jingxu97", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95770", - "pr_number": 95770, - "kinds": ["bug"], - "sigs": ["storage"] - }, - "95776": { - "commit": "ad2bf99f9b8f27113cd3b0c9e0ad72e568947e43", - "text": "Kubernetes is now built using go1.15.5\n- build: Update to k/repo-infra@v0.1.2 (supports go1.15.5)", - "markdown": "Kubernetes is now built using go1.15.5\n - build: Update to k/repo-infra@v0.1.2 (supports go1.15.5) ([#95776](https://github.com/kubernetes/kubernetes/pull/95776), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing]", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95776", - "pr_number": 95776, - "areas": ["dependency", "provider/gcp", "release-eng", "security", "test"], - "kinds": ["feature"], - "sigs": ["cloud-provider", "instrumentation", "release", "testing"], - "feature": true, - "duplicate": true - }, - "95786": { - "commit": "254f3e26abd699d5d5b1abfc4a6449299345fd4a", - "text": "kubeadm: add missing \"--experimental-patches\" flag to \"kubeadm init phase control-plane\"", - "markdown": "Kubeadm: add missing \"--experimental-patches\" flag to \"kubeadm init phase control-plane\" ([#95786](https://github.com/kubernetes/kubernetes/pull/95786), [@Sh4d1](https://github.com/Sh4d1)) [SIG Cluster Lifecycle]", - "author": "Sh4d1", - "author_url": "https://github.com/Sh4d1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95786", - "pr_number": 95786, - "areas": ["kubeadm"], - "kinds": ["bug"], - "sigs": ["cluster-lifecycle"] - }, - "95813": { - "commit": "16e18a590f32b931cdceb5372664198c0e49831a", - "text": "Update the frontend IP config when the service's `pipName` annotation is changed", - "markdown": "Update the frontend IP config when the service's `pipName` annotation is changed ([#95813](https://github.com/kubernetes/kubernetes/pull/95813), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95813", - "pr_number": 95813, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "95839": { - "commit": "0e0cc1ead8ae5937a45e8ca9fa68eb300a1a2f50", - "text": "Add pod_ based CPU and memory metrics to Kubelet's /metrics/resource endpoint", - "markdown": "Add pod_ based CPU and memory metrics to Kubelet's /metrics/resource endpoint ([#95839](https://github.com/kubernetes/kubernetes/pull/95839), [@egernst](https://github.com/egernst)) [SIG Instrumentation, Node and Testing]", - "author": "egernst", - "author_url": "https://github.com/egernst", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95839", - "pr_number": 95839, - "areas": ["kubelet", "test"], - "kinds": ["feature"], - "sigs": ["instrumentation", "node", "testing"], - "feature": true, - "duplicate": true - }, - "95863": { - "commit": "d39562fd93415e0ab41595d38ac148f7eb084c13", - "text": "Volume snapshot e2e test to validate PVC and VolumeSnapshotContent finalizer", - "markdown": "Volume snapshot e2e test to validate PVC and VolumeSnapshotContent finalizer ([#95863](https://github.com/kubernetes/kubernetes/pull/95863), [@RaunakShah](https://github.com/RaunakShah)) [SIG Cloud Provider, Storage and Testing]", - "author": "RaunakShah", - "author_url": "https://github.com/RaunakShah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95863", - "pr_number": 95863, - "areas": ["e2e-test-framework", "provider/gcp", "test"], - "kinds": ["feature"], - "sigs": ["cloud-provider", "storage", "testing"], - "feature": true, - "duplicate": true - }, - "95866": { - "commit": "c34a2c44a80c3fa84bf58713dea8adbbffc508ce", - "text": "add a metric for time taken to perform recursive permission change", - "markdown": "Add a metric for time taken to perform recursive permission change ([#95866](https://github.com/kubernetes/kubernetes/pull/95866), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation and Storage]", - "author": "JornShen", - "author_url": "https://github.com/JornShen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95866", - "pr_number": 95866, - "kinds": ["feature"], - "sigs": ["instrumentation", "storage"], - "feature": true, - "duplicate": true - }, - "95871": { - "commit": "2729b8e375143434fc4977fe49eaea572567dac3", - "text": "v1helpers.MatchNodeSelectorTerms now accepts just a Node and a list of Terms", - "markdown": "V1helpers.MatchNodeSelectorTerms now accepts just a Node and a list of Terms ([#95871](https://github.com/kubernetes/kubernetes/pull/95871), [@damemi](https://github.com/damemi)) [SIG Apps, Scheduling and Storage]", - "author": "damemi", - "author_url": "https://github.com/damemi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95871", - "pr_number": 95871, - "kinds": ["cleanup"], - "sigs": ["apps", "scheduling", "storage"], - "duplicate": true - }, - "95892": { - "commit": "fe5f2cf8ef5d77787f419cb5f2edc9eba476d725", - "text": "change plugin name in fsgroupapplymetrics of csi and flexvolume to distinguish different driver", - "markdown": "Change plugin name in fsgroupapplymetrics of csi and flexvolume to distinguish different driver ([#95892](https://github.com/kubernetes/kubernetes/pull/95892), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation, Storage and Testing]", - "author": "JornShen", - "author_url": "https://github.com/JornShen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95892", - "pr_number": 95892, - "areas": ["test"], - "kinds": ["bug"], - "sigs": ["instrumentation", "storage", "testing"], - "duplicate": true - }, - "95894": { - "commit": "f78d095d52a9fef3a9ae5355eb5af0d1d5088e9e", - "text": "Services will now have a `clusterIPs` field to go with `clusterIP`. `clusterIPs[0]` is a synonym for `clusterIP` and will be syncronized on create and update operations.", - "markdown": "Services will now have a `clusterIPs` field to go with `clusterIP`. `clusterIPs[0]` is a synonym for `clusterIP` and will be syncronized on create and update operations. ([#95894](https://github.com/kubernetes/kubernetes/pull/95894), [@thockin](https://github.com/thockin)) [SIG Network]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95894", - "pr_number": 95894, - "kinds": ["api-change", "bug"], - "sigs": ["network"], - "duplicate_kind": true - }, - "95895": { - "commit": "f102cc887e57f83485b58d37e77b247270cf2ade", - "text": "kube-apiserver now deletes expired kube-apiserver Lease objects:\n- The feature is under feature gate `APIServerIdentity`.\n- A flag is added to kube-apiserver: `identity-lease-garbage-collection-check-period-seconds`", - "markdown": "Kube-apiserver now deletes expired kube-apiserver Lease objects:\n - The feature is under feature gate `APIServerIdentity`.\n - A flag is added to kube-apiserver: `identity-lease-garbage-collection-check-period-seconds` ([#95895](https://github.com/kubernetes/kubernetes/pull/95895), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery, Apps, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/1965-kube-apiserver-identity/README.md", - "type": "KEP" - } - ], - "author": "roycaihw", - "author_url": "https://github.com/roycaihw", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95895", - "pr_number": 95895, - "areas": ["apiserver", "test"], - "kinds": ["api-change"], - "sigs": ["api-machinery", "apps", "auth", "testing"], - "duplicate": true - }, - "95896": { - "commit": "8d6829fe1e844876aa77755e23af1ab35e4790c5", - "text": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:", - "markdown": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**: ([#95896](https://github.com/kubernetes/kubernetes/pull/95896), [@zshihang](https://github.com/zshihang)) [SIG API Machinery and Cluster Lifecycle]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95896", - "pr_number": 95896, - "areas": ["apiserver"], - "kinds": ["feature"], - "sigs": ["api-machinery", "cluster-lifecycle"], - "feature": true, - "duplicate": true - }, - "95909": { - "commit": "096819c9635035abb4c4ec2bcaf4db8c35250cb7", - "text": "When creating a PVC with the volume.beta.kubernetes.io/storage-provisioner annotation already set, the PV controller might have incorrectly deleted the newly provisioned PV instead of binding it to the PVC, depending on timing and system load.", - "markdown": "When creating a PVC with the volume.beta.kubernetes.io/storage-provisioner annotation already set, the PV controller might have incorrectly deleted the newly provisioned PV instead of binding it to the PVC, depending on timing and system load. ([#95909](https://github.com/kubernetes/kubernetes/pull/95909), [@pohly](https://github.com/pohly)) [SIG Apps and Storage]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95909", - "pr_number": 95909, - "kinds": ["bug"], - "sigs": ["apps", "storage"], - "duplicate": true - }, - "95933": { - "commit": "cd99c63570eb1489dd631c12ea86db708dbdcd59", - "text": "Fix bug in JSON path parser where an error occurs when a range is empty", - "markdown": "Fix bug in JSON path parser where an error occurs when a range is empty ([#95933](https://github.com/kubernetes/kubernetes/pull/95933), [@brianpursley](https://github.com/brianpursley)) [SIG API Machinery]", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95933", - "pr_number": 95933, - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "95961": { - "commit": "a69a4a4bf02248130b7aaacb74f031fe3faad485", - "text": "fix k8s.io/apimachinery/pkg/api/meta.SetStatusCondition to update ObservedGeneration", - "markdown": "Fix k8s.io/apimachinery/pkg/api/meta.SetStatusCondition to update ObservedGeneration ([#95961](https://github.com/kubernetes/kubernetes/pull/95961), [@KnicKnic](https://github.com/KnicKnic)) [SIG API Machinery]", - "author": "KnicKnic", - "author_url": "https://github.com/KnicKnic", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95961", - "pr_number": 95961, - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "95981": { - "commit": "afeac926fa79179bfd0c5e718459086845a2a80c", - "text": "HTTP/2 connection health check is enabled by default in all Kubernetes clients. The feature should work out-of-the-box. If needed, users can tune the feature via the HTTP2_READ_IDLE_TIMEOUT_SECONDS and HTTP2_PING_TIMEOUT_SECONDS environment variables. The feature is disabled if HTTP2_READ_IDLE_TIMEOUT_SECONDS is set to 0.", - "markdown": "HTTP/2 connection health check is enabled by default in all Kubernetes clients. The feature should work out-of-the-box. If needed, users can tune the feature via the HTTP2_READ_IDLE_TIMEOUT_SECONDS and HTTP2_PING_TIMEOUT_SECONDS environment variables. The feature is disabled if HTTP2_READ_IDLE_TIMEOUT_SECONDS is set to 0. ([#95981](https://github.com/kubernetes/kubernetes/pull/95981), [@caesarxuchao](https://github.com/caesarxuchao)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Node]", - "author": "caesarxuchao", - "author_url": "https://github.com/caesarxuchao", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95981", - "pr_number": 95981, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl" - ], - "kinds": ["bug"], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "node" - ], - "duplicate": true - }, - "95985": { - "commit": "917dcbabe107dfe18c01791d3f58ec9c9cd411a4", - "text": "Fixed a regression which prevented pods with `docker/default` seccomp annotations from being created in 1.19 if a PodSecurityPolicy was in place which did not allow `runtime/default` seccomp profiles.", - "markdown": "Fixed a regression which prevented pods with `docker/default` seccomp annotations from being created in 1.19 if a PodSecurityPolicy was in place which did not allow `runtime/default` seccomp profiles. ([#95985](https://github.com/kubernetes/kubernetes/pull/95985), [@saschagrunert](https://github.com/saschagrunert)) [SIG Auth]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/blob/d80faa7/keps/sig-node/20190717-seccomp-ga.md", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95985", - "pr_number": 95985, - "kinds": ["bug", "regression"], - "sigs": ["auth"], - "duplicate_kind": true - }, - "96051": { - "commit": "2ee1003430ea42060b48de9b28ecab2ce846c366", - "text": "Add a new flag to set priority for the kubelet on Windows nodes so that workloads cannot overwhelm the node there by disrupting kubelet process.", - "markdown": "Add a new flag to set priority for the kubelet on Windows nodes so that workloads cannot overwhelm the node there by disrupting kubelet process. ([#96051](https://github.com/kubernetes/kubernetes/pull/96051), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node and Windows]", - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96051", - "pr_number": 96051, - "areas": ["kubelet"], - "kinds": ["feature"], - "sigs": ["node", "windows"], - "feature": true, - "duplicate": true - }, - "96052": { - "commit": "d16112f76c454b0b08beaff440a4540f7f8eb469", - "text": "Disable watchcache for events", - "markdown": "Disable watchcache for events ([#96052](https://github.com/kubernetes/kubernetes/pull/96052), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery]", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96052", - "pr_number": 96052, - "areas": ["apiserver"], - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "96054": { - "commit": "df794c1ddad17b9cd1d3e7fd1409ed8e2b9cf854", - "text": "The kubelet_runtime_operations_duration_seconds metric buckets were set to 0.005 0.0125 0.03125 0.078125 0.1953125 0.48828125 1.220703125 3.0517578125 7.62939453125 19.073486328125 47.6837158203125 119.20928955078125 298.0232238769531 and 745.0580596923828 seconds", - "markdown": "The kubelet_runtime_operations_duration_seconds metric buckets were set to 0.005 0.0125 0.03125 0.078125 0.1953125 0.48828125 1.220703125 3.0517578125 7.62939453125 19.073486328125 47.6837158203125 119.20928955078125 298.0232238769531 and 745.0580596923828 seconds ([#96054](https://github.com/kubernetes/kubernetes/pull/96054), [@alvaroaleman](https://github.com/alvaroaleman)) [SIG Instrumentation and Node]", - "author": "alvaroaleman", - "author_url": "https://github.com/alvaroaleman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96054", - "pr_number": 96054, - "areas": ["kubelet"], - "kinds": ["feature"], - "sigs": ["instrumentation", "node"], - "feature": true, - "duplicate": true - }, - "96058": { - "commit": "1ba27096aecaa6e2e5f655e41e5155a38473a11b", - "text": "`kubectl debug` gains support for changing container images when copying a pod for debugging, similar to how `kubectl set image` works. See `kubectl help debug` for more information.", - "markdown": "`kubectl debug` gains support for changing container images when copying a pod for debugging, similar to how `kubectl set image` works. See `kubectl help debug` for more information. ([#96058](https://github.com/kubernetes/kubernetes/pull/96058), [@verb](https://github.com/verb)) [SIG CLI]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug", - "type": "KEP" - } - ], - "author": "verb", - "author_url": "https://github.com/verb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96058", - "pr_number": 96058, - "areas": ["kubectl"], - "kinds": ["feature"], - "sigs": ["cli"], - "feature": true - }, - "96061": { - "commit": "59ac565dbf603f0636dbbcc2bb61a35fb2969d7e", - "text": "If the user specifies an invalid timeout in the request URL, the request will be aborted with an HTTP 400.\n- If the user specifies a timeout in the request URL that exceeds the maximum request deadline allowed by the apiserver, the request will be aborted with an HTTP 400.", - "markdown": "If the user specifies an invalid timeout in the request URL, the request will be aborted with an HTTP 400.\n - If the user specifies a timeout in the request URL that exceeds the maximum request deadline allowed by the apiserver, the request will be aborted with an HTTP 400. ([#96061](https://github.com/kubernetes/kubernetes/pull/96061), [@tkashem](https://github.com/tkashem)) [SIG API Machinery, Network and Testing]", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96061", - "pr_number": 96061, - "areas": ["apiserver", "test"], - "kinds": ["bug"], - "sigs": ["api-machinery", "network", "testing"], - "duplicate": true - }, - "96071": { - "commit": "2b8f43bf1522755ac34467e88042149b8dd7aa67", - "text": "Scheduler now ignores Pod update events if the resourceVersion of old and new Pods are identical.", - "markdown": "Scheduler now ignores Pod update events if the resourceVersion of old and new Pods are identical. ([#96071](https://github.com/kubernetes/kubernetes/pull/96071), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling]", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96071", - "pr_number": 96071, - "kinds": ["feature", "flake"], - "sigs": ["scheduling"], - "feature": true, - "duplicate_kind": true - }, - "96092": { - "commit": "43edb4063262751bbb6ba18daf3fe9582ae3b2f9", - "text": "Disabled `LocalStorageCapacityIsolation` feature gate is honored during scheduling.", - "markdown": "Disabled `LocalStorageCapacityIsolation` feature gate is honored during scheduling. ([#96092](https://github.com/kubernetes/kubernetes/pull/96092), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling]", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96092", - "pr_number": 96092, - "kinds": ["bug"], - "sigs": ["scheduling"] - }, - "96111": { - "commit": "3e7e6c345555b12f964144a1995db265f22ab8d8", - "text": "Support multiple standard load balancers in one cluster", - "markdown": "Support multiple standard load balancers in one cluster ([#96111](https://github.com/kubernetes/kubernetes/pull/96111), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "documentation": [ - { - "url": "https://kubernetes-sigs.github.io/cloud-provider-azure/development/design-docs/multiple-slb/", - "type": "external" - } - ], - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96111", - "pr_number": 96111, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["feature"], - "sigs": ["cloud-provider"], - "feature": true - }, - "96127": { - "commit": "87ed842fa33e0caa3bbab26678d5b28e13c5e160", - "text": "Changed: default \"Accept-Encoding\" header removed from HTTP probes. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes", - "markdown": "Changed: default \"Accept-Encoding\" header removed from HTTP probes. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes ([#96127](https://github.com/kubernetes/kubernetes/pull/96127), [@fonsecas72](https://github.com/fonsecas72)) [SIG Network and Node]", - "author": "fonsecas72", - "author_url": "https://github.com/fonsecas72", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96127", - "pr_number": 96127, - "kinds": ["cleanup"], - "sigs": ["network", "node"], - "duplicate": true - }, - "96129": { - "commit": "b2dc35dab2cdd2aa33ba8240bb6e53478e63c435", - "text": "Adds kubelet alpha feature, `GracefulNodeShutdown` which makes kubelet aware of node system shutdowns and result in graceful termination of pods during a system shutdown.", - "markdown": "Adds kubelet alpha feature, `GracefulNodeShutdown` which makes kubelet aware of node system shutdowns and result in graceful termination of pods during a system shutdown. ([#96129](https://github.com/kubernetes/kubernetes/pull/96129), [@bobbypage](https://github.com/bobbypage)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2000-graceful-node-shutdown/README.md", - "type": "KEP" - } - ], - "author": "bobbypage", - "author_url": "https://github.com/bobbypage", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96129", - "pr_number": 96129, - "areas": ["dependency", "kubelet"], - "kinds": ["api-change", "feature"], - "sigs": ["node"], - "feature": true, - "duplicate_kind": true - }, - "96138": { - "commit": "468f9f6cac392d941dd6a4d8a331f38cbf0090d3", - "text": "`kubectl alpha debug` has graduated to beta and is now `kubectl debug`.", - "markdown": "`kubectl alpha debug` has graduated to beta and is now `kubectl debug`. ([#96138](https://github.com/kubernetes/kubernetes/pull/96138), [@verb](https://github.com/verb)) [SIG CLI and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug", - "type": "KEP" - } - ], - "author": "verb", - "author_url": "https://github.com/verb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96138", - "pr_number": 96138, - "areas": ["kubectl", "test"], - "kinds": ["feature"], - "sigs": ["cli", "testing"], - "feature": true, - "duplicate": true - }, - "96144": { - "commit": "89ba702d8a135097f5f79e284c1c675e437068f7", - "text": "skip [k8s.io/kubernetes@v1.19.0/test/e2e/storage/testsuites/base.go:162]: Driver azure-disk doesn't support snapshot type DynamicSnapshot -- skipping\nskip [k8s.io/kubernetes@v1.19.0/test/e2e/storage/testsuites/base.go:185]: Driver azure-disk doesn't support ntfs -- skipping", - "markdown": "Skip [k8s.io/kubernetes@v1.19.0/test/e2e/storage/testsuites/base.go:162]: Driver azure-disk doesn't support snapshot type DynamicSnapshot -- skipping\n skip [k8s.io/kubernetes@v1.19.0/test/e2e/storage/testsuites/base.go:185]: Driver azure-disk doesn't support ntfs -- skipping ([#96144](https://github.com/kubernetes/kubernetes/pull/96144), [@qinpingli](https://github.com/qinpingli)) [SIG Storage and Testing]", - "author": "qinpingli", - "author_url": "https://github.com/qinpingli", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96144", - "pr_number": 96144, - "areas": ["test"], - "kinds": ["bug"], - "sigs": ["storage", "testing"], - "duplicate": true - }, - "96179": { - "commit": "812aef32cefaabde95a035540c32e64f24459f33", - "text": "NONE", - "markdown": "NONE ([#96179](https://github.com/kubernetes/kubernetes/pull/96179), [@bbyrne5](https://github.com/bbyrne5)) [SIG Network]", - "author": "bbyrne5", - "author_url": "https://github.com/bbyrne5", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96179", - "pr_number": 96179, - "kinds": ["cleanup"], - "sigs": ["network"] - }, - "96185": { - "commit": "d0398c395ad7455cc67e4f74250f16fc98610e49", - "text": "Duplicate owner reference entries in create/update/patch requests now get deduplicated by the API server. The client sending the request now receives a warning header in the API response. Clients should stop sending requests with duplicate owner references. The API server may reject such requests as early as 1.24.", - "markdown": "Duplicate owner reference entries in create/update/patch requests now get deduplicated by the API server. The client sending the request now receives a warning header in the API response. Clients should stop sending requests with duplicate owner references. The API server may reject such requests as early as 1.24. ([#96185](https://github.com/kubernetes/kubernetes/pull/96185), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery and Testing]", - "author": "roycaihw", - "author_url": "https://github.com/roycaihw", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96185", - "pr_number": 96185, - "areas": ["apiserver", "test"], - "kinds": ["bug"], - "sigs": ["api-machinery", "testing"], - "duplicate": true - }, - "96190": { - "commit": "ee0d35895d0f8a8a29e095eecb28f1c12a217908", - "text": "Introduce kubectl-convert plugin.", - "markdown": "Introduce kubectl-convert plugin. ([#96190](https://github.com/kubernetes/kubernetes/pull/96190), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/1020-kubectl-staging/README.md", - "type": "KEP" - }, - { - "description": "[Code Organization Agenda]", - "url": "https://docs.google.com/document/d/1HtTI0rJEGP_MSf6eO87aCmx_tzpovPAAg7U2Zxwm8FE/edit?ts=5c9d0a4c#bookmark=id.fqfpdy1w5idg", - "type": "external" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96190", - "pr_number": 96190, - "areas": ["kubectl", "test"], - "kinds": ["cleanup"], - "sigs": ["cli", "testing"], - "duplicate": true - }, - "96197": { - "commit": "8bdd10b7d73cb0d705b895e0c9a5646dfbb19a24", - "text": "The beta `RootCAConfigMap` feature gate is enabled by default and causes kube-controller-manager to publish a \"kube-root-ca.crt\" ConfigMap to every namespace. This ConfigMap contains a CA bundle used for verifying connections to the kube-apiserver.", - "markdown": "The beta `RootCAConfigMap` feature gate is enabled by default and causes kube-controller-manager to publish a \"kube-root-ca.crt\" ConfigMap to every namespace. This ConfigMap contains a CA bundle used for verifying connections to the kube-apiserver. ([#96197](https://github.com/kubernetes/kubernetes/pull/96197), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Apps, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96197", - "pr_number": 96197, - "areas": ["apiserver", "test"], - "kinds": ["feature"], - "sigs": ["api-machinery", "apps", "auth", "testing"], - "feature": true, - "duplicate": true - }, - "96202": { - "commit": "e5194dd9362febb142f8187d2ad070203da8a71a", - "text": "NodeAffinity plugin can be configured with AddedAffinity.", - "markdown": "NodeAffinity plugin can be configured with AddedAffinity. ([#96202](https://github.com/kubernetes/kubernetes/pull/96202), [@alculquicondor](https://github.com/alculquicondor)) [SIG Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/reference/scheduling/config/", - "type": "official" - }, - { - "description": "[KEP]", - "url": "https://git.k8s.io/enhancements/keps/sig-scheduling/785-scheduler-component-config-api", - "type": "external" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96202", - "pr_number": 96202, - "areas": ["kubelet", "test"], - "kinds": ["api-change", "feature"], - "sigs": ["node", "scheduling", "testing"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "96211": { - "commit": "2bb92efa3c514a2823583c00e6ba3e9141d81f11", - "text": "Fix paging issues when Azure API returns empty values with non-empty nextLink", - "markdown": "Fix paging issues when Azure API returns empty values with non-empty nextLink ([#96211](https://github.com/kubernetes/kubernetes/pull/96211), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider]", - "author": "feiskyer", - "author_url": "https://github.com/feiskyer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96211", - "pr_number": 96211, - "areas": ["cloudprovider", "dependency", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "96217": { - "commit": "b1b627072a8a0eb28bc71110e72b5843a9282863", - "text": "exposes and sets a default timeout for the TokenReview client for DelegatingAuthenticationOptions", - "markdown": "Exposes and sets a default timeout for the TokenReview client for DelegatingAuthenticationOptions ([#96217](https://github.com/kubernetes/kubernetes/pull/96217), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Cloud Provider]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96217", - "pr_number": 96217, - "areas": ["apiserver", "cloudprovider"], - "kinds": ["bug"], - "sigs": ["api-machinery", "cloud-provider"], - "duplicate": true - }, - "96224": { - "commit": "734889ed822d1a60c6dd61ccd8f1ed0e8ab31ea5", - "text": "Fix vSphere volumes that could be erroneously attached to wrong node", - "markdown": "Fix vSphere volumes that could be erroneously attached to wrong node ([#96224](https://github.com/kubernetes/kubernetes/pull/96224), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96224", - "pr_number": 96224, - "areas": ["cloudprovider"], - "kinds": ["bug"], - "sigs": ["cloud-provider", "storage"], - "duplicate": true - }, - "96236": { - "commit": "8f6ffb24df989608b87451f89b8ac9fc338ed71c", - "text": "API priority and fairness metrics use snake_case in label names", - "markdown": "API priority and fairness metrics use snake_case in label names ([#96236](https://github.com/kubernetes/kubernetes/pull/96236), [@adtac](https://github.com/adtac)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Testing]", - "author": "adtac", - "author_url": "https://github.com/adtac", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96236", - "pr_number": 96236, - "areas": ["apiserver", "test"], - "kinds": ["cleanup"], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "96247": { - "commit": "02528ce91af8398999eb9a99b7abff314e4d8b83", - "text": "e2e test for PodFsGroupChangePolicy", - "markdown": "E2e test for PodFsGroupChangePolicy ([#96247](https://github.com/kubernetes/kubernetes/pull/96247), [@saikat-royc](https://github.com/saikat-royc)) [SIG Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/695-skip-permission-change", - "type": "KEP" - } - ], - "author": "saikat-royc", - "author_url": "https://github.com/saikat-royc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96247", - "pr_number": 96247, - "areas": ["e2e-test-framework", "test"], - "kinds": ["feature"], - "sigs": ["storage", "testing"], - "feature": true, - "duplicate": true - }, - "96251": { - "commit": "48a2bca89377897ea9ae50594934636e626e9551", - "text": "Improve error messages related to nodePort endpoint changes conntrack entries cleanup.", - "markdown": "Improve error messages related to nodePort endpoint changes conntrack entries cleanup. ([#96251](https://github.com/kubernetes/kubernetes/pull/96251), [@ravens](https://github.com/ravens)) [SIG Network]", - "author": "ravens", - "author_url": "https://github.com/ravens", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96251", - "pr_number": 96251, - "kinds": ["bug"], - "sigs": ["network"] - }, - "96266": { - "commit": "afb2342318562a62e832907b8183388244c770e0", - "text": "Fix memory leak in kube-apiserver when underlying time goes forth and back.", - "markdown": "Fix memory leak in kube-apiserver when underlying time goes forth and back. ([#96266](https://github.com/kubernetes/kubernetes/pull/96266), [@chenyw1990](https://github.com/chenyw1990)) [SIG API Machinery]", - "author": "chenyw1990", - "author_url": "https://github.com/chenyw1990", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96266", - "pr_number": 96266, - "areas": ["apiserver"], - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "96273": { - "commit": "23eadbeabda78b00bfa6d3e7271986bfac10370c", - "text": "If BoundServiceAccountTokenVolume is enabled, cluster admins can use metric `serviceaccount_stale_tokens_total` to monitor workloads that are depending on the extended tokens. If there are no such workloads, turn off extended tokens by starting `kube-apiserver` with flag `--service-account-extend-token-expiration=false`", - "markdown": "If BoundServiceAccountTokenVolume is enabled, cluster admins can use metric `serviceaccount_stale_tokens_total` to monitor workloads that are depending on the extended tokens. If there are no such workloads, turn off extended tokens by starting `kube-apiserver` with flag `--service-account-extend-token-expiration=false` ([#96273](https://github.com/kubernetes/kubernetes/pull/96273), [@zshihang](https://github.com/zshihang)) [SIG API Machinery and Auth]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96273", - "pr_number": 96273, - "areas": ["apiserver"], - "kinds": ["api-change", "feature"], - "sigs": ["api-machinery", "auth"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "96308": { - "commit": "0e421222703010b78fa9970c08ac3685d972d5f8", - "text": "update max azure data disk count map", - "markdown": "Update max azure data disk count map ([#96308](https://github.com/kubernetes/kubernetes/pull/96308), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96308", - "pr_number": 96308, - "areas": ["provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider", "storage"], - "duplicate": true - }, - "96312": { - "commit": "48a0ef6a396f84ec93a8e68d9843c6fe27c4e848", - "text": "Users will now be able to configure all supported values for AWS NLB health check interval and thresholds for new resources.", - "markdown": "Users will now be able to configure all supported values for AWS NLB health check interval and thresholds for new resources. ([#96312](https://github.com/kubernetes/kubernetes/pull/96312), [@kishorj](https://github.com/kishorj)) [SIG Cloud Provider]", - "author": "kishorj", - "author_url": "https://github.com/kishorj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96312", - "pr_number": 96312, - "areas": ["cloudprovider"], - "kinds": ["cleanup"], - "sigs": ["cloud-provider"] - }, - "96327": { - "commit": "4b46d44e0c97b288d7e4182f67f936746654b114", - "text": "AppProtocol is now GA for Endpoints and Services. The ServiceAppProtocol feature gate will be deprecated in 1.21.", - "markdown": "AppProtocol is now GA for Endpoints and Services. The ServiceAppProtocol feature gate will be deprecated in 1.21. ([#96327](https://github.com/kubernetes/kubernetes/pull/96327), [@robscott](https://github.com/robscott)) [SIG Apps and Network]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96327", - "pr_number": 96327, - "kinds": ["api-change", "feature"], - "sigs": ["apps", "network"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "96338": { - "commit": "59405cc2b437de501ef1f129952fcbf2a0115421", - "text": "Support customize load balancer health probe protocol and request path", - "markdown": "Support customize load balancer health probe protocol and request path ([#96338](https://github.com/kubernetes/kubernetes/pull/96338), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96338", - "pr_number": 96338, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["feature"], - "sigs": ["cloud-provider"], - "feature": true - }, - "96355": { - "commit": "e21ce4bae23e6bb639c5c69094692b5d0f82b4b2", - "text": "fix pull image error from multiple ACRs using azure managed identity", - "markdown": "Fix pull image error from multiple ACRs using azure managed identity ([#96355](https://github.com/kubernetes/kubernetes/pull/96355), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96355", - "pr_number": 96355, - "areas": ["provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "96369": { - "commit": "eb7bc22b951276a1e31ba759ea1111b6d9e6f210", - "text": "Fixed a bug that prevents kubectl to validate CRDs with schema using x-kubernetes-preserve-unknown-fields on object fields.", - "markdown": "Fixed a bug that prevents kubectl to validate CRDs with schema using x-kubernetes-preserve-unknown-fields on object fields. ([#96369](https://github.com/kubernetes/kubernetes/pull/96369), [@gautierdelorme](https://github.com/gautierdelorme)) [SIG API Machinery and Testing]", - "author": "gautierdelorme", - "author_url": "https://github.com/gautierdelorme", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96369", - "pr_number": 96369, - "areas": ["test"], - "kinds": ["bug"], - "sigs": ["api-machinery", "testing"], - "duplicate": true - }, - "96370": { - "commit": "0ad06e991ab0d0708593e3e6415c521c6b76b7d1", - "text": "Add --experimental-logging-sanitization flag enabling runtime protection from leaking sensitive data in logs", - "markdown": "Add --experimental-logging-sanitization flag enabling runtime protection from leaking sensitive data in logs ([#96370](https://github.com/kubernetes/kubernetes/pull/96370), [@serathius](https://github.com/serathius)) [SIG API Machinery, Cluster Lifecycle and Instrumentation]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/59e5c698639a8489ee3808c13fc9526f746c5fc4/keps/sig-instrumentation/1753-logs-sanitization", - "type": "KEP" - } - ], - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96370", - "pr_number": 96370, - "kinds": ["feature"], - "sigs": ["api-machinery", "cluster-lifecycle", "instrumentation"], - "feature": true, - "duplicate": true - }, - "96376": { - "commit": "6068f12e907e388762e99e44cebc87152b456799", - "text": "Move configurable fsgroup change policy for pods to beta", - "markdown": "Move configurable fsgroup change policy for pods to beta ([#96376](https://github.com/kubernetes/kubernetes/pull/96376), [@gnufied](https://github.com/gnufied)) [SIG Apps and Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96376", - "pr_number": 96376, - "kinds": ["api-change", "feature"], - "sigs": ["apps", "storage"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "96397": { - "commit": "c3c050c88f4265ba77464682801e2cc1ab8021f7", - "text": "Updates docs and guidance on cloud provider InstancesV2 and Zones interface for external cloud providers:\n- removes experimental warning for InstancesV2\n- document that implementation of InstancesV2 will disable calls to Zones\n- deprecate Zones in favor of InstancesV2", - "markdown": "Updates docs and guidance on cloud provider InstancesV2 and Zones interface for external cloud providers:\n - removes experimental warning for InstancesV2\n - document that implementation of InstancesV2 will disable calls to Zones\n - deprecate Zones in favor of InstancesV2 ([#96397](https://github.com/kubernetes/kubernetes/pull/96397), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider]", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96397", - "pr_number": 96397, - "areas": ["cloudprovider"], - "kinds": ["documentation"], - "sigs": ["cloud-provider"] - }, - "96421": { - "commit": "5ed4b76a03b5eddc62939a1569b61532b4a06a72", - "text": "Fixed a bug where aggregator_unavailable_apiservice metrics were reported for deleted apiservices.", - "markdown": "Fixed a bug where aggregator_unavailable_apiservice metrics were reported for deleted apiservices. ([#96421](https://github.com/kubernetes/kubernetes/pull/96421), [@dgrisonnet](https://github.com/dgrisonnet)) [SIG API Machinery and Instrumentation]", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96421", - "pr_number": 96421, - "kinds": ["bug"], - "sigs": ["api-machinery", "instrumentation"], - "duplicate": true - }, - "96426": { - "commit": "ae95984e885bc9e418042272a622b519eff324cc", - "text": "kube-scheduler now logs processed component config at startup", - "markdown": "Kube-scheduler now logs processed component config at startup ([#96426](https://github.com/kubernetes/kubernetes/pull/96426), [@damemi](https://github.com/damemi)) [SIG Scheduling]", - "author": "damemi", - "author_url": "https://github.com/damemi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96426", - "pr_number": 96426, - "kinds": ["cleanup"], - "sigs": ["scheduling"] - }, - "96439": { - "commit": "c3769096c6783996ac493cba2e8e6371f23da922", - "text": "Fix a bug that DefaultPreemption plugin is disabled when using (legacy) scheduler policy.", - "markdown": "Fix a bug that DefaultPreemption plugin is disabled when using (legacy) scheduler policy. ([#96439](https://github.com/kubernetes/kubernetes/pull/96439), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing]", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96439", - "pr_number": 96439, - "areas": ["test"], - "kinds": ["bug"], - "sigs": ["scheduling", "testing"], - "duplicate": true - }, - "96440": { - "commit": "765d949bfc35032aa9bf2eb70724ecfde497e32d", - "text": "EndpointSlice has a new NodeName field guarded by the EndpointSliceNodeName feature gate.\n- EndpointSlice topology field will be deprecated in an upcoming release.\n- EndpointSlice \"IP\" address type is formally removed after being deprecated in Kubernetes 1.17.\n- The discovery.k8s.io/v1alpha1 API is deprecated and will be removed in Kubernetes 1.21.", - "markdown": "EndpointSlice has a new NodeName field guarded by the EndpointSliceNodeName feature gate.\n - EndpointSlice topology field will be deprecated in an upcoming release.\n - EndpointSlice \"IP\" address type is formally removed after being deprecated in Kubernetes 1.17.\n - The discovery.k8s.io/v1alpha1 API is deprecated and will be removed in Kubernetes 1.21. ([#96440](https://github.com/kubernetes/kubernetes/pull/96440), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps and Network]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96440", - "pr_number": 96440, - "kinds": ["api-change", "feature"], - "sigs": ["api-machinery", "apps", "network"], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "96443": { - "commit": "798eb0772003a6efcd570aad6c11c4a51c07975a", - "text": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#96443](https://github.com/kubernetes/kubernetes/pull/96443), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps]", - "author": "alaypatel07", - "author_url": "https://github.com/alaypatel07", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96443", - "pr_number": 96443, - "areas": ["test"], - "kinds": ["cleanup"], - "sigs": ["apps"] - }, - "96450": { - "commit": "38c5652aa8f4691633f074ec95aeaaefecda21d4", - "text": "Support custom tags for cloud provider managed resources", - "markdown": "Support custom tags for cloud provider managed resources ([#96450](https://github.com/kubernetes/kubernetes/pull/96450), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96450", - "pr_number": 96450, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["feature"], - "sigs": ["cloud-provider"], - "feature": true - }, - "96464": { - "commit": "c21c56a061f9775f338e627e8ba91330dc2ae133", - "text": "Fix IP fragmentation of UDP and TCP packets not supported issues on LoadBalancer rules", - "markdown": "Fix IP fragmentation of UDP and TCP packets not supported issues on LoadBalancer rules ([#96464](https://github.com/kubernetes/kubernetes/pull/96464), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96464", - "pr_number": 96464, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "96525": { - "commit": "ec734aced701ade27b2f68e8a6584c89be9c4acb", - "text": "The kube-apiserver will no longer serve APIs that should have been deleted in GA non-alpha levels. Alpha levels will continue to serve the removed APIs so that CI doesn't immediately break.", - "markdown": "The kube-apiserver will no longer serve APIs that should have been deleted in GA non-alpha levels. Alpha levels will continue to serve the removed APIs so that CI doesn't immediately break. ([#96525](https://github.com/kubernetes/kubernetes/pull/96525), [@deads2k](https://github.com/deads2k)) [SIG API Machinery]", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96525", - "pr_number": 96525, - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "96527": { - "commit": "36f571404fcb136011024b89efaa2a0d089acd5f", - "text": "API priority and fairness graduated to beta. 1.19 servers with APF turned on should not be run in a multi-server cluster with 1.20+ servers.", - "markdown": "API priority and fairness graduated to beta. 1.19 servers with APF turned on should not be run in a multi-server cluster with 1.20+ servers. ([#96527](https://github.com/kubernetes/kubernetes/pull/96527), [@adtac](https://github.com/adtac)) [SIG API Machinery and Testing]", - "author": "adtac", - "author_url": "https://github.com/adtac", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96527", - "pr_number": 96527, - "areas": ["apiserver", "test"], - "kinds": ["api-change"], - "sigs": ["api-machinery", "testing"], - "duplicate": true, - "action_required": true - }, - "96528": { - "commit": "1a4e1f6534150797a3429e6791b22ba60d366634", - "text": "Document that ServiceTopology feature is required to use `service.spec.topologyKeys`.", - "markdown": "Document that ServiceTopology feature is required to use `service.spec.topologyKeys`. ([#96528](https://github.com/kubernetes/kubernetes/pull/96528), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps]", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96528", - "pr_number": 96528, - "kinds": ["api-change", "documentation"], - "sigs": ["apps"], - "duplicate_kind": true - }, - "96533": { - "commit": "160c33a6a17b6c49fee365d7cbe2acc7f1fe2f8e", - "text": "Reduce volume name length for vsphere volumes", - "markdown": "Reduce volume name length for vsphere volumes ([#96533](https://github.com/kubernetes/kubernetes/pull/96533), [@gnufied](https://github.com/gnufied)) [SIG Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96533", - "pr_number": 96533, - "kinds": ["bug"], - "sigs": ["storage"] - }, - "96545": { - "commit": "1c2f5c3a65177dc9b7cb23538b3d5a90d31b2f27", - "text": "Update the route table tag in the route reconcile loop", - "markdown": "Update the route table tag in the route reconcile loop ([#96545](https://github.com/kubernetes/kubernetes/pull/96545), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96545", - "pr_number": 96545, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "96586": { - "commit": "b3fc8888631a43c21df159c395e560adf967be1f", - "text": "Fixes code generation for non-namespaced create subresources fake client test.", - "markdown": "Fixes code generation for non-namespaced create subresources fake client test. ([#96586](https://github.com/kubernetes/kubernetes/pull/96586), [@Doude](https://github.com/Doude)) [SIG API Machinery]", - "author": "Doude", - "author_url": "https://github.com/Doude", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96586", - "pr_number": 96586, - "areas": ["code-generation"], - "kinds": ["bug"], - "sigs": ["api-machinery"] - }, - "96627": { - "commit": "809556517611e8bb78383a077d6f326c0fb355fa", - "text": "The Conformance test \"validates that there is no conflict between pods with same hostPort but different hostIP and protocol\" now validates the connectivity to each hostPort, in addition to the functionality.", - "markdown": "The Conformance test \"validates that there is no conflict between pods with same hostPort but different hostIP and protocol\" now validates the connectivity to each hostPort, in addition to the functionality. ([#96627](https://github.com/kubernetes/kubernetes/pull/96627), [@aojea](https://github.com/aojea)) [SIG Scheduling and Testing]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96627", - "pr_number": 96627, - "areas": ["conformance", "test"], - "kinds": ["cleanup", "failing-test"], - "sigs": ["scheduling", "testing"], - "duplicate": true, - "duplicate_kind": true - }, - "96705": { - "commit": "7d72ddca6e9a4e9cfa481b137bd0546be6a16cad", - "text": "fix: resize Azure disk issue when it's in attached state", - "markdown": "Fix: resize Azure disk issue when it's in attached state ([#96705](https://github.com/kubernetes/kubernetes/pull/96705), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96705", - "pr_number": 96705, - "areas": ["cloudprovider", "provider/azure"], - "kinds": ["bug"], - "sigs": ["cloud-provider"] - }, - "96716": { - "commit": "b2ecd1b3a3192fbbe2b9e348e095326f51dc43dd", - "text": "Bump node-problem-detector version to v0.8.5 to fix OOM detection in with Linux kernels 5.1+", - "markdown": "Bump node-problem-detector version to v0.8.5 to fix OOM detection in with Linux kernels 5.1+ ([#96716](https://github.com/kubernetes/kubernetes/pull/96716), [@tosi3k](https://github.com/tosi3k)) [SIG Cloud Provider, Scalability and Testing]", - "author": "tosi3k", - "author_url": "https://github.com/tosi3k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96716", - "pr_number": 96716, - "areas": ["provider/gcp", "test"], - "kinds": ["bug"], - "sigs": ["cloud-provider", "scalability", "testing"], - "duplicate": true - }, - "96727": { - "commit": "f35df2f8411ea68891c9fa829733c497002d4b97", - "text": "Changes to timeout parameter handling in 1.20.0-beta.2 have been reverted to avoid breaking backwards compatibility with existing clients.", - "markdown": "Changes to timeout parameter handling in 1.20.0-beta.2 have been reverted to avoid breaking backwards compatibility with existing clients. ([#96727](https://github.com/kubernetes/kubernetes/pull/96727), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96727", - "pr_number": 96727, - "areas": ["apiserver", "test"], - "kinds": ["cleanup", "regression"], - "sigs": ["api-machinery", "testing"], - "duplicate": true, - "duplicate_kind": true - }, - "96742": { - "commit": "e3063233a5d8d7c221fb7aaff0a170507339a857", - "text": "Resolves an issue running Ingress conformance tests on clusters which use finalizers on Ingress objects to manage releasing load balancer resources", - "markdown": "Resolves an issue running Ingress conformance tests on clusters which use finalizers on Ingress objects to manage releasing load balancer resources ([#96742](https://github.com/kubernetes/kubernetes/pull/96742), [@spencerhance](https://github.com/spencerhance)) [SIG Network and Testing]", - "author": "spencerhance", - "author_url": "https://github.com/spencerhance", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96742", - "pr_number": 96742, - "areas": ["test"], - "kinds": ["failing-test"], - "sigs": ["network", "testing"], - "duplicate": true - }, - "96810": { - "commit": "540e41c825f71d5ac67bff97902c8e689784a474", - "text": "Resolves a regression in 1.19+ with workloads targeting deprecated beta os/arch labels getting stuck in NodeAffinity status on node startup.", - "markdown": "Resolves a regression in 1.19+ with workloads targeting deprecated beta os/arch labels getting stuck in NodeAffinity status on node startup. ([#96810](https://github.com/kubernetes/kubernetes/pull/96810), [@liggitt](https://github.com/liggitt)) [SIG Node]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96810", - "pr_number": 96810, - "areas": ["kubelet"], - "kinds": ["bug", "regression"], - "sigs": ["node"], - "duplicate_kind": true - }, - "96907": { - "commit": "98bc258bf5516b6c60860e06845b899eab29825d", - "text": "kubeadm: fix coredns migration should be triggered when there are newdefault configs during kubeadm upgrade", - "markdown": "Kubeadm: fix coredns migration should be triggered when there are newdefault configs during kubeadm upgrade ([#96907](https://github.com/kubernetes/kubernetes/pull/96907), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96907", - "pr_number": 96907, - "areas": ["kubeadm"], - "kinds": ["bug"], - "sigs": ["cluster-lifecycle"] - } -} +{ + "74363": { + "commit": "80c2f61939fb01720e6d96021cc3cd8c909bf34d", + "text": "Fix client-go prometheus metrics to correctly present the API path accessed in some environments.", + "markdown": "Fix client-go prometheus metrics to correctly present the API path accessed in some environments. ([#74363](https://github.com/kubernetes/kubernetes/pull/74363), [@aanm](https://github.com/aanm)) [SIG API Machinery]", + "author": "aanm", + "author_url": "https://github.com/aanm", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/74363", + "pr_number": 74363, + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "77398": { + "commit": "0ec66026792f57c9a7d73669edb4842addc723c4", + "text": "Kubernetes E2E test image manifest lists now contain Windows images.", + "markdown": "Kubernetes E2E test image manifest lists now contain Windows images. ([#77398](https://github.com/kubernetes/kubernetes/pull/77398), [@claudiubelu](https://github.com/claudiubelu)) [SIG Testing and Windows]", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/77398", + "pr_number": 77398, + "areas": ["test"], + "kinds": ["bug", "feature"], + "sigs": ["testing", "windows"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "78153": { + "commit": "46b5eb333850b851b44bcc11cbee06d257315fb6", + "text": "Adds `create ingress` command to `kubectl`", + "markdown": "Adds `create ingress` command to `kubectl` ([#78153](https://github.com/kubernetes/kubernetes/pull/78153), [@amimof](https://github.com/amimof)) [SIG CLI and Network]", + "author": "amimof", + "author_url": "https://github.com/amimof", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/78153", + "pr_number": 78153, + "areas": ["dependency", "kubectl"], + "kinds": ["feature"], + "sigs": ["cli", "network"], + "feature": true, + "duplicate": true + }, + "86102": { + "commit": "a27a357ba1b01b82986566da79ced2df54cc56eb", + "text": "Add support for hugepages to downward API", + "markdown": "Add support for hugepages to downward API ([#86102](https://github.com/kubernetes/kubernetes/pull/86102), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG API Machinery, Apps, CLI, Network, Node, Scheduling and Testing]", + "author": "derekwaynecarr", + "author_url": "https://github.com/derekwaynecarr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/86102", + "pr_number": 86102, + "areas": ["kubectl", "kubelet", "test"], + "kinds": ["api-change", "feature"], + "sigs": [ + "api-machinery", + "apps", + "cli", + "network", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "86506": { + "commit": "ef57a095d91458327f47b492d31ad2caff93c987", + "text": "kubectl rollout history sts/sts-name --revision=some-revision will start showing the detailed view of the sts on that specified revision", + "markdown": "Kubectl rollout history sts/sts-name --revision=some-revision will start showing the detailed view of the sts on that specified revision ([#86506](https://github.com/kubernetes/kubernetes/pull/86506), [@dineshba](https://github.com/dineshba)) [SIG CLI]", + "author": "dineshba", + "author_url": "https://github.com/dineshba", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/86506", + "pr_number": 86506, + "areas": ["kubectl"], + "kinds": ["feature"], + "sigs": ["cli"], + "feature": true + }, + "87054": { + "commit": "317540a28cf6a220b67da740ae540c41373f34e9", + "text": "The kubelet recognizes the --containerd-namespace flag to configure the namespace used by cadvisor.", + "markdown": "The kubelet recognizes the --containerd-namespace flag to configure the namespace used by cadvisor. ([#87054](https://github.com/kubernetes/kubernetes/pull/87054), [@changyaowei](https://github.com/changyaowei)) [SIG Node]", + "author": "changyaowei", + "author_url": "https://github.com/changyaowei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/87054", + "pr_number": 87054, + "areas": ["kubelet"], + "kinds": ["bug"], + "sigs": ["node"] + }, + "88412": { + "commit": "72a7f94bddc4618be4840a928f7075df2da524d7", + "text": "Adds a headless service on node-local-cache addon.", + "markdown": "Adds a headless service on node-local-cache addon. ([#88412](https://github.com/kubernetes/kubernetes/pull/88412), [@stafot](https://github.com/stafot)) [SIG Cloud Provider and Network]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/20190424-NodeLocalDNS-beta-proposal.md", + "type": "KEP" + }, + { + "description": "For whom it might needed: We also created a public Grafana dashboard that can be found [here](", + "url": "https://grafana.com/grafana/dashboards/11759) and is based on the previous [dashboard](https://grafana.com/grafana/dashboards/7279) that didn't support NodeLocalDNSCache separated monitoring.", + "type": "external" + } + ], + "author": "stafot", + "author_url": "https://github.com/stafot", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/88412", + "pr_number": 88412, + "areas": ["provider/gcp", "release-eng"], + "kinds": ["feature"], + "sigs": ["cloud-provider", "network"], + "feature": true, + "duplicate": true + }, + "88759": { + "commit": "2b4be7bb5fdf99e17829af16c1804b61adb7bcf5", + "text": "For CSI drivers, kubelet no longer creates the target_path for NodePublishVolume in accordance with the CSI spec. Kubelet also no longer checks if staging and target paths are mounts or corrupted. CSI drivers need to be idempotent and do any necessary mount verification.", + "markdown": "For CSI drivers, kubelet no longer creates the target_path for NodePublishVolume in accordance with the CSI spec. Kubelet also no longer checks if staging and target paths are mounts or corrupted. CSI drivers need to be idempotent and do any necessary mount verification. ([#88759](https://github.com/kubernetes/kubernetes/pull/88759), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/88759", + "pr_number": 88759, + "kinds": ["feature"], + "sigs": ["storage"], + "feature": true, + "action_required": true + }, + "89840": { + "commit": "cd4ee6bf9abf672c1ff9aa23b778be1d3599c432", + "text": "Added `get-users` and `delete-user` to the `kubectl config` subcommand", + "markdown": "Added `get-users` and `delete-user` to the `kubectl config` subcommand ([#89840](https://github.com/kubernetes/kubernetes/pull/89840), [@eddiezane](https://github.com/eddiezane)) [SIG CLI]", + "author": "eddiezane", + "author_url": "https://github.com/eddiezane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/89840", + "pr_number": 89840, + "areas": ["kubectl"], + "kinds": ["feature"], + "sigs": ["cli"], + "feature": true + }, + "90014": { + "commit": "d2a0b6f2b8e053e8c71e7ccfd36af4caf2ae9785", + "text": "Increase maximum IOPS of AWS EBS io1 volume to current maximum (64,000).", + "markdown": "Increase maximum IOPS of AWS EBS io1 volume to current maximum (64,000). ([#90014](https://github.com/kubernetes/kubernetes/pull/90014), [@jacobmarble](https://github.com/jacobmarble))", + "author": "jacobmarble", + "author_url": "https://github.com/jacobmarble", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/90014", + "pr_number": 90014, + "areas": ["cloudprovider"], + "kinds": ["bug"], + "sigs": ["cloud-provider", "storage"], + "duplicate": true + }, + "90333": { + "commit": "1485d462efcfc27047790639543d2cc515a27d7a", + "text": "[kubectl] Fail when local source file doesn't exist", + "markdown": "[kubectl] Fail when local source file doesn't exist ([#90333](https://github.com/kubernetes/kubernetes/pull/90333), [@bamarni](https://github.com/bamarni)) [SIG CLI]", + "author": "bamarni", + "author_url": "https://github.com/bamarni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/90333", + "pr_number": 90333, + "areas": ["kubectl"], + "kinds": ["bug"], + "sigs": ["cli"] + }, + "90439": { + "commit": "56b9a69d3991713ef4f85dec89f99ce6d722839f", + "text": "dual-stack: make nodeipam compatible with existing single-stack clusters when dual-stack feature gate become enabled by default", + "markdown": "Dual-stack: make nodeipam compatible with existing single-stack clusters when dual-stack feature gate become enabled by default ([#90439](https://github.com/kubernetes/kubernetes/pull/90439), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/90439", + "pr_number": 90439, + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "90691": { + "commit": "ec453ffb1a8c829ae5d62400a845836f708f80d0", + "text": "Introduces a metric source for HPAs which allows scaling based on container resource usage.", + "markdown": "Introduces a metric source for HPAs which allows scaling based on container resource usage. ([#90691](https://github.com/kubernetes/kubernetes/pull/90691), [@arjunrn](https://github.com/arjunrn)) [SIG API Machinery, Apps, Autoscaling and CLI]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-autoscaling/0001-container-resource-autoscaling.md:", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://github.com/kubernetes/website/pull/23523", + "type": "external" + } + ], + "author": "arjunrn", + "author_url": "https://github.com/arjunrn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/90691", + "pr_number": 90691, + "areas": ["kubectl"], + "kinds": ["api-change", "feature"], + "sigs": ["api-machinery", "apps", "autoscaling", "cli"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "90969": { + "commit": "3d52b8b5d60e1f74f4207f1d046734878297e354", + "text": "Add kubectl wait --ignore-not-found flag", + "markdown": "Add kubectl wait --ignore-not-found flag ([#90969](https://github.com/kubernetes/kubernetes/pull/90969), [@zhouya0](https://github.com/zhouya0)) [SIG CLI]", + "author": "zhouya0", + "author_url": "https://github.com/zhouya0", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/90969", + "pr_number": 90969, + "areas": ["kubectl"], + "kinds": ["bug"], + "sigs": ["cli"] + }, + "91452": { + "commit": "68e4f1ff64e01fff0eaac72a0f6b77d143043d24", + "text": "Support for Windows container images (OS Versions: 1809, 1903, 1909, 2004) was added the pause:3.4 image.", + "markdown": "Support for Windows container images (OS Versions: 1809, 1903, 1909, 2004) was added the pause:3.4 image. ([#91452](https://github.com/kubernetes/kubernetes/pull/91452), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Release and Windows]", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/91452", + "pr_number": 91452, + "kinds": ["feature"], + "sigs": ["node", "release", "windows"], + "feature": true, + "duplicate": true + }, + "91469": { + "commit": "402b94f31346f31bf24bdc11c185f2f430025b04", + "text": "Fix kubelet to properly log when a container is started. Previously, kubelet may log that container is dead and was restarted when it was actually started for the first time. This behavior only happened on pods with initContainers and regular containers.", + "markdown": "Fix kubelet to properly log when a container is started. Previously, kubelet may log that container is dead and was restarted when it was actually started for the first time. This behavior only happened on pods with initContainers and regular containers. ([#91469](https://github.com/kubernetes/kubernetes/pull/91469), [@rata](https://github.com/rata))", + "author": "rata", + "author_url": "https://github.com/rata", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/91469", + "pr_number": 91469, + "areas": ["kubelet"], + "kinds": ["cleanup"], + "sigs": ["node"] + }, + "91785": { + "commit": "b86e725694e81b48ea36b11f647f28cf70a66210", + "text": "kube-controller-manager: volume plugins can be restricted from contacting local and loopback addresses by setting `--volume-host-allow-local-loopback=false`, or from contacting specific CIDR ranges by setting `--volume-host-cidr-denylist` (for example, `--volume-host-cidr-denylist=127.0.0.1/28,feed::/16`)", + "markdown": "Kube-controller-manager: volume plugins can be restricted from contacting local and loopback addresses by setting `--volume-host-allow-local-loopback=false`, or from contacting specific CIDR ranges by setting `--volume-host-cidr-denylist` (for example, `--volume-host-cidr-denylist=127.0.0.1/28,feed::/16`) ([#91785](https://github.com/kubernetes/kubernetes/pull/91785), [@mattcary](https://github.com/mattcary)) [SIG API Machinery, Apps, Auth, CLI, Network, Node, Storage and Testing]", + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/91785", + "pr_number": 91785, + "areas": [ + "apiserver", + "dependency", + "ipvs", + "kubectl", + "kubelet", + "release-eng", + "test" + ], + "kinds": ["api-change", "bug"], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cli", + "network", + "node", + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "91921": { + "commit": "2cb951d78af9b1a78056066e8ac610c7209b7133", + "text": "The ServiceAccountIssuerDiscovery feature gate is now Beta and enabled by default.", + "markdown": "The ServiceAccountIssuerDiscovery feature gate is now Beta and enabled by default. ([#91921](https://github.com/kubernetes/kubernetes/pull/91921), [@mtaufen](https://github.com/mtaufen)) [SIG Auth]", + "author": "mtaufen", + "author_url": "https://github.com/mtaufen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/91921", + "pr_number": 91921, + "kinds": ["api-change", "feature"], + "sigs": ["auth"], + "feature": true, + "duplicate_kind": true + }, + "91931": { + "commit": "0a20321bab20a6fe3f3ef3c8e055125d705049cb", + "text": "fix func name NewCreateCreateDeploymentOptions", + "markdown": "Fix func name NewCreateCreateDeploymentOptions ([#91931](https://github.com/kubernetes/kubernetes/pull/91931), [@lixiaobing1](https://github.com/lixiaobing1)) [SIG CLI]", + "author": "lixiaobing1", + "author_url": "https://github.com/lixiaobing1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/91931", + "pr_number": 91931, + "areas": ["kubectl"], + "kinds": ["cleanup"], + "sigs": ["cli"] + }, + "91977": { + "commit": "734cdb6125829c1bb4ef6ea7314b62efa05b7342", + "text": "Introduces a new GCE specific cluster creation variable KUBE_PROXY_DISABLE. When set to true, this will skip over the creation of kube-proxy (whether the daemonset or static pod). This can be used to control the lifecycle of kube-proxy separately from the lifecycle of the nodes.", + "markdown": "Introduces a new GCE specific cluster creation variable KUBE_PROXY_DISABLE. When set to true, this will skip over the creation of kube-proxy (whether the daemonset or static pod). This can be used to control the lifecycle of kube-proxy separately from the lifecycle of the nodes. ([#91977](https://github.com/kubernetes/kubernetes/pull/91977), [@varunmar](https://github.com/varunmar)) [SIG Cloud Provider]", + "author": "varunmar", + "author_url": "https://github.com/varunmar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/91977", + "pr_number": 91977, + "areas": ["provider/gcp"], + "kinds": ["feature"], + "sigs": ["cloud-provider"], + "feature": true + }, + "92027": { + "commit": "550b83b2939f68afc9767eb3748daf679e4e0e7c", + "text": "Ceph RBD volume expansion now works even when ceph.conf was not provided.", + "markdown": "Ceph RBD volume expansion now works even when ceph.conf was not provided. ([#92027](https://github.com/kubernetes/kubernetes/pull/92027), [@juliantaylor](https://github.com/juliantaylor))", + "author": "juliantaylor", + "author_url": "https://github.com/juliantaylor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92027", + "pr_number": 92027, + "kinds": ["bug"], + "sigs": ["storage"] + }, + "92165": { + "commit": "6e95025994a571a96da17cb219b8cac21c51c362", + "text": "Gradudate the Pod Resources API to G.A\nIntroduces the pod_resources_endpoint_requests_total metric which tracks the total number of requests to the pod resources API", + "markdown": "Gradudate the Pod Resources API to G.A\n Introduces the pod_resources_endpoint_requests_total metric which tracks the total number of requests to the pod resources API ([#92165](https://github.com/kubernetes/kubernetes/pull/92165), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) [SIG Instrumentation, Node and Testing]", + "author": "RenaudWasTaken", + "author_url": "https://github.com/RenaudWasTaken", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92165", + "pr_number": 92165, + "areas": ["kubelet", "test"], + "kinds": ["feature"], + "sigs": ["instrumentation", "node", "testing"], + "feature": true, + "duplicate": true + }, + "92343": { + "commit": "5937e7eef7352921fde6324eba2db96fa32966d9", + "text": "kubectl: print error if users place flags before plugin name", + "markdown": "Kubectl: print error if users place flags before plugin name ([#92343](https://github.com/kubernetes/kubernetes/pull/92343), [@knight42](https://github.com/knight42)) [SIG CLI]", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92343", + "pr_number": 92343, + "areas": ["kubectl"], + "kinds": ["bug"], + "sigs": ["cli"] + }, + "92355": { + "commit": "73dda0af5d07c9a16b1db748d635f3e1827628e7", + "text": "Ignore root user check when windows pod starts", + "markdown": "Ignore root user check when windows pod starts ([#92355](https://github.com/kubernetes/kubernetes/pull/92355), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows]", + "author": "wawa0210", + "author_url": "https://github.com/wawa0210", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92355", + "pr_number": 92355, + "areas": ["kubelet"], + "kinds": ["bug"], + "sigs": ["node", "windows"], + "duplicate": true + }, + "92466": { + "commit": "4628c605aadb9b3bdf82b3d9e1a2d77580eefcaf", + "text": "Add node_authorizer_actions_duration_seconds metric that can be used to estimate load to node authorizer.", + "markdown": "Add node_authorizer_actions_duration_seconds metric that can be used to estimate load to node authorizer. ([#92466](https://github.com/kubernetes/kubernetes/pull/92466), [@mborsz](https://github.com/mborsz)) [SIG API Machinery, Auth and Instrumentation]", + "author": "mborsz", + "author_url": "https://github.com/mborsz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92466", + "pr_number": 92466, + "areas": ["apiserver"], + "kinds": ["feature"], + "sigs": ["api-machinery", "auth", "instrumentation"], + "feature": true, + "duplicate": true + }, + "92491": { + "commit": "aa084d4919b14f49d6c7dea716844e35a768e6f3", + "text": "A new `nofuzz` go build tag now disables gofuzz support. Release binaries enable this.", + "markdown": "A new `nofuzz` go build tag now disables gofuzz support. Release binaries enable this. ([#92491](https://github.com/kubernetes/kubernetes/pull/92491), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92491", + "pr_number": 92491, + "kinds": ["api-change", "cleanup"], + "sigs": ["api-machinery"], + "duplicate_kind": true + }, + "92492": { + "commit": "5c6d853b4434f72ac10a1d9eafe15a791cd5db31", + "text": "Warn instead of fail when creating Roles and ClusterRoles with custom verbs via kubectl", + "markdown": "Warn instead of fail when creating Roles and ClusterRoles with custom verbs via kubectl ([#92492](https://github.com/kubernetes/kubernetes/pull/92492), [@eddiezane](https://github.com/eddiezane)) [SIG CLI]", + "author": "eddiezane", + "author_url": "https://github.com/eddiezane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92492", + "pr_number": 92492, + "areas": ["kubectl"], + "kinds": ["bug"], + "sigs": ["cli"] + }, + "92507": { + "commit": "4bbf4111e2e04e61945a0cfa106f8e7ae827b901", + "text": "Added new k8s.io/component-helpers repository providing shared helper code for (core) components.", + "markdown": "Added new k8s.io/component-helpers repository providing shared helper code for (core) components. ([#92507](https://github.com/kubernetes/kubernetes/pull/92507), [@ingvagabund](https://github.com/ingvagabund)) [SIG Apps, Node, Release and Scheduling]", + "author": "ingvagabund", + "author_url": "https://github.com/ingvagabund", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92507", + "pr_number": 92507, + "areas": ["code-organization", "dependency", "kubelet", "release-eng"], + "kinds": ["feature"], + "sigs": ["apps", "node", "release", "scheduling"], + "feature": true, + "duplicate": true + }, + "92608": { + "commit": "0469db9fe792784368e113ba6578faafb116665d", + "text": "For vSphere Cloud Provider, If VM of worker node is deleted, the node will also be deleted by node controller", + "markdown": "For vSphere Cloud Provider, If VM of worker node is deleted, the node will also be deleted by node controller ([#92608](https://github.com/kubernetes/kubernetes/pull/92608), [@lubronzhan](https://github.com/lubronzhan)) [SIG Cloud Provider]", + "author": "lubronzhan", + "author_url": "https://github.com/lubronzhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92608", + "pr_number": 92608, + "areas": ["cloudprovider"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "92614": { + "commit": "48d5d204c37f946a1076dcf36d70b4844c665de1", + "text": "Fixed kubelet creating extra sandbox for pods with RestartPolicyOnFailure after all containers succeeded", + "markdown": "Fixed kubelet creating extra sandbox for pods with RestartPolicyOnFailure after all containers succeeded ([#92614](https://github.com/kubernetes/kubernetes/pull/92614), [@tnqn](https://github.com/tnqn)) [SIG Node and Testing]", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92614", + "pr_number": 92614, + "areas": ["kubelet", "test"], + "kinds": ["bug"], + "sigs": ["node", "testing"], + "duplicate": true + }, + "92632": { + "commit": "fd9828b02a786d4fa8d2add04c37e33a616d0087", + "text": "external facing API podresources is now available under k8s.io/kubelet/pkg/apis/", + "markdown": "External facing API podresources is now available under k8s.io/kubelet/pkg/apis/ ([#92632](https://github.com/kubernetes/kubernetes/pull/92632), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) [SIG Node and Testing]", + "author": "RenaudWasTaken", + "author_url": "https://github.com/RenaudWasTaken", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92632", + "pr_number": 92632, + "areas": ["code-organization", "kubelet", "test"], + "kinds": ["api-change", "feature"], + "sigs": ["node", "testing"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "92669": { + "commit": "1f756e4a375ce0fe7bd0e35f9dd45fec32df007a", + "text": "Command to start network proxy changes from 'KUBE_ENABLE_EGRESS_VIA_KONNECTIVITY_SERVICE ./cluster/kube-up.sh' to 'KUBE_ENABLE_KONNECTIVITY_SERVICE=true ./hack/kube-up.sh'", + "markdown": "Command to start network proxy changes from 'KUBE_ENABLE_EGRESS_VIA_KONNECTIVITY_SERVICE ./cluster/kube-up.sh' to 'KUBE_ENABLE_KONNECTIVITY_SERVICE=true ./hack/kube-up.sh' ([#92669](https://github.com/kubernetes/kubernetes/pull/92669), [@Jefftree](https://github.com/Jefftree)) [SIG Cloud Provider]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92669", + "pr_number": 92669, + "areas": ["provider/gcp"], + "kinds": ["feature"], + "sigs": ["cloud-provider"], + "feature": true + }, + "92743": { + "commit": "e1ab99e0d662f3d9bf89ccf48f71444dbabce37e", + "text": "Resolves non-deterministic behavior of the garbage collection controller when ownerReferences with incorrect data are encountered. Events with a reason of `OwnerRefInvalidNamespace` are recorded when namespace mismatches between child and owner objects are detected.\n- A namespaced object with an ownerReference referencing a uid of a namespaced kind which does not exist in the same namespace is now consistently treated as though that owner does not exist, and the child object is deleted.\n- A cluster-scoped object with an ownerReference referencing a uid of a namespaced kind is now consistently treated as though that owner is not resolvable, and the child object is ignored by the garbage collector.", + "markdown": "Resolves non-deterministic behavior of the garbage collection controller when ownerReferences with incorrect data are encountered. Events with a reason of `OwnerRefInvalidNamespace` are recorded when namespace mismatches between child and owner objects are detected.\n - A namespaced object with an ownerReference referencing a uid of a namespaced kind which does not exist in the same namespace is now consistently treated as though that owner does not exist, and the child object is deleted.\n - A cluster-scoped object with an ownerReference referencing a uid of a namespaced kind is now consistently treated as though that owner is not resolvable, and the child object is ignored by the garbage collector. ([#92743](https://github.com/kubernetes/kubernetes/pull/92743), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps and Testing]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92743", + "pr_number": 92743, + "areas": ["test"], + "kinds": ["bug"], + "sigs": ["api-machinery", "apps", "testing"], + "duplicate": true + }, + "92744": { + "commit": "f98d3842c2621fb693953c4d1ee78805d3d945a5", + "text": "Automatic allocation of NodePorts for services with type LoadBalancer can now be disabled by setting the (new) parameter\nService.spec.allocateLoadBalancerNodePorts=false. The default is to allocate NodePorts for services with type LoadBalancer which is the existing behavior.", + "markdown": "Automatic allocation of NodePorts for services with type LoadBalancer can now be disabled by setting the (new) parameter\n Service.spec.allocateLoadBalancerNodePorts=false. The default is to allocate NodePorts for services with type LoadBalancer which is the existing behavior. ([#92744](https://github.com/kubernetes/kubernetes/pull/92744), [@uablrek](https://github.com/uablrek)) [SIG Apps and Network]", + "author": "uablrek", + "author_url": "https://github.com/uablrek", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92744", + "pr_number": 92744, + "kinds": ["api-change", "feature"], + "sigs": ["apps", "network"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "92817": { + "commit": "88512be213159f87ed2dad07f75c02d355eadac5", + "text": "Users will see increase in time for deletion of pods and also guarantee that removal of pod from api server would mean deletion of all the resources from container runtime.", + "markdown": "Users will see increase in time for deletion of pods and also guarantee that removal of pod from api server would mean deletion of all the resources from container runtime. ([#92817](https://github.com/kubernetes/kubernetes/pull/92817), [@kmala](https://github.com/kmala)) [SIG Node]", + "author": "kmala", + "author_url": "https://github.com/kmala", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92817", + "pr_number": 92817, + "areas": ["kubelet"], + "kinds": ["bug"], + "sigs": ["node"] + }, + "92878": { + "commit": "5760cef7a4fcd95947cae6c1cd305e087b9b1879", + "text": "Decrease warning message frequency on setting volume ownership for configmap/secret.", + "markdown": "Decrease warning message frequency on setting volume ownership for configmap/secret. ([#92878](https://github.com/kubernetes/kubernetes/pull/92878), [@jvanz](https://github.com/jvanz))", + "author": "jvanz", + "author_url": "https://github.com/jvanz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92878", + "pr_number": 92878, + "kinds": ["cleanup"], + "sigs": ["instrumentation", "node", "storage"], + "duplicate": true + }, + "92967": { + "commit": "75463bda1d9103a46de127528ee7b3b96ceada54", + "text": "New flag is introduced, i.e. --topology-manager-scope=container|pod. \nThe default value is the \"container\" scope.", + "markdown": "New flag is introduced, i.e. --topology-manager-scope=container|pod. \n The default value is the \"container\" scope. ([#92967](https://github.com/kubernetes/kubernetes/pull/92967), [@cezaryzukowski](https://github.com/cezaryzukowski)) [SIG Instrumentation, Node and Testing]", + "author": "cezaryzukowski", + "author_url": "https://github.com/cezaryzukowski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92967", + "pr_number": 92967, + "areas": [ + "apiserver", + "code-generation", + "e2e-test-framework", + "kubelet", + "test" + ], + "kinds": ["api-change", "feature"], + "sigs": ["instrumentation", "node", "testing"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "92968": { + "commit": "cccd77bd3a88643bade3da407065f5fc8312f511", + "text": "Add a 'serving' and `terminating` condition to the EndpointSlice API.\n\n`serving` tracks the readiness of endpoints regardless of their terminating state. This is distinct from `ready` since `ready` is only true when pods are not terminating. \n`terminating` is true when an endpoint is terminating. For pods this is any endpoint with a deletion timestamp.", + "markdown": "Add a 'serving' and `terminating` condition to the EndpointSlice API.\n \n `serving` tracks the readiness of endpoints regardless of their terminating state. This is distinct from `ready` since `ready` is only true when pods are not terminating. \n `terminating` is true when an endpoint is terminating. For pods this is any endpoint with a deletion timestamp. ([#92968](https://github.com/kubernetes/kubernetes/pull/92968), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps and Network]", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92968", + "pr_number": 92968, + "kinds": ["api-change", "feature"], + "sigs": ["apps", "network"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "92998": { + "commit": "0446ecaa812b5ab4c907e0e946a30b0c2ff27507", + "text": "kubectl: the `generator` flag of `kubectl autoscale` has been deprecated and has no effect, it will be removed in a feature release", + "markdown": "Kubectl: the `generator` flag of `kubectl autoscale` has been deprecated and has no effect, it will be removed in a feature release ([#92998](https://github.com/kubernetes/kubernetes/pull/92998), [@SataQiu](https://github.com/SataQiu)) [SIG CLI]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92998", + "pr_number": 92998, + "areas": ["kubectl"], + "kinds": ["cleanup"], + "sigs": ["cli"] + }, + "93011": { + "commit": "4093df78eada321223e30fe620242fba6210a216", + "text": "fix: azure disk resize error if source does not exist", + "markdown": "Fix: azure disk resize error if source does not exist ([#93011](https://github.com/kubernetes/kubernetes/pull/93011), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93011", + "pr_number": 93011, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug", "cleanup"], + "sigs": ["cloud-provider"], + "duplicate_kind": true + }, + "93040": { + "commit": "bdde4fb8f517d510641cecfbb12fdd5a4fd5f380", + "text": "ipvs: ensure selected scheduler kernel modules are loaded", + "markdown": "Ipvs: ensure selected scheduler kernel modules are loaded ([#93040](https://github.com/kubernetes/kubernetes/pull/93040), [@cmluciano](https://github.com/cmluciano)) [SIG Network]", + "author": "cmluciano", + "author_url": "https://github.com/cmluciano", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93040", + "pr_number": 93040, + "areas": ["ipvs"], + "kinds": ["bug"], + "sigs": ["network"] + }, + "93066": { + "commit": "0969e666dc4050fe3a51541807b7dbadefa64963", + "text": "Add the following metrics:\n- network_plugin_operations_total\n- network_plugin_operations_errors_total", + "markdown": "Add the following metrics:\n - network_plugin_operations_total\n - network_plugin_operations_errors_total ([#93066](https://github.com/kubernetes/kubernetes/pull/93066), [@AnishShah](https://github.com/AnishShah))", + "author": "AnishShah", + "author_url": "https://github.com/AnishShah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93066", + "pr_number": 93066, + "areas": ["kubelet"], + "kinds": ["cleanup"], + "sigs": ["instrumentation", "network", "node"], + "duplicate": true + }, + "93078": { + "commit": "6e3ef0be163566c08398e1e5ff43f87accfb036b", + "text": "The status of v1beta1 CRDs without \"preserveUnknownFields:false\" now shows a violation, \"spec.preserveUnknownFields: Invalid value: true: must be false\".", + "markdown": "The status of v1beta1 CRDs without \"preserveUnknownFields:false\" now shows a violation, \"spec.preserveUnknownFields: Invalid value: true: must be false\". ([#93078](https://github.com/kubernetes/kubernetes/pull/93078), [@vareti](https://github.com/vareti))", + "author": "vareti", + "author_url": "https://github.com/vareti", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93078", + "pr_number": 93078, + "kinds": ["api-change", "bug"], + "sigs": ["api-machinery"], + "duplicate_kind": true + }, + "93108": { + "commit": "08d62502fa482fbcd939860c644847264218217b", + "text": "StreamWatcher now calls HandleCrash at appropriate sequence.", + "markdown": "StreamWatcher now calls HandleCrash at appropriate sequence. ([#93108](https://github.com/kubernetes/kubernetes/pull/93108), [@lixiaobing1](https://github.com/lixiaobing1))", + "author": "lixiaobing1", + "author_url": "https://github.com/lixiaobing1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93108", + "pr_number": 93108, + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "93130": { + "commit": "55856ed727ee4a5d6b71b7e47ee964d82d33539b", + "text": "this PR will introduce a feature gate CSIServiceAccountToken with two additional fields in `CSIDriverSpec`.", + "markdown": "This PR will introduce a feature gate CSIServiceAccountToken with two additional fields in `CSIDriverSpec`. ([#93130](https://github.com/kubernetes/kubernetes/pull/93130), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Apps, Auth, CLI, Network, Node, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/1855", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93130", + "pr_number": 93130, + "areas": [ + "apiserver", + "e2e-test-framework", + "ipvs", + "kubectl", + "kubelet", + "release-eng", + "test" + ], + "kinds": ["api-change"], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cli", + "network", + "node", + "storage", + "testing" + ], + "duplicate": true + }, + "93166": { + "commit": "24a9d07bf810c846a79444cb4ea4adee90d4a821", + "text": "Added support to kube-proxy for externalTrafficPolicy=Local setting via Direct Server Return (DSR) load balancers on Windows.", + "markdown": "Added support to kube-proxy for externalTrafficPolicy=Local setting via Direct Server Return (DSR) load balancers on Windows. ([#93166](https://github.com/kubernetes/kubernetes/pull/93166), [@elweb9858](https://github.com/elweb9858)) [SIG Network]", + "author": "elweb9858", + "author_url": "https://github.com/elweb9858", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93166", + "pr_number": 93166, + "kinds": ["bug"], + "sigs": ["network"] + }, + "93180": { + "commit": "9b46d76d5e10815957d5e845289f8e3ee7fb0ff5", + "text": "to ensure the code be strong, add unit test for GetAddressAndDialer", + "markdown": "To ensure the code be strong, add unit test for GetAddressAndDialer ([#93180](https://github.com/kubernetes/kubernetes/pull/93180), [@FreeZhang61](https://github.com/FreeZhang61)) [SIG Node]", + "author": "FreeZhang61", + "author_url": "https://github.com/FreeZhang61", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93180", + "pr_number": 93180, + "areas": ["dependency", "kubelet"], + "kinds": ["cleanup"], + "sigs": ["node"] + }, + "93201": { + "commit": "8d30a5f1364a66e11d966f9efed34e7340280f3f", + "text": "Kubemark now supports both real and hollow nodes in a single cluster.", + "markdown": "Kubemark now supports both real and hollow nodes in a single cluster. ([#93201](https://github.com/kubernetes/kubernetes/pull/93201), [@ellistarn](https://github.com/ellistarn)) [SIG Scalability]", + "author": "ellistarn", + "author_url": "https://github.com/ellistarn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93201", + "pr_number": 93201, + "kinds": ["feature"], + "sigs": ["scalability"], + "feature": true + }, + "93220": { + "commit": "c6f7fbcfbc69120934ed87c5ac701bd1890347a3", + "text": "Ignore apparmor for non-linux operating systems", + "markdown": "Ignore apparmor for non-linux operating systems ([#93220](https://github.com/kubernetes/kubernetes/pull/93220), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows]", + "author": "wawa0210", + "author_url": "https://github.com/wawa0210", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93220", + "pr_number": 93220, + "areas": ["kubelet"], + "kinds": ["bug"], + "sigs": ["node", "windows"], + "duplicate": true + }, + "93244": { + "commit": "e0a51c9e6b4881df78e046d9c6daf4e6f2a11f78", + "text": "kube-apiserver: The timeout used when making health check calls to etcd can now be configured with `--etcd-healthcheck-timeout`. The default timeout is 2 seconds, matching the previous behavior.", + "markdown": "Kube-apiserver: The timeout used when making health check calls to etcd can now be configured with `--etcd-healthcheck-timeout`. The default timeout is 2 seconds, matching the previous behavior. ([#93244](https://github.com/kubernetes/kubernetes/pull/93244), [@Sh4d1](https://github.com/Sh4d1)) [SIG API Machinery]", + "author": "Sh4d1", + "author_url": "https://github.com/Sh4d1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93244", + "pr_number": 93244, + "areas": ["apiserver"], + "kinds": ["feature"], + "sigs": ["api-machinery"], + "feature": true + }, + "93250": { + "commit": "6a11d1f8aaa7a70f93541a320408fcda2354f377", + "text": "k8s.io/apimachinery: runtime.DefaultUnstructuredConverter.FromUnstructured now handles converting integer fields to typed float values", + "markdown": "K8s.io/apimachinery: runtime.DefaultUnstructuredConverter.FromUnstructured now handles converting integer fields to typed float values ([#93250](https://github.com/kubernetes/kubernetes/pull/93250), [@liggitt](https://github.com/liggitt)) [SIG API Machinery]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93250", + "pr_number": 93250, + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "93258": { + "commit": "bf67247124363a3767190999d7795fe86edad9dc", + "text": "+ `TokenRequest` and `TokenRequestProjection` features have been promoted to GA. This feature allows generating service account tokens that are not visible in Secret objects and are tied to the lifetime of a Pod object. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection for details on configuring and using this feature. The `TokenRequest` and `TokenRequestProjection` feature gates will be removed in v1.21.\n+ kubeadm's kube-apiserver Pod manifest now includes the following flags by default \"--service-account-key-file\", \"--service-account-signing-key-file\", \"--service-account-issuer\".", + "markdown": "+ `TokenRequest` and `TokenRequestProjection` features have been promoted to GA. This feature allows generating service account tokens that are not visible in Secret objects and are tied to the lifetime of a Pod object. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection for details on configuring and using this feature. The `TokenRequest` and `TokenRequestProjection` feature gates will be removed in v1.21.\n + kubeadm's kube-apiserver Pod manifest now includes the following flags by default \"--service-account-key-file\", \"--service-account-signing-key-file\", \"--service-account-issuer\". ([#93258](https://github.com/kubernetes/kubernetes/pull/93258), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Cluster Lifecycle, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1205-bound-service-account-tokens/README.md", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93258", + "pr_number": 93258, + "areas": ["apiserver", "kubeadm", "test"], + "kinds": ["api-change"], + "sigs": [ + "api-machinery", + "auth", + "cluster-lifecycle", + "storage", + "testing" + ], + "duplicate": true + }, + "93275": { + "commit": "92ba3eb7939494f657d7e4c8be981a5ec7cfb453", + "text": "kubeadm: Add a preflight check that the control-plane node has at least 1700MB of RAM", + "markdown": "Kubeadm: Add a preflight check that the control-plane node has at least 1700MB of RAM ([#93275](https://github.com/kubernetes/kubernetes/pull/93275), [@xlgao-zju](https://github.com/xlgao-zju)) [SIG Cluster Lifecycle]", + "author": "xlgao-zju", + "author_url": "https://github.com/xlgao-zju", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93275", + "pr_number": 93275, + "areas": ["dependency", "kubeadm"], + "kinds": ["feature"], + "sigs": ["cluster-lifecycle"], + "feature": true + }, + "93311": { + "commit": "a9d1482710a4c4baf112890882f4ab3d4be158a6", + "text": "Adds a bootstrapping ClusterRole, ClusterRoleBinding and group for /metrics, /livez/*, /readyz/*, \u0026 /healthz/- endpoints.", + "markdown": "Adds a bootstrapping ClusterRole, ClusterRoleBinding and group for /metrics, /livez/*, /readyz/*, \u0026 /healthz/- endpoints. ([#93311](https://github.com/kubernetes/kubernetes/pull/93311), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Auth, Cloud Provider and Instrumentation]", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93311", + "pr_number": 93311, + "areas": ["apiserver", "provider/gcp"], + "kinds": ["cleanup"], + "sigs": ["api-machinery", "auth", "cloud-provider", "instrumentation"], + "duplicate": true + }, + "93370": { + "commit": "667d1c2c3fe7f6cece4f74dfd28983d5bdbf4208", + "text": "Users can try the cronjob controller v2 using the feature gate. This will be the default controller in future releases.", + "markdown": "Users can try the cronjob controller v2 using the feature gate. This will be the default controller in future releases. ([#93370](https://github.com/kubernetes/kubernetes/pull/93370), [@alaypatel07](https://github.com/alaypatel07)) [SIG API Machinery, Apps, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-apps/19-Graduate-CronJob-to-Stable/README.md", + "type": "KEP" + } + ], + "author": "alaypatel07", + "author_url": "https://github.com/alaypatel07", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93370", + "pr_number": 93370, + "areas": ["apiserver", "code-generation", "test"], + "kinds": ["api-change", "cleanup"], + "sigs": ["api-machinery", "apps", "auth", "testing"], + "duplicate": true, + "duplicate_kind": true + }, + "93384": { + "commit": "d9b576d61ea04dc1fc0444c2a7a187d176069ba6", + "text": "Add foreground cascading deletion to kubectl with the new `kubectl delete foreground|background|orphan` option.", + "markdown": "Add foreground cascading deletion to kubectl with the new `kubectl delete foreground|background|orphan` option. ([#93384](https://github.com/kubernetes/kubernetes/pull/93384), [@zhouya0](https://github.com/zhouya0))", + "author": "zhouya0", + "author_url": "https://github.com/zhouya0", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93384", + "pr_number": 93384, + "areas": ["kubectl", "test"], + "kinds": ["feature"], + "sigs": ["cli", "testing"], + "feature": true, + "duplicate": true + }, + "93406": { + "commit": "9631d96b04ff4a83533ff04c6827cb489fda041f", + "text": "The `/debug/api_priority_and_fairness/dump_requests` path at an apiserver will no longer return a phantom line for each exempt priority level.", + "markdown": "The `/debug/api_priority_and_fairness/dump_requests` path at an apiserver will no longer return a phantom line for each exempt priority level. ([#93406](https://github.com/kubernetes/kubernetes/pull/93406), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93406", + "pr_number": 93406, + "areas": ["apiserver"], + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "93457": { + "commit": "fe67e85bbf33298e74f099b349c80c3a5c8e2d18", + "text": "StatefulSet Controller now waits for PersistentVolumeClaim deletion before creating pods.", + "markdown": "StatefulSet Controller now waits for PersistentVolumeClaim deletion before creating pods. ([#93457](https://github.com/kubernetes/kubernetes/pull/93457), [@ymmt2005](https://github.com/ymmt2005))", + "author": "ymmt2005", + "author_url": "https://github.com/ymmt2005", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93457", + "pr_number": 93457, + "kinds": ["bug"], + "sigs": ["apps"] + }, + "93475": { + "commit": "f5a42d69c94b3f928ea3f9cff78cb1a81837544a", + "text": "Strip unnecessary security contexts on Windows", + "markdown": "Strip unnecessary security contexts on Windows ([#93475](https://github.com/kubernetes/kubernetes/pull/93475), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node, Testing and Windows]", + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93475", + "pr_number": 93475, + "areas": ["kubelet", "test"], + "kinds": ["cleanup"], + "sigs": ["node", "testing", "windows"], + "duplicate": true + }, + "93515": { + "commit": "02b5b60ecdf663acc00bafe534ce7483aaf2d782", + "text": "use NLB Subnet CIDRs instead of VPC CIDRs in Health Check SG Rules", + "markdown": "Use NLB Subnet CIDRs instead of VPC CIDRs in Health Check SG Rules ([#93515](https://github.com/kubernetes/kubernetes/pull/93515), [@t0rr3sp3dr0](https://github.com/t0rr3sp3dr0)) [SIG Cloud Provider]", + "author": "t0rr3sp3dr0", + "author_url": "https://github.com/t0rr3sp3dr0", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93515", + "pr_number": 93515, + "areas": ["cloudprovider"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "93523": { + "commit": "74b04768b6d1a087c106828f45aeed2f84fa971e", + "text": "Fix incorrectly reported verbs for kube-apiserver metrics for CRD objects", + "markdown": "Fix incorrectly reported verbs for kube-apiserver metrics for CRD objects ([#93523](https://github.com/kubernetes/kubernetes/pull/93523), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Instrumentation]", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93523", + "pr_number": 93523, + "areas": ["apiserver"], + "kinds": ["bug"], + "sigs": ["api-machinery", "instrumentation"], + "duplicate": true + }, + "93534": { + "commit": "c72b30b3b7760713477114bb0eb2c62a12908265", + "text": "Scheduling Framework: expose Run[Pre]ScorePlugins functions to PreemptionHandle which can be used in PostFilter extention point.", + "markdown": "Scheduling Framework: expose Run[Pre]ScorePlugins functions to PreemptionHandle which can be used in PostFilter extention point. ([#93534](https://github.com/kubernetes/kubernetes/pull/93534), [@everpeace](https://github.com/everpeace)) [SIG Scheduling and Testing]", + "author": "everpeace", + "author_url": "https://github.com/everpeace", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93534", + "pr_number": 93534, + "areas": ["test"], + "kinds": ["feature"], + "sigs": ["scheduling", "testing"], + "feature": true, + "duplicate": true + }, + "93548": { + "commit": "67e7d5897e49452b8a4b528b294753b2eb85dfe0", + "text": "Very large patches may now be specified to `kubectl patch` with the `--patch-file` flag instead of including them directly on the command line. The `--patch` and `--patch-file` flags are mutually exclusive.", + "markdown": "Very large patches may now be specified to `kubectl patch` with the `--patch-file` flag instead of including them directly on the command line. The `--patch` and `--patch-file` flags are mutually exclusive. ([#93548](https://github.com/kubernetes/kubernetes/pull/93548), [@smarterclayton](https://github.com/smarterclayton)) [SIG CLI]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93548", + "pr_number": 93548, + "areas": ["kubectl"], + "kinds": ["bug"], + "sigs": ["cli"] + }, + "93626": { + "commit": "a39f9dfde7d3ae32bbfb116a4ab49ff489cde03a", + "text": "Remove support for \"ci/k8s-master\" version label in kubeadm, use \"ci/latest\" instead. See kubernetes/test-infra\u0026#35;18517.", + "markdown": "Remove support for \"ci/k8s-master\" version label in kubeadm, use \"ci/latest\" instead. See kubernetes/test-infra\u0026#35;18517. ([#93626](https://github.com/kubernetes/kubernetes/pull/93626), [@vikkyomkar](https://github.com/vikkyomkar))", + "author": "vikkyomkar", + "author_url": "https://github.com/vikkyomkar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93626", + "pr_number": 93626, + "areas": ["kubeadm"], + "kinds": ["cleanup"], + "sigs": ["cluster-lifecycle"] + }, + "93692": { + "commit": "f508d741698e424d5cf9d9ef0a08cf9445cc181e", + "text": "Fixed bug where kubectl top pod output is not sorted when --sort-by and --containers flags are used together", + "markdown": "Fixed bug where kubectl top pod output is not sorted when --sort-by and --containers flags are used together ([#93692](https://github.com/kubernetes/kubernetes/pull/93692), [@brianpursley](https://github.com/brianpursley)) [SIG CLI]", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93692", + "pr_number": 93692, + "areas": ["kubectl"], + "kinds": ["bug"], + "sigs": ["cli"] + }, + "93702": { + "commit": "27df218c72c3766c4252ec38f0ffc06309f72929", + "text": "kubeadm ensures \"kubeadm reset\" does not unmount the root \"/var/lib/kubelet\" directory if it is mounted by the user.", + "markdown": "Kubeadm ensures \"kubeadm reset\" does not unmount the root \"/var/lib/kubelet\" directory if it is mounted by the user. ([#93702](https://github.com/kubernetes/kubernetes/pull/93702), [@thtanaka](https://github.com/thtanaka))", + "author": "thtanaka", + "author_url": "https://github.com/thtanaka", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93702", + "pr_number": 93702, + "areas": ["kubeadm"], + "kinds": ["bug", "regression"], + "sigs": ["cluster-lifecycle"], + "duplicate_kind": true + }, + "93710": { + "commit": "e23d83eead3b5ae57731afb0209f4a2aaa4009dd", + "text": "CSIDriver object can be deployed during volume attachment.", + "markdown": "CSIDriver object can be deployed during volume attachment. ([#93710](https://github.com/kubernetes/kubernetes/pull/93710), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps, Node, Storage and Testing]", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93710", + "pr_number": 93710, + "areas": ["kubelet", "test"], + "kinds": ["bug"], + "sigs": ["apps", "node", "storage", "testing"], + "duplicate": true + }, + "93773": { + "commit": "db10d8c942a0bbe6856dfd729c24607d22bb9e08", + "text": "Fix a concurrent map writes error in kubelet", + "markdown": "Fix a concurrent map writes error in kubelet ([#93773](https://github.com/kubernetes/kubernetes/pull/93773), [@knight42](https://github.com/knight42)) [SIG Node]", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93773", + "pr_number": 93773, + "areas": ["kubelet"], + "kinds": ["bug"], + "sigs": ["node"] + }, + "93837": { + "commit": "61490bba46ee2ad39690c682db0bee425b21798e", + "text": "Add fine grained debugging to intra-pod conformance test to troubleshoot networking issues for potentially unhealthy nodes when running conformance or sonobuoy tests.", + "markdown": "Add fine grained debugging to intra-pod conformance test to troubleshoot networking issues for potentially unhealthy nodes when running conformance or sonobuoy tests. ([#93837](https://github.com/kubernetes/kubernetes/pull/93837), [@jayunit100](https://github.com/jayunit100))", + "author": "jayunit100", + "author_url": "https://github.com/jayunit100", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93837", + "pr_number": 93837, + "areas": ["e2e-test-framework", "test"], + "kinds": ["cleanup"], + "sigs": ["network", "testing"], + "duplicate": true + }, + "93873": { + "commit": "4261200724cd0541b4ff02cc56be866b98142823", + "text": "Add a StorageVersionAPI feature gate that makes API server update storageversions before serving certain write requests. \nThis feature allows the storage migrator to manage storage migration for built-in resources. \nEnabling internal.apiserver.k8s.io/v1alpha1 API and APIServerIdentity feature gate are required to use this feature.", + "markdown": "Add a StorageVersionAPI feature gate that makes API server update storageversions before serving certain write requests. \n This feature allows the storage migrator to manage storage migration for built-in resources. \n Enabling internal.apiserver.k8s.io/v1alpha1 API and APIServerIdentity feature gate are required to use this feature. ([#93873](https://github.com/kubernetes/kubernetes/pull/93873), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery, Auth and Testing]", + "author": "roycaihw", + "author_url": "https://github.com/roycaihw", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93873", + "pr_number": 93873, + "areas": ["apiserver", "test"], + "kinds": ["feature"], + "sigs": ["api-machinery", "auth", "testing"], + "feature": true, + "duplicate": true + }, + "93901": { + "commit": "90c9f7b3e198e82a756a68ffeac978a00d606e55", + "text": "Server Side Apply now treats LabelSelector fields as atomic (meaning the entire selector is managed by a single writer and updated together), since they contain interrelated and inseparable fields that do not merge in intuitive ways.", + "markdown": "Server Side Apply now treats LabelSelector fields as atomic (meaning the entire selector is managed by a single writer and updated together), since they contain interrelated and inseparable fields that do not merge in intuitive ways. ([#93901](https://github.com/kubernetes/kubernetes/pull/93901), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Storage and Testing]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93901", + "pr_number": 93901, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "ipvs", + "kubectl", + "kubelet", + "release-eng", + "test" + ], + "kinds": ["api-change", "bug"], + "sigs": [ + "api-machinery", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "93931": { + "commit": "119c94214c8b11a9f585557bff49bef26faf88b1", + "text": "kubelet: assume that swap is disabled when `/proc/swaps` does not exist", + "markdown": "Kubelet: assume that swap is disabled when `/proc/swaps` does not exist ([#93931](https://github.com/kubernetes/kubernetes/pull/93931), [@SataQiu](https://github.com/SataQiu)) [SIG Node]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93931", + "pr_number": 93931, + "areas": ["kubelet"], + "kinds": ["bug"], + "sigs": ["node"] + }, + "93962": { + "commit": "0c233eb62156771f55b55132ca25bd8125cae8cd", + "text": "Fix a bug where loadbalancer deletion gets stuck because of missing resource group.", + "markdown": "Fix a bug where loadbalancer deletion gets stuck because of missing resource group. ([#93962](https://github.com/kubernetes/kubernetes/pull/93962), [@phiphi282](https://github.com/phiphi282))", + "author": "phiphi282", + "author_url": "https://github.com/phiphi282", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93962", + "pr_number": 93962, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "93992": { + "commit": "be1d43a097c12ad8676c9b7fe2002745125de464", + "text": "kubeadm: add the \"--cluster-name\" flag to the \"kubeadm alpha kubeconfig user\" to allow configuring the cluster name in the generated kubeconfig file", + "markdown": "Kubeadm: add the \"--cluster-name\" flag to the \"kubeadm alpha kubeconfig user\" to allow configuring the cluster name in the generated kubeconfig file ([#93992](https://github.com/kubernetes/kubernetes/pull/93992), [@prabhu43](https://github.com/prabhu43)) [SIG Cluster Lifecycle]", + "author": "prabhu43", + "author_url": "https://github.com/prabhu43", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93992", + "pr_number": 93992, + "areas": ["kubeadm"], + "kinds": ["feature"], + "sigs": ["cluster-lifecycle"], + "feature": true + }, + "94016": { + "commit": "be69ccc287cea1fcf63dbf08a640e955a96d3e9b", + "text": "kubeadm: Separate argument key/value in log msg", + "markdown": "Kubeadm: Separate argument key/value in log msg ([#94016](https://github.com/kubernetes/kubernetes/pull/94016), [@mrueg](https://github.com/mrueg)) [SIG Cluster Lifecycle]", + "author": "mrueg", + "author_url": "https://github.com/mrueg", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94016", + "pr_number": 94016, + "areas": ["kubeadm"], + "kinds": ["cleanup"], + "sigs": ["cluster-lifecycle"] + }, + "94035": { + "commit": "f588ad9c597759e45dec46b34f97824ad4323548", + "text": "Fixes the message about no auth for metrics in scheduler.", + "markdown": "Fixes the message about no auth for metrics in scheduler. ([#94035](https://github.com/kubernetes/kubernetes/pull/94035), [@zhouya0](https://github.com/zhouya0)) [SIG Scheduling]", + "author": "zhouya0", + "author_url": "https://github.com/zhouya0", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94035", + "pr_number": 94035, + "kinds": ["cleanup"], + "sigs": ["scheduling"] + }, + "94066": { + "commit": "5ee72a49cbc6665bcf71d3970614cf97d9f838a7", + "text": "kube-apiserver: added support for compressing rotated audit log files with `--audit-log-compress`", + "markdown": "Kube-apiserver: added support for compressing rotated audit log files with `--audit-log-compress` ([#94066](https://github.com/kubernetes/kubernetes/pull/94066), [@lojies](https://github.com/lojies)) [SIG API Machinery and Auth]", + "author": "lojies", + "author_url": "https://github.com/lojies", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94066", + "pr_number": 94066, + "areas": ["apiserver"], + "kinds": ["feature"], + "sigs": ["api-machinery", "auth"], + "feature": true, + "duplicate": true + }, + "94078": { + "commit": "e7420a483f294384df70a38ccbab98d5ba449bb7", + "text": "Azure ARM client: don't segfault on empty response and http error", + "markdown": "Azure ARM client: don't segfault on empty response and http error ([#94078](https://github.com/kubernetes/kubernetes/pull/94078), [@bpineau](https://github.com/bpineau)) [SIG Cloud Provider]", + "author": "bpineau", + "author_url": "https://github.com/bpineau", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94078", + "pr_number": 94078, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "94090": { + "commit": "54df1fdc9083ecc459ba60f395d755a90a2cd0b8", + "text": "The v1alpha1 PodPreset API and admission plugin has been removed with no built-in replacement. Admission webhooks can be used to modify pods on creation.", + "markdown": "The v1alpha1 PodPreset API and admission plugin has been removed with no built-in replacement. Admission webhooks can be used to modify pods on creation. ([#94090](https://github.com/kubernetes/kubernetes/pull/94090), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Apps, CLI, Cloud Provider, Scalability and Testing]", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94090", + "pr_number": 94090, + "areas": ["apiserver", "kubectl", "provider/gcp", "test"], + "kinds": ["api-change", "deprecation", "feature"], + "sigs": [ + "api-machinery", + "apps", + "cli", + "cloud-provider", + "scalability", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "94102": { + "commit": "7ffc46924ff2005132e04e09453b9b6ff3509dc5", + "text": "kubeadm: ensure the etcd data directory is created with 0700 permissions during control-plane init and join", + "markdown": "Kubeadm: ensure the etcd data directory is created with 0700 permissions during control-plane init and join ([#94102](https://github.com/kubernetes/kubernetes/pull/94102), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94102", + "pr_number": 94102, + "areas": ["kubeadm"], + "kinds": ["bug", "regression"], + "sigs": ["cluster-lifecycle"], + "duplicate_kind": true + }, + "94107": { + "commit": "163504e9ae9afa2e9096dd0606449f6afa5c7548", + "text": "kube-proxy now trims extra spaces found in loadBalancerSourceRanges to match Service validation.", + "markdown": "Kube-proxy now trims extra spaces found in loadBalancerSourceRanges to match Service validation. ([#94107](https://github.com/kubernetes/kubernetes/pull/94107), [@robscott](https://github.com/robscott)) [SIG Network]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94107", + "pr_number": 94107, + "kinds": ["bug"], + "sigs": ["network"] + }, + "94112": { + "commit": "1f708f6e6272a8f4c5b9a32cc3aea33ff79aeec1", + "text": "Fixed a bug where improper storage and comparison of endpoints led to excessive API traffic from the endpoints controller", + "markdown": "Fixed a bug where improper storage and comparison of endpoints led to excessive API traffic from the endpoints controller ([#94112](https://github.com/kubernetes/kubernetes/pull/94112), [@damemi](https://github.com/damemi)) [SIG Apps, Network and Testing]", + "author": "damemi", + "author_url": "https://github.com/damemi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94112", + "pr_number": 94112, + "areas": ["test"], + "kinds": ["bug"], + "sigs": ["apps", "network", "testing"], + "duplicate": true + }, + "94114": { + "commit": "4fd93ff852291b577e7a05c9e65e8b054674b39a", + "text": "Support [service.beta.kubernetes.io/azure-pip-ip-tags] annotations to allow customers to specify ip-tags to influence public-ip creation in Azure [Tag1=Value1, Tag2=Value2, etc.]", + "markdown": "Support [service.beta.kubernetes.io/azure-pip-ip-tags] annotations to allow customers to specify ip-tags to influence public-ip creation in Azure [Tag1=Value1, Tag2=Value2, etc.] ([#94114](https://github.com/kubernetes/kubernetes/pull/94114), [@MarcPow](https://github.com/MarcPow)) [SIG Cloud Provider]", + "author": "MarcPow", + "author_url": "https://github.com/MarcPow", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94114", + "pr_number": 94114, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["feature"], + "sigs": ["cloud-provider"], + "feature": true + }, + "94115": { + "commit": "fe3779832963d00388f6e93ac58be966f8f83868", + "text": "a bug was fixed in kubelet where exec probe timeouts were not respected. Ensure that pods relying on this behavior are updated to correctly handle probe timeouts.\n\nThis change in behavior may be unexpected for some clusters and can be disabled by turning off the ExecProbeTimeout feature gate. This gate will be locked and removed in future releases so that exec probe timeouts are always respected.", + "markdown": "A bug was fixed in kubelet where exec probe timeouts were not respected. Ensure that pods relying on this behavior are updated to correctly handle probe timeouts.\n \n This change in behavior may be unexpected for some clusters and can be disabled by turning off the ExecProbeTimeout feature gate. This gate will be locked and removed in future releases so that exec probe timeouts are always respected. ([#94115](https://github.com/kubernetes/kubernetes/pull/94115), [@andrewsykim](https://github.com/andrewsykim)) [SIG Node and Testing]", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94115", + "pr_number": 94115, + "areas": ["kubelet", "test"], + "kinds": ["bug"], + "sigs": ["node", "testing"], + "duplicate": true, + "action_required": true + }, + "94124": { + "commit": "164e9fe3a03f4121b9029d4762f95e9fa58817a2", + "text": "Add metrics for azure service operations (route and loadbalancer).", + "markdown": "Add metrics for azure service operations (route and loadbalancer). ([#94124](https://github.com/kubernetes/kubernetes/pull/94124), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider and Instrumentation]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94124", + "pr_number": 94124, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["feature"], + "sigs": ["cloud-provider", "instrumentation"], + "feature": true, + "duplicate": true + }, + "94126": { + "commit": "82475c3186b9416fd6cacc451ab054c7038078e0", + "text": "fix: use sensitiveOptions on Windows mount", + "markdown": "Fix: use sensitiveOptions on Windows mount ([#94126](https://github.com/kubernetes/kubernetes/pull/94126), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94126", + "pr_number": 94126, + "areas": ["provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider", "storage"], + "duplicate": true + }, + "94140": { + "commit": "293a53f2c082259b3ba9745cdeba14b0b6ac2bf7", + "text": "Promote SupportNodePidsLimit to GA to provide node-to-pod PID isolation.\nPromote SupportPodPidsLimit to GA to provide ability to limit PIDs per pod.", + "markdown": "Promote SupportNodePidsLimit to GA to provide node-to-pod PID isolation.\n Promote SupportPodPidsLimit to GA to provide ability to limit PIDs per pod. ([#94140](https://github.com/kubernetes/kubernetes/pull/94140), [@derekwaynecarr](https://github.com/derekwaynecarr))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/1952", + "type": "KEP" + } + ], + "author": "derekwaynecarr", + "author_url": "https://github.com/derekwaynecarr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94140", + "pr_number": 94140, + "areas": ["kubelet", "test"], + "kinds": ["feature"], + "sigs": ["node", "testing"], + "feature": true, + "duplicate": true + }, + "94180": { + "commit": "54f3b85dc73e832fbca106257c2d15c7754c081b", + "text": "Azure armclient backoff step defaults to 1 (no retry).", + "markdown": "Azure armclient backoff step defaults to 1 (no retry). ([#94180](https://github.com/kubernetes/kubernetes/pull/94180), [@feiskyer](https://github.com/feiskyer))", + "author": "feiskyer", + "author_url": "https://github.com/feiskyer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94180", + "pr_number": 94180, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "94182": { + "commit": "e077b0ffa48b1c0300a2cb25dd5d45d6fc358ade", + "text": "modify DNS-1123 error messages to indicate that RFC 1123 is not followed exactly", + "markdown": "Modify DNS-1123 error messages to indicate that RFC 1123 is not followed exactly ([#94182](https://github.com/kubernetes/kubernetes/pull/94182), [@mattfenwick](https://github.com/mattfenwick)) [SIG API Machinery, Apps, Auth, Network and Node]", + "author": "mattfenwick", + "author_url": "https://github.com/mattfenwick", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94182", + "pr_number": 94182, + "kinds": ["api-change", "cleanup"], + "sigs": ["api-machinery", "apps", "auth", "network", "node"], + "duplicate": true, + "duplicate_kind": true + }, + "94196": { + "commit": "d233111f5b46acdc521f7f0757b93938ac0b2db0", + "text": "Introduce alpha support for exec-based container registry credential provider plugins in the kubelet.", + "markdown": "Introduce alpha support for exec-based container registry credential provider plugins in the kubelet. ([#94196](https://github.com/kubernetes/kubernetes/pull/94196), [@andrewsykim](https://github.com/andrewsykim)) [SIG Node and Release]", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94196", + "pr_number": 94196, + "areas": ["kubelet", "release-eng"], + "kinds": ["api-change", "feature"], + "sigs": ["node", "release"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "94239": { + "commit": "37cf1d6aaa5c5d0dba6e545a70d91e77d730e478", + "text": "Add network rule support in Azure account creation.", + "markdown": "Add network rule support in Azure account creation. ([#94239](https://github.com/kubernetes/kubernetes/pull/94239), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94239", + "pr_number": 94239, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["feature"], + "sigs": ["cloud-provider"], + "feature": true + }, + "94241": { + "commit": "058b4d60a345138ad515e937e5a52611d30c0d73", + "text": "Update Calico to v3.15.2", + "markdown": "Update Calico to v3.15.2 ([#94241](https://github.com/kubernetes/kubernetes/pull/94241), [@lmm](https://github.com/lmm)) [SIG Cloud Provider]", + "author": "lmm", + "author_url": "https://github.com/lmm", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94241", + "pr_number": 94241, + "areas": ["provider/gcp"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "94259": { + "commit": "7f813a9d05feb14d00e6bbfe460456c0c362a465", + "text": "Update etcd client side to v3.4.13", + "markdown": "Update etcd client side to v3.4.13 ([#94259](https://github.com/kubernetes/kubernetes/pull/94259), [@jingyih](https://github.com/jingyih)) [SIG API Machinery and Cloud Provider]", + "author": "jingyih", + "author_url": "https://github.com/jingyih", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94259", + "pr_number": 94259, + "areas": ["apiserver", "cloudprovider", "dependency", "etcd"], + "kinds": ["cleanup"], + "sigs": ["api-machinery", "cloud-provider"], + "duplicate": true + }, + "94265": { + "commit": "01e9ddac809e829e9a7dededa0ef15899cf8ccef", + "text": "only update Azure data disks when attach/detach", + "markdown": "Only update Azure data disks when attach/detach ([#94265](https://github.com/kubernetes/kubernetes/pull/94265), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94265", + "pr_number": 94265, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["feature"], + "sigs": ["cloud-provider"], + "feature": true + }, + "94272": { + "commit": "a0eb9d146a8aa4adfe9040de0637aa7b23461c55", + "text": "kubelet's deprecated endpoint `metrics/resource/v1alpha1` has been removed, please adopt to `metrics/resource`.", + "markdown": "Kubelet's deprecated endpoint `metrics/resource/v1alpha1` has been removed, please adopt to `metrics/resource`. ([#94272](https://github.com/kubernetes/kubernetes/pull/94272), [@RainbowMango](https://github.com/RainbowMango)) [SIG Instrumentation and Node]", + "author": "RainbowMango", + "author_url": "https://github.com/RainbowMango", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94272", + "pr_number": 94272, + "areas": ["kubelet"], + "kinds": ["api-change", "cleanup", "deprecation"], + "sigs": ["instrumentation", "node"], + "duplicate": true, + "duplicate_kind": true + }, + "94287": { + "commit": "b49724d5fcd0d4ae6abe48f32546e99a386b6a44", + "text": "Update default etcd server version to 3.4.13", + "markdown": "Update default etcd server version to 3.4.13 ([#94287](https://github.com/kubernetes/kubernetes/pull/94287), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing]", + "author": "jingyih", + "author_url": "https://github.com/jingyih", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94287", + "pr_number": 94287, + "areas": ["e2e-test-framework", "etcd", "kubeadm", "provider/gcp", "test"], + "kinds": ["bug", "cleanup"], + "sigs": ["api-machinery", "cloud-provider", "cluster-lifecycle", "testing"], + "duplicate": true, + "duplicate_kind": true + }, + "94288": { + "commit": "282ceef2cf6aecfd2383239eadacc58c354ae4b9", + "text": "Added counter metric \"apiserver_request_self\" to count API server self-requests with labels for verb, resource, and subresource.", + "markdown": "Added counter metric \"apiserver_request_self\" to count API server self-requests with labels for verb, resource, and subresource. ([#94288](https://github.com/kubernetes/kubernetes/pull/94288), [@LogicalShark](https://github.com/LogicalShark)) [SIG API Machinery, Auth, Instrumentation and Scheduling]", + "author": "LogicalShark", + "author_url": "https://github.com/LogicalShark", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94288", + "pr_number": 94288, + "areas": ["apiserver", "dependency"], + "kinds": ["feature"], + "sigs": ["api-machinery", "auth", "instrumentation", "scheduling"], + "feature": true, + "duplicate": true + }, + "94297": { + "commit": "35e235bba7e67b2c3698094ba10db11a8419e146", + "text": "service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset is removed. All Standard load balancers will always enable tcp resets.", + "markdown": "Service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset is removed. All Standard load balancers will always enable tcp resets. ([#94297](https://github.com/kubernetes/kubernetes/pull/94297), [@MarcPow](https://github.com/MarcPow)) [SIG Cloud Provider]", + "author": "MarcPow", + "author_url": "https://github.com/MarcPow", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94297", + "pr_number": 94297, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["cleanup"], + "sigs": ["cloud-provider"] + }, + "94299": { + "commit": "c19e050aeead8abc441f9276c6677bc2f13e5a9d", + "text": "kubeadm: avoid a panic when determining if the running version of CoreDNS is supported during upgrades", + "markdown": "Kubeadm: avoid a panic when determining if the running version of CoreDNS is supported during upgrades ([#94299](https://github.com/kubernetes/kubernetes/pull/94299), [@zouyee](https://github.com/zouyee)) [SIG Cluster Lifecycle]", + "author": "zouyee", + "author_url": "https://github.com/zouyee", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94299", + "pr_number": 94299, + "areas": ["kubeadm"], + "kinds": ["bug"], + "sigs": ["cluster-lifecycle"] + }, + "94306": { + "commit": "c182a599ee3f02b4b66c6d20caaa05f9a406a10f", + "text": "Azure: fix a bug that kube-controller-manager would panic if wrong Azure VMSS name is configured", + "markdown": "Azure: fix a bug that kube-controller-manager would panic if wrong Azure VMSS name is configured ([#94306](https://github.com/kubernetes/kubernetes/pull/94306), [@knight42](https://github.com/knight42)) [SIG Cloud Provider]", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94306", + "pr_number": 94306, + "areas": ["cloudprovider"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "94307": { + "commit": "b02b84870cc1e4a8e0bdecf3c58cd3caa0d1b920", + "text": "Update cri-tools to [v1.19.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.19.0)", + "markdown": "Update cri-tools to [v1.19.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.19.0) ([#94307](https://github.com/kubernetes/kubernetes/pull/94307), [@xmudrii](https://github.com/xmudrii)) [SIG Cloud Provider]", + "author": "xmudrii", + "author_url": "https://github.com/xmudrii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94307", + "pr_number": 94307, + "areas": ["provider/gcp"], + "kinds": ["cleanup"], + "sigs": ["cloud-provider"] + }, + "94309": { + "commit": "433c3d57cca8bd59889e126df3e5e2975d530972", + "text": "`kubectl get ingress` now prefers the `networking.k8s.io/v1` over `extensions/v1beta1` (deprecated since v1.14). To explicitly request the deprecated version, use `kubectl get ingress.v1beta1.extensions`.", + "markdown": "`kubectl get ingress` now prefers the `networking.k8s.io/v1` over `extensions/v1beta1` (deprecated since v1.14). To explicitly request the deprecated version, use `kubectl get ingress.v1beta1.extensions`. ([#94309](https://github.com/kubernetes/kubernetes/pull/94309), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and CLI]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94309", + "pr_number": 94309, + "areas": ["apiserver"], + "kinds": ["cleanup"], + "sigs": ["api-machinery", "cli"], + "duplicate": true + }, + "94316": { + "commit": "fd2c584b8f39dc72c48061d14380661df1680798", + "text": "Fixed bug in reflector that couldn't recover from \"Too large resource version\" errors with API servers 1.17.0-1.18.5", + "markdown": "Fixed bug in reflector that couldn't recover from \"Too large resource version\" errors with API servers 1.17.0-1.18.5 ([#94316](https://github.com/kubernetes/kubernetes/pull/94316), [@janeczku](https://github.com/janeczku)) [SIG API Machinery]", + "author": "janeczku", + "author_url": "https://github.com/janeczku", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94316", + "pr_number": 94316, + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "94327": { + "commit": "35e20f1742db382d56081b7e5d6efd1382d15401", + "text": "kubectl create now supports creating ingress objects.", + "markdown": "Kubectl create now supports creating ingress objects. ([#94327](https://github.com/kubernetes/kubernetes/pull/94327), [@rikatz](https://github.com/rikatz)) [SIG CLI and Network]", + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94327", + "pr_number": 94327, + "areas": ["kubectl"], + "kinds": ["feature"], + "sigs": ["cli", "network"], + "feature": true, + "duplicate": true + }, + "94340": { + "commit": "5f79e91221855821efe083cbdb31291cbf9cc98e", + "text": "New Azure instance types do now have correct max data disk count information.", + "markdown": "New Azure instance types do now have correct max data disk count information. ([#94340](https://github.com/kubernetes/kubernetes/pull/94340), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Cloud Provider and Storage]", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94340", + "pr_number": 94340, + "areas": ["provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider", "storage"], + "duplicate": true + }, + "94355": { + "commit": "a69c4cb5f1d5aadd4354fc14876ba5b2828b032d", + "text": "Ensure getPrimaryInterfaceID not panic when network interfaces for Azure VMSS are null", + "markdown": "Ensure getPrimaryInterfaceID not panic when network interfaces for Azure VMSS are null ([#94355](https://github.com/kubernetes/kubernetes/pull/94355), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider]", + "author": "feiskyer", + "author_url": "https://github.com/feiskyer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94355", + "pr_number": 94355, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "94367": { + "commit": "ed6ac4e4386904b382c387e37a2a579b0d62759a", + "text": "Update CNI plugins to v0.8.7", + "markdown": "Update CNI plugins to v0.8.7 ([#94367](https://github.com/kubernetes/kubernetes/pull/94367), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Network, Node, Release and Testing]", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94367", + "pr_number": 94367, + "areas": ["dependency", "provider/gcp", "release-eng", "test"], + "kinds": ["cleanup"], + "sigs": ["cloud-provider", "network", "node", "release", "testing"], + "duplicate": true + }, + "94381": { + "commit": "7509c4eb478a3ab94ff26be2b4068da53212d538", + "text": "Unhealthy pods covered by PDBs can be successfully evicted if enough healthy pods are available.", + "markdown": "Unhealthy pods covered by PDBs can be successfully evicted if enough healthy pods are available. ([#94381](https://github.com/kubernetes/kubernetes/pull/94381), [@michaelgugino](https://github.com/michaelgugino)) [SIG Apps]", + "author": "michaelgugino", + "author_url": "https://github.com/michaelgugino", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94381", + "pr_number": 94381, + "kinds": ["bug"], + "sigs": ["apps"] + }, + "94389": { + "commit": "30a9b8b12628df6ad0faa22ac522ab8305f8538a", + "text": "Fix missing csi annotations on node during parallel csinode update.", + "markdown": "Fix missing csi annotations on node during parallel csinode update. ([#94389](https://github.com/kubernetes/kubernetes/pull/94389), [@pacoxu](https://github.com/pacoxu)) [SIG Storage]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94389", + "pr_number": 94389, + "kinds": ["bug"], + "sigs": ["storage"] + }, + "94395": { + "commit": "d5e2db896e3e1a36f22e7400be054562a529bb33", + "text": "kubeadm now makes sure the etcd manifest is regenerated upon upgrade even when no etcd version change takes place", + "markdown": "Kubeadm now makes sure the etcd manifest is regenerated upon upgrade even when no etcd version change takes place ([#94395](https://github.com/kubernetes/kubernetes/pull/94395), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle]", + "author": "rosti", + "author_url": "https://github.com/rosti", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94395", + "pr_number": 94395, + "areas": ["kubeadm"], + "kinds": ["bug"], + "sigs": ["cluster-lifecycle"] + }, + "94397": { + "commit": "f736be5721e370db8fa4445a8a3264bb3770fb6e", + "text": "Stop propagating SelfLink (deprecated in 1.16) in kube-apiserver", + "markdown": "Stop propagating SelfLink (deprecated in 1.16) in kube-apiserver ([#94397](https://github.com/kubernetes/kubernetes/pull/94397), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Testing]", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94397", + "pr_number": 94397, + "areas": ["apiserver", "test"], + "kinds": ["cleanup"], + "sigs": ["api-machinery", "testing"], + "duplicate": true + }, + "94398": { + "commit": "2c12a81cb745b4d876ad500637e1301d06497b7b", + "text": "kubeadm: make the kubeconfig files for the kube-controller-manager and kube-scheduler use the LocalAPIEndpoint instead of the ControlPlaneEndpoint. This makes kubeadm clusters more reseliant to version skew problems during immutable upgrades: https://kubernetes.io/docs/setup/release/version-skew-policy/#kube-controller-manager-kube-scheduler-and-cloud-controller-manager", + "markdown": "Kubeadm: make the kubeconfig files for the kube-controller-manager and kube-scheduler use the LocalAPIEndpoint instead of the ControlPlaneEndpoint. This makes kubeadm clusters more reseliant to version skew problems during immutable upgrades: https://kubernetes.io/docs/setup/release/version-skew-policy/#kube-controller-manager-kube-scheduler-and-cloud-controller-manager ([#94398](https://github.com/kubernetes/kubernetes/pull/94398), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94398", + "pr_number": 94398, + "areas": ["kubeadm"], + "kinds": ["bug"], + "sigs": ["cluster-lifecycle"] + }, + "94403": { + "commit": "ad97d931d90bd376c092a1a0da96525d29c31a4c", + "text": "Allow cross compilation of kubernetes on different platforms.", + "markdown": "Allow cross compilation of kubernetes on different platforms. ([#94403](https://github.com/kubernetes/kubernetes/pull/94403), [@bnrjee](https://github.com/bnrjee)) [SIG Release]", + "author": "bnrjee", + "author_url": "https://github.com/bnrjee", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94403", + "pr_number": 94403, + "kinds": ["feature"], + "sigs": ["release"], + "feature": true + }, + "94421": { + "commit": "0b92e8b16d00712594493072710f81b8d37ce623", + "text": "Fix a regression where kubeadm bails out with a fatal error when an optional version command line argument is supplied to the \"kubeadm upgrade plan\" command", + "markdown": "Fix a regression where kubeadm bails out with a fatal error when an optional version command line argument is supplied to the \"kubeadm upgrade plan\" command ([#94421](https://github.com/kubernetes/kubernetes/pull/94421), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle]", + "author": "rosti", + "author_url": "https://github.com/rosti", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94421", + "pr_number": 94421, + "areas": ["kubeadm"], + "kinds": ["bug", "regression"], + "sigs": ["cluster-lifecycle"], + "duplicate_kind": true + }, + "94443": { + "commit": "60dd999b48e7bf70886cc6875337d4d6ee614380", + "text": "Endpoint slice controller now mirrors parent's service label to its corresponding endpoint slices.", + "markdown": "Endpoint slice controller now mirrors parent's service label to its corresponding endpoint slices. ([#94443](https://github.com/kubernetes/kubernetes/pull/94443), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94443", + "pr_number": 94443, + "kinds": ["bug"], + "sigs": ["apps", "network"], + "duplicate": true + }, + "94444": { + "commit": "e3185f2cc0c81956fef3cdb36b4cae85fd4a7563", + "text": "Add feature to size memory backed volumes", + "markdown": "Add feature to size memory backed volumes ([#94444](https://github.com/kubernetes/kubernetes/pull/94444), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/1968", + "type": "KEP" + } + ], + "author": "derekwaynecarr", + "author_url": "https://github.com/derekwaynecarr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94444", + "pr_number": 94444, + "areas": ["test"], + "kinds": ["feature"], + "sigs": ["storage", "testing"], + "feature": true, + "duplicate": true + }, + "94449": { + "commit": "aed5ffd19539d4ddf8b52a4322eecc82c5b6d1d7", + "text": "Kubernetes is now built using go1.15.2\n- build: Update to k/repo-infra@v0.1.1 (supports go1.15.2)\n- build: Use go-runner:buster-v2.0.1 (built using go1.15.1)\n- bazel: Replace --features with Starlark build settings flag\n- hack/lib/util.sh: some bash cleanups\n \n - switched one spot to use kube::logging\n - make kube::util::find-binary return an error when it doesn't find\n anything so that hack scripts fail fast instead of with '' binary not\n found errors.\n - this required deleting some genfeddoc stuff. the binary no longer\n exists in k/k repo since we removed federation/, and I don't see it\n in https://github.com/kubernetes-sigs/kubefed/ either. I'm assuming\n that it's gone for good now.\n\n- bazel: output go_binary rule directly from go_binary_conditional_pure\n \n From: @mikedanese:\n Instead of aliasing. Aliases are annoying in a number of ways. This is\n specifically bugging me now because they make the action graph harder to\n analyze programmatically. By using aliases here, we would need to handle\n potentially aliased go_binary targets and dereference to the effective\n target.\n\n The comment references an issue with `pure = select(...)` which appears\n to be resolved considering this now builds.\n\n- make kube::util::find-binary not dependent on bazel-out/ structure\n\n Implement an aspect that outputs go_build_mode metadata for go binaries,\n and use that during binary selection.", + "markdown": "Kubernetes is now built using go1.15.2\n - build: Update to k/repo-infra@v0.1.1 (supports go1.15.2)\n - build: Use go-runner:buster-v2.0.1 (built using go1.15.1)\n - bazel: Replace --features with Starlark build settings flag\n - hack/lib/util.sh: some bash cleanups\n \n - switched one spot to use kube::logging\n - make kube::util::find-binary return an error when it doesn't find\n anything so that hack scripts fail fast instead of with '' binary not\n found errors.\n - this required deleting some genfeddoc stuff. the binary no longer\n exists in k/k repo since we removed federation/, and I don't see it\n in https://github.com/kubernetes-sigs/kubefed/ either. I'm assuming\n that it's gone for good now.\n \n - bazel: output go_binary rule directly from go_binary_conditional_pure\n \n From: @mikedanese:\n Instead of aliasing. Aliases are annoying in a number of ways. This is\n specifically bugging me now because they make the action graph harder to\n analyze programmatically. By using aliases here, we would need to handle\n potentially aliased go_binary targets and dereference to the effective\n target.\n \n The comment references an issue with `pure = select(...)` which appears\n to be resolved considering this now builds.\n \n - make kube::util::find-binary not dependent on bazel-out/ structure\n \n Implement an aspect that outputs go_build_mode metadata for go binaries,\n and use that during binary selection. ([#94449](https://github.com/kubernetes/kubernetes/pull/94449), [@justaugustus](https://github.com/justaugustus)) [SIG Architecture, CLI, Cluster Lifecycle, Node, Release and Testing]", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94449", + "pr_number": 94449, + "areas": [ + "conformance", + "dependency", + "kubeadm", + "kubectl", + "kubelet", + "release-eng", + "test" + ], + "kinds": ["feature"], + "sigs": [ + "architecture", + "cli", + "cluster-lifecycle", + "node", + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "94474": { + "commit": "13be1cb5717076830682281aaa6380f5fd129672", + "text": "In dual-stack clusters, kubelet will now set up both IPv4 and IPv6 iptables rules, which may\nfix some problems, eg with HostPorts.", + "markdown": "In dual-stack clusters, kubelet will now set up both IPv4 and IPv6 iptables rules, which may\n fix some problems, eg with HostPorts. ([#94474](https://github.com/kubernetes/kubernetes/pull/94474), [@danwinship](https://github.com/danwinship)) [SIG Network and Node]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94474", + "pr_number": 94474, + "areas": ["kubelet"], + "kinds": ["bug"], + "sigs": ["network", "node"], + "duplicate": true + }, + "94479": { + "commit": "0edbf2554ac47cf3ef82ebf9d6d5d4364dba1ca8", + "text": "kubeadm: make etcd pod request 100m CPU, 100Mi memory and 100Mi ephemeral_storage by default", + "markdown": "Kubeadm: make etcd pod request 100m CPU, 100Mi memory and 100Mi ephemeral_storage by default ([#94479](https://github.com/kubernetes/kubernetes/pull/94479), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle]", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94479", + "pr_number": 94479, + "areas": ["kubeadm"], + "kinds": ["feature"], + "sigs": ["cluster-lifecycle"], + "feature": true + }, + "94481": { + "commit": "3fc1bc76a95d8a6a6cd33394526f00c00a98ce07", + "text": "Fix conversions for custom metrics.", + "markdown": "Fix conversions for custom metrics. ([#94481](https://github.com/kubernetes/kubernetes/pull/94481), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Instrumentation]", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94481", + "pr_number": 94481, + "kinds": ["api-change", "bug"], + "sigs": ["api-machinery", "instrumentation"], + "duplicate": true, + "duplicate_kind": true + }, + "94489": { + "commit": "3175b59ac24782b6f4849594589675700e6ba3c0", + "text": "An issues preventing volume expand controller to annotate the PVC with `volume.kubernetes.io/storage-resizer` when the PVC StorageClass is already updated to the out-of-tree provisioner is now fixed.", + "markdown": "An issues preventing volume expand controller to annotate the PVC with `volume.kubernetes.io/storage-resizer` when the PVC StorageClass is already updated to the out-of-tree provisioner is now fixed. ([#94489](https://github.com/kubernetes/kubernetes/pull/94489), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG API Machinery, Apps and Storage]", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94489", + "pr_number": 94489, + "kinds": ["bug"], + "sigs": ["api-machinery", "apps", "storage"], + "duplicate": true + }, + "94494": { + "commit": "e6444e01ba8f14b74cb7910cfd504216b10068ed", + "text": "Port mapping now allows the same `containerPort` of different containers to different `hostPort` without naming the mapping explicitly.", + "markdown": "Port mapping now allows the same `containerPort` of different containers to different `hostPort` without naming the mapping explicitly. ([#94494](https://github.com/kubernetes/kubernetes/pull/94494), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94494", + "pr_number": 94494, + "areas": ["kubelet"], + "kinds": ["bug"], + "sigs": ["network", "node"], + "duplicate": true + }, + "94504": { + "commit": "604569482fc34d010a33339f000e75ecbbf345c6", + "text": "Kubeadm now prints warnings instead of throwing errors if the current system time is outside of the NotBefore and NotAfter bounds of a loaded certificate. ", + "markdown": "Kubeadm now prints warnings instead of throwing errors if the current system time is outside of the NotBefore and NotAfter bounds of a loaded certificate. ([#94504](https://github.com/kubernetes/kubernetes/pull/94504), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94504", + "pr_number": 94504, + "areas": ["kubeadm"], + "kinds": ["feature"], + "sigs": ["cluster-lifecycle"], + "feature": true + }, + "94506": { + "commit": "3cdfdfccc9e46858f556cc7d43abdb8966a52e45", + "text": "kubeadm: remove the CoreDNS check for known image digests when applying the addon", + "markdown": "Kubeadm: remove the CoreDNS check for known image digests when applying the addon ([#94506](https://github.com/kubernetes/kubernetes/pull/94506), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94506", + "pr_number": 94506, + "areas": ["kubeadm"], + "kinds": ["cleanup"], + "sigs": ["cluster-lifecycle"] + }, + "94508": { + "commit": "5566dc93c498c1d765a89aadb0fe815a9b004eaf", + "text": "kubelet: remove alpha warnings for CNI flags.", + "markdown": "Kubelet: remove alpha warnings for CNI flags. ([#94508](https://github.com/kubernetes/kubernetes/pull/94508), [@andrewsykim](https://github.com/andrewsykim)) [SIG Network and Node]", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94508", + "pr_number": 94508, + "areas": ["kubelet"], + "kinds": ["cleanup", "documentation"], + "sigs": ["network", "node"], + "duplicate": true, + "duplicate_kind": true + }, + "94526": { + "commit": "0f6d1ed59cf39ed8d908abb376455dcd11734aee", + "text": "Add a new `vSphere` metric: `cloudprovider_vsphere_vcenter_versions`. It's content show `vCenter` hostnames with the associated server version.", + "markdown": "Add a new `vSphere` metric: `cloudprovider_vsphere_vcenter_versions`. It's content show `vCenter` hostnames with the associated server version. ([#94526](https://github.com/kubernetes/kubernetes/pull/94526), [@Danil-Grigorev](https://github.com/Danil-Grigorev)) [SIG Cloud Provider and Instrumentation]", + "author": "Danil-Grigorev", + "author_url": "https://github.com/Danil-Grigorev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94526", + "pr_number": 94526, + "areas": ["cloudprovider"], + "kinds": ["feature"], + "sigs": ["cloud-provider", "instrumentation"], + "feature": true, + "duplicate": true + }, + "94546": { + "commit": "880344850d784e3ca7a19b454b394f34b8912204", + "text": "Configure AWS LoadBalancer health check protocol via service annotations.", + "markdown": "Configure AWS LoadBalancer health check protocol via service annotations. ([#94546](https://github.com/kubernetes/kubernetes/pull/94546), [@kishorj](https://github.com/kishorj))", + "author": "kishorj", + "author_url": "https://github.com/kishorj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94546", + "pr_number": 94546, + "areas": ["cloudprovider"], + "kinds": ["feature"], + "sigs": ["cloud-provider"], + "feature": true + }, + "94552": { + "commit": "73375fbdac6be4b308004cda49174172fa8d740b", + "text": "build/lib/release: Explicitly use '--platform' in building server images\n\nWhen we switched to go-runner for building the apiserver,\ncontroller-manager, and scheduler server components, we no longer\nreference the individual architectures in the image names, specifically\nin the 'FROM' directive of the server image Dockerfiles.\n\nAs a result, server images for non-amd64 images copy in the go-runner\namd64 binary instead of the go-runner that matches that architecture.\n\nThis commit explicitly sets the '--platform=linux/${arch}' to ensure\nwe're pulling the correct go-runner arch from the manifest list.\n\nBefore:\n`FROM ${base_image}`\n\nAfter:\n`FROM --platform=linux/${arch} ${base_image}`", + "markdown": "Build/lib/release: Explicitly use '--platform' in building server images\n \n When we switched to go-runner for building the apiserver,\n controller-manager, and scheduler server components, we no longer\n reference the individual architectures in the image names, specifically\n in the 'FROM' directive of the server image Dockerfiles.\n \n As a result, server images for non-amd64 images copy in the go-runner\n amd64 binary instead of the go-runner that matches that architecture.\n \n This commit explicitly sets the '--platform=linux/${arch}' to ensure\n we're pulling the correct go-runner arch from the manifest list.\n \n Before:\n `FROM ${base_image}`\n \n After:\n `FROM --platform=linux/${arch} ${base_image}` ([#94552](https://github.com/kubernetes/kubernetes/pull/94552), [@justaugustus](https://github.com/justaugustus)) [SIG Release]", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94552", + "pr_number": 94552, + "areas": ["dependency", "release-eng"], + "kinds": ["bug", "regression"], + "sigs": ["release"], + "duplicate_kind": true + }, + "94555": { + "commit": "5dd2676bf68e8fc5a9ed52ca9c6cba7984d44e03", + "text": "kubeadm: fix the bug that kubeadm tries to call 'docker info' even if the CRI socket was for another CR", + "markdown": "Kubeadm: fix the bug that kubeadm tries to call 'docker info' even if the CRI socket was for another CR ([#94555](https://github.com/kubernetes/kubernetes/pull/94555), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94555", + "pr_number": 94555, + "areas": ["kubeadm"], + "kinds": ["bug"], + "sigs": ["cluster-lifecycle"] + }, + "94580": { + "commit": "bcfba492ef8bd75b1cacacc25efed19b8e39f3bc", + "text": "Fix a panic in `kubectl debug` when a pod has multiple init or ephemeral containers.", + "markdown": "Fix a panic in `kubectl debug` when a pod has multiple init or ephemeral containers. ([#94580](https://github.com/kubernetes/kubernetes/pull/94580), [@kiyoshim55](https://github.com/kiyoshim55))", + "author": "kiyoshim55", + "author_url": "https://github.com/kiyoshim55", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94580", + "pr_number": 94580, + "areas": ["kubectl"], + "kinds": ["bug"], + "sigs": ["cli"] + }, + "94581": { + "commit": "b1b6464ea4a1f2e3800835c0b8b08c812b45d32d", + "text": "Lock ExternalPolicyForExternalIP to default, this feature gate will be removed in 1.22.", + "markdown": "Lock ExternalPolicyForExternalIP to default, this feature gate will be removed in 1.22. ([#94581](https://github.com/kubernetes/kubernetes/pull/94581), [@knabben](https://github.com/knabben)) [SIG Network]", + "author": "knabben", + "author_url": "https://github.com/knabben", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94581", + "pr_number": 94581, + "areas": ["ipvs"], + "kinds": ["cleanup"], + "sigs": ["network"] + }, + "94586": { + "commit": "3aa546923c1a87e728c98396c5aa3e6e82b84f46", + "text": "kubeadm: for Docker as the container runtime, make the \"kubeadm reset\" command stop containers before removing them", + "markdown": "Kubeadm: for Docker as the container runtime, make the \"kubeadm reset\" command stop containers before removing them ([#94586](https://github.com/kubernetes/kubernetes/pull/94586), [@BedivereZero](https://github.com/BedivereZero)) [SIG Cluster Lifecycle]", + "author": "BedivereZero", + "author_url": "https://github.com/BedivereZero", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94586", + "pr_number": 94586, + "areas": ["kubeadm"], + "kinds": ["bug"], + "sigs": ["cluster-lifecycle"] + }, + "94603": { + "commit": "d39214ade1d60cb7120957a4dcff13fed82c01d5", + "text": "Migrate scheduler, controller-manager and cloud-controller-manager to use LeaseLock", + "markdown": "Migrate scheduler, controller-manager and cloud-controller-manager to use LeaseLock ([#94603](https://github.com/kubernetes/kubernetes/pull/94603), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery, Apps, Cloud Provider and Scheduling]", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94603", + "pr_number": 94603, + "kinds": ["api-change", "cleanup"], + "sigs": ["api-machinery", "apps", "cloud-provider", "scheduling"], + "duplicate": true, + "duplicate_kind": true + }, + "94624": { + "commit": "f653e6cf92a2dc875c5c3437679340be76d25734", + "text": "Docker support in the kubelet is now deprecated and will be removed in a future release. The kubelet uses a module called \"dockershim\" which implements CRI support for Docker and it has seen maintenance issues in the Kubernetes community. We encourage you to evaluate moving to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available.", + "markdown": "Docker support in the kubelet is now deprecated and will be removed in a future release. The kubelet uses a module called \"dockershim\" which implements CRI support for Docker and it has seen maintenance issues in the Kubernetes community. We encourage you to evaluate moving to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available. ([#94624](https://github.com/kubernetes/kubernetes/pull/94624), [@dims](https://github.com/dims)) [SIG Node]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94624", + "pr_number": 94624, + "areas": ["kubelet"], + "kinds": ["cleanup", "deprecation"], + "sigs": ["node"], + "duplicate_kind": true, + "action_required": true + }, + "94663": { + "commit": "1cd2ed816a5c22a621c5ea59b906834c7f145301", + "text": "Print go stack traces at -v=4 and not -v=2", + "markdown": "Print go stack traces at -v=4 and not -v=2 ([#94663](https://github.com/kubernetes/kubernetes/pull/94663), [@soltysh](https://github.com/soltysh)) [SIG CLI]", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94663", + "pr_number": 94663, + "areas": ["kubectl"], + "kinds": ["bug", "cleanup", "regression"], + "sigs": ["cli"], + "duplicate_kind": true + }, + "94666": { + "commit": "2d8fbd61afe9e2bf207be88320fd9c3001885a96", + "text": "Do not fail sorting empty elements.", + "markdown": "Do not fail sorting empty elements. ([#94666](https://github.com/kubernetes/kubernetes/pull/94666), [@soltysh](https://github.com/soltysh)) [SIG CLI]", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94666", + "pr_number": 94666, + "areas": ["kubectl"], + "kinds": ["bug"], + "sigs": ["cli"] + }, + "94668": { + "commit": "3ba141173cc3b272c6dafee7cbe42af7e4134d6f", + "text": "kubeadm: remove the deprecated \"kubeadm alpha kubelet config enable-dynamic\" command. To continue using the feature please defer to the guide for \"Dynamic Kubelet Configuration\" at k8s.io. This change also removes the parent command \"kubeadm alpha kubelet\" as there are no more sub-commands under it for the time being.", + "markdown": "Kubeadm: remove the deprecated \"kubeadm alpha kubelet config enable-dynamic\" command. To continue using the feature please defer to the guide for \"Dynamic Kubelet Configuration\" at k8s.io. This change also removes the parent command \"kubeadm alpha kubelet\" as there are no more sub-commands under it for the time being. ([#94668](https://github.com/kubernetes/kubernetes/pull/94668), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94668", + "pr_number": 94668, + "areas": ["kubeadm"], + "kinds": ["cleanup", "deprecation"], + "sigs": ["cluster-lifecycle"], + "duplicate_kind": true + }, + "94685": { + "commit": "def8fe3b4ee38c2d13299978abdf3ceb6eb6e190", + "text": "Fixed a bug that prevents the use of ephemeral containers in the presence of a validating admission webhook.", + "markdown": "Fixed a bug that prevents the use of ephemeral containers in the presence of a validating admission webhook. ([#94685](https://github.com/kubernetes/kubernetes/pull/94685), [@verb](https://github.com/verb)) [SIG Node and Testing]", + "author": "verb", + "author_url": "https://github.com/verb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94685", + "pr_number": 94685, + "areas": ["test"], + "kinds": ["bug"], + "sigs": ["node", "testing"], + "duplicate": true + }, + "94687": { + "commit": "a33f6b44e936d2b63e7c9a72c4d6b8bb40019457", + "text": "Require feature flag CustomCPUCFSQuotaPeriod if setting a non-default cpuCFSQuotaPeriod in kubelet config.", + "markdown": "Require feature flag CustomCPUCFSQuotaPeriod if setting a non-default cpuCFSQuotaPeriod in kubelet config. ([#94687](https://github.com/kubernetes/kubernetes/pull/94687), [@karan](https://github.com/karan)) [SIG Node]", + "author": "karan", + "author_url": "https://github.com/karan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94687", + "pr_number": 94687, + "areas": ["kubelet"], + "kinds": ["bug"], + "sigs": ["node"] + }, + "94728": { + "commit": "28fc772d3609694aff8c0704a39185227c7ae939", + "text": "Fix regression on `kubectl portforward` when TCP and UCP services were configured on the same port.", + "markdown": "Fix regression on `kubectl portforward` when TCP and UCP services were configured on the same port. ([#94728](https://github.com/kubernetes/kubernetes/pull/94728), [@amorenoz](https://github.com/amorenoz))", + "author": "amorenoz", + "author_url": "https://github.com/amorenoz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94728", + "pr_number": 94728, + "areas": ["kubectl"], + "kinds": ["bug", "regression"], + "sigs": ["cli"], + "duplicate_kind": true + }, + "94730": { + "commit": "97e4059092d550f417ac970a744a30b7aaccb05e", + "text": "Recreate EndpointSlices on rapid Service creation.", + "markdown": "Recreate EndpointSlices on rapid Service creation. ([#94730](https://github.com/kubernetes/kubernetes/pull/94730), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94730", + "pr_number": 94730, + "areas": ["test"], + "kinds": ["bug"], + "sigs": ["apps", "network", "testing"], + "duplicate": true + }, + "94733": { + "commit": "a34fd1c65f54e4afa8d007ba8823f7a75a5b0e20", + "text": "base-images: Update to debian-iptables:buster-v1.3.0\n- Uses iptables 1.8.5\n- base-images: Update to debian-base:buster-v1.2.0\n- cluster/images/etcd: Build etcd:3.4.13-1 image\n - Uses debian-base:buster-v1.2.0", + "markdown": "Base-images: Update to debian-iptables:buster-v1.3.0\n - Uses iptables 1.8.5\n - base-images: Update to debian-base:buster-v1.2.0\n - cluster/images/etcd: Build etcd:3.4.13-1 image\n - Uses debian-base:buster-v1.2.0 ([#94733](https://github.com/kubernetes/kubernetes/pull/94733), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Release and Testing]", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94733", + "pr_number": 94733, + "areas": ["dependency", "release-eng", "test"], + "kinds": ["cleanup"], + "sigs": ["api-machinery", "release", "testing"], + "duplicate": true + }, + "94751": { + "commit": "3dc6f74d04e0bb0d02c77a9508f2809bf3ab6be1", + "text": "Fix race condition on timeCache locks.", + "markdown": "Fix race condition on timeCache locks. ([#94751](https://github.com/kubernetes/kubernetes/pull/94751), [@auxten](https://github.com/auxten))", + "author": "auxten", + "author_url": "https://github.com/auxten", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94751", + "pr_number": 94751, + "areas": ["kubelet"], + "kinds": ["bug"], + "sigs": ["node"] + }, + "94765": { + "commit": "218a2b078b7289b4ba31664cbfceb917999d01af", + "text": "kubeadm: add the \"--kubeconfig\" flag to the \"kubeadm init phase upload-certs\" command to allow users to pass a custom location for a kubeconfig file.", + "markdown": "Kubeadm: add the \"--kubeconfig\" flag to the \"kubeadm init phase upload-certs\" command to allow users to pass a custom location for a kubeconfig file. ([#94765](https://github.com/kubernetes/kubernetes/pull/94765), [@zhanw15](https://github.com/zhanw15)) [SIG Cluster Lifecycle]", + "author": "zhanw15", + "author_url": "https://github.com/zhanw15", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94765", + "pr_number": 94765, + "areas": ["kubeadm"], + "kinds": ["feature"], + "sigs": ["cluster-lifecycle"], + "feature": true + }, + "94773": { + "commit": "9fdbf1cf89809763aa7b405a7e641d37f45d2e21", + "text": "Fix etcd_object_counts metric reported by kube-apiserver", + "markdown": "Fix etcd_object_counts metric reported by kube-apiserver ([#94773](https://github.com/kubernetes/kubernetes/pull/94773), [@tkashem](https://github.com/tkashem)) [SIG API Machinery]", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94773", + "pr_number": 94773, + "areas": ["apiserver"], + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "94807": { + "commit": "ea5ca74195cbbeb4acefac966cf50edfc5ce1760", + "text": "WinOverlay feature graduated to beta", + "markdown": "WinOverlay feature graduated to beta ([#94807](https://github.com/kubernetes/kubernetes/pull/94807), [@ksubrmnn](https://github.com/ksubrmnn)) [SIG Windows]", + "author": "ksubrmnn", + "author_url": "https://github.com/ksubrmnn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94807", + "pr_number": 94807, + "kinds": ["api-change", "feature"], + "sigs": ["windows"], + "feature": true, + "duplicate_kind": true + }, + "94814": { + "commit": "bd95fb101dd83cfca9d95e55b2f0d29720016e51", + "text": "Fewer candidates are enumerated for preemption to improve performance in large clusters.", + "markdown": "Fewer candidates are enumerated for preemption to improve performance in large clusters. ([#94814](https://github.com/kubernetes/kubernetes/pull/94814), [@adtac](https://github.com/adtac))", + "author": "adtac", + "author_url": "https://github.com/adtac", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94814", + "pr_number": 94814, + "kinds": ["api-change", "feature"], + "sigs": ["scheduling"], + "feature": true, + "duplicate_kind": true + }, + "94816": { + "commit": "f682c4f142c456cc132c952537e9466fc821b47b", + "text": "kubeadm: relax the validation of kubeconfig server URLs. Allow the user to define custom kubeconfig server URLs without erroring out during validation of existing kubeconfig files (e.g. when using external CA mode).", + "markdown": "Kubeadm: relax the validation of kubeconfig server URLs. Allow the user to define custom kubeconfig server URLs without erroring out during validation of existing kubeconfig files (e.g. when using external CA mode). ([#94816](https://github.com/kubernetes/kubernetes/pull/94816), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94816", + "pr_number": 94816, + "areas": ["kubeadm"], + "kinds": ["regression"], + "sigs": ["cluster-lifecycle"] + }, + "94834": { + "commit": "6c4bae3d9b28e445eea6e187eb7b3442dc03447f", + "text": "Fixes an issue proxying to ipv6 pods without specifying a port", + "markdown": "Fixes an issue proxying to ipv6 pods without specifying a port ([#94834](https://github.com/kubernetes/kubernetes/pull/94834), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Network]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94834", + "pr_number": 94834, + "kinds": ["bug"], + "sigs": ["api-machinery", "network"], + "duplicate": true + }, + "94853": { + "commit": "57e9a41ae34433c82cacad400319d748e2d4f051", + "text": "fix azure file migration panic", + "markdown": "Fix azure file migration panic ([#94853](https://github.com/kubernetes/kubernetes/pull/94853), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94853", + "pr_number": 94853, + "areas": ["provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "94866": { + "commit": "cd21a1240a5f07e9b6c5f48e72cfd354b5183d34", + "text": "A new set of alpha metrics are reported by the Kubernetes scheduler under the `/metrics/resources` endpoint that allow administrators to easily see the resource consumption (requests and limits for all resources on the pods) and compare it to actual pod usage or node capacity.", + "markdown": "A new set of alpha metrics are reported by the Kubernetes scheduler under the `/metrics/resources` endpoint that allow administrators to easily see the resource consumption (requests and limits for all resources on the pods) and compare it to actual pod usage or node capacity. ([#94866](https://github.com/kubernetes/kubernetes/pull/94866), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Instrumentation, Node and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/1916", + "type": "KEP" + } + ], + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94866", + "pr_number": 94866, + "areas": ["kubelet"], + "kinds": ["feature"], + "sigs": ["api-machinery", "instrumentation", "node", "scheduling"], + "feature": true, + "duplicate": true + }, + "94869": { + "commit": "4304f4bdbd9f67ecc0311a645a89141cff05dd18", + "text": "kubeadm: remove the deprecated --kubelet-config flag for the command \"kubeadm upgrade node\"", + "markdown": "Kubeadm: remove the deprecated --kubelet-config flag for the command \"kubeadm upgrade node\" ([#94869](https://github.com/kubernetes/kubernetes/pull/94869), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94869", + "pr_number": 94869, + "areas": ["kubeadm"], + "kinds": ["deprecation"], + "sigs": ["cluster-lifecycle"] + }, + "94871": { + "commit": "770eb2c4a0f3b9f4e3cf1aa3024a5aa29e2ac0a8", + "text": "The deprecated flag --experimental-kustomize is now removed from kubeadm commands. Use --experimental-patches instead, which was introduced in 1.19. Migration infromation available in --help description for --exprimental-patches.", + "markdown": "The deprecated flag --experimental-kustomize is now removed from kubeadm commands. Use --experimental-patches instead, which was introduced in 1.19. Migration infromation available in --help description for --exprimental-patches. ([#94871](https://github.com/kubernetes/kubernetes/pull/94871), [@neolit123](https://github.com/neolit123))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/1739-customization-with-patches", + "type": "KEP" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94871", + "pr_number": 94871, + "areas": ["dependency", "kubeadm"], + "kinds": ["deprecation"], + "sigs": ["cluster-lifecycle"], + "action_required": true + }, + "94873": { + "commit": "b27ecb2c7054b5875b42ac36ef433911855219e8", + "text": "Fix the `cloudprovider_azure_api_request_duration_seconds` metric buckets to correctly capture the latency metrics. Previously, the majority of the calls would fall in the \"+Inf\" bucket.", + "markdown": "Fix the `cloudprovider_azure_api_request_duration_seconds` metric buckets to correctly capture the latency metrics. Previously, the majority of the calls would fall in the \"+Inf\" bucket. ([#94873](https://github.com/kubernetes/kubernetes/pull/94873), [@marwanad](https://github.com/marwanad)) [SIG Cloud Provider and Instrumentation]", + "author": "marwanad", + "author_url": "https://github.com/marwanad", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94873", + "pr_number": 94873, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider", "instrumentation"], + "duplicate": true + }, + "94879": { + "commit": "9f328540990bcb96a6f0084a8e5065971c2734b6", + "text": "kubeadm: make the command \"kubeadm alpha kubeconfig user\" accept a \"--config\" flag and remove the following flags:\n- apiserver-advertise-address / apiserver-bind-port: use either localAPIEndpoint from InitConfiguration or controlPlaneEndpoint from ClusterConfiguration.\n- cluster-name: use clusterName from ClusterConfiguration\n- cert-dir: use certificatesDir from ClusterConfiguration", + "markdown": "Kubeadm: make the command \"kubeadm alpha kubeconfig user\" accept a \"--config\" flag and remove the following flags:\n - apiserver-advertise-address / apiserver-bind-port: use either localAPIEndpoint from InitConfiguration or controlPlaneEndpoint from ClusterConfiguration.\n - cluster-name: use clusterName from ClusterConfiguration\n - cert-dir: use certificatesDir from ClusterConfiguration ([#94879](https://github.com/kubernetes/kubernetes/pull/94879), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle]", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94879", + "pr_number": 94879, + "areas": ["kubeadm"], + "kinds": ["feature"], + "sigs": ["cluster-lifecycle"], + "feature": true + }, + "94884": { + "commit": "18782e999669efa4396cb3ddcb8c84412c690026", + "text": "Removes deprecated scheduler metrics DeprecatedSchedulingDuration, DeprecatedSchedulingAlgorithmPredicateEvaluationSecondsDuration, DeprecatedSchedulingAlgorithmPriorityEvaluationSecondsDuration", + "markdown": "Removes deprecated scheduler metrics DeprecatedSchedulingDuration, DeprecatedSchedulingAlgorithmPredicateEvaluationSecondsDuration, DeprecatedSchedulingAlgorithmPriorityEvaluationSecondsDuration ([#94884](https://github.com/kubernetes/kubernetes/pull/94884), [@arghya88](https://github.com/arghya88)) [SIG Instrumentation and Scheduling]", + "author": "arghya88", + "author_url": "https://github.com/arghya88", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94884", + "pr_number": 94884, + "kinds": ["deprecation", "feature"], + "sigs": ["instrumentation", "scheduling"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "94885": { + "commit": "2cec7c61e4155c96a7cc51e2dc51507b0feed6df", + "text": "fix: detach azure disk broken on Azure Stack", + "markdown": "Fix: detach azure disk broken on Azure Stack ([#94885](https://github.com/kubernetes/kubernetes/pull/94885), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94885", + "pr_number": 94885, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "94888": { + "commit": "9983a521149a0de02a052658a9d3665ff7b27708", + "text": "Fix kubectl SchemaError on CRDs with schema using x-kubernetes-preserve-unknown-fields on array types.", + "markdown": "Fix kubectl SchemaError on CRDs with schema using x-kubernetes-preserve-unknown-fields on array types. ([#94888](https://github.com/kubernetes/kubernetes/pull/94888), [@sttts](https://github.com/sttts)) [SIG API Machinery]", + "author": "sttts", + "author_url": "https://github.com/sttts", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94888", + "pr_number": 94888, + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "94896": { + "commit": "1ebf64d343ed6ec008d26a01aeebe9dab5aecc0c", + "text": "Ephemeral containers now apply the same API defaults as initContainers and containers", + "markdown": "Ephemeral containers now apply the same API defaults as initContainers and containers ([#94896](https://github.com/kubernetes/kubernetes/pull/94896), [@wawa0210](https://github.com/wawa0210)) [SIG Apps and CLI]", + "author": "wawa0210", + "author_url": "https://github.com/wawa0210", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94896", + "pr_number": 94896, + "areas": ["kubectl"], + "kinds": ["bug", "feature"], + "sigs": ["apps", "cli"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "94903": { + "commit": "f5a0250800309017e667e82067d704b6ed28513a", + "text": "Both apiserver_request_duration_seconds metrics and RequestReceivedTimestamp fields of an audit event now take into account the time a request spends in the apiserver request filters.", + "markdown": "Both apiserver_request_duration_seconds metrics and RequestReceivedTimestamp fields of an audit event now take into account the time a request spends in the apiserver request filters. ([#94903](https://github.com/kubernetes/kubernetes/pull/94903), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94903", + "pr_number": 94903, + "areas": ["apiserver"], + "kinds": ["bug"], + "sigs": ["api-machinery", "auth", "instrumentation"], + "duplicate": true + }, + "94911": { + "commit": "e92f8c8457e9d86b9c11fd94bd8e603ae71befb7", + "text": "Enhance log information of verifyRunAsNonRoot, add pod, container information", + "markdown": "Enhance log information of verifyRunAsNonRoot, add pod, container information ([#94911](https://github.com/kubernetes/kubernetes/pull/94911), [@wawa0210](https://github.com/wawa0210)) [SIG Node]", + "author": "wawa0210", + "author_url": "https://github.com/wawa0210", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94911", + "pr_number": 94911, + "areas": ["kubelet"], + "kinds": ["cleanup"], + "sigs": ["node"] + }, + "94916": { + "commit": "4ca119f521bf6e3bf2af2d8ca7e0010c72b39e83", + "text": "Change the mount way from systemd to normal mount except ceph and glusterfs intree-volume.", + "markdown": "Change the mount way from systemd to normal mount except ceph and glusterfs intree-volume. ([#94916](https://github.com/kubernetes/kubernetes/pull/94916), [@smileusd](https://github.com/smileusd)) [SIG Apps, Cloud Provider, Network, Node, Storage and Testing]", + "author": "smileusd", + "author_url": "https://github.com/smileusd", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94916", + "pr_number": 94916, + "areas": ["cloudprovider", "kubelet", "test"], + "kinds": ["bug"], + "sigs": ["apps", "cloud-provider", "network", "node", "storage", "testing"], + "duplicate": true + }, + "94938": { + "commit": "7a2812ca6087e62d0c9b6dde050065fe2f665a0e", + "text": "kubeadm: graduate the \"kubeadm alpha certs\" command to a parent command \"kubeadm certs\". The command \"kubeadm alpha certs\" is deprecated and will be removed in a future release. Please migrate.", + "markdown": "Kubeadm: graduate the \"kubeadm alpha certs\" command to a parent command \"kubeadm certs\". The command \"kubeadm alpha certs\" is deprecated and will be removed in a future release. Please migrate. ([#94938](https://github.com/kubernetes/kubernetes/pull/94938), [@yagonobre](https://github.com/yagonobre)) [SIG Cluster Lifecycle]", + "author": "yagonobre", + "author_url": "https://github.com/yagonobre", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94938", + "pr_number": 94938, + "areas": ["kubeadm"], + "kinds": ["deprecation", "feature"], + "sigs": ["cluster-lifecycle"], + "feature": true, + "duplicate_kind": true, + "action_required": true + }, + "94985": { + "commit": "2318a13228dfaadd2de4669c8ce3ffb126ed3958", + "text": "Fixed a bug causing incorrect formatting of `kubectl describe ingress`.", + "markdown": "Fixed a bug causing incorrect formatting of `kubectl describe ingress`. ([#94985](https://github.com/kubernetes/kubernetes/pull/94985), [@howardjohn](https://github.com/howardjohn)) [SIG CLI and Network]", + "author": "howardjohn", + "author_url": "https://github.com/howardjohn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94985", + "pr_number": 94985, + "areas": ["kubectl"], + "kinds": ["bug"], + "sigs": ["cli", "network"], + "duplicate": true + }, + "94988": { + "commit": "db9f1e91d977c45fe7df8e1e1bd415a3292995e1", + "text": "kubeadm now warns (instead of error out) on missing \"ca.key\" files for root CA, front-proxy CA and etcd CA, during \"kubeadm join --control-plane\" if the user has provided all certificates, keys and kubeconfig files which require signing with the given CA keys.", + "markdown": "Kubeadm now warns (instead of error out) on missing \"ca.key\" files for root CA, front-proxy CA and etcd CA, during \"kubeadm join --control-plane\" if the user has provided all certificates, keys and kubeconfig files which require signing with the given CA keys. ([#94988](https://github.com/kubernetes/kubernetes/pull/94988), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94988", + "pr_number": 94988, + "areas": ["kubeadm"], + "kinds": ["bug"], + "sigs": ["cluster-lifecycle"] + }, + "94991": { + "commit": "24cfb410f024e8c1fbf75d7b47c252c20c8bd6ba", + "text": "Azure: Support multiple services sharing one IP address", + "markdown": "Azure: Support multiple services sharing one IP address ([#94991](https://github.com/kubernetes/kubernetes/pull/94991), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94991", + "pr_number": 94991, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["feature"], + "sigs": ["cloud-provider"], + "feature": true + }, + "95001": { + "commit": "44cd4fcedccbf35c2b674f9d53faa6fc3230b8fa", + "text": "scheduler alpha metrics binding_duration_seconds and scheduling_algorithm_preemption_evaluation_seconds are deprecated, Both of those metrics are now covered as part of framework_extension_point_duration_seconds, the former as a PostFilter the latter and a Bind plugin. The plan is to remove both in 1.21", + "markdown": "Scheduler alpha metrics binding_duration_seconds and scheduling_algorithm_preemption_evaluation_seconds are deprecated, Both of those metrics are now covered as part of framework_extension_point_duration_seconds, the former as a PostFilter the latter and a Bind plugin. The plan is to remove both in 1.21 ([#95001](https://github.com/kubernetes/kubernetes/pull/95001), [@arghya88](https://github.com/arghya88)) [SIG Instrumentation and Scheduling]", + "author": "arghya88", + "author_url": "https://github.com/arghya88", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95001", + "pr_number": 95001, + "kinds": ["deprecation", "feature"], + "sigs": ["instrumentation", "scheduling"], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "95002": { + "commit": "40ef0ad6e938c8b5bf827e6dbce68f1ad2b25900", + "text": "A new metric `requestAbortsTotal` has been introduced that counts aborted requests for each `group`, `version`, `verb`, `resource`, `subresource` and `scope`.", + "markdown": "A new metric `requestAbortsTotal` has been introduced that counts aborted requests for each `group`, `version`, `verb`, `resource`, `subresource` and `scope`. ([#95002](https://github.com/kubernetes/kubernetes/pull/95002), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, Cloud Provider, Instrumentation and Scheduling]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95002", + "pr_number": 95002, + "areas": ["apiserver"], + "kinds": ["cleanup"], + "sigs": [ + "api-machinery", + "cloud-provider", + "instrumentation", + "scheduling" + ], + "duplicate": true + }, + "95012": { + "commit": "5549a0d9bb1bc9d285487412e5440ee8a384e06a", + "text": "AdmissionReview objects sent for the creation of Namespace API objects now populate the `namespace` attribute consistently (previously the `namespace` attribute was empty for Namespace creation via POST requests, and populated for Namespace creation via server-side-apply PATCH requests)", + "markdown": "AdmissionReview objects sent for the creation of Namespace API objects now populate the `namespace` attribute consistently (previously the `namespace` attribute was empty for Namespace creation via POST requests, and populated for Namespace creation via server-side-apply PATCH requests) ([#95012](https://github.com/kubernetes/kubernetes/pull/95012), [@nodo](https://github.com/nodo)) [SIG API Machinery and Testing]", + "author": "nodo", + "author_url": "https://github.com/nodo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95012", + "pr_number": 95012, + "areas": ["apiserver", "test"], + "kinds": ["cleanup"], + "sigs": ["api-machinery", "testing"], + "duplicate": true + }, + "95048": { + "commit": "78ece5411a83029ae32bb877c05dfb93c532b24a", + "text": "New parameter `defaultingType` for `PodTopologySpread` plugin allows to use k8s defined or user provided default constraints", + "markdown": "New parameter `defaultingType` for `PodTopologySpread` plugin allows to use k8s defined or user provided default constraints ([#95048](https://github.com/kubernetes/kubernetes/pull/95048), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://git.k8s.io/enhancements/keps/sig-scheduling/1258-default-pod-topology-spread", + "type": "external" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#cluster-level-default-constraints", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95048", + "pr_number": 95048, + "kinds": ["api-change", "feature"], + "sigs": ["scheduling"], + "feature": true, + "duplicate_kind": true + }, + "95069": { + "commit": "6268e6f990522289a6a2c25db5d9cacc0988171b", + "text": "Scheduler framework interface moved from pkg/scheduler/framework/v1alpha to pkg/scheduler/framework", + "markdown": "Scheduler framework interface moved from pkg/scheduler/framework/v1alpha to pkg/scheduler/framework ([#95069](https://github.com/kubernetes/kubernetes/pull/95069), [@farah](https://github.com/farah)) [SIG Scheduling, Storage and Testing]", + "author": "farah", + "author_url": "https://github.com/farah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95069", + "pr_number": 95069, + "areas": ["e2e-test-framework", "test"], + "kinds": ["cleanup"], + "sigs": ["scheduling", "storage", "testing"], + "duplicate": true + }, + "95076": { + "commit": "f7cfe3ba0f0434f82208cc940c0770984e5758f5", + "text": "kubectl: deprecate --delete-local-data", + "markdown": "Kubectl: deprecate --delete-local-data ([#95076](https://github.com/kubernetes/kubernetes/pull/95076), [@dougsland](https://github.com/dougsland)) [SIG CLI, Cloud Provider and Scalability]", + "author": "dougsland", + "author_url": "https://github.com/dougsland", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95076", + "pr_number": 95076, + "areas": ["kubectl", "provider/gcp"], + "kinds": ["deprecation", "feature"], + "sigs": ["cli", "cloud-provider", "scalability"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "95117": { + "commit": "c5ecae737d2eb668adab12cefa3644f550fc9e8a", + "text": "fake dynamic client: document that List does not preserve TypeMeta in UnstructuredList", + "markdown": "Fake dynamic client: document that List does not preserve TypeMeta in UnstructuredList ([#95117](https://github.com/kubernetes/kubernetes/pull/95117), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery]", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95117", + "pr_number": 95117, + "kinds": ["documentation"], + "sigs": ["api-machinery"] + }, + "95125": { + "commit": "df8e3ee5f85a8a6002d899a98c121d1908e9863e", + "text": "kubeadm: deprecate self-hosting support. The experimental command \"kubeadm alpha self-hosting\" is now deprecated and will be removed in a future release.", + "markdown": "Kubeadm: deprecate self-hosting support. The experimental command \"kubeadm alpha self-hosting\" is now deprecated and will be removed in a future release. ([#95125](https://github.com/kubernetes/kubernetes/pull/95125), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95125", + "pr_number": 95125, + "areas": ["kubeadm"], + "kinds": ["deprecation"], + "sigs": ["cluster-lifecycle"] + }, + "95130": { + "commit": "3a987d5b85c620680e25e43ee6ad3cd6df25cf36", + "text": "Fix scheduler cache snapshot when a Node is deleted before its Pods", + "markdown": "Fix scheduler cache snapshot when a Node is deleted before its Pods ([#95130](https://github.com/kubernetes/kubernetes/pull/95130), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling]", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95130", + "pr_number": 95130, + "kinds": ["bug"], + "sigs": ["scheduling"] + }, + "95177": { + "commit": "75250ebeee8724887454f2a1c84fdd32832da8c2", + "text": "fix detach azure disk issue when vm not exist", + "markdown": "Fix detach azure disk issue when vm not exist ([#95177](https://github.com/kubernetes/kubernetes/pull/95177), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95177", + "pr_number": 95177, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "95184": { + "commit": "4db8c590ac8386eea08c555975e272cd1be36c94", + "text": "GPU metrics provided by kubelet are now disabled by default.", + "markdown": "GPU metrics provided by kubelet are now disabled by default. ([#95184](https://github.com/kubernetes/kubernetes/pull/95184), [@RenaudWasTaken](https://github.com/RenaudWasTaken))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2036", + "type": "KEP" + } + ], + "author": "RenaudWasTaken", + "author_url": "https://github.com/RenaudWasTaken", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95184", + "pr_number": 95184, + "kinds": ["api-change", "feature"], + "sigs": ["node"], + "feature": true, + "duplicate_kind": true + }, + "95196": { + "commit": "e91cb0b1b5fde130ab6ee9dad672f090aad90016", + "text": "Certain fields on Service objects will be automatically cleared when changing the service's `type` to a mode that does not need those fields. For example, changing from type=LoadBalancer to type=ClusterIP will clear the NodePort assignments, rather than forcing the user to clear them.", + "markdown": "Certain fields on Service objects will be automatically cleared when changing the service's `type` to a mode that does not need those fields. For example, changing from type=LoadBalancer to type=ClusterIP will clear the NodePort assignments, rather than forcing the user to clear them. ([#95196](https://github.com/kubernetes/kubernetes/pull/95196), [@thockin](https://github.com/thockin)) [SIG API Machinery, Apps, Network and Testing]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95196", + "pr_number": 95196, + "areas": ["test"], + "kinds": ["api-change", "bug"], + "sigs": ["api-machinery", "apps", "network", "testing"], + "duplicate": true, + "duplicate_kind": true + }, + "95202": { + "commit": "bf9354d8cc8ec7582c296c104563ca99d4a41b00", + "text": "Remove offensive words from kubectl cluster-info command.", + "markdown": "Remove offensive words from kubectl cluster-info command. ([#95202](https://github.com/kubernetes/kubernetes/pull/95202), [@rikatz](https://github.com/rikatz))", + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95202", + "pr_number": 95202, + "areas": ["conformance", "kubectl", "test"], + "kinds": ["cleanup"], + "sigs": ["architecture", "cli", "testing"], + "duplicate": true + }, + "95206": { + "commit": "0923b9abce7382888a077860da28a635975a0f40", + "text": "Fix CVE-2020-8555 for Quobyte client connections.", + "markdown": "Fix CVE-2020-8555 for Quobyte client connections. ([#95206](https://github.com/kubernetes/kubernetes/pull/95206), [@misterikkit](https://github.com/misterikkit)) [SIG Storage]", + "author": "misterikkit", + "author_url": "https://github.com/misterikkit", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95206", + "pr_number": 95206, + "areas": ["dependency"], + "kinds": ["bug"], + "sigs": ["storage"] + }, + "95207": { + "commit": "3b51cd1b1e9529d541a46bf754f40bc2f24dba8b", + "text": "A new metric `apiserver_request_filter_duration_seconds` has been introduced that \nmeasures request filter latency in seconds.", + "markdown": "A new metric `apiserver_request_filter_duration_seconds` has been introduced that \n measures request filter latency in seconds. ([#95207](https://github.com/kubernetes/kubernetes/pull/95207), [@tkashem](https://github.com/tkashem)) [SIG API Machinery and Instrumentation]", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95207", + "pr_number": 95207, + "areas": ["apiserver"], + "kinds": ["feature"], + "sigs": ["api-machinery", "instrumentation"], + "feature": true, + "duplicate": true + }, + "95235": { + "commit": "3d6026499b674020b4f8eec11f0b8a860a330d8a", + "text": "Support 'controlplane' as a valid EgressSelection type in the EgressSelectorConfiguration API. 'Master' is deprecated and will be removed in v1.22.", + "markdown": "Support 'controlplane' as a valid EgressSelection type in the EgressSelectorConfiguration API. 'Master' is deprecated and will be removed in v1.22. ([#95235](https://github.com/kubernetes/kubernetes/pull/95235), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery]", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95235", + "pr_number": 95235, + "areas": ["apiserver"], + "kinds": ["api-change", "deprecation"], + "sigs": ["api-machinery"], + "duplicate_kind": true + }, + "95236": { + "commit": "41f0946aa8553bc5d5514fa6092bf887e79e1a60", + "text": "vsphere: improve logging message on node cache refresh event", + "markdown": "Vsphere: improve logging message on node cache refresh event ([#95236](https://github.com/kubernetes/kubernetes/pull/95236), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider]", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95236", + "pr_number": 95236, + "areas": ["cloudprovider"], + "kinds": ["cleanup"], + "sigs": ["cloud-provider"] + }, + "95239": { + "commit": "05a46dbb6026dfd9ae11600f8dc08a99994acdec", + "text": "In dual-stack bare-metal clusters, you can now pass dual-stack IPs to `kubelet --node-ip`.\neg: `kubelet --node-ip 10.1.0.5,fd01::0005`. This is not yet supported for non-bare-metal\nclusters.\n\nIn dual-stack clusters where nodes have dual-stack addresses, hostNetwork pods\nwill now get dual-stack PodIPs.", + "markdown": "In dual-stack bare-metal clusters, you can now pass dual-stack IPs to `kubelet --node-ip`.\n eg: `kubelet --node-ip 10.1.0.5,fd01::0005`. This is not yet supported for non-bare-metal\n clusters.\n \n In dual-stack clusters where nodes have dual-stack addresses, hostNetwork pods\n will now get dual-stack PodIPs. ([#95239](https://github.com/kubernetes/kubernetes/pull/95239), [@danwinship](https://github.com/danwinship)) [SIG Network and Node]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95239", + "pr_number": 95239, + "areas": ["kubelet"], + "kinds": ["feature"], + "sigs": ["network", "node"], + "feature": true, + "duplicate": true + }, + "95245": { + "commit": "5e5ff88a5f6ac58d5bfeb07bc77a9efd29e31508", + "text": "Mask ceph RBD adminSecrets in logs when logLevel \u003e= 4.", + "markdown": "Mask ceph RBD adminSecrets in logs when logLevel \u003e= 4. ([#95245](https://github.com/kubernetes/kubernetes/pull/95245), [@sfowl](https://github.com/sfowl))", + "author": "sfowl", + "author_url": "https://github.com/sfowl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95245", + "pr_number": 95245, + "kinds": ["cleanup"], + "sigs": ["storage"] + }, + "95247": { + "commit": "d2a85502dfcfd057776b9fe385d154f91415ff54", + "text": "The AWS network load balancer attributes can now be specified during service creation", + "markdown": "The AWS network load balancer attributes can now be specified during service creation ([#95247](https://github.com/kubernetes/kubernetes/pull/95247), [@kishorj](https://github.com/kishorj)) [SIG Cloud Provider]", + "author": "kishorj", + "author_url": "https://github.com/kishorj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95247", + "pr_number": 95247, + "areas": ["cloudprovider"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "95252": { + "commit": "766ae2b81bf7cc5380e63f7ae16add093045a115", + "text": "Reorganized iptables rules to fix a performance issue", + "markdown": "Reorganized iptables rules to fix a performance issue ([#95252](https://github.com/kubernetes/kubernetes/pull/95252), [@tssurya](https://github.com/tssurya)) [SIG Network]", + "author": "tssurya", + "author_url": "https://github.com/tssurya", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95252", + "pr_number": 95252, + "kinds": ["bug"], + "sigs": ["network"] + }, + "95253": { + "commit": "838e7bb27805fd1f18ac12d6ce27bcc34ee6664c", + "text": "`kubectl api-resources` now prints the API version (as 'API group/version', same as output of `kubectl api-versions`). The column APIGROUP is now APIVERSION", + "markdown": "`kubectl api-resources` now prints the API version (as 'API group/version', same as output of `kubectl api-versions`). The column APIGROUP is now APIVERSION ([#95253](https://github.com/kubernetes/kubernetes/pull/95253), [@sallyom](https://github.com/sallyom)) [SIG CLI]", + "author": "sallyom", + "author_url": "https://github.com/sallyom", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95253", + "pr_number": 95253, + "areas": ["kubectl"], + "kinds": ["cleanup"], + "sigs": ["cli"] + }, + "95256": { + "commit": "8d226790c261f6f862a37982350b2f92fde3ba2e", + "text": "Generators for services are removed from kubectl", + "markdown": "Generators for services are removed from kubectl ([#95256](https://github.com/kubernetes/kubernetes/pull/95256), [@Git-Jiro](https://github.com/Git-Jiro)) [SIG CLI]", + "author": "Git-Jiro", + "author_url": "https://github.com/Git-Jiro", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95256", + "pr_number": 95256, + "areas": ["kubectl"], + "kinds": ["cleanup"], + "sigs": ["cli"] + }, + "95260": { + "commit": "86a208edc8dab91064513884175c3314b051a0d6", + "text": "Fixes high CPU usage in kubectl drain", + "markdown": "Fixes high CPU usage in kubectl drain ([#95260](https://github.com/kubernetes/kubernetes/pull/95260), [@amandahla](https://github.com/amandahla)) [SIG CLI]", + "author": "amandahla", + "author_url": "https://github.com/amandahla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95260", + "pr_number": 95260, + "areas": ["kubectl"], + "kinds": ["bug"], + "sigs": ["cli"] + }, + "95267": { + "commit": "c71519e53da7a79b9f5748d40d3b68aae172a18d", + "text": "SetHostnameAsFQDN has been graduated to Beta and therefore it is enabled by default.", + "markdown": "SetHostnameAsFQDN has been graduated to Beta and therefore it is enabled by default. ([#95267](https://github.com/kubernetes/kubernetes/pull/95267), [@javidiaz](https://github.com/javidiaz)) [SIG Node]", + "author": "javidiaz", + "author_url": "https://github.com/javidiaz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95267", + "pr_number": 95267, + "kinds": ["feature"], + "sigs": ["node"], + "feature": true + }, + "95282": { + "commit": "bffdc87241411f7359d1bf55e6389c1b7c017148", + "text": "VolumeSnapshotDataSource moves to GA in 1.20 release", + "markdown": "VolumeSnapshotDataSource moves to GA in 1.20 release ([#95282](https://github.com/kubernetes/kubernetes/pull/95282), [@xing-yang](https://github.com/xing-yang)) [SIG Apps]", + "documentation": [ + { + "description": "-[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/177-volume-snapshot", + "type": "KEP" + } + ], + "author": "xing-yang", + "author_url": "https://github.com/xing-yang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95282", + "pr_number": 95282, + "kinds": ["api-change", "feature"], + "sigs": ["apps"], + "feature": true, + "duplicate_kind": true + }, + "95289": { + "commit": "086b65a0009112223647f6be2d3b589bffc36759", + "text": "Gracefully delete nodes when their parent scale set went missing", + "markdown": "Gracefully delete nodes when their parent scale set went missing ([#95289](https://github.com/kubernetes/kubernetes/pull/95289), [@bpineau](https://github.com/bpineau)) [SIG Cloud Provider]", + "author": "bpineau", + "author_url": "https://github.com/bpineau", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95289", + "pr_number": 95289, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "95292": { + "commit": "93aeff4ef0678e9b746ed60862907a617005506d", + "text": "kubectl: Previously users cannot provide arguments to a external diff tool via KUBECTL_EXTERNAL_DIFF env. This release now allow users to specify args to KUBECTL_EXTERNAL_DIFF env.", + "markdown": "Kubectl: Previously users cannot provide arguments to a external diff tool via KUBECTL_EXTERNAL_DIFF env. This release now allow users to specify args to KUBECTL_EXTERNAL_DIFF env. ([#95292](https://github.com/kubernetes/kubernetes/pull/95292), [@dougsland](https://github.com/dougsland)) [SIG CLI]", + "author": "dougsland", + "author_url": "https://github.com/dougsland", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95292", + "pr_number": 95292, + "areas": ["kubectl"], + "kinds": ["feature"], + "sigs": ["cli"], + "feature": true + }, + "95311": { + "commit": "bbbab14216ee2256079da2ced5f52f91d08f5d6d", + "text": "Send GCE node startup scripts logs to console and journal.", + "markdown": "Send GCE node startup scripts logs to console and journal. ([#95311](https://github.com/kubernetes/kubernetes/pull/95311), [@karan](https://github.com/karan))", + "author": "karan", + "author_url": "https://github.com/karan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95311", + "pr_number": 95311, + "areas": ["platform/gce", "provider/gcp"], + "kinds": ["feature"], + "sigs": ["cloud-provider", "node"], + "feature": true, + "duplicate": true + }, + "95316": { + "commit": "e99df0e5a75eb6e86123b56d53e9b7ca0fd00419", + "text": "client-go header logging (at verbosity levels \u003e= 9) now masks `Authorization` header contents", + "markdown": "Client-go header logging (at verbosity levels \u003e= 9) now masks `Authorization` header contents ([#95316](https://github.com/kubernetes/kubernetes/pull/95316), [@sfowl](https://github.com/sfowl)) [SIG API Machinery]", + "author": "sfowl", + "author_url": "https://github.com/sfowl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95316", + "pr_number": 95316, + "kinds": ["cleanup"], + "sigs": ["api-machinery"] + }, + "95342": { + "commit": "77866160efce1ce4c3885d436b1cebaedc80c89c", + "text": "cloud node controller: handle empty providerID from getProviderID", + "markdown": "Cloud node controller: handle empty providerID from getProviderID ([#95342](https://github.com/kubernetes/kubernetes/pull/95342), [@nicolehanjing](https://github.com/nicolehanjing)) [SIG Cloud Provider]", + "author": "nicolehanjing", + "author_url": "https://github.com/nicolehanjing", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95342", + "pr_number": 95342, + "areas": ["cloudprovider"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "95363": { + "commit": "c9c24b46c35feae41ae5d7f0963551bab4ed6f80", + "text": "Fix network_programming_latency metric reporting for Endpoints/EndpointSlice deletions, where we don't have correct timestamp", + "markdown": "Fix network_programming_latency metric reporting for Endpoints/EndpointSlice deletions, where we don't have correct timestamp ([#95363](https://github.com/kubernetes/kubernetes/pull/95363), [@wojtek-t](https://github.com/wojtek-t)) [SIG Network and Scalability]", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95363", + "pr_number": 95363, + "kinds": ["bug"], + "sigs": ["network", "scalability"], + "duplicate": true + }, + "95382": { + "commit": "6b24a5796c47519c1b96f93b5516e46c9bcf7218", + "text": "kubeadm:\n- The label applied to control-plane nodes \"node-role.kubernetes.io/master\" is now deprecated and will be removed in a future release after a GA deprecation period.\n- Introduce a new label \"node-role.kubernetes.io/control-plane\" that will be applied in parallel to \"node-role.kubernetes.io/master\" until the removal of the \"node-role.kubernetes.io/master\" label.\n- Make \"kubeadm upgrade apply\" add the \"node-role.kubernetes.io/control-plane\" label on existing nodes that only have the \"node-role.kubernetes.io/master\" label during upgrade.\n- Please adapt your tooling built on top of kubeadm to use the \"node-role.kubernetes.io/control-plane\" label.\n\n- The taint applied to control-plane nodes \"node-role.kubernetes.io/master:NoSchedule\" is now deprecated and will be removed in a future release after a GA deprecation period.\n- Apply toleration for a new, future taint \"node-role.kubernetes.io/control-plane:NoSchedule\" to the kubeadm CoreDNS / kube-dns managed manifests. Note that this taint is not yet applied to kubeadm control-plane nodes.\n- Please adapt your workloads to tolerate the same future taint preemptively.\n\nFor more details see: http://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/2067-rename-master-label-taint/README.md", + "markdown": "Kubeadm:\n - The label applied to control-plane nodes \"node-role.kubernetes.io/master\" is now deprecated and will be removed in a future release after a GA deprecation period.\n - Introduce a new label \"node-role.kubernetes.io/control-plane\" that will be applied in parallel to \"node-role.kubernetes.io/master\" until the removal of the \"node-role.kubernetes.io/master\" label.\n - Make \"kubeadm upgrade apply\" add the \"node-role.kubernetes.io/control-plane\" label on existing nodes that only have the \"node-role.kubernetes.io/master\" label during upgrade.\n - Please adapt your tooling built on top of kubeadm to use the \"node-role.kubernetes.io/control-plane\" label.\n \n - The taint applied to control-plane nodes \"node-role.kubernetes.io/master:NoSchedule\" is now deprecated and will be removed in a future release after a GA deprecation period.\n - Apply toleration for a new, future taint \"node-role.kubernetes.io/control-plane:NoSchedule\" to the kubeadm CoreDNS / kube-dns managed manifests. Note that this taint is not yet applied to kubeadm control-plane nodes.\n - Please adapt your workloads to tolerate the same future taint preemptively.\n \n For more details see: http://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/2067-rename-master-label-taint/README.md ([#95382](https://github.com/kubernetes/kubernetes/pull/95382), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "documentation": [ + { + "description": "[KEP]", + "url": "http://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/2067-rename-master-label-taint/README.md", + "type": "external" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95382", + "pr_number": 95382, + "areas": ["kubeadm"], + "kinds": ["deprecation"], + "sigs": ["cluster-lifecycle"], + "action_required": true + }, + "95419": { + "commit": "acb3beaae4e52ff2f06ebfd3664e348821231cca", + "text": "kubeadm: update the default pause image version to 1.4.0 on Windows. With this update the image supports Windows versions 1809 (2019LTS), 1903, 1909, 2004", + "markdown": "Kubeadm: update the default pause image version to 1.4.0 on Windows. With this update the image supports Windows versions 1809 (2019LTS), 1903, 1909, 2004 ([#95419](https://github.com/kubernetes/kubernetes/pull/95419), [@jsturtevant](https://github.com/jsturtevant)) [SIG Cluster Lifecycle and Windows]", + "author": "jsturtevant", + "author_url": "https://github.com/jsturtevant", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95419", + "pr_number": 95419, + "areas": ["kubeadm"], + "kinds": ["cleanup"], + "sigs": ["cluster-lifecycle", "windows"], + "duplicate": true + }, + "95423": { + "commit": "9253aa93098f2b17d3c0ff65aa6b03863e970371", + "text": "CRDs: For structural schemas, non-nullable null map fields will now be dropped and defaulted if a default is available. null items in list will continue being preserved, and fail validation if not nullable.", + "markdown": "CRDs: For structural schemas, non-nullable null map fields will now be dropped and defaulted if a default is available. null items in list will continue being preserved, and fail validation if not nullable. ([#95423](https://github.com/kubernetes/kubernetes/pull/95423), [@apelisse](https://github.com/apelisse)) [SIG API Machinery]", + "author": "apelisse", + "author_url": "https://github.com/apelisse", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95423", + "pr_number": 95423, + "kinds": ["feature"], + "sigs": ["api-machinery"], + "feature": true + }, + "95427": { + "commit": "36a6a6493621d3b0796478bc6c08b80b82282601", + "text": "Fixed a bug in client-go where new clients with customized `Dial`, `Proxy`, `GetCert` config may get stale HTTP transports.", + "markdown": "Fixed a bug in client-go where new clients with customized `Dial`, `Proxy`, `GetCert` config may get stale HTTP transports. ([#95427](https://github.com/kubernetes/kubernetes/pull/95427), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery]", + "author": "roycaihw", + "author_url": "https://github.com/roycaihw", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95427", + "pr_number": 95427, + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "95439": { + "commit": "662bffe4ad1b50ac469cfead0034607f0a98a95e", + "text": "applies translations on all command descriptions", + "markdown": "Applies translations on all command descriptions ([#95439](https://github.com/kubernetes/kubernetes/pull/95439), [@HerrNaN](https://github.com/HerrNaN)) [SIG CLI]", + "author": "HerrNaN", + "author_url": "https://github.com/HerrNaN", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95439", + "pr_number": 95439, + "areas": ["kubectl"], + "kinds": ["cleanup"], + "sigs": ["cli"] + }, + "95447": { + "commit": "e799c852fb337be414fa2dae982fed69a67806fe", + "text": "Fix vsphere detach failure for static PVs", + "markdown": "Fix vsphere detach failure for static PVs ([#95447](https://github.com/kubernetes/kubernetes/pull/95447), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95447", + "pr_number": 95447, + "areas": ["cloudprovider"], + "kinds": ["bug"], + "sigs": ["cloud-provider", "storage"], + "duplicate": true + }, + "95448": { + "commit": "fbe806ef9e07f88d631f922062a7b18070922f42", + "text": "SelectorSpreadPriority maps to PodTopologySpread plugin when DefaultPodTopologySpread feature is enabled", + "markdown": "SelectorSpreadPriority maps to PodTopologySpread plugin when DefaultPodTopologySpread feature is enabled ([#95448](https://github.com/kubernetes/kubernetes/pull/95448), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://git.k8s.io/enhancements/keps/sig-scheduling/1258-default-pod-topology-spread", + "type": "external" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95448", + "pr_number": 95448, + "kinds": ["feature"], + "sigs": ["scheduling"], + "feature": true + }, + "95456": { + "commit": "fa15799f7409b8644221c2b43a494c74aac0c5ee", + "text": "fix azure disk data loss issue on Windows when unmount disk", + "markdown": "Fix azure disk data loss issue on Windows when unmount disk ([#95456](https://github.com/kubernetes/kubernetes/pull/95456), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95456", + "pr_number": 95456, + "areas": ["provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider", "storage"], + "duplicate": true + }, + "95463": { + "commit": "53d9bed6e0e140eb9913eb853ac57950841eed66", + "text": "fix azure disk attach failure for disk size bigger than 4TB", + "markdown": "Fix azure disk attach failure for disk size bigger than 4TB ([#95463](https://github.com/kubernetes/kubernetes/pull/95463), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95463", + "pr_number": 95463, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "95489": { + "commit": "53913a7c676c4bd21d6d3a58e6d6305729abaa9b", + "text": "client-go credential plugins can now be passed in the current cluster information via the KUBERNETES_EXEC_INFO environment variable.", + "markdown": "Client-go credential plugins can now be passed in the current cluster information via the KUBERNETES_EXEC_INFO environment variable. ([#95489](https://github.com/kubernetes/kubernetes/pull/95489), [@ankeesler](https://github.com/ankeesler)) [SIG API Machinery and Auth]", + "documentation": [ + { + "description": "Need to update", + "url": "https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins", + "type": "official" + } + ], + "author": "ankeesler", + "author_url": "https://github.com/ankeesler", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95489", + "pr_number": 95489, + "areas": ["apiserver", "dependency"], + "kinds": ["feature"], + "sigs": ["api-machinery", "auth"], + "feature": true, + "duplicate": true + }, + "95505": { + "commit": "0900340b981755ab253f191b2a7671f4601ad191", + "text": "Windows hyper-v container featuregate is deprecated in 1.20 and will be removed in 1.21", + "markdown": "Windows hyper-v container featuregate is deprecated in 1.20 and will be removed in 1.21 ([#95505](https://github.com/kubernetes/kubernetes/pull/95505), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows]", + "author": "wawa0210", + "author_url": "https://github.com/wawa0210", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95505", + "pr_number": 95505, + "areas": ["kubelet"], + "kinds": ["cleanup"], + "sigs": ["node", "windows"], + "duplicate": true, + "action_required": true + }, + "95531": { + "commit": "ad6a2af7d8bc33a440e6c2edd399fb2bf291e36b", + "text": "`MatchNodeSelectorTerms` function moved to `k8s.io/component-helpers`", + "markdown": "`MatchNodeSelectorTerms` function moved to `k8s.io/component-helpers` ([#95531](https://github.com/kubernetes/kubernetes/pull/95531), [@damemi](https://github.com/damemi)) [SIG Apps, Scheduling and Storage]", + "author": "damemi", + "author_url": "https://github.com/damemi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95531", + "pr_number": 95531, + "areas": ["dependency"], + "kinds": ["cleanup"], + "sigs": ["apps", "scheduling", "storage"], + "duplicate": true + }, + "95533": { + "commit": "281866b35c0645e9bffc00d5e6d2f97b64680fd9", + "text": "kube-apiserver now maintains a Lease object to identify itself: \n- The feature is under feature gate `APIServerIdentity`. \n- Two flags are added to kube-apiserver: `identity-lease-duration-seconds`, `identity-lease-renew-interval-seconds`", + "markdown": "Kube-apiserver now maintains a Lease object to identify itself: \n - The feature is under feature gate `APIServerIdentity`. \n - Two flags are added to kube-apiserver: `identity-lease-duration-seconds`, `identity-lease-renew-interval-seconds` ([#95533](https://github.com/kubernetes/kubernetes/pull/95533), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/1965-kube-apiserver-identity/README.md", + "type": "KEP" + } + ], + "author": "roycaihw", + "author_url": "https://github.com/roycaihw", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95533", + "pr_number": 95533, + "areas": ["apiserver"], + "kinds": ["feature"], + "sigs": ["api-machinery"], + "feature": true + }, + "95539": { + "commit": "b2de4a6159e5e6836b34f12cd172e44f31042126", + "text": "New default scheduling plugins order reduces scheduling and preemption latency when taints and node affinity are used", + "markdown": "New default scheduling plugins order reduces scheduling and preemption latency when taints and node affinity are used ([#95539](https://github.com/kubernetes/kubernetes/pull/95539), [@soulxu](https://github.com/soulxu)) [SIG Scheduling]", + "author": "soulxu", + "author_url": "https://github.com/soulxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95539", + "pr_number": 95539, + "kinds": ["feature"], + "sigs": ["scheduling"], + "feature": true + }, + "95541": { + "commit": "2d6cd683bdebcf88af617c722963b8c9221f77ac", + "text": "volume binding: report UnschedulableAndUnresolvable status instead of an error when bound PVs not found", + "markdown": "Volume binding: report UnschedulableAndUnresolvable status instead of an error when bound PVs not found ([#95541](https://github.com/kubernetes/kubernetes/pull/95541), [@cofyc](https://github.com/cofyc)) [SIG Apps, Scheduling and Storage]", + "author": "cofyc", + "author_url": "https://github.com/cofyc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95541", + "pr_number": 95541, + "kinds": ["bug"], + "sigs": ["apps", "scheduling", "storage"], + "duplicate": true + }, + "95542": { + "commit": "d7e0cb0e35dba826ca97ef4c29f2cf80a59b052c", + "text": "Support the node label `node.kubernetes.io/exclude-from-external-load-balancers`", + "markdown": "Support the node label `node.kubernetes.io/exclude-from-external-load-balancers` ([#95542](https://github.com/kubernetes/kubernetes/pull/95542), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95542", + "pr_number": 95542, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "95543": { + "commit": "722be6647a64cf55b46d785add7790a10e8aa8f3", + "text": "Remove the dependency of csi-translation-lib module on apiserver/cloud-provider/controller-manager", + "markdown": "Remove the dependency of csi-translation-lib module on apiserver/cloud-provider/controller-manager ([#95543](https://github.com/kubernetes/kubernetes/pull/95543), [@wawa0210](https://github.com/wawa0210)) [SIG Release]", + "author": "wawa0210", + "author_url": "https://github.com/wawa0210", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95543", + "pr_number": 95543, + "areas": ["code-organization", "dependency", "release-eng"], + "kinds": ["cleanup"], + "sigs": ["release"] + }, + "95544": { + "commit": "374989e4617aa99ea260fd11e5a037738468863f", + "text": "Warns user when executing kubectl apply/diff to resource currently being deleted.", + "markdown": "Warns user when executing kubectl apply/diff to resource currently being deleted. ([#95544](https://github.com/kubernetes/kubernetes/pull/95544), [@SaiHarshaK](https://github.com/SaiHarshaK)) [SIG CLI]", + "author": "SaiHarshaK", + "author_url": "https://github.com/SaiHarshaK", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95544", + "pr_number": 95544, + "areas": ["kubectl"], + "kinds": ["feature"], + "sigs": ["cli"], + "feature": true + }, + "95562": { + "commit": "cd8b87f25a25a647eb5818dc42af4ac64448646b", + "text": "Fix verb \u0026 scope reporting for kube-apiserver metrics (LIST reported instead of GET)", + "markdown": "Fix verb \u0026 scope reporting for kube-apiserver metrics (LIST reported instead of GET) ([#95562](https://github.com/kubernetes/kubernetes/pull/95562), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Testing]", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95562", + "pr_number": 95562, + "areas": ["apiserver", "test"], + "kinds": ["bug"], + "sigs": ["api-machinery", "testing"], + "duplicate": true + }, + "95566": { + "commit": "78828078ca213379b304485801a862ec76314e36", + "text": "SCTP support in API objects (Pod, Service, NetworkPolicy) is now GA.\nNote that this has no effect on whether SCTP is enabled on nodes at the kernel level,\nand note that some cloud platforms and network plugins do not support SCTP traffic.", + "markdown": "SCTP support in API objects (Pod, Service, NetworkPolicy) is now GA.\n Note that this has no effect on whether SCTP is enabled on nodes at the kernel level,\n and note that some cloud platforms and network plugins do not support SCTP traffic. ([#95566](https://github.com/kubernetes/kubernetes/pull/95566), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network]", + "documentation": [ + { + "description": "[Enhancement]", + "url": "https://github.com/kubernetes/enhancements/issues/614", + "type": "KEP" + }, + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/ee5e90d5/keps/sig-network/614-SCTP-support", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95566", + "pr_number": 95566, + "kinds": ["feature"], + "sigs": ["apps", "network"], + "feature": true, + "duplicate": true + }, + "95583": { + "commit": "9af86e8db8e965d2aec5b8d1762fc7cbab323daa", + "text": "fix: smb valid path error", + "markdown": "Fix: smb valid path error ([#95583](https://github.com/kubernetes/kubernetes/pull/95583), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95583", + "pr_number": 95583, + "kinds": ["bug"], + "sigs": ["storage"] + }, + "95603": { + "commit": "56c1be8317cb79d7465163674cc6561cc464367f", + "text": "Introduce api-extensions category which will return: mutating admission configs, validating admission configs, CRDs and APIServices when used in kubectl get, for example.", + "markdown": "Introduce api-extensions category which will return: mutating admission configs, validating admission configs, CRDs and APIServices when used in kubectl get, for example. ([#95603](https://github.com/kubernetes/kubernetes/pull/95603), [@soltysh](https://github.com/soltysh)) [SIG API Machinery]", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95603", + "pr_number": 95603, + "kinds": ["feature"], + "sigs": ["api-machinery"], + "feature": true + }, + "95631": { + "commit": "3fe372c3da3620d5de6f50ff72355cdf8caf667e", + "text": "DefaultPodTopologySpread graduated to Beta. The feature gate is enabled by default.", + "markdown": "DefaultPodTopologySpread graduated to Beta. The feature gate is enabled by default. ([#95631](https://github.com/kubernetes/kubernetes/pull/95631), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://git.k8s.io/enhancements/keps/sig-scheduling/1258-default-pod-topology-spread", + "type": "external" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#cluster-level-default-constraints", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95631", + "pr_number": 95631, + "areas": ["test"], + "kinds": ["feature"], + "sigs": ["scheduling", "testing"], + "feature": true, + "duplicate": true + }, + "95635": { + "commit": "2c58deffa87bf464293fe80c80b7fec31d0aae7c", + "text": "Alter wording to describe pods using a pvc", + "markdown": "Alter wording to describe pods using a pvc ([#95635](https://github.com/kubernetes/kubernetes/pull/95635), [@RaunakShah](https://github.com/RaunakShah)) [SIG CLI]", + "author": "RaunakShah", + "author_url": "https://github.com/RaunakShah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95635", + "pr_number": 95635, + "areas": ["kubectl"], + "kinds": ["bug"], + "sigs": ["cli"] + }, + "95641": { + "commit": "f315d49f74118fed4092f72fd4c9983664ddabac", + "text": "Changed: default \"Accept: */*\" header added to HTTP probes. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes (https://github.com/kubernetes/website/pull/24756)", + "markdown": "Changed: default \"Accept: */*\" header added to HTTP probes. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes (https://github.com/kubernetes/website/pull/24756) ([#95641](https://github.com/kubernetes/kubernetes/pull/95641), [@fonsecas72](https://github.com/fonsecas72)) [SIG Network and Node]", + "author": "fonsecas72", + "author_url": "https://github.com/fonsecas72", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95641", + "pr_number": 95641, + "kinds": ["feature"], + "sigs": ["network", "node"], + "feature": true, + "duplicate": true + }, + "95647": { + "commit": "106ee38796be33073425a5ac731ea0adbde3d151", + "text": "If we set SelectPolicy MinPolicySelect on scaleUp behavior or scaleDown behavior,Horizontal Pod Autoscaler doesn`t automatically scale the number of pods correctly", + "markdown": "If we set SelectPolicy MinPolicySelect on scaleUp behavior or scaleDown behavior,Horizontal Pod Autoscaler doesn`t automatically scale the number of pods correctly ([#95647](https://github.com/kubernetes/kubernetes/pull/95647), [@JoshuaAndrew](https://github.com/JoshuaAndrew)) [SIG Apps and Autoscaling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-autoscaling", + "type": "KEP" + }, + { + "description": "[Design]", + "url": "https://github.com/kubernetes/community/blob/master/contributors/design-proposals/autoscaling/horizontal-pod-autoscaler.md", + "type": "external" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/", + "type": "official" + } + ], + "author": "JoshuaAndrew", + "author_url": "https://github.com/JoshuaAndrew", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95647", + "pr_number": 95647, + "kinds": ["bug"], + "sigs": ["apps", "autoscaling"], + "duplicate": true + }, + "95694": { + "commit": "5f2ebe4bbc7c4c40a69b51babd12dc23cc89bafe", + "text": "UDP and SCTP protocols can left stale connections that need to be cleared to avoid services disruption, but they can cause problems that are hard to debug.\nKubernetes components using a loglevel greater or equal than 4 will log the conntrack operations and its output, to show the entries that were deleted.", + "markdown": "UDP and SCTP protocols can left stale connections that need to be cleared to avoid services disruption, but they can cause problems that are hard to debug.\n Kubernetes components using a loglevel greater or equal than 4 will log the conntrack operations and its output, to show the entries that were deleted. ([#95694](https://github.com/kubernetes/kubernetes/pull/95694), [@aojea](https://github.com/aojea)) [SIG Network]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95694", + "pr_number": 95694, + "kinds": ["cleanup", "flake"], + "sigs": ["network"], + "duplicate_kind": true + }, + "95718": { + "commit": "12d9183da03d86c65f9f17e3e28be3c7c18ed22a", + "text": "Promote RuntimeClass feature to GA.\nPromote node.k8s.io API groups from v1beta1 to v1.", + "markdown": "Promote RuntimeClass feature to GA.\n Promote node.k8s.io API groups from v1beta1 to v1. ([#95718](https://github.com/kubernetes/kubernetes/pull/95718), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Apps, Auth, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/585", + "type": "KEP" + } + ], + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95718", + "pr_number": 95718, + "areas": ["apiserver", "kubelet", "test"], + "kinds": ["api-change", "feature"], + "sigs": ["apps", "auth", "node", "scheduling", "testing"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "95719": { + "commit": "423f8731ef231298675473196100557c69165c74", + "text": "There is a new pv_collector_total_pv_count metric that counts persistent volumes by the volume plugin name and volume mode.", + "markdown": "There is a new pv_collector_total_pv_count metric that counts persistent volumes by the volume plugin name and volume mode. ([#95719](https://github.com/kubernetes/kubernetes/pull/95719), [@tsmetana](https://github.com/tsmetana)) [SIG Apps, Instrumentation, Storage and Testing]", + "author": "tsmetana", + "author_url": "https://github.com/tsmetana", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95719", + "pr_number": 95719, + "areas": ["test"], + "kinds": ["feature"], + "sigs": ["apps", "instrumentation", "storage", "testing"], + "feature": true, + "duplicate": true + }, + "95723": { + "commit": "3627a282799b323d68c99f9a294b0fd211cd0725", + "text": "kubeadm: improve the validation of serviceSubnet and podSubnet.\nServiceSubnet has to be limited in size, due to implementation details, and the mask can not allocate more than 20 bits.\nPodSubnet validates against the corresponding cluster \"--node-cidr-mask-size\" of the kube-controller-manager, it fail if the values are not compatible.\nkubeadm no longer sets the node-mask automatically on IPv6 deployments, you must check that your IPv6 service subnet mask is compatible with the default node mask /64 or set it accordenly. \nPreviously, for IPv6, if the podSubnet had a mask lower than /112, kubeadm calculated a node-mask to be multiple of eight and splitting the available bits to maximise the number used for nodes.", + "markdown": "Kubeadm: improve the validation of serviceSubnet and podSubnet.\n ServiceSubnet has to be limited in size, due to implementation details, and the mask can not allocate more than 20 bits.\n PodSubnet validates against the corresponding cluster \"--node-cidr-mask-size\" of the kube-controller-manager, it fail if the values are not compatible.\n kubeadm no longer sets the node-mask automatically on IPv6 deployments, you must check that your IPv6 service subnet mask is compatible with the default node mask /64 or set it accordenly. \n Previously, for IPv6, if the podSubnet had a mask lower than /112, kubeadm calculated a node-mask to be multiple of eight and splitting the available bits to maximise the number used for nodes. ([#95723](https://github.com/kubernetes/kubernetes/pull/95723), [@aojea](https://github.com/aojea)) [SIG Cluster Lifecycle]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95723", + "pr_number": 95723, + "areas": ["kubeadm"], + "kinds": ["cleanup"], + "sigs": ["cluster-lifecycle"], + "action_required": true + }, + "95725": { + "commit": "4df8d97af05ba562537efe5a0399c1a55206d49c", + "text": "exposes and sets a default timeout for the SubjectAccessReview client for DelegatingAuthorizationOptions", + "markdown": "Exposes and sets a default timeout for the SubjectAccessReview client for DelegatingAuthorizationOptions ([#95725](https://github.com/kubernetes/kubernetes/pull/95725), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Cloud Provider]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95725", + "pr_number": 95725, + "areas": ["apiserver"], + "kinds": ["bug"], + "sigs": ["api-machinery", "cloud-provider"], + "duplicate": true + }, + "95741": { + "commit": "30617439aa0517e3116217a6c7762828522d0521", + "text": "Add WindowsContainerResources and Annotations to CRI-API UpdateContainerResourcesRequest", + "markdown": "Add WindowsContainerResources and Annotations to CRI-API UpdateContainerResourcesRequest ([#95741](https://github.com/kubernetes/kubernetes/pull/95741), [@katiewasnothere](https://github.com/katiewasnothere)) [SIG Node]", + "author": "katiewasnothere", + "author_url": "https://github.com/katiewasnothere", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95741", + "pr_number": 95741, + "areas": ["kubelet"], + "kinds": ["api-change", "feature"], + "sigs": ["node"], + "feature": true, + "duplicate_kind": true + }, + "95748": { + "commit": "9a6e35a16a92feac757bf0621a09a2661f617617", + "text": "Update the PIP when it is not in the Succeeded provisioning state during the LB update.", + "markdown": "Update the PIP when it is not in the Succeeded provisioning state during the LB update. ([#95748](https://github.com/kubernetes/kubernetes/pull/95748), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95748", + "pr_number": 95748, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "95770": { + "commit": "f458996af14e34ec36353e5ce8452e14c6bd43a1", + "text": "Remove ready file and its directory (which is created during volume SetUp) during emptyDir volume TearDown.", + "markdown": "Remove ready file and its directory (which is created during volume SetUp) during emptyDir volume TearDown. ([#95770](https://github.com/kubernetes/kubernetes/pull/95770), [@jingxu97](https://github.com/jingxu97)) [SIG Storage]", + "author": "jingxu97", + "author_url": "https://github.com/jingxu97", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95770", + "pr_number": 95770, + "kinds": ["bug"], + "sigs": ["storage"] + }, + "95776": { + "commit": "ad2bf99f9b8f27113cd3b0c9e0ad72e568947e43", + "text": "Kubernetes is now built using go1.15.5\n- build: Update to k/repo-infra@v0.1.2 (supports go1.15.5)", + "markdown": "Kubernetes is now built using go1.15.5\n - build: Update to k/repo-infra@v0.1.2 (supports go1.15.5) ([#95776](https://github.com/kubernetes/kubernetes/pull/95776), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing]", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95776", + "pr_number": 95776, + "areas": ["dependency", "provider/gcp", "release-eng", "security", "test"], + "kinds": ["feature"], + "sigs": ["cloud-provider", "instrumentation", "release", "testing"], + "feature": true, + "duplicate": true + }, + "95786": { + "commit": "254f3e26abd699d5d5b1abfc4a6449299345fd4a", + "text": "kubeadm: add missing \"--experimental-patches\" flag to \"kubeadm init phase control-plane\"", + "markdown": "Kubeadm: add missing \"--experimental-patches\" flag to \"kubeadm init phase control-plane\" ([#95786](https://github.com/kubernetes/kubernetes/pull/95786), [@Sh4d1](https://github.com/Sh4d1)) [SIG Cluster Lifecycle]", + "author": "Sh4d1", + "author_url": "https://github.com/Sh4d1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95786", + "pr_number": 95786, + "areas": ["kubeadm"], + "kinds": ["bug"], + "sigs": ["cluster-lifecycle"] + }, + "95813": { + "commit": "16e18a590f32b931cdceb5372664198c0e49831a", + "text": "Update the frontend IP config when the service's `pipName` annotation is changed", + "markdown": "Update the frontend IP config when the service's `pipName` annotation is changed ([#95813](https://github.com/kubernetes/kubernetes/pull/95813), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95813", + "pr_number": 95813, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "95839": { + "commit": "0e0cc1ead8ae5937a45e8ca9fa68eb300a1a2f50", + "text": "Add pod_ based CPU and memory metrics to Kubelet's /metrics/resource endpoint", + "markdown": "Add pod_ based CPU and memory metrics to Kubelet's /metrics/resource endpoint ([#95839](https://github.com/kubernetes/kubernetes/pull/95839), [@egernst](https://github.com/egernst)) [SIG Instrumentation, Node and Testing]", + "author": "egernst", + "author_url": "https://github.com/egernst", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95839", + "pr_number": 95839, + "areas": ["kubelet", "test"], + "kinds": ["feature"], + "sigs": ["instrumentation", "node", "testing"], + "feature": true, + "duplicate": true + }, + "95863": { + "commit": "d39562fd93415e0ab41595d38ac148f7eb084c13", + "text": "Volume snapshot e2e test to validate PVC and VolumeSnapshotContent finalizer", + "markdown": "Volume snapshot e2e test to validate PVC and VolumeSnapshotContent finalizer ([#95863](https://github.com/kubernetes/kubernetes/pull/95863), [@RaunakShah](https://github.com/RaunakShah)) [SIG Cloud Provider, Storage and Testing]", + "author": "RaunakShah", + "author_url": "https://github.com/RaunakShah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95863", + "pr_number": 95863, + "areas": ["e2e-test-framework", "provider/gcp", "test"], + "kinds": ["feature"], + "sigs": ["cloud-provider", "storage", "testing"], + "feature": true, + "duplicate": true + }, + "95866": { + "commit": "c34a2c44a80c3fa84bf58713dea8adbbffc508ce", + "text": "add a metric for time taken to perform recursive permission change", + "markdown": "Add a metric for time taken to perform recursive permission change ([#95866](https://github.com/kubernetes/kubernetes/pull/95866), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation and Storage]", + "author": "JornShen", + "author_url": "https://github.com/JornShen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95866", + "pr_number": 95866, + "kinds": ["feature"], + "sigs": ["instrumentation", "storage"], + "feature": true, + "duplicate": true + }, + "95871": { + "commit": "2729b8e375143434fc4977fe49eaea572567dac3", + "text": "v1helpers.MatchNodeSelectorTerms now accepts just a Node and a list of Terms", + "markdown": "V1helpers.MatchNodeSelectorTerms now accepts just a Node and a list of Terms ([#95871](https://github.com/kubernetes/kubernetes/pull/95871), [@damemi](https://github.com/damemi)) [SIG Apps, Scheduling and Storage]", + "author": "damemi", + "author_url": "https://github.com/damemi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95871", + "pr_number": 95871, + "kinds": ["cleanup"], + "sigs": ["apps", "scheduling", "storage"], + "duplicate": true + }, + "95892": { + "commit": "fe5f2cf8ef5d77787f419cb5f2edc9eba476d725", + "text": "change plugin name in fsgroupapplymetrics of csi and flexvolume to distinguish different driver", + "markdown": "Change plugin name in fsgroupapplymetrics of csi and flexvolume to distinguish different driver ([#95892](https://github.com/kubernetes/kubernetes/pull/95892), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation, Storage and Testing]", + "author": "JornShen", + "author_url": "https://github.com/JornShen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95892", + "pr_number": 95892, + "areas": ["test"], + "kinds": ["bug"], + "sigs": ["instrumentation", "storage", "testing"], + "duplicate": true + }, + "95894": { + "commit": "f78d095d52a9fef3a9ae5355eb5af0d1d5088e9e", + "text": "Services will now have a `clusterIPs` field to go with `clusterIP`. `clusterIPs[0]` is a synonym for `clusterIP` and will be syncronized on create and update operations.", + "markdown": "Services will now have a `clusterIPs` field to go with `clusterIP`. `clusterIPs[0]` is a synonym for `clusterIP` and will be syncronized on create and update operations. ([#95894](https://github.com/kubernetes/kubernetes/pull/95894), [@thockin](https://github.com/thockin)) [SIG Network]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95894", + "pr_number": 95894, + "kinds": ["api-change", "bug"], + "sigs": ["network"], + "duplicate_kind": true + }, + "95895": { + "commit": "f102cc887e57f83485b58d37e77b247270cf2ade", + "text": "kube-apiserver now deletes expired kube-apiserver Lease objects:\n- The feature is under feature gate `APIServerIdentity`.\n- A flag is added to kube-apiserver: `identity-lease-garbage-collection-check-period-seconds`", + "markdown": "Kube-apiserver now deletes expired kube-apiserver Lease objects:\n - The feature is under feature gate `APIServerIdentity`.\n - A flag is added to kube-apiserver: `identity-lease-garbage-collection-check-period-seconds` ([#95895](https://github.com/kubernetes/kubernetes/pull/95895), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery, Apps, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/1965-kube-apiserver-identity/README.md", + "type": "KEP" + } + ], + "author": "roycaihw", + "author_url": "https://github.com/roycaihw", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95895", + "pr_number": 95895, + "areas": ["apiserver", "test"], + "kinds": ["api-change"], + "sigs": ["api-machinery", "apps", "auth", "testing"], + "duplicate": true + }, + "95896": { + "commit": "8d6829fe1e844876aa77755e23af1ab35e4790c5", + "text": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:", + "markdown": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**: ([#95896](https://github.com/kubernetes/kubernetes/pull/95896), [@zshihang](https://github.com/zshihang)) [SIG API Machinery and Cluster Lifecycle]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95896", + "pr_number": 95896, + "areas": ["apiserver"], + "kinds": ["feature"], + "sigs": ["api-machinery", "cluster-lifecycle"], + "feature": true, + "duplicate": true + }, + "95909": { + "commit": "096819c9635035abb4c4ec2bcaf4db8c35250cb7", + "text": "When creating a PVC with the volume.beta.kubernetes.io/storage-provisioner annotation already set, the PV controller might have incorrectly deleted the newly provisioned PV instead of binding it to the PVC, depending on timing and system load.", + "markdown": "When creating a PVC with the volume.beta.kubernetes.io/storage-provisioner annotation already set, the PV controller might have incorrectly deleted the newly provisioned PV instead of binding it to the PVC, depending on timing and system load. ([#95909](https://github.com/kubernetes/kubernetes/pull/95909), [@pohly](https://github.com/pohly)) [SIG Apps and Storage]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95909", + "pr_number": 95909, + "kinds": ["bug"], + "sigs": ["apps", "storage"], + "duplicate": true + }, + "95933": { + "commit": "cd99c63570eb1489dd631c12ea86db708dbdcd59", + "text": "Fix bug in JSON path parser where an error occurs when a range is empty", + "markdown": "Fix bug in JSON path parser where an error occurs when a range is empty ([#95933](https://github.com/kubernetes/kubernetes/pull/95933), [@brianpursley](https://github.com/brianpursley)) [SIG API Machinery]", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95933", + "pr_number": 95933, + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "95961": { + "commit": "a69a4a4bf02248130b7aaacb74f031fe3faad485", + "text": "fix k8s.io/apimachinery/pkg/api/meta.SetStatusCondition to update ObservedGeneration", + "markdown": "Fix k8s.io/apimachinery/pkg/api/meta.SetStatusCondition to update ObservedGeneration ([#95961](https://github.com/kubernetes/kubernetes/pull/95961), [@KnicKnic](https://github.com/KnicKnic)) [SIG API Machinery]", + "author": "KnicKnic", + "author_url": "https://github.com/KnicKnic", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95961", + "pr_number": 95961, + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "95981": { + "commit": "afeac926fa79179bfd0c5e718459086845a2a80c", + "text": "HTTP/2 connection health check is enabled by default in all Kubernetes clients. The feature should work out-of-the-box. If needed, users can tune the feature via the HTTP2_READ_IDLE_TIMEOUT_SECONDS and HTTP2_PING_TIMEOUT_SECONDS environment variables. The feature is disabled if HTTP2_READ_IDLE_TIMEOUT_SECONDS is set to 0.", + "markdown": "HTTP/2 connection health check is enabled by default in all Kubernetes clients. The feature should work out-of-the-box. If needed, users can tune the feature via the HTTP2_READ_IDLE_TIMEOUT_SECONDS and HTTP2_PING_TIMEOUT_SECONDS environment variables. The feature is disabled if HTTP2_READ_IDLE_TIMEOUT_SECONDS is set to 0. ([#95981](https://github.com/kubernetes/kubernetes/pull/95981), [@caesarxuchao](https://github.com/caesarxuchao)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Node]", + "author": "caesarxuchao", + "author_url": "https://github.com/caesarxuchao", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95981", + "pr_number": 95981, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl" + ], + "kinds": ["bug"], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "node" + ], + "duplicate": true + }, + "95985": { + "commit": "917dcbabe107dfe18c01791d3f58ec9c9cd411a4", + "text": "Fixed a regression which prevented pods with `docker/default` seccomp annotations from being created in 1.19 if a PodSecurityPolicy was in place which did not allow `runtime/default` seccomp profiles.", + "markdown": "Fixed a regression which prevented pods with `docker/default` seccomp annotations from being created in 1.19 if a PodSecurityPolicy was in place which did not allow `runtime/default` seccomp profiles. ([#95985](https://github.com/kubernetes/kubernetes/pull/95985), [@saschagrunert](https://github.com/saschagrunert)) [SIG Auth]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/blob/d80faa7/keps/sig-node/20190717-seccomp-ga.md", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95985", + "pr_number": 95985, + "kinds": ["bug", "regression"], + "sigs": ["auth"], + "duplicate_kind": true + }, + "96051": { + "commit": "2ee1003430ea42060b48de9b28ecab2ce846c366", + "text": "Add a new flag to set priority for the kubelet on Windows nodes so that workloads cannot overwhelm the node there by disrupting kubelet process.", + "markdown": "Add a new flag to set priority for the kubelet on Windows nodes so that workloads cannot overwhelm the node there by disrupting kubelet process. ([#96051](https://github.com/kubernetes/kubernetes/pull/96051), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node and Windows]", + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96051", + "pr_number": 96051, + "areas": ["kubelet"], + "kinds": ["feature"], + "sigs": ["node", "windows"], + "feature": true, + "duplicate": true + }, + "96052": { + "commit": "d16112f76c454b0b08beaff440a4540f7f8eb469", + "text": "Disable watchcache for events", + "markdown": "Disable watchcache for events ([#96052](https://github.com/kubernetes/kubernetes/pull/96052), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery]", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96052", + "pr_number": 96052, + "areas": ["apiserver"], + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "96054": { + "commit": "df794c1ddad17b9cd1d3e7fd1409ed8e2b9cf854", + "text": "The kubelet_runtime_operations_duration_seconds metric buckets were set to 0.005 0.0125 0.03125 0.078125 0.1953125 0.48828125 1.220703125 3.0517578125 7.62939453125 19.073486328125 47.6837158203125 119.20928955078125 298.0232238769531 and 745.0580596923828 seconds", + "markdown": "The kubelet_runtime_operations_duration_seconds metric buckets were set to 0.005 0.0125 0.03125 0.078125 0.1953125 0.48828125 1.220703125 3.0517578125 7.62939453125 19.073486328125 47.6837158203125 119.20928955078125 298.0232238769531 and 745.0580596923828 seconds ([#96054](https://github.com/kubernetes/kubernetes/pull/96054), [@alvaroaleman](https://github.com/alvaroaleman)) [SIG Instrumentation and Node]", + "author": "alvaroaleman", + "author_url": "https://github.com/alvaroaleman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96054", + "pr_number": 96054, + "areas": ["kubelet"], + "kinds": ["feature"], + "sigs": ["instrumentation", "node"], + "feature": true, + "duplicate": true + }, + "96058": { + "commit": "1ba27096aecaa6e2e5f655e41e5155a38473a11b", + "text": "`kubectl debug` gains support for changing container images when copying a pod for debugging, similar to how `kubectl set image` works. See `kubectl help debug` for more information.", + "markdown": "`kubectl debug` gains support for changing container images when copying a pod for debugging, similar to how `kubectl set image` works. See `kubectl help debug` for more information. ([#96058](https://github.com/kubernetes/kubernetes/pull/96058), [@verb](https://github.com/verb)) [SIG CLI]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug", + "type": "KEP" + } + ], + "author": "verb", + "author_url": "https://github.com/verb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96058", + "pr_number": 96058, + "areas": ["kubectl"], + "kinds": ["feature"], + "sigs": ["cli"], + "feature": true + }, + "96061": { + "commit": "59ac565dbf603f0636dbbcc2bb61a35fb2969d7e", + "text": "If the user specifies an invalid timeout in the request URL, the request will be aborted with an HTTP 400.\n- If the user specifies a timeout in the request URL that exceeds the maximum request deadline allowed by the apiserver, the request will be aborted with an HTTP 400.", + "markdown": "If the user specifies an invalid timeout in the request URL, the request will be aborted with an HTTP 400.\n - If the user specifies a timeout in the request URL that exceeds the maximum request deadline allowed by the apiserver, the request will be aborted with an HTTP 400. ([#96061](https://github.com/kubernetes/kubernetes/pull/96061), [@tkashem](https://github.com/tkashem)) [SIG API Machinery, Network and Testing]", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96061", + "pr_number": 96061, + "areas": ["apiserver", "test"], + "kinds": ["bug"], + "sigs": ["api-machinery", "network", "testing"], + "duplicate": true + }, + "96071": { + "commit": "2b8f43bf1522755ac34467e88042149b8dd7aa67", + "text": "Scheduler now ignores Pod update events if the resourceVersion of old and new Pods are identical.", + "markdown": "Scheduler now ignores Pod update events if the resourceVersion of old and new Pods are identical. ([#96071](https://github.com/kubernetes/kubernetes/pull/96071), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling]", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96071", + "pr_number": 96071, + "kinds": ["feature", "flake"], + "sigs": ["scheduling"], + "feature": true, + "duplicate_kind": true + }, + "96092": { + "commit": "43edb4063262751bbb6ba18daf3fe9582ae3b2f9", + "text": "Disabled `LocalStorageCapacityIsolation` feature gate is honored during scheduling.", + "markdown": "Disabled `LocalStorageCapacityIsolation` feature gate is honored during scheduling. ([#96092](https://github.com/kubernetes/kubernetes/pull/96092), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling]", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96092", + "pr_number": 96092, + "kinds": ["bug"], + "sigs": ["scheduling"] + }, + "96111": { + "commit": "3e7e6c345555b12f964144a1995db265f22ab8d8", + "text": "Support multiple standard load balancers in one cluster", + "markdown": "Support multiple standard load balancers in one cluster ([#96111](https://github.com/kubernetes/kubernetes/pull/96111), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "documentation": [ + { + "url": "https://kubernetes-sigs.github.io/cloud-provider-azure/development/design-docs/multiple-slb/", + "type": "external" + } + ], + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96111", + "pr_number": 96111, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["feature"], + "sigs": ["cloud-provider"], + "feature": true + }, + "96127": { + "commit": "87ed842fa33e0caa3bbab26678d5b28e13c5e160", + "text": "Changed: default \"Accept-Encoding\" header removed from HTTP probes. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes", + "markdown": "Changed: default \"Accept-Encoding\" header removed from HTTP probes. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes ([#96127](https://github.com/kubernetes/kubernetes/pull/96127), [@fonsecas72](https://github.com/fonsecas72)) [SIG Network and Node]", + "author": "fonsecas72", + "author_url": "https://github.com/fonsecas72", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96127", + "pr_number": 96127, + "kinds": ["cleanup"], + "sigs": ["network", "node"], + "duplicate": true + }, + "96129": { + "commit": "b2dc35dab2cdd2aa33ba8240bb6e53478e63c435", + "text": "Adds kubelet alpha feature, `GracefulNodeShutdown` which makes kubelet aware of node system shutdowns and result in graceful termination of pods during a system shutdown.", + "markdown": "Adds kubelet alpha feature, `GracefulNodeShutdown` which makes kubelet aware of node system shutdowns and result in graceful termination of pods during a system shutdown. ([#96129](https://github.com/kubernetes/kubernetes/pull/96129), [@bobbypage](https://github.com/bobbypage)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2000-graceful-node-shutdown/README.md", + "type": "KEP" + } + ], + "author": "bobbypage", + "author_url": "https://github.com/bobbypage", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96129", + "pr_number": 96129, + "areas": ["dependency", "kubelet"], + "kinds": ["api-change", "feature"], + "sigs": ["node"], + "feature": true, + "duplicate_kind": true + }, + "96138": { + "commit": "468f9f6cac392d941dd6a4d8a331f38cbf0090d3", + "text": "`kubectl alpha debug` has graduated to beta and is now `kubectl debug`.", + "markdown": "`kubectl alpha debug` has graduated to beta and is now `kubectl debug`. ([#96138](https://github.com/kubernetes/kubernetes/pull/96138), [@verb](https://github.com/verb)) [SIG CLI and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug", + "type": "KEP" + } + ], + "author": "verb", + "author_url": "https://github.com/verb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96138", + "pr_number": 96138, + "areas": ["kubectl", "test"], + "kinds": ["feature"], + "sigs": ["cli", "testing"], + "feature": true, + "duplicate": true + }, + "96144": { + "commit": "89ba702d8a135097f5f79e284c1c675e437068f7", + "text": "skip [k8s.io/kubernetes@v1.19.0/test/e2e/storage/testsuites/base.go:162]: Driver azure-disk doesn't support snapshot type DynamicSnapshot -- skipping\nskip [k8s.io/kubernetes@v1.19.0/test/e2e/storage/testsuites/base.go:185]: Driver azure-disk doesn't support ntfs -- skipping", + "markdown": "Skip [k8s.io/kubernetes@v1.19.0/test/e2e/storage/testsuites/base.go:162]: Driver azure-disk doesn't support snapshot type DynamicSnapshot -- skipping\n skip [k8s.io/kubernetes@v1.19.0/test/e2e/storage/testsuites/base.go:185]: Driver azure-disk doesn't support ntfs -- skipping ([#96144](https://github.com/kubernetes/kubernetes/pull/96144), [@qinpingli](https://github.com/qinpingli)) [SIG Storage and Testing]", + "author": "qinpingli", + "author_url": "https://github.com/qinpingli", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96144", + "pr_number": 96144, + "areas": ["test"], + "kinds": ["bug"], + "sigs": ["storage", "testing"], + "duplicate": true + }, + "96179": { + "commit": "812aef32cefaabde95a035540c32e64f24459f33", + "text": "NONE", + "markdown": "NONE ([#96179](https://github.com/kubernetes/kubernetes/pull/96179), [@bbyrne5](https://github.com/bbyrne5)) [SIG Network]", + "author": "bbyrne5", + "author_url": "https://github.com/bbyrne5", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96179", + "pr_number": 96179, + "kinds": ["cleanup"], + "sigs": ["network"] + }, + "96185": { + "commit": "d0398c395ad7455cc67e4f74250f16fc98610e49", + "text": "Duplicate owner reference entries in create/update/patch requests now get deduplicated by the API server. The client sending the request now receives a warning header in the API response. Clients should stop sending requests with duplicate owner references. The API server may reject such requests as early as 1.24.", + "markdown": "Duplicate owner reference entries in create/update/patch requests now get deduplicated by the API server. The client sending the request now receives a warning header in the API response. Clients should stop sending requests with duplicate owner references. The API server may reject such requests as early as 1.24. ([#96185](https://github.com/kubernetes/kubernetes/pull/96185), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery and Testing]", + "author": "roycaihw", + "author_url": "https://github.com/roycaihw", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96185", + "pr_number": 96185, + "areas": ["apiserver", "test"], + "kinds": ["bug"], + "sigs": ["api-machinery", "testing"], + "duplicate": true + }, + "96190": { + "commit": "ee0d35895d0f8a8a29e095eecb28f1c12a217908", + "text": "Introduce kubectl-convert plugin.", + "markdown": "Introduce kubectl-convert plugin. ([#96190](https://github.com/kubernetes/kubernetes/pull/96190), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/1020-kubectl-staging/README.md", + "type": "KEP" + }, + { + "description": "[Code Organization Agenda]", + "url": "https://docs.google.com/document/d/1HtTI0rJEGP_MSf6eO87aCmx_tzpovPAAg7U2Zxwm8FE/edit?ts=5c9d0a4c#bookmark=id.fqfpdy1w5idg", + "type": "external" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96190", + "pr_number": 96190, + "areas": ["kubectl", "test"], + "kinds": ["cleanup"], + "sigs": ["cli", "testing"], + "duplicate": true + }, + "96197": { + "commit": "8bdd10b7d73cb0d705b895e0c9a5646dfbb19a24", + "text": "The beta `RootCAConfigMap` feature gate is enabled by default and causes kube-controller-manager to publish a \"kube-root-ca.crt\" ConfigMap to every namespace. This ConfigMap contains a CA bundle used for verifying connections to the kube-apiserver.", + "markdown": "The beta `RootCAConfigMap` feature gate is enabled by default and causes kube-controller-manager to publish a \"kube-root-ca.crt\" ConfigMap to every namespace. This ConfigMap contains a CA bundle used for verifying connections to the kube-apiserver. ([#96197](https://github.com/kubernetes/kubernetes/pull/96197), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Apps, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96197", + "pr_number": 96197, + "areas": ["apiserver", "test"], + "kinds": ["feature"], + "sigs": ["api-machinery", "apps", "auth", "testing"], + "feature": true, + "duplicate": true + }, + "96202": { + "commit": "e5194dd9362febb142f8187d2ad070203da8a71a", + "text": "NodeAffinity plugin can be configured with AddedAffinity.", + "markdown": "NodeAffinity plugin can be configured with AddedAffinity. ([#96202](https://github.com/kubernetes/kubernetes/pull/96202), [@alculquicondor](https://github.com/alculquicondor)) [SIG Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/reference/scheduling/config/", + "type": "official" + }, + { + "description": "[KEP]", + "url": "https://git.k8s.io/enhancements/keps/sig-scheduling/785-scheduler-component-config-api", + "type": "external" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96202", + "pr_number": 96202, + "areas": ["kubelet", "test"], + "kinds": ["api-change", "feature"], + "sigs": ["node", "scheduling", "testing"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "96211": { + "commit": "2bb92efa3c514a2823583c00e6ba3e9141d81f11", + "text": "Fix paging issues when Azure API returns empty values with non-empty nextLink", + "markdown": "Fix paging issues when Azure API returns empty values with non-empty nextLink ([#96211](https://github.com/kubernetes/kubernetes/pull/96211), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider]", + "author": "feiskyer", + "author_url": "https://github.com/feiskyer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96211", + "pr_number": 96211, + "areas": ["cloudprovider", "dependency", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "96217": { + "commit": "b1b627072a8a0eb28bc71110e72b5843a9282863", + "text": "exposes and sets a default timeout for the TokenReview client for DelegatingAuthenticationOptions", + "markdown": "Exposes and sets a default timeout for the TokenReview client for DelegatingAuthenticationOptions ([#96217](https://github.com/kubernetes/kubernetes/pull/96217), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Cloud Provider]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96217", + "pr_number": 96217, + "areas": ["apiserver", "cloudprovider"], + "kinds": ["bug"], + "sigs": ["api-machinery", "cloud-provider"], + "duplicate": true + }, + "96224": { + "commit": "734889ed822d1a60c6dd61ccd8f1ed0e8ab31ea5", + "text": "Fix vSphere volumes that could be erroneously attached to wrong node", + "markdown": "Fix vSphere volumes that could be erroneously attached to wrong node ([#96224](https://github.com/kubernetes/kubernetes/pull/96224), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96224", + "pr_number": 96224, + "areas": ["cloudprovider"], + "kinds": ["bug"], + "sigs": ["cloud-provider", "storage"], + "duplicate": true + }, + "96236": { + "commit": "8f6ffb24df989608b87451f89b8ac9fc338ed71c", + "text": "API priority and fairness metrics use snake_case in label names", + "markdown": "API priority and fairness metrics use snake_case in label names ([#96236](https://github.com/kubernetes/kubernetes/pull/96236), [@adtac](https://github.com/adtac)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Testing]", + "author": "adtac", + "author_url": "https://github.com/adtac", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96236", + "pr_number": 96236, + "areas": ["apiserver", "test"], + "kinds": ["cleanup"], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "96247": { + "commit": "02528ce91af8398999eb9a99b7abff314e4d8b83", + "text": "e2e test for PodFsGroupChangePolicy", + "markdown": "E2e test for PodFsGroupChangePolicy ([#96247](https://github.com/kubernetes/kubernetes/pull/96247), [@saikat-royc](https://github.com/saikat-royc)) [SIG Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/695-skip-permission-change", + "type": "KEP" + } + ], + "author": "saikat-royc", + "author_url": "https://github.com/saikat-royc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96247", + "pr_number": 96247, + "areas": ["e2e-test-framework", "test"], + "kinds": ["feature"], + "sigs": ["storage", "testing"], + "feature": true, + "duplicate": true + }, + "96251": { + "commit": "48a2bca89377897ea9ae50594934636e626e9551", + "text": "Improve error messages related to nodePort endpoint changes conntrack entries cleanup.", + "markdown": "Improve error messages related to nodePort endpoint changes conntrack entries cleanup. ([#96251](https://github.com/kubernetes/kubernetes/pull/96251), [@ravens](https://github.com/ravens)) [SIG Network]", + "author": "ravens", + "author_url": "https://github.com/ravens", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96251", + "pr_number": 96251, + "kinds": ["bug"], + "sigs": ["network"] + }, + "96266": { + "commit": "afb2342318562a62e832907b8183388244c770e0", + "text": "Fix memory leak in kube-apiserver when underlying time goes forth and back.", + "markdown": "Fix memory leak in kube-apiserver when underlying time goes forth and back. ([#96266](https://github.com/kubernetes/kubernetes/pull/96266), [@chenyw1990](https://github.com/chenyw1990)) [SIG API Machinery]", + "author": "chenyw1990", + "author_url": "https://github.com/chenyw1990", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96266", + "pr_number": 96266, + "areas": ["apiserver"], + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "96273": { + "commit": "23eadbeabda78b00bfa6d3e7271986bfac10370c", + "text": "If BoundServiceAccountTokenVolume is enabled, cluster admins can use metric `serviceaccount_stale_tokens_total` to monitor workloads that are depending on the extended tokens. If there are no such workloads, turn off extended tokens by starting `kube-apiserver` with flag `--service-account-extend-token-expiration=false`", + "markdown": "If BoundServiceAccountTokenVolume is enabled, cluster admins can use metric `serviceaccount_stale_tokens_total` to monitor workloads that are depending on the extended tokens. If there are no such workloads, turn off extended tokens by starting `kube-apiserver` with flag `--service-account-extend-token-expiration=false` ([#96273](https://github.com/kubernetes/kubernetes/pull/96273), [@zshihang](https://github.com/zshihang)) [SIG API Machinery and Auth]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96273", + "pr_number": 96273, + "areas": ["apiserver"], + "kinds": ["api-change", "feature"], + "sigs": ["api-machinery", "auth"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "96308": { + "commit": "0e421222703010b78fa9970c08ac3685d972d5f8", + "text": "update max azure data disk count map", + "markdown": "Update max azure data disk count map ([#96308](https://github.com/kubernetes/kubernetes/pull/96308), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96308", + "pr_number": 96308, + "areas": ["provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider", "storage"], + "duplicate": true + }, + "96312": { + "commit": "48a0ef6a396f84ec93a8e68d9843c6fe27c4e848", + "text": "Users will now be able to configure all supported values for AWS NLB health check interval and thresholds for new resources.", + "markdown": "Users will now be able to configure all supported values for AWS NLB health check interval and thresholds for new resources. ([#96312](https://github.com/kubernetes/kubernetes/pull/96312), [@kishorj](https://github.com/kishorj)) [SIG Cloud Provider]", + "author": "kishorj", + "author_url": "https://github.com/kishorj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96312", + "pr_number": 96312, + "areas": ["cloudprovider"], + "kinds": ["cleanup"], + "sigs": ["cloud-provider"] + }, + "96327": { + "commit": "4b46d44e0c97b288d7e4182f67f936746654b114", + "text": "AppProtocol is now GA for Endpoints and Services. The ServiceAppProtocol feature gate will be deprecated in 1.21.", + "markdown": "AppProtocol is now GA for Endpoints and Services. The ServiceAppProtocol feature gate will be deprecated in 1.21. ([#96327](https://github.com/kubernetes/kubernetes/pull/96327), [@robscott](https://github.com/robscott)) [SIG Apps and Network]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96327", + "pr_number": 96327, + "kinds": ["api-change", "feature"], + "sigs": ["apps", "network"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "96338": { + "commit": "59405cc2b437de501ef1f129952fcbf2a0115421", + "text": "Support customize load balancer health probe protocol and request path", + "markdown": "Support customize load balancer health probe protocol and request path ([#96338](https://github.com/kubernetes/kubernetes/pull/96338), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96338", + "pr_number": 96338, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["feature"], + "sigs": ["cloud-provider"], + "feature": true + }, + "96355": { + "commit": "e21ce4bae23e6bb639c5c69094692b5d0f82b4b2", + "text": "fix pull image error from multiple ACRs using azure managed identity", + "markdown": "Fix pull image error from multiple ACRs using azure managed identity ([#96355](https://github.com/kubernetes/kubernetes/pull/96355), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96355", + "pr_number": 96355, + "areas": ["provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "96369": { + "commit": "eb7bc22b951276a1e31ba759ea1111b6d9e6f210", + "text": "Fixed a bug that prevents kubectl to validate CRDs with schema using x-kubernetes-preserve-unknown-fields on object fields.", + "markdown": "Fixed a bug that prevents kubectl to validate CRDs with schema using x-kubernetes-preserve-unknown-fields on object fields. ([#96369](https://github.com/kubernetes/kubernetes/pull/96369), [@gautierdelorme](https://github.com/gautierdelorme)) [SIG API Machinery and Testing]", + "author": "gautierdelorme", + "author_url": "https://github.com/gautierdelorme", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96369", + "pr_number": 96369, + "areas": ["test"], + "kinds": ["bug"], + "sigs": ["api-machinery", "testing"], + "duplicate": true + }, + "96370": { + "commit": "0ad06e991ab0d0708593e3e6415c521c6b76b7d1", + "text": "Add --experimental-logging-sanitization flag enabling runtime protection from leaking sensitive data in logs", + "markdown": "Add --experimental-logging-sanitization flag enabling runtime protection from leaking sensitive data in logs ([#96370](https://github.com/kubernetes/kubernetes/pull/96370), [@serathius](https://github.com/serathius)) [SIG API Machinery, Cluster Lifecycle and Instrumentation]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/59e5c698639a8489ee3808c13fc9526f746c5fc4/keps/sig-instrumentation/1753-logs-sanitization", + "type": "KEP" + } + ], + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96370", + "pr_number": 96370, + "kinds": ["feature"], + "sigs": ["api-machinery", "cluster-lifecycle", "instrumentation"], + "feature": true, + "duplicate": true + }, + "96376": { + "commit": "6068f12e907e388762e99e44cebc87152b456799", + "text": "Move configurable fsgroup change policy for pods to beta", + "markdown": "Move configurable fsgroup change policy for pods to beta ([#96376](https://github.com/kubernetes/kubernetes/pull/96376), [@gnufied](https://github.com/gnufied)) [SIG Apps and Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96376", + "pr_number": 96376, + "kinds": ["api-change", "feature"], + "sigs": ["apps", "storage"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "96397": { + "commit": "c3c050c88f4265ba77464682801e2cc1ab8021f7", + "text": "Updates docs and guidance on cloud provider InstancesV2 and Zones interface for external cloud providers:\n- removes experimental warning for InstancesV2\n- document that implementation of InstancesV2 will disable calls to Zones\n- deprecate Zones in favor of InstancesV2", + "markdown": "Updates docs and guidance on cloud provider InstancesV2 and Zones interface for external cloud providers:\n - removes experimental warning for InstancesV2\n - document that implementation of InstancesV2 will disable calls to Zones\n - deprecate Zones in favor of InstancesV2 ([#96397](https://github.com/kubernetes/kubernetes/pull/96397), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider]", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96397", + "pr_number": 96397, + "areas": ["cloudprovider"], + "kinds": ["documentation"], + "sigs": ["cloud-provider"] + }, + "96421": { + "commit": "5ed4b76a03b5eddc62939a1569b61532b4a06a72", + "text": "Fixed a bug where aggregator_unavailable_apiservice metrics were reported for deleted apiservices.", + "markdown": "Fixed a bug where aggregator_unavailable_apiservice metrics were reported for deleted apiservices. ([#96421](https://github.com/kubernetes/kubernetes/pull/96421), [@dgrisonnet](https://github.com/dgrisonnet)) [SIG API Machinery and Instrumentation]", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96421", + "pr_number": 96421, + "kinds": ["bug"], + "sigs": ["api-machinery", "instrumentation"], + "duplicate": true + }, + "96426": { + "commit": "ae95984e885bc9e418042272a622b519eff324cc", + "text": "kube-scheduler now logs processed component config at startup", + "markdown": "Kube-scheduler now logs processed component config at startup ([#96426](https://github.com/kubernetes/kubernetes/pull/96426), [@damemi](https://github.com/damemi)) [SIG Scheduling]", + "author": "damemi", + "author_url": "https://github.com/damemi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96426", + "pr_number": 96426, + "kinds": ["cleanup"], + "sigs": ["scheduling"] + }, + "96439": { + "commit": "c3769096c6783996ac493cba2e8e6371f23da922", + "text": "Fix a bug that DefaultPreemption plugin is disabled when using (legacy) scheduler policy.", + "markdown": "Fix a bug that DefaultPreemption plugin is disabled when using (legacy) scheduler policy. ([#96439](https://github.com/kubernetes/kubernetes/pull/96439), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing]", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96439", + "pr_number": 96439, + "areas": ["test"], + "kinds": ["bug"], + "sigs": ["scheduling", "testing"], + "duplicate": true + }, + "96440": { + "commit": "765d949bfc35032aa9bf2eb70724ecfde497e32d", + "text": "EndpointSlice has a new NodeName field guarded by the EndpointSliceNodeName feature gate.\n- EndpointSlice topology field will be deprecated in an upcoming release.\n- EndpointSlice \"IP\" address type is formally removed after being deprecated in Kubernetes 1.17.\n- The discovery.k8s.io/v1alpha1 API is deprecated and will be removed in Kubernetes 1.21.", + "markdown": "EndpointSlice has a new NodeName field guarded by the EndpointSliceNodeName feature gate.\n - EndpointSlice topology field will be deprecated in an upcoming release.\n - EndpointSlice \"IP\" address type is formally removed after being deprecated in Kubernetes 1.17.\n - The discovery.k8s.io/v1alpha1 API is deprecated and will be removed in Kubernetes 1.21. ([#96440](https://github.com/kubernetes/kubernetes/pull/96440), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps and Network]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96440", + "pr_number": 96440, + "kinds": ["api-change", "feature"], + "sigs": ["api-machinery", "apps", "network"], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "96443": { + "commit": "798eb0772003a6efcd570aad6c11c4a51c07975a", + "text": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#96443](https://github.com/kubernetes/kubernetes/pull/96443), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps]", + "author": "alaypatel07", + "author_url": "https://github.com/alaypatel07", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96443", + "pr_number": 96443, + "areas": ["test"], + "kinds": ["cleanup"], + "sigs": ["apps"] + }, + "96450": { + "commit": "38c5652aa8f4691633f074ec95aeaaefecda21d4", + "text": "Support custom tags for cloud provider managed resources", + "markdown": "Support custom tags for cloud provider managed resources ([#96450](https://github.com/kubernetes/kubernetes/pull/96450), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96450", + "pr_number": 96450, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["feature"], + "sigs": ["cloud-provider"], + "feature": true + }, + "96464": { + "commit": "c21c56a061f9775f338e627e8ba91330dc2ae133", + "text": "Fix IP fragmentation of UDP and TCP packets not supported issues on LoadBalancer rules", + "markdown": "Fix IP fragmentation of UDP and TCP packets not supported issues on LoadBalancer rules ([#96464](https://github.com/kubernetes/kubernetes/pull/96464), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96464", + "pr_number": 96464, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "96525": { + "commit": "ec734aced701ade27b2f68e8a6584c89be9c4acb", + "text": "The kube-apiserver will no longer serve APIs that should have been deleted in GA non-alpha levels. Alpha levels will continue to serve the removed APIs so that CI doesn't immediately break.", + "markdown": "The kube-apiserver will no longer serve APIs that should have been deleted in GA non-alpha levels. Alpha levels will continue to serve the removed APIs so that CI doesn't immediately break. ([#96525](https://github.com/kubernetes/kubernetes/pull/96525), [@deads2k](https://github.com/deads2k)) [SIG API Machinery]", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96525", + "pr_number": 96525, + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "96527": { + "commit": "36f571404fcb136011024b89efaa2a0d089acd5f", + "text": "API priority and fairness graduated to beta. 1.19 servers with APF turned on should not be run in a multi-server cluster with 1.20+ servers.", + "markdown": "API priority and fairness graduated to beta. 1.19 servers with APF turned on should not be run in a multi-server cluster with 1.20+ servers. ([#96527](https://github.com/kubernetes/kubernetes/pull/96527), [@adtac](https://github.com/adtac)) [SIG API Machinery and Testing]", + "author": "adtac", + "author_url": "https://github.com/adtac", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96527", + "pr_number": 96527, + "areas": ["apiserver", "test"], + "kinds": ["api-change"], + "sigs": ["api-machinery", "testing"], + "duplicate": true, + "action_required": true + }, + "96528": { + "commit": "1a4e1f6534150797a3429e6791b22ba60d366634", + "text": "Document that ServiceTopology feature is required to use `service.spec.topologyKeys`.", + "markdown": "Document that ServiceTopology feature is required to use `service.spec.topologyKeys`. ([#96528](https://github.com/kubernetes/kubernetes/pull/96528), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps]", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96528", + "pr_number": 96528, + "kinds": ["api-change", "documentation"], + "sigs": ["apps"], + "duplicate_kind": true + }, + "96533": { + "commit": "160c33a6a17b6c49fee365d7cbe2acc7f1fe2f8e", + "text": "Reduce volume name length for vsphere volumes", + "markdown": "Reduce volume name length for vsphere volumes ([#96533](https://github.com/kubernetes/kubernetes/pull/96533), [@gnufied](https://github.com/gnufied)) [SIG Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96533", + "pr_number": 96533, + "kinds": ["bug"], + "sigs": ["storage"] + }, + "96545": { + "commit": "1c2f5c3a65177dc9b7cb23538b3d5a90d31b2f27", + "text": "Update the route table tag in the route reconcile loop", + "markdown": "Update the route table tag in the route reconcile loop ([#96545](https://github.com/kubernetes/kubernetes/pull/96545), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96545", + "pr_number": 96545, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "96586": { + "commit": "b3fc8888631a43c21df159c395e560adf967be1f", + "text": "Fixes code generation for non-namespaced create subresources fake client test.", + "markdown": "Fixes code generation for non-namespaced create subresources fake client test. ([#96586](https://github.com/kubernetes/kubernetes/pull/96586), [@Doude](https://github.com/Doude)) [SIG API Machinery]", + "author": "Doude", + "author_url": "https://github.com/Doude", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96586", + "pr_number": 96586, + "areas": ["code-generation"], + "kinds": ["bug"], + "sigs": ["api-machinery"] + }, + "96627": { + "commit": "809556517611e8bb78383a077d6f326c0fb355fa", + "text": "The Conformance test \"validates that there is no conflict between pods with same hostPort but different hostIP and protocol\" now validates the connectivity to each hostPort, in addition to the functionality.", + "markdown": "The Conformance test \"validates that there is no conflict between pods with same hostPort but different hostIP and protocol\" now validates the connectivity to each hostPort, in addition to the functionality. ([#96627](https://github.com/kubernetes/kubernetes/pull/96627), [@aojea](https://github.com/aojea)) [SIG Scheduling and Testing]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96627", + "pr_number": 96627, + "areas": ["conformance", "test"], + "kinds": ["cleanup", "failing-test"], + "sigs": ["scheduling", "testing"], + "duplicate": true, + "duplicate_kind": true + }, + "96705": { + "commit": "7d72ddca6e9a4e9cfa481b137bd0546be6a16cad", + "text": "fix: resize Azure disk issue when it's in attached state", + "markdown": "Fix: resize Azure disk issue when it's in attached state ([#96705](https://github.com/kubernetes/kubernetes/pull/96705), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96705", + "pr_number": 96705, + "areas": ["cloudprovider", "provider/azure"], + "kinds": ["bug"], + "sigs": ["cloud-provider"] + }, + "96716": { + "commit": "b2ecd1b3a3192fbbe2b9e348e095326f51dc43dd", + "text": "Bump node-problem-detector version to v0.8.5 to fix OOM detection in with Linux kernels 5.1+", + "markdown": "Bump node-problem-detector version to v0.8.5 to fix OOM detection in with Linux kernels 5.1+ ([#96716](https://github.com/kubernetes/kubernetes/pull/96716), [@tosi3k](https://github.com/tosi3k)) [SIG Cloud Provider, Scalability and Testing]", + "author": "tosi3k", + "author_url": "https://github.com/tosi3k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96716", + "pr_number": 96716, + "areas": ["provider/gcp", "test"], + "kinds": ["bug"], + "sigs": ["cloud-provider", "scalability", "testing"], + "duplicate": true + }, + "96727": { + "commit": "f35df2f8411ea68891c9fa829733c497002d4b97", + "text": "Changes to timeout parameter handling in 1.20.0-beta.2 have been reverted to avoid breaking backwards compatibility with existing clients.", + "markdown": "Changes to timeout parameter handling in 1.20.0-beta.2 have been reverted to avoid breaking backwards compatibility with existing clients. ([#96727](https://github.com/kubernetes/kubernetes/pull/96727), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96727", + "pr_number": 96727, + "areas": ["apiserver", "test"], + "kinds": ["cleanup", "regression"], + "sigs": ["api-machinery", "testing"], + "duplicate": true, + "duplicate_kind": true + }, + "96742": { + "commit": "e3063233a5d8d7c221fb7aaff0a170507339a857", + "text": "Resolves an issue running Ingress conformance tests on clusters which use finalizers on Ingress objects to manage releasing load balancer resources", + "markdown": "Resolves an issue running Ingress conformance tests on clusters which use finalizers on Ingress objects to manage releasing load balancer resources ([#96742](https://github.com/kubernetes/kubernetes/pull/96742), [@spencerhance](https://github.com/spencerhance)) [SIG Network and Testing]", + "author": "spencerhance", + "author_url": "https://github.com/spencerhance", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96742", + "pr_number": 96742, + "areas": ["test"], + "kinds": ["failing-test"], + "sigs": ["network", "testing"], + "duplicate": true + }, + "96810": { + "commit": "540e41c825f71d5ac67bff97902c8e689784a474", + "text": "Resolves a regression in 1.19+ with workloads targeting deprecated beta os/arch labels getting stuck in NodeAffinity status on node startup.", + "markdown": "Resolves a regression in 1.19+ with workloads targeting deprecated beta os/arch labels getting stuck in NodeAffinity status on node startup. ([#96810](https://github.com/kubernetes/kubernetes/pull/96810), [@liggitt](https://github.com/liggitt)) [SIG Node]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96810", + "pr_number": 96810, + "areas": ["kubelet"], + "kinds": ["bug", "regression"], + "sigs": ["node"], + "duplicate_kind": true + }, + "96907": { + "commit": "98bc258bf5516b6c60860e06845b899eab29825d", + "text": "kubeadm: fix coredns migration should be triggered when there are newdefault configs during kubeadm upgrade", + "markdown": "Kubeadm: fix coredns migration should be triggered when there are newdefault configs during kubeadm upgrade ([#96907](https://github.com/kubernetes/kubernetes/pull/96907), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96907", + "pr_number": 96907, + "areas": ["kubeadm"], + "kinds": ["bug"], + "sigs": ["cluster-lifecycle"] + } +} diff --git a/releases/release-1.20/release-notes-draft.md b/releases/release-1.20/release-notes-draft.md index 3b9f390e0a7..6e2d09f380d 100644 --- a/releases/release-1.20/release-notes-draft.md +++ b/releases/release-1.20/release-notes-draft.md @@ -1,711 +1,711 @@ -# Release notes for v1.20.0-rc.0 - -[Documentation](https://docs.k8s.io/docs/home) - -# Changelog since v1.19.0 - -## What's New (Major Themes) - -### Dockershim deprecation - -Docker as an underlying runtime is being deprecated. Docker-produced images will continue to work in your cluster with all runtimes, as they always have. -The Kubernetes community [has written a blog post about this in detail](https://blog.k8s.io/2020/12/02/dont-panic-kubernetes-and-docker/) with [a dedicated FAQ page for it](https://blog.k8s.io/2020/12/02/dockershim-faq/). - -### External credential provider for client-go - -The client-go credential plugins can now be passed in the current cluster information via the `KUBERNETES_EXEC_INFO` environment variable. Learn more about this on [client-go credential plugins documentation](https://docs.k8s.io/reference/access-authn-authz/authentication/#client-go-credential-plugins/). - -### CronJob controller v2 is available through feature gate - -An alternative implementation of `CronJob` controller is now available as an alpha feature in this release, which has experimental performance improvement by using informers instead of polling. While this will be the default behavior in the future, you can [try them in this release through a feature gate](https://docs.k8s.io/concepts/workloads/controllers/cron-jobs/). - -### PID Limits graduates to General Availability - -PID Limits features are now generally available on both `SupportNodePidsLimit` (node-to-pod PID isolation) and `SupportPodPidsLimit` (ability to limit PIDs per pod), after being enabled-by-default in beta stage for a year. - -### API Priority and Fairness graduates to Beta - -Initially introduced in 1.18, Kubernetes 1.20 now enables API Priority and Fairness (APF) by default. This allows `kube-apiserver` to [categorize incoming requests by priority levels](https://docs.k8s.io/concepts/cluster-administration/flow-control/). - -### IPv4/IPv6 run - -IPv4/IPv6 dual-stack has been reimplemented for 1.20 to support dual-stack Services, based on user and community feedback. If your cluster has dual-stack enabled, you can create Services which can use IPv4, IPv6, or both, and you can change this setting for existing Services. Details are available in updated [IPv4/IPv6 dual-stack docs](https://docs.k8s.io/concepts/services-networking/dual-stack/), which cover the nuanced array of options. - -We expect this implementation to progress from alpha to beta and GA in coming releases, so we’re eager to have you comment about your dual-stack experiences in [#k8s-dual-stack](https://kubernetes.slack.com/messages/k8s-dual-stack) or in [enhancements #563](https://features.k8s.io/563). - -### go1.15.5 - -go1.15.5 has been integrated to Kubernets project as of this release, [including other infrastructure related updates on this effort](https://github.com/kubernetes/kubernetes/pull/95776). - -### CSI Volume Snapshot graduates to General Availability - -CSI Volume Snapshot moves to GA in the 1.20 release. This feature provides a standard way to trigger volume snapshot operations in Kubernetes and allows Kubernetes users to incorporate snapshot operations in a portable manner on any Kubernetes environment regardless of supporting underlying storage providers. -Additionally, these Kubernetes snapshot primitives act as basic building blocks that unlock the ability to develop advanced, enterprise grade, storage administration features for Kubernetes: including application or cluster level backup solutions. -Note that snapshot support will require Kubernetes distributors to bundle the Snapshot controller, Snapshot CRDs, and validation webhook. In addition, a CSI driver supporting the snapshot functionality must also be deployed on the cluster. - -### Non-recursive Volume Ownership (FSGroup) graduates to Beta - -By default, the `fsgroup` setting, if specified, recursively updates permissions for every file in a volume on every mount. This can make mount, and pod startup, very slow if the volume has many files. -This setting enables a pod to specify a `PodFSGroupChangePolicy` that indicates that volume ownership and permissions will be changed only when permission and ownership of the root directory does not match with expected permissions on the volume. - -### CSIDriver policy for FSGroup graduates to Beta - -The FSGroup's CSIDriver Policy is now beta in 1.20. This allows CSIDrivers to explicitly indicate if they want Kubernetes to manage permissions and ownership for their volumes via `fsgroup`. - -### Security Improvements for CSI Drivers (Alpha) - -In 1.20, we introduce a new alpha feature `CSIServiceAccountToken`. This feature allows CSI drivers to impersonate the pods that they mount the volumes for. This improves the security posture in the mounting process where the volumes are ACL’ed on the pods’ service account without handing out unnecessary permissions to the CSI drivers’ service account. This feature is especially important for secret-handling CSI drivers, such as the secrets-store-csi-driver. Since these tokens can be rotated and short-lived, this feature also provides a knob for CSI drivers to receive `NodePublishVolume` RPC calls periodically with the new token. This knob is also useful when volumes are short-lived, e.g. certificates. - -### Introducing Graceful Node Shutdown (Alpha) - -The `GracefulNodeShutdown` feature is now in Alpha. This allows kubelet to be aware of node system shutdowns, enabling graceful termination of pods during a system shutdown. This feature can be [enabled through feature gate](https://docs.k8s.io/concepts/architecture/nodes/#graceful-node-shutdown). - -### Runtime log sanitation - -Logs can now be configured to use runtime protection from leaking sensitive data. [Details for this experimental feature is available in documentation](https://docs.k8s.io/concepts/cluster-administration/system-logs/#log-sanitization). - -### Pod resource metrics - -On-demand metrics calculation is now available through `/metrics/resources`. [When enabled]( -https://docs.k8s.io/concepts/cluster-administration/system-metrics#kube-scheduler-metrics), the endpoint will report the requested resources and the desired limits of all running pods. - -### Introducing `RootCAConfigMap` - -`RootCAConfigMap` graduates to Beta, seperating from `BoundServiceAccountTokenVolume`. The `kube-root-ca.crt` ConfigMap is now available to every namespace, by default. It contains the Certificate Authority bundle for verify kube-apiserver connections. - -### `kubectl debug` graduates to Beta - -`kubectl alpha debug` graduates from alpha to beta in 1.20, becoming `kubectl debug`. -`kubectl debug` provides support for common debugging workflows directly from kubectl. Troubleshooting scenarios supported in this release of `kubectl` include: -Troubleshoot workloads that crash on startup by creating a copy of the pod that uses a different container image or command. -Troubleshoot distroless containers by adding a new container with debugging tools, either in a new copy of the pod or using an ephemeral container. (Ephemeral containers are an alpha feature that are not enabled by default.) -Troubleshoot on a node by creating a container running in the host namespaces and with access to the host’s filesystem. -Note that as a new builtin command, `kubectl debug` takes priority over any `kubectl` plugin named “debug”. You will need to rename the affected plugin. -Invocations using `kubectl alpha debug` are now deprecated and will be removed in a subsequent release. Update your scripts to use `kubectl debug` instead of `kubectl alpha debug`! -For more information about kubectl debug, see Debugging Running Pods on the Kubernetes website, kubectl help debug, or reach out to SIG CLI by visiting #sig-cli or commenting on [enhancement #1441](https://features.k8s.io/1441). - -### Removing deprecated flags in kubeadm - -`kubeadm` applies a number of deprecations and removals of deprecated features in this release. More details are available in the Urgent Upgrade Notes and Kind / Deprecation sections. - -### Pod Hostname as FQDN graduates to Beta - -Previously introduced in 1.19 behind a feature gate, `SetHostnameAsFQDN` is now enabled by default. More details on this behavior is available in [documentation for DNS for Services and Pods](https://docs.k8s.io/concepts/services-networking/dns-pod-service/#pod-sethostnameasfqdn-field) - -### `TokenRequest` / `TokenRequestProjection` graduates to General Availability - -Service account tokens bound to pod is now a stable feature. The feature gates will be removed in 1.21 release. For more information, refer to notes below on the changelogs. - -### RuntimeClass feature graduates to General Availability. - -The `node.k8s.io` API groups are promoted from `v1beta1` to `v1`. `v1beta1` is now deprecated and will be removed in a future release, please start using `v1`. ([#95718](https://github.com/kubernetes/kubernetes/pull/95718), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Apps, Auth, Node, Scheduling and Testing] - -### Cloud Controller Manager now exclusively shipped by Cloud Provider - -Kubernetes will no longer ship an instance of the Cloud Controller Manager binary. Each Cloud Provider is expected to ship their own instance of this binary. Details for a Cloud Provider to create an instance of such a binary can be found under [here](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/cloud-provider/sample). Anyone with questions on building a Cloud Controller Manager should reach out to SIG Cloud Provider. Questions about the Cloud Controller Manager on a Managed Kubernetes solution should go to the relevant Cloud Provider. Questions about the Cloud Controller Manager on a non managed solution can be brought up with SIG Cloud Provider. - -## Known Issues - -### Summary API in kubelet doesn't have accelerator metrics -Currently, cadvisor_stats_provider provides AcceleratorStats but cri_stats_provider does not. As a result, when using cri_stats_provider, kubelet's Summary API does not have accelerator metrics. [There is an open work in progress to fix this](https://github.com/kubernetes/kubernetes/pull/96873). - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- A bug was fixed in kubelet where exec probe timeouts were not respected. This may result in unexpected behavior since the default timeout (if not specified) is `1s` which may be too small for some exec probes. Ensure that pods relying on this behavior are updated to correctly handle probe timeouts. See [configure probe](https://docs.k8s.io/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes) section of the documentation for more details. - - - This change in behavior may be unexpected for some clusters and can be disabled by turning off the `ExecProbeTimeout` feature gate. This gate will be locked and removed in future releases so that exec probe timeouts are always respected. ([#94115](https://github.com/kubernetes/kubernetes/pull/94115), [@andrewsykim](https://github.com/andrewsykim)) [SIG Node and Testing] -- RuntimeClass feature graduates to General Availability. Promote `node.k8s.io` API groups from `v1beta1` to `v1`. `v1beta1` is now deprecated and will be removed in a future release, please start using `v1`. ([#95718](https://github.com/kubernetes/kubernetes/pull/95718), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Apps, Auth, Node, Scheduling and Testing] -- API priority and fairness graduated to beta. 1.19 servers with APF turned on should not be run in a multi-server cluster with 1.20+ servers. ([#96527](https://github.com/kubernetes/kubernetes/pull/96527), [@adtac](https://github.com/adtac)) [SIG API Machinery and Testing] -- For CSI drivers, kubelet no longer creates the target_path for NodePublishVolume in accordance with the CSI spec. Kubelet also no longer checks if staging and target paths are mounts or corrupted. CSI drivers need to be idempotent and do any necessary mount verification. ([#88759](https://github.com/kubernetes/kubernetes/pull/88759), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage] -- Kubeadm: http://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/2067-rename-master-label-taint/README.md ([#95382](https://github.com/kubernetes/kubernetes/pull/95382), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] - - The label applied to control-plane nodes "node-role.kubernetes.io/master" is now deprecated and will be removed in a future release after a GA deprecation period. - - Introduce a new label "node-role.kubernetes.io/control-plane" that will be applied in parallel to "node-role.kubernetes.io/master" until the removal of the "node-role.kubernetes.io/master" label. - - Make "kubeadm upgrade apply" add the "node-role.kubernetes.io/control-plane" label on existing nodes that only have the "node-role.kubernetes.io/master" label during upgrade. - - Please adapt your tooling built on top of kubeadm to use the "node-role.kubernetes.io/control-plane" label. - - The taint applied to control-plane nodes "node-role.kubernetes.io/master:NoSchedule" is now deprecated and will be removed in a future release after a GA deprecation period. - - Apply toleration for a new, future taint "node-role.kubernetes.io/control-plane:NoSchedule" to the kubeadm CoreDNS / kube-dns managed manifests. Note that this taint is not yet applied to kubeadm control-plane nodes. - - Please adapt your workloads to tolerate the same future taint preemptively. - -- Kubeadm: improve the validation of serviceSubnet and podSubnet. - ServiceSubnet has to be limited in size, due to implementation details, and the mask can not allocate more than 20 bits. - PodSubnet validates against the corresponding cluster "--node-cidr-mask-size" of the kube-controller-manager, it fail if the values are not compatible. - kubeadm no longer sets the node-mask automatically on IPv6 deployments, you must check that your IPv6 service subnet mask is compatible with the default node mask /64 or set it accordenly. - Previously, for IPv6, if the podSubnet had a mask lower than /112, kubeadm calculated a node-mask to be multiple of eight and splitting the available bits to maximise the number used for nodes. ([#95723](https://github.com/kubernetes/kubernetes/pull/95723), [@aojea](https://github.com/aojea)) [SIG Cluster Lifecycle] -- The deprecated flag --experimental-kustomize is now removed from kubeadm commands. Use --experimental-patches instead, which was introduced in 1.19. Migration infromation available in --help description for --exprimental-patches. ([#94871](https://github.com/kubernetes/kubernetes/pull/94871), [@neolit123](https://github.com/neolit123)) -- Windows hyper-v container featuregate is deprecated in 1.20 and will be removed in 1.21 ([#95505](https://github.com/kubernetes/kubernetes/pull/95505), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows] -- The kube-apiserver ability to serve on an insecure port, deprecated since v1.10, has been removed. The insecure address flags `--address` and `--insecure-bind-address` have no effect in kube-apiserver and will be removed in v1.24. The insecure port flags `--port` and `--insecure-port` may only be set to 0 and will be removed in v1.24. ([#95856](https://github.com/kubernetes/kubernetes/pull/95856), [@knight42](https://github.com/knight42), [SIG API Machinery, Node, Testing]) -- Add dual-stack Services (alpha). This is a BREAKING CHANGE to an alpha API. - It changes the dual-stack API wrt Service from a single ipFamily field to 3 - fields: ipFamilyPolicy (SingleStack, PreferDualStack, RequireDualStack), - ipFamilies (a list of families assigned), and clusterIPs (inclusive of - clusterIP). Most users do not need to set anything at all, defaulting will - handle it for them. Services are single-stack unless the user asks for - dual-stack. This is all gated by the "IPv6DualStack" feature gate. ([#91824](https://github.com/kubernetes/kubernetes/pull/91824), [@khenidak](https://github.com/khenidak)) [SIG API Machinery, Apps, CLI, Network, Node, Scheduling and Testing] -- `TokenRequest` and `TokenRequestProjection` are now GA features. The following flags are required by the API server: - - `--service-account-issuer`, should be set to a URL identifying the API server that will be stable over the cluster lifetime. - - `--service-account-key-file`, set to one or more files containing one or more public keys used to verify tokens. - - `--service-account-signing-key-file`, set to a file containing a private key to use to sign service account tokens. Can be the same file given to `kube-controller-manager` with `--service-account-private-key-file`. ([#95896](https://github.com/kubernetes/kubernetes/pull/95896), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Cluster Lifecycle] -- kubeadm: make the command "kubeadm alpha kubeconfig user" accept a "--config" flag and remove the following flags: - - apiserver-advertise-address / apiserver-bind-port: use either localAPIEndpoint from InitConfiguration or controlPlaneEndpoint from ClusterConfiguration. - - cluster-name: use clusterName from ClusterConfiguration - - cert-dir: use certificatesDir from ClusterConfiguration ([#94879](https://github.com/kubernetes/kubernetes/pull/94879), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] -- Resolves non-deterministic behavior of the garbage collection controller when ownerReferences with incorrect data are encountered. Events with a reason of `OwnerRefInvalidNamespace` are recorded when namespace mismatches between child and owner objects are detected. The [kubectl-check-ownerreferences](https://github.com/kubernetes-sigs/kubectl-check-ownerreferences) tool can be run prior to upgrading to locate existing objects with invalid ownerReferences. - - A namespaced object with an ownerReference referencing a uid of a namespaced kind which does not exist in the same namespace is now consistently treated as though that owner does not exist, and the child object is deleted. - - A cluster-scoped object with an ownerReference referencing a uid of a namespaced kind is now consistently treated as though that owner is not resolvable, and the child object is ignored by the garbage collector. ([#92743](https://github.com/kubernetes/kubernetes/pull/92743), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps and Testing] - - -## Changes by Kind - -### Deprecation - -- Docker support in the kubelet is now deprecated and will be removed in a future release. The kubelet uses a module called "dockershim" which implements CRI support for Docker and it has seen maintenance issues in the Kubernetes community. We encourage you to evaluate moving to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available. ([#94624](https://github.com/kubernetes/kubernetes/pull/94624), [@dims](https://github.com/dims)) [SIG Node] -- Kubeadm: deprecate self-hosting support. The experimental command "kubeadm alpha self-hosting" is now deprecated and will be removed in a future release. ([#95125](https://github.com/kubernetes/kubernetes/pull/95125), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: graduate the "kubeadm alpha certs" command to a parent command "kubeadm certs". The command "kubeadm alpha certs" is deprecated and will be removed in a future release. Please migrate. ([#94938](https://github.com/kubernetes/kubernetes/pull/94938), [@yagonobre](https://github.com/yagonobre)) [SIG Cluster Lifecycle] -- Kubeadm: remove the deprecated "kubeadm alpha kubelet config enable-dynamic" command. To continue using the feature please defer to the guide for "Dynamic Kubelet Configuration" at k8s.io. This change also removes the parent command "kubeadm alpha kubelet" as there are no more sub-commands under it for the time being. ([#94668](https://github.com/kubernetes/kubernetes/pull/94668), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: remove the deprecated --kubelet-config flag for the command "kubeadm upgrade node" ([#94869](https://github.com/kubernetes/kubernetes/pull/94869), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubectl: deprecate --delete-local-data ([#95076](https://github.com/kubernetes/kubernetes/pull/95076), [@dougsland](https://github.com/dougsland)) [SIG CLI, Cloud Provider and Scalability] -- Kubelet's deprecated endpoint `metrics/resource/v1alpha1` has been removed, please adopt `metrics/resource`. ([#94272](https://github.com/kubernetes/kubernetes/pull/94272), [@RainbowMango](https://github.com/RainbowMango)) [SIG Instrumentation and Node] -- Removes deprecated scheduler metrics DeprecatedSchedulingDuration, DeprecatedSchedulingAlgorithmPredicateEvaluationSecondsDuration, DeprecatedSchedulingAlgorithmPriorityEvaluationSecondsDuration ([#94884](https://github.com/kubernetes/kubernetes/pull/94884), [@arghya88](https://github.com/arghya88)) [SIG Instrumentation and Scheduling] -- Scheduler alpha metrics binding_duration_seconds and scheduling_algorithm_preemption_evaluation_seconds are deprecated, Both of those metrics are now covered as part of framework_extension_point_duration_seconds, the former as a PostFilter the latter and a Bind plugin. The plan is to remove both in 1.21 ([#95001](https://github.com/kubernetes/kubernetes/pull/95001), [@arghya88](https://github.com/arghya88)) [SIG Instrumentation and Scheduling] -- Support 'controlplane' as a valid EgressSelection type in the EgressSelectorConfiguration API. 'Master' is deprecated and will be removed in v1.22. ([#95235](https://github.com/kubernetes/kubernetes/pull/95235), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery] -- The v1alpha1 PodPreset API and admission plugin has been removed with no built-in replacement. Admission webhooks can be used to modify pods on creation. ([#94090](https://github.com/kubernetes/kubernetes/pull/94090), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Apps, CLI, Cloud Provider, Scalability and Testing] - - -### API Change - -- `TokenRequest` and `TokenRequestProjection` features have been promoted to GA. This feature allows generating service account tokens that are not visible in Secret objects and are tied to the lifetime of a Pod object. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection for details on configuring and using this feature. The `TokenRequest` and `TokenRequestProjection` feature gates will be removed in v1.21. - - kubeadm's kube-apiserver Pod manifest now includes the following flags by default "--service-account-key-file", "--service-account-signing-key-file", "--service-account-issuer". ([#93258](https://github.com/kubernetes/kubernetes/pull/93258), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Cluster Lifecycle, Storage and Testing] -- A new `nofuzz` go build tag now disables gofuzz support. Release binaries enable this. ([#92491](https://github.com/kubernetes/kubernetes/pull/92491), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery] -- Add WindowsContainerResources and Annotations to CRI-API UpdateContainerResourcesRequest ([#95741](https://github.com/kubernetes/kubernetes/pull/95741), [@katiewasnothere](https://github.com/katiewasnothere)) [SIG Node] -- Add a `serving` and `terminating` condition to the EndpointSlice API. - `serving` tracks the readiness of endpoints regardless of their terminating state. This is distinct from `ready` since `ready` is only true when pods are not terminating. - `terminating` is true when an endpoint is terminating. For pods this is any endpoint with a deletion timestamp. ([#92968](https://github.com/kubernetes/kubernetes/pull/92968), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps and Network] -- Add dual-stack Services (alpha). This is a BREAKING CHANGE to an alpha API. - It changes the dual-stack API wrt Service from a single ipFamily field to 3 - fields: ipFamilyPolicy (SingleStack, PreferDualStack, RequireDualStack), - ipFamilies (a list of families assigned), and clusterIPs (inclusive of - clusterIP). Most users do not need to set anything at all, defaulting will - handle it for them. Services are single-stack unless the user asks for - dual-stack. This is all gated by the "IPv6DualStack" feature gate. ([#91824](https://github.com/kubernetes/kubernetes/pull/91824), [@khenidak](https://github.com/khenidak)) [SIG API Machinery, Apps, CLI, Network, Node, Scheduling and Testing] -- Add support for hugepages to downward API ([#86102](https://github.com/kubernetes/kubernetes/pull/86102), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG API Machinery, Apps, CLI, Network, Node, Scheduling and Testing] -- Adds kubelet alpha feature, `GracefulNodeShutdown` which makes kubelet aware of node system shutdowns and result in graceful termination of pods during a system shutdown. ([#96129](https://github.com/kubernetes/kubernetes/pull/96129), [@bobbypage](https://github.com/bobbypage)) [SIG Node] -- AppProtocol is now GA for Endpoints and Services. The ServiceAppProtocol feature gate will be deprecated in 1.21. ([#96327](https://github.com/kubernetes/kubernetes/pull/96327), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- Automatic allocation of NodePorts for services with type LoadBalancer can now be disabled by setting the (new) parameter - Service.spec.allocateLoadBalancerNodePorts=false. The default is to allocate NodePorts for services with type LoadBalancer which is the existing behavior. ([#92744](https://github.com/kubernetes/kubernetes/pull/92744), [@uablrek](https://github.com/uablrek)) [SIG Apps and Network] -- Certain fields on Service objects will be automatically cleared when changing the service's `type` to a mode that does not need those fields. For example, changing from type=LoadBalancer to type=ClusterIP will clear the NodePort assignments, rather than forcing the user to clear them. ([#95196](https://github.com/kubernetes/kubernetes/pull/95196), [@thockin](https://github.com/thockin)) [SIG API Machinery, Apps, Network and Testing] -- Document that ServiceTopology feature is required to use `service.spec.topologyKeys`. ([#96528](https://github.com/kubernetes/kubernetes/pull/96528), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps] -- EndpointSlice has a new NodeName field guarded by the EndpointSliceNodeName feature gate. - - EndpointSlice topology field will be deprecated in an upcoming release. - - EndpointSlice "IP" address type is formally removed after being deprecated in Kubernetes 1.17. - - The discovery.k8s.io/v1alpha1 API is deprecated and will be removed in Kubernetes 1.21. ([#96440](https://github.com/kubernetes/kubernetes/pull/96440), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps and Network] -- External facing API podresources is now available under k8s.io/kubelet/pkg/apis/ ([#92632](https://github.com/kubernetes/kubernetes/pull/92632), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) [SIG Node and Testing] -- Fewer candidates are enumerated for preemption to improve performance in large clusters. ([#94814](https://github.com/kubernetes/kubernetes/pull/94814), [@adtac](https://github.com/adtac)) -- Fix conversions for custom metrics. ([#94481](https://github.com/kubernetes/kubernetes/pull/94481), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Instrumentation] -- GPU metrics provided by kubelet are now disabled by default. ([#95184](https://github.com/kubernetes/kubernetes/pull/95184), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) -- If BoundServiceAccountTokenVolume is enabled, cluster admins can use metric `serviceaccount_stale_tokens_total` to monitor workloads that are depending on the extended tokens. If there are no such workloads, turn off extended tokens by starting `kube-apiserver` with flag `--service-account-extend-token-expiration=false` ([#96273](https://github.com/kubernetes/kubernetes/pull/96273), [@zshihang](https://github.com/zshihang)) [SIG API Machinery and Auth] -- Introduce alpha support for exec-based container registry credential provider plugins in the kubelet. ([#94196](https://github.com/kubernetes/kubernetes/pull/94196), [@andrewsykim](https://github.com/andrewsykim)) [SIG Node and Release] -- Introduces a metric source for HPAs which allows scaling based on container resource usage. ([#90691](https://github.com/kubernetes/kubernetes/pull/90691), [@arjunrn](https://github.com/arjunrn)) [SIG API Machinery, Apps, Autoscaling and CLI] -- Kube-apiserver now deletes expired kube-apiserver Lease objects: - - The feature is under feature gate `APIServerIdentity`. - - A flag is added to kube-apiserver: `identity-lease-garbage-collection-check-period-seconds` ([#95895](https://github.com/kubernetes/kubernetes/pull/95895), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery, Apps, Auth and Testing] -- Kube-controller-manager: volume plugins can be restricted from contacting local and loopback addresses by setting `--volume-host-allow-local-loopback=false`, or from contacting specific CIDR ranges by setting `--volume-host-cidr-denylist` (for example, `--volume-host-cidr-denylist=127.0.0.1/28,feed::/16`) ([#91785](https://github.com/kubernetes/kubernetes/pull/91785), [@mattcary](https://github.com/mattcary)) [SIG API Machinery, Apps, Auth, CLI, Network, Node, Storage and Testing] -- Migrate scheduler, controller-manager and cloud-controller-manager to use LeaseLock ([#94603](https://github.com/kubernetes/kubernetes/pull/94603), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery, Apps, Cloud Provider and Scheduling] -- Modify DNS-1123 error messages to indicate that RFC 1123 is not followed exactly ([#94182](https://github.com/kubernetes/kubernetes/pull/94182), [@mattfenwick](https://github.com/mattfenwick)) [SIG API Machinery, Apps, Auth, Network and Node] -- Move configurable fsgroup change policy for pods to beta ([#96376](https://github.com/kubernetes/kubernetes/pull/96376), [@gnufied](https://github.com/gnufied)) [SIG Apps and Storage] -- New flag is introduced, i.e. --topology-manager-scope=container|pod. - The default value is the "container" scope. ([#92967](https://github.com/kubernetes/kubernetes/pull/92967), [@cezaryzukowski](https://github.com/cezaryzukowski)) [SIG Instrumentation, Node and Testing] -- New parameter `defaultingType` for `PodTopologySpread` plugin allows to use k8s defined or user provided default constraints ([#95048](https://github.com/kubernetes/kubernetes/pull/95048), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- NodeAffinity plugin can be configured with AddedAffinity. ([#96202](https://github.com/kubernetes/kubernetes/pull/96202), [@alculquicondor](https://github.com/alculquicondor)) [SIG Node, Scheduling and Testing] -- Promote RuntimeClass feature to GA. - Promote node.k8s.io API groups from v1beta1 to v1. ([#95718](https://github.com/kubernetes/kubernetes/pull/95718), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Apps, Auth, Node, Scheduling and Testing] -- Reminder: The labels "failure-domain.beta.kubernetes.io/zone" and "failure-domain.beta.kubernetes.io/region" are deprecated in favor of "topology.kubernetes.io/zone" and "topology.kubernetes.io/region" respectively. All users of the "failure-domain.beta..." labels should switch to the "topology..." equivalents. ([#96033](https://github.com/kubernetes/kubernetes/pull/96033), [@thockin](https://github.com/thockin)) [SIG API Machinery, Apps, CLI, Cloud Provider, Network, Node, Scheduling, Storage and Testing] -- Server Side Apply now treats LabelSelector fields as atomic (meaning the entire selector is managed by a single writer and updated together), since they contain interrelated and inseparable fields that do not merge in intuitive ways. ([#93901](https://github.com/kubernetes/kubernetes/pull/93901), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Storage and Testing] -- Services will now have a `clusterIPs` field to go with `clusterIP`. `clusterIPs[0]` is a synonym for `clusterIP` and will be syncronized on create and update operations. ([#95894](https://github.com/kubernetes/kubernetes/pull/95894), [@thockin](https://github.com/thockin)) [SIG Network] -- The ServiceAccountIssuerDiscovery feature gate is now Beta and enabled by default. ([#91921](https://github.com/kubernetes/kubernetes/pull/91921), [@mtaufen](https://github.com/mtaufen)) [SIG Auth] -- The status of v1beta1 CRDs without "preserveUnknownFields:false" now shows a violation, "spec.preserveUnknownFields: Invalid value: true: must be false". ([#93078](https://github.com/kubernetes/kubernetes/pull/93078), [@vareti](https://github.com/vareti)) -- The usage of mixed protocol values in the same LoadBalancer Service is possible if the new feature gate MixedProtocolLBService is enabled. The feature gate is disabled by default. The user has to enable it for the API Server. ([#94028](https://github.com/kubernetes/kubernetes/pull/94028), [@janosi](https://github.com/janosi)) [SIG API Machinery and Apps] -- This PR will introduce a feature gate CSIServiceAccountToken with two additional fields in `CSIDriverSpec`. ([#93130](https://github.com/kubernetes/kubernetes/pull/93130), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Apps, Auth, CLI, Network, Node, Storage and Testing] -- Users can try the cronjob controller v2 using the feature gate. This will be the default controller in future releases. ([#93370](https://github.com/kubernetes/kubernetes/pull/93370), [@alaypatel07](https://github.com/alaypatel07)) [SIG API Machinery, Apps, Auth and Testing] -- VolumeSnapshotDataSource moves to GA in 1.20 release ([#95282](https://github.com/kubernetes/kubernetes/pull/95282), [@xing-yang](https://github.com/xing-yang)) [SIG Apps] -- WinOverlay feature graduated to beta ([#94807](https://github.com/kubernetes/kubernetes/pull/94807), [@ksubrmnn](https://github.com/ksubrmnn)) [SIG Windows] - -### Feature - -- **Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**: -- A new metric `apiserver_request_filter_duration_seconds` has been introduced that - measures request filter latency in seconds. ([#95207](https://github.com/kubernetes/kubernetes/pull/95207), [@tkashem](https://github.com/tkashem)) [SIG API Machinery and Instrumentation] -- A new set of alpha metrics are reported by the Kubernetes scheduler under the `/metrics/resources` endpoint that allow administrators to easily see the resource consumption (requests and limits for all resources on the pods) and compare it to actual pod usage or node capacity. ([#94866](https://github.com/kubernetes/kubernetes/pull/94866), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Instrumentation, Node and Scheduling] -- Add --experimental-logging-sanitization flag enabling runtime protection from leaking sensitive data in logs ([#96370](https://github.com/kubernetes/kubernetes/pull/96370), [@serathius](https://github.com/serathius)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] -- Add a StorageVersionAPI feature gate that makes API server update storageversions before serving certain write requests. - This feature allows the storage migrator to manage storage migration for built-in resources. - Enabling internal.apiserver.k8s.io/v1alpha1 API and APIServerIdentity feature gate are required to use this feature. ([#93873](https://github.com/kubernetes/kubernetes/pull/93873), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery, Auth and Testing] -- Add a metric for time taken to perform recursive permission change ([#95866](https://github.com/kubernetes/kubernetes/pull/95866), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation and Storage] -- Add a new `vSphere` metric: `cloudprovider_vsphere_vcenter_versions`. It's content show `vCenter` hostnames with the associated server version. ([#94526](https://github.com/kubernetes/kubernetes/pull/94526), [@Danil-Grigorev](https://github.com/Danil-Grigorev)) [SIG Cloud Provider and Instrumentation] -- Add a new flag to set priority for the kubelet on Windows nodes so that workloads cannot overwhelm the node there by disrupting kubelet process. ([#96051](https://github.com/kubernetes/kubernetes/pull/96051), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node and Windows] -- Add feature to size memory backed volumes ([#94444](https://github.com/kubernetes/kubernetes/pull/94444), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Storage and Testing] -- Add foreground cascading deletion to kubectl with the new `kubectl delete foreground|background|orphan` option. ([#93384](https://github.com/kubernetes/kubernetes/pull/93384), [@zhouya0](https://github.com/zhouya0)) -- Add metrics for azure service operations (route and loadbalancer). ([#94124](https://github.com/kubernetes/kubernetes/pull/94124), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider and Instrumentation] -- Add network rule support in Azure account creation. ([#94239](https://github.com/kubernetes/kubernetes/pull/94239), [@andyzhangx](https://github.com/andyzhangx)) -- Add node_authorizer_actions_duration_seconds metric that can be used to estimate load to node authorizer. ([#92466](https://github.com/kubernetes/kubernetes/pull/92466), [@mborsz](https://github.com/mborsz)) [SIG API Machinery, Auth and Instrumentation] -- Add pod_ based CPU and memory metrics to Kubelet's /metrics/resource endpoint ([#95839](https://github.com/kubernetes/kubernetes/pull/95839), [@egernst](https://github.com/egernst)) [SIG Instrumentation, Node and Testing] -- Added `get-users` and `delete-user` to the `kubectl config` subcommand ([#89840](https://github.com/kubernetes/kubernetes/pull/89840), [@eddiezane](https://github.com/eddiezane)) [SIG CLI] -- Added counter metric "apiserver_request_self" to count API server self-requests with labels for verb, resource, and subresource. ([#94288](https://github.com/kubernetes/kubernetes/pull/94288), [@LogicalShark](https://github.com/LogicalShark)) [SIG API Machinery, Auth, Instrumentation and Scheduling] -- Added new k8s.io/component-helpers repository providing shared helper code for (core) components. ([#92507](https://github.com/kubernetes/kubernetes/pull/92507), [@ingvagabund](https://github.com/ingvagabund)) [SIG Apps, Node, Release and Scheduling] -- Adds `create ingress` command to `kubectl` ([#78153](https://github.com/kubernetes/kubernetes/pull/78153), [@amimof](https://github.com/amimof)) [SIG CLI and Network] -- Adds a headless service on node-local-cache addon. ([#88412](https://github.com/kubernetes/kubernetes/pull/88412), [@stafot](https://github.com/stafot)) [SIG Cloud Provider and Network] -- Allow cross compilation of kubernetes on different platforms. ([#94403](https://github.com/kubernetes/kubernetes/pull/94403), [@bnrjee](https://github.com/bnrjee)) [SIG Release] -- Azure: Support multiple services sharing one IP address ([#94991](https://github.com/kubernetes/kubernetes/pull/94991), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- CRDs: For structural schemas, non-nullable null map fields will now be dropped and defaulted if a default is available. null items in list will continue being preserved, and fail validation if not nullable. ([#95423](https://github.com/kubernetes/kubernetes/pull/95423), [@apelisse](https://github.com/apelisse)) [SIG API Machinery] -- Changed: default "Accept: */*" header added to HTTP probes. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes (https://github.com/kubernetes/website/pull/24756) ([#95641](https://github.com/kubernetes/kubernetes/pull/95641), [@fonsecas72](https://github.com/fonsecas72)) [SIG Network and Node] -- Client-go credential plugins can now be passed in the current cluster information via the KUBERNETES_EXEC_INFO environment variable. ([#95489](https://github.com/kubernetes/kubernetes/pull/95489), [@ankeesler](https://github.com/ankeesler)) [SIG API Machinery and Auth] -- Command to start network proxy changes from 'KUBE_ENABLE_EGRESS_VIA_KONNECTIVITY_SERVICE ./cluster/kube-up.sh' to 'KUBE_ENABLE_KONNECTIVITY_SERVICE=true ./hack/kube-up.sh' ([#92669](https://github.com/kubernetes/kubernetes/pull/92669), [@Jefftree](https://github.com/Jefftree)) [SIG Cloud Provider] -- Configure AWS LoadBalancer health check protocol via service annotations. ([#94546](https://github.com/kubernetes/kubernetes/pull/94546), [@kishorj](https://github.com/kishorj)) -- DefaultPodTopologySpread graduated to Beta. The feature gate is enabled by default. ([#95631](https://github.com/kubernetes/kubernetes/pull/95631), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling and Testing] -- E2e test for PodFsGroupChangePolicy ([#96247](https://github.com/kubernetes/kubernetes/pull/96247), [@saikat-royc](https://github.com/saikat-royc)) [SIG Storage and Testing] -- Ephemeral containers now apply the same API defaults as initContainers and containers ([#94896](https://github.com/kubernetes/kubernetes/pull/94896), [@wawa0210](https://github.com/wawa0210)) [SIG Apps and CLI] -- Gradudate the Pod Resources API to G.A - Introduces the pod_resources_endpoint_requests_total metric which tracks the total number of requests to the pod resources API ([#92165](https://github.com/kubernetes/kubernetes/pull/92165), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) [SIG Instrumentation, Node and Testing] -- In dual-stack bare-metal clusters, you can now pass dual-stack IPs to `kubelet --node-ip`. - eg: `kubelet --node-ip 10.1.0.5,fd01::0005`. This is not yet supported for non-bare-metal - clusters. - - In dual-stack clusters where nodes have dual-stack addresses, hostNetwork pods - will now get dual-stack PodIPs. ([#95239](https://github.com/kubernetes/kubernetes/pull/95239), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] -- Introduce api-extensions category which will return: mutating admission configs, validating admission configs, CRDs and APIServices when used in kubectl get, for example. ([#95603](https://github.com/kubernetes/kubernetes/pull/95603), [@soltysh](https://github.com/soltysh)) [SIG API Machinery] -- Introduces a new GCE specific cluster creation variable KUBE_PROXY_DISABLE. When set to true, this will skip over the creation of kube-proxy (whether the daemonset or static pod). This can be used to control the lifecycle of kube-proxy separately from the lifecycle of the nodes. ([#91977](https://github.com/kubernetes/kubernetes/pull/91977), [@varunmar](https://github.com/varunmar)) [SIG Cloud Provider] -- Kube-apiserver now maintains a Lease object to identify itself: - - The feature is under feature gate `APIServerIdentity`. - - Two flags are added to kube-apiserver: `identity-lease-duration-seconds`, `identity-lease-renew-interval-seconds` ([#95533](https://github.com/kubernetes/kubernetes/pull/95533), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery] -- Kube-apiserver: The timeout used when making health check calls to etcd can now be configured with `--etcd-healthcheck-timeout`. The default timeout is 2 seconds, matching the previous behavior. ([#93244](https://github.com/kubernetes/kubernetes/pull/93244), [@Sh4d1](https://github.com/Sh4d1)) [SIG API Machinery] -- Kube-apiserver: added support for compressing rotated audit log files with `--audit-log-compress` ([#94066](https://github.com/kubernetes/kubernetes/pull/94066), [@lojies](https://github.com/lojies)) [SIG API Machinery and Auth] -- Kubeadm now prints warnings instead of throwing errors if the current system time is outside of the NotBefore and NotAfter bounds of a loaded certificate. ([#94504](https://github.com/kubernetes/kubernetes/pull/94504), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Add a preflight check that the control-plane node has at least 1700MB of RAM ([#93275](https://github.com/kubernetes/kubernetes/pull/93275), [@xlgao-zju](https://github.com/xlgao-zju)) [SIG Cluster Lifecycle] -- Kubeadm: add the "--cluster-name" flag to the "kubeadm alpha kubeconfig user" to allow configuring the cluster name in the generated kubeconfig file ([#93992](https://github.com/kubernetes/kubernetes/pull/93992), [@prabhu43](https://github.com/prabhu43)) [SIG Cluster Lifecycle] -- Kubeadm: add the "--kubeconfig" flag to the "kubeadm init phase upload-certs" command to allow users to pass a custom location for a kubeconfig file. ([#94765](https://github.com/kubernetes/kubernetes/pull/94765), [@zhanw15](https://github.com/zhanw15)) [SIG Cluster Lifecycle] -- Kubeadm: make etcd pod request 100m CPU, 100Mi memory and 100Mi ephemeral_storage by default ([#94479](https://github.com/kubernetes/kubernetes/pull/94479), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] -- Kubeadm: make the command "kubeadm alpha kubeconfig user" accept a "--config" flag and remove the following flags: - - apiserver-advertise-address / apiserver-bind-port: use either localAPIEndpoint from InitConfiguration or controlPlaneEndpoint from ClusterConfiguration. - - cluster-name: use clusterName from ClusterConfiguration - - cert-dir: use certificatesDir from ClusterConfiguration ([#94879](https://github.com/kubernetes/kubernetes/pull/94879), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] -- Kubectl create now supports creating ingress objects. ([#94327](https://github.com/kubernetes/kubernetes/pull/94327), [@rikatz](https://github.com/rikatz)) [SIG CLI and Network] -- Kubectl rollout history sts/sts-name --revision=some-revision will start showing the detailed view of the sts on that specified revision ([#86506](https://github.com/kubernetes/kubernetes/pull/86506), [@dineshba](https://github.com/dineshba)) [SIG CLI] -- Kubectl: Previously users cannot provide arguments to a external diff tool via KUBECTL_EXTERNAL_DIFF env. This release now allow users to specify args to KUBECTL_EXTERNAL_DIFF env. ([#95292](https://github.com/kubernetes/kubernetes/pull/95292), [@dougsland](https://github.com/dougsland)) [SIG CLI] -- Kubemark now supports both real and hollow nodes in a single cluster. ([#93201](https://github.com/kubernetes/kubernetes/pull/93201), [@ellistarn](https://github.com/ellistarn)) [SIG Scalability] -- Kubernetes E2E test image manifest lists now contain Windows images. ([#77398](https://github.com/kubernetes/kubernetes/pull/77398), [@claudiubelu](https://github.com/claudiubelu)) [SIG Testing and Windows] -- Kubernetes is now built using go1.15.2 - - build: Update to k/repo-infra@v0.1.1 (supports go1.15.2) - - build: Use go-runner:buster-v2.0.1 (built using go1.15.1) - - bazel: Replace --features with Starlark build settings flag - - hack/lib/util.sh: some bash cleanups - - - switched one spot to use kube::logging - - make kube::util::find-binary return an error when it doesn't find - anything so that hack scripts fail fast instead of with '' binary not - found errors. - - this required deleting some genfeddoc stuff. the binary no longer - exists in k/k repo since we removed federation/, and I don't see it - in https://github.com/kubernetes-sigs/kubefed/ either. I'm assuming - that it's gone for good now. - - - bazel: output go_binary rule directly from go_binary_conditional_pure - - From: [@mikedanese](https://github.com/mikedanese): - Instead of aliasing. Aliases are annoying in a number of ways. This is - specifically bugging me now because they make the action graph harder to - analyze programmatically. By using aliases here, we would need to handle - potentially aliased go_binary targets and dereference to the effective - target. - - The comment references an issue with `pure = select(...)` which appears - to be resolved considering this now builds. - - - make kube::util::find-binary not dependent on bazel-out/ structure - - Implement an aspect that outputs go_build_mode metadata for go binaries, - and use that during binary selection. ([#94449](https://github.com/kubernetes/kubernetes/pull/94449), [@justaugustus](https://github.com/justaugustus)) [SIG Architecture, CLI, Cluster Lifecycle, Node, Release and Testing] -- Kubernetes is now built using go1.15.5 - - build: Update to k/repo-infra@v0.1.2 (supports go1.15.5) ([#95776](https://github.com/kubernetes/kubernetes/pull/95776), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing] -- New default scheduling plugins order reduces scheduling and preemption latency when taints and node affinity are used ([#95539](https://github.com/kubernetes/kubernetes/pull/95539), [@soulxu](https://github.com/soulxu)) [SIG Scheduling] -- Only update Azure data disks when attach/detach ([#94265](https://github.com/kubernetes/kubernetes/pull/94265), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Promote SupportNodePidsLimit to GA to provide node-to-pod PID isolation. - Promote SupportPodPidsLimit to GA to provide ability to limit PIDs per pod. ([#94140](https://github.com/kubernetes/kubernetes/pull/94140), [@derekwaynecarr](https://github.com/derekwaynecarr)) -- SCTP support in API objects (Pod, Service, NetworkPolicy) is now GA. - Note that this has no effect on whether SCTP is enabled on nodes at the kernel level, - and note that some cloud platforms and network plugins do not support SCTP traffic. ([#95566](https://github.com/kubernetes/kubernetes/pull/95566), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network] -- Scheduler now ignores Pod update events if the resourceVersion of old and new Pods are identical. ([#96071](https://github.com/kubernetes/kubernetes/pull/96071), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] -- Scheduling Framework: expose Run[Pre]ScorePlugins functions to PreemptionHandle which can be used in PostFilter extention point. ([#93534](https://github.com/kubernetes/kubernetes/pull/93534), [@everpeace](https://github.com/everpeace)) [SIG Scheduling and Testing] -- SelectorSpreadPriority maps to PodTopologySpread plugin when DefaultPodTopologySpread feature is enabled ([#95448](https://github.com/kubernetes/kubernetes/pull/95448), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- Send GCE node startup scripts logs to console and journal. ([#95311](https://github.com/kubernetes/kubernetes/pull/95311), [@karan](https://github.com/karan)) -- SetHostnameAsFQDN has been graduated to Beta and therefore it is enabled by default. ([#95267](https://github.com/kubernetes/kubernetes/pull/95267), [@javidiaz](https://github.com/javidiaz)) [SIG Node] -- Support [service.beta.kubernetes.io/azure-pip-ip-tags] annotations to allow customers to specify ip-tags to influence public-ip creation in Azure [Tag1=Value1, Tag2=Value2, etc.] ([#94114](https://github.com/kubernetes/kubernetes/pull/94114), [@MarcPow](https://github.com/MarcPow)) [SIG Cloud Provider] -- Support custom tags for cloud provider managed resources ([#96450](https://github.com/kubernetes/kubernetes/pull/96450), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Support customize load balancer health probe protocol and request path ([#96338](https://github.com/kubernetes/kubernetes/pull/96338), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Support for Windows container images (OS Versions: 1809, 1903, 1909, 2004) was added the pause:3.4 image. ([#91452](https://github.com/kubernetes/kubernetes/pull/91452), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Release and Windows] -- Support multiple standard load balancers in one cluster ([#96111](https://github.com/kubernetes/kubernetes/pull/96111), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- The beta `RootCAConfigMap` feature gate is enabled by default and causes kube-controller-manager to publish a "kube-root-ca.crt" ConfigMap to every namespace. This ConfigMap contains a CA bundle used for verifying connections to the kube-apiserver. ([#96197](https://github.com/kubernetes/kubernetes/pull/96197), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Apps, Auth and Testing] -- The kubelet_runtime_operations_duration_seconds metric buckets were set to 0.005 0.0125 0.03125 0.078125 0.1953125 0.48828125 1.220703125 3.0517578125 7.62939453125 19.073486328125 47.6837158203125 119.20928955078125 298.0232238769531 and 745.0580596923828 seconds ([#96054](https://github.com/kubernetes/kubernetes/pull/96054), [@alvaroaleman](https://github.com/alvaroaleman)) [SIG Instrumentation and Node] -- There is a new pv_collector_total_pv_count metric that counts persistent volumes by the volume plugin name and volume mode. ([#95719](https://github.com/kubernetes/kubernetes/pull/95719), [@tsmetana](https://github.com/tsmetana)) [SIG Apps, Instrumentation, Storage and Testing] -- Volume snapshot e2e test to validate PVC and VolumeSnapshotContent finalizer ([#95863](https://github.com/kubernetes/kubernetes/pull/95863), [@RaunakShah](https://github.com/RaunakShah)) [SIG Cloud Provider, Storage and Testing] -- Warns user when executing kubectl apply/diff to resource currently being deleted. ([#95544](https://github.com/kubernetes/kubernetes/pull/95544), [@SaiHarshaK](https://github.com/SaiHarshaK)) [SIG CLI] -- `kubectl alpha debug` has graduated to beta and is now `kubectl debug`. ([#96138](https://github.com/kubernetes/kubernetes/pull/96138), [@verb](https://github.com/verb)) [SIG CLI and Testing] -- `kubectl debug` gains support for changing container images when copying a pod for debugging, similar to how `kubectl set image` works. See `kubectl help debug` for more information. ([#96058](https://github.com/kubernetes/kubernetes/pull/96058), [@verb](https://github.com/verb)) [SIG CLI] - -### Documentation - -- Fake dynamic client: document that List does not preserve TypeMeta in UnstructuredList ([#95117](https://github.com/kubernetes/kubernetes/pull/95117), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery] -- Kubelet: remove alpha warnings for CNI flags. ([#94508](https://github.com/kubernetes/kubernetes/pull/94508), [@andrewsykim](https://github.com/andrewsykim)) [SIG Network and Node] -- Updates docs and guidance on cloud provider InstancesV2 and Zones interface for external cloud providers: - - removes experimental warning for InstancesV2 - - document that implementation of InstancesV2 will disable calls to Zones - - deprecate Zones in favor of InstancesV2 ([#96397](https://github.com/kubernetes/kubernetes/pull/96397), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider] - -### Failing Test - -- Resolves an issue running Ingress conformance tests on clusters which use finalizers on Ingress objects to manage releasing load balancer resources ([#96742](https://github.com/kubernetes/kubernetes/pull/96742), [@spencerhance](https://github.com/spencerhance)) [SIG Network and Testing] -- The Conformance test "validates that there is no conflict between pods with same hostPort but different hostIP and protocol" now validates the connectivity to each hostPort, in addition to the functionality. ([#96627](https://github.com/kubernetes/kubernetes/pull/96627), [@aojea](https://github.com/aojea)) [SIG Scheduling and Testing] - -### Bug or Regression - -- Add kubectl wait --ignore-not-found flag ([#90969](https://github.com/kubernetes/kubernetes/pull/90969), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] -- Added support to kube-proxy for externalTrafficPolicy=Local setting via Direct Server Return (DSR) load balancers on Windows. ([#93166](https://github.com/kubernetes/kubernetes/pull/93166), [@elweb9858](https://github.com/elweb9858)) [SIG Network] -- Alter wording to describe pods using a pvc ([#95635](https://github.com/kubernetes/kubernetes/pull/95635), [@RaunakShah](https://github.com/RaunakShah)) [SIG CLI] -- An issues preventing volume expand controller to annotate the PVC with `volume.kubernetes.io/storage-resizer` when the PVC StorageClass is already updated to the out-of-tree provisioner is now fixed. ([#94489](https://github.com/kubernetes/kubernetes/pull/94489), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG API Machinery, Apps and Storage] -- Azure ARM client: don't segfault on empty response and http error ([#94078](https://github.com/kubernetes/kubernetes/pull/94078), [@bpineau](https://github.com/bpineau)) [SIG Cloud Provider] -- Azure armclient backoff step defaults to 1 (no retry). ([#94180](https://github.com/kubernetes/kubernetes/pull/94180), [@feiskyer](https://github.com/feiskyer)) -- Azure: fix a bug that kube-controller-manager would panic if wrong Azure VMSS name is configured ([#94306](https://github.com/kubernetes/kubernetes/pull/94306), [@knight42](https://github.com/knight42)) [SIG Cloud Provider] -- Both apiserver_request_duration_seconds metrics and RequestReceivedTimestamp fields of an audit event now take into account the time a request spends in the apiserver request filters. ([#94903](https://github.com/kubernetes/kubernetes/pull/94903), [@tkashem](https://github.com/tkashem)) -- Build/lib/release: Explicitly use '--platform' in building server images - - When we switched to go-runner for building the apiserver, - controller-manager, and scheduler server components, we no longer - reference the individual architectures in the image names, specifically - in the 'FROM' directive of the server image Dockerfiles. - - As a result, server images for non-amd64 images copy in the go-runner - amd64 binary instead of the go-runner that matches that architecture. - - This commit explicitly sets the '--platform=linux/${arch}' to ensure - we're pulling the correct go-runner arch from the manifest list. - - Before: - `FROM ${base_image}` - - After: - `FROM --platform=linux/${arch} ${base_image}` ([#94552](https://github.com/kubernetes/kubernetes/pull/94552), [@justaugustus](https://github.com/justaugustus)) [SIG Release] -- Bump node-problem-detector version to v0.8.5 to fix OOM detection in with Linux kernels 5.1+ ([#96716](https://github.com/kubernetes/kubernetes/pull/96716), [@tosi3k](https://github.com/tosi3k)) [SIG Cloud Provider, Scalability and Testing] -- CSIDriver object can be deployed during volume attachment. ([#93710](https://github.com/kubernetes/kubernetes/pull/93710), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps, Node, Storage and Testing] -- Ceph RBD volume expansion now works even when ceph.conf was not provided. ([#92027](https://github.com/kubernetes/kubernetes/pull/92027), [@juliantaylor](https://github.com/juliantaylor)) -- Change plugin name in fsgroupapplymetrics of csi and flexvolume to distinguish different driver ([#95892](https://github.com/kubernetes/kubernetes/pull/95892), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation, Storage and Testing] -- Change the calculation of pod UIDs so that static pods get a unique value - will cause all containers to be killed and recreated after in-place upgrade. ([#87461](https://github.com/kubernetes/kubernetes/pull/87461), [@bboreham](https://github.com/bboreham)) [SIG Node] -- Change the mount way from systemd to normal mount except ceph and glusterfs intree-volume. ([#94916](https://github.com/kubernetes/kubernetes/pull/94916), [@smileusd](https://github.com/smileusd)) [SIG Apps, Cloud Provider, Network, Node, Storage and Testing] -- Changes to timeout parameter handling in 1.20.0-beta.2 have been reverted to avoid breaking backwards compatibility with existing clients. ([#96727](https://github.com/kubernetes/kubernetes/pull/96727), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] -- Clear UDP conntrack entry on endpoint changes when using nodeport ([#71573](https://github.com/kubernetes/kubernetes/pull/71573), [@JacobTanenbaum](https://github.com/JacobTanenbaum)) [SIG Network] -- Cloud node controller: handle empty providerID from getProviderID ([#95342](https://github.com/kubernetes/kubernetes/pull/95342), [@nicolehanjing](https://github.com/nicolehanjing)) [SIG Cloud Provider] -- Disable watchcache for events ([#96052](https://github.com/kubernetes/kubernetes/pull/96052), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery] -- Disabled `LocalStorageCapacityIsolation` feature gate is honored during scheduling. ([#96092](https://github.com/kubernetes/kubernetes/pull/96092), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] -- Do not fail sorting empty elements. ([#94666](https://github.com/kubernetes/kubernetes/pull/94666), [@soltysh](https://github.com/soltysh)) [SIG CLI] -- Dual-stack: make nodeipam compatible with existing single-stack clusters when dual-stack feature gate become enabled by default ([#90439](https://github.com/kubernetes/kubernetes/pull/90439), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery] -- Duplicate owner reference entries in create/update/patch requests now get deduplicated by the API server. The client sending the request now receives a warning header in the API response. Clients should stop sending requests with duplicate owner references. The API server may reject such requests as early as 1.24. ([#96185](https://github.com/kubernetes/kubernetes/pull/96185), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery and Testing] -- Endpoint slice controller now mirrors parent's service label to its corresponding endpoint slices. ([#94443](https://github.com/kubernetes/kubernetes/pull/94443), [@aojea](https://github.com/aojea)) -- Ensure getPrimaryInterfaceID not panic when network interfaces for Azure VMSS are null ([#94355](https://github.com/kubernetes/kubernetes/pull/94355), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Exposes and sets a default timeout for the SubjectAccessReview client for DelegatingAuthorizationOptions ([#95725](https://github.com/kubernetes/kubernetes/pull/95725), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Cloud Provider] -- Exposes and sets a default timeout for the TokenReview client for DelegatingAuthenticationOptions ([#96217](https://github.com/kubernetes/kubernetes/pull/96217), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Cloud Provider] -- Fix CVE-2020-8555 for Quobyte client connections. ([#95206](https://github.com/kubernetes/kubernetes/pull/95206), [@misterikkit](https://github.com/misterikkit)) [SIG Storage] -- Fix IP fragmentation of UDP and TCP packets not supported issues on LoadBalancer rules ([#96464](https://github.com/kubernetes/kubernetes/pull/96464), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Fix a bug that DefaultPreemption plugin is disabled when using (legacy) scheduler policy. ([#96439](https://github.com/kubernetes/kubernetes/pull/96439), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] -- Fix a bug where loadbalancer deletion gets stuck because of missing resource group. ([#93962](https://github.com/kubernetes/kubernetes/pull/93962), [@phiphi282](https://github.com/phiphi282)) -- Fix a concurrent map writes error in kubelet ([#93773](https://github.com/kubernetes/kubernetes/pull/93773), [@knight42](https://github.com/knight42)) [SIG Node] -- Fix a panic in `kubectl debug` when a pod has multiple init or ephemeral containers. ([#94580](https://github.com/kubernetes/kubernetes/pull/94580), [@kiyoshim55](https://github.com/kiyoshim55)) -- Fix a regression where kubeadm bails out with a fatal error when an optional version command line argument is supplied to the "kubeadm upgrade plan" command ([#94421](https://github.com/kubernetes/kubernetes/pull/94421), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] -- Fix azure disk attach failure for disk size bigger than 4TB ([#95463](https://github.com/kubernetes/kubernetes/pull/95463), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix azure disk data loss issue on Windows when unmount disk ([#95456](https://github.com/kubernetes/kubernetes/pull/95456), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fix azure file migration panic ([#94853](https://github.com/kubernetes/kubernetes/pull/94853), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix bug in JSON path parser where an error occurs when a range is empty ([#95933](https://github.com/kubernetes/kubernetes/pull/95933), [@brianpursley](https://github.com/brianpursley)) [SIG API Machinery] -- Fix client-go prometheus metrics to correctly present the API path accessed in some environments. ([#74363](https://github.com/kubernetes/kubernetes/pull/74363), [@aanm](https://github.com/aanm)) [SIG API Machinery] -- Fix detach azure disk issue when vm not exist ([#95177](https://github.com/kubernetes/kubernetes/pull/95177), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix etcd_object_counts metric reported by kube-apiserver ([#94773](https://github.com/kubernetes/kubernetes/pull/94773), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] -- Fix incorrectly reported verbs for kube-apiserver metrics for CRD objects ([#93523](https://github.com/kubernetes/kubernetes/pull/93523), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Instrumentation] -- Fix k8s.io/apimachinery/pkg/api/meta.SetStatusCondition to update ObservedGeneration ([#95961](https://github.com/kubernetes/kubernetes/pull/95961), [@KnicKnic](https://github.com/KnicKnic)) [SIG API Machinery] -- Fix kubectl SchemaError on CRDs with schema using x-kubernetes-preserve-unknown-fields on array types. ([#94888](https://github.com/kubernetes/kubernetes/pull/94888), [@sttts](https://github.com/sttts)) [SIG API Machinery] -- Fix memory leak in kube-apiserver when underlying time goes forth and back. ([#96266](https://github.com/kubernetes/kubernetes/pull/96266), [@chenyw1990](https://github.com/chenyw1990)) [SIG API Machinery] -- Fix missing csi annotations on node during parallel csinode update. ([#94389](https://github.com/kubernetes/kubernetes/pull/94389), [@pacoxu](https://github.com/pacoxu)) [SIG Storage] -- Fix network_programming_latency metric reporting for Endpoints/EndpointSlice deletions, where we don't have correct timestamp ([#95363](https://github.com/kubernetes/kubernetes/pull/95363), [@wojtek-t](https://github.com/wojtek-t)) [SIG Network and Scalability] -- Fix paging issues when Azure API returns empty values with non-empty nextLink ([#96211](https://github.com/kubernetes/kubernetes/pull/96211), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Fix pull image error from multiple ACRs using azure managed identity ([#96355](https://github.com/kubernetes/kubernetes/pull/96355), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix race condition on timeCache locks. ([#94751](https://github.com/kubernetes/kubernetes/pull/94751), [@auxten](https://github.com/auxten)) -- Fix regression on `kubectl portforward` when TCP and UCP services were configured on the same port. ([#94728](https://github.com/kubernetes/kubernetes/pull/94728), [@amorenoz](https://github.com/amorenoz)) -- Fix scheduler cache snapshot when a Node is deleted before its Pods ([#95130](https://github.com/kubernetes/kubernetes/pull/95130), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- Fix the `cloudprovider_azure_api_request_duration_seconds` metric buckets to correctly capture the latency metrics. Previously, the majority of the calls would fall in the "+Inf" bucket. ([#94873](https://github.com/kubernetes/kubernetes/pull/94873), [@marwanad](https://github.com/marwanad)) [SIG Cloud Provider and Instrumentation] -- Fix vSphere volumes that could be erroneously attached to wrong node ([#96224](https://github.com/kubernetes/kubernetes/pull/96224), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage] -- Fix verb & scope reporting for kube-apiserver metrics (LIST reported instead of GET) ([#95562](https://github.com/kubernetes/kubernetes/pull/95562), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Testing] -- Fix vsphere detach failure for static PVs ([#95447](https://github.com/kubernetes/kubernetes/pull/95447), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage] -- Fix: azure disk resize error if source does not exist ([#93011](https://github.com/kubernetes/kubernetes/pull/93011), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix: detach azure disk broken on Azure Stack ([#94885](https://github.com/kubernetes/kubernetes/pull/94885), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix: resize Azure disk issue when it's in attached state ([#96705](https://github.com/kubernetes/kubernetes/pull/96705), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] -- Fix: smb valid path error ([#95583](https://github.com/kubernetes/kubernetes/pull/95583), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage] -- Fix: use sensitiveOptions on Windows mount ([#94126](https://github.com/kubernetes/kubernetes/pull/94126), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fixed a bug causing incorrect formatting of `kubectl describe ingress`. ([#94985](https://github.com/kubernetes/kubernetes/pull/94985), [@howardjohn](https://github.com/howardjohn)) [SIG CLI and Network] -- Fixed a bug in client-go where new clients with customized `Dial`, `Proxy`, `GetCert` config may get stale HTTP transports. ([#95427](https://github.com/kubernetes/kubernetes/pull/95427), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery] -- Fixed a bug that prevents kubectl to validate CRDs with schema using x-kubernetes-preserve-unknown-fields on object fields. ([#96369](https://github.com/kubernetes/kubernetes/pull/96369), [@gautierdelorme](https://github.com/gautierdelorme)) [SIG API Machinery and Testing] -- Fixed a bug that prevents the use of ephemeral containers in the presence of a validating admission webhook. ([#94685](https://github.com/kubernetes/kubernetes/pull/94685), [@verb](https://github.com/verb)) [SIG Node and Testing] -- Fixed a bug where aggregator_unavailable_apiservice metrics were reported for deleted apiservices. ([#96421](https://github.com/kubernetes/kubernetes/pull/96421), [@dgrisonnet](https://github.com/dgrisonnet)) [SIG API Machinery and Instrumentation] -- Fixed a bug where improper storage and comparison of endpoints led to excessive API traffic from the endpoints controller ([#94112](https://github.com/kubernetes/kubernetes/pull/94112), [@damemi](https://github.com/damemi)) [SIG Apps, Network and Testing] -- Fixed a regression which prevented pods with `docker/default` seccomp annotations from being created in 1.19 if a PodSecurityPolicy was in place which did not allow `runtime/default` seccomp profiles. ([#95985](https://github.com/kubernetes/kubernetes/pull/95985), [@saschagrunert](https://github.com/saschagrunert)) [SIG Auth] -- Fixed bug in reflector that couldn't recover from "Too large resource version" errors with API servers 1.17.0-1.18.5 ([#94316](https://github.com/kubernetes/kubernetes/pull/94316), [@janeczku](https://github.com/janeczku)) [SIG API Machinery] -- Fixed bug where kubectl top pod output is not sorted when --sort-by and --containers flags are used together ([#93692](https://github.com/kubernetes/kubernetes/pull/93692), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] -- Fixed kubelet creating extra sandbox for pods with RestartPolicyOnFailure after all containers succeeded ([#92614](https://github.com/kubernetes/kubernetes/pull/92614), [@tnqn](https://github.com/tnqn)) [SIG Node and Testing] -- Fixes an issue proxying to ipv6 pods without specifying a port ([#94834](https://github.com/kubernetes/kubernetes/pull/94834), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Network] -- Fixes code generation for non-namespaced create subresources fake client test. ([#96586](https://github.com/kubernetes/kubernetes/pull/96586), [@Doude](https://github.com/Doude)) [SIG API Machinery] -- Fixes high CPU usage in kubectl drain ([#95260](https://github.com/kubernetes/kubernetes/pull/95260), [@amandahla](https://github.com/amandahla)) [SIG CLI] -- For vSphere Cloud Provider, If VM of worker node is deleted, the node will also be deleted by node controller ([#92608](https://github.com/kubernetes/kubernetes/pull/92608), [@lubronzhan](https://github.com/lubronzhan)) [SIG Cloud Provider] -- Gracefully delete nodes when their parent scale set went missing ([#95289](https://github.com/kubernetes/kubernetes/pull/95289), [@bpineau](https://github.com/bpineau)) [SIG Cloud Provider] -- HTTP/2 connection health check is enabled by default in all Kubernetes clients. The feature should work out-of-the-box. If needed, users can tune the feature via the HTTP2_READ_IDLE_TIMEOUT_SECONDS and HTTP2_PING_TIMEOUT_SECONDS environment variables. The feature is disabled if HTTP2_READ_IDLE_TIMEOUT_SECONDS is set to 0. ([#95981](https://github.com/kubernetes/kubernetes/pull/95981), [@caesarxuchao](https://github.com/caesarxuchao)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Node] -- If the user specifies an invalid timeout in the request URL, the request will be aborted with an HTTP 400. - - If the user specifies a timeout in the request URL that exceeds the maximum request deadline allowed by the apiserver, the request will be aborted with an HTTP 400. ([#96061](https://github.com/kubernetes/kubernetes/pull/96061), [@tkashem](https://github.com/tkashem)) [SIG API Machinery, Network and Testing] -- If we set SelectPolicy MinPolicySelect on scaleUp behavior or scaleDown behavior,Horizontal Pod Autoscaler doesn`t automatically scale the number of pods correctly ([#95647](https://github.com/kubernetes/kubernetes/pull/95647), [@JoshuaAndrew](https://github.com/JoshuaAndrew)) [SIG Apps and Autoscaling] -- Ignore apparmor for non-linux operating systems ([#93220](https://github.com/kubernetes/kubernetes/pull/93220), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows] -- Ignore root user check when windows pod starts ([#92355](https://github.com/kubernetes/kubernetes/pull/92355), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows] -- Improve error messages related to nodePort endpoint changes conntrack entries cleanup. ([#96251](https://github.com/kubernetes/kubernetes/pull/96251), [@ravens](https://github.com/ravens)) [SIG Network] -- In dual-stack clusters, kubelet will now set up both IPv4 and IPv6 iptables rules, which may - fix some problems, eg with HostPorts. ([#94474](https://github.com/kubernetes/kubernetes/pull/94474), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] -- Increase maximum IOPS of AWS EBS io1 volume to current maximum (64,000). ([#90014](https://github.com/kubernetes/kubernetes/pull/90014), [@jacobmarble](https://github.com/jacobmarble)) -- Ipvs: ensure selected scheduler kernel modules are loaded ([#93040](https://github.com/kubernetes/kubernetes/pull/93040), [@cmluciano](https://github.com/cmluciano)) [SIG Network] -- K8s.io/apimachinery: runtime.DefaultUnstructuredConverter.FromUnstructured now handles converting integer fields to typed float values ([#93250](https://github.com/kubernetes/kubernetes/pull/93250), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] -- Kube-proxy now trims extra spaces found in loadBalancerSourceRanges to match Service validation. ([#94107](https://github.com/kubernetes/kubernetes/pull/94107), [@robscott](https://github.com/robscott)) [SIG Network] -- Kubeadm ensures "kubeadm reset" does not unmount the root "/var/lib/kubelet" directory if it is mounted by the user. ([#93702](https://github.com/kubernetes/kubernetes/pull/93702), [@thtanaka](https://github.com/thtanaka)) -- Kubeadm now makes sure the etcd manifest is regenerated upon upgrade even when no etcd version change takes place ([#94395](https://github.com/kubernetes/kubernetes/pull/94395), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] -- Kubeadm now warns (instead of error out) on missing "ca.key" files for root CA, front-proxy CA and etcd CA, during "kubeadm join --control-plane" if the user has provided all certificates, keys and kubeconfig files which require signing with the given CA keys. ([#94988](https://github.com/kubernetes/kubernetes/pull/94988), [@neolit123](https://github.com/neolit123)) -- Kubeadm: add missing "--experimental-patches" flag to "kubeadm init phase control-plane" ([#95786](https://github.com/kubernetes/kubernetes/pull/95786), [@Sh4d1](https://github.com/Sh4d1)) [SIG Cluster Lifecycle] -- Kubeadm: avoid a panic when determining if the running version of CoreDNS is supported during upgrades ([#94299](https://github.com/kubernetes/kubernetes/pull/94299), [@zouyee](https://github.com/zouyee)) [SIG Cluster Lifecycle] -- Kubeadm: ensure the etcd data directory is created with 0700 permissions during control-plane init and join ([#94102](https://github.com/kubernetes/kubernetes/pull/94102), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: fix coredns migration should be triggered when there are newdefault configs during kubeadm upgrade ([#96907](https://github.com/kubernetes/kubernetes/pull/96907), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle] -- Kubeadm: fix the bug that kubeadm tries to call 'docker info' even if the CRI socket was for another CR ([#94555](https://github.com/kubernetes/kubernetes/pull/94555), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubeadm: for Docker as the container runtime, make the "kubeadm reset" command stop containers before removing them ([#94586](https://github.com/kubernetes/kubernetes/pull/94586), [@BedivereZero](https://github.com/BedivereZero)) [SIG Cluster Lifecycle] -- Kubeadm: make the kubeconfig files for the kube-controller-manager and kube-scheduler use the LocalAPIEndpoint instead of the ControlPlaneEndpoint. This makes kubeadm clusters more reseliant to version skew problems during immutable upgrades: https://kubernetes.io/docs/setup/release/version-skew-policy/#kube-controller-manager-kube-scheduler-and-cloud-controller-manager ([#94398](https://github.com/kubernetes/kubernetes/pull/94398), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: relax the validation of kubeconfig server URLs. Allow the user to define custom kubeconfig server URLs without erroring out during validation of existing kubeconfig files (e.g. when using external CA mode). ([#94816](https://github.com/kubernetes/kubernetes/pull/94816), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubectl: print error if users place flags before plugin name ([#92343](https://github.com/kubernetes/kubernetes/pull/92343), [@knight42](https://github.com/knight42)) [SIG CLI] -- Kubelet: assume that swap is disabled when `/proc/swaps` does not exist ([#93931](https://github.com/kubernetes/kubernetes/pull/93931), [@SataQiu](https://github.com/SataQiu)) [SIG Node] -- New Azure instance types do now have correct max data disk count information. ([#94340](https://github.com/kubernetes/kubernetes/pull/94340), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Cloud Provider and Storage] -- Port mapping now allows the same `containerPort` of different containers to different `hostPort` without naming the mapping explicitly. ([#94494](https://github.com/kubernetes/kubernetes/pull/94494), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) -- Print go stack traces at -v=4 and not -v=2 ([#94663](https://github.com/kubernetes/kubernetes/pull/94663), [@soltysh](https://github.com/soltysh)) [SIG CLI] -- Recreate EndpointSlices on rapid Service creation. ([#94730](https://github.com/kubernetes/kubernetes/pull/94730), [@robscott](https://github.com/robscott)) -- Reduce volume name length for vsphere volumes ([#96533](https://github.com/kubernetes/kubernetes/pull/96533), [@gnufied](https://github.com/gnufied)) [SIG Storage] -- Remove ready file and its directory (which is created during volume SetUp) during emptyDir volume TearDown. ([#95770](https://github.com/kubernetes/kubernetes/pull/95770), [@jingxu97](https://github.com/jingxu97)) [SIG Storage] -- Reorganized iptables rules to fix a performance issue ([#95252](https://github.com/kubernetes/kubernetes/pull/95252), [@tssurya](https://github.com/tssurya)) [SIG Network] -- Require feature flag CustomCPUCFSQuotaPeriod if setting a non-default cpuCFSQuotaPeriod in kubelet config. ([#94687](https://github.com/kubernetes/kubernetes/pull/94687), [@karan](https://github.com/karan)) [SIG Node] -- Resolves a regression in 1.19+ with workloads targeting deprecated beta os/arch labels getting stuck in NodeAffinity status on node startup. ([#96810](https://github.com/kubernetes/kubernetes/pull/96810), [@liggitt](https://github.com/liggitt)) [SIG Node] -- Resolves non-deterministic behavior of the garbage collection controller when ownerReferences with incorrect data are encountered. Events with a reason of `OwnerRefInvalidNamespace` are recorded when namespace mismatches between child and owner objects are detected. The [kubectl-check-ownerreferences](https://github.com/kubernetes-sigs/kubectl-check-ownerreferences) tool can be run prior to upgrading to locate existing objects with invalid ownerReferences. - - A namespaced object with an ownerReference referencing a uid of a namespaced kind which does not exist in the same namespace is now consistently treated as though that owner does not exist, and the child object is deleted. - - A cluster-scoped object with an ownerReference referencing a uid of a namespaced kind is now consistently treated as though that owner is not resolvable, and the child object is ignored by the garbage collector. ([#92743](https://github.com/kubernetes/kubernetes/pull/92743), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps and Testing] -- Skip [k8s.io/kubernetes@v1.19.0/test/e2e/storage/testsuites/base.go:162]: Driver azure-disk doesn't support snapshot type DynamicSnapshot -- skipping - skip [k8s.io/kubernetes@v1.19.0/test/e2e/storage/testsuites/base.go:185]: Driver azure-disk doesn't support ntfs -- skipping ([#96144](https://github.com/kubernetes/kubernetes/pull/96144), [@qinpingli](https://github.com/qinpingli)) [SIG Storage and Testing] -- StatefulSet Controller now waits for PersistentVolumeClaim deletion before creating pods. ([#93457](https://github.com/kubernetes/kubernetes/pull/93457), [@ymmt2005](https://github.com/ymmt2005)) -- StreamWatcher now calls HandleCrash at appropriate sequence. ([#93108](https://github.com/kubernetes/kubernetes/pull/93108), [@lixiaobing1](https://github.com/lixiaobing1)) -- Support the node label `node.kubernetes.io/exclude-from-external-load-balancers` ([#95542](https://github.com/kubernetes/kubernetes/pull/95542), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- The AWS network load balancer attributes can now be specified during service creation ([#95247](https://github.com/kubernetes/kubernetes/pull/95247), [@kishorj](https://github.com/kishorj)) [SIG Cloud Provider] -- The `/debug/api_priority_and_fairness/dump_requests` path at an apiserver will no longer return a phantom line for each exempt priority level. ([#93406](https://github.com/kubernetes/kubernetes/pull/93406), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] -- The kube-apiserver will no longer serve APIs that should have been deleted in GA non-alpha levels. Alpha levels will continue to serve the removed APIs so that CI doesn't immediately break. ([#96525](https://github.com/kubernetes/kubernetes/pull/96525), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] -- The kubelet recognizes the --containerd-namespace flag to configure the namespace used by cadvisor. ([#87054](https://github.com/kubernetes/kubernetes/pull/87054), [@changyaowei](https://github.com/changyaowei)) [SIG Node] -- Unhealthy pods covered by PDBs can be successfully evicted if enough healthy pods are available. ([#94381](https://github.com/kubernetes/kubernetes/pull/94381), [@michaelgugino](https://github.com/michaelgugino)) [SIG Apps] -- Update Calico to v3.15.2 ([#94241](https://github.com/kubernetes/kubernetes/pull/94241), [@lmm](https://github.com/lmm)) [SIG Cloud Provider] -- Update default etcd server version to 3.4.13 ([#94287](https://github.com/kubernetes/kubernetes/pull/94287), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing] -- Update max azure data disk count map ([#96308](https://github.com/kubernetes/kubernetes/pull/96308), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Update the PIP when it is not in the Succeeded provisioning state during the LB update. ([#95748](https://github.com/kubernetes/kubernetes/pull/95748), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Update the frontend IP config when the service's `pipName` annotation is changed ([#95813](https://github.com/kubernetes/kubernetes/pull/95813), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Update the route table tag in the route reconcile loop ([#96545](https://github.com/kubernetes/kubernetes/pull/96545), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Use NLB Subnet CIDRs instead of VPC CIDRs in Health Check SG Rules ([#93515](https://github.com/kubernetes/kubernetes/pull/93515), [@t0rr3sp3dr0](https://github.com/t0rr3sp3dr0)) [SIG Cloud Provider] -- Users will see increase in time for deletion of pods and also guarantee that removal of pod from api server would mean deletion of all the resources from container runtime. ([#92817](https://github.com/kubernetes/kubernetes/pull/92817), [@kmala](https://github.com/kmala)) [SIG Node] -- Very large patches may now be specified to `kubectl patch` with the `--patch-file` flag instead of including them directly on the command line. The `--patch` and `--patch-file` flags are mutually exclusive. ([#93548](https://github.com/kubernetes/kubernetes/pull/93548), [@smarterclayton](https://github.com/smarterclayton)) [SIG CLI] -- Volume binding: report UnschedulableAndUnresolvable status instead of an error when bound PVs not found ([#95541](https://github.com/kubernetes/kubernetes/pull/95541), [@cofyc](https://github.com/cofyc)) [SIG Apps, Scheduling and Storage] -- Warn instead of fail when creating Roles and ClusterRoles with custom verbs via kubectl ([#92492](https://github.com/kubernetes/kubernetes/pull/92492), [@eddiezane](https://github.com/eddiezane)) [SIG CLI] -- When creating a PVC with the volume.beta.kubernetes.io/storage-provisioner annotation already set, the PV controller might have incorrectly deleted the newly provisioned PV instead of binding it to the PVC, depending on timing and system load. ([#95909](https://github.com/kubernetes/kubernetes/pull/95909), [@pohly](https://github.com/pohly)) [SIG Apps and Storage] -- [kubectl] Fail when local source file doesn't exist ([#90333](https://github.com/kubernetes/kubernetes/pull/90333), [@bamarni](https://github.com/bamarni)) [SIG CLI] - -### Other (Cleanup or Flake) - -- **Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**: - - <!-- - This section can be blank if this pull request does not require a release note. - - When adding links which point to resources within git repositories, like - KEPs or supporting documentation, please reference a specific commit and avoid - linking directly to the master branch. This ensures that links reference a - specific point in time, rather than a document that may change over time. - - See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files - - Please use the following format for linking documentation: - - [KEP]: <link> - - [Usage]: <link> - - [Other doc]: <link> - --> ([#96443](https://github.com/kubernetes/kubernetes/pull/96443), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps] -- --redirect-container-streaming is no longer functional. The flag will be removed in v1.22 ([#95935](https://github.com/kubernetes/kubernetes/pull/95935), [@tallclair](https://github.com/tallclair)) [SIG Node] -- A new metric `requestAbortsTotal` has been introduced that counts aborted requests for each `group`, `version`, `verb`, `resource`, `subresource` and `scope`. ([#95002](https://github.com/kubernetes/kubernetes/pull/95002), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, Cloud Provider, Instrumentation and Scheduling] -- API priority and fairness metrics use snake_case in label names ([#96236](https://github.com/kubernetes/kubernetes/pull/96236), [@adtac](https://github.com/adtac)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Testing] -- Add fine grained debugging to intra-pod conformance test to troubleshoot networking issues for potentially unhealthy nodes when running conformance or sonobuoy tests. ([#93837](https://github.com/kubernetes/kubernetes/pull/93837), [@jayunit100](https://github.com/jayunit100)) -- Add the following metrics: - - network_plugin_operations_total - - network_plugin_operations_errors_total ([#93066](https://github.com/kubernetes/kubernetes/pull/93066), [@AnishShah](https://github.com/AnishShah)) -- Adds a bootstrapping ClusterRole, ClusterRoleBinding and group for /metrics, /livez/*, /readyz/*, & /healthz/- endpoints. ([#93311](https://github.com/kubernetes/kubernetes/pull/93311), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Auth, Cloud Provider and Instrumentation] -- AdmissionReview objects sent for the creation of Namespace API objects now populate the `namespace` attribute consistently (previously the `namespace` attribute was empty for Namespace creation via POST requests, and populated for Namespace creation via server-side-apply PATCH requests) ([#95012](https://github.com/kubernetes/kubernetes/pull/95012), [@nodo](https://github.com/nodo)) [SIG API Machinery and Testing] -- Applies translations on all command descriptions ([#95439](https://github.com/kubernetes/kubernetes/pull/95439), [@HerrNaN](https://github.com/HerrNaN)) [SIG CLI] -- Base-images: Update to debian-iptables:buster-v1.3.0 - - Uses iptables 1.8.5 - - base-images: Update to debian-base:buster-v1.2.0 - - cluster/images/etcd: Build etcd:3.4.13-1 image - - Uses debian-base:buster-v1.2.0 ([#94733](https://github.com/kubernetes/kubernetes/pull/94733), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Release and Testing] -- Changed: default "Accept-Encoding" header removed from HTTP probes. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes ([#96127](https://github.com/kubernetes/kubernetes/pull/96127), [@fonsecas72](https://github.com/fonsecas72)) [SIG Network and Node] -- Client-go header logging (at verbosity levels >= 9) now masks `Authorization` header contents ([#95316](https://github.com/kubernetes/kubernetes/pull/95316), [@sfowl](https://github.com/sfowl)) [SIG API Machinery] -- Decrease warning message frequency on setting volume ownership for configmap/secret. ([#92878](https://github.com/kubernetes/kubernetes/pull/92878), [@jvanz](https://github.com/jvanz)) -- Enhance log information of verifyRunAsNonRoot, add pod, container information ([#94911](https://github.com/kubernetes/kubernetes/pull/94911), [@wawa0210](https://github.com/wawa0210)) [SIG Node] -- Fix func name NewCreateCreateDeploymentOptions ([#91931](https://github.com/kubernetes/kubernetes/pull/91931), [@lixiaobing1](https://github.com/lixiaobing1)) [SIG CLI] -- Fix kubelet to properly log when a container is started. Previously, kubelet may log that container is dead and was restarted when it was actually started for the first time. This behavior only happened on pods with initContainers and regular containers. ([#91469](https://github.com/kubernetes/kubernetes/pull/91469), [@rata](https://github.com/rata)) -- Fixes the message about no auth for metrics in scheduler. ([#94035](https://github.com/kubernetes/kubernetes/pull/94035), [@zhouya0](https://github.com/zhouya0)) [SIG Scheduling] -- Generators for services are removed from kubectl ([#95256](https://github.com/kubernetes/kubernetes/pull/95256), [@Git-Jiro](https://github.com/Git-Jiro)) [SIG CLI] -- Introduce kubectl-convert plugin. ([#96190](https://github.com/kubernetes/kubernetes/pull/96190), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] -- Kube-scheduler now logs processed component config at startup ([#96426](https://github.com/kubernetes/kubernetes/pull/96426), [@damemi](https://github.com/damemi)) [SIG Scheduling] -- Kubeadm: Separate argument key/value in log msg ([#94016](https://github.com/kubernetes/kubernetes/pull/94016), [@mrueg](https://github.com/mrueg)) [SIG Cluster Lifecycle] -- Kubeadm: remove the CoreDNS check for known image digests when applying the addon ([#94506](https://github.com/kubernetes/kubernetes/pull/94506), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: update the default pause image version to 1.4.0 on Windows. With this update the image supports Windows versions 1809 (2019LTS), 1903, 1909, 2004 ([#95419](https://github.com/kubernetes/kubernetes/pull/95419), [@jsturtevant](https://github.com/jsturtevant)) [SIG Cluster Lifecycle and Windows] -- Kubectl: the `generator` flag of `kubectl autoscale` has been deprecated and has no effect, it will be removed in a feature release ([#92998](https://github.com/kubernetes/kubernetes/pull/92998), [@SataQiu](https://github.com/SataQiu)) [SIG CLI] -- Lock ExternalPolicyForExternalIP to default, this feature gate will be removed in 1.22. ([#94581](https://github.com/kubernetes/kubernetes/pull/94581), [@knabben](https://github.com/knabben)) [SIG Network] -- Mask ceph RBD adminSecrets in logs when logLevel >= 4. ([#95245](https://github.com/kubernetes/kubernetes/pull/95245), [@sfowl](https://github.com/sfowl)) -- Remove offensive words from kubectl cluster-info command. ([#95202](https://github.com/kubernetes/kubernetes/pull/95202), [@rikatz](https://github.com/rikatz)) -- Remove support for "ci/k8s-master" version label in kubeadm, use "ci/latest" instead. See [kubernetes/test-infra#18517](https://github.com/kubernetes/test-infra/pull/18517). ([#93626](https://github.com/kubernetes/kubernetes/pull/93626), [@vikkyomkar](https://github.com/vikkyomkar)) -- Remove the dependency of csi-translation-lib module on apiserver/cloud-provider/controller-manager ([#95543](https://github.com/kubernetes/kubernetes/pull/95543), [@wawa0210](https://github.com/wawa0210)) [SIG Release] -- Scheduler framework interface moved from pkg/scheduler/framework/v1alpha to pkg/scheduler/framework ([#95069](https://github.com/kubernetes/kubernetes/pull/95069), [@farah](https://github.com/farah)) [SIG Scheduling, Storage and Testing] -- Service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset is removed. All Standard load balancers will always enable tcp resets. ([#94297](https://github.com/kubernetes/kubernetes/pull/94297), [@MarcPow](https://github.com/MarcPow)) [SIG Cloud Provider] -- Stop propagating SelfLink (deprecated in 1.16) in kube-apiserver ([#94397](https://github.com/kubernetes/kubernetes/pull/94397), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Testing] -- Strip unnecessary security contexts on Windows ([#93475](https://github.com/kubernetes/kubernetes/pull/93475), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node, Testing and Windows] -- To ensure the code be strong, add unit test for GetAddressAndDialer ([#93180](https://github.com/kubernetes/kubernetes/pull/93180), [@FreeZhang61](https://github.com/FreeZhang61)) [SIG Node] -- UDP and SCTP protocols can left stale connections that need to be cleared to avoid services disruption, but they can cause problems that are hard to debug. - Kubernetes components using a loglevel greater or equal than 4 will log the conntrack operations and its output, to show the entries that were deleted. ([#95694](https://github.com/kubernetes/kubernetes/pull/95694), [@aojea](https://github.com/aojea)) [SIG Network] -- Update CNI plugins to v0.8.7 ([#94367](https://github.com/kubernetes/kubernetes/pull/94367), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Network, Node, Release and Testing] -- Update cri-tools to [v1.19.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.19.0) ([#94307](https://github.com/kubernetes/kubernetes/pull/94307), [@xmudrii](https://github.com/xmudrii)) [SIG Cloud Provider] -- Update etcd client side to v3.4.13 ([#94259](https://github.com/kubernetes/kubernetes/pull/94259), [@jingyih](https://github.com/jingyih)) [SIG API Machinery and Cloud Provider] -- Users will now be able to configure all supported values for AWS NLB health check interval and thresholds for new resources. ([#96312](https://github.com/kubernetes/kubernetes/pull/96312), [@kishorj](https://github.com/kishorj)) [SIG Cloud Provider] -- V1helpers.MatchNodeSelectorTerms now accepts just a Node and a list of Terms ([#95871](https://github.com/kubernetes/kubernetes/pull/95871), [@damemi](https://github.com/damemi)) [SIG Apps, Scheduling and Storage] -- Vsphere: improve logging message on node cache refresh event ([#95236](https://github.com/kubernetes/kubernetes/pull/95236), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider] -- `MatchNodeSelectorTerms` function moved to `k8s.io/component-helpers` ([#95531](https://github.com/kubernetes/kubernetes/pull/95531), [@damemi](https://github.com/damemi)) [SIG Apps, Scheduling and Storage] -- `kubectl api-resources` now prints the API version (as 'API group/version', same as output of `kubectl api-versions`). The column APIGROUP is now APIVERSION ([#95253](https://github.com/kubernetes/kubernetes/pull/95253), [@sallyom](https://github.com/sallyom)) [SIG CLI] -- `kubectl get ingress` now prefers the `networking.k8s.io/v1` over `extensions/v1beta1` (deprecated since v1.14). To explicitly request the deprecated version, use `kubectl get ingress.v1beta1.extensions`. ([#94309](https://github.com/kubernetes/kubernetes/pull/94309), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and CLI] - -## Dependencies - -### Added -- cloud.google.com/go/firestore: v1.1.0 -- github.com/Azure/go-autorest: [v14.2.0+incompatible](https://github.com/Azure/go-autorest/tree/v14.2.0) -- github.com/armon/go-metrics: [f0300d1](https://github.com/armon/go-metrics/tree/f0300d1) -- github.com/armon/go-radix: [7fddfc3](https://github.com/armon/go-radix/tree/7fddfc3) -- github.com/bketelsen/crypt: [5cbc8cc](https://github.com/bketelsen/crypt/tree/5cbc8cc) -- github.com/form3tech-oss/jwt-go: [v3.2.2+incompatible](https://github.com/form3tech-oss/jwt-go/tree/v3.2.2) -- github.com/fvbommel/sortorder: [v1.0.1](https://github.com/fvbommel/sortorder/tree/v1.0.1) -- github.com/hashicorp/consul/api: [v1.1.0](https://github.com/hashicorp/consul/api/tree/v1.1.0) -- github.com/hashicorp/consul/sdk: [v0.1.1](https://github.com/hashicorp/consul/sdk/tree/v0.1.1) -- github.com/hashicorp/errwrap: [v1.0.0](https://github.com/hashicorp/errwrap/tree/v1.0.0) -- github.com/hashicorp/go-cleanhttp: [v0.5.1](https://github.com/hashicorp/go-cleanhttp/tree/v0.5.1) -- github.com/hashicorp/go-immutable-radix: [v1.0.0](https://github.com/hashicorp/go-immutable-radix/tree/v1.0.0) -- github.com/hashicorp/go-msgpack: [v0.5.3](https://github.com/hashicorp/go-msgpack/tree/v0.5.3) -- github.com/hashicorp/go-multierror: [v1.0.0](https://github.com/hashicorp/go-multierror/tree/v1.0.0) -- github.com/hashicorp/go-rootcerts: [v1.0.0](https://github.com/hashicorp/go-rootcerts/tree/v1.0.0) -- github.com/hashicorp/go-sockaddr: [v1.0.0](https://github.com/hashicorp/go-sockaddr/tree/v1.0.0) -- github.com/hashicorp/go-uuid: [v1.0.1](https://github.com/hashicorp/go-uuid/tree/v1.0.1) -- github.com/hashicorp/go.net: [v0.0.1](https://github.com/hashicorp/go.net/tree/v0.0.1) -- github.com/hashicorp/logutils: [v1.0.0](https://github.com/hashicorp/logutils/tree/v1.0.0) -- github.com/hashicorp/mdns: [v1.0.0](https://github.com/hashicorp/mdns/tree/v1.0.0) -- github.com/hashicorp/memberlist: [v0.1.3](https://github.com/hashicorp/memberlist/tree/v0.1.3) -- github.com/hashicorp/serf: [v0.8.2](https://github.com/hashicorp/serf/tree/v0.8.2) -- github.com/jmespath/go-jmespath/internal/testify: [v1.5.1](https://github.com/jmespath/go-jmespath/internal/testify/tree/v1.5.1) -- github.com/mitchellh/cli: [v1.0.0](https://github.com/mitchellh/cli/tree/v1.0.0) -- github.com/mitchellh/go-testing-interface: [v1.0.0](https://github.com/mitchellh/go-testing-interface/tree/v1.0.0) -- github.com/mitchellh/gox: [v0.4.0](https://github.com/mitchellh/gox/tree/v0.4.0) -- github.com/mitchellh/iochan: [v1.0.0](https://github.com/mitchellh/iochan/tree/v1.0.0) -- github.com/pascaldekloe/goe: [57f6aae](https://github.com/pascaldekloe/goe/tree/57f6aae) -- github.com/posener/complete: [v1.1.1](https://github.com/posener/complete/tree/v1.1.1) -- github.com/ryanuber/columnize: [9b3edd6](https://github.com/ryanuber/columnize/tree/9b3edd6) -- github.com/sean-/seed: [e2103e2](https://github.com/sean-/seed/tree/e2103e2) -- github.com/subosito/gotenv: [v1.2.0](https://github.com/subosito/gotenv/tree/v1.2.0) -- github.com/willf/bitset: [d5bec33](https://github.com/willf/bitset/tree/d5bec33) -- gopkg.in/ini.v1: v1.51.0 -- gopkg.in/yaml.v3: 9f266ea -- rsc.io/quote/v3: v3.1.0 -- rsc.io/sampler: v1.3.0 - -### Changed -- cloud.google.com/go/bigquery: v1.0.1 → v1.4.0 -- cloud.google.com/go/datastore: v1.0.0 → v1.1.0 -- cloud.google.com/go/pubsub: v1.0.1 → v1.2.0 -- cloud.google.com/go/storage: v1.0.0 → v1.6.0 -- cloud.google.com/go: v0.51.0 → v0.54.0 -- github.com/Azure/go-autorest/autorest/adal: [v0.8.2 → v0.9.5](https://github.com/Azure/go-autorest/autorest/adal/compare/v0.8.2...v0.9.5) -- github.com/Azure/go-autorest/autorest/date: [v0.2.0 → v0.3.0](https://github.com/Azure/go-autorest/autorest/date/compare/v0.2.0...v0.3.0) -- github.com/Azure/go-autorest/autorest/mocks: [v0.3.0 → v0.4.1](https://github.com/Azure/go-autorest/autorest/mocks/compare/v0.3.0...v0.4.1) -- github.com/Azure/go-autorest/autorest: [v0.9.6 → v0.11.1](https://github.com/Azure/go-autorest/autorest/compare/v0.9.6...v0.11.1) -- github.com/Azure/go-autorest/logger: [v0.1.0 → v0.2.0](https://github.com/Azure/go-autorest/logger/compare/v0.1.0...v0.2.0) -- github.com/Azure/go-autorest/tracing: [v0.5.0 → v0.6.0](https://github.com/Azure/go-autorest/tracing/compare/v0.5.0...v0.6.0) -- github.com/Microsoft/go-winio: [fc70bd9 → v0.4.15](https://github.com/Microsoft/go-winio/compare/fc70bd9...v0.4.15) -- github.com/aws/aws-sdk-go: [v1.28.2 → v1.35.24](https://github.com/aws/aws-sdk-go/compare/v1.28.2...v1.35.24) -- github.com/blang/semver: [v3.5.0+incompatible → v3.5.1+incompatible](https://github.com/blang/semver/compare/v3.5.0...v3.5.1) -- github.com/checkpoint-restore/go-criu/v4: [v4.0.2 → v4.1.0](https://github.com/checkpoint-restore/go-criu/v4/compare/v4.0.2...v4.1.0) -- github.com/containerd/containerd: [v1.3.3 → v1.4.1](https://github.com/containerd/containerd/compare/v1.3.3...v1.4.1) -- github.com/containerd/ttrpc: [v1.0.0 → v1.0.2](https://github.com/containerd/ttrpc/compare/v1.0.0...v1.0.2) -- github.com/containerd/typeurl: [v1.0.0 → v1.0.1](https://github.com/containerd/typeurl/compare/v1.0.0...v1.0.1) -- github.com/coreos/etcd: [v3.3.10+incompatible → v3.3.13+incompatible](https://github.com/coreos/etcd/compare/v3.3.10...v3.3.13) -- github.com/docker/docker: [aa6a989 → bd33bbf](https://github.com/docker/docker/compare/aa6a989...bd33bbf) -- github.com/go-gl/glfw/v3.3/glfw: [12ad95a → 6f7a984](https://github.com/go-gl/glfw/v3.3/glfw/compare/12ad95a...6f7a984) -- github.com/golang/groupcache: [215e871 → 8c9f03a](https://github.com/golang/groupcache/compare/215e871...8c9f03a) -- github.com/golang/mock: [v1.3.1 → v1.4.1](https://github.com/golang/mock/compare/v1.3.1...v1.4.1) -- github.com/golang/protobuf: [v1.4.2 → v1.4.3](https://github.com/golang/protobuf/compare/v1.4.2...v1.4.3) -- github.com/google/cadvisor: [v0.37.0 → v0.38.5](https://github.com/google/cadvisor/compare/v0.37.0...v0.38.5) -- github.com/google/go-cmp: [v0.4.0 → v0.5.2](https://github.com/google/go-cmp/compare/v0.4.0...v0.5.2) -- github.com/google/pprof: [d4f498a → 1ebb73c](https://github.com/google/pprof/compare/d4f498a...1ebb73c) -- github.com/google/uuid: [v1.1.1 → v1.1.2](https://github.com/google/uuid/compare/v1.1.1...v1.1.2) -- github.com/gorilla/mux: [v1.7.3 → v1.8.0](https://github.com/gorilla/mux/compare/v1.7.3...v1.8.0) -- github.com/gorilla/websocket: [v1.4.0 → v1.4.2](https://github.com/gorilla/websocket/compare/v1.4.0...v1.4.2) -- github.com/jmespath/go-jmespath: [c2b33e8 → v0.4.0](https://github.com/jmespath/go-jmespath/compare/c2b33e8...v0.4.0) -- github.com/karrick/godirwalk: [v1.7.5 → v1.16.1](https://github.com/karrick/godirwalk/compare/v1.7.5...v1.16.1) -- github.com/opencontainers/go-digest: [v1.0.0-rc1 → v1.0.0](https://github.com/opencontainers/go-digest/compare/v1.0.0-rc1...v1.0.0) -- github.com/opencontainers/runc: [819fcc6 → v1.0.0-rc92](https://github.com/opencontainers/runc/compare/819fcc6...v1.0.0-rc92) -- github.com/opencontainers/runtime-spec: [237cc4f → 4d89ac9](https://github.com/opencontainers/runtime-spec/compare/237cc4f...4d89ac9) -- github.com/opencontainers/selinux: [v1.5.2 → v1.6.0](https://github.com/opencontainers/selinux/compare/v1.5.2...v1.6.0) -- github.com/prometheus/procfs: [v0.1.3 → v0.2.0](https://github.com/prometheus/procfs/compare/v0.1.3...v0.2.0) -- github.com/quobyte/api: [v0.1.2 → v0.1.8](https://github.com/quobyte/api/compare/v0.1.2...v0.1.8) -- github.com/spf13/cobra: [v1.0.0 → v1.1.1](https://github.com/spf13/cobra/compare/v1.0.0...v1.1.1) -- github.com/spf13/viper: [v1.4.0 → v1.7.0](https://github.com/spf13/viper/compare/v1.4.0...v1.7.0) -- github.com/storageos/go-api: [343b3ef → v2.2.0+incompatible](https://github.com/storageos/go-api/compare/343b3ef...v2.2.0) -- github.com/stretchr/testify: [v1.4.0 → v1.6.1](https://github.com/stretchr/testify/compare/v1.4.0...v1.6.1) -- github.com/vishvananda/netns: [52d707b → db3c7e5](https://github.com/vishvananda/netns/compare/52d707b...db3c7e5) -- go.etcd.io/etcd: 17cef6e → dd1b699 -- go.opencensus.io: v0.22.2 → v0.22.3 -- golang.org/x/crypto: 75b2880 → 7f63de1 -- golang.org/x/exp: da58074 → 6cc2880 -- golang.org/x/lint: fdd1cda → 738671d -- golang.org/x/net: ab34263 → 69a7880 -- golang.org/x/oauth2: 858c2ad → bf48bf1 -- golang.org/x/sys: ed371f2 → 5cba982 -- golang.org/x/text: v0.3.3 → v0.3.4 -- golang.org/x/time: 555d28b → 3af7569 -- golang.org/x/xerrors: 9bdfabe → 5ec99f8 -- google.golang.org/api: v0.15.1 → v0.20.0 -- google.golang.org/genproto: cb27e3a → 8816d57 -- google.golang.org/grpc: v1.27.0 → v1.27.1 -- google.golang.org/protobuf: v1.24.0 → v1.25.0 -- honnef.co/go/tools: v0.0.1-2019.2.3 → v0.0.1-2020.1.3 -- k8s.io/gengo: 8167cfd → 83324d8 -- k8s.io/klog/v2: v2.2.0 → v2.4.0 -- k8s.io/kube-openapi: 6aeccd4 → d219536 -- k8s.io/system-validators: v1.1.2 → v1.2.0 -- k8s.io/utils: d5654de → 67b214c -- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.9 → v0.0.14 -- sigs.k8s.io/structured-merge-diff/v4: v4.0.1 → v4.0.2 - -### Removed -- github.com/armon/consul-api: [eb2c6b5](https://github.com/armon/consul-api/tree/eb2c6b5) -- github.com/go-ini/ini: [v1.9.0](https://github.com/go-ini/ini/tree/v1.9.0) -- github.com/ugorji/go: [v1.1.4](https://github.com/ugorji/go/tree/v1.1.4) -- github.com/xlab/handysort: [fb3537e](https://github.com/xlab/handysort/tree/fb3537e) -- github.com/xordataexchange/crypt: [b2862e3](https://github.com/xordataexchange/crypt/tree/b2862e3) -- vbom.ml/util: db5cfe1 +# Release notes for v1.20.0-rc.0 + +[Documentation](https://docs.k8s.io/docs/home) + +# Changelog since v1.19.0 + +## What's New (Major Themes) + +### Dockershim deprecation + +Docker as an underlying runtime is being deprecated. Docker-produced images will continue to work in your cluster with all runtimes, as they always have. +The Kubernetes community [has written a blog post about this in detail](https://blog.k8s.io/2020/12/02/dont-panic-kubernetes-and-docker/) with [a dedicated FAQ page for it](https://blog.k8s.io/2020/12/02/dockershim-faq/). + +### External credential provider for client-go + +The client-go credential plugins can now be passed in the current cluster information via the `KUBERNETES_EXEC_INFO` environment variable. Learn more about this on [client-go credential plugins documentation](https://docs.k8s.io/reference/access-authn-authz/authentication/#client-go-credential-plugins/). + +### CronJob controller v2 is available through feature gate + +An alternative implementation of `CronJob` controller is now available as an alpha feature in this release, which has experimental performance improvement by using informers instead of polling. While this will be the default behavior in the future, you can [try them in this release through a feature gate](https://docs.k8s.io/concepts/workloads/controllers/cron-jobs/). + +### PID Limits graduates to General Availability + +PID Limits features are now generally available on both `SupportNodePidsLimit` (node-to-pod PID isolation) and `SupportPodPidsLimit` (ability to limit PIDs per pod), after being enabled-by-default in beta stage for a year. + +### API Priority and Fairness graduates to Beta + +Initially introduced in 1.18, Kubernetes 1.20 now enables API Priority and Fairness (APF) by default. This allows `kube-apiserver` to [categorize incoming requests by priority levels](https://docs.k8s.io/concepts/cluster-administration/flow-control/). + +### IPv4/IPv6 run + +IPv4/IPv6 dual-stack has been reimplemented for 1.20 to support dual-stack Services, based on user and community feedback. If your cluster has dual-stack enabled, you can create Services which can use IPv4, IPv6, or both, and you can change this setting for existing Services. Details are available in updated [IPv4/IPv6 dual-stack docs](https://docs.k8s.io/concepts/services-networking/dual-stack/), which cover the nuanced array of options. + +We expect this implementation to progress from alpha to beta and GA in coming releases, so we’re eager to have you comment about your dual-stack experiences in [#k8s-dual-stack](https://kubernetes.slack.com/messages/k8s-dual-stack) or in [enhancements #563](https://features.k8s.io/563). + +### go1.15.5 + +go1.15.5 has been integrated to Kubernets project as of this release, [including other infrastructure related updates on this effort](https://github.com/kubernetes/kubernetes/pull/95776). + +### CSI Volume Snapshot graduates to General Availability + +CSI Volume Snapshot moves to GA in the 1.20 release. This feature provides a standard way to trigger volume snapshot operations in Kubernetes and allows Kubernetes users to incorporate snapshot operations in a portable manner on any Kubernetes environment regardless of supporting underlying storage providers. +Additionally, these Kubernetes snapshot primitives act as basic building blocks that unlock the ability to develop advanced, enterprise grade, storage administration features for Kubernetes: including application or cluster level backup solutions. +Note that snapshot support will require Kubernetes distributors to bundle the Snapshot controller, Snapshot CRDs, and validation webhook. In addition, a CSI driver supporting the snapshot functionality must also be deployed on the cluster. + +### Non-recursive Volume Ownership (FSGroup) graduates to Beta + +By default, the `fsgroup` setting, if specified, recursively updates permissions for every file in a volume on every mount. This can make mount, and pod startup, very slow if the volume has many files. +This setting enables a pod to specify a `PodFSGroupChangePolicy` that indicates that volume ownership and permissions will be changed only when permission and ownership of the root directory does not match with expected permissions on the volume. + +### CSIDriver policy for FSGroup graduates to Beta + +The FSGroup's CSIDriver Policy is now beta in 1.20. This allows CSIDrivers to explicitly indicate if they want Kubernetes to manage permissions and ownership for their volumes via `fsgroup`. + +### Security Improvements for CSI Drivers (Alpha) + +In 1.20, we introduce a new alpha feature `CSIServiceAccountToken`. This feature allows CSI drivers to impersonate the pods that they mount the volumes for. This improves the security posture in the mounting process where the volumes are ACL’ed on the pods’ service account without handing out unnecessary permissions to the CSI drivers’ service account. This feature is especially important for secret-handling CSI drivers, such as the secrets-store-csi-driver. Since these tokens can be rotated and short-lived, this feature also provides a knob for CSI drivers to receive `NodePublishVolume` RPC calls periodically with the new token. This knob is also useful when volumes are short-lived, e.g. certificates. + +### Introducing Graceful Node Shutdown (Alpha) + +The `GracefulNodeShutdown` feature is now in Alpha. This allows kubelet to be aware of node system shutdowns, enabling graceful termination of pods during a system shutdown. This feature can be [enabled through feature gate](https://docs.k8s.io/concepts/architecture/nodes/#graceful-node-shutdown). + +### Runtime log sanitation + +Logs can now be configured to use runtime protection from leaking sensitive data. [Details for this experimental feature is available in documentation](https://docs.k8s.io/concepts/cluster-administration/system-logs/#log-sanitization). + +### Pod resource metrics + +On-demand metrics calculation is now available through `/metrics/resources`. [When enabled]( +https://docs.k8s.io/concepts/cluster-administration/system-metrics#kube-scheduler-metrics), the endpoint will report the requested resources and the desired limits of all running pods. + +### Introducing `RootCAConfigMap` + +`RootCAConfigMap` graduates to Beta, seperating from `BoundServiceAccountTokenVolume`. The `kube-root-ca.crt` ConfigMap is now available to every namespace, by default. It contains the Certificate Authority bundle for verify kube-apiserver connections. + +### `kubectl debug` graduates to Beta + +`kubectl alpha debug` graduates from alpha to beta in 1.20, becoming `kubectl debug`. +`kubectl debug` provides support for common debugging workflows directly from kubectl. Troubleshooting scenarios supported in this release of `kubectl` include: +Troubleshoot workloads that crash on startup by creating a copy of the pod that uses a different container image or command. +Troubleshoot distroless containers by adding a new container with debugging tools, either in a new copy of the pod or using an ephemeral container. (Ephemeral containers are an alpha feature that are not enabled by default.) +Troubleshoot on a node by creating a container running in the host namespaces and with access to the host’s filesystem. +Note that as a new builtin command, `kubectl debug` takes priority over any `kubectl` plugin named “debug”. You will need to rename the affected plugin. +Invocations using `kubectl alpha debug` are now deprecated and will be removed in a subsequent release. Update your scripts to use `kubectl debug` instead of `kubectl alpha debug`! +For more information about kubectl debug, see Debugging Running Pods on the Kubernetes website, kubectl help debug, or reach out to SIG CLI by visiting #sig-cli or commenting on [enhancement #1441](https://features.k8s.io/1441). + +### Removing deprecated flags in kubeadm + +`kubeadm` applies a number of deprecations and removals of deprecated features in this release. More details are available in the Urgent Upgrade Notes and Kind / Deprecation sections. + +### Pod Hostname as FQDN graduates to Beta + +Previously introduced in 1.19 behind a feature gate, `SetHostnameAsFQDN` is now enabled by default. More details on this behavior is available in [documentation for DNS for Services and Pods](https://docs.k8s.io/concepts/services-networking/dns-pod-service/#pod-sethostnameasfqdn-field) + +### `TokenRequest` / `TokenRequestProjection` graduates to General Availability + +Service account tokens bound to pod is now a stable feature. The feature gates will be removed in 1.21 release. For more information, refer to notes below on the changelogs. + +### RuntimeClass feature graduates to General Availability. + +The `node.k8s.io` API groups are promoted from `v1beta1` to `v1`. `v1beta1` is now deprecated and will be removed in a future release, please start using `v1`. ([#95718](https://github.com/kubernetes/kubernetes/pull/95718), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Apps, Auth, Node, Scheduling and Testing] + +### Cloud Controller Manager now exclusively shipped by Cloud Provider + +Kubernetes will no longer ship an instance of the Cloud Controller Manager binary. Each Cloud Provider is expected to ship their own instance of this binary. Details for a Cloud Provider to create an instance of such a binary can be found under [here](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/cloud-provider/sample). Anyone with questions on building a Cloud Controller Manager should reach out to SIG Cloud Provider. Questions about the Cloud Controller Manager on a Managed Kubernetes solution should go to the relevant Cloud Provider. Questions about the Cloud Controller Manager on a non managed solution can be brought up with SIG Cloud Provider. + +## Known Issues + +### Summary API in kubelet doesn't have accelerator metrics +Currently, cadvisor_stats_provider provides AcceleratorStats but cri_stats_provider does not. As a result, when using cri_stats_provider, kubelet's Summary API does not have accelerator metrics. [There is an open work in progress to fix this](https://github.com/kubernetes/kubernetes/pull/96873). + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- A bug was fixed in kubelet where exec probe timeouts were not respected. This may result in unexpected behavior since the default timeout (if not specified) is `1s` which may be too small for some exec probes. Ensure that pods relying on this behavior are updated to correctly handle probe timeouts. See [configure probe](https://docs.k8s.io/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes) section of the documentation for more details. + + - This change in behavior may be unexpected for some clusters and can be disabled by turning off the `ExecProbeTimeout` feature gate. This gate will be locked and removed in future releases so that exec probe timeouts are always respected. ([#94115](https://github.com/kubernetes/kubernetes/pull/94115), [@andrewsykim](https://github.com/andrewsykim)) [SIG Node and Testing] +- RuntimeClass feature graduates to General Availability. Promote `node.k8s.io` API groups from `v1beta1` to `v1`. `v1beta1` is now deprecated and will be removed in a future release, please start using `v1`. ([#95718](https://github.com/kubernetes/kubernetes/pull/95718), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Apps, Auth, Node, Scheduling and Testing] +- API priority and fairness graduated to beta. 1.19 servers with APF turned on should not be run in a multi-server cluster with 1.20+ servers. ([#96527](https://github.com/kubernetes/kubernetes/pull/96527), [@adtac](https://github.com/adtac)) [SIG API Machinery and Testing] +- For CSI drivers, kubelet no longer creates the target_path for NodePublishVolume in accordance with the CSI spec. Kubelet also no longer checks if staging and target paths are mounts or corrupted. CSI drivers need to be idempotent and do any necessary mount verification. ([#88759](https://github.com/kubernetes/kubernetes/pull/88759), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage] +- Kubeadm: http://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/2067-rename-master-label-taint/README.md ([#95382](https://github.com/kubernetes/kubernetes/pull/95382), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] + - The label applied to control-plane nodes "node-role.kubernetes.io/master" is now deprecated and will be removed in a future release after a GA deprecation period. + - Introduce a new label "node-role.kubernetes.io/control-plane" that will be applied in parallel to "node-role.kubernetes.io/master" until the removal of the "node-role.kubernetes.io/master" label. + - Make "kubeadm upgrade apply" add the "node-role.kubernetes.io/control-plane" label on existing nodes that only have the "node-role.kubernetes.io/master" label during upgrade. + - Please adapt your tooling built on top of kubeadm to use the "node-role.kubernetes.io/control-plane" label. + - The taint applied to control-plane nodes "node-role.kubernetes.io/master:NoSchedule" is now deprecated and will be removed in a future release after a GA deprecation period. + - Apply toleration for a new, future taint "node-role.kubernetes.io/control-plane:NoSchedule" to the kubeadm CoreDNS / kube-dns managed manifests. Note that this taint is not yet applied to kubeadm control-plane nodes. + - Please adapt your workloads to tolerate the same future taint preemptively. + +- Kubeadm: improve the validation of serviceSubnet and podSubnet. + ServiceSubnet has to be limited in size, due to implementation details, and the mask can not allocate more than 20 bits. + PodSubnet validates against the corresponding cluster "--node-cidr-mask-size" of the kube-controller-manager, it fail if the values are not compatible. + kubeadm no longer sets the node-mask automatically on IPv6 deployments, you must check that your IPv6 service subnet mask is compatible with the default node mask /64 or set it accordenly. + Previously, for IPv6, if the podSubnet had a mask lower than /112, kubeadm calculated a node-mask to be multiple of eight and splitting the available bits to maximise the number used for nodes. ([#95723](https://github.com/kubernetes/kubernetes/pull/95723), [@aojea](https://github.com/aojea)) [SIG Cluster Lifecycle] +- The deprecated flag --experimental-kustomize is now removed from kubeadm commands. Use --experimental-patches instead, which was introduced in 1.19. Migration infromation available in --help description for --exprimental-patches. ([#94871](https://github.com/kubernetes/kubernetes/pull/94871), [@neolit123](https://github.com/neolit123)) +- Windows hyper-v container featuregate is deprecated in 1.20 and will be removed in 1.21 ([#95505](https://github.com/kubernetes/kubernetes/pull/95505), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows] +- The kube-apiserver ability to serve on an insecure port, deprecated since v1.10, has been removed. The insecure address flags `--address` and `--insecure-bind-address` have no effect in kube-apiserver and will be removed in v1.24. The insecure port flags `--port` and `--insecure-port` may only be set to 0 and will be removed in v1.24. ([#95856](https://github.com/kubernetes/kubernetes/pull/95856), [@knight42](https://github.com/knight42), [SIG API Machinery, Node, Testing]) +- Add dual-stack Services (alpha). This is a BREAKING CHANGE to an alpha API. + It changes the dual-stack API wrt Service from a single ipFamily field to 3 + fields: ipFamilyPolicy (SingleStack, PreferDualStack, RequireDualStack), + ipFamilies (a list of families assigned), and clusterIPs (inclusive of + clusterIP). Most users do not need to set anything at all, defaulting will + handle it for them. Services are single-stack unless the user asks for + dual-stack. This is all gated by the "IPv6DualStack" feature gate. ([#91824](https://github.com/kubernetes/kubernetes/pull/91824), [@khenidak](https://github.com/khenidak)) [SIG API Machinery, Apps, CLI, Network, Node, Scheduling and Testing] +- `TokenRequest` and `TokenRequestProjection` are now GA features. The following flags are required by the API server: + - `--service-account-issuer`, should be set to a URL identifying the API server that will be stable over the cluster lifetime. + - `--service-account-key-file`, set to one or more files containing one or more public keys used to verify tokens. + - `--service-account-signing-key-file`, set to a file containing a private key to use to sign service account tokens. Can be the same file given to `kube-controller-manager` with `--service-account-private-key-file`. ([#95896](https://github.com/kubernetes/kubernetes/pull/95896), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Cluster Lifecycle] +- kubeadm: make the command "kubeadm alpha kubeconfig user" accept a "--config" flag and remove the following flags: + - apiserver-advertise-address / apiserver-bind-port: use either localAPIEndpoint from InitConfiguration or controlPlaneEndpoint from ClusterConfiguration. + - cluster-name: use clusterName from ClusterConfiguration + - cert-dir: use certificatesDir from ClusterConfiguration ([#94879](https://github.com/kubernetes/kubernetes/pull/94879), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] +- Resolves non-deterministic behavior of the garbage collection controller when ownerReferences with incorrect data are encountered. Events with a reason of `OwnerRefInvalidNamespace` are recorded when namespace mismatches between child and owner objects are detected. The [kubectl-check-ownerreferences](https://github.com/kubernetes-sigs/kubectl-check-ownerreferences) tool can be run prior to upgrading to locate existing objects with invalid ownerReferences. + - A namespaced object with an ownerReference referencing a uid of a namespaced kind which does not exist in the same namespace is now consistently treated as though that owner does not exist, and the child object is deleted. + - A cluster-scoped object with an ownerReference referencing a uid of a namespaced kind is now consistently treated as though that owner is not resolvable, and the child object is ignored by the garbage collector. ([#92743](https://github.com/kubernetes/kubernetes/pull/92743), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps and Testing] + + +## Changes by Kind + +### Deprecation + +- Docker support in the kubelet is now deprecated and will be removed in a future release. The kubelet uses a module called "dockershim" which implements CRI support for Docker and it has seen maintenance issues in the Kubernetes community. We encourage you to evaluate moving to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available. ([#94624](https://github.com/kubernetes/kubernetes/pull/94624), [@dims](https://github.com/dims)) [SIG Node] +- Kubeadm: deprecate self-hosting support. The experimental command "kubeadm alpha self-hosting" is now deprecated and will be removed in a future release. ([#95125](https://github.com/kubernetes/kubernetes/pull/95125), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: graduate the "kubeadm alpha certs" command to a parent command "kubeadm certs". The command "kubeadm alpha certs" is deprecated and will be removed in a future release. Please migrate. ([#94938](https://github.com/kubernetes/kubernetes/pull/94938), [@yagonobre](https://github.com/yagonobre)) [SIG Cluster Lifecycle] +- Kubeadm: remove the deprecated "kubeadm alpha kubelet config enable-dynamic" command. To continue using the feature please defer to the guide for "Dynamic Kubelet Configuration" at k8s.io. This change also removes the parent command "kubeadm alpha kubelet" as there are no more sub-commands under it for the time being. ([#94668](https://github.com/kubernetes/kubernetes/pull/94668), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: remove the deprecated --kubelet-config flag for the command "kubeadm upgrade node" ([#94869](https://github.com/kubernetes/kubernetes/pull/94869), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubectl: deprecate --delete-local-data ([#95076](https://github.com/kubernetes/kubernetes/pull/95076), [@dougsland](https://github.com/dougsland)) [SIG CLI, Cloud Provider and Scalability] +- Kubelet's deprecated endpoint `metrics/resource/v1alpha1` has been removed, please adopt `metrics/resource`. ([#94272](https://github.com/kubernetes/kubernetes/pull/94272), [@RainbowMango](https://github.com/RainbowMango)) [SIG Instrumentation and Node] +- Removes deprecated scheduler metrics DeprecatedSchedulingDuration, DeprecatedSchedulingAlgorithmPredicateEvaluationSecondsDuration, DeprecatedSchedulingAlgorithmPriorityEvaluationSecondsDuration ([#94884](https://github.com/kubernetes/kubernetes/pull/94884), [@arghya88](https://github.com/arghya88)) [SIG Instrumentation and Scheduling] +- Scheduler alpha metrics binding_duration_seconds and scheduling_algorithm_preemption_evaluation_seconds are deprecated, Both of those metrics are now covered as part of framework_extension_point_duration_seconds, the former as a PostFilter the latter and a Bind plugin. The plan is to remove both in 1.21 ([#95001](https://github.com/kubernetes/kubernetes/pull/95001), [@arghya88](https://github.com/arghya88)) [SIG Instrumentation and Scheduling] +- Support 'controlplane' as a valid EgressSelection type in the EgressSelectorConfiguration API. 'Master' is deprecated and will be removed in v1.22. ([#95235](https://github.com/kubernetes/kubernetes/pull/95235), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery] +- The v1alpha1 PodPreset API and admission plugin has been removed with no built-in replacement. Admission webhooks can be used to modify pods on creation. ([#94090](https://github.com/kubernetes/kubernetes/pull/94090), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Apps, CLI, Cloud Provider, Scalability and Testing] + + +### API Change + +- `TokenRequest` and `TokenRequestProjection` features have been promoted to GA. This feature allows generating service account tokens that are not visible in Secret objects and are tied to the lifetime of a Pod object. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-token-volume-projection for details on configuring and using this feature. The `TokenRequest` and `TokenRequestProjection` feature gates will be removed in v1.21. + - kubeadm's kube-apiserver Pod manifest now includes the following flags by default "--service-account-key-file", "--service-account-signing-key-file", "--service-account-issuer". ([#93258](https://github.com/kubernetes/kubernetes/pull/93258), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Cluster Lifecycle, Storage and Testing] +- A new `nofuzz` go build tag now disables gofuzz support. Release binaries enable this. ([#92491](https://github.com/kubernetes/kubernetes/pull/92491), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery] +- Add WindowsContainerResources and Annotations to CRI-API UpdateContainerResourcesRequest ([#95741](https://github.com/kubernetes/kubernetes/pull/95741), [@katiewasnothere](https://github.com/katiewasnothere)) [SIG Node] +- Add a `serving` and `terminating` condition to the EndpointSlice API. + `serving` tracks the readiness of endpoints regardless of their terminating state. This is distinct from `ready` since `ready` is only true when pods are not terminating. + `terminating` is true when an endpoint is terminating. For pods this is any endpoint with a deletion timestamp. ([#92968](https://github.com/kubernetes/kubernetes/pull/92968), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps and Network] +- Add dual-stack Services (alpha). This is a BREAKING CHANGE to an alpha API. + It changes the dual-stack API wrt Service from a single ipFamily field to 3 + fields: ipFamilyPolicy (SingleStack, PreferDualStack, RequireDualStack), + ipFamilies (a list of families assigned), and clusterIPs (inclusive of + clusterIP). Most users do not need to set anything at all, defaulting will + handle it for them. Services are single-stack unless the user asks for + dual-stack. This is all gated by the "IPv6DualStack" feature gate. ([#91824](https://github.com/kubernetes/kubernetes/pull/91824), [@khenidak](https://github.com/khenidak)) [SIG API Machinery, Apps, CLI, Network, Node, Scheduling and Testing] +- Add support for hugepages to downward API ([#86102](https://github.com/kubernetes/kubernetes/pull/86102), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG API Machinery, Apps, CLI, Network, Node, Scheduling and Testing] +- Adds kubelet alpha feature, `GracefulNodeShutdown` which makes kubelet aware of node system shutdowns and result in graceful termination of pods during a system shutdown. ([#96129](https://github.com/kubernetes/kubernetes/pull/96129), [@bobbypage](https://github.com/bobbypage)) [SIG Node] +- AppProtocol is now GA for Endpoints and Services. The ServiceAppProtocol feature gate will be deprecated in 1.21. ([#96327](https://github.com/kubernetes/kubernetes/pull/96327), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- Automatic allocation of NodePorts for services with type LoadBalancer can now be disabled by setting the (new) parameter + Service.spec.allocateLoadBalancerNodePorts=false. The default is to allocate NodePorts for services with type LoadBalancer which is the existing behavior. ([#92744](https://github.com/kubernetes/kubernetes/pull/92744), [@uablrek](https://github.com/uablrek)) [SIG Apps and Network] +- Certain fields on Service objects will be automatically cleared when changing the service's `type` to a mode that does not need those fields. For example, changing from type=LoadBalancer to type=ClusterIP will clear the NodePort assignments, rather than forcing the user to clear them. ([#95196](https://github.com/kubernetes/kubernetes/pull/95196), [@thockin](https://github.com/thockin)) [SIG API Machinery, Apps, Network and Testing] +- Document that ServiceTopology feature is required to use `service.spec.topologyKeys`. ([#96528](https://github.com/kubernetes/kubernetes/pull/96528), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps] +- EndpointSlice has a new NodeName field guarded by the EndpointSliceNodeName feature gate. + - EndpointSlice topology field will be deprecated in an upcoming release. + - EndpointSlice "IP" address type is formally removed after being deprecated in Kubernetes 1.17. + - The discovery.k8s.io/v1alpha1 API is deprecated and will be removed in Kubernetes 1.21. ([#96440](https://github.com/kubernetes/kubernetes/pull/96440), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps and Network] +- External facing API podresources is now available under k8s.io/kubelet/pkg/apis/ ([#92632](https://github.com/kubernetes/kubernetes/pull/92632), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) [SIG Node and Testing] +- Fewer candidates are enumerated for preemption to improve performance in large clusters. ([#94814](https://github.com/kubernetes/kubernetes/pull/94814), [@adtac](https://github.com/adtac)) +- Fix conversions for custom metrics. ([#94481](https://github.com/kubernetes/kubernetes/pull/94481), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Instrumentation] +- GPU metrics provided by kubelet are now disabled by default. ([#95184](https://github.com/kubernetes/kubernetes/pull/95184), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) +- If BoundServiceAccountTokenVolume is enabled, cluster admins can use metric `serviceaccount_stale_tokens_total` to monitor workloads that are depending on the extended tokens. If there are no such workloads, turn off extended tokens by starting `kube-apiserver` with flag `--service-account-extend-token-expiration=false` ([#96273](https://github.com/kubernetes/kubernetes/pull/96273), [@zshihang](https://github.com/zshihang)) [SIG API Machinery and Auth] +- Introduce alpha support for exec-based container registry credential provider plugins in the kubelet. ([#94196](https://github.com/kubernetes/kubernetes/pull/94196), [@andrewsykim](https://github.com/andrewsykim)) [SIG Node and Release] +- Introduces a metric source for HPAs which allows scaling based on container resource usage. ([#90691](https://github.com/kubernetes/kubernetes/pull/90691), [@arjunrn](https://github.com/arjunrn)) [SIG API Machinery, Apps, Autoscaling and CLI] +- Kube-apiserver now deletes expired kube-apiserver Lease objects: + - The feature is under feature gate `APIServerIdentity`. + - A flag is added to kube-apiserver: `identity-lease-garbage-collection-check-period-seconds` ([#95895](https://github.com/kubernetes/kubernetes/pull/95895), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery, Apps, Auth and Testing] +- Kube-controller-manager: volume plugins can be restricted from contacting local and loopback addresses by setting `--volume-host-allow-local-loopback=false`, or from contacting specific CIDR ranges by setting `--volume-host-cidr-denylist` (for example, `--volume-host-cidr-denylist=127.0.0.1/28,feed::/16`) ([#91785](https://github.com/kubernetes/kubernetes/pull/91785), [@mattcary](https://github.com/mattcary)) [SIG API Machinery, Apps, Auth, CLI, Network, Node, Storage and Testing] +- Migrate scheduler, controller-manager and cloud-controller-manager to use LeaseLock ([#94603](https://github.com/kubernetes/kubernetes/pull/94603), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery, Apps, Cloud Provider and Scheduling] +- Modify DNS-1123 error messages to indicate that RFC 1123 is not followed exactly ([#94182](https://github.com/kubernetes/kubernetes/pull/94182), [@mattfenwick](https://github.com/mattfenwick)) [SIG API Machinery, Apps, Auth, Network and Node] +- Move configurable fsgroup change policy for pods to beta ([#96376](https://github.com/kubernetes/kubernetes/pull/96376), [@gnufied](https://github.com/gnufied)) [SIG Apps and Storage] +- New flag is introduced, i.e. --topology-manager-scope=container|pod. + The default value is the "container" scope. ([#92967](https://github.com/kubernetes/kubernetes/pull/92967), [@cezaryzukowski](https://github.com/cezaryzukowski)) [SIG Instrumentation, Node and Testing] +- New parameter `defaultingType` for `PodTopologySpread` plugin allows to use k8s defined or user provided default constraints ([#95048](https://github.com/kubernetes/kubernetes/pull/95048), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- NodeAffinity plugin can be configured with AddedAffinity. ([#96202](https://github.com/kubernetes/kubernetes/pull/96202), [@alculquicondor](https://github.com/alculquicondor)) [SIG Node, Scheduling and Testing] +- Promote RuntimeClass feature to GA. + Promote node.k8s.io API groups from v1beta1 to v1. ([#95718](https://github.com/kubernetes/kubernetes/pull/95718), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Apps, Auth, Node, Scheduling and Testing] +- Reminder: The labels "failure-domain.beta.kubernetes.io/zone" and "failure-domain.beta.kubernetes.io/region" are deprecated in favor of "topology.kubernetes.io/zone" and "topology.kubernetes.io/region" respectively. All users of the "failure-domain.beta..." labels should switch to the "topology..." equivalents. ([#96033](https://github.com/kubernetes/kubernetes/pull/96033), [@thockin](https://github.com/thockin)) [SIG API Machinery, Apps, CLI, Cloud Provider, Network, Node, Scheduling, Storage and Testing] +- Server Side Apply now treats LabelSelector fields as atomic (meaning the entire selector is managed by a single writer and updated together), since they contain interrelated and inseparable fields that do not merge in intuitive ways. ([#93901](https://github.com/kubernetes/kubernetes/pull/93901), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Storage and Testing] +- Services will now have a `clusterIPs` field to go with `clusterIP`. `clusterIPs[0]` is a synonym for `clusterIP` and will be syncronized on create and update operations. ([#95894](https://github.com/kubernetes/kubernetes/pull/95894), [@thockin](https://github.com/thockin)) [SIG Network] +- The ServiceAccountIssuerDiscovery feature gate is now Beta and enabled by default. ([#91921](https://github.com/kubernetes/kubernetes/pull/91921), [@mtaufen](https://github.com/mtaufen)) [SIG Auth] +- The status of v1beta1 CRDs without "preserveUnknownFields:false" now shows a violation, "spec.preserveUnknownFields: Invalid value: true: must be false". ([#93078](https://github.com/kubernetes/kubernetes/pull/93078), [@vareti](https://github.com/vareti)) +- The usage of mixed protocol values in the same LoadBalancer Service is possible if the new feature gate MixedProtocolLBService is enabled. The feature gate is disabled by default. The user has to enable it for the API Server. ([#94028](https://github.com/kubernetes/kubernetes/pull/94028), [@janosi](https://github.com/janosi)) [SIG API Machinery and Apps] +- This PR will introduce a feature gate CSIServiceAccountToken with two additional fields in `CSIDriverSpec`. ([#93130](https://github.com/kubernetes/kubernetes/pull/93130), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Apps, Auth, CLI, Network, Node, Storage and Testing] +- Users can try the cronjob controller v2 using the feature gate. This will be the default controller in future releases. ([#93370](https://github.com/kubernetes/kubernetes/pull/93370), [@alaypatel07](https://github.com/alaypatel07)) [SIG API Machinery, Apps, Auth and Testing] +- VolumeSnapshotDataSource moves to GA in 1.20 release ([#95282](https://github.com/kubernetes/kubernetes/pull/95282), [@xing-yang](https://github.com/xing-yang)) [SIG Apps] +- WinOverlay feature graduated to beta ([#94807](https://github.com/kubernetes/kubernetes/pull/94807), [@ksubrmnn](https://github.com/ksubrmnn)) [SIG Windows] + +### Feature + +- **Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**: +- A new metric `apiserver_request_filter_duration_seconds` has been introduced that + measures request filter latency in seconds. ([#95207](https://github.com/kubernetes/kubernetes/pull/95207), [@tkashem](https://github.com/tkashem)) [SIG API Machinery and Instrumentation] +- A new set of alpha metrics are reported by the Kubernetes scheduler under the `/metrics/resources` endpoint that allow administrators to easily see the resource consumption (requests and limits for all resources on the pods) and compare it to actual pod usage or node capacity. ([#94866](https://github.com/kubernetes/kubernetes/pull/94866), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Instrumentation, Node and Scheduling] +- Add --experimental-logging-sanitization flag enabling runtime protection from leaking sensitive data in logs ([#96370](https://github.com/kubernetes/kubernetes/pull/96370), [@serathius](https://github.com/serathius)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] +- Add a StorageVersionAPI feature gate that makes API server update storageversions before serving certain write requests. + This feature allows the storage migrator to manage storage migration for built-in resources. + Enabling internal.apiserver.k8s.io/v1alpha1 API and APIServerIdentity feature gate are required to use this feature. ([#93873](https://github.com/kubernetes/kubernetes/pull/93873), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery, Auth and Testing] +- Add a metric for time taken to perform recursive permission change ([#95866](https://github.com/kubernetes/kubernetes/pull/95866), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation and Storage] +- Add a new `vSphere` metric: `cloudprovider_vsphere_vcenter_versions`. It's content show `vCenter` hostnames with the associated server version. ([#94526](https://github.com/kubernetes/kubernetes/pull/94526), [@Danil-Grigorev](https://github.com/Danil-Grigorev)) [SIG Cloud Provider and Instrumentation] +- Add a new flag to set priority for the kubelet on Windows nodes so that workloads cannot overwhelm the node there by disrupting kubelet process. ([#96051](https://github.com/kubernetes/kubernetes/pull/96051), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node and Windows] +- Add feature to size memory backed volumes ([#94444](https://github.com/kubernetes/kubernetes/pull/94444), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Storage and Testing] +- Add foreground cascading deletion to kubectl with the new `kubectl delete foreground|background|orphan` option. ([#93384](https://github.com/kubernetes/kubernetes/pull/93384), [@zhouya0](https://github.com/zhouya0)) +- Add metrics for azure service operations (route and loadbalancer). ([#94124](https://github.com/kubernetes/kubernetes/pull/94124), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider and Instrumentation] +- Add network rule support in Azure account creation. ([#94239](https://github.com/kubernetes/kubernetes/pull/94239), [@andyzhangx](https://github.com/andyzhangx)) +- Add node_authorizer_actions_duration_seconds metric that can be used to estimate load to node authorizer. ([#92466](https://github.com/kubernetes/kubernetes/pull/92466), [@mborsz](https://github.com/mborsz)) [SIG API Machinery, Auth and Instrumentation] +- Add pod_ based CPU and memory metrics to Kubelet's /metrics/resource endpoint ([#95839](https://github.com/kubernetes/kubernetes/pull/95839), [@egernst](https://github.com/egernst)) [SIG Instrumentation, Node and Testing] +- Added `get-users` and `delete-user` to the `kubectl config` subcommand ([#89840](https://github.com/kubernetes/kubernetes/pull/89840), [@eddiezane](https://github.com/eddiezane)) [SIG CLI] +- Added counter metric "apiserver_request_self" to count API server self-requests with labels for verb, resource, and subresource. ([#94288](https://github.com/kubernetes/kubernetes/pull/94288), [@LogicalShark](https://github.com/LogicalShark)) [SIG API Machinery, Auth, Instrumentation and Scheduling] +- Added new k8s.io/component-helpers repository providing shared helper code for (core) components. ([#92507](https://github.com/kubernetes/kubernetes/pull/92507), [@ingvagabund](https://github.com/ingvagabund)) [SIG Apps, Node, Release and Scheduling] +- Adds `create ingress` command to `kubectl` ([#78153](https://github.com/kubernetes/kubernetes/pull/78153), [@amimof](https://github.com/amimof)) [SIG CLI and Network] +- Adds a headless service on node-local-cache addon. ([#88412](https://github.com/kubernetes/kubernetes/pull/88412), [@stafot](https://github.com/stafot)) [SIG Cloud Provider and Network] +- Allow cross compilation of kubernetes on different platforms. ([#94403](https://github.com/kubernetes/kubernetes/pull/94403), [@bnrjee](https://github.com/bnrjee)) [SIG Release] +- Azure: Support multiple services sharing one IP address ([#94991](https://github.com/kubernetes/kubernetes/pull/94991), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- CRDs: For structural schemas, non-nullable null map fields will now be dropped and defaulted if a default is available. null items in list will continue being preserved, and fail validation if not nullable. ([#95423](https://github.com/kubernetes/kubernetes/pull/95423), [@apelisse](https://github.com/apelisse)) [SIG API Machinery] +- Changed: default "Accept: */*" header added to HTTP probes. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes (https://github.com/kubernetes/website/pull/24756) ([#95641](https://github.com/kubernetes/kubernetes/pull/95641), [@fonsecas72](https://github.com/fonsecas72)) [SIG Network and Node] +- Client-go credential plugins can now be passed in the current cluster information via the KUBERNETES_EXEC_INFO environment variable. ([#95489](https://github.com/kubernetes/kubernetes/pull/95489), [@ankeesler](https://github.com/ankeesler)) [SIG API Machinery and Auth] +- Command to start network proxy changes from 'KUBE_ENABLE_EGRESS_VIA_KONNECTIVITY_SERVICE ./cluster/kube-up.sh' to 'KUBE_ENABLE_KONNECTIVITY_SERVICE=true ./hack/kube-up.sh' ([#92669](https://github.com/kubernetes/kubernetes/pull/92669), [@Jefftree](https://github.com/Jefftree)) [SIG Cloud Provider] +- Configure AWS LoadBalancer health check protocol via service annotations. ([#94546](https://github.com/kubernetes/kubernetes/pull/94546), [@kishorj](https://github.com/kishorj)) +- DefaultPodTopologySpread graduated to Beta. The feature gate is enabled by default. ([#95631](https://github.com/kubernetes/kubernetes/pull/95631), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling and Testing] +- E2e test for PodFsGroupChangePolicy ([#96247](https://github.com/kubernetes/kubernetes/pull/96247), [@saikat-royc](https://github.com/saikat-royc)) [SIG Storage and Testing] +- Ephemeral containers now apply the same API defaults as initContainers and containers ([#94896](https://github.com/kubernetes/kubernetes/pull/94896), [@wawa0210](https://github.com/wawa0210)) [SIG Apps and CLI] +- Gradudate the Pod Resources API to G.A + Introduces the pod_resources_endpoint_requests_total metric which tracks the total number of requests to the pod resources API ([#92165](https://github.com/kubernetes/kubernetes/pull/92165), [@RenaudWasTaken](https://github.com/RenaudWasTaken)) [SIG Instrumentation, Node and Testing] +- In dual-stack bare-metal clusters, you can now pass dual-stack IPs to `kubelet --node-ip`. + eg: `kubelet --node-ip 10.1.0.5,fd01::0005`. This is not yet supported for non-bare-metal + clusters. + + In dual-stack clusters where nodes have dual-stack addresses, hostNetwork pods + will now get dual-stack PodIPs. ([#95239](https://github.com/kubernetes/kubernetes/pull/95239), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] +- Introduce api-extensions category which will return: mutating admission configs, validating admission configs, CRDs and APIServices when used in kubectl get, for example. ([#95603](https://github.com/kubernetes/kubernetes/pull/95603), [@soltysh](https://github.com/soltysh)) [SIG API Machinery] +- Introduces a new GCE specific cluster creation variable KUBE_PROXY_DISABLE. When set to true, this will skip over the creation of kube-proxy (whether the daemonset or static pod). This can be used to control the lifecycle of kube-proxy separately from the lifecycle of the nodes. ([#91977](https://github.com/kubernetes/kubernetes/pull/91977), [@varunmar](https://github.com/varunmar)) [SIG Cloud Provider] +- Kube-apiserver now maintains a Lease object to identify itself: + - The feature is under feature gate `APIServerIdentity`. + - Two flags are added to kube-apiserver: `identity-lease-duration-seconds`, `identity-lease-renew-interval-seconds` ([#95533](https://github.com/kubernetes/kubernetes/pull/95533), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery] +- Kube-apiserver: The timeout used when making health check calls to etcd can now be configured with `--etcd-healthcheck-timeout`. The default timeout is 2 seconds, matching the previous behavior. ([#93244](https://github.com/kubernetes/kubernetes/pull/93244), [@Sh4d1](https://github.com/Sh4d1)) [SIG API Machinery] +- Kube-apiserver: added support for compressing rotated audit log files with `--audit-log-compress` ([#94066](https://github.com/kubernetes/kubernetes/pull/94066), [@lojies](https://github.com/lojies)) [SIG API Machinery and Auth] +- Kubeadm now prints warnings instead of throwing errors if the current system time is outside of the NotBefore and NotAfter bounds of a loaded certificate. ([#94504](https://github.com/kubernetes/kubernetes/pull/94504), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Add a preflight check that the control-plane node has at least 1700MB of RAM ([#93275](https://github.com/kubernetes/kubernetes/pull/93275), [@xlgao-zju](https://github.com/xlgao-zju)) [SIG Cluster Lifecycle] +- Kubeadm: add the "--cluster-name" flag to the "kubeadm alpha kubeconfig user" to allow configuring the cluster name in the generated kubeconfig file ([#93992](https://github.com/kubernetes/kubernetes/pull/93992), [@prabhu43](https://github.com/prabhu43)) [SIG Cluster Lifecycle] +- Kubeadm: add the "--kubeconfig" flag to the "kubeadm init phase upload-certs" command to allow users to pass a custom location for a kubeconfig file. ([#94765](https://github.com/kubernetes/kubernetes/pull/94765), [@zhanw15](https://github.com/zhanw15)) [SIG Cluster Lifecycle] +- Kubeadm: make etcd pod request 100m CPU, 100Mi memory and 100Mi ephemeral_storage by default ([#94479](https://github.com/kubernetes/kubernetes/pull/94479), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] +- Kubeadm: make the command "kubeadm alpha kubeconfig user" accept a "--config" flag and remove the following flags: + - apiserver-advertise-address / apiserver-bind-port: use either localAPIEndpoint from InitConfiguration or controlPlaneEndpoint from ClusterConfiguration. + - cluster-name: use clusterName from ClusterConfiguration + - cert-dir: use certificatesDir from ClusterConfiguration ([#94879](https://github.com/kubernetes/kubernetes/pull/94879), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] +- Kubectl create now supports creating ingress objects. ([#94327](https://github.com/kubernetes/kubernetes/pull/94327), [@rikatz](https://github.com/rikatz)) [SIG CLI and Network] +- Kubectl rollout history sts/sts-name --revision=some-revision will start showing the detailed view of the sts on that specified revision ([#86506](https://github.com/kubernetes/kubernetes/pull/86506), [@dineshba](https://github.com/dineshba)) [SIG CLI] +- Kubectl: Previously users cannot provide arguments to a external diff tool via KUBECTL_EXTERNAL_DIFF env. This release now allow users to specify args to KUBECTL_EXTERNAL_DIFF env. ([#95292](https://github.com/kubernetes/kubernetes/pull/95292), [@dougsland](https://github.com/dougsland)) [SIG CLI] +- Kubemark now supports both real and hollow nodes in a single cluster. ([#93201](https://github.com/kubernetes/kubernetes/pull/93201), [@ellistarn](https://github.com/ellistarn)) [SIG Scalability] +- Kubernetes E2E test image manifest lists now contain Windows images. ([#77398](https://github.com/kubernetes/kubernetes/pull/77398), [@claudiubelu](https://github.com/claudiubelu)) [SIG Testing and Windows] +- Kubernetes is now built using go1.15.2 + - build: Update to k/repo-infra@v0.1.1 (supports go1.15.2) + - build: Use go-runner:buster-v2.0.1 (built using go1.15.1) + - bazel: Replace --features with Starlark build settings flag + - hack/lib/util.sh: some bash cleanups + + - switched one spot to use kube::logging + - make kube::util::find-binary return an error when it doesn't find + anything so that hack scripts fail fast instead of with '' binary not + found errors. + - this required deleting some genfeddoc stuff. the binary no longer + exists in k/k repo since we removed federation/, and I don't see it + in https://github.com/kubernetes-sigs/kubefed/ either. I'm assuming + that it's gone for good now. + + - bazel: output go_binary rule directly from go_binary_conditional_pure + + From: [@mikedanese](https://github.com/mikedanese): + Instead of aliasing. Aliases are annoying in a number of ways. This is + specifically bugging me now because they make the action graph harder to + analyze programmatically. By using aliases here, we would need to handle + potentially aliased go_binary targets and dereference to the effective + target. + + The comment references an issue with `pure = select(...)` which appears + to be resolved considering this now builds. + + - make kube::util::find-binary not dependent on bazel-out/ structure + + Implement an aspect that outputs go_build_mode metadata for go binaries, + and use that during binary selection. ([#94449](https://github.com/kubernetes/kubernetes/pull/94449), [@justaugustus](https://github.com/justaugustus)) [SIG Architecture, CLI, Cluster Lifecycle, Node, Release and Testing] +- Kubernetes is now built using go1.15.5 + - build: Update to k/repo-infra@v0.1.2 (supports go1.15.5) ([#95776](https://github.com/kubernetes/kubernetes/pull/95776), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing] +- New default scheduling plugins order reduces scheduling and preemption latency when taints and node affinity are used ([#95539](https://github.com/kubernetes/kubernetes/pull/95539), [@soulxu](https://github.com/soulxu)) [SIG Scheduling] +- Only update Azure data disks when attach/detach ([#94265](https://github.com/kubernetes/kubernetes/pull/94265), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Promote SupportNodePidsLimit to GA to provide node-to-pod PID isolation. + Promote SupportPodPidsLimit to GA to provide ability to limit PIDs per pod. ([#94140](https://github.com/kubernetes/kubernetes/pull/94140), [@derekwaynecarr](https://github.com/derekwaynecarr)) +- SCTP support in API objects (Pod, Service, NetworkPolicy) is now GA. + Note that this has no effect on whether SCTP is enabled on nodes at the kernel level, + and note that some cloud platforms and network plugins do not support SCTP traffic. ([#95566](https://github.com/kubernetes/kubernetes/pull/95566), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network] +- Scheduler now ignores Pod update events if the resourceVersion of old and new Pods are identical. ([#96071](https://github.com/kubernetes/kubernetes/pull/96071), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] +- Scheduling Framework: expose Run[Pre]ScorePlugins functions to PreemptionHandle which can be used in PostFilter extention point. ([#93534](https://github.com/kubernetes/kubernetes/pull/93534), [@everpeace](https://github.com/everpeace)) [SIG Scheduling and Testing] +- SelectorSpreadPriority maps to PodTopologySpread plugin when DefaultPodTopologySpread feature is enabled ([#95448](https://github.com/kubernetes/kubernetes/pull/95448), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- Send GCE node startup scripts logs to console and journal. ([#95311](https://github.com/kubernetes/kubernetes/pull/95311), [@karan](https://github.com/karan)) +- SetHostnameAsFQDN has been graduated to Beta and therefore it is enabled by default. ([#95267](https://github.com/kubernetes/kubernetes/pull/95267), [@javidiaz](https://github.com/javidiaz)) [SIG Node] +- Support [service.beta.kubernetes.io/azure-pip-ip-tags] annotations to allow customers to specify ip-tags to influence public-ip creation in Azure [Tag1=Value1, Tag2=Value2, etc.] ([#94114](https://github.com/kubernetes/kubernetes/pull/94114), [@MarcPow](https://github.com/MarcPow)) [SIG Cloud Provider] +- Support custom tags for cloud provider managed resources ([#96450](https://github.com/kubernetes/kubernetes/pull/96450), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Support customize load balancer health probe protocol and request path ([#96338](https://github.com/kubernetes/kubernetes/pull/96338), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Support for Windows container images (OS Versions: 1809, 1903, 1909, 2004) was added the pause:3.4 image. ([#91452](https://github.com/kubernetes/kubernetes/pull/91452), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Release and Windows] +- Support multiple standard load balancers in one cluster ([#96111](https://github.com/kubernetes/kubernetes/pull/96111), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- The beta `RootCAConfigMap` feature gate is enabled by default and causes kube-controller-manager to publish a "kube-root-ca.crt" ConfigMap to every namespace. This ConfigMap contains a CA bundle used for verifying connections to the kube-apiserver. ([#96197](https://github.com/kubernetes/kubernetes/pull/96197), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Apps, Auth and Testing] +- The kubelet_runtime_operations_duration_seconds metric buckets were set to 0.005 0.0125 0.03125 0.078125 0.1953125 0.48828125 1.220703125 3.0517578125 7.62939453125 19.073486328125 47.6837158203125 119.20928955078125 298.0232238769531 and 745.0580596923828 seconds ([#96054](https://github.com/kubernetes/kubernetes/pull/96054), [@alvaroaleman](https://github.com/alvaroaleman)) [SIG Instrumentation and Node] +- There is a new pv_collector_total_pv_count metric that counts persistent volumes by the volume plugin name and volume mode. ([#95719](https://github.com/kubernetes/kubernetes/pull/95719), [@tsmetana](https://github.com/tsmetana)) [SIG Apps, Instrumentation, Storage and Testing] +- Volume snapshot e2e test to validate PVC and VolumeSnapshotContent finalizer ([#95863](https://github.com/kubernetes/kubernetes/pull/95863), [@RaunakShah](https://github.com/RaunakShah)) [SIG Cloud Provider, Storage and Testing] +- Warns user when executing kubectl apply/diff to resource currently being deleted. ([#95544](https://github.com/kubernetes/kubernetes/pull/95544), [@SaiHarshaK](https://github.com/SaiHarshaK)) [SIG CLI] +- `kubectl alpha debug` has graduated to beta and is now `kubectl debug`. ([#96138](https://github.com/kubernetes/kubernetes/pull/96138), [@verb](https://github.com/verb)) [SIG CLI and Testing] +- `kubectl debug` gains support for changing container images when copying a pod for debugging, similar to how `kubectl set image` works. See `kubectl help debug` for more information. ([#96058](https://github.com/kubernetes/kubernetes/pull/96058), [@verb](https://github.com/verb)) [SIG CLI] + +### Documentation + +- Fake dynamic client: document that List does not preserve TypeMeta in UnstructuredList ([#95117](https://github.com/kubernetes/kubernetes/pull/95117), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery] +- Kubelet: remove alpha warnings for CNI flags. ([#94508](https://github.com/kubernetes/kubernetes/pull/94508), [@andrewsykim](https://github.com/andrewsykim)) [SIG Network and Node] +- Updates docs and guidance on cloud provider InstancesV2 and Zones interface for external cloud providers: + - removes experimental warning for InstancesV2 + - document that implementation of InstancesV2 will disable calls to Zones + - deprecate Zones in favor of InstancesV2 ([#96397](https://github.com/kubernetes/kubernetes/pull/96397), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider] + +### Failing Test + +- Resolves an issue running Ingress conformance tests on clusters which use finalizers on Ingress objects to manage releasing load balancer resources ([#96742](https://github.com/kubernetes/kubernetes/pull/96742), [@spencerhance](https://github.com/spencerhance)) [SIG Network and Testing] +- The Conformance test "validates that there is no conflict between pods with same hostPort but different hostIP and protocol" now validates the connectivity to each hostPort, in addition to the functionality. ([#96627](https://github.com/kubernetes/kubernetes/pull/96627), [@aojea](https://github.com/aojea)) [SIG Scheduling and Testing] + +### Bug or Regression + +- Add kubectl wait --ignore-not-found flag ([#90969](https://github.com/kubernetes/kubernetes/pull/90969), [@zhouya0](https://github.com/zhouya0)) [SIG CLI] +- Added support to kube-proxy for externalTrafficPolicy=Local setting via Direct Server Return (DSR) load balancers on Windows. ([#93166](https://github.com/kubernetes/kubernetes/pull/93166), [@elweb9858](https://github.com/elweb9858)) [SIG Network] +- Alter wording to describe pods using a pvc ([#95635](https://github.com/kubernetes/kubernetes/pull/95635), [@RaunakShah](https://github.com/RaunakShah)) [SIG CLI] +- An issues preventing volume expand controller to annotate the PVC with `volume.kubernetes.io/storage-resizer` when the PVC StorageClass is already updated to the out-of-tree provisioner is now fixed. ([#94489](https://github.com/kubernetes/kubernetes/pull/94489), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG API Machinery, Apps and Storage] +- Azure ARM client: don't segfault on empty response and http error ([#94078](https://github.com/kubernetes/kubernetes/pull/94078), [@bpineau](https://github.com/bpineau)) [SIG Cloud Provider] +- Azure armclient backoff step defaults to 1 (no retry). ([#94180](https://github.com/kubernetes/kubernetes/pull/94180), [@feiskyer](https://github.com/feiskyer)) +- Azure: fix a bug that kube-controller-manager would panic if wrong Azure VMSS name is configured ([#94306](https://github.com/kubernetes/kubernetes/pull/94306), [@knight42](https://github.com/knight42)) [SIG Cloud Provider] +- Both apiserver_request_duration_seconds metrics and RequestReceivedTimestamp fields of an audit event now take into account the time a request spends in the apiserver request filters. ([#94903](https://github.com/kubernetes/kubernetes/pull/94903), [@tkashem](https://github.com/tkashem)) +- Build/lib/release: Explicitly use '--platform' in building server images + + When we switched to go-runner for building the apiserver, + controller-manager, and scheduler server components, we no longer + reference the individual architectures in the image names, specifically + in the 'FROM' directive of the server image Dockerfiles. + + As a result, server images for non-amd64 images copy in the go-runner + amd64 binary instead of the go-runner that matches that architecture. + + This commit explicitly sets the '--platform=linux/${arch}' to ensure + we're pulling the correct go-runner arch from the manifest list. + + Before: + `FROM ${base_image}` + + After: + `FROM --platform=linux/${arch} ${base_image}` ([#94552](https://github.com/kubernetes/kubernetes/pull/94552), [@justaugustus](https://github.com/justaugustus)) [SIG Release] +- Bump node-problem-detector version to v0.8.5 to fix OOM detection in with Linux kernels 5.1+ ([#96716](https://github.com/kubernetes/kubernetes/pull/96716), [@tosi3k](https://github.com/tosi3k)) [SIG Cloud Provider, Scalability and Testing] +- CSIDriver object can be deployed during volume attachment. ([#93710](https://github.com/kubernetes/kubernetes/pull/93710), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps, Node, Storage and Testing] +- Ceph RBD volume expansion now works even when ceph.conf was not provided. ([#92027](https://github.com/kubernetes/kubernetes/pull/92027), [@juliantaylor](https://github.com/juliantaylor)) +- Change plugin name in fsgroupapplymetrics of csi and flexvolume to distinguish different driver ([#95892](https://github.com/kubernetes/kubernetes/pull/95892), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation, Storage and Testing] +- Change the calculation of pod UIDs so that static pods get a unique value - will cause all containers to be killed and recreated after in-place upgrade. ([#87461](https://github.com/kubernetes/kubernetes/pull/87461), [@bboreham](https://github.com/bboreham)) [SIG Node] +- Change the mount way from systemd to normal mount except ceph and glusterfs intree-volume. ([#94916](https://github.com/kubernetes/kubernetes/pull/94916), [@smileusd](https://github.com/smileusd)) [SIG Apps, Cloud Provider, Network, Node, Storage and Testing] +- Changes to timeout parameter handling in 1.20.0-beta.2 have been reverted to avoid breaking backwards compatibility with existing clients. ([#96727](https://github.com/kubernetes/kubernetes/pull/96727), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] +- Clear UDP conntrack entry on endpoint changes when using nodeport ([#71573](https://github.com/kubernetes/kubernetes/pull/71573), [@JacobTanenbaum](https://github.com/JacobTanenbaum)) [SIG Network] +- Cloud node controller: handle empty providerID from getProviderID ([#95342](https://github.com/kubernetes/kubernetes/pull/95342), [@nicolehanjing](https://github.com/nicolehanjing)) [SIG Cloud Provider] +- Disable watchcache for events ([#96052](https://github.com/kubernetes/kubernetes/pull/96052), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery] +- Disabled `LocalStorageCapacityIsolation` feature gate is honored during scheduling. ([#96092](https://github.com/kubernetes/kubernetes/pull/96092), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling] +- Do not fail sorting empty elements. ([#94666](https://github.com/kubernetes/kubernetes/pull/94666), [@soltysh](https://github.com/soltysh)) [SIG CLI] +- Dual-stack: make nodeipam compatible with existing single-stack clusters when dual-stack feature gate become enabled by default ([#90439](https://github.com/kubernetes/kubernetes/pull/90439), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery] +- Duplicate owner reference entries in create/update/patch requests now get deduplicated by the API server. The client sending the request now receives a warning header in the API response. Clients should stop sending requests with duplicate owner references. The API server may reject such requests as early as 1.24. ([#96185](https://github.com/kubernetes/kubernetes/pull/96185), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery and Testing] +- Endpoint slice controller now mirrors parent's service label to its corresponding endpoint slices. ([#94443](https://github.com/kubernetes/kubernetes/pull/94443), [@aojea](https://github.com/aojea)) +- Ensure getPrimaryInterfaceID not panic when network interfaces for Azure VMSS are null ([#94355](https://github.com/kubernetes/kubernetes/pull/94355), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Exposes and sets a default timeout for the SubjectAccessReview client for DelegatingAuthorizationOptions ([#95725](https://github.com/kubernetes/kubernetes/pull/95725), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Cloud Provider] +- Exposes and sets a default timeout for the TokenReview client for DelegatingAuthenticationOptions ([#96217](https://github.com/kubernetes/kubernetes/pull/96217), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Cloud Provider] +- Fix CVE-2020-8555 for Quobyte client connections. ([#95206](https://github.com/kubernetes/kubernetes/pull/95206), [@misterikkit](https://github.com/misterikkit)) [SIG Storage] +- Fix IP fragmentation of UDP and TCP packets not supported issues on LoadBalancer rules ([#96464](https://github.com/kubernetes/kubernetes/pull/96464), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Fix a bug that DefaultPreemption plugin is disabled when using (legacy) scheduler policy. ([#96439](https://github.com/kubernetes/kubernetes/pull/96439), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] +- Fix a bug where loadbalancer deletion gets stuck because of missing resource group. ([#93962](https://github.com/kubernetes/kubernetes/pull/93962), [@phiphi282](https://github.com/phiphi282)) +- Fix a concurrent map writes error in kubelet ([#93773](https://github.com/kubernetes/kubernetes/pull/93773), [@knight42](https://github.com/knight42)) [SIG Node] +- Fix a panic in `kubectl debug` when a pod has multiple init or ephemeral containers. ([#94580](https://github.com/kubernetes/kubernetes/pull/94580), [@kiyoshim55](https://github.com/kiyoshim55)) +- Fix a regression where kubeadm bails out with a fatal error when an optional version command line argument is supplied to the "kubeadm upgrade plan" command ([#94421](https://github.com/kubernetes/kubernetes/pull/94421), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] +- Fix azure disk attach failure for disk size bigger than 4TB ([#95463](https://github.com/kubernetes/kubernetes/pull/95463), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix azure disk data loss issue on Windows when unmount disk ([#95456](https://github.com/kubernetes/kubernetes/pull/95456), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fix azure file migration panic ([#94853](https://github.com/kubernetes/kubernetes/pull/94853), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix bug in JSON path parser where an error occurs when a range is empty ([#95933](https://github.com/kubernetes/kubernetes/pull/95933), [@brianpursley](https://github.com/brianpursley)) [SIG API Machinery] +- Fix client-go prometheus metrics to correctly present the API path accessed in some environments. ([#74363](https://github.com/kubernetes/kubernetes/pull/74363), [@aanm](https://github.com/aanm)) [SIG API Machinery] +- Fix detach azure disk issue when vm not exist ([#95177](https://github.com/kubernetes/kubernetes/pull/95177), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix etcd_object_counts metric reported by kube-apiserver ([#94773](https://github.com/kubernetes/kubernetes/pull/94773), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] +- Fix incorrectly reported verbs for kube-apiserver metrics for CRD objects ([#93523](https://github.com/kubernetes/kubernetes/pull/93523), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Instrumentation] +- Fix k8s.io/apimachinery/pkg/api/meta.SetStatusCondition to update ObservedGeneration ([#95961](https://github.com/kubernetes/kubernetes/pull/95961), [@KnicKnic](https://github.com/KnicKnic)) [SIG API Machinery] +- Fix kubectl SchemaError on CRDs with schema using x-kubernetes-preserve-unknown-fields on array types. ([#94888](https://github.com/kubernetes/kubernetes/pull/94888), [@sttts](https://github.com/sttts)) [SIG API Machinery] +- Fix memory leak in kube-apiserver when underlying time goes forth and back. ([#96266](https://github.com/kubernetes/kubernetes/pull/96266), [@chenyw1990](https://github.com/chenyw1990)) [SIG API Machinery] +- Fix missing csi annotations on node during parallel csinode update. ([#94389](https://github.com/kubernetes/kubernetes/pull/94389), [@pacoxu](https://github.com/pacoxu)) [SIG Storage] +- Fix network_programming_latency metric reporting for Endpoints/EndpointSlice deletions, where we don't have correct timestamp ([#95363](https://github.com/kubernetes/kubernetes/pull/95363), [@wojtek-t](https://github.com/wojtek-t)) [SIG Network and Scalability] +- Fix paging issues when Azure API returns empty values with non-empty nextLink ([#96211](https://github.com/kubernetes/kubernetes/pull/96211), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Fix pull image error from multiple ACRs using azure managed identity ([#96355](https://github.com/kubernetes/kubernetes/pull/96355), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix race condition on timeCache locks. ([#94751](https://github.com/kubernetes/kubernetes/pull/94751), [@auxten](https://github.com/auxten)) +- Fix regression on `kubectl portforward` when TCP and UCP services were configured on the same port. ([#94728](https://github.com/kubernetes/kubernetes/pull/94728), [@amorenoz](https://github.com/amorenoz)) +- Fix scheduler cache snapshot when a Node is deleted before its Pods ([#95130](https://github.com/kubernetes/kubernetes/pull/95130), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- Fix the `cloudprovider_azure_api_request_duration_seconds` metric buckets to correctly capture the latency metrics. Previously, the majority of the calls would fall in the "+Inf" bucket. ([#94873](https://github.com/kubernetes/kubernetes/pull/94873), [@marwanad](https://github.com/marwanad)) [SIG Cloud Provider and Instrumentation] +- Fix vSphere volumes that could be erroneously attached to wrong node ([#96224](https://github.com/kubernetes/kubernetes/pull/96224), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage] +- Fix verb & scope reporting for kube-apiserver metrics (LIST reported instead of GET) ([#95562](https://github.com/kubernetes/kubernetes/pull/95562), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Testing] +- Fix vsphere detach failure for static PVs ([#95447](https://github.com/kubernetes/kubernetes/pull/95447), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage] +- Fix: azure disk resize error if source does not exist ([#93011](https://github.com/kubernetes/kubernetes/pull/93011), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: detach azure disk broken on Azure Stack ([#94885](https://github.com/kubernetes/kubernetes/pull/94885), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: resize Azure disk issue when it's in attached state ([#96705](https://github.com/kubernetes/kubernetes/pull/96705), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider] +- Fix: smb valid path error ([#95583](https://github.com/kubernetes/kubernetes/pull/95583), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage] +- Fix: use sensitiveOptions on Windows mount ([#94126](https://github.com/kubernetes/kubernetes/pull/94126), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fixed a bug causing incorrect formatting of `kubectl describe ingress`. ([#94985](https://github.com/kubernetes/kubernetes/pull/94985), [@howardjohn](https://github.com/howardjohn)) [SIG CLI and Network] +- Fixed a bug in client-go where new clients with customized `Dial`, `Proxy`, `GetCert` config may get stale HTTP transports. ([#95427](https://github.com/kubernetes/kubernetes/pull/95427), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery] +- Fixed a bug that prevents kubectl to validate CRDs with schema using x-kubernetes-preserve-unknown-fields on object fields. ([#96369](https://github.com/kubernetes/kubernetes/pull/96369), [@gautierdelorme](https://github.com/gautierdelorme)) [SIG API Machinery and Testing] +- Fixed a bug that prevents the use of ephemeral containers in the presence of a validating admission webhook. ([#94685](https://github.com/kubernetes/kubernetes/pull/94685), [@verb](https://github.com/verb)) [SIG Node and Testing] +- Fixed a bug where aggregator_unavailable_apiservice metrics were reported for deleted apiservices. ([#96421](https://github.com/kubernetes/kubernetes/pull/96421), [@dgrisonnet](https://github.com/dgrisonnet)) [SIG API Machinery and Instrumentation] +- Fixed a bug where improper storage and comparison of endpoints led to excessive API traffic from the endpoints controller ([#94112](https://github.com/kubernetes/kubernetes/pull/94112), [@damemi](https://github.com/damemi)) [SIG Apps, Network and Testing] +- Fixed a regression which prevented pods with `docker/default` seccomp annotations from being created in 1.19 if a PodSecurityPolicy was in place which did not allow `runtime/default` seccomp profiles. ([#95985](https://github.com/kubernetes/kubernetes/pull/95985), [@saschagrunert](https://github.com/saschagrunert)) [SIG Auth] +- Fixed bug in reflector that couldn't recover from "Too large resource version" errors with API servers 1.17.0-1.18.5 ([#94316](https://github.com/kubernetes/kubernetes/pull/94316), [@janeczku](https://github.com/janeczku)) [SIG API Machinery] +- Fixed bug where kubectl top pod output is not sorted when --sort-by and --containers flags are used together ([#93692](https://github.com/kubernetes/kubernetes/pull/93692), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] +- Fixed kubelet creating extra sandbox for pods with RestartPolicyOnFailure after all containers succeeded ([#92614](https://github.com/kubernetes/kubernetes/pull/92614), [@tnqn](https://github.com/tnqn)) [SIG Node and Testing] +- Fixes an issue proxying to ipv6 pods without specifying a port ([#94834](https://github.com/kubernetes/kubernetes/pull/94834), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Network] +- Fixes code generation for non-namespaced create subresources fake client test. ([#96586](https://github.com/kubernetes/kubernetes/pull/96586), [@Doude](https://github.com/Doude)) [SIG API Machinery] +- Fixes high CPU usage in kubectl drain ([#95260](https://github.com/kubernetes/kubernetes/pull/95260), [@amandahla](https://github.com/amandahla)) [SIG CLI] +- For vSphere Cloud Provider, If VM of worker node is deleted, the node will also be deleted by node controller ([#92608](https://github.com/kubernetes/kubernetes/pull/92608), [@lubronzhan](https://github.com/lubronzhan)) [SIG Cloud Provider] +- Gracefully delete nodes when their parent scale set went missing ([#95289](https://github.com/kubernetes/kubernetes/pull/95289), [@bpineau](https://github.com/bpineau)) [SIG Cloud Provider] +- HTTP/2 connection health check is enabled by default in all Kubernetes clients. The feature should work out-of-the-box. If needed, users can tune the feature via the HTTP2_READ_IDLE_TIMEOUT_SECONDS and HTTP2_PING_TIMEOUT_SECONDS environment variables. The feature is disabled if HTTP2_READ_IDLE_TIMEOUT_SECONDS is set to 0. ([#95981](https://github.com/kubernetes/kubernetes/pull/95981), [@caesarxuchao](https://github.com/caesarxuchao)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Node] +- If the user specifies an invalid timeout in the request URL, the request will be aborted with an HTTP 400. + - If the user specifies a timeout in the request URL that exceeds the maximum request deadline allowed by the apiserver, the request will be aborted with an HTTP 400. ([#96061](https://github.com/kubernetes/kubernetes/pull/96061), [@tkashem](https://github.com/tkashem)) [SIG API Machinery, Network and Testing] +- If we set SelectPolicy MinPolicySelect on scaleUp behavior or scaleDown behavior,Horizontal Pod Autoscaler doesn`t automatically scale the number of pods correctly ([#95647](https://github.com/kubernetes/kubernetes/pull/95647), [@JoshuaAndrew](https://github.com/JoshuaAndrew)) [SIG Apps and Autoscaling] +- Ignore apparmor for non-linux operating systems ([#93220](https://github.com/kubernetes/kubernetes/pull/93220), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows] +- Ignore root user check when windows pod starts ([#92355](https://github.com/kubernetes/kubernetes/pull/92355), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows] +- Improve error messages related to nodePort endpoint changes conntrack entries cleanup. ([#96251](https://github.com/kubernetes/kubernetes/pull/96251), [@ravens](https://github.com/ravens)) [SIG Network] +- In dual-stack clusters, kubelet will now set up both IPv4 and IPv6 iptables rules, which may + fix some problems, eg with HostPorts. ([#94474](https://github.com/kubernetes/kubernetes/pull/94474), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] +- Increase maximum IOPS of AWS EBS io1 volume to current maximum (64,000). ([#90014](https://github.com/kubernetes/kubernetes/pull/90014), [@jacobmarble](https://github.com/jacobmarble)) +- Ipvs: ensure selected scheduler kernel modules are loaded ([#93040](https://github.com/kubernetes/kubernetes/pull/93040), [@cmluciano](https://github.com/cmluciano)) [SIG Network] +- K8s.io/apimachinery: runtime.DefaultUnstructuredConverter.FromUnstructured now handles converting integer fields to typed float values ([#93250](https://github.com/kubernetes/kubernetes/pull/93250), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] +- Kube-proxy now trims extra spaces found in loadBalancerSourceRanges to match Service validation. ([#94107](https://github.com/kubernetes/kubernetes/pull/94107), [@robscott](https://github.com/robscott)) [SIG Network] +- Kubeadm ensures "kubeadm reset" does not unmount the root "/var/lib/kubelet" directory if it is mounted by the user. ([#93702](https://github.com/kubernetes/kubernetes/pull/93702), [@thtanaka](https://github.com/thtanaka)) +- Kubeadm now makes sure the etcd manifest is regenerated upon upgrade even when no etcd version change takes place ([#94395](https://github.com/kubernetes/kubernetes/pull/94395), [@rosti](https://github.com/rosti)) [SIG Cluster Lifecycle] +- Kubeadm now warns (instead of error out) on missing "ca.key" files for root CA, front-proxy CA and etcd CA, during "kubeadm join --control-plane" if the user has provided all certificates, keys and kubeconfig files which require signing with the given CA keys. ([#94988](https://github.com/kubernetes/kubernetes/pull/94988), [@neolit123](https://github.com/neolit123)) +- Kubeadm: add missing "--experimental-patches" flag to "kubeadm init phase control-plane" ([#95786](https://github.com/kubernetes/kubernetes/pull/95786), [@Sh4d1](https://github.com/Sh4d1)) [SIG Cluster Lifecycle] +- Kubeadm: avoid a panic when determining if the running version of CoreDNS is supported during upgrades ([#94299](https://github.com/kubernetes/kubernetes/pull/94299), [@zouyee](https://github.com/zouyee)) [SIG Cluster Lifecycle] +- Kubeadm: ensure the etcd data directory is created with 0700 permissions during control-plane init and join ([#94102](https://github.com/kubernetes/kubernetes/pull/94102), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: fix coredns migration should be triggered when there are newdefault configs during kubeadm upgrade ([#96907](https://github.com/kubernetes/kubernetes/pull/96907), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle] +- Kubeadm: fix the bug that kubeadm tries to call 'docker info' even if the CRI socket was for another CR ([#94555](https://github.com/kubernetes/kubernetes/pull/94555), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubeadm: for Docker as the container runtime, make the "kubeadm reset" command stop containers before removing them ([#94586](https://github.com/kubernetes/kubernetes/pull/94586), [@BedivereZero](https://github.com/BedivereZero)) [SIG Cluster Lifecycle] +- Kubeadm: make the kubeconfig files for the kube-controller-manager and kube-scheduler use the LocalAPIEndpoint instead of the ControlPlaneEndpoint. This makes kubeadm clusters more reseliant to version skew problems during immutable upgrades: https://kubernetes.io/docs/setup/release/version-skew-policy/#kube-controller-manager-kube-scheduler-and-cloud-controller-manager ([#94398](https://github.com/kubernetes/kubernetes/pull/94398), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: relax the validation of kubeconfig server URLs. Allow the user to define custom kubeconfig server URLs without erroring out during validation of existing kubeconfig files (e.g. when using external CA mode). ([#94816](https://github.com/kubernetes/kubernetes/pull/94816), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubectl: print error if users place flags before plugin name ([#92343](https://github.com/kubernetes/kubernetes/pull/92343), [@knight42](https://github.com/knight42)) [SIG CLI] +- Kubelet: assume that swap is disabled when `/proc/swaps` does not exist ([#93931](https://github.com/kubernetes/kubernetes/pull/93931), [@SataQiu](https://github.com/SataQiu)) [SIG Node] +- New Azure instance types do now have correct max data disk count information. ([#94340](https://github.com/kubernetes/kubernetes/pull/94340), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Cloud Provider and Storage] +- Port mapping now allows the same `containerPort` of different containers to different `hostPort` without naming the mapping explicitly. ([#94494](https://github.com/kubernetes/kubernetes/pull/94494), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) +- Print go stack traces at -v=4 and not -v=2 ([#94663](https://github.com/kubernetes/kubernetes/pull/94663), [@soltysh](https://github.com/soltysh)) [SIG CLI] +- Recreate EndpointSlices on rapid Service creation. ([#94730](https://github.com/kubernetes/kubernetes/pull/94730), [@robscott](https://github.com/robscott)) +- Reduce volume name length for vsphere volumes ([#96533](https://github.com/kubernetes/kubernetes/pull/96533), [@gnufied](https://github.com/gnufied)) [SIG Storage] +- Remove ready file and its directory (which is created during volume SetUp) during emptyDir volume TearDown. ([#95770](https://github.com/kubernetes/kubernetes/pull/95770), [@jingxu97](https://github.com/jingxu97)) [SIG Storage] +- Reorganized iptables rules to fix a performance issue ([#95252](https://github.com/kubernetes/kubernetes/pull/95252), [@tssurya](https://github.com/tssurya)) [SIG Network] +- Require feature flag CustomCPUCFSQuotaPeriod if setting a non-default cpuCFSQuotaPeriod in kubelet config. ([#94687](https://github.com/kubernetes/kubernetes/pull/94687), [@karan](https://github.com/karan)) [SIG Node] +- Resolves a regression in 1.19+ with workloads targeting deprecated beta os/arch labels getting stuck in NodeAffinity status on node startup. ([#96810](https://github.com/kubernetes/kubernetes/pull/96810), [@liggitt](https://github.com/liggitt)) [SIG Node] +- Resolves non-deterministic behavior of the garbage collection controller when ownerReferences with incorrect data are encountered. Events with a reason of `OwnerRefInvalidNamespace` are recorded when namespace mismatches between child and owner objects are detected. The [kubectl-check-ownerreferences](https://github.com/kubernetes-sigs/kubectl-check-ownerreferences) tool can be run prior to upgrading to locate existing objects with invalid ownerReferences. + - A namespaced object with an ownerReference referencing a uid of a namespaced kind which does not exist in the same namespace is now consistently treated as though that owner does not exist, and the child object is deleted. + - A cluster-scoped object with an ownerReference referencing a uid of a namespaced kind is now consistently treated as though that owner is not resolvable, and the child object is ignored by the garbage collector. ([#92743](https://github.com/kubernetes/kubernetes/pull/92743), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps and Testing] +- Skip [k8s.io/kubernetes@v1.19.0/test/e2e/storage/testsuites/base.go:162]: Driver azure-disk doesn't support snapshot type DynamicSnapshot -- skipping + skip [k8s.io/kubernetes@v1.19.0/test/e2e/storage/testsuites/base.go:185]: Driver azure-disk doesn't support ntfs -- skipping ([#96144](https://github.com/kubernetes/kubernetes/pull/96144), [@qinpingli](https://github.com/qinpingli)) [SIG Storage and Testing] +- StatefulSet Controller now waits for PersistentVolumeClaim deletion before creating pods. ([#93457](https://github.com/kubernetes/kubernetes/pull/93457), [@ymmt2005](https://github.com/ymmt2005)) +- StreamWatcher now calls HandleCrash at appropriate sequence. ([#93108](https://github.com/kubernetes/kubernetes/pull/93108), [@lixiaobing1](https://github.com/lixiaobing1)) +- Support the node label `node.kubernetes.io/exclude-from-external-load-balancers` ([#95542](https://github.com/kubernetes/kubernetes/pull/95542), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- The AWS network load balancer attributes can now be specified during service creation ([#95247](https://github.com/kubernetes/kubernetes/pull/95247), [@kishorj](https://github.com/kishorj)) [SIG Cloud Provider] +- The `/debug/api_priority_and_fairness/dump_requests` path at an apiserver will no longer return a phantom line for each exempt priority level. ([#93406](https://github.com/kubernetes/kubernetes/pull/93406), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] +- The kube-apiserver will no longer serve APIs that should have been deleted in GA non-alpha levels. Alpha levels will continue to serve the removed APIs so that CI doesn't immediately break. ([#96525](https://github.com/kubernetes/kubernetes/pull/96525), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] +- The kubelet recognizes the --containerd-namespace flag to configure the namespace used by cadvisor. ([#87054](https://github.com/kubernetes/kubernetes/pull/87054), [@changyaowei](https://github.com/changyaowei)) [SIG Node] +- Unhealthy pods covered by PDBs can be successfully evicted if enough healthy pods are available. ([#94381](https://github.com/kubernetes/kubernetes/pull/94381), [@michaelgugino](https://github.com/michaelgugino)) [SIG Apps] +- Update Calico to v3.15.2 ([#94241](https://github.com/kubernetes/kubernetes/pull/94241), [@lmm](https://github.com/lmm)) [SIG Cloud Provider] +- Update default etcd server version to 3.4.13 ([#94287](https://github.com/kubernetes/kubernetes/pull/94287), [@jingyih](https://github.com/jingyih)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing] +- Update max azure data disk count map ([#96308](https://github.com/kubernetes/kubernetes/pull/96308), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Update the PIP when it is not in the Succeeded provisioning state during the LB update. ([#95748](https://github.com/kubernetes/kubernetes/pull/95748), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Update the frontend IP config when the service's `pipName` annotation is changed ([#95813](https://github.com/kubernetes/kubernetes/pull/95813), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Update the route table tag in the route reconcile loop ([#96545](https://github.com/kubernetes/kubernetes/pull/96545), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Use NLB Subnet CIDRs instead of VPC CIDRs in Health Check SG Rules ([#93515](https://github.com/kubernetes/kubernetes/pull/93515), [@t0rr3sp3dr0](https://github.com/t0rr3sp3dr0)) [SIG Cloud Provider] +- Users will see increase in time for deletion of pods and also guarantee that removal of pod from api server would mean deletion of all the resources from container runtime. ([#92817](https://github.com/kubernetes/kubernetes/pull/92817), [@kmala](https://github.com/kmala)) [SIG Node] +- Very large patches may now be specified to `kubectl patch` with the `--patch-file` flag instead of including them directly on the command line. The `--patch` and `--patch-file` flags are mutually exclusive. ([#93548](https://github.com/kubernetes/kubernetes/pull/93548), [@smarterclayton](https://github.com/smarterclayton)) [SIG CLI] +- Volume binding: report UnschedulableAndUnresolvable status instead of an error when bound PVs not found ([#95541](https://github.com/kubernetes/kubernetes/pull/95541), [@cofyc](https://github.com/cofyc)) [SIG Apps, Scheduling and Storage] +- Warn instead of fail when creating Roles and ClusterRoles with custom verbs via kubectl ([#92492](https://github.com/kubernetes/kubernetes/pull/92492), [@eddiezane](https://github.com/eddiezane)) [SIG CLI] +- When creating a PVC with the volume.beta.kubernetes.io/storage-provisioner annotation already set, the PV controller might have incorrectly deleted the newly provisioned PV instead of binding it to the PVC, depending on timing and system load. ([#95909](https://github.com/kubernetes/kubernetes/pull/95909), [@pohly](https://github.com/pohly)) [SIG Apps and Storage] +- [kubectl] Fail when local source file doesn't exist ([#90333](https://github.com/kubernetes/kubernetes/pull/90333), [@bamarni](https://github.com/bamarni)) [SIG CLI] + +### Other (Cleanup or Flake) + +- **Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**: + + <!-- + This section can be blank if this pull request does not require a release note. + + When adding links which point to resources within git repositories, like + KEPs or supporting documentation, please reference a specific commit and avoid + linking directly to the master branch. This ensures that links reference a + specific point in time, rather than a document that may change over time. + + See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files + + Please use the following format for linking documentation: + - [KEP]: <link> + - [Usage]: <link> + - [Other doc]: <link> + --> ([#96443](https://github.com/kubernetes/kubernetes/pull/96443), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps] +- --redirect-container-streaming is no longer functional. The flag will be removed in v1.22 ([#95935](https://github.com/kubernetes/kubernetes/pull/95935), [@tallclair](https://github.com/tallclair)) [SIG Node] +- A new metric `requestAbortsTotal` has been introduced that counts aborted requests for each `group`, `version`, `verb`, `resource`, `subresource` and `scope`. ([#95002](https://github.com/kubernetes/kubernetes/pull/95002), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, Cloud Provider, Instrumentation and Scheduling] +- API priority and fairness metrics use snake_case in label names ([#96236](https://github.com/kubernetes/kubernetes/pull/96236), [@adtac](https://github.com/adtac)) [SIG API Machinery, Cluster Lifecycle, Instrumentation and Testing] +- Add fine grained debugging to intra-pod conformance test to troubleshoot networking issues for potentially unhealthy nodes when running conformance or sonobuoy tests. ([#93837](https://github.com/kubernetes/kubernetes/pull/93837), [@jayunit100](https://github.com/jayunit100)) +- Add the following metrics: + - network_plugin_operations_total + - network_plugin_operations_errors_total ([#93066](https://github.com/kubernetes/kubernetes/pull/93066), [@AnishShah](https://github.com/AnishShah)) +- Adds a bootstrapping ClusterRole, ClusterRoleBinding and group for /metrics, /livez/*, /readyz/*, & /healthz/- endpoints. ([#93311](https://github.com/kubernetes/kubernetes/pull/93311), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Auth, Cloud Provider and Instrumentation] +- AdmissionReview objects sent for the creation of Namespace API objects now populate the `namespace` attribute consistently (previously the `namespace` attribute was empty for Namespace creation via POST requests, and populated for Namespace creation via server-side-apply PATCH requests) ([#95012](https://github.com/kubernetes/kubernetes/pull/95012), [@nodo](https://github.com/nodo)) [SIG API Machinery and Testing] +- Applies translations on all command descriptions ([#95439](https://github.com/kubernetes/kubernetes/pull/95439), [@HerrNaN](https://github.com/HerrNaN)) [SIG CLI] +- Base-images: Update to debian-iptables:buster-v1.3.0 + - Uses iptables 1.8.5 + - base-images: Update to debian-base:buster-v1.2.0 + - cluster/images/etcd: Build etcd:3.4.13-1 image + - Uses debian-base:buster-v1.2.0 ([#94733](https://github.com/kubernetes/kubernetes/pull/94733), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Release and Testing] +- Changed: default "Accept-Encoding" header removed from HTTP probes. See https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes ([#96127](https://github.com/kubernetes/kubernetes/pull/96127), [@fonsecas72](https://github.com/fonsecas72)) [SIG Network and Node] +- Client-go header logging (at verbosity levels >= 9) now masks `Authorization` header contents ([#95316](https://github.com/kubernetes/kubernetes/pull/95316), [@sfowl](https://github.com/sfowl)) [SIG API Machinery] +- Decrease warning message frequency on setting volume ownership for configmap/secret. ([#92878](https://github.com/kubernetes/kubernetes/pull/92878), [@jvanz](https://github.com/jvanz)) +- Enhance log information of verifyRunAsNonRoot, add pod, container information ([#94911](https://github.com/kubernetes/kubernetes/pull/94911), [@wawa0210](https://github.com/wawa0210)) [SIG Node] +- Fix func name NewCreateCreateDeploymentOptions ([#91931](https://github.com/kubernetes/kubernetes/pull/91931), [@lixiaobing1](https://github.com/lixiaobing1)) [SIG CLI] +- Fix kubelet to properly log when a container is started. Previously, kubelet may log that container is dead and was restarted when it was actually started for the first time. This behavior only happened on pods with initContainers and regular containers. ([#91469](https://github.com/kubernetes/kubernetes/pull/91469), [@rata](https://github.com/rata)) +- Fixes the message about no auth for metrics in scheduler. ([#94035](https://github.com/kubernetes/kubernetes/pull/94035), [@zhouya0](https://github.com/zhouya0)) [SIG Scheduling] +- Generators for services are removed from kubectl ([#95256](https://github.com/kubernetes/kubernetes/pull/95256), [@Git-Jiro](https://github.com/Git-Jiro)) [SIG CLI] +- Introduce kubectl-convert plugin. ([#96190](https://github.com/kubernetes/kubernetes/pull/96190), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] +- Kube-scheduler now logs processed component config at startup ([#96426](https://github.com/kubernetes/kubernetes/pull/96426), [@damemi](https://github.com/damemi)) [SIG Scheduling] +- Kubeadm: Separate argument key/value in log msg ([#94016](https://github.com/kubernetes/kubernetes/pull/94016), [@mrueg](https://github.com/mrueg)) [SIG Cluster Lifecycle] +- Kubeadm: remove the CoreDNS check for known image digests when applying the addon ([#94506](https://github.com/kubernetes/kubernetes/pull/94506), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: update the default pause image version to 1.4.0 on Windows. With this update the image supports Windows versions 1809 (2019LTS), 1903, 1909, 2004 ([#95419](https://github.com/kubernetes/kubernetes/pull/95419), [@jsturtevant](https://github.com/jsturtevant)) [SIG Cluster Lifecycle and Windows] +- Kubectl: the `generator` flag of `kubectl autoscale` has been deprecated and has no effect, it will be removed in a feature release ([#92998](https://github.com/kubernetes/kubernetes/pull/92998), [@SataQiu](https://github.com/SataQiu)) [SIG CLI] +- Lock ExternalPolicyForExternalIP to default, this feature gate will be removed in 1.22. ([#94581](https://github.com/kubernetes/kubernetes/pull/94581), [@knabben](https://github.com/knabben)) [SIG Network] +- Mask ceph RBD adminSecrets in logs when logLevel >= 4. ([#95245](https://github.com/kubernetes/kubernetes/pull/95245), [@sfowl](https://github.com/sfowl)) +- Remove offensive words from kubectl cluster-info command. ([#95202](https://github.com/kubernetes/kubernetes/pull/95202), [@rikatz](https://github.com/rikatz)) +- Remove support for "ci/k8s-master" version label in kubeadm, use "ci/latest" instead. See [kubernetes/test-infra#18517](https://github.com/kubernetes/test-infra/pull/18517). ([#93626](https://github.com/kubernetes/kubernetes/pull/93626), [@vikkyomkar](https://github.com/vikkyomkar)) +- Remove the dependency of csi-translation-lib module on apiserver/cloud-provider/controller-manager ([#95543](https://github.com/kubernetes/kubernetes/pull/95543), [@wawa0210](https://github.com/wawa0210)) [SIG Release] +- Scheduler framework interface moved from pkg/scheduler/framework/v1alpha to pkg/scheduler/framework ([#95069](https://github.com/kubernetes/kubernetes/pull/95069), [@farah](https://github.com/farah)) [SIG Scheduling, Storage and Testing] +- Service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset is removed. All Standard load balancers will always enable tcp resets. ([#94297](https://github.com/kubernetes/kubernetes/pull/94297), [@MarcPow](https://github.com/MarcPow)) [SIG Cloud Provider] +- Stop propagating SelfLink (deprecated in 1.16) in kube-apiserver ([#94397](https://github.com/kubernetes/kubernetes/pull/94397), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Testing] +- Strip unnecessary security contexts on Windows ([#93475](https://github.com/kubernetes/kubernetes/pull/93475), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node, Testing and Windows] +- To ensure the code be strong, add unit test for GetAddressAndDialer ([#93180](https://github.com/kubernetes/kubernetes/pull/93180), [@FreeZhang61](https://github.com/FreeZhang61)) [SIG Node] +- UDP and SCTP protocols can left stale connections that need to be cleared to avoid services disruption, but they can cause problems that are hard to debug. + Kubernetes components using a loglevel greater or equal than 4 will log the conntrack operations and its output, to show the entries that were deleted. ([#95694](https://github.com/kubernetes/kubernetes/pull/95694), [@aojea](https://github.com/aojea)) [SIG Network] +- Update CNI plugins to v0.8.7 ([#94367](https://github.com/kubernetes/kubernetes/pull/94367), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Network, Node, Release and Testing] +- Update cri-tools to [v1.19.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.19.0) ([#94307](https://github.com/kubernetes/kubernetes/pull/94307), [@xmudrii](https://github.com/xmudrii)) [SIG Cloud Provider] +- Update etcd client side to v3.4.13 ([#94259](https://github.com/kubernetes/kubernetes/pull/94259), [@jingyih](https://github.com/jingyih)) [SIG API Machinery and Cloud Provider] +- Users will now be able to configure all supported values for AWS NLB health check interval and thresholds for new resources. ([#96312](https://github.com/kubernetes/kubernetes/pull/96312), [@kishorj](https://github.com/kishorj)) [SIG Cloud Provider] +- V1helpers.MatchNodeSelectorTerms now accepts just a Node and a list of Terms ([#95871](https://github.com/kubernetes/kubernetes/pull/95871), [@damemi](https://github.com/damemi)) [SIG Apps, Scheduling and Storage] +- Vsphere: improve logging message on node cache refresh event ([#95236](https://github.com/kubernetes/kubernetes/pull/95236), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider] +- `MatchNodeSelectorTerms` function moved to `k8s.io/component-helpers` ([#95531](https://github.com/kubernetes/kubernetes/pull/95531), [@damemi](https://github.com/damemi)) [SIG Apps, Scheduling and Storage] +- `kubectl api-resources` now prints the API version (as 'API group/version', same as output of `kubectl api-versions`). The column APIGROUP is now APIVERSION ([#95253](https://github.com/kubernetes/kubernetes/pull/95253), [@sallyom](https://github.com/sallyom)) [SIG CLI] +- `kubectl get ingress` now prefers the `networking.k8s.io/v1` over `extensions/v1beta1` (deprecated since v1.14). To explicitly request the deprecated version, use `kubectl get ingress.v1beta1.extensions`. ([#94309](https://github.com/kubernetes/kubernetes/pull/94309), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and CLI] + +## Dependencies + +### Added +- cloud.google.com/go/firestore: v1.1.0 +- github.com/Azure/go-autorest: [v14.2.0+incompatible](https://github.com/Azure/go-autorest/tree/v14.2.0) +- github.com/armon/go-metrics: [f0300d1](https://github.com/armon/go-metrics/tree/f0300d1) +- github.com/armon/go-radix: [7fddfc3](https://github.com/armon/go-radix/tree/7fddfc3) +- github.com/bketelsen/crypt: [5cbc8cc](https://github.com/bketelsen/crypt/tree/5cbc8cc) +- github.com/form3tech-oss/jwt-go: [v3.2.2+incompatible](https://github.com/form3tech-oss/jwt-go/tree/v3.2.2) +- github.com/fvbommel/sortorder: [v1.0.1](https://github.com/fvbommel/sortorder/tree/v1.0.1) +- github.com/hashicorp/consul/api: [v1.1.0](https://github.com/hashicorp/consul/api/tree/v1.1.0) +- github.com/hashicorp/consul/sdk: [v0.1.1](https://github.com/hashicorp/consul/sdk/tree/v0.1.1) +- github.com/hashicorp/errwrap: [v1.0.0](https://github.com/hashicorp/errwrap/tree/v1.0.0) +- github.com/hashicorp/go-cleanhttp: [v0.5.1](https://github.com/hashicorp/go-cleanhttp/tree/v0.5.1) +- github.com/hashicorp/go-immutable-radix: [v1.0.0](https://github.com/hashicorp/go-immutable-radix/tree/v1.0.0) +- github.com/hashicorp/go-msgpack: [v0.5.3](https://github.com/hashicorp/go-msgpack/tree/v0.5.3) +- github.com/hashicorp/go-multierror: [v1.0.0](https://github.com/hashicorp/go-multierror/tree/v1.0.0) +- github.com/hashicorp/go-rootcerts: [v1.0.0](https://github.com/hashicorp/go-rootcerts/tree/v1.0.0) +- github.com/hashicorp/go-sockaddr: [v1.0.0](https://github.com/hashicorp/go-sockaddr/tree/v1.0.0) +- github.com/hashicorp/go-uuid: [v1.0.1](https://github.com/hashicorp/go-uuid/tree/v1.0.1) +- github.com/hashicorp/go.net: [v0.0.1](https://github.com/hashicorp/go.net/tree/v0.0.1) +- github.com/hashicorp/logutils: [v1.0.0](https://github.com/hashicorp/logutils/tree/v1.0.0) +- github.com/hashicorp/mdns: [v1.0.0](https://github.com/hashicorp/mdns/tree/v1.0.0) +- github.com/hashicorp/memberlist: [v0.1.3](https://github.com/hashicorp/memberlist/tree/v0.1.3) +- github.com/hashicorp/serf: [v0.8.2](https://github.com/hashicorp/serf/tree/v0.8.2) +- github.com/jmespath/go-jmespath/internal/testify: [v1.5.1](https://github.com/jmespath/go-jmespath/internal/testify/tree/v1.5.1) +- github.com/mitchellh/cli: [v1.0.0](https://github.com/mitchellh/cli/tree/v1.0.0) +- github.com/mitchellh/go-testing-interface: [v1.0.0](https://github.com/mitchellh/go-testing-interface/tree/v1.0.0) +- github.com/mitchellh/gox: [v0.4.0](https://github.com/mitchellh/gox/tree/v0.4.0) +- github.com/mitchellh/iochan: [v1.0.0](https://github.com/mitchellh/iochan/tree/v1.0.0) +- github.com/pascaldekloe/goe: [57f6aae](https://github.com/pascaldekloe/goe/tree/57f6aae) +- github.com/posener/complete: [v1.1.1](https://github.com/posener/complete/tree/v1.1.1) +- github.com/ryanuber/columnize: [9b3edd6](https://github.com/ryanuber/columnize/tree/9b3edd6) +- github.com/sean-/seed: [e2103e2](https://github.com/sean-/seed/tree/e2103e2) +- github.com/subosito/gotenv: [v1.2.0](https://github.com/subosito/gotenv/tree/v1.2.0) +- github.com/willf/bitset: [d5bec33](https://github.com/willf/bitset/tree/d5bec33) +- gopkg.in/ini.v1: v1.51.0 +- gopkg.in/yaml.v3: 9f266ea +- rsc.io/quote/v3: v3.1.0 +- rsc.io/sampler: v1.3.0 + +### Changed +- cloud.google.com/go/bigquery: v1.0.1 → v1.4.0 +- cloud.google.com/go/datastore: v1.0.0 → v1.1.0 +- cloud.google.com/go/pubsub: v1.0.1 → v1.2.0 +- cloud.google.com/go/storage: v1.0.0 → v1.6.0 +- cloud.google.com/go: v0.51.0 → v0.54.0 +- github.com/Azure/go-autorest/autorest/adal: [v0.8.2 → v0.9.5](https://github.com/Azure/go-autorest/autorest/adal/compare/v0.8.2...v0.9.5) +- github.com/Azure/go-autorest/autorest/date: [v0.2.0 → v0.3.0](https://github.com/Azure/go-autorest/autorest/date/compare/v0.2.0...v0.3.0) +- github.com/Azure/go-autorest/autorest/mocks: [v0.3.0 → v0.4.1](https://github.com/Azure/go-autorest/autorest/mocks/compare/v0.3.0...v0.4.1) +- github.com/Azure/go-autorest/autorest: [v0.9.6 → v0.11.1](https://github.com/Azure/go-autorest/autorest/compare/v0.9.6...v0.11.1) +- github.com/Azure/go-autorest/logger: [v0.1.0 → v0.2.0](https://github.com/Azure/go-autorest/logger/compare/v0.1.0...v0.2.0) +- github.com/Azure/go-autorest/tracing: [v0.5.0 → v0.6.0](https://github.com/Azure/go-autorest/tracing/compare/v0.5.0...v0.6.0) +- github.com/Microsoft/go-winio: [fc70bd9 → v0.4.15](https://github.com/Microsoft/go-winio/compare/fc70bd9...v0.4.15) +- github.com/aws/aws-sdk-go: [v1.28.2 → v1.35.24](https://github.com/aws/aws-sdk-go/compare/v1.28.2...v1.35.24) +- github.com/blang/semver: [v3.5.0+incompatible → v3.5.1+incompatible](https://github.com/blang/semver/compare/v3.5.0...v3.5.1) +- github.com/checkpoint-restore/go-criu/v4: [v4.0.2 → v4.1.0](https://github.com/checkpoint-restore/go-criu/v4/compare/v4.0.2...v4.1.0) +- github.com/containerd/containerd: [v1.3.3 → v1.4.1](https://github.com/containerd/containerd/compare/v1.3.3...v1.4.1) +- github.com/containerd/ttrpc: [v1.0.0 → v1.0.2](https://github.com/containerd/ttrpc/compare/v1.0.0...v1.0.2) +- github.com/containerd/typeurl: [v1.0.0 → v1.0.1](https://github.com/containerd/typeurl/compare/v1.0.0...v1.0.1) +- github.com/coreos/etcd: [v3.3.10+incompatible → v3.3.13+incompatible](https://github.com/coreos/etcd/compare/v3.3.10...v3.3.13) +- github.com/docker/docker: [aa6a989 → bd33bbf](https://github.com/docker/docker/compare/aa6a989...bd33bbf) +- github.com/go-gl/glfw/v3.3/glfw: [12ad95a → 6f7a984](https://github.com/go-gl/glfw/v3.3/glfw/compare/12ad95a...6f7a984) +- github.com/golang/groupcache: [215e871 → 8c9f03a](https://github.com/golang/groupcache/compare/215e871...8c9f03a) +- github.com/golang/mock: [v1.3.1 → v1.4.1](https://github.com/golang/mock/compare/v1.3.1...v1.4.1) +- github.com/golang/protobuf: [v1.4.2 → v1.4.3](https://github.com/golang/protobuf/compare/v1.4.2...v1.4.3) +- github.com/google/cadvisor: [v0.37.0 → v0.38.5](https://github.com/google/cadvisor/compare/v0.37.0...v0.38.5) +- github.com/google/go-cmp: [v0.4.0 → v0.5.2](https://github.com/google/go-cmp/compare/v0.4.0...v0.5.2) +- github.com/google/pprof: [d4f498a → 1ebb73c](https://github.com/google/pprof/compare/d4f498a...1ebb73c) +- github.com/google/uuid: [v1.1.1 → v1.1.2](https://github.com/google/uuid/compare/v1.1.1...v1.1.2) +- github.com/gorilla/mux: [v1.7.3 → v1.8.0](https://github.com/gorilla/mux/compare/v1.7.3...v1.8.0) +- github.com/gorilla/websocket: [v1.4.0 → v1.4.2](https://github.com/gorilla/websocket/compare/v1.4.0...v1.4.2) +- github.com/jmespath/go-jmespath: [c2b33e8 → v0.4.0](https://github.com/jmespath/go-jmespath/compare/c2b33e8...v0.4.0) +- github.com/karrick/godirwalk: [v1.7.5 → v1.16.1](https://github.com/karrick/godirwalk/compare/v1.7.5...v1.16.1) +- github.com/opencontainers/go-digest: [v1.0.0-rc1 → v1.0.0](https://github.com/opencontainers/go-digest/compare/v1.0.0-rc1...v1.0.0) +- github.com/opencontainers/runc: [819fcc6 → v1.0.0-rc92](https://github.com/opencontainers/runc/compare/819fcc6...v1.0.0-rc92) +- github.com/opencontainers/runtime-spec: [237cc4f → 4d89ac9](https://github.com/opencontainers/runtime-spec/compare/237cc4f...4d89ac9) +- github.com/opencontainers/selinux: [v1.5.2 → v1.6.0](https://github.com/opencontainers/selinux/compare/v1.5.2...v1.6.0) +- github.com/prometheus/procfs: [v0.1.3 → v0.2.0](https://github.com/prometheus/procfs/compare/v0.1.3...v0.2.0) +- github.com/quobyte/api: [v0.1.2 → v0.1.8](https://github.com/quobyte/api/compare/v0.1.2...v0.1.8) +- github.com/spf13/cobra: [v1.0.0 → v1.1.1](https://github.com/spf13/cobra/compare/v1.0.0...v1.1.1) +- github.com/spf13/viper: [v1.4.0 → v1.7.0](https://github.com/spf13/viper/compare/v1.4.0...v1.7.0) +- github.com/storageos/go-api: [343b3ef → v2.2.0+incompatible](https://github.com/storageos/go-api/compare/343b3ef...v2.2.0) +- github.com/stretchr/testify: [v1.4.0 → v1.6.1](https://github.com/stretchr/testify/compare/v1.4.0...v1.6.1) +- github.com/vishvananda/netns: [52d707b → db3c7e5](https://github.com/vishvananda/netns/compare/52d707b...db3c7e5) +- go.etcd.io/etcd: 17cef6e → dd1b699 +- go.opencensus.io: v0.22.2 → v0.22.3 +- golang.org/x/crypto: 75b2880 → 7f63de1 +- golang.org/x/exp: da58074 → 6cc2880 +- golang.org/x/lint: fdd1cda → 738671d +- golang.org/x/net: ab34263 → 69a7880 +- golang.org/x/oauth2: 858c2ad → bf48bf1 +- golang.org/x/sys: ed371f2 → 5cba982 +- golang.org/x/text: v0.3.3 → v0.3.4 +- golang.org/x/time: 555d28b → 3af7569 +- golang.org/x/xerrors: 9bdfabe → 5ec99f8 +- google.golang.org/api: v0.15.1 → v0.20.0 +- google.golang.org/genproto: cb27e3a → 8816d57 +- google.golang.org/grpc: v1.27.0 → v1.27.1 +- google.golang.org/protobuf: v1.24.0 → v1.25.0 +- honnef.co/go/tools: v0.0.1-2019.2.3 → v0.0.1-2020.1.3 +- k8s.io/gengo: 8167cfd → 83324d8 +- k8s.io/klog/v2: v2.2.0 → v2.4.0 +- k8s.io/kube-openapi: 6aeccd4 → d219536 +- k8s.io/system-validators: v1.1.2 → v1.2.0 +- k8s.io/utils: d5654de → 67b214c +- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.9 → v0.0.14 +- sigs.k8s.io/structured-merge-diff/v4: v4.0.1 → v4.0.2 + +### Removed +- github.com/armon/consul-api: [eb2c6b5](https://github.com/armon/consul-api/tree/eb2c6b5) +- github.com/go-ini/ini: [v1.9.0](https://github.com/go-ini/ini/tree/v1.9.0) +- github.com/ugorji/go: [v1.1.4](https://github.com/ugorji/go/tree/v1.1.4) +- github.com/xlab/handysort: [fb3537e](https://github.com/xlab/handysort/tree/fb3537e) +- github.com/xordataexchange/crypt: [b2862e3](https://github.com/xordataexchange/crypt/tree/b2862e3) +- vbom.ml/util: db5cfe1 diff --git a/releases/release-1.20/release-notes/maps/pr-90014-map.yaml b/releases/release-1.20/release-notes/maps/pr-90014-map.yaml index fc20351e6dc..5f11f187a7d 100644 --- a/releases/release-1.20/release-notes/maps/pr-90014-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-90014-map.yaml @@ -1,3 +1,3 @@ -pr: 90014 -releasenote: - text: Increase maximum IOPS of AWS EBS io1 volume to current maximum (64,000). +pr: 90014 +releasenote: + text: Increase maximum IOPS of AWS EBS io1 volume to current maximum (64,000). diff --git a/releases/release-1.20/release-notes/maps/pr-91469-map.yaml b/releases/release-1.20/release-notes/maps/pr-91469-map.yaml index 6b4926402ac..ddb96067223 100644 --- a/releases/release-1.20/release-notes/maps/pr-91469-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-91469-map.yaml @@ -1,3 +1,3 @@ -pr: 91469 -releasenote: - text: Fix kubelet to properly log when a container is started. Previously, kubelet may log that container is dead and was restarted when it was actually started for the first time. This behavior only happened on pods with initContainers and regular containers. +pr: 91469 +releasenote: + text: Fix kubelet to properly log when a container is started. Previously, kubelet may log that container is dead and was restarted when it was actually started for the first time. This behavior only happened on pods with initContainers and regular containers. diff --git a/releases/release-1.20/release-notes/maps/pr-92027-map.yaml b/releases/release-1.20/release-notes/maps/pr-92027-map.yaml index 27bc1f62e16..1e83777ada5 100644 --- a/releases/release-1.20/release-notes/maps/pr-92027-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-92027-map.yaml @@ -1,3 +1,3 @@ -pr: 92027 -releasenote: - text: Ceph RBD volume expansion now works even when ceph.conf was not provided. +pr: 92027 +releasenote: + text: Ceph RBD volume expansion now works even when ceph.conf was not provided. diff --git a/releases/release-1.20/release-notes/maps/pr-92878-map.yaml b/releases/release-1.20/release-notes/maps/pr-92878-map.yaml index 492e30ca9b7..b4c2d48c2d1 100644 --- a/releases/release-1.20/release-notes/maps/pr-92878-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-92878-map.yaml @@ -1,3 +1,3 @@ -pr: 92878 -releasenote: - text: Decrease warning message frequency on setting volume ownership for configmap/secret. +pr: 92878 +releasenote: + text: Decrease warning message frequency on setting volume ownership for configmap/secret. diff --git a/releases/release-1.20/release-notes/maps/pr-93066-map.yaml b/releases/release-1.20/release-notes/maps/pr-93066-map.yaml index c55eb1f6f12..6bd496cd7b2 100644 --- a/releases/release-1.20/release-notes/maps/pr-93066-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-93066-map.yaml @@ -1,6 +1,6 @@ -pr: 93066 -releasenote: - text: |- - Add the following metrics: - - network_plugin_operations_total - - network_plugin_operations_errors_total +pr: 93066 +releasenote: + text: |- + Add the following metrics: + - network_plugin_operations_total + - network_plugin_operations_errors_total diff --git a/releases/release-1.20/release-notes/maps/pr-93078-map.yaml b/releases/release-1.20/release-notes/maps/pr-93078-map.yaml index 785f4dede9b..ec9cc91da56 100644 --- a/releases/release-1.20/release-notes/maps/pr-93078-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-93078-map.yaml @@ -1,3 +1,3 @@ -pr: 93078 -releasenote: - text: 'The status of v1beta1 CRDs without "preserveUnknownFields:false" now shows a violation, "spec.preserveUnknownFields: Invalid value: true: must be false".' +pr: 93078 +releasenote: + text: 'The status of v1beta1 CRDs without "preserveUnknownFields:false" now shows a violation, "spec.preserveUnknownFields: Invalid value: true: must be false".' diff --git a/releases/release-1.20/release-notes/maps/pr-93108-map.yaml b/releases/release-1.20/release-notes/maps/pr-93108-map.yaml index e8b8c58101c..3fab4b9cab2 100644 --- a/releases/release-1.20/release-notes/maps/pr-93108-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-93108-map.yaml @@ -1,3 +1,3 @@ -pr: 93108 -releasenote: - text: StreamWatcher now calls HandleCrash at appropriate sequence. +pr: 93108 +releasenote: + text: StreamWatcher now calls HandleCrash at appropriate sequence. diff --git a/releases/release-1.20/release-notes/maps/pr-93384-map.yaml b/releases/release-1.20/release-notes/maps/pr-93384-map.yaml index bace4cfc06c..b4280274152 100644 --- a/releases/release-1.20/release-notes/maps/pr-93384-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-93384-map.yaml @@ -1,3 +1,3 @@ -pr: 93384 -releasenote: - text: Add foreground cascading deletion to kubectl with the new `kubectl delete foreground|background|orphan` option. +pr: 93384 +releasenote: + text: Add foreground cascading deletion to kubectl with the new `kubectl delete foreground|background|orphan` option. diff --git a/releases/release-1.20/release-notes/maps/pr-93457-map.yaml b/releases/release-1.20/release-notes/maps/pr-93457-map.yaml index 15f8d0df0d3..f86db5b3c00 100644 --- a/releases/release-1.20/release-notes/maps/pr-93457-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-93457-map.yaml @@ -1,3 +1,3 @@ -pr: 93457 -releasenote: - text: StatefulSet Controller now waits for PersistentVolumeClaim deletion before creating pods. +pr: 93457 +releasenote: + text: StatefulSet Controller now waits for PersistentVolumeClaim deletion before creating pods. diff --git a/releases/release-1.20/release-notes/maps/pr-93567-map.yaml b/releases/release-1.20/release-notes/maps/pr-93567-map.yaml index 8d79ba3bd9c..ffdf7fed00a 100644 --- a/releases/release-1.20/release-notes/maps/pr-93567-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-93567-map.yaml @@ -1,3 +1,3 @@ -pr: 93567 -releasenote: - text: Fix calling AttachDisk on a previously attached EBS volume. +pr: 93567 +releasenote: + text: Fix calling AttachDisk on a previously attached EBS volume. diff --git a/releases/release-1.20/release-notes/maps/pr-93577-map.yaml b/releases/release-1.20/release-notes/maps/pr-93577-map.yaml index 408dbd96dfb..89b46c28e75 100644 --- a/releases/release-1.20/release-notes/maps/pr-93577-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-93577-map.yaml @@ -1,3 +1,3 @@ -pr: 93577 -releasenote: - text: Updated Cluster Autoscaler to 1.19.0. +pr: 93577 +releasenote: + text: Updated Cluster Autoscaler to 1.19.0. diff --git a/releases/release-1.20/release-notes/maps/pr-93626-map.yaml b/releases/release-1.20/release-notes/maps/pr-93626-map.yaml index fbed3fb4a0a..630f9c38676 100644 --- a/releases/release-1.20/release-notes/maps/pr-93626-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-93626-map.yaml @@ -1,3 +1,3 @@ -pr: 93626 -releasenote: - text: Remove support for "ci/k8s-master" version label in kubeadm, use "ci/latest" instead. See kubernetes/test-infra#18517. +pr: 93626 +releasenote: + text: Remove support for "ci/k8s-master" version label in kubeadm, use "ci/latest" instead. See kubernetes/test-infra#18517. diff --git a/releases/release-1.20/release-notes/maps/pr-93702-map.yaml b/releases/release-1.20/release-notes/maps/pr-93702-map.yaml index a9a381aabe7..357e1f58627 100644 --- a/releases/release-1.20/release-notes/maps/pr-93702-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-93702-map.yaml @@ -1,3 +1,3 @@ -pr: 93702 -releasenote: - text: kubeadm ensures "kubeadm reset" does not unmount the root "/var/lib/kubelet" directory if it is mounted by the user. +pr: 93702 +releasenote: + text: kubeadm ensures "kubeadm reset" does not unmount the root "/var/lib/kubelet" directory if it is mounted by the user. diff --git a/releases/release-1.20/release-notes/maps/pr-93837-map.yaml b/releases/release-1.20/release-notes/maps/pr-93837-map.yaml index c4240a33865..7e580264fea 100644 --- a/releases/release-1.20/release-notes/maps/pr-93837-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-93837-map.yaml @@ -1,3 +1,3 @@ -pr: 93837 -releasenote: - text: Add fine grained debugging to intra-pod conformance test to troubleshoot networking issues for potentially unhealthy nodes when running conformance or sonobuoy tests. +pr: 93837 +releasenote: + text: Add fine grained debugging to intra-pod conformance test to troubleshoot networking issues for potentially unhealthy nodes when running conformance or sonobuoy tests. diff --git a/releases/release-1.20/release-notes/maps/pr-93962-map.yaml b/releases/release-1.20/release-notes/maps/pr-93962-map.yaml index 48cf75897d1..e85b8ec51ad 100644 --- a/releases/release-1.20/release-notes/maps/pr-93962-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-93962-map.yaml @@ -1,3 +1,3 @@ -pr: 93962 -releasenote: - text: Fix a bug where loadbalancer deletion gets stuck because of missing resource group. +pr: 93962 +releasenote: + text: Fix a bug where loadbalancer deletion gets stuck because of missing resource group. diff --git a/releases/release-1.20/release-notes/maps/pr-94140-map.yaml b/releases/release-1.20/release-notes/maps/pr-94140-map.yaml index 57662c8fe89..1db9bdd48fc 100644 --- a/releases/release-1.20/release-notes/maps/pr-94140-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94140-map.yaml @@ -1,5 +1,5 @@ -pr: 94140 -releasenote: - text: |- - Promote SupportNodePidsLimit to GA to provide node-to-pod PID isolation. - Promote SupportPodPidsLimit to GA to provide ability to limit PIDs per pod. +pr: 94140 +releasenote: + text: |- + Promote SupportNodePidsLimit to GA to provide node-to-pod PID isolation. + Promote SupportPodPidsLimit to GA to provide ability to limit PIDs per pod. diff --git a/releases/release-1.20/release-notes/maps/pr-94171-map.yaml b/releases/release-1.20/release-notes/maps/pr-94171-map.yaml index 12532019663..2dbd1fd2fd1 100644 --- a/releases/release-1.20/release-notes/maps/pr-94171-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94171-map.yaml @@ -1,3 +1,3 @@ -pr: 94171 -releasenote: - text: The EndpointSliceMirroring controller now mirrors Endpoints that do not have a Service associated with them. +pr: 94171 +releasenote: + text: The EndpointSliceMirroring controller now mirrors Endpoints that do not have a Service associated with them. diff --git a/releases/release-1.20/release-notes/maps/pr-94180-map.yaml b/releases/release-1.20/release-notes/maps/pr-94180-map.yaml index 877d2f76801..874392d9947 100644 --- a/releases/release-1.20/release-notes/maps/pr-94180-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94180-map.yaml @@ -1,3 +1,3 @@ -pr: 94180 -releasenote: - text: Azure armclient backoff step defaults to 1 (no retry). +pr: 94180 +releasenote: + text: Azure armclient backoff step defaults to 1 (no retry). diff --git a/releases/release-1.20/release-notes/maps/pr-94239-map.yaml b/releases/release-1.20/release-notes/maps/pr-94239-map.yaml index 1e9ed6be0cc..cb6d3d935bc 100644 --- a/releases/release-1.20/release-notes/maps/pr-94239-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94239-map.yaml @@ -1,3 +1,3 @@ -pr: 94239 -releasenote: - text: Add network rule support in Azure account creation. +pr: 94239 +releasenote: + text: Add network rule support in Azure account creation. diff --git a/releases/release-1.20/release-notes/maps/pr-94443-map.yaml b/releases/release-1.20/release-notes/maps/pr-94443-map.yaml index d23c27046fb..9778ce96db1 100644 --- a/releases/release-1.20/release-notes/maps/pr-94443-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94443-map.yaml @@ -1,3 +1,3 @@ -pr: 94443 -releasenote: - text: Endpoint slice controller now mirrors parent's service label to its corresponding endpoint slices. +pr: 94443 +releasenote: + text: Endpoint slice controller now mirrors parent's service label to its corresponding endpoint slices. diff --git a/releases/release-1.20/release-notes/maps/pr-94494-map.yaml b/releases/release-1.20/release-notes/maps/pr-94494-map.yaml index ad46b2d496e..f8544b59934 100644 --- a/releases/release-1.20/release-notes/maps/pr-94494-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94494-map.yaml @@ -1,3 +1,3 @@ -pr: 94494 -releasenote: - text: Port mapping now allows the same `containerPort` of different containers to different `hostPort` without naming the mapping explicitly. +pr: 94494 +releasenote: + text: Port mapping now allows the same `containerPort` of different containers to different `hostPort` without naming the mapping explicitly. diff --git a/releases/release-1.20/release-notes/maps/pr-94504-map.yaml b/releases/release-1.20/release-notes/maps/pr-94504-map.yaml index 7eb48f21e18..2b21261c160 100644 --- a/releases/release-1.20/release-notes/maps/pr-94504-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94504-map.yaml @@ -1,3 +1,3 @@ -pr: 94504 -releasenote: - text: 'Kubeadm now prints warnings instead of throwing errors if the current system time is outside of the NotBefore and NotAfter bounds of a loaded certificate. ' +pr: 94504 +releasenote: + text: 'Kubeadm now prints warnings instead of throwing errors if the current system time is outside of the NotBefore and NotAfter bounds of a loaded certificate. ' diff --git a/releases/release-1.20/release-notes/maps/pr-94546-map.yaml b/releases/release-1.20/release-notes/maps/pr-94546-map.yaml index 9a91f472a65..e1db32fa4a5 100644 --- a/releases/release-1.20/release-notes/maps/pr-94546-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94546-map.yaml @@ -1,3 +1,3 @@ -pr: 94546 -releasenote: - text: Configure AWS LoadBalancer health check protocol via service annotations. +pr: 94546 +releasenote: + text: Configure AWS LoadBalancer health check protocol via service annotations. diff --git a/releases/release-1.20/release-notes/maps/pr-94580-map.yaml b/releases/release-1.20/release-notes/maps/pr-94580-map.yaml index aa8ad79decf..497b9970d07 100644 --- a/releases/release-1.20/release-notes/maps/pr-94580-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94580-map.yaml @@ -1,3 +1,3 @@ -pr: 94580 -releasenote: - text: Fix a panic in `kubectl debug` when a pod has multiple init or ephemeral containers. +pr: 94580 +releasenote: + text: Fix a panic in `kubectl debug` when a pod has multiple init or ephemeral containers. diff --git a/releases/release-1.20/release-notes/maps/pr-94728-map.yaml b/releases/release-1.20/release-notes/maps/pr-94728-map.yaml index 65fbb790676..3aba6a8ea83 100644 --- a/releases/release-1.20/release-notes/maps/pr-94728-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94728-map.yaml @@ -1,3 +1,3 @@ -pr: 94728 -releasenote: - text: Fix regression on `kubectl portforward` when TCP and UCP services were configured on the same port. +pr: 94728 +releasenote: + text: Fix regression on `kubectl portforward` when TCP and UCP services were configured on the same port. diff --git a/releases/release-1.20/release-notes/maps/pr-94730-map.yaml b/releases/release-1.20/release-notes/maps/pr-94730-map.yaml index 79c0f211bd2..9c2119aab40 100644 --- a/releases/release-1.20/release-notes/maps/pr-94730-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94730-map.yaml @@ -1,3 +1,3 @@ -pr: 94730 -releasenote: - text: Recreate EndpointSlices on rapid Service creation. +pr: 94730 +releasenote: + text: Recreate EndpointSlices on rapid Service creation. diff --git a/releases/release-1.20/release-notes/maps/pr-94751-map.yaml b/releases/release-1.20/release-notes/maps/pr-94751-map.yaml index c7aa33d793f..a62c0c0d08c 100644 --- a/releases/release-1.20/release-notes/maps/pr-94751-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94751-map.yaml @@ -1,3 +1,3 @@ -pr: 94751 -releasenote: - text: Fix race condition on timeCache locks. +pr: 94751 +releasenote: + text: Fix race condition on timeCache locks. diff --git a/releases/release-1.20/release-notes/maps/pr-94814-map.yaml b/releases/release-1.20/release-notes/maps/pr-94814-map.yaml index 582b4410770..4789d987516 100644 --- a/releases/release-1.20/release-notes/maps/pr-94814-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94814-map.yaml @@ -1,3 +1,3 @@ -pr: 94814 -releasenote: - text: Fewer candidates are enumerated for preemption to improve performance in large clusters. +pr: 94814 +releasenote: + text: Fewer candidates are enumerated for preemption to improve performance in large clusters. diff --git a/releases/release-1.20/release-notes/maps/pr-94871-map.yaml b/releases/release-1.20/release-notes/maps/pr-94871-map.yaml index 6845ab787a2..b1be083708a 100644 --- a/releases/release-1.20/release-notes/maps/pr-94871-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94871-map.yaml @@ -1,4 +1,4 @@ -pr: 94871 -releasenote: - text: 'The deprecated flag --experimental-kustomize is now removed from kubeadm commands. Use --experimental-patches instead, which was introduced in 1.19. Migration infromation available in --help description for --exprimental-patches.' - action_required: true +pr: 94871 +releasenote: + text: 'The deprecated flag --experimental-kustomize is now removed from kubeadm commands. Use --experimental-patches instead, which was introduced in 1.19. Migration infromation available in --help description for --exprimental-patches.' + action_required: true diff --git a/releases/release-1.20/release-notes/maps/pr-94903-map.yaml b/releases/release-1.20/release-notes/maps/pr-94903-map.yaml index ddd28dbf918..0535e5a21b6 100644 --- a/releases/release-1.20/release-notes/maps/pr-94903-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94903-map.yaml @@ -1,3 +1,3 @@ -pr: 94903 -releasenote: - text: Both apiserver_request_duration_seconds metrics and RequestReceivedTimestamp fields of an audit event now take into account the time a request spends in the apiserver request filters. +pr: 94903 +releasenote: + text: Both apiserver_request_duration_seconds metrics and RequestReceivedTimestamp fields of an audit event now take into account the time a request spends in the apiserver request filters. diff --git a/releases/release-1.20/release-notes/maps/pr-94988-map.yaml b/releases/release-1.20/release-notes/maps/pr-94988-map.yaml index c9d94bdba87..6079ff4db2c 100644 --- a/releases/release-1.20/release-notes/maps/pr-94988-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-94988-map.yaml @@ -1,3 +1,3 @@ -pr: 94988 -releasenote: - text: kubeadm now warns (instead of error out) on missing "ca.key" files for root CA, front-proxy CA and etcd CA, during "kubeadm join --control-plane" if the user has provided all certificates, keys and kubeconfig files which require signing with the given CA keys. +pr: 94988 +releasenote: + text: kubeadm now warns (instead of error out) on missing "ca.key" files for root CA, front-proxy CA and etcd CA, during "kubeadm join --control-plane" if the user has provided all certificates, keys and kubeconfig files which require signing with the given CA keys. diff --git a/releases/release-1.20/release-notes/maps/pr-95184-map.yaml b/releases/release-1.20/release-notes/maps/pr-95184-map.yaml index e226c7721f7..ff46cf385be 100644 --- a/releases/release-1.20/release-notes/maps/pr-95184-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-95184-map.yaml @@ -1,3 +1,3 @@ -pr: 95184 -releasenote: - text: GPU metrics provided by kubelet are now disabled by default. +pr: 95184 +releasenote: + text: GPU metrics provided by kubelet are now disabled by default. diff --git a/releases/release-1.20/release-notes/maps/pr-95202-map.yaml b/releases/release-1.20/release-notes/maps/pr-95202-map.yaml index bb2bd91c39f..121c3d36067 100644 --- a/releases/release-1.20/release-notes/maps/pr-95202-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-95202-map.yaml @@ -1,3 +1,3 @@ -pr: 95202 -releasenote: - text: Remove offensive words from kubectl cluster-info command. +pr: 95202 +releasenote: + text: Remove offensive words from kubectl cluster-info command. diff --git a/releases/release-1.20/release-notes/maps/pr-95245-map.yaml b/releases/release-1.20/release-notes/maps/pr-95245-map.yaml index fecc76c7086..bdef1d86fd6 100644 --- a/releases/release-1.20/release-notes/maps/pr-95245-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-95245-map.yaml @@ -1,3 +1,3 @@ -pr: 95245 -releasenote: - text: "Mask ceph RBD adminSecrets in logs when logLevel >= 4." +pr: 95245 +releasenote: + text: "Mask ceph RBD adminSecrets in logs when logLevel >= 4." diff --git a/releases/release-1.20/release-notes/maps/pr-95311-map.yaml b/releases/release-1.20/release-notes/maps/pr-95311-map.yaml index e02f6e7f691..406d594d995 100644 --- a/releases/release-1.20/release-notes/maps/pr-95311-map.yaml +++ b/releases/release-1.20/release-notes/maps/pr-95311-map.yaml @@ -1,3 +1,3 @@ -pr: 95311 -releasenote: - text: Send GCE node startup scripts logs to console and journal. +pr: 95311 +releasenote: + text: Send GCE node startup scripts logs to console and journal. diff --git a/releases/release-1.20/release-notes/sessions/maps-1603063594.json b/releases/release-1.20/release-notes/sessions/maps-1603063594.json index a2ee98de1db..441494481bc 100644 --- a/releases/release-1.20/release-notes/sessions/maps-1603063594.json +++ b/releases/release-1.20/release-notes/sessions/maps-1603063594.json @@ -1 +1 @@ -{"mail":"wilsonehusin@vmware.com","name":"Wilson E. Husin","date":1603063594,"prs":[{"nr":94871,"hash":"f1d3e2a0575fd86b7d54bcd038eddedafc8c96a6"},{"nr":93626,"hash":"07205d1e2878517bad66e63b829fdc04b52659f8"},{"nr":94988,"hash":"710e2a422c08b7af80db068d06b43796e17cefc1"},{"nr":90014,"hash":"eb7b69163d77d186ce3c806328e000a293de9762"},{"nr":94239,"hash":"67f868d91e45c2a2d5afb51af01c266cf32c876c"},{"nr":93702,"hash":"d314e89e6320d34cd391be52757c4ab81f190543"},{"nr":94140,"hash":"b819402b1a979d5a43e46ac5c74daca0f3f6f61b"},{"nr":95245,"hash":"89b93c7487b556280c7a8f09dfa4f181118c0996"},{"nr":91469,"hash":"e11ab6110de26f652f8896fe8e8b3272f19ac4f2"},{"nr":94443,"hash":"fde87d8d8eb8b8718c90be164f3b07104ca17c7a"},{"nr":94730,"hash":"e49e4712fa5aaf9c3d7a13d6979b32762152c47c"},{"nr":93108,"hash":"136407ada91ea1f116db1dfa05af88c0be552d8f"},{"nr":94494,"hash":"784abf17a076e12ebb44eb62e00f885198d6c0bb"},{"nr":94728,"hash":"065d53a7902d2efda0e4faf6feb487f3dd9878f8"},{"nr":92878,"hash":"256ac8003e390414eece0feff0990d40c2ad53fa"},{"nr":94751,"hash":"9fde8a16d1a2b449c13def1b6e833e707810f4f0"},{"nr":93457,"hash":"692869d8b0b8c79a6bf147d07b9ed68b2d181e33"},{"nr":92027,"hash":"39866df4ceec01836f70f96b5eb3cd6257557c33"},{"nr":95202,"hash":"18cc5f9e1f55d945774011f2e1d213765c70171c"},{"nr":95098,"hash":"e82157a210bcea8bb2dce8b3dddd4d03a524b47e"},{"nr":94903,"hash":"9991811b215393e1ac39333c2016b4b5967f6049"},{"nr":93201,"hash":"0897199e7d78db1ea5189e1c9bbcba667cfa9ddf"},{"nr":94180,"hash":"292fc24f2340eced918b4191a2baa8c241023810"},{"nr":93962,"hash":"a449511c990d793e905a8597a2d9185422097397"},{"nr":95311,"hash":"613bae48d99b44a05d83fe5fe4467ca02dc37969"},{"nr":95239,"hash":"b5ef028ad94c7c6ccc4af7df43e7783a0051d7e2"},{"nr":94546,"hash":"49d62ac6d80ef2ce9762383a7915b90f2b2cf546"},{"nr":93406,"hash":"d487684e3a6b1448b5c4d64801e13c7e3c727cfe"},{"nr":94765,"hash":"340e23eb23fbb2c0dde6fc0760abcf5ebd1010e6"},{"nr":94090,"hash":"87ab134c9ceaf2b40a5e0504814181b85fe32fdb"},{"nr":95184,"hash":"9b1c798dfb88ebc4cffe87918e60a3df54f665f0"},{"nr":94991,"hash":"553ba5377d61d5a89e1ea430e41bf1640ef90803"},{"nr":94873,"hash":"080fa2f11bce78038cb7265c782f508a78cbaf08"},{"nr":94773,"hash":"8f6a5f177e101d8aac6798afc40462584868cbc0"},{"nr":93250,"hash":"f0e199b225412a321338d18b95d1583ac7d8068c"},{"nr":94389,"hash":"5ec10c8f5ad0fe87c55852f01beaa5425516c268"},{"nr":92614,"hash":"b07b2defa4215ec22cab1944b26676f0e41c649c"},{"nr":93475,"hash":"f14db5ff01d393cc2ef72c1ef1caeeabaa7105c8"},{"nr":95412,"hash":"371b10461daa1f73c128f2bb20d0fd74a21eea29"},{"nr":92492,"hash":"78a3dd1539226c64fdd1b9dd1b7ca7ee448b28d8"},{"nr":94016,"hash":"dfcc0fa622865c5f860618371dd6f3c11b5384b6"},{"nr":91977,"hash":"d5a72d26ddcee03dbbff2bba2900a79e48f003dd"},{"nr":93773,"hash":"b70755897bdbf63c2a389ad31a1dee5398554d2d"},{"nr":92632,"hash":"5ac4fc97d594972afbc3da70cb9f38ee66f9d831"},{"nr":94580,"hash":"11dc92b9104551220d79e46da023598e634065b6"},{"nr":93384,"hash":"91ba6c456571eb82ade7e2b4676edcd4018eb72c"},{"nr":94586,"hash":"4b2cc40cb206dc8dcd6267ebf4058bab6d887a0f"},{"nr":94421,"hash":"5343dd58cab00cb3d85652597bfda9c1d82b8b16"},{"nr":94309,"hash":"abc0d856a97cb0d8e927c201618c386dd1d734c8"},{"nr":94552,"hash":"6b89898a6da4ebff8e8fe233c4598748358f90a3"},{"nr":91921,"hash":"485d55f0bbd888c542c59c5bf8f3bf00264d0e08"},{"nr":94241,"hash":"2a7a1023bb310b00829df5a74d9fd0f40810987e"},{"nr":95316,"hash":"adabcd813f77f158c8abac6a31efc42384a25f4a"},{"nr":93837,"hash":"ddf147ef4b6cf6bcdc88537b00700a20ded2498c"},{"nr":94316,"hash":"05c19a15f336d05caf9e4b96deef65ed25a0ec4b"},{"nr":94506,"hash":"56098c9a9a7e3da3cf620ee5b76534a56c2e05a9"},{"nr":94733,"hash":"a6fb5d779d7c235859673e00c2e961d95544e271"},{"nr":90439,"hash":"6e43101b202ca5ee4596b190166e8d390022d03f"},{"nr":87054,"hash":"8324829e92af4933a4e622f6a5c5f20d6bf13011"},{"nr":94124,"hash":"9f72e52e83f1ad716da214426aace709861b0a36"},{"nr":93011,"hash":"1fb51025d9fd06380c356f404021ff501cf1f789"},{"nr":95012,"hash":"6c958b64e995859ae6148a52067dee25cf8e31b3"},{"nr":94555,"hash":"76557c5b70f91e736d48e9674b5d3b2f157e7882"},{"nr":94888,"hash":"4991926109bf9ecf01839ee9bc2e7646e246b9f4"},{"nr":94508,"hash":"b92cdba99765f08f28620482593177aab95f4464"},{"nr":93692,"hash":"1ba35a1e792eb3e23e6609853b1c5887704674f9"},{"nr":94474,"hash":"3745a92baa4e5f48097a556ba4170baf9dd06216"},{"nr":94879,"hash":"8bb46055e9360bd07a372e532f43fb50c831770c"},{"nr":94853,"hash":"1ec03222599ee65b5d447e49b9177e7827294f32"},{"nr":94265,"hash":"74fc4090f7d3f209ddbbb118349783200e1b6e4f"},{"nr":94398,"hash":"e82dcc4b3eef9a4bb542b6d8b28c83ea95893f26"},{"nr":95419,"hash":"431fc0fc9e3092584929f0eeeb8d1c152b270b1e"},{"nr":94896,"hash":"b3ed8e24edd82dab7ee5df127f48d3da4f6d2e26"},{"nr":93078,"hash":"1532a6385c3a4c34f89b7f41845b1af798b863b7"},{"nr":94449,"hash":"24d74dc2d8d48e0ef6548cef58ce0ace9e4e4fc9"},{"nr":92355,"hash":"96fac67ff0aecbe05eb3b0af1cbfb20ce5afc58c"},{"nr":93901,"hash":"15cc61c37fc54fbbf5a571f352146073bab9fcec"},{"nr":94816,"hash":"76d639ae2b81ec44a74ef550763a1d221c5a3de4"},{"nr":93523,"hash":"4716698fc6ce74ef893c157717287003a5323006"},{"nr":93180,"hash":"32a2ab47b31a90f90e5142fa3a94dc81441404ec"}]} +{"mail":"wilsonehusin@vmware.com","name":"Wilson E. Husin","date":1603063594,"prs":[{"nr":94871,"hash":"f1d3e2a0575fd86b7d54bcd038eddedafc8c96a6"},{"nr":93626,"hash":"07205d1e2878517bad66e63b829fdc04b52659f8"},{"nr":94988,"hash":"710e2a422c08b7af80db068d06b43796e17cefc1"},{"nr":90014,"hash":"eb7b69163d77d186ce3c806328e000a293de9762"},{"nr":94239,"hash":"67f868d91e45c2a2d5afb51af01c266cf32c876c"},{"nr":93702,"hash":"d314e89e6320d34cd391be52757c4ab81f190543"},{"nr":94140,"hash":"b819402b1a979d5a43e46ac5c74daca0f3f6f61b"},{"nr":95245,"hash":"89b93c7487b556280c7a8f09dfa4f181118c0996"},{"nr":91469,"hash":"e11ab6110de26f652f8896fe8e8b3272f19ac4f2"},{"nr":94443,"hash":"fde87d8d8eb8b8718c90be164f3b07104ca17c7a"},{"nr":94730,"hash":"e49e4712fa5aaf9c3d7a13d6979b32762152c47c"},{"nr":93108,"hash":"136407ada91ea1f116db1dfa05af88c0be552d8f"},{"nr":94494,"hash":"784abf17a076e12ebb44eb62e00f885198d6c0bb"},{"nr":94728,"hash":"065d53a7902d2efda0e4faf6feb487f3dd9878f8"},{"nr":92878,"hash":"256ac8003e390414eece0feff0990d40c2ad53fa"},{"nr":94751,"hash":"9fde8a16d1a2b449c13def1b6e833e707810f4f0"},{"nr":93457,"hash":"692869d8b0b8c79a6bf147d07b9ed68b2d181e33"},{"nr":92027,"hash":"39866df4ceec01836f70f96b5eb3cd6257557c33"},{"nr":95202,"hash":"18cc5f9e1f55d945774011f2e1d213765c70171c"},{"nr":95098,"hash":"e82157a210bcea8bb2dce8b3dddd4d03a524b47e"},{"nr":94903,"hash":"9991811b215393e1ac39333c2016b4b5967f6049"},{"nr":93201,"hash":"0897199e7d78db1ea5189e1c9bbcba667cfa9ddf"},{"nr":94180,"hash":"292fc24f2340eced918b4191a2baa8c241023810"},{"nr":93962,"hash":"a449511c990d793e905a8597a2d9185422097397"},{"nr":95311,"hash":"613bae48d99b44a05d83fe5fe4467ca02dc37969"},{"nr":95239,"hash":"b5ef028ad94c7c6ccc4af7df43e7783a0051d7e2"},{"nr":94546,"hash":"49d62ac6d80ef2ce9762383a7915b90f2b2cf546"},{"nr":93406,"hash":"d487684e3a6b1448b5c4d64801e13c7e3c727cfe"},{"nr":94765,"hash":"340e23eb23fbb2c0dde6fc0760abcf5ebd1010e6"},{"nr":94090,"hash":"87ab134c9ceaf2b40a5e0504814181b85fe32fdb"},{"nr":95184,"hash":"9b1c798dfb88ebc4cffe87918e60a3df54f665f0"},{"nr":94991,"hash":"553ba5377d61d5a89e1ea430e41bf1640ef90803"},{"nr":94873,"hash":"080fa2f11bce78038cb7265c782f508a78cbaf08"},{"nr":94773,"hash":"8f6a5f177e101d8aac6798afc40462584868cbc0"},{"nr":93250,"hash":"f0e199b225412a321338d18b95d1583ac7d8068c"},{"nr":94389,"hash":"5ec10c8f5ad0fe87c55852f01beaa5425516c268"},{"nr":92614,"hash":"b07b2defa4215ec22cab1944b26676f0e41c649c"},{"nr":93475,"hash":"f14db5ff01d393cc2ef72c1ef1caeeabaa7105c8"},{"nr":95412,"hash":"371b10461daa1f73c128f2bb20d0fd74a21eea29"},{"nr":92492,"hash":"78a3dd1539226c64fdd1b9dd1b7ca7ee448b28d8"},{"nr":94016,"hash":"dfcc0fa622865c5f860618371dd6f3c11b5384b6"},{"nr":91977,"hash":"d5a72d26ddcee03dbbff2bba2900a79e48f003dd"},{"nr":93773,"hash":"b70755897bdbf63c2a389ad31a1dee5398554d2d"},{"nr":92632,"hash":"5ac4fc97d594972afbc3da70cb9f38ee66f9d831"},{"nr":94580,"hash":"11dc92b9104551220d79e46da023598e634065b6"},{"nr":93384,"hash":"91ba6c456571eb82ade7e2b4676edcd4018eb72c"},{"nr":94586,"hash":"4b2cc40cb206dc8dcd6267ebf4058bab6d887a0f"},{"nr":94421,"hash":"5343dd58cab00cb3d85652597bfda9c1d82b8b16"},{"nr":94309,"hash":"abc0d856a97cb0d8e927c201618c386dd1d734c8"},{"nr":94552,"hash":"6b89898a6da4ebff8e8fe233c4598748358f90a3"},{"nr":91921,"hash":"485d55f0bbd888c542c59c5bf8f3bf00264d0e08"},{"nr":94241,"hash":"2a7a1023bb310b00829df5a74d9fd0f40810987e"},{"nr":95316,"hash":"adabcd813f77f158c8abac6a31efc42384a25f4a"},{"nr":93837,"hash":"ddf147ef4b6cf6bcdc88537b00700a20ded2498c"},{"nr":94316,"hash":"05c19a15f336d05caf9e4b96deef65ed25a0ec4b"},{"nr":94506,"hash":"56098c9a9a7e3da3cf620ee5b76534a56c2e05a9"},{"nr":94733,"hash":"a6fb5d779d7c235859673e00c2e961d95544e271"},{"nr":90439,"hash":"6e43101b202ca5ee4596b190166e8d390022d03f"},{"nr":87054,"hash":"8324829e92af4933a4e622f6a5c5f20d6bf13011"},{"nr":94124,"hash":"9f72e52e83f1ad716da214426aace709861b0a36"},{"nr":93011,"hash":"1fb51025d9fd06380c356f404021ff501cf1f789"},{"nr":95012,"hash":"6c958b64e995859ae6148a52067dee25cf8e31b3"},{"nr":94555,"hash":"76557c5b70f91e736d48e9674b5d3b2f157e7882"},{"nr":94888,"hash":"4991926109bf9ecf01839ee9bc2e7646e246b9f4"},{"nr":94508,"hash":"b92cdba99765f08f28620482593177aab95f4464"},{"nr":93692,"hash":"1ba35a1e792eb3e23e6609853b1c5887704674f9"},{"nr":94474,"hash":"3745a92baa4e5f48097a556ba4170baf9dd06216"},{"nr":94879,"hash":"8bb46055e9360bd07a372e532f43fb50c831770c"},{"nr":94853,"hash":"1ec03222599ee65b5d447e49b9177e7827294f32"},{"nr":94265,"hash":"74fc4090f7d3f209ddbbb118349783200e1b6e4f"},{"nr":94398,"hash":"e82dcc4b3eef9a4bb542b6d8b28c83ea95893f26"},{"nr":95419,"hash":"431fc0fc9e3092584929f0eeeb8d1c152b270b1e"},{"nr":94896,"hash":"b3ed8e24edd82dab7ee5df127f48d3da4f6d2e26"},{"nr":93078,"hash":"1532a6385c3a4c34f89b7f41845b1af798b863b7"},{"nr":94449,"hash":"24d74dc2d8d48e0ef6548cef58ce0ace9e4e4fc9"},{"nr":92355,"hash":"96fac67ff0aecbe05eb3b0af1cbfb20ce5afc58c"},{"nr":93901,"hash":"15cc61c37fc54fbbf5a571f352146073bab9fcec"},{"nr":94816,"hash":"76d639ae2b81ec44a74ef550763a1d221c5a3de4"},{"nr":93523,"hash":"4716698fc6ce74ef893c157717287003a5323006"},{"nr":93180,"hash":"32a2ab47b31a90f90e5142fa3a94dc81441404ec"}]} diff --git a/releases/release-1.20/release-team.md b/releases/release-1.20/release-team.md index 052e8993799..34b60a0d48c 100644 --- a/releases/release-1.20/release-team.md +++ b/releases/release-1.20/release-team.md @@ -1 +1 @@ -# MOVED to https://github.com/kubernetes/sig-release/blob/master/releases/release-1.20/release_team.md +# MOVED to https://github.com/kubernetes/sig-release/blob/master/releases/release-1.20/release_team.md diff --git a/releases/release-1.20/release_team.md b/releases/release-1.20/release_team.md index 6d5b846ddb9..4120ccb7261 100644 --- a/releases/release-1.20/release_team.md +++ b/releases/release-1.20/release_team.md @@ -1,16 +1,16 @@ -# Kubernetes 1.20 Release Team - -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|---|---|---| -| Lead | Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard) / Slack: `@jerickar`) | Daniel Mangum ([@hasheddan](https://github.com/hasheddan) / Slack: `@hasheddan`), Nabarun Pal ([@palnabarun](https://github.com/palnabarun) / Slack: `@palnabarun`), Savitha Raghunathan ([@savitharaghunathan](https://github.com/savitharaghunathan) / Slack: `@sraghunathan`) | -| Enhancements | Kirsten Garrison ( [@kikisdeliveryservice](https://github.com/kikisdeliveryservice) / Slack: `@oikiki`) | Mikael Johansson ( [@mikejoh](https://github.com/mikejoh) / Slack: `@mikjoh`), Jeremy Morris ( [@MorrisLaw](https://github.com/MorrisLaw) / Slack: `@morrislaw`), Kendall Roden ( [@kendallroden](https://github.com/kendallroden) / Slack: `@keroden`), Kinara Shah ( [@kinarashah](https://github.com/kinarashah) / Slack: `@kinara`) | -| CI Signal | Robert Kielty ([@RobertKielty](https://github.com/RobertKielty) / Slack: `@RobKielty`) | Hosam Kamel ([@Hkamel](https://github.com/HKamel) / Slack:`@Hkamel`), Joyce Kung ([@thejoycekung](https://github.com/thejoycekung) / Slack: `@jk`), Prashant Sharma ([@ScrapCodes](https://github.com/ScrapCodes) / Slack:`@Prashant Sharma`), Eddie Zaneski ([@eddiezane](https://github.com/eddiezane) / Slack: `@eddiezane`) | -| Bug Triage | Vlad Gorodetsky ([@bai](https://github.com/bai) / Slack: `@bai`) | Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkorbi`), Nikolas Moraitis ([@droslean](https://github.com/droslean) / Slack: `@droslean`), Menna Elmasry ([@MonzElmasry](https://github.com/MonzElmasry) / Slack: `@Menna`), Derrik Campau ([@erismaster](https://github.com/erismaster) / Slack: `@dcampau`), Sayan Chowdhury ([@sayanchowdhury](https://github.com/sayanchowdhury) / Slack: `@yudocaa`) | -| Docs | Anna Jung ([@annajung](https://github.com/annajung) / Slack: `@annajung`) | Leslie-Alexandre Denis ([@eagleusb](https://github.com/eagleusb) / Slack: `@grumpycat`), Rey Lejano ([@reylejano](https://github.com/reylejano) / Slack: `@rey.lejano`), Kristin Martin ([@kcmartin](https://github.com/kcmartin) / Slack: `@kcmartin`), Somtochi Onyekwere ([@SomtochiAma](https://github.com/SomtochiAma) / Slack: `@SomtochiAma`) | -| Release Notes | James Laverack ([@JamesLaverack](https://github.com/JamesLaverack) / Slack: `@james.laverack`) | Celeste Horgan ([@celestehorgan](https://github.com/celestehorgan) / Slack: `@Celeste Horgan`), Wilson Husin ([@wilsonehusin](https://github.com/wilsonehusin) / Slack: `@wilsonehusin`), Sonia Singla ([@soniasingla](https://github.com/soniasingla) / Slack: `@SONIA SINGLA`), Jacky Tan ([@tanjacky](https://github.com/tanjacky) / Slack: `@Jacky Tan`) | -| Communications | Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@j-dawg`) | Tony Gosselin ([@sfotony](https://github.com/sfotony) / Slack: `@sfotony` ), Divya Mohan ([@divya-mohan0209](https://github.com/divya-mohan0209) / Slack: `@divya`), Chris Short ([@chris-short](https://github.com/chris-short) / Slack: `@chrisshort`), Xander Grzywinski ( [@salaxander](https://github.com/salaxander) / Slack: `@xander`) | | -| Emeritus Adviser | Lachlan Evenson ([@lachie83](https://github.com/lachie83) / Slack: `@lachie83`) | -- | - -Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.20, once the 1.20 release cycle concludes. +# Kubernetes 1.20 Release Team + +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|---|---|---| +| Lead | Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard) / Slack: `@jerickar`) | Daniel Mangum ([@hasheddan](https://github.com/hasheddan) / Slack: `@hasheddan`), Nabarun Pal ([@palnabarun](https://github.com/palnabarun) / Slack: `@palnabarun`), Savitha Raghunathan ([@savitharaghunathan](https://github.com/savitharaghunathan) / Slack: `@sraghunathan`) | +| Enhancements | Kirsten Garrison ( [@kikisdeliveryservice](https://github.com/kikisdeliveryservice) / Slack: `@oikiki`) | Mikael Johansson ( [@mikejoh](https://github.com/mikejoh) / Slack: `@mikjoh`), Jeremy Morris ( [@MorrisLaw](https://github.com/MorrisLaw) / Slack: `@morrislaw`), Kendall Roden ( [@kendallroden](https://github.com/kendallroden) / Slack: `@keroden`), Kinara Shah ( [@kinarashah](https://github.com/kinarashah) / Slack: `@kinara`) | +| CI Signal | Robert Kielty ([@RobertKielty](https://github.com/RobertKielty) / Slack: `@RobKielty`) | Hosam Kamel ([@Hkamel](https://github.com/HKamel) / Slack:`@Hkamel`), Joyce Kung ([@thejoycekung](https://github.com/thejoycekung) / Slack: `@jk`), Prashant Sharma ([@ScrapCodes](https://github.com/ScrapCodes) / Slack:`@Prashant Sharma`), Eddie Zaneski ([@eddiezane](https://github.com/eddiezane) / Slack: `@eddiezane`) | +| Bug Triage | Vlad Gorodetsky ([@bai](https://github.com/bai) / Slack: `@bai`) | Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkorbi`), Nikolas Moraitis ([@droslean](https://github.com/droslean) / Slack: `@droslean`), Menna Elmasry ([@MonzElmasry](https://github.com/MonzElmasry) / Slack: `@Menna`), Derrik Campau ([@erismaster](https://github.com/erismaster) / Slack: `@dcampau`), Sayan Chowdhury ([@sayanchowdhury](https://github.com/sayanchowdhury) / Slack: `@yudocaa`) | +| Docs | Anna Jung ([@annajung](https://github.com/annajung) / Slack: `@annajung`) | Leslie-Alexandre Denis ([@eagleusb](https://github.com/eagleusb) / Slack: `@grumpycat`), Rey Lejano ([@reylejano](https://github.com/reylejano) / Slack: `@rey.lejano`), Kristin Martin ([@kcmartin](https://github.com/kcmartin) / Slack: `@kcmartin`), Somtochi Onyekwere ([@SomtochiAma](https://github.com/SomtochiAma) / Slack: `@SomtochiAma`) | +| Release Notes | James Laverack ([@JamesLaverack](https://github.com/JamesLaverack) / Slack: `@james.laverack`) | Celeste Horgan ([@celestehorgan](https://github.com/celestehorgan) / Slack: `@Celeste Horgan`), Wilson Husin ([@wilsonehusin](https://github.com/wilsonehusin) / Slack: `@wilsonehusin`), Sonia Singla ([@soniasingla](https://github.com/soniasingla) / Slack: `@SONIA SINGLA`), Jacky Tan ([@tanjacky](https://github.com/tanjacky) / Slack: `@Jacky Tan`) | +| Communications | Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@j-dawg`) | Tony Gosselin ([@sfotony](https://github.com/sfotony) / Slack: `@sfotony` ), Divya Mohan ([@divya-mohan0209](https://github.com/divya-mohan0209) / Slack: `@divya`), Chris Short ([@chris-short](https://github.com/chris-short) / Slack: `@chrisshort`), Xander Grzywinski ( [@salaxander](https://github.com/salaxander) / Slack: `@xander`) | | +| Emeritus Adviser | Lachlan Evenson ([@lachie83](https://github.com/lachie83) / Slack: `@lachie83`) | -- | + +Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.20, once the 1.20 release cycle concludes. diff --git a/releases/release-1.21/README.md b/releases/release-1.21/README.md index 41093ff6ab2..2c99db1f8ae 100644 --- a/releases/release-1.21/README.md +++ b/releases/release-1.21/README.md @@ -1,111 +1,111 @@ ---- -title: "Kubernetes 1.21 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.21 : Power to the Community - -![Kubernetes 1.21 : Power to the Community](./logos/globe_250px.png) - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.21/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.21/release-team.md) -* [Meeting Minutes](http://bit.ly/k8s121-releasemtg) (join [kubernetes-sig-release@] to receive meeting invites) -* [v1.21 Release Calendar][k8s121-calendar] -* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail -* [Internal Contact Info][Internal Contact Info] (accessible only to members of [kubernetes-release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Sheet](http://bit.ly/k8s121-enhancements) -* Bug Triage Tracking Sheet: TODO -* CI Signal Report: TODO -* [Retrospective Document][Retrospective Document] -* [kubernetes/sig-release v1.21 milestone](https://github.com/kubernetes/kubernetes/milestone/49) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## TL;DR - -The 1.21 release cycle is proposed as follows: - -- **Monday, January 11th**: Week 1 - Release cycle begins -- **Tuesday, February 9th**: Week 5 - [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **Tuesday, March 9th**: Week 9 - [Code Freeze](../release_phases.md#code-freeze) -- **Wednesday, March 24**: Week 11 - [Test Freeze](../release_phases.md#test-freeze) -- **Wednesday, March 31st**: Week 12 - Docs must be completed and reviewed -- **Thursday, April 8th**: Week 13 - Kubernetes v1.21.0 released -- **Thursday, April 15th**: Week 14 - Release Retrospective - -## Timeline - -| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | -|---|---|---|---|---| -| Start of Release Cycle | Lead | Mon January 11 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Tue January 12 | week 1 | | -| 1.21.0-alpha.1 released | Branch Manager ([@puerco](https://github.com/puerco)) | Wed January 13 | week 1 | | -| Schedule finalized | Lead | Thurs January 14 | week 1 | | -| Team finalized | Lead | Friday January 15 | week 1 | | -| 1.21.0-alpha.2 released | Branch Manager ([@sethmccombs](https://github.com/sethmccombs)) | Tue January 26 | week 3 | | -| **Begin [Enhancements Freeze]** (EOD PST) | Enhancements Lead | Tue February 9th | week 5 | [master-blocking], [master-informing] | -| 1.21.0-alpha.3 released | Branch Manager ([@ameukam](https://github.com/ameukam)) | Tue February 9 | week 5 | | -| 1.21.0-beta.0 released | Branch Manager ([@onlydole](https://github.com/onlydole)) | Tue February 23 | week 7 | | -| **Begin [Burndown]** (MWF meetings) | Lead | Mon March 1 | week 8 | [1.21-blocking], [master-blocking], [master-informing] | -| **Call for [Exceptions][Exception]** | Lead | Mon March 1 | week 8 | | -| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Mon March 1 | week 8 | | -| **Begin Feature blog freeze** | Comms Lead | Mon March 1 | week 8 | | -| 1.21.0-beta.1 released | Branch Manager ([@mkorbi](https://github.com/mkorbi)) | Tue March 9 | week 9 | | -| **Begin [Code Freeze]** (EOD PST) | Branch Manager | Tue March 9 | week 9 | | -| Burndown Meetings daily| Lead | Mon March 15 | week 10 | | -| Docs deadline - Open placeholder PRs | Docs Lead | Tue March 16 | week 10 | | -| Docs deadline - PRs ready for review | Docs Lead | Wed March 24 | week 11 | | -| **[Test Freeze]** (EOD PST) | Branch Manager | Wed March 24 | week 11 | | -| 1.21.0-rc.0 released | Branch Manager ([@puerco](https://github.com/puerco)) | Thu March 25 | week 11 | | -| release-1.21 branch created | Branch Manager | Thu March 25 | week 11 | | -| release-1.21 jobs created | Branch Manager | Thu March 25 | week 11 | | -| Start final draft of Release Notes | Release Notes Lead | Thu March 25 | week 11 | | -| Release blog ready to review | Comms / Docs | Thu March 25 | week 11 | | -| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Wed March 31 | week 12 | | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Wed March 31 | week 12 | | -| Release Notes complete - reviewed & merged to `k/sig-release` | Release Notes Lead | Mon April 5 | week 13 | | -| **v1.21.0 released** | Branch Manager ([@puerco](https://github.com/puerco)) | Thu April 8 | week 13 | | -| Release blog published | Comms | Thu April 8 | week 13 | | -| **[Thaw]** | Branch Manager | Thu April 8 | week 13 | | -| Release retrospective | Community | Thu April 15 | Week 14 | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[k8s121-calendar]: https://bit.ly/k8s-release-cal -[Internal Contact Info]: http://bit.ly/k8s121-contacts -[Retrospective Document]: http://bit.ly/k8s121-retro - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Thaw]: ../release_phases.md#thaw -[Test Freeze]: ../release_phases.md#test-freeze - -[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.21-blocking]: https://testgrid.k8s.io/sig-release-1.21-blocking#Summary - -[exception requests]: ../EXCEPTIONS.md -[release phases document]: ../release_phases.md +--- +title: "Kubernetes 1.21 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.21 : Power to the Community + +![Kubernetes 1.21 : Power to the Community](./logos/globe_250px.png) + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.21/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.21/release-team.md) +* [Meeting Minutes](http://bit.ly/k8s121-releasemtg) (join [kubernetes-sig-release@] to receive meeting invites) +* [v1.21 Release Calendar][k8s121-calendar] +* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail +* [Internal Contact Info][Internal Contact Info] (accessible only to members of [kubernetes-release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Sheet](http://bit.ly/k8s121-enhancements) +* Bug Triage Tracking Sheet: TODO +* CI Signal Report: TODO +* [Retrospective Document][Retrospective Document] +* [kubernetes/sig-release v1.21 milestone](https://github.com/kubernetes/kubernetes/milestone/49) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## TL;DR + +The 1.21 release cycle is proposed as follows: + +- **Monday, January 11th**: Week 1 - Release cycle begins +- **Tuesday, February 9th**: Week 5 - [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **Tuesday, March 9th**: Week 9 - [Code Freeze](../release_phases.md#code-freeze) +- **Wednesday, March 24**: Week 11 - [Test Freeze](../release_phases.md#test-freeze) +- **Wednesday, March 31st**: Week 12 - Docs must be completed and reviewed +- **Thursday, April 8th**: Week 13 - Kubernetes v1.21.0 released +- **Thursday, April 15th**: Week 14 - Release Retrospective + +## Timeline + +| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | +|---|---|---|---|---| +| Start of Release Cycle | Lead | Mon January 11 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Tue January 12 | week 1 | | +| 1.21.0-alpha.1 released | Branch Manager ([@puerco](https://github.com/puerco)) | Wed January 13 | week 1 | | +| Schedule finalized | Lead | Thurs January 14 | week 1 | | +| Team finalized | Lead | Friday January 15 | week 1 | | +| 1.21.0-alpha.2 released | Branch Manager ([@sethmccombs](https://github.com/sethmccombs)) | Tue January 26 | week 3 | | +| **Begin [Enhancements Freeze]** (EOD PST) | Enhancements Lead | Tue February 9th | week 5 | [master-blocking], [master-informing] | +| 1.21.0-alpha.3 released | Branch Manager ([@ameukam](https://github.com/ameukam)) | Tue February 9 | week 5 | | +| 1.21.0-beta.0 released | Branch Manager ([@onlydole](https://github.com/onlydole)) | Tue February 23 | week 7 | | +| **Begin [Burndown]** (MWF meetings) | Lead | Mon March 1 | week 8 | [1.21-blocking], [master-blocking], [master-informing] | +| **Call for [Exceptions][Exception]** | Lead | Mon March 1 | week 8 | | +| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Mon March 1 | week 8 | | +| **Begin Feature blog freeze** | Comms Lead | Mon March 1 | week 8 | | +| 1.21.0-beta.1 released | Branch Manager ([@mkorbi](https://github.com/mkorbi)) | Tue March 9 | week 9 | | +| **Begin [Code Freeze]** (EOD PST) | Branch Manager | Tue March 9 | week 9 | | +| Burndown Meetings daily| Lead | Mon March 15 | week 10 | | +| Docs deadline - Open placeholder PRs | Docs Lead | Tue March 16 | week 10 | | +| Docs deadline - PRs ready for review | Docs Lead | Wed March 24 | week 11 | | +| **[Test Freeze]** (EOD PST) | Branch Manager | Wed March 24 | week 11 | | +| 1.21.0-rc.0 released | Branch Manager ([@puerco](https://github.com/puerco)) | Thu March 25 | week 11 | | +| release-1.21 branch created | Branch Manager | Thu March 25 | week 11 | | +| release-1.21 jobs created | Branch Manager | Thu March 25 | week 11 | | +| Start final draft of Release Notes | Release Notes Lead | Thu March 25 | week 11 | | +| Release blog ready to review | Comms / Docs | Thu March 25 | week 11 | | +| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Wed March 31 | week 12 | | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Wed March 31 | week 12 | | +| Release Notes complete - reviewed & merged to `k/sig-release` | Release Notes Lead | Mon April 5 | week 13 | | +| **v1.21.0 released** | Branch Manager ([@puerco](https://github.com/puerco)) | Thu April 8 | week 13 | | +| Release blog published | Comms | Thu April 8 | week 13 | | +| **[Thaw]** | Branch Manager | Thu April 8 | week 13 | | +| Release retrospective | Community | Thu April 15 | Week 14 | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[k8s121-calendar]: https://bit.ly/k8s-release-cal +[Internal Contact Info]: http://bit.ly/k8s121-contacts +[Retrospective Document]: http://bit.ly/k8s121-retro + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Thaw]: ../release_phases.md#thaw +[Test Freeze]: ../release_phases.md#test-freeze + +[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.21-blocking]: https://testgrid.k8s.io/sig-release-1.21-blocking#Summary + +[exception requests]: ../EXCEPTIONS.md +[release phases document]: ../release_phases.md diff --git a/releases/release-1.21/exceptions.yaml b/releases/release-1.21/exceptions.yaml index 67c959a1c4b..b86926241b0 100644 --- a/releases/release-1.21/exceptions.yaml +++ b/releases/release-1.21/exceptions.yaml @@ -1,119 +1,119 @@ -# Exceptions requested in 1.21 -# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release -# Release Team Lead: Nabarun Pal ([@palnabarun](https://github.com/palnabarun)) -# Release Team Shadows: Kirsten Garrison ([@kikisdeliveryservice](https://www.github.com/kikisdeliveryservice)) -# / Savitha Raghunathan ([@savitharaghunathan](https://www.github.com/savitharaghunathan)) -# / Vlad Gorodetsky ([@bai](https://github.com/bai)) - - -# Enhancements Freeze Exceptions requested in 1.21 -- name: "Support for Windows privileged containers" - issue: 1981 - date_requested: 2021-02-10 - date_reviewed: 2021-02-19 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/L3AGnsXKboI/m/9x03F0qbAAAJ" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2288" - status: "approved" - -- name: "Use kubectl to view logs of system services on nodes" - issue: 2258 - date_requested: 2021-02-10 - date_reviewed: 2021-02-19 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/L3AGnsXKboI/m/9x03F0qbAAAJ" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2271" - status: "denied" - - -# Code Freeze Exceptions requested in 1.21 -- name: "Metrics Stability Enhancement" - issue: 1209 - date_requested: 2021-03-10 - date_reviewed: 2021-03-11 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/p9E6s14269M/m/iyOlVua4AwAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/100082" - status: "approved" - -- name: "Add configurable grace period to probes" - issue: 2238 - date_requested: 2021-03-10 - date_reviewed: 2021-03-11 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/eOphdiRmK7k/m/ky4_ryScAgAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/99375" - status: "approved" - -- name: "Reject Invalid PVC DataSource" - issue: 2546 - date_requested: 2021-03-08 - date_reviewed: 2021-03-11 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/6humzS-PU84/m/HeVrAGA6AwAJ" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2552" - status: "denied" - -- name: "Structured Logging" - issue: 1602 - date_requested: 2021-03-08 - date_reviewed: 2021-03-11 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/shnk5YW5Yag/m/ICHY1R9BAwAJ" - pull_requests: - - "https://github.com/orgs/kubernetes/projects/53" - status: "approved" - -- name: "Service Account Token for CSI Drivers" - issue: 2047 - date_requested: 2021-03-10 - date_reviewed: 2021-03-11 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/xnR5k3nI6Dk/m/muycgQTLAwAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/99298" - status: "approved" - -- name: "MaxUnavailable for StatefulSet" - issue: 961 - date_requested: 2021-03-09 - date_reviewed: 2021-03-12 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/Sht6SZxWf6s/m/dPIZVyxgAwAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/82162" - status: "denied" - -- name: "Tracking Terminating Endpoints" - issue: 1672 - date_requested: 2021-03-11 - date_reviewed: 2021-03-12 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/F2HdzPMPyvs/m/x5Z-cgjiAgAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/97238" - status: "denied" - -- name: "Auto-remove PVCs created by StatefulSet" - issue: 1847 - date_requested: 2021-03-10 - date_reviewed: 2021-03-12 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/SOEQuqjgh48/m/oT-WqryrAgAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/99378" - - "https://github.com/kubernetes/kubernetes/pull/99728" - status: "denied" - -- name: "Windows Privileged Containers" - issue: 1981 - date_requested: 2021-03-12 - date_reviewed: 2021-03-16 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/etxmxKpCjzA/m/EEG9VP5TAwAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/99576" - status: "denied" - -- name: "Support to size memory backed volumes" - issue: 1981 - date_requested: 2021-03-16 - date_reviewed: 2021-03-17 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/xh9JS-GbKsM/m/lCHbrOnxAAAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/100319" - status: "denied" +# Exceptions requested in 1.21 +# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release +# Release Team Lead: Nabarun Pal ([@palnabarun](https://github.com/palnabarun)) +# Release Team Shadows: Kirsten Garrison ([@kikisdeliveryservice](https://www.github.com/kikisdeliveryservice)) +# / Savitha Raghunathan ([@savitharaghunathan](https://www.github.com/savitharaghunathan)) +# / Vlad Gorodetsky ([@bai](https://github.com/bai)) + + +# Enhancements Freeze Exceptions requested in 1.21 +- name: "Support for Windows privileged containers" + issue: 1981 + date_requested: 2021-02-10 + date_reviewed: 2021-02-19 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/L3AGnsXKboI/m/9x03F0qbAAAJ" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2288" + status: "approved" + +- name: "Use kubectl to view logs of system services on nodes" + issue: 2258 + date_requested: 2021-02-10 + date_reviewed: 2021-02-19 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/L3AGnsXKboI/m/9x03F0qbAAAJ" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2271" + status: "denied" + + +# Code Freeze Exceptions requested in 1.21 +- name: "Metrics Stability Enhancement" + issue: 1209 + date_requested: 2021-03-10 + date_reviewed: 2021-03-11 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/p9E6s14269M/m/iyOlVua4AwAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/100082" + status: "approved" + +- name: "Add configurable grace period to probes" + issue: 2238 + date_requested: 2021-03-10 + date_reviewed: 2021-03-11 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/eOphdiRmK7k/m/ky4_ryScAgAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/99375" + status: "approved" + +- name: "Reject Invalid PVC DataSource" + issue: 2546 + date_requested: 2021-03-08 + date_reviewed: 2021-03-11 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/6humzS-PU84/m/HeVrAGA6AwAJ" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2552" + status: "denied" + +- name: "Structured Logging" + issue: 1602 + date_requested: 2021-03-08 + date_reviewed: 2021-03-11 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/shnk5YW5Yag/m/ICHY1R9BAwAJ" + pull_requests: + - "https://github.com/orgs/kubernetes/projects/53" + status: "approved" + +- name: "Service Account Token for CSI Drivers" + issue: 2047 + date_requested: 2021-03-10 + date_reviewed: 2021-03-11 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/xnR5k3nI6Dk/m/muycgQTLAwAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/99298" + status: "approved" + +- name: "MaxUnavailable for StatefulSet" + issue: 961 + date_requested: 2021-03-09 + date_reviewed: 2021-03-12 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/Sht6SZxWf6s/m/dPIZVyxgAwAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/82162" + status: "denied" + +- name: "Tracking Terminating Endpoints" + issue: 1672 + date_requested: 2021-03-11 + date_reviewed: 2021-03-12 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/F2HdzPMPyvs/m/x5Z-cgjiAgAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/97238" + status: "denied" + +- name: "Auto-remove PVCs created by StatefulSet" + issue: 1847 + date_requested: 2021-03-10 + date_reviewed: 2021-03-12 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/SOEQuqjgh48/m/oT-WqryrAgAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/99378" + - "https://github.com/kubernetes/kubernetes/pull/99728" + status: "denied" + +- name: "Windows Privileged Containers" + issue: 1981 + date_requested: 2021-03-12 + date_reviewed: 2021-03-16 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/etxmxKpCjzA/m/EEG9VP5TAwAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/99576" + status: "denied" + +- name: "Support to size memory backed volumes" + issue: 1981 + date_requested: 2021-03-16 + date_reviewed: 2021-03-17 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/xh9JS-GbKsM/m/lCHbrOnxAAAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/100319" + status: "denied" diff --git a/releases/release-1.21/release-notes-draft.md b/releases/release-1.21/release-notes-draft.md index 58a98072775..3027829acda 100644 --- a/releases/release-1.21/release-notes-draft.md +++ b/releases/release-1.21/release-notes-draft.md @@ -1,490 +1,490 @@ -# Release notes for v1.21.0-rc.0 - -[Documentation](https://docs.k8s.io/docs/home) - -# Changelog since v1.20.0 - -## What's New (Major Themes) - -### Deprecation of PodSecurityPolicy - -PSP as an admission controller resource is being deprecated. Deployed PodSecurityPolicy's will keep working until version 1.25, their target removal from the codebase. A new feature, with a working title of "PSP replacement policy", is being developed in [KEP-2579](https://features.k8s.io/2579). To learn more, read [PodSecurityPolicy Deprecation: Past, Present, and Future](https://blog.k8s.io/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/). - -### Kubernetes API Reference Documentation - -The API reference is now generated with [`gen-resourcesdocs`](https://github.com/kubernetes-sigs/reference-docs/tree/c96658d89fb21037b7d00d27e6dbbe6b32375837/gen-resourcesdocs) and it is moving to [Kubernetes API](https://docs.k8s.io/reference/kubernetes-api/) - -### Kustomize Updates in Kubectl - -[Kustomize](https://github.com/kubernetes-sigs/kustomize) version in kubectl had a jump from v2.0.3 to [v4.0.5](https://github.com/kubernetes/kubernetes/pull/98946). Kustomize is now treated as a library and future updates will be less sporadic. - -### Default Container Labels - -Pod with multiple containers can use `kubectl.kubernetes.io/default-container` label to have a container preselected for kubectl commands. More can be read in [KEP-2227](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md). - -### Immutable Secrets and ConfigMaps - -Immutable Secrets and ConfigMaps graduates to GA. This feature allows users to specify that the contents of a particular Secret or ConfigMap is immutable for its object lifetime. For such instances, Kubelet will not watch/poll for changes and therefore reducing apiserver load. - -### Structured Logging in Kubelet - -Kubelet has adopted structured logging, thanks to community effort in accomplishing this within the release timeline. Structured logging in the project remains an ongoing effort -- for folks interested in participating, [keep an eye / chime in to the mailing list discussion](https://groups.google.com/g/kubernetes-dev/c/y4WIw-ntUR8). - -### Storage Capacity Tracking - -Traditionally, the Kubernetes scheduler was based on the assumptions that additional persistent storage is available everywhere in the cluster and has infinite capacity. Topology constraints addressed the first point, but up to now pod scheduling was still done without considering that the remaining storage capacity may not be enough to start a new pod. [Storage capacity tracking](https://docs.k8s.io/concepts/storage/storage-capacity/) addresses that by adding an API for a CSI driver to report storage capacity and uses that information in the Kubernetes scheduler when choosing a node for a pod. This feature serves as a stepping stone for supporting dynamic provisioning for local volumes and other volume types that are more capacity constrained. - -### Generic Ephemeral Volumes - -[Generic ephermeral volumes](https://docs.k8s.io/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes) feature allows any existing storage driver that supports dynamic provisioning to be used as an ephemeral volume with the volume’s lifecycle bound to the Pod. It can be used to provide scratch storage that is different from the root disk, for example persistent memory, or a separate local disk on that node. All StorageClass parameters for volume provisioning are supported. All features supported with PersistentVolumeClaims are supported, such as storage capacity tracking, snapshots and restore, and volume resizing. - -### CSI Service Account Token - -CSI Service Account Token feature moves to Beta in 1.21. This feature improves the security posture and allows CSI drivers to receive pods' [bound service account tokens](https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1205-bound-service-account-tokens/README.md). This feature also provides a knob to re-publish volumes so that short-lived volumes can be refreshed. - -### CSI Health Monitoring - -The CSI health monitoring feature is being released as a second Alpha in Kubernetes 1.21. This feature enables CSI Drivers to share abnormal volume conditions from the underlying storage systems with Kubernetes so that they can be reported as events on PVCs or Pods. This feature serves as a stepping stone towards programmatic detection and resolution of individual volume health issues by Kubernetes. - -## Known Issues - -### `TopologyAwareHints` feature falls back to default behavior - -The feature gate currently falls back to the default behavior in most cases. Enabling the feature gate will add hints to `EndpointSlices`, but functional differences are only observed in non-dual stack kube-proxy implementation. [The fix will be available in coming releases](https://github.com/kubernetes/kubernetes/pull/100804). - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- Kube-proxy's IPVS proxy mode no longer sets the net.ipv4.conf.all.route_localnet sysctl parameter. Nodes upgrading will have net.ipv4.conf.all.route_localnet set to 1 but new nodes will inherit the system default (usually 0). If you relied on any behavior requiring net.ipv4.conf.all.route_localnet, you must set ensure it is enabled as kube-proxy will no longer set it automatically. This change helps to further mitigate CVE-2020-8558. ([#92938](https://github.com/kubernetes/kubernetes/pull/92938), [@lbernail](https://github.com/lbernail)) [SIG Network and Release] - - Kubeadm: during "init" an empty cgroupDriver value in the KubeletConfiguration is now always set to "systemd" unless the user is explicit about it. This requires existing machine setups to configure the container runtime to use the "systemd" driver. Documentation on this topic can be found here: https://kubernetes.io/docs/setup/production-environment/container-runtimes/. When upgrading existing clusters / nodes using "kubeadm upgrade" the old cgroupDriver value is preserved, but in 1.22 this change will also apply to "upgrade". For more information on migrating to the "systemd" driver or remaining on the "cgroupfs" driver see: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/. ([#99471](https://github.com/kubernetes/kubernetes/pull/99471), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] - - Newly provisioned PVs by EBS plugin will no longer use the deprecated "failure-domain.beta.kubernetes.io/zone" and "failure-domain.beta.kubernetes.io/region" labels. It will use "topology.kubernetes.io/zone" and "topology.kubernetes.io/region" labels instead. ([#99130](https://github.com/kubernetes/kubernetes/pull/99130), [@ayberk](https://github.com/ayberk)) [SIG Cloud Provider, Storage and Testing] - - Newly provisioned PVs by OpenStack Cinder plugin will no longer use the deprecated "failure-domain.beta.kubernetes.io/zone" and "failure-domain.beta.kubernetes.io/region" labels. It will use "topology.kubernetes.io/zone" and "topology.kubernetes.io/region" labels instead. ([#99719](https://github.com/kubernetes/kubernetes/pull/99719), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider and Storage] - - Newly provisioned PVs by gce-pd will no longer have the beta FailureDomain label. gce-pd volume plugin will start to have GA topology label instead. ([#98700](https://github.com/kubernetes/kubernetes/pull/98700), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Cloud Provider, Storage and Testing] - - OpenStack Cinder CSI migration is on by default, Clinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work. ([#98538](https://github.com/kubernetes/kubernetes/pull/98538), [@dims](https://github.com/dims)) [SIG Storage] - - Remove alpha `CSIMigrationXXComplete` flag and add alpha `InTreePluginXXUnregister` flag. Deprecate `CSIMigrationvSphereComplete` flag and it will be removed in v1.22. ([#98243](https://github.com/kubernetes/kubernetes/pull/98243), [@Jiawei0227](https://github.com/Jiawei0227)) - - Remove storage metrics `storage_operation_errors_total`, since we already have `storage_operation_status_count`.And add new field `status` for `storage_operation_duration_seconds`, so that we can know about all status storage operation latency. ([#98332](https://github.com/kubernetes/kubernetes/pull/98332), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation and Storage] - - The metric `storage_operation_errors_total` is not removed, but is marked deprecated, and the metric `storage_operation_status_count` is marked deprecated. In both cases the `storage_operation_duration_seconds` metric can be used to recover equivalent counts (using `status=fail-unknown` in the case of `storage_operations_errors_total`). ([#99045](https://github.com/kubernetes/kubernetes/pull/99045), [@mattcary](https://github.com/mattcary)) - - `ServiceNodeExclusion`, `NodeDisruptionExclusion` and `LegacyNodeRoleBehavior` features have been promoted to GA. `ServiceNodeExclusion` and `NodeDisruptionExclusion` are now unconditionally enabled, while `LegacyNodeRoleBehavior` is unconditionally disabled. To prevent control plane nodes from being added to load balancers automatically, upgrade users need to add "node.kubernetes.io/exclude-from-external-load-balancers" label to control plane nodes. ([#97543](https://github.com/kubernetes/kubernetes/pull/97543), [@pacoxu](https://github.com/pacoxu)) - -## Changes by Kind - -### Deprecation - -- Aborting the drain command in a list of nodes will be deprecated. The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain. For now, users can try such experience by enabling --ignore-errors flag. ([#98203](https://github.com/kubernetes/kubernetes/pull/98203), [@yuzhiquan](https://github.com/yuzhiquan)) -- Delete deprecated `service.beta.kubernetes.io/azure-load-balancer-mixed-protocols` mixed procotol annotation in favor of the MixedProtocolLBService feature ([#97096](https://github.com/kubernetes/kubernetes/pull/97096), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Deprecate the `topologyKeys` field in Service. This capability will be replaced with upcoming work around Topology Aware Subsetting and Service Internal Traffic Policy. ([#96736](https://github.com/kubernetes/kubernetes/pull/96736), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps] -- Kube-proxy: remove deprecated --cleanup-ipvs flag of kube-proxy, and make --cleanup flag always to flush IPVS ([#97336](https://github.com/kubernetes/kubernetes/pull/97336), [@maaoBit](https://github.com/maaoBit)) [SIG Network] -- Kubeadm: deprecated command "alpha selfhosting pivot" is now removed. ([#97627](https://github.com/kubernetes/kubernetes/pull/97627), [@knight42](https://github.com/knight42)) -- Kubeadm: graduate the command `kubeadm alpha kubeconfig user` to `kubeadm kubeconfig user`. The `kubeadm alpha kubeconfig user` command is deprecated now. ([#97583](https://github.com/kubernetes/kubernetes/pull/97583), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] -- Kubeadm: the "kubeadm alpha certs" command is removed now, please use "kubeadm certs" instead. ([#97706](https://github.com/kubernetes/kubernetes/pull/97706), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] -- Kubeadm: the deprecated kube-dns is no longer supported as an option. If "ClusterConfiguration.dns.type" is set to "kube-dns" kubeadm will now throw an error. ([#99646](https://github.com/kubernetes/kubernetes/pull/99646), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] -- Kubectl: The deprecated `kubectl alpha debug` command is removed. Use `kubectl debug` instead. ([#98111](https://github.com/kubernetes/kubernetes/pull/98111), [@pandaamanda](https://github.com/pandaamanda)) [SIG CLI] -- Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97935](https://github.com/kubernetes/kubernetes/pull/97935), [@adeniyistephen](https://github.com/adeniyistephen)) [SIG Release and Testing] -- Remove deprecated `--generator, --replicas, --service-generator, --service-overrides, --schedule` from `kubectl run` - Deprecate `--serviceaccount, --hostport, --requests, --limits` in `kubectl run` ([#99732](https://github.com/kubernetes/kubernetes/pull/99732), [@soltysh](https://github.com/soltysh)) -- Remove the deprecated metrics "scheduling_algorithm_preemption_evaluation_seconds" and "binding_duration_seconds", suggest to use "scheduler_framework_extension_point_duration_seconds" instead. ([#96447](https://github.com/kubernetes/kubernetes/pull/96447), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle, Instrumentation, Scheduling and Testing] -- Removing experimental windows container hyper-v support with Docker ([#97141](https://github.com/kubernetes/kubernetes/pull/97141), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows] -- Rename metrics `etcd_object_counts` to `apiserver_storage_object_counts` and mark it as stable. The original `etcd_object_counts` metrics name is marked as "Deprecated" and will be removed in the future. ([#99785](https://github.com/kubernetes/kubernetes/pull/99785), [@erain](https://github.com/erain)) [SIG API Machinery, Instrumentation and Testing] -- The GA TokenRequest and TokenRequestProjection feature gates have been removed and are unconditionally enabled. Remove explicit use of those feature gates in CLI invocations. ([#97148](https://github.com/kubernetes/kubernetes/pull/97148), [@wawa0210](https://github.com/wawa0210)) [SIG Node] -- The PodSecurityPolicy API is deprecated in 1.21, and will no longer be served starting in 1.25. ([#97171](https://github.com/kubernetes/kubernetes/pull/97171), [@deads2k](https://github.com/deads2k)) [SIG Auth and CLI] -- The `batch/v2alpha1` CronJob type definitions and clients are deprecated and removed. ([#96987](https://github.com/kubernetes/kubernetes/pull/96987), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps, CLI and Testing] -- The `export` query parameter (inconsistently supported by API resources and deprecated in v1.14) is fully removed. Requests setting this query parameter will now receive a 400 status response. ([#98312](https://github.com/kubernetes/kubernetes/pull/98312), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth and Testing] -- `audit.k8s.io/v1beta1` and `audit.k8s.io/v1alpha1` audit policy configuration and audit events are deprecated in favor of `audit.k8s.io/v1`, available since v1.13. kube-apiserver invocations that specify alpha or beta policy configurations with `--audit-policy-file`, or explicitly request alpha or beta audit events with `--audit-log-version` / `--audit-webhook-version` must update to use `audit.k8s.io/v1` and accept `audit.k8s.io/v1` events prior to v1.24. ([#98858](https://github.com/kubernetes/kubernetes/pull/98858), [@carlory](https://github.com/carlory)) [SIG Auth] -- `discovery.k8s.io/v1beta1` EndpointSlices are deprecated in favor of `discovery.k8s.io/v1`, and will no longer be served in Kubernetes v1.25. ([#100472](https://github.com/kubernetes/kubernetes/pull/100472), [@liggitt](https://github.com/liggitt)) -- `diskformat` storage class parameter for in-tree vSphere volume plugin is deprecated as of v1.21 release. Please consider updating storageclass and remove `diskformat` parameter. vSphere CSI Driver does not support diskformat storageclass parameter. - - vSphere releases less than 67u3 are deprecated as of v1.21. Please consider upgrading vSphere to 67u3 or above. vSphere CSI Driver requires minimum vSphere 67u3. - - VM Hardware version less than 15 is deprecated as of v1.21. Please consider upgrading the Node VM Hardware version to 15 or above. vSphere CSI Driver recommends Node VM's Hardware version set to at least vmx-15. - - Multi vCenter support is deprecated as of v1.21. If you have a Kubernetes cluster spanning across multiple vCenter servers, please consider moving all k8s nodes to a single vCenter Server. vSphere CSI Driver does not support Kubernetes deployment spanning across multiple vCenter servers. - - Support for these deprecations will be available till Kubernetes v1.24. ([#98546](https://github.com/kubernetes/kubernetes/pull/98546), [@divyenpatel](https://github.com/divyenpatel)) - -### API Change - -- 1. PodAffinityTerm includes a namespaceSelector field to allow selecting eligible namespaces based on their labels. - 2. A new CrossNamespacePodAffinity quota scope API that allows restricting which namespaces allowed to use PodAffinityTerm with corss-namespace reference via namespaceSelector or namespaces fields. ([#98582](https://github.com/kubernetes/kubernetes/pull/98582), [@ahg-g](https://github.com/ahg-g)) [SIG API Machinery, Apps, Auth and Testing] -- Add Probe-level terminationGracePeriodSeconds field ([#99375](https://github.com/kubernetes/kubernetes/pull/99375), [@ehashman](https://github.com/ehashman)) [SIG API Machinery, Apps, Node and Testing] -- Added `.spec.completionMode` field to Job, with accepted values `NonIndexed` (default) and `Indexed`. This is an alpha field and is only honored by servers with the `IndexedJob` feature gate enabled. ([#98441](https://github.com/kubernetes/kubernetes/pull/98441), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps and CLI] -- Adds support for endPort field in NetworkPolicy ([#97058](https://github.com/kubernetes/kubernetes/pull/97058), [@rikatz](https://github.com/rikatz)) [SIG Apps and Network] -- CSIServiceAccountToken graduates to Beta and enabled by default. ([#99298](https://github.com/kubernetes/kubernetes/pull/99298), [@zshihang](https://github.com/zshihang)) -- Cluster admins can now turn off `/debug/pprof` and `/debug/flags/v` endpoint in kubelet by setting `enableProfilingHandler` and `enableDebugFlagsHandler` to `false` in the Kubelet configuration file. Options `enableProfilingHandler` and `enableDebugFlagsHandler` can be set to `true` only when `enableDebuggingHandlers` is also set to `true`. ([#98458](https://github.com/kubernetes/kubernetes/pull/98458), [@SaranBalaji90](https://github.com/SaranBalaji90)) -- DaemonSets accept a MaxSurge integer or percent on their rolling update strategy that will launch the updated pod on nodes and wait for those pods to go ready before marking the old out-of-date pods as deleted. This allows workloads to avoid downtime during upgrades when deployed using DaemonSets. This feature is alpha and is behind the DaemonSetUpdateSurge feature gate. ([#96441](https://github.com/kubernetes/kubernetes/pull/96441), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps and Testing] -- Enable SPDY pings to keep connections alive, so that `kubectl exec` and `kubectl portforward` won't be interrupted. ([#97083](https://github.com/kubernetes/kubernetes/pull/97083), [@knight42](https://github.com/knight42)) [SIG API Machinery and CLI] -- FieldManager no longer owns fields that get reset before the object is persisted (e.g. "status wiping"). ([#99661](https://github.com/kubernetes/kubernetes/pull/99661), [@kevindelgado](https://github.com/kevindelgado)) [SIG API Machinery, Auth and Testing] -- Fixes server-side apply for APIService resources. ([#98576](https://github.com/kubernetes/kubernetes/pull/98576), [@kevindelgado](https://github.com/kevindelgado)) -- Generic ephemeral volumes are beta. ([#99643](https://github.com/kubernetes/kubernetes/pull/99643), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Node, Storage and Testing] -- Hugepages request values are limited to integer multiples of the page size. ([#98515](https://github.com/kubernetes/kubernetes/pull/98515), [@lala123912](https://github.com/lala123912)) [SIG Apps] -- Implement the GetAvailableResources in the podresources API. ([#95734](https://github.com/kubernetes/kubernetes/pull/95734), [@fromanirh](https://github.com/fromanirh)) [SIG Instrumentation, Node and Testing] -- IngressClass resource can now reference a resource in a specific namespace - for implementation-specific configuration (previously only Cluster-level resources were allowed). - This feature can be enabled using the IngressClassNamespacedParams feature gate. ([#99275](https://github.com/kubernetes/kubernetes/pull/99275), [@hbagdi](https://github.com/hbagdi)) -- Jobs API has a new `.spec.suspend` field that can be used to suspend and resume Jobs. This is an alpha field which is only honored by servers with the `SuspendJob` feature gate enabled. ([#98727](https://github.com/kubernetes/kubernetes/pull/98727), [@adtac](https://github.com/adtac)) -- Kubelet Graceful Node Shutdown feature graduates to Beta and enabled by default. ([#99735](https://github.com/kubernetes/kubernetes/pull/99735), [@bobbypage](https://github.com/bobbypage)) -- Kubernetes is now built using go1.15.7 ([#98363](https://github.com/kubernetes/kubernetes/pull/98363), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Node, Release and Testing] -- Namespace API objects now have a `kubernetes.io/metadata.name` label matching their metadata.name field to allow selecting any namespace by its name using a label selector. ([#96968](https://github.com/kubernetes/kubernetes/pull/96968), [@jayunit100](https://github.com/jayunit100)) [SIG API Machinery, Apps, Cloud Provider, Storage and Testing] -- One new field "InternalTrafficPolicy" in Service is added. - It specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only. - "Cluster" routes internal traffic to a Service to all endpoints. - "Local" routes traffic to node-local endpoints only, and traffic is dropped if no node-local endpoints are ready. - The default value is "Cluster". ([#96600](https://github.com/kubernetes/kubernetes/pull/96600), [@maplain](https://github.com/maplain)) [SIG API Machinery, Apps and Network] -- PodDisruptionBudget API objects can now contain conditions in status. ([#98127](https://github.com/kubernetes/kubernetes/pull/98127), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] -- PodSecurityPolicy only stores "generic" as allowed volume type if the GenericEphemeralVolume feature gate is enabled ([#98918](https://github.com/kubernetes/kubernetes/pull/98918), [@pohly](https://github.com/pohly)) [SIG Auth and Security] -- Promote CronJobs to batch/v1 ([#99423](https://github.com/kubernetes/kubernetes/pull/99423), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps, CLI and Testing] -- Promote Immutable Secrets/ConfigMaps feature to Stable. This allows to set `immutable` field in Secret or ConfigMap object to mark their contents as immutable. ([#97615](https://github.com/kubernetes/kubernetes/pull/97615), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps, Architecture, Node and Testing] -- Remove support for building Kubernetes with bazel. ([#99561](https://github.com/kubernetes/kubernetes/pull/99561), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows] -- Scheduler extender filter interface now can report unresolvable failed nodes in the new field `FailedAndUnresolvableNodes` of `ExtenderFilterResult` struct. Nodes in this map will be skipped in the preemption phase. ([#92866](https://github.com/kubernetes/kubernetes/pull/92866), [@cofyc](https://github.com/cofyc)) [SIG Scheduling] -- Services can specify loadBalancerClass to use a custom load balancer ([#98277](https://github.com/kubernetes/kubernetes/pull/98277), [@XudongLiuHarold](https://github.com/XudongLiuHarold)) -- Storage capacity tracking (= the CSIStorageCapacity feature) graduates to Beta and enabled by default, storage.k8s.io/v1alpha1/VolumeAttachment and storage.k8s.io/v1alpha1/CSIStorageCapacity objects are deprecated ([#99641](https://github.com/kubernetes/kubernetes/pull/99641), [@pohly](https://github.com/pohly)) -- Support for Indexed Job: a Job that is considered completed when Pods associated to indexes from 0 to (.spec.completions-1) have succeeded. ([#98812](https://github.com/kubernetes/kubernetes/pull/98812), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps and CLI] -- The BoundServiceAccountTokenVolume feature has been promoted to beta, and enabled by default. - - This changes the tokens provided to containers at `/var/run/secrets/kubernetes.io/serviceaccount/token` to be time-limited, auto-refreshed, and invalidated when the containing pod is deleted. - - Clients should reload the token from disk periodically (once per minute is recommended) to ensure they continue to use a valid token. `k8s.io/client-go` version v11.0.0+ and v0.15.0+ reload tokens automatically. - - By default, injected tokens are given an extended lifetime so they remain valid even after a new refreshed token is provided. The metric `serviceaccount_stale_tokens_total` can be used to monitor for workloads that are depending on the extended lifetime and are continuing to use tokens even after a refreshed token is provided to the container. If that metric indicates no existing workloads are depending on extended lifetimes, injected token lifetime can be shortened to 1 hour by starting `kube-apiserver` with `--service-account-extend-token-expiration=false`. ([#95667](https://github.com/kubernetes/kubernetes/pull/95667), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Cluster Lifecycle and Testing] -- The EndpointSlice Controllers are now GA. The `EndpointSliceController` will not populate the `deprecatedTopology` field and will only provide topology information through the `zone` and `nodeName` fields. ([#99870](https://github.com/kubernetes/kubernetes/pull/99870), [@swetharepakula](https://github.com/swetharepakula)) -- The Endpoints controller will now set the `endpoints.kubernetes.io/over-capacity` annotation to "warning" when an Endpoints resource contains more than 1000 addresses. In a future release, the controller will truncate Endpoints that exceed this limit. The EndpointSlice API can be used to support significantly larger number of addresses. ([#99975](https://github.com/kubernetes/kubernetes/pull/99975), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- The PodDisruptionBudget API has been promoted to policy/v1 with no schema changes. The only functional change is that an empty selector (`{}`) written to a policy/v1 PodDisruptionBudget now selects all pods in the namespace. The behavior of the policy/v1beta1 API remains unchanged. The policy/v1beta1 PodDisruptionBudget API is deprecated and will no longer be served in 1.25+. ([#99290](https://github.com/kubernetes/kubernetes/pull/99290), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Scheduling and Testing] -- The `EndpointSlice` API is now GA. The `EndpointSlice` topology field has been removed from the GA API and will be replaced by a new per Endpoint Zone field. If the topology field was previously used, it will be converted into an annotation in the v1 Resource. The `discovery.k8s.io/v1alpha1` API is removed. ([#99662](https://github.com/kubernetes/kubernetes/pull/99662), [@swetharepakula](https://github.com/swetharepakula)) -- The `controller.kubernetes.io/pod-deletion-cost` annotation can be set to offer a hint on the cost of deleting a `Pod` compared to other pods belonging to the same ReplicaSet. Pods with lower deletion cost are deleted first. This is an alpha feature. ([#99163](https://github.com/kubernetes/kubernetes/pull/99163), [@ahg-g](https://github.com/ahg-g)) -- The kube-apiserver now resets `managedFields` that got corrupted by a mutating admission controller. ([#98074](https://github.com/kubernetes/kubernetes/pull/98074), [@kwiesmueller](https://github.com/kwiesmueller)) -- Topology Aware Hints are now available in alpha and can be enabled with the `TopologyAwareHints` feature gate. ([#99522](https://github.com/kubernetes/kubernetes/pull/99522), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps, Auth, Instrumentation, Network and Testing] -- Users might specify the `kubectl.kubernetes.io/default-exec-container` annotation in a Pod to preselect container for kubectl commands. ([#97099](https://github.com/kubernetes/kubernetes/pull/97099), [@pacoxu](https://github.com/pacoxu)) [SIG CLI] - -### Feature - -- A client-go metric, rest_client_exec_plugin_call_total, has been added to track total calls to client-go credential plugins. ([#98892](https://github.com/kubernetes/kubernetes/pull/98892), [@ankeesler](https://github.com/ankeesler)) [SIG API Machinery, Auth, Cluster Lifecycle and Instrumentation] -- A new histogram metric to track the time it took to delete a job by the `TTLAfterFinished` controller ([#98676](https://github.com/kubernetes/kubernetes/pull/98676), [@ahg-g](https://github.com/ahg-g)) -- AWS cloud provider supports auto-discovering subnets without any `kubernetes.io/cluster/<clusterName>` tags. It also supports additional service annotation `service.beta.kubernetes.io/aws-load-balancer-subnets` to manually configure the subnets. ([#97431](https://github.com/kubernetes/kubernetes/pull/97431), [@kishorj](https://github.com/kishorj)) -- Aborting the drain command in a list of nodes will be deprecated. The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain. For now, users can try such experience by enabling --ignore-errors flag. ([#98203](https://github.com/kubernetes/kubernetes/pull/98203), [@yuzhiquan](https://github.com/yuzhiquan)) -- Add --permit-address-sharing flag to `kube-apiserver` to listen with `SO_REUSEADDR`. While allowing to listen on wildcard IPs like 0.0.0.0 and specific IPs in parallel, it avoids waiting for the kernel to release socket in `TIME_WAIT` state, and hence, considerably reducing `kube-apiserver` restart times under certain conditions. ([#93861](https://github.com/kubernetes/kubernetes/pull/93861), [@sttts](https://github.com/sttts)) -- Add `csi_operations_seconds` metric on kubelet that exposes CSI operations duration and status for node CSI operations. ([#98979](https://github.com/kubernetes/kubernetes/pull/98979), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Instrumentation and Storage] -- Add `migrated` field into `storage_operation_duration_seconds` metric ([#99050](https://github.com/kubernetes/kubernetes/pull/99050), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps, Instrumentation and Storage] -- Add flag --lease-reuse-duration-seconds for kube-apiserver to config etcd lease reuse duration. ([#97009](https://github.com/kubernetes/kubernetes/pull/97009), [@lingsamuel](https://github.com/lingsamuel)) [SIG API Machinery and Scalability] -- Add metric etcd_lease_object_counts for kube-apiserver to observe max objects attached to a single etcd lease. ([#97480](https://github.com/kubernetes/kubernetes/pull/97480), [@lingsamuel](https://github.com/lingsamuel)) [SIG API Machinery, Instrumentation and Scalability] -- Add support to generate client-side binaries for new darwin/arm64 platform ([#97743](https://github.com/kubernetes/kubernetes/pull/97743), [@dims](https://github.com/dims)) [SIG Release and Testing] -- Added `ephemeral_volume_controller_create[_failures]_total` counters to kube-controller-manager metrics ([#99115](https://github.com/kubernetes/kubernetes/pull/99115), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Cluster Lifecycle, Instrumentation and Storage] -- Added support for installing `arm64` node artifacts. ([#99242](https://github.com/kubernetes/kubernetes/pull/99242), [@liu-cong](https://github.com/liu-cong)) -- Adds alpha feature `VolumeCapacityPriority` which makes the scheduler prioritize nodes based on the best matching size of statically provisioned PVs across multiple topologies. ([#96347](https://github.com/kubernetes/kubernetes/pull/96347), [@cofyc](https://github.com/cofyc)) [SIG Apps, Network, Scheduling, Storage and Testing] -- Adds the ability to pass --strict-transport-security-directives to the kube-apiserver to set the HSTS header appropriately. Be sure you understand the consequences to browsers before setting this field. ([#96502](https://github.com/kubernetes/kubernetes/pull/96502), [@249043822](https://github.com/249043822)) [SIG Auth] -- Adds two new metrics to cronjobs, a histogram to track the time difference when a job is created and the expected time when it should be created, as well as a gauge for the missed schedules of a cronjob ([#99341](https://github.com/kubernetes/kubernetes/pull/99341), [@alaypatel07](https://github.com/alaypatel07)) -- Alpha implementation of Kubectl Command Headers: SIG CLI KEP 859 enabled when KUBECTL_COMMAND_HEADERS environment variable set on the client command line. ([#98952](https://github.com/kubernetes/kubernetes/pull/98952), [@seans3](https://github.com/seans3)) -- Base-images: Update to debian-iptables:buster-v1.4.0 - - Uses iptables 1.8.5 - - base-images: Update to debian-base:buster-v1.3.0 - - cluster/images/etcd: Build etcd:3.4.13-2 image - - Uses debian-base:buster-v1.3.0 ([#98401](https://github.com/kubernetes/kubernetes/pull/98401), [@pacoxu](https://github.com/pacoxu)) [SIG Testing] -- CRIContainerLogRotation graduates to GA and unconditionally enabled. ([#99651](https://github.com/kubernetes/kubernetes/pull/99651), [@umohnani8](https://github.com/umohnani8)) -- Component owner can configure the allowlist of metric label with flag '--allow-metric-labels'. ([#99385](https://github.com/kubernetes/kubernetes/pull/99385), [@YoyinZyc](https://github.com/YoyinZyc)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Release] -- Component owner can configure the allowlist of metric label with flag '--allow-metric-labels'. ([#99738](https://github.com/kubernetes/kubernetes/pull/99738), [@YoyinZyc](https://github.com/YoyinZyc)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] -- EmptyDir memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value. ([#100319](https://github.com/kubernetes/kubernetes/pull/100319), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node] -- Enables Kubelet to check volume condition and log events to corresponding pods. ([#99284](https://github.com/kubernetes/kubernetes/pull/99284), [@fengzixu](https://github.com/fengzixu)) [SIG Apps, Instrumentation, Node and Storage] -- EndpointSliceNodeName graduates to GA and thus will be unconditionally enabled -- NodeName will always be available in the v1beta1 API. ([#99746](https://github.com/kubernetes/kubernetes/pull/99746), [@swetharepakula](https://github.com/swetharepakula)) -- Export `NewDebuggingRoundTripper` function and `DebugLevel` options in the k8s.io/client-go/transport package. ([#98324](https://github.com/kubernetes/kubernetes/pull/98324), [@atosatto](https://github.com/atosatto)) -- Kube-proxy iptables: new metric sync_proxy_rules_iptables_total that exposes the number of rules programmed per table in each iteration ([#99653](https://github.com/kubernetes/kubernetes/pull/99653), [@aojea](https://github.com/aojea)) [SIG Instrumentation and Network] -- Kube-scheduler now logs plugin scoring summaries at --v=4 ([#99411](https://github.com/kubernetes/kubernetes/pull/99411), [@damemi](https://github.com/damemi)) [SIG Scheduling] -- Kubeadm now includes CoreDNS v1.8.0. ([#96429](https://github.com/kubernetes/kubernetes/pull/96429), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] -- Kubeadm: IPv6DualStack feature gate graduates to Beta and enabled by default ([#99294](https://github.com/kubernetes/kubernetes/pull/99294), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: a warning to user as ipv6 site-local is deprecated ([#99574](https://github.com/kubernetes/kubernetes/pull/99574), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle and Network] -- Kubeadm: add support for certificate chain validation. When using kubeadm in external CA mode, this allows an intermediate CA to be used to sign the certificates. The intermediate CA certificate must be appended to each signed certificate for this to work correctly. ([#97266](https://github.com/kubernetes/kubernetes/pull/97266), [@robbiemcmichael](https://github.com/robbiemcmichael)) [SIG Cluster Lifecycle] -- Kubeadm: amend the node kernel validation to treat CGROUP_PIDS, FAIR_GROUP_SCHED as required and CFS_BANDWIDTH, CGROUP_HUGETLB as optional ([#96378](https://github.com/kubernetes/kubernetes/pull/96378), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] -- Kubeadm: apply the "node.kubernetes.io/exclude-from-external-load-balancers" label on control plane nodes during "init", "join" and "upgrade" to preserve backwards compatibility with the lagacy LB mode where nodes labeled as "master" where excluded. To opt-out you can remove the label from a node. See #97543 and the linked KEP for more details. ([#98269](https://github.com/kubernetes/kubernetes/pull/98269), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: if the user has customized their image repository via the kubeadm configuration, pass the custom pause image repository and tag to the kubelet via --pod-infra-container-image not only for Docker but for all container runtimes. This flag tells the kubelet that it should not garbage collect the image. ([#99476](https://github.com/kubernetes/kubernetes/pull/99476), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: perform pre-flight validation on host/node name upon `kubeadm init` and `kubeadm join`, showing warnings on non-compliant names ([#99194](https://github.com/kubernetes/kubernetes/pull/99194), [@pacoxu](https://github.com/pacoxu)) -- Kubectl version changed to write a warning message to stderr if the client and server version difference exceeds the supported version skew of +/-1 minor version. ([#98250](https://github.com/kubernetes/kubernetes/pull/98250), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] -- Kubectl: Add `--use-protocol-buffers` flag to kubectl top pods and nodes. ([#96655](https://github.com/kubernetes/kubernetes/pull/96655), [@serathius](https://github.com/serathius)) -- Kubectl: `kubectl get` will omit managed fields by default now. Users could set `--show-managed-fields` to true to show managedFields when the output format is either `json` or `yaml`. ([#96878](https://github.com/kubernetes/kubernetes/pull/96878), [@knight42](https://github.com/knight42)) [SIG CLI and Testing] -- Kubectl: a Pod can be preselected as default container using `kubectl.kubernetes.io/default-container` annotation ([#99833](https://github.com/kubernetes/kubernetes/pull/99833), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Kubectl: add bash-completion for comma separated list on `kubectl get` ([#98301](https://github.com/kubernetes/kubernetes/pull/98301), [@phil9909](https://github.com/phil9909)) -- Kubernetes is now built using go1.15.8 ([#98834](https://github.com/kubernetes/kubernetes/pull/98834), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing] -- Kubernetes is now built with Golang 1.16 ([#98572](https://github.com/kubernetes/kubernetes/pull/98572), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Release and Testing] -- Kubernetes is now built with Golang 1.16.1 ([#100106](https://github.com/kubernetes/kubernetes/pull/100106), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing] -- Metrics can now be disabled explicitly via a command line flag (i.e. '--disabled-metrics=metric1,metric2') ([#99217](https://github.com/kubernetes/kubernetes/pull/99217), [@logicalhan](https://github.com/logicalhan)) -- New admission controller `DenyServiceExternalIPs` is available. Clusters which do not *need* the Service `externalIPs` feature should enable this controller and be more secure. ([#97395](https://github.com/kubernetes/kubernetes/pull/97395), [@thockin](https://github.com/thockin)) -- Overall, enable the feature of `PreferNominatedNode` will improve the performance of scheduling where preemption might frequently happen, but in theory, enable the feature of `PreferNominatedNode`, the pod might not be scheduled to the best candidate node in the cluster. ([#93179](https://github.com/kubernetes/kubernetes/pull/93179), [@chendave](https://github.com/chendave)) [SIG Scheduling and Testing] -- Persistent Volumes formatted with the btrfs filesystem will now automatically resize when expanded. ([#99361](https://github.com/kubernetes/kubernetes/pull/99361), [@Novex](https://github.com/Novex)) [SIG Storage] -- Port the devicemanager to Windows node to allow device plugins like directx ([#93285](https://github.com/kubernetes/kubernetes/pull/93285), [@aarnaud](https://github.com/aarnaud)) [SIG Node, Testing and Windows] -- Removes cAdvisor JSON metrics (/stats/container, /stats/<podname>/<containername>, /stats/<namespace>/<podname>/<poduid>/<containername>) from the kubelet. ([#99236](https://github.com/kubernetes/kubernetes/pull/99236), [@pacoxu](https://github.com/pacoxu)) -- Rename metrics `etcd_object_counts` to `apiserver_storage_object_counts` and mark it as stable. The original `etcd_object_counts` metrics name is marked as "Deprecated" and will be removed in the future. ([#99785](https://github.com/kubernetes/kubernetes/pull/99785), [@erain](https://github.com/erain)) [SIG API Machinery, Instrumentation and Testing] -- Sysctls graduates to General Availability and thus unconditionally enabled. ([#99158](https://github.com/kubernetes/kubernetes/pull/99158), [@wgahnagl](https://github.com/wgahnagl)) -- The Kubernetes pause image manifest list now contains an image for Windows Server 20H2. ([#97322](https://github.com/kubernetes/kubernetes/pull/97322), [@claudiubelu](https://github.com/claudiubelu)) [SIG Windows] -- The NodeAffinity plugin implements the PreFilter extension, offering enhanced performance for Filter. ([#99213](https://github.com/kubernetes/kubernetes/pull/99213), [@AliceZhang2016](https://github.com/AliceZhang2016)) [SIG Scheduling] -- The `CronJobControllerV2` feature flag graduates to Beta and set to be enabled by default. ([#98878](https://github.com/kubernetes/kubernetes/pull/98878), [@soltysh](https://github.com/soltysh)) -- The `EndpointSlice` mirroring controller mirrors endpoints annotations and labels to the generated endpoint slices, it also ensures that updates on any of these fields are mirrored. - The well-known annotation `endpoints.kubernetes.io/last-change-trigger-time` is skipped and not mirrored. ([#98116](https://github.com/kubernetes/kubernetes/pull/98116), [@aojea](https://github.com/aojea)) -- The `RunAsGroup` feature has been promoted to GA in this release. ([#94641](https://github.com/kubernetes/kubernetes/pull/94641), [@krmayankk](https://github.com/krmayankk)) [SIG Auth and Node] -- The `ServiceAccountIssuerDiscovery` feature has graduated to GA, and is unconditionally enabled. The `ServiceAccountIssuerDiscovery` feature-gate will be removed in 1.22. ([#98553](https://github.com/kubernetes/kubernetes/pull/98553), [@mtaufen](https://github.com/mtaufen)) [SIG API Machinery, Auth and Testing] -- The `TTLAfterFinished` feature flag is now beta and enabled by default ([#98678](https://github.com/kubernetes/kubernetes/pull/98678), [@ahg-g](https://github.com/ahg-g)) -- The apimachinery util/net function used to detect the bind address `ResolveBindAddress()` takes into consideration global IP addresses on loopback interfaces when 1) the host has default routes, or 2) there are no global IPs on those interfaces in order to support more complex network scenarios like BGP Unnumbered RFC 5549 ([#95790](https://github.com/kubernetes/kubernetes/pull/95790), [@aojea](https://github.com/aojea)) [SIG Network] -- The feature gate `RootCAConfigMap` graduated to GA in v1.21 and therefore will be unconditionally enabled. This flag will be removed in v1.22 release. ([#98033](https://github.com/kubernetes/kubernetes/pull/98033), [@zshihang](https://github.com/zshihang)) -- The pause image upgraded to `v3.4.1` in kubelet and kubeadm for both Linux and Windows. ([#98205](https://github.com/kubernetes/kubernetes/pull/98205), [@pacoxu](https://github.com/pacoxu)) -- Update pause container to run as pseudo user and group `65535:65535`. This implies the release of version 3.5 of the container images. ([#97963](https://github.com/kubernetes/kubernetes/pull/97963), [@saschagrunert](https://github.com/saschagrunert)) [SIG CLI, Cloud Provider, Cluster Lifecycle, Node, Release, Security and Testing] -- Update the latest validated version of Docker to 20.10 ([#98977](https://github.com/kubernetes/kubernetes/pull/98977), [@neolit123](https://github.com/neolit123)) [SIG CLI, Cluster Lifecycle and Node] -- Upgrade node local dns to 1.17.0 for better IPv6 support ([#99749](https://github.com/kubernetes/kubernetes/pull/99749), [@pacoxu](https://github.com/pacoxu)) [SIG Cloud Provider and Network] -- Upgrades `IPv6Dualstack` to `Beta` and turns it on by default. New clusters or existing clusters are not be affected until an actor starts adding secondary Pods and service CIDRS CLI flags as described here: [IPv4/IPv6 Dual-stack](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack) ([#98969](https://github.com/kubernetes/kubernetes/pull/98969), [@khenidak](https://github.com/khenidak)) -- Users might specify the `kubectl.kubernetes.io/default-container` annotation in a Pod to preselect container for kubectl commands. ([#99581](https://github.com/kubernetes/kubernetes/pull/99581), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG CLI] -- When downscaling ReplicaSets, ready and creation timestamps are compared in a logarithmic scale. ([#99212](https://github.com/kubernetes/kubernetes/pull/99212), [@damemi](https://github.com/damemi)) [SIG Apps and Testing] -- When the kubelet is watching a ConfigMap or Secret purely in the context of setting environment variables - for containers, only hold that watch for a defined duration before cancelling it. This change reduces the CPU - and memory usage of the kube-apiserver in large clusters. ([#99393](https://github.com/kubernetes/kubernetes/pull/99393), [@chenyw1990](https://github.com/chenyw1990)) [SIG API Machinery, Node and Testing] -- WindowsEndpointSliceProxying feature gate has graduated to beta and is enabled by default. This means kube-proxy will read from EndpointSlices instead of Endpoints on Windows by default. ([#99794](https://github.com/kubernetes/kubernetes/pull/99794), [@robscott](https://github.com/robscott)) [SIG Network] -- `kubectl wait` ensures that observedGeneration >= generation to prevent stale state reporting. An example scenario can be found on CRD updates. ([#97408](https://github.com/kubernetes/kubernetes/pull/97408), [@KnicKnic](https://github.com/KnicKnic)) - -### Documentation - -- Azure file migration graduates to beta, with CSIMigrationAzureFile flag off by default - as it requires installation of AzureFile CSI Driver. Users should enable CSIMigration and - CSIMigrationAzureFile features and install the [AzureFile CSI Driver](https://github.com/kubernetes-sigs/azurefile-csi-driver) - to avoid disruption to existing Pod and PVC objects at that time. Azure File CSI driver does not support using same persistent - volume with different fsgroups. When CSI migration is enabled for azurefile driver, such case is not supported. - (there is a case we support where volume is mounted with 0777 and then it readable/writable by everyone) ([#96293](https://github.com/kubernetes/kubernetes/pull/96293), [@andyzhangx](https://github.com/andyzhangx)) -- Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97935](https://github.com/kubernetes/kubernetes/pull/97935), [@adeniyistephen](https://github.com/adeniyistephen)) [SIG Release and Testing] -- Set kubelet option `--volume-stats-agg-period` to negative value to disable volume calculations. ([#96675](https://github.com/kubernetes/kubernetes/pull/96675), [@pacoxu](https://github.com/pacoxu)) [SIG Node] - -### Failing Test - -- Escape the special characters like `[`, `]` and ` ` that exist in vsphere windows path ([#98830](https://github.com/kubernetes/kubernetes/pull/98830), [@liyanhui1228](https://github.com/liyanhui1228)) [SIG Storage and Windows] -- Kube-proxy: fix a bug on UDP `NodePort` Services where stale connection tracking entries may blackhole the traffic directed to the `NodePort` ([#98305](https://github.com/kubernetes/kubernetes/pull/98305), [@aojea](https://github.com/aojea)) -- Kubelet: fixes a bug in the HostPort dockershim implementation that caused the conformance test "HostPort validates that there is no conflict between pods with same hostPort but different hostIP and protocol" to fail. ([#98755](https://github.com/kubernetes/kubernetes/pull/98755), [@aojea](https://github.com/aojea)) [SIG Cloud Provider, Network and Node] - -### Bug or Regression - -- AcceleratorStats will be available in the Summary API of kubelet when cri_stats_provider is used. ([#96873](https://github.com/kubernetes/kubernetes/pull/96873), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) [SIG Node] -- All data is no longer automatically deleted when a failure is detected during creation of the volume data file on a CSI volume. Now only the data file and volume path is removed. ([#96021](https://github.com/kubernetes/kubernetes/pull/96021), [@huffmanca](https://github.com/huffmanca)) -- Clean ReplicaSet by revision instead of creation timestamp in deployment controller ([#97407](https://github.com/kubernetes/kubernetes/pull/97407), [@waynepeking348](https://github.com/waynepeking348)) [SIG Apps] -- Cleanup subnet in frontend IP configs to prevent huge subnet request bodies in some scenarios. ([#98133](https://github.com/kubernetes/kubernetes/pull/98133), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Client-go exec credential plugins will pass stdin only when interactive terminal is detected on stdin. This fixes a bug where previously it was checking if **stdout** is an interactive terminal. ([#99654](https://github.com/kubernetes/kubernetes/pull/99654), [@ankeesler](https://github.com/ankeesler)) -- Cloud-controller-manager: routes controller should not depend on --allocate-node-cidrs ([#97029](https://github.com/kubernetes/kubernetes/pull/97029), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider and Testing] -- Cluster Autoscaler version bump to v1.20.0 ([#97011](https://github.com/kubernetes/kubernetes/pull/97011), [@towca](https://github.com/towca)) -- Creating a PVC with DataSource should fail for non-CSI plugins. ([#97086](https://github.com/kubernetes/kubernetes/pull/97086), [@xing-yang](https://github.com/xing-yang)) [SIG Apps and Storage] -- EndpointSlice controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#99345](https://github.com/kubernetes/kubernetes/pull/99345), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- EndpointSlice controllers are less likely to create duplicate EndpointSlices. ([#100103](https://github.com/kubernetes/kubernetes/pull/100103), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- EndpointSliceMirroring controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#99756](https://github.com/kubernetes/kubernetes/pull/99756), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- Ensure all vSphere nodes are are tracked by volume attach-detach controller ([#96689](https://github.com/kubernetes/kubernetes/pull/96689), [@gnufied](https://github.com/gnufied)) -- Ensure empty string annotations are copied over in rollbacks. ([#94858](https://github.com/kubernetes/kubernetes/pull/94858), [@waynepeking348](https://github.com/waynepeking348)) -- Ensure only one LoadBalancer rule is created when HA mode is enabled ([#99825](https://github.com/kubernetes/kubernetes/pull/99825), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Ensure that client-go's EventBroadcaster is safe (non-racy) during shutdown. ([#95664](https://github.com/kubernetes/kubernetes/pull/95664), [@DirectXMan12](https://github.com/DirectXMan12)) [SIG API Machinery] -- Explicitly pass `KUBE_BUILD_CONFORMANCE=y` in `package-tarballs` to reenable building the conformance tarballs. ([#100571](https://github.com/kubernetes/kubernetes/pull/100571), [@puerco](https://github.com/puerco)) -- Fix Azure file migration e2e test failure when CSIMigration is turned on. ([#97877](https://github.com/kubernetes/kubernetes/pull/97877), [@andyzhangx](https://github.com/andyzhangx)) -- Fix CSI-migrated inline EBS volumes failing to mount if their volumeID is prefixed by aws:// ([#96821](https://github.com/kubernetes/kubernetes/pull/96821), [@wongma7](https://github.com/wongma7)) [SIG Storage] -- Fix CVE-2020-8555 for Gluster client connections. ([#97922](https://github.com/kubernetes/kubernetes/pull/97922), [@liggitt](https://github.com/liggitt)) [SIG Storage] -- Fix NPE in ephemeral storage eviction ([#98261](https://github.com/kubernetes/kubernetes/pull/98261), [@wzshiming](https://github.com/wzshiming)) [SIG Node] -- Fix PermissionDenied issue on SMB mount for Windows ([#99550](https://github.com/kubernetes/kubernetes/pull/99550), [@andyzhangx](https://github.com/andyzhangx)) -- Fix bug that would let the Horizontal Pod Autoscaler scale down despite at least one metric being unavailable/invalid ([#99514](https://github.com/kubernetes/kubernetes/pull/99514), [@mikkeloscar](https://github.com/mikkeloscar)) [SIG Apps and Autoscaling] -- Fix cgroup handling for systemd with cgroup v2 ([#98365](https://github.com/kubernetes/kubernetes/pull/98365), [@odinuge](https://github.com/odinuge)) [SIG Node] -- Fix counting error in service/nodeport/loadbalancer quota check ([#97451](https://github.com/kubernetes/kubernetes/pull/97451), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery, Network and Testing] -- Fix errors when accessing Windows container stats for Dockershim ([#98510](https://github.com/kubernetes/kubernetes/pull/98510), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows] -- Fix kube-proxy container image architecture for non amd64 images. ([#98526](https://github.com/kubernetes/kubernetes/pull/98526), [@saschagrunert](https://github.com/saschagrunert)) -- Fix missing cadvisor machine metrics. ([#97006](https://github.com/kubernetes/kubernetes/pull/97006), [@lingsamuel](https://github.com/lingsamuel)) [SIG Node] -- Fix nil VMSS name when setting service to auto mode ([#97366](https://github.com/kubernetes/kubernetes/pull/97366), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Fix privileged config of Pod Sandbox which was previously ignored. ([#96877](https://github.com/kubernetes/kubernetes/pull/96877), [@xeniumlee](https://github.com/xeniumlee)) -- Fix the panic when kubelet registers if a node object already exists with no Status.Capacity or Status.Allocatable ([#95269](https://github.com/kubernetes/kubernetes/pull/95269), [@SataQiu](https://github.com/SataQiu)) [SIG Node] -- Fix the regression with the slow pods termination. Before this fix pods may take an additional time to terminate - up to one minute. Reversing the change that ensured that CNI resources cleaned up when the pod is removed on API server. ([#97980](https://github.com/kubernetes/kubernetes/pull/97980), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node] -- Fix to recover CSI volumes from certain dangling attachments ([#96617](https://github.com/kubernetes/kubernetes/pull/96617), [@yuga711](https://github.com/yuga711)) [SIG Apps and Storage] -- Fix: azure file latency issue for metadata-heavy workloads ([#97082](https://github.com/kubernetes/kubernetes/pull/97082), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fixed Cinder volume IDs on OpenStack Train ([#96673](https://github.com/kubernetes/kubernetes/pull/96673), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider] -- Fixed FibreChannel volume plugin corrupting filesystems on detach of multipath volumes. ([#97013](https://github.com/kubernetes/kubernetes/pull/97013), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] -- Fixed a bug in kubelet that will saturate CPU utilization after containerd got restarted. ([#97174](https://github.com/kubernetes/kubernetes/pull/97174), [@hanlins](https://github.com/hanlins)) [SIG Node] -- Fixed a bug that causes smaller number of conntrack-max being used under CPU static policy. (#99225, @xh4n3) ([#99613](https://github.com/kubernetes/kubernetes/pull/99613), [@xh4n3](https://github.com/xh4n3)) [SIG Network] -- Fixed a bug that on k8s nodes, when the policy of INPUT chain in filter table is not ACCEPT, healthcheck nodeport would not work. - Added iptables rules to allow healthcheck nodeport traffic. ([#97824](https://github.com/kubernetes/kubernetes/pull/97824), [@hanlins](https://github.com/hanlins)) [SIG Network] -- Fixed a bug that the kubelet cannot start on BtrfS. ([#98042](https://github.com/kubernetes/kubernetes/pull/98042), [@gjkim42](https://github.com/gjkim42)) [SIG Node] -- Fixed a race condition on API server startup ensuring previously created webhook configurations are effective before the first write request is admitted. ([#95783](https://github.com/kubernetes/kubernetes/pull/95783), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery] -- Fixed an issue with garbage collection failing to clean up namespaced children of an object also referenced incorrectly by cluster-scoped children ([#98068](https://github.com/kubernetes/kubernetes/pull/98068), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps] -- Fixed authentication_duration_seconds metric scope. Previously, it included whole apiserver request duration which yields inaccurate results. ([#99944](https://github.com/kubernetes/kubernetes/pull/99944), [@marseel](https://github.com/marseel)) -- Fixed bug in CPUManager with race on container map access ([#97427](https://github.com/kubernetes/kubernetes/pull/97427), [@klueska](https://github.com/klueska)) [SIG Node] -- Fixed bug that caused cAdvisor to incorrectly detect single-socket multi-NUMA topology. ([#99315](https://github.com/kubernetes/kubernetes/pull/99315), [@iwankgb](https://github.com/iwankgb)) [SIG Node] -- Fixed cleanup of block devices when /var/lib/kubelet is a symlink. ([#96889](https://github.com/kubernetes/kubernetes/pull/96889), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] -- Fixed no effect namespace when exposing deployment with --dry-run=client. ([#97492](https://github.com/kubernetes/kubernetes/pull/97492), [@masap](https://github.com/masap)) [SIG CLI] -- Fixed provisioning of Cinder volumes migrated to CSI when StorageClass with AllowedTopologies was used. ([#98311](https://github.com/kubernetes/kubernetes/pull/98311), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] -- Fixes a bug of identifying the correct containerd process. ([#97888](https://github.com/kubernetes/kubernetes/pull/97888), [@pacoxu](https://github.com/pacoxu)) -- Fixes add-on manager leader election to use leases instead of endpoints, similar to what kube-controller-manager does in 1.20 ([#98968](https://github.com/kubernetes/kubernetes/pull/98968), [@liggitt](https://github.com/liggitt)) -- Fixes connection errors when using `--volume-host-cidr-denylist` or `--volume-host-allow-local-loopback` ([#98436](https://github.com/kubernetes/kubernetes/pull/98436), [@liggitt](https://github.com/liggitt)) [SIG Network and Storage] -- Fixes problem where invalid selector on `PodDisruptionBudget` leads to a nil pointer dereference that causes the Controller manager to crash loop. ([#98750](https://github.com/kubernetes/kubernetes/pull/98750), [@mortent](https://github.com/mortent)) -- Fixes spurious errors about IPv6 in `kube-proxy` logs on nodes with IPv6 disabled. ([#99127](https://github.com/kubernetes/kubernetes/pull/99127), [@danwinship](https://github.com/danwinship)) -- Fixing a bug where a failed node may not have the NoExecute taint set correctly ([#96876](https://github.com/kubernetes/kubernetes/pull/96876), [@howieyuen](https://github.com/howieyuen)) [SIG Apps and Node] -- GCE Internal LoadBalancer sync loop will now release the ILB IP address upon sync failure. An error in ILB forwarding rule creation will no longer leak IP addresses. ([#97740](https://github.com/kubernetes/kubernetes/pull/97740), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider and Network] -- Ignore update pod with no new images in alwaysPullImages admission controller ([#96668](https://github.com/kubernetes/kubernetes/pull/96668), [@pacoxu](https://github.com/pacoxu)) [SIG Apps, Auth and Node] -- Improve speed of vSphere PV provisioning and reduce number of API calls ([#100054](https://github.com/kubernetes/kubernetes/pull/100054), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage] -- KUBECTL_EXTERNAL_DIFF now accepts equal sign for additional parameters. ([#98158](https://github.com/kubernetes/kubernetes/pull/98158), [@dougsland](https://github.com/dougsland)) [SIG CLI] -- Kube-apiserver: an update of a pod with a generic ephemeral volume dropped that volume if the feature had been disabled since creating the pod with such a volume ([#99446](https://github.com/kubernetes/kubernetes/pull/99446), [@pohly](https://github.com/pohly)) [SIG Apps, Node and Storage] -- Kube-proxy: remove deprecated --cleanup-ipvs flag of kube-proxy, and make --cleanup flag always to flush IPVS ([#97336](https://github.com/kubernetes/kubernetes/pull/97336), [@maaoBit](https://github.com/maaoBit)) [SIG Network] -- Kubeadm installs etcd v3.4.13 when creating cluster v1.19 ([#97244](https://github.com/kubernetes/kubernetes/pull/97244), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: Fixes a kubeadm upgrade bug that could cause a custom CoreDNS configuration to be replaced with the default. ([#97016](https://github.com/kubernetes/kubernetes/pull/97016), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] -- Kubeadm: Some text in the `kubeadm upgrade plan` output has changed. If you have scripts or other automation that parses this output, please review these changes and update your scripts to account for the new output. ([#98728](https://github.com/kubernetes/kubernetes/pull/98728), [@stmcginnis](https://github.com/stmcginnis)) [SIG Cluster Lifecycle] -- Kubeadm: fix a bug in the host memory detection code on 32bit Linux platforms ([#97403](https://github.com/kubernetes/kubernetes/pull/97403), [@abelbarrera15](https://github.com/abelbarrera15)) [SIG Cluster Lifecycle] -- Kubeadm: fix a bug where "kubeadm join" would not properly handle missing names for existing etcd members. ([#97372](https://github.com/kubernetes/kubernetes/pull/97372), [@ihgann](https://github.com/ihgann)) [SIG Cluster Lifecycle] -- Kubeadm: fix a bug where "kubeadm upgrade" commands can fail if CoreDNS v1.8.0 is installed. ([#97919](https://github.com/kubernetes/kubernetes/pull/97919), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: fix a bug where external credentials in an existing admin.conf prevented the CA certificate to be written in the cluster-info ConfigMap. ([#98882](https://github.com/kubernetes/kubernetes/pull/98882), [@kvaps](https://github.com/kvaps)) [SIG Cluster Lifecycle] -- Kubeadm: get k8s CI version markers from k8s infra bucket ([#98836](https://github.com/kubernetes/kubernetes/pull/98836), [@hasheddan](https://github.com/hasheddan)) [SIG Cluster Lifecycle and Release] -- Kubeadm: skip validating pod subnet against node-cidr-mask when allocate-node-cidrs is set to be false ([#98984](https://github.com/kubernetes/kubernetes/pull/98984), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubectl logs: `--ignore-errors` is now honored by all containers, maintaining consistency with parallelConsumeRequest behavior. ([#97686](https://github.com/kubernetes/kubernetes/pull/97686), [@wzshiming](https://github.com/wzshiming)) -- Kubectl-convert: Fix `no kind "Ingress" is registered for version` error ([#97754](https://github.com/kubernetes/kubernetes/pull/97754), [@wzshiming](https://github.com/wzshiming)) -- Kubectl: Fixed panic when describing an ingress backend without an API Group ([#100505](https://github.com/kubernetes/kubernetes/pull/100505), [@lauchokyip](https://github.com/lauchokyip)) [SIG CLI] -- Kubelet now cleans up orphaned volume directories automatically ([#95301](https://github.com/kubernetes/kubernetes/pull/95301), [@lorenz](https://github.com/lorenz)) [SIG Node and Storage] -- Kubelet.exe on Windows now checks that the process running as administrator and the executing user account is listed in the built-in administrators group. This is the equivalent to checking the process is running as uid 0. ([#96616](https://github.com/kubernetes/kubernetes/pull/96616), [@perithompson](https://github.com/perithompson)) [SIG Node and Windows] -- Kubelet: Fix kubelet from panic after getting the wrong signal ([#98200](https://github.com/kubernetes/kubernetes/pull/98200), [@wzshiming](https://github.com/wzshiming)) [SIG Node] -- Kubelet: Fix repeatedly acquiring the inhibit lock ([#98088](https://github.com/kubernetes/kubernetes/pull/98088), [@wzshiming](https://github.com/wzshiming)) [SIG Node] -- Kubelet: Fixed the bug of getting the number of cpu when the number of cpu logical processors is more than 64 in windows ([#97378](https://github.com/kubernetes/kubernetes/pull/97378), [@hwdef](https://github.com/hwdef)) [SIG Node and Windows] -- Limits lease to have 1000 maximum attached objects. ([#98257](https://github.com/kubernetes/kubernetes/pull/98257), [@lingsamuel](https://github.com/lingsamuel)) -- Mitigate CVE-2020-8555 for kube-up using GCE by preventing local loopback folume hosts. ([#97934](https://github.com/kubernetes/kubernetes/pull/97934), [@mattcary](https://github.com/mattcary)) [SIG Cloud Provider and Storage] -- On single-stack configured (IPv4 or IPv6, but not both) clusters, Services which are both headless (no clusterIP) and selectorless (empty or undefined selector) will report `ipFamilyPolicy RequireDualStack` and will have entries in `ipFamilies[]` for both IPv4 and IPv6. This is a change from alpha, but does not have any impact on the manually-specified Endpoints and EndpointSlices for the Service. ([#99555](https://github.com/kubernetes/kubernetes/pull/99555), [@thockin](https://github.com/thockin)) [SIG Apps and Network] -- Performance regression #97685 has been fixed. ([#97860](https://github.com/kubernetes/kubernetes/pull/97860), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] -- Pod Log stats for windows now reports metrics ([#99221](https://github.com/kubernetes/kubernetes/pull/99221), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node, Storage, Testing and Windows] -- Pod status updates faster when reacting on probe results. The first readiness probe will be called faster when startup probes succeeded, which will make Pod status as ready faster. ([#98376](https://github.com/kubernetes/kubernetes/pull/98376), [@matthyx](https://github.com/matthyx)) -- Readjust `kubelet_containers_per_pod_count` buckets to only show metrics greater than 1. ([#98169](https://github.com/kubernetes/kubernetes/pull/98169), [@wawa0210](https://github.com/wawa0210)) -- Remove CSI topology from migrated in-tree gcepd volume. ([#97823](https://github.com/kubernetes/kubernetes/pull/97823), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Cloud Provider and Storage] -- Requests with invalid timeout parameters in the request URL now appear in the audit log correctly. ([#96901](https://github.com/kubernetes/kubernetes/pull/96901), [@tkashem](https://github.com/tkashem)) [SIG API Machinery and Testing] -- Resolve a "concurrent map read and map write" crashing error in the kubelet ([#95111](https://github.com/kubernetes/kubernetes/pull/95111), [@choury](https://github.com/choury)) [SIG Node] -- Resolves spurious `Failed to list *v1.Secret` or `Failed to list *v1.ConfigMap` messages in kubelet logs. ([#99538](https://github.com/kubernetes/kubernetes/pull/99538), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node] -- ResourceQuota of an entity now inclusively calculate Pod overhead ([#99600](https://github.com/kubernetes/kubernetes/pull/99600), [@gjkim42](https://github.com/gjkim42)) -- Return zero time (midnight on Jan. 1, 1970) instead of negative number when reporting startedAt and finishedAt of the not started or a running Pod when using `dockershim` as a runtime. ([#99585](https://github.com/kubernetes/kubernetes/pull/99585), [@Iceber](https://github.com/Iceber)) -- Reverts breaking change to inline AzureFile volumes; referenced secrets are now searched for in the same namespace as the pod as in previous releases. ([#100563](https://github.com/kubernetes/kubernetes/pull/100563), [@msau42](https://github.com/msau42)) -- Scores from InterPodAffinity have stronger differentiation. ([#98096](https://github.com/kubernetes/kubernetes/pull/98096), [@leileiwan](https://github.com/leileiwan)) [SIG Scheduling] -- Specifying the KUBE_TEST_REPO environment variable when e2e tests are executed will instruct the test infrastructure to load that image from a location within the specified repo, using a predefined pattern. ([#93510](https://github.com/kubernetes/kubernetes/pull/93510), [@smarterclayton](https://github.com/smarterclayton)) [SIG Testing] -- Static pods will be deleted gracefully. ([#98103](https://github.com/kubernetes/kubernetes/pull/98103), [@gjkim42](https://github.com/gjkim42)) [SIG Node] -- Sync node status during kubelet node shutdown. - Adds an pod admission handler that rejects new pods when the node is in progress of shutting down. ([#98005](https://github.com/kubernetes/kubernetes/pull/98005), [@wzshiming](https://github.com/wzshiming)) [SIG Node] -- The calculation of pod UIDs for static pods has changed to ensure each static pod gets a unique value - this will cause all static pod containers to be recreated/restarted if an in-place kubelet upgrade from 1.20 to 1.21 is performed. Note that draining pods before upgrading the kubelet across minor versions is the supported upgrade path. ([#87461](https://github.com/kubernetes/kubernetes/pull/87461), [@bboreham](https://github.com/bboreham)) [SIG Node] -- The maximum number of ports allowed in EndpointSlices has been increased from 100 to 20,000 ([#99795](https://github.com/kubernetes/kubernetes/pull/99795), [@robscott](https://github.com/robscott)) [SIG Network] -- Truncates a message if it hits the `NoteLengthLimit` when the scheduler records an event for the pod that indicates the pod has failed to schedule. ([#98715](https://github.com/kubernetes/kubernetes/pull/98715), [@carlory](https://github.com/carlory)) -- Updated k8s.gcr.io/ingress-gce-404-server-with-metrics-amd64 to a version that serves /metrics endpoint on a non-default port. ([#97621](https://github.com/kubernetes/kubernetes/pull/97621), [@vbannai](https://github.com/vbannai)) [SIG Cloud Provider] -- Updates the commands ` - - kubectl kustomize {arg} - - kubectl apply -k {arg} - `to use same code as kustomize CLI [v4.0.5](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.0.5) ([#98946](https://github.com/kubernetes/kubernetes/pull/98946), [@monopole](https://github.com/monopole)) -- Use force unmount for NFS volumes if regular mount fails after 1 minute timeout ([#96844](https://github.com/kubernetes/kubernetes/pull/96844), [@gnufied](https://github.com/gnufied)) [SIG Storage] -- Use network.Interface.VirtualMachine.ID to get the binded VM - Skip standalone VM when reconciling LoadBalancer ([#97635](https://github.com/kubernetes/kubernetes/pull/97635), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Using exec auth plugins with kubectl no longer results in warnings about constructing many client instances from the same exec auth config. ([#97857](https://github.com/kubernetes/kubernetes/pull/97857), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Auth] -- When a CNI plugin returns dual-stack pod IPs, kubelet will now try to respect the - "primary IP family" of the cluster by picking a primary pod IP of the same family - as the (primary) node IP, rather than assuming that the CNI plugin returned the IPs - in the order the administrator wanted (since some CNI plugins don't allow - configuring this). ([#97979](https://github.com/kubernetes/kubernetes/pull/97979), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] -- When dynamically provisioning Azure File volumes for a premium account, the requested size will be set to 100GB if the request is initially lower than this value to accommodate Azure File requirements. ([#99122](https://github.com/kubernetes/kubernetes/pull/99122), [@huffmanca](https://github.com/huffmanca)) [SIG Cloud Provider and Storage] -- When using `Containerd` on Windows, the `C:\Windows\System32\drivers\etc\hosts` file will now be managed by kubelet. ([#83730](https://github.com/kubernetes/kubernetes/pull/83730), [@claudiubelu](https://github.com/claudiubelu)) -- `VolumeBindingArgs` now allow `BindTimeoutSeconds` to be set as zero, while the value zero indicates no waiting for the checking of volume binding operation. ([#99835](https://github.com/kubernetes/kubernetes/pull/99835), [@chendave](https://github.com/chendave)) [SIG Scheduling and Storage] -- `kubectl exec` and `kubectl attach` now honor the `--quiet` flag which suppresses output from the local binary that could be confused by a script with the remote command output (all non-failure output is hidden). In addition, print inline with exec and attach the list of alternate containers when we default to the first spec.container. ([#99004](https://github.com/kubernetes/kubernetes/pull/99004), [@smarterclayton](https://github.com/smarterclayton)) [SIG CLI] - -### Other (Cleanup or Flake) - -- APIs for kubelet annotations and labels from `k8s.io/kubernetes/pkg/kubelet/apis` are now moved under `k8s.io/kubelet/pkg/apis/` ([#98931](https://github.com/kubernetes/kubernetes/pull/98931), [@michaelbeaumont](https://github.com/michaelbeaumont)) -- Apiserver_request_duration_seconds is promoted to stable status. ([#99925](https://github.com/kubernetes/kubernetes/pull/99925), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Instrumentation and Testing] -- Bump github.com/Azure/go-autorest/autorest to v0.11.12 ([#97033](https://github.com/kubernetes/kubernetes/pull/97033), [@patrickshan](https://github.com/patrickshan)) [SIG API Machinery, CLI, Cloud Provider and Cluster Lifecycle] -- Clients required to use go1.15.8+ or go1.16+ if kube-apiserver has the goaway feature enabled to avoid unexpected data race condition. ([#98809](https://github.com/kubernetes/kubernetes/pull/98809), [@answer1991](https://github.com/answer1991)) -- Delete deprecated `service.beta.kubernetes.io/azure-load-balancer-mixed-protocols` mixed procotol annotation in favor of the MixedProtocolLBService feature ([#97096](https://github.com/kubernetes/kubernetes/pull/97096), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- EndpointSlice generation is now incremented when labels change. ([#99750](https://github.com/kubernetes/kubernetes/pull/99750), [@robscott](https://github.com/robscott)) [SIG Network] -- Featuregate AllowInsecureBackendProxy graduates to GA and unconditionally enabled. ([#99658](https://github.com/kubernetes/kubernetes/pull/99658), [@deads2k](https://github.com/deads2k)) -- Increase timeout for pod lifecycle test to reach pod status=ready ([#96691](https://github.com/kubernetes/kubernetes/pull/96691), [@hh](https://github.com/hh)) -- Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. ([#98753](https://github.com/kubernetes/kubernetes/pull/98753), [@Jiawei0227](https://github.com/Jiawei0227)) -- Kube-apiserver: The OIDC authenticator no longer waits 10 seconds before attempting to fetch the metadata required to verify tokens. ([#97693](https://github.com/kubernetes/kubernetes/pull/97693), [@enj](https://github.com/enj)) [SIG API Machinery and Auth] -- Kube-proxy: Traffic from the cluster directed to ExternalIPs is always sent directly to the Service. ([#96296](https://github.com/kubernetes/kubernetes/pull/96296), [@aojea](https://github.com/aojea)) [SIG Network and Testing] -- Kubeadm: change the default image repository for CI images from 'gcr.io/kubernetes-ci-images' to 'gcr.io/k8s-staging-ci-images' ([#97087](https://github.com/kubernetes/kubernetes/pull/97087), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubectl: The deprecated `kubectl alpha debug` command is removed. Use `kubectl debug` instead. ([#98111](https://github.com/kubernetes/kubernetes/pull/98111), [@pandaamanda](https://github.com/pandaamanda)) [SIG CLI] -- Kubelet command line flags related to dockershim are now showing deprecation message as they will be removed along with dockershim in future release. ([#98730](https://github.com/kubernetes/kubernetes/pull/98730), [@dims](https://github.com/dims)) -- Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97618](https://github.com/kubernetes/kubernetes/pull/97618), [@jherrera123](https://github.com/jherrera123)) [SIG Release and Testing] -- Process start time on Windows now uses current process information ([#97491](https://github.com/kubernetes/kubernetes/pull/97491), [@jsturtevant](https://github.com/jsturtevant)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Windows] -- Resolves flakes in the Ingress conformance tests due to conflicts with controllers updating the Ingress object ([#98430](https://github.com/kubernetes/kubernetes/pull/98430), [@liggitt](https://github.com/liggitt)) [SIG Network and Testing] -- The `AttachVolumeLimit` feature gate (GA since v1.17) has been removed and now unconditionally enabled. ([#96539](https://github.com/kubernetes/kubernetes/pull/96539), [@ialidzhikov](https://github.com/ialidzhikov)) -- The `CSINodeInfo` feature gate that is GA since v1.17 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#96561](https://github.com/kubernetes/kubernetes/pull/96561), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Apps, Auth, Scheduling, Storage and Testing] -- The `apiserver_request_total` metric is promoted to stable status and no longer has a content-type dimensions, so any alerts/charts which presume the existence of this will fail. This is however, unlikely to be the case since it was effectively an unbounded dimension in the first place. ([#99788](https://github.com/kubernetes/kubernetes/pull/99788), [@logicalhan](https://github.com/logicalhan)) -- The default delegating authorization options now allow unauthenticated access to healthz, readyz, and livez. A system:masters user connecting to an authz delegator will not perform an authz check. ([#98325](https://github.com/kubernetes/kubernetes/pull/98325), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth, Cloud Provider and Scheduling] -- The deprecated feature gates `CSIDriverRegistry`, `BlockVolume` and `CSIBlockVolume` are now unconditionally enabled and can no longer be specified in component invocations. ([#98021](https://github.com/kubernetes/kubernetes/pull/98021), [@gavinfish](https://github.com/gavinfish)) [SIG Storage] -- The deprecated feature gates `RotateKubeletClientCertificate`, `AttachVolumeLimit`, `VolumePVCDataSource` and `EvenPodsSpread` are now unconditionally enabled and can no longer be specified in component invocations. ([#97306](https://github.com/kubernetes/kubernetes/pull/97306), [@gavinfish](https://github.com/gavinfish)) [SIG Node, Scheduling and Storage] -- The e2e suite can be instructed not to wait for pods in kube-system to be ready or for all nodes to be ready by passing `--allowed-not-ready-nodes=-1` when invoking the e2e.test program. This allows callers to run subsets of the e2e suite in scenarios other than perfectly healthy clusters. ([#98781](https://github.com/kubernetes/kubernetes/pull/98781), [@smarterclayton](https://github.com/smarterclayton)) [SIG Testing] -- The feature gates `WindowsGMSA` and `WindowsRunAsUserName` that are GA since v1.18 are now removed. ([#96531](https://github.com/kubernetes/kubernetes/pull/96531), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Node and Windows] -- The new `-gce-zones` flag on the `e2e.test` binary instructs tests that check for information about how the cluster interacts with the cloud to limit their queries to the provided zone list. If not specified, the current behavior of asking the cloud provider for all available zones in multi zone clusters is preserved. ([#98787](https://github.com/kubernetes/kubernetes/pull/98787), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Cluster Lifecycle and Testing] -- Update cri-tools to [v1.20.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.20.0) ([#97967](https://github.com/kubernetes/kubernetes/pull/97967), [@rajibmitra](https://github.com/rajibmitra)) [SIG Cloud Provider] -- Windows nodes on GCE will take longer to start due to dependencies installed at node creation time. ([#98284](https://github.com/kubernetes/kubernetes/pull/98284), [@pjh](https://github.com/pjh)) [SIG Cloud Provider] -- `apiserver_storage_objects` (a newer version of `etcd_object_counts`) is promoted and marked as stable. ([#100082](https://github.com/kubernetes/kubernetes/pull/100082), [@logicalhan](https://github.com/logicalhan)) - -### Uncategorized - -- GCE L4 Loadbalancers now handle > 5 ports in service spec correctly. ([#99595](https://github.com/kubernetes/kubernetes/pull/99595), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider] -- The DownwardAPIHugePages feature is beta. Users may use the feature if all workers in their cluster are min 1.20 version. The feature will be enabled by default in all installations in 1.22. ([#99610](https://github.com/kubernetes/kubernetes/pull/99610), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node] - -## Dependencies - -### Added -- github.com/go-errors/errors: [v1.0.1](https://github.com/go-errors/errors/tree/v1.0.1) -- github.com/gobuffalo/here: [v0.6.0](https://github.com/gobuffalo/here/tree/v0.6.0) -- github.com/google/shlex: [e7afc7f](https://github.com/google/shlex/tree/e7afc7f) -- github.com/markbates/pkger: [v0.17.1](https://github.com/markbates/pkger/tree/v0.17.1) -- github.com/moby/spdystream: [v0.2.0](https://github.com/moby/spdystream/tree/v0.2.0) -- github.com/monochromegane/go-gitignore: [205db1a](https://github.com/monochromegane/go-gitignore/tree/205db1a) -- github.com/niemeyer/pretty: [a10e7ca](https://github.com/niemeyer/pretty/tree/a10e7ca) -- github.com/xlab/treeprint: [a009c39](https://github.com/xlab/treeprint/tree/a009c39) -- go.starlark.net: 8dd3e2e -- golang.org/x/term: 6a3ed07 -- sigs.k8s.io/kustomize/api: v0.8.5 -- sigs.k8s.io/kustomize/cmd/config: v0.9.7 -- sigs.k8s.io/kustomize/kustomize/v4: v4.0.5 -- sigs.k8s.io/kustomize/kyaml: v0.10.15 - -### Changed -- dmitri.shuralyov.com/gpu/mtl: 666a987 → 28db891 -- github.com/Azure/go-autorest/autorest: [v0.11.1 → v0.11.12](https://github.com/Azure/go-autorest/autorest/compare/v0.11.1...v0.11.12) -- github.com/NYTimes/gziphandler: [56545f4 → v1.1.1](https://github.com/NYTimes/gziphandler/compare/56545f4...v1.1.1) -- github.com/cilium/ebpf: [1c8d4c9 → v0.2.0](https://github.com/cilium/ebpf/compare/1c8d4c9...v0.2.0) -- github.com/container-storage-interface/spec: [v1.2.0 → v1.3.0](https://github.com/container-storage-interface/spec/compare/v1.2.0...v1.3.0) -- github.com/containerd/console: [v1.0.0 → v1.0.1](https://github.com/containerd/console/compare/v1.0.0...v1.0.1) -- github.com/containerd/containerd: [v1.4.1 → v1.4.4](https://github.com/containerd/containerd/compare/v1.4.1...v1.4.4) -- github.com/coredns/corefile-migration: [v1.0.10 → v1.0.11](https://github.com/coredns/corefile-migration/compare/v1.0.10...v1.0.11) -- github.com/creack/pty: [v1.1.7 → v1.1.11](https://github.com/creack/pty/compare/v1.1.7...v1.1.11) -- github.com/docker/docker: [bd33bbf → v20.10.2+incompatible](https://github.com/docker/docker/compare/bd33bbf...v20.10.2) -- github.com/go-logr/logr: [v0.2.0 → v0.4.0](https://github.com/go-logr/logr/compare/v0.2.0...v0.4.0) -- github.com/go-openapi/spec: [v0.19.3 → v0.19.5](https://github.com/go-openapi/spec/compare/v0.19.3...v0.19.5) -- github.com/go-openapi/strfmt: [v0.19.3 → v0.19.5](https://github.com/go-openapi/strfmt/compare/v0.19.3...v0.19.5) -- github.com/go-openapi/validate: [v0.19.5 → v0.19.8](https://github.com/go-openapi/validate/compare/v0.19.5...v0.19.8) -- github.com/gogo/protobuf: [v1.3.1 → v1.3.2](https://github.com/gogo/protobuf/compare/v1.3.1...v1.3.2) -- github.com/golang/mock: [v1.4.1 → v1.4.4](https://github.com/golang/mock/compare/v1.4.1...v1.4.4) -- github.com/google/cadvisor: [v0.38.5 → v0.39.0](https://github.com/google/cadvisor/compare/v0.38.5...v0.39.0) -- github.com/heketi/heketi: [c2e2a4a → v10.2.0+incompatible](https://github.com/heketi/heketi/compare/c2e2a4a...v10.2.0) -- github.com/kisielk/errcheck: [v1.2.0 → v1.5.0](https://github.com/kisielk/errcheck/compare/v1.2.0...v1.5.0) -- github.com/konsorten/go-windows-terminal-sequences: [v1.0.3 → v1.0.2](https://github.com/konsorten/go-windows-terminal-sequences/compare/v1.0.3...v1.0.2) -- github.com/kr/text: [v0.1.0 → v0.2.0](https://github.com/kr/text/compare/v0.1.0...v0.2.0) -- github.com/mattn/go-runewidth: [v0.0.2 → v0.0.7](https://github.com/mattn/go-runewidth/compare/v0.0.2...v0.0.7) -- github.com/miekg/dns: [v1.1.4 → v1.1.35](https://github.com/miekg/dns/compare/v1.1.4...v1.1.35) -- github.com/moby/sys/mountinfo: [v0.1.3 → v0.4.0](https://github.com/moby/sys/mountinfo/compare/v0.1.3...v0.4.0) -- github.com/moby/term: [672ec06 → df9cb8a](https://github.com/moby/term/compare/672ec06...df9cb8a) -- github.com/mrunalp/fileutils: [abd8a0e → v0.5.0](https://github.com/mrunalp/fileutils/compare/abd8a0e...v0.5.0) -- github.com/olekukonko/tablewriter: [a0225b3 → v0.0.4](https://github.com/olekukonko/tablewriter/compare/a0225b3...v0.0.4) -- github.com/opencontainers/runc: [v1.0.0-rc92 → v1.0.0-rc93](https://github.com/opencontainers/runc/compare/v1.0.0-rc92...v1.0.0-rc93) -- github.com/opencontainers/runtime-spec: [4d89ac9 → e6143ca](https://github.com/opencontainers/runtime-spec/compare/4d89ac9...e6143ca) -- github.com/opencontainers/selinux: [v1.6.0 → v1.8.0](https://github.com/opencontainers/selinux/compare/v1.6.0...v1.8.0) -- github.com/sergi/go-diff: [v1.0.0 → v1.1.0](https://github.com/sergi/go-diff/compare/v1.0.0...v1.1.0) -- github.com/sirupsen/logrus: [v1.6.0 → v1.7.0](https://github.com/sirupsen/logrus/compare/v1.6.0...v1.7.0) -- github.com/syndtr/gocapability: [d983527 → 42c35b4](https://github.com/syndtr/gocapability/compare/d983527...42c35b4) -- github.com/willf/bitset: [d5bec33 → v1.1.11](https://github.com/willf/bitset/compare/d5bec33...v1.1.11) -- github.com/yuin/goldmark: [v1.1.27 → v1.2.1](https://github.com/yuin/goldmark/compare/v1.1.27...v1.2.1) -- golang.org/x/crypto: 7f63de1 → 5ea612d -- golang.org/x/exp: 6cc2880 → 85be41e -- golang.org/x/mobile: d2bd2a2 → e6ae53a -- golang.org/x/mod: v0.3.0 → ce943fd -- golang.org/x/net: 69a7880 → 3d97a24 -- golang.org/x/sync: cd5d95a → 67f06af -- golang.org/x/sys: 5cba982 → a50acf3 -- golang.org/x/time: 3af7569 → f8bda1e -- golang.org/x/tools: c1934b7 → v0.1.0 -- gopkg.in/check.v1: 41f04d3 → 8fa4692 -- gopkg.in/yaml.v2: v2.2.8 → v2.4.0 -- gotest.tools/v3: v3.0.2 → v3.0.3 -- k8s.io/gengo: 83324d8 → b6c5ce2 -- k8s.io/klog/v2: v2.4.0 → v2.8.0 -- k8s.io/kube-openapi: d219536 → 591a79e -- k8s.io/system-validators: v1.2.0 → v1.4.0 -- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.14 → v0.0.15 -- sigs.k8s.io/structured-merge-diff/v4: v4.0.2 → v4.1.0 - -### Removed -- github.com/codegangsta/negroni: [v1.0.0](https://github.com/codegangsta/negroni/tree/v1.0.0) -- github.com/docker/spdystream: [449fdfc](https://github.com/docker/spdystream/tree/449fdfc) -- github.com/golangplus/bytes: [45c989f](https://github.com/golangplus/bytes/tree/45c989f) -- github.com/golangplus/fmt: [2a5d6d7](https://github.com/golangplus/fmt/tree/2a5d6d7) -- github.com/gorilla/context: [v1.1.1](https://github.com/gorilla/context/tree/v1.1.1) -- github.com/kr/pty: [v1.1.5](https://github.com/kr/pty/tree/v1.1.5) -- rsc.io/quote/v3: v3.1.0 -- rsc.io/sampler: v1.3.0 -- sigs.k8s.io/kustomize: v2.0.3+incompatible +# Release notes for v1.21.0-rc.0 + +[Documentation](https://docs.k8s.io/docs/home) + +# Changelog since v1.20.0 + +## What's New (Major Themes) + +### Deprecation of PodSecurityPolicy + +PSP as an admission controller resource is being deprecated. Deployed PodSecurityPolicy's will keep working until version 1.25, their target removal from the codebase. A new feature, with a working title of "PSP replacement policy", is being developed in [KEP-2579](https://features.k8s.io/2579). To learn more, read [PodSecurityPolicy Deprecation: Past, Present, and Future](https://blog.k8s.io/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/). + +### Kubernetes API Reference Documentation + +The API reference is now generated with [`gen-resourcesdocs`](https://github.com/kubernetes-sigs/reference-docs/tree/c96658d89fb21037b7d00d27e6dbbe6b32375837/gen-resourcesdocs) and it is moving to [Kubernetes API](https://docs.k8s.io/reference/kubernetes-api/) + +### Kustomize Updates in Kubectl + +[Kustomize](https://github.com/kubernetes-sigs/kustomize) version in kubectl had a jump from v2.0.3 to [v4.0.5](https://github.com/kubernetes/kubernetes/pull/98946). Kustomize is now treated as a library and future updates will be less sporadic. + +### Default Container Labels + +Pod with multiple containers can use `kubectl.kubernetes.io/default-container` label to have a container preselected for kubectl commands. More can be read in [KEP-2227](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md). + +### Immutable Secrets and ConfigMaps + +Immutable Secrets and ConfigMaps graduates to GA. This feature allows users to specify that the contents of a particular Secret or ConfigMap is immutable for its object lifetime. For such instances, Kubelet will not watch/poll for changes and therefore reducing apiserver load. + +### Structured Logging in Kubelet + +Kubelet has adopted structured logging, thanks to community effort in accomplishing this within the release timeline. Structured logging in the project remains an ongoing effort -- for folks interested in participating, [keep an eye / chime in to the mailing list discussion](https://groups.google.com/g/kubernetes-dev/c/y4WIw-ntUR8). + +### Storage Capacity Tracking + +Traditionally, the Kubernetes scheduler was based on the assumptions that additional persistent storage is available everywhere in the cluster and has infinite capacity. Topology constraints addressed the first point, but up to now pod scheduling was still done without considering that the remaining storage capacity may not be enough to start a new pod. [Storage capacity tracking](https://docs.k8s.io/concepts/storage/storage-capacity/) addresses that by adding an API for a CSI driver to report storage capacity and uses that information in the Kubernetes scheduler when choosing a node for a pod. This feature serves as a stepping stone for supporting dynamic provisioning for local volumes and other volume types that are more capacity constrained. + +### Generic Ephemeral Volumes + +[Generic ephermeral volumes](https://docs.k8s.io/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes) feature allows any existing storage driver that supports dynamic provisioning to be used as an ephemeral volume with the volume’s lifecycle bound to the Pod. It can be used to provide scratch storage that is different from the root disk, for example persistent memory, or a separate local disk on that node. All StorageClass parameters for volume provisioning are supported. All features supported with PersistentVolumeClaims are supported, such as storage capacity tracking, snapshots and restore, and volume resizing. + +### CSI Service Account Token + +CSI Service Account Token feature moves to Beta in 1.21. This feature improves the security posture and allows CSI drivers to receive pods' [bound service account tokens](https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1205-bound-service-account-tokens/README.md). This feature also provides a knob to re-publish volumes so that short-lived volumes can be refreshed. + +### CSI Health Monitoring + +The CSI health monitoring feature is being released as a second Alpha in Kubernetes 1.21. This feature enables CSI Drivers to share abnormal volume conditions from the underlying storage systems with Kubernetes so that they can be reported as events on PVCs or Pods. This feature serves as a stepping stone towards programmatic detection and resolution of individual volume health issues by Kubernetes. + +## Known Issues + +### `TopologyAwareHints` feature falls back to default behavior + +The feature gate currently falls back to the default behavior in most cases. Enabling the feature gate will add hints to `EndpointSlices`, but functional differences are only observed in non-dual stack kube-proxy implementation. [The fix will be available in coming releases](https://github.com/kubernetes/kubernetes/pull/100804). + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- Kube-proxy's IPVS proxy mode no longer sets the net.ipv4.conf.all.route_localnet sysctl parameter. Nodes upgrading will have net.ipv4.conf.all.route_localnet set to 1 but new nodes will inherit the system default (usually 0). If you relied on any behavior requiring net.ipv4.conf.all.route_localnet, you must set ensure it is enabled as kube-proxy will no longer set it automatically. This change helps to further mitigate CVE-2020-8558. ([#92938](https://github.com/kubernetes/kubernetes/pull/92938), [@lbernail](https://github.com/lbernail)) [SIG Network and Release] + - Kubeadm: during "init" an empty cgroupDriver value in the KubeletConfiguration is now always set to "systemd" unless the user is explicit about it. This requires existing machine setups to configure the container runtime to use the "systemd" driver. Documentation on this topic can be found here: https://kubernetes.io/docs/setup/production-environment/container-runtimes/. When upgrading existing clusters / nodes using "kubeadm upgrade" the old cgroupDriver value is preserved, but in 1.22 this change will also apply to "upgrade". For more information on migrating to the "systemd" driver or remaining on the "cgroupfs" driver see: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/. ([#99471](https://github.com/kubernetes/kubernetes/pull/99471), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] + - Newly provisioned PVs by EBS plugin will no longer use the deprecated "failure-domain.beta.kubernetes.io/zone" and "failure-domain.beta.kubernetes.io/region" labels. It will use "topology.kubernetes.io/zone" and "topology.kubernetes.io/region" labels instead. ([#99130](https://github.com/kubernetes/kubernetes/pull/99130), [@ayberk](https://github.com/ayberk)) [SIG Cloud Provider, Storage and Testing] + - Newly provisioned PVs by OpenStack Cinder plugin will no longer use the deprecated "failure-domain.beta.kubernetes.io/zone" and "failure-domain.beta.kubernetes.io/region" labels. It will use "topology.kubernetes.io/zone" and "topology.kubernetes.io/region" labels instead. ([#99719](https://github.com/kubernetes/kubernetes/pull/99719), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider and Storage] + - Newly provisioned PVs by gce-pd will no longer have the beta FailureDomain label. gce-pd volume plugin will start to have GA topology label instead. ([#98700](https://github.com/kubernetes/kubernetes/pull/98700), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Cloud Provider, Storage and Testing] + - OpenStack Cinder CSI migration is on by default, Clinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work. ([#98538](https://github.com/kubernetes/kubernetes/pull/98538), [@dims](https://github.com/dims)) [SIG Storage] + - Remove alpha `CSIMigrationXXComplete` flag and add alpha `InTreePluginXXUnregister` flag. Deprecate `CSIMigrationvSphereComplete` flag and it will be removed in v1.22. ([#98243](https://github.com/kubernetes/kubernetes/pull/98243), [@Jiawei0227](https://github.com/Jiawei0227)) + - Remove storage metrics `storage_operation_errors_total`, since we already have `storage_operation_status_count`.And add new field `status` for `storage_operation_duration_seconds`, so that we can know about all status storage operation latency. ([#98332](https://github.com/kubernetes/kubernetes/pull/98332), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation and Storage] + - The metric `storage_operation_errors_total` is not removed, but is marked deprecated, and the metric `storage_operation_status_count` is marked deprecated. In both cases the `storage_operation_duration_seconds` metric can be used to recover equivalent counts (using `status=fail-unknown` in the case of `storage_operations_errors_total`). ([#99045](https://github.com/kubernetes/kubernetes/pull/99045), [@mattcary](https://github.com/mattcary)) + - `ServiceNodeExclusion`, `NodeDisruptionExclusion` and `LegacyNodeRoleBehavior` features have been promoted to GA. `ServiceNodeExclusion` and `NodeDisruptionExclusion` are now unconditionally enabled, while `LegacyNodeRoleBehavior` is unconditionally disabled. To prevent control plane nodes from being added to load balancers automatically, upgrade users need to add "node.kubernetes.io/exclude-from-external-load-balancers" label to control plane nodes. ([#97543](https://github.com/kubernetes/kubernetes/pull/97543), [@pacoxu](https://github.com/pacoxu)) + +## Changes by Kind + +### Deprecation + +- Aborting the drain command in a list of nodes will be deprecated. The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain. For now, users can try such experience by enabling --ignore-errors flag. ([#98203](https://github.com/kubernetes/kubernetes/pull/98203), [@yuzhiquan](https://github.com/yuzhiquan)) +- Delete deprecated `service.beta.kubernetes.io/azure-load-balancer-mixed-protocols` mixed procotol annotation in favor of the MixedProtocolLBService feature ([#97096](https://github.com/kubernetes/kubernetes/pull/97096), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Deprecate the `topologyKeys` field in Service. This capability will be replaced with upcoming work around Topology Aware Subsetting and Service Internal Traffic Policy. ([#96736](https://github.com/kubernetes/kubernetes/pull/96736), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps] +- Kube-proxy: remove deprecated --cleanup-ipvs flag of kube-proxy, and make --cleanup flag always to flush IPVS ([#97336](https://github.com/kubernetes/kubernetes/pull/97336), [@maaoBit](https://github.com/maaoBit)) [SIG Network] +- Kubeadm: deprecated command "alpha selfhosting pivot" is now removed. ([#97627](https://github.com/kubernetes/kubernetes/pull/97627), [@knight42](https://github.com/knight42)) +- Kubeadm: graduate the command `kubeadm alpha kubeconfig user` to `kubeadm kubeconfig user`. The `kubeadm alpha kubeconfig user` command is deprecated now. ([#97583](https://github.com/kubernetes/kubernetes/pull/97583), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] +- Kubeadm: the "kubeadm alpha certs" command is removed now, please use "kubeadm certs" instead. ([#97706](https://github.com/kubernetes/kubernetes/pull/97706), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] +- Kubeadm: the deprecated kube-dns is no longer supported as an option. If "ClusterConfiguration.dns.type" is set to "kube-dns" kubeadm will now throw an error. ([#99646](https://github.com/kubernetes/kubernetes/pull/99646), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] +- Kubectl: The deprecated `kubectl alpha debug` command is removed. Use `kubectl debug` instead. ([#98111](https://github.com/kubernetes/kubernetes/pull/98111), [@pandaamanda](https://github.com/pandaamanda)) [SIG CLI] +- Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97935](https://github.com/kubernetes/kubernetes/pull/97935), [@adeniyistephen](https://github.com/adeniyistephen)) [SIG Release and Testing] +- Remove deprecated `--generator, --replicas, --service-generator, --service-overrides, --schedule` from `kubectl run` + Deprecate `--serviceaccount, --hostport, --requests, --limits` in `kubectl run` ([#99732](https://github.com/kubernetes/kubernetes/pull/99732), [@soltysh](https://github.com/soltysh)) +- Remove the deprecated metrics "scheduling_algorithm_preemption_evaluation_seconds" and "binding_duration_seconds", suggest to use "scheduler_framework_extension_point_duration_seconds" instead. ([#96447](https://github.com/kubernetes/kubernetes/pull/96447), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle, Instrumentation, Scheduling and Testing] +- Removing experimental windows container hyper-v support with Docker ([#97141](https://github.com/kubernetes/kubernetes/pull/97141), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows] +- Rename metrics `etcd_object_counts` to `apiserver_storage_object_counts` and mark it as stable. The original `etcd_object_counts` metrics name is marked as "Deprecated" and will be removed in the future. ([#99785](https://github.com/kubernetes/kubernetes/pull/99785), [@erain](https://github.com/erain)) [SIG API Machinery, Instrumentation and Testing] +- The GA TokenRequest and TokenRequestProjection feature gates have been removed and are unconditionally enabled. Remove explicit use of those feature gates in CLI invocations. ([#97148](https://github.com/kubernetes/kubernetes/pull/97148), [@wawa0210](https://github.com/wawa0210)) [SIG Node] +- The PodSecurityPolicy API is deprecated in 1.21, and will no longer be served starting in 1.25. ([#97171](https://github.com/kubernetes/kubernetes/pull/97171), [@deads2k](https://github.com/deads2k)) [SIG Auth and CLI] +- The `batch/v2alpha1` CronJob type definitions and clients are deprecated and removed. ([#96987](https://github.com/kubernetes/kubernetes/pull/96987), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps, CLI and Testing] +- The `export` query parameter (inconsistently supported by API resources and deprecated in v1.14) is fully removed. Requests setting this query parameter will now receive a 400 status response. ([#98312](https://github.com/kubernetes/kubernetes/pull/98312), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth and Testing] +- `audit.k8s.io/v1beta1` and `audit.k8s.io/v1alpha1` audit policy configuration and audit events are deprecated in favor of `audit.k8s.io/v1`, available since v1.13. kube-apiserver invocations that specify alpha or beta policy configurations with `--audit-policy-file`, or explicitly request alpha or beta audit events with `--audit-log-version` / `--audit-webhook-version` must update to use `audit.k8s.io/v1` and accept `audit.k8s.io/v1` events prior to v1.24. ([#98858](https://github.com/kubernetes/kubernetes/pull/98858), [@carlory](https://github.com/carlory)) [SIG Auth] +- `discovery.k8s.io/v1beta1` EndpointSlices are deprecated in favor of `discovery.k8s.io/v1`, and will no longer be served in Kubernetes v1.25. ([#100472](https://github.com/kubernetes/kubernetes/pull/100472), [@liggitt](https://github.com/liggitt)) +- `diskformat` storage class parameter for in-tree vSphere volume plugin is deprecated as of v1.21 release. Please consider updating storageclass and remove `diskformat` parameter. vSphere CSI Driver does not support diskformat storageclass parameter. + + vSphere releases less than 67u3 are deprecated as of v1.21. Please consider upgrading vSphere to 67u3 or above. vSphere CSI Driver requires minimum vSphere 67u3. + + VM Hardware version less than 15 is deprecated as of v1.21. Please consider upgrading the Node VM Hardware version to 15 or above. vSphere CSI Driver recommends Node VM's Hardware version set to at least vmx-15. + + Multi vCenter support is deprecated as of v1.21. If you have a Kubernetes cluster spanning across multiple vCenter servers, please consider moving all k8s nodes to a single vCenter Server. vSphere CSI Driver does not support Kubernetes deployment spanning across multiple vCenter servers. + + Support for these deprecations will be available till Kubernetes v1.24. ([#98546](https://github.com/kubernetes/kubernetes/pull/98546), [@divyenpatel](https://github.com/divyenpatel)) + +### API Change + +- 1. PodAffinityTerm includes a namespaceSelector field to allow selecting eligible namespaces based on their labels. + 2. A new CrossNamespacePodAffinity quota scope API that allows restricting which namespaces allowed to use PodAffinityTerm with corss-namespace reference via namespaceSelector or namespaces fields. ([#98582](https://github.com/kubernetes/kubernetes/pull/98582), [@ahg-g](https://github.com/ahg-g)) [SIG API Machinery, Apps, Auth and Testing] +- Add Probe-level terminationGracePeriodSeconds field ([#99375](https://github.com/kubernetes/kubernetes/pull/99375), [@ehashman](https://github.com/ehashman)) [SIG API Machinery, Apps, Node and Testing] +- Added `.spec.completionMode` field to Job, with accepted values `NonIndexed` (default) and `Indexed`. This is an alpha field and is only honored by servers with the `IndexedJob` feature gate enabled. ([#98441](https://github.com/kubernetes/kubernetes/pull/98441), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps and CLI] +- Adds support for endPort field in NetworkPolicy ([#97058](https://github.com/kubernetes/kubernetes/pull/97058), [@rikatz](https://github.com/rikatz)) [SIG Apps and Network] +- CSIServiceAccountToken graduates to Beta and enabled by default. ([#99298](https://github.com/kubernetes/kubernetes/pull/99298), [@zshihang](https://github.com/zshihang)) +- Cluster admins can now turn off `/debug/pprof` and `/debug/flags/v` endpoint in kubelet by setting `enableProfilingHandler` and `enableDebugFlagsHandler` to `false` in the Kubelet configuration file. Options `enableProfilingHandler` and `enableDebugFlagsHandler` can be set to `true` only when `enableDebuggingHandlers` is also set to `true`. ([#98458](https://github.com/kubernetes/kubernetes/pull/98458), [@SaranBalaji90](https://github.com/SaranBalaji90)) +- DaemonSets accept a MaxSurge integer or percent on their rolling update strategy that will launch the updated pod on nodes and wait for those pods to go ready before marking the old out-of-date pods as deleted. This allows workloads to avoid downtime during upgrades when deployed using DaemonSets. This feature is alpha and is behind the DaemonSetUpdateSurge feature gate. ([#96441](https://github.com/kubernetes/kubernetes/pull/96441), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps and Testing] +- Enable SPDY pings to keep connections alive, so that `kubectl exec` and `kubectl portforward` won't be interrupted. ([#97083](https://github.com/kubernetes/kubernetes/pull/97083), [@knight42](https://github.com/knight42)) [SIG API Machinery and CLI] +- FieldManager no longer owns fields that get reset before the object is persisted (e.g. "status wiping"). ([#99661](https://github.com/kubernetes/kubernetes/pull/99661), [@kevindelgado](https://github.com/kevindelgado)) [SIG API Machinery, Auth and Testing] +- Fixes server-side apply for APIService resources. ([#98576](https://github.com/kubernetes/kubernetes/pull/98576), [@kevindelgado](https://github.com/kevindelgado)) +- Generic ephemeral volumes are beta. ([#99643](https://github.com/kubernetes/kubernetes/pull/99643), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Node, Storage and Testing] +- Hugepages request values are limited to integer multiples of the page size. ([#98515](https://github.com/kubernetes/kubernetes/pull/98515), [@lala123912](https://github.com/lala123912)) [SIG Apps] +- Implement the GetAvailableResources in the podresources API. ([#95734](https://github.com/kubernetes/kubernetes/pull/95734), [@fromanirh](https://github.com/fromanirh)) [SIG Instrumentation, Node and Testing] +- IngressClass resource can now reference a resource in a specific namespace + for implementation-specific configuration (previously only Cluster-level resources were allowed). + This feature can be enabled using the IngressClassNamespacedParams feature gate. ([#99275](https://github.com/kubernetes/kubernetes/pull/99275), [@hbagdi](https://github.com/hbagdi)) +- Jobs API has a new `.spec.suspend` field that can be used to suspend and resume Jobs. This is an alpha field which is only honored by servers with the `SuspendJob` feature gate enabled. ([#98727](https://github.com/kubernetes/kubernetes/pull/98727), [@adtac](https://github.com/adtac)) +- Kubelet Graceful Node Shutdown feature graduates to Beta and enabled by default. ([#99735](https://github.com/kubernetes/kubernetes/pull/99735), [@bobbypage](https://github.com/bobbypage)) +- Kubernetes is now built using go1.15.7 ([#98363](https://github.com/kubernetes/kubernetes/pull/98363), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Node, Release and Testing] +- Namespace API objects now have a `kubernetes.io/metadata.name` label matching their metadata.name field to allow selecting any namespace by its name using a label selector. ([#96968](https://github.com/kubernetes/kubernetes/pull/96968), [@jayunit100](https://github.com/jayunit100)) [SIG API Machinery, Apps, Cloud Provider, Storage and Testing] +- One new field "InternalTrafficPolicy" in Service is added. + It specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only. + "Cluster" routes internal traffic to a Service to all endpoints. + "Local" routes traffic to node-local endpoints only, and traffic is dropped if no node-local endpoints are ready. + The default value is "Cluster". ([#96600](https://github.com/kubernetes/kubernetes/pull/96600), [@maplain](https://github.com/maplain)) [SIG API Machinery, Apps and Network] +- PodDisruptionBudget API objects can now contain conditions in status. ([#98127](https://github.com/kubernetes/kubernetes/pull/98127), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] +- PodSecurityPolicy only stores "generic" as allowed volume type if the GenericEphemeralVolume feature gate is enabled ([#98918](https://github.com/kubernetes/kubernetes/pull/98918), [@pohly](https://github.com/pohly)) [SIG Auth and Security] +- Promote CronJobs to batch/v1 ([#99423](https://github.com/kubernetes/kubernetes/pull/99423), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps, CLI and Testing] +- Promote Immutable Secrets/ConfigMaps feature to Stable. This allows to set `immutable` field in Secret or ConfigMap object to mark their contents as immutable. ([#97615](https://github.com/kubernetes/kubernetes/pull/97615), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps, Architecture, Node and Testing] +- Remove support for building Kubernetes with bazel. ([#99561](https://github.com/kubernetes/kubernetes/pull/99561), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows] +- Scheduler extender filter interface now can report unresolvable failed nodes in the new field `FailedAndUnresolvableNodes` of `ExtenderFilterResult` struct. Nodes in this map will be skipped in the preemption phase. ([#92866](https://github.com/kubernetes/kubernetes/pull/92866), [@cofyc](https://github.com/cofyc)) [SIG Scheduling] +- Services can specify loadBalancerClass to use a custom load balancer ([#98277](https://github.com/kubernetes/kubernetes/pull/98277), [@XudongLiuHarold](https://github.com/XudongLiuHarold)) +- Storage capacity tracking (= the CSIStorageCapacity feature) graduates to Beta and enabled by default, storage.k8s.io/v1alpha1/VolumeAttachment and storage.k8s.io/v1alpha1/CSIStorageCapacity objects are deprecated ([#99641](https://github.com/kubernetes/kubernetes/pull/99641), [@pohly](https://github.com/pohly)) +- Support for Indexed Job: a Job that is considered completed when Pods associated to indexes from 0 to (.spec.completions-1) have succeeded. ([#98812](https://github.com/kubernetes/kubernetes/pull/98812), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps and CLI] +- The BoundServiceAccountTokenVolume feature has been promoted to beta, and enabled by default. + - This changes the tokens provided to containers at `/var/run/secrets/kubernetes.io/serviceaccount/token` to be time-limited, auto-refreshed, and invalidated when the containing pod is deleted. + - Clients should reload the token from disk periodically (once per minute is recommended) to ensure they continue to use a valid token. `k8s.io/client-go` version v11.0.0+ and v0.15.0+ reload tokens automatically. + - By default, injected tokens are given an extended lifetime so they remain valid even after a new refreshed token is provided. The metric `serviceaccount_stale_tokens_total` can be used to monitor for workloads that are depending on the extended lifetime and are continuing to use tokens even after a refreshed token is provided to the container. If that metric indicates no existing workloads are depending on extended lifetimes, injected token lifetime can be shortened to 1 hour by starting `kube-apiserver` with `--service-account-extend-token-expiration=false`. ([#95667](https://github.com/kubernetes/kubernetes/pull/95667), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Cluster Lifecycle and Testing] +- The EndpointSlice Controllers are now GA. The `EndpointSliceController` will not populate the `deprecatedTopology` field and will only provide topology information through the `zone` and `nodeName` fields. ([#99870](https://github.com/kubernetes/kubernetes/pull/99870), [@swetharepakula](https://github.com/swetharepakula)) +- The Endpoints controller will now set the `endpoints.kubernetes.io/over-capacity` annotation to "warning" when an Endpoints resource contains more than 1000 addresses. In a future release, the controller will truncate Endpoints that exceed this limit. The EndpointSlice API can be used to support significantly larger number of addresses. ([#99975](https://github.com/kubernetes/kubernetes/pull/99975), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- The PodDisruptionBudget API has been promoted to policy/v1 with no schema changes. The only functional change is that an empty selector (`{}`) written to a policy/v1 PodDisruptionBudget now selects all pods in the namespace. The behavior of the policy/v1beta1 API remains unchanged. The policy/v1beta1 PodDisruptionBudget API is deprecated and will no longer be served in 1.25+. ([#99290](https://github.com/kubernetes/kubernetes/pull/99290), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Scheduling and Testing] +- The `EndpointSlice` API is now GA. The `EndpointSlice` topology field has been removed from the GA API and will be replaced by a new per Endpoint Zone field. If the topology field was previously used, it will be converted into an annotation in the v1 Resource. The `discovery.k8s.io/v1alpha1` API is removed. ([#99662](https://github.com/kubernetes/kubernetes/pull/99662), [@swetharepakula](https://github.com/swetharepakula)) +- The `controller.kubernetes.io/pod-deletion-cost` annotation can be set to offer a hint on the cost of deleting a `Pod` compared to other pods belonging to the same ReplicaSet. Pods with lower deletion cost are deleted first. This is an alpha feature. ([#99163](https://github.com/kubernetes/kubernetes/pull/99163), [@ahg-g](https://github.com/ahg-g)) +- The kube-apiserver now resets `managedFields` that got corrupted by a mutating admission controller. ([#98074](https://github.com/kubernetes/kubernetes/pull/98074), [@kwiesmueller](https://github.com/kwiesmueller)) +- Topology Aware Hints are now available in alpha and can be enabled with the `TopologyAwareHints` feature gate. ([#99522](https://github.com/kubernetes/kubernetes/pull/99522), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps, Auth, Instrumentation, Network and Testing] +- Users might specify the `kubectl.kubernetes.io/default-exec-container` annotation in a Pod to preselect container for kubectl commands. ([#97099](https://github.com/kubernetes/kubernetes/pull/97099), [@pacoxu](https://github.com/pacoxu)) [SIG CLI] + +### Feature + +- A client-go metric, rest_client_exec_plugin_call_total, has been added to track total calls to client-go credential plugins. ([#98892](https://github.com/kubernetes/kubernetes/pull/98892), [@ankeesler](https://github.com/ankeesler)) [SIG API Machinery, Auth, Cluster Lifecycle and Instrumentation] +- A new histogram metric to track the time it took to delete a job by the `TTLAfterFinished` controller ([#98676](https://github.com/kubernetes/kubernetes/pull/98676), [@ahg-g](https://github.com/ahg-g)) +- AWS cloud provider supports auto-discovering subnets without any `kubernetes.io/cluster/<clusterName>` tags. It also supports additional service annotation `service.beta.kubernetes.io/aws-load-balancer-subnets` to manually configure the subnets. ([#97431](https://github.com/kubernetes/kubernetes/pull/97431), [@kishorj](https://github.com/kishorj)) +- Aborting the drain command in a list of nodes will be deprecated. The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain. For now, users can try such experience by enabling --ignore-errors flag. ([#98203](https://github.com/kubernetes/kubernetes/pull/98203), [@yuzhiquan](https://github.com/yuzhiquan)) +- Add --permit-address-sharing flag to `kube-apiserver` to listen with `SO_REUSEADDR`. While allowing to listen on wildcard IPs like 0.0.0.0 and specific IPs in parallel, it avoids waiting for the kernel to release socket in `TIME_WAIT` state, and hence, considerably reducing `kube-apiserver` restart times under certain conditions. ([#93861](https://github.com/kubernetes/kubernetes/pull/93861), [@sttts](https://github.com/sttts)) +- Add `csi_operations_seconds` metric on kubelet that exposes CSI operations duration and status for node CSI operations. ([#98979](https://github.com/kubernetes/kubernetes/pull/98979), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Instrumentation and Storage] +- Add `migrated` field into `storage_operation_duration_seconds` metric ([#99050](https://github.com/kubernetes/kubernetes/pull/99050), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps, Instrumentation and Storage] +- Add flag --lease-reuse-duration-seconds for kube-apiserver to config etcd lease reuse duration. ([#97009](https://github.com/kubernetes/kubernetes/pull/97009), [@lingsamuel](https://github.com/lingsamuel)) [SIG API Machinery and Scalability] +- Add metric etcd_lease_object_counts for kube-apiserver to observe max objects attached to a single etcd lease. ([#97480](https://github.com/kubernetes/kubernetes/pull/97480), [@lingsamuel](https://github.com/lingsamuel)) [SIG API Machinery, Instrumentation and Scalability] +- Add support to generate client-side binaries for new darwin/arm64 platform ([#97743](https://github.com/kubernetes/kubernetes/pull/97743), [@dims](https://github.com/dims)) [SIG Release and Testing] +- Added `ephemeral_volume_controller_create[_failures]_total` counters to kube-controller-manager metrics ([#99115](https://github.com/kubernetes/kubernetes/pull/99115), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Cluster Lifecycle, Instrumentation and Storage] +- Added support for installing `arm64` node artifacts. ([#99242](https://github.com/kubernetes/kubernetes/pull/99242), [@liu-cong](https://github.com/liu-cong)) +- Adds alpha feature `VolumeCapacityPriority` which makes the scheduler prioritize nodes based on the best matching size of statically provisioned PVs across multiple topologies. ([#96347](https://github.com/kubernetes/kubernetes/pull/96347), [@cofyc](https://github.com/cofyc)) [SIG Apps, Network, Scheduling, Storage and Testing] +- Adds the ability to pass --strict-transport-security-directives to the kube-apiserver to set the HSTS header appropriately. Be sure you understand the consequences to browsers before setting this field. ([#96502](https://github.com/kubernetes/kubernetes/pull/96502), [@249043822](https://github.com/249043822)) [SIG Auth] +- Adds two new metrics to cronjobs, a histogram to track the time difference when a job is created and the expected time when it should be created, as well as a gauge for the missed schedules of a cronjob ([#99341](https://github.com/kubernetes/kubernetes/pull/99341), [@alaypatel07](https://github.com/alaypatel07)) +- Alpha implementation of Kubectl Command Headers: SIG CLI KEP 859 enabled when KUBECTL_COMMAND_HEADERS environment variable set on the client command line. ([#98952](https://github.com/kubernetes/kubernetes/pull/98952), [@seans3](https://github.com/seans3)) +- Base-images: Update to debian-iptables:buster-v1.4.0 + - Uses iptables 1.8.5 + - base-images: Update to debian-base:buster-v1.3.0 + - cluster/images/etcd: Build etcd:3.4.13-2 image + - Uses debian-base:buster-v1.3.0 ([#98401](https://github.com/kubernetes/kubernetes/pull/98401), [@pacoxu](https://github.com/pacoxu)) [SIG Testing] +- CRIContainerLogRotation graduates to GA and unconditionally enabled. ([#99651](https://github.com/kubernetes/kubernetes/pull/99651), [@umohnani8](https://github.com/umohnani8)) +- Component owner can configure the allowlist of metric label with flag '--allow-metric-labels'. ([#99385](https://github.com/kubernetes/kubernetes/pull/99385), [@YoyinZyc](https://github.com/YoyinZyc)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Release] +- Component owner can configure the allowlist of metric label with flag '--allow-metric-labels'. ([#99738](https://github.com/kubernetes/kubernetes/pull/99738), [@YoyinZyc](https://github.com/YoyinZyc)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] +- EmptyDir memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value. ([#100319](https://github.com/kubernetes/kubernetes/pull/100319), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node] +- Enables Kubelet to check volume condition and log events to corresponding pods. ([#99284](https://github.com/kubernetes/kubernetes/pull/99284), [@fengzixu](https://github.com/fengzixu)) [SIG Apps, Instrumentation, Node and Storage] +- EndpointSliceNodeName graduates to GA and thus will be unconditionally enabled -- NodeName will always be available in the v1beta1 API. ([#99746](https://github.com/kubernetes/kubernetes/pull/99746), [@swetharepakula](https://github.com/swetharepakula)) +- Export `NewDebuggingRoundTripper` function and `DebugLevel` options in the k8s.io/client-go/transport package. ([#98324](https://github.com/kubernetes/kubernetes/pull/98324), [@atosatto](https://github.com/atosatto)) +- Kube-proxy iptables: new metric sync_proxy_rules_iptables_total that exposes the number of rules programmed per table in each iteration ([#99653](https://github.com/kubernetes/kubernetes/pull/99653), [@aojea](https://github.com/aojea)) [SIG Instrumentation and Network] +- Kube-scheduler now logs plugin scoring summaries at --v=4 ([#99411](https://github.com/kubernetes/kubernetes/pull/99411), [@damemi](https://github.com/damemi)) [SIG Scheduling] +- Kubeadm now includes CoreDNS v1.8.0. ([#96429](https://github.com/kubernetes/kubernetes/pull/96429), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] +- Kubeadm: IPv6DualStack feature gate graduates to Beta and enabled by default ([#99294](https://github.com/kubernetes/kubernetes/pull/99294), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: a warning to user as ipv6 site-local is deprecated ([#99574](https://github.com/kubernetes/kubernetes/pull/99574), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle and Network] +- Kubeadm: add support for certificate chain validation. When using kubeadm in external CA mode, this allows an intermediate CA to be used to sign the certificates. The intermediate CA certificate must be appended to each signed certificate for this to work correctly. ([#97266](https://github.com/kubernetes/kubernetes/pull/97266), [@robbiemcmichael](https://github.com/robbiemcmichael)) [SIG Cluster Lifecycle] +- Kubeadm: amend the node kernel validation to treat CGROUP_PIDS, FAIR_GROUP_SCHED as required and CFS_BANDWIDTH, CGROUP_HUGETLB as optional ([#96378](https://github.com/kubernetes/kubernetes/pull/96378), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] +- Kubeadm: apply the "node.kubernetes.io/exclude-from-external-load-balancers" label on control plane nodes during "init", "join" and "upgrade" to preserve backwards compatibility with the lagacy LB mode where nodes labeled as "master" where excluded. To opt-out you can remove the label from a node. See #97543 and the linked KEP for more details. ([#98269](https://github.com/kubernetes/kubernetes/pull/98269), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: if the user has customized their image repository via the kubeadm configuration, pass the custom pause image repository and tag to the kubelet via --pod-infra-container-image not only for Docker but for all container runtimes. This flag tells the kubelet that it should not garbage collect the image. ([#99476](https://github.com/kubernetes/kubernetes/pull/99476), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: perform pre-flight validation on host/node name upon `kubeadm init` and `kubeadm join`, showing warnings on non-compliant names ([#99194](https://github.com/kubernetes/kubernetes/pull/99194), [@pacoxu](https://github.com/pacoxu)) +- Kubectl version changed to write a warning message to stderr if the client and server version difference exceeds the supported version skew of +/-1 minor version. ([#98250](https://github.com/kubernetes/kubernetes/pull/98250), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] +- Kubectl: Add `--use-protocol-buffers` flag to kubectl top pods and nodes. ([#96655](https://github.com/kubernetes/kubernetes/pull/96655), [@serathius](https://github.com/serathius)) +- Kubectl: `kubectl get` will omit managed fields by default now. Users could set `--show-managed-fields` to true to show managedFields when the output format is either `json` or `yaml`. ([#96878](https://github.com/kubernetes/kubernetes/pull/96878), [@knight42](https://github.com/knight42)) [SIG CLI and Testing] +- Kubectl: a Pod can be preselected as default container using `kubectl.kubernetes.io/default-container` annotation ([#99833](https://github.com/kubernetes/kubernetes/pull/99833), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Kubectl: add bash-completion for comma separated list on `kubectl get` ([#98301](https://github.com/kubernetes/kubernetes/pull/98301), [@phil9909](https://github.com/phil9909)) +- Kubernetes is now built using go1.15.8 ([#98834](https://github.com/kubernetes/kubernetes/pull/98834), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing] +- Kubernetes is now built with Golang 1.16 ([#98572](https://github.com/kubernetes/kubernetes/pull/98572), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Release and Testing] +- Kubernetes is now built with Golang 1.16.1 ([#100106](https://github.com/kubernetes/kubernetes/pull/100106), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing] +- Metrics can now be disabled explicitly via a command line flag (i.e. '--disabled-metrics=metric1,metric2') ([#99217](https://github.com/kubernetes/kubernetes/pull/99217), [@logicalhan](https://github.com/logicalhan)) +- New admission controller `DenyServiceExternalIPs` is available. Clusters which do not *need* the Service `externalIPs` feature should enable this controller and be more secure. ([#97395](https://github.com/kubernetes/kubernetes/pull/97395), [@thockin](https://github.com/thockin)) +- Overall, enable the feature of `PreferNominatedNode` will improve the performance of scheduling where preemption might frequently happen, but in theory, enable the feature of `PreferNominatedNode`, the pod might not be scheduled to the best candidate node in the cluster. ([#93179](https://github.com/kubernetes/kubernetes/pull/93179), [@chendave](https://github.com/chendave)) [SIG Scheduling and Testing] +- Persistent Volumes formatted with the btrfs filesystem will now automatically resize when expanded. ([#99361](https://github.com/kubernetes/kubernetes/pull/99361), [@Novex](https://github.com/Novex)) [SIG Storage] +- Port the devicemanager to Windows node to allow device plugins like directx ([#93285](https://github.com/kubernetes/kubernetes/pull/93285), [@aarnaud](https://github.com/aarnaud)) [SIG Node, Testing and Windows] +- Removes cAdvisor JSON metrics (/stats/container, /stats/<podname>/<containername>, /stats/<namespace>/<podname>/<poduid>/<containername>) from the kubelet. ([#99236](https://github.com/kubernetes/kubernetes/pull/99236), [@pacoxu](https://github.com/pacoxu)) +- Rename metrics `etcd_object_counts` to `apiserver_storage_object_counts` and mark it as stable. The original `etcd_object_counts` metrics name is marked as "Deprecated" and will be removed in the future. ([#99785](https://github.com/kubernetes/kubernetes/pull/99785), [@erain](https://github.com/erain)) [SIG API Machinery, Instrumentation and Testing] +- Sysctls graduates to General Availability and thus unconditionally enabled. ([#99158](https://github.com/kubernetes/kubernetes/pull/99158), [@wgahnagl](https://github.com/wgahnagl)) +- The Kubernetes pause image manifest list now contains an image for Windows Server 20H2. ([#97322](https://github.com/kubernetes/kubernetes/pull/97322), [@claudiubelu](https://github.com/claudiubelu)) [SIG Windows] +- The NodeAffinity plugin implements the PreFilter extension, offering enhanced performance for Filter. ([#99213](https://github.com/kubernetes/kubernetes/pull/99213), [@AliceZhang2016](https://github.com/AliceZhang2016)) [SIG Scheduling] +- The `CronJobControllerV2` feature flag graduates to Beta and set to be enabled by default. ([#98878](https://github.com/kubernetes/kubernetes/pull/98878), [@soltysh](https://github.com/soltysh)) +- The `EndpointSlice` mirroring controller mirrors endpoints annotations and labels to the generated endpoint slices, it also ensures that updates on any of these fields are mirrored. + The well-known annotation `endpoints.kubernetes.io/last-change-trigger-time` is skipped and not mirrored. ([#98116](https://github.com/kubernetes/kubernetes/pull/98116), [@aojea](https://github.com/aojea)) +- The `RunAsGroup` feature has been promoted to GA in this release. ([#94641](https://github.com/kubernetes/kubernetes/pull/94641), [@krmayankk](https://github.com/krmayankk)) [SIG Auth and Node] +- The `ServiceAccountIssuerDiscovery` feature has graduated to GA, and is unconditionally enabled. The `ServiceAccountIssuerDiscovery` feature-gate will be removed in 1.22. ([#98553](https://github.com/kubernetes/kubernetes/pull/98553), [@mtaufen](https://github.com/mtaufen)) [SIG API Machinery, Auth and Testing] +- The `TTLAfterFinished` feature flag is now beta and enabled by default ([#98678](https://github.com/kubernetes/kubernetes/pull/98678), [@ahg-g](https://github.com/ahg-g)) +- The apimachinery util/net function used to detect the bind address `ResolveBindAddress()` takes into consideration global IP addresses on loopback interfaces when 1) the host has default routes, or 2) there are no global IPs on those interfaces in order to support more complex network scenarios like BGP Unnumbered RFC 5549 ([#95790](https://github.com/kubernetes/kubernetes/pull/95790), [@aojea](https://github.com/aojea)) [SIG Network] +- The feature gate `RootCAConfigMap` graduated to GA in v1.21 and therefore will be unconditionally enabled. This flag will be removed in v1.22 release. ([#98033](https://github.com/kubernetes/kubernetes/pull/98033), [@zshihang](https://github.com/zshihang)) +- The pause image upgraded to `v3.4.1` in kubelet and kubeadm for both Linux and Windows. ([#98205](https://github.com/kubernetes/kubernetes/pull/98205), [@pacoxu](https://github.com/pacoxu)) +- Update pause container to run as pseudo user and group `65535:65535`. This implies the release of version 3.5 of the container images. ([#97963](https://github.com/kubernetes/kubernetes/pull/97963), [@saschagrunert](https://github.com/saschagrunert)) [SIG CLI, Cloud Provider, Cluster Lifecycle, Node, Release, Security and Testing] +- Update the latest validated version of Docker to 20.10 ([#98977](https://github.com/kubernetes/kubernetes/pull/98977), [@neolit123](https://github.com/neolit123)) [SIG CLI, Cluster Lifecycle and Node] +- Upgrade node local dns to 1.17.0 for better IPv6 support ([#99749](https://github.com/kubernetes/kubernetes/pull/99749), [@pacoxu](https://github.com/pacoxu)) [SIG Cloud Provider and Network] +- Upgrades `IPv6Dualstack` to `Beta` and turns it on by default. New clusters or existing clusters are not be affected until an actor starts adding secondary Pods and service CIDRS CLI flags as described here: [IPv4/IPv6 Dual-stack](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack) ([#98969](https://github.com/kubernetes/kubernetes/pull/98969), [@khenidak](https://github.com/khenidak)) +- Users might specify the `kubectl.kubernetes.io/default-container` annotation in a Pod to preselect container for kubectl commands. ([#99581](https://github.com/kubernetes/kubernetes/pull/99581), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG CLI] +- When downscaling ReplicaSets, ready and creation timestamps are compared in a logarithmic scale. ([#99212](https://github.com/kubernetes/kubernetes/pull/99212), [@damemi](https://github.com/damemi)) [SIG Apps and Testing] +- When the kubelet is watching a ConfigMap or Secret purely in the context of setting environment variables + for containers, only hold that watch for a defined duration before cancelling it. This change reduces the CPU + and memory usage of the kube-apiserver in large clusters. ([#99393](https://github.com/kubernetes/kubernetes/pull/99393), [@chenyw1990](https://github.com/chenyw1990)) [SIG API Machinery, Node and Testing] +- WindowsEndpointSliceProxying feature gate has graduated to beta and is enabled by default. This means kube-proxy will read from EndpointSlices instead of Endpoints on Windows by default. ([#99794](https://github.com/kubernetes/kubernetes/pull/99794), [@robscott](https://github.com/robscott)) [SIG Network] +- `kubectl wait` ensures that observedGeneration >= generation to prevent stale state reporting. An example scenario can be found on CRD updates. ([#97408](https://github.com/kubernetes/kubernetes/pull/97408), [@KnicKnic](https://github.com/KnicKnic)) + +### Documentation + +- Azure file migration graduates to beta, with CSIMigrationAzureFile flag off by default + as it requires installation of AzureFile CSI Driver. Users should enable CSIMigration and + CSIMigrationAzureFile features and install the [AzureFile CSI Driver](https://github.com/kubernetes-sigs/azurefile-csi-driver) + to avoid disruption to existing Pod and PVC objects at that time. Azure File CSI driver does not support using same persistent + volume with different fsgroups. When CSI migration is enabled for azurefile driver, such case is not supported. + (there is a case we support where volume is mounted with 0777 and then it readable/writable by everyone) ([#96293](https://github.com/kubernetes/kubernetes/pull/96293), [@andyzhangx](https://github.com/andyzhangx)) +- Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97935](https://github.com/kubernetes/kubernetes/pull/97935), [@adeniyistephen](https://github.com/adeniyistephen)) [SIG Release and Testing] +- Set kubelet option `--volume-stats-agg-period` to negative value to disable volume calculations. ([#96675](https://github.com/kubernetes/kubernetes/pull/96675), [@pacoxu](https://github.com/pacoxu)) [SIG Node] + +### Failing Test + +- Escape the special characters like `[`, `]` and ` ` that exist in vsphere windows path ([#98830](https://github.com/kubernetes/kubernetes/pull/98830), [@liyanhui1228](https://github.com/liyanhui1228)) [SIG Storage and Windows] +- Kube-proxy: fix a bug on UDP `NodePort` Services where stale connection tracking entries may blackhole the traffic directed to the `NodePort` ([#98305](https://github.com/kubernetes/kubernetes/pull/98305), [@aojea](https://github.com/aojea)) +- Kubelet: fixes a bug in the HostPort dockershim implementation that caused the conformance test "HostPort validates that there is no conflict between pods with same hostPort but different hostIP and protocol" to fail. ([#98755](https://github.com/kubernetes/kubernetes/pull/98755), [@aojea](https://github.com/aojea)) [SIG Cloud Provider, Network and Node] + +### Bug or Regression + +- AcceleratorStats will be available in the Summary API of kubelet when cri_stats_provider is used. ([#96873](https://github.com/kubernetes/kubernetes/pull/96873), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) [SIG Node] +- All data is no longer automatically deleted when a failure is detected during creation of the volume data file on a CSI volume. Now only the data file and volume path is removed. ([#96021](https://github.com/kubernetes/kubernetes/pull/96021), [@huffmanca](https://github.com/huffmanca)) +- Clean ReplicaSet by revision instead of creation timestamp in deployment controller ([#97407](https://github.com/kubernetes/kubernetes/pull/97407), [@waynepeking348](https://github.com/waynepeking348)) [SIG Apps] +- Cleanup subnet in frontend IP configs to prevent huge subnet request bodies in some scenarios. ([#98133](https://github.com/kubernetes/kubernetes/pull/98133), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Client-go exec credential plugins will pass stdin only when interactive terminal is detected on stdin. This fixes a bug where previously it was checking if **stdout** is an interactive terminal. ([#99654](https://github.com/kubernetes/kubernetes/pull/99654), [@ankeesler](https://github.com/ankeesler)) +- Cloud-controller-manager: routes controller should not depend on --allocate-node-cidrs ([#97029](https://github.com/kubernetes/kubernetes/pull/97029), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider and Testing] +- Cluster Autoscaler version bump to v1.20.0 ([#97011](https://github.com/kubernetes/kubernetes/pull/97011), [@towca](https://github.com/towca)) +- Creating a PVC with DataSource should fail for non-CSI plugins. ([#97086](https://github.com/kubernetes/kubernetes/pull/97086), [@xing-yang](https://github.com/xing-yang)) [SIG Apps and Storage] +- EndpointSlice controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#99345](https://github.com/kubernetes/kubernetes/pull/99345), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- EndpointSlice controllers are less likely to create duplicate EndpointSlices. ([#100103](https://github.com/kubernetes/kubernetes/pull/100103), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- EndpointSliceMirroring controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#99756](https://github.com/kubernetes/kubernetes/pull/99756), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- Ensure all vSphere nodes are are tracked by volume attach-detach controller ([#96689](https://github.com/kubernetes/kubernetes/pull/96689), [@gnufied](https://github.com/gnufied)) +- Ensure empty string annotations are copied over in rollbacks. ([#94858](https://github.com/kubernetes/kubernetes/pull/94858), [@waynepeking348](https://github.com/waynepeking348)) +- Ensure only one LoadBalancer rule is created when HA mode is enabled ([#99825](https://github.com/kubernetes/kubernetes/pull/99825), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Ensure that client-go's EventBroadcaster is safe (non-racy) during shutdown. ([#95664](https://github.com/kubernetes/kubernetes/pull/95664), [@DirectXMan12](https://github.com/DirectXMan12)) [SIG API Machinery] +- Explicitly pass `KUBE_BUILD_CONFORMANCE=y` in `package-tarballs` to reenable building the conformance tarballs. ([#100571](https://github.com/kubernetes/kubernetes/pull/100571), [@puerco](https://github.com/puerco)) +- Fix Azure file migration e2e test failure when CSIMigration is turned on. ([#97877](https://github.com/kubernetes/kubernetes/pull/97877), [@andyzhangx](https://github.com/andyzhangx)) +- Fix CSI-migrated inline EBS volumes failing to mount if their volumeID is prefixed by aws:// ([#96821](https://github.com/kubernetes/kubernetes/pull/96821), [@wongma7](https://github.com/wongma7)) [SIG Storage] +- Fix CVE-2020-8555 for Gluster client connections. ([#97922](https://github.com/kubernetes/kubernetes/pull/97922), [@liggitt](https://github.com/liggitt)) [SIG Storage] +- Fix NPE in ephemeral storage eviction ([#98261](https://github.com/kubernetes/kubernetes/pull/98261), [@wzshiming](https://github.com/wzshiming)) [SIG Node] +- Fix PermissionDenied issue on SMB mount for Windows ([#99550](https://github.com/kubernetes/kubernetes/pull/99550), [@andyzhangx](https://github.com/andyzhangx)) +- Fix bug that would let the Horizontal Pod Autoscaler scale down despite at least one metric being unavailable/invalid ([#99514](https://github.com/kubernetes/kubernetes/pull/99514), [@mikkeloscar](https://github.com/mikkeloscar)) [SIG Apps and Autoscaling] +- Fix cgroup handling for systemd with cgroup v2 ([#98365](https://github.com/kubernetes/kubernetes/pull/98365), [@odinuge](https://github.com/odinuge)) [SIG Node] +- Fix counting error in service/nodeport/loadbalancer quota check ([#97451](https://github.com/kubernetes/kubernetes/pull/97451), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery, Network and Testing] +- Fix errors when accessing Windows container stats for Dockershim ([#98510](https://github.com/kubernetes/kubernetes/pull/98510), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows] +- Fix kube-proxy container image architecture for non amd64 images. ([#98526](https://github.com/kubernetes/kubernetes/pull/98526), [@saschagrunert](https://github.com/saschagrunert)) +- Fix missing cadvisor machine metrics. ([#97006](https://github.com/kubernetes/kubernetes/pull/97006), [@lingsamuel](https://github.com/lingsamuel)) [SIG Node] +- Fix nil VMSS name when setting service to auto mode ([#97366](https://github.com/kubernetes/kubernetes/pull/97366), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Fix privileged config of Pod Sandbox which was previously ignored. ([#96877](https://github.com/kubernetes/kubernetes/pull/96877), [@xeniumlee](https://github.com/xeniumlee)) +- Fix the panic when kubelet registers if a node object already exists with no Status.Capacity or Status.Allocatable ([#95269](https://github.com/kubernetes/kubernetes/pull/95269), [@SataQiu](https://github.com/SataQiu)) [SIG Node] +- Fix the regression with the slow pods termination. Before this fix pods may take an additional time to terminate - up to one minute. Reversing the change that ensured that CNI resources cleaned up when the pod is removed on API server. ([#97980](https://github.com/kubernetes/kubernetes/pull/97980), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node] +- Fix to recover CSI volumes from certain dangling attachments ([#96617](https://github.com/kubernetes/kubernetes/pull/96617), [@yuga711](https://github.com/yuga711)) [SIG Apps and Storage] +- Fix: azure file latency issue for metadata-heavy workloads ([#97082](https://github.com/kubernetes/kubernetes/pull/97082), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fixed Cinder volume IDs on OpenStack Train ([#96673](https://github.com/kubernetes/kubernetes/pull/96673), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider] +- Fixed FibreChannel volume plugin corrupting filesystems on detach of multipath volumes. ([#97013](https://github.com/kubernetes/kubernetes/pull/97013), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- Fixed a bug in kubelet that will saturate CPU utilization after containerd got restarted. ([#97174](https://github.com/kubernetes/kubernetes/pull/97174), [@hanlins](https://github.com/hanlins)) [SIG Node] +- Fixed a bug that causes smaller number of conntrack-max being used under CPU static policy. (#99225, @xh4n3) ([#99613](https://github.com/kubernetes/kubernetes/pull/99613), [@xh4n3](https://github.com/xh4n3)) [SIG Network] +- Fixed a bug that on k8s nodes, when the policy of INPUT chain in filter table is not ACCEPT, healthcheck nodeport would not work. + Added iptables rules to allow healthcheck nodeport traffic. ([#97824](https://github.com/kubernetes/kubernetes/pull/97824), [@hanlins](https://github.com/hanlins)) [SIG Network] +- Fixed a bug that the kubelet cannot start on BtrfS. ([#98042](https://github.com/kubernetes/kubernetes/pull/98042), [@gjkim42](https://github.com/gjkim42)) [SIG Node] +- Fixed a race condition on API server startup ensuring previously created webhook configurations are effective before the first write request is admitted. ([#95783](https://github.com/kubernetes/kubernetes/pull/95783), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery] +- Fixed an issue with garbage collection failing to clean up namespaced children of an object also referenced incorrectly by cluster-scoped children ([#98068](https://github.com/kubernetes/kubernetes/pull/98068), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps] +- Fixed authentication_duration_seconds metric scope. Previously, it included whole apiserver request duration which yields inaccurate results. ([#99944](https://github.com/kubernetes/kubernetes/pull/99944), [@marseel](https://github.com/marseel)) +- Fixed bug in CPUManager with race on container map access ([#97427](https://github.com/kubernetes/kubernetes/pull/97427), [@klueska](https://github.com/klueska)) [SIG Node] +- Fixed bug that caused cAdvisor to incorrectly detect single-socket multi-NUMA topology. ([#99315](https://github.com/kubernetes/kubernetes/pull/99315), [@iwankgb](https://github.com/iwankgb)) [SIG Node] +- Fixed cleanup of block devices when /var/lib/kubelet is a symlink. ([#96889](https://github.com/kubernetes/kubernetes/pull/96889), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- Fixed no effect namespace when exposing deployment with --dry-run=client. ([#97492](https://github.com/kubernetes/kubernetes/pull/97492), [@masap](https://github.com/masap)) [SIG CLI] +- Fixed provisioning of Cinder volumes migrated to CSI when StorageClass with AllowedTopologies was used. ([#98311](https://github.com/kubernetes/kubernetes/pull/98311), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- Fixes a bug of identifying the correct containerd process. ([#97888](https://github.com/kubernetes/kubernetes/pull/97888), [@pacoxu](https://github.com/pacoxu)) +- Fixes add-on manager leader election to use leases instead of endpoints, similar to what kube-controller-manager does in 1.20 ([#98968](https://github.com/kubernetes/kubernetes/pull/98968), [@liggitt](https://github.com/liggitt)) +- Fixes connection errors when using `--volume-host-cidr-denylist` or `--volume-host-allow-local-loopback` ([#98436](https://github.com/kubernetes/kubernetes/pull/98436), [@liggitt](https://github.com/liggitt)) [SIG Network and Storage] +- Fixes problem where invalid selector on `PodDisruptionBudget` leads to a nil pointer dereference that causes the Controller manager to crash loop. ([#98750](https://github.com/kubernetes/kubernetes/pull/98750), [@mortent](https://github.com/mortent)) +- Fixes spurious errors about IPv6 in `kube-proxy` logs on nodes with IPv6 disabled. ([#99127](https://github.com/kubernetes/kubernetes/pull/99127), [@danwinship](https://github.com/danwinship)) +- Fixing a bug where a failed node may not have the NoExecute taint set correctly ([#96876](https://github.com/kubernetes/kubernetes/pull/96876), [@howieyuen](https://github.com/howieyuen)) [SIG Apps and Node] +- GCE Internal LoadBalancer sync loop will now release the ILB IP address upon sync failure. An error in ILB forwarding rule creation will no longer leak IP addresses. ([#97740](https://github.com/kubernetes/kubernetes/pull/97740), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider and Network] +- Ignore update pod with no new images in alwaysPullImages admission controller ([#96668](https://github.com/kubernetes/kubernetes/pull/96668), [@pacoxu](https://github.com/pacoxu)) [SIG Apps, Auth and Node] +- Improve speed of vSphere PV provisioning and reduce number of API calls ([#100054](https://github.com/kubernetes/kubernetes/pull/100054), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage] +- KUBECTL_EXTERNAL_DIFF now accepts equal sign for additional parameters. ([#98158](https://github.com/kubernetes/kubernetes/pull/98158), [@dougsland](https://github.com/dougsland)) [SIG CLI] +- Kube-apiserver: an update of a pod with a generic ephemeral volume dropped that volume if the feature had been disabled since creating the pod with such a volume ([#99446](https://github.com/kubernetes/kubernetes/pull/99446), [@pohly](https://github.com/pohly)) [SIG Apps, Node and Storage] +- Kube-proxy: remove deprecated --cleanup-ipvs flag of kube-proxy, and make --cleanup flag always to flush IPVS ([#97336](https://github.com/kubernetes/kubernetes/pull/97336), [@maaoBit](https://github.com/maaoBit)) [SIG Network] +- Kubeadm installs etcd v3.4.13 when creating cluster v1.19 ([#97244](https://github.com/kubernetes/kubernetes/pull/97244), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: Fixes a kubeadm upgrade bug that could cause a custom CoreDNS configuration to be replaced with the default. ([#97016](https://github.com/kubernetes/kubernetes/pull/97016), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] +- Kubeadm: Some text in the `kubeadm upgrade plan` output has changed. If you have scripts or other automation that parses this output, please review these changes and update your scripts to account for the new output. ([#98728](https://github.com/kubernetes/kubernetes/pull/98728), [@stmcginnis](https://github.com/stmcginnis)) [SIG Cluster Lifecycle] +- Kubeadm: fix a bug in the host memory detection code on 32bit Linux platforms ([#97403](https://github.com/kubernetes/kubernetes/pull/97403), [@abelbarrera15](https://github.com/abelbarrera15)) [SIG Cluster Lifecycle] +- Kubeadm: fix a bug where "kubeadm join" would not properly handle missing names for existing etcd members. ([#97372](https://github.com/kubernetes/kubernetes/pull/97372), [@ihgann](https://github.com/ihgann)) [SIG Cluster Lifecycle] +- Kubeadm: fix a bug where "kubeadm upgrade" commands can fail if CoreDNS v1.8.0 is installed. ([#97919](https://github.com/kubernetes/kubernetes/pull/97919), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: fix a bug where external credentials in an existing admin.conf prevented the CA certificate to be written in the cluster-info ConfigMap. ([#98882](https://github.com/kubernetes/kubernetes/pull/98882), [@kvaps](https://github.com/kvaps)) [SIG Cluster Lifecycle] +- Kubeadm: get k8s CI version markers from k8s infra bucket ([#98836](https://github.com/kubernetes/kubernetes/pull/98836), [@hasheddan](https://github.com/hasheddan)) [SIG Cluster Lifecycle and Release] +- Kubeadm: skip validating pod subnet against node-cidr-mask when allocate-node-cidrs is set to be false ([#98984](https://github.com/kubernetes/kubernetes/pull/98984), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubectl logs: `--ignore-errors` is now honored by all containers, maintaining consistency with parallelConsumeRequest behavior. ([#97686](https://github.com/kubernetes/kubernetes/pull/97686), [@wzshiming](https://github.com/wzshiming)) +- Kubectl-convert: Fix `no kind "Ingress" is registered for version` error ([#97754](https://github.com/kubernetes/kubernetes/pull/97754), [@wzshiming](https://github.com/wzshiming)) +- Kubectl: Fixed panic when describing an ingress backend without an API Group ([#100505](https://github.com/kubernetes/kubernetes/pull/100505), [@lauchokyip](https://github.com/lauchokyip)) [SIG CLI] +- Kubelet now cleans up orphaned volume directories automatically ([#95301](https://github.com/kubernetes/kubernetes/pull/95301), [@lorenz](https://github.com/lorenz)) [SIG Node and Storage] +- Kubelet.exe on Windows now checks that the process running as administrator and the executing user account is listed in the built-in administrators group. This is the equivalent to checking the process is running as uid 0. ([#96616](https://github.com/kubernetes/kubernetes/pull/96616), [@perithompson](https://github.com/perithompson)) [SIG Node and Windows] +- Kubelet: Fix kubelet from panic after getting the wrong signal ([#98200](https://github.com/kubernetes/kubernetes/pull/98200), [@wzshiming](https://github.com/wzshiming)) [SIG Node] +- Kubelet: Fix repeatedly acquiring the inhibit lock ([#98088](https://github.com/kubernetes/kubernetes/pull/98088), [@wzshiming](https://github.com/wzshiming)) [SIG Node] +- Kubelet: Fixed the bug of getting the number of cpu when the number of cpu logical processors is more than 64 in windows ([#97378](https://github.com/kubernetes/kubernetes/pull/97378), [@hwdef](https://github.com/hwdef)) [SIG Node and Windows] +- Limits lease to have 1000 maximum attached objects. ([#98257](https://github.com/kubernetes/kubernetes/pull/98257), [@lingsamuel](https://github.com/lingsamuel)) +- Mitigate CVE-2020-8555 for kube-up using GCE by preventing local loopback folume hosts. ([#97934](https://github.com/kubernetes/kubernetes/pull/97934), [@mattcary](https://github.com/mattcary)) [SIG Cloud Provider and Storage] +- On single-stack configured (IPv4 or IPv6, but not both) clusters, Services which are both headless (no clusterIP) and selectorless (empty or undefined selector) will report `ipFamilyPolicy RequireDualStack` and will have entries in `ipFamilies[]` for both IPv4 and IPv6. This is a change from alpha, but does not have any impact on the manually-specified Endpoints and EndpointSlices for the Service. ([#99555](https://github.com/kubernetes/kubernetes/pull/99555), [@thockin](https://github.com/thockin)) [SIG Apps and Network] +- Performance regression #97685 has been fixed. ([#97860](https://github.com/kubernetes/kubernetes/pull/97860), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] +- Pod Log stats for windows now reports metrics ([#99221](https://github.com/kubernetes/kubernetes/pull/99221), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node, Storage, Testing and Windows] +- Pod status updates faster when reacting on probe results. The first readiness probe will be called faster when startup probes succeeded, which will make Pod status as ready faster. ([#98376](https://github.com/kubernetes/kubernetes/pull/98376), [@matthyx](https://github.com/matthyx)) +- Readjust `kubelet_containers_per_pod_count` buckets to only show metrics greater than 1. ([#98169](https://github.com/kubernetes/kubernetes/pull/98169), [@wawa0210](https://github.com/wawa0210)) +- Remove CSI topology from migrated in-tree gcepd volume. ([#97823](https://github.com/kubernetes/kubernetes/pull/97823), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Cloud Provider and Storage] +- Requests with invalid timeout parameters in the request URL now appear in the audit log correctly. ([#96901](https://github.com/kubernetes/kubernetes/pull/96901), [@tkashem](https://github.com/tkashem)) [SIG API Machinery and Testing] +- Resolve a "concurrent map read and map write" crashing error in the kubelet ([#95111](https://github.com/kubernetes/kubernetes/pull/95111), [@choury](https://github.com/choury)) [SIG Node] +- Resolves spurious `Failed to list *v1.Secret` or `Failed to list *v1.ConfigMap` messages in kubelet logs. ([#99538](https://github.com/kubernetes/kubernetes/pull/99538), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node] +- ResourceQuota of an entity now inclusively calculate Pod overhead ([#99600](https://github.com/kubernetes/kubernetes/pull/99600), [@gjkim42](https://github.com/gjkim42)) +- Return zero time (midnight on Jan. 1, 1970) instead of negative number when reporting startedAt and finishedAt of the not started or a running Pod when using `dockershim` as a runtime. ([#99585](https://github.com/kubernetes/kubernetes/pull/99585), [@Iceber](https://github.com/Iceber)) +- Reverts breaking change to inline AzureFile volumes; referenced secrets are now searched for in the same namespace as the pod as in previous releases. ([#100563](https://github.com/kubernetes/kubernetes/pull/100563), [@msau42](https://github.com/msau42)) +- Scores from InterPodAffinity have stronger differentiation. ([#98096](https://github.com/kubernetes/kubernetes/pull/98096), [@leileiwan](https://github.com/leileiwan)) [SIG Scheduling] +- Specifying the KUBE_TEST_REPO environment variable when e2e tests are executed will instruct the test infrastructure to load that image from a location within the specified repo, using a predefined pattern. ([#93510](https://github.com/kubernetes/kubernetes/pull/93510), [@smarterclayton](https://github.com/smarterclayton)) [SIG Testing] +- Static pods will be deleted gracefully. ([#98103](https://github.com/kubernetes/kubernetes/pull/98103), [@gjkim42](https://github.com/gjkim42)) [SIG Node] +- Sync node status during kubelet node shutdown. + Adds an pod admission handler that rejects new pods when the node is in progress of shutting down. ([#98005](https://github.com/kubernetes/kubernetes/pull/98005), [@wzshiming](https://github.com/wzshiming)) [SIG Node] +- The calculation of pod UIDs for static pods has changed to ensure each static pod gets a unique value - this will cause all static pod containers to be recreated/restarted if an in-place kubelet upgrade from 1.20 to 1.21 is performed. Note that draining pods before upgrading the kubelet across minor versions is the supported upgrade path. ([#87461](https://github.com/kubernetes/kubernetes/pull/87461), [@bboreham](https://github.com/bboreham)) [SIG Node] +- The maximum number of ports allowed in EndpointSlices has been increased from 100 to 20,000 ([#99795](https://github.com/kubernetes/kubernetes/pull/99795), [@robscott](https://github.com/robscott)) [SIG Network] +- Truncates a message if it hits the `NoteLengthLimit` when the scheduler records an event for the pod that indicates the pod has failed to schedule. ([#98715](https://github.com/kubernetes/kubernetes/pull/98715), [@carlory](https://github.com/carlory)) +- Updated k8s.gcr.io/ingress-gce-404-server-with-metrics-amd64 to a version that serves /metrics endpoint on a non-default port. ([#97621](https://github.com/kubernetes/kubernetes/pull/97621), [@vbannai](https://github.com/vbannai)) [SIG Cloud Provider] +- Updates the commands ` + - kubectl kustomize {arg} + - kubectl apply -k {arg} + `to use same code as kustomize CLI [v4.0.5](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.0.5) ([#98946](https://github.com/kubernetes/kubernetes/pull/98946), [@monopole](https://github.com/monopole)) +- Use force unmount for NFS volumes if regular mount fails after 1 minute timeout ([#96844](https://github.com/kubernetes/kubernetes/pull/96844), [@gnufied](https://github.com/gnufied)) [SIG Storage] +- Use network.Interface.VirtualMachine.ID to get the binded VM + Skip standalone VM when reconciling LoadBalancer ([#97635](https://github.com/kubernetes/kubernetes/pull/97635), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Using exec auth plugins with kubectl no longer results in warnings about constructing many client instances from the same exec auth config. ([#97857](https://github.com/kubernetes/kubernetes/pull/97857), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Auth] +- When a CNI plugin returns dual-stack pod IPs, kubelet will now try to respect the + "primary IP family" of the cluster by picking a primary pod IP of the same family + as the (primary) node IP, rather than assuming that the CNI plugin returned the IPs + in the order the administrator wanted (since some CNI plugins don't allow + configuring this). ([#97979](https://github.com/kubernetes/kubernetes/pull/97979), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] +- When dynamically provisioning Azure File volumes for a premium account, the requested size will be set to 100GB if the request is initially lower than this value to accommodate Azure File requirements. ([#99122](https://github.com/kubernetes/kubernetes/pull/99122), [@huffmanca](https://github.com/huffmanca)) [SIG Cloud Provider and Storage] +- When using `Containerd` on Windows, the `C:\Windows\System32\drivers\etc\hosts` file will now be managed by kubelet. ([#83730](https://github.com/kubernetes/kubernetes/pull/83730), [@claudiubelu](https://github.com/claudiubelu)) +- `VolumeBindingArgs` now allow `BindTimeoutSeconds` to be set as zero, while the value zero indicates no waiting for the checking of volume binding operation. ([#99835](https://github.com/kubernetes/kubernetes/pull/99835), [@chendave](https://github.com/chendave)) [SIG Scheduling and Storage] +- `kubectl exec` and `kubectl attach` now honor the `--quiet` flag which suppresses output from the local binary that could be confused by a script with the remote command output (all non-failure output is hidden). In addition, print inline with exec and attach the list of alternate containers when we default to the first spec.container. ([#99004](https://github.com/kubernetes/kubernetes/pull/99004), [@smarterclayton](https://github.com/smarterclayton)) [SIG CLI] + +### Other (Cleanup or Flake) + +- APIs for kubelet annotations and labels from `k8s.io/kubernetes/pkg/kubelet/apis` are now moved under `k8s.io/kubelet/pkg/apis/` ([#98931](https://github.com/kubernetes/kubernetes/pull/98931), [@michaelbeaumont](https://github.com/michaelbeaumont)) +- Apiserver_request_duration_seconds is promoted to stable status. ([#99925](https://github.com/kubernetes/kubernetes/pull/99925), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Instrumentation and Testing] +- Bump github.com/Azure/go-autorest/autorest to v0.11.12 ([#97033](https://github.com/kubernetes/kubernetes/pull/97033), [@patrickshan](https://github.com/patrickshan)) [SIG API Machinery, CLI, Cloud Provider and Cluster Lifecycle] +- Clients required to use go1.15.8+ or go1.16+ if kube-apiserver has the goaway feature enabled to avoid unexpected data race condition. ([#98809](https://github.com/kubernetes/kubernetes/pull/98809), [@answer1991](https://github.com/answer1991)) +- Delete deprecated `service.beta.kubernetes.io/azure-load-balancer-mixed-protocols` mixed procotol annotation in favor of the MixedProtocolLBService feature ([#97096](https://github.com/kubernetes/kubernetes/pull/97096), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- EndpointSlice generation is now incremented when labels change. ([#99750](https://github.com/kubernetes/kubernetes/pull/99750), [@robscott](https://github.com/robscott)) [SIG Network] +- Featuregate AllowInsecureBackendProxy graduates to GA and unconditionally enabled. ([#99658](https://github.com/kubernetes/kubernetes/pull/99658), [@deads2k](https://github.com/deads2k)) +- Increase timeout for pod lifecycle test to reach pod status=ready ([#96691](https://github.com/kubernetes/kubernetes/pull/96691), [@hh](https://github.com/hh)) +- Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. ([#98753](https://github.com/kubernetes/kubernetes/pull/98753), [@Jiawei0227](https://github.com/Jiawei0227)) +- Kube-apiserver: The OIDC authenticator no longer waits 10 seconds before attempting to fetch the metadata required to verify tokens. ([#97693](https://github.com/kubernetes/kubernetes/pull/97693), [@enj](https://github.com/enj)) [SIG API Machinery and Auth] +- Kube-proxy: Traffic from the cluster directed to ExternalIPs is always sent directly to the Service. ([#96296](https://github.com/kubernetes/kubernetes/pull/96296), [@aojea](https://github.com/aojea)) [SIG Network and Testing] +- Kubeadm: change the default image repository for CI images from 'gcr.io/kubernetes-ci-images' to 'gcr.io/k8s-staging-ci-images' ([#97087](https://github.com/kubernetes/kubernetes/pull/97087), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubectl: The deprecated `kubectl alpha debug` command is removed. Use `kubectl debug` instead. ([#98111](https://github.com/kubernetes/kubernetes/pull/98111), [@pandaamanda](https://github.com/pandaamanda)) [SIG CLI] +- Kubelet command line flags related to dockershim are now showing deprecation message as they will be removed along with dockershim in future release. ([#98730](https://github.com/kubernetes/kubernetes/pull/98730), [@dims](https://github.com/dims)) +- Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97618](https://github.com/kubernetes/kubernetes/pull/97618), [@jherrera123](https://github.com/jherrera123)) [SIG Release and Testing] +- Process start time on Windows now uses current process information ([#97491](https://github.com/kubernetes/kubernetes/pull/97491), [@jsturtevant](https://github.com/jsturtevant)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Windows] +- Resolves flakes in the Ingress conformance tests due to conflicts with controllers updating the Ingress object ([#98430](https://github.com/kubernetes/kubernetes/pull/98430), [@liggitt](https://github.com/liggitt)) [SIG Network and Testing] +- The `AttachVolumeLimit` feature gate (GA since v1.17) has been removed and now unconditionally enabled. ([#96539](https://github.com/kubernetes/kubernetes/pull/96539), [@ialidzhikov](https://github.com/ialidzhikov)) +- The `CSINodeInfo` feature gate that is GA since v1.17 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#96561](https://github.com/kubernetes/kubernetes/pull/96561), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Apps, Auth, Scheduling, Storage and Testing] +- The `apiserver_request_total` metric is promoted to stable status and no longer has a content-type dimensions, so any alerts/charts which presume the existence of this will fail. This is however, unlikely to be the case since it was effectively an unbounded dimension in the first place. ([#99788](https://github.com/kubernetes/kubernetes/pull/99788), [@logicalhan](https://github.com/logicalhan)) +- The default delegating authorization options now allow unauthenticated access to healthz, readyz, and livez. A system:masters user connecting to an authz delegator will not perform an authz check. ([#98325](https://github.com/kubernetes/kubernetes/pull/98325), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth, Cloud Provider and Scheduling] +- The deprecated feature gates `CSIDriverRegistry`, `BlockVolume` and `CSIBlockVolume` are now unconditionally enabled and can no longer be specified in component invocations. ([#98021](https://github.com/kubernetes/kubernetes/pull/98021), [@gavinfish](https://github.com/gavinfish)) [SIG Storage] +- The deprecated feature gates `RotateKubeletClientCertificate`, `AttachVolumeLimit`, `VolumePVCDataSource` and `EvenPodsSpread` are now unconditionally enabled and can no longer be specified in component invocations. ([#97306](https://github.com/kubernetes/kubernetes/pull/97306), [@gavinfish](https://github.com/gavinfish)) [SIG Node, Scheduling and Storage] +- The e2e suite can be instructed not to wait for pods in kube-system to be ready or for all nodes to be ready by passing `--allowed-not-ready-nodes=-1` when invoking the e2e.test program. This allows callers to run subsets of the e2e suite in scenarios other than perfectly healthy clusters. ([#98781](https://github.com/kubernetes/kubernetes/pull/98781), [@smarterclayton](https://github.com/smarterclayton)) [SIG Testing] +- The feature gates `WindowsGMSA` and `WindowsRunAsUserName` that are GA since v1.18 are now removed. ([#96531](https://github.com/kubernetes/kubernetes/pull/96531), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Node and Windows] +- The new `-gce-zones` flag on the `e2e.test` binary instructs tests that check for information about how the cluster interacts with the cloud to limit their queries to the provided zone list. If not specified, the current behavior of asking the cloud provider for all available zones in multi zone clusters is preserved. ([#98787](https://github.com/kubernetes/kubernetes/pull/98787), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Cluster Lifecycle and Testing] +- Update cri-tools to [v1.20.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.20.0) ([#97967](https://github.com/kubernetes/kubernetes/pull/97967), [@rajibmitra](https://github.com/rajibmitra)) [SIG Cloud Provider] +- Windows nodes on GCE will take longer to start due to dependencies installed at node creation time. ([#98284](https://github.com/kubernetes/kubernetes/pull/98284), [@pjh](https://github.com/pjh)) [SIG Cloud Provider] +- `apiserver_storage_objects` (a newer version of `etcd_object_counts`) is promoted and marked as stable. ([#100082](https://github.com/kubernetes/kubernetes/pull/100082), [@logicalhan](https://github.com/logicalhan)) + +### Uncategorized + +- GCE L4 Loadbalancers now handle > 5 ports in service spec correctly. ([#99595](https://github.com/kubernetes/kubernetes/pull/99595), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider] +- The DownwardAPIHugePages feature is beta. Users may use the feature if all workers in their cluster are min 1.20 version. The feature will be enabled by default in all installations in 1.22. ([#99610](https://github.com/kubernetes/kubernetes/pull/99610), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node] + +## Dependencies + +### Added +- github.com/go-errors/errors: [v1.0.1](https://github.com/go-errors/errors/tree/v1.0.1) +- github.com/gobuffalo/here: [v0.6.0](https://github.com/gobuffalo/here/tree/v0.6.0) +- github.com/google/shlex: [e7afc7f](https://github.com/google/shlex/tree/e7afc7f) +- github.com/markbates/pkger: [v0.17.1](https://github.com/markbates/pkger/tree/v0.17.1) +- github.com/moby/spdystream: [v0.2.0](https://github.com/moby/spdystream/tree/v0.2.0) +- github.com/monochromegane/go-gitignore: [205db1a](https://github.com/monochromegane/go-gitignore/tree/205db1a) +- github.com/niemeyer/pretty: [a10e7ca](https://github.com/niemeyer/pretty/tree/a10e7ca) +- github.com/xlab/treeprint: [a009c39](https://github.com/xlab/treeprint/tree/a009c39) +- go.starlark.net: 8dd3e2e +- golang.org/x/term: 6a3ed07 +- sigs.k8s.io/kustomize/api: v0.8.5 +- sigs.k8s.io/kustomize/cmd/config: v0.9.7 +- sigs.k8s.io/kustomize/kustomize/v4: v4.0.5 +- sigs.k8s.io/kustomize/kyaml: v0.10.15 + +### Changed +- dmitri.shuralyov.com/gpu/mtl: 666a987 → 28db891 +- github.com/Azure/go-autorest/autorest: [v0.11.1 → v0.11.12](https://github.com/Azure/go-autorest/autorest/compare/v0.11.1...v0.11.12) +- github.com/NYTimes/gziphandler: [56545f4 → v1.1.1](https://github.com/NYTimes/gziphandler/compare/56545f4...v1.1.1) +- github.com/cilium/ebpf: [1c8d4c9 → v0.2.0](https://github.com/cilium/ebpf/compare/1c8d4c9...v0.2.0) +- github.com/container-storage-interface/spec: [v1.2.0 → v1.3.0](https://github.com/container-storage-interface/spec/compare/v1.2.0...v1.3.0) +- github.com/containerd/console: [v1.0.0 → v1.0.1](https://github.com/containerd/console/compare/v1.0.0...v1.0.1) +- github.com/containerd/containerd: [v1.4.1 → v1.4.4](https://github.com/containerd/containerd/compare/v1.4.1...v1.4.4) +- github.com/coredns/corefile-migration: [v1.0.10 → v1.0.11](https://github.com/coredns/corefile-migration/compare/v1.0.10...v1.0.11) +- github.com/creack/pty: [v1.1.7 → v1.1.11](https://github.com/creack/pty/compare/v1.1.7...v1.1.11) +- github.com/docker/docker: [bd33bbf → v20.10.2+incompatible](https://github.com/docker/docker/compare/bd33bbf...v20.10.2) +- github.com/go-logr/logr: [v0.2.0 → v0.4.0](https://github.com/go-logr/logr/compare/v0.2.0...v0.4.0) +- github.com/go-openapi/spec: [v0.19.3 → v0.19.5](https://github.com/go-openapi/spec/compare/v0.19.3...v0.19.5) +- github.com/go-openapi/strfmt: [v0.19.3 → v0.19.5](https://github.com/go-openapi/strfmt/compare/v0.19.3...v0.19.5) +- github.com/go-openapi/validate: [v0.19.5 → v0.19.8](https://github.com/go-openapi/validate/compare/v0.19.5...v0.19.8) +- github.com/gogo/protobuf: [v1.3.1 → v1.3.2](https://github.com/gogo/protobuf/compare/v1.3.1...v1.3.2) +- github.com/golang/mock: [v1.4.1 → v1.4.4](https://github.com/golang/mock/compare/v1.4.1...v1.4.4) +- github.com/google/cadvisor: [v0.38.5 → v0.39.0](https://github.com/google/cadvisor/compare/v0.38.5...v0.39.0) +- github.com/heketi/heketi: [c2e2a4a → v10.2.0+incompatible](https://github.com/heketi/heketi/compare/c2e2a4a...v10.2.0) +- github.com/kisielk/errcheck: [v1.2.0 → v1.5.0](https://github.com/kisielk/errcheck/compare/v1.2.0...v1.5.0) +- github.com/konsorten/go-windows-terminal-sequences: [v1.0.3 → v1.0.2](https://github.com/konsorten/go-windows-terminal-sequences/compare/v1.0.3...v1.0.2) +- github.com/kr/text: [v0.1.0 → v0.2.0](https://github.com/kr/text/compare/v0.1.0...v0.2.0) +- github.com/mattn/go-runewidth: [v0.0.2 → v0.0.7](https://github.com/mattn/go-runewidth/compare/v0.0.2...v0.0.7) +- github.com/miekg/dns: [v1.1.4 → v1.1.35](https://github.com/miekg/dns/compare/v1.1.4...v1.1.35) +- github.com/moby/sys/mountinfo: [v0.1.3 → v0.4.0](https://github.com/moby/sys/mountinfo/compare/v0.1.3...v0.4.0) +- github.com/moby/term: [672ec06 → df9cb8a](https://github.com/moby/term/compare/672ec06...df9cb8a) +- github.com/mrunalp/fileutils: [abd8a0e → v0.5.0](https://github.com/mrunalp/fileutils/compare/abd8a0e...v0.5.0) +- github.com/olekukonko/tablewriter: [a0225b3 → v0.0.4](https://github.com/olekukonko/tablewriter/compare/a0225b3...v0.0.4) +- github.com/opencontainers/runc: [v1.0.0-rc92 → v1.0.0-rc93](https://github.com/opencontainers/runc/compare/v1.0.0-rc92...v1.0.0-rc93) +- github.com/opencontainers/runtime-spec: [4d89ac9 → e6143ca](https://github.com/opencontainers/runtime-spec/compare/4d89ac9...e6143ca) +- github.com/opencontainers/selinux: [v1.6.0 → v1.8.0](https://github.com/opencontainers/selinux/compare/v1.6.0...v1.8.0) +- github.com/sergi/go-diff: [v1.0.0 → v1.1.0](https://github.com/sergi/go-diff/compare/v1.0.0...v1.1.0) +- github.com/sirupsen/logrus: [v1.6.0 → v1.7.0](https://github.com/sirupsen/logrus/compare/v1.6.0...v1.7.0) +- github.com/syndtr/gocapability: [d983527 → 42c35b4](https://github.com/syndtr/gocapability/compare/d983527...42c35b4) +- github.com/willf/bitset: [d5bec33 → v1.1.11](https://github.com/willf/bitset/compare/d5bec33...v1.1.11) +- github.com/yuin/goldmark: [v1.1.27 → v1.2.1](https://github.com/yuin/goldmark/compare/v1.1.27...v1.2.1) +- golang.org/x/crypto: 7f63de1 → 5ea612d +- golang.org/x/exp: 6cc2880 → 85be41e +- golang.org/x/mobile: d2bd2a2 → e6ae53a +- golang.org/x/mod: v0.3.0 → ce943fd +- golang.org/x/net: 69a7880 → 3d97a24 +- golang.org/x/sync: cd5d95a → 67f06af +- golang.org/x/sys: 5cba982 → a50acf3 +- golang.org/x/time: 3af7569 → f8bda1e +- golang.org/x/tools: c1934b7 → v0.1.0 +- gopkg.in/check.v1: 41f04d3 → 8fa4692 +- gopkg.in/yaml.v2: v2.2.8 → v2.4.0 +- gotest.tools/v3: v3.0.2 → v3.0.3 +- k8s.io/gengo: 83324d8 → b6c5ce2 +- k8s.io/klog/v2: v2.4.0 → v2.8.0 +- k8s.io/kube-openapi: d219536 → 591a79e +- k8s.io/system-validators: v1.2.0 → v1.4.0 +- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.14 → v0.0.15 +- sigs.k8s.io/structured-merge-diff/v4: v4.0.2 → v4.1.0 + +### Removed +- github.com/codegangsta/negroni: [v1.0.0](https://github.com/codegangsta/negroni/tree/v1.0.0) +- github.com/docker/spdystream: [449fdfc](https://github.com/docker/spdystream/tree/449fdfc) +- github.com/golangplus/bytes: [45c989f](https://github.com/golangplus/bytes/tree/45c989f) +- github.com/golangplus/fmt: [2a5d6d7](https://github.com/golangplus/fmt/tree/2a5d6d7) +- github.com/gorilla/context: [v1.1.1](https://github.com/gorilla/context/tree/v1.1.1) +- github.com/kr/pty: [v1.1.5](https://github.com/kr/pty/tree/v1.1.5) +- rsc.io/quote/v3: v3.1.0 +- rsc.io/sampler: v1.3.0 +- sigs.k8s.io/kustomize: v2.0.3+incompatible diff --git a/releases/release-1.21/release-notes/major-themes.md b/releases/release-1.21/release-notes/major-themes.md index 9a599bbeb64..3c819439c40 100644 --- a/releases/release-1.21/release-notes/major-themes.md +++ b/releases/release-1.21/release-notes/major-themes.md @@ -1,41 +1,41 @@ -## What's New (Major Themes) - -### Deprecation of PodSecurityPolicy - -PSP as an admission controller resource is being deprecated. Deployed PodSecurityPolicy's will keep working until version 1.25, their target removal from the codebase. A new feature, with a working title of "PSP replacement policy", is being developed in [KEP-2579](https://features.k8s.io/2579). To learn more, read [PodSecurityPolicy Deprecation: Past, Present, and Future](https://blog.k8s.io/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/). - -### Kubernetes API Reference Documentation - -The API reference is now generated with [`gen-resourcesdocs`](https://github.com/kubernetes-sigs/reference-docs/tree/c96658d89fb21037b7d00d27e6dbbe6b32375837/gen-resourcesdocs) and it is moving to [Kubernetes API](https://docs.k8s.io/reference/kubernetes-api/) - -### Kustomize Updates in Kubectl - -[Kustomize](https://github.com/kubernetes-sigs/kustomize) version in kubectl had a jump from v2.0.3 to [v4.0.5](https://github.com/kubernetes/kubernetes/pull/98946). Kustomize is now treated as a library and future updates will be less sporadic. - -### Default Container Labels - -Pod with multiple containers can use `kubectl.kubernetes.io/default-container` label to have a container preselected for kubectl commands. More can be read in [KEP-2227](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md). - -### Immutable Secrets and ConfigMaps - -Immutable Secrets and ConfigMaps graduates to GA. This feature allows users to specify that the contents of a particular Secret or ConfigMap is immutable for its object lifetime. For such instances, Kubelet will not watch/poll for changes and therefore reducing apiserver load. - -### Structured Logging in Kubelet - -Kubelet has adopted [structured logging](https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#structured-logging), thanks to community effort in accomplishing this within the release timeline. Structured logging in the project remains an ongoing effort -- for folks interested in participating, [keep an eye / chime in to the mailing list discussion](https://groups.google.com/g/kubernetes-dev/c/y4WIw-ntUR8). - -### Storage Capacity Tracking - -Traditionally, the Kubernetes scheduler was based on the assumptions that additional persistent storage is available everywhere in the cluster and has infinite capacity. Topology constraints addressed the first point, but up to now pod scheduling was still done without considering that the remaining storage capacity may not be enough to start a new pod. [Storage capacity tracking](https://docs.k8s.io/concepts/storage/storage-capacity/) addresses that by adding an API for a CSI driver to report storage capacity and uses that information in the Kubernetes scheduler when choosing a node for a pod. This feature serves as a stepping stone for supporting dynamic provisioning for local volumes and other volume types that are more capacity constrained. - -### Generic Ephemeral Volumes - -[Generic ephermeral volumes](https://docs.k8s.io/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes) feature allows any existing storage driver that supports dynamic provisioning to be used as an ephemeral volume with the volume’s lifecycle bound to the Pod. It can be used to provide scratch storage that is different from the root disk, for example persistent memory, or a separate local disk on that node. All StorageClass parameters for volume provisioning are supported. All features supported with PersistentVolumeClaims are supported, such as storage capacity tracking, snapshots and restore, and volume resizing. - -### CSI Service Account Token - -CSI Service Account Token feature moves to Beta in 1.21. This feature improves the security posture and allows CSI drivers to receive pods' [bound service account tokens](https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1205-bound-service-account-tokens/README.md). This feature also provides a knob to re-publish volumes so that short-lived volumes can be refreshed. - -### CSI Health Monitoring - -The CSI health monitoring feature is being released as a second Alpha in Kubernetes 1.21. This feature enables CSI Drivers to share abnormal volume conditions from the underlying storage systems with Kubernetes so that they can be reported as events on PVCs or Pods. This feature serves as a stepping stone towards programmatic detection and resolution of individual volume health issues by Kubernetes. +## What's New (Major Themes) + +### Deprecation of PodSecurityPolicy + +PSP as an admission controller resource is being deprecated. Deployed PodSecurityPolicy's will keep working until version 1.25, their target removal from the codebase. A new feature, with a working title of "PSP replacement policy", is being developed in [KEP-2579](https://features.k8s.io/2579). To learn more, read [PodSecurityPolicy Deprecation: Past, Present, and Future](https://blog.k8s.io/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/). + +### Kubernetes API Reference Documentation + +The API reference is now generated with [`gen-resourcesdocs`](https://github.com/kubernetes-sigs/reference-docs/tree/c96658d89fb21037b7d00d27e6dbbe6b32375837/gen-resourcesdocs) and it is moving to [Kubernetes API](https://docs.k8s.io/reference/kubernetes-api/) + +### Kustomize Updates in Kubectl + +[Kustomize](https://github.com/kubernetes-sigs/kustomize) version in kubectl had a jump from v2.0.3 to [v4.0.5](https://github.com/kubernetes/kubernetes/pull/98946). Kustomize is now treated as a library and future updates will be less sporadic. + +### Default Container Labels + +Pod with multiple containers can use `kubectl.kubernetes.io/default-container` label to have a container preselected for kubectl commands. More can be read in [KEP-2227](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md). + +### Immutable Secrets and ConfigMaps + +Immutable Secrets and ConfigMaps graduates to GA. This feature allows users to specify that the contents of a particular Secret or ConfigMap is immutable for its object lifetime. For such instances, Kubelet will not watch/poll for changes and therefore reducing apiserver load. + +### Structured Logging in Kubelet + +Kubelet has adopted [structured logging](https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#structured-logging), thanks to community effort in accomplishing this within the release timeline. Structured logging in the project remains an ongoing effort -- for folks interested in participating, [keep an eye / chime in to the mailing list discussion](https://groups.google.com/g/kubernetes-dev/c/y4WIw-ntUR8). + +### Storage Capacity Tracking + +Traditionally, the Kubernetes scheduler was based on the assumptions that additional persistent storage is available everywhere in the cluster and has infinite capacity. Topology constraints addressed the first point, but up to now pod scheduling was still done without considering that the remaining storage capacity may not be enough to start a new pod. [Storage capacity tracking](https://docs.k8s.io/concepts/storage/storage-capacity/) addresses that by adding an API for a CSI driver to report storage capacity and uses that information in the Kubernetes scheduler when choosing a node for a pod. This feature serves as a stepping stone for supporting dynamic provisioning for local volumes and other volume types that are more capacity constrained. + +### Generic Ephemeral Volumes + +[Generic ephermeral volumes](https://docs.k8s.io/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes) feature allows any existing storage driver that supports dynamic provisioning to be used as an ephemeral volume with the volume’s lifecycle bound to the Pod. It can be used to provide scratch storage that is different from the root disk, for example persistent memory, or a separate local disk on that node. All StorageClass parameters for volume provisioning are supported. All features supported with PersistentVolumeClaims are supported, such as storage capacity tracking, snapshots and restore, and volume resizing. + +### CSI Service Account Token + +CSI Service Account Token feature moves to Beta in 1.21. This feature improves the security posture and allows CSI drivers to receive pods' [bound service account tokens](https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1205-bound-service-account-tokens/README.md). This feature also provides a knob to re-publish volumes so that short-lived volumes can be refreshed. + +### CSI Health Monitoring + +The CSI health monitoring feature is being released as a second Alpha in Kubernetes 1.21. This feature enables CSI Drivers to share abnormal volume conditions from the underlying storage systems with Kubernetes so that they can be reported as events on PVCs or Pods. This feature serves as a stepping stone towards programmatic detection and resolution of individual volume health issues by Kubernetes. diff --git a/releases/release-1.21/release-notes/maps/pr-100001-map.yaml b/releases/release-1.21/release-notes/maps/pr-100001-map.yaml index d3312576ca9..3e4ed768d1d 100644 --- a/releases/release-1.21/release-notes/maps/pr-100001-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-100001-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 100001 -releasenote: - do_not_publish: true +--- +pr: 100001 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-100002-map.yaml b/releases/release-1.21/release-notes/maps/pr-100002-map.yaml index d247a4977cf..73ed1175361 100644 --- a/releases/release-1.21/release-notes/maps/pr-100002-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-100002-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 100002 -releasenote: - do_not_publish: true +--- +pr: 100002 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-100082-map.yaml b/releases/release-1.21/release-notes/maps/pr-100082-map.yaml index b9c7679facb..6738c323c0d 100644 --- a/releases/release-1.21/release-notes/maps/pr-100082-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-100082-map.yaml @@ -1,4 +1,4 @@ -pr: 100082 -releasenote: - text: '`apiserver_storage_objects` (a newer version of `etcd_object_counts`) is - promoted and marked as stable.' +pr: 100082 +releasenote: + text: '`apiserver_storage_objects` (a newer version of `etcd_object_counts`) is + promoted and marked as stable.' diff --git a/releases/release-1.21/release-notes/maps/pr-100163-map.yaml b/releases/release-1.21/release-notes/maps/pr-100163-map.yaml index c5d25d2d2d8..b4827b2c7e0 100644 --- a/releases/release-1.21/release-notes/maps/pr-100163-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-100163-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 100163 -releasenote: - do_not_publish: true +--- +pr: 100163 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-100196-map.yaml b/releases/release-1.21/release-notes/maps/pr-100196-map.yaml index 15117d316ec..1a717cc27d8 100644 --- a/releases/release-1.21/release-notes/maps/pr-100196-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-100196-map.yaml @@ -1,3 +1,3 @@ -pr: 100196 -releasenote: - text: 'kubelet: completed support for structured logging' +pr: 100196 +releasenote: + text: 'kubelet: completed support for structured logging' diff --git a/releases/release-1.21/release-notes/maps/pr-100265-map.yaml b/releases/release-1.21/release-notes/maps/pr-100265-map.yaml index 8252d87e269..ef3ebddcf45 100644 --- a/releases/release-1.21/release-notes/maps/pr-100265-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-100265-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 100265 -releasenote: - do_not_publish: true +--- +pr: 100265 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-100472-map.yaml b/releases/release-1.21/release-notes/maps/pr-100472-map.yaml index f146f4a7f99..4a043310b2a 100644 --- a/releases/release-1.21/release-notes/maps/pr-100472-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-100472-map.yaml @@ -1,8 +1,8 @@ -pr: 100472 -releasenote: - text: '`discovery.k8s.io/v1beta1` EndpointSlices are deprecated in favor of `discovery.k8s.io/v1`, - and will no longer be served in Kubernetes v1.25.' - kinds: - - api-change - - cleanup - - deprecation +pr: 100472 +releasenote: + text: '`discovery.k8s.io/v1beta1` EndpointSlices are deprecated in favor of `discovery.k8s.io/v1`, + and will no longer be served in Kubernetes v1.25.' + kinds: + - api-change + - cleanup + - deprecation diff --git a/releases/release-1.21/release-notes/maps/pr-100563-map.yaml b/releases/release-1.21/release-notes/maps/pr-100563-map.yaml index 2989051ce62..7319fc3a3fd 100644 --- a/releases/release-1.21/release-notes/maps/pr-100563-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-100563-map.yaml @@ -1,4 +1,4 @@ -pr: 100563 -releasenote: - text: Reverts breaking change to inline AzureFile volumes; referenced secrets are - now searched for in the same namespace as the pod as in previous releases. +pr: 100563 +releasenote: + text: Reverts breaking change to inline AzureFile volumes; referenced secrets are + now searched for in the same namespace as the pod as in previous releases. diff --git a/releases/release-1.21/release-notes/maps/pr-100571-map.yaml b/releases/release-1.21/release-notes/maps/pr-100571-map.yaml index 86ef21813b4..eb60431d814 100644 --- a/releases/release-1.21/release-notes/maps/pr-100571-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-100571-map.yaml @@ -1,4 +1,4 @@ -pr: 100571 -releasenote: - text: Explicitly pass `KUBE_BUILD_CONFORMANCE=y` in `package-tarballs` to reenable - building the conformance tarballs. +pr: 100571 +releasenote: + text: Explicitly pass `KUBE_BUILD_CONFORMANCE=y` in `package-tarballs` to reenable + building the conformance tarballs. diff --git a/releases/release-1.21/release-notes/maps/pr-83730-map.yaml b/releases/release-1.21/release-notes/maps/pr-83730-map.yaml index e1a0fca46f8..dda6120f890 100644 --- a/releases/release-1.21/release-notes/maps/pr-83730-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-83730-map.yaml @@ -1,4 +1,4 @@ -pr: 83730 -releasenote: - text: When using `Containerd` on Windows, the `C:\Windows\System32\drivers\etc\hosts` - file will now be managed by kubelet. +pr: 83730 +releasenote: + text: When using `Containerd` on Windows, the `C:\Windows\System32\drivers\etc\hosts` + file will now be managed by kubelet. diff --git a/releases/release-1.21/release-notes/maps/pr-91592-map.yaml b/releases/release-1.21/release-notes/maps/pr-91592-map.yaml index fb37d729b94..9ae2ec17f29 100644 --- a/releases/release-1.21/release-notes/maps/pr-91592-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-91592-map.yaml @@ -1,4 +1,4 @@ -pr: 91592 -releasenote: - text: NetworkPolicy validation framework optimizations for rapidly verifying CNIs - work correctly across several pods and namespaces +pr: 91592 +releasenote: + text: NetworkPolicy validation framework optimizations for rapidly verifying CNIs + work correctly across several pods and namespaces diff --git a/releases/release-1.21/release-notes/maps/pr-92817-map.yaml b/releases/release-1.21/release-notes/maps/pr-92817-map.yaml index 6b8116b73b6..2e94a9dc5b8 100644 --- a/releases/release-1.21/release-notes/maps/pr-92817-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-92817-map.yaml @@ -1,3 +1,3 @@ -pr: 92817 -releasenote: - do_not_publish: true +pr: 92817 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-93861-map.yaml b/releases/release-1.21/release-notes/maps/pr-93861-map.yaml index 057c7bedd0b..35bc0055da2 100644 --- a/releases/release-1.21/release-notes/maps/pr-93861-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-93861-map.yaml @@ -1,6 +1,6 @@ -pr: 93861 -releasenote: - text: Add --permit-address-sharing flag to `kube-apiserver` to listen with `SO_REUSEADDR`. - While allowing to listen on wildcard IPs like 0.0.0.0 and specific IPs in parallel, - it avoids waiting for the kernel to release socket in `TIME_WAIT` state, and hence, - considerably reducing `kube-apiserver` restart times under certain conditions. +pr: 93861 +releasenote: + text: Add --permit-address-sharing flag to `kube-apiserver` to listen with `SO_REUSEADDR`. + While allowing to listen on wildcard IPs like 0.0.0.0 and specific IPs in parallel, + it avoids waiting for the kernel to release socket in `TIME_WAIT` state, and hence, + considerably reducing `kube-apiserver` restart times under certain conditions. diff --git a/releases/release-1.21/release-notes/maps/pr-93920-map.yaml b/releases/release-1.21/release-notes/maps/pr-93920-map.yaml index 5eedd6fad4c..eb37fc9a7a9 100644 --- a/releases/release-1.21/release-notes/maps/pr-93920-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-93920-map.yaml @@ -1,3 +1,3 @@ -pr: 93920 -releasenote: - text: Add limited lines to log on `--tail` option +pr: 93920 +releasenote: + text: Add limited lines to log on `--tail` option diff --git a/releases/release-1.21/release-notes/maps/pr-94858-map.yaml b/releases/release-1.21/release-notes/maps/pr-94858-map.yaml index dfad86adc13..6cc14aa6bc8 100644 --- a/releases/release-1.21/release-notes/maps/pr-94858-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-94858-map.yaml @@ -1,3 +1,3 @@ -pr: 94858 -releasenote: - text: Ensure empty string annotations are copied over in rollbacks. +pr: 94858 +releasenote: + text: Ensure empty string annotations are copied over in rollbacks. diff --git a/releases/release-1.21/release-notes/maps/pr-96021-map.yaml b/releases/release-1.21/release-notes/maps/pr-96021-map.yaml index 4838196e505..7bb4fc90f6b 100644 --- a/releases/release-1.21/release-notes/maps/pr-96021-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-96021-map.yaml @@ -1,5 +1,5 @@ -pr: 96021 -releasenote: - text: All data is no longer automatically deleted when a failure is detected during - creation of the volume data file on a CSI volume. Now only the data file and volume - path is removed. +pr: 96021 +releasenote: + text: All data is no longer automatically deleted when a failure is detected during + creation of the volume data file on a CSI volume. Now only the data file and volume + path is removed. diff --git a/releases/release-1.21/release-notes/maps/pr-96293-map.yaml b/releases/release-1.21/release-notes/maps/pr-96293-map.yaml index 83983c69f47..aba7f9ca8db 100644 --- a/releases/release-1.21/release-notes/maps/pr-96293-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-96293-map.yaml @@ -1,9 +1,9 @@ -pr: 96293 -releasenote: - text: |- - Azure file migration graduates to beta, with CSIMigrationAzureFile flag off by default - as it requires installation of AzureFile CSI Driver. Users should enable CSIMigration and - CSIMigrationAzureFile features and install the [AzureFile CSI Driver](https://github.com/kubernetes-sigs/azurefile-csi-driver) - to avoid disruption to existing Pod and PVC objects at that time. Azure File CSI driver does not support using same persistent - volume with different fsgroups. When CSI migration is enabled for azurefile driver, such case is not supported. - (there is a case we support where volume is mounted with 0777 and then it readable/writable by everyone) +pr: 96293 +releasenote: + text: |- + Azure file migration graduates to beta, with CSIMigrationAzureFile flag off by default + as it requires installation of AzureFile CSI Driver. Users should enable CSIMigration and + CSIMigrationAzureFile features and install the [AzureFile CSI Driver](https://github.com/kubernetes-sigs/azurefile-csi-driver) + to avoid disruption to existing Pod and PVC objects at that time. Azure File CSI driver does not support using same persistent + volume with different fsgroups. When CSI migration is enabled for azurefile driver, such case is not supported. + (there is a case we support where volume is mounted with 0777 and then it readable/writable by everyone) diff --git a/releases/release-1.21/release-notes/maps/pr-96539-map.yaml b/releases/release-1.21/release-notes/maps/pr-96539-map.yaml index b8adc248b1c..217c47d7c06 100644 --- a/releases/release-1.21/release-notes/maps/pr-96539-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-96539-map.yaml @@ -1,4 +1,4 @@ -pr: 96539 -releasenote: - text: The `AttachVolumeLimit` feature gate (GA since v1.17) has been removed and - now unconditionally enabled. +pr: 96539 +releasenote: + text: The `AttachVolumeLimit` feature gate (GA since v1.17) has been removed and + now unconditionally enabled. diff --git a/releases/release-1.21/release-notes/maps/pr-96655-map.yaml b/releases/release-1.21/release-notes/maps/pr-96655-map.yaml index 31df971f42b..c7fc6ee3f58 100644 --- a/releases/release-1.21/release-notes/maps/pr-96655-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-96655-map.yaml @@ -1,3 +1,3 @@ -pr: 96655 -releasenote: - text: 'kubectl: Add `--use-protocol-buffers` flag to kubectl top pods and nodes.' +pr: 96655 +releasenote: + text: 'kubectl: Add `--use-protocol-buffers` flag to kubectl top pods and nodes.' diff --git a/releases/release-1.21/release-notes/maps/pr-96689-map.yaml b/releases/release-1.21/release-notes/maps/pr-96689-map.yaml index 13bdc9a3fe3..bca296344f9 100644 --- a/releases/release-1.21/release-notes/maps/pr-96689-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-96689-map.yaml @@ -1,3 +1,3 @@ -pr: 96689 -releasenote: - text: Ensure all vSphere nodes are are tracked by volume attach-detach controller +pr: 96689 +releasenote: + text: Ensure all vSphere nodes are are tracked by volume attach-detach controller diff --git a/releases/release-1.21/release-notes/maps/pr-96691-map.yaml b/releases/release-1.21/release-notes/maps/pr-96691-map.yaml index a726619e063..bd6eaedf800 100644 --- a/releases/release-1.21/release-notes/maps/pr-96691-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-96691-map.yaml @@ -1,4 +1,4 @@ -pr: 96691 -releasenote: - text: Increase timeout for pod lifecycle test to reach pod status=ready - do_not_publish: false +pr: 96691 +releasenote: + text: Increase timeout for pod lifecycle test to reach pod status=ready + do_not_publish: false diff --git a/releases/release-1.21/release-notes/maps/pr-96877-map.yaml b/releases/release-1.21/release-notes/maps/pr-96877-map.yaml index f33e43db214..14d51d82051 100644 --- a/releases/release-1.21/release-notes/maps/pr-96877-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-96877-map.yaml @@ -1,4 +1,4 @@ -pr: 96877 -releasenote: - text: Fix privileged config of Pod Sandbox which was previously ignored. - do_not_publish: false +pr: 96877 +releasenote: + text: Fix privileged config of Pod Sandbox which was previously ignored. + do_not_publish: false diff --git a/releases/release-1.21/release-notes/maps/pr-97011-map.yaml b/releases/release-1.21/release-notes/maps/pr-97011-map.yaml index c67fbd70d09..ccae3009857 100644 --- a/releases/release-1.21/release-notes/maps/pr-97011-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97011-map.yaml @@ -1,3 +1,3 @@ -pr: 97011 -releasenote: - text: Cluster Autoscaler version bump to v1.20.0 +pr: 97011 +releasenote: + text: Cluster Autoscaler version bump to v1.20.0 diff --git a/releases/release-1.21/release-notes/maps/pr-97096-map.yaml b/releases/release-1.21/release-notes/maps/pr-97096-map.yaml index 90e04f19d61..a68f1777481 100644 --- a/releases/release-1.21/release-notes/maps/pr-97096-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97096-map.yaml @@ -1,5 +1,5 @@ -pr: 97096 -releasenote: - kinds: - - cleanup - - deprecation +pr: 97096 +releasenote: + kinds: + - cleanup + - deprecation diff --git a/releases/release-1.21/release-notes/maps/pr-97115-map.yaml b/releases/release-1.21/release-notes/maps/pr-97115-map.yaml index c382825bfee..b2ea8304053 100644 --- a/releases/release-1.21/release-notes/maps/pr-97115-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97115-map.yaml @@ -1,3 +1,3 @@ -pr: 97115 -releasenote: - do_not_publish: true +pr: 97115 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-97193-map.yaml b/releases/release-1.21/release-notes/maps/pr-97193-map.yaml index 3f81ae78b22..bdc1181a02d 100644 --- a/releases/release-1.21/release-notes/maps/pr-97193-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97193-map.yaml @@ -1,3 +1,3 @@ -pr: 97193 -releasenote: - text: fix flaky failure on devicemanager TestDevicePluginReRegistrationProbeMode +pr: 97193 +releasenote: + text: fix flaky failure on devicemanager TestDevicePluginReRegistrationProbeMode diff --git a/releases/release-1.21/release-notes/maps/pr-97216-map.yaml b/releases/release-1.21/release-notes/maps/pr-97216-map.yaml index bac74fa4a5c..e554562646b 100644 --- a/releases/release-1.21/release-notes/maps/pr-97216-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97216-map.yaml @@ -1,3 +1,3 @@ -pr: 97216 -releasenote: - text: Clarified `NetworkPolicy` policyTypes documentation. +pr: 97216 +releasenote: + text: Clarified `NetworkPolicy` policyTypes documentation. diff --git a/releases/release-1.21/release-notes/maps/pr-97244-map.yaml b/releases/release-1.21/release-notes/maps/pr-97244-map.yaml index 4d2917c972d..d7753fd68ab 100644 --- a/releases/release-1.21/release-notes/maps/pr-97244-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97244-map.yaml @@ -1,3 +1,3 @@ -pr: 97244 -releasenote: - text: kubeadm installs etcd v3.4.13 when creating cluster v1.19 +pr: 97244 +releasenote: + text: kubeadm installs etcd v3.4.13 when creating cluster v1.19 diff --git a/releases/release-1.21/release-notes/maps/pr-97336-map.yaml b/releases/release-1.21/release-notes/maps/pr-97336-map.yaml index 665f71f251c..71f3d434832 100644 --- a/releases/release-1.21/release-notes/maps/pr-97336-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97336-map.yaml @@ -1,5 +1,5 @@ -pr: 97336 -releasenote: - kinds: - - bug - - deprecation +pr: 97336 +releasenote: + kinds: + - bug + - deprecation diff --git a/releases/release-1.21/release-notes/maps/pr-97349-map.yaml b/releases/release-1.21/release-notes/maps/pr-97349-map.yaml index 62dfe1b45d3..d9fc00a2213 100644 --- a/releases/release-1.21/release-notes/maps/pr-97349-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97349-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 97349 -releasenote: - do_not_publish: true +--- +pr: 97349 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-97395-map.yaml b/releases/release-1.21/release-notes/maps/pr-97395-map.yaml index 24d3f07930d..424f84d2d85 100644 --- a/releases/release-1.21/release-notes/maps/pr-97395-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97395-map.yaml @@ -1,5 +1,5 @@ -pr: 97395 -releasenote: - text: New admission controller `DenyServiceExternalIPs` is available. Clusters - which do not *need* the Service `externalIPs` feature should enable this controller - and be more secure. +pr: 97395 +releasenote: + text: New admission controller `DenyServiceExternalIPs` is available. Clusters + which do not *need* the Service `externalIPs` feature should enable this controller + and be more secure. diff --git a/releases/release-1.21/release-notes/maps/pr-97408-map.yaml b/releases/release-1.21/release-notes/maps/pr-97408-map.yaml index ae341ecea22..dc84f174d60 100644 --- a/releases/release-1.21/release-notes/maps/pr-97408-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97408-map.yaml @@ -1,4 +1,4 @@ -pr: 97408 -releasenote: - text: '`kubectl wait` ensures that observedGeneration >= generation to prevent stale - state reporting. An example scenario can be found on CRD updates.' +pr: 97408 +releasenote: + text: '`kubectl wait` ensures that observedGeneration >= generation to prevent stale + state reporting. An example scenario can be found on CRD updates.' diff --git a/releases/release-1.21/release-notes/maps/pr-97417-map.yaml b/releases/release-1.21/release-notes/maps/pr-97417-map.yaml index 265f10daa16..67d954baedb 100644 --- a/releases/release-1.21/release-notes/maps/pr-97417-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97417-map.yaml @@ -1,3 +1,3 @@ -pr: 97417 -releasenote: - do_not_publish: true +pr: 97417 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-97431-map.yaml b/releases/release-1.21/release-notes/maps/pr-97431-map.yaml index 343e228dbb7..95ef42cef97 100644 --- a/releases/release-1.21/release-notes/maps/pr-97431-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97431-map.yaml @@ -1,5 +1,5 @@ -pr: 97431 -releasenote: - text: AWS cloud provider supports auto-discovering subnets without any `kubernetes.io/cluster/<clusterName>` - tags. It also supports additional service annotation `service.beta.kubernetes.io/aws-load-balancer-subnets` - to manually configure the subnets. +pr: 97431 +releasenote: + text: AWS cloud provider supports auto-discovering subnets without any `kubernetes.io/cluster/<clusterName>` + tags. It also supports additional service annotation `service.beta.kubernetes.io/aws-load-balancer-subnets` + to manually configure the subnets. diff --git a/releases/release-1.21/release-notes/maps/pr-97507-map.yaml b/releases/release-1.21/release-notes/maps/pr-97507-map.yaml index 71dd3613f82..cf6c28522f0 100644 --- a/releases/release-1.21/release-notes/maps/pr-97507-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97507-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 97507 -releasenote: - do_not_publish: true +--- +pr: 97507 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-97509-map.yaml b/releases/release-1.21/release-notes/maps/pr-97509-map.yaml index 79f19c2638e..5c0149fdcf6 100644 --- a/releases/release-1.21/release-notes/maps/pr-97509-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97509-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 97509 -releasenote: - do_not_publish: true +--- +pr: 97509 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-97543-map.yaml b/releases/release-1.21/release-notes/maps/pr-97543-map.yaml index a6d9f480b47..e3649edfb31 100644 --- a/releases/release-1.21/release-notes/maps/pr-97543-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97543-map.yaml @@ -1,3 +1,3 @@ -pr: 97543 -releasenote: - text: '`ServiceNodeExclusion`, `NodeDisruptionExclusion` and `LegacyNodeRoleBehavior` features have been promoted to GA. `ServiceNodeExclusion` and `NodeDisruptionExclusion` are now unconditionally enabled, while `LegacyNodeRoleBehavior` is unconditionally disabled. To prevent control plane nodes from being added to load balancers automatically, upgrade users need to add "node.kubernetes.io/exclude-from-external-load-balancers" label to control plane nodes.' +pr: 97543 +releasenote: + text: '`ServiceNodeExclusion`, `NodeDisruptionExclusion` and `LegacyNodeRoleBehavior` features have been promoted to GA. `ServiceNodeExclusion` and `NodeDisruptionExclusion` are now unconditionally enabled, while `LegacyNodeRoleBehavior` is unconditionally disabled. To prevent control plane nodes from being added to load balancers automatically, upgrade users need to add "node.kubernetes.io/exclude-from-external-load-balancers" label to control plane nodes.' diff --git a/releases/release-1.21/release-notes/maps/pr-97627-map.yaml b/releases/release-1.21/release-notes/maps/pr-97627-map.yaml index 253982e3b44..f0890667647 100644 --- a/releases/release-1.21/release-notes/maps/pr-97627-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97627-map.yaml @@ -1,3 +1,3 @@ -pr: 97627 -releasenote: - text: 'kubeadm: deprecated command "alpha selfhosting pivot" is now removed.' +pr: 97627 +releasenote: + text: 'kubeadm: deprecated command "alpha selfhosting pivot" is now removed.' diff --git a/releases/release-1.21/release-notes/maps/pr-97678-map.yaml b/releases/release-1.21/release-notes/maps/pr-97678-map.yaml index 82a23830e6e..b515857c906 100644 --- a/releases/release-1.21/release-notes/maps/pr-97678-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97678-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 97678 -releasenote: - do_not_publish: true +--- +pr: 97678 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-97686-map.yaml b/releases/release-1.21/release-notes/maps/pr-97686-map.yaml index 7fcb3d7a8bb..3ea9312c0f3 100644 --- a/releases/release-1.21/release-notes/maps/pr-97686-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97686-map.yaml @@ -1,4 +1,4 @@ -pr: 97686 -releasenote: - text: 'Kubectl logs: `--ignore-errors` is now honored by all containers, maintaining - consistency with parallelConsumeRequest behavior.' +pr: 97686 +releasenote: + text: 'Kubectl logs: `--ignore-errors` is now honored by all containers, maintaining + consistency with parallelConsumeRequest behavior.' diff --git a/releases/release-1.21/release-notes/maps/pr-97754-map.yaml b/releases/release-1.21/release-notes/maps/pr-97754-map.yaml index 52ac6442866..57e2dc72354 100644 --- a/releases/release-1.21/release-notes/maps/pr-97754-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97754-map.yaml @@ -1,3 +1,3 @@ -pr: 97754 -releasenote: - text: 'kubectl-convert: Fix `no kind "Ingress" is registered for version` error' +pr: 97754 +releasenote: + text: 'kubectl-convert: Fix `no kind "Ingress" is registered for version` error' diff --git a/releases/release-1.21/release-notes/maps/pr-97837-map.yaml b/releases/release-1.21/release-notes/maps/pr-97837-map.yaml index 4900b4a9584..273702edb21 100644 --- a/releases/release-1.21/release-notes/maps/pr-97837-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97837-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 97837 -releasenote: - do_not_publish: true +--- +pr: 97837 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-97877-map.yaml b/releases/release-1.21/release-notes/maps/pr-97877-map.yaml index e1268e56c30..1b016040198 100644 --- a/releases/release-1.21/release-notes/maps/pr-97877-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97877-map.yaml @@ -1,3 +1,3 @@ -pr: 97877 -releasenote: - text: Fix Azure file migration e2e test failure when CSIMigration is turned on. +pr: 97877 +releasenote: + text: Fix Azure file migration e2e test failure when CSIMigration is turned on. diff --git a/releases/release-1.21/release-notes/maps/pr-97888-map.yaml b/releases/release-1.21/release-notes/maps/pr-97888-map.yaml index 63cf0ab5cf4..f9e61247e84 100644 --- a/releases/release-1.21/release-notes/maps/pr-97888-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97888-map.yaml @@ -1,3 +1,3 @@ -pr: 97888 -releasenote: - text: Fixes a bug of identifying the correct containerd process. +pr: 97888 +releasenote: + text: Fixes a bug of identifying the correct containerd process. diff --git a/releases/release-1.21/release-notes/maps/pr-97935-map.yaml b/releases/release-1.21/release-notes/maps/pr-97935-map.yaml index 0eb97a4d723..31a5abcb0ee 100644 --- a/releases/release-1.21/release-notes/maps/pr-97935-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97935-map.yaml @@ -1,5 +1,5 @@ -pr: 97935 -releasenote: - kinds: - - documentation - - deprecation +pr: 97935 +releasenote: + kinds: + - documentation + - deprecation diff --git a/releases/release-1.21/release-notes/maps/pr-97941-map.yaml b/releases/release-1.21/release-notes/maps/pr-97941-map.yaml index d4b90edc118..ccb54bc9371 100644 --- a/releases/release-1.21/release-notes/maps/pr-97941-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-97941-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 97941 -releasenote: - do_not_publish: true +--- +pr: 97941 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98001-map.yaml b/releases/release-1.21/release-notes/maps/pr-98001-map.yaml index d7da1053cca..9a71dc59442 100644 --- a/releases/release-1.21/release-notes/maps/pr-98001-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98001-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98001 -releasenote: - do_not_publish: true +--- +pr: 98001 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98033-map.yaml b/releases/release-1.21/release-notes/maps/pr-98033-map.yaml index e614cc99ac6..729f8eaf066 100644 --- a/releases/release-1.21/release-notes/maps/pr-98033-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98033-map.yaml @@ -1,3 +1,3 @@ -pr: 98033 -releasenote: - text: The feature gate `RootCAConfigMap` graduated to GA in v1.21 and therefore will be unconditionally enabled. This flag will be removed in v1.22 release. +pr: 98033 +releasenote: + text: The feature gate `RootCAConfigMap` graduated to GA in v1.21 and therefore will be unconditionally enabled. This flag will be removed in v1.22 release. diff --git a/releases/release-1.21/release-notes/maps/pr-98074-map.yaml b/releases/release-1.21/release-notes/maps/pr-98074-map.yaml index 03d340ec13a..e8841843712 100644 --- a/releases/release-1.21/release-notes/maps/pr-98074-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98074-map.yaml @@ -1,4 +1,4 @@ -pr: 98074 -releasenote: - text: The kube-apiserver now resets `managedFields` that got corrupted by a mutating - admission controller. +pr: 98074 +releasenote: + text: The kube-apiserver now resets `managedFields` that got corrupted by a mutating + admission controller. diff --git a/releases/release-1.21/release-notes/maps/pr-98093-map.yaml b/releases/release-1.21/release-notes/maps/pr-98093-map.yaml index 0cc1f79fa2c..493177223d2 100644 --- a/releases/release-1.21/release-notes/maps/pr-98093-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98093-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98093 -releasenote: - do_not_publish: true +--- +pr: 98093 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98111-map.yaml b/releases/release-1.21/release-notes/maps/pr-98111-map.yaml index 5f0d5fa3af0..97a6539e1f5 100644 --- a/releases/release-1.21/release-notes/maps/pr-98111-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98111-map.yaml @@ -1,5 +1,5 @@ -pr: 98111 -releasenote: - kinds: - - cleanup - - deprecation +pr: 98111 +releasenote: + kinds: + - cleanup + - deprecation diff --git a/releases/release-1.21/release-notes/maps/pr-98116-map.yaml b/releases/release-1.21/release-notes/maps/pr-98116-map.yaml index 7f8e80a1523..bab81f5fb20 100644 --- a/releases/release-1.21/release-notes/maps/pr-98116-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98116-map.yaml @@ -1,6 +1,6 @@ -pr: 98116 -releasenote: - text: "The `EndpointSlice` mirroring controller mirrors endpoints annotations and - labels to the generated endpoint slices, it also ensures that updates on any of - these fields are mirrored. \nThe well-known annotation `endpoints.kubernetes.io/last-change-trigger-time` - is skipped and not mirrored." +pr: 98116 +releasenote: + text: "The `EndpointSlice` mirroring controller mirrors endpoints annotations and + labels to the generated endpoint slices, it also ensures that updates on any of + these fields are mirrored. \nThe well-known annotation `endpoints.kubernetes.io/last-change-trigger-time` + is skipped and not mirrored." diff --git a/releases/release-1.21/release-notes/maps/pr-98134-map.yaml b/releases/release-1.21/release-notes/maps/pr-98134-map.yaml index c69fdf6ae2e..fc74f94c2fb 100644 --- a/releases/release-1.21/release-notes/maps/pr-98134-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98134-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98134 -releasenote: - do_not_publish: true +--- +pr: 98134 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98138-map.yaml b/releases/release-1.21/release-notes/maps/pr-98138-map.yaml index 6f35db73abc..5764923c45f 100644 --- a/releases/release-1.21/release-notes/maps/pr-98138-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98138-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98138 -releasenote: - do_not_publish: true +--- +pr: 98138 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98154-map.yaml b/releases/release-1.21/release-notes/maps/pr-98154-map.yaml index e530bbbce7d..0b70669c69c 100644 --- a/releases/release-1.21/release-notes/maps/pr-98154-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98154-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98154 -releasenote: - do_not_publish: true +--- +pr: 98154 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98169-map.yaml b/releases/release-1.21/release-notes/maps/pr-98169-map.yaml index 5587078ccaa..68093f1424f 100644 --- a/releases/release-1.21/release-notes/maps/pr-98169-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98169-map.yaml @@ -1,4 +1,4 @@ -pr: 98169 -releasenote: - text: Readjust `kubelet_containers_per_pod_count` buckets to only show metrics greater - than 1. +pr: 98169 +releasenote: + text: Readjust `kubelet_containers_per_pod_count` buckets to only show metrics greater + than 1. diff --git a/releases/release-1.21/release-notes/maps/pr-98201-map.yaml b/releases/release-1.21/release-notes/maps/pr-98201-map.yaml index a5c2ac3d347..5293d270089 100644 --- a/releases/release-1.21/release-notes/maps/pr-98201-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98201-map.yaml @@ -1,3 +1,3 @@ -pr: 98201 -releasenote: - text: Fixes a duplicate error messages when running `kubectl edit` on `ResourceQuota` +pr: 98201 +releasenote: + text: Fixes a duplicate error messages when running `kubectl edit` on `ResourceQuota` diff --git a/releases/release-1.21/release-notes/maps/pr-98203-map.yaml b/releases/release-1.21/release-notes/maps/pr-98203-map.yaml index 8e66991b65f..fb71d31b795 100644 --- a/releases/release-1.21/release-notes/maps/pr-98203-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98203-map.yaml @@ -1,9 +1,9 @@ -pr: 98203 -releasenote: - text: Aborting the drain command in a list of nodes will be deprecated. The new - behavior will make the drain command go through all nodes even if one or more - nodes failed during the drain. For now, users can try such experience by enabling - --ignore-errors flag. - kinds: - - feature - - deprecation +pr: 98203 +releasenote: + text: Aborting the drain command in a list of nodes will be deprecated. The new + behavior will make the drain command go through all nodes even if one or more + nodes failed during the drain. For now, users can try such experience by enabling + --ignore-errors flag. + kinds: + - feature + - deprecation diff --git a/releases/release-1.21/release-notes/maps/pr-98205-map.yaml b/releases/release-1.21/release-notes/maps/pr-98205-map.yaml index 8a02a18167a..09a7a16dfee 100644 --- a/releases/release-1.21/release-notes/maps/pr-98205-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98205-map.yaml @@ -1,4 +1,4 @@ -pr: 98205 -releasenote: - text: The pause image upgraded to `v3.4.1` in kubelet and kubeadm for both Linux - and Windows. +pr: 98205 +releasenote: + text: The pause image upgraded to `v3.4.1` in kubelet and kubeadm for both Linux + and Windows. diff --git a/releases/release-1.21/release-notes/maps/pr-98243-map.yaml b/releases/release-1.21/release-notes/maps/pr-98243-map.yaml index 8e4ee335fae..428df3d282c 100644 --- a/releases/release-1.21/release-notes/maps/pr-98243-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98243-map.yaml @@ -1,7 +1,7 @@ -pr: 98243 -releasenote: - text: Remove alpha `CSIMigrationXXComplete` flag and add alpha `InTreePluginXXUnregister` - flag. Deprecate `CSIMigrationvSphereComplete` flag and it will be removed in v1.22. - kinds: - - feature - - deprecation +pr: 98243 +releasenote: + text: Remove alpha `CSIMigrationXXComplete` flag and add alpha `InTreePluginXXUnregister` + flag. Deprecate `CSIMigrationvSphereComplete` flag and it will be removed in v1.22. + kinds: + - feature + - deprecation diff --git a/releases/release-1.21/release-notes/maps/pr-98252-map.yaml b/releases/release-1.21/release-notes/maps/pr-98252-map.yaml index 493a2550bb3..ce267e6b9ef 100644 --- a/releases/release-1.21/release-notes/maps/pr-98252-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98252-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98252 -releasenote: - do_not_publish: true +--- +pr: 98252 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98257-map.yaml b/releases/release-1.21/release-notes/maps/pr-98257-map.yaml index ca1deb4ef61..73e271f4e7b 100644 --- a/releases/release-1.21/release-notes/maps/pr-98257-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98257-map.yaml @@ -1,3 +1,3 @@ -pr: 98257 -releasenote: - text: Limits lease to have 1000 maximum attached objects. +pr: 98257 +releasenote: + text: Limits lease to have 1000 maximum attached objects. diff --git a/releases/release-1.21/release-notes/maps/pr-98259-map.yaml b/releases/release-1.21/release-notes/maps/pr-98259-map.yaml index 430f90fb57e..bb94a26860a 100644 --- a/releases/release-1.21/release-notes/maps/pr-98259-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98259-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98259 -releasenote: - do_not_publish: true +--- +pr: 98259 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98277-map.yaml b/releases/release-1.21/release-notes/maps/pr-98277-map.yaml index a19bb419325..a510eb4d98f 100644 --- a/releases/release-1.21/release-notes/maps/pr-98277-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98277-map.yaml @@ -1,3 +1,3 @@ -pr: 98277 -releasenote: - text: Services can specify loadBalancerClass to use a custom load balancer +pr: 98277 +releasenote: + text: Services can specify loadBalancerClass to use a custom load balancer diff --git a/releases/release-1.21/release-notes/maps/pr-98301-map.yaml b/releases/release-1.21/release-notes/maps/pr-98301-map.yaml index 269b4c691e6..d22af421fb7 100644 --- a/releases/release-1.21/release-notes/maps/pr-98301-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98301-map.yaml @@ -1,3 +1,3 @@ -pr: 98301 -releasenote: - text: 'kubectl: add bash-completion for comma separated list on `kubectl get`' +pr: 98301 +releasenote: + text: 'kubectl: add bash-completion for comma separated list on `kubectl get`' diff --git a/releases/release-1.21/release-notes/maps/pr-98305-map.yaml b/releases/release-1.21/release-notes/maps/pr-98305-map.yaml index 2c4a8108602..689bb1741e2 100644 --- a/releases/release-1.21/release-notes/maps/pr-98305-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98305-map.yaml @@ -1,4 +1,4 @@ -pr: 98305 -releasenote: - text: 'kube-proxy: fix a bug on UDP `NodePort` Services where stale connection tracking - entries may blackhole the traffic directed to the `NodePort`' +pr: 98305 +releasenote: + text: 'kube-proxy: fix a bug on UDP `NodePort` Services where stale connection tracking + entries may blackhole the traffic directed to the `NodePort`' diff --git a/releases/release-1.21/release-notes/maps/pr-98324-map.yaml b/releases/release-1.21/release-notes/maps/pr-98324-map.yaml index fc8cbd5afd7..43b0f2539d7 100644 --- a/releases/release-1.21/release-notes/maps/pr-98324-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98324-map.yaml @@ -1,4 +1,4 @@ -pr: 98324 -releasenote: - text: Export `NewDebuggingRoundTripper` function and `DebugLevel` options in the - k8s.io/client-go/transport package. +pr: 98324 +releasenote: + text: Export `NewDebuggingRoundTripper` function and `DebugLevel` options in the + k8s.io/client-go/transport package. diff --git a/releases/release-1.21/release-notes/maps/pr-98334-map.yaml b/releases/release-1.21/release-notes/maps/pr-98334-map.yaml index 1ac68d3f99f..55f73ee825f 100644 --- a/releases/release-1.21/release-notes/maps/pr-98334-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98334-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98334 -releasenote: - do_not_publish: true +--- +pr: 98334 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98358-map.yaml b/releases/release-1.21/release-notes/maps/pr-98358-map.yaml index bf74dfcd53d..ad064eb25e4 100644 --- a/releases/release-1.21/release-notes/maps/pr-98358-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98358-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98358 -releasenote: - do_not_publish: true +--- +pr: 98358 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98376-map.yaml b/releases/release-1.21/release-notes/maps/pr-98376-map.yaml index a76d7166830..82a1df99211 100644 --- a/releases/release-1.21/release-notes/maps/pr-98376-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98376-map.yaml @@ -1,5 +1,5 @@ -pr: 98376 -releasenote: - text: Pod status updates faster when reacting on probe results. The first readiness - probe will be called faster when startup probes succeeded, which will make Pod - status as ready faster. +pr: 98376 +releasenote: + text: Pod status updates faster when reacting on probe results. The first readiness + probe will be called faster when startup probes succeeded, which will make Pod + status as ready faster. diff --git a/releases/release-1.21/release-notes/maps/pr-98458-map.yaml b/releases/release-1.21/release-notes/maps/pr-98458-map.yaml index bd637f4cecd..f04af8153ae 100644 --- a/releases/release-1.21/release-notes/maps/pr-98458-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98458-map.yaml @@ -1,7 +1,7 @@ -pr: 98458 -releasenote: - text: Cluster admins can now turn off `/debug/pprof` and `/debug/flags/v` endpoint - in kubelet by setting `enableProfilingHandler` and `enableDebugFlagsHandler` to - `false` in the Kubelet configuration file. Options `enableProfilingHandler` and - `enableDebugFlagsHandler` can be set to `true` only when `enableDebuggingHandlers` - is also set to `true`. +pr: 98458 +releasenote: + text: Cluster admins can now turn off `/debug/pprof` and `/debug/flags/v` endpoint + in kubelet by setting `enableProfilingHandler` and `enableDebugFlagsHandler` to + `false` in the Kubelet configuration file. Options `enableProfilingHandler` and + `enableDebugFlagsHandler` can be set to `true` only when `enableDebuggingHandlers` + is also set to `true`. diff --git a/releases/release-1.21/release-notes/maps/pr-98526-map.yaml b/releases/release-1.21/release-notes/maps/pr-98526-map.yaml index 6d204e5f708..ab9a7a1ee48 100644 --- a/releases/release-1.21/release-notes/maps/pr-98526-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98526-map.yaml @@ -1,3 +1,3 @@ -pr: 98526 -releasenote: - text: Fix kube-proxy container image architecture for non amd64 images. +pr: 98526 +releasenote: + text: Fix kube-proxy container image architecture for non amd64 images. diff --git a/releases/release-1.21/release-notes/maps/pr-98546-map.yaml b/releases/release-1.21/release-notes/maps/pr-98546-map.yaml index 1221e74f902..cfcdbc856cb 100644 --- a/releases/release-1.21/release-notes/maps/pr-98546-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98546-map.yaml @@ -1,12 +1,12 @@ -pr: 98546 -releasenote: - text: |- - `diskformat` storage class parameter for in-tree vSphere volume plugin is deprecated as of v1.21 release. Please consider updating storageclass and remove `diskformat` parameter. vSphere CSI Driver does not support diskformat storageclass parameter. - - vSphere releases less than 67u3 are deprecated as of v1.21. Please consider upgrading vSphere to 67u3 or above. vSphere CSI Driver requires minimum vSphere 67u3. - - VM Hardware version less than 15 is deprecated as of v1.21. Please consider upgrading the Node VM Hardware version to 15 or above. vSphere CSI Driver recommends Node VM's Hardware version set to at least vmx-15. - - Multi vCenter support is deprecated as of v1.21. If you have a Kubernetes cluster spanning across multiple vCenter servers, please consider moving all k8s nodes to a single vCenter Server. vSphere CSI Driver does not support Kubernetes deployment spanning across multiple vCenter servers. - - Support for these deprecations will be available till Kubernetes v1.24. +pr: 98546 +releasenote: + text: |- + `diskformat` storage class parameter for in-tree vSphere volume plugin is deprecated as of v1.21 release. Please consider updating storageclass and remove `diskformat` parameter. vSphere CSI Driver does not support diskformat storageclass parameter. + + vSphere releases less than 67u3 are deprecated as of v1.21. Please consider upgrading vSphere to 67u3 or above. vSphere CSI Driver requires minimum vSphere 67u3. + + VM Hardware version less than 15 is deprecated as of v1.21. Please consider upgrading the Node VM Hardware version to 15 or above. vSphere CSI Driver recommends Node VM's Hardware version set to at least vmx-15. + + Multi vCenter support is deprecated as of v1.21. If you have a Kubernetes cluster spanning across multiple vCenter servers, please consider moving all k8s nodes to a single vCenter Server. vSphere CSI Driver does not support Kubernetes deployment spanning across multiple vCenter servers. + + Support for these deprecations will be available till Kubernetes v1.24. diff --git a/releases/release-1.21/release-notes/maps/pr-98576-map.yaml b/releases/release-1.21/release-notes/maps/pr-98576-map.yaml index 2e8a6b281d2..24e99dbc1f4 100644 --- a/releases/release-1.21/release-notes/maps/pr-98576-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98576-map.yaml @@ -1,3 +1,3 @@ -pr: 98576 -releasenote: - text: Fixes server-side apply for APIService resources. +pr: 98576 +releasenote: + text: Fixes server-side apply for APIService resources. diff --git a/releases/release-1.21/release-notes/maps/pr-98589-map.yaml b/releases/release-1.21/release-notes/maps/pr-98589-map.yaml index 0f9be073c20..ad118ee1cd3 100644 --- a/releases/release-1.21/release-notes/maps/pr-98589-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98589-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98589 -releasenote: - do_not_publish: true +--- +pr: 98589 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98627-map.yaml b/releases/release-1.21/release-notes/maps/pr-98627-map.yaml index 2866f95356f..24b06004845 100644 --- a/releases/release-1.21/release-notes/maps/pr-98627-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98627-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98627 -releasenote: - do_not_publish: true +--- +pr: 98627 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98643-map.yaml b/releases/release-1.21/release-notes/maps/pr-98643-map.yaml index ba00a98096f..5af7186b605 100644 --- a/releases/release-1.21/release-notes/maps/pr-98643-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98643-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98643 -releasenote: - do_not_publish: true +--- +pr: 98643 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98676-map.yaml b/releases/release-1.21/release-notes/maps/pr-98676-map.yaml index aa484603b5f..1206d9ee13e 100644 --- a/releases/release-1.21/release-notes/maps/pr-98676-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98676-map.yaml @@ -1,4 +1,4 @@ -pr: 98676 -releasenote: - text: A new histogram metric to track the time it took to delete a job by the `TTLAfterFinished` - controller +pr: 98676 +releasenote: + text: A new histogram metric to track the time it took to delete a job by the `TTLAfterFinished` + controller diff --git a/releases/release-1.21/release-notes/maps/pr-98678-map.yaml b/releases/release-1.21/release-notes/maps/pr-98678-map.yaml index 9cc16fcc32b..77bfd1a979d 100644 --- a/releases/release-1.21/release-notes/maps/pr-98678-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98678-map.yaml @@ -1,3 +1,3 @@ -pr: 98678 -releasenote: - text: The `TTLAfterFinished` feature flag is now beta and enabled by default +pr: 98678 +releasenote: + text: The `TTLAfterFinished` feature flag is now beta and enabled by default diff --git a/releases/release-1.21/release-notes/maps/pr-98715-map.yaml b/releases/release-1.21/release-notes/maps/pr-98715-map.yaml index 687b0594492..04e468ac130 100644 --- a/releases/release-1.21/release-notes/maps/pr-98715-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98715-map.yaml @@ -1,4 +1,4 @@ -pr: 98715 -releasenote: - text: Truncates a message if it hits the `NoteLengthLimit` when the scheduler records - an event for the pod that indicates the pod has failed to schedule. +pr: 98715 +releasenote: + text: Truncates a message if it hits the `NoteLengthLimit` when the scheduler records + an event for the pod that indicates the pod has failed to schedule. diff --git a/releases/release-1.21/release-notes/maps/pr-98727-map.yaml b/releases/release-1.21/release-notes/maps/pr-98727-map.yaml index cc40524a462..b6ca08cf3a8 100644 --- a/releases/release-1.21/release-notes/maps/pr-98727-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98727-map.yaml @@ -1,5 +1,5 @@ -pr: 98727 -releasenote: - text: Jobs API has a new `.spec.suspend` field that can be used to suspend and resume - Jobs. This is an alpha field which is only honored by servers with the `SuspendJob` - feature gate enabled. +pr: 98727 +releasenote: + text: Jobs API has a new `.spec.suspend` field that can be used to suspend and resume + Jobs. This is an alpha field which is only honored by servers with the `SuspendJob` + feature gate enabled. diff --git a/releases/release-1.21/release-notes/maps/pr-98730-map.yaml b/releases/release-1.21/release-notes/maps/pr-98730-map.yaml index a4624afa54d..f84ad898bb0 100644 --- a/releases/release-1.21/release-notes/maps/pr-98730-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98730-map.yaml @@ -1,4 +1,4 @@ -pr: 98730 -releasenote: - text: Kubelet command line flags related to dockershim are now showing deprecation - message as they will be removed along with dockershim in future release. +pr: 98730 +releasenote: + text: Kubelet command line flags related to dockershim are now showing deprecation + message as they will be removed along with dockershim in future release. diff --git a/releases/release-1.21/release-notes/maps/pr-98750-map.yaml b/releases/release-1.21/release-notes/maps/pr-98750-map.yaml index fa9675ef492..bdff1c625a9 100644 --- a/releases/release-1.21/release-notes/maps/pr-98750-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98750-map.yaml @@ -1,4 +1,4 @@ -pr: 98750 -releasenote: - text: Fixes problem where invalid selector on `PodDisruptionBudget` leads to a nil pointer dereference - that causes the Controller manager to crash loop. +pr: 98750 +releasenote: + text: Fixes problem where invalid selector on `PodDisruptionBudget` leads to a nil pointer dereference + that causes the Controller manager to crash loop. diff --git a/releases/release-1.21/release-notes/maps/pr-98753-map.yaml b/releases/release-1.21/release-notes/maps/pr-98753-map.yaml index 04ca5312d7b..ebf0c86b6f5 100644 --- a/releases/release-1.21/release-notes/maps/pr-98753-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98753-map.yaml @@ -1,3 +1,3 @@ -pr: 98753 -releasenote: - text: Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. +pr: 98753 +releasenote: + text: Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. diff --git a/releases/release-1.21/release-notes/maps/pr-98809-map.yaml b/releases/release-1.21/release-notes/maps/pr-98809-map.yaml index f37d2c49ace..4b41e0c3998 100644 --- a/releases/release-1.21/release-notes/maps/pr-98809-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98809-map.yaml @@ -1,4 +1,4 @@ -pr: 98809 -releasenote: - text: Clients required to use go1.15.8+ or go1.16+ if kube-apiserver has the goaway - feature enabled to avoid unexpected data race condition. +pr: 98809 +releasenote: + text: Clients required to use go1.15.8+ or go1.16+ if kube-apiserver has the goaway + feature enabled to avoid unexpected data race condition. diff --git a/releases/release-1.21/release-notes/maps/pr-98839-map.yaml b/releases/release-1.21/release-notes/maps/pr-98839-map.yaml index ff91e8e6748..98c6e204091 100644 --- a/releases/release-1.21/release-notes/maps/pr-98839-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98839-map.yaml @@ -1,3 +1,3 @@ -pr: 98839 -releasenote: - text: 'kubeadm: fix bad token placeholder text in `config print *-defaults --help`' +pr: 98839 +releasenote: + text: 'kubeadm: fix bad token placeholder text in `config print *-defaults --help`' diff --git a/releases/release-1.21/release-notes/maps/pr-98847-map.yaml b/releases/release-1.21/release-notes/maps/pr-98847-map.yaml index f75ee4cfb05..fc3c10e8d49 100644 --- a/releases/release-1.21/release-notes/maps/pr-98847-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98847-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98847 -releasenote: - do_not_publish: true +--- +pr: 98847 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98850-map.yaml b/releases/release-1.21/release-notes/maps/pr-98850-map.yaml index cb154d29a52..dd20b6a1b36 100644 --- a/releases/release-1.21/release-notes/maps/pr-98850-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98850-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98850 -releasenote: - do_not_publish: true +--- +pr: 98850 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98878-map.yaml b/releases/release-1.21/release-notes/maps/pr-98878-map.yaml index 1b354ef52db..22d52065edc 100644 --- a/releases/release-1.21/release-notes/maps/pr-98878-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98878-map.yaml @@ -1,3 +1,3 @@ -pr: 98878 -releasenote: - text: The `CronJobControllerV2` feature flag graduates to Beta and set to be enabled by default. +pr: 98878 +releasenote: + text: The `CronJobControllerV2` feature flag graduates to Beta and set to be enabled by default. diff --git a/releases/release-1.21/release-notes/maps/pr-98911-map.yaml b/releases/release-1.21/release-notes/maps/pr-98911-map.yaml index 3881042a247..74ffc0bedbe 100644 --- a/releases/release-1.21/release-notes/maps/pr-98911-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98911-map.yaml @@ -1,3 +1,3 @@ -pr: 98911 -releasenote: - text: Add missing `--kube-api-content-type` in kubemark hollow template +pr: 98911 +releasenote: + text: Add missing `--kube-api-content-type` in kubemark hollow template diff --git a/releases/release-1.21/release-notes/maps/pr-98931-map.yaml b/releases/release-1.21/release-notes/maps/pr-98931-map.yaml index 31d0d7c4103..2a4a5967716 100644 --- a/releases/release-1.21/release-notes/maps/pr-98931-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98931-map.yaml @@ -1,4 +1,4 @@ -pr: 98931 -releasenote: - text: APIs for kubelet annotations and labels from `k8s.io/kubernetes/pkg/kubelet/apis` - are now moved under `k8s.io/kubelet/pkg/apis/` +pr: 98931 +releasenote: + text: APIs for kubelet annotations and labels from `k8s.io/kubernetes/pkg/kubelet/apis` + are now moved under `k8s.io/kubelet/pkg/apis/` diff --git a/releases/release-1.21/release-notes/maps/pr-98939-map.yaml b/releases/release-1.21/release-notes/maps/pr-98939-map.yaml index d686f2726e1..9b87f546fcb 100644 --- a/releases/release-1.21/release-notes/maps/pr-98939-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98939-map.yaml @@ -1,5 +1,5 @@ ---- -pr: 98939 -releasenote: - action_required: false - do_not_publish: true +--- +pr: 98939 +releasenote: + action_required: false + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98946-map.yaml b/releases/release-1.21/release-notes/maps/pr-98946-map.yaml index ebe9c0a6644..9266380b929 100644 --- a/releases/release-1.21/release-notes/maps/pr-98946-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98946-map.yaml @@ -1,7 +1,7 @@ -pr: 98946 -releasenote: - text: |- - Updates the commands ` - - kubectl kustomize {arg} - - kubectl apply -k {arg} - `to use same code as kustomize CLI [v4.0.5](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.0.5) +pr: 98946 +releasenote: + text: |- + Updates the commands ` + - kubectl kustomize {arg} + - kubectl apply -k {arg} + `to use same code as kustomize CLI [v4.0.5](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.0.5) diff --git a/releases/release-1.21/release-notes/maps/pr-98952-map.yaml b/releases/release-1.21/release-notes/maps/pr-98952-map.yaml index c668b589cdf..396495344ca 100644 --- a/releases/release-1.21/release-notes/maps/pr-98952-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98952-map.yaml @@ -1,4 +1,4 @@ -pr: 98952 -releasenote: - text: 'Alpha implementation of Kubectl Command Headers: SIG CLI KEP 859 enabled - when KUBECTL_COMMAND_HEADERS environment variable set on the client command line.' +pr: 98952 +releasenote: + text: 'Alpha implementation of Kubectl Command Headers: SIG CLI KEP 859 enabled + when KUBECTL_COMMAND_HEADERS environment variable set on the client command line.' diff --git a/releases/release-1.21/release-notes/maps/pr-98968-map.yaml b/releases/release-1.21/release-notes/maps/pr-98968-map.yaml index 1ba14455e77..3bed6f063fa 100644 --- a/releases/release-1.21/release-notes/maps/pr-98968-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98968-map.yaml @@ -1,4 +1,4 @@ -pr: 98968 -releasenote: - text: Fixes add-on manager leader election to use leases instead of endpoints, similar - to what kube-controller-manager does in 1.20 +pr: 98968 +releasenote: + text: Fixes add-on manager leader election to use leases instead of endpoints, similar + to what kube-controller-manager does in 1.20 diff --git a/releases/release-1.21/release-notes/maps/pr-98969-map.yaml b/releases/release-1.21/release-notes/maps/pr-98969-map.yaml index d2fd84bf2dd..cfc913e2c5d 100644 --- a/releases/release-1.21/release-notes/maps/pr-98969-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98969-map.yaml @@ -1,5 +1,5 @@ -pr: 98969 -releasenote: - text: 'Upgrades `IPv6Dualstack` to `Beta` and turns it on by default. New clusters - or existing clusters are not be affected until an actor starts adding secondary - Pods and service CIDRS CLI flags as described here: [IPv4/IPv6 Dual-stack](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack)' +pr: 98969 +releasenote: + text: 'Upgrades `IPv6Dualstack` to `Beta` and turns it on by default. New clusters + or existing clusters are not be affected until an actor starts adding secondary + Pods and service CIDRS CLI flags as described here: [IPv4/IPv6 Dual-stack](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack)' diff --git a/releases/release-1.21/release-notes/maps/pr-98990-map.yaml b/releases/release-1.21/release-notes/maps/pr-98990-map.yaml index e8393d9cafc..19e951ebc5f 100644 --- a/releases/release-1.21/release-notes/maps/pr-98990-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98990-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98990 -releasenote: - do_not_publish: true +--- +pr: 98990 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98993-map.yaml b/releases/release-1.21/release-notes/maps/pr-98993-map.yaml index 9516bf5b379..6bfcccb8ff5 100644 --- a/releases/release-1.21/release-notes/maps/pr-98993-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98993-map.yaml @@ -1,5 +1,5 @@ ---- -pr: 98993 -releasenote: - action_required: false - do_not_publish: true +--- +pr: 98993 +releasenote: + action_required: false + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-98999-map.yaml b/releases/release-1.21/release-notes/maps/pr-98999-map.yaml index c0f31523fa1..9d9d3c86ee6 100644 --- a/releases/release-1.21/release-notes/maps/pr-98999-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-98999-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 98999 -releasenote: - do_not_publish: true +--- +pr: 98999 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99001-map.yaml b/releases/release-1.21/release-notes/maps/pr-99001-map.yaml index f89ca01e75f..8dd19e724c4 100644 --- a/releases/release-1.21/release-notes/maps/pr-99001-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99001-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99001 -releasenote: - do_not_publish: true +--- +pr: 99001 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99006-map.yaml b/releases/release-1.21/release-notes/maps/pr-99006-map.yaml index bfddc23746d..e07955547ba 100644 --- a/releases/release-1.21/release-notes/maps/pr-99006-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99006-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99006 -releasenote: - do_not_publish: true +--- +pr: 99006 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99032-map.yaml b/releases/release-1.21/release-notes/maps/pr-99032-map.yaml index 608981a8d28..fe1bdd21cad 100644 --- a/releases/release-1.21/release-notes/maps/pr-99032-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99032-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99032 -releasenote: - do_not_publish: true +--- +pr: 99032 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99045-map.yaml b/releases/release-1.21/release-notes/maps/pr-99045-map.yaml index c345e9b01ad..d002d8ec825 100644 --- a/releases/release-1.21/release-notes/maps/pr-99045-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99045-map.yaml @@ -1,6 +1,6 @@ -pr: 99045 -releasenote: - text: The metric `storage_operation_errors_total` is not removed, but is marked - deprecated, and the metric `storage_operation_status_count` is marked deprecated. - In both cases the `storage_operation_duration_seconds` metric can be used to recover - equivalent counts (using `status=fail-unknown` in the case of `storage_operations_errors_total`). +pr: 99045 +releasenote: + text: The metric `storage_operation_errors_total` is not removed, but is marked + deprecated, and the metric `storage_operation_status_count` is marked deprecated. + In both cases the `storage_operation_duration_seconds` metric can be used to recover + equivalent counts (using `status=fail-unknown` in the case of `storage_operations_errors_total`). diff --git a/releases/release-1.21/release-notes/maps/pr-99060-map.yaml b/releases/release-1.21/release-notes/maps/pr-99060-map.yaml index 3ff39ce3913..432178926e7 100644 --- a/releases/release-1.21/release-notes/maps/pr-99060-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99060-map.yaml @@ -1,3 +1,3 @@ -pr: 99060 -releasenote: - text: Fixes `kubectl top pod` documentation which should not claim to show Storage. +pr: 99060 +releasenote: + text: Fixes `kubectl top pod` documentation which should not claim to show Storage. diff --git a/releases/release-1.21/release-notes/maps/pr-99068-map.yaml b/releases/release-1.21/release-notes/maps/pr-99068-map.yaml index 0b6ecf4242f..e95668198e6 100644 --- a/releases/release-1.21/release-notes/maps/pr-99068-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99068-map.yaml @@ -1,3 +1,3 @@ -pr: 99068 -releasenote: - do_not_publish: true +pr: 99068 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99127-map.yaml b/releases/release-1.21/release-notes/maps/pr-99127-map.yaml index f3911d6f091..94386a1a3bb 100644 --- a/releases/release-1.21/release-notes/maps/pr-99127-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99127-map.yaml @@ -1,3 +1,3 @@ -pr: 99127 -releasenote: - text: Fixes spurious errors about IPv6 in `kube-proxy` logs on nodes with IPv6 disabled. +pr: 99127 +releasenote: + text: Fixes spurious errors about IPv6 in `kube-proxy` logs on nodes with IPv6 disabled. diff --git a/releases/release-1.21/release-notes/maps/pr-99158-map.yaml b/releases/release-1.21/release-notes/maps/pr-99158-map.yaml index a2f277400d7..a62a2a12b2f 100644 --- a/releases/release-1.21/release-notes/maps/pr-99158-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99158-map.yaml @@ -1,3 +1,3 @@ -pr: 99158 -releasenote: - text: Sysctls graduates to General Availability and thus unconditionally enabled. +pr: 99158 +releasenote: + text: Sysctls graduates to General Availability and thus unconditionally enabled. diff --git a/releases/release-1.21/release-notes/maps/pr-99163-map.yaml b/releases/release-1.21/release-notes/maps/pr-99163-map.yaml index 77a331d7a3e..4e12a21a6ea 100644 --- a/releases/release-1.21/release-notes/maps/pr-99163-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99163-map.yaml @@ -1,6 +1,6 @@ -pr: 99163 -releasenote: - text: The `controller.kubernetes.io/pod-deletion-cost` annotation can be set to - offer a hint on the cost of deleting a `Pod` compared to other pods belonging - to the same ReplicaSet. Pods with lower deletion cost are deleted first. This - is an alpha feature. +pr: 99163 +releasenote: + text: The `controller.kubernetes.io/pod-deletion-cost` annotation can be set to + offer a hint on the cost of deleting a `Pod` compared to other pods belonging + to the same ReplicaSet. Pods with lower deletion cost are deleted first. This + is an alpha feature. diff --git a/releases/release-1.21/release-notes/maps/pr-99194-map.yaml b/releases/release-1.21/release-notes/maps/pr-99194-map.yaml index 465a21339b8..f87adaf0ed8 100644 --- a/releases/release-1.21/release-notes/maps/pr-99194-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99194-map.yaml @@ -1,4 +1,4 @@ -pr: 99194 -releasenote: - text: 'kubeadm: perform pre-flight validation on host/node name upon - `kubeadm init` and `kubeadm join`, showing warnings on non-compliant names' +pr: 99194 +releasenote: + text: 'kubeadm: perform pre-flight validation on host/node name upon + `kubeadm init` and `kubeadm join`, showing warnings on non-compliant names' diff --git a/releases/release-1.21/release-notes/maps/pr-99217-map.yaml b/releases/release-1.21/release-notes/maps/pr-99217-map.yaml index 3ebd8c5d68d..5364ee3d33e 100644 --- a/releases/release-1.21/release-notes/maps/pr-99217-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99217-map.yaml @@ -1,3 +1,3 @@ -pr: 99217 -releasenote: - text: Metrics can now be disabled explicitly via a command line flag (i.e. '--disabled-metrics=metric1,metric2') +pr: 99217 +releasenote: + text: Metrics can now be disabled explicitly via a command line flag (i.e. '--disabled-metrics=metric1,metric2') diff --git a/releases/release-1.21/release-notes/maps/pr-99236-map.yaml b/releases/release-1.21/release-notes/maps/pr-99236-map.yaml index 8902e2b1cb3..958f9eee415 100644 --- a/releases/release-1.21/release-notes/maps/pr-99236-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99236-map.yaml @@ -1,4 +1,4 @@ -pr: 99236 -releasenote: - text: Removes cAdvisor JSON metrics (/stats/container, /stats/<podname>/<containername>, - /stats/<namespace>/<podname>/<poduid>/<containername>) from the kubelet. +pr: 99236 +releasenote: + text: Removes cAdvisor JSON metrics (/stats/container, /stats/<podname>/<containername>, + /stats/<namespace>/<podname>/<poduid>/<containername>) from the kubelet. diff --git a/releases/release-1.21/release-notes/maps/pr-99242-map.yaml b/releases/release-1.21/release-notes/maps/pr-99242-map.yaml index 49b1dc07b6d..410cd279a3a 100644 --- a/releases/release-1.21/release-notes/maps/pr-99242-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99242-map.yaml @@ -1,3 +1,3 @@ -pr: 99242 -releasenote: - text: Added support for installing `arm64` node artifacts. +pr: 99242 +releasenote: + text: Added support for installing `arm64` node artifacts. diff --git a/releases/release-1.21/release-notes/maps/pr-99264-map.yaml b/releases/release-1.21/release-notes/maps/pr-99264-map.yaml index d7061d7c9a4..47b5dce59d0 100644 --- a/releases/release-1.21/release-notes/maps/pr-99264-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99264-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99264 -releasenote: - do_not_publish: true +--- +pr: 99264 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99275-map.yaml b/releases/release-1.21/release-notes/maps/pr-99275-map.yaml index 090e7dad2e5..555a8196ed4 100644 --- a/releases/release-1.21/release-notes/maps/pr-99275-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99275-map.yaml @@ -1,6 +1,6 @@ -pr: 99275 -releasenote: - text: "IngressClass resource can now reference a resource in a specific namespace - \nfor implementation-specific configuration (previously only Cluster-level resources - were allowed). \nThis feature can be enabled using the IngressClassNamespacedParams - feature gate." +pr: 99275 +releasenote: + text: "IngressClass resource can now reference a resource in a specific namespace + \nfor implementation-specific configuration (previously only Cluster-level resources + were allowed). \nThis feature can be enabled using the IngressClassNamespacedParams + feature gate." diff --git a/releases/release-1.21/release-notes/maps/pr-99294-map.yaml b/releases/release-1.21/release-notes/maps/pr-99294-map.yaml index 62973f17e2a..ec154c8bc59 100644 --- a/releases/release-1.21/release-notes/maps/pr-99294-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99294-map.yaml @@ -1,4 +1,4 @@ -pr: 99294 -releasenote: - text: 'kubeadm: IPv6DualStack feature gate graduates to Beta and enabled by - default' +pr: 99294 +releasenote: + text: 'kubeadm: IPv6DualStack feature gate graduates to Beta and enabled by + default' diff --git a/releases/release-1.21/release-notes/maps/pr-99298-map.yaml b/releases/release-1.21/release-notes/maps/pr-99298-map.yaml index cbae76a9e6e..b1e66b21681 100644 --- a/releases/release-1.21/release-notes/maps/pr-99298-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99298-map.yaml @@ -1,3 +1,3 @@ -pr: 99298 -releasenote: - text: CSIServiceAccountToken graduates to Beta and enabled by default. +pr: 99298 +releasenote: + text: CSIServiceAccountToken graduates to Beta and enabled by default. diff --git a/releases/release-1.21/release-notes/maps/pr-99341-map.yaml b/releases/release-1.21/release-notes/maps/pr-99341-map.yaml index 7957be24a02..6e06920c874 100644 --- a/releases/release-1.21/release-notes/maps/pr-99341-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99341-map.yaml @@ -1,5 +1,5 @@ -pr: 99341 -releasenote: - text: Adds two new metrics to cronjobs, a histogram to track the time difference - when a job is created and the expected time when it should be created, as well - as a gauge for the missed schedules of a cronjob +pr: 99341 +releasenote: + text: Adds two new metrics to cronjobs, a histogram to track the time difference + when a job is created and the expected time when it should be created, as well + as a gauge for the missed schedules of a cronjob diff --git a/releases/release-1.21/release-notes/maps/pr-99479-map.yaml b/releases/release-1.21/release-notes/maps/pr-99479-map.yaml index bda181f9c09..9a1dfbf893f 100644 --- a/releases/release-1.21/release-notes/maps/pr-99479-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99479-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99479 -releasenote: - do_not_publish: true +--- +pr: 99479 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99550-map.yaml b/releases/release-1.21/release-notes/maps/pr-99550-map.yaml index 75067b28d26..a2e8329a046 100644 --- a/releases/release-1.21/release-notes/maps/pr-99550-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99550-map.yaml @@ -1,3 +1,3 @@ -pr: 99550 -releasenote: - text: fix PermissionDenied issue on SMB mount for Windows +pr: 99550 +releasenote: + text: fix PermissionDenied issue on SMB mount for Windows diff --git a/releases/release-1.21/release-notes/maps/pr-99563-map.yaml b/releases/release-1.21/release-notes/maps/pr-99563-map.yaml index fb64cce68fb..39871bfc274 100644 --- a/releases/release-1.21/release-notes/maps/pr-99563-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99563-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99563 -releasenote: - do_not_publish: true +--- +pr: 99563 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99585-map.yaml b/releases/release-1.21/release-notes/maps/pr-99585-map.yaml index 233ae01c669..e45bab355c0 100644 --- a/releases/release-1.21/release-notes/maps/pr-99585-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99585-map.yaml @@ -1,5 +1,5 @@ -pr: 99585 -releasenote: - text: Return zero time (midnight on Jan. 1, 1970) instead of negative number when - reporting startedAt and finishedAt of the not started or a running Pod when using - `dockershim` as a runtime. +pr: 99585 +releasenote: + text: Return zero time (midnight on Jan. 1, 1970) instead of negative number when + reporting startedAt and finishedAt of the not started or a running Pod when using + `dockershim` as a runtime. diff --git a/releases/release-1.21/release-notes/maps/pr-99600-map.yaml b/releases/release-1.21/release-notes/maps/pr-99600-map.yaml index 5e724863b6e..642272b2719 100644 --- a/releases/release-1.21/release-notes/maps/pr-99600-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99600-map.yaml @@ -1,3 +1,3 @@ -pr: 99600 -releasenote: - text: ResourceQuota of an entity now inclusively calculate Pod overhead +pr: 99600 +releasenote: + text: ResourceQuota of an entity now inclusively calculate Pod overhead diff --git a/releases/release-1.21/release-notes/maps/pr-99607-map.yaml b/releases/release-1.21/release-notes/maps/pr-99607-map.yaml index d3097e4a7cb..1d017c654b3 100644 --- a/releases/release-1.21/release-notes/maps/pr-99607-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99607-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99607 -releasenote: - do_not_publish: true +--- +pr: 99607 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99641-map.yaml b/releases/release-1.21/release-notes/maps/pr-99641-map.yaml index 1f8524bb822..5453e0f820e 100644 --- a/releases/release-1.21/release-notes/maps/pr-99641-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99641-map.yaml @@ -1,5 +1,5 @@ -pr: 99641 -releasenote: - text: storage capacity tracking (= the CSIStorageCapacity feature) graduates to - Beta and enabled by default, storage.k8s.io/v1alpha1/VolumeAttachment and storage.k8s.io/v1alpha1/CSIStorageCapacity - objects are deprecated +pr: 99641 +releasenote: + text: storage capacity tracking (= the CSIStorageCapacity feature) graduates to + Beta and enabled by default, storage.k8s.io/v1alpha1/VolumeAttachment and storage.k8s.io/v1alpha1/CSIStorageCapacity + objects are deprecated diff --git a/releases/release-1.21/release-notes/maps/pr-99651-map.yaml b/releases/release-1.21/release-notes/maps/pr-99651-map.yaml index 4e540d55425..bb3390001de 100644 --- a/releases/release-1.21/release-notes/maps/pr-99651-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99651-map.yaml @@ -1,3 +1,3 @@ -pr: 99651 -releasenote: - text: CRIContainerLogRotation graduates to GA and unconditionally enabled. +pr: 99651 +releasenote: + text: CRIContainerLogRotation graduates to GA and unconditionally enabled. diff --git a/releases/release-1.21/release-notes/maps/pr-99654-map.yaml b/releases/release-1.21/release-notes/maps/pr-99654-map.yaml index 3b50231dbed..7056fb6bb86 100644 --- a/releases/release-1.21/release-notes/maps/pr-99654-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99654-map.yaml @@ -1,5 +1,5 @@ -pr: 99654 -releasenote: - text: client-go exec credential plugins will pass stdin only when interactive terminal - is detected on stdin. This fixes a bug where previously it was checking if **stdout** - is an interactive terminal. +pr: 99654 +releasenote: + text: client-go exec credential plugins will pass stdin only when interactive terminal + is detected on stdin. This fixes a bug where previously it was checking if **stdout** + is an interactive terminal. diff --git a/releases/release-1.21/release-notes/maps/pr-99658-map.yaml b/releases/release-1.21/release-notes/maps/pr-99658-map.yaml index a90fcf54946..70004f134dd 100644 --- a/releases/release-1.21/release-notes/maps/pr-99658-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99658-map.yaml @@ -1,4 +1,4 @@ -pr: 99658 -releasenote: - text: featuregate AllowInsecureBackendProxy graduates to GA and unconditionally - enabled. +pr: 99658 +releasenote: + text: featuregate AllowInsecureBackendProxy graduates to GA and unconditionally + enabled. diff --git a/releases/release-1.21/release-notes/maps/pr-99662-map.yaml b/releases/release-1.21/release-notes/maps/pr-99662-map.yaml index b279b0eba5f..367f730be07 100644 --- a/releases/release-1.21/release-notes/maps/pr-99662-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99662-map.yaml @@ -1,6 +1,6 @@ -pr: 99662 -releasenote: - text: The `EndpointSlice` API is now GA. The `EndpointSlice` topology field has - been removed from the GA API and will be replaced by a new per Endpoint Zone field. - If the topology field was previously used, it will be converted into an annotation - in the v1 Resource. The `discovery.k8s.io/v1alpha1` API is removed. +pr: 99662 +releasenote: + text: The `EndpointSlice` API is now GA. The `EndpointSlice` topology field has + been removed from the GA API and will be replaced by a new per Endpoint Zone field. + If the topology field was previously used, it will be converted into an annotation + in the v1 Resource. The `discovery.k8s.io/v1alpha1` API is removed. diff --git a/releases/release-1.21/release-notes/maps/pr-99732-map.yaml b/releases/release-1.21/release-notes/maps/pr-99732-map.yaml index 9ca6bd9a35d..94129b33075 100644 --- a/releases/release-1.21/release-notes/maps/pr-99732-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99732-map.yaml @@ -1,5 +1,5 @@ -pr: 99732 -releasenote: - text: |- - Remove deprecated `--generator, --replicas, --service-generator, --service-overrides, --schedule` from `kubectl run` - Deprecate `--serviceaccount, --hostport, --requests, --limits` in `kubectl run` +pr: 99732 +releasenote: + text: |- + Remove deprecated `--generator, --replicas, --service-generator, --service-overrides, --schedule` from `kubectl run` + Deprecate `--serviceaccount, --hostport, --requests, --limits` in `kubectl run` diff --git a/releases/release-1.21/release-notes/maps/pr-99735-map.yaml b/releases/release-1.21/release-notes/maps/pr-99735-map.yaml index 8f3e0242ab9..4c8e622bd65 100644 --- a/releases/release-1.21/release-notes/maps/pr-99735-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99735-map.yaml @@ -1,3 +1,3 @@ -pr: 99735 -releasenote: - text: Kubelet Graceful Node Shutdown feature graduates to Beta and enabled by default. +pr: 99735 +releasenote: + text: Kubelet Graceful Node Shutdown feature graduates to Beta and enabled by default. diff --git a/releases/release-1.21/release-notes/maps/pr-99746-map.yaml b/releases/release-1.21/release-notes/maps/pr-99746-map.yaml index 40f9b39fff7..c579dd6347c 100644 --- a/releases/release-1.21/release-notes/maps/pr-99746-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99746-map.yaml @@ -1,4 +1,4 @@ -pr: 99746 -releasenote: - text: EndpointSliceNodeName graduates to GA and thus will be unconditionally enabled - -- NodeName will always be available in the v1beta1 API. +pr: 99746 +releasenote: + text: EndpointSliceNodeName graduates to GA and thus will be unconditionally enabled + -- NodeName will always be available in the v1beta1 API. diff --git a/releases/release-1.21/release-notes/maps/pr-99785-map.yaml b/releases/release-1.21/release-notes/maps/pr-99785-map.yaml index 563a808054a..0b7d3391b68 100644 --- a/releases/release-1.21/release-notes/maps/pr-99785-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99785-map.yaml @@ -1,5 +1,5 @@ -pr: 99785 -releasenote: - kinds: - - feature - - deprecation +pr: 99785 +releasenote: + kinds: + - feature + - deprecation diff --git a/releases/release-1.21/release-notes/maps/pr-99788-map.yaml b/releases/release-1.21/release-notes/maps/pr-99788-map.yaml index 03011191525..1c7941d698b 100644 --- a/releases/release-1.21/release-notes/maps/pr-99788-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99788-map.yaml @@ -1,6 +1,6 @@ -pr: 99788 -releasenote: - text: The `apiserver_request_total` metric is promoted to stable status and no longer - has a content-type dimensions, so any alerts/charts which presume the existence - of this will fail. This is however, unlikely to be the case since it was effectively - an unbounded dimension in the first place. +pr: 99788 +releasenote: + text: The `apiserver_request_total` metric is promoted to stable status and no longer + has a content-type dimensions, so any alerts/charts which presume the existence + of this will fail. This is however, unlikely to be the case since it was effectively + an unbounded dimension in the first place. diff --git a/releases/release-1.21/release-notes/maps/pr-99823-map.yaml b/releases/release-1.21/release-notes/maps/pr-99823-map.yaml index a4e94c91323..44e3aaec24a 100644 --- a/releases/release-1.21/release-notes/maps/pr-99823-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99823-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99823 -releasenote: - do_not_publish: true +--- +pr: 99823 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99830-map.yaml b/releases/release-1.21/release-notes/maps/pr-99830-map.yaml index 92e367fd9b7..40a343c2ceb 100644 --- a/releases/release-1.21/release-notes/maps/pr-99830-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99830-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99830 -releasenote: - do_not_publish: true +--- +pr: 99830 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99833-map.yaml b/releases/release-1.21/release-notes/maps/pr-99833-map.yaml index 3890bebc5a1..2005bc911e4 100644 --- a/releases/release-1.21/release-notes/maps/pr-99833-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99833-map.yaml @@ -1,4 +1,4 @@ -pr: 99833 -releasenote: - text: 'kubectl: a Pod can be preselected as default container using `kubectl.kubernetes.io/default-container` - annotation' +pr: 99833 +releasenote: + text: 'kubectl: a Pod can be preselected as default container using `kubectl.kubernetes.io/default-container` + annotation' diff --git a/releases/release-1.21/release-notes/maps/pr-99836-map.yaml b/releases/release-1.21/release-notes/maps/pr-99836-map.yaml index 81d86ab8b33..95ca7fc0c92 100644 --- a/releases/release-1.21/release-notes/maps/pr-99836-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99836-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99836 -releasenote: - do_not_publish: true +--- +pr: 99836 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99838-map.yaml b/releases/release-1.21/release-notes/maps/pr-99838-map.yaml index 204fa662b19..80e964b1339 100644 --- a/releases/release-1.21/release-notes/maps/pr-99838-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99838-map.yaml @@ -1,5 +1,5 @@ -pr: 99838 -releasenote: - text: |- - Migrate pkg/kubelet/server logs to structured logging. - Exit code changed from 255 to 1 +pr: 99838 +releasenote: + text: |- + Migrate pkg/kubelet/server logs to structured logging. + Exit code changed from 255 to 1 diff --git a/releases/release-1.21/release-notes/maps/pr-99848-map.yaml b/releases/release-1.21/release-notes/maps/pr-99848-map.yaml index c5aba1a6a2b..45716af49d1 100644 --- a/releases/release-1.21/release-notes/maps/pr-99848-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99848-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99848 -releasenote: - do_not_publish: true +--- +pr: 99848 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99855-map.yaml b/releases/release-1.21/release-notes/maps/pr-99855-map.yaml index f3dfc1f4a64..7ef30aa7577 100644 --- a/releases/release-1.21/release-notes/maps/pr-99855-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99855-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99855 -releasenote: - do_not_publish: true +--- +pr: 99855 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99861-map.yaml b/releases/release-1.21/release-notes/maps/pr-99861-map.yaml index 2e437f57606..8e631cbfc98 100644 --- a/releases/release-1.21/release-notes/maps/pr-99861-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99861-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99861 -releasenote: - do_not_publish: true +--- +pr: 99861 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99870-map.yaml b/releases/release-1.21/release-notes/maps/pr-99870-map.yaml index 0759d316bb5..a3675c30bdd 100644 --- a/releases/release-1.21/release-notes/maps/pr-99870-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99870-map.yaml @@ -1,5 +1,5 @@ -pr: 99870 -releasenote: - text: The EndpointSlice Controllers are now GA. The `EndpointSliceController` will - not populate the `deprecatedTopology` field and will only provide topology information - through the `zone` and `nodeName` fields. +pr: 99870 +releasenote: + text: The EndpointSlice Controllers are now GA. The `EndpointSliceController` will + not populate the `deprecatedTopology` field and will only provide topology information + through the `zone` and `nodeName` fields. diff --git a/releases/release-1.21/release-notes/maps/pr-99885-map.yaml b/releases/release-1.21/release-notes/maps/pr-99885-map.yaml index 82d728041be..292b0f73cb8 100644 --- a/releases/release-1.21/release-notes/maps/pr-99885-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99885-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99885 -releasenote: - do_not_publish: true +--- +pr: 99885 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99944-map.yaml b/releases/release-1.21/release-notes/maps/pr-99944-map.yaml index 454d53c8b8c..d1f751b1fb7 100644 --- a/releases/release-1.21/release-notes/maps/pr-99944-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99944-map.yaml @@ -1,4 +1,4 @@ -pr: 99944 -releasenote: - text: Fixed authentication_duration_seconds metric scope. Previously, it included - whole apiserver request duration which yields inaccurate results. +pr: 99944 +releasenote: + text: Fixed authentication_duration_seconds metric scope. Previously, it included + whole apiserver request duration which yields inaccurate results. diff --git a/releases/release-1.21/release-notes/maps/pr-99969-map.yaml b/releases/release-1.21/release-notes/maps/pr-99969-map.yaml index d5c55c36946..398ef86a924 100644 --- a/releases/release-1.21/release-notes/maps/pr-99969-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99969-map.yaml @@ -1,3 +1,3 @@ -pr: 99969 -releasenote: - text: Migrated `pkg/kubelet/cm/topologymanager` to structure logging +pr: 99969 +releasenote: + text: Migrated `pkg/kubelet/cm/topologymanager` to structure logging diff --git a/releases/release-1.21/release-notes/maps/pr-99970-map.yaml b/releases/release-1.21/release-notes/maps/pr-99970-map.yaml index 8e672921c27..08cc6d97c00 100644 --- a/releases/release-1.21/release-notes/maps/pr-99970-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99970-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99970 -releasenote: - do_not_publish: true +--- +pr: 99970 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99974-map.yaml b/releases/release-1.21/release-notes/maps/pr-99974-map.yaml index 873db569482..f6e0bfc4f24 100644 --- a/releases/release-1.21/release-notes/maps/pr-99974-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99974-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99974 -releasenote: - do_not_publish: true +--- +pr: 99974 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99976-map.yaml b/releases/release-1.21/release-notes/maps/pr-99976-map.yaml index f468dbbdbdf..41d9218d28d 100644 --- a/releases/release-1.21/release-notes/maps/pr-99976-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99976-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99976 -releasenote: - do_not_publish: true +--- +pr: 99976 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/maps/pr-99994-map.yaml b/releases/release-1.21/release-notes/maps/pr-99994-map.yaml index 9f8d19d4d42..3055fa760d4 100644 --- a/releases/release-1.21/release-notes/maps/pr-99994-map.yaml +++ b/releases/release-1.21/release-notes/maps/pr-99994-map.yaml @@ -1,4 +1,4 @@ ---- -pr: 99994 -releasenote: - do_not_publish: true +--- +pr: 99994 +releasenote: + do_not_publish: true diff --git a/releases/release-1.21/release-notes/release-notes-draft.json b/releases/release-1.21/release-notes/release-notes-draft.json index bf30af08adf..6c3536c4705 100644 --- a/releases/release-1.21/release-notes/release-notes-draft.json +++ b/releases/release-1.21/release-notes/release-notes-draft.json @@ -1,6529 +1,6529 @@ -{ - "100054": { - "commit": "9c4ffa7e11bb2d0beb25ef1cac6e0699acfc350a", - "text": "Improve speed of vSphere PV provisioning and reduce number of API calls", - "markdown": "Improve speed of vSphere PV provisioning and reduce number of API calls ([#100054](https://github.com/kubernetes/kubernetes/pull/100054), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100054", - "pr_number": 100054, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "duplicate": true - }, - "100082": { - "commit": "019c89218119ef37bf755e3717c431f4cb9469a4", - "text": "`apiserver_storage_objects` (a newer version of `etcd_object_counts`) is promoted and marked as stable.", - "markdown": "`apiserver_storage_objects` (a newer version of `etcd_object_counts`) is promoted and marked as stable. ([#100082](https://github.com/kubernetes/kubernetes/pull/100082), [@logicalhan](https://github.com/logicalhan))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1209-metrics-stability", - "type": "KEP" - } - ], - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100082", - "pr_number": 100082, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "100103": { - "commit": "e2cdf0e3f7f16c84fea9c1962b2a33a66ad53792", - "text": "EndpointSlice controllers are less likely to create duplicate EndpointSlices.", - "markdown": "EndpointSlice controllers are less likely to create duplicate EndpointSlices. ([#100103](https://github.com/kubernetes/kubernetes/pull/100103), [@robscott](https://github.com/robscott)) [SIG Apps and Network]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100103", - "pr_number": 100103, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true - }, - "100106": { - "commit": "3baa0358b9051c636c5e79c16db5929ded89e517", - "text": "Kubernetes is now built with Golang 1.16.1", - "markdown": "Kubernetes is now built with Golang 1.16.1 ([#100106](https://github.com/kubernetes/kubernetes/pull/100106), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing]", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100106", - "pr_number": 100106, - "areas": [ - "dependency", - "provider/gcp", - "release-eng", - "security", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "instrumentation", - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "100196": { - "commit": "e082d845759ca6883d1e6d5b9a551016c0b6f5e0", - "text": "kubelet: completed support for structured logging", - "markdown": "Kubelet: completed support for structured logging ([#100196](https://github.com/kubernetes/kubernetes/pull/100196), [@ehashman](https://github.com/ehashman))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1602", - "type": "KEP" - } - ], - "author": "ehashman", - "author_url": "https://github.com/ehashman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100196", - "pr_number": 100196, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "instrumentation", - "node" - ], - "duplicate": true, - "do_not_publish": true - }, - "100319": { - "commit": "2f8a2258f45b409481cd66be7d34a5b482db3899", - "text": "EmptyDir memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value.", - "markdown": "EmptyDir memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value. ([#100319](https://github.com/kubernetes/kubernetes/pull/100319), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2345", - "type": "KEP" - } - ], - "author": "derekwaynecarr", - "author_url": "https://github.com/derekwaynecarr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100319", - "pr_number": 100319, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "100472": { - "commit": "16610bbb2fcc662e1bdb9bcc633ce1f880de26e3", - "text": "`discovery.k8s.io/v1beta1` EndpointSlices are deprecated in favor of `discovery.k8s.io/v1`, and will no longer be served in Kubernetes v1.25.", - "markdown": "`discovery.k8s.io/v1beta1` EndpointSlices are deprecated in favor of `discovery.k8s.io/v1`, and will no longer be served in Kubernetes v1.25. ([#100472](https://github.com/kubernetes/kubernetes/pull/100472), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100472", - "pr_number": 100472, - "kinds": [ - "api-change", - "cleanup", - "deprecation" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "100505": { - "commit": "e71e284b7436c5904da461d72993b2988b451d2f", - "text": "kubectl: Fixed panic when describing an ingress backend without an API Group", - "markdown": "Kubectl: Fixed panic when describing an ingress backend without an API Group ([#100505](https://github.com/kubernetes/kubernetes/pull/100505), [@lauchokyip](https://github.com/lauchokyip)) [SIG CLI]", - "author": "lauchokyip", - "author_url": "https://github.com/lauchokyip", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100505", - "pr_number": 100505, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "100563": { - "commit": "01f7495b65585a7190ad1018125dad318de8301f", - "text": "Reverts breaking change to inline AzureFile volumes; referenced secrets are now searched for in the same namespace as the pod as in previous releases.", - "markdown": "Reverts breaking change to inline AzureFile volumes; referenced secrets are now searched for in the same namespace as the pod as in previous releases. ([#100563](https://github.com/kubernetes/kubernetes/pull/100563), [@msau42](https://github.com/msau42))", - "author": "msau42", - "author_url": "https://github.com/msau42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100563", - "pr_number": 100563, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "storage" - ], - "duplicate_kind": true - }, - "100571": { - "commit": "9af6f70f8f05479c96efcb23c77447e15fb69eed", - "text": "Explicitly pass `KUBE_BUILD_CONFORMANCE=y` in `package-tarballs` to reenable building the conformance tarballs.", - "markdown": "Explicitly pass `KUBE_BUILD_CONFORMANCE=y` in `package-tarballs` to reenable building the conformance tarballs. ([#100571](https://github.com/kubernetes/kubernetes/pull/100571), [@puerco](https://github.com/puerco))", - "author": "puerco", - "author_url": "https://github.com/puerco", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100571", - "pr_number": 100571, - "kinds": [ - "bug" - ], - "sigs": [ - "release" - ] - }, - "83730": { - "commit": "55f255208a682df65f322e5d48e8e9607eb221fc", - "text": "When using `Containerd` on Windows, the `C:\\Windows\\System32\\drivers\\etc\\hosts` file will now be managed by kubelet.", - "markdown": "When using `Containerd` on Windows, the `C:\\Windows\\System32\\drivers\\etc\\hosts` file will now be managed by kubelet. ([#83730](https://github.com/kubernetes/kubernetes/pull/83730), [@claudiubelu](https://github.com/claudiubelu))", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/83730", - "pr_number": 83730, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true - }, - "87461": { - "commit": "61dc69ac2cf936ccafb51e9d946097b62b4ead07", - "text": "The calculation of pod UIDs for static pods has changed to ensure each static pod gets a unique value - this will cause all static pod containers to be recreated/restarted if an in-place kubelet upgrade from 1.20 to 1.21 is performed. Note that draining pods before upgrading the kubelet across minor versions is the supported upgrade path.", - "markdown": "The calculation of pod UIDs for static pods has changed to ensure each static pod gets a unique value - this will cause all static pod containers to be recreated/restarted if an in-place kubelet upgrade from 1.20 to 1.21 is performed. Note that draining pods before upgrading the kubelet across minor versions is the supported upgrade path. ([#87461](https://github.com/kubernetes/kubernetes/pull/87461), [@bboreham](https://github.com/bboreham)) [SIG Node]", - "author": "bboreham", - "author_url": "https://github.com/bboreham", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/87461", - "pr_number": 87461, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "92866": { - "commit": "8096513aca94b3e1f7e05defadf1659a15bc623e", - "text": "Scheduler extender filter interface now can report unresolvable failed nodes in the new field `FailedAndUnresolvableNodes` of `ExtenderFilterResult` struct. Nodes in this map will be skipped in the preemption phase.", - "markdown": "Scheduler extender filter interface now can report unresolvable failed nodes in the new field `FailedAndUnresolvableNodes` of `ExtenderFilterResult` struct. Nodes in this map will be skipped in the preemption phase. ([#92866](https://github.com/kubernetes/kubernetes/pull/92866), [@cofyc](https://github.com/cofyc)) [SIG Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/1850", - "type": "KEP" - } - ], - "author": "cofyc", - "author_url": "https://github.com/cofyc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92866", - "pr_number": 92866, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "duplicate_kind": true - }, - "92938": { - "commit": "5e22f7feadeb97aa8fad9330c936104479ad56d6", - "text": "kube-proxy's IPVS proxy mode no longer sets the net.ipv4.conf.all.route_localnet sysctl parameter. Nodes upgrading will have net.ipv4.conf.all.route_localnet set to 1 but new nodes will inherit the system default (usually 0). If you relied on any behavior requiring net.ipv4.conf.all.route_localnet, you must set ensure it is enabled as kube-proxy will no longer set it automatically. This change helps to further mitigate CVE-2020-8558.", - "markdown": "Kube-proxy's IPVS proxy mode no longer sets the net.ipv4.conf.all.route_localnet sysctl parameter. Nodes upgrading will have net.ipv4.conf.all.route_localnet set to 1 but new nodes will inherit the system default (usually 0). If you relied on any behavior requiring net.ipv4.conf.all.route_localnet, you must set ensure it is enabled as kube-proxy will no longer set it automatically. This change helps to further mitigate CVE-2020-8558. ([#92938](https://github.com/kubernetes/kubernetes/pull/92938), [@lbernail](https://github.com/lbernail)) [SIG Network and Release]", - "author": "lbernail", - "author_url": "https://github.com/lbernail", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92938", - "pr_number": 92938, - "areas": [ - "ipvs", - "release-eng" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "release" - ], - "duplicate": true, - "action_required": true - }, - "93179": { - "commit": "21d3c73f543d3c15fb5dafc8ba496250595cda5d", - "text": "Overall, enable the feature of `PreferNominatedNode` will improve the performance of scheduling where preemption might frequently happen, but in theory, enable the feature of `PreferNominatedNode`, the pod might not be scheduled to the best candidate node in the cluster.", - "markdown": "Overall, enable the feature of `PreferNominatedNode` will improve the performance of scheduling where preemption might frequently happen, but in theory, enable the feature of `PreferNominatedNode`, the pod might not be scheduled to the best candidate node in the cluster. ([#93179](https://github.com/kubernetes/kubernetes/pull/93179), [@chendave](https://github.com/chendave)) [SIG Scheduling and Testing]", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93179", - "pr_number": 93179, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true - }, - "93285": { - "commit": "e20300b1a06265eb65dd88a8bf18f1eb931df8f2", - "text": "Port the devicemanager to Windows node to allow device plugins like directx", - "markdown": "Port the devicemanager to Windows node to allow device plugins like directx ([#93285](https://github.com/kubernetes/kubernetes/pull/93285), [@aarnaud](https://github.com/aarnaud)) [SIG Node, Testing and Windows]", - "author": "aarnaud", - "author_url": "https://github.com/aarnaud", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93285", - "pr_number": 93285, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing", - "windows" - ], - "feature": true, - "duplicate": true - }, - "93510": { - "commit": "0b4a30bb25cfcf7c0895361dea2a3d465c75bd0e", - "text": "Specifying the KUBE_TEST_REPO environment variable when e2e tests are executed will instruct the test infrastructure to load that image from a location within the specified repo, using a predefined pattern.", - "markdown": "Specifying the KUBE_TEST_REPO environment variable when e2e tests are executed will instruct the test infrastructure to load that image from a location within the specified repo, using a predefined pattern. ([#93510](https://github.com/kubernetes/kubernetes/pull/93510), [@smarterclayton](https://github.com/smarterclayton)) [SIG Testing]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93510", - "pr_number": 93510, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "testing" - ] - }, - "93861": { - "commit": "7f083d339f9d4e104cc31e671626c74fd3c83611", - "text": "Add --permit-address-sharing flag to `kube-apiserver` to listen with `SO_REUSEADDR`. While allowing to listen on wildcard IPs like 0.0.0.0 and specific IPs in parallel, it avoids waiting for the kernel to release socket in `TIME_WAIT` state, and hence, considerably reducing `kube-apiserver` restart times under certain conditions.", - "markdown": "Add --permit-address-sharing flag to `kube-apiserver` to listen with `SO_REUSEADDR`. While allowing to listen on wildcard IPs like 0.0.0.0 and specific IPs in parallel, it avoids waiting for the kernel to release socket in `TIME_WAIT` state, and hence, considerably reducing `kube-apiserver` restart times under certain conditions. ([#93861](https://github.com/kubernetes/kubernetes/pull/93861), [@sttts](https://github.com/sttts))", - "author": "sttts", - "author_url": "https://github.com/sttts", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93861", - "pr_number": 93861, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "94641": { - "commit": "4d752791315e61fe1bedcdfba81c38045bff209f", - "text": "The `RunAsGroup` feature has been promoted to GA in this release.", - "markdown": "The `RunAsGroup` feature has been promoted to GA in this release. ([#94641](https://github.com/kubernetes/kubernetes/pull/94641), [@krmayankk](https://github.com/krmayankk)) [SIG Auth and Node]", - "author": "krmayankk", - "author_url": "https://github.com/krmayankk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94641", - "pr_number": 94641, - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "node" - ], - "feature": true, - "duplicate": true - }, - "94858": { - "commit": "f11c3b475d852ec8b6075fb2899a795f52d1be8f", - "text": "Ensure empty string annotations are copied over in rollbacks.", - "markdown": "Ensure empty string annotations are copied over in rollbacks. ([#94858](https://github.com/kubernetes/kubernetes/pull/94858), [@waynepeking348](https://github.com/waynepeking348))", - "author": "waynepeking348", - "author_url": "https://github.com/waynepeking348", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94858", - "pr_number": 94858, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "95111": { - "commit": "889cf714c17163e2a787db9c474652514a18d52f", - "text": "Resolve a \"concurrent map read and map write\" crashing error in the kubelet", - "markdown": "Resolve a \"concurrent map read and map write\" crashing error in the kubelet ([#95111](https://github.com/kubernetes/kubernetes/pull/95111), [@choury](https://github.com/choury)) [SIG Node]", - "author": "choury", - "author_url": "https://github.com/choury", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95111", - "pr_number": 95111, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "95269": { - "commit": "e40cba59e32529595a138fe92c54da5aa3edd73e", - "text": "fix the panic when kubelet registers if a node object already exists with no Status.Capacity or Status.Allocatable", - "markdown": "Fix the panic when kubelet registers if a node object already exists with no Status.Capacity or Status.Allocatable ([#95269](https://github.com/kubernetes/kubernetes/pull/95269), [@SataQiu](https://github.com/SataQiu)) [SIG Node]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95269", - "pr_number": 95269, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "95301": { - "commit": "55626cf2c6c5bea38380b7abc9f2771100cb2579", - "text": "Kubelet now cleans up orphaned volume directories automatically", - "markdown": "Kubelet now cleans up orphaned volume directories automatically ([#95301](https://github.com/kubernetes/kubernetes/pull/95301), [@lorenz](https://github.com/lorenz)) [SIG Node and Storage]", - "author": "lorenz", - "author_url": "https://github.com/lorenz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95301", - "pr_number": 95301, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "storage" - ], - "duplicate": true - }, - "95664": { - "commit": "9d99dbc357ed85bcc963fc4bab8a4a3089c910b2", - "text": "Ensure that client-go's EventBroadcaster is safe (non-racy) during shutdown.", - "markdown": "Ensure that client-go's EventBroadcaster is safe (non-racy) during shutdown. ([#95664](https://github.com/kubernetes/kubernetes/pull/95664), [@DirectXMan12](https://github.com/DirectXMan12)) [SIG API Machinery]", - "author": "DirectXMan12", - "author_url": "https://github.com/DirectXMan12", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95664", - "pr_number": 95664, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "95667": { - "commit": "7aca4978500d2da5053197f9ddac782fa9c233f4", - "text": "The BoundServiceAccountTokenVolume feature has been promoted to beta, and enabled by default.\n- This changes the tokens provided to containers at `/var/run/secrets/kubernetes.io/serviceaccount/token` to be time-limited, auto-refreshed, and invalidated when the containing pod is deleted.\n- Clients should reload the token from disk periodically (once per minute is recommended) to ensure they continue to use a valid token. `k8s.io/client-go` version v11.0.0+ and v0.15.0+ reload tokens automatically.\n- By default, injected tokens are given an extended lifetime so they remain valid even after a new refreshed token is provided. The metric `serviceaccount_stale_tokens_total` can be used to monitor for workloads that are depending on the extended lifetime and are continuing to use tokens even after a refreshed token is provided to the container. If that metric indicates no existing workloads are depending on extended lifetimes, injected token lifetime can be shortened to 1 hour by starting `kube-apiserver` with `--service-account-extend-token-expiration=false`.", - "markdown": "The BoundServiceAccountTokenVolume feature has been promoted to beta, and enabled by default.\n - This changes the tokens provided to containers at `/var/run/secrets/kubernetes.io/serviceaccount/token` to be time-limited, auto-refreshed, and invalidated when the containing pod is deleted.\n - Clients should reload the token from disk periodically (once per minute is recommended) to ensure they continue to use a valid token. `k8s.io/client-go` version v11.0.0+ and v0.15.0+ reload tokens automatically.\n - By default, injected tokens are given an extended lifetime so they remain valid even after a new refreshed token is provided. The metric `serviceaccount_stale_tokens_total` can be used to monitor for workloads that are depending on the extended lifetime and are continuing to use tokens even after a refreshed token is provided to the container. If that metric indicates no existing workloads are depending on extended lifetimes, injected token lifetime can be shortened to 1 hour by starting `kube-apiserver` with `--service-account-extend-token-expiration=false`. ([#95667](https://github.com/kubernetes/kubernetes/pull/95667), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Cluster Lifecycle and Testing]", - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95667", - "pr_number": 95667, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cluster-lifecycle", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "95734": { - "commit": "770a9504ea3fe38a75c51f036187b5dea124ebab", - "text": "Implement the GetAvailableResources in the podresources API.", - "markdown": "Implement the GetAvailableResources in the podresources API. ([#95734](https://github.com/kubernetes/kubernetes/pull/95734), [@fromanirh](https://github.com/fromanirh)) [SIG Instrumentation, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2043-pod-resource-concrete-assigments", - "type": "KEP" - } - ], - "author": "fromanirh", - "author_url": "https://github.com/fromanirh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95734", - "pr_number": 95734, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "instrumentation", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "95783": { - "commit": "ae6ceaa78d6891f97589a0ffcf405f45c2caae79", - "text": "Fixed a race condition on API server startup ensuring previously created webhook configurations are effective before the first write request is admitted.", - "markdown": "Fixed a race condition on API server startup ensuring previously created webhook configurations are effective before the first write request is admitted. ([#95783](https://github.com/kubernetes/kubernetes/pull/95783), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery]", - "author": "roycaihw", - "author_url": "https://github.com/roycaihw", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95783", - "pr_number": 95783, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "95790": { - "commit": "403d0cdc286bae4c8e75cb4b7b3af12abe7764da", - "text": "The apimachinery util/net function used to detect the bind address `ResolveBindAddress()` takes into consideration global IP addresses on loopback interfaces when 1) the host has default routes, or 2) there are no global IPs on those interfaces in order to support more complex network scenarios like BGP Unnumbered RFC 5549", - "markdown": "The apimachinery util/net function used to detect the bind address `ResolveBindAddress()` takes into consideration global IP addresses on loopback interfaces when 1) the host has default routes, or 2) there are no global IPs on those interfaces in order to support more complex network scenarios like BGP Unnumbered RFC 5549 ([#95790](https://github.com/kubernetes/kubernetes/pull/95790), [@aojea](https://github.com/aojea)) [SIG Network]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95790", - "pr_number": 95790, - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "duplicate_kind": true - }, - "96021": { - "commit": "f5fb1c93dbaa512eb66090c5027435d3dee95ac7", - "text": "All data is no longer automatically deleted when a failure is detected during creation of the volume data file on a CSI volume. Now only the data file and volume path is removed.", - "markdown": "All data is no longer automatically deleted when a failure is detected during creation of the volume data file on a CSI volume. Now only the data file and volume path is removed. ([#96021](https://github.com/kubernetes/kubernetes/pull/96021), [@huffmanca](https://github.com/huffmanca))", - "author": "huffmanca", - "author_url": "https://github.com/huffmanca", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96021", - "pr_number": 96021, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "96293": { - "commit": "d3fce91fdc581f94496f0c4417207f9d2745e02b", - "text": "Azure file migration graduates to beta, with CSIMigrationAzureFile flag off by default\nas it requires installation of AzureFile CSI Driver. Users should enable CSIMigration and\nCSIMigrationAzureFile features and install the [AzureFile CSI Driver](https://github.com/kubernetes-sigs/azurefile-csi-driver)\nto avoid disruption to existing Pod and PVC objects at that time. Azure File CSI driver does not support using same persistent\nvolume with different fsgroups. When CSI migration is enabled for azurefile driver, such case is not supported.\n(there is a case we support where volume is mounted with 0777 and then it readable/writable by everyone)", - "markdown": "Azure file migration graduates to beta, with CSIMigrationAzureFile flag off by default\n as it requires installation of AzureFile CSI Driver. Users should enable CSIMigration and\n CSIMigrationAzureFile features and install the [AzureFile CSI Driver](https://github.com/kubernetes-sigs/azurefile-csi-driver)\n to avoid disruption to existing Pod and PVC objects at that time. Azure File CSI driver does not support using same persistent\n volume with different fsgroups. When CSI migration is enabled for azurefile driver, such case is not supported.\n (there is a case we support where volume is mounted with 0777 and then it readable/writable by everyone) ([#96293](https://github.com/kubernetes/kubernetes/pull/96293), [@andyzhangx](https://github.com/andyzhangx))", - "documentation": [ - { - "description": "The in-tree AzureFile plugin \"kubernetes.io/azure-file\" is now deprecated and will be removed in 1.23. Users should enable CSIMigration + CSIMigrationAzureFile features and install the AzureFile CSI Driver (", - "url": "https://github.com/kubernetes-sigs/azurefile-csi-driver) to avoid disruption to existing Pod and PVC objects at that time.", - "type": "external" - } - ], - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96293", - "pr_number": 96293, - "areas": [ - "provider/azure" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cloud-provider" - ] - }, - "96296": { - "commit": "9d81c4ebfa93d41f9770f223288e6f9310b9a3f0", - "text": "kube-proxy: Traffic from the cluster directed to ExternalIPs is always sent directly to the Service.", - "markdown": "Kube-proxy: Traffic from the cluster directed to ExternalIPs is always sent directly to the Service. ([#96296](https://github.com/kubernetes/kubernetes/pull/96296), [@aojea](https://github.com/aojea)) [SIG Network and Testing]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96296", - "pr_number": 96296, - "areas": [ - "e2e-test-framework", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true - }, - "96347": { - "commit": "ed6b9addbf71cf0f5256aeba0b83b53db53d895c", - "text": "Adds alpha feature `VolumeCapacityPriority` which makes the scheduler prioritize nodes based on the best matching size of statically provisioned PVs across multiple topologies.", - "markdown": "Adds alpha feature `VolumeCapacityPriority` which makes the scheduler prioritize nodes based on the best matching size of statically provisioned PVs across multiple topologies. ([#96347](https://github.com/kubernetes/kubernetes/pull/96347), [@cofyc](https://github.com/cofyc)) [SIG Apps, Network, Scheduling, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1845-prioritization-on-volume-capacity", - "type": "KEP" - } - ], - "author": "cofyc", - "author_url": "https://github.com/cofyc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96347", - "pr_number": 96347, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "network", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true - }, - "96378": { - "commit": "d664958e55c795eeaa94b6d2a9597ce6d5a85270", - "text": "kubeadm: amend the node kernel validation to treat CGROUP_PIDS, FAIR_GROUP_SCHED as required and CFS_BANDWIDTH, CGROUP_HUGETLB as optional", - "markdown": "Kubeadm: amend the node kernel validation to treat CGROUP_PIDS, FAIR_GROUP_SCHED as required and CFS_BANDWIDTH, CGROUP_HUGETLB as optional ([#96378](https://github.com/kubernetes/kubernetes/pull/96378), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96378", - "pr_number": 96378, - "areas": [ - "code-organization", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle", - "node" - ], - "feature": true, - "duplicate": true - }, - "96429": { - "commit": "80be1d6c7217b99fb6ff083a190b44af53a628fc", - "text": "Kubeadm now includes CoreDNS v1.8.0.", - "markdown": "Kubeadm now includes CoreDNS v1.8.0. ([#96429](https://github.com/kubernetes/kubernetes/pull/96429), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle]", - "author": "rajansandeep", - "author_url": "https://github.com/rajansandeep", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96429", - "pr_number": 96429, - "areas": [ - "dependency", - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "96441": { - "commit": "377ed3c2a638d38d46c1471a901903a7ced21561", - "text": "DaemonSets accept a MaxSurge integer or percent on their rolling update strategy that will launch the updated pod on nodes and wait for those pods to go ready before marking the old out-of-date pods as deleted. This allows workloads to avoid downtime during upgrades when deployed using DaemonSets. This feature is alpha and is behind the DaemonSetUpdateSurge feature gate.", - "markdown": "DaemonSets accept a MaxSurge integer or percent on their rolling update strategy that will launch the updated pod on nodes and wait for those pods to go ready before marking the old out-of-date pods as deleted. This allows workloads to avoid downtime during upgrades when deployed using DaemonSets. This feature is alpha and is behind the DaemonSetUpdateSurge feature gate. ([#96441](https://github.com/kubernetes/kubernetes/pull/96441), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/1591-daemonset-surge", - "type": "KEP" - } - ], - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96441", - "pr_number": 96441, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "96447": { - "commit": "bd4d197b5267ee198c1b0a070d7398f10df68c52", - "text": "Remove the deprecated metrics \"scheduling_algorithm_preemption_evaluation_seconds\" and \"binding_duration_seconds\", suggest to use \"scheduler_framework_extension_point_duration_seconds\" instead.", - "markdown": "Remove the deprecated metrics \"scheduling_algorithm_preemption_evaluation_seconds\" and \"binding_duration_seconds\", suggest to use \"scheduler_framework_extension_point_duration_seconds\" instead. ([#96447](https://github.com/kubernetes/kubernetes/pull/96447), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle, Instrumentation, Scheduling and Testing]", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96447", - "pr_number": 96447, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle", - "instrumentation", - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "96502": { - "commit": "33518271f3f97733a52369713769746f78cc4f1a", - "text": "Adds the ability to pass --strict-transport-security-directives to the kube-apiserver to set the HSTS header appropriately. Be sure you understand the consequences to browsers before setting this field.", - "markdown": "Adds the ability to pass --strict-transport-security-directives to the kube-apiserver to set the HSTS header appropriately. Be sure you understand the consequences to browsers before setting this field. ([#96502](https://github.com/kubernetes/kubernetes/pull/96502), [@249043822](https://github.com/249043822)) [SIG Auth]", - "author": "249043822", - "author_url": "https://github.com/249043822", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96502", - "pr_number": 96502, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true - }, - "96531": { - "commit": "197dbac376fa0fece31ec8b7052ccda161a79518", - "text": "The feature gates `WindowsGMSA` and `WindowsRunAsUserName` that are GA since v1.18 are now removed.", - "markdown": "The feature gates `WindowsGMSA` and `WindowsRunAsUserName` that are GA since v1.18 are now removed. ([#96531](https://github.com/kubernetes/kubernetes/pull/96531), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Node and Windows]", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96531", - "pr_number": 96531, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true - }, - "96539": { - "commit": "564ffbd400e50f37b892747c434ec55bde865134", - "text": "The `AttachVolumeLimit` feature gate (GA since v1.17) has been removed and now unconditionally enabled.", - "markdown": "The `AttachVolumeLimit` feature gate (GA since v1.17) has been removed and now unconditionally enabled. ([#96539](https://github.com/kubernetes/kubernetes/pull/96539), [@ialidzhikov](https://github.com/ialidzhikov))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/issues/554", - "type": "KEP" - } - ], - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96539", - "pr_number": 96539, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "96561": { - "commit": "07bd985724efcb8e2152541f59a6a9bf398fc8b3", - "text": "The `CSINodeInfo` feature gate that is GA since v1.17 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument.", - "markdown": "The `CSINodeInfo` feature gate that is GA since v1.17 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#96561](https://github.com/kubernetes/kubernetes/pull/96561), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Apps, Auth, Scheduling, Storage and Testing]", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96561", - "pr_number": 96561, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "auth", - "scheduling", - "storage", - "testing" - ], - "duplicate": true - }, - "96599": { - "commit": "125a5f10a6e3399301096c61346bdd5cc9a314e1", - "text": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:\nNONE\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:\n NONE\n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#96599](https://github.com/kubernetes/kubernetes/pull/96599), [@tanjing2020](https://github.com/tanjing2020)) [SIG Storage]", - "author": "tanjing2020", - "author_url": "https://github.com/tanjing2020", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96599", - "pr_number": 96599, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ], - "do_not_publish": true - }, - "96600": { - "commit": "2783f2f76ec57b9831b91e6c4b35d35cee4345e7", - "text": "One new field \"InternalTrafficPolicy\" in Service is added.\nIt specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only.\n\"Cluster\" routes internal traffic to a Service to all endpoints.\n\"Local\" routes traffic to node-local endpoints only, and traffic is dropped if no node-local endpoints are ready.\nThe default value is \"Cluster\".", - "markdown": "One new field \"InternalTrafficPolicy\" in Service is added.\n It specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only.\n \"Cluster\" routes internal traffic to a Service to all endpoints.\n \"Local\" routes traffic to node-local endpoints only, and traffic is dropped if no node-local endpoints are ready.\n The default value is \"Cluster\". ([#96600](https://github.com/kubernetes/kubernetes/pull/96600), [@maplain](https://github.com/maplain)) [SIG API Machinery, Apps and Network]", - "author": "maplain", - "author_url": "https://github.com/maplain", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96600", - "pr_number": 96600, - "areas": [ - "ipvs" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "network" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "96616": { - "commit": "a8ac0c98b93cb110ce6456adc9b5e9da611747c4", - "text": "Kubelet.exe on Windows now checks that the process running as administrator and the executing user account is listed in the built-in administrators group. This is the equivalent to checking the process is running as uid 0.", - "markdown": "Kubelet.exe on Windows now checks that the process running as administrator and the executing user account is listed in the built-in administrators group. This is the equivalent to checking the process is running as uid 0. ([#96616](https://github.com/kubernetes/kubernetes/pull/96616), [@perithompson](https://github.com/perithompson)) [SIG Node and Windows]", - "author": "perithompson", - "author_url": "https://github.com/perithompson", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96616", - "pr_number": 96616, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true - }, - "96617": { - "commit": "efb9489acb8602835aa7bd9299424415d9492ace", - "text": "Fix to recover CSI volumes from certain dangling attachments", - "markdown": "Fix to recover CSI volumes from certain dangling attachments ([#96617](https://github.com/kubernetes/kubernetes/pull/96617), [@yuga711](https://github.com/yuga711)) [SIG Apps and Storage]", - "author": "yuga711", - "author_url": "https://github.com/yuga711", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96617", - "pr_number": 96617, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "storage" - ], - "duplicate": true - }, - "96655": { - "commit": "a54414e3436fee9bf738cc975db1a55dbcee282c", - "text": "kubectl: Add `--use-protocol-buffers` flag to kubectl top pods and nodes.", - "markdown": "Kubectl: Add `--use-protocol-buffers` flag to kubectl top pods and nodes. ([#96655](https://github.com/kubernetes/kubernetes/pull/96655), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96655", - "pr_number": 96655, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "96668": { - "commit": "af212061870489bdc1e4e252de1d1c3ca884916f", - "text": "ignore update pod with no new images in alwaysPullImages admission controller", - "markdown": "Ignore update pod with no new images in alwaysPullImages admission controller ([#96668](https://github.com/kubernetes/kubernetes/pull/96668), [@pacoxu](https://github.com/pacoxu)) [SIG Apps, Auth and Node]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96668", - "pr_number": 96668, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "auth", - "node" - ], - "duplicate": true - }, - "96673": { - "commit": "31fd5671ae863ee3ac20e3ab3cc95d803faafeb7", - "text": "Fixed Cinder volume IDs on OpenStack Train", - "markdown": "Fixed Cinder volume IDs on OpenStack Train ([#96673](https://github.com/kubernetes/kubernetes/pull/96673), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider]", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96673", - "pr_number": 96673, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "96675": { - "commit": "0da0d186a66dd00b82ac35ce4d830e74f478db39", - "text": "Set kubelet option `--volume-stats-agg-period` to negative value to disable volume calculations.", - "markdown": "Set kubelet option `--volume-stats-agg-period` to negative value to disable volume calculations. ([#96675](https://github.com/kubernetes/kubernetes/pull/96675), [@pacoxu](https://github.com/pacoxu)) [SIG Node]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96675", - "pr_number": 96675, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "documentation" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "96689": { - "commit": "fc43c80ccd0569298c81b2be080aa7dbb6132e95", - "text": "Ensure all vSphere nodes are are tracked by volume attach-detach controller", - "markdown": "Ensure all vSphere nodes are are tracked by volume attach-detach controller ([#96689](https://github.com/kubernetes/kubernetes/pull/96689), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96689", - "pr_number": 96689, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "duplicate": true - }, - "96691": { - "commit": "a107769005854608fe8cdfa2e274204d0fdb9240", - "text": "Increase timeout for pod lifecycle test to reach pod status=ready", - "markdown": "Increase timeout for pod lifecycle test to reach pod status=ready ([#96691](https://github.com/kubernetes/kubernetes/pull/96691), [@hh](https://github.com/hh))", - "author": "hh", - "author_url": "https://github.com/hh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96691", - "pr_number": 96691, - "areas": [ - "conformance", - "test" - ], - "kinds": [ - "flake" - ], - "sigs": [ - "architecture", - "testing" - ], - "duplicate": true - }, - "96736": { - "commit": "ddf3eb5a1877338da806c2be15b53f456b6342c9", - "text": "Deprecate the `topologyKeys` field in Service. This capability will be replaced with upcoming work around Topology Aware Subsetting and Service Internal Traffic Policy.", - "markdown": "Deprecate the `topologyKeys` field in Service. This capability will be replaced with upcoming work around Topology Aware Subsetting and Service Internal Traffic Policy. ([#96736](https://github.com/kubernetes/kubernetes/pull/96736), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps]", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96736", - "pr_number": 96736, - "kinds": [ - "api-change", - "deprecation" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "96821": { - "commit": "9720013d926cefb2ce5e5584f993387a2b12ce60", - "text": "Fix CSI-migrated inline EBS volumes failing to mount if their volumeID is prefixed by aws://", - "markdown": "Fix CSI-migrated inline EBS volumes failing to mount if their volumeID is prefixed by aws:// ([#96821](https://github.com/kubernetes/kubernetes/pull/96821), [@wongma7](https://github.com/wongma7)) [SIG Storage]", - "author": "wongma7", - "author_url": "https://github.com/wongma7", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96821", - "pr_number": 96821, - "areas": [ - "provider/aws" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "96844": { - "commit": "b538d230661ff12577a720713cae9c06645d609e", - "text": "Use force unmount for NFS volumes if regular mount fails after 1 minute timeout", - "markdown": "Use force unmount for NFS volumes if regular mount fails after 1 minute timeout ([#96844](https://github.com/kubernetes/kubernetes/pull/96844), [@gnufied](https://github.com/gnufied)) [SIG Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96844", - "pr_number": 96844, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "96873": { - "commit": "a20aeb8eed76d17117ca6086a1192c49d67c393b", - "text": "AcceleratorStats will be available in the Summary API of kubelet when cri_stats_provider is used.", - "markdown": "AcceleratorStats will be available in the Summary API of kubelet when cri_stats_provider is used. ([#96873](https://github.com/kubernetes/kubernetes/pull/96873), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) [SIG Node]", - "author": "ruiwen-zhao", - "author_url": "https://github.com/ruiwen-zhao", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96873", - "pr_number": 96873, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "96876": { - "commit": "1209c596129f4326a6c2da49e63841d035a47363", - "text": "fixing a bug where a failed node may not have the NoExecute taint set correctly", - "markdown": "Fixing a bug where a failed node may not have the NoExecute taint set correctly ([#96876](https://github.com/kubernetes/kubernetes/pull/96876), [@howieyuen](https://github.com/howieyuen)) [SIG Apps and Node]", - "author": "howieyuen", - "author_url": "https://github.com/howieyuen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96876", - "pr_number": 96876, - "areas": [ - "node-lifecycle" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "node" - ], - "duplicate": true - }, - "96877": { - "commit": "4fe132954f731db75934cbf04d499651fef079ab", - "text": "Fix privileged config of Pod Sandbox which was previously ignored.", - "markdown": "Fix privileged config of Pod Sandbox which was previously ignored. ([#96877](https://github.com/kubernetes/kubernetes/pull/96877), [@xeniumlee](https://github.com/xeniumlee))", - "author": "xeniumlee", - "author_url": "https://github.com/xeniumlee", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96877", - "pr_number": 96877, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "96878": { - "commit": "e2f018dcda5f68fbcc110b3f02895c15f764839d", - "text": "kubectl: `kubectl get` will omit managed fields by default now. Users could set `--show-managed-fields` to true to show managedFields when the output format is either `json` or `yaml`.", - "markdown": "Kubectl: `kubectl get` will omit managed fields by default now. Users could set `--show-managed-fields` to true to show managedFields when the output format is either `json` or `yaml`. ([#96878](https://github.com/kubernetes/kubernetes/pull/96878), [@knight42](https://github.com/knight42)) [SIG CLI and Testing]", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96878", - "pr_number": 96878, - "areas": [ - "kubectl", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "96889": { - "commit": "39483aa0957be65b04686173d2970b508b3974ca", - "text": "Fixed cleanup of block devices when /var/lib/kubelet is a symlink.", - "markdown": "Fixed cleanup of block devices when /var/lib/kubelet is a symlink. ([#96889](https://github.com/kubernetes/kubernetes/pull/96889), [@jsafrane](https://github.com/jsafrane)) [SIG Storage]", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96889", - "pr_number": 96889, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "96901": { - "commit": "0bf26180dd41b243064ff013e58d4e8400609f16", - "text": "Requests with invalid timeout parameters in the request URL now appear in the audit log correctly.", - "markdown": "Requests with invalid timeout parameters in the request URL now appear in the audit log correctly. ([#96901](https://github.com/kubernetes/kubernetes/pull/96901), [@tkashem](https://github.com/tkashem)) [SIG API Machinery and Testing]", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96901", - "pr_number": 96901, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "96968": { - "commit": "c94ce8c5079e00fb11ca6c33170c97167570bdfa", - "text": "Namespace API objects now have a `kubernetes.io/metadata.name` label matching their metadata.name field to allow selecting any namespace by its name using a label selector.", - "markdown": "Namespace API objects now have a `kubernetes.io/metadata.name` label matching their metadata.name field to allow selecting any namespace by its name using a label selector. ([#96968](https://github.com/kubernetes/kubernetes/pull/96968), [@jayunit100](https://github.com/jayunit100)) [SIG API Machinery, Apps, Cloud Provider, Storage and Testing]", - "author": "jayunit100", - "author_url": "https://github.com/jayunit100", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96968", - "pr_number": 96968, - "areas": [ - "provider/gcp", - "test" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "cloud-provider", - "storage", - "testing" - ], - "duplicate": true - }, - "96987": { - "commit": "4f1dd5d2fbe42f39a841016796c5646711946ad1", - "text": "The `batch/v2alpha1` CronJob type definitions and clients are deprecated and removed.", - "markdown": "The `batch/v2alpha1` CronJob type definitions and clients are deprecated and removed. ([#96987](https://github.com/kubernetes/kubernetes/pull/96987), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps, CLI and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/19-Graduate-CronJob-to-Stable", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96987", - "pr_number": 96987, - "areas": [ - "kubectl", - "test" - ], - "kinds": [ - "api-change", - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery", - "apps", - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "97006": { - "commit": "75115236e77c08698d6fdd91c3c9d0897de44ad6", - "text": "Fix missing cadvisor machine metrics.", - "markdown": "Fix missing cadvisor machine metrics. ([#97006](https://github.com/kubernetes/kubernetes/pull/97006), [@lingsamuel](https://github.com/lingsamuel)) [SIG Node]", - "author": "lingsamuel", - "author_url": "https://github.com/lingsamuel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97006", - "pr_number": 97006, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "97009": { - "commit": "74b4f3d0151f5c007f168d62f93cde12fdb9de98", - "text": "Add flag --lease-reuse-duration-seconds for kube-apiserver to config etcd lease reuse duration.", - "markdown": "Add flag --lease-reuse-duration-seconds for kube-apiserver to config etcd lease reuse duration. ([#97009](https://github.com/kubernetes/kubernetes/pull/97009), [@lingsamuel](https://github.com/lingsamuel)) [SIG API Machinery and Scalability]", - "author": "lingsamuel", - "author_url": "https://github.com/lingsamuel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97009", - "pr_number": 97009, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "scalability" - ], - "feature": true, - "duplicate": true - }, - "97011": { - "commit": "7b4fc68f523a6780855e8473bf05a0b19c7a4fd5", - "text": "Cluster Autoscaler version bump to v1.20.0", - "markdown": "Cluster Autoscaler version bump to v1.20.0 ([#97011](https://github.com/kubernetes/kubernetes/pull/97011), [@towca](https://github.com/towca))", - "author": "towca", - "author_url": "https://github.com/towca", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97011", - "pr_number": 97011, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "97013": { - "commit": "f8db0d91dedc879f7981478ba1917789acb6e2c5", - "text": "Fixed FibreChannel volume plugin corrupting filesystems on detach of multipath volumes.", - "markdown": "Fixed FibreChannel volume plugin corrupting filesystems on detach of multipath volumes. ([#97013](https://github.com/kubernetes/kubernetes/pull/97013), [@jsafrane](https://github.com/jsafrane)) [SIG Storage]", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97013", - "pr_number": 97013, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "97016": { - "commit": "29d79de528112275e527297460f2c08b5380658d", - "text": "kubeadm: Fixes a kubeadm upgrade bug that could cause a custom CoreDNS configuration to be replaced with the default.", - "markdown": "Kubeadm: Fixes a kubeadm upgrade bug that could cause a custom CoreDNS configuration to be replaced with the default. ([#97016](https://github.com/kubernetes/kubernetes/pull/97016), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle]", - "author": "rajansandeep", - "author_url": "https://github.com/rajansandeep", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97016", - "pr_number": 97016, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "97029": { - "commit": "74a7fc46c313320dfe08195fcf6e5592dbbb4e06", - "text": "cloud-controller-manager: routes controller should not depend on --allocate-node-cidrs", - "markdown": "Cloud-controller-manager: routes controller should not depend on --allocate-node-cidrs ([#97029](https://github.com/kubernetes/kubernetes/pull/97029), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider and Testing]", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97029", - "pr_number": 97029, - "areas": [ - "cloudprovider", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "testing" - ], - "duplicate": true - }, - "97033": { - "commit": "e11e9d4c6c3f522ed398748a11cc5dd1f8949c2b", - "text": "Bump github.com/Azure/go-autorest/autorest to v0.11.12", - "markdown": "Bump github.com/Azure/go-autorest/autorest to v0.11.12 ([#97033](https://github.com/kubernetes/kubernetes/pull/97033), [@patrickshan](https://github.com/patrickshan)) [SIG API Machinery, CLI, Cloud Provider and Cluster Lifecycle]", - "author": "patrickshan", - "author_url": "https://github.com/patrickshan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97033", - "pr_number": 97033, - "areas": [ - "apiserver", - "cloudprovider", - "dependency", - "kubectl", - "provider/azure" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle" - ], - "duplicate": true - }, - "97058": { - "commit": "b7c82bb83c1b3933b99fbc5fdcffa59fd6441617", - "text": "Adds support for endPort field in NetworkPolicy", - "markdown": "Adds support for endPort field in NetworkPolicy ([#97058](https://github.com/kubernetes/kubernetes/pull/97058), [@rikatz](https://github.com/rikatz)) [SIG Apps and Network]", - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97058", - "pr_number": 97058, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "network" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "97082": { - "commit": "0f7c2dc3145e5c27e735d93385f01540bed73ace", - "text": "fix: azure file latency issue for metadata-heavy workloads", - "markdown": "Fix: azure file latency issue for metadata-heavy workloads ([#97082](https://github.com/kubernetes/kubernetes/pull/97082), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97082", - "pr_number": 97082, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "duplicate": true - }, - "97083": { - "commit": "a3bf53a0a5031f69389a835a8e13e783090b35a7", - "text": "Enable SPDY pings to keep connections alive, so that `kubectl exec` and `kubectl portforward` won't be interrupted.", - "markdown": "Enable SPDY pings to keep connections alive, so that `kubectl exec` and `kubectl portforward` won't be interrupted. ([#97083](https://github.com/kubernetes/kubernetes/pull/97083), [@knight42](https://github.com/knight42)) [SIG API Machinery and CLI]", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97083", - "pr_number": 97083, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "cli" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "97086": { - "commit": "f6152d152140f42815765c7d9703b9817943c345", - "text": "Creating a PVC with DataSource should fail for non-CSI plugins.", - "markdown": "Creating a PVC with DataSource should fail for non-CSI plugins. ([#97086](https://github.com/kubernetes/kubernetes/pull/97086), [@xing-yang](https://github.com/xing-yang)) [SIG Apps and Storage]", - "author": "xing-yang", - "author_url": "https://github.com/xing-yang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97086", - "pr_number": 97086, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "storage" - ], - "duplicate": true - }, - "97087": { - "commit": "d067c2e95d7eaae1d0e9e5ea5ff916c5d25f59c4", - "text": "kubeadm: change the default image repository for CI images from 'gcr.io/kubernetes-ci-images' to 'gcr.io/k8s-staging-ci-images'", - "markdown": "Kubeadm: change the default image repository for CI images from 'gcr.io/kubernetes-ci-images' to 'gcr.io/k8s-staging-ci-images' ([#97087](https://github.com/kubernetes/kubernetes/pull/97087), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97087", - "pr_number": 97087, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "97096": { - "commit": "42d19f9641270b06a68f805de7c5fc9fc2097e4f", - "text": "Delete deprecated `service.beta.kubernetes.io/azure-load-balancer-mixed-protocols` mixed procotol annotation in favor of the MixedProtocolLBService feature", - "markdown": "Delete deprecated `service.beta.kubernetes.io/azure-load-balancer-mixed-protocols` mixed procotol annotation in favor of the MixedProtocolLBService feature ([#97096](https://github.com/kubernetes/kubernetes/pull/97096), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97096", - "pr_number": 97096, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cloud-provider" - ] - }, - "97099": { - "commit": "3cb61dea9bffece56234390e17348c9f5bb6a963", - "text": "Users might specify the `kubectl.kubernetes.io/default-exec-container` annotation in a Pod to preselect container for kubectl commands.", - "markdown": "Users might specify the `kubectl.kubernetes.io/default-exec-container` annotation in a Pod to preselect container for kubectl commands. ([#97099](https://github.com/kubernetes/kubernetes/pull/97099), [@pacoxu](https://github.com/pacoxu)) [SIG CLI]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97099", - "pr_number": 97099, - "areas": [ - "kubectl" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "duplicate_kind": true - }, - "97115": { - "commit": "05b6addffb87d6b6499e19a5f1f577e06452d7dd", - "text": "NONE", - "markdown": "NONE ([#97115](https://github.com/kubernetes/kubernetes/pull/97115), [@IanColdwater](https://github.com/IanColdwater)) [SIG Contributor Experience and Security]", - "author": "IanColdwater", - "author_url": "https://github.com/IanColdwater", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97115", - "pr_number": 97115, - "kinds": [ - "cleanup" - ], - "sigs": [ - "contributor-experience", - "security" - ], - "duplicate": true, - "do_not_publish": true - }, - "97141": { - "commit": "236470431f98b417e2d5e5fca48dc0f1bda127e5", - "text": "removing experimental windows container hyper-v support with Docker", - "markdown": "Removing experimental windows container hyper-v support with Docker ([#97141](https://github.com/kubernetes/kubernetes/pull/97141), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows]", - "author": "wawa0210", - "author_url": "https://github.com/wawa0210", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97141", - "pr_number": 97141, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "97148": { - "commit": "8cefa493a8b5e4d4f81b7048092cd3c5e1bacb49", - "text": "The GA TokenRequest and TokenRequestProjection feature gates have been removed and are unconditionally enabled. Remove explicit use of those feature gates in CLI invocations.", - "markdown": "The GA TokenRequest and TokenRequestProjection feature gates have been removed and are unconditionally enabled. Remove explicit use of those feature gates in CLI invocations. ([#97148](https://github.com/kubernetes/kubernetes/pull/97148), [@wawa0210](https://github.com/wawa0210)) [SIG Node]", - "author": "wawa0210", - "author_url": "https://github.com/wawa0210", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97148", - "pr_number": 97148, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "97167": { - "commit": "81e82b84531f8e99521a5a58945a3236f71acf78", - "text": "NONE", - "markdown": "NONE ([#97167](https://github.com/kubernetes/kubernetes/pull/97167), [@geegeea](https://github.com/geegeea)) [SIG Node]", - "author": "geegeea", - "author_url": "https://github.com/geegeea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97167", - "pr_number": 97167, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "97171": { - "commit": "979c644df2ad051015a8ccf6475e3476eda0cea0", - "text": "The PodSecurityPolicy API is deprecated in 1.21, and will no longer be served starting in 1.25.", - "markdown": "The PodSecurityPolicy API is deprecated in 1.21, and will no longer be served starting in 1.25. ([#97171](https://github.com/kubernetes/kubernetes/pull/97171), [@deads2k](https://github.com/deads2k)) [SIG Auth and CLI]", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97171", - "pr_number": 97171, - "areas": [ - "kubectl" - ], - "kinds": [ - "api-change", - "cleanup", - "deprecation" - ], - "sigs": [ - "auth", - "cli" - ], - "duplicate": true, - "duplicate_kind": true - }, - "97174": { - "commit": "73118aecca618fd07a5dbeaff6a69b6200a4c381", - "text": "Fixed a bug in kubelet that will saturate CPU utilization after containerd got restarted.", - "markdown": "Fixed a bug in kubelet that will saturate CPU utilization after containerd got restarted. ([#97174](https://github.com/kubernetes/kubernetes/pull/97174), [@hanlins](https://github.com/hanlins)) [SIG Node]", - "author": "hanlins", - "author_url": "https://github.com/hanlins", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97174", - "pr_number": 97174, - "areas": [ - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "97193": { - "commit": "b37e9a440ea30336733793c4b9f97b87ac64b097", - "text": "fix flaky failure on devicemanager TestDevicePluginReRegistrationProbeMode", - "markdown": "Fix flaky failure on devicemanager TestDevicePluginReRegistrationProbeMode ([#97193](https://github.com/kubernetes/kubernetes/pull/97193), [@JornShen](https://github.com/JornShen))", - "author": "JornShen", - "author_url": "https://github.com/JornShen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97193", - "pr_number": 97193, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "flake" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "97224": { - "commit": "81d8ccfa8e641f7295af6dbfe5bbb3c157a10b55", - "text": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#97224](https://github.com/kubernetes/kubernetes/pull/97224), [@tanjing2020](https://github.com/tanjing2020)) [SIG API Machinery]", - "author": "tanjing2020", - "author_url": "https://github.com/tanjing2020", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97224", - "pr_number": 97224, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "97244": { - "commit": "6fc51bc52865603c165787af08e22c859d7423d0", - "text": "kubeadm installs etcd v3.4.13 when creating cluster v1.19", - "markdown": "Kubeadm installs etcd v3.4.13 when creating cluster v1.19 ([#97244](https://github.com/kubernetes/kubernetes/pull/97244), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97244", - "pr_number": 97244, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "97266": { - "commit": "88a05df5ff1b311e8e92f64b4f3a2c7d4329d14e", - "text": "kubeadm: add support for certificate chain validation. When using kubeadm in external CA mode, this allows an intermediate CA to be used to sign the certificates. The intermediate CA certificate must be appended to each signed certificate for this to work correctly.", - "markdown": "Kubeadm: add support for certificate chain validation. When using kubeadm in external CA mode, this allows an intermediate CA to be used to sign the certificates. The intermediate CA certificate must be appended to each signed certificate for this to work correctly. ([#97266](https://github.com/kubernetes/kubernetes/pull/97266), [@robbiemcmichael](https://github.com/robbiemcmichael)) [SIG Cluster Lifecycle]", - "author": "robbiemcmichael", - "author_url": "https://github.com/robbiemcmichael", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97266", - "pr_number": 97266, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "97306": { - "commit": "c6789a175be8c1eea5758573fb9a75adc65f7752", - "text": "The deprecated feature gates `RotateKubeletClientCertificate`, `AttachVolumeLimit`, `VolumePVCDataSource` and `EvenPodsSpread` are now unconditionally enabled and can no longer be specified in component invocations.", - "markdown": "The deprecated feature gates `RotateKubeletClientCertificate`, `AttachVolumeLimit`, `VolumePVCDataSource` and `EvenPodsSpread` are now unconditionally enabled and can no longer be specified in component invocations. ([#97306](https://github.com/kubernetes/kubernetes/pull/97306), [@gavinfish](https://github.com/gavinfish)) [SIG Node, Scheduling and Storage]", - "author": "gavinfish", - "author_url": "https://github.com/gavinfish", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97306", - "pr_number": 97306, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "scheduling", - "storage" - ], - "duplicate": true - }, - "97322": { - "commit": "6fff9581c2770ea31bb14a394d7cb81c992af801", - "text": "The Kubernetes pause image manifest list now contains an image for Windows Server 20H2.", - "markdown": "The Kubernetes pause image manifest list now contains an image for Windows Server 20H2. ([#97322](https://github.com/kubernetes/kubernetes/pull/97322), [@claudiubelu](https://github.com/claudiubelu)) [SIG Windows]", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97322", - "pr_number": 97322, - "kinds": [ - "feature" - ], - "sigs": [ - "windows" - ], - "feature": true - }, - "97336": { - "commit": "ffe74b2cf14fbd6de99d65f707bc331c98eb83b1", - "text": "kube-proxy: remove deprecated --cleanup-ipvs flag of kube-proxy, and make --cleanup flag always to flush IPVS", - "markdown": "Kube-proxy: remove deprecated --cleanup-ipvs flag of kube-proxy, and make --cleanup flag always to flush IPVS ([#97336](https://github.com/kubernetes/kubernetes/pull/97336), [@maaoBit](https://github.com/maaoBit)) [SIG Network]", - "author": "maaoBit", - "author_url": "https://github.com/maaoBit", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97336", - "pr_number": 97336, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug", - "deprecation" - ], - "sigs": [ - "network" - ] - }, - "97366": { - "commit": "b749a3a421652644bb170b57375ef0cf46c0fa3f", - "text": "Fix nil VMSS name when setting service to auto mode", - "markdown": "Fix nil VMSS name when setting service to auto mode ([#97366](https://github.com/kubernetes/kubernetes/pull/97366), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97366", - "pr_number": 97366, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "97372": { - "commit": "4a595bd3735d4f28a6e1f4bdb242e000e2f83cd9", - "text": "kubeadm: fix a bug where \"kubeadm join\" would not properly handle missing names for existing etcd members.", - "markdown": "Kubeadm: fix a bug where \"kubeadm join\" would not properly handle missing names for existing etcd members. ([#97372](https://github.com/kubernetes/kubernetes/pull/97372), [@ihgann](https://github.com/ihgann)) [SIG Cluster Lifecycle]", - "author": "ihgann", - "author_url": "https://github.com/ihgann", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97372", - "pr_number": 97372, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "97374": { - "commit": "b39494ce35f908885e81277c7ad05f286caf588a", - "text": "NONE", - "markdown": "NONE ([#97374](https://github.com/kubernetes/kubernetes/pull/97374), [@geegeea](https://github.com/geegeea)) [SIG Node, Scheduling and Testing]", - "author": "geegeea", - "author_url": "https://github.com/geegeea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97374", - "pr_number": 97374, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "97378": { - "commit": "c2ad99881116ed5a2be0ade4ce87df05f2594b45", - "text": "kubelet: Fixed the bug of getting the number of cpu when the number of cpu logical processors is more than 64 in windows", - "markdown": "Kubelet: Fixed the bug of getting the number of cpu when the number of cpu logical processors is more than 64 in windows ([#97378](https://github.com/kubernetes/kubernetes/pull/97378), [@hwdef](https://github.com/hwdef)) [SIG Node and Windows]", - "author": "hwdef", - "author_url": "https://github.com/hwdef", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97378", - "pr_number": 97378, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true - }, - "97395": { - "commit": "24f13032b3e3d4c7c5dfbe86c40be5d038e58614", - "text": "New admission controller \"DenyServiceExternalIPs\" is available. Clusters which do not *need* the Service \"externalIPs\" feature should enable this controller and be more secure.", - "markdown": "New admission controller \"DenyServiceExternalIPs\" is available. Clusters which do not *need* the Service \"externalIPs\" feature should enable this controller and be more secure. ([#97395](https://github.com/kubernetes/kubernetes/pull/97395), [@thockin](https://github.com/thockin))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2176", - "type": "KEP" - }, - { - "description": "[CVE]", - "url": "https://github.com/kubernetes/kubernetes/issues/97110", - "type": "external" - } - ], - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97395", - "pr_number": 97395, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "97403": { - "commit": "32093b0447e86c6808c78e597ec2a3ceac054c57", - "text": "kubeadm: fix a bug in the host memory detection code on 32bit Linux platforms", - "markdown": "Kubeadm: fix a bug in the host memory detection code on 32bit Linux platforms ([#97403](https://github.com/kubernetes/kubernetes/pull/97403), [@abelbarrera15](https://github.com/abelbarrera15)) [SIG Cluster Lifecycle]", - "author": "abelbarrera15", - "author_url": "https://github.com/abelbarrera15", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97403", - "pr_number": 97403, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "97407": { - "commit": "73fbd3da09a1704ce9133594ec0b4a59db7f6cfd", - "text": "Clean ReplicaSet by revision instead of creation timestamp in deployment controller", - "markdown": "Clean ReplicaSet by revision instead of creation timestamp in deployment controller ([#97407](https://github.com/kubernetes/kubernetes/pull/97407), [@waynepeking348](https://github.com/waynepeking348)) [SIG Apps]", - "author": "waynepeking348", - "author_url": "https://github.com/waynepeking348", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97407", - "pr_number": 97407, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "97408": { - "commit": "af8594ff998c17a59ce74ee2be8e02b0ea153df4", - "text": "`kubectl wait` ensures that observedGeneration \u003e= generation to prevent stale state reporting. An example scenario can be found on CRD updates.", - "markdown": "`kubectl wait` ensures that observedGeneration \u003e= generation to prevent stale state reporting. An example scenario can be found on CRD updates. ([#97408](https://github.com/kubernetes/kubernetes/pull/97408), [@KnicKnic](https://github.com/KnicKnic))", - "author": "KnicKnic", - "author_url": "https://github.com/KnicKnic", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97408", - "pr_number": 97408, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "97417": { - "commit": "2490a797a28ba31c60d3f4c3deec8d2920a749d6", - "text": "fix Azure file share not deleted issue when the namespace is deleted", - "markdown": "Fix Azure file share not deleted issue when the namespace is deleted ([#97417](https://github.com/kubernetes/kubernetes/pull/97417), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97417", - "pr_number": 97417, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "duplicate": true, - "do_not_publish": true - }, - "97427": { - "commit": "4dc3a42712681186ed94d0a11cbdca573315809c", - "text": "Fixed bug in CPUManager with race on container map access", - "markdown": "Fixed bug in CPUManager with race on container map access ([#97427](https://github.com/kubernetes/kubernetes/pull/97427), [@klueska](https://github.com/klueska)) [SIG Node]", - "author": "klueska", - "author_url": "https://github.com/klueska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97427", - "pr_number": 97427, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "97431": { - "commit": "f48972e671e5f338d0d6adfe6055aba4534569ad", - "text": "AWS cloud provider supports auto-discovering subnets without any `kubernetes.io/cluster/\u003cclusterName\u003e` tags. It also supports additional service annotation `service.beta.kubernetes.io/aws-load-balancer-subnets` to manually configure the subnets.", - "markdown": "AWS cloud provider supports auto-discovering subnets without any `kubernetes.io/cluster/\u003cclusterName\u003e` tags. It also supports additional service annotation `service.beta.kubernetes.io/aws-load-balancer-subnets` to manually configure the subnets. ([#97431](https://github.com/kubernetes/kubernetes/pull/97431), [@kishorj](https://github.com/kishorj))", - "author": "kishorj", - "author_url": "https://github.com/kishorj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97431", - "pr_number": 97431, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true, - "duplicate_kind": true - }, - "97451": { - "commit": "f9c7c59e25d2ae82bf7b3d72ec65e41c712f24bd", - "text": "fix counting error in service/nodeport/loadbalancer quota check", - "markdown": "Fix counting error in service/nodeport/loadbalancer quota check ([#97451](https://github.com/kubernetes/kubernetes/pull/97451), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery, Network and Testing]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97451", - "pr_number": 97451, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "network", - "testing" - ], - "duplicate": true - }, - "97466": { - "commit": "3209dabb0d99125ffc138ee82dbce3dfbe81e332", - "text": "NONE", - "markdown": "NONE ([#97466](https://github.com/kubernetes/kubernetes/pull/97466), [@geegeea](https://github.com/geegeea)) [SIG API Machinery]", - "author": "geegeea", - "author_url": "https://github.com/geegeea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97466", - "pr_number": 97466, - "kinds": [ - "api-change", - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "97480": { - "commit": "e054aa268e86808c381226b2eded83a3f84834f8", - "text": "Add metric etcd_lease_object_counts for kube-apiserver to observe max objects attached to a single etcd lease.", - "markdown": "Add metric etcd_lease_object_counts for kube-apiserver to observe max objects attached to a single etcd lease. ([#97480](https://github.com/kubernetes/kubernetes/pull/97480), [@lingsamuel](https://github.com/lingsamuel)) [SIG API Machinery, Instrumentation and Scalability]", - "author": "lingsamuel", - "author_url": "https://github.com/lingsamuel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97480", - "pr_number": 97480, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "scalability" - ], - "feature": true, - "duplicate": true - }, - "97491": { - "commit": "ecdbcd8963fb9df36589adee80d2b4b49855658a", - "text": "Process start time on Windows now uses current process information", - "markdown": "Process start time on Windows now uses current process information ([#97491](https://github.com/kubernetes/kubernetes/pull/97491), [@jsturtevant](https://github.com/jsturtevant)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Windows]", - "author": "jsturtevant", - "author_url": "https://github.com/jsturtevant", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97491", - "pr_number": 97491, - "areas": [ - "apiserver", - "cloudprovider", - "dependency", - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "windows" - ], - "duplicate": true - }, - "97492": { - "commit": "f02435ddda865bbca53c582c06637ad4e5366e17", - "text": "Fixed no effect namespace when exposing deployment with --dry-run=client.", - "markdown": "Fixed no effect namespace when exposing deployment with --dry-run=client. ([#97492](https://github.com/kubernetes/kubernetes/pull/97492), [@masap](https://github.com/masap)) [SIG CLI]", - "author": "masap", - "author_url": "https://github.com/masap", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97492", - "pr_number": 97492, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "97543": { - "commit": "0300aa712e378373261effcfb4a7895e5356c43e", - "text": "`ServiceNodeExclusion`, `NodeDisruptionExclusion` and `LegacyNodeRoleBehavior` features have been promoted to GA. `ServiceNodeExclusion` and `NodeDisruptionExclusion` are now unconditionally enabled, while `LegacyNodeRoleBehavior` is unconditionally disabled. To prevent control plane nodes from being added to load balancers automatically, upgrade users need to add \"node.kubernetes.io/exclude-from-external-load-balancers\" label to control plane nodes.", - "markdown": "`ServiceNodeExclusion`, `NodeDisruptionExclusion` and `LegacyNodeRoleBehavior` features have been promoted to GA. `ServiceNodeExclusion` and `NodeDisruptionExclusion` are now unconditionally enabled, while `LegacyNodeRoleBehavior` is unconditionally disabled. To prevent control plane nodes from being added to load balancers automatically, upgrade users need to add \"node.kubernetes.io/exclude-from-external-load-balancers\" label to control plane nodes. ([#97543](https://github.com/kubernetes/kubernetes/pull/97543), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-architecture/1143-node-role-labels", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97543", - "pr_number": 97543, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "cloud-provider", - "network" - ], - "duplicate": true, - "action_required": true - }, - "97583": { - "commit": "deb01c1a7a7aab62ad64abf0ff3ae76a9e91abb2", - "text": "kubeadm: graduate the command `kubeadm alpha kubeconfig user` to `kubeadm kubeconfig user`. The `kubeadm alpha kubeconfig user` command is deprecated now.", - "markdown": "Kubeadm: graduate the command `kubeadm alpha kubeconfig user` to `kubeadm kubeconfig user`. The `kubeadm alpha kubeconfig user` command is deprecated now. ([#97583](https://github.com/kubernetes/kubernetes/pull/97583), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle]", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97583", - "pr_number": 97583, - "areas": [ - "kubeadm" - ], - "kinds": [ - "deprecation", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "97615": { - "commit": "c5cc25d1cb075f84756db9bffecd3fafe12c5fab", - "text": "Promote Immutable Secrets/ConfigMaps feature to Stable. This allows to set `immutable` field in Secret or ConfigMap object to mark their contents as immutable.", - "markdown": "Promote Immutable Secrets/ConfigMaps feature to Stable. This allows to set `immutable` field in Secret or ConfigMap object to mark their contents as immutable. ([#97615](https://github.com/kubernetes/kubernetes/pull/97615), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps, Architecture, Node and Testing]", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97615", - "pr_number": 97615, - "areas": [ - "conformance", - "kubelet", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "architecture", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "97618": { - "commit": "9c894e23efbeaa4ebf1b50763456849427c8e693", - "text": "Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally.", - "markdown": "Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97618](https://github.com/kubernetes/kubernetes/pull/97618), [@jherrera123](https://github.com/jherrera123)) [SIG Release and Testing]", - "author": "jherrera123", - "author_url": "https://github.com/jherrera123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97618", - "pr_number": 97618, - "kinds": [ - "cleanup" - ], - "sigs": [ - "release", - "testing" - ], - "duplicate": true - }, - "97621": { - "commit": "97a3e9e7e831a989f38c5830533b6e1b08a52a54", - "text": "Updated k8s.gcr.io/ingress-gce-404-server-with-metrics-amd64 to a version that serves /metrics endpoint on a non-default port.", - "markdown": "Updated k8s.gcr.io/ingress-gce-404-server-with-metrics-amd64 to a version that serves /metrics endpoint on a non-default port. ([#97621](https://github.com/kubernetes/kubernetes/pull/97621), [@vbannai](https://github.com/vbannai)) [SIG Cloud Provider]", - "author": "vbannai", - "author_url": "https://github.com/vbannai", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97621", - "pr_number": 97621, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "97627": { - "commit": "8725c3bf12cfd3697464136201216fa05dc662d2", - "text": "kubeadm: deprecated command \"alpha selfhosting pivot\" is now removed.", - "markdown": "Kubeadm: deprecated command \"alpha selfhosting pivot\" is now removed. ([#97627](https://github.com/kubernetes/kubernetes/pull/97627), [@knight42](https://github.com/knight42))", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97627", - "pr_number": 97627, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "97635": { - "commit": "ac0b0378df23b6a68452b8577fd6fed265306615", - "text": "Use network.Interface.VirtualMachine.ID to get the binded VM\nSkip standalone VM when reconciling LoadBalancer", - "markdown": "Use network.Interface.VirtualMachine.ID to get the binded VM\n Skip standalone VM when reconciling LoadBalancer ([#97635](https://github.com/kubernetes/kubernetes/pull/97635), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97635", - "pr_number": 97635, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "97686": { - "commit": "bce5d7a0158444080ed95aae6a5684ce4dd9444b", - "text": "Kubectl logs: `--ignore-errors` is now honored by all containers, maintaining consistency with parallelConsumeRequest behavior.", - "markdown": "Kubectl logs: `--ignore-errors` is now honored by all containers, maintaining consistency with parallelConsumeRequest behavior. ([#97686](https://github.com/kubernetes/kubernetes/pull/97686), [@wzshiming](https://github.com/wzshiming))", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97686", - "pr_number": 97686, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "97693": { - "commit": "d1db90ba579e9c01194f92ba6daff852e3b4c6e7", - "text": "kube-apiserver: The OIDC authenticator no longer waits 10 seconds before attempting to fetch the metadata required to verify tokens.", - "markdown": "Kube-apiserver: The OIDC authenticator no longer waits 10 seconds before attempting to fetch the metadata required to verify tokens. ([#97693](https://github.com/kubernetes/kubernetes/pull/97693), [@enj](https://github.com/enj)) [SIG API Machinery and Auth]", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97693", - "pr_number": 97693, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true - }, - "97706": { - "commit": "17bb2fc050ec786b60db7d8d6d4d3ac8eeac205b", - "text": "kubeadm: the \"kubeadm alpha certs\" command is removed now, please use \"kubeadm certs\" instead.", - "markdown": "Kubeadm: the \"kubeadm alpha certs\" command is removed now, please use \"kubeadm certs\" instead. ([#97706](https://github.com/kubernetes/kubernetes/pull/97706), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle]", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97706", - "pr_number": 97706, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "97740": { - "commit": "e9353e9a8b2230d81bf2d2b5cc58a1ccb8608229", - "text": "GCE Internal LoadBalancer sync loop will now release the ILB IP address upon sync failure. An error in ILB forwarding rule creation will no longer leak IP addresses.", - "markdown": "GCE Internal LoadBalancer sync loop will now release the ILB IP address upon sync failure. An error in ILB forwarding rule creation will no longer leak IP addresses. ([#97740](https://github.com/kubernetes/kubernetes/pull/97740), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider and Network]", - "author": "prameshj", - "author_url": "https://github.com/prameshj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97740", - "pr_number": 97740, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "network" - ], - "duplicate": true - }, - "97743": { - "commit": "2e39df89ac22d5dde2d6d04747cbee6865569f14", - "text": "Add support to generate client-side binaries for new darwin/arm64 platform", - "markdown": "Add support to generate client-side binaries for new darwin/arm64 platform ([#97743](https://github.com/kubernetes/kubernetes/pull/97743), [@dims](https://github.com/dims)) [SIG Release and Testing]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97743", - "pr_number": 97743, - "areas": [ - "release-eng", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "97754": { - "commit": "db183c7e80815558f0bdd8166f24e4af555166a1", - "text": "kubectl-convert: Fix `no kind \"Ingress\" is registered for version` error", - "markdown": "Kubectl-convert: Fix `no kind \"Ingress\" is registered for version` error ([#97754](https://github.com/kubernetes/kubernetes/pull/97754), [@wzshiming](https://github.com/wzshiming))", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97754", - "pr_number": 97754, - "areas": [ - "kubectl", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "97823": { - "commit": "34f138ff8359d3062920079d8d4761816d7681f0", - "text": "Remove CSI topology from migrated in-tree gcepd volume.", - "markdown": "Remove CSI topology from migrated in-tree gcepd volume. ([#97823](https://github.com/kubernetes/kubernetes/pull/97823), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Cloud Provider and Storage]", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97823", - "pr_number": 97823, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "duplicate": true, - "duplicate_kind": true - }, - "97824": { - "commit": "c1b3797f4b1f8f5f5d6613c2f6412c69a147d0ec", - "text": "Fixed a bug that on k8s nodes, when the policy of INPUT chain in filter table is not ACCEPT, healthcheck nodeport would not work.\nAdded iptables rules to allow healthcheck nodeport traffic.", - "markdown": "Fixed a bug that on k8s nodes, when the policy of INPUT chain in filter table is not ACCEPT, healthcheck nodeport would not work.\n Added iptables rules to allow healthcheck nodeport traffic. ([#97824](https://github.com/kubernetes/kubernetes/pull/97824), [@hanlins](https://github.com/hanlins)) [SIG Network]", - "author": "hanlins", - "author_url": "https://github.com/hanlins", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97824", - "pr_number": 97824, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "97857": { - "commit": "e9dba7a627520f89778b367fc0d955776f220638", - "text": "Using exec auth plugins with kubectl no longer results in warnings about constructing many client instances from the same exec auth config.", - "markdown": "Using exec auth plugins with kubectl no longer results in warnings about constructing many client instances from the same exec auth config. ([#97857](https://github.com/kubernetes/kubernetes/pull/97857), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Auth]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97857", - "pr_number": 97857, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true - }, - "97860": { - "commit": "d9a26fb69bcb194c1b56a93eca0735a8fdf3bd63", - "text": "Performance regression #97685 has been fixed.", - "markdown": "Performance regression #97685 has been fixed. ([#97860](https://github.com/kubernetes/kubernetes/pull/97860), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97860", - "pr_number": 97860, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "97877": { - "commit": "194e5193c45c8c3782e89c40219edec844796cc5", - "text": "Fix Azure file migration e2e test failure when CSIMigration is turned on.", - "markdown": "Fix Azure file migration e2e test failure when CSIMigration is turned on. ([#97877](https://github.com/kubernetes/kubernetes/pull/97877), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97877", - "pr_number": 97877, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "cloud-provider", - "storage" - ], - "duplicate": true - }, - "97888": { - "commit": "d819199065b078df11cf933ac282f3ebbf6f32bb", - "text": "Fixes a bug of identifying the correct containerd process.", - "markdown": "Fixes a bug of identifying the correct containerd process. ([#97888](https://github.com/kubernetes/kubernetes/pull/97888), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97888", - "pr_number": 97888, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "97919": { - "commit": "bd947dfc652f58900b7e29e60e28af4c6fb7eb95", - "text": "kubeadm: fix a bug where \"kubeadm upgrade\" commands can fail if CoreDNS v1.8.0 is installed.", - "markdown": "Kubeadm: fix a bug where \"kubeadm upgrade\" commands can fail if CoreDNS v1.8.0 is installed. ([#97919](https://github.com/kubernetes/kubernetes/pull/97919), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97919", - "pr_number": 97919, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "97922": { - "commit": "0b75828dfc90dff01996e821f10e97a38f7f2230", - "text": "Fix CVE-2020-8555 for Gluster client connections.", - "markdown": "Fix CVE-2020-8555 for Gluster client connections. ([#97922](https://github.com/kubernetes/kubernetes/pull/97922), [@liggitt](https://github.com/liggitt)) [SIG Storage]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97922", - "pr_number": 97922, - "areas": [ - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "97934": { - "commit": "de4d771d3b8741cc4d5a470ea44e60951fa58966", - "text": "Mitigate CVE-2020-8555 for kube-up using GCE by preventing local loopback folume hosts.", - "markdown": "Mitigate CVE-2020-8555 for kube-up using GCE by preventing local loopback folume hosts. ([#97934](https://github.com/kubernetes/kubernetes/pull/97934), [@mattcary](https://github.com/mattcary)) [SIG Cloud Provider and Storage]", - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97934", - "pr_number": 97934, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "duplicate": true - }, - "97935": { - "commit": "a399b3e92fbfeb0cd8a549b0f15ab7993ca0ea28", - "text": "Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally.", - "markdown": "Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97935](https://github.com/kubernetes/kubernetes/pull/97935), [@adeniyistephen](https://github.com/adeniyistephen)) [SIG Release and Testing]", - "author": "adeniyistephen", - "author_url": "https://github.com/adeniyistephen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97935", - "pr_number": 97935, - "kinds": [ - "documentation", - "deprecation" - ], - "sigs": [ - "release", - "testing" - ], - "duplicate": true - }, - "97963": { - "commit": "2a26f276a8c8c13b2f45927ee5ece2063950dd1d", - "text": "Update pause container to run as pseudo user and group `65535:65535`. This implies the release of version 3.5 of the container images.", - "markdown": "Update pause container to run as pseudo user and group `65535:65535`. This implies the release of version 3.5 of the container images. ([#97963](https://github.com/kubernetes/kubernetes/pull/97963), [@saschagrunert](https://github.com/saschagrunert)) [SIG CLI, Cloud Provider, Cluster Lifecycle, Node, Release, Security and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97963", - "pr_number": 97963, - "areas": [ - "kubeadm", - "kubectl", - "kubelet", - "provider/gcp", - "release-eng", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "cloud-provider", - "cluster-lifecycle", - "node", - "release", - "security", - "testing" - ], - "feature": true, - "duplicate": true - }, - "97967": { - "commit": "5e7d62ecfc80f26b9e9c4d73ee599f304bc31615", - "text": "Update cri-tools to [v1.20.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.20.0)", - "markdown": "Update cri-tools to [v1.20.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.20.0) ([#97967](https://github.com/kubernetes/kubernetes/pull/97967), [@rajibmitra](https://github.com/rajibmitra)) [SIG Cloud Provider]", - "author": "rajibmitra", - "author_url": "https://github.com/rajibmitra", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97967", - "pr_number": 97967, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ] - }, - "97979": { - "commit": "9f451c03e9cf93341d91c5c1014c8e49395e2438", - "text": "When a CNI plugin returns dual-stack pod IPs, kubelet will now try to respect the\n\"primary IP family\" of the cluster by picking a primary pod IP of the same family\nas the (primary) node IP, rather than assuming that the CNI plugin returned the IPs\nin the order the administrator wanted (since some CNI plugins don't allow\nconfiguring this).", - "markdown": "When a CNI plugin returns dual-stack pod IPs, kubelet will now try to respect the\n \"primary IP family\" of the cluster by picking a primary pod IP of the same family\n as the (primary) node IP, rather than assuming that the CNI plugin returned the IPs\n in the order the administrator wanted (since some CNI plugins don't allow\n configuring this). ([#97979](https://github.com/kubernetes/kubernetes/pull/97979), [@danwinship](https://github.com/danwinship)) [SIG Network and Node]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97979", - "pr_number": 97979, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true - }, - "97980": { - "commit": "e0b2787ee1e066287d2d19c3841f18f07669b47d", - "text": "Fix the regression with the slow pods termination. Before this fix pods may take an additional time to terminate - up to one minute. Reversing the change that ensured that CNI resources cleaned up when the pod is removed on API server.", - "markdown": "Fix the regression with the slow pods termination. Before this fix pods may take an additional time to terminate - up to one minute. Reversing the change that ensured that CNI resources cleaned up when the pod is removed on API server. ([#97980](https://github.com/kubernetes/kubernetes/pull/97980), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node]", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97980", - "pr_number": 97980, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "98005": { - "commit": "9ec1e23e41a84fdda4b88678d20c489cf381fa4f", - "text": "Sync node status during kubelet node shutdown.\nAdds an pod admission handler that rejects new pods when the node is in progress of shutting down.", - "markdown": "Sync node status during kubelet node shutdown.\n Adds an pod admission handler that rejects new pods when the node is in progress of shutting down. ([#98005](https://github.com/kubernetes/kubernetes/pull/98005), [@wzshiming](https://github.com/wzshiming)) [SIG Node]", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98005", - "pr_number": 98005, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "98021": { - "commit": "aa5cbcda424b4880ddc4ac0a7f4b37e366261c6e", - "text": "The deprecated feature gates `CSIDriverRegistry`, `BlockVolume` and `CSIBlockVolume` are now unconditionally enabled and can no longer be specified in component invocations.", - "markdown": "The deprecated feature gates `CSIDriverRegistry`, `BlockVolume` and `CSIBlockVolume` are now unconditionally enabled and can no longer be specified in component invocations. ([#98021](https://github.com/kubernetes/kubernetes/pull/98021), [@gavinfish](https://github.com/gavinfish)) [SIG Storage]", - "author": "gavinfish", - "author_url": "https://github.com/gavinfish", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98021", - "pr_number": 98021, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "98033": { - "commit": "54d48d2b806a298528bb22e6263112bf829222b8", - "text": "The feature gate `RootCAConfigMap` graduated to GA in v1.21 and therefore will be unconditionally enabled. This flag will be removed in v1.22 release.", - "markdown": "The feature gate `RootCAConfigMap` graduated to GA in v1.21 and therefore will be unconditionally enabled. This flag will be removed in v1.22 release. ([#98033](https://github.com/kubernetes/kubernetes/pull/98033), [@zshihang](https://github.com/zshihang))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98033", - "pr_number": 98033, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true - }, - "98042": { - "commit": "a399eb6737cd6bc38e515bd1f4b4f9368970b227", - "text": "Fixed a bug that the kubelet cannot start on BtrfS.", - "markdown": "Fixed a bug that the kubelet cannot start on BtrfS. ([#98042](https://github.com/kubernetes/kubernetes/pull/98042), [@gjkim42](https://github.com/gjkim42)) [SIG Node]", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98042", - "pr_number": 98042, - "areas": [ - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "98068": { - "commit": "a9e2e18cc6737072fef2bce838bcf508a8e708f3", - "text": "Fixed an issue with garbage collection failing to clean up namespaced children of an object also referenced incorrectly by cluster-scoped children", - "markdown": "Fixed an issue with garbage collection failing to clean up namespaced children of an object also referenced incorrectly by cluster-scoped children ([#98068](https://github.com/kubernetes/kubernetes/pull/98068), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98068", - "pr_number": 98068, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true - }, - "98074": { - "commit": "4cf8823fbaedaeeb8a5c094b574d489b5ca5f6fe", - "text": "The kube-apiserver now resets `managedFields` that got corrupted by a mutating admission controller.", - "markdown": "The kube-apiserver now resets `managedFields` that got corrupted by a mutating admission controller. ([#98074](https://github.com/kubernetes/kubernetes/pull/98074), [@kwiesmueller](https://github.com/kwiesmueller))", - "author": "kwiesmueller", - "author_url": "https://github.com/kwiesmueller", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98074", - "pr_number": 98074, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "98088": { - "commit": "82ebcd171909c4cd6007007fc07b025d0950153d", - "text": "kubelet: Fix repeatedly acquiring the inhibit lock", - "markdown": "Kubelet: Fix repeatedly acquiring the inhibit lock ([#98088](https://github.com/kubernetes/kubernetes/pull/98088), [@wzshiming](https://github.com/wzshiming)) [SIG Node]", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98088", - "pr_number": 98088, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "98096": { - "commit": "fa3be1bcd2e3b9cf02dede40ddff5c2bc800bf27", - "text": "Scores from InterPodAffinity have stronger differentiation.", - "markdown": "Scores from InterPodAffinity have stronger differentiation. ([#98096](https://github.com/kubernetes/kubernetes/pull/98096), [@leileiwan](https://github.com/leileiwan)) [SIG Scheduling]", - "author": "leileiwan", - "author_url": "https://github.com/leileiwan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98096", - "pr_number": 98096, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "98103": { - "commit": "09f4baed35865d410febb3220811ca5c2fe1cf42", - "text": "Static pods will be deleted gracefully.", - "markdown": "Static pods will be deleted gracefully. ([#98103](https://github.com/kubernetes/kubernetes/pull/98103), [@gjkim42](https://github.com/gjkim42)) [SIG Node]", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98103", - "pr_number": 98103, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "98111": { - "commit": "055e8edfaea25bb104d6c444b0a21ca4e268b479", - "text": "kubectl: The deprecated `kubectl alpha debug` command is removed. Use `kubectl debug` instead.", - "markdown": "Kubectl: The deprecated `kubectl alpha debug` command is removed. Use `kubectl debug` instead. ([#98111](https://github.com/kubernetes/kubernetes/pull/98111), [@pandaamanda](https://github.com/pandaamanda)) [SIG CLI]", - "author": "pandaamanda", - "author_url": "https://github.com/pandaamanda", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98111", - "pr_number": 98111, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cli" - ] - }, - "98116": { - "commit": "7eb99191a1803c87438e34e2f43a8d56bfb780cb", - "text": "The `EndpointSlice` mirroring controller mirrors endpoints annotations and labels to the generated endpoint slices, it also ensures that updates on any of these fields are mirrored. \nThe well-known annotation `endpoints.kubernetes.io/last-change-trigger-time` is skipped and not mirrored.", - "markdown": "The `EndpointSlice` mirroring controller mirrors endpoints annotations and labels to the generated endpoint slices, it also ensures that updates on any of these fields are mirrored. \n The well-known annotation `endpoints.kubernetes.io/last-change-trigger-time` is skipped and not mirrored. ([#98116](https://github.com/kubernetes/kubernetes/pull/98116), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98116", - "pr_number": 98116, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "apps", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "98127": { - "commit": "7a4914014521369be9e5162b869476fdfc7ea2f9", - "text": "PodDisruptionBudget API objects can now contain conditions in status.", - "markdown": "PodDisruptionBudget API objects can now contain conditions in status. ([#98127](https://github.com/kubernetes/kubernetes/pull/98127), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation]", - "author": "mortent", - "author_url": "https://github.com/mortent", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98127", - "pr_number": 98127, - "areas": [ - "apiserver", - "cloudprovider", - "dependency", - "kubectl" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "98133": { - "commit": "0a848a5d2c7ab9390a4fc10e4fd3c1d5350e63a8", - "text": "Cleanup subnet in frontend IP configs to prevent huge subnet request bodies in some scenarios.", - "markdown": "Cleanup subnet in frontend IP configs to prevent huge subnet request bodies in some scenarios. ([#98133](https://github.com/kubernetes/kubernetes/pull/98133), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98133", - "pr_number": 98133, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "98158": { - "commit": "ab21bdba898586e0e775637455f9837031ea89c2", - "text": "KUBECTL_EXTERNAL_DIFF now accepts equal sign for additional parameters.", - "markdown": "KUBECTL_EXTERNAL_DIFF now accepts equal sign for additional parameters. ([#98158](https://github.com/kubernetes/kubernetes/pull/98158), [@dougsland](https://github.com/dougsland)) [SIG CLI]", - "author": "dougsland", - "author_url": "https://github.com/dougsland", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98158", - "pr_number": 98158, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "98169": { - "commit": "a410c14020017c7bedeb4c501758088155c66fb7", - "text": "Readjust `kubelet_containers_per_pod_count` buckets to only show metrics greater than 1.", - "markdown": "Readjust `kubelet_containers_per_pod_count` buckets to only show metrics greater than 1. ([#98169](https://github.com/kubernetes/kubernetes/pull/98169), [@wawa0210](https://github.com/wawa0210))", - "author": "wawa0210", - "author_url": "https://github.com/wawa0210", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98169", - "pr_number": 98169, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "instrumentation", - "node" - ], - "duplicate": true - }, - "98200": { - "commit": "737858cd7c3924e546a8746a97702096e3a5b96d", - "text": "kubelet: Fix kubelet from panic after getting the wrong signal", - "markdown": "Kubelet: Fix kubelet from panic after getting the wrong signal ([#98200](https://github.com/kubernetes/kubernetes/pull/98200), [@wzshiming](https://github.com/wzshiming)) [SIG Node]", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98200", - "pr_number": 98200, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "98203": { - "commit": "e26570a96ecf3a908357b7fd3d99f803aece9ad2", - "text": "Aborting the drain command in a list of nodes will be deprecated. The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain. For now, users can try such experience by enabling --ignore-errors flag.", - "markdown": "Aborting the drain command in a list of nodes will be deprecated. The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain. For now, users can try such experience by enabling --ignore-errors flag. ([#98203](https://github.com/kubernetes/kubernetes/pull/98203), [@yuzhiquan](https://github.com/yuzhiquan))", - "author": "yuzhiquan", - "author_url": "https://github.com/yuzhiquan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98203", - "pr_number": 98203, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature", - "deprecation" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "98205": { - "commit": "2b7c61b1bb1889770f8d8cbdf0119617c5228f6e", - "text": "The pause image upgraded to `v3.4.1` in kubelet and kubeadm for both Linux and Windows.", - "markdown": "The pause image upgraded to `v3.4.1` in kubelet and kubeadm for both Linux and Windows. ([#98205](https://github.com/kubernetes/kubernetes/pull/98205), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98205", - "pr_number": 98205, - "areas": [ - "kubeadm", - "kubectl", - "kubelet", - "provider/gcp", - "test" - ], - "kinds": [ - "documentation", - "feature" - ], - "sigs": [ - "cli", - "cloud-provider", - "cluster-lifecycle", - "node", - "testing", - "windows" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "98243": { - "commit": "c04058418f7bb7df226d71d516ed4db918969288", - "text": "Remove alpha `CSIMigrationXXComplete` flag and add alpha `InTreePluginXXUnregister` flag. Deprecate `CSIMigrationvSphereComplete` flag and it will be removed in v1.22.", - "markdown": "Remove alpha `CSIMigrationXXComplete` flag and add alpha `InTreePluginXXUnregister` flag. Deprecate `CSIMigrationvSphereComplete` flag and it will be removed in v1.22. ([#98243](https://github.com/kubernetes/kubernetes/pull/98243), [@Jiawei0227](https://github.com/Jiawei0227))", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98243", - "pr_number": 98243, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature", - "deprecation" - ], - "sigs": [ - "node", - "storage" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "98250": { - "commit": "d2d9b0e1123b962fc80957fb588e009272180ebe", - "text": "kubectl version changed to write a warning message to stderr if the client and server version difference exceeds the supported version skew of +/-1 minor version.", - "markdown": "Kubectl version changed to write a warning message to stderr if the client and server version difference exceeds the supported version skew of +/-1 minor version. ([#98250](https://github.com/kubernetes/kubernetes/pull/98250), [@brianpursley](https://github.com/brianpursley)) [SIG CLI]", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98250", - "pr_number": 98250, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "98257": { - "commit": "f81220975e5736613ba7bcc8956fc6632a59a6ba", - "text": "Limits lease to have 1000 maximum attached objects.", - "markdown": "Limits lease to have 1000 maximum attached objects. ([#98257](https://github.com/kubernetes/kubernetes/pull/98257), [@lingsamuel](https://github.com/lingsamuel))", - "author": "lingsamuel", - "author_url": "https://github.com/lingsamuel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98257", - "pr_number": 98257, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "98261": { - "commit": "1a76d3ddfda509138fd0cee32549c8d070e89dbd", - "text": "Fix NPE in ephemeral storage eviction", - "markdown": "Fix NPE in ephemeral storage eviction ([#98261](https://github.com/kubernetes/kubernetes/pull/98261), [@wzshiming](https://github.com/wzshiming)) [SIG Node]", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98261", - "pr_number": 98261, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "98269": { - "commit": "0d8aae99f9debb4dfa0e56a2257f4ec74b6b641e", - "text": "kubeadm: apply the \"node.kubernetes.io/exclude-from-external-load-balancers\" label on control plane nodes during \"init\", \"join\" and \"upgrade\" to preserve backwards compatibility with the lagacy LB mode where nodes labeled as \"master\" where excluded. To opt-out you can remove the label from a node. See #97543 and the linked KEP for more details.", - "markdown": "Kubeadm: apply the \"node.kubernetes.io/exclude-from-external-load-balancers\" label on control plane nodes during \"init\", \"join\" and \"upgrade\" to preserve backwards compatibility with the lagacy LB mode where nodes labeled as \"master\" where excluded. To opt-out you can remove the label from a node. See #97543 and the linked KEP for more details. ([#98269](https://github.com/kubernetes/kubernetes/pull/98269), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-architecture/1143-node-role-labels", - "type": "KEP" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98269", - "pr_number": 98269, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "98277": { - "commit": "66cbf0196bd5ed0f06d7c40fccba887aae5405d8", - "text": "Services can specify loadBalancerClass to use a custom load balancer", - "markdown": "Services can specify loadBalancerClass to use a custom load balancer ([#98277](https://github.com/kubernetes/kubernetes/pull/98277), [@XudongLiuHarold](https://github.com/XudongLiuHarold))", - "documentation": [ - { - "description": "[KEP-1959]:\u003c", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cloud-provider/1959-service-lb-class-field\u003e", - "type": "KEP" - } - ], - "author": "XudongLiuHarold", - "author_url": "https://github.com/XudongLiuHarold", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98277", - "pr_number": 98277, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "cloud-provider", - "network" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "98284": { - "commit": "1bb010857445fc9b8b35e9e36a9fbbbdd80694b3", - "text": "Windows nodes on GCE will take longer to start due to dependencies installed at node creation time.", - "markdown": "Windows nodes on GCE will take longer to start due to dependencies installed at node creation time. ([#98284](https://github.com/kubernetes/kubernetes/pull/98284), [@pjh](https://github.com/pjh)) [SIG Cloud Provider]", - "author": "pjh", - "author_url": "https://github.com/pjh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98284", - "pr_number": 98284, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ] - }, - "98301": { - "commit": "25aa6cf0c58067656dd6e4c1e2c28efb259ab08c", - "text": "kubectl: add bash-completion for comma separated list on `kubectl get`", - "markdown": "Kubectl: add bash-completion for comma separated list on `kubectl get` ([#98301](https://github.com/kubernetes/kubernetes/pull/98301), [@phil9909](https://github.com/phil9909))", - "author": "phil9909", - "author_url": "https://github.com/phil9909", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98301", - "pr_number": 98301, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "98305": { - "commit": "659b4dc4a8a210c912e8e663532517f919123771", - "text": "kube-proxy: fix a bug on UDP `NodePort` Services where stale connection tracking entries may blackhole the traffic directed to the `NodePort`", - "markdown": "Kube-proxy: fix a bug on UDP `NodePort` Services where stale connection tracking entries may blackhole the traffic directed to the `NodePort` ([#98305](https://github.com/kubernetes/kubernetes/pull/98305), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98305", - "pr_number": 98305, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug", - "failing-test", - "flake" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "98311": { - "commit": "5cd694ba7d7cb04614837727172fa297d8780edb", - "text": "Fixed provisioning of Cinder volumes migrated to CSI when StorageClass with AllowedTopologies was used.", - "markdown": "Fixed provisioning of Cinder volumes migrated to CSI when StorageClass with AllowedTopologies was used. ([#98311](https://github.com/kubernetes/kubernetes/pull/98311), [@jsafrane](https://github.com/jsafrane)) [SIG Storage]", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98311", - "pr_number": 98311, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "98312": { - "commit": "b7fc3f91ea64eff4be673449e08df581eeddf42c", - "text": "The `export` query parameter (inconsistently supported by API resources and deprecated in v1.14) is fully removed. Requests setting this query parameter will now receive a 400 status response.", - "markdown": "The `export` query parameter (inconsistently supported by API resources and deprecated in v1.14) is fully removed. Requests setting this query parameter will now receive a 400 status response. ([#98312](https://github.com/kubernetes/kubernetes/pull/98312), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth and Testing]", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98312", - "pr_number": 98312, - "areas": [ - "apiserver", - "code-generation", - "test" - ], - "kinds": [ - "api-change", - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "98324": { - "commit": "27104f159557da6bec20cf8227b468b1f22cd884", - "text": "Export `NewDebuggingRoundTripper` function and `DebugLevel` options in the k8s.io/client-go/transport package.", - "markdown": "Export `NewDebuggingRoundTripper` function and `DebugLevel` options in the k8s.io/client-go/transport package. ([#98324](https://github.com/kubernetes/kubernetes/pull/98324), [@atosatto](https://github.com/atosatto))", - "author": "atosatto", - "author_url": "https://github.com/atosatto", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98324", - "pr_number": 98324, - "areas": [ - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "98325": { - "commit": "d2659101bf15b6218ba7f1a199a67af65242f00f", - "text": "The default delegating authorization options now allow unauthenticated access to healthz, readyz, and livez. A system:masters user connecting to an authz delegator will not perform an authz check.", - "markdown": "The default delegating authorization options now allow unauthenticated access to healthz, readyz, and livez. A system:masters user connecting to an authz delegator will not perform an authz check. ([#98325](https://github.com/kubernetes/kubernetes/pull/98325), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth, Cloud Provider and Scheduling]", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98325", - "pr_number": 98325, - "areas": [ - "apiserver", - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider", - "scheduling" - ], - "duplicate": true - }, - "98332": { - "commit": "bb310acad5ad73aa98da377c583415510543643d", - "text": "Remove storage metrics `storage_operation_errors_total`, since we already have `storage_operation_status_count`.And add new field `status` for `storage_operation_duration_seconds`, so that we can know about all status storage operation latency.", - "markdown": "Remove storage metrics `storage_operation_errors_total`, since we already have `storage_operation_status_count`.And add new field `status` for `storage_operation_duration_seconds`, so that we can know about all status storage operation latency. ([#98332](https://github.com/kubernetes/kubernetes/pull/98332), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation and Storage]", - "author": "JornShen", - "author_url": "https://github.com/JornShen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98332", - "pr_number": 98332, - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "storage" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "98363": { - "commit": "35bf00acb1f5f2be22cdcb180c5e1227a72934fc", - "text": "Kubernetes is now built using go1.15.7", - "markdown": "Kubernetes is now built using go1.15.7 ([#98363](https://github.com/kubernetes/kubernetes/pull/98363), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Node, Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98363", - "pr_number": 98363, - "areas": [ - "dependency", - "provider/gcp", - "release-eng", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "cloud-provider", - "instrumentation", - "node", - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "98365": { - "commit": "413ff6751bec6a42d7fd946f544a5bd924786f67", - "text": "Fix cgroup handling for systemd with cgroup v2", - "markdown": "Fix cgroup handling for systemd with cgroup v2 ([#98365](https://github.com/kubernetes/kubernetes/pull/98365), [@odinuge](https://github.com/odinuge)) [SIG Node]", - "author": "odinuge", - "author_url": "https://github.com/odinuge", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98365", - "pr_number": 98365, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "98376": { - "commit": "c193c1b2347c2f9bfbdd4f5c4dd7f41fcd91a204", - "text": "Pod status updates faster when reacting on probe results. The first readiness probe will be called faster when startup probes succeeded, which will make Pod status as ready faster.", - "markdown": "Pod status updates faster when reacting on probe results. The first readiness probe will be called faster when startup probes succeeded, which will make Pod status as ready faster. ([#98376](https://github.com/kubernetes/kubernetes/pull/98376), [@matthyx](https://github.com/matthyx))", - "author": "matthyx", - "author_url": "https://github.com/matthyx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98376", - "pr_number": 98376, - "areas": [ - "e2e-test-framework", - "kubelet", - "test" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "98401": { - "commit": "a8e819350c7bae604b1e757bbd94d5777f672be1", - "text": "base-images: Update to debian-iptables:buster-v1.4.0\n- Uses iptables 1.8.5\n- base-images: Update to debian-base:buster-v1.3.0\n- cluster/images/etcd: Build etcd:3.4.13-2 image\n - Uses debian-base:buster-v1.3.0", - "markdown": "Base-images: Update to debian-iptables:buster-v1.4.0\n - Uses iptables 1.8.5\n - base-images: Update to debian-base:buster-v1.3.0\n - cluster/images/etcd: Build etcd:3.4.13-2 image\n - Uses debian-base:buster-v1.3.0 ([#98401](https://github.com/kubernetes/kubernetes/pull/98401), [@pacoxu](https://github.com/pacoxu)) [SIG Testing]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98401", - "pr_number": 98401, - "areas": [ - "release-eng", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - }, - "98430": { - "commit": "15252db5f232e465b960d27e8059948385e4e248", - "text": "Resolves flakes in the Ingress conformance tests due to conflicts with controllers updating the Ingress object", - "markdown": "Resolves flakes in the Ingress conformance tests due to conflicts with controllers updating the Ingress object ([#98430](https://github.com/kubernetes/kubernetes/pull/98430), [@liggitt](https://github.com/liggitt)) [SIG Network and Testing]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98430", - "pr_number": 98430, - "areas": [ - "test" - ], - "kinds": [ - "flake" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true - }, - "98436": { - "commit": "4fc184f383cd9e4f4a7765b385ed95e807db7661", - "text": "Fixes connection errors when using `--volume-host-cidr-denylist` or `--volume-host-allow-local-loopback`", - "markdown": "Fixes connection errors when using `--volume-host-cidr-denylist` or `--volume-host-allow-local-loopback` ([#98436](https://github.com/kubernetes/kubernetes/pull/98436), [@liggitt](https://github.com/liggitt)) [SIG Network and Storage]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98436", - "pr_number": 98436, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "storage" - ], - "duplicate": true - }, - "98441": { - "commit": "6059a67e49f04ea49120b113897d25286773a397", - "text": "Added `.spec.completionMode` field to Job, with accepted values `NonIndexed` (default) and `Indexed`. This is an alpha field and is only honored by servers with the `IndexedJob` feature gate enabled.", - "markdown": "Added `.spec.completionMode` field to Job, with accepted values `NonIndexed` (default) and `Indexed`. This is an alpha field and is only honored by servers with the `IndexedJob` feature gate enabled. ([#98441](https://github.com/kubernetes/kubernetes/pull/98441), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps and CLI]", - "documentation": [ - { - "description": "[KEP]", - "url": "http://git.k8s.io/enhancements/keps/sig-apps/2214-indexed-job", - "type": "external" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98441", - "pr_number": 98441, - "areas": [ - "batch", - "kubectl", - "workload-api/job" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "cli" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "98453": { - "commit": "4b3d6369dd204c38959d4f508c7a3a3d3d81eb35", - "text": "NONE", - "markdown": "NONE ([#98453](https://github.com/kubernetes/kubernetes/pull/98453), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", - "author": "tanjing2020", - "author_url": "https://github.com/tanjing2020", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98453", - "pr_number": 98453, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "98458": { - "commit": "d0a433fa4504e974c69a6c9a70af9f77c7a00112", - "text": "Cluster admins can now turn off `/debug/pprof` and `/debug/flags/v` endpoint in kubelet by setting `enableProfilingHandler` and `enableDebugFlagsHandler` to `false` in the Kubelet configuration file. Options `enableProfilingHandler` and `enableDebugFlagsHandler` can be set to `true` only when `enableDebuggingHandlers` is also set to `true`.", - "markdown": "Cluster admins can now turn off `/debug/pprof` and `/debug/flags/v` endpoint in kubelet by setting `enableProfilingHandler` and `enableDebugFlagsHandler` to `false` in the Kubelet configuration file. Options `enableProfilingHandler` and `enableDebugFlagsHandler` can be set to `true` only when `enableDebuggingHandlers` is also set to `true`. ([#98458](https://github.com/kubernetes/kubernetes/pull/98458), [@SaranBalaji90](https://github.com/SaranBalaji90))", - "author": "SaranBalaji90", - "author_url": "https://github.com/SaranBalaji90", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98458", - "pr_number": 98458, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true - }, - "98510": { - "commit": "b9b11d3100ffda888ca05370b8c74bc7ba0debf0", - "text": "Fix errors when accessing Windows container stats for Dockershim", - "markdown": "Fix errors when accessing Windows container stats for Dockershim ([#98510](https://github.com/kubernetes/kubernetes/pull/98510), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows]", - "author": "jsturtevant", - "author_url": "https://github.com/jsturtevant", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98510", - "pr_number": 98510, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true - }, - "98515": { - "commit": "4e95e1df04a1aaf0ece5a3df947b49165ddd860c", - "text": "hugepages request values are limited to integer multiples of the page size.", - "markdown": "Hugepages request values are limited to integer multiples of the page size. ([#98515](https://github.com/kubernetes/kubernetes/pull/98515), [@lala123912](https://github.com/lala123912)) [SIG Apps]", - "author": "lala123912", - "author_url": "https://github.com/lala123912", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98515", - "pr_number": 98515, - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "98518": { - "commit": "ebe7380b384f45e4cac5c360767b5ea033b05fd6", - "text": "NONE", - "markdown": "NONE ([#98518](https://github.com/kubernetes/kubernetes/pull/98518), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", - "author": "tanjing2020", - "author_url": "https://github.com/tanjing2020", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98518", - "pr_number": 98518, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "98526": { - "commit": "90ca7e89e908acfbfa02388654fedbfc59d49581", - "text": "Fix kube-proxy container image architecture for non amd64 images.", - "markdown": "Fix kube-proxy container image architecture for non amd64 images. ([#98526](https://github.com/kubernetes/kubernetes/pull/98526), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98526", - "pr_number": 98526, - "areas": [ - "release-eng", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "release", - "testing" - ], - "duplicate": true - }, - "98538": { - "commit": "7c702138f9aa1bde679ced06692bb26d4006a762", - "text": "OpenStack Cinder CSI migration is on by default, Clinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work.", - "markdown": "OpenStack Cinder CSI migration is on by default, Clinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work. ([#98538](https://github.com/kubernetes/kubernetes/pull/98538), [@dims](https://github.com/dims)) [SIG Storage]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98538", - "pr_number": 98538, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true, - "action_required": true - }, - "98546": { - "commit": "525e397a4817435d8b9cb1ca52dfa17b5bbbb4f6", - "text": "`diskformat` storage class parameter for in-tree vSphere volume plugin is deprecated as of v1.21 release. Please consider updating storageclass and remove `diskformat` parameter. vSphere CSI Driver does not support diskformat storageclass parameter.\n\nvSphere releases less than 67u3 are deprecated as of v1.21. Please consider upgrading vSphere to 67u3 or above. vSphere CSI Driver requires minimum vSphere 67u3.\n\nVM Hardware version less than 15 is deprecated as of v1.21. Please consider upgrading the Node VM Hardware version to 15 or above. vSphere CSI Driver recommends Node VM's Hardware version set to at least vmx-15.\n\nMulti vCenter support is deprecated as of v1.21. If you have a Kubernetes cluster spanning across multiple vCenter servers, please consider moving all k8s nodes to a single vCenter Server. vSphere CSI Driver does not support Kubernetes deployment spanning across multiple vCenter servers.\n\nSupport for these deprecations will be available till Kubernetes v1.24.", - "markdown": "`diskformat` storage class parameter for in-tree vSphere volume plugin is deprecated as of v1.21 release. Please consider updating storageclass and remove `diskformat` parameter. vSphere CSI Driver does not support diskformat storageclass parameter.\n \n vSphere releases less than 67u3 are deprecated as of v1.21. Please consider upgrading vSphere to 67u3 or above. vSphere CSI Driver requires minimum vSphere 67u3.\n \n VM Hardware version less than 15 is deprecated as of v1.21. Please consider upgrading the Node VM Hardware version to 15 or above. vSphere CSI Driver recommends Node VM's Hardware version set to at least vmx-15.\n \n Multi vCenter support is deprecated as of v1.21. If you have a Kubernetes cluster spanning across multiple vCenter servers, please consider moving all k8s nodes to a single vCenter Server. vSphere CSI Driver does not support Kubernetes deployment spanning across multiple vCenter servers.\n \n Support for these deprecations will be available till Kubernetes v1.24. ([#98546](https://github.com/kubernetes/kubernetes/pull/98546), [@divyenpatel](https://github.com/divyenpatel))", - "author": "divyenpatel", - "author_url": "https://github.com/divyenpatel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98546", - "pr_number": 98546, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "deprecation", - "feature" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "98553": { - "commit": "6aef7ca0133e64087d17d42ab6be719da2cc3d4e", - "text": "The `ServiceAccountIssuerDiscovery` feature has graduated to GA, and is unconditionally enabled. The `ServiceAccountIssuerDiscovery` feature-gate will be removed in 1.22.", - "markdown": "The `ServiceAccountIssuerDiscovery` feature has graduated to GA, and is unconditionally enabled. The `ServiceAccountIssuerDiscovery` feature-gate will be removed in 1.22. ([#98553](https://github.com/kubernetes/kubernetes/pull/98553), [@mtaufen](https://github.com/mtaufen)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1393-oidc-discovery", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-issuer-discovery", - "type": "official" - } - ], - "author": "mtaufen", - "author_url": "https://github.com/mtaufen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98553", - "pr_number": 98553, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "98572": { - "commit": "e4e9c31218becac11f176cc824f5cc6b7a8036ac", - "text": "Kubernetes is now built with Golang 1.16", - "markdown": "Kubernetes is now built with Golang 1.16 ([#98572](https://github.com/kubernetes/kubernetes/pull/98572), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Release and Testing]", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98572", - "pr_number": 98572, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl", - "provider/gcp", - "release-eng", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "node", - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "98576": { - "commit": "0a0490e34fb28ac91e147bafbd252a97df98a6b5", - "text": "Fixes server-side apply for APIService resources.", - "markdown": "Fixes server-side apply for APIService resources. ([#98576](https://github.com/kubernetes/kubernetes/pull/98576), [@kevindelgado](https://github.com/kevindelgado))", - "author": "kevindelgado", - "author_url": "https://github.com/kevindelgado", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98576", - "pr_number": 98576, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "98582": { - "commit": "e64547242541f56229b7c1cf9a4cf153565d17a6", - "text": "1. PodAffinityTerm includes a namespaceSelector field to allow selecting eligible namespaces based on their labels. \n2. A new CrossNamespacePodAffinity quota scope API that allows restricting which namespaces allowed to use PodAffinityTerm with corss-namespace reference via namespaceSelector or namespaces fields.", - "markdown": "1. PodAffinityTerm includes a namespaceSelector field to allow selecting eligible namespaces based on their labels. \n 2. A new CrossNamespacePodAffinity quota scope API that allows restricting which namespaces allowed to use PodAffinityTerm with corss-namespace reference via namespaceSelector or namespaces fields. ([#98582](https://github.com/kubernetes/kubernetes/pull/98582), [@ahg-g](https://github.com/ahg-g)) [SIG API Machinery, Apps, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/2249-pod-affinity-namespace-selector", - "type": "KEP" - } - ], - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98582", - "pr_number": 98582, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "98676": { - "commit": "002fb9fc5e91805d53d61e7bd302341ef6ef66c6", - "text": "A new histogram metric to track the time it took to delete a job by the `TTLAfterFinished` controller", - "markdown": "A new histogram metric to track the time it took to delete a job by the `TTLAfterFinished` controller ([#98676](https://github.com/kubernetes/kubernetes/pull/98676), [@ahg-g](https://github.com/ahg-g))", - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98676", - "pr_number": 98676, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "98678": { - "commit": "60a0740c958023d48ad5e3d19c65e18a7ec6a662", - "text": "The `TTLAfterFinished` feature flag is now beta and enabled by default", - "markdown": "The `TTLAfterFinished` feature flag is now beta and enabled by default ([#98678](https://github.com/kubernetes/kubernetes/pull/98678), [@ahg-g](https://github.com/ahg-g))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/592-ttl-after-finish", - "type": "KEP" - } - ], - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98678", - "pr_number": 98678, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "auth" - ], - "feature": true, - "duplicate": true - }, - "98700": { - "commit": "429eaca5369f3e33d8c4dc1121c7cccb4dddb7fc", - "text": "Newly provisioned PVs by gce-pd will no longer have the beta FailureDomain label. gce-pd volume plugin will start to have GA topology label instead.", - "markdown": "Newly provisioned PVs by gce-pd will no longer have the beta FailureDomain label. gce-pd volume plugin will start to have GA topology label instead. ([#98700](https://github.com/kubernetes/kubernetes/pull/98700), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Cloud Provider, Storage and Testing]", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98700", - "pr_number": 98700, - "areas": [ - "cloudprovider", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "98715": { - "commit": "3416b6b0a4e7b76cb38f6b1749766599b3fd2368", - "text": "Truncates a message if it hits the `NoteLengthLimit` when the scheduler records an event for the pod that indicates the pod has failed to schedule.", - "markdown": "Truncates a message if it hits the `NoteLengthLimit` when the scheduler records an event for the pod that indicates the pod has failed to schedule. ([#98715](https://github.com/kubernetes/kubernetes/pull/98715), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98715", - "pr_number": 98715, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "98727": { - "commit": "a0341d7471c238acd03e1923161b4a2671a7fe2d", - "text": "Jobs API has a new `.spec.suspend` field that can be used to suspend and resume Jobs. This is an alpha field which is only honored by servers with the `SuspendJob` feature gate enabled.", - "markdown": "Jobs API has a new `.spec.suspend` field that can be used to suspend and resume Jobs. This is an alpha field which is only honored by servers with the `SuspendJob` feature gate enabled. ([#98727](https://github.com/kubernetes/kubernetes/pull/98727), [@adtac](https://github.com/adtac))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2234", - "type": "KEP" - } - ], - "author": "adtac", - "author_url": "https://github.com/adtac", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98727", - "pr_number": 98727, - "areas": [ - "e2e-test-framework", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "98728": { - "commit": "c884bf1648abccc3414f745e2f932368c5e3d5e6", - "text": "kubeadm: Some text in the `kubeadm upgrade plan` output has changed. If you have scripts or other automation that parses this output, please review these changes and update your scripts to account for the new output.", - "markdown": "Kubeadm: Some text in the `kubeadm upgrade plan` output has changed. If you have scripts or other automation that parses this output, please review these changes and update your scripts to account for the new output. ([#98728](https://github.com/kubernetes/kubernetes/pull/98728), [@stmcginnis](https://github.com/stmcginnis)) [SIG Cluster Lifecycle]", - "author": "stmcginnis", - "author_url": "https://github.com/stmcginnis", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98728", - "pr_number": 98728, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "98730": { - "commit": "a4b3d3167853f3cfd25a69949625f146c998c945", - "text": "Kubelet command line flags related to dockershim are now showing deprecation message as they will be removed along with dockershim in future release.", - "markdown": "Kubelet command line flags related to dockershim are now showing deprecation message as they will be removed along with dockershim in future release. ([#98730](https://github.com/kubernetes/kubernetes/pull/98730), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98730", - "pr_number": 98730, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "98750": { - "commit": "9273c3be128e19bdc75eadbfbde0eb6ba3b1f1d3", - "text": "Fixes problem where invalid selector on `PodDisruptionBudget` leads to a nil pointer dereference that causes the Controller manager to crash loop.", - "markdown": "Fixes problem where invalid selector on `PodDisruptionBudget` leads to a nil pointer dereference that causes the Controller manager to crash loop. ([#98750](https://github.com/kubernetes/kubernetes/pull/98750), [@mortent](https://github.com/mortent))", - "author": "mortent", - "author_url": "https://github.com/mortent", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98750", - "pr_number": 98750, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "98753": { - "commit": "dc74b9d0c7e70a4acdaf520ef351f4f1abb5a740", - "text": "Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes.", - "markdown": "Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. ([#98753](https://github.com/kubernetes/kubernetes/pull/98753), [@Jiawei0227](https://github.com/Jiawei0227))", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98753", - "pr_number": 98753, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "storage" - ], - "duplicate": true - }, - "98755": { - "commit": "0faf0960410371d0c08173e331c4120cd6391d57", - "text": "kubelet: fixes a bug in the HostPort dockershim implementation that caused the conformance test \"HostPort validates that there is no conflict between pods with same hostPort but different hostIP and protocol\" to fail.", - "markdown": "Kubelet: fixes a bug in the HostPort dockershim implementation that caused the conformance test \"HostPort validates that there is no conflict between pods with same hostPort but different hostIP and protocol\" to fail. ([#98755](https://github.com/kubernetes/kubernetes/pull/98755), [@aojea](https://github.com/aojea)) [SIG Cloud Provider, Network and Node]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98755", - "pr_number": 98755, - "areas": [ - "conformance", - "kubelet", - "provider/gcp" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "cloud-provider", - "network", - "node" - ], - "duplicate": true, - "duplicate_kind": true - }, - "98781": { - "commit": "26744ac58dd31ceb342b54a2a9d71d66aa95811d", - "text": "The e2e suite can be instructed not to wait for pods in kube-system to be ready or for all nodes to be ready by passing `--allowed-not-ready-nodes=-1` when invoking the e2e.test program. This allows callers to run subsets of the e2e suite in scenarios other than perfectly healthy clusters.", - "markdown": "The e2e suite can be instructed not to wait for pods in kube-system to be ready or for all nodes to be ready by passing `--allowed-not-ready-nodes=-1` when invoking the e2e.test program. This allows callers to run subsets of the e2e suite in scenarios other than perfectly healthy clusters. ([#98781](https://github.com/kubernetes/kubernetes/pull/98781), [@smarterclayton](https://github.com/smarterclayton)) [SIG Testing]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98781", - "pr_number": 98781, - "areas": [ - "e2e-test-framework", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ] - }, - "98787": { - "commit": "c5759ab86d9813269bd61108dec43ef36a993e02", - "text": "The new `-gce-zones` flag on the `e2e.test` binary instructs tests that check for information about how the cluster interacts with the cloud to limit their queries to the provided zone list. If not specified, the current behavior of asking the cloud provider for all available zones in multi zone clusters is preserved.", - "markdown": "The new `-gce-zones` flag on the `e2e.test` binary instructs tests that check for information about how the cluster interacts with the cloud to limit their queries to the provided zone list. If not specified, the current behavior of asking the cloud provider for all available zones in multi zone clusters is preserved. ([#98787](https://github.com/kubernetes/kubernetes/pull/98787), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Cluster Lifecycle and Testing]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98787", - "pr_number": 98787, - "areas": [ - "e2e-test-framework", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "testing" - ], - "duplicate": true - }, - "98809": { - "commit": "a27a6e78f2b2916c6306cdb5bfbbacd2c2a8d3c9", - "text": "Clients required to use go1.15.8+ or go1.16+ if kube-apiserver has the goaway feature enabled to avoid unexpected data race condition.", - "markdown": "Clients required to use go1.15.8+ or go1.16+ if kube-apiserver has the goaway feature enabled to avoid unexpected data race condition. ([#98809](https://github.com/kubernetes/kubernetes/pull/98809), [@answer1991](https://github.com/answer1991))", - "author": "answer1991", - "author_url": "https://github.com/answer1991", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98809", - "pr_number": 98809, - "areas": [ - "apiserver" - ], - "kinds": [ - "flake" - ], - "sigs": [ - "api-machinery" - ] - }, - "98812": { - "commit": "afb1ee3c9a4ee265412248d6135c466ca02a929a", - "text": "Support for Indexed Job: a Job that is considered completed when Pods associated to indexes from 0 to (.spec.completions-1) have succeeded.", - "markdown": "Support for Indexed Job: a Job that is considered completed when Pods associated to indexes from 0 to (.spec.completions-1) have succeeded. ([#98812](https://github.com/kubernetes/kubernetes/pull/98812), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps and CLI]", - "documentation": [ - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#indexed-job", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98812", - "pr_number": 98812, - "areas": [ - "batch", - "kubectl", - "workload-api/job" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "cli" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "98830": { - "commit": "254106c42c6b91669d92a9258ee4dc450f67dfd7", - "text": "Escape the special characters like `[`, `]` and ` ` that exist in vsphere windows path", - "markdown": "Escape the special characters like `[`, `]` and ` ` that exist in vsphere windows path ([#98830](https://github.com/kubernetes/kubernetes/pull/98830), [@liyanhui1228](https://github.com/liyanhui1228)) [SIG Storage and Windows]", - "author": "liyanhui1228", - "author_url": "https://github.com/liyanhui1228", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98830", - "pr_number": 98830, - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "storage", - "windows" - ], - "duplicate": true, - "duplicate_kind": true - }, - "98834": { - "commit": "3534e31ade5f6e79499b2d5fcca0d74033a01a45", - "text": "Kubernetes is now built using go1.15.8", - "markdown": "Kubernetes is now built using go1.15.8 ([#98834](https://github.com/kubernetes/kubernetes/pull/98834), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98834", - "pr_number": 98834, - "areas": [ - "dependency", - "provider/gcp", - "release-eng", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "instrumentation", - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "98836": { - "commit": "5fa704c6a883d369d1a4cf273f8dd13516e4a58c", - "text": "kubeadm: get k8s CI version markers from k8s infra bucket", - "markdown": "Kubeadm: get k8s CI version markers from k8s infra bucket ([#98836](https://github.com/kubernetes/kubernetes/pull/98836), [@hasheddan](https://github.com/hasheddan)) [SIG Cluster Lifecycle and Release]", - "author": "hasheddan", - "author_url": "https://github.com/hasheddan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98836", - "pr_number": 98836, - "areas": [ - "kubeadm", - "release-eng" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle", - "release" - ], - "duplicate": true - }, - "98858": { - "commit": "5106581d232dbae76812676a56045e232d42d446", - "text": "`audit.k8s.io/v1beta1` and `audit.k8s.io/v1alpha1` audit policy configuration and audit events are deprecated in favor of `audit.k8s.io/v1`, available since v1.13. kube-apiserver invocations that specify alpha or beta policy configurations with `--audit-policy-file`, or explicitly request alpha or beta audit events with `--audit-log-version` / `--audit-webhook-version` must update to use `audit.k8s.io/v1` and accept `audit.k8s.io/v1` events prior to v1.24.", - "markdown": "`audit.k8s.io/v1beta1` and `audit.k8s.io/v1alpha1` audit policy configuration and audit events are deprecated in favor of `audit.k8s.io/v1`, available since v1.13. kube-apiserver invocations that specify alpha or beta policy configurations with `--audit-policy-file`, or explicitly request alpha or beta audit events with `--audit-log-version` / `--audit-webhook-version` must update to use `audit.k8s.io/v1` and accept `audit.k8s.io/v1` events prior to v1.24. ([#98858](https://github.com/kubernetes/kubernetes/pull/98858), [@carlory](https://github.com/carlory)) [SIG Auth]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98858", - "pr_number": 98858, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change", - "cleanup", - "deprecation", - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true, - "duplicate_kind": true - }, - "98875": { - "commit": "2b6a8381d229b8b3736990340a603c6a6d506eb8", - "text": "NONE", - "markdown": "NONE ([#98875](https://github.com/kubernetes/kubernetes/pull/98875), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", - "author": "tanjing2020", - "author_url": "https://github.com/tanjing2020", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98875", - "pr_number": 98875, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "98878": { - "commit": "bcfa3a0a36223a24891c7b49ff33dc51bde6ec31", - "text": "The `CronJobControllerV2` feature flag graduates to Beta and set to be enabled by default.", - "markdown": "The `CronJobControllerV2` feature flag graduates to Beta and set to be enabled by default. ([#98878](https://github.com/kubernetes/kubernetes/pull/98878), [@soltysh](https://github.com/soltysh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/19-Graduate-CronJob-to-Stable", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98878", - "pr_number": 98878, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "98882": { - "commit": "0867767d6ed9871abe0a20a08547e9daf89684a4", - "text": "kubeadm: fix a bug where external credentials in an existing admin.conf prevented the CA certificate to be written in the cluster-info ConfigMap.", - "markdown": "Kubeadm: fix a bug where external credentials in an existing admin.conf prevented the CA certificate to be written in the cluster-info ConfigMap. ([#98882](https://github.com/kubernetes/kubernetes/pull/98882), [@kvaps](https://github.com/kvaps)) [SIG Cluster Lifecycle]", - "author": "kvaps", - "author_url": "https://github.com/kvaps", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98882", - "pr_number": 98882, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "98892": { - "commit": "cd54b1931d015df7c1609043d81b1f8308f2187d", - "text": "A client-go metric, rest_client_exec_plugin_call_total, has been added to track total calls to client-go credential plugins.", - "markdown": "A client-go metric, rest_client_exec_plugin_call_total, has been added to track total calls to client-go credential plugins. ([#98892](https://github.com/kubernetes/kubernetes/pull/98892), [@ankeesler](https://github.com/ankeesler)) [SIG API Machinery, Auth, Cluster Lifecycle and Instrumentation]", - "author": "ankeesler", - "author_url": "https://github.com/ankeesler", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98892", - "pr_number": 98892, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cluster-lifecycle", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "98918": { - "commit": "70f2608b53955806941924a8ed9854c443c474d2", - "text": "PodSecurityPolicy only stores \"generic\" as allowed volume type if the GenericEphemeralVolume feature gate is enabled", - "markdown": "PodSecurityPolicy only stores \"generic\" as allowed volume type if the GenericEphemeralVolume feature gate is enabled ([#98918](https://github.com/kubernetes/kubernetes/pull/98918), [@pohly](https://github.com/pohly)) [SIG Auth and Security]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98918", - "pr_number": 98918, - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "auth", - "security" - ], - "duplicate": true, - "duplicate_kind": true - }, - "98931": { - "commit": "031f2afbba6a3bade6e729e1709a0e792a1e6637", - "text": "APIs for kubelet annotations and labels from `k8s.io/kubernetes/pkg/kubelet/apis` are now moved under `k8s.io/kubelet/pkg/apis/`", - "markdown": "APIs for kubelet annotations and labels from `k8s.io/kubernetes/pkg/kubelet/apis` are now moved under `k8s.io/kubelet/pkg/apis/` ([#98931](https://github.com/kubernetes/kubernetes/pull/98931), [@michaelbeaumont](https://github.com/michaelbeaumont))", - "author": "michaelbeaumont", - "author_url": "https://github.com/michaelbeaumont", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98931", - "pr_number": 98931, - "areas": [ - "code-organization", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "auth", - "node" - ], - "duplicate": true - }, - "98939": { - "commit": "a6a66c359488d2f933ccdc3fcb6a57f5fb05b567", - "text": "Migrate `pkg/kubelet/(dockershim, network)` to structured logging\nExit code changed from 255 to 1", - "markdown": "Migrate `pkg/kubelet/(dockershim, network)` to structured logging\n Exit code changed from 255 to 1 ([#98939](https://github.com/kubernetes/kubernetes/pull/98939), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Network and Node]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98939", - "pr_number": 98939, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true, - "action_required": true - }, - "98946": { - "commit": "ff3ccc58cd926260731c5e6f4a9405d595916369", - "text": "Updates the commands `\n - kubectl kustomize {arg}\n - kubectl apply -k {arg}\n`to use same code as kustomize CLI [v4.0.5](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.0.5)", - "markdown": "Updates the commands `\n - kubectl kustomize {arg}\n - kubectl apply -k {arg}\n `to use same code as kustomize CLI [v4.0.5](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.0.5) ([#98946](https://github.com/kubernetes/kubernetes/pull/98946), [@monopole](https://github.com/monopole))", - "author": "monopole", - "author_url": "https://github.com/monopole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98946", - "pr_number": 98946, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "conformance", - "dependency", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "architecture", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "node", - "storage" - ], - "duplicate": true - }, - "98952": { - "commit": "85cb886f7e2911a14cc84acc32c20a5d0254d8b9", - "text": "Alpha implementation of Kubectl Command Headers: SIG CLI KEP 859 enabled when KUBECTL_COMMAND_HEADERS environment variable set on the client command line.", - "markdown": "Alpha implementation of Kubectl Command Headers: SIG CLI KEP 859 enabled when KUBECTL_COMMAND_HEADERS environment variable set on the client command line. ([#98952](https://github.com/kubernetes/kubernetes/pull/98952), [@seans3](https://github.com/seans3))", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98952", - "pr_number": 98952, - "areas": [ - "code-generation", - "dependency", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cli" - ], - "feature": true, - "duplicate": true - }, - "98968": { - "commit": "a7147bb113dc5b7dd5a125664ea11fe8b53b2559", - "text": "Fixes add-on manager leader election to use leases instead of endpoints, similar to what kube-controller-manager does in 1.20", - "markdown": "Fixes add-on manager leader election to use leases instead of endpoints, similar to what kube-controller-manager does in 1.20 ([#98968](https://github.com/kubernetes/kubernetes/pull/98968), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98968", - "pr_number": 98968, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "98969": { - "commit": "2d153fe04ea10ea88df01584c80db569fdf3acb5", - "text": "Upgrades `IPv6Dualstack` to `Beta` and turns it on by default. New clusters or existing clusters are not be affected until an actor starts adding secondary Pods and service CIDRS CLI flags as described here: [IPv4/IPv6 Dual-stack](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack)", - "markdown": "Upgrades `IPv6Dualstack` to `Beta` and turns it on by default. New clusters or existing clusters are not be affected until an actor starts adding secondary Pods and service CIDRS CLI flags as described here: [IPv4/IPv6 Dual-stack](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack) ([#98969](https://github.com/kubernetes/kubernetes/pull/98969), [@khenidak](https://github.com/khenidak))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack", - "type": "KEP" - } - ], - "author": "khenidak", - "author_url": "https://github.com/khenidak", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98969", - "pr_number": 98969, - "areas": [ - "apiserver", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "cloud-provider", - "network", - "node" - ], - "feature": true, - "duplicate": true - }, - "98977": { - "commit": "2695ef3f1b0e2fc51ffb1bcb8491a4165587a089", - "text": "Update the latest validated version of Docker to 20.10", - "markdown": "Update the latest validated version of Docker to 20.10 ([#98977](https://github.com/kubernetes/kubernetes/pull/98977), [@neolit123](https://github.com/neolit123)) [SIG CLI, Cluster Lifecycle and Node]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98977", - "pr_number": 98977, - "areas": [ - "dependency", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "cluster-lifecycle", - "node" - ], - "feature": true, - "duplicate": true - }, - "98979": { - "commit": "b2a5d67dd5784bdc4fa90b6c64a395de10b814b8", - "text": "Add `csi_operations_seconds` metric on kubelet that exposes CSI operations duration and status for node CSI operations.", - "markdown": "Add `csi_operations_seconds` metric on kubelet that exposes CSI operations duration and status for node CSI operations. ([#98979](https://github.com/kubernetes/kubernetes/pull/98979), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Instrumentation and Storage]", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98979", - "pr_number": 98979, - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "storage" - ], - "feature": true, - "duplicate": true - }, - "98980": { - "commit": "b2b8c1f18d1056db23c1cd377d6dc3dd4fb4dcc1", - "text": "apiVersion: kubeadm.k8s.io/v1beta3\nkind: JoinConfiguration\ndiscovery:\n bootstrapToken:\n apiServerEndpoint: kube-apiserver:6443\n token: abcdef.0123456789abcdef\n unsafeSkipCAVerification: true\n timeout: 5m0s\n tlsBootstrapToken: abcdef.0123456789abcdef", - "markdown": "ApiVersion: kubeadm.k8s.io/v1beta3\n kind: JoinConfiguration\n discovery:\n bootstrapToken:\n apiServerEndpoint: kube-apiserver:6443\n token: abcdef.0123456789abcdef\n unsafeSkipCAVerification: true\n timeout: 5m0s\n tlsBootstrapToken: abcdef.0123456789abcdef ([#98980](https://github.com/kubernetes/kubernetes/pull/98980), [@syswu](https://github.com/syswu)) [SIG Cluster Lifecycle]", - "author": "syswu", - "author_url": "https://github.com/syswu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98980", - "pr_number": 98980, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "98984": { - "commit": "b0ba6c0b76c5dad63bb09b7f02020001d37507c0", - "text": "kubeadm: skip validating pod subnet against node-cidr-mask when allocate-node-cidrs is set to be false", - "markdown": "Kubeadm: skip validating pod subnet against node-cidr-mask when allocate-node-cidrs is set to be false ([#98984](https://github.com/kubernetes/kubernetes/pull/98984), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98984", - "pr_number": 98984, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "98990": { - "commit": "c0841211fdafa032c717bdb6f4955fdcfc183464", - "text": "Migrate `pkg/kubelet/(pod, pleg)` to structured logging", - "markdown": "Migrate `pkg/kubelet/(pod, pleg)` to structured logging ([#98990](https://github.com/kubernetes/kubernetes/pull/98990), [@gjkim42](https://github.com/gjkim42)) [SIG Instrumentation and Node]", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98990", - "pr_number": 98990, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "instrumentation", - "node" - ], - "duplicate": true, - "do_not_publish": true - }, - "98993": { - "commit": "508a8839ad6ad9bde8d0a0ffc1c544018a4730c4", - "text": "Migrate `pkg/kubelet/certificate` to structured logging\nExit code changed from 255 to 1", - "markdown": "Migrate `pkg/kubelet/certificate` to structured logging\n Exit code changed from 255 to 1 ([#98993](https://github.com/kubernetes/kubernetes/pull/98993), [@SataQiu](https://github.com/SataQiu)) [SIG Auth and Node]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98993", - "pr_number": 98993, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "node" - ], - "duplicate": true, - "action_required": true - }, - "98999": { - "commit": "c7389c1f351d16fc061476b0d0c10e9a691e7089", - "text": "migrate pkg/kubelet/cloudresource to structured logging", - "markdown": "Migrate pkg/kubelet/cloudresource to structured logging ([#98999](https://github.com/kubernetes/kubernetes/pull/98999), [@sladyn98](https://github.com/sladyn98)) [SIG Node]", - "author": "sladyn98", - "author_url": "https://github.com/sladyn98", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98999", - "pr_number": 98999, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "99001": { - "commit": "731fac3a55b120fd9d4cbddfefe6acf6bba29551", - "text": "Migrate pkg/kubelet/nodestatus to structured logging", - "markdown": "Migrate pkg/kubelet/nodestatus to structured logging ([#99001](https://github.com/kubernetes/kubernetes/pull/99001), [@QiWang19](https://github.com/QiWang19)) [SIG Node]", - "author": "QiWang19", - "author_url": "https://github.com/QiWang19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99001", - "pr_number": 99001, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "99004": { - "commit": "9cc3665bd3383c3683248f1bbb242670a04417ca", - "text": "`kubectl exec` and `kubectl attach` now honor the `--quiet` flag which suppresses output from the local binary that could be confused by a script with the remote command output (all non-failure output is hidden). In addition, print inline with exec and attach the list of alternate containers when we default to the first spec.container.", - "markdown": "`kubectl exec` and `kubectl attach` now honor the `--quiet` flag which suppresses output from the local binary that could be confused by a script with the remote command output (all non-failure output is hidden). In addition, print inline with exec and attach the list of alternate containers when we default to the first spec.container. ([#99004](https://github.com/kubernetes/kubernetes/pull/99004), [@smarterclayton](https://github.com/smarterclayton)) [SIG CLI]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99004", - "pr_number": 99004, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true - }, - "99006": { - "commit": "c5680da8df28740cd73f34687142b34aff84a71e", - "text": "Migrate `pkg/kubelet/(cri)` to structured logging", - "markdown": "Migrate `pkg/kubelet/(cri)` to structured logging ([#99006](https://github.com/kubernetes/kubernetes/pull/99006), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Node]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99006", - "pr_number": 99006, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "99032": { - "commit": "14abaa23c32e9aaea19a5d59f3b0d6db820db74b", - "text": "Migrate `pkg/kubelet/(eviction)` to structured logging", - "markdown": "Migrate `pkg/kubelet/(eviction)` to structured logging ([#99032](https://github.com/kubernetes/kubernetes/pull/99032), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Node]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99032", - "pr_number": 99032, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "99045": { - "commit": "6aab94eff924bd3fcc6af241327a5381d079b279", - "text": "The metric `storage_operation_errors_total` is not removed, but is marked deprecated, and the metric `storage_operation_status_count` is marked deprecated. In both cases the `storage_operation_duration_seconds` metric can be used to recover equivalent counts (using `status=fail-unknown` in the case of `storage_operations_errors_total`).", - "markdown": "The metric `storage_operation_errors_total` is not removed, but is marked deprecated, and the metric `storage_operation_status_count` is marked deprecated. In both cases the `storage_operation_duration_seconds` metric can be used to recover equivalent counts (using `status=fail-unknown` in the case of `storage_operations_errors_total`). ([#99045](https://github.com/kubernetes/kubernetes/pull/99045), [@mattcary](https://github.com/mattcary))", - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99045", - "pr_number": 99045, - "kinds": [ - "cleanup" - ], - "sigs": [ - "instrumentation", - "storage" - ], - "duplicate": true, - "action_required": true - }, - "99050": { - "commit": "aa28a3563b5161a7a07d1a07afedc4d1d248bc47", - "text": "Add `migrated` field into `storage_operation_duration_seconds` metric", - "markdown": "Add `migrated` field into `storage_operation_duration_seconds` metric ([#99050](https://github.com/kubernetes/kubernetes/pull/99050), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps, Instrumentation and Storage]", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99050", - "pr_number": 99050, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "instrumentation", - "storage" - ], - "feature": true, - "duplicate": true - }, - "99060": { - "commit": "b7613c4315c18592621ecae4d4959985ed497623", - "text": "Fixes `kubectl top pod` documentation which should not claim to show Storage.", - "markdown": "Fixes `kubectl top pod` documentation which should not claim to show Storage. ([#99060](https://github.com/kubernetes/kubernetes/pull/99060), [@syswu](https://github.com/syswu))", - "author": "syswu", - "author_url": "https://github.com/syswu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99060", - "pr_number": 99060, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "do_not_publish": true - }, - "99062": { - "commit": "93ab4e96f3c07e99ff32724aafe6887b6eab94ee", - "text": "...\n metrics, err := getMetricsFromMetricsAPI(o.MetricsClient, o.Namespace, o.ResourceName, o.AllNamespaces, selector)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// First we check why no metrics have been received.\n\tif len(metrics.Items) == 0 {\n\t\t// If the API server query is successful but all the pods are newly created,\n\t\t// the metrics are probably not ready yet, so we return the error here in the first place.\n\t\te := verifyEmptyMetrics(o, selector)\n\t\tif e != nil {\n\t\t\treturn e\n\t\t}\n ....\n\t}\n\n\tif err != nil {\n\t\treturn err\n\t}", - "markdown": "...\n metrics, err := getMetricsFromMetricsAPI(o.MetricsClient, o.Namespace, o.ResourceName, o.AllNamespaces, selector)\n \tif err != nil {\n \t\treturn err\n \t}\n \n \t// First we check why no metrics have been received.\n \tif len(metrics.Items) == 0 {\n \t\t// If the API server query is successful but all the pods are newly created,\n \t\t// the metrics are probably not ready yet, so we return the error here in the first place.\n \t\te := verifyEmptyMetrics(o, selector)\n \t\tif e != nil {\n \t\t\treturn e\n \t\t}\n ....\n \t}\n \n \tif err != nil {\n \t\treturn err\n \t} ([#99062](https://github.com/kubernetes/kubernetes/pull/99062), [@syswu](https://github.com/syswu)) [SIG CLI]", - "author": "syswu", - "author_url": "https://github.com/syswu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99062", - "pr_number": 99062, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "do_not_publish": true - }, - "99063": { - "commit": "7e2e928f3920825f17096c959500f7b72dc51f8e", - "text": "NONE", - "markdown": "NONE ([#99063](https://github.com/kubernetes/kubernetes/pull/99063), [@ZxYuan](https://github.com/ZxYuan)) [SIG API Machinery]", - "author": "ZxYuan", - "author_url": "https://github.com/ZxYuan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99063", - "pr_number": 99063, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "99068": { - "commit": "ecd1d8aed3b489c21291cc995d96f7885e001134", - "text": "Unable read directory \"/root/bin\" from your PATH: open /root/bin: no such file or directory. Skipping...\nerror: unable to find any kubectl plugins in your PATH", - "markdown": "Unable read directory \"/root/bin\" from your PATH: open /root/bin: no such file or directory. Skipping...\n error: unable to find any kubectl plugins in your PATH ([#99068](https://github.com/kubernetes/kubernetes/pull/99068), [@syswu](https://github.com/syswu)) [SIG CLI]", - "author": "syswu", - "author_url": "https://github.com/syswu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99068", - "pr_number": 99068, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup", - "documentation" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "99115": { - "commit": "d1a2af554a281f22c14c7dbeaf824e478fc0c11c", - "text": "added `ephemeral_volume_controller_create[_failures]_total` counters to kube-controller-manager metrics", - "markdown": "Added `ephemeral_volume_controller_create[_failures]_total` counters to kube-controller-manager metrics ([#99115](https://github.com/kubernetes/kubernetes/pull/99115), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Cluster Lifecycle, Instrumentation and Storage]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/pohly/enhancements/blob/master/keps/sig-storage/1698-generic-ephemeral-volumes/README.md#monitoring-requirements", - "type": "external" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99115", - "pr_number": 99115, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "cluster-lifecycle", - "instrumentation", - "storage" - ], - "feature": true, - "duplicate": true - }, - "99122": { - "commit": "0f140bf1eeaf63c155f5eba1db8db9b5d52d5467", - "text": "When dynamically provisioning Azure File volumes for a premium account, the requested size will be set to 100GB if the request is initially lower than this value to accommodate Azure File requirements.", - "markdown": "When dynamically provisioning Azure File volumes for a premium account, the requested size will be set to 100GB if the request is initially lower than this value to accommodate Azure File requirements. ([#99122](https://github.com/kubernetes/kubernetes/pull/99122), [@huffmanca](https://github.com/huffmanca)) [SIG Cloud Provider and Storage]", - "author": "huffmanca", - "author_url": "https://github.com/huffmanca", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99122", - "pr_number": 99122, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "duplicate": true - }, - "99127": { - "commit": "9fb1aa92f2206c04ce77c0f9767e235f94d5f7ba", - "text": "Fixes spurious errors about IPv6 in `kube-proxy` logs on nodes with IPv6 disabled.", - "markdown": "Fixes spurious errors about IPv6 in `kube-proxy` logs on nodes with IPv6 disabled. ([#99127](https://github.com/kubernetes/kubernetes/pull/99127), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99127", - "pr_number": 99127, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true - }, - "99130": { - "commit": "267e47f548ae2adedad2a78032f0982f4c7031e6", - "text": "Newly provisioned PVs by EBS plugin will no longer use the deprecated \"failure-domain.beta.kubernetes.io/zone\" and \"failure-domain.beta.kubernetes.io/region\" labels. It will use \"topology.kubernetes.io/zone\" and \"topology.kubernetes.io/region\" labels instead.", - "markdown": "Newly provisioned PVs by EBS plugin will no longer use the deprecated \"failure-domain.beta.kubernetes.io/zone\" and \"failure-domain.beta.kubernetes.io/region\" labels. It will use \"topology.kubernetes.io/zone\" and \"topology.kubernetes.io/region\" labels instead. ([#99130](https://github.com/kubernetes/kubernetes/pull/99130), [@ayberk](https://github.com/ayberk)) [SIG Cloud Provider, Storage and Testing]", - "author": "ayberk", - "author_url": "https://github.com/ayberk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99130", - "pr_number": 99130, - "areas": [ - "cloudprovider", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage", - "testing" - ], - "duplicate": true, - "action_required": true - }, - "99158": { - "commit": "739a72b9cce70666ef0512de188f39a2ce57cf3e", - "text": "Sysctls graduates to General Availability and thus unconditionally enabled.", - "markdown": "Sysctls graduates to General Availability and thus unconditionally enabled. ([#99158](https://github.com/kubernetes/kubernetes/pull/99158), [@wgahnagl](https://github.com/wgahnagl))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/34-sysctl-fields#graduation", - "type": "KEP" - } - ], - "author": "wgahnagl", - "author_url": "https://github.com/wgahnagl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99158", - "pr_number": 99158, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "99163": { - "commit": "2e055dac58c28e746cbc6031244348ec50ab9721", - "text": "The `controller.kubernetes.io/pod-deletion-cost` annotation can be set to offer a hint on the cost of deleting a `Pod` compared to other pods belonging to the same ReplicaSet. Pods with lower deletion cost are deleted first. This is an alpha feature.", - "markdown": "The `controller.kubernetes.io/pod-deletion-cost` annotation can be set to offer a hint on the cost of deleting a `Pod` compared to other pods belonging to the same ReplicaSet. Pods with lower deletion cost are deleted first. This is an alpha feature. ([#99163](https://github.com/kubernetes/kubernetes/pull/99163), [@ahg-g](https://github.com/ahg-g))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2255-pod-cost", - "type": "KEP" - } - ], - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99163", - "pr_number": 99163, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "duplicate_kind": true - }, - "99174": { - "commit": "54691ed806a0cd3e65a962b76a41ebe08a443639", - "text": "╰─kubernetes\u003e stress -p 12 ./reconciler.test -test.run \"Test_UncertainVolumeMountState\" \n5s: 0 runs so far, 0 failures \n10s: 0 runs so far, 0 failures \n15s: 12 runs so far, 0 failures \n20s: 12 runs so far, 0 failures \n25s: 24 runs so far, 0 failures \n30s: 24 runs so far, 0 failures \n35s: 36 runs so far, 0 failures \n40s: 36 runs so far, 0 failures \n45s: 48 runs so far, 0 failures \n50s: 48 runs so far, 0 failures \n55s: 60 runs so far, 0 failures \n1m0s: 60 runs so far, 0 failures \n1m5s: 72 runs so far, 0 failures \n1m10s: 72 runs so far, 0 failures \n1m15s: 84 runs so far, 0 failures \n1m20s: 84 runs so far, 0 failures", - "markdown": "Â\ufffd\ufffd─kubernetes\u003e stress -p 12 ./reconciler.test -test.run \"Test_UncertainVolumeMountState\" \n 5s: 0 runs so far, 0 failures \n 10s: 0 runs so far, 0 failures \n 15s: 12 runs so far, 0 failures \n 20s: 12 runs so far, 0 failures \n 25s: 24 runs so far, 0 failures \n 30s: 24 runs so far, 0 failures \n 35s: 36 runs so far, 0 failures \n 40s: 36 runs so far, 0 failures \n 45s: 48 runs so far, 0 failures \n 50s: 48 runs so far, 0 failures \n 55s: 60 runs so far, 0 failures \n 1m0s: 60 runs so far, 0 failures \n 1m5s: 72 runs so far, 0 failures \n 1m10s: 72 runs so far, 0 failures \n 1m15s: 84 runs so far, 0 failures \n 1m20s: 84 runs so far, 0 failures ([#99174](https://github.com/kubernetes/kubernetes/pull/99174), [@gnufied](https://github.com/gnufied)) [SIG Node and Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99174", - "pr_number": 99174, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "storage" - ], - "duplicate": true, - "do_not_publish": true - }, - "99194": { - "commit": "d475352bcbb82a45c01ad5557e81ecfde0b4f583", - "text": "kubeadm: perform pre-flight validation on host/node name upon `kubeadm init` and `kubeadm join`, showing warnings on non-compliant names", - "markdown": "Kubeadm: perform pre-flight validation on host/node name upon `kubeadm init` and `kubeadm join`, showing warnings on non-compliant names ([#99194](https://github.com/kubernetes/kubernetes/pull/99194), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99194", - "pr_number": 99194, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "99212": { - "commit": "bf448a1eaa0660b65a232f76804d9a4e87d9fe60", - "text": "When downscaling ReplicaSets, ready and creation timestamps are compared in a logarithmic scale.", - "markdown": "When downscaling ReplicaSets, ready and creation timestamps are compared in a logarithmic scale. ([#99212](https://github.com/kubernetes/kubernetes/pull/99212), [@damemi](https://github.com/damemi)) [SIG Apps and Testing]", - "author": "damemi", - "author_url": "https://github.com/damemi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99212", - "pr_number": 99212, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "99213": { - "commit": "4fefc856db7787c0c6d8775941f9d3e71d7353da", - "text": "The NodeAffinity plugin implements the PreFilter extension, offering enhanced performance for Filter.", - "markdown": "The NodeAffinity plugin implements the PreFilter extension, offering enhanced performance for Filter. ([#99213](https://github.com/kubernetes/kubernetes/pull/99213), [@AliceZhang2016](https://github.com/AliceZhang2016)) [SIG Scheduling]", - "author": "AliceZhang2016", - "author_url": "https://github.com/AliceZhang2016", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99213", - "pr_number": 99213, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "99217": { - "commit": "51919050fe8431591e5d36fdbf261bca401b4658", - "text": "Metrics can now be disabled explicitly via a command line flag (i.e. '--disabled-metrics=metric1,metric2')", - "markdown": "Metrics can now be disabled explicitly via a command line flag (i.e. '--disabled-metrics=metric1,metric2') ([#99217](https://github.com/kubernetes/kubernetes/pull/99217), [@logicalhan](https://github.com/logicalhan))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1209-metrics-stability", - "type": "KEP" - } - ], - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99217", - "pr_number": 99217, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "99221": { - "commit": "4b6e3e164f5ba2b7f07063bfa62db5ceb7596413", - "text": "Pod Log stats for windows now reports metrics", - "markdown": "Pod Log stats for windows now reports metrics ([#99221](https://github.com/kubernetes/kubernetes/pull/99221), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node, Storage, Testing and Windows]", - "author": "jsturtevant", - "author_url": "https://github.com/jsturtevant", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99221", - "pr_number": 99221, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "storage", - "testing", - "windows" - ], - "duplicate": true - }, - "99229": { - "commit": "4cc1127e9251fff364d5c77e2a9a9c3ad42383ab", - "text": "#### before\n=== RUN TestAttachDetach\n attacher_test.go:139: Test \"Attach_Positive\" succeeded\nE0219 15:45:08.058933 7036 attacher.go:86] Error attaching volume \"disk\" to node \"instance\": Fake attach error\n attacher_test.go:139: Test \"Attach_Negative\" succeeded\n attacher_test.go:139: Test \"Detach_Positive\" succeeded\nE0219 15:45:08.080894 7036 attacher.go:282] Error detaching volumeID \"disk\": Fake detach error\n attacher_test.go:139: Test \"Detach_Negative\" succeeded\n--- PASS: TestAttachDetach (0.02s)\nPASS", - "markdown": "#### before\n === RUN TestAttachDetach\n attacher_test.go:139: Test \"Attach_Positive\" succeeded\n E0219 15:45:08.058933 7036 attacher.go:86] Error attaching volume \"disk\" to node \"instance\": Fake attach error\n attacher_test.go:139: Test \"Attach_Negative\" succeeded\n attacher_test.go:139: Test \"Detach_Positive\" succeeded\n E0219 15:45:08.080894 7036 attacher.go:282] Error detaching volumeID \"disk\": Fake detach error\n attacher_test.go:139: Test \"Detach_Negative\" succeeded\n --- PASS: TestAttachDetach (0.02s)\n PASS ([#99229](https://github.com/kubernetes/kubernetes/pull/99229), [@tanjing2020](https://github.com/tanjing2020)) [SIG Storage]", - "author": "tanjing2020", - "author_url": "https://github.com/tanjing2020", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99229", - "pr_number": 99229, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ], - "do_not_publish": true - }, - "99236": { - "commit": "ec1b6ce53affeabe86b8977a2aa26e532d0b5af5", - "text": "Removes cAdvisor JSON metrics (/stats/container, /stats/\u003cpodname\u003e/\u003ccontainername\u003e, /stats/\u003cnamespace\u003e/\u003cpodname\u003e/\u003cpoduid\u003e/\u003ccontainername\u003e) from the kubelet.", - "markdown": "Removes cAdvisor JSON metrics (/stats/container, /stats/\u003cpodname\u003e/\u003ccontainername\u003e, /stats/\u003cnamespace\u003e/\u003cpodname\u003e/\u003cpoduid\u003e/\u003ccontainername\u003e) from the kubelet. ([#99236](https://github.com/kubernetes/kubernetes/pull/99236), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2129-remove-cadvisor-json-metrics", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99236", - "pr_number": 99236, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true - }, - "99242": { - "commit": "b6e4c1c71a9af6bb459361244e10e62285c04db4", - "text": "Added support for installing `arm64` node artifacts.", - "markdown": "Added support for installing `arm64` node artifacts. ([#99242](https://github.com/kubernetes/kubernetes/pull/99242), [@liu-cong](https://github.com/liu-cong))", - "author": "liu-cong", - "author_url": "https://github.com/liu-cong", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99242", - "pr_number": 99242, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "99246": { - "commit": "57ff7d2994817d9807246b72e5160626b1e73de3", - "text": "NONE", - "markdown": "NONE ([#99246](https://github.com/kubernetes/kubernetes/pull/99246), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", - "author": "tanjing2020", - "author_url": "https://github.com/tanjing2020", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99246", - "pr_number": 99246, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "99275": { - "commit": "4bf85032f3c391ff710390c41996642cd4134c40", - "text": "IngressClass resource can now reference a resource in a specific namespace \nfor implementation-specific configuration (previously only Cluster-level resources were allowed). \nThis feature can be enabled using the IngressClassNamespacedParams feature gate.", - "markdown": "IngressClass resource can now reference a resource in a specific namespace \n for implementation-specific configuration (previously only Cluster-level resources were allowed). \n This feature can be enabled using the IngressClassNamespacedParams feature gate. ([#99275](https://github.com/kubernetes/kubernetes/pull/99275), [@hbagdi](https://github.com/hbagdi))", - "author": "hbagdi", - "author_url": "https://github.com/hbagdi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99275", - "pr_number": 99275, - "areas": [ - "kubectl" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "cli", - "network" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99284": { - "commit": "dcb3c56957a981c1c6966da72163bfd7dfab1758", - "text": "Enables Kubelet to check volume condition and log events to corresponding pods.", - "markdown": "Enables Kubelet to check volume condition and log events to corresponding pods. ([#99284](https://github.com/kubernetes/kubernetes/pull/99284), [@fengzixu](https://github.com/fengzixu)) [SIG Apps, Instrumentation, Node and Storage]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2286", - "type": "KEP" - } - ], - "author": "fengzixu", - "author_url": "https://github.com/fengzixu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99284", - "pr_number": 99284, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "instrumentation", - "node", - "storage" - ], - "feature": true, - "duplicate": true - }, - "99290": { - "commit": "046ad61479df0bfde00a25dff9d49c8025fa4f06", - "text": "The PodDisruptionBudget API has been promoted to policy/v1 with no schema changes. The only functional change is that an empty selector (`{}`) written to a policy/v1 PodDisruptionBudget now selects all pods in the namespace. The behavior of the policy/v1beta1 API remains unchanged. The policy/v1beta1 PodDisruptionBudget API is deprecated and will no longer be served in 1.25+.", - "markdown": "The PodDisruptionBudget API has been promoted to policy/v1 with no schema changes. The only functional change is that an empty selector (`{}`) written to a policy/v1 PodDisruptionBudget now selects all pods in the namespace. The behavior of the policy/v1beta1 API remains unchanged. The policy/v1beta1 PodDisruptionBudget API is deprecated and will no longer be served in 1.25+. ([#99290](https://github.com/kubernetes/kubernetes/pull/99290), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/85-Graduate-PDB-to-Stable", - "type": "KEP" - } - ], - "author": "mortent", - "author_url": "https://github.com/mortent", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99290", - "pr_number": 99290, - "areas": [ - "apiserver", - "cloudprovider", - "dependency", - "e2e-test-framework", - "kubectl", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "autoscaling", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99294": { - "commit": "1ddc4afcf87789b1646320bc9cd19d37a5def098", - "text": "kubeadm: IPv6DualStack feature gate graduates to Beta and enabled by default", - "markdown": "Kubeadm: IPv6DualStack feature gate graduates to Beta and enabled by default ([#99294](https://github.com/kubernetes/kubernetes/pull/99294), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99294", - "pr_number": 99294, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "99298": { - "commit": "d43ffff0079f49fc29e77bd7d0e1bdb7670a1341", - "text": "CSIServiceAccountToken graduates to Beta and enabled by default.", - "markdown": "CSIServiceAccountToken graduates to Beta and enabled by default. ([#99298](https://github.com/kubernetes/kubernetes/pull/99298), [@zshihang](https://github.com/zshihang))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1855-csi-driver-service-account-token", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99298", - "pr_number": 99298, - "areas": [ - "test" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "auth", - "storage", - "testing" - ], - "duplicate": true - }, - "99315": { - "commit": "1c6335d668cea44a611dfdbcf5cc43c8ac5ced39", - "text": "Fixed bug that caused cAdvisor to incorrectly detect single-socket multi-NUMA topology.", - "markdown": "Fixed bug that caused cAdvisor to incorrectly detect single-socket multi-NUMA topology. ([#99315](https://github.com/kubernetes/kubernetes/pull/99315), [@iwankgb](https://github.com/iwankgb)) [SIG Node]", - "author": "iwankgb", - "author_url": "https://github.com/iwankgb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99315", - "pr_number": 99315, - "areas": [ - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "99341": { - "commit": "94d5019369858851db5759748483f32f1986d56e", - "text": "Adds two new metrics to cronjobs, a histogram to track the time difference when a job is created and the expected time when it should be created, as well as a gauge for the missed schedules of a cronjob", - "markdown": "Adds two new metrics to cronjobs, a histogram to track the time difference when a job is created and the expected time when it should be created, as well as a gauge for the missed schedules of a cronjob ([#99341](https://github.com/kubernetes/kubernetes/pull/99341), [@alaypatel07](https://github.com/alaypatel07))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-apps/19-Graduate-CronJob-to-Stable/README.md", - "type": "KEP" - } - ], - "author": "alaypatel07", - "author_url": "https://github.com/alaypatel07", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99341", - "pr_number": 99341, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "99345": { - "commit": "ee90db514c10cbbf7642db9aad7a204087d48475", - "text": "EndpointSlice controller is now less likely to emit FailedToUpdateEndpointSlices events.", - "markdown": "EndpointSlice controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#99345](https://github.com/kubernetes/kubernetes/pull/99345), [@robscott](https://github.com/robscott)) [SIG Apps and Network]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99345", - "pr_number": 99345, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true, - "duplicate_kind": true - }, - "99361": { - "commit": "930bede46ead9bef467c8b6c648f8be2364289e2", - "text": "Persistent Volumes formatted with the btrfs filesystem will now automatically resize when expanded.", - "markdown": "Persistent Volumes formatted with the btrfs filesystem will now automatically resize when expanded. ([#99361](https://github.com/kubernetes/kubernetes/pull/99361), [@Novex](https://github.com/Novex)) [SIG Storage]", - "author": "Novex", - "author_url": "https://github.com/Novex", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99361", - "pr_number": 99361, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true - }, - "99375": { - "commit": "faa5c8ccd4cb34c95d67b24bb35354a205ceee15", - "text": "Add Probe-level terminationGracePeriodSeconds field", - "markdown": "Add Probe-level terminationGracePeriodSeconds field ([#99375](https://github.com/kubernetes/kubernetes/pull/99375), [@ehashman](https://github.com/ehashman)) [SIG API Machinery, Apps, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2238-liveness-probe-grace-period", - "type": "KEP" - } - ], - "author": "ehashman", - "author_url": "https://github.com/ehashman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99375", - "pr_number": 99375, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "99385": { - "commit": "b7d146b62f111fcf60e7d44df2f48fd4e8c2ef91", - "text": "component owner can configure the allowlist of metric label with flag '--allow-metric-labels'.", - "markdown": "Component owner can configure the allowlist of metric label with flag '--allow-metric-labels'. ([#99385](https://github.com/kubernetes/kubernetes/pull/99385), [@YoyinZyc](https://github.com/YoyinZyc)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Release]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/2305-metrics-cardinality-enforcement", - "type": "KEP" - } - ], - "author": "YoyinZyc", - "author_url": "https://github.com/YoyinZyc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99385", - "pr_number": 99385, - "areas": [ - "apiserver", - "cloudprovider", - "dependency", - "kubectl", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "release" - ], - "feature": true, - "duplicate": true - }, - "99389": { - "commit": "2b3f97b08fb33b552d9e2c51991c6fe4b5e57127", - "text": "NONE", - "markdown": "NONE ([#99389](https://github.com/kubernetes/kubernetes/pull/99389), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", - "author": "tanjing2020", - "author_url": "https://github.com/tanjing2020", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99389", - "pr_number": 99389, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "99393": { - "commit": "a517eccd9f990c3f08eb0580312e08121808b79a", - "text": "When the kubelet is watching a ConfigMap or Secret purely in the context of setting environment variables\nfor containers, only hold that watch for a defined duration before cancelling it. This change reduces the CPU\nand memory usage of the kube-apiserver in large clusters.", - "markdown": "When the kubelet is watching a ConfigMap or Secret purely in the context of setting environment variables\n for containers, only hold that watch for a defined duration before cancelling it. This change reduces the CPU\n and memory usage of the kube-apiserver in large clusters. ([#99393](https://github.com/kubernetes/kubernetes/pull/99393), [@chenyw1990](https://github.com/chenyw1990)) [SIG API Machinery, Node and Testing]", - "author": "chenyw1990", - "author_url": "https://github.com/chenyw1990", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99393", - "pr_number": 99393, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "99411": { - "commit": "05988d76177a1161b5ff67e366e73a3f1d2063c9", - "text": "kube-scheduler now logs plugin scoring summaries at --v=4", - "markdown": "Kube-scheduler now logs plugin scoring summaries at --v=4 ([#99411](https://github.com/kubernetes/kubernetes/pull/99411), [@damemi](https://github.com/damemi)) [SIG Scheduling]", - "author": "damemi", - "author_url": "https://github.com/damemi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99411", - "pr_number": 99411, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "99423": { - "commit": "06a4b6f3421b11a3df4653e07bcee8b2cfcc1b12", - "text": "Promote CronJobs to batch/v1", - "markdown": "Promote CronJobs to batch/v1 ([#99423](https://github.com/kubernetes/kubernetes/pull/99423), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps, CLI and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/19-Graduate-CronJob-to-Stable", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99423", - "pr_number": 99423, - "areas": [ - "kubectl", - "test", - "workload-api/cronjob" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99446": { - "commit": "a238698ea08ba2ba72416e4398691e705929c3ab", - "text": "kube-apiserver: an update of a pod with a generic ephemeral volume dropped that volume if the feature had been disabled since creating the pod with such a volume", - "markdown": "Kube-apiserver: an update of a pod with a generic ephemeral volume dropped that volume if the feature had been disabled since creating the pod with such a volume ([#99446](https://github.com/kubernetes/kubernetes/pull/99446), [@pohly](https://github.com/pohly)) [SIG Apps, Node and Storage]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/1698-generic-ephemeral-volumes/README.md", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99446", - "pr_number": 99446, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "node", - "storage" - ], - "duplicate": true - }, - "99471": { - "commit": "504b86ced771d44dccbd305bab30d4ba2ee4615e", - "text": "kubeadm: during \"init\" an empty cgroupDriver value in the KubeletConfiguration is now always set to \"systemd\" unless the user is explicit about it. This requires existing machine setups to configure the container runtime to use the \"systemd\" driver. Documentation on this topic can be found here: https://kubernetes.io/docs/setup/production-environment/container-runtimes/. When upgrading existing clusters / nodes using \"kubeadm upgrade\" the old cgroupDriver value is preserved, but in 1.22 this change will also apply to \"upgrade\". For more information on migrating to the \"systemd\" driver or remaining on the \"cgroupfs\" driver see: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/.", - "markdown": "Kubeadm: during \"init\" an empty cgroupDriver value in the KubeletConfiguration is now always set to \"systemd\" unless the user is explicit about it. This requires existing machine setups to configure the container runtime to use the \"systemd\" driver. Documentation on this topic can be found here: https://kubernetes.io/docs/setup/production-environment/container-runtimes/. When upgrading existing clusters / nodes using \"kubeadm upgrade\" the old cgroupDriver value is preserved, but in 1.22 this change will also apply to \"upgrade\". For more information on migrating to the \"systemd\" driver or remaining on the \"cgroupfs\" driver see: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/. ([#99471](https://github.com/kubernetes/kubernetes/pull/99471), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99471", - "pr_number": 99471, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "action_required": true - }, - "99476": { - "commit": "3abeb174c4d2e6ce95f6f5d51f82f91d28cccd03", - "text": "kubeadm: if the user has customized their image repository via the kubeadm configuration, pass the custom pause image repository and tag to the kubelet via --pod-infra-container-image not only for Docker but for all container runtimes. This flag tells the kubelet that it should not garbage collect the image.", - "markdown": "Kubeadm: if the user has customized their image repository via the kubeadm configuration, pass the custom pause image repository and tag to the kubelet via --pod-infra-container-image not only for Docker but for all container runtimes. This flag tells the kubelet that it should not garbage collect the image. ([#99476](https://github.com/kubernetes/kubernetes/pull/99476), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99476", - "pr_number": 99476, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "99514": { - "commit": "9fa33ada4b4194c62b4361680048fcb5569f8556", - "text": "Fix bug that would let the Horizontal Pod Autoscaler scale down despite at least one metric being unavailable/invalid", - "markdown": "Fix bug that would let the Horizontal Pod Autoscaler scale down despite at least one metric being unavailable/invalid ([#99514](https://github.com/kubernetes/kubernetes/pull/99514), [@mikkeloscar](https://github.com/mikkeloscar)) [SIG Apps and Autoscaling]", - "author": "mikkeloscar", - "author_url": "https://github.com/mikkeloscar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99514", - "pr_number": 99514, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps", - "autoscaling" - ], - "duplicate": true, - "duplicate_kind": true - }, - "99522": { - "commit": "207c75c6f7f25b1661e2063b7db6fc1a10bb58aa", - "text": "Topology Aware Hints are now available in alpha and can be enabled with the `TopologyAwareHints` feature gate.", - "markdown": "Topology Aware Hints are now available in alpha and can be enabled with the `TopologyAwareHints` feature gate. ([#99522](https://github.com/kubernetes/kubernetes/pull/99522), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps, Auth, Instrumentation, Network and Testing]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99522", - "pr_number": 99522, - "areas": [ - "apiserver", - "ipvs", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "instrumentation", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99538": { - "commit": "793390e13be91d79150b57abad5710477ab96bd7", - "text": "Resolves spurious `Failed to list *v1.Secret` or `Failed to list *v1.ConfigMap` messages in kubelet logs.", - "markdown": "Resolves spurious `Failed to list *v1.Secret` or `Failed to list *v1.ConfigMap` messages in kubelet logs. ([#99538](https://github.com/kubernetes/kubernetes/pull/99538), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99538", - "pr_number": 99538, - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "node" - ], - "duplicate": true - }, - "99550": { - "commit": "716a0547206a71ecc6e53f8b970728bc85063a60", - "text": "fix PermissionDenied issue on SMB mount for Windows", - "markdown": "Fix PermissionDenied issue on SMB mount for Windows ([#99550](https://github.com/kubernetes/kubernetes/pull/99550), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99550", - "pr_number": 99550, - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage", - "windows" - ], - "duplicate": true - }, - "99555": { - "commit": "4013bd17c328d0f419a9915e8e25178febb2be62", - "text": "On single-stack configured (IPv4 or IPv6, but not both) clusters, Services which are both headless (no clusterIP) and selectorless (empty or undefined selector) will report `ipFamilyPolicy RequireDualStack` and will have entries in `ipFamilies[]` for both IPv4 and IPv6. This is a change from alpha, but does not have any impact on the manually-specified Endpoints and EndpointSlices for the Service.", - "markdown": "On single-stack configured (IPv4 or IPv6, but not both) clusters, Services which are both headless (no clusterIP) and selectorless (empty or undefined selector) will report `ipFamilyPolicy RequireDualStack` and will have entries in `ipFamilies[]` for both IPv4 and IPv6. This is a change from alpha, but does not have any impact on the manually-specified Endpoints and EndpointSlices for the Service. ([#99555](https://github.com/kubernetes/kubernetes/pull/99555), [@thockin](https://github.com/thockin)) [SIG Apps and Network]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99555", - "pr_number": 99555, - "areas": [ - "apiserver", - "ipv6" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true - }, - "99561": { - "commit": "5498ee641b3459a0da1d4b2d42d502a318194189", - "text": "Remove support for building Kubernetes with bazel.", - "markdown": "Remove support for building Kubernetes with bazel. ([#99561](https://github.com/kubernetes/kubernetes/pull/99561), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2420", - "type": "KEP" - } - ], - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99561", - "pr_number": 99561, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "conformance", - "dependency", - "e2e-test-framework", - "ipvs", - "kubeadm", - "kubectl", - "kubelet", - "provider/gcp", - "release-eng", - "test" - ], - "kinds": [ - "api-change", - "cleanup", - "flake" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "autoscaling", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "release", - "scalability", - "scheduling", - "storage", - "testing", - "windows" - ], - "duplicate": true, - "duplicate_kind": true - }, - "99574": { - "commit": "445cb0609d2cffbfea4bd67a50f90f3655704ad1", - "text": "kubeadm: a warning to user as ipv6 site-local is deprecated", - "markdown": "Kubeadm: a warning to user as ipv6 site-local is deprecated ([#99574](https://github.com/kubernetes/kubernetes/pull/99574), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle and Network]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99574", - "pr_number": 99574, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle", - "network" - ], - "feature": true, - "duplicate": true - }, - "99581": { - "commit": "0121c51d81d7905448a925980ceb996dbaa2b318", - "text": "Users might specify the `kubectl.kubernetes.io/default-container` annotation in a Pod to preselect container for kubectl commands.", - "markdown": "Users might specify the `kubectl.kubernetes.io/default-container` annotation in a Pod to preselect container for kubectl commands. ([#99581](https://github.com/kubernetes/kubernetes/pull/99581), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG CLI]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99581", - "pr_number": 99581, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "99585": { - "commit": "40d8aed6f3e45e15ae64ccbd45273e4a18233551", - "text": "Return zero time (midnight on Jan. 1, 1970) instead of negative number when reporting startedAt and finishedAt of the not started or a running Pod when using `dockershim` as a runtime.", - "markdown": "Return zero time (midnight on Jan. 1, 1970) instead of negative number when reporting startedAt and finishedAt of the not started or a running Pod when using `dockershim` as a runtime. ([#99585](https://github.com/kubernetes/kubernetes/pull/99585), [@Iceber](https://github.com/Iceber))", - "author": "Iceber", - "author_url": "https://github.com/Iceber", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99585", - "pr_number": 99585, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "99595": { - "commit": "763514f43825e1b72cabcfce35c541e4b37f9892", - "text": "GCE L4 Loadbalancers now handle \u003e 5 ports in service spec correctly.", - "markdown": "GCE L4 Loadbalancers now handle \u003e 5 ports in service spec correctly. ([#99595](https://github.com/kubernetes/kubernetes/pull/99595), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider]", - "author": "prameshj", - "author_url": "https://github.com/prameshj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99595", - "pr_number": 99595, - "areas": [ - "cloudprovider" - ], - "sigs": [ - "cloud-provider" - ] - }, - "99600": { - "commit": "03ae13a3b69eafb93c04c1786b9bdae22b63b81b", - "text": "ResourceQuota of an entity now inclusively calculate Pod overhead", - "markdown": "ResourceQuota of an entity now inclusively calculate Pod overhead ([#99600](https://github.com/kubernetes/kubernetes/pull/99600), [@gjkim42](https://github.com/gjkim42))", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99600", - "pr_number": 99600, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "node" - ], - "duplicate": true - }, - "99610": { - "commit": "3022b3981709007977e052bc6c3c44ee715a1679", - "text": "The DownwardAPIHugePages feature is beta. Users may use the feature if all workers in their cluster are min 1.20 version. The feature will be enabled by default in all installations in 1.22.", - "markdown": "The DownwardAPIHugePages feature is beta. Users may use the feature if all workers in their cluster are min 1.20 version. The feature will be enabled by default in all installations in 1.22. ([#99610](https://github.com/kubernetes/kubernetes/pull/99610), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2053-downward-api-hugepages", - "type": "KEP" - } - ], - "author": "derekwaynecarr", - "author_url": "https://github.com/derekwaynecarr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99610", - "pr_number": 99610, - "sigs": [ - "node" - ] - }, - "99613": { - "commit": "0849d1bea1e1c8910bda6db9d804945d361a2bc4", - "text": "Fixed a bug that causes smaller number of conntrack-max being used under CPU static policy. (#99225, @xh4n3)", - "markdown": "Fixed a bug that causes smaller number of conntrack-max being used under CPU static policy. (#99225, @xh4n3) ([#99613](https://github.com/kubernetes/kubernetes/pull/99613), [@xh4n3](https://github.com/xh4n3)) [SIG Network]", - "author": "xh4n3", - "author_url": "https://github.com/xh4n3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99613", - "pr_number": 99613, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "99641": { - "commit": "14c25eed8d07acdfaf882674f58fd2aa4cc7afe6", - "text": "storage capacity tracking (= the CSIStorageCapacity feature) graduates to Beta and enabled by default, storage.k8s.io/v1alpha1/VolumeAttachment and storage.k8s.io/v1alpha1/CSIStorageCapacity objects are deprecated", - "markdown": "Storage capacity tracking (= the CSIStorageCapacity feature) graduates to Beta and enabled by default, storage.k8s.io/v1alpha1/VolumeAttachment and storage.k8s.io/v1alpha1/CSIStorageCapacity objects are deprecated ([#99641](https://github.com/kubernetes/kubernetes/pull/99641), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1472-storage-capacity-tracking", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/storage/storage-capacity/", - "type": "official" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99641", - "pr_number": 99641, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99643": { - "commit": "410d092d8a13cc78ee9044e0aad194abbba1952b", - "text": "Generic ephemeral volumes are beta.", - "markdown": "Generic ephemeral volumes are beta. ([#99643](https://github.com/kubernetes/kubernetes/pull/99643), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Node, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes", - "type": "official" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99643", - "pr_number": 99643, - "areas": [ - "kubectl", - "kubelet", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cli", - "node", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99646": { - "commit": "a6bfc7d7a9640bf5b423dc6139b75181c984837a", - "text": "kubeadm: the deprecated kube-dns is no longer supported as an option. If \"ClusterConfiguration.dns.type\" is set to \"kube-dns\" kubeadm will now throw an error.", - "markdown": "Kubeadm: the deprecated kube-dns is no longer supported as an option. If \"ClusterConfiguration.dns.type\" is set to \"kube-dns\" kubeadm will now throw an error. ([#99646](https://github.com/kubernetes/kubernetes/pull/99646), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle]", - "author": "rajansandeep", - "author_url": "https://github.com/rajansandeep", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99646", - "pr_number": 99646, - "areas": [ - "dependency", - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "99651": { - "commit": "eb4dafb7f1e059a8a4eaf008937afcd4f12deaea", - "text": "CRIContainerLogRotation graduates to GA and unconditionally enabled.", - "markdown": "CRIContainerLogRotation graduates to GA and unconditionally enabled. ([#99651](https://github.com/kubernetes/kubernetes/pull/99651), [@umohnani8](https://github.com/umohnani8))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2411-cri-container-log-rotation", - "type": "KEP" - } - ], - "author": "umohnani8", - "author_url": "https://github.com/umohnani8", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99651", - "pr_number": 99651, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "99653": { - "commit": "70d732c7e70741cd5c79335cf1ece522763a4a9e", - "text": "kube-proxy iptables: new metric sync_proxy_rules_iptables_total that exposes the number of rules programmed per table in each iteration", - "markdown": "Kube-proxy iptables: new metric sync_proxy_rules_iptables_total that exposes the number of rules programmed per table in each iteration ([#99653](https://github.com/kubernetes/kubernetes/pull/99653), [@aojea](https://github.com/aojea)) [SIG Instrumentation and Network]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99653", - "pr_number": 99653, - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "network" - ], - "feature": true, - "duplicate": true - }, - "99654": { - "commit": "e2eb9f000528556cc7af2a3db4259a60b61a3f6f", - "text": "client-go exec credential plugins will pass stdin only when interactive terminal is detected on stdin. This fixes a bug where previously it was checking if **stdout** is an interactive terminal.", - "markdown": "Client-go exec credential plugins will pass stdin only when interactive terminal is detected on stdin. This fixes a bug where previously it was checking if **stdout** is an interactive terminal. ([#99654](https://github.com/kubernetes/kubernetes/pull/99654), [@ankeesler](https://github.com/ankeesler))", - "author": "ankeesler", - "author_url": "https://github.com/ankeesler", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99654", - "pr_number": 99654, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true - }, - "99658": { - "commit": "f25f071af1847d7fceedc96f57fb0a6ddd4df497", - "text": "featuregate AllowInsecureBackendProxy graduates to GA and unconditionally enabled.", - "markdown": "Featuregate AllowInsecureBackendProxy graduates to GA and unconditionally enabled. ([#99658](https://github.com/kubernetes/kubernetes/pull/99658), [@deads2k](https://github.com/deads2k))", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99658", - "pr_number": 99658, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "99661": { - "commit": "b7d23d711108805cd0dd15b1e208b30c6c3e9eec", - "text": "FieldManager no longer owns fields that get reset before the object is persisted (e.g. \"status wiping\").", - "markdown": "FieldManager no longer owns fields that get reset before the object is persisted (e.g. \"status wiping\"). ([#99661](https://github.com/kubernetes/kubernetes/pull/99661), [@kevindelgado](https://github.com/kevindelgado)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/1123", - "type": "KEP" - } - ], - "author": "kevindelgado", - "author_url": "https://github.com/kevindelgado", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99661", - "pr_number": 99661, - "areas": [ - "apiserver", - "dependency", - "test" - ], - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "99662": { - "commit": "36244f31ef78dd3dd6bfbb74e1b15b4d01edcd6c", - "text": "The `EndpointSlice` API is now GA. The `EndpointSlice` topology field has been removed from the GA API and will be replaced by a new per Endpoint Zone field. If the topology field was previously used, it will be converted into an annotation in the v1 Resource. The `discovery.k8s.io/v1alpha1` API is removed.", - "markdown": "The `EndpointSlice` API is now GA. The `EndpointSlice` topology field has been removed from the GA API and will be replaced by a new per Endpoint Zone field. If the topology field was previously used, it will be converted into an annotation in the v1 Resource. The `discovery.k8s.io/v1alpha1` API is removed. ([#99662](https://github.com/kubernetes/kubernetes/pull/99662), [@swetharepakula](https://github.com/swetharepakula))", - "author": "swetharepakula", - "author_url": "https://github.com/swetharepakula", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99662", - "pr_number": 99662, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99671": { - "commit": "17395678c4fa261046810a1df43ac2dd2117857f", - "text": "=== RUN TestCreateFromConfig\n=== RUN TestCreateFromConfig/policy_with_unspecified_predicates_or_priorities_uses_default\n=== RUN TestCreateFromConfig/policy_with_arguments\n=== RUN TestCreateFromConfig/policy_with_HardPodAffinitySymmetricWeight_argument\n=== RUN TestCreateFromConfig/policy_with_illegal_arguments\nE0303 11:28:37.788222 10956 legacy_registry.go:636] \"Invalid configuration\" err=\"priority type not found\" policy={Name:RequestedToCapacityRatioPriority Weight:2 Argument:\u003cnil\u003e}\nE0303 11:28:37.803846 10956 factory.go:249] \"Get priority policy failed\" err=\"priority type not found\" priority={Name:RequestedToCapacityRatioPriority Weight:2 Argument:\u003cnil\u003e} args=\u0026{Weight:0 NodeLabelArgs:\u003cnil\u003e RequestedToCapacityRatioArgs:\u003cnil\u003e ServiceAffinityArgs:\u0026TypeMeta{Kind:,APIVersion:,} NodeResourcesFitArgs:\u003cnil\u003e InterPodAffinityArgs:\u003cnil\u003e}\n--- PASS: TestCreateFromConfig (0.02s)\n --- PASS: TestCreateFromConfig/policy_with_unspecified_predicates_or_priorities_uses_default (0.00s)\n --- PASS: TestCreateFromConfig/policy_with_arguments (0.00s)\n --- PASS: TestCreateFromConfig/policy_with_HardPodAffinitySymmetricWeight_argument (0.00s)\n --- PASS: TestCreateFromConfig/policy_with_illegal_arguments (0.02s)\nPASS\nok \tk8s.io/kubernetes/pkg/scheduler\t0.119s", - "markdown": "=== RUN TestCreateFromConfig\n === RUN TestCreateFromConfig/policy_with_unspecified_predicates_or_priorities_uses_default\n === RUN TestCreateFromConfig/policy_with_arguments\n === RUN TestCreateFromConfig/policy_with_HardPodAffinitySymmetricWeight_argument\n === RUN TestCreateFromConfig/policy_with_illegal_arguments\n E0303 11:28:37.788222 10956 legacy_registry.go:636] \"Invalid configuration\" err=\"priority type not found\" policy={Name:RequestedToCapacityRatioPriority Weight:2 Argument:\u003cnil\u003e}\n E0303 11:28:37.803846 10956 factory.go:249] \"Get priority policy failed\" err=\"priority type not found\" priority={Name:RequestedToCapacityRatioPriority Weight:2 Argument:\u003cnil\u003e} args=\u0026{Weight:0 NodeLabelArgs:\u003cnil\u003e RequestedToCapacityRatioArgs:\u003cnil\u003e ServiceAffinityArgs:\u0026TypeMeta{Kind:,APIVersion:,} NodeResourcesFitArgs:\u003cnil\u003e InterPodAffinityArgs:\u003cnil\u003e}\n --- PASS: TestCreateFromConfig (0.02s)\n --- PASS: TestCreateFromConfig/policy_with_unspecified_predicates_or_priorities_uses_default (0.00s)\n --- PASS: TestCreateFromConfig/policy_with_arguments (0.00s)\n --- PASS: TestCreateFromConfig/policy_with_HardPodAffinitySymmetricWeight_argument (0.00s)\n --- PASS: TestCreateFromConfig/policy_with_illegal_arguments (0.02s)\n PASS\n ok \tk8s.io/kubernetes/pkg/scheduler\t0.119s ([#99671](https://github.com/kubernetes/kubernetes/pull/99671), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", - "author": "tanjing2020", - "author_url": "https://github.com/tanjing2020", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99671", - "pr_number": 99671, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "99719": { - "commit": "cdd80af120a219c21ace00280f0cb06517dc0b18", - "text": "Newly provisioned PVs by OpenStack Cinder plugin will no longer use the deprecated \"failure-domain.beta.kubernetes.io/zone\" and \"failure-domain.beta.kubernetes.io/region\" labels. It will use \"topology.kubernetes.io/zone\" and \"topology.kubernetes.io/region\" labels instead.", - "markdown": "Newly provisioned PVs by OpenStack Cinder plugin will no longer use the deprecated \"failure-domain.beta.kubernetes.io/zone\" and \"failure-domain.beta.kubernetes.io/region\" labels. It will use \"topology.kubernetes.io/zone\" and \"topology.kubernetes.io/region\" labels instead. ([#99719](https://github.com/kubernetes/kubernetes/pull/99719), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider and Storage]", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99719", - "pr_number": 99719, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "99732": { - "commit": "f8151b121f3f4d4a44f471a727c00f8a709836e9", - "text": "Remove deprecated `--generator, --replicas, --service-generator, --service-overrides, --schedule` from `kubectl run`\nDeprecate `--serviceaccount, --hostport, --requests, --limits` in `kubectl run`", - "markdown": "Remove deprecated `--generator, --replicas, --service-generator, --service-overrides, --schedule` from `kubectl run`\n Deprecate `--serviceaccount, --hostport, --requests, --limits` in `kubectl run` ([#99732](https://github.com/kubernetes/kubernetes/pull/99732), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99732", - "pr_number": 99732, - "areas": [ - "kubectl", - "test" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "99735": { - "commit": "7125496e66e29a999ed6cfba5af6e5e0947bb36b", - "text": "Kubelet Graceful Node Shutdown feature graduates to Beta and enabled by default.", - "markdown": "Kubelet Graceful Node Shutdown feature graduates to Beta and enabled by default. ([#99735](https://github.com/kubernetes/kubernetes/pull/99735), [@bobbypage](https://github.com/bobbypage))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2000-graceful-node-shutdown/README.md", - "type": "KEP" - } - ], - "author": "bobbypage", - "author_url": "https://github.com/bobbypage", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99735", - "pr_number": 99735, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true - }, - "99738": { - "commit": "f63cac6cdfce51a674af07be53a85ad628edf819", - "text": "component owner can configure the allowlist of metric label with flag '--allow-metric-labels'.", - "markdown": "Component owner can configure the allowlist of metric label with flag '--allow-metric-labels'. ([#99738](https://github.com/kubernetes/kubernetes/pull/99738), [@YoyinZyc](https://github.com/YoyinZyc)) [SIG API Machinery, Cluster Lifecycle and Instrumentation]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/2305-metrics-cardinality-enforcement", - "type": "KEP" - } - ], - "author": "YoyinZyc", - "author_url": "https://github.com/YoyinZyc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99738", - "pr_number": 99738, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "99746": { - "commit": "cc4bd511bbb27c5b90c01c0fc99a6005d7ac8a15", - "text": "EndpointSliceNodeName graduates to GA and thus will be unconditionally enabled -- NodeName will always be available in the v1beta1 API.", - "markdown": "EndpointSliceNodeName graduates to GA and thus will be unconditionally enabled -- NodeName will always be available in the v1beta1 API. ([#99746](https://github.com/kubernetes/kubernetes/pull/99746), [@swetharepakula](https://github.com/swetharepakula))", - "author": "swetharepakula", - "author_url": "https://github.com/swetharepakula", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99746", - "pr_number": 99746, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "network" - ], - "feature": true, - "duplicate": true - }, - "99749": { - "commit": "96be00df69390ed41b8ec22facc43bcbb9c88aae", - "text": "upgrade node local dns to 1.17.0 for better IPv6 support", - "markdown": "Upgrade node local dns to 1.17.0 for better IPv6 support ([#99749](https://github.com/kubernetes/kubernetes/pull/99749), [@pacoxu](https://github.com/pacoxu)) [SIG Cloud Provider and Network]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99749", - "pr_number": 99749, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "network" - ], - "feature": true, - "duplicate": true - }, - "99750": { - "commit": "76f2a4d5fd8364edbb31a3611178c918644f415c", - "text": "EndpointSlice generation is now incremented when labels change.", - "markdown": "EndpointSlice generation is now incremented when labels change. ([#99750](https://github.com/kubernetes/kubernetes/pull/99750), [@robscott](https://github.com/robscott)) [SIG Network]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99750", - "pr_number": 99750, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "99756": { - "commit": "fde28141e679b5b16eaff23d5efbbcc202692358", - "text": "EndpointSliceMirroring controller is now less likely to emit FailedToUpdateEndpointSlices events.", - "markdown": "EndpointSliceMirroring controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#99756](https://github.com/kubernetes/kubernetes/pull/99756), [@robscott](https://github.com/robscott)) [SIG Apps and Network]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99756", - "pr_number": 99756, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true, - "duplicate_kind": true - }, - "99785": { - "commit": "afca3dace4a242e8e638552a41903a3351603128", - "text": "Rename metrics `etcd_object_counts` to `apiserver_storage_object_counts` and mark it as stable. The original `etcd_object_counts` metrics name is marked as \"Deprecated\" and will be removed in the future.", - "markdown": "Rename metrics `etcd_object_counts` to `apiserver_storage_object_counts` and mark it as stable. The original `etcd_object_counts` metrics name is marked as \"Deprecated\" and will be removed in the future. ([#99785](https://github.com/kubernetes/kubernetes/pull/99785), [@erain](https://github.com/erain)) [SIG API Machinery, Instrumentation and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1209-metrics-stability", - "type": "KEP" - } - ], - "author": "erain", - "author_url": "https://github.com/erain", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99785", - "pr_number": 99785, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "feature", - "deprecation" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "99788": { - "commit": "ffa4e3414ef53a2e64fade41ad7f72866db090cb", - "text": "The `apiserver_request_total` metric is promoted to stable status and no longer has a content-type dimensions, so any alerts/charts which presume the existence of this will fail. This is however, unlikely to be the case since it was effectively an unbounded dimension in the first place.", - "markdown": "The `apiserver_request_total` metric is promoted to stable status and no longer has a content-type dimensions, so any alerts/charts which presume the existence of this will fail. This is however, unlikely to be the case since it was effectively an unbounded dimension in the first place. ([#99788](https://github.com/kubernetes/kubernetes/pull/99788), [@logicalhan](https://github.com/logicalhan))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1209-metrics-stability", - "type": "KEP" - } - ], - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99788", - "pr_number": 99788, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "99794": { - "commit": "68f48693c17e12765666479e75a8663e3e467507", - "text": "WindowsEndpointSliceProxying feature gate has graduated to beta and is enabled by default. This means kube-proxy will read from EndpointSlices instead of Endpoints on Windows by default.", - "markdown": "WindowsEndpointSliceProxying feature gate has graduated to beta and is enabled by default. This means kube-proxy will read from EndpointSlices instead of Endpoints on Windows by default. ([#99794](https://github.com/kubernetes/kubernetes/pull/99794), [@robscott](https://github.com/robscott)) [SIG Network]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99794", - "pr_number": 99794, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "99795": { - "commit": "d11582b44be76e7936538cc96c2a01fdaae8904b", - "text": "The maximum number of ports allowed in EndpointSlices has been increased from 100 to 20,000", - "markdown": "The maximum number of ports allowed in EndpointSlices has been increased from 100 to 20,000 ([#99795](https://github.com/kubernetes/kubernetes/pull/99795), [@robscott](https://github.com/robscott)) [SIG Network]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99795", - "pr_number": 99795, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "99825": { - "commit": "20bc36c34dbd4916392b929239b5a30d44f131cd", - "text": "Ensure only one LoadBalancer rule is created when HA mode is enabled", - "markdown": "Ensure only one LoadBalancer rule is created when HA mode is enabled ([#99825](https://github.com/kubernetes/kubernetes/pull/99825), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider]", - "author": "feiskyer", - "author_url": "https://github.com/feiskyer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99825", - "pr_number": 99825, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "99833": { - "commit": "9132f871532d5ae5325a64a4f91090d54b81c43d", - "text": "kubectl: a Pod can be preselected as default container using `kubectl.kubernetes.io/default-container` annotation", - "markdown": "Kubectl: a Pod can be preselected as default container using `kubectl.kubernetes.io/default-container` annotation ([#99833](https://github.com/kubernetes/kubernetes/pull/99833), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99833", - "pr_number": 99833, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "99835": { - "commit": "027d9e6c25a1776bbda78aefab1c39102ac0815d", - "text": "`VolumeBindingArgs` now allow `BindTimeoutSeconds` to be set as zero, while the value zero indicates no waiting for the checking of volume binding operation.", - "markdown": "`VolumeBindingArgs` now allow `BindTimeoutSeconds` to be set as zero, while the value zero indicates no waiting for the checking of volume binding operation. ([#99835](https://github.com/kubernetes/kubernetes/pull/99835), [@chendave](https://github.com/chendave)) [SIG Scheduling and Storage]", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99835", - "pr_number": 99835, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "scheduling", - "storage" - ], - "duplicate": true, - "duplicate_kind": true - }, - "99870": { - "commit": "d6a9061cb43ab98054f0f455115d87e1b20f7971", - "text": "The EndpointSlice Controllers are now GA. The `EndpointSliceController` will not populate the `deprecatedTopology` field and will only provide topology information through the `zone` and `nodeName` fields.", - "markdown": "The EndpointSlice Controllers are now GA. The `EndpointSliceController` will not populate the `deprecatedTopology` field and will only provide topology information through the `zone` and `nodeName` fields. ([#99870](https://github.com/kubernetes/kubernetes/pull/99870), [@swetharepakula](https://github.com/swetharepakula))", - "author": "swetharepakula", - "author_url": "https://github.com/swetharepakula", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99870", - "pr_number": 99870, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99925": { - "commit": "72d92159bc11ce0bca5475461f72da842d0dbb9f", - "text": "apiserver_request_duration_seconds is promoted to stable status.", - "markdown": "Apiserver_request_duration_seconds is promoted to stable status. ([#99925](https://github.com/kubernetes/kubernetes/pull/99925), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Instrumentation and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1209-metrics-stability", - "type": "KEP" - } - ], - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99925", - "pr_number": 99925, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "99944": { - "commit": "067ab92d9dc75828c6ad4dda6373fe93d4bc656a", - "text": "Fixed authentication_duration_seconds metric scope. Previously, it included whole apiserver request duration which yields inaccurate results.", - "markdown": "Fixed authentication_duration_seconds metric scope. Previously, it included whole apiserver request duration which yields inaccurate results. ([#99944](https://github.com/kubernetes/kubernetes/pull/99944), [@marseel](https://github.com/marseel))", - "author": "marseel", - "author_url": "https://github.com/marseel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99944", - "pr_number": 99944, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "scalability" - ], - "duplicate": true, - "duplicate_kind": true - }, - "99975": { - "commit": "05c4febbe7fea6579ee7013deef50873471352e5", - "text": "The Endpoints controller will now set the `endpoints.kubernetes.io/over-capacity` annotation to \"warning\" when an Endpoints resource contains more than 1000 addresses. In a future release, the controller will truncate Endpoints that exceed this limit. The EndpointSlice API can be used to support significantly larger number of addresses.", - "markdown": "The Endpoints controller will now set the `endpoints.kubernetes.io/over-capacity` annotation to \"warning\" when an Endpoints resource contains more than 1000 addresses. In a future release, the controller will truncate Endpoints that exceed this limit. The EndpointSlice API can be used to support significantly larger number of addresses. ([#99975](https://github.com/kubernetes/kubernetes/pull/99975), [@robscott](https://github.com/robscott)) [SIG Apps and Network]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99975", - "pr_number": 99975, - "kinds": [ - "api-change", - "cleanup", - "feature" - ], - "sigs": [ - "apps", - "network" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - } +{ + "100054": { + "commit": "9c4ffa7e11bb2d0beb25ef1cac6e0699acfc350a", + "text": "Improve speed of vSphere PV provisioning and reduce number of API calls", + "markdown": "Improve speed of vSphere PV provisioning and reduce number of API calls ([#100054](https://github.com/kubernetes/kubernetes/pull/100054), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100054", + "pr_number": 100054, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "duplicate": true + }, + "100082": { + "commit": "019c89218119ef37bf755e3717c431f4cb9469a4", + "text": "`apiserver_storage_objects` (a newer version of `etcd_object_counts`) is promoted and marked as stable.", + "markdown": "`apiserver_storage_objects` (a newer version of `etcd_object_counts`) is promoted and marked as stable. ([#100082](https://github.com/kubernetes/kubernetes/pull/100082), [@logicalhan](https://github.com/logicalhan))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1209-metrics-stability", + "type": "KEP" + } + ], + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100082", + "pr_number": 100082, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "100103": { + "commit": "e2cdf0e3f7f16c84fea9c1962b2a33a66ad53792", + "text": "EndpointSlice controllers are less likely to create duplicate EndpointSlices.", + "markdown": "EndpointSlice controllers are less likely to create duplicate EndpointSlices. ([#100103](https://github.com/kubernetes/kubernetes/pull/100103), [@robscott](https://github.com/robscott)) [SIG Apps and Network]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100103", + "pr_number": 100103, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true + }, + "100106": { + "commit": "3baa0358b9051c636c5e79c16db5929ded89e517", + "text": "Kubernetes is now built with Golang 1.16.1", + "markdown": "Kubernetes is now built with Golang 1.16.1 ([#100106](https://github.com/kubernetes/kubernetes/pull/100106), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing]", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100106", + "pr_number": 100106, + "areas": [ + "dependency", + "provider/gcp", + "release-eng", + "security", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "instrumentation", + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "100196": { + "commit": "e082d845759ca6883d1e6d5b9a551016c0b6f5e0", + "text": "kubelet: completed support for structured logging", + "markdown": "Kubelet: completed support for structured logging ([#100196](https://github.com/kubernetes/kubernetes/pull/100196), [@ehashman](https://github.com/ehashman))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1602", + "type": "KEP" + } + ], + "author": "ehashman", + "author_url": "https://github.com/ehashman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100196", + "pr_number": 100196, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "instrumentation", + "node" + ], + "duplicate": true, + "do_not_publish": true + }, + "100319": { + "commit": "2f8a2258f45b409481cd66be7d34a5b482db3899", + "text": "EmptyDir memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value.", + "markdown": "EmptyDir memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value. ([#100319](https://github.com/kubernetes/kubernetes/pull/100319), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2345", + "type": "KEP" + } + ], + "author": "derekwaynecarr", + "author_url": "https://github.com/derekwaynecarr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100319", + "pr_number": 100319, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "100472": { + "commit": "16610bbb2fcc662e1bdb9bcc633ce1f880de26e3", + "text": "`discovery.k8s.io/v1beta1` EndpointSlices are deprecated in favor of `discovery.k8s.io/v1`, and will no longer be served in Kubernetes v1.25.", + "markdown": "`discovery.k8s.io/v1beta1` EndpointSlices are deprecated in favor of `discovery.k8s.io/v1`, and will no longer be served in Kubernetes v1.25. ([#100472](https://github.com/kubernetes/kubernetes/pull/100472), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100472", + "pr_number": 100472, + "kinds": [ + "api-change", + "cleanup", + "deprecation" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "100505": { + "commit": "e71e284b7436c5904da461d72993b2988b451d2f", + "text": "kubectl: Fixed panic when describing an ingress backend without an API Group", + "markdown": "Kubectl: Fixed panic when describing an ingress backend without an API Group ([#100505](https://github.com/kubernetes/kubernetes/pull/100505), [@lauchokyip](https://github.com/lauchokyip)) [SIG CLI]", + "author": "lauchokyip", + "author_url": "https://github.com/lauchokyip", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100505", + "pr_number": 100505, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "100563": { + "commit": "01f7495b65585a7190ad1018125dad318de8301f", + "text": "Reverts breaking change to inline AzureFile volumes; referenced secrets are now searched for in the same namespace as the pod as in previous releases.", + "markdown": "Reverts breaking change to inline AzureFile volumes; referenced secrets are now searched for in the same namespace as the pod as in previous releases. ([#100563](https://github.com/kubernetes/kubernetes/pull/100563), [@msau42](https://github.com/msau42))", + "author": "msau42", + "author_url": "https://github.com/msau42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100563", + "pr_number": 100563, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "storage" + ], + "duplicate_kind": true + }, + "100571": { + "commit": "9af6f70f8f05479c96efcb23c77447e15fb69eed", + "text": "Explicitly pass `KUBE_BUILD_CONFORMANCE=y` in `package-tarballs` to reenable building the conformance tarballs.", + "markdown": "Explicitly pass `KUBE_BUILD_CONFORMANCE=y` in `package-tarballs` to reenable building the conformance tarballs. ([#100571](https://github.com/kubernetes/kubernetes/pull/100571), [@puerco](https://github.com/puerco))", + "author": "puerco", + "author_url": "https://github.com/puerco", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100571", + "pr_number": 100571, + "kinds": [ + "bug" + ], + "sigs": [ + "release" + ] + }, + "83730": { + "commit": "55f255208a682df65f322e5d48e8e9607eb221fc", + "text": "When using `Containerd` on Windows, the `C:\\Windows\\System32\\drivers\\etc\\hosts` file will now be managed by kubelet.", + "markdown": "When using `Containerd` on Windows, the `C:\\Windows\\System32\\drivers\\etc\\hosts` file will now be managed by kubelet. ([#83730](https://github.com/kubernetes/kubernetes/pull/83730), [@claudiubelu](https://github.com/claudiubelu))", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/83730", + "pr_number": 83730, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true + }, + "87461": { + "commit": "61dc69ac2cf936ccafb51e9d946097b62b4ead07", + "text": "The calculation of pod UIDs for static pods has changed to ensure each static pod gets a unique value - this will cause all static pod containers to be recreated/restarted if an in-place kubelet upgrade from 1.20 to 1.21 is performed. Note that draining pods before upgrading the kubelet across minor versions is the supported upgrade path.", + "markdown": "The calculation of pod UIDs for static pods has changed to ensure each static pod gets a unique value - this will cause all static pod containers to be recreated/restarted if an in-place kubelet upgrade from 1.20 to 1.21 is performed. Note that draining pods before upgrading the kubelet across minor versions is the supported upgrade path. ([#87461](https://github.com/kubernetes/kubernetes/pull/87461), [@bboreham](https://github.com/bboreham)) [SIG Node]", + "author": "bboreham", + "author_url": "https://github.com/bboreham", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/87461", + "pr_number": 87461, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "92866": { + "commit": "8096513aca94b3e1f7e05defadf1659a15bc623e", + "text": "Scheduler extender filter interface now can report unresolvable failed nodes in the new field `FailedAndUnresolvableNodes` of `ExtenderFilterResult` struct. Nodes in this map will be skipped in the preemption phase.", + "markdown": "Scheduler extender filter interface now can report unresolvable failed nodes in the new field `FailedAndUnresolvableNodes` of `ExtenderFilterResult` struct. Nodes in this map will be skipped in the preemption phase. ([#92866](https://github.com/kubernetes/kubernetes/pull/92866), [@cofyc](https://github.com/cofyc)) [SIG Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/1850", + "type": "KEP" + } + ], + "author": "cofyc", + "author_url": "https://github.com/cofyc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92866", + "pr_number": 92866, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "duplicate_kind": true + }, + "92938": { + "commit": "5e22f7feadeb97aa8fad9330c936104479ad56d6", + "text": "kube-proxy's IPVS proxy mode no longer sets the net.ipv4.conf.all.route_localnet sysctl parameter. Nodes upgrading will have net.ipv4.conf.all.route_localnet set to 1 but new nodes will inherit the system default (usually 0). If you relied on any behavior requiring net.ipv4.conf.all.route_localnet, you must set ensure it is enabled as kube-proxy will no longer set it automatically. This change helps to further mitigate CVE-2020-8558.", + "markdown": "Kube-proxy's IPVS proxy mode no longer sets the net.ipv4.conf.all.route_localnet sysctl parameter. Nodes upgrading will have net.ipv4.conf.all.route_localnet set to 1 but new nodes will inherit the system default (usually 0). If you relied on any behavior requiring net.ipv4.conf.all.route_localnet, you must set ensure it is enabled as kube-proxy will no longer set it automatically. This change helps to further mitigate CVE-2020-8558. ([#92938](https://github.com/kubernetes/kubernetes/pull/92938), [@lbernail](https://github.com/lbernail)) [SIG Network and Release]", + "author": "lbernail", + "author_url": "https://github.com/lbernail", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92938", + "pr_number": 92938, + "areas": [ + "ipvs", + "release-eng" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "release" + ], + "duplicate": true, + "action_required": true + }, + "93179": { + "commit": "21d3c73f543d3c15fb5dafc8ba496250595cda5d", + "text": "Overall, enable the feature of `PreferNominatedNode` will improve the performance of scheduling where preemption might frequently happen, but in theory, enable the feature of `PreferNominatedNode`, the pod might not be scheduled to the best candidate node in the cluster.", + "markdown": "Overall, enable the feature of `PreferNominatedNode` will improve the performance of scheduling where preemption might frequently happen, but in theory, enable the feature of `PreferNominatedNode`, the pod might not be scheduled to the best candidate node in the cluster. ([#93179](https://github.com/kubernetes/kubernetes/pull/93179), [@chendave](https://github.com/chendave)) [SIG Scheduling and Testing]", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93179", + "pr_number": 93179, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true + }, + "93285": { + "commit": "e20300b1a06265eb65dd88a8bf18f1eb931df8f2", + "text": "Port the devicemanager to Windows node to allow device plugins like directx", + "markdown": "Port the devicemanager to Windows node to allow device plugins like directx ([#93285](https://github.com/kubernetes/kubernetes/pull/93285), [@aarnaud](https://github.com/aarnaud)) [SIG Node, Testing and Windows]", + "author": "aarnaud", + "author_url": "https://github.com/aarnaud", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93285", + "pr_number": 93285, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing", + "windows" + ], + "feature": true, + "duplicate": true + }, + "93510": { + "commit": "0b4a30bb25cfcf7c0895361dea2a3d465c75bd0e", + "text": "Specifying the KUBE_TEST_REPO environment variable when e2e tests are executed will instruct the test infrastructure to load that image from a location within the specified repo, using a predefined pattern.", + "markdown": "Specifying the KUBE_TEST_REPO environment variable when e2e tests are executed will instruct the test infrastructure to load that image from a location within the specified repo, using a predefined pattern. ([#93510](https://github.com/kubernetes/kubernetes/pull/93510), [@smarterclayton](https://github.com/smarterclayton)) [SIG Testing]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93510", + "pr_number": 93510, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "testing" + ] + }, + "93861": { + "commit": "7f083d339f9d4e104cc31e671626c74fd3c83611", + "text": "Add --permit-address-sharing flag to `kube-apiserver` to listen with `SO_REUSEADDR`. While allowing to listen on wildcard IPs like 0.0.0.0 and specific IPs in parallel, it avoids waiting for the kernel to release socket in `TIME_WAIT` state, and hence, considerably reducing `kube-apiserver` restart times under certain conditions.", + "markdown": "Add --permit-address-sharing flag to `kube-apiserver` to listen with `SO_REUSEADDR`. While allowing to listen on wildcard IPs like 0.0.0.0 and specific IPs in parallel, it avoids waiting for the kernel to release socket in `TIME_WAIT` state, and hence, considerably reducing `kube-apiserver` restart times under certain conditions. ([#93861](https://github.com/kubernetes/kubernetes/pull/93861), [@sttts](https://github.com/sttts))", + "author": "sttts", + "author_url": "https://github.com/sttts", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93861", + "pr_number": 93861, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "94641": { + "commit": "4d752791315e61fe1bedcdfba81c38045bff209f", + "text": "The `RunAsGroup` feature has been promoted to GA in this release.", + "markdown": "The `RunAsGroup` feature has been promoted to GA in this release. ([#94641](https://github.com/kubernetes/kubernetes/pull/94641), [@krmayankk](https://github.com/krmayankk)) [SIG Auth and Node]", + "author": "krmayankk", + "author_url": "https://github.com/krmayankk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94641", + "pr_number": 94641, + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "node" + ], + "feature": true, + "duplicate": true + }, + "94858": { + "commit": "f11c3b475d852ec8b6075fb2899a795f52d1be8f", + "text": "Ensure empty string annotations are copied over in rollbacks.", + "markdown": "Ensure empty string annotations are copied over in rollbacks. ([#94858](https://github.com/kubernetes/kubernetes/pull/94858), [@waynepeking348](https://github.com/waynepeking348))", + "author": "waynepeking348", + "author_url": "https://github.com/waynepeking348", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94858", + "pr_number": 94858, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "95111": { + "commit": "889cf714c17163e2a787db9c474652514a18d52f", + "text": "Resolve a \"concurrent map read and map write\" crashing error in the kubelet", + "markdown": "Resolve a \"concurrent map read and map write\" crashing error in the kubelet ([#95111](https://github.com/kubernetes/kubernetes/pull/95111), [@choury](https://github.com/choury)) [SIG Node]", + "author": "choury", + "author_url": "https://github.com/choury", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95111", + "pr_number": 95111, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "95269": { + "commit": "e40cba59e32529595a138fe92c54da5aa3edd73e", + "text": "fix the panic when kubelet registers if a node object already exists with no Status.Capacity or Status.Allocatable", + "markdown": "Fix the panic when kubelet registers if a node object already exists with no Status.Capacity or Status.Allocatable ([#95269](https://github.com/kubernetes/kubernetes/pull/95269), [@SataQiu](https://github.com/SataQiu)) [SIG Node]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95269", + "pr_number": 95269, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "95301": { + "commit": "55626cf2c6c5bea38380b7abc9f2771100cb2579", + "text": "Kubelet now cleans up orphaned volume directories automatically", + "markdown": "Kubelet now cleans up orphaned volume directories automatically ([#95301](https://github.com/kubernetes/kubernetes/pull/95301), [@lorenz](https://github.com/lorenz)) [SIG Node and Storage]", + "author": "lorenz", + "author_url": "https://github.com/lorenz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95301", + "pr_number": 95301, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "storage" + ], + "duplicate": true + }, + "95664": { + "commit": "9d99dbc357ed85bcc963fc4bab8a4a3089c910b2", + "text": "Ensure that client-go's EventBroadcaster is safe (non-racy) during shutdown.", + "markdown": "Ensure that client-go's EventBroadcaster is safe (non-racy) during shutdown. ([#95664](https://github.com/kubernetes/kubernetes/pull/95664), [@DirectXMan12](https://github.com/DirectXMan12)) [SIG API Machinery]", + "author": "DirectXMan12", + "author_url": "https://github.com/DirectXMan12", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95664", + "pr_number": 95664, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "95667": { + "commit": "7aca4978500d2da5053197f9ddac782fa9c233f4", + "text": "The BoundServiceAccountTokenVolume feature has been promoted to beta, and enabled by default.\n- This changes the tokens provided to containers at `/var/run/secrets/kubernetes.io/serviceaccount/token` to be time-limited, auto-refreshed, and invalidated when the containing pod is deleted.\n- Clients should reload the token from disk periodically (once per minute is recommended) to ensure they continue to use a valid token. `k8s.io/client-go` version v11.0.0+ and v0.15.0+ reload tokens automatically.\n- By default, injected tokens are given an extended lifetime so they remain valid even after a new refreshed token is provided. The metric `serviceaccount_stale_tokens_total` can be used to monitor for workloads that are depending on the extended lifetime and are continuing to use tokens even after a refreshed token is provided to the container. If that metric indicates no existing workloads are depending on extended lifetimes, injected token lifetime can be shortened to 1 hour by starting `kube-apiserver` with `--service-account-extend-token-expiration=false`.", + "markdown": "The BoundServiceAccountTokenVolume feature has been promoted to beta, and enabled by default.\n - This changes the tokens provided to containers at `/var/run/secrets/kubernetes.io/serviceaccount/token` to be time-limited, auto-refreshed, and invalidated when the containing pod is deleted.\n - Clients should reload the token from disk periodically (once per minute is recommended) to ensure they continue to use a valid token. `k8s.io/client-go` version v11.0.0+ and v0.15.0+ reload tokens automatically.\n - By default, injected tokens are given an extended lifetime so they remain valid even after a new refreshed token is provided. The metric `serviceaccount_stale_tokens_total` can be used to monitor for workloads that are depending on the extended lifetime and are continuing to use tokens even after a refreshed token is provided to the container. If that metric indicates no existing workloads are depending on extended lifetimes, injected token lifetime can be shortened to 1 hour by starting `kube-apiserver` with `--service-account-extend-token-expiration=false`. ([#95667](https://github.com/kubernetes/kubernetes/pull/95667), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Cluster Lifecycle and Testing]", + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95667", + "pr_number": 95667, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cluster-lifecycle", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "95734": { + "commit": "770a9504ea3fe38a75c51f036187b5dea124ebab", + "text": "Implement the GetAvailableResources in the podresources API.", + "markdown": "Implement the GetAvailableResources in the podresources API. ([#95734](https://github.com/kubernetes/kubernetes/pull/95734), [@fromanirh](https://github.com/fromanirh)) [SIG Instrumentation, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2043-pod-resource-concrete-assigments", + "type": "KEP" + } + ], + "author": "fromanirh", + "author_url": "https://github.com/fromanirh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95734", + "pr_number": 95734, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "instrumentation", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "95783": { + "commit": "ae6ceaa78d6891f97589a0ffcf405f45c2caae79", + "text": "Fixed a race condition on API server startup ensuring previously created webhook configurations are effective before the first write request is admitted.", + "markdown": "Fixed a race condition on API server startup ensuring previously created webhook configurations are effective before the first write request is admitted. ([#95783](https://github.com/kubernetes/kubernetes/pull/95783), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery]", + "author": "roycaihw", + "author_url": "https://github.com/roycaihw", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95783", + "pr_number": 95783, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "95790": { + "commit": "403d0cdc286bae4c8e75cb4b7b3af12abe7764da", + "text": "The apimachinery util/net function used to detect the bind address `ResolveBindAddress()` takes into consideration global IP addresses on loopback interfaces when 1) the host has default routes, or 2) there are no global IPs on those interfaces in order to support more complex network scenarios like BGP Unnumbered RFC 5549", + "markdown": "The apimachinery util/net function used to detect the bind address `ResolveBindAddress()` takes into consideration global IP addresses on loopback interfaces when 1) the host has default routes, or 2) there are no global IPs on those interfaces in order to support more complex network scenarios like BGP Unnumbered RFC 5549 ([#95790](https://github.com/kubernetes/kubernetes/pull/95790), [@aojea](https://github.com/aojea)) [SIG Network]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95790", + "pr_number": 95790, + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "duplicate_kind": true + }, + "96021": { + "commit": "f5fb1c93dbaa512eb66090c5027435d3dee95ac7", + "text": "All data is no longer automatically deleted when a failure is detected during creation of the volume data file on a CSI volume. Now only the data file and volume path is removed.", + "markdown": "All data is no longer automatically deleted when a failure is detected during creation of the volume data file on a CSI volume. Now only the data file and volume path is removed. ([#96021](https://github.com/kubernetes/kubernetes/pull/96021), [@huffmanca](https://github.com/huffmanca))", + "author": "huffmanca", + "author_url": "https://github.com/huffmanca", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96021", + "pr_number": 96021, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "96293": { + "commit": "d3fce91fdc581f94496f0c4417207f9d2745e02b", + "text": "Azure file migration graduates to beta, with CSIMigrationAzureFile flag off by default\nas it requires installation of AzureFile CSI Driver. Users should enable CSIMigration and\nCSIMigrationAzureFile features and install the [AzureFile CSI Driver](https://github.com/kubernetes-sigs/azurefile-csi-driver)\nto avoid disruption to existing Pod and PVC objects at that time. Azure File CSI driver does not support using same persistent\nvolume with different fsgroups. When CSI migration is enabled for azurefile driver, such case is not supported.\n(there is a case we support where volume is mounted with 0777 and then it readable/writable by everyone)", + "markdown": "Azure file migration graduates to beta, with CSIMigrationAzureFile flag off by default\n as it requires installation of AzureFile CSI Driver. Users should enable CSIMigration and\n CSIMigrationAzureFile features and install the [AzureFile CSI Driver](https://github.com/kubernetes-sigs/azurefile-csi-driver)\n to avoid disruption to existing Pod and PVC objects at that time. Azure File CSI driver does not support using same persistent\n volume with different fsgroups. When CSI migration is enabled for azurefile driver, such case is not supported.\n (there is a case we support where volume is mounted with 0777 and then it readable/writable by everyone) ([#96293](https://github.com/kubernetes/kubernetes/pull/96293), [@andyzhangx](https://github.com/andyzhangx))", + "documentation": [ + { + "description": "The in-tree AzureFile plugin \"kubernetes.io/azure-file\" is now deprecated and will be removed in 1.23. Users should enable CSIMigration + CSIMigrationAzureFile features and install the AzureFile CSI Driver (", + "url": "https://github.com/kubernetes-sigs/azurefile-csi-driver) to avoid disruption to existing Pod and PVC objects at that time.", + "type": "external" + } + ], + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96293", + "pr_number": 96293, + "areas": [ + "provider/azure" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cloud-provider" + ] + }, + "96296": { + "commit": "9d81c4ebfa93d41f9770f223288e6f9310b9a3f0", + "text": "kube-proxy: Traffic from the cluster directed to ExternalIPs is always sent directly to the Service.", + "markdown": "Kube-proxy: Traffic from the cluster directed to ExternalIPs is always sent directly to the Service. ([#96296](https://github.com/kubernetes/kubernetes/pull/96296), [@aojea](https://github.com/aojea)) [SIG Network and Testing]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96296", + "pr_number": 96296, + "areas": [ + "e2e-test-framework", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true + }, + "96347": { + "commit": "ed6b9addbf71cf0f5256aeba0b83b53db53d895c", + "text": "Adds alpha feature `VolumeCapacityPriority` which makes the scheduler prioritize nodes based on the best matching size of statically provisioned PVs across multiple topologies.", + "markdown": "Adds alpha feature `VolumeCapacityPriority` which makes the scheduler prioritize nodes based on the best matching size of statically provisioned PVs across multiple topologies. ([#96347](https://github.com/kubernetes/kubernetes/pull/96347), [@cofyc](https://github.com/cofyc)) [SIG Apps, Network, Scheduling, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1845-prioritization-on-volume-capacity", + "type": "KEP" + } + ], + "author": "cofyc", + "author_url": "https://github.com/cofyc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96347", + "pr_number": 96347, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "network", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true + }, + "96378": { + "commit": "d664958e55c795eeaa94b6d2a9597ce6d5a85270", + "text": "kubeadm: amend the node kernel validation to treat CGROUP_PIDS, FAIR_GROUP_SCHED as required and CFS_BANDWIDTH, CGROUP_HUGETLB as optional", + "markdown": "Kubeadm: amend the node kernel validation to treat CGROUP_PIDS, FAIR_GROUP_SCHED as required and CFS_BANDWIDTH, CGROUP_HUGETLB as optional ([#96378](https://github.com/kubernetes/kubernetes/pull/96378), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96378", + "pr_number": 96378, + "areas": [ + "code-organization", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle", + "node" + ], + "feature": true, + "duplicate": true + }, + "96429": { + "commit": "80be1d6c7217b99fb6ff083a190b44af53a628fc", + "text": "Kubeadm now includes CoreDNS v1.8.0.", + "markdown": "Kubeadm now includes CoreDNS v1.8.0. ([#96429](https://github.com/kubernetes/kubernetes/pull/96429), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle]", + "author": "rajansandeep", + "author_url": "https://github.com/rajansandeep", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96429", + "pr_number": 96429, + "areas": [ + "dependency", + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "96441": { + "commit": "377ed3c2a638d38d46c1471a901903a7ced21561", + "text": "DaemonSets accept a MaxSurge integer or percent on their rolling update strategy that will launch the updated pod on nodes and wait for those pods to go ready before marking the old out-of-date pods as deleted. This allows workloads to avoid downtime during upgrades when deployed using DaemonSets. This feature is alpha and is behind the DaemonSetUpdateSurge feature gate.", + "markdown": "DaemonSets accept a MaxSurge integer or percent on their rolling update strategy that will launch the updated pod on nodes and wait for those pods to go ready before marking the old out-of-date pods as deleted. This allows workloads to avoid downtime during upgrades when deployed using DaemonSets. This feature is alpha and is behind the DaemonSetUpdateSurge feature gate. ([#96441](https://github.com/kubernetes/kubernetes/pull/96441), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/1591-daemonset-surge", + "type": "KEP" + } + ], + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96441", + "pr_number": 96441, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "96447": { + "commit": "bd4d197b5267ee198c1b0a070d7398f10df68c52", + "text": "Remove the deprecated metrics \"scheduling_algorithm_preemption_evaluation_seconds\" and \"binding_duration_seconds\", suggest to use \"scheduler_framework_extension_point_duration_seconds\" instead.", + "markdown": "Remove the deprecated metrics \"scheduling_algorithm_preemption_evaluation_seconds\" and \"binding_duration_seconds\", suggest to use \"scheduler_framework_extension_point_duration_seconds\" instead. ([#96447](https://github.com/kubernetes/kubernetes/pull/96447), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle, Instrumentation, Scheduling and Testing]", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96447", + "pr_number": 96447, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle", + "instrumentation", + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "96502": { + "commit": "33518271f3f97733a52369713769746f78cc4f1a", + "text": "Adds the ability to pass --strict-transport-security-directives to the kube-apiserver to set the HSTS header appropriately. Be sure you understand the consequences to browsers before setting this field.", + "markdown": "Adds the ability to pass --strict-transport-security-directives to the kube-apiserver to set the HSTS header appropriately. Be sure you understand the consequences to browsers before setting this field. ([#96502](https://github.com/kubernetes/kubernetes/pull/96502), [@249043822](https://github.com/249043822)) [SIG Auth]", + "author": "249043822", + "author_url": "https://github.com/249043822", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96502", + "pr_number": 96502, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true + }, + "96531": { + "commit": "197dbac376fa0fece31ec8b7052ccda161a79518", + "text": "The feature gates `WindowsGMSA` and `WindowsRunAsUserName` that are GA since v1.18 are now removed.", + "markdown": "The feature gates `WindowsGMSA` and `WindowsRunAsUserName` that are GA since v1.18 are now removed. ([#96531](https://github.com/kubernetes/kubernetes/pull/96531), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Node and Windows]", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96531", + "pr_number": 96531, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true + }, + "96539": { + "commit": "564ffbd400e50f37b892747c434ec55bde865134", + "text": "The `AttachVolumeLimit` feature gate (GA since v1.17) has been removed and now unconditionally enabled.", + "markdown": "The `AttachVolumeLimit` feature gate (GA since v1.17) has been removed and now unconditionally enabled. ([#96539](https://github.com/kubernetes/kubernetes/pull/96539), [@ialidzhikov](https://github.com/ialidzhikov))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/issues/554", + "type": "KEP" + } + ], + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96539", + "pr_number": 96539, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "96561": { + "commit": "07bd985724efcb8e2152541f59a6a9bf398fc8b3", + "text": "The `CSINodeInfo` feature gate that is GA since v1.17 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument.", + "markdown": "The `CSINodeInfo` feature gate that is GA since v1.17 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#96561](https://github.com/kubernetes/kubernetes/pull/96561), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Apps, Auth, Scheduling, Storage and Testing]", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96561", + "pr_number": 96561, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "auth", + "scheduling", + "storage", + "testing" + ], + "duplicate": true + }, + "96599": { + "commit": "125a5f10a6e3399301096c61346bdd5cc9a314e1", + "text": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:\nNONE\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:\n NONE\n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#96599](https://github.com/kubernetes/kubernetes/pull/96599), [@tanjing2020](https://github.com/tanjing2020)) [SIG Storage]", + "author": "tanjing2020", + "author_url": "https://github.com/tanjing2020", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96599", + "pr_number": 96599, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ], + "do_not_publish": true + }, + "96600": { + "commit": "2783f2f76ec57b9831b91e6c4b35d35cee4345e7", + "text": "One new field \"InternalTrafficPolicy\" in Service is added.\nIt specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only.\n\"Cluster\" routes internal traffic to a Service to all endpoints.\n\"Local\" routes traffic to node-local endpoints only, and traffic is dropped if no node-local endpoints are ready.\nThe default value is \"Cluster\".", + "markdown": "One new field \"InternalTrafficPolicy\" in Service is added.\n It specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only.\n \"Cluster\" routes internal traffic to a Service to all endpoints.\n \"Local\" routes traffic to node-local endpoints only, and traffic is dropped if no node-local endpoints are ready.\n The default value is \"Cluster\". ([#96600](https://github.com/kubernetes/kubernetes/pull/96600), [@maplain](https://github.com/maplain)) [SIG API Machinery, Apps and Network]", + "author": "maplain", + "author_url": "https://github.com/maplain", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96600", + "pr_number": 96600, + "areas": [ + "ipvs" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "network" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "96616": { + "commit": "a8ac0c98b93cb110ce6456adc9b5e9da611747c4", + "text": "Kubelet.exe on Windows now checks that the process running as administrator and the executing user account is listed in the built-in administrators group. This is the equivalent to checking the process is running as uid 0.", + "markdown": "Kubelet.exe on Windows now checks that the process running as administrator and the executing user account is listed in the built-in administrators group. This is the equivalent to checking the process is running as uid 0. ([#96616](https://github.com/kubernetes/kubernetes/pull/96616), [@perithompson](https://github.com/perithompson)) [SIG Node and Windows]", + "author": "perithompson", + "author_url": "https://github.com/perithompson", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96616", + "pr_number": 96616, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true + }, + "96617": { + "commit": "efb9489acb8602835aa7bd9299424415d9492ace", + "text": "Fix to recover CSI volumes from certain dangling attachments", + "markdown": "Fix to recover CSI volumes from certain dangling attachments ([#96617](https://github.com/kubernetes/kubernetes/pull/96617), [@yuga711](https://github.com/yuga711)) [SIG Apps and Storage]", + "author": "yuga711", + "author_url": "https://github.com/yuga711", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96617", + "pr_number": 96617, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "storage" + ], + "duplicate": true + }, + "96655": { + "commit": "a54414e3436fee9bf738cc975db1a55dbcee282c", + "text": "kubectl: Add `--use-protocol-buffers` flag to kubectl top pods and nodes.", + "markdown": "Kubectl: Add `--use-protocol-buffers` flag to kubectl top pods and nodes. ([#96655](https://github.com/kubernetes/kubernetes/pull/96655), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96655", + "pr_number": 96655, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "96668": { + "commit": "af212061870489bdc1e4e252de1d1c3ca884916f", + "text": "ignore update pod with no new images in alwaysPullImages admission controller", + "markdown": "Ignore update pod with no new images in alwaysPullImages admission controller ([#96668](https://github.com/kubernetes/kubernetes/pull/96668), [@pacoxu](https://github.com/pacoxu)) [SIG Apps, Auth and Node]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96668", + "pr_number": 96668, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "auth", + "node" + ], + "duplicate": true + }, + "96673": { + "commit": "31fd5671ae863ee3ac20e3ab3cc95d803faafeb7", + "text": "Fixed Cinder volume IDs on OpenStack Train", + "markdown": "Fixed Cinder volume IDs on OpenStack Train ([#96673](https://github.com/kubernetes/kubernetes/pull/96673), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider]", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96673", + "pr_number": 96673, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "96675": { + "commit": "0da0d186a66dd00b82ac35ce4d830e74f478db39", + "text": "Set kubelet option `--volume-stats-agg-period` to negative value to disable volume calculations.", + "markdown": "Set kubelet option `--volume-stats-agg-period` to negative value to disable volume calculations. ([#96675](https://github.com/kubernetes/kubernetes/pull/96675), [@pacoxu](https://github.com/pacoxu)) [SIG Node]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96675", + "pr_number": 96675, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "documentation" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "96689": { + "commit": "fc43c80ccd0569298c81b2be080aa7dbb6132e95", + "text": "Ensure all vSphere nodes are are tracked by volume attach-detach controller", + "markdown": "Ensure all vSphere nodes are are tracked by volume attach-detach controller ([#96689](https://github.com/kubernetes/kubernetes/pull/96689), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96689", + "pr_number": 96689, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "duplicate": true + }, + "96691": { + "commit": "a107769005854608fe8cdfa2e274204d0fdb9240", + "text": "Increase timeout for pod lifecycle test to reach pod status=ready", + "markdown": "Increase timeout for pod lifecycle test to reach pod status=ready ([#96691](https://github.com/kubernetes/kubernetes/pull/96691), [@hh](https://github.com/hh))", + "author": "hh", + "author_url": "https://github.com/hh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96691", + "pr_number": 96691, + "areas": [ + "conformance", + "test" + ], + "kinds": [ + "flake" + ], + "sigs": [ + "architecture", + "testing" + ], + "duplicate": true + }, + "96736": { + "commit": "ddf3eb5a1877338da806c2be15b53f456b6342c9", + "text": "Deprecate the `topologyKeys` field in Service. This capability will be replaced with upcoming work around Topology Aware Subsetting and Service Internal Traffic Policy.", + "markdown": "Deprecate the `topologyKeys` field in Service. This capability will be replaced with upcoming work around Topology Aware Subsetting and Service Internal Traffic Policy. ([#96736](https://github.com/kubernetes/kubernetes/pull/96736), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps]", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96736", + "pr_number": 96736, + "kinds": [ + "api-change", + "deprecation" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "96821": { + "commit": "9720013d926cefb2ce5e5584f993387a2b12ce60", + "text": "Fix CSI-migrated inline EBS volumes failing to mount if their volumeID is prefixed by aws://", + "markdown": "Fix CSI-migrated inline EBS volumes failing to mount if their volumeID is prefixed by aws:// ([#96821](https://github.com/kubernetes/kubernetes/pull/96821), [@wongma7](https://github.com/wongma7)) [SIG Storage]", + "author": "wongma7", + "author_url": "https://github.com/wongma7", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96821", + "pr_number": 96821, + "areas": [ + "provider/aws" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "96844": { + "commit": "b538d230661ff12577a720713cae9c06645d609e", + "text": "Use force unmount for NFS volumes if regular mount fails after 1 minute timeout", + "markdown": "Use force unmount for NFS volumes if regular mount fails after 1 minute timeout ([#96844](https://github.com/kubernetes/kubernetes/pull/96844), [@gnufied](https://github.com/gnufied)) [SIG Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96844", + "pr_number": 96844, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "96873": { + "commit": "a20aeb8eed76d17117ca6086a1192c49d67c393b", + "text": "AcceleratorStats will be available in the Summary API of kubelet when cri_stats_provider is used.", + "markdown": "AcceleratorStats will be available in the Summary API of kubelet when cri_stats_provider is used. ([#96873](https://github.com/kubernetes/kubernetes/pull/96873), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) [SIG Node]", + "author": "ruiwen-zhao", + "author_url": "https://github.com/ruiwen-zhao", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96873", + "pr_number": 96873, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "96876": { + "commit": "1209c596129f4326a6c2da49e63841d035a47363", + "text": "fixing a bug where a failed node may not have the NoExecute taint set correctly", + "markdown": "Fixing a bug where a failed node may not have the NoExecute taint set correctly ([#96876](https://github.com/kubernetes/kubernetes/pull/96876), [@howieyuen](https://github.com/howieyuen)) [SIG Apps and Node]", + "author": "howieyuen", + "author_url": "https://github.com/howieyuen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96876", + "pr_number": 96876, + "areas": [ + "node-lifecycle" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "node" + ], + "duplicate": true + }, + "96877": { + "commit": "4fe132954f731db75934cbf04d499651fef079ab", + "text": "Fix privileged config of Pod Sandbox which was previously ignored.", + "markdown": "Fix privileged config of Pod Sandbox which was previously ignored. ([#96877](https://github.com/kubernetes/kubernetes/pull/96877), [@xeniumlee](https://github.com/xeniumlee))", + "author": "xeniumlee", + "author_url": "https://github.com/xeniumlee", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96877", + "pr_number": 96877, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "96878": { + "commit": "e2f018dcda5f68fbcc110b3f02895c15f764839d", + "text": "kubectl: `kubectl get` will omit managed fields by default now. Users could set `--show-managed-fields` to true to show managedFields when the output format is either `json` or `yaml`.", + "markdown": "Kubectl: `kubectl get` will omit managed fields by default now. Users could set `--show-managed-fields` to true to show managedFields when the output format is either `json` or `yaml`. ([#96878](https://github.com/kubernetes/kubernetes/pull/96878), [@knight42](https://github.com/knight42)) [SIG CLI and Testing]", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96878", + "pr_number": 96878, + "areas": [ + "kubectl", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "96889": { + "commit": "39483aa0957be65b04686173d2970b508b3974ca", + "text": "Fixed cleanup of block devices when /var/lib/kubelet is a symlink.", + "markdown": "Fixed cleanup of block devices when /var/lib/kubelet is a symlink. ([#96889](https://github.com/kubernetes/kubernetes/pull/96889), [@jsafrane](https://github.com/jsafrane)) [SIG Storage]", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96889", + "pr_number": 96889, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "96901": { + "commit": "0bf26180dd41b243064ff013e58d4e8400609f16", + "text": "Requests with invalid timeout parameters in the request URL now appear in the audit log correctly.", + "markdown": "Requests with invalid timeout parameters in the request URL now appear in the audit log correctly. ([#96901](https://github.com/kubernetes/kubernetes/pull/96901), [@tkashem](https://github.com/tkashem)) [SIG API Machinery and Testing]", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96901", + "pr_number": 96901, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "96968": { + "commit": "c94ce8c5079e00fb11ca6c33170c97167570bdfa", + "text": "Namespace API objects now have a `kubernetes.io/metadata.name` label matching their metadata.name field to allow selecting any namespace by its name using a label selector.", + "markdown": "Namespace API objects now have a `kubernetes.io/metadata.name` label matching their metadata.name field to allow selecting any namespace by its name using a label selector. ([#96968](https://github.com/kubernetes/kubernetes/pull/96968), [@jayunit100](https://github.com/jayunit100)) [SIG API Machinery, Apps, Cloud Provider, Storage and Testing]", + "author": "jayunit100", + "author_url": "https://github.com/jayunit100", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96968", + "pr_number": 96968, + "areas": [ + "provider/gcp", + "test" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "cloud-provider", + "storage", + "testing" + ], + "duplicate": true + }, + "96987": { + "commit": "4f1dd5d2fbe42f39a841016796c5646711946ad1", + "text": "The `batch/v2alpha1` CronJob type definitions and clients are deprecated and removed.", + "markdown": "The `batch/v2alpha1` CronJob type definitions and clients are deprecated and removed. ([#96987](https://github.com/kubernetes/kubernetes/pull/96987), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps, CLI and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/19-Graduate-CronJob-to-Stable", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96987", + "pr_number": 96987, + "areas": [ + "kubectl", + "test" + ], + "kinds": [ + "api-change", + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery", + "apps", + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "97006": { + "commit": "75115236e77c08698d6fdd91c3c9d0897de44ad6", + "text": "Fix missing cadvisor machine metrics.", + "markdown": "Fix missing cadvisor machine metrics. ([#97006](https://github.com/kubernetes/kubernetes/pull/97006), [@lingsamuel](https://github.com/lingsamuel)) [SIG Node]", + "author": "lingsamuel", + "author_url": "https://github.com/lingsamuel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97006", + "pr_number": 97006, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "97009": { + "commit": "74b4f3d0151f5c007f168d62f93cde12fdb9de98", + "text": "Add flag --lease-reuse-duration-seconds for kube-apiserver to config etcd lease reuse duration.", + "markdown": "Add flag --lease-reuse-duration-seconds for kube-apiserver to config etcd lease reuse duration. ([#97009](https://github.com/kubernetes/kubernetes/pull/97009), [@lingsamuel](https://github.com/lingsamuel)) [SIG API Machinery and Scalability]", + "author": "lingsamuel", + "author_url": "https://github.com/lingsamuel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97009", + "pr_number": 97009, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "scalability" + ], + "feature": true, + "duplicate": true + }, + "97011": { + "commit": "7b4fc68f523a6780855e8473bf05a0b19c7a4fd5", + "text": "Cluster Autoscaler version bump to v1.20.0", + "markdown": "Cluster Autoscaler version bump to v1.20.0 ([#97011](https://github.com/kubernetes/kubernetes/pull/97011), [@towca](https://github.com/towca))", + "author": "towca", + "author_url": "https://github.com/towca", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97011", + "pr_number": 97011, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "97013": { + "commit": "f8db0d91dedc879f7981478ba1917789acb6e2c5", + "text": "Fixed FibreChannel volume plugin corrupting filesystems on detach of multipath volumes.", + "markdown": "Fixed FibreChannel volume plugin corrupting filesystems on detach of multipath volumes. ([#97013](https://github.com/kubernetes/kubernetes/pull/97013), [@jsafrane](https://github.com/jsafrane)) [SIG Storage]", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97013", + "pr_number": 97013, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "97016": { + "commit": "29d79de528112275e527297460f2c08b5380658d", + "text": "kubeadm: Fixes a kubeadm upgrade bug that could cause a custom CoreDNS configuration to be replaced with the default.", + "markdown": "Kubeadm: Fixes a kubeadm upgrade bug that could cause a custom CoreDNS configuration to be replaced with the default. ([#97016](https://github.com/kubernetes/kubernetes/pull/97016), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle]", + "author": "rajansandeep", + "author_url": "https://github.com/rajansandeep", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97016", + "pr_number": 97016, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "97029": { + "commit": "74a7fc46c313320dfe08195fcf6e5592dbbb4e06", + "text": "cloud-controller-manager: routes controller should not depend on --allocate-node-cidrs", + "markdown": "Cloud-controller-manager: routes controller should not depend on --allocate-node-cidrs ([#97029](https://github.com/kubernetes/kubernetes/pull/97029), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider and Testing]", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97029", + "pr_number": 97029, + "areas": [ + "cloudprovider", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "testing" + ], + "duplicate": true + }, + "97033": { + "commit": "e11e9d4c6c3f522ed398748a11cc5dd1f8949c2b", + "text": "Bump github.com/Azure/go-autorest/autorest to v0.11.12", + "markdown": "Bump github.com/Azure/go-autorest/autorest to v0.11.12 ([#97033](https://github.com/kubernetes/kubernetes/pull/97033), [@patrickshan](https://github.com/patrickshan)) [SIG API Machinery, CLI, Cloud Provider and Cluster Lifecycle]", + "author": "patrickshan", + "author_url": "https://github.com/patrickshan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97033", + "pr_number": 97033, + "areas": [ + "apiserver", + "cloudprovider", + "dependency", + "kubectl", + "provider/azure" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle" + ], + "duplicate": true + }, + "97058": { + "commit": "b7c82bb83c1b3933b99fbc5fdcffa59fd6441617", + "text": "Adds support for endPort field in NetworkPolicy", + "markdown": "Adds support for endPort field in NetworkPolicy ([#97058](https://github.com/kubernetes/kubernetes/pull/97058), [@rikatz](https://github.com/rikatz)) [SIG Apps and Network]", + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97058", + "pr_number": 97058, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "network" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "97082": { + "commit": "0f7c2dc3145e5c27e735d93385f01540bed73ace", + "text": "fix: azure file latency issue for metadata-heavy workloads", + "markdown": "Fix: azure file latency issue for metadata-heavy workloads ([#97082](https://github.com/kubernetes/kubernetes/pull/97082), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97082", + "pr_number": 97082, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "duplicate": true + }, + "97083": { + "commit": "a3bf53a0a5031f69389a835a8e13e783090b35a7", + "text": "Enable SPDY pings to keep connections alive, so that `kubectl exec` and `kubectl portforward` won't be interrupted.", + "markdown": "Enable SPDY pings to keep connections alive, so that `kubectl exec` and `kubectl portforward` won't be interrupted. ([#97083](https://github.com/kubernetes/kubernetes/pull/97083), [@knight42](https://github.com/knight42)) [SIG API Machinery and CLI]", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97083", + "pr_number": 97083, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "cli" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "97086": { + "commit": "f6152d152140f42815765c7d9703b9817943c345", + "text": "Creating a PVC with DataSource should fail for non-CSI plugins.", + "markdown": "Creating a PVC with DataSource should fail for non-CSI plugins. ([#97086](https://github.com/kubernetes/kubernetes/pull/97086), [@xing-yang](https://github.com/xing-yang)) [SIG Apps and Storage]", + "author": "xing-yang", + "author_url": "https://github.com/xing-yang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97086", + "pr_number": 97086, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "storage" + ], + "duplicate": true + }, + "97087": { + "commit": "d067c2e95d7eaae1d0e9e5ea5ff916c5d25f59c4", + "text": "kubeadm: change the default image repository for CI images from 'gcr.io/kubernetes-ci-images' to 'gcr.io/k8s-staging-ci-images'", + "markdown": "Kubeadm: change the default image repository for CI images from 'gcr.io/kubernetes-ci-images' to 'gcr.io/k8s-staging-ci-images' ([#97087](https://github.com/kubernetes/kubernetes/pull/97087), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97087", + "pr_number": 97087, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "97096": { + "commit": "42d19f9641270b06a68f805de7c5fc9fc2097e4f", + "text": "Delete deprecated `service.beta.kubernetes.io/azure-load-balancer-mixed-protocols` mixed procotol annotation in favor of the MixedProtocolLBService feature", + "markdown": "Delete deprecated `service.beta.kubernetes.io/azure-load-balancer-mixed-protocols` mixed procotol annotation in favor of the MixedProtocolLBService feature ([#97096](https://github.com/kubernetes/kubernetes/pull/97096), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97096", + "pr_number": 97096, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cloud-provider" + ] + }, + "97099": { + "commit": "3cb61dea9bffece56234390e17348c9f5bb6a963", + "text": "Users might specify the `kubectl.kubernetes.io/default-exec-container` annotation in a Pod to preselect container for kubectl commands.", + "markdown": "Users might specify the `kubectl.kubernetes.io/default-exec-container` annotation in a Pod to preselect container for kubectl commands. ([#97099](https://github.com/kubernetes/kubernetes/pull/97099), [@pacoxu](https://github.com/pacoxu)) [SIG CLI]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97099", + "pr_number": 97099, + "areas": [ + "kubectl" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "duplicate_kind": true + }, + "97115": { + "commit": "05b6addffb87d6b6499e19a5f1f577e06452d7dd", + "text": "NONE", + "markdown": "NONE ([#97115](https://github.com/kubernetes/kubernetes/pull/97115), [@IanColdwater](https://github.com/IanColdwater)) [SIG Contributor Experience and Security]", + "author": "IanColdwater", + "author_url": "https://github.com/IanColdwater", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97115", + "pr_number": 97115, + "kinds": [ + "cleanup" + ], + "sigs": [ + "contributor-experience", + "security" + ], + "duplicate": true, + "do_not_publish": true + }, + "97141": { + "commit": "236470431f98b417e2d5e5fca48dc0f1bda127e5", + "text": "removing experimental windows container hyper-v support with Docker", + "markdown": "Removing experimental windows container hyper-v support with Docker ([#97141](https://github.com/kubernetes/kubernetes/pull/97141), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows]", + "author": "wawa0210", + "author_url": "https://github.com/wawa0210", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97141", + "pr_number": 97141, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "97148": { + "commit": "8cefa493a8b5e4d4f81b7048092cd3c5e1bacb49", + "text": "The GA TokenRequest and TokenRequestProjection feature gates have been removed and are unconditionally enabled. Remove explicit use of those feature gates in CLI invocations.", + "markdown": "The GA TokenRequest and TokenRequestProjection feature gates have been removed and are unconditionally enabled. Remove explicit use of those feature gates in CLI invocations. ([#97148](https://github.com/kubernetes/kubernetes/pull/97148), [@wawa0210](https://github.com/wawa0210)) [SIG Node]", + "author": "wawa0210", + "author_url": "https://github.com/wawa0210", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97148", + "pr_number": 97148, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "97167": { + "commit": "81e82b84531f8e99521a5a58945a3236f71acf78", + "text": "NONE", + "markdown": "NONE ([#97167](https://github.com/kubernetes/kubernetes/pull/97167), [@geegeea](https://github.com/geegeea)) [SIG Node]", + "author": "geegeea", + "author_url": "https://github.com/geegeea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97167", + "pr_number": 97167, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "97171": { + "commit": "979c644df2ad051015a8ccf6475e3476eda0cea0", + "text": "The PodSecurityPolicy API is deprecated in 1.21, and will no longer be served starting in 1.25.", + "markdown": "The PodSecurityPolicy API is deprecated in 1.21, and will no longer be served starting in 1.25. ([#97171](https://github.com/kubernetes/kubernetes/pull/97171), [@deads2k](https://github.com/deads2k)) [SIG Auth and CLI]", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97171", + "pr_number": 97171, + "areas": [ + "kubectl" + ], + "kinds": [ + "api-change", + "cleanup", + "deprecation" + ], + "sigs": [ + "auth", + "cli" + ], + "duplicate": true, + "duplicate_kind": true + }, + "97174": { + "commit": "73118aecca618fd07a5dbeaff6a69b6200a4c381", + "text": "Fixed a bug in kubelet that will saturate CPU utilization after containerd got restarted.", + "markdown": "Fixed a bug in kubelet that will saturate CPU utilization after containerd got restarted. ([#97174](https://github.com/kubernetes/kubernetes/pull/97174), [@hanlins](https://github.com/hanlins)) [SIG Node]", + "author": "hanlins", + "author_url": "https://github.com/hanlins", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97174", + "pr_number": 97174, + "areas": [ + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "97193": { + "commit": "b37e9a440ea30336733793c4b9f97b87ac64b097", + "text": "fix flaky failure on devicemanager TestDevicePluginReRegistrationProbeMode", + "markdown": "Fix flaky failure on devicemanager TestDevicePluginReRegistrationProbeMode ([#97193](https://github.com/kubernetes/kubernetes/pull/97193), [@JornShen](https://github.com/JornShen))", + "author": "JornShen", + "author_url": "https://github.com/JornShen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97193", + "pr_number": 97193, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "flake" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "97224": { + "commit": "81d8ccfa8e641f7295af6dbfe5bbb3c157a10b55", + "text": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "**Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.**:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#97224](https://github.com/kubernetes/kubernetes/pull/97224), [@tanjing2020](https://github.com/tanjing2020)) [SIG API Machinery]", + "author": "tanjing2020", + "author_url": "https://github.com/tanjing2020", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97224", + "pr_number": 97224, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "97244": { + "commit": "6fc51bc52865603c165787af08e22c859d7423d0", + "text": "kubeadm installs etcd v3.4.13 when creating cluster v1.19", + "markdown": "Kubeadm installs etcd v3.4.13 when creating cluster v1.19 ([#97244](https://github.com/kubernetes/kubernetes/pull/97244), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97244", + "pr_number": 97244, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "97266": { + "commit": "88a05df5ff1b311e8e92f64b4f3a2c7d4329d14e", + "text": "kubeadm: add support for certificate chain validation. When using kubeadm in external CA mode, this allows an intermediate CA to be used to sign the certificates. The intermediate CA certificate must be appended to each signed certificate for this to work correctly.", + "markdown": "Kubeadm: add support for certificate chain validation. When using kubeadm in external CA mode, this allows an intermediate CA to be used to sign the certificates. The intermediate CA certificate must be appended to each signed certificate for this to work correctly. ([#97266](https://github.com/kubernetes/kubernetes/pull/97266), [@robbiemcmichael](https://github.com/robbiemcmichael)) [SIG Cluster Lifecycle]", + "author": "robbiemcmichael", + "author_url": "https://github.com/robbiemcmichael", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97266", + "pr_number": 97266, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "97306": { + "commit": "c6789a175be8c1eea5758573fb9a75adc65f7752", + "text": "The deprecated feature gates `RotateKubeletClientCertificate`, `AttachVolumeLimit`, `VolumePVCDataSource` and `EvenPodsSpread` are now unconditionally enabled and can no longer be specified in component invocations.", + "markdown": "The deprecated feature gates `RotateKubeletClientCertificate`, `AttachVolumeLimit`, `VolumePVCDataSource` and `EvenPodsSpread` are now unconditionally enabled and can no longer be specified in component invocations. ([#97306](https://github.com/kubernetes/kubernetes/pull/97306), [@gavinfish](https://github.com/gavinfish)) [SIG Node, Scheduling and Storage]", + "author": "gavinfish", + "author_url": "https://github.com/gavinfish", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97306", + "pr_number": 97306, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "scheduling", + "storage" + ], + "duplicate": true + }, + "97322": { + "commit": "6fff9581c2770ea31bb14a394d7cb81c992af801", + "text": "The Kubernetes pause image manifest list now contains an image for Windows Server 20H2.", + "markdown": "The Kubernetes pause image manifest list now contains an image for Windows Server 20H2. ([#97322](https://github.com/kubernetes/kubernetes/pull/97322), [@claudiubelu](https://github.com/claudiubelu)) [SIG Windows]", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97322", + "pr_number": 97322, + "kinds": [ + "feature" + ], + "sigs": [ + "windows" + ], + "feature": true + }, + "97336": { + "commit": "ffe74b2cf14fbd6de99d65f707bc331c98eb83b1", + "text": "kube-proxy: remove deprecated --cleanup-ipvs flag of kube-proxy, and make --cleanup flag always to flush IPVS", + "markdown": "Kube-proxy: remove deprecated --cleanup-ipvs flag of kube-proxy, and make --cleanup flag always to flush IPVS ([#97336](https://github.com/kubernetes/kubernetes/pull/97336), [@maaoBit](https://github.com/maaoBit)) [SIG Network]", + "author": "maaoBit", + "author_url": "https://github.com/maaoBit", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97336", + "pr_number": 97336, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug", + "deprecation" + ], + "sigs": [ + "network" + ] + }, + "97366": { + "commit": "b749a3a421652644bb170b57375ef0cf46c0fa3f", + "text": "Fix nil VMSS name when setting service to auto mode", + "markdown": "Fix nil VMSS name when setting service to auto mode ([#97366](https://github.com/kubernetes/kubernetes/pull/97366), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97366", + "pr_number": 97366, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "97372": { + "commit": "4a595bd3735d4f28a6e1f4bdb242e000e2f83cd9", + "text": "kubeadm: fix a bug where \"kubeadm join\" would not properly handle missing names for existing etcd members.", + "markdown": "Kubeadm: fix a bug where \"kubeadm join\" would not properly handle missing names for existing etcd members. ([#97372](https://github.com/kubernetes/kubernetes/pull/97372), [@ihgann](https://github.com/ihgann)) [SIG Cluster Lifecycle]", + "author": "ihgann", + "author_url": "https://github.com/ihgann", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97372", + "pr_number": 97372, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "97374": { + "commit": "b39494ce35f908885e81277c7ad05f286caf588a", + "text": "NONE", + "markdown": "NONE ([#97374](https://github.com/kubernetes/kubernetes/pull/97374), [@geegeea](https://github.com/geegeea)) [SIG Node, Scheduling and Testing]", + "author": "geegeea", + "author_url": "https://github.com/geegeea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97374", + "pr_number": 97374, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "97378": { + "commit": "c2ad99881116ed5a2be0ade4ce87df05f2594b45", + "text": "kubelet: Fixed the bug of getting the number of cpu when the number of cpu logical processors is more than 64 in windows", + "markdown": "Kubelet: Fixed the bug of getting the number of cpu when the number of cpu logical processors is more than 64 in windows ([#97378](https://github.com/kubernetes/kubernetes/pull/97378), [@hwdef](https://github.com/hwdef)) [SIG Node and Windows]", + "author": "hwdef", + "author_url": "https://github.com/hwdef", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97378", + "pr_number": 97378, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true + }, + "97395": { + "commit": "24f13032b3e3d4c7c5dfbe86c40be5d038e58614", + "text": "New admission controller \"DenyServiceExternalIPs\" is available. Clusters which do not *need* the Service \"externalIPs\" feature should enable this controller and be more secure.", + "markdown": "New admission controller \"DenyServiceExternalIPs\" is available. Clusters which do not *need* the Service \"externalIPs\" feature should enable this controller and be more secure. ([#97395](https://github.com/kubernetes/kubernetes/pull/97395), [@thockin](https://github.com/thockin))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2176", + "type": "KEP" + }, + { + "description": "[CVE]", + "url": "https://github.com/kubernetes/kubernetes/issues/97110", + "type": "external" + } + ], + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97395", + "pr_number": 97395, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "97403": { + "commit": "32093b0447e86c6808c78e597ec2a3ceac054c57", + "text": "kubeadm: fix a bug in the host memory detection code on 32bit Linux platforms", + "markdown": "Kubeadm: fix a bug in the host memory detection code on 32bit Linux platforms ([#97403](https://github.com/kubernetes/kubernetes/pull/97403), [@abelbarrera15](https://github.com/abelbarrera15)) [SIG Cluster Lifecycle]", + "author": "abelbarrera15", + "author_url": "https://github.com/abelbarrera15", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97403", + "pr_number": 97403, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "97407": { + "commit": "73fbd3da09a1704ce9133594ec0b4a59db7f6cfd", + "text": "Clean ReplicaSet by revision instead of creation timestamp in deployment controller", + "markdown": "Clean ReplicaSet by revision instead of creation timestamp in deployment controller ([#97407](https://github.com/kubernetes/kubernetes/pull/97407), [@waynepeking348](https://github.com/waynepeking348)) [SIG Apps]", + "author": "waynepeking348", + "author_url": "https://github.com/waynepeking348", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97407", + "pr_number": 97407, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "97408": { + "commit": "af8594ff998c17a59ce74ee2be8e02b0ea153df4", + "text": "`kubectl wait` ensures that observedGeneration \u003e= generation to prevent stale state reporting. An example scenario can be found on CRD updates.", + "markdown": "`kubectl wait` ensures that observedGeneration \u003e= generation to prevent stale state reporting. An example scenario can be found on CRD updates. ([#97408](https://github.com/kubernetes/kubernetes/pull/97408), [@KnicKnic](https://github.com/KnicKnic))", + "author": "KnicKnic", + "author_url": "https://github.com/KnicKnic", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97408", + "pr_number": 97408, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "97417": { + "commit": "2490a797a28ba31c60d3f4c3deec8d2920a749d6", + "text": "fix Azure file share not deleted issue when the namespace is deleted", + "markdown": "Fix Azure file share not deleted issue when the namespace is deleted ([#97417](https://github.com/kubernetes/kubernetes/pull/97417), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97417", + "pr_number": 97417, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "duplicate": true, + "do_not_publish": true + }, + "97427": { + "commit": "4dc3a42712681186ed94d0a11cbdca573315809c", + "text": "Fixed bug in CPUManager with race on container map access", + "markdown": "Fixed bug in CPUManager with race on container map access ([#97427](https://github.com/kubernetes/kubernetes/pull/97427), [@klueska](https://github.com/klueska)) [SIG Node]", + "author": "klueska", + "author_url": "https://github.com/klueska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97427", + "pr_number": 97427, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "97431": { + "commit": "f48972e671e5f338d0d6adfe6055aba4534569ad", + "text": "AWS cloud provider supports auto-discovering subnets without any `kubernetes.io/cluster/\u003cclusterName\u003e` tags. It also supports additional service annotation `service.beta.kubernetes.io/aws-load-balancer-subnets` to manually configure the subnets.", + "markdown": "AWS cloud provider supports auto-discovering subnets without any `kubernetes.io/cluster/\u003cclusterName\u003e` tags. It also supports additional service annotation `service.beta.kubernetes.io/aws-load-balancer-subnets` to manually configure the subnets. ([#97431](https://github.com/kubernetes/kubernetes/pull/97431), [@kishorj](https://github.com/kishorj))", + "author": "kishorj", + "author_url": "https://github.com/kishorj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97431", + "pr_number": 97431, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true, + "duplicate_kind": true + }, + "97451": { + "commit": "f9c7c59e25d2ae82bf7b3d72ec65e41c712f24bd", + "text": "fix counting error in service/nodeport/loadbalancer quota check", + "markdown": "Fix counting error in service/nodeport/loadbalancer quota check ([#97451](https://github.com/kubernetes/kubernetes/pull/97451), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery, Network and Testing]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97451", + "pr_number": 97451, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "network", + "testing" + ], + "duplicate": true + }, + "97466": { + "commit": "3209dabb0d99125ffc138ee82dbce3dfbe81e332", + "text": "NONE", + "markdown": "NONE ([#97466](https://github.com/kubernetes/kubernetes/pull/97466), [@geegeea](https://github.com/geegeea)) [SIG API Machinery]", + "author": "geegeea", + "author_url": "https://github.com/geegeea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97466", + "pr_number": 97466, + "kinds": [ + "api-change", + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "97480": { + "commit": "e054aa268e86808c381226b2eded83a3f84834f8", + "text": "Add metric etcd_lease_object_counts for kube-apiserver to observe max objects attached to a single etcd lease.", + "markdown": "Add metric etcd_lease_object_counts for kube-apiserver to observe max objects attached to a single etcd lease. ([#97480](https://github.com/kubernetes/kubernetes/pull/97480), [@lingsamuel](https://github.com/lingsamuel)) [SIG API Machinery, Instrumentation and Scalability]", + "author": "lingsamuel", + "author_url": "https://github.com/lingsamuel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97480", + "pr_number": 97480, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "scalability" + ], + "feature": true, + "duplicate": true + }, + "97491": { + "commit": "ecdbcd8963fb9df36589adee80d2b4b49855658a", + "text": "Process start time on Windows now uses current process information", + "markdown": "Process start time on Windows now uses current process information ([#97491](https://github.com/kubernetes/kubernetes/pull/97491), [@jsturtevant](https://github.com/jsturtevant)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Windows]", + "author": "jsturtevant", + "author_url": "https://github.com/jsturtevant", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97491", + "pr_number": 97491, + "areas": [ + "apiserver", + "cloudprovider", + "dependency", + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "windows" + ], + "duplicate": true + }, + "97492": { + "commit": "f02435ddda865bbca53c582c06637ad4e5366e17", + "text": "Fixed no effect namespace when exposing deployment with --dry-run=client.", + "markdown": "Fixed no effect namespace when exposing deployment with --dry-run=client. ([#97492](https://github.com/kubernetes/kubernetes/pull/97492), [@masap](https://github.com/masap)) [SIG CLI]", + "author": "masap", + "author_url": "https://github.com/masap", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97492", + "pr_number": 97492, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "97543": { + "commit": "0300aa712e378373261effcfb4a7895e5356c43e", + "text": "`ServiceNodeExclusion`, `NodeDisruptionExclusion` and `LegacyNodeRoleBehavior` features have been promoted to GA. `ServiceNodeExclusion` and `NodeDisruptionExclusion` are now unconditionally enabled, while `LegacyNodeRoleBehavior` is unconditionally disabled. To prevent control plane nodes from being added to load balancers automatically, upgrade users need to add \"node.kubernetes.io/exclude-from-external-load-balancers\" label to control plane nodes.", + "markdown": "`ServiceNodeExclusion`, `NodeDisruptionExclusion` and `LegacyNodeRoleBehavior` features have been promoted to GA. `ServiceNodeExclusion` and `NodeDisruptionExclusion` are now unconditionally enabled, while `LegacyNodeRoleBehavior` is unconditionally disabled. To prevent control plane nodes from being added to load balancers automatically, upgrade users need to add \"node.kubernetes.io/exclude-from-external-load-balancers\" label to control plane nodes. ([#97543](https://github.com/kubernetes/kubernetes/pull/97543), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-architecture/1143-node-role-labels", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97543", + "pr_number": 97543, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "cloud-provider", + "network" + ], + "duplicate": true, + "action_required": true + }, + "97583": { + "commit": "deb01c1a7a7aab62ad64abf0ff3ae76a9e91abb2", + "text": "kubeadm: graduate the command `kubeadm alpha kubeconfig user` to `kubeadm kubeconfig user`. The `kubeadm alpha kubeconfig user` command is deprecated now.", + "markdown": "Kubeadm: graduate the command `kubeadm alpha kubeconfig user` to `kubeadm kubeconfig user`. The `kubeadm alpha kubeconfig user` command is deprecated now. ([#97583](https://github.com/kubernetes/kubernetes/pull/97583), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle]", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97583", + "pr_number": 97583, + "areas": [ + "kubeadm" + ], + "kinds": [ + "deprecation", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "97615": { + "commit": "c5cc25d1cb075f84756db9bffecd3fafe12c5fab", + "text": "Promote Immutable Secrets/ConfigMaps feature to Stable. This allows to set `immutable` field in Secret or ConfigMap object to mark their contents as immutable.", + "markdown": "Promote Immutable Secrets/ConfigMaps feature to Stable. This allows to set `immutable` field in Secret or ConfigMap object to mark their contents as immutable. ([#97615](https://github.com/kubernetes/kubernetes/pull/97615), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps, Architecture, Node and Testing]", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97615", + "pr_number": 97615, + "areas": [ + "conformance", + "kubelet", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "architecture", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "97618": { + "commit": "9c894e23efbeaa4ebf1b50763456849427c8e693", + "text": "Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally.", + "markdown": "Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97618](https://github.com/kubernetes/kubernetes/pull/97618), [@jherrera123](https://github.com/jherrera123)) [SIG Release and Testing]", + "author": "jherrera123", + "author_url": "https://github.com/jherrera123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97618", + "pr_number": 97618, + "kinds": [ + "cleanup" + ], + "sigs": [ + "release", + "testing" + ], + "duplicate": true + }, + "97621": { + "commit": "97a3e9e7e831a989f38c5830533b6e1b08a52a54", + "text": "Updated k8s.gcr.io/ingress-gce-404-server-with-metrics-amd64 to a version that serves /metrics endpoint on a non-default port.", + "markdown": "Updated k8s.gcr.io/ingress-gce-404-server-with-metrics-amd64 to a version that serves /metrics endpoint on a non-default port. ([#97621](https://github.com/kubernetes/kubernetes/pull/97621), [@vbannai](https://github.com/vbannai)) [SIG Cloud Provider]", + "author": "vbannai", + "author_url": "https://github.com/vbannai", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97621", + "pr_number": 97621, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "97627": { + "commit": "8725c3bf12cfd3697464136201216fa05dc662d2", + "text": "kubeadm: deprecated command \"alpha selfhosting pivot\" is now removed.", + "markdown": "Kubeadm: deprecated command \"alpha selfhosting pivot\" is now removed. ([#97627](https://github.com/kubernetes/kubernetes/pull/97627), [@knight42](https://github.com/knight42))", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97627", + "pr_number": 97627, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "97635": { + "commit": "ac0b0378df23b6a68452b8577fd6fed265306615", + "text": "Use network.Interface.VirtualMachine.ID to get the binded VM\nSkip standalone VM when reconciling LoadBalancer", + "markdown": "Use network.Interface.VirtualMachine.ID to get the binded VM\n Skip standalone VM when reconciling LoadBalancer ([#97635](https://github.com/kubernetes/kubernetes/pull/97635), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97635", + "pr_number": 97635, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "97686": { + "commit": "bce5d7a0158444080ed95aae6a5684ce4dd9444b", + "text": "Kubectl logs: `--ignore-errors` is now honored by all containers, maintaining consistency with parallelConsumeRequest behavior.", + "markdown": "Kubectl logs: `--ignore-errors` is now honored by all containers, maintaining consistency with parallelConsumeRequest behavior. ([#97686](https://github.com/kubernetes/kubernetes/pull/97686), [@wzshiming](https://github.com/wzshiming))", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97686", + "pr_number": 97686, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "97693": { + "commit": "d1db90ba579e9c01194f92ba6daff852e3b4c6e7", + "text": "kube-apiserver: The OIDC authenticator no longer waits 10 seconds before attempting to fetch the metadata required to verify tokens.", + "markdown": "Kube-apiserver: The OIDC authenticator no longer waits 10 seconds before attempting to fetch the metadata required to verify tokens. ([#97693](https://github.com/kubernetes/kubernetes/pull/97693), [@enj](https://github.com/enj)) [SIG API Machinery and Auth]", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97693", + "pr_number": 97693, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true + }, + "97706": { + "commit": "17bb2fc050ec786b60db7d8d6d4d3ac8eeac205b", + "text": "kubeadm: the \"kubeadm alpha certs\" command is removed now, please use \"kubeadm certs\" instead.", + "markdown": "Kubeadm: the \"kubeadm alpha certs\" command is removed now, please use \"kubeadm certs\" instead. ([#97706](https://github.com/kubernetes/kubernetes/pull/97706), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle]", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97706", + "pr_number": 97706, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "97740": { + "commit": "e9353e9a8b2230d81bf2d2b5cc58a1ccb8608229", + "text": "GCE Internal LoadBalancer sync loop will now release the ILB IP address upon sync failure. An error in ILB forwarding rule creation will no longer leak IP addresses.", + "markdown": "GCE Internal LoadBalancer sync loop will now release the ILB IP address upon sync failure. An error in ILB forwarding rule creation will no longer leak IP addresses. ([#97740](https://github.com/kubernetes/kubernetes/pull/97740), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider and Network]", + "author": "prameshj", + "author_url": "https://github.com/prameshj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97740", + "pr_number": 97740, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "network" + ], + "duplicate": true + }, + "97743": { + "commit": "2e39df89ac22d5dde2d6d04747cbee6865569f14", + "text": "Add support to generate client-side binaries for new darwin/arm64 platform", + "markdown": "Add support to generate client-side binaries for new darwin/arm64 platform ([#97743](https://github.com/kubernetes/kubernetes/pull/97743), [@dims](https://github.com/dims)) [SIG Release and Testing]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97743", + "pr_number": 97743, + "areas": [ + "release-eng", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "97754": { + "commit": "db183c7e80815558f0bdd8166f24e4af555166a1", + "text": "kubectl-convert: Fix `no kind \"Ingress\" is registered for version` error", + "markdown": "Kubectl-convert: Fix `no kind \"Ingress\" is registered for version` error ([#97754](https://github.com/kubernetes/kubernetes/pull/97754), [@wzshiming](https://github.com/wzshiming))", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97754", + "pr_number": 97754, + "areas": [ + "kubectl", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "97823": { + "commit": "34f138ff8359d3062920079d8d4761816d7681f0", + "text": "Remove CSI topology from migrated in-tree gcepd volume.", + "markdown": "Remove CSI topology from migrated in-tree gcepd volume. ([#97823](https://github.com/kubernetes/kubernetes/pull/97823), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Cloud Provider and Storage]", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97823", + "pr_number": 97823, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "duplicate": true, + "duplicate_kind": true + }, + "97824": { + "commit": "c1b3797f4b1f8f5f5d6613c2f6412c69a147d0ec", + "text": "Fixed a bug that on k8s nodes, when the policy of INPUT chain in filter table is not ACCEPT, healthcheck nodeport would not work.\nAdded iptables rules to allow healthcheck nodeport traffic.", + "markdown": "Fixed a bug that on k8s nodes, when the policy of INPUT chain in filter table is not ACCEPT, healthcheck nodeport would not work.\n Added iptables rules to allow healthcheck nodeport traffic. ([#97824](https://github.com/kubernetes/kubernetes/pull/97824), [@hanlins](https://github.com/hanlins)) [SIG Network]", + "author": "hanlins", + "author_url": "https://github.com/hanlins", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97824", + "pr_number": 97824, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "97857": { + "commit": "e9dba7a627520f89778b367fc0d955776f220638", + "text": "Using exec auth plugins with kubectl no longer results in warnings about constructing many client instances from the same exec auth config.", + "markdown": "Using exec auth plugins with kubectl no longer results in warnings about constructing many client instances from the same exec auth config. ([#97857](https://github.com/kubernetes/kubernetes/pull/97857), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Auth]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97857", + "pr_number": 97857, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true + }, + "97860": { + "commit": "d9a26fb69bcb194c1b56a93eca0735a8fdf3bd63", + "text": "Performance regression #97685 has been fixed.", + "markdown": "Performance regression #97685 has been fixed. ([#97860](https://github.com/kubernetes/kubernetes/pull/97860), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97860", + "pr_number": 97860, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "97877": { + "commit": "194e5193c45c8c3782e89c40219edec844796cc5", + "text": "Fix Azure file migration e2e test failure when CSIMigration is turned on.", + "markdown": "Fix Azure file migration e2e test failure when CSIMigration is turned on. ([#97877](https://github.com/kubernetes/kubernetes/pull/97877), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97877", + "pr_number": 97877, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "cloud-provider", + "storage" + ], + "duplicate": true + }, + "97888": { + "commit": "d819199065b078df11cf933ac282f3ebbf6f32bb", + "text": "Fixes a bug of identifying the correct containerd process.", + "markdown": "Fixes a bug of identifying the correct containerd process. ([#97888](https://github.com/kubernetes/kubernetes/pull/97888), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97888", + "pr_number": 97888, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "97919": { + "commit": "bd947dfc652f58900b7e29e60e28af4c6fb7eb95", + "text": "kubeadm: fix a bug where \"kubeadm upgrade\" commands can fail if CoreDNS v1.8.0 is installed.", + "markdown": "Kubeadm: fix a bug where \"kubeadm upgrade\" commands can fail if CoreDNS v1.8.0 is installed. ([#97919](https://github.com/kubernetes/kubernetes/pull/97919), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97919", + "pr_number": 97919, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "97922": { + "commit": "0b75828dfc90dff01996e821f10e97a38f7f2230", + "text": "Fix CVE-2020-8555 for Gluster client connections.", + "markdown": "Fix CVE-2020-8555 for Gluster client connections. ([#97922](https://github.com/kubernetes/kubernetes/pull/97922), [@liggitt](https://github.com/liggitt)) [SIG Storage]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97922", + "pr_number": 97922, + "areas": [ + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "97934": { + "commit": "de4d771d3b8741cc4d5a470ea44e60951fa58966", + "text": "Mitigate CVE-2020-8555 for kube-up using GCE by preventing local loopback folume hosts.", + "markdown": "Mitigate CVE-2020-8555 for kube-up using GCE by preventing local loopback folume hosts. ([#97934](https://github.com/kubernetes/kubernetes/pull/97934), [@mattcary](https://github.com/mattcary)) [SIG Cloud Provider and Storage]", + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97934", + "pr_number": 97934, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "duplicate": true + }, + "97935": { + "commit": "a399b3e92fbfeb0cd8a549b0f15ab7993ca0ea28", + "text": "Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally.", + "markdown": "Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97935](https://github.com/kubernetes/kubernetes/pull/97935), [@adeniyistephen](https://github.com/adeniyistephen)) [SIG Release and Testing]", + "author": "adeniyistephen", + "author_url": "https://github.com/adeniyistephen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97935", + "pr_number": 97935, + "kinds": [ + "documentation", + "deprecation" + ], + "sigs": [ + "release", + "testing" + ], + "duplicate": true + }, + "97963": { + "commit": "2a26f276a8c8c13b2f45927ee5ece2063950dd1d", + "text": "Update pause container to run as pseudo user and group `65535:65535`. This implies the release of version 3.5 of the container images.", + "markdown": "Update pause container to run as pseudo user and group `65535:65535`. This implies the release of version 3.5 of the container images. ([#97963](https://github.com/kubernetes/kubernetes/pull/97963), [@saschagrunert](https://github.com/saschagrunert)) [SIG CLI, Cloud Provider, Cluster Lifecycle, Node, Release, Security and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97963", + "pr_number": 97963, + "areas": [ + "kubeadm", + "kubectl", + "kubelet", + "provider/gcp", + "release-eng", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "cloud-provider", + "cluster-lifecycle", + "node", + "release", + "security", + "testing" + ], + "feature": true, + "duplicate": true + }, + "97967": { + "commit": "5e7d62ecfc80f26b9e9c4d73ee599f304bc31615", + "text": "Update cri-tools to [v1.20.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.20.0)", + "markdown": "Update cri-tools to [v1.20.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.20.0) ([#97967](https://github.com/kubernetes/kubernetes/pull/97967), [@rajibmitra](https://github.com/rajibmitra)) [SIG Cloud Provider]", + "author": "rajibmitra", + "author_url": "https://github.com/rajibmitra", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97967", + "pr_number": 97967, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ] + }, + "97979": { + "commit": "9f451c03e9cf93341d91c5c1014c8e49395e2438", + "text": "When a CNI plugin returns dual-stack pod IPs, kubelet will now try to respect the\n\"primary IP family\" of the cluster by picking a primary pod IP of the same family\nas the (primary) node IP, rather than assuming that the CNI plugin returned the IPs\nin the order the administrator wanted (since some CNI plugins don't allow\nconfiguring this).", + "markdown": "When a CNI plugin returns dual-stack pod IPs, kubelet will now try to respect the\n \"primary IP family\" of the cluster by picking a primary pod IP of the same family\n as the (primary) node IP, rather than assuming that the CNI plugin returned the IPs\n in the order the administrator wanted (since some CNI plugins don't allow\n configuring this). ([#97979](https://github.com/kubernetes/kubernetes/pull/97979), [@danwinship](https://github.com/danwinship)) [SIG Network and Node]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97979", + "pr_number": 97979, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true + }, + "97980": { + "commit": "e0b2787ee1e066287d2d19c3841f18f07669b47d", + "text": "Fix the regression with the slow pods termination. Before this fix pods may take an additional time to terminate - up to one minute. Reversing the change that ensured that CNI resources cleaned up when the pod is removed on API server.", + "markdown": "Fix the regression with the slow pods termination. Before this fix pods may take an additional time to terminate - up to one minute. Reversing the change that ensured that CNI resources cleaned up when the pod is removed on API server. ([#97980](https://github.com/kubernetes/kubernetes/pull/97980), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node]", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97980", + "pr_number": 97980, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "98005": { + "commit": "9ec1e23e41a84fdda4b88678d20c489cf381fa4f", + "text": "Sync node status during kubelet node shutdown.\nAdds an pod admission handler that rejects new pods when the node is in progress of shutting down.", + "markdown": "Sync node status during kubelet node shutdown.\n Adds an pod admission handler that rejects new pods when the node is in progress of shutting down. ([#98005](https://github.com/kubernetes/kubernetes/pull/98005), [@wzshiming](https://github.com/wzshiming)) [SIG Node]", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98005", + "pr_number": 98005, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "98021": { + "commit": "aa5cbcda424b4880ddc4ac0a7f4b37e366261c6e", + "text": "The deprecated feature gates `CSIDriverRegistry`, `BlockVolume` and `CSIBlockVolume` are now unconditionally enabled and can no longer be specified in component invocations.", + "markdown": "The deprecated feature gates `CSIDriverRegistry`, `BlockVolume` and `CSIBlockVolume` are now unconditionally enabled and can no longer be specified in component invocations. ([#98021](https://github.com/kubernetes/kubernetes/pull/98021), [@gavinfish](https://github.com/gavinfish)) [SIG Storage]", + "author": "gavinfish", + "author_url": "https://github.com/gavinfish", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98021", + "pr_number": 98021, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "98033": { + "commit": "54d48d2b806a298528bb22e6263112bf829222b8", + "text": "The feature gate `RootCAConfigMap` graduated to GA in v1.21 and therefore will be unconditionally enabled. This flag will be removed in v1.22 release.", + "markdown": "The feature gate `RootCAConfigMap` graduated to GA in v1.21 and therefore will be unconditionally enabled. This flag will be removed in v1.22 release. ([#98033](https://github.com/kubernetes/kubernetes/pull/98033), [@zshihang](https://github.com/zshihang))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98033", + "pr_number": 98033, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true + }, + "98042": { + "commit": "a399eb6737cd6bc38e515bd1f4b4f9368970b227", + "text": "Fixed a bug that the kubelet cannot start on BtrfS.", + "markdown": "Fixed a bug that the kubelet cannot start on BtrfS. ([#98042](https://github.com/kubernetes/kubernetes/pull/98042), [@gjkim42](https://github.com/gjkim42)) [SIG Node]", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98042", + "pr_number": 98042, + "areas": [ + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "98068": { + "commit": "a9e2e18cc6737072fef2bce838bcf508a8e708f3", + "text": "Fixed an issue with garbage collection failing to clean up namespaced children of an object also referenced incorrectly by cluster-scoped children", + "markdown": "Fixed an issue with garbage collection failing to clean up namespaced children of an object also referenced incorrectly by cluster-scoped children ([#98068](https://github.com/kubernetes/kubernetes/pull/98068), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98068", + "pr_number": 98068, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true + }, + "98074": { + "commit": "4cf8823fbaedaeeb8a5c094b574d489b5ca5f6fe", + "text": "The kube-apiserver now resets `managedFields` that got corrupted by a mutating admission controller.", + "markdown": "The kube-apiserver now resets `managedFields` that got corrupted by a mutating admission controller. ([#98074](https://github.com/kubernetes/kubernetes/pull/98074), [@kwiesmueller](https://github.com/kwiesmueller))", + "author": "kwiesmueller", + "author_url": "https://github.com/kwiesmueller", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98074", + "pr_number": 98074, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "98088": { + "commit": "82ebcd171909c4cd6007007fc07b025d0950153d", + "text": "kubelet: Fix repeatedly acquiring the inhibit lock", + "markdown": "Kubelet: Fix repeatedly acquiring the inhibit lock ([#98088](https://github.com/kubernetes/kubernetes/pull/98088), [@wzshiming](https://github.com/wzshiming)) [SIG Node]", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98088", + "pr_number": 98088, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "98096": { + "commit": "fa3be1bcd2e3b9cf02dede40ddff5c2bc800bf27", + "text": "Scores from InterPodAffinity have stronger differentiation.", + "markdown": "Scores from InterPodAffinity have stronger differentiation. ([#98096](https://github.com/kubernetes/kubernetes/pull/98096), [@leileiwan](https://github.com/leileiwan)) [SIG Scheduling]", + "author": "leileiwan", + "author_url": "https://github.com/leileiwan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98096", + "pr_number": 98096, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "98103": { + "commit": "09f4baed35865d410febb3220811ca5c2fe1cf42", + "text": "Static pods will be deleted gracefully.", + "markdown": "Static pods will be deleted gracefully. ([#98103](https://github.com/kubernetes/kubernetes/pull/98103), [@gjkim42](https://github.com/gjkim42)) [SIG Node]", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98103", + "pr_number": 98103, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "98111": { + "commit": "055e8edfaea25bb104d6c444b0a21ca4e268b479", + "text": "kubectl: The deprecated `kubectl alpha debug` command is removed. Use `kubectl debug` instead.", + "markdown": "Kubectl: The deprecated `kubectl alpha debug` command is removed. Use `kubectl debug` instead. ([#98111](https://github.com/kubernetes/kubernetes/pull/98111), [@pandaamanda](https://github.com/pandaamanda)) [SIG CLI]", + "author": "pandaamanda", + "author_url": "https://github.com/pandaamanda", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98111", + "pr_number": 98111, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cli" + ] + }, + "98116": { + "commit": "7eb99191a1803c87438e34e2f43a8d56bfb780cb", + "text": "The `EndpointSlice` mirroring controller mirrors endpoints annotations and labels to the generated endpoint slices, it also ensures that updates on any of these fields are mirrored. \nThe well-known annotation `endpoints.kubernetes.io/last-change-trigger-time` is skipped and not mirrored.", + "markdown": "The `EndpointSlice` mirroring controller mirrors endpoints annotations and labels to the generated endpoint slices, it also ensures that updates on any of these fields are mirrored. \n The well-known annotation `endpoints.kubernetes.io/last-change-trigger-time` is skipped and not mirrored. ([#98116](https://github.com/kubernetes/kubernetes/pull/98116), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98116", + "pr_number": 98116, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "apps", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "98127": { + "commit": "7a4914014521369be9e5162b869476fdfc7ea2f9", + "text": "PodDisruptionBudget API objects can now contain conditions in status.", + "markdown": "PodDisruptionBudget API objects can now contain conditions in status. ([#98127](https://github.com/kubernetes/kubernetes/pull/98127), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation]", + "author": "mortent", + "author_url": "https://github.com/mortent", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98127", + "pr_number": 98127, + "areas": [ + "apiserver", + "cloudprovider", + "dependency", + "kubectl" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "98133": { + "commit": "0a848a5d2c7ab9390a4fc10e4fd3c1d5350e63a8", + "text": "Cleanup subnet in frontend IP configs to prevent huge subnet request bodies in some scenarios.", + "markdown": "Cleanup subnet in frontend IP configs to prevent huge subnet request bodies in some scenarios. ([#98133](https://github.com/kubernetes/kubernetes/pull/98133), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98133", + "pr_number": 98133, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "98158": { + "commit": "ab21bdba898586e0e775637455f9837031ea89c2", + "text": "KUBECTL_EXTERNAL_DIFF now accepts equal sign for additional parameters.", + "markdown": "KUBECTL_EXTERNAL_DIFF now accepts equal sign for additional parameters. ([#98158](https://github.com/kubernetes/kubernetes/pull/98158), [@dougsland](https://github.com/dougsland)) [SIG CLI]", + "author": "dougsland", + "author_url": "https://github.com/dougsland", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98158", + "pr_number": 98158, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "98169": { + "commit": "a410c14020017c7bedeb4c501758088155c66fb7", + "text": "Readjust `kubelet_containers_per_pod_count` buckets to only show metrics greater than 1.", + "markdown": "Readjust `kubelet_containers_per_pod_count` buckets to only show metrics greater than 1. ([#98169](https://github.com/kubernetes/kubernetes/pull/98169), [@wawa0210](https://github.com/wawa0210))", + "author": "wawa0210", + "author_url": "https://github.com/wawa0210", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98169", + "pr_number": 98169, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "instrumentation", + "node" + ], + "duplicate": true + }, + "98200": { + "commit": "737858cd7c3924e546a8746a97702096e3a5b96d", + "text": "kubelet: Fix kubelet from panic after getting the wrong signal", + "markdown": "Kubelet: Fix kubelet from panic after getting the wrong signal ([#98200](https://github.com/kubernetes/kubernetes/pull/98200), [@wzshiming](https://github.com/wzshiming)) [SIG Node]", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98200", + "pr_number": 98200, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "98203": { + "commit": "e26570a96ecf3a908357b7fd3d99f803aece9ad2", + "text": "Aborting the drain command in a list of nodes will be deprecated. The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain. For now, users can try such experience by enabling --ignore-errors flag.", + "markdown": "Aborting the drain command in a list of nodes will be deprecated. The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain. For now, users can try such experience by enabling --ignore-errors flag. ([#98203](https://github.com/kubernetes/kubernetes/pull/98203), [@yuzhiquan](https://github.com/yuzhiquan))", + "author": "yuzhiquan", + "author_url": "https://github.com/yuzhiquan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98203", + "pr_number": 98203, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature", + "deprecation" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "98205": { + "commit": "2b7c61b1bb1889770f8d8cbdf0119617c5228f6e", + "text": "The pause image upgraded to `v3.4.1` in kubelet and kubeadm for both Linux and Windows.", + "markdown": "The pause image upgraded to `v3.4.1` in kubelet and kubeadm for both Linux and Windows. ([#98205](https://github.com/kubernetes/kubernetes/pull/98205), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98205", + "pr_number": 98205, + "areas": [ + "kubeadm", + "kubectl", + "kubelet", + "provider/gcp", + "test" + ], + "kinds": [ + "documentation", + "feature" + ], + "sigs": [ + "cli", + "cloud-provider", + "cluster-lifecycle", + "node", + "testing", + "windows" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "98243": { + "commit": "c04058418f7bb7df226d71d516ed4db918969288", + "text": "Remove alpha `CSIMigrationXXComplete` flag and add alpha `InTreePluginXXUnregister` flag. Deprecate `CSIMigrationvSphereComplete` flag and it will be removed in v1.22.", + "markdown": "Remove alpha `CSIMigrationXXComplete` flag and add alpha `InTreePluginXXUnregister` flag. Deprecate `CSIMigrationvSphereComplete` flag and it will be removed in v1.22. ([#98243](https://github.com/kubernetes/kubernetes/pull/98243), [@Jiawei0227](https://github.com/Jiawei0227))", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98243", + "pr_number": 98243, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature", + "deprecation" + ], + "sigs": [ + "node", + "storage" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "98250": { + "commit": "d2d9b0e1123b962fc80957fb588e009272180ebe", + "text": "kubectl version changed to write a warning message to stderr if the client and server version difference exceeds the supported version skew of +/-1 minor version.", + "markdown": "Kubectl version changed to write a warning message to stderr if the client and server version difference exceeds the supported version skew of +/-1 minor version. ([#98250](https://github.com/kubernetes/kubernetes/pull/98250), [@brianpursley](https://github.com/brianpursley)) [SIG CLI]", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98250", + "pr_number": 98250, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "98257": { + "commit": "f81220975e5736613ba7bcc8956fc6632a59a6ba", + "text": "Limits lease to have 1000 maximum attached objects.", + "markdown": "Limits lease to have 1000 maximum attached objects. ([#98257](https://github.com/kubernetes/kubernetes/pull/98257), [@lingsamuel](https://github.com/lingsamuel))", + "author": "lingsamuel", + "author_url": "https://github.com/lingsamuel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98257", + "pr_number": 98257, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "98261": { + "commit": "1a76d3ddfda509138fd0cee32549c8d070e89dbd", + "text": "Fix NPE in ephemeral storage eviction", + "markdown": "Fix NPE in ephemeral storage eviction ([#98261](https://github.com/kubernetes/kubernetes/pull/98261), [@wzshiming](https://github.com/wzshiming)) [SIG Node]", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98261", + "pr_number": 98261, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "98269": { + "commit": "0d8aae99f9debb4dfa0e56a2257f4ec74b6b641e", + "text": "kubeadm: apply the \"node.kubernetes.io/exclude-from-external-load-balancers\" label on control plane nodes during \"init\", \"join\" and \"upgrade\" to preserve backwards compatibility with the lagacy LB mode where nodes labeled as \"master\" where excluded. To opt-out you can remove the label from a node. See #97543 and the linked KEP for more details.", + "markdown": "Kubeadm: apply the \"node.kubernetes.io/exclude-from-external-load-balancers\" label on control plane nodes during \"init\", \"join\" and \"upgrade\" to preserve backwards compatibility with the lagacy LB mode where nodes labeled as \"master\" where excluded. To opt-out you can remove the label from a node. See #97543 and the linked KEP for more details. ([#98269](https://github.com/kubernetes/kubernetes/pull/98269), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-architecture/1143-node-role-labels", + "type": "KEP" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98269", + "pr_number": 98269, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "98277": { + "commit": "66cbf0196bd5ed0f06d7c40fccba887aae5405d8", + "text": "Services can specify loadBalancerClass to use a custom load balancer", + "markdown": "Services can specify loadBalancerClass to use a custom load balancer ([#98277](https://github.com/kubernetes/kubernetes/pull/98277), [@XudongLiuHarold](https://github.com/XudongLiuHarold))", + "documentation": [ + { + "description": "[KEP-1959]:\u003c", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cloud-provider/1959-service-lb-class-field\u003e", + "type": "KEP" + } + ], + "author": "XudongLiuHarold", + "author_url": "https://github.com/XudongLiuHarold", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98277", + "pr_number": 98277, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "cloud-provider", + "network" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "98284": { + "commit": "1bb010857445fc9b8b35e9e36a9fbbbdd80694b3", + "text": "Windows nodes on GCE will take longer to start due to dependencies installed at node creation time.", + "markdown": "Windows nodes on GCE will take longer to start due to dependencies installed at node creation time. ([#98284](https://github.com/kubernetes/kubernetes/pull/98284), [@pjh](https://github.com/pjh)) [SIG Cloud Provider]", + "author": "pjh", + "author_url": "https://github.com/pjh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98284", + "pr_number": 98284, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ] + }, + "98301": { + "commit": "25aa6cf0c58067656dd6e4c1e2c28efb259ab08c", + "text": "kubectl: add bash-completion for comma separated list on `kubectl get`", + "markdown": "Kubectl: add bash-completion for comma separated list on `kubectl get` ([#98301](https://github.com/kubernetes/kubernetes/pull/98301), [@phil9909](https://github.com/phil9909))", + "author": "phil9909", + "author_url": "https://github.com/phil9909", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98301", + "pr_number": 98301, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "98305": { + "commit": "659b4dc4a8a210c912e8e663532517f919123771", + "text": "kube-proxy: fix a bug on UDP `NodePort` Services where stale connection tracking entries may blackhole the traffic directed to the `NodePort`", + "markdown": "Kube-proxy: fix a bug on UDP `NodePort` Services where stale connection tracking entries may blackhole the traffic directed to the `NodePort` ([#98305](https://github.com/kubernetes/kubernetes/pull/98305), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98305", + "pr_number": 98305, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug", + "failing-test", + "flake" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "98311": { + "commit": "5cd694ba7d7cb04614837727172fa297d8780edb", + "text": "Fixed provisioning of Cinder volumes migrated to CSI when StorageClass with AllowedTopologies was used.", + "markdown": "Fixed provisioning of Cinder volumes migrated to CSI when StorageClass with AllowedTopologies was used. ([#98311](https://github.com/kubernetes/kubernetes/pull/98311), [@jsafrane](https://github.com/jsafrane)) [SIG Storage]", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98311", + "pr_number": 98311, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "98312": { + "commit": "b7fc3f91ea64eff4be673449e08df581eeddf42c", + "text": "The `export` query parameter (inconsistently supported by API resources and deprecated in v1.14) is fully removed. Requests setting this query parameter will now receive a 400 status response.", + "markdown": "The `export` query parameter (inconsistently supported by API resources and deprecated in v1.14) is fully removed. Requests setting this query parameter will now receive a 400 status response. ([#98312](https://github.com/kubernetes/kubernetes/pull/98312), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth and Testing]", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98312", + "pr_number": 98312, + "areas": [ + "apiserver", + "code-generation", + "test" + ], + "kinds": [ + "api-change", + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "98324": { + "commit": "27104f159557da6bec20cf8227b468b1f22cd884", + "text": "Export `NewDebuggingRoundTripper` function and `DebugLevel` options in the k8s.io/client-go/transport package.", + "markdown": "Export `NewDebuggingRoundTripper` function and `DebugLevel` options in the k8s.io/client-go/transport package. ([#98324](https://github.com/kubernetes/kubernetes/pull/98324), [@atosatto](https://github.com/atosatto))", + "author": "atosatto", + "author_url": "https://github.com/atosatto", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98324", + "pr_number": 98324, + "areas": [ + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "98325": { + "commit": "d2659101bf15b6218ba7f1a199a67af65242f00f", + "text": "The default delegating authorization options now allow unauthenticated access to healthz, readyz, and livez. A system:masters user connecting to an authz delegator will not perform an authz check.", + "markdown": "The default delegating authorization options now allow unauthenticated access to healthz, readyz, and livez. A system:masters user connecting to an authz delegator will not perform an authz check. ([#98325](https://github.com/kubernetes/kubernetes/pull/98325), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth, Cloud Provider and Scheduling]", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98325", + "pr_number": 98325, + "areas": [ + "apiserver", + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider", + "scheduling" + ], + "duplicate": true + }, + "98332": { + "commit": "bb310acad5ad73aa98da377c583415510543643d", + "text": "Remove storage metrics `storage_operation_errors_total`, since we already have `storage_operation_status_count`.And add new field `status` for `storage_operation_duration_seconds`, so that we can know about all status storage operation latency.", + "markdown": "Remove storage metrics `storage_operation_errors_total`, since we already have `storage_operation_status_count`.And add new field `status` for `storage_operation_duration_seconds`, so that we can know about all status storage operation latency. ([#98332](https://github.com/kubernetes/kubernetes/pull/98332), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation and Storage]", + "author": "JornShen", + "author_url": "https://github.com/JornShen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98332", + "pr_number": 98332, + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "storage" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "98363": { + "commit": "35bf00acb1f5f2be22cdcb180c5e1227a72934fc", + "text": "Kubernetes is now built using go1.15.7", + "markdown": "Kubernetes is now built using go1.15.7 ([#98363](https://github.com/kubernetes/kubernetes/pull/98363), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Node, Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98363", + "pr_number": 98363, + "areas": [ + "dependency", + "provider/gcp", + "release-eng", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "cloud-provider", + "instrumentation", + "node", + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "98365": { + "commit": "413ff6751bec6a42d7fd946f544a5bd924786f67", + "text": "Fix cgroup handling for systemd with cgroup v2", + "markdown": "Fix cgroup handling for systemd with cgroup v2 ([#98365](https://github.com/kubernetes/kubernetes/pull/98365), [@odinuge](https://github.com/odinuge)) [SIG Node]", + "author": "odinuge", + "author_url": "https://github.com/odinuge", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98365", + "pr_number": 98365, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "98376": { + "commit": "c193c1b2347c2f9bfbdd4f5c4dd7f41fcd91a204", + "text": "Pod status updates faster when reacting on probe results. The first readiness probe will be called faster when startup probes succeeded, which will make Pod status as ready faster.", + "markdown": "Pod status updates faster when reacting on probe results. The first readiness probe will be called faster when startup probes succeeded, which will make Pod status as ready faster. ([#98376](https://github.com/kubernetes/kubernetes/pull/98376), [@matthyx](https://github.com/matthyx))", + "author": "matthyx", + "author_url": "https://github.com/matthyx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98376", + "pr_number": 98376, + "areas": [ + "e2e-test-framework", + "kubelet", + "test" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "98401": { + "commit": "a8e819350c7bae604b1e757bbd94d5777f672be1", + "text": "base-images: Update to debian-iptables:buster-v1.4.0\n- Uses iptables 1.8.5\n- base-images: Update to debian-base:buster-v1.3.0\n- cluster/images/etcd: Build etcd:3.4.13-2 image\n - Uses debian-base:buster-v1.3.0", + "markdown": "Base-images: Update to debian-iptables:buster-v1.4.0\n - Uses iptables 1.8.5\n - base-images: Update to debian-base:buster-v1.3.0\n - cluster/images/etcd: Build etcd:3.4.13-2 image\n - Uses debian-base:buster-v1.3.0 ([#98401](https://github.com/kubernetes/kubernetes/pull/98401), [@pacoxu](https://github.com/pacoxu)) [SIG Testing]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98401", + "pr_number": 98401, + "areas": [ + "release-eng", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + }, + "98430": { + "commit": "15252db5f232e465b960d27e8059948385e4e248", + "text": "Resolves flakes in the Ingress conformance tests due to conflicts with controllers updating the Ingress object", + "markdown": "Resolves flakes in the Ingress conformance tests due to conflicts with controllers updating the Ingress object ([#98430](https://github.com/kubernetes/kubernetes/pull/98430), [@liggitt](https://github.com/liggitt)) [SIG Network and Testing]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98430", + "pr_number": 98430, + "areas": [ + "test" + ], + "kinds": [ + "flake" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true + }, + "98436": { + "commit": "4fc184f383cd9e4f4a7765b385ed95e807db7661", + "text": "Fixes connection errors when using `--volume-host-cidr-denylist` or `--volume-host-allow-local-loopback`", + "markdown": "Fixes connection errors when using `--volume-host-cidr-denylist` or `--volume-host-allow-local-loopback` ([#98436](https://github.com/kubernetes/kubernetes/pull/98436), [@liggitt](https://github.com/liggitt)) [SIG Network and Storage]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98436", + "pr_number": 98436, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "storage" + ], + "duplicate": true + }, + "98441": { + "commit": "6059a67e49f04ea49120b113897d25286773a397", + "text": "Added `.spec.completionMode` field to Job, with accepted values `NonIndexed` (default) and `Indexed`. This is an alpha field and is only honored by servers with the `IndexedJob` feature gate enabled.", + "markdown": "Added `.spec.completionMode` field to Job, with accepted values `NonIndexed` (default) and `Indexed`. This is an alpha field and is only honored by servers with the `IndexedJob` feature gate enabled. ([#98441](https://github.com/kubernetes/kubernetes/pull/98441), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps and CLI]", + "documentation": [ + { + "description": "[KEP]", + "url": "http://git.k8s.io/enhancements/keps/sig-apps/2214-indexed-job", + "type": "external" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98441", + "pr_number": 98441, + "areas": [ + "batch", + "kubectl", + "workload-api/job" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "cli" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "98453": { + "commit": "4b3d6369dd204c38959d4f508c7a3a3d3d81eb35", + "text": "NONE", + "markdown": "NONE ([#98453](https://github.com/kubernetes/kubernetes/pull/98453), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", + "author": "tanjing2020", + "author_url": "https://github.com/tanjing2020", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98453", + "pr_number": 98453, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "98458": { + "commit": "d0a433fa4504e974c69a6c9a70af9f77c7a00112", + "text": "Cluster admins can now turn off `/debug/pprof` and `/debug/flags/v` endpoint in kubelet by setting `enableProfilingHandler` and `enableDebugFlagsHandler` to `false` in the Kubelet configuration file. Options `enableProfilingHandler` and `enableDebugFlagsHandler` can be set to `true` only when `enableDebuggingHandlers` is also set to `true`.", + "markdown": "Cluster admins can now turn off `/debug/pprof` and `/debug/flags/v` endpoint in kubelet by setting `enableProfilingHandler` and `enableDebugFlagsHandler` to `false` in the Kubelet configuration file. Options `enableProfilingHandler` and `enableDebugFlagsHandler` can be set to `true` only when `enableDebuggingHandlers` is also set to `true`. ([#98458](https://github.com/kubernetes/kubernetes/pull/98458), [@SaranBalaji90](https://github.com/SaranBalaji90))", + "author": "SaranBalaji90", + "author_url": "https://github.com/SaranBalaji90", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98458", + "pr_number": 98458, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true + }, + "98510": { + "commit": "b9b11d3100ffda888ca05370b8c74bc7ba0debf0", + "text": "Fix errors when accessing Windows container stats for Dockershim", + "markdown": "Fix errors when accessing Windows container stats for Dockershim ([#98510](https://github.com/kubernetes/kubernetes/pull/98510), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows]", + "author": "jsturtevant", + "author_url": "https://github.com/jsturtevant", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98510", + "pr_number": 98510, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true + }, + "98515": { + "commit": "4e95e1df04a1aaf0ece5a3df947b49165ddd860c", + "text": "hugepages request values are limited to integer multiples of the page size.", + "markdown": "Hugepages request values are limited to integer multiples of the page size. ([#98515](https://github.com/kubernetes/kubernetes/pull/98515), [@lala123912](https://github.com/lala123912)) [SIG Apps]", + "author": "lala123912", + "author_url": "https://github.com/lala123912", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98515", + "pr_number": 98515, + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "98518": { + "commit": "ebe7380b384f45e4cac5c360767b5ea033b05fd6", + "text": "NONE", + "markdown": "NONE ([#98518](https://github.com/kubernetes/kubernetes/pull/98518), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", + "author": "tanjing2020", + "author_url": "https://github.com/tanjing2020", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98518", + "pr_number": 98518, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "98526": { + "commit": "90ca7e89e908acfbfa02388654fedbfc59d49581", + "text": "Fix kube-proxy container image architecture for non amd64 images.", + "markdown": "Fix kube-proxy container image architecture for non amd64 images. ([#98526](https://github.com/kubernetes/kubernetes/pull/98526), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98526", + "pr_number": 98526, + "areas": [ + "release-eng", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "release", + "testing" + ], + "duplicate": true + }, + "98538": { + "commit": "7c702138f9aa1bde679ced06692bb26d4006a762", + "text": "OpenStack Cinder CSI migration is on by default, Clinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work.", + "markdown": "OpenStack Cinder CSI migration is on by default, Clinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work. ([#98538](https://github.com/kubernetes/kubernetes/pull/98538), [@dims](https://github.com/dims)) [SIG Storage]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98538", + "pr_number": 98538, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true, + "action_required": true + }, + "98546": { + "commit": "525e397a4817435d8b9cb1ca52dfa17b5bbbb4f6", + "text": "`diskformat` storage class parameter for in-tree vSphere volume plugin is deprecated as of v1.21 release. Please consider updating storageclass and remove `diskformat` parameter. vSphere CSI Driver does not support diskformat storageclass parameter.\n\nvSphere releases less than 67u3 are deprecated as of v1.21. Please consider upgrading vSphere to 67u3 or above. vSphere CSI Driver requires minimum vSphere 67u3.\n\nVM Hardware version less than 15 is deprecated as of v1.21. Please consider upgrading the Node VM Hardware version to 15 or above. vSphere CSI Driver recommends Node VM's Hardware version set to at least vmx-15.\n\nMulti vCenter support is deprecated as of v1.21. If you have a Kubernetes cluster spanning across multiple vCenter servers, please consider moving all k8s nodes to a single vCenter Server. vSphere CSI Driver does not support Kubernetes deployment spanning across multiple vCenter servers.\n\nSupport for these deprecations will be available till Kubernetes v1.24.", + "markdown": "`diskformat` storage class parameter for in-tree vSphere volume plugin is deprecated as of v1.21 release. Please consider updating storageclass and remove `diskformat` parameter. vSphere CSI Driver does not support diskformat storageclass parameter.\n \n vSphere releases less than 67u3 are deprecated as of v1.21. Please consider upgrading vSphere to 67u3 or above. vSphere CSI Driver requires minimum vSphere 67u3.\n \n VM Hardware version less than 15 is deprecated as of v1.21. Please consider upgrading the Node VM Hardware version to 15 or above. vSphere CSI Driver recommends Node VM's Hardware version set to at least vmx-15.\n \n Multi vCenter support is deprecated as of v1.21. If you have a Kubernetes cluster spanning across multiple vCenter servers, please consider moving all k8s nodes to a single vCenter Server. vSphere CSI Driver does not support Kubernetes deployment spanning across multiple vCenter servers.\n \n Support for these deprecations will be available till Kubernetes v1.24. ([#98546](https://github.com/kubernetes/kubernetes/pull/98546), [@divyenpatel](https://github.com/divyenpatel))", + "author": "divyenpatel", + "author_url": "https://github.com/divyenpatel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98546", + "pr_number": 98546, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "deprecation", + "feature" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "98553": { + "commit": "6aef7ca0133e64087d17d42ab6be719da2cc3d4e", + "text": "The `ServiceAccountIssuerDiscovery` feature has graduated to GA, and is unconditionally enabled. The `ServiceAccountIssuerDiscovery` feature-gate will be removed in 1.22.", + "markdown": "The `ServiceAccountIssuerDiscovery` feature has graduated to GA, and is unconditionally enabled. The `ServiceAccountIssuerDiscovery` feature-gate will be removed in 1.22. ([#98553](https://github.com/kubernetes/kubernetes/pull/98553), [@mtaufen](https://github.com/mtaufen)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1393-oidc-discovery", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#service-account-issuer-discovery", + "type": "official" + } + ], + "author": "mtaufen", + "author_url": "https://github.com/mtaufen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98553", + "pr_number": 98553, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "98572": { + "commit": "e4e9c31218becac11f176cc824f5cc6b7a8036ac", + "text": "Kubernetes is now built with Golang 1.16", + "markdown": "Kubernetes is now built with Golang 1.16 ([#98572](https://github.com/kubernetes/kubernetes/pull/98572), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Release and Testing]", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98572", + "pr_number": 98572, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl", + "provider/gcp", + "release-eng", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "node", + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "98576": { + "commit": "0a0490e34fb28ac91e147bafbd252a97df98a6b5", + "text": "Fixes server-side apply for APIService resources.", + "markdown": "Fixes server-side apply for APIService resources. ([#98576](https://github.com/kubernetes/kubernetes/pull/98576), [@kevindelgado](https://github.com/kevindelgado))", + "author": "kevindelgado", + "author_url": "https://github.com/kevindelgado", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98576", + "pr_number": 98576, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "98582": { + "commit": "e64547242541f56229b7c1cf9a4cf153565d17a6", + "text": "1. PodAffinityTerm includes a namespaceSelector field to allow selecting eligible namespaces based on their labels. \n2. A new CrossNamespacePodAffinity quota scope API that allows restricting which namespaces allowed to use PodAffinityTerm with corss-namespace reference via namespaceSelector or namespaces fields.", + "markdown": "1. PodAffinityTerm includes a namespaceSelector field to allow selecting eligible namespaces based on their labels. \n 2. A new CrossNamespacePodAffinity quota scope API that allows restricting which namespaces allowed to use PodAffinityTerm with corss-namespace reference via namespaceSelector or namespaces fields. ([#98582](https://github.com/kubernetes/kubernetes/pull/98582), [@ahg-g](https://github.com/ahg-g)) [SIG API Machinery, Apps, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/2249-pod-affinity-namespace-selector", + "type": "KEP" + } + ], + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98582", + "pr_number": 98582, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "98676": { + "commit": "002fb9fc5e91805d53d61e7bd302341ef6ef66c6", + "text": "A new histogram metric to track the time it took to delete a job by the `TTLAfterFinished` controller", + "markdown": "A new histogram metric to track the time it took to delete a job by the `TTLAfterFinished` controller ([#98676](https://github.com/kubernetes/kubernetes/pull/98676), [@ahg-g](https://github.com/ahg-g))", + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98676", + "pr_number": 98676, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "98678": { + "commit": "60a0740c958023d48ad5e3d19c65e18a7ec6a662", + "text": "The `TTLAfterFinished` feature flag is now beta and enabled by default", + "markdown": "The `TTLAfterFinished` feature flag is now beta and enabled by default ([#98678](https://github.com/kubernetes/kubernetes/pull/98678), [@ahg-g](https://github.com/ahg-g))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/592-ttl-after-finish", + "type": "KEP" + } + ], + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98678", + "pr_number": 98678, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "auth" + ], + "feature": true, + "duplicate": true + }, + "98700": { + "commit": "429eaca5369f3e33d8c4dc1121c7cccb4dddb7fc", + "text": "Newly provisioned PVs by gce-pd will no longer have the beta FailureDomain label. gce-pd volume plugin will start to have GA topology label instead.", + "markdown": "Newly provisioned PVs by gce-pd will no longer have the beta FailureDomain label. gce-pd volume plugin will start to have GA topology label instead. ([#98700](https://github.com/kubernetes/kubernetes/pull/98700), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Cloud Provider, Storage and Testing]", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98700", + "pr_number": 98700, + "areas": [ + "cloudprovider", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "98715": { + "commit": "3416b6b0a4e7b76cb38f6b1749766599b3fd2368", + "text": "Truncates a message if it hits the `NoteLengthLimit` when the scheduler records an event for the pod that indicates the pod has failed to schedule.", + "markdown": "Truncates a message if it hits the `NoteLengthLimit` when the scheduler records an event for the pod that indicates the pod has failed to schedule. ([#98715](https://github.com/kubernetes/kubernetes/pull/98715), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98715", + "pr_number": 98715, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "98727": { + "commit": "a0341d7471c238acd03e1923161b4a2671a7fe2d", + "text": "Jobs API has a new `.spec.suspend` field that can be used to suspend and resume Jobs. This is an alpha field which is only honored by servers with the `SuspendJob` feature gate enabled.", + "markdown": "Jobs API has a new `.spec.suspend` field that can be used to suspend and resume Jobs. This is an alpha field which is only honored by servers with the `SuspendJob` feature gate enabled. ([#98727](https://github.com/kubernetes/kubernetes/pull/98727), [@adtac](https://github.com/adtac))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2234", + "type": "KEP" + } + ], + "author": "adtac", + "author_url": "https://github.com/adtac", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98727", + "pr_number": 98727, + "areas": [ + "e2e-test-framework", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "98728": { + "commit": "c884bf1648abccc3414f745e2f932368c5e3d5e6", + "text": "kubeadm: Some text in the `kubeadm upgrade plan` output has changed. If you have scripts or other automation that parses this output, please review these changes and update your scripts to account for the new output.", + "markdown": "Kubeadm: Some text in the `kubeadm upgrade plan` output has changed. If you have scripts or other automation that parses this output, please review these changes and update your scripts to account for the new output. ([#98728](https://github.com/kubernetes/kubernetes/pull/98728), [@stmcginnis](https://github.com/stmcginnis)) [SIG Cluster Lifecycle]", + "author": "stmcginnis", + "author_url": "https://github.com/stmcginnis", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98728", + "pr_number": 98728, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "98730": { + "commit": "a4b3d3167853f3cfd25a69949625f146c998c945", + "text": "Kubelet command line flags related to dockershim are now showing deprecation message as they will be removed along with dockershim in future release.", + "markdown": "Kubelet command line flags related to dockershim are now showing deprecation message as they will be removed along with dockershim in future release. ([#98730](https://github.com/kubernetes/kubernetes/pull/98730), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98730", + "pr_number": 98730, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "98750": { + "commit": "9273c3be128e19bdc75eadbfbde0eb6ba3b1f1d3", + "text": "Fixes problem where invalid selector on `PodDisruptionBudget` leads to a nil pointer dereference that causes the Controller manager to crash loop.", + "markdown": "Fixes problem where invalid selector on `PodDisruptionBudget` leads to a nil pointer dereference that causes the Controller manager to crash loop. ([#98750](https://github.com/kubernetes/kubernetes/pull/98750), [@mortent](https://github.com/mortent))", + "author": "mortent", + "author_url": "https://github.com/mortent", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98750", + "pr_number": 98750, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "98753": { + "commit": "dc74b9d0c7e70a4acdaf520ef351f4f1abb5a740", + "text": "Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes.", + "markdown": "Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. ([#98753](https://github.com/kubernetes/kubernetes/pull/98753), [@Jiawei0227](https://github.com/Jiawei0227))", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98753", + "pr_number": 98753, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "storage" + ], + "duplicate": true + }, + "98755": { + "commit": "0faf0960410371d0c08173e331c4120cd6391d57", + "text": "kubelet: fixes a bug in the HostPort dockershim implementation that caused the conformance test \"HostPort validates that there is no conflict between pods with same hostPort but different hostIP and protocol\" to fail.", + "markdown": "Kubelet: fixes a bug in the HostPort dockershim implementation that caused the conformance test \"HostPort validates that there is no conflict between pods with same hostPort but different hostIP and protocol\" to fail. ([#98755](https://github.com/kubernetes/kubernetes/pull/98755), [@aojea](https://github.com/aojea)) [SIG Cloud Provider, Network and Node]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98755", + "pr_number": 98755, + "areas": [ + "conformance", + "kubelet", + "provider/gcp" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "cloud-provider", + "network", + "node" + ], + "duplicate": true, + "duplicate_kind": true + }, + "98781": { + "commit": "26744ac58dd31ceb342b54a2a9d71d66aa95811d", + "text": "The e2e suite can be instructed not to wait for pods in kube-system to be ready or for all nodes to be ready by passing `--allowed-not-ready-nodes=-1` when invoking the e2e.test program. This allows callers to run subsets of the e2e suite in scenarios other than perfectly healthy clusters.", + "markdown": "The e2e suite can be instructed not to wait for pods in kube-system to be ready or for all nodes to be ready by passing `--allowed-not-ready-nodes=-1` when invoking the e2e.test program. This allows callers to run subsets of the e2e suite in scenarios other than perfectly healthy clusters. ([#98781](https://github.com/kubernetes/kubernetes/pull/98781), [@smarterclayton](https://github.com/smarterclayton)) [SIG Testing]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98781", + "pr_number": 98781, + "areas": [ + "e2e-test-framework", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ] + }, + "98787": { + "commit": "c5759ab86d9813269bd61108dec43ef36a993e02", + "text": "The new `-gce-zones` flag on the `e2e.test` binary instructs tests that check for information about how the cluster interacts with the cloud to limit their queries to the provided zone list. If not specified, the current behavior of asking the cloud provider for all available zones in multi zone clusters is preserved.", + "markdown": "The new `-gce-zones` flag on the `e2e.test` binary instructs tests that check for information about how the cluster interacts with the cloud to limit their queries to the provided zone list. If not specified, the current behavior of asking the cloud provider for all available zones in multi zone clusters is preserved. ([#98787](https://github.com/kubernetes/kubernetes/pull/98787), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Cluster Lifecycle and Testing]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98787", + "pr_number": 98787, + "areas": [ + "e2e-test-framework", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "testing" + ], + "duplicate": true + }, + "98809": { + "commit": "a27a6e78f2b2916c6306cdb5bfbbacd2c2a8d3c9", + "text": "Clients required to use go1.15.8+ or go1.16+ if kube-apiserver has the goaway feature enabled to avoid unexpected data race condition.", + "markdown": "Clients required to use go1.15.8+ or go1.16+ if kube-apiserver has the goaway feature enabled to avoid unexpected data race condition. ([#98809](https://github.com/kubernetes/kubernetes/pull/98809), [@answer1991](https://github.com/answer1991))", + "author": "answer1991", + "author_url": "https://github.com/answer1991", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98809", + "pr_number": 98809, + "areas": [ + "apiserver" + ], + "kinds": [ + "flake" + ], + "sigs": [ + "api-machinery" + ] + }, + "98812": { + "commit": "afb1ee3c9a4ee265412248d6135c466ca02a929a", + "text": "Support for Indexed Job: a Job that is considered completed when Pods associated to indexes from 0 to (.spec.completions-1) have succeeded.", + "markdown": "Support for Indexed Job: a Job that is considered completed when Pods associated to indexes from 0 to (.spec.completions-1) have succeeded. ([#98812](https://github.com/kubernetes/kubernetes/pull/98812), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps and CLI]", + "documentation": [ + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#indexed-job", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98812", + "pr_number": 98812, + "areas": [ + "batch", + "kubectl", + "workload-api/job" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "cli" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "98830": { + "commit": "254106c42c6b91669d92a9258ee4dc450f67dfd7", + "text": "Escape the special characters like `[`, `]` and ` ` that exist in vsphere windows path", + "markdown": "Escape the special characters like `[`, `]` and ` ` that exist in vsphere windows path ([#98830](https://github.com/kubernetes/kubernetes/pull/98830), [@liyanhui1228](https://github.com/liyanhui1228)) [SIG Storage and Windows]", + "author": "liyanhui1228", + "author_url": "https://github.com/liyanhui1228", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98830", + "pr_number": 98830, + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "storage", + "windows" + ], + "duplicate": true, + "duplicate_kind": true + }, + "98834": { + "commit": "3534e31ade5f6e79499b2d5fcca0d74033a01a45", + "text": "Kubernetes is now built using go1.15.8", + "markdown": "Kubernetes is now built using go1.15.8 ([#98834](https://github.com/kubernetes/kubernetes/pull/98834), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98834", + "pr_number": 98834, + "areas": [ + "dependency", + "provider/gcp", + "release-eng", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "instrumentation", + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "98836": { + "commit": "5fa704c6a883d369d1a4cf273f8dd13516e4a58c", + "text": "kubeadm: get k8s CI version markers from k8s infra bucket", + "markdown": "Kubeadm: get k8s CI version markers from k8s infra bucket ([#98836](https://github.com/kubernetes/kubernetes/pull/98836), [@hasheddan](https://github.com/hasheddan)) [SIG Cluster Lifecycle and Release]", + "author": "hasheddan", + "author_url": "https://github.com/hasheddan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98836", + "pr_number": 98836, + "areas": [ + "kubeadm", + "release-eng" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle", + "release" + ], + "duplicate": true + }, + "98858": { + "commit": "5106581d232dbae76812676a56045e232d42d446", + "text": "`audit.k8s.io/v1beta1` and `audit.k8s.io/v1alpha1` audit policy configuration and audit events are deprecated in favor of `audit.k8s.io/v1`, available since v1.13. kube-apiserver invocations that specify alpha or beta policy configurations with `--audit-policy-file`, or explicitly request alpha or beta audit events with `--audit-log-version` / `--audit-webhook-version` must update to use `audit.k8s.io/v1` and accept `audit.k8s.io/v1` events prior to v1.24.", + "markdown": "`audit.k8s.io/v1beta1` and `audit.k8s.io/v1alpha1` audit policy configuration and audit events are deprecated in favor of `audit.k8s.io/v1`, available since v1.13. kube-apiserver invocations that specify alpha or beta policy configurations with `--audit-policy-file`, or explicitly request alpha or beta audit events with `--audit-log-version` / `--audit-webhook-version` must update to use `audit.k8s.io/v1` and accept `audit.k8s.io/v1` events prior to v1.24. ([#98858](https://github.com/kubernetes/kubernetes/pull/98858), [@carlory](https://github.com/carlory)) [SIG Auth]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98858", + "pr_number": 98858, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change", + "cleanup", + "deprecation", + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true, + "duplicate_kind": true + }, + "98875": { + "commit": "2b6a8381d229b8b3736990340a603c6a6d506eb8", + "text": "NONE", + "markdown": "NONE ([#98875](https://github.com/kubernetes/kubernetes/pull/98875), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", + "author": "tanjing2020", + "author_url": "https://github.com/tanjing2020", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98875", + "pr_number": 98875, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "98878": { + "commit": "bcfa3a0a36223a24891c7b49ff33dc51bde6ec31", + "text": "The `CronJobControllerV2` feature flag graduates to Beta and set to be enabled by default.", + "markdown": "The `CronJobControllerV2` feature flag graduates to Beta and set to be enabled by default. ([#98878](https://github.com/kubernetes/kubernetes/pull/98878), [@soltysh](https://github.com/soltysh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/19-Graduate-CronJob-to-Stable", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98878", + "pr_number": 98878, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "98882": { + "commit": "0867767d6ed9871abe0a20a08547e9daf89684a4", + "text": "kubeadm: fix a bug where external credentials in an existing admin.conf prevented the CA certificate to be written in the cluster-info ConfigMap.", + "markdown": "Kubeadm: fix a bug where external credentials in an existing admin.conf prevented the CA certificate to be written in the cluster-info ConfigMap. ([#98882](https://github.com/kubernetes/kubernetes/pull/98882), [@kvaps](https://github.com/kvaps)) [SIG Cluster Lifecycle]", + "author": "kvaps", + "author_url": "https://github.com/kvaps", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98882", + "pr_number": 98882, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "98892": { + "commit": "cd54b1931d015df7c1609043d81b1f8308f2187d", + "text": "A client-go metric, rest_client_exec_plugin_call_total, has been added to track total calls to client-go credential plugins.", + "markdown": "A client-go metric, rest_client_exec_plugin_call_total, has been added to track total calls to client-go credential plugins. ([#98892](https://github.com/kubernetes/kubernetes/pull/98892), [@ankeesler](https://github.com/ankeesler)) [SIG API Machinery, Auth, Cluster Lifecycle and Instrumentation]", + "author": "ankeesler", + "author_url": "https://github.com/ankeesler", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98892", + "pr_number": 98892, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cluster-lifecycle", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "98918": { + "commit": "70f2608b53955806941924a8ed9854c443c474d2", + "text": "PodSecurityPolicy only stores \"generic\" as allowed volume type if the GenericEphemeralVolume feature gate is enabled", + "markdown": "PodSecurityPolicy only stores \"generic\" as allowed volume type if the GenericEphemeralVolume feature gate is enabled ([#98918](https://github.com/kubernetes/kubernetes/pull/98918), [@pohly](https://github.com/pohly)) [SIG Auth and Security]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98918", + "pr_number": 98918, + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "auth", + "security" + ], + "duplicate": true, + "duplicate_kind": true + }, + "98931": { + "commit": "031f2afbba6a3bade6e729e1709a0e792a1e6637", + "text": "APIs for kubelet annotations and labels from `k8s.io/kubernetes/pkg/kubelet/apis` are now moved under `k8s.io/kubelet/pkg/apis/`", + "markdown": "APIs for kubelet annotations and labels from `k8s.io/kubernetes/pkg/kubelet/apis` are now moved under `k8s.io/kubelet/pkg/apis/` ([#98931](https://github.com/kubernetes/kubernetes/pull/98931), [@michaelbeaumont](https://github.com/michaelbeaumont))", + "author": "michaelbeaumont", + "author_url": "https://github.com/michaelbeaumont", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98931", + "pr_number": 98931, + "areas": [ + "code-organization", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "auth", + "node" + ], + "duplicate": true + }, + "98939": { + "commit": "a6a66c359488d2f933ccdc3fcb6a57f5fb05b567", + "text": "Migrate `pkg/kubelet/(dockershim, network)` to structured logging\nExit code changed from 255 to 1", + "markdown": "Migrate `pkg/kubelet/(dockershim, network)` to structured logging\n Exit code changed from 255 to 1 ([#98939](https://github.com/kubernetes/kubernetes/pull/98939), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Network and Node]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98939", + "pr_number": 98939, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true, + "action_required": true + }, + "98946": { + "commit": "ff3ccc58cd926260731c5e6f4a9405d595916369", + "text": "Updates the commands `\n - kubectl kustomize {arg}\n - kubectl apply -k {arg}\n`to use same code as kustomize CLI [v4.0.5](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.0.5)", + "markdown": "Updates the commands `\n - kubectl kustomize {arg}\n - kubectl apply -k {arg}\n `to use same code as kustomize CLI [v4.0.5](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.0.5) ([#98946](https://github.com/kubernetes/kubernetes/pull/98946), [@monopole](https://github.com/monopole))", + "author": "monopole", + "author_url": "https://github.com/monopole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98946", + "pr_number": 98946, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "conformance", + "dependency", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "architecture", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "node", + "storage" + ], + "duplicate": true + }, + "98952": { + "commit": "85cb886f7e2911a14cc84acc32c20a5d0254d8b9", + "text": "Alpha implementation of Kubectl Command Headers: SIG CLI KEP 859 enabled when KUBECTL_COMMAND_HEADERS environment variable set on the client command line.", + "markdown": "Alpha implementation of Kubectl Command Headers: SIG CLI KEP 859 enabled when KUBECTL_COMMAND_HEADERS environment variable set on the client command line. ([#98952](https://github.com/kubernetes/kubernetes/pull/98952), [@seans3](https://github.com/seans3))", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98952", + "pr_number": 98952, + "areas": [ + "code-generation", + "dependency", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cli" + ], + "feature": true, + "duplicate": true + }, + "98968": { + "commit": "a7147bb113dc5b7dd5a125664ea11fe8b53b2559", + "text": "Fixes add-on manager leader election to use leases instead of endpoints, similar to what kube-controller-manager does in 1.20", + "markdown": "Fixes add-on manager leader election to use leases instead of endpoints, similar to what kube-controller-manager does in 1.20 ([#98968](https://github.com/kubernetes/kubernetes/pull/98968), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98968", + "pr_number": 98968, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "98969": { + "commit": "2d153fe04ea10ea88df01584c80db569fdf3acb5", + "text": "Upgrades `IPv6Dualstack` to `Beta` and turns it on by default. New clusters or existing clusters are not be affected until an actor starts adding secondary Pods and service CIDRS CLI flags as described here: [IPv4/IPv6 Dual-stack](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack)", + "markdown": "Upgrades `IPv6Dualstack` to `Beta` and turns it on by default. New clusters or existing clusters are not be affected until an actor starts adding secondary Pods and service CIDRS CLI flags as described here: [IPv4/IPv6 Dual-stack](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack) ([#98969](https://github.com/kubernetes/kubernetes/pull/98969), [@khenidak](https://github.com/khenidak))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack", + "type": "KEP" + } + ], + "author": "khenidak", + "author_url": "https://github.com/khenidak", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98969", + "pr_number": 98969, + "areas": [ + "apiserver", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "cloud-provider", + "network", + "node" + ], + "feature": true, + "duplicate": true + }, + "98977": { + "commit": "2695ef3f1b0e2fc51ffb1bcb8491a4165587a089", + "text": "Update the latest validated version of Docker to 20.10", + "markdown": "Update the latest validated version of Docker to 20.10 ([#98977](https://github.com/kubernetes/kubernetes/pull/98977), [@neolit123](https://github.com/neolit123)) [SIG CLI, Cluster Lifecycle and Node]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98977", + "pr_number": 98977, + "areas": [ + "dependency", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "cluster-lifecycle", + "node" + ], + "feature": true, + "duplicate": true + }, + "98979": { + "commit": "b2a5d67dd5784bdc4fa90b6c64a395de10b814b8", + "text": "Add `csi_operations_seconds` metric on kubelet that exposes CSI operations duration and status for node CSI operations.", + "markdown": "Add `csi_operations_seconds` metric on kubelet that exposes CSI operations duration and status for node CSI operations. ([#98979](https://github.com/kubernetes/kubernetes/pull/98979), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Instrumentation and Storage]", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98979", + "pr_number": 98979, + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "storage" + ], + "feature": true, + "duplicate": true + }, + "98980": { + "commit": "b2b8c1f18d1056db23c1cd377d6dc3dd4fb4dcc1", + "text": "apiVersion: kubeadm.k8s.io/v1beta3\nkind: JoinConfiguration\ndiscovery:\n bootstrapToken:\n apiServerEndpoint: kube-apiserver:6443\n token: abcdef.0123456789abcdef\n unsafeSkipCAVerification: true\n timeout: 5m0s\n tlsBootstrapToken: abcdef.0123456789abcdef", + "markdown": "ApiVersion: kubeadm.k8s.io/v1beta3\n kind: JoinConfiguration\n discovery:\n bootstrapToken:\n apiServerEndpoint: kube-apiserver:6443\n token: abcdef.0123456789abcdef\n unsafeSkipCAVerification: true\n timeout: 5m0s\n tlsBootstrapToken: abcdef.0123456789abcdef ([#98980](https://github.com/kubernetes/kubernetes/pull/98980), [@syswu](https://github.com/syswu)) [SIG Cluster Lifecycle]", + "author": "syswu", + "author_url": "https://github.com/syswu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98980", + "pr_number": 98980, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "98984": { + "commit": "b0ba6c0b76c5dad63bb09b7f02020001d37507c0", + "text": "kubeadm: skip validating pod subnet against node-cidr-mask when allocate-node-cidrs is set to be false", + "markdown": "Kubeadm: skip validating pod subnet against node-cidr-mask when allocate-node-cidrs is set to be false ([#98984](https://github.com/kubernetes/kubernetes/pull/98984), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98984", + "pr_number": 98984, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "98990": { + "commit": "c0841211fdafa032c717bdb6f4955fdcfc183464", + "text": "Migrate `pkg/kubelet/(pod, pleg)` to structured logging", + "markdown": "Migrate `pkg/kubelet/(pod, pleg)` to structured logging ([#98990](https://github.com/kubernetes/kubernetes/pull/98990), [@gjkim42](https://github.com/gjkim42)) [SIG Instrumentation and Node]", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98990", + "pr_number": 98990, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "instrumentation", + "node" + ], + "duplicate": true, + "do_not_publish": true + }, + "98993": { + "commit": "508a8839ad6ad9bde8d0a0ffc1c544018a4730c4", + "text": "Migrate `pkg/kubelet/certificate` to structured logging\nExit code changed from 255 to 1", + "markdown": "Migrate `pkg/kubelet/certificate` to structured logging\n Exit code changed from 255 to 1 ([#98993](https://github.com/kubernetes/kubernetes/pull/98993), [@SataQiu](https://github.com/SataQiu)) [SIG Auth and Node]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98993", + "pr_number": 98993, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "node" + ], + "duplicate": true, + "action_required": true + }, + "98999": { + "commit": "c7389c1f351d16fc061476b0d0c10e9a691e7089", + "text": "migrate pkg/kubelet/cloudresource to structured logging", + "markdown": "Migrate pkg/kubelet/cloudresource to structured logging ([#98999](https://github.com/kubernetes/kubernetes/pull/98999), [@sladyn98](https://github.com/sladyn98)) [SIG Node]", + "author": "sladyn98", + "author_url": "https://github.com/sladyn98", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98999", + "pr_number": 98999, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "99001": { + "commit": "731fac3a55b120fd9d4cbddfefe6acf6bba29551", + "text": "Migrate pkg/kubelet/nodestatus to structured logging", + "markdown": "Migrate pkg/kubelet/nodestatus to structured logging ([#99001](https://github.com/kubernetes/kubernetes/pull/99001), [@QiWang19](https://github.com/QiWang19)) [SIG Node]", + "author": "QiWang19", + "author_url": "https://github.com/QiWang19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99001", + "pr_number": 99001, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "99004": { + "commit": "9cc3665bd3383c3683248f1bbb242670a04417ca", + "text": "`kubectl exec` and `kubectl attach` now honor the `--quiet` flag which suppresses output from the local binary that could be confused by a script with the remote command output (all non-failure output is hidden). In addition, print inline with exec and attach the list of alternate containers when we default to the first spec.container.", + "markdown": "`kubectl exec` and `kubectl attach` now honor the `--quiet` flag which suppresses output from the local binary that could be confused by a script with the remote command output (all non-failure output is hidden). In addition, print inline with exec and attach the list of alternate containers when we default to the first spec.container. ([#99004](https://github.com/kubernetes/kubernetes/pull/99004), [@smarterclayton](https://github.com/smarterclayton)) [SIG CLI]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99004", + "pr_number": 99004, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true + }, + "99006": { + "commit": "c5680da8df28740cd73f34687142b34aff84a71e", + "text": "Migrate `pkg/kubelet/(cri)` to structured logging", + "markdown": "Migrate `pkg/kubelet/(cri)` to structured logging ([#99006](https://github.com/kubernetes/kubernetes/pull/99006), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Node]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99006", + "pr_number": 99006, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "99032": { + "commit": "14abaa23c32e9aaea19a5d59f3b0d6db820db74b", + "text": "Migrate `pkg/kubelet/(eviction)` to structured logging", + "markdown": "Migrate `pkg/kubelet/(eviction)` to structured logging ([#99032](https://github.com/kubernetes/kubernetes/pull/99032), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Node]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99032", + "pr_number": 99032, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "99045": { + "commit": "6aab94eff924bd3fcc6af241327a5381d079b279", + "text": "The metric `storage_operation_errors_total` is not removed, but is marked deprecated, and the metric `storage_operation_status_count` is marked deprecated. In both cases the `storage_operation_duration_seconds` metric can be used to recover equivalent counts (using `status=fail-unknown` in the case of `storage_operations_errors_total`).", + "markdown": "The metric `storage_operation_errors_total` is not removed, but is marked deprecated, and the metric `storage_operation_status_count` is marked deprecated. In both cases the `storage_operation_duration_seconds` metric can be used to recover equivalent counts (using `status=fail-unknown` in the case of `storage_operations_errors_total`). ([#99045](https://github.com/kubernetes/kubernetes/pull/99045), [@mattcary](https://github.com/mattcary))", + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99045", + "pr_number": 99045, + "kinds": [ + "cleanup" + ], + "sigs": [ + "instrumentation", + "storage" + ], + "duplicate": true, + "action_required": true + }, + "99050": { + "commit": "aa28a3563b5161a7a07d1a07afedc4d1d248bc47", + "text": "Add `migrated` field into `storage_operation_duration_seconds` metric", + "markdown": "Add `migrated` field into `storage_operation_duration_seconds` metric ([#99050](https://github.com/kubernetes/kubernetes/pull/99050), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps, Instrumentation and Storage]", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99050", + "pr_number": 99050, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "instrumentation", + "storage" + ], + "feature": true, + "duplicate": true + }, + "99060": { + "commit": "b7613c4315c18592621ecae4d4959985ed497623", + "text": "Fixes `kubectl top pod` documentation which should not claim to show Storage.", + "markdown": "Fixes `kubectl top pod` documentation which should not claim to show Storage. ([#99060](https://github.com/kubernetes/kubernetes/pull/99060), [@syswu](https://github.com/syswu))", + "author": "syswu", + "author_url": "https://github.com/syswu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99060", + "pr_number": 99060, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "do_not_publish": true + }, + "99062": { + "commit": "93ab4e96f3c07e99ff32724aafe6887b6eab94ee", + "text": "...\n metrics, err := getMetricsFromMetricsAPI(o.MetricsClient, o.Namespace, o.ResourceName, o.AllNamespaces, selector)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\t// First we check why no metrics have been received.\n\tif len(metrics.Items) == 0 {\n\t\t// If the API server query is successful but all the pods are newly created,\n\t\t// the metrics are probably not ready yet, so we return the error here in the first place.\n\t\te := verifyEmptyMetrics(o, selector)\n\t\tif e != nil {\n\t\t\treturn e\n\t\t}\n ....\n\t}\n\n\tif err != nil {\n\t\treturn err\n\t}", + "markdown": "...\n metrics, err := getMetricsFromMetricsAPI(o.MetricsClient, o.Namespace, o.ResourceName, o.AllNamespaces, selector)\n \tif err != nil {\n \t\treturn err\n \t}\n \n \t// First we check why no metrics have been received.\n \tif len(metrics.Items) == 0 {\n \t\t// If the API server query is successful but all the pods are newly created,\n \t\t// the metrics are probably not ready yet, so we return the error here in the first place.\n \t\te := verifyEmptyMetrics(o, selector)\n \t\tif e != nil {\n \t\t\treturn e\n \t\t}\n ....\n \t}\n \n \tif err != nil {\n \t\treturn err\n \t} ([#99062](https://github.com/kubernetes/kubernetes/pull/99062), [@syswu](https://github.com/syswu)) [SIG CLI]", + "author": "syswu", + "author_url": "https://github.com/syswu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99062", + "pr_number": 99062, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "do_not_publish": true + }, + "99063": { + "commit": "7e2e928f3920825f17096c959500f7b72dc51f8e", + "text": "NONE", + "markdown": "NONE ([#99063](https://github.com/kubernetes/kubernetes/pull/99063), [@ZxYuan](https://github.com/ZxYuan)) [SIG API Machinery]", + "author": "ZxYuan", + "author_url": "https://github.com/ZxYuan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99063", + "pr_number": 99063, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "99068": { + "commit": "ecd1d8aed3b489c21291cc995d96f7885e001134", + "text": "Unable read directory \"/root/bin\" from your PATH: open /root/bin: no such file or directory. Skipping...\nerror: unable to find any kubectl plugins in your PATH", + "markdown": "Unable read directory \"/root/bin\" from your PATH: open /root/bin: no such file or directory. Skipping...\n error: unable to find any kubectl plugins in your PATH ([#99068](https://github.com/kubernetes/kubernetes/pull/99068), [@syswu](https://github.com/syswu)) [SIG CLI]", + "author": "syswu", + "author_url": "https://github.com/syswu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99068", + "pr_number": 99068, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup", + "documentation" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "99115": { + "commit": "d1a2af554a281f22c14c7dbeaf824e478fc0c11c", + "text": "added `ephemeral_volume_controller_create[_failures]_total` counters to kube-controller-manager metrics", + "markdown": "Added `ephemeral_volume_controller_create[_failures]_total` counters to kube-controller-manager metrics ([#99115](https://github.com/kubernetes/kubernetes/pull/99115), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Cluster Lifecycle, Instrumentation and Storage]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/pohly/enhancements/blob/master/keps/sig-storage/1698-generic-ephemeral-volumes/README.md#monitoring-requirements", + "type": "external" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99115", + "pr_number": 99115, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "cluster-lifecycle", + "instrumentation", + "storage" + ], + "feature": true, + "duplicate": true + }, + "99122": { + "commit": "0f140bf1eeaf63c155f5eba1db8db9b5d52d5467", + "text": "When dynamically provisioning Azure File volumes for a premium account, the requested size will be set to 100GB if the request is initially lower than this value to accommodate Azure File requirements.", + "markdown": "When dynamically provisioning Azure File volumes for a premium account, the requested size will be set to 100GB if the request is initially lower than this value to accommodate Azure File requirements. ([#99122](https://github.com/kubernetes/kubernetes/pull/99122), [@huffmanca](https://github.com/huffmanca)) [SIG Cloud Provider and Storage]", + "author": "huffmanca", + "author_url": "https://github.com/huffmanca", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99122", + "pr_number": 99122, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "duplicate": true + }, + "99127": { + "commit": "9fb1aa92f2206c04ce77c0f9767e235f94d5f7ba", + "text": "Fixes spurious errors about IPv6 in `kube-proxy` logs on nodes with IPv6 disabled.", + "markdown": "Fixes spurious errors about IPv6 in `kube-proxy` logs on nodes with IPv6 disabled. ([#99127](https://github.com/kubernetes/kubernetes/pull/99127), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99127", + "pr_number": 99127, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true + }, + "99130": { + "commit": "267e47f548ae2adedad2a78032f0982f4c7031e6", + "text": "Newly provisioned PVs by EBS plugin will no longer use the deprecated \"failure-domain.beta.kubernetes.io/zone\" and \"failure-domain.beta.kubernetes.io/region\" labels. It will use \"topology.kubernetes.io/zone\" and \"topology.kubernetes.io/region\" labels instead.", + "markdown": "Newly provisioned PVs by EBS plugin will no longer use the deprecated \"failure-domain.beta.kubernetes.io/zone\" and \"failure-domain.beta.kubernetes.io/region\" labels. It will use \"topology.kubernetes.io/zone\" and \"topology.kubernetes.io/region\" labels instead. ([#99130](https://github.com/kubernetes/kubernetes/pull/99130), [@ayberk](https://github.com/ayberk)) [SIG Cloud Provider, Storage and Testing]", + "author": "ayberk", + "author_url": "https://github.com/ayberk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99130", + "pr_number": 99130, + "areas": [ + "cloudprovider", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage", + "testing" + ], + "duplicate": true, + "action_required": true + }, + "99158": { + "commit": "739a72b9cce70666ef0512de188f39a2ce57cf3e", + "text": "Sysctls graduates to General Availability and thus unconditionally enabled.", + "markdown": "Sysctls graduates to General Availability and thus unconditionally enabled. ([#99158](https://github.com/kubernetes/kubernetes/pull/99158), [@wgahnagl](https://github.com/wgahnagl))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/34-sysctl-fields#graduation", + "type": "KEP" + } + ], + "author": "wgahnagl", + "author_url": "https://github.com/wgahnagl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99158", + "pr_number": 99158, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "99163": { + "commit": "2e055dac58c28e746cbc6031244348ec50ab9721", + "text": "The `controller.kubernetes.io/pod-deletion-cost` annotation can be set to offer a hint on the cost of deleting a `Pod` compared to other pods belonging to the same ReplicaSet. Pods with lower deletion cost are deleted first. This is an alpha feature.", + "markdown": "The `controller.kubernetes.io/pod-deletion-cost` annotation can be set to offer a hint on the cost of deleting a `Pod` compared to other pods belonging to the same ReplicaSet. Pods with lower deletion cost are deleted first. This is an alpha feature. ([#99163](https://github.com/kubernetes/kubernetes/pull/99163), [@ahg-g](https://github.com/ahg-g))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2255-pod-cost", + "type": "KEP" + } + ], + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99163", + "pr_number": 99163, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "duplicate_kind": true + }, + "99174": { + "commit": "54691ed806a0cd3e65a962b76a41ebe08a443639", + "text": "╰─kubernetes\u003e stress -p 12 ./reconciler.test -test.run \"Test_UncertainVolumeMountState\" \n5s: 0 runs so far, 0 failures \n10s: 0 runs so far, 0 failures \n15s: 12 runs so far, 0 failures \n20s: 12 runs so far, 0 failures \n25s: 24 runs so far, 0 failures \n30s: 24 runs so far, 0 failures \n35s: 36 runs so far, 0 failures \n40s: 36 runs so far, 0 failures \n45s: 48 runs so far, 0 failures \n50s: 48 runs so far, 0 failures \n55s: 60 runs so far, 0 failures \n1m0s: 60 runs so far, 0 failures \n1m5s: 72 runs so far, 0 failures \n1m10s: 72 runs so far, 0 failures \n1m15s: 84 runs so far, 0 failures \n1m20s: 84 runs so far, 0 failures", + "markdown": "Â\ufffd\ufffd─kubernetes\u003e stress -p 12 ./reconciler.test -test.run \"Test_UncertainVolumeMountState\" \n 5s: 0 runs so far, 0 failures \n 10s: 0 runs so far, 0 failures \n 15s: 12 runs so far, 0 failures \n 20s: 12 runs so far, 0 failures \n 25s: 24 runs so far, 0 failures \n 30s: 24 runs so far, 0 failures \n 35s: 36 runs so far, 0 failures \n 40s: 36 runs so far, 0 failures \n 45s: 48 runs so far, 0 failures \n 50s: 48 runs so far, 0 failures \n 55s: 60 runs so far, 0 failures \n 1m0s: 60 runs so far, 0 failures \n 1m5s: 72 runs so far, 0 failures \n 1m10s: 72 runs so far, 0 failures \n 1m15s: 84 runs so far, 0 failures \n 1m20s: 84 runs so far, 0 failures ([#99174](https://github.com/kubernetes/kubernetes/pull/99174), [@gnufied](https://github.com/gnufied)) [SIG Node and Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99174", + "pr_number": 99174, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "storage" + ], + "duplicate": true, + "do_not_publish": true + }, + "99194": { + "commit": "d475352bcbb82a45c01ad5557e81ecfde0b4f583", + "text": "kubeadm: perform pre-flight validation on host/node name upon `kubeadm init` and `kubeadm join`, showing warnings on non-compliant names", + "markdown": "Kubeadm: perform pre-flight validation on host/node name upon `kubeadm init` and `kubeadm join`, showing warnings on non-compliant names ([#99194](https://github.com/kubernetes/kubernetes/pull/99194), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99194", + "pr_number": 99194, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "99212": { + "commit": "bf448a1eaa0660b65a232f76804d9a4e87d9fe60", + "text": "When downscaling ReplicaSets, ready and creation timestamps are compared in a logarithmic scale.", + "markdown": "When downscaling ReplicaSets, ready and creation timestamps are compared in a logarithmic scale. ([#99212](https://github.com/kubernetes/kubernetes/pull/99212), [@damemi](https://github.com/damemi)) [SIG Apps and Testing]", + "author": "damemi", + "author_url": "https://github.com/damemi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99212", + "pr_number": 99212, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "99213": { + "commit": "4fefc856db7787c0c6d8775941f9d3e71d7353da", + "text": "The NodeAffinity plugin implements the PreFilter extension, offering enhanced performance for Filter.", + "markdown": "The NodeAffinity plugin implements the PreFilter extension, offering enhanced performance for Filter. ([#99213](https://github.com/kubernetes/kubernetes/pull/99213), [@AliceZhang2016](https://github.com/AliceZhang2016)) [SIG Scheduling]", + "author": "AliceZhang2016", + "author_url": "https://github.com/AliceZhang2016", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99213", + "pr_number": 99213, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "99217": { + "commit": "51919050fe8431591e5d36fdbf261bca401b4658", + "text": "Metrics can now be disabled explicitly via a command line flag (i.e. '--disabled-metrics=metric1,metric2')", + "markdown": "Metrics can now be disabled explicitly via a command line flag (i.e. '--disabled-metrics=metric1,metric2') ([#99217](https://github.com/kubernetes/kubernetes/pull/99217), [@logicalhan](https://github.com/logicalhan))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1209-metrics-stability", + "type": "KEP" + } + ], + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99217", + "pr_number": 99217, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "99221": { + "commit": "4b6e3e164f5ba2b7f07063bfa62db5ceb7596413", + "text": "Pod Log stats for windows now reports metrics", + "markdown": "Pod Log stats for windows now reports metrics ([#99221](https://github.com/kubernetes/kubernetes/pull/99221), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node, Storage, Testing and Windows]", + "author": "jsturtevant", + "author_url": "https://github.com/jsturtevant", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99221", + "pr_number": 99221, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "storage", + "testing", + "windows" + ], + "duplicate": true + }, + "99229": { + "commit": "4cc1127e9251fff364d5c77e2a9a9c3ad42383ab", + "text": "#### before\n=== RUN TestAttachDetach\n attacher_test.go:139: Test \"Attach_Positive\" succeeded\nE0219 15:45:08.058933 7036 attacher.go:86] Error attaching volume \"disk\" to node \"instance\": Fake attach error\n attacher_test.go:139: Test \"Attach_Negative\" succeeded\n attacher_test.go:139: Test \"Detach_Positive\" succeeded\nE0219 15:45:08.080894 7036 attacher.go:282] Error detaching volumeID \"disk\": Fake detach error\n attacher_test.go:139: Test \"Detach_Negative\" succeeded\n--- PASS: TestAttachDetach (0.02s)\nPASS", + "markdown": "#### before\n === RUN TestAttachDetach\n attacher_test.go:139: Test \"Attach_Positive\" succeeded\n E0219 15:45:08.058933 7036 attacher.go:86] Error attaching volume \"disk\" to node \"instance\": Fake attach error\n attacher_test.go:139: Test \"Attach_Negative\" succeeded\n attacher_test.go:139: Test \"Detach_Positive\" succeeded\n E0219 15:45:08.080894 7036 attacher.go:282] Error detaching volumeID \"disk\": Fake detach error\n attacher_test.go:139: Test \"Detach_Negative\" succeeded\n --- PASS: TestAttachDetach (0.02s)\n PASS ([#99229](https://github.com/kubernetes/kubernetes/pull/99229), [@tanjing2020](https://github.com/tanjing2020)) [SIG Storage]", + "author": "tanjing2020", + "author_url": "https://github.com/tanjing2020", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99229", + "pr_number": 99229, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ], + "do_not_publish": true + }, + "99236": { + "commit": "ec1b6ce53affeabe86b8977a2aa26e532d0b5af5", + "text": "Removes cAdvisor JSON metrics (/stats/container, /stats/\u003cpodname\u003e/\u003ccontainername\u003e, /stats/\u003cnamespace\u003e/\u003cpodname\u003e/\u003cpoduid\u003e/\u003ccontainername\u003e) from the kubelet.", + "markdown": "Removes cAdvisor JSON metrics (/stats/container, /stats/\u003cpodname\u003e/\u003ccontainername\u003e, /stats/\u003cnamespace\u003e/\u003cpodname\u003e/\u003cpoduid\u003e/\u003ccontainername\u003e) from the kubelet. ([#99236](https://github.com/kubernetes/kubernetes/pull/99236), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2129-remove-cadvisor-json-metrics", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99236", + "pr_number": 99236, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true + }, + "99242": { + "commit": "b6e4c1c71a9af6bb459361244e10e62285c04db4", + "text": "Added support for installing `arm64` node artifacts.", + "markdown": "Added support for installing `arm64` node artifacts. ([#99242](https://github.com/kubernetes/kubernetes/pull/99242), [@liu-cong](https://github.com/liu-cong))", + "author": "liu-cong", + "author_url": "https://github.com/liu-cong", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99242", + "pr_number": 99242, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "99246": { + "commit": "57ff7d2994817d9807246b72e5160626b1e73de3", + "text": "NONE", + "markdown": "NONE ([#99246](https://github.com/kubernetes/kubernetes/pull/99246), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", + "author": "tanjing2020", + "author_url": "https://github.com/tanjing2020", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99246", + "pr_number": 99246, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "99275": { + "commit": "4bf85032f3c391ff710390c41996642cd4134c40", + "text": "IngressClass resource can now reference a resource in a specific namespace \nfor implementation-specific configuration (previously only Cluster-level resources were allowed). \nThis feature can be enabled using the IngressClassNamespacedParams feature gate.", + "markdown": "IngressClass resource can now reference a resource in a specific namespace \n for implementation-specific configuration (previously only Cluster-level resources were allowed). \n This feature can be enabled using the IngressClassNamespacedParams feature gate. ([#99275](https://github.com/kubernetes/kubernetes/pull/99275), [@hbagdi](https://github.com/hbagdi))", + "author": "hbagdi", + "author_url": "https://github.com/hbagdi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99275", + "pr_number": 99275, + "areas": [ + "kubectl" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "cli", + "network" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99284": { + "commit": "dcb3c56957a981c1c6966da72163bfd7dfab1758", + "text": "Enables Kubelet to check volume condition and log events to corresponding pods.", + "markdown": "Enables Kubelet to check volume condition and log events to corresponding pods. ([#99284](https://github.com/kubernetes/kubernetes/pull/99284), [@fengzixu](https://github.com/fengzixu)) [SIG Apps, Instrumentation, Node and Storage]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2286", + "type": "KEP" + } + ], + "author": "fengzixu", + "author_url": "https://github.com/fengzixu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99284", + "pr_number": 99284, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "instrumentation", + "node", + "storage" + ], + "feature": true, + "duplicate": true + }, + "99290": { + "commit": "046ad61479df0bfde00a25dff9d49c8025fa4f06", + "text": "The PodDisruptionBudget API has been promoted to policy/v1 with no schema changes. The only functional change is that an empty selector (`{}`) written to a policy/v1 PodDisruptionBudget now selects all pods in the namespace. The behavior of the policy/v1beta1 API remains unchanged. The policy/v1beta1 PodDisruptionBudget API is deprecated and will no longer be served in 1.25+.", + "markdown": "The PodDisruptionBudget API has been promoted to policy/v1 with no schema changes. The only functional change is that an empty selector (`{}`) written to a policy/v1 PodDisruptionBudget now selects all pods in the namespace. The behavior of the policy/v1beta1 API remains unchanged. The policy/v1beta1 PodDisruptionBudget API is deprecated and will no longer be served in 1.25+. ([#99290](https://github.com/kubernetes/kubernetes/pull/99290), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/85-Graduate-PDB-to-Stable", + "type": "KEP" + } + ], + "author": "mortent", + "author_url": "https://github.com/mortent", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99290", + "pr_number": 99290, + "areas": [ + "apiserver", + "cloudprovider", + "dependency", + "e2e-test-framework", + "kubectl", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "autoscaling", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99294": { + "commit": "1ddc4afcf87789b1646320bc9cd19d37a5def098", + "text": "kubeadm: IPv6DualStack feature gate graduates to Beta and enabled by default", + "markdown": "Kubeadm: IPv6DualStack feature gate graduates to Beta and enabled by default ([#99294](https://github.com/kubernetes/kubernetes/pull/99294), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99294", + "pr_number": 99294, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "99298": { + "commit": "d43ffff0079f49fc29e77bd7d0e1bdb7670a1341", + "text": "CSIServiceAccountToken graduates to Beta and enabled by default.", + "markdown": "CSIServiceAccountToken graduates to Beta and enabled by default. ([#99298](https://github.com/kubernetes/kubernetes/pull/99298), [@zshihang](https://github.com/zshihang))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1855-csi-driver-service-account-token", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99298", + "pr_number": 99298, + "areas": [ + "test" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "auth", + "storage", + "testing" + ], + "duplicate": true + }, + "99315": { + "commit": "1c6335d668cea44a611dfdbcf5cc43c8ac5ced39", + "text": "Fixed bug that caused cAdvisor to incorrectly detect single-socket multi-NUMA topology.", + "markdown": "Fixed bug that caused cAdvisor to incorrectly detect single-socket multi-NUMA topology. ([#99315](https://github.com/kubernetes/kubernetes/pull/99315), [@iwankgb](https://github.com/iwankgb)) [SIG Node]", + "author": "iwankgb", + "author_url": "https://github.com/iwankgb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99315", + "pr_number": 99315, + "areas": [ + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "99341": { + "commit": "94d5019369858851db5759748483f32f1986d56e", + "text": "Adds two new metrics to cronjobs, a histogram to track the time difference when a job is created and the expected time when it should be created, as well as a gauge for the missed schedules of a cronjob", + "markdown": "Adds two new metrics to cronjobs, a histogram to track the time difference when a job is created and the expected time when it should be created, as well as a gauge for the missed schedules of a cronjob ([#99341](https://github.com/kubernetes/kubernetes/pull/99341), [@alaypatel07](https://github.com/alaypatel07))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-apps/19-Graduate-CronJob-to-Stable/README.md", + "type": "KEP" + } + ], + "author": "alaypatel07", + "author_url": "https://github.com/alaypatel07", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99341", + "pr_number": 99341, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "99345": { + "commit": "ee90db514c10cbbf7642db9aad7a204087d48475", + "text": "EndpointSlice controller is now less likely to emit FailedToUpdateEndpointSlices events.", + "markdown": "EndpointSlice controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#99345](https://github.com/kubernetes/kubernetes/pull/99345), [@robscott](https://github.com/robscott)) [SIG Apps and Network]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99345", + "pr_number": 99345, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true, + "duplicate_kind": true + }, + "99361": { + "commit": "930bede46ead9bef467c8b6c648f8be2364289e2", + "text": "Persistent Volumes formatted with the btrfs filesystem will now automatically resize when expanded.", + "markdown": "Persistent Volumes formatted with the btrfs filesystem will now automatically resize when expanded. ([#99361](https://github.com/kubernetes/kubernetes/pull/99361), [@Novex](https://github.com/Novex)) [SIG Storage]", + "author": "Novex", + "author_url": "https://github.com/Novex", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99361", + "pr_number": 99361, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true + }, + "99375": { + "commit": "faa5c8ccd4cb34c95d67b24bb35354a205ceee15", + "text": "Add Probe-level terminationGracePeriodSeconds field", + "markdown": "Add Probe-level terminationGracePeriodSeconds field ([#99375](https://github.com/kubernetes/kubernetes/pull/99375), [@ehashman](https://github.com/ehashman)) [SIG API Machinery, Apps, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2238-liveness-probe-grace-period", + "type": "KEP" + } + ], + "author": "ehashman", + "author_url": "https://github.com/ehashman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99375", + "pr_number": 99375, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "99385": { + "commit": "b7d146b62f111fcf60e7d44df2f48fd4e8c2ef91", + "text": "component owner can configure the allowlist of metric label with flag '--allow-metric-labels'.", + "markdown": "Component owner can configure the allowlist of metric label with flag '--allow-metric-labels'. ([#99385](https://github.com/kubernetes/kubernetes/pull/99385), [@YoyinZyc](https://github.com/YoyinZyc)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Release]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/2305-metrics-cardinality-enforcement", + "type": "KEP" + } + ], + "author": "YoyinZyc", + "author_url": "https://github.com/YoyinZyc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99385", + "pr_number": 99385, + "areas": [ + "apiserver", + "cloudprovider", + "dependency", + "kubectl", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "release" + ], + "feature": true, + "duplicate": true + }, + "99389": { + "commit": "2b3f97b08fb33b552d9e2c51991c6fe4b5e57127", + "text": "NONE", + "markdown": "NONE ([#99389](https://github.com/kubernetes/kubernetes/pull/99389), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", + "author": "tanjing2020", + "author_url": "https://github.com/tanjing2020", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99389", + "pr_number": 99389, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "99393": { + "commit": "a517eccd9f990c3f08eb0580312e08121808b79a", + "text": "When the kubelet is watching a ConfigMap or Secret purely in the context of setting environment variables\nfor containers, only hold that watch for a defined duration before cancelling it. This change reduces the CPU\nand memory usage of the kube-apiserver in large clusters.", + "markdown": "When the kubelet is watching a ConfigMap or Secret purely in the context of setting environment variables\n for containers, only hold that watch for a defined duration before cancelling it. This change reduces the CPU\n and memory usage of the kube-apiserver in large clusters. ([#99393](https://github.com/kubernetes/kubernetes/pull/99393), [@chenyw1990](https://github.com/chenyw1990)) [SIG API Machinery, Node and Testing]", + "author": "chenyw1990", + "author_url": "https://github.com/chenyw1990", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99393", + "pr_number": 99393, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "99411": { + "commit": "05988d76177a1161b5ff67e366e73a3f1d2063c9", + "text": "kube-scheduler now logs plugin scoring summaries at --v=4", + "markdown": "Kube-scheduler now logs plugin scoring summaries at --v=4 ([#99411](https://github.com/kubernetes/kubernetes/pull/99411), [@damemi](https://github.com/damemi)) [SIG Scheduling]", + "author": "damemi", + "author_url": "https://github.com/damemi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99411", + "pr_number": 99411, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "99423": { + "commit": "06a4b6f3421b11a3df4653e07bcee8b2cfcc1b12", + "text": "Promote CronJobs to batch/v1", + "markdown": "Promote CronJobs to batch/v1 ([#99423](https://github.com/kubernetes/kubernetes/pull/99423), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps, CLI and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/19-Graduate-CronJob-to-Stable", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99423", + "pr_number": 99423, + "areas": [ + "kubectl", + "test", + "workload-api/cronjob" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99446": { + "commit": "a238698ea08ba2ba72416e4398691e705929c3ab", + "text": "kube-apiserver: an update of a pod with a generic ephemeral volume dropped that volume if the feature had been disabled since creating the pod with such a volume", + "markdown": "Kube-apiserver: an update of a pod with a generic ephemeral volume dropped that volume if the feature had been disabled since creating the pod with such a volume ([#99446](https://github.com/kubernetes/kubernetes/pull/99446), [@pohly](https://github.com/pohly)) [SIG Apps, Node and Storage]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/1698-generic-ephemeral-volumes/README.md", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99446", + "pr_number": 99446, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "node", + "storage" + ], + "duplicate": true + }, + "99471": { + "commit": "504b86ced771d44dccbd305bab30d4ba2ee4615e", + "text": "kubeadm: during \"init\" an empty cgroupDriver value in the KubeletConfiguration is now always set to \"systemd\" unless the user is explicit about it. This requires existing machine setups to configure the container runtime to use the \"systemd\" driver. Documentation on this topic can be found here: https://kubernetes.io/docs/setup/production-environment/container-runtimes/. When upgrading existing clusters / nodes using \"kubeadm upgrade\" the old cgroupDriver value is preserved, but in 1.22 this change will also apply to \"upgrade\". For more information on migrating to the \"systemd\" driver or remaining on the \"cgroupfs\" driver see: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/.", + "markdown": "Kubeadm: during \"init\" an empty cgroupDriver value in the KubeletConfiguration is now always set to \"systemd\" unless the user is explicit about it. This requires existing machine setups to configure the container runtime to use the \"systemd\" driver. Documentation on this topic can be found here: https://kubernetes.io/docs/setup/production-environment/container-runtimes/. When upgrading existing clusters / nodes using \"kubeadm upgrade\" the old cgroupDriver value is preserved, but in 1.22 this change will also apply to \"upgrade\". For more information on migrating to the \"systemd\" driver or remaining on the \"cgroupfs\" driver see: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/. ([#99471](https://github.com/kubernetes/kubernetes/pull/99471), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99471", + "pr_number": 99471, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "action_required": true + }, + "99476": { + "commit": "3abeb174c4d2e6ce95f6f5d51f82f91d28cccd03", + "text": "kubeadm: if the user has customized their image repository via the kubeadm configuration, pass the custom pause image repository and tag to the kubelet via --pod-infra-container-image not only for Docker but for all container runtimes. This flag tells the kubelet that it should not garbage collect the image.", + "markdown": "Kubeadm: if the user has customized their image repository via the kubeadm configuration, pass the custom pause image repository and tag to the kubelet via --pod-infra-container-image not only for Docker but for all container runtimes. This flag tells the kubelet that it should not garbage collect the image. ([#99476](https://github.com/kubernetes/kubernetes/pull/99476), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99476", + "pr_number": 99476, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "99514": { + "commit": "9fa33ada4b4194c62b4361680048fcb5569f8556", + "text": "Fix bug that would let the Horizontal Pod Autoscaler scale down despite at least one metric being unavailable/invalid", + "markdown": "Fix bug that would let the Horizontal Pod Autoscaler scale down despite at least one metric being unavailable/invalid ([#99514](https://github.com/kubernetes/kubernetes/pull/99514), [@mikkeloscar](https://github.com/mikkeloscar)) [SIG Apps and Autoscaling]", + "author": "mikkeloscar", + "author_url": "https://github.com/mikkeloscar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99514", + "pr_number": 99514, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps", + "autoscaling" + ], + "duplicate": true, + "duplicate_kind": true + }, + "99522": { + "commit": "207c75c6f7f25b1661e2063b7db6fc1a10bb58aa", + "text": "Topology Aware Hints are now available in alpha and can be enabled with the `TopologyAwareHints` feature gate.", + "markdown": "Topology Aware Hints are now available in alpha and can be enabled with the `TopologyAwareHints` feature gate. ([#99522](https://github.com/kubernetes/kubernetes/pull/99522), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps, Auth, Instrumentation, Network and Testing]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99522", + "pr_number": 99522, + "areas": [ + "apiserver", + "ipvs", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "instrumentation", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99538": { + "commit": "793390e13be91d79150b57abad5710477ab96bd7", + "text": "Resolves spurious `Failed to list *v1.Secret` or `Failed to list *v1.ConfigMap` messages in kubelet logs.", + "markdown": "Resolves spurious `Failed to list *v1.Secret` or `Failed to list *v1.ConfigMap` messages in kubelet logs. ([#99538](https://github.com/kubernetes/kubernetes/pull/99538), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99538", + "pr_number": 99538, + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "node" + ], + "duplicate": true + }, + "99550": { + "commit": "716a0547206a71ecc6e53f8b970728bc85063a60", + "text": "fix PermissionDenied issue on SMB mount for Windows", + "markdown": "Fix PermissionDenied issue on SMB mount for Windows ([#99550](https://github.com/kubernetes/kubernetes/pull/99550), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99550", + "pr_number": 99550, + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage", + "windows" + ], + "duplicate": true + }, + "99555": { + "commit": "4013bd17c328d0f419a9915e8e25178febb2be62", + "text": "On single-stack configured (IPv4 or IPv6, but not both) clusters, Services which are both headless (no clusterIP) and selectorless (empty or undefined selector) will report `ipFamilyPolicy RequireDualStack` and will have entries in `ipFamilies[]` for both IPv4 and IPv6. This is a change from alpha, but does not have any impact on the manually-specified Endpoints and EndpointSlices for the Service.", + "markdown": "On single-stack configured (IPv4 or IPv6, but not both) clusters, Services which are both headless (no clusterIP) and selectorless (empty or undefined selector) will report `ipFamilyPolicy RequireDualStack` and will have entries in `ipFamilies[]` for both IPv4 and IPv6. This is a change from alpha, but does not have any impact on the manually-specified Endpoints and EndpointSlices for the Service. ([#99555](https://github.com/kubernetes/kubernetes/pull/99555), [@thockin](https://github.com/thockin)) [SIG Apps and Network]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99555", + "pr_number": 99555, + "areas": [ + "apiserver", + "ipv6" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true + }, + "99561": { + "commit": "5498ee641b3459a0da1d4b2d42d502a318194189", + "text": "Remove support for building Kubernetes with bazel.", + "markdown": "Remove support for building Kubernetes with bazel. ([#99561](https://github.com/kubernetes/kubernetes/pull/99561), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2420", + "type": "KEP" + } + ], + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99561", + "pr_number": 99561, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "conformance", + "dependency", + "e2e-test-framework", + "ipvs", + "kubeadm", + "kubectl", + "kubelet", + "provider/gcp", + "release-eng", + "test" + ], + "kinds": [ + "api-change", + "cleanup", + "flake" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "autoscaling", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "release", + "scalability", + "scheduling", + "storage", + "testing", + "windows" + ], + "duplicate": true, + "duplicate_kind": true + }, + "99574": { + "commit": "445cb0609d2cffbfea4bd67a50f90f3655704ad1", + "text": "kubeadm: a warning to user as ipv6 site-local is deprecated", + "markdown": "Kubeadm: a warning to user as ipv6 site-local is deprecated ([#99574](https://github.com/kubernetes/kubernetes/pull/99574), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle and Network]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99574", + "pr_number": 99574, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle", + "network" + ], + "feature": true, + "duplicate": true + }, + "99581": { + "commit": "0121c51d81d7905448a925980ceb996dbaa2b318", + "text": "Users might specify the `kubectl.kubernetes.io/default-container` annotation in a Pod to preselect container for kubectl commands.", + "markdown": "Users might specify the `kubectl.kubernetes.io/default-container` annotation in a Pod to preselect container for kubectl commands. ([#99581](https://github.com/kubernetes/kubernetes/pull/99581), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG CLI]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99581", + "pr_number": 99581, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "99585": { + "commit": "40d8aed6f3e45e15ae64ccbd45273e4a18233551", + "text": "Return zero time (midnight on Jan. 1, 1970) instead of negative number when reporting startedAt and finishedAt of the not started or a running Pod when using `dockershim` as a runtime.", + "markdown": "Return zero time (midnight on Jan. 1, 1970) instead of negative number when reporting startedAt and finishedAt of the not started or a running Pod when using `dockershim` as a runtime. ([#99585](https://github.com/kubernetes/kubernetes/pull/99585), [@Iceber](https://github.com/Iceber))", + "author": "Iceber", + "author_url": "https://github.com/Iceber", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99585", + "pr_number": 99585, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "99595": { + "commit": "763514f43825e1b72cabcfce35c541e4b37f9892", + "text": "GCE L4 Loadbalancers now handle \u003e 5 ports in service spec correctly.", + "markdown": "GCE L4 Loadbalancers now handle \u003e 5 ports in service spec correctly. ([#99595](https://github.com/kubernetes/kubernetes/pull/99595), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider]", + "author": "prameshj", + "author_url": "https://github.com/prameshj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99595", + "pr_number": 99595, + "areas": [ + "cloudprovider" + ], + "sigs": [ + "cloud-provider" + ] + }, + "99600": { + "commit": "03ae13a3b69eafb93c04c1786b9bdae22b63b81b", + "text": "ResourceQuota of an entity now inclusively calculate Pod overhead", + "markdown": "ResourceQuota of an entity now inclusively calculate Pod overhead ([#99600](https://github.com/kubernetes/kubernetes/pull/99600), [@gjkim42](https://github.com/gjkim42))", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99600", + "pr_number": 99600, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "node" + ], + "duplicate": true + }, + "99610": { + "commit": "3022b3981709007977e052bc6c3c44ee715a1679", + "text": "The DownwardAPIHugePages feature is beta. Users may use the feature if all workers in their cluster are min 1.20 version. The feature will be enabled by default in all installations in 1.22.", + "markdown": "The DownwardAPIHugePages feature is beta. Users may use the feature if all workers in their cluster are min 1.20 version. The feature will be enabled by default in all installations in 1.22. ([#99610](https://github.com/kubernetes/kubernetes/pull/99610), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2053-downward-api-hugepages", + "type": "KEP" + } + ], + "author": "derekwaynecarr", + "author_url": "https://github.com/derekwaynecarr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99610", + "pr_number": 99610, + "sigs": [ + "node" + ] + }, + "99613": { + "commit": "0849d1bea1e1c8910bda6db9d804945d361a2bc4", + "text": "Fixed a bug that causes smaller number of conntrack-max being used under CPU static policy. (#99225, @xh4n3)", + "markdown": "Fixed a bug that causes smaller number of conntrack-max being used under CPU static policy. (#99225, @xh4n3) ([#99613](https://github.com/kubernetes/kubernetes/pull/99613), [@xh4n3](https://github.com/xh4n3)) [SIG Network]", + "author": "xh4n3", + "author_url": "https://github.com/xh4n3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99613", + "pr_number": 99613, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "99641": { + "commit": "14c25eed8d07acdfaf882674f58fd2aa4cc7afe6", + "text": "storage capacity tracking (= the CSIStorageCapacity feature) graduates to Beta and enabled by default, storage.k8s.io/v1alpha1/VolumeAttachment and storage.k8s.io/v1alpha1/CSIStorageCapacity objects are deprecated", + "markdown": "Storage capacity tracking (= the CSIStorageCapacity feature) graduates to Beta and enabled by default, storage.k8s.io/v1alpha1/VolumeAttachment and storage.k8s.io/v1alpha1/CSIStorageCapacity objects are deprecated ([#99641](https://github.com/kubernetes/kubernetes/pull/99641), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1472-storage-capacity-tracking", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/storage/storage-capacity/", + "type": "official" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99641", + "pr_number": 99641, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99643": { + "commit": "410d092d8a13cc78ee9044e0aad194abbba1952b", + "text": "Generic ephemeral volumes are beta.", + "markdown": "Generic ephemeral volumes are beta. ([#99643](https://github.com/kubernetes/kubernetes/pull/99643), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Node, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes", + "type": "official" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99643", + "pr_number": 99643, + "areas": [ + "kubectl", + "kubelet", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cli", + "node", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99646": { + "commit": "a6bfc7d7a9640bf5b423dc6139b75181c984837a", + "text": "kubeadm: the deprecated kube-dns is no longer supported as an option. If \"ClusterConfiguration.dns.type\" is set to \"kube-dns\" kubeadm will now throw an error.", + "markdown": "Kubeadm: the deprecated kube-dns is no longer supported as an option. If \"ClusterConfiguration.dns.type\" is set to \"kube-dns\" kubeadm will now throw an error. ([#99646](https://github.com/kubernetes/kubernetes/pull/99646), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle]", + "author": "rajansandeep", + "author_url": "https://github.com/rajansandeep", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99646", + "pr_number": 99646, + "areas": [ + "dependency", + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "99651": { + "commit": "eb4dafb7f1e059a8a4eaf008937afcd4f12deaea", + "text": "CRIContainerLogRotation graduates to GA and unconditionally enabled.", + "markdown": "CRIContainerLogRotation graduates to GA and unconditionally enabled. ([#99651](https://github.com/kubernetes/kubernetes/pull/99651), [@umohnani8](https://github.com/umohnani8))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2411-cri-container-log-rotation", + "type": "KEP" + } + ], + "author": "umohnani8", + "author_url": "https://github.com/umohnani8", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99651", + "pr_number": 99651, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "99653": { + "commit": "70d732c7e70741cd5c79335cf1ece522763a4a9e", + "text": "kube-proxy iptables: new metric sync_proxy_rules_iptables_total that exposes the number of rules programmed per table in each iteration", + "markdown": "Kube-proxy iptables: new metric sync_proxy_rules_iptables_total that exposes the number of rules programmed per table in each iteration ([#99653](https://github.com/kubernetes/kubernetes/pull/99653), [@aojea](https://github.com/aojea)) [SIG Instrumentation and Network]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99653", + "pr_number": 99653, + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "network" + ], + "feature": true, + "duplicate": true + }, + "99654": { + "commit": "e2eb9f000528556cc7af2a3db4259a60b61a3f6f", + "text": "client-go exec credential plugins will pass stdin only when interactive terminal is detected on stdin. This fixes a bug where previously it was checking if **stdout** is an interactive terminal.", + "markdown": "Client-go exec credential plugins will pass stdin only when interactive terminal is detected on stdin. This fixes a bug where previously it was checking if **stdout** is an interactive terminal. ([#99654](https://github.com/kubernetes/kubernetes/pull/99654), [@ankeesler](https://github.com/ankeesler))", + "author": "ankeesler", + "author_url": "https://github.com/ankeesler", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99654", + "pr_number": 99654, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true + }, + "99658": { + "commit": "f25f071af1847d7fceedc96f57fb0a6ddd4df497", + "text": "featuregate AllowInsecureBackendProxy graduates to GA and unconditionally enabled.", + "markdown": "Featuregate AllowInsecureBackendProxy graduates to GA and unconditionally enabled. ([#99658](https://github.com/kubernetes/kubernetes/pull/99658), [@deads2k](https://github.com/deads2k))", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99658", + "pr_number": 99658, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "99661": { + "commit": "b7d23d711108805cd0dd15b1e208b30c6c3e9eec", + "text": "FieldManager no longer owns fields that get reset before the object is persisted (e.g. \"status wiping\").", + "markdown": "FieldManager no longer owns fields that get reset before the object is persisted (e.g. \"status wiping\"). ([#99661](https://github.com/kubernetes/kubernetes/pull/99661), [@kevindelgado](https://github.com/kevindelgado)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/1123", + "type": "KEP" + } + ], + "author": "kevindelgado", + "author_url": "https://github.com/kevindelgado", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99661", + "pr_number": 99661, + "areas": [ + "apiserver", + "dependency", + "test" + ], + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "99662": { + "commit": "36244f31ef78dd3dd6bfbb74e1b15b4d01edcd6c", + "text": "The `EndpointSlice` API is now GA. The `EndpointSlice` topology field has been removed from the GA API and will be replaced by a new per Endpoint Zone field. If the topology field was previously used, it will be converted into an annotation in the v1 Resource. The `discovery.k8s.io/v1alpha1` API is removed.", + "markdown": "The `EndpointSlice` API is now GA. The `EndpointSlice` topology field has been removed from the GA API and will be replaced by a new per Endpoint Zone field. If the topology field was previously used, it will be converted into an annotation in the v1 Resource. The `discovery.k8s.io/v1alpha1` API is removed. ([#99662](https://github.com/kubernetes/kubernetes/pull/99662), [@swetharepakula](https://github.com/swetharepakula))", + "author": "swetharepakula", + "author_url": "https://github.com/swetharepakula", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99662", + "pr_number": 99662, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99671": { + "commit": "17395678c4fa261046810a1df43ac2dd2117857f", + "text": "=== RUN TestCreateFromConfig\n=== RUN TestCreateFromConfig/policy_with_unspecified_predicates_or_priorities_uses_default\n=== RUN TestCreateFromConfig/policy_with_arguments\n=== RUN TestCreateFromConfig/policy_with_HardPodAffinitySymmetricWeight_argument\n=== RUN TestCreateFromConfig/policy_with_illegal_arguments\nE0303 11:28:37.788222 10956 legacy_registry.go:636] \"Invalid configuration\" err=\"priority type not found\" policy={Name:RequestedToCapacityRatioPriority Weight:2 Argument:\u003cnil\u003e}\nE0303 11:28:37.803846 10956 factory.go:249] \"Get priority policy failed\" err=\"priority type not found\" priority={Name:RequestedToCapacityRatioPriority Weight:2 Argument:\u003cnil\u003e} args=\u0026{Weight:0 NodeLabelArgs:\u003cnil\u003e RequestedToCapacityRatioArgs:\u003cnil\u003e ServiceAffinityArgs:\u0026TypeMeta{Kind:,APIVersion:,} NodeResourcesFitArgs:\u003cnil\u003e InterPodAffinityArgs:\u003cnil\u003e}\n--- PASS: TestCreateFromConfig (0.02s)\n --- PASS: TestCreateFromConfig/policy_with_unspecified_predicates_or_priorities_uses_default (0.00s)\n --- PASS: TestCreateFromConfig/policy_with_arguments (0.00s)\n --- PASS: TestCreateFromConfig/policy_with_HardPodAffinitySymmetricWeight_argument (0.00s)\n --- PASS: TestCreateFromConfig/policy_with_illegal_arguments (0.02s)\nPASS\nok \tk8s.io/kubernetes/pkg/scheduler\t0.119s", + "markdown": "=== RUN TestCreateFromConfig\n === RUN TestCreateFromConfig/policy_with_unspecified_predicates_or_priorities_uses_default\n === RUN TestCreateFromConfig/policy_with_arguments\n === RUN TestCreateFromConfig/policy_with_HardPodAffinitySymmetricWeight_argument\n === RUN TestCreateFromConfig/policy_with_illegal_arguments\n E0303 11:28:37.788222 10956 legacy_registry.go:636] \"Invalid configuration\" err=\"priority type not found\" policy={Name:RequestedToCapacityRatioPriority Weight:2 Argument:\u003cnil\u003e}\n E0303 11:28:37.803846 10956 factory.go:249] \"Get priority policy failed\" err=\"priority type not found\" priority={Name:RequestedToCapacityRatioPriority Weight:2 Argument:\u003cnil\u003e} args=\u0026{Weight:0 NodeLabelArgs:\u003cnil\u003e RequestedToCapacityRatioArgs:\u003cnil\u003e ServiceAffinityArgs:\u0026TypeMeta{Kind:,APIVersion:,} NodeResourcesFitArgs:\u003cnil\u003e InterPodAffinityArgs:\u003cnil\u003e}\n --- PASS: TestCreateFromConfig (0.02s)\n --- PASS: TestCreateFromConfig/policy_with_unspecified_predicates_or_priorities_uses_default (0.00s)\n --- PASS: TestCreateFromConfig/policy_with_arguments (0.00s)\n --- PASS: TestCreateFromConfig/policy_with_HardPodAffinitySymmetricWeight_argument (0.00s)\n --- PASS: TestCreateFromConfig/policy_with_illegal_arguments (0.02s)\n PASS\n ok \tk8s.io/kubernetes/pkg/scheduler\t0.119s ([#99671](https://github.com/kubernetes/kubernetes/pull/99671), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", + "author": "tanjing2020", + "author_url": "https://github.com/tanjing2020", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99671", + "pr_number": 99671, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "99719": { + "commit": "cdd80af120a219c21ace00280f0cb06517dc0b18", + "text": "Newly provisioned PVs by OpenStack Cinder plugin will no longer use the deprecated \"failure-domain.beta.kubernetes.io/zone\" and \"failure-domain.beta.kubernetes.io/region\" labels. It will use \"topology.kubernetes.io/zone\" and \"topology.kubernetes.io/region\" labels instead.", + "markdown": "Newly provisioned PVs by OpenStack Cinder plugin will no longer use the deprecated \"failure-domain.beta.kubernetes.io/zone\" and \"failure-domain.beta.kubernetes.io/region\" labels. It will use \"topology.kubernetes.io/zone\" and \"topology.kubernetes.io/region\" labels instead. ([#99719](https://github.com/kubernetes/kubernetes/pull/99719), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider and Storage]", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99719", + "pr_number": 99719, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "99732": { + "commit": "f8151b121f3f4d4a44f471a727c00f8a709836e9", + "text": "Remove deprecated `--generator, --replicas, --service-generator, --service-overrides, --schedule` from `kubectl run`\nDeprecate `--serviceaccount, --hostport, --requests, --limits` in `kubectl run`", + "markdown": "Remove deprecated `--generator, --replicas, --service-generator, --service-overrides, --schedule` from `kubectl run`\n Deprecate `--serviceaccount, --hostport, --requests, --limits` in `kubectl run` ([#99732](https://github.com/kubernetes/kubernetes/pull/99732), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99732", + "pr_number": 99732, + "areas": [ + "kubectl", + "test" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "99735": { + "commit": "7125496e66e29a999ed6cfba5af6e5e0947bb36b", + "text": "Kubelet Graceful Node Shutdown feature graduates to Beta and enabled by default.", + "markdown": "Kubelet Graceful Node Shutdown feature graduates to Beta and enabled by default. ([#99735](https://github.com/kubernetes/kubernetes/pull/99735), [@bobbypage](https://github.com/bobbypage))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2000-graceful-node-shutdown/README.md", + "type": "KEP" + } + ], + "author": "bobbypage", + "author_url": "https://github.com/bobbypage", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99735", + "pr_number": 99735, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true + }, + "99738": { + "commit": "f63cac6cdfce51a674af07be53a85ad628edf819", + "text": "component owner can configure the allowlist of metric label with flag '--allow-metric-labels'.", + "markdown": "Component owner can configure the allowlist of metric label with flag '--allow-metric-labels'. ([#99738](https://github.com/kubernetes/kubernetes/pull/99738), [@YoyinZyc](https://github.com/YoyinZyc)) [SIG API Machinery, Cluster Lifecycle and Instrumentation]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/2305-metrics-cardinality-enforcement", + "type": "KEP" + } + ], + "author": "YoyinZyc", + "author_url": "https://github.com/YoyinZyc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99738", + "pr_number": 99738, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "99746": { + "commit": "cc4bd511bbb27c5b90c01c0fc99a6005d7ac8a15", + "text": "EndpointSliceNodeName graduates to GA and thus will be unconditionally enabled -- NodeName will always be available in the v1beta1 API.", + "markdown": "EndpointSliceNodeName graduates to GA and thus will be unconditionally enabled -- NodeName will always be available in the v1beta1 API. ([#99746](https://github.com/kubernetes/kubernetes/pull/99746), [@swetharepakula](https://github.com/swetharepakula))", + "author": "swetharepakula", + "author_url": "https://github.com/swetharepakula", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99746", + "pr_number": 99746, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "network" + ], + "feature": true, + "duplicate": true + }, + "99749": { + "commit": "96be00df69390ed41b8ec22facc43bcbb9c88aae", + "text": "upgrade node local dns to 1.17.0 for better IPv6 support", + "markdown": "Upgrade node local dns to 1.17.0 for better IPv6 support ([#99749](https://github.com/kubernetes/kubernetes/pull/99749), [@pacoxu](https://github.com/pacoxu)) [SIG Cloud Provider and Network]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99749", + "pr_number": 99749, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "network" + ], + "feature": true, + "duplicate": true + }, + "99750": { + "commit": "76f2a4d5fd8364edbb31a3611178c918644f415c", + "text": "EndpointSlice generation is now incremented when labels change.", + "markdown": "EndpointSlice generation is now incremented when labels change. ([#99750](https://github.com/kubernetes/kubernetes/pull/99750), [@robscott](https://github.com/robscott)) [SIG Network]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99750", + "pr_number": 99750, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "99756": { + "commit": "fde28141e679b5b16eaff23d5efbbcc202692358", + "text": "EndpointSliceMirroring controller is now less likely to emit FailedToUpdateEndpointSlices events.", + "markdown": "EndpointSliceMirroring controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#99756](https://github.com/kubernetes/kubernetes/pull/99756), [@robscott](https://github.com/robscott)) [SIG Apps and Network]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99756", + "pr_number": 99756, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true, + "duplicate_kind": true + }, + "99785": { + "commit": "afca3dace4a242e8e638552a41903a3351603128", + "text": "Rename metrics `etcd_object_counts` to `apiserver_storage_object_counts` and mark it as stable. The original `etcd_object_counts` metrics name is marked as \"Deprecated\" and will be removed in the future.", + "markdown": "Rename metrics `etcd_object_counts` to `apiserver_storage_object_counts` and mark it as stable. The original `etcd_object_counts` metrics name is marked as \"Deprecated\" and will be removed in the future. ([#99785](https://github.com/kubernetes/kubernetes/pull/99785), [@erain](https://github.com/erain)) [SIG API Machinery, Instrumentation and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1209-metrics-stability", + "type": "KEP" + } + ], + "author": "erain", + "author_url": "https://github.com/erain", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99785", + "pr_number": 99785, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "feature", + "deprecation" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "99788": { + "commit": "ffa4e3414ef53a2e64fade41ad7f72866db090cb", + "text": "The `apiserver_request_total` metric is promoted to stable status and no longer has a content-type dimensions, so any alerts/charts which presume the existence of this will fail. This is however, unlikely to be the case since it was effectively an unbounded dimension in the first place.", + "markdown": "The `apiserver_request_total` metric is promoted to stable status and no longer has a content-type dimensions, so any alerts/charts which presume the existence of this will fail. This is however, unlikely to be the case since it was effectively an unbounded dimension in the first place. ([#99788](https://github.com/kubernetes/kubernetes/pull/99788), [@logicalhan](https://github.com/logicalhan))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1209-metrics-stability", + "type": "KEP" + } + ], + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99788", + "pr_number": 99788, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "99794": { + "commit": "68f48693c17e12765666479e75a8663e3e467507", + "text": "WindowsEndpointSliceProxying feature gate has graduated to beta and is enabled by default. This means kube-proxy will read from EndpointSlices instead of Endpoints on Windows by default.", + "markdown": "WindowsEndpointSliceProxying feature gate has graduated to beta and is enabled by default. This means kube-proxy will read from EndpointSlices instead of Endpoints on Windows by default. ([#99794](https://github.com/kubernetes/kubernetes/pull/99794), [@robscott](https://github.com/robscott)) [SIG Network]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99794", + "pr_number": 99794, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "99795": { + "commit": "d11582b44be76e7936538cc96c2a01fdaae8904b", + "text": "The maximum number of ports allowed in EndpointSlices has been increased from 100 to 20,000", + "markdown": "The maximum number of ports allowed in EndpointSlices has been increased from 100 to 20,000 ([#99795](https://github.com/kubernetes/kubernetes/pull/99795), [@robscott](https://github.com/robscott)) [SIG Network]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99795", + "pr_number": 99795, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "99825": { + "commit": "20bc36c34dbd4916392b929239b5a30d44f131cd", + "text": "Ensure only one LoadBalancer rule is created when HA mode is enabled", + "markdown": "Ensure only one LoadBalancer rule is created when HA mode is enabled ([#99825](https://github.com/kubernetes/kubernetes/pull/99825), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider]", + "author": "feiskyer", + "author_url": "https://github.com/feiskyer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99825", + "pr_number": 99825, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "99833": { + "commit": "9132f871532d5ae5325a64a4f91090d54b81c43d", + "text": "kubectl: a Pod can be preselected as default container using `kubectl.kubernetes.io/default-container` annotation", + "markdown": "Kubectl: a Pod can be preselected as default container using `kubectl.kubernetes.io/default-container` annotation ([#99833](https://github.com/kubernetes/kubernetes/pull/99833), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99833", + "pr_number": 99833, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "99835": { + "commit": "027d9e6c25a1776bbda78aefab1c39102ac0815d", + "text": "`VolumeBindingArgs` now allow `BindTimeoutSeconds` to be set as zero, while the value zero indicates no waiting for the checking of volume binding operation.", + "markdown": "`VolumeBindingArgs` now allow `BindTimeoutSeconds` to be set as zero, while the value zero indicates no waiting for the checking of volume binding operation. ([#99835](https://github.com/kubernetes/kubernetes/pull/99835), [@chendave](https://github.com/chendave)) [SIG Scheduling and Storage]", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99835", + "pr_number": 99835, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "scheduling", + "storage" + ], + "duplicate": true, + "duplicate_kind": true + }, + "99870": { + "commit": "d6a9061cb43ab98054f0f455115d87e1b20f7971", + "text": "The EndpointSlice Controllers are now GA. The `EndpointSliceController` will not populate the `deprecatedTopology` field and will only provide topology information through the `zone` and `nodeName` fields.", + "markdown": "The EndpointSlice Controllers are now GA. The `EndpointSliceController` will not populate the `deprecatedTopology` field and will only provide topology information through the `zone` and `nodeName` fields. ([#99870](https://github.com/kubernetes/kubernetes/pull/99870), [@swetharepakula](https://github.com/swetharepakula))", + "author": "swetharepakula", + "author_url": "https://github.com/swetharepakula", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99870", + "pr_number": 99870, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99925": { + "commit": "72d92159bc11ce0bca5475461f72da842d0dbb9f", + "text": "apiserver_request_duration_seconds is promoted to stable status.", + "markdown": "Apiserver_request_duration_seconds is promoted to stable status. ([#99925](https://github.com/kubernetes/kubernetes/pull/99925), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Instrumentation and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1209-metrics-stability", + "type": "KEP" + } + ], + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99925", + "pr_number": 99925, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "99944": { + "commit": "067ab92d9dc75828c6ad4dda6373fe93d4bc656a", + "text": "Fixed authentication_duration_seconds metric scope. Previously, it included whole apiserver request duration which yields inaccurate results.", + "markdown": "Fixed authentication_duration_seconds metric scope. Previously, it included whole apiserver request duration which yields inaccurate results. ([#99944](https://github.com/kubernetes/kubernetes/pull/99944), [@marseel](https://github.com/marseel))", + "author": "marseel", + "author_url": "https://github.com/marseel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99944", + "pr_number": 99944, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "scalability" + ], + "duplicate": true, + "duplicate_kind": true + }, + "99975": { + "commit": "05c4febbe7fea6579ee7013deef50873471352e5", + "text": "The Endpoints controller will now set the `endpoints.kubernetes.io/over-capacity` annotation to \"warning\" when an Endpoints resource contains more than 1000 addresses. In a future release, the controller will truncate Endpoints that exceed this limit. The EndpointSlice API can be used to support significantly larger number of addresses.", + "markdown": "The Endpoints controller will now set the `endpoints.kubernetes.io/over-capacity` annotation to \"warning\" when an Endpoints resource contains more than 1000 addresses. In a future release, the controller will truncate Endpoints that exceed this limit. The EndpointSlice API can be used to support significantly larger number of addresses. ([#99975](https://github.com/kubernetes/kubernetes/pull/99975), [@robscott](https://github.com/robscott)) [SIG Apps and Network]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99975", + "pr_number": 99975, + "kinds": [ + "api-change", + "cleanup", + "feature" + ], + "sigs": [ + "apps", + "network" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + } } \ No newline at end of file diff --git a/releases/release-1.21/release-notes/release-notes-draft.md b/releases/release-1.21/release-notes/release-notes-draft.md index 58a98072775..3027829acda 100644 --- a/releases/release-1.21/release-notes/release-notes-draft.md +++ b/releases/release-1.21/release-notes/release-notes-draft.md @@ -1,490 +1,490 @@ -# Release notes for v1.21.0-rc.0 - -[Documentation](https://docs.k8s.io/docs/home) - -# Changelog since v1.20.0 - -## What's New (Major Themes) - -### Deprecation of PodSecurityPolicy - -PSP as an admission controller resource is being deprecated. Deployed PodSecurityPolicy's will keep working until version 1.25, their target removal from the codebase. A new feature, with a working title of "PSP replacement policy", is being developed in [KEP-2579](https://features.k8s.io/2579). To learn more, read [PodSecurityPolicy Deprecation: Past, Present, and Future](https://blog.k8s.io/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/). - -### Kubernetes API Reference Documentation - -The API reference is now generated with [`gen-resourcesdocs`](https://github.com/kubernetes-sigs/reference-docs/tree/c96658d89fb21037b7d00d27e6dbbe6b32375837/gen-resourcesdocs) and it is moving to [Kubernetes API](https://docs.k8s.io/reference/kubernetes-api/) - -### Kustomize Updates in Kubectl - -[Kustomize](https://github.com/kubernetes-sigs/kustomize) version in kubectl had a jump from v2.0.3 to [v4.0.5](https://github.com/kubernetes/kubernetes/pull/98946). Kustomize is now treated as a library and future updates will be less sporadic. - -### Default Container Labels - -Pod with multiple containers can use `kubectl.kubernetes.io/default-container` label to have a container preselected for kubectl commands. More can be read in [KEP-2227](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md). - -### Immutable Secrets and ConfigMaps - -Immutable Secrets and ConfigMaps graduates to GA. This feature allows users to specify that the contents of a particular Secret or ConfigMap is immutable for its object lifetime. For such instances, Kubelet will not watch/poll for changes and therefore reducing apiserver load. - -### Structured Logging in Kubelet - -Kubelet has adopted structured logging, thanks to community effort in accomplishing this within the release timeline. Structured logging in the project remains an ongoing effort -- for folks interested in participating, [keep an eye / chime in to the mailing list discussion](https://groups.google.com/g/kubernetes-dev/c/y4WIw-ntUR8). - -### Storage Capacity Tracking - -Traditionally, the Kubernetes scheduler was based on the assumptions that additional persistent storage is available everywhere in the cluster and has infinite capacity. Topology constraints addressed the first point, but up to now pod scheduling was still done without considering that the remaining storage capacity may not be enough to start a new pod. [Storage capacity tracking](https://docs.k8s.io/concepts/storage/storage-capacity/) addresses that by adding an API for a CSI driver to report storage capacity and uses that information in the Kubernetes scheduler when choosing a node for a pod. This feature serves as a stepping stone for supporting dynamic provisioning for local volumes and other volume types that are more capacity constrained. - -### Generic Ephemeral Volumes - -[Generic ephermeral volumes](https://docs.k8s.io/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes) feature allows any existing storage driver that supports dynamic provisioning to be used as an ephemeral volume with the volume’s lifecycle bound to the Pod. It can be used to provide scratch storage that is different from the root disk, for example persistent memory, or a separate local disk on that node. All StorageClass parameters for volume provisioning are supported. All features supported with PersistentVolumeClaims are supported, such as storage capacity tracking, snapshots and restore, and volume resizing. - -### CSI Service Account Token - -CSI Service Account Token feature moves to Beta in 1.21. This feature improves the security posture and allows CSI drivers to receive pods' [bound service account tokens](https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1205-bound-service-account-tokens/README.md). This feature also provides a knob to re-publish volumes so that short-lived volumes can be refreshed. - -### CSI Health Monitoring - -The CSI health monitoring feature is being released as a second Alpha in Kubernetes 1.21. This feature enables CSI Drivers to share abnormal volume conditions from the underlying storage systems with Kubernetes so that they can be reported as events on PVCs or Pods. This feature serves as a stepping stone towards programmatic detection and resolution of individual volume health issues by Kubernetes. - -## Known Issues - -### `TopologyAwareHints` feature falls back to default behavior - -The feature gate currently falls back to the default behavior in most cases. Enabling the feature gate will add hints to `EndpointSlices`, but functional differences are only observed in non-dual stack kube-proxy implementation. [The fix will be available in coming releases](https://github.com/kubernetes/kubernetes/pull/100804). - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- Kube-proxy's IPVS proxy mode no longer sets the net.ipv4.conf.all.route_localnet sysctl parameter. Nodes upgrading will have net.ipv4.conf.all.route_localnet set to 1 but new nodes will inherit the system default (usually 0). If you relied on any behavior requiring net.ipv4.conf.all.route_localnet, you must set ensure it is enabled as kube-proxy will no longer set it automatically. This change helps to further mitigate CVE-2020-8558. ([#92938](https://github.com/kubernetes/kubernetes/pull/92938), [@lbernail](https://github.com/lbernail)) [SIG Network and Release] - - Kubeadm: during "init" an empty cgroupDriver value in the KubeletConfiguration is now always set to "systemd" unless the user is explicit about it. This requires existing machine setups to configure the container runtime to use the "systemd" driver. Documentation on this topic can be found here: https://kubernetes.io/docs/setup/production-environment/container-runtimes/. When upgrading existing clusters / nodes using "kubeadm upgrade" the old cgroupDriver value is preserved, but in 1.22 this change will also apply to "upgrade". For more information on migrating to the "systemd" driver or remaining on the "cgroupfs" driver see: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/. ([#99471](https://github.com/kubernetes/kubernetes/pull/99471), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] - - Newly provisioned PVs by EBS plugin will no longer use the deprecated "failure-domain.beta.kubernetes.io/zone" and "failure-domain.beta.kubernetes.io/region" labels. It will use "topology.kubernetes.io/zone" and "topology.kubernetes.io/region" labels instead. ([#99130](https://github.com/kubernetes/kubernetes/pull/99130), [@ayberk](https://github.com/ayberk)) [SIG Cloud Provider, Storage and Testing] - - Newly provisioned PVs by OpenStack Cinder plugin will no longer use the deprecated "failure-domain.beta.kubernetes.io/zone" and "failure-domain.beta.kubernetes.io/region" labels. It will use "topology.kubernetes.io/zone" and "topology.kubernetes.io/region" labels instead. ([#99719](https://github.com/kubernetes/kubernetes/pull/99719), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider and Storage] - - Newly provisioned PVs by gce-pd will no longer have the beta FailureDomain label. gce-pd volume plugin will start to have GA topology label instead. ([#98700](https://github.com/kubernetes/kubernetes/pull/98700), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Cloud Provider, Storage and Testing] - - OpenStack Cinder CSI migration is on by default, Clinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work. ([#98538](https://github.com/kubernetes/kubernetes/pull/98538), [@dims](https://github.com/dims)) [SIG Storage] - - Remove alpha `CSIMigrationXXComplete` flag and add alpha `InTreePluginXXUnregister` flag. Deprecate `CSIMigrationvSphereComplete` flag and it will be removed in v1.22. ([#98243](https://github.com/kubernetes/kubernetes/pull/98243), [@Jiawei0227](https://github.com/Jiawei0227)) - - Remove storage metrics `storage_operation_errors_total`, since we already have `storage_operation_status_count`.And add new field `status` for `storage_operation_duration_seconds`, so that we can know about all status storage operation latency. ([#98332](https://github.com/kubernetes/kubernetes/pull/98332), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation and Storage] - - The metric `storage_operation_errors_total` is not removed, but is marked deprecated, and the metric `storage_operation_status_count` is marked deprecated. In both cases the `storage_operation_duration_seconds` metric can be used to recover equivalent counts (using `status=fail-unknown` in the case of `storage_operations_errors_total`). ([#99045](https://github.com/kubernetes/kubernetes/pull/99045), [@mattcary](https://github.com/mattcary)) - - `ServiceNodeExclusion`, `NodeDisruptionExclusion` and `LegacyNodeRoleBehavior` features have been promoted to GA. `ServiceNodeExclusion` and `NodeDisruptionExclusion` are now unconditionally enabled, while `LegacyNodeRoleBehavior` is unconditionally disabled. To prevent control plane nodes from being added to load balancers automatically, upgrade users need to add "node.kubernetes.io/exclude-from-external-load-balancers" label to control plane nodes. ([#97543](https://github.com/kubernetes/kubernetes/pull/97543), [@pacoxu](https://github.com/pacoxu)) - -## Changes by Kind - -### Deprecation - -- Aborting the drain command in a list of nodes will be deprecated. The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain. For now, users can try such experience by enabling --ignore-errors flag. ([#98203](https://github.com/kubernetes/kubernetes/pull/98203), [@yuzhiquan](https://github.com/yuzhiquan)) -- Delete deprecated `service.beta.kubernetes.io/azure-load-balancer-mixed-protocols` mixed procotol annotation in favor of the MixedProtocolLBService feature ([#97096](https://github.com/kubernetes/kubernetes/pull/97096), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Deprecate the `topologyKeys` field in Service. This capability will be replaced with upcoming work around Topology Aware Subsetting and Service Internal Traffic Policy. ([#96736](https://github.com/kubernetes/kubernetes/pull/96736), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps] -- Kube-proxy: remove deprecated --cleanup-ipvs flag of kube-proxy, and make --cleanup flag always to flush IPVS ([#97336](https://github.com/kubernetes/kubernetes/pull/97336), [@maaoBit](https://github.com/maaoBit)) [SIG Network] -- Kubeadm: deprecated command "alpha selfhosting pivot" is now removed. ([#97627](https://github.com/kubernetes/kubernetes/pull/97627), [@knight42](https://github.com/knight42)) -- Kubeadm: graduate the command `kubeadm alpha kubeconfig user` to `kubeadm kubeconfig user`. The `kubeadm alpha kubeconfig user` command is deprecated now. ([#97583](https://github.com/kubernetes/kubernetes/pull/97583), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] -- Kubeadm: the "kubeadm alpha certs" command is removed now, please use "kubeadm certs" instead. ([#97706](https://github.com/kubernetes/kubernetes/pull/97706), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] -- Kubeadm: the deprecated kube-dns is no longer supported as an option. If "ClusterConfiguration.dns.type" is set to "kube-dns" kubeadm will now throw an error. ([#99646](https://github.com/kubernetes/kubernetes/pull/99646), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] -- Kubectl: The deprecated `kubectl alpha debug` command is removed. Use `kubectl debug` instead. ([#98111](https://github.com/kubernetes/kubernetes/pull/98111), [@pandaamanda](https://github.com/pandaamanda)) [SIG CLI] -- Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97935](https://github.com/kubernetes/kubernetes/pull/97935), [@adeniyistephen](https://github.com/adeniyistephen)) [SIG Release and Testing] -- Remove deprecated `--generator, --replicas, --service-generator, --service-overrides, --schedule` from `kubectl run` - Deprecate `--serviceaccount, --hostport, --requests, --limits` in `kubectl run` ([#99732](https://github.com/kubernetes/kubernetes/pull/99732), [@soltysh](https://github.com/soltysh)) -- Remove the deprecated metrics "scheduling_algorithm_preemption_evaluation_seconds" and "binding_duration_seconds", suggest to use "scheduler_framework_extension_point_duration_seconds" instead. ([#96447](https://github.com/kubernetes/kubernetes/pull/96447), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle, Instrumentation, Scheduling and Testing] -- Removing experimental windows container hyper-v support with Docker ([#97141](https://github.com/kubernetes/kubernetes/pull/97141), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows] -- Rename metrics `etcd_object_counts` to `apiserver_storage_object_counts` and mark it as stable. The original `etcd_object_counts` metrics name is marked as "Deprecated" and will be removed in the future. ([#99785](https://github.com/kubernetes/kubernetes/pull/99785), [@erain](https://github.com/erain)) [SIG API Machinery, Instrumentation and Testing] -- The GA TokenRequest and TokenRequestProjection feature gates have been removed and are unconditionally enabled. Remove explicit use of those feature gates in CLI invocations. ([#97148](https://github.com/kubernetes/kubernetes/pull/97148), [@wawa0210](https://github.com/wawa0210)) [SIG Node] -- The PodSecurityPolicy API is deprecated in 1.21, and will no longer be served starting in 1.25. ([#97171](https://github.com/kubernetes/kubernetes/pull/97171), [@deads2k](https://github.com/deads2k)) [SIG Auth and CLI] -- The `batch/v2alpha1` CronJob type definitions and clients are deprecated and removed. ([#96987](https://github.com/kubernetes/kubernetes/pull/96987), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps, CLI and Testing] -- The `export` query parameter (inconsistently supported by API resources and deprecated in v1.14) is fully removed. Requests setting this query parameter will now receive a 400 status response. ([#98312](https://github.com/kubernetes/kubernetes/pull/98312), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth and Testing] -- `audit.k8s.io/v1beta1` and `audit.k8s.io/v1alpha1` audit policy configuration and audit events are deprecated in favor of `audit.k8s.io/v1`, available since v1.13. kube-apiserver invocations that specify alpha or beta policy configurations with `--audit-policy-file`, or explicitly request alpha or beta audit events with `--audit-log-version` / `--audit-webhook-version` must update to use `audit.k8s.io/v1` and accept `audit.k8s.io/v1` events prior to v1.24. ([#98858](https://github.com/kubernetes/kubernetes/pull/98858), [@carlory](https://github.com/carlory)) [SIG Auth] -- `discovery.k8s.io/v1beta1` EndpointSlices are deprecated in favor of `discovery.k8s.io/v1`, and will no longer be served in Kubernetes v1.25. ([#100472](https://github.com/kubernetes/kubernetes/pull/100472), [@liggitt](https://github.com/liggitt)) -- `diskformat` storage class parameter for in-tree vSphere volume plugin is deprecated as of v1.21 release. Please consider updating storageclass and remove `diskformat` parameter. vSphere CSI Driver does not support diskformat storageclass parameter. - - vSphere releases less than 67u3 are deprecated as of v1.21. Please consider upgrading vSphere to 67u3 or above. vSphere CSI Driver requires minimum vSphere 67u3. - - VM Hardware version less than 15 is deprecated as of v1.21. Please consider upgrading the Node VM Hardware version to 15 or above. vSphere CSI Driver recommends Node VM's Hardware version set to at least vmx-15. - - Multi vCenter support is deprecated as of v1.21. If you have a Kubernetes cluster spanning across multiple vCenter servers, please consider moving all k8s nodes to a single vCenter Server. vSphere CSI Driver does not support Kubernetes deployment spanning across multiple vCenter servers. - - Support for these deprecations will be available till Kubernetes v1.24. ([#98546](https://github.com/kubernetes/kubernetes/pull/98546), [@divyenpatel](https://github.com/divyenpatel)) - -### API Change - -- 1. PodAffinityTerm includes a namespaceSelector field to allow selecting eligible namespaces based on their labels. - 2. A new CrossNamespacePodAffinity quota scope API that allows restricting which namespaces allowed to use PodAffinityTerm with corss-namespace reference via namespaceSelector or namespaces fields. ([#98582](https://github.com/kubernetes/kubernetes/pull/98582), [@ahg-g](https://github.com/ahg-g)) [SIG API Machinery, Apps, Auth and Testing] -- Add Probe-level terminationGracePeriodSeconds field ([#99375](https://github.com/kubernetes/kubernetes/pull/99375), [@ehashman](https://github.com/ehashman)) [SIG API Machinery, Apps, Node and Testing] -- Added `.spec.completionMode` field to Job, with accepted values `NonIndexed` (default) and `Indexed`. This is an alpha field and is only honored by servers with the `IndexedJob` feature gate enabled. ([#98441](https://github.com/kubernetes/kubernetes/pull/98441), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps and CLI] -- Adds support for endPort field in NetworkPolicy ([#97058](https://github.com/kubernetes/kubernetes/pull/97058), [@rikatz](https://github.com/rikatz)) [SIG Apps and Network] -- CSIServiceAccountToken graduates to Beta and enabled by default. ([#99298](https://github.com/kubernetes/kubernetes/pull/99298), [@zshihang](https://github.com/zshihang)) -- Cluster admins can now turn off `/debug/pprof` and `/debug/flags/v` endpoint in kubelet by setting `enableProfilingHandler` and `enableDebugFlagsHandler` to `false` in the Kubelet configuration file. Options `enableProfilingHandler` and `enableDebugFlagsHandler` can be set to `true` only when `enableDebuggingHandlers` is also set to `true`. ([#98458](https://github.com/kubernetes/kubernetes/pull/98458), [@SaranBalaji90](https://github.com/SaranBalaji90)) -- DaemonSets accept a MaxSurge integer or percent on their rolling update strategy that will launch the updated pod on nodes and wait for those pods to go ready before marking the old out-of-date pods as deleted. This allows workloads to avoid downtime during upgrades when deployed using DaemonSets. This feature is alpha and is behind the DaemonSetUpdateSurge feature gate. ([#96441](https://github.com/kubernetes/kubernetes/pull/96441), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps and Testing] -- Enable SPDY pings to keep connections alive, so that `kubectl exec` and `kubectl portforward` won't be interrupted. ([#97083](https://github.com/kubernetes/kubernetes/pull/97083), [@knight42](https://github.com/knight42)) [SIG API Machinery and CLI] -- FieldManager no longer owns fields that get reset before the object is persisted (e.g. "status wiping"). ([#99661](https://github.com/kubernetes/kubernetes/pull/99661), [@kevindelgado](https://github.com/kevindelgado)) [SIG API Machinery, Auth and Testing] -- Fixes server-side apply for APIService resources. ([#98576](https://github.com/kubernetes/kubernetes/pull/98576), [@kevindelgado](https://github.com/kevindelgado)) -- Generic ephemeral volumes are beta. ([#99643](https://github.com/kubernetes/kubernetes/pull/99643), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Node, Storage and Testing] -- Hugepages request values are limited to integer multiples of the page size. ([#98515](https://github.com/kubernetes/kubernetes/pull/98515), [@lala123912](https://github.com/lala123912)) [SIG Apps] -- Implement the GetAvailableResources in the podresources API. ([#95734](https://github.com/kubernetes/kubernetes/pull/95734), [@fromanirh](https://github.com/fromanirh)) [SIG Instrumentation, Node and Testing] -- IngressClass resource can now reference a resource in a specific namespace - for implementation-specific configuration (previously only Cluster-level resources were allowed). - This feature can be enabled using the IngressClassNamespacedParams feature gate. ([#99275](https://github.com/kubernetes/kubernetes/pull/99275), [@hbagdi](https://github.com/hbagdi)) -- Jobs API has a new `.spec.suspend` field that can be used to suspend and resume Jobs. This is an alpha field which is only honored by servers with the `SuspendJob` feature gate enabled. ([#98727](https://github.com/kubernetes/kubernetes/pull/98727), [@adtac](https://github.com/adtac)) -- Kubelet Graceful Node Shutdown feature graduates to Beta and enabled by default. ([#99735](https://github.com/kubernetes/kubernetes/pull/99735), [@bobbypage](https://github.com/bobbypage)) -- Kubernetes is now built using go1.15.7 ([#98363](https://github.com/kubernetes/kubernetes/pull/98363), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Node, Release and Testing] -- Namespace API objects now have a `kubernetes.io/metadata.name` label matching their metadata.name field to allow selecting any namespace by its name using a label selector. ([#96968](https://github.com/kubernetes/kubernetes/pull/96968), [@jayunit100](https://github.com/jayunit100)) [SIG API Machinery, Apps, Cloud Provider, Storage and Testing] -- One new field "InternalTrafficPolicy" in Service is added. - It specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only. - "Cluster" routes internal traffic to a Service to all endpoints. - "Local" routes traffic to node-local endpoints only, and traffic is dropped if no node-local endpoints are ready. - The default value is "Cluster". ([#96600](https://github.com/kubernetes/kubernetes/pull/96600), [@maplain](https://github.com/maplain)) [SIG API Machinery, Apps and Network] -- PodDisruptionBudget API objects can now contain conditions in status. ([#98127](https://github.com/kubernetes/kubernetes/pull/98127), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] -- PodSecurityPolicy only stores "generic" as allowed volume type if the GenericEphemeralVolume feature gate is enabled ([#98918](https://github.com/kubernetes/kubernetes/pull/98918), [@pohly](https://github.com/pohly)) [SIG Auth and Security] -- Promote CronJobs to batch/v1 ([#99423](https://github.com/kubernetes/kubernetes/pull/99423), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps, CLI and Testing] -- Promote Immutable Secrets/ConfigMaps feature to Stable. This allows to set `immutable` field in Secret or ConfigMap object to mark their contents as immutable. ([#97615](https://github.com/kubernetes/kubernetes/pull/97615), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps, Architecture, Node and Testing] -- Remove support for building Kubernetes with bazel. ([#99561](https://github.com/kubernetes/kubernetes/pull/99561), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows] -- Scheduler extender filter interface now can report unresolvable failed nodes in the new field `FailedAndUnresolvableNodes` of `ExtenderFilterResult` struct. Nodes in this map will be skipped in the preemption phase. ([#92866](https://github.com/kubernetes/kubernetes/pull/92866), [@cofyc](https://github.com/cofyc)) [SIG Scheduling] -- Services can specify loadBalancerClass to use a custom load balancer ([#98277](https://github.com/kubernetes/kubernetes/pull/98277), [@XudongLiuHarold](https://github.com/XudongLiuHarold)) -- Storage capacity tracking (= the CSIStorageCapacity feature) graduates to Beta and enabled by default, storage.k8s.io/v1alpha1/VolumeAttachment and storage.k8s.io/v1alpha1/CSIStorageCapacity objects are deprecated ([#99641](https://github.com/kubernetes/kubernetes/pull/99641), [@pohly](https://github.com/pohly)) -- Support for Indexed Job: a Job that is considered completed when Pods associated to indexes from 0 to (.spec.completions-1) have succeeded. ([#98812](https://github.com/kubernetes/kubernetes/pull/98812), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps and CLI] -- The BoundServiceAccountTokenVolume feature has been promoted to beta, and enabled by default. - - This changes the tokens provided to containers at `/var/run/secrets/kubernetes.io/serviceaccount/token` to be time-limited, auto-refreshed, and invalidated when the containing pod is deleted. - - Clients should reload the token from disk periodically (once per minute is recommended) to ensure they continue to use a valid token. `k8s.io/client-go` version v11.0.0+ and v0.15.0+ reload tokens automatically. - - By default, injected tokens are given an extended lifetime so they remain valid even after a new refreshed token is provided. The metric `serviceaccount_stale_tokens_total` can be used to monitor for workloads that are depending on the extended lifetime and are continuing to use tokens even after a refreshed token is provided to the container. If that metric indicates no existing workloads are depending on extended lifetimes, injected token lifetime can be shortened to 1 hour by starting `kube-apiserver` with `--service-account-extend-token-expiration=false`. ([#95667](https://github.com/kubernetes/kubernetes/pull/95667), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Cluster Lifecycle and Testing] -- The EndpointSlice Controllers are now GA. The `EndpointSliceController` will not populate the `deprecatedTopology` field and will only provide topology information through the `zone` and `nodeName` fields. ([#99870](https://github.com/kubernetes/kubernetes/pull/99870), [@swetharepakula](https://github.com/swetharepakula)) -- The Endpoints controller will now set the `endpoints.kubernetes.io/over-capacity` annotation to "warning" when an Endpoints resource contains more than 1000 addresses. In a future release, the controller will truncate Endpoints that exceed this limit. The EndpointSlice API can be used to support significantly larger number of addresses. ([#99975](https://github.com/kubernetes/kubernetes/pull/99975), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- The PodDisruptionBudget API has been promoted to policy/v1 with no schema changes. The only functional change is that an empty selector (`{}`) written to a policy/v1 PodDisruptionBudget now selects all pods in the namespace. The behavior of the policy/v1beta1 API remains unchanged. The policy/v1beta1 PodDisruptionBudget API is deprecated and will no longer be served in 1.25+. ([#99290](https://github.com/kubernetes/kubernetes/pull/99290), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Scheduling and Testing] -- The `EndpointSlice` API is now GA. The `EndpointSlice` topology field has been removed from the GA API and will be replaced by a new per Endpoint Zone field. If the topology field was previously used, it will be converted into an annotation in the v1 Resource. The `discovery.k8s.io/v1alpha1` API is removed. ([#99662](https://github.com/kubernetes/kubernetes/pull/99662), [@swetharepakula](https://github.com/swetharepakula)) -- The `controller.kubernetes.io/pod-deletion-cost` annotation can be set to offer a hint on the cost of deleting a `Pod` compared to other pods belonging to the same ReplicaSet. Pods with lower deletion cost are deleted first. This is an alpha feature. ([#99163](https://github.com/kubernetes/kubernetes/pull/99163), [@ahg-g](https://github.com/ahg-g)) -- The kube-apiserver now resets `managedFields` that got corrupted by a mutating admission controller. ([#98074](https://github.com/kubernetes/kubernetes/pull/98074), [@kwiesmueller](https://github.com/kwiesmueller)) -- Topology Aware Hints are now available in alpha and can be enabled with the `TopologyAwareHints` feature gate. ([#99522](https://github.com/kubernetes/kubernetes/pull/99522), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps, Auth, Instrumentation, Network and Testing] -- Users might specify the `kubectl.kubernetes.io/default-exec-container` annotation in a Pod to preselect container for kubectl commands. ([#97099](https://github.com/kubernetes/kubernetes/pull/97099), [@pacoxu](https://github.com/pacoxu)) [SIG CLI] - -### Feature - -- A client-go metric, rest_client_exec_plugin_call_total, has been added to track total calls to client-go credential plugins. ([#98892](https://github.com/kubernetes/kubernetes/pull/98892), [@ankeesler](https://github.com/ankeesler)) [SIG API Machinery, Auth, Cluster Lifecycle and Instrumentation] -- A new histogram metric to track the time it took to delete a job by the `TTLAfterFinished` controller ([#98676](https://github.com/kubernetes/kubernetes/pull/98676), [@ahg-g](https://github.com/ahg-g)) -- AWS cloud provider supports auto-discovering subnets without any `kubernetes.io/cluster/<clusterName>` tags. It also supports additional service annotation `service.beta.kubernetes.io/aws-load-balancer-subnets` to manually configure the subnets. ([#97431](https://github.com/kubernetes/kubernetes/pull/97431), [@kishorj](https://github.com/kishorj)) -- Aborting the drain command in a list of nodes will be deprecated. The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain. For now, users can try such experience by enabling --ignore-errors flag. ([#98203](https://github.com/kubernetes/kubernetes/pull/98203), [@yuzhiquan](https://github.com/yuzhiquan)) -- Add --permit-address-sharing flag to `kube-apiserver` to listen with `SO_REUSEADDR`. While allowing to listen on wildcard IPs like 0.0.0.0 and specific IPs in parallel, it avoids waiting for the kernel to release socket in `TIME_WAIT` state, and hence, considerably reducing `kube-apiserver` restart times under certain conditions. ([#93861](https://github.com/kubernetes/kubernetes/pull/93861), [@sttts](https://github.com/sttts)) -- Add `csi_operations_seconds` metric on kubelet that exposes CSI operations duration and status for node CSI operations. ([#98979](https://github.com/kubernetes/kubernetes/pull/98979), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Instrumentation and Storage] -- Add `migrated` field into `storage_operation_duration_seconds` metric ([#99050](https://github.com/kubernetes/kubernetes/pull/99050), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps, Instrumentation and Storage] -- Add flag --lease-reuse-duration-seconds for kube-apiserver to config etcd lease reuse duration. ([#97009](https://github.com/kubernetes/kubernetes/pull/97009), [@lingsamuel](https://github.com/lingsamuel)) [SIG API Machinery and Scalability] -- Add metric etcd_lease_object_counts for kube-apiserver to observe max objects attached to a single etcd lease. ([#97480](https://github.com/kubernetes/kubernetes/pull/97480), [@lingsamuel](https://github.com/lingsamuel)) [SIG API Machinery, Instrumentation and Scalability] -- Add support to generate client-side binaries for new darwin/arm64 platform ([#97743](https://github.com/kubernetes/kubernetes/pull/97743), [@dims](https://github.com/dims)) [SIG Release and Testing] -- Added `ephemeral_volume_controller_create[_failures]_total` counters to kube-controller-manager metrics ([#99115](https://github.com/kubernetes/kubernetes/pull/99115), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Cluster Lifecycle, Instrumentation and Storage] -- Added support for installing `arm64` node artifacts. ([#99242](https://github.com/kubernetes/kubernetes/pull/99242), [@liu-cong](https://github.com/liu-cong)) -- Adds alpha feature `VolumeCapacityPriority` which makes the scheduler prioritize nodes based on the best matching size of statically provisioned PVs across multiple topologies. ([#96347](https://github.com/kubernetes/kubernetes/pull/96347), [@cofyc](https://github.com/cofyc)) [SIG Apps, Network, Scheduling, Storage and Testing] -- Adds the ability to pass --strict-transport-security-directives to the kube-apiserver to set the HSTS header appropriately. Be sure you understand the consequences to browsers before setting this field. ([#96502](https://github.com/kubernetes/kubernetes/pull/96502), [@249043822](https://github.com/249043822)) [SIG Auth] -- Adds two new metrics to cronjobs, a histogram to track the time difference when a job is created and the expected time when it should be created, as well as a gauge for the missed schedules of a cronjob ([#99341](https://github.com/kubernetes/kubernetes/pull/99341), [@alaypatel07](https://github.com/alaypatel07)) -- Alpha implementation of Kubectl Command Headers: SIG CLI KEP 859 enabled when KUBECTL_COMMAND_HEADERS environment variable set on the client command line. ([#98952](https://github.com/kubernetes/kubernetes/pull/98952), [@seans3](https://github.com/seans3)) -- Base-images: Update to debian-iptables:buster-v1.4.0 - - Uses iptables 1.8.5 - - base-images: Update to debian-base:buster-v1.3.0 - - cluster/images/etcd: Build etcd:3.4.13-2 image - - Uses debian-base:buster-v1.3.0 ([#98401](https://github.com/kubernetes/kubernetes/pull/98401), [@pacoxu](https://github.com/pacoxu)) [SIG Testing] -- CRIContainerLogRotation graduates to GA and unconditionally enabled. ([#99651](https://github.com/kubernetes/kubernetes/pull/99651), [@umohnani8](https://github.com/umohnani8)) -- Component owner can configure the allowlist of metric label with flag '--allow-metric-labels'. ([#99385](https://github.com/kubernetes/kubernetes/pull/99385), [@YoyinZyc](https://github.com/YoyinZyc)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Release] -- Component owner can configure the allowlist of metric label with flag '--allow-metric-labels'. ([#99738](https://github.com/kubernetes/kubernetes/pull/99738), [@YoyinZyc](https://github.com/YoyinZyc)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] -- EmptyDir memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value. ([#100319](https://github.com/kubernetes/kubernetes/pull/100319), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node] -- Enables Kubelet to check volume condition and log events to corresponding pods. ([#99284](https://github.com/kubernetes/kubernetes/pull/99284), [@fengzixu](https://github.com/fengzixu)) [SIG Apps, Instrumentation, Node and Storage] -- EndpointSliceNodeName graduates to GA and thus will be unconditionally enabled -- NodeName will always be available in the v1beta1 API. ([#99746](https://github.com/kubernetes/kubernetes/pull/99746), [@swetharepakula](https://github.com/swetharepakula)) -- Export `NewDebuggingRoundTripper` function and `DebugLevel` options in the k8s.io/client-go/transport package. ([#98324](https://github.com/kubernetes/kubernetes/pull/98324), [@atosatto](https://github.com/atosatto)) -- Kube-proxy iptables: new metric sync_proxy_rules_iptables_total that exposes the number of rules programmed per table in each iteration ([#99653](https://github.com/kubernetes/kubernetes/pull/99653), [@aojea](https://github.com/aojea)) [SIG Instrumentation and Network] -- Kube-scheduler now logs plugin scoring summaries at --v=4 ([#99411](https://github.com/kubernetes/kubernetes/pull/99411), [@damemi](https://github.com/damemi)) [SIG Scheduling] -- Kubeadm now includes CoreDNS v1.8.0. ([#96429](https://github.com/kubernetes/kubernetes/pull/96429), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] -- Kubeadm: IPv6DualStack feature gate graduates to Beta and enabled by default ([#99294](https://github.com/kubernetes/kubernetes/pull/99294), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: a warning to user as ipv6 site-local is deprecated ([#99574](https://github.com/kubernetes/kubernetes/pull/99574), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle and Network] -- Kubeadm: add support for certificate chain validation. When using kubeadm in external CA mode, this allows an intermediate CA to be used to sign the certificates. The intermediate CA certificate must be appended to each signed certificate for this to work correctly. ([#97266](https://github.com/kubernetes/kubernetes/pull/97266), [@robbiemcmichael](https://github.com/robbiemcmichael)) [SIG Cluster Lifecycle] -- Kubeadm: amend the node kernel validation to treat CGROUP_PIDS, FAIR_GROUP_SCHED as required and CFS_BANDWIDTH, CGROUP_HUGETLB as optional ([#96378](https://github.com/kubernetes/kubernetes/pull/96378), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] -- Kubeadm: apply the "node.kubernetes.io/exclude-from-external-load-balancers" label on control plane nodes during "init", "join" and "upgrade" to preserve backwards compatibility with the lagacy LB mode where nodes labeled as "master" where excluded. To opt-out you can remove the label from a node. See #97543 and the linked KEP for more details. ([#98269](https://github.com/kubernetes/kubernetes/pull/98269), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: if the user has customized their image repository via the kubeadm configuration, pass the custom pause image repository and tag to the kubelet via --pod-infra-container-image not only for Docker but for all container runtimes. This flag tells the kubelet that it should not garbage collect the image. ([#99476](https://github.com/kubernetes/kubernetes/pull/99476), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: perform pre-flight validation on host/node name upon `kubeadm init` and `kubeadm join`, showing warnings on non-compliant names ([#99194](https://github.com/kubernetes/kubernetes/pull/99194), [@pacoxu](https://github.com/pacoxu)) -- Kubectl version changed to write a warning message to stderr if the client and server version difference exceeds the supported version skew of +/-1 minor version. ([#98250](https://github.com/kubernetes/kubernetes/pull/98250), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] -- Kubectl: Add `--use-protocol-buffers` flag to kubectl top pods and nodes. ([#96655](https://github.com/kubernetes/kubernetes/pull/96655), [@serathius](https://github.com/serathius)) -- Kubectl: `kubectl get` will omit managed fields by default now. Users could set `--show-managed-fields` to true to show managedFields when the output format is either `json` or `yaml`. ([#96878](https://github.com/kubernetes/kubernetes/pull/96878), [@knight42](https://github.com/knight42)) [SIG CLI and Testing] -- Kubectl: a Pod can be preselected as default container using `kubectl.kubernetes.io/default-container` annotation ([#99833](https://github.com/kubernetes/kubernetes/pull/99833), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Kubectl: add bash-completion for comma separated list on `kubectl get` ([#98301](https://github.com/kubernetes/kubernetes/pull/98301), [@phil9909](https://github.com/phil9909)) -- Kubernetes is now built using go1.15.8 ([#98834](https://github.com/kubernetes/kubernetes/pull/98834), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing] -- Kubernetes is now built with Golang 1.16 ([#98572](https://github.com/kubernetes/kubernetes/pull/98572), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Release and Testing] -- Kubernetes is now built with Golang 1.16.1 ([#100106](https://github.com/kubernetes/kubernetes/pull/100106), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing] -- Metrics can now be disabled explicitly via a command line flag (i.e. '--disabled-metrics=metric1,metric2') ([#99217](https://github.com/kubernetes/kubernetes/pull/99217), [@logicalhan](https://github.com/logicalhan)) -- New admission controller `DenyServiceExternalIPs` is available. Clusters which do not *need* the Service `externalIPs` feature should enable this controller and be more secure. ([#97395](https://github.com/kubernetes/kubernetes/pull/97395), [@thockin](https://github.com/thockin)) -- Overall, enable the feature of `PreferNominatedNode` will improve the performance of scheduling where preemption might frequently happen, but in theory, enable the feature of `PreferNominatedNode`, the pod might not be scheduled to the best candidate node in the cluster. ([#93179](https://github.com/kubernetes/kubernetes/pull/93179), [@chendave](https://github.com/chendave)) [SIG Scheduling and Testing] -- Persistent Volumes formatted with the btrfs filesystem will now automatically resize when expanded. ([#99361](https://github.com/kubernetes/kubernetes/pull/99361), [@Novex](https://github.com/Novex)) [SIG Storage] -- Port the devicemanager to Windows node to allow device plugins like directx ([#93285](https://github.com/kubernetes/kubernetes/pull/93285), [@aarnaud](https://github.com/aarnaud)) [SIG Node, Testing and Windows] -- Removes cAdvisor JSON metrics (/stats/container, /stats/<podname>/<containername>, /stats/<namespace>/<podname>/<poduid>/<containername>) from the kubelet. ([#99236](https://github.com/kubernetes/kubernetes/pull/99236), [@pacoxu](https://github.com/pacoxu)) -- Rename metrics `etcd_object_counts` to `apiserver_storage_object_counts` and mark it as stable. The original `etcd_object_counts` metrics name is marked as "Deprecated" and will be removed in the future. ([#99785](https://github.com/kubernetes/kubernetes/pull/99785), [@erain](https://github.com/erain)) [SIG API Machinery, Instrumentation and Testing] -- Sysctls graduates to General Availability and thus unconditionally enabled. ([#99158](https://github.com/kubernetes/kubernetes/pull/99158), [@wgahnagl](https://github.com/wgahnagl)) -- The Kubernetes pause image manifest list now contains an image for Windows Server 20H2. ([#97322](https://github.com/kubernetes/kubernetes/pull/97322), [@claudiubelu](https://github.com/claudiubelu)) [SIG Windows] -- The NodeAffinity plugin implements the PreFilter extension, offering enhanced performance for Filter. ([#99213](https://github.com/kubernetes/kubernetes/pull/99213), [@AliceZhang2016](https://github.com/AliceZhang2016)) [SIG Scheduling] -- The `CronJobControllerV2` feature flag graduates to Beta and set to be enabled by default. ([#98878](https://github.com/kubernetes/kubernetes/pull/98878), [@soltysh](https://github.com/soltysh)) -- The `EndpointSlice` mirroring controller mirrors endpoints annotations and labels to the generated endpoint slices, it also ensures that updates on any of these fields are mirrored. - The well-known annotation `endpoints.kubernetes.io/last-change-trigger-time` is skipped and not mirrored. ([#98116](https://github.com/kubernetes/kubernetes/pull/98116), [@aojea](https://github.com/aojea)) -- The `RunAsGroup` feature has been promoted to GA in this release. ([#94641](https://github.com/kubernetes/kubernetes/pull/94641), [@krmayankk](https://github.com/krmayankk)) [SIG Auth and Node] -- The `ServiceAccountIssuerDiscovery` feature has graduated to GA, and is unconditionally enabled. The `ServiceAccountIssuerDiscovery` feature-gate will be removed in 1.22. ([#98553](https://github.com/kubernetes/kubernetes/pull/98553), [@mtaufen](https://github.com/mtaufen)) [SIG API Machinery, Auth and Testing] -- The `TTLAfterFinished` feature flag is now beta and enabled by default ([#98678](https://github.com/kubernetes/kubernetes/pull/98678), [@ahg-g](https://github.com/ahg-g)) -- The apimachinery util/net function used to detect the bind address `ResolveBindAddress()` takes into consideration global IP addresses on loopback interfaces when 1) the host has default routes, or 2) there are no global IPs on those interfaces in order to support more complex network scenarios like BGP Unnumbered RFC 5549 ([#95790](https://github.com/kubernetes/kubernetes/pull/95790), [@aojea](https://github.com/aojea)) [SIG Network] -- The feature gate `RootCAConfigMap` graduated to GA in v1.21 and therefore will be unconditionally enabled. This flag will be removed in v1.22 release. ([#98033](https://github.com/kubernetes/kubernetes/pull/98033), [@zshihang](https://github.com/zshihang)) -- The pause image upgraded to `v3.4.1` in kubelet and kubeadm for both Linux and Windows. ([#98205](https://github.com/kubernetes/kubernetes/pull/98205), [@pacoxu](https://github.com/pacoxu)) -- Update pause container to run as pseudo user and group `65535:65535`. This implies the release of version 3.5 of the container images. ([#97963](https://github.com/kubernetes/kubernetes/pull/97963), [@saschagrunert](https://github.com/saschagrunert)) [SIG CLI, Cloud Provider, Cluster Lifecycle, Node, Release, Security and Testing] -- Update the latest validated version of Docker to 20.10 ([#98977](https://github.com/kubernetes/kubernetes/pull/98977), [@neolit123](https://github.com/neolit123)) [SIG CLI, Cluster Lifecycle and Node] -- Upgrade node local dns to 1.17.0 for better IPv6 support ([#99749](https://github.com/kubernetes/kubernetes/pull/99749), [@pacoxu](https://github.com/pacoxu)) [SIG Cloud Provider and Network] -- Upgrades `IPv6Dualstack` to `Beta` and turns it on by default. New clusters or existing clusters are not be affected until an actor starts adding secondary Pods and service CIDRS CLI flags as described here: [IPv4/IPv6 Dual-stack](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack) ([#98969](https://github.com/kubernetes/kubernetes/pull/98969), [@khenidak](https://github.com/khenidak)) -- Users might specify the `kubectl.kubernetes.io/default-container` annotation in a Pod to preselect container for kubectl commands. ([#99581](https://github.com/kubernetes/kubernetes/pull/99581), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG CLI] -- When downscaling ReplicaSets, ready and creation timestamps are compared in a logarithmic scale. ([#99212](https://github.com/kubernetes/kubernetes/pull/99212), [@damemi](https://github.com/damemi)) [SIG Apps and Testing] -- When the kubelet is watching a ConfigMap or Secret purely in the context of setting environment variables - for containers, only hold that watch for a defined duration before cancelling it. This change reduces the CPU - and memory usage of the kube-apiserver in large clusters. ([#99393](https://github.com/kubernetes/kubernetes/pull/99393), [@chenyw1990](https://github.com/chenyw1990)) [SIG API Machinery, Node and Testing] -- WindowsEndpointSliceProxying feature gate has graduated to beta and is enabled by default. This means kube-proxy will read from EndpointSlices instead of Endpoints on Windows by default. ([#99794](https://github.com/kubernetes/kubernetes/pull/99794), [@robscott](https://github.com/robscott)) [SIG Network] -- `kubectl wait` ensures that observedGeneration >= generation to prevent stale state reporting. An example scenario can be found on CRD updates. ([#97408](https://github.com/kubernetes/kubernetes/pull/97408), [@KnicKnic](https://github.com/KnicKnic)) - -### Documentation - -- Azure file migration graduates to beta, with CSIMigrationAzureFile flag off by default - as it requires installation of AzureFile CSI Driver. Users should enable CSIMigration and - CSIMigrationAzureFile features and install the [AzureFile CSI Driver](https://github.com/kubernetes-sigs/azurefile-csi-driver) - to avoid disruption to existing Pod and PVC objects at that time. Azure File CSI driver does not support using same persistent - volume with different fsgroups. When CSI migration is enabled for azurefile driver, such case is not supported. - (there is a case we support where volume is mounted with 0777 and then it readable/writable by everyone) ([#96293](https://github.com/kubernetes/kubernetes/pull/96293), [@andyzhangx](https://github.com/andyzhangx)) -- Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97935](https://github.com/kubernetes/kubernetes/pull/97935), [@adeniyistephen](https://github.com/adeniyistephen)) [SIG Release and Testing] -- Set kubelet option `--volume-stats-agg-period` to negative value to disable volume calculations. ([#96675](https://github.com/kubernetes/kubernetes/pull/96675), [@pacoxu](https://github.com/pacoxu)) [SIG Node] - -### Failing Test - -- Escape the special characters like `[`, `]` and ` ` that exist in vsphere windows path ([#98830](https://github.com/kubernetes/kubernetes/pull/98830), [@liyanhui1228](https://github.com/liyanhui1228)) [SIG Storage and Windows] -- Kube-proxy: fix a bug on UDP `NodePort` Services where stale connection tracking entries may blackhole the traffic directed to the `NodePort` ([#98305](https://github.com/kubernetes/kubernetes/pull/98305), [@aojea](https://github.com/aojea)) -- Kubelet: fixes a bug in the HostPort dockershim implementation that caused the conformance test "HostPort validates that there is no conflict between pods with same hostPort but different hostIP and protocol" to fail. ([#98755](https://github.com/kubernetes/kubernetes/pull/98755), [@aojea](https://github.com/aojea)) [SIG Cloud Provider, Network and Node] - -### Bug or Regression - -- AcceleratorStats will be available in the Summary API of kubelet when cri_stats_provider is used. ([#96873](https://github.com/kubernetes/kubernetes/pull/96873), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) [SIG Node] -- All data is no longer automatically deleted when a failure is detected during creation of the volume data file on a CSI volume. Now only the data file and volume path is removed. ([#96021](https://github.com/kubernetes/kubernetes/pull/96021), [@huffmanca](https://github.com/huffmanca)) -- Clean ReplicaSet by revision instead of creation timestamp in deployment controller ([#97407](https://github.com/kubernetes/kubernetes/pull/97407), [@waynepeking348](https://github.com/waynepeking348)) [SIG Apps] -- Cleanup subnet in frontend IP configs to prevent huge subnet request bodies in some scenarios. ([#98133](https://github.com/kubernetes/kubernetes/pull/98133), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Client-go exec credential plugins will pass stdin only when interactive terminal is detected on stdin. This fixes a bug where previously it was checking if **stdout** is an interactive terminal. ([#99654](https://github.com/kubernetes/kubernetes/pull/99654), [@ankeesler](https://github.com/ankeesler)) -- Cloud-controller-manager: routes controller should not depend on --allocate-node-cidrs ([#97029](https://github.com/kubernetes/kubernetes/pull/97029), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider and Testing] -- Cluster Autoscaler version bump to v1.20.0 ([#97011](https://github.com/kubernetes/kubernetes/pull/97011), [@towca](https://github.com/towca)) -- Creating a PVC with DataSource should fail for non-CSI plugins. ([#97086](https://github.com/kubernetes/kubernetes/pull/97086), [@xing-yang](https://github.com/xing-yang)) [SIG Apps and Storage] -- EndpointSlice controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#99345](https://github.com/kubernetes/kubernetes/pull/99345), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- EndpointSlice controllers are less likely to create duplicate EndpointSlices. ([#100103](https://github.com/kubernetes/kubernetes/pull/100103), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- EndpointSliceMirroring controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#99756](https://github.com/kubernetes/kubernetes/pull/99756), [@robscott](https://github.com/robscott)) [SIG Apps and Network] -- Ensure all vSphere nodes are are tracked by volume attach-detach controller ([#96689](https://github.com/kubernetes/kubernetes/pull/96689), [@gnufied](https://github.com/gnufied)) -- Ensure empty string annotations are copied over in rollbacks. ([#94858](https://github.com/kubernetes/kubernetes/pull/94858), [@waynepeking348](https://github.com/waynepeking348)) -- Ensure only one LoadBalancer rule is created when HA mode is enabled ([#99825](https://github.com/kubernetes/kubernetes/pull/99825), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Ensure that client-go's EventBroadcaster is safe (non-racy) during shutdown. ([#95664](https://github.com/kubernetes/kubernetes/pull/95664), [@DirectXMan12](https://github.com/DirectXMan12)) [SIG API Machinery] -- Explicitly pass `KUBE_BUILD_CONFORMANCE=y` in `package-tarballs` to reenable building the conformance tarballs. ([#100571](https://github.com/kubernetes/kubernetes/pull/100571), [@puerco](https://github.com/puerco)) -- Fix Azure file migration e2e test failure when CSIMigration is turned on. ([#97877](https://github.com/kubernetes/kubernetes/pull/97877), [@andyzhangx](https://github.com/andyzhangx)) -- Fix CSI-migrated inline EBS volumes failing to mount if their volumeID is prefixed by aws:// ([#96821](https://github.com/kubernetes/kubernetes/pull/96821), [@wongma7](https://github.com/wongma7)) [SIG Storage] -- Fix CVE-2020-8555 for Gluster client connections. ([#97922](https://github.com/kubernetes/kubernetes/pull/97922), [@liggitt](https://github.com/liggitt)) [SIG Storage] -- Fix NPE in ephemeral storage eviction ([#98261](https://github.com/kubernetes/kubernetes/pull/98261), [@wzshiming](https://github.com/wzshiming)) [SIG Node] -- Fix PermissionDenied issue on SMB mount for Windows ([#99550](https://github.com/kubernetes/kubernetes/pull/99550), [@andyzhangx](https://github.com/andyzhangx)) -- Fix bug that would let the Horizontal Pod Autoscaler scale down despite at least one metric being unavailable/invalid ([#99514](https://github.com/kubernetes/kubernetes/pull/99514), [@mikkeloscar](https://github.com/mikkeloscar)) [SIG Apps and Autoscaling] -- Fix cgroup handling for systemd with cgroup v2 ([#98365](https://github.com/kubernetes/kubernetes/pull/98365), [@odinuge](https://github.com/odinuge)) [SIG Node] -- Fix counting error in service/nodeport/loadbalancer quota check ([#97451](https://github.com/kubernetes/kubernetes/pull/97451), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery, Network and Testing] -- Fix errors when accessing Windows container stats for Dockershim ([#98510](https://github.com/kubernetes/kubernetes/pull/98510), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows] -- Fix kube-proxy container image architecture for non amd64 images. ([#98526](https://github.com/kubernetes/kubernetes/pull/98526), [@saschagrunert](https://github.com/saschagrunert)) -- Fix missing cadvisor machine metrics. ([#97006](https://github.com/kubernetes/kubernetes/pull/97006), [@lingsamuel](https://github.com/lingsamuel)) [SIG Node] -- Fix nil VMSS name when setting service to auto mode ([#97366](https://github.com/kubernetes/kubernetes/pull/97366), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Fix privileged config of Pod Sandbox which was previously ignored. ([#96877](https://github.com/kubernetes/kubernetes/pull/96877), [@xeniumlee](https://github.com/xeniumlee)) -- Fix the panic when kubelet registers if a node object already exists with no Status.Capacity or Status.Allocatable ([#95269](https://github.com/kubernetes/kubernetes/pull/95269), [@SataQiu](https://github.com/SataQiu)) [SIG Node] -- Fix the regression with the slow pods termination. Before this fix pods may take an additional time to terminate - up to one minute. Reversing the change that ensured that CNI resources cleaned up when the pod is removed on API server. ([#97980](https://github.com/kubernetes/kubernetes/pull/97980), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node] -- Fix to recover CSI volumes from certain dangling attachments ([#96617](https://github.com/kubernetes/kubernetes/pull/96617), [@yuga711](https://github.com/yuga711)) [SIG Apps and Storage] -- Fix: azure file latency issue for metadata-heavy workloads ([#97082](https://github.com/kubernetes/kubernetes/pull/97082), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] -- Fixed Cinder volume IDs on OpenStack Train ([#96673](https://github.com/kubernetes/kubernetes/pull/96673), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider] -- Fixed FibreChannel volume plugin corrupting filesystems on detach of multipath volumes. ([#97013](https://github.com/kubernetes/kubernetes/pull/97013), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] -- Fixed a bug in kubelet that will saturate CPU utilization after containerd got restarted. ([#97174](https://github.com/kubernetes/kubernetes/pull/97174), [@hanlins](https://github.com/hanlins)) [SIG Node] -- Fixed a bug that causes smaller number of conntrack-max being used under CPU static policy. (#99225, @xh4n3) ([#99613](https://github.com/kubernetes/kubernetes/pull/99613), [@xh4n3](https://github.com/xh4n3)) [SIG Network] -- Fixed a bug that on k8s nodes, when the policy of INPUT chain in filter table is not ACCEPT, healthcheck nodeport would not work. - Added iptables rules to allow healthcheck nodeport traffic. ([#97824](https://github.com/kubernetes/kubernetes/pull/97824), [@hanlins](https://github.com/hanlins)) [SIG Network] -- Fixed a bug that the kubelet cannot start on BtrfS. ([#98042](https://github.com/kubernetes/kubernetes/pull/98042), [@gjkim42](https://github.com/gjkim42)) [SIG Node] -- Fixed a race condition on API server startup ensuring previously created webhook configurations are effective before the first write request is admitted. ([#95783](https://github.com/kubernetes/kubernetes/pull/95783), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery] -- Fixed an issue with garbage collection failing to clean up namespaced children of an object also referenced incorrectly by cluster-scoped children ([#98068](https://github.com/kubernetes/kubernetes/pull/98068), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps] -- Fixed authentication_duration_seconds metric scope. Previously, it included whole apiserver request duration which yields inaccurate results. ([#99944](https://github.com/kubernetes/kubernetes/pull/99944), [@marseel](https://github.com/marseel)) -- Fixed bug in CPUManager with race on container map access ([#97427](https://github.com/kubernetes/kubernetes/pull/97427), [@klueska](https://github.com/klueska)) [SIG Node] -- Fixed bug that caused cAdvisor to incorrectly detect single-socket multi-NUMA topology. ([#99315](https://github.com/kubernetes/kubernetes/pull/99315), [@iwankgb](https://github.com/iwankgb)) [SIG Node] -- Fixed cleanup of block devices when /var/lib/kubelet is a symlink. ([#96889](https://github.com/kubernetes/kubernetes/pull/96889), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] -- Fixed no effect namespace when exposing deployment with --dry-run=client. ([#97492](https://github.com/kubernetes/kubernetes/pull/97492), [@masap](https://github.com/masap)) [SIG CLI] -- Fixed provisioning of Cinder volumes migrated to CSI when StorageClass with AllowedTopologies was used. ([#98311](https://github.com/kubernetes/kubernetes/pull/98311), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] -- Fixes a bug of identifying the correct containerd process. ([#97888](https://github.com/kubernetes/kubernetes/pull/97888), [@pacoxu](https://github.com/pacoxu)) -- Fixes add-on manager leader election to use leases instead of endpoints, similar to what kube-controller-manager does in 1.20 ([#98968](https://github.com/kubernetes/kubernetes/pull/98968), [@liggitt](https://github.com/liggitt)) -- Fixes connection errors when using `--volume-host-cidr-denylist` or `--volume-host-allow-local-loopback` ([#98436](https://github.com/kubernetes/kubernetes/pull/98436), [@liggitt](https://github.com/liggitt)) [SIG Network and Storage] -- Fixes problem where invalid selector on `PodDisruptionBudget` leads to a nil pointer dereference that causes the Controller manager to crash loop. ([#98750](https://github.com/kubernetes/kubernetes/pull/98750), [@mortent](https://github.com/mortent)) -- Fixes spurious errors about IPv6 in `kube-proxy` logs on nodes with IPv6 disabled. ([#99127](https://github.com/kubernetes/kubernetes/pull/99127), [@danwinship](https://github.com/danwinship)) -- Fixing a bug where a failed node may not have the NoExecute taint set correctly ([#96876](https://github.com/kubernetes/kubernetes/pull/96876), [@howieyuen](https://github.com/howieyuen)) [SIG Apps and Node] -- GCE Internal LoadBalancer sync loop will now release the ILB IP address upon sync failure. An error in ILB forwarding rule creation will no longer leak IP addresses. ([#97740](https://github.com/kubernetes/kubernetes/pull/97740), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider and Network] -- Ignore update pod with no new images in alwaysPullImages admission controller ([#96668](https://github.com/kubernetes/kubernetes/pull/96668), [@pacoxu](https://github.com/pacoxu)) [SIG Apps, Auth and Node] -- Improve speed of vSphere PV provisioning and reduce number of API calls ([#100054](https://github.com/kubernetes/kubernetes/pull/100054), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage] -- KUBECTL_EXTERNAL_DIFF now accepts equal sign for additional parameters. ([#98158](https://github.com/kubernetes/kubernetes/pull/98158), [@dougsland](https://github.com/dougsland)) [SIG CLI] -- Kube-apiserver: an update of a pod with a generic ephemeral volume dropped that volume if the feature had been disabled since creating the pod with such a volume ([#99446](https://github.com/kubernetes/kubernetes/pull/99446), [@pohly](https://github.com/pohly)) [SIG Apps, Node and Storage] -- Kube-proxy: remove deprecated --cleanup-ipvs flag of kube-proxy, and make --cleanup flag always to flush IPVS ([#97336](https://github.com/kubernetes/kubernetes/pull/97336), [@maaoBit](https://github.com/maaoBit)) [SIG Network] -- Kubeadm installs etcd v3.4.13 when creating cluster v1.19 ([#97244](https://github.com/kubernetes/kubernetes/pull/97244), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: Fixes a kubeadm upgrade bug that could cause a custom CoreDNS configuration to be replaced with the default. ([#97016](https://github.com/kubernetes/kubernetes/pull/97016), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] -- Kubeadm: Some text in the `kubeadm upgrade plan` output has changed. If you have scripts or other automation that parses this output, please review these changes and update your scripts to account for the new output. ([#98728](https://github.com/kubernetes/kubernetes/pull/98728), [@stmcginnis](https://github.com/stmcginnis)) [SIG Cluster Lifecycle] -- Kubeadm: fix a bug in the host memory detection code on 32bit Linux platforms ([#97403](https://github.com/kubernetes/kubernetes/pull/97403), [@abelbarrera15](https://github.com/abelbarrera15)) [SIG Cluster Lifecycle] -- Kubeadm: fix a bug where "kubeadm join" would not properly handle missing names for existing etcd members. ([#97372](https://github.com/kubernetes/kubernetes/pull/97372), [@ihgann](https://github.com/ihgann)) [SIG Cluster Lifecycle] -- Kubeadm: fix a bug where "kubeadm upgrade" commands can fail if CoreDNS v1.8.0 is installed. ([#97919](https://github.com/kubernetes/kubernetes/pull/97919), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: fix a bug where external credentials in an existing admin.conf prevented the CA certificate to be written in the cluster-info ConfigMap. ([#98882](https://github.com/kubernetes/kubernetes/pull/98882), [@kvaps](https://github.com/kvaps)) [SIG Cluster Lifecycle] -- Kubeadm: get k8s CI version markers from k8s infra bucket ([#98836](https://github.com/kubernetes/kubernetes/pull/98836), [@hasheddan](https://github.com/hasheddan)) [SIG Cluster Lifecycle and Release] -- Kubeadm: skip validating pod subnet against node-cidr-mask when allocate-node-cidrs is set to be false ([#98984](https://github.com/kubernetes/kubernetes/pull/98984), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubectl logs: `--ignore-errors` is now honored by all containers, maintaining consistency with parallelConsumeRequest behavior. ([#97686](https://github.com/kubernetes/kubernetes/pull/97686), [@wzshiming](https://github.com/wzshiming)) -- Kubectl-convert: Fix `no kind "Ingress" is registered for version` error ([#97754](https://github.com/kubernetes/kubernetes/pull/97754), [@wzshiming](https://github.com/wzshiming)) -- Kubectl: Fixed panic when describing an ingress backend without an API Group ([#100505](https://github.com/kubernetes/kubernetes/pull/100505), [@lauchokyip](https://github.com/lauchokyip)) [SIG CLI] -- Kubelet now cleans up orphaned volume directories automatically ([#95301](https://github.com/kubernetes/kubernetes/pull/95301), [@lorenz](https://github.com/lorenz)) [SIG Node and Storage] -- Kubelet.exe on Windows now checks that the process running as administrator and the executing user account is listed in the built-in administrators group. This is the equivalent to checking the process is running as uid 0. ([#96616](https://github.com/kubernetes/kubernetes/pull/96616), [@perithompson](https://github.com/perithompson)) [SIG Node and Windows] -- Kubelet: Fix kubelet from panic after getting the wrong signal ([#98200](https://github.com/kubernetes/kubernetes/pull/98200), [@wzshiming](https://github.com/wzshiming)) [SIG Node] -- Kubelet: Fix repeatedly acquiring the inhibit lock ([#98088](https://github.com/kubernetes/kubernetes/pull/98088), [@wzshiming](https://github.com/wzshiming)) [SIG Node] -- Kubelet: Fixed the bug of getting the number of cpu when the number of cpu logical processors is more than 64 in windows ([#97378](https://github.com/kubernetes/kubernetes/pull/97378), [@hwdef](https://github.com/hwdef)) [SIG Node and Windows] -- Limits lease to have 1000 maximum attached objects. ([#98257](https://github.com/kubernetes/kubernetes/pull/98257), [@lingsamuel](https://github.com/lingsamuel)) -- Mitigate CVE-2020-8555 for kube-up using GCE by preventing local loopback folume hosts. ([#97934](https://github.com/kubernetes/kubernetes/pull/97934), [@mattcary](https://github.com/mattcary)) [SIG Cloud Provider and Storage] -- On single-stack configured (IPv4 or IPv6, but not both) clusters, Services which are both headless (no clusterIP) and selectorless (empty or undefined selector) will report `ipFamilyPolicy RequireDualStack` and will have entries in `ipFamilies[]` for both IPv4 and IPv6. This is a change from alpha, but does not have any impact on the manually-specified Endpoints and EndpointSlices for the Service. ([#99555](https://github.com/kubernetes/kubernetes/pull/99555), [@thockin](https://github.com/thockin)) [SIG Apps and Network] -- Performance regression #97685 has been fixed. ([#97860](https://github.com/kubernetes/kubernetes/pull/97860), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] -- Pod Log stats for windows now reports metrics ([#99221](https://github.com/kubernetes/kubernetes/pull/99221), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node, Storage, Testing and Windows] -- Pod status updates faster when reacting on probe results. The first readiness probe will be called faster when startup probes succeeded, which will make Pod status as ready faster. ([#98376](https://github.com/kubernetes/kubernetes/pull/98376), [@matthyx](https://github.com/matthyx)) -- Readjust `kubelet_containers_per_pod_count` buckets to only show metrics greater than 1. ([#98169](https://github.com/kubernetes/kubernetes/pull/98169), [@wawa0210](https://github.com/wawa0210)) -- Remove CSI topology from migrated in-tree gcepd volume. ([#97823](https://github.com/kubernetes/kubernetes/pull/97823), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Cloud Provider and Storage] -- Requests with invalid timeout parameters in the request URL now appear in the audit log correctly. ([#96901](https://github.com/kubernetes/kubernetes/pull/96901), [@tkashem](https://github.com/tkashem)) [SIG API Machinery and Testing] -- Resolve a "concurrent map read and map write" crashing error in the kubelet ([#95111](https://github.com/kubernetes/kubernetes/pull/95111), [@choury](https://github.com/choury)) [SIG Node] -- Resolves spurious `Failed to list *v1.Secret` or `Failed to list *v1.ConfigMap` messages in kubelet logs. ([#99538](https://github.com/kubernetes/kubernetes/pull/99538), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node] -- ResourceQuota of an entity now inclusively calculate Pod overhead ([#99600](https://github.com/kubernetes/kubernetes/pull/99600), [@gjkim42](https://github.com/gjkim42)) -- Return zero time (midnight on Jan. 1, 1970) instead of negative number when reporting startedAt and finishedAt of the not started or a running Pod when using `dockershim` as a runtime. ([#99585](https://github.com/kubernetes/kubernetes/pull/99585), [@Iceber](https://github.com/Iceber)) -- Reverts breaking change to inline AzureFile volumes; referenced secrets are now searched for in the same namespace as the pod as in previous releases. ([#100563](https://github.com/kubernetes/kubernetes/pull/100563), [@msau42](https://github.com/msau42)) -- Scores from InterPodAffinity have stronger differentiation. ([#98096](https://github.com/kubernetes/kubernetes/pull/98096), [@leileiwan](https://github.com/leileiwan)) [SIG Scheduling] -- Specifying the KUBE_TEST_REPO environment variable when e2e tests are executed will instruct the test infrastructure to load that image from a location within the specified repo, using a predefined pattern. ([#93510](https://github.com/kubernetes/kubernetes/pull/93510), [@smarterclayton](https://github.com/smarterclayton)) [SIG Testing] -- Static pods will be deleted gracefully. ([#98103](https://github.com/kubernetes/kubernetes/pull/98103), [@gjkim42](https://github.com/gjkim42)) [SIG Node] -- Sync node status during kubelet node shutdown. - Adds an pod admission handler that rejects new pods when the node is in progress of shutting down. ([#98005](https://github.com/kubernetes/kubernetes/pull/98005), [@wzshiming](https://github.com/wzshiming)) [SIG Node] -- The calculation of pod UIDs for static pods has changed to ensure each static pod gets a unique value - this will cause all static pod containers to be recreated/restarted if an in-place kubelet upgrade from 1.20 to 1.21 is performed. Note that draining pods before upgrading the kubelet across minor versions is the supported upgrade path. ([#87461](https://github.com/kubernetes/kubernetes/pull/87461), [@bboreham](https://github.com/bboreham)) [SIG Node] -- The maximum number of ports allowed in EndpointSlices has been increased from 100 to 20,000 ([#99795](https://github.com/kubernetes/kubernetes/pull/99795), [@robscott](https://github.com/robscott)) [SIG Network] -- Truncates a message if it hits the `NoteLengthLimit` when the scheduler records an event for the pod that indicates the pod has failed to schedule. ([#98715](https://github.com/kubernetes/kubernetes/pull/98715), [@carlory](https://github.com/carlory)) -- Updated k8s.gcr.io/ingress-gce-404-server-with-metrics-amd64 to a version that serves /metrics endpoint on a non-default port. ([#97621](https://github.com/kubernetes/kubernetes/pull/97621), [@vbannai](https://github.com/vbannai)) [SIG Cloud Provider] -- Updates the commands ` - - kubectl kustomize {arg} - - kubectl apply -k {arg} - `to use same code as kustomize CLI [v4.0.5](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.0.5) ([#98946](https://github.com/kubernetes/kubernetes/pull/98946), [@monopole](https://github.com/monopole)) -- Use force unmount for NFS volumes if regular mount fails after 1 minute timeout ([#96844](https://github.com/kubernetes/kubernetes/pull/96844), [@gnufied](https://github.com/gnufied)) [SIG Storage] -- Use network.Interface.VirtualMachine.ID to get the binded VM - Skip standalone VM when reconciling LoadBalancer ([#97635](https://github.com/kubernetes/kubernetes/pull/97635), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Using exec auth plugins with kubectl no longer results in warnings about constructing many client instances from the same exec auth config. ([#97857](https://github.com/kubernetes/kubernetes/pull/97857), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Auth] -- When a CNI plugin returns dual-stack pod IPs, kubelet will now try to respect the - "primary IP family" of the cluster by picking a primary pod IP of the same family - as the (primary) node IP, rather than assuming that the CNI plugin returned the IPs - in the order the administrator wanted (since some CNI plugins don't allow - configuring this). ([#97979](https://github.com/kubernetes/kubernetes/pull/97979), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] -- When dynamically provisioning Azure File volumes for a premium account, the requested size will be set to 100GB if the request is initially lower than this value to accommodate Azure File requirements. ([#99122](https://github.com/kubernetes/kubernetes/pull/99122), [@huffmanca](https://github.com/huffmanca)) [SIG Cloud Provider and Storage] -- When using `Containerd` on Windows, the `C:\Windows\System32\drivers\etc\hosts` file will now be managed by kubelet. ([#83730](https://github.com/kubernetes/kubernetes/pull/83730), [@claudiubelu](https://github.com/claudiubelu)) -- `VolumeBindingArgs` now allow `BindTimeoutSeconds` to be set as zero, while the value zero indicates no waiting for the checking of volume binding operation. ([#99835](https://github.com/kubernetes/kubernetes/pull/99835), [@chendave](https://github.com/chendave)) [SIG Scheduling and Storage] -- `kubectl exec` and `kubectl attach` now honor the `--quiet` flag which suppresses output from the local binary that could be confused by a script with the remote command output (all non-failure output is hidden). In addition, print inline with exec and attach the list of alternate containers when we default to the first spec.container. ([#99004](https://github.com/kubernetes/kubernetes/pull/99004), [@smarterclayton](https://github.com/smarterclayton)) [SIG CLI] - -### Other (Cleanup or Flake) - -- APIs for kubelet annotations and labels from `k8s.io/kubernetes/pkg/kubelet/apis` are now moved under `k8s.io/kubelet/pkg/apis/` ([#98931](https://github.com/kubernetes/kubernetes/pull/98931), [@michaelbeaumont](https://github.com/michaelbeaumont)) -- Apiserver_request_duration_seconds is promoted to stable status. ([#99925](https://github.com/kubernetes/kubernetes/pull/99925), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Instrumentation and Testing] -- Bump github.com/Azure/go-autorest/autorest to v0.11.12 ([#97033](https://github.com/kubernetes/kubernetes/pull/97033), [@patrickshan](https://github.com/patrickshan)) [SIG API Machinery, CLI, Cloud Provider and Cluster Lifecycle] -- Clients required to use go1.15.8+ or go1.16+ if kube-apiserver has the goaway feature enabled to avoid unexpected data race condition. ([#98809](https://github.com/kubernetes/kubernetes/pull/98809), [@answer1991](https://github.com/answer1991)) -- Delete deprecated `service.beta.kubernetes.io/azure-load-balancer-mixed-protocols` mixed procotol annotation in favor of the MixedProtocolLBService feature ([#97096](https://github.com/kubernetes/kubernetes/pull/97096), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- EndpointSlice generation is now incremented when labels change. ([#99750](https://github.com/kubernetes/kubernetes/pull/99750), [@robscott](https://github.com/robscott)) [SIG Network] -- Featuregate AllowInsecureBackendProxy graduates to GA and unconditionally enabled. ([#99658](https://github.com/kubernetes/kubernetes/pull/99658), [@deads2k](https://github.com/deads2k)) -- Increase timeout for pod lifecycle test to reach pod status=ready ([#96691](https://github.com/kubernetes/kubernetes/pull/96691), [@hh](https://github.com/hh)) -- Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. ([#98753](https://github.com/kubernetes/kubernetes/pull/98753), [@Jiawei0227](https://github.com/Jiawei0227)) -- Kube-apiserver: The OIDC authenticator no longer waits 10 seconds before attempting to fetch the metadata required to verify tokens. ([#97693](https://github.com/kubernetes/kubernetes/pull/97693), [@enj](https://github.com/enj)) [SIG API Machinery and Auth] -- Kube-proxy: Traffic from the cluster directed to ExternalIPs is always sent directly to the Service. ([#96296](https://github.com/kubernetes/kubernetes/pull/96296), [@aojea](https://github.com/aojea)) [SIG Network and Testing] -- Kubeadm: change the default image repository for CI images from 'gcr.io/kubernetes-ci-images' to 'gcr.io/k8s-staging-ci-images' ([#97087](https://github.com/kubernetes/kubernetes/pull/97087), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubectl: The deprecated `kubectl alpha debug` command is removed. Use `kubectl debug` instead. ([#98111](https://github.com/kubernetes/kubernetes/pull/98111), [@pandaamanda](https://github.com/pandaamanda)) [SIG CLI] -- Kubelet command line flags related to dockershim are now showing deprecation message as they will be removed along with dockershim in future release. ([#98730](https://github.com/kubernetes/kubernetes/pull/98730), [@dims](https://github.com/dims)) -- Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97618](https://github.com/kubernetes/kubernetes/pull/97618), [@jherrera123](https://github.com/jherrera123)) [SIG Release and Testing] -- Process start time on Windows now uses current process information ([#97491](https://github.com/kubernetes/kubernetes/pull/97491), [@jsturtevant](https://github.com/jsturtevant)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Windows] -- Resolves flakes in the Ingress conformance tests due to conflicts with controllers updating the Ingress object ([#98430](https://github.com/kubernetes/kubernetes/pull/98430), [@liggitt](https://github.com/liggitt)) [SIG Network and Testing] -- The `AttachVolumeLimit` feature gate (GA since v1.17) has been removed and now unconditionally enabled. ([#96539](https://github.com/kubernetes/kubernetes/pull/96539), [@ialidzhikov](https://github.com/ialidzhikov)) -- The `CSINodeInfo` feature gate that is GA since v1.17 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#96561](https://github.com/kubernetes/kubernetes/pull/96561), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Apps, Auth, Scheduling, Storage and Testing] -- The `apiserver_request_total` metric is promoted to stable status and no longer has a content-type dimensions, so any alerts/charts which presume the existence of this will fail. This is however, unlikely to be the case since it was effectively an unbounded dimension in the first place. ([#99788](https://github.com/kubernetes/kubernetes/pull/99788), [@logicalhan](https://github.com/logicalhan)) -- The default delegating authorization options now allow unauthenticated access to healthz, readyz, and livez. A system:masters user connecting to an authz delegator will not perform an authz check. ([#98325](https://github.com/kubernetes/kubernetes/pull/98325), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth, Cloud Provider and Scheduling] -- The deprecated feature gates `CSIDriverRegistry`, `BlockVolume` and `CSIBlockVolume` are now unconditionally enabled and can no longer be specified in component invocations. ([#98021](https://github.com/kubernetes/kubernetes/pull/98021), [@gavinfish](https://github.com/gavinfish)) [SIG Storage] -- The deprecated feature gates `RotateKubeletClientCertificate`, `AttachVolumeLimit`, `VolumePVCDataSource` and `EvenPodsSpread` are now unconditionally enabled and can no longer be specified in component invocations. ([#97306](https://github.com/kubernetes/kubernetes/pull/97306), [@gavinfish](https://github.com/gavinfish)) [SIG Node, Scheduling and Storage] -- The e2e suite can be instructed not to wait for pods in kube-system to be ready or for all nodes to be ready by passing `--allowed-not-ready-nodes=-1` when invoking the e2e.test program. This allows callers to run subsets of the e2e suite in scenarios other than perfectly healthy clusters. ([#98781](https://github.com/kubernetes/kubernetes/pull/98781), [@smarterclayton](https://github.com/smarterclayton)) [SIG Testing] -- The feature gates `WindowsGMSA` and `WindowsRunAsUserName` that are GA since v1.18 are now removed. ([#96531](https://github.com/kubernetes/kubernetes/pull/96531), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Node and Windows] -- The new `-gce-zones` flag on the `e2e.test` binary instructs tests that check for information about how the cluster interacts with the cloud to limit their queries to the provided zone list. If not specified, the current behavior of asking the cloud provider for all available zones in multi zone clusters is preserved. ([#98787](https://github.com/kubernetes/kubernetes/pull/98787), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Cluster Lifecycle and Testing] -- Update cri-tools to [v1.20.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.20.0) ([#97967](https://github.com/kubernetes/kubernetes/pull/97967), [@rajibmitra](https://github.com/rajibmitra)) [SIG Cloud Provider] -- Windows nodes on GCE will take longer to start due to dependencies installed at node creation time. ([#98284](https://github.com/kubernetes/kubernetes/pull/98284), [@pjh](https://github.com/pjh)) [SIG Cloud Provider] -- `apiserver_storage_objects` (a newer version of `etcd_object_counts`) is promoted and marked as stable. ([#100082](https://github.com/kubernetes/kubernetes/pull/100082), [@logicalhan](https://github.com/logicalhan)) - -### Uncategorized - -- GCE L4 Loadbalancers now handle > 5 ports in service spec correctly. ([#99595](https://github.com/kubernetes/kubernetes/pull/99595), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider] -- The DownwardAPIHugePages feature is beta. Users may use the feature if all workers in their cluster are min 1.20 version. The feature will be enabled by default in all installations in 1.22. ([#99610](https://github.com/kubernetes/kubernetes/pull/99610), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node] - -## Dependencies - -### Added -- github.com/go-errors/errors: [v1.0.1](https://github.com/go-errors/errors/tree/v1.0.1) -- github.com/gobuffalo/here: [v0.6.0](https://github.com/gobuffalo/here/tree/v0.6.0) -- github.com/google/shlex: [e7afc7f](https://github.com/google/shlex/tree/e7afc7f) -- github.com/markbates/pkger: [v0.17.1](https://github.com/markbates/pkger/tree/v0.17.1) -- github.com/moby/spdystream: [v0.2.0](https://github.com/moby/spdystream/tree/v0.2.0) -- github.com/monochromegane/go-gitignore: [205db1a](https://github.com/monochromegane/go-gitignore/tree/205db1a) -- github.com/niemeyer/pretty: [a10e7ca](https://github.com/niemeyer/pretty/tree/a10e7ca) -- github.com/xlab/treeprint: [a009c39](https://github.com/xlab/treeprint/tree/a009c39) -- go.starlark.net: 8dd3e2e -- golang.org/x/term: 6a3ed07 -- sigs.k8s.io/kustomize/api: v0.8.5 -- sigs.k8s.io/kustomize/cmd/config: v0.9.7 -- sigs.k8s.io/kustomize/kustomize/v4: v4.0.5 -- sigs.k8s.io/kustomize/kyaml: v0.10.15 - -### Changed -- dmitri.shuralyov.com/gpu/mtl: 666a987 → 28db891 -- github.com/Azure/go-autorest/autorest: [v0.11.1 → v0.11.12](https://github.com/Azure/go-autorest/autorest/compare/v0.11.1...v0.11.12) -- github.com/NYTimes/gziphandler: [56545f4 → v1.1.1](https://github.com/NYTimes/gziphandler/compare/56545f4...v1.1.1) -- github.com/cilium/ebpf: [1c8d4c9 → v0.2.0](https://github.com/cilium/ebpf/compare/1c8d4c9...v0.2.0) -- github.com/container-storage-interface/spec: [v1.2.0 → v1.3.0](https://github.com/container-storage-interface/spec/compare/v1.2.0...v1.3.0) -- github.com/containerd/console: [v1.0.0 → v1.0.1](https://github.com/containerd/console/compare/v1.0.0...v1.0.1) -- github.com/containerd/containerd: [v1.4.1 → v1.4.4](https://github.com/containerd/containerd/compare/v1.4.1...v1.4.4) -- github.com/coredns/corefile-migration: [v1.0.10 → v1.0.11](https://github.com/coredns/corefile-migration/compare/v1.0.10...v1.0.11) -- github.com/creack/pty: [v1.1.7 → v1.1.11](https://github.com/creack/pty/compare/v1.1.7...v1.1.11) -- github.com/docker/docker: [bd33bbf → v20.10.2+incompatible](https://github.com/docker/docker/compare/bd33bbf...v20.10.2) -- github.com/go-logr/logr: [v0.2.0 → v0.4.0](https://github.com/go-logr/logr/compare/v0.2.0...v0.4.0) -- github.com/go-openapi/spec: [v0.19.3 → v0.19.5](https://github.com/go-openapi/spec/compare/v0.19.3...v0.19.5) -- github.com/go-openapi/strfmt: [v0.19.3 → v0.19.5](https://github.com/go-openapi/strfmt/compare/v0.19.3...v0.19.5) -- github.com/go-openapi/validate: [v0.19.5 → v0.19.8](https://github.com/go-openapi/validate/compare/v0.19.5...v0.19.8) -- github.com/gogo/protobuf: [v1.3.1 → v1.3.2](https://github.com/gogo/protobuf/compare/v1.3.1...v1.3.2) -- github.com/golang/mock: [v1.4.1 → v1.4.4](https://github.com/golang/mock/compare/v1.4.1...v1.4.4) -- github.com/google/cadvisor: [v0.38.5 → v0.39.0](https://github.com/google/cadvisor/compare/v0.38.5...v0.39.0) -- github.com/heketi/heketi: [c2e2a4a → v10.2.0+incompatible](https://github.com/heketi/heketi/compare/c2e2a4a...v10.2.0) -- github.com/kisielk/errcheck: [v1.2.0 → v1.5.0](https://github.com/kisielk/errcheck/compare/v1.2.0...v1.5.0) -- github.com/konsorten/go-windows-terminal-sequences: [v1.0.3 → v1.0.2](https://github.com/konsorten/go-windows-terminal-sequences/compare/v1.0.3...v1.0.2) -- github.com/kr/text: [v0.1.0 → v0.2.0](https://github.com/kr/text/compare/v0.1.0...v0.2.0) -- github.com/mattn/go-runewidth: [v0.0.2 → v0.0.7](https://github.com/mattn/go-runewidth/compare/v0.0.2...v0.0.7) -- github.com/miekg/dns: [v1.1.4 → v1.1.35](https://github.com/miekg/dns/compare/v1.1.4...v1.1.35) -- github.com/moby/sys/mountinfo: [v0.1.3 → v0.4.0](https://github.com/moby/sys/mountinfo/compare/v0.1.3...v0.4.0) -- github.com/moby/term: [672ec06 → df9cb8a](https://github.com/moby/term/compare/672ec06...df9cb8a) -- github.com/mrunalp/fileutils: [abd8a0e → v0.5.0](https://github.com/mrunalp/fileutils/compare/abd8a0e...v0.5.0) -- github.com/olekukonko/tablewriter: [a0225b3 → v0.0.4](https://github.com/olekukonko/tablewriter/compare/a0225b3...v0.0.4) -- github.com/opencontainers/runc: [v1.0.0-rc92 → v1.0.0-rc93](https://github.com/opencontainers/runc/compare/v1.0.0-rc92...v1.0.0-rc93) -- github.com/opencontainers/runtime-spec: [4d89ac9 → e6143ca](https://github.com/opencontainers/runtime-spec/compare/4d89ac9...e6143ca) -- github.com/opencontainers/selinux: [v1.6.0 → v1.8.0](https://github.com/opencontainers/selinux/compare/v1.6.0...v1.8.0) -- github.com/sergi/go-diff: [v1.0.0 → v1.1.0](https://github.com/sergi/go-diff/compare/v1.0.0...v1.1.0) -- github.com/sirupsen/logrus: [v1.6.0 → v1.7.0](https://github.com/sirupsen/logrus/compare/v1.6.0...v1.7.0) -- github.com/syndtr/gocapability: [d983527 → 42c35b4](https://github.com/syndtr/gocapability/compare/d983527...42c35b4) -- github.com/willf/bitset: [d5bec33 → v1.1.11](https://github.com/willf/bitset/compare/d5bec33...v1.1.11) -- github.com/yuin/goldmark: [v1.1.27 → v1.2.1](https://github.com/yuin/goldmark/compare/v1.1.27...v1.2.1) -- golang.org/x/crypto: 7f63de1 → 5ea612d -- golang.org/x/exp: 6cc2880 → 85be41e -- golang.org/x/mobile: d2bd2a2 → e6ae53a -- golang.org/x/mod: v0.3.0 → ce943fd -- golang.org/x/net: 69a7880 → 3d97a24 -- golang.org/x/sync: cd5d95a → 67f06af -- golang.org/x/sys: 5cba982 → a50acf3 -- golang.org/x/time: 3af7569 → f8bda1e -- golang.org/x/tools: c1934b7 → v0.1.0 -- gopkg.in/check.v1: 41f04d3 → 8fa4692 -- gopkg.in/yaml.v2: v2.2.8 → v2.4.0 -- gotest.tools/v3: v3.0.2 → v3.0.3 -- k8s.io/gengo: 83324d8 → b6c5ce2 -- k8s.io/klog/v2: v2.4.0 → v2.8.0 -- k8s.io/kube-openapi: d219536 → 591a79e -- k8s.io/system-validators: v1.2.0 → v1.4.0 -- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.14 → v0.0.15 -- sigs.k8s.io/structured-merge-diff/v4: v4.0.2 → v4.1.0 - -### Removed -- github.com/codegangsta/negroni: [v1.0.0](https://github.com/codegangsta/negroni/tree/v1.0.0) -- github.com/docker/spdystream: [449fdfc](https://github.com/docker/spdystream/tree/449fdfc) -- github.com/golangplus/bytes: [45c989f](https://github.com/golangplus/bytes/tree/45c989f) -- github.com/golangplus/fmt: [2a5d6d7](https://github.com/golangplus/fmt/tree/2a5d6d7) -- github.com/gorilla/context: [v1.1.1](https://github.com/gorilla/context/tree/v1.1.1) -- github.com/kr/pty: [v1.1.5](https://github.com/kr/pty/tree/v1.1.5) -- rsc.io/quote/v3: v3.1.0 -- rsc.io/sampler: v1.3.0 -- sigs.k8s.io/kustomize: v2.0.3+incompatible +# Release notes for v1.21.0-rc.0 + +[Documentation](https://docs.k8s.io/docs/home) + +# Changelog since v1.20.0 + +## What's New (Major Themes) + +### Deprecation of PodSecurityPolicy + +PSP as an admission controller resource is being deprecated. Deployed PodSecurityPolicy's will keep working until version 1.25, their target removal from the codebase. A new feature, with a working title of "PSP replacement policy", is being developed in [KEP-2579](https://features.k8s.io/2579). To learn more, read [PodSecurityPolicy Deprecation: Past, Present, and Future](https://blog.k8s.io/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/). + +### Kubernetes API Reference Documentation + +The API reference is now generated with [`gen-resourcesdocs`](https://github.com/kubernetes-sigs/reference-docs/tree/c96658d89fb21037b7d00d27e6dbbe6b32375837/gen-resourcesdocs) and it is moving to [Kubernetes API](https://docs.k8s.io/reference/kubernetes-api/) + +### Kustomize Updates in Kubectl + +[Kustomize](https://github.com/kubernetes-sigs/kustomize) version in kubectl had a jump from v2.0.3 to [v4.0.5](https://github.com/kubernetes/kubernetes/pull/98946). Kustomize is now treated as a library and future updates will be less sporadic. + +### Default Container Labels + +Pod with multiple containers can use `kubectl.kubernetes.io/default-container` label to have a container preselected for kubectl commands. More can be read in [KEP-2227](https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md). + +### Immutable Secrets and ConfigMaps + +Immutable Secrets and ConfigMaps graduates to GA. This feature allows users to specify that the contents of a particular Secret or ConfigMap is immutable for its object lifetime. For such instances, Kubelet will not watch/poll for changes and therefore reducing apiserver load. + +### Structured Logging in Kubelet + +Kubelet has adopted structured logging, thanks to community effort in accomplishing this within the release timeline. Structured logging in the project remains an ongoing effort -- for folks interested in participating, [keep an eye / chime in to the mailing list discussion](https://groups.google.com/g/kubernetes-dev/c/y4WIw-ntUR8). + +### Storage Capacity Tracking + +Traditionally, the Kubernetes scheduler was based on the assumptions that additional persistent storage is available everywhere in the cluster and has infinite capacity. Topology constraints addressed the first point, but up to now pod scheduling was still done without considering that the remaining storage capacity may not be enough to start a new pod. [Storage capacity tracking](https://docs.k8s.io/concepts/storage/storage-capacity/) addresses that by adding an API for a CSI driver to report storage capacity and uses that information in the Kubernetes scheduler when choosing a node for a pod. This feature serves as a stepping stone for supporting dynamic provisioning for local volumes and other volume types that are more capacity constrained. + +### Generic Ephemeral Volumes + +[Generic ephermeral volumes](https://docs.k8s.io/concepts/storage/ephemeral-volumes/#generic-ephemeral-volumes) feature allows any existing storage driver that supports dynamic provisioning to be used as an ephemeral volume with the volume’s lifecycle bound to the Pod. It can be used to provide scratch storage that is different from the root disk, for example persistent memory, or a separate local disk on that node. All StorageClass parameters for volume provisioning are supported. All features supported with PersistentVolumeClaims are supported, such as storage capacity tracking, snapshots and restore, and volume resizing. + +### CSI Service Account Token + +CSI Service Account Token feature moves to Beta in 1.21. This feature improves the security posture and allows CSI drivers to receive pods' [bound service account tokens](https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1205-bound-service-account-tokens/README.md). This feature also provides a knob to re-publish volumes so that short-lived volumes can be refreshed. + +### CSI Health Monitoring + +The CSI health monitoring feature is being released as a second Alpha in Kubernetes 1.21. This feature enables CSI Drivers to share abnormal volume conditions from the underlying storage systems with Kubernetes so that they can be reported as events on PVCs or Pods. This feature serves as a stepping stone towards programmatic detection and resolution of individual volume health issues by Kubernetes. + +## Known Issues + +### `TopologyAwareHints` feature falls back to default behavior + +The feature gate currently falls back to the default behavior in most cases. Enabling the feature gate will add hints to `EndpointSlices`, but functional differences are only observed in non-dual stack kube-proxy implementation. [The fix will be available in coming releases](https://github.com/kubernetes/kubernetes/pull/100804). + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- Kube-proxy's IPVS proxy mode no longer sets the net.ipv4.conf.all.route_localnet sysctl parameter. Nodes upgrading will have net.ipv4.conf.all.route_localnet set to 1 but new nodes will inherit the system default (usually 0). If you relied on any behavior requiring net.ipv4.conf.all.route_localnet, you must set ensure it is enabled as kube-proxy will no longer set it automatically. This change helps to further mitigate CVE-2020-8558. ([#92938](https://github.com/kubernetes/kubernetes/pull/92938), [@lbernail](https://github.com/lbernail)) [SIG Network and Release] + - Kubeadm: during "init" an empty cgroupDriver value in the KubeletConfiguration is now always set to "systemd" unless the user is explicit about it. This requires existing machine setups to configure the container runtime to use the "systemd" driver. Documentation on this topic can be found here: https://kubernetes.io/docs/setup/production-environment/container-runtimes/. When upgrading existing clusters / nodes using "kubeadm upgrade" the old cgroupDriver value is preserved, but in 1.22 this change will also apply to "upgrade". For more information on migrating to the "systemd" driver or remaining on the "cgroupfs" driver see: https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/. ([#99471](https://github.com/kubernetes/kubernetes/pull/99471), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] + - Newly provisioned PVs by EBS plugin will no longer use the deprecated "failure-domain.beta.kubernetes.io/zone" and "failure-domain.beta.kubernetes.io/region" labels. It will use "topology.kubernetes.io/zone" and "topology.kubernetes.io/region" labels instead. ([#99130](https://github.com/kubernetes/kubernetes/pull/99130), [@ayberk](https://github.com/ayberk)) [SIG Cloud Provider, Storage and Testing] + - Newly provisioned PVs by OpenStack Cinder plugin will no longer use the deprecated "failure-domain.beta.kubernetes.io/zone" and "failure-domain.beta.kubernetes.io/region" labels. It will use "topology.kubernetes.io/zone" and "topology.kubernetes.io/region" labels instead. ([#99719](https://github.com/kubernetes/kubernetes/pull/99719), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider and Storage] + - Newly provisioned PVs by gce-pd will no longer have the beta FailureDomain label. gce-pd volume plugin will start to have GA topology label instead. ([#98700](https://github.com/kubernetes/kubernetes/pull/98700), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Cloud Provider, Storage and Testing] + - OpenStack Cinder CSI migration is on by default, Clinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work. ([#98538](https://github.com/kubernetes/kubernetes/pull/98538), [@dims](https://github.com/dims)) [SIG Storage] + - Remove alpha `CSIMigrationXXComplete` flag and add alpha `InTreePluginXXUnregister` flag. Deprecate `CSIMigrationvSphereComplete` flag and it will be removed in v1.22. ([#98243](https://github.com/kubernetes/kubernetes/pull/98243), [@Jiawei0227](https://github.com/Jiawei0227)) + - Remove storage metrics `storage_operation_errors_total`, since we already have `storage_operation_status_count`.And add new field `status` for `storage_operation_duration_seconds`, so that we can know about all status storage operation latency. ([#98332](https://github.com/kubernetes/kubernetes/pull/98332), [@JornShen](https://github.com/JornShen)) [SIG Instrumentation and Storage] + - The metric `storage_operation_errors_total` is not removed, but is marked deprecated, and the metric `storage_operation_status_count` is marked deprecated. In both cases the `storage_operation_duration_seconds` metric can be used to recover equivalent counts (using `status=fail-unknown` in the case of `storage_operations_errors_total`). ([#99045](https://github.com/kubernetes/kubernetes/pull/99045), [@mattcary](https://github.com/mattcary)) + - `ServiceNodeExclusion`, `NodeDisruptionExclusion` and `LegacyNodeRoleBehavior` features have been promoted to GA. `ServiceNodeExclusion` and `NodeDisruptionExclusion` are now unconditionally enabled, while `LegacyNodeRoleBehavior` is unconditionally disabled. To prevent control plane nodes from being added to load balancers automatically, upgrade users need to add "node.kubernetes.io/exclude-from-external-load-balancers" label to control plane nodes. ([#97543](https://github.com/kubernetes/kubernetes/pull/97543), [@pacoxu](https://github.com/pacoxu)) + +## Changes by Kind + +### Deprecation + +- Aborting the drain command in a list of nodes will be deprecated. The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain. For now, users can try such experience by enabling --ignore-errors flag. ([#98203](https://github.com/kubernetes/kubernetes/pull/98203), [@yuzhiquan](https://github.com/yuzhiquan)) +- Delete deprecated `service.beta.kubernetes.io/azure-load-balancer-mixed-protocols` mixed procotol annotation in favor of the MixedProtocolLBService feature ([#97096](https://github.com/kubernetes/kubernetes/pull/97096), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Deprecate the `topologyKeys` field in Service. This capability will be replaced with upcoming work around Topology Aware Subsetting and Service Internal Traffic Policy. ([#96736](https://github.com/kubernetes/kubernetes/pull/96736), [@andrewsykim](https://github.com/andrewsykim)) [SIG Apps] +- Kube-proxy: remove deprecated --cleanup-ipvs flag of kube-proxy, and make --cleanup flag always to flush IPVS ([#97336](https://github.com/kubernetes/kubernetes/pull/97336), [@maaoBit](https://github.com/maaoBit)) [SIG Network] +- Kubeadm: deprecated command "alpha selfhosting pivot" is now removed. ([#97627](https://github.com/kubernetes/kubernetes/pull/97627), [@knight42](https://github.com/knight42)) +- Kubeadm: graduate the command `kubeadm alpha kubeconfig user` to `kubeadm kubeconfig user`. The `kubeadm alpha kubeconfig user` command is deprecated now. ([#97583](https://github.com/kubernetes/kubernetes/pull/97583), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] +- Kubeadm: the "kubeadm alpha certs" command is removed now, please use "kubeadm certs" instead. ([#97706](https://github.com/kubernetes/kubernetes/pull/97706), [@knight42](https://github.com/knight42)) [SIG Cluster Lifecycle] +- Kubeadm: the deprecated kube-dns is no longer supported as an option. If "ClusterConfiguration.dns.type" is set to "kube-dns" kubeadm will now throw an error. ([#99646](https://github.com/kubernetes/kubernetes/pull/99646), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] +- Kubectl: The deprecated `kubectl alpha debug` command is removed. Use `kubectl debug` instead. ([#98111](https://github.com/kubernetes/kubernetes/pull/98111), [@pandaamanda](https://github.com/pandaamanda)) [SIG CLI] +- Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97935](https://github.com/kubernetes/kubernetes/pull/97935), [@adeniyistephen](https://github.com/adeniyistephen)) [SIG Release and Testing] +- Remove deprecated `--generator, --replicas, --service-generator, --service-overrides, --schedule` from `kubectl run` + Deprecate `--serviceaccount, --hostport, --requests, --limits` in `kubectl run` ([#99732](https://github.com/kubernetes/kubernetes/pull/99732), [@soltysh](https://github.com/soltysh)) +- Remove the deprecated metrics "scheduling_algorithm_preemption_evaluation_seconds" and "binding_duration_seconds", suggest to use "scheduler_framework_extension_point_duration_seconds" instead. ([#96447](https://github.com/kubernetes/kubernetes/pull/96447), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle, Instrumentation, Scheduling and Testing] +- Removing experimental windows container hyper-v support with Docker ([#97141](https://github.com/kubernetes/kubernetes/pull/97141), [@wawa0210](https://github.com/wawa0210)) [SIG Node and Windows] +- Rename metrics `etcd_object_counts` to `apiserver_storage_object_counts` and mark it as stable. The original `etcd_object_counts` metrics name is marked as "Deprecated" and will be removed in the future. ([#99785](https://github.com/kubernetes/kubernetes/pull/99785), [@erain](https://github.com/erain)) [SIG API Machinery, Instrumentation and Testing] +- The GA TokenRequest and TokenRequestProjection feature gates have been removed and are unconditionally enabled. Remove explicit use of those feature gates in CLI invocations. ([#97148](https://github.com/kubernetes/kubernetes/pull/97148), [@wawa0210](https://github.com/wawa0210)) [SIG Node] +- The PodSecurityPolicy API is deprecated in 1.21, and will no longer be served starting in 1.25. ([#97171](https://github.com/kubernetes/kubernetes/pull/97171), [@deads2k](https://github.com/deads2k)) [SIG Auth and CLI] +- The `batch/v2alpha1` CronJob type definitions and clients are deprecated and removed. ([#96987](https://github.com/kubernetes/kubernetes/pull/96987), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps, CLI and Testing] +- The `export` query parameter (inconsistently supported by API resources and deprecated in v1.14) is fully removed. Requests setting this query parameter will now receive a 400 status response. ([#98312](https://github.com/kubernetes/kubernetes/pull/98312), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth and Testing] +- `audit.k8s.io/v1beta1` and `audit.k8s.io/v1alpha1` audit policy configuration and audit events are deprecated in favor of `audit.k8s.io/v1`, available since v1.13. kube-apiserver invocations that specify alpha or beta policy configurations with `--audit-policy-file`, or explicitly request alpha or beta audit events with `--audit-log-version` / `--audit-webhook-version` must update to use `audit.k8s.io/v1` and accept `audit.k8s.io/v1` events prior to v1.24. ([#98858](https://github.com/kubernetes/kubernetes/pull/98858), [@carlory](https://github.com/carlory)) [SIG Auth] +- `discovery.k8s.io/v1beta1` EndpointSlices are deprecated in favor of `discovery.k8s.io/v1`, and will no longer be served in Kubernetes v1.25. ([#100472](https://github.com/kubernetes/kubernetes/pull/100472), [@liggitt](https://github.com/liggitt)) +- `diskformat` storage class parameter for in-tree vSphere volume plugin is deprecated as of v1.21 release. Please consider updating storageclass and remove `diskformat` parameter. vSphere CSI Driver does not support diskformat storageclass parameter. + + vSphere releases less than 67u3 are deprecated as of v1.21. Please consider upgrading vSphere to 67u3 or above. vSphere CSI Driver requires minimum vSphere 67u3. + + VM Hardware version less than 15 is deprecated as of v1.21. Please consider upgrading the Node VM Hardware version to 15 or above. vSphere CSI Driver recommends Node VM's Hardware version set to at least vmx-15. + + Multi vCenter support is deprecated as of v1.21. If you have a Kubernetes cluster spanning across multiple vCenter servers, please consider moving all k8s nodes to a single vCenter Server. vSphere CSI Driver does not support Kubernetes deployment spanning across multiple vCenter servers. + + Support for these deprecations will be available till Kubernetes v1.24. ([#98546](https://github.com/kubernetes/kubernetes/pull/98546), [@divyenpatel](https://github.com/divyenpatel)) + +### API Change + +- 1. PodAffinityTerm includes a namespaceSelector field to allow selecting eligible namespaces based on their labels. + 2. A new CrossNamespacePodAffinity quota scope API that allows restricting which namespaces allowed to use PodAffinityTerm with corss-namespace reference via namespaceSelector or namespaces fields. ([#98582](https://github.com/kubernetes/kubernetes/pull/98582), [@ahg-g](https://github.com/ahg-g)) [SIG API Machinery, Apps, Auth and Testing] +- Add Probe-level terminationGracePeriodSeconds field ([#99375](https://github.com/kubernetes/kubernetes/pull/99375), [@ehashman](https://github.com/ehashman)) [SIG API Machinery, Apps, Node and Testing] +- Added `.spec.completionMode` field to Job, with accepted values `NonIndexed` (default) and `Indexed`. This is an alpha field and is only honored by servers with the `IndexedJob` feature gate enabled. ([#98441](https://github.com/kubernetes/kubernetes/pull/98441), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps and CLI] +- Adds support for endPort field in NetworkPolicy ([#97058](https://github.com/kubernetes/kubernetes/pull/97058), [@rikatz](https://github.com/rikatz)) [SIG Apps and Network] +- CSIServiceAccountToken graduates to Beta and enabled by default. ([#99298](https://github.com/kubernetes/kubernetes/pull/99298), [@zshihang](https://github.com/zshihang)) +- Cluster admins can now turn off `/debug/pprof` and `/debug/flags/v` endpoint in kubelet by setting `enableProfilingHandler` and `enableDebugFlagsHandler` to `false` in the Kubelet configuration file. Options `enableProfilingHandler` and `enableDebugFlagsHandler` can be set to `true` only when `enableDebuggingHandlers` is also set to `true`. ([#98458](https://github.com/kubernetes/kubernetes/pull/98458), [@SaranBalaji90](https://github.com/SaranBalaji90)) +- DaemonSets accept a MaxSurge integer or percent on their rolling update strategy that will launch the updated pod on nodes and wait for those pods to go ready before marking the old out-of-date pods as deleted. This allows workloads to avoid downtime during upgrades when deployed using DaemonSets. This feature is alpha and is behind the DaemonSetUpdateSurge feature gate. ([#96441](https://github.com/kubernetes/kubernetes/pull/96441), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps and Testing] +- Enable SPDY pings to keep connections alive, so that `kubectl exec` and `kubectl portforward` won't be interrupted. ([#97083](https://github.com/kubernetes/kubernetes/pull/97083), [@knight42](https://github.com/knight42)) [SIG API Machinery and CLI] +- FieldManager no longer owns fields that get reset before the object is persisted (e.g. "status wiping"). ([#99661](https://github.com/kubernetes/kubernetes/pull/99661), [@kevindelgado](https://github.com/kevindelgado)) [SIG API Machinery, Auth and Testing] +- Fixes server-side apply for APIService resources. ([#98576](https://github.com/kubernetes/kubernetes/pull/98576), [@kevindelgado](https://github.com/kevindelgado)) +- Generic ephemeral volumes are beta. ([#99643](https://github.com/kubernetes/kubernetes/pull/99643), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Node, Storage and Testing] +- Hugepages request values are limited to integer multiples of the page size. ([#98515](https://github.com/kubernetes/kubernetes/pull/98515), [@lala123912](https://github.com/lala123912)) [SIG Apps] +- Implement the GetAvailableResources in the podresources API. ([#95734](https://github.com/kubernetes/kubernetes/pull/95734), [@fromanirh](https://github.com/fromanirh)) [SIG Instrumentation, Node and Testing] +- IngressClass resource can now reference a resource in a specific namespace + for implementation-specific configuration (previously only Cluster-level resources were allowed). + This feature can be enabled using the IngressClassNamespacedParams feature gate. ([#99275](https://github.com/kubernetes/kubernetes/pull/99275), [@hbagdi](https://github.com/hbagdi)) +- Jobs API has a new `.spec.suspend` field that can be used to suspend and resume Jobs. This is an alpha field which is only honored by servers with the `SuspendJob` feature gate enabled. ([#98727](https://github.com/kubernetes/kubernetes/pull/98727), [@adtac](https://github.com/adtac)) +- Kubelet Graceful Node Shutdown feature graduates to Beta and enabled by default. ([#99735](https://github.com/kubernetes/kubernetes/pull/99735), [@bobbypage](https://github.com/bobbypage)) +- Kubernetes is now built using go1.15.7 ([#98363](https://github.com/kubernetes/kubernetes/pull/98363), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Node, Release and Testing] +- Namespace API objects now have a `kubernetes.io/metadata.name` label matching their metadata.name field to allow selecting any namespace by its name using a label selector. ([#96968](https://github.com/kubernetes/kubernetes/pull/96968), [@jayunit100](https://github.com/jayunit100)) [SIG API Machinery, Apps, Cloud Provider, Storage and Testing] +- One new field "InternalTrafficPolicy" in Service is added. + It specifies if the cluster internal traffic should be routed to all endpoints or node-local endpoints only. + "Cluster" routes internal traffic to a Service to all endpoints. + "Local" routes traffic to node-local endpoints only, and traffic is dropped if no node-local endpoints are ready. + The default value is "Cluster". ([#96600](https://github.com/kubernetes/kubernetes/pull/96600), [@maplain](https://github.com/maplain)) [SIG API Machinery, Apps and Network] +- PodDisruptionBudget API objects can now contain conditions in status. ([#98127](https://github.com/kubernetes/kubernetes/pull/98127), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] +- PodSecurityPolicy only stores "generic" as allowed volume type if the GenericEphemeralVolume feature gate is enabled ([#98918](https://github.com/kubernetes/kubernetes/pull/98918), [@pohly](https://github.com/pohly)) [SIG Auth and Security] +- Promote CronJobs to batch/v1 ([#99423](https://github.com/kubernetes/kubernetes/pull/99423), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps, CLI and Testing] +- Promote Immutable Secrets/ConfigMaps feature to Stable. This allows to set `immutable` field in Secret or ConfigMap object to mark their contents as immutable. ([#97615](https://github.com/kubernetes/kubernetes/pull/97615), [@wojtek-t](https://github.com/wojtek-t)) [SIG Apps, Architecture, Node and Testing] +- Remove support for building Kubernetes with bazel. ([#99561](https://github.com/kubernetes/kubernetes/pull/99561), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows] +- Scheduler extender filter interface now can report unresolvable failed nodes in the new field `FailedAndUnresolvableNodes` of `ExtenderFilterResult` struct. Nodes in this map will be skipped in the preemption phase. ([#92866](https://github.com/kubernetes/kubernetes/pull/92866), [@cofyc](https://github.com/cofyc)) [SIG Scheduling] +- Services can specify loadBalancerClass to use a custom load balancer ([#98277](https://github.com/kubernetes/kubernetes/pull/98277), [@XudongLiuHarold](https://github.com/XudongLiuHarold)) +- Storage capacity tracking (= the CSIStorageCapacity feature) graduates to Beta and enabled by default, storage.k8s.io/v1alpha1/VolumeAttachment and storage.k8s.io/v1alpha1/CSIStorageCapacity objects are deprecated ([#99641](https://github.com/kubernetes/kubernetes/pull/99641), [@pohly](https://github.com/pohly)) +- Support for Indexed Job: a Job that is considered completed when Pods associated to indexes from 0 to (.spec.completions-1) have succeeded. ([#98812](https://github.com/kubernetes/kubernetes/pull/98812), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps and CLI] +- The BoundServiceAccountTokenVolume feature has been promoted to beta, and enabled by default. + - This changes the tokens provided to containers at `/var/run/secrets/kubernetes.io/serviceaccount/token` to be time-limited, auto-refreshed, and invalidated when the containing pod is deleted. + - Clients should reload the token from disk periodically (once per minute is recommended) to ensure they continue to use a valid token. `k8s.io/client-go` version v11.0.0+ and v0.15.0+ reload tokens automatically. + - By default, injected tokens are given an extended lifetime so they remain valid even after a new refreshed token is provided. The metric `serviceaccount_stale_tokens_total` can be used to monitor for workloads that are depending on the extended lifetime and are continuing to use tokens even after a refreshed token is provided to the container. If that metric indicates no existing workloads are depending on extended lifetimes, injected token lifetime can be shortened to 1 hour by starting `kube-apiserver` with `--service-account-extend-token-expiration=false`. ([#95667](https://github.com/kubernetes/kubernetes/pull/95667), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Cluster Lifecycle and Testing] +- The EndpointSlice Controllers are now GA. The `EndpointSliceController` will not populate the `deprecatedTopology` field and will only provide topology information through the `zone` and `nodeName` fields. ([#99870](https://github.com/kubernetes/kubernetes/pull/99870), [@swetharepakula](https://github.com/swetharepakula)) +- The Endpoints controller will now set the `endpoints.kubernetes.io/over-capacity` annotation to "warning" when an Endpoints resource contains more than 1000 addresses. In a future release, the controller will truncate Endpoints that exceed this limit. The EndpointSlice API can be used to support significantly larger number of addresses. ([#99975](https://github.com/kubernetes/kubernetes/pull/99975), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- The PodDisruptionBudget API has been promoted to policy/v1 with no schema changes. The only functional change is that an empty selector (`{}`) written to a policy/v1 PodDisruptionBudget now selects all pods in the namespace. The behavior of the policy/v1beta1 API remains unchanged. The policy/v1beta1 PodDisruptionBudget API is deprecated and will no longer be served in 1.25+. ([#99290](https://github.com/kubernetes/kubernetes/pull/99290), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Scheduling and Testing] +- The `EndpointSlice` API is now GA. The `EndpointSlice` topology field has been removed from the GA API and will be replaced by a new per Endpoint Zone field. If the topology field was previously used, it will be converted into an annotation in the v1 Resource. The `discovery.k8s.io/v1alpha1` API is removed. ([#99662](https://github.com/kubernetes/kubernetes/pull/99662), [@swetharepakula](https://github.com/swetharepakula)) +- The `controller.kubernetes.io/pod-deletion-cost` annotation can be set to offer a hint on the cost of deleting a `Pod` compared to other pods belonging to the same ReplicaSet. Pods with lower deletion cost are deleted first. This is an alpha feature. ([#99163](https://github.com/kubernetes/kubernetes/pull/99163), [@ahg-g](https://github.com/ahg-g)) +- The kube-apiserver now resets `managedFields` that got corrupted by a mutating admission controller. ([#98074](https://github.com/kubernetes/kubernetes/pull/98074), [@kwiesmueller](https://github.com/kwiesmueller)) +- Topology Aware Hints are now available in alpha and can be enabled with the `TopologyAwareHints` feature gate. ([#99522](https://github.com/kubernetes/kubernetes/pull/99522), [@robscott](https://github.com/robscott)) [SIG API Machinery, Apps, Auth, Instrumentation, Network and Testing] +- Users might specify the `kubectl.kubernetes.io/default-exec-container` annotation in a Pod to preselect container for kubectl commands. ([#97099](https://github.com/kubernetes/kubernetes/pull/97099), [@pacoxu](https://github.com/pacoxu)) [SIG CLI] + +### Feature + +- A client-go metric, rest_client_exec_plugin_call_total, has been added to track total calls to client-go credential plugins. ([#98892](https://github.com/kubernetes/kubernetes/pull/98892), [@ankeesler](https://github.com/ankeesler)) [SIG API Machinery, Auth, Cluster Lifecycle and Instrumentation] +- A new histogram metric to track the time it took to delete a job by the `TTLAfterFinished` controller ([#98676](https://github.com/kubernetes/kubernetes/pull/98676), [@ahg-g](https://github.com/ahg-g)) +- AWS cloud provider supports auto-discovering subnets without any `kubernetes.io/cluster/<clusterName>` tags. It also supports additional service annotation `service.beta.kubernetes.io/aws-load-balancer-subnets` to manually configure the subnets. ([#97431](https://github.com/kubernetes/kubernetes/pull/97431), [@kishorj](https://github.com/kishorj)) +- Aborting the drain command in a list of nodes will be deprecated. The new behavior will make the drain command go through all nodes even if one or more nodes failed during the drain. For now, users can try such experience by enabling --ignore-errors flag. ([#98203](https://github.com/kubernetes/kubernetes/pull/98203), [@yuzhiquan](https://github.com/yuzhiquan)) +- Add --permit-address-sharing flag to `kube-apiserver` to listen with `SO_REUSEADDR`. While allowing to listen on wildcard IPs like 0.0.0.0 and specific IPs in parallel, it avoids waiting for the kernel to release socket in `TIME_WAIT` state, and hence, considerably reducing `kube-apiserver` restart times under certain conditions. ([#93861](https://github.com/kubernetes/kubernetes/pull/93861), [@sttts](https://github.com/sttts)) +- Add `csi_operations_seconds` metric on kubelet that exposes CSI operations duration and status for node CSI operations. ([#98979](https://github.com/kubernetes/kubernetes/pull/98979), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Instrumentation and Storage] +- Add `migrated` field into `storage_operation_duration_seconds` metric ([#99050](https://github.com/kubernetes/kubernetes/pull/99050), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps, Instrumentation and Storage] +- Add flag --lease-reuse-duration-seconds for kube-apiserver to config etcd lease reuse duration. ([#97009](https://github.com/kubernetes/kubernetes/pull/97009), [@lingsamuel](https://github.com/lingsamuel)) [SIG API Machinery and Scalability] +- Add metric etcd_lease_object_counts for kube-apiserver to observe max objects attached to a single etcd lease. ([#97480](https://github.com/kubernetes/kubernetes/pull/97480), [@lingsamuel](https://github.com/lingsamuel)) [SIG API Machinery, Instrumentation and Scalability] +- Add support to generate client-side binaries for new darwin/arm64 platform ([#97743](https://github.com/kubernetes/kubernetes/pull/97743), [@dims](https://github.com/dims)) [SIG Release and Testing] +- Added `ephemeral_volume_controller_create[_failures]_total` counters to kube-controller-manager metrics ([#99115](https://github.com/kubernetes/kubernetes/pull/99115), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Cluster Lifecycle, Instrumentation and Storage] +- Added support for installing `arm64` node artifacts. ([#99242](https://github.com/kubernetes/kubernetes/pull/99242), [@liu-cong](https://github.com/liu-cong)) +- Adds alpha feature `VolumeCapacityPriority` which makes the scheduler prioritize nodes based on the best matching size of statically provisioned PVs across multiple topologies. ([#96347](https://github.com/kubernetes/kubernetes/pull/96347), [@cofyc](https://github.com/cofyc)) [SIG Apps, Network, Scheduling, Storage and Testing] +- Adds the ability to pass --strict-transport-security-directives to the kube-apiserver to set the HSTS header appropriately. Be sure you understand the consequences to browsers before setting this field. ([#96502](https://github.com/kubernetes/kubernetes/pull/96502), [@249043822](https://github.com/249043822)) [SIG Auth] +- Adds two new metrics to cronjobs, a histogram to track the time difference when a job is created and the expected time when it should be created, as well as a gauge for the missed schedules of a cronjob ([#99341](https://github.com/kubernetes/kubernetes/pull/99341), [@alaypatel07](https://github.com/alaypatel07)) +- Alpha implementation of Kubectl Command Headers: SIG CLI KEP 859 enabled when KUBECTL_COMMAND_HEADERS environment variable set on the client command line. ([#98952](https://github.com/kubernetes/kubernetes/pull/98952), [@seans3](https://github.com/seans3)) +- Base-images: Update to debian-iptables:buster-v1.4.0 + - Uses iptables 1.8.5 + - base-images: Update to debian-base:buster-v1.3.0 + - cluster/images/etcd: Build etcd:3.4.13-2 image + - Uses debian-base:buster-v1.3.0 ([#98401](https://github.com/kubernetes/kubernetes/pull/98401), [@pacoxu](https://github.com/pacoxu)) [SIG Testing] +- CRIContainerLogRotation graduates to GA and unconditionally enabled. ([#99651](https://github.com/kubernetes/kubernetes/pull/99651), [@umohnani8](https://github.com/umohnani8)) +- Component owner can configure the allowlist of metric label with flag '--allow-metric-labels'. ([#99385](https://github.com/kubernetes/kubernetes/pull/99385), [@YoyinZyc](https://github.com/YoyinZyc)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Release] +- Component owner can configure the allowlist of metric label with flag '--allow-metric-labels'. ([#99738](https://github.com/kubernetes/kubernetes/pull/99738), [@YoyinZyc](https://github.com/YoyinZyc)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] +- EmptyDir memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value. ([#100319](https://github.com/kubernetes/kubernetes/pull/100319), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node] +- Enables Kubelet to check volume condition and log events to corresponding pods. ([#99284](https://github.com/kubernetes/kubernetes/pull/99284), [@fengzixu](https://github.com/fengzixu)) [SIG Apps, Instrumentation, Node and Storage] +- EndpointSliceNodeName graduates to GA and thus will be unconditionally enabled -- NodeName will always be available in the v1beta1 API. ([#99746](https://github.com/kubernetes/kubernetes/pull/99746), [@swetharepakula](https://github.com/swetharepakula)) +- Export `NewDebuggingRoundTripper` function and `DebugLevel` options in the k8s.io/client-go/transport package. ([#98324](https://github.com/kubernetes/kubernetes/pull/98324), [@atosatto](https://github.com/atosatto)) +- Kube-proxy iptables: new metric sync_proxy_rules_iptables_total that exposes the number of rules programmed per table in each iteration ([#99653](https://github.com/kubernetes/kubernetes/pull/99653), [@aojea](https://github.com/aojea)) [SIG Instrumentation and Network] +- Kube-scheduler now logs plugin scoring summaries at --v=4 ([#99411](https://github.com/kubernetes/kubernetes/pull/99411), [@damemi](https://github.com/damemi)) [SIG Scheduling] +- Kubeadm now includes CoreDNS v1.8.0. ([#96429](https://github.com/kubernetes/kubernetes/pull/96429), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] +- Kubeadm: IPv6DualStack feature gate graduates to Beta and enabled by default ([#99294](https://github.com/kubernetes/kubernetes/pull/99294), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: a warning to user as ipv6 site-local is deprecated ([#99574](https://github.com/kubernetes/kubernetes/pull/99574), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle and Network] +- Kubeadm: add support for certificate chain validation. When using kubeadm in external CA mode, this allows an intermediate CA to be used to sign the certificates. The intermediate CA certificate must be appended to each signed certificate for this to work correctly. ([#97266](https://github.com/kubernetes/kubernetes/pull/97266), [@robbiemcmichael](https://github.com/robbiemcmichael)) [SIG Cluster Lifecycle] +- Kubeadm: amend the node kernel validation to treat CGROUP_PIDS, FAIR_GROUP_SCHED as required and CFS_BANDWIDTH, CGROUP_HUGETLB as optional ([#96378](https://github.com/kubernetes/kubernetes/pull/96378), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] +- Kubeadm: apply the "node.kubernetes.io/exclude-from-external-load-balancers" label on control plane nodes during "init", "join" and "upgrade" to preserve backwards compatibility with the lagacy LB mode where nodes labeled as "master" where excluded. To opt-out you can remove the label from a node. See #97543 and the linked KEP for more details. ([#98269](https://github.com/kubernetes/kubernetes/pull/98269), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: if the user has customized their image repository via the kubeadm configuration, pass the custom pause image repository and tag to the kubelet via --pod-infra-container-image not only for Docker but for all container runtimes. This flag tells the kubelet that it should not garbage collect the image. ([#99476](https://github.com/kubernetes/kubernetes/pull/99476), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: perform pre-flight validation on host/node name upon `kubeadm init` and `kubeadm join`, showing warnings on non-compliant names ([#99194](https://github.com/kubernetes/kubernetes/pull/99194), [@pacoxu](https://github.com/pacoxu)) +- Kubectl version changed to write a warning message to stderr if the client and server version difference exceeds the supported version skew of +/-1 minor version. ([#98250](https://github.com/kubernetes/kubernetes/pull/98250), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] +- Kubectl: Add `--use-protocol-buffers` flag to kubectl top pods and nodes. ([#96655](https://github.com/kubernetes/kubernetes/pull/96655), [@serathius](https://github.com/serathius)) +- Kubectl: `kubectl get` will omit managed fields by default now. Users could set `--show-managed-fields` to true to show managedFields when the output format is either `json` or `yaml`. ([#96878](https://github.com/kubernetes/kubernetes/pull/96878), [@knight42](https://github.com/knight42)) [SIG CLI and Testing] +- Kubectl: a Pod can be preselected as default container using `kubectl.kubernetes.io/default-container` annotation ([#99833](https://github.com/kubernetes/kubernetes/pull/99833), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Kubectl: add bash-completion for comma separated list on `kubectl get` ([#98301](https://github.com/kubernetes/kubernetes/pull/98301), [@phil9909](https://github.com/phil9909)) +- Kubernetes is now built using go1.15.8 ([#98834](https://github.com/kubernetes/kubernetes/pull/98834), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing] +- Kubernetes is now built with Golang 1.16 ([#98572](https://github.com/kubernetes/kubernetes/pull/98572), [@justaugustus](https://github.com/justaugustus)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Release and Testing] +- Kubernetes is now built with Golang 1.16.1 ([#100106](https://github.com/kubernetes/kubernetes/pull/100106), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing] +- Metrics can now be disabled explicitly via a command line flag (i.e. '--disabled-metrics=metric1,metric2') ([#99217](https://github.com/kubernetes/kubernetes/pull/99217), [@logicalhan](https://github.com/logicalhan)) +- New admission controller `DenyServiceExternalIPs` is available. Clusters which do not *need* the Service `externalIPs` feature should enable this controller and be more secure. ([#97395](https://github.com/kubernetes/kubernetes/pull/97395), [@thockin](https://github.com/thockin)) +- Overall, enable the feature of `PreferNominatedNode` will improve the performance of scheduling where preemption might frequently happen, but in theory, enable the feature of `PreferNominatedNode`, the pod might not be scheduled to the best candidate node in the cluster. ([#93179](https://github.com/kubernetes/kubernetes/pull/93179), [@chendave](https://github.com/chendave)) [SIG Scheduling and Testing] +- Persistent Volumes formatted with the btrfs filesystem will now automatically resize when expanded. ([#99361](https://github.com/kubernetes/kubernetes/pull/99361), [@Novex](https://github.com/Novex)) [SIG Storage] +- Port the devicemanager to Windows node to allow device plugins like directx ([#93285](https://github.com/kubernetes/kubernetes/pull/93285), [@aarnaud](https://github.com/aarnaud)) [SIG Node, Testing and Windows] +- Removes cAdvisor JSON metrics (/stats/container, /stats/<podname>/<containername>, /stats/<namespace>/<podname>/<poduid>/<containername>) from the kubelet. ([#99236](https://github.com/kubernetes/kubernetes/pull/99236), [@pacoxu](https://github.com/pacoxu)) +- Rename metrics `etcd_object_counts` to `apiserver_storage_object_counts` and mark it as stable. The original `etcd_object_counts` metrics name is marked as "Deprecated" and will be removed in the future. ([#99785](https://github.com/kubernetes/kubernetes/pull/99785), [@erain](https://github.com/erain)) [SIG API Machinery, Instrumentation and Testing] +- Sysctls graduates to General Availability and thus unconditionally enabled. ([#99158](https://github.com/kubernetes/kubernetes/pull/99158), [@wgahnagl](https://github.com/wgahnagl)) +- The Kubernetes pause image manifest list now contains an image for Windows Server 20H2. ([#97322](https://github.com/kubernetes/kubernetes/pull/97322), [@claudiubelu](https://github.com/claudiubelu)) [SIG Windows] +- The NodeAffinity plugin implements the PreFilter extension, offering enhanced performance for Filter. ([#99213](https://github.com/kubernetes/kubernetes/pull/99213), [@AliceZhang2016](https://github.com/AliceZhang2016)) [SIG Scheduling] +- The `CronJobControllerV2` feature flag graduates to Beta and set to be enabled by default. ([#98878](https://github.com/kubernetes/kubernetes/pull/98878), [@soltysh](https://github.com/soltysh)) +- The `EndpointSlice` mirroring controller mirrors endpoints annotations and labels to the generated endpoint slices, it also ensures that updates on any of these fields are mirrored. + The well-known annotation `endpoints.kubernetes.io/last-change-trigger-time` is skipped and not mirrored. ([#98116](https://github.com/kubernetes/kubernetes/pull/98116), [@aojea](https://github.com/aojea)) +- The `RunAsGroup` feature has been promoted to GA in this release. ([#94641](https://github.com/kubernetes/kubernetes/pull/94641), [@krmayankk](https://github.com/krmayankk)) [SIG Auth and Node] +- The `ServiceAccountIssuerDiscovery` feature has graduated to GA, and is unconditionally enabled. The `ServiceAccountIssuerDiscovery` feature-gate will be removed in 1.22. ([#98553](https://github.com/kubernetes/kubernetes/pull/98553), [@mtaufen](https://github.com/mtaufen)) [SIG API Machinery, Auth and Testing] +- The `TTLAfterFinished` feature flag is now beta and enabled by default ([#98678](https://github.com/kubernetes/kubernetes/pull/98678), [@ahg-g](https://github.com/ahg-g)) +- The apimachinery util/net function used to detect the bind address `ResolveBindAddress()` takes into consideration global IP addresses on loopback interfaces when 1) the host has default routes, or 2) there are no global IPs on those interfaces in order to support more complex network scenarios like BGP Unnumbered RFC 5549 ([#95790](https://github.com/kubernetes/kubernetes/pull/95790), [@aojea](https://github.com/aojea)) [SIG Network] +- The feature gate `RootCAConfigMap` graduated to GA in v1.21 and therefore will be unconditionally enabled. This flag will be removed in v1.22 release. ([#98033](https://github.com/kubernetes/kubernetes/pull/98033), [@zshihang](https://github.com/zshihang)) +- The pause image upgraded to `v3.4.1` in kubelet and kubeadm for both Linux and Windows. ([#98205](https://github.com/kubernetes/kubernetes/pull/98205), [@pacoxu](https://github.com/pacoxu)) +- Update pause container to run as pseudo user and group `65535:65535`. This implies the release of version 3.5 of the container images. ([#97963](https://github.com/kubernetes/kubernetes/pull/97963), [@saschagrunert](https://github.com/saschagrunert)) [SIG CLI, Cloud Provider, Cluster Lifecycle, Node, Release, Security and Testing] +- Update the latest validated version of Docker to 20.10 ([#98977](https://github.com/kubernetes/kubernetes/pull/98977), [@neolit123](https://github.com/neolit123)) [SIG CLI, Cluster Lifecycle and Node] +- Upgrade node local dns to 1.17.0 for better IPv6 support ([#99749](https://github.com/kubernetes/kubernetes/pull/99749), [@pacoxu](https://github.com/pacoxu)) [SIG Cloud Provider and Network] +- Upgrades `IPv6Dualstack` to `Beta` and turns it on by default. New clusters or existing clusters are not be affected until an actor starts adding secondary Pods and service CIDRS CLI flags as described here: [IPv4/IPv6 Dual-stack](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack) ([#98969](https://github.com/kubernetes/kubernetes/pull/98969), [@khenidak](https://github.com/khenidak)) +- Users might specify the `kubectl.kubernetes.io/default-container` annotation in a Pod to preselect container for kubectl commands. ([#99581](https://github.com/kubernetes/kubernetes/pull/99581), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG CLI] +- When downscaling ReplicaSets, ready and creation timestamps are compared in a logarithmic scale. ([#99212](https://github.com/kubernetes/kubernetes/pull/99212), [@damemi](https://github.com/damemi)) [SIG Apps and Testing] +- When the kubelet is watching a ConfigMap or Secret purely in the context of setting environment variables + for containers, only hold that watch for a defined duration before cancelling it. This change reduces the CPU + and memory usage of the kube-apiserver in large clusters. ([#99393](https://github.com/kubernetes/kubernetes/pull/99393), [@chenyw1990](https://github.com/chenyw1990)) [SIG API Machinery, Node and Testing] +- WindowsEndpointSliceProxying feature gate has graduated to beta and is enabled by default. This means kube-proxy will read from EndpointSlices instead of Endpoints on Windows by default. ([#99794](https://github.com/kubernetes/kubernetes/pull/99794), [@robscott](https://github.com/robscott)) [SIG Network] +- `kubectl wait` ensures that observedGeneration >= generation to prevent stale state reporting. An example scenario can be found on CRD updates. ([#97408](https://github.com/kubernetes/kubernetes/pull/97408), [@KnicKnic](https://github.com/KnicKnic)) + +### Documentation + +- Azure file migration graduates to beta, with CSIMigrationAzureFile flag off by default + as it requires installation of AzureFile CSI Driver. Users should enable CSIMigration and + CSIMigrationAzureFile features and install the [AzureFile CSI Driver](https://github.com/kubernetes-sigs/azurefile-csi-driver) + to avoid disruption to existing Pod and PVC objects at that time. Azure File CSI driver does not support using same persistent + volume with different fsgroups. When CSI migration is enabled for azurefile driver, such case is not supported. + (there is a case we support where volume is mounted with 0777 and then it readable/writable by everyone) ([#96293](https://github.com/kubernetes/kubernetes/pull/96293), [@andyzhangx](https://github.com/andyzhangx)) +- Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97935](https://github.com/kubernetes/kubernetes/pull/97935), [@adeniyistephen](https://github.com/adeniyistephen)) [SIG Release and Testing] +- Set kubelet option `--volume-stats-agg-period` to negative value to disable volume calculations. ([#96675](https://github.com/kubernetes/kubernetes/pull/96675), [@pacoxu](https://github.com/pacoxu)) [SIG Node] + +### Failing Test + +- Escape the special characters like `[`, `]` and ` ` that exist in vsphere windows path ([#98830](https://github.com/kubernetes/kubernetes/pull/98830), [@liyanhui1228](https://github.com/liyanhui1228)) [SIG Storage and Windows] +- Kube-proxy: fix a bug on UDP `NodePort` Services where stale connection tracking entries may blackhole the traffic directed to the `NodePort` ([#98305](https://github.com/kubernetes/kubernetes/pull/98305), [@aojea](https://github.com/aojea)) +- Kubelet: fixes a bug in the HostPort dockershim implementation that caused the conformance test "HostPort validates that there is no conflict between pods with same hostPort but different hostIP and protocol" to fail. ([#98755](https://github.com/kubernetes/kubernetes/pull/98755), [@aojea](https://github.com/aojea)) [SIG Cloud Provider, Network and Node] + +### Bug or Regression + +- AcceleratorStats will be available in the Summary API of kubelet when cri_stats_provider is used. ([#96873](https://github.com/kubernetes/kubernetes/pull/96873), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) [SIG Node] +- All data is no longer automatically deleted when a failure is detected during creation of the volume data file on a CSI volume. Now only the data file and volume path is removed. ([#96021](https://github.com/kubernetes/kubernetes/pull/96021), [@huffmanca](https://github.com/huffmanca)) +- Clean ReplicaSet by revision instead of creation timestamp in deployment controller ([#97407](https://github.com/kubernetes/kubernetes/pull/97407), [@waynepeking348](https://github.com/waynepeking348)) [SIG Apps] +- Cleanup subnet in frontend IP configs to prevent huge subnet request bodies in some scenarios. ([#98133](https://github.com/kubernetes/kubernetes/pull/98133), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Client-go exec credential plugins will pass stdin only when interactive terminal is detected on stdin. This fixes a bug where previously it was checking if **stdout** is an interactive terminal. ([#99654](https://github.com/kubernetes/kubernetes/pull/99654), [@ankeesler](https://github.com/ankeesler)) +- Cloud-controller-manager: routes controller should not depend on --allocate-node-cidrs ([#97029](https://github.com/kubernetes/kubernetes/pull/97029), [@andrewsykim](https://github.com/andrewsykim)) [SIG Cloud Provider and Testing] +- Cluster Autoscaler version bump to v1.20.0 ([#97011](https://github.com/kubernetes/kubernetes/pull/97011), [@towca](https://github.com/towca)) +- Creating a PVC with DataSource should fail for non-CSI plugins. ([#97086](https://github.com/kubernetes/kubernetes/pull/97086), [@xing-yang](https://github.com/xing-yang)) [SIG Apps and Storage] +- EndpointSlice controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#99345](https://github.com/kubernetes/kubernetes/pull/99345), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- EndpointSlice controllers are less likely to create duplicate EndpointSlices. ([#100103](https://github.com/kubernetes/kubernetes/pull/100103), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- EndpointSliceMirroring controller is now less likely to emit FailedToUpdateEndpointSlices events. ([#99756](https://github.com/kubernetes/kubernetes/pull/99756), [@robscott](https://github.com/robscott)) [SIG Apps and Network] +- Ensure all vSphere nodes are are tracked by volume attach-detach controller ([#96689](https://github.com/kubernetes/kubernetes/pull/96689), [@gnufied](https://github.com/gnufied)) +- Ensure empty string annotations are copied over in rollbacks. ([#94858](https://github.com/kubernetes/kubernetes/pull/94858), [@waynepeking348](https://github.com/waynepeking348)) +- Ensure only one LoadBalancer rule is created when HA mode is enabled ([#99825](https://github.com/kubernetes/kubernetes/pull/99825), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Ensure that client-go's EventBroadcaster is safe (non-racy) during shutdown. ([#95664](https://github.com/kubernetes/kubernetes/pull/95664), [@DirectXMan12](https://github.com/DirectXMan12)) [SIG API Machinery] +- Explicitly pass `KUBE_BUILD_CONFORMANCE=y` in `package-tarballs` to reenable building the conformance tarballs. ([#100571](https://github.com/kubernetes/kubernetes/pull/100571), [@puerco](https://github.com/puerco)) +- Fix Azure file migration e2e test failure when CSIMigration is turned on. ([#97877](https://github.com/kubernetes/kubernetes/pull/97877), [@andyzhangx](https://github.com/andyzhangx)) +- Fix CSI-migrated inline EBS volumes failing to mount if their volumeID is prefixed by aws:// ([#96821](https://github.com/kubernetes/kubernetes/pull/96821), [@wongma7](https://github.com/wongma7)) [SIG Storage] +- Fix CVE-2020-8555 for Gluster client connections. ([#97922](https://github.com/kubernetes/kubernetes/pull/97922), [@liggitt](https://github.com/liggitt)) [SIG Storage] +- Fix NPE in ephemeral storage eviction ([#98261](https://github.com/kubernetes/kubernetes/pull/98261), [@wzshiming](https://github.com/wzshiming)) [SIG Node] +- Fix PermissionDenied issue on SMB mount for Windows ([#99550](https://github.com/kubernetes/kubernetes/pull/99550), [@andyzhangx](https://github.com/andyzhangx)) +- Fix bug that would let the Horizontal Pod Autoscaler scale down despite at least one metric being unavailable/invalid ([#99514](https://github.com/kubernetes/kubernetes/pull/99514), [@mikkeloscar](https://github.com/mikkeloscar)) [SIG Apps and Autoscaling] +- Fix cgroup handling for systemd with cgroup v2 ([#98365](https://github.com/kubernetes/kubernetes/pull/98365), [@odinuge](https://github.com/odinuge)) [SIG Node] +- Fix counting error in service/nodeport/loadbalancer quota check ([#97451](https://github.com/kubernetes/kubernetes/pull/97451), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery, Network and Testing] +- Fix errors when accessing Windows container stats for Dockershim ([#98510](https://github.com/kubernetes/kubernetes/pull/98510), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows] +- Fix kube-proxy container image architecture for non amd64 images. ([#98526](https://github.com/kubernetes/kubernetes/pull/98526), [@saschagrunert](https://github.com/saschagrunert)) +- Fix missing cadvisor machine metrics. ([#97006](https://github.com/kubernetes/kubernetes/pull/97006), [@lingsamuel](https://github.com/lingsamuel)) [SIG Node] +- Fix nil VMSS name when setting service to auto mode ([#97366](https://github.com/kubernetes/kubernetes/pull/97366), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Fix privileged config of Pod Sandbox which was previously ignored. ([#96877](https://github.com/kubernetes/kubernetes/pull/96877), [@xeniumlee](https://github.com/xeniumlee)) +- Fix the panic when kubelet registers if a node object already exists with no Status.Capacity or Status.Allocatable ([#95269](https://github.com/kubernetes/kubernetes/pull/95269), [@SataQiu](https://github.com/SataQiu)) [SIG Node] +- Fix the regression with the slow pods termination. Before this fix pods may take an additional time to terminate - up to one minute. Reversing the change that ensured that CNI resources cleaned up when the pod is removed on API server. ([#97980](https://github.com/kubernetes/kubernetes/pull/97980), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node] +- Fix to recover CSI volumes from certain dangling attachments ([#96617](https://github.com/kubernetes/kubernetes/pull/96617), [@yuga711](https://github.com/yuga711)) [SIG Apps and Storage] +- Fix: azure file latency issue for metadata-heavy workloads ([#97082](https://github.com/kubernetes/kubernetes/pull/97082), [@andyzhangx](https://github.com/andyzhangx)) [SIG Cloud Provider and Storage] +- Fixed Cinder volume IDs on OpenStack Train ([#96673](https://github.com/kubernetes/kubernetes/pull/96673), [@jsafrane](https://github.com/jsafrane)) [SIG Cloud Provider] +- Fixed FibreChannel volume plugin corrupting filesystems on detach of multipath volumes. ([#97013](https://github.com/kubernetes/kubernetes/pull/97013), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- Fixed a bug in kubelet that will saturate CPU utilization after containerd got restarted. ([#97174](https://github.com/kubernetes/kubernetes/pull/97174), [@hanlins](https://github.com/hanlins)) [SIG Node] +- Fixed a bug that causes smaller number of conntrack-max being used under CPU static policy. (#99225, @xh4n3) ([#99613](https://github.com/kubernetes/kubernetes/pull/99613), [@xh4n3](https://github.com/xh4n3)) [SIG Network] +- Fixed a bug that on k8s nodes, when the policy of INPUT chain in filter table is not ACCEPT, healthcheck nodeport would not work. + Added iptables rules to allow healthcheck nodeport traffic. ([#97824](https://github.com/kubernetes/kubernetes/pull/97824), [@hanlins](https://github.com/hanlins)) [SIG Network] +- Fixed a bug that the kubelet cannot start on BtrfS. ([#98042](https://github.com/kubernetes/kubernetes/pull/98042), [@gjkim42](https://github.com/gjkim42)) [SIG Node] +- Fixed a race condition on API server startup ensuring previously created webhook configurations are effective before the first write request is admitted. ([#95783](https://github.com/kubernetes/kubernetes/pull/95783), [@roycaihw](https://github.com/roycaihw)) [SIG API Machinery] +- Fixed an issue with garbage collection failing to clean up namespaced children of an object also referenced incorrectly by cluster-scoped children ([#98068](https://github.com/kubernetes/kubernetes/pull/98068), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps] +- Fixed authentication_duration_seconds metric scope. Previously, it included whole apiserver request duration which yields inaccurate results. ([#99944](https://github.com/kubernetes/kubernetes/pull/99944), [@marseel](https://github.com/marseel)) +- Fixed bug in CPUManager with race on container map access ([#97427](https://github.com/kubernetes/kubernetes/pull/97427), [@klueska](https://github.com/klueska)) [SIG Node] +- Fixed bug that caused cAdvisor to incorrectly detect single-socket multi-NUMA topology. ([#99315](https://github.com/kubernetes/kubernetes/pull/99315), [@iwankgb](https://github.com/iwankgb)) [SIG Node] +- Fixed cleanup of block devices when /var/lib/kubelet is a symlink. ([#96889](https://github.com/kubernetes/kubernetes/pull/96889), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- Fixed no effect namespace when exposing deployment with --dry-run=client. ([#97492](https://github.com/kubernetes/kubernetes/pull/97492), [@masap](https://github.com/masap)) [SIG CLI] +- Fixed provisioning of Cinder volumes migrated to CSI when StorageClass with AllowedTopologies was used. ([#98311](https://github.com/kubernetes/kubernetes/pull/98311), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- Fixes a bug of identifying the correct containerd process. ([#97888](https://github.com/kubernetes/kubernetes/pull/97888), [@pacoxu](https://github.com/pacoxu)) +- Fixes add-on manager leader election to use leases instead of endpoints, similar to what kube-controller-manager does in 1.20 ([#98968](https://github.com/kubernetes/kubernetes/pull/98968), [@liggitt](https://github.com/liggitt)) +- Fixes connection errors when using `--volume-host-cidr-denylist` or `--volume-host-allow-local-loopback` ([#98436](https://github.com/kubernetes/kubernetes/pull/98436), [@liggitt](https://github.com/liggitt)) [SIG Network and Storage] +- Fixes problem where invalid selector on `PodDisruptionBudget` leads to a nil pointer dereference that causes the Controller manager to crash loop. ([#98750](https://github.com/kubernetes/kubernetes/pull/98750), [@mortent](https://github.com/mortent)) +- Fixes spurious errors about IPv6 in `kube-proxy` logs on nodes with IPv6 disabled. ([#99127](https://github.com/kubernetes/kubernetes/pull/99127), [@danwinship](https://github.com/danwinship)) +- Fixing a bug where a failed node may not have the NoExecute taint set correctly ([#96876](https://github.com/kubernetes/kubernetes/pull/96876), [@howieyuen](https://github.com/howieyuen)) [SIG Apps and Node] +- GCE Internal LoadBalancer sync loop will now release the ILB IP address upon sync failure. An error in ILB forwarding rule creation will no longer leak IP addresses. ([#97740](https://github.com/kubernetes/kubernetes/pull/97740), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider and Network] +- Ignore update pod with no new images in alwaysPullImages admission controller ([#96668](https://github.com/kubernetes/kubernetes/pull/96668), [@pacoxu](https://github.com/pacoxu)) [SIG Apps, Auth and Node] +- Improve speed of vSphere PV provisioning and reduce number of API calls ([#100054](https://github.com/kubernetes/kubernetes/pull/100054), [@gnufied](https://github.com/gnufied)) [SIG Cloud Provider and Storage] +- KUBECTL_EXTERNAL_DIFF now accepts equal sign for additional parameters. ([#98158](https://github.com/kubernetes/kubernetes/pull/98158), [@dougsland](https://github.com/dougsland)) [SIG CLI] +- Kube-apiserver: an update of a pod with a generic ephemeral volume dropped that volume if the feature had been disabled since creating the pod with such a volume ([#99446](https://github.com/kubernetes/kubernetes/pull/99446), [@pohly](https://github.com/pohly)) [SIG Apps, Node and Storage] +- Kube-proxy: remove deprecated --cleanup-ipvs flag of kube-proxy, and make --cleanup flag always to flush IPVS ([#97336](https://github.com/kubernetes/kubernetes/pull/97336), [@maaoBit](https://github.com/maaoBit)) [SIG Network] +- Kubeadm installs etcd v3.4.13 when creating cluster v1.19 ([#97244](https://github.com/kubernetes/kubernetes/pull/97244), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: Fixes a kubeadm upgrade bug that could cause a custom CoreDNS configuration to be replaced with the default. ([#97016](https://github.com/kubernetes/kubernetes/pull/97016), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cluster Lifecycle] +- Kubeadm: Some text in the `kubeadm upgrade plan` output has changed. If you have scripts or other automation that parses this output, please review these changes and update your scripts to account for the new output. ([#98728](https://github.com/kubernetes/kubernetes/pull/98728), [@stmcginnis](https://github.com/stmcginnis)) [SIG Cluster Lifecycle] +- Kubeadm: fix a bug in the host memory detection code on 32bit Linux platforms ([#97403](https://github.com/kubernetes/kubernetes/pull/97403), [@abelbarrera15](https://github.com/abelbarrera15)) [SIG Cluster Lifecycle] +- Kubeadm: fix a bug where "kubeadm join" would not properly handle missing names for existing etcd members. ([#97372](https://github.com/kubernetes/kubernetes/pull/97372), [@ihgann](https://github.com/ihgann)) [SIG Cluster Lifecycle] +- Kubeadm: fix a bug where "kubeadm upgrade" commands can fail if CoreDNS v1.8.0 is installed. ([#97919](https://github.com/kubernetes/kubernetes/pull/97919), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: fix a bug where external credentials in an existing admin.conf prevented the CA certificate to be written in the cluster-info ConfigMap. ([#98882](https://github.com/kubernetes/kubernetes/pull/98882), [@kvaps](https://github.com/kvaps)) [SIG Cluster Lifecycle] +- Kubeadm: get k8s CI version markers from k8s infra bucket ([#98836](https://github.com/kubernetes/kubernetes/pull/98836), [@hasheddan](https://github.com/hasheddan)) [SIG Cluster Lifecycle and Release] +- Kubeadm: skip validating pod subnet against node-cidr-mask when allocate-node-cidrs is set to be false ([#98984](https://github.com/kubernetes/kubernetes/pull/98984), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubectl logs: `--ignore-errors` is now honored by all containers, maintaining consistency with parallelConsumeRequest behavior. ([#97686](https://github.com/kubernetes/kubernetes/pull/97686), [@wzshiming](https://github.com/wzshiming)) +- Kubectl-convert: Fix `no kind "Ingress" is registered for version` error ([#97754](https://github.com/kubernetes/kubernetes/pull/97754), [@wzshiming](https://github.com/wzshiming)) +- Kubectl: Fixed panic when describing an ingress backend without an API Group ([#100505](https://github.com/kubernetes/kubernetes/pull/100505), [@lauchokyip](https://github.com/lauchokyip)) [SIG CLI] +- Kubelet now cleans up orphaned volume directories automatically ([#95301](https://github.com/kubernetes/kubernetes/pull/95301), [@lorenz](https://github.com/lorenz)) [SIG Node and Storage] +- Kubelet.exe on Windows now checks that the process running as administrator and the executing user account is listed in the built-in administrators group. This is the equivalent to checking the process is running as uid 0. ([#96616](https://github.com/kubernetes/kubernetes/pull/96616), [@perithompson](https://github.com/perithompson)) [SIG Node and Windows] +- Kubelet: Fix kubelet from panic after getting the wrong signal ([#98200](https://github.com/kubernetes/kubernetes/pull/98200), [@wzshiming](https://github.com/wzshiming)) [SIG Node] +- Kubelet: Fix repeatedly acquiring the inhibit lock ([#98088](https://github.com/kubernetes/kubernetes/pull/98088), [@wzshiming](https://github.com/wzshiming)) [SIG Node] +- Kubelet: Fixed the bug of getting the number of cpu when the number of cpu logical processors is more than 64 in windows ([#97378](https://github.com/kubernetes/kubernetes/pull/97378), [@hwdef](https://github.com/hwdef)) [SIG Node and Windows] +- Limits lease to have 1000 maximum attached objects. ([#98257](https://github.com/kubernetes/kubernetes/pull/98257), [@lingsamuel](https://github.com/lingsamuel)) +- Mitigate CVE-2020-8555 for kube-up using GCE by preventing local loopback folume hosts. ([#97934](https://github.com/kubernetes/kubernetes/pull/97934), [@mattcary](https://github.com/mattcary)) [SIG Cloud Provider and Storage] +- On single-stack configured (IPv4 or IPv6, but not both) clusters, Services which are both headless (no clusterIP) and selectorless (empty or undefined selector) will report `ipFamilyPolicy RequireDualStack` and will have entries in `ipFamilies[]` for both IPv4 and IPv6. This is a change from alpha, but does not have any impact on the manually-specified Endpoints and EndpointSlices for the Service. ([#99555](https://github.com/kubernetes/kubernetes/pull/99555), [@thockin](https://github.com/thockin)) [SIG Apps and Network] +- Performance regression #97685 has been fixed. ([#97860](https://github.com/kubernetes/kubernetes/pull/97860), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] +- Pod Log stats for windows now reports metrics ([#99221](https://github.com/kubernetes/kubernetes/pull/99221), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node, Storage, Testing and Windows] +- Pod status updates faster when reacting on probe results. The first readiness probe will be called faster when startup probes succeeded, which will make Pod status as ready faster. ([#98376](https://github.com/kubernetes/kubernetes/pull/98376), [@matthyx](https://github.com/matthyx)) +- Readjust `kubelet_containers_per_pod_count` buckets to only show metrics greater than 1. ([#98169](https://github.com/kubernetes/kubernetes/pull/98169), [@wawa0210](https://github.com/wawa0210)) +- Remove CSI topology from migrated in-tree gcepd volume. ([#97823](https://github.com/kubernetes/kubernetes/pull/97823), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Cloud Provider and Storage] +- Requests with invalid timeout parameters in the request URL now appear in the audit log correctly. ([#96901](https://github.com/kubernetes/kubernetes/pull/96901), [@tkashem](https://github.com/tkashem)) [SIG API Machinery and Testing] +- Resolve a "concurrent map read and map write" crashing error in the kubelet ([#95111](https://github.com/kubernetes/kubernetes/pull/95111), [@choury](https://github.com/choury)) [SIG Node] +- Resolves spurious `Failed to list *v1.Secret` or `Failed to list *v1.ConfigMap` messages in kubelet logs. ([#99538](https://github.com/kubernetes/kubernetes/pull/99538), [@liggitt](https://github.com/liggitt)) [SIG Auth and Node] +- ResourceQuota of an entity now inclusively calculate Pod overhead ([#99600](https://github.com/kubernetes/kubernetes/pull/99600), [@gjkim42](https://github.com/gjkim42)) +- Return zero time (midnight on Jan. 1, 1970) instead of negative number when reporting startedAt and finishedAt of the not started or a running Pod when using `dockershim` as a runtime. ([#99585](https://github.com/kubernetes/kubernetes/pull/99585), [@Iceber](https://github.com/Iceber)) +- Reverts breaking change to inline AzureFile volumes; referenced secrets are now searched for in the same namespace as the pod as in previous releases. ([#100563](https://github.com/kubernetes/kubernetes/pull/100563), [@msau42](https://github.com/msau42)) +- Scores from InterPodAffinity have stronger differentiation. ([#98096](https://github.com/kubernetes/kubernetes/pull/98096), [@leileiwan](https://github.com/leileiwan)) [SIG Scheduling] +- Specifying the KUBE_TEST_REPO environment variable when e2e tests are executed will instruct the test infrastructure to load that image from a location within the specified repo, using a predefined pattern. ([#93510](https://github.com/kubernetes/kubernetes/pull/93510), [@smarterclayton](https://github.com/smarterclayton)) [SIG Testing] +- Static pods will be deleted gracefully. ([#98103](https://github.com/kubernetes/kubernetes/pull/98103), [@gjkim42](https://github.com/gjkim42)) [SIG Node] +- Sync node status during kubelet node shutdown. + Adds an pod admission handler that rejects new pods when the node is in progress of shutting down. ([#98005](https://github.com/kubernetes/kubernetes/pull/98005), [@wzshiming](https://github.com/wzshiming)) [SIG Node] +- The calculation of pod UIDs for static pods has changed to ensure each static pod gets a unique value - this will cause all static pod containers to be recreated/restarted if an in-place kubelet upgrade from 1.20 to 1.21 is performed. Note that draining pods before upgrading the kubelet across minor versions is the supported upgrade path. ([#87461](https://github.com/kubernetes/kubernetes/pull/87461), [@bboreham](https://github.com/bboreham)) [SIG Node] +- The maximum number of ports allowed in EndpointSlices has been increased from 100 to 20,000 ([#99795](https://github.com/kubernetes/kubernetes/pull/99795), [@robscott](https://github.com/robscott)) [SIG Network] +- Truncates a message if it hits the `NoteLengthLimit` when the scheduler records an event for the pod that indicates the pod has failed to schedule. ([#98715](https://github.com/kubernetes/kubernetes/pull/98715), [@carlory](https://github.com/carlory)) +- Updated k8s.gcr.io/ingress-gce-404-server-with-metrics-amd64 to a version that serves /metrics endpoint on a non-default port. ([#97621](https://github.com/kubernetes/kubernetes/pull/97621), [@vbannai](https://github.com/vbannai)) [SIG Cloud Provider] +- Updates the commands ` + - kubectl kustomize {arg} + - kubectl apply -k {arg} + `to use same code as kustomize CLI [v4.0.5](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.0.5) ([#98946](https://github.com/kubernetes/kubernetes/pull/98946), [@monopole](https://github.com/monopole)) +- Use force unmount for NFS volumes if regular mount fails after 1 minute timeout ([#96844](https://github.com/kubernetes/kubernetes/pull/96844), [@gnufied](https://github.com/gnufied)) [SIG Storage] +- Use network.Interface.VirtualMachine.ID to get the binded VM + Skip standalone VM when reconciling LoadBalancer ([#97635](https://github.com/kubernetes/kubernetes/pull/97635), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Using exec auth plugins with kubectl no longer results in warnings about constructing many client instances from the same exec auth config. ([#97857](https://github.com/kubernetes/kubernetes/pull/97857), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Auth] +- When a CNI plugin returns dual-stack pod IPs, kubelet will now try to respect the + "primary IP family" of the cluster by picking a primary pod IP of the same family + as the (primary) node IP, rather than assuming that the CNI plugin returned the IPs + in the order the administrator wanted (since some CNI plugins don't allow + configuring this). ([#97979](https://github.com/kubernetes/kubernetes/pull/97979), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] +- When dynamically provisioning Azure File volumes for a premium account, the requested size will be set to 100GB if the request is initially lower than this value to accommodate Azure File requirements. ([#99122](https://github.com/kubernetes/kubernetes/pull/99122), [@huffmanca](https://github.com/huffmanca)) [SIG Cloud Provider and Storage] +- When using `Containerd` on Windows, the `C:\Windows\System32\drivers\etc\hosts` file will now be managed by kubelet. ([#83730](https://github.com/kubernetes/kubernetes/pull/83730), [@claudiubelu](https://github.com/claudiubelu)) +- `VolumeBindingArgs` now allow `BindTimeoutSeconds` to be set as zero, while the value zero indicates no waiting for the checking of volume binding operation. ([#99835](https://github.com/kubernetes/kubernetes/pull/99835), [@chendave](https://github.com/chendave)) [SIG Scheduling and Storage] +- `kubectl exec` and `kubectl attach` now honor the `--quiet` flag which suppresses output from the local binary that could be confused by a script with the remote command output (all non-failure output is hidden). In addition, print inline with exec and attach the list of alternate containers when we default to the first spec.container. ([#99004](https://github.com/kubernetes/kubernetes/pull/99004), [@smarterclayton](https://github.com/smarterclayton)) [SIG CLI] + +### Other (Cleanup or Flake) + +- APIs for kubelet annotations and labels from `k8s.io/kubernetes/pkg/kubelet/apis` are now moved under `k8s.io/kubelet/pkg/apis/` ([#98931](https://github.com/kubernetes/kubernetes/pull/98931), [@michaelbeaumont](https://github.com/michaelbeaumont)) +- Apiserver_request_duration_seconds is promoted to stable status. ([#99925](https://github.com/kubernetes/kubernetes/pull/99925), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Instrumentation and Testing] +- Bump github.com/Azure/go-autorest/autorest to v0.11.12 ([#97033](https://github.com/kubernetes/kubernetes/pull/97033), [@patrickshan](https://github.com/patrickshan)) [SIG API Machinery, CLI, Cloud Provider and Cluster Lifecycle] +- Clients required to use go1.15.8+ or go1.16+ if kube-apiserver has the goaway feature enabled to avoid unexpected data race condition. ([#98809](https://github.com/kubernetes/kubernetes/pull/98809), [@answer1991](https://github.com/answer1991)) +- Delete deprecated `service.beta.kubernetes.io/azure-load-balancer-mixed-protocols` mixed procotol annotation in favor of the MixedProtocolLBService feature ([#97096](https://github.com/kubernetes/kubernetes/pull/97096), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- EndpointSlice generation is now incremented when labels change. ([#99750](https://github.com/kubernetes/kubernetes/pull/99750), [@robscott](https://github.com/robscott)) [SIG Network] +- Featuregate AllowInsecureBackendProxy graduates to GA and unconditionally enabled. ([#99658](https://github.com/kubernetes/kubernetes/pull/99658), [@deads2k](https://github.com/deads2k)) +- Increase timeout for pod lifecycle test to reach pod status=ready ([#96691](https://github.com/kubernetes/kubernetes/pull/96691), [@hh](https://github.com/hh)) +- Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. ([#98753](https://github.com/kubernetes/kubernetes/pull/98753), [@Jiawei0227](https://github.com/Jiawei0227)) +- Kube-apiserver: The OIDC authenticator no longer waits 10 seconds before attempting to fetch the metadata required to verify tokens. ([#97693](https://github.com/kubernetes/kubernetes/pull/97693), [@enj](https://github.com/enj)) [SIG API Machinery and Auth] +- Kube-proxy: Traffic from the cluster directed to ExternalIPs is always sent directly to the Service. ([#96296](https://github.com/kubernetes/kubernetes/pull/96296), [@aojea](https://github.com/aojea)) [SIG Network and Testing] +- Kubeadm: change the default image repository for CI images from 'gcr.io/kubernetes-ci-images' to 'gcr.io/k8s-staging-ci-images' ([#97087](https://github.com/kubernetes/kubernetes/pull/97087), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubectl: The deprecated `kubectl alpha debug` command is removed. Use `kubectl debug` instead. ([#98111](https://github.com/kubernetes/kubernetes/pull/98111), [@pandaamanda](https://github.com/pandaamanda)) [SIG CLI] +- Kubelet command line flags related to dockershim are now showing deprecation message as they will be removed along with dockershim in future release. ([#98730](https://github.com/kubernetes/kubernetes/pull/98730), [@dims](https://github.com/dims)) +- Official support to build kubernetes with docker-machine / remote docker is removed. This change does not affect building kubernetes with docker locally. ([#97618](https://github.com/kubernetes/kubernetes/pull/97618), [@jherrera123](https://github.com/jherrera123)) [SIG Release and Testing] +- Process start time on Windows now uses current process information ([#97491](https://github.com/kubernetes/kubernetes/pull/97491), [@jsturtevant](https://github.com/jsturtevant)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Windows] +- Resolves flakes in the Ingress conformance tests due to conflicts with controllers updating the Ingress object ([#98430](https://github.com/kubernetes/kubernetes/pull/98430), [@liggitt](https://github.com/liggitt)) [SIG Network and Testing] +- The `AttachVolumeLimit` feature gate (GA since v1.17) has been removed and now unconditionally enabled. ([#96539](https://github.com/kubernetes/kubernetes/pull/96539), [@ialidzhikov](https://github.com/ialidzhikov)) +- The `CSINodeInfo` feature gate that is GA since v1.17 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#96561](https://github.com/kubernetes/kubernetes/pull/96561), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Apps, Auth, Scheduling, Storage and Testing] +- The `apiserver_request_total` metric is promoted to stable status and no longer has a content-type dimensions, so any alerts/charts which presume the existence of this will fail. This is however, unlikely to be the case since it was effectively an unbounded dimension in the first place. ([#99788](https://github.com/kubernetes/kubernetes/pull/99788), [@logicalhan](https://github.com/logicalhan)) +- The default delegating authorization options now allow unauthenticated access to healthz, readyz, and livez. A system:masters user connecting to an authz delegator will not perform an authz check. ([#98325](https://github.com/kubernetes/kubernetes/pull/98325), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Auth, Cloud Provider and Scheduling] +- The deprecated feature gates `CSIDriverRegistry`, `BlockVolume` and `CSIBlockVolume` are now unconditionally enabled and can no longer be specified in component invocations. ([#98021](https://github.com/kubernetes/kubernetes/pull/98021), [@gavinfish](https://github.com/gavinfish)) [SIG Storage] +- The deprecated feature gates `RotateKubeletClientCertificate`, `AttachVolumeLimit`, `VolumePVCDataSource` and `EvenPodsSpread` are now unconditionally enabled and can no longer be specified in component invocations. ([#97306](https://github.com/kubernetes/kubernetes/pull/97306), [@gavinfish](https://github.com/gavinfish)) [SIG Node, Scheduling and Storage] +- The e2e suite can be instructed not to wait for pods in kube-system to be ready or for all nodes to be ready by passing `--allowed-not-ready-nodes=-1` when invoking the e2e.test program. This allows callers to run subsets of the e2e suite in scenarios other than perfectly healthy clusters. ([#98781](https://github.com/kubernetes/kubernetes/pull/98781), [@smarterclayton](https://github.com/smarterclayton)) [SIG Testing] +- The feature gates `WindowsGMSA` and `WindowsRunAsUserName` that are GA since v1.18 are now removed. ([#96531](https://github.com/kubernetes/kubernetes/pull/96531), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Node and Windows] +- The new `-gce-zones` flag on the `e2e.test` binary instructs tests that check for information about how the cluster interacts with the cloud to limit their queries to the provided zone list. If not specified, the current behavior of asking the cloud provider for all available zones in multi zone clusters is preserved. ([#98787](https://github.com/kubernetes/kubernetes/pull/98787), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Cluster Lifecycle and Testing] +- Update cri-tools to [v1.20.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.20.0) ([#97967](https://github.com/kubernetes/kubernetes/pull/97967), [@rajibmitra](https://github.com/rajibmitra)) [SIG Cloud Provider] +- Windows nodes on GCE will take longer to start due to dependencies installed at node creation time. ([#98284](https://github.com/kubernetes/kubernetes/pull/98284), [@pjh](https://github.com/pjh)) [SIG Cloud Provider] +- `apiserver_storage_objects` (a newer version of `etcd_object_counts`) is promoted and marked as stable. ([#100082](https://github.com/kubernetes/kubernetes/pull/100082), [@logicalhan](https://github.com/logicalhan)) + +### Uncategorized + +- GCE L4 Loadbalancers now handle > 5 ports in service spec correctly. ([#99595](https://github.com/kubernetes/kubernetes/pull/99595), [@prameshj](https://github.com/prameshj)) [SIG Cloud Provider] +- The DownwardAPIHugePages feature is beta. Users may use the feature if all workers in their cluster are min 1.20 version. The feature will be enabled by default in all installations in 1.22. ([#99610](https://github.com/kubernetes/kubernetes/pull/99610), [@derekwaynecarr](https://github.com/derekwaynecarr)) [SIG Node] + +## Dependencies + +### Added +- github.com/go-errors/errors: [v1.0.1](https://github.com/go-errors/errors/tree/v1.0.1) +- github.com/gobuffalo/here: [v0.6.0](https://github.com/gobuffalo/here/tree/v0.6.0) +- github.com/google/shlex: [e7afc7f](https://github.com/google/shlex/tree/e7afc7f) +- github.com/markbates/pkger: [v0.17.1](https://github.com/markbates/pkger/tree/v0.17.1) +- github.com/moby/spdystream: [v0.2.0](https://github.com/moby/spdystream/tree/v0.2.0) +- github.com/monochromegane/go-gitignore: [205db1a](https://github.com/monochromegane/go-gitignore/tree/205db1a) +- github.com/niemeyer/pretty: [a10e7ca](https://github.com/niemeyer/pretty/tree/a10e7ca) +- github.com/xlab/treeprint: [a009c39](https://github.com/xlab/treeprint/tree/a009c39) +- go.starlark.net: 8dd3e2e +- golang.org/x/term: 6a3ed07 +- sigs.k8s.io/kustomize/api: v0.8.5 +- sigs.k8s.io/kustomize/cmd/config: v0.9.7 +- sigs.k8s.io/kustomize/kustomize/v4: v4.0.5 +- sigs.k8s.io/kustomize/kyaml: v0.10.15 + +### Changed +- dmitri.shuralyov.com/gpu/mtl: 666a987 → 28db891 +- github.com/Azure/go-autorest/autorest: [v0.11.1 → v0.11.12](https://github.com/Azure/go-autorest/autorest/compare/v0.11.1...v0.11.12) +- github.com/NYTimes/gziphandler: [56545f4 → v1.1.1](https://github.com/NYTimes/gziphandler/compare/56545f4...v1.1.1) +- github.com/cilium/ebpf: [1c8d4c9 → v0.2.0](https://github.com/cilium/ebpf/compare/1c8d4c9...v0.2.0) +- github.com/container-storage-interface/spec: [v1.2.0 → v1.3.0](https://github.com/container-storage-interface/spec/compare/v1.2.0...v1.3.0) +- github.com/containerd/console: [v1.0.0 → v1.0.1](https://github.com/containerd/console/compare/v1.0.0...v1.0.1) +- github.com/containerd/containerd: [v1.4.1 → v1.4.4](https://github.com/containerd/containerd/compare/v1.4.1...v1.4.4) +- github.com/coredns/corefile-migration: [v1.0.10 → v1.0.11](https://github.com/coredns/corefile-migration/compare/v1.0.10...v1.0.11) +- github.com/creack/pty: [v1.1.7 → v1.1.11](https://github.com/creack/pty/compare/v1.1.7...v1.1.11) +- github.com/docker/docker: [bd33bbf → v20.10.2+incompatible](https://github.com/docker/docker/compare/bd33bbf...v20.10.2) +- github.com/go-logr/logr: [v0.2.0 → v0.4.0](https://github.com/go-logr/logr/compare/v0.2.0...v0.4.0) +- github.com/go-openapi/spec: [v0.19.3 → v0.19.5](https://github.com/go-openapi/spec/compare/v0.19.3...v0.19.5) +- github.com/go-openapi/strfmt: [v0.19.3 → v0.19.5](https://github.com/go-openapi/strfmt/compare/v0.19.3...v0.19.5) +- github.com/go-openapi/validate: [v0.19.5 → v0.19.8](https://github.com/go-openapi/validate/compare/v0.19.5...v0.19.8) +- github.com/gogo/protobuf: [v1.3.1 → v1.3.2](https://github.com/gogo/protobuf/compare/v1.3.1...v1.3.2) +- github.com/golang/mock: [v1.4.1 → v1.4.4](https://github.com/golang/mock/compare/v1.4.1...v1.4.4) +- github.com/google/cadvisor: [v0.38.5 → v0.39.0](https://github.com/google/cadvisor/compare/v0.38.5...v0.39.0) +- github.com/heketi/heketi: [c2e2a4a → v10.2.0+incompatible](https://github.com/heketi/heketi/compare/c2e2a4a...v10.2.0) +- github.com/kisielk/errcheck: [v1.2.0 → v1.5.0](https://github.com/kisielk/errcheck/compare/v1.2.0...v1.5.0) +- github.com/konsorten/go-windows-terminal-sequences: [v1.0.3 → v1.0.2](https://github.com/konsorten/go-windows-terminal-sequences/compare/v1.0.3...v1.0.2) +- github.com/kr/text: [v0.1.0 → v0.2.0](https://github.com/kr/text/compare/v0.1.0...v0.2.0) +- github.com/mattn/go-runewidth: [v0.0.2 → v0.0.7](https://github.com/mattn/go-runewidth/compare/v0.0.2...v0.0.7) +- github.com/miekg/dns: [v1.1.4 → v1.1.35](https://github.com/miekg/dns/compare/v1.1.4...v1.1.35) +- github.com/moby/sys/mountinfo: [v0.1.3 → v0.4.0](https://github.com/moby/sys/mountinfo/compare/v0.1.3...v0.4.0) +- github.com/moby/term: [672ec06 → df9cb8a](https://github.com/moby/term/compare/672ec06...df9cb8a) +- github.com/mrunalp/fileutils: [abd8a0e → v0.5.0](https://github.com/mrunalp/fileutils/compare/abd8a0e...v0.5.0) +- github.com/olekukonko/tablewriter: [a0225b3 → v0.0.4](https://github.com/olekukonko/tablewriter/compare/a0225b3...v0.0.4) +- github.com/opencontainers/runc: [v1.0.0-rc92 → v1.0.0-rc93](https://github.com/opencontainers/runc/compare/v1.0.0-rc92...v1.0.0-rc93) +- github.com/opencontainers/runtime-spec: [4d89ac9 → e6143ca](https://github.com/opencontainers/runtime-spec/compare/4d89ac9...e6143ca) +- github.com/opencontainers/selinux: [v1.6.0 → v1.8.0](https://github.com/opencontainers/selinux/compare/v1.6.0...v1.8.0) +- github.com/sergi/go-diff: [v1.0.0 → v1.1.0](https://github.com/sergi/go-diff/compare/v1.0.0...v1.1.0) +- github.com/sirupsen/logrus: [v1.6.0 → v1.7.0](https://github.com/sirupsen/logrus/compare/v1.6.0...v1.7.0) +- github.com/syndtr/gocapability: [d983527 → 42c35b4](https://github.com/syndtr/gocapability/compare/d983527...42c35b4) +- github.com/willf/bitset: [d5bec33 → v1.1.11](https://github.com/willf/bitset/compare/d5bec33...v1.1.11) +- github.com/yuin/goldmark: [v1.1.27 → v1.2.1](https://github.com/yuin/goldmark/compare/v1.1.27...v1.2.1) +- golang.org/x/crypto: 7f63de1 → 5ea612d +- golang.org/x/exp: 6cc2880 → 85be41e +- golang.org/x/mobile: d2bd2a2 → e6ae53a +- golang.org/x/mod: v0.3.0 → ce943fd +- golang.org/x/net: 69a7880 → 3d97a24 +- golang.org/x/sync: cd5d95a → 67f06af +- golang.org/x/sys: 5cba982 → a50acf3 +- golang.org/x/time: 3af7569 → f8bda1e +- golang.org/x/tools: c1934b7 → v0.1.0 +- gopkg.in/check.v1: 41f04d3 → 8fa4692 +- gopkg.in/yaml.v2: v2.2.8 → v2.4.0 +- gotest.tools/v3: v3.0.2 → v3.0.3 +- k8s.io/gengo: 83324d8 → b6c5ce2 +- k8s.io/klog/v2: v2.4.0 → v2.8.0 +- k8s.io/kube-openapi: d219536 → 591a79e +- k8s.io/system-validators: v1.2.0 → v1.4.0 +- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.14 → v0.0.15 +- sigs.k8s.io/structured-merge-diff/v4: v4.0.2 → v4.1.0 + +### Removed +- github.com/codegangsta/negroni: [v1.0.0](https://github.com/codegangsta/negroni/tree/v1.0.0) +- github.com/docker/spdystream: [449fdfc](https://github.com/docker/spdystream/tree/449fdfc) +- github.com/golangplus/bytes: [45c989f](https://github.com/golangplus/bytes/tree/45c989f) +- github.com/golangplus/fmt: [2a5d6d7](https://github.com/golangplus/fmt/tree/2a5d6d7) +- github.com/gorilla/context: [v1.1.1](https://github.com/gorilla/context/tree/v1.1.1) +- github.com/kr/pty: [v1.1.5](https://github.com/kr/pty/tree/v1.1.5) +- rsc.io/quote/v3: v3.1.0 +- rsc.io/sampler: v1.3.0 +- sigs.k8s.io/kustomize: v2.0.3+incompatible diff --git a/releases/release-1.21/release-team.md b/releases/release-1.21/release-team.md index 3176eb5eece..488f8568c1c 100644 --- a/releases/release-1.21/release-team.md +++ b/releases/release-1.21/release-team.md @@ -1,16 +1,16 @@ -# Kubernetes 1.21 Release Team - -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|----------|----------------------------------|----------------------------------------| -| Lead | Nabarun Pal ([@palnabarun](https://github.com/palnabarun) / Slack: `@palnabarun`) | Kirsten Garrison ( [@kikisdeliveryservice](https://github.com/kikisdeliveryservice) / Slack: `@oikiki`), Savitha Raghunathan ([@savitharaghunathan](https://github.com/savitharaghunathan) / Slack: `@sraghunathan`), Vlad Gorodetsky ([@bai](https://github.com/bai) / Slack: `@bai`) | -| Enhancements | Anna Jung ([@annajung](https://github.com/annajung) / Slack: `@annajung`) | Arun Krishnakumar ( [@arunmk](https://github.com/arunmk) / Slack: `@arunmk`), Kendall Roden ([@kendallroden](https://github.com/kendallroden) / Slack: `@keroden`), James Laverack ([@jameslaverack](https://github.com/jameslaverack) / Slack: `@james.laverack`), Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@j-dawg`) | -| CI Signal | Joyce Kung ([@thejoycekung](https://github.com/thejoycekung) / Slack: `@jk`) | Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkorbi`), Priyanka Hariharan ([@PriyankaH21](https://github.com/PriyankaH21) / Slack: `@Priyanka Hariharan`), Saumya Gupta ([@s278gupt](https://github.com/s278gupt) / Slack: `@sg`), Scott Nichols ([@n3wscott](https://github.com/n3wscott) / Slack: `@n3wscott`) | -| Bug Triage | Derrik Campau ([@erismaster](https://github.com/erismaster) / Slack: `@derrik campau`) | Alessandro Vozza ([@ams0](https://github.com/ams0) / Slack: `@alessandro`), Daniel Esponda ([@desponda](https://github.com/desponda) / Slack: `@Daniel Esponda`), Kristin Martin ([@kcmartin](https://github.com/kcmartin) / Slack: `@kcmartin`), Menna Elmasry ([@monzelmasry](https://github.com/MonzElmasry) / Slack: `@Menna`)| -| Docs | Rey Lejano ([@reylejano](https://github.com/reylejano) / Slack: `@rlejano`) | Chandani Madnani ([@ChandaniM123](https://github.com/ChandaniM123)) / Slack: `@Chandani`), María Ortiz ([@mvortizr](https://github.com/mvortizr)) / Slack: `@María Ortiz`), Qiming Teng ([@tengqm](https://github.com/tengqm)) / Slack: `@tengqm`), Victor Palade ([@pi-victor](https://github.com/pi-victor)) / Slack: `@Victor PI`) | -| Release Notes | Wilson Husin ([@wilsonehusin](https://github.com/wilsonehusin) / Slack: `@wilsonehusin`) | Aashish Nehete ([@ashnehete](https://github.com/ashnehete) / Slack: `@Aashish Nehete`), Melody Chen ([@melodychn](https://github.com/melodychn) / Slack: `@melodychn`), Pavel Malinov ([@pmmalinov01](https://github.com/pmmalinov01) / Slack: `@Pavel Malinov`), Sonia Singla ([@soniasingla](https://github.com/soniasingla) / Slack: `@soniasingla`) | -| Communications | Divya Mohan ([@divya-mohan0209](https://github.com/divya-mohan0209) / Slack: `@divya`) | Evelyn Cupil-Garcia ([@eve658](https://github.com/eve658) / Slack: `@Evelyn Cupil-Garcia`), Peeyush Gupta ([@pensu](https://github.com/pensu) / Slack: `@pensu91`), Justin Garrison ([@rothgar](https://github.com/rothgar) / Slack: `@rothgar`), Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`) | -| Emeritus Adviser | Taylor Dolezal ([@onlydole](https://github.com/onlydole) / Slack: `@onlydole`) | | - -Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.21, once the 1.21 release cycle concludes. +# Kubernetes 1.21 Release Team + +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|----------|----------------------------------|----------------------------------------| +| Lead | Nabarun Pal ([@palnabarun](https://github.com/palnabarun) / Slack: `@palnabarun`) | Kirsten Garrison ( [@kikisdeliveryservice](https://github.com/kikisdeliveryservice) / Slack: `@oikiki`), Savitha Raghunathan ([@savitharaghunathan](https://github.com/savitharaghunathan) / Slack: `@sraghunathan`), Vlad Gorodetsky ([@bai](https://github.com/bai) / Slack: `@bai`) | +| Enhancements | Anna Jung ([@annajung](https://github.com/annajung) / Slack: `@annajung`) | Arun Krishnakumar ( [@arunmk](https://github.com/arunmk) / Slack: `@arunmk`), Kendall Roden ([@kendallroden](https://github.com/kendallroden) / Slack: `@keroden`), James Laverack ([@jameslaverack](https://github.com/jameslaverack) / Slack: `@james.laverack`), Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@j-dawg`) | +| CI Signal | Joyce Kung ([@thejoycekung](https://github.com/thejoycekung) / Slack: `@jk`) | Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkorbi`), Priyanka Hariharan ([@PriyankaH21](https://github.com/PriyankaH21) / Slack: `@Priyanka Hariharan`), Saumya Gupta ([@s278gupt](https://github.com/s278gupt) / Slack: `@sg`), Scott Nichols ([@n3wscott](https://github.com/n3wscott) / Slack: `@n3wscott`) | +| Bug Triage | Derrik Campau ([@erismaster](https://github.com/erismaster) / Slack: `@derrik campau`) | Alessandro Vozza ([@ams0](https://github.com/ams0) / Slack: `@alessandro`), Daniel Esponda ([@desponda](https://github.com/desponda) / Slack: `@Daniel Esponda`), Kristin Martin ([@kcmartin](https://github.com/kcmartin) / Slack: `@kcmartin`), Menna Elmasry ([@monzelmasry](https://github.com/MonzElmasry) / Slack: `@Menna`)| +| Docs | Rey Lejano ([@reylejano](https://github.com/reylejano) / Slack: `@rlejano`) | Chandani Madnani ([@ChandaniM123](https://github.com/ChandaniM123)) / Slack: `@Chandani`), María Ortiz ([@mvortizr](https://github.com/mvortizr)) / Slack: `@María Ortiz`), Qiming Teng ([@tengqm](https://github.com/tengqm)) / Slack: `@tengqm`), Victor Palade ([@pi-victor](https://github.com/pi-victor)) / Slack: `@Victor PI`) | +| Release Notes | Wilson Husin ([@wilsonehusin](https://github.com/wilsonehusin) / Slack: `@wilsonehusin`) | Aashish Nehete ([@ashnehete](https://github.com/ashnehete) / Slack: `@Aashish Nehete`), Melody Chen ([@melodychn](https://github.com/melodychn) / Slack: `@melodychn`), Pavel Malinov ([@pmmalinov01](https://github.com/pmmalinov01) / Slack: `@Pavel Malinov`), Sonia Singla ([@soniasingla](https://github.com/soniasingla) / Slack: `@soniasingla`) | +| Communications | Divya Mohan ([@divya-mohan0209](https://github.com/divya-mohan0209) / Slack: `@divya`) | Evelyn Cupil-Garcia ([@eve658](https://github.com/eve658) / Slack: `@Evelyn Cupil-Garcia`), Peeyush Gupta ([@pensu](https://github.com/pensu) / Slack: `@pensu91`), Justin Garrison ([@rothgar](https://github.com/rothgar) / Slack: `@rothgar`), Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`) | +| Emeritus Adviser | Taylor Dolezal ([@onlydole](https://github.com/onlydole) / Slack: `@onlydole`) | | + +Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.21, once the 1.21 release cycle concludes. diff --git a/releases/release-1.22/README.md b/releases/release-1.22/README.md index ef864e6e5ce..0c65319d836 100644 --- a/releases/release-1.22/README.md +++ b/releases/release-1.22/README.md @@ -1,112 +1,112 @@ ---- -title: "Kubernetes 1.22 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.22 - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.22/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.22/release-team.md) -* [Meeting Minutes](http://bit.ly/k8s122-releasemtg) (join [kubernetes-sig-release@] to receive meeting invites) -* [v1.22 Release Calendar][k8s122-calendar] -* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail -* [Internal Contact Info][Internal Contact Info] (accessible only to members of [kubernetes-release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Sheet](https://bit.ly/k8s122-enhancements) -* [Feature blog Tracking Sheet](http://bit.ly/k8s122-feature-blog) -* [Bug Triage Tracking Sheet](https://bit.ly/1-22-bug-triage-tracking) -* [CI Signal Report](https://docs.google.com/document/d/1SjO1632JRUWqR_Jxg5h0ixezqn9yStU5I7n-gyV15NY/edit?usp=sharing) -* [Retrospective Document][Retrospective Document] -* [kubernetes/sig-release v1.22 milestone](https://github.com/kubernetes/kubernetes/milestone/50) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## TL;DR - -The 1.22 release cycle is proposed as follows: - -- **Monday, April 26th**: Week 1 - Release cycle begins -- **Thursday, May 13th**: Week 3 - [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **Thursday, July 8th**: Week 11 - [Code Freeze](../release_phases.md#code-freeze) -- **Thursday, July 15th**: Week 12 - [Test Freeze](../release_phases.md#test-freeze) -- **Tuesday, July 27th**: Week 14 - Docs must be completed and reviewed -- **Wednesday, August 4th**: Week 15 - Kubernetes v1.22.0 released -- **Thursday August 19**: Week 16 - [Release Retrospective](https://zoom.us/j/91768411674?pwd=MVpqL0ZHbGFYMnpXVXpybTBvalFRQT09) at 10:00 AM (PDT) at the Kubernetes Community Meeting - -## Timeline - -| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | -|---|---|-------|---|---| -| Start of Release Cycle | Lead | Mon April 26 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Mon April 26 | week 1 | | -| 1.22.0-alpha.1 released | Branch Manager ([@puerco](https://github.com/puerco)) | Wed April 28 | week 1 | | -| Schedule finalized | Lead | Thur April 29 | week 1 | | -| Team finalized | Lead | Fri April 30 | week 1 | | -| KubeCon EU + Co-located events | | May 3-7 | | | -| **Begin [Enhancements Freeze]** (23:59 PDT) | Enhancements Lead | Thur May 13 | week 3 | [master-blocking], [master-informing] | -| 1.22.0-alpha.2 released | Branch Manager ([@Verolop](https://github.com/Verolop)) | Tue May 18 | week 4 |[@mkorbi](https://github.com/mkorbi) | -| 1.22.0-alpha.3 released | Branch Manager ([@wilsonehusin](https://github.com/wilsonehusin)) | Tue June 8 | week 7 | [@lambdanis](https://github.com/lambdanis) | -| 1.22.0-beta.0 released | Branch Manager ([@onlydole](https://github.com/onlydole)) | Tue June 22 | week 9 |[@ramrodo](https://github.com/ramrodo) | -| **Begin [Burndown]** (MWF meetings) | Lead | Mon June 28 | week 10 | [1.22-blocking], [master-blocking], [master-informing] | -| **Call for [Exceptions][Exception]** | Lead | Mon June 28 | week 10 | | -| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Mon June 28 | week 10 | | -| **Begin Feature blog freeze** (23:59 PDT) | Comms Lead | Mon June 28 | week 10 | | -| 1.22.0-beta.1 released | Branch Manager ([@ameukam](https://github.com/ameukam)) | Thu July 8 | week 11 | [@encodeflush](https://github.com/encodeflush)| -| **Begin [Code Freeze]** (18:00 PDT) | Branch Manager | Thur July 8 | week 11 | | -| Docs deadline - Open placeholder PRs | Docs Lead | Fri July 9 | week 11 | | -| Burndown Meetings daily| Lead | Mon July 12 | week 12 | | -| 1.22.0-beta.2 released | Branch Manager ([@jimangel](https://github.com/jimangel)) | Tue Jul 13 | week 12 | [@soniasingla](https://github.com/soniasingla)| -| **[Test Freeze]** (18:00 PDT) | Branch Manager | Thur July 15 | week 12 | | -| Docs deadline - PRs ready for review | Docs Lead | Tue July 20 | week 13 | | -| 1.22.0-rc.0 released | Branch Manager ([@puerco](https://github.com/puerco)) | Tue July 20 | week 13 | [@mkorbi](https://github.com/mkorbi) | -| release-1.22 branch created | Branch Manager | Tue July 20 | week 13 | | -| release-1.22 jobs created | Branch Manager | Tue July 20 | week 13 | | -| Start final draft of Release Notes | Release Notes Lead | Tue July 20 | week 13 | | -| Release blog ready to review (23:59 PDT) | Comms / Docs | Wed July 21 | Week 13 | | -| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Tue July 27 | week 14 | | -| Feature blogs ready to review (23:59 PDT)| Enhancement Owner / SIG Leads | Tue July 27 | week 14 | | -| Release Notes complete - reviewed & merged to `k/sig-release` (23:59 PDT) | Release Notes Lead | Thur July 29 | week 14 | | -| **v1.22.0 released** | Branch Manager ([@puerco](https://github.com/puerco)) | Wed August 4 | week 15 | [@mkorbi](https://github.com/mkorbi) | -| Release blog published | Comms | Wed August 4 | week 15 | | -| **[Thaw]** | Branch Manager | Wed August 4 | week 15 | | -| Release retrospective 10:00am PDT | [Community Meeting](https://zoom.us/j/91768411674?pwd=MVpqL0ZHbGFYMnpXVXpybTBvalFRQT09) | Thu August 19 | Week 17 | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[k8s122-calendar]: https://bit.ly/k8s-release-cal -[Internal Contact Info]: TBD -[Retrospective Document]: http://bit.ly/k8s122-retro - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Thaw]: ../release_phases.md#thaw -[Test Freeze]: ../release_phases.md#test-freeze - -[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.22-blocking]: https://testgrid.k8s.io/sig-release-1.22-blocking#Summary - -[exception requests]: ../EXCEPTIONS.md -[release phases document]: ../release_phases.md +--- +title: "Kubernetes 1.22 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.22 + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.22/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.22/release-team.md) +* [Meeting Minutes](http://bit.ly/k8s122-releasemtg) (join [kubernetes-sig-release@] to receive meeting invites) +* [v1.22 Release Calendar][k8s122-calendar] +* Contact: [#sig-release] on slack, [kubernetes-release-team@] on e-mail +* [Internal Contact Info][Internal Contact Info] (accessible only to members of [kubernetes-release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Sheet](https://bit.ly/k8s122-enhancements) +* [Feature blog Tracking Sheet](http://bit.ly/k8s122-feature-blog) +* [Bug Triage Tracking Sheet](https://bit.ly/1-22-bug-triage-tracking) +* [CI Signal Report](https://docs.google.com/document/d/1SjO1632JRUWqR_Jxg5h0ixezqn9yStU5I7n-gyV15NY/edit?usp=sharing) +* [Retrospective Document][Retrospective Document] +* [kubernetes/sig-release v1.22 milestone](https://github.com/kubernetes/kubernetes/milestone/50) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## TL;DR + +The 1.22 release cycle is proposed as follows: + +- **Monday, April 26th**: Week 1 - Release cycle begins +- **Thursday, May 13th**: Week 3 - [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **Thursday, July 8th**: Week 11 - [Code Freeze](../release_phases.md#code-freeze) +- **Thursday, July 15th**: Week 12 - [Test Freeze](../release_phases.md#test-freeze) +- **Tuesday, July 27th**: Week 14 - Docs must be completed and reviewed +- **Wednesday, August 4th**: Week 15 - Kubernetes v1.22.0 released +- **Thursday August 19**: Week 16 - [Release Retrospective](https://zoom.us/j/91768411674?pwd=MVpqL0ZHbGFYMnpXVXpybTBvalFRQT09) at 10:00 AM (PDT) at the Kubernetes Community Meeting + +## Timeline + +| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | +|---|---|-------|---|---| +| Start of Release Cycle | Lead | Mon April 26 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Mon April 26 | week 1 | | +| 1.22.0-alpha.1 released | Branch Manager ([@puerco](https://github.com/puerco)) | Wed April 28 | week 1 | | +| Schedule finalized | Lead | Thur April 29 | week 1 | | +| Team finalized | Lead | Fri April 30 | week 1 | | +| KubeCon EU + Co-located events | | May 3-7 | | | +| **Begin [Enhancements Freeze]** (23:59 PDT) | Enhancements Lead | Thur May 13 | week 3 | [master-blocking], [master-informing] | +| 1.22.0-alpha.2 released | Branch Manager ([@Verolop](https://github.com/Verolop)) | Tue May 18 | week 4 |[@mkorbi](https://github.com/mkorbi) | +| 1.22.0-alpha.3 released | Branch Manager ([@wilsonehusin](https://github.com/wilsonehusin)) | Tue June 8 | week 7 | [@lambdanis](https://github.com/lambdanis) | +| 1.22.0-beta.0 released | Branch Manager ([@onlydole](https://github.com/onlydole)) | Tue June 22 | week 9 |[@ramrodo](https://github.com/ramrodo) | +| **Begin [Burndown]** (MWF meetings) | Lead | Mon June 28 | week 10 | [1.22-blocking], [master-blocking], [master-informing] | +| **Call for [Exceptions][Exception]** | Lead | Mon June 28 | week 10 | | +| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Mon June 28 | week 10 | | +| **Begin Feature blog freeze** (23:59 PDT) | Comms Lead | Mon June 28 | week 10 | | +| 1.22.0-beta.1 released | Branch Manager ([@ameukam](https://github.com/ameukam)) | Thu July 8 | week 11 | [@encodeflush](https://github.com/encodeflush)| +| **Begin [Code Freeze]** (18:00 PDT) | Branch Manager | Thur July 8 | week 11 | | +| Docs deadline - Open placeholder PRs | Docs Lead | Fri July 9 | week 11 | | +| Burndown Meetings daily| Lead | Mon July 12 | week 12 | | +| 1.22.0-beta.2 released | Branch Manager ([@jimangel](https://github.com/jimangel)) | Tue Jul 13 | week 12 | [@soniasingla](https://github.com/soniasingla)| +| **[Test Freeze]** (18:00 PDT) | Branch Manager | Thur July 15 | week 12 | | +| Docs deadline - PRs ready for review | Docs Lead | Tue July 20 | week 13 | | +| 1.22.0-rc.0 released | Branch Manager ([@puerco](https://github.com/puerco)) | Tue July 20 | week 13 | [@mkorbi](https://github.com/mkorbi) | +| release-1.22 branch created | Branch Manager | Tue July 20 | week 13 | | +| release-1.22 jobs created | Branch Manager | Tue July 20 | week 13 | | +| Start final draft of Release Notes | Release Notes Lead | Tue July 20 | week 13 | | +| Release blog ready to review (23:59 PDT) | Comms / Docs | Wed July 21 | Week 13 | | +| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Tue July 27 | week 14 | | +| Feature blogs ready to review (23:59 PDT)| Enhancement Owner / SIG Leads | Tue July 27 | week 14 | | +| Release Notes complete - reviewed & merged to `k/sig-release` (23:59 PDT) | Release Notes Lead | Thur July 29 | week 14 | | +| **v1.22.0 released** | Branch Manager ([@puerco](https://github.com/puerco)) | Wed August 4 | week 15 | [@mkorbi](https://github.com/mkorbi) | +| Release blog published | Comms | Wed August 4 | week 15 | | +| **[Thaw]** | Branch Manager | Wed August 4 | week 15 | | +| Release retrospective 10:00am PDT | [Community Meeting](https://zoom.us/j/91768411674?pwd=MVpqL0ZHbGFYMnpXVXpybTBvalFRQT09) | Thu August 19 | Week 17 | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[k8s122-calendar]: https://bit.ly/k8s-release-cal +[Internal Contact Info]: TBD +[Retrospective Document]: http://bit.ly/k8s122-retro + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Thaw]: ../release_phases.md#thaw +[Test Freeze]: ../release_phases.md#test-freeze + +[kubernetes-release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.22-blocking]: https://testgrid.k8s.io/sig-release-1.22-blocking#Summary + +[exception requests]: ../EXCEPTIONS.md +[release phases document]: ../release_phases.md diff --git a/releases/release-1.22/exceptions.yaml b/releases/release-1.22/exceptions.yaml index 926f3341d2e..d2264323190 100644 --- a/releases/release-1.22/exceptions.yaml +++ b/releases/release-1.22/exceptions.yaml @@ -1,165 +1,165 @@ -# Exceptions requests in 1.22 -# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release -# Release Team Lead: Savitha Raghunathan ([@savitharaghunathan](https://github.com/savitharaghunathan)) -# Release Team Shadows: Anna Jung ([@annajung](https://github.com/anajung)) -# / Derrik Campau ([@erismaster](https://github.com/erismaster)) -# / Divya Mohan ([@divia-mohan0209](https://github.com/divia-mohan0209)) -# / Kirsten Garrison ([@kikisdeliveryservice](https://github.com/kikisdeliveryservice)) - -# Enhancements Freeze Exceptions requested in 1.22 -- name: "Volume Populators" - issue: 1495 - date_requested: 2021-05-14 - date_reviewed: 2021-05-14 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/bQvLB1youRg" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2742" - status: "approved" - -- name: "A Single Scoring Plugin for Node Resources" - issue: 2458 - date_requested: 2021-05-14 - date_reviewed: 2021-05-14 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/HGpHwSxPEX0" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2741" - status: "approved" - -- name: "kubectl Commands in Headers" - issue: 859 - date_requested: 2021-05-14 - date_reviewed: 2021-05-17 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/77-RzG3rcko" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2720" - - "https://github.com/kubernetes/enhancements/pull/2747" - status: "approved" - -- name: "Service Internal Traffic Policy" - issue: 2086 - date_requested: 2021-05-17 - date_reviewed: 2021-05-18 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/PTRqQTorb7c" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2733" - status: "approved" - -- name: "Kubelet-in-UserNS" - issue: 2033 - date_requested: 2021-05-18 - date_reviewed: 2021-05-21 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/eggXiBwlzw8" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/1371" - status: "approved" - -- name: "Prefer Nominated Node" - issue: 1923 - date_requested: 2021-05-25 - date_reviewed: 2021-05-25 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/jWgSnHeAf2k" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2764" - status: "approved" - -- name: "Ensure Secret Pulled Images" - issue: 2535 - date_requested: 2021-05-19 - date_reviewed: 2021-05-26 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/8uyqgU7TWoo" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/1608" - status: "denied" - -- name: "CronJobs" - issue: 19 - date_requested: 2021-06-03 - date_reviewed: 2021-06-04 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/LejSpoeCiWg" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/102529" - status: "approved" - -- name: "CSR Duration" - issue: 2784 - date_requested: 2021-06-17 - date_reviewed: 2021-06-22 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/UZUQAIfizkY" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2788" - status: "approved" - -# Code Freeze Exceptions requested in 1.22 -- name: "kube-scheduler Component Config" - issue: 785 - date_requested: 2021-07-08 - date_reviewed: 2021-07-08 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/2Zv7SZf-urE" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/99597" - - "https://github.com/kubernetes/kubernetes/pull/101822" - status: "approved" - -- name: "Pod Priority Based Node Graceful Shutdown" - issue: 2712 - date_requested: 2021-07-09 - date_reviewed: 2021-07-09 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/7hJL6IHQsYQ" - status: "denied" - -- name: "add gRPC prove to Pod.Spec.Container.{Liveness,Readiness,Startup}Probe" - issue: 2727 - date_requested: 2021-07-09 - date_reviewed: 2021-07-09 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/plpXrDCEMQY" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/102162" - status: "denied" - -- name: "cAdvisor-less, CRI-full Container and Pod stats" - issue: 2371 - date_requested: 2021-07-09 - date_reviewed: 2021-07-09 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/62L_g7_6djk" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/102789" - - "https://github.com/kubernetes/kubernetes/pull/103095" - status: "denied" - -- name: "Configurable Security Context in Ephemeral Containers" - issue: 277 - date_requested: 2021-07-09 - date_reviewed: 2021-07-09 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/1A49p2cGl_4" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/99023" - status: "approved" - -- name: "API Server Tracing" - issue: 647 - date_requested: 2021-07-09 - date_reviewed: 2021-07-12 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/MR1fdVZPNN8" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/103601" - - "https://github.com/kubernetes/kubernetes/pull/103234" - status: "approved" - -- name: "MaxUnavailable for StatefulSet" - issue: 961 - date_requested: 2021-07-09 - date_reviewed: 2021-07-12 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/Sht6SZxWf6s" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/82162" - status: "denied" - -- name: "Add Configurable Grace Period to Probes" - issue: 2238 - date_requested: 2021-07-09 - date_reviewed: 2021-07-13 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/2ddU0ur6NaU" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/103168" - - "https://github.com/kubernetes/kubernetes/pull/103245" - status: "approved" +# Exceptions requests in 1.22 +# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release +# Release Team Lead: Savitha Raghunathan ([@savitharaghunathan](https://github.com/savitharaghunathan)) +# Release Team Shadows: Anna Jung ([@annajung](https://github.com/anajung)) +# / Derrik Campau ([@erismaster](https://github.com/erismaster)) +# / Divya Mohan ([@divia-mohan0209](https://github.com/divia-mohan0209)) +# / Kirsten Garrison ([@kikisdeliveryservice](https://github.com/kikisdeliveryservice)) + +# Enhancements Freeze Exceptions requested in 1.22 +- name: "Volume Populators" + issue: 1495 + date_requested: 2021-05-14 + date_reviewed: 2021-05-14 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/bQvLB1youRg" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2742" + status: "approved" + +- name: "A Single Scoring Plugin for Node Resources" + issue: 2458 + date_requested: 2021-05-14 + date_reviewed: 2021-05-14 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/HGpHwSxPEX0" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2741" + status: "approved" + +- name: "kubectl Commands in Headers" + issue: 859 + date_requested: 2021-05-14 + date_reviewed: 2021-05-17 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/77-RzG3rcko" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2720" + - "https://github.com/kubernetes/enhancements/pull/2747" + status: "approved" + +- name: "Service Internal Traffic Policy" + issue: 2086 + date_requested: 2021-05-17 + date_reviewed: 2021-05-18 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/PTRqQTorb7c" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2733" + status: "approved" + +- name: "Kubelet-in-UserNS" + issue: 2033 + date_requested: 2021-05-18 + date_reviewed: 2021-05-21 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/eggXiBwlzw8" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/1371" + status: "approved" + +- name: "Prefer Nominated Node" + issue: 1923 + date_requested: 2021-05-25 + date_reviewed: 2021-05-25 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/jWgSnHeAf2k" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2764" + status: "approved" + +- name: "Ensure Secret Pulled Images" + issue: 2535 + date_requested: 2021-05-19 + date_reviewed: 2021-05-26 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/8uyqgU7TWoo" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/1608" + status: "denied" + +- name: "CronJobs" + issue: 19 + date_requested: 2021-06-03 + date_reviewed: 2021-06-04 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/LejSpoeCiWg" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/102529" + status: "approved" + +- name: "CSR Duration" + issue: 2784 + date_requested: 2021-06-17 + date_reviewed: 2021-06-22 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/UZUQAIfizkY" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2788" + status: "approved" + +# Code Freeze Exceptions requested in 1.22 +- name: "kube-scheduler Component Config" + issue: 785 + date_requested: 2021-07-08 + date_reviewed: 2021-07-08 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/2Zv7SZf-urE" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/99597" + - "https://github.com/kubernetes/kubernetes/pull/101822" + status: "approved" + +- name: "Pod Priority Based Node Graceful Shutdown" + issue: 2712 + date_requested: 2021-07-09 + date_reviewed: 2021-07-09 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/7hJL6IHQsYQ" + status: "denied" + +- name: "add gRPC prove to Pod.Spec.Container.{Liveness,Readiness,Startup}Probe" + issue: 2727 + date_requested: 2021-07-09 + date_reviewed: 2021-07-09 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/plpXrDCEMQY" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/102162" + status: "denied" + +- name: "cAdvisor-less, CRI-full Container and Pod stats" + issue: 2371 + date_requested: 2021-07-09 + date_reviewed: 2021-07-09 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/62L_g7_6djk" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/102789" + - "https://github.com/kubernetes/kubernetes/pull/103095" + status: "denied" + +- name: "Configurable Security Context in Ephemeral Containers" + issue: 277 + date_requested: 2021-07-09 + date_reviewed: 2021-07-09 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/1A49p2cGl_4" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/99023" + status: "approved" + +- name: "API Server Tracing" + issue: 647 + date_requested: 2021-07-09 + date_reviewed: 2021-07-12 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/MR1fdVZPNN8" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/103601" + - "https://github.com/kubernetes/kubernetes/pull/103234" + status: "approved" + +- name: "MaxUnavailable for StatefulSet" + issue: 961 + date_requested: 2021-07-09 + date_reviewed: 2021-07-12 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/Sht6SZxWf6s" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/82162" + status: "denied" + +- name: "Add Configurable Grace Period to Probes" + issue: 2238 + date_requested: 2021-07-09 + date_reviewed: 2021-07-13 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/2ddU0ur6NaU" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/103168" + - "https://github.com/kubernetes/kubernetes/pull/103245" + status: "approved" diff --git a/releases/release-1.22/release-notes/major-themes.md b/releases/release-1.22/release-notes/major-themes.md index 466ec5f47c7..a2f58d2512c 100644 --- a/releases/release-1.22/release-notes/major-themes.md +++ b/releases/release-1.22/release-notes/major-themes.md @@ -1,70 +1,70 @@ -## What's New (Major Themes) - -### Removal of several beta Kubernetes APIs - -A number of APIs are no longer serving specific Beta versions in favour of the GA version of those APIs. All existing objects can be interacted with via general availability APIs. This removal includes beta versions of `ValidatingWebhookConfiguration`, `MutatingWebhookConfiguration`, `CustomResourceDefinition`, `APIService`, `TokenReview`, `SubjectAccessReview`, `CertificateSigningRequest`, `Lease`, `Ingress`, and `IngressClass` APIs. For the full list check out [Deprecated API Migration Guide](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-22) and the blog post [Kubernetes API and Feature Removals In 1.22: Here’s What You Need To Know](https://blog.k8s.io/2021/07/14/upcoming-changes-in-kubernetes-1-22/). - -### Kubernetes release cadence change - -We all have to adapt to change in our lives, and especially so in the past year. The Kubernetes release team was also affected from the COVID-19 pandemic and has listened to its user base regarding the number of releases in a calendar year. From April 23, 2021 it was made official that Kubernetes release cadence has reduced from 4 releases per year to 3 releases per year. - -You can read more in the official blog post [Kubernetes Release Cadence Change: Here’s What You Need To Know](https://blog.k8s.io/2021/07/20/new-kubernetes-release-cadence/). - -### External credential providers - -Kubernetes client [credential plugins](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins) have been in beta since 1.11, a few eons ago. With the release of Kubernetes 1.22, this feature set graduates to stable. The GA feature set includes improved support for plugins that provide interactive login flows. -This release also contains a number of bug fixes to the feature set. Aspiring plugin authors can look at [sample-exec-plugin](https://github.com/ankeesler/sample-exec-plugin) as a way to get started. - -Related to this topic, the in-tree Azure and GCP authentication plugins have been [deprecated](https://github.com/kubernetes/kubernetes/pull/102181) in favor of out-of-tree implementations. - -### Server-side Apply graduates to GA - -Server-side Apply is a new object merge algorithm, as well as tracking of field ownership, running on the Kubernetes API server. Server-side Apply helps users and controllers manage their resources via declarative configurations. It allows them to create and/or modify their objects declaratively, simply by sending their fully specified intent. After being in beta for a couple releases, [Server-side Apply](https://kubernetes.io/docs/reference/using-api/server-side-apply/) is now generally available. - -### Cluster Storage Interface graduations - -CSI support for Windows nodes moves to GA in the 1.22 release. In Kubernetes v1.22, Windows privileged containers are only an alpha feature. To allow using CSI storage on Windows nodes, [CSIProxy](https://github.com/kubernetes-csi/csi-proxy) enables CSI node plugins to be deployed as unprivileged pods, using the proxy to perform privileged storage operations on the node. - -Another feature moving to GA in v1.22 is CSI Service Account Token support. This feature allows CSI drivers to use pods' [bound service account tokens](https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/#bound-service-account-token-volume) instead of a more privileged identity. It also provides control over to re-publishing these volumes, so that short-lived tokens can be refreshed. - - -### SIG Windows development tools - -To grow the developer community, SIG Windows released multiple [tools](https://github.com/kubernetes-sigs/sig-windows-dev-tools/). The new tools support multiple CNI providers (Antrea, Calico), can run on multiple platforms (any vagrant compatible provider, such as Hyper-V, VirtualBox, or vSphere). -There is also a new way to run bleeding edge Windows features from scratch by compiling the windows kubelet and kube-proxy, then using them along with daily builds of other Kubernetes components. - -### Deploy a more secure control plane with kubeadm - -A new alpha feature allows running the kubeadm control plane components as non-root users. This is a long requested security measure in kubeadm. To try it you must enable the kubeadm-specific `RootlessControlPlane` feature gate. When you deploy a cluster using this alpha feature, your control plane runs with lower privileges. - -A new [v1beta3 configuration API](https://github.com/kubernetes/kubeadm/issues/1796). It [iterates over v1beta2](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3) by adding some long requested features and deprecating some existing ones. The `V1beta3` is now the preferred API version; the `v1beta2` API also remains available and is not yet deprecated. - -### etcd moves to version 3.5.0 - -Kubernetes' default backend storage, etcd, has a new release 3.5.0 and the community embraced it. The new release comes with improvements to the Security, performance, monitoring and developer experience. There are numerous bug fixes to lease objects causing memory leaks, and compact operation causing deadlocks and more. A couple of new features are also introduced like the migration to structured logging and build in log rotation. The release comes with a detailed future roadmap to implement a solution to traffic overload. A full and detailed list of changes can be read in the [3.5.0 release announcement](https://etcd.io/blog/2021/announcing-etcd-3.5/). - -### Kubernetes Node system swap support - -Every system administrator or Kubernetes user has been in the same boat regarding setting up and using Kubernetes: disable swap space. With the release of Kubernetes 1.22, *alpha* support is available to run nodes with swap memory. This change lets administrators opt in to configuring swap on Linux nodes, treating a portion of block storage as additional virtual memory. - -### Cluster-wide seccomp defaults - -A new alpha feature gate SeccompDefault has been added to the kubelet, together with a corresponding command line flag `--seccomp-default` and kubelet configuration. If both are enabled, then the kubelet's behavior changes for pods that don't explicitly set a seccomp profile. -With cluster-wide seccomp defaults, the kubelet uses the `RuntimeDefault` seccomp profile by default, rather than than `Unconfined`. This allows enhancing the default cluster wide workload security of the Kubernetes deployment. Security administrators will now sleep better knowing there is some security by default for the workloads. - -To learn more about the feature, please refer to the official [seccomp tutorial](https://kubernetes.io/docs/tutorials/clusters/seccomp/#enable-the-use-of-runtimedefault-as-the-default-seccomp-profile-for-all-workloads). - -### Quality of Service for memory resources - -Originally, Kubernetes used the v1 cgroups API. With that design, the QoS class for a pod only applied to CPU resources (such as `cpu_shares`). The Kubernetes cgroup manager uses `memory.limit_in_bytes` in v1 cgroups to limit the memory capacity for a container, and uses `oom_scores` to recommend an order for killing container processes if an out-of-memory event occurs. This implementation has shortcomings: for `Guaranteed` pods, memory can not be fully reserved, and the page cache is at risk of being recycled. For `Burstable` pods, overcommitting memory (setting `request` less than `limit` ) could increase the risk of a container being killed when the Linux kernel detects an out of memory condition. - -As an alpha feature, Kubernetes v1.22 can use the cgroups v2 API to control memory allocation and isolation. This feature is designed to improve workload and node availability when there is contention for memory resources. - -### API changes and improvements for ephemeral containers - -The API used to create [Ephemeral Containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) changed in 1.22. The Ephemeral Containers feature is alpha and disabled by default, and the new API does not work with clients that attempt to use the old API. - -For stable features, the `kubectl` tool follows the Kubernetes [version skew policy](https://kubernetes.io/releases/version-skew-policy/); -however, kubectl v1.21 and older do not support the new API for ephemeral containers. -Users who create ephemeral containers using `kubectl debug` should note that kubectl version 1.22 will attempt to fall back to the old API; older versions of kubectl will not work with cluster versions of 1.22 or later. Please update kubectl to 1.22 if you wish to use `kubectl debug` with a mix of cluster versions. - +## What's New (Major Themes) + +### Removal of several beta Kubernetes APIs + +A number of APIs are no longer serving specific Beta versions in favour of the GA version of those APIs. All existing objects can be interacted with via general availability APIs. This removal includes beta versions of `ValidatingWebhookConfiguration`, `MutatingWebhookConfiguration`, `CustomResourceDefinition`, `APIService`, `TokenReview`, `SubjectAccessReview`, `CertificateSigningRequest`, `Lease`, `Ingress`, and `IngressClass` APIs. For the full list check out [Deprecated API Migration Guide](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-22) and the blog post [Kubernetes API and Feature Removals In 1.22: Here’s What You Need To Know](https://blog.k8s.io/2021/07/14/upcoming-changes-in-kubernetes-1-22/). + +### Kubernetes release cadence change + +We all have to adapt to change in our lives, and especially so in the past year. The Kubernetes release team was also affected from the COVID-19 pandemic and has listened to its user base regarding the number of releases in a calendar year. From April 23, 2021 it was made official that Kubernetes release cadence has reduced from 4 releases per year to 3 releases per year. + +You can read more in the official blog post [Kubernetes Release Cadence Change: Here’s What You Need To Know](https://blog.k8s.io/2021/07/20/new-kubernetes-release-cadence/). + +### External credential providers + +Kubernetes client [credential plugins](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins) have been in beta since 1.11, a few eons ago. With the release of Kubernetes 1.22, this feature set graduates to stable. The GA feature set includes improved support for plugins that provide interactive login flows. +This release also contains a number of bug fixes to the feature set. Aspiring plugin authors can look at [sample-exec-plugin](https://github.com/ankeesler/sample-exec-plugin) as a way to get started. + +Related to this topic, the in-tree Azure and GCP authentication plugins have been [deprecated](https://github.com/kubernetes/kubernetes/pull/102181) in favor of out-of-tree implementations. + +### Server-side Apply graduates to GA + +Server-side Apply is a new object merge algorithm, as well as tracking of field ownership, running on the Kubernetes API server. Server-side Apply helps users and controllers manage their resources via declarative configurations. It allows them to create and/or modify their objects declaratively, simply by sending their fully specified intent. After being in beta for a couple releases, [Server-side Apply](https://kubernetes.io/docs/reference/using-api/server-side-apply/) is now generally available. + +### Cluster Storage Interface graduations + +CSI support for Windows nodes moves to GA in the 1.22 release. In Kubernetes v1.22, Windows privileged containers are only an alpha feature. To allow using CSI storage on Windows nodes, [CSIProxy](https://github.com/kubernetes-csi/csi-proxy) enables CSI node plugins to be deployed as unprivileged pods, using the proxy to perform privileged storage operations on the node. + +Another feature moving to GA in v1.22 is CSI Service Account Token support. This feature allows CSI drivers to use pods' [bound service account tokens](https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/#bound-service-account-token-volume) instead of a more privileged identity. It also provides control over to re-publishing these volumes, so that short-lived tokens can be refreshed. + + +### SIG Windows development tools + +To grow the developer community, SIG Windows released multiple [tools](https://github.com/kubernetes-sigs/sig-windows-dev-tools/). The new tools support multiple CNI providers (Antrea, Calico), can run on multiple platforms (any vagrant compatible provider, such as Hyper-V, VirtualBox, or vSphere). +There is also a new way to run bleeding edge Windows features from scratch by compiling the windows kubelet and kube-proxy, then using them along with daily builds of other Kubernetes components. + +### Deploy a more secure control plane with kubeadm + +A new alpha feature allows running the kubeadm control plane components as non-root users. This is a long requested security measure in kubeadm. To try it you must enable the kubeadm-specific `RootlessControlPlane` feature gate. When you deploy a cluster using this alpha feature, your control plane runs with lower privileges. + +A new [v1beta3 configuration API](https://github.com/kubernetes/kubeadm/issues/1796). It [iterates over v1beta2](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3) by adding some long requested features and deprecating some existing ones. The `V1beta3` is now the preferred API version; the `v1beta2` API also remains available and is not yet deprecated. + +### etcd moves to version 3.5.0 + +Kubernetes' default backend storage, etcd, has a new release 3.5.0 and the community embraced it. The new release comes with improvements to the Security, performance, monitoring and developer experience. There are numerous bug fixes to lease objects causing memory leaks, and compact operation causing deadlocks and more. A couple of new features are also introduced like the migration to structured logging and build in log rotation. The release comes with a detailed future roadmap to implement a solution to traffic overload. A full and detailed list of changes can be read in the [3.5.0 release announcement](https://etcd.io/blog/2021/announcing-etcd-3.5/). + +### Kubernetes Node system swap support + +Every system administrator or Kubernetes user has been in the same boat regarding setting up and using Kubernetes: disable swap space. With the release of Kubernetes 1.22, *alpha* support is available to run nodes with swap memory. This change lets administrators opt in to configuring swap on Linux nodes, treating a portion of block storage as additional virtual memory. + +### Cluster-wide seccomp defaults + +A new alpha feature gate SeccompDefault has been added to the kubelet, together with a corresponding command line flag `--seccomp-default` and kubelet configuration. If both are enabled, then the kubelet's behavior changes for pods that don't explicitly set a seccomp profile. +With cluster-wide seccomp defaults, the kubelet uses the `RuntimeDefault` seccomp profile by default, rather than than `Unconfined`. This allows enhancing the default cluster wide workload security of the Kubernetes deployment. Security administrators will now sleep better knowing there is some security by default for the workloads. + +To learn more about the feature, please refer to the official [seccomp tutorial](https://kubernetes.io/docs/tutorials/clusters/seccomp/#enable-the-use-of-runtimedefault-as-the-default-seccomp-profile-for-all-workloads). + +### Quality of Service for memory resources + +Originally, Kubernetes used the v1 cgroups API. With that design, the QoS class for a pod only applied to CPU resources (such as `cpu_shares`). The Kubernetes cgroup manager uses `memory.limit_in_bytes` in v1 cgroups to limit the memory capacity for a container, and uses `oom_scores` to recommend an order for killing container processes if an out-of-memory event occurs. This implementation has shortcomings: for `Guaranteed` pods, memory can not be fully reserved, and the page cache is at risk of being recycled. For `Burstable` pods, overcommitting memory (setting `request` less than `limit` ) could increase the risk of a container being killed when the Linux kernel detects an out of memory condition. + +As an alpha feature, Kubernetes v1.22 can use the cgroups v2 API to control memory allocation and isolation. This feature is designed to improve workload and node availability when there is contention for memory resources. + +### API changes and improvements for ephemeral containers + +The API used to create [Ephemeral Containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) changed in 1.22. The Ephemeral Containers feature is alpha and disabled by default, and the new API does not work with clients that attempt to use the old API. + +For stable features, the `kubectl` tool follows the Kubernetes [version skew policy](https://kubernetes.io/releases/version-skew-policy/); +however, kubectl v1.21 and older do not support the new API for ephemeral containers. +Users who create ephemeral containers using `kubectl debug` should note that kubectl version 1.22 will attempt to fall back to the old API; older versions of kubectl will not work with cluster versions of 1.22 or later. Please update kubectl to 1.22 if you wish to use `kubectl debug` with a mix of cluster versions. + diff --git a/releases/release-1.22/release-notes/maps/pr-100085-map.yaml b/releases/release-1.22/release-notes/maps/pr-100085-map.yaml index 2b834157930..5870911cbfb 100644 --- a/releases/release-1.22/release-notes/maps/pr-100085-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100085-map.yaml @@ -1,3 +1,3 @@ -pr: 100085 -releasenote: - text: The `DynamicFakeClient` now exposes its tracker via a `Tracker()` function. +pr: 100085 +releasenote: + text: The `DynamicFakeClient` now exposes its tracker via a `Tracker()` function. diff --git a/releases/release-1.22/release-notes/maps/pr-100100-map.yaml b/releases/release-1.22/release-notes/maps/pr-100100-map.yaml index 2ad4a9a40cd..f84edd22cc4 100644 --- a/releases/release-1.22/release-notes/maps/pr-100100-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100100-map.yaml @@ -1,3 +1,3 @@ -pr: 100100 -releasenote: - text: Fix rounding of volume storage requests. +pr: 100100 +releasenote: + text: Fix rounding of volume storage requests. diff --git a/releases/release-1.22/release-notes/maps/pr-100101-map.yaml b/releases/release-1.22/release-notes/maps/pr-100101-map.yaml index 87947cf4716..69d4e39bfaf 100644 --- a/releases/release-1.22/release-notes/maps/pr-100101-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100101-map.yaml @@ -1,3 +1,3 @@ -pr: 100101 -releasenote: - text: Graceful termination will now be honored when deleting a collection of pods. +pr: 100101 +releasenote: + text: Graceful termination will now be honored when deleting a collection of pods. diff --git a/releases/release-1.22/release-notes/maps/pr-100136-map.yaml b/releases/release-1.22/release-notes/maps/pr-100136-map.yaml index c115d6c2494..beeff1fd510 100644 --- a/releases/release-1.22/release-notes/maps/pr-100136-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100136-map.yaml @@ -1,5 +1,5 @@ -pr: 100136 -releasenote: - text: |- - Introduce a feature gate `DisableCloudProviders` allowing to disable cloud-provider initialization in KAPI, KCM and kubelet. - `DisableCloudProviders` FeatureGate is currently in Alpha, which means is currently disabled by default. Once the FeatureGate moves to beta, in-tree cloud providers would be disabled by default, and a user won't be able to specify `--cloud-provider=<aws|openstack|azure|gcp|vsphere>` anymore to any of KCM, KAPI or kubelet. Only a '--cloud-provider=external' would be allowed. CCM would have to run out-of-tree with CSI. +pr: 100136 +releasenote: + text: |- + Introduce a feature gate `DisableCloudProviders` allowing to disable cloud-provider initialization in KAPI, KCM and kubelet. + `DisableCloudProviders` FeatureGate is currently in Alpha, which means is currently disabled by default. Once the FeatureGate moves to beta, in-tree cloud providers would be disabled by default, and a user won't be able to specify `--cloud-provider=<aws|openstack|azure|gcp|vsphere>` anymore to any of KCM, KAPI or kubelet. Only a '--cloud-provider=external' would be allowed. CCM would have to run out-of-tree with CSI. diff --git a/releases/release-1.22/release-notes/maps/pr-100139-map.yaml b/releases/release-1.22/release-notes/maps/pr-100139-map.yaml index 59f6c0c8681..6159928d22d 100644 --- a/releases/release-1.22/release-notes/maps/pr-100139-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100139-map.yaml @@ -1,4 +1,4 @@ -pr: 100139 -releasenote: - text: The feature gate `SSA` graduated to GA in v1.22 and therefore is unconditionally - enabled. +pr: 100139 +releasenote: + text: The feature gate `SSA` graduated to GA in v1.22 and therefore is unconditionally + enabled. diff --git a/releases/release-1.22/release-notes/maps/pr-100141-map.yaml b/releases/release-1.22/release-notes/maps/pr-100141-map.yaml index ca5469fdc95..aed54da99df 100644 --- a/releases/release-1.22/release-notes/maps/pr-100141-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100141-map.yaml @@ -1,4 +1,4 @@ -pr: 100141 -releasenote: - text: Generated OpenAPI now correctly specifies 201 as a possible response code - for PATCH operations. +pr: 100141 +releasenote: + text: Generated OpenAPI now correctly specifies 201 as a possible response code + for PATCH operations. diff --git a/releases/release-1.22/release-notes/maps/pr-100142-map.yaml b/releases/release-1.22/release-notes/maps/pr-100142-map.yaml index f7e3adb5a32..7242bb8f669 100644 --- a/releases/release-1.22/release-notes/maps/pr-100142-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100142-map.yaml @@ -1,3 +1,3 @@ -pr: 100142 -releasenote: +pr: 100142 +releasenote: text: "kubectl: add `LAST RESTART` column to `kubectl get pods` output." \ No newline at end of file diff --git a/releases/release-1.22/release-notes/maps/pr-100148-map.yaml b/releases/release-1.22/release-notes/maps/pr-100148-map.yaml index b36bc32913b..dc54aa14746 100644 --- a/releases/release-1.22/release-notes/maps/pr-100148-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100148-map.yaml @@ -1,5 +1,5 @@ -pr: 100148 -releasenote: - text: The new flag `--chunk-size=SIZE` for `kubectl drain` has been promoted to beta, and enabled by - default. This flag may be used to alter the number of items or disable this feature - when `0` is passed. +pr: 100148 +releasenote: + text: The new flag `--chunk-size=SIZE` for `kubectl drain` has been promoted to beta, and enabled by + default. This flag may be used to alter the number of items or disable this feature + when `0` is passed. diff --git a/releases/release-1.22/release-notes/maps/pr-100183-map.yaml b/releases/release-1.22/release-notes/maps/pr-100183-map.yaml index 871f1b32606..06173e61dac 100644 --- a/releases/release-1.22/release-notes/maps/pr-100183-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100183-map.yaml @@ -1,3 +1,3 @@ -pr: 100183 -releasenote: - text: Fixed starting new pods after previous pod timed out unmounting its volumes. +pr: 100183 +releasenote: + text: Fixed starting new pods after previous pod timed out unmounting its volumes. diff --git a/releases/release-1.22/release-notes/maps/pr-100200-map.yaml b/releases/release-1.22/release-notes/maps/pr-100200-map.yaml index ad209e4ad2b..a0a9516da71 100644 --- a/releases/release-1.22/release-notes/maps/pr-100200-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100200-map.yaml @@ -1,4 +1,4 @@ -pr: 100200 -releasenote: - text: Ensures `ExecProbeTimeout=false` kubelet feature gate with dockershim is taken - into account, when the exec probe takes longer than `timeoutSeconds` configuration. +pr: 100200 +releasenote: + text: Ensures `ExecProbeTimeout=false` kubelet feature gate with dockershim is taken + into account, when the exec probe takes longer than `timeoutSeconds` configuration. diff --git a/releases/release-1.22/release-notes/maps/pr-100206-map.yaml b/releases/release-1.22/release-notes/maps/pr-100206-map.yaml index 95aaec3b49c..196b1ac6290 100644 --- a/releases/release-1.22/release-notes/maps/pr-100206-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100206-map.yaml @@ -1,3 +1,3 @@ -pr: 100206 -releasenote: - text: Fixes `kubectl drain --dry-run=server`. +pr: 100206 +releasenote: + text: Fixes `kubectl drain --dry-run=server`. diff --git a/releases/release-1.22/release-notes/maps/pr-100234-map.yaml b/releases/release-1.22/release-notes/maps/pr-100234-map.yaml index 4e45c1f7a85..1c171b815cd 100644 --- a/releases/release-1.22/release-notes/maps/pr-100234-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100234-map.yaml @@ -1,4 +1,4 @@ -pr: 100234 -releasenote: - text: 'kubeadm: Set the `seccompProfile` to `runtime/default` in the `PodSecurityContext` - of the control-plane components that run as static Pods.' +pr: 100234 +releasenote: + text: 'kubeadm: Set the `seccompProfile` to `runtime/default` in the `PodSecurityContext` + of the control-plane components that run as static Pods.' diff --git a/releases/release-1.22/release-notes/maps/pr-100262-map.yaml b/releases/release-1.22/release-notes/maps/pr-100262-map.yaml index de50f90da53..85ae566c3f4 100644 --- a/releases/release-1.22/release-notes/maps/pr-100262-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100262-map.yaml @@ -1,3 +1,3 @@ -pr: 100262 -releasenote: - do_not_publish: true +pr: 100262 +releasenote: + do_not_publish: true diff --git a/releases/release-1.22/release-notes/maps/pr-100267-map.yaml b/releases/release-1.22/release-notes/maps/pr-100267-map.yaml index b156e297496..d5c4c0d2e80 100644 --- a/releases/release-1.22/release-notes/maps/pr-100267-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100267-map.yaml @@ -1,3 +1,3 @@ -pr: 100267 -releasenote: - text: Adds two kubemark flags, `--max-pods` and `--extended-resources`. +pr: 100267 +releasenote: + text: Adds two kubemark flags, `--max-pods` and `--extended-resources`. diff --git a/releases/release-1.22/release-notes/maps/pr-100292-map.yaml b/releases/release-1.22/release-notes/maps/pr-100292-map.yaml index 4f2a8908bf3..ab7eb286f12 100644 --- a/releases/release-1.22/release-notes/maps/pr-100292-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100292-map.yaml @@ -1,6 +1,6 @@ -pr: 100292 -releasenote: - text: Updated pause image to version 3.5, which now runs per default as pseudo user - and group `65535:65535`. This does not have any effect on remote container runtimes - like CRI-O and containerd, which setup the pod sandbox user and group on their - own. +pr: 100292 +releasenote: + text: Updated pause image to version 3.5, which now runs per default as pseudo user + and group `65535:65535`. This does not have any effect on remote container runtimes + like CRI-O and containerd, which setup the pod sandbox user and group on their + own. diff --git a/releases/release-1.22/release-notes/maps/pr-100339-map.yaml b/releases/release-1.22/release-notes/maps/pr-100339-map.yaml index 61d0d627b32..4091cd5083d 100644 --- a/releases/release-1.22/release-notes/maps/pr-100339-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100339-map.yaml @@ -1,4 +1,4 @@ -pr: 100339 -releasenote: - text: Adds metrics for the delegated authorizer used by extension APIs that delegate - authorization logic to the Kube API server. +pr: 100339 +releasenote: + text: Adds metrics for the delegated authorizer used by extension APIs that delegate + authorization logic to the Kube API server. diff --git a/releases/release-1.22/release-notes/maps/pr-100350-map.yaml b/releases/release-1.22/release-notes/maps/pr-100350-map.yaml index edcd36172f7..97da2039103 100644 --- a/releases/release-1.22/release-notes/maps/pr-100350-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100350-map.yaml @@ -1,5 +1,5 @@ -pr: 100350 -releasenote: - text: 'For `kubeadm`: support for custom imagetags for etcd images which contain - build metadata, when imagetags are in the form of version_metadata. For instance, - if the etcd version is v3.4.13+patch.0, the supported imagetag would be v3.4.13_patch.0' +pr: 100350 +releasenote: + text: 'For `kubeadm`: support for custom imagetags for etcd images which contain + build metadata, when imagetags are in the form of version_metadata. For instance, + if the etcd version is v3.4.13+patch.0, the supported imagetag would be v3.4.13_patch.0' diff --git a/releases/release-1.22/release-notes/maps/pr-100369-map.yaml b/releases/release-1.22/release-notes/maps/pr-100369-map.yaml index efcf0c2d42a..c66198af4ed 100644 --- a/releases/release-1.22/release-notes/maps/pr-100369-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100369-map.yaml @@ -1,3 +1,3 @@ -pr: 100369 -releasenote: - text: After DBus restarts, make `GracefulNodeShutdown` work again +pr: 100369 +releasenote: + text: After DBus restarts, make `GracefulNodeShutdown` work again diff --git a/releases/release-1.22/release-notes/maps/pr-100404-map.yaml b/releases/release-1.22/release-notes/maps/pr-100404-map.yaml index 7525cad25c7..1e8ae5d430f 100644 --- a/releases/release-1.22/release-notes/maps/pr-100404-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100404-map.yaml @@ -1,3 +1,3 @@ -pr: 100404 -releasenote: - text: Limit vSphere volume name to 63 characters long. +pr: 100404 +releasenote: + text: Limit vSphere volume name to 63 characters long. diff --git a/releases/release-1.22/release-notes/maps/pr-100412-map.yaml b/releases/release-1.22/release-notes/maps/pr-100412-map.yaml index d133614b290..c9eb92b94c2 100644 --- a/releases/release-1.22/release-notes/maps/pr-100412-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100412-map.yaml @@ -1,3 +1,3 @@ -pr: 100412 -releasenote: - text: The `ServiceLBNodePortControl` graduates to Beta and is enabled by default. +pr: 100412 +releasenote: + text: The `ServiceLBNodePortControl` graduates to Beta and is enabled by default. diff --git a/releases/release-1.22/release-notes/maps/pr-100435-map.yaml b/releases/release-1.22/release-notes/maps/pr-100435-map.yaml index b49b0b6c40c..9563da135fe 100644 --- a/releases/release-1.22/release-notes/maps/pr-100435-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100435-map.yaml @@ -1,4 +1,4 @@ -pr: 100435 -releasenote: - text: Support correct sorting for cpu, memory, storage, ephemeral-storage, hugepages, - and attachable-volumes. +pr: 100435 +releasenote: + text: Support correct sorting for cpu, memory, storage, ephemeral-storage, hugepages, + and attachable-volumes. diff --git a/releases/release-1.22/release-notes/maps/pr-100488-map.yaml b/releases/release-1.22/release-notes/maps/pr-100488-map.yaml index 29f60149d57..79ef2a079c6 100644 --- a/releases/release-1.22/release-notes/maps/pr-100488-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100488-map.yaml @@ -1,4 +1,4 @@ -pr: 100488 -releasenote: - text: The etcd client has been updated to 3.5.0; `github.com/golang/protobuf`, `google.golang.org/protobuf`, - and `google.golang.org/grpc` have been updated to current versions. +pr: 100488 +releasenote: + text: The etcd client has been updated to 3.5.0; `github.com/golang/protobuf`, `google.golang.org/protobuf`, + and `google.golang.org/grpc` have been updated to current versions. diff --git a/releases/release-1.22/release-notes/maps/pr-100500-map.yaml b/releases/release-1.22/release-notes/maps/pr-100500-map.yaml index 12398a58c30..0b607c72365 100644 --- a/releases/release-1.22/release-notes/maps/pr-100500-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100500-map.yaml @@ -1,3 +1,3 @@ -pr: 100500 -releasenote: - text: 'Fix: using NVMe AWS EBS volumes partitions.' +pr: 100500 +releasenote: + text: 'Fix: using NVMe AWS EBS volumes partitions.' diff --git a/releases/release-1.22/release-notes/maps/pr-100565-map.yaml b/releases/release-1.22/release-notes/maps/pr-100565-map.yaml index 6ce483155c6..1e535b31eff 100644 --- a/releases/release-1.22/release-notes/maps/pr-100565-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100565-map.yaml @@ -1,4 +1,4 @@ -pr: 100565 -releasenote: - text: Parsing of cpuset information now properly detects more invalid input such - as `1--3` or `10-6`. +pr: 100565 +releasenote: + text: Parsing of cpuset information now properly detects more invalid input such + as `1--3` or `10-6`. diff --git a/releases/release-1.22/release-notes/maps/pr-100568-map.yaml b/releases/release-1.22/release-notes/maps/pr-100568-map.yaml index a10f61753e5..20df081e44f 100644 --- a/releases/release-1.22/release-notes/maps/pr-100568-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100568-map.yaml @@ -1,3 +1,3 @@ -pr: 100568 -releasenote: - text: Added BinaryData description to `kubectl describe` command. +pr: 100568 +releasenote: + text: Added BinaryData description to `kubectl describe` command. diff --git a/releases/release-1.22/release-notes/maps/pr-100599-map.yaml b/releases/release-1.22/release-notes/maps/pr-100599-map.yaml index 4c978ecb91f..abb1fc654af 100644 --- a/releases/release-1.22/release-notes/maps/pr-100599-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100599-map.yaml @@ -1,3 +1,3 @@ -pr: 100599 -releasenote: - text: Fire an event when failing to open `NodePort`. +pr: 100599 +releasenote: + text: Fire an event when failing to open `NodePort`. diff --git a/releases/release-1.22/release-notes/maps/pr-100608-map.yaml b/releases/release-1.22/release-notes/maps/pr-100608-map.yaml index 7298faf8f2d..f088f29c7ab 100644 --- a/releases/release-1.22/release-notes/maps/pr-100608-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100608-map.yaml @@ -1,3 +1,3 @@ -pr: 100608 -releasenote: - text: Fix runtime container status for `PostStart` hook error. +pr: 100608 +releasenote: + text: Fix runtime container status for `PostStart` hook error. diff --git a/releases/release-1.22/release-notes/maps/pr-100612-map.yaml b/releases/release-1.22/release-notes/maps/pr-100612-map.yaml index 9062bf2f60e..c399867a319 100644 --- a/releases/release-1.22/release-notes/maps/pr-100612-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100612-map.yaml @@ -1,3 +1,3 @@ -pr: 100612 -releasenote: - text: 'Upgrading etcd: `kubeadm` upgrade etcd to 3.4.13-3' +pr: 100612 +releasenote: + text: 'Upgrading etcd: `kubeadm` upgrade etcd to 3.4.13-3' diff --git a/releases/release-1.22/release-notes/maps/pr-100635-map.yaml b/releases/release-1.22/release-notes/maps/pr-100635-map.yaml index 9b1c49b8617..ebb40f41721 100644 --- a/releases/release-1.22/release-notes/maps/pr-100635-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100635-map.yaml @@ -1,3 +1,3 @@ -pr: 100635 -releasenote: - text: Run etcd as non-root on GCE provider +pr: 100635 +releasenote: + text: Run etcd as non-root on GCE provider diff --git a/releases/release-1.22/release-notes/maps/pr-100638-map.yaml b/releases/release-1.22/release-notes/maps/pr-100638-map.yaml index 8ceed5315a2..6a2916d76c5 100644 --- a/releases/release-1.22/release-notes/maps/pr-100638-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100638-map.yaml @@ -1,3 +1,3 @@ -pr: 100638 -releasenote: - text: Fixes a data race issue in the priority and fairness API server filter. +pr: 100638 +releasenote: + text: Fixes a data race issue in the priority and fairness API server filter. diff --git a/releases/release-1.22/release-notes/maps/pr-100644-map.yaml b/releases/release-1.22/release-notes/maps/pr-100644-map.yaml index 327ac38a31d..53cd5361498 100644 --- a/releases/release-1.22/release-notes/maps/pr-100644-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100644-map.yaml @@ -1,4 +1,4 @@ -pr: 100644 -releasenote: - text: The kubeconfig is now exposed in `the kube-scheduler` framework handle. Out-of-tree - plugins can leverage that to build CRD informers easily. +pr: 100644 +releasenote: + text: The kubeconfig is now exposed in `the kube-scheduler` framework handle. Out-of-tree + plugins can leverage that to build CRD informers easily. diff --git a/releases/release-1.22/release-notes/maps/pr-100651-map.yaml b/releases/release-1.22/release-notes/maps/pr-100651-map.yaml index fc8780cc45d..45309f8e340 100644 --- a/releases/release-1.22/release-notes/maps/pr-100651-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100651-map.yaml @@ -1,4 +1,4 @@ -pr: 100651 -releasenote: - text: New feature gate `ExpandedDNSConfig` is now available. This feature allows - Kubernetes to have expanded DNS configuration. +pr: 100651 +releasenote: + text: New feature gate `ExpandedDNSConfig` is now available. This feature allows + Kubernetes to have expanded DNS configuration. diff --git a/releases/release-1.22/release-notes/maps/pr-100678-map.yaml b/releases/release-1.22/release-notes/maps/pr-100678-map.yaml index 46b1481ba36..ed523d73c65 100644 --- a/releases/release-1.22/release-notes/maps/pr-100678-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100678-map.yaml @@ -1,4 +1,4 @@ -pr: 100678 -releasenote: - text: Add a new Priority and Fairness rule that exempts all probes (`/readyz`, `/healthz`, - `/livez`) to prevent restarting of healthy `kube-apiserver` instance by kubelet. +pr: 100678 +releasenote: + text: Add a new Priority and Fairness rule that exempts all probes (`/readyz`, `/healthz`, + `/livez`) to prevent restarting of healthy `kube-apiserver` instance by kubelet. diff --git a/releases/release-1.22/release-notes/maps/pr-100684-map.yaml b/releases/release-1.22/release-notes/maps/pr-100684-map.yaml index 55f6249a787..205b536eb95 100644 --- a/releases/release-1.22/release-notes/maps/pr-100684-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100684-map.yaml @@ -1,4 +1,4 @@ -pr: 100684 -releasenote: - text: The `Server Side Apply` treats certain structs as atomic. Meaning the entire - selector field is managed by a single writer and updated together. +pr: 100684 +releasenote: + text: The `Server Side Apply` treats certain structs as atomic. Meaning the entire + selector field is managed by a single writer and updated together. diff --git a/releases/release-1.22/release-notes/maps/pr-100694-map.yaml b/releases/release-1.22/release-notes/maps/pr-100694-map.yaml index ce71639f2ca..38832132fd0 100644 --- a/releases/release-1.22/release-notes/maps/pr-100694-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100694-map.yaml @@ -1,4 +1,4 @@ -pr: 100694 -releasenote: - text: Applying fix for not deleting existing public IP when a service is deleted - in Azure. +pr: 100694 +releasenote: + text: Applying fix for not deleting existing public IP when a service is deleted + in Azure. diff --git a/releases/release-1.22/release-notes/maps/pr-100724-map.yaml b/releases/release-1.22/release-notes/maps/pr-100724-map.yaml index 85be7c09f23..8305e63966e 100644 --- a/releases/release-1.22/release-notes/maps/pr-100724-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100724-map.yaml @@ -1,4 +1,4 @@ -pr: 100724 -releasenote: - text: The `pod/eviction` subresource now accepts `policy/v1` eviction requests in - addition to `policy/v1beta1` eviction requests +pr: 100724 +releasenote: + text: The `pod/eviction` subresource now accepts `policy/v1` eviction requests in + addition to `policy/v1beta1` eviction requests diff --git a/releases/release-1.22/release-notes/maps/pr-100728-map.yaml b/releases/release-1.22/release-notes/maps/pr-100728-map.yaml index fb539678213..ec700d6a0f6 100644 --- a/releases/release-1.22/release-notes/maps/pr-100728-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100728-map.yaml @@ -1,4 +1,4 @@ -pr: 100728 -releasenote: - text: A value of `Auto` is now a valid for the `service.kubernetes.io/topology-aware-hints` - annotation. +pr: 100728 +releasenote: + text: A value of `Auto` is now a valid for the `service.kubernetes.io/topology-aware-hints` + annotation. diff --git a/releases/release-1.22/release-notes/maps/pr-100731-map.yaml b/releases/release-1.22/release-notes/maps/pr-100731-map.yaml index 520b5ff9a12..4e045ffe430 100644 --- a/releases/release-1.22/release-notes/maps/pr-100731-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100731-map.yaml @@ -1,3 +1,3 @@ -pr: 100731 -releasenote: - text: 'azurefile: Normalize share name to not include the capital letters' +pr: 100731 +releasenote: + text: 'azurefile: Normalize share name to not include the capital letters' diff --git a/releases/release-1.22/release-notes/maps/pr-100784-map.yaml b/releases/release-1.22/release-notes/maps/pr-100784-map.yaml index 9d721061a40..2343e09318c 100644 --- a/releases/release-1.22/release-notes/maps/pr-100784-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100784-map.yaml @@ -1,3 +1,3 @@ -pr: 100784 -releasenote: - text: Updates dependency `sigs.k8s.io/structured-merge-diff` to v4.1.1. +pr: 100784 +releasenote: + text: Updates dependency `sigs.k8s.io/structured-merge-diff` to v4.1.1. diff --git a/releases/release-1.22/release-notes/maps/pr-100842-map.yaml b/releases/release-1.22/release-notes/maps/pr-100842-map.yaml index 2890d0aedae..692bc936346 100644 --- a/releases/release-1.22/release-notes/maps/pr-100842-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100842-map.yaml @@ -1,3 +1,3 @@ -pr: 100842 -releasenote: +pr: 100842 +releasenote: text: Introduce `minReadySeconds` api to the `StatefulSets`. \ No newline at end of file diff --git a/releases/release-1.22/release-notes/maps/pr-100861-map.yaml b/releases/release-1.22/release-notes/maps/pr-100861-map.yaml index e4b4b08a7d4..bedee48fefa 100644 --- a/releases/release-1.22/release-notes/maps/pr-100861-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100861-map.yaml @@ -1,6 +1,6 @@ -pr: 100861 -releasenote: - text: 'Fix: Bug in `kube-proxy` latency metrics to calculate only the latency value - for the `Endpoints` that are created after it starts running. This is needed because - all the `Endpoints` objects are processed on restarts, independently when they - were.' +pr: 100861 +releasenote: + text: 'Fix: Bug in `kube-proxy` latency metrics to calculate only the latency value + for the `Endpoints` that are created after it starts running. This is needed because + all the `Endpoints` objects are processed on restarts, independently when they + were.' diff --git a/releases/release-1.22/release-notes/maps/pr-100907-map.yaml b/releases/release-1.22/release-notes/maps/pr-100907-map.yaml index cbd1578ade1..1adfad018cb 100644 --- a/releases/release-1.22/release-notes/maps/pr-100907-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100907-map.yaml @@ -1,4 +1,4 @@ -pr: 100907 -releasenote: - text: 'For `kubeadm`: add `--validity-period` flag for `kubeadm kubeconfig user` - command.' +pr: 100907 +releasenote: + text: 'For `kubeadm`: add `--validity-period` flag for `kubeadm kubeconfig user` + command.' diff --git a/releases/release-1.22/release-notes/maps/pr-100913-map.yaml b/releases/release-1.22/release-notes/maps/pr-100913-map.yaml index e3f8be313e4..265fa912297 100644 --- a/releases/release-1.22/release-notes/maps/pr-100913-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100913-map.yaml @@ -1,3 +1,3 @@ -pr: 100913 -releasenote: - text: If `kube-proxy` mode is userspace do not enable `EndpointSlices`. +pr: 100913 +releasenote: + text: If `kube-proxy` mode is userspace do not enable `EndpointSlices`. diff --git a/releases/release-1.22/release-notes/maps/pr-100939-map.yaml b/releases/release-1.22/release-notes/maps/pr-100939-map.yaml index 92893e30881..c7849442c41 100644 --- a/releases/release-1.22/release-notes/maps/pr-100939-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100939-map.yaml @@ -1,3 +1,3 @@ -pr: 100939 -releasenote: - text: Support `FakeClientset` match subresource. +pr: 100939 +releasenote: + text: Support `FakeClientset` match subresource. diff --git a/releases/release-1.22/release-notes/maps/pr-100944-map.yaml b/releases/release-1.22/release-notes/maps/pr-100944-map.yaml index d1bcfb83cf4..84619d13196 100644 --- a/releases/release-1.22/release-notes/maps/pr-100944-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100944-map.yaml @@ -1,3 +1,3 @@ -pr: 100944 -releasenote: - text: Ensure service is deleted when the Azure resource group has been deleted. +pr: 100944 +releasenote: + text: Ensure service is deleted when the Azure resource group has been deleted. diff --git a/releases/release-1.22/release-notes/maps/pr-100956-map.yaml b/releases/release-1.22/release-notes/maps/pr-100956-map.yaml index ab8f61f21d8..4f7850b4e56 100644 --- a/releases/release-1.22/release-notes/maps/pr-100956-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100956-map.yaml @@ -1,3 +1,3 @@ -pr: 100956 -releasenote: - text: Update cri-tools dependency to `v1.21.0`. +pr: 100956 +releasenote: + text: Update cri-tools dependency to `v1.21.0`. diff --git a/releases/release-1.22/release-notes/maps/pr-100959-map.yaml b/releases/release-1.22/release-notes/maps/pr-100959-map.yaml index 9fbe7f72b20..b617a6bcb76 100644 --- a/releases/release-1.22/release-notes/maps/pr-100959-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100959-map.yaml @@ -1,5 +1,5 @@ -pr: 100959 -releasenote: - text: Renames the timeout field for the `DelegatingAuthenticationOptions` to `TokenRequestTimeout` - and set the timeout only for the token review client. Previously the timeout was - also applied to watches making them reconnecting every 10 seconds. +pr: 100959 +releasenote: + text: Renames the timeout field for the `DelegatingAuthenticationOptions` to `TokenRequestTimeout` + and set the timeout only for the token review client. Previously the timeout was + also applied to watches making them reconnecting every 10 seconds. diff --git a/releases/release-1.22/release-notes/maps/pr-100976-map.yaml b/releases/release-1.22/release-notes/maps/pr-100976-map.yaml index dbf77240331..6ae81a9fde0 100644 --- a/releases/release-1.22/release-notes/maps/pr-100976-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-100976-map.yaml @@ -1,6 +1,6 @@ -pr: 100976 -releasenote: - text: |- - Base images: Updated to - - debian-base:buster-v1.6.0 - - debian-iptables:buster-v1.6.0 +pr: 100976 +releasenote: + text: |- + Base images: Updated to + - debian-base:buster-v1.6.0 + - debian-iptables:buster-v1.6.0 diff --git a/releases/release-1.22/release-notes/maps/pr-101005-map.yaml b/releases/release-1.22/release-notes/maps/pr-101005-map.yaml index 31dbccc6874..7e2346d3119 100644 --- a/releases/release-1.22/release-notes/maps/pr-101005-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101005-map.yaml @@ -1,3 +1,3 @@ -pr: 101005 -releasenote: - text: The `kubectl create service` now respects the `namespace` flag. +pr: 101005 +releasenote: + text: The `kubectl create service` now respects the `namespace` flag. diff --git a/releases/release-1.22/release-notes/maps/pr-101025-map.yaml b/releases/release-1.22/release-notes/maps/pr-101025-map.yaml index d924cdb0cfd..827c20d46dd 100644 --- a/releases/release-1.22/release-notes/maps/pr-101025-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101025-map.yaml @@ -1,3 +1,3 @@ -pr: 101025 -releasenote: - text: Fix `EndpointSlice` describe panic when an Endpoint doesn't have zone. +pr: 101025 +releasenote: + text: Fix `EndpointSlice` describe panic when an Endpoint doesn't have zone. diff --git a/releases/release-1.22/release-notes/maps/pr-101030-map.yaml b/releases/release-1.22/release-notes/maps/pr-101030-map.yaml index a942ea01fed..18a6e293d1a 100644 --- a/releases/release-1.22/release-notes/maps/pr-101030-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101030-map.yaml @@ -1,4 +1,4 @@ -pr: 101030 -releasenote: - text: The pod resource API will provide memory manager metrics in the case when - the memory manager feature gate is enabled, and the memory manager policy is static. +pr: 101030 +releasenote: + text: The pod resource API will provide memory manager metrics in the case when + the memory manager feature gate is enabled, and the memory manager policy is static. diff --git a/releases/release-1.22/release-notes/maps/pr-101048-map.yaml b/releases/release-1.22/release-notes/maps/pr-101048-map.yaml index 7dea71fffbb..f258b73427d 100644 --- a/releases/release-1.22/release-notes/maps/pr-101048-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101048-map.yaml @@ -1,4 +1,4 @@ -pr: 101048 -releasenote: - text: The `EmptyDir` memory backed volumes are sized as the the minimum of pod allocatable - memory on a host and an optional explicit user provided value. +pr: 101048 +releasenote: + text: The `EmptyDir` memory backed volumes are sized as the the minimum of pod allocatable + memory on a host and an optional explicit user provided value. diff --git a/releases/release-1.22/release-notes/maps/pr-101074-map.yaml b/releases/release-1.22/release-notes/maps/pr-101074-map.yaml index fc7b4c40ca9..7c5c90f95be 100644 --- a/releases/release-1.22/release-notes/maps/pr-101074-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101074-map.yaml @@ -1,4 +1,4 @@ -pr: 101074 -releasenote: - text: The command`kubectl debug` will now print a warning message when using the - `--target` option since many container runtimes do not support this yet. +pr: 101074 +releasenote: + text: The command`kubectl debug` will now print a warning message when using the + `--target` option since many container runtimes do not support this yet. diff --git a/releases/release-1.22/release-notes/maps/pr-101076-map.yaml b/releases/release-1.22/release-notes/maps/pr-101076-map.yaml index e26546bc94d..81bded52939 100644 --- a/releases/release-1.22/release-notes/maps/pr-101076-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101076-map.yaml @@ -1,4 +1,4 @@ -pr: 101076 -releasenote: - text: Chain the field manager creation calls in `newDefaultFieldManager` to be explicit - about the order of operations. +pr: 101076 +releasenote: + text: Chain the field manager creation calls in `newDefaultFieldManager` to be explicit + about the order of operations. diff --git a/releases/release-1.22/release-notes/maps/pr-101080-map.yaml b/releases/release-1.22/release-notes/maps/pr-101080-map.yaml index b9e1b4cfc1c..95f890aff67 100644 --- a/releases/release-1.22/release-notes/maps/pr-101080-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101080-map.yaml @@ -1,3 +1,3 @@ -pr: 101080 -releasenote: - text: The `PodDeletionCost` feature has been promoted to beta, and enabled by default. +pr: 101080 +releasenote: + text: The `PodDeletionCost` feature has been promoted to beta, and enabled by default. diff --git a/releases/release-1.22/release-notes/maps/pr-101082-map.yaml b/releases/release-1.22/release-notes/maps/pr-101082-map.yaml index 570bd63935a..63a5d8b04d8 100644 --- a/releases/release-1.22/release-notes/maps/pr-101082-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101082-map.yaml @@ -1,4 +1,4 @@ -pr: 101082 -releasenote: - text: CSI migration of AWS EBS volumes requires AWS EBS CSI driver ver. 1.0 that - supports `allowAutoIOPSPerGBIncrease` parameter in StorageClass. +pr: 101082 +releasenote: + text: CSI migration of AWS EBS volumes requires AWS EBS CSI driver ver. 1.0 that + supports `allowAutoIOPSPerGBIncrease` parameter in StorageClass. diff --git a/releases/release-1.22/release-notes/maps/pr-101084-map.yaml b/releases/release-1.22/release-notes/maps/pr-101084-map.yaml index 195748e1738..e5a1ce63ccc 100644 --- a/releases/release-1.22/release-notes/maps/pr-101084-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101084-map.yaml @@ -1,3 +1,3 @@ -pr: 101084 -releasenote: - text: The `EndpointSlice` IP validation now matches `Endpoints` IP validation. +pr: 101084 +releasenote: + text: The `EndpointSlice` IP validation now matches `Endpoints` IP validation. diff --git a/releases/release-1.22/release-notes/maps/pr-101093-map.yaml b/releases/release-1.22/release-notes/maps/pr-101093-map.yaml index 76c6462fb68..6d98988e912 100644 --- a/releases/release-1.22/release-notes/maps/pr-101093-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101093-map.yaml @@ -1,4 +1,4 @@ -pr: 101093 -releasenote: - text: Fixed a bug where `startupProbe` stopped working after a container's first - restart. +pr: 101093 +releasenote: + text: Fixed a bug where `startupProbe` stopped working after a container's first + restart. diff --git a/releases/release-1.22/release-notes/maps/pr-101110-map.yaml b/releases/release-1.22/release-notes/maps/pr-101110-map.yaml index a8f3122c29b..91bcc857107 100644 --- a/releases/release-1.22/release-notes/maps/pr-101110-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101110-map.yaml @@ -1,4 +1,4 @@ -pr: 101110 -releasenote: - text: 'kubeadm: enable `--experimental-patches` flag for `kubeadm join phase control-plane-join - all` command.' +pr: 101110 +releasenote: + text: 'kubeadm: enable `--experimental-patches` flag for `kubeadm join phase control-plane-join + all` command.' diff --git a/releases/release-1.22/release-notes/maps/pr-101120-map.yaml b/releases/release-1.22/release-notes/maps/pr-101120-map.yaml index 55a909d7846..a898410ec41 100644 --- a/releases/release-1.22/release-notes/maps/pr-101120-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101120-map.yaml @@ -1,3 +1,3 @@ -pr: 101120 -releasenote: - text: Upgrades functionality of `kubectl kustomize` as described at [kustomize/v4.1.2](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.2) +pr: 101120 +releasenote: + text: Upgrades functionality of `kubectl kustomize` as described at [kustomize/v4.1.2](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.2) diff --git a/releases/release-1.22/release-notes/maps/pr-101129-map.yaml b/releases/release-1.22/release-notes/maps/pr-101129-map.yaml index f6a2dc8e55b..1704029bb6b 100644 --- a/releases/release-1.22/release-notes/maps/pr-101129-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101129-map.yaml @@ -1,6 +1,6 @@ -pr: 101129 -releasenote: - text: 'kubeadm: remove the deprecated kubeadm API `v1beta1`. Introduce a new kubeadm - API `v1beta3`. See [kubeadm/v1beta3](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3) - for a list of changes since `v1beta2`. Note that `v1beta2` is not yet deprecated, - but will be in a future release.' +pr: 101129 +releasenote: + text: 'kubeadm: remove the deprecated kubeadm API `v1beta1`. Introduce a new kubeadm + API `v1beta3`. See [kubeadm/v1beta3](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3) + for a list of changes since `v1beta2`. Note that `v1beta2` is not yet deprecated, + but will be in a future release.' diff --git a/releases/release-1.22/release-notes/maps/pr-101151-map.yaml b/releases/release-1.22/release-notes/maps/pr-101151-map.yaml index f60a1821abc..f837a0747a7 100644 --- a/releases/release-1.22/release-notes/maps/pr-101151-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101151-map.yaml @@ -1,3 +1,3 @@ -pr: 101151 -releasenote: - text: New `node-high` priority-level has been added to Suggested API Priority and +pr: 101151 +releasenote: + text: New `node-high` priority-level has been added to Suggested API Priority and diff --git a/releases/release-1.22/release-notes/maps/pr-101160-map.yaml b/releases/release-1.22/release-notes/maps/pr-101160-map.yaml index d9cf596a4d1..f33092b86b6 100644 --- a/releases/release-1.22/release-notes/maps/pr-101160-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101160-map.yaml @@ -1,3 +1,3 @@ -pr: 101160 -releasenote: - text: 'Fix: display of Job completion mode in `kubectl describe`.' +pr: 101160 +releasenote: + text: 'Fix: display of Job completion mode in `kubectl describe`.' diff --git a/releases/release-1.22/release-notes/maps/pr-101171-map.yaml b/releases/release-1.22/release-notes/maps/pr-101171-map.yaml index 6f3633f007d..78cca0d2cbb 100644 --- a/releases/release-1.22/release-notes/maps/pr-101171-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101171-map.yaml @@ -1,3 +1,3 @@ -pr: 101171 -releasenote: - text: 'The new flag `--chunk-size=SIZE` has been added to `kubectl describe`. This flag may be used to alter the number of items or disable this feature when `0` is passed.' +pr: 101171 +releasenote: + text: 'The new flag `--chunk-size=SIZE` has been added to `kubectl describe`. This flag may be used to alter the number of items or disable this feature when `0` is passed.' diff --git a/releases/release-1.22/release-notes/maps/pr-101181-map.yaml b/releases/release-1.22/release-notes/maps/pr-101181-map.yaml index b58aac2d9ad..5e9b10f664a 100644 --- a/releases/release-1.22/release-notes/maps/pr-101181-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101181-map.yaml @@ -1,3 +1,3 @@ -pr: 101181 -releasenote: - text: Kubemark's hollow-node will now print flags before starting. +pr: 101181 +releasenote: + text: Kubemark's hollow-node will now print flags before starting. diff --git a/releases/release-1.22/release-notes/maps/pr-101186-map.yaml b/releases/release-1.22/release-notes/maps/pr-101186-map.yaml index 8cd23028217..add4387ec8b 100644 --- a/releases/release-1.22/release-notes/maps/pr-101186-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101186-map.yaml @@ -1,4 +1,4 @@ -pr: 101186 -releasenote: - text: Fixed generic ephemeal volumes with `OwnerReferencesPermissionEnforcement` - admission plugin enabled. +pr: 101186 +releasenote: + text: Fixed generic ephemeal volumes with `OwnerReferencesPermissionEnforcement` + admission plugin enabled. diff --git a/releases/release-1.22/release-notes/maps/pr-101187-map.yaml b/releases/release-1.22/release-notes/maps/pr-101187-map.yaml index 106174a6c7f..7ec5d7c986b 100644 --- a/releases/release-1.22/release-notes/maps/pr-101187-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101187-map.yaml @@ -1,3 +1,3 @@ -pr: 101187 -releasenote: - text: Remove the duplicate packet import. +pr: 101187 +releasenote: + text: Remove the duplicate packet import. diff --git a/releases/release-1.22/release-notes/maps/pr-101203-map.yaml b/releases/release-1.22/release-notes/maps/pr-101203-map.yaml index ef2b40cbde2..3210ae95402 100644 --- a/releases/release-1.22/release-notes/maps/pr-101203-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101203-map.yaml @@ -1,3 +1,3 @@ -pr: 101203 -releasenote: - text: Added privileges for `EndpointSlice` to the default view & edit RBAC roles. +pr: 101203 +releasenote: + text: Added privileges for `EndpointSlice` to the default view & edit RBAC roles. diff --git a/releases/release-1.22/release-notes/maps/pr-101208-map.yaml b/releases/release-1.22/release-notes/maps/pr-101208-map.yaml index c44e314a669..6bbbee80d22 100644 --- a/releases/release-1.22/release-notes/maps/pr-101208-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101208-map.yaml @@ -1,5 +1,5 @@ -pr: 101208 -releasenote: - text: |- - Add a namespace label for all `apiserver_admission_* metrics`. - Expand the histogram range to 0-10s for all `apiserver_admission_*_duration_seconds` metrics. +pr: 101208 +releasenote: + text: |- + Add a namespace label for all `apiserver_admission_* metrics`. + Expand the histogram range to 0-10s for all `apiserver_admission_*_duration_seconds` metrics. diff --git a/releases/release-1.22/release-notes/maps/pr-101235-map.yaml b/releases/release-1.22/release-notes/maps/pr-101235-map.yaml index 9de57155c34..14921d46211 100644 --- a/releases/release-1.22/release-notes/maps/pr-101235-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101235-map.yaml @@ -1,3 +1,3 @@ -pr: 101235 -releasenote: - text: 'Fix: Azure file inline volume namespace issue in CSI migration translation' +pr: 101235 +releasenote: + text: 'Fix: Azure file inline volume namespace issue in CSI migration translation' diff --git a/releases/release-1.22/release-notes/maps/pr-101252-map.yaml b/releases/release-1.22/release-notes/maps/pr-101252-map.yaml index ef8f75c5ac3..87d3cfef406 100644 --- a/releases/release-1.22/release-notes/maps/pr-101252-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101252-map.yaml @@ -1,5 +1,5 @@ -pr: 101252 -releasenote: - text: The `kubelet` now reports distinguishes log messages about certificate rotation - for its client cert and server cert separately to make debugging problems with - one or the other easier. +pr: 101252 +releasenote: + text: The `kubelet` now reports distinguishes log messages about certificate rotation + for its client cert and server cert separately to make debugging problems with + one or the other easier. diff --git a/releases/release-1.22/release-notes/maps/pr-101256-map.yaml b/releases/release-1.22/release-notes/maps/pr-101256-map.yaml index aa699aceb45..e29d91d21de 100644 --- a/releases/release-1.22/release-notes/maps/pr-101256-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101256-map.yaml @@ -1,4 +1,4 @@ -pr: 101256 -releasenote: - text: Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. Prepare to increase - the length limit to 256 bytes in 1.23 release. +pr: 101256 +releasenote: + text: Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. Prepare to increase + the length limit to 256 bytes in 1.23 release. diff --git a/releases/release-1.22/release-notes/maps/pr-101271-map.yaml b/releases/release-1.22/release-notes/maps/pr-101271-map.yaml index 8a056ac4cc4..a5844746d88 100644 --- a/releases/release-1.22/release-notes/maps/pr-101271-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101271-map.yaml @@ -1,4 +1,4 @@ -pr: 101271 -releasenote: - text: Logging for GCE Windows clusters will be more accurate and complete when using - Fluent bit. +pr: 101271 +releasenote: + text: Logging for GCE Windows clusters will be more accurate and complete when using + Fluent bit. diff --git a/releases/release-1.22/release-notes/maps/pr-101272-map.yaml b/releases/release-1.22/release-notes/maps/pr-101272-map.yaml index 890dd5978cc..658caa84201 100644 --- a/releases/release-1.22/release-notes/maps/pr-101272-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101272-map.yaml @@ -1,4 +1,4 @@ -pr: 101272 -releasenote: - text: The `CSIMigrationVSphereComplete` feature flag is removed. `InTreePluginvSphereUnregister` +pr: 101272 +releasenote: + text: The `CSIMigrationVSphereComplete` feature flag is removed. `InTreePluginvSphereUnregister` will be the way moving forward. \ No newline at end of file diff --git a/releases/release-1.22/release-notes/maps/pr-101292-map.yaml b/releases/release-1.22/release-notes/maps/pr-101292-map.yaml index 6ea30789fdd..93dabfc0fa0 100644 --- a/releases/release-1.22/release-notes/maps/pr-101292-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101292-map.yaml @@ -1,5 +1,5 @@ -pr: 101292 -releasenote: - text: |- - Add three metrics to the job controller to monitor if a job works in healthy condition. - `IndexedJob` has been promoted to Beta. +pr: 101292 +releasenote: + text: |- + Add three metrics to the job controller to monitor if a job works in healthy condition. + `IndexedJob` has been promoted to Beta. diff --git a/releases/release-1.22/release-notes/maps/pr-101294-map.yaml b/releases/release-1.22/release-notes/maps/pr-101294-map.yaml index 84450a8b2c9..b9a79b0872b 100644 --- a/releases/release-1.22/release-notes/maps/pr-101294-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101294-map.yaml @@ -1,4 +1,4 @@ -pr: 101294 -releasenote: - text: The `SetHostnameAsFQDN` graduates to GA and thus will be unconditionally - disabled. +pr: 101294 +releasenote: + text: The `SetHostnameAsFQDN` graduates to GA and thus will be unconditionally + disabled. diff --git a/releases/release-1.22/release-notes/maps/pr-101296-map.yaml b/releases/release-1.22/release-notes/maps/pr-101296-map.yaml index 21711ccf25f..413d1c2d585 100644 --- a/releases/release-1.22/release-notes/maps/pr-101296-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101296-map.yaml @@ -1,4 +1,4 @@ -pr: 101296 -releasenote: - text: The API documentation for the DaemonSet's `spec.updateStrategy.rollingUpdate.maxUnavailable` - field was corrected to state that the value is rounded up. +pr: 101296 +releasenote: + text: The API documentation for the DaemonSet's `spec.updateStrategy.rollingUpdate.maxUnavailable` + field was corrected to state that the value is rounded up. diff --git a/releases/release-1.22/release-notes/maps/pr-101316-map.yaml b/releases/release-1.22/release-notes/maps/pr-101316-map.yaml index 97f957227ab..fcc6cf1e6fb 100644 --- a/releases/release-1.22/release-notes/maps/pr-101316-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101316-map.yaml @@ -1,3 +1,3 @@ -pr: 101316 -releasenote: - text: Implement `minReadySeconds` for the `StatefulSets`. +pr: 101316 +releasenote: + text: Implement `minReadySeconds` for the `StatefulSets`. diff --git a/releases/release-1.22/release-notes/maps/pr-101342-map.yaml b/releases/release-1.22/release-notes/maps/pr-101342-map.yaml index 23a916dd86e..e793843bfe6 100644 --- a/releases/release-1.22/release-notes/maps/pr-101342-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101342-map.yaml @@ -1,5 +1,5 @@ -pr: 101342 -releasenote: - text: The `NamespaceDefaultLabelName` is promoted to GA in this release. All Namespace - API objects have a `kubernetes.io/metadata.name` label matching their `metadata.name` - field to allow selecting any `namespace` by its name using a label selector. +pr: 101342 +releasenote: + text: The `NamespaceDefaultLabelName` is promoted to GA in this release. All Namespace + API objects have a `kubernetes.io/metadata.name` label matching their `metadata.name` + field to allow selecting any `namespace` by its name using a label selector. diff --git a/releases/release-1.22/release-notes/maps/pr-101377-map.yaml b/releases/release-1.22/release-notes/maps/pr-101377-map.yaml index 7f62a1fad2c..6d278abba82 100644 --- a/releases/release-1.22/release-notes/maps/pr-101377-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101377-map.yaml @@ -1,4 +1,4 @@ -pr: 101377 -releasenote: - text: Fix panic when `kubectl create ingress` has annotation flag and an empty value - set. +pr: 101377 +releasenote: + text: Fix panic when `kubectl create ingress` has annotation flag and an empty value + set. diff --git a/releases/release-1.22/release-notes/maps/pr-101394-map.yaml b/releases/release-1.22/release-notes/maps/pr-101394-map.yaml index 1b10e93caac..56992eda603 100644 --- a/releases/release-1.22/release-notes/maps/pr-101394-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101394-map.yaml @@ -1,3 +1,3 @@ -pr: 101394 -releasenote: - text: '`Scheduler` now registers event handlers dynamically.' +pr: 101394 +releasenote: + text: '`Scheduler` now registers event handlers dynamically.' diff --git a/releases/release-1.22/release-notes/maps/pr-101398-map.yaml b/releases/release-1.22/release-notes/maps/pr-101398-map.yaml index 2e0800c50d3..59ad27168e6 100644 --- a/releases/release-1.22/release-notes/maps/pr-101398-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101398-map.yaml @@ -1,4 +1,4 @@ -pr: 101398 -releasenote: - text: 'Fix: set "host is down" as corrupted mount. When SMB server is down, there - is no way to terminate pod which is using SMB mount, would get an error.' +pr: 101398 +releasenote: + text: 'Fix: set "host is down" as corrupted mount. When SMB server is down, there + is no way to terminate pod which is using SMB mount, would get an error.' diff --git a/releases/release-1.22/release-notes/maps/pr-101411-map.yaml b/releases/release-1.22/release-notes/maps/pr-101411-map.yaml index 9861872339b..bf345ccbfef 100644 --- a/releases/release-1.22/release-notes/maps/pr-101411-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101411-map.yaml @@ -1,4 +1,4 @@ -pr: 101411 -releasenote: - text: Official binaries now include the golang generated build ID `buildid` instead - of an empty string. +pr: 101411 +releasenote: + text: Official binaries now include the golang generated build ID `buildid` instead + of an empty string. diff --git a/releases/release-1.22/release-notes/maps/pr-101420-map.yaml b/releases/release-1.22/release-notes/maps/pr-101420-map.yaml index 4da6c8918bb..0e8f9a1d4b7 100644 --- a/releases/release-1.22/release-notes/maps/pr-101420-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101420-map.yaml @@ -1,3 +1,3 @@ -pr: 101420 -releasenote: - text: Improve logging of `APIService` availability changes in kube-apiserver. +pr: 101420 +releasenote: + text: Improve logging of `APIService` availability changes in kube-apiserver. diff --git a/releases/release-1.22/release-notes/maps/pr-101436-map.yaml b/releases/release-1.22/release-notes/maps/pr-101436-map.yaml index 204757cfc76..71c4ddcd703 100644 --- a/releases/release-1.22/release-notes/maps/pr-101436-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101436-map.yaml @@ -1,3 +1,3 @@ -pr: 101436 -releasenote: - text: Output for `kubectl describe podsecuritypolicy` is now kind specific and cleaner +pr: 101436 +releasenote: + text: Output for `kubectl describe podsecuritypolicy` is now kind specific and cleaner diff --git a/releases/release-1.22/release-notes/maps/pr-101441-map.yaml b/releases/release-1.22/release-notes/maps/pr-101441-map.yaml index a17112d097b..6a76bd27796 100644 --- a/releases/release-1.22/release-notes/maps/pr-101441-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101441-map.yaml @@ -1,4 +1,4 @@ -pr: 101441 -releasenote: - text: Removal of the CSI `NodePublish` path by the kubelet is deprecated. This must - be done by the CSI plugin according to the CSI spec. +pr: 101441 +releasenote: + text: Removal of the CSI `NodePublish` path by the kubelet is deprecated. This must + be done by the CSI plugin according to the CSI spec. diff --git a/releases/release-1.22/release-notes/maps/pr-101449-map.yaml b/releases/release-1.22/release-notes/maps/pr-101449-map.yaml index 28c707ed4c1..ec8bdf8fe7f 100644 --- a/releases/release-1.22/release-notes/maps/pr-101449-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101449-map.yaml @@ -1,5 +1,5 @@ -pr: 101449 -releasenote: - text: 'kubeadm: allow passing the flag `--log-file` if `--config` is passed. If - you wish to log to a file you must also pass `--logtostderr=false` or `--alsologtostderr=true`. - Alternatively you can pipe to a file using "kubeadm ... | tee ...".' +pr: 101449 +releasenote: + text: 'kubeadm: allow passing the flag `--log-file` if `--config` is passed. If + you wish to log to a file you must also pass `--logtostderr=false` or `--alsologtostderr=true`. + Alternatively you can pipe to a file using "kubeadm ... | tee ...".' diff --git a/releases/release-1.22/release-notes/maps/pr-101477-map.yaml b/releases/release-1.22/release-notes/maps/pr-101477-map.yaml index c430a2837c6..92c3268427f 100644 --- a/releases/release-1.22/release-notes/maps/pr-101477-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101477-map.yaml @@ -1,4 +1,4 @@ -pr: 101477 -releasenote: - text: Metrics Server updated to use `0.4.4` image that doesn't depend on deprecated - `authorization.k8s.io/v1beta1` subjectaccessreviews API version. +pr: 101477 +releasenote: + text: Metrics Server updated to use `0.4.4` image that doesn't depend on deprecated + `authorization.k8s.io/v1beta1` subjectaccessreviews API version. diff --git a/releases/release-1.22/release-notes/maps/pr-101496-map.yaml b/releases/release-1.22/release-notes/maps/pr-101496-map.yaml index 1fc7546208b..6381d58cfed 100644 --- a/releases/release-1.22/release-notes/maps/pr-101496-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101496-map.yaml @@ -1,4 +1,4 @@ -pr: 101496 -releasenote: - text: "The `podAffinity`, `NamespaceSelector` and the associated `CrossNamespaceAffinity` - quota scope features graduate to Beta and they are now enabled by default." +pr: 101496 +releasenote: + text: "The `podAffinity`, `NamespaceSelector` and the associated `CrossNamespaceAffinity` + quota scope features graduate to Beta and they are now enabled by default." diff --git a/releases/release-1.22/release-notes/maps/pr-101510-map.yaml b/releases/release-1.22/release-notes/maps/pr-101510-map.yaml index 029373fe0b8..9bbb6beccdc 100644 --- a/releases/release-1.22/release-notes/maps/pr-101510-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101510-map.yaml @@ -1,3 +1,3 @@ -pr: 101510 -releasenote: - text: Migrate some log messages to structured logging in `pkg/volume/plugins.go`. +pr: 101510 +releasenote: + text: Migrate some log messages to structured logging in `pkg/volume/plugins.go`. diff --git a/releases/release-1.22/release-notes/maps/pr-101534-map.yaml b/releases/release-1.22/release-notes/maps/pr-101534-map.yaml index d07429bd261..9720650ebf0 100644 --- a/releases/release-1.22/release-notes/maps/pr-101534-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101534-map.yaml @@ -1,4 +1,4 @@ -pr: 101534 -releasenote: - text: Newly provisioned PVs by Azure disk will no longer have the beta `FailureDomain` - label. Azure disk volume plugin will start to have GA topology label instead. +pr: 101534 +releasenote: + text: Newly provisioned PVs by Azure disk will no longer have the beta `FailureDomain` + label. Azure disk volume plugin will start to have GA topology label instead. diff --git a/releases/release-1.22/release-notes/maps/pr-101537-map.yaml b/releases/release-1.22/release-notes/maps/pr-101537-map.yaml index e43c5bfc8e6..602f7f719a0 100644 --- a/releases/release-1.22/release-notes/maps/pr-101537-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101537-map.yaml @@ -1,4 +1,4 @@ -pr: 101537 -releasenote: - text: 'kubeadm: Remove the deprecated hyperkube image support in `v1beta3`. This - implies removal of `ClusterConfiguration.UseHyperKubeImage.`' +pr: 101537 +releasenote: + text: 'kubeadm: Remove the deprecated hyperkube image support in `v1beta3`. This + implies removal of `ClusterConfiguration.UseHyperKubeImage.`' diff --git a/releases/release-1.22/release-notes/maps/pr-101542-map.yaml b/releases/release-1.22/release-notes/maps/pr-101542-map.yaml index c18bfc5492e..b89ce1c70b5 100644 --- a/releases/release-1.22/release-notes/maps/pr-101542-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101542-map.yaml @@ -1,6 +1,6 @@ -pr: 101542 -releasenote: - text: Scheduler's CycleState now embeds internal read/write locking inside its `Read()` - and `Write()` functions. Meanwhile, `Lock()` and `Unlock()` function are removed. Scheduler - plugin developers are now required to remove `CycleState#Lock()` and `CycleState#Unlock()`. - Just simply use `Read()` and `Write()` as they're natively thread-safe now. +pr: 101542 +releasenote: + text: Scheduler's CycleState now embeds internal read/write locking inside its `Read()` + and `Write()` functions. Meanwhile, `Lock()` and `Unlock()` function are removed. Scheduler + plugin developers are now required to remove `CycleState#Lock()` and `CycleState#Unlock()`. + Just simply use `Read()` and `Write()` as they're natively thread-safe now. diff --git a/releases/release-1.22/release-notes/maps/pr-101547-map.yaml b/releases/release-1.22/release-notes/maps/pr-101547-map.yaml index df469219e0b..57390aae9fa 100644 --- a/releases/release-1.22/release-notes/maps/pr-101547-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101547-map.yaml @@ -1,4 +1,4 @@ -pr: 101547 -releasenote: - text: 'kubeadm: Remove the field `ClusterConfiguration.DNS.Type` in v1beta3 since - CoreDNS is the only supported DNS type.' +pr: 101547 +releasenote: + text: 'kubeadm: Remove the field `ClusterConfiguration.DNS.Type` in v1beta3 since + CoreDNS is the only supported DNS type.' diff --git a/releases/release-1.22/release-notes/maps/pr-101560-map.yaml b/releases/release-1.22/release-notes/maps/pr-101560-map.yaml index 9550e8801a3..592b12eb047 100644 --- a/releases/release-1.22/release-notes/maps/pr-101560-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101560-map.yaml @@ -1,3 +1,3 @@ -pr: 101560 -releasenote: - text: Fixes a panic in `kube-scheduler` when accessing not existing pods while using `DefaultPreemption` plugin. +pr: 101560 +releasenote: + text: Fixes a panic in `kube-scheduler` when accessing not existing pods while using `DefaultPreemption` plugin. diff --git a/releases/release-1.22/release-notes/maps/pr-101578-map.yaml b/releases/release-1.22/release-notes/maps/pr-101578-map.yaml index 44637041c0f..f82c3c41a31 100644 --- a/releases/release-1.22/release-notes/maps/pr-101578-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101578-map.yaml @@ -1,5 +1,5 @@ -pr: 101578 -releasenote: - text: The deprecated `CRIContainerLogRotation` feature-gate has been removed, since - the `CRIContainerLogRotatio`n feature graduated to GA in 1.21 and was unconditionally - enabled. +pr: 101578 +releasenote: + text: The deprecated `CRIContainerLogRotation` feature-gate has been removed, since + the `CRIContainerLogRotatio`n feature graduated to GA in 1.21 and was unconditionally + enabled. diff --git a/releases/release-1.22/release-notes/maps/pr-101579-map.yaml b/releases/release-1.22/release-notes/maps/pr-101579-map.yaml index 128729f2aa4..acd125312a2 100644 --- a/releases/release-1.22/release-notes/maps/pr-101579-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101579-map.yaml @@ -1,4 +1,4 @@ -pr: 101579 -releasenote: - text: The deprecated `RootCAConfigMap` feature-gate has been removed, since the - `RootCAConfigMap` feature graduated to GA in 1.21 and is unconditionally enabled. +pr: 101579 +releasenote: + text: The deprecated `RootCAConfigMap` feature-gate has been removed, since the + `RootCAConfigMap` feature graduated to GA in 1.21 and is unconditionally enabled. diff --git a/releases/release-1.22/release-notes/maps/pr-101581-map.yaml b/releases/release-1.22/release-notes/maps/pr-101581-map.yaml index e43d3556384..56a071fff55 100644 --- a/releases/release-1.22/release-notes/maps/pr-101581-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101581-map.yaml @@ -1,4 +1,4 @@ -pr: 101581 -releasenote: - text: The deprecated `runAsGroup` feature-gate has been removed, since the `runAsGroup` - feature graduated to GA in 1.21. +pr: 101581 +releasenote: + text: The deprecated `runAsGroup` feature-gate has been removed, since the `runAsGroup` + feature graduated to GA in 1.21. diff --git a/releases/release-1.22/release-notes/maps/pr-101587-map.yaml b/releases/release-1.22/release-notes/maps/pr-101587-map.yaml index 238a94ed1e7..e420f93ec14 100644 --- a/releases/release-1.22/release-notes/maps/pr-101587-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101587-map.yaml @@ -1,8 +1,8 @@ -pr: 101587 -releasenote: - text: Some of the in-tree storage drivers indicate support for the `MetricsProvider` - interface, but fail to configure this for BlockMode volumes. With a recent change, - `Kubelet` will call `GetMetrics()` for BlockMode volumes, and the in-tree drivers - that miss the support cause a Go panic. Now the in-tree storage drivers that support - BlockMode volumes, will return the Capacity of the volume in the `GetMetrics()` - call. +pr: 101587 +releasenote: + text: Some of the in-tree storage drivers indicate support for the `MetricsProvider` + interface, but fail to configure this for BlockMode volumes. With a recent change, + `Kubelet` will call `GetMetrics()` for BlockMode volumes, and the in-tree drivers + that miss the support cause a Go panic. Now the in-tree storage drivers that support + BlockMode volumes, will return the Capacity of the volume in the `GetMetrics()` + call. diff --git a/releases/release-1.22/release-notes/maps/pr-101600-map.yaml b/releases/release-1.22/release-notes/maps/pr-101600-map.yaml index b9cfcbc9b13..bd66eb00eb4 100644 --- a/releases/release-1.22/release-notes/maps/pr-101600-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101600-map.yaml @@ -1,5 +1,5 @@ -pr: 101600 -releasenote: - text: 'kubeadm: the flag `--cri-socket` is no longer allowed in a mixture with the - flag `--config`. Please use the kubeadm configuration for setting the CRI socket - for a node using `{Init|Join}Configuration.nodeRegistration.criSocket`.' +pr: 101600 +releasenote: + text: 'kubeadm: the flag `--cri-socket` is no longer allowed in a mixture with the + flag `--config`. Please use the kubeadm configuration for setting the CRI socket + for a node using `{Init|Join}Configuration.nodeRegistration.criSocket`.' diff --git a/releases/release-1.22/release-notes/maps/pr-101647-map.yaml b/releases/release-1.22/release-notes/maps/pr-101647-map.yaml index 57322a78921..ccb2b4f1829 100644 --- a/releases/release-1.22/release-notes/maps/pr-101647-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101647-map.yaml @@ -1,6 +1,6 @@ -pr: 101647 -releasenote: - text: Default `StreamingProxyRedirects` to disabled. If there is a >= 2 version - skew between master and nodes, and the old nodes were enabling `--redirect-container-streaming`, - this will break them. In this case, the `StreamingProxyRedirects` can still be - manually enabled. +pr: 101647 +releasenote: + text: Default `StreamingProxyRedirects` to disabled. If there is a >= 2 version + skew between master and nodes, and the old nodes were enabling `--redirect-container-streaming`, + this will break them. In this case, the `StreamingProxyRedirects` can still be + manually enabled. diff --git a/releases/release-1.22/release-notes/maps/pr-101669-map.yaml b/releases/release-1.22/release-notes/maps/pr-101669-map.yaml index 9671196e39e..f19652f335d 100644 --- a/releases/release-1.22/release-notes/maps/pr-101669-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101669-map.yaml @@ -1,3 +1,3 @@ -pr: 101669 -releasenote: - text: Fix `kubectl set env` or `resources` not working for initcontainers. +pr: 101669 +releasenote: + text: Fix `kubectl set env` or `resources` not working for initcontainers. diff --git a/releases/release-1.22/release-notes/maps/pr-101685-map.yaml b/releases/release-1.22/release-notes/maps/pr-101685-map.yaml index 3bfd98dcaaa..0cbd70b57c9 100644 --- a/releases/release-1.22/release-notes/maps/pr-101685-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101685-map.yaml @@ -1,3 +1,3 @@ -pr: 101685 -releasenote: - text: Intree volume plugin scaleIO support has been completely removed from Kubernetes. +pr: 101685 +releasenote: + text: Intree volume plugin scaleIO support has been completely removed from Kubernetes. diff --git a/releases/release-1.22/release-notes/maps/pr-101688-map.yaml b/releases/release-1.22/release-notes/maps/pr-101688-map.yaml index c58ee58749e..66bc6c1b64b 100644 --- a/releases/release-1.22/release-notes/maps/pr-101688-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101688-map.yaml @@ -1,4 +1,4 @@ -pr: 101688 -releasenote: - text: Warnings for the use of deprecated and known-bad values in pod specs are now - sent. +pr: 101688 +releasenote: + text: Warnings for the use of deprecated and known-bad values in pod specs are now + sent. diff --git a/releases/release-1.22/release-notes/maps/pr-101711-map.yaml b/releases/release-1.22/release-notes/maps/pr-101711-map.yaml index 22eef6c5299..2a1b4a02146 100644 --- a/releases/release-1.22/release-notes/maps/pr-101711-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101711-map.yaml @@ -1,5 +1,5 @@ -pr: 101711 -releasenote: - text: The `IngressClassNamespacedParams` feature gate has graduated to beta and - is enabled by default. This means IngressClass resource will now have two new - fields - `spec.paramters.namespace` and `spec.parameters.scope`. +pr: 101711 +releasenote: + text: The `IngressClassNamespacedParams` feature gate has graduated to beta and + is enabled by default. This means IngressClass resource will now have two new + fields - `spec.paramters.namespace` and `spec.parameters.scope`. diff --git a/releases/release-1.22/release-notes/maps/pr-101742-map.yaml b/releases/release-1.22/release-notes/maps/pr-101742-map.yaml index e5ad0c00308..9d48a6eb262 100644 --- a/releases/release-1.22/release-notes/maps/pr-101742-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101742-map.yaml @@ -1,3 +1,3 @@ -pr: 101742 -releasenote: - text: Enable `MaxSurge` for `DaemonSet` by default. +pr: 101742 +releasenote: + text: Enable `MaxSurge` for `DaemonSet` by default. diff --git a/releases/release-1.22/release-notes/maps/pr-101752-map.yaml b/releases/release-1.22/release-notes/maps/pr-101752-map.yaml index 9be021bd52a..d7c1b4eabe6 100644 --- a/releases/release-1.22/release-notes/maps/pr-101752-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101752-map.yaml @@ -1,3 +1,3 @@ -pr: 101752 -releasenote: - text: Applying fix for not tagging static public IP. +pr: 101752 +releasenote: + text: Applying fix for not tagging static public IP. diff --git a/releases/release-1.22/release-notes/maps/pr-101767-map.yaml b/releases/release-1.22/release-notes/maps/pr-101767-map.yaml index d04d97991d8..0ec1a988241 100644 --- a/releases/release-1.22/release-notes/maps/pr-101767-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101767-map.yaml @@ -1,3 +1,3 @@ -pr: 101767 -releasenote: - text: The `LogarithmicScaleDown` feature graduates to Beta and enabled by default. +pr: 101767 +releasenote: + text: The `LogarithmicScaleDown` feature graduates to Beta and enabled by default. diff --git a/releases/release-1.22/release-notes/maps/pr-101773-map.yaml b/releases/release-1.22/release-notes/maps/pr-101773-map.yaml index d7b1aa23ed1..b84f70290d9 100644 --- a/releases/release-1.22/release-notes/maps/pr-101773-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101773-map.yaml @@ -1,4 +1,4 @@ -pr: 101773 -releasenote: - text: The `storageos`, `quobyte` and `flocker` storage volume plugins are deprecated - and will be removed in a later release. +pr: 101773 +releasenote: + text: The `storageos`, `quobyte` and `flocker` storage volume plugins are deprecated + and will be removed in a later release. diff --git a/releases/release-1.22/release-notes/maps/pr-101822-map.yaml b/releases/release-1.22/release-notes/maps/pr-101822-map.yaml index 38ffce25433..7a6d1568a8f 100644 --- a/releases/release-1.22/release-notes/maps/pr-101822-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101822-map.yaml @@ -1,7 +1,7 @@ -pr: 101822 -releasenote: - text: A new score extension for NodeResourcesFit plugin that merges the functionality - of `NodeResourcesLeastAllocated`, `NodeResourcesMostAllocated`, `RequestedToCapacityRatio` - plugins, which are marked as deprecated as of v1beta2. In v1beta1, the three plugins - can still be used in v1beta1 but not at the same time with the score extension - of `NodeResourcesFit`. +pr: 101822 +releasenote: + text: A new score extension for NodeResourcesFit plugin that merges the functionality + of `NodeResourcesLeastAllocated`, `NodeResourcesMostAllocated`, `RequestedToCapacityRatio` + plugins, which are marked as deprecated as of v1beta2. In v1beta1, the three plugins + can still be used in v1beta1 but not at the same time with the score extension + of `NodeResourcesFit`. diff --git a/releases/release-1.22/release-notes/maps/pr-101857-map.yaml b/releases/release-1.22/release-notes/maps/pr-101857-map.yaml index 0e8202c585a..10ae162a303 100644 --- a/releases/release-1.22/release-notes/maps/pr-101857-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101857-map.yaml @@ -1,4 +1,4 @@ -pr: 101857 -releasenote: - text: The `kube-proxy` log now shows the "Skipping topology aware endpoint filtering - since no hints were provided for zone" warning under the right conditions. +pr: 101857 +releasenote: + text: The `kube-proxy` log now shows the "Skipping topology aware endpoint filtering + since no hints were provided for zone" warning under the right conditions. diff --git a/releases/release-1.22/release-notes/maps/pr-101862-map.yaml b/releases/release-1.22/release-notes/maps/pr-101862-map.yaml index 7625e8ec962..40b61b10722 100644 --- a/releases/release-1.22/release-notes/maps/pr-101862-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101862-map.yaml @@ -1,4 +1,4 @@ -pr: 101862 -releasenote: - text: Retry `FibreChannel` devices cleanup after error to ensure `FibreChannel` device is detached - before it can be used on another node. +pr: 101862 +releasenote: + text: Retry `FibreChannel` devices cleanup after error to ensure `FibreChannel` device is detached + before it can be used on another node. diff --git a/releases/release-1.22/release-notes/maps/pr-101915-map.yaml b/releases/release-1.22/release-notes/maps/pr-101915-map.yaml index 6bae03cedad..a4376f5491c 100644 --- a/releases/release-1.22/release-notes/maps/pr-101915-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101915-map.yaml @@ -1,9 +1,9 @@ -pr: 101915 -releasenote: - text: 'For `kubeadm`: remove the ClusterStatus API from v1beta3 and its management - in the kube-system/kubeadm-config ConfigMap. This method of keeping track of what - API endpoints exists in the cluster was replaced (in a prior release) by a method - to annotate the etcd Pods that `kubeadm` creates in "stacked etcd" clusters. The - following CLI sub-phases are deprecated and are now a NO-OP: for `kubeadm join`: - "control-plane-join/update-status", for `kubeadm reset`: "update-cluster-status". - Unless you are using these phases explicitly, you should not be affected.' +pr: 101915 +releasenote: + text: 'For `kubeadm`: remove the ClusterStatus API from v1beta3 and its management + in the kube-system/kubeadm-config ConfigMap. This method of keeping track of what + API endpoints exists in the cluster was replaced (in a prior release) by a method + to annotate the etcd Pods that `kubeadm` creates in "stacked etcd" clusters. The + following CLI sub-phases are deprecated and are now a NO-OP: for `kubeadm join`: + "control-plane-join/update-status", for `kubeadm reset`: "update-cluster-status". + Unless you are using these phases explicitly, you should not be affected.' diff --git a/releases/release-1.22/release-notes/maps/pr-101923-map.yaml b/releases/release-1.22/release-notes/maps/pr-101923-map.yaml index a41b1b6e4ed..f808f7295aa 100644 --- a/releases/release-1.22/release-notes/maps/pr-101923-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101923-map.yaml @@ -1,5 +1,5 @@ -pr: 101923 -releasenote: - text: "kubeadm: add a new field `skipPhases` to `v1beta3` `InitConfiguration` and `JoinConfiguration` - that can contain a list of phases to skip during \"kubeadm init\" and \"kubeadm join\". - The flag \"--skip-phases\" takes precedence over this field." +pr: 101923 +releasenote: + text: "kubeadm: add a new field `skipPhases` to `v1beta3` `InitConfiguration` and `JoinConfiguration` + that can contain a list of phases to skip during \"kubeadm init\" and \"kubeadm join\". + The flag \"--skip-phases\" takes precedence over this field." diff --git a/releases/release-1.22/release-notes/maps/pr-101938-map.yaml b/releases/release-1.22/release-notes/maps/pr-101938-map.yaml index 838fe5b603e..a151eb6b9fa 100644 --- a/releases/release-1.22/release-notes/maps/pr-101938-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101938-map.yaml @@ -1,4 +1,4 @@ -pr: 101938 -releasenote: - text: 'kubeadm: Remove the deprecated command `kubeadm alpha kubeconfig`. Please - use `kubeadm kubeconfig` instead.' +pr: 101938 +releasenote: + text: 'kubeadm: Remove the deprecated command `kubeadm alpha kubeconfig`. Please + use `kubeadm kubeconfig` instead.' diff --git a/releases/release-1.22/release-notes/maps/pr-101947-map.yaml b/releases/release-1.22/release-notes/maps/pr-101947-map.yaml index 332790dc2fd..1897dc27c12 100644 --- a/releases/release-1.22/release-notes/maps/pr-101947-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101947-map.yaml @@ -1,3 +1,3 @@ -pr: 101947 -releasenote: - text: The Memory Manager feature graduates to Beta and it is enabled by default. +pr: 101947 +releasenote: + text: The Memory Manager feature graduates to Beta and it is enabled by default. diff --git a/releases/release-1.22/release-notes/maps/pr-101950-map.yaml b/releases/release-1.22/release-notes/maps/pr-101950-map.yaml index cac96b6952f..5c31b72ed29 100644 --- a/releases/release-1.22/release-notes/maps/pr-101950-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101950-map.yaml @@ -1,4 +1,4 @@ -pr: 101950 -releasenote: - text: Fixes the `should receive events on concurrent watches in same order` conformance - test to work properly on clusters that auto-create additional configmaps in namespaces. +pr: 101950 +releasenote: + text: Fixes the `should receive events on concurrent watches in same order` conformance + test to work properly on clusters that auto-create additional configmaps in namespaces. diff --git a/releases/release-1.22/release-notes/maps/pr-101977-map.yaml b/releases/release-1.22/release-notes/maps/pr-101977-map.yaml index 2414be944f5..63d84482621 100644 --- a/releases/release-1.22/release-notes/maps/pr-101977-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101977-map.yaml @@ -1,3 +1,3 @@ -pr: 101977 -releasenote: - text: 'kubeadm: fix the bug that `kubeadm` only uses the first hash in `caCertHashes` to verify the root CA.' +pr: 101977 +releasenote: + text: 'kubeadm: fix the bug that `kubeadm` only uses the first hash in `caCertHashes` to verify the root CA.' diff --git a/releases/release-1.22/release-notes/maps/pr-101992-map.yaml b/releases/release-1.22/release-notes/maps/pr-101992-map.yaml index 97ccf46541d..abbdb60dcbc 100644 --- a/releases/release-1.22/release-notes/maps/pr-101992-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-101992-map.yaml @@ -1,4 +1,4 @@ -pr: 101992 -releasenote: - text: The `BoundServiceAccountTokenVolume` graduates to GA and thus will be - unconditionally enabled. The feature gate is going to be removed in 1.23. +pr: 101992 +releasenote: + text: The `BoundServiceAccountTokenVolume` graduates to GA and thus will be + unconditionally enabled. The feature gate is going to be removed in 1.23. diff --git a/releases/release-1.22/release-notes/maps/pr-102005-map.yaml b/releases/release-1.22/release-notes/maps/pr-102005-map.yaml index b0ee2c1ca20..01834606771 100644 --- a/releases/release-1.22/release-notes/maps/pr-102005-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102005-map.yaml @@ -1,3 +1,3 @@ -pr: 102005 -releasenote: - text: 'Azure: Avoid setting cached Sku when updating VMSS and VMSS instances.' +pr: 102005 +releasenote: + text: 'Azure: Avoid setting cached Sku when updating VMSS and VMSS instances.' diff --git a/releases/release-1.22/release-notes/maps/pr-102022-map.yaml b/releases/release-1.22/release-notes/maps/pr-102022-map.yaml index fc6cd782b20..b86a39ff0ea 100644 --- a/releases/release-1.22/release-notes/maps/pr-102022-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102022-map.yaml @@ -1,3 +1,3 @@ -pr: 102022 -releasenote: - text: Suspend Job feature graduated to beta. Added the `action` label to Job controller sync metrics `job_sync_total` and `job_sync_duration_seconds`. +pr: 102022 +releasenote: + text: Suspend Job feature graduated to beta. Added the `action` label to Job controller sync metrics `job_sync_total` and `job_sync_duration_seconds`. diff --git a/releases/release-1.22/release-notes/maps/pr-102028-map.yaml b/releases/release-1.22/release-notes/maps/pr-102028-map.yaml index b3acaf2052c..339a6b86c2d 100644 --- a/releases/release-1.22/release-notes/maps/pr-102028-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102028-map.yaml @@ -1,4 +1,4 @@ -pr: 102028 -releasenote: - text: Adds the `ReadWriteOncePod` access mode for `PersistentVolumes` and `PersistentVolumeClaims`. - Restricts volume access to a single pod on a single node. +pr: 102028 +releasenote: + text: Adds the `ReadWriteOncePod` access mode for `PersistentVolumes` and `PersistentVolumeClaims`. + Restricts volume access to a single pod on a single node. diff --git a/releases/release-1.22/release-notes/maps/pr-102030-map.yaml b/releases/release-1.22/release-notes/maps/pr-102030-map.yaml index 3476be5c1a2..22c11b2637a 100644 --- a/releases/release-1.22/release-notes/maps/pr-102030-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102030-map.yaml @@ -1,3 +1,3 @@ -pr: 102030 -releasenote: - text: The ingress `v1beta1` has been deprecated. +pr: 102030 +releasenote: + text: The ingress `v1beta1` has been deprecated. diff --git a/releases/release-1.22/release-notes/maps/pr-102039-map.yaml b/releases/release-1.22/release-notes/maps/pr-102039-map.yaml index cf3d1b1fb79..41fbbe5de43 100644 --- a/releases/release-1.22/release-notes/maps/pr-102039-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102039-map.yaml @@ -1,3 +1,3 @@ -pr: 102039 -releasenote: - text: '`kubectl`: Enable using protocol buffers to request Metrics API.' +pr: 102039 +releasenote: + text: '`kubectl`: Enable using protocol buffers to request Metrics API.' diff --git a/releases/release-1.22/release-notes/maps/pr-102059-map.yaml b/releases/release-1.22/release-notes/maps/pr-102059-map.yaml index 69ed1c3e0ed..4af61049fda 100644 --- a/releases/release-1.22/release-notes/maps/pr-102059-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102059-map.yaml @@ -1,4 +1,4 @@ -pr: 102059 -releasenote: - text: Fixed very rare volume corruption when a pod is deleted while kubelet is - offline. +pr: 102059 +releasenote: + text: Fixed very rare volume corruption when a pod is deleted while kubelet is + offline. diff --git a/releases/release-1.22/release-notes/maps/pr-102062-map.yaml b/releases/release-1.22/release-notes/maps/pr-102062-map.yaml index 267222085ee..7a460282a40 100644 --- a/releases/release-1.22/release-notes/maps/pr-102062-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102062-map.yaml @@ -1,3 +1,3 @@ -pr: 102062 -releasenote: - text: Update etcd version to 3.5.0-beta.3. +pr: 102062 +releasenote: + text: Update etcd version to 3.5.0-beta.3. diff --git a/releases/release-1.22/release-notes/maps/pr-102063-map.yaml b/releases/release-1.22/release-notes/maps/pr-102063-map.yaml index c1dd0f48bba..de1fb41aa93 100644 --- a/releases/release-1.22/release-notes/maps/pr-102063-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102063-map.yaml @@ -1,4 +1,4 @@ -pr: 102063 -releasenote: - text: Fixed an issue blocking azure auth to prompt to device code authentication - flow when refresh token expires. +pr: 102063 +releasenote: + text: Fixed an issue blocking azure auth to prompt to device code authentication + flow when refresh token expires. diff --git a/releases/release-1.22/release-notes/maps/pr-102067-map.yaml b/releases/release-1.22/release-notes/maps/pr-102067-map.yaml index 6ea3bf4d675..a388ce4c09e 100644 --- a/releases/release-1.22/release-notes/maps/pr-102067-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102067-map.yaml @@ -1,5 +1,5 @@ -pr: 102067 -releasenote: - text: We no longer allow the cluster operator to delete any suggested priority & - fairness bootstrap configuration object. If a cluster operator removes a suggested - configuration, it will be restored by the apiserver. +pr: 102067 +releasenote: + text: We no longer allow the cluster operator to delete any suggested priority & + fairness bootstrap configuration object. If a cluster operator removes a suggested + configuration, it will be restored by the apiserver. diff --git a/releases/release-1.22/release-notes/maps/pr-102071-map.yaml b/releases/release-1.22/release-notes/maps/pr-102071-map.yaml index bb8bae785d5..cc2780878ff 100644 --- a/releases/release-1.22/release-notes/maps/pr-102071-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102071-map.yaml @@ -1,4 +1,4 @@ -pr: 102071 -releasenote: - text: 'kubeadm: remove the deprecated command `kubeadm config view`. A replacement - for this command is `kubectl get cm -n kube-system kubeadm-config -o=jsonpath="{.data.ClusterConfiguration}"`' +pr: 102071 +releasenote: + text: 'kubeadm: remove the deprecated command `kubeadm config view`. A replacement + for this command is `kubectl get cm -n kube-system kubeadm-config -o=jsonpath="{.data.ClusterConfiguration}"`' diff --git a/releases/release-1.22/release-notes/maps/pr-102083-map.yaml b/releases/release-1.22/release-notes/maps/pr-102083-map.yaml index fd0e9475e60..3f59f8d917d 100644 --- a/releases/release-1.22/release-notes/maps/pr-102083-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102083-map.yaml @@ -1,3 +1,3 @@ -pr: 102083 -releasenote: - text: Applying fix so that deleting non-existing disk returns success. +pr: 102083 +releasenote: + text: Applying fix so that deleting non-existing disk returns success. diff --git a/releases/release-1.22/release-notes/maps/pr-102108-map.yaml b/releases/release-1.22/release-notes/maps/pr-102108-map.yaml index f66f48521f0..694ef8b8c88 100644 --- a/releases/release-1.22/release-notes/maps/pr-102108-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102108-map.yaml @@ -1,5 +1,5 @@ -pr: 102108 -releasenote: - text: 'kubead: remove the deprecated `--csr-only` and `--csr-dir` flags from `kubeadm - init phase certs`. Deprecate the same flags under `kubeadm certs renew`. - In both the cases the command `kubeadm certs generate-csr` should be used instead.' +pr: 102108 +releasenote: + text: 'kubead: remove the deprecated `--csr-only` and `--csr-dir` flags from `kubeadm + init phase certs`. Deprecate the same flags under `kubeadm certs renew`. + In both the cases the command `kubeadm certs generate-csr` should be used instead.' diff --git a/releases/release-1.22/release-notes/maps/pr-102121-map.yaml b/releases/release-1.22/release-notes/maps/pr-102121-map.yaml index de7e0b83a4f..66306c01b66 100644 --- a/releases/release-1.22/release-notes/maps/pr-102121-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102121-map.yaml @@ -1,5 +1,5 @@ -pr: 102121 -releasenote: - text: 'kubeadm: remove the deprecated flag `--insecure-port` from the kube-apiserver - manifest that kubeadm manages. The flag had no effect since 1.20, since the insecure - serving of the component was disabled in the same version.' +pr: 102121 +releasenote: + text: 'kubeadm: remove the deprecated flag `--insecure-port` from the kube-apiserver + manifest that kubeadm manages. The flag had no effect since 1.20, since the insecure + serving of the component was disabled in the same version.' diff --git a/releases/release-1.22/release-notes/maps/pr-102133-map.yaml b/releases/release-1.22/release-notes/maps/pr-102133-map.yaml index cf472965ad5..018b654fe41 100644 --- a/releases/release-1.22/release-notes/maps/pr-102133-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102133-map.yaml @@ -1,6 +1,6 @@ -pr: 102133 -releasenote: - text: "kubeadm: during \"kubeadm init/join/upgrade\", always default the `cgroupDriver` - value in the `KubeletConfiguration` to `systemd`, unless the user was explicit about - the value. See [configure-cgroup-driver](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) - for more details." +pr: 102133 +releasenote: + text: "kubeadm: during \"kubeadm init/join/upgrade\", always default the `cgroupDriver` + value in the `KubeletConfiguration` to `systemd`, unless the user was explicit about + the value. See [configure-cgroup-driver](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) + for more details." diff --git a/releases/release-1.22/release-notes/maps/pr-102147-map.yaml b/releases/release-1.22/release-notes/maps/pr-102147-map.yaml index bc6c823b526..ea660b892f9 100644 --- a/releases/release-1.22/release-notes/maps/pr-102147-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102147-map.yaml @@ -1,3 +1,3 @@ -pr: 102147 -releasenote: - text: Fix resource enforcement when using systemd cgroup driver +pr: 102147 +releasenote: + text: Fix resource enforcement when using systemd cgroup driver diff --git a/releases/release-1.22/release-notes/maps/pr-102158-map.yaml b/releases/release-1.22/release-notes/maps/pr-102158-map.yaml index b5882893ee1..133bf191d3a 100644 --- a/releases/release-1.22/release-notes/maps/pr-102158-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102158-map.yaml @@ -1,6 +1,6 @@ -pr: 102158 -releasenote: - text: 'kubeadm: Add the `RootlessControlPlane` kubeadm specific feature gate (Alpha - in 1.22, disabled by default). It can be used to enable an experimental feature - that makes the control plane component static Pod containers for `kube-apiserver`, - `kube-controller-manager`, `kube-scheduler` and `etcd` to run as a non-root users.' +pr: 102158 +releasenote: + text: 'kubeadm: Add the `RootlessControlPlane` kubeadm specific feature gate (Alpha + in 1.22, disabled by default). It can be used to enable an experimental feature + that makes the control plane component static Pod containers for `kube-apiserver`, + `kube-controller-manager`, `kube-scheduler` and `etcd` to run as a non-root users.' diff --git a/releases/release-1.22/release-notes/maps/pr-102159-map.yaml b/releases/release-1.22/release-notes/maps/pr-102159-map.yaml index 7704f008449..82c68d90933 100644 --- a/releases/release-1.22/release-notes/maps/pr-102159-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102159-map.yaml @@ -1,3 +1,3 @@ -pr: 102159 -releasenote: - text: The `v1.Node` and `.status.images[].names` are now optional. +pr: 102159 +releasenote: + text: The `v1.Node` and `.status.images[].names` are now optional. diff --git a/releases/release-1.22/release-notes/maps/pr-102171-map.yaml b/releases/release-1.22/release-notes/maps/pr-102171-map.yaml index 76990be2c61..333e437001c 100644 --- a/releases/release-1.22/release-notes/maps/pr-102171-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102171-map.yaml @@ -1,4 +1,4 @@ -pr: 102171 -releasenote: - text: Watch requests are now handled throttled by priority and fairness filter in - `kube-apiserver`. +pr: 102171 +releasenote: + text: Watch requests are now handled throttled by priority and fairness filter in + `kube-apiserver`. diff --git a/releases/release-1.22/release-notes/maps/pr-102176-map.yaml b/releases/release-1.22/release-notes/maps/pr-102176-map.yaml index 598ae3502d9..cd28534a60a 100644 --- a/releases/release-1.22/release-notes/maps/pr-102176-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102176-map.yaml @@ -1,4 +1,4 @@ -pr: 102176 -releasenote: - text: Fixed `garbage collection` of dangling `VolumeAttachments` for `PersistentVolumes` - migrated to CSI on startup of `kube-controller-manager`. +pr: 102176 +releasenote: + text: Fixed `garbage collection` of dangling `VolumeAttachments` for `PersistentVolumes` + migrated to CSI on startup of `kube-controller-manager`. diff --git a/releases/release-1.22/release-notes/maps/pr-102193-map.yaml b/releases/release-1.22/release-notes/maps/pr-102193-map.yaml index 60a65f11909..dd6f027faea 100644 --- a/releases/release-1.22/release-notes/maps/pr-102193-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102193-map.yaml @@ -1,3 +1,3 @@ -pr: 102193 -releasenote: - text: Upgrade functionality of `kubectl kustomize` as described at [kustomize/v4.1.3](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.3). +pr: 102193 +releasenote: + text: Upgrade functionality of `kubectl kustomize` as described at [kustomize/v4.1.3](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.3). diff --git a/releases/release-1.22/release-notes/maps/pr-102201-map.yaml b/releases/release-1.22/release-notes/maps/pr-102201-map.yaml index 143866554c4..1ab05980d63 100644 --- a/releases/release-1.22/release-notes/maps/pr-102201-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102201-map.yaml @@ -1,3 +1,3 @@ -pr: 102201 -releasenote: - text: The prefer nominated node graduates to Beta and enabld by default. +pr: 102201 +releasenote: + text: The prefer nominated node graduates to Beta and enabld by default. diff --git a/releases/release-1.22/release-notes/maps/pr-102239-map.yaml b/releases/release-1.22/release-notes/maps/pr-102239-map.yaml index 99d38efad43..751eb19763e 100644 --- a/releases/release-1.22/release-notes/maps/pr-102239-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102239-map.yaml @@ -1,4 +1,4 @@ -pr: 102239 -releasenote: - text: The deprecated flag `--algorithm-provider` has been removed from `kube-scheduler`. - Use instead `ComponentConfig` to configure the set of enabled plugins. +pr: 102239 +releasenote: + text: The deprecated flag `--algorithm-provider` has been removed from `kube-scheduler`. + Use instead `ComponentConfig` to configure the set of enabled plugins. diff --git a/releases/release-1.22/release-notes/maps/pr-102297-map.yaml b/releases/release-1.22/release-notes/maps/pr-102297-map.yaml index b661a52ac6d..1966401cb24 100644 --- a/releases/release-1.22/release-notes/maps/pr-102297-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102297-map.yaml @@ -1,4 +1,4 @@ -pr: 102297 -releasenote: - text: The options `--ssh-user` and `--ssh-key` are removed. They only functioned on - GCE, and only in-tree. Use the apiserver network proxy instead. +pr: 102297 +releasenote: + text: The options `--ssh-user` and `--ssh-key` are removed. They only functioned on + GCE, and only in-tree. Use the apiserver network proxy instead. diff --git a/releases/release-1.22/release-notes/maps/pr-102302-map.yaml b/releases/release-1.22/release-notes/maps/pr-102302-map.yaml index a8b6e9de7a7..fd3b6277f95 100644 --- a/releases/release-1.22/release-notes/maps/pr-102302-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102302-map.yaml @@ -1,6 +1,6 @@ -pr: 102302 -releasenote: - text: |- - Update the Debian images to pick up CVE fixes in the base images: - - Update the `debian-base` image to v1.7.0 - - Update the `debian-iptables` image to v1.6.1 +pr: 102302 +releasenote: + text: |- + Update the Debian images to pick up CVE fixes in the base images: + - Update the `debian-base` image to v1.7.0 + - Update the `debian-iptables` image to v1.6.1 diff --git a/releases/release-1.22/release-notes/maps/pr-102323-map.yaml b/releases/release-1.22/release-notes/maps/pr-102323-map.yaml index 8957a678465..1c6a68b511a 100644 --- a/releases/release-1.22/release-notes/maps/pr-102323-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102323-map.yaml @@ -1,4 +1,4 @@ -pr: 102323 -releasenote: - text: Changed buildmode of non static Kubernetes binaries to produce position independent - executables (PIE). +pr: 102323 +releasenote: + text: Changed buildmode of non static Kubernetes binaries to produce position independent + executables (PIE). diff --git a/releases/release-1.22/release-notes/maps/pr-102328-map.yaml b/releases/release-1.22/release-notes/maps/pr-102328-map.yaml index db93d0bb60b..9292da7ed1b 100644 --- a/releases/release-1.22/release-notes/maps/pr-102328-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102328-map.yaml @@ -1,3 +1,3 @@ -pr: 102328 -releasenote: - text: Update CNI plugins to v0.9.1. +pr: 102328 +releasenote: + text: Update CNI plugins to v0.9.1. diff --git a/releases/release-1.22/release-notes/maps/pr-102332-map.yaml b/releases/release-1.22/release-notes/maps/pr-102332-map.yaml index af977e4e0b9..5f72adf527b 100644 --- a/releases/release-1.22/release-notes/maps/pr-102332-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102332-map.yaml @@ -1,3 +1,3 @@ -pr: 102332 -releasenote: - text: Update klog v2.9.0. +pr: 102332 +releasenote: + text: Update klog v2.9.0. diff --git a/releases/release-1.22/release-notes/maps/pr-102363-map.yaml b/releases/release-1.22/release-notes/maps/pr-102363-map.yaml index f3f0c58e848..f2f797ecfdb 100644 --- a/releases/release-1.22/release-notes/maps/pr-102363-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102363-map.yaml @@ -1,3 +1,3 @@ -pr: 102363 -releasenote: - text: Promote Cronjobs storage version to `batch/v1`. +pr: 102363 +releasenote: + text: Promote Cronjobs storage version to `batch/v1`. diff --git a/releases/release-1.22/release-notes/maps/pr-102366-map.yaml b/releases/release-1.22/release-notes/maps/pr-102366-map.yaml index e60c8d1f461..5e52092d914 100644 --- a/releases/release-1.22/release-notes/maps/pr-102366-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102366-map.yaml @@ -1,4 +1,4 @@ -pr: 102366 -releasenote: - text: Because of the implementation logic of `time.Format` in golang, the displayed - time zone is not consistent. +pr: 102366 +releasenote: + text: Because of the implementation logic of `time.Format` in golang, the displayed + time zone is not consistent. diff --git a/releases/release-1.22/release-notes/maps/pr-102377-map.yaml b/releases/release-1.22/release-notes/maps/pr-102377-map.yaml index 24c0bc44427..c76b6e805a1 100644 --- a/releases/release-1.22/release-notes/maps/pr-102377-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102377-map.yaml @@ -1,3 +1,3 @@ -pr: 102377 -releasenote: - text: Update the setcap image to buster-v2.0.1. +pr: 102377 +releasenote: + text: Update the setcap image to buster-v2.0.1. diff --git a/releases/release-1.22/release-notes/maps/pr-102386-map.yaml b/releases/release-1.22/release-notes/maps/pr-102386-map.yaml index 572b5d0bade..69ec7097d86 100644 --- a/releases/release-1.22/release-notes/maps/pr-102386-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102386-map.yaml @@ -1,3 +1,3 @@ -pr: 102386 -releasenote: - text: Update Calico to v3.19.1. +pr: 102386 +releasenote: + text: Update Calico to v3.19.1. diff --git a/releases/release-1.22/release-notes/maps/pr-102412-map.yaml b/releases/release-1.22/release-notes/maps/pr-102412-map.yaml index ecf2ec56dbf..df801bfecb6 100644 --- a/releases/release-1.22/release-notes/maps/pr-102412-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102412-map.yaml @@ -1,6 +1,6 @@ -pr: 102412 -releasenote: - text: Remove support for the Service `topologyKeys` field (alpha) and the `kube-proxy` - implementation of it. This field was deprecated several cycles ago. This functionality - is replaced by the combination of automatic topology hints per-endpoint (alpha) - and the Service `internalTrafficPolicy` field (alpha). +pr: 102412 +releasenote: + text: Remove support for the Service `topologyKeys` field (alpha) and the `kube-proxy` + implementation of it. This field was deprecated several cycles ago. This functionality + is replaced by the combination of automatic topology hints per-endpoint (alpha) + and the Service `internalTrafficPolicy` field (alpha). diff --git a/releases/release-1.22/release-notes/maps/pr-102414-map.yaml b/releases/release-1.22/release-notes/maps/pr-102414-map.yaml index 5b14e82ac4d..71e6d409fbf 100644 --- a/releases/release-1.22/release-notes/maps/pr-102414-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102414-map.yaml @@ -1,4 +1,4 @@ -pr: 102414 -releasenote: - text: Newly provisioned PVs by vSphere in-tree plugin will no longer have the beta - `FailureDomain` label. vSphere volume plugin will start to have GA topology label +pr: 102414 +releasenote: + text: Newly provisioned PVs by vSphere in-tree plugin will no longer have the beta + `FailureDomain` label. vSphere volume plugin will start to have GA topology label diff --git a/releases/release-1.22/release-notes/maps/pr-102437-map.yaml b/releases/release-1.22/release-notes/maps/pr-102437-map.yaml index 7323d8d46f9..0300e9b7fca 100644 --- a/releases/release-1.22/release-notes/maps/pr-102437-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102437-map.yaml @@ -1,4 +1,4 @@ -pr: 102437 -releasenote: - text: JSON logging now supports having information about source code location in - the logging format, source code information is available under the key "caller". +pr: 102437 +releasenote: + text: JSON logging now supports having information about source code location in + the logging format, source code information is available under the key "caller". diff --git a/releases/release-1.22/release-notes/maps/pr-102441-map.yaml b/releases/release-1.22/release-notes/maps/pr-102441-map.yaml index 325b98d52a5..a8d4fa63287 100644 --- a/releases/release-1.22/release-notes/maps/pr-102441-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102441-map.yaml @@ -1,3 +1,3 @@ -pr: 102441 -releasenote: - text: Update Azure Go SDK to v55.0.0. +pr: 102441 +releasenote: + text: Update Azure Go SDK to v55.0.0. diff --git a/releases/release-1.22/release-notes/maps/pr-102443-map.yaml b/releases/release-1.22/release-notes/maps/pr-102443-map.yaml index dce8e8dca55..2ef5138fe69 100644 --- a/releases/release-1.22/release-notes/maps/pr-102443-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102443-map.yaml @@ -1,3 +1,3 @@ -pr: 102443 -releasenote: - text: Remove balanced attached node volumes feature. +pr: 102443 +releasenote: + text: Remove balanced attached node volumes feature. diff --git a/releases/release-1.22/release-notes/maps/pr-102444-map.yaml b/releases/release-1.22/release-notes/maps/pr-102444-map.yaml index c1f8462aeed..e651e6056cf 100644 --- a/releases/release-1.22/release-notes/maps/pr-102444-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102444-map.yaml @@ -1,4 +1,4 @@ -pr: 102444 -releasenote: - text: Expose container start time as `container_start_time_seconds` in the kubelet - `/metrics/resource` endpoint. +pr: 102444 +releasenote: + text: Expose container start time as `container_start_time_seconds` in the kubelet + `/metrics/resource` endpoint. diff --git a/releases/release-1.22/release-notes/maps/pr-102461-map.yaml b/releases/release-1.22/release-notes/maps/pr-102461-map.yaml index 677c382f912..cc478d7ec93 100644 --- a/releases/release-1.22/release-notes/maps/pr-102461-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102461-map.yaml @@ -1,3 +1,3 @@ -pr: 102461 -releasenote: - text: Improve func `ToSelectableFields`' performance for event. +pr: 102461 +releasenote: + text: Improve func `ToSelectableFields`' performance for event. diff --git a/releases/release-1.22/release-notes/maps/pr-102466-map.yaml b/releases/release-1.22/release-notes/maps/pr-102466-map.yaml index 8f1869599f1..cf2706a34fe 100644 --- a/releases/release-1.22/release-notes/maps/pr-102466-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102466-map.yaml @@ -1,4 +1,4 @@ -pr: 102466 -releasenote: - text: 'kubeadm: update `CoreDNS` to 1.8.4. Grant `CoreDNS` permissions to "list" - and "watch" `EndpointSlice` objects to accommodate dual-stack support.' +pr: 102466 +releasenote: + text: 'kubeadm: update `CoreDNS` to 1.8.4. Grant `CoreDNS` permissions to "list" + and "watch" `EndpointSlice` objects to accommodate dual-stack support.' diff --git a/releases/release-1.22/release-notes/maps/pr-102467-map.yaml b/releases/release-1.22/release-notes/maps/pr-102467-map.yaml index 85e66fcd592..819e56688e2 100644 --- a/releases/release-1.22/release-notes/maps/pr-102467-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102467-map.yaml @@ -1,3 +1,3 @@ -pr: 102467 -releasenote: - text: Fix how nulls are handled in array and objects in [json patches](https://github.com/evanphx/json-patch). +pr: 102467 +releasenote: + text: Fix how nulls are handled in array and objects in [json patches](https://github.com/evanphx/json-patch). diff --git a/releases/release-1.22/release-notes/maps/pr-102489-map.yaml b/releases/release-1.22/release-notes/maps/pr-102489-map.yaml index 4046001edb5..5cdca4cebfd 100644 --- a/releases/release-1.22/release-notes/maps/pr-102489-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102489-map.yaml @@ -1,3 +1,3 @@ -pr: 102489 -releasenote: - text: Fixed 'kubelet' runtime panic for timed-out portforward streams. +pr: 102489 +releasenote: + text: Fixed 'kubelet' runtime panic for timed-out portforward streams. diff --git a/releases/release-1.22/release-notes/maps/pr-102498-map.yaml b/releases/release-1.22/release-notes/maps/pr-102498-map.yaml index c89cff21d2e..c3aba1439a9 100644 --- a/releases/release-1.22/release-notes/maps/pr-102498-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102498-map.yaml @@ -1,3 +1,3 @@ -pr: 102498 -releasenote: - text: Fix a bug that a preemptor pod may exist as a phantom in the scheduler. +pr: 102498 +releasenote: + text: Fix a bug that a preemptor pod may exist as a phantom in the scheduler. diff --git a/releases/release-1.22/release-notes/maps/pr-102502-map.yaml b/releases/release-1.22/release-notes/maps/pr-102502-map.yaml index a44e649b82a..704b777dd1a 100644 --- a/releases/release-1.22/release-notes/maps/pr-102502-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102502-map.yaml @@ -1,9 +1,9 @@ -pr: 102502 -releasenote: - text: "kubeadm: when using a custom image repository for CoreDNS kubeadm now will - append the `coredns` image name instead of `coredns/coredns`, thus restoring - the behaviour existing before the v1.21 release. Users who rely on nested folder - for the coredns image should set the `clusterConfiguration.dns.imageRepository` - value including the nested path name (e.g using `registry.company.xyz/coredns` - will force kubeadm to use `registry.company.xyz/coredns/coredns` image). No action - is needed if using the default registry (k8s.gcr.io)." +pr: 102502 +releasenote: + text: "kubeadm: when using a custom image repository for CoreDNS kubeadm now will + append the `coredns` image name instead of `coredns/coredns`, thus restoring + the behaviour existing before the v1.21 release. Users who rely on nested folder + for the coredns image should set the `clusterConfiguration.dns.imageRepository` + value including the nested path name (e.g using `registry.company.xyz/coredns` + will force kubeadm to use `registry.company.xyz/coredns/coredns` image). No action + is needed if using the default registry (k8s.gcr.io)." diff --git a/releases/release-1.22/release-notes/maps/pr-102509-map.yaml b/releases/release-1.22/release-notes/maps/pr-102509-map.yaml index d9fd35eb745..24b11caacc6 100644 --- a/releases/release-1.22/release-notes/maps/pr-102509-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102509-map.yaml @@ -1,6 +1,6 @@ -pr: 102509 -releasenote: - text: |- - Clarified the description of a test in the e2e suite that mentions "SCTP" but is - actually intended to be testing the behavior of network plugins that don't - implement SCTP. +pr: 102509 +releasenote: + text: |- + Clarified the description of a test in the e2e suite that mentions "SCTP" but is + actually intended to be testing the behavior of network plugins that don't + implement SCTP. diff --git a/releases/release-1.22/release-notes/maps/pr-102516-map.yaml b/releases/release-1.22/release-notes/maps/pr-102516-map.yaml index cdf37b3c4f6..e35bc125e63 100644 --- a/releases/release-1.22/release-notes/maps/pr-102516-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102516-map.yaml @@ -1,4 +1,4 @@ -pr: 102516 -releasenote: - text: The `serviceOwnsFrontendIP` shouldn't report error when the public IP doesn't - match. +pr: 102516 +releasenote: + text: The `serviceOwnsFrontendIP` shouldn't report error when the public IP doesn't + match. diff --git a/releases/release-1.22/release-notes/maps/pr-102529-map.yaml b/releases/release-1.22/release-notes/maps/pr-102529-map.yaml index 3b4b1f15a3b..77d2691d46c 100644 --- a/releases/release-1.22/release-notes/maps/pr-102529-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102529-map.yaml @@ -1,3 +1,3 @@ -pr: 102529 -releasenote: - text: Promote `CronJobControllerV2` flag to GA, with removal in 1.23. +pr: 102529 +releasenote: + text: Promote `CronJobControllerV2` flag to GA, with removal in 1.23. diff --git a/releases/release-1.22/release-notes/maps/pr-102539-map.yaml b/releases/release-1.22/release-notes/maps/pr-102539-map.yaml index 41090fc335c..86eb1fed00f 100644 --- a/releases/release-1.22/release-notes/maps/pr-102539-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102539-map.yaml @@ -1,4 +1,4 @@ -pr: 102539 -releasenote: - text: Fixes issue with websocket-based watches of Service objects not closing correctly - on timeout. +pr: 102539 +releasenote: + text: Fixes issue with websocket-based watches of Service objects not closing correctly + on timeout. diff --git a/releases/release-1.22/release-notes/maps/pr-102578-map.yaml b/releases/release-1.22/release-notes/maps/pr-102578-map.yaml index 28b66ba62f6..f0f1b042b3f 100644 --- a/releases/release-1.22/release-notes/maps/pr-102578-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102578-map.yaml @@ -1,3 +1,3 @@ -pr: 102578 -releasenote: - text: Add unified map on CRI to support `cgroup v2`. Refer to https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#unified. +pr: 102578 +releasenote: + text: Add unified map on CRI to support `cgroup v2`. Refer to https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#unified. diff --git a/releases/release-1.22/release-notes/maps/pr-102590-map.yaml b/releases/release-1.22/release-notes/maps/pr-102590-map.yaml index 2b66d0aa1d6..f43b8fa96e8 100644 --- a/releases/release-1.22/release-notes/maps/pr-102590-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102590-map.yaml @@ -1,5 +1,5 @@ -pr: 102590 -releasenote: - text: |- - Update `kube-proxy` base image `debian-iptables` to v1.6.2 to pickup [documentation](https://github.com/kubernetes/release/pull/2106) - \n"- `debian-iptables`: select nft mode if ntf lines > legacy lines, matching [iptables-wrappers](https://github.com/kubernetes-sigs/iptables-wrappers/)" +pr: 102590 +releasenote: + text: |- + Update `kube-proxy` base image `debian-iptables` to v1.6.2 to pickup [documentation](https://github.com/kubernetes/release/pull/2106) + \n"- `debian-iptables`: select nft mode if ntf lines > legacy lines, matching [iptables-wrappers](https://github.com/kubernetes-sigs/iptables-wrappers/)" diff --git a/releases/release-1.22/release-notes/maps/pr-102594-map.yaml b/releases/release-1.22/release-notes/maps/pr-102594-map.yaml index df1aaa57e2b..1f02b7b0af2 100644 --- a/releases/release-1.22/release-notes/maps/pr-102594-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102594-map.yaml @@ -1,3 +1,3 @@ -pr: 102594 -releasenote: - text: 'base-images: Update to `debian-base:buster-v1.7.1`' +pr: 102594 +releasenote: + text: 'base-images: Update to `debian-base:buster-v1.7.1`' diff --git a/releases/release-1.22/release-notes/maps/pr-102598-map.yaml b/releases/release-1.22/release-notes/maps/pr-102598-map.yaml index 58d47806aeb..660e2868d12 100644 --- a/releases/release-1.22/release-notes/maps/pr-102598-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102598-map.yaml @@ -1,5 +1,5 @@ -pr: 102598 -releasenote: - text: 'e2e.test: removed the `--viper-config` flag. If you were previously using - this to pass flags to `e2e.test` via a file, you will need to pass them directly - on the command line, e.g. `e2e.test --e2e-output-dir`.' +pr: 102598 +releasenote: + text: 'e2e.test: removed the `--viper-config` flag. If you were previously using + this to pass flags to `e2e.test` via a file, you will need to pass them directly + on the command line, e.g. `e2e.test --e2e-output-dir`.' diff --git a/releases/release-1.22/release-notes/maps/pr-102620-map.yaml b/releases/release-1.22/release-notes/maps/pr-102620-map.yaml index ac12670e231..686b24291f0 100644 --- a/releases/release-1.22/release-notes/maps/pr-102620-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102620-map.yaml @@ -1,3 +1,3 @@ -pr: 102620 -releasenote: - text: Disable log sampling when using json logging format. +pr: 102620 +releasenote: + text: Disable log sampling when using json logging format. diff --git a/releases/release-1.22/release-notes/maps/pr-102642-map.yaml b/releases/release-1.22/release-notes/maps/pr-102642-map.yaml index 2daf55405c2..b23e3a80cff 100644 --- a/releases/release-1.22/release-notes/maps/pr-102642-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102642-map.yaml @@ -1,4 +1,4 @@ -pr: 102642 -releasenote: - text: Fixed a bug due to which the controller was not populating the `lastSuccessfulTime` - field added to `cronjob.status` in `batch/v1`. +pr: 102642 +releasenote: + text: Fixed a bug due to which the controller was not populating the `lastSuccessfulTime` + field added to `cronjob.status` in `batch/v1`. diff --git a/releases/release-1.22/release-notes/maps/pr-102665-map.yaml b/releases/release-1.22/release-notes/maps/pr-102665-map.yaml index 89d2b4c9eee..85529ed37e4 100644 --- a/releases/release-1.22/release-notes/maps/pr-102665-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102665-map.yaml @@ -1,3 +1,3 @@ -pr: 102665 -releasenote: - text: Allow CSI drivers to just run offline expansion tests. +pr: 102665 +releasenote: + text: Allow CSI drivers to just run offline expansion tests. diff --git a/releases/release-1.22/release-notes/maps/pr-102677-map.yaml b/releases/release-1.22/release-notes/maps/pr-102677-map.yaml index 20e5d4897cc..e47634e8d0a 100644 --- a/releases/release-1.22/release-notes/maps/pr-102677-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102677-map.yaml @@ -1,3 +1,3 @@ -pr: 102677 -releasenote: - text: Deprecated warning message for `igonre-errors` flag. +pr: 102677 +releasenote: + text: Deprecated warning message for `igonre-errors` flag. diff --git a/releases/release-1.22/release-notes/maps/pr-102683-map.yaml b/releases/release-1.22/release-notes/maps/pr-102683-map.yaml index 72d97f30b9a..9449ad7723c 100644 --- a/releases/release-1.22/release-notes/maps/pr-102683-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102683-map.yaml @@ -1,4 +1,4 @@ -pr: 102683 -releasenote: - text: Fix a bug on the `endpointslicemirroring` controller where endpoint `NotReadyAddresses` - were mirrored as Ready to the corresponding `EndpointSlice`. +pr: 102683 +releasenote: + text: Fix a bug on the `endpointslicemirroring` controller where endpoint `NotReadyAddresses` + were mirrored as Ready to the corresponding `EndpointSlice`. diff --git a/releases/release-1.22/release-notes/maps/pr-102689-map.yaml b/releases/release-1.22/release-notes/maps/pr-102689-map.yaml index 02a5fcb95de..4f049e88aea 100644 --- a/releases/release-1.22/release-notes/maps/pr-102689-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102689-map.yaml @@ -1,3 +1,3 @@ -pr: 102689 -releasenote: - text: Kubernetes is now built with Golang 1.16.5. +pr: 102689 +releasenote: + text: Kubernetes is now built with Golang 1.16.5. diff --git a/releases/release-1.22/release-notes/maps/pr-102711-map.yaml b/releases/release-1.22/release-notes/maps/pr-102711-map.yaml index 208a89cf6b2..e013355c7e7 100644 --- a/releases/release-1.22/release-notes/maps/pr-102711-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102711-map.yaml @@ -1,4 +1,4 @@ -pr: 102711 -releasenote: - text: The "Leader Migration" now support a wildcard component name and the default - value. +pr: 102711 +releasenote: + text: The "Leader Migration" now support a wildcard component name and the default + value. diff --git a/releases/release-1.22/release-notes/maps/pr-102722-map.yaml b/releases/release-1.22/release-notes/maps/pr-102722-map.yaml index 9d824c6c4a5..2620047e39e 100644 --- a/releases/release-1.22/release-notes/maps/pr-102722-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102722-map.yaml @@ -1,4 +1,4 @@ -pr: 102722 -releasenote: - text: 'kubeadm: add the `--dry-run` flag to the `control-plane` phase of "kubeadm - init".' +pr: 102722 +releasenote: + text: 'kubeadm: add the `--dry-run` flag to the `control-plane` phase of "kubeadm + init".' diff --git a/releases/release-1.22/release-notes/maps/pr-102731-map.yaml b/releases/release-1.22/release-notes/maps/pr-102731-map.yaml index e8646e2ad8b..50e7f874069 100644 --- a/releases/release-1.22/release-notes/maps/pr-102731-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102731-map.yaml @@ -1,4 +1,4 @@ -pr: 102731 -releasenote: - text: The `EndpointSlicen Mirroring controller` no longer mirrors the `last-applied-configuration` - annotation created by `kubectl` to update `EndpointSlices`. +pr: 102731 +releasenote: + text: The `EndpointSlicen Mirroring controller` no longer mirrors the `last-applied-configuration` + annotation created by `kubectl` to update `EndpointSlices`. diff --git a/releases/release-1.22/release-notes/maps/pr-102783-map.yaml b/releases/release-1.22/release-notes/maps/pr-102783-map.yaml index dcc0dd657fa..6e7190689eb 100644 --- a/releases/release-1.22/release-notes/maps/pr-102783-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102783-map.yaml @@ -1,4 +1,4 @@ -pr: 102783 -releasenote: - text: Update dep `google/gnostic` and `google/go-cmp` to v0.5.5 and updating transitive - dependencies `protobuf`. +pr: 102783 +releasenote: + text: Update dep `google/gnostic` and `google/go-cmp` to v0.5.5 and updating transitive + dependencies `protobuf`. diff --git a/releases/release-1.22/release-notes/maps/pr-102788-map.yaml b/releases/release-1.22/release-notes/maps/pr-102788-map.yaml index 9c51343de23..fdd08197e15 100644 --- a/releases/release-1.22/release-notes/maps/pr-102788-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102788-map.yaml @@ -1,4 +1,4 @@ -pr: 102788 -releasenote: - text: 'client-go: reduce verbosity of `Starting/Stopping reflector` messages to - 3 again.' +pr: 102788 +releasenote: + text: 'client-go: reduce verbosity of `Starting/Stopping reflector` messages to + 3 again.' diff --git a/releases/release-1.22/release-notes/maps/pr-102795-map.yaml b/releases/release-1.22/release-notes/maps/pr-102795-map.yaml index af7f3ce66ad..994837dbcf7 100644 --- a/releases/release-1.22/release-notes/maps/pr-102795-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102795-map.yaml @@ -1,5 +1,5 @@ -pr: 102795 -releasenote: - text: |- - Added a new metric `apiserver_flowcontrol_request_concurrency_in_use` that shows the number of - seats (concurrency) occupied by the currently executing requests in the API Priority and Fairness system. +pr: 102795 +releasenote: + text: |- + Added a new metric `apiserver_flowcontrol_request_concurrency_in_use` that shows the number of + seats (concurrency) occupied by the currently executing requests in the API Priority and Fairness system. diff --git a/releases/release-1.22/release-notes/maps/pr-102805-map.yaml b/releases/release-1.22/release-notes/maps/pr-102805-map.yaml index 451f547541d..30687a24a5d 100644 --- a/releases/release-1.22/release-notes/maps/pr-102805-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102805-map.yaml @@ -1,5 +1,5 @@ -pr: 102805 -releasenote: - text: The deprecated flag `--hard-pod-affinity-symmetric-weight` and `--scheduler-name` - have been removed from `kube-scheduler`. Use `ComponentConfig` instead to configure - those parameters. +pr: 102805 +releasenote: + text: The deprecated flag `--hard-pod-affinity-symmetric-weight` and `--scheduler-name` + have been removed from `kube-scheduler`. Use `ComponentConfig` instead to configure + those parameters. diff --git a/releases/release-1.22/release-notes/maps/pr-102821-map.yaml b/releases/release-1.22/release-notes/maps/pr-102821-map.yaml index 655a901dc79..1e4af6a720a 100644 --- a/releases/release-1.22/release-notes/maps/pr-102821-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102821-map.yaml @@ -1,4 +1,4 @@ -pr: 102821 -releasenote: - text: Pods that are known to the kubelet to have previously been Running should - not revert to Pending state, the kubelet will now infer a termination. +pr: 102821 +releasenote: + text: Pods that are known to the kubelet to have previously been Running should + not revert to Pending state, the kubelet will now infer a termination. diff --git a/releases/release-1.22/release-notes/maps/pr-102823-map.yaml b/releases/release-1.22/release-notes/maps/pr-102823-map.yaml index a54bf0c690e..8dfc3af543c 100644 --- a/releases/release-1.22/release-notes/maps/pr-102823-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102823-map.yaml @@ -1,5 +1,5 @@ -pr: 102823 -releasenote: - text: Alpha swap support can now be enabled on Kubernetes nodes with the `NodeSwapEnabled` - feature flag. See [KEP-2400](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md#design-details) - for details. +pr: 102823 +releasenote: + text: Alpha swap support can now be enabled on Kubernetes nodes with the `NodeSwapEnabled` + feature flag. See [KEP-2400](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md#design-details) + for details. diff --git a/releases/release-1.22/release-notes/maps/pr-102825-map.yaml b/releases/release-1.22/release-notes/maps/pr-102825-map.yaml index a746f2853e0..81ed9bfddc7 100644 --- a/releases/release-1.22/release-notes/maps/pr-102825-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102825-map.yaml @@ -1,4 +1,4 @@ -pr: 102825 -releasenote: - text: Fix an issue with `kubectl` on certain older version of Windows or when legacy - console mode is enabled on Windows 8 which causes `kubectl exec` to crash. +pr: 102825 +releasenote: + text: Fix an issue with `kubectl` on certain older version of Windows or when legacy + console mode is enabled on Windows 8 which causes `kubectl exec` to crash. diff --git a/releases/release-1.22/release-notes/maps/pr-102834-map.yaml b/releases/release-1.22/release-notes/maps/pr-102834-map.yaml index c2625f57f05..1e4af518e3a 100644 --- a/releases/release-1.22/release-notes/maps/pr-102834-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102834-map.yaml @@ -1,3 +1,3 @@ -pr: 102834 -releasenote: - text: The `NetworkPolicyEndPort` is graduated to beta and is enabled by default. +pr: 102834 +releasenote: + text: The `NetworkPolicyEndPort` is graduated to beta and is enabled by default. diff --git a/releases/release-1.22/release-notes/maps/pr-102840-map.yaml b/releases/release-1.22/release-notes/maps/pr-102840-map.yaml index fe9df8a2072..95cc6958235 100644 --- a/releases/release-1.22/release-notes/maps/pr-102840-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102840-map.yaml @@ -1,5 +1,5 @@ -pr: 102840 -releasenote: - text: |- - Updated the Graceful Node Shutdown Pod termination reason and message. - Updated the Graceful Node Shutdown Pod rejection reason and message. +pr: 102840 +releasenote: + text: |- + Updated the Graceful Node Shutdown Pod termination reason and message. + Updated the Graceful Node Shutdown Pod rejection reason and message. diff --git a/releases/release-1.22/release-notes/maps/pr-102858-map.yaml b/releases/release-1.22/release-notes/maps/pr-102858-map.yaml index 3effdee4679..c8bbd579de1 100644 --- a/releases/release-1.22/release-notes/maps/pr-102858-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102858-map.yaml @@ -1,3 +1,3 @@ -pr: 102858 -releasenote: - text: Aggregate write permissions on events to users with edit and admin role. +pr: 102858 +releasenote: + text: Aggregate write permissions on events to users with edit and admin role. diff --git a/releases/release-1.22/release-notes/maps/pr-102873-map.yaml b/releases/release-1.22/release-notes/maps/pr-102873-map.yaml index bd9049020cd..17dae8ea428 100644 --- a/releases/release-1.22/release-notes/maps/pr-102873-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102873-map.yaml @@ -1,5 +1,5 @@ -pr: 102873 -releasenote: - text: Deprecate `--record` flag in `kubectl`. The `--record` flag is being replaced - with the [mechanism](https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers) - which annotates HTTP requests with kubectl command details. +pr: 102873 +releasenote: + text: Deprecate `--record` flag in `kubectl`. The `--record` flag is being replaced + with the [mechanism](https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers) + which annotates HTTP requests with kubectl command details. diff --git a/releases/release-1.22/release-notes/maps/pr-102890-map.yaml b/releases/release-1.22/release-notes/maps/pr-102890-map.yaml index d3c935463d2..b6c6158a917 100644 --- a/releases/release-1.22/release-notes/maps/pr-102890-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102890-map.yaml @@ -1,3 +1,3 @@ -pr: 102890 -releasenote: - text: The client-go credential plugins are now GA and are enabled by default. +pr: 102890 +releasenote: + text: The client-go credential plugins are now GA and are enabled by default. diff --git a/releases/release-1.22/release-notes/maps/pr-102892-map.yaml b/releases/release-1.22/release-notes/maps/pr-102892-map.yaml index 73e2acb8010..74fcc19d6b6 100644 --- a/releases/release-1.22/release-notes/maps/pr-102892-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102892-map.yaml @@ -1,4 +1,4 @@ -pr: 102892 -releasenote: - text: 'For vSphere: fix regression during attach disk if datastore is within a storage - folder or datastore cluster.' +pr: 102892 +releasenote: + text: 'For vSphere: fix regression during attach disk if datastore is within a storage + folder or datastore cluster.' diff --git a/releases/release-1.22/release-notes/maps/pr-102901-map.yaml b/releases/release-1.22/release-notes/maps/pr-102901-map.yaml index dfd7097533b..91d6df1fbb9 100644 --- a/releases/release-1.22/release-notes/maps/pr-102901-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102901-map.yaml @@ -1,7 +1,7 @@ -pr: 102901 -releasenote: - text: 'kubeadm: add the `imagePullPolicy` field in the `nodeRegistration` section - of `InitConfiguration` and `JoinConfiguration` in `v1beta3`. This allows the user - to specify the image pull policy during "kubeadm init" and "kubeadm join". The - value of this field must be one of `Always`, `IfNotPresent` or `Never`. The default - behavior continues to be `IfNotPresent`.' +pr: 102901 +releasenote: + text: 'kubeadm: add the `imagePullPolicy` field in the `nodeRegistration` section + of `InitConfiguration` and `JoinConfiguration` in `v1beta3`. This allows the user + to specify the image pull policy during "kubeadm init" and "kubeadm join". The + value of this field must be one of `Always`, `IfNotPresent` or `Never`. The default + behavior continues to be `IfNotPresent`.' diff --git a/releases/release-1.22/release-notes/maps/pr-102925-map.yaml b/releases/release-1.22/release-notes/maps/pr-102925-map.yaml index 2715299adab..57126f4bbf8 100644 --- a/releases/release-1.22/release-notes/maps/pr-102925-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102925-map.yaml @@ -1,5 +1,5 @@ -pr: 102925 -releasenote: - text: Fix scoring for `NodeResourcesMostAllocated` and `NodeResourcesBalancedAllocation` - plugins when nodes have containers with no requests. This was leaving to under-utilization - of small nodes. +pr: 102925 +releasenote: + text: Fix scoring for `NodeResourcesMostAllocated` and `NodeResourcesBalancedAllocation` + plugins when nodes have containers with no requests. This was leaving to under-utilization + of small nodes. diff --git a/releases/release-1.22/release-notes/maps/pr-102934-map.yaml b/releases/release-1.22/release-notes/maps/pr-102934-map.yaml index a6953a8af05..16f30f6928a 100644 --- a/releases/release-1.22/release-notes/maps/pr-102934-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102934-map.yaml @@ -1,4 +1,4 @@ -pr: 102934 -releasenote: - text: The `kube-apiserver` now reports the synthetic verb when logging requests, - better explaining the user intent and matching what is reported in the metrics. +pr: 102934 +releasenote: + text: The `kube-apiserver` now reports the synthetic verb when logging requests, + better explaining the user intent and matching what is reported in the metrics. diff --git a/releases/release-1.22/release-notes/maps/pr-102935-map.yaml b/releases/release-1.22/release-notes/maps/pr-102935-map.yaml index d75519f9c4a..e4a3db377fc 100644 --- a/releases/release-1.22/release-notes/maps/pr-102935-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102935-map.yaml @@ -1,3 +1,3 @@ -pr: 102935 -releasenote: - text: 'Applying fix: cleanup outdated routes.' +pr: 102935 +releasenote: + text: 'Applying fix: cleanup outdated routes.' diff --git a/releases/release-1.22/release-notes/maps/pr-102965-map.yaml b/releases/release-1.22/release-notes/maps/pr-102965-map.yaml index 55c7ed261f5..3a64ed59f45 100644 --- a/releases/release-1.22/release-notes/maps/pr-102965-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102965-map.yaml @@ -1,3 +1,3 @@ -pr: 102965 -releasenote: - text: Updates hostprocess tests to specify user. +pr: 102965 +releasenote: + text: Updates hostprocess tests to specify user. diff --git a/releases/release-1.22/release-notes/maps/pr-102970-map.yaml b/releases/release-1.22/release-notes/maps/pr-102970-map.yaml index ddfc07be82d..34e3c88bf57 100644 --- a/releases/release-1.22/release-notes/maps/pr-102970-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-102970-map.yaml @@ -1,6 +1,6 @@ -pr: 102970 -releasenote: - text: Introducing Memory quality of service support with `cgroups v2 (Alpha)`. The `MemoryQoS` - feature is now in Alpha. This allows `kubelet` running with `cgroups v2` to set - memory QoS at container, pod and QoS level to protect and guarantee better memory - quality. This feature can be enabled through feature gate Memory QoS. +pr: 102970 +releasenote: + text: Introducing Memory quality of service support with `cgroups v2 (Alpha)`. The `MemoryQoS` + feature is now in Alpha. This allows `kubelet` running with `cgroups v2` to set + memory QoS at container, pod and QoS level to protect and guarantee better memory + quality. This feature can be enabled through feature gate Memory QoS. diff --git a/releases/release-1.22/release-notes/maps/pr-103001-map.yaml b/releases/release-1.22/release-notes/maps/pr-103001-map.yaml index 930f2f0b980..ad6ff27614a 100644 --- a/releases/release-1.22/release-notes/maps/pr-103001-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103001-map.yaml @@ -1,3 +1,3 @@ -pr: 103001 -releasenote: - text: The `CSIServiceAccountToken` graduates to Ga and is unconditionally enabled. +pr: 103001 +releasenote: + text: The `CSIServiceAccountToken` graduates to Ga and is unconditionally enabled. diff --git a/releases/release-1.22/release-notes/maps/pr-103019-map.yaml b/releases/release-1.22/release-notes/maps/pr-103019-map.yaml index c9ca791a29c..904d7a2a7a1 100644 --- a/releases/release-1.22/release-notes/maps/pr-103019-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103019-map.yaml @@ -1,3 +1,3 @@ -pr: 103019 -releasenote: - text: Fixed a bug that scheduler extenders are not called on preemptions. +pr: 103019 +releasenote: + text: Fixed a bug that scheduler extenders are not called on preemptions. diff --git a/releases/release-1.22/release-notes/maps/pr-103063-map.yaml b/releases/release-1.22/release-notes/maps/pr-103063-map.yaml index 6c4b2d17a8c..b4e263367a9 100644 --- a/releases/release-1.22/release-notes/maps/pr-103063-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103063-map.yaml @@ -1,11 +1,11 @@ -pr: 103063 -releasenote: - text: The flag `--experimental-patches` is now deprecated and will be removed in - a future release. You can migrate to using the new flag `--patches`. Add a new - field `{Init|Join}Configuration.patches.directory` that can be used for the same - purpose. For `init` and `join` it is now recommended that you migrate to configure - patches via `{Init|Join}Configuration.patches.directory`. For the time being, - these flags can be mixed with `--config`, but that might change in the future. - On a command line, the last *patches flag takes precedence over previous flags - and the value in config. `kubeadm upgrade --patches` will continue to be the only - available option, since `upgrade` does not support a configuration file yet. +pr: 103063 +releasenote: + text: The flag `--experimental-patches` is now deprecated and will be removed in + a future release. You can migrate to using the new flag `--patches`. Add a new + field `{Init|Join}Configuration.patches.directory` that can be used for the same + purpose. For `init` and `join` it is now recommended that you migrate to configure + patches via `{Init|Join}Configuration.patches.directory`. For the time being, + these flags can be mixed with `--config`, but that might change in the future. + On a command line, the last *patches flag takes precedence over previous flags + and the value in config. `kubeadm upgrade --patches` will continue to be the only + available option, since `upgrade` does not support a configuration file yet. diff --git a/releases/release-1.22/release-notes/maps/pr-103082-map.yaml b/releases/release-1.22/release-notes/maps/pr-103082-map.yaml index 588ab076b2b..beff00bb263 100644 --- a/releases/release-1.22/release-notes/maps/pr-103082-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103082-map.yaml @@ -1,3 +1,3 @@ -pr: 103082 -releasenote: - text: Enforce the `ReadWriteOncePod` PVC access mode during scheduling +pr: 103082 +releasenote: + text: Enforce the `ReadWriteOncePod` PVC access mode during scheduling diff --git a/releases/release-1.22/release-notes/maps/pr-103129-map.yaml b/releases/release-1.22/release-notes/maps/pr-103129-map.yaml index ca39b24a6d3..48e47728646 100644 --- a/releases/release-1.22/release-notes/maps/pr-103129-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103129-map.yaml @@ -1,4 +1,4 @@ -pr: 103129 -releasenote: - text: Featuregate `ServiceLoadBalancerClass` graduates to Beta and is enables by - default. +pr: 103129 +releasenote: + text: Featuregate `ServiceLoadBalancerClass` graduates to Beta and is enables by + default. diff --git a/releases/release-1.22/release-notes/maps/pr-103169-map.yaml b/releases/release-1.22/release-notes/maps/pr-103169-map.yaml index 346f606a14e..8ad8052e8a6 100644 --- a/releases/release-1.22/release-notes/maps/pr-103169-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103169-map.yaml @@ -1,5 +1,5 @@ -pr: 103169 -releasenote: - text: Extended resources defined in `LeastAllocated`, `MostAllocated` and `RequestedToCapacityRatio` - plugin argument are bypassed by the scheduler if the incoming Pod doesn't request - them in the pod spec. +pr: 103169 +releasenote: + text: Extended resources defined in `LeastAllocated`, `MostAllocated` and `RequestedToCapacityRatio` + plugin argument are bypassed by the scheduler if the incoming Pod doesn't request + them in the pod spec. diff --git a/releases/release-1.22/release-notes/maps/pr-103190-map.yaml b/releases/release-1.22/release-notes/maps/pr-103190-map.yaml index 4b18662eccb..466fee42ceb 100644 --- a/releases/release-1.22/release-notes/maps/pr-103190-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103190-map.yaml @@ -1,3 +1,3 @@ -pr: 103190 -releasenote: - text: The `ServiceAppProtocol` feature gate has been removed. It reached GA in Kubernetes +pr: 103190 +releasenote: + text: The `ServiceAppProtocol` feature gate has been removed. It reached GA in Kubernetes diff --git a/releases/release-1.22/release-notes/maps/pr-103244-map.yaml b/releases/release-1.22/release-notes/maps/pr-103244-map.yaml index 6d9b595f08e..43ce9e833be 100644 --- a/releases/release-1.22/release-notes/maps/pr-103244-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103244-map.yaml @@ -1,6 +1,6 @@ -pr: 103244 -releasenote: - text: The CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and - the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate - applying FSGroup to the driver by passing it to `NodeStageVolume` and `NodePublishVolume`, - regardless of what other `FSGroup` policies are set, this is an alpha feature. +pr: 103244 +releasenote: + text: The CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and + the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate + applying FSGroup to the driver by passing it to `NodeStageVolume` and `NodePublishVolume`, + regardless of what other `FSGroup` policies are set, this is an alpha feature. diff --git a/releases/release-1.22/release-notes/maps/pr-103245-map.yaml b/releases/release-1.22/release-notes/maps/pr-103245-map.yaml index f01135b4d9b..bcdbd5af522 100644 --- a/releases/release-1.22/release-notes/maps/pr-103245-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103245-map.yaml @@ -1,5 +1,5 @@ -pr: 103245 -releasenote: - text: If someone had the `ProbeTerminationGracePeriod` alpha feature enabled in - 1.21, they should update/delete any workloads/pods with probe `terminationGracePeriods` - < 1 before upgrading +pr: 103245 +releasenote: + text: If someone had the `ProbeTerminationGracePeriod` alpha feature enabled in + 1.21, they should update/delete any workloads/pods with probe `terminationGracePeriods` + < 1 before upgrading diff --git a/releases/release-1.22/release-notes/maps/pr-103276-map.yaml b/releases/release-1.22/release-notes/maps/pr-103276-map.yaml index 33f196c74cb..846043492ab 100644 --- a/releases/release-1.22/release-notes/maps/pr-103276-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103276-map.yaml @@ -1,4 +1,4 @@ -pr: 103276 -releasenote: - text: Add `DataSourceRef` alpha field to PVC spec, which allows contents other than - `PVCs` and `VolumeSnapshots` to be data sources. +pr: 103276 +releasenote: + text: Add `DataSourceRef` alpha field to PVC spec, which allows contents other than + `PVCs` and `VolumeSnapshots` to be data sources. diff --git a/releases/release-1.22/release-notes/maps/pr-103292-map.yaml b/releases/release-1.22/release-notes/maps/pr-103292-map.yaml index d0909938ba9..74e4955746f 100644 --- a/releases/release-1.22/release-notes/maps/pr-103292-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103292-map.yaml @@ -1,6 +1,6 @@ -pr: 103292 -releasenote: - text: The `kubectl debug` is able to create ephemeral containers in pre-1.22 clusters - with the `EphemeralContainers` feature enabled. Note that versions of kubectl - prior to 1.22 are unable to create ephemeral containers in clusters version 1.22 - and greater due to an API change. +pr: 103292 +releasenote: + text: The `kubectl debug` is able to create ephemeral containers in pre-1.22 clusters + with the `EphemeralContainers` feature enabled. Note that versions of kubectl + prior to 1.22 are unable to create ephemeral containers in clusters version 1.22 + and greater due to an API change. diff --git a/releases/release-1.22/release-notes/maps/pr-103306-map.yaml b/releases/release-1.22/release-notes/maps/pr-103306-map.yaml index 0e0db16c63f..94889c7956d 100644 --- a/releases/release-1.22/release-notes/maps/pr-103306-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103306-map.yaml @@ -1,3 +1,3 @@ -pr: 103306 -releasenote: - text: Kube-proxy uses V1 `EndpointSlices`. +pr: 103306 +releasenote: + text: Kube-proxy uses V1 `EndpointSlices`. diff --git a/releases/release-1.22/release-notes/maps/pr-103307-map.yaml b/releases/release-1.22/release-notes/maps/pr-103307-map.yaml index 37959a146a9..b7856368a02 100644 --- a/releases/release-1.22/release-notes/maps/pr-103307-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103307-map.yaml @@ -1,4 +1,4 @@ -pr: 103307 -releasenote: - text: 'kubelet: the returned value for PodIPs is the same in the Downward API and - in the `pod.status.PodIPs` field' +pr: 103307 +releasenote: + text: 'kubelet: the returned value for PodIPs is the same in the Downward API and + in the `pod.status.PodIPs` field' diff --git a/releases/release-1.22/release-notes/maps/pr-103313-map.yaml b/releases/release-1.22/release-notes/maps/pr-103313-map.yaml index b56aed617e0..aa9904cb26f 100644 --- a/releases/release-1.22/release-notes/maps/pr-103313-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103313-map.yaml @@ -1,5 +1,5 @@ -pr: 103313 -releasenote: - text: 'kubeadm: fix a bug where `kubeadm join` for control plane nodes would download - certificates and keys from the cluster, but would not write publicly readable - certificates and public keys with mode `0644` and instead use mode `0600`.' +pr: 103313 +releasenote: + text: 'kubeadm: fix a bug where `kubeadm join` for control plane nodes would download + certificates and keys from the cluster, but would not write publicly readable + certificates and public keys with mode `0644` and instead use mode `0600`.' diff --git a/releases/release-1.22/release-notes/maps/pr-103326-map.yaml b/releases/release-1.22/release-notes/maps/pr-103326-map.yaml index b821a4f03d6..2da8fcf5eb6 100644 --- a/releases/release-1.22/release-notes/maps/pr-103326-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103326-map.yaml @@ -1,3 +1,3 @@ -pr: 103326 -releasenote: - text: Mark `net.ipv4.ip_unprivileged_port_start` as safe `sysctl`. +pr: 103326 +releasenote: + text: Mark `net.ipv4.ip_unprivileged_port_start` as safe `sysctl`. diff --git a/releases/release-1.22/release-notes/maps/pr-103383-map.yaml b/releases/release-1.22/release-notes/maps/pr-103383-map.yaml index e3a4027c756..067a018c819 100644 --- a/releases/release-1.22/release-notes/maps/pr-103383-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103383-map.yaml @@ -1,4 +1,4 @@ -pr: 103383 -releasenote: - text: Scheduler nows provides an option for plugin developers to move `Pods` to - activeQ. +pr: 103383 +releasenote: + text: Scheduler nows provides an option for plugin developers to move `Pods` to + activeQ. diff --git a/releases/release-1.22/release-notes/maps/pr-103390-map.yaml b/releases/release-1.22/release-notes/maps/pr-103390-map.yaml index 384319533d5..7607fbbf51b 100644 --- a/releases/release-1.22/release-notes/maps/pr-103390-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103390-map.yaml @@ -1,4 +1,4 @@ -pr: 103390 -releasenote: - text: Update the system-validators library to v1.5.0. Includes validation for `seccomp` - and fixes a stdout/stderr problem in the Docker validator. +pr: 103390 +releasenote: + text: Update the system-validators library to v1.5.0. Includes validation for `seccomp` + and fixes a stdout/stderr problem in the Docker validator. diff --git a/releases/release-1.22/release-notes/maps/pr-103451-map.yaml b/releases/release-1.22/release-notes/maps/pr-103451-map.yaml index b2d0810d64c..bdbb9cfa8b1 100644 --- a/releases/release-1.22/release-notes/maps/pr-103451-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103451-map.yaml @@ -1,5 +1,5 @@ -pr: 103451 -releasenote: - text: Features gates `EndpointSliceProxying` & `WindowsEndpointSliceProxying` graduates - to GA and are unconditionally enabled. Kube-proxy will use EndpointSlices for - endpoint information. +pr: 103451 +releasenote: + text: Features gates `EndpointSliceProxying` & `WindowsEndpointSliceProxying` graduates + to GA and are unconditionally enabled. Kube-proxy will use EndpointSlices for + endpoint information. diff --git a/releases/release-1.22/release-notes/maps/pr-103462-map.yaml b/releases/release-1.22/release-notes/maps/pr-103462-map.yaml index 0c2309ab1c5..6b3a3820700 100644 --- a/releases/release-1.22/release-notes/maps/pr-103462-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103462-map.yaml @@ -1,4 +1,4 @@ -pr: 103462 -releasenote: - text: The `ServiceInternalTrafficPolicy` feature graduates to Beta and enable by - default, which enables the `internalTrafficPolicy` field of Service by default. +pr: 103462 +releasenote: + text: The `ServiceInternalTrafficPolicy` feature graduates to Beta and enable by + default, which enables the `internalTrafficPolicy` field of Service by default. diff --git a/releases/release-1.22/release-notes/maps/pr-103514-map.yaml b/releases/release-1.22/release-notes/maps/pr-103514-map.yaml index deab7dc442d..3f2a8a44171 100644 --- a/releases/release-1.22/release-notes/maps/pr-103514-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103514-map.yaml @@ -1,3 +1,3 @@ -pr: 103514 -releasenote: - text: The `kubectl get` now truncates multi-line strings to avoid breaking printing +pr: 103514 +releasenote: + text: The `kubectl get` now truncates multi-line strings to avoid breaking printing diff --git a/releases/release-1.22/release-notes/maps/pr-103596-map.yaml b/releases/release-1.22/release-notes/maps/pr-103596-map.yaml index b7db3a6f188..ad0aca2ee13 100644 --- a/releases/release-1.22/release-notes/maps/pr-103596-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103596-map.yaml @@ -1,4 +1,4 @@ -pr: 103596 -releasenote: - text: Promote `EndpointSliceTerminatingCondition` to Beta. This enables the `terminating` - and `serving` conditions for EndpointSlice by default. +pr: 103596 +releasenote: + text: Promote `EndpointSliceTerminatingCondition` to Beta. This enables the `terminating` + and `serving` conditions for EndpointSlice by default. diff --git a/releases/release-1.22/release-notes/maps/pr-103703-map.yaml b/releases/release-1.22/release-notes/maps/pr-103703-map.yaml index 635e697aa87..0a05c966dad 100644 --- a/releases/release-1.22/release-notes/maps/pr-103703-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103703-map.yaml @@ -1,5 +1,5 @@ -pr: 103703 -releasenote: - text: Aggregated roles no longer include write access to `EndpointSlices`. This - rolls back part of a change that was introduced earlier in the Kubernetes 1.22 - cycle. +pr: 103703 +releasenote: + text: Aggregated roles no longer include write access to `EndpointSlices`. This + rolls back part of a change that was introduced earlier in the Kubernetes 1.22 + cycle. diff --git a/releases/release-1.22/release-notes/maps/pr-103747-map.yaml b/releases/release-1.22/release-notes/maps/pr-103747-map.yaml index 8f6b84360ee..e4f0f8d9ab6 100644 --- a/releases/release-1.22/release-notes/maps/pr-103747-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-103747-map.yaml @@ -1,3 +1,3 @@ -pr: 103747 -releasenote: - text: Revert addition of Add `PersistentVolumeClaimDeletePoilcy` to `StatefulSet`API. +pr: 103747 +releasenote: + text: Revert addition of Add `PersistentVolumeClaimDeletePoilcy` to `StatefulSet`API. diff --git a/releases/release-1.22/release-notes/maps/pr-68004-map.yaml b/releases/release-1.22/release-notes/maps/pr-68004-map.yaml index 9549ab2c956..9c3cd0a83a8 100644 --- a/releases/release-1.22/release-notes/maps/pr-68004-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-68004-map.yaml @@ -1,3 +1,3 @@ -pr: 68004 -releasenote: - text: 'Fluentd: isolate logging resources in separate namespace `logging`' +pr: 68004 +releasenote: + text: 'Fluentd: isolate logging resources in separate namespace `logging`' diff --git a/releases/release-1.22/release-notes/maps/pr-90368-map.yaml b/releases/release-1.22/release-notes/maps/pr-90368-map.yaml index a56335ae88e..34ee4b66c1b 100644 --- a/releases/release-1.22/release-notes/maps/pr-90368-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-90368-map.yaml @@ -1,5 +1,5 @@ -pr: 90368 -releasenote: - text: "kube-controller-manager: the `--horizontal-pod-autoscaler-use-rest-clients` - flag and Heapster support in the horizontal pod autoscaler, deprecated since 1.12, - is removed." +pr: 90368 +releasenote: + text: "kube-controller-manager: the `--horizontal-pod-autoscaler-use-rest-clients` + flag and Heapster support in the horizontal pod autoscaler, deprecated since 1.12, + is removed." diff --git a/releases/release-1.22/release-notes/maps/pr-92739-map.yaml b/releases/release-1.22/release-notes/maps/pr-92739-map.yaml index ad1fb9c07b3..11424e42449 100644 --- a/releases/release-1.22/release-notes/maps/pr-92739-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-92739-map.yaml @@ -1,4 +1,4 @@ -pr: 92739 -releasenote: - text: An audit log entry will be generated when a `ValidatingAdmissionWebhook` is - failing to open. +pr: 92739 +releasenote: + text: An audit log entry will be generated when a `ValidatingAdmissionWebhook` is + failing to open. diff --git a/releases/release-1.22/release-notes/maps/pr-94942-map.yaml b/releases/release-1.22/release-notes/maps/pr-94942-map.yaml index 9756c506046..7eeaeace88a 100644 --- a/releases/release-1.22/release-notes/maps/pr-94942-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-94942-map.yaml @@ -1,4 +1,4 @@ -pr: 94942 -releasenote: - text: Add distributed tracing to the `kube-apiserver`. It is can be enabled with - the feature gate `APIServerTracing` +pr: 94942 +releasenote: + text: Add distributed tracing to the `kube-apiserver`. It is can be enabled with + the feature gate `APIServerTracing` diff --git a/releases/release-1.22/release-notes/maps/pr-95286-map.yaml b/releases/release-1.22/release-notes/maps/pr-95286-map.yaml index 44cd935d65e..0416dca00ab 100644 --- a/releases/release-1.22/release-notes/maps/pr-95286-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-95286-map.yaml @@ -1,3 +1,3 @@ -pr: 95286 -releasenote: - text: The `PodUnknown` phase is now deprecated. +pr: 95286 +releasenote: + text: The `PodUnknown` phase is now deprecated. diff --git a/releases/release-1.22/release-notes/maps/pr-96084-map.yaml b/releases/release-1.22/release-notes/maps/pr-96084-map.yaml index 3a01370165e..c16dd1a89ca 100644 --- a/releases/release-1.22/release-notes/maps/pr-96084-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-96084-map.yaml @@ -1,3 +1,3 @@ -pr: 96084 -releasenote: - text: Secret values are now masked by default in `kubectl diff` output. +pr: 96084 +releasenote: + text: Secret values are now masked by default in `kubectl diff` output. diff --git a/releases/release-1.22/release-notes/maps/pr-96702-map.yaml b/releases/release-1.22/release-notes/maps/pr-96702-map.yaml index 2264e43987d..318a9bf29a2 100644 --- a/releases/release-1.22/release-notes/maps/pr-96702-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-96702-map.yaml @@ -1,3 +1,3 @@ -pr: 96702 -releasenote: - text: The `kubectl wait --for=delete` command now ignores the not found error correctly. +pr: 96702 +releasenote: + text: The `kubectl wait --for=delete` command now ignores the not found error correctly. diff --git a/releases/release-1.22/release-notes/maps/pr-96959-map.yaml b/releases/release-1.22/release-notes/maps/pr-96959-map.yaml index e1a386cad5e..4d73f344143 100644 --- a/releases/release-1.22/release-notes/maps/pr-96959-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-96959-map.yaml @@ -1,3 +1,3 @@ -pr: 96959 -releasenote: - text: Reorganized iptables rules to reduce rules in `KUBE-SERVICES` and `KUBE-NODEPORTS`. +pr: 96959 +releasenote: + text: Reorganized iptables rules to reduce rules in `KUBE-SERVICES` and `KUBE-NODEPORTS`. diff --git a/releases/release-1.22/release-notes/maps/pr-97238-map.yaml b/releases/release-1.22/release-notes/maps/pr-97238-map.yaml index b29a778cc2b..56c48051020 100644 --- a/releases/release-1.22/release-notes/maps/pr-97238-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-97238-map.yaml @@ -1,10 +1,10 @@ -pr: 97238 -releasenote: - text: |- - Services with `externalTrafficPolicy: Local` now support graceful termination when using - the iptables or ipvs mode of kube-proxy with `EndpointSlices` enabled. Specifically, if a - connection for such a service arrives on a node when there are no "Ready" endpoints - for the service, but there is at least one Terminating pod for that service on the node, - then kube-proxy will send the traffic to the Terminating pod rather than dropping it. This - patches up a race condition between when a pod is killed and when the external load - balancer notices that it has been killed. +pr: 97238 +releasenote: + text: |- + Services with `externalTrafficPolicy: Local` now support graceful termination when using + the iptables or ipvs mode of kube-proxy with `EndpointSlices` enabled. Specifically, if a + connection for such a service arrives on a node when there are no "Ready" endpoints + for the service, but there is at least one Terminating pod for that service on the node, + then kube-proxy will send the traffic to the Terminating pod rather than dropping it. This + patches up a race condition between when a pod is killed and when the external load + balancer notices that it has been killed. diff --git a/releases/release-1.22/release-notes/maps/pr-97796-map.yaml b/releases/release-1.22/release-notes/maps/pr-97796-map.yaml index 1ca2921005e..4447f183a47 100644 --- a/releases/release-1.22/release-notes/maps/pr-97796-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-97796-map.yaml @@ -1,3 +1,3 @@ -pr: 97796 -releasenote: - text: Migrate `proxy/ipvs/proxier.go` logs to structured logging. +pr: 97796 +releasenote: + text: Migrate `proxy/ipvs/proxier.go` logs to structured logging. diff --git a/releases/release-1.22/release-notes/maps/pr-98077-map.yaml b/releases/release-1.22/release-notes/maps/pr-98077-map.yaml index b8944e339ba..afc1163df17 100644 --- a/releases/release-1.22/release-notes/maps/pr-98077-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-98077-map.yaml @@ -1,3 +1,3 @@ -pr: 98077 -releasenote: - text: NetworkPolicy validation framework support for windows. +pr: 98077 +releasenote: + text: NetworkPolicy validation framework support for windows. diff --git a/releases/release-1.22/release-notes/maps/pr-98287-map.yaml b/releases/release-1.22/release-notes/maps/pr-98287-map.yaml index 07396bc817b..d8a443e0b37 100644 --- a/releases/release-1.22/release-notes/maps/pr-98287-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-98287-map.yaml @@ -1,3 +1,3 @@ -pr: 98287 -releasenote: - text: Migrate `staging/src/k8s.io/apiserver/pkg/registry` logs to structured logging. +pr: 98287 +releasenote: + text: Migrate `staging/src/k8s.io/apiserver/pkg/registry` logs to structured logging. diff --git a/releases/release-1.22/release-notes/maps/pr-98350-map.yaml b/releases/release-1.22/release-notes/maps/pr-98350-map.yaml index 3c68ea86f2e..449622c61d8 100644 --- a/releases/release-1.22/release-notes/maps/pr-98350-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-98350-map.yaml @@ -1,3 +1,3 @@ -pr: 98350 -releasenote: - text: Aggregate errors when putting vmss. +pr: 98350 +releasenote: + text: Aggregate errors when putting vmss. diff --git a/releases/release-1.22/release-notes/maps/pr-98431-map.yaml b/releases/release-1.22/release-notes/maps/pr-98431-map.yaml index 552fd3ff8a8..4b6adbf512e 100644 --- a/releases/release-1.22/release-notes/maps/pr-98431-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-98431-map.yaml @@ -1,4 +1,4 @@ -pr: 98431 -releasenote: - text: Fix `kubectl` alpha debug node does not work on tainted(NoExecute) nodes and - tolerate everything. +pr: 98431 +releasenote: + text: Fix `kubectl` alpha debug node does not work on tainted(NoExecute) nodes and + tolerate everything. diff --git a/releases/release-1.22/release-notes/maps/pr-98817-map.yaml b/releases/release-1.22/release-notes/maps/pr-98817-map.yaml index b2c37ac647a..9131d5fc5d8 100644 --- a/releases/release-1.22/release-notes/maps/pr-98817-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-98817-map.yaml @@ -1,5 +1,5 @@ -pr: 98817 -releasenote: - text: |- - Added field `.status.uncountedTerminatedPods` to the Job resource. This field is used by the job controller to keep track of finished pods before adding them to the Job status counters. Pods created by the job controller get the finalizer `batch.kubernetes.io/job-tracking` - Jobs that are tracked using this mechanism get the annotation `batch.kubernetes.io/job-tracking`. This is a temporary measure. Two releases after this feature graduates to beta, the annotation won't be added to Jobs anymore. +pr: 98817 +releasenote: + text: |- + Added field `.status.uncountedTerminatedPods` to the Job resource. This field is used by the job controller to keep track of finished pods before adding them to the Job status counters. Pods created by the job controller get the finalizer `batch.kubernetes.io/job-tracking` + Jobs that are tracked using this mechanism get the annotation `batch.kubernetes.io/job-tracking`. This is a temporary measure. Two releases after this feature graduates to beta, the annotation won't be added to Jobs anymore. diff --git a/releases/release-1.22/release-notes/maps/pr-98866-map.yaml b/releases/release-1.22/release-notes/maps/pr-98866-map.yaml index fd2a66d9f45..41b4ef54410 100644 --- a/releases/release-1.22/release-notes/maps/pr-98866-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-98866-map.yaml @@ -1,7 +1,7 @@ -pr: 98866 -releasenote: - text: The `TerminationGracePeriodSeconds` on pod specs and container probes should - not be negative. Negative values of `TerminationGracePeriodSeconds` will be treated - as the value `1s` on the delete path. Immutable field validation will be relaxed - in order to update negative values. In a future release, negative values will - not be permitted. +pr: 98866 +releasenote: + text: The `TerminationGracePeriodSeconds` on pod specs and container probes should + not be negative. Negative values of `TerminationGracePeriodSeconds` will be treated + as the value `1s` on the delete path. Immutable field validation will be relaxed + in order to update negative values. In a future release, negative values will + not be permitted. diff --git a/releases/release-1.22/release-notes/maps/pr-99023-map.yaml b/releases/release-1.22/release-notes/maps/pr-99023-map.yaml index d7c72e6376c..638b65a807b 100644 --- a/releases/release-1.22/release-notes/maps/pr-99023-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99023-map.yaml @@ -1,6 +1,6 @@ -pr: 99023 -releasenote: - text: Ephemeral containers are now allowed to configure a `securityContext` that - differs from that of the Pod. Cluster administrators should ensure that security - policy controllers support `EphemeralContainers` before enabling this feature - in clusters. +pr: 99023 +releasenote: + text: Ephemeral containers are now allowed to configure a `securityContext` that + differs from that of the Pod. Cluster administrators should ensure that security + policy controllers support `EphemeralContainers` before enabling this feature + in clusters. diff --git a/releases/release-1.22/release-notes/maps/pr-99069-map.yaml b/releases/release-1.22/release-notes/maps/pr-99069-map.yaml index a99266d8bc0..67ab8f9ebd6 100644 --- a/releases/release-1.22/release-notes/maps/pr-99069-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99069-map.yaml @@ -1,3 +1,3 @@ -pr: 99069 -releasenote: - text: Fix raw block mode CSI `NodePublishVolume` stage miss pod info. +pr: 99069 +releasenote: + text: Fix raw block mode CSI `NodePublishVolume` stage miss pod info. diff --git a/releases/release-1.22/release-notes/maps/pr-99095-map.yaml b/releases/release-1.22/release-notes/maps/pr-99095-map.yaml index c521e1ac324..8d209f3f14d 100644 --- a/releases/release-1.22/release-notes/maps/pr-99095-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99095-map.yaml @@ -1,3 +1,3 @@ -pr: 99095 -releasenote: - text: Prevent Kubelet stuck in `DiskPressure` when `imagefs.minReclaim` is set +pr: 99095 +releasenote: + text: Prevent Kubelet stuck in `DiskPressure` when `imagefs.minReclaim` is set diff --git a/releases/release-1.22/release-notes/maps/pr-99144-map.yaml b/releases/release-1.22/release-notes/maps/pr-99144-map.yaml index 2eb1f34e028..5b9feedb356 100644 --- a/releases/release-1.22/release-notes/maps/pr-99144-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99144-map.yaml @@ -1,5 +1,5 @@ -pr: 99144 -releasenote: - text: The `HugePageStorageMediumSize` feature graduates to GA and unconditionally - enabled. Allowing unconditional usage of multiple sizes huge page resources on - a container level. +pr: 99144 +releasenote: + text: The `HugePageStorageMediumSize` feature graduates to GA and unconditionally + enabled. Allowing unconditional usage of multiple sizes huge page resources on + a container level. diff --git a/releases/release-1.22/release-notes/maps/pr-99178-map.yaml b/releases/release-1.22/release-notes/maps/pr-99178-map.yaml index 46c19d74d2a..be81aa75548 100644 --- a/releases/release-1.22/release-notes/maps/pr-99178-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99178-map.yaml @@ -1,7 +1,7 @@ -pr: 99178 -releasenote: - text: Conformance image is now built with Distroless. Users running Conformance - testing should rely on container entrypoint instead of manual invocation to `/run_e2e.sh` - or `/gorunner`, as they are now deprecated and will be removed in 1.25 release. - Invoking `ginkgo` and `e2e.test` are still supported through overriding entrypoint - (docker) or defining container `spec.command` (kubernetes). +pr: 99178 +releasenote: + text: Conformance image is now built with Distroless. Users running Conformance + testing should rely on container entrypoint instead of manual invocation to `/run_e2e.sh` + or `/gorunner`, as they are now deprecated and will be removed in 1.25 release. + Invoking `ginkgo` and `e2e.test` are still supported through overriding entrypoint + (docker) or defining container `spec.command` (kubernetes). diff --git a/releases/release-1.22/release-notes/maps/pr-99310-map.yaml b/releases/release-1.22/release-notes/maps/pr-99310-map.yaml index 36b406cce90..2a6a9291dd9 100644 --- a/releases/release-1.22/release-notes/maps/pr-99310-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99310-map.yaml @@ -1,4 +1,4 @@ -pr: 99310 -releasenote: - text: Exec plugin authors can override default handling of standard input via new - `interactiveMode` kubeconfig field. +pr: 99310 +releasenote: + text: Exec plugin authors can override default handling of standard input via new + `interactiveMode` kubeconfig field. diff --git a/releases/release-1.22/release-notes/maps/pr-99336-map.yaml b/releases/release-1.22/release-notes/maps/pr-99336-map.yaml index bb1b9615524..435f506bbfd 100644 --- a/releases/release-1.22/release-notes/maps/pr-99336-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99336-map.yaml @@ -1,4 +1,4 @@ -pr: 99336 -releasenote: - text: 'kubelet: improve the performance when waiting for a synchronization of the - node list with the `kube-apiserver`.' +pr: 99336 +releasenote: + text: 'kubelet: improve the performance when waiting for a synchronization of the + node list with the `kube-apiserver`.' diff --git a/releases/release-1.22/release-notes/maps/pr-99358-map.yaml b/releases/release-1.22/release-notes/maps/pr-99358-map.yaml index 30702cda3e7..039e4687e9f 100644 --- a/releases/release-1.22/release-notes/maps/pr-99358-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99358-map.yaml @@ -1,4 +1,4 @@ -pr: 99358 -releasenote: - text: The `kube-controller-manager'` sets the upper-bound timeout limit for outgoing - requests to 70s. Previously +pr: 99358 +releasenote: + text: The `kube-controller-manager'` sets the upper-bound timeout limit for outgoing + requests to 70s. Previously diff --git a/releases/release-1.22/release-notes/maps/pr-99364-map.yaml b/releases/release-1.22/release-notes/maps/pr-99364-map.yaml index 9a459b7e787..f921f32f9a0 100644 --- a/releases/release-1.22/release-notes/maps/pr-99364-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99364-map.yaml @@ -1,4 +1,4 @@ -pr: 99364 -releasenote: - text: Adds metrics for the delegated authenticator used by extension APIs that delegate - authentication logic to the Kube API server. +pr: 99364 +releasenote: + text: Adds metrics for the delegated authenticator used by extension APIs that delegate + authentication logic to the Kube API server. diff --git a/releases/release-1.22/release-notes/maps/pr-99378-map.yaml b/releases/release-1.22/release-notes/maps/pr-99378-map.yaml index 95f1330f7c9..4c9eea60034 100644 --- a/releases/release-1.22/release-notes/maps/pr-99378-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99378-map.yaml @@ -1,3 +1,3 @@ -pr: 99378 -releasenote: - text: Add `PersistentVolumeClaimDeletePoilcy` to StatefulSet API. +pr: 99378 +releasenote: + text: Add `PersistentVolumeClaimDeletePoilcy` to StatefulSet API. diff --git a/releases/release-1.22/release-notes/maps/pr-99494-map.yaml b/releases/release-1.22/release-notes/maps/pr-99494-map.yaml index fead50e1356..b9abfd90289 100644 --- a/releases/release-1.22/release-notes/maps/pr-99494-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99494-map.yaml @@ -1,7 +1,7 @@ -pr: 99494 -releasenote: - text: The `CertificateSigningRequest.certificates.k8s.io` API supports an optional - expirationSeconds field to allow the client to request a particular duration for - the issued certificate. The default signer implementations provided by the Kubernetes - controller manager will honor this field as long as it does not exceed the --cluster-signing-duration - flag. +pr: 99494 +releasenote: + text: The `CertificateSigningRequest.certificates.k8s.io` API supports an optional + expirationSeconds field to allow the client to request a particular duration for + the issued certificate. The default signer implementations provided by the Kubernetes + controller manager will honor this field as long as it does not exceed the --cluster-signing-duration + flag. diff --git a/releases/release-1.22/release-notes/maps/pr-99566-map.yaml b/releases/release-1.22/release-notes/maps/pr-99566-map.yaml index 138a3c0e0d4..ec06e1cf8c1 100644 --- a/releases/release-1.22/release-notes/maps/pr-99566-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99566-map.yaml @@ -1,3 +1,3 @@ -pr: 99566 -releasenote: - text: Migrate some log messages to structured logging in `pkg/volume/volume_linux.go`. +pr: 99566 +releasenote: + text: Migrate some log messages to structured logging in `pkg/volume/volume_linux.go`. diff --git a/releases/release-1.22/release-notes/maps/pr-99582-map.yaml b/releases/release-1.22/release-notes/maps/pr-99582-map.yaml index a00890f3e00..e5f7b313981 100644 --- a/releases/release-1.22/release-notes/maps/pr-99582-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99582-map.yaml @@ -1,6 +1,6 @@ -pr: 99582 -releasenote: - text: 'kube-scheduler: a plugin enabled in a v1beta2 configuration file takes precedence - over the default configuration for that plugin. This simplifies enabling default - plugins with custom configuration without needing to explicitly disable those - default plugins.' +pr: 99582 +releasenote: + text: 'kube-scheduler: a plugin enabled in a v1beta2 configuration file takes precedence + over the default configuration for that plugin. This simplifies enabling default + plugins with custom configuration without needing to explicitly disable those + default plugins.' diff --git a/releases/release-1.22/release-notes/maps/pr-99597-map.yaml b/releases/release-1.22/release-notes/maps/pr-99597-map.yaml index 9f01cfe4a3b..355af7e26bd 100644 --- a/releases/release-1.22/release-notes/maps/pr-99597-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99597-map.yaml @@ -1,5 +1,5 @@ -pr: 99597 -releasenote: - text: |- - The `kube-scheduler` component config `v1beta2` API available - Three scheduler plugins deprecated (`NodeLabel`, `ServiceAffinity`, `NodePreferAvoidPods`). +pr: 99597 +releasenote: + text: |- + The `kube-scheduler` component config `v1beta2` API available + Three scheduler plugins deprecated (`NodeLabel`, `ServiceAffinity`, `NodePreferAvoidPods`). diff --git a/releases/release-1.22/release-notes/maps/pr-99647-map.yaml b/releases/release-1.22/release-notes/maps/pr-99647-map.yaml index 0543131c2e0..5d4899bb62a 100644 --- a/releases/release-1.22/release-notes/maps/pr-99647-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99647-map.yaml @@ -1,11 +1,11 @@ -pr: 99647 -releasenote: - text: "kubeadm: remove the automatic detection and matching of cgroup drivers - for Docker. For new clusters if you have not configured the cgroup driver explicitly - you might get a failure in the `kubelet` on driver mismatch (kubeadm clusters - should be using the `systemd` driver). Also remove the `IsDockerSystemdCheck` - preflight check (warning) that checks if the Docker cgroup driver is set to `systemd`. - Ideally such detection / coordination should be on the side of CRI implementers - and the kubelet (tracked [here](https://github.com/kubernetes/kubernetes/issues/99808)). - Please see the [page](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) on how to configure cgroup drivers with kubeadm - manually" +pr: 99647 +releasenote: + text: "kubeadm: remove the automatic detection and matching of cgroup drivers + for Docker. For new clusters if you have not configured the cgroup driver explicitly + you might get a failure in the `kubelet` on driver mismatch (kubeadm clusters + should be using the `systemd` driver). Also remove the `IsDockerSystemdCheck` + preflight check (warning) that checks if the Docker cgroup driver is set to `systemd`. + Ideally such detection / coordination should be on the side of CRI implementers + and the kubelet (tracked [here](https://github.com/kubernetes/kubernetes/issues/99808)). + Please see the [page](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) on how to configure cgroup drivers with kubeadm + manually" diff --git a/releases/release-1.22/release-notes/maps/pr-99729-map.yaml b/releases/release-1.22/release-notes/maps/pr-99729-map.yaml index d2154f5d50d..6a461e074cd 100644 --- a/releases/release-1.22/release-notes/maps/pr-99729-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99729-map.yaml @@ -1,12 +1,12 @@ -pr: 99729 -releasenote: - text: "A `system-cluster-critical` pod should not get a low OOM Score. \n\nAs of - now both `system-node-critical` and `system-cluster-critical` pods have -997 OOM - score, making them one of the last processes to be OOMKilled. By definition `system-cluster-critical` - pods can be scheduled elsewhere if there is a resource crunch on the node where - as `system-node-critical` pods cannot be rescheduled. This was the reason for - `system-node-critical` to have higher priority value than `system-cluster-critical`. - \ This change allows only `system-node-critical` priority class to have low OOMScore.\n\naction - required\nIf the user wants to have the pod to be OOMKilled last and the pod has - `system-cluster-critical` priority class, it has to be changed to `system-node-critical` - priority class to preserve the existing behavior" +pr: 99729 +releasenote: + text: "A `system-cluster-critical` pod should not get a low OOM Score. \n\nAs of + now both `system-node-critical` and `system-cluster-critical` pods have -997 OOM + score, making them one of the last processes to be OOMKilled. By definition `system-cluster-critical` + pods can be scheduled elsewhere if there is a resource crunch on the node where + as `system-node-critical` pods cannot be rescheduled. This was the reason for + `system-node-critical` to have higher priority value than `system-cluster-critical`. + \ This change allows only `system-node-critical` priority class to have low OOMScore.\n\naction + required\nIf the user wants to have the pod to be OOMKilled last and the pod has + `system-cluster-critical` priority class, it has to be changed to `system-node-critical` + priority class to preserve the existing behavior" diff --git a/releases/release-1.22/release-notes/maps/pr-99775-map.yaml b/releases/release-1.22/release-notes/maps/pr-99775-map.yaml index 3361c10afbd..3fc7f839706 100644 --- a/releases/release-1.22/release-notes/maps/pr-99775-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99775-map.yaml @@ -1,4 +1,4 @@ -pr: 99775 -releasenote: - text: Exposes `WithCustomRoundTripper` method for specifying a middleware function - for custom HTTP behaviour for the delegated auth clients. +pr: 99775 +releasenote: + text: Exposes `WithCustomRoundTripper` method for specifying a middleware function + for custom HTTP behaviour for the delegated auth clients. diff --git a/releases/release-1.22/release-notes/maps/pr-99829-map.yaml b/releases/release-1.22/release-notes/maps/pr-99829-map.yaml index c222bab490d..4ae048061c5 100644 --- a/releases/release-1.22/release-notes/maps/pr-99829-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99829-map.yaml @@ -1,3 +1,3 @@ -pr: 99829 -releasenote: - text: Replace `go-bindata` with `//go:embed`. +pr: 99829 +releasenote: + text: Replace `go-bindata` with `//go:embed`. diff --git a/releases/release-1.22/release-notes/maps/pr-99839-map.yaml b/releases/release-1.22/release-notes/maps/pr-99839-map.yaml index bc0db4ece03..f8133d37f7c 100644 --- a/releases/release-1.22/release-notes/maps/pr-99839-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99839-map.yaml @@ -1,3 +1,3 @@ -pr: 99839 -releasenote: - text: Fixed `port-forward` memory leak for long-running and heavily used connections. +pr: 99839 +releasenote: + text: Fixed `port-forward` memory leak for long-running and heavily used connections. diff --git a/releases/release-1.22/release-notes/maps/pr-99900-map.yaml b/releases/release-1.22/release-notes/maps/pr-99900-map.yaml index eba29c8a1e6..b63cfc17c8d 100644 --- a/releases/release-1.22/release-notes/maps/pr-99900-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99900-map.yaml @@ -1,3 +1,3 @@ -pr: 99900 -releasenote: - text: Remove deprecated `--generator` flag from `kubectl autoscale`. +pr: 99900 +releasenote: + text: Remove deprecated `--generator` flag from `kubectl autoscale`. diff --git a/releases/release-1.22/release-notes/maps/pr-99915-map.yaml b/releases/release-1.22/release-notes/maps/pr-99915-map.yaml index 622c2185257..4c306e55bb8 100644 --- a/releases/release-1.22/release-notes/maps/pr-99915-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99915-map.yaml @@ -1,4 +1,4 @@ -pr: 99915 -releasenote: - text: Remove the deprecated flag `--generator` from `kubectl create deployment` - command. +pr: 99915 +releasenote: + text: Remove the deprecated flag `--generator` from `kubectl create deployment` + command. diff --git a/releases/release-1.22/release-notes/maps/pr-99961-map.yaml b/releases/release-1.22/release-notes/maps/pr-99961-map.yaml index a5cb3fd7d53..af1570c0853 100644 --- a/releases/release-1.22/release-notes/maps/pr-99961-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99961-map.yaml @@ -1,5 +1,5 @@ -pr: 99961 -releasenote: - text: Kube API server accepts `Impersonate-Uid` header to impersonate a user with - a specific UID, in the same way that you can currently use `Impersonate-User`, - `Impersonate-Group` and `Impersonate-Extra`. +pr: 99961 +releasenote: + text: Kube API server accepts `Impersonate-Uid` header to impersonate a user with + a specific UID, in the same way that you can currently use `Impersonate-User`, + `Impersonate-Group` and `Impersonate-Extra`. diff --git a/releases/release-1.22/release-notes/maps/pr-99963-map.yaml b/releases/release-1.22/release-notes/maps/pr-99963-map.yaml index 70b48215863..46f45d12523 100644 --- a/releases/release-1.22/release-notes/maps/pr-99963-map.yaml +++ b/releases/release-1.22/release-notes/maps/pr-99963-map.yaml @@ -1,4 +1,4 @@ -pr: 99963 -releasenote: - text: The job controller removes running pods when the number of completions is - achieved. +pr: 99963 +releasenote: + text: The job controller removes running pods when the number of completions is + achieved. diff --git a/releases/release-1.22/release-notes/release-notes-draft.json b/releases/release-1.22/release-notes/release-notes-draft.json index 697ed81f12c..a16565518b6 100644 --- a/releases/release-1.22/release-notes/release-notes-draft.json +++ b/releases/release-1.22/release-notes/release-notes-draft.json @@ -1,7767 +1,7767 @@ -{ - "100051": { - "commit": "2b89558a1f8ec3219f0640c1add47d317bb2cb73", - "text": "NONE", - "markdown": "NONE ([#100051](https://github.com/kubernetes/kubernetes/pull/100051), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", - "author": "tanjing2020", - "author_url": "https://github.com/tanjing2020", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100051", - "pr_number": 100051, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "do_not_publish": true - }, - "100085": { - "commit": "c6e826a79fb96b1c3cb88363a7d410cbe3c116f8", - "text": "The `DynamicFakeClient` now exposes its tracker via a `Tracker()` function.", - "markdown": "The `DynamicFakeClient` now exposes its tracker via a `Tracker()` function. ([#100085](https://github.com/kubernetes/kubernetes/pull/100085), [@markusthoemmes](https://github.com/markusthoemmes))", - "author": "markusthoemmes", - "author_url": "https://github.com/markusthoemmes", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100085", - "pr_number": 100085, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "100100": { - "commit": "b15859b301781dd32741688d766853884bfe8b89", - "text": "Fix rounding of volume storage requests.", - "markdown": "Fix rounding of volume storage requests. ([#100100](https://github.com/kubernetes/kubernetes/pull/100100), [@maxlaverse](https://github.com/maxlaverse))", - "author": "maxlaverse", - "author_url": "https://github.com/maxlaverse", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100100", - "pr_number": 100100, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "duplicate": true - }, - "100101": { - "commit": "3ccfe94563ab3eb95aacb56b691804fc098bc41c", - "text": "Graceful termination will now be honored when deleting a collection of pods.", - "markdown": "Graceful termination will now be honored when deleting a collection of pods. ([#100101](https://github.com/kubernetes/kubernetes/pull/100101), [@deads2k](https://github.com/deads2k))", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100101", - "pr_number": 100101, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "node", - "testing" - ], - "duplicate": true - }, - "100110": { - "commit": "830055379b811f69f6f4cd8622bdcf8a08307c9a", - "text": "Fix availability set cache in vmss cache", - "markdown": "Fix availability set cache in vmss cache ([#100110](https://github.com/kubernetes/kubernetes/pull/100110), [@CecileRobertMichon](https://github.com/CecileRobertMichon)) [SIG Cloud Provider]", - "author": "CecileRobertMichon", - "author_url": "https://github.com/CecileRobertMichon", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100110", - "pr_number": 100110, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "100136": { - "commit": "a2357f45167c8ff329f513926164bf370b212056", - "text": "Introduce a feature gate `DisableCloudProviders` allowing to disable cloud-provider initialization in KAPI, KCM and kubelet.\n`DisableCloudProviders` FeatureGate is currently in Alpha, which means is currently disabled by default. Once the FeatureGate moves to beta, in-tree cloud providers would be disabled by default, and a user won't be able to specify `--cloud-provider=\u003caws|openstack|azure|gcp|vsphere\u003e` anymore to any of KCM, KAPI or kubelet. Only a '--cloud-provider=external' would be allowed. CCM would have to run out-of-tree with CSI.", - "markdown": "Introduce a feature gate `DisableCloudProviders` allowing to disable cloud-provider initialization in KAPI, KCM and kubelet.\n `DisableCloudProviders` FeatureGate is currently in Alpha, which means is currently disabled by default. Once the FeatureGate moves to beta, in-tree cloud providers would be disabled by default, and a user won't be able to specify `--cloud-provider=\u003caws|openstack|azure|gcp|vsphere\u003e` anymore to any of KCM, KAPI or kubelet. Only a '--cloud-provider=external' would be allowed. CCM would have to run out-of-tree with CSI. ([#100136](https://github.com/kubernetes/kubernetes/pull/100136), [@Danil-Grigorev](https://github.com/Danil-Grigorev))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2443", - "type": "KEP" - } - ], - "author": "Danil-Grigorev", - "author_url": "https://github.com/Danil-Grigorev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100136", - "pr_number": 100136, - "areas": [ - "apiserver", - "cloudprovider", - "dependency", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "instrumentation", - "node" - ], - "feature": true, - "duplicate": true - }, - "100139": { - "commit": "6067d8556a017102fcd92c6a06738524c36847a9", - "text": "The feature gate `SSA` graduated to GA in v1.22 and therefore is unconditionally enabled.", - "markdown": "The feature gate `SSA` graduated to GA in v1.22 and therefore is unconditionally enabled. ([#100139](https://github.com/kubernetes/kubernetes/pull/100139), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100139", - "pr_number": 100139, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "100141": { - "commit": "e5e18d5266413fa56cc1b708f3c9e6772e6690e8", - "text": "Generated OpenAPI now correctly specifies 201 as a possible response code for PATCH operations.", - "markdown": "Generated OpenAPI now correctly specifies 201 as a possible response code for PATCH operations. ([#100141](https://github.com/kubernetes/kubernetes/pull/100141), [@brendandburns](https://github.com/brendandburns))", - "author": "brendandburns", - "author_url": "https://github.com/brendandburns", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100141", - "pr_number": 100141, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "100142": { - "commit": "f5eded9a00064f884e011feddfff6a9a9d6ceaf1", - "text": "kubectl: add `LAST RESTART` column to `kubectl get pods` output.", - "markdown": "Kubectl: add `LAST RESTART` column to `kubectl get pods` output. ([#100142](https://github.com/kubernetes/kubernetes/pull/100142), [@Ethyling](https://github.com/Ethyling))", - "author": "Ethyling", - "author_url": "https://github.com/Ethyling", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100142", - "pr_number": 100142, - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "100148": { - "commit": "d7355278b34f1eb83ae537506de3a816ac925226", - "text": "The new flag `--chunk-size=SIZE` for `kubectl drain` has been promoted to beta, and enabled by default. This flag may be used to alter the number of items or disable this feature when `0` is passed.", - "markdown": "The new flag `--chunk-size=SIZE` for `kubectl drain` has been promoted to beta, and enabled by default. This flag may be used to alter the number of items or disable this feature when `0` is passed. ([#100148](https://github.com/kubernetes/kubernetes/pull/100148), [@KnVerey](https://github.com/KnVerey))", - "author": "KnVerey", - "author_url": "https://github.com/KnVerey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100148", - "pr_number": 100148, - "areas": [ - "kubectl", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "100183": { - "commit": "4afb72a86328c1401e6888916aa6819fb1f23f7f", - "text": "Fixed starting new pods after previous pod timed out unmounting its volumes.", - "markdown": "Fixed starting new pods after previous pod timed out unmounting its volumes. ([#100183](https://github.com/kubernetes/kubernetes/pull/100183), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100183", - "pr_number": 100183, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "storage", - "testing" - ], - "duplicate": true - }, - "100200": { - "commit": "3eac7972552bdf9948b99d687fdf1cd0aa20834a", - "text": "Ensures `ExecProbeTimeout=false` kubelet feature gate with dockershim is taken into account, when the exec probe takes longer than `timeoutSeconds` configuration.", - "markdown": "Ensures `ExecProbeTimeout=false` kubelet feature gate with dockershim is taken into account, when the exec probe takes longer than `timeoutSeconds` configuration. ([#100200](https://github.com/kubernetes/kubernetes/pull/100200), [@jackfrancis](https://github.com/jackfrancis))", - "author": "jackfrancis", - "author_url": "https://github.com/jackfrancis", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100200", - "pr_number": 100200, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "100206": { - "commit": "8d6b3229da97d90e2673b0a32c44bdc26ae7f948", - "text": "Fixes `kubectl drain --dry-run=server`.", - "markdown": "Fixes `kubectl drain --dry-run=server`. ([#100206](https://github.com/kubernetes/kubernetes/pull/100206), [@KnVerey](https://github.com/KnVerey))", - "author": "KnVerey", - "author_url": "https://github.com/KnVerey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100206", - "pr_number": 100206, - "areas": [ - "kubectl", - "test" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "100234": { - "commit": "365ed5c4ad6854d30607eecb146687d579d60fa5", - "text": "kubeadm: Set the `seccompProfile` to `runtime/default` in the `PodSecurityContext` of the control-plane components that run as static Pods.", - "markdown": "Kubeadm: Set the `seccompProfile` to `runtime/default` in the `PodSecurityContext` of the control-plane components that run as static Pods. ([#100234](https://github.com/kubernetes/kubernetes/pull/100234), [@vinayakankugoyal](https://github.com/vinayakankugoyal))", - "documentation": [ - { - "description": "[KEP 2568]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/2568-kubeadm-non-root-control-plane", - "type": "KEP" - }, - { - "description": "[KEP Issue]", - "url": "https://github.com/kubernetes/enhancements/issues/2568", - "type": "KEP" - } - ], - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100234", - "pr_number": 100234, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "100262": { - "commit": "eb326fdc07710ba66d2d90edbceb648e4df4627c", - "text": "NONE", - "markdown": "NONE ([#100262](https://github.com/kubernetes/kubernetes/pull/100262), [@chaitanyabandi](https://github.com/chaitanyabandi)) [SIG Apps and Testing]", - "author": "chaitanyabandi", - "author_url": "https://github.com/chaitanyabandi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100262", - "pr_number": 100262, - "areas": [ - "conformance", - "test" - ], - "kinds": [ - "bug", - "flake" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "100267": { - "commit": "12f846645955c3f28489c5b9251b674642ca5f74", - "text": "Adds two kubemark flags, `--max-pods` and `--extended-resources`.", - "markdown": "Adds two kubemark flags, `--max-pods` and `--extended-resources`. ([#100267](https://github.com/kubernetes/kubernetes/pull/100267), [@Jeffwan](https://github.com/Jeffwan))", - "author": "Jeffwan", - "author_url": "https://github.com/Jeffwan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100267", - "pr_number": 100267, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "scalability" - ], - "feature": true, - "duplicate": true - }, - "100292": { - "commit": "7229ea343dd649f9a6c20fa1fd6b13e602f3f082", - "text": "Updated pause image to version 3.5, which now runs per default as pseudo user and group `65535:65535`. This does not have any effect on remote container runtimes like CRI-O and containerd, which setup the pod sandbox user and group on their own.", - "markdown": "Updated pause image to version 3.5, which now runs per default as pseudo user and group `65535:65535`. This does not have any effect on remote container runtimes like CRI-O and containerd, which setup the pod sandbox user and group on their own. ([#100292](https://github.com/kubernetes/kubernetes/pull/100292), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100292", - "pr_number": 100292, - "areas": [ - "kubeadm", - "kubectl", - "kubelet", - "provider/gcp", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli", - "cloud-provider", - "cluster-lifecycle", - "node", - "testing" - ], - "duplicate": true - }, - "100311": { - "commit": "3074a6e323235e79c61e6c2c3646d922f985dd5a", - "text": "Expose `rest_client_rate_limiter_duration_seconds` metric to component-base to track client side rate limiter latency in seconds. Broken down by verb and URL.", - "markdown": "Expose `rest_client_rate_limiter_duration_seconds` metric to component-base to track client side rate limiter latency in seconds. Broken down by verb and URL. ([#100311](https://github.com/kubernetes/kubernetes/pull/100311), [@IonutBajescu](https://github.com/IonutBajescu)) [SIG API Machinery, Cluster Lifecycle and Instrumentation]", - "author": "IonutBajescu", - "author_url": "https://github.com/IonutBajescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100311", - "pr_number": 100311, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "instrumentation" - ], - "duplicate": true - }, - "100322": { - "commit": "a95fd40203ea774bc8294c9fb93b1864c7d35ca4", - "text": "NONE", - "markdown": "NONE ([#100322](https://github.com/kubernetes/kubernetes/pull/100322), [@minbaev](https://github.com/minbaev)) [SIG Scheduling and Testing]", - "author": "minbaev", - "author_url": "https://github.com/minbaev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100322", - "pr_number": 100322, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "100339": { - "commit": "f962166f30688653e1f901f1b5d9920734a345d5", - "text": "Adds metrics for the delegated authorizer used by extension APIs that delegate authorization logic to the Kube API server.", - "markdown": "Adds metrics for the delegated authorizer used by extension APIs that delegate authorization logic to the Kube API server. ([#100339](https://github.com/kubernetes/kubernetes/pull/100339), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100339", - "pr_number": 100339, - "areas": [ - "apiserver", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "node" - ], - "feature": true, - "duplicate": true - }, - "100350": { - "commit": "bc703278dd4b49267cb130609c22511808707ec9", - "text": "For `kubeadm`: support for custom imagetags for etcd images which contain build metadata, when imagetags are in the form of version_metadata. For instance, if the etcd version is v3.4.13+patch.0, the supported imagetag would be v3.4.13_patch.0", - "markdown": "For `kubeadm`: support for custom imagetags for etcd images which contain build metadata, when imagetags are in the form of version_metadata. For instance, if the etcd version is v3.4.13+patch.0, the supported imagetag would be v3.4.13_patch.0 ([#100350](https://github.com/kubernetes/kubernetes/pull/100350), [@jr0d](https://github.com/jr0d))", - "author": "jr0d", - "author_url": "https://github.com/jr0d", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100350", - "pr_number": 100350, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "100369": { - "commit": "4e7fc6df634ed171c860702730c701c46b9e85fd", - "text": "After DBus restarts, make `GracefulNodeShutdown` work again", - "markdown": "After DBus restarts, make `GracefulNodeShutdown` work again ([#100369](https://github.com/kubernetes/kubernetes/pull/100369), [@wzshiming](https://github.com/wzshiming))", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100369", - "pr_number": 100369, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "100404": { - "commit": "67820edf180f390660ca47553a80a716dc3eeeba", - "text": "Limit vSphere volume name to 63 characters long.", - "markdown": "Limit vSphere volume name to 63 characters long. ([#100404](https://github.com/kubernetes/kubernetes/pull/100404), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100404", - "pr_number": 100404, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "100412": { - "commit": "cbe3ef473ebeda55059b8bf65b88e23077bfb6b8", - "text": "The `ServiceLBNodePortControl` graduates to Beta and is enabled by default.", - "markdown": "The `ServiceLBNodePortControl` graduates to Beta and is enabled by default. ([#100412](https://github.com/kubernetes/kubernetes/pull/100412), [@hanlins](https://github.com/hanlins))", - "author": "hanlins", - "author_url": "https://github.com/hanlins", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100412", - "pr_number": 100412, - "areas": [ - "conformance", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "network", - "testing" - ], - "feature": true, - "duplicate": true - }, - "100435": { - "commit": "02d0878690eb911ccba94d7dedad85abe7a0573e", - "text": "Support correct sorting for cpu, memory, storage, ephemeral-storage, hugepages, and attachable-volumes.", - "markdown": "Support correct sorting for cpu, memory, storage, ephemeral-storage, hugepages, and attachable-volumes. ([#100435](https://github.com/kubernetes/kubernetes/pull/100435), [@lauchokyip](https://github.com/lauchokyip))", - "author": "lauchokyip", - "author_url": "https://github.com/lauchokyip", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100435", - "pr_number": 100435, - "areas": [ - "kubectl", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "100436": { - "commit": "99301e672b78edcd101f79663c233a9395d78d00", - "text": "None.", - "markdown": "None. ([#100436](https://github.com/kubernetes/kubernetes/pull/100436), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Cloud Provider]", - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100436", - "pr_number": 100436, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ], - "do_not_publish": true - }, - "100488": { - "commit": "3a47ddccdfb09e73758cebb2690ad2a014f67e23", - "text": "The etcd client has been updated to 3.5.0; `github.com/golang/protobuf`, `google.golang.org/protobuf`, and `google.golang.org/grpc` have been updated to current versions.", - "markdown": "The etcd client has been updated to 3.5.0; `github.com/golang/protobuf`, `google.golang.org/protobuf`, and `google.golang.org/grpc` have been updated to current versions. ([#100488](https://github.com/kubernetes/kubernetes/pull/100488), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100488", - "pr_number": 100488, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubeadm", - "kubectl", - "kubelet", - "release-eng", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "node", - "storage", - "testing" - ], - "duplicate": true - }, - "100500": { - "commit": "77e73ffbee92c933d9cb94818a31c2e633ea1fe4", - "text": "Fix: using NVMe AWS EBS volumes partitions.", - "markdown": "Fix: using NVMe AWS EBS volumes partitions. ([#100500](https://github.com/kubernetes/kubernetes/pull/100500), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100500", - "pr_number": 100500, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "100565": { - "commit": "003dd87cffec47bdcb425bb6f730ddcfa591c8f3", - "text": "Parsing of cpuset information now properly detects more invalid input such as `1--3` or `10-6`.", - "markdown": "Parsing of cpuset information now properly detects more invalid input such as `1--3` or `10-6`. ([#100565](https://github.com/kubernetes/kubernetes/pull/100565), [@lack](https://github.com/lack))", - "author": "lack", - "author_url": "https://github.com/lack", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100565", - "pr_number": 100565, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "100568": { - "commit": "cdf1b17bb8bcbf8a420d7e0a11336d09b0c37730", - "text": "Added BinaryData description to `kubectl describe` command.", - "markdown": "Added BinaryData description to `kubectl describe` command. ([#100568](https://github.com/kubernetes/kubernetes/pull/100568), [@lauchokyip](https://github.com/lauchokyip))", - "author": "lauchokyip", - "author_url": "https://github.com/lauchokyip", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100568", - "pr_number": 100568, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "100575": { - "commit": "7edb592e3da4d516c2a8920237b3b384346f3d3f", - "text": "None", - "markdown": "None ([#100575](https://github.com/kubernetes/kubernetes/pull/100575), [@ZP-AlwaysWin](https://github.com/ZP-AlwaysWin)) [SIG Apps and Testing]", - "author": "ZP-AlwaysWin", - "author_url": "https://github.com/ZP-AlwaysWin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100575", - "pr_number": 100575, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "100599": { - "commit": "6c97da72f4c8fa3f8a2fe9be1bee9ca4ddb92d4e", - "text": "Fire an event when failing to open `NodePort`.", - "markdown": "Fire an event when failing to open `NodePort`. ([#100599](https://github.com/kubernetes/kubernetes/pull/100599), [@masap](https://github.com/masap))", - "author": "masap", - "author_url": "https://github.com/masap", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100599", - "pr_number": 100599, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "100608": { - "commit": "a49b4a1018c9fd60c9d7ff194a7bba43d8e3cfce", - "text": "Fix runtime container status for `PostStart` hook error.", - "markdown": "Fix runtime container status for `PostStart` hook error. ([#100608](https://github.com/kubernetes/kubernetes/pull/100608), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100608", - "pr_number": 100608, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "100612": { - "commit": "7d176851f2c433f4301a64dfeb3b2626ca9c2f60", - "text": "Upgrading etcd: `kubeadm` upgrade etcd to 3.4.13-3", - "markdown": "Upgrading etcd: `kubeadm` upgrade etcd to 3.4.13-3 ([#100612](https://github.com/kubernetes/kubernetes/pull/100612), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100612", - "pr_number": 100612, - "areas": [ - "kubeadm", - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "cluster-lifecycle" - ], - "duplicate": true - }, - "100635": { - "commit": "5b038e6cff10fd71dca458820401b8319bbc9846", - "text": "Run etcd as non-root on GCE provider", - "markdown": "Run etcd as non-root on GCE provider ([#100635](https://github.com/kubernetes/kubernetes/pull/100635), [@cindy52](https://github.com/cindy52))", - "author": "cindy52", - "author_url": "https://github.com/cindy52", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100635", - "pr_number": 100635, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "100638": { - "commit": "b6ff1370bd2310eab0518d22aaca303df1f17c2f", - "text": "Fixes a data race issue in the priority and fairness API server filter.", - "markdown": "Fixes a data race issue in the priority and fairness API server filter. ([#100638](https://github.com/kubernetes/kubernetes/pull/100638), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100638", - "pr_number": 100638, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "flake" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "100644": { - "commit": "ed3e0d302fb546653b78df583569b0311687a7a8", - "text": "The kubeconfig is now exposed in `the kube-scheduler` framework handle. Out-of-tree plugins can leverage that to build CRD informers easily.", - "markdown": "The kubeconfig is now exposed in `the kube-scheduler` framework handle. Out-of-tree plugins can leverage that to build CRD informers easily. ([#100644](https://github.com/kubernetes/kubernetes/pull/100644), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100644", - "pr_number": 100644, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true - }, - "100651": { - "commit": "46b9ccd0fcc9522342807b16d750b02e34998d64", - "text": "New feature gate `ExpandedDNSConfig` is now available. This feature allows Kubernetes to have expanded DNS configuration.", - "markdown": "New feature gate `ExpandedDNSConfig` is now available. This feature allows Kubernetes to have expanded DNS configuration. ([#100651](https://github.com/kubernetes/kubernetes/pull/100651), [@gjkim42](https://github.com/gjkim42))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2595-expanded-dns-config", - "type": "KEP" - } - ], - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100651", - "pr_number": 100651, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "network", - "node" - ], - "feature": true, - "duplicate": true - }, - "100678": { - "commit": "3294787f572e0fb22ce81c6fba89f631652e13b7", - "text": "Add a new Priority and Fairness rule that exempts all probes (`/readyz`, `/healthz`, `/livez`) to prevent restarting of healthy `kube-apiserver` instance by kubelet.", - "markdown": "Add a new Priority and Fairness rule that exempts all probes (`/readyz`, `/healthz`, `/livez`) to prevent restarting of healthy `kube-apiserver` instance by kubelet. ([#100678](https://github.com/kubernetes/kubernetes/pull/100678), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100678", - "pr_number": 100678, - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "100680": { - "commit": "bb89384f3981bae3f1d507c340593514abc734bc", - "text": "Fixes an overly restrictive conformance test to accept service account tokens signed by an ECDSA key", - "markdown": "Fixes an overly restrictive conformance test to accept service account tokens signed by an ECDSA key ([#100680](https://github.com/kubernetes/kubernetes/pull/100680), [@smira](https://github.com/smira)) [SIG Architecture, Auth and Testing]", - "author": "smira", - "author_url": "https://github.com/smira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100680", - "pr_number": 100680, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "architecture", - "auth", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "100684": { - "commit": "081ac6b5a9004b7c6cfe6a8b8f83e60eca58a010", - "text": "The `Server Side Apply` treats certain structs as atomic. Meaning the entire selector field is managed by a single writer and updated together.", - "markdown": "The `Server Side Apply` treats certain structs as atomic. Meaning the entire selector field is managed by a single writer and updated together. ([#100684](https://github.com/kubernetes/kubernetes/pull/100684), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100684", - "pr_number": 100684, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "node", - "storage" - ], - "duplicate": true, - "duplicate_kind": true - }, - "100686": { - "commit": "43a32c14f5827e42c1449b09aca1ab8624796e54", - "text": "Use default timeout of 10s for Azure ACR credential provider.", - "markdown": "Use default timeout of 10s for Azure ACR credential provider. ([#100686](https://github.com/kubernetes/kubernetes/pull/100686), [@hasheddan](https://github.com/hasheddan)) [SIG Cloud Provider]", - "author": "hasheddan", - "author_url": "https://github.com/hasheddan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100686", - "pr_number": 100686, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "duplicate_kind": true - }, - "100690": { - "commit": "7a0092f96a3cae2263a4744f9e5b966ea56197f3", - "text": "Fix Azure node public IP fetching issues from instance metadata service when the node is part of standard load balancer backend pool.", - "markdown": "Fix Azure node public IP fetching issues from instance metadata service when the node is part of standard load balancer backend pool. ([#100690](https://github.com/kubernetes/kubernetes/pull/100690), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider]", - "author": "feiskyer", - "author_url": "https://github.com/feiskyer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100690", - "pr_number": 100690, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "100694": { - "commit": "0e4545de01f1dc2ccaae01a3405af566a6880f72", - "text": "Applying fix for not deleting existing public IP when a service is deleted in Azure.", - "markdown": "Applying fix for not deleting existing public IP when a service is deleted in Azure. ([#100694](https://github.com/kubernetes/kubernetes/pull/100694), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100694", - "pr_number": 100694, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "100724": { - "commit": "27a625cf8921007eaf115425b6d61587eb253e92", - "text": "The `pod/eviction` subresource now accepts `policy/v1` eviction requests in addition to `policy/v1beta1` eviction requests", - "markdown": "The `pod/eviction` subresource now accepts `policy/v1` eviction requests in addition to `policy/v1beta1` eviction requests ([#100724](https://github.com/kubernetes/kubernetes/pull/100724), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100724", - "pr_number": 100724, - "areas": [ - "apiserver", - "conformance", - "kubectl", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "cli", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "100728": { - "commit": "1cedfef5c60480d24a3282a61847ebfc36e17cbd", - "text": "A value of `Auto` is now a valid for the `service.kubernetes.io/topology-aware-hints` annotation.", - "markdown": "A value of `Auto` is now a valid for the `service.kubernetes.io/topology-aware-hints` annotation. ([#100728](https://github.com/kubernetes/kubernetes/pull/100728), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100728", - "pr_number": 100728, - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "apps", - "instrumentation", - "network" - ], - "duplicate": true, - "duplicate_kind": true - }, - "100731": { - "commit": "a55bd631728590045b51a4f65bba31aed1415571", - "text": "azurefile: Normalize share name to not include the capital letters", - "markdown": "Azurefile: Normalize share name to not include the capital letters ([#100731](https://github.com/kubernetes/kubernetes/pull/100731), [@kassarl](https://github.com/kassarl))", - "author": "kassarl", - "author_url": "https://github.com/kassarl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100731", - "pr_number": 100731, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "duplicate": true - }, - "100754": { - "commit": "77e769b040c6ffa46cb4bfb3b82223e513bec8b1", - "text": "The `WarningHeader` feature is now GA and is unconditionally enabled. The `apiserver_requested_deprecated_apis` metric has graduated to stable status. The `WarningHeader` feature-gate is no longer operative and will be removed in v1.24.", - "markdown": "The `WarningHeader` feature is now GA and is unconditionally enabled. The `apiserver_requested_deprecated_apis` metric has graduated to stable status. The `WarningHeader` feature-gate is no longer operative and will be removed in v1.24. ([#100754](https://github.com/kubernetes/kubernetes/pull/100754), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Instrumentation and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1693-warnings", - "type": "KEP" - } - ], - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100754", - "pr_number": 100754, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "100784": { - "commit": "442b3218b3d3eecdd9e55bffcb2c6b135f3084b7", - "text": "Updates dependency `sigs.k8s.io/structured-merge-diff` to v4.1.1.", - "markdown": "Updates dependency `sigs.k8s.io/structured-merge-diff` to v4.1.1. ([#100784](https://github.com/kubernetes/kubernetes/pull/100784), [@kevindelgado](https://github.com/kevindelgado))", - "author": "kevindelgado", - "author_url": "https://github.com/kevindelgado", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100784", - "pr_number": 100784, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "storage" - ], - "duplicate": true - }, - "100842": { - "commit": "a98d3d0700f6bea05711260d67603accb23ad143", - "text": "Introduce `minReadySeconds` api to the `StatefulSets`.", - "markdown": "Introduce `minReadySeconds` api to the `StatefulSets`. ([#100842](https://github.com/kubernetes/kubernetes/pull/100842), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2607", - "type": "KEP" - }, - { - "description": "[Other doc]", - "url": "https://github.com/kubernetes/website/pull/27683", - "type": "external" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100842", - "pr_number": 100842, - "areas": [ - "apiserver", - "code-generation", - "test" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "duplicate": true - }, - "100861": { - "commit": "ff2a3e1147406035934c2e08240be061fe518617", - "text": "Fix: Bug in `kube-proxy` latency metrics to calculate only the latency value for the `Endpoints` that are created after it starts running. This is needed because all the `Endpoints` objects are processed on restarts, independently when they were.", - "markdown": "Fix: Bug in `kube-proxy` latency metrics to calculate only the latency value for the `Endpoints` that are created after it starts running. This is needed because all the `Endpoints` objects are processed on restarts, independently when they were. ([#100861](https://github.com/kubernetes/kubernetes/pull/100861), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100861", - "pr_number": 100861, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "instrumentation", - "network" - ], - "duplicate": true - }, - "100907": { - "commit": "61641a0640f197e6e67a41b49b49a7b5bd3af6a9", - "text": "For `kubeadm`: add `--validity-period` flag for `kubeadm kubeconfig user` command.", - "markdown": "For `kubeadm`: add `--validity-period` flag for `kubeadm kubeconfig user` command. ([#100907](https://github.com/kubernetes/kubernetes/pull/100907), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100907", - "pr_number": 100907, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "100913": { - "commit": "e1ac51190f6351baeeeb2a079990159ae403d7c6", - "text": "If `kube-proxy` mode is userspace do not enable `EndpointSlices`.", - "markdown": "If `kube-proxy` mode is userspace do not enable `EndpointSlices`. ([#100913](https://github.com/kubernetes/kubernetes/pull/100913), [@JornShen](https://github.com/JornShen))", - "author": "JornShen", - "author_url": "https://github.com/JornShen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100913", - "pr_number": 100913, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "100939": { - "commit": "5c137f1af94e23a71e7a7a3dad037f1193147778", - "text": "Support `FakeClientset` match subresource.", - "markdown": "Support `FakeClientset` match subresource. ([#100939](https://github.com/kubernetes/kubernetes/pull/100939), [@wzshiming](https://github.com/wzshiming))", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100939", - "pr_number": 100939, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "100940": { - "commit": "8da9d2ff55ad98a685978dd690d66dfb4eb9c1fd", - "text": "Fake clients now implement a `FakeClient` interface", - "markdown": "Fake clients now implement a `FakeClient` interface ([#100940](https://github.com/kubernetes/kubernetes/pull/100940), [@markusthoemmes](https://github.com/markusthoemmes)) [SIG API Machinery and Instrumentation]", - "author": "markusthoemmes", - "author_url": "https://github.com/markusthoemmes", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100940", - "pr_number": 100940, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "100942": { - "commit": "cf2c817c5a2e02f65f4d2b31afee2a7aeee8a76a", - "text": "NONE", - "markdown": "NONE ([#100942](https://github.com/kubernetes/kubernetes/pull/100942), [@wangyysde](https://github.com/wangyysde)) [SIG Cluster Lifecycle]", - "author": "wangyysde", - "author_url": "https://github.com/wangyysde", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100942", - "pr_number": 100942, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "100944": { - "commit": "f55426d9d812e5af4a17651085fe6c65e27c52d3", - "text": "Ensure service is deleted when the Azure resource group has been deleted.", - "markdown": "Ensure service is deleted when the Azure resource group has been deleted. ([#100944](https://github.com/kubernetes/kubernetes/pull/100944), [@feiskyer](https://github.com/feiskyer))", - "author": "feiskyer", - "author_url": "https://github.com/feiskyer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100944", - "pr_number": 100944, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "100948": { - "commit": "6349ddbed490633b558ca73ecc4233e0a3f9da8b", - "text": "Avoid caching the Azure VMSS instances whose network profile is nil", - "markdown": "Avoid caching the Azure VMSS instances whose network profile is nil ([#100948](https://github.com/kubernetes/kubernetes/pull/100948), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider]", - "author": "feiskyer", - "author_url": "https://github.com/feiskyer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100948", - "pr_number": 100948, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "100956": { - "commit": "a96000311f5beca111debc8727018e42cbb5dc79", - "text": "Update cri-tools dependency to `v1.21.0`.", - "markdown": "Update cri-tools dependency to `v1.21.0`. ([#100956](https://github.com/kubernetes/kubernetes/pull/100956), [@saschagrunert](https://github.com/saschagrunert))", - "documentation": [ - { - "description": "The release", - "url": "https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.21.0", - "type": "external" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100956", - "pr_number": 100956, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "node" - ], - "duplicate": true - }, - "100959": { - "commit": "dc2020eb9d59a19952cbdabd3d4f819c6f307899", - "text": "Renames the timeout field for the `DelegatingAuthenticationOptions` to `TokenRequestTimeout` and set the timeout only for the token review client. Previously the timeout was also applied to watches making them reconnecting every 10 seconds.", - "markdown": "Renames the timeout field for the `DelegatingAuthenticationOptions` to `TokenRequestTimeout` and set the timeout only for the token review client. Previously the timeout was also applied to watches making them reconnecting every 10 seconds. ([#100959](https://github.com/kubernetes/kubernetes/pull/100959), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100959", - "pr_number": 100959, - "areas": [ - "apiserver", - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider" - ], - "duplicate": true - }, - "100976": { - "commit": "3ed71cf190a3d6a6dcb965cf73224538059e8e5e", - "text": "Base images: Updated to\n- debian-base:buster-v1.6.0\n- debian-iptables:buster-v1.6.0", - "markdown": "Base images: Updated to\n - debian-base:buster-v1.6.0\n - debian-iptables:buster-v1.6.0 ([#100976](https://github.com/kubernetes/kubernetes/pull/100976), [@jindijamie](https://github.com/jindijamie))", - "author": "jindijamie", - "author_url": "https://github.com/jindijamie", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100976", - "pr_number": 100976, - "areas": [ - "release-eng", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "101005": { - "commit": "02c556d4d2719404f334dddc88f862b7da411b9b", - "text": "The `kubectl create service` now respects the `namespace` flag.", - "markdown": "The `kubectl create service` now respects the `namespace` flag. ([#101005](https://github.com/kubernetes/kubernetes/pull/101005), [@zxh326](https://github.com/zxh326))", - "author": "zxh326", - "author_url": "https://github.com/zxh326", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101005", - "pr_number": 101005, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "101025": { - "commit": "3fcd8398c75fd56fb495f9b8ae85ee66f27e119f", - "text": "Fix `EndpointSlice` describe panic when an Endpoint doesn't have zone.", - "markdown": "Fix `EndpointSlice` describe panic when an Endpoint doesn't have zone. ([#101025](https://github.com/kubernetes/kubernetes/pull/101025), [@tnqn](https://github.com/tnqn))", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101025", - "pr_number": 101025, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "101030": { - "commit": "985ac8ae5089d3312640b0fca795469fb8025f2a", - "text": "The pod resource API will provide memory manager metrics in the case when the memory manager feature gate is enabled, and the memory manager policy is static.", - "markdown": "The pod resource API will provide memory manager metrics in the case when the memory manager feature gate is enabled, and the memory manager policy is static. ([#101030](https://github.com/kubernetes/kubernetes/pull/101030), [@cynepco3hahue](https://github.com/cynepco3hahue))", - "author": "cynepco3hahue", - "author_url": "https://github.com/cynepco3hahue", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101030", - "pr_number": 101030, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "101034": { - "commit": "972ee2d425333d0b30f340328ef6c7dc40fd2715", - "text": "The `pods/ephemeralcontainers` API now returns and expects a `Pod` object instead of `EphemeralContainers`. This is incompatible with the previous alpha-level API.", - "markdown": "The `pods/ephemeralcontainers` API now returns and expects a `Pod` object instead of `EphemeralContainers`. This is incompatible with the previous alpha-level API. ([#101034](https://github.com/kubernetes/kubernetes/pull/101034), [@verb](https://github.com/verb)) [SIG Apps, Auth, CLI and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://git.k8s.io/enhancements/keps/sig-node/277-ephemeral-containers", - "type": "external" - } - ], - "author": "verb", - "author_url": "https://github.com/verb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101034", - "pr_number": 101034, - "areas": [ - "kubectl", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "auth", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "101047": { - "commit": "76b09061362c789878fae5e7c3e0f65c82a40f50", - "text": "Fix winkernel kube-proxy to only use dual stack when host and networking supports it", - "markdown": "Fix winkernel kube-proxy to only use dual stack when host and networking supports it ([#101047](https://github.com/kubernetes/kubernetes/pull/101047), [@jsturtevant](https://github.com/jsturtevant)) [SIG Network and Windows]", - "author": "jsturtevant", - "author_url": "https://github.com/jsturtevant", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101047", - "pr_number": 101047, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true - }, - "101048": { - "commit": "677210ba32e8d0181e374728d143bc38b9950e18", - "text": "The `EmptyDir` memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value.", - "markdown": "The `EmptyDir` memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value. ([#101048](https://github.com/kubernetes/kubernetes/pull/101048), [@dims](https://github.com/dims))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2345", - "type": "KEP" - } - ], - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101048", - "pr_number": 101048, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "101057": { - "commit": "43b9491055d59ec66c69ee17ebf566f5ec3fe0d6", - "text": "After the deprecation period,now the Kubelet's `--chaos-chance` flag are removed.", - "markdown": "After the deprecation period,now the Kubelet's `--chaos-chance` flag are removed. ([#101057](https://github.com/kubernetes/kubernetes/pull/101057), [@wangyysde](https://github.com/wangyysde)) [SIG Node]", - "author": "wangyysde", - "author_url": "https://github.com/wangyysde", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101057", - "pr_number": 101057, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "101067": { - "commit": "dfc91819b78e7dbf56194f50eff4c19c9fecd01b", - "text": "Fixed mounting of NFS volumes when IPv6 address is used as a server.", - "markdown": "Fixed mounting of NFS volumes when IPv6 address is used as a server. ([#101067](https://github.com/kubernetes/kubernetes/pull/101067), [@Elbehery](https://github.com/Elbehery)) [SIG Storage]", - "author": "Elbehery", - "author_url": "https://github.com/Elbehery", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101067", - "pr_number": 101067, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "101074": { - "commit": "c246b03d74acf2c420611991e692248e04fc02a8", - "text": "The command`kubectl debug` will now print a warning message when using the `--target` option since many container runtimes do not support this yet.", - "markdown": "The command`kubectl debug` will now print a warning message when using the `--target` option since many container runtimes do not support this yet. ([#101074](https://github.com/kubernetes/kubernetes/pull/101074), [@verb](https://github.com/verb))", - "author": "verb", - "author_url": "https://github.com/verb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101074", - "pr_number": 101074, - "areas": [ - "kubectl" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cli" - ] - }, - "101076": { - "commit": "6cc27991e95a4bd242a9c631d520a909778d05e6", - "text": "Chain the field manager creation calls in `newDefaultFieldManager` to be explicit about the order of operations.", - "markdown": "Chain the field manager creation calls in `newDefaultFieldManager` to be explicit about the order of operations. ([#101076](https://github.com/kubernetes/kubernetes/pull/101076), [@kevindelgado](https://github.com/kevindelgado))", - "author": "kevindelgado", - "author_url": "https://github.com/kevindelgado", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101076", - "pr_number": 101076, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "101080": { - "commit": "fcf9300cc8e6918fce26e9ad1e9f7360a7cbf552", - "text": "The `PodDeletionCost` feature has been promoted to beta, and enabled by default.", - "markdown": "The `PodDeletionCost` feature has been promoted to beta, and enabled by default. ([#101080](https://github.com/kubernetes/kubernetes/pull/101080), [@ahg-g](https://github.com/ahg-g))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2255-pod-cost", - "type": "KEP" - } - ], - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101080", - "pr_number": 101080, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "duplicate_kind": true - }, - "101082": { - "commit": "3a2092345e8aeca767c5a17855c7b43f559ca60b", - "text": "CSI migration of AWS EBS volumes requires AWS EBS CSI driver ver. 1.0 that supports `allowAutoIOPSPerGBIncrease` parameter in StorageClass.", - "markdown": "CSI migration of AWS EBS volumes requires AWS EBS CSI driver ver. 1.0 that supports `allowAutoIOPSPerGBIncrease` parameter in StorageClass. ([#101082](https://github.com/kubernetes/kubernetes/pull/101082), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101082", - "pr_number": 101082, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "action_required": true - }, - "101084": { - "commit": "889f1c395192e98a677ed17a1c12f4bb7e414d36", - "text": "The `EndpointSlice` IP validation now matches `Endpoints` IP validation.", - "markdown": "The `EndpointSlice` IP validation now matches `Endpoints` IP validation. ([#101084](https://github.com/kubernetes/kubernetes/pull/101084), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101084", - "pr_number": 101084, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true, - "duplicate_kind": true - }, - "101093": { - "commit": "7552ca9f56ff644a38ed50924abcc65696418539", - "text": "Fixed a bug where `startupProbe` stopped working after a container's first restart.", - "markdown": "Fixed a bug where `startupProbe` stopped working after a container's first restart. ([#101093](https://github.com/kubernetes/kubernetes/pull/101093), [@wzshiming](https://github.com/wzshiming))", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101093", - "pr_number": 101093, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "101104": { - "commit": "994707099a9136dfab4af38a4b10c202f3a2428f", - "text": "None", - "markdown": "None ([#101104](https://github.com/kubernetes/kubernetes/pull/101104), [@niulechuan](https://github.com/niulechuan)) [SIG Cluster Lifecycle]", - "author": "niulechuan", - "author_url": "https://github.com/niulechuan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101104", - "pr_number": 101104, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "101110": { - "commit": "dd6ee99f62ebd91cf22c03a7f2c2594c1f5807e6", - "text": "kubeadm: enable `--experimental-patches` flag for `kubeadm join phase control-plane-join all` command.", - "markdown": "Kubeadm: enable `--experimental-patches` flag for `kubeadm join phase control-plane-join all` command. ([#101110](https://github.com/kubernetes/kubernetes/pull/101110), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101110", - "pr_number": 101110, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "101120": { - "commit": "743ceb7e73e14f3f4a7dd8ea794952888fbb5689", - "text": "Upgrades functionality of `kubectl kustomize` as described at [kustomize/v4.1.2](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.2)", - "markdown": "Upgrades functionality of `kubectl kustomize` as described at [kustomize/v4.1.2](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.2) ([#101120](https://github.com/kubernetes/kubernetes/pull/101120), [@monopole](https://github.com/monopole))", - "author": "monopole", - "author_url": "https://github.com/monopole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101120", - "pr_number": 101120, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation" - ], - "duplicate": true - }, - "101129": { - "commit": "89db31aadefb5207dbf84e2403495d0da31c7c35", - "text": "kubeadm: remove the deprecated kubeadm API `v1beta1`. Introduce a new kubeadm API `v1beta3`. See [kubeadm/v1beta3](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3) for a list of changes since `v1beta2`. Note that `v1beta2` is not yet deprecated, but will be in a future release.", - "markdown": "Kubeadm: remove the deprecated kubeadm API `v1beta1`. Introduce a new kubeadm API `v1beta3`. See [kubeadm/v1beta3](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3) for a list of changes since `v1beta2`. Note that `v1beta2` is not yet deprecated, but will be in a future release. ([#101129](https://github.com/kubernetes/kubernetes/pull/101129), [@neolit123](https://github.com/neolit123))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/970-kubeadm-config", - "type": "external" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101129", - "pr_number": 101129, - "areas": [ - "kubeadm" - ], - "kinds": [ - "deprecation", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true, - "action_required": true - }, - "101151": { - "commit": "09bd59687500e6b3c53e34cf20ef7727a1886c22", - "text": "New `node-high` priority-level has been added to Suggested API Priority and", - "markdown": "New `node-high` priority-level has been added to Suggested API Priority and ([#101151](https://github.com/kubernetes/kubernetes/pull/101151), [@mborsz](https://github.com/mborsz))", - "author": "mborsz", - "author_url": "https://github.com/mborsz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101151", - "pr_number": 101151, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "101155": { - "commit": "6157361dd758dc5774b7776d897727b53d696d57", - "text": "kube-apiserver: `--service-account-issuer` can be specified multiple times now, to enable non-disruptive change of issuer.", - "markdown": "Kube-apiserver: `--service-account-issuer` can be specified multiple times now, to enable non-disruptive change of issuer. ([#101155](https://github.com/kubernetes/kubernetes/pull/101155), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101155", - "pr_number": 101155, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "101160": { - "commit": "356a64717229e4703a0908eddcabeb7d83de25bf", - "text": "Fix: display of Job completion mode in `kubectl describe`.", - "markdown": "Fix: display of Job completion mode in `kubectl describe`. ([#101160](https://github.com/kubernetes/kubernetes/pull/101160), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101160", - "pr_number": 101160, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "cli" - ], - "duplicate": true - }, - "101171": { - "commit": "3061f6149fd51a05283848868509bcfc6fa06a76", - "text": "The new flag `--chunk-size=SIZE` has been added to `kubectl describe`. This flag may be used to alter the number of items or disable this feature when `0` is passed.", - "markdown": "The new flag `--chunk-size=SIZE` has been added to `kubectl describe`. This flag may be used to alter the number of items or disable this feature when `0` is passed. ([#101171](https://github.com/kubernetes/kubernetes/pull/101171), [@KnVerey](https://github.com/KnVerey))", - "author": "KnVerey", - "author_url": "https://github.com/KnVerey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101171", - "pr_number": 101171, - "areas": [ - "kubectl", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "101181": { - "commit": "898bb9666c866515aa8d51227759ee757a11f262", - "text": "Kubemark's hollow-node will now print flags before starting.", - "markdown": "Kubemark's hollow-node will now print flags before starting. ([#101181](https://github.com/kubernetes/kubernetes/pull/101181), [@mm4tt](https://github.com/mm4tt))", - "author": "mm4tt", - "author_url": "https://github.com/mm4tt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101181", - "pr_number": 101181, - "kinds": [ - "feature" - ], - "sigs": [ - "scalability" - ], - "feature": true - }, - "101186": { - "commit": "6ede5ca95f78478fa627ecfea8136e0dff34436b", - "text": "Fixed generic ephemeal volumes with `OwnerReferencesPermissionEnforcement` admission plugin enabled.", - "markdown": "Fixed generic ephemeal volumes with `OwnerReferencesPermissionEnforcement` admission plugin enabled. ([#101186](https://github.com/kubernetes/kubernetes/pull/101186), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101186", - "pr_number": 101186, - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "auth", - "storage" - ], - "duplicate": true, - "duplicate_kind": true - }, - "101187": { - "commit": "8365e2384cad2491df15b56e8c911e01febb60c8", - "text": "Remove the duplicate packet import.", - "markdown": "Remove the duplicate packet import. ([#101187](https://github.com/kubernetes/kubernetes/pull/101187), [@chuntaochen](https://github.com/chuntaochen))", - "author": "chuntaochen", - "author_url": "https://github.com/chuntaochen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101187", - "pr_number": 101187, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "101203": { - "commit": "c1f6a956fc5843c5716cec767d540c24ac623d01", - "text": "Added privileges for `EndpointSlice` to the default view \u0026 edit RBAC roles.", - "markdown": "Added privileges for `EndpointSlice` to the default view \u0026 edit RBAC roles. ([#101203](https://github.com/kubernetes/kubernetes/pull/101203), [@mtougeron](https://github.com/mtougeron))", - "author": "mtougeron", - "author_url": "https://github.com/mtougeron", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101203", - "pr_number": 101203, - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "security" - ], - "duplicate": true - }, - "101206": { - "commit": "38ff5f6884d1995079429101ee8f6cc60cf38d4b", - "text": "Kubernetes is now built with Golang 1.16.3", - "markdown": "Kubernetes is now built with Golang 1.16.3 ([#101206](https://github.com/kubernetes/kubernetes/pull/101206), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing]", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101206", - "pr_number": 101206, - "areas": [ - "dependency", - "provider/gcp", - "release-eng", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "instrumentation", - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "101208": { - "commit": "f83115f566b1d54c930a89ee7ec5718b9e4899c5", - "text": "Add a namespace label for all `apiserver_admission_* metrics`.\nExpand the histogram range to 0-10s for all `apiserver_admission_*_duration_seconds` metrics.", - "markdown": "Add a namespace label for all `apiserver_admission_* metrics`.\n Expand the histogram range to 0-10s for all `apiserver_admission_*_duration_seconds` metrics. ([#101208](https://github.com/kubernetes/kubernetes/pull/101208), [@voutcn](https://github.com/voutcn))", - "author": "voutcn", - "author_url": "https://github.com/voutcn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101208", - "pr_number": 101208, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "101235": { - "commit": "7ed02d61d1e8907f2a67bb74058c558ebbc1f952", - "text": "Fix: Azure file inline volume namespace issue in CSI migration translation", - "markdown": "Fix: Azure file inline volume namespace issue in CSI migration translation ([#101235](https://github.com/kubernetes/kubernetes/pull/101235), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101235", - "pr_number": 101235, - "areas": [ - "kubelet", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "cloud-provider", - "node", - "storage" - ], - "duplicate": true - }, - "101252": { - "commit": "4f36038c0bc575cd33bc53017ed1e20184efae73", - "text": "The `kubelet` now reports distinguishes log messages about certificate rotation for its client cert and server cert separately to make debugging problems with one or the other easier.", - "markdown": "The `kubelet` now reports distinguishes log messages about certificate rotation for its client cert and server cert separately to make debugging problems with one or the other easier. ([#101252](https://github.com/kubernetes/kubernetes/pull/101252), [@smarterclayton](https://github.com/smarterclayton))", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101252", - "pr_number": 101252, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "duplicate_kind": true - }, - "101256": { - "commit": "7b24c7e4a7a644bd9c4aa173d59fd5bdcddc8652", - "text": "Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. Prepare to increase the length limit to 256 bytes in 1.23 release.", - "markdown": "Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. Prepare to increase the length limit to 256 bytes in 1.23 release. ([#101256](https://github.com/kubernetes/kubernetes/pull/101256), [@Jiawei0227](https://github.com/Jiawei0227))", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101256", - "pr_number": 101256, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "101271": { - "commit": "f631c0e520774494cb37dca709943adaf63b2951", - "text": "Logging for GCE Windows clusters will be more accurate and complete when using Fluent bit.", - "markdown": "Logging for GCE Windows clusters will be more accurate and complete when using Fluent bit. ([#101271](https://github.com/kubernetes/kubernetes/pull/101271), [@jeremyje](https://github.com/jeremyje))", - "author": "jeremyje", - "author_url": "https://github.com/jeremyje", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101271", - "pr_number": 101271, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "windows" - ], - "duplicate": true - }, - "101272": { - "commit": "29a8105cece821e095ef718922115291fc33a800", - "text": "The `CSIMigrationVSphereComplete` feature flag is removed. `InTreePluginvSphereUnregister` will be the way moving forward.", - "markdown": "The `CSIMigrationVSphereComplete` feature flag is removed. `InTreePluginvSphereUnregister` will be the way moving forward. ([#101272](https://github.com/kubernetes/kubernetes/pull/101272), [@Jiawei0227](https://github.com/Jiawei0227))", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101272", - "pr_number": 101272, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "node", - "storage" - ], - "duplicate": true, - "action_required": true - }, - "101292": { - "commit": "548fb4364353d6ec493aed5b13352addbc4f4319", - "text": "Add three metrics to the job controller to monitor if a job works in healthy condition.\n`IndexedJob` has been promoted to Beta.", - "markdown": "Add three metrics to the job controller to monitor if a job works in healthy condition.\n `IndexedJob` has been promoted to Beta. ([#101292](https://github.com/kubernetes/kubernetes/pull/101292), [@AliceZhang2016](https://github.com/AliceZhang2016))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2214-indexed-job", - "type": "KEP" - } - ], - "author": "AliceZhang2016", - "author_url": "https://github.com/AliceZhang2016", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101292", - "pr_number": 101292, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "101294": { - "commit": "3d6e0694bbb2eec588982a16d225a00d248a387c", - "text": "The `SetHostnameAsFQDN` graduates to GA and thus will be unconditionally disabled.", - "markdown": "The `SetHostnameAsFQDN` graduates to GA and thus will be unconditionally disabled. ([#101294](https://github.com/kubernetes/kubernetes/pull/101294), [@javidiaz](https://github.com/javidiaz))", - "author": "javidiaz", - "author_url": "https://github.com/javidiaz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101294", - "pr_number": 101294, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "101296": { - "commit": "687f0aa35b3d703cd30ecf053a8271b23cabc732", - "text": "The API documentation for the DaemonSet's `spec.updateStrategy.rollingUpdate.maxUnavailable` field was corrected to state that the value is rounded up.", - "markdown": "The API documentation for the DaemonSet's `spec.updateStrategy.rollingUpdate.maxUnavailable` field was corrected to state that the value is rounded up. ([#101296](https://github.com/kubernetes/kubernetes/pull/101296), [@Miciah](https://github.com/Miciah))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/1591-daemonset-surge", - "type": "KEP" - } - ], - "author": "Miciah", - "author_url": "https://github.com/Miciah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101296", - "pr_number": 101296, - "areas": [ - "kubectl" - ], - "kinds": [ - "api-change", - "documentation" - ], - "sigs": [ - "apps", - "cli" - ], - "duplicate": true, - "duplicate_kind": true - }, - "101316": { - "commit": "a5be86fee7296f3ce4d7fe572c22fcff9f51ff19", - "text": "Implement `minReadySeconds` for the `StatefulSets`.", - "markdown": "Implement `minReadySeconds` for the `StatefulSets`. ([#101316](https://github.com/kubernetes/kubernetes/pull/101316), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2607", - "type": "KEP" - }, - { - "description": "[Other doc]", - "url": "https://github.com/kubernetes/website/pull/27683", - "type": "external" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101316", - "pr_number": 101316, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "101342": { - "commit": "75d571a10be4db7a4b932b4131e8f1095f6c46bf", - "text": "The `NamespaceDefaultLabelName` is promoted to GA in this release. All Namespace API objects have a `kubernetes.io/metadata.name` label matching their `metadata.name` field to allow selecting any `namespace` by its name using a label selector.", - "markdown": "The `NamespaceDefaultLabelName` is promoted to GA in this release. All Namespace API objects have a `kubernetes.io/metadata.name` label matching their `metadata.name` field to allow selecting any `namespace` by its name using a label selector. ([#101342](https://github.com/kubernetes/kubernetes/pull/101342), [@rosenhouse](https://github.com/rosenhouse))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2162", - "type": "KEP" - } - ], - "author": "rosenhouse", - "author_url": "https://github.com/rosenhouse", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101342", - "pr_number": 101342, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true - }, - "101357": { - "commit": "253685779f15d2bf1ebf8354474761752edd8d6e", - "text": "Update Azure Go SDK version to v53.1.0", - "markdown": "Update Azure Go SDK version to v53.1.0 ([#101357](https://github.com/kubernetes/kubernetes/pull/101357), [@feiskyer](https://github.com/feiskyer)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation]", - "author": "feiskyer", - "author_url": "https://github.com/feiskyer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101357", - "pr_number": 101357, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl", - "provider/azure" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation" - ], - "duplicate": true - }, - "101377": { - "commit": "3dfbcbc878a72a9544af6841315e7dceef9e99fc", - "text": "Fix panic when `kubectl create ingress` has annotation flag and an empty value set.", - "markdown": "Fix panic when `kubectl create ingress` has annotation flag and an empty value set. ([#101377](https://github.com/kubernetes/kubernetes/pull/101377), [@rikatz](https://github.com/rikatz))", - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101377", - "pr_number": 101377, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "101394": { - "commit": "943e0c2f91792d0007b5d390baef09e35b07cf10", - "text": "`Scheduler` now registers event handlers dynamically.", - "markdown": "`Scheduler` now registers event handlers dynamically. ([#101394](https://github.com/kubernetes/kubernetes/pull/101394), [@Huang-Wei](https://github.com/Huang-Wei))", - "documentation": [ - { - "description": "[Design Doc]", - "url": "https://docs.google.com/document/d/1RRlWKiFD77NpJPBOfEpUDsqNxi43wbwExlLO-gh3kfY/edit#", - "type": "external" - } - ], - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101394", - "pr_number": 101394, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true - }, - "101398": { - "commit": "fbaf5ee71bfa0c3ba40b27db9dadccd9a006d4bf", - "text": "Fix: set \"host is down\" as corrupted mount. When SMB server is down, there is no way to terminate pod which is using SMB mount, would get an error.", - "markdown": "Fix: set \"host is down\" as corrupted mount. When SMB server is down, there is no way to terminate pod which is using SMB mount, would get an error. ([#101398](https://github.com/kubernetes/kubernetes/pull/101398), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101398", - "pr_number": 101398, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "duplicate": true - }, - "101411": { - "commit": "14066e9798897ffc92ca7c33892bccd9c9af1dd7", - "text": "Official binaries now include the golang generated build ID `buildid` instead of an empty string.", - "markdown": "Official binaries now include the golang generated build ID `buildid` instead of an empty string. ([#101411](https://github.com/kubernetes/kubernetes/pull/101411), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101411", - "pr_number": 101411, - "kinds": [ - "cleanup" - ], - "sigs": [ - "release" - ] - }, - "101412": { - "commit": "0277cff2682d5a0d3c6fa2109f7f82e8db3f2ed8", - "text": "feat: change parittion style to GPT on Windows", - "markdown": "Feat: change parittion style to GPT on Windows ([#101412](https://github.com/kubernetes/kubernetes/pull/101412), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage and Windows]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101412", - "pr_number": 101412, - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "windows" - ], - "feature": true, - "duplicate": true - }, - "101420": { - "commit": "576f0eb0b4604855678df980cbeb3daeebc2b49b", - "text": "Improve logging of `APIService` availability changes in kube-apiserver.", - "markdown": "Improve logging of `APIService` availability changes in kube-apiserver. ([#101420](https://github.com/kubernetes/kubernetes/pull/101420), [@sttts](https://github.com/sttts))", - "author": "sttts", - "author_url": "https://github.com/sttts", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101420", - "pr_number": 101420, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "101436": { - "commit": "60cdf3a8e0e8a52dc7905547a62aae494e173327", - "text": "Output for `kubectl describe podsecuritypolicy` is now kind specific and cleaner", - "markdown": "Output for `kubectl describe podsecuritypolicy` is now kind specific and cleaner ([#101436](https://github.com/kubernetes/kubernetes/pull/101436), [@KnVerey](https://github.com/KnVerey))", - "author": "KnVerey", - "author_url": "https://github.com/KnVerey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101436", - "pr_number": 101436, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true - }, - "101441": { - "commit": "7f8539ff2075c72f9866cd35da47d1e7b58b8b84", - "text": "Removal of the CSI `NodePublish` path by the kubelet is deprecated. This must be done by the CSI plugin according to the CSI spec.", - "markdown": "Removal of the CSI `NodePublish` path by the kubelet is deprecated. This must be done by the CSI plugin according to the CSI spec. ([#101441](https://github.com/kubernetes/kubernetes/pull/101441), [@dobsonj](https://github.com/dobsonj))", - "documentation": [ - { - "description": "[CSI spec]", - "url": "https://github.com/container-storage-interface/spec/blob/da58351ba3d7baf850877be3425e76ff30645d33/spec.md#nodeunpublishvolume", - "type": "external" - } - ], - "author": "dobsonj", - "author_url": "https://github.com/dobsonj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101441", - "pr_number": 101441, - "kinds": [ - "bug", - "deprecation" - ], - "sigs": [ - "storage" - ], - "duplicate_kind": true - }, - "101449": { - "commit": "e78e692f33226a142551e6b885853daf7e2df9bd", - "text": "kubeadm: allow passing the flag `--log-file` if `--config` is passed. If you wish to log to a file you must also pass `--logtostderr=false` or `--alsologtostderr=true`. Alternatively you can pipe to a file using \"kubeadm ... | tee ...\".", - "markdown": "Kubeadm: allow passing the flag `--log-file` if `--config` is passed. If you wish to log to a file you must also pass `--logtostderr=false` or `--alsologtostderr=true`. Alternatively you can pipe to a file using \"kubeadm ... | tee ...\". ([#101449](https://github.com/kubernetes/kubernetes/pull/101449), [@CaoDonghui123](https://github.com/CaoDonghui123))", - "author": "CaoDonghui123", - "author_url": "https://github.com/CaoDonghui123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101449", - "pr_number": 101449, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "101473": { - "commit": "2f753ec4c826895e4ccd3d6bdda2b1ab777ceeb8", - "text": "[ 22.414721] configure.sh[740]: /home/kubernetes/bin/configure.sh: line 95: python3: command not found", - "markdown": "[ 22.414721] configure.sh[740]: /home/kubernetes/bin/configure.sh: line 95: python3: command not found ([#101473](https://github.com/kubernetes/kubernetes/pull/101473), [@pacoxu](https://github.com/pacoxu)) [SIG Cloud Provider and Testing]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101473", - "pr_number": 101473, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "failing-test" - ], - "sigs": [ - "cloud-provider", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "101477": { - "commit": "eec38190a0cea9154ecd8086d426e3beada9fa10", - "text": "Metrics Server updated to use `0.4.4` image that doesn't depend on deprecated `authorization.k8s.io/v1beta1` subjectaccessreviews API version.", - "markdown": "Metrics Server updated to use `0.4.4` image that doesn't depend on deprecated `authorization.k8s.io/v1beta1` subjectaccessreviews API version. ([#101477](https://github.com/kubernetes/kubernetes/pull/101477), [@x13n](https://github.com/x13n))", - "author": "x13n", - "author_url": "https://github.com/x13n", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101477", - "pr_number": 101477, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "instrumentation" - ], - "duplicate": true - }, - "101496": { - "commit": "49a60be8ab5578097dc2dd2b851213d9f8ca1105", - "text": "The `podAffinity`, `NamespaceSelector` and the associated `CrossNamespaceAffinity` quota scope features graduate to Beta and they are now enabled by default.", - "markdown": "The `podAffinity`, `NamespaceSelector` and the associated `CrossNamespaceAffinity` quota scope features graduate to Beta and they are now enabled by default. ([#101496](https://github.com/kubernetes/kubernetes/pull/101496), [@ahg-g](https://github.com/ahg-g))", - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101496", - "pr_number": 101496, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "101510": { - "commit": "f803daaca74ecd2a9b75d8945a6b5403aa5e47a9", - "text": "Migrate some log messages to structured logging in `pkg/volume/plugins.go`.", - "markdown": "Migrate some log messages to structured logging in `pkg/volume/plugins.go`. ([#101510](https://github.com/kubernetes/kubernetes/pull/101510), [@huchengze](https://github.com/huchengze))", - "author": "huchengze", - "author_url": "https://github.com/huchengze", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101510", - "pr_number": 101510, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "101523": { - "commit": "6c658a86f9e75943024b0b4f792a37938a96a31f", - "text": "Omit comparison with boolean constant", - "markdown": "Omit comparison with boolean constant ([#101523](https://github.com/kubernetes/kubernetes/pull/101523), [@chuntaochen](https://github.com/chuntaochen)) [SIG CLI and Cloud Provider]", - "author": "chuntaochen", - "author_url": "https://github.com/chuntaochen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101523", - "pr_number": 101523, - "areas": [ - "cloudprovider", - "kubectl" - ], - "kinds": [ - "api-change", - "cleanup" - ], - "sigs": [ - "cli", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "101531": { - "commit": "01955b99d7d630b7139cfc33a2e8dd2e80466f90", - "text": "The `VolumeSnapshotDataSource` feature gate that is GA since v1.20 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument.", - "markdown": "The `VolumeSnapshotDataSource` feature gate that is GA since v1.20 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#101531](https://github.com/kubernetes/kubernetes/pull/101531), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Storage]", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101531", - "pr_number": 101531, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "101534": { - "commit": "160cdbbdcaad6be240c5669e621c1353ad445af4", - "text": "Newly provisioned PVs by Azure disk will no longer have the beta `FailureDomain` label. Azure disk volume plugin will start to have GA topology label instead.", - "markdown": "Newly provisioned PVs by Azure disk will no longer have the beta `FailureDomain` label. Azure disk volume plugin will start to have GA topology label instead. ([#101534](https://github.com/kubernetes/kubernetes/pull/101534), [@kassarl](https://github.com/kassarl))", - "author": "kassarl", - "author_url": "https://github.com/kassarl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101534", - "pr_number": 101534, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "101537": { - "commit": "347730b6b49849a3b8501a2b09caf4aec738c9e4", - "text": "kubeadm: Remove the deprecated hyperkube image support in `v1beta3`. This implies removal of `ClusterConfiguration.UseHyperKubeImage.`", - "markdown": "Kubeadm: Remove the deprecated hyperkube image support in `v1beta3`. This implies removal of `ClusterConfiguration.UseHyperKubeImage.` ([#101537](https://github.com/kubernetes/kubernetes/pull/101537), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101537", - "pr_number": 101537, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "101539": { - "commit": "e8306108541e0fe377546b963395a2befcb56c63", - "text": "Node Problem Detector is now available for GCE Windows nodes.", - "markdown": "Node Problem Detector is now available for GCE Windows nodes. ([#101539](https://github.com/kubernetes/kubernetes/pull/101539), [@jeremyje](https://github.com/jeremyje)) [SIG Cloud Provider, Node and Windows]", - "documentation": [ - { - "description": "[Design]", - "url": "https://docs.google.com/document/d/1eiK6KAp_TFR0PgBMu2WCf49fMZcg-HHnBHMc9fALquU/edit", - "type": "external" - }, - { - "description": "[Usage]", - "url": "https://github.com/kubernetes/node-problem-detector#windows", - "type": "external" - }, - { - "description": "[Issue]", - "url": "https://github.com/kubernetes/node-problem-detector/issues/461", - "type": "external" - } - ], - "author": "jeremyje", - "author_url": "https://github.com/jeremyje", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101539", - "pr_number": 101539, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "node", - "windows" - ], - "feature": true, - "duplicate": true - }, - "101542": { - "commit": "ca38d18cbc8b5c8338f4969fda46149a80981049", - "text": "Scheduler's CycleState now embeds internal read/write locking inside its `Read()` and `Write()` functions. Meanwhile, `Lock()` and `Unlock()` function are removed. Scheduler plugin developers are now required to remove `CycleState#Lock()` and `CycleState#Unlock()`. Just simply use `Read()` and `Write()` as they're natively thread-safe now.", - "markdown": "Scheduler's CycleState now embeds internal read/write locking inside its `Read()` and `Write()` functions. Meanwhile, `Lock()` and `Unlock()` function are removed. Scheduler plugin developers are now required to remove `CycleState#Lock()` and `CycleState#Unlock()`. Just simply use `Read()` and `Write()` as they're natively thread-safe now. ([#101542](https://github.com/kubernetes/kubernetes/pull/101542), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101542", - "pr_number": 101542, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "storage" - ], - "duplicate": true, - "action_required": true - }, - "101547": { - "commit": "3f43b1ed840eb2011e6f24a68d4c5cf294b253ae", - "text": "kubeadm: Remove the field `ClusterConfiguration.DNS.Type` in v1beta3 since CoreDNS is the only supported DNS type.", - "markdown": "Kubeadm: Remove the field `ClusterConfiguration.DNS.Type` in v1beta3 since CoreDNS is the only supported DNS type. ([#101547](https://github.com/kubernetes/kubernetes/pull/101547), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101547", - "pr_number": 101547, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "101560": { - "commit": "aab19d42991a0f141b8e94da21e335a65ede3337", - "text": "Fixes a panic in `kube-scheduler` when accessing not existing pods while using `DefaultPreemption` plugin.", - "markdown": "Fixes a panic in `kube-scheduler` when accessing not existing pods while using `DefaultPreemption` plugin. ([#101560](https://github.com/kubernetes/kubernetes/pull/101560), [@yuanchen8911](https://github.com/yuanchen8911))", - "author": "yuanchen8911", - "author_url": "https://github.com/yuanchen8911", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101560", - "pr_number": 101560, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "101578": { - "commit": "545d595674c681e48209c6e1efa8d1371eea5780", - "text": "The deprecated `CRIContainerLogRotation` feature-gate has been removed, since the `CRIContainerLogRotatio`n feature graduated to GA in 1.21 and was unconditionally enabled.", - "markdown": "The deprecated `CRIContainerLogRotation` feature-gate has been removed, since the `CRIContainerLogRotatio`n feature graduated to GA in 1.21 and was unconditionally enabled. ([#101578](https://github.com/kubernetes/kubernetes/pull/101578), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2411-cri-container-log-rotation", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101578", - "pr_number": 101578, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "101579": { - "commit": "ef9d6f8c934ccb89d763e2ff3d459205acbbcda0", - "text": "The deprecated `RootCAConfigMap` feature-gate has been removed, since the `RootCAConfigMap` feature graduated to GA in 1.21 and is unconditionally enabled.", - "markdown": "The deprecated `RootCAConfigMap` feature-gate has been removed, since the `RootCAConfigMap` feature graduated to GA in 1.21 and is unconditionally enabled. ([#101579](https://github.com/kubernetes/kubernetes/pull/101579), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101579", - "pr_number": 101579, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth" - ] - }, - "101581": { - "commit": "de04c067ad6822532f64b75491ce773de7ff7d23", - "text": "The deprecated `runAsGroup` feature-gate has been removed, since the `runAsGroup` feature graduated to GA in 1.21.", - "markdown": "The deprecated `runAsGroup` feature-gate has been removed, since the `runAsGroup` feature graduated to GA in 1.21. ([#101581](https://github.com/kubernetes/kubernetes/pull/101581), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/213-run-as-group", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101581", - "pr_number": 101581, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "node" - ], - "duplicate": true - }, - "101587": { - "commit": "f545438bd347d2ac853b03983576bf0a6f1cc98b", - "text": "Some of the in-tree storage drivers indicate support for the `MetricsProvider` interface, but fail to configure this for BlockMode volumes. With a recent change, `Kubelet` will call `GetMetrics()` for BlockMode volumes, and the in-tree drivers that miss the support cause a Go panic. Now the in-tree storage drivers that support BlockMode volumes, will return the Capacity of the volume in the `GetMetrics()` call.", - "markdown": "Some of the in-tree storage drivers indicate support for the `MetricsProvider` interface, but fail to configure this for BlockMode volumes. With a recent change, `Kubelet` will call `GetMetrics()` for BlockMode volumes, and the in-tree drivers that miss the support cause a Go panic. Now the in-tree storage drivers that support BlockMode volumes, will return the Capacity of the volume in the `GetMetrics()` call. ([#101587](https://github.com/kubernetes/kubernetes/pull/101587), [@nixpanic](https://github.com/nixpanic))", - "author": "nixpanic", - "author_url": "https://github.com/nixpanic", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101587", - "pr_number": 101587, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "instrumentation", - "node", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "101589": { - "commit": "f039f94a6fef5302db5593ef516d793eeb380755", - "text": "Resolves an issue with the \"ServiceAccountIssuerDiscovery should support OIDC discovery\" conformance test failing on clusters which are configured with issuers outside the cluster", - "markdown": "Resolves an issue with the \"ServiceAccountIssuerDiscovery should support OIDC discovery\" conformance test failing on clusters which are configured with issuers outside the cluster ([#101589](https://github.com/kubernetes/kubernetes/pull/101589), [@mtaufen](https://github.com/mtaufen)) [SIG Auth and Testing]", - "author": "mtaufen", - "author_url": "https://github.com/mtaufen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101589", - "pr_number": 101589, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "auth", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "101592": { - "commit": "b18aea1499b5c109cae56a32006ae07097937b19", - "text": "Register/Deregister Targets in chunks for AWS TargetGroup", - "markdown": "Register/Deregister Targets in chunks for AWS TargetGroup ([#101592](https://github.com/kubernetes/kubernetes/pull/101592), [@M00nF1sh](https://github.com/M00nF1sh)) [SIG Cloud Provider]", - "author": "M00nF1sh", - "author_url": "https://github.com/M00nF1sh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101592", - "pr_number": 101592, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "101600": { - "commit": "e52b7be7d719673a1a5ae28ad3bb0d6db58d35ec", - "text": "kubeadm: the flag `--cri-socket` is no longer allowed in a mixture with the flag `--config`. Please use the kubeadm configuration for setting the CRI socket for a node using `{Init|Join}Configuration.nodeRegistration.criSocket`.", - "markdown": "Kubeadm: the flag `--cri-socket` is no longer allowed in a mixture with the flag `--config`. Please use the kubeadm configuration for setting the CRI socket for a node using `{Init|Join}Configuration.nodeRegistration.criSocket`. ([#101600](https://github.com/kubernetes/kubernetes/pull/101600), [@KofClubs](https://github.com/KofClubs))", - "author": "KofClubs", - "author_url": "https://github.com/KofClubs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101600", - "pr_number": 101600, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "action_required": true - }, - "101647": { - "commit": "c8abbc0edb3d22ebbcdfd24709b0e94a0ac6217d", - "text": "Default `StreamingProxyRedirects` to disabled. If there is a \u003e= 2 version skew between master and nodes, and the old nodes were enabling `--redirect-container-streaming`, this will break them. In this case, the `StreamingProxyRedirects` can still be manually enabled.", - "markdown": "Default `StreamingProxyRedirects` to disabled. If there is a \u003e= 2 version skew between master and nodes, and the old nodes were enabling `--redirect-container-streaming`, this will break them. In this case, the `StreamingProxyRedirects` can still be manually enabled. ([#101647](https://github.com/kubernetes/kubernetes/pull/101647), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/1558-streaming-proxy-redirects/README.md", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101647", - "pr_number": 101647, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "node" - ], - "duplicate": true, - "action_required": true - }, - "101652": { - "commit": "f94e8ba908e42edab4b16970a0397e6ae2c3ad31", - "text": "Added jitter factor to lease controller that better smears load on kube-apiserver over time.", - "markdown": "Added jitter factor to lease controller that better smears load on kube-apiserver over time. ([#101652](https://github.com/kubernetes/kubernetes/pull/101652), [@marseel](https://github.com/marseel)) [SIG API Machinery and Scalability]", - "author": "marseel", - "author_url": "https://github.com/marseel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101652", - "pr_number": 101652, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "scalability" - ], - "duplicate": true - }, - "101669": { - "commit": "8634bc61c635717dec93128f8908ffd20774e66f", - "text": "Fix `kubectl set env` or `resources` not working for initcontainers.", - "markdown": "Fix `kubectl set env` or `resources` not working for initcontainers. ([#101669](https://github.com/kubernetes/kubernetes/pull/101669), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101669", - "pr_number": 101669, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "101685": { - "commit": "85674ae53d3261d09c5a0b093d801b137db010b2", - "text": "Intree volume plugin scaleIO support has been completely removed from Kubernetes.", - "markdown": "Intree volume plugin scaleIO support has been completely removed from Kubernetes. ([#101685](https://github.com/kubernetes/kubernetes/pull/101685), [@Jiawei0227](https://github.com/Jiawei0227))", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101685", - "pr_number": 101685, - "areas": [ - "dependency", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "node", - "storage" - ], - "duplicate": true, - "action_required": true - }, - "101688": { - "commit": "c115435adc3ea5f367b4844aef1454a4019c9e82", - "text": "Warnings for the use of deprecated and known-bad values in pod specs are now sent.", - "markdown": "Warnings for the use of deprecated and known-bad values in pod specs are now sent. ([#101688](https://github.com/kubernetes/kubernetes/pull/101688), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101688", - "pr_number": 101688, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true - }, - "101709": { - "commit": "413ac5db56c0b9171155566d3d034370b89ff2c7", - "text": "The conformance tests:\n- Services should serve multiport endpoints from pods\n- Services should serve a basic endpoint from pods\nwere only validating the API objects, not performing any validation on the actual Services implementation.\nThose tests now validate that the Services under test are able to forward traffic to the endpoints.", - "markdown": "The conformance tests:\n - Services should serve multiport endpoints from pods\n - Services should serve a basic endpoint from pods\n were only validating the API objects, not performing any validation on the actual Services implementation.\n Those tests now validate that the Services under test are able to forward traffic to the endpoints. ([#101709](https://github.com/kubernetes/kubernetes/pull/101709), [@aojea](https://github.com/aojea)) [SIG Network and Testing]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101709", - "pr_number": 101709, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true - }, - "101711": { - "commit": "21f41b8e82b248c1a99cfc2e9af2c0464916ca78", - "text": "The `IngressClassNamespacedParams` feature gate has graduated to beta and is enabled by default. This means IngressClass resource will now have two new fields - `spec.paramters.namespace` and `spec.parameters.scope`.", - "markdown": "The `IngressClassNamespacedParams` feature gate has graduated to beta and is enabled by default. This means IngressClass resource will now have two new fields - `spec.paramters.namespace` and `spec.parameters.scope`. ([#101711](https://github.com/kubernetes/kubernetes/pull/101711), [@hbagdi](https://github.com/hbagdi))", - "author": "hbagdi", - "author_url": "https://github.com/hbagdi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101711", - "pr_number": 101711, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "101712": { - "commit": "3e588be76368811b5e6fe9a5f815cdc798c4f054", - "text": "When `DisableAcceleratorUsageMetrics` is set, do not collect accelerator metrics using cAdvisor.", - "markdown": "When `DisableAcceleratorUsageMetrics` is set, do not collect accelerator metrics using cAdvisor. ([#101712](https://github.com/kubernetes/kubernetes/pull/101712), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Instrumentation and Node]", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101712", - "pr_number": 101712, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "instrumentation", - "node" - ], - "duplicate": true, - "duplicate_kind": true - }, - "101737": { - "commit": "a5cf298a95b4a60789a6ba1caab931bdc980aa2d", - "text": "Fixed false-positive uncertain volume attachments, which led to unexpected detachment of CSI migrated volumes", - "markdown": "Fixed false-positive uncertain volume attachments, which led to unexpected detachment of CSI migrated volumes ([#101737](https://github.com/kubernetes/kubernetes/pull/101737), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps and Storage]", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101737", - "pr_number": 101737, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "storage" - ], - "duplicate": true - }, - "101739": { - "commit": "e6f6f4b40c4ec3a9019ab5181d6020ecc1e13742", - "text": "fix: avoid nil-pointer panic when checking the frontend IP configuration", - "markdown": "Fix: avoid nil-pointer panic when checking the frontend IP configuration ([#101739](https://github.com/kubernetes/kubernetes/pull/101739), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101739", - "pr_number": 101739, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "101742": { - "commit": "d8f9e4587ac1265efd723bce74ae6a39576f2d58", - "text": "Enable `MaxSurge` for `DaemonSet` by default.", - "markdown": "Enable `MaxSurge` for `DaemonSet` by default. ([#101742](https://github.com/kubernetes/kubernetes/pull/101742), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101742", - "pr_number": 101742, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "101747": { - "commit": "a98c559ca4b6946bdf15fcbad7d5c450283c2f9f", - "text": "GCE Windows will no longer install Docker on containerd nodes.", - "markdown": "GCE Windows will no longer install Docker on containerd nodes. ([#101747](https://github.com/kubernetes/kubernetes/pull/101747), [@jeremyje](https://github.com/jeremyje)) [SIG Cloud Provider and Windows]", - "author": "jeremyje", - "author_url": "https://github.com/jeremyje", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101747", - "pr_number": 101747, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "windows" - ], - "duplicate": true - }, - "101752": { - "commit": "937a3db3a29df160ce8c0f73ab129abbcee1ddcc", - "text": "Applying fix for not tagging static public IP.", - "markdown": "Applying fix for not tagging static public IP. ([#101752](https://github.com/kubernetes/kubernetes/pull/101752), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101752", - "pr_number": 101752, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "101767": { - "commit": "15b4498e34d7b186f2361e0df45390befc6f96c8", - "text": "The `LogarithmicScaleDown` feature graduates to Beta and enabled by default.", - "markdown": "The `LogarithmicScaleDown` feature graduates to Beta and enabled by default. ([#101767](https://github.com/kubernetes/kubernetes/pull/101767), [@damemi](https://github.com/damemi))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2185", - "type": "KEP" - } - ], - "author": "damemi", - "author_url": "https://github.com/damemi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101767", - "pr_number": 101767, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "101773": { - "commit": "c345a41c496999b75b6d411b117eea6016bec34e", - "text": "The `storageos`, `quobyte` and `flocker` storage volume plugins are deprecated and will be removed in a later release.", - "markdown": "The `storageos`, `quobyte` and `flocker` storage volume plugins are deprecated and will be removed in a later release. ([#101773](https://github.com/kubernetes/kubernetes/pull/101773), [@Jiawei0227](https://github.com/Jiawei0227))", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101773", - "pr_number": 101773, - "kinds": [ - "deprecation", - "documentation" - ], - "sigs": [ - "storage" - ], - "duplicate_kind": true - }, - "101780": { - "commit": "78df56def61cd604d6307fca2536438e9b49f822", - "text": "Fixed a bug that `kubectl create configmap` always returns zero exit code when failed.", - "markdown": "Fixed a bug that `kubectl create configmap` always returns zero exit code when failed. ([#101780](https://github.com/kubernetes/kubernetes/pull/101780), [@nak3](https://github.com/nak3)) [SIG CLI]", - "author": "nak3", - "author_url": "https://github.com/nak3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101780", - "pr_number": 101780, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "101809": { - "commit": "62bc76b0de4819bc37e037de20c385c4fbcd575a", - "text": "Kubernetes is now built with Golang 1.16.4", - "markdown": "Kubernetes is now built with Golang 1.16.4 ([#101809](https://github.com/kubernetes/kubernetes/pull/101809), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing]", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101809", - "pr_number": 101809, - "areas": [ - "dependency", - "provider/gcp", - "release-eng", - "security", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "instrumentation", - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "101817": { - "commit": "a8f68f9aba47261c22ef178b58b615e00b6726d0", - "text": "You can use this Builder function to create events Field Selector", - "markdown": "You can use this Builder function to create events Field Selector ([#101817](https://github.com/kubernetes/kubernetes/pull/101817), [@cndoit18](https://github.com/cndoit18)) [SIG API Machinery and Scalability]", - "author": "cndoit18", - "author_url": "https://github.com/cndoit18", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101817", - "pr_number": 101817, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "scalability" - ], - "feature": true, - "duplicate": true - }, - "101822": { - "commit": "e0f66be1aa206131081d393aa80f89d986aef75a", - "text": "A new score extension for NodeResourcesFit plugin that merges the functionality of `NodeResourcesLeastAllocated`, `NodeResourcesMostAllocated`, `RequestedToCapacityRatio` plugins, which are marked as deprecated as of v1beta2. In v1beta1, the three plugins can still be used in v1beta1 but not at the same time with the score extension of `NodeResourcesFit`.", - "markdown": "A new score extension for NodeResourcesFit plugin that merges the functionality of `NodeResourcesLeastAllocated`, `NodeResourcesMostAllocated`, `RequestedToCapacityRatio` plugins, which are marked as deprecated as of v1beta2. In v1beta1, the three plugins can still be used in v1beta1 but not at the same time with the score extension of `NodeResourcesFit`. ([#101822](https://github.com/kubernetes/kubernetes/pull/101822), [@yuzhiquan](https://github.com/yuzhiquan))", - "author": "yuzhiquan", - "author_url": "https://github.com/yuzhiquan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101822", - "pr_number": 101822, - "areas": [ - "apiserver", - "cloudprovider", - "dependency", - "e2e-test-framework", - "kubelet", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cloud-provider", - "instrumentation", - "node", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "101857": { - "commit": "5edccec32bb0b3bb2a02a30063a2b2684c5bf8f6", - "text": "The `kube-proxy` log now shows the \"Skipping topology aware endpoint filtering since no hints were provided for zone\" warning under the right conditions.", - "markdown": "The `kube-proxy` log now shows the \"Skipping topology aware endpoint filtering since no hints were provided for zone\" warning under the right conditions. ([#101857](https://github.com/kubernetes/kubernetes/pull/101857), [@dervoeti](https://github.com/dervoeti))", - "author": "dervoeti", - "author_url": "https://github.com/dervoeti", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101857", - "pr_number": 101857, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "101862": { - "commit": "81e159f0b0cf3cca18cd7c8e47fc16dd1ffe96c8", - "text": "Retry `FibreChannel` devices cleanup after error to ensure `FibreChannel` device is detached before it can be used on another node.", - "markdown": "Retry `FibreChannel` devices cleanup after error to ensure `FibreChannel` device is detached before it can be used on another node. ([#101862](https://github.com/kubernetes/kubernetes/pull/101862), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101862", - "pr_number": 101862, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "101869": { - "commit": "8c0d06aad87047235beafd14546ff8418499b17e", - "text": "Metrics server nanny has now poll period set to 30s (previously 5 minutes) to allow faster scaling of metrics server.", - "markdown": "Metrics server nanny has now poll period set to 30s (previously 5 minutes) to allow faster scaling of metrics server. ([#101869](https://github.com/kubernetes/kubernetes/pull/101869), [@olagacek](https://github.com/olagacek)) [SIG Cloud Provider and Instrumentation]", - "author": "olagacek", - "author_url": "https://github.com/olagacek", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101869", - "pr_number": 101869, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "101915": { - "commit": "04b7977ef63247aa8e6b85fc5d12d3724ab8975c", - "text": "For `kubeadm`: remove the ClusterStatus API from v1beta3 and its management in the kube-system/kubeadm-config ConfigMap. This method of keeping track of what API endpoints exists in the cluster was replaced (in a prior release) by a method to annotate the etcd Pods that `kubeadm` creates in \"stacked etcd\" clusters. The following CLI sub-phases are deprecated and are now a NO-OP: for `kubeadm join`: \"control-plane-join/update-status\", for `kubeadm reset`: \"update-cluster-status\". Unless you are using these phases explicitly, you should not be affected.", - "markdown": "For `kubeadm`: remove the ClusterStatus API from v1beta3 and its management in the kube-system/kubeadm-config ConfigMap. This method of keeping track of what API endpoints exists in the cluster was replaced (in a prior release) by a method to annotate the etcd Pods that `kubeadm` creates in \"stacked etcd\" clusters. The following CLI sub-phases are deprecated and are now a NO-OP: for `kubeadm join`: \"control-plane-join/update-status\", for `kubeadm reset`: \"update-cluster-status\". Unless you are using these phases explicitly, you should not be affected. ([#101915](https://github.com/kubernetes/kubernetes/pull/101915), [@neolit123](https://github.com/neolit123))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/2506-Remove-ClusterStatus-from-kubeadm-config", - "type": "KEP" - }, - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/970-kubeadm-config", - "type": "KEP" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101915", - "pr_number": 101915, - "areas": [ - "kubeadm" - ], - "kinds": [ - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "101916": { - "commit": "1d0e5ac583f45f946691ae2878cf69f19cf792a3", - "text": "Corrected the documentation for escaping dollar signs in a container's env, command and args property.", - "markdown": "Corrected the documentation for escaping dollar signs in a container's env, command and args property. ([#101916](https://github.com/kubernetes/kubernetes/pull/101916), [@MartinKanters](https://github.com/MartinKanters)) [SIG Apps]", - "author": "MartinKanters", - "author_url": "https://github.com/MartinKanters", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101916", - "pr_number": 101916, - "kinds": [ - "api-change", - "documentation" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "101923": { - "commit": "bf2ece7adae7b68021ab210261ad213bf0ee6326", - "text": "kubeadm: add a new field `skipPhases` to `v1beta3` `InitConfiguration` and `JoinConfiguration` that can contain a list of phases to skip during \"kubeadm init\" and \"kubeadm join\". The flag \"--skip-phases\" takes precedence over this field.", - "markdown": "Kubeadm: add a new field `skipPhases` to `v1beta3` `InitConfiguration` and `JoinConfiguration` that can contain a list of phases to skip during \"kubeadm init\" and \"kubeadm join\". The flag \"--skip-phases\" takes precedence over this field. ([#101923](https://github.com/kubernetes/kubernetes/pull/101923), [@neolit123](https://github.com/neolit123))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/970-kubeadm-config", - "type": "KEP" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101923", - "pr_number": 101923, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "101938": { - "commit": "fbdc4f6acbc881eb26544d9d68ae520b7cbad3e7", - "text": "kubeadm: Remove the deprecated command `kubeadm alpha kubeconfig`. Please use `kubeadm kubeconfig` instead.", - "markdown": "Kubeadm: Remove the deprecated command `kubeadm alpha kubeconfig`. Please use `kubeadm kubeconfig` instead. ([#101938](https://github.com/kubernetes/kubernetes/pull/101938), [@knight42](https://github.com/knight42))", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101938", - "pr_number": 101938, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "101943": { - "commit": "2e93b3924ae6eb2b6a2b914fe400a006bd676308", - "text": "Added new kubelet alpha feature `SeccompDefault`. This feature enables falling back to\nthe `RuntimeDefault` (former `runtime/default`) seccomp profile if nothing else is specified\nin the pod/container `SecurityContext` or the pod annotation level. To use the feature, enable\nthe feature gate as well as set the kubelet configuration option `SeccompDefault`\n(`--seccomp-default`) to `true`.", - "markdown": "Added new kubelet alpha feature `SeccompDefault`. This feature enables falling back to\n the `RuntimeDefault` (former `runtime/default`) seccomp profile if nothing else is specified\n in the pod/container `SecurityContext` or the pod annotation level. To use the feature, enable\n the feature gate as well as set the kubelet configuration option `SeccompDefault`\n (`--seccomp-default`) to `true`. ([#101943](https://github.com/kubernetes/kubernetes/pull/101943), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/34fa3dd/keps/sig-node/2413-seccomp-by-default", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101943", - "pr_number": 101943, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true - }, - "101946": { - "commit": "ea3bcbc2050b89d11f005a2735c8808e45b8aa21", - "text": "Scheduler could be configured to consider new resources beside CPU and memory, GPU for example, for the score plugin of `NodeResourcesBalancedAllocation`.", - "markdown": "Scheduler could be configured to consider new resources beside CPU and memory, GPU for example, for the score plugin of `NodeResourcesBalancedAllocation`. ([#101946](https://github.com/kubernetes/kubernetes/pull/101946), [@chendave](https://github.com/chendave)) [SIG Scheduling]", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101946", - "pr_number": 101946, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "duplicate_kind": true - }, - "101947": { - "commit": "38f012320fa138260dca09e135ed386026a061bc", - "text": "The Memory Manager feature graduates to Beta and it is enabled by default.", - "markdown": "The Memory Manager feature graduates to Beta and it is enabled by default. ([#101947](https://github.com/kubernetes/kubernetes/pull/101947), [@cynepco3hahue](https://github.com/cynepco3hahue))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1769-memory-manager", - "type": "KEP" - } - ], - "author": "cynepco3hahue", - "author_url": "https://github.com/cynepco3hahue", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101947", - "pr_number": 101947, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "101950": { - "commit": "e6e6536c1f03a89f99efa597c6359615ede51687", - "text": "Fixes the `should receive events on concurrent watches in same order` conformance test to work properly on clusters that auto-create additional configmaps in namespaces.", - "markdown": "Fixes the `should receive events on concurrent watches in same order` conformance test to work properly on clusters that auto-create additional configmaps in namespaces. ([#101950](https://github.com/kubernetes/kubernetes/pull/101950), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101950", - "pr_number": 101950, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "101966": { - "commit": "9f0f14952c51e7a5622eac05c541ba20b5821627", - "text": "kubeadm: the `CriticalAddonsOnly` toleration has been removed from `kube-proxy` DaemonSet", - "markdown": "Kubeadm: the `CriticalAddonsOnly` toleration has been removed from `kube-proxy` DaemonSet ([#101966](https://github.com/kubernetes/kubernetes/pull/101966), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101966", - "pr_number": 101966, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "101977": { - "commit": "2a106464d355d04f1c8931a883d265cf70612a30", - "text": "kubeadm: fix the bug that `kubeadm` only uses the first hash in `caCertHashes` to verify the root CA.", - "markdown": "Kubeadm: fix the bug that `kubeadm` only uses the first hash in `caCertHashes` to verify the root CA. ([#101977](https://github.com/kubernetes/kubernetes/pull/101977), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101977", - "pr_number": 101977, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "101992": { - "commit": "548f16dbbbdcff3eac822236353d613800ecb6e4", - "text": "The `BoundServiceAccountTokenVolume` graduates to GA and thus will be unconditionally enabled. The feature gate is going to be removed in 1.23.", - "markdown": "The `BoundServiceAccountTokenVolume` graduates to GA and thus will be unconditionally enabled. The feature gate is going to be removed in 1.23. ([#101992](https://github.com/kubernetes/kubernetes/pull/101992), [@zshihang](https://github.com/zshihang))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101992", - "pr_number": 101992, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "cloud-provider", - "testing" - ], - "feature": true, - "duplicate": true - }, - "102005": { - "commit": "c9fb3c8a1b3f407a5e84562843780aa3047d7d06", - "text": "Azure: Avoid setting cached Sku when updating VMSS and VMSS instances.", - "markdown": "Azure: Avoid setting cached Sku when updating VMSS and VMSS instances. ([#102005](https://github.com/kubernetes/kubernetes/pull/102005), [@feiskyer](https://github.com/feiskyer))", - "author": "feiskyer", - "author_url": "https://github.com/feiskyer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102005", - "pr_number": 102005, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "102022": { - "commit": "268cab5f444531d11a63d06872bf850c65f814fe", - "text": "Suspend Job feature graduated to beta. Added the `action` label to Job controller sync metrics `job_sync_total` and `job_sync_duration_seconds`.", - "markdown": "Suspend Job feature graduated to beta. Added the `action` label to Job controller sync metrics `job_sync_total` and `job_sync_duration_seconds`. ([#102022](https://github.com/kubernetes/kubernetes/pull/102022), [@adtac](https://github.com/adtac))", - "author": "adtac", - "author_url": "https://github.com/adtac", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102022", - "pr_number": 102022, - "areas": [ - "test" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "apps", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "102028": { - "commit": "01819dd322855915e0477dcad3b922d66bec9878", - "text": "Adds the `ReadWriteOncePod` access mode for `PersistentVolumes` and `PersistentVolumeClaims`. Restricts volume access to a single pod on a single node.", - "markdown": "Adds the `ReadWriteOncePod` access mode for `PersistentVolumes` and `PersistentVolumeClaims`. Restricts volume access to a single pod on a single node. ([#102028](https://github.com/kubernetes/kubernetes/pull/102028), [@chrishenzie](https://github.com/chrishenzie))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2485-read-write-once-pod-pv-access-mode", - "type": "KEP" - } - ], - "author": "chrishenzie", - "author_url": "https://github.com/chrishenzie", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102028", - "pr_number": 102028, - "areas": [ - "dependency", - "kubectl", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "cli", - "node", - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "102030": { - "commit": "f01c9e8683adacbfbad58e5153dfac9ebf954c4b", - "text": "The ingress `v1beta1` has been deprecated.", - "markdown": "The ingress `v1beta1` has been deprecated. ([#102030](https://github.com/kubernetes/kubernetes/pull/102030), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102030", - "pr_number": 102030, - "areas": [ - "e2e-test-framework", - "kubectl", - "test" - ], - "kinds": [ - "api-change", - "cleanup", - "deprecation", - "failing-test" - ], - "sigs": [ - "cli", - "network", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "102039": { - "commit": "14e4ed07cf81a8a273c63943c29f9f54761daebb", - "text": "`kubectl`: Enable using protocol buffers to request Metrics API.", - "markdown": "`kubectl`: Enable using protocol buffers to request Metrics API. ([#102039](https://github.com/kubernetes/kubernetes/pull/102039), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102039", - "pr_number": 102039, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "102059": { - "commit": "38783bfeb70f5d25262d195a779fbcfb72c73633", - "text": "Fixed very rare volume corruption when a pod is deleted while kubelet is offline.", - "markdown": "Fixed very rare volume corruption when a pod is deleted while kubelet is offline. ([#102059](https://github.com/kubernetes/kubernetes/pull/102059), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102059", - "pr_number": 102059, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "storage" - ], - "duplicate": true - }, - "102062": { - "commit": "f008ba0feddd6faf387ec52e447524714cbbe95a", - "text": "Update etcd version to 3.5.0-beta.3.", - "markdown": "Update etcd version to 3.5.0-beta.3. ([#102062](https://github.com/kubernetes/kubernetes/pull/102062), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102062", - "pr_number": 102062, - "areas": [ - "e2e-test-framework", - "kubeadm", - "provider/gcp", - "release-eng", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "cluster-lifecycle", - "testing" - ], - "feature": true, - "duplicate": true - }, - "102063": { - "commit": "eee6e54ecf364ee0529788eb5ad72d4ffaccf1b4", - "text": "Fixed an issue blocking azure auth to prompt to device code authentication flow when refresh token expires.", - "markdown": "Fixed an issue blocking azure auth to prompt to device code authentication flow when refresh token expires. ([#102063](https://github.com/kubernetes/kubernetes/pull/102063), [@tdihp](https://github.com/tdihp))", - "author": "tdihp", - "author_url": "https://github.com/tdihp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102063", - "pr_number": 102063, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true - }, - "102067": { - "commit": "781382a74db02368887f726e4633e58d62f1e3ab", - "text": "We no longer allow the cluster operator to delete any suggested priority \u0026 fairness bootstrap configuration object. If a cluster operator removes a suggested configuration, it will be restored by the apiserver.", - "markdown": "We no longer allow the cluster operator to delete any suggested priority \u0026 fairness bootstrap configuration object. If a cluster operator removes a suggested configuration, it will be restored by the apiserver. ([#102067](https://github.com/kubernetes/kubernetes/pull/102067), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102067", - "pr_number": 102067, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "102071": { - "commit": "f42a5dff629114df3302d16346909687298c3465", - "text": "kubeadm: remove the deprecated command `kubeadm config view`. A replacement for this command is `kubectl get cm -n kube-system kubeadm-config -o=jsonpath=\"{.data.ClusterConfiguration}\"`", - "markdown": "Kubeadm: remove the deprecated command `kubeadm config view`. A replacement for this command is `kubectl get cm -n kube-system kubeadm-config -o=jsonpath=\"{.data.ClusterConfiguration}\"` ([#102071](https://github.com/kubernetes/kubernetes/pull/102071), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102071", - "pr_number": 102071, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "102083": { - "commit": "bc637a7a07cf917140daa3bd434eac9bbd8fe92c", - "text": "Applying fix so that deleting non-existing disk returns success.", - "markdown": "Applying fix so that deleting non-existing disk returns success. ([#102083](https://github.com/kubernetes/kubernetes/pull/102083), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102083", - "pr_number": 102083, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "102093": { - "commit": "c24f2f8225be0aaf6f7f4743d7fc283040cfbf0d", - "text": "kubeadm: remove the deprecated flag '--image-pull-timeout' for 'kubeadm upgrade apply' command", - "markdown": "Kubeadm: remove the deprecated flag '--image-pull-timeout' for 'kubeadm upgrade apply' command ([#102093](https://github.com/kubernetes/kubernetes/pull/102093), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102093", - "pr_number": 102093, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "102105": { - "commit": "1a525275499c4559538873f6f1e05394d97c465a", - "text": "Respect annotation size limit for server-side apply updates to the client-side apply annotation. Also, fix opt-out of this behavior by setting the client-side apply annotation to the empty string.", - "markdown": "Respect annotation size limit for server-side apply updates to the client-side apply annotation. Also, fix opt-out of this behavior by setting the client-side apply annotation to the empty string. ([#102105](https://github.com/kubernetes/kubernetes/pull/102105), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG API Machinery]", - "author": "julianvmodesto", - "author_url": "https://github.com/julianvmodesto", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102105", - "pr_number": 102105, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "102108": { - "commit": "7f47a3aabb8f6bf5edf5bda408154665505de88d", - "text": "kubead: remove the deprecated `--csr-only` and `--csr-dir` flags from `kubeadm init phase certs`. Deprecate the same flags under `kubeadm certs renew`. In both the cases the command `kubeadm certs generate-csr` should be used instead.", - "markdown": "Kubead: remove the deprecated `--csr-only` and `--csr-dir` flags from `kubeadm init phase certs`. Deprecate the same flags under `kubeadm certs renew`. In both the cases the command `kubeadm certs generate-csr` should be used instead. ([#102108](https://github.com/kubernetes/kubernetes/pull/102108), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102108", - "pr_number": 102108, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "102121": { - "commit": "3cd555e818d300a04fa5ee53fc1b54c42173b39e", - "text": "kubeadm: remove the deprecated flag `--insecure-port` from the kube-apiserver manifest that kubeadm manages. The flag had no effect since 1.20, since the insecure serving of the component was disabled in the same version.", - "markdown": "Kubeadm: remove the deprecated flag `--insecure-port` from the kube-apiserver manifest that kubeadm manages. The flag had no effect since 1.20, since the insecure serving of the component was disabled in the same version. ([#102121](https://github.com/kubernetes/kubernetes/pull/102121), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102121", - "pr_number": 102121, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "102133": { - "commit": "64412d526ec81725fb4aa9104737f64c307929e0", - "text": "kubeadm: during \"kubeadm init/join/upgrade\", always default the `cgroupDriver` value in the `KubeletConfiguration` to `systemd`, unless the user was explicit about the value. See [configure-cgroup-driver](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) for more details.", - "markdown": "Kubeadm: during \"kubeadm init/join/upgrade\", always default the `cgroupDriver` value in the `KubeletConfiguration` to `systemd`, unless the user was explicit about the value. See [configure-cgroup-driver](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) for more details. ([#102133](https://github.com/kubernetes/kubernetes/pull/102133), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102133", - "pr_number": 102133, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true, - "action_required": true - }, - "102147": { - "commit": "5de1a754c8f875cacfa49b9c5ed63c6c35b7e9e5", - "text": "Fix resource enforcement when using systemd cgroup driver", - "markdown": "Fix resource enforcement when using systemd cgroup driver ([#102147](https://github.com/kubernetes/kubernetes/pull/102147), [@kolyshkin](https://github.com/kolyshkin))", - "author": "kolyshkin", - "author_url": "https://github.com/kolyshkin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102147", - "pr_number": 102147, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl", - "kubelet", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "node", - "storage", - "testing" - ], - "duplicate": true - }, - "102155": { - "commit": "7d9f4763376e20c9f1e8b930b8f82e6912628799", - "text": "Added field-selector option for `kubectl top pod`", - "markdown": "Added field-selector option for `kubectl top pod` ([#102155](https://github.com/kubernetes/kubernetes/pull/102155), [@lauchokyip](https://github.com/lauchokyip)) [SIG CLI]", - "author": "lauchokyip", - "author_url": "https://github.com/lauchokyip", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102155", - "pr_number": 102155, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "102158": { - "commit": "7705b300e2085c3864bb1e49a7302bf17f080219", - "text": "kubeadm: Add the `RootlessControlPlane` kubeadm specific feature gate (Alpha in 1.22, disabled by default). It can be used to enable an experimental feature that makes the control plane component static Pod containers for `kube-apiserver`, `kube-controller-manager`, `kube-scheduler` and `etcd` to run as a non-root users.", - "markdown": "Kubeadm: Add the `RootlessControlPlane` kubeadm specific feature gate (Alpha in 1.22, disabled by default). It can be used to enable an experimental feature that makes the control plane component static Pod containers for `kube-apiserver`, `kube-controller-manager`, `kube-scheduler` and `etcd` to run as a non-root users. ([#102158](https://github.com/kubernetes/kubernetes/pull/102158), [@vinayakankugoyal](https://github.com/vinayakankugoyal))", - "documentation": [ - { - "description": "[KEP-2568]", - "url": "https://github.com/kubernetes/enhancements/pull/2569", - "type": "KEP" - }, - { - "description": "[KEP-2568 update]", - "url": "https://github.com/kubernetes/enhancements/pull/2739", - "type": "KEP" - }, - { - "description": "[KEP Issue]", - "url": "https://github.com/kubernetes/enhancements/issues/2568", - "type": "KEP" - } - ], - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102158", - "pr_number": 102158, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "102159": { - "commit": "8a70c48553d3e4420064b34de59aa8b3e748e12b", - "text": "The `v1.Node` and `.status.images[].names` are now optional.", - "markdown": "The `v1.Node` and `.status.images[].names` are now optional. ([#102159](https://github.com/kubernetes/kubernetes/pull/102159), [@roycaihw](https://github.com/roycaihw))", - "author": "roycaihw", - "author_url": "https://github.com/roycaihw", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102159", - "pr_number": 102159, - "kinds": [ - "api-change" - ], - "sigs": [ - "apps", - "node" - ], - "duplicate": true - }, - "102171": { - "commit": "894f60365556df1262b4c2a8e7f0c40d6a9a6e23", - "text": "Watch requests are now handled throttled by priority and fairness filter in `kube-apiserver`.", - "markdown": "Watch requests are now handled throttled by priority and fairness filter in `kube-apiserver`. ([#102171](https://github.com/kubernetes/kubernetes/pull/102171), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102171", - "pr_number": 102171, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "102176": { - "commit": "ffbb85ce4ef8a1b4df09861e23852974ef6691dc", - "text": "Fixed `garbage collection` of dangling `VolumeAttachments` for `PersistentVolumes` migrated to CSI on startup of `kube-controller-manager`.", - "markdown": "Fixed `garbage collection` of dangling `VolumeAttachments` for `PersistentVolumes` migrated to CSI on startup of `kube-controller-manager`. ([#102176](https://github.com/kubernetes/kubernetes/pull/102176), [@timebertt](https://github.com/timebertt))", - "author": "timebertt", - "author_url": "https://github.com/timebertt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102176", - "pr_number": 102176, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "storage" - ], - "duplicate": true - }, - "102177": { - "commit": "303fe39e1c1ed551b8537bcd76bda15d24587338", - "text": "`oc describe quota` used has the same unit format as hard", - "markdown": "`oc describe quota` used has the same unit format as hard ([#102177](https://github.com/kubernetes/kubernetes/pull/102177), [@atiratree](https://github.com/atiratree)) [SIG CLI]", - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102177", - "pr_number": 102177, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "102181": { - "commit": "60475ee5c2dffd48a30018745ad7a2bafdf97bac", - "text": "The in-tree azure and gcp auth plugins have been deprecated. The https://github.com/Azure/kubelogin and gcloud commands serve as out-of-tree replacements via the kubectl/client-go credential plugin mechanism.", - "markdown": "The in-tree azure and gcp auth plugins have been deprecated. The https://github.com/Azure/kubelogin and gcloud commands serve as out-of-tree replacements via the kubectl/client-go credential plugin mechanism. ([#102181](https://github.com/kubernetes/kubernetes/pull/102181), [@enj](https://github.com/enj)) [SIG API Machinery and Auth]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/541-external-credential-providers", - "type": "KEP" - } - ], - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102181", - "pr_number": 102181, - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "duplicate_kind": true - }, - "102188": { - "commit": "785d9f028a9514034e705216e06262f30a449f6b", - "text": "Improved parsing of label selectors", - "markdown": "Improved parsing of label selectors ([#102188](https://github.com/kubernetes/kubernetes/pull/102188), [@alculquicondor](https://github.com/alculquicondor)) [SIG API Machinery]", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102188", - "pr_number": 102188, - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "102193": { - "commit": "abe209b086b67bc4ebb61a86f9b60bddda2438ff", - "text": "Upgrade functionality of `kubectl kustomize` as described at [kustomize/v4.1.3](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.3).", - "markdown": "Upgrade functionality of `kubectl kustomize` as described at [kustomize/v4.1.3](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.3). ([#102193](https://github.com/kubernetes/kubernetes/pull/102193), [@gautierdelorme](https://github.com/gautierdelorme))", - "author": "gautierdelorme", - "author_url": "https://github.com/gautierdelorme", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102193", - "pr_number": 102193, - "areas": [ - "dependency", - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "102201": { - "commit": "053aa7fde4da20522e568385cc4db36703c81bd1", - "text": "The prefer nominated node graduates to Beta and enabld by default.", - "markdown": "The prefer nominated node graduates to Beta and enabld by default. ([#102201](https://github.com/kubernetes/kubernetes/pull/102201), [@chendave](https://github.com/chendave))", - "documentation": [ - { - "description": "-KEP", - "url": "https://github.com/kubernetes/enhancements/pull/2764", - "type": "KEP" - } - ], - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102201", - "pr_number": 102201, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "102239": { - "commit": "d541872f9a036ed4f792232e43fde6dacf0e1084", - "text": "The deprecated flag `--algorithm-provider` has been removed from `kube-scheduler`. Use instead `ComponentConfig` to configure the set of enabled plugins.", - "markdown": "The deprecated flag `--algorithm-provider` has been removed from `kube-scheduler`. Use instead `ComponentConfig` to configure the set of enabled plugins. ([#102239](https://github.com/kubernetes/kubernetes/pull/102239), [@Haleygo](https://github.com/Haleygo))", - "author": "Haleygo", - "author_url": "https://github.com/Haleygo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102239", - "pr_number": 102239, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "api-change", - "cleanup", - "feature" - ], - "sigs": [ - "cloud-provider", - "scheduling" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "102297": { - "commit": "74af3b712d067363482b0dba9f0853b1fdd1f752", - "text": "The options `--ssh-user` and `--ssh-key` are removed. They only functioned on GCE, and only in-tree. Use the apiserver network proxy instead.", - "markdown": "The options `--ssh-user` and `--ssh-key` are removed. They only functioned on GCE, and only in-tree. Use the apiserver network proxy instead. ([#102297](https://github.com/kubernetes/kubernetes/pull/102297), [@deads2k](https://github.com/deads2k))", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102297", - "pr_number": 102297, - "areas": [ - "apiserver", - "provider/gcp", - "test" - ], - "kinds": [ - "api-change", - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "102302": { - "commit": "5640c64a9fb39cdb1b784b7cacbaad4704d09391", - "text": "Update the Debian images to pick up CVE fixes in the base images:\n- Update the `debian-base` image to v1.7.0\n- Update the `debian-iptables` image to v1.6.1", - "markdown": "Update the Debian images to pick up CVE fixes in the base images:\n - Update the `debian-base` image to v1.7.0\n - Update the `debian-iptables` image to v1.6.1 ([#102302](https://github.com/kubernetes/kubernetes/pull/102302), [@xmudrii](https://github.com/xmudrii))", - "author": "xmudrii", - "author_url": "https://github.com/xmudrii", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102302", - "pr_number": 102302, - "areas": [ - "dependency", - "release-eng", - "security", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "102323": { - "commit": "a6a6fb3072a50d78f36d50706579cc744b7b8fca", - "text": "Changed buildmode of non static Kubernetes binaries to produce position independent executables (PIE).", - "markdown": "Changed buildmode of non static Kubernetes binaries to produce position independent executables (PIE). ([#102323](https://github.com/kubernetes/kubernetes/pull/102323), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102323", - "pr_number": 102323, - "areas": [ - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "release", - "security" - ], - "duplicate": true - }, - "102328": { - "commit": "bc8acbc43eea13effc6c2034a82e7d56ba2d9eb6", - "text": "Update CNI plugins to v0.9.1.", - "markdown": "Update CNI plugins to v0.9.1. ([#102328](https://github.com/kubernetes/kubernetes/pull/102328), [@lentzi90](https://github.com/lentzi90))", - "author": "lentzi90", - "author_url": "https://github.com/lentzi90", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102328", - "pr_number": 102328, - "areas": [ - "provider/gcp", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "network", - "node", - "testing" - ], - "duplicate": true - }, - "102332": { - "commit": "3726309bf9d59bccf28b9e22e1573764a5dd3fb5", - "text": "Update klog v2.9.0.", - "markdown": "Update klog v2.9.0. ([#102332](https://github.com/kubernetes/kubernetes/pull/102332), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102332", - "pr_number": 102332, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "storage" - ], - "duplicate": true - }, - "102344": { - "commit": "dab6f6a43d5a41ef3e2aa11d4a85c45a268ac6cd", - "text": "Fix a number of race conditions in the kubelet when pods are starting up or shutting down that might cause pods to take a long time to shut down.", - "markdown": "Fix a number of race conditions in the kubelet when pods are starting up or shutting down that might cause pods to take a long time to shut down. ([#102344](https://github.com/kubernetes/kubernetes/pull/102344), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps, Node, Storage and Testing]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102344", - "pr_number": 102344, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "bug", - "flake" - ], - "sigs": [ - "apps", - "node", - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "102363": { - "commit": "a5b117fab4ec58cbbbf8a013367edf359f4d682f", - "text": "Promote Cronjobs storage version to `batch/v1`.", - "markdown": "Promote Cronjobs storage version to `batch/v1`. ([#102363](https://github.com/kubernetes/kubernetes/pull/102363), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/19-Graduate-CronJob-to-Stable", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102363", - "pr_number": 102363, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "102366": { - "commit": "4aae71695a8dd43918702fafd81e0401721d79d9", - "text": "Because of the implementation logic of `time.Format` in golang, the displayed time zone is not consistent.", - "markdown": "Because of the implementation logic of `time.Format` in golang, the displayed time zone is not consistent. ([#102366](https://github.com/kubernetes/kubernetes/pull/102366), [@cndoit18](https://github.com/cndoit18))", - "author": "cndoit18", - "author_url": "https://github.com/cndoit18", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102366", - "pr_number": 102366, - "areas": [ - "apiserver", - "e2e-test-framework", - "kubeadm", - "kubectl", - "kubelet", - "test" - ], - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "apps", - "auth", - "autoscaling", - "cli", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "102377": { - "commit": "59fd0a5c95a428660701dac7fe230dd6ddc4410a", - "text": "Update the setcap image to buster-v2.0.1.", - "markdown": "Update the setcap image to buster-v2.0.1. ([#102377](https://github.com/kubernetes/kubernetes/pull/102377), [@xmudrii](https://github.com/xmudrii))", - "author": "xmudrii", - "author_url": "https://github.com/xmudrii", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102377", - "pr_number": 102377, - "areas": [ - "dependency", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release" - ], - "feature": true - }, - "102386": { - "commit": "ba50598ae56757fcc792d75764dd11ea54f25a32", - "text": "Update Calico to v3.19.1.", - "markdown": "Update Calico to v3.19.1. ([#102386](https://github.com/kubernetes/kubernetes/pull/102386), [@JornShen](https://github.com/JornShen))", - "author": "JornShen", - "author_url": "https://github.com/JornShen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102386", - "pr_number": 102386, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ] - }, - "102412": { - "commit": "7ed2ed1b454fe8f09adf729c6cb814611634fea1", - "text": "Remove support for the Service `topologyKeys` field (alpha) and the `kube-proxy` implementation of it. This field was deprecated several cycles ago. This functionality is replaced by the combination of automatic topology hints per-endpoint (alpha) and the Service `internalTrafficPolicy` field (alpha).", - "markdown": "Remove support for the Service `topologyKeys` field (alpha) and the `kube-proxy` implementation of it. This field was deprecated several cycles ago. This functionality is replaced by the combination of automatic topology hints per-endpoint (alpha) and the Service `internalTrafficPolicy` field (alpha). ([#102412](https://github.com/kubernetes/kubernetes/pull/102412), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102412", - "pr_number": 102412, - "kinds": [ - "api-change", - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery", - "apps", - "network" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "102414": { - "commit": "7f4abd897ec4ec29cf88c200ea0044671b10d822", - "text": "Newly provisioned PVs by vSphere in-tree plugin will no longer have the beta `FailureDomain` label. vSphere volume plugin will start to have GA topology label", - "markdown": "Newly provisioned PVs by vSphere in-tree plugin will no longer have the beta `FailureDomain` label. vSphere volume plugin will start to have GA topology label ([#102414](https://github.com/kubernetes/kubernetes/pull/102414), [@divyenpatel](https://github.com/divyenpatel))", - "author": "divyenpatel", - "author_url": "https://github.com/divyenpatel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102414", - "pr_number": 102414, - "areas": [ - "cloudprovider", - "test" - ], - "kinds": [ - "bug", - "deprecation" - ], - "sigs": [ - "cloud-provider", - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "102437": { - "commit": "b469c9cfa49d67a7179ce91d63e13cd06df2f5ed", - "text": "JSON logging now supports having information about source code location in the logging format, source code information is available under the key \"caller\".", - "markdown": "JSON logging now supports having information about source code location in the logging format, source code information is available under the key \"caller\". ([#102437](https://github.com/kubernetes/kubernetes/pull/102437), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", - "author": "MadhavJivrajani", - "author_url": "https://github.com/MadhavJivrajani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102437", - "pr_number": 102437, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "instrumentation" - ], - "duplicate": true - }, - "102441": { - "commit": "122d6352452f3f4a2d52bdb8b114b6e0ec49358e", - "text": "Update Azure Go SDK to v55.0.0.", - "markdown": "Update Azure Go SDK to v55.0.0. ([#102441](https://github.com/kubernetes/kubernetes/pull/102441), [@feiskyer](https://github.com/feiskyer))", - "author": "feiskyer", - "author_url": "https://github.com/feiskyer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102441", - "pr_number": 102441, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "node", - "storage" - ], - "duplicate": true - }, - "102443": { - "commit": "a3f24e8459465495738af1b9cc6c3db80696e3c1", - "text": "Remove balanced attached node volumes feature.", - "markdown": "Remove balanced attached node volumes feature. ([#102443](https://github.com/kubernetes/kubernetes/pull/102443), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102443", - "pr_number": 102443, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "102444": { - "commit": "062bc359cab31ce2ea9ce513f8bae73e44ce5df2", - "text": "Expose container start time as `container_start_time_seconds` in the kubelet `/metrics/resource` endpoint.", - "markdown": "Expose container start time as `container_start_time_seconds` in the kubelet `/metrics/resource` endpoint. ([#102444](https://github.com/kubernetes/kubernetes/pull/102444), [@sanwishe](https://github.com/sanwishe))", - "author": "sanwishe", - "author_url": "https://github.com/sanwishe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102444", - "pr_number": 102444, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "102455": { - "commit": "e154a6d63706b955188daf2ce31254b07bb284e0", - "text": "“NONE”", - "markdown": "Â\ufffd\ufffdNONE” ([#102455](https://github.com/kubernetes/kubernetes/pull/102455), [@lunhuijie](https://github.com/lunhuijie)) [SIG Node]", - "author": "lunhuijie", - "author_url": "https://github.com/lunhuijie", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102455", - "pr_number": 102455, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "102461": { - "commit": "63c75f37668188ba2e081d1615ac5381e957df18", - "text": "Improve func `ToSelectableFields`' performance for event.", - "markdown": "Improve func `ToSelectableFields`' performance for event. ([#102461](https://github.com/kubernetes/kubernetes/pull/102461), [@goodluckbot](https://github.com/goodluckbot))", - "author": "goodluckbot", - "author_url": "https://github.com/goodluckbot", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102461", - "pr_number": 102461, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "node" - ], - "duplicate": true - }, - "102466": { - "commit": "cfa0130b9f11d7ce22cad2a12529f942e1fbacb7", - "text": "kubeadm: update `CoreDNS` to 1.8.4. Grant `CoreDNS` permissions to \"list\" and \"watch\" `EndpointSlice` objects to accommodate dual-stack support.", - "markdown": "Kubeadm: update `CoreDNS` to 1.8.4. Grant `CoreDNS` permissions to \"list\" and \"watch\" `EndpointSlice` objects to accommodate dual-stack support. ([#102466](https://github.com/kubernetes/kubernetes/pull/102466), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102466", - "pr_number": 102466, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "102467": { - "commit": "81b9789eaa7bc067f417b5e74d5695dd6dd88a46", - "text": "Fix how nulls are handled in array and objects in [json patches](https://github.com/evanphx/json-patch).", - "markdown": "Fix how nulls are handled in array and objects in [json patches](https://github.com/evanphx/json-patch). ([#102467](https://github.com/kubernetes/kubernetes/pull/102467), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102467", - "pr_number": 102467, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubeadm", - "kubectl", - "provider/gcp", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "apps", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "storage", - "testing" - ], - "duplicate": true - }, - "102489": { - "commit": "b24b7d5a201764a13a58813d4307342d83cc607e", - "text": "Fixed 'kubelet' runtime panic for timed-out portforward streams.", - "markdown": "Fixed 'kubelet' runtime panic for timed-out portforward streams. ([#102489](https://github.com/kubernetes/kubernetes/pull/102489), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102489", - "pr_number": 102489, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "node" - ], - "duplicate": true, - "duplicate_kind": true - }, - "102498": { - "commit": "d9dc347b4fe017258d43312d171ca03c724704cb", - "text": "Fix a bug that a preemptor pod may exist as a phantom in the scheduler.", - "markdown": "Fix a bug that a preemptor pod may exist as a phantom in the scheduler. ([#102498](https://github.com/kubernetes/kubernetes/pull/102498), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102498", - "pr_number": 102498, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true - }, - "102502": { - "commit": "7e2b5f3325a2f7808acd6740e9f0d907976e4704", - "text": "kubeadm: when using a custom image repository for CoreDNS kubeadm now will append the `coredns` image name instead of `coredns/coredns`, thus restoring the behaviour existing before the v1.21 release. Users who rely on nested folder for the coredns image should set the `clusterConfiguration.dns.imageRepository` value including the nested path name (e.g using `registry.company.xyz/coredns` will force kubeadm to use `registry.company.xyz/coredns/coredns` image). No action is needed if using the default registry (k8s.gcr.io).", - "markdown": "Kubeadm: when using a custom image repository for CoreDNS kubeadm now will append the `coredns` image name instead of `coredns/coredns`, thus restoring the behaviour existing before the v1.21 release. Users who rely on nested folder for the coredns image should set the `clusterConfiguration.dns.imageRepository` value including the nested path name (e.g using `registry.company.xyz/coredns` will force kubeadm to use `registry.company.xyz/coredns/coredns` image). No action is needed if using the default registry (k8s.gcr.io). ([#102502](https://github.com/kubernetes/kubernetes/pull/102502), [@ykakarap](https://github.com/ykakarap))", - "author": "ykakarap", - "author_url": "https://github.com/ykakarap", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102502", - "pr_number": 102502, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true, - "action_required": true - }, - "102509": { - "commit": "f98e9caa776d7b10e7dd3f8dcbc0097a2f8fef12", - "text": "Clarified the description of a test in the e2e suite that mentions \"SCTP\" but is\nactually intended to be testing the behavior of network plugins that don't\nimplement SCTP.", - "markdown": "Clarified the description of a test in the e2e suite that mentions \"SCTP\" but is\n actually intended to be testing the behavior of network plugins that don't\n implement SCTP. ([#102509](https://github.com/kubernetes/kubernetes/pull/102509), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102509", - "pr_number": 102509, - "areas": [ - "network-policy", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true - }, - "102516": { - "commit": "42860d4d47e069ddc52ffaa2fc792b33c63d937e", - "text": "The `serviceOwnsFrontendIP` shouldn't report error when the public IP doesn't match.", - "markdown": "The `serviceOwnsFrontendIP` shouldn't report error when the public IP doesn't match. ([#102516](https://github.com/kubernetes/kubernetes/pull/102516), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102516", - "pr_number": 102516, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "102529": { - "commit": "1677d939fb5790aa5b58b11cd1454491ef7b7b6f", - "text": "Promote `CronJobControllerV2` flag to GA, with removal in 1.23.", - "markdown": "Promote `CronJobControllerV2` flag to GA, with removal in 1.23. ([#102529](https://github.com/kubernetes/kubernetes/pull/102529), [@soltysh](https://github.com/soltysh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/19-Graduate-CronJob-to-Stable", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102529", - "pr_number": 102529, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "102539": { - "commit": "2e12da1ce0116fcd0ad4457743b2acc0da0c74bf", - "text": "Fixes issue with websocket-based watches of Service objects not closing correctly on timeout.", - "markdown": "Fixes issue with websocket-based watches of Service objects not closing correctly on timeout. ([#102539](https://github.com/kubernetes/kubernetes/pull/102539), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102539", - "pr_number": 102539, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "102578": { - "commit": "5f285e9eae9199eebebbf6d7fca3311412023faf", - "text": "Add unified map on CRI to support `cgroup v2`. Refer to https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#unified.", - "markdown": "Add unified map on CRI to support `cgroup v2`. Refer to https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#unified. ([#102578](https://github.com/kubernetes/kubernetes/pull/102578), [@payall4u](https://github.com/payall4u))", - "author": "payall4u", - "author_url": "https://github.com/payall4u", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102578", - "pr_number": 102578, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "102590": { - "commit": "62b5c28506e4937b3d0cb838fa910bb9c45af008", - "text": "Update `kube-proxy` base image `debian-iptables` to v1.6.2 to pickup [documentation](https://github.com/kubernetes/release/pull/2106)\n\\n\"- `debian-iptables`: select nft mode if ntf lines \u003e legacy lines, matching [iptables-wrappers](https://github.com/kubernetes-sigs/iptables-wrappers/)\"", - "markdown": "Update `kube-proxy` base image `debian-iptables` to v1.6.2 to pickup [documentation](https://github.com/kubernetes/release/pull/2106)\n \\n\"- `debian-iptables`: select nft mode if ntf lines \u003e legacy lines, matching [iptables-wrappers](https://github.com/kubernetes-sigs/iptables-wrappers/)\" ([#102590](https://github.com/kubernetes/kubernetes/pull/102590), [@BenTheElder](https://github.com/BenTheElder))", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102590", - "pr_number": 102590, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true - }, - "102594": { - "commit": "59f150333ed0edc092587c275d16455aafa5d441", - "text": "base-images: Update to `debian-base:buster-v1.7.1`", - "markdown": "Base-images: Update to `debian-base:buster-v1.7.1` ([#102594](https://github.com/kubernetes/kubernetes/pull/102594), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102594", - "pr_number": 102594, - "areas": [ - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "release" - ], - "feature": true, - "duplicate": true - }, - "102598": { - "commit": "f52d1bbd8170d9b67957ba422ddd97ce8f1751bc", - "text": "e2e.test: removed the `--viper-config` flag. If you were previously using this to pass flags to `e2e.test` via a file, you will need to pass them directly on the command line, e.g. `e2e.test --e2e-output-dir`.", - "markdown": "E2e.test: removed the `--viper-config` flag. If you were previously using this to pass flags to `e2e.test` via a file, you will need to pass them directly on the command line, e.g. `e2e.test --e2e-output-dir`. ([#102598](https://github.com/kubernetes/kubernetes/pull/102598), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102598", - "pr_number": 102598, - "areas": [ - "dependency", - "test" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "testing" - ], - "duplicate_kind": true - }, - "102620": { - "commit": "f1f58f20ab7e30bf9f1a982aeaf5ba48f1a55042", - "text": "Disable log sampling when using json logging format.", - "markdown": "Disable log sampling when using json logging format. ([#102620](https://github.com/kubernetes/kubernetes/pull/102620), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102620", - "pr_number": 102620, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "instrumentation" - ], - "duplicate": true - }, - "102642": { - "commit": "270b66fb94747ed8eb296b2626e81b1fa648c306", - "text": "Fixed a bug due to which the controller was not populating the `lastSuccessfulTime` field added to `cronjob.status` in `batch/v1`.", - "markdown": "Fixed a bug due to which the controller was not populating the `lastSuccessfulTime` field added to `cronjob.status` in `batch/v1`. ([#102642](https://github.com/kubernetes/kubernetes/pull/102642), [@alaypatel07](https://github.com/alaypatel07))", - "documentation": [ - { - "description": "API change: [KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/19-Graduate-CronJob-to-Stable", - "type": "KEP" - } - ], - "author": "alaypatel07", - "author_url": "https://github.com/alaypatel07", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102642", - "pr_number": 102642, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "102665": { - "commit": "cc7721362c83ffbca8785b4763051b4d0406bfc3", - "text": "Allow CSI drivers to just run offline expansion tests.", - "markdown": "Allow CSI drivers to just run offline expansion tests. ([#102665](https://github.com/kubernetes/kubernetes/pull/102665), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102665", - "pr_number": 102665, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true - }, - "102673": { - "commit": "d5685397e18b78133afde778077652ee55e4c5f7", - "text": "kubeadm: remove the \"ephemeral_storage\" request from the etcd static pod that kubeadm deploys on stacked etcd control plane nodes. This request has caused sporadic failures on some setups due to a problem in the kubelet with cadvisor and the LocalStorageCapacityIsolation feature gate. See this issue for more details: https://github.com/kubernetes/kubernetes/issues/99305", - "markdown": "Kubeadm: remove the \"ephemeral_storage\" request from the etcd static pod that kubeadm deploys on stacked etcd control plane nodes. This request has caused sporadic failures on some setups due to a problem in the kubelet with cadvisor and the LocalStorageCapacityIsolation feature gate. See this issue for more details: https://github.com/kubernetes/kubernetes/issues/99305 ([#102673](https://github.com/kubernetes/kubernetes/pull/102673), [@jackfrancis](https://github.com/jackfrancis)) [SIG Cluster Lifecycle]", - "author": "jackfrancis", - "author_url": "https://github.com/jackfrancis", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102673", - "pr_number": 102673, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "102677": { - "commit": "99f77725c88d1d9c0b7ac29c65d1595d9ded8169", - "text": "Deprecated warning message for `igonre-errors` flag.", - "markdown": "Deprecated warning message for `igonre-errors` flag. ([#102677](https://github.com/kubernetes/kubernetes/pull/102677), [@yuzhiquan](https://github.com/yuzhiquan))", - "author": "yuzhiquan", - "author_url": "https://github.com/yuzhiquan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102677", - "pr_number": 102677, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "102683": { - "commit": "5a21b978820ff266fcbd81e72f1dabc515172eca", - "text": "Fix a bug on the `endpointslicemirroring` controller where endpoint `NotReadyAddresses` were mirrored as Ready to the corresponding `EndpointSlice`.", - "markdown": "Fix a bug on the `endpointslicemirroring` controller where endpoint `NotReadyAddresses` were mirrored as Ready to the corresponding `EndpointSlice`. ([#102683](https://github.com/kubernetes/kubernetes/pull/102683), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102683", - "pr_number": 102683, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true - }, - "102689": { - "commit": "4f854e39f2bd73210a4e10ffeecebf36fdc4588d", - "text": "Kubernetes is now built with Golang 1.16.5.", - "markdown": "Kubernetes is now built with Golang 1.16.5. ([#102689](https://github.com/kubernetes/kubernetes/pull/102689), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102689", - "pr_number": 102689, - "areas": [ - "dependency", - "provider/gcp", - "release-eng", - "security", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "instrumentation", - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "102711": { - "commit": "2fe712e803199841402b222872f05e9239f24beb", - "text": "The \"Leader Migration\" now support a wildcard component name and the default value.", - "markdown": "The \"Leader Migration\" now support a wildcard component name and the default value. ([#102711](https://github.com/kubernetes/kubernetes/pull/102711), [@jiahuif](https://github.com/jiahuif))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2436", - "type": "KEP" - } - ], - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102711", - "pr_number": 102711, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "102722": { - "commit": "f3371ced8593498a472452805b8ba212d67ea47d", - "text": "kubeadm: add the `--dry-run` flag to the `control-plane` phase of \"kubeadm init\".", - "markdown": "Kubeadm: add the `--dry-run` flag to the `control-plane` phase of \"kubeadm init\". ([#102722](https://github.com/kubernetes/kubernetes/pull/102722), [@vinayakankugoyal](https://github.com/vinayakankugoyal))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2568", - "type": "KEP" - } - ], - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102722", - "pr_number": 102722, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "102731": { - "commit": "81aaeee8a6369695cff69bd2bfe77f4eef228e11", - "text": "The `EndpointSlicen Mirroring controller` no longer mirrors the `last-applied-configuration` annotation created by `kubectl` to update `EndpointSlices`.", - "markdown": "The `EndpointSlicen Mirroring controller` no longer mirrors the `last-applied-configuration` annotation created by `kubectl` to update `EndpointSlices`. ([#102731](https://github.com/kubernetes/kubernetes/pull/102731), [@sharmarajdaksh](https://github.com/sharmarajdaksh))", - "author": "sharmarajdaksh", - "author_url": "https://github.com/sharmarajdaksh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102731", - "pr_number": 102731, - "areas": [ - "apiserver", - "cloudprovider", - "e2e-test-framework", - "ipvs", - "provider/gcp", - "release-eng", - "test" - ], - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "api-machinery", - "apps", - "cloud-provider", - "network", - "release", - "scheduling", - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "102783": { - "commit": "e9c6ec639cc5ca93a3f6e01ff4215f6b68d6142d", - "text": "Update dep `google/gnostic` and `google/go-cmp` to v0.5.5 and updating transitive dependencies `protobuf`.", - "markdown": "Update dep `google/gnostic` and `google/go-cmp` to v0.5.5 and updating transitive dependencies `protobuf`. ([#102783](https://github.com/kubernetes/kubernetes/pull/102783), [@mcbenjemaa](https://github.com/mcbenjemaa))", - "author": "mcbenjemaa", - "author_url": "https://github.com/mcbenjemaa", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102783", - "pr_number": 102783, - "areas": [ - "code-generation", - "dependency", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture", - "testing" - ], - "duplicate": true - }, - "102788": { - "commit": "60a4cbfdf617b94a28a76b302fd4cf04a704667c", - "text": "client-go: reduce verbosity of `Starting/Stopping reflector` messages to 3 again.", - "markdown": "Client-go: reduce verbosity of `Starting/Stopping reflector` messages to 3 again. ([#102788](https://github.com/kubernetes/kubernetes/pull/102788), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102788", - "pr_number": 102788, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "102795": { - "commit": "fddb3adcfd963ef7ee1230bcbb2fd0d324fe8935", - "text": "Added a new metric `apiserver_flowcontrol_request_concurrency_in_use` that shows the number of\nseats (concurrency) occupied by the currently executing requests in the API Priority and Fairness system.", - "markdown": "Added a new metric `apiserver_flowcontrol_request_concurrency_in_use` that shows the number of\n seats (concurrency) occupied by the currently executing requests in the API Priority and Fairness system. ([#102795](https://github.com/kubernetes/kubernetes/pull/102795), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102795", - "pr_number": 102795, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "102805": { - "commit": "21ee533508c45871560de123e08b97edddc771b2", - "text": "The deprecated flag `--hard-pod-affinity-symmetric-weight` and `--scheduler-name` have been removed from `kube-scheduler`. Use `ComponentConfig` instead to configure those parameters.", - "markdown": "The deprecated flag `--hard-pod-affinity-symmetric-weight` and `--scheduler-name` have been removed from `kube-scheduler`. Use `ComponentConfig` instead to configure those parameters. ([#102805](https://github.com/kubernetes/kubernetes/pull/102805), [@ahg-g](https://github.com/ahg-g))", - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102805", - "pr_number": 102805, - "kinds": [ - "api-change", - "deprecation" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true - }, - "102821": { - "commit": "15d3c3a5e2679493d5cbe9b944df4ee717057a06", - "text": "Pods that are known to the kubelet to have previously been Running should not revert to Pending state, the kubelet will now infer a termination.", - "markdown": "Pods that are known to the kubelet to have previously been Running should not revert to Pending state, the kubelet will now infer a termination. ([#102821](https://github.com/kubernetes/kubernetes/pull/102821), [@ehashman](https://github.com/ehashman))", - "author": "ehashman", - "author_url": "https://github.com/ehashman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102821", - "pr_number": 102821, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "102823": { - "commit": "561959f6828c36cd3515718eb41bf7b33f450cce", - "text": "Alpha swap support can now be enabled on Kubernetes nodes with the `NodeSwapEnabled` feature flag. See [KEP-2400](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md#design-details) for details.", - "markdown": "Alpha swap support can now be enabled on Kubernetes nodes with the `NodeSwapEnabled` feature flag. See [KEP-2400](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md#design-details) for details. ([#102823](https://github.com/kubernetes/kubernetes/pull/102823), [@ehashman](https://github.com/ehashman))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/", - "type": "KEP" - } - ], - "author": "ehashman", - "author_url": "https://github.com/ehashman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102823", - "pr_number": 102823, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true - }, - "102825": { - "commit": "0665fb2e5a9a9fa449ef6acc16275b857da74087", - "text": "Fix an issue with `kubectl` on certain older version of Windows or when legacy console mode is enabled on Windows 8 which causes `kubectl exec` to crash.", - "markdown": "Fix an issue with `kubectl` on certain older version of Windows or when legacy console mode is enabled on Windows 8 which causes `kubectl exec` to crash. ([#102825](https://github.com/kubernetes/kubernetes/pull/102825), [@n4j](https://github.com/n4j))", - "author": "n4j", - "author_url": "https://github.com/n4j", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102825", - "pr_number": 102825, - "areas": [ - "apiserver", - "cloudprovider", - "dependency", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle" - ], - "duplicate": true - }, - "102834": { - "commit": "f6f9738ec844ee3ebc722557cc6ab5c13cca9711", - "text": "The `NetworkPolicyEndPort` is graduated to beta and is enabled by default.", - "markdown": "The `NetworkPolicyEndPort` is graduated to beta and is enabled by default. ([#102834](https://github.com/kubernetes/kubernetes/pull/102834), [@rikatz](https://github.com/rikatz))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/d0b04580b6e3cd9287185cfc379efad151f966b2/keps/sig-network/2079-network-policy-port-range", - "type": "KEP" - } - ], - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102834", - "pr_number": 102834, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "duplicate_kind": true - }, - "102840": { - "commit": "2d7a20fcd67e1a22fa6d5cba0e1772ab48b5c6d7", - "text": "Updated the Graceful Node Shutdown Pod termination reason and message.\nUpdated the Graceful Node Shutdown Pod rejection reason and message.", - "markdown": "Updated the Graceful Node Shutdown Pod termination reason and message.\n Updated the Graceful Node Shutdown Pod rejection reason and message. ([#102840](https://github.com/kubernetes/kubernetes/pull/102840), [@Kissy](https://github.com/Kissy))", - "author": "Kissy", - "author_url": "https://github.com/Kissy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102840", - "pr_number": 102840, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "102858": { - "commit": "36896f9cab4d753ba809b859750db33906be54e8", - "text": "Aggregate write permissions on events to users with edit and admin role.", - "markdown": "Aggregate write permissions on events to users with edit and admin role. ([#102858](https://github.com/kubernetes/kubernetes/pull/102858), [@tumido](https://github.com/tumido))", - "author": "tumido", - "author_url": "https://github.com/tumido", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102858", - "pr_number": 102858, - "kinds": [ - "bug" - ], - "sigs": [ - "auth" - ] - }, - "102859": { - "commit": "556f8500fff689163fb9480d8a878b457e39e322", - "text": "Added new metrics about API Priority and Fairness. Each one has a label `priority_level`. The last two also have a label `bound` taking values `min` and `max.\n- apiserver_flowcontrol_current_r: R(the time of the last change in state of the queues)\n- apiserver_flowcontrol_dispatch_r: R(the time of the latest request dispatch)\n- apiserver_flowcontrol_latest_s: S(the request last dispatched) = R(when that request starts executing in the virtual world)\n- apiserver_flowcontrol_next_s_bounds: min and max next S among non-empty queues\n- apiserver_flowcontrol_next_discounted_s_bounds: min and max next S - (sum [over requests executing] width * estimatedDuration) among non-empty queues", - "markdown": "Added new metrics about API Priority and Fairness. Each one has a label `priority_level`. The last two also have a label `bound` taking values `min` and `max.\n - apiserver_flowcontrol_current_r: R(the time of the last change in state of the queues)\n - apiserver_flowcontrol_dispatch_r: R(the time of the latest request dispatch)\n - apiserver_flowcontrol_latest_s: S(the request last dispatched) = R(when that request starts executing in the virtual world)\n - apiserver_flowcontrol_next_s_bounds: min and max next S among non-empty queues\n - apiserver_flowcontrol_next_discounted_s_bounds: min and max next S - (sum [over requests executing] width * estimatedDuration) among non-empty queues ([#102859](https://github.com/kubernetes/kubernetes/pull/102859), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery and Instrumentation]", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102859", - "pr_number": 102859, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "102869": { - "commit": "79494183b784707d1a47f323432d46c2e437c9b6", - "text": "JSON logging format is no longer available by default in non-core Kubernetes Components and require owners to opt in.", - "markdown": "JSON logging format is no longer available by default in non-core Kubernetes Components and require owners to opt in. ([#102869](https://github.com/kubernetes/kubernetes/pull/102869), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Cluster Lifecycle and Instrumentation]", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102869", - "pr_number": 102869, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "102873": { - "commit": "a72296f1127ff87ee080b4992ad22aebeb2d05b8", - "text": "Deprecate `--record` flag in `kubectl`. The `--record` flag is being replaced with the [mechanism](https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers) which annotates HTTP requests with kubectl command details.", - "markdown": "Deprecate `--record` flag in `kubectl`. The `--record` flag is being replaced with the [mechanism](https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers) which annotates HTTP requests with kubectl command details. ([#102873](https://github.com/kubernetes/kubernetes/pull/102873), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102873", - "pr_number": 102873, - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true - }, - "102890": { - "commit": "3392f16908a84dd96a29d52d2edee159fcb6711f", - "text": "The client-go credential plugins are now GA and are enabled by default.", - "markdown": "The client-go credential plugins are now GA and are enabled by default. ([#102890](https://github.com/kubernetes/kubernetes/pull/102890), [@ankeesler](https://github.com/ankeesler))", - "author": "ankeesler", - "author_url": "https://github.com/ankeesler", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102890", - "pr_number": 102890, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "102892": { - "commit": "3be88d5d0f3a2a8607a50d3fd21c10143bd4916f", - "text": "For vSphere: fix regression during attach disk if datastore is within a storage folder or datastore cluster.", - "markdown": "For vSphere: fix regression during attach disk if datastore is within a storage folder or datastore cluster. ([#102892](https://github.com/kubernetes/kubernetes/pull/102892), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102892", - "pr_number": 102892, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "duplicate": true - }, - "102898": { - "commit": "e19dc07ac586aa6b7f88890a87673d59e3a1d37a", - "text": "The current behavior for Services that `IPFamilyPolicy` set as `PreferDualstack`. The current behavior when the cluster is upgraded to dual-stack is:\n- Services that have been set to IPFamilyPolicy = PreferDualstack will be upgraded when the service object is updated. e.g., when a user change a label.\n\nThis behavior will change to:\n- Services that have been set IPFamilyPolicy = PreferDualstack will not be upgraded when the service object is updated. User can still change policy, type etc and existing behaviors remain the same.", - "markdown": "The current behavior for Services that `IPFamilyPolicy` set as `PreferDualstack`. The current behavior when the cluster is upgraded to dual-stack is:\n - Services that have been set to IPFamilyPolicy = PreferDualstack will be upgraded when the service object is updated. e.g., when a user change a label.\n \n This behavior will change to:\n - Services that have been set IPFamilyPolicy = PreferDualstack will not be upgraded when the service object is updated. User can still change policy, type etc and existing behaviors remain the same. ([#102898](https://github.com/kubernetes/kubernetes/pull/102898), [@khenidak](https://github.com/khenidak)) [SIG Network and Testing]", - "author": "khenidak", - "author_url": "https://github.com/khenidak", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102898", - "pr_number": 102898, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true - }, - "102901": { - "commit": "c864f2357dfee68e0c15c70b168d8c319c274518", - "text": "kubeadm: add the `imagePullPolicy` field in the `nodeRegistration` section of `InitConfiguration` and `JoinConfiguration` in `v1beta3`. This allows the user to specify the image pull policy during \"kubeadm init\" and \"kubeadm join\". The value of this field must be one of `Always`, `IfNotPresent` or `Never`. The default behavior continues to be `IfNotPresent`.", - "markdown": "Kubeadm: add the `imagePullPolicy` field in the `nodeRegistration` section of `InitConfiguration` and `JoinConfiguration` in `v1beta3`. This allows the user to specify the image pull policy during \"kubeadm init\" and \"kubeadm join\". The value of this field must be one of `Always`, `IfNotPresent` or `Never`. The default behavior continues to be `IfNotPresent`. ([#102901](https://github.com/kubernetes/kubernetes/pull/102901), [@wangyysde](https://github.com/wangyysde))", - "author": "wangyysde", - "author_url": "https://github.com/wangyysde", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102901", - "pr_number": 102901, - "areas": [ - "kubeadm" - ], - "kinds": [ - "design", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "102925": { - "commit": "f899bbe4454d82a8b9a80ccfe0fb30b68d303483", - "text": "Fix scoring for `NodeResourcesMostAllocated` and `NodeResourcesBalancedAllocation` plugins when nodes have containers with no requests. This was leaving to under-utilization of small nodes.", - "markdown": "Fix scoring for `NodeResourcesMostAllocated` and `NodeResourcesBalancedAllocation` plugins when nodes have containers with no requests. This was leaving to under-utilization of small nodes. ([#102925](https://github.com/kubernetes/kubernetes/pull/102925), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102925", - "pr_number": 102925, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "102934": { - "commit": "f62b9dbd9248b3d88150a661c8afe7cff7fce8c7", - "text": "The `kube-apiserver` now reports the synthetic verb when logging requests, better explaining the user intent and matching what is reported in the metrics.", - "markdown": "The `kube-apiserver` now reports the synthetic verb when logging requests, better explaining the user intent and matching what is reported in the metrics. ([#102934](https://github.com/kubernetes/kubernetes/pull/102934), [@lavalamp](https://github.com/lavalamp))", - "author": "lavalamp", - "author_url": "https://github.com/lavalamp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102934", - "pr_number": 102934, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "102935": { - "commit": "3dbe33ae31bb9d0279f6bd14a7b8e97f190f8579", - "text": "Applying fix: cleanup outdated routes.", - "markdown": "Applying fix: cleanup outdated routes. ([#102935](https://github.com/kubernetes/kubernetes/pull/102935), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102935", - "pr_number": 102935, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "102964": { - "commit": "ce3bf862ee31026a6f99b4d75ad043d5d51552a7", - "text": "kubeadm: move the BootstrapToken* API and related utilities from v1beta3 to a separate API group/version - bootstraptoken/v1.", - "markdown": "Kubeadm: move the BootstrapToken* API and related utilities from v1beta3 to a separate API group/version - bootstraptoken/v1. ([#102964](https://github.com/kubernetes/kubernetes/pull/102964), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102964", - "pr_number": 102964, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "102965": { - "commit": "dc54636c6d46a9bc5455a2ddef1db8de9a6140d8", - "text": "Updates hostprocess tests to specify user.", - "markdown": "Updates hostprocess tests to specify user. ([#102965](https://github.com/kubernetes/kubernetes/pull/102965), [@jsturtevant](https://github.com/jsturtevant))", - "author": "jsturtevant", - "author_url": "https://github.com/jsturtevant", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102965", - "pr_number": 102965, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "testing", - "windows" - ], - "duplicate": true - }, - "102966": { - "commit": "8e56a3419572b066e11d8ce33eee443ee3317e77", - "text": "The feature Dynamic Kubelet Configuration is deprecated and kubelet will report warning when the flag `--dynamic-config-dir` is used. Feature gate `DynamicKubeletConfig` is disabled out of the box and needs to be explicitly enabled.", - "markdown": "The feature Dynamic Kubelet Configuration is deprecated and kubelet will report warning when the flag `--dynamic-config-dir` is used. Feature gate `DynamicKubeletConfig` is disabled out of the box and needs to be explicitly enabled. ([#102966](https://github.com/kubernetes/kubernetes/pull/102966), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Cloud Provider, Instrumentation and Node]", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102966", - "pr_number": 102966, - "areas": [ - "kubelet", - "provider/gcp" - ], - "kinds": [ - "api-change", - "cleanup", - "deprecation", - "documentation" - ], - "sigs": [ - "cloud-provider", - "instrumentation", - "node" - ], - "duplicate": true, - "duplicate_kind": true - }, - "102970": { - "commit": "a9d752686435f2088e460aaa162ee710d6c6b884", - "text": "Introducing Memory quality of service support with `cgroups v2 (Alpha)`. The `MemoryQoS` feature is now in Alpha. This allows `kubelet` running with `cgroups v2` to set memory QoS at container, pod and QoS level to protect and guarantee better memory quality. This feature can be enabled through feature gate Memory QoS.", - "markdown": "Introducing Memory quality of service support with `cgroups v2 (Alpha)`. The `MemoryQoS` feature is now in Alpha. This allows `kubelet` running with `cgroups v2` to set memory QoS at container, pod and QoS level to protect and guarantee better memory quality. This feature can be enabled through feature gate Memory QoS. ([#102970](https://github.com/kubernetes/kubernetes/pull/102970), [@borgerli](https://github.com/borgerli))", - "author": "borgerli", - "author_url": "https://github.com/borgerli", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102970", - "pr_number": 102970, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "storage" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "103001": { - "commit": "a0f9c8c2778b979cdd112d6802e3f41db19c2bc7", - "text": "The `CSIServiceAccountToken` graduates to Ga and is unconditionally enabled.", - "markdown": "The `CSIServiceAccountToken` graduates to Ga and is unconditionally enabled. ([#103001](https://github.com/kubernetes/kubernetes/pull/103001), [@zshihang](https://github.com/zshihang))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1855-csi-driver-service-account-token", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103001", - "pr_number": 103001, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "auth", - "storage" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "103019": { - "commit": "dd213f070ed1a0f553117762699dd7cf6ef202fb", - "text": "Fixed a bug that scheduler extenders are not called on preemptions.", - "markdown": "Fixed a bug that scheduler extenders are not called on preemptions. ([#103019](https://github.com/kubernetes/kubernetes/pull/103019), [@ordovicia](https://github.com/ordovicia))", - "author": "ordovicia", - "author_url": "https://github.com/ordovicia", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103019", - "pr_number": 103019, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "103057": { - "commit": "119b8fc93e788632ddd9ba61b6861435613b4305", - "text": "GCE Windows clusters have their TCP/IP parameters are set to GCE's recommended values.", - "markdown": "GCE Windows clusters have their TCP/IP parameters are set to GCE's recommended values. ([#103057](https://github.com/kubernetes/kubernetes/pull/103057), [@jeremyje](https://github.com/jeremyje)) [SIG Cloud Provider and Windows]", - "author": "jeremyje", - "author_url": "https://github.com/jeremyje", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103057", - "pr_number": 103057, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "windows" - ], - "duplicate": true - }, - "103063": { - "commit": "3f4c39bbd7b8d1dec2bc88c6f4c8e7ba6ba83169", - "text": "The flag `--experimental-patches` is now deprecated and will be removed in a future release. You can migrate to using the new flag `--patches`. Add a new field `{Init|Join}Configuration.patches.directory` that can be used for the same purpose. For `init` and `join` it is now recommended that you migrate to configure patches via `{Init|Join}Configuration.patches.directory`. For the time being, these flags can be mixed with `--config`, but that might change in the future. On a command line, the last *patches flag takes precedence over previous flags and the value in config. `kubeadm upgrade --patches` will continue to be the only available option, since `upgrade` does not support a configuration file yet.", - "markdown": "The flag `--experimental-patches` is now deprecated and will be removed in a future release. You can migrate to using the new flag `--patches`. Add a new field `{Init|Join}Configuration.patches.directory` that can be used for the same purpose. For `init` and `join` it is now recommended that you migrate to configure patches via `{Init|Join}Configuration.patches.directory`. For the time being, these flags can be mixed with `--config`, but that might change in the future. On a command line, the last *patches flag takes precedence over previous flags and the value in config. `kubeadm upgrade --patches` will continue to be the only available option, since `upgrade` does not support a configuration file yet. ([#103063](https://github.com/kubernetes/kubernetes/pull/103063), [@neolit123](https://github.com/neolit123))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/1739-customization-with-patches", - "type": "KEP" - }, - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/970-kubeadm-config", - "type": "KEP" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103063", - "pr_number": 103063, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "action_required": true - }, - "103082": { - "commit": "385402d5062324e3c078db580a51d96cb0157c53", - "text": "Enforce the `ReadWriteOncePod` PVC access mode during scheduling", - "markdown": "Enforce the `ReadWriteOncePod` PVC access mode during scheduling ([#103082](https://github.com/kubernetes/kubernetes/pull/103082), [@chrishenzie](https://github.com/chrishenzie))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2485-read-write-once-pod-pv-access-mode", - "type": "KEP" - } - ], - "author": "chrishenzie", - "author_url": "https://github.com/chrishenzie", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103082", - "pr_number": 103082, - "areas": [ - "kubectl", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "cli", - "node", - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "103099": { - "commit": "d92f6c424d621e9275fa49cbe57a7d501017ef0d", - "text": "kube-apiserver: the alpha PodSecurity feature can be enabled by passing `--feature-gates=PodSecurity=true`, and enables controlling allowed pods using namespace labels. See https://git.k8s.io/enhancements/keps/sig-auth/2579-psp-replacement for more details.", - "markdown": "Kube-apiserver: the alpha PodSecurity feature can be enabled by passing `--feature-gates=PodSecurity=true`, and enables controlling allowed pods using namespace labels. See https://git.k8s.io/enhancements/keps/sig-auth/2579-psp-replacement for more details. ([#103099](https://github.com/kubernetes/kubernetes/pull/103099), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Instrumentation, Release, Security and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://git.k8s.io/enhancements/keps/sig-auth/2579-psp-replacement", - "type": "external" - } - ], - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103099", - "pr_number": 103099, - "areas": [ - "apiserver", - "dependency", - "release-eng", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "release", - "security", - "testing" - ], - "feature": true, - "duplicate": true - }, - "103129": { - "commit": "92546107652d4df1ef67c095ace446b4bc825a23", - "text": "Featuregate `ServiceLoadBalancerClass` graduates to Beta and is enables by default.", - "markdown": "Featuregate `ServiceLoadBalancerClass` graduates to Beta and is enables by default. ([#103129](https://github.com/kubernetes/kubernetes/pull/103129), [@XudongLiuHarold](https://github.com/XudongLiuHarold))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cloud-provider/1959-service-lb-class-field", - "type": "KEP" - }, - { - "description": "[Issue]", - "url": "https://github.com/kubernetes/enhancements/issues/1959", - "type": "KEP" - } - ], - "author": "XudongLiuHarold", - "author_url": "https://github.com/XudongLiuHarold", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103129", - "pr_number": 103129, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ] - }, - "103133": { - "commit": "51e1969d9c64aaa6a049b3d121107a6f8550a2b3", - "text": "Switch scheduler to generate the merge patch on pod status instead of the full pod", - "markdown": "Switch scheduler to generate the merge patch on pod status instead of the full pod ([#103133](https://github.com/kubernetes/kubernetes/pull/103133), [@marwanad](https://github.com/marwanad)) [SIG Scheduling]", - "author": "marwanad", - "author_url": "https://github.com/marwanad", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103133", - "pr_number": 103133, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "103154": { - "commit": "49ab9ac160bcc34e32d7483d5212a9bad0c089ec", - "text": "Fixed SELinux relabeling of CSI volumes after CSI driver failure.", - "markdown": "Fixed SELinux relabeling of CSI volumes after CSI driver failure. ([#103154](https://github.com/kubernetes/kubernetes/pull/103154), [@jsafrane](https://github.com/jsafrane)) [SIG Node and Storage]", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103154", - "pr_number": 103154, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "storage" - ], - "duplicate": true - }, - "103168": { - "commit": "f0b7ad3ee06c5168fef5fa4f01fe445ece595f89", - "text": "Removed the feature flag for probe-level termination grace period from Kubelet. If a user wants to disable this feature on already created pods, they will have to delete and recreate the pods.", - "markdown": "Removed the feature flag for probe-level termination grace period from Kubelet. If a user wants to disable this feature on already created pods, they will have to delete and recreate the pods. ([#103168](https://github.com/kubernetes/kubernetes/pull/103168), [@raisaat](https://github.com/raisaat)) [SIG Apps and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2238-liveness-probe-grace-period", - "type": "KEP" - } - ], - "author": "raisaat", - "author_url": "https://github.com/raisaat", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103168", - "pr_number": 103168, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "103169": { - "commit": "df2e13376d7e22df391194055a17243774101f06", - "text": "Extended resources defined in `LeastAllocated`, `MostAllocated` and `RequestedToCapacityRatio` plugin argument are bypassed by the scheduler if the incoming Pod doesn't request them in the pod spec.", - "markdown": "Extended resources defined in `LeastAllocated`, `MostAllocated` and `RequestedToCapacityRatio` plugin argument are bypassed by the scheduler if the incoming Pod doesn't request them in the pod spec. ([#103169](https://github.com/kubernetes/kubernetes/pull/103169), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103169", - "pr_number": 103169, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "103176": { - "commit": "c14017b270d21e6a7e79c0b8872a580f43a67220", - "text": "Update golang.org/x/net to v0.0.0-20210520170846-37e1c6afe023", - "markdown": "Update golang.org/x/net to v0.0.0-20210520170846-37e1c6afe023 ([#103176](https://github.com/kubernetes/kubernetes/pull/103176), [@CaoDonghui123](https://github.com/CaoDonghui123)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Node and Storage]", - "author": "CaoDonghui123", - "author_url": "https://github.com/CaoDonghui123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103176", - "pr_number": 103176, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "node", - "storage" - ], - "duplicate": true - }, - "103190": { - "commit": "7ab6c5322cc7e1340cd6ad63db22daa99e3ef513", - "text": "The `ServiceAppProtocol` feature gate has been removed. It reached GA in Kubernetes", - "markdown": "The `ServiceAppProtocol` feature gate has been removed. It reached GA in Kubernetes ([#103190](https://github.com/kubernetes/kubernetes/pull/103190), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103190", - "pr_number": 103190, - "kinds": [ - "api-change", - "cleanup" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "103216": { - "commit": "694d6cd2b9515fb4af5870b394fc60a505ba5c78", - "text": "APIServerTracing now collects spans from etcd client calls, and propagates context to etcd.", - "markdown": "APIServerTracing now collects spans from etcd client calls, and propagates context to etcd. ([#103216](https://github.com/kubernetes/kubernetes/pull/103216), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Cloud Provider and Instrumentation]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/0034-distributed-tracing-kep.md", - "type": "KEP" - } - ], - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103216", - "pr_number": 103216, - "areas": [ - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "103218": { - "commit": "df95052de3c5036e6653eca26e38dc9e79d25455", - "text": "API Server tracing can now trace re-entrant api requests.", - "markdown": "API Server tracing can now trace re-entrant api requests. ([#103218](https://github.com/kubernetes/kubernetes/pull/103218), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/0034-distributed-tracing-kep.md", - "type": "KEP" - } - ], - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103218", - "pr_number": 103218, - "areas": [ - "apiserver", - "cloudprovider", - "dependency", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "103235": { - "commit": "e974bcd471fa562a000ca9780a479c01b0dfe84f", - "text": "Updates the following images to pick up CVE fixes:\n- `debian` to v1.8.0\n- `debian-iptables` to v1.6.5\n- `setcap` to v2.0.3", - "markdown": "Updates the following images to pick up CVE fixes:\n - `debian` to v1.8.0\n - `debian-iptables` to v1.6.5\n - `setcap` to v2.0.3 ([#103235](https://github.com/kubernetes/kubernetes/pull/103235), [@thejoycekung](https://github.com/thejoycekung)) [SIG API Machinery, Release and Testing]", - "author": "thejoycekung", - "author_url": "https://github.com/thejoycekung", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103235", - "pr_number": 103235, - "areas": [ - "dependency", - "release-eng", - "security", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "103238": { - "commit": "657d93c4cc5201a9fc8a5ba1258d05d81ef39cbd", - "text": "Make kubectl command headers default for beta.", - "markdown": "Make kubectl command headers default for beta. ([#103238](https://github.com/kubernetes/kubernetes/pull/103238), [@seans3](https://github.com/seans3)) [SIG CLI]", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103238", - "pr_number": 103238, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "103244": { - "commit": "15222a599fbef90566a4f988e0468e60f82588f5", - "text": "The CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate applying FSGroup to the driver by passing it to `NodeStageVolume` and `NodePublishVolume`, regardless of what other `FSGroup` policies are set, this is an alpha feature.", - "markdown": "The CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate applying FSGroup to the driver by passing it to `NodeStageVolume` and `NodePublishVolume`, regardless of what other `FSGroup` policies are set, this is an alpha feature. ([#103244](https://github.com/kubernetes/kubernetes/pull/103244), [@verult](https://github.com/verult))", - "author": "verult", - "author_url": "https://github.com/verult", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103244", - "pr_number": 103244, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "storage" - ], - "feature": true, - "duplicate": true - }, - "103245": { - "commit": "e375563732a6f5e4a981300f5776b3aa456956a7", - "text": "If someone had the `ProbeTerminationGracePeriod` alpha feature enabled in 1.21, they should update/delete any workloads/pods with probe `terminationGracePeriods` \u003c 1 before upgrading", - "markdown": "If someone had the `ProbeTerminationGracePeriod` alpha feature enabled in 1.21, they should update/delete any workloads/pods with probe `terminationGracePeriods` \u003c 1 before upgrading ([#103245](https://github.com/kubernetes/kubernetes/pull/103245), [@wzshiming](https://github.com/wzshiming))", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103245", - "pr_number": 103245, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "103276": { - "commit": "eaba61b4de9db615c73f868468ae2f816a4fe1c4", - "text": "Add `DataSourceRef` alpha field to PVC spec, which allows contents other than `PVCs` and `VolumeSnapshots` to be data sources.", - "markdown": "Add `DataSourceRef` alpha field to PVC spec, which allows contents other than `PVCs` and `VolumeSnapshots` to be data sources. ([#103276](https://github.com/kubernetes/kubernetes/pull/103276), [@bswartz](https://github.com/bswartz))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1495-volume-populators", - "type": "KEP" - } - ], - "author": "bswartz", - "author_url": "https://github.com/bswartz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103276", - "pr_number": 103276, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "storage" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "103284": { - "commit": "1b60d456c4509ca9f87d7f515fdaa0822b5148e9", - "text": "Fix the code is leaking the defaulting between unrelated pod instances.", - "markdown": "Fix the code is leaking the defaulting between unrelated pod instances. ([#103284](https://github.com/kubernetes/kubernetes/pull/103284), [@kebe7jun](https://github.com/kebe7jun)) [SIG CLI]", - "author": "kebe7jun", - "author_url": "https://github.com/kebe7jun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103284", - "pr_number": 103284, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "103292": { - "commit": "6fc7dd5137956b93843a8cb459e106719e237a57", - "text": "The `kubectl debug` is able to create ephemeral containers in pre-1.22 clusters with the `EphemeralContainers` feature enabled. Note that versions of kubectl prior to 1.22 are unable to create ephemeral containers in clusters version 1.22 and greater due to an API change.", - "markdown": "The `kubectl debug` is able to create ephemeral containers in pre-1.22 clusters with the `EphemeralContainers` feature enabled. Note that versions of kubectl prior to 1.22 are unable to create ephemeral containers in clusters version 1.22 and greater due to an API change. ([#103292](https://github.com/kubernetes/kubernetes/pull/103292), [@verb](https://github.com/verb))", - "author": "verb", - "author_url": "https://github.com/verb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103292", - "pr_number": 103292, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "103306": { - "commit": "43ebff8fa4365df10852f3be04ef1750d63243b4", - "text": "Kube-proxy uses V1 `EndpointSlices`.", - "markdown": "Kube-proxy uses V1 `EndpointSlices`. ([#103306](https://github.com/kubernetes/kubernetes/pull/103306), [@swetharepakula](https://github.com/swetharepakula))", - "author": "swetharepakula", - "author_url": "https://github.com/swetharepakula", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103306", - "pr_number": 103306, - "areas": [ - "ipvs" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "duplicate_kind": true - }, - "103307": { - "commit": "2547c5bb978925aa805253e7a07ca1d00d542523", - "text": "kubelet: the returned value for PodIPs is the same in the Downward API and in the `pod.status.PodIPs` field", - "markdown": "Kubelet: the returned value for PodIPs is the same in the Downward API and in the `pod.status.PodIPs` field ([#103307](https://github.com/kubernetes/kubernetes/pull/103307), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103307", - "pr_number": 103307, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true - }, - "103313": { - "commit": "7eaf2ebab22b2e0cc563fbcc4f8393cae46aaf84", - "text": "kubeadm: fix a bug where `kubeadm join` for control plane nodes would download certificates and keys from the cluster, but would not write publicly readable certificates and public keys with mode `0644` and instead use mode `0600`.", - "markdown": "Kubeadm: fix a bug where `kubeadm join` for control plane nodes would download certificates and keys from the cluster, but would not write publicly readable certificates and public keys with mode `0644` and instead use mode `0600`. ([#103313](https://github.com/kubernetes/kubernetes/pull/103313), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103313", - "pr_number": 103313, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "103318": { - "commit": "0dad7d1c47c41f232b21cdd5c21be6683e545e9d", - "text": "Fix performance regression for update and apply operations on large CRDs.", - "markdown": "Fix performance regression for update and apply operations on large CRDs. ([#103318](https://github.com/kubernetes/kubernetes/pull/103318), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Storage]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103318", - "pr_number": 103318, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "storage" - ], - "duplicate": true, - "duplicate_kind": true - }, - "103326": { - "commit": "b0af328e6eddc2bd645aa2e7339a435705818ddd", - "text": "Mark `net.ipv4.ip_unprivileged_port_start` as safe `sysctl`.", - "markdown": "Mark `net.ipv4.ip_unprivileged_port_start` as safe `sysctl`. ([#103326](https://github.com/kubernetes/kubernetes/pull/103326), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103326", - "pr_number": 103326, - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "network", - "node", - "security" - ], - "feature": true, - "duplicate": true - }, - "103383": { - "commit": "6ed98b60f09fb8219f53f3176219e5bf9c8e57f3", - "text": "Scheduler nows provides an option for plugin developers to move `Pods` to activeQ.", - "markdown": "Scheduler nows provides an option for plugin developers to move `Pods` to activeQ. ([#103383](https://github.com/kubernetes/kubernetes/pull/103383), [@Huang-Wei](https://github.com/Huang-Wei))", - "documentation": [ - { - "description": "[Design doc]", - "url": "https://docs.google.com/document/d/1mdOJN9ceICMTh4sbSZezK5WuzH9OM8ou6IVuyN3CY0U/view", - "type": "external" - } - ], - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103383", - "pr_number": 103383, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true - }, - "103390": { - "commit": "f166221f106a21f6ea56101a0a25faac33455d01", - "text": "Update the system-validators library to v1.5.0. Includes validation for `seccomp` and fixes a stdout/stderr problem in the Docker validator.", - "markdown": "Update the system-validators library to v1.5.0. Includes validation for `seccomp` and fixes a stdout/stderr problem in the Docker validator. ([#103390](https://github.com/kubernetes/kubernetes/pull/103390), [@ironyman](https://github.com/ironyman))", - "author": "ironyman", - "author_url": "https://github.com/ironyman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103390", - "pr_number": 103390, - "areas": [ - "dependency" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "103414": { - "commit": "ac6a1b1821c046d888955fd1cfaeb78dabcc84d7", - "text": "Disruption controller shouldn't error while syncing for unmanaged pods.", - "markdown": "Disruption controller shouldn't error while syncing for unmanaged pods. ([#103414](https://github.com/kubernetes/kubernetes/pull/103414), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Apps and Testing]", - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103414", - "pr_number": 103414, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "103419": { - "commit": "10ba908d747258e6ed288932ce2593fb3936f1d5", - "text": "Upgrades functionality of `kubectl kustomize` as described at\nhttps://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.2.0", - "markdown": "Upgrades functionality of `kubectl kustomize` as described at\n https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.2.0 ([#103419](https://github.com/kubernetes/kubernetes/pull/103419), [@natasha41575](https://github.com/natasha41575)) [SIG CLI]", - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103419", - "pr_number": 103419, - "areas": [ - "dependency", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "103451": { - "commit": "8fb777efb001c364cf64273b9cdfca4652bd347a", - "text": "Features gates `EndpointSliceProxying` \u0026 `WindowsEndpointSliceProxying` graduates to GA and are unconditionally enabled. Kube-proxy will use EndpointSlices for endpoint information.", - "markdown": "Features gates `EndpointSliceProxying` \u0026 `WindowsEndpointSliceProxying` graduates to GA and are unconditionally enabled. Kube-proxy will use EndpointSlices for endpoint information. ([#103451](https://github.com/kubernetes/kubernetes/pull/103451), [@swetharepakula](https://github.com/swetharepakula))", - "author": "swetharepakula", - "author_url": "https://github.com/swetharepakula", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103451", - "pr_number": 103451, - "areas": [ - "ipvs" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "duplicate_kind": true - }, - "103457": { - "commit": "ace5482c9fd707a29f4626e7d78b4041b994b618", - "text": "YAML documents separators (\"---\") can now be followed by whitespace and comments (\"# ....\") on the same line. This fixes a bug where documents starting with a comment after the separator were ignored. Other types of content on the same line will result in an error.", - "markdown": "YAML documents separators (\"---\") can now be followed by whitespace and comments (\"# ....\") on the same line. This fixes a bug where documents starting with a comment after the separator were ignored. Other types of content on the same line will result in an error. ([#103457](https://github.com/kubernetes/kubernetes/pull/103457), [@codearky](https://github.com/codearky)) [SIG API Machinery]", - "author": "codearky", - "author_url": "https://github.com/codearky", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103457", - "pr_number": 103457, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "103462": { - "commit": "28f3f365057f06be12ecb69642b17509aab87269", - "text": "The `ServiceInternalTrafficPolicy` feature graduates to Beta and enable by default, which enables the `internalTrafficPolicy` field of Service by default.", - "markdown": "The `ServiceInternalTrafficPolicy` feature graduates to Beta and enable by default, which enables the `internalTrafficPolicy` field of Service by default. ([#103462](https://github.com/kubernetes/kubernetes/pull/103462), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103462", - "pr_number": 103462, - "areas": [ - "ipvs" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "network" - ], - "feature": true, - "duplicate": true - }, - "103470": { - "commit": "103212febcf3bfbbc4f1ac411a980e39e77dfa76", - "text": "fix: return empty VMAS name if using standalone VM", - "markdown": "Fix: return empty VMAS name if using standalone VM ([#103470](https://github.com/kubernetes/kubernetes/pull/103470), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103470", - "pr_number": 103470, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "103514": { - "commit": "24238425492227fdbb55c687fd4e94c8b58c1ee3", - "text": "The `kubectl get` now truncates multi-line strings to avoid breaking printing", - "markdown": "The `kubectl get` now truncates multi-line strings to avoid breaking printing ([#103514](https://github.com/kubernetes/kubernetes/pull/103514), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103514", - "pr_number": 103514, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true - }, - "103520": { - "commit": "16af282ee71e9c0f2a96d86c334a01ba0d9e1668", - "text": "Endpoints that have more than 1000 endpoints will be truncated and the `endpoints.kubernetes.io/over-capacity` annotation on the Endpoints resource will be set to `truncated`.", - "markdown": "Endpoints that have more than 1000 endpoints will be truncated and the `endpoints.kubernetes.io/over-capacity` annotation on the Endpoints resource will be set to `truncated`. ([#103520](https://github.com/kubernetes/kubernetes/pull/103520), [@swetharepakula](https://github.com/swetharepakula)) [SIG Apps and Network]", - "author": "swetharepakula", - "author_url": "https://github.com/swetharepakula", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103520", - "pr_number": 103520, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "network" - ], - "feature": true, - "duplicate": true - }, - "103524": { - "commit": "006d5b85392c40d21e35eb9b4f09981e7b21f812", - "text": "Updated command descriptions and examples for grammar and punctuation consistency.", - "markdown": "Updated command descriptions and examples for grammar and punctuation consistency. ([#103524](https://github.com/kubernetes/kubernetes/pull/103524), [@bergerhoffer](https://github.com/bergerhoffer)) [SIG Auth and CLI]", - "author": "bergerhoffer", - "author_url": "https://github.com/bergerhoffer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103524", - "pr_number": 103524, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "cli" - ], - "duplicate": true - }, - "103533": { - "commit": "60756214d82dea25174ec84c0cbf69a1783fb84e", - "text": "Leader Migration for controller managers graduated to beta.", - "markdown": "Leader Migration for controller managers graduated to beta. ([#103533](https://github.com/kubernetes/kubernetes/pull/103533), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery and Cloud Provider]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2436", - "type": "KEP" - } - ], - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103533", - "pr_number": 103533, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "103541": { - "commit": "f915aa39e80260e23fdc2453566f4942d2ad96d1", - "text": "Metrics Server will use Addon Manager 1.8.3", - "markdown": "Metrics Server will use Addon Manager 1.8.3 ([#103541](https://github.com/kubernetes/kubernetes/pull/103541), [@jbartosik](https://github.com/jbartosik)) [SIG Cloud Provider and Instrumentation]", - "author": "jbartosik", - "author_url": "https://github.com/jbartosik", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103541", - "pr_number": 103541, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "instrumentation" - ], - "duplicate": true - }, - "103553": { - "commit": "de0670ca0d770a3947af5aaee63ffd5bbf8c8d85", - "text": "NodeSwapEnabled feature flag was renamed to NodeSwap\n\nThe flag was only available in the 1.22.0-beta.1 release, and the new flag should be used going forward.", - "markdown": "NodeSwapEnabled feature flag was renamed to NodeSwap\n \n The flag was only available in the 1.22.0-beta.1 release, and the new flag should be used going forward. ([#103553](https://github.com/kubernetes/kubernetes/pull/103553), [@ehashman](https://github.com/ehashman)) [SIG Node]", - "author": "ehashman", - "author_url": "https://github.com/ehashman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103553", - "pr_number": 103553, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "cleanup" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "action_required": true - }, - "103596": { - "commit": "29652248ebe229a9dc6f64c3e37c9980cd755bfd", - "text": "Promote `EndpointSliceTerminatingCondition` to Beta. This enables the `terminating` and `serving` conditions for EndpointSlice by default.", - "markdown": "Promote `EndpointSliceTerminatingCondition` to Beta. This enables the `terminating` and `serving` conditions for EndpointSlice by default. ([#103596](https://github.com/kubernetes/kubernetes/pull/103596), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103596", - "pr_number": 103596, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "testing" - ], - "feature": true, - "duplicate": true - }, - "103601": { - "commit": "584658a17d958f0b663cb39dec1907cbba641300", - "text": "APIServerTracing now collects spans from outgoing requests to admission webhooks.", - "markdown": "APIServerTracing now collects spans from outgoing requests to admission webhooks. ([#103601](https://github.com/kubernetes/kubernetes/pull/103601), [@dashpole](https://github.com/dashpole)) [SIG API Machinery]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/0034-distributed-tracing-kep.md", - "type": "KEP" - } - ], - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103601", - "pr_number": 103601, - "areas": [ - "apiserver", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "103669": { - "commit": "ab609a418ea804c896cbcba4d93a77e46ca76dff", - "text": "Kubernetes is now built with Golang 1.16.6", - "markdown": "Kubernetes is now built with Golang 1.16.6 ([#103669](https://github.com/kubernetes/kubernetes/pull/103669), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103669", - "pr_number": 103669, - "areas": [ - "dependency", - "provider/gcp", - "release-eng", - "security", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "instrumentation", - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "103703": { - "commit": "7fd021ba6af9f7466acd1cc104e5d46bc7e6cd6f", - "text": "Aggregated roles no longer include write access to `EndpointSlices`. This rolls back part of a change that was introduced earlier in the Kubernetes 1.22 cycle.", - "markdown": "Aggregated roles no longer include write access to `EndpointSlices`. This rolls back part of a change that was introduced earlier in the Kubernetes 1.22 cycle. ([#103703](https://github.com/kubernetes/kubernetes/pull/103703), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103703", - "pr_number": 103703, - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "network" - ], - "duplicate": true - }, - "103704": { - "commit": "e847b849c4d170b872d6020bfc2263d02c05e369", - "text": "The `system:aggregate-to-edit` role no longer includes write access to the Endpoints API. For new Kubernetes 1.22 clusters, the `edit` and `admin` roles will no longer include that access in newly created Kubernetes 1.22 clusters. This will have no affect on existing clusters upgrading to Kubernetes 1.22. To retain write access to Endpoints in the aggregated `edit` and `admin` roles for newly created 1.22 clusters, refer to https://github.com/kubernetes/website/pull/29025.", - "markdown": "The `system:aggregate-to-edit` role no longer includes write access to the Endpoints API. For new Kubernetes 1.22 clusters, the `edit` and `admin` roles will no longer include that access in newly created Kubernetes 1.22 clusters. This will have no affect on existing clusters upgrading to Kubernetes 1.22. To retain write access to Endpoints in the aggregated `edit` and `admin` roles for newly created 1.22 clusters, refer to https://github.com/kubernetes/website/pull/29025. ([#103704](https://github.com/kubernetes/kubernetes/pull/103704), [@robscott](https://github.com/robscott)) [SIG Auth and Network]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103704", - "pr_number": 103704, - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "network" - ], - "duplicate": true - }, - "103747": { - "commit": "7303b2ce4e0de8d97e677eee880fa12b4d4939c1", - "text": "Revert addition of Add `PersistentVolumeClaimDeletePoilcy` to `StatefulSet`API.", - "markdown": "Revert addition of Add `PersistentVolumeClaimDeletePoilcy` to `StatefulSet`API. ([#103747](https://github.com/kubernetes/kubernetes/pull/103747), [@mattcary](https://github.com/mattcary))", - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103747", - "pr_number": 103747, - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "103785": { - "commit": "9f47110aa29094ed2878cf1d85874cb59214664a", - "text": "The reason and message fields for pod status are no longer reset unless the phase also changes.", - "markdown": "The reason and message fields for pod status are no longer reset unless the phase also changes. ([#103785](https://github.com/kubernetes/kubernetes/pull/103785), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103785", - "pr_number": 103785, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "68004": { - "commit": "d8f3794b83c20a0ebafa09a0742a53a76d2786c2", - "text": "Fluentd: isolate logging resources in separate namespace `logging`", - "markdown": "Fluentd: isolate logging resources in separate namespace `logging` ([#68004](https://github.com/kubernetes/kubernetes/pull/68004), [@saravanan30erd](https://github.com/saravanan30erd))", - "author": "saravanan30erd", - "author_url": "https://github.com/saravanan30erd", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/68004", - "pr_number": 68004, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "90368": { - "commit": "e6a8bc9fbe9ce428f6b97630d931ba2b6aa70a91", - "text": "kube-controller-manager: the `--horizontal-pod-autoscaler-use-rest-clients` flag and Heapster support in the horizontal pod autoscaler, deprecated since 1.12, is removed.", - "markdown": "Kube-controller-manager: the `--horizontal-pod-autoscaler-use-rest-clients` flag and Heapster support in the horizontal pod autoscaler, deprecated since 1.12, is removed. ([#90368](https://github.com/kubernetes/kubernetes/pull/90368), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/90368", - "pr_number": 90368, - "areas": [ - "dependency", - "provider/gcp" - ], - "kinds": [ - "api-change", - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "autoscaling", - "cloud-provider", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true - }, - "92372": { - "commit": "77aa52a09ab533947846158eab93bd541de82c7d", - "text": "Treat VSphere \"File (vmdk path here) was not found\" errors as success during volume deletion", - "markdown": "Treat VSphere \"File (vmdk path here) was not found\" errors as success during volume deletion ([#92372](https://github.com/kubernetes/kubernetes/pull/92372), [@breunigs](https://github.com/breunigs)) [SIG Cloud Provider and Storage]", - "documentation": [ - { - "url": "https://code.vmware.com/apis/196/vsphere/doc/vim.VirtualDiskManager.html#deleteVirtualDisk", - "type": "external" - } - ], - "author": "breunigs", - "author_url": "https://github.com/breunigs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92372", - "pr_number": 92372, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "storage" - ], - "duplicate": true - }, - "92739": { - "commit": "ebd61572c579476a6537b9002d90c978f24dda4e", - "text": "An audit log entry will be generated when a `ValidatingAdmissionWebhook` is failing to open.", - "markdown": "An audit log entry will be generated when a `ValidatingAdmissionWebhook` is failing to open. ([#92739](https://github.com/kubernetes/kubernetes/pull/92739), [@cnphil](https://github.com/cnphil))", - "author": "cnphil", - "author_url": "https://github.com/cnphil", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92739", - "pr_number": 92739, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "92863": { - "commit": "ebbe63f116500b5f3c4fcd1dacbc8d7eb1c7e7a2", - "text": "Adds feature gate `KubeletInUserNamespace` which enables support for running kubelet in a user namespace.\n\nThe user namespace has to be created before running kubelet.\nAll the node components such as CRI need to be running in the same user namespace.\n\nWhen the feature gate is enabled, kubelet ignores errors that happens during setting the following sysctl values: `vm.overcommit_memory`, `vm.panic_on_oom`, `kernel.panic`, `kernel.panic_on_oops`, `kernel.keys.root_maxkeys`, `kernel.keys.root_maxbytes`. (These sysctl values for the host, not for the containers)\n\nkubelet also ignores an error during opening `/dev/kmsg`.\nThis feature gate also allows kube-proxy to ignore an error during setting `RLIMIT_NOFILE`.\n\nThis feature gate is especially useful for running Kubernetes inside Rootless Docker/Podman with `kind` or `minikube`.", - "markdown": "Adds feature gate `KubeletInUserNamespace` which enables support for running kubelet in a user namespace.\n \n The user namespace has to be created before running kubelet.\n All the node components such as CRI need to be running in the same user namespace.\n \n When the feature gate is enabled, kubelet ignores errors that happens during setting the following sysctl values: `vm.overcommit_memory`, `vm.panic_on_oom`, `kernel.panic`, `kernel.panic_on_oops`, `kernel.keys.root_maxkeys`, `kernel.keys.root_maxbytes`. (These sysctl values for the host, not for the containers)\n \n kubelet also ignores an error during opening `/dev/kmsg`.\n This feature gate also allows kube-proxy to ignore an error during setting `RLIMIT_NOFILE`.\n \n This feature gate is especially useful for running Kubernetes inside Rootless Docker/Podman with `kind` or `minikube`. ([#92863](https://github.com/kubernetes/kubernetes/pull/92863), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Network, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2033-kubelet-in-userns-aka-rootless", - "type": "KEP" - } - ], - "author": "AkihiroSuda", - "author_url": "https://github.com/AkihiroSuda", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92863", - "pr_number": 92863, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "93260": { - "commit": "4c9e55a44f1d1574bd805de1c37656573320d33e", - "text": "Reduces delay initializing on non-AWS platforms docker runtime.", - "markdown": "Reduces delay initializing on non-AWS platforms docker runtime. ([#93260](https://github.com/kubernetes/kubernetes/pull/93260), [@nckturner](https://github.com/nckturner)) [SIG Cloud Provider]", - "author": "nckturner", - "author_url": "https://github.com/nckturner", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/93260", - "pr_number": 93260, - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "94942": { - "commit": "12eb461acfb2279524d07f5ed95dd20e2e472939", - "text": "Add distributed tracing to the `kube-apiserver`. It is can be enabled with the feature gate `APIServerTracing`", - "markdown": "Add distributed tracing to the `kube-apiserver`. It is can be enabled with the feature gate `APIServerTracing` ([#94942](https://github.com/kubernetes/kubernetes/pull/94942), [@dashpole](https://github.com/dashpole))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/0034-distributed-tracing-kep.md", - "type": "KEP" - } - ], - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94942", - "pr_number": 94942, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kubectl", - "provider/gcp", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "node", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "95286": { - "commit": "21ab9c417562223bfe3329830788bc05ee29fb3f", - "text": "The `PodUnknown` phase is now deprecated.", - "markdown": "The `PodUnknown` phase is now deprecated. ([#95286](https://github.com/kubernetes/kubernetes/pull/95286), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95286", - "pr_number": 95286, - "areas": [ - "kubectl", - "test" - ], - "kinds": [ - "api-change", - "cleanup", - "deprecation" - ], - "sigs": [ - "apps", - "cli", - "network", - "node", - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "95387": { - "commit": "b81a36021f0a6d3d4944c3aba779e0174955515c", - "text": "Audit log files are now created with a mode of 0600. Existing file permissions will not be changed. If you need the audit file to be readable by a non-root user, you can pre-create the file with the desired permissions.", - "markdown": "Audit log files are now created with a mode of 0600. Existing file permissions will not be changed. If you need the audit file to be readable by a non-root user, you can pre-create the file with the desired permissions. ([#95387](https://github.com/kubernetes/kubernetes/pull/95387), [@JAORMX](https://github.com/JAORMX)) [SIG API Machinery and Auth]", - "author": "JAORMX", - "author_url": "https://github.com/JAORMX", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95387", - "pr_number": 95387, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "action_required": true - }, - "95396": { - "commit": "96e4e953978416e164e001abd2c607ce357fdd46", - "text": "New metrics: `apiserver_kube_aggregator_x509_missing_san_total` and `apiserver_webhooks_x509_missing_san_total`. This metric measures a number of connections to webhooks/aggregated API servers that use certificates without Subject Alternative Names. It being non-zero is a warning sign that these connections will stop functioning in the future since Golang is going to deprecate x509 certificate subject Common Names for server hostname verification.", - "markdown": "New metrics: `apiserver_kube_aggregator_x509_missing_san_total` and `apiserver_webhooks_x509_missing_san_total`. This metric measures a number of connections to webhooks/aggregated API servers that use certificates without Subject Alternative Names. It being non-zero is a warning sign that these connections will stop functioning in the future since Golang is going to deprecate x509 certificate subject Common Names for server hostname verification. ([#95396](https://github.com/kubernetes/kubernetes/pull/95396), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Auth and Instrumentation]", - "documentation": [ - { - "description": "[Other doc]", - "url": "https://golang.org/doc/go1.15#commonname", - "type": "external" - }, - { - "description": "[Other doc]", - "url": "https://tools.ietf.org/html/rfc6125#section-6.4.4 RFC making CN-ID fallback optional", - "type": "external" - } - ], - "author": "stlaz", - "author_url": "https://github.com/stlaz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95396", - "pr_number": 95396, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "96084": { - "commit": "0cbf00ad018d5104e438b5693fde435fa06e30c9", - "text": "Secret values are now masked by default in `kubectl diff` output.", - "markdown": "Secret values are now masked by default in `kubectl diff` output. ([#96084](https://github.com/kubernetes/kubernetes/pull/96084), [@loozhengyuan](https://github.com/loozhengyuan))", - "author": "loozhengyuan", - "author_url": "https://github.com/loozhengyuan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96084", - "pr_number": 96084, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "96087": { - "commit": "f7d2ecdc3e52b408833aa6269c57ad9ef408467e", - "text": "Shell completion has been migrated to Cobra's go solution. `kubectl` is now smarter about disabling file completion when it does not apply. Furthermore, completion for the `cp` command does not show all files unless the user has started typing something.", - "markdown": "Shell completion has been migrated to Cobra's go solution. `kubectl` is now smarter about disabling file completion when it does not apply. Furthermore, completion for the `cp` command does not show all files unless the user has started typing something. ([#96087](https://github.com/kubernetes/kubernetes/pull/96087), [@marckhouzam](https://github.com/marckhouzam)) [SIG CLI]", - "author": "marckhouzam", - "author_url": "https://github.com/marckhouzam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96087", - "pr_number": 96087, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "96216": { - "commit": "7563d3092eb28e4d88041f2fba65de0f2a536c49", - "text": "controller-manager: the following flags have no effect and would be removed in v1.24:\n- `--port`\n- `--address`\nThe insecure port flags `--port` may only be set to 0 now.\n\nIn addtion, please be careful that:\n- controller-manager MUST start with `--authorization-kubeconfig` and `--authentication-kubeconfig` correctly set to get authentication/authorization working.\n- liveness/readiness probes to controller-manager MUST use HTTPS now, and the default port has been changed to 10257.\n- Applications that fetch metrics from controller-manager should use a dedicated service account which is allowed to access nonResourceURLs `/metrics`.", - "markdown": "Controller-manager: the following flags have no effect and would be removed in v1.24:\n - `--port`\n - `--address`\n The insecure port flags `--port` may only be set to 0 now.\n \n In addtion, please be careful that:\n - controller-manager MUST start with `--authorization-kubeconfig` and `--authentication-kubeconfig` correctly set to get authentication/authorization working.\n - liveness/readiness probes to controller-manager MUST use HTTPS now, and the default port has been changed to 10257.\n - Applications that fetch metrics from controller-manager should use a dedicated service account which is allowed to access nonResourceURLs `/metrics`. ([#96216](https://github.com/kubernetes/kubernetes/pull/96216), [@knight42](https://github.com/knight42)) [SIG API Machinery, Cloud Provider, Instrumentation and Testing]", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96216", - "pr_number": 96216, - "areas": [ - "e2e-test-framework", - "provider/gcp", - "test" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "instrumentation", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "96702": { - "commit": "c05810cc5d7dc1ca4d67a3557fec8961a21daeb8", - "text": "The `kubectl wait --for=delete` command now ignores the not found error correctly.", - "markdown": "The `kubectl wait --for=delete` command now ignores the not found error correctly. ([#96702](https://github.com/kubernetes/kubernetes/pull/96702), [@lingsamuel](https://github.com/lingsamuel))", - "author": "lingsamuel", - "author_url": "https://github.com/lingsamuel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96702", - "pr_number": 96702, - "areas": [ - "kubectl", - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "96959": { - "commit": "9b7b966508001b2821232c01d06c611ec5a5159e", - "text": "Reorganized iptables rules to reduce rules in `KUBE-SERVICES` and `KUBE-NODEPORTS`.", - "markdown": "Reorganized iptables rules to reduce rules in `KUBE-SERVICES` and `KUBE-NODEPORTS`. ([#96959](https://github.com/kubernetes/kubernetes/pull/96959), [@tssurya](https://github.com/tssurya))", - "author": "tssurya", - "author_url": "https://github.com/tssurya", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96959", - "pr_number": 96959, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "97028": { - "commit": "af60bebde37f23cbced54ac248ba00df2b661c92", - "text": "Adding `--restart-kubelet` flag on E2E Node test suite", - "markdown": "Adding `--restart-kubelet` flag on E2E Node test suite ([#97028](https://github.com/kubernetes/kubernetes/pull/97028), [@knabben](https://github.com/knabben)) [SIG Node and Testing]", - "author": "knabben", - "author_url": "https://github.com/knabben", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97028", - "pr_number": 97028, - "areas": [ - "e2e-test-framework", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "97238": { - "commit": "db3a216fbbe569d113ba84b06c9b7f34cf26a50e", - "text": "Services with `externalTrafficPolicy: Local` now support graceful termination when using\nthe iptables or ipvs mode of kube-proxy with `EndpointSlices` enabled. Specifically, if a\nconnection for such a service arrives on a node when there are no \"Ready\" endpoints\nfor the service, but there is at least one Terminating pod for that service on the node,\nthen kube-proxy will send the traffic to the Terminating pod rather than dropping it. This\npatches up a race condition between when a pod is killed and when the external load\nbalancer notices that it has been killed.", - "markdown": "Services with `externalTrafficPolicy: Local` now support graceful termination when using\n the iptables or ipvs mode of kube-proxy with `EndpointSlices` enabled. Specifically, if a\n connection for such a service arrives on a node when there are no \"Ready\" endpoints\n for the service, but there is at least one Terminating pod for that service on the node,\n then kube-proxy will send the traffic to the Terminating pod rather than dropping it. This\n patches up a race condition between when a pod is killed and when the external load\n balancer notices that it has been killed. ([#97238](https://github.com/kubernetes/kubernetes/pull/97238), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97238", - "pr_number": 97238, - "areas": [ - "ipvs" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "scalability", - "windows" - ], - "feature": true, - "duplicate": true - }, - "97796": { - "commit": "1d38084930b56be9b5830c20bd5b464b1f955047", - "text": "Migrate `proxy/ipvs/proxier.go` logs to structured logging.", - "markdown": "Migrate `proxy/ipvs/proxier.go` logs to structured logging. ([#97796](https://github.com/kubernetes/kubernetes/pull/97796), [@JornShen](https://github.com/JornShen))", - "author": "JornShen", - "author_url": "https://github.com/JornShen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97796", - "pr_number": 97796, - "areas": [ - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "97968": { - "commit": "dd72c4534c112baa6a4d91ee283bc66e6d71fd6b", - "text": "Removed `/sbin/apparmor_parser` requirement for the AppArmor host validation.\nThis allows using AppArmor on distributions which ship the binary in a different path.", - "markdown": "Removed `/sbin/apparmor_parser` requirement for the AppArmor host validation.\n This allows using AppArmor on distributions which ship the binary in a different path. ([#97968](https://github.com/kubernetes/kubernetes/pull/97968), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97968", - "pr_number": 97968, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "97989": { - "commit": "1e05d25890afa9b4547c5585d0978ef56dcf07ca", - "text": "Server Side Apply now treats all \u003cSome\u003eSelector fields as atomic (meaning the entire selector is managed by a single writer and updated together), since they contain interrelated and inseparable fields that do not merge in intuitive ways.", - "markdown": "Server Side Apply now treats all \u003cSome\u003eSelector fields as atomic (meaning the entire selector is managed by a single writer and updated together), since they contain interrelated and inseparable fields that do not merge in intuitive ways. ([#97989](https://github.com/kubernetes/kubernetes/pull/97989), [@Danil-Grigorev](https://github.com/Danil-Grigorev)) [SIG API Machinery]", - "author": "Danil-Grigorev", - "author_url": "https://github.com/Danil-Grigorev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97989", - "pr_number": 97989, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change", - "bug" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "98057": { - "commit": "586ea8a482a2b5c01831b083ff6bd7b25d657f11", - "text": "kubectl get -n openshift-oauth-apiserver po -o jsonpath='{range .items[?(.status.phase==\"Running\")]}{.metadata.name}{\" is Running\\n\"}'\napiserver-7d9cc97649-79c2x is Running\napiserver-7d9cc97649-lgks6 is Running\napiserver-7d9cc97649-qgkxn is Running\n is Running", - "markdown": "Kubectl get -n openshift-oauth-apiserver po -o jsonpath='{range .items[?(.status.phase==\"Running\")]}{.metadata.name}{\" is Running\\n\"}'\n apiserver-7d9cc97649-79c2x is Running\n apiserver-7d9cc97649-lgks6 is Running\n apiserver-7d9cc97649-qgkxn is Running\n is Running ([#98057](https://github.com/kubernetes/kubernetes/pull/98057), [@zerodayz](https://github.com/zerodayz)) [SIG API Machinery]", - "author": "zerodayz", - "author_url": "https://github.com/zerodayz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98057", - "pr_number": 98057, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "98077": { - "commit": "494dc731d73df8ee71888516821b3c7f229ba3bb", - "text": "NetworkPolicy validation framework support for windows.", - "markdown": "NetworkPolicy validation framework support for windows. ([#98077](https://github.com/kubernetes/kubernetes/pull/98077), [@jayunit100](https://github.com/jayunit100))", - "author": "jayunit100", - "author_url": "https://github.com/jayunit100", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98077", - "pr_number": 98077, - "areas": [ - "e2e-test-framework", - "network-policy", - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "network", - "testing" - ], - "feature": true, - "duplicate": true - }, - "98238": { - "commit": "03fa68099e4f2f7fef2e02b65e7e912bff248109", - "text": "Track Job completion through status and Pod finalizers, removing dependency on Pod tombstones.", - "markdown": "Track Job completion through status and Pod finalizers, removing dependency on Pod tombstones. ([#98238](https://github.com/kubernetes/kubernetes/pull/98238), [@alculquicondor](https://github.com/alculquicondor)) [SIG API Machinery, Apps, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "http://git.k8s.io/enhancements/keps/sig-apps/2307-job-tracking-wihout-lingering-pods", - "type": "external" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98238", - "pr_number": 98238, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "98287": { - "commit": "b5243341053cf9f67b1a163ccfea07517755b7a8", - "text": "Migrate `staging/src/k8s.io/apiserver/pkg/registry` logs to structured logging.", - "markdown": "Migrate `staging/src/k8s.io/apiserver/pkg/registry` logs to structured logging. ([#98287](https://github.com/kubernetes/kubernetes/pull/98287), [@lala123912](https://github.com/lala123912))", - "author": "lala123912", - "author_url": "https://github.com/lala123912", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98287", - "pr_number": 98287, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "98306": { - "commit": "d95c46a3e554fc07fe92c695e0b7c8ec0f060878", - "text": "Expose `/debug/flags/v` to allow dynamically setting log level for kube-proxy.", - "markdown": "Expose `/debug/flags/v` to allow dynamically setting log level for kube-proxy. ([#98306](https://github.com/kubernetes/kubernetes/pull/98306), [@borgerli](https://github.com/borgerli)) [SIG Network]", - "author": "borgerli", - "author_url": "https://github.com/borgerli", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98306", - "pr_number": 98306, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "98350": { - "commit": "fadf85d6d03a224ebdd3f213423b57501d886831", - "text": "Aggregate errors when putting vmss.", - "markdown": "Aggregate errors when putting vmss. ([#98350](https://github.com/kubernetes/kubernetes/pull/98350), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98350", - "pr_number": 98350, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "98377": { - "commit": "f1e51ceb3c58da272bc0fc68e200db6fd12121dd", - "text": "Track ownership of scale subresource for all scalable resources i.e. Deployment, ReplicaSet, StatefulSet, ReplicationController, and Custom Resources.", - "markdown": "Track ownership of scale subresource for all scalable resources i.e. Deployment, ReplicaSet, StatefulSet, ReplicationController, and Custom Resources. ([#98377](https://github.com/kubernetes/kubernetes/pull/98377), [@nodo](https://github.com/nodo)) [SIG API Machinery and Testing]", - "author": "nodo", - "author_url": "https://github.com/nodo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98377", - "pr_number": 98377, - "areas": [ - "apiserver", - "code-generation", - "dependency", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "98431": { - "commit": "1affd894cf5357559d64d6da7857b63ed760d3be", - "text": "Fix `kubectl` alpha debug node does not work on tainted(NoExecute) nodes and tolerate everything.", - "markdown": "Fix `kubectl` alpha debug node does not work on tainted(NoExecute) nodes and tolerate everything. ([#98431](https://github.com/kubernetes/kubernetes/pull/98431), [@wawa0210](https://github.com/wawa0210))", - "author": "wawa0210", - "author_url": "https://github.com/wawa0210", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98431", - "pr_number": 98431, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "98817": { - "commit": "b76549665070beb2cc1a0410a6c7f66d8007f76b", - "text": "Added field `.status.uncountedTerminatedPods` to the Job resource. This field is used by the job controller to keep track of finished pods before adding them to the Job status counters. Pods created by the job controller get the finalizer `batch.kubernetes.io/job-tracking`\nJobs that are tracked using this mechanism get the annotation `batch.kubernetes.io/job-tracking`. This is a temporary measure. Two releases after this feature graduates to beta, the annotation won't be added to Jobs anymore.", - "markdown": "Added field `.status.uncountedTerminatedPods` to the Job resource. This field is used by the job controller to keep track of finished pods before adding them to the Job status counters. Pods created by the job controller get the finalizer `batch.kubernetes.io/job-tracking`\n Jobs that are tracked using this mechanism get the annotation `batch.kubernetes.io/job-tracking`. This is a temporary measure. Two releases after this feature graduates to beta, the annotation won't be added to Jobs anymore. ([#98817](https://github.com/kubernetes/kubernetes/pull/98817), [@alculquicondor](https://github.com/alculquicondor))", - "documentation": [ - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98817", - "pr_number": 98817, - "areas": [ - "batch", - "kubectl", - "workload-api/job" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cli" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "98866": { - "commit": "5e06f173fb37484573f94ec5550a40c8aec8c1d6", - "text": "The `TerminationGracePeriodSeconds` on pod specs and container probes should not be negative. Negative values of `TerminationGracePeriodSeconds` will be treated as the value `1s` on the delete path. Immutable field validation will be relaxed in order to update negative values. In a future release, negative values will not be permitted.", - "markdown": "The `TerminationGracePeriodSeconds` on pod specs and container probes should not be negative. Negative values of `TerminationGracePeriodSeconds` will be treated as the value `1s` on the delete path. Immutable field validation will be relaxed in order to update negative values. In a future release, negative values will not be permitted. ([#98866](https://github.com/kubernetes/kubernetes/pull/98866), [@wzshiming](https://github.com/wzshiming))", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98866", - "pr_number": 98866, - "areas": [ - "apiserver", - "kubelet" - ], - "kinds": [ - "api-change", - "bug", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "99023": { - "commit": "e799d7b1912b57ae0e898cb79f93066c0c8f0142", - "text": "Ephemeral containers are now allowed to configure a `securityContext` that differs from that of the Pod. Cluster administrators should ensure that security policy controllers support `EphemeralContainers` before enabling this feature in clusters.", - "markdown": "Ephemeral containers are now allowed to configure a `securityContext` that differs from that of the Pod. Cluster administrators should ensure that security policy controllers support `EphemeralContainers` before enabling this feature in clusters. ([#99023](https://github.com/kubernetes/kubernetes/pull/99023), [@verb](https://github.com/verb))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://git.k8s.io/enhancements/keps/sig-node/277-ephemeral-containers", - "type": "external" - } - ], - "author": "verb", - "author_url": "https://github.com/verb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99023", - "pr_number": 99023, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "99069": { - "commit": "a0e6e491e983ce162645fda7bc36761968afd652", - "text": "Fix raw block mode CSI `NodePublishVolume` stage miss pod info.", - "markdown": "Fix raw block mode CSI `NodePublishVolume` stage miss pod info. ([#99069](https://github.com/kubernetes/kubernetes/pull/99069), [@phantooom](https://github.com/phantooom))", - "author": "phantooom", - "author_url": "https://github.com/phantooom", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99069", - "pr_number": 99069, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "99095": { - "commit": "8b057cdfa4dc29e1c3fd8e34f565ea7701f3d384", - "text": "Prevent Kubelet stuck in `DiskPressure` when `imagefs.minReclaim` is set", - "markdown": "Prevent Kubelet stuck in `DiskPressure` when `imagefs.minReclaim` is set ([#99095](https://github.com/kubernetes/kubernetes/pull/99095), [@maxlaverse](https://github.com/maxlaverse))", - "author": "maxlaverse", - "author_url": "https://github.com/maxlaverse", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99095", - "pr_number": 99095, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "99144": { - "commit": "36a7426aa5a6df97fb65965f294e38ee0696ab31", - "text": "The `HugePageStorageMediumSize` feature graduates to GA and unconditionally enabled. Allowing unconditional usage of multiple sizes huge page resources on a container level.", - "markdown": "The `HugePageStorageMediumSize` feature graduates to GA and unconditionally enabled. Allowing unconditional usage of multiple sizes huge page resources on a container level. ([#99144](https://github.com/kubernetes/kubernetes/pull/99144), [@bart0sh](https://github.com/bart0sh))", - "author": "bart0sh", - "author_url": "https://github.com/bart0sh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99144", - "pr_number": 99144, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "storage" - ], - "feature": true, - "duplicate": true - }, - "99178": { - "commit": "fb3273774ad0738fadd5a18693741d6818187b65", - "text": "Conformance image is now built with Distroless. Users running Conformance testing should rely on container entrypoint instead of manual invocation to `/run_e2e.sh` or `/gorunner`, as they are now deprecated and will be removed in 1.25 release. Invoking `ginkgo` and `e2e.test` are still supported through overriding entrypoint (docker) or defining container `spec.command` (kubernetes).", - "markdown": "Conformance image is now built with Distroless. Users running Conformance testing should rely on container entrypoint instead of manual invocation to `/run_e2e.sh` or `/gorunner`, as they are now deprecated and will be removed in 1.25 release. Invoking `ginkgo` and `e2e.test` are still supported through overriding entrypoint (docker) or defining container `spec.command` (kubernetes). ([#99178](https://github.com/kubernetes/kubernetes/pull/99178), [@wilsonehusin](https://github.com/wilsonehusin))", - "author": "wilsonehusin", - "author_url": "https://github.com/wilsonehusin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99178", - "pr_number": 99178, - "areas": [ - "conformance", - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "release", - "testing" - ], - "duplicate": true, - "action_required": true - }, - "99310": { - "commit": "37da905c0c673c9cb07ca724384d37e725602a0c", - "text": "Exec plugin authors can override default handling of standard input via new `interactiveMode` kubeconfig field.", - "markdown": "Exec plugin authors can override default handling of standard input via new `interactiveMode` kubeconfig field. ([#99310](https://github.com/kubernetes/kubernetes/pull/99310), [@ankeesler](https://github.com/ankeesler))", - "author": "ankeesler", - "author_url": "https://github.com/ankeesler", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99310", - "pr_number": 99310, - "areas": [ - "kubectl", - "test" - ], - "kinds": [ - "api-change", - "bug", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99336": { - "commit": "232d93037cd1bdeb9d9a13831ad8049b7d0cc2e0", - "text": "kubelet: improve the performance when waiting for a synchronization of the node list with the `kube-apiserver`.", - "markdown": "Kubelet: improve the performance when waiting for a synchronization of the node list with the `kube-apiserver`. ([#99336](https://github.com/kubernetes/kubernetes/pull/99336), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99336", - "pr_number": 99336, - "areas": [ - "kubelet" - ], - "kinds": [ - "regression" - ], - "sigs": [ - "node" - ] - }, - "99358": { - "commit": "c94a2f75e652178892670649b2cbfa6990b8e01d", - "text": "The `kube-controller-manager'` sets the upper-bound timeout limit for outgoing requests to 70s. Previously", - "markdown": "The `kube-controller-manager'` sets the upper-bound timeout limit for outgoing requests to 70s. Previously ([#99358](https://github.com/kubernetes/kubernetes/pull/99358), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99358", - "pr_number": 99358, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "99364": { - "commit": "dae03ba9218399d2d7fe100798f332ff2d48381f", - "text": "Adds metrics for the delegated authenticator used by extension APIs that delegate authentication logic to the Kube API server.", - "markdown": "Adds metrics for the delegated authenticator used by extension APIs that delegate authentication logic to the Kube API server. ([#99364](https://github.com/kubernetes/kubernetes/pull/99364), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99364", - "pr_number": 99364, - "areas": [ - "apiserver", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "node" - ], - "feature": true, - "duplicate": true - }, - "99378": { - "commit": "98d20f552bf93e268868c4211c9eed533a508415", - "text": "Add `PersistentVolumeClaimDeletePoilcy` to StatefulSet API.", - "markdown": "Add `PersistentVolumeClaimDeletePoilcy` to StatefulSet API. ([#99378](https://github.com/kubernetes/kubernetes/pull/99378), [@mattcary](https://github.com/mattcary))", - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99378", - "pr_number": 99378, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99494": { - "commit": "659c7e709f3b7f5f2a25e456525cd8747f2e68cc", - "text": "The `CertificateSigningRequest.certificates.k8s.io` API supports an optional expirationSeconds field to allow the client to request a particular duration for the issued certificate. The default signer implementations provided by the Kubernetes controller manager will honor this field as long as it does not exceed the --cluster-signing-duration flag.", - "markdown": "The `CertificateSigningRequest.certificates.k8s.io` API supports an optional expirationSeconds field to allow the client to request a particular duration for the issued certificate. The default signer implementations provided by the Kubernetes controller manager will honor this field as long as it does not exceed the --cluster-signing-duration flag. ([#99494](https://github.com/kubernetes/kubernetes/pull/99494), [@enj](https://github.com/enj))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2784", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://github.com/kubernetes/website/pull/28070", - "type": "external" - } - ], - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99494", - "pr_number": 99494, - "areas": [ - "apiserver", - "kubectl", - "kubelet", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cli", - "instrumentation", - "node", - "security", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99566": { - "commit": "669016067d49110a35769f7db42705cc5f0becff", - "text": "Migrate some log messages to structured logging in `pkg/volume/volume_linux.go`.", - "markdown": "Migrate some log messages to structured logging in `pkg/volume/volume_linux.go`. ([#99566](https://github.com/kubernetes/kubernetes/pull/99566), [@huchengze](https://github.com/huchengze))", - "author": "huchengze", - "author_url": "https://github.com/huchengze", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99566", - "pr_number": 99566, - "kinds": [ - "cleanup" - ], - "sigs": [ - "instrumentation", - "storage" - ], - "duplicate": true - }, - "99576": { - "commit": "6e4e32985a1eef3c5bcc6fff8e10e4bfef770d08", - "text": "Add alpha support for HostProcess containers on Windows", - "markdown": "Add alpha support for HostProcess containers on Windows ([#99576](https://github.com/kubernetes/kubernetes/pull/99576), [@marosset](https://github.com/marosset)) [SIG API Machinery, Apps, Node, Testing and Windows]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/1981-windows-privileged-container-support", - "type": "KEP" - } - ], - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99576", - "pr_number": 99576, - "areas": [ - "kubelet", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "testing", - "windows" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99582": { - "commit": "7df432f78f3d9750045d86793765edf261e86bc2", - "text": "kube-scheduler: a plugin enabled in a v1beta2 configuration file takes precedence over the default configuration for that plugin. This simplifies enabling default plugins with custom configuration without needing to explicitly disable those default plugins.", - "markdown": "Kube-scheduler: a plugin enabled in a v1beta2 configuration file takes precedence over the default configuration for that plugin. This simplifies enabling default plugins with custom configuration without needing to explicitly disable those default plugins. ([#99582](https://github.com/kubernetes/kubernetes/pull/99582), [@chendave](https://github.com/chendave))", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99582", - "pr_number": 99582, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "duplicate_kind": true - }, - "99597": { - "commit": "6cb421487a4ac254ffb8871ae7dbbc350890ccf5", - "text": "The `kube-scheduler` component config `v1beta2` API available\nThree scheduler plugins deprecated (`NodeLabel`, `ServiceAffinity`, `NodePreferAvoidPods`).", - "markdown": "The `kube-scheduler` component config `v1beta2` API available\n Three scheduler plugins deprecated (`NodeLabel`, `ServiceAffinity`, `NodePreferAvoidPods`). ([#99597](https://github.com/kubernetes/kubernetes/pull/99597), [@adtac](https://github.com/adtac))", - "author": "adtac", - "author_url": "https://github.com/adtac", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99597", - "pr_number": 99597, - "kinds": [ - "api-change" - ], - "sigs": [ - "scheduling" - ] - }, - "99647": { - "commit": "d6b408f74890abaa0b5be7172714c7fe89ee7eff", - "text": "kubeadm: remove the automatic detection and matching of cgroup drivers for Docker. For new clusters if you have not configured the cgroup driver explicitly you might get a failure in the `kubelet` on driver mismatch (kubeadm clusters should be using the `systemd` driver). Also remove the `IsDockerSystemdCheck` preflight check (warning) that checks if the Docker cgroup driver is set to `systemd`. Ideally such detection / coordination should be on the side of CRI implementers and the kubelet (tracked [here](https://github.com/kubernetes/kubernetes/issues/99808)). Please see the [page](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) on how to configure cgroup drivers with kubeadm manually", - "markdown": "Kubeadm: remove the automatic detection and matching of cgroup drivers for Docker. For new clusters if you have not configured the cgroup driver explicitly you might get a failure in the `kubelet` on driver mismatch (kubeadm clusters should be using the `systemd` driver). Also remove the `IsDockerSystemdCheck` preflight check (warning) that checks if the Docker cgroup driver is set to `systemd`. Ideally such detection / coordination should be on the side of CRI implementers and the kubelet (tracked [here](https://github.com/kubernetes/kubernetes/issues/99808)). Please see the [page](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) on how to configure cgroup drivers with kubeadm manually ([#99647](https://github.com/kubernetes/kubernetes/pull/99647), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99647", - "pr_number": 99647, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "action_required": true - }, - "99729": { - "commit": "0691157ec4d2386f98cff6dc4e2a02433710218c", - "text": "A `system-cluster-critical` pod should not get a low OOM Score. \n\nAs of now both `system-node-critical` and `system-cluster-critical` pods have -997 OOM score, making them one of the last processes to be OOMKilled. By definition `system-cluster-critical` pods can be scheduled elsewhere if there is a resource crunch on the node where as `system-node-critical` pods cannot be rescheduled. This was the reason for `system-node-critical` to have higher priority value than `system-cluster-critical`. This change allows only `system-node-critical` priority class to have low OOMScore.\n\naction required\nIf the user wants to have the pod to be OOMKilled last and the pod has `system-cluster-critical` priority class, it has to be changed to `system-node-critical` priority class to preserve the existing behavior", - "markdown": "A `system-cluster-critical` pod should not get a low OOM Score. \n \n As of now both `system-node-critical` and `system-cluster-critical` pods have -997 OOM score, making them one of the last processes to be OOMKilled. By definition `system-cluster-critical` pods can be scheduled elsewhere if there is a resource crunch on the node where as `system-node-critical` pods cannot be rescheduled. This was the reason for `system-node-critical` to have higher priority value than `system-cluster-critical`. This change allows only `system-node-critical` priority class to have low OOMScore.\n \n action required\n If the user wants to have the pod to be OOMKilled last and the pod has `system-cluster-critical` priority class, it has to be changed to `system-node-critical` priority class to preserve the existing behavior ([#99729](https://github.com/kubernetes/kubernetes/pull/99729), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99729", - "pr_number": 99729, - "areas": [ - "kubelet" - ], - "kinds": [ - "design", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true, - "action_required": true - }, - "99775": { - "commit": "8fb400c475cefb8a40898d29a086a9b0fc20eb02", - "text": "Exposes `WithCustomRoundTripper` method for specifying a middleware function for custom HTTP behaviour for the delegated auth clients.", - "markdown": "Exposes `WithCustomRoundTripper` method for specifying a middleware function for custom HTTP behaviour for the delegated auth clients. ([#99775](https://github.com/kubernetes/kubernetes/pull/99775), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99775", - "pr_number": 99775, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "99829": { - "commit": "044fd6fdf6a859683b291898f87433115e1ec3c0", - "text": "Replace `go-bindata` with `//go:embed`.", - "markdown": "Replace `go-bindata` with `//go:embed`. ([#99829](https://github.com/kubernetes/kubernetes/pull/99829), [@palnabarun](https://github.com/palnabarun))", - "author": "palnabarun", - "author_url": "https://github.com/palnabarun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99829", - "pr_number": 99829, - "areas": [ - "code-organization", - "conformance", - "dependency", - "e2e-test-framework", - "kubectl", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture", - "cli", - "node", - "testing" - ], - "duplicate": true - }, - "99839": { - "commit": "4fae6ae5d211f1a45998c30d4ec765668a8361aa", - "text": "Fixed `port-forward` memory leak for long-running and heavily used connections.", - "markdown": "Fixed `port-forward` memory leak for long-running and heavily used connections. ([#99839](https://github.com/kubernetes/kubernetes/pull/99839), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99839", - "pr_number": 99839, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "api-machinery", - "node" - ], - "duplicate": true, - "duplicate_kind": true - }, - "99900": { - "commit": "86856e1b817a7df00edd1908fc2e517ccb331549", - "text": "Remove deprecated `--generator` flag from `kubectl autoscale`.", - "markdown": "Remove deprecated `--generator` flag from `kubectl autoscale`. ([#99900](https://github.com/kubernetes/kubernetes/pull/99900), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", - "author": "MadhavJivrajani", - "author_url": "https://github.com/MadhavJivrajani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99900", - "pr_number": 99900, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "99915": { - "commit": "6dbdf144e55ebd957f6571a1f761aa9ca9da15fa", - "text": "Remove the deprecated flag `--generator` from `kubectl create deployment` command.", - "markdown": "Remove the deprecated flag `--generator` from `kubectl create deployment` command. ([#99915](https://github.com/kubernetes/kubernetes/pull/99915), [@BLasan](https://github.com/BLasan))", - "author": "BLasan", - "author_url": "https://github.com/BLasan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99915", - "pr_number": 99915, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "99961": { - "commit": "e1acbbd8fde3505423df6c336a4d852bfc50e49d", - "text": "Kube API server accepts `Impersonate-Uid` header to impersonate a user with a specific UID, in the same way that you can currently use `Impersonate-User`, `Impersonate-Group` and `Impersonate-Extra`.", - "markdown": "Kube API server accepts `Impersonate-Uid` header to impersonate a user with a specific UID, in the same way that you can currently use `Impersonate-User`, `Impersonate-Group` and `Impersonate-Extra`. ([#99961](https://github.com/kubernetes/kubernetes/pull/99961), [@margocrawf](https://github.com/margocrawf))", - "author": "margocrawf", - "author_url": "https://github.com/margocrawf", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99961", - "pr_number": 99961, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "99963": { - "commit": "0172cbf56c1f4ff2b31aa6fbd2202b9fdd222695", - "text": "The job controller removes running pods when the number of completions is achieved.", - "markdown": "The job controller removes running pods when the number of completions is achieved. ([#99963](https://github.com/kubernetes/kubernetes/pull/99963), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99963", - "pr_number": 99963, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - } +{ + "100051": { + "commit": "2b89558a1f8ec3219f0640c1add47d317bb2cb73", + "text": "NONE", + "markdown": "NONE ([#100051](https://github.com/kubernetes/kubernetes/pull/100051), [@tanjing2020](https://github.com/tanjing2020)) [SIG Scheduling]", + "author": "tanjing2020", + "author_url": "https://github.com/tanjing2020", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100051", + "pr_number": 100051, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "do_not_publish": true + }, + "100085": { + "commit": "c6e826a79fb96b1c3cb88363a7d410cbe3c116f8", + "text": "The `DynamicFakeClient` now exposes its tracker via a `Tracker()` function.", + "markdown": "The `DynamicFakeClient` now exposes its tracker via a `Tracker()` function. ([#100085](https://github.com/kubernetes/kubernetes/pull/100085), [@markusthoemmes](https://github.com/markusthoemmes))", + "author": "markusthoemmes", + "author_url": "https://github.com/markusthoemmes", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100085", + "pr_number": 100085, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "100100": { + "commit": "b15859b301781dd32741688d766853884bfe8b89", + "text": "Fix rounding of volume storage requests.", + "markdown": "Fix rounding of volume storage requests. ([#100100](https://github.com/kubernetes/kubernetes/pull/100100), [@maxlaverse](https://github.com/maxlaverse))", + "author": "maxlaverse", + "author_url": "https://github.com/maxlaverse", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100100", + "pr_number": 100100, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "duplicate": true + }, + "100101": { + "commit": "3ccfe94563ab3eb95aacb56b691804fc098bc41c", + "text": "Graceful termination will now be honored when deleting a collection of pods.", + "markdown": "Graceful termination will now be honored when deleting a collection of pods. ([#100101](https://github.com/kubernetes/kubernetes/pull/100101), [@deads2k](https://github.com/deads2k))", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100101", + "pr_number": 100101, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "node", + "testing" + ], + "duplicate": true + }, + "100110": { + "commit": "830055379b811f69f6f4cd8622bdcf8a08307c9a", + "text": "Fix availability set cache in vmss cache", + "markdown": "Fix availability set cache in vmss cache ([#100110](https://github.com/kubernetes/kubernetes/pull/100110), [@CecileRobertMichon](https://github.com/CecileRobertMichon)) [SIG Cloud Provider]", + "author": "CecileRobertMichon", + "author_url": "https://github.com/CecileRobertMichon", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100110", + "pr_number": 100110, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "100136": { + "commit": "a2357f45167c8ff329f513926164bf370b212056", + "text": "Introduce a feature gate `DisableCloudProviders` allowing to disable cloud-provider initialization in KAPI, KCM and kubelet.\n`DisableCloudProviders` FeatureGate is currently in Alpha, which means is currently disabled by default. Once the FeatureGate moves to beta, in-tree cloud providers would be disabled by default, and a user won't be able to specify `--cloud-provider=\u003caws|openstack|azure|gcp|vsphere\u003e` anymore to any of KCM, KAPI or kubelet. Only a '--cloud-provider=external' would be allowed. CCM would have to run out-of-tree with CSI.", + "markdown": "Introduce a feature gate `DisableCloudProviders` allowing to disable cloud-provider initialization in KAPI, KCM and kubelet.\n `DisableCloudProviders` FeatureGate is currently in Alpha, which means is currently disabled by default. Once the FeatureGate moves to beta, in-tree cloud providers would be disabled by default, and a user won't be able to specify `--cloud-provider=\u003caws|openstack|azure|gcp|vsphere\u003e` anymore to any of KCM, KAPI or kubelet. Only a '--cloud-provider=external' would be allowed. CCM would have to run out-of-tree with CSI. ([#100136](https://github.com/kubernetes/kubernetes/pull/100136), [@Danil-Grigorev](https://github.com/Danil-Grigorev))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2443", + "type": "KEP" + } + ], + "author": "Danil-Grigorev", + "author_url": "https://github.com/Danil-Grigorev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100136", + "pr_number": 100136, + "areas": [ + "apiserver", + "cloudprovider", + "dependency", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "instrumentation", + "node" + ], + "feature": true, + "duplicate": true + }, + "100139": { + "commit": "6067d8556a017102fcd92c6a06738524c36847a9", + "text": "The feature gate `SSA` graduated to GA in v1.22 and therefore is unconditionally enabled.", + "markdown": "The feature gate `SSA` graduated to GA in v1.22 and therefore is unconditionally enabled. ([#100139](https://github.com/kubernetes/kubernetes/pull/100139), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100139", + "pr_number": 100139, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "100141": { + "commit": "e5e18d5266413fa56cc1b708f3c9e6772e6690e8", + "text": "Generated OpenAPI now correctly specifies 201 as a possible response code for PATCH operations.", + "markdown": "Generated OpenAPI now correctly specifies 201 as a possible response code for PATCH operations. ([#100141](https://github.com/kubernetes/kubernetes/pull/100141), [@brendandburns](https://github.com/brendandburns))", + "author": "brendandburns", + "author_url": "https://github.com/brendandburns", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100141", + "pr_number": 100141, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "100142": { + "commit": "f5eded9a00064f884e011feddfff6a9a9d6ceaf1", + "text": "kubectl: add `LAST RESTART` column to `kubectl get pods` output.", + "markdown": "Kubectl: add `LAST RESTART` column to `kubectl get pods` output. ([#100142](https://github.com/kubernetes/kubernetes/pull/100142), [@Ethyling](https://github.com/Ethyling))", + "author": "Ethyling", + "author_url": "https://github.com/Ethyling", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100142", + "pr_number": 100142, + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "100148": { + "commit": "d7355278b34f1eb83ae537506de3a816ac925226", + "text": "The new flag `--chunk-size=SIZE` for `kubectl drain` has been promoted to beta, and enabled by default. This flag may be used to alter the number of items or disable this feature when `0` is passed.", + "markdown": "The new flag `--chunk-size=SIZE` for `kubectl drain` has been promoted to beta, and enabled by default. This flag may be used to alter the number of items or disable this feature when `0` is passed. ([#100148](https://github.com/kubernetes/kubernetes/pull/100148), [@KnVerey](https://github.com/KnVerey))", + "author": "KnVerey", + "author_url": "https://github.com/KnVerey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100148", + "pr_number": 100148, + "areas": [ + "kubectl", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "100183": { + "commit": "4afb72a86328c1401e6888916aa6819fb1f23f7f", + "text": "Fixed starting new pods after previous pod timed out unmounting its volumes.", + "markdown": "Fixed starting new pods after previous pod timed out unmounting its volumes. ([#100183](https://github.com/kubernetes/kubernetes/pull/100183), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100183", + "pr_number": 100183, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "storage", + "testing" + ], + "duplicate": true + }, + "100200": { + "commit": "3eac7972552bdf9948b99d687fdf1cd0aa20834a", + "text": "Ensures `ExecProbeTimeout=false` kubelet feature gate with dockershim is taken into account, when the exec probe takes longer than `timeoutSeconds` configuration.", + "markdown": "Ensures `ExecProbeTimeout=false` kubelet feature gate with dockershim is taken into account, when the exec probe takes longer than `timeoutSeconds` configuration. ([#100200](https://github.com/kubernetes/kubernetes/pull/100200), [@jackfrancis](https://github.com/jackfrancis))", + "author": "jackfrancis", + "author_url": "https://github.com/jackfrancis", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100200", + "pr_number": 100200, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "100206": { + "commit": "8d6b3229da97d90e2673b0a32c44bdc26ae7f948", + "text": "Fixes `kubectl drain --dry-run=server`.", + "markdown": "Fixes `kubectl drain --dry-run=server`. ([#100206](https://github.com/kubernetes/kubernetes/pull/100206), [@KnVerey](https://github.com/KnVerey))", + "author": "KnVerey", + "author_url": "https://github.com/KnVerey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100206", + "pr_number": 100206, + "areas": [ + "kubectl", + "test" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "100234": { + "commit": "365ed5c4ad6854d30607eecb146687d579d60fa5", + "text": "kubeadm: Set the `seccompProfile` to `runtime/default` in the `PodSecurityContext` of the control-plane components that run as static Pods.", + "markdown": "Kubeadm: Set the `seccompProfile` to `runtime/default` in the `PodSecurityContext` of the control-plane components that run as static Pods. ([#100234](https://github.com/kubernetes/kubernetes/pull/100234), [@vinayakankugoyal](https://github.com/vinayakankugoyal))", + "documentation": [ + { + "description": "[KEP 2568]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/2568-kubeadm-non-root-control-plane", + "type": "KEP" + }, + { + "description": "[KEP Issue]", + "url": "https://github.com/kubernetes/enhancements/issues/2568", + "type": "KEP" + } + ], + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100234", + "pr_number": 100234, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "100262": { + "commit": "eb326fdc07710ba66d2d90edbceb648e4df4627c", + "text": "NONE", + "markdown": "NONE ([#100262](https://github.com/kubernetes/kubernetes/pull/100262), [@chaitanyabandi](https://github.com/chaitanyabandi)) [SIG Apps and Testing]", + "author": "chaitanyabandi", + "author_url": "https://github.com/chaitanyabandi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100262", + "pr_number": 100262, + "areas": [ + "conformance", + "test" + ], + "kinds": [ + "bug", + "flake" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "100267": { + "commit": "12f846645955c3f28489c5b9251b674642ca5f74", + "text": "Adds two kubemark flags, `--max-pods` and `--extended-resources`.", + "markdown": "Adds two kubemark flags, `--max-pods` and `--extended-resources`. ([#100267](https://github.com/kubernetes/kubernetes/pull/100267), [@Jeffwan](https://github.com/Jeffwan))", + "author": "Jeffwan", + "author_url": "https://github.com/Jeffwan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100267", + "pr_number": 100267, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "scalability" + ], + "feature": true, + "duplicate": true + }, + "100292": { + "commit": "7229ea343dd649f9a6c20fa1fd6b13e602f3f082", + "text": "Updated pause image to version 3.5, which now runs per default as pseudo user and group `65535:65535`. This does not have any effect on remote container runtimes like CRI-O and containerd, which setup the pod sandbox user and group on their own.", + "markdown": "Updated pause image to version 3.5, which now runs per default as pseudo user and group `65535:65535`. This does not have any effect on remote container runtimes like CRI-O and containerd, which setup the pod sandbox user and group on their own. ([#100292](https://github.com/kubernetes/kubernetes/pull/100292), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100292", + "pr_number": 100292, + "areas": [ + "kubeadm", + "kubectl", + "kubelet", + "provider/gcp", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli", + "cloud-provider", + "cluster-lifecycle", + "node", + "testing" + ], + "duplicate": true + }, + "100311": { + "commit": "3074a6e323235e79c61e6c2c3646d922f985dd5a", + "text": "Expose `rest_client_rate_limiter_duration_seconds` metric to component-base to track client side rate limiter latency in seconds. Broken down by verb and URL.", + "markdown": "Expose `rest_client_rate_limiter_duration_seconds` metric to component-base to track client side rate limiter latency in seconds. Broken down by verb and URL. ([#100311](https://github.com/kubernetes/kubernetes/pull/100311), [@IonutBajescu](https://github.com/IonutBajescu)) [SIG API Machinery, Cluster Lifecycle and Instrumentation]", + "author": "IonutBajescu", + "author_url": "https://github.com/IonutBajescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100311", + "pr_number": 100311, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "instrumentation" + ], + "duplicate": true + }, + "100322": { + "commit": "a95fd40203ea774bc8294c9fb93b1864c7d35ca4", + "text": "NONE", + "markdown": "NONE ([#100322](https://github.com/kubernetes/kubernetes/pull/100322), [@minbaev](https://github.com/minbaev)) [SIG Scheduling and Testing]", + "author": "minbaev", + "author_url": "https://github.com/minbaev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100322", + "pr_number": 100322, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "100339": { + "commit": "f962166f30688653e1f901f1b5d9920734a345d5", + "text": "Adds metrics for the delegated authorizer used by extension APIs that delegate authorization logic to the Kube API server.", + "markdown": "Adds metrics for the delegated authorizer used by extension APIs that delegate authorization logic to the Kube API server. ([#100339](https://github.com/kubernetes/kubernetes/pull/100339), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100339", + "pr_number": 100339, + "areas": [ + "apiserver", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "node" + ], + "feature": true, + "duplicate": true + }, + "100350": { + "commit": "bc703278dd4b49267cb130609c22511808707ec9", + "text": "For `kubeadm`: support for custom imagetags for etcd images which contain build metadata, when imagetags are in the form of version_metadata. For instance, if the etcd version is v3.4.13+patch.0, the supported imagetag would be v3.4.13_patch.0", + "markdown": "For `kubeadm`: support for custom imagetags for etcd images which contain build metadata, when imagetags are in the form of version_metadata. For instance, if the etcd version is v3.4.13+patch.0, the supported imagetag would be v3.4.13_patch.0 ([#100350](https://github.com/kubernetes/kubernetes/pull/100350), [@jr0d](https://github.com/jr0d))", + "author": "jr0d", + "author_url": "https://github.com/jr0d", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100350", + "pr_number": 100350, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "100369": { + "commit": "4e7fc6df634ed171c860702730c701c46b9e85fd", + "text": "After DBus restarts, make `GracefulNodeShutdown` work again", + "markdown": "After DBus restarts, make `GracefulNodeShutdown` work again ([#100369](https://github.com/kubernetes/kubernetes/pull/100369), [@wzshiming](https://github.com/wzshiming))", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100369", + "pr_number": 100369, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "100404": { + "commit": "67820edf180f390660ca47553a80a716dc3eeeba", + "text": "Limit vSphere volume name to 63 characters long.", + "markdown": "Limit vSphere volume name to 63 characters long. ([#100404](https://github.com/kubernetes/kubernetes/pull/100404), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100404", + "pr_number": 100404, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "100412": { + "commit": "cbe3ef473ebeda55059b8bf65b88e23077bfb6b8", + "text": "The `ServiceLBNodePortControl` graduates to Beta and is enabled by default.", + "markdown": "The `ServiceLBNodePortControl` graduates to Beta and is enabled by default. ([#100412](https://github.com/kubernetes/kubernetes/pull/100412), [@hanlins](https://github.com/hanlins))", + "author": "hanlins", + "author_url": "https://github.com/hanlins", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100412", + "pr_number": 100412, + "areas": [ + "conformance", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "network", + "testing" + ], + "feature": true, + "duplicate": true + }, + "100435": { + "commit": "02d0878690eb911ccba94d7dedad85abe7a0573e", + "text": "Support correct sorting for cpu, memory, storage, ephemeral-storage, hugepages, and attachable-volumes.", + "markdown": "Support correct sorting for cpu, memory, storage, ephemeral-storage, hugepages, and attachable-volumes. ([#100435](https://github.com/kubernetes/kubernetes/pull/100435), [@lauchokyip](https://github.com/lauchokyip))", + "author": "lauchokyip", + "author_url": "https://github.com/lauchokyip", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100435", + "pr_number": 100435, + "areas": [ + "kubectl", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "100436": { + "commit": "99301e672b78edcd101f79663c233a9395d78d00", + "text": "None.", + "markdown": "None. ([#100436](https://github.com/kubernetes/kubernetes/pull/100436), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Cloud Provider]", + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100436", + "pr_number": 100436, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ], + "do_not_publish": true + }, + "100488": { + "commit": "3a47ddccdfb09e73758cebb2690ad2a014f67e23", + "text": "The etcd client has been updated to 3.5.0; `github.com/golang/protobuf`, `google.golang.org/protobuf`, and `google.golang.org/grpc` have been updated to current versions.", + "markdown": "The etcd client has been updated to 3.5.0; `github.com/golang/protobuf`, `google.golang.org/protobuf`, and `google.golang.org/grpc` have been updated to current versions. ([#100488](https://github.com/kubernetes/kubernetes/pull/100488), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100488", + "pr_number": 100488, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubeadm", + "kubectl", + "kubelet", + "release-eng", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "node", + "storage", + "testing" + ], + "duplicate": true + }, + "100500": { + "commit": "77e73ffbee92c933d9cb94818a31c2e633ea1fe4", + "text": "Fix: using NVMe AWS EBS volumes partitions.", + "markdown": "Fix: using NVMe AWS EBS volumes partitions. ([#100500](https://github.com/kubernetes/kubernetes/pull/100500), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100500", + "pr_number": 100500, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "100565": { + "commit": "003dd87cffec47bdcb425bb6f730ddcfa591c8f3", + "text": "Parsing of cpuset information now properly detects more invalid input such as `1--3` or `10-6`.", + "markdown": "Parsing of cpuset information now properly detects more invalid input such as `1--3` or `10-6`. ([#100565](https://github.com/kubernetes/kubernetes/pull/100565), [@lack](https://github.com/lack))", + "author": "lack", + "author_url": "https://github.com/lack", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100565", + "pr_number": 100565, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "100568": { + "commit": "cdf1b17bb8bcbf8a420d7e0a11336d09b0c37730", + "text": "Added BinaryData description to `kubectl describe` command.", + "markdown": "Added BinaryData description to `kubectl describe` command. ([#100568](https://github.com/kubernetes/kubernetes/pull/100568), [@lauchokyip](https://github.com/lauchokyip))", + "author": "lauchokyip", + "author_url": "https://github.com/lauchokyip", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100568", + "pr_number": 100568, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "100575": { + "commit": "7edb592e3da4d516c2a8920237b3b384346f3d3f", + "text": "None", + "markdown": "None ([#100575](https://github.com/kubernetes/kubernetes/pull/100575), [@ZP-AlwaysWin](https://github.com/ZP-AlwaysWin)) [SIG Apps and Testing]", + "author": "ZP-AlwaysWin", + "author_url": "https://github.com/ZP-AlwaysWin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100575", + "pr_number": 100575, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "100599": { + "commit": "6c97da72f4c8fa3f8a2fe9be1bee9ca4ddb92d4e", + "text": "Fire an event when failing to open `NodePort`.", + "markdown": "Fire an event when failing to open `NodePort`. ([#100599](https://github.com/kubernetes/kubernetes/pull/100599), [@masap](https://github.com/masap))", + "author": "masap", + "author_url": "https://github.com/masap", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100599", + "pr_number": 100599, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "100608": { + "commit": "a49b4a1018c9fd60c9d7ff194a7bba43d8e3cfce", + "text": "Fix runtime container status for `PostStart` hook error.", + "markdown": "Fix runtime container status for `PostStart` hook error. ([#100608](https://github.com/kubernetes/kubernetes/pull/100608), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100608", + "pr_number": 100608, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "100612": { + "commit": "7d176851f2c433f4301a64dfeb3b2626ca9c2f60", + "text": "Upgrading etcd: `kubeadm` upgrade etcd to 3.4.13-3", + "markdown": "Upgrading etcd: `kubeadm` upgrade etcd to 3.4.13-3 ([#100612](https://github.com/kubernetes/kubernetes/pull/100612), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100612", + "pr_number": 100612, + "areas": [ + "kubeadm", + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "cluster-lifecycle" + ], + "duplicate": true + }, + "100635": { + "commit": "5b038e6cff10fd71dca458820401b8319bbc9846", + "text": "Run etcd as non-root on GCE provider", + "markdown": "Run etcd as non-root on GCE provider ([#100635](https://github.com/kubernetes/kubernetes/pull/100635), [@cindy52](https://github.com/cindy52))", + "author": "cindy52", + "author_url": "https://github.com/cindy52", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100635", + "pr_number": 100635, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "100638": { + "commit": "b6ff1370bd2310eab0518d22aaca303df1f17c2f", + "text": "Fixes a data race issue in the priority and fairness API server filter.", + "markdown": "Fixes a data race issue in the priority and fairness API server filter. ([#100638](https://github.com/kubernetes/kubernetes/pull/100638), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100638", + "pr_number": 100638, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "flake" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "100644": { + "commit": "ed3e0d302fb546653b78df583569b0311687a7a8", + "text": "The kubeconfig is now exposed in `the kube-scheduler` framework handle. Out-of-tree plugins can leverage that to build CRD informers easily.", + "markdown": "The kubeconfig is now exposed in `the kube-scheduler` framework handle. Out-of-tree plugins can leverage that to build CRD informers easily. ([#100644](https://github.com/kubernetes/kubernetes/pull/100644), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100644", + "pr_number": 100644, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true + }, + "100651": { + "commit": "46b9ccd0fcc9522342807b16d750b02e34998d64", + "text": "New feature gate `ExpandedDNSConfig` is now available. This feature allows Kubernetes to have expanded DNS configuration.", + "markdown": "New feature gate `ExpandedDNSConfig` is now available. This feature allows Kubernetes to have expanded DNS configuration. ([#100651](https://github.com/kubernetes/kubernetes/pull/100651), [@gjkim42](https://github.com/gjkim42))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2595-expanded-dns-config", + "type": "KEP" + } + ], + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100651", + "pr_number": 100651, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "network", + "node" + ], + "feature": true, + "duplicate": true + }, + "100678": { + "commit": "3294787f572e0fb22ce81c6fba89f631652e13b7", + "text": "Add a new Priority and Fairness rule that exempts all probes (`/readyz`, `/healthz`, `/livez`) to prevent restarting of healthy `kube-apiserver` instance by kubelet.", + "markdown": "Add a new Priority and Fairness rule that exempts all probes (`/readyz`, `/healthz`, `/livez`) to prevent restarting of healthy `kube-apiserver` instance by kubelet. ([#100678](https://github.com/kubernetes/kubernetes/pull/100678), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100678", + "pr_number": 100678, + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "100680": { + "commit": "bb89384f3981bae3f1d507c340593514abc734bc", + "text": "Fixes an overly restrictive conformance test to accept service account tokens signed by an ECDSA key", + "markdown": "Fixes an overly restrictive conformance test to accept service account tokens signed by an ECDSA key ([#100680](https://github.com/kubernetes/kubernetes/pull/100680), [@smira](https://github.com/smira)) [SIG Architecture, Auth and Testing]", + "author": "smira", + "author_url": "https://github.com/smira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100680", + "pr_number": 100680, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "architecture", + "auth", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "100684": { + "commit": "081ac6b5a9004b7c6cfe6a8b8f83e60eca58a010", + "text": "The `Server Side Apply` treats certain structs as atomic. Meaning the entire selector field is managed by a single writer and updated together.", + "markdown": "The `Server Side Apply` treats certain structs as atomic. Meaning the entire selector field is managed by a single writer and updated together. ([#100684](https://github.com/kubernetes/kubernetes/pull/100684), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100684", + "pr_number": 100684, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "node", + "storage" + ], + "duplicate": true, + "duplicate_kind": true + }, + "100686": { + "commit": "43a32c14f5827e42c1449b09aca1ab8624796e54", + "text": "Use default timeout of 10s for Azure ACR credential provider.", + "markdown": "Use default timeout of 10s for Azure ACR credential provider. ([#100686](https://github.com/kubernetes/kubernetes/pull/100686), [@hasheddan](https://github.com/hasheddan)) [SIG Cloud Provider]", + "author": "hasheddan", + "author_url": "https://github.com/hasheddan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100686", + "pr_number": 100686, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "duplicate_kind": true + }, + "100690": { + "commit": "7a0092f96a3cae2263a4744f9e5b966ea56197f3", + "text": "Fix Azure node public IP fetching issues from instance metadata service when the node is part of standard load balancer backend pool.", + "markdown": "Fix Azure node public IP fetching issues from instance metadata service when the node is part of standard load balancer backend pool. ([#100690](https://github.com/kubernetes/kubernetes/pull/100690), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider]", + "author": "feiskyer", + "author_url": "https://github.com/feiskyer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100690", + "pr_number": 100690, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "100694": { + "commit": "0e4545de01f1dc2ccaae01a3405af566a6880f72", + "text": "Applying fix for not deleting existing public IP when a service is deleted in Azure.", + "markdown": "Applying fix for not deleting existing public IP when a service is deleted in Azure. ([#100694](https://github.com/kubernetes/kubernetes/pull/100694), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100694", + "pr_number": 100694, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "100724": { + "commit": "27a625cf8921007eaf115425b6d61587eb253e92", + "text": "The `pod/eviction` subresource now accepts `policy/v1` eviction requests in addition to `policy/v1beta1` eviction requests", + "markdown": "The `pod/eviction` subresource now accepts `policy/v1` eviction requests in addition to `policy/v1beta1` eviction requests ([#100724](https://github.com/kubernetes/kubernetes/pull/100724), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100724", + "pr_number": 100724, + "areas": [ + "apiserver", + "conformance", + "kubectl", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "cli", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "100728": { + "commit": "1cedfef5c60480d24a3282a61847ebfc36e17cbd", + "text": "A value of `Auto` is now a valid for the `service.kubernetes.io/topology-aware-hints` annotation.", + "markdown": "A value of `Auto` is now a valid for the `service.kubernetes.io/topology-aware-hints` annotation. ([#100728](https://github.com/kubernetes/kubernetes/pull/100728), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100728", + "pr_number": 100728, + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "apps", + "instrumentation", + "network" + ], + "duplicate": true, + "duplicate_kind": true + }, + "100731": { + "commit": "a55bd631728590045b51a4f65bba31aed1415571", + "text": "azurefile: Normalize share name to not include the capital letters", + "markdown": "Azurefile: Normalize share name to not include the capital letters ([#100731](https://github.com/kubernetes/kubernetes/pull/100731), [@kassarl](https://github.com/kassarl))", + "author": "kassarl", + "author_url": "https://github.com/kassarl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100731", + "pr_number": 100731, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "duplicate": true + }, + "100754": { + "commit": "77e769b040c6ffa46cb4bfb3b82223e513bec8b1", + "text": "The `WarningHeader` feature is now GA and is unconditionally enabled. The `apiserver_requested_deprecated_apis` metric has graduated to stable status. The `WarningHeader` feature-gate is no longer operative and will be removed in v1.24.", + "markdown": "The `WarningHeader` feature is now GA and is unconditionally enabled. The `apiserver_requested_deprecated_apis` metric has graduated to stable status. The `WarningHeader` feature-gate is no longer operative and will be removed in v1.24. ([#100754](https://github.com/kubernetes/kubernetes/pull/100754), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Instrumentation and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1693-warnings", + "type": "KEP" + } + ], + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100754", + "pr_number": 100754, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "100784": { + "commit": "442b3218b3d3eecdd9e55bffcb2c6b135f3084b7", + "text": "Updates dependency `sigs.k8s.io/structured-merge-diff` to v4.1.1.", + "markdown": "Updates dependency `sigs.k8s.io/structured-merge-diff` to v4.1.1. ([#100784](https://github.com/kubernetes/kubernetes/pull/100784), [@kevindelgado](https://github.com/kevindelgado))", + "author": "kevindelgado", + "author_url": "https://github.com/kevindelgado", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100784", + "pr_number": 100784, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "storage" + ], + "duplicate": true + }, + "100842": { + "commit": "a98d3d0700f6bea05711260d67603accb23ad143", + "text": "Introduce `minReadySeconds` api to the `StatefulSets`.", + "markdown": "Introduce `minReadySeconds` api to the `StatefulSets`. ([#100842](https://github.com/kubernetes/kubernetes/pull/100842), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2607", + "type": "KEP" + }, + { + "description": "[Other doc]", + "url": "https://github.com/kubernetes/website/pull/27683", + "type": "external" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100842", + "pr_number": 100842, + "areas": [ + "apiserver", + "code-generation", + "test" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "duplicate": true + }, + "100861": { + "commit": "ff2a3e1147406035934c2e08240be061fe518617", + "text": "Fix: Bug in `kube-proxy` latency metrics to calculate only the latency value for the `Endpoints` that are created after it starts running. This is needed because all the `Endpoints` objects are processed on restarts, independently when they were.", + "markdown": "Fix: Bug in `kube-proxy` latency metrics to calculate only the latency value for the `Endpoints` that are created after it starts running. This is needed because all the `Endpoints` objects are processed on restarts, independently when they were. ([#100861](https://github.com/kubernetes/kubernetes/pull/100861), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100861", + "pr_number": 100861, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "instrumentation", + "network" + ], + "duplicate": true + }, + "100907": { + "commit": "61641a0640f197e6e67a41b49b49a7b5bd3af6a9", + "text": "For `kubeadm`: add `--validity-period` flag for `kubeadm kubeconfig user` command.", + "markdown": "For `kubeadm`: add `--validity-period` flag for `kubeadm kubeconfig user` command. ([#100907](https://github.com/kubernetes/kubernetes/pull/100907), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100907", + "pr_number": 100907, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "100913": { + "commit": "e1ac51190f6351baeeeb2a079990159ae403d7c6", + "text": "If `kube-proxy` mode is userspace do not enable `EndpointSlices`.", + "markdown": "If `kube-proxy` mode is userspace do not enable `EndpointSlices`. ([#100913](https://github.com/kubernetes/kubernetes/pull/100913), [@JornShen](https://github.com/JornShen))", + "author": "JornShen", + "author_url": "https://github.com/JornShen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100913", + "pr_number": 100913, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "100939": { + "commit": "5c137f1af94e23a71e7a7a3dad037f1193147778", + "text": "Support `FakeClientset` match subresource.", + "markdown": "Support `FakeClientset` match subresource. ([#100939](https://github.com/kubernetes/kubernetes/pull/100939), [@wzshiming](https://github.com/wzshiming))", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100939", + "pr_number": 100939, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "100940": { + "commit": "8da9d2ff55ad98a685978dd690d66dfb4eb9c1fd", + "text": "Fake clients now implement a `FakeClient` interface", + "markdown": "Fake clients now implement a `FakeClient` interface ([#100940](https://github.com/kubernetes/kubernetes/pull/100940), [@markusthoemmes](https://github.com/markusthoemmes)) [SIG API Machinery and Instrumentation]", + "author": "markusthoemmes", + "author_url": "https://github.com/markusthoemmes", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100940", + "pr_number": 100940, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "100942": { + "commit": "cf2c817c5a2e02f65f4d2b31afee2a7aeee8a76a", + "text": "NONE", + "markdown": "NONE ([#100942](https://github.com/kubernetes/kubernetes/pull/100942), [@wangyysde](https://github.com/wangyysde)) [SIG Cluster Lifecycle]", + "author": "wangyysde", + "author_url": "https://github.com/wangyysde", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100942", + "pr_number": 100942, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "100944": { + "commit": "f55426d9d812e5af4a17651085fe6c65e27c52d3", + "text": "Ensure service is deleted when the Azure resource group has been deleted.", + "markdown": "Ensure service is deleted when the Azure resource group has been deleted. ([#100944](https://github.com/kubernetes/kubernetes/pull/100944), [@feiskyer](https://github.com/feiskyer))", + "author": "feiskyer", + "author_url": "https://github.com/feiskyer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100944", + "pr_number": 100944, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "100948": { + "commit": "6349ddbed490633b558ca73ecc4233e0a3f9da8b", + "text": "Avoid caching the Azure VMSS instances whose network profile is nil", + "markdown": "Avoid caching the Azure VMSS instances whose network profile is nil ([#100948](https://github.com/kubernetes/kubernetes/pull/100948), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider]", + "author": "feiskyer", + "author_url": "https://github.com/feiskyer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100948", + "pr_number": 100948, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "100956": { + "commit": "a96000311f5beca111debc8727018e42cbb5dc79", + "text": "Update cri-tools dependency to `v1.21.0`.", + "markdown": "Update cri-tools dependency to `v1.21.0`. ([#100956](https://github.com/kubernetes/kubernetes/pull/100956), [@saschagrunert](https://github.com/saschagrunert))", + "documentation": [ + { + "description": "The release", + "url": "https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.21.0", + "type": "external" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100956", + "pr_number": 100956, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "node" + ], + "duplicate": true + }, + "100959": { + "commit": "dc2020eb9d59a19952cbdabd3d4f819c6f307899", + "text": "Renames the timeout field for the `DelegatingAuthenticationOptions` to `TokenRequestTimeout` and set the timeout only for the token review client. Previously the timeout was also applied to watches making them reconnecting every 10 seconds.", + "markdown": "Renames the timeout field for the `DelegatingAuthenticationOptions` to `TokenRequestTimeout` and set the timeout only for the token review client. Previously the timeout was also applied to watches making them reconnecting every 10 seconds. ([#100959](https://github.com/kubernetes/kubernetes/pull/100959), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100959", + "pr_number": 100959, + "areas": [ + "apiserver", + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider" + ], + "duplicate": true + }, + "100976": { + "commit": "3ed71cf190a3d6a6dcb965cf73224538059e8e5e", + "text": "Base images: Updated to\n- debian-base:buster-v1.6.0\n- debian-iptables:buster-v1.6.0", + "markdown": "Base images: Updated to\n - debian-base:buster-v1.6.0\n - debian-iptables:buster-v1.6.0 ([#100976](https://github.com/kubernetes/kubernetes/pull/100976), [@jindijamie](https://github.com/jindijamie))", + "author": "jindijamie", + "author_url": "https://github.com/jindijamie", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100976", + "pr_number": 100976, + "areas": [ + "release-eng", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "101005": { + "commit": "02c556d4d2719404f334dddc88f862b7da411b9b", + "text": "The `kubectl create service` now respects the `namespace` flag.", + "markdown": "The `kubectl create service` now respects the `namespace` flag. ([#101005](https://github.com/kubernetes/kubernetes/pull/101005), [@zxh326](https://github.com/zxh326))", + "author": "zxh326", + "author_url": "https://github.com/zxh326", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101005", + "pr_number": 101005, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "101025": { + "commit": "3fcd8398c75fd56fb495f9b8ae85ee66f27e119f", + "text": "Fix `EndpointSlice` describe panic when an Endpoint doesn't have zone.", + "markdown": "Fix `EndpointSlice` describe panic when an Endpoint doesn't have zone. ([#101025](https://github.com/kubernetes/kubernetes/pull/101025), [@tnqn](https://github.com/tnqn))", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101025", + "pr_number": 101025, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "101030": { + "commit": "985ac8ae5089d3312640b0fca795469fb8025f2a", + "text": "The pod resource API will provide memory manager metrics in the case when the memory manager feature gate is enabled, and the memory manager policy is static.", + "markdown": "The pod resource API will provide memory manager metrics in the case when the memory manager feature gate is enabled, and the memory manager policy is static. ([#101030](https://github.com/kubernetes/kubernetes/pull/101030), [@cynepco3hahue](https://github.com/cynepco3hahue))", + "author": "cynepco3hahue", + "author_url": "https://github.com/cynepco3hahue", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101030", + "pr_number": 101030, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "101034": { + "commit": "972ee2d425333d0b30f340328ef6c7dc40fd2715", + "text": "The `pods/ephemeralcontainers` API now returns and expects a `Pod` object instead of `EphemeralContainers`. This is incompatible with the previous alpha-level API.", + "markdown": "The `pods/ephemeralcontainers` API now returns and expects a `Pod` object instead of `EphemeralContainers`. This is incompatible with the previous alpha-level API. ([#101034](https://github.com/kubernetes/kubernetes/pull/101034), [@verb](https://github.com/verb)) [SIG Apps, Auth, CLI and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://git.k8s.io/enhancements/keps/sig-node/277-ephemeral-containers", + "type": "external" + } + ], + "author": "verb", + "author_url": "https://github.com/verb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101034", + "pr_number": 101034, + "areas": [ + "kubectl", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "auth", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "101047": { + "commit": "76b09061362c789878fae5e7c3e0f65c82a40f50", + "text": "Fix winkernel kube-proxy to only use dual stack when host and networking supports it", + "markdown": "Fix winkernel kube-proxy to only use dual stack when host and networking supports it ([#101047](https://github.com/kubernetes/kubernetes/pull/101047), [@jsturtevant](https://github.com/jsturtevant)) [SIG Network and Windows]", + "author": "jsturtevant", + "author_url": "https://github.com/jsturtevant", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101047", + "pr_number": 101047, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true + }, + "101048": { + "commit": "677210ba32e8d0181e374728d143bc38b9950e18", + "text": "The `EmptyDir` memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value.", + "markdown": "The `EmptyDir` memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value. ([#101048](https://github.com/kubernetes/kubernetes/pull/101048), [@dims](https://github.com/dims))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2345", + "type": "KEP" + } + ], + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101048", + "pr_number": 101048, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "101057": { + "commit": "43b9491055d59ec66c69ee17ebf566f5ec3fe0d6", + "text": "After the deprecation period,now the Kubelet's `--chaos-chance` flag are removed.", + "markdown": "After the deprecation period,now the Kubelet's `--chaos-chance` flag are removed. ([#101057](https://github.com/kubernetes/kubernetes/pull/101057), [@wangyysde](https://github.com/wangyysde)) [SIG Node]", + "author": "wangyysde", + "author_url": "https://github.com/wangyysde", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101057", + "pr_number": 101057, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "101067": { + "commit": "dfc91819b78e7dbf56194f50eff4c19c9fecd01b", + "text": "Fixed mounting of NFS volumes when IPv6 address is used as a server.", + "markdown": "Fixed mounting of NFS volumes when IPv6 address is used as a server. ([#101067](https://github.com/kubernetes/kubernetes/pull/101067), [@Elbehery](https://github.com/Elbehery)) [SIG Storage]", + "author": "Elbehery", + "author_url": "https://github.com/Elbehery", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101067", + "pr_number": 101067, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "101074": { + "commit": "c246b03d74acf2c420611991e692248e04fc02a8", + "text": "The command`kubectl debug` will now print a warning message when using the `--target` option since many container runtimes do not support this yet.", + "markdown": "The command`kubectl debug` will now print a warning message when using the `--target` option since many container runtimes do not support this yet. ([#101074](https://github.com/kubernetes/kubernetes/pull/101074), [@verb](https://github.com/verb))", + "author": "verb", + "author_url": "https://github.com/verb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101074", + "pr_number": 101074, + "areas": [ + "kubectl" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cli" + ] + }, + "101076": { + "commit": "6cc27991e95a4bd242a9c631d520a909778d05e6", + "text": "Chain the field manager creation calls in `newDefaultFieldManager` to be explicit about the order of operations.", + "markdown": "Chain the field manager creation calls in `newDefaultFieldManager` to be explicit about the order of operations. ([#101076](https://github.com/kubernetes/kubernetes/pull/101076), [@kevindelgado](https://github.com/kevindelgado))", + "author": "kevindelgado", + "author_url": "https://github.com/kevindelgado", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101076", + "pr_number": 101076, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "101080": { + "commit": "fcf9300cc8e6918fce26e9ad1e9f7360a7cbf552", + "text": "The `PodDeletionCost` feature has been promoted to beta, and enabled by default.", + "markdown": "The `PodDeletionCost` feature has been promoted to beta, and enabled by default. ([#101080](https://github.com/kubernetes/kubernetes/pull/101080), [@ahg-g](https://github.com/ahg-g))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2255-pod-cost", + "type": "KEP" + } + ], + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101080", + "pr_number": 101080, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "duplicate_kind": true + }, + "101082": { + "commit": "3a2092345e8aeca767c5a17855c7b43f559ca60b", + "text": "CSI migration of AWS EBS volumes requires AWS EBS CSI driver ver. 1.0 that supports `allowAutoIOPSPerGBIncrease` parameter in StorageClass.", + "markdown": "CSI migration of AWS EBS volumes requires AWS EBS CSI driver ver. 1.0 that supports `allowAutoIOPSPerGBIncrease` parameter in StorageClass. ([#101082](https://github.com/kubernetes/kubernetes/pull/101082), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101082", + "pr_number": 101082, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "action_required": true + }, + "101084": { + "commit": "889f1c395192e98a677ed17a1c12f4bb7e414d36", + "text": "The `EndpointSlice` IP validation now matches `Endpoints` IP validation.", + "markdown": "The `EndpointSlice` IP validation now matches `Endpoints` IP validation. ([#101084](https://github.com/kubernetes/kubernetes/pull/101084), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101084", + "pr_number": 101084, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true, + "duplicate_kind": true + }, + "101093": { + "commit": "7552ca9f56ff644a38ed50924abcc65696418539", + "text": "Fixed a bug where `startupProbe` stopped working after a container's first restart.", + "markdown": "Fixed a bug where `startupProbe` stopped working after a container's first restart. ([#101093](https://github.com/kubernetes/kubernetes/pull/101093), [@wzshiming](https://github.com/wzshiming))", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101093", + "pr_number": 101093, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "101104": { + "commit": "994707099a9136dfab4af38a4b10c202f3a2428f", + "text": "None", + "markdown": "None ([#101104](https://github.com/kubernetes/kubernetes/pull/101104), [@niulechuan](https://github.com/niulechuan)) [SIG Cluster Lifecycle]", + "author": "niulechuan", + "author_url": "https://github.com/niulechuan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101104", + "pr_number": 101104, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "101110": { + "commit": "dd6ee99f62ebd91cf22c03a7f2c2594c1f5807e6", + "text": "kubeadm: enable `--experimental-patches` flag for `kubeadm join phase control-plane-join all` command.", + "markdown": "Kubeadm: enable `--experimental-patches` flag for `kubeadm join phase control-plane-join all` command. ([#101110](https://github.com/kubernetes/kubernetes/pull/101110), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101110", + "pr_number": 101110, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "101120": { + "commit": "743ceb7e73e14f3f4a7dd8ea794952888fbb5689", + "text": "Upgrades functionality of `kubectl kustomize` as described at [kustomize/v4.1.2](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.2)", + "markdown": "Upgrades functionality of `kubectl kustomize` as described at [kustomize/v4.1.2](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.2) ([#101120](https://github.com/kubernetes/kubernetes/pull/101120), [@monopole](https://github.com/monopole))", + "author": "monopole", + "author_url": "https://github.com/monopole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101120", + "pr_number": 101120, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation" + ], + "duplicate": true + }, + "101129": { + "commit": "89db31aadefb5207dbf84e2403495d0da31c7c35", + "text": "kubeadm: remove the deprecated kubeadm API `v1beta1`. Introduce a new kubeadm API `v1beta3`. See [kubeadm/v1beta3](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3) for a list of changes since `v1beta2`. Note that `v1beta2` is not yet deprecated, but will be in a future release.", + "markdown": "Kubeadm: remove the deprecated kubeadm API `v1beta1`. Introduce a new kubeadm API `v1beta3`. See [kubeadm/v1beta3](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3) for a list of changes since `v1beta2`. Note that `v1beta2` is not yet deprecated, but will be in a future release. ([#101129](https://github.com/kubernetes/kubernetes/pull/101129), [@neolit123](https://github.com/neolit123))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/970-kubeadm-config", + "type": "external" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101129", + "pr_number": 101129, + "areas": [ + "kubeadm" + ], + "kinds": [ + "deprecation", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true, + "action_required": true + }, + "101151": { + "commit": "09bd59687500e6b3c53e34cf20ef7727a1886c22", + "text": "New `node-high` priority-level has been added to Suggested API Priority and", + "markdown": "New `node-high` priority-level has been added to Suggested API Priority and ([#101151](https://github.com/kubernetes/kubernetes/pull/101151), [@mborsz](https://github.com/mborsz))", + "author": "mborsz", + "author_url": "https://github.com/mborsz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101151", + "pr_number": 101151, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "101155": { + "commit": "6157361dd758dc5774b7776d897727b53d696d57", + "text": "kube-apiserver: `--service-account-issuer` can be specified multiple times now, to enable non-disruptive change of issuer.", + "markdown": "Kube-apiserver: `--service-account-issuer` can be specified multiple times now, to enable non-disruptive change of issuer. ([#101155](https://github.com/kubernetes/kubernetes/pull/101155), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101155", + "pr_number": 101155, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "101160": { + "commit": "356a64717229e4703a0908eddcabeb7d83de25bf", + "text": "Fix: display of Job completion mode in `kubectl describe`.", + "markdown": "Fix: display of Job completion mode in `kubectl describe`. ([#101160](https://github.com/kubernetes/kubernetes/pull/101160), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101160", + "pr_number": 101160, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "cli" + ], + "duplicate": true + }, + "101171": { + "commit": "3061f6149fd51a05283848868509bcfc6fa06a76", + "text": "The new flag `--chunk-size=SIZE` has been added to `kubectl describe`. This flag may be used to alter the number of items or disable this feature when `0` is passed.", + "markdown": "The new flag `--chunk-size=SIZE` has been added to `kubectl describe`. This flag may be used to alter the number of items or disable this feature when `0` is passed. ([#101171](https://github.com/kubernetes/kubernetes/pull/101171), [@KnVerey](https://github.com/KnVerey))", + "author": "KnVerey", + "author_url": "https://github.com/KnVerey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101171", + "pr_number": 101171, + "areas": [ + "kubectl", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "101181": { + "commit": "898bb9666c866515aa8d51227759ee757a11f262", + "text": "Kubemark's hollow-node will now print flags before starting.", + "markdown": "Kubemark's hollow-node will now print flags before starting. ([#101181](https://github.com/kubernetes/kubernetes/pull/101181), [@mm4tt](https://github.com/mm4tt))", + "author": "mm4tt", + "author_url": "https://github.com/mm4tt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101181", + "pr_number": 101181, + "kinds": [ + "feature" + ], + "sigs": [ + "scalability" + ], + "feature": true + }, + "101186": { + "commit": "6ede5ca95f78478fa627ecfea8136e0dff34436b", + "text": "Fixed generic ephemeal volumes with `OwnerReferencesPermissionEnforcement` admission plugin enabled.", + "markdown": "Fixed generic ephemeal volumes with `OwnerReferencesPermissionEnforcement` admission plugin enabled. ([#101186](https://github.com/kubernetes/kubernetes/pull/101186), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101186", + "pr_number": 101186, + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "auth", + "storage" + ], + "duplicate": true, + "duplicate_kind": true + }, + "101187": { + "commit": "8365e2384cad2491df15b56e8c911e01febb60c8", + "text": "Remove the duplicate packet import.", + "markdown": "Remove the duplicate packet import. ([#101187](https://github.com/kubernetes/kubernetes/pull/101187), [@chuntaochen](https://github.com/chuntaochen))", + "author": "chuntaochen", + "author_url": "https://github.com/chuntaochen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101187", + "pr_number": 101187, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "101203": { + "commit": "c1f6a956fc5843c5716cec767d540c24ac623d01", + "text": "Added privileges for `EndpointSlice` to the default view \u0026 edit RBAC roles.", + "markdown": "Added privileges for `EndpointSlice` to the default view \u0026 edit RBAC roles. ([#101203](https://github.com/kubernetes/kubernetes/pull/101203), [@mtougeron](https://github.com/mtougeron))", + "author": "mtougeron", + "author_url": "https://github.com/mtougeron", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101203", + "pr_number": 101203, + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "security" + ], + "duplicate": true + }, + "101206": { + "commit": "38ff5f6884d1995079429101ee8f6cc60cf38d4b", + "text": "Kubernetes is now built with Golang 1.16.3", + "markdown": "Kubernetes is now built with Golang 1.16.3 ([#101206](https://github.com/kubernetes/kubernetes/pull/101206), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing]", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101206", + "pr_number": 101206, + "areas": [ + "dependency", + "provider/gcp", + "release-eng", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "instrumentation", + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "101208": { + "commit": "f83115f566b1d54c930a89ee7ec5718b9e4899c5", + "text": "Add a namespace label for all `apiserver_admission_* metrics`.\nExpand the histogram range to 0-10s for all `apiserver_admission_*_duration_seconds` metrics.", + "markdown": "Add a namespace label for all `apiserver_admission_* metrics`.\n Expand the histogram range to 0-10s for all `apiserver_admission_*_duration_seconds` metrics. ([#101208](https://github.com/kubernetes/kubernetes/pull/101208), [@voutcn](https://github.com/voutcn))", + "author": "voutcn", + "author_url": "https://github.com/voutcn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101208", + "pr_number": 101208, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "101235": { + "commit": "7ed02d61d1e8907f2a67bb74058c558ebbc1f952", + "text": "Fix: Azure file inline volume namespace issue in CSI migration translation", + "markdown": "Fix: Azure file inline volume namespace issue in CSI migration translation ([#101235](https://github.com/kubernetes/kubernetes/pull/101235), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101235", + "pr_number": 101235, + "areas": [ + "kubelet", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "cloud-provider", + "node", + "storage" + ], + "duplicate": true + }, + "101252": { + "commit": "4f36038c0bc575cd33bc53017ed1e20184efae73", + "text": "The `kubelet` now reports distinguishes log messages about certificate rotation for its client cert and server cert separately to make debugging problems with one or the other easier.", + "markdown": "The `kubelet` now reports distinguishes log messages about certificate rotation for its client cert and server cert separately to make debugging problems with one or the other easier. ([#101252](https://github.com/kubernetes/kubernetes/pull/101252), [@smarterclayton](https://github.com/smarterclayton))", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101252", + "pr_number": 101252, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "duplicate_kind": true + }, + "101256": { + "commit": "7b24c7e4a7a644bd9c4aa173d59fd5bdcddc8652", + "text": "Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. Prepare to increase the length limit to 256 bytes in 1.23 release.", + "markdown": "Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. Prepare to increase the length limit to 256 bytes in 1.23 release. ([#101256](https://github.com/kubernetes/kubernetes/pull/101256), [@Jiawei0227](https://github.com/Jiawei0227))", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101256", + "pr_number": 101256, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "101271": { + "commit": "f631c0e520774494cb37dca709943adaf63b2951", + "text": "Logging for GCE Windows clusters will be more accurate and complete when using Fluent bit.", + "markdown": "Logging for GCE Windows clusters will be more accurate and complete when using Fluent bit. ([#101271](https://github.com/kubernetes/kubernetes/pull/101271), [@jeremyje](https://github.com/jeremyje))", + "author": "jeremyje", + "author_url": "https://github.com/jeremyje", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101271", + "pr_number": 101271, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "windows" + ], + "duplicate": true + }, + "101272": { + "commit": "29a8105cece821e095ef718922115291fc33a800", + "text": "The `CSIMigrationVSphereComplete` feature flag is removed. `InTreePluginvSphereUnregister` will be the way moving forward.", + "markdown": "The `CSIMigrationVSphereComplete` feature flag is removed. `InTreePluginvSphereUnregister` will be the way moving forward. ([#101272](https://github.com/kubernetes/kubernetes/pull/101272), [@Jiawei0227](https://github.com/Jiawei0227))", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101272", + "pr_number": 101272, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "node", + "storage" + ], + "duplicate": true, + "action_required": true + }, + "101292": { + "commit": "548fb4364353d6ec493aed5b13352addbc4f4319", + "text": "Add three metrics to the job controller to monitor if a job works in healthy condition.\n`IndexedJob` has been promoted to Beta.", + "markdown": "Add three metrics to the job controller to monitor if a job works in healthy condition.\n `IndexedJob` has been promoted to Beta. ([#101292](https://github.com/kubernetes/kubernetes/pull/101292), [@AliceZhang2016](https://github.com/AliceZhang2016))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2214-indexed-job", + "type": "KEP" + } + ], + "author": "AliceZhang2016", + "author_url": "https://github.com/AliceZhang2016", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101292", + "pr_number": 101292, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "101294": { + "commit": "3d6e0694bbb2eec588982a16d225a00d248a387c", + "text": "The `SetHostnameAsFQDN` graduates to GA and thus will be unconditionally disabled.", + "markdown": "The `SetHostnameAsFQDN` graduates to GA and thus will be unconditionally disabled. ([#101294](https://github.com/kubernetes/kubernetes/pull/101294), [@javidiaz](https://github.com/javidiaz))", + "author": "javidiaz", + "author_url": "https://github.com/javidiaz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101294", + "pr_number": 101294, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "101296": { + "commit": "687f0aa35b3d703cd30ecf053a8271b23cabc732", + "text": "The API documentation for the DaemonSet's `spec.updateStrategy.rollingUpdate.maxUnavailable` field was corrected to state that the value is rounded up.", + "markdown": "The API documentation for the DaemonSet's `spec.updateStrategy.rollingUpdate.maxUnavailable` field was corrected to state that the value is rounded up. ([#101296](https://github.com/kubernetes/kubernetes/pull/101296), [@Miciah](https://github.com/Miciah))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/1591-daemonset-surge", + "type": "KEP" + } + ], + "author": "Miciah", + "author_url": "https://github.com/Miciah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101296", + "pr_number": 101296, + "areas": [ + "kubectl" + ], + "kinds": [ + "api-change", + "documentation" + ], + "sigs": [ + "apps", + "cli" + ], + "duplicate": true, + "duplicate_kind": true + }, + "101316": { + "commit": "a5be86fee7296f3ce4d7fe572c22fcff9f51ff19", + "text": "Implement `minReadySeconds` for the `StatefulSets`.", + "markdown": "Implement `minReadySeconds` for the `StatefulSets`. ([#101316](https://github.com/kubernetes/kubernetes/pull/101316), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2607", + "type": "KEP" + }, + { + "description": "[Other doc]", + "url": "https://github.com/kubernetes/website/pull/27683", + "type": "external" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101316", + "pr_number": 101316, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "101342": { + "commit": "75d571a10be4db7a4b932b4131e8f1095f6c46bf", + "text": "The `NamespaceDefaultLabelName` is promoted to GA in this release. All Namespace API objects have a `kubernetes.io/metadata.name` label matching their `metadata.name` field to allow selecting any `namespace` by its name using a label selector.", + "markdown": "The `NamespaceDefaultLabelName` is promoted to GA in this release. All Namespace API objects have a `kubernetes.io/metadata.name` label matching their `metadata.name` field to allow selecting any `namespace` by its name using a label selector. ([#101342](https://github.com/kubernetes/kubernetes/pull/101342), [@rosenhouse](https://github.com/rosenhouse))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2162", + "type": "KEP" + } + ], + "author": "rosenhouse", + "author_url": "https://github.com/rosenhouse", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101342", + "pr_number": 101342, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true + }, + "101357": { + "commit": "253685779f15d2bf1ebf8354474761752edd8d6e", + "text": "Update Azure Go SDK version to v53.1.0", + "markdown": "Update Azure Go SDK version to v53.1.0 ([#101357](https://github.com/kubernetes/kubernetes/pull/101357), [@feiskyer](https://github.com/feiskyer)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation]", + "author": "feiskyer", + "author_url": "https://github.com/feiskyer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101357", + "pr_number": 101357, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl", + "provider/azure" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation" + ], + "duplicate": true + }, + "101377": { + "commit": "3dfbcbc878a72a9544af6841315e7dceef9e99fc", + "text": "Fix panic when `kubectl create ingress` has annotation flag and an empty value set.", + "markdown": "Fix panic when `kubectl create ingress` has annotation flag and an empty value set. ([#101377](https://github.com/kubernetes/kubernetes/pull/101377), [@rikatz](https://github.com/rikatz))", + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101377", + "pr_number": 101377, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "101394": { + "commit": "943e0c2f91792d0007b5d390baef09e35b07cf10", + "text": "`Scheduler` now registers event handlers dynamically.", + "markdown": "`Scheduler` now registers event handlers dynamically. ([#101394](https://github.com/kubernetes/kubernetes/pull/101394), [@Huang-Wei](https://github.com/Huang-Wei))", + "documentation": [ + { + "description": "[Design Doc]", + "url": "https://docs.google.com/document/d/1RRlWKiFD77NpJPBOfEpUDsqNxi43wbwExlLO-gh3kfY/edit#", + "type": "external" + } + ], + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101394", + "pr_number": 101394, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true + }, + "101398": { + "commit": "fbaf5ee71bfa0c3ba40b27db9dadccd9a006d4bf", + "text": "Fix: set \"host is down\" as corrupted mount. When SMB server is down, there is no way to terminate pod which is using SMB mount, would get an error.", + "markdown": "Fix: set \"host is down\" as corrupted mount. When SMB server is down, there is no way to terminate pod which is using SMB mount, would get an error. ([#101398](https://github.com/kubernetes/kubernetes/pull/101398), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101398", + "pr_number": 101398, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "duplicate": true + }, + "101411": { + "commit": "14066e9798897ffc92ca7c33892bccd9c9af1dd7", + "text": "Official binaries now include the golang generated build ID `buildid` instead of an empty string.", + "markdown": "Official binaries now include the golang generated build ID `buildid` instead of an empty string. ([#101411](https://github.com/kubernetes/kubernetes/pull/101411), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101411", + "pr_number": 101411, + "kinds": [ + "cleanup" + ], + "sigs": [ + "release" + ] + }, + "101412": { + "commit": "0277cff2682d5a0d3c6fa2109f7f82e8db3f2ed8", + "text": "feat: change parittion style to GPT on Windows", + "markdown": "Feat: change parittion style to GPT on Windows ([#101412](https://github.com/kubernetes/kubernetes/pull/101412), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage and Windows]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101412", + "pr_number": 101412, + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "windows" + ], + "feature": true, + "duplicate": true + }, + "101420": { + "commit": "576f0eb0b4604855678df980cbeb3daeebc2b49b", + "text": "Improve logging of `APIService` availability changes in kube-apiserver.", + "markdown": "Improve logging of `APIService` availability changes in kube-apiserver. ([#101420](https://github.com/kubernetes/kubernetes/pull/101420), [@sttts](https://github.com/sttts))", + "author": "sttts", + "author_url": "https://github.com/sttts", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101420", + "pr_number": 101420, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "101436": { + "commit": "60cdf3a8e0e8a52dc7905547a62aae494e173327", + "text": "Output for `kubectl describe podsecuritypolicy` is now kind specific and cleaner", + "markdown": "Output for `kubectl describe podsecuritypolicy` is now kind specific and cleaner ([#101436](https://github.com/kubernetes/kubernetes/pull/101436), [@KnVerey](https://github.com/KnVerey))", + "author": "KnVerey", + "author_url": "https://github.com/KnVerey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101436", + "pr_number": 101436, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true + }, + "101441": { + "commit": "7f8539ff2075c72f9866cd35da47d1e7b58b8b84", + "text": "Removal of the CSI `NodePublish` path by the kubelet is deprecated. This must be done by the CSI plugin according to the CSI spec.", + "markdown": "Removal of the CSI `NodePublish` path by the kubelet is deprecated. This must be done by the CSI plugin according to the CSI spec. ([#101441](https://github.com/kubernetes/kubernetes/pull/101441), [@dobsonj](https://github.com/dobsonj))", + "documentation": [ + { + "description": "[CSI spec]", + "url": "https://github.com/container-storage-interface/spec/blob/da58351ba3d7baf850877be3425e76ff30645d33/spec.md#nodeunpublishvolume", + "type": "external" + } + ], + "author": "dobsonj", + "author_url": "https://github.com/dobsonj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101441", + "pr_number": 101441, + "kinds": [ + "bug", + "deprecation" + ], + "sigs": [ + "storage" + ], + "duplicate_kind": true + }, + "101449": { + "commit": "e78e692f33226a142551e6b885853daf7e2df9bd", + "text": "kubeadm: allow passing the flag `--log-file` if `--config` is passed. If you wish to log to a file you must also pass `--logtostderr=false` or `--alsologtostderr=true`. Alternatively you can pipe to a file using \"kubeadm ... | tee ...\".", + "markdown": "Kubeadm: allow passing the flag `--log-file` if `--config` is passed. If you wish to log to a file you must also pass `--logtostderr=false` or `--alsologtostderr=true`. Alternatively you can pipe to a file using \"kubeadm ... | tee ...\". ([#101449](https://github.com/kubernetes/kubernetes/pull/101449), [@CaoDonghui123](https://github.com/CaoDonghui123))", + "author": "CaoDonghui123", + "author_url": "https://github.com/CaoDonghui123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101449", + "pr_number": 101449, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "101473": { + "commit": "2f753ec4c826895e4ccd3d6bdda2b1ab777ceeb8", + "text": "[ 22.414721] configure.sh[740]: /home/kubernetes/bin/configure.sh: line 95: python3: command not found", + "markdown": "[ 22.414721] configure.sh[740]: /home/kubernetes/bin/configure.sh: line 95: python3: command not found ([#101473](https://github.com/kubernetes/kubernetes/pull/101473), [@pacoxu](https://github.com/pacoxu)) [SIG Cloud Provider and Testing]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101473", + "pr_number": 101473, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "failing-test" + ], + "sigs": [ + "cloud-provider", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "101477": { + "commit": "eec38190a0cea9154ecd8086d426e3beada9fa10", + "text": "Metrics Server updated to use `0.4.4` image that doesn't depend on deprecated `authorization.k8s.io/v1beta1` subjectaccessreviews API version.", + "markdown": "Metrics Server updated to use `0.4.4` image that doesn't depend on deprecated `authorization.k8s.io/v1beta1` subjectaccessreviews API version. ([#101477](https://github.com/kubernetes/kubernetes/pull/101477), [@x13n](https://github.com/x13n))", + "author": "x13n", + "author_url": "https://github.com/x13n", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101477", + "pr_number": 101477, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "instrumentation" + ], + "duplicate": true + }, + "101496": { + "commit": "49a60be8ab5578097dc2dd2b851213d9f8ca1105", + "text": "The `podAffinity`, `NamespaceSelector` and the associated `CrossNamespaceAffinity` quota scope features graduate to Beta and they are now enabled by default.", + "markdown": "The `podAffinity`, `NamespaceSelector` and the associated `CrossNamespaceAffinity` quota scope features graduate to Beta and they are now enabled by default. ([#101496](https://github.com/kubernetes/kubernetes/pull/101496), [@ahg-g](https://github.com/ahg-g))", + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101496", + "pr_number": 101496, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "101510": { + "commit": "f803daaca74ecd2a9b75d8945a6b5403aa5e47a9", + "text": "Migrate some log messages to structured logging in `pkg/volume/plugins.go`.", + "markdown": "Migrate some log messages to structured logging in `pkg/volume/plugins.go`. ([#101510](https://github.com/kubernetes/kubernetes/pull/101510), [@huchengze](https://github.com/huchengze))", + "author": "huchengze", + "author_url": "https://github.com/huchengze", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101510", + "pr_number": 101510, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "101523": { + "commit": "6c658a86f9e75943024b0b4f792a37938a96a31f", + "text": "Omit comparison with boolean constant", + "markdown": "Omit comparison with boolean constant ([#101523](https://github.com/kubernetes/kubernetes/pull/101523), [@chuntaochen](https://github.com/chuntaochen)) [SIG CLI and Cloud Provider]", + "author": "chuntaochen", + "author_url": "https://github.com/chuntaochen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101523", + "pr_number": 101523, + "areas": [ + "cloudprovider", + "kubectl" + ], + "kinds": [ + "api-change", + "cleanup" + ], + "sigs": [ + "cli", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "101531": { + "commit": "01955b99d7d630b7139cfc33a2e8dd2e80466f90", + "text": "The `VolumeSnapshotDataSource` feature gate that is GA since v1.20 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument.", + "markdown": "The `VolumeSnapshotDataSource` feature gate that is GA since v1.20 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#101531](https://github.com/kubernetes/kubernetes/pull/101531), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Storage]", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101531", + "pr_number": 101531, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "101534": { + "commit": "160cdbbdcaad6be240c5669e621c1353ad445af4", + "text": "Newly provisioned PVs by Azure disk will no longer have the beta `FailureDomain` label. Azure disk volume plugin will start to have GA topology label instead.", + "markdown": "Newly provisioned PVs by Azure disk will no longer have the beta `FailureDomain` label. Azure disk volume plugin will start to have GA topology label instead. ([#101534](https://github.com/kubernetes/kubernetes/pull/101534), [@kassarl](https://github.com/kassarl))", + "author": "kassarl", + "author_url": "https://github.com/kassarl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101534", + "pr_number": 101534, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "101537": { + "commit": "347730b6b49849a3b8501a2b09caf4aec738c9e4", + "text": "kubeadm: Remove the deprecated hyperkube image support in `v1beta3`. This implies removal of `ClusterConfiguration.UseHyperKubeImage.`", + "markdown": "Kubeadm: Remove the deprecated hyperkube image support in `v1beta3`. This implies removal of `ClusterConfiguration.UseHyperKubeImage.` ([#101537](https://github.com/kubernetes/kubernetes/pull/101537), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101537", + "pr_number": 101537, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "101539": { + "commit": "e8306108541e0fe377546b963395a2befcb56c63", + "text": "Node Problem Detector is now available for GCE Windows nodes.", + "markdown": "Node Problem Detector is now available for GCE Windows nodes. ([#101539](https://github.com/kubernetes/kubernetes/pull/101539), [@jeremyje](https://github.com/jeremyje)) [SIG Cloud Provider, Node and Windows]", + "documentation": [ + { + "description": "[Design]", + "url": "https://docs.google.com/document/d/1eiK6KAp_TFR0PgBMu2WCf49fMZcg-HHnBHMc9fALquU/edit", + "type": "external" + }, + { + "description": "[Usage]", + "url": "https://github.com/kubernetes/node-problem-detector#windows", + "type": "external" + }, + { + "description": "[Issue]", + "url": "https://github.com/kubernetes/node-problem-detector/issues/461", + "type": "external" + } + ], + "author": "jeremyje", + "author_url": "https://github.com/jeremyje", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101539", + "pr_number": 101539, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "node", + "windows" + ], + "feature": true, + "duplicate": true + }, + "101542": { + "commit": "ca38d18cbc8b5c8338f4969fda46149a80981049", + "text": "Scheduler's CycleState now embeds internal read/write locking inside its `Read()` and `Write()` functions. Meanwhile, `Lock()` and `Unlock()` function are removed. Scheduler plugin developers are now required to remove `CycleState#Lock()` and `CycleState#Unlock()`. Just simply use `Read()` and `Write()` as they're natively thread-safe now.", + "markdown": "Scheduler's CycleState now embeds internal read/write locking inside its `Read()` and `Write()` functions. Meanwhile, `Lock()` and `Unlock()` function are removed. Scheduler plugin developers are now required to remove `CycleState#Lock()` and `CycleState#Unlock()`. Just simply use `Read()` and `Write()` as they're natively thread-safe now. ([#101542](https://github.com/kubernetes/kubernetes/pull/101542), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101542", + "pr_number": 101542, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "storage" + ], + "duplicate": true, + "action_required": true + }, + "101547": { + "commit": "3f43b1ed840eb2011e6f24a68d4c5cf294b253ae", + "text": "kubeadm: Remove the field `ClusterConfiguration.DNS.Type` in v1beta3 since CoreDNS is the only supported DNS type.", + "markdown": "Kubeadm: Remove the field `ClusterConfiguration.DNS.Type` in v1beta3 since CoreDNS is the only supported DNS type. ([#101547](https://github.com/kubernetes/kubernetes/pull/101547), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101547", + "pr_number": 101547, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "101560": { + "commit": "aab19d42991a0f141b8e94da21e335a65ede3337", + "text": "Fixes a panic in `kube-scheduler` when accessing not existing pods while using `DefaultPreemption` plugin.", + "markdown": "Fixes a panic in `kube-scheduler` when accessing not existing pods while using `DefaultPreemption` plugin. ([#101560](https://github.com/kubernetes/kubernetes/pull/101560), [@yuanchen8911](https://github.com/yuanchen8911))", + "author": "yuanchen8911", + "author_url": "https://github.com/yuanchen8911", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101560", + "pr_number": 101560, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "101578": { + "commit": "545d595674c681e48209c6e1efa8d1371eea5780", + "text": "The deprecated `CRIContainerLogRotation` feature-gate has been removed, since the `CRIContainerLogRotatio`n feature graduated to GA in 1.21 and was unconditionally enabled.", + "markdown": "The deprecated `CRIContainerLogRotation` feature-gate has been removed, since the `CRIContainerLogRotatio`n feature graduated to GA in 1.21 and was unconditionally enabled. ([#101578](https://github.com/kubernetes/kubernetes/pull/101578), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2411-cri-container-log-rotation", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101578", + "pr_number": 101578, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "101579": { + "commit": "ef9d6f8c934ccb89d763e2ff3d459205acbbcda0", + "text": "The deprecated `RootCAConfigMap` feature-gate has been removed, since the `RootCAConfigMap` feature graduated to GA in 1.21 and is unconditionally enabled.", + "markdown": "The deprecated `RootCAConfigMap` feature-gate has been removed, since the `RootCAConfigMap` feature graduated to GA in 1.21 and is unconditionally enabled. ([#101579](https://github.com/kubernetes/kubernetes/pull/101579), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101579", + "pr_number": 101579, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth" + ] + }, + "101581": { + "commit": "de04c067ad6822532f64b75491ce773de7ff7d23", + "text": "The deprecated `runAsGroup` feature-gate has been removed, since the `runAsGroup` feature graduated to GA in 1.21.", + "markdown": "The deprecated `runAsGroup` feature-gate has been removed, since the `runAsGroup` feature graduated to GA in 1.21. ([#101581](https://github.com/kubernetes/kubernetes/pull/101581), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/213-run-as-group", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101581", + "pr_number": 101581, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "node" + ], + "duplicate": true + }, + "101587": { + "commit": "f545438bd347d2ac853b03983576bf0a6f1cc98b", + "text": "Some of the in-tree storage drivers indicate support for the `MetricsProvider` interface, but fail to configure this for BlockMode volumes. With a recent change, `Kubelet` will call `GetMetrics()` for BlockMode volumes, and the in-tree drivers that miss the support cause a Go panic. Now the in-tree storage drivers that support BlockMode volumes, will return the Capacity of the volume in the `GetMetrics()` call.", + "markdown": "Some of the in-tree storage drivers indicate support for the `MetricsProvider` interface, but fail to configure this for BlockMode volumes. With a recent change, `Kubelet` will call `GetMetrics()` for BlockMode volumes, and the in-tree drivers that miss the support cause a Go panic. Now the in-tree storage drivers that support BlockMode volumes, will return the Capacity of the volume in the `GetMetrics()` call. ([#101587](https://github.com/kubernetes/kubernetes/pull/101587), [@nixpanic](https://github.com/nixpanic))", + "author": "nixpanic", + "author_url": "https://github.com/nixpanic", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101587", + "pr_number": 101587, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "instrumentation", + "node", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "101589": { + "commit": "f039f94a6fef5302db5593ef516d793eeb380755", + "text": "Resolves an issue with the \"ServiceAccountIssuerDiscovery should support OIDC discovery\" conformance test failing on clusters which are configured with issuers outside the cluster", + "markdown": "Resolves an issue with the \"ServiceAccountIssuerDiscovery should support OIDC discovery\" conformance test failing on clusters which are configured with issuers outside the cluster ([#101589](https://github.com/kubernetes/kubernetes/pull/101589), [@mtaufen](https://github.com/mtaufen)) [SIG Auth and Testing]", + "author": "mtaufen", + "author_url": "https://github.com/mtaufen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101589", + "pr_number": 101589, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "auth", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "101592": { + "commit": "b18aea1499b5c109cae56a32006ae07097937b19", + "text": "Register/Deregister Targets in chunks for AWS TargetGroup", + "markdown": "Register/Deregister Targets in chunks for AWS TargetGroup ([#101592](https://github.com/kubernetes/kubernetes/pull/101592), [@M00nF1sh](https://github.com/M00nF1sh)) [SIG Cloud Provider]", + "author": "M00nF1sh", + "author_url": "https://github.com/M00nF1sh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101592", + "pr_number": 101592, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "101600": { + "commit": "e52b7be7d719673a1a5ae28ad3bb0d6db58d35ec", + "text": "kubeadm: the flag `--cri-socket` is no longer allowed in a mixture with the flag `--config`. Please use the kubeadm configuration for setting the CRI socket for a node using `{Init|Join}Configuration.nodeRegistration.criSocket`.", + "markdown": "Kubeadm: the flag `--cri-socket` is no longer allowed in a mixture with the flag `--config`. Please use the kubeadm configuration for setting the CRI socket for a node using `{Init|Join}Configuration.nodeRegistration.criSocket`. ([#101600](https://github.com/kubernetes/kubernetes/pull/101600), [@KofClubs](https://github.com/KofClubs))", + "author": "KofClubs", + "author_url": "https://github.com/KofClubs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101600", + "pr_number": 101600, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "action_required": true + }, + "101647": { + "commit": "c8abbc0edb3d22ebbcdfd24709b0e94a0ac6217d", + "text": "Default `StreamingProxyRedirects` to disabled. If there is a \u003e= 2 version skew between master and nodes, and the old nodes were enabling `--redirect-container-streaming`, this will break them. In this case, the `StreamingProxyRedirects` can still be manually enabled.", + "markdown": "Default `StreamingProxyRedirects` to disabled. If there is a \u003e= 2 version skew between master and nodes, and the old nodes were enabling `--redirect-container-streaming`, this will break them. In this case, the `StreamingProxyRedirects` can still be manually enabled. ([#101647](https://github.com/kubernetes/kubernetes/pull/101647), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/1558-streaming-proxy-redirects/README.md", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101647", + "pr_number": 101647, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "node" + ], + "duplicate": true, + "action_required": true + }, + "101652": { + "commit": "f94e8ba908e42edab4b16970a0397e6ae2c3ad31", + "text": "Added jitter factor to lease controller that better smears load on kube-apiserver over time.", + "markdown": "Added jitter factor to lease controller that better smears load on kube-apiserver over time. ([#101652](https://github.com/kubernetes/kubernetes/pull/101652), [@marseel](https://github.com/marseel)) [SIG API Machinery and Scalability]", + "author": "marseel", + "author_url": "https://github.com/marseel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101652", + "pr_number": 101652, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "scalability" + ], + "duplicate": true + }, + "101669": { + "commit": "8634bc61c635717dec93128f8908ffd20774e66f", + "text": "Fix `kubectl set env` or `resources` not working for initcontainers.", + "markdown": "Fix `kubectl set env` or `resources` not working for initcontainers. ([#101669](https://github.com/kubernetes/kubernetes/pull/101669), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101669", + "pr_number": 101669, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "101685": { + "commit": "85674ae53d3261d09c5a0b093d801b137db010b2", + "text": "Intree volume plugin scaleIO support has been completely removed from Kubernetes.", + "markdown": "Intree volume plugin scaleIO support has been completely removed from Kubernetes. ([#101685](https://github.com/kubernetes/kubernetes/pull/101685), [@Jiawei0227](https://github.com/Jiawei0227))", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101685", + "pr_number": 101685, + "areas": [ + "dependency", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "node", + "storage" + ], + "duplicate": true, + "action_required": true + }, + "101688": { + "commit": "c115435adc3ea5f367b4844aef1454a4019c9e82", + "text": "Warnings for the use of deprecated and known-bad values in pod specs are now sent.", + "markdown": "Warnings for the use of deprecated and known-bad values in pod specs are now sent. ([#101688](https://github.com/kubernetes/kubernetes/pull/101688), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101688", + "pr_number": 101688, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true + }, + "101709": { + "commit": "413ac5db56c0b9171155566d3d034370b89ff2c7", + "text": "The conformance tests:\n- Services should serve multiport endpoints from pods\n- Services should serve a basic endpoint from pods\nwere only validating the API objects, not performing any validation on the actual Services implementation.\nThose tests now validate that the Services under test are able to forward traffic to the endpoints.", + "markdown": "The conformance tests:\n - Services should serve multiport endpoints from pods\n - Services should serve a basic endpoint from pods\n were only validating the API objects, not performing any validation on the actual Services implementation.\n Those tests now validate that the Services under test are able to forward traffic to the endpoints. ([#101709](https://github.com/kubernetes/kubernetes/pull/101709), [@aojea](https://github.com/aojea)) [SIG Network and Testing]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101709", + "pr_number": 101709, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true + }, + "101711": { + "commit": "21f41b8e82b248c1a99cfc2e9af2c0464916ca78", + "text": "The `IngressClassNamespacedParams` feature gate has graduated to beta and is enabled by default. This means IngressClass resource will now have two new fields - `spec.paramters.namespace` and `spec.parameters.scope`.", + "markdown": "The `IngressClassNamespacedParams` feature gate has graduated to beta and is enabled by default. This means IngressClass resource will now have two new fields - `spec.paramters.namespace` and `spec.parameters.scope`. ([#101711](https://github.com/kubernetes/kubernetes/pull/101711), [@hbagdi](https://github.com/hbagdi))", + "author": "hbagdi", + "author_url": "https://github.com/hbagdi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101711", + "pr_number": 101711, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "101712": { + "commit": "3e588be76368811b5e6fe9a5f815cdc798c4f054", + "text": "When `DisableAcceleratorUsageMetrics` is set, do not collect accelerator metrics using cAdvisor.", + "markdown": "When `DisableAcceleratorUsageMetrics` is set, do not collect accelerator metrics using cAdvisor. ([#101712](https://github.com/kubernetes/kubernetes/pull/101712), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Instrumentation and Node]", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101712", + "pr_number": 101712, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "instrumentation", + "node" + ], + "duplicate": true, + "duplicate_kind": true + }, + "101737": { + "commit": "a5cf298a95b4a60789a6ba1caab931bdc980aa2d", + "text": "Fixed false-positive uncertain volume attachments, which led to unexpected detachment of CSI migrated volumes", + "markdown": "Fixed false-positive uncertain volume attachments, which led to unexpected detachment of CSI migrated volumes ([#101737](https://github.com/kubernetes/kubernetes/pull/101737), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps and Storage]", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101737", + "pr_number": 101737, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "storage" + ], + "duplicate": true + }, + "101739": { + "commit": "e6f6f4b40c4ec3a9019ab5181d6020ecc1e13742", + "text": "fix: avoid nil-pointer panic when checking the frontend IP configuration", + "markdown": "Fix: avoid nil-pointer panic when checking the frontend IP configuration ([#101739](https://github.com/kubernetes/kubernetes/pull/101739), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101739", + "pr_number": 101739, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "101742": { + "commit": "d8f9e4587ac1265efd723bce74ae6a39576f2d58", + "text": "Enable `MaxSurge` for `DaemonSet` by default.", + "markdown": "Enable `MaxSurge` for `DaemonSet` by default. ([#101742](https://github.com/kubernetes/kubernetes/pull/101742), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101742", + "pr_number": 101742, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "101747": { + "commit": "a98c559ca4b6946bdf15fcbad7d5c450283c2f9f", + "text": "GCE Windows will no longer install Docker on containerd nodes.", + "markdown": "GCE Windows will no longer install Docker on containerd nodes. ([#101747](https://github.com/kubernetes/kubernetes/pull/101747), [@jeremyje](https://github.com/jeremyje)) [SIG Cloud Provider and Windows]", + "author": "jeremyje", + "author_url": "https://github.com/jeremyje", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101747", + "pr_number": 101747, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "windows" + ], + "duplicate": true + }, + "101752": { + "commit": "937a3db3a29df160ce8c0f73ab129abbcee1ddcc", + "text": "Applying fix for not tagging static public IP.", + "markdown": "Applying fix for not tagging static public IP. ([#101752](https://github.com/kubernetes/kubernetes/pull/101752), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101752", + "pr_number": 101752, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "101767": { + "commit": "15b4498e34d7b186f2361e0df45390befc6f96c8", + "text": "The `LogarithmicScaleDown` feature graduates to Beta and enabled by default.", + "markdown": "The `LogarithmicScaleDown` feature graduates to Beta and enabled by default. ([#101767](https://github.com/kubernetes/kubernetes/pull/101767), [@damemi](https://github.com/damemi))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2185", + "type": "KEP" + } + ], + "author": "damemi", + "author_url": "https://github.com/damemi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101767", + "pr_number": 101767, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "101773": { + "commit": "c345a41c496999b75b6d411b117eea6016bec34e", + "text": "The `storageos`, `quobyte` and `flocker` storage volume plugins are deprecated and will be removed in a later release.", + "markdown": "The `storageos`, `quobyte` and `flocker` storage volume plugins are deprecated and will be removed in a later release. ([#101773](https://github.com/kubernetes/kubernetes/pull/101773), [@Jiawei0227](https://github.com/Jiawei0227))", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101773", + "pr_number": 101773, + "kinds": [ + "deprecation", + "documentation" + ], + "sigs": [ + "storage" + ], + "duplicate_kind": true + }, + "101780": { + "commit": "78df56def61cd604d6307fca2536438e9b49f822", + "text": "Fixed a bug that `kubectl create configmap` always returns zero exit code when failed.", + "markdown": "Fixed a bug that `kubectl create configmap` always returns zero exit code when failed. ([#101780](https://github.com/kubernetes/kubernetes/pull/101780), [@nak3](https://github.com/nak3)) [SIG CLI]", + "author": "nak3", + "author_url": "https://github.com/nak3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101780", + "pr_number": 101780, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "101809": { + "commit": "62bc76b0de4819bc37e037de20c385c4fbcd575a", + "text": "Kubernetes is now built with Golang 1.16.4", + "markdown": "Kubernetes is now built with Golang 1.16.4 ([#101809](https://github.com/kubernetes/kubernetes/pull/101809), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing]", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101809", + "pr_number": 101809, + "areas": [ + "dependency", + "provider/gcp", + "release-eng", + "security", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "instrumentation", + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "101817": { + "commit": "a8f68f9aba47261c22ef178b58b615e00b6726d0", + "text": "You can use this Builder function to create events Field Selector", + "markdown": "You can use this Builder function to create events Field Selector ([#101817](https://github.com/kubernetes/kubernetes/pull/101817), [@cndoit18](https://github.com/cndoit18)) [SIG API Machinery and Scalability]", + "author": "cndoit18", + "author_url": "https://github.com/cndoit18", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101817", + "pr_number": 101817, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "scalability" + ], + "feature": true, + "duplicate": true + }, + "101822": { + "commit": "e0f66be1aa206131081d393aa80f89d986aef75a", + "text": "A new score extension for NodeResourcesFit plugin that merges the functionality of `NodeResourcesLeastAllocated`, `NodeResourcesMostAllocated`, `RequestedToCapacityRatio` plugins, which are marked as deprecated as of v1beta2. In v1beta1, the three plugins can still be used in v1beta1 but not at the same time with the score extension of `NodeResourcesFit`.", + "markdown": "A new score extension for NodeResourcesFit plugin that merges the functionality of `NodeResourcesLeastAllocated`, `NodeResourcesMostAllocated`, `RequestedToCapacityRatio` plugins, which are marked as deprecated as of v1beta2. In v1beta1, the three plugins can still be used in v1beta1 but not at the same time with the score extension of `NodeResourcesFit`. ([#101822](https://github.com/kubernetes/kubernetes/pull/101822), [@yuzhiquan](https://github.com/yuzhiquan))", + "author": "yuzhiquan", + "author_url": "https://github.com/yuzhiquan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101822", + "pr_number": 101822, + "areas": [ + "apiserver", + "cloudprovider", + "dependency", + "e2e-test-framework", + "kubelet", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cloud-provider", + "instrumentation", + "node", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "101857": { + "commit": "5edccec32bb0b3bb2a02a30063a2b2684c5bf8f6", + "text": "The `kube-proxy` log now shows the \"Skipping topology aware endpoint filtering since no hints were provided for zone\" warning under the right conditions.", + "markdown": "The `kube-proxy` log now shows the \"Skipping topology aware endpoint filtering since no hints were provided for zone\" warning under the right conditions. ([#101857](https://github.com/kubernetes/kubernetes/pull/101857), [@dervoeti](https://github.com/dervoeti))", + "author": "dervoeti", + "author_url": "https://github.com/dervoeti", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101857", + "pr_number": 101857, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "101862": { + "commit": "81e159f0b0cf3cca18cd7c8e47fc16dd1ffe96c8", + "text": "Retry `FibreChannel` devices cleanup after error to ensure `FibreChannel` device is detached before it can be used on another node.", + "markdown": "Retry `FibreChannel` devices cleanup after error to ensure `FibreChannel` device is detached before it can be used on another node. ([#101862](https://github.com/kubernetes/kubernetes/pull/101862), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101862", + "pr_number": 101862, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "101869": { + "commit": "8c0d06aad87047235beafd14546ff8418499b17e", + "text": "Metrics server nanny has now poll period set to 30s (previously 5 minutes) to allow faster scaling of metrics server.", + "markdown": "Metrics server nanny has now poll period set to 30s (previously 5 minutes) to allow faster scaling of metrics server. ([#101869](https://github.com/kubernetes/kubernetes/pull/101869), [@olagacek](https://github.com/olagacek)) [SIG Cloud Provider and Instrumentation]", + "author": "olagacek", + "author_url": "https://github.com/olagacek", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101869", + "pr_number": 101869, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "101915": { + "commit": "04b7977ef63247aa8e6b85fc5d12d3724ab8975c", + "text": "For `kubeadm`: remove the ClusterStatus API from v1beta3 and its management in the kube-system/kubeadm-config ConfigMap. This method of keeping track of what API endpoints exists in the cluster was replaced (in a prior release) by a method to annotate the etcd Pods that `kubeadm` creates in \"stacked etcd\" clusters. The following CLI sub-phases are deprecated and are now a NO-OP: for `kubeadm join`: \"control-plane-join/update-status\", for `kubeadm reset`: \"update-cluster-status\". Unless you are using these phases explicitly, you should not be affected.", + "markdown": "For `kubeadm`: remove the ClusterStatus API from v1beta3 and its management in the kube-system/kubeadm-config ConfigMap. This method of keeping track of what API endpoints exists in the cluster was replaced (in a prior release) by a method to annotate the etcd Pods that `kubeadm` creates in \"stacked etcd\" clusters. The following CLI sub-phases are deprecated and are now a NO-OP: for `kubeadm join`: \"control-plane-join/update-status\", for `kubeadm reset`: \"update-cluster-status\". Unless you are using these phases explicitly, you should not be affected. ([#101915](https://github.com/kubernetes/kubernetes/pull/101915), [@neolit123](https://github.com/neolit123))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/2506-Remove-ClusterStatus-from-kubeadm-config", + "type": "KEP" + }, + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/970-kubeadm-config", + "type": "KEP" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101915", + "pr_number": 101915, + "areas": [ + "kubeadm" + ], + "kinds": [ + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "101916": { + "commit": "1d0e5ac583f45f946691ae2878cf69f19cf792a3", + "text": "Corrected the documentation for escaping dollar signs in a container's env, command and args property.", + "markdown": "Corrected the documentation for escaping dollar signs in a container's env, command and args property. ([#101916](https://github.com/kubernetes/kubernetes/pull/101916), [@MartinKanters](https://github.com/MartinKanters)) [SIG Apps]", + "author": "MartinKanters", + "author_url": "https://github.com/MartinKanters", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101916", + "pr_number": 101916, + "kinds": [ + "api-change", + "documentation" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "101923": { + "commit": "bf2ece7adae7b68021ab210261ad213bf0ee6326", + "text": "kubeadm: add a new field `skipPhases` to `v1beta3` `InitConfiguration` and `JoinConfiguration` that can contain a list of phases to skip during \"kubeadm init\" and \"kubeadm join\". The flag \"--skip-phases\" takes precedence over this field.", + "markdown": "Kubeadm: add a new field `skipPhases` to `v1beta3` `InitConfiguration` and `JoinConfiguration` that can contain a list of phases to skip during \"kubeadm init\" and \"kubeadm join\". The flag \"--skip-phases\" takes precedence over this field. ([#101923](https://github.com/kubernetes/kubernetes/pull/101923), [@neolit123](https://github.com/neolit123))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/970-kubeadm-config", + "type": "KEP" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101923", + "pr_number": 101923, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "101938": { + "commit": "fbdc4f6acbc881eb26544d9d68ae520b7cbad3e7", + "text": "kubeadm: Remove the deprecated command `kubeadm alpha kubeconfig`. Please use `kubeadm kubeconfig` instead.", + "markdown": "Kubeadm: Remove the deprecated command `kubeadm alpha kubeconfig`. Please use `kubeadm kubeconfig` instead. ([#101938](https://github.com/kubernetes/kubernetes/pull/101938), [@knight42](https://github.com/knight42))", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101938", + "pr_number": 101938, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "101943": { + "commit": "2e93b3924ae6eb2b6a2b914fe400a006bd676308", + "text": "Added new kubelet alpha feature `SeccompDefault`. This feature enables falling back to\nthe `RuntimeDefault` (former `runtime/default`) seccomp profile if nothing else is specified\nin the pod/container `SecurityContext` or the pod annotation level. To use the feature, enable\nthe feature gate as well as set the kubelet configuration option `SeccompDefault`\n(`--seccomp-default`) to `true`.", + "markdown": "Added new kubelet alpha feature `SeccompDefault`. This feature enables falling back to\n the `RuntimeDefault` (former `runtime/default`) seccomp profile if nothing else is specified\n in the pod/container `SecurityContext` or the pod annotation level. To use the feature, enable\n the feature gate as well as set the kubelet configuration option `SeccompDefault`\n (`--seccomp-default`) to `true`. ([#101943](https://github.com/kubernetes/kubernetes/pull/101943), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/34fa3dd/keps/sig-node/2413-seccomp-by-default", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101943", + "pr_number": 101943, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true + }, + "101946": { + "commit": "ea3bcbc2050b89d11f005a2735c8808e45b8aa21", + "text": "Scheduler could be configured to consider new resources beside CPU and memory, GPU for example, for the score plugin of `NodeResourcesBalancedAllocation`.", + "markdown": "Scheduler could be configured to consider new resources beside CPU and memory, GPU for example, for the score plugin of `NodeResourcesBalancedAllocation`. ([#101946](https://github.com/kubernetes/kubernetes/pull/101946), [@chendave](https://github.com/chendave)) [SIG Scheduling]", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101946", + "pr_number": 101946, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "duplicate_kind": true + }, + "101947": { + "commit": "38f012320fa138260dca09e135ed386026a061bc", + "text": "The Memory Manager feature graduates to Beta and it is enabled by default.", + "markdown": "The Memory Manager feature graduates to Beta and it is enabled by default. ([#101947](https://github.com/kubernetes/kubernetes/pull/101947), [@cynepco3hahue](https://github.com/cynepco3hahue))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1769-memory-manager", + "type": "KEP" + } + ], + "author": "cynepco3hahue", + "author_url": "https://github.com/cynepco3hahue", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101947", + "pr_number": 101947, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "101950": { + "commit": "e6e6536c1f03a89f99efa597c6359615ede51687", + "text": "Fixes the `should receive events on concurrent watches in same order` conformance test to work properly on clusters that auto-create additional configmaps in namespaces.", + "markdown": "Fixes the `should receive events on concurrent watches in same order` conformance test to work properly on clusters that auto-create additional configmaps in namespaces. ([#101950](https://github.com/kubernetes/kubernetes/pull/101950), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101950", + "pr_number": 101950, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "101966": { + "commit": "9f0f14952c51e7a5622eac05c541ba20b5821627", + "text": "kubeadm: the `CriticalAddonsOnly` toleration has been removed from `kube-proxy` DaemonSet", + "markdown": "Kubeadm: the `CriticalAddonsOnly` toleration has been removed from `kube-proxy` DaemonSet ([#101966](https://github.com/kubernetes/kubernetes/pull/101966), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101966", + "pr_number": 101966, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "101977": { + "commit": "2a106464d355d04f1c8931a883d265cf70612a30", + "text": "kubeadm: fix the bug that `kubeadm` only uses the first hash in `caCertHashes` to verify the root CA.", + "markdown": "Kubeadm: fix the bug that `kubeadm` only uses the first hash in `caCertHashes` to verify the root CA. ([#101977](https://github.com/kubernetes/kubernetes/pull/101977), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101977", + "pr_number": 101977, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "101992": { + "commit": "548f16dbbbdcff3eac822236353d613800ecb6e4", + "text": "The `BoundServiceAccountTokenVolume` graduates to GA and thus will be unconditionally enabled. The feature gate is going to be removed in 1.23.", + "markdown": "The `BoundServiceAccountTokenVolume` graduates to GA and thus will be unconditionally enabled. The feature gate is going to be removed in 1.23. ([#101992](https://github.com/kubernetes/kubernetes/pull/101992), [@zshihang](https://github.com/zshihang))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1205-bound-service-account-tokens", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101992", + "pr_number": 101992, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "cloud-provider", + "testing" + ], + "feature": true, + "duplicate": true + }, + "102005": { + "commit": "c9fb3c8a1b3f407a5e84562843780aa3047d7d06", + "text": "Azure: Avoid setting cached Sku when updating VMSS and VMSS instances.", + "markdown": "Azure: Avoid setting cached Sku when updating VMSS and VMSS instances. ([#102005](https://github.com/kubernetes/kubernetes/pull/102005), [@feiskyer](https://github.com/feiskyer))", + "author": "feiskyer", + "author_url": "https://github.com/feiskyer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102005", + "pr_number": 102005, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "102022": { + "commit": "268cab5f444531d11a63d06872bf850c65f814fe", + "text": "Suspend Job feature graduated to beta. Added the `action` label to Job controller sync metrics `job_sync_total` and `job_sync_duration_seconds`.", + "markdown": "Suspend Job feature graduated to beta. Added the `action` label to Job controller sync metrics `job_sync_total` and `job_sync_duration_seconds`. ([#102022](https://github.com/kubernetes/kubernetes/pull/102022), [@adtac](https://github.com/adtac))", + "author": "adtac", + "author_url": "https://github.com/adtac", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102022", + "pr_number": 102022, + "areas": [ + "test" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "apps", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "102028": { + "commit": "01819dd322855915e0477dcad3b922d66bec9878", + "text": "Adds the `ReadWriteOncePod` access mode for `PersistentVolumes` and `PersistentVolumeClaims`. Restricts volume access to a single pod on a single node.", + "markdown": "Adds the `ReadWriteOncePod` access mode for `PersistentVolumes` and `PersistentVolumeClaims`. Restricts volume access to a single pod on a single node. ([#102028](https://github.com/kubernetes/kubernetes/pull/102028), [@chrishenzie](https://github.com/chrishenzie))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2485-read-write-once-pod-pv-access-mode", + "type": "KEP" + } + ], + "author": "chrishenzie", + "author_url": "https://github.com/chrishenzie", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102028", + "pr_number": 102028, + "areas": [ + "dependency", + "kubectl", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "cli", + "node", + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "102030": { + "commit": "f01c9e8683adacbfbad58e5153dfac9ebf954c4b", + "text": "The ingress `v1beta1` has been deprecated.", + "markdown": "The ingress `v1beta1` has been deprecated. ([#102030](https://github.com/kubernetes/kubernetes/pull/102030), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102030", + "pr_number": 102030, + "areas": [ + "e2e-test-framework", + "kubectl", + "test" + ], + "kinds": [ + "api-change", + "cleanup", + "deprecation", + "failing-test" + ], + "sigs": [ + "cli", + "network", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "102039": { + "commit": "14e4ed07cf81a8a273c63943c29f9f54761daebb", + "text": "`kubectl`: Enable using protocol buffers to request Metrics API.", + "markdown": "`kubectl`: Enable using protocol buffers to request Metrics API. ([#102039](https://github.com/kubernetes/kubernetes/pull/102039), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102039", + "pr_number": 102039, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "102059": { + "commit": "38783bfeb70f5d25262d195a779fbcfb72c73633", + "text": "Fixed very rare volume corruption when a pod is deleted while kubelet is offline.", + "markdown": "Fixed very rare volume corruption when a pod is deleted while kubelet is offline. ([#102059](https://github.com/kubernetes/kubernetes/pull/102059), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102059", + "pr_number": 102059, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "storage" + ], + "duplicate": true + }, + "102062": { + "commit": "f008ba0feddd6faf387ec52e447524714cbbe95a", + "text": "Update etcd version to 3.5.0-beta.3.", + "markdown": "Update etcd version to 3.5.0-beta.3. ([#102062](https://github.com/kubernetes/kubernetes/pull/102062), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102062", + "pr_number": 102062, + "areas": [ + "e2e-test-framework", + "kubeadm", + "provider/gcp", + "release-eng", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "cluster-lifecycle", + "testing" + ], + "feature": true, + "duplicate": true + }, + "102063": { + "commit": "eee6e54ecf364ee0529788eb5ad72d4ffaccf1b4", + "text": "Fixed an issue blocking azure auth to prompt to device code authentication flow when refresh token expires.", + "markdown": "Fixed an issue blocking azure auth to prompt to device code authentication flow when refresh token expires. ([#102063](https://github.com/kubernetes/kubernetes/pull/102063), [@tdihp](https://github.com/tdihp))", + "author": "tdihp", + "author_url": "https://github.com/tdihp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102063", + "pr_number": 102063, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true + }, + "102067": { + "commit": "781382a74db02368887f726e4633e58d62f1e3ab", + "text": "We no longer allow the cluster operator to delete any suggested priority \u0026 fairness bootstrap configuration object. If a cluster operator removes a suggested configuration, it will be restored by the apiserver.", + "markdown": "We no longer allow the cluster operator to delete any suggested priority \u0026 fairness bootstrap configuration object. If a cluster operator removes a suggested configuration, it will be restored by the apiserver. ([#102067](https://github.com/kubernetes/kubernetes/pull/102067), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102067", + "pr_number": 102067, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "102071": { + "commit": "f42a5dff629114df3302d16346909687298c3465", + "text": "kubeadm: remove the deprecated command `kubeadm config view`. A replacement for this command is `kubectl get cm -n kube-system kubeadm-config -o=jsonpath=\"{.data.ClusterConfiguration}\"`", + "markdown": "Kubeadm: remove the deprecated command `kubeadm config view`. A replacement for this command is `kubectl get cm -n kube-system kubeadm-config -o=jsonpath=\"{.data.ClusterConfiguration}\"` ([#102071](https://github.com/kubernetes/kubernetes/pull/102071), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102071", + "pr_number": 102071, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "102083": { + "commit": "bc637a7a07cf917140daa3bd434eac9bbd8fe92c", + "text": "Applying fix so that deleting non-existing disk returns success.", + "markdown": "Applying fix so that deleting non-existing disk returns success. ([#102083](https://github.com/kubernetes/kubernetes/pull/102083), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102083", + "pr_number": 102083, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "102093": { + "commit": "c24f2f8225be0aaf6f7f4743d7fc283040cfbf0d", + "text": "kubeadm: remove the deprecated flag '--image-pull-timeout' for 'kubeadm upgrade apply' command", + "markdown": "Kubeadm: remove the deprecated flag '--image-pull-timeout' for 'kubeadm upgrade apply' command ([#102093](https://github.com/kubernetes/kubernetes/pull/102093), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102093", + "pr_number": 102093, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "102105": { + "commit": "1a525275499c4559538873f6f1e05394d97c465a", + "text": "Respect annotation size limit for server-side apply updates to the client-side apply annotation. Also, fix opt-out of this behavior by setting the client-side apply annotation to the empty string.", + "markdown": "Respect annotation size limit for server-side apply updates to the client-side apply annotation. Also, fix opt-out of this behavior by setting the client-side apply annotation to the empty string. ([#102105](https://github.com/kubernetes/kubernetes/pull/102105), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG API Machinery]", + "author": "julianvmodesto", + "author_url": "https://github.com/julianvmodesto", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102105", + "pr_number": 102105, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "102108": { + "commit": "7f47a3aabb8f6bf5edf5bda408154665505de88d", + "text": "kubead: remove the deprecated `--csr-only` and `--csr-dir` flags from `kubeadm init phase certs`. Deprecate the same flags under `kubeadm certs renew`. In both the cases the command `kubeadm certs generate-csr` should be used instead.", + "markdown": "Kubead: remove the deprecated `--csr-only` and `--csr-dir` flags from `kubeadm init phase certs`. Deprecate the same flags under `kubeadm certs renew`. In both the cases the command `kubeadm certs generate-csr` should be used instead. ([#102108](https://github.com/kubernetes/kubernetes/pull/102108), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102108", + "pr_number": 102108, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "102121": { + "commit": "3cd555e818d300a04fa5ee53fc1b54c42173b39e", + "text": "kubeadm: remove the deprecated flag `--insecure-port` from the kube-apiserver manifest that kubeadm manages. The flag had no effect since 1.20, since the insecure serving of the component was disabled in the same version.", + "markdown": "Kubeadm: remove the deprecated flag `--insecure-port` from the kube-apiserver manifest that kubeadm manages. The flag had no effect since 1.20, since the insecure serving of the component was disabled in the same version. ([#102121](https://github.com/kubernetes/kubernetes/pull/102121), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102121", + "pr_number": 102121, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "102133": { + "commit": "64412d526ec81725fb4aa9104737f64c307929e0", + "text": "kubeadm: during \"kubeadm init/join/upgrade\", always default the `cgroupDriver` value in the `KubeletConfiguration` to `systemd`, unless the user was explicit about the value. See [configure-cgroup-driver](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) for more details.", + "markdown": "Kubeadm: during \"kubeadm init/join/upgrade\", always default the `cgroupDriver` value in the `KubeletConfiguration` to `systemd`, unless the user was explicit about the value. See [configure-cgroup-driver](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) for more details. ([#102133](https://github.com/kubernetes/kubernetes/pull/102133), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102133", + "pr_number": 102133, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true, + "action_required": true + }, + "102147": { + "commit": "5de1a754c8f875cacfa49b9c5ed63c6c35b7e9e5", + "text": "Fix resource enforcement when using systemd cgroup driver", + "markdown": "Fix resource enforcement when using systemd cgroup driver ([#102147](https://github.com/kubernetes/kubernetes/pull/102147), [@kolyshkin](https://github.com/kolyshkin))", + "author": "kolyshkin", + "author_url": "https://github.com/kolyshkin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102147", + "pr_number": 102147, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl", + "kubelet", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "node", + "storage", + "testing" + ], + "duplicate": true + }, + "102155": { + "commit": "7d9f4763376e20c9f1e8b930b8f82e6912628799", + "text": "Added field-selector option for `kubectl top pod`", + "markdown": "Added field-selector option for `kubectl top pod` ([#102155](https://github.com/kubernetes/kubernetes/pull/102155), [@lauchokyip](https://github.com/lauchokyip)) [SIG CLI]", + "author": "lauchokyip", + "author_url": "https://github.com/lauchokyip", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102155", + "pr_number": 102155, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "102158": { + "commit": "7705b300e2085c3864bb1e49a7302bf17f080219", + "text": "kubeadm: Add the `RootlessControlPlane` kubeadm specific feature gate (Alpha in 1.22, disabled by default). It can be used to enable an experimental feature that makes the control plane component static Pod containers for `kube-apiserver`, `kube-controller-manager`, `kube-scheduler` and `etcd` to run as a non-root users.", + "markdown": "Kubeadm: Add the `RootlessControlPlane` kubeadm specific feature gate (Alpha in 1.22, disabled by default). It can be used to enable an experimental feature that makes the control plane component static Pod containers for `kube-apiserver`, `kube-controller-manager`, `kube-scheduler` and `etcd` to run as a non-root users. ([#102158](https://github.com/kubernetes/kubernetes/pull/102158), [@vinayakankugoyal](https://github.com/vinayakankugoyal))", + "documentation": [ + { + "description": "[KEP-2568]", + "url": "https://github.com/kubernetes/enhancements/pull/2569", + "type": "KEP" + }, + { + "description": "[KEP-2568 update]", + "url": "https://github.com/kubernetes/enhancements/pull/2739", + "type": "KEP" + }, + { + "description": "[KEP Issue]", + "url": "https://github.com/kubernetes/enhancements/issues/2568", + "type": "KEP" + } + ], + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102158", + "pr_number": 102158, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "102159": { + "commit": "8a70c48553d3e4420064b34de59aa8b3e748e12b", + "text": "The `v1.Node` and `.status.images[].names` are now optional.", + "markdown": "The `v1.Node` and `.status.images[].names` are now optional. ([#102159](https://github.com/kubernetes/kubernetes/pull/102159), [@roycaihw](https://github.com/roycaihw))", + "author": "roycaihw", + "author_url": "https://github.com/roycaihw", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102159", + "pr_number": 102159, + "kinds": [ + "api-change" + ], + "sigs": [ + "apps", + "node" + ], + "duplicate": true + }, + "102171": { + "commit": "894f60365556df1262b4c2a8e7f0c40d6a9a6e23", + "text": "Watch requests are now handled throttled by priority and fairness filter in `kube-apiserver`.", + "markdown": "Watch requests are now handled throttled by priority and fairness filter in `kube-apiserver`. ([#102171](https://github.com/kubernetes/kubernetes/pull/102171), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102171", + "pr_number": 102171, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "102176": { + "commit": "ffbb85ce4ef8a1b4df09861e23852974ef6691dc", + "text": "Fixed `garbage collection` of dangling `VolumeAttachments` for `PersistentVolumes` migrated to CSI on startup of `kube-controller-manager`.", + "markdown": "Fixed `garbage collection` of dangling `VolumeAttachments` for `PersistentVolumes` migrated to CSI on startup of `kube-controller-manager`. ([#102176](https://github.com/kubernetes/kubernetes/pull/102176), [@timebertt](https://github.com/timebertt))", + "author": "timebertt", + "author_url": "https://github.com/timebertt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102176", + "pr_number": 102176, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "storage" + ], + "duplicate": true + }, + "102177": { + "commit": "303fe39e1c1ed551b8537bcd76bda15d24587338", + "text": "`oc describe quota` used has the same unit format as hard", + "markdown": "`oc describe quota` used has the same unit format as hard ([#102177](https://github.com/kubernetes/kubernetes/pull/102177), [@atiratree](https://github.com/atiratree)) [SIG CLI]", + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102177", + "pr_number": 102177, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "102181": { + "commit": "60475ee5c2dffd48a30018745ad7a2bafdf97bac", + "text": "The in-tree azure and gcp auth plugins have been deprecated. The https://github.com/Azure/kubelogin and gcloud commands serve as out-of-tree replacements via the kubectl/client-go credential plugin mechanism.", + "markdown": "The in-tree azure and gcp auth plugins have been deprecated. The https://github.com/Azure/kubelogin and gcloud commands serve as out-of-tree replacements via the kubectl/client-go credential plugin mechanism. ([#102181](https://github.com/kubernetes/kubernetes/pull/102181), [@enj](https://github.com/enj)) [SIG API Machinery and Auth]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/541-external-credential-providers", + "type": "KEP" + } + ], + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102181", + "pr_number": 102181, + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "duplicate_kind": true + }, + "102188": { + "commit": "785d9f028a9514034e705216e06262f30a449f6b", + "text": "Improved parsing of label selectors", + "markdown": "Improved parsing of label selectors ([#102188](https://github.com/kubernetes/kubernetes/pull/102188), [@alculquicondor](https://github.com/alculquicondor)) [SIG API Machinery]", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102188", + "pr_number": 102188, + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "102193": { + "commit": "abe209b086b67bc4ebb61a86f9b60bddda2438ff", + "text": "Upgrade functionality of `kubectl kustomize` as described at [kustomize/v4.1.3](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.3).", + "markdown": "Upgrade functionality of `kubectl kustomize` as described at [kustomize/v4.1.3](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.3). ([#102193](https://github.com/kubernetes/kubernetes/pull/102193), [@gautierdelorme](https://github.com/gautierdelorme))", + "author": "gautierdelorme", + "author_url": "https://github.com/gautierdelorme", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102193", + "pr_number": 102193, + "areas": [ + "dependency", + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "102201": { + "commit": "053aa7fde4da20522e568385cc4db36703c81bd1", + "text": "The prefer nominated node graduates to Beta and enabld by default.", + "markdown": "The prefer nominated node graduates to Beta and enabld by default. ([#102201](https://github.com/kubernetes/kubernetes/pull/102201), [@chendave](https://github.com/chendave))", + "documentation": [ + { + "description": "-KEP", + "url": "https://github.com/kubernetes/enhancements/pull/2764", + "type": "KEP" + } + ], + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102201", + "pr_number": 102201, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "102239": { + "commit": "d541872f9a036ed4f792232e43fde6dacf0e1084", + "text": "The deprecated flag `--algorithm-provider` has been removed from `kube-scheduler`. Use instead `ComponentConfig` to configure the set of enabled plugins.", + "markdown": "The deprecated flag `--algorithm-provider` has been removed from `kube-scheduler`. Use instead `ComponentConfig` to configure the set of enabled plugins. ([#102239](https://github.com/kubernetes/kubernetes/pull/102239), [@Haleygo](https://github.com/Haleygo))", + "author": "Haleygo", + "author_url": "https://github.com/Haleygo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102239", + "pr_number": 102239, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "api-change", + "cleanup", + "feature" + ], + "sigs": [ + "cloud-provider", + "scheduling" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "102297": { + "commit": "74af3b712d067363482b0dba9f0853b1fdd1f752", + "text": "The options `--ssh-user` and `--ssh-key` are removed. They only functioned on GCE, and only in-tree. Use the apiserver network proxy instead.", + "markdown": "The options `--ssh-user` and `--ssh-key` are removed. They only functioned on GCE, and only in-tree. Use the apiserver network proxy instead. ([#102297](https://github.com/kubernetes/kubernetes/pull/102297), [@deads2k](https://github.com/deads2k))", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102297", + "pr_number": 102297, + "areas": [ + "apiserver", + "provider/gcp", + "test" + ], + "kinds": [ + "api-change", + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "102302": { + "commit": "5640c64a9fb39cdb1b784b7cacbaad4704d09391", + "text": "Update the Debian images to pick up CVE fixes in the base images:\n- Update the `debian-base` image to v1.7.0\n- Update the `debian-iptables` image to v1.6.1", + "markdown": "Update the Debian images to pick up CVE fixes in the base images:\n - Update the `debian-base` image to v1.7.0\n - Update the `debian-iptables` image to v1.6.1 ([#102302](https://github.com/kubernetes/kubernetes/pull/102302), [@xmudrii](https://github.com/xmudrii))", + "author": "xmudrii", + "author_url": "https://github.com/xmudrii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102302", + "pr_number": 102302, + "areas": [ + "dependency", + "release-eng", + "security", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "102323": { + "commit": "a6a6fb3072a50d78f36d50706579cc744b7b8fca", + "text": "Changed buildmode of non static Kubernetes binaries to produce position independent executables (PIE).", + "markdown": "Changed buildmode of non static Kubernetes binaries to produce position independent executables (PIE). ([#102323](https://github.com/kubernetes/kubernetes/pull/102323), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102323", + "pr_number": 102323, + "areas": [ + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "release", + "security" + ], + "duplicate": true + }, + "102328": { + "commit": "bc8acbc43eea13effc6c2034a82e7d56ba2d9eb6", + "text": "Update CNI plugins to v0.9.1.", + "markdown": "Update CNI plugins to v0.9.1. ([#102328](https://github.com/kubernetes/kubernetes/pull/102328), [@lentzi90](https://github.com/lentzi90))", + "author": "lentzi90", + "author_url": "https://github.com/lentzi90", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102328", + "pr_number": 102328, + "areas": [ + "provider/gcp", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "network", + "node", + "testing" + ], + "duplicate": true + }, + "102332": { + "commit": "3726309bf9d59bccf28b9e22e1573764a5dd3fb5", + "text": "Update klog v2.9.0.", + "markdown": "Update klog v2.9.0. ([#102332](https://github.com/kubernetes/kubernetes/pull/102332), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102332", + "pr_number": 102332, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "storage" + ], + "duplicate": true + }, + "102344": { + "commit": "dab6f6a43d5a41ef3e2aa11d4a85c45a268ac6cd", + "text": "Fix a number of race conditions in the kubelet when pods are starting up or shutting down that might cause pods to take a long time to shut down.", + "markdown": "Fix a number of race conditions in the kubelet when pods are starting up or shutting down that might cause pods to take a long time to shut down. ([#102344](https://github.com/kubernetes/kubernetes/pull/102344), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps, Node, Storage and Testing]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102344", + "pr_number": 102344, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "bug", + "flake" + ], + "sigs": [ + "apps", + "node", + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "102363": { + "commit": "a5b117fab4ec58cbbbf8a013367edf359f4d682f", + "text": "Promote Cronjobs storage version to `batch/v1`.", + "markdown": "Promote Cronjobs storage version to `batch/v1`. ([#102363](https://github.com/kubernetes/kubernetes/pull/102363), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/19-Graduate-CronJob-to-Stable", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102363", + "pr_number": 102363, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "102366": { + "commit": "4aae71695a8dd43918702fafd81e0401721d79d9", + "text": "Because of the implementation logic of `time.Format` in golang, the displayed time zone is not consistent.", + "markdown": "Because of the implementation logic of `time.Format` in golang, the displayed time zone is not consistent. ([#102366](https://github.com/kubernetes/kubernetes/pull/102366), [@cndoit18](https://github.com/cndoit18))", + "author": "cndoit18", + "author_url": "https://github.com/cndoit18", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102366", + "pr_number": 102366, + "areas": [ + "apiserver", + "e2e-test-framework", + "kubeadm", + "kubectl", + "kubelet", + "test" + ], + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "apps", + "auth", + "autoscaling", + "cli", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "102377": { + "commit": "59fd0a5c95a428660701dac7fe230dd6ddc4410a", + "text": "Update the setcap image to buster-v2.0.1.", + "markdown": "Update the setcap image to buster-v2.0.1. ([#102377](https://github.com/kubernetes/kubernetes/pull/102377), [@xmudrii](https://github.com/xmudrii))", + "author": "xmudrii", + "author_url": "https://github.com/xmudrii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102377", + "pr_number": 102377, + "areas": [ + "dependency", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release" + ], + "feature": true + }, + "102386": { + "commit": "ba50598ae56757fcc792d75764dd11ea54f25a32", + "text": "Update Calico to v3.19.1.", + "markdown": "Update Calico to v3.19.1. ([#102386](https://github.com/kubernetes/kubernetes/pull/102386), [@JornShen](https://github.com/JornShen))", + "author": "JornShen", + "author_url": "https://github.com/JornShen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102386", + "pr_number": 102386, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ] + }, + "102412": { + "commit": "7ed2ed1b454fe8f09adf729c6cb814611634fea1", + "text": "Remove support for the Service `topologyKeys` field (alpha) and the `kube-proxy` implementation of it. This field was deprecated several cycles ago. This functionality is replaced by the combination of automatic topology hints per-endpoint (alpha) and the Service `internalTrafficPolicy` field (alpha).", + "markdown": "Remove support for the Service `topologyKeys` field (alpha) and the `kube-proxy` implementation of it. This field was deprecated several cycles ago. This functionality is replaced by the combination of automatic topology hints per-endpoint (alpha) and the Service `internalTrafficPolicy` field (alpha). ([#102412](https://github.com/kubernetes/kubernetes/pull/102412), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102412", + "pr_number": 102412, + "kinds": [ + "api-change", + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery", + "apps", + "network" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "102414": { + "commit": "7f4abd897ec4ec29cf88c200ea0044671b10d822", + "text": "Newly provisioned PVs by vSphere in-tree plugin will no longer have the beta `FailureDomain` label. vSphere volume plugin will start to have GA topology label", + "markdown": "Newly provisioned PVs by vSphere in-tree plugin will no longer have the beta `FailureDomain` label. vSphere volume plugin will start to have GA topology label ([#102414](https://github.com/kubernetes/kubernetes/pull/102414), [@divyenpatel](https://github.com/divyenpatel))", + "author": "divyenpatel", + "author_url": "https://github.com/divyenpatel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102414", + "pr_number": 102414, + "areas": [ + "cloudprovider", + "test" + ], + "kinds": [ + "bug", + "deprecation" + ], + "sigs": [ + "cloud-provider", + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "102437": { + "commit": "b469c9cfa49d67a7179ce91d63e13cd06df2f5ed", + "text": "JSON logging now supports having information about source code location in the logging format, source code information is available under the key \"caller\".", + "markdown": "JSON logging now supports having information about source code location in the logging format, source code information is available under the key \"caller\". ([#102437](https://github.com/kubernetes/kubernetes/pull/102437), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", + "author": "MadhavJivrajani", + "author_url": "https://github.com/MadhavJivrajani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102437", + "pr_number": 102437, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "instrumentation" + ], + "duplicate": true + }, + "102441": { + "commit": "122d6352452f3f4a2d52bdb8b114b6e0ec49358e", + "text": "Update Azure Go SDK to v55.0.0.", + "markdown": "Update Azure Go SDK to v55.0.0. ([#102441](https://github.com/kubernetes/kubernetes/pull/102441), [@feiskyer](https://github.com/feiskyer))", + "author": "feiskyer", + "author_url": "https://github.com/feiskyer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102441", + "pr_number": 102441, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "node", + "storage" + ], + "duplicate": true + }, + "102443": { + "commit": "a3f24e8459465495738af1b9cc6c3db80696e3c1", + "text": "Remove balanced attached node volumes feature.", + "markdown": "Remove balanced attached node volumes feature. ([#102443](https://github.com/kubernetes/kubernetes/pull/102443), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102443", + "pr_number": 102443, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "102444": { + "commit": "062bc359cab31ce2ea9ce513f8bae73e44ce5df2", + "text": "Expose container start time as `container_start_time_seconds` in the kubelet `/metrics/resource` endpoint.", + "markdown": "Expose container start time as `container_start_time_seconds` in the kubelet `/metrics/resource` endpoint. ([#102444](https://github.com/kubernetes/kubernetes/pull/102444), [@sanwishe](https://github.com/sanwishe))", + "author": "sanwishe", + "author_url": "https://github.com/sanwishe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102444", + "pr_number": 102444, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "102455": { + "commit": "e154a6d63706b955188daf2ce31254b07bb284e0", + "text": "“NONE”", + "markdown": "Â\ufffd\ufffdNONE” ([#102455](https://github.com/kubernetes/kubernetes/pull/102455), [@lunhuijie](https://github.com/lunhuijie)) [SIG Node]", + "author": "lunhuijie", + "author_url": "https://github.com/lunhuijie", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102455", + "pr_number": 102455, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "102461": { + "commit": "63c75f37668188ba2e081d1615ac5381e957df18", + "text": "Improve func `ToSelectableFields`' performance for event.", + "markdown": "Improve func `ToSelectableFields`' performance for event. ([#102461](https://github.com/kubernetes/kubernetes/pull/102461), [@goodluckbot](https://github.com/goodluckbot))", + "author": "goodluckbot", + "author_url": "https://github.com/goodluckbot", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102461", + "pr_number": 102461, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "node" + ], + "duplicate": true + }, + "102466": { + "commit": "cfa0130b9f11d7ce22cad2a12529f942e1fbacb7", + "text": "kubeadm: update `CoreDNS` to 1.8.4. Grant `CoreDNS` permissions to \"list\" and \"watch\" `EndpointSlice` objects to accommodate dual-stack support.", + "markdown": "Kubeadm: update `CoreDNS` to 1.8.4. Grant `CoreDNS` permissions to \"list\" and \"watch\" `EndpointSlice` objects to accommodate dual-stack support. ([#102466](https://github.com/kubernetes/kubernetes/pull/102466), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102466", + "pr_number": 102466, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "102467": { + "commit": "81b9789eaa7bc067f417b5e74d5695dd6dd88a46", + "text": "Fix how nulls are handled in array and objects in [json patches](https://github.com/evanphx/json-patch).", + "markdown": "Fix how nulls are handled in array and objects in [json patches](https://github.com/evanphx/json-patch). ([#102467](https://github.com/kubernetes/kubernetes/pull/102467), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102467", + "pr_number": 102467, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubeadm", + "kubectl", + "provider/gcp", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "apps", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "storage", + "testing" + ], + "duplicate": true + }, + "102489": { + "commit": "b24b7d5a201764a13a58813d4307342d83cc607e", + "text": "Fixed 'kubelet' runtime panic for timed-out portforward streams.", + "markdown": "Fixed 'kubelet' runtime panic for timed-out portforward streams. ([#102489](https://github.com/kubernetes/kubernetes/pull/102489), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102489", + "pr_number": 102489, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "node" + ], + "duplicate": true, + "duplicate_kind": true + }, + "102498": { + "commit": "d9dc347b4fe017258d43312d171ca03c724704cb", + "text": "Fix a bug that a preemptor pod may exist as a phantom in the scheduler.", + "markdown": "Fix a bug that a preemptor pod may exist as a phantom in the scheduler. ([#102498](https://github.com/kubernetes/kubernetes/pull/102498), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102498", + "pr_number": 102498, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true + }, + "102502": { + "commit": "7e2b5f3325a2f7808acd6740e9f0d907976e4704", + "text": "kubeadm: when using a custom image repository for CoreDNS kubeadm now will append the `coredns` image name instead of `coredns/coredns`, thus restoring the behaviour existing before the v1.21 release. Users who rely on nested folder for the coredns image should set the `clusterConfiguration.dns.imageRepository` value including the nested path name (e.g using `registry.company.xyz/coredns` will force kubeadm to use `registry.company.xyz/coredns/coredns` image). No action is needed if using the default registry (k8s.gcr.io).", + "markdown": "Kubeadm: when using a custom image repository for CoreDNS kubeadm now will append the `coredns` image name instead of `coredns/coredns`, thus restoring the behaviour existing before the v1.21 release. Users who rely on nested folder for the coredns image should set the `clusterConfiguration.dns.imageRepository` value including the nested path name (e.g using `registry.company.xyz/coredns` will force kubeadm to use `registry.company.xyz/coredns/coredns` image). No action is needed if using the default registry (k8s.gcr.io). ([#102502](https://github.com/kubernetes/kubernetes/pull/102502), [@ykakarap](https://github.com/ykakarap))", + "author": "ykakarap", + "author_url": "https://github.com/ykakarap", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102502", + "pr_number": 102502, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true, + "action_required": true + }, + "102509": { + "commit": "f98e9caa776d7b10e7dd3f8dcbc0097a2f8fef12", + "text": "Clarified the description of a test in the e2e suite that mentions \"SCTP\" but is\nactually intended to be testing the behavior of network plugins that don't\nimplement SCTP.", + "markdown": "Clarified the description of a test in the e2e suite that mentions \"SCTP\" but is\n actually intended to be testing the behavior of network plugins that don't\n implement SCTP. ([#102509](https://github.com/kubernetes/kubernetes/pull/102509), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102509", + "pr_number": 102509, + "areas": [ + "network-policy", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true + }, + "102516": { + "commit": "42860d4d47e069ddc52ffaa2fc792b33c63d937e", + "text": "The `serviceOwnsFrontendIP` shouldn't report error when the public IP doesn't match.", + "markdown": "The `serviceOwnsFrontendIP` shouldn't report error when the public IP doesn't match. ([#102516](https://github.com/kubernetes/kubernetes/pull/102516), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102516", + "pr_number": 102516, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "102529": { + "commit": "1677d939fb5790aa5b58b11cd1454491ef7b7b6f", + "text": "Promote `CronJobControllerV2` flag to GA, with removal in 1.23.", + "markdown": "Promote `CronJobControllerV2` flag to GA, with removal in 1.23. ([#102529](https://github.com/kubernetes/kubernetes/pull/102529), [@soltysh](https://github.com/soltysh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/19-Graduate-CronJob-to-Stable", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102529", + "pr_number": 102529, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "102539": { + "commit": "2e12da1ce0116fcd0ad4457743b2acc0da0c74bf", + "text": "Fixes issue with websocket-based watches of Service objects not closing correctly on timeout.", + "markdown": "Fixes issue with websocket-based watches of Service objects not closing correctly on timeout. ([#102539](https://github.com/kubernetes/kubernetes/pull/102539), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102539", + "pr_number": 102539, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "102578": { + "commit": "5f285e9eae9199eebebbf6d7fca3311412023faf", + "text": "Add unified map on CRI to support `cgroup v2`. Refer to https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#unified.", + "markdown": "Add unified map on CRI to support `cgroup v2`. Refer to https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#unified. ([#102578](https://github.com/kubernetes/kubernetes/pull/102578), [@payall4u](https://github.com/payall4u))", + "author": "payall4u", + "author_url": "https://github.com/payall4u", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102578", + "pr_number": 102578, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "102590": { + "commit": "62b5c28506e4937b3d0cb838fa910bb9c45af008", + "text": "Update `kube-proxy` base image `debian-iptables` to v1.6.2 to pickup [documentation](https://github.com/kubernetes/release/pull/2106)\n\\n\"- `debian-iptables`: select nft mode if ntf lines \u003e legacy lines, matching [iptables-wrappers](https://github.com/kubernetes-sigs/iptables-wrappers/)\"", + "markdown": "Update `kube-proxy` base image `debian-iptables` to v1.6.2 to pickup [documentation](https://github.com/kubernetes/release/pull/2106)\n \\n\"- `debian-iptables`: select nft mode if ntf lines \u003e legacy lines, matching [iptables-wrappers](https://github.com/kubernetes-sigs/iptables-wrappers/)\" ([#102590](https://github.com/kubernetes/kubernetes/pull/102590), [@BenTheElder](https://github.com/BenTheElder))", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102590", + "pr_number": 102590, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true + }, + "102594": { + "commit": "59f150333ed0edc092587c275d16455aafa5d441", + "text": "base-images: Update to `debian-base:buster-v1.7.1`", + "markdown": "Base-images: Update to `debian-base:buster-v1.7.1` ([#102594](https://github.com/kubernetes/kubernetes/pull/102594), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102594", + "pr_number": 102594, + "areas": [ + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "release" + ], + "feature": true, + "duplicate": true + }, + "102598": { + "commit": "f52d1bbd8170d9b67957ba422ddd97ce8f1751bc", + "text": "e2e.test: removed the `--viper-config` flag. If you were previously using this to pass flags to `e2e.test` via a file, you will need to pass them directly on the command line, e.g. `e2e.test --e2e-output-dir`.", + "markdown": "E2e.test: removed the `--viper-config` flag. If you were previously using this to pass flags to `e2e.test` via a file, you will need to pass them directly on the command line, e.g. `e2e.test --e2e-output-dir`. ([#102598](https://github.com/kubernetes/kubernetes/pull/102598), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102598", + "pr_number": 102598, + "areas": [ + "dependency", + "test" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "testing" + ], + "duplicate_kind": true + }, + "102620": { + "commit": "f1f58f20ab7e30bf9f1a982aeaf5ba48f1a55042", + "text": "Disable log sampling when using json logging format.", + "markdown": "Disable log sampling when using json logging format. ([#102620](https://github.com/kubernetes/kubernetes/pull/102620), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102620", + "pr_number": 102620, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "instrumentation" + ], + "duplicate": true + }, + "102642": { + "commit": "270b66fb94747ed8eb296b2626e81b1fa648c306", + "text": "Fixed a bug due to which the controller was not populating the `lastSuccessfulTime` field added to `cronjob.status` in `batch/v1`.", + "markdown": "Fixed a bug due to which the controller was not populating the `lastSuccessfulTime` field added to `cronjob.status` in `batch/v1`. ([#102642](https://github.com/kubernetes/kubernetes/pull/102642), [@alaypatel07](https://github.com/alaypatel07))", + "documentation": [ + { + "description": "API change: [KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/19-Graduate-CronJob-to-Stable", + "type": "KEP" + } + ], + "author": "alaypatel07", + "author_url": "https://github.com/alaypatel07", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102642", + "pr_number": 102642, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "102665": { + "commit": "cc7721362c83ffbca8785b4763051b4d0406bfc3", + "text": "Allow CSI drivers to just run offline expansion tests.", + "markdown": "Allow CSI drivers to just run offline expansion tests. ([#102665](https://github.com/kubernetes/kubernetes/pull/102665), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102665", + "pr_number": 102665, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true + }, + "102673": { + "commit": "d5685397e18b78133afde778077652ee55e4c5f7", + "text": "kubeadm: remove the \"ephemeral_storage\" request from the etcd static pod that kubeadm deploys on stacked etcd control plane nodes. This request has caused sporadic failures on some setups due to a problem in the kubelet with cadvisor and the LocalStorageCapacityIsolation feature gate. See this issue for more details: https://github.com/kubernetes/kubernetes/issues/99305", + "markdown": "Kubeadm: remove the \"ephemeral_storage\" request from the etcd static pod that kubeadm deploys on stacked etcd control plane nodes. This request has caused sporadic failures on some setups due to a problem in the kubelet with cadvisor and the LocalStorageCapacityIsolation feature gate. See this issue for more details: https://github.com/kubernetes/kubernetes/issues/99305 ([#102673](https://github.com/kubernetes/kubernetes/pull/102673), [@jackfrancis](https://github.com/jackfrancis)) [SIG Cluster Lifecycle]", + "author": "jackfrancis", + "author_url": "https://github.com/jackfrancis", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102673", + "pr_number": 102673, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "102677": { + "commit": "99f77725c88d1d9c0b7ac29c65d1595d9ded8169", + "text": "Deprecated warning message for `igonre-errors` flag.", + "markdown": "Deprecated warning message for `igonre-errors` flag. ([#102677](https://github.com/kubernetes/kubernetes/pull/102677), [@yuzhiquan](https://github.com/yuzhiquan))", + "author": "yuzhiquan", + "author_url": "https://github.com/yuzhiquan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102677", + "pr_number": 102677, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "102683": { + "commit": "5a21b978820ff266fcbd81e72f1dabc515172eca", + "text": "Fix a bug on the `endpointslicemirroring` controller where endpoint `NotReadyAddresses` were mirrored as Ready to the corresponding `EndpointSlice`.", + "markdown": "Fix a bug on the `endpointslicemirroring` controller where endpoint `NotReadyAddresses` were mirrored as Ready to the corresponding `EndpointSlice`. ([#102683](https://github.com/kubernetes/kubernetes/pull/102683), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102683", + "pr_number": 102683, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true + }, + "102689": { + "commit": "4f854e39f2bd73210a4e10ffeecebf36fdc4588d", + "text": "Kubernetes is now built with Golang 1.16.5.", + "markdown": "Kubernetes is now built with Golang 1.16.5. ([#102689](https://github.com/kubernetes/kubernetes/pull/102689), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102689", + "pr_number": 102689, + "areas": [ + "dependency", + "provider/gcp", + "release-eng", + "security", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "instrumentation", + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "102711": { + "commit": "2fe712e803199841402b222872f05e9239f24beb", + "text": "The \"Leader Migration\" now support a wildcard component name and the default value.", + "markdown": "The \"Leader Migration\" now support a wildcard component name and the default value. ([#102711](https://github.com/kubernetes/kubernetes/pull/102711), [@jiahuif](https://github.com/jiahuif))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2436", + "type": "KEP" + } + ], + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102711", + "pr_number": 102711, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "102722": { + "commit": "f3371ced8593498a472452805b8ba212d67ea47d", + "text": "kubeadm: add the `--dry-run` flag to the `control-plane` phase of \"kubeadm init\".", + "markdown": "Kubeadm: add the `--dry-run` flag to the `control-plane` phase of \"kubeadm init\". ([#102722](https://github.com/kubernetes/kubernetes/pull/102722), [@vinayakankugoyal](https://github.com/vinayakankugoyal))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2568", + "type": "KEP" + } + ], + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102722", + "pr_number": 102722, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "102731": { + "commit": "81aaeee8a6369695cff69bd2bfe77f4eef228e11", + "text": "The `EndpointSlicen Mirroring controller` no longer mirrors the `last-applied-configuration` annotation created by `kubectl` to update `EndpointSlices`.", + "markdown": "The `EndpointSlicen Mirroring controller` no longer mirrors the `last-applied-configuration` annotation created by `kubectl` to update `EndpointSlices`. ([#102731](https://github.com/kubernetes/kubernetes/pull/102731), [@sharmarajdaksh](https://github.com/sharmarajdaksh))", + "author": "sharmarajdaksh", + "author_url": "https://github.com/sharmarajdaksh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102731", + "pr_number": 102731, + "areas": [ + "apiserver", + "cloudprovider", + "e2e-test-framework", + "ipvs", + "provider/gcp", + "release-eng", + "test" + ], + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "api-machinery", + "apps", + "cloud-provider", + "network", + "release", + "scheduling", + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "102783": { + "commit": "e9c6ec639cc5ca93a3f6e01ff4215f6b68d6142d", + "text": "Update dep `google/gnostic` and `google/go-cmp` to v0.5.5 and updating transitive dependencies `protobuf`.", + "markdown": "Update dep `google/gnostic` and `google/go-cmp` to v0.5.5 and updating transitive dependencies `protobuf`. ([#102783](https://github.com/kubernetes/kubernetes/pull/102783), [@mcbenjemaa](https://github.com/mcbenjemaa))", + "author": "mcbenjemaa", + "author_url": "https://github.com/mcbenjemaa", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102783", + "pr_number": 102783, + "areas": [ + "code-generation", + "dependency", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture", + "testing" + ], + "duplicate": true + }, + "102788": { + "commit": "60a4cbfdf617b94a28a76b302fd4cf04a704667c", + "text": "client-go: reduce verbosity of `Starting/Stopping reflector` messages to 3 again.", + "markdown": "Client-go: reduce verbosity of `Starting/Stopping reflector` messages to 3 again. ([#102788](https://github.com/kubernetes/kubernetes/pull/102788), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102788", + "pr_number": 102788, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "102795": { + "commit": "fddb3adcfd963ef7ee1230bcbb2fd0d324fe8935", + "text": "Added a new metric `apiserver_flowcontrol_request_concurrency_in_use` that shows the number of\nseats (concurrency) occupied by the currently executing requests in the API Priority and Fairness system.", + "markdown": "Added a new metric `apiserver_flowcontrol_request_concurrency_in_use` that shows the number of\n seats (concurrency) occupied by the currently executing requests in the API Priority and Fairness system. ([#102795](https://github.com/kubernetes/kubernetes/pull/102795), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102795", + "pr_number": 102795, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "102805": { + "commit": "21ee533508c45871560de123e08b97edddc771b2", + "text": "The deprecated flag `--hard-pod-affinity-symmetric-weight` and `--scheduler-name` have been removed from `kube-scheduler`. Use `ComponentConfig` instead to configure those parameters.", + "markdown": "The deprecated flag `--hard-pod-affinity-symmetric-weight` and `--scheduler-name` have been removed from `kube-scheduler`. Use `ComponentConfig` instead to configure those parameters. ([#102805](https://github.com/kubernetes/kubernetes/pull/102805), [@ahg-g](https://github.com/ahg-g))", + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102805", + "pr_number": 102805, + "kinds": [ + "api-change", + "deprecation" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true + }, + "102821": { + "commit": "15d3c3a5e2679493d5cbe9b944df4ee717057a06", + "text": "Pods that are known to the kubelet to have previously been Running should not revert to Pending state, the kubelet will now infer a termination.", + "markdown": "Pods that are known to the kubelet to have previously been Running should not revert to Pending state, the kubelet will now infer a termination. ([#102821](https://github.com/kubernetes/kubernetes/pull/102821), [@ehashman](https://github.com/ehashman))", + "author": "ehashman", + "author_url": "https://github.com/ehashman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102821", + "pr_number": 102821, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "102823": { + "commit": "561959f6828c36cd3515718eb41bf7b33f450cce", + "text": "Alpha swap support can now be enabled on Kubernetes nodes with the `NodeSwapEnabled` feature flag. See [KEP-2400](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md#design-details) for details.", + "markdown": "Alpha swap support can now be enabled on Kubernetes nodes with the `NodeSwapEnabled` feature flag. See [KEP-2400](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md#design-details) for details. ([#102823](https://github.com/kubernetes/kubernetes/pull/102823), [@ehashman](https://github.com/ehashman))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/", + "type": "KEP" + } + ], + "author": "ehashman", + "author_url": "https://github.com/ehashman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102823", + "pr_number": 102823, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true + }, + "102825": { + "commit": "0665fb2e5a9a9fa449ef6acc16275b857da74087", + "text": "Fix an issue with `kubectl` on certain older version of Windows or when legacy console mode is enabled on Windows 8 which causes `kubectl exec` to crash.", + "markdown": "Fix an issue with `kubectl` on certain older version of Windows or when legacy console mode is enabled on Windows 8 which causes `kubectl exec` to crash. ([#102825](https://github.com/kubernetes/kubernetes/pull/102825), [@n4j](https://github.com/n4j))", + "author": "n4j", + "author_url": "https://github.com/n4j", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102825", + "pr_number": 102825, + "areas": [ + "apiserver", + "cloudprovider", + "dependency", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle" + ], + "duplicate": true + }, + "102834": { + "commit": "f6f9738ec844ee3ebc722557cc6ab5c13cca9711", + "text": "The `NetworkPolicyEndPort` is graduated to beta and is enabled by default.", + "markdown": "The `NetworkPolicyEndPort` is graduated to beta and is enabled by default. ([#102834](https://github.com/kubernetes/kubernetes/pull/102834), [@rikatz](https://github.com/rikatz))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/d0b04580b6e3cd9287185cfc379efad151f966b2/keps/sig-network/2079-network-policy-port-range", + "type": "KEP" + } + ], + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102834", + "pr_number": 102834, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "duplicate_kind": true + }, + "102840": { + "commit": "2d7a20fcd67e1a22fa6d5cba0e1772ab48b5c6d7", + "text": "Updated the Graceful Node Shutdown Pod termination reason and message.\nUpdated the Graceful Node Shutdown Pod rejection reason and message.", + "markdown": "Updated the Graceful Node Shutdown Pod termination reason and message.\n Updated the Graceful Node Shutdown Pod rejection reason and message. ([#102840](https://github.com/kubernetes/kubernetes/pull/102840), [@Kissy](https://github.com/Kissy))", + "author": "Kissy", + "author_url": "https://github.com/Kissy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102840", + "pr_number": 102840, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "102858": { + "commit": "36896f9cab4d753ba809b859750db33906be54e8", + "text": "Aggregate write permissions on events to users with edit and admin role.", + "markdown": "Aggregate write permissions on events to users with edit and admin role. ([#102858](https://github.com/kubernetes/kubernetes/pull/102858), [@tumido](https://github.com/tumido))", + "author": "tumido", + "author_url": "https://github.com/tumido", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102858", + "pr_number": 102858, + "kinds": [ + "bug" + ], + "sigs": [ + "auth" + ] + }, + "102859": { + "commit": "556f8500fff689163fb9480d8a878b457e39e322", + "text": "Added new metrics about API Priority and Fairness. Each one has a label `priority_level`. The last two also have a label `bound` taking values `min` and `max.\n- apiserver_flowcontrol_current_r: R(the time of the last change in state of the queues)\n- apiserver_flowcontrol_dispatch_r: R(the time of the latest request dispatch)\n- apiserver_flowcontrol_latest_s: S(the request last dispatched) = R(when that request starts executing in the virtual world)\n- apiserver_flowcontrol_next_s_bounds: min and max next S among non-empty queues\n- apiserver_flowcontrol_next_discounted_s_bounds: min and max next S - (sum [over requests executing] width * estimatedDuration) among non-empty queues", + "markdown": "Added new metrics about API Priority and Fairness. Each one has a label `priority_level`. The last two also have a label `bound` taking values `min` and `max.\n - apiserver_flowcontrol_current_r: R(the time of the last change in state of the queues)\n - apiserver_flowcontrol_dispatch_r: R(the time of the latest request dispatch)\n - apiserver_flowcontrol_latest_s: S(the request last dispatched) = R(when that request starts executing in the virtual world)\n - apiserver_flowcontrol_next_s_bounds: min and max next S among non-empty queues\n - apiserver_flowcontrol_next_discounted_s_bounds: min and max next S - (sum [over requests executing] width * estimatedDuration) among non-empty queues ([#102859](https://github.com/kubernetes/kubernetes/pull/102859), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery and Instrumentation]", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102859", + "pr_number": 102859, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "102869": { + "commit": "79494183b784707d1a47f323432d46c2e437c9b6", + "text": "JSON logging format is no longer available by default in non-core Kubernetes Components and require owners to opt in.", + "markdown": "JSON logging format is no longer available by default in non-core Kubernetes Components and require owners to opt in. ([#102869](https://github.com/kubernetes/kubernetes/pull/102869), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Cluster Lifecycle and Instrumentation]", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102869", + "pr_number": 102869, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "102873": { + "commit": "a72296f1127ff87ee080b4992ad22aebeb2d05b8", + "text": "Deprecate `--record` flag in `kubectl`. The `--record` flag is being replaced with the [mechanism](https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers) which annotates HTTP requests with kubectl command details.", + "markdown": "Deprecate `--record` flag in `kubectl`. The `--record` flag is being replaced with the [mechanism](https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers) which annotates HTTP requests with kubectl command details. ([#102873](https://github.com/kubernetes/kubernetes/pull/102873), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102873", + "pr_number": 102873, + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true + }, + "102890": { + "commit": "3392f16908a84dd96a29d52d2edee159fcb6711f", + "text": "The client-go credential plugins are now GA and are enabled by default.", + "markdown": "The client-go credential plugins are now GA and are enabled by default. ([#102890](https://github.com/kubernetes/kubernetes/pull/102890), [@ankeesler](https://github.com/ankeesler))", + "author": "ankeesler", + "author_url": "https://github.com/ankeesler", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102890", + "pr_number": 102890, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "102892": { + "commit": "3be88d5d0f3a2a8607a50d3fd21c10143bd4916f", + "text": "For vSphere: fix regression during attach disk if datastore is within a storage folder or datastore cluster.", + "markdown": "For vSphere: fix regression during attach disk if datastore is within a storage folder or datastore cluster. ([#102892](https://github.com/kubernetes/kubernetes/pull/102892), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102892", + "pr_number": 102892, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "duplicate": true + }, + "102898": { + "commit": "e19dc07ac586aa6b7f88890a87673d59e3a1d37a", + "text": "The current behavior for Services that `IPFamilyPolicy` set as `PreferDualstack`. The current behavior when the cluster is upgraded to dual-stack is:\n- Services that have been set to IPFamilyPolicy = PreferDualstack will be upgraded when the service object is updated. e.g., when a user change a label.\n\nThis behavior will change to:\n- Services that have been set IPFamilyPolicy = PreferDualstack will not be upgraded when the service object is updated. User can still change policy, type etc and existing behaviors remain the same.", + "markdown": "The current behavior for Services that `IPFamilyPolicy` set as `PreferDualstack`. The current behavior when the cluster is upgraded to dual-stack is:\n - Services that have been set to IPFamilyPolicy = PreferDualstack will be upgraded when the service object is updated. e.g., when a user change a label.\n \n This behavior will change to:\n - Services that have been set IPFamilyPolicy = PreferDualstack will not be upgraded when the service object is updated. User can still change policy, type etc and existing behaviors remain the same. ([#102898](https://github.com/kubernetes/kubernetes/pull/102898), [@khenidak](https://github.com/khenidak)) [SIG Network and Testing]", + "author": "khenidak", + "author_url": "https://github.com/khenidak", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102898", + "pr_number": 102898, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true + }, + "102901": { + "commit": "c864f2357dfee68e0c15c70b168d8c319c274518", + "text": "kubeadm: add the `imagePullPolicy` field in the `nodeRegistration` section of `InitConfiguration` and `JoinConfiguration` in `v1beta3`. This allows the user to specify the image pull policy during \"kubeadm init\" and \"kubeadm join\". The value of this field must be one of `Always`, `IfNotPresent` or `Never`. The default behavior continues to be `IfNotPresent`.", + "markdown": "Kubeadm: add the `imagePullPolicy` field in the `nodeRegistration` section of `InitConfiguration` and `JoinConfiguration` in `v1beta3`. This allows the user to specify the image pull policy during \"kubeadm init\" and \"kubeadm join\". The value of this field must be one of `Always`, `IfNotPresent` or `Never`. The default behavior continues to be `IfNotPresent`. ([#102901](https://github.com/kubernetes/kubernetes/pull/102901), [@wangyysde](https://github.com/wangyysde))", + "author": "wangyysde", + "author_url": "https://github.com/wangyysde", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102901", + "pr_number": 102901, + "areas": [ + "kubeadm" + ], + "kinds": [ + "design", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "102925": { + "commit": "f899bbe4454d82a8b9a80ccfe0fb30b68d303483", + "text": "Fix scoring for `NodeResourcesMostAllocated` and `NodeResourcesBalancedAllocation` plugins when nodes have containers with no requests. This was leaving to under-utilization of small nodes.", + "markdown": "Fix scoring for `NodeResourcesMostAllocated` and `NodeResourcesBalancedAllocation` plugins when nodes have containers with no requests. This was leaving to under-utilization of small nodes. ([#102925](https://github.com/kubernetes/kubernetes/pull/102925), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102925", + "pr_number": 102925, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "102934": { + "commit": "f62b9dbd9248b3d88150a661c8afe7cff7fce8c7", + "text": "The `kube-apiserver` now reports the synthetic verb when logging requests, better explaining the user intent and matching what is reported in the metrics.", + "markdown": "The `kube-apiserver` now reports the synthetic verb when logging requests, better explaining the user intent and matching what is reported in the metrics. ([#102934](https://github.com/kubernetes/kubernetes/pull/102934), [@lavalamp](https://github.com/lavalamp))", + "author": "lavalamp", + "author_url": "https://github.com/lavalamp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102934", + "pr_number": 102934, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "102935": { + "commit": "3dbe33ae31bb9d0279f6bd14a7b8e97f190f8579", + "text": "Applying fix: cleanup outdated routes.", + "markdown": "Applying fix: cleanup outdated routes. ([#102935](https://github.com/kubernetes/kubernetes/pull/102935), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102935", + "pr_number": 102935, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "102964": { + "commit": "ce3bf862ee31026a6f99b4d75ad043d5d51552a7", + "text": "kubeadm: move the BootstrapToken* API and related utilities from v1beta3 to a separate API group/version - bootstraptoken/v1.", + "markdown": "Kubeadm: move the BootstrapToken* API and related utilities from v1beta3 to a separate API group/version - bootstraptoken/v1. ([#102964](https://github.com/kubernetes/kubernetes/pull/102964), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102964", + "pr_number": 102964, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "102965": { + "commit": "dc54636c6d46a9bc5455a2ddef1db8de9a6140d8", + "text": "Updates hostprocess tests to specify user.", + "markdown": "Updates hostprocess tests to specify user. ([#102965](https://github.com/kubernetes/kubernetes/pull/102965), [@jsturtevant](https://github.com/jsturtevant))", + "author": "jsturtevant", + "author_url": "https://github.com/jsturtevant", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102965", + "pr_number": 102965, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "testing", + "windows" + ], + "duplicate": true + }, + "102966": { + "commit": "8e56a3419572b066e11d8ce33eee443ee3317e77", + "text": "The feature Dynamic Kubelet Configuration is deprecated and kubelet will report warning when the flag `--dynamic-config-dir` is used. Feature gate `DynamicKubeletConfig` is disabled out of the box and needs to be explicitly enabled.", + "markdown": "The feature Dynamic Kubelet Configuration is deprecated and kubelet will report warning when the flag `--dynamic-config-dir` is used. Feature gate `DynamicKubeletConfig` is disabled out of the box and needs to be explicitly enabled. ([#102966](https://github.com/kubernetes/kubernetes/pull/102966), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Cloud Provider, Instrumentation and Node]", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102966", + "pr_number": 102966, + "areas": [ + "kubelet", + "provider/gcp" + ], + "kinds": [ + "api-change", + "cleanup", + "deprecation", + "documentation" + ], + "sigs": [ + "cloud-provider", + "instrumentation", + "node" + ], + "duplicate": true, + "duplicate_kind": true + }, + "102970": { + "commit": "a9d752686435f2088e460aaa162ee710d6c6b884", + "text": "Introducing Memory quality of service support with `cgroups v2 (Alpha)`. The `MemoryQoS` feature is now in Alpha. This allows `kubelet` running with `cgroups v2` to set memory QoS at container, pod and QoS level to protect and guarantee better memory quality. This feature can be enabled through feature gate Memory QoS.", + "markdown": "Introducing Memory quality of service support with `cgroups v2 (Alpha)`. The `MemoryQoS` feature is now in Alpha. This allows `kubelet` running with `cgroups v2` to set memory QoS at container, pod and QoS level to protect and guarantee better memory quality. This feature can be enabled through feature gate Memory QoS. ([#102970](https://github.com/kubernetes/kubernetes/pull/102970), [@borgerli](https://github.com/borgerli))", + "author": "borgerli", + "author_url": "https://github.com/borgerli", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102970", + "pr_number": 102970, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "storage" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "103001": { + "commit": "a0f9c8c2778b979cdd112d6802e3f41db19c2bc7", + "text": "The `CSIServiceAccountToken` graduates to Ga and is unconditionally enabled.", + "markdown": "The `CSIServiceAccountToken` graduates to Ga and is unconditionally enabled. ([#103001](https://github.com/kubernetes/kubernetes/pull/103001), [@zshihang](https://github.com/zshihang))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1855-csi-driver-service-account-token", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103001", + "pr_number": 103001, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "auth", + "storage" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "103019": { + "commit": "dd213f070ed1a0f553117762699dd7cf6ef202fb", + "text": "Fixed a bug that scheduler extenders are not called on preemptions.", + "markdown": "Fixed a bug that scheduler extenders are not called on preemptions. ([#103019](https://github.com/kubernetes/kubernetes/pull/103019), [@ordovicia](https://github.com/ordovicia))", + "author": "ordovicia", + "author_url": "https://github.com/ordovicia", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103019", + "pr_number": 103019, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "103057": { + "commit": "119b8fc93e788632ddd9ba61b6861435613b4305", + "text": "GCE Windows clusters have their TCP/IP parameters are set to GCE's recommended values.", + "markdown": "GCE Windows clusters have their TCP/IP parameters are set to GCE's recommended values. ([#103057](https://github.com/kubernetes/kubernetes/pull/103057), [@jeremyje](https://github.com/jeremyje)) [SIG Cloud Provider and Windows]", + "author": "jeremyje", + "author_url": "https://github.com/jeremyje", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103057", + "pr_number": 103057, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "windows" + ], + "duplicate": true + }, + "103063": { + "commit": "3f4c39bbd7b8d1dec2bc88c6f4c8e7ba6ba83169", + "text": "The flag `--experimental-patches` is now deprecated and will be removed in a future release. You can migrate to using the new flag `--patches`. Add a new field `{Init|Join}Configuration.patches.directory` that can be used for the same purpose. For `init` and `join` it is now recommended that you migrate to configure patches via `{Init|Join}Configuration.patches.directory`. For the time being, these flags can be mixed with `--config`, but that might change in the future. On a command line, the last *patches flag takes precedence over previous flags and the value in config. `kubeadm upgrade --patches` will continue to be the only available option, since `upgrade` does not support a configuration file yet.", + "markdown": "The flag `--experimental-patches` is now deprecated and will be removed in a future release. You can migrate to using the new flag `--patches`. Add a new field `{Init|Join}Configuration.patches.directory` that can be used for the same purpose. For `init` and `join` it is now recommended that you migrate to configure patches via `{Init|Join}Configuration.patches.directory`. For the time being, these flags can be mixed with `--config`, but that might change in the future. On a command line, the last *patches flag takes precedence over previous flags and the value in config. `kubeadm upgrade --patches` will continue to be the only available option, since `upgrade` does not support a configuration file yet. ([#103063](https://github.com/kubernetes/kubernetes/pull/103063), [@neolit123](https://github.com/neolit123))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/1739-customization-with-patches", + "type": "KEP" + }, + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/970-kubeadm-config", + "type": "KEP" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103063", + "pr_number": 103063, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "action_required": true + }, + "103082": { + "commit": "385402d5062324e3c078db580a51d96cb0157c53", + "text": "Enforce the `ReadWriteOncePod` PVC access mode during scheduling", + "markdown": "Enforce the `ReadWriteOncePod` PVC access mode during scheduling ([#103082](https://github.com/kubernetes/kubernetes/pull/103082), [@chrishenzie](https://github.com/chrishenzie))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2485-read-write-once-pod-pv-access-mode", + "type": "KEP" + } + ], + "author": "chrishenzie", + "author_url": "https://github.com/chrishenzie", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103082", + "pr_number": 103082, + "areas": [ + "kubectl", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "cli", + "node", + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "103099": { + "commit": "d92f6c424d621e9275fa49cbe57a7d501017ef0d", + "text": "kube-apiserver: the alpha PodSecurity feature can be enabled by passing `--feature-gates=PodSecurity=true`, and enables controlling allowed pods using namespace labels. See https://git.k8s.io/enhancements/keps/sig-auth/2579-psp-replacement for more details.", + "markdown": "Kube-apiserver: the alpha PodSecurity feature can be enabled by passing `--feature-gates=PodSecurity=true`, and enables controlling allowed pods using namespace labels. See https://git.k8s.io/enhancements/keps/sig-auth/2579-psp-replacement for more details. ([#103099](https://github.com/kubernetes/kubernetes/pull/103099), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Instrumentation, Release, Security and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://git.k8s.io/enhancements/keps/sig-auth/2579-psp-replacement", + "type": "external" + } + ], + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103099", + "pr_number": 103099, + "areas": [ + "apiserver", + "dependency", + "release-eng", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "release", + "security", + "testing" + ], + "feature": true, + "duplicate": true + }, + "103129": { + "commit": "92546107652d4df1ef67c095ace446b4bc825a23", + "text": "Featuregate `ServiceLoadBalancerClass` graduates to Beta and is enables by default.", + "markdown": "Featuregate `ServiceLoadBalancerClass` graduates to Beta and is enables by default. ([#103129](https://github.com/kubernetes/kubernetes/pull/103129), [@XudongLiuHarold](https://github.com/XudongLiuHarold))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cloud-provider/1959-service-lb-class-field", + "type": "KEP" + }, + { + "description": "[Issue]", + "url": "https://github.com/kubernetes/enhancements/issues/1959", + "type": "KEP" + } + ], + "author": "XudongLiuHarold", + "author_url": "https://github.com/XudongLiuHarold", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103129", + "pr_number": 103129, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ] + }, + "103133": { + "commit": "51e1969d9c64aaa6a049b3d121107a6f8550a2b3", + "text": "Switch scheduler to generate the merge patch on pod status instead of the full pod", + "markdown": "Switch scheduler to generate the merge patch on pod status instead of the full pod ([#103133](https://github.com/kubernetes/kubernetes/pull/103133), [@marwanad](https://github.com/marwanad)) [SIG Scheduling]", + "author": "marwanad", + "author_url": "https://github.com/marwanad", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103133", + "pr_number": 103133, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "103154": { + "commit": "49ab9ac160bcc34e32d7483d5212a9bad0c089ec", + "text": "Fixed SELinux relabeling of CSI volumes after CSI driver failure.", + "markdown": "Fixed SELinux relabeling of CSI volumes after CSI driver failure. ([#103154](https://github.com/kubernetes/kubernetes/pull/103154), [@jsafrane](https://github.com/jsafrane)) [SIG Node and Storage]", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103154", + "pr_number": 103154, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "storage" + ], + "duplicate": true + }, + "103168": { + "commit": "f0b7ad3ee06c5168fef5fa4f01fe445ece595f89", + "text": "Removed the feature flag for probe-level termination grace period from Kubelet. If a user wants to disable this feature on already created pods, they will have to delete and recreate the pods.", + "markdown": "Removed the feature flag for probe-level termination grace period from Kubelet. If a user wants to disable this feature on already created pods, they will have to delete and recreate the pods. ([#103168](https://github.com/kubernetes/kubernetes/pull/103168), [@raisaat](https://github.com/raisaat)) [SIG Apps and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2238-liveness-probe-grace-period", + "type": "KEP" + } + ], + "author": "raisaat", + "author_url": "https://github.com/raisaat", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103168", + "pr_number": 103168, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "103169": { + "commit": "df2e13376d7e22df391194055a17243774101f06", + "text": "Extended resources defined in `LeastAllocated`, `MostAllocated` and `RequestedToCapacityRatio` plugin argument are bypassed by the scheduler if the incoming Pod doesn't request them in the pod spec.", + "markdown": "Extended resources defined in `LeastAllocated`, `MostAllocated` and `RequestedToCapacityRatio` plugin argument are bypassed by the scheduler if the incoming Pod doesn't request them in the pod spec. ([#103169](https://github.com/kubernetes/kubernetes/pull/103169), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103169", + "pr_number": 103169, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "103176": { + "commit": "c14017b270d21e6a7e79c0b8872a580f43a67220", + "text": "Update golang.org/x/net to v0.0.0-20210520170846-37e1c6afe023", + "markdown": "Update golang.org/x/net to v0.0.0-20210520170846-37e1c6afe023 ([#103176](https://github.com/kubernetes/kubernetes/pull/103176), [@CaoDonghui123](https://github.com/CaoDonghui123)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Node and Storage]", + "author": "CaoDonghui123", + "author_url": "https://github.com/CaoDonghui123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103176", + "pr_number": 103176, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "node", + "storage" + ], + "duplicate": true + }, + "103190": { + "commit": "7ab6c5322cc7e1340cd6ad63db22daa99e3ef513", + "text": "The `ServiceAppProtocol` feature gate has been removed. It reached GA in Kubernetes", + "markdown": "The `ServiceAppProtocol` feature gate has been removed. It reached GA in Kubernetes ([#103190](https://github.com/kubernetes/kubernetes/pull/103190), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103190", + "pr_number": 103190, + "kinds": [ + "api-change", + "cleanup" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "103216": { + "commit": "694d6cd2b9515fb4af5870b394fc60a505ba5c78", + "text": "APIServerTracing now collects spans from etcd client calls, and propagates context to etcd.", + "markdown": "APIServerTracing now collects spans from etcd client calls, and propagates context to etcd. ([#103216](https://github.com/kubernetes/kubernetes/pull/103216), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Cloud Provider and Instrumentation]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/0034-distributed-tracing-kep.md", + "type": "KEP" + } + ], + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103216", + "pr_number": 103216, + "areas": [ + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "103218": { + "commit": "df95052de3c5036e6653eca26e38dc9e79d25455", + "text": "API Server tracing can now trace re-entrant api requests.", + "markdown": "API Server tracing can now trace re-entrant api requests. ([#103218](https://github.com/kubernetes/kubernetes/pull/103218), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/0034-distributed-tracing-kep.md", + "type": "KEP" + } + ], + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103218", + "pr_number": 103218, + "areas": [ + "apiserver", + "cloudprovider", + "dependency", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "103235": { + "commit": "e974bcd471fa562a000ca9780a479c01b0dfe84f", + "text": "Updates the following images to pick up CVE fixes:\n- `debian` to v1.8.0\n- `debian-iptables` to v1.6.5\n- `setcap` to v2.0.3", + "markdown": "Updates the following images to pick up CVE fixes:\n - `debian` to v1.8.0\n - `debian-iptables` to v1.6.5\n - `setcap` to v2.0.3 ([#103235](https://github.com/kubernetes/kubernetes/pull/103235), [@thejoycekung](https://github.com/thejoycekung)) [SIG API Machinery, Release and Testing]", + "author": "thejoycekung", + "author_url": "https://github.com/thejoycekung", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103235", + "pr_number": 103235, + "areas": [ + "dependency", + "release-eng", + "security", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "103238": { + "commit": "657d93c4cc5201a9fc8a5ba1258d05d81ef39cbd", + "text": "Make kubectl command headers default for beta.", + "markdown": "Make kubectl command headers default for beta. ([#103238](https://github.com/kubernetes/kubernetes/pull/103238), [@seans3](https://github.com/seans3)) [SIG CLI]", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103238", + "pr_number": 103238, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "103244": { + "commit": "15222a599fbef90566a4f988e0468e60f82588f5", + "text": "The CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate applying FSGroup to the driver by passing it to `NodeStageVolume` and `NodePublishVolume`, regardless of what other `FSGroup` policies are set, this is an alpha feature.", + "markdown": "The CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate applying FSGroup to the driver by passing it to `NodeStageVolume` and `NodePublishVolume`, regardless of what other `FSGroup` policies are set, this is an alpha feature. ([#103244](https://github.com/kubernetes/kubernetes/pull/103244), [@verult](https://github.com/verult))", + "author": "verult", + "author_url": "https://github.com/verult", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103244", + "pr_number": 103244, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "storage" + ], + "feature": true, + "duplicate": true + }, + "103245": { + "commit": "e375563732a6f5e4a981300f5776b3aa456956a7", + "text": "If someone had the `ProbeTerminationGracePeriod` alpha feature enabled in 1.21, they should update/delete any workloads/pods with probe `terminationGracePeriods` \u003c 1 before upgrading", + "markdown": "If someone had the `ProbeTerminationGracePeriod` alpha feature enabled in 1.21, they should update/delete any workloads/pods with probe `terminationGracePeriods` \u003c 1 before upgrading ([#103245](https://github.com/kubernetes/kubernetes/pull/103245), [@wzshiming](https://github.com/wzshiming))", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103245", + "pr_number": 103245, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "103276": { + "commit": "eaba61b4de9db615c73f868468ae2f816a4fe1c4", + "text": "Add `DataSourceRef` alpha field to PVC spec, which allows contents other than `PVCs` and `VolumeSnapshots` to be data sources.", + "markdown": "Add `DataSourceRef` alpha field to PVC spec, which allows contents other than `PVCs` and `VolumeSnapshots` to be data sources. ([#103276](https://github.com/kubernetes/kubernetes/pull/103276), [@bswartz](https://github.com/bswartz))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1495-volume-populators", + "type": "KEP" + } + ], + "author": "bswartz", + "author_url": "https://github.com/bswartz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103276", + "pr_number": 103276, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "storage" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "103284": { + "commit": "1b60d456c4509ca9f87d7f515fdaa0822b5148e9", + "text": "Fix the code is leaking the defaulting between unrelated pod instances.", + "markdown": "Fix the code is leaking the defaulting between unrelated pod instances. ([#103284](https://github.com/kubernetes/kubernetes/pull/103284), [@kebe7jun](https://github.com/kebe7jun)) [SIG CLI]", + "author": "kebe7jun", + "author_url": "https://github.com/kebe7jun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103284", + "pr_number": 103284, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "103292": { + "commit": "6fc7dd5137956b93843a8cb459e106719e237a57", + "text": "The `kubectl debug` is able to create ephemeral containers in pre-1.22 clusters with the `EphemeralContainers` feature enabled. Note that versions of kubectl prior to 1.22 are unable to create ephemeral containers in clusters version 1.22 and greater due to an API change.", + "markdown": "The `kubectl debug` is able to create ephemeral containers in pre-1.22 clusters with the `EphemeralContainers` feature enabled. Note that versions of kubectl prior to 1.22 are unable to create ephemeral containers in clusters version 1.22 and greater due to an API change. ([#103292](https://github.com/kubernetes/kubernetes/pull/103292), [@verb](https://github.com/verb))", + "author": "verb", + "author_url": "https://github.com/verb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103292", + "pr_number": 103292, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "103306": { + "commit": "43ebff8fa4365df10852f3be04ef1750d63243b4", + "text": "Kube-proxy uses V1 `EndpointSlices`.", + "markdown": "Kube-proxy uses V1 `EndpointSlices`. ([#103306](https://github.com/kubernetes/kubernetes/pull/103306), [@swetharepakula](https://github.com/swetharepakula))", + "author": "swetharepakula", + "author_url": "https://github.com/swetharepakula", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103306", + "pr_number": 103306, + "areas": [ + "ipvs" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "duplicate_kind": true + }, + "103307": { + "commit": "2547c5bb978925aa805253e7a07ca1d00d542523", + "text": "kubelet: the returned value for PodIPs is the same in the Downward API and in the `pod.status.PodIPs` field", + "markdown": "Kubelet: the returned value for PodIPs is the same in the Downward API and in the `pod.status.PodIPs` field ([#103307](https://github.com/kubernetes/kubernetes/pull/103307), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103307", + "pr_number": 103307, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true + }, + "103313": { + "commit": "7eaf2ebab22b2e0cc563fbcc4f8393cae46aaf84", + "text": "kubeadm: fix a bug where `kubeadm join` for control plane nodes would download certificates and keys from the cluster, but would not write publicly readable certificates and public keys with mode `0644` and instead use mode `0600`.", + "markdown": "Kubeadm: fix a bug where `kubeadm join` for control plane nodes would download certificates and keys from the cluster, but would not write publicly readable certificates and public keys with mode `0644` and instead use mode `0600`. ([#103313](https://github.com/kubernetes/kubernetes/pull/103313), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103313", + "pr_number": 103313, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "103318": { + "commit": "0dad7d1c47c41f232b21cdd5c21be6683e545e9d", + "text": "Fix performance regression for update and apply operations on large CRDs.", + "markdown": "Fix performance regression for update and apply operations on large CRDs. ([#103318](https://github.com/kubernetes/kubernetes/pull/103318), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Storage]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103318", + "pr_number": 103318, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "storage" + ], + "duplicate": true, + "duplicate_kind": true + }, + "103326": { + "commit": "b0af328e6eddc2bd645aa2e7339a435705818ddd", + "text": "Mark `net.ipv4.ip_unprivileged_port_start` as safe `sysctl`.", + "markdown": "Mark `net.ipv4.ip_unprivileged_port_start` as safe `sysctl`. ([#103326](https://github.com/kubernetes/kubernetes/pull/103326), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103326", + "pr_number": 103326, + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "network", + "node", + "security" + ], + "feature": true, + "duplicate": true + }, + "103383": { + "commit": "6ed98b60f09fb8219f53f3176219e5bf9c8e57f3", + "text": "Scheduler nows provides an option for plugin developers to move `Pods` to activeQ.", + "markdown": "Scheduler nows provides an option for plugin developers to move `Pods` to activeQ. ([#103383](https://github.com/kubernetes/kubernetes/pull/103383), [@Huang-Wei](https://github.com/Huang-Wei))", + "documentation": [ + { + "description": "[Design doc]", + "url": "https://docs.google.com/document/d/1mdOJN9ceICMTh4sbSZezK5WuzH9OM8ou6IVuyN3CY0U/view", + "type": "external" + } + ], + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103383", + "pr_number": 103383, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true + }, + "103390": { + "commit": "f166221f106a21f6ea56101a0a25faac33455d01", + "text": "Update the system-validators library to v1.5.0. Includes validation for `seccomp` and fixes a stdout/stderr problem in the Docker validator.", + "markdown": "Update the system-validators library to v1.5.0. Includes validation for `seccomp` and fixes a stdout/stderr problem in the Docker validator. ([#103390](https://github.com/kubernetes/kubernetes/pull/103390), [@ironyman](https://github.com/ironyman))", + "author": "ironyman", + "author_url": "https://github.com/ironyman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103390", + "pr_number": 103390, + "areas": [ + "dependency" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "103414": { + "commit": "ac6a1b1821c046d888955fd1cfaeb78dabcc84d7", + "text": "Disruption controller shouldn't error while syncing for unmanaged pods.", + "markdown": "Disruption controller shouldn't error while syncing for unmanaged pods. ([#103414](https://github.com/kubernetes/kubernetes/pull/103414), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Apps and Testing]", + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103414", + "pr_number": 103414, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "103419": { + "commit": "10ba908d747258e6ed288932ce2593fb3936f1d5", + "text": "Upgrades functionality of `kubectl kustomize` as described at\nhttps://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.2.0", + "markdown": "Upgrades functionality of `kubectl kustomize` as described at\n https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.2.0 ([#103419](https://github.com/kubernetes/kubernetes/pull/103419), [@natasha41575](https://github.com/natasha41575)) [SIG CLI]", + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103419", + "pr_number": 103419, + "areas": [ + "dependency", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "103451": { + "commit": "8fb777efb001c364cf64273b9cdfca4652bd347a", + "text": "Features gates `EndpointSliceProxying` \u0026 `WindowsEndpointSliceProxying` graduates to GA and are unconditionally enabled. Kube-proxy will use EndpointSlices for endpoint information.", + "markdown": "Features gates `EndpointSliceProxying` \u0026 `WindowsEndpointSliceProxying` graduates to GA and are unconditionally enabled. Kube-proxy will use EndpointSlices for endpoint information. ([#103451](https://github.com/kubernetes/kubernetes/pull/103451), [@swetharepakula](https://github.com/swetharepakula))", + "author": "swetharepakula", + "author_url": "https://github.com/swetharepakula", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103451", + "pr_number": 103451, + "areas": [ + "ipvs" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "duplicate_kind": true + }, + "103457": { + "commit": "ace5482c9fd707a29f4626e7d78b4041b994b618", + "text": "YAML documents separators (\"---\") can now be followed by whitespace and comments (\"# ....\") on the same line. This fixes a bug where documents starting with a comment after the separator were ignored. Other types of content on the same line will result in an error.", + "markdown": "YAML documents separators (\"---\") can now be followed by whitespace and comments (\"# ....\") on the same line. This fixes a bug where documents starting with a comment after the separator were ignored. Other types of content on the same line will result in an error. ([#103457](https://github.com/kubernetes/kubernetes/pull/103457), [@codearky](https://github.com/codearky)) [SIG API Machinery]", + "author": "codearky", + "author_url": "https://github.com/codearky", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103457", + "pr_number": 103457, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "103462": { + "commit": "28f3f365057f06be12ecb69642b17509aab87269", + "text": "The `ServiceInternalTrafficPolicy` feature graduates to Beta and enable by default, which enables the `internalTrafficPolicy` field of Service by default.", + "markdown": "The `ServiceInternalTrafficPolicy` feature graduates to Beta and enable by default, which enables the `internalTrafficPolicy` field of Service by default. ([#103462](https://github.com/kubernetes/kubernetes/pull/103462), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103462", + "pr_number": 103462, + "areas": [ + "ipvs" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "network" + ], + "feature": true, + "duplicate": true + }, + "103470": { + "commit": "103212febcf3bfbbc4f1ac411a980e39e77dfa76", + "text": "fix: return empty VMAS name if using standalone VM", + "markdown": "Fix: return empty VMAS name if using standalone VM ([#103470](https://github.com/kubernetes/kubernetes/pull/103470), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider]", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103470", + "pr_number": 103470, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "103514": { + "commit": "24238425492227fdbb55c687fd4e94c8b58c1ee3", + "text": "The `kubectl get` now truncates multi-line strings to avoid breaking printing", + "markdown": "The `kubectl get` now truncates multi-line strings to avoid breaking printing ([#103514](https://github.com/kubernetes/kubernetes/pull/103514), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103514", + "pr_number": 103514, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true + }, + "103520": { + "commit": "16af282ee71e9c0f2a96d86c334a01ba0d9e1668", + "text": "Endpoints that have more than 1000 endpoints will be truncated and the `endpoints.kubernetes.io/over-capacity` annotation on the Endpoints resource will be set to `truncated`.", + "markdown": "Endpoints that have more than 1000 endpoints will be truncated and the `endpoints.kubernetes.io/over-capacity` annotation on the Endpoints resource will be set to `truncated`. ([#103520](https://github.com/kubernetes/kubernetes/pull/103520), [@swetharepakula](https://github.com/swetharepakula)) [SIG Apps and Network]", + "author": "swetharepakula", + "author_url": "https://github.com/swetharepakula", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103520", + "pr_number": 103520, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "network" + ], + "feature": true, + "duplicate": true + }, + "103524": { + "commit": "006d5b85392c40d21e35eb9b4f09981e7b21f812", + "text": "Updated command descriptions and examples for grammar and punctuation consistency.", + "markdown": "Updated command descriptions and examples for grammar and punctuation consistency. ([#103524](https://github.com/kubernetes/kubernetes/pull/103524), [@bergerhoffer](https://github.com/bergerhoffer)) [SIG Auth and CLI]", + "author": "bergerhoffer", + "author_url": "https://github.com/bergerhoffer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103524", + "pr_number": 103524, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "cli" + ], + "duplicate": true + }, + "103533": { + "commit": "60756214d82dea25174ec84c0cbf69a1783fb84e", + "text": "Leader Migration for controller managers graduated to beta.", + "markdown": "Leader Migration for controller managers graduated to beta. ([#103533](https://github.com/kubernetes/kubernetes/pull/103533), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery and Cloud Provider]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2436", + "type": "KEP" + } + ], + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103533", + "pr_number": 103533, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "103541": { + "commit": "f915aa39e80260e23fdc2453566f4942d2ad96d1", + "text": "Metrics Server will use Addon Manager 1.8.3", + "markdown": "Metrics Server will use Addon Manager 1.8.3 ([#103541](https://github.com/kubernetes/kubernetes/pull/103541), [@jbartosik](https://github.com/jbartosik)) [SIG Cloud Provider and Instrumentation]", + "author": "jbartosik", + "author_url": "https://github.com/jbartosik", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103541", + "pr_number": 103541, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "instrumentation" + ], + "duplicate": true + }, + "103553": { + "commit": "de0670ca0d770a3947af5aaee63ffd5bbf8c8d85", + "text": "NodeSwapEnabled feature flag was renamed to NodeSwap\n\nThe flag was only available in the 1.22.0-beta.1 release, and the new flag should be used going forward.", + "markdown": "NodeSwapEnabled feature flag was renamed to NodeSwap\n \n The flag was only available in the 1.22.0-beta.1 release, and the new flag should be used going forward. ([#103553](https://github.com/kubernetes/kubernetes/pull/103553), [@ehashman](https://github.com/ehashman)) [SIG Node]", + "author": "ehashman", + "author_url": "https://github.com/ehashman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103553", + "pr_number": 103553, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "cleanup" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "action_required": true + }, + "103596": { + "commit": "29652248ebe229a9dc6f64c3e37c9980cd755bfd", + "text": "Promote `EndpointSliceTerminatingCondition` to Beta. This enables the `terminating` and `serving` conditions for EndpointSlice by default.", + "markdown": "Promote `EndpointSliceTerminatingCondition` to Beta. This enables the `terminating` and `serving` conditions for EndpointSlice by default. ([#103596](https://github.com/kubernetes/kubernetes/pull/103596), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103596", + "pr_number": 103596, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "testing" + ], + "feature": true, + "duplicate": true + }, + "103601": { + "commit": "584658a17d958f0b663cb39dec1907cbba641300", + "text": "APIServerTracing now collects spans from outgoing requests to admission webhooks.", + "markdown": "APIServerTracing now collects spans from outgoing requests to admission webhooks. ([#103601](https://github.com/kubernetes/kubernetes/pull/103601), [@dashpole](https://github.com/dashpole)) [SIG API Machinery]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/0034-distributed-tracing-kep.md", + "type": "KEP" + } + ], + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103601", + "pr_number": 103601, + "areas": [ + "apiserver", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "103669": { + "commit": "ab609a418ea804c896cbcba4d93a77e46ca76dff", + "text": "Kubernetes is now built with Golang 1.16.6", + "markdown": "Kubernetes is now built with Golang 1.16.6 ([#103669](https://github.com/kubernetes/kubernetes/pull/103669), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103669", + "pr_number": 103669, + "areas": [ + "dependency", + "provider/gcp", + "release-eng", + "security", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "instrumentation", + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "103703": { + "commit": "7fd021ba6af9f7466acd1cc104e5d46bc7e6cd6f", + "text": "Aggregated roles no longer include write access to `EndpointSlices`. This rolls back part of a change that was introduced earlier in the Kubernetes 1.22 cycle.", + "markdown": "Aggregated roles no longer include write access to `EndpointSlices`. This rolls back part of a change that was introduced earlier in the Kubernetes 1.22 cycle. ([#103703](https://github.com/kubernetes/kubernetes/pull/103703), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103703", + "pr_number": 103703, + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "network" + ], + "duplicate": true + }, + "103704": { + "commit": "e847b849c4d170b872d6020bfc2263d02c05e369", + "text": "The `system:aggregate-to-edit` role no longer includes write access to the Endpoints API. For new Kubernetes 1.22 clusters, the `edit` and `admin` roles will no longer include that access in newly created Kubernetes 1.22 clusters. This will have no affect on existing clusters upgrading to Kubernetes 1.22. To retain write access to Endpoints in the aggregated `edit` and `admin` roles for newly created 1.22 clusters, refer to https://github.com/kubernetes/website/pull/29025.", + "markdown": "The `system:aggregate-to-edit` role no longer includes write access to the Endpoints API. For new Kubernetes 1.22 clusters, the `edit` and `admin` roles will no longer include that access in newly created Kubernetes 1.22 clusters. This will have no affect on existing clusters upgrading to Kubernetes 1.22. To retain write access to Endpoints in the aggregated `edit` and `admin` roles for newly created 1.22 clusters, refer to https://github.com/kubernetes/website/pull/29025. ([#103704](https://github.com/kubernetes/kubernetes/pull/103704), [@robscott](https://github.com/robscott)) [SIG Auth and Network]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103704", + "pr_number": 103704, + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "network" + ], + "duplicate": true + }, + "103747": { + "commit": "7303b2ce4e0de8d97e677eee880fa12b4d4939c1", + "text": "Revert addition of Add `PersistentVolumeClaimDeletePoilcy` to `StatefulSet`API.", + "markdown": "Revert addition of Add `PersistentVolumeClaimDeletePoilcy` to `StatefulSet`API. ([#103747](https://github.com/kubernetes/kubernetes/pull/103747), [@mattcary](https://github.com/mattcary))", + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103747", + "pr_number": 103747, + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "103785": { + "commit": "9f47110aa29094ed2878cf1d85874cb59214664a", + "text": "The reason and message fields for pod status are no longer reset unless the phase also changes.", + "markdown": "The reason and message fields for pod status are no longer reset unless the phase also changes. ([#103785](https://github.com/kubernetes/kubernetes/pull/103785), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103785", + "pr_number": 103785, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "68004": { + "commit": "d8f3794b83c20a0ebafa09a0742a53a76d2786c2", + "text": "Fluentd: isolate logging resources in separate namespace `logging`", + "markdown": "Fluentd: isolate logging resources in separate namespace `logging` ([#68004](https://github.com/kubernetes/kubernetes/pull/68004), [@saravanan30erd](https://github.com/saravanan30erd))", + "author": "saravanan30erd", + "author_url": "https://github.com/saravanan30erd", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/68004", + "pr_number": 68004, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "90368": { + "commit": "e6a8bc9fbe9ce428f6b97630d931ba2b6aa70a91", + "text": "kube-controller-manager: the `--horizontal-pod-autoscaler-use-rest-clients` flag and Heapster support in the horizontal pod autoscaler, deprecated since 1.12, is removed.", + "markdown": "Kube-controller-manager: the `--horizontal-pod-autoscaler-use-rest-clients` flag and Heapster support in the horizontal pod autoscaler, deprecated since 1.12, is removed. ([#90368](https://github.com/kubernetes/kubernetes/pull/90368), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/90368", + "pr_number": 90368, + "areas": [ + "dependency", + "provider/gcp" + ], + "kinds": [ + "api-change", + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "autoscaling", + "cloud-provider", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true + }, + "92372": { + "commit": "77aa52a09ab533947846158eab93bd541de82c7d", + "text": "Treat VSphere \"File (vmdk path here) was not found\" errors as success during volume deletion", + "markdown": "Treat VSphere \"File (vmdk path here) was not found\" errors as success during volume deletion ([#92372](https://github.com/kubernetes/kubernetes/pull/92372), [@breunigs](https://github.com/breunigs)) [SIG Cloud Provider and Storage]", + "documentation": [ + { + "url": "https://code.vmware.com/apis/196/vsphere/doc/vim.VirtualDiskManager.html#deleteVirtualDisk", + "type": "external" + } + ], + "author": "breunigs", + "author_url": "https://github.com/breunigs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92372", + "pr_number": 92372, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "storage" + ], + "duplicate": true + }, + "92739": { + "commit": "ebd61572c579476a6537b9002d90c978f24dda4e", + "text": "An audit log entry will be generated when a `ValidatingAdmissionWebhook` is failing to open.", + "markdown": "An audit log entry will be generated when a `ValidatingAdmissionWebhook` is failing to open. ([#92739](https://github.com/kubernetes/kubernetes/pull/92739), [@cnphil](https://github.com/cnphil))", + "author": "cnphil", + "author_url": "https://github.com/cnphil", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92739", + "pr_number": 92739, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "92863": { + "commit": "ebbe63f116500b5f3c4fcd1dacbc8d7eb1c7e7a2", + "text": "Adds feature gate `KubeletInUserNamespace` which enables support for running kubelet in a user namespace.\n\nThe user namespace has to be created before running kubelet.\nAll the node components such as CRI need to be running in the same user namespace.\n\nWhen the feature gate is enabled, kubelet ignores errors that happens during setting the following sysctl values: `vm.overcommit_memory`, `vm.panic_on_oom`, `kernel.panic`, `kernel.panic_on_oops`, `kernel.keys.root_maxkeys`, `kernel.keys.root_maxbytes`. (These sysctl values for the host, not for the containers)\n\nkubelet also ignores an error during opening `/dev/kmsg`.\nThis feature gate also allows kube-proxy to ignore an error during setting `RLIMIT_NOFILE`.\n\nThis feature gate is especially useful for running Kubernetes inside Rootless Docker/Podman with `kind` or `minikube`.", + "markdown": "Adds feature gate `KubeletInUserNamespace` which enables support for running kubelet in a user namespace.\n \n The user namespace has to be created before running kubelet.\n All the node components such as CRI need to be running in the same user namespace.\n \n When the feature gate is enabled, kubelet ignores errors that happens during setting the following sysctl values: `vm.overcommit_memory`, `vm.panic_on_oom`, `kernel.panic`, `kernel.panic_on_oops`, `kernel.keys.root_maxkeys`, `kernel.keys.root_maxbytes`. (These sysctl values for the host, not for the containers)\n \n kubelet also ignores an error during opening `/dev/kmsg`.\n This feature gate also allows kube-proxy to ignore an error during setting `RLIMIT_NOFILE`.\n \n This feature gate is especially useful for running Kubernetes inside Rootless Docker/Podman with `kind` or `minikube`. ([#92863](https://github.com/kubernetes/kubernetes/pull/92863), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Network, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2033-kubelet-in-userns-aka-rootless", + "type": "KEP" + } + ], + "author": "AkihiroSuda", + "author_url": "https://github.com/AkihiroSuda", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92863", + "pr_number": 92863, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "93260": { + "commit": "4c9e55a44f1d1574bd805de1c37656573320d33e", + "text": "Reduces delay initializing on non-AWS platforms docker runtime.", + "markdown": "Reduces delay initializing on non-AWS platforms docker runtime. ([#93260](https://github.com/kubernetes/kubernetes/pull/93260), [@nckturner](https://github.com/nckturner)) [SIG Cloud Provider]", + "author": "nckturner", + "author_url": "https://github.com/nckturner", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/93260", + "pr_number": 93260, + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "94942": { + "commit": "12eb461acfb2279524d07f5ed95dd20e2e472939", + "text": "Add distributed tracing to the `kube-apiserver`. It is can be enabled with the feature gate `APIServerTracing`", + "markdown": "Add distributed tracing to the `kube-apiserver`. It is can be enabled with the feature gate `APIServerTracing` ([#94942](https://github.com/kubernetes/kubernetes/pull/94942), [@dashpole](https://github.com/dashpole))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/0034-distributed-tracing-kep.md", + "type": "KEP" + } + ], + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94942", + "pr_number": 94942, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kubectl", + "provider/gcp", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "node", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "95286": { + "commit": "21ab9c417562223bfe3329830788bc05ee29fb3f", + "text": "The `PodUnknown` phase is now deprecated.", + "markdown": "The `PodUnknown` phase is now deprecated. ([#95286](https://github.com/kubernetes/kubernetes/pull/95286), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95286", + "pr_number": 95286, + "areas": [ + "kubectl", + "test" + ], + "kinds": [ + "api-change", + "cleanup", + "deprecation" + ], + "sigs": [ + "apps", + "cli", + "network", + "node", + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "95387": { + "commit": "b81a36021f0a6d3d4944c3aba779e0174955515c", + "text": "Audit log files are now created with a mode of 0600. Existing file permissions will not be changed. If you need the audit file to be readable by a non-root user, you can pre-create the file with the desired permissions.", + "markdown": "Audit log files are now created with a mode of 0600. Existing file permissions will not be changed. If you need the audit file to be readable by a non-root user, you can pre-create the file with the desired permissions. ([#95387](https://github.com/kubernetes/kubernetes/pull/95387), [@JAORMX](https://github.com/JAORMX)) [SIG API Machinery and Auth]", + "author": "JAORMX", + "author_url": "https://github.com/JAORMX", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95387", + "pr_number": 95387, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "action_required": true + }, + "95396": { + "commit": "96e4e953978416e164e001abd2c607ce357fdd46", + "text": "New metrics: `apiserver_kube_aggregator_x509_missing_san_total` and `apiserver_webhooks_x509_missing_san_total`. This metric measures a number of connections to webhooks/aggregated API servers that use certificates without Subject Alternative Names. It being non-zero is a warning sign that these connections will stop functioning in the future since Golang is going to deprecate x509 certificate subject Common Names for server hostname verification.", + "markdown": "New metrics: `apiserver_kube_aggregator_x509_missing_san_total` and `apiserver_webhooks_x509_missing_san_total`. This metric measures a number of connections to webhooks/aggregated API servers that use certificates without Subject Alternative Names. It being non-zero is a warning sign that these connections will stop functioning in the future since Golang is going to deprecate x509 certificate subject Common Names for server hostname verification. ([#95396](https://github.com/kubernetes/kubernetes/pull/95396), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Auth and Instrumentation]", + "documentation": [ + { + "description": "[Other doc]", + "url": "https://golang.org/doc/go1.15#commonname", + "type": "external" + }, + { + "description": "[Other doc]", + "url": "https://tools.ietf.org/html/rfc6125#section-6.4.4 RFC making CN-ID fallback optional", + "type": "external" + } + ], + "author": "stlaz", + "author_url": "https://github.com/stlaz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95396", + "pr_number": 95396, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "96084": { + "commit": "0cbf00ad018d5104e438b5693fde435fa06e30c9", + "text": "Secret values are now masked by default in `kubectl diff` output.", + "markdown": "Secret values are now masked by default in `kubectl diff` output. ([#96084](https://github.com/kubernetes/kubernetes/pull/96084), [@loozhengyuan](https://github.com/loozhengyuan))", + "author": "loozhengyuan", + "author_url": "https://github.com/loozhengyuan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96084", + "pr_number": 96084, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "96087": { + "commit": "f7d2ecdc3e52b408833aa6269c57ad9ef408467e", + "text": "Shell completion has been migrated to Cobra's go solution. `kubectl` is now smarter about disabling file completion when it does not apply. Furthermore, completion for the `cp` command does not show all files unless the user has started typing something.", + "markdown": "Shell completion has been migrated to Cobra's go solution. `kubectl` is now smarter about disabling file completion when it does not apply. Furthermore, completion for the `cp` command does not show all files unless the user has started typing something. ([#96087](https://github.com/kubernetes/kubernetes/pull/96087), [@marckhouzam](https://github.com/marckhouzam)) [SIG CLI]", + "author": "marckhouzam", + "author_url": "https://github.com/marckhouzam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96087", + "pr_number": 96087, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "96216": { + "commit": "7563d3092eb28e4d88041f2fba65de0f2a536c49", + "text": "controller-manager: the following flags have no effect and would be removed in v1.24:\n- `--port`\n- `--address`\nThe insecure port flags `--port` may only be set to 0 now.\n\nIn addtion, please be careful that:\n- controller-manager MUST start with `--authorization-kubeconfig` and `--authentication-kubeconfig` correctly set to get authentication/authorization working.\n- liveness/readiness probes to controller-manager MUST use HTTPS now, and the default port has been changed to 10257.\n- Applications that fetch metrics from controller-manager should use a dedicated service account which is allowed to access nonResourceURLs `/metrics`.", + "markdown": "Controller-manager: the following flags have no effect and would be removed in v1.24:\n - `--port`\n - `--address`\n The insecure port flags `--port` may only be set to 0 now.\n \n In addtion, please be careful that:\n - controller-manager MUST start with `--authorization-kubeconfig` and `--authentication-kubeconfig` correctly set to get authentication/authorization working.\n - liveness/readiness probes to controller-manager MUST use HTTPS now, and the default port has been changed to 10257.\n - Applications that fetch metrics from controller-manager should use a dedicated service account which is allowed to access nonResourceURLs `/metrics`. ([#96216](https://github.com/kubernetes/kubernetes/pull/96216), [@knight42](https://github.com/knight42)) [SIG API Machinery, Cloud Provider, Instrumentation and Testing]", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96216", + "pr_number": 96216, + "areas": [ + "e2e-test-framework", + "provider/gcp", + "test" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "instrumentation", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "96702": { + "commit": "c05810cc5d7dc1ca4d67a3557fec8961a21daeb8", + "text": "The `kubectl wait --for=delete` command now ignores the not found error correctly.", + "markdown": "The `kubectl wait --for=delete` command now ignores the not found error correctly. ([#96702](https://github.com/kubernetes/kubernetes/pull/96702), [@lingsamuel](https://github.com/lingsamuel))", + "author": "lingsamuel", + "author_url": "https://github.com/lingsamuel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96702", + "pr_number": 96702, + "areas": [ + "kubectl", + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "96959": { + "commit": "9b7b966508001b2821232c01d06c611ec5a5159e", + "text": "Reorganized iptables rules to reduce rules in `KUBE-SERVICES` and `KUBE-NODEPORTS`.", + "markdown": "Reorganized iptables rules to reduce rules in `KUBE-SERVICES` and `KUBE-NODEPORTS`. ([#96959](https://github.com/kubernetes/kubernetes/pull/96959), [@tssurya](https://github.com/tssurya))", + "author": "tssurya", + "author_url": "https://github.com/tssurya", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96959", + "pr_number": 96959, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "97028": { + "commit": "af60bebde37f23cbced54ac248ba00df2b661c92", + "text": "Adding `--restart-kubelet` flag on E2E Node test suite", + "markdown": "Adding `--restart-kubelet` flag on E2E Node test suite ([#97028](https://github.com/kubernetes/kubernetes/pull/97028), [@knabben](https://github.com/knabben)) [SIG Node and Testing]", + "author": "knabben", + "author_url": "https://github.com/knabben", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97028", + "pr_number": 97028, + "areas": [ + "e2e-test-framework", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "97238": { + "commit": "db3a216fbbe569d113ba84b06c9b7f34cf26a50e", + "text": "Services with `externalTrafficPolicy: Local` now support graceful termination when using\nthe iptables or ipvs mode of kube-proxy with `EndpointSlices` enabled. Specifically, if a\nconnection for such a service arrives on a node when there are no \"Ready\" endpoints\nfor the service, but there is at least one Terminating pod for that service on the node,\nthen kube-proxy will send the traffic to the Terminating pod rather than dropping it. This\npatches up a race condition between when a pod is killed and when the external load\nbalancer notices that it has been killed.", + "markdown": "Services with `externalTrafficPolicy: Local` now support graceful termination when using\n the iptables or ipvs mode of kube-proxy with `EndpointSlices` enabled. Specifically, if a\n connection for such a service arrives on a node when there are no \"Ready\" endpoints\n for the service, but there is at least one Terminating pod for that service on the node,\n then kube-proxy will send the traffic to the Terminating pod rather than dropping it. This\n patches up a race condition between when a pod is killed and when the external load\n balancer notices that it has been killed. ([#97238](https://github.com/kubernetes/kubernetes/pull/97238), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97238", + "pr_number": 97238, + "areas": [ + "ipvs" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "scalability", + "windows" + ], + "feature": true, + "duplicate": true + }, + "97796": { + "commit": "1d38084930b56be9b5830c20bd5b464b1f955047", + "text": "Migrate `proxy/ipvs/proxier.go` logs to structured logging.", + "markdown": "Migrate `proxy/ipvs/proxier.go` logs to structured logging. ([#97796](https://github.com/kubernetes/kubernetes/pull/97796), [@JornShen](https://github.com/JornShen))", + "author": "JornShen", + "author_url": "https://github.com/JornShen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97796", + "pr_number": 97796, + "areas": [ + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "97968": { + "commit": "dd72c4534c112baa6a4d91ee283bc66e6d71fd6b", + "text": "Removed `/sbin/apparmor_parser` requirement for the AppArmor host validation.\nThis allows using AppArmor on distributions which ship the binary in a different path.", + "markdown": "Removed `/sbin/apparmor_parser` requirement for the AppArmor host validation.\n This allows using AppArmor on distributions which ship the binary in a different path. ([#97968](https://github.com/kubernetes/kubernetes/pull/97968), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97968", + "pr_number": 97968, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "97989": { + "commit": "1e05d25890afa9b4547c5585d0978ef56dcf07ca", + "text": "Server Side Apply now treats all \u003cSome\u003eSelector fields as atomic (meaning the entire selector is managed by a single writer and updated together), since they contain interrelated and inseparable fields that do not merge in intuitive ways.", + "markdown": "Server Side Apply now treats all \u003cSome\u003eSelector fields as atomic (meaning the entire selector is managed by a single writer and updated together), since they contain interrelated and inseparable fields that do not merge in intuitive ways. ([#97989](https://github.com/kubernetes/kubernetes/pull/97989), [@Danil-Grigorev](https://github.com/Danil-Grigorev)) [SIG API Machinery]", + "author": "Danil-Grigorev", + "author_url": "https://github.com/Danil-Grigorev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97989", + "pr_number": 97989, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change", + "bug" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "98057": { + "commit": "586ea8a482a2b5c01831b083ff6bd7b25d657f11", + "text": "kubectl get -n openshift-oauth-apiserver po -o jsonpath='{range .items[?(.status.phase==\"Running\")]}{.metadata.name}{\" is Running\\n\"}'\napiserver-7d9cc97649-79c2x is Running\napiserver-7d9cc97649-lgks6 is Running\napiserver-7d9cc97649-qgkxn is Running\n is Running", + "markdown": "Kubectl get -n openshift-oauth-apiserver po -o jsonpath='{range .items[?(.status.phase==\"Running\")]}{.metadata.name}{\" is Running\\n\"}'\n apiserver-7d9cc97649-79c2x is Running\n apiserver-7d9cc97649-lgks6 is Running\n apiserver-7d9cc97649-qgkxn is Running\n is Running ([#98057](https://github.com/kubernetes/kubernetes/pull/98057), [@zerodayz](https://github.com/zerodayz)) [SIG API Machinery]", + "author": "zerodayz", + "author_url": "https://github.com/zerodayz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98057", + "pr_number": 98057, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "98077": { + "commit": "494dc731d73df8ee71888516821b3c7f229ba3bb", + "text": "NetworkPolicy validation framework support for windows.", + "markdown": "NetworkPolicy validation framework support for windows. ([#98077](https://github.com/kubernetes/kubernetes/pull/98077), [@jayunit100](https://github.com/jayunit100))", + "author": "jayunit100", + "author_url": "https://github.com/jayunit100", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98077", + "pr_number": 98077, + "areas": [ + "e2e-test-framework", + "network-policy", + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "network", + "testing" + ], + "feature": true, + "duplicate": true + }, + "98238": { + "commit": "03fa68099e4f2f7fef2e02b65e7e912bff248109", + "text": "Track Job completion through status and Pod finalizers, removing dependency on Pod tombstones.", + "markdown": "Track Job completion through status and Pod finalizers, removing dependency on Pod tombstones. ([#98238](https://github.com/kubernetes/kubernetes/pull/98238), [@alculquicondor](https://github.com/alculquicondor)) [SIG API Machinery, Apps, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "http://git.k8s.io/enhancements/keps/sig-apps/2307-job-tracking-wihout-lingering-pods", + "type": "external" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98238", + "pr_number": 98238, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "98287": { + "commit": "b5243341053cf9f67b1a163ccfea07517755b7a8", + "text": "Migrate `staging/src/k8s.io/apiserver/pkg/registry` logs to structured logging.", + "markdown": "Migrate `staging/src/k8s.io/apiserver/pkg/registry` logs to structured logging. ([#98287](https://github.com/kubernetes/kubernetes/pull/98287), [@lala123912](https://github.com/lala123912))", + "author": "lala123912", + "author_url": "https://github.com/lala123912", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98287", + "pr_number": 98287, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "98306": { + "commit": "d95c46a3e554fc07fe92c695e0b7c8ec0f060878", + "text": "Expose `/debug/flags/v` to allow dynamically setting log level for kube-proxy.", + "markdown": "Expose `/debug/flags/v` to allow dynamically setting log level for kube-proxy. ([#98306](https://github.com/kubernetes/kubernetes/pull/98306), [@borgerli](https://github.com/borgerli)) [SIG Network]", + "author": "borgerli", + "author_url": "https://github.com/borgerli", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98306", + "pr_number": 98306, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "98350": { + "commit": "fadf85d6d03a224ebdd3f213423b57501d886831", + "text": "Aggregate errors when putting vmss.", + "markdown": "Aggregate errors when putting vmss. ([#98350](https://github.com/kubernetes/kubernetes/pull/98350), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98350", + "pr_number": 98350, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "98377": { + "commit": "f1e51ceb3c58da272bc0fc68e200db6fd12121dd", + "text": "Track ownership of scale subresource for all scalable resources i.e. Deployment, ReplicaSet, StatefulSet, ReplicationController, and Custom Resources.", + "markdown": "Track ownership of scale subresource for all scalable resources i.e. Deployment, ReplicaSet, StatefulSet, ReplicationController, and Custom Resources. ([#98377](https://github.com/kubernetes/kubernetes/pull/98377), [@nodo](https://github.com/nodo)) [SIG API Machinery and Testing]", + "author": "nodo", + "author_url": "https://github.com/nodo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98377", + "pr_number": 98377, + "areas": [ + "apiserver", + "code-generation", + "dependency", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "98431": { + "commit": "1affd894cf5357559d64d6da7857b63ed760d3be", + "text": "Fix `kubectl` alpha debug node does not work on tainted(NoExecute) nodes and tolerate everything.", + "markdown": "Fix `kubectl` alpha debug node does not work on tainted(NoExecute) nodes and tolerate everything. ([#98431](https://github.com/kubernetes/kubernetes/pull/98431), [@wawa0210](https://github.com/wawa0210))", + "author": "wawa0210", + "author_url": "https://github.com/wawa0210", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98431", + "pr_number": 98431, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "98817": { + "commit": "b76549665070beb2cc1a0410a6c7f66d8007f76b", + "text": "Added field `.status.uncountedTerminatedPods` to the Job resource. This field is used by the job controller to keep track of finished pods before adding them to the Job status counters. Pods created by the job controller get the finalizer `batch.kubernetes.io/job-tracking`\nJobs that are tracked using this mechanism get the annotation `batch.kubernetes.io/job-tracking`. This is a temporary measure. Two releases after this feature graduates to beta, the annotation won't be added to Jobs anymore.", + "markdown": "Added field `.status.uncountedTerminatedPods` to the Job resource. This field is used by the job controller to keep track of finished pods before adding them to the Job status counters. Pods created by the job controller get the finalizer `batch.kubernetes.io/job-tracking`\n Jobs that are tracked using this mechanism get the annotation `batch.kubernetes.io/job-tracking`. This is a temporary measure. Two releases after this feature graduates to beta, the annotation won't be added to Jobs anymore. ([#98817](https://github.com/kubernetes/kubernetes/pull/98817), [@alculquicondor](https://github.com/alculquicondor))", + "documentation": [ + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98817", + "pr_number": 98817, + "areas": [ + "batch", + "kubectl", + "workload-api/job" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cli" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "98866": { + "commit": "5e06f173fb37484573f94ec5550a40c8aec8c1d6", + "text": "The `TerminationGracePeriodSeconds` on pod specs and container probes should not be negative. Negative values of `TerminationGracePeriodSeconds` will be treated as the value `1s` on the delete path. Immutable field validation will be relaxed in order to update negative values. In a future release, negative values will not be permitted.", + "markdown": "The `TerminationGracePeriodSeconds` on pod specs and container probes should not be negative. Negative values of `TerminationGracePeriodSeconds` will be treated as the value `1s` on the delete path. Immutable field validation will be relaxed in order to update negative values. In a future release, negative values will not be permitted. ([#98866](https://github.com/kubernetes/kubernetes/pull/98866), [@wzshiming](https://github.com/wzshiming))", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98866", + "pr_number": 98866, + "areas": [ + "apiserver", + "kubelet" + ], + "kinds": [ + "api-change", + "bug", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "99023": { + "commit": "e799d7b1912b57ae0e898cb79f93066c0c8f0142", + "text": "Ephemeral containers are now allowed to configure a `securityContext` that differs from that of the Pod. Cluster administrators should ensure that security policy controllers support `EphemeralContainers` before enabling this feature in clusters.", + "markdown": "Ephemeral containers are now allowed to configure a `securityContext` that differs from that of the Pod. Cluster administrators should ensure that security policy controllers support `EphemeralContainers` before enabling this feature in clusters. ([#99023](https://github.com/kubernetes/kubernetes/pull/99023), [@verb](https://github.com/verb))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://git.k8s.io/enhancements/keps/sig-node/277-ephemeral-containers", + "type": "external" + } + ], + "author": "verb", + "author_url": "https://github.com/verb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99023", + "pr_number": 99023, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "99069": { + "commit": "a0e6e491e983ce162645fda7bc36761968afd652", + "text": "Fix raw block mode CSI `NodePublishVolume` stage miss pod info.", + "markdown": "Fix raw block mode CSI `NodePublishVolume` stage miss pod info. ([#99069](https://github.com/kubernetes/kubernetes/pull/99069), [@phantooom](https://github.com/phantooom))", + "author": "phantooom", + "author_url": "https://github.com/phantooom", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99069", + "pr_number": 99069, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "99095": { + "commit": "8b057cdfa4dc29e1c3fd8e34f565ea7701f3d384", + "text": "Prevent Kubelet stuck in `DiskPressure` when `imagefs.minReclaim` is set", + "markdown": "Prevent Kubelet stuck in `DiskPressure` when `imagefs.minReclaim` is set ([#99095](https://github.com/kubernetes/kubernetes/pull/99095), [@maxlaverse](https://github.com/maxlaverse))", + "author": "maxlaverse", + "author_url": "https://github.com/maxlaverse", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99095", + "pr_number": 99095, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "99144": { + "commit": "36a7426aa5a6df97fb65965f294e38ee0696ab31", + "text": "The `HugePageStorageMediumSize` feature graduates to GA and unconditionally enabled. Allowing unconditional usage of multiple sizes huge page resources on a container level.", + "markdown": "The `HugePageStorageMediumSize` feature graduates to GA and unconditionally enabled. Allowing unconditional usage of multiple sizes huge page resources on a container level. ([#99144](https://github.com/kubernetes/kubernetes/pull/99144), [@bart0sh](https://github.com/bart0sh))", + "author": "bart0sh", + "author_url": "https://github.com/bart0sh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99144", + "pr_number": 99144, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "storage" + ], + "feature": true, + "duplicate": true + }, + "99178": { + "commit": "fb3273774ad0738fadd5a18693741d6818187b65", + "text": "Conformance image is now built with Distroless. Users running Conformance testing should rely on container entrypoint instead of manual invocation to `/run_e2e.sh` or `/gorunner`, as they are now deprecated and will be removed in 1.25 release. Invoking `ginkgo` and `e2e.test` are still supported through overriding entrypoint (docker) or defining container `spec.command` (kubernetes).", + "markdown": "Conformance image is now built with Distroless. Users running Conformance testing should rely on container entrypoint instead of manual invocation to `/run_e2e.sh` or `/gorunner`, as they are now deprecated and will be removed in 1.25 release. Invoking `ginkgo` and `e2e.test` are still supported through overriding entrypoint (docker) or defining container `spec.command` (kubernetes). ([#99178](https://github.com/kubernetes/kubernetes/pull/99178), [@wilsonehusin](https://github.com/wilsonehusin))", + "author": "wilsonehusin", + "author_url": "https://github.com/wilsonehusin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99178", + "pr_number": 99178, + "areas": [ + "conformance", + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "release", + "testing" + ], + "duplicate": true, + "action_required": true + }, + "99310": { + "commit": "37da905c0c673c9cb07ca724384d37e725602a0c", + "text": "Exec plugin authors can override default handling of standard input via new `interactiveMode` kubeconfig field.", + "markdown": "Exec plugin authors can override default handling of standard input via new `interactiveMode` kubeconfig field. ([#99310](https://github.com/kubernetes/kubernetes/pull/99310), [@ankeesler](https://github.com/ankeesler))", + "author": "ankeesler", + "author_url": "https://github.com/ankeesler", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99310", + "pr_number": 99310, + "areas": [ + "kubectl", + "test" + ], + "kinds": [ + "api-change", + "bug", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99336": { + "commit": "232d93037cd1bdeb9d9a13831ad8049b7d0cc2e0", + "text": "kubelet: improve the performance when waiting for a synchronization of the node list with the `kube-apiserver`.", + "markdown": "Kubelet: improve the performance when waiting for a synchronization of the node list with the `kube-apiserver`. ([#99336](https://github.com/kubernetes/kubernetes/pull/99336), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99336", + "pr_number": 99336, + "areas": [ + "kubelet" + ], + "kinds": [ + "regression" + ], + "sigs": [ + "node" + ] + }, + "99358": { + "commit": "c94a2f75e652178892670649b2cbfa6990b8e01d", + "text": "The `kube-controller-manager'` sets the upper-bound timeout limit for outgoing requests to 70s. Previously", + "markdown": "The `kube-controller-manager'` sets the upper-bound timeout limit for outgoing requests to 70s. Previously ([#99358](https://github.com/kubernetes/kubernetes/pull/99358), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99358", + "pr_number": 99358, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "99364": { + "commit": "dae03ba9218399d2d7fe100798f332ff2d48381f", + "text": "Adds metrics for the delegated authenticator used by extension APIs that delegate authentication logic to the Kube API server.", + "markdown": "Adds metrics for the delegated authenticator used by extension APIs that delegate authentication logic to the Kube API server. ([#99364](https://github.com/kubernetes/kubernetes/pull/99364), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99364", + "pr_number": 99364, + "areas": [ + "apiserver", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "node" + ], + "feature": true, + "duplicate": true + }, + "99378": { + "commit": "98d20f552bf93e268868c4211c9eed533a508415", + "text": "Add `PersistentVolumeClaimDeletePoilcy` to StatefulSet API.", + "markdown": "Add `PersistentVolumeClaimDeletePoilcy` to StatefulSet API. ([#99378](https://github.com/kubernetes/kubernetes/pull/99378), [@mattcary](https://github.com/mattcary))", + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99378", + "pr_number": 99378, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99494": { + "commit": "659c7e709f3b7f5f2a25e456525cd8747f2e68cc", + "text": "The `CertificateSigningRequest.certificates.k8s.io` API supports an optional expirationSeconds field to allow the client to request a particular duration for the issued certificate. The default signer implementations provided by the Kubernetes controller manager will honor this field as long as it does not exceed the --cluster-signing-duration flag.", + "markdown": "The `CertificateSigningRequest.certificates.k8s.io` API supports an optional expirationSeconds field to allow the client to request a particular duration for the issued certificate. The default signer implementations provided by the Kubernetes controller manager will honor this field as long as it does not exceed the --cluster-signing-duration flag. ([#99494](https://github.com/kubernetes/kubernetes/pull/99494), [@enj](https://github.com/enj))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2784", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://github.com/kubernetes/website/pull/28070", + "type": "external" + } + ], + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99494", + "pr_number": 99494, + "areas": [ + "apiserver", + "kubectl", + "kubelet", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cli", + "instrumentation", + "node", + "security", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99566": { + "commit": "669016067d49110a35769f7db42705cc5f0becff", + "text": "Migrate some log messages to structured logging in `pkg/volume/volume_linux.go`.", + "markdown": "Migrate some log messages to structured logging in `pkg/volume/volume_linux.go`. ([#99566](https://github.com/kubernetes/kubernetes/pull/99566), [@huchengze](https://github.com/huchengze))", + "author": "huchengze", + "author_url": "https://github.com/huchengze", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99566", + "pr_number": 99566, + "kinds": [ + "cleanup" + ], + "sigs": [ + "instrumentation", + "storage" + ], + "duplicate": true + }, + "99576": { + "commit": "6e4e32985a1eef3c5bcc6fff8e10e4bfef770d08", + "text": "Add alpha support for HostProcess containers on Windows", + "markdown": "Add alpha support for HostProcess containers on Windows ([#99576](https://github.com/kubernetes/kubernetes/pull/99576), [@marosset](https://github.com/marosset)) [SIG API Machinery, Apps, Node, Testing and Windows]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/1981-windows-privileged-container-support", + "type": "KEP" + } + ], + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99576", + "pr_number": 99576, + "areas": [ + "kubelet", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "testing", + "windows" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99582": { + "commit": "7df432f78f3d9750045d86793765edf261e86bc2", + "text": "kube-scheduler: a plugin enabled in a v1beta2 configuration file takes precedence over the default configuration for that plugin. This simplifies enabling default plugins with custom configuration without needing to explicitly disable those default plugins.", + "markdown": "Kube-scheduler: a plugin enabled in a v1beta2 configuration file takes precedence over the default configuration for that plugin. This simplifies enabling default plugins with custom configuration without needing to explicitly disable those default plugins. ([#99582](https://github.com/kubernetes/kubernetes/pull/99582), [@chendave](https://github.com/chendave))", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99582", + "pr_number": 99582, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "duplicate_kind": true + }, + "99597": { + "commit": "6cb421487a4ac254ffb8871ae7dbbc350890ccf5", + "text": "The `kube-scheduler` component config `v1beta2` API available\nThree scheduler plugins deprecated (`NodeLabel`, `ServiceAffinity`, `NodePreferAvoidPods`).", + "markdown": "The `kube-scheduler` component config `v1beta2` API available\n Three scheduler plugins deprecated (`NodeLabel`, `ServiceAffinity`, `NodePreferAvoidPods`). ([#99597](https://github.com/kubernetes/kubernetes/pull/99597), [@adtac](https://github.com/adtac))", + "author": "adtac", + "author_url": "https://github.com/adtac", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99597", + "pr_number": 99597, + "kinds": [ + "api-change" + ], + "sigs": [ + "scheduling" + ] + }, + "99647": { + "commit": "d6b408f74890abaa0b5be7172714c7fe89ee7eff", + "text": "kubeadm: remove the automatic detection and matching of cgroup drivers for Docker. For new clusters if you have not configured the cgroup driver explicitly you might get a failure in the `kubelet` on driver mismatch (kubeadm clusters should be using the `systemd` driver). Also remove the `IsDockerSystemdCheck` preflight check (warning) that checks if the Docker cgroup driver is set to `systemd`. Ideally such detection / coordination should be on the side of CRI implementers and the kubelet (tracked [here](https://github.com/kubernetes/kubernetes/issues/99808)). Please see the [page](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) on how to configure cgroup drivers with kubeadm manually", + "markdown": "Kubeadm: remove the automatic detection and matching of cgroup drivers for Docker. For new clusters if you have not configured the cgroup driver explicitly you might get a failure in the `kubelet` on driver mismatch (kubeadm clusters should be using the `systemd` driver). Also remove the `IsDockerSystemdCheck` preflight check (warning) that checks if the Docker cgroup driver is set to `systemd`. Ideally such detection / coordination should be on the side of CRI implementers and the kubelet (tracked [here](https://github.com/kubernetes/kubernetes/issues/99808)). Please see the [page](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) on how to configure cgroup drivers with kubeadm manually ([#99647](https://github.com/kubernetes/kubernetes/pull/99647), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99647", + "pr_number": 99647, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "action_required": true + }, + "99729": { + "commit": "0691157ec4d2386f98cff6dc4e2a02433710218c", + "text": "A `system-cluster-critical` pod should not get a low OOM Score. \n\nAs of now both `system-node-critical` and `system-cluster-critical` pods have -997 OOM score, making them one of the last processes to be OOMKilled. By definition `system-cluster-critical` pods can be scheduled elsewhere if there is a resource crunch on the node where as `system-node-critical` pods cannot be rescheduled. This was the reason for `system-node-critical` to have higher priority value than `system-cluster-critical`. This change allows only `system-node-critical` priority class to have low OOMScore.\n\naction required\nIf the user wants to have the pod to be OOMKilled last and the pod has `system-cluster-critical` priority class, it has to be changed to `system-node-critical` priority class to preserve the existing behavior", + "markdown": "A `system-cluster-critical` pod should not get a low OOM Score. \n \n As of now both `system-node-critical` and `system-cluster-critical` pods have -997 OOM score, making them one of the last processes to be OOMKilled. By definition `system-cluster-critical` pods can be scheduled elsewhere if there is a resource crunch on the node where as `system-node-critical` pods cannot be rescheduled. This was the reason for `system-node-critical` to have higher priority value than `system-cluster-critical`. This change allows only `system-node-critical` priority class to have low OOMScore.\n \n action required\n If the user wants to have the pod to be OOMKilled last and the pod has `system-cluster-critical` priority class, it has to be changed to `system-node-critical` priority class to preserve the existing behavior ([#99729](https://github.com/kubernetes/kubernetes/pull/99729), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99729", + "pr_number": 99729, + "areas": [ + "kubelet" + ], + "kinds": [ + "design", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true, + "action_required": true + }, + "99775": { + "commit": "8fb400c475cefb8a40898d29a086a9b0fc20eb02", + "text": "Exposes `WithCustomRoundTripper` method for specifying a middleware function for custom HTTP behaviour for the delegated auth clients.", + "markdown": "Exposes `WithCustomRoundTripper` method for specifying a middleware function for custom HTTP behaviour for the delegated auth clients. ([#99775](https://github.com/kubernetes/kubernetes/pull/99775), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99775", + "pr_number": 99775, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "99829": { + "commit": "044fd6fdf6a859683b291898f87433115e1ec3c0", + "text": "Replace `go-bindata` with `//go:embed`.", + "markdown": "Replace `go-bindata` with `//go:embed`. ([#99829](https://github.com/kubernetes/kubernetes/pull/99829), [@palnabarun](https://github.com/palnabarun))", + "author": "palnabarun", + "author_url": "https://github.com/palnabarun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99829", + "pr_number": 99829, + "areas": [ + "code-organization", + "conformance", + "dependency", + "e2e-test-framework", + "kubectl", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture", + "cli", + "node", + "testing" + ], + "duplicate": true + }, + "99839": { + "commit": "4fae6ae5d211f1a45998c30d4ec765668a8361aa", + "text": "Fixed `port-forward` memory leak for long-running and heavily used connections.", + "markdown": "Fixed `port-forward` memory leak for long-running and heavily used connections. ([#99839](https://github.com/kubernetes/kubernetes/pull/99839), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99839", + "pr_number": 99839, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "api-machinery", + "node" + ], + "duplicate": true, + "duplicate_kind": true + }, + "99900": { + "commit": "86856e1b817a7df00edd1908fc2e517ccb331549", + "text": "Remove deprecated `--generator` flag from `kubectl autoscale`.", + "markdown": "Remove deprecated `--generator` flag from `kubectl autoscale`. ([#99900](https://github.com/kubernetes/kubernetes/pull/99900), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", + "author": "MadhavJivrajani", + "author_url": "https://github.com/MadhavJivrajani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99900", + "pr_number": 99900, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "99915": { + "commit": "6dbdf144e55ebd957f6571a1f761aa9ca9da15fa", + "text": "Remove the deprecated flag `--generator` from `kubectl create deployment` command.", + "markdown": "Remove the deprecated flag `--generator` from `kubectl create deployment` command. ([#99915](https://github.com/kubernetes/kubernetes/pull/99915), [@BLasan](https://github.com/BLasan))", + "author": "BLasan", + "author_url": "https://github.com/BLasan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99915", + "pr_number": 99915, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "99961": { + "commit": "e1acbbd8fde3505423df6c336a4d852bfc50e49d", + "text": "Kube API server accepts `Impersonate-Uid` header to impersonate a user with a specific UID, in the same way that you can currently use `Impersonate-User`, `Impersonate-Group` and `Impersonate-Extra`.", + "markdown": "Kube API server accepts `Impersonate-Uid` header to impersonate a user with a specific UID, in the same way that you can currently use `Impersonate-User`, `Impersonate-Group` and `Impersonate-Extra`. ([#99961](https://github.com/kubernetes/kubernetes/pull/99961), [@margocrawf](https://github.com/margocrawf))", + "author": "margocrawf", + "author_url": "https://github.com/margocrawf", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99961", + "pr_number": 99961, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "99963": { + "commit": "0172cbf56c1f4ff2b31aa6fbd2202b9fdd222695", + "text": "The job controller removes running pods when the number of completions is achieved.", + "markdown": "The job controller removes running pods when the number of completions is achieved. ([#99963](https://github.com/kubernetes/kubernetes/pull/99963), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99963", + "pr_number": 99963, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + } } \ No newline at end of file diff --git a/releases/release-1.22/release-notes/release-notes-draft.md b/releases/release-1.22/release-notes/release-notes-draft.md index ccc2f7fab2a..fbfa774a9f1 100644 --- a/releases/release-1.22/release-notes/release-notes-draft.md +++ b/releases/release-1.22/release-notes/release-notes-draft.md @@ -1,693 +1,693 @@ -## What's New (Major Themes) - -### Removal of several beta Kubernetes APIs - -A number of APIs are no longer serving specific Beta versions in favour of the GA version of those APIs. All existing objects can be interacted with via general availability APIs. This removal includes beta versions of `ValidatingWebhookConfiguration`, `MutatingWebhookConfiguration`, `CustomResourceDefinition`, `APIService`, `TokenReview`, `SubjectAccessReview`, `CertificateSigningRequest`, `Lease`, `Ingress`, and `IngressClass` APIs. For the full list check out [Deprecated API Migration Guide](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-22) and the blog post [Kubernetes API and Feature Removals In 1.22: Here’s What You Need To Know](https://blog.k8s.io/2021/07/14/upcoming-changes-in-kubernetes-1-22/). - -### Kubernetes release cadence change - -We all have to adapt to change in our lives, and especially so in the past year. The Kubernetes release team was also affected from the COVID-19 pandemic and has listened to its user base regarding the number of releases in a calendar year. From April 23, 2021 it was made official that Kubernetes release cadence has reduced from 4 releases per year to 3 releases per year. - -You can read more in the official blog post [Kubernetes Release Cadence Change: Here’s What You Need To Know](https://blog.k8s.io/2021/07/20/new-kubernetes-release-cadence/). - -### External credential providers - -Kubernetes client [credential plugins](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins) have been in beta since 1.11, a few eons ago. With the release of Kubernetes 1.22, this feature set graduates to stable. The GA feature set includes improved support for plugins that provide interactive login flows. -This release also contains a number of bug fixes to the feature set. Aspiring plugin authors can look at [sample-exec-plugin](https://github.com/ankeesler/sample-exec-plugin) as a way to get started. - -Related to this topic, the in-tree Azure and GCP authentication plugins have been [deprecated](https://github.com/kubernetes/kubernetes/pull/102181) in favor of out-of-tree implementations. - -### Server-side Apply graduates to GA - -Server-side Apply is a new object merge algorithm, as well as tracking of field ownership, running on the Kubernetes API server. Server-side Apply helps users and controllers manage their resources via declarative configurations. It allows them to create and/or modify their objects declaratively, simply by sending their fully specified intent. After being in beta for a couple releases, [Server-side Apply](https://kubernetes.io/docs/reference/using-api/server-side-apply/) is now generally available. - -### Cluster Storage Interface graduations - -CSI support for Windows nodes moves to GA in the 1.22 release. In Kubernetes v1.22, Windows privileged containers are only an alpha feature. To allow using CSI storage on Windows nodes, [CSIProxy](https://github.com/kubernetes-csi/csi-proxy) enables CSI node plugins to be deployed as unprivileged pods, using the proxy to perform privileged storage operations on the node. - -Another feature moving to GA in v1.22 is CSI Service Account Token support. This feature allows CSI drivers to use pods' [bound service account tokens](https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/#bound-service-account-token-volume) instead of a more privileged identity. It also provides control over to re-publishing these volumes, so that short-lived tokens can be refreshed. - -### SIG Windows development tools - -To grow the developer community, SIG Windows released multiple [tools](https://github.com/kubernetes-sigs/sig-windows-dev-tools/). The new tools support multiple CNI providers (Antrea, Calico), can run on multiple platforms (any vagrant compatible provider, such as Hyper-V, VirtualBox, or vSphere). -There is also a new way to run bleeding edge Windows features from scratch by compiling the windows kubelet and kube-proxy, then using them along with daily builds of other Kubernetes components. - -### Deploy a more secure control plane with kubeadm - -A new alpha feature allows running the kubeadm control plane components as non-root users. This is a long requested security measure in kubeadm. To try it you must enable the kubeadm-specific `RootlessControlPlane` feature gate. When you deploy a cluster using this alpha feature, your control plane runs with lower privileges. - -A new [v1beta3 configuration API](https://github.com/kubernetes/kubeadm/issues/1796). It [iterates over v1beta2](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3) by adding some long requested features and deprecating some existing ones. The `V1beta3` is now the preferred API version; the `v1beta2` API also remains available and is not yet deprecated. - -### etcd moves to version 3.5.0 - -Kubernetes' default backend storage, etcd, has a new release 3.5.0 and the community embraced it. The new release comes with improvements to the Security, performance, monitoring and developer experience. There are numerous bug fixes to lease objects causing memory leaks, and compact operation causing deadlocks and more. A couple of new features are also introduced like the migration to structured logging and build in log rotation. The release comes with a detailed future roadmap to implement a solution to traffic overload. A full and detailed list of changes can be read in the [3.5.0 release announcement](https://etcd.io/blog/2021/announcing-etcd-3.5/). - -### Kubernetes Node system swap support - -Every system administrator or Kubernetes user has been in the same boat regarding setting up and using Kubernetes: disable swap space. With the release of Kubernetes 1.22, *alpha* support is available to run nodes with swap memory. This change lets administrators opt in to configuring swap on Linux nodes, treating a portion of block storage as additional virtual memory. - -### Cluster-wide seccomp defaults - -A new alpha feature gate `SeccompDefault` has been added to the kubelet, together with a corresponding command line flag `--seccomp-default` and kubelet configuration. If both are enabled, then the kubelet's behavior changes for pods that don't explicitly set a seccomp profile. -With cluster-wide seccomp defaults, the kubelet uses the `RuntimeDefault` seccomp profile by default, rather than than `Unconfined`. This allows enhancing the default cluster wide workload security of the Kubernetes deployment. Security administrators will now sleep better knowing there is some security by default for the workloads. - -To learn more about the feature, please refer to the official [seccomp tutorial](https://kubernetes.io/docs/tutorials/clusters/seccomp/#enable-the-use-of-runtimedefault-as-the-default-seccomp-profile-for-all-workloads). - -### Quality of Service for memory resources - -Originally, Kubernetes used the v1 cgroups API. With that design, the QoS class for a pod only applied to CPU resources (such as `cpu_shares`). The Kubernetes cgroup manager uses `memory.limit_in_bytes` in v1 cgroups to limit the memory capacity for a container, and uses `oom_scores` to recommend an order for killing container processes if an out-of-memory event occurs. This implementation has shortcomings: for `Guaranteed` pods, memory can not be fully reserved, and the page cache is at risk of being recycled. For `Burstable` pods, overcommitting memory (setting `request` less than `limit` ) could increase the risk of a container being killed when the Linux kernel detects an out of memory condition. - -As an alpha feature, Kubernetes v1.22 can use the cgroups v2 API to control memory allocation and isolation. This feature is designed to improve workload and node availability when there is contention for memory resources. - -### API changes and improvements for ephemeral containers - -The API used to create [Ephemeral Containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) changed in 1.22. The Ephemeral Containers feature is alpha and disabled by default, and the new API does not work with clients that attempt to use the old API. - -For stable features, the `kubectl` tool follows the Kubernetes [version skew policy](https://kubernetes.io/releases/version-skew-policy/); -however, kubectl v1.21 and older do not support the new API for ephemeral containers. -Users who create ephemeral containers using `kubectl debug` should note that kubectl version 1.22 will attempt to fall back to the old API; older versions of kubectl will not work with cluster versions of 1.22 or later. Please update kubectl to 1.22 if you wish to use `kubectl debug` with a mix of cluster versions. - -## Known Issues - -### CPU and Memory manager are not working correctly for Guaranteed Pods with multiple containers - -A regression bug was found where guaranteed Pods with multiple containers do not work properly with set allocations for CPU, Memory, and Device manager. [The fix will be availability in coming releases](https://github.com/kubernetes/kubernetes/pull/103979). - -### `CSIMigrationvSphere` feature gate has not migrated to new CRD APIs - -If CSIMigrationvSphere feature gate is enabled, user should not upgrade to Kubernetes v1.22. vSphere CSI Driver does not support Kubernetes v1.22 yet because it uses v1beta1 CRD APIs. Support for v1.22 will be added at a later release. Check the following document for supported Kubernetes releases for a given [vSphere CSI Driver version](https://vsphere-csi-driver.sigs.k8s.io/compatiblity_matrix.html#compatibility-matrix-for-vsphere-csi-driver). - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- Audit log files are now created with a mode of 0600. Existing file permissions will not be changed. If you need the audit file to be readable by a non-root user, you can pre-create the file with the desired permissions. ([#95387](https://github.com/kubernetes/kubernetes/pull/95387), [@JAORMX](https://github.com/JAORMX)) [SIG API Machinery and Auth] - - CSI migration of AWS EBS volumes requires AWS EBS CSI driver ver. 1.0 that supports `allowAutoIOPSPerGBIncrease` parameter in StorageClass. ([#101082](https://github.com/kubernetes/kubernetes/pull/101082), [@jsafrane](https://github.com/jsafrane)) - - Conformance image is now built with Distroless. Users running Conformance testing should rely on container entrypoint instead of manual invocation to `/run_e2e.sh` or `/gorunner`, as they are now deprecated and will be removed in 1.25 release. Invoking `ginkgo` and `e2e.test` are still supported through overriding entrypoint (docker) or defining container `spec.command` (kubernetes). ([#99178](https://github.com/kubernetes/kubernetes/pull/99178), [@wilsonehusin](https://github.com/wilsonehusin)) - - Default `StreamingProxyRedirects` to disabled. If there is a >= 2 version skew between master and nodes, and the old nodes were enabling `--redirect-container-streaming`, this will break them. In this case, the `StreamingProxyRedirects` can still be manually enabled. ([#101647](https://github.com/kubernetes/kubernetes/pull/101647), [@pacoxu](https://github.com/pacoxu)) - - Intree volume plugin scaleIO support has been completely removed from Kubernetes. ([#101685](https://github.com/kubernetes/kubernetes/pull/101685), [@Jiawei0227](https://github.com/Jiawei0227)) - - Kubeadm: remove the automatic detection and matching of cgroup drivers for Docker. For new clusters if you have not configured the cgroup driver explicitly you might get a failure in the `kubelet` on driver mismatch (kubeadm clusters should be using the `systemd` driver). Also remove the `IsDockerSystemdCheck` preflight check (warning) that checks if the Docker cgroup driver is set to `systemd`. Ideally such detection / coordination should be on the side of CRI implementers and the kubelet (tracked [here](https://github.com/kubernetes/kubernetes/issues/99808)). Please see the [page](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) on how to configure cgroup drivers with kubeadm manually ([#99647](https://github.com/kubernetes/kubernetes/pull/99647), [@neolit123](https://github.com/neolit123)) - - Kubeadm: the flag `--cri-socket` is no longer allowed in a mixture with the flag `--config`. Please use the kubeadm configuration for setting the CRI socket for a node using `{Init|Join}Configuration.nodeRegistration.criSocket`. ([#101600](https://github.com/kubernetes/kubernetes/pull/101600), [@KofClubs](https://github.com/KofClubs)) - - Newly provisioned PVs by Azure disk will no longer have the beta `FailureDomain` label. Azure disk volume plugin will start to have GA topology label instead. ([#101534](https://github.com/kubernetes/kubernetes/pull/101534), [@kassarl](https://github.com/kassarl)) - - Scheduler's CycleState now embeds internal read/write locking inside its `Read()` and `Write()` functions. Meanwhile, `Lock()` and `Unlock()` function are removed. Scheduler plugin developers are now required to remove `CycleState#Lock()` and `CycleState#Unlock()`. Just simply use `Read()` and `Write()` as they're natively thread-safe now. ([#101542](https://github.com/kubernetes/kubernetes/pull/101542), [@Huang-Wei](https://github.com/Huang-Wei)) - - The `CSIMigrationVSphereComplete` feature flag is removed. `InTreePluginvSphereUnregister` will be the way moving forward. ([#101272](https://github.com/kubernetes/kubernetes/pull/101272), [@Jiawei0227](https://github.com/Jiawei0227)) - - The flag `--experimental-patches` is now deprecated and will be removed in a future release. You can migrate to using the new flag `--patches`. Add a new field `{Init|Join}Configuration.patches.directory` that can be used for the same purpose. For `init` and `join` it is now recommended that you migrate to configure patches via `{Init|Join}Configuration.patches.directory`. For the time being, these flags can be mixed with `--config`, but that might change in the future. On a command line, the last *patches flag takes precedence over previous flags and the value in config. `kubeadm upgrade --patches` will continue to be the only available option, since `upgrade` does not support a configuration file yet. ([#103063](https://github.com/kubernetes/kubernetes/pull/103063), [@neolit123](https://github.com/neolit123)) - -## Changes by Kind - -### Deprecation - -- Controller-manager: the following flags have no effect and would be removed in v1.24: - - `--port` - - `--address` - The insecure port flags `--port` may only be set to 0 now. - - In addtion, please be careful that: - - controller-manager MUST start with `--authorization-kubeconfig` and `--authentication-kubeconfig` correctly set to get authentication/authorization working. - - liveness/readiness probes to controller-manager MUST use HTTPS now, and the default port has been changed to 10257. - - Applications that fetch metrics from controller-manager should use a dedicated service account which is allowed to access nonResourceURLs `/metrics`. ([#96216](https://github.com/kubernetes/kubernetes/pull/96216), [@knight42](https://github.com/knight42)) [SIG API Machinery, Cloud Provider, Instrumentation and Testing] -- Deprecate `--record` flag in `kubectl`. The `--record` flag is being replaced with the [mechanism](https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers) which annotates HTTP requests with kubectl command details. ([#102873](https://github.com/kubernetes/kubernetes/pull/102873), [@soltysh](https://github.com/soltysh)) -- E2e.test: removed the `--viper-config` flag. If you were previously using this to pass flags to `e2e.test` via a file, you will need to pass them directly on the command line, e.g. `e2e.test --e2e-output-dir`. ([#102598](https://github.com/kubernetes/kubernetes/pull/102598), [@dims](https://github.com/dims)) -- For `kubeadm`: remove the ClusterStatus API from v1beta3 and its management in the kube-system/kubeadm-config ConfigMap. This method of keeping track of what API endpoints exists in the cluster was replaced (in a prior release) by a method to annotate the etcd Pods that `kubeadm` creates in "stacked etcd" clusters. The following CLI sub-phases are deprecated and are now a NO-OP: for `kubeadm join`: "control-plane-join/update-status", for `kubeadm reset`: "update-cluster-status". Unless you are using these phases explicitly, you should not be affected. ([#101915](https://github.com/kubernetes/kubernetes/pull/101915), [@neolit123](https://github.com/neolit123)) -- Kubead: remove the deprecated `--csr-only` and `--csr-dir` flags from `kubeadm init phase certs`. Deprecate the same flags under `kubeadm certs renew`. In both the cases the command `kubeadm certs generate-csr` should be used instead. ([#102108](https://github.com/kubernetes/kubernetes/pull/102108), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Remove the deprecated command `kubeadm alpha kubeconfig`. Please use `kubeadm kubeconfig` instead. ([#101938](https://github.com/kubernetes/kubernetes/pull/101938), [@knight42](https://github.com/knight42)) -- Kubeadm: Remove the deprecated hyperkube image support in `v1beta3`. This implies removal of `ClusterConfiguration.UseHyperKubeImage.` ([#101537](https://github.com/kubernetes/kubernetes/pull/101537), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Remove the field `ClusterConfiguration.DNS.Type` in v1beta3 since CoreDNS is the only supported DNS type. ([#101547](https://github.com/kubernetes/kubernetes/pull/101547), [@neolit123](https://github.com/neolit123)) -- Kubeadm: remove the deprecated command `kubeadm config view`. A replacement for this command is `kubectl get cm -n kube-system kubeadm-config -o=jsonpath="{.data.ClusterConfiguration}"` ([#102071](https://github.com/kubernetes/kubernetes/pull/102071), [@neolit123](https://github.com/neolit123)) -- Kubeadm: remove the deprecated flag '--image-pull-timeout' for 'kubeadm upgrade apply' command ([#102093](https://github.com/kubernetes/kubernetes/pull/102093), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubeadm: remove the deprecated flag `--insecure-port` from the kube-apiserver manifest that kubeadm manages. The flag had no effect since 1.20, since the insecure serving of the component was disabled in the same version. ([#102121](https://github.com/kubernetes/kubernetes/pull/102121), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: remove the deprecated kubeadm API `v1beta1`. Introduce a new kubeadm API `v1beta3`. See [kubeadm/v1beta3](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3) for a list of changes since `v1beta2`. Note that `v1beta2` is not yet deprecated, but will be in a future release. ([#101129](https://github.com/kubernetes/kubernetes/pull/101129), [@neolit123](https://github.com/neolit123)) -- Newly provisioned PVs by vSphere in-tree plugin will no longer have the beta `FailureDomain` label. vSphere volume plugin will start to have GA topology label ([#102414](https://github.com/kubernetes/kubernetes/pull/102414), [@divyenpatel](https://github.com/divyenpatel)) -- Removal of the CSI `NodePublish` path by the kubelet is deprecated. This must be done by the CSI plugin according to the CSI spec. ([#101441](https://github.com/kubernetes/kubernetes/pull/101441), [@dobsonj](https://github.com/dobsonj)) -- Remove support for the Service `topologyKeys` field (alpha) and the `kube-proxy` implementation of it. This field was deprecated several cycles ago. This functionality is replaced by the combination of automatic topology hints per-endpoint (alpha) and the Service `internalTrafficPolicy` field (alpha). ([#102412](https://github.com/kubernetes/kubernetes/pull/102412), [@andrewsykim](https://github.com/andrewsykim)) -- The `PodUnknown` phase is now deprecated. ([#95286](https://github.com/kubernetes/kubernetes/pull/95286), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) -- The `storageos`, `quobyte` and `flocker` storage volume plugins are deprecated and will be removed in a later release. ([#101773](https://github.com/kubernetes/kubernetes/pull/101773), [@Jiawei0227](https://github.com/Jiawei0227)) -- The deprecated flag `--hard-pod-affinity-symmetric-weight` and `--scheduler-name` have been removed from `kube-scheduler`. Use `ComponentConfig` instead to configure those parameters. ([#102805](https://github.com/kubernetes/kubernetes/pull/102805), [@ahg-g](https://github.com/ahg-g)) -- The feature Dynamic Kubelet Configuration is deprecated and kubelet will report warning when the flag `--dynamic-config-dir` is used. Feature gate `DynamicKubeletConfig` is disabled out of the box and needs to be explicitly enabled. ([#102966](https://github.com/kubernetes/kubernetes/pull/102966), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Cloud Provider, Instrumentation and Node] -- The in-tree azure and gcp auth plugins have been deprecated. The https://github.com/Azure/kubelogin and gcloud commands serve as out-of-tree replacements via the kubectl/client-go credential plugin mechanism. ([#102181](https://github.com/kubernetes/kubernetes/pull/102181), [@enj](https://github.com/enj)) [SIG API Machinery and Auth] -- The ingress `v1beta1` has been deprecated. ([#102030](https://github.com/kubernetes/kubernetes/pull/102030), [@aojea](https://github.com/aojea)) - -### API Change - -- A new score extension for NodeResourcesFit plugin that merges the functionality of `NodeResourcesLeastAllocated`, `NodeResourcesMostAllocated`, `RequestedToCapacityRatio` plugins, which are marked as deprecated as of v1beta2. In v1beta1, the three plugins can still be used in v1beta1 but not at the same time with the score extension of `NodeResourcesFit`. ([#101822](https://github.com/kubernetes/kubernetes/pull/101822), [@yuzhiquan](https://github.com/yuzhiquan)) -- A value of `Auto` is now a valid for the `service.kubernetes.io/topology-aware-hints` annotation. ([#100728](https://github.com/kubernetes/kubernetes/pull/100728), [@robscott](https://github.com/robscott)) -- Add `DataSourceRef` alpha field to PVC spec, which allows contents other than `PVCs` and `VolumeSnapshots` to be data sources. ([#103276](https://github.com/kubernetes/kubernetes/pull/103276), [@bswartz](https://github.com/bswartz)) -- Add `PersistentVolumeClaimDeletePoilcy` to StatefulSet API. ([#99378](https://github.com/kubernetes/kubernetes/pull/99378), [@mattcary](https://github.com/mattcary)) -- Add a new Priority and Fairness rule that exempts all probes (`/readyz`, `/healthz`, `/livez`) to prevent restarting of healthy `kube-apiserver` instance by kubelet. ([#100678](https://github.com/kubernetes/kubernetes/pull/100678), [@tkashem](https://github.com/tkashem)) -- Add alpha support for HostProcess containers on Windows ([#99576](https://github.com/kubernetes/kubernetes/pull/99576), [@marosset](https://github.com/marosset)) [SIG API Machinery, Apps, Node, Testing and Windows] -- Add distributed tracing to the `kube-apiserver`. It is can be enabled with the feature gate `APIServerTracing` ([#94942](https://github.com/kubernetes/kubernetes/pull/94942), [@dashpole](https://github.com/dashpole)) -- Add three metrics to the job controller to monitor if a job works in healthy condition. - `IndexedJob` has been promoted to Beta. ([#101292](https://github.com/kubernetes/kubernetes/pull/101292), [@AliceZhang2016](https://github.com/AliceZhang2016)) -- Added field `.status.uncountedTerminatedPods` to the Job resource. This field is used by the job controller to keep track of finished pods before adding them to the Job status counters. Pods created by the job controller get the finalizer `batch.kubernetes.io/job-tracking` - Jobs that are tracked using this mechanism get the annotation `batch.kubernetes.io/job-tracking`. This is a temporary measure. Two releases after this feature graduates to beta, the annotation won't be added to Jobs anymore. ([#98817](https://github.com/kubernetes/kubernetes/pull/98817), [@alculquicondor](https://github.com/alculquicondor)) -- Added new kubelet alpha feature `SeccompDefault`. This feature enables falling back to - the `RuntimeDefault` (former `runtime/default`) seccomp profile if nothing else is specified - in the pod/container `SecurityContext` or the pod annotation level. To use the feature, enable - the feature gate as well as set the kubelet configuration option `SeccompDefault` - (`--seccomp-default`) to `true`. ([#101943](https://github.com/kubernetes/kubernetes/pull/101943), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] -- Adds the `ReadWriteOncePod` access mode for `PersistentVolumes` and `PersistentVolumeClaims`. Restricts volume access to a single pod on a single node. ([#102028](https://github.com/kubernetes/kubernetes/pull/102028), [@chrishenzie](https://github.com/chrishenzie)) -- Alpha swap support can now be enabled on Kubernetes nodes with the `NodeSwapEnabled` feature flag. See [KEP-2400](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md#design-details) for details. ([#102823](https://github.com/kubernetes/kubernetes/pull/102823), [@ehashman](https://github.com/ehashman)) -- Because of the implementation logic of `time.Format` in golang, the displayed time zone is not consistent. ([#102366](https://github.com/kubernetes/kubernetes/pull/102366), [@cndoit18](https://github.com/cndoit18)) -- Corrected the documentation for escaping dollar signs in a container's env, command and args property. ([#101916](https://github.com/kubernetes/kubernetes/pull/101916), [@MartinKanters](https://github.com/MartinKanters)) [SIG Apps] -- Enable `MaxSurge` for `DaemonSet` by default. ([#101742](https://github.com/kubernetes/kubernetes/pull/101742), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- Enforce the `ReadWriteOncePod` PVC access mode during scheduling ([#103082](https://github.com/kubernetes/kubernetes/pull/103082), [@chrishenzie](https://github.com/chrishenzie)) -- Ephemeral containers are now allowed to configure a `securityContext` that differs from that of the Pod. Cluster administrators should ensure that security policy controllers support `EphemeralContainers` before enabling this feature in clusters. ([#99023](https://github.com/kubernetes/kubernetes/pull/99023), [@verb](https://github.com/verb)) -- Exec plugin authors can override default handling of standard input via new `interactiveMode` kubeconfig field. ([#99310](https://github.com/kubernetes/kubernetes/pull/99310), [@ankeesler](https://github.com/ankeesler)) -- If someone had the `ProbeTerminationGracePeriod` alpha feature enabled in 1.21, they should update/delete any workloads/pods with probe `terminationGracePeriods` < 1 before upgrading ([#103245](https://github.com/kubernetes/kubernetes/pull/103245), [@wzshiming](https://github.com/wzshiming)) -- Improved parsing of label selectors ([#102188](https://github.com/kubernetes/kubernetes/pull/102188), [@alculquicondor](https://github.com/alculquicondor)) [SIG API Machinery] -- Introduce `minReadySeconds` api to the `StatefulSets`. ([#100842](https://github.com/kubernetes/kubernetes/pull/100842), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- Introducing Memory quality of service support with `cgroups v2 (Alpha)`. The `MemoryQoS` feature is now in Alpha. This allows `kubelet` running with `cgroups v2` to set memory QoS at container, pod and QoS level to protect and guarantee better memory quality. This feature can be enabled through feature gate Memory QoS. ([#102970](https://github.com/kubernetes/kubernetes/pull/102970), [@borgerli](https://github.com/borgerli)) -- Kube API server accepts `Impersonate-Uid` header to impersonate a user with a specific UID, in the same way that you can currently use `Impersonate-User`, `Impersonate-Group` and `Impersonate-Extra`. ([#99961](https://github.com/kubernetes/kubernetes/pull/99961), [@margocrawf](https://github.com/margocrawf)) -- Kube-apiserver: `--service-account-issuer` can be specified multiple times now, to enable non-disruptive change of issuer. ([#101155](https://github.com/kubernetes/kubernetes/pull/101155), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Node and Testing] -- Kube-controller-manager: the `--horizontal-pod-autoscaler-use-rest-clients` flag and Heapster support in the horizontal pod autoscaler, deprecated since 1.12, is removed. ([#90368](https://github.com/kubernetes/kubernetes/pull/90368), [@serathius](https://github.com/serathius)) -- Kube-scheduler: a plugin enabled in a v1beta2 configuration file takes precedence over the default configuration for that plugin. This simplifies enabling default plugins with custom configuration without needing to explicitly disable those default plugins. ([#99582](https://github.com/kubernetes/kubernetes/pull/99582), [@chendave](https://github.com/chendave)) -- New `node-high` priority-level has been added to Suggested API Priority and ([#101151](https://github.com/kubernetes/kubernetes/pull/101151), [@mborsz](https://github.com/mborsz)) -- NodeSwapEnabled feature flag was renamed to NodeSwap - - The flag was only available in the 1.22.0-beta.1 release, and the new flag should be used going forward. ([#103553](https://github.com/kubernetes/kubernetes/pull/103553), [@ehashman](https://github.com/ehashman)) [SIG Node] -- Omit comparison with boolean constant ([#101523](https://github.com/kubernetes/kubernetes/pull/101523), [@chuntaochen](https://github.com/chuntaochen)) [SIG CLI and Cloud Provider] -- Removed the feature flag for probe-level termination grace period from Kubelet. If a user wants to disable this feature on already created pods, they will have to delete and recreate the pods. ([#103168](https://github.com/kubernetes/kubernetes/pull/103168), [@raisaat](https://github.com/raisaat)) [SIG Apps and Node] -- Revert addition of Add `PersistentVolumeClaimDeletePoilcy` to `StatefulSet`API. ([#103747](https://github.com/kubernetes/kubernetes/pull/103747), [@mattcary](https://github.com/mattcary)) -- Scheduler could be configured to consider new resources beside CPU and memory, GPU for example, for the score plugin of `NodeResourcesBalancedAllocation`. ([#101946](https://github.com/kubernetes/kubernetes/pull/101946), [@chendave](https://github.com/chendave)) [SIG Scheduling] -- Server Side Apply now treats all <Some>Selector fields as atomic (meaning the entire selector is managed by a single writer and updated together), since they contain interrelated and inseparable fields that do not merge in intuitive ways. ([#97989](https://github.com/kubernetes/kubernetes/pull/97989), [@Danil-Grigorev](https://github.com/Danil-Grigorev)) [SIG API Machinery] -- Suspend Job feature graduated to beta. Added the `action` label to Job controller sync metrics `job_sync_total` and `job_sync_duration_seconds`. ([#102022](https://github.com/kubernetes/kubernetes/pull/102022), [@adtac](https://github.com/adtac)) -- The API documentation for the DaemonSet's `spec.updateStrategy.rollingUpdate.maxUnavailable` field was corrected to state that the value is rounded up. ([#101296](https://github.com/kubernetes/kubernetes/pull/101296), [@Miciah](https://github.com/Miciah)) -- The `CSIServiceAccountToken` graduates to Ga and is unconditionally enabled. ([#103001](https://github.com/kubernetes/kubernetes/pull/103001), [@zshihang](https://github.com/zshihang)) -- The `CertificateSigningRequest.certificates.k8s.io` API supports an optional expirationSeconds field to allow the client to request a particular duration for the issued certificate. The default signer implementations provided by the Kubernetes controller manager will honor this field as long as it does not exceed the --cluster-signing-duration flag. ([#99494](https://github.com/kubernetes/kubernetes/pull/99494), [@enj](https://github.com/enj)) -- The `EndpointSlicen Mirroring controller` no longer mirrors the `last-applied-configuration` annotation created by `kubectl` to update `EndpointSlices`. ([#102731](https://github.com/kubernetes/kubernetes/pull/102731), [@sharmarajdaksh](https://github.com/sharmarajdaksh)) -- The `NetworkPolicyEndPort` is graduated to beta and is enabled by default. ([#102834](https://github.com/kubernetes/kubernetes/pull/102834), [@rikatz](https://github.com/rikatz)) -- The `PodDeletionCost` feature has been promoted to beta, and enabled by default. ([#101080](https://github.com/kubernetes/kubernetes/pull/101080), [@ahg-g](https://github.com/ahg-g)) -- The `Server Side Apply` treats certain structs as atomic. Meaning the entire selector field is managed by a single writer and updated together. ([#100684](https://github.com/kubernetes/kubernetes/pull/100684), [@Jefftree](https://github.com/Jefftree)) -- The `ServiceAppProtocol` feature gate has been removed. It reached GA in Kubernetes ([#103190](https://github.com/kubernetes/kubernetes/pull/103190), [@robscott](https://github.com/robscott)) -- The `TerminationGracePeriodSeconds` on pod specs and container probes should not be negative. Negative values of `TerminationGracePeriodSeconds` will be treated as the value `1s` on the delete path. Immutable field validation will be relaxed in order to update negative values. In a future release, negative values will not be permitted. ([#98866](https://github.com/kubernetes/kubernetes/pull/98866), [@wzshiming](https://github.com/wzshiming)) -- The `kube-scheduler` component config `v1beta2` API available - Three scheduler plugins deprecated (`NodeLabel`, `ServiceAffinity`, `NodePreferAvoidPods`). ([#99597](https://github.com/kubernetes/kubernetes/pull/99597), [@adtac](https://github.com/adtac)) -- The `pod/eviction` subresource now accepts `policy/v1` eviction requests in addition to `policy/v1beta1` eviction requests ([#100724](https://github.com/kubernetes/kubernetes/pull/100724), [@liggitt](https://github.com/liggitt)) -- The `podAffinity`, `NamespaceSelector` and the associated `CrossNamespaceAffinity` quota scope features graduate to Beta and they are now enabled by default. ([#101496](https://github.com/kubernetes/kubernetes/pull/101496), [@ahg-g](https://github.com/ahg-g)) -- The `pods/ephemeralcontainers` API now returns and expects a `Pod` object instead of `EphemeralContainers`. This is incompatible with the previous alpha-level API. ([#101034](https://github.com/kubernetes/kubernetes/pull/101034), [@verb](https://github.com/verb)) [SIG Apps, Auth, CLI and Testing] -- The `v1.Node` and `.status.images[].names` are now optional. ([#102159](https://github.com/kubernetes/kubernetes/pull/102159), [@roycaihw](https://github.com/roycaihw)) -- The deprecated flag `--algorithm-provider` has been removed from `kube-scheduler`. Use instead `ComponentConfig` to configure the set of enabled plugins. ([#102239](https://github.com/kubernetes/kubernetes/pull/102239), [@Haleygo](https://github.com/Haleygo)) -- The options `--ssh-user` and `--ssh-key` are removed. They only functioned on GCE, and only in-tree. Use the apiserver network proxy instead. ([#102297](https://github.com/kubernetes/kubernetes/pull/102297), [@deads2k](https://github.com/deads2k)) -- Track Job completion through status and Pod finalizers, removing dependency on Pod tombstones. ([#98238](https://github.com/kubernetes/kubernetes/pull/98238), [@alculquicondor](https://github.com/alculquicondor)) [SIG API Machinery, Apps, Auth and Testing] -- Track ownership of scale subresource for all scalable resources i.e. Deployment, ReplicaSet, StatefulSet, ReplicationController, and Custom Resources. ([#98377](https://github.com/kubernetes/kubernetes/pull/98377), [@nodo](https://github.com/nodo)) [SIG API Machinery and Testing] - -### Feature - -- A `system-cluster-critical` pod should not get a low OOM Score. - - As of now both `system-node-critical` and `system-cluster-critical` pods have -997 OOM score, making them one of the last processes to be OOMKilled. By definition `system-cluster-critical` pods can be scheduled elsewhere if there is a resource crunch on the node where as `system-node-critical` pods cannot be rescheduled. This was the reason for `system-node-critical` to have higher priority value than `system-cluster-critical`. This change allows only `system-node-critical` priority class to have low OOMScore. - - action required - If the user wants to have the pod to be OOMKilled last and the pod has `system-cluster-critical` priority class, it has to be changed to `system-node-critical` priority class to preserve the existing behavior ([#99729](https://github.com/kubernetes/kubernetes/pull/99729), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- API Server tracing can now trace re-entrant api requests. ([#103218](https://github.com/kubernetes/kubernetes/pull/103218), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] -- APIServerTracing now collects spans from etcd client calls, and propagates context to etcd. ([#103216](https://github.com/kubernetes/kubernetes/pull/103216), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Cloud Provider and Instrumentation] -- APIServerTracing now collects spans from outgoing requests to admission webhooks. ([#103601](https://github.com/kubernetes/kubernetes/pull/103601), [@dashpole](https://github.com/dashpole)) [SIG API Machinery] -- Add a namespace label for all `apiserver_admission_* metrics`. - Expand the histogram range to 0-10s for all `apiserver_admission_*_duration_seconds` metrics. ([#101208](https://github.com/kubernetes/kubernetes/pull/101208), [@voutcn](https://github.com/voutcn)) -- Add unified map on CRI to support `cgroup v2`. Refer to https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#unified. ([#102578](https://github.com/kubernetes/kubernetes/pull/102578), [@payall4u](https://github.com/payall4u)) -- Added BinaryData description to `kubectl describe` command. ([#100568](https://github.com/kubernetes/kubernetes/pull/100568), [@lauchokyip](https://github.com/lauchokyip)) -- Added a new metric `apiserver_flowcontrol_request_concurrency_in_use` that shows the number of - seats (concurrency) occupied by the currently executing requests in the API Priority and Fairness system. ([#102795](https://github.com/kubernetes/kubernetes/pull/102795), [@tkashem](https://github.com/tkashem)) -- Added field-selector option for `kubectl top pod` ([#102155](https://github.com/kubernetes/kubernetes/pull/102155), [@lauchokyip](https://github.com/lauchokyip)) [SIG CLI] -- Added new metrics about API Priority and Fairness. Each one has a label `priority_level`. The last two also have a label `bound` taking values `min` and `max. - - apiserver_flowcontrol_current_r: R(the time of the last change in state of the queues) - - apiserver_flowcontrol_dispatch_r: R(the time of the latest request dispatch) - - apiserver_flowcontrol_latest_s: S(the request last dispatched) = R(when that request starts executing in the virtual world) - - apiserver_flowcontrol_next_s_bounds: min and max next S among non-empty queues - - apiserver_flowcontrol_next_discounted_s_bounds: min and max next S - (sum [over requests executing] width * estimatedDuration) among non-empty queues ([#102859](https://github.com/kubernetes/kubernetes/pull/102859), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery and Instrumentation] -- Adding `--restart-kubelet` flag on E2E Node test suite ([#97028](https://github.com/kubernetes/kubernetes/pull/97028), [@knabben](https://github.com/knabben)) [SIG Node and Testing] -- Adds feature gate `KubeletInUserNamespace` which enables support for running kubelet in a user namespace. - - The user namespace has to be created before running kubelet. - All the node components such as CRI need to be running in the same user namespace. - - When the feature gate is enabled, kubelet ignores errors that happens during setting the following sysctl values: `vm.overcommit_memory`, `vm.panic_on_oom`, `kernel.panic`, `kernel.panic_on_oops`, `kernel.keys.root_maxkeys`, `kernel.keys.root_maxbytes`. (These sysctl values for the host, not for the containers) - - kubelet also ignores an error during opening `/dev/kmsg`. - This feature gate also allows kube-proxy to ignore an error during setting `RLIMIT_NOFILE`. - - This feature gate is especially useful for running Kubernetes inside Rootless Docker/Podman with `kind` or `minikube`. ([#92863](https://github.com/kubernetes/kubernetes/pull/92863), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Network, Node and Testing] -- Adds metrics for the delegated authenticator used by extension APIs that delegate authentication logic to the Kube API server. ([#99364](https://github.com/kubernetes/kubernetes/pull/99364), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Adds metrics for the delegated authorizer used by extension APIs that delegate authorization logic to the Kube API server. ([#100339](https://github.com/kubernetes/kubernetes/pull/100339), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Adds two kubemark flags, `--max-pods` and `--extended-resources`. ([#100267](https://github.com/kubernetes/kubernetes/pull/100267), [@Jeffwan](https://github.com/Jeffwan)) -- An audit log entry will be generated when a `ValidatingAdmissionWebhook` is failing to open. ([#92739](https://github.com/kubernetes/kubernetes/pull/92739), [@cnphil](https://github.com/cnphil)) -- Base images: Updated to - - debian-base:buster-v1.6.0 - - debian-iptables:buster-v1.6.0 ([#100976](https://github.com/kubernetes/kubernetes/pull/100976), [@jindijamie](https://github.com/jindijamie)) -- Base-images: Update to `debian-base:buster-v1.7.1` ([#102594](https://github.com/kubernetes/kubernetes/pull/102594), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Deprecated warning message for `igonre-errors` flag. ([#102677](https://github.com/kubernetes/kubernetes/pull/102677), [@yuzhiquan](https://github.com/yuzhiquan)) -- Endpoints that have more than 1000 endpoints will be truncated and the `endpoints.kubernetes.io/over-capacity` annotation on the Endpoints resource will be set to `truncated`. ([#103520](https://github.com/kubernetes/kubernetes/pull/103520), [@swetharepakula](https://github.com/swetharepakula)) [SIG Apps and Network] -- Expose `/debug/flags/v` to allow dynamically setting log level for kube-proxy. ([#98306](https://github.com/kubernetes/kubernetes/pull/98306), [@borgerli](https://github.com/borgerli)) [SIG Network] -- Expose container start time as `container_start_time_seconds` in the kubelet `/metrics/resource` endpoint. ([#102444](https://github.com/kubernetes/kubernetes/pull/102444), [@sanwishe](https://github.com/sanwishe)) -- Extended resources defined in `LeastAllocated`, `MostAllocated` and `RequestedToCapacityRatio` plugin argument are bypassed by the scheduler if the incoming Pod doesn't request them in the pod spec. ([#103169](https://github.com/kubernetes/kubernetes/pull/103169), [@Huang-Wei](https://github.com/Huang-Wei)) -- Feat: change parittion style to GPT on Windows ([#101412](https://github.com/kubernetes/kubernetes/pull/101412), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage and Windows] -- Features gates `EndpointSliceProxying` & `WindowsEndpointSliceProxying` graduates to GA and are unconditionally enabled. Kube-proxy will use EndpointSlices for endpoint information. ([#103451](https://github.com/kubernetes/kubernetes/pull/103451), [@swetharepakula](https://github.com/swetharepakula)) -- Fluentd: isolate logging resources in separate namespace `logging` ([#68004](https://github.com/kubernetes/kubernetes/pull/68004), [@saravanan30erd](https://github.com/saravanan30erd)) -- For `kubeadm`: add `--validity-period` flag for `kubeadm kubeconfig user` command. ([#100907](https://github.com/kubernetes/kubernetes/pull/100907), [@SataQiu](https://github.com/SataQiu)) -- Implement `minReadySeconds` for the `StatefulSets`. ([#101316](https://github.com/kubernetes/kubernetes/pull/101316), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- Improve logging of `APIService` availability changes in kube-apiserver. ([#101420](https://github.com/kubernetes/kubernetes/pull/101420), [@sttts](https://github.com/sttts)) -- Introduce a feature gate `DisableCloudProviders` allowing to disable cloud-provider initialization in KAPI, KCM and kubelet. - `DisableCloudProviders` FeatureGate is currently in Alpha, which means is currently disabled by default. Once the FeatureGate moves to beta, in-tree cloud providers would be disabled by default, and a user won't be able to specify `--cloud-provider=<aws|openstack|azure|gcp|vsphere>` anymore to any of KCM, KAPI or kubelet. Only a '--cloud-provider=external' would be allowed. CCM would have to run out-of-tree with CSI. ([#100136](https://github.com/kubernetes/kubernetes/pull/100136), [@Danil-Grigorev](https://github.com/Danil-Grigorev)) -- JSON logging format is no longer available by default in non-core Kubernetes Components and require owners to opt in. ([#102869](https://github.com/kubernetes/kubernetes/pull/102869), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] -- Kube-apiserver: the alpha PodSecurity feature can be enabled by passing `--feature-gates=PodSecurity=true`, and enables controlling allowed pods using namespace labels. See https://git.k8s.io/enhancements/keps/sig-auth/2579-psp-replacement for more details. ([#103099](https://github.com/kubernetes/kubernetes/pull/103099), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Instrumentation, Release, Security and Testing] -- Kube-proxy uses V1 `EndpointSlices`. ([#103306](https://github.com/kubernetes/kubernetes/pull/103306), [@swetharepakula](https://github.com/swetharepakula)) -- Kubeadm: Add the `RootlessControlPlane` kubeadm specific feature gate (Alpha in 1.22, disabled by default). It can be used to enable an experimental feature that makes the control plane component static Pod containers for `kube-apiserver`, `kube-controller-manager`, `kube-scheduler` and `etcd` to run as a non-root users. ([#102158](https://github.com/kubernetes/kubernetes/pull/102158), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) -- Kubeadm: Set the `seccompProfile` to `runtime/default` in the `PodSecurityContext` of the control-plane components that run as static Pods. ([#100234](https://github.com/kubernetes/kubernetes/pull/100234), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) -- Kubeadm: add a new field `skipPhases` to `v1beta3` `InitConfiguration` and `JoinConfiguration` that can contain a list of phases to skip during "kubeadm init" and "kubeadm join". The flag "--skip-phases" takes precedence over this field. ([#101923](https://github.com/kubernetes/kubernetes/pull/101923), [@neolit123](https://github.com/neolit123)) -- Kubeadm: add the `--dry-run` flag to the `control-plane` phase of "kubeadm init". ([#102722](https://github.com/kubernetes/kubernetes/pull/102722), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) -- Kubeadm: add the `imagePullPolicy` field in the `nodeRegistration` section of `InitConfiguration` and `JoinConfiguration` in `v1beta3`. This allows the user to specify the image pull policy during "kubeadm init" and "kubeadm join". The value of this field must be one of `Always`, `IfNotPresent` or `Never`. The default behavior continues to be `IfNotPresent`. ([#102901](https://github.com/kubernetes/kubernetes/pull/102901), [@wangyysde](https://github.com/wangyysde)) -- Kubeadm: during "kubeadm init/join/upgrade", always default the `cgroupDriver` value in the `KubeletConfiguration` to `systemd`, unless the user was explicit about the value. See [configure-cgroup-driver](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) for more details. ([#102133](https://github.com/kubernetes/kubernetes/pull/102133), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: update `CoreDNS` to 1.8.4. Grant `CoreDNS` permissions to "list" and "watch" `EndpointSlice` objects to accommodate dual-stack support. ([#102466](https://github.com/kubernetes/kubernetes/pull/102466), [@pacoxu](https://github.com/pacoxu)) -- Kubectl: add `LAST RESTART` column to `kubectl get pods` output. ([#100142](https://github.com/kubernetes/kubernetes/pull/100142), [@Ethyling](https://github.com/Ethyling)) -- Kubemark's hollow-node will now print flags before starting. ([#101181](https://github.com/kubernetes/kubernetes/pull/101181), [@mm4tt](https://github.com/mm4tt)) -- Kubernetes is now built with Golang 1.16.3 ([#101206](https://github.com/kubernetes/kubernetes/pull/101206), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing] -- Kubernetes is now built with Golang 1.16.4 ([#101809](https://github.com/kubernetes/kubernetes/pull/101809), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing] -- Kubernetes is now built with Golang 1.16.5. ([#102689](https://github.com/kubernetes/kubernetes/pull/102689), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with Golang 1.16.6 ([#103669](https://github.com/kubernetes/kubernetes/pull/103669), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing] -- Leader Migration for controller managers graduated to beta. ([#103533](https://github.com/kubernetes/kubernetes/pull/103533), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery and Cloud Provider] -- Make kubectl command headers default for beta. ([#103238](https://github.com/kubernetes/kubernetes/pull/103238), [@seans3](https://github.com/seans3)) [SIG CLI] -- Mark `net.ipv4.ip_unprivileged_port_start` as safe `sysctl`. ([#103326](https://github.com/kubernetes/kubernetes/pull/103326), [@pacoxu](https://github.com/pacoxu)) -- Metrics server nanny has now poll period set to 30s (previously 5 minutes) to allow faster scaling of metrics server. ([#101869](https://github.com/kubernetes/kubernetes/pull/101869), [@olagacek](https://github.com/olagacek)) [SIG Cloud Provider and Instrumentation] -- NetworkPolicy validation framework support for windows. ([#98077](https://github.com/kubernetes/kubernetes/pull/98077), [@jayunit100](https://github.com/jayunit100)) -- New feature gate `ExpandedDNSConfig` is now available. This feature allows Kubernetes to have expanded DNS configuration. ([#100651](https://github.com/kubernetes/kubernetes/pull/100651), [@gjkim42](https://github.com/gjkim42)) -- New metrics: `apiserver_kube_aggregator_x509_missing_san_total` and `apiserver_webhooks_x509_missing_san_total`. This metric measures a number of connections to webhooks/aggregated API servers that use certificates without Subject Alternative Names. It being non-zero is a warning sign that these connections will stop functioning in the future since Golang is going to deprecate x509 certificate subject Common Names for server hostname verification. ([#95396](https://github.com/kubernetes/kubernetes/pull/95396), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Auth and Instrumentation] -- Node Problem Detector is now available for GCE Windows nodes. ([#101539](https://github.com/kubernetes/kubernetes/pull/101539), [@jeremyje](https://github.com/jeremyje)) [SIG Cloud Provider, Node and Windows] -- Promote Cronjobs storage version to `batch/v1`. ([#102363](https://github.com/kubernetes/kubernetes/pull/102363), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Promote `CronJobControllerV2` flag to GA, with removal in 1.23. ([#102529](https://github.com/kubernetes/kubernetes/pull/102529), [@soltysh](https://github.com/soltysh)) -- Promote `EndpointSliceTerminatingCondition` to Beta. This enables the `terminating` and `serving` conditions for EndpointSlice by default. ([#103596](https://github.com/kubernetes/kubernetes/pull/103596), [@andrewsykim](https://github.com/andrewsykim)) -- Run etcd as non-root on GCE provider ([#100635](https://github.com/kubernetes/kubernetes/pull/100635), [@cindy52](https://github.com/cindy52)) -- Scheduler nows provides an option for plugin developers to move `Pods` to activeQ. ([#103383](https://github.com/kubernetes/kubernetes/pull/103383), [@Huang-Wei](https://github.com/Huang-Wei)) -- Secret values are now masked by default in `kubectl diff` output. ([#96084](https://github.com/kubernetes/kubernetes/pull/96084), [@loozhengyuan](https://github.com/loozhengyuan)) -- Services with `externalTrafficPolicy: Local` now support graceful termination when using - the iptables or ipvs mode of kube-proxy with `EndpointSlices` enabled. Specifically, if a - connection for such a service arrives on a node when there are no "Ready" endpoints - for the service, but there is at least one Terminating pod for that service on the node, - then kube-proxy will send the traffic to the Terminating pod rather than dropping it. This - patches up a race condition between when a pod is killed and when the external load - balancer notices that it has been killed. ([#97238](https://github.com/kubernetes/kubernetes/pull/97238), [@andrewsykim](https://github.com/andrewsykim)) -- Shell completion has been migrated to Cobra's go solution. `kubectl` is now smarter about disabling file completion when it does not apply. Furthermore, completion for the `cp` command does not show all files unless the user has started typing something. ([#96087](https://github.com/kubernetes/kubernetes/pull/96087), [@marckhouzam](https://github.com/marckhouzam)) [SIG CLI] -- Some of the in-tree storage drivers indicate support for the `MetricsProvider` interface, but fail to configure this for BlockMode volumes. With a recent change, `Kubelet` will call `GetMetrics()` for BlockMode volumes, and the in-tree drivers that miss the support cause a Go panic. Now the in-tree storage drivers that support BlockMode volumes, will return the Capacity of the volume in the `GetMetrics()` call. ([#101587](https://github.com/kubernetes/kubernetes/pull/101587), [@nixpanic](https://github.com/nixpanic)) -- Support `FakeClientset` match subresource. ([#100939](https://github.com/kubernetes/kubernetes/pull/100939), [@wzshiming](https://github.com/wzshiming)) -- The "Leader Migration" now support a wildcard component name and the default value. ([#102711](https://github.com/kubernetes/kubernetes/pull/102711), [@jiahuif](https://github.com/jiahuif)) -- The CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate applying FSGroup to the driver by passing it to `NodeStageVolume` and `NodePublishVolume`, regardless of what other `FSGroup` policies are set, this is an alpha feature. ([#103244](https://github.com/kubernetes/kubernetes/pull/103244), [@verult](https://github.com/verult)) -- The Memory Manager feature graduates to Beta and it is enabled by default. ([#101947](https://github.com/kubernetes/kubernetes/pull/101947), [@cynepco3hahue](https://github.com/cynepco3hahue)) -- The `BoundServiceAccountTokenVolume` graduates to GA and thus will be unconditionally enabled. The feature gate is going to be removed in 1.23. ([#101992](https://github.com/kubernetes/kubernetes/pull/101992), [@zshihang](https://github.com/zshihang)) -- The `EmptyDir` memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value. ([#101048](https://github.com/kubernetes/kubernetes/pull/101048), [@dims](https://github.com/dims)) -- The `HugePageStorageMediumSize` feature graduates to GA and unconditionally enabled. Allowing unconditional usage of multiple sizes huge page resources on a container level. ([#99144](https://github.com/kubernetes/kubernetes/pull/99144), [@bart0sh](https://github.com/bart0sh)) -- The `IngressClassNamespacedParams` feature gate has graduated to beta and is enabled by default. This means IngressClass resource will now have two new fields - `spec.paramters.namespace` and `spec.parameters.scope`. ([#101711](https://github.com/kubernetes/kubernetes/pull/101711), [@hbagdi](https://github.com/hbagdi)) -- The `LogarithmicScaleDown` feature graduates to Beta and enabled by default. ([#101767](https://github.com/kubernetes/kubernetes/pull/101767), [@damemi](https://github.com/damemi)) -- The `NamespaceDefaultLabelName` is promoted to GA in this release. All Namespace API objects have a `kubernetes.io/metadata.name` label matching their `metadata.name` field to allow selecting any `namespace` by its name using a label selector. ([#101342](https://github.com/kubernetes/kubernetes/pull/101342), [@rosenhouse](https://github.com/rosenhouse)) -- The `ServiceInternalTrafficPolicy` feature graduates to Beta and enable by default, which enables the `internalTrafficPolicy` field of Service by default. ([#103462](https://github.com/kubernetes/kubernetes/pull/103462), [@andrewsykim](https://github.com/andrewsykim)) -- The `ServiceLBNodePortControl` graduates to Beta and is enabled by default. ([#100412](https://github.com/kubernetes/kubernetes/pull/100412), [@hanlins](https://github.com/hanlins)) -- The `SetHostnameAsFQDN` graduates to GA and thus will be unconditionally disabled. ([#101294](https://github.com/kubernetes/kubernetes/pull/101294), [@javidiaz](https://github.com/javidiaz)) -- The `WarningHeader` feature is now GA and is unconditionally enabled. The `apiserver_requested_deprecated_apis` metric has graduated to stable status. The `WarningHeader` feature-gate is no longer operative and will be removed in v1.24. ([#100754](https://github.com/kubernetes/kubernetes/pull/100754), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Instrumentation and Testing] -- The `kubectl debug` is able to create ephemeral containers in pre-1.22 clusters with the `EphemeralContainers` feature enabled. Note that versions of kubectl prior to 1.22 are unable to create ephemeral containers in clusters version 1.22 and greater due to an API change. ([#103292](https://github.com/kubernetes/kubernetes/pull/103292), [@verb](https://github.com/verb)) -- The client-go credential plugins are now GA and are enabled by default. ([#102890](https://github.com/kubernetes/kubernetes/pull/102890), [@ankeesler](https://github.com/ankeesler)) -- The feature gate `SSA` graduated to GA in v1.22 and therefore is unconditionally enabled. ([#100139](https://github.com/kubernetes/kubernetes/pull/100139), [@Jefftree](https://github.com/Jefftree)) -- The job controller removes running pods when the number of completions is achieved. ([#99963](https://github.com/kubernetes/kubernetes/pull/99963), [@alculquicondor](https://github.com/alculquicondor)) -- The kubeconfig is now exposed in `the kube-scheduler` framework handle. Out-of-tree plugins can leverage that to build CRD informers easily. ([#100644](https://github.com/kubernetes/kubernetes/pull/100644), [@Huang-Wei](https://github.com/Huang-Wei)) -- The new flag `--chunk-size=SIZE` for `kubectl drain` has been promoted to beta, and enabled by default. This flag may be used to alter the number of items or disable this feature when `0` is passed. ([#100148](https://github.com/kubernetes/kubernetes/pull/100148), [@KnVerey](https://github.com/KnVerey)) -- The new flag `--chunk-size=SIZE` has been added to `kubectl describe`. This flag may be used to alter the number of items or disable this feature when `0` is passed. ([#101171](https://github.com/kubernetes/kubernetes/pull/101171), [@KnVerey](https://github.com/KnVerey)) -- The pod resource API will provide memory manager metrics in the case when the memory manager feature gate is enabled, and the memory manager policy is static. ([#101030](https://github.com/kubernetes/kubernetes/pull/101030), [@cynepco3hahue](https://github.com/cynepco3hahue)) -- The prefer nominated node graduates to Beta and enabld by default. ([#102201](https://github.com/kubernetes/kubernetes/pull/102201), [@chendave](https://github.com/chendave)) -- Update etcd version to 3.5.0-beta.3. ([#102062](https://github.com/kubernetes/kubernetes/pull/102062), [@serathius](https://github.com/serathius)) -- Update the Debian images to pick up CVE fixes in the base images: - - Update the `debian-base` image to v1.7.0 - - Update the `debian-iptables` image to v1.6.1 ([#102302](https://github.com/kubernetes/kubernetes/pull/102302), [@xmudrii](https://github.com/xmudrii)) -- Update the setcap image to buster-v2.0.1. ([#102377](https://github.com/kubernetes/kubernetes/pull/102377), [@xmudrii](https://github.com/xmudrii)) -- Update the system-validators library to v1.5.0. Includes validation for `seccomp` and fixes a stdout/stderr problem in the Docker validator. ([#103390](https://github.com/kubernetes/kubernetes/pull/103390), [@ironyman](https://github.com/ironyman)) -- Updates the following images to pick up CVE fixes: - - `debian` to v1.8.0 - - `debian-iptables` to v1.6.5 - - `setcap` to v2.0.3 ([#103235](https://github.com/kubernetes/kubernetes/pull/103235), [@thejoycekung](https://github.com/thejoycekung)) [SIG API Machinery, Release and Testing] -- Warnings for the use of deprecated and known-bad values in pod specs are now sent. ([#101688](https://github.com/kubernetes/kubernetes/pull/101688), [@liggitt](https://github.com/liggitt)) -- Watch requests are now handled throttled by priority and fairness filter in `kube-apiserver`. ([#102171](https://github.com/kubernetes/kubernetes/pull/102171), [@wojtek-t](https://github.com/wojtek-t)) -- You can use this Builder function to create events Field Selector ([#101817](https://github.com/kubernetes/kubernetes/pull/101817), [@cndoit18](https://github.com/cndoit18)) [SIG API Machinery and Scalability] -- `Scheduler` now registers event handlers dynamically. ([#101394](https://github.com/kubernetes/kubernetes/pull/101394), [@Huang-Wei](https://github.com/Huang-Wei)) -- `kubectl`: Enable using protocol buffers to request Metrics API. ([#102039](https://github.com/kubernetes/kubernetes/pull/102039), [@serathius](https://github.com/serathius)) - -### Documentation - -- The command`kubectl debug` will now print a warning message when using the `--target` option since many container runtimes do not support this yet. ([#101074](https://github.com/kubernetes/kubernetes/pull/101074), [@verb](https://github.com/verb)) - -### Failing Test - -- Fixed generic ephemeal volumes with `OwnerReferencesPermissionEnforcement` admission plugin enabled. ([#101186](https://github.com/kubernetes/kubernetes/pull/101186), [@jsafrane](https://github.com/jsafrane)) -- Fixes `kubectl drain --dry-run=server`. ([#100206](https://github.com/kubernetes/kubernetes/pull/100206), [@KnVerey](https://github.com/KnVerey)) -- Fixes an overly restrictive conformance test to accept service account tokens signed by an ECDSA key ([#100680](https://github.com/kubernetes/kubernetes/pull/100680), [@smira](https://github.com/smira)) [SIG Architecture, Auth and Testing] -- Fixes the `should receive events on concurrent watches in same order` conformance test to work properly on clusters that auto-create additional configmaps in namespaces. ([#101950](https://github.com/kubernetes/kubernetes/pull/101950), [@liggitt](https://github.com/liggitt)) -- Resolves an issue with the "ServiceAccountIssuerDiscovery should support OIDC discovery" conformance test failing on clusters which are configured with issuers outside the cluster ([#101589](https://github.com/kubernetes/kubernetes/pull/101589), [@mtaufen](https://github.com/mtaufen)) [SIG Auth and Testing] - -### Bug or Regression - -- Added jitter factor to lease controller that better smears load on kube-apiserver over time. ([#101652](https://github.com/kubernetes/kubernetes/pull/101652), [@marseel](https://github.com/marseel)) [SIG API Machinery and Scalability] -- Added privileges for `EndpointSlice` to the default view & edit RBAC roles. ([#101203](https://github.com/kubernetes/kubernetes/pull/101203), [@mtougeron](https://github.com/mtougeron)) -- After DBus restarts, make `GracefulNodeShutdown` work again ([#100369](https://github.com/kubernetes/kubernetes/pull/100369), [@wzshiming](https://github.com/wzshiming)) -- Aggregate errors when putting vmss. ([#98350](https://github.com/kubernetes/kubernetes/pull/98350), [@nilo19](https://github.com/nilo19)) -- Aggregate write permissions on events to users with edit and admin role. ([#102858](https://github.com/kubernetes/kubernetes/pull/102858), [@tumido](https://github.com/tumido)) -- Aggregated roles no longer include write access to `EndpointSlices`. This rolls back part of a change that was introduced earlier in the Kubernetes 1.22 cycle. ([#103703](https://github.com/kubernetes/kubernetes/pull/103703), [@robscott](https://github.com/robscott)) -- Applying fix for not deleting existing public IP when a service is deleted in Azure. ([#100694](https://github.com/kubernetes/kubernetes/pull/100694), [@nilo19](https://github.com/nilo19)) -- Applying fix for not tagging static public IP. ([#101752](https://github.com/kubernetes/kubernetes/pull/101752), [@nilo19](https://github.com/nilo19)) -- Applying fix so that deleting non-existing disk returns success. ([#102083](https://github.com/kubernetes/kubernetes/pull/102083), [@andyzhangx](https://github.com/andyzhangx)) -- Applying fix: cleanup outdated routes. ([#102935](https://github.com/kubernetes/kubernetes/pull/102935), [@nilo19](https://github.com/nilo19)) -- Avoid caching the Azure VMSS instances whose network profile is nil ([#100948](https://github.com/kubernetes/kubernetes/pull/100948), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Azure: Avoid setting cached Sku when updating VMSS and VMSS instances. ([#102005](https://github.com/kubernetes/kubernetes/pull/102005), [@feiskyer](https://github.com/feiskyer)) -- Azurefile: Normalize share name to not include the capital letters ([#100731](https://github.com/kubernetes/kubernetes/pull/100731), [@kassarl](https://github.com/kassarl)) -- Chain the field manager creation calls in `newDefaultFieldManager` to be explicit about the order of operations. ([#101076](https://github.com/kubernetes/kubernetes/pull/101076), [@kevindelgado](https://github.com/kevindelgado)) -- Disruption controller shouldn't error while syncing for unmanaged pods. ([#103414](https://github.com/kubernetes/kubernetes/pull/103414), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Apps and Testing] -- Ensure service is deleted when the Azure resource group has been deleted. ([#100944](https://github.com/kubernetes/kubernetes/pull/100944), [@feiskyer](https://github.com/feiskyer)) -- Ensures `ExecProbeTimeout=false` kubelet feature gate with dockershim is taken into account, when the exec probe takes longer than `timeoutSeconds` configuration. ([#100200](https://github.com/kubernetes/kubernetes/pull/100200), [@jackfrancis](https://github.com/jackfrancis)) -- Expose `rest_client_rate_limiter_duration_seconds` metric to component-base to track client side rate limiter latency in seconds. Broken down by verb and URL. ([#100311](https://github.com/kubernetes/kubernetes/pull/100311), [@IonutBajescu](https://github.com/IonutBajescu)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] -- Fire an event when failing to open `NodePort`. ([#100599](https://github.com/kubernetes/kubernetes/pull/100599), [@masap](https://github.com/masap)) -- Fix Azure node public IP fetching issues from instance metadata service when the node is part of standard load balancer backend pool. ([#100690](https://github.com/kubernetes/kubernetes/pull/100690), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] -- Fix `EndpointSlice` describe panic when an Endpoint doesn't have zone. ([#101025](https://github.com/kubernetes/kubernetes/pull/101025), [@tnqn](https://github.com/tnqn)) -- Fix `kubectl set env` or `resources` not working for initcontainers. ([#101669](https://github.com/kubernetes/kubernetes/pull/101669), [@carlory](https://github.com/carlory)) -- Fix `kubectl` alpha debug node does not work on tainted(NoExecute) nodes and tolerate everything. ([#98431](https://github.com/kubernetes/kubernetes/pull/98431), [@wawa0210](https://github.com/wawa0210)) -- Fix a bug on the `endpointslicemirroring` controller where endpoint `NotReadyAddresses` were mirrored as Ready to the corresponding `EndpointSlice`. ([#102683](https://github.com/kubernetes/kubernetes/pull/102683), [@aojea](https://github.com/aojea)) -- Fix a bug that a preemptor pod may exist as a phantom in the scheduler. ([#102498](https://github.com/kubernetes/kubernetes/pull/102498), [@Huang-Wei](https://github.com/Huang-Wei)) -- Fix a number of race conditions in the kubelet when pods are starting up or shutting down that might cause pods to take a long time to shut down. ([#102344](https://github.com/kubernetes/kubernetes/pull/102344), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps, Node, Storage and Testing] -- Fix an issue with `kubectl` on certain older version of Windows or when legacy console mode is enabled on Windows 8 which causes `kubectl exec` to crash. ([#102825](https://github.com/kubernetes/kubernetes/pull/102825), [@n4j](https://github.com/n4j)) -- Fix availability set cache in vmss cache ([#100110](https://github.com/kubernetes/kubernetes/pull/100110), [@CecileRobertMichon](https://github.com/CecileRobertMichon)) [SIG Cloud Provider] -- Fix how nulls are handled in array and objects in [json patches](https://github.com/evanphx/json-patch). ([#102467](https://github.com/kubernetes/kubernetes/pull/102467), [@pacoxu](https://github.com/pacoxu)) -- Fix panic when `kubectl create ingress` has annotation flag and an empty value set. ([#101377](https://github.com/kubernetes/kubernetes/pull/101377), [@rikatz](https://github.com/rikatz)) -- Fix performance regression for update and apply operations on large CRDs. ([#103318](https://github.com/kubernetes/kubernetes/pull/103318), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Storage] -- Fix raw block mode CSI `NodePublishVolume` stage miss pod info. ([#99069](https://github.com/kubernetes/kubernetes/pull/99069), [@phantooom](https://github.com/phantooom)) -- Fix resource enforcement when using systemd cgroup driver ([#102147](https://github.com/kubernetes/kubernetes/pull/102147), [@kolyshkin](https://github.com/kolyshkin)) -- Fix rounding of volume storage requests. ([#100100](https://github.com/kubernetes/kubernetes/pull/100100), [@maxlaverse](https://github.com/maxlaverse)) -- Fix runtime container status for `PostStart` hook error. ([#100608](https://github.com/kubernetes/kubernetes/pull/100608), [@pacoxu](https://github.com/pacoxu)) -- Fix scoring for `NodeResourcesMostAllocated` and `NodeResourcesBalancedAllocation` plugins when nodes have containers with no requests. This was leaving to under-utilization of small nodes. ([#102925](https://github.com/kubernetes/kubernetes/pull/102925), [@alculquicondor](https://github.com/alculquicondor)) -- Fix the code is leaking the defaulting between unrelated pod instances. ([#103284](https://github.com/kubernetes/kubernetes/pull/103284), [@kebe7jun](https://github.com/kebe7jun)) [SIG CLI] -- Fix winkernel kube-proxy to only use dual stack when host and networking supports it ([#101047](https://github.com/kubernetes/kubernetes/pull/101047), [@jsturtevant](https://github.com/jsturtevant)) [SIG Network and Windows] -- Fix: Azure file inline volume namespace issue in CSI migration translation ([#101235](https://github.com/kubernetes/kubernetes/pull/101235), [@andyzhangx](https://github.com/andyzhangx)) -- Fix: Bug in `kube-proxy` latency metrics to calculate only the latency value for the `Endpoints` that are created after it starts running. This is needed because all the `Endpoints` objects are processed on restarts, independently when they were. ([#100861](https://github.com/kubernetes/kubernetes/pull/100861), [@aojea](https://github.com/aojea)) -- Fix: avoid nil-pointer panic when checking the frontend IP configuration ([#101739](https://github.com/kubernetes/kubernetes/pull/101739), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Fix: display of Job completion mode in `kubectl describe`. ([#101160](https://github.com/kubernetes/kubernetes/pull/101160), [@alculquicondor](https://github.com/alculquicondor)) -- Fix: return empty VMAS name if using standalone VM ([#103470](https://github.com/kubernetes/kubernetes/pull/103470), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] -- Fix: set "host is down" as corrupted mount. When SMB server is down, there is no way to terminate pod which is using SMB mount, would get an error. ([#101398](https://github.com/kubernetes/kubernetes/pull/101398), [@andyzhangx](https://github.com/andyzhangx)) -- Fix: using NVMe AWS EBS volumes partitions. ([#100500](https://github.com/kubernetes/kubernetes/pull/100500), [@jsafrane](https://github.com/jsafrane)) -- Fixed 'kubelet' runtime panic for timed-out portforward streams. ([#102489](https://github.com/kubernetes/kubernetes/pull/102489), [@saschagrunert](https://github.com/saschagrunert)) -- Fixed SELinux relabeling of CSI volumes after CSI driver failure. ([#103154](https://github.com/kubernetes/kubernetes/pull/103154), [@jsafrane](https://github.com/jsafrane)) [SIG Node and Storage] -- Fixed `garbage collection` of dangling `VolumeAttachments` for `PersistentVolumes` migrated to CSI on startup of `kube-controller-manager`. ([#102176](https://github.com/kubernetes/kubernetes/pull/102176), [@timebertt](https://github.com/timebertt)) -- Fixed `port-forward` memory leak for long-running and heavily used connections. ([#99839](https://github.com/kubernetes/kubernetes/pull/99839), [@saschagrunert](https://github.com/saschagrunert)) -- Fixed a bug due to which the controller was not populating the `lastSuccessfulTime` field added to `cronjob.status` in `batch/v1`. ([#102642](https://github.com/kubernetes/kubernetes/pull/102642), [@alaypatel07](https://github.com/alaypatel07)) -- Fixed a bug that `kubectl create configmap` always returns zero exit code when failed. ([#101780](https://github.com/kubernetes/kubernetes/pull/101780), [@nak3](https://github.com/nak3)) [SIG CLI] -- Fixed a bug that scheduler extenders are not called on preemptions. ([#103019](https://github.com/kubernetes/kubernetes/pull/103019), [@ordovicia](https://github.com/ordovicia)) -- Fixed a bug where `startupProbe` stopped working after a container's first restart. ([#101093](https://github.com/kubernetes/kubernetes/pull/101093), [@wzshiming](https://github.com/wzshiming)) -- Fixed an issue blocking azure auth to prompt to device code authentication flow when refresh token expires. ([#102063](https://github.com/kubernetes/kubernetes/pull/102063), [@tdihp](https://github.com/tdihp)) -- Fixed false-positive uncertain volume attachments, which led to unexpected detachment of CSI migrated volumes ([#101737](https://github.com/kubernetes/kubernetes/pull/101737), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps and Storage] -- Fixed mounting of NFS volumes when IPv6 address is used as a server. ([#101067](https://github.com/kubernetes/kubernetes/pull/101067), [@Elbehery](https://github.com/Elbehery)) [SIG Storage] -- Fixed starting new pods after previous pod timed out unmounting its volumes. ([#100183](https://github.com/kubernetes/kubernetes/pull/100183), [@jsafrane](https://github.com/jsafrane)) -- Fixed very rare volume corruption when a pod is deleted while kubelet is offline. ([#102059](https://github.com/kubernetes/kubernetes/pull/102059), [@jsafrane](https://github.com/jsafrane)) -- Fixes a data race issue in the priority and fairness API server filter. ([#100638](https://github.com/kubernetes/kubernetes/pull/100638), [@tkashem](https://github.com/tkashem)) -- Fixes issue with websocket-based watches of Service objects not closing correctly on timeout. ([#102539](https://github.com/kubernetes/kubernetes/pull/102539), [@liggitt](https://github.com/liggitt)) -- For `kubeadm`: support for custom imagetags for etcd images which contain build metadata, when imagetags are in the form of version_metadata. For instance, if the etcd version is v3.4.13+patch.0, the supported imagetag would be v3.4.13_patch.0 ([#100350](https://github.com/kubernetes/kubernetes/pull/100350), [@jr0d](https://github.com/jr0d)) -- For vSphere: fix regression during attach disk if datastore is within a storage folder or datastore cluster. ([#102892](https://github.com/kubernetes/kubernetes/pull/102892), [@gnufied](https://github.com/gnufied)) -- GCE Windows clusters have their TCP/IP parameters are set to GCE's recommended values. ([#103057](https://github.com/kubernetes/kubernetes/pull/103057), [@jeremyje](https://github.com/jeremyje)) [SIG Cloud Provider and Windows] -- GCE Windows will no longer install Docker on containerd nodes. ([#101747](https://github.com/kubernetes/kubernetes/pull/101747), [@jeremyje](https://github.com/jeremyje)) [SIG Cloud Provider and Windows] -- Generated OpenAPI now correctly specifies 201 as a possible response code for PATCH operations. ([#100141](https://github.com/kubernetes/kubernetes/pull/100141), [@brendandburns](https://github.com/brendandburns)) -- Graceful termination will now be honored when deleting a collection of pods. ([#100101](https://github.com/kubernetes/kubernetes/pull/100101), [@deads2k](https://github.com/deads2k)) -- If `kube-proxy` mode is userspace do not enable `EndpointSlices`. ([#100913](https://github.com/kubernetes/kubernetes/pull/100913), [@JornShen](https://github.com/JornShen)) -- Kubeadm: allow passing the flag `--log-file` if `--config` is passed. If you wish to log to a file you must also pass `--logtostderr=false` or `--alsologtostderr=true`. Alternatively you can pipe to a file using "kubeadm ... | tee ...". ([#101449](https://github.com/kubernetes/kubernetes/pull/101449), [@CaoDonghui123](https://github.com/CaoDonghui123)) -- Kubeadm: enable `--experimental-patches` flag for `kubeadm join phase control-plane-join all` command. ([#101110](https://github.com/kubernetes/kubernetes/pull/101110), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: fix a bug where `kubeadm join` for control plane nodes would download certificates and keys from the cluster, but would not write publicly readable certificates and public keys with mode `0644` and instead use mode `0600`. ([#103313](https://github.com/kubernetes/kubernetes/pull/103313), [@neolit123](https://github.com/neolit123)) -- Kubeadm: fix the bug that `kubeadm` only uses the first hash in `caCertHashes` to verify the root CA. ([#101977](https://github.com/kubernetes/kubernetes/pull/101977), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: remove the "ephemeral_storage" request from the etcd static pod that kubeadm deploys on stacked etcd control plane nodes. This request has caused sporadic failures on some setups due to a problem in the kubelet with cadvisor and the LocalStorageCapacityIsolation feature gate. See this issue for more details: https://github.com/kubernetes/kubernetes/issues/99305 ([#102673](https://github.com/kubernetes/kubernetes/pull/102673), [@jackfrancis](https://github.com/jackfrancis)) [SIG Cluster Lifecycle] -- Kubeadm: when using a custom image repository for CoreDNS kubeadm now will append the `coredns` image name instead of `coredns/coredns`, thus restoring the behaviour existing before the v1.21 release. Users who rely on nested folder for the coredns image should set the `clusterConfiguration.dns.imageRepository` value including the nested path name (e.g using `registry.company.xyz/coredns` will force kubeadm to use `registry.company.xyz/coredns/coredns` image). No action is needed if using the default registry (k8s.gcr.io). ([#102502](https://github.com/kubernetes/kubernetes/pull/102502), [@ykakarap](https://github.com/ykakarap)) -- Kubelet: improve the performance when waiting for a synchronization of the node list with the `kube-apiserver`. ([#99336](https://github.com/kubernetes/kubernetes/pull/99336), [@neolit123](https://github.com/neolit123)) -- Kubelet: the returned value for PodIPs is the same in the Downward API and in the `pod.status.PodIPs` field ([#103307](https://github.com/kubernetes/kubernetes/pull/103307), [@aojea](https://github.com/aojea)) -- Limit vSphere volume name to 63 characters long. ([#100404](https://github.com/kubernetes/kubernetes/pull/100404), [@gnufied](https://github.com/gnufied)) -- Logging for GCE Windows clusters will be more accurate and complete when using Fluent bit. ([#101271](https://github.com/kubernetes/kubernetes/pull/101271), [@jeremyje](https://github.com/jeremyje)) -- Metrics Server will use Addon Manager 1.8.3 ([#103541](https://github.com/kubernetes/kubernetes/pull/103541), [@jbartosik](https://github.com/jbartosik)) [SIG Cloud Provider and Instrumentation] -- Output for `kubectl describe podsecuritypolicy` is now kind specific and cleaner ([#101436](https://github.com/kubernetes/kubernetes/pull/101436), [@KnVerey](https://github.com/KnVerey)) -- Parsing of cpuset information now properly detects more invalid input such as `1--3` or `10-6`. ([#100565](https://github.com/kubernetes/kubernetes/pull/100565), [@lack](https://github.com/lack)) -- Pods that are known to the kubelet to have previously been Running should not revert to Pending state, the kubelet will now infer a termination. ([#102821](https://github.com/kubernetes/kubernetes/pull/102821), [@ehashman](https://github.com/ehashman)) -- Prevent Kubelet stuck in `DiskPressure` when `imagefs.minReclaim` is set ([#99095](https://github.com/kubernetes/kubernetes/pull/99095), [@maxlaverse](https://github.com/maxlaverse)) -- Reduces delay initializing on non-AWS platforms docker runtime. ([#93260](https://github.com/kubernetes/kubernetes/pull/93260), [@nckturner](https://github.com/nckturner)) [SIG Cloud Provider] -- Register/Deregister Targets in chunks for AWS TargetGroup ([#101592](https://github.com/kubernetes/kubernetes/pull/101592), [@M00nF1sh](https://github.com/M00nF1sh)) [SIG Cloud Provider] -- Removed `/sbin/apparmor_parser` requirement for the AppArmor host validation. - This allows using AppArmor on distributions which ship the binary in a different path. ([#97968](https://github.com/kubernetes/kubernetes/pull/97968), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing] -- Renames the timeout field for the `DelegatingAuthenticationOptions` to `TokenRequestTimeout` and set the timeout only for the token review client. Previously the timeout was also applied to watches making them reconnecting every 10 seconds. ([#100959](https://github.com/kubernetes/kubernetes/pull/100959), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Reorganized iptables rules to reduce rules in `KUBE-SERVICES` and `KUBE-NODEPORTS`. ([#96959](https://github.com/kubernetes/kubernetes/pull/96959), [@tssurya](https://github.com/tssurya)) -- Respect annotation size limit for server-side apply updates to the client-side apply annotation. Also, fix opt-out of this behavior by setting the client-side apply annotation to the empty string. ([#102105](https://github.com/kubernetes/kubernetes/pull/102105), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG API Machinery] -- Retry `FibreChannel` devices cleanup after error to ensure `FibreChannel` device is detached before it can be used on another node. ([#101862](https://github.com/kubernetes/kubernetes/pull/101862), [@jsafrane](https://github.com/jsafrane)) -- Support correct sorting for cpu, memory, storage, ephemeral-storage, hugepages, and attachable-volumes. ([#100435](https://github.com/kubernetes/kubernetes/pull/100435), [@lauchokyip](https://github.com/lauchokyip)) -- Switch scheduler to generate the merge patch on pod status instead of the full pod ([#103133](https://github.com/kubernetes/kubernetes/pull/103133), [@marwanad](https://github.com/marwanad)) [SIG Scheduling] -- The `EndpointSlice` IP validation now matches `Endpoints` IP validation. ([#101084](https://github.com/kubernetes/kubernetes/pull/101084), [@robscott](https://github.com/robscott)) -- The `kube-apiserver` now reports the synthetic verb when logging requests, better explaining the user intent and matching what is reported in the metrics. ([#102934](https://github.com/kubernetes/kubernetes/pull/102934), [@lavalamp](https://github.com/lavalamp)) -- The `kube-controller-manager'` sets the upper-bound timeout limit for outgoing requests to 70s. Previously ([#99358](https://github.com/kubernetes/kubernetes/pull/99358), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- The `kube-proxy` log now shows the "Skipping topology aware endpoint filtering since no hints were provided for zone" warning under the right conditions. ([#101857](https://github.com/kubernetes/kubernetes/pull/101857), [@dervoeti](https://github.com/dervoeti)) -- The `kubectl create service` now respects the `namespace` flag. ([#101005](https://github.com/kubernetes/kubernetes/pull/101005), [@zxh326](https://github.com/zxh326)) -- The `kubectl get` now truncates multi-line strings to avoid breaking printing ([#103514](https://github.com/kubernetes/kubernetes/pull/103514), [@soltysh](https://github.com/soltysh)) -- The `kubectl wait --for=delete` command now ignores the not found error correctly. ([#96702](https://github.com/kubernetes/kubernetes/pull/96702), [@lingsamuel](https://github.com/lingsamuel)) -- The `kubelet` now reports distinguishes log messages about certificate rotation for its client cert and server cert separately to make debugging problems with one or the other easier. ([#101252](https://github.com/kubernetes/kubernetes/pull/101252), [@smarterclayton](https://github.com/smarterclayton)) -- The `serviceOwnsFrontendIP` shouldn't report error when the public IP doesn't match. ([#102516](https://github.com/kubernetes/kubernetes/pull/102516), [@nilo19](https://github.com/nilo19)) -- The `system:aggregate-to-edit` role no longer includes write access to the Endpoints API. For new Kubernetes 1.22 clusters, the `edit` and `admin` roles will no longer include that access in newly created Kubernetes 1.22 clusters. This will have no affect on existing clusters upgrading to Kubernetes 1.22. To retain write access to Endpoints in the aggregated `edit` and `admin` roles for newly created 1.22 clusters, refer to https://github.com/kubernetes/website/pull/29025. ([#103704](https://github.com/kubernetes/kubernetes/pull/103704), [@robscott](https://github.com/robscott)) [SIG Auth and Network] -- The conformance tests: - - Services should serve multiport endpoints from pods - - Services should serve a basic endpoint from pods - were only validating the API objects, not performing any validation on the actual Services implementation. - Those tests now validate that the Services under test are able to forward traffic to the endpoints. ([#101709](https://github.com/kubernetes/kubernetes/pull/101709), [@aojea](https://github.com/aojea)) [SIG Network and Testing] -- The current behavior for Services that `IPFamilyPolicy` set as `PreferDualstack`. The current behavior when the cluster is upgraded to dual-stack is: - - Services that have been set to IPFamilyPolicy = PreferDualstack will be upgraded when the service object is updated. e.g., when a user change a label. - - This behavior will change to: - - Services that have been set IPFamilyPolicy = PreferDualstack will not be upgraded when the service object is updated. User can still change policy, type etc and existing behaviors remain the same. ([#102898](https://github.com/kubernetes/kubernetes/pull/102898), [@khenidak](https://github.com/khenidak)) [SIG Network and Testing] -- The reason and message fields for pod status are no longer reset unless the phase also changes. ([#103785](https://github.com/kubernetes/kubernetes/pull/103785), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node] -- Treat VSphere "File (vmdk path here) was not found" errors as success during volume deletion ([#92372](https://github.com/kubernetes/kubernetes/pull/92372), [@breunigs](https://github.com/breunigs)) [SIG Cloud Provider and Storage] -- Update `kube-proxy` base image `debian-iptables` to v1.6.2 to pickup [documentation](https://github.com/kubernetes/release/pull/2106) - \n"- `debian-iptables`: select nft mode if ntf lines > legacy lines, matching [iptables-wrappers](https://github.com/kubernetes-sigs/iptables-wrappers/)" ([#102590](https://github.com/kubernetes/kubernetes/pull/102590), [@BenTheElder](https://github.com/BenTheElder)) -- Update klog v2.9.0. ([#102332](https://github.com/kubernetes/kubernetes/pull/102332), [@pacoxu](https://github.com/pacoxu)) -- Updated the Graceful Node Shutdown Pod termination reason and message. - Updated the Graceful Node Shutdown Pod rejection reason and message. ([#102840](https://github.com/kubernetes/kubernetes/pull/102840), [@Kissy](https://github.com/Kissy)) -- Updates dependency `sigs.k8s.io/structured-merge-diff` to v4.1.1. ([#100784](https://github.com/kubernetes/kubernetes/pull/100784), [@kevindelgado](https://github.com/kevindelgado)) -- Updates hostprocess tests to specify user. ([#102965](https://github.com/kubernetes/kubernetes/pull/102965), [@jsturtevant](https://github.com/jsturtevant)) -- Upgrades functionality of `kubectl kustomize` as described at - https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.2.0 ([#103419](https://github.com/kubernetes/kubernetes/pull/103419), [@natasha41575](https://github.com/natasha41575)) [SIG CLI] -- Upgrades functionality of `kubectl kustomize` as described at [kustomize/v4.1.2](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.2) ([#101120](https://github.com/kubernetes/kubernetes/pull/101120), [@monopole](https://github.com/monopole)) -- Upgrading etcd: `kubeadm` upgrade etcd to 3.4.13-3 ([#100612](https://github.com/kubernetes/kubernetes/pull/100612), [@pacoxu](https://github.com/pacoxu)) -- Use default timeout of 10s for Azure ACR credential provider. ([#100686](https://github.com/kubernetes/kubernetes/pull/100686), [@hasheddan](https://github.com/hasheddan)) [SIG Cloud Provider] -- We no longer allow the cluster operator to delete any suggested priority & fairness bootstrap configuration object. If a cluster operator removes a suggested configuration, it will be restored by the apiserver. ([#102067](https://github.com/kubernetes/kubernetes/pull/102067), [@tkashem](https://github.com/tkashem)) -- When `DisableAcceleratorUsageMetrics` is set, do not collect accelerator metrics using cAdvisor. ([#101712](https://github.com/kubernetes/kubernetes/pull/101712), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Instrumentation and Node] -- YAML documents separators ("---") can now be followed by whitespace and comments ("# ....") on the same line. This fixes a bug where documents starting with a comment after the separator were ignored. Other types of content on the same line will result in an error. ([#103457](https://github.com/kubernetes/kubernetes/pull/103457), [@codearky](https://github.com/codearky)) [SIG API Machinery] -- `oc describe quota` used has the same unit format as hard ([#102177](https://github.com/kubernetes/kubernetes/pull/102177), [@atiratree](https://github.com/atiratree)) [SIG CLI] - -### Other (Cleanup or Flake) - -- After the deprecation period,now the Kubelet's `--chaos-chance` flag are removed. ([#101057](https://github.com/kubernetes/kubernetes/pull/101057), [@wangyysde](https://github.com/wangyysde)) [SIG Node] -- Allow CSI drivers to just run offline expansion tests. ([#102665](https://github.com/kubernetes/kubernetes/pull/102665), [@gnufied](https://github.com/gnufied)) -- Changed buildmode of non static Kubernetes binaries to produce position independent executables (PIE). ([#102323](https://github.com/kubernetes/kubernetes/pull/102323), [@saschagrunert](https://github.com/saschagrunert)) -- Clarified the description of a test in the e2e suite that mentions "SCTP" but is - actually intended to be testing the behavior of network plugins that don't - implement SCTP. ([#102509](https://github.com/kubernetes/kubernetes/pull/102509), [@danwinship](https://github.com/danwinship)) -- Client-go: reduce verbosity of `Starting/Stopping reflector` messages to 3 again. ([#102788](https://github.com/kubernetes/kubernetes/pull/102788), [@pohly](https://github.com/pohly)) -- Disable log sampling when using json logging format. ([#102620](https://github.com/kubernetes/kubernetes/pull/102620), [@serathius](https://github.com/serathius)) -- Exposes `WithCustomRoundTripper` method for specifying a middleware function for custom HTTP behaviour for the delegated auth clients. ([#99775](https://github.com/kubernetes/kubernetes/pull/99775), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Fake clients now implement a `FakeClient` interface ([#100940](https://github.com/kubernetes/kubernetes/pull/100940), [@markusthoemmes](https://github.com/markusthoemmes)) [SIG API Machinery and Instrumentation] -- Featuregate `ServiceLoadBalancerClass` graduates to Beta and is enables by default. ([#103129](https://github.com/kubernetes/kubernetes/pull/103129), [@XudongLiuHarold](https://github.com/XudongLiuHarold)) -- Improve func `ToSelectableFields`' performance for event. ([#102461](https://github.com/kubernetes/kubernetes/pull/102461), [@goodluckbot](https://github.com/goodluckbot)) -- Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. Prepare to increase the length limit to 256 bytes in 1.23 release. ([#101256](https://github.com/kubernetes/kubernetes/pull/101256), [@Jiawei0227](https://github.com/Jiawei0227)) -- JSON logging now supports having information about source code location in the logging format, source code information is available under the key "caller". ([#102437](https://github.com/kubernetes/kubernetes/pull/102437), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) -- Kubeadm: move the BootstrapToken* API and related utilities from v1beta3 to a separate API group/version - bootstraptoken/v1. ([#102964](https://github.com/kubernetes/kubernetes/pull/102964), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: the `CriticalAddonsOnly` toleration has been removed from `kube-proxy` DaemonSet ([#101966](https://github.com/kubernetes/kubernetes/pull/101966), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Metrics Server updated to use `0.4.4` image that doesn't depend on deprecated `authorization.k8s.io/v1beta1` subjectaccessreviews API version. ([#101477](https://github.com/kubernetes/kubernetes/pull/101477), [@x13n](https://github.com/x13n)) -- Migrate `proxy/ipvs/proxier.go` logs to structured logging. ([#97796](https://github.com/kubernetes/kubernetes/pull/97796), [@JornShen](https://github.com/JornShen)) -- Migrate `staging/src/k8s.io/apiserver/pkg/registry` logs to structured logging. ([#98287](https://github.com/kubernetes/kubernetes/pull/98287), [@lala123912](https://github.com/lala123912)) -- Migrate some log messages to structured logging in `pkg/volume/plugins.go`. ([#101510](https://github.com/kubernetes/kubernetes/pull/101510), [@huchengze](https://github.com/huchengze)) -- Migrate some log messages to structured logging in `pkg/volume/volume_linux.go`. ([#99566](https://github.com/kubernetes/kubernetes/pull/99566), [@huchengze](https://github.com/huchengze)) -- Official binaries now include the golang generated build ID `buildid` instead of an empty string. ([#101411](https://github.com/kubernetes/kubernetes/pull/101411), [@saschagrunert](https://github.com/saschagrunert)) -- Remove balanced attached node volumes feature. ([#102443](https://github.com/kubernetes/kubernetes/pull/102443), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- Remove deprecated `--generator` flag from `kubectl autoscale`. ([#99900](https://github.com/kubernetes/kubernetes/pull/99900), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) -- Remove the deprecated flag `--generator` from `kubectl create deployment` command. ([#99915](https://github.com/kubernetes/kubernetes/pull/99915), [@BLasan](https://github.com/BLasan)) -- Remove the duplicate packet import. ([#101187](https://github.com/kubernetes/kubernetes/pull/101187), [@chuntaochen](https://github.com/chuntaochen)) -- Replace `go-bindata` with `//go:embed`. ([#99829](https://github.com/kubernetes/kubernetes/pull/99829), [@palnabarun](https://github.com/palnabarun)) -- The `DynamicFakeClient` now exposes its tracker via a `Tracker()` function. ([#100085](https://github.com/kubernetes/kubernetes/pull/100085), [@markusthoemmes](https://github.com/markusthoemmes)) -- The `VolumeSnapshotDataSource` feature gate that is GA since v1.20 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#101531](https://github.com/kubernetes/kubernetes/pull/101531), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Storage] -- The deprecated `CRIContainerLogRotation` feature-gate has been removed, since the `CRIContainerLogRotatio`n feature graduated to GA in 1.21 and was unconditionally enabled. ([#101578](https://github.com/kubernetes/kubernetes/pull/101578), [@carlory](https://github.com/carlory)) -- The deprecated `RootCAConfigMap` feature-gate has been removed, since the `RootCAConfigMap` feature graduated to GA in 1.21 and is unconditionally enabled. ([#101579](https://github.com/kubernetes/kubernetes/pull/101579), [@carlory](https://github.com/carlory)) -- The deprecated `runAsGroup` feature-gate has been removed, since the `runAsGroup` feature graduated to GA in 1.21. ([#101581](https://github.com/kubernetes/kubernetes/pull/101581), [@carlory](https://github.com/carlory)) -- The etcd client has been updated to 3.5.0; `github.com/golang/protobuf`, `google.golang.org/protobuf`, and `google.golang.org/grpc` have been updated to current versions. ([#100488](https://github.com/kubernetes/kubernetes/pull/100488), [@liggitt](https://github.com/liggitt)) -- Update Azure Go SDK to v55.0.0. ([#102441](https://github.com/kubernetes/kubernetes/pull/102441), [@feiskyer](https://github.com/feiskyer)) -- Update Azure Go SDK version to v53.1.0 ([#101357](https://github.com/kubernetes/kubernetes/pull/101357), [@feiskyer](https://github.com/feiskyer)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] -- Update CNI plugins to v0.9.1. ([#102328](https://github.com/kubernetes/kubernetes/pull/102328), [@lentzi90](https://github.com/lentzi90)) -- Update Calico to v3.19.1. ([#102386](https://github.com/kubernetes/kubernetes/pull/102386), [@JornShen](https://github.com/JornShen)) -- Update cri-tools dependency to `v1.21.0`. ([#100956](https://github.com/kubernetes/kubernetes/pull/100956), [@saschagrunert](https://github.com/saschagrunert)) -- Update dep `google/gnostic` and `google/go-cmp` to v0.5.5 and updating transitive dependencies `protobuf`. ([#102783](https://github.com/kubernetes/kubernetes/pull/102783), [@mcbenjemaa](https://github.com/mcbenjemaa)) -- Update golang.org/x/net to v0.0.0-20210520170846-37e1c6afe023 ([#103176](https://github.com/kubernetes/kubernetes/pull/103176), [@CaoDonghui123](https://github.com/CaoDonghui123)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Node and Storage] -- Updated command descriptions and examples for grammar and punctuation consistency. ([#103524](https://github.com/kubernetes/kubernetes/pull/103524), [@bergerhoffer](https://github.com/bergerhoffer)) [SIG Auth and CLI] -- Updated pause image to version 3.5, which now runs per default as pseudo user and group `65535:65535`. This does not have any effect on remote container runtimes like CRI-O and containerd, which setup the pod sandbox user and group on their own. ([#100292](https://github.com/kubernetes/kubernetes/pull/100292), [@saschagrunert](https://github.com/saschagrunert)) -- Upgrade functionality of `kubectl kustomize` as described at [kustomize/v4.1.3](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.3). ([#102193](https://github.com/kubernetes/kubernetes/pull/102193), [@gautierdelorme](https://github.com/gautierdelorme)) - -## Dependencies - -### Added -- github.com/antihax/optional: [v1.0.0](https://github.com/antihax/optional/tree/v1.0.0) -- github.com/benbjohnson/clock: [v1.0.3](https://github.com/benbjohnson/clock/tree/v1.0.3) -- github.com/certifi/gocertifi: [2c3bb06](https://github.com/certifi/gocertifi/tree/2c3bb06) -- github.com/checkpoint-restore/go-criu/v5: [v5.0.0](https://github.com/checkpoint-restore/go-criu/v5/tree/v5.0.0) -- github.com/cncf/udpa/go: [5459f2c](https://github.com/cncf/udpa/go/tree/5459f2c) -- github.com/cockroachdb/errors: [v1.2.4](https://github.com/cockroachdb/errors/tree/v1.2.4) -- github.com/cockroachdb/logtags: [eb05cc2](https://github.com/cockroachdb/logtags/tree/eb05cc2) -- github.com/coredns/caddy: [v1.1.0](https://github.com/coredns/caddy/tree/v1.1.0) -- github.com/felixge/httpsnoop: [v1.0.1](https://github.com/felixge/httpsnoop/tree/v1.0.1) -- github.com/frankban/quicktest: [v1.11.3](https://github.com/frankban/quicktest/tree/v1.11.3) -- github.com/getsentry/raven-go: [v0.2.0](https://github.com/getsentry/raven-go/tree/v0.2.0) -- github.com/go-kit/log: [v0.1.0](https://github.com/go-kit/log/tree/v0.1.0) -- github.com/gofrs/uuid: [v4.0.0+incompatible](https://github.com/gofrs/uuid/tree/v4.0.0) -- github.com/josharian/intern: [v1.0.0](https://github.com/josharian/intern/tree/v1.0.0) -- github.com/jpillora/backoff: [v1.0.0](https://github.com/jpillora/backoff/tree/v1.0.0) -- github.com/nxadm/tail: [v1.4.4](https://github.com/nxadm/tail/tree/v1.4.4) -- github.com/opentracing/opentracing-go: [v1.1.0](https://github.com/opentracing/opentracing-go/tree/v1.1.0) -- github.com/robfig/cron/v3: [v3.0.1](https://github.com/robfig/cron/v3/tree/v3.0.1) -- github.com/stoewer/go-strcase: [v1.2.0](https://github.com/stoewer/go-strcase/tree/v1.2.0) -- go.etcd.io/etcd/api/v3: v3.5.0 -- go.etcd.io/etcd/client/pkg/v3: v3.5.0 -- go.etcd.io/etcd/client/v2: v2.305.0 -- go.etcd.io/etcd/client/v3: v3.5.0 -- go.etcd.io/etcd/pkg/v3: v3.5.0 -- go.etcd.io/etcd/raft/v3: v3.5.0 -- go.etcd.io/etcd/server/v3: v3.5.0 -- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.20.0 -- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.20.0 -- go.opentelemetry.io/contrib: v0.20.0 -- go.opentelemetry.io/otel/exporters/otlp: v0.20.0 -- go.opentelemetry.io/otel/metric: v0.20.0 -- go.opentelemetry.io/otel/oteltest: v0.20.0 -- go.opentelemetry.io/otel/sdk/export/metric: v0.20.0 -- go.opentelemetry.io/otel/sdk/metric: v0.20.0 -- go.opentelemetry.io/otel/sdk: v0.20.0 -- go.opentelemetry.io/otel/trace: v0.20.0 -- go.opentelemetry.io/otel: v0.20.0 -- go.opentelemetry.io/proto/otlp: v0.7.0 -- go.uber.org/goleak: v1.1.10 - -### Changed -- github.com/Azure/azure-sdk-for-go: [v43.0.0+incompatible → v55.0.0+incompatible](https://github.com/Azure/azure-sdk-for-go/compare/v43.0.0...v55.0.0) -- github.com/Azure/go-ansiterm: [d6e3b33 → d185dfc](https://github.com/Azure/go-ansiterm/compare/d6e3b33...d185dfc) -- github.com/Azure/go-autorest/autorest/adal: [v0.9.5 → v0.9.13](https://github.com/Azure/go-autorest/autorest/adal/compare/v0.9.5...v0.9.13) -- github.com/Azure/go-autorest/autorest/to: [v0.2.0 → v0.4.0](https://github.com/Azure/go-autorest/autorest/to/compare/v0.2.0...v0.4.0) -- github.com/Azure/go-autorest/autorest: [v0.11.12 → v0.11.18](https://github.com/Azure/go-autorest/autorest/compare/v0.11.12...v0.11.18) -- github.com/Azure/go-autorest/logger: [v0.2.0 → v0.2.1](https://github.com/Azure/go-autorest/logger/compare/v0.2.0...v0.2.1) -- github.com/alecthomas/units: [c3de453 → f65c72e](https://github.com/alecthomas/units/compare/c3de453...f65c72e) -- github.com/auth0/go-jwt-middleware: [5493cab → v1.0.1](https://github.com/auth0/go-jwt-middleware/compare/5493cab...v1.0.1) -- github.com/aws/aws-sdk-go: [v1.35.24 → v1.38.49](https://github.com/aws/aws-sdk-go/compare/v1.35.24...v1.38.49) -- github.com/cilium/ebpf: [v0.2.0 → v0.5.0](https://github.com/cilium/ebpf/compare/v0.2.0...v0.5.0) -- github.com/cockroachdb/datadriven: [80d97fb → bf6692d](https://github.com/cockroachdb/datadriven/compare/80d97fb...bf6692d) -- github.com/container-storage-interface/spec: [v1.3.0 → v1.5.0](https://github.com/container-storage-interface/spec/compare/v1.3.0...v1.5.0) -- github.com/containerd/console: [v1.0.1 → v1.0.2](https://github.com/containerd/console/compare/v1.0.1...v1.0.2) -- github.com/containernetworking/cni: [v0.8.0 → v0.8.1](https://github.com/containernetworking/cni/compare/v0.8.0...v0.8.1) -- github.com/coredns/corefile-migration: [v1.0.11 → v1.0.12](https://github.com/coredns/corefile-migration/compare/v1.0.11...v1.0.12) -- github.com/coreos/go-systemd/v22: [v22.1.0 → v22.3.2](https://github.com/coreos/go-systemd/v22/compare/v22.1.0...v22.3.2) -- github.com/envoyproxy/go-control-plane: [5f8ba28 → 668b12f](https://github.com/envoyproxy/go-control-plane/compare/5f8ba28...668b12f) -- github.com/evanphx/json-patch: [v4.9.0+incompatible → v4.11.0+incompatible](https://github.com/evanphx/json-patch/compare/v4.9.0...v4.11.0) -- github.com/form3tech-oss/jwt-go: [v3.2.2+incompatible → v3.2.3+incompatible](https://github.com/form3tech-oss/jwt-go/compare/v3.2.2...v3.2.3) -- github.com/go-logfmt/logfmt: [v0.4.0 → v0.5.0](https://github.com/go-logfmt/logfmt/compare/v0.4.0...v0.5.0) -- github.com/go-openapi/jsonpointer: [v0.19.3 → v0.19.5](https://github.com/go-openapi/jsonpointer/compare/v0.19.3...v0.19.5) -- github.com/go-openapi/jsonreference: [v0.19.3 → v0.19.5](https://github.com/go-openapi/jsonreference/compare/v0.19.3...v0.19.5) -- github.com/go-openapi/swag: [v0.19.5 → v0.19.14](https://github.com/go-openapi/swag/compare/v0.19.5...v0.19.14) -- github.com/godbus/dbus/v5: [v5.0.3 → v5.0.4](https://github.com/godbus/dbus/v5/compare/v5.0.3...v5.0.4) -- github.com/golang/groupcache: [8c9f03a → 41bb18b](https://github.com/golang/groupcache/compare/8c9f03a...41bb18b) -- github.com/golang/protobuf: [v1.4.3 → v1.5.2](https://github.com/golang/protobuf/compare/v1.4.3...v1.5.2) -- github.com/google/btree: [v1.0.0 → v1.0.1](https://github.com/google/btree/compare/v1.0.0...v1.0.1) -- github.com/google/cadvisor: [v0.39.0 → v0.39.2](https://github.com/google/cadvisor/compare/v0.39.0...v0.39.2) -- github.com/google/go-cmp: [v0.5.2 → v0.5.5](https://github.com/google/go-cmp/compare/v0.5.2...v0.5.5) -- github.com/googleapis/gnostic: [v0.4.1 → v0.5.5](https://github.com/googleapis/gnostic/compare/v0.4.1...v0.5.5) -- github.com/gopherjs/gopherjs: [0766667 → fce0ec3](https://github.com/gopherjs/gopherjs/compare/0766667...fce0ec3) -- github.com/grpc-ecosystem/go-grpc-middleware: [f849b54 → v1.3.0](https://github.com/grpc-ecosystem/go-grpc-middleware/compare/f849b54...v1.3.0) -- github.com/grpc-ecosystem/grpc-gateway: [v1.9.5 → v1.16.0](https://github.com/grpc-ecosystem/grpc-gateway/compare/v1.9.5...v1.16.0) -- github.com/heketi/heketi: [v10.2.0+incompatible → v10.3.0+incompatible](https://github.com/heketi/heketi/compare/v10.2.0...v10.3.0) -- github.com/jonboulle/clockwork: [v0.1.0 → v0.2.2](https://github.com/jonboulle/clockwork/compare/v0.1.0...v0.2.2) -- github.com/json-iterator/go: [v1.1.10 → v1.1.11](https://github.com/json-iterator/go/compare/v1.1.10...v1.1.11) -- github.com/julienschmidt/httprouter: [v1.2.0 → v1.3.0](https://github.com/julienschmidt/httprouter/compare/v1.2.0...v1.3.0) -- github.com/kr/pretty: [v0.2.0 → v0.2.1](https://github.com/kr/pretty/compare/v0.2.0...v0.2.1) -- github.com/mailru/easyjson: [v0.7.0 → v0.7.6](https://github.com/mailru/easyjson/compare/v0.7.0...v0.7.6) -- github.com/mattn/go-isatty: [v0.0.4 → v0.0.3](https://github.com/mattn/go-isatty/compare/v0.0.4...v0.0.3) -- github.com/miekg/dns: [v1.1.35 → v1.0.14](https://github.com/miekg/dns/compare/v1.1.35...v1.0.14) -- github.com/moby/sys/mountinfo: [v0.4.0 → v0.4.1](https://github.com/moby/sys/mountinfo/compare/v0.4.0...v0.4.1) -- github.com/moby/term: [df9cb8a → 9d4ed18](https://github.com/moby/term/compare/df9cb8a...9d4ed18) -- github.com/mwitkow/go-conntrack: [cc309e4 → 2f06839](https://github.com/mwitkow/go-conntrack/compare/cc309e4...2f06839) -- github.com/onsi/ginkgo: [v1.11.0 → v1.14.0](https://github.com/onsi/ginkgo/compare/v1.11.0...v1.14.0) -- github.com/onsi/gomega: [v1.7.0 → v1.10.1](https://github.com/onsi/gomega/compare/v1.7.0...v1.10.1) -- github.com/opencontainers/runc: [v1.0.0-rc93 → v1.0.0-rc95](https://github.com/opencontainers/runc/compare/v1.0.0-rc93...v1.0.0-rc95) -- github.com/opencontainers/runtime-spec: [e6143ca → 1c3f411](https://github.com/opencontainers/runtime-spec/compare/e6143ca...1c3f411) -- github.com/prometheus/client_golang: [v1.7.1 → v1.11.0](https://github.com/prometheus/client_golang/compare/v1.7.1...v1.11.0) -- github.com/prometheus/common: [v0.10.0 → v0.26.0](https://github.com/prometheus/common/compare/v0.10.0...v0.26.0) -- github.com/prometheus/procfs: [v0.2.0 → v0.6.0](https://github.com/prometheus/procfs/compare/v0.2.0...v0.6.0) -- github.com/rogpeppe/fastuuid: [6724a57 → v1.2.0](https://github.com/rogpeppe/fastuuid/compare/6724a57...v1.2.0) -- github.com/smartystreets/assertions: [b2de0cb → v1.1.0](https://github.com/smartystreets/assertions/compare/b2de0cb...v1.1.0) -- github.com/soheilhy/cmux: [v0.1.4 → v0.1.5](https://github.com/soheilhy/cmux/compare/v0.1.4...v0.1.5) -- github.com/spf13/cobra: [v1.1.1 → v1.1.3](https://github.com/spf13/cobra/compare/v1.1.1...v1.1.3) -- github.com/spf13/jwalterweatherman: [v1.1.0 → v1.0.0](https://github.com/spf13/jwalterweatherman/compare/v1.1.0...v1.0.0) -- github.com/stretchr/testify: [v1.6.1 → v1.7.0](https://github.com/stretchr/testify/compare/v1.6.1...v1.7.0) -- github.com/tmc/grpc-websocket-proxy: [0ad062e → e5319fd](https://github.com/tmc/grpc-websocket-proxy/compare/0ad062e...e5319fd) -- github.com/yuin/goldmark: [v1.2.1 → v1.3.5](https://github.com/yuin/goldmark/compare/v1.2.1...v1.3.5) -- go.etcd.io/bbolt: v1.3.5 → v1.3.6 -- go.uber.org/atomic: v1.4.0 → v1.7.0 -- go.uber.org/multierr: v1.1.0 → v1.6.0 -- go.uber.org/zap: v1.10.0 → v1.17.0 -- golang.org/x/lint: 738671d → 6edffad -- golang.org/x/mod: ce943fd → v0.4.2 -- golang.org/x/net: 3d97a24 → 37e1c6a -- golang.org/x/sync: 67f06af → 036812b -- golang.org/x/sys: a50acf3 → 59db8d7 -- golang.org/x/text: v0.3.4 → v0.3.6 -- golang.org/x/tools: v0.1.0 → v0.1.2 -- google.golang.org/genproto: 8816d57 → f16073e -- google.golang.org/grpc: v1.27.1 → v1.38.0 -- google.golang.org/protobuf: v1.25.0 → v1.26.0 -- gopkg.in/yaml.v3: 9f266ea → 496545a -- k8s.io/klog/v2: v2.8.0 → v2.9.0 -- k8s.io/kube-openapi: 591a79e → 9528897 -- k8s.io/system-validators: v1.4.0 → v1.5.0 -- k8s.io/utils: 67b214c → 4b05e18 -- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.15 → v0.0.21 -- sigs.k8s.io/kustomize/api: v0.8.5 → v0.8.11 -- sigs.k8s.io/kustomize/cmd/config: v0.9.7 → v0.9.13 -- sigs.k8s.io/kustomize/kustomize/v4: v4.0.5 → v4.2.0 -- sigs.k8s.io/kustomize/kyaml: v0.10.15 → v0.11.0 -- sigs.k8s.io/structured-merge-diff/v4: v4.1.0 → v4.1.2 - -### Removed -- github.com/agnivade/levenshtein: [v1.0.1](https://github.com/agnivade/levenshtein/tree/v1.0.1) -- github.com/alecthomas/template: [fb15b89](https://github.com/alecthomas/template/tree/fb15b89) -- github.com/andreyvit/diff: [c7f18ee](https://github.com/andreyvit/diff/tree/c7f18ee) -- github.com/bifurcation/mint: [93c51c6](https://github.com/bifurcation/mint/tree/93c51c6) -- github.com/caddyserver/caddy: [v1.0.3](https://github.com/caddyserver/caddy/tree/v1.0.3) -- github.com/cenkalti/backoff: [v2.1.1+incompatible](https://github.com/cenkalti/backoff/tree/v2.1.1) -- github.com/checkpoint-restore/go-criu/v4: [v4.1.0](https://github.com/checkpoint-restore/go-criu/v4/tree/v4.1.0) -- github.com/cheekybits/genny: [9127e81](https://github.com/cheekybits/genny/tree/9127e81) -- github.com/go-acme/lego: [v2.5.0+incompatible](https://github.com/go-acme/lego/tree/v2.5.0) -- github.com/go-bindata/go-bindata: [v3.1.1+incompatible](https://github.com/go-bindata/go-bindata/tree/v3.1.1) -- github.com/go-openapi/analysis: [v0.19.5](https://github.com/go-openapi/analysis/tree/v0.19.5) -- github.com/go-openapi/errors: [v0.19.2](https://github.com/go-openapi/errors/tree/v0.19.2) -- github.com/go-openapi/loads: [v0.19.4](https://github.com/go-openapi/loads/tree/v0.19.4) -- github.com/go-openapi/runtime: [v0.19.4](https://github.com/go-openapi/runtime/tree/v0.19.4) -- github.com/go-openapi/spec: [v0.19.5](https://github.com/go-openapi/spec/tree/v0.19.5) -- github.com/go-openapi/strfmt: [v0.19.5](https://github.com/go-openapi/strfmt/tree/v0.19.5) -- github.com/go-openapi/validate: [v0.19.8](https://github.com/go-openapi/validate/tree/v0.19.8) -- github.com/gobuffalo/here: [v0.6.0](https://github.com/gobuffalo/here/tree/v0.6.0) -- github.com/hpcloud/tail: [v1.0.0](https://github.com/hpcloud/tail/tree/v1.0.0) -- github.com/jimstudt/http-authentication: [3eca13d](https://github.com/jimstudt/http-authentication/tree/3eca13d) -- github.com/klauspost/cpuid: [v1.2.0](https://github.com/klauspost/cpuid/tree/v1.2.0) -- github.com/kr/logfmt: [b84e30a](https://github.com/kr/logfmt/tree/b84e30a) -- github.com/kylelemons/godebug: [d65d576](https://github.com/kylelemons/godebug/tree/d65d576) -- github.com/lucas-clemente/aes12: [cd47fb3](https://github.com/lucas-clemente/aes12/tree/cd47fb3) -- github.com/lucas-clemente/quic-clients: [v0.1.0](https://github.com/lucas-clemente/quic-clients/tree/v0.1.0) -- github.com/lucas-clemente/quic-go-certificates: [d2f8652](https://github.com/lucas-clemente/quic-go-certificates/tree/d2f8652) -- github.com/lucas-clemente/quic-go: [v0.10.2](https://github.com/lucas-clemente/quic-go/tree/v0.10.2) -- github.com/markbates/pkger: [v0.17.1](https://github.com/markbates/pkger/tree/v0.17.1) -- github.com/marten-seemann/qtls: [v0.2.3](https://github.com/marten-seemann/qtls/tree/v0.2.3) -- github.com/mholt/certmagic: [6a42ef9](https://github.com/mholt/certmagic/tree/6a42ef9) -- github.com/naoina/go-stringutil: [v0.1.0](https://github.com/naoina/go-stringutil/tree/v0.1.0) -- github.com/naoina/toml: [v0.1.1](https://github.com/naoina/toml/tree/v0.1.1) -- github.com/robfig/cron: [v1.1.0](https://github.com/robfig/cron/tree/v1.1.0) -- github.com/satori/go.uuid: [v1.2.0](https://github.com/satori/go.uuid/tree/v1.2.0) -- github.com/thecodeteam/goscaleio: [v0.1.0](https://github.com/thecodeteam/goscaleio/tree/v0.1.0) -- github.com/tidwall/pretty: [v1.0.0](https://github.com/tidwall/pretty/tree/v1.0.0) -- github.com/vektah/gqlparser: [v1.1.2](https://github.com/vektah/gqlparser/tree/v1.1.2) -- go.etcd.io/etcd: dd1b699 -- go.mongodb.org/mongo-driver: v1.1.2 -- gopkg.in/cheggaaa/pb.v1: v1.0.25 -- gopkg.in/fsnotify.v1: v1.4.7 -- gopkg.in/mcuadros/go-syslog.v2: v2.2.1 -- gopkg.in/resty.v1: v1.12.0 -- k8s.io/heapster: v1.2.0-beta.1 +## What's New (Major Themes) + +### Removal of several beta Kubernetes APIs + +A number of APIs are no longer serving specific Beta versions in favour of the GA version of those APIs. All existing objects can be interacted with via general availability APIs. This removal includes beta versions of `ValidatingWebhookConfiguration`, `MutatingWebhookConfiguration`, `CustomResourceDefinition`, `APIService`, `TokenReview`, `SubjectAccessReview`, `CertificateSigningRequest`, `Lease`, `Ingress`, and `IngressClass` APIs. For the full list check out [Deprecated API Migration Guide](https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-22) and the blog post [Kubernetes API and Feature Removals In 1.22: Here’s What You Need To Know](https://blog.k8s.io/2021/07/14/upcoming-changes-in-kubernetes-1-22/). + +### Kubernetes release cadence change + +We all have to adapt to change in our lives, and especially so in the past year. The Kubernetes release team was also affected from the COVID-19 pandemic and has listened to its user base regarding the number of releases in a calendar year. From April 23, 2021 it was made official that Kubernetes release cadence has reduced from 4 releases per year to 3 releases per year. + +You can read more in the official blog post [Kubernetes Release Cadence Change: Here’s What You Need To Know](https://blog.k8s.io/2021/07/20/new-kubernetes-release-cadence/). + +### External credential providers + +Kubernetes client [credential plugins](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#client-go-credential-plugins) have been in beta since 1.11, a few eons ago. With the release of Kubernetes 1.22, this feature set graduates to stable. The GA feature set includes improved support for plugins that provide interactive login flows. +This release also contains a number of bug fixes to the feature set. Aspiring plugin authors can look at [sample-exec-plugin](https://github.com/ankeesler/sample-exec-plugin) as a way to get started. + +Related to this topic, the in-tree Azure and GCP authentication plugins have been [deprecated](https://github.com/kubernetes/kubernetes/pull/102181) in favor of out-of-tree implementations. + +### Server-side Apply graduates to GA + +Server-side Apply is a new object merge algorithm, as well as tracking of field ownership, running on the Kubernetes API server. Server-side Apply helps users and controllers manage their resources via declarative configurations. It allows them to create and/or modify their objects declaratively, simply by sending their fully specified intent. After being in beta for a couple releases, [Server-side Apply](https://kubernetes.io/docs/reference/using-api/server-side-apply/) is now generally available. + +### Cluster Storage Interface graduations + +CSI support for Windows nodes moves to GA in the 1.22 release. In Kubernetes v1.22, Windows privileged containers are only an alpha feature. To allow using CSI storage on Windows nodes, [CSIProxy](https://github.com/kubernetes-csi/csi-proxy) enables CSI node plugins to be deployed as unprivileged pods, using the proxy to perform privileged storage operations on the node. + +Another feature moving to GA in v1.22 is CSI Service Account Token support. This feature allows CSI drivers to use pods' [bound service account tokens](https://kubernetes.io/docs/reference/access-authn-authz/service-accounts-admin/#bound-service-account-token-volume) instead of a more privileged identity. It also provides control over to re-publishing these volumes, so that short-lived tokens can be refreshed. + +### SIG Windows development tools + +To grow the developer community, SIG Windows released multiple [tools](https://github.com/kubernetes-sigs/sig-windows-dev-tools/). The new tools support multiple CNI providers (Antrea, Calico), can run on multiple platforms (any vagrant compatible provider, such as Hyper-V, VirtualBox, or vSphere). +There is also a new way to run bleeding edge Windows features from scratch by compiling the windows kubelet and kube-proxy, then using them along with daily builds of other Kubernetes components. + +### Deploy a more secure control plane with kubeadm + +A new alpha feature allows running the kubeadm control plane components as non-root users. This is a long requested security measure in kubeadm. To try it you must enable the kubeadm-specific `RootlessControlPlane` feature gate. When you deploy a cluster using this alpha feature, your control plane runs with lower privileges. + +A new [v1beta3 configuration API](https://github.com/kubernetes/kubeadm/issues/1796). It [iterates over v1beta2](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3) by adding some long requested features and deprecating some existing ones. The `V1beta3` is now the preferred API version; the `v1beta2` API also remains available and is not yet deprecated. + +### etcd moves to version 3.5.0 + +Kubernetes' default backend storage, etcd, has a new release 3.5.0 and the community embraced it. The new release comes with improvements to the Security, performance, monitoring and developer experience. There are numerous bug fixes to lease objects causing memory leaks, and compact operation causing deadlocks and more. A couple of new features are also introduced like the migration to structured logging and build in log rotation. The release comes with a detailed future roadmap to implement a solution to traffic overload. A full and detailed list of changes can be read in the [3.5.0 release announcement](https://etcd.io/blog/2021/announcing-etcd-3.5/). + +### Kubernetes Node system swap support + +Every system administrator or Kubernetes user has been in the same boat regarding setting up and using Kubernetes: disable swap space. With the release of Kubernetes 1.22, *alpha* support is available to run nodes with swap memory. This change lets administrators opt in to configuring swap on Linux nodes, treating a portion of block storage as additional virtual memory. + +### Cluster-wide seccomp defaults + +A new alpha feature gate `SeccompDefault` has been added to the kubelet, together with a corresponding command line flag `--seccomp-default` and kubelet configuration. If both are enabled, then the kubelet's behavior changes for pods that don't explicitly set a seccomp profile. +With cluster-wide seccomp defaults, the kubelet uses the `RuntimeDefault` seccomp profile by default, rather than than `Unconfined`. This allows enhancing the default cluster wide workload security of the Kubernetes deployment. Security administrators will now sleep better knowing there is some security by default for the workloads. + +To learn more about the feature, please refer to the official [seccomp tutorial](https://kubernetes.io/docs/tutorials/clusters/seccomp/#enable-the-use-of-runtimedefault-as-the-default-seccomp-profile-for-all-workloads). + +### Quality of Service for memory resources + +Originally, Kubernetes used the v1 cgroups API. With that design, the QoS class for a pod only applied to CPU resources (such as `cpu_shares`). The Kubernetes cgroup manager uses `memory.limit_in_bytes` in v1 cgroups to limit the memory capacity for a container, and uses `oom_scores` to recommend an order for killing container processes if an out-of-memory event occurs. This implementation has shortcomings: for `Guaranteed` pods, memory can not be fully reserved, and the page cache is at risk of being recycled. For `Burstable` pods, overcommitting memory (setting `request` less than `limit` ) could increase the risk of a container being killed when the Linux kernel detects an out of memory condition. + +As an alpha feature, Kubernetes v1.22 can use the cgroups v2 API to control memory allocation and isolation. This feature is designed to improve workload and node availability when there is contention for memory resources. + +### API changes and improvements for ephemeral containers + +The API used to create [Ephemeral Containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) changed in 1.22. The Ephemeral Containers feature is alpha and disabled by default, and the new API does not work with clients that attempt to use the old API. + +For stable features, the `kubectl` tool follows the Kubernetes [version skew policy](https://kubernetes.io/releases/version-skew-policy/); +however, kubectl v1.21 and older do not support the new API for ephemeral containers. +Users who create ephemeral containers using `kubectl debug` should note that kubectl version 1.22 will attempt to fall back to the old API; older versions of kubectl will not work with cluster versions of 1.22 or later. Please update kubectl to 1.22 if you wish to use `kubectl debug` with a mix of cluster versions. + +## Known Issues + +### CPU and Memory manager are not working correctly for Guaranteed Pods with multiple containers + +A regression bug was found where guaranteed Pods with multiple containers do not work properly with set allocations for CPU, Memory, and Device manager. [The fix will be availability in coming releases](https://github.com/kubernetes/kubernetes/pull/103979). + +### `CSIMigrationvSphere` feature gate has not migrated to new CRD APIs + +If CSIMigrationvSphere feature gate is enabled, user should not upgrade to Kubernetes v1.22. vSphere CSI Driver does not support Kubernetes v1.22 yet because it uses v1beta1 CRD APIs. Support for v1.22 will be added at a later release. Check the following document for supported Kubernetes releases for a given [vSphere CSI Driver version](https://vsphere-csi-driver.sigs.k8s.io/compatiblity_matrix.html#compatibility-matrix-for-vsphere-csi-driver). + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- Audit log files are now created with a mode of 0600. Existing file permissions will not be changed. If you need the audit file to be readable by a non-root user, you can pre-create the file with the desired permissions. ([#95387](https://github.com/kubernetes/kubernetes/pull/95387), [@JAORMX](https://github.com/JAORMX)) [SIG API Machinery and Auth] + - CSI migration of AWS EBS volumes requires AWS EBS CSI driver ver. 1.0 that supports `allowAutoIOPSPerGBIncrease` parameter in StorageClass. ([#101082](https://github.com/kubernetes/kubernetes/pull/101082), [@jsafrane](https://github.com/jsafrane)) + - Conformance image is now built with Distroless. Users running Conformance testing should rely on container entrypoint instead of manual invocation to `/run_e2e.sh` or `/gorunner`, as they are now deprecated and will be removed in 1.25 release. Invoking `ginkgo` and `e2e.test` are still supported through overriding entrypoint (docker) or defining container `spec.command` (kubernetes). ([#99178](https://github.com/kubernetes/kubernetes/pull/99178), [@wilsonehusin](https://github.com/wilsonehusin)) + - Default `StreamingProxyRedirects` to disabled. If there is a >= 2 version skew between master and nodes, and the old nodes were enabling `--redirect-container-streaming`, this will break them. In this case, the `StreamingProxyRedirects` can still be manually enabled. ([#101647](https://github.com/kubernetes/kubernetes/pull/101647), [@pacoxu](https://github.com/pacoxu)) + - Intree volume plugin scaleIO support has been completely removed from Kubernetes. ([#101685](https://github.com/kubernetes/kubernetes/pull/101685), [@Jiawei0227](https://github.com/Jiawei0227)) + - Kubeadm: remove the automatic detection and matching of cgroup drivers for Docker. For new clusters if you have not configured the cgroup driver explicitly you might get a failure in the `kubelet` on driver mismatch (kubeadm clusters should be using the `systemd` driver). Also remove the `IsDockerSystemdCheck` preflight check (warning) that checks if the Docker cgroup driver is set to `systemd`. Ideally such detection / coordination should be on the side of CRI implementers and the kubelet (tracked [here](https://github.com/kubernetes/kubernetes/issues/99808)). Please see the [page](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) on how to configure cgroup drivers with kubeadm manually ([#99647](https://github.com/kubernetes/kubernetes/pull/99647), [@neolit123](https://github.com/neolit123)) + - Kubeadm: the flag `--cri-socket` is no longer allowed in a mixture with the flag `--config`. Please use the kubeadm configuration for setting the CRI socket for a node using `{Init|Join}Configuration.nodeRegistration.criSocket`. ([#101600](https://github.com/kubernetes/kubernetes/pull/101600), [@KofClubs](https://github.com/KofClubs)) + - Newly provisioned PVs by Azure disk will no longer have the beta `FailureDomain` label. Azure disk volume plugin will start to have GA topology label instead. ([#101534](https://github.com/kubernetes/kubernetes/pull/101534), [@kassarl](https://github.com/kassarl)) + - Scheduler's CycleState now embeds internal read/write locking inside its `Read()` and `Write()` functions. Meanwhile, `Lock()` and `Unlock()` function are removed. Scheduler plugin developers are now required to remove `CycleState#Lock()` and `CycleState#Unlock()`. Just simply use `Read()` and `Write()` as they're natively thread-safe now. ([#101542](https://github.com/kubernetes/kubernetes/pull/101542), [@Huang-Wei](https://github.com/Huang-Wei)) + - The `CSIMigrationVSphereComplete` feature flag is removed. `InTreePluginvSphereUnregister` will be the way moving forward. ([#101272](https://github.com/kubernetes/kubernetes/pull/101272), [@Jiawei0227](https://github.com/Jiawei0227)) + - The flag `--experimental-patches` is now deprecated and will be removed in a future release. You can migrate to using the new flag `--patches`. Add a new field `{Init|Join}Configuration.patches.directory` that can be used for the same purpose. For `init` and `join` it is now recommended that you migrate to configure patches via `{Init|Join}Configuration.patches.directory`. For the time being, these flags can be mixed with `--config`, but that might change in the future. On a command line, the last *patches flag takes precedence over previous flags and the value in config. `kubeadm upgrade --patches` will continue to be the only available option, since `upgrade` does not support a configuration file yet. ([#103063](https://github.com/kubernetes/kubernetes/pull/103063), [@neolit123](https://github.com/neolit123)) + +## Changes by Kind + +### Deprecation + +- Controller-manager: the following flags have no effect and would be removed in v1.24: + - `--port` + - `--address` + The insecure port flags `--port` may only be set to 0 now. + + In addtion, please be careful that: + - controller-manager MUST start with `--authorization-kubeconfig` and `--authentication-kubeconfig` correctly set to get authentication/authorization working. + - liveness/readiness probes to controller-manager MUST use HTTPS now, and the default port has been changed to 10257. + - Applications that fetch metrics from controller-manager should use a dedicated service account which is allowed to access nonResourceURLs `/metrics`. ([#96216](https://github.com/kubernetes/kubernetes/pull/96216), [@knight42](https://github.com/knight42)) [SIG API Machinery, Cloud Provider, Instrumentation and Testing] +- Deprecate `--record` flag in `kubectl`. The `--record` flag is being replaced with the [mechanism](https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/859-kubectl-headers) which annotates HTTP requests with kubectl command details. ([#102873](https://github.com/kubernetes/kubernetes/pull/102873), [@soltysh](https://github.com/soltysh)) +- E2e.test: removed the `--viper-config` flag. If you were previously using this to pass flags to `e2e.test` via a file, you will need to pass them directly on the command line, e.g. `e2e.test --e2e-output-dir`. ([#102598](https://github.com/kubernetes/kubernetes/pull/102598), [@dims](https://github.com/dims)) +- For `kubeadm`: remove the ClusterStatus API from v1beta3 and its management in the kube-system/kubeadm-config ConfigMap. This method of keeping track of what API endpoints exists in the cluster was replaced (in a prior release) by a method to annotate the etcd Pods that `kubeadm` creates in "stacked etcd" clusters. The following CLI sub-phases are deprecated and are now a NO-OP: for `kubeadm join`: "control-plane-join/update-status", for `kubeadm reset`: "update-cluster-status". Unless you are using these phases explicitly, you should not be affected. ([#101915](https://github.com/kubernetes/kubernetes/pull/101915), [@neolit123](https://github.com/neolit123)) +- Kubead: remove the deprecated `--csr-only` and `--csr-dir` flags from `kubeadm init phase certs`. Deprecate the same flags under `kubeadm certs renew`. In both the cases the command `kubeadm certs generate-csr` should be used instead. ([#102108](https://github.com/kubernetes/kubernetes/pull/102108), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Remove the deprecated command `kubeadm alpha kubeconfig`. Please use `kubeadm kubeconfig` instead. ([#101938](https://github.com/kubernetes/kubernetes/pull/101938), [@knight42](https://github.com/knight42)) +- Kubeadm: Remove the deprecated hyperkube image support in `v1beta3`. This implies removal of `ClusterConfiguration.UseHyperKubeImage.` ([#101537](https://github.com/kubernetes/kubernetes/pull/101537), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Remove the field `ClusterConfiguration.DNS.Type` in v1beta3 since CoreDNS is the only supported DNS type. ([#101547](https://github.com/kubernetes/kubernetes/pull/101547), [@neolit123](https://github.com/neolit123)) +- Kubeadm: remove the deprecated command `kubeadm config view`. A replacement for this command is `kubectl get cm -n kube-system kubeadm-config -o=jsonpath="{.data.ClusterConfiguration}"` ([#102071](https://github.com/kubernetes/kubernetes/pull/102071), [@neolit123](https://github.com/neolit123)) +- Kubeadm: remove the deprecated flag '--image-pull-timeout' for 'kubeadm upgrade apply' command ([#102093](https://github.com/kubernetes/kubernetes/pull/102093), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubeadm: remove the deprecated flag `--insecure-port` from the kube-apiserver manifest that kubeadm manages. The flag had no effect since 1.20, since the insecure serving of the component was disabled in the same version. ([#102121](https://github.com/kubernetes/kubernetes/pull/102121), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: remove the deprecated kubeadm API `v1beta1`. Introduce a new kubeadm API `v1beta3`. See [kubeadm/v1beta3](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3) for a list of changes since `v1beta2`. Note that `v1beta2` is not yet deprecated, but will be in a future release. ([#101129](https://github.com/kubernetes/kubernetes/pull/101129), [@neolit123](https://github.com/neolit123)) +- Newly provisioned PVs by vSphere in-tree plugin will no longer have the beta `FailureDomain` label. vSphere volume plugin will start to have GA topology label ([#102414](https://github.com/kubernetes/kubernetes/pull/102414), [@divyenpatel](https://github.com/divyenpatel)) +- Removal of the CSI `NodePublish` path by the kubelet is deprecated. This must be done by the CSI plugin according to the CSI spec. ([#101441](https://github.com/kubernetes/kubernetes/pull/101441), [@dobsonj](https://github.com/dobsonj)) +- Remove support for the Service `topologyKeys` field (alpha) and the `kube-proxy` implementation of it. This field was deprecated several cycles ago. This functionality is replaced by the combination of automatic topology hints per-endpoint (alpha) and the Service `internalTrafficPolicy` field (alpha). ([#102412](https://github.com/kubernetes/kubernetes/pull/102412), [@andrewsykim](https://github.com/andrewsykim)) +- The `PodUnknown` phase is now deprecated. ([#95286](https://github.com/kubernetes/kubernetes/pull/95286), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) +- The `storageos`, `quobyte` and `flocker` storage volume plugins are deprecated and will be removed in a later release. ([#101773](https://github.com/kubernetes/kubernetes/pull/101773), [@Jiawei0227](https://github.com/Jiawei0227)) +- The deprecated flag `--hard-pod-affinity-symmetric-weight` and `--scheduler-name` have been removed from `kube-scheduler`. Use `ComponentConfig` instead to configure those parameters. ([#102805](https://github.com/kubernetes/kubernetes/pull/102805), [@ahg-g](https://github.com/ahg-g)) +- The feature Dynamic Kubelet Configuration is deprecated and kubelet will report warning when the flag `--dynamic-config-dir` is used. Feature gate `DynamicKubeletConfig` is disabled out of the box and needs to be explicitly enabled. ([#102966](https://github.com/kubernetes/kubernetes/pull/102966), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Cloud Provider, Instrumentation and Node] +- The in-tree azure and gcp auth plugins have been deprecated. The https://github.com/Azure/kubelogin and gcloud commands serve as out-of-tree replacements via the kubectl/client-go credential plugin mechanism. ([#102181](https://github.com/kubernetes/kubernetes/pull/102181), [@enj](https://github.com/enj)) [SIG API Machinery and Auth] +- The ingress `v1beta1` has been deprecated. ([#102030](https://github.com/kubernetes/kubernetes/pull/102030), [@aojea](https://github.com/aojea)) + +### API Change + +- A new score extension for NodeResourcesFit plugin that merges the functionality of `NodeResourcesLeastAllocated`, `NodeResourcesMostAllocated`, `RequestedToCapacityRatio` plugins, which are marked as deprecated as of v1beta2. In v1beta1, the three plugins can still be used in v1beta1 but not at the same time with the score extension of `NodeResourcesFit`. ([#101822](https://github.com/kubernetes/kubernetes/pull/101822), [@yuzhiquan](https://github.com/yuzhiquan)) +- A value of `Auto` is now a valid for the `service.kubernetes.io/topology-aware-hints` annotation. ([#100728](https://github.com/kubernetes/kubernetes/pull/100728), [@robscott](https://github.com/robscott)) +- Add `DataSourceRef` alpha field to PVC spec, which allows contents other than `PVCs` and `VolumeSnapshots` to be data sources. ([#103276](https://github.com/kubernetes/kubernetes/pull/103276), [@bswartz](https://github.com/bswartz)) +- Add `PersistentVolumeClaimDeletePoilcy` to StatefulSet API. ([#99378](https://github.com/kubernetes/kubernetes/pull/99378), [@mattcary](https://github.com/mattcary)) +- Add a new Priority and Fairness rule that exempts all probes (`/readyz`, `/healthz`, `/livez`) to prevent restarting of healthy `kube-apiserver` instance by kubelet. ([#100678](https://github.com/kubernetes/kubernetes/pull/100678), [@tkashem](https://github.com/tkashem)) +- Add alpha support for HostProcess containers on Windows ([#99576](https://github.com/kubernetes/kubernetes/pull/99576), [@marosset](https://github.com/marosset)) [SIG API Machinery, Apps, Node, Testing and Windows] +- Add distributed tracing to the `kube-apiserver`. It is can be enabled with the feature gate `APIServerTracing` ([#94942](https://github.com/kubernetes/kubernetes/pull/94942), [@dashpole](https://github.com/dashpole)) +- Add three metrics to the job controller to monitor if a job works in healthy condition. + `IndexedJob` has been promoted to Beta. ([#101292](https://github.com/kubernetes/kubernetes/pull/101292), [@AliceZhang2016](https://github.com/AliceZhang2016)) +- Added field `.status.uncountedTerminatedPods` to the Job resource. This field is used by the job controller to keep track of finished pods before adding them to the Job status counters. Pods created by the job controller get the finalizer `batch.kubernetes.io/job-tracking` + Jobs that are tracked using this mechanism get the annotation `batch.kubernetes.io/job-tracking`. This is a temporary measure. Two releases after this feature graduates to beta, the annotation won't be added to Jobs anymore. ([#98817](https://github.com/kubernetes/kubernetes/pull/98817), [@alculquicondor](https://github.com/alculquicondor)) +- Added new kubelet alpha feature `SeccompDefault`. This feature enables falling back to + the `RuntimeDefault` (former `runtime/default`) seccomp profile if nothing else is specified + in the pod/container `SecurityContext` or the pod annotation level. To use the feature, enable + the feature gate as well as set the kubelet configuration option `SeccompDefault` + (`--seccomp-default`) to `true`. ([#101943](https://github.com/kubernetes/kubernetes/pull/101943), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] +- Adds the `ReadWriteOncePod` access mode for `PersistentVolumes` and `PersistentVolumeClaims`. Restricts volume access to a single pod on a single node. ([#102028](https://github.com/kubernetes/kubernetes/pull/102028), [@chrishenzie](https://github.com/chrishenzie)) +- Alpha swap support can now be enabled on Kubernetes nodes with the `NodeSwapEnabled` feature flag. See [KEP-2400](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md#design-details) for details. ([#102823](https://github.com/kubernetes/kubernetes/pull/102823), [@ehashman](https://github.com/ehashman)) +- Because of the implementation logic of `time.Format` in golang, the displayed time zone is not consistent. ([#102366](https://github.com/kubernetes/kubernetes/pull/102366), [@cndoit18](https://github.com/cndoit18)) +- Corrected the documentation for escaping dollar signs in a container's env, command and args property. ([#101916](https://github.com/kubernetes/kubernetes/pull/101916), [@MartinKanters](https://github.com/MartinKanters)) [SIG Apps] +- Enable `MaxSurge` for `DaemonSet` by default. ([#101742](https://github.com/kubernetes/kubernetes/pull/101742), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- Enforce the `ReadWriteOncePod` PVC access mode during scheduling ([#103082](https://github.com/kubernetes/kubernetes/pull/103082), [@chrishenzie](https://github.com/chrishenzie)) +- Ephemeral containers are now allowed to configure a `securityContext` that differs from that of the Pod. Cluster administrators should ensure that security policy controllers support `EphemeralContainers` before enabling this feature in clusters. ([#99023](https://github.com/kubernetes/kubernetes/pull/99023), [@verb](https://github.com/verb)) +- Exec plugin authors can override default handling of standard input via new `interactiveMode` kubeconfig field. ([#99310](https://github.com/kubernetes/kubernetes/pull/99310), [@ankeesler](https://github.com/ankeesler)) +- If someone had the `ProbeTerminationGracePeriod` alpha feature enabled in 1.21, they should update/delete any workloads/pods with probe `terminationGracePeriods` < 1 before upgrading ([#103245](https://github.com/kubernetes/kubernetes/pull/103245), [@wzshiming](https://github.com/wzshiming)) +- Improved parsing of label selectors ([#102188](https://github.com/kubernetes/kubernetes/pull/102188), [@alculquicondor](https://github.com/alculquicondor)) [SIG API Machinery] +- Introduce `minReadySeconds` api to the `StatefulSets`. ([#100842](https://github.com/kubernetes/kubernetes/pull/100842), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- Introducing Memory quality of service support with `cgroups v2 (Alpha)`. The `MemoryQoS` feature is now in Alpha. This allows `kubelet` running with `cgroups v2` to set memory QoS at container, pod and QoS level to protect and guarantee better memory quality. This feature can be enabled through feature gate Memory QoS. ([#102970](https://github.com/kubernetes/kubernetes/pull/102970), [@borgerli](https://github.com/borgerli)) +- Kube API server accepts `Impersonate-Uid` header to impersonate a user with a specific UID, in the same way that you can currently use `Impersonate-User`, `Impersonate-Group` and `Impersonate-Extra`. ([#99961](https://github.com/kubernetes/kubernetes/pull/99961), [@margocrawf](https://github.com/margocrawf)) +- Kube-apiserver: `--service-account-issuer` can be specified multiple times now, to enable non-disruptive change of issuer. ([#101155](https://github.com/kubernetes/kubernetes/pull/101155), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth, Node and Testing] +- Kube-controller-manager: the `--horizontal-pod-autoscaler-use-rest-clients` flag and Heapster support in the horizontal pod autoscaler, deprecated since 1.12, is removed. ([#90368](https://github.com/kubernetes/kubernetes/pull/90368), [@serathius](https://github.com/serathius)) +- Kube-scheduler: a plugin enabled in a v1beta2 configuration file takes precedence over the default configuration for that plugin. This simplifies enabling default plugins with custom configuration without needing to explicitly disable those default plugins. ([#99582](https://github.com/kubernetes/kubernetes/pull/99582), [@chendave](https://github.com/chendave)) +- New `node-high` priority-level has been added to Suggested API Priority and ([#101151](https://github.com/kubernetes/kubernetes/pull/101151), [@mborsz](https://github.com/mborsz)) +- NodeSwapEnabled feature flag was renamed to NodeSwap + + The flag was only available in the 1.22.0-beta.1 release, and the new flag should be used going forward. ([#103553](https://github.com/kubernetes/kubernetes/pull/103553), [@ehashman](https://github.com/ehashman)) [SIG Node] +- Omit comparison with boolean constant ([#101523](https://github.com/kubernetes/kubernetes/pull/101523), [@chuntaochen](https://github.com/chuntaochen)) [SIG CLI and Cloud Provider] +- Removed the feature flag for probe-level termination grace period from Kubelet. If a user wants to disable this feature on already created pods, they will have to delete and recreate the pods. ([#103168](https://github.com/kubernetes/kubernetes/pull/103168), [@raisaat](https://github.com/raisaat)) [SIG Apps and Node] +- Revert addition of Add `PersistentVolumeClaimDeletePoilcy` to `StatefulSet`API. ([#103747](https://github.com/kubernetes/kubernetes/pull/103747), [@mattcary](https://github.com/mattcary)) +- Scheduler could be configured to consider new resources beside CPU and memory, GPU for example, for the score plugin of `NodeResourcesBalancedAllocation`. ([#101946](https://github.com/kubernetes/kubernetes/pull/101946), [@chendave](https://github.com/chendave)) [SIG Scheduling] +- Server Side Apply now treats all <Some>Selector fields as atomic (meaning the entire selector is managed by a single writer and updated together), since they contain interrelated and inseparable fields that do not merge in intuitive ways. ([#97989](https://github.com/kubernetes/kubernetes/pull/97989), [@Danil-Grigorev](https://github.com/Danil-Grigorev)) [SIG API Machinery] +- Suspend Job feature graduated to beta. Added the `action` label to Job controller sync metrics `job_sync_total` and `job_sync_duration_seconds`. ([#102022](https://github.com/kubernetes/kubernetes/pull/102022), [@adtac](https://github.com/adtac)) +- The API documentation for the DaemonSet's `spec.updateStrategy.rollingUpdate.maxUnavailable` field was corrected to state that the value is rounded up. ([#101296](https://github.com/kubernetes/kubernetes/pull/101296), [@Miciah](https://github.com/Miciah)) +- The `CSIServiceAccountToken` graduates to Ga and is unconditionally enabled. ([#103001](https://github.com/kubernetes/kubernetes/pull/103001), [@zshihang](https://github.com/zshihang)) +- The `CertificateSigningRequest.certificates.k8s.io` API supports an optional expirationSeconds field to allow the client to request a particular duration for the issued certificate. The default signer implementations provided by the Kubernetes controller manager will honor this field as long as it does not exceed the --cluster-signing-duration flag. ([#99494](https://github.com/kubernetes/kubernetes/pull/99494), [@enj](https://github.com/enj)) +- The `EndpointSlicen Mirroring controller` no longer mirrors the `last-applied-configuration` annotation created by `kubectl` to update `EndpointSlices`. ([#102731](https://github.com/kubernetes/kubernetes/pull/102731), [@sharmarajdaksh](https://github.com/sharmarajdaksh)) +- The `NetworkPolicyEndPort` is graduated to beta and is enabled by default. ([#102834](https://github.com/kubernetes/kubernetes/pull/102834), [@rikatz](https://github.com/rikatz)) +- The `PodDeletionCost` feature has been promoted to beta, and enabled by default. ([#101080](https://github.com/kubernetes/kubernetes/pull/101080), [@ahg-g](https://github.com/ahg-g)) +- The `Server Side Apply` treats certain structs as atomic. Meaning the entire selector field is managed by a single writer and updated together. ([#100684](https://github.com/kubernetes/kubernetes/pull/100684), [@Jefftree](https://github.com/Jefftree)) +- The `ServiceAppProtocol` feature gate has been removed. It reached GA in Kubernetes ([#103190](https://github.com/kubernetes/kubernetes/pull/103190), [@robscott](https://github.com/robscott)) +- The `TerminationGracePeriodSeconds` on pod specs and container probes should not be negative. Negative values of `TerminationGracePeriodSeconds` will be treated as the value `1s` on the delete path. Immutable field validation will be relaxed in order to update negative values. In a future release, negative values will not be permitted. ([#98866](https://github.com/kubernetes/kubernetes/pull/98866), [@wzshiming](https://github.com/wzshiming)) +- The `kube-scheduler` component config `v1beta2` API available + Three scheduler plugins deprecated (`NodeLabel`, `ServiceAffinity`, `NodePreferAvoidPods`). ([#99597](https://github.com/kubernetes/kubernetes/pull/99597), [@adtac](https://github.com/adtac)) +- The `pod/eviction` subresource now accepts `policy/v1` eviction requests in addition to `policy/v1beta1` eviction requests ([#100724](https://github.com/kubernetes/kubernetes/pull/100724), [@liggitt](https://github.com/liggitt)) +- The `podAffinity`, `NamespaceSelector` and the associated `CrossNamespaceAffinity` quota scope features graduate to Beta and they are now enabled by default. ([#101496](https://github.com/kubernetes/kubernetes/pull/101496), [@ahg-g](https://github.com/ahg-g)) +- The `pods/ephemeralcontainers` API now returns and expects a `Pod` object instead of `EphemeralContainers`. This is incompatible with the previous alpha-level API. ([#101034](https://github.com/kubernetes/kubernetes/pull/101034), [@verb](https://github.com/verb)) [SIG Apps, Auth, CLI and Testing] +- The `v1.Node` and `.status.images[].names` are now optional. ([#102159](https://github.com/kubernetes/kubernetes/pull/102159), [@roycaihw](https://github.com/roycaihw)) +- The deprecated flag `--algorithm-provider` has been removed from `kube-scheduler`. Use instead `ComponentConfig` to configure the set of enabled plugins. ([#102239](https://github.com/kubernetes/kubernetes/pull/102239), [@Haleygo](https://github.com/Haleygo)) +- The options `--ssh-user` and `--ssh-key` are removed. They only functioned on GCE, and only in-tree. Use the apiserver network proxy instead. ([#102297](https://github.com/kubernetes/kubernetes/pull/102297), [@deads2k](https://github.com/deads2k)) +- Track Job completion through status and Pod finalizers, removing dependency on Pod tombstones. ([#98238](https://github.com/kubernetes/kubernetes/pull/98238), [@alculquicondor](https://github.com/alculquicondor)) [SIG API Machinery, Apps, Auth and Testing] +- Track ownership of scale subresource for all scalable resources i.e. Deployment, ReplicaSet, StatefulSet, ReplicationController, and Custom Resources. ([#98377](https://github.com/kubernetes/kubernetes/pull/98377), [@nodo](https://github.com/nodo)) [SIG API Machinery and Testing] + +### Feature + +- A `system-cluster-critical` pod should not get a low OOM Score. + + As of now both `system-node-critical` and `system-cluster-critical` pods have -997 OOM score, making them one of the last processes to be OOMKilled. By definition `system-cluster-critical` pods can be scheduled elsewhere if there is a resource crunch on the node where as `system-node-critical` pods cannot be rescheduled. This was the reason for `system-node-critical` to have higher priority value than `system-cluster-critical`. This change allows only `system-node-critical` priority class to have low OOMScore. + + action required + If the user wants to have the pod to be OOMKilled last and the pod has `system-cluster-critical` priority class, it has to be changed to `system-node-critical` priority class to preserve the existing behavior ([#99729](https://github.com/kubernetes/kubernetes/pull/99729), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- API Server tracing can now trace re-entrant api requests. ([#103218](https://github.com/kubernetes/kubernetes/pull/103218), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] +- APIServerTracing now collects spans from etcd client calls, and propagates context to etcd. ([#103216](https://github.com/kubernetes/kubernetes/pull/103216), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Cloud Provider and Instrumentation] +- APIServerTracing now collects spans from outgoing requests to admission webhooks. ([#103601](https://github.com/kubernetes/kubernetes/pull/103601), [@dashpole](https://github.com/dashpole)) [SIG API Machinery] +- Add a namespace label for all `apiserver_admission_* metrics`. + Expand the histogram range to 0-10s for all `apiserver_admission_*_duration_seconds` metrics. ([#101208](https://github.com/kubernetes/kubernetes/pull/101208), [@voutcn](https://github.com/voutcn)) +- Add unified map on CRI to support `cgroup v2`. Refer to https://github.com/opencontainers/runtime-spec/blob/master/config-linux.md#unified. ([#102578](https://github.com/kubernetes/kubernetes/pull/102578), [@payall4u](https://github.com/payall4u)) +- Added BinaryData description to `kubectl describe` command. ([#100568](https://github.com/kubernetes/kubernetes/pull/100568), [@lauchokyip](https://github.com/lauchokyip)) +- Added a new metric `apiserver_flowcontrol_request_concurrency_in_use` that shows the number of + seats (concurrency) occupied by the currently executing requests in the API Priority and Fairness system. ([#102795](https://github.com/kubernetes/kubernetes/pull/102795), [@tkashem](https://github.com/tkashem)) +- Added field-selector option for `kubectl top pod` ([#102155](https://github.com/kubernetes/kubernetes/pull/102155), [@lauchokyip](https://github.com/lauchokyip)) [SIG CLI] +- Added new metrics about API Priority and Fairness. Each one has a label `priority_level`. The last two also have a label `bound` taking values `min` and `max. + - apiserver_flowcontrol_current_r: R(the time of the last change in state of the queues) + - apiserver_flowcontrol_dispatch_r: R(the time of the latest request dispatch) + - apiserver_flowcontrol_latest_s: S(the request last dispatched) = R(when that request starts executing in the virtual world) + - apiserver_flowcontrol_next_s_bounds: min and max next S among non-empty queues + - apiserver_flowcontrol_next_discounted_s_bounds: min and max next S - (sum [over requests executing] width * estimatedDuration) among non-empty queues ([#102859](https://github.com/kubernetes/kubernetes/pull/102859), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery and Instrumentation] +- Adding `--restart-kubelet` flag on E2E Node test suite ([#97028](https://github.com/kubernetes/kubernetes/pull/97028), [@knabben](https://github.com/knabben)) [SIG Node and Testing] +- Adds feature gate `KubeletInUserNamespace` which enables support for running kubelet in a user namespace. + + The user namespace has to be created before running kubelet. + All the node components such as CRI need to be running in the same user namespace. + + When the feature gate is enabled, kubelet ignores errors that happens during setting the following sysctl values: `vm.overcommit_memory`, `vm.panic_on_oom`, `kernel.panic`, `kernel.panic_on_oops`, `kernel.keys.root_maxkeys`, `kernel.keys.root_maxbytes`. (These sysctl values for the host, not for the containers) + + kubelet also ignores an error during opening `/dev/kmsg`. + This feature gate also allows kube-proxy to ignore an error during setting `RLIMIT_NOFILE`. + + This feature gate is especially useful for running Kubernetes inside Rootless Docker/Podman with `kind` or `minikube`. ([#92863](https://github.com/kubernetes/kubernetes/pull/92863), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Network, Node and Testing] +- Adds metrics for the delegated authenticator used by extension APIs that delegate authentication logic to the Kube API server. ([#99364](https://github.com/kubernetes/kubernetes/pull/99364), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Adds metrics for the delegated authorizer used by extension APIs that delegate authorization logic to the Kube API server. ([#100339](https://github.com/kubernetes/kubernetes/pull/100339), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Adds two kubemark flags, `--max-pods` and `--extended-resources`. ([#100267](https://github.com/kubernetes/kubernetes/pull/100267), [@Jeffwan](https://github.com/Jeffwan)) +- An audit log entry will be generated when a `ValidatingAdmissionWebhook` is failing to open. ([#92739](https://github.com/kubernetes/kubernetes/pull/92739), [@cnphil](https://github.com/cnphil)) +- Base images: Updated to + - debian-base:buster-v1.6.0 + - debian-iptables:buster-v1.6.0 ([#100976](https://github.com/kubernetes/kubernetes/pull/100976), [@jindijamie](https://github.com/jindijamie)) +- Base-images: Update to `debian-base:buster-v1.7.1` ([#102594](https://github.com/kubernetes/kubernetes/pull/102594), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Deprecated warning message for `igonre-errors` flag. ([#102677](https://github.com/kubernetes/kubernetes/pull/102677), [@yuzhiquan](https://github.com/yuzhiquan)) +- Endpoints that have more than 1000 endpoints will be truncated and the `endpoints.kubernetes.io/over-capacity` annotation on the Endpoints resource will be set to `truncated`. ([#103520](https://github.com/kubernetes/kubernetes/pull/103520), [@swetharepakula](https://github.com/swetharepakula)) [SIG Apps and Network] +- Expose `/debug/flags/v` to allow dynamically setting log level for kube-proxy. ([#98306](https://github.com/kubernetes/kubernetes/pull/98306), [@borgerli](https://github.com/borgerli)) [SIG Network] +- Expose container start time as `container_start_time_seconds` in the kubelet `/metrics/resource` endpoint. ([#102444](https://github.com/kubernetes/kubernetes/pull/102444), [@sanwishe](https://github.com/sanwishe)) +- Extended resources defined in `LeastAllocated`, `MostAllocated` and `RequestedToCapacityRatio` plugin argument are bypassed by the scheduler if the incoming Pod doesn't request them in the pod spec. ([#103169](https://github.com/kubernetes/kubernetes/pull/103169), [@Huang-Wei](https://github.com/Huang-Wei)) +- Feat: change parittion style to GPT on Windows ([#101412](https://github.com/kubernetes/kubernetes/pull/101412), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage and Windows] +- Features gates `EndpointSliceProxying` & `WindowsEndpointSliceProxying` graduates to GA and are unconditionally enabled. Kube-proxy will use EndpointSlices for endpoint information. ([#103451](https://github.com/kubernetes/kubernetes/pull/103451), [@swetharepakula](https://github.com/swetharepakula)) +- Fluentd: isolate logging resources in separate namespace `logging` ([#68004](https://github.com/kubernetes/kubernetes/pull/68004), [@saravanan30erd](https://github.com/saravanan30erd)) +- For `kubeadm`: add `--validity-period` flag for `kubeadm kubeconfig user` command. ([#100907](https://github.com/kubernetes/kubernetes/pull/100907), [@SataQiu](https://github.com/SataQiu)) +- Implement `minReadySeconds` for the `StatefulSets`. ([#101316](https://github.com/kubernetes/kubernetes/pull/101316), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- Improve logging of `APIService` availability changes in kube-apiserver. ([#101420](https://github.com/kubernetes/kubernetes/pull/101420), [@sttts](https://github.com/sttts)) +- Introduce a feature gate `DisableCloudProviders` allowing to disable cloud-provider initialization in KAPI, KCM and kubelet. + `DisableCloudProviders` FeatureGate is currently in Alpha, which means is currently disabled by default. Once the FeatureGate moves to beta, in-tree cloud providers would be disabled by default, and a user won't be able to specify `--cloud-provider=<aws|openstack|azure|gcp|vsphere>` anymore to any of KCM, KAPI or kubelet. Only a '--cloud-provider=external' would be allowed. CCM would have to run out-of-tree with CSI. ([#100136](https://github.com/kubernetes/kubernetes/pull/100136), [@Danil-Grigorev](https://github.com/Danil-Grigorev)) +- JSON logging format is no longer available by default in non-core Kubernetes Components and require owners to opt in. ([#102869](https://github.com/kubernetes/kubernetes/pull/102869), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] +- Kube-apiserver: the alpha PodSecurity feature can be enabled by passing `--feature-gates=PodSecurity=true`, and enables controlling allowed pods using namespace labels. See https://git.k8s.io/enhancements/keps/sig-auth/2579-psp-replacement for more details. ([#103099](https://github.com/kubernetes/kubernetes/pull/103099), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Instrumentation, Release, Security and Testing] +- Kube-proxy uses V1 `EndpointSlices`. ([#103306](https://github.com/kubernetes/kubernetes/pull/103306), [@swetharepakula](https://github.com/swetharepakula)) +- Kubeadm: Add the `RootlessControlPlane` kubeadm specific feature gate (Alpha in 1.22, disabled by default). It can be used to enable an experimental feature that makes the control plane component static Pod containers for `kube-apiserver`, `kube-controller-manager`, `kube-scheduler` and `etcd` to run as a non-root users. ([#102158](https://github.com/kubernetes/kubernetes/pull/102158), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) +- Kubeadm: Set the `seccompProfile` to `runtime/default` in the `PodSecurityContext` of the control-plane components that run as static Pods. ([#100234](https://github.com/kubernetes/kubernetes/pull/100234), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) +- Kubeadm: add a new field `skipPhases` to `v1beta3` `InitConfiguration` and `JoinConfiguration` that can contain a list of phases to skip during "kubeadm init" and "kubeadm join". The flag "--skip-phases" takes precedence over this field. ([#101923](https://github.com/kubernetes/kubernetes/pull/101923), [@neolit123](https://github.com/neolit123)) +- Kubeadm: add the `--dry-run` flag to the `control-plane` phase of "kubeadm init". ([#102722](https://github.com/kubernetes/kubernetes/pull/102722), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) +- Kubeadm: add the `imagePullPolicy` field in the `nodeRegistration` section of `InitConfiguration` and `JoinConfiguration` in `v1beta3`. This allows the user to specify the image pull policy during "kubeadm init" and "kubeadm join". The value of this field must be one of `Always`, `IfNotPresent` or `Never`. The default behavior continues to be `IfNotPresent`. ([#102901](https://github.com/kubernetes/kubernetes/pull/102901), [@wangyysde](https://github.com/wangyysde)) +- Kubeadm: during "kubeadm init/join/upgrade", always default the `cgroupDriver` value in the `KubeletConfiguration` to `systemd`, unless the user was explicit about the value. See [configure-cgroup-driver](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm/configure-cgroup-driver/) for more details. ([#102133](https://github.com/kubernetes/kubernetes/pull/102133), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: update `CoreDNS` to 1.8.4. Grant `CoreDNS` permissions to "list" and "watch" `EndpointSlice` objects to accommodate dual-stack support. ([#102466](https://github.com/kubernetes/kubernetes/pull/102466), [@pacoxu](https://github.com/pacoxu)) +- Kubectl: add `LAST RESTART` column to `kubectl get pods` output. ([#100142](https://github.com/kubernetes/kubernetes/pull/100142), [@Ethyling](https://github.com/Ethyling)) +- Kubemark's hollow-node will now print flags before starting. ([#101181](https://github.com/kubernetes/kubernetes/pull/101181), [@mm4tt](https://github.com/mm4tt)) +- Kubernetes is now built with Golang 1.16.3 ([#101206](https://github.com/kubernetes/kubernetes/pull/101206), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing] +- Kubernetes is now built with Golang 1.16.4 ([#101809](https://github.com/kubernetes/kubernetes/pull/101809), [@justaugustus](https://github.com/justaugustus)) [SIG Cloud Provider, Instrumentation, Release and Testing] +- Kubernetes is now built with Golang 1.16.5. ([#102689](https://github.com/kubernetes/kubernetes/pull/102689), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with Golang 1.16.6 ([#103669](https://github.com/kubernetes/kubernetes/pull/103669), [@cpanato](https://github.com/cpanato)) [SIG Cloud Provider, Instrumentation, Release and Testing] +- Leader Migration for controller managers graduated to beta. ([#103533](https://github.com/kubernetes/kubernetes/pull/103533), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery and Cloud Provider] +- Make kubectl command headers default for beta. ([#103238](https://github.com/kubernetes/kubernetes/pull/103238), [@seans3](https://github.com/seans3)) [SIG CLI] +- Mark `net.ipv4.ip_unprivileged_port_start` as safe `sysctl`. ([#103326](https://github.com/kubernetes/kubernetes/pull/103326), [@pacoxu](https://github.com/pacoxu)) +- Metrics server nanny has now poll period set to 30s (previously 5 minutes) to allow faster scaling of metrics server. ([#101869](https://github.com/kubernetes/kubernetes/pull/101869), [@olagacek](https://github.com/olagacek)) [SIG Cloud Provider and Instrumentation] +- NetworkPolicy validation framework support for windows. ([#98077](https://github.com/kubernetes/kubernetes/pull/98077), [@jayunit100](https://github.com/jayunit100)) +- New feature gate `ExpandedDNSConfig` is now available. This feature allows Kubernetes to have expanded DNS configuration. ([#100651](https://github.com/kubernetes/kubernetes/pull/100651), [@gjkim42](https://github.com/gjkim42)) +- New metrics: `apiserver_kube_aggregator_x509_missing_san_total` and `apiserver_webhooks_x509_missing_san_total`. This metric measures a number of connections to webhooks/aggregated API servers that use certificates without Subject Alternative Names. It being non-zero is a warning sign that these connections will stop functioning in the future since Golang is going to deprecate x509 certificate subject Common Names for server hostname verification. ([#95396](https://github.com/kubernetes/kubernetes/pull/95396), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Auth and Instrumentation] +- Node Problem Detector is now available for GCE Windows nodes. ([#101539](https://github.com/kubernetes/kubernetes/pull/101539), [@jeremyje](https://github.com/jeremyje)) [SIG Cloud Provider, Node and Windows] +- Promote Cronjobs storage version to `batch/v1`. ([#102363](https://github.com/kubernetes/kubernetes/pull/102363), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Promote `CronJobControllerV2` flag to GA, with removal in 1.23. ([#102529](https://github.com/kubernetes/kubernetes/pull/102529), [@soltysh](https://github.com/soltysh)) +- Promote `EndpointSliceTerminatingCondition` to Beta. This enables the `terminating` and `serving` conditions for EndpointSlice by default. ([#103596](https://github.com/kubernetes/kubernetes/pull/103596), [@andrewsykim](https://github.com/andrewsykim)) +- Run etcd as non-root on GCE provider ([#100635](https://github.com/kubernetes/kubernetes/pull/100635), [@cindy52](https://github.com/cindy52)) +- Scheduler nows provides an option for plugin developers to move `Pods` to activeQ. ([#103383](https://github.com/kubernetes/kubernetes/pull/103383), [@Huang-Wei](https://github.com/Huang-Wei)) +- Secret values are now masked by default in `kubectl diff` output. ([#96084](https://github.com/kubernetes/kubernetes/pull/96084), [@loozhengyuan](https://github.com/loozhengyuan)) +- Services with `externalTrafficPolicy: Local` now support graceful termination when using + the iptables or ipvs mode of kube-proxy with `EndpointSlices` enabled. Specifically, if a + connection for such a service arrives on a node when there are no "Ready" endpoints + for the service, but there is at least one Terminating pod for that service on the node, + then kube-proxy will send the traffic to the Terminating pod rather than dropping it. This + patches up a race condition between when a pod is killed and when the external load + balancer notices that it has been killed. ([#97238](https://github.com/kubernetes/kubernetes/pull/97238), [@andrewsykim](https://github.com/andrewsykim)) +- Shell completion has been migrated to Cobra's go solution. `kubectl` is now smarter about disabling file completion when it does not apply. Furthermore, completion for the `cp` command does not show all files unless the user has started typing something. ([#96087](https://github.com/kubernetes/kubernetes/pull/96087), [@marckhouzam](https://github.com/marckhouzam)) [SIG CLI] +- Some of the in-tree storage drivers indicate support for the `MetricsProvider` interface, but fail to configure this for BlockMode volumes. With a recent change, `Kubelet` will call `GetMetrics()` for BlockMode volumes, and the in-tree drivers that miss the support cause a Go panic. Now the in-tree storage drivers that support BlockMode volumes, will return the Capacity of the volume in the `GetMetrics()` call. ([#101587](https://github.com/kubernetes/kubernetes/pull/101587), [@nixpanic](https://github.com/nixpanic)) +- Support `FakeClientset` match subresource. ([#100939](https://github.com/kubernetes/kubernetes/pull/100939), [@wzshiming](https://github.com/wzshiming)) +- The "Leader Migration" now support a wildcard component name and the default value. ([#102711](https://github.com/kubernetes/kubernetes/pull/102711), [@jiahuif](https://github.com/jiahuif)) +- The CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate applying FSGroup to the driver by passing it to `NodeStageVolume` and `NodePublishVolume`, regardless of what other `FSGroup` policies are set, this is an alpha feature. ([#103244](https://github.com/kubernetes/kubernetes/pull/103244), [@verult](https://github.com/verult)) +- The Memory Manager feature graduates to Beta and it is enabled by default. ([#101947](https://github.com/kubernetes/kubernetes/pull/101947), [@cynepco3hahue](https://github.com/cynepco3hahue)) +- The `BoundServiceAccountTokenVolume` graduates to GA and thus will be unconditionally enabled. The feature gate is going to be removed in 1.23. ([#101992](https://github.com/kubernetes/kubernetes/pull/101992), [@zshihang](https://github.com/zshihang)) +- The `EmptyDir` memory backed volumes are sized as the the minimum of pod allocatable memory on a host and an optional explicit user provided value. ([#101048](https://github.com/kubernetes/kubernetes/pull/101048), [@dims](https://github.com/dims)) +- The `HugePageStorageMediumSize` feature graduates to GA and unconditionally enabled. Allowing unconditional usage of multiple sizes huge page resources on a container level. ([#99144](https://github.com/kubernetes/kubernetes/pull/99144), [@bart0sh](https://github.com/bart0sh)) +- The `IngressClassNamespacedParams` feature gate has graduated to beta and is enabled by default. This means IngressClass resource will now have two new fields - `spec.paramters.namespace` and `spec.parameters.scope`. ([#101711](https://github.com/kubernetes/kubernetes/pull/101711), [@hbagdi](https://github.com/hbagdi)) +- The `LogarithmicScaleDown` feature graduates to Beta and enabled by default. ([#101767](https://github.com/kubernetes/kubernetes/pull/101767), [@damemi](https://github.com/damemi)) +- The `NamespaceDefaultLabelName` is promoted to GA in this release. All Namespace API objects have a `kubernetes.io/metadata.name` label matching their `metadata.name` field to allow selecting any `namespace` by its name using a label selector. ([#101342](https://github.com/kubernetes/kubernetes/pull/101342), [@rosenhouse](https://github.com/rosenhouse)) +- The `ServiceInternalTrafficPolicy` feature graduates to Beta and enable by default, which enables the `internalTrafficPolicy` field of Service by default. ([#103462](https://github.com/kubernetes/kubernetes/pull/103462), [@andrewsykim](https://github.com/andrewsykim)) +- The `ServiceLBNodePortControl` graduates to Beta and is enabled by default. ([#100412](https://github.com/kubernetes/kubernetes/pull/100412), [@hanlins](https://github.com/hanlins)) +- The `SetHostnameAsFQDN` graduates to GA and thus will be unconditionally disabled. ([#101294](https://github.com/kubernetes/kubernetes/pull/101294), [@javidiaz](https://github.com/javidiaz)) +- The `WarningHeader` feature is now GA and is unconditionally enabled. The `apiserver_requested_deprecated_apis` metric has graduated to stable status. The `WarningHeader` feature-gate is no longer operative and will be removed in v1.24. ([#100754](https://github.com/kubernetes/kubernetes/pull/100754), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Instrumentation and Testing] +- The `kubectl debug` is able to create ephemeral containers in pre-1.22 clusters with the `EphemeralContainers` feature enabled. Note that versions of kubectl prior to 1.22 are unable to create ephemeral containers in clusters version 1.22 and greater due to an API change. ([#103292](https://github.com/kubernetes/kubernetes/pull/103292), [@verb](https://github.com/verb)) +- The client-go credential plugins are now GA and are enabled by default. ([#102890](https://github.com/kubernetes/kubernetes/pull/102890), [@ankeesler](https://github.com/ankeesler)) +- The feature gate `SSA` graduated to GA in v1.22 and therefore is unconditionally enabled. ([#100139](https://github.com/kubernetes/kubernetes/pull/100139), [@Jefftree](https://github.com/Jefftree)) +- The job controller removes running pods when the number of completions is achieved. ([#99963](https://github.com/kubernetes/kubernetes/pull/99963), [@alculquicondor](https://github.com/alculquicondor)) +- The kubeconfig is now exposed in `the kube-scheduler` framework handle. Out-of-tree plugins can leverage that to build CRD informers easily. ([#100644](https://github.com/kubernetes/kubernetes/pull/100644), [@Huang-Wei](https://github.com/Huang-Wei)) +- The new flag `--chunk-size=SIZE` for `kubectl drain` has been promoted to beta, and enabled by default. This flag may be used to alter the number of items or disable this feature when `0` is passed. ([#100148](https://github.com/kubernetes/kubernetes/pull/100148), [@KnVerey](https://github.com/KnVerey)) +- The new flag `--chunk-size=SIZE` has been added to `kubectl describe`. This flag may be used to alter the number of items or disable this feature when `0` is passed. ([#101171](https://github.com/kubernetes/kubernetes/pull/101171), [@KnVerey](https://github.com/KnVerey)) +- The pod resource API will provide memory manager metrics in the case when the memory manager feature gate is enabled, and the memory manager policy is static. ([#101030](https://github.com/kubernetes/kubernetes/pull/101030), [@cynepco3hahue](https://github.com/cynepco3hahue)) +- The prefer nominated node graduates to Beta and enabld by default. ([#102201](https://github.com/kubernetes/kubernetes/pull/102201), [@chendave](https://github.com/chendave)) +- Update etcd version to 3.5.0-beta.3. ([#102062](https://github.com/kubernetes/kubernetes/pull/102062), [@serathius](https://github.com/serathius)) +- Update the Debian images to pick up CVE fixes in the base images: + - Update the `debian-base` image to v1.7.0 + - Update the `debian-iptables` image to v1.6.1 ([#102302](https://github.com/kubernetes/kubernetes/pull/102302), [@xmudrii](https://github.com/xmudrii)) +- Update the setcap image to buster-v2.0.1. ([#102377](https://github.com/kubernetes/kubernetes/pull/102377), [@xmudrii](https://github.com/xmudrii)) +- Update the system-validators library to v1.5.0. Includes validation for `seccomp` and fixes a stdout/stderr problem in the Docker validator. ([#103390](https://github.com/kubernetes/kubernetes/pull/103390), [@ironyman](https://github.com/ironyman)) +- Updates the following images to pick up CVE fixes: + - `debian` to v1.8.0 + - `debian-iptables` to v1.6.5 + - `setcap` to v2.0.3 ([#103235](https://github.com/kubernetes/kubernetes/pull/103235), [@thejoycekung](https://github.com/thejoycekung)) [SIG API Machinery, Release and Testing] +- Warnings for the use of deprecated and known-bad values in pod specs are now sent. ([#101688](https://github.com/kubernetes/kubernetes/pull/101688), [@liggitt](https://github.com/liggitt)) +- Watch requests are now handled throttled by priority and fairness filter in `kube-apiserver`. ([#102171](https://github.com/kubernetes/kubernetes/pull/102171), [@wojtek-t](https://github.com/wojtek-t)) +- You can use this Builder function to create events Field Selector ([#101817](https://github.com/kubernetes/kubernetes/pull/101817), [@cndoit18](https://github.com/cndoit18)) [SIG API Machinery and Scalability] +- `Scheduler` now registers event handlers dynamically. ([#101394](https://github.com/kubernetes/kubernetes/pull/101394), [@Huang-Wei](https://github.com/Huang-Wei)) +- `kubectl`: Enable using protocol buffers to request Metrics API. ([#102039](https://github.com/kubernetes/kubernetes/pull/102039), [@serathius](https://github.com/serathius)) + +### Documentation + +- The command`kubectl debug` will now print a warning message when using the `--target` option since many container runtimes do not support this yet. ([#101074](https://github.com/kubernetes/kubernetes/pull/101074), [@verb](https://github.com/verb)) + +### Failing Test + +- Fixed generic ephemeal volumes with `OwnerReferencesPermissionEnforcement` admission plugin enabled. ([#101186](https://github.com/kubernetes/kubernetes/pull/101186), [@jsafrane](https://github.com/jsafrane)) +- Fixes `kubectl drain --dry-run=server`. ([#100206](https://github.com/kubernetes/kubernetes/pull/100206), [@KnVerey](https://github.com/KnVerey)) +- Fixes an overly restrictive conformance test to accept service account tokens signed by an ECDSA key ([#100680](https://github.com/kubernetes/kubernetes/pull/100680), [@smira](https://github.com/smira)) [SIG Architecture, Auth and Testing] +- Fixes the `should receive events on concurrent watches in same order` conformance test to work properly on clusters that auto-create additional configmaps in namespaces. ([#101950](https://github.com/kubernetes/kubernetes/pull/101950), [@liggitt](https://github.com/liggitt)) +- Resolves an issue with the "ServiceAccountIssuerDiscovery should support OIDC discovery" conformance test failing on clusters which are configured with issuers outside the cluster ([#101589](https://github.com/kubernetes/kubernetes/pull/101589), [@mtaufen](https://github.com/mtaufen)) [SIG Auth and Testing] + +### Bug or Regression + +- Added jitter factor to lease controller that better smears load on kube-apiserver over time. ([#101652](https://github.com/kubernetes/kubernetes/pull/101652), [@marseel](https://github.com/marseel)) [SIG API Machinery and Scalability] +- Added privileges for `EndpointSlice` to the default view & edit RBAC roles. ([#101203](https://github.com/kubernetes/kubernetes/pull/101203), [@mtougeron](https://github.com/mtougeron)) +- After DBus restarts, make `GracefulNodeShutdown` work again ([#100369](https://github.com/kubernetes/kubernetes/pull/100369), [@wzshiming](https://github.com/wzshiming)) +- Aggregate errors when putting vmss. ([#98350](https://github.com/kubernetes/kubernetes/pull/98350), [@nilo19](https://github.com/nilo19)) +- Aggregate write permissions on events to users with edit and admin role. ([#102858](https://github.com/kubernetes/kubernetes/pull/102858), [@tumido](https://github.com/tumido)) +- Aggregated roles no longer include write access to `EndpointSlices`. This rolls back part of a change that was introduced earlier in the Kubernetes 1.22 cycle. ([#103703](https://github.com/kubernetes/kubernetes/pull/103703), [@robscott](https://github.com/robscott)) +- Applying fix for not deleting existing public IP when a service is deleted in Azure. ([#100694](https://github.com/kubernetes/kubernetes/pull/100694), [@nilo19](https://github.com/nilo19)) +- Applying fix for not tagging static public IP. ([#101752](https://github.com/kubernetes/kubernetes/pull/101752), [@nilo19](https://github.com/nilo19)) +- Applying fix so that deleting non-existing disk returns success. ([#102083](https://github.com/kubernetes/kubernetes/pull/102083), [@andyzhangx](https://github.com/andyzhangx)) +- Applying fix: cleanup outdated routes. ([#102935](https://github.com/kubernetes/kubernetes/pull/102935), [@nilo19](https://github.com/nilo19)) +- Avoid caching the Azure VMSS instances whose network profile is nil ([#100948](https://github.com/kubernetes/kubernetes/pull/100948), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Azure: Avoid setting cached Sku when updating VMSS and VMSS instances. ([#102005](https://github.com/kubernetes/kubernetes/pull/102005), [@feiskyer](https://github.com/feiskyer)) +- Azurefile: Normalize share name to not include the capital letters ([#100731](https://github.com/kubernetes/kubernetes/pull/100731), [@kassarl](https://github.com/kassarl)) +- Chain the field manager creation calls in `newDefaultFieldManager` to be explicit about the order of operations. ([#101076](https://github.com/kubernetes/kubernetes/pull/101076), [@kevindelgado](https://github.com/kevindelgado)) +- Disruption controller shouldn't error while syncing for unmanaged pods. ([#103414](https://github.com/kubernetes/kubernetes/pull/103414), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Apps and Testing] +- Ensure service is deleted when the Azure resource group has been deleted. ([#100944](https://github.com/kubernetes/kubernetes/pull/100944), [@feiskyer](https://github.com/feiskyer)) +- Ensures `ExecProbeTimeout=false` kubelet feature gate with dockershim is taken into account, when the exec probe takes longer than `timeoutSeconds` configuration. ([#100200](https://github.com/kubernetes/kubernetes/pull/100200), [@jackfrancis](https://github.com/jackfrancis)) +- Expose `rest_client_rate_limiter_duration_seconds` metric to component-base to track client side rate limiter latency in seconds. Broken down by verb and URL. ([#100311](https://github.com/kubernetes/kubernetes/pull/100311), [@IonutBajescu](https://github.com/IonutBajescu)) [SIG API Machinery, Cluster Lifecycle and Instrumentation] +- Fire an event when failing to open `NodePort`. ([#100599](https://github.com/kubernetes/kubernetes/pull/100599), [@masap](https://github.com/masap)) +- Fix Azure node public IP fetching issues from instance metadata service when the node is part of standard load balancer backend pool. ([#100690](https://github.com/kubernetes/kubernetes/pull/100690), [@feiskyer](https://github.com/feiskyer)) [SIG Cloud Provider] +- Fix `EndpointSlice` describe panic when an Endpoint doesn't have zone. ([#101025](https://github.com/kubernetes/kubernetes/pull/101025), [@tnqn](https://github.com/tnqn)) +- Fix `kubectl set env` or `resources` not working for initcontainers. ([#101669](https://github.com/kubernetes/kubernetes/pull/101669), [@carlory](https://github.com/carlory)) +- Fix `kubectl` alpha debug node does not work on tainted(NoExecute) nodes and tolerate everything. ([#98431](https://github.com/kubernetes/kubernetes/pull/98431), [@wawa0210](https://github.com/wawa0210)) +- Fix a bug on the `endpointslicemirroring` controller where endpoint `NotReadyAddresses` were mirrored as Ready to the corresponding `EndpointSlice`. ([#102683](https://github.com/kubernetes/kubernetes/pull/102683), [@aojea](https://github.com/aojea)) +- Fix a bug that a preemptor pod may exist as a phantom in the scheduler. ([#102498](https://github.com/kubernetes/kubernetes/pull/102498), [@Huang-Wei](https://github.com/Huang-Wei)) +- Fix a number of race conditions in the kubelet when pods are starting up or shutting down that might cause pods to take a long time to shut down. ([#102344](https://github.com/kubernetes/kubernetes/pull/102344), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps, Node, Storage and Testing] +- Fix an issue with `kubectl` on certain older version of Windows or when legacy console mode is enabled on Windows 8 which causes `kubectl exec` to crash. ([#102825](https://github.com/kubernetes/kubernetes/pull/102825), [@n4j](https://github.com/n4j)) +- Fix availability set cache in vmss cache ([#100110](https://github.com/kubernetes/kubernetes/pull/100110), [@CecileRobertMichon](https://github.com/CecileRobertMichon)) [SIG Cloud Provider] +- Fix how nulls are handled in array and objects in [json patches](https://github.com/evanphx/json-patch). ([#102467](https://github.com/kubernetes/kubernetes/pull/102467), [@pacoxu](https://github.com/pacoxu)) +- Fix panic when `kubectl create ingress` has annotation flag and an empty value set. ([#101377](https://github.com/kubernetes/kubernetes/pull/101377), [@rikatz](https://github.com/rikatz)) +- Fix performance regression for update and apply operations on large CRDs. ([#103318](https://github.com/kubernetes/kubernetes/pull/103318), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation and Storage] +- Fix raw block mode CSI `NodePublishVolume` stage miss pod info. ([#99069](https://github.com/kubernetes/kubernetes/pull/99069), [@phantooom](https://github.com/phantooom)) +- Fix resource enforcement when using systemd cgroup driver ([#102147](https://github.com/kubernetes/kubernetes/pull/102147), [@kolyshkin](https://github.com/kolyshkin)) +- Fix rounding of volume storage requests. ([#100100](https://github.com/kubernetes/kubernetes/pull/100100), [@maxlaverse](https://github.com/maxlaverse)) +- Fix runtime container status for `PostStart` hook error. ([#100608](https://github.com/kubernetes/kubernetes/pull/100608), [@pacoxu](https://github.com/pacoxu)) +- Fix scoring for `NodeResourcesMostAllocated` and `NodeResourcesBalancedAllocation` plugins when nodes have containers with no requests. This was leaving to under-utilization of small nodes. ([#102925](https://github.com/kubernetes/kubernetes/pull/102925), [@alculquicondor](https://github.com/alculquicondor)) +- Fix the code is leaking the defaulting between unrelated pod instances. ([#103284](https://github.com/kubernetes/kubernetes/pull/103284), [@kebe7jun](https://github.com/kebe7jun)) [SIG CLI] +- Fix winkernel kube-proxy to only use dual stack when host and networking supports it ([#101047](https://github.com/kubernetes/kubernetes/pull/101047), [@jsturtevant](https://github.com/jsturtevant)) [SIG Network and Windows] +- Fix: Azure file inline volume namespace issue in CSI migration translation ([#101235](https://github.com/kubernetes/kubernetes/pull/101235), [@andyzhangx](https://github.com/andyzhangx)) +- Fix: Bug in `kube-proxy` latency metrics to calculate only the latency value for the `Endpoints` that are created after it starts running. This is needed because all the `Endpoints` objects are processed on restarts, independently when they were. ([#100861](https://github.com/kubernetes/kubernetes/pull/100861), [@aojea](https://github.com/aojea)) +- Fix: avoid nil-pointer panic when checking the frontend IP configuration ([#101739](https://github.com/kubernetes/kubernetes/pull/101739), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Fix: display of Job completion mode in `kubectl describe`. ([#101160](https://github.com/kubernetes/kubernetes/pull/101160), [@alculquicondor](https://github.com/alculquicondor)) +- Fix: return empty VMAS name if using standalone VM ([#103470](https://github.com/kubernetes/kubernetes/pull/103470), [@nilo19](https://github.com/nilo19)) [SIG Cloud Provider] +- Fix: set "host is down" as corrupted mount. When SMB server is down, there is no way to terminate pod which is using SMB mount, would get an error. ([#101398](https://github.com/kubernetes/kubernetes/pull/101398), [@andyzhangx](https://github.com/andyzhangx)) +- Fix: using NVMe AWS EBS volumes partitions. ([#100500](https://github.com/kubernetes/kubernetes/pull/100500), [@jsafrane](https://github.com/jsafrane)) +- Fixed 'kubelet' runtime panic for timed-out portforward streams. ([#102489](https://github.com/kubernetes/kubernetes/pull/102489), [@saschagrunert](https://github.com/saschagrunert)) +- Fixed SELinux relabeling of CSI volumes after CSI driver failure. ([#103154](https://github.com/kubernetes/kubernetes/pull/103154), [@jsafrane](https://github.com/jsafrane)) [SIG Node and Storage] +- Fixed `garbage collection` of dangling `VolumeAttachments` for `PersistentVolumes` migrated to CSI on startup of `kube-controller-manager`. ([#102176](https://github.com/kubernetes/kubernetes/pull/102176), [@timebertt](https://github.com/timebertt)) +- Fixed `port-forward` memory leak for long-running and heavily used connections. ([#99839](https://github.com/kubernetes/kubernetes/pull/99839), [@saschagrunert](https://github.com/saschagrunert)) +- Fixed a bug due to which the controller was not populating the `lastSuccessfulTime` field added to `cronjob.status` in `batch/v1`. ([#102642](https://github.com/kubernetes/kubernetes/pull/102642), [@alaypatel07](https://github.com/alaypatel07)) +- Fixed a bug that `kubectl create configmap` always returns zero exit code when failed. ([#101780](https://github.com/kubernetes/kubernetes/pull/101780), [@nak3](https://github.com/nak3)) [SIG CLI] +- Fixed a bug that scheduler extenders are not called on preemptions. ([#103019](https://github.com/kubernetes/kubernetes/pull/103019), [@ordovicia](https://github.com/ordovicia)) +- Fixed a bug where `startupProbe` stopped working after a container's first restart. ([#101093](https://github.com/kubernetes/kubernetes/pull/101093), [@wzshiming](https://github.com/wzshiming)) +- Fixed an issue blocking azure auth to prompt to device code authentication flow when refresh token expires. ([#102063](https://github.com/kubernetes/kubernetes/pull/102063), [@tdihp](https://github.com/tdihp)) +- Fixed false-positive uncertain volume attachments, which led to unexpected detachment of CSI migrated volumes ([#101737](https://github.com/kubernetes/kubernetes/pull/101737), [@Jiawei0227](https://github.com/Jiawei0227)) [SIG Apps and Storage] +- Fixed mounting of NFS volumes when IPv6 address is used as a server. ([#101067](https://github.com/kubernetes/kubernetes/pull/101067), [@Elbehery](https://github.com/Elbehery)) [SIG Storage] +- Fixed starting new pods after previous pod timed out unmounting its volumes. ([#100183](https://github.com/kubernetes/kubernetes/pull/100183), [@jsafrane](https://github.com/jsafrane)) +- Fixed very rare volume corruption when a pod is deleted while kubelet is offline. ([#102059](https://github.com/kubernetes/kubernetes/pull/102059), [@jsafrane](https://github.com/jsafrane)) +- Fixes a data race issue in the priority and fairness API server filter. ([#100638](https://github.com/kubernetes/kubernetes/pull/100638), [@tkashem](https://github.com/tkashem)) +- Fixes issue with websocket-based watches of Service objects not closing correctly on timeout. ([#102539](https://github.com/kubernetes/kubernetes/pull/102539), [@liggitt](https://github.com/liggitt)) +- For `kubeadm`: support for custom imagetags for etcd images which contain build metadata, when imagetags are in the form of version_metadata. For instance, if the etcd version is v3.4.13+patch.0, the supported imagetag would be v3.4.13_patch.0 ([#100350](https://github.com/kubernetes/kubernetes/pull/100350), [@jr0d](https://github.com/jr0d)) +- For vSphere: fix regression during attach disk if datastore is within a storage folder or datastore cluster. ([#102892](https://github.com/kubernetes/kubernetes/pull/102892), [@gnufied](https://github.com/gnufied)) +- GCE Windows clusters have their TCP/IP parameters are set to GCE's recommended values. ([#103057](https://github.com/kubernetes/kubernetes/pull/103057), [@jeremyje](https://github.com/jeremyje)) [SIG Cloud Provider and Windows] +- GCE Windows will no longer install Docker on containerd nodes. ([#101747](https://github.com/kubernetes/kubernetes/pull/101747), [@jeremyje](https://github.com/jeremyje)) [SIG Cloud Provider and Windows] +- Generated OpenAPI now correctly specifies 201 as a possible response code for PATCH operations. ([#100141](https://github.com/kubernetes/kubernetes/pull/100141), [@brendandburns](https://github.com/brendandburns)) +- Graceful termination will now be honored when deleting a collection of pods. ([#100101](https://github.com/kubernetes/kubernetes/pull/100101), [@deads2k](https://github.com/deads2k)) +- If `kube-proxy` mode is userspace do not enable `EndpointSlices`. ([#100913](https://github.com/kubernetes/kubernetes/pull/100913), [@JornShen](https://github.com/JornShen)) +- Kubeadm: allow passing the flag `--log-file` if `--config` is passed. If you wish to log to a file you must also pass `--logtostderr=false` or `--alsologtostderr=true`. Alternatively you can pipe to a file using "kubeadm ... | tee ...". ([#101449](https://github.com/kubernetes/kubernetes/pull/101449), [@CaoDonghui123](https://github.com/CaoDonghui123)) +- Kubeadm: enable `--experimental-patches` flag for `kubeadm join phase control-plane-join all` command. ([#101110](https://github.com/kubernetes/kubernetes/pull/101110), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: fix a bug where `kubeadm join` for control plane nodes would download certificates and keys from the cluster, but would not write publicly readable certificates and public keys with mode `0644` and instead use mode `0600`. ([#103313](https://github.com/kubernetes/kubernetes/pull/103313), [@neolit123](https://github.com/neolit123)) +- Kubeadm: fix the bug that `kubeadm` only uses the first hash in `caCertHashes` to verify the root CA. ([#101977](https://github.com/kubernetes/kubernetes/pull/101977), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: remove the "ephemeral_storage" request from the etcd static pod that kubeadm deploys on stacked etcd control plane nodes. This request has caused sporadic failures on some setups due to a problem in the kubelet with cadvisor and the LocalStorageCapacityIsolation feature gate. See this issue for more details: https://github.com/kubernetes/kubernetes/issues/99305 ([#102673](https://github.com/kubernetes/kubernetes/pull/102673), [@jackfrancis](https://github.com/jackfrancis)) [SIG Cluster Lifecycle] +- Kubeadm: when using a custom image repository for CoreDNS kubeadm now will append the `coredns` image name instead of `coredns/coredns`, thus restoring the behaviour existing before the v1.21 release. Users who rely on nested folder for the coredns image should set the `clusterConfiguration.dns.imageRepository` value including the nested path name (e.g using `registry.company.xyz/coredns` will force kubeadm to use `registry.company.xyz/coredns/coredns` image). No action is needed if using the default registry (k8s.gcr.io). ([#102502](https://github.com/kubernetes/kubernetes/pull/102502), [@ykakarap](https://github.com/ykakarap)) +- Kubelet: improve the performance when waiting for a synchronization of the node list with the `kube-apiserver`. ([#99336](https://github.com/kubernetes/kubernetes/pull/99336), [@neolit123](https://github.com/neolit123)) +- Kubelet: the returned value for PodIPs is the same in the Downward API and in the `pod.status.PodIPs` field ([#103307](https://github.com/kubernetes/kubernetes/pull/103307), [@aojea](https://github.com/aojea)) +- Limit vSphere volume name to 63 characters long. ([#100404](https://github.com/kubernetes/kubernetes/pull/100404), [@gnufied](https://github.com/gnufied)) +- Logging for GCE Windows clusters will be more accurate and complete when using Fluent bit. ([#101271](https://github.com/kubernetes/kubernetes/pull/101271), [@jeremyje](https://github.com/jeremyje)) +- Metrics Server will use Addon Manager 1.8.3 ([#103541](https://github.com/kubernetes/kubernetes/pull/103541), [@jbartosik](https://github.com/jbartosik)) [SIG Cloud Provider and Instrumentation] +- Output for `kubectl describe podsecuritypolicy` is now kind specific and cleaner ([#101436](https://github.com/kubernetes/kubernetes/pull/101436), [@KnVerey](https://github.com/KnVerey)) +- Parsing of cpuset information now properly detects more invalid input such as `1--3` or `10-6`. ([#100565](https://github.com/kubernetes/kubernetes/pull/100565), [@lack](https://github.com/lack)) +- Pods that are known to the kubelet to have previously been Running should not revert to Pending state, the kubelet will now infer a termination. ([#102821](https://github.com/kubernetes/kubernetes/pull/102821), [@ehashman](https://github.com/ehashman)) +- Prevent Kubelet stuck in `DiskPressure` when `imagefs.minReclaim` is set ([#99095](https://github.com/kubernetes/kubernetes/pull/99095), [@maxlaverse](https://github.com/maxlaverse)) +- Reduces delay initializing on non-AWS platforms docker runtime. ([#93260](https://github.com/kubernetes/kubernetes/pull/93260), [@nckturner](https://github.com/nckturner)) [SIG Cloud Provider] +- Register/Deregister Targets in chunks for AWS TargetGroup ([#101592](https://github.com/kubernetes/kubernetes/pull/101592), [@M00nF1sh](https://github.com/M00nF1sh)) [SIG Cloud Provider] +- Removed `/sbin/apparmor_parser` requirement for the AppArmor host validation. + This allows using AppArmor on distributions which ship the binary in a different path. ([#97968](https://github.com/kubernetes/kubernetes/pull/97968), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing] +- Renames the timeout field for the `DelegatingAuthenticationOptions` to `TokenRequestTimeout` and set the timeout only for the token review client. Previously the timeout was also applied to watches making them reconnecting every 10 seconds. ([#100959](https://github.com/kubernetes/kubernetes/pull/100959), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Reorganized iptables rules to reduce rules in `KUBE-SERVICES` and `KUBE-NODEPORTS`. ([#96959](https://github.com/kubernetes/kubernetes/pull/96959), [@tssurya](https://github.com/tssurya)) +- Respect annotation size limit for server-side apply updates to the client-side apply annotation. Also, fix opt-out of this behavior by setting the client-side apply annotation to the empty string. ([#102105](https://github.com/kubernetes/kubernetes/pull/102105), [@julianvmodesto](https://github.com/julianvmodesto)) [SIG API Machinery] +- Retry `FibreChannel` devices cleanup after error to ensure `FibreChannel` device is detached before it can be used on another node. ([#101862](https://github.com/kubernetes/kubernetes/pull/101862), [@jsafrane](https://github.com/jsafrane)) +- Support correct sorting for cpu, memory, storage, ephemeral-storage, hugepages, and attachable-volumes. ([#100435](https://github.com/kubernetes/kubernetes/pull/100435), [@lauchokyip](https://github.com/lauchokyip)) +- Switch scheduler to generate the merge patch on pod status instead of the full pod ([#103133](https://github.com/kubernetes/kubernetes/pull/103133), [@marwanad](https://github.com/marwanad)) [SIG Scheduling] +- The `EndpointSlice` IP validation now matches `Endpoints` IP validation. ([#101084](https://github.com/kubernetes/kubernetes/pull/101084), [@robscott](https://github.com/robscott)) +- The `kube-apiserver` now reports the synthetic verb when logging requests, better explaining the user intent and matching what is reported in the metrics. ([#102934](https://github.com/kubernetes/kubernetes/pull/102934), [@lavalamp](https://github.com/lavalamp)) +- The `kube-controller-manager'` sets the upper-bound timeout limit for outgoing requests to 70s. Previously ([#99358](https://github.com/kubernetes/kubernetes/pull/99358), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- The `kube-proxy` log now shows the "Skipping topology aware endpoint filtering since no hints were provided for zone" warning under the right conditions. ([#101857](https://github.com/kubernetes/kubernetes/pull/101857), [@dervoeti](https://github.com/dervoeti)) +- The `kubectl create service` now respects the `namespace` flag. ([#101005](https://github.com/kubernetes/kubernetes/pull/101005), [@zxh326](https://github.com/zxh326)) +- The `kubectl get` now truncates multi-line strings to avoid breaking printing ([#103514](https://github.com/kubernetes/kubernetes/pull/103514), [@soltysh](https://github.com/soltysh)) +- The `kubectl wait --for=delete` command now ignores the not found error correctly. ([#96702](https://github.com/kubernetes/kubernetes/pull/96702), [@lingsamuel](https://github.com/lingsamuel)) +- The `kubelet` now reports distinguishes log messages about certificate rotation for its client cert and server cert separately to make debugging problems with one or the other easier. ([#101252](https://github.com/kubernetes/kubernetes/pull/101252), [@smarterclayton](https://github.com/smarterclayton)) +- The `serviceOwnsFrontendIP` shouldn't report error when the public IP doesn't match. ([#102516](https://github.com/kubernetes/kubernetes/pull/102516), [@nilo19](https://github.com/nilo19)) +- The `system:aggregate-to-edit` role no longer includes write access to the Endpoints API. For new Kubernetes 1.22 clusters, the `edit` and `admin` roles will no longer include that access in newly created Kubernetes 1.22 clusters. This will have no affect on existing clusters upgrading to Kubernetes 1.22. To retain write access to Endpoints in the aggregated `edit` and `admin` roles for newly created 1.22 clusters, refer to https://github.com/kubernetes/website/pull/29025. ([#103704](https://github.com/kubernetes/kubernetes/pull/103704), [@robscott](https://github.com/robscott)) [SIG Auth and Network] +- The conformance tests: + - Services should serve multiport endpoints from pods + - Services should serve a basic endpoint from pods + were only validating the API objects, not performing any validation on the actual Services implementation. + Those tests now validate that the Services under test are able to forward traffic to the endpoints. ([#101709](https://github.com/kubernetes/kubernetes/pull/101709), [@aojea](https://github.com/aojea)) [SIG Network and Testing] +- The current behavior for Services that `IPFamilyPolicy` set as `PreferDualstack`. The current behavior when the cluster is upgraded to dual-stack is: + - Services that have been set to IPFamilyPolicy = PreferDualstack will be upgraded when the service object is updated. e.g., when a user change a label. + + This behavior will change to: + - Services that have been set IPFamilyPolicy = PreferDualstack will not be upgraded when the service object is updated. User can still change policy, type etc and existing behaviors remain the same. ([#102898](https://github.com/kubernetes/kubernetes/pull/102898), [@khenidak](https://github.com/khenidak)) [SIG Network and Testing] +- The reason and message fields for pod status are no longer reset unless the phase also changes. ([#103785](https://github.com/kubernetes/kubernetes/pull/103785), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node] +- Treat VSphere "File (vmdk path here) was not found" errors as success during volume deletion ([#92372](https://github.com/kubernetes/kubernetes/pull/92372), [@breunigs](https://github.com/breunigs)) [SIG Cloud Provider and Storage] +- Update `kube-proxy` base image `debian-iptables` to v1.6.2 to pickup [documentation](https://github.com/kubernetes/release/pull/2106) + \n"- `debian-iptables`: select nft mode if ntf lines > legacy lines, matching [iptables-wrappers](https://github.com/kubernetes-sigs/iptables-wrappers/)" ([#102590](https://github.com/kubernetes/kubernetes/pull/102590), [@BenTheElder](https://github.com/BenTheElder)) +- Update klog v2.9.0. ([#102332](https://github.com/kubernetes/kubernetes/pull/102332), [@pacoxu](https://github.com/pacoxu)) +- Updated the Graceful Node Shutdown Pod termination reason and message. + Updated the Graceful Node Shutdown Pod rejection reason and message. ([#102840](https://github.com/kubernetes/kubernetes/pull/102840), [@Kissy](https://github.com/Kissy)) +- Updates dependency `sigs.k8s.io/structured-merge-diff` to v4.1.1. ([#100784](https://github.com/kubernetes/kubernetes/pull/100784), [@kevindelgado](https://github.com/kevindelgado)) +- Updates hostprocess tests to specify user. ([#102965](https://github.com/kubernetes/kubernetes/pull/102965), [@jsturtevant](https://github.com/jsturtevant)) +- Upgrades functionality of `kubectl kustomize` as described at + https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.2.0 ([#103419](https://github.com/kubernetes/kubernetes/pull/103419), [@natasha41575](https://github.com/natasha41575)) [SIG CLI] +- Upgrades functionality of `kubectl kustomize` as described at [kustomize/v4.1.2](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.2) ([#101120](https://github.com/kubernetes/kubernetes/pull/101120), [@monopole](https://github.com/monopole)) +- Upgrading etcd: `kubeadm` upgrade etcd to 3.4.13-3 ([#100612](https://github.com/kubernetes/kubernetes/pull/100612), [@pacoxu](https://github.com/pacoxu)) +- Use default timeout of 10s for Azure ACR credential provider. ([#100686](https://github.com/kubernetes/kubernetes/pull/100686), [@hasheddan](https://github.com/hasheddan)) [SIG Cloud Provider] +- We no longer allow the cluster operator to delete any suggested priority & fairness bootstrap configuration object. If a cluster operator removes a suggested configuration, it will be restored by the apiserver. ([#102067](https://github.com/kubernetes/kubernetes/pull/102067), [@tkashem](https://github.com/tkashem)) +- When `DisableAcceleratorUsageMetrics` is set, do not collect accelerator metrics using cAdvisor. ([#101712](https://github.com/kubernetes/kubernetes/pull/101712), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Instrumentation and Node] +- YAML documents separators ("---") can now be followed by whitespace and comments ("# ....") on the same line. This fixes a bug where documents starting with a comment after the separator were ignored. Other types of content on the same line will result in an error. ([#103457](https://github.com/kubernetes/kubernetes/pull/103457), [@codearky](https://github.com/codearky)) [SIG API Machinery] +- `oc describe quota` used has the same unit format as hard ([#102177](https://github.com/kubernetes/kubernetes/pull/102177), [@atiratree](https://github.com/atiratree)) [SIG CLI] + +### Other (Cleanup or Flake) + +- After the deprecation period,now the Kubelet's `--chaos-chance` flag are removed. ([#101057](https://github.com/kubernetes/kubernetes/pull/101057), [@wangyysde](https://github.com/wangyysde)) [SIG Node] +- Allow CSI drivers to just run offline expansion tests. ([#102665](https://github.com/kubernetes/kubernetes/pull/102665), [@gnufied](https://github.com/gnufied)) +- Changed buildmode of non static Kubernetes binaries to produce position independent executables (PIE). ([#102323](https://github.com/kubernetes/kubernetes/pull/102323), [@saschagrunert](https://github.com/saschagrunert)) +- Clarified the description of a test in the e2e suite that mentions "SCTP" but is + actually intended to be testing the behavior of network plugins that don't + implement SCTP. ([#102509](https://github.com/kubernetes/kubernetes/pull/102509), [@danwinship](https://github.com/danwinship)) +- Client-go: reduce verbosity of `Starting/Stopping reflector` messages to 3 again. ([#102788](https://github.com/kubernetes/kubernetes/pull/102788), [@pohly](https://github.com/pohly)) +- Disable log sampling when using json logging format. ([#102620](https://github.com/kubernetes/kubernetes/pull/102620), [@serathius](https://github.com/serathius)) +- Exposes `WithCustomRoundTripper` method for specifying a middleware function for custom HTTP behaviour for the delegated auth clients. ([#99775](https://github.com/kubernetes/kubernetes/pull/99775), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Fake clients now implement a `FakeClient` interface ([#100940](https://github.com/kubernetes/kubernetes/pull/100940), [@markusthoemmes](https://github.com/markusthoemmes)) [SIG API Machinery and Instrumentation] +- Featuregate `ServiceLoadBalancerClass` graduates to Beta and is enables by default. ([#103129](https://github.com/kubernetes/kubernetes/pull/103129), [@XudongLiuHarold](https://github.com/XudongLiuHarold)) +- Improve func `ToSelectableFields`' performance for event. ([#102461](https://github.com/kubernetes/kubernetes/pull/102461), [@goodluckbot](https://github.com/goodluckbot)) +- Increased `CSINodeIDMaxLength` from 128 bytes to 192 bytes. Prepare to increase the length limit to 256 bytes in 1.23 release. ([#101256](https://github.com/kubernetes/kubernetes/pull/101256), [@Jiawei0227](https://github.com/Jiawei0227)) +- JSON logging now supports having information about source code location in the logging format, source code information is available under the key "caller". ([#102437](https://github.com/kubernetes/kubernetes/pull/102437), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) +- Kubeadm: move the BootstrapToken* API and related utilities from v1beta3 to a separate API group/version - bootstraptoken/v1. ([#102964](https://github.com/kubernetes/kubernetes/pull/102964), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: the `CriticalAddonsOnly` toleration has been removed from `kube-proxy` DaemonSet ([#101966](https://github.com/kubernetes/kubernetes/pull/101966), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Metrics Server updated to use `0.4.4` image that doesn't depend on deprecated `authorization.k8s.io/v1beta1` subjectaccessreviews API version. ([#101477](https://github.com/kubernetes/kubernetes/pull/101477), [@x13n](https://github.com/x13n)) +- Migrate `proxy/ipvs/proxier.go` logs to structured logging. ([#97796](https://github.com/kubernetes/kubernetes/pull/97796), [@JornShen](https://github.com/JornShen)) +- Migrate `staging/src/k8s.io/apiserver/pkg/registry` logs to structured logging. ([#98287](https://github.com/kubernetes/kubernetes/pull/98287), [@lala123912](https://github.com/lala123912)) +- Migrate some log messages to structured logging in `pkg/volume/plugins.go`. ([#101510](https://github.com/kubernetes/kubernetes/pull/101510), [@huchengze](https://github.com/huchengze)) +- Migrate some log messages to structured logging in `pkg/volume/volume_linux.go`. ([#99566](https://github.com/kubernetes/kubernetes/pull/99566), [@huchengze](https://github.com/huchengze)) +- Official binaries now include the golang generated build ID `buildid` instead of an empty string. ([#101411](https://github.com/kubernetes/kubernetes/pull/101411), [@saschagrunert](https://github.com/saschagrunert)) +- Remove balanced attached node volumes feature. ([#102443](https://github.com/kubernetes/kubernetes/pull/102443), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- Remove deprecated `--generator` flag from `kubectl autoscale`. ([#99900](https://github.com/kubernetes/kubernetes/pull/99900), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) +- Remove the deprecated flag `--generator` from `kubectl create deployment` command. ([#99915](https://github.com/kubernetes/kubernetes/pull/99915), [@BLasan](https://github.com/BLasan)) +- Remove the duplicate packet import. ([#101187](https://github.com/kubernetes/kubernetes/pull/101187), [@chuntaochen](https://github.com/chuntaochen)) +- Replace `go-bindata` with `//go:embed`. ([#99829](https://github.com/kubernetes/kubernetes/pull/99829), [@palnabarun](https://github.com/palnabarun)) +- The `DynamicFakeClient` now exposes its tracker via a `Tracker()` function. ([#100085](https://github.com/kubernetes/kubernetes/pull/100085), [@markusthoemmes](https://github.com/markusthoemmes)) +- The `VolumeSnapshotDataSource` feature gate that is GA since v1.20 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#101531](https://github.com/kubernetes/kubernetes/pull/101531), [@ialidzhikov](https://github.com/ialidzhikov)) [SIG Storage] +- The deprecated `CRIContainerLogRotation` feature-gate has been removed, since the `CRIContainerLogRotatio`n feature graduated to GA in 1.21 and was unconditionally enabled. ([#101578](https://github.com/kubernetes/kubernetes/pull/101578), [@carlory](https://github.com/carlory)) +- The deprecated `RootCAConfigMap` feature-gate has been removed, since the `RootCAConfigMap` feature graduated to GA in 1.21 and is unconditionally enabled. ([#101579](https://github.com/kubernetes/kubernetes/pull/101579), [@carlory](https://github.com/carlory)) +- The deprecated `runAsGroup` feature-gate has been removed, since the `runAsGroup` feature graduated to GA in 1.21. ([#101581](https://github.com/kubernetes/kubernetes/pull/101581), [@carlory](https://github.com/carlory)) +- The etcd client has been updated to 3.5.0; `github.com/golang/protobuf`, `google.golang.org/protobuf`, and `google.golang.org/grpc` have been updated to current versions. ([#100488](https://github.com/kubernetes/kubernetes/pull/100488), [@liggitt](https://github.com/liggitt)) +- Update Azure Go SDK to v55.0.0. ([#102441](https://github.com/kubernetes/kubernetes/pull/102441), [@feiskyer](https://github.com/feiskyer)) +- Update Azure Go SDK version to v53.1.0 ([#101357](https://github.com/kubernetes/kubernetes/pull/101357), [@feiskyer](https://github.com/feiskyer)) [SIG API Machinery, CLI, Cloud Provider, Cluster Lifecycle and Instrumentation] +- Update CNI plugins to v0.9.1. ([#102328](https://github.com/kubernetes/kubernetes/pull/102328), [@lentzi90](https://github.com/lentzi90)) +- Update Calico to v3.19.1. ([#102386](https://github.com/kubernetes/kubernetes/pull/102386), [@JornShen](https://github.com/JornShen)) +- Update cri-tools dependency to `v1.21.0`. ([#100956](https://github.com/kubernetes/kubernetes/pull/100956), [@saschagrunert](https://github.com/saschagrunert)) +- Update dep `google/gnostic` and `google/go-cmp` to v0.5.5 and updating transitive dependencies `protobuf`. ([#102783](https://github.com/kubernetes/kubernetes/pull/102783), [@mcbenjemaa](https://github.com/mcbenjemaa)) +- Update golang.org/x/net to v0.0.0-20210520170846-37e1c6afe023 ([#103176](https://github.com/kubernetes/kubernetes/pull/103176), [@CaoDonghui123](https://github.com/CaoDonghui123)) [SIG API Machinery, Auth, CLI, Cloud Provider, Cluster Lifecycle, Node and Storage] +- Updated command descriptions and examples for grammar and punctuation consistency. ([#103524](https://github.com/kubernetes/kubernetes/pull/103524), [@bergerhoffer](https://github.com/bergerhoffer)) [SIG Auth and CLI] +- Updated pause image to version 3.5, which now runs per default as pseudo user and group `65535:65535`. This does not have any effect on remote container runtimes like CRI-O and containerd, which setup the pod sandbox user and group on their own. ([#100292](https://github.com/kubernetes/kubernetes/pull/100292), [@saschagrunert](https://github.com/saschagrunert)) +- Upgrade functionality of `kubectl kustomize` as described at [kustomize/v4.1.3](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.1.3). ([#102193](https://github.com/kubernetes/kubernetes/pull/102193), [@gautierdelorme](https://github.com/gautierdelorme)) + +## Dependencies + +### Added +- github.com/antihax/optional: [v1.0.0](https://github.com/antihax/optional/tree/v1.0.0) +- github.com/benbjohnson/clock: [v1.0.3](https://github.com/benbjohnson/clock/tree/v1.0.3) +- github.com/certifi/gocertifi: [2c3bb06](https://github.com/certifi/gocertifi/tree/2c3bb06) +- github.com/checkpoint-restore/go-criu/v5: [v5.0.0](https://github.com/checkpoint-restore/go-criu/v5/tree/v5.0.0) +- github.com/cncf/udpa/go: [5459f2c](https://github.com/cncf/udpa/go/tree/5459f2c) +- github.com/cockroachdb/errors: [v1.2.4](https://github.com/cockroachdb/errors/tree/v1.2.4) +- github.com/cockroachdb/logtags: [eb05cc2](https://github.com/cockroachdb/logtags/tree/eb05cc2) +- github.com/coredns/caddy: [v1.1.0](https://github.com/coredns/caddy/tree/v1.1.0) +- github.com/felixge/httpsnoop: [v1.0.1](https://github.com/felixge/httpsnoop/tree/v1.0.1) +- github.com/frankban/quicktest: [v1.11.3](https://github.com/frankban/quicktest/tree/v1.11.3) +- github.com/getsentry/raven-go: [v0.2.0](https://github.com/getsentry/raven-go/tree/v0.2.0) +- github.com/go-kit/log: [v0.1.0](https://github.com/go-kit/log/tree/v0.1.0) +- github.com/gofrs/uuid: [v4.0.0+incompatible](https://github.com/gofrs/uuid/tree/v4.0.0) +- github.com/josharian/intern: [v1.0.0](https://github.com/josharian/intern/tree/v1.0.0) +- github.com/jpillora/backoff: [v1.0.0](https://github.com/jpillora/backoff/tree/v1.0.0) +- github.com/nxadm/tail: [v1.4.4](https://github.com/nxadm/tail/tree/v1.4.4) +- github.com/opentracing/opentracing-go: [v1.1.0](https://github.com/opentracing/opentracing-go/tree/v1.1.0) +- github.com/robfig/cron/v3: [v3.0.1](https://github.com/robfig/cron/v3/tree/v3.0.1) +- github.com/stoewer/go-strcase: [v1.2.0](https://github.com/stoewer/go-strcase/tree/v1.2.0) +- go.etcd.io/etcd/api/v3: v3.5.0 +- go.etcd.io/etcd/client/pkg/v3: v3.5.0 +- go.etcd.io/etcd/client/v2: v2.305.0 +- go.etcd.io/etcd/client/v3: v3.5.0 +- go.etcd.io/etcd/pkg/v3: v3.5.0 +- go.etcd.io/etcd/raft/v3: v3.5.0 +- go.etcd.io/etcd/server/v3: v3.5.0 +- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.20.0 +- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp: v0.20.0 +- go.opentelemetry.io/contrib: v0.20.0 +- go.opentelemetry.io/otel/exporters/otlp: v0.20.0 +- go.opentelemetry.io/otel/metric: v0.20.0 +- go.opentelemetry.io/otel/oteltest: v0.20.0 +- go.opentelemetry.io/otel/sdk/export/metric: v0.20.0 +- go.opentelemetry.io/otel/sdk/metric: v0.20.0 +- go.opentelemetry.io/otel/sdk: v0.20.0 +- go.opentelemetry.io/otel/trace: v0.20.0 +- go.opentelemetry.io/otel: v0.20.0 +- go.opentelemetry.io/proto/otlp: v0.7.0 +- go.uber.org/goleak: v1.1.10 + +### Changed +- github.com/Azure/azure-sdk-for-go: [v43.0.0+incompatible → v55.0.0+incompatible](https://github.com/Azure/azure-sdk-for-go/compare/v43.0.0...v55.0.0) +- github.com/Azure/go-ansiterm: [d6e3b33 → d185dfc](https://github.com/Azure/go-ansiterm/compare/d6e3b33...d185dfc) +- github.com/Azure/go-autorest/autorest/adal: [v0.9.5 → v0.9.13](https://github.com/Azure/go-autorest/autorest/adal/compare/v0.9.5...v0.9.13) +- github.com/Azure/go-autorest/autorest/to: [v0.2.0 → v0.4.0](https://github.com/Azure/go-autorest/autorest/to/compare/v0.2.0...v0.4.0) +- github.com/Azure/go-autorest/autorest: [v0.11.12 → v0.11.18](https://github.com/Azure/go-autorest/autorest/compare/v0.11.12...v0.11.18) +- github.com/Azure/go-autorest/logger: [v0.2.0 → v0.2.1](https://github.com/Azure/go-autorest/logger/compare/v0.2.0...v0.2.1) +- github.com/alecthomas/units: [c3de453 → f65c72e](https://github.com/alecthomas/units/compare/c3de453...f65c72e) +- github.com/auth0/go-jwt-middleware: [5493cab → v1.0.1](https://github.com/auth0/go-jwt-middleware/compare/5493cab...v1.0.1) +- github.com/aws/aws-sdk-go: [v1.35.24 → v1.38.49](https://github.com/aws/aws-sdk-go/compare/v1.35.24...v1.38.49) +- github.com/cilium/ebpf: [v0.2.0 → v0.5.0](https://github.com/cilium/ebpf/compare/v0.2.0...v0.5.0) +- github.com/cockroachdb/datadriven: [80d97fb → bf6692d](https://github.com/cockroachdb/datadriven/compare/80d97fb...bf6692d) +- github.com/container-storage-interface/spec: [v1.3.0 → v1.5.0](https://github.com/container-storage-interface/spec/compare/v1.3.0...v1.5.0) +- github.com/containerd/console: [v1.0.1 → v1.0.2](https://github.com/containerd/console/compare/v1.0.1...v1.0.2) +- github.com/containernetworking/cni: [v0.8.0 → v0.8.1](https://github.com/containernetworking/cni/compare/v0.8.0...v0.8.1) +- github.com/coredns/corefile-migration: [v1.0.11 → v1.0.12](https://github.com/coredns/corefile-migration/compare/v1.0.11...v1.0.12) +- github.com/coreos/go-systemd/v22: [v22.1.0 → v22.3.2](https://github.com/coreos/go-systemd/v22/compare/v22.1.0...v22.3.2) +- github.com/envoyproxy/go-control-plane: [5f8ba28 → 668b12f](https://github.com/envoyproxy/go-control-plane/compare/5f8ba28...668b12f) +- github.com/evanphx/json-patch: [v4.9.0+incompatible → v4.11.0+incompatible](https://github.com/evanphx/json-patch/compare/v4.9.0...v4.11.0) +- github.com/form3tech-oss/jwt-go: [v3.2.2+incompatible → v3.2.3+incompatible](https://github.com/form3tech-oss/jwt-go/compare/v3.2.2...v3.2.3) +- github.com/go-logfmt/logfmt: [v0.4.0 → v0.5.0](https://github.com/go-logfmt/logfmt/compare/v0.4.0...v0.5.0) +- github.com/go-openapi/jsonpointer: [v0.19.3 → v0.19.5](https://github.com/go-openapi/jsonpointer/compare/v0.19.3...v0.19.5) +- github.com/go-openapi/jsonreference: [v0.19.3 → v0.19.5](https://github.com/go-openapi/jsonreference/compare/v0.19.3...v0.19.5) +- github.com/go-openapi/swag: [v0.19.5 → v0.19.14](https://github.com/go-openapi/swag/compare/v0.19.5...v0.19.14) +- github.com/godbus/dbus/v5: [v5.0.3 → v5.0.4](https://github.com/godbus/dbus/v5/compare/v5.0.3...v5.0.4) +- github.com/golang/groupcache: [8c9f03a → 41bb18b](https://github.com/golang/groupcache/compare/8c9f03a...41bb18b) +- github.com/golang/protobuf: [v1.4.3 → v1.5.2](https://github.com/golang/protobuf/compare/v1.4.3...v1.5.2) +- github.com/google/btree: [v1.0.0 → v1.0.1](https://github.com/google/btree/compare/v1.0.0...v1.0.1) +- github.com/google/cadvisor: [v0.39.0 → v0.39.2](https://github.com/google/cadvisor/compare/v0.39.0...v0.39.2) +- github.com/google/go-cmp: [v0.5.2 → v0.5.5](https://github.com/google/go-cmp/compare/v0.5.2...v0.5.5) +- github.com/googleapis/gnostic: [v0.4.1 → v0.5.5](https://github.com/googleapis/gnostic/compare/v0.4.1...v0.5.5) +- github.com/gopherjs/gopherjs: [0766667 → fce0ec3](https://github.com/gopherjs/gopherjs/compare/0766667...fce0ec3) +- github.com/grpc-ecosystem/go-grpc-middleware: [f849b54 → v1.3.0](https://github.com/grpc-ecosystem/go-grpc-middleware/compare/f849b54...v1.3.0) +- github.com/grpc-ecosystem/grpc-gateway: [v1.9.5 → v1.16.0](https://github.com/grpc-ecosystem/grpc-gateway/compare/v1.9.5...v1.16.0) +- github.com/heketi/heketi: [v10.2.0+incompatible → v10.3.0+incompatible](https://github.com/heketi/heketi/compare/v10.2.0...v10.3.0) +- github.com/jonboulle/clockwork: [v0.1.0 → v0.2.2](https://github.com/jonboulle/clockwork/compare/v0.1.0...v0.2.2) +- github.com/json-iterator/go: [v1.1.10 → v1.1.11](https://github.com/json-iterator/go/compare/v1.1.10...v1.1.11) +- github.com/julienschmidt/httprouter: [v1.2.0 → v1.3.0](https://github.com/julienschmidt/httprouter/compare/v1.2.0...v1.3.0) +- github.com/kr/pretty: [v0.2.0 → v0.2.1](https://github.com/kr/pretty/compare/v0.2.0...v0.2.1) +- github.com/mailru/easyjson: [v0.7.0 → v0.7.6](https://github.com/mailru/easyjson/compare/v0.7.0...v0.7.6) +- github.com/mattn/go-isatty: [v0.0.4 → v0.0.3](https://github.com/mattn/go-isatty/compare/v0.0.4...v0.0.3) +- github.com/miekg/dns: [v1.1.35 → v1.0.14](https://github.com/miekg/dns/compare/v1.1.35...v1.0.14) +- github.com/moby/sys/mountinfo: [v0.4.0 → v0.4.1](https://github.com/moby/sys/mountinfo/compare/v0.4.0...v0.4.1) +- github.com/moby/term: [df9cb8a → 9d4ed18](https://github.com/moby/term/compare/df9cb8a...9d4ed18) +- github.com/mwitkow/go-conntrack: [cc309e4 → 2f06839](https://github.com/mwitkow/go-conntrack/compare/cc309e4...2f06839) +- github.com/onsi/ginkgo: [v1.11.0 → v1.14.0](https://github.com/onsi/ginkgo/compare/v1.11.0...v1.14.0) +- github.com/onsi/gomega: [v1.7.0 → v1.10.1](https://github.com/onsi/gomega/compare/v1.7.0...v1.10.1) +- github.com/opencontainers/runc: [v1.0.0-rc93 → v1.0.0-rc95](https://github.com/opencontainers/runc/compare/v1.0.0-rc93...v1.0.0-rc95) +- github.com/opencontainers/runtime-spec: [e6143ca → 1c3f411](https://github.com/opencontainers/runtime-spec/compare/e6143ca...1c3f411) +- github.com/prometheus/client_golang: [v1.7.1 → v1.11.0](https://github.com/prometheus/client_golang/compare/v1.7.1...v1.11.0) +- github.com/prometheus/common: [v0.10.0 → v0.26.0](https://github.com/prometheus/common/compare/v0.10.0...v0.26.0) +- github.com/prometheus/procfs: [v0.2.0 → v0.6.0](https://github.com/prometheus/procfs/compare/v0.2.0...v0.6.0) +- github.com/rogpeppe/fastuuid: [6724a57 → v1.2.0](https://github.com/rogpeppe/fastuuid/compare/6724a57...v1.2.0) +- github.com/smartystreets/assertions: [b2de0cb → v1.1.0](https://github.com/smartystreets/assertions/compare/b2de0cb...v1.1.0) +- github.com/soheilhy/cmux: [v0.1.4 → v0.1.5](https://github.com/soheilhy/cmux/compare/v0.1.4...v0.1.5) +- github.com/spf13/cobra: [v1.1.1 → v1.1.3](https://github.com/spf13/cobra/compare/v1.1.1...v1.1.3) +- github.com/spf13/jwalterweatherman: [v1.1.0 → v1.0.0](https://github.com/spf13/jwalterweatherman/compare/v1.1.0...v1.0.0) +- github.com/stretchr/testify: [v1.6.1 → v1.7.0](https://github.com/stretchr/testify/compare/v1.6.1...v1.7.0) +- github.com/tmc/grpc-websocket-proxy: [0ad062e → e5319fd](https://github.com/tmc/grpc-websocket-proxy/compare/0ad062e...e5319fd) +- github.com/yuin/goldmark: [v1.2.1 → v1.3.5](https://github.com/yuin/goldmark/compare/v1.2.1...v1.3.5) +- go.etcd.io/bbolt: v1.3.5 → v1.3.6 +- go.uber.org/atomic: v1.4.0 → v1.7.0 +- go.uber.org/multierr: v1.1.0 → v1.6.0 +- go.uber.org/zap: v1.10.0 → v1.17.0 +- golang.org/x/lint: 738671d → 6edffad +- golang.org/x/mod: ce943fd → v0.4.2 +- golang.org/x/net: 3d97a24 → 37e1c6a +- golang.org/x/sync: 67f06af → 036812b +- golang.org/x/sys: a50acf3 → 59db8d7 +- golang.org/x/text: v0.3.4 → v0.3.6 +- golang.org/x/tools: v0.1.0 → v0.1.2 +- google.golang.org/genproto: 8816d57 → f16073e +- google.golang.org/grpc: v1.27.1 → v1.38.0 +- google.golang.org/protobuf: v1.25.0 → v1.26.0 +- gopkg.in/yaml.v3: 9f266ea → 496545a +- k8s.io/klog/v2: v2.8.0 → v2.9.0 +- k8s.io/kube-openapi: 591a79e → 9528897 +- k8s.io/system-validators: v1.4.0 → v1.5.0 +- k8s.io/utils: 67b214c → 4b05e18 +- sigs.k8s.io/apiserver-network-proxy/konnectivity-client: v0.0.15 → v0.0.21 +- sigs.k8s.io/kustomize/api: v0.8.5 → v0.8.11 +- sigs.k8s.io/kustomize/cmd/config: v0.9.7 → v0.9.13 +- sigs.k8s.io/kustomize/kustomize/v4: v4.0.5 → v4.2.0 +- sigs.k8s.io/kustomize/kyaml: v0.10.15 → v0.11.0 +- sigs.k8s.io/structured-merge-diff/v4: v4.1.0 → v4.1.2 + +### Removed +- github.com/agnivade/levenshtein: [v1.0.1](https://github.com/agnivade/levenshtein/tree/v1.0.1) +- github.com/alecthomas/template: [fb15b89](https://github.com/alecthomas/template/tree/fb15b89) +- github.com/andreyvit/diff: [c7f18ee](https://github.com/andreyvit/diff/tree/c7f18ee) +- github.com/bifurcation/mint: [93c51c6](https://github.com/bifurcation/mint/tree/93c51c6) +- github.com/caddyserver/caddy: [v1.0.3](https://github.com/caddyserver/caddy/tree/v1.0.3) +- github.com/cenkalti/backoff: [v2.1.1+incompatible](https://github.com/cenkalti/backoff/tree/v2.1.1) +- github.com/checkpoint-restore/go-criu/v4: [v4.1.0](https://github.com/checkpoint-restore/go-criu/v4/tree/v4.1.0) +- github.com/cheekybits/genny: [9127e81](https://github.com/cheekybits/genny/tree/9127e81) +- github.com/go-acme/lego: [v2.5.0+incompatible](https://github.com/go-acme/lego/tree/v2.5.0) +- github.com/go-bindata/go-bindata: [v3.1.1+incompatible](https://github.com/go-bindata/go-bindata/tree/v3.1.1) +- github.com/go-openapi/analysis: [v0.19.5](https://github.com/go-openapi/analysis/tree/v0.19.5) +- github.com/go-openapi/errors: [v0.19.2](https://github.com/go-openapi/errors/tree/v0.19.2) +- github.com/go-openapi/loads: [v0.19.4](https://github.com/go-openapi/loads/tree/v0.19.4) +- github.com/go-openapi/runtime: [v0.19.4](https://github.com/go-openapi/runtime/tree/v0.19.4) +- github.com/go-openapi/spec: [v0.19.5](https://github.com/go-openapi/spec/tree/v0.19.5) +- github.com/go-openapi/strfmt: [v0.19.5](https://github.com/go-openapi/strfmt/tree/v0.19.5) +- github.com/go-openapi/validate: [v0.19.8](https://github.com/go-openapi/validate/tree/v0.19.8) +- github.com/gobuffalo/here: [v0.6.0](https://github.com/gobuffalo/here/tree/v0.6.0) +- github.com/hpcloud/tail: [v1.0.0](https://github.com/hpcloud/tail/tree/v1.0.0) +- github.com/jimstudt/http-authentication: [3eca13d](https://github.com/jimstudt/http-authentication/tree/3eca13d) +- github.com/klauspost/cpuid: [v1.2.0](https://github.com/klauspost/cpuid/tree/v1.2.0) +- github.com/kr/logfmt: [b84e30a](https://github.com/kr/logfmt/tree/b84e30a) +- github.com/kylelemons/godebug: [d65d576](https://github.com/kylelemons/godebug/tree/d65d576) +- github.com/lucas-clemente/aes12: [cd47fb3](https://github.com/lucas-clemente/aes12/tree/cd47fb3) +- github.com/lucas-clemente/quic-clients: [v0.1.0](https://github.com/lucas-clemente/quic-clients/tree/v0.1.0) +- github.com/lucas-clemente/quic-go-certificates: [d2f8652](https://github.com/lucas-clemente/quic-go-certificates/tree/d2f8652) +- github.com/lucas-clemente/quic-go: [v0.10.2](https://github.com/lucas-clemente/quic-go/tree/v0.10.2) +- github.com/markbates/pkger: [v0.17.1](https://github.com/markbates/pkger/tree/v0.17.1) +- github.com/marten-seemann/qtls: [v0.2.3](https://github.com/marten-seemann/qtls/tree/v0.2.3) +- github.com/mholt/certmagic: [6a42ef9](https://github.com/mholt/certmagic/tree/6a42ef9) +- github.com/naoina/go-stringutil: [v0.1.0](https://github.com/naoina/go-stringutil/tree/v0.1.0) +- github.com/naoina/toml: [v0.1.1](https://github.com/naoina/toml/tree/v0.1.1) +- github.com/robfig/cron: [v1.1.0](https://github.com/robfig/cron/tree/v1.1.0) +- github.com/satori/go.uuid: [v1.2.0](https://github.com/satori/go.uuid/tree/v1.2.0) +- github.com/thecodeteam/goscaleio: [v0.1.0](https://github.com/thecodeteam/goscaleio/tree/v0.1.0) +- github.com/tidwall/pretty: [v1.0.0](https://github.com/tidwall/pretty/tree/v1.0.0) +- github.com/vektah/gqlparser: [v1.1.2](https://github.com/vektah/gqlparser/tree/v1.1.2) +- go.etcd.io/etcd: dd1b699 +- go.mongodb.org/mongo-driver: v1.1.2 +- gopkg.in/cheggaaa/pb.v1: v1.0.25 +- gopkg.in/fsnotify.v1: v1.4.7 +- gopkg.in/mcuadros/go-syslog.v2: v2.2.1 +- gopkg.in/resty.v1: v1.12.0 +- k8s.io/heapster: v1.2.0-beta.1 diff --git a/releases/release-1.22/release-notes/sessions/maps-1621875902.json b/releases/release-1.22/release-notes/sessions/maps-1621875902.json index 2af9f608828..da56d833c04 100644 --- a/releases/release-1.22/release-notes/sessions/maps-1621875902.json +++ b/releases/release-1.22/release-notes/sessions/maps-1621875902.json @@ -1,287 +1,287 @@ -{ - "mail": "61474540+Damans227@users.noreply.github.com", - "name": "Damans227", - "date": 1621875902, - "prs": [ - { - "nr": 102108, - "hash": "b8a6a4222a4823a2a80e7b06b7822fbb06ab9305" - }, - { - "nr": 101537, - "hash": "9dbc266c9af97c57cfba119af2670e175acdf349" - }, - { - "nr": 102030, - "hash": "978423f70faa25b4aebd6756e555f134e18c882c" - }, - { - "nr": 101547, - "hash": "b51a719c67f1fa03aca238ba6314272f8472a033" - }, - { - "nr": 100568, - "hash": "ad24e3503cd066451d211c92f85668eadc163c77" - }, - { - "nr": 100262, - "hash": "2a5f3c467312569a6a91617fbb489c60390e24aa" - }, - { - "nr": 101950, - "hash": "b774ea2ca2c182d9c1007170594f4e3954a855e4" - }, - { - "nr": 96084, - "hash": "6fb752365a72b7afa62f13bdb417963cc5a4bcf5" - }, - { - "nr": 101187, - "hash": "4ec32a96de13ce76d39050d5e137ecb13759429d" - }, - { - "nr": 101005, - "hash": "f57f2515df9eb362991c2b21d84f0ffe61da554d" - }, - { - "nr": 100731, - "hash": "4541dc2aa96d6e5cdfc848cff76a67c1d5ca1577" - }, - { - "nr": 101752, - "hash": "51a0fa20dac62d3adf91fb63f1669065b39a4a7d" - }, - { - "nr": 101523, - "hash": "a9ff8196de05d73577e531218af6a84c1e0ae2a4" - }, - { - "nr": 102121, - "hash": "5fd142389e8e610913fda50f26edcdfa09448c70" - }, - { - "nr": 100234, - "hash": "4182817916f169f6892ca7a26c03fafba7c80a8e" - }, - { - "nr": 101652, - "hash": "dffd4c31851f6a24d880b0576b8060193d783aeb" - }, - { - "nr": 101669, - "hash": "2c1f95208eb4e7f92dbe6a2dd130e206b9981eea" - }, - { - "nr": 101737, - "hash": "d72d540813438da5752ef1d7a864afde11771d44" - }, - { - "nr": 102071, - "hash": "ad692e596e9b73aebd8c652c2832bddd84cce795" - }, - { - "nr": 101712, - "hash": "e1785b6ee805657689a8fd28510ad2017fa23b53" - }, - { - "nr": 100690, - "hash": "f5ee2b4929be0210b635d94cefc46ee80fcd69ff" - }, - { - "nr": 101916, - "hash": "0bbda1b6691cfb72c18c320ca26a73de39819969" - }, - { - "nr": 101739, - "hash": "af9967ee04cb0e89a7ef77d07b81410ae3b1bc9c" - }, - { - "nr": 100940, - "hash": "792cd36cb7d51efa5d507eb97fb5afc59dff5e2f" - }, - { - "nr": 100754, - "hash": "85d2ae62a405f043c3090e838b42531dd829e33e" - }, - { - "nr": 100565, - "hash": "54e57fc5976f7de53057ff04fe4b6540e62dcc3c" - }, - { - "nr": 101688, - "hash": "b32c1e3208e46b01ea0e11f2c3ed4b75f6ea035b" - }, - { - "nr": 101496, - "hash": "35452bd75429ce7312cf4342c3e4eb11dfbdccb3" - }, - { - "nr": 101539, - "hash": "6c0403313262f88eb16feed10d713d588783e7ab" - }, - { - "nr": 101292, - "hash": "8c41ffd4b60eff2a72225ac5b2e59867918b564e" - }, - { - "nr": 97796, - "hash": "ae07d7b62171aa07646aaf092bb1c5fc24578978" - }, - { - "nr": 101977, - "hash": "a7b3ec904ce6fc5ddd677a5fb53e80dafe8f7bae" - }, - { - "nr": 101938, - "hash": "b445e7042150dac42f2ab5498dadd0ac652e6e8b" - }, - { - "nr": 101857, - "hash": "5b46c8f041c4dc4d1490f2a1a6f5cbdea147d882" - }, - { - "nr": 101542, - "hash": "0b626b4f5138c59a0008460922484b62c2ba2cb1" - }, - { - "nr": 100612, - "hash": "974ecbcdaae9ba8c8367aad80aa1c756261f9629" - }, - { - "nr": 101589, - "hash": "8be56e17775ac95e66363ebfa287f8390120b4cf" - }, - { - "nr": 101685, - "hash": "8a02537e1d0ba787c26146943074581d3c559c9b" - }, - { - "nr": 101025, - "hash": "816d7798b3aa0ed86d26ee2da2cf0da2a9258444" - }, - { - "nr": 101780, - "hash": "57f873f67420cfd75799dd86a73aee02be0feba6" - }, - { - "nr": 101809, - "hash": "71f5ffb9beb6e08b9006620c9a8f7c938dfe7ff2" - }, - { - "nr": 101067, - "hash": "cbca6666d099426f9a43857d37f4f6ec99e1ef5d" - }, - { - "nr": 102005, - "hash": "e4dd2cf0ba0cd417ad1282da705dc3103e10ed76" - }, - { - "nr": 102105, - "hash": "21335da462922c3f6fed6cff1dbda52be27d95b6" - }, - { - "nr": 96216, - "hash": "031a5e249b88f103dc51f501024dfbbf86c5771a" - }, - { - "nr": 96702, - "hash": "bf754db2bef15f8ca5abeb5084a9dbed4daba87d" - }, - { - "nr": 101747, - "hash": "04f0fe844f85dbf54b2fcd45094dc51c716d2285" - }, - { - "nr": 98057, - "hash": "38af876f07f03981496842b59ad67a4b5238da5c" - }, - { - "nr": 101966, - "hash": "e020645790fda6b1cf729015f52950a5a1658bb8" - }, - { - "nr": 101534, - "hash": "6e2582ac043c09d79631ba79433e236366ff2fa3" - }, - { - "nr": 101560, - "hash": "f035b68e99b690658c78227b4b0c003976eed9fc" - }, - { - "nr": 101869, - "hash": "44746d1d34160950b24cf8bcc1c48cc3709aa6bb" - }, - { - "nr": 101420, - "hash": "0107da33bc3561ca8b52bab9c3a08b417c3727e7" - }, - { - "nr": 101579, - "hash": "d6209721bde251c12d7e1d8e663600b19af71ccd" - }, - { - "nr": 101477, - "hash": "904489b296e177c53e8970b64e4227f25f74bc16" - }, - { - "nr": 101709, - "hash": "893f8b0709bb0f91e6f1a0fa53f68ca0e6dc3ca9" - }, - { - "nr": 101531, - "hash": "f20d39e469dd29b03b0f226b9c612241ed5c2cf4" - }, - { - "nr": 99576, - "hash": "1d58b0171639437a1973fbbc598f5a4457c916e3" - }, - { - "nr": 100948, - "hash": "0e2f75fbc17ab5b5f4bf19c08b77e9dd7fd3acb8" - }, - { - "nr": 95396, - "hash": "42a1ce850c33c8bbe9471506e035d09e832dec9d" - }, - { - "nr": 101592, - "hash": "432bd35e1cfe965b4f04086e9921b3974b14ab10" - }, - { - "nr": 101578, - "hash": "4460531dff79877413084ab3f92ef0515d4b4165" - }, - { - "nr": 101412, - "hash": "ea0d591cbe24da2658e8c3e7817d7c071d63148d" - }, - { - "nr": 102158, - "hash": "a52df7ac76f31850400bcbfb627a56b87de8a60f" - }, - { - "nr": 102159, - "hash": "47485702e4f12fb091214f6f3edd1449692c06da" - }, - { - "nr": 101915, - "hash": "ea12525c9de541d3b096be1ad8308d026373189a" - }, - { - "nr": 102083, - "hash": "c909cddc8d9d4bb161449aeada15509bac1ec553" - }, - { - "nr": 102093, - "hash": "883be024d3ed7afb292dacb8b4117c50e1e16edb" - }, - { - "nr": 101817, - "hash": "e4123495d82730c335c9e7922ec1df5a1c42a0c6" - }, - { - "nr": 101773, - "hash": "14c1a092085f9852359d004f0163057f7289a09a" - } - ] +{ + "mail": "61474540+Damans227@users.noreply.github.com", + "name": "Damans227", + "date": 1621875902, + "prs": [ + { + "nr": 102108, + "hash": "b8a6a4222a4823a2a80e7b06b7822fbb06ab9305" + }, + { + "nr": 101537, + "hash": "9dbc266c9af97c57cfba119af2670e175acdf349" + }, + { + "nr": 102030, + "hash": "978423f70faa25b4aebd6756e555f134e18c882c" + }, + { + "nr": 101547, + "hash": "b51a719c67f1fa03aca238ba6314272f8472a033" + }, + { + "nr": 100568, + "hash": "ad24e3503cd066451d211c92f85668eadc163c77" + }, + { + "nr": 100262, + "hash": "2a5f3c467312569a6a91617fbb489c60390e24aa" + }, + { + "nr": 101950, + "hash": "b774ea2ca2c182d9c1007170594f4e3954a855e4" + }, + { + "nr": 96084, + "hash": "6fb752365a72b7afa62f13bdb417963cc5a4bcf5" + }, + { + "nr": 101187, + "hash": "4ec32a96de13ce76d39050d5e137ecb13759429d" + }, + { + "nr": 101005, + "hash": "f57f2515df9eb362991c2b21d84f0ffe61da554d" + }, + { + "nr": 100731, + "hash": "4541dc2aa96d6e5cdfc848cff76a67c1d5ca1577" + }, + { + "nr": 101752, + "hash": "51a0fa20dac62d3adf91fb63f1669065b39a4a7d" + }, + { + "nr": 101523, + "hash": "a9ff8196de05d73577e531218af6a84c1e0ae2a4" + }, + { + "nr": 102121, + "hash": "5fd142389e8e610913fda50f26edcdfa09448c70" + }, + { + "nr": 100234, + "hash": "4182817916f169f6892ca7a26c03fafba7c80a8e" + }, + { + "nr": 101652, + "hash": "dffd4c31851f6a24d880b0576b8060193d783aeb" + }, + { + "nr": 101669, + "hash": "2c1f95208eb4e7f92dbe6a2dd130e206b9981eea" + }, + { + "nr": 101737, + "hash": "d72d540813438da5752ef1d7a864afde11771d44" + }, + { + "nr": 102071, + "hash": "ad692e596e9b73aebd8c652c2832bddd84cce795" + }, + { + "nr": 101712, + "hash": "e1785b6ee805657689a8fd28510ad2017fa23b53" + }, + { + "nr": 100690, + "hash": "f5ee2b4929be0210b635d94cefc46ee80fcd69ff" + }, + { + "nr": 101916, + "hash": "0bbda1b6691cfb72c18c320ca26a73de39819969" + }, + { + "nr": 101739, + "hash": "af9967ee04cb0e89a7ef77d07b81410ae3b1bc9c" + }, + { + "nr": 100940, + "hash": "792cd36cb7d51efa5d507eb97fb5afc59dff5e2f" + }, + { + "nr": 100754, + "hash": "85d2ae62a405f043c3090e838b42531dd829e33e" + }, + { + "nr": 100565, + "hash": "54e57fc5976f7de53057ff04fe4b6540e62dcc3c" + }, + { + "nr": 101688, + "hash": "b32c1e3208e46b01ea0e11f2c3ed4b75f6ea035b" + }, + { + "nr": 101496, + "hash": "35452bd75429ce7312cf4342c3e4eb11dfbdccb3" + }, + { + "nr": 101539, + "hash": "6c0403313262f88eb16feed10d713d588783e7ab" + }, + { + "nr": 101292, + "hash": "8c41ffd4b60eff2a72225ac5b2e59867918b564e" + }, + { + "nr": 97796, + "hash": "ae07d7b62171aa07646aaf092bb1c5fc24578978" + }, + { + "nr": 101977, + "hash": "a7b3ec904ce6fc5ddd677a5fb53e80dafe8f7bae" + }, + { + "nr": 101938, + "hash": "b445e7042150dac42f2ab5498dadd0ac652e6e8b" + }, + { + "nr": 101857, + "hash": "5b46c8f041c4dc4d1490f2a1a6f5cbdea147d882" + }, + { + "nr": 101542, + "hash": "0b626b4f5138c59a0008460922484b62c2ba2cb1" + }, + { + "nr": 100612, + "hash": "974ecbcdaae9ba8c8367aad80aa1c756261f9629" + }, + { + "nr": 101589, + "hash": "8be56e17775ac95e66363ebfa287f8390120b4cf" + }, + { + "nr": 101685, + "hash": "8a02537e1d0ba787c26146943074581d3c559c9b" + }, + { + "nr": 101025, + "hash": "816d7798b3aa0ed86d26ee2da2cf0da2a9258444" + }, + { + "nr": 101780, + "hash": "57f873f67420cfd75799dd86a73aee02be0feba6" + }, + { + "nr": 101809, + "hash": "71f5ffb9beb6e08b9006620c9a8f7c938dfe7ff2" + }, + { + "nr": 101067, + "hash": "cbca6666d099426f9a43857d37f4f6ec99e1ef5d" + }, + { + "nr": 102005, + "hash": "e4dd2cf0ba0cd417ad1282da705dc3103e10ed76" + }, + { + "nr": 102105, + "hash": "21335da462922c3f6fed6cff1dbda52be27d95b6" + }, + { + "nr": 96216, + "hash": "031a5e249b88f103dc51f501024dfbbf86c5771a" + }, + { + "nr": 96702, + "hash": "bf754db2bef15f8ca5abeb5084a9dbed4daba87d" + }, + { + "nr": 101747, + "hash": "04f0fe844f85dbf54b2fcd45094dc51c716d2285" + }, + { + "nr": 98057, + "hash": "38af876f07f03981496842b59ad67a4b5238da5c" + }, + { + "nr": 101966, + "hash": "e020645790fda6b1cf729015f52950a5a1658bb8" + }, + { + "nr": 101534, + "hash": "6e2582ac043c09d79631ba79433e236366ff2fa3" + }, + { + "nr": 101560, + "hash": "f035b68e99b690658c78227b4b0c003976eed9fc" + }, + { + "nr": 101869, + "hash": "44746d1d34160950b24cf8bcc1c48cc3709aa6bb" + }, + { + "nr": 101420, + "hash": "0107da33bc3561ca8b52bab9c3a08b417c3727e7" + }, + { + "nr": 101579, + "hash": "d6209721bde251c12d7e1d8e663600b19af71ccd" + }, + { + "nr": 101477, + "hash": "904489b296e177c53e8970b64e4227f25f74bc16" + }, + { + "nr": 101709, + "hash": "893f8b0709bb0f91e6f1a0fa53f68ca0e6dc3ca9" + }, + { + "nr": 101531, + "hash": "f20d39e469dd29b03b0f226b9c612241ed5c2cf4" + }, + { + "nr": 99576, + "hash": "1d58b0171639437a1973fbbc598f5a4457c916e3" + }, + { + "nr": 100948, + "hash": "0e2f75fbc17ab5b5f4bf19c08b77e9dd7fd3acb8" + }, + { + "nr": 95396, + "hash": "42a1ce850c33c8bbe9471506e035d09e832dec9d" + }, + { + "nr": 101592, + "hash": "432bd35e1cfe965b4f04086e9921b3974b14ab10" + }, + { + "nr": 101578, + "hash": "4460531dff79877413084ab3f92ef0515d4b4165" + }, + { + "nr": 101412, + "hash": "ea0d591cbe24da2658e8c3e7817d7c071d63148d" + }, + { + "nr": 102158, + "hash": "a52df7ac76f31850400bcbfb627a56b87de8a60f" + }, + { + "nr": 102159, + "hash": "47485702e4f12fb091214f6f3edd1449692c06da" + }, + { + "nr": 101915, + "hash": "ea12525c9de541d3b096be1ad8308d026373189a" + }, + { + "nr": 102083, + "hash": "c909cddc8d9d4bb161449aeada15509bac1ec553" + }, + { + "nr": 102093, + "hash": "883be024d3ed7afb292dacb8b4117c50e1e16edb" + }, + { + "nr": 101817, + "hash": "e4123495d82730c335c9e7922ec1df5a1c42a0c6" + }, + { + "nr": 101773, + "hash": "14c1a092085f9852359d004f0163057f7289a09a" + } + ] } \ No newline at end of file diff --git a/releases/release-1.22/release-notes/sessions/maps-1623430674.json b/releases/release-1.22/release-notes/sessions/maps-1623430674.json index e3a388e6a7b..2424a84300a 100644 --- a/releases/release-1.22/release-notes/sessions/maps-1623430674.json +++ b/releases/release-1.22/release-notes/sessions/maps-1623430674.json @@ -1,231 +1,231 @@ -{ - "mail": "cicih@google.com", - "name": "cici37", - "date": 1623430674, - "prs": [ - { - "nr": 102590, - "hash": "13b53ec7dc0e3366be378414d0994ca85ed10a1b" - }, - { - "nr": 102377, - "hash": "b835aea0bcd33dfe481329cb4390e97767062008" - }, - { - "nr": 99178, - "hash": "5c7b10c0b5ac38b2667783b170c65ffbd3608893" - }, - { - "nr": 102328, - "hash": "4201273fccf268543c81029071e8df6b0354de54" - }, - { - "nr": 101923, - "hash": "e40a89cbc4af3d69d000658649d878b08bff558c" - }, - { - "nr": 100292, - "hash": "e32be083665409ade48e91769a9532a73d38fae3" - }, - { - "nr": 92739, - "hash": "dbbc5209a9a55f2264d93512fbb3b3896619264a" - }, - { - "nr": 101647, - "hash": "2e3408490fca649a82c990115c4c9ba9f33096a5" - }, - { - "nr": 101587, - "hash": "3d2b24c1dc0d54a9d30b019affa52c2de86c0935" - }, - { - "nr": 90368, - "hash": "a796bd37be49dc48e5a5e7316628ed6712f4d328" - }, - { - "nr": 102039, - "hash": "02998efa3d6fc799da38a8cf4ea33fe1e0f6065f" - }, - { - "nr": 100939, - "hash": "eb4ec938c5bc8a903052c8d7511ab4a7637672f3" - }, - { - "nr": 99647, - "hash": "41ae1888e62249123bed026c93aa4bb19cb65ab0" - }, - { - "nr": 101862, - "hash": "fde59f848c3afefd6e07ec9d5e41748695caaabf" - }, - { - "nr": 102467, - "hash": "0ef9f36d66bf1dd98f8af5857c7eaeadfcdb4781" - }, - { - "nr": 98077, - "hash": "685549f93ffaacd9306723dfc7ba452a3ea61794" - }, - { - "nr": 102539, - "hash": "e3c161847e05d93104d7c895add97ef5b1b9a151" - }, - { - "nr": 101742, - "hash": "37efc617e3838144fd60bc8c8912dd5a8efc1e4d" - }, - { - "nr": 101272, - "hash": "9bb59dd1967460a1ffd287df8e9d620c026d846c" - }, - { - "nr": 101082, - "hash": "7a6c780ac9b033b6377a69513dcdfc200cff50fa" - }, - { - "nr": 100142, - "hash": "c5bcc23eb7394d324a659ca6dc67dbee9854198c" - }, - { - "nr": 102509, - "hash": "5677bd527b981319f2d83f205a9843c957f99636" - }, - { - "nr": 102323, - "hash": "5df2b1daec5a60c20b127cb011df865c5627761a" - }, - { - "nr": 102239, - "hash": "00a4a343c4743cd6e66acd7d739a1c9c4b1435bc" - }, - { - "nr": 102412, - "hash": "6c8fbc26b00afa2e3f82140aaa30f9d69d1732ed" - }, - { - "nr": 102067, - "hash": "c272e8d87f71a4f706d269c84b800eacabbe037a" - }, - { - "nr": 102297, - "hash": "a2a80b3ed6363aa0dd0638593ccc3ab2ca3d6fc6" - }, - { - "nr": 102201, - "hash": "89d464bde2abc756816752e916d87eb8c85e3bc0" - }, - { - "nr": 102498, - "hash": "7bb1dbe43d9c210e0f837f57774127c9591fff3b" - }, - { - "nr": 102529, - "hash": "91fa25c4136e42a19eb5fbd18f2d6464267aed65" - }, - { - "nr": 102461, - "hash": "adb209eac8251730de75d100d14942ea90f6aecf" - }, - { - "nr": 100651, - "hash": "d6ac4df326de55c44c4d2639b990cbdb1ad23ad3" - }, - { - "nr": 100608, - "hash": "18e4a6f9f2ff286943fd001e20545abd59af22e9" - }, - { - "nr": 102171, - "hash": "11abb0a3243bd4cb47864ad4fdea4dae2de71a80" - }, - { - "nr": 101394, - "hash": "b4c376d4dafd897fbe3f7c44346f1277190513a6" - }, - { - "nr": 102133, - "hash": "bb95b8dcc5a8b4df0f10b99b4ccd47098ad227ed" - }, - { - "nr": 102193, - "hash": "01f90ecce0c63803e36cf894e8eb83f14d6f6c3e" - }, - { - "nr": 102063, - "hash": "93695d7762366205908207ab906ed0fd5f27bc04" - }, - { - "nr": 101523, - "hash": "0ae3892565ce76c9eeca2b5252460979dcc4647e" - }, - { - "nr": 102059, - "hash": "276ed8a2ad0c1f7f0c2dde60b529dbc0c42dac27" - }, - { - "nr": 102489, - "hash": "14ec7979413b736475d79e90eedfcc24d521630c" - }, - { - "nr": 102176, - "hash": "48be1eb6f3a2c40b05288ce09a29d65853e11259" - }, - { - "nr": 102502, - "hash": "9e518b110f07e3764e5e5cbe1736344b2e59f941" - }, - { - "nr": 100136, - "hash": "e02c67d15716421f0d989ce25860bfb2349f5b8f" - }, - { - "nr": 101992, - "hash": "062f78c7d6d493a960678ec2015469214826de13" - }, - { - "nr": 98350, - "hash": "43d6cc0cbc6ca8dee7a850845064fac192544810" - }, - { - "nr": 100435, - "hash": "93992889028a3ea25e34c33d6fd48b0ac74e6336" - }, - { - "nr": 102302, - "hash": "0c6d521e3cb330d951829a4cfa806972983e0738" - }, - { - "nr": 102620, - "hash": "0a45b3a1e2f836e0abcc7cfc4ed3a77e0d004290" - }, - { - "nr": 102363, - "hash": "3777904002022d4c5ac2da98caeeb29db90d5a47" - }, - { - "nr": 101510, - "hash": "9d12d6a957724e0dad644e13d8de082a49dacb0d" - }, - { - "nr": 102332, - "hash": "2ec27a73fc3ae91828907af58457bea08a43876f" - }, - { - "nr": 101187, - "hash": "c1644cd973a03116619e8722b53220b90cc6d380" - }, - { - "nr": 102516, - "hash": "c828f521d6b6434147a873af2a691e970fa2a69e" - }, - { - "nr": 100842, - "hash": "ed72eb0f9cf6aa3b8ec87384bfe400ee4a4cf0ad" - }, - { - "nr": 102147, - "hash": "47ca0a4cf5a848f5977ee2bc2de908adf04a859a" - } - ] +{ + "mail": "cicih@google.com", + "name": "cici37", + "date": 1623430674, + "prs": [ + { + "nr": 102590, + "hash": "13b53ec7dc0e3366be378414d0994ca85ed10a1b" + }, + { + "nr": 102377, + "hash": "b835aea0bcd33dfe481329cb4390e97767062008" + }, + { + "nr": 99178, + "hash": "5c7b10c0b5ac38b2667783b170c65ffbd3608893" + }, + { + "nr": 102328, + "hash": "4201273fccf268543c81029071e8df6b0354de54" + }, + { + "nr": 101923, + "hash": "e40a89cbc4af3d69d000658649d878b08bff558c" + }, + { + "nr": 100292, + "hash": "e32be083665409ade48e91769a9532a73d38fae3" + }, + { + "nr": 92739, + "hash": "dbbc5209a9a55f2264d93512fbb3b3896619264a" + }, + { + "nr": 101647, + "hash": "2e3408490fca649a82c990115c4c9ba9f33096a5" + }, + { + "nr": 101587, + "hash": "3d2b24c1dc0d54a9d30b019affa52c2de86c0935" + }, + { + "nr": 90368, + "hash": "a796bd37be49dc48e5a5e7316628ed6712f4d328" + }, + { + "nr": 102039, + "hash": "02998efa3d6fc799da38a8cf4ea33fe1e0f6065f" + }, + { + "nr": 100939, + "hash": "eb4ec938c5bc8a903052c8d7511ab4a7637672f3" + }, + { + "nr": 99647, + "hash": "41ae1888e62249123bed026c93aa4bb19cb65ab0" + }, + { + "nr": 101862, + "hash": "fde59f848c3afefd6e07ec9d5e41748695caaabf" + }, + { + "nr": 102467, + "hash": "0ef9f36d66bf1dd98f8af5857c7eaeadfcdb4781" + }, + { + "nr": 98077, + "hash": "685549f93ffaacd9306723dfc7ba452a3ea61794" + }, + { + "nr": 102539, + "hash": "e3c161847e05d93104d7c895add97ef5b1b9a151" + }, + { + "nr": 101742, + "hash": "37efc617e3838144fd60bc8c8912dd5a8efc1e4d" + }, + { + "nr": 101272, + "hash": "9bb59dd1967460a1ffd287df8e9d620c026d846c" + }, + { + "nr": 101082, + "hash": "7a6c780ac9b033b6377a69513dcdfc200cff50fa" + }, + { + "nr": 100142, + "hash": "c5bcc23eb7394d324a659ca6dc67dbee9854198c" + }, + { + "nr": 102509, + "hash": "5677bd527b981319f2d83f205a9843c957f99636" + }, + { + "nr": 102323, + "hash": "5df2b1daec5a60c20b127cb011df865c5627761a" + }, + { + "nr": 102239, + "hash": "00a4a343c4743cd6e66acd7d739a1c9c4b1435bc" + }, + { + "nr": 102412, + "hash": "6c8fbc26b00afa2e3f82140aaa30f9d69d1732ed" + }, + { + "nr": 102067, + "hash": "c272e8d87f71a4f706d269c84b800eacabbe037a" + }, + { + "nr": 102297, + "hash": "a2a80b3ed6363aa0dd0638593ccc3ab2ca3d6fc6" + }, + { + "nr": 102201, + "hash": "89d464bde2abc756816752e916d87eb8c85e3bc0" + }, + { + "nr": 102498, + "hash": "7bb1dbe43d9c210e0f837f57774127c9591fff3b" + }, + { + "nr": 102529, + "hash": "91fa25c4136e42a19eb5fbd18f2d6464267aed65" + }, + { + "nr": 102461, + "hash": "adb209eac8251730de75d100d14942ea90f6aecf" + }, + { + "nr": 100651, + "hash": "d6ac4df326de55c44c4d2639b990cbdb1ad23ad3" + }, + { + "nr": 100608, + "hash": "18e4a6f9f2ff286943fd001e20545abd59af22e9" + }, + { + "nr": 102171, + "hash": "11abb0a3243bd4cb47864ad4fdea4dae2de71a80" + }, + { + "nr": 101394, + "hash": "b4c376d4dafd897fbe3f7c44346f1277190513a6" + }, + { + "nr": 102133, + "hash": "bb95b8dcc5a8b4df0f10b99b4ccd47098ad227ed" + }, + { + "nr": 102193, + "hash": "01f90ecce0c63803e36cf894e8eb83f14d6f6c3e" + }, + { + "nr": 102063, + "hash": "93695d7762366205908207ab906ed0fd5f27bc04" + }, + { + "nr": 101523, + "hash": "0ae3892565ce76c9eeca2b5252460979dcc4647e" + }, + { + "nr": 102059, + "hash": "276ed8a2ad0c1f7f0c2dde60b529dbc0c42dac27" + }, + { + "nr": 102489, + "hash": "14ec7979413b736475d79e90eedfcc24d521630c" + }, + { + "nr": 102176, + "hash": "48be1eb6f3a2c40b05288ce09a29d65853e11259" + }, + { + "nr": 102502, + "hash": "9e518b110f07e3764e5e5cbe1736344b2e59f941" + }, + { + "nr": 100136, + "hash": "e02c67d15716421f0d989ce25860bfb2349f5b8f" + }, + { + "nr": 101992, + "hash": "062f78c7d6d493a960678ec2015469214826de13" + }, + { + "nr": 98350, + "hash": "43d6cc0cbc6ca8dee7a850845064fac192544810" + }, + { + "nr": 100435, + "hash": "93992889028a3ea25e34c33d6fd48b0ac74e6336" + }, + { + "nr": 102302, + "hash": "0c6d521e3cb330d951829a4cfa806972983e0738" + }, + { + "nr": 102620, + "hash": "0a45b3a1e2f836e0abcc7cfc4ed3a77e0d004290" + }, + { + "nr": 102363, + "hash": "3777904002022d4c5ac2da98caeeb29db90d5a47" + }, + { + "nr": 101510, + "hash": "9d12d6a957724e0dad644e13d8de082a49dacb0d" + }, + { + "nr": 102332, + "hash": "2ec27a73fc3ae91828907af58457bea08a43876f" + }, + { + "nr": 101187, + "hash": "c1644cd973a03116619e8722b53220b90cc6d380" + }, + { + "nr": 102516, + "hash": "c828f521d6b6434147a873af2a691e970fa2a69e" + }, + { + "nr": 100842, + "hash": "ed72eb0f9cf6aa3b8ec87384bfe400ee4a4cf0ad" + }, + { + "nr": 102147, + "hash": "47ca0a4cf5a848f5977ee2bc2de908adf04a859a" + } + ] } \ No newline at end of file diff --git a/releases/release-1.22/release-notes/sessions/maps-1625055206.json b/releases/release-1.22/release-notes/sessions/maps-1625055206.json index ec822181bc1..ed41a120cb8 100644 --- a/releases/release-1.22/release-notes/sessions/maps-1625055206.json +++ b/releases/release-1.22/release-notes/sessions/maps-1625055206.json @@ -1,175 +1,175 @@ -{ - "mail": "simran.thind@outlook.com", - "name": "simcard0000", - "date": 1625055206, - "prs": [ - { - "nr": 102683, - "hash": "4d406f4db8e5c37f188837552ef5dc311c8c748a" - }, - { - "nr": 100939, - "hash": "eb4ec938c5bc8a903052c8d7511ab4a7637672f3" - }, - { - "nr": 102083, - "hash": "c909cddc8d9d4bb161449aeada15509bac1ec553" - }, - { - "nr": 101915, - "hash": "ea12525c9de541d3b096be1ad8308d026373189a" - }, - { - "nr": 100784, - "hash": "3deb7bf106bf5013ffc698311d7758be5dff84e1" - }, - { - "nr": 102673, - "hash": "5b2da4a0c2c81419c779985752f378eff2b606ba" - }, - { - "nr": 100136, - "hash": "e02c67d15716421f0d989ce25860bfb2349f5b8f" - }, - { - "nr": 101857, - "hash": "5b46c8f041c4dc4d1490f2a1a6f5cbdea147d882" - }, - { - "nr": 96216, - "hash": "031a5e249b88f103dc51f501024dfbbf86c5771a" - }, - { - "nr": 101773, - "hash": "14c1a092085f9852359d004f0163057f7289a09a" - }, - { - "nr": 100350, - "hash": "71a2768027b6a24717955bae6b0ff6e12de68656" - }, - { - "nr": 100200, - "hash": "0267b0544ae992d287a9229adceb6c7118667f32" - }, - { - "nr": 100694, - "hash": "6f89905682df212f7d1264dfd56ef1f3491b0dcb" - }, - { - "nr": 102620, - "hash": "0a45b3a1e2f836e0abcc7cfc4ed3a77e0d004290" - }, - { - "nr": 101082, - "hash": "7a6c780ac9b033b6377a69513dcdfc200cff50fa" - }, - { - "nr": 100608, - "hash": "18e4a6f9f2ff286943fd001e20545abd59af22e9" - }, - { - "nr": 102105, - "hash": "21335da462922c3f6fed6cff1dbda52be27d95b6" - }, - { - "nr": 100612, - "hash": "974ecbcdaae9ba8c8367aad80aa1c756261f9629" - }, - { - "nr": 101120, - "hash": "0313ef8221125aa9e6e102bf0738fa1a2dbb6352" - }, - { - "nr": 100100, - "hash": "0337163f7fd1ecf21d587f7d7e96c505708df26c" - }, - { - "nr": 102825, - "hash": "f48832eda1e1a175bddcede27d5ed5228a3fb3cb" - }, - { - "nr": 100267, - "hash": "072bd753896c0b5c71c941b6ea9437a017021354" - }, - { - "nr": 99963, - "hash": "6da1284e36a8da521da1982a0d1f4898a51507cc" - }, - { - "nr": 102414, - "hash": "f2019b80d9c708a20eba679b6fb390f3a151382a" - }, - { - "nr": 102965, - "hash": "bcba9b549a75869d149a39ee4acb99e1cc3981c2" - }, - { - "nr": 100644, - "hash": "94ed91958953f700ee37e9bbe7c663a32b06abf6" - }, - { - "nr": 101752, - "hash": "51a0fa20dac62d3adf91fb63f1669065b39a4a7d" - }, - { - "nr": 96959, - "hash": "1e97a0b01fbdf2d787e6016bd81f0d0db722b479" - }, - { - "nr": 102892, - "hash": "160b73ce91415d2dbcf93bc060618442c16a62db" - }, - { - "nr": 102935, - "hash": "54aa8b0bcfd97b790caef8dde1881db1f786270b" - }, - { - "nr": 102461, - "hash": "adb209eac8251730de75d100d14942ea90f6aecf" - }, - { - "nr": 101187, - "hash": "c1644cd973a03116619e8722b53220b90cc6d380" - }, - { - "nr": 99915, - "hash": "90b66aefc4f9a5cbcaaf96512cabd04509e26d4e" - }, - { - "nr": 102297, - "hash": "a2a80b3ed6363aa0dd0638593ccc3ab2ca3d6fc6" - }, - { - "nr": 101862, - "hash": "fde59f848c3afefd6e07ec9d5e41748695caaabf" - }, - { - "nr": 100690, - "hash": "f5ee2b4929be0210b635d94cefc46ee80fcd69ff" - }, - { - "nr": 100907, - "hash": "c67b96dac053a0018f5cb30698088327018535ed" - }, - { - "nr": 100085, - "hash": "746a815234b0fd324f26cf4a637b2dede90aaf0e" - }, - { - "nr": 102443, - "hash": "0015b6e1c2c82f13fe51bde68dabfb02db1ae9e2" - }, - { - "nr": 101316, - "hash": "9f0e6e06b35c0ebe2af3b837f5edd1a48d75a522" - }, - { - "nr": 100651, - "hash": "d6ac4df326de55c44c4d2639b990cbdb1ad23ad3" - }, - { - "nr": 101531, - "hash": "f20d39e469dd29b03b0f226b9c612241ed5c2cf4" - } - ] +{ + "mail": "simran.thind@outlook.com", + "name": "simcard0000", + "date": 1625055206, + "prs": [ + { + "nr": 102683, + "hash": "4d406f4db8e5c37f188837552ef5dc311c8c748a" + }, + { + "nr": 100939, + "hash": "eb4ec938c5bc8a903052c8d7511ab4a7637672f3" + }, + { + "nr": 102083, + "hash": "c909cddc8d9d4bb161449aeada15509bac1ec553" + }, + { + "nr": 101915, + "hash": "ea12525c9de541d3b096be1ad8308d026373189a" + }, + { + "nr": 100784, + "hash": "3deb7bf106bf5013ffc698311d7758be5dff84e1" + }, + { + "nr": 102673, + "hash": "5b2da4a0c2c81419c779985752f378eff2b606ba" + }, + { + "nr": 100136, + "hash": "e02c67d15716421f0d989ce25860bfb2349f5b8f" + }, + { + "nr": 101857, + "hash": "5b46c8f041c4dc4d1490f2a1a6f5cbdea147d882" + }, + { + "nr": 96216, + "hash": "031a5e249b88f103dc51f501024dfbbf86c5771a" + }, + { + "nr": 101773, + "hash": "14c1a092085f9852359d004f0163057f7289a09a" + }, + { + "nr": 100350, + "hash": "71a2768027b6a24717955bae6b0ff6e12de68656" + }, + { + "nr": 100200, + "hash": "0267b0544ae992d287a9229adceb6c7118667f32" + }, + { + "nr": 100694, + "hash": "6f89905682df212f7d1264dfd56ef1f3491b0dcb" + }, + { + "nr": 102620, + "hash": "0a45b3a1e2f836e0abcc7cfc4ed3a77e0d004290" + }, + { + "nr": 101082, + "hash": "7a6c780ac9b033b6377a69513dcdfc200cff50fa" + }, + { + "nr": 100608, + "hash": "18e4a6f9f2ff286943fd001e20545abd59af22e9" + }, + { + "nr": 102105, + "hash": "21335da462922c3f6fed6cff1dbda52be27d95b6" + }, + { + "nr": 100612, + "hash": "974ecbcdaae9ba8c8367aad80aa1c756261f9629" + }, + { + "nr": 101120, + "hash": "0313ef8221125aa9e6e102bf0738fa1a2dbb6352" + }, + { + "nr": 100100, + "hash": "0337163f7fd1ecf21d587f7d7e96c505708df26c" + }, + { + "nr": 102825, + "hash": "f48832eda1e1a175bddcede27d5ed5228a3fb3cb" + }, + { + "nr": 100267, + "hash": "072bd753896c0b5c71c941b6ea9437a017021354" + }, + { + "nr": 99963, + "hash": "6da1284e36a8da521da1982a0d1f4898a51507cc" + }, + { + "nr": 102414, + "hash": "f2019b80d9c708a20eba679b6fb390f3a151382a" + }, + { + "nr": 102965, + "hash": "bcba9b549a75869d149a39ee4acb99e1cc3981c2" + }, + { + "nr": 100644, + "hash": "94ed91958953f700ee37e9bbe7c663a32b06abf6" + }, + { + "nr": 101752, + "hash": "51a0fa20dac62d3adf91fb63f1669065b39a4a7d" + }, + { + "nr": 96959, + "hash": "1e97a0b01fbdf2d787e6016bd81f0d0db722b479" + }, + { + "nr": 102892, + "hash": "160b73ce91415d2dbcf93bc060618442c16a62db" + }, + { + "nr": 102935, + "hash": "54aa8b0bcfd97b790caef8dde1881db1f786270b" + }, + { + "nr": 102461, + "hash": "adb209eac8251730de75d100d14942ea90f6aecf" + }, + { + "nr": 101187, + "hash": "c1644cd973a03116619e8722b53220b90cc6d380" + }, + { + "nr": 99915, + "hash": "90b66aefc4f9a5cbcaaf96512cabd04509e26d4e" + }, + { + "nr": 102297, + "hash": "a2a80b3ed6363aa0dd0638593ccc3ab2ca3d6fc6" + }, + { + "nr": 101862, + "hash": "fde59f848c3afefd6e07ec9d5e41748695caaabf" + }, + { + "nr": 100690, + "hash": "f5ee2b4929be0210b635d94cefc46ee80fcd69ff" + }, + { + "nr": 100907, + "hash": "c67b96dac053a0018f5cb30698088327018535ed" + }, + { + "nr": 100085, + "hash": "746a815234b0fd324f26cf4a637b2dede90aaf0e" + }, + { + "nr": 102443, + "hash": "0015b6e1c2c82f13fe51bde68dabfb02db1ae9e2" + }, + { + "nr": 101316, + "hash": "9f0e6e06b35c0ebe2af3b837f5edd1a48d75a522" + }, + { + "nr": 100651, + "hash": "d6ac4df326de55c44c4d2639b990cbdb1ad23ad3" + }, + { + "nr": 101531, + "hash": "f20d39e469dd29b03b0f226b9c612241ed5c2cf4" + } + ] } \ No newline at end of file diff --git a/releases/release-1.22/release-notes/sessions/maps-1625170626.json b/releases/release-1.22/release-notes/sessions/maps-1625170626.json index 343af4c345a..0cac19f1322 100644 --- a/releases/release-1.22/release-notes/sessions/maps-1625170626.json +++ b/releases/release-1.22/release-notes/sessions/maps-1625170626.json @@ -1,163 +1,163 @@ -{ - "mail": "cicih@google.com", - "name": "cici37", - "date": 1625170626, - "prs": [ - { - "nr": 101030, - "hash": "9fa5f65989e09dffcf5d57f1c14b205b110ddc76" - }, - { - "nr": 102062, - "hash": "ccecf0b4da05e53061712c3ae588a43f491341c0" - }, - { - "nr": 102455, - "hash": "c16a5c605ce87b94e403cf446393f62eb4d7ce19" - }, - { - "nr": 101294, - "hash": "48fdea7ddd5289454ed91b48aa0a452e87e7664e" - }, - { - "nr": 102858, - "hash": "ca0496739e02f60ebdbdc982e2d3514b9626ead4" - }, - { - "nr": 102840, - "hash": "560748a608cd8759f9a5def96e042f6a92ec81d6" - }, - { - "nr": 102594, - "hash": "83f5bc9d42859131e879d98e1fd69f1e5ca1dec0" - }, - { - "nr": 102642, - "hash": "36214042aa0070d3f8adf3b9e69083bd387a207d" - }, - { - "nr": 102834, - "hash": "33912b4196fac3987e3599fa022cc8d3f1d4db0e" - }, - { - "nr": 102665, - "hash": "e3c5e9c01a3d1bd015c8c3100972506c90a69f64" - }, - { - "nr": 102934, - "hash": "6252af5dc8914fc9d2dc200f2e6998a7f3d201a1" - }, - { - "nr": 102795, - "hash": "1a9f527b62354a1277f75e77da8bdf1dae731c4e" - }, - { - "nr": 99310, - "hash": "fcb13e9dedab33308d2e81e2986c39b4a30fb3d2" - }, - { - "nr": 102901, - "hash": "59be6fc7fff500a3dcb80a117b0c919b3046cb07" - }, - { - "nr": 101208, - "hash": "b82e1f831ad6144de43b0805f3d868053910f28b" - }, - { - "nr": 101600, - "hash": "295a10a2cda1d75f14cbbdfc8181a6ef6226045e" - }, - { - "nr": 100369, - "hash": "f2a15c8c5e63303f3ac46bbfb21a6a237b9abc15" - }, - { - "nr": 102925, - "hash": "5f2dabfc93c283d54072771f891b3170e42f559f" - }, - { - "nr": 100488, - "hash": "ad71dce0155d06440c510f22f98a1c0bd2783abb" - }, - { - "nr": 100183, - "hash": "e13b5542117bb6e02277e0721afc936ce9ccf160" - }, - { - "nr": 101449, - "hash": "31bd788489434bc2e2d79da7f7257af8bf063d08" - }, - { - "nr": 102873, - "hash": "23c83cf03d8528bbcf3fd72048a5b246d6ea749e" - }, - { - "nr": 102805, - "hash": "300f21b8294125a2deb3761e8d289bfde55540ac" - }, - { - "nr": 98287, - "hash": "7fee1d2edcd639bc6d780bc0219aa1f88d40be03" - }, - { - "nr": 102441, - "hash": "d013e7eddf91379588dea3980034ca555335fcb3" - }, - { - "nr": 102598, - "hash": "5c76f89fe345d5449c7691ec675a7236c1f38e1c" - }, - { - "nr": 103019, - "hash": "6e0232a64075a51996fe4c948c0a17db115c352b" - }, - { - "nr": 102466, - "hash": "e83156169fb33dee2e0b3fcfae7b572cde6a1ab9" - }, - { - "nr": 102386, - "hash": "2db3421651ab7fdd5d52a5a555bc1ffa490518cd" - }, - { - "nr": 102366, - "hash": "8f959163a98bd80d954162582deda4c6f836aa31" - }, - { - "nr": 102722, - "hash": "edfaa3203fb6ac23614a0e304516211e65712296" - }, - { - "nr": 99597, - "hash": "2c51d996893784282e257a552f610789649885a7" - }, - { - "nr": 102731, - "hash": "1ce9b11617ed1ba16902a3ed7004ef162f25e3e4" - }, - { - "nr": 102437, - "hash": "609b638b311307f5c3a548573a9ba4bba88e4fd0" - }, - { - "nr": 102783, - "hash": "caa96f56920b0ea6a6d38110ed86524728194bfb" - }, - { - "nr": 102239, - "hash": "d7fc97e8afaa727e804e13f89c648326b9c3a2d7" - }, - { - "nr": 102689, - "hash": "e7443cbaae3218775400a1e9d720598472f441e3" - }, - { - "nr": 102711, - "hash": "e7dafb6c7d990935b8c40305c7d3bed455571fb3" - }, - { - "nr": 102788, - "hash": "39a4465ced0bb97bf9a8d2857c8ece258a7c5ad3" - } - ] +{ + "mail": "cicih@google.com", + "name": "cici37", + "date": 1625170626, + "prs": [ + { + "nr": 101030, + "hash": "9fa5f65989e09dffcf5d57f1c14b205b110ddc76" + }, + { + "nr": 102062, + "hash": "ccecf0b4da05e53061712c3ae588a43f491341c0" + }, + { + "nr": 102455, + "hash": "c16a5c605ce87b94e403cf446393f62eb4d7ce19" + }, + { + "nr": 101294, + "hash": "48fdea7ddd5289454ed91b48aa0a452e87e7664e" + }, + { + "nr": 102858, + "hash": "ca0496739e02f60ebdbdc982e2d3514b9626ead4" + }, + { + "nr": 102840, + "hash": "560748a608cd8759f9a5def96e042f6a92ec81d6" + }, + { + "nr": 102594, + "hash": "83f5bc9d42859131e879d98e1fd69f1e5ca1dec0" + }, + { + "nr": 102642, + "hash": "36214042aa0070d3f8adf3b9e69083bd387a207d" + }, + { + "nr": 102834, + "hash": "33912b4196fac3987e3599fa022cc8d3f1d4db0e" + }, + { + "nr": 102665, + "hash": "e3c5e9c01a3d1bd015c8c3100972506c90a69f64" + }, + { + "nr": 102934, + "hash": "6252af5dc8914fc9d2dc200f2e6998a7f3d201a1" + }, + { + "nr": 102795, + "hash": "1a9f527b62354a1277f75e77da8bdf1dae731c4e" + }, + { + "nr": 99310, + "hash": "fcb13e9dedab33308d2e81e2986c39b4a30fb3d2" + }, + { + "nr": 102901, + "hash": "59be6fc7fff500a3dcb80a117b0c919b3046cb07" + }, + { + "nr": 101208, + "hash": "b82e1f831ad6144de43b0805f3d868053910f28b" + }, + { + "nr": 101600, + "hash": "295a10a2cda1d75f14cbbdfc8181a6ef6226045e" + }, + { + "nr": 100369, + "hash": "f2a15c8c5e63303f3ac46bbfb21a6a237b9abc15" + }, + { + "nr": 102925, + "hash": "5f2dabfc93c283d54072771f891b3170e42f559f" + }, + { + "nr": 100488, + "hash": "ad71dce0155d06440c510f22f98a1c0bd2783abb" + }, + { + "nr": 100183, + "hash": "e13b5542117bb6e02277e0721afc936ce9ccf160" + }, + { + "nr": 101449, + "hash": "31bd788489434bc2e2d79da7f7257af8bf063d08" + }, + { + "nr": 102873, + "hash": "23c83cf03d8528bbcf3fd72048a5b246d6ea749e" + }, + { + "nr": 102805, + "hash": "300f21b8294125a2deb3761e8d289bfde55540ac" + }, + { + "nr": 98287, + "hash": "7fee1d2edcd639bc6d780bc0219aa1f88d40be03" + }, + { + "nr": 102441, + "hash": "d013e7eddf91379588dea3980034ca555335fcb3" + }, + { + "nr": 102598, + "hash": "5c76f89fe345d5449c7691ec675a7236c1f38e1c" + }, + { + "nr": 103019, + "hash": "6e0232a64075a51996fe4c948c0a17db115c352b" + }, + { + "nr": 102466, + "hash": "e83156169fb33dee2e0b3fcfae7b572cde6a1ab9" + }, + { + "nr": 102386, + "hash": "2db3421651ab7fdd5d52a5a555bc1ffa490518cd" + }, + { + "nr": 102366, + "hash": "8f959163a98bd80d954162582deda4c6f836aa31" + }, + { + "nr": 102722, + "hash": "edfaa3203fb6ac23614a0e304516211e65712296" + }, + { + "nr": 99597, + "hash": "2c51d996893784282e257a552f610789649885a7" + }, + { + "nr": 102731, + "hash": "1ce9b11617ed1ba16902a3ed7004ef162f25e3e4" + }, + { + "nr": 102437, + "hash": "609b638b311307f5c3a548573a9ba4bba88e4fd0" + }, + { + "nr": 102783, + "hash": "caa96f56920b0ea6a6d38110ed86524728194bfb" + }, + { + "nr": 102239, + "hash": "d7fc97e8afaa727e804e13f89c648326b9c3a2d7" + }, + { + "nr": 102689, + "hash": "e7443cbaae3218775400a1e9d720598472f441e3" + }, + { + "nr": 102711, + "hash": "e7dafb6c7d990935b8c40305c7d3bed455571fb3" + }, + { + "nr": 102788, + "hash": "39a4465ced0bb97bf9a8d2857c8ece258a7c5ad3" + } + ] } \ No newline at end of file diff --git a/releases/release-1.22/release-notes/sessions/maps-1626107552.json b/releases/release-1.22/release-notes/sessions/maps-1626107552.json index 099440c07e2..59f7aa543b2 100644 --- a/releases/release-1.22/release-notes/sessions/maps-1626107552.json +++ b/releases/release-1.22/release-notes/sessions/maps-1626107552.json @@ -1,307 +1,307 @@ -{ - "mail": "pmmalinov01@gmail.com", - "name": "Pavel Malinov", - "date": 1626107552, - "prs": [ - { - "nr": 103169, - "hash": "1cdc148779b42232de95b47d70646a0d48bbc73d" - }, - { - "nr": 101943, - "hash": "c1b6ebd75c8e8cfcf0692ae6aec4b126020c0421" - }, - { - "nr": 92863, - "hash": "247701531a152ac6e2b7620ce3f4a56959374e82" - }, - { - "nr": 102188, - "hash": "a9f207671953494fcdd5272a9e10c3c9a15f59fd" - }, - { - "nr": 101711, - "hash": "a13c6e8ba586ed4d0d28c38f38216a7383b6cc9c" - }, - { - "nr": 102155, - "hash": "89b842a7ccc34265cc1bbd6cd65793e0ed71765d" - }, - { - "nr": 103244, - "hash": "8e9a4eab4c9b6c87969393f183260981bb30966b" - }, - { - "nr": 102028, - "hash": "07d4d11272a5d7bac229cb6efd6bbe61a91b97c9" - }, - { - "nr": 101822, - "hash": "2f6484f86821371cca9aeeb91c142ee6cef354fc" - }, - { - "nr": 101947, - "hash": "a136efd619d9137f8ae51f21235dab3f9f3be95f" - }, - { - "nr": 103524, - "hash": "ac65c869beafff9bef5d8f3c176e24d95692f2c0" - }, - { - "nr": 103082, - "hash": "83226d59332a9c5eb5dd8f5f1ce99e44cd6cca41" - }, - { - "nr": 103176, - "hash": "ea2b6d6b4a6a9f37737b01b6166c5f2287240b5a" - }, - { - "nr": 99364, - "hash": "389200e43d3f5a6a82d3607c9548507055da25c5" - }, - { - "nr": 98866, - "hash": "98e1c4019207215e53d8a0dc02e4a5810be7fb9a" - }, - { - "nr": 97028, - "hash": "9f194bad93e4c671b69aa7c56d7a69ba66e43a0f" - }, - { - "nr": 97238, - "hash": "41dfe2688c85a880e8a58f2b0f3ae74fc8dabdd7" - }, - { - "nr": 99829, - "hash": "750660d746f2050154c5854e1b12c2e8b9b90910" - }, - { - "nr": 103238, - "hash": "6c3fdb837b928fd172983aa9efdf76e4ff23434a" - }, - { - "nr": 101074, - "hash": "1e0ad921a6112c4e5973941c957c73730d088332" - }, - { - "nr": 102964, - "hash": "769c65f18fc2541c4ed083b19dd894422cda8cd9" - }, - { - "nr": 101296, - "hash": "ba6bde8ca5fd9d19ac1926455e727c28dd2a4056" - }, - { - "nr": 102966, - "hash": "72ea2ffeba2fab3cbd71e96f82e87f21d5188db4" - }, - { - "nr": 103313, - "hash": "e3aa4c8d5f0fa4ad7438c7155fb5b1875d69efe5" - }, - { - "nr": 99582, - "hash": "4e805696477fb4c0050c293c53fc3c99414b41c0" - }, - { - "nr": 102181, - "hash": "6a374e95da6f3b40f9241051953dae28302f4db7" - }, - { - "nr": 99378, - "hash": "ef812e9341a6eb8a772a17b79ab5343d04bf4549" - }, - { - "nr": 96087, - "hash": "188948f4d233adac097fa338a21b291953e3f09d" - }, - { - "nr": 102823, - "hash": "3e47814bbc98274ba5a1d729a82c2a98e5a5a471" - }, - { - "nr": 103326, - "hash": "b85495c68cbd1074d9207c96aba12c22e78a93e5" - }, - { - "nr": 103276, - "hash": "5cd3efbb02d34cd2b63826d7ed701344a055a864" - }, - { - "nr": 101946, - "hash": "fc49f0446f03a6b922c445f21d9d83927f92f268" - }, - { - "nr": 101767, - "hash": "d8ce103078754bb1c861d035e02da8b9fd02fa2a" - }, - { - "nr": 100339, - "hash": "72577adadaad273b7d7f14e94483861245d10052" - }, - { - "nr": 102869, - "hash": "432016b29a9ba16afbb8841957da160cc45ee257" - }, - { - "nr": 103307, - "hash": "2279244a206be4217209f6ab34775e69cca928d6" - }, - { - "nr": 103133, - "hash": "6391b81add9bf9d0605ca80fd5adb46230cba87d" - }, - { - "nr": 103001, - "hash": "96962b38262375b33f35660d5e5cd4894ce44cc9" - }, - { - "nr": 100412, - "hash": "00cb0a42fd63d9811b41adfcb5d730bd0acff333" - }, - { - "nr": 98306, - "hash": "fad1b65be411c648854a0191a4ab0b6f303928c4" - }, - { - "nr": 103235, - "hash": "3acf9dcbf54f4021bb8911d388f6cd1d36699736" - }, - { - "nr": 99494, - "hash": "67cb3ced683b9e64166b6a2524d6e71c1a892011" - }, - { - "nr": 103099, - "hash": "0c78fe85f0ced04ed705607af4d0743f3e62ce2c" - }, - { - "nr": 101581, - "hash": "10fd909f6e4ac9dc292b6b9e8688241c51691ecd" - }, - { - "nr": 103306, - "hash": "a94cc151e5348e20eca6e4bc8ad199526f4e7c3c" - }, - { - "nr": 103520, - "hash": "d884d6c3f0bc39b1c6fa90096c2d762d35a43a3e" - }, - { - "nr": 94942, - "hash": "ff9aadf892928c584c7c13b1c2419410e536d1f7" - }, - { - "nr": 102890, - "hash": "697bb247a010752cceed4aafa7eb81ffad50743d" - }, - { - "nr": 102821, - "hash": "39705165141dd2262a14b28056c486c2c1baaa3f" - }, - { - "nr": 103129, - "hash": "57cdd9c3862054121dd7a00b01926e35f68bddea" - }, - { - "nr": 103154, - "hash": "064704aba34759d4613c978da862826e867ddfa8" - }, - { - "nr": 103383, - "hash": "2f611ba5bcb72af6b5562850c4069df156eb5650" - }, - { - "nr": 103292, - "hash": "c65a4bfb6fe706dae283584445aae15ac5cdf8a7" - }, - { - "nr": 102677, - "hash": "f3f96d95a4ddd39957d68c648ecbd7c528facbc1" - }, - { - "nr": 103390, - "hash": "5b90491f3bed0ecd8bd64fa31b91b3f1edaff661" - }, - { - "nr": 103063, - "hash": "866daf60b0c2b4a9fe4bc6ad95a2a8cf40e39966" - }, - { - "nr": 98431, - "hash": "b440eaa81f1d81edc8cda120786793b8f289466c" - }, - { - "nr": 103462, - "hash": "dc58605c2496e1ddc8289df193ff030363256e87" - }, - { - "nr": 102022, - "hash": "66fea9974dce7f18da1117d0ba812f239bdee607" - }, - { - "nr": 103419, - "hash": "01094e0a1fee429a9bcc59330e76a9fb4c0ac6eb" - }, - { - "nr": 99144, - "hash": "eb03f706227c0173d8d7fcca0c9b8f5e665daf55" - }, - { - "nr": 103451, - "hash": "07cab2167c3aeda4ef1a4522dccfc68d545b5a07" - }, - { - "nr": 103318, - "hash": "e84e59be83e23871b35e3ec4751f7f16d097caac" - }, - { - "nr": 103190, - "hash": "9ca4f70be4a4e0e3f9e176f81f9461206a3b5c4a" - }, - { - "nr": 102444, - "hash": "75f8afa498735d8ffda417491ce858f6ed3d6d58" - }, - { - "nr": 103414, - "hash": "5a76d8b5eeb2d3eb2d088499e56da27b4999fe10" - }, - { - "nr": 99961, - "hash": "a78b9e2fa16cfc945ad20f34d266cf1fd6d3ae04" - }, - { - "nr": 92372, - "hash": "d764dfcee5d27ed94a841fd6dbba4f3dc338d09e" - }, - { - "nr": 103514, - "hash": "7ab22ce8250a15af5ff2f0d01af0b598cbbddf75" - }, - { - "nr": 102578, - "hash": "695de2fa568c5cb2d160ec4e4c392fdb5ef6735a" - }, - { - "nr": 101256, - "hash": "1578c3c849ecdb60c5e21deafc9cb124a11bb811" - }, - { - "nr": 102859, - "hash": "e367048607462260d7fb756ca1d761e99a37984e" - }, - { - "nr": 103541, - "hash": "6af7f0370a10bc2e19c6caa779e72beea81ec54b" - }, - { - "nr": 103218, - "hash": "37b3de98e31c1dab95061f25ef66db2f853a5ffd" - }, - { - "nr": 102898, - "hash": "6499a732b5c51b092cfee60af2a6dc2ee4dbdea5" - } - ] +{ + "mail": "pmmalinov01@gmail.com", + "name": "Pavel Malinov", + "date": 1626107552, + "prs": [ + { + "nr": 103169, + "hash": "1cdc148779b42232de95b47d70646a0d48bbc73d" + }, + { + "nr": 101943, + "hash": "c1b6ebd75c8e8cfcf0692ae6aec4b126020c0421" + }, + { + "nr": 92863, + "hash": "247701531a152ac6e2b7620ce3f4a56959374e82" + }, + { + "nr": 102188, + "hash": "a9f207671953494fcdd5272a9e10c3c9a15f59fd" + }, + { + "nr": 101711, + "hash": "a13c6e8ba586ed4d0d28c38f38216a7383b6cc9c" + }, + { + "nr": 102155, + "hash": "89b842a7ccc34265cc1bbd6cd65793e0ed71765d" + }, + { + "nr": 103244, + "hash": "8e9a4eab4c9b6c87969393f183260981bb30966b" + }, + { + "nr": 102028, + "hash": "07d4d11272a5d7bac229cb6efd6bbe61a91b97c9" + }, + { + "nr": 101822, + "hash": "2f6484f86821371cca9aeeb91c142ee6cef354fc" + }, + { + "nr": 101947, + "hash": "a136efd619d9137f8ae51f21235dab3f9f3be95f" + }, + { + "nr": 103524, + "hash": "ac65c869beafff9bef5d8f3c176e24d95692f2c0" + }, + { + "nr": 103082, + "hash": "83226d59332a9c5eb5dd8f5f1ce99e44cd6cca41" + }, + { + "nr": 103176, + "hash": "ea2b6d6b4a6a9f37737b01b6166c5f2287240b5a" + }, + { + "nr": 99364, + "hash": "389200e43d3f5a6a82d3607c9548507055da25c5" + }, + { + "nr": 98866, + "hash": "98e1c4019207215e53d8a0dc02e4a5810be7fb9a" + }, + { + "nr": 97028, + "hash": "9f194bad93e4c671b69aa7c56d7a69ba66e43a0f" + }, + { + "nr": 97238, + "hash": "41dfe2688c85a880e8a58f2b0f3ae74fc8dabdd7" + }, + { + "nr": 99829, + "hash": "750660d746f2050154c5854e1b12c2e8b9b90910" + }, + { + "nr": 103238, + "hash": "6c3fdb837b928fd172983aa9efdf76e4ff23434a" + }, + { + "nr": 101074, + "hash": "1e0ad921a6112c4e5973941c957c73730d088332" + }, + { + "nr": 102964, + "hash": "769c65f18fc2541c4ed083b19dd894422cda8cd9" + }, + { + "nr": 101296, + "hash": "ba6bde8ca5fd9d19ac1926455e727c28dd2a4056" + }, + { + "nr": 102966, + "hash": "72ea2ffeba2fab3cbd71e96f82e87f21d5188db4" + }, + { + "nr": 103313, + "hash": "e3aa4c8d5f0fa4ad7438c7155fb5b1875d69efe5" + }, + { + "nr": 99582, + "hash": "4e805696477fb4c0050c293c53fc3c99414b41c0" + }, + { + "nr": 102181, + "hash": "6a374e95da6f3b40f9241051953dae28302f4db7" + }, + { + "nr": 99378, + "hash": "ef812e9341a6eb8a772a17b79ab5343d04bf4549" + }, + { + "nr": 96087, + "hash": "188948f4d233adac097fa338a21b291953e3f09d" + }, + { + "nr": 102823, + "hash": "3e47814bbc98274ba5a1d729a82c2a98e5a5a471" + }, + { + "nr": 103326, + "hash": "b85495c68cbd1074d9207c96aba12c22e78a93e5" + }, + { + "nr": 103276, + "hash": "5cd3efbb02d34cd2b63826d7ed701344a055a864" + }, + { + "nr": 101946, + "hash": "fc49f0446f03a6b922c445f21d9d83927f92f268" + }, + { + "nr": 101767, + "hash": "d8ce103078754bb1c861d035e02da8b9fd02fa2a" + }, + { + "nr": 100339, + "hash": "72577adadaad273b7d7f14e94483861245d10052" + }, + { + "nr": 102869, + "hash": "432016b29a9ba16afbb8841957da160cc45ee257" + }, + { + "nr": 103307, + "hash": "2279244a206be4217209f6ab34775e69cca928d6" + }, + { + "nr": 103133, + "hash": "6391b81add9bf9d0605ca80fd5adb46230cba87d" + }, + { + "nr": 103001, + "hash": "96962b38262375b33f35660d5e5cd4894ce44cc9" + }, + { + "nr": 100412, + "hash": "00cb0a42fd63d9811b41adfcb5d730bd0acff333" + }, + { + "nr": 98306, + "hash": "fad1b65be411c648854a0191a4ab0b6f303928c4" + }, + { + "nr": 103235, + "hash": "3acf9dcbf54f4021bb8911d388f6cd1d36699736" + }, + { + "nr": 99494, + "hash": "67cb3ced683b9e64166b6a2524d6e71c1a892011" + }, + { + "nr": 103099, + "hash": "0c78fe85f0ced04ed705607af4d0743f3e62ce2c" + }, + { + "nr": 101581, + "hash": "10fd909f6e4ac9dc292b6b9e8688241c51691ecd" + }, + { + "nr": 103306, + "hash": "a94cc151e5348e20eca6e4bc8ad199526f4e7c3c" + }, + { + "nr": 103520, + "hash": "d884d6c3f0bc39b1c6fa90096c2d762d35a43a3e" + }, + { + "nr": 94942, + "hash": "ff9aadf892928c584c7c13b1c2419410e536d1f7" + }, + { + "nr": 102890, + "hash": "697bb247a010752cceed4aafa7eb81ffad50743d" + }, + { + "nr": 102821, + "hash": "39705165141dd2262a14b28056c486c2c1baaa3f" + }, + { + "nr": 103129, + "hash": "57cdd9c3862054121dd7a00b01926e35f68bddea" + }, + { + "nr": 103154, + "hash": "064704aba34759d4613c978da862826e867ddfa8" + }, + { + "nr": 103383, + "hash": "2f611ba5bcb72af6b5562850c4069df156eb5650" + }, + { + "nr": 103292, + "hash": "c65a4bfb6fe706dae283584445aae15ac5cdf8a7" + }, + { + "nr": 102677, + "hash": "f3f96d95a4ddd39957d68c648ecbd7c528facbc1" + }, + { + "nr": 103390, + "hash": "5b90491f3bed0ecd8bd64fa31b91b3f1edaff661" + }, + { + "nr": 103063, + "hash": "866daf60b0c2b4a9fe4bc6ad95a2a8cf40e39966" + }, + { + "nr": 98431, + "hash": "b440eaa81f1d81edc8cda120786793b8f289466c" + }, + { + "nr": 103462, + "hash": "dc58605c2496e1ddc8289df193ff030363256e87" + }, + { + "nr": 102022, + "hash": "66fea9974dce7f18da1117d0ba812f239bdee607" + }, + { + "nr": 103419, + "hash": "01094e0a1fee429a9bcc59330e76a9fb4c0ac6eb" + }, + { + "nr": 99144, + "hash": "eb03f706227c0173d8d7fcca0c9b8f5e665daf55" + }, + { + "nr": 103451, + "hash": "07cab2167c3aeda4ef1a4522dccfc68d545b5a07" + }, + { + "nr": 103318, + "hash": "e84e59be83e23871b35e3ec4751f7f16d097caac" + }, + { + "nr": 103190, + "hash": "9ca4f70be4a4e0e3f9e176f81f9461206a3b5c4a" + }, + { + "nr": 102444, + "hash": "75f8afa498735d8ffda417491ce858f6ed3d6d58" + }, + { + "nr": 103414, + "hash": "5a76d8b5eeb2d3eb2d088499e56da27b4999fe10" + }, + { + "nr": 99961, + "hash": "a78b9e2fa16cfc945ad20f34d266cf1fd6d3ae04" + }, + { + "nr": 92372, + "hash": "d764dfcee5d27ed94a841fd6dbba4f3dc338d09e" + }, + { + "nr": 103514, + "hash": "7ab22ce8250a15af5ff2f0d01af0b598cbbddf75" + }, + { + "nr": 102578, + "hash": "695de2fa568c5cb2d160ec4e4c392fdb5ef6735a" + }, + { + "nr": 101256, + "hash": "1578c3c849ecdb60c5e21deafc9cb124a11bb811" + }, + { + "nr": 102859, + "hash": "e367048607462260d7fb756ca1d761e99a37984e" + }, + { + "nr": 103541, + "hash": "6af7f0370a10bc2e19c6caa779e72beea81ec54b" + }, + { + "nr": 103218, + "hash": "37b3de98e31c1dab95061f25ef66db2f853a5ffd" + }, + { + "nr": 102898, + "hash": "6499a732b5c51b092cfee60af2a6dc2ee4dbdea5" + } + ] } \ No newline at end of file diff --git a/releases/release-1.22/release-notes/sessions/maps-1626129419.json b/releases/release-1.22/release-notes/sessions/maps-1626129419.json index 6ecffaee6b2..73b6d4d9d78 100644 --- a/releases/release-1.22/release-notes/sessions/maps-1626129419.json +++ b/releases/release-1.22/release-notes/sessions/maps-1626129419.json @@ -1,1335 +1,1335 @@ -{ - "mail": "61474540+Damans227@users.noreply.github.com", - "name": "Damans227", - "date": 1626129419, - "prs": [ - { - "nr": 103383, - "hash": "2f611ba5bcb72af6b5562850c4069df156eb5650" - }, - { - "nr": 102677, - "hash": "f3f96d95a4ddd39957d68c648ecbd7c528facbc1" - }, - { - "nr": 101377, - "hash": "e2d9161d3abb3be635e1bcb4dd5b6b2710db4298" - }, - { - "nr": 101203, - "hash": "a87ce6fc9320b0d6a5d6b45f9f367b1d3f0a0578" - }, - { - "nr": 100724, - "hash": "a4c0042b0069fa53b62327f1623fd14a1adf252c" - }, - { - "nr": 100644, - "hash": "94ed91958953f700ee37e9bbe7c663a32b06abf6" - }, - { - "nr": 99566, - "hash": "988991e4995bf2a8859aac70624670e9bfe34596" - }, - { - "nr": 102934, - "hash": "6252af5dc8914fc9d2dc200f2e6998a7f3d201a1" - }, - { - "nr": 102642, - "hash": "36214042aa0070d3f8adf3b9e69083bd387a207d" - }, - { - "nr": 101477, - "hash": "904489b296e177c53e8970b64e4227f25f74bc16" - }, - { - "nr": 101342, - "hash": "8b07b557e07a4019d94e93568fb8dc803760486a" - }, - { - "nr": 101947, - "hash": "a136efd619d9137f8ae51f21235dab3f9f3be95f" - }, - { - "nr": 96084, - "hash": "6fb752365a72b7afa62f13bdb417963cc5a4bcf5" - }, - { - "nr": 100612, - "hash": "974ecbcdaae9ba8c8367aad80aa1c756261f9629" - }, - { - "nr": 99900, - "hash": "4e2815a09b542a875d9a0e8e412ef628e828003d" - }, - { - "nr": 97968, - "hash": "2097dbfa859b479994f424613ccd5db47d33d37d" - }, - { - "nr": 100678, - "hash": "56d2d79e98baf82fb6732d14af00368b514751b1" - }, - { - "nr": 103451, - "hash": "07cab2167c3aeda4ef1a4522dccfc68d545b5a07" - }, - { - "nr": 102516, - "hash": "c828f521d6b6434147a873af2a691e970fa2a69e" - }, - { - "nr": 101398, - "hash": "b015a1151d5e44ccd5f235511dbe419809353236" - }, - { - "nr": 101252, - "hash": "1674500528273e510fa230eaf9a030f3d3226771" - }, - { - "nr": 99095, - "hash": "be8684f5602681d72fea9108bf545d17c41dda2d" - }, - { - "nr": 102722, - "hash": "edfaa3203fb6ac23614a0e304516211e65712296" - }, - { - "nr": 101587, - "hash": "3d2b24c1dc0d54a9d30b019affa52c2de86c0935" - }, - { - "nr": 101869, - "hash": "44746d1d34160950b24cf8bcc1c48cc3709aa6bb" - }, - { - "nr": 101539, - "hash": "6c0403313262f88eb16feed10d713d588783e7ab" - }, - { - "nr": 101523, - "hash": "0ae3892565ce76c9eeca2b5252460979dcc4647e" - }, - { - "nr": 100436, - "hash": "02e1d8a1b5597532f24308d22ea1ff341020db97" - }, - { - "nr": 100861, - "hash": "1a3b09c533c19ee46ac13eab06d71a5a8f326365" - }, - { - "nr": 103514, - "hash": "7ab22ce8250a15af5ff2f0d01af0b598cbbddf75" - }, - { - "nr": 101074, - "hash": "1e0ad921a6112c4e5973941c957c73730d088332" - }, - { - "nr": 99829, - "hash": "750660d746f2050154c5854e1b12c2e8b9b90910" - }, - { - "nr": 101950, - "hash": "b774ea2ca2c182d9c1007170594f4e3954a855e4" - }, - { - "nr": 101780, - "hash": "57f873f67420cfd75799dd86a73aee02be0feba6" - }, - { - "nr": 101005, - "hash": "f57f2515df9eb362991c2b21d84f0ffe61da554d" - }, - { - "nr": 96959, - "hash": "1e97a0b01fbdf2d787e6016bd81f0d0db722b479" - }, - { - "nr": 103218, - "hash": "37b3de98e31c1dab95061f25ef66db2f853a5ffd" - }, - { - "nr": 101030, - "hash": "9fa5f65989e09dffcf5d57f1c14b205b110ddc76" - }, - { - "nr": 102683, - "hash": "4d406f4db8e5c37f188837552ef5dc311c8c748a" - }, - { - "nr": 101685, - "hash": "8a02537e1d0ba787c26146943074581d3c559c9b" - }, - { - "nr": 100404, - "hash": "23cb1da0660e2388f40c1e5bf5f59c7ba2b3c326" - }, - { - "nr": 99775, - "hash": "c572eec12f99be89b8a78cbe9e9de40833a5169d" - }, - { - "nr": 101296, - "hash": "ba6bde8ca5fd9d19ac1926455e727c28dd2a4056" - }, - { - "nr": 98866, - "hash": "98e1c4019207215e53d8a0dc02e4a5810be7fb9a" - }, - { - "nr": 100575, - "hash": "8534abb026ac07baa5071825bf9a82f61113eb31" - }, - { - "nr": 102159, - "hash": "47485702e4f12fb091214f6f3edd1449692c06da" - }, - { - "nr": 101773, - "hash": "14c1a092085f9852359d004f0163057f7289a09a" - }, - { - "nr": 100956, - "hash": "aa24402651b994f4f93712d532fe94baf15bac1a" - }, - { - "nr": 100267, - "hash": "072bd753896c0b5c71c941b6ea9437a017021354" - }, - { - "nr": 102461, - "hash": "adb209eac8251730de75d100d14942ea90f6aecf" - }, - { - "nr": 102328, - "hash": "4201273fccf268543c81029071e8df6b0354de54" - }, - { - "nr": 101647, - "hash": "2e3408490fca649a82c990115c4c9ba9f33096a5" - }, - { - "nr": 102437, - "hash": "609b638b311307f5c3a548573a9ba4bba88e4fd0" - }, - { - "nr": 102039, - "hash": "02998efa3d6fc799da38a8cf4ea33fe1e0f6065f" - }, - { - "nr": 102412, - "hash": "6c8fbc26b00afa2e3f82140aaa30f9d69d1732ed" - }, - { - "nr": 100939, - "hash": "eb4ec938c5bc8a903052c8d7511ab4a7637672f3" - }, - { - "nr": 99144, - "hash": "eb03f706227c0173d8d7fcca0c9b8f5e665daf55" - }, - { - "nr": 102935, - "hash": "54aa8b0bcfd97b790caef8dde1881db1f786270b" - }, - { - "nr": 102858, - "hash": "ca0496739e02f60ebdbdc982e2d3514b9626ead4" - }, - { - "nr": 101915, - "hash": "ea12525c9de541d3b096be1ad8308d026373189a" - }, - { - "nr": 100139, - "hash": "ee92261979a1b5587298e9edd59dc7a616e5754d" - }, - { - "nr": 100784, - "hash": "3deb7bf106bf5013ffc698311d7758be5dff84e1" - }, - { - "nr": 102821, - "hash": "39705165141dd2262a14b28056c486c2c1baaa3f" - }, - { - "nr": 102594, - "hash": "83f5bc9d42859131e879d98e1fd69f1e5ca1dec0" - }, - { - "nr": 102498, - "hash": "7bb1dbe43d9c210e0f837f57774127c9591fff3b" - }, - { - "nr": 102901, - "hash": "59be6fc7fff500a3dcb80a117b0c919b3046cb07" - }, - { - "nr": 102414, - "hash": "f2019b80d9c708a20eba679b6fb390f3a151382a" - }, - { - "nr": 101817, - "hash": "e4123495d82730c335c9e7922ec1df5a1c42a0c6" - }, - { - "nr": 100690, - "hash": "f5ee2b4929be0210b635d94cefc46ee80fcd69ff" - }, - { - "nr": 101034, - "hash": "28bb4becdfd1d7079d479a87e20ac271f8292910" - }, - { - "nr": 102028, - "hash": "07d4d11272a5d7bac229cb6efd6bbe61a91b97c9" - }, - { - "nr": 97238, - "hash": "41dfe2688c85a880e8a58f2b0f3ae74fc8dabdd7" - }, - { - "nr": 101581, - "hash": "10fd909f6e4ac9dc292b6b9e8688241c51691ecd" - }, - { - "nr": 100686, - "hash": "2380016720f4be1768b1f36948e1aee1c862440c" - }, - { - "nr": 101076, - "hash": "5714dc98a90db948962b02bf00c6d61480502bd2" - }, - { - "nr": 100608, - "hash": "18e4a6f9f2ff286943fd001e20545abd59af22e9" - }, - { - "nr": 101292, - "hash": "8c41ffd4b60eff2a72225ac5b2e59867918b564e" - }, - { - "nr": 101235, - "hash": "d7fca9358b3e35c0890466296ea6f6ea66b28e01" - }, - { - "nr": 99597, - "hash": "2c51d996893784282e257a552f610789649885a7" - }, - { - "nr": 102332, - "hash": "2ec27a73fc3ae91828907af58457bea08a43876f" - }, - { - "nr": 102823, - "hash": "3e47814bbc98274ba5a1d729a82c2a98e5a5a471" - }, - { - "nr": 101943, - "hash": "c1b6ebd75c8e8cfcf0692ae6aec4b126020c0421" - }, - { - "nr": 101600, - "hash": "295a10a2cda1d75f14cbbdfc8181a6ef6226045e" - }, - { - "nr": 102443, - "hash": "0015b6e1c2c82f13fe51bde68dabfb02db1ae9e2" - }, - { - "nr": 101966, - "hash": "e020645790fda6b1cf729015f52950a5a1658bb8" - }, - { - "nr": 96702, - "hash": "bf754db2bef15f8ca5abeb5084a9dbed4daba87d" - }, - { - "nr": 100944, - "hash": "ccec86591f9e1465ee67e8dcd5ed0de588a92dc9" - }, - { - "nr": 101151, - "hash": "b17dba2fb51a23131b044cbc1dcd3ea1c49a031f" - }, - { - "nr": 92863, - "hash": "247701531a152ac6e2b7620ce3f4a56959374e82" - }, - { - "nr": 103541, - "hash": "6af7f0370a10bc2e19c6caa779e72beea81ec54b" - }, - { - "nr": 99364, - "hash": "389200e43d3f5a6a82d3607c9548507055da25c5" - }, - { - "nr": 101084, - "hash": "e65a1108f0637c27732a92378d732c363753ef92" - }, - { - "nr": 102366, - "hash": "8f959163a98bd80d954162582deda4c6f836aa31" - }, - { - "nr": 101752, - "hash": "51a0fa20dac62d3adf91fb63f1669065b39a4a7d" - }, - { - "nr": 100311, - "hash": "d851f33570fb7405cd709bfd0e6cc6fd15d624b7" - }, - { - "nr": 103154, - "hash": "064704aba34759d4613c978da862826e867ddfa8" - }, - { - "nr": 102783, - "hash": "caa96f56920b0ea6a6d38110ed86524728194bfb" - }, - { - "nr": 102965, - "hash": "bcba9b549a75869d149a39ee4acb99e1cc3981c2" - }, - { - "nr": 103390, - "hash": "5b90491f3bed0ecd8bd64fa31b91b3f1edaff661" - }, - { - "nr": 101186, - "hash": "c4c332ff7b9c1e845f1eacb8d77fbe435cc59209" - }, - { - "nr": 103306, - "hash": "a94cc151e5348e20eca6e4bc8ad199526f4e7c3c" - }, - { - "nr": 100292, - "hash": "e32be083665409ade48e91769a9532a73d38fae3" - }, - { - "nr": 100638, - "hash": "c972ec7c21d20fc814d94d9783d4dc3c3208845d" - }, - { - "nr": 101181, - "hash": "3dcd3f1c1bde63d9b872fc421814b87123f880f9" - }, - { - "nr": 100322, - "hash": "333ddc322e8441e9740bae406483ed79650d666e" - }, - { - "nr": 100141, - "hash": "62c76655fe5fdfce1df476856c915ffe433b0d34" - }, - { - "nr": 100085, - "hash": "746a815234b0fd324f26cf4a637b2dede90aaf0e" - }, - { - "nr": 100651, - "hash": "d6ac4df326de55c44c4d2639b990cbdb1ad23ad3" - }, - { - "nr": 102083, - "hash": "c909cddc8d9d4bb161449aeada15509bac1ec553" - }, - { - "nr": 101578, - "hash": "4460531dff79877413084ab3f92ef0515d4b4165" - }, - { - "nr": 100568, - "hash": "ad24e3503cd066451d211c92f85668eadc163c77" - }, - { - "nr": 102892, - "hash": "160b73ce91415d2dbcf93bc060618442c16a62db" - }, - { - "nr": 102323, - "hash": "5df2b1daec5a60c20b127cb011df865c5627761a" - }, - { - "nr": 98077, - "hash": "685549f93ffaacd9306723dfc7ba452a3ea61794" - }, - { - "nr": 98287, - "hash": "7fee1d2edcd639bc6d780bc0219aa1f88d40be03" - }, - { - "nr": 102673, - "hash": "5b2da4a0c2c81419c779985752f378eff2b606ba" - }, - { - "nr": 101688, - "hash": "b32c1e3208e46b01ea0e11f2c3ed4b75f6ea035b" - }, - { - "nr": 101057, - "hash": "5166f6f80093377c314157b52edf83af02370507" - }, - { - "nr": 99336, - "hash": "a8c0cc369160e9d717532f66f308e0993da99aba" - }, - { - "nr": 103524, - "hash": "ac65c869beafff9bef5d8f3c176e24d95692f2c0" - }, - { - "nr": 103129, - "hash": "57cdd9c3862054121dd7a00b01926e35f68bddea" - }, - { - "nr": 102825, - "hash": "f48832eda1e1a175bddcede27d5ed5228a3fb3cb" - }, - { - "nr": 102030, - "hash": "978423f70faa25b4aebd6756e555f134e18c882c" - }, - { - "nr": 101537, - "hash": "9dbc266c9af97c57cfba119af2670e175acdf349" - }, - { - "nr": 101067, - "hash": "cbca6666d099426f9a43857d37f4f6ec99e1ef5d" - }, - { - "nr": 100907, - "hash": "c67b96dac053a0018f5cb30698088327018535ed" - }, - { - "nr": 102731, - "hash": "1ce9b11617ed1ba16902a3ed7004ef162f25e3e4" - }, - { - "nr": 102590, - "hash": "13b53ec7dc0e3366be378414d0994ca85ed10a1b" - }, - { - "nr": 98350, - "hash": "43d6cc0cbc6ca8dee7a850845064fac192544810" - }, - { - "nr": 97796, - "hash": "ae07d7b62171aa07646aaf092bb1c5fc24578978" - }, - { - "nr": 100680, - "hash": "43f9cd2715527cd3ce0ff2c14d9c2f87e9949345" - }, - { - "nr": 102386, - "hash": "2db3421651ab7fdd5d52a5a555bc1ffa490518cd" - }, - { - "nr": 102441, - "hash": "d013e7eddf91379588dea3980034ca555335fcb3" - }, - { - "nr": 99310, - "hash": "fcb13e9dedab33308d2e81e2986c39b4a30fb3d2" - }, - { - "nr": 103419, - "hash": "01094e0a1fee429a9bcc59330e76a9fb4c0ac6eb" - }, - { - "nr": 102176, - "hash": "48be1eb6f3a2c40b05288ce09a29d65853e11259" - }, - { - "nr": 101104, - "hash": "e3184de93cf75f46bd271813dc0a4c218bc7dc1b" - }, - { - "nr": 102665, - "hash": "e3c5e9c01a3d1bd015c8c3100972506c90a69f64" - }, - { - "nr": 103001, - "hash": "96962b38262375b33f35660d5e5cd4894ce44cc9" - }, - { - "nr": 103169, - "hash": "1cdc148779b42232de95b47d70646a0d48bbc73d" - }, - { - "nr": 102925, - "hash": "5f2dabfc93c283d54072771f891b3170e42f559f" - }, - { - "nr": 100565, - "hash": "54e57fc5976f7de53057ff04fe4b6540e62dcc3c" - }, - { - "nr": 96216, - "hash": "031a5e249b88f103dc51f501024dfbbf86c5771a" - }, - { - "nr": 99839, - "hash": "06b4151b7490328b1ca6506b6419911bb9a02079" - }, - { - "nr": 98431, - "hash": "b440eaa81f1d81edc8cda120786793b8f289466c" - }, - { - "nr": 103190, - "hash": "9ca4f70be4a4e0e3f9e176f81f9461206a3b5c4a" - }, - { - "nr": 101712, - "hash": "e1785b6ee805657689a8fd28510ad2017fa23b53" - }, - { - "nr": 102377, - "hash": "b835aea0bcd33dfe481329cb4390e97767062008" - }, - { - "nr": 100940, - "hash": "792cd36cb7d51efa5d507eb97fb5afc59dff5e2f" - }, - { - "nr": 101473, - "hash": "3e265cea8fdf90ec88a75332ef3c6a5bc75d0f14" - }, - { - "nr": 103318, - "hash": "e84e59be83e23871b35e3ec4751f7f16d097caac" - }, - { - "nr": 103019, - "hash": "6e0232a64075a51996fe4c948c0a17db115c352b" - }, - { - "nr": 102834, - "hash": "33912b4196fac3987e3599fa022cc8d3f1d4db0e" - }, - { - "nr": 102598, - "hash": "5c76f89fe345d5449c7691ec675a7236c1f38e1c" - }, - { - "nr": 102297, - "hash": "a2a80b3ed6363aa0dd0638593ccc3ab2ca3d6fc6" - }, - { - "nr": 101747, - "hash": "04f0fe844f85dbf54b2fcd45094dc51c716d2285" - }, - { - "nr": 99961, - "hash": "a78b9e2fa16cfc945ad20f34d266cf1fd6d3ae04" - }, - { - "nr": 103244, - "hash": "8e9a4eab4c9b6c87969393f183260981bb30966b" - }, - { - "nr": 102869, - "hash": "432016b29a9ba16afbb8841957da160cc45ee257" - }, - { - "nr": 99178, - "hash": "5c7b10c0b5ac38b2667783b170c65ffbd3608893" - }, - { - "nr": 100754, - "hash": "85d2ae62a405f043c3090e838b42531dd829e33e" - }, - { - "nr": 101592, - "hash": "432bd35e1cfe965b4f04086e9921b3974b14ab10" - }, - { - "nr": 101206, - "hash": "b5b97dc63211e73dcc82321e263cd9a7c78a9f82" - }, - { - "nr": 92372, - "hash": "d764dfcee5d27ed94a841fd6dbba4f3dc338d09e" - }, - { - "nr": 100412, - "hash": "00cb0a42fd63d9811b41adfcb5d730bd0acff333" - }, - { - "nr": 102509, - "hash": "5677bd527b981319f2d83f205a9843c957f99636" - }, - { - "nr": 100913, - "hash": "8a1eec28d3658a94423e3d05f18a8325a9dddf5b" - }, - { - "nr": 101862, - "hash": "fde59f848c3afefd6e07ec9d5e41748695caaabf" - }, - { - "nr": 102147, - "hash": "47ca0a4cf5a848f5977ee2bc2de908adf04a859a" - }, - { - "nr": 101411, - "hash": "56164cdcb9fc3488f75b0b6dd3df8166d48a644d" - }, - { - "nr": 103235, - "hash": "3acf9dcbf54f4021bb8911d388f6cd1d36699736" - }, - { - "nr": 102620, - "hash": "0a45b3a1e2f836e0abcc7cfc4ed3a77e0d004290" - }, - { - "nr": 100142, - "hash": "c5bcc23eb7394d324a659ca6dc67dbee9854198c" - }, - { - "nr": 103133, - "hash": "6391b81add9bf9d0605ca80fd5adb46230cba87d" - }, - { - "nr": 101256, - "hash": "1578c3c849ecdb60c5e21deafc9cb124a11bb811" - }, - { - "nr": 101938, - "hash": "b445e7042150dac42f2ab5498dadd0ac652e6e8b" - }, - { - "nr": 95387, - "hash": "d47d50e11a10dcf3c63e985815cd311548014817" - }, - { - "nr": 101129, - "hash": "591db802cb911785619135662993796aa8b3866a" - }, - { - "nr": 101916, - "hash": "0bbda1b6691cfb72c18c320ca26a73de39819969" - }, - { - "nr": 101737, - "hash": "d72d540813438da5752ef1d7a864afde11771d44" - }, - { - "nr": 100262, - "hash": "2a5f3c467312569a6a91617fbb489c60390e24aa" - }, - { - "nr": 100200, - "hash": "0267b0544ae992d287a9229adceb6c7118667f32" - }, - { - "nr": 100100, - "hash": "0337163f7fd1ecf21d587f7d7e96c505708df26c" - }, - { - "nr": 99963, - "hash": "6da1284e36a8da521da1982a0d1f4898a51507cc" - }, - { - "nr": 102539, - "hash": "e3c161847e05d93104d7c895add97ef5b1b9a151" - }, - { - "nr": 102171, - "hash": "11abb0a3243bd4cb47864ad4fdea4dae2de71a80" - }, - { - "nr": 101547, - "hash": "b51a719c67f1fa03aca238ba6314272f8472a033" - }, - { - "nr": 100728, - "hash": "0e35ee838540f5cba19ea079469377de33365df6" - }, - { - "nr": 102898, - "hash": "6499a732b5c51b092cfee60af2a6dc2ee4dbdea5" - }, - { - "nr": 102711, - "hash": "e7dafb6c7d990935b8c40305c7d3bed455571fb3" - }, - { - "nr": 101977, - "hash": "a7b3ec904ce6fc5ddd677a5fb53e80dafe8f7bae" - }, - { - "nr": 101767, - "hash": "d8ce103078754bb1c861d035e02da8b9fd02fa2a" - }, - { - "nr": 101946, - "hash": "fc49f0446f03a6b922c445f21d9d83927f92f268" - }, - { - "nr": 100148, - "hash": "0c84f8bf0eca51210e9377d7830662c1ab766128" - }, - { - "nr": 102964, - "hash": "769c65f18fc2541c4ed083b19dd894422cda8cd9" - }, - { - "nr": 102805, - "hash": "300f21b8294125a2deb3761e8d289bfde55540ac" - }, - { - "nr": 101669, - "hash": "2c1f95208eb4e7f92dbe6a2dd130e206b9981eea" - }, - { - "nr": 101171, - "hash": "a036612ddc2526f85118d6de7254cab79bf90721" - }, - { - "nr": 100339, - "hash": "72577adadaad273b7d7f14e94483861245d10052" - }, - { - "nr": 102105, - "hash": "21335da462922c3f6fed6cff1dbda52be27d95b6" - }, - { - "nr": 101441, - "hash": "759598a8dded7dd9a2d1e6be2c8ee852c3596784" - }, - { - "nr": 100110, - "hash": "e163f15fe3fe8b86615c299a955ca1c144fe3d85" - }, - { - "nr": 102121, - "hash": "5fd142389e8e610913fda50f26edcdfa09448c70" - }, - { - "nr": 101589, - "hash": "8be56e17775ac95e66363ebfa287f8390120b4cf" - }, - { - "nr": 101025, - "hash": "816d7798b3aa0ed86d26ee2da2cf0da2a9258444" - }, - { - "nr": 101809, - "hash": "71f5ffb9beb6e08b9006620c9a8f7c938dfe7ff2" - }, - { - "nr": 100976, - "hash": "d23dc2239bf678adbe71a788031c07dda6820b87" - }, - { - "nr": 103414, - "hash": "5a76d8b5eeb2d3eb2d088499e56da27b4999fe10" - }, - { - "nr": 102155, - "hash": "89b842a7ccc34265cc1bbd6cd65793e0ed71765d" - }, - { - "nr": 100948, - "hash": "0e2f75fbc17ab5b5f4bf19c08b77e9dd7fd3acb8" - }, - { - "nr": 100234, - "hash": "4182817916f169f6892ca7a26c03fafba7c80a8e" - }, - { - "nr": 101436, - "hash": "e1325505103723115e2c22e18eca6c4613d6433f" - }, - { - "nr": 100731, - "hash": "4541dc2aa96d6e5cdfc848cff76a67c1d5ca1577" - }, - { - "nr": 99358, - "hash": "590bd5b4d16cf54b31ba8195cce4b07ce5872b03" - }, - { - "nr": 103326, - "hash": "b85495c68cbd1074d9207c96aba12c22e78a93e5" - }, - { - "nr": 96087, - "hash": "188948f4d233adac097fa338a21b291953e3f09d" - }, - { - "nr": 101857, - "hash": "5b46c8f041c4dc4d1490f2a1a6f5cbdea147d882" - }, - { - "nr": 93260, - "hash": "b1719d02cb67be56fbe76aab1e6e51196209d82d" - }, - { - "nr": 103276, - "hash": "5cd3efbb02d34cd2b63826d7ed701344a055a864" - }, - { - "nr": 101742, - "hash": "37efc617e3838144fd60bc8c8912dd5a8efc1e4d" - }, - { - "nr": 101531, - "hash": "f20d39e469dd29b03b0f226b9c612241ed5c2cf4" - }, - { - "nr": 97989, - "hash": "9032a8704f843159178782af3eda05379ea233d7" - }, - { - "nr": 102133, - "hash": "bb95b8dcc5a8b4df0f10b99b4ccd47098ad227ed" - }, - { - "nr": 102158, - "hash": "a52df7ac76f31850400bcbfb627a56b87de8a60f" - }, - { - "nr": 100599, - "hash": "41e71a1308a247c2f24538db20233da0a8798876" - }, - { - "nr": 68004, - "hash": "e0875378b21ada4303e10ec0e42e1cbc1f2070be" - }, - { - "nr": 102444, - "hash": "75f8afa498735d8ffda417491ce858f6ed3d6d58" - }, - { - "nr": 102466, - "hash": "e83156169fb33dee2e0b3fcfae7b572cde6a1ab9" - }, - { - "nr": 99729, - "hash": "de5ac8af8a08ebcfd281dfb77d57ce932e674b6d" - }, - { - "nr": 101160, - "hash": "9a51e7506335014fffbbc6d4c2567640e3a85ec0" - }, - { - "nr": 100500, - "hash": "bf8d84a18943b6dfd8433a77a1300be6682a7b6d" - }, - { - "nr": 103292, - "hash": "c65a4bfb6fe706dae283584445aae15ac5cdf8a7" - }, - { - "nr": 101082, - "hash": "7a6c780ac9b033b6377a69513dcdfc200cff50fa" - }, - { - "nr": 95396, - "hash": "42a1ce850c33c8bbe9471506e035d09e832dec9d" - }, - { - "nr": 101272, - "hash": "9bb59dd1967460a1ffd287df8e9d620c026d846c" - }, - { - "nr": 100435, - "hash": "93992889028a3ea25e34c33d6fd48b0ac74e6336" - }, - { - "nr": 100206, - "hash": "f40ecf9b206ea59c78aa3a52ef9d281d2cdd3103" - }, - { - "nr": 103082, - "hash": "83226d59332a9c5eb5dd8f5f1ce99e44cd6cca41" - }, - { - "nr": 99378, - "hash": "ef812e9341a6eb8a772a17b79ab5343d04bf4549" - }, - { - "nr": 101316, - "hash": "9f0e6e06b35c0ebe2af3b837f5edd1a48d75a522" - }, - { - "nr": 102201, - "hash": "89d464bde2abc756816752e916d87eb8c85e3bc0" - }, - { - "nr": 99647, - "hash": "41ae1888e62249123bed026c93aa4bb19cb65ab0" - }, - { - "nr": 101923, - "hash": "e40a89cbc4af3d69d000658649d878b08bff558c" - }, - { - "nr": 102108, - "hash": "b8a6a4222a4823a2a80e7b06b7822fbb06ab9305" - }, - { - "nr": 99915, - "hash": "90b66aefc4f9a5cbcaaf96512cabd04509e26d4e" - }, - { - "nr": 98306, - "hash": "fad1b65be411c648854a0191a4ab0b6f303928c4" - }, - { - "nr": 101208, - "hash": "b82e1f831ad6144de43b0805f3d868053910f28b" - }, - { - "nr": 102467, - "hash": "0ef9f36d66bf1dd98f8af5857c7eaeadfcdb4781" - }, - { - "nr": 101080, - "hash": "7999ca435db97d1d79bf1ec6c9b0d912c111e95b" - }, - { - "nr": 100942, - "hash": "258b1e236266444a8862a1ce81b2216f8b3b0967" - }, - { - "nr": 102059, - "hash": "276ed8a2ad0c1f7f0c2dde60b529dbc0c42dac27" - }, - { - "nr": 102529, - "hash": "91fa25c4136e42a19eb5fbd18f2d6464267aed65" - }, - { - "nr": 101992, - "hash": "062f78c7d6d493a960678ec2015469214826de13" - }, - { - "nr": 100136, - "hash": "e02c67d15716421f0d989ce25860bfb2349f5b8f" - }, - { - "nr": 101534, - "hash": "6e2582ac043c09d79631ba79433e236366ff2fa3" - }, - { - "nr": 102181, - "hash": "6a374e95da6f3b40f9241051953dae28302f4db7" - }, - { - "nr": 102795, - "hash": "1a9f527b62354a1277f75e77da8bdf1dae731c4e" - }, - { - "nr": 101294, - "hash": "48fdea7ddd5289454ed91b48aa0a452e87e7664e" - }, - { - "nr": 101412, - "hash": "ea0d591cbe24da2658e8c3e7817d7c071d63148d" - }, - { - "nr": 100959, - "hash": "e5455364fa899a7b31ca721b11eaccdbcf55f391" - }, - { - "nr": 102302, - "hash": "0c6d521e3cb330d951829a4cfa806972983e0738" - }, - { - "nr": 102890, - "hash": "697bb247a010752cceed4aafa7eb81ffad50743d" - }, - { - "nr": 101711, - "hash": "a13c6e8ba586ed4d0d28c38f38216a7383b6cc9c" - }, - { - "nr": 101449, - "hash": "31bd788489434bc2e2d79da7f7257af8bf063d08" - }, - { - "nr": 101496, - "hash": "35452bd75429ce7312cf4342c3e4eb11dfbdccb3" - }, - { - "nr": 101709, - "hash": "893f8b0709bb0f91e6f1a0fa53f68ca0e6dc3ca9" - }, - { - "nr": 101187, - "hash": "c1644cd973a03116619e8722b53220b90cc6d380" - }, - { - "nr": 103520, - "hash": "d884d6c3f0bc39b1c6fa90096c2d762d35a43a3e" - }, - { - "nr": 103313, - "hash": "e3aa4c8d5f0fa4ad7438c7155fb5b1875d69efe5" - }, - { - "nr": 102071, - "hash": "ad692e596e9b73aebd8c652c2832bddd84cce795" - }, - { - "nr": 92739, - "hash": "dbbc5209a9a55f2264d93512fbb3b3896619264a" - }, - { - "nr": 101560, - "hash": "f035b68e99b690658c78227b4b0c003976eed9fc" - }, - { - "nr": 101542, - "hash": "0b626b4f5138c59a0008460922484b62c2ba2cb1" - }, - { - "nr": 101357, - "hash": "b04d6b4fdd71b158e697e6b741fcf09ef186044f" - }, - { - "nr": 99494, - "hash": "67cb3ced683b9e64166b6a2524d6e71c1a892011" - }, - { - "nr": 103099, - "hash": "0c78fe85f0ced04ed705607af4d0743f3e62ce2c" - }, - { - "nr": 90368, - "hash": "a796bd37be49dc48e5a5e7316628ed6712f4d328" - }, - { - "nr": 99582, - "hash": "4e805696477fb4c0050c293c53fc3c99414b41c0" - }, - { - "nr": 102578, - "hash": "695de2fa568c5cb2d160ec4e4c392fdb5ef6735a" - }, - { - "nr": 102489, - "hash": "14ec7979413b736475d79e90eedfcc24d521630c" - }, - { - "nr": 100488, - "hash": "ad71dce0155d06440c510f22f98a1c0bd2783abb" - }, - { - "nr": 101271, - "hash": "f04231501da2fdf9a68671b620220e5b9b7215a1" - }, - { - "nr": 100684, - "hash": "eb855971f1929547bd31d8cdea60d5674dd36e75" - }, - { - "nr": 100051, - "hash": "95077e358db69c01e7ac930863859c87f382377a" - }, - { - "nr": 102188, - "hash": "a9f207671953494fcdd5272a9e10c3c9a15f59fd" - }, - { - "nr": 101822, - "hash": "2f6484f86821371cca9aeeb91c142ee6cef354fc" - }, - { - "nr": 102840, - "hash": "560748a608cd8759f9a5def96e042f6a92ec81d6" - }, - { - "nr": 102193, - "hash": "01f90ecce0c63803e36cf894e8eb83f14d6f6c3e" - }, - { - "nr": 99576, - "hash": "1d58b0171639437a1973fbbc598f5a4457c916e3" - }, - { - "nr": 101110, - "hash": "21604b01fb7c68257bb1347a45bdb58ce0872b9f" - }, - { - "nr": 103176, - "hash": "ea2b6d6b4a6a9f37737b01b6166c5f2287240b5a" - }, - { - "nr": 102062, - "hash": "ccecf0b4da05e53061712c3ae588a43f491341c0" - }, - { - "nr": 102067, - "hash": "c272e8d87f71a4f706d269c84b800eacabbe037a" - }, - { - "nr": 101155, - "hash": "81c1925788bb0604db208817a00b7eebf85c689b" - }, - { - "nr": 101120, - "hash": "0313ef8221125aa9e6e102bf0738fa1a2dbb6352" - }, - { - "nr": 101048, - "hash": "dc12393b90cdf25a8f9aea2dd468ab5e91c3f1fc" - }, - { - "nr": 103063, - "hash": "866daf60b0c2b4a9fe4bc6ad95a2a8cf40e39966" - }, - { - "nr": 103238, - "hash": "6c3fdb837b928fd172983aa9efdf76e4ff23434a" - }, - { - "nr": 102363, - "hash": "3777904002022d4c5ac2da98caeeb29db90d5a47" - }, - { - "nr": 101739, - "hash": "af9967ee04cb0e89a7ef77d07b81410ae3b1bc9c" - }, - { - "nr": 98057, - "hash": "38af876f07f03981496842b59ad67a4b5238da5c" - }, - { - "nr": 101093, - "hash": "3072f89a2dcde3cc27afe42428a62ba3bc7e8cc7" - }, - { - "nr": 101579, - "hash": "d6209721bde251c12d7e1d8e663600b19af71ccd" - }, - { - "nr": 95286, - "hash": "d0592b4cb6aa08df6809584b28c5c3ec6edbfd62" - }, - { - "nr": 98377, - "hash": "8fd05a8b231885736568544933ee113300234eb1" - }, - { - "nr": 103307, - "hash": "2279244a206be4217209f6ab34775e69cca928d6" - }, - { - "nr": 101510, - "hash": "9d12d6a957724e0dad644e13d8de082a49dacb0d" - }, - { - "nr": 101652, - "hash": "dffd4c31851f6a24d880b0576b8060193d783aeb" - }, - { - "nr": 102239, - "hash": "d7fc97e8afaa727e804e13f89c648326b9c3a2d7" - }, - { - "nr": 101394, - "hash": "b4c376d4dafd897fbe3f7c44346f1277190513a6" - }, - { - "nr": 102093, - "hash": "883be024d3ed7afb292dacb8b4117c50e1e16edb" - }, - { - "nr": 99069, - "hash": "900ec0c97d97c6065b2e9c29e4f1750c56b14224" - }, - { - "nr": 102022, - "hash": "66fea9974dce7f18da1117d0ba812f239bdee607" - }, - { - "nr": 102689, - "hash": "e7443cbaae3218775400a1e9d720598472f441e3" - }, - { - "nr": 102502, - "hash": "9e518b110f07e3764e5e5cbe1736344b2e59f941" - }, - { - "nr": 102455, - "hash": "c16a5c605ce87b94e403cf446393f62eb4d7ce19" - }, - { - "nr": 100183, - "hash": "e13b5542117bb6e02277e0721afc936ce9ccf160" - }, - { - "nr": 102063, - "hash": "93695d7762366205908207ab906ed0fd5f27bc04" - }, - { - "nr": 100842, - "hash": "ed72eb0f9cf6aa3b8ec87384bfe400ee4a4cf0ad" - }, - { - "nr": 102005, - "hash": "e4dd2cf0ba0cd417ad1282da705dc3103e10ed76" - }, - { - "nr": 103462, - "hash": "dc58605c2496e1ddc8289df193ff030363256e87" - }, - { - "nr": 102859, - "hash": "e367048607462260d7fb756ca1d761e99a37984e" - }, - { - "nr": 94942, - "hash": "ff9aadf892928c584c7c13b1c2419410e536d1f7" - }, - { - "nr": 100350, - "hash": "71a2768027b6a24717955bae6b0ff6e12de68656" - }, - { - "nr": 100635, - "hash": "ca61e692b7c3b5803634e2b9f5de7caab594f23a" - }, - { - "nr": 100369, - "hash": "f2a15c8c5e63303f3ac46bbfb21a6a237b9abc15" - }, - { - "nr": 102788, - "hash": "39a4465ced0bb97bf9a8d2857c8ece258a7c5ad3" - }, - { - "nr": 101420, - "hash": "0107da33bc3561ca8b52bab9c3a08b417c3727e7" - }, - { - "nr": 100694, - "hash": "6f89905682df212f7d1264dfd56ef1f3491b0dcb" - }, - { - "nr": 102966, - "hash": "72ea2ffeba2fab3cbd71e96f82e87f21d5188db4" - }, - { - "nr": 97028, - "hash": "9f194bad93e4c671b69aa7c56d7a69ba66e43a0f" - }, - { - "nr": 102873, - "hash": "23c83cf03d8528bbcf3fd72048a5b246d6ea749e" - } - ] +{ + "mail": "61474540+Damans227@users.noreply.github.com", + "name": "Damans227", + "date": 1626129419, + "prs": [ + { + "nr": 103383, + "hash": "2f611ba5bcb72af6b5562850c4069df156eb5650" + }, + { + "nr": 102677, + "hash": "f3f96d95a4ddd39957d68c648ecbd7c528facbc1" + }, + { + "nr": 101377, + "hash": "e2d9161d3abb3be635e1bcb4dd5b6b2710db4298" + }, + { + "nr": 101203, + "hash": "a87ce6fc9320b0d6a5d6b45f9f367b1d3f0a0578" + }, + { + "nr": 100724, + "hash": "a4c0042b0069fa53b62327f1623fd14a1adf252c" + }, + { + "nr": 100644, + "hash": "94ed91958953f700ee37e9bbe7c663a32b06abf6" + }, + { + "nr": 99566, + "hash": "988991e4995bf2a8859aac70624670e9bfe34596" + }, + { + "nr": 102934, + "hash": "6252af5dc8914fc9d2dc200f2e6998a7f3d201a1" + }, + { + "nr": 102642, + "hash": "36214042aa0070d3f8adf3b9e69083bd387a207d" + }, + { + "nr": 101477, + "hash": "904489b296e177c53e8970b64e4227f25f74bc16" + }, + { + "nr": 101342, + "hash": "8b07b557e07a4019d94e93568fb8dc803760486a" + }, + { + "nr": 101947, + "hash": "a136efd619d9137f8ae51f21235dab3f9f3be95f" + }, + { + "nr": 96084, + "hash": "6fb752365a72b7afa62f13bdb417963cc5a4bcf5" + }, + { + "nr": 100612, + "hash": "974ecbcdaae9ba8c8367aad80aa1c756261f9629" + }, + { + "nr": 99900, + "hash": "4e2815a09b542a875d9a0e8e412ef628e828003d" + }, + { + "nr": 97968, + "hash": "2097dbfa859b479994f424613ccd5db47d33d37d" + }, + { + "nr": 100678, + "hash": "56d2d79e98baf82fb6732d14af00368b514751b1" + }, + { + "nr": 103451, + "hash": "07cab2167c3aeda4ef1a4522dccfc68d545b5a07" + }, + { + "nr": 102516, + "hash": "c828f521d6b6434147a873af2a691e970fa2a69e" + }, + { + "nr": 101398, + "hash": "b015a1151d5e44ccd5f235511dbe419809353236" + }, + { + "nr": 101252, + "hash": "1674500528273e510fa230eaf9a030f3d3226771" + }, + { + "nr": 99095, + "hash": "be8684f5602681d72fea9108bf545d17c41dda2d" + }, + { + "nr": 102722, + "hash": "edfaa3203fb6ac23614a0e304516211e65712296" + }, + { + "nr": 101587, + "hash": "3d2b24c1dc0d54a9d30b019affa52c2de86c0935" + }, + { + "nr": 101869, + "hash": "44746d1d34160950b24cf8bcc1c48cc3709aa6bb" + }, + { + "nr": 101539, + "hash": "6c0403313262f88eb16feed10d713d588783e7ab" + }, + { + "nr": 101523, + "hash": "0ae3892565ce76c9eeca2b5252460979dcc4647e" + }, + { + "nr": 100436, + "hash": "02e1d8a1b5597532f24308d22ea1ff341020db97" + }, + { + "nr": 100861, + "hash": "1a3b09c533c19ee46ac13eab06d71a5a8f326365" + }, + { + "nr": 103514, + "hash": "7ab22ce8250a15af5ff2f0d01af0b598cbbddf75" + }, + { + "nr": 101074, + "hash": "1e0ad921a6112c4e5973941c957c73730d088332" + }, + { + "nr": 99829, + "hash": "750660d746f2050154c5854e1b12c2e8b9b90910" + }, + { + "nr": 101950, + "hash": "b774ea2ca2c182d9c1007170594f4e3954a855e4" + }, + { + "nr": 101780, + "hash": "57f873f67420cfd75799dd86a73aee02be0feba6" + }, + { + "nr": 101005, + "hash": "f57f2515df9eb362991c2b21d84f0ffe61da554d" + }, + { + "nr": 96959, + "hash": "1e97a0b01fbdf2d787e6016bd81f0d0db722b479" + }, + { + "nr": 103218, + "hash": "37b3de98e31c1dab95061f25ef66db2f853a5ffd" + }, + { + "nr": 101030, + "hash": "9fa5f65989e09dffcf5d57f1c14b205b110ddc76" + }, + { + "nr": 102683, + "hash": "4d406f4db8e5c37f188837552ef5dc311c8c748a" + }, + { + "nr": 101685, + "hash": "8a02537e1d0ba787c26146943074581d3c559c9b" + }, + { + "nr": 100404, + "hash": "23cb1da0660e2388f40c1e5bf5f59c7ba2b3c326" + }, + { + "nr": 99775, + "hash": "c572eec12f99be89b8a78cbe9e9de40833a5169d" + }, + { + "nr": 101296, + "hash": "ba6bde8ca5fd9d19ac1926455e727c28dd2a4056" + }, + { + "nr": 98866, + "hash": "98e1c4019207215e53d8a0dc02e4a5810be7fb9a" + }, + { + "nr": 100575, + "hash": "8534abb026ac07baa5071825bf9a82f61113eb31" + }, + { + "nr": 102159, + "hash": "47485702e4f12fb091214f6f3edd1449692c06da" + }, + { + "nr": 101773, + "hash": "14c1a092085f9852359d004f0163057f7289a09a" + }, + { + "nr": 100956, + "hash": "aa24402651b994f4f93712d532fe94baf15bac1a" + }, + { + "nr": 100267, + "hash": "072bd753896c0b5c71c941b6ea9437a017021354" + }, + { + "nr": 102461, + "hash": "adb209eac8251730de75d100d14942ea90f6aecf" + }, + { + "nr": 102328, + "hash": "4201273fccf268543c81029071e8df6b0354de54" + }, + { + "nr": 101647, + "hash": "2e3408490fca649a82c990115c4c9ba9f33096a5" + }, + { + "nr": 102437, + "hash": "609b638b311307f5c3a548573a9ba4bba88e4fd0" + }, + { + "nr": 102039, + "hash": "02998efa3d6fc799da38a8cf4ea33fe1e0f6065f" + }, + { + "nr": 102412, + "hash": "6c8fbc26b00afa2e3f82140aaa30f9d69d1732ed" + }, + { + "nr": 100939, + "hash": "eb4ec938c5bc8a903052c8d7511ab4a7637672f3" + }, + { + "nr": 99144, + "hash": "eb03f706227c0173d8d7fcca0c9b8f5e665daf55" + }, + { + "nr": 102935, + "hash": "54aa8b0bcfd97b790caef8dde1881db1f786270b" + }, + { + "nr": 102858, + "hash": "ca0496739e02f60ebdbdc982e2d3514b9626ead4" + }, + { + "nr": 101915, + "hash": "ea12525c9de541d3b096be1ad8308d026373189a" + }, + { + "nr": 100139, + "hash": "ee92261979a1b5587298e9edd59dc7a616e5754d" + }, + { + "nr": 100784, + "hash": "3deb7bf106bf5013ffc698311d7758be5dff84e1" + }, + { + "nr": 102821, + "hash": "39705165141dd2262a14b28056c486c2c1baaa3f" + }, + { + "nr": 102594, + "hash": "83f5bc9d42859131e879d98e1fd69f1e5ca1dec0" + }, + { + "nr": 102498, + "hash": "7bb1dbe43d9c210e0f837f57774127c9591fff3b" + }, + { + "nr": 102901, + "hash": "59be6fc7fff500a3dcb80a117b0c919b3046cb07" + }, + { + "nr": 102414, + "hash": "f2019b80d9c708a20eba679b6fb390f3a151382a" + }, + { + "nr": 101817, + "hash": "e4123495d82730c335c9e7922ec1df5a1c42a0c6" + }, + { + "nr": 100690, + "hash": "f5ee2b4929be0210b635d94cefc46ee80fcd69ff" + }, + { + "nr": 101034, + "hash": "28bb4becdfd1d7079d479a87e20ac271f8292910" + }, + { + "nr": 102028, + "hash": "07d4d11272a5d7bac229cb6efd6bbe61a91b97c9" + }, + { + "nr": 97238, + "hash": "41dfe2688c85a880e8a58f2b0f3ae74fc8dabdd7" + }, + { + "nr": 101581, + "hash": "10fd909f6e4ac9dc292b6b9e8688241c51691ecd" + }, + { + "nr": 100686, + "hash": "2380016720f4be1768b1f36948e1aee1c862440c" + }, + { + "nr": 101076, + "hash": "5714dc98a90db948962b02bf00c6d61480502bd2" + }, + { + "nr": 100608, + "hash": "18e4a6f9f2ff286943fd001e20545abd59af22e9" + }, + { + "nr": 101292, + "hash": "8c41ffd4b60eff2a72225ac5b2e59867918b564e" + }, + { + "nr": 101235, + "hash": "d7fca9358b3e35c0890466296ea6f6ea66b28e01" + }, + { + "nr": 99597, + "hash": "2c51d996893784282e257a552f610789649885a7" + }, + { + "nr": 102332, + "hash": "2ec27a73fc3ae91828907af58457bea08a43876f" + }, + { + "nr": 102823, + "hash": "3e47814bbc98274ba5a1d729a82c2a98e5a5a471" + }, + { + "nr": 101943, + "hash": "c1b6ebd75c8e8cfcf0692ae6aec4b126020c0421" + }, + { + "nr": 101600, + "hash": "295a10a2cda1d75f14cbbdfc8181a6ef6226045e" + }, + { + "nr": 102443, + "hash": "0015b6e1c2c82f13fe51bde68dabfb02db1ae9e2" + }, + { + "nr": 101966, + "hash": "e020645790fda6b1cf729015f52950a5a1658bb8" + }, + { + "nr": 96702, + "hash": "bf754db2bef15f8ca5abeb5084a9dbed4daba87d" + }, + { + "nr": 100944, + "hash": "ccec86591f9e1465ee67e8dcd5ed0de588a92dc9" + }, + { + "nr": 101151, + "hash": "b17dba2fb51a23131b044cbc1dcd3ea1c49a031f" + }, + { + "nr": 92863, + "hash": "247701531a152ac6e2b7620ce3f4a56959374e82" + }, + { + "nr": 103541, + "hash": "6af7f0370a10bc2e19c6caa779e72beea81ec54b" + }, + { + "nr": 99364, + "hash": "389200e43d3f5a6a82d3607c9548507055da25c5" + }, + { + "nr": 101084, + "hash": "e65a1108f0637c27732a92378d732c363753ef92" + }, + { + "nr": 102366, + "hash": "8f959163a98bd80d954162582deda4c6f836aa31" + }, + { + "nr": 101752, + "hash": "51a0fa20dac62d3adf91fb63f1669065b39a4a7d" + }, + { + "nr": 100311, + "hash": "d851f33570fb7405cd709bfd0e6cc6fd15d624b7" + }, + { + "nr": 103154, + "hash": "064704aba34759d4613c978da862826e867ddfa8" + }, + { + "nr": 102783, + "hash": "caa96f56920b0ea6a6d38110ed86524728194bfb" + }, + { + "nr": 102965, + "hash": "bcba9b549a75869d149a39ee4acb99e1cc3981c2" + }, + { + "nr": 103390, + "hash": "5b90491f3bed0ecd8bd64fa31b91b3f1edaff661" + }, + { + "nr": 101186, + "hash": "c4c332ff7b9c1e845f1eacb8d77fbe435cc59209" + }, + { + "nr": 103306, + "hash": "a94cc151e5348e20eca6e4bc8ad199526f4e7c3c" + }, + { + "nr": 100292, + "hash": "e32be083665409ade48e91769a9532a73d38fae3" + }, + { + "nr": 100638, + "hash": "c972ec7c21d20fc814d94d9783d4dc3c3208845d" + }, + { + "nr": 101181, + "hash": "3dcd3f1c1bde63d9b872fc421814b87123f880f9" + }, + { + "nr": 100322, + "hash": "333ddc322e8441e9740bae406483ed79650d666e" + }, + { + "nr": 100141, + "hash": "62c76655fe5fdfce1df476856c915ffe433b0d34" + }, + { + "nr": 100085, + "hash": "746a815234b0fd324f26cf4a637b2dede90aaf0e" + }, + { + "nr": 100651, + "hash": "d6ac4df326de55c44c4d2639b990cbdb1ad23ad3" + }, + { + "nr": 102083, + "hash": "c909cddc8d9d4bb161449aeada15509bac1ec553" + }, + { + "nr": 101578, + "hash": "4460531dff79877413084ab3f92ef0515d4b4165" + }, + { + "nr": 100568, + "hash": "ad24e3503cd066451d211c92f85668eadc163c77" + }, + { + "nr": 102892, + "hash": "160b73ce91415d2dbcf93bc060618442c16a62db" + }, + { + "nr": 102323, + "hash": "5df2b1daec5a60c20b127cb011df865c5627761a" + }, + { + "nr": 98077, + "hash": "685549f93ffaacd9306723dfc7ba452a3ea61794" + }, + { + "nr": 98287, + "hash": "7fee1d2edcd639bc6d780bc0219aa1f88d40be03" + }, + { + "nr": 102673, + "hash": "5b2da4a0c2c81419c779985752f378eff2b606ba" + }, + { + "nr": 101688, + "hash": "b32c1e3208e46b01ea0e11f2c3ed4b75f6ea035b" + }, + { + "nr": 101057, + "hash": "5166f6f80093377c314157b52edf83af02370507" + }, + { + "nr": 99336, + "hash": "a8c0cc369160e9d717532f66f308e0993da99aba" + }, + { + "nr": 103524, + "hash": "ac65c869beafff9bef5d8f3c176e24d95692f2c0" + }, + { + "nr": 103129, + "hash": "57cdd9c3862054121dd7a00b01926e35f68bddea" + }, + { + "nr": 102825, + "hash": "f48832eda1e1a175bddcede27d5ed5228a3fb3cb" + }, + { + "nr": 102030, + "hash": "978423f70faa25b4aebd6756e555f134e18c882c" + }, + { + "nr": 101537, + "hash": "9dbc266c9af97c57cfba119af2670e175acdf349" + }, + { + "nr": 101067, + "hash": "cbca6666d099426f9a43857d37f4f6ec99e1ef5d" + }, + { + "nr": 100907, + "hash": "c67b96dac053a0018f5cb30698088327018535ed" + }, + { + "nr": 102731, + "hash": "1ce9b11617ed1ba16902a3ed7004ef162f25e3e4" + }, + { + "nr": 102590, + "hash": "13b53ec7dc0e3366be378414d0994ca85ed10a1b" + }, + { + "nr": 98350, + "hash": "43d6cc0cbc6ca8dee7a850845064fac192544810" + }, + { + "nr": 97796, + "hash": "ae07d7b62171aa07646aaf092bb1c5fc24578978" + }, + { + "nr": 100680, + "hash": "43f9cd2715527cd3ce0ff2c14d9c2f87e9949345" + }, + { + "nr": 102386, + "hash": "2db3421651ab7fdd5d52a5a555bc1ffa490518cd" + }, + { + "nr": 102441, + "hash": "d013e7eddf91379588dea3980034ca555335fcb3" + }, + { + "nr": 99310, + "hash": "fcb13e9dedab33308d2e81e2986c39b4a30fb3d2" + }, + { + "nr": 103419, + "hash": "01094e0a1fee429a9bcc59330e76a9fb4c0ac6eb" + }, + { + "nr": 102176, + "hash": "48be1eb6f3a2c40b05288ce09a29d65853e11259" + }, + { + "nr": 101104, + "hash": "e3184de93cf75f46bd271813dc0a4c218bc7dc1b" + }, + { + "nr": 102665, + "hash": "e3c5e9c01a3d1bd015c8c3100972506c90a69f64" + }, + { + "nr": 103001, + "hash": "96962b38262375b33f35660d5e5cd4894ce44cc9" + }, + { + "nr": 103169, + "hash": "1cdc148779b42232de95b47d70646a0d48bbc73d" + }, + { + "nr": 102925, + "hash": "5f2dabfc93c283d54072771f891b3170e42f559f" + }, + { + "nr": 100565, + "hash": "54e57fc5976f7de53057ff04fe4b6540e62dcc3c" + }, + { + "nr": 96216, + "hash": "031a5e249b88f103dc51f501024dfbbf86c5771a" + }, + { + "nr": 99839, + "hash": "06b4151b7490328b1ca6506b6419911bb9a02079" + }, + { + "nr": 98431, + "hash": "b440eaa81f1d81edc8cda120786793b8f289466c" + }, + { + "nr": 103190, + "hash": "9ca4f70be4a4e0e3f9e176f81f9461206a3b5c4a" + }, + { + "nr": 101712, + "hash": "e1785b6ee805657689a8fd28510ad2017fa23b53" + }, + { + "nr": 102377, + "hash": "b835aea0bcd33dfe481329cb4390e97767062008" + }, + { + "nr": 100940, + "hash": "792cd36cb7d51efa5d507eb97fb5afc59dff5e2f" + }, + { + "nr": 101473, + "hash": "3e265cea8fdf90ec88a75332ef3c6a5bc75d0f14" + }, + { + "nr": 103318, + "hash": "e84e59be83e23871b35e3ec4751f7f16d097caac" + }, + { + "nr": 103019, + "hash": "6e0232a64075a51996fe4c948c0a17db115c352b" + }, + { + "nr": 102834, + "hash": "33912b4196fac3987e3599fa022cc8d3f1d4db0e" + }, + { + "nr": 102598, + "hash": "5c76f89fe345d5449c7691ec675a7236c1f38e1c" + }, + { + "nr": 102297, + "hash": "a2a80b3ed6363aa0dd0638593ccc3ab2ca3d6fc6" + }, + { + "nr": 101747, + "hash": "04f0fe844f85dbf54b2fcd45094dc51c716d2285" + }, + { + "nr": 99961, + "hash": "a78b9e2fa16cfc945ad20f34d266cf1fd6d3ae04" + }, + { + "nr": 103244, + "hash": "8e9a4eab4c9b6c87969393f183260981bb30966b" + }, + { + "nr": 102869, + "hash": "432016b29a9ba16afbb8841957da160cc45ee257" + }, + { + "nr": 99178, + "hash": "5c7b10c0b5ac38b2667783b170c65ffbd3608893" + }, + { + "nr": 100754, + "hash": "85d2ae62a405f043c3090e838b42531dd829e33e" + }, + { + "nr": 101592, + "hash": "432bd35e1cfe965b4f04086e9921b3974b14ab10" + }, + { + "nr": 101206, + "hash": "b5b97dc63211e73dcc82321e263cd9a7c78a9f82" + }, + { + "nr": 92372, + "hash": "d764dfcee5d27ed94a841fd6dbba4f3dc338d09e" + }, + { + "nr": 100412, + "hash": "00cb0a42fd63d9811b41adfcb5d730bd0acff333" + }, + { + "nr": 102509, + "hash": "5677bd527b981319f2d83f205a9843c957f99636" + }, + { + "nr": 100913, + "hash": "8a1eec28d3658a94423e3d05f18a8325a9dddf5b" + }, + { + "nr": 101862, + "hash": "fde59f848c3afefd6e07ec9d5e41748695caaabf" + }, + { + "nr": 102147, + "hash": "47ca0a4cf5a848f5977ee2bc2de908adf04a859a" + }, + { + "nr": 101411, + "hash": "56164cdcb9fc3488f75b0b6dd3df8166d48a644d" + }, + { + "nr": 103235, + "hash": "3acf9dcbf54f4021bb8911d388f6cd1d36699736" + }, + { + "nr": 102620, + "hash": "0a45b3a1e2f836e0abcc7cfc4ed3a77e0d004290" + }, + { + "nr": 100142, + "hash": "c5bcc23eb7394d324a659ca6dc67dbee9854198c" + }, + { + "nr": 103133, + "hash": "6391b81add9bf9d0605ca80fd5adb46230cba87d" + }, + { + "nr": 101256, + "hash": "1578c3c849ecdb60c5e21deafc9cb124a11bb811" + }, + { + "nr": 101938, + "hash": "b445e7042150dac42f2ab5498dadd0ac652e6e8b" + }, + { + "nr": 95387, + "hash": "d47d50e11a10dcf3c63e985815cd311548014817" + }, + { + "nr": 101129, + "hash": "591db802cb911785619135662993796aa8b3866a" + }, + { + "nr": 101916, + "hash": "0bbda1b6691cfb72c18c320ca26a73de39819969" + }, + { + "nr": 101737, + "hash": "d72d540813438da5752ef1d7a864afde11771d44" + }, + { + "nr": 100262, + "hash": "2a5f3c467312569a6a91617fbb489c60390e24aa" + }, + { + "nr": 100200, + "hash": "0267b0544ae992d287a9229adceb6c7118667f32" + }, + { + "nr": 100100, + "hash": "0337163f7fd1ecf21d587f7d7e96c505708df26c" + }, + { + "nr": 99963, + "hash": "6da1284e36a8da521da1982a0d1f4898a51507cc" + }, + { + "nr": 102539, + "hash": "e3c161847e05d93104d7c895add97ef5b1b9a151" + }, + { + "nr": 102171, + "hash": "11abb0a3243bd4cb47864ad4fdea4dae2de71a80" + }, + { + "nr": 101547, + "hash": "b51a719c67f1fa03aca238ba6314272f8472a033" + }, + { + "nr": 100728, + "hash": "0e35ee838540f5cba19ea079469377de33365df6" + }, + { + "nr": 102898, + "hash": "6499a732b5c51b092cfee60af2a6dc2ee4dbdea5" + }, + { + "nr": 102711, + "hash": "e7dafb6c7d990935b8c40305c7d3bed455571fb3" + }, + { + "nr": 101977, + "hash": "a7b3ec904ce6fc5ddd677a5fb53e80dafe8f7bae" + }, + { + "nr": 101767, + "hash": "d8ce103078754bb1c861d035e02da8b9fd02fa2a" + }, + { + "nr": 101946, + "hash": "fc49f0446f03a6b922c445f21d9d83927f92f268" + }, + { + "nr": 100148, + "hash": "0c84f8bf0eca51210e9377d7830662c1ab766128" + }, + { + "nr": 102964, + "hash": "769c65f18fc2541c4ed083b19dd894422cda8cd9" + }, + { + "nr": 102805, + "hash": "300f21b8294125a2deb3761e8d289bfde55540ac" + }, + { + "nr": 101669, + "hash": "2c1f95208eb4e7f92dbe6a2dd130e206b9981eea" + }, + { + "nr": 101171, + "hash": "a036612ddc2526f85118d6de7254cab79bf90721" + }, + { + "nr": 100339, + "hash": "72577adadaad273b7d7f14e94483861245d10052" + }, + { + "nr": 102105, + "hash": "21335da462922c3f6fed6cff1dbda52be27d95b6" + }, + { + "nr": 101441, + "hash": "759598a8dded7dd9a2d1e6be2c8ee852c3596784" + }, + { + "nr": 100110, + "hash": "e163f15fe3fe8b86615c299a955ca1c144fe3d85" + }, + { + "nr": 102121, + "hash": "5fd142389e8e610913fda50f26edcdfa09448c70" + }, + { + "nr": 101589, + "hash": "8be56e17775ac95e66363ebfa287f8390120b4cf" + }, + { + "nr": 101025, + "hash": "816d7798b3aa0ed86d26ee2da2cf0da2a9258444" + }, + { + "nr": 101809, + "hash": "71f5ffb9beb6e08b9006620c9a8f7c938dfe7ff2" + }, + { + "nr": 100976, + "hash": "d23dc2239bf678adbe71a788031c07dda6820b87" + }, + { + "nr": 103414, + "hash": "5a76d8b5eeb2d3eb2d088499e56da27b4999fe10" + }, + { + "nr": 102155, + "hash": "89b842a7ccc34265cc1bbd6cd65793e0ed71765d" + }, + { + "nr": 100948, + "hash": "0e2f75fbc17ab5b5f4bf19c08b77e9dd7fd3acb8" + }, + { + "nr": 100234, + "hash": "4182817916f169f6892ca7a26c03fafba7c80a8e" + }, + { + "nr": 101436, + "hash": "e1325505103723115e2c22e18eca6c4613d6433f" + }, + { + "nr": 100731, + "hash": "4541dc2aa96d6e5cdfc848cff76a67c1d5ca1577" + }, + { + "nr": 99358, + "hash": "590bd5b4d16cf54b31ba8195cce4b07ce5872b03" + }, + { + "nr": 103326, + "hash": "b85495c68cbd1074d9207c96aba12c22e78a93e5" + }, + { + "nr": 96087, + "hash": "188948f4d233adac097fa338a21b291953e3f09d" + }, + { + "nr": 101857, + "hash": "5b46c8f041c4dc4d1490f2a1a6f5cbdea147d882" + }, + { + "nr": 93260, + "hash": "b1719d02cb67be56fbe76aab1e6e51196209d82d" + }, + { + "nr": 103276, + "hash": "5cd3efbb02d34cd2b63826d7ed701344a055a864" + }, + { + "nr": 101742, + "hash": "37efc617e3838144fd60bc8c8912dd5a8efc1e4d" + }, + { + "nr": 101531, + "hash": "f20d39e469dd29b03b0f226b9c612241ed5c2cf4" + }, + { + "nr": 97989, + "hash": "9032a8704f843159178782af3eda05379ea233d7" + }, + { + "nr": 102133, + "hash": "bb95b8dcc5a8b4df0f10b99b4ccd47098ad227ed" + }, + { + "nr": 102158, + "hash": "a52df7ac76f31850400bcbfb627a56b87de8a60f" + }, + { + "nr": 100599, + "hash": "41e71a1308a247c2f24538db20233da0a8798876" + }, + { + "nr": 68004, + "hash": "e0875378b21ada4303e10ec0e42e1cbc1f2070be" + }, + { + "nr": 102444, + "hash": "75f8afa498735d8ffda417491ce858f6ed3d6d58" + }, + { + "nr": 102466, + "hash": "e83156169fb33dee2e0b3fcfae7b572cde6a1ab9" + }, + { + "nr": 99729, + "hash": "de5ac8af8a08ebcfd281dfb77d57ce932e674b6d" + }, + { + "nr": 101160, + "hash": "9a51e7506335014fffbbc6d4c2567640e3a85ec0" + }, + { + "nr": 100500, + "hash": "bf8d84a18943b6dfd8433a77a1300be6682a7b6d" + }, + { + "nr": 103292, + "hash": "c65a4bfb6fe706dae283584445aae15ac5cdf8a7" + }, + { + "nr": 101082, + "hash": "7a6c780ac9b033b6377a69513dcdfc200cff50fa" + }, + { + "nr": 95396, + "hash": "42a1ce850c33c8bbe9471506e035d09e832dec9d" + }, + { + "nr": 101272, + "hash": "9bb59dd1967460a1ffd287df8e9d620c026d846c" + }, + { + "nr": 100435, + "hash": "93992889028a3ea25e34c33d6fd48b0ac74e6336" + }, + { + "nr": 100206, + "hash": "f40ecf9b206ea59c78aa3a52ef9d281d2cdd3103" + }, + { + "nr": 103082, + "hash": "83226d59332a9c5eb5dd8f5f1ce99e44cd6cca41" + }, + { + "nr": 99378, + "hash": "ef812e9341a6eb8a772a17b79ab5343d04bf4549" + }, + { + "nr": 101316, + "hash": "9f0e6e06b35c0ebe2af3b837f5edd1a48d75a522" + }, + { + "nr": 102201, + "hash": "89d464bde2abc756816752e916d87eb8c85e3bc0" + }, + { + "nr": 99647, + "hash": "41ae1888e62249123bed026c93aa4bb19cb65ab0" + }, + { + "nr": 101923, + "hash": "e40a89cbc4af3d69d000658649d878b08bff558c" + }, + { + "nr": 102108, + "hash": "b8a6a4222a4823a2a80e7b06b7822fbb06ab9305" + }, + { + "nr": 99915, + "hash": "90b66aefc4f9a5cbcaaf96512cabd04509e26d4e" + }, + { + "nr": 98306, + "hash": "fad1b65be411c648854a0191a4ab0b6f303928c4" + }, + { + "nr": 101208, + "hash": "b82e1f831ad6144de43b0805f3d868053910f28b" + }, + { + "nr": 102467, + "hash": "0ef9f36d66bf1dd98f8af5857c7eaeadfcdb4781" + }, + { + "nr": 101080, + "hash": "7999ca435db97d1d79bf1ec6c9b0d912c111e95b" + }, + { + "nr": 100942, + "hash": "258b1e236266444a8862a1ce81b2216f8b3b0967" + }, + { + "nr": 102059, + "hash": "276ed8a2ad0c1f7f0c2dde60b529dbc0c42dac27" + }, + { + "nr": 102529, + "hash": "91fa25c4136e42a19eb5fbd18f2d6464267aed65" + }, + { + "nr": 101992, + "hash": "062f78c7d6d493a960678ec2015469214826de13" + }, + { + "nr": 100136, + "hash": "e02c67d15716421f0d989ce25860bfb2349f5b8f" + }, + { + "nr": 101534, + "hash": "6e2582ac043c09d79631ba79433e236366ff2fa3" + }, + { + "nr": 102181, + "hash": "6a374e95da6f3b40f9241051953dae28302f4db7" + }, + { + "nr": 102795, + "hash": "1a9f527b62354a1277f75e77da8bdf1dae731c4e" + }, + { + "nr": 101294, + "hash": "48fdea7ddd5289454ed91b48aa0a452e87e7664e" + }, + { + "nr": 101412, + "hash": "ea0d591cbe24da2658e8c3e7817d7c071d63148d" + }, + { + "nr": 100959, + "hash": "e5455364fa899a7b31ca721b11eaccdbcf55f391" + }, + { + "nr": 102302, + "hash": "0c6d521e3cb330d951829a4cfa806972983e0738" + }, + { + "nr": 102890, + "hash": "697bb247a010752cceed4aafa7eb81ffad50743d" + }, + { + "nr": 101711, + "hash": "a13c6e8ba586ed4d0d28c38f38216a7383b6cc9c" + }, + { + "nr": 101449, + "hash": "31bd788489434bc2e2d79da7f7257af8bf063d08" + }, + { + "nr": 101496, + "hash": "35452bd75429ce7312cf4342c3e4eb11dfbdccb3" + }, + { + "nr": 101709, + "hash": "893f8b0709bb0f91e6f1a0fa53f68ca0e6dc3ca9" + }, + { + "nr": 101187, + "hash": "c1644cd973a03116619e8722b53220b90cc6d380" + }, + { + "nr": 103520, + "hash": "d884d6c3f0bc39b1c6fa90096c2d762d35a43a3e" + }, + { + "nr": 103313, + "hash": "e3aa4c8d5f0fa4ad7438c7155fb5b1875d69efe5" + }, + { + "nr": 102071, + "hash": "ad692e596e9b73aebd8c652c2832bddd84cce795" + }, + { + "nr": 92739, + "hash": "dbbc5209a9a55f2264d93512fbb3b3896619264a" + }, + { + "nr": 101560, + "hash": "f035b68e99b690658c78227b4b0c003976eed9fc" + }, + { + "nr": 101542, + "hash": "0b626b4f5138c59a0008460922484b62c2ba2cb1" + }, + { + "nr": 101357, + "hash": "b04d6b4fdd71b158e697e6b741fcf09ef186044f" + }, + { + "nr": 99494, + "hash": "67cb3ced683b9e64166b6a2524d6e71c1a892011" + }, + { + "nr": 103099, + "hash": "0c78fe85f0ced04ed705607af4d0743f3e62ce2c" + }, + { + "nr": 90368, + "hash": "a796bd37be49dc48e5a5e7316628ed6712f4d328" + }, + { + "nr": 99582, + "hash": "4e805696477fb4c0050c293c53fc3c99414b41c0" + }, + { + "nr": 102578, + "hash": "695de2fa568c5cb2d160ec4e4c392fdb5ef6735a" + }, + { + "nr": 102489, + "hash": "14ec7979413b736475d79e90eedfcc24d521630c" + }, + { + "nr": 100488, + "hash": "ad71dce0155d06440c510f22f98a1c0bd2783abb" + }, + { + "nr": 101271, + "hash": "f04231501da2fdf9a68671b620220e5b9b7215a1" + }, + { + "nr": 100684, + "hash": "eb855971f1929547bd31d8cdea60d5674dd36e75" + }, + { + "nr": 100051, + "hash": "95077e358db69c01e7ac930863859c87f382377a" + }, + { + "nr": 102188, + "hash": "a9f207671953494fcdd5272a9e10c3c9a15f59fd" + }, + { + "nr": 101822, + "hash": "2f6484f86821371cca9aeeb91c142ee6cef354fc" + }, + { + "nr": 102840, + "hash": "560748a608cd8759f9a5def96e042f6a92ec81d6" + }, + { + "nr": 102193, + "hash": "01f90ecce0c63803e36cf894e8eb83f14d6f6c3e" + }, + { + "nr": 99576, + "hash": "1d58b0171639437a1973fbbc598f5a4457c916e3" + }, + { + "nr": 101110, + "hash": "21604b01fb7c68257bb1347a45bdb58ce0872b9f" + }, + { + "nr": 103176, + "hash": "ea2b6d6b4a6a9f37737b01b6166c5f2287240b5a" + }, + { + "nr": 102062, + "hash": "ccecf0b4da05e53061712c3ae588a43f491341c0" + }, + { + "nr": 102067, + "hash": "c272e8d87f71a4f706d269c84b800eacabbe037a" + }, + { + "nr": 101155, + "hash": "81c1925788bb0604db208817a00b7eebf85c689b" + }, + { + "nr": 101120, + "hash": "0313ef8221125aa9e6e102bf0738fa1a2dbb6352" + }, + { + "nr": 101048, + "hash": "dc12393b90cdf25a8f9aea2dd468ab5e91c3f1fc" + }, + { + "nr": 103063, + "hash": "866daf60b0c2b4a9fe4bc6ad95a2a8cf40e39966" + }, + { + "nr": 103238, + "hash": "6c3fdb837b928fd172983aa9efdf76e4ff23434a" + }, + { + "nr": 102363, + "hash": "3777904002022d4c5ac2da98caeeb29db90d5a47" + }, + { + "nr": 101739, + "hash": "af9967ee04cb0e89a7ef77d07b81410ae3b1bc9c" + }, + { + "nr": 98057, + "hash": "38af876f07f03981496842b59ad67a4b5238da5c" + }, + { + "nr": 101093, + "hash": "3072f89a2dcde3cc27afe42428a62ba3bc7e8cc7" + }, + { + "nr": 101579, + "hash": "d6209721bde251c12d7e1d8e663600b19af71ccd" + }, + { + "nr": 95286, + "hash": "d0592b4cb6aa08df6809584b28c5c3ec6edbfd62" + }, + { + "nr": 98377, + "hash": "8fd05a8b231885736568544933ee113300234eb1" + }, + { + "nr": 103307, + "hash": "2279244a206be4217209f6ab34775e69cca928d6" + }, + { + "nr": 101510, + "hash": "9d12d6a957724e0dad644e13d8de082a49dacb0d" + }, + { + "nr": 101652, + "hash": "dffd4c31851f6a24d880b0576b8060193d783aeb" + }, + { + "nr": 102239, + "hash": "d7fc97e8afaa727e804e13f89c648326b9c3a2d7" + }, + { + "nr": 101394, + "hash": "b4c376d4dafd897fbe3f7c44346f1277190513a6" + }, + { + "nr": 102093, + "hash": "883be024d3ed7afb292dacb8b4117c50e1e16edb" + }, + { + "nr": 99069, + "hash": "900ec0c97d97c6065b2e9c29e4f1750c56b14224" + }, + { + "nr": 102022, + "hash": "66fea9974dce7f18da1117d0ba812f239bdee607" + }, + { + "nr": 102689, + "hash": "e7443cbaae3218775400a1e9d720598472f441e3" + }, + { + "nr": 102502, + "hash": "9e518b110f07e3764e5e5cbe1736344b2e59f941" + }, + { + "nr": 102455, + "hash": "c16a5c605ce87b94e403cf446393f62eb4d7ce19" + }, + { + "nr": 100183, + "hash": "e13b5542117bb6e02277e0721afc936ce9ccf160" + }, + { + "nr": 102063, + "hash": "93695d7762366205908207ab906ed0fd5f27bc04" + }, + { + "nr": 100842, + "hash": "ed72eb0f9cf6aa3b8ec87384bfe400ee4a4cf0ad" + }, + { + "nr": 102005, + "hash": "e4dd2cf0ba0cd417ad1282da705dc3103e10ed76" + }, + { + "nr": 103462, + "hash": "dc58605c2496e1ddc8289df193ff030363256e87" + }, + { + "nr": 102859, + "hash": "e367048607462260d7fb756ca1d761e99a37984e" + }, + { + "nr": 94942, + "hash": "ff9aadf892928c584c7c13b1c2419410e536d1f7" + }, + { + "nr": 100350, + "hash": "71a2768027b6a24717955bae6b0ff6e12de68656" + }, + { + "nr": 100635, + "hash": "ca61e692b7c3b5803634e2b9f5de7caab594f23a" + }, + { + "nr": 100369, + "hash": "f2a15c8c5e63303f3ac46bbfb21a6a237b9abc15" + }, + { + "nr": 102788, + "hash": "39a4465ced0bb97bf9a8d2857c8ece258a7c5ad3" + }, + { + "nr": 101420, + "hash": "0107da33bc3561ca8b52bab9c3a08b417c3727e7" + }, + { + "nr": 100694, + "hash": "6f89905682df212f7d1264dfd56ef1f3491b0dcb" + }, + { + "nr": 102966, + "hash": "72ea2ffeba2fab3cbd71e96f82e87f21d5188db4" + }, + { + "nr": 97028, + "hash": "9f194bad93e4c671b69aa7c56d7a69ba66e43a0f" + }, + { + "nr": 102873, + "hash": "23c83cf03d8528bbcf3fd72048a5b246d6ea749e" + } + ] } \ No newline at end of file diff --git a/releases/release-1.22/release-notes/sessions/maps-1626709760.json b/releases/release-1.22/release-notes/sessions/maps-1626709760.json index 6a2c7deb53e..da52be177db 100644 --- a/releases/release-1.22/release-notes/sessions/maps-1626709760.json +++ b/releases/release-1.22/release-notes/sessions/maps-1626709760.json @@ -1,827 +1,827 @@ -{ - "mail": "sladygit98@gmail.com", - "name": "Sladyn Nunes", - "date": 1626709760, - "prs": [ - { - "nr": 102890, - "hash": "697bb247a010752cceed4aafa7eb81ffad50743d" - }, - { - "nr": 101809, - "hash": "71f5ffb9beb6e08b9006620c9a8f7c938dfe7ff2" - }, - { - "nr": 101110, - "hash": "21604b01fb7c68257bb1347a45bdb58ce0872b9f" - }, - { - "nr": 100404, - "hash": "23cb1da0660e2388f40c1e5bf5f59c7ba2b3c326" - }, - { - "nr": 103276, - "hash": "5cd3efbb02d34cd2b63826d7ed701344a055a864" - }, - { - "nr": 101294, - "hash": "48fdea7ddd5289454ed91b48aa0a452e87e7664e" - }, - { - "nr": 100976, - "hash": "d23dc2239bf678adbe71a788031c07dda6820b87" - }, - { - "nr": 102030, - "hash": "978423f70faa25b4aebd6756e555f134e18c882c" - }, - { - "nr": 101067, - "hash": "cbca6666d099426f9a43857d37f4f6ec99e1ef5d" - }, - { - "nr": 103390, - "hash": "5b90491f3bed0ecd8bd64fa31b91b3f1edaff661" - }, - { - "nr": 102386, - "hash": "2db3421651ab7fdd5d52a5a555bc1ffa490518cd" - }, - { - "nr": 102788, - "hash": "39a4465ced0bb97bf9a8d2857c8ece258a7c5ad3" - }, - { - "nr": 102467, - "hash": "0ef9f36d66bf1dd98f8af5857c7eaeadfcdb4781" - }, - { - "nr": 100608, - "hash": "18e4a6f9f2ff286943fd001e20545abd59af22e9" - }, - { - "nr": 101510, - "hash": "9d12d6a957724e0dad644e13d8de082a49dacb0d" - }, - { - "nr": 101411, - "hash": "56164cdcb9fc3488f75b0b6dd3df8166d48a644d" - }, - { - "nr": 99900, - "hash": "4e2815a09b542a875d9a0e8e412ef628e828003d" - }, - { - "nr": 100575, - "hash": "8534abb026ac07baa5071825bf9a82f61113eb31" - }, - { - "nr": 94942, - "hash": "ff9aadf892928c584c7c13b1c2419410e536d1f7" - }, - { - "nr": 98287, - "hash": "7fee1d2edcd639bc6d780bc0219aa1f88d40be03" - }, - { - "nr": 101449, - "hash": "31bd788489434bc2e2d79da7f7257af8bf063d08" - }, - { - "nr": 101155, - "hash": "81c1925788bb0604db208817a00b7eebf85c689b" - }, - { - "nr": 103307, - "hash": "2279244a206be4217209f6ab34775e69cca928d6" - }, - { - "nr": 101739, - "hash": "af9967ee04cb0e89a7ef77d07b81410ae3b1bc9c" - }, - { - "nr": 101398, - "hash": "b015a1151d5e44ccd5f235511dbe419809353236" - }, - { - "nr": 101342, - "hash": "8b07b557e07a4019d94e93568fb8dc803760486a" - }, - { - "nr": 100267, - "hash": "072bd753896c0b5c71c941b6ea9437a017021354" - }, - { - "nr": 102966, - "hash": "72ea2ffeba2fab3cbd71e96f82e87f21d5188db4" - }, - { - "nr": 99582, - "hash": "4e805696477fb4c0050c293c53fc3c99414b41c0" - }, - { - "nr": 101767, - "hash": "d8ce103078754bb1c861d035e02da8b9fd02fa2a" - }, - { - "nr": 97238, - "hash": "41dfe2688c85a880e8a58f2b0f3ae74fc8dabdd7" - }, - { - "nr": 102783, - "hash": "caa96f56920b0ea6a6d38110ed86524728194bfb" - }, - { - "nr": 102239, - "hash": "d7fc97e8afaa727e804e13f89c648326b9c3a2d7" - }, - { - "nr": 103318, - "hash": "e84e59be83e23871b35e3ec4751f7f16d097caac" - }, - { - "nr": 101822, - "hash": "2f6484f86821371cca9aeeb91c142ee6cef354fc" - }, - { - "nr": 101938, - "hash": "b445e7042150dac42f2ab5498dadd0ac652e6e8b" - }, - { - "nr": 101857, - "hash": "5b46c8f041c4dc4d1490f2a1a6f5cbdea147d882" - }, - { - "nr": 95387, - "hash": "d47d50e11a10dcf3c63e985815cd311548014817" - }, - { - "nr": 101080, - "hash": "7999ca435db97d1d79bf1ec6c9b0d912c111e95b" - }, - { - "nr": 99963, - "hash": "6da1284e36a8da521da1982a0d1f4898a51507cc" - }, - { - "nr": 102177, - "hash": "cafa3d0ac7e629554f81fabb726fd0f1d814b369" - }, - { - "nr": 102823, - "hash": "3e47814bbc98274ba5a1d729a82c2a98e5a5a471" - }, - { - "nr": 103019, - "hash": "6e0232a64075a51996fe4c948c0a17db115c352b" - }, - { - "nr": 102176, - "hash": "48be1eb6f3a2c40b05288ce09a29d65853e11259" - }, - { - "nr": 101587, - "hash": "3d2b24c1dc0d54a9d30b019affa52c2de86c0935" - }, - { - "nr": 101025, - "hash": "816d7798b3aa0ed86d26ee2da2cf0da2a9258444" - }, - { - "nr": 101737, - "hash": "d72d540813438da5752ef1d7a864afde11771d44" - }, - { - "nr": 102859, - "hash": "e367048607462260d7fb756ca1d761e99a37984e" - }, - { - "nr": 101943, - "hash": "c1b6ebd75c8e8cfcf0692ae6aec4b126020c0421" - }, - { - "nr": 102620, - "hash": "0a45b3a1e2f836e0abcc7cfc4ed3a77e0d004290" - }, - { - "nr": 102539, - "hash": "e3c161847e05d93104d7c895add97ef5b1b9a151" - }, - { - "nr": 92739, - "hash": "dbbc5209a9a55f2264d93512fbb3b3896619264a" - }, - { - "nr": 101534, - "hash": "6e2582ac043c09d79631ba79433e236366ff2fa3" - }, - { - "nr": 101093, - "hash": "3072f89a2dcde3cc27afe42428a62ba3bc7e8cc7" - }, - { - "nr": 103244, - "hash": "8e9a4eab4c9b6c87969393f183260981bb30966b" - }, - { - "nr": 102892, - "hash": "160b73ce91415d2dbcf93bc060618442c16a62db" - }, - { - "nr": 101316, - "hash": "9f0e6e06b35c0ebe2af3b837f5edd1a48d75a522" - }, - { - "nr": 101647, - "hash": "2e3408490fca649a82c990115c4c9ba9f33096a5" - }, - { - "nr": 102005, - "hash": "e4dd2cf0ba0cd417ad1282da705dc3103e10ed76" - }, - { - "nr": 102083, - "hash": "c909cddc8d9d4bb161449aeada15509bac1ec553" - }, - { - "nr": 101235, - "hash": "d7fca9358b3e35c0890466296ea6f6ea66b28e01" - }, - { - "nr": 100599, - "hash": "41e71a1308a247c2f24538db20233da0a8798876" - }, - { - "nr": 103245, - "hash": "cdd58dfec89a99eb1e4f123f4a40c6bbb3ae2b96" - }, - { - "nr": 102028, - "hash": "07d4d11272a5d7bac229cb6efd6bbe61a91b97c9" - }, - { - "nr": 102825, - "hash": "f48832eda1e1a175bddcede27d5ed5228a3fb3cb" - }, - { - "nr": 102366, - "hash": "8f959163a98bd80d954162582deda4c6f836aa31" - }, - { - "nr": 101950, - "hash": "b774ea2ca2c182d9c1007170594f4e3954a855e4" - }, - { - "nr": 100262, - "hash": "2a5f3c467312569a6a91617fbb489c60390e24aa" - }, - { - "nr": 103383, - "hash": "2f611ba5bcb72af6b5562850c4069df156eb5650" - }, - { - "nr": 103306, - "hash": "a94cc151e5348e20eca6e4bc8ad199526f4e7c3c" - }, - { - "nr": 102965, - "hash": "bcba9b549a75869d149a39ee4acb99e1cc3981c2" - }, - { - "nr": 101916, - "hash": "0bbda1b6691cfb72c18c320ca26a73de39819969" - }, - { - "nr": 101780, - "hash": "57f873f67420cfd75799dd86a73aee02be0feba6" - }, - { - "nr": 101420, - "hash": "0107da33bc3561ca8b52bab9c3a08b417c3727e7" - }, - { - "nr": 103284, - "hash": "583d760264f0af643eb8fcf9499d6ec797e385f9" - }, - { - "nr": 101946, - "hash": "fc49f0446f03a6b922c445f21d9d83927f92f268" - }, - { - "nr": 97028, - "hash": "9f194bad93e4c671b69aa7c56d7a69ba66e43a0f" - }, - { - "nr": 101685, - "hash": "8a02537e1d0ba787c26146943074581d3c559c9b" - }, - { - "nr": 101747, - "hash": "04f0fe844f85dbf54b2fcd45094dc51c716d2285" - }, - { - "nr": 99095, - "hash": "be8684f5602681d72fea9108bf545d17c41dda2d" - }, - { - "nr": 100200, - "hash": "0267b0544ae992d287a9229adceb6c7118667f32" - }, - { - "nr": 103553, - "hash": "00540ff96c139f135f627ffb00e2ee7a11472080" - }, - { - "nr": 103533, - "hash": "dc6078647d8699e69e5c06dc8c339e4ea4fe2bea" - }, - { - "nr": 103457, - "hash": "b0cc3f4ab9a5c6aa1eb7ebbb1fe102edc14a8f4c" - }, - { - "nr": 102323, - "hash": "5df2b1daec5a60c20b127cb011df865c5627761a" - }, - { - "nr": 101578, - "hash": "4460531dff79877413084ab3f92ef0515d4b4165" - }, - { - "nr": 101057, - "hash": "5166f6f80093377c314157b52edf83af02370507" - }, - { - "nr": 100680, - "hash": "43f9cd2715527cd3ce0ff2c14d9c2f87e9949345" - }, - { - "nr": 98238, - "hash": "6a18f3b3753f7b2a5c9ceeea4b3378300bf6e0a4" - }, - { - "nr": 102858, - "hash": "ca0496739e02f60ebdbdc982e2d3514b9626ead4" - }, - { - "nr": 102805, - "hash": "300f21b8294125a2deb3761e8d289bfde55540ac" - }, - { - "nr": 102171, - "hash": "11abb0a3243bd4cb47864ad4fdea4dae2de71a80" - }, - { - "nr": 100136, - "hash": "e02c67d15716421f0d989ce25860bfb2349f5b8f" - }, - { - "nr": 101171, - "hash": "a036612ddc2526f85118d6de7254cab79bf90721" - }, - { - "nr": 102455, - "hash": "c16a5c605ce87b94e403cf446393f62eb4d7ce19" - }, - { - "nr": 100435, - "hash": "93992889028a3ea25e34c33d6fd48b0ac74e6336" - }, - { - "nr": 103082, - "hash": "83226d59332a9c5eb5dd8f5f1ce99e44cd6cca41" - }, - { - "nr": 102689, - "hash": "e7443cbaae3218775400a1e9d720598472f441e3" - }, - { - "nr": 101394, - "hash": "b4c376d4dafd897fbe3f7c44346f1277190513a6" - }, - { - "nr": 101186, - "hash": "c4c332ff7b9c1e845f1eacb8d77fbe435cc59209" - }, - { - "nr": 100942, - "hash": "258b1e236266444a8862a1ce81b2216f8b3b0967" - }, - { - "nr": 101082, - "hash": "7a6c780ac9b033b6377a69513dcdfc200cff50fa" - }, - { - "nr": 101977, - "hash": "a7b3ec904ce6fc5ddd677a5fb53e80dafe8f7bae" - }, - { - "nr": 101436, - "hash": "e1325505103723115e2c22e18eca6c4613d6433f" - }, - { - "nr": 101048, - "hash": "dc12393b90cdf25a8f9aea2dd468ab5e91c3f1fc" - }, - { - "nr": 92863, - "hash": "247701531a152ac6e2b7620ce3f4a56959374e82" - }, - { - "nr": 102412, - "hash": "6c8fbc26b00afa2e3f82140aaa30f9d69d1732ed" - }, - { - "nr": 101915, - "hash": "ea12525c9de541d3b096be1ad8308d026373189a" - }, - { - "nr": 102344, - "hash": "01fa2d4d5a65f1ede51e58171070a206bd5ed866" - }, - { - "nr": 103520, - "hash": "d884d6c3f0bc39b1c6fa90096c2d762d35a43a3e" - }, - { - "nr": 100412, - "hash": "00cb0a42fd63d9811b41adfcb5d730bd0acff333" - }, - { - "nr": 100724, - "hash": "a4c0042b0069fa53b62327f1623fd14a1adf252c" - }, - { - "nr": 100635, - "hash": "ca61e692b7c3b5803634e2b9f5de7caab594f23a" - }, - { - "nr": 100100, - "hash": "0337163f7fd1ecf21d587f7d7e96c505708df26c" - }, - { - "nr": 103541, - "hash": "6af7f0370a10bc2e19c6caa779e72beea81ec54b" - }, - { - "nr": 98350, - "hash": "43d6cc0cbc6ca8dee7a850845064fac192544810" - }, - { - "nr": 102155, - "hash": "89b842a7ccc34265cc1bbd6cd65793e0ed71765d" - }, - { - "nr": 100754, - "hash": "85d2ae62a405f043c3090e838b42531dd829e33e" - }, - { - "nr": 102093, - "hash": "883be024d3ed7afb292dacb8b4117c50e1e16edb" - }, - { - "nr": 100940, - "hash": "792cd36cb7d51efa5d507eb97fb5afc59dff5e2f" - }, - { - "nr": 101005, - "hash": "f57f2515df9eb362991c2b21d84f0ffe61da554d" - }, - { - "nr": 103216, - "hash": "f0be0898b30461877c57eb24c905693048790c8e" - }, - { - "nr": 102964, - "hash": "769c65f18fc2541c4ed083b19dd894422cda8cd9" - }, - { - "nr": 103218, - "hash": "37b3de98e31c1dab95061f25ef66db2f853a5ffd" - }, - { - "nr": 98377, - "hash": "8fd05a8b231885736568544933ee113300234eb1" - }, - { - "nr": 98866, - "hash": "98e1c4019207215e53d8a0dc02e4a5810be7fb9a" - }, - { - "nr": 101581, - "hash": "10fd909f6e4ac9dc292b6b9e8688241c51691ecd" - }, - { - "nr": 102297, - "hash": "a2a80b3ed6363aa0dd0638593ccc3ab2ca3d6fc6" - }, - { - "nr": 103176, - "hash": "ea2b6d6b4a6a9f37737b01b6166c5f2287240b5a" - }, - { - "nr": 102363, - "hash": "3777904002022d4c5ac2da98caeeb29db90d5a47" - }, - { - "nr": 101560, - "hash": "f035b68e99b690658c78227b4b0c003976eed9fc" - }, - { - "nr": 101160, - "hash": "9a51e7506335014fffbbc6d4c2567640e3a85ec0" - }, - { - "nr": 100436, - "hash": "02e1d8a1b5597532f24308d22ea1ff341020db97" - }, - { - "nr": 99378, - "hash": "ef812e9341a6eb8a772a17b79ab5343d04bf4549" - }, - { - "nr": 102898, - "hash": "6499a732b5c51b092cfee60af2a6dc2ee4dbdea5" - }, - { - "nr": 103514, - "hash": "7ab22ce8250a15af5ff2f0d01af0b598cbbddf75" - }, - { - "nr": 102461, - "hash": "adb209eac8251730de75d100d14942ea90f6aecf" - }, - { - "nr": 96084, - "hash": "6fb752365a72b7afa62f13bdb417963cc5a4bcf5" - }, - { - "nr": 95396, - "hash": "42a1ce850c33c8bbe9471506e035d09e832dec9d" - }, - { - "nr": 100139, - "hash": "ee92261979a1b5587298e9edd59dc7a616e5754d" - }, - { - "nr": 100110, - "hash": "e163f15fe3fe8b86615c299a955ca1c144fe3d85" - }, - { - "nr": 101296, - "hash": "ba6bde8ca5fd9d19ac1926455e727c28dd2a4056" - }, - { - "nr": 103129, - "hash": "57cdd9c3862054121dd7a00b01926e35f68bddea" - }, - { - "nr": 102067, - "hash": "c272e8d87f71a4f706d269c84b800eacabbe037a" - }, - { - "nr": 102302, - "hash": "0c6d521e3cb330d951829a4cfa806972983e0738" - }, - { - "nr": 101203, - "hash": "a87ce6fc9320b0d6a5d6b45f9f367b1d3f0a0578" - }, - { - "nr": 100956, - "hash": "aa24402651b994f4f93712d532fe94baf15bac1a" - }, - { - "nr": 100148, - "hash": "0c84f8bf0eca51210e9377d7830662c1ab766128" - }, - { - "nr": 98431, - "hash": "b440eaa81f1d81edc8cda120786793b8f289466c" - }, - { - "nr": 102731, - "hash": "1ce9b11617ed1ba16902a3ed7004ef162f25e3e4" - }, - { - "nr": 102489, - "hash": "14ec7979413b736475d79e90eedfcc24d521630c" - }, - { - "nr": 101862, - "hash": "fde59f848c3afefd6e07ec9d5e41748695caaabf" - }, - { - "nr": 101542, - "hash": "0b626b4f5138c59a0008460922484b62c2ba2cb1" - }, - { - "nr": 101592, - "hash": "432bd35e1cfe965b4f04086e9921b3974b14ab10" - }, - { - "nr": 101477, - "hash": "904489b296e177c53e8970b64e4227f25f74bc16" - }, - { - "nr": 101120, - "hash": "0313ef8221125aa9e6e102bf0738fa1a2dbb6352" - }, - { - "nr": 100085, - "hash": "746a815234b0fd324f26cf4a637b2dede90aaf0e" - }, - { - "nr": 99494, - "hash": "67cb3ced683b9e64166b6a2524d6e71c1a892011" - }, - { - "nr": 99364, - "hash": "389200e43d3f5a6a82d3607c9548507055da25c5" - }, - { - "nr": 101688, - "hash": "b32c1e3208e46b01ea0e11f2c3ed4b75f6ea035b" - }, - { - "nr": 101272, - "hash": "9bb59dd1967460a1ffd287df8e9d620c026d846c" - }, - { - "nr": 99069, - "hash": "900ec0c97d97c6065b2e9c29e4f1750c56b14224" - }, - { - "nr": 100350, - "hash": "71a2768027b6a24717955bae6b0ff6e12de68656" - }, - { - "nr": 93260, - "hash": "b1719d02cb67be56fbe76aab1e6e51196209d82d" - }, - { - "nr": 97989, - "hash": "9032a8704f843159178782af3eda05379ea233d7" - }, - { - "nr": 102970, - "hash": "956d9ae4d3d2532d620b77a7accbf07c4829ce98" - }, - { - "nr": 101256, - "hash": "1578c3c849ecdb60c5e21deafc9cb124a11bb811" - }, - { - "nr": 99647, - "hash": "41ae1888e62249123bed026c93aa4bb19cb65ab0" - }, - { - "nr": 101523, - "hash": "0ae3892565ce76c9eeca2b5252460979dcc4647e" - }, - { - "nr": 101104, - "hash": "e3184de93cf75f46bd271813dc0a4c218bc7dc1b" - }, - { - "nr": 68004, - "hash": "e0875378b21ada4303e10ec0e42e1cbc1f2070be" - }, - { - "nr": 99829, - "hash": "750660d746f2050154c5854e1b12c2e8b9b90910" - }, - { - "nr": 102711, - "hash": "e7dafb6c7d990935b8c40305c7d3bed455571fb3" - }, - { - "nr": 102039, - "hash": "02998efa3d6fc799da38a8cf4ea33fe1e0f6065f" - }, - { - "nr": 102332, - "hash": "2ec27a73fc3ae91828907af58457bea08a43876f" - }, - { - "nr": 100322, - "hash": "333ddc322e8441e9740bae406483ed79650d666e" - }, - { - "nr": 103190, - "hash": "9ca4f70be4a4e0e3f9e176f81f9461206a3b5c4a" - }, - { - "nr": 102443, - "hash": "0015b6e1c2c82f13fe51bde68dabfb02db1ae9e2" - }, - { - "nr": 102502, - "hash": "9e518b110f07e3764e5e5cbe1736344b2e59f941" - }, - { - "nr": 100913, - "hash": "8a1eec28d3658a94423e3d05f18a8325a9dddf5b" - }, - { - "nr": 99023, - "hash": "6108c705b2def99469923ae33841668699580843" - }, - { - "nr": 102578, - "hash": "695de2fa568c5cb2d160ec4e4c392fdb5ef6735a" - }, - { - "nr": 102437, - "hash": "609b638b311307f5c3a548573a9ba4bba88e4fd0" - }, - { - "nr": 102665, - "hash": "e3c5e9c01a3d1bd015c8c3100972506c90a69f64" - }, - { - "nr": 100861, - "hash": "1a3b09c533c19ee46ac13eab06d71a5a8f326365" - }, - { - "nr": 100678, - "hash": "56d2d79e98baf82fb6732d14af00368b514751b1" - }, - { - "nr": 102188, - "hash": "a9f207671953494fcdd5272a9e10c3c9a15f59fd" - }, - { - "nr": 103326, - "hash": "b85495c68cbd1074d9207c96aba12c22e78a93e5" - }, - { - "nr": 102466, - "hash": "e83156169fb33dee2e0b3fcfae7b572cde6a1ab9" - }, - { - "nr": 102642, - "hash": "36214042aa0070d3f8adf3b9e69083bd387a207d" - }, - { - "nr": 102598, - "hash": "5c76f89fe345d5449c7691ec675a7236c1f38e1c" - }, - { - "nr": 100141, - "hash": "62c76655fe5fdfce1df476856c915ffe433b0d34" - }, - { - "nr": 103292, - "hash": "c65a4bfb6fe706dae283584445aae15ac5cdf8a7" - }, - { - "nr": 102901, - "hash": "59be6fc7fff500a3dcb80a117b0c919b3046cb07" - }, - { - "nr": 100369, - "hash": "f2a15c8c5e63303f3ac46bbfb21a6a237b9abc15" - }, - { - "nr": 101742, - "hash": "37efc617e3838144fd60bc8c8912dd5a8efc1e4d" - }, - { - "nr": 96216, - "hash": "031a5e249b88f103dc51f501024dfbbf86c5771a" - }, - { - "nr": 100944, - "hash": "ccec86591f9e1465ee67e8dcd5ed0de588a92dc9" - }, - { - "nr": 100612, - "hash": "974ecbcdaae9ba8c8367aad80aa1c756261f9629" - }, - { - "nr": 101129, - "hash": "591db802cb911785619135662993796aa8b3866a" - }, - { - "nr": 103601, - "hash": "6bad99e300551faafd6e7819b03c93164f076311" - }, - { - "nr": 103063, - "hash": "866daf60b0c2b4a9fe4bc6ad95a2a8cf40e39966" - }, - { - "nr": 103133, - "hash": "6391b81add9bf9d0605ca80fd5adb46230cba87d" - }, - { - "nr": 98077, - "hash": "685549f93ffaacd9306723dfc7ba452a3ea61794" - }, - { - "nr": 101992, - "hash": "062f78c7d6d493a960678ec2015469214826de13" - } - ] +{ + "mail": "sladygit98@gmail.com", + "name": "Sladyn Nunes", + "date": 1626709760, + "prs": [ + { + "nr": 102890, + "hash": "697bb247a010752cceed4aafa7eb81ffad50743d" + }, + { + "nr": 101809, + "hash": "71f5ffb9beb6e08b9006620c9a8f7c938dfe7ff2" + }, + { + "nr": 101110, + "hash": "21604b01fb7c68257bb1347a45bdb58ce0872b9f" + }, + { + "nr": 100404, + "hash": "23cb1da0660e2388f40c1e5bf5f59c7ba2b3c326" + }, + { + "nr": 103276, + "hash": "5cd3efbb02d34cd2b63826d7ed701344a055a864" + }, + { + "nr": 101294, + "hash": "48fdea7ddd5289454ed91b48aa0a452e87e7664e" + }, + { + "nr": 100976, + "hash": "d23dc2239bf678adbe71a788031c07dda6820b87" + }, + { + "nr": 102030, + "hash": "978423f70faa25b4aebd6756e555f134e18c882c" + }, + { + "nr": 101067, + "hash": "cbca6666d099426f9a43857d37f4f6ec99e1ef5d" + }, + { + "nr": 103390, + "hash": "5b90491f3bed0ecd8bd64fa31b91b3f1edaff661" + }, + { + "nr": 102386, + "hash": "2db3421651ab7fdd5d52a5a555bc1ffa490518cd" + }, + { + "nr": 102788, + "hash": "39a4465ced0bb97bf9a8d2857c8ece258a7c5ad3" + }, + { + "nr": 102467, + "hash": "0ef9f36d66bf1dd98f8af5857c7eaeadfcdb4781" + }, + { + "nr": 100608, + "hash": "18e4a6f9f2ff286943fd001e20545abd59af22e9" + }, + { + "nr": 101510, + "hash": "9d12d6a957724e0dad644e13d8de082a49dacb0d" + }, + { + "nr": 101411, + "hash": "56164cdcb9fc3488f75b0b6dd3df8166d48a644d" + }, + { + "nr": 99900, + "hash": "4e2815a09b542a875d9a0e8e412ef628e828003d" + }, + { + "nr": 100575, + "hash": "8534abb026ac07baa5071825bf9a82f61113eb31" + }, + { + "nr": 94942, + "hash": "ff9aadf892928c584c7c13b1c2419410e536d1f7" + }, + { + "nr": 98287, + "hash": "7fee1d2edcd639bc6d780bc0219aa1f88d40be03" + }, + { + "nr": 101449, + "hash": "31bd788489434bc2e2d79da7f7257af8bf063d08" + }, + { + "nr": 101155, + "hash": "81c1925788bb0604db208817a00b7eebf85c689b" + }, + { + "nr": 103307, + "hash": "2279244a206be4217209f6ab34775e69cca928d6" + }, + { + "nr": 101739, + "hash": "af9967ee04cb0e89a7ef77d07b81410ae3b1bc9c" + }, + { + "nr": 101398, + "hash": "b015a1151d5e44ccd5f235511dbe419809353236" + }, + { + "nr": 101342, + "hash": "8b07b557e07a4019d94e93568fb8dc803760486a" + }, + { + "nr": 100267, + "hash": "072bd753896c0b5c71c941b6ea9437a017021354" + }, + { + "nr": 102966, + "hash": "72ea2ffeba2fab3cbd71e96f82e87f21d5188db4" + }, + { + "nr": 99582, + "hash": "4e805696477fb4c0050c293c53fc3c99414b41c0" + }, + { + "nr": 101767, + "hash": "d8ce103078754bb1c861d035e02da8b9fd02fa2a" + }, + { + "nr": 97238, + "hash": "41dfe2688c85a880e8a58f2b0f3ae74fc8dabdd7" + }, + { + "nr": 102783, + "hash": "caa96f56920b0ea6a6d38110ed86524728194bfb" + }, + { + "nr": 102239, + "hash": "d7fc97e8afaa727e804e13f89c648326b9c3a2d7" + }, + { + "nr": 103318, + "hash": "e84e59be83e23871b35e3ec4751f7f16d097caac" + }, + { + "nr": 101822, + "hash": "2f6484f86821371cca9aeeb91c142ee6cef354fc" + }, + { + "nr": 101938, + "hash": "b445e7042150dac42f2ab5498dadd0ac652e6e8b" + }, + { + "nr": 101857, + "hash": "5b46c8f041c4dc4d1490f2a1a6f5cbdea147d882" + }, + { + "nr": 95387, + "hash": "d47d50e11a10dcf3c63e985815cd311548014817" + }, + { + "nr": 101080, + "hash": "7999ca435db97d1d79bf1ec6c9b0d912c111e95b" + }, + { + "nr": 99963, + "hash": "6da1284e36a8da521da1982a0d1f4898a51507cc" + }, + { + "nr": 102177, + "hash": "cafa3d0ac7e629554f81fabb726fd0f1d814b369" + }, + { + "nr": 102823, + "hash": "3e47814bbc98274ba5a1d729a82c2a98e5a5a471" + }, + { + "nr": 103019, + "hash": "6e0232a64075a51996fe4c948c0a17db115c352b" + }, + { + "nr": 102176, + "hash": "48be1eb6f3a2c40b05288ce09a29d65853e11259" + }, + { + "nr": 101587, + "hash": "3d2b24c1dc0d54a9d30b019affa52c2de86c0935" + }, + { + "nr": 101025, + "hash": "816d7798b3aa0ed86d26ee2da2cf0da2a9258444" + }, + { + "nr": 101737, + "hash": "d72d540813438da5752ef1d7a864afde11771d44" + }, + { + "nr": 102859, + "hash": "e367048607462260d7fb756ca1d761e99a37984e" + }, + { + "nr": 101943, + "hash": "c1b6ebd75c8e8cfcf0692ae6aec4b126020c0421" + }, + { + "nr": 102620, + "hash": "0a45b3a1e2f836e0abcc7cfc4ed3a77e0d004290" + }, + { + "nr": 102539, + "hash": "e3c161847e05d93104d7c895add97ef5b1b9a151" + }, + { + "nr": 92739, + "hash": "dbbc5209a9a55f2264d93512fbb3b3896619264a" + }, + { + "nr": 101534, + "hash": "6e2582ac043c09d79631ba79433e236366ff2fa3" + }, + { + "nr": 101093, + "hash": "3072f89a2dcde3cc27afe42428a62ba3bc7e8cc7" + }, + { + "nr": 103244, + "hash": "8e9a4eab4c9b6c87969393f183260981bb30966b" + }, + { + "nr": 102892, + "hash": "160b73ce91415d2dbcf93bc060618442c16a62db" + }, + { + "nr": 101316, + "hash": "9f0e6e06b35c0ebe2af3b837f5edd1a48d75a522" + }, + { + "nr": 101647, + "hash": "2e3408490fca649a82c990115c4c9ba9f33096a5" + }, + { + "nr": 102005, + "hash": "e4dd2cf0ba0cd417ad1282da705dc3103e10ed76" + }, + { + "nr": 102083, + "hash": "c909cddc8d9d4bb161449aeada15509bac1ec553" + }, + { + "nr": 101235, + "hash": "d7fca9358b3e35c0890466296ea6f6ea66b28e01" + }, + { + "nr": 100599, + "hash": "41e71a1308a247c2f24538db20233da0a8798876" + }, + { + "nr": 103245, + "hash": "cdd58dfec89a99eb1e4f123f4a40c6bbb3ae2b96" + }, + { + "nr": 102028, + "hash": "07d4d11272a5d7bac229cb6efd6bbe61a91b97c9" + }, + { + "nr": 102825, + "hash": "f48832eda1e1a175bddcede27d5ed5228a3fb3cb" + }, + { + "nr": 102366, + "hash": "8f959163a98bd80d954162582deda4c6f836aa31" + }, + { + "nr": 101950, + "hash": "b774ea2ca2c182d9c1007170594f4e3954a855e4" + }, + { + "nr": 100262, + "hash": "2a5f3c467312569a6a91617fbb489c60390e24aa" + }, + { + "nr": 103383, + "hash": "2f611ba5bcb72af6b5562850c4069df156eb5650" + }, + { + "nr": 103306, + "hash": "a94cc151e5348e20eca6e4bc8ad199526f4e7c3c" + }, + { + "nr": 102965, + "hash": "bcba9b549a75869d149a39ee4acb99e1cc3981c2" + }, + { + "nr": 101916, + "hash": "0bbda1b6691cfb72c18c320ca26a73de39819969" + }, + { + "nr": 101780, + "hash": "57f873f67420cfd75799dd86a73aee02be0feba6" + }, + { + "nr": 101420, + "hash": "0107da33bc3561ca8b52bab9c3a08b417c3727e7" + }, + { + "nr": 103284, + "hash": "583d760264f0af643eb8fcf9499d6ec797e385f9" + }, + { + "nr": 101946, + "hash": "fc49f0446f03a6b922c445f21d9d83927f92f268" + }, + { + "nr": 97028, + "hash": "9f194bad93e4c671b69aa7c56d7a69ba66e43a0f" + }, + { + "nr": 101685, + "hash": "8a02537e1d0ba787c26146943074581d3c559c9b" + }, + { + "nr": 101747, + "hash": "04f0fe844f85dbf54b2fcd45094dc51c716d2285" + }, + { + "nr": 99095, + "hash": "be8684f5602681d72fea9108bf545d17c41dda2d" + }, + { + "nr": 100200, + "hash": "0267b0544ae992d287a9229adceb6c7118667f32" + }, + { + "nr": 103553, + "hash": "00540ff96c139f135f627ffb00e2ee7a11472080" + }, + { + "nr": 103533, + "hash": "dc6078647d8699e69e5c06dc8c339e4ea4fe2bea" + }, + { + "nr": 103457, + "hash": "b0cc3f4ab9a5c6aa1eb7ebbb1fe102edc14a8f4c" + }, + { + "nr": 102323, + "hash": "5df2b1daec5a60c20b127cb011df865c5627761a" + }, + { + "nr": 101578, + "hash": "4460531dff79877413084ab3f92ef0515d4b4165" + }, + { + "nr": 101057, + "hash": "5166f6f80093377c314157b52edf83af02370507" + }, + { + "nr": 100680, + "hash": "43f9cd2715527cd3ce0ff2c14d9c2f87e9949345" + }, + { + "nr": 98238, + "hash": "6a18f3b3753f7b2a5c9ceeea4b3378300bf6e0a4" + }, + { + "nr": 102858, + "hash": "ca0496739e02f60ebdbdc982e2d3514b9626ead4" + }, + { + "nr": 102805, + "hash": "300f21b8294125a2deb3761e8d289bfde55540ac" + }, + { + "nr": 102171, + "hash": "11abb0a3243bd4cb47864ad4fdea4dae2de71a80" + }, + { + "nr": 100136, + "hash": "e02c67d15716421f0d989ce25860bfb2349f5b8f" + }, + { + "nr": 101171, + "hash": "a036612ddc2526f85118d6de7254cab79bf90721" + }, + { + "nr": 102455, + "hash": "c16a5c605ce87b94e403cf446393f62eb4d7ce19" + }, + { + "nr": 100435, + "hash": "93992889028a3ea25e34c33d6fd48b0ac74e6336" + }, + { + "nr": 103082, + "hash": "83226d59332a9c5eb5dd8f5f1ce99e44cd6cca41" + }, + { + "nr": 102689, + "hash": "e7443cbaae3218775400a1e9d720598472f441e3" + }, + { + "nr": 101394, + "hash": "b4c376d4dafd897fbe3f7c44346f1277190513a6" + }, + { + "nr": 101186, + "hash": "c4c332ff7b9c1e845f1eacb8d77fbe435cc59209" + }, + { + "nr": 100942, + "hash": "258b1e236266444a8862a1ce81b2216f8b3b0967" + }, + { + "nr": 101082, + "hash": "7a6c780ac9b033b6377a69513dcdfc200cff50fa" + }, + { + "nr": 101977, + "hash": "a7b3ec904ce6fc5ddd677a5fb53e80dafe8f7bae" + }, + { + "nr": 101436, + "hash": "e1325505103723115e2c22e18eca6c4613d6433f" + }, + { + "nr": 101048, + "hash": "dc12393b90cdf25a8f9aea2dd468ab5e91c3f1fc" + }, + { + "nr": 92863, + "hash": "247701531a152ac6e2b7620ce3f4a56959374e82" + }, + { + "nr": 102412, + "hash": "6c8fbc26b00afa2e3f82140aaa30f9d69d1732ed" + }, + { + "nr": 101915, + "hash": "ea12525c9de541d3b096be1ad8308d026373189a" + }, + { + "nr": 102344, + "hash": "01fa2d4d5a65f1ede51e58171070a206bd5ed866" + }, + { + "nr": 103520, + "hash": "d884d6c3f0bc39b1c6fa90096c2d762d35a43a3e" + }, + { + "nr": 100412, + "hash": "00cb0a42fd63d9811b41adfcb5d730bd0acff333" + }, + { + "nr": 100724, + "hash": "a4c0042b0069fa53b62327f1623fd14a1adf252c" + }, + { + "nr": 100635, + "hash": "ca61e692b7c3b5803634e2b9f5de7caab594f23a" + }, + { + "nr": 100100, + "hash": "0337163f7fd1ecf21d587f7d7e96c505708df26c" + }, + { + "nr": 103541, + "hash": "6af7f0370a10bc2e19c6caa779e72beea81ec54b" + }, + { + "nr": 98350, + "hash": "43d6cc0cbc6ca8dee7a850845064fac192544810" + }, + { + "nr": 102155, + "hash": "89b842a7ccc34265cc1bbd6cd65793e0ed71765d" + }, + { + "nr": 100754, + "hash": "85d2ae62a405f043c3090e838b42531dd829e33e" + }, + { + "nr": 102093, + "hash": "883be024d3ed7afb292dacb8b4117c50e1e16edb" + }, + { + "nr": 100940, + "hash": "792cd36cb7d51efa5d507eb97fb5afc59dff5e2f" + }, + { + "nr": 101005, + "hash": "f57f2515df9eb362991c2b21d84f0ffe61da554d" + }, + { + "nr": 103216, + "hash": "f0be0898b30461877c57eb24c905693048790c8e" + }, + { + "nr": 102964, + "hash": "769c65f18fc2541c4ed083b19dd894422cda8cd9" + }, + { + "nr": 103218, + "hash": "37b3de98e31c1dab95061f25ef66db2f853a5ffd" + }, + { + "nr": 98377, + "hash": "8fd05a8b231885736568544933ee113300234eb1" + }, + { + "nr": 98866, + "hash": "98e1c4019207215e53d8a0dc02e4a5810be7fb9a" + }, + { + "nr": 101581, + "hash": "10fd909f6e4ac9dc292b6b9e8688241c51691ecd" + }, + { + "nr": 102297, + "hash": "a2a80b3ed6363aa0dd0638593ccc3ab2ca3d6fc6" + }, + { + "nr": 103176, + "hash": "ea2b6d6b4a6a9f37737b01b6166c5f2287240b5a" + }, + { + "nr": 102363, + "hash": "3777904002022d4c5ac2da98caeeb29db90d5a47" + }, + { + "nr": 101560, + "hash": "f035b68e99b690658c78227b4b0c003976eed9fc" + }, + { + "nr": 101160, + "hash": "9a51e7506335014fffbbc6d4c2567640e3a85ec0" + }, + { + "nr": 100436, + "hash": "02e1d8a1b5597532f24308d22ea1ff341020db97" + }, + { + "nr": 99378, + "hash": "ef812e9341a6eb8a772a17b79ab5343d04bf4549" + }, + { + "nr": 102898, + "hash": "6499a732b5c51b092cfee60af2a6dc2ee4dbdea5" + }, + { + "nr": 103514, + "hash": "7ab22ce8250a15af5ff2f0d01af0b598cbbddf75" + }, + { + "nr": 102461, + "hash": "adb209eac8251730de75d100d14942ea90f6aecf" + }, + { + "nr": 96084, + "hash": "6fb752365a72b7afa62f13bdb417963cc5a4bcf5" + }, + { + "nr": 95396, + "hash": "42a1ce850c33c8bbe9471506e035d09e832dec9d" + }, + { + "nr": 100139, + "hash": "ee92261979a1b5587298e9edd59dc7a616e5754d" + }, + { + "nr": 100110, + "hash": "e163f15fe3fe8b86615c299a955ca1c144fe3d85" + }, + { + "nr": 101296, + "hash": "ba6bde8ca5fd9d19ac1926455e727c28dd2a4056" + }, + { + "nr": 103129, + "hash": "57cdd9c3862054121dd7a00b01926e35f68bddea" + }, + { + "nr": 102067, + "hash": "c272e8d87f71a4f706d269c84b800eacabbe037a" + }, + { + "nr": 102302, + "hash": "0c6d521e3cb330d951829a4cfa806972983e0738" + }, + { + "nr": 101203, + "hash": "a87ce6fc9320b0d6a5d6b45f9f367b1d3f0a0578" + }, + { + "nr": 100956, + "hash": "aa24402651b994f4f93712d532fe94baf15bac1a" + }, + { + "nr": 100148, + "hash": "0c84f8bf0eca51210e9377d7830662c1ab766128" + }, + { + "nr": 98431, + "hash": "b440eaa81f1d81edc8cda120786793b8f289466c" + }, + { + "nr": 102731, + "hash": "1ce9b11617ed1ba16902a3ed7004ef162f25e3e4" + }, + { + "nr": 102489, + "hash": "14ec7979413b736475d79e90eedfcc24d521630c" + }, + { + "nr": 101862, + "hash": "fde59f848c3afefd6e07ec9d5e41748695caaabf" + }, + { + "nr": 101542, + "hash": "0b626b4f5138c59a0008460922484b62c2ba2cb1" + }, + { + "nr": 101592, + "hash": "432bd35e1cfe965b4f04086e9921b3974b14ab10" + }, + { + "nr": 101477, + "hash": "904489b296e177c53e8970b64e4227f25f74bc16" + }, + { + "nr": 101120, + "hash": "0313ef8221125aa9e6e102bf0738fa1a2dbb6352" + }, + { + "nr": 100085, + "hash": "746a815234b0fd324f26cf4a637b2dede90aaf0e" + }, + { + "nr": 99494, + "hash": "67cb3ced683b9e64166b6a2524d6e71c1a892011" + }, + { + "nr": 99364, + "hash": "389200e43d3f5a6a82d3607c9548507055da25c5" + }, + { + "nr": 101688, + "hash": "b32c1e3208e46b01ea0e11f2c3ed4b75f6ea035b" + }, + { + "nr": 101272, + "hash": "9bb59dd1967460a1ffd287df8e9d620c026d846c" + }, + { + "nr": 99069, + "hash": "900ec0c97d97c6065b2e9c29e4f1750c56b14224" + }, + { + "nr": 100350, + "hash": "71a2768027b6a24717955bae6b0ff6e12de68656" + }, + { + "nr": 93260, + "hash": "b1719d02cb67be56fbe76aab1e6e51196209d82d" + }, + { + "nr": 97989, + "hash": "9032a8704f843159178782af3eda05379ea233d7" + }, + { + "nr": 102970, + "hash": "956d9ae4d3d2532d620b77a7accbf07c4829ce98" + }, + { + "nr": 101256, + "hash": "1578c3c849ecdb60c5e21deafc9cb124a11bb811" + }, + { + "nr": 99647, + "hash": "41ae1888e62249123bed026c93aa4bb19cb65ab0" + }, + { + "nr": 101523, + "hash": "0ae3892565ce76c9eeca2b5252460979dcc4647e" + }, + { + "nr": 101104, + "hash": "e3184de93cf75f46bd271813dc0a4c218bc7dc1b" + }, + { + "nr": 68004, + "hash": "e0875378b21ada4303e10ec0e42e1cbc1f2070be" + }, + { + "nr": 99829, + "hash": "750660d746f2050154c5854e1b12c2e8b9b90910" + }, + { + "nr": 102711, + "hash": "e7dafb6c7d990935b8c40305c7d3bed455571fb3" + }, + { + "nr": 102039, + "hash": "02998efa3d6fc799da38a8cf4ea33fe1e0f6065f" + }, + { + "nr": 102332, + "hash": "2ec27a73fc3ae91828907af58457bea08a43876f" + }, + { + "nr": 100322, + "hash": "333ddc322e8441e9740bae406483ed79650d666e" + }, + { + "nr": 103190, + "hash": "9ca4f70be4a4e0e3f9e176f81f9461206a3b5c4a" + }, + { + "nr": 102443, + "hash": "0015b6e1c2c82f13fe51bde68dabfb02db1ae9e2" + }, + { + "nr": 102502, + "hash": "9e518b110f07e3764e5e5cbe1736344b2e59f941" + }, + { + "nr": 100913, + "hash": "8a1eec28d3658a94423e3d05f18a8325a9dddf5b" + }, + { + "nr": 99023, + "hash": "6108c705b2def99469923ae33841668699580843" + }, + { + "nr": 102578, + "hash": "695de2fa568c5cb2d160ec4e4c392fdb5ef6735a" + }, + { + "nr": 102437, + "hash": "609b638b311307f5c3a548573a9ba4bba88e4fd0" + }, + { + "nr": 102665, + "hash": "e3c5e9c01a3d1bd015c8c3100972506c90a69f64" + }, + { + "nr": 100861, + "hash": "1a3b09c533c19ee46ac13eab06d71a5a8f326365" + }, + { + "nr": 100678, + "hash": "56d2d79e98baf82fb6732d14af00368b514751b1" + }, + { + "nr": 102188, + "hash": "a9f207671953494fcdd5272a9e10c3c9a15f59fd" + }, + { + "nr": 103326, + "hash": "b85495c68cbd1074d9207c96aba12c22e78a93e5" + }, + { + "nr": 102466, + "hash": "e83156169fb33dee2e0b3fcfae7b572cde6a1ab9" + }, + { + "nr": 102642, + "hash": "36214042aa0070d3f8adf3b9e69083bd387a207d" + }, + { + "nr": 102598, + "hash": "5c76f89fe345d5449c7691ec675a7236c1f38e1c" + }, + { + "nr": 100141, + "hash": "62c76655fe5fdfce1df476856c915ffe433b0d34" + }, + { + "nr": 103292, + "hash": "c65a4bfb6fe706dae283584445aae15ac5cdf8a7" + }, + { + "nr": 102901, + "hash": "59be6fc7fff500a3dcb80a117b0c919b3046cb07" + }, + { + "nr": 100369, + "hash": "f2a15c8c5e63303f3ac46bbfb21a6a237b9abc15" + }, + { + "nr": 101742, + "hash": "37efc617e3838144fd60bc8c8912dd5a8efc1e4d" + }, + { + "nr": 96216, + "hash": "031a5e249b88f103dc51f501024dfbbf86c5771a" + }, + { + "nr": 100944, + "hash": "ccec86591f9e1465ee67e8dcd5ed0de588a92dc9" + }, + { + "nr": 100612, + "hash": "974ecbcdaae9ba8c8367aad80aa1c756261f9629" + }, + { + "nr": 101129, + "hash": "591db802cb911785619135662993796aa8b3866a" + }, + { + "nr": 103601, + "hash": "6bad99e300551faafd6e7819b03c93164f076311" + }, + { + "nr": 103063, + "hash": "866daf60b0c2b4a9fe4bc6ad95a2a8cf40e39966" + }, + { + "nr": 103133, + "hash": "6391b81add9bf9d0605ca80fd5adb46230cba87d" + }, + { + "nr": 98077, + "hash": "685549f93ffaacd9306723dfc7ba452a3ea61794" + }, + { + "nr": 101992, + "hash": "062f78c7d6d493a960678ec2015469214826de13" + } + ] } \ No newline at end of file diff --git a/releases/release-1.22/release-notes/sessions/maps-1626711948.json b/releases/release-1.22/release-notes/sessions/maps-1626711948.json index ac995494ef1..3ac0cb0848e 100644 --- a/releases/release-1.22/release-notes/sessions/maps-1626711948.json +++ b/releases/release-1.22/release-notes/sessions/maps-1626711948.json @@ -1,35 +1,35 @@ -{ - "mail": "pmmalinov01@gmail.com", - "name": "Pavel Malinov", - "date": 1626711948, - "prs": [ - { - "nr": 103669, - "hash": "02f9851ce5ce9ad5b80ccc5d85a04b89f9c543bd" - }, - { - "nr": 103057, - "hash": "d464ba2d71da8d0406de2e9e5bacc243fbaa3638" - }, - { - "nr": 103596, - "hash": "ade240390b53d66cdb96c177612c41808b6a2320" - }, - { - "nr": 103470, - "hash": "a6598e804206821999ea3dad45ed41bfdecc1099" - }, - { - "nr": 100101, - "hash": "d191af52c5c7531e4ed2b5a3b5f6e1ffe1c5eb17" - }, - { - "nr": 98817, - "hash": "95533ef63af30bc65e3fea17e8932b5b70b3a520" - }, - { - "nr": 103168, - "hash": "bf66bc5ec1350f84a203bf4a4cdd07bdb6314c83" - } - ] +{ + "mail": "pmmalinov01@gmail.com", + "name": "Pavel Malinov", + "date": 1626711948, + "prs": [ + { + "nr": 103669, + "hash": "02f9851ce5ce9ad5b80ccc5d85a04b89f9c543bd" + }, + { + "nr": 103057, + "hash": "d464ba2d71da8d0406de2e9e5bacc243fbaa3638" + }, + { + "nr": 103596, + "hash": "ade240390b53d66cdb96c177612c41808b6a2320" + }, + { + "nr": 103470, + "hash": "a6598e804206821999ea3dad45ed41bfdecc1099" + }, + { + "nr": 100101, + "hash": "d191af52c5c7531e4ed2b5a3b5f6e1ffe1c5eb17" + }, + { + "nr": 98817, + "hash": "95533ef63af30bc65e3fea17e8932b5b70b3a520" + }, + { + "nr": 103168, + "hash": "bf66bc5ec1350f84a203bf4a4cdd07bdb6314c83" + } + ] } \ No newline at end of file diff --git a/releases/release-1.22/release-notes/sessions/maps-1626954300.json b/releases/release-1.22/release-notes/sessions/maps-1626954300.json index cf2831d3f55..3a906b71ea9 100644 --- a/releases/release-1.22/release-notes/sessions/maps-1626954300.json +++ b/releases/release-1.22/release-notes/sessions/maps-1626954300.json @@ -1,1427 +1,1427 @@ -{ - "mail": "61474540+Damans227@users.noreply.github.com", - "name": "Damans227", - "date": 1626954300, - "prs": [ - { - "nr": 102970, - "hash": "956d9ae4d3d2532d620b77a7accbf07c4829ce98" - }, - { - "nr": 102966, - "hash": "72ea2ffeba2fab3cbd71e96f82e87f21d5188db4" - }, - { - "nr": 99647, - "hash": "41ae1888e62249123bed026c93aa4bb19cb65ab0" - }, - { - "nr": 100141, - "hash": "62c76655fe5fdfce1df476856c915ffe433b0d34" - }, - { - "nr": 98238, - "hash": "6a18f3b3753f7b2a5c9ceeea4b3378300bf6e0a4" - }, - { - "nr": 103520, - "hash": "d884d6c3f0bc39b1c6fa90096c2d762d35a43a3e" - }, - { - "nr": 102578, - "hash": "695de2fa568c5cb2d160ec4e4c392fdb5ef6735a" - }, - { - "nr": 101187, - "hash": "c1644cd973a03116619e8722b53220b90cc6d380" - }, - { - "nr": 101916, - "hash": "0bbda1b6691cfb72c18c320ca26a73de39819969" - }, - { - "nr": 101534, - "hash": "6e2582ac043c09d79631ba79433e236366ff2fa3" - }, - { - "nr": 101093, - "hash": "3072f89a2dcde3cc27afe42428a62ba3bc7e8cc7" - }, - { - "nr": 100311, - "hash": "d851f33570fb7405cd709bfd0e6cc6fd15d624b7" - }, - { - "nr": 101712, - "hash": "e1785b6ee805657689a8fd28510ad2017fa23b53" - }, - { - "nr": 100568, - "hash": "ad24e3503cd066451d211c92f85668eadc163c77" - }, - { - "nr": 99023, - "hash": "6108c705b2def99469923ae33841668699580843" - }, - { - "nr": 90368, - "hash": "a796bd37be49dc48e5a5e7316628ed6712f4d328" - }, - { - "nr": 102063, - "hash": "93695d7762366205908207ab906ed0fd5f27bc04" - }, - { - "nr": 99576, - "hash": "1d58b0171639437a1973fbbc598f5a4457c916e3" - }, - { - "nr": 102121, - "hash": "5fd142389e8e610913fda50f26edcdfa09448c70" - }, - { - "nr": 101938, - "hash": "b445e7042150dac42f2ab5498dadd0ac652e6e8b" - }, - { - "nr": 101420, - "hash": "0107da33bc3561ca8b52bab9c3a08b417c3727e7" - }, - { - "nr": 101531, - "hash": "f20d39e469dd29b03b0f226b9c612241ed5c2cf4" - }, - { - "nr": 101203, - "hash": "a87ce6fc9320b0d6a5d6b45f9f367b1d3f0a0578" - }, - { - "nr": 100784, - "hash": "3deb7bf106bf5013ffc698311d7758be5dff84e1" - }, - { - "nr": 102823, - "hash": "3e47814bbc98274ba5a1d729a82c2a98e5a5a471" - }, - { - "nr": 99829, - "hash": "750660d746f2050154c5854e1b12c2e8b9b90910" - }, - { - "nr": 101030, - "hash": "9fa5f65989e09dffcf5d57f1c14b205b110ddc76" - }, - { - "nr": 102529, - "hash": "91fa25c4136e42a19eb5fbd18f2d6464267aed65" - }, - { - "nr": 101377, - "hash": "e2d9161d3abb3be635e1bcb4dd5b6b2710db4298" - }, - { - "nr": 101034, - "hash": "28bb4becdfd1d7079d479a87e20ac271f8292910" - }, - { - "nr": 100436, - "hash": "02e1d8a1b5597532f24308d22ea1ff341020db97" - }, - { - "nr": 99582, - "hash": "4e805696477fb4c0050c293c53fc3c99414b41c0" - }, - { - "nr": 103218, - "hash": "37b3de98e31c1dab95061f25ef66db2f853a5ffd" - }, - { - "nr": 102386, - "hash": "2db3421651ab7fdd5d52a5a555bc1ffa490518cd" - }, - { - "nr": 102673, - "hash": "5b2da4a0c2c81419c779985752f378eff2b606ba" - }, - { - "nr": 102590, - "hash": "13b53ec7dc0e3366be378414d0994ca85ed10a1b" - }, - { - "nr": 101747, - "hash": "04f0fe844f85dbf54b2fcd45094dc51c716d2285" - }, - { - "nr": 100694, - "hash": "6f89905682df212f7d1264dfd56ef1f3491b0dcb" - }, - { - "nr": 103154, - "hash": "064704aba34759d4613c978da862826e867ddfa8" - }, - { - "nr": 101742, - "hash": "37efc617e3838144fd60bc8c8912dd5a8efc1e4d" - }, - { - "nr": 102071, - "hash": "ad692e596e9b73aebd8c652c2832bddd84cce795" - }, - { - "nr": 101773, - "hash": "14c1a092085f9852359d004f0163057f7289a09a" - }, - { - "nr": 95387, - "hash": "d47d50e11a10dcf3c63e985815cd311548014817" - }, - { - "nr": 100728, - "hash": "0e35ee838540f5cba19ea079469377de33365df6" - }, - { - "nr": 100678, - "hash": "56d2d79e98baf82fb6732d14af00368b514751b1" - }, - { - "nr": 99775, - "hash": "c572eec12f99be89b8a78cbe9e9de40833a5169d" - }, - { - "nr": 98431, - "hash": "b440eaa81f1d81edc8cda120786793b8f289466c" - }, - { - "nr": 101767, - "hash": "d8ce103078754bb1c861d035e02da8b9fd02fa2a" - }, - { - "nr": 101539, - "hash": "6c0403313262f88eb16feed10d713d588783e7ab" - }, - { - "nr": 101547, - "hash": "b51a719c67f1fa03aca238ba6314272f8472a033" - }, - { - "nr": 101477, - "hash": "904489b296e177c53e8970b64e4227f25f74bc16" - }, - { - "nr": 100148, - "hash": "0c84f8bf0eca51210e9377d7830662c1ab766128" - }, - { - "nr": 103245, - "hash": "cdd58dfec89a99eb1e4f123f4a40c6bbb3ae2b96" - }, - { - "nr": 102133, - "hash": "bb95b8dcc5a8b4df0f10b99b4ccd47098ad227ed" - }, - { - "nr": 99358, - "hash": "590bd5b4d16cf54b31ba8195cce4b07ce5872b03" - }, - { - "nr": 100350, - "hash": "71a2768027b6a24717955bae6b0ff6e12de68656" - }, - { - "nr": 103533, - "hash": "dc6078647d8699e69e5c06dc8c339e4ea4fe2bea" - }, - { - "nr": 103326, - "hash": "b85495c68cbd1074d9207c96aba12c22e78a93e5" - }, - { - "nr": 100939, - "hash": "eb4ec938c5bc8a903052c8d7511ab4a7637672f3" - }, - { - "nr": 101560, - "hash": "f035b68e99b690658c78227b4b0c003976eed9fc" - }, - { - "nr": 101441, - "hash": "759598a8dded7dd9a2d1e6be2c8ee852c3596784" - }, - { - "nr": 101110, - "hash": "21604b01fb7c68257bb1347a45bdb58ce0872b9f" - }, - { - "nr": 103553, - "hash": "00540ff96c139f135f627ffb00e2ee7a11472080" - }, - { - "nr": 102934, - "hash": "6252af5dc8914fc9d2dc200f2e6998a7f3d201a1" - }, - { - "nr": 96702, - "hash": "bf754db2bef15f8ca5abeb5084a9dbed4daba87d" - }, - { - "nr": 99839, - "hash": "06b4151b7490328b1ca6506b6419911bb9a02079" - }, - { - "nr": 103747, - "hash": "fd3dcc19e64b26fad548f7a532da1e4b1be5ae10" - }, - { - "nr": 103276, - "hash": "5cd3efbb02d34cd2b63826d7ed701344a055a864" - }, - { - "nr": 103306, - "hash": "a94cc151e5348e20eca6e4bc8ad199526f4e7c3c" - }, - { - "nr": 94942, - "hash": "ff9aadf892928c584c7c13b1c2419410e536d1f7" - }, - { - "nr": 102498, - "hash": "7bb1dbe43d9c210e0f837f57774127c9591fff3b" - }, - { - "nr": 100136, - "hash": "e02c67d15716421f0d989ce25860bfb2349f5b8f" - }, - { - "nr": 99566, - "hash": "988991e4995bf2a8859aac70624670e9bfe34596" - }, - { - "nr": 102964, - "hash": "769c65f18fc2541c4ed083b19dd894422cda8cd9" - }, - { - "nr": 102171, - "hash": "11abb0a3243bd4cb47864ad4fdea4dae2de71a80" - }, - { - "nr": 101647, - "hash": "2e3408490fca649a82c990115c4c9ba9f33096a5" - }, - { - "nr": 101966, - "hash": "e020645790fda6b1cf729015f52950a5a1658bb8" - }, - { - "nr": 101857, - "hash": "5b46c8f041c4dc4d1490f2a1a6f5cbdea147d882" - }, - { - "nr": 103318, - "hash": "e84e59be83e23871b35e3ec4751f7f16d097caac" - }, - { - "nr": 100262, - "hash": "2a5f3c467312569a6a91617fbb489c60390e24aa" - }, - { - "nr": 101160, - "hash": "9a51e7506335014fffbbc6d4c2567640e3a85ec0" - }, - { - "nr": 101082, - "hash": "7a6c780ac9b033b6377a69513dcdfc200cff50fa" - }, - { - "nr": 101292, - "hash": "8c41ffd4b60eff2a72225ac5b2e59867918b564e" - }, - { - "nr": 101737, - "hash": "d72d540813438da5752ef1d7a864afde11771d44" - }, - { - "nr": 100599, - "hash": "41e71a1308a247c2f24538db20233da0a8798876" - }, - { - "nr": 103470, - "hash": "a6598e804206821999ea3dad45ed41bfdecc1099" - }, - { - "nr": 103292, - "hash": "c65a4bfb6fe706dae283584445aae15ac5cdf8a7" - }, - { - "nr": 101669, - "hash": "2c1f95208eb4e7f92dbe6a2dd130e206b9981eea" - }, - { - "nr": 99597, - "hash": "2c51d996893784282e257a552f610789649885a7" - }, - { - "nr": 103541, - "hash": "6af7f0370a10bc2e19c6caa779e72beea81ec54b" - }, - { - "nr": 103419, - "hash": "01094e0a1fee429a9bcc59330e76a9fb4c0ac6eb" - }, - { - "nr": 103244, - "hash": "8e9a4eab4c9b6c87969393f183260981bb30966b" - }, - { - "nr": 102869, - "hash": "432016b29a9ba16afbb8841957da160cc45ee257" - }, - { - "nr": 102443, - "hash": "0015b6e1c2c82f13fe51bde68dabfb02db1ae9e2" - }, - { - "nr": 102414, - "hash": "f2019b80d9c708a20eba679b6fb390f3a151382a" - }, - { - "nr": 100940, - "hash": "792cd36cb7d51efa5d507eb97fb5afc59dff5e2f" - }, - { - "nr": 101057, - "hash": "5166f6f80093377c314157b52edf83af02370507" - }, - { - "nr": 102188, - "hash": "a9f207671953494fcdd5272a9e10c3c9a15f59fd" - }, - { - "nr": 103313, - "hash": "e3aa4c8d5f0fa4ad7438c7155fb5b1875d69efe5" - }, - { - "nr": 96087, - "hash": "188948f4d233adac097fa338a21b291953e3f09d" - }, - { - "nr": 102834, - "hash": "33912b4196fac3987e3599fa022cc8d3f1d4db0e" - }, - { - "nr": 102323, - "hash": "5df2b1daec5a60c20b127cb011df865c5627761a" - }, - { - "nr": 101915, - "hash": "ea12525c9de541d3b096be1ad8308d026373189a" - }, - { - "nr": 101578, - "hash": "4460531dff79877413084ab3f92ef0515d4b4165" - }, - { - "nr": 101589, - "hash": "8be56e17775ac95e66363ebfa287f8390120b4cf" - }, - { - "nr": 102155, - "hash": "89b842a7ccc34265cc1bbd6cd65793e0ed71765d" - }, - { - "nr": 102444, - "hash": "75f8afa498735d8ffda417491ce858f6ed3d6d58" - }, - { - "nr": 102965, - "hash": "bcba9b549a75869d149a39ee4acb99e1cc3981c2" - }, - { - "nr": 100488, - "hash": "ad71dce0155d06440c510f22f98a1c0bd2783abb" - }, - { - "nr": 102489, - "hash": "14ec7979413b736475d79e90eedfcc24d521630c" - }, - { - "nr": 102377, - "hash": "b835aea0bcd33dfe481329cb4390e97767062008" - }, - { - "nr": 100575, - "hash": "8534abb026ac07baa5071825bf9a82f61113eb31" - }, - { - "nr": 103785, - "hash": "5eb3adbca5500a2f919c219cbdd893747d2a86fc" - }, - { - "nr": 99494, - "hash": "67cb3ced683b9e64166b6a2524d6e71c1a892011" - }, - { - "nr": 102594, - "hash": "83f5bc9d42859131e879d98e1fd69f1e5ca1dec0" - }, - { - "nr": 101592, - "hash": "432bd35e1cfe965b4f04086e9921b3974b14ab10" - }, - { - "nr": 101104, - "hash": "e3184de93cf75f46bd271813dc0a4c218bc7dc1b" - }, - { - "nr": 101076, - "hash": "5714dc98a90db948962b02bf00c6d61480502bd2" - }, - { - "nr": 101296, - "hash": "ba6bde8ca5fd9d19ac1926455e727c28dd2a4056" - }, - { - "nr": 102783, - "hash": "caa96f56920b0ea6a6d38110ed86524728194bfb" - }, - { - "nr": 102441, - "hash": "d013e7eddf91379588dea3980034ca555335fcb3" - }, - { - "nr": 102297, - "hash": "a2a80b3ed6363aa0dd0638593ccc3ab2ca3d6fc6" - }, - { - "nr": 102159, - "hash": "47485702e4f12fb091214f6f3edd1449692c06da" - }, - { - "nr": 101579, - "hash": "d6209721bde251c12d7e1d8e663600b19af71ccd" - }, - { - "nr": 102181, - "hash": "6a374e95da6f3b40f9241051953dae28302f4db7" - }, - { - "nr": 100412, - "hash": "00cb0a42fd63d9811b41adfcb5d730bd0acff333" - }, - { - "nr": 102892, - "hash": "160b73ce91415d2dbcf93bc060618442c16a62db" - }, - { - "nr": 100369, - "hash": "f2a15c8c5e63303f3ac46bbfb21a6a237b9abc15" - }, - { - "nr": 101208, - "hash": "b82e1f831ad6144de43b0805f3d868053910f28b" - }, - { - "nr": 100976, - "hash": "d23dc2239bf678adbe71a788031c07dda6820b87" - }, - { - "nr": 101181, - "hash": "3dcd3f1c1bde63d9b872fc421814b87123f880f9" - }, - { - "nr": 103063, - "hash": "866daf60b0c2b4a9fe4bc6ad95a2a8cf40e39966" - }, - { - "nr": 102062, - "hash": "ccecf0b4da05e53061712c3ae588a43f491341c0" - }, - { - "nr": 102598, - "hash": "5c76f89fe345d5449c7691ec675a7236c1f38e1c" - }, - { - "nr": 102328, - "hash": "4201273fccf268543c81029071e8df6b0354de54" - }, - { - "nr": 102193, - "hash": "01f90ecce0c63803e36cf894e8eb83f14d6f6c3e" - }, - { - "nr": 102108, - "hash": "b8a6a4222a4823a2a80e7b06b7822fbb06ab9305" - }, - { - "nr": 98377, - "hash": "8fd05a8b231885736568544933ee113300234eb1" - }, - { - "nr": 100959, - "hash": "e5455364fa899a7b31ca721b11eaccdbcf55f391" - }, - { - "nr": 100101, - "hash": "d191af52c5c7531e4ed2b5a3b5f6e1ffe1c5eb17" - }, - { - "nr": 103383, - "hash": "2f611ba5bcb72af6b5562850c4069df156eb5650" - }, - { - "nr": 102873, - "hash": "23c83cf03d8528bbcf3fd72048a5b246d6ea749e" - }, - { - "nr": 99178, - "hash": "5c7b10c0b5ac38b2667783b170c65ffbd3608893" - }, - { - "nr": 102147, - "hash": "47ca0a4cf5a848f5977ee2bc2de908adf04a859a" - }, - { - "nr": 100944, - "hash": "ccec86591f9e1465ee67e8dcd5ed0de588a92dc9" - }, - { - "nr": 93260, - "hash": "b1719d02cb67be56fbe76aab1e6e51196209d82d" - }, - { - "nr": 102890, - "hash": "697bb247a010752cceed4aafa7eb81ffad50743d" - }, - { - "nr": 100565, - "hash": "54e57fc5976f7de53057ff04fe4b6540e62dcc3c" - }, - { - "nr": 103451, - "hash": "07cab2167c3aeda4ef1a4522dccfc68d545b5a07" - }, - { - "nr": 103133, - "hash": "6391b81add9bf9d0605ca80fd5adb46230cba87d" - }, - { - "nr": 98057, - "hash": "38af876f07f03981496842b59ad67a4b5238da5c" - }, - { - "nr": 96959, - "hash": "1e97a0b01fbdf2d787e6016bd81f0d0db722b479" - }, - { - "nr": 103596, - "hash": "ade240390b53d66cdb96c177612c41808b6a2320" - }, - { - "nr": 98306, - "hash": "fad1b65be411c648854a0191a4ab0b6f303928c4" - }, - { - "nr": 101412, - "hash": "ea0d591cbe24da2658e8c3e7817d7c071d63148d" - }, - { - "nr": 101398, - "hash": "b015a1151d5e44ccd5f235511dbe419809353236" - }, - { - "nr": 100686, - "hash": "2380016720f4be1768b1f36948e1aee1c862440c" - }, - { - "nr": 99069, - "hash": "900ec0c97d97c6065b2e9c29e4f1750c56b14224" - }, - { - "nr": 100724, - "hash": "a4c0042b0069fa53b62327f1623fd14a1adf252c" - }, - { - "nr": 103414, - "hash": "5a76d8b5eeb2d3eb2d088499e56da27b4999fe10" - }, - { - "nr": 103082, - "hash": "83226d59332a9c5eb5dd8f5f1ce99e44cd6cca41" - }, - { - "nr": 99378, - "hash": "ef812e9341a6eb8a772a17b79ab5343d04bf4549" - }, - { - "nr": 102028, - "hash": "07d4d11272a5d7bac229cb6efd6bbe61a91b97c9" - }, - { - "nr": 101436, - "hash": "e1325505103723115e2c22e18eca6c4613d6433f" - }, - { - "nr": 101155, - "hash": "81c1925788bb0604db208817a00b7eebf85c689b" - }, - { - "nr": 100612, - "hash": "974ecbcdaae9ba8c8367aad80aa1c756261f9629" - }, - { - "nr": 100206, - "hash": "f40ecf9b206ea59c78aa3a52ef9d281d2cdd3103" - }, - { - "nr": 103307, - "hash": "2279244a206be4217209f6ab34775e69cca928d6" - }, - { - "nr": 102059, - "hash": "276ed8a2ad0c1f7f0c2dde60b529dbc0c42dac27" - }, - { - "nr": 102239, - "hash": "d7fc97e8afaa727e804e13f89c648326b9c3a2d7" - }, - { - "nr": 98077, - "hash": "685549f93ffaacd9306723dfc7ba452a3ea61794" - }, - { - "nr": 101587, - "hash": "3d2b24c1dc0d54a9d30b019affa52c2de86c0935" - }, - { - "nr": 101685, - "hash": "8a02537e1d0ba787c26146943074581d3c559c9b" - }, - { - "nr": 101869, - "hash": "44746d1d34160950b24cf8bcc1c48cc3709aa6bb" - }, - { - "nr": 101411, - "hash": "56164cdcb9fc3488f75b0b6dd3df8166d48a644d" - }, - { - "nr": 101080, - "hash": "7999ca435db97d1d79bf1ec6c9b0d912c111e95b" - }, - { - "nr": 97968, - "hash": "2097dbfa859b479994f424613ccd5db47d33d37d" - }, - { - "nr": 102022, - "hash": "66fea9974dce7f18da1117d0ba812f239bdee607" - }, - { - "nr": 101271, - "hash": "f04231501da2fdf9a68671b620220e5b9b7215a1" - }, - { - "nr": 92863, - "hash": "247701531a152ac6e2b7620ce3f4a56959374e82" - }, - { - "nr": 101822, - "hash": "2f6484f86821371cca9aeeb91c142ee6cef354fc" - }, - { - "nr": 102201, - "hash": "89d464bde2abc756816752e916d87eb8c85e3bc0" - }, - { - "nr": 102302, - "hash": "0c6d521e3cb330d951829a4cfa806972983e0738" - }, - { - "nr": 101252, - "hash": "1674500528273e510fa230eaf9a030f3d3226771" - }, - { - "nr": 99963, - "hash": "6da1284e36a8da521da1982a0d1f4898a51507cc" - }, - { - "nr": 101394, - "hash": "b4c376d4dafd897fbe3f7c44346f1277190513a6" - }, - { - "nr": 101496, - "hash": "35452bd75429ce7312cf4342c3e4eb11dfbdccb3" - }, - { - "nr": 103169, - "hash": "1cdc148779b42232de95b47d70646a0d48bbc73d" - }, - { - "nr": 102898, - "hash": "6499a732b5c51b092cfee60af2a6dc2ee4dbdea5" - }, - { - "nr": 97028, - "hash": "9f194bad93e4c671b69aa7c56d7a69ba66e43a0f" - }, - { - "nr": 102642, - "hash": "36214042aa0070d3f8adf3b9e69083bd387a207d" - }, - { - "nr": 102805, - "hash": "300f21b8294125a2deb3761e8d289bfde55540ac" - }, - { - "nr": 102683, - "hash": "4d406f4db8e5c37f188837552ef5dc311c8c748a" - }, - { - "nr": 99900, - "hash": "4e2815a09b542a875d9a0e8e412ef628e828003d" - }, - { - "nr": 100942, - "hash": "258b1e236266444a8862a1ce81b2216f8b3b0967" - }, - { - "nr": 100200, - "hash": "0267b0544ae992d287a9229adceb6c7118667f32" - }, - { - "nr": 100085, - "hash": "746a815234b0fd324f26cf4a637b2dede90aaf0e" - }, - { - "nr": 101256, - "hash": "1578c3c849ecdb60c5e21deafc9cb124a11bb811" - }, - { - "nr": 102620, - "hash": "0a45b3a1e2f836e0abcc7cfc4ed3a77e0d004290" - }, - { - "nr": 100142, - "hash": "c5bcc23eb7394d324a659ca6dc67dbee9854198c" - }, - { - "nr": 96084, - "hash": "6fb752365a72b7afa62f13bdb417963cc5a4bcf5" - }, - { - "nr": 103057, - "hash": "d464ba2d71da8d0406de2e9e5bacc243fbaa3638" - }, - { - "nr": 101074, - "hash": "1e0ad921a6112c4e5973941c957c73730d088332" - }, - { - "nr": 99729, - "hash": "de5ac8af8a08ebcfd281dfb77d57ce932e674b6d" - }, - { - "nr": 100267, - "hash": "072bd753896c0b5c71c941b6ea9437a017021354" - }, - { - "nr": 101047, - "hash": "3837f7f344adbf2a5bbbaab3c09627b56322fa58" - }, - { - "nr": 97238, - "hash": "41dfe2688c85a880e8a58f2b0f3ae74fc8dabdd7" - }, - { - "nr": 102539, - "hash": "e3c161847e05d93104d7c895add97ef5b1b9a151" - }, - { - "nr": 102039, - "hash": "02998efa3d6fc799da38a8cf4ea33fe1e0f6065f" - }, - { - "nr": 96216, - "hash": "031a5e249b88f103dc51f501024dfbbf86c5771a" - }, - { - "nr": 99310, - "hash": "fcb13e9dedab33308d2e81e2986c39b4a30fb3d2" - }, - { - "nr": 100754, - "hash": "85d2ae62a405f043c3090e838b42531dd829e33e" - }, - { - "nr": 100051, - "hash": "95077e358db69c01e7ac930863859c87f382377a" - }, - { - "nr": 103669, - "hash": "02f9851ce5ce9ad5b80ccc5d85a04b89f9c543bd" - }, - { - "nr": 103001, - "hash": "96962b38262375b33f35660d5e5cd4894ce44cc9" - }, - { - "nr": 101272, - "hash": "9bb59dd1967460a1ffd287df8e9d620c026d846c" - }, - { - "nr": 102093, - "hash": "883be024d3ed7afb292dacb8b4117c50e1e16edb" - }, - { - "nr": 97796, - "hash": "ae07d7b62171aa07646aaf092bb1c5fc24578978" - }, - { - "nr": 100684, - "hash": "eb855971f1929547bd31d8cdea60d5674dd36e75" - }, - { - "nr": 101120, - "hash": "0313ef8221125aa9e6e102bf0738fa1a2dbb6352" - }, - { - "nr": 100322, - "hash": "333ddc322e8441e9740bae406483ed79650d666e" - }, - { - "nr": 99144, - "hash": "eb03f706227c0173d8d7fcca0c9b8f5e665daf55" - }, - { - "nr": 101316, - "hash": "9f0e6e06b35c0ebe2af3b837f5edd1a48d75a522" - }, - { - "nr": 102795, - "hash": "1a9f527b62354a1277f75e77da8bdf1dae731c4e" - }, - { - "nr": 102030, - "hash": "978423f70faa25b4aebd6756e555f134e18c882c" - }, - { - "nr": 101950, - "hash": "b774ea2ca2c182d9c1007170594f4e3954a855e4" - }, - { - "nr": 101537, - "hash": "9dbc266c9af97c57cfba119af2670e175acdf349" - }, - { - "nr": 103390, - "hash": "5b90491f3bed0ecd8bd64fa31b91b3f1edaff661" - }, - { - "nr": 102363, - "hash": "3777904002022d4c5ac2da98caeeb29db90d5a47" - }, - { - "nr": 101688, - "hash": "b32c1e3208e46b01ea0e11f2c3ed4b75f6ea035b" - }, - { - "nr": 101523, - "hash": "0ae3892565ce76c9eeca2b5252460979dcc4647e" - }, - { - "nr": 103168, - "hash": "bf66bc5ec1350f84a203bf4a4cdd07bdb6314c83" - }, - { - "nr": 103284, - "hash": "583d760264f0af643eb8fcf9499d6ec797e385f9" - }, - { - "nr": 103462, - "hash": "dc58605c2496e1ddc8289df193ff030363256e87" - }, - { - "nr": 102840, - "hash": "560748a608cd8759f9a5def96e042f6a92ec81d6" - }, - { - "nr": 102689, - "hash": "e7443cbaae3218775400a1e9d720598472f441e3" - }, - { - "nr": 95396, - "hash": "42a1ce850c33c8bbe9471506e035d09e832dec9d" - }, - { - "nr": 102788, - "hash": "39a4465ced0bb97bf9a8d2857c8ece258a7c5ad3" - }, - { - "nr": 102516, - "hash": "c828f521d6b6434147a873af2a691e970fa2a69e" - }, - { - "nr": 98350, - "hash": "43d6cc0cbc6ca8dee7a850845064fac192544810" - }, - { - "nr": 100861, - "hash": "1a3b09c533c19ee46ac13eab06d71a5a8f326365" - }, - { - "nr": 100404, - "hash": "23cb1da0660e2388f40c1e5bf5f59c7ba2b3c326" - }, - { - "nr": 99961, - "hash": "a78b9e2fa16cfc945ad20f34d266cf1fd6d3ae04" - }, - { - "nr": 102509, - "hash": "5677bd527b981319f2d83f205a9843c957f99636" - }, - { - "nr": 100100, - "hash": "0337163f7fd1ecf21d587f7d7e96c505708df26c" - }, - { - "nr": 100110, - "hash": "e163f15fe3fe8b86615c299a955ca1c144fe3d85" - }, - { - "nr": 102711, - "hash": "e7dafb6c7d990935b8c40305c7d3bed455571fb3" - }, - { - "nr": 102461, - "hash": "adb209eac8251730de75d100d14942ea90f6aecf" - }, - { - "nr": 101992, - "hash": "062f78c7d6d493a960678ec2015469214826de13" - }, - { - "nr": 101809, - "hash": "71f5ffb9beb6e08b9006620c9a8f7c938dfe7ff2" - }, - { - "nr": 95286, - "hash": "d0592b4cb6aa08df6809584b28c5c3ec6edbfd62" - }, - { - "nr": 100644, - "hash": "94ed91958953f700ee37e9bbe7c663a32b06abf6" - }, - { - "nr": 101048, - "hash": "dc12393b90cdf25a8f9aea2dd468ab5e91c3f1fc" - }, - { - "nr": 102437, - "hash": "609b638b311307f5c3a548573a9ba4bba88e4fd0" - }, - { - "nr": 102366, - "hash": "8f959163a98bd80d954162582deda4c6f836aa31" - }, - { - "nr": 101600, - "hash": "295a10a2cda1d75f14cbbdfc8181a6ef6226045e" - }, - { - "nr": 100651, - "hash": "d6ac4df326de55c44c4d2639b990cbdb1ad23ad3" - }, - { - "nr": 102083, - "hash": "c909cddc8d9d4bb161449aeada15509bac1ec553" - }, - { - "nr": 101817, - "hash": "e4123495d82730c335c9e7922ec1df5a1c42a0c6" - }, - { - "nr": 102344, - "hash": "01fa2d4d5a65f1ede51e58171070a206bd5ed866" - }, - { - "nr": 101510, - "hash": "9d12d6a957724e0dad644e13d8de082a49dacb0d" - }, - { - "nr": 101977, - "hash": "a7b3ec904ce6fc5ddd677a5fb53e80dafe8f7bae" - }, - { - "nr": 101946, - "hash": "fc49f0446f03a6b922c445f21d9d83927f92f268" - }, - { - "nr": 103514, - "hash": "7ab22ce8250a15af5ff2f0d01af0b598cbbddf75" - }, - { - "nr": 98866, - "hash": "98e1c4019207215e53d8a0dc02e4a5810be7fb9a" - }, - { - "nr": 101581, - "hash": "10fd909f6e4ac9dc292b6b9e8688241c51691ecd" - }, - { - "nr": 101005, - "hash": "f57f2515df9eb362991c2b21d84f0ffe61da554d" - }, - { - "nr": 101357, - "hash": "b04d6b4fdd71b158e697e6b741fcf09ef186044f" - }, - { - "nr": 102067, - "hash": "c272e8d87f71a4f706d269c84b800eacabbe037a" - }, - { - "nr": 101739, - "hash": "af9967ee04cb0e89a7ef77d07b81410ae3b1bc9c" - }, - { - "nr": 100690, - "hash": "f5ee2b4929be0210b635d94cefc46ee80fcd69ff" - }, - { - "nr": 101186, - "hash": "c4c332ff7b9c1e845f1eacb8d77fbe435cc59209" - }, - { - "nr": 102177, - "hash": "cafa3d0ac7e629554f81fabb726fd0f1d814b369" - }, - { - "nr": 92372, - "hash": "d764dfcee5d27ed94a841fd6dbba4f3dc338d09e" - }, - { - "nr": 103235, - "hash": "3acf9dcbf54f4021bb8911d388f6cd1d36699736" - }, - { - "nr": 102858, - "hash": "ca0496739e02f60ebdbdc982e2d3514b9626ead4" - }, - { - "nr": 102825, - "hash": "f48832eda1e1a175bddcede27d5ed5228a3fb3cb" - }, - { - "nr": 100913, - "hash": "8a1eec28d3658a94423e3d05f18a8325a9dddf5b" - }, - { - "nr": 101943, - "hash": "c1b6ebd75c8e8cfcf0692ae6aec4b126020c0421" - }, - { - "nr": 102005, - "hash": "e4dd2cf0ba0cd417ad1282da705dc3103e10ed76" - }, - { - "nr": 101752, - "hash": "51a0fa20dac62d3adf91fb63f1669065b39a4a7d" - }, - { - "nr": 101206, - "hash": "b5b97dc63211e73dcc82321e263cd9a7c78a9f82" - }, - { - "nr": 100731, - "hash": "4541dc2aa96d6e5cdfc848cff76a67c1d5ca1577" - }, - { - "nr": 68004, - "hash": "e0875378b21ada4303e10ec0e42e1cbc1f2070be" - }, - { - "nr": 101947, - "hash": "a136efd619d9137f8ae51f21235dab3f9f3be95f" - }, - { - "nr": 102467, - "hash": "0ef9f36d66bf1dd98f8af5857c7eaeadfcdb4781" - }, - { - "nr": 102176, - "hash": "48be1eb6f3a2c40b05288ce09a29d65853e11259" - }, - { - "nr": 100842, - "hash": "ed72eb0f9cf6aa3b8ec87384bfe400ee4a4cf0ad" - }, - { - "nr": 99915, - "hash": "90b66aefc4f9a5cbcaaf96512cabd04509e26d4e" - }, - { - "nr": 99336, - "hash": "a8c0cc369160e9d717532f66f308e0993da99aba" - }, - { - "nr": 100907, - "hash": "c67b96dac053a0018f5cb30698088327018535ed" - }, - { - "nr": 103176, - "hash": "ea2b6d6b4a6a9f37737b01b6166c5f2287240b5a" - }, - { - "nr": 102821, - "hash": "39705165141dd2262a14b28056c486c2c1baaa3f" - }, - { - "nr": 102722, - "hash": "edfaa3203fb6ac23614a0e304516211e65712296" - }, - { - "nr": 101862, - "hash": "fde59f848c3afefd6e07ec9d5e41748695caaabf" - }, - { - "nr": 100292, - "hash": "e32be083665409ade48e91769a9532a73d38fae3" - }, - { - "nr": 101542, - "hash": "0b626b4f5138c59a0008460922484b62c2ba2cb1" - }, - { - "nr": 101711, - "hash": "a13c6e8ba586ed4d0d28c38f38216a7383b6cc9c" - }, - { - "nr": 103129, - "hash": "57cdd9c3862054121dd7a00b01926e35f68bddea" - }, - { - "nr": 101709, - "hash": "893f8b0709bb0f91e6f1a0fa53f68ca0e6dc3ca9" - }, - { - "nr": 100139, - "hash": "ee92261979a1b5587298e9edd59dc7a616e5754d" - }, - { - "nr": 97989, - "hash": "9032a8704f843159178782af3eda05379ea233d7" - }, - { - "nr": 102332, - "hash": "2ec27a73fc3ae91828907af58457bea08a43876f" - }, - { - "nr": 102158, - "hash": "a52df7ac76f31850400bcbfb627a56b87de8a60f" - }, - { - "nr": 102677, - "hash": "f3f96d95a4ddd39957d68c648ecbd7c528facbc1" - }, - { - "nr": 99364, - "hash": "389200e43d3f5a6a82d3607c9548507055da25c5" - }, - { - "nr": 103190, - "hash": "9ca4f70be4a4e0e3f9e176f81f9461206a3b5c4a" - }, - { - "nr": 102901, - "hash": "59be6fc7fff500a3dcb80a117b0c919b3046cb07" - }, - { - "nr": 102455, - "hash": "c16a5c605ce87b94e403cf446393f62eb4d7ce19" - }, - { - "nr": 102731, - "hash": "1ce9b11617ed1ba16902a3ed7004ef162f25e3e4" - }, - { - "nr": 103216, - "hash": "f0be0898b30461877c57eb24c905693048790c8e" - }, - { - "nr": 100435, - "hash": "93992889028a3ea25e34c33d6fd48b0ac74e6336" - }, - { - "nr": 101084, - "hash": "e65a1108f0637c27732a92378d732c363753ef92" - }, - { - "nr": 100956, - "hash": "aa24402651b994f4f93712d532fe94baf15bac1a" - }, - { - "nr": 100635, - "hash": "ca61e692b7c3b5803634e2b9f5de7caab594f23a" - }, - { - "nr": 101473, - "hash": "3e265cea8fdf90ec88a75332ef3c6a5bc75d0f14" - }, - { - "nr": 101342, - "hash": "8b07b557e07a4019d94e93568fb8dc803760486a" - }, - { - "nr": 103457, - "hash": "b0cc3f4ab9a5c6aa1eb7ebbb1fe102edc14a8f4c" - }, - { - "nr": 103524, - "hash": "ac65c869beafff9bef5d8f3c176e24d95692f2c0" - }, - { - "nr": 100183, - "hash": "e13b5542117bb6e02277e0721afc936ce9ccf160" - }, - { - "nr": 102925, - "hash": "5f2dabfc93c283d54072771f891b3170e42f559f" - }, - { - "nr": 101923, - "hash": "e40a89cbc4af3d69d000658649d878b08bff558c" - }, - { - "nr": 101025, - "hash": "816d7798b3aa0ed86d26ee2da2cf0da2a9258444" - }, - { - "nr": 101129, - "hash": "591db802cb911785619135662993796aa8b3866a" - }, - { - "nr": 103704, - "hash": "7eaeb76c96596b534cc9117ba6b7191e8f04c2a4" - }, - { - "nr": 102412, - "hash": "6c8fbc26b00afa2e3f82140aaa30f9d69d1732ed" - }, - { - "nr": 101235, - "hash": "d7fca9358b3e35c0890466296ea6f6ea66b28e01" - }, - { - "nr": 100500, - "hash": "bf8d84a18943b6dfd8433a77a1300be6682a7b6d" - }, - { - "nr": 103238, - "hash": "6c3fdb837b928fd172983aa9efdf76e4ff23434a" - }, - { - "nr": 92739, - "hash": "dbbc5209a9a55f2264d93512fbb3b3896619264a" - }, - { - "nr": 101652, - "hash": "dffd4c31851f6a24d880b0576b8060193d783aeb" - }, - { - "nr": 98817, - "hash": "95533ef63af30bc65e3fea17e8932b5b70b3a520" - }, - { - "nr": 100339, - "hash": "72577adadaad273b7d7f14e94483861245d10052" - }, - { - "nr": 102859, - "hash": "e367048607462260d7fb756ca1d761e99a37984e" - }, - { - "nr": 103019, - "hash": "6e0232a64075a51996fe4c948c0a17db115c352b" - }, - { - "nr": 102935, - "hash": "54aa8b0bcfd97b790caef8dde1881db1f786270b" - }, - { - "nr": 101294, - "hash": "48fdea7ddd5289454ed91b48aa0a452e87e7664e" - }, - { - "nr": 101151, - "hash": "b17dba2fb51a23131b044cbc1dcd3ea1c49a031f" - }, - { - "nr": 102665, - "hash": "e3c5e9c01a3d1bd015c8c3100972506c90a69f64" - }, - { - "nr": 100234, - "hash": "4182817916f169f6892ca7a26c03fafba7c80a8e" - }, - { - "nr": 101067, - "hash": "cbca6666d099426f9a43857d37f4f6ec99e1ef5d" - }, - { - "nr": 99095, - "hash": "be8684f5602681d72fea9108bf545d17c41dda2d" - }, - { - "nr": 100948, - "hash": "0e2f75fbc17ab5b5f4bf19c08b77e9dd7fd3acb8" - }, - { - "nr": 101171, - "hash": "a036612ddc2526f85118d6de7254cab79bf90721" - }, - { - "nr": 103703, - "hash": "fae6d5bd16f5a27dcf79ed0c8c6e71f7f7c362e8" - }, - { - "nr": 101449, - "hash": "31bd788489434bc2e2d79da7f7257af8bf063d08" - }, - { - "nr": 102466, - "hash": "e83156169fb33dee2e0b3fcfae7b572cde6a1ab9" - }, - { - "nr": 102105, - "hash": "21335da462922c3f6fed6cff1dbda52be27d95b6" - }, - { - "nr": 100638, - "hash": "c972ec7c21d20fc814d94d9783d4dc3c3208845d" - }, - { - "nr": 100680, - "hash": "43f9cd2715527cd3ce0ff2c14d9c2f87e9949345" - }, - { - "nr": 103099, - "hash": "0c78fe85f0ced04ed705607af4d0743f3e62ce2c" - }, - { - "nr": 98287, - "hash": "7fee1d2edcd639bc6d780bc0219aa1f88d40be03" - }, - { - "nr": 102502, - "hash": "9e518b110f07e3764e5e5cbe1736344b2e59f941" - }, - { - "nr": 100608, - "hash": "18e4a6f9f2ff286943fd001e20545abd59af22e9" - }, - { - "nr": 101780, - "hash": "57f873f67420cfd75799dd86a73aee02be0feba6" - } - ] +{ + "mail": "61474540+Damans227@users.noreply.github.com", + "name": "Damans227", + "date": 1626954300, + "prs": [ + { + "nr": 102970, + "hash": "956d9ae4d3d2532d620b77a7accbf07c4829ce98" + }, + { + "nr": 102966, + "hash": "72ea2ffeba2fab3cbd71e96f82e87f21d5188db4" + }, + { + "nr": 99647, + "hash": "41ae1888e62249123bed026c93aa4bb19cb65ab0" + }, + { + "nr": 100141, + "hash": "62c76655fe5fdfce1df476856c915ffe433b0d34" + }, + { + "nr": 98238, + "hash": "6a18f3b3753f7b2a5c9ceeea4b3378300bf6e0a4" + }, + { + "nr": 103520, + "hash": "d884d6c3f0bc39b1c6fa90096c2d762d35a43a3e" + }, + { + "nr": 102578, + "hash": "695de2fa568c5cb2d160ec4e4c392fdb5ef6735a" + }, + { + "nr": 101187, + "hash": "c1644cd973a03116619e8722b53220b90cc6d380" + }, + { + "nr": 101916, + "hash": "0bbda1b6691cfb72c18c320ca26a73de39819969" + }, + { + "nr": 101534, + "hash": "6e2582ac043c09d79631ba79433e236366ff2fa3" + }, + { + "nr": 101093, + "hash": "3072f89a2dcde3cc27afe42428a62ba3bc7e8cc7" + }, + { + "nr": 100311, + "hash": "d851f33570fb7405cd709bfd0e6cc6fd15d624b7" + }, + { + "nr": 101712, + "hash": "e1785b6ee805657689a8fd28510ad2017fa23b53" + }, + { + "nr": 100568, + "hash": "ad24e3503cd066451d211c92f85668eadc163c77" + }, + { + "nr": 99023, + "hash": "6108c705b2def99469923ae33841668699580843" + }, + { + "nr": 90368, + "hash": "a796bd37be49dc48e5a5e7316628ed6712f4d328" + }, + { + "nr": 102063, + "hash": "93695d7762366205908207ab906ed0fd5f27bc04" + }, + { + "nr": 99576, + "hash": "1d58b0171639437a1973fbbc598f5a4457c916e3" + }, + { + "nr": 102121, + "hash": "5fd142389e8e610913fda50f26edcdfa09448c70" + }, + { + "nr": 101938, + "hash": "b445e7042150dac42f2ab5498dadd0ac652e6e8b" + }, + { + "nr": 101420, + "hash": "0107da33bc3561ca8b52bab9c3a08b417c3727e7" + }, + { + "nr": 101531, + "hash": "f20d39e469dd29b03b0f226b9c612241ed5c2cf4" + }, + { + "nr": 101203, + "hash": "a87ce6fc9320b0d6a5d6b45f9f367b1d3f0a0578" + }, + { + "nr": 100784, + "hash": "3deb7bf106bf5013ffc698311d7758be5dff84e1" + }, + { + "nr": 102823, + "hash": "3e47814bbc98274ba5a1d729a82c2a98e5a5a471" + }, + { + "nr": 99829, + "hash": "750660d746f2050154c5854e1b12c2e8b9b90910" + }, + { + "nr": 101030, + "hash": "9fa5f65989e09dffcf5d57f1c14b205b110ddc76" + }, + { + "nr": 102529, + "hash": "91fa25c4136e42a19eb5fbd18f2d6464267aed65" + }, + { + "nr": 101377, + "hash": "e2d9161d3abb3be635e1bcb4dd5b6b2710db4298" + }, + { + "nr": 101034, + "hash": "28bb4becdfd1d7079d479a87e20ac271f8292910" + }, + { + "nr": 100436, + "hash": "02e1d8a1b5597532f24308d22ea1ff341020db97" + }, + { + "nr": 99582, + "hash": "4e805696477fb4c0050c293c53fc3c99414b41c0" + }, + { + "nr": 103218, + "hash": "37b3de98e31c1dab95061f25ef66db2f853a5ffd" + }, + { + "nr": 102386, + "hash": "2db3421651ab7fdd5d52a5a555bc1ffa490518cd" + }, + { + "nr": 102673, + "hash": "5b2da4a0c2c81419c779985752f378eff2b606ba" + }, + { + "nr": 102590, + "hash": "13b53ec7dc0e3366be378414d0994ca85ed10a1b" + }, + { + "nr": 101747, + "hash": "04f0fe844f85dbf54b2fcd45094dc51c716d2285" + }, + { + "nr": 100694, + "hash": "6f89905682df212f7d1264dfd56ef1f3491b0dcb" + }, + { + "nr": 103154, + "hash": "064704aba34759d4613c978da862826e867ddfa8" + }, + { + "nr": 101742, + "hash": "37efc617e3838144fd60bc8c8912dd5a8efc1e4d" + }, + { + "nr": 102071, + "hash": "ad692e596e9b73aebd8c652c2832bddd84cce795" + }, + { + "nr": 101773, + "hash": "14c1a092085f9852359d004f0163057f7289a09a" + }, + { + "nr": 95387, + "hash": "d47d50e11a10dcf3c63e985815cd311548014817" + }, + { + "nr": 100728, + "hash": "0e35ee838540f5cba19ea079469377de33365df6" + }, + { + "nr": 100678, + "hash": "56d2d79e98baf82fb6732d14af00368b514751b1" + }, + { + "nr": 99775, + "hash": "c572eec12f99be89b8a78cbe9e9de40833a5169d" + }, + { + "nr": 98431, + "hash": "b440eaa81f1d81edc8cda120786793b8f289466c" + }, + { + "nr": 101767, + "hash": "d8ce103078754bb1c861d035e02da8b9fd02fa2a" + }, + { + "nr": 101539, + "hash": "6c0403313262f88eb16feed10d713d588783e7ab" + }, + { + "nr": 101547, + "hash": "b51a719c67f1fa03aca238ba6314272f8472a033" + }, + { + "nr": 101477, + "hash": "904489b296e177c53e8970b64e4227f25f74bc16" + }, + { + "nr": 100148, + "hash": "0c84f8bf0eca51210e9377d7830662c1ab766128" + }, + { + "nr": 103245, + "hash": "cdd58dfec89a99eb1e4f123f4a40c6bbb3ae2b96" + }, + { + "nr": 102133, + "hash": "bb95b8dcc5a8b4df0f10b99b4ccd47098ad227ed" + }, + { + "nr": 99358, + "hash": "590bd5b4d16cf54b31ba8195cce4b07ce5872b03" + }, + { + "nr": 100350, + "hash": "71a2768027b6a24717955bae6b0ff6e12de68656" + }, + { + "nr": 103533, + "hash": "dc6078647d8699e69e5c06dc8c339e4ea4fe2bea" + }, + { + "nr": 103326, + "hash": "b85495c68cbd1074d9207c96aba12c22e78a93e5" + }, + { + "nr": 100939, + "hash": "eb4ec938c5bc8a903052c8d7511ab4a7637672f3" + }, + { + "nr": 101560, + "hash": "f035b68e99b690658c78227b4b0c003976eed9fc" + }, + { + "nr": 101441, + "hash": "759598a8dded7dd9a2d1e6be2c8ee852c3596784" + }, + { + "nr": 101110, + "hash": "21604b01fb7c68257bb1347a45bdb58ce0872b9f" + }, + { + "nr": 103553, + "hash": "00540ff96c139f135f627ffb00e2ee7a11472080" + }, + { + "nr": 102934, + "hash": "6252af5dc8914fc9d2dc200f2e6998a7f3d201a1" + }, + { + "nr": 96702, + "hash": "bf754db2bef15f8ca5abeb5084a9dbed4daba87d" + }, + { + "nr": 99839, + "hash": "06b4151b7490328b1ca6506b6419911bb9a02079" + }, + { + "nr": 103747, + "hash": "fd3dcc19e64b26fad548f7a532da1e4b1be5ae10" + }, + { + "nr": 103276, + "hash": "5cd3efbb02d34cd2b63826d7ed701344a055a864" + }, + { + "nr": 103306, + "hash": "a94cc151e5348e20eca6e4bc8ad199526f4e7c3c" + }, + { + "nr": 94942, + "hash": "ff9aadf892928c584c7c13b1c2419410e536d1f7" + }, + { + "nr": 102498, + "hash": "7bb1dbe43d9c210e0f837f57774127c9591fff3b" + }, + { + "nr": 100136, + "hash": "e02c67d15716421f0d989ce25860bfb2349f5b8f" + }, + { + "nr": 99566, + "hash": "988991e4995bf2a8859aac70624670e9bfe34596" + }, + { + "nr": 102964, + "hash": "769c65f18fc2541c4ed083b19dd894422cda8cd9" + }, + { + "nr": 102171, + "hash": "11abb0a3243bd4cb47864ad4fdea4dae2de71a80" + }, + { + "nr": 101647, + "hash": "2e3408490fca649a82c990115c4c9ba9f33096a5" + }, + { + "nr": 101966, + "hash": "e020645790fda6b1cf729015f52950a5a1658bb8" + }, + { + "nr": 101857, + "hash": "5b46c8f041c4dc4d1490f2a1a6f5cbdea147d882" + }, + { + "nr": 103318, + "hash": "e84e59be83e23871b35e3ec4751f7f16d097caac" + }, + { + "nr": 100262, + "hash": "2a5f3c467312569a6a91617fbb489c60390e24aa" + }, + { + "nr": 101160, + "hash": "9a51e7506335014fffbbc6d4c2567640e3a85ec0" + }, + { + "nr": 101082, + "hash": "7a6c780ac9b033b6377a69513dcdfc200cff50fa" + }, + { + "nr": 101292, + "hash": "8c41ffd4b60eff2a72225ac5b2e59867918b564e" + }, + { + "nr": 101737, + "hash": "d72d540813438da5752ef1d7a864afde11771d44" + }, + { + "nr": 100599, + "hash": "41e71a1308a247c2f24538db20233da0a8798876" + }, + { + "nr": 103470, + "hash": "a6598e804206821999ea3dad45ed41bfdecc1099" + }, + { + "nr": 103292, + "hash": "c65a4bfb6fe706dae283584445aae15ac5cdf8a7" + }, + { + "nr": 101669, + "hash": "2c1f95208eb4e7f92dbe6a2dd130e206b9981eea" + }, + { + "nr": 99597, + "hash": "2c51d996893784282e257a552f610789649885a7" + }, + { + "nr": 103541, + "hash": "6af7f0370a10bc2e19c6caa779e72beea81ec54b" + }, + { + "nr": 103419, + "hash": "01094e0a1fee429a9bcc59330e76a9fb4c0ac6eb" + }, + { + "nr": 103244, + "hash": "8e9a4eab4c9b6c87969393f183260981bb30966b" + }, + { + "nr": 102869, + "hash": "432016b29a9ba16afbb8841957da160cc45ee257" + }, + { + "nr": 102443, + "hash": "0015b6e1c2c82f13fe51bde68dabfb02db1ae9e2" + }, + { + "nr": 102414, + "hash": "f2019b80d9c708a20eba679b6fb390f3a151382a" + }, + { + "nr": 100940, + "hash": "792cd36cb7d51efa5d507eb97fb5afc59dff5e2f" + }, + { + "nr": 101057, + "hash": "5166f6f80093377c314157b52edf83af02370507" + }, + { + "nr": 102188, + "hash": "a9f207671953494fcdd5272a9e10c3c9a15f59fd" + }, + { + "nr": 103313, + "hash": "e3aa4c8d5f0fa4ad7438c7155fb5b1875d69efe5" + }, + { + "nr": 96087, + "hash": "188948f4d233adac097fa338a21b291953e3f09d" + }, + { + "nr": 102834, + "hash": "33912b4196fac3987e3599fa022cc8d3f1d4db0e" + }, + { + "nr": 102323, + "hash": "5df2b1daec5a60c20b127cb011df865c5627761a" + }, + { + "nr": 101915, + "hash": "ea12525c9de541d3b096be1ad8308d026373189a" + }, + { + "nr": 101578, + "hash": "4460531dff79877413084ab3f92ef0515d4b4165" + }, + { + "nr": 101589, + "hash": "8be56e17775ac95e66363ebfa287f8390120b4cf" + }, + { + "nr": 102155, + "hash": "89b842a7ccc34265cc1bbd6cd65793e0ed71765d" + }, + { + "nr": 102444, + "hash": "75f8afa498735d8ffda417491ce858f6ed3d6d58" + }, + { + "nr": 102965, + "hash": "bcba9b549a75869d149a39ee4acb99e1cc3981c2" + }, + { + "nr": 100488, + "hash": "ad71dce0155d06440c510f22f98a1c0bd2783abb" + }, + { + "nr": 102489, + "hash": "14ec7979413b736475d79e90eedfcc24d521630c" + }, + { + "nr": 102377, + "hash": "b835aea0bcd33dfe481329cb4390e97767062008" + }, + { + "nr": 100575, + "hash": "8534abb026ac07baa5071825bf9a82f61113eb31" + }, + { + "nr": 103785, + "hash": "5eb3adbca5500a2f919c219cbdd893747d2a86fc" + }, + { + "nr": 99494, + "hash": "67cb3ced683b9e64166b6a2524d6e71c1a892011" + }, + { + "nr": 102594, + "hash": "83f5bc9d42859131e879d98e1fd69f1e5ca1dec0" + }, + { + "nr": 101592, + "hash": "432bd35e1cfe965b4f04086e9921b3974b14ab10" + }, + { + "nr": 101104, + "hash": "e3184de93cf75f46bd271813dc0a4c218bc7dc1b" + }, + { + "nr": 101076, + "hash": "5714dc98a90db948962b02bf00c6d61480502bd2" + }, + { + "nr": 101296, + "hash": "ba6bde8ca5fd9d19ac1926455e727c28dd2a4056" + }, + { + "nr": 102783, + "hash": "caa96f56920b0ea6a6d38110ed86524728194bfb" + }, + { + "nr": 102441, + "hash": "d013e7eddf91379588dea3980034ca555335fcb3" + }, + { + "nr": 102297, + "hash": "a2a80b3ed6363aa0dd0638593ccc3ab2ca3d6fc6" + }, + { + "nr": 102159, + "hash": "47485702e4f12fb091214f6f3edd1449692c06da" + }, + { + "nr": 101579, + "hash": "d6209721bde251c12d7e1d8e663600b19af71ccd" + }, + { + "nr": 102181, + "hash": "6a374e95da6f3b40f9241051953dae28302f4db7" + }, + { + "nr": 100412, + "hash": "00cb0a42fd63d9811b41adfcb5d730bd0acff333" + }, + { + "nr": 102892, + "hash": "160b73ce91415d2dbcf93bc060618442c16a62db" + }, + { + "nr": 100369, + "hash": "f2a15c8c5e63303f3ac46bbfb21a6a237b9abc15" + }, + { + "nr": 101208, + "hash": "b82e1f831ad6144de43b0805f3d868053910f28b" + }, + { + "nr": 100976, + "hash": "d23dc2239bf678adbe71a788031c07dda6820b87" + }, + { + "nr": 101181, + "hash": "3dcd3f1c1bde63d9b872fc421814b87123f880f9" + }, + { + "nr": 103063, + "hash": "866daf60b0c2b4a9fe4bc6ad95a2a8cf40e39966" + }, + { + "nr": 102062, + "hash": "ccecf0b4da05e53061712c3ae588a43f491341c0" + }, + { + "nr": 102598, + "hash": "5c76f89fe345d5449c7691ec675a7236c1f38e1c" + }, + { + "nr": 102328, + "hash": "4201273fccf268543c81029071e8df6b0354de54" + }, + { + "nr": 102193, + "hash": "01f90ecce0c63803e36cf894e8eb83f14d6f6c3e" + }, + { + "nr": 102108, + "hash": "b8a6a4222a4823a2a80e7b06b7822fbb06ab9305" + }, + { + "nr": 98377, + "hash": "8fd05a8b231885736568544933ee113300234eb1" + }, + { + "nr": 100959, + "hash": "e5455364fa899a7b31ca721b11eaccdbcf55f391" + }, + { + "nr": 100101, + "hash": "d191af52c5c7531e4ed2b5a3b5f6e1ffe1c5eb17" + }, + { + "nr": 103383, + "hash": "2f611ba5bcb72af6b5562850c4069df156eb5650" + }, + { + "nr": 102873, + "hash": "23c83cf03d8528bbcf3fd72048a5b246d6ea749e" + }, + { + "nr": 99178, + "hash": "5c7b10c0b5ac38b2667783b170c65ffbd3608893" + }, + { + "nr": 102147, + "hash": "47ca0a4cf5a848f5977ee2bc2de908adf04a859a" + }, + { + "nr": 100944, + "hash": "ccec86591f9e1465ee67e8dcd5ed0de588a92dc9" + }, + { + "nr": 93260, + "hash": "b1719d02cb67be56fbe76aab1e6e51196209d82d" + }, + { + "nr": 102890, + "hash": "697bb247a010752cceed4aafa7eb81ffad50743d" + }, + { + "nr": 100565, + "hash": "54e57fc5976f7de53057ff04fe4b6540e62dcc3c" + }, + { + "nr": 103451, + "hash": "07cab2167c3aeda4ef1a4522dccfc68d545b5a07" + }, + { + "nr": 103133, + "hash": "6391b81add9bf9d0605ca80fd5adb46230cba87d" + }, + { + "nr": 98057, + "hash": "38af876f07f03981496842b59ad67a4b5238da5c" + }, + { + "nr": 96959, + "hash": "1e97a0b01fbdf2d787e6016bd81f0d0db722b479" + }, + { + "nr": 103596, + "hash": "ade240390b53d66cdb96c177612c41808b6a2320" + }, + { + "nr": 98306, + "hash": "fad1b65be411c648854a0191a4ab0b6f303928c4" + }, + { + "nr": 101412, + "hash": "ea0d591cbe24da2658e8c3e7817d7c071d63148d" + }, + { + "nr": 101398, + "hash": "b015a1151d5e44ccd5f235511dbe419809353236" + }, + { + "nr": 100686, + "hash": "2380016720f4be1768b1f36948e1aee1c862440c" + }, + { + "nr": 99069, + "hash": "900ec0c97d97c6065b2e9c29e4f1750c56b14224" + }, + { + "nr": 100724, + "hash": "a4c0042b0069fa53b62327f1623fd14a1adf252c" + }, + { + "nr": 103414, + "hash": "5a76d8b5eeb2d3eb2d088499e56da27b4999fe10" + }, + { + "nr": 103082, + "hash": "83226d59332a9c5eb5dd8f5f1ce99e44cd6cca41" + }, + { + "nr": 99378, + "hash": "ef812e9341a6eb8a772a17b79ab5343d04bf4549" + }, + { + "nr": 102028, + "hash": "07d4d11272a5d7bac229cb6efd6bbe61a91b97c9" + }, + { + "nr": 101436, + "hash": "e1325505103723115e2c22e18eca6c4613d6433f" + }, + { + "nr": 101155, + "hash": "81c1925788bb0604db208817a00b7eebf85c689b" + }, + { + "nr": 100612, + "hash": "974ecbcdaae9ba8c8367aad80aa1c756261f9629" + }, + { + "nr": 100206, + "hash": "f40ecf9b206ea59c78aa3a52ef9d281d2cdd3103" + }, + { + "nr": 103307, + "hash": "2279244a206be4217209f6ab34775e69cca928d6" + }, + { + "nr": 102059, + "hash": "276ed8a2ad0c1f7f0c2dde60b529dbc0c42dac27" + }, + { + "nr": 102239, + "hash": "d7fc97e8afaa727e804e13f89c648326b9c3a2d7" + }, + { + "nr": 98077, + "hash": "685549f93ffaacd9306723dfc7ba452a3ea61794" + }, + { + "nr": 101587, + "hash": "3d2b24c1dc0d54a9d30b019affa52c2de86c0935" + }, + { + "nr": 101685, + "hash": "8a02537e1d0ba787c26146943074581d3c559c9b" + }, + { + "nr": 101869, + "hash": "44746d1d34160950b24cf8bcc1c48cc3709aa6bb" + }, + { + "nr": 101411, + "hash": "56164cdcb9fc3488f75b0b6dd3df8166d48a644d" + }, + { + "nr": 101080, + "hash": "7999ca435db97d1d79bf1ec6c9b0d912c111e95b" + }, + { + "nr": 97968, + "hash": "2097dbfa859b479994f424613ccd5db47d33d37d" + }, + { + "nr": 102022, + "hash": "66fea9974dce7f18da1117d0ba812f239bdee607" + }, + { + "nr": 101271, + "hash": "f04231501da2fdf9a68671b620220e5b9b7215a1" + }, + { + "nr": 92863, + "hash": "247701531a152ac6e2b7620ce3f4a56959374e82" + }, + { + "nr": 101822, + "hash": "2f6484f86821371cca9aeeb91c142ee6cef354fc" + }, + { + "nr": 102201, + "hash": "89d464bde2abc756816752e916d87eb8c85e3bc0" + }, + { + "nr": 102302, + "hash": "0c6d521e3cb330d951829a4cfa806972983e0738" + }, + { + "nr": 101252, + "hash": "1674500528273e510fa230eaf9a030f3d3226771" + }, + { + "nr": 99963, + "hash": "6da1284e36a8da521da1982a0d1f4898a51507cc" + }, + { + "nr": 101394, + "hash": "b4c376d4dafd897fbe3f7c44346f1277190513a6" + }, + { + "nr": 101496, + "hash": "35452bd75429ce7312cf4342c3e4eb11dfbdccb3" + }, + { + "nr": 103169, + "hash": "1cdc148779b42232de95b47d70646a0d48bbc73d" + }, + { + "nr": 102898, + "hash": "6499a732b5c51b092cfee60af2a6dc2ee4dbdea5" + }, + { + "nr": 97028, + "hash": "9f194bad93e4c671b69aa7c56d7a69ba66e43a0f" + }, + { + "nr": 102642, + "hash": "36214042aa0070d3f8adf3b9e69083bd387a207d" + }, + { + "nr": 102805, + "hash": "300f21b8294125a2deb3761e8d289bfde55540ac" + }, + { + "nr": 102683, + "hash": "4d406f4db8e5c37f188837552ef5dc311c8c748a" + }, + { + "nr": 99900, + "hash": "4e2815a09b542a875d9a0e8e412ef628e828003d" + }, + { + "nr": 100942, + "hash": "258b1e236266444a8862a1ce81b2216f8b3b0967" + }, + { + "nr": 100200, + "hash": "0267b0544ae992d287a9229adceb6c7118667f32" + }, + { + "nr": 100085, + "hash": "746a815234b0fd324f26cf4a637b2dede90aaf0e" + }, + { + "nr": 101256, + "hash": "1578c3c849ecdb60c5e21deafc9cb124a11bb811" + }, + { + "nr": 102620, + "hash": "0a45b3a1e2f836e0abcc7cfc4ed3a77e0d004290" + }, + { + "nr": 100142, + "hash": "c5bcc23eb7394d324a659ca6dc67dbee9854198c" + }, + { + "nr": 96084, + "hash": "6fb752365a72b7afa62f13bdb417963cc5a4bcf5" + }, + { + "nr": 103057, + "hash": "d464ba2d71da8d0406de2e9e5bacc243fbaa3638" + }, + { + "nr": 101074, + "hash": "1e0ad921a6112c4e5973941c957c73730d088332" + }, + { + "nr": 99729, + "hash": "de5ac8af8a08ebcfd281dfb77d57ce932e674b6d" + }, + { + "nr": 100267, + "hash": "072bd753896c0b5c71c941b6ea9437a017021354" + }, + { + "nr": 101047, + "hash": "3837f7f344adbf2a5bbbaab3c09627b56322fa58" + }, + { + "nr": 97238, + "hash": "41dfe2688c85a880e8a58f2b0f3ae74fc8dabdd7" + }, + { + "nr": 102539, + "hash": "e3c161847e05d93104d7c895add97ef5b1b9a151" + }, + { + "nr": 102039, + "hash": "02998efa3d6fc799da38a8cf4ea33fe1e0f6065f" + }, + { + "nr": 96216, + "hash": "031a5e249b88f103dc51f501024dfbbf86c5771a" + }, + { + "nr": 99310, + "hash": "fcb13e9dedab33308d2e81e2986c39b4a30fb3d2" + }, + { + "nr": 100754, + "hash": "85d2ae62a405f043c3090e838b42531dd829e33e" + }, + { + "nr": 100051, + "hash": "95077e358db69c01e7ac930863859c87f382377a" + }, + { + "nr": 103669, + "hash": "02f9851ce5ce9ad5b80ccc5d85a04b89f9c543bd" + }, + { + "nr": 103001, + "hash": "96962b38262375b33f35660d5e5cd4894ce44cc9" + }, + { + "nr": 101272, + "hash": "9bb59dd1967460a1ffd287df8e9d620c026d846c" + }, + { + "nr": 102093, + "hash": "883be024d3ed7afb292dacb8b4117c50e1e16edb" + }, + { + "nr": 97796, + "hash": "ae07d7b62171aa07646aaf092bb1c5fc24578978" + }, + { + "nr": 100684, + "hash": "eb855971f1929547bd31d8cdea60d5674dd36e75" + }, + { + "nr": 101120, + "hash": "0313ef8221125aa9e6e102bf0738fa1a2dbb6352" + }, + { + "nr": 100322, + "hash": "333ddc322e8441e9740bae406483ed79650d666e" + }, + { + "nr": 99144, + "hash": "eb03f706227c0173d8d7fcca0c9b8f5e665daf55" + }, + { + "nr": 101316, + "hash": "9f0e6e06b35c0ebe2af3b837f5edd1a48d75a522" + }, + { + "nr": 102795, + "hash": "1a9f527b62354a1277f75e77da8bdf1dae731c4e" + }, + { + "nr": 102030, + "hash": "978423f70faa25b4aebd6756e555f134e18c882c" + }, + { + "nr": 101950, + "hash": "b774ea2ca2c182d9c1007170594f4e3954a855e4" + }, + { + "nr": 101537, + "hash": "9dbc266c9af97c57cfba119af2670e175acdf349" + }, + { + "nr": 103390, + "hash": "5b90491f3bed0ecd8bd64fa31b91b3f1edaff661" + }, + { + "nr": 102363, + "hash": "3777904002022d4c5ac2da98caeeb29db90d5a47" + }, + { + "nr": 101688, + "hash": "b32c1e3208e46b01ea0e11f2c3ed4b75f6ea035b" + }, + { + "nr": 101523, + "hash": "0ae3892565ce76c9eeca2b5252460979dcc4647e" + }, + { + "nr": 103168, + "hash": "bf66bc5ec1350f84a203bf4a4cdd07bdb6314c83" + }, + { + "nr": 103284, + "hash": "583d760264f0af643eb8fcf9499d6ec797e385f9" + }, + { + "nr": 103462, + "hash": "dc58605c2496e1ddc8289df193ff030363256e87" + }, + { + "nr": 102840, + "hash": "560748a608cd8759f9a5def96e042f6a92ec81d6" + }, + { + "nr": 102689, + "hash": "e7443cbaae3218775400a1e9d720598472f441e3" + }, + { + "nr": 95396, + "hash": "42a1ce850c33c8bbe9471506e035d09e832dec9d" + }, + { + "nr": 102788, + "hash": "39a4465ced0bb97bf9a8d2857c8ece258a7c5ad3" + }, + { + "nr": 102516, + "hash": "c828f521d6b6434147a873af2a691e970fa2a69e" + }, + { + "nr": 98350, + "hash": "43d6cc0cbc6ca8dee7a850845064fac192544810" + }, + { + "nr": 100861, + "hash": "1a3b09c533c19ee46ac13eab06d71a5a8f326365" + }, + { + "nr": 100404, + "hash": "23cb1da0660e2388f40c1e5bf5f59c7ba2b3c326" + }, + { + "nr": 99961, + "hash": "a78b9e2fa16cfc945ad20f34d266cf1fd6d3ae04" + }, + { + "nr": 102509, + "hash": "5677bd527b981319f2d83f205a9843c957f99636" + }, + { + "nr": 100100, + "hash": "0337163f7fd1ecf21d587f7d7e96c505708df26c" + }, + { + "nr": 100110, + "hash": "e163f15fe3fe8b86615c299a955ca1c144fe3d85" + }, + { + "nr": 102711, + "hash": "e7dafb6c7d990935b8c40305c7d3bed455571fb3" + }, + { + "nr": 102461, + "hash": "adb209eac8251730de75d100d14942ea90f6aecf" + }, + { + "nr": 101992, + "hash": "062f78c7d6d493a960678ec2015469214826de13" + }, + { + "nr": 101809, + "hash": "71f5ffb9beb6e08b9006620c9a8f7c938dfe7ff2" + }, + { + "nr": 95286, + "hash": "d0592b4cb6aa08df6809584b28c5c3ec6edbfd62" + }, + { + "nr": 100644, + "hash": "94ed91958953f700ee37e9bbe7c663a32b06abf6" + }, + { + "nr": 101048, + "hash": "dc12393b90cdf25a8f9aea2dd468ab5e91c3f1fc" + }, + { + "nr": 102437, + "hash": "609b638b311307f5c3a548573a9ba4bba88e4fd0" + }, + { + "nr": 102366, + "hash": "8f959163a98bd80d954162582deda4c6f836aa31" + }, + { + "nr": 101600, + "hash": "295a10a2cda1d75f14cbbdfc8181a6ef6226045e" + }, + { + "nr": 100651, + "hash": "d6ac4df326de55c44c4d2639b990cbdb1ad23ad3" + }, + { + "nr": 102083, + "hash": "c909cddc8d9d4bb161449aeada15509bac1ec553" + }, + { + "nr": 101817, + "hash": "e4123495d82730c335c9e7922ec1df5a1c42a0c6" + }, + { + "nr": 102344, + "hash": "01fa2d4d5a65f1ede51e58171070a206bd5ed866" + }, + { + "nr": 101510, + "hash": "9d12d6a957724e0dad644e13d8de082a49dacb0d" + }, + { + "nr": 101977, + "hash": "a7b3ec904ce6fc5ddd677a5fb53e80dafe8f7bae" + }, + { + "nr": 101946, + "hash": "fc49f0446f03a6b922c445f21d9d83927f92f268" + }, + { + "nr": 103514, + "hash": "7ab22ce8250a15af5ff2f0d01af0b598cbbddf75" + }, + { + "nr": 98866, + "hash": "98e1c4019207215e53d8a0dc02e4a5810be7fb9a" + }, + { + "nr": 101581, + "hash": "10fd909f6e4ac9dc292b6b9e8688241c51691ecd" + }, + { + "nr": 101005, + "hash": "f57f2515df9eb362991c2b21d84f0ffe61da554d" + }, + { + "nr": 101357, + "hash": "b04d6b4fdd71b158e697e6b741fcf09ef186044f" + }, + { + "nr": 102067, + "hash": "c272e8d87f71a4f706d269c84b800eacabbe037a" + }, + { + "nr": 101739, + "hash": "af9967ee04cb0e89a7ef77d07b81410ae3b1bc9c" + }, + { + "nr": 100690, + "hash": "f5ee2b4929be0210b635d94cefc46ee80fcd69ff" + }, + { + "nr": 101186, + "hash": "c4c332ff7b9c1e845f1eacb8d77fbe435cc59209" + }, + { + "nr": 102177, + "hash": "cafa3d0ac7e629554f81fabb726fd0f1d814b369" + }, + { + "nr": 92372, + "hash": "d764dfcee5d27ed94a841fd6dbba4f3dc338d09e" + }, + { + "nr": 103235, + "hash": "3acf9dcbf54f4021bb8911d388f6cd1d36699736" + }, + { + "nr": 102858, + "hash": "ca0496739e02f60ebdbdc982e2d3514b9626ead4" + }, + { + "nr": 102825, + "hash": "f48832eda1e1a175bddcede27d5ed5228a3fb3cb" + }, + { + "nr": 100913, + "hash": "8a1eec28d3658a94423e3d05f18a8325a9dddf5b" + }, + { + "nr": 101943, + "hash": "c1b6ebd75c8e8cfcf0692ae6aec4b126020c0421" + }, + { + "nr": 102005, + "hash": "e4dd2cf0ba0cd417ad1282da705dc3103e10ed76" + }, + { + "nr": 101752, + "hash": "51a0fa20dac62d3adf91fb63f1669065b39a4a7d" + }, + { + "nr": 101206, + "hash": "b5b97dc63211e73dcc82321e263cd9a7c78a9f82" + }, + { + "nr": 100731, + "hash": "4541dc2aa96d6e5cdfc848cff76a67c1d5ca1577" + }, + { + "nr": 68004, + "hash": "e0875378b21ada4303e10ec0e42e1cbc1f2070be" + }, + { + "nr": 101947, + "hash": "a136efd619d9137f8ae51f21235dab3f9f3be95f" + }, + { + "nr": 102467, + "hash": "0ef9f36d66bf1dd98f8af5857c7eaeadfcdb4781" + }, + { + "nr": 102176, + "hash": "48be1eb6f3a2c40b05288ce09a29d65853e11259" + }, + { + "nr": 100842, + "hash": "ed72eb0f9cf6aa3b8ec87384bfe400ee4a4cf0ad" + }, + { + "nr": 99915, + "hash": "90b66aefc4f9a5cbcaaf96512cabd04509e26d4e" + }, + { + "nr": 99336, + "hash": "a8c0cc369160e9d717532f66f308e0993da99aba" + }, + { + "nr": 100907, + "hash": "c67b96dac053a0018f5cb30698088327018535ed" + }, + { + "nr": 103176, + "hash": "ea2b6d6b4a6a9f37737b01b6166c5f2287240b5a" + }, + { + "nr": 102821, + "hash": "39705165141dd2262a14b28056c486c2c1baaa3f" + }, + { + "nr": 102722, + "hash": "edfaa3203fb6ac23614a0e304516211e65712296" + }, + { + "nr": 101862, + "hash": "fde59f848c3afefd6e07ec9d5e41748695caaabf" + }, + { + "nr": 100292, + "hash": "e32be083665409ade48e91769a9532a73d38fae3" + }, + { + "nr": 101542, + "hash": "0b626b4f5138c59a0008460922484b62c2ba2cb1" + }, + { + "nr": 101711, + "hash": "a13c6e8ba586ed4d0d28c38f38216a7383b6cc9c" + }, + { + "nr": 103129, + "hash": "57cdd9c3862054121dd7a00b01926e35f68bddea" + }, + { + "nr": 101709, + "hash": "893f8b0709bb0f91e6f1a0fa53f68ca0e6dc3ca9" + }, + { + "nr": 100139, + "hash": "ee92261979a1b5587298e9edd59dc7a616e5754d" + }, + { + "nr": 97989, + "hash": "9032a8704f843159178782af3eda05379ea233d7" + }, + { + "nr": 102332, + "hash": "2ec27a73fc3ae91828907af58457bea08a43876f" + }, + { + "nr": 102158, + "hash": "a52df7ac76f31850400bcbfb627a56b87de8a60f" + }, + { + "nr": 102677, + "hash": "f3f96d95a4ddd39957d68c648ecbd7c528facbc1" + }, + { + "nr": 99364, + "hash": "389200e43d3f5a6a82d3607c9548507055da25c5" + }, + { + "nr": 103190, + "hash": "9ca4f70be4a4e0e3f9e176f81f9461206a3b5c4a" + }, + { + "nr": 102901, + "hash": "59be6fc7fff500a3dcb80a117b0c919b3046cb07" + }, + { + "nr": 102455, + "hash": "c16a5c605ce87b94e403cf446393f62eb4d7ce19" + }, + { + "nr": 102731, + "hash": "1ce9b11617ed1ba16902a3ed7004ef162f25e3e4" + }, + { + "nr": 103216, + "hash": "f0be0898b30461877c57eb24c905693048790c8e" + }, + { + "nr": 100435, + "hash": "93992889028a3ea25e34c33d6fd48b0ac74e6336" + }, + { + "nr": 101084, + "hash": "e65a1108f0637c27732a92378d732c363753ef92" + }, + { + "nr": 100956, + "hash": "aa24402651b994f4f93712d532fe94baf15bac1a" + }, + { + "nr": 100635, + "hash": "ca61e692b7c3b5803634e2b9f5de7caab594f23a" + }, + { + "nr": 101473, + "hash": "3e265cea8fdf90ec88a75332ef3c6a5bc75d0f14" + }, + { + "nr": 101342, + "hash": "8b07b557e07a4019d94e93568fb8dc803760486a" + }, + { + "nr": 103457, + "hash": "b0cc3f4ab9a5c6aa1eb7ebbb1fe102edc14a8f4c" + }, + { + "nr": 103524, + "hash": "ac65c869beafff9bef5d8f3c176e24d95692f2c0" + }, + { + "nr": 100183, + "hash": "e13b5542117bb6e02277e0721afc936ce9ccf160" + }, + { + "nr": 102925, + "hash": "5f2dabfc93c283d54072771f891b3170e42f559f" + }, + { + "nr": 101923, + "hash": "e40a89cbc4af3d69d000658649d878b08bff558c" + }, + { + "nr": 101025, + "hash": "816d7798b3aa0ed86d26ee2da2cf0da2a9258444" + }, + { + "nr": 101129, + "hash": "591db802cb911785619135662993796aa8b3866a" + }, + { + "nr": 103704, + "hash": "7eaeb76c96596b534cc9117ba6b7191e8f04c2a4" + }, + { + "nr": 102412, + "hash": "6c8fbc26b00afa2e3f82140aaa30f9d69d1732ed" + }, + { + "nr": 101235, + "hash": "d7fca9358b3e35c0890466296ea6f6ea66b28e01" + }, + { + "nr": 100500, + "hash": "bf8d84a18943b6dfd8433a77a1300be6682a7b6d" + }, + { + "nr": 103238, + "hash": "6c3fdb837b928fd172983aa9efdf76e4ff23434a" + }, + { + "nr": 92739, + "hash": "dbbc5209a9a55f2264d93512fbb3b3896619264a" + }, + { + "nr": 101652, + "hash": "dffd4c31851f6a24d880b0576b8060193d783aeb" + }, + { + "nr": 98817, + "hash": "95533ef63af30bc65e3fea17e8932b5b70b3a520" + }, + { + "nr": 100339, + "hash": "72577adadaad273b7d7f14e94483861245d10052" + }, + { + "nr": 102859, + "hash": "e367048607462260d7fb756ca1d761e99a37984e" + }, + { + "nr": 103019, + "hash": "6e0232a64075a51996fe4c948c0a17db115c352b" + }, + { + "nr": 102935, + "hash": "54aa8b0bcfd97b790caef8dde1881db1f786270b" + }, + { + "nr": 101294, + "hash": "48fdea7ddd5289454ed91b48aa0a452e87e7664e" + }, + { + "nr": 101151, + "hash": "b17dba2fb51a23131b044cbc1dcd3ea1c49a031f" + }, + { + "nr": 102665, + "hash": "e3c5e9c01a3d1bd015c8c3100972506c90a69f64" + }, + { + "nr": 100234, + "hash": "4182817916f169f6892ca7a26c03fafba7c80a8e" + }, + { + "nr": 101067, + "hash": "cbca6666d099426f9a43857d37f4f6ec99e1ef5d" + }, + { + "nr": 99095, + "hash": "be8684f5602681d72fea9108bf545d17c41dda2d" + }, + { + "nr": 100948, + "hash": "0e2f75fbc17ab5b5f4bf19c08b77e9dd7fd3acb8" + }, + { + "nr": 101171, + "hash": "a036612ddc2526f85118d6de7254cab79bf90721" + }, + { + "nr": 103703, + "hash": "fae6d5bd16f5a27dcf79ed0c8c6e71f7f7c362e8" + }, + { + "nr": 101449, + "hash": "31bd788489434bc2e2d79da7f7257af8bf063d08" + }, + { + "nr": 102466, + "hash": "e83156169fb33dee2e0b3fcfae7b572cde6a1ab9" + }, + { + "nr": 102105, + "hash": "21335da462922c3f6fed6cff1dbda52be27d95b6" + }, + { + "nr": 100638, + "hash": "c972ec7c21d20fc814d94d9783d4dc3c3208845d" + }, + { + "nr": 100680, + "hash": "43f9cd2715527cd3ce0ff2c14d9c2f87e9949345" + }, + { + "nr": 103099, + "hash": "0c78fe85f0ced04ed705607af4d0743f3e62ce2c" + }, + { + "nr": 98287, + "hash": "7fee1d2edcd639bc6d780bc0219aa1f88d40be03" + }, + { + "nr": 102502, + "hash": "9e518b110f07e3764e5e5cbe1736344b2e59f941" + }, + { + "nr": 100608, + "hash": "18e4a6f9f2ff286943fd001e20545abd59af22e9" + }, + { + "nr": 101780, + "hash": "57f873f67420cfd75799dd86a73aee02be0feba6" + } + ] } \ No newline at end of file diff --git a/releases/release-1.22/release-team.md b/releases/release-1.22/release-team.md index 5da69cea062..faa9618c969 100644 --- a/releases/release-1.22/release-team.md +++ b/releases/release-1.22/release-team.md @@ -1,22 +1,22 @@ -# Kubernetes 1.22 Release Team - -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|----------|----------------------------------|----------------------------------------| -| Lead | Savitha Raghunathan ([@savitharaghunathan](https://github.com/savitharaghunathan) / Slack: `@sraghunathan`) | Anna Jung ([@annajung](https://github.com/annajung) / Slack: `@annajung`),Derrik Campau ([@erismaster](https://github.com/erismaster) / Slack: `@derrik campau`),Divya Mohan ([@divya-mohan0209](https://github.com/divya-mohan0209) / Slack: `@divya`), Kirsten Garrison ( [@kikisdeliveryservice](https://github.com/kikisdeliveryservice) / Slack: `@oikiki`) | -| Enhancements | James Laverack ([@jameslaverack](https://github.com/jameslaverack) / Slack: `@james.laverack`)| Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`), Rey Lejano ([@reylejano](https://github.com/reylejano) / Slack: `@rlejano`), Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`), Supriya Premkumar ([@supriya-premkumar](https://github.com/supriya-premkumar) / Slack: `@supriya premkumar`), Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@Joseph`) | -| CI Signal | Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkorbi`) | Sonia Singla ([@soniasingla](https://github.com/soniasingla) / Slack: `@SONIA SINGLA`), Hossein Salahi ([@encodeflush](https://github.com/encodeflush) / Slack: `@hsalahi`), Anna Kapuścińska ([@lambdanis](https://github.com/lambdanis) / Slack: `@lambdanis`), Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `@ramrodo`) | -| Bug Triage | Menna Elmasry ([@monzelmasry](https://github.com/MonzElmasry) / Slack: `@Menna`) | Christoph Voigt ([@voigt](https://github.com/voigt) / Slack: `@Christoph Voigt`), J. Gavin Ray ([@jgavinray](https://github.com/jgavinray) / Slack: `@jgavinray`), Taylor Chaparro ([@notchairmk](https://github.com/notchairmk) / Slack: `@notchairmk`), Tony Gosselin ([@sfotony](https://github.com/sfotony) / Slack: `@sfotony`)| -| Docs | Victor Palade ([@pi-victor](https://github.com/pi-victor) / Slack: `@pi-victor`) | Aashish Nehete ([@ashnehete](https://github.com/ashnehete) / Slack: @Aashish Nehete), Carlisia Thompson ([@carlisia](https://github.com/carlisia) / Slack: @Carlisia), Chris Negus ([@chrisnegus](https://github.com/chrisnegus) / Slack: @Chris Negus), Ritu Panjwani ([@ritpanjw](https://github.com/ritpanjw) / Slack: @ritpanjw)| -| Release Notes | Pavel Malinov ([@pmmalinov01](https://github.com/pmmalinov01) / Slack: `@Pavel Malinov`) | Cici Huang ([@cici37](https://github.com/cici37) / Slack: `@cici37`), Daman Arora ([@Damans227](https://github.com/Damans227) / Slack: `@Daman Arora`), Sladyn Nunes ([@sladyn98](https://github.com/sladyn98) / Slack: `@Sladyn Nunes`), Simran Thind ([@simcard0000](https://github.com/simcard0000) / Slack: `@Sims`) | -| Communications | Jesse Butler ([@jlbutler](https://github.com/jlbutler) / Slack: `@Jesse Butler`) | Krishna Kilari ([@skrishna-unix](https://github.com/skrishna-unix) / Slack: `@Krishna Kilari`), Kunal Kushwaha ([@kunal-kushwaha](https://github.com/kunal-kushwaha) / Slack: `@Kunal Kushwaha`), Rajula Vineet Reddy ([@rajula96reddy](https://github.com/rajula96reddy) / Slack: `@rajula96reddy`)| -| Emeritus Adviser | Guinevere Saenger ([@guineveresaenger](https://github.com/guineveresaenger) / Slack: `@gsaenger`) | | -| Branch Manager | Adolfo García Veytia ([@puerco](https://github.com/puerco) / Slack: `@puerco`) | Joyce Kung ([@thejoycekung](https://github.com/thejoycekung) / Slack: `@jk`), Verónica López ([@verolop](https://github.com/verolop) / Slack: `@veronica`) | - -Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. When escalating release management issues, please make sure to include all Release Managers, not just the Branch Manager for the specified release cycle. - -The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.22, once the 1.22 release cycle concludes. - -## In Memoriam -- [Peeyush Gupta](https://github.com/cncf/memorials/blob/main/peeyush-gupta.md) (Emeritus Communications Lead) - - [Peeyush Gupta: Family Education Fund](https://milaap.org/fundraisers/support-peeyush-gupta-family-education) +# Kubernetes 1.22 Release Team + +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|----------|----------------------------------|----------------------------------------| +| Lead | Savitha Raghunathan ([@savitharaghunathan](https://github.com/savitharaghunathan) / Slack: `@sraghunathan`) | Anna Jung ([@annajung](https://github.com/annajung) / Slack: `@annajung`),Derrik Campau ([@erismaster](https://github.com/erismaster) / Slack: `@derrik campau`),Divya Mohan ([@divya-mohan0209](https://github.com/divya-mohan0209) / Slack: `@divya`), Kirsten Garrison ( [@kikisdeliveryservice](https://github.com/kikisdeliveryservice) / Slack: `@oikiki`) | +| Enhancements | James Laverack ([@jameslaverack](https://github.com/jameslaverack) / Slack: `@james.laverack`)| Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`), Rey Lejano ([@reylejano](https://github.com/reylejano) / Slack: `@rlejano`), Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`), Supriya Premkumar ([@supriya-premkumar](https://github.com/supriya-premkumar) / Slack: `@supriya premkumar`), Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@Joseph`) | +| CI Signal | Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkorbi`) | Sonia Singla ([@soniasingla](https://github.com/soniasingla) / Slack: `@SONIA SINGLA`), Hossein Salahi ([@encodeflush](https://github.com/encodeflush) / Slack: `@hsalahi`), Anna Kapuścińska ([@lambdanis](https://github.com/lambdanis) / Slack: `@lambdanis`), Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `@ramrodo`) | +| Bug Triage | Menna Elmasry ([@monzelmasry](https://github.com/MonzElmasry) / Slack: `@Menna`) | Christoph Voigt ([@voigt](https://github.com/voigt) / Slack: `@Christoph Voigt`), J. Gavin Ray ([@jgavinray](https://github.com/jgavinray) / Slack: `@jgavinray`), Taylor Chaparro ([@notchairmk](https://github.com/notchairmk) / Slack: `@notchairmk`), Tony Gosselin ([@sfotony](https://github.com/sfotony) / Slack: `@sfotony`)| +| Docs | Victor Palade ([@pi-victor](https://github.com/pi-victor) / Slack: `@pi-victor`) | Aashish Nehete ([@ashnehete](https://github.com/ashnehete) / Slack: @Aashish Nehete), Carlisia Thompson ([@carlisia](https://github.com/carlisia) / Slack: @Carlisia), Chris Negus ([@chrisnegus](https://github.com/chrisnegus) / Slack: @Chris Negus), Ritu Panjwani ([@ritpanjw](https://github.com/ritpanjw) / Slack: @ritpanjw)| +| Release Notes | Pavel Malinov ([@pmmalinov01](https://github.com/pmmalinov01) / Slack: `@Pavel Malinov`) | Cici Huang ([@cici37](https://github.com/cici37) / Slack: `@cici37`), Daman Arora ([@Damans227](https://github.com/Damans227) / Slack: `@Daman Arora`), Sladyn Nunes ([@sladyn98](https://github.com/sladyn98) / Slack: `@Sladyn Nunes`), Simran Thind ([@simcard0000](https://github.com/simcard0000) / Slack: `@Sims`) | +| Communications | Jesse Butler ([@jlbutler](https://github.com/jlbutler) / Slack: `@Jesse Butler`) | Krishna Kilari ([@skrishna-unix](https://github.com/skrishna-unix) / Slack: `@Krishna Kilari`), Kunal Kushwaha ([@kunal-kushwaha](https://github.com/kunal-kushwaha) / Slack: `@Kunal Kushwaha`), Rajula Vineet Reddy ([@rajula96reddy](https://github.com/rajula96reddy) / Slack: `@rajula96reddy`)| +| Emeritus Adviser | Guinevere Saenger ([@guineveresaenger](https://github.com/guineveresaenger) / Slack: `@gsaenger`) | | +| Branch Manager | Adolfo García Veytia ([@puerco](https://github.com/puerco) / Slack: `@puerco`) | Joyce Kung ([@thejoycekung](https://github.com/thejoycekung) / Slack: `@jk`), Verónica López ([@verolop](https://github.com/verolop) / Slack: `@veronica`) | + +Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. When escalating release management issues, please make sure to include all Release Managers, not just the Branch Manager for the specified release cycle. + +The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.22, once the 1.22 release cycle concludes. + +## In Memoriam +- [Peeyush Gupta](https://github.com/cncf/memorials/blob/main/peeyush-gupta.md) (Emeritus Communications Lead) + + [Peeyush Gupta: Family Education Fund](https://milaap.org/fundraisers/support-peeyush-gupta-family-education) diff --git a/releases/release-1.23/README.md b/releases/release-1.23/README.md index 36a728299cf..ff6b0686ba5 100644 --- a/releases/release-1.23/README.md +++ b/releases/release-1.23/README.md @@ -1,121 +1,121 @@ ---- -title: "Kubernetes 1.23 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.23: The Next Frontier - -![Kubernetes 1.23 : The Next Frontier](./kubernetes-1.23-the-next-frontier-500px.png) - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.23/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.23/release-team.md) -* [Meeting Minutes](http://bit.ly/k8s123-releasemtg) (join [release-team@] to receive meeting invites) -* [v1.23 Release Calendar][k8s123-calendar] -* Contact: [#sig-release] on slack, [release-team@] on e-mail -* [Internal Contact Info] (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Sheet](https://bit.ly/k8s123-enhancements) -* [Feature blog Tracking Sheet](http://bit.ly/k8s123-feature-blog) -* [Bug Triage Tracking Sheet](https://bit.ly/123-bug-triage-tracking) -* [CI Signal Project Board](https://github.com/orgs/kubernetes/projects/11) -* [CI Signal Tracking Log](https://docs.google.com/spreadsheets/d/1ns94ZAH4PIvzhpwU1SGPyl9ek_p4-_Be/) -* [Retrospective Document][Retrospective Document] -* [kubernetes/sig-release v1.23 milestone](https://github.com/kubernetes/kubernetes/milestone/56) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## TL;DR - -The 1.23 release cycle is proposed as follows: - -- **Monday, August 23, 2021**: Week 1 - Release cycle begins -- **Thursday, September 2, 2021**: Week 2 - [Production Readiness Soft Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) -- **Thursday, September 9, 2021**: Week 3 - [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **Wednesday, November 3, 2021**: Week 11 - [Release Retrospective][Retrospective Document] part 1 -- **Tuesday, November 16, 2021**: Week 13 - [Code Freeze](../release_phases.md#code-freeze) -- **Tuesday, November 23, 2021**: Week 14 - [Test Freeze](../release_phases.md#test-freeze) -- **Tuesday, November 30, 2021**: Week 15 - Docs must be completed and reviewed -- **Tuesday, December 7, 2021**: Week 16 - Kubernetes v1.23.0 released -- **Wednesday, December 15, 2021**: Week 17 - [Release Retrospective][Retrospective Document] part 2 -- **Thursday, December 16, 2021**: Week 17 - [Release Retrospective][Retrospective Document] part 3 - -## Timeline - -| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | -|---|---|-------|---|---| -| Start of Release Cycle | Lead | Mon August 23, 2021 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Mon August 23, 2021| week 1 | | -| Schedule finalized | Lead | Thu August 26, 2021 | week 1 | | -| Team finalized | Lead | Fri August 27, 2021 | week 1 | | -| Production Readiness Soft Freeze | Enhancements Lead | Thu September 2, 2021 | week 2 | | -| Start Release Notes Draft | Release Notes Lead | Tue September 7, 2021 | week 3 | | -| **Begin [Enhancements Freeze]** (23:59 PDT) | Enhancements Lead | Thu September 9, 2021 | week 3 | [master-blocking], [master-informing] | -| 1.23.0-alpha.2 released | Branch Manager | Tue September 14, 2021 | Week 4 | | -| 1.23.0-alpha.3 released | Branch Manager | Tue September 28, 2021 | Week 6 | | -| KubeCon NA + Co-located events | | October 11-15, 2021 | week 8 | | -| **Begin [Burndown]** (MWF meetings) | Lead | Mon November 1, 2021 | week 11 | [1.23-blocking], [master-blocking], [master-informing] | -| **Call for [Exceptions][Exception]** | Lead | Mon November 1, 2021 | week 11 | | -| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Mon November 1, 2021 | week 11 | | -| **Begin Feature blog freeze** (23:59 PDT) | Comms Lead | Tue November 2, 2021 | week 11 | | -| 1.23.0-alpha.4 released | Branch Manager | Tue November 2, 2021 | Week 11 | | -| Release retrospective part 1 (10:00am PDT) | Community | Wed November 3, 2021 | week 11 | | -| Burndown Meetings daily| Lead | Mon November 15, 2021 | week 13 | | -| **Begin [Code Freeze]** (18:00 PST) | Branch Manager | Tue November 16, 2021 | week 13 | | -| 1.23.0-beta.0 released | Branch Manager | Wed November 17, 2021 | week 13 | | -| Docs deadline - Open placeholder PRs | Docs Lead | Thu November 18, 2021 | week 13 | | -| **[Test Freeze]** (18:00 PST) | Branch Manager | Tue November 23, 2021 | week 14 | | -| Docs deadline - PRs ready for review | Docs Lead | Tue November 23, 2021 | week 14 | | -| 1.23.0-rc.0 released | Branch Manager | Tue November 23, 2021 | week 14 | | -| release-1.23 branch created | Branch Manager | Tue November 23, 2021 | week 14 | | -| release-1.23 jobs created | Branch Manager | Tue November 23, 2021 | week 14 | | -| Start final draft of Release Notes | Release Notes Lead | Tue November 23, 2021 | week 14 | | -| Release blog ready to review (23:59 PST) | Comms / Docs | Tue November 23, 2021 | week 14 | | -| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Tue November 30, 2021 | week 15 | | -| Feature blogs ready to review (23:59 PST)| Enhancement Owner / SIG Leads | Tue November 30, 2021 | week 15 | | -| Release Notes complete - reviewed & merged to `k/sig-release` (23:59 PST) | Release Notes Lead | Thu December 2, 2021 | week 15 | | -| 1.23.0-rc.1 released | Branch Manager | Fri December 3, 2021 | week 15 | | -| **v1.23.0 released** | Branch Manager | Tue December 7, 2021 | week 16 | | -| Release blog published | Comms | Tue December 7, 2021 | week 16 | | -| **[Thaw]** | Branch Manager | Tue December 7, 2021 | week 16 | | -| Release retrospective part 2 (10:00am PST) | Community | Wed December 15, 2021 | week 17 | | -| Release retrospective part 3 (10:00am PST) | Community | Thu December 16, 2021 | week 17 | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[k8s123-calendar]: https://bit.ly/k8s-release-cal -[Internal Contact Info]: https://bit.ly/k8s123-contacts -[Retrospective Document]: https://bit.ly/k8s123-retro - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Thaw]: ../release_phases.md#thaw -[Test Freeze]: ../release_phases.md#test-freeze - -[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.23-blocking]: https://testgrid.k8s.io/sig-release-1.23-blocking#Summary - -[exception requests]: ../EXCEPTIONS.md -[release phases document]: ../release_phases.md +--- +title: "Kubernetes 1.23 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.23: The Next Frontier + +![Kubernetes 1.23 : The Next Frontier](./kubernetes-1.23-the-next-frontier-500px.png) + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.23/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.23/release-team.md) +* [Meeting Minutes](http://bit.ly/k8s123-releasemtg) (join [release-team@] to receive meeting invites) +* [v1.23 Release Calendar][k8s123-calendar] +* Contact: [#sig-release] on slack, [release-team@] on e-mail +* [Internal Contact Info] (accessible only to members of [release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Sheet](https://bit.ly/k8s123-enhancements) +* [Feature blog Tracking Sheet](http://bit.ly/k8s123-feature-blog) +* [Bug Triage Tracking Sheet](https://bit.ly/123-bug-triage-tracking) +* [CI Signal Project Board](https://github.com/orgs/kubernetes/projects/11) +* [CI Signal Tracking Log](https://docs.google.com/spreadsheets/d/1ns94ZAH4PIvzhpwU1SGPyl9ek_p4-_Be/) +* [Retrospective Document][Retrospective Document] +* [kubernetes/sig-release v1.23 milestone](https://github.com/kubernetes/kubernetes/milestone/56) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## TL;DR + +The 1.23 release cycle is proposed as follows: + +- **Monday, August 23, 2021**: Week 1 - Release cycle begins +- **Thursday, September 2, 2021**: Week 2 - [Production Readiness Soft Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) +- **Thursday, September 9, 2021**: Week 3 - [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **Wednesday, November 3, 2021**: Week 11 - [Release Retrospective][Retrospective Document] part 1 +- **Tuesday, November 16, 2021**: Week 13 - [Code Freeze](../release_phases.md#code-freeze) +- **Tuesday, November 23, 2021**: Week 14 - [Test Freeze](../release_phases.md#test-freeze) +- **Tuesday, November 30, 2021**: Week 15 - Docs must be completed and reviewed +- **Tuesday, December 7, 2021**: Week 16 - Kubernetes v1.23.0 released +- **Wednesday, December 15, 2021**: Week 17 - [Release Retrospective][Retrospective Document] part 2 +- **Thursday, December 16, 2021**: Week 17 - [Release Retrospective][Retrospective Document] part 3 + +## Timeline + +| **What** | **Who** | **When** | **WEEK** | **CI SIGNAL** | +|---|---|-------|---|---| +| Start of Release Cycle | Lead | Mon August 23, 2021 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Mon August 23, 2021| week 1 | | +| Schedule finalized | Lead | Thu August 26, 2021 | week 1 | | +| Team finalized | Lead | Fri August 27, 2021 | week 1 | | +| Production Readiness Soft Freeze | Enhancements Lead | Thu September 2, 2021 | week 2 | | +| Start Release Notes Draft | Release Notes Lead | Tue September 7, 2021 | week 3 | | +| **Begin [Enhancements Freeze]** (23:59 PDT) | Enhancements Lead | Thu September 9, 2021 | week 3 | [master-blocking], [master-informing] | +| 1.23.0-alpha.2 released | Branch Manager | Tue September 14, 2021 | Week 4 | | +| 1.23.0-alpha.3 released | Branch Manager | Tue September 28, 2021 | Week 6 | | +| KubeCon NA + Co-located events | | October 11-15, 2021 | week 8 | | +| **Begin [Burndown]** (MWF meetings) | Lead | Mon November 1, 2021 | week 11 | [1.23-blocking], [master-blocking], [master-informing] | +| **Call for [Exceptions][Exception]** | Lead | Mon November 1, 2021 | week 11 | | +| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Mon November 1, 2021 | week 11 | | +| **Begin Feature blog freeze** (23:59 PDT) | Comms Lead | Tue November 2, 2021 | week 11 | | +| 1.23.0-alpha.4 released | Branch Manager | Tue November 2, 2021 | Week 11 | | +| Release retrospective part 1 (10:00am PDT) | Community | Wed November 3, 2021 | week 11 | | +| Burndown Meetings daily| Lead | Mon November 15, 2021 | week 13 | | +| **Begin [Code Freeze]** (18:00 PST) | Branch Manager | Tue November 16, 2021 | week 13 | | +| 1.23.0-beta.0 released | Branch Manager | Wed November 17, 2021 | week 13 | | +| Docs deadline - Open placeholder PRs | Docs Lead | Thu November 18, 2021 | week 13 | | +| **[Test Freeze]** (18:00 PST) | Branch Manager | Tue November 23, 2021 | week 14 | | +| Docs deadline - PRs ready for review | Docs Lead | Tue November 23, 2021 | week 14 | | +| 1.23.0-rc.0 released | Branch Manager | Tue November 23, 2021 | week 14 | | +| release-1.23 branch created | Branch Manager | Tue November 23, 2021 | week 14 | | +| release-1.23 jobs created | Branch Manager | Tue November 23, 2021 | week 14 | | +| Start final draft of Release Notes | Release Notes Lead | Tue November 23, 2021 | week 14 | | +| Release blog ready to review (23:59 PST) | Comms / Docs | Tue November 23, 2021 | week 14 | | +| Docs complete - All PRs reviewed and ready to merge | Docs Lead | Tue November 30, 2021 | week 15 | | +| Feature blogs ready to review (23:59 PST)| Enhancement Owner / SIG Leads | Tue November 30, 2021 | week 15 | | +| Release Notes complete - reviewed & merged to `k/sig-release` (23:59 PST) | Release Notes Lead | Thu December 2, 2021 | week 15 | | +| 1.23.0-rc.1 released | Branch Manager | Fri December 3, 2021 | week 15 | | +| **v1.23.0 released** | Branch Manager | Tue December 7, 2021 | week 16 | | +| Release blog published | Comms | Tue December 7, 2021 | week 16 | | +| **[Thaw]** | Branch Manager | Tue December 7, 2021 | week 16 | | +| Release retrospective part 2 (10:00am PST) | Community | Wed December 15, 2021 | week 17 | | +| Release retrospective part 3 (10:00am PST) | Community | Thu December 16, 2021 | week 17 | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[k8s123-calendar]: https://bit.ly/k8s-release-cal +[Internal Contact Info]: https://bit.ly/k8s123-contacts +[Retrospective Document]: https://bit.ly/k8s123-retro + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Thaw]: ../release_phases.md#thaw +[Test Freeze]: ../release_phases.md#test-freeze + +[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.23-blocking]: https://testgrid.k8s.io/sig-release-1.23-blocking#Summary + +[exception requests]: ../EXCEPTIONS.md +[release phases document]: ../release_phases.md diff --git a/releases/release-1.23/exceptions.yaml b/releases/release-1.23/exceptions.yaml index 66cca5f50b5..76cf88fa845 100644 --- a/releases/release-1.23/exceptions.yaml +++ b/releases/release-1.23/exceptions.yaml @@ -1,108 +1,108 @@ -# Exception requests in 1.23 -# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release -# Release Team Lead: Rey Lejano ([@reylejano](https://github.com/reylejano)) -# Release Team Shadows: James Laverack ([@JamesLaverack](https://github.com/JamesLaverack) -# / Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) -# / Max Körbächer ([@mkorbi](https://github.com/mkorbi) -# / Menna Elmasry ([@MonzElmasry](https://github.com/MonzElmasry) -​ -# Enhancements Freeze Exceptions requested in 1.23 -- name: "Ceph RBD in-tree provisioner to CSI driver migration" - issue: 2923 - date_requested: 2021-09-15 - date_reviewed: 2021-09-15 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/aK9fKEfVeSg/m/16LMDTDpAgAJ" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2963" - status: "approved" -​ -- name: "Portworx File in-tree to CSI driver migration" - issue: 2589 - date_requested: 2021-09-15 - date_reviewed: 2021-09-15 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/0lG_i_9J_DU/m/uiLD9UnpAgAJ" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/2964" - status: "approved" -​ -- name: "AWS EBS in-tree to CSI migration" - issue: 1487 - date_requested: 2021-11-12 - date_reviewed: 2021-11-13 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/W1g-iAPu7p4/m/aF5RJUbnAQAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/106098" - status: "approved" -​ -- name: "Azure Disk in-tree to CSI migration" - issue: 1490 - date_requested: 2021-11-12 - date_reviewed: 2021-11-13 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/W1g-iAPu7p4/m/aF5RJUbnAQAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/104670" - status: "approved" -​ -- name: "AzureFile CSI migration" - issue: 1885 - date_requested: 2021-11-12 - date_reviewed: 2021-11-13 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/W1g-iAPu7p4/m/aF5RJUbnAQAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/105070" - status: "approved" -​ -- name: "GCE PD to CSI migration" - issue: 1488 - date_requested: 2021-11-12 - date_reviewed: 2021-11-13 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/W1g-iAPu7p4/m/aF5RJUbnAQAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/104722" - status: "approved" -​ -- name: "Structured logging" - issue: 1602 - date_requested: 2021-11-18 - date_reviewed: 2021-11-18 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/EK8ks5ucYN4/m/RUj6Lwt5AAAJ" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/3052" - status: "approved" -​ -# Code Freeze Exceptions requested in 1.23 -- name: "Pod Priority Based Node Graceful Shutdown" - issue: 2712 - date_requested: 2021-11-15 - date_reviewed: 2021-11-16 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/lt1R2cm-1Vk/m/eA4ajAzJAgAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/102915" - status: "approved" -​ -- name: "Server Side Unknown Field Validation" - issue: 2885 - date_requested: 2021-11-16 - date_reviewed: 2021-11-16 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/PfOMIWQHAxc/m/242hAUQbAwAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/105916" - status: "approved" -​ -- name: "Add gRPC probe to Pod.Spec.Container.{Liveness,Readiness,Startup}Probe" - issue: 2727 - date_requested: 2021-11-17 - date_reviewed: 2021-11-17 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/1sjsBwMVtKI/m/bGJswqciAAAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/106463" - status: "approved" -​ -- name: "Kubelet CRI graduation" - issue: 2040 - date_requested: 2021-11-17 - date_reviewed: 2021-11-17 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/QPxSTjwzga4/m/pP9Cx-EoAAAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/106501" +# Exception requests in 1.23 +# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release +# Release Team Lead: Rey Lejano ([@reylejano](https://github.com/reylejano)) +# Release Team Shadows: James Laverack ([@JamesLaverack](https://github.com/JamesLaverack) +# / Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) +# / Max Körbächer ([@mkorbi](https://github.com/mkorbi) +# / Menna Elmasry ([@MonzElmasry](https://github.com/MonzElmasry) +​ +# Enhancements Freeze Exceptions requested in 1.23 +- name: "Ceph RBD in-tree provisioner to CSI driver migration" + issue: 2923 + date_requested: 2021-09-15 + date_reviewed: 2021-09-15 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/aK9fKEfVeSg/m/16LMDTDpAgAJ" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2963" + status: "approved" +​ +- name: "Portworx File in-tree to CSI driver migration" + issue: 2589 + date_requested: 2021-09-15 + date_reviewed: 2021-09-15 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/0lG_i_9J_DU/m/uiLD9UnpAgAJ" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/2964" + status: "approved" +​ +- name: "AWS EBS in-tree to CSI migration" + issue: 1487 + date_requested: 2021-11-12 + date_reviewed: 2021-11-13 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/W1g-iAPu7p4/m/aF5RJUbnAQAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/106098" + status: "approved" +​ +- name: "Azure Disk in-tree to CSI migration" + issue: 1490 + date_requested: 2021-11-12 + date_reviewed: 2021-11-13 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/W1g-iAPu7p4/m/aF5RJUbnAQAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/104670" + status: "approved" +​ +- name: "AzureFile CSI migration" + issue: 1885 + date_requested: 2021-11-12 + date_reviewed: 2021-11-13 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/W1g-iAPu7p4/m/aF5RJUbnAQAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/105070" + status: "approved" +​ +- name: "GCE PD to CSI migration" + issue: 1488 + date_requested: 2021-11-12 + date_reviewed: 2021-11-13 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/W1g-iAPu7p4/m/aF5RJUbnAQAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/104722" + status: "approved" +​ +- name: "Structured logging" + issue: 1602 + date_requested: 2021-11-18 + date_reviewed: 2021-11-18 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/EK8ks5ucYN4/m/RUj6Lwt5AAAJ" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/3052" + status: "approved" +​ +# Code Freeze Exceptions requested in 1.23 +- name: "Pod Priority Based Node Graceful Shutdown" + issue: 2712 + date_requested: 2021-11-15 + date_reviewed: 2021-11-16 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/lt1R2cm-1Vk/m/eA4ajAzJAgAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/102915" + status: "approved" +​ +- name: "Server Side Unknown Field Validation" + issue: 2885 + date_requested: 2021-11-16 + date_reviewed: 2021-11-16 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/PfOMIWQHAxc/m/242hAUQbAwAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/105916" + status: "approved" +​ +- name: "Add gRPC probe to Pod.Spec.Container.{Liveness,Readiness,Startup}Probe" + issue: 2727 + date_requested: 2021-11-17 + date_reviewed: 2021-11-17 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/1sjsBwMVtKI/m/bGJswqciAAAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/106463" + status: "approved" +​ +- name: "Kubelet CRI graduation" + issue: 2040 + date_requested: 2021-11-17 + date_reviewed: 2021-11-17 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/QPxSTjwzga4/m/pP9Cx-EoAAAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/106501" status: "approved" \ No newline at end of file diff --git a/releases/release-1.23/release-notes/maps/pr-100125-map.yaml b/releases/release-1.23/release-notes/maps/pr-100125-map.yaml index 388fb37cbef..c50810c4561 100644 --- a/releases/release-1.23/release-notes/maps/pr-100125-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-100125-map.yaml @@ -1,5 +1,5 @@ -pr: 100125 -releasenote: - text: 'kube-apiserver: events created via the `events.k8s.io` API group for cluster-scoped - objects are now permitted in the default namespace as well for compatibility with - events clients and the `v1` API' +pr: 100125 +releasenote: + text: 'kube-apiserver: events created via the `events.k8s.io` API group for cluster-scoped + objects are now permitted in the default namespace as well for compatibility with + events clients and the `v1` API' diff --git a/releases/release-1.23/release-notes/maps/pr-100482-map.yaml b/releases/release-1.23/release-notes/maps/pr-100482-map.yaml index 4528baba555..ff278ded8b8 100644 --- a/releases/release-1.23/release-notes/maps/pr-100482-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-100482-map.yaml @@ -1,4 +1,4 @@ -pr: 100482 -releasenote: - text: Handle Generic Ephemeral Volumes properly in the node limits - scheduler filter and the kubelet `hostPath` check. +pr: 100482 +releasenote: + text: Handle Generic Ephemeral Volumes properly in the node limits + scheduler filter and the kubelet `hostPath` check. diff --git a/releases/release-1.23/release-notes/maps/pr-100720-map.yaml b/releases/release-1.23/release-notes/maps/pr-100720-map.yaml index ad301aa8261..9cb32249ed2 100644 --- a/releases/release-1.23/release-notes/maps/pr-100720-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-100720-map.yaml @@ -1,4 +1,4 @@ -pr: 100720 -releasenote: - text: 'Metrics changes: Fix exposed buckets of `scheduler_volume_scheduling_duration_seconds_bucket` - metric.' +pr: 100720 +releasenote: + text: 'Metrics changes: Fix exposed buckets of `scheduler_volume_scheduling_duration_seconds_bucket` + metric.' diff --git a/releases/release-1.23/release-notes/maps/pr-101081-map.yaml b/releases/release-1.23/release-notes/maps/pr-101081-map.yaml index 6244ab10d18..ea3307f16d8 100644 --- a/releases/release-1.23/release-notes/maps/pr-101081-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-101081-map.yaml @@ -1,3 +1,3 @@ -pr: 101081 -releasenote: - text: Add Kubernetes Events to the `Kubelet Graceful Shutdown` feature. +pr: 101081 +releasenote: + text: Add Kubernetes Events to the `Kubelet Graceful Shutdown` feature. diff --git a/releases/release-1.23/release-notes/maps/pr-101257-map.yaml b/releases/release-1.23/release-notes/maps/pr-101257-map.yaml index 55eb227d4b5..aab640fbb6f 100644 --- a/releases/release-1.23/release-notes/maps/pr-101257-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-101257-map.yaml @@ -1,6 +1,6 @@ -pr: 101257 -releasenote: - text: Introduce a new server run option 'shutdown-send-retry-after'. If true the - HTTP Server will continue listening until all non longrunning request(s) in flight - have been drained, during this window all incoming requests will be rejected with - a status code `429` and a 'Retry-After' response header. +pr: 101257 +releasenote: + text: Introduce a new server run option 'shutdown-send-retry-after'. If true the + HTTP Server will continue listening until all non longrunning request(s) in flight + have been drained, during this window all incoming requests will be rejected with + a status code `429` and a 'Retry-After' response header. diff --git a/releases/release-1.23/release-notes/maps/pr-101646-map.yaml b/releases/release-1.23/release-notes/maps/pr-101646-map.yaml index 5c04b2fad26..b2c3532b9ed 100644 --- a/releases/release-1.23/release-notes/maps/pr-101646-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-101646-map.yaml @@ -1,3 +1,3 @@ -pr: 101646 -releasenote: - text: Adding support for multiple `--from-env-file` flags. +pr: 101646 +releasenote: + text: Adding support for multiple `--from-env-file` flags. diff --git a/releases/release-1.23/release-notes/maps/pr-101789-map.yaml b/releases/release-1.23/release-notes/maps/pr-101789-map.yaml index 4db78781dcb..4b1335436df 100644 --- a/releases/release-1.23/release-notes/maps/pr-101789-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-101789-map.yaml @@ -1,3 +1,3 @@ -pr: 101789 -releasenote: - text: The `CSIDriver.Spec.StorageCapacity` can now be modified. +pr: 101789 +releasenote: + text: The `CSIDriver.Spec.StorageCapacity` can now be modified. diff --git a/releases/release-1.23/release-notes/maps/pr-101928-map.yaml b/releases/release-1.23/release-notes/maps/pr-101928-map.yaml index 52aa3bed4df..84e617658a9 100644 --- a/releases/release-1.23/release-notes/maps/pr-101928-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-101928-map.yaml @@ -1,5 +1,5 @@ -pr: 101928 -releasenote: - text: |- - Added a `Processing` condition for the `workqueue` API. - Changed `Shutdown` for the `workqueue` API to wait until the work queue finishes processing all in-flight items. +pr: 101928 +releasenote: + text: |- + Added a `Processing` condition for the `workqueue` API. + Changed `Shutdown` for the `workqueue` API to wait until the work queue finishes processing all in-flight items. diff --git a/releases/release-1.23/release-notes/maps/pr-102015-map.yaml b/releases/release-1.23/release-notes/maps/pr-102015-map.yaml index 43a8fde6397..cdcb3fe9f0a 100644 --- a/releases/release-1.23/release-notes/maps/pr-102015-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-102015-map.yaml @@ -1,4 +1,4 @@ -pr: 102015 -releasenote: - text: Support allocating whole NUMA nodes in the CPUManager when there is not a - 1:1 mapping between socket and NUMA node +pr: 102015 +releasenote: + text: Support allocating whole NUMA nodes in the CPUManager when there is not a + 1:1 mapping between socket and NUMA node diff --git a/releases/release-1.23/release-notes/maps/pr-102242-map.yaml b/releases/release-1.23/release-notes/maps/pr-102242-map.yaml index 8d858aec7d3..367f5b7f895 100644 --- a/releases/release-1.23/release-notes/maps/pr-102242-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-102242-map.yaml @@ -1,4 +1,4 @@ -pr: 102242 -releasenote: - text: Remove 'master' as a valid EgressSelection type in the EgressSelectorConfiguration - API. +pr: 102242 +releasenote: + text: Remove 'master' as a valid EgressSelection type in the EgressSelectorConfiguration + API. diff --git a/releases/release-1.23/release-notes/maps/pr-102507-map.yaml b/releases/release-1.23/release-notes/maps/pr-102507-map.yaml index 09b18595a45..cc3a0b440e4 100644 --- a/releases/release-1.23/release-notes/maps/pr-102507-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-102507-map.yaml @@ -1,6 +1,6 @@ -pr: 102507 -releasenote: - text: |- - Introduce a feature gate `DisableKubeletCloudCredentialProviders` which allows disabling the in-tree kubelet credential providers. - - The feature gate `DisableKubeletCloudCredentialProviders` is currently in Alpha, which means is currently disabled by default. Once this feature gate moves to beta, in-tree credential providers will be disabled by default, and users will need to migrate to use external credential providers. +pr: 102507 +releasenote: + text: |- + Introduce a feature gate `DisableKubeletCloudCredentialProviders` which allows disabling the in-tree kubelet credential providers. + + The feature gate `DisableKubeletCloudCredentialProviders` is currently in Alpha, which means is currently disabled by default. Once this feature gate moves to beta, in-tree credential providers will be disabled by default, and users will need to migrate to use external credential providers. diff --git a/releases/release-1.23/release-notes/maps/pr-102886-map.yaml b/releases/release-1.23/release-notes/maps/pr-102886-map.yaml index 5219846fd50..31020f0022a 100644 --- a/releases/release-1.23/release-notes/maps/pr-102886-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-102886-map.yaml @@ -1,3 +1,3 @@ -pr: 102886 -releasenote: - text: Allow node expansion of local volumes. +pr: 102886 +releasenote: + text: Allow node expansion of local volumes. diff --git a/releases/release-1.23/release-notes/maps/pr-102915-map.yaml b/releases/release-1.23/release-notes/maps/pr-102915-map.yaml index 2ba668af0db..5c35c187f83 100644 --- a/releases/release-1.23/release-notes/maps/pr-102915-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-102915-map.yaml @@ -1,3 +1,3 @@ -pr: 102915 -releasenote: - text: Support pod priority based node graceful shutdown. +pr: 102915 +releasenote: + text: Support pod priority based node graceful shutdown. diff --git a/releases/release-1.23/release-notes/maps/pr-102945-map.yaml b/releases/release-1.23/release-notes/maps/pr-102945-map.yaml index c45bcadd0e8..68218108744 100644 --- a/releases/release-1.23/release-notes/maps/pr-102945-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-102945-map.yaml @@ -1,3 +1,3 @@ -pr: 102945 -releasenote: - text: 'client-go: pass `DeleteOptions` down to the fake client `Reactor`' +pr: 102945 +releasenote: + text: 'client-go: pass `DeleteOptions` down to the fake client `Reactor`' diff --git a/releases/release-1.23/release-notes/maps/pr-102981-map.yaml b/releases/release-1.23/release-notes/maps/pr-102981-map.yaml index b8cbe8b0c9b..4e85a23a226 100644 --- a/releases/release-1.23/release-notes/maps/pr-102981-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-102981-map.yaml @@ -1,4 +1,4 @@ -pr: 102981 -releasenote: - text: The `kube-controller-manager` supports `--concurrent-ephemeralvolume-syncs` - flag to set the number of ephemeral volume controller workers. +pr: 102981 +releasenote: + text: The `kube-controller-manager` supports `--concurrent-ephemeralvolume-syncs` + flag to set the number of ephemeral volume controller workers. diff --git a/releases/release-1.23/release-notes/maps/pr-103027-map.yaml b/releases/release-1.23/release-notes/maps/pr-103027-map.yaml index 65d2ed7c27c..7bcc0f5654e 100644 --- a/releases/release-1.23/release-notes/maps/pr-103027-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103027-map.yaml @@ -1,5 +1,5 @@ -pr: 103027 -releasenote: - text: 'kubeadm: add support for dry running `kubeadm join`. The new flag `kubeadm - join --dry-run` is similar to the existing flag for `kubeadm init/upgrade` and - allows you to see what changes would be applied.' +pr: 103027 +releasenote: + text: 'kubeadm: add support for dry running `kubeadm join`. The new flag `kubeadm + join --dry-run` is similar to the existing flag for `kubeadm init/upgrade` and + allows you to see what changes would be applied.' diff --git a/releases/release-1.23/release-notes/maps/pr-103095-map.yaml b/releases/release-1.23/release-notes/maps/pr-103095-map.yaml index 64fd7cac5ca..5688655a913 100644 --- a/releases/release-1.23/release-notes/maps/pr-103095-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103095-map.yaml @@ -1,4 +1,4 @@ -pr: 103095 -releasenote: - text: Added support for `PodAndContainerStatsFromCRI` feature gate, which allows - a user to specify their pod stats must also come from the CRI, not `cAdvisor`. +pr: 103095 +releasenote: + text: Added support for `PodAndContainerStatsFromCRI` feature gate, which allows + a user to specify their pod stats must also come from the CRI, not `cAdvisor`. diff --git a/releases/release-1.23/release-notes/maps/pr-103137-map.yaml b/releases/release-1.23/release-notes/maps/pr-103137-map.yaml index 67b5068c0d4..21635b4a682 100644 --- a/releases/release-1.23/release-notes/maps/pr-103137-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103137-map.yaml @@ -1,4 +1,4 @@ -pr: 103137 -releasenote: - text: Graceful node shutdown, allow the actual inhibit delay to be greater than - the expected inhibit delay. +pr: 103137 +releasenote: + text: Graceful node shutdown, allow the actual inhibit delay to be greater than + the expected inhibit delay. diff --git a/releases/release-1.23/release-notes/maps/pr-103162-map.yaml b/releases/release-1.23/release-notes/maps/pr-103162-map.yaml index 1de8a98cc4a..ca8270a2c0b 100644 --- a/releases/release-1.23/release-notes/maps/pr-103162-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103162-map.yaml @@ -1,7 +1,7 @@ -pr: 103162 -releasenote: - text: 'Introduces a new metric: `admission_webhook_request_total` with the following - labels: name (string) - the webhook name, type (string) - the admission type, - operation (string) - the requested verb, code (int) - the HTTP status code, rejected - (bool) - whether the request was rejected, namespace (string) - the namespace - of the requested resource.' +pr: 103162 +releasenote: + text: 'Introduces a new metric: `admission_webhook_request_total` with the following + labels: name (string) - the webhook name, type (string) - the admission type, + operation (string) - the requested verb, code (int) - the HTTP status code, rejected + (bool) - whether the request was rejected, namespace (string) - the namespace + of the requested resource.' diff --git a/releases/release-1.23/release-notes/maps/pr-103172-map.yaml b/releases/release-1.23/release-notes/maps/pr-103172-map.yaml index 76ae5c57e4a..5ff12d0c646 100644 --- a/releases/release-1.23/release-notes/maps/pr-103172-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103172-map.yaml @@ -1,5 +1,5 @@ -pr: 103172 -releasenote: - text: |- - The deprecated `--experimental-bootstrap-kubeconfig` flag has been removed. - This can be set via `--bootstrap-kubeconfig`. +pr: 103172 +releasenote: + text: |- + The deprecated `--experimental-bootstrap-kubeconfig` flag has been removed. + This can be set via `--bootstrap-kubeconfig`. diff --git a/releases/release-1.23/release-notes/maps/pr-103174-map.yaml b/releases/release-1.23/release-notes/maps/pr-103174-map.yaml index 6bf5d767290..c697c8be0a6 100644 --- a/releases/release-1.23/release-notes/maps/pr-103174-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103174-map.yaml @@ -1,5 +1,5 @@ -pr: 103174 -releasenote: - text: Changes behaviour of kube-proxy start; does not attempt to set specific `sysctl` - values (which does not work in recent Kernel versions anymore in non-init namespaces), - when the current sysctl values are already set higher. +pr: 103174 +releasenote: + text: Changes behaviour of kube-proxy start; does not attempt to set specific `sysctl` + values (which does not work in recent Kernel versions anymore in non-init namespaces), + when the current sysctl values are already set higher. diff --git a/releases/release-1.23/release-notes/maps/pr-103178-map.yaml b/releases/release-1.23/release-notes/maps/pr-103178-map.yaml index 23a4e4d4490..61960b30599 100644 --- a/releases/release-1.23/release-notes/maps/pr-103178-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103178-map.yaml @@ -1,3 +1,3 @@ -pr: 103178 -releasenote: - text: Cloud providers can set service account names for cloud controllers. +pr: 103178 +releasenote: + text: Cloud providers can set service account names for cloud controllers. diff --git a/releases/release-1.23/release-notes/maps/pr-103231-map.yaml b/releases/release-1.23/release-notes/maps/pr-103231-map.yaml index e356aa2dee3..725380a9e52 100644 --- a/releases/release-1.23/release-notes/maps/pr-103231-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103231-map.yaml @@ -1,5 +1,5 @@ -pr: 103231 -releasenote: - text: "Fixed an issue which didn't append OS's environment variables with the one - provided in Credential Provider Config file, which may fail execution of external - credential provider binary. \nSee https://github.com/kubernetes/kubernetes/issues/102750." +pr: 103231 +releasenote: + text: "Fixed an issue which didn't append OS's environment variables with the one + provided in Credential Provider Config file, which may fail execution of external + credential provider binary. \nSee https://github.com/kubernetes/kubernetes/issues/102750." diff --git a/releases/release-1.23/release-notes/maps/pr-103439-map.yaml b/releases/release-1.23/release-notes/maps/pr-103439-map.yaml index 68a1666d603..82e748fab85 100644 --- a/releases/release-1.23/release-notes/maps/pr-103439-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103439-map.yaml @@ -1,3 +1,3 @@ -pr: 103439 -releasenote: - text: Fixed azure disk translation issue due to lower case `managed` kind. +pr: 103439 +releasenote: + text: Fixed azure disk translation issue due to lower case `managed` kind. diff --git a/releases/release-1.23/release-notes/maps/pr-103515-map.yaml b/releases/release-1.23/release-notes/maps/pr-103515-map.yaml index 51ab0f92915..052986ca0f9 100644 --- a/releases/release-1.23/release-notes/maps/pr-103515-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103515-map.yaml @@ -1,6 +1,6 @@ -pr: 103515 -releasenote: - text: |- - `kube-scheduler` now logs node and plugin scoring even though --v<10 - - scores of the top 3 plugins in the top 3 nodes are dumped if --v=4,5 - - scores of all plugins in the top 6 nodes are dumped if --v=6,7,8,9 +pr: 103515 +releasenote: + text: |- + `kube-scheduler` now logs node and plugin scoring even though --v<10 + - scores of the top 3 plugins in the top 3 nodes are dumped if --v=4,5 + - scores of all plugins in the top 6 nodes are dumped if --v=6,7,8,9 diff --git a/releases/release-1.23/release-notes/maps/pr-103526-map.yaml b/releases/release-1.23/release-notes/maps/pr-103526-map.yaml index 1f6fa6829c2..815f8e977c5 100644 --- a/releases/release-1.23/release-notes/maps/pr-103526-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103526-map.yaml @@ -1,4 +1,4 @@ -pr: 103526 -releasenote: - text: The `kubectl port-forward service` will now properly exit when the attached - pod dies +pr: 103526 +releasenote: + text: The `kubectl port-forward service` will now properly exit when the attached + pod dies diff --git a/releases/release-1.23/release-notes/maps/pr-103538-map.yaml b/releases/release-1.23/release-notes/maps/pr-103538-map.yaml index 3beff0d4977..c9cfe3d1dd2 100644 --- a/releases/release-1.23/release-notes/maps/pr-103538-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103538-map.yaml @@ -1,4 +1,4 @@ -pr: 103538 -releasenote: - text: The flag `--deployment-controller-sync-period` has been deprecated and will - be removed in v1.24. +pr: 103538 +releasenote: + text: The flag `--deployment-controller-sync-period` has been deprecated and will + be removed in v1.24. diff --git a/releases/release-1.23/release-notes/maps/pr-103564-map.yaml b/releases/release-1.23/release-notes/maps/pr-103564-map.yaml index 663bb8e5016..8ca9a546e43 100644 --- a/releases/release-1.23/release-notes/maps/pr-103564-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103564-map.yaml @@ -1,4 +1,4 @@ -pr: 103564 -releasenote: - text: Expose a `NewUnstructuredExtractor` from apply configurations `meta/v1` package - that enables extracting objects into unstructured apply configurations. +pr: 103564 +releasenote: + text: Expose a `NewUnstructuredExtractor` from apply configurations `meta/v1` package + that enables extracting objects into unstructured apply configurations. diff --git a/releases/release-1.23/release-notes/maps/pr-103654-map.yaml b/releases/release-1.23/release-notes/maps/pr-103654-map.yaml index 2efcf323d5b..2ee98d539f1 100644 --- a/releases/release-1.23/release-notes/maps/pr-103654-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103654-map.yaml @@ -1,3 +1,3 @@ -pr: 103654 -releasenote: - text: The `constants/variables` from k8s.io for STABLE metrics is now supported. +pr: 103654 +releasenote: + text: The `constants/variables` from k8s.io for STABLE metrics is now supported. diff --git a/releases/release-1.23/release-notes/maps/pr-103685-map.yaml b/releases/release-1.23/release-notes/maps/pr-103685-map.yaml index 0038ac7c40d..faaa06513d2 100644 --- a/releases/release-1.23/release-notes/maps/pr-103685-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103685-map.yaml @@ -1,4 +1,4 @@ -pr: 103685 -releasenote: - text: The `ServiceAccountIssuerDiscovery` feature gate is removed. It reached GA - in Kubernetes 1.21. +pr: 103685 +releasenote: + text: The `ServiceAccountIssuerDiscovery` feature gate is removed. It reached GA + in Kubernetes 1.21. diff --git a/releases/release-1.23/release-notes/maps/pr-103692-map.yaml b/releases/release-1.23/release-notes/maps/pr-103692-map.yaml index 8e6fb30bae7..987212490a8 100644 --- a/releases/release-1.23/release-notes/maps/pr-103692-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103692-map.yaml @@ -1,3 +1,3 @@ -pr: 103692 -releasenote: - text: Kubernetes is now built using go 1.17. +pr: 103692 +releasenote: + text: Kubernetes is now built using go 1.17. diff --git a/releases/release-1.23/release-notes/maps/pr-103724-map.yaml b/releases/release-1.23/release-notes/maps/pr-103724-map.yaml index b06d53cf74b..75484721128 100644 --- a/releases/release-1.23/release-notes/maps/pr-103724-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103724-map.yaml @@ -1,4 +1,4 @@ -pr: 103724 -releasenote: - text: The image `gcr.io/kubernetes-e2e-test-images` will no longer be used in E2E - / CI testing, `k8s.gcr.io/e2e-test-images` will be used instead. +pr: 103724 +releasenote: + text: The image `gcr.io/kubernetes-e2e-test-images` will no longer be used in E2E + / CI testing, `k8s.gcr.io/e2e-test-images` will be used instead. diff --git a/releases/release-1.23/release-notes/maps/pr-103751-map.yaml b/releases/release-1.23/release-notes/maps/pr-103751-map.yaml index d18977ad02a..21f4e1f1d3d 100644 --- a/releases/release-1.23/release-notes/maps/pr-103751-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103751-map.yaml @@ -1,4 +1,4 @@ -pr: 103751 -releasenote: - text: Scheduler resource metrics over fractional binary quantities (2.5Gi, 1.1Ki) - were incorrectly reported as very small values. +pr: 103751 +releasenote: + text: Scheduler resource metrics over fractional binary quantities (2.5Gi, 1.1Ki) + were incorrectly reported as very small values. diff --git a/releases/release-1.23/release-notes/maps/pr-103758-map.yaml b/releases/release-1.23/release-notes/maps/pr-103758-map.yaml index 5433eeb3215..5c58296948d 100644 --- a/releases/release-1.23/release-notes/maps/pr-103758-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103758-map.yaml @@ -1,3 +1,3 @@ -pr: 103758 -releasenote: - text: Added PowerShell completion generation by running `kubectl completion powershell`. +pr: 103758 +releasenote: + text: Added PowerShell completion generation by running `kubectl completion powershell`. diff --git a/releases/release-1.23/release-notes/maps/pr-103793-map.yaml b/releases/release-1.23/release-notes/maps/pr-103793-map.yaml index 37dc56042ef..634d0e09f32 100644 --- a/releases/release-1.23/release-notes/maps/pr-103793-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103793-map.yaml @@ -1,4 +1,4 @@ -pr: 103793 -releasenote: - text: Deprecate `apiserver_longrunning_gauge` and `apiserver_register_watchers` - in 1.23.0. +pr: 103793 +releasenote: + text: Deprecate `apiserver_longrunning_gauge` and `apiserver_register_watchers` + in 1.23.0. diff --git a/releases/release-1.23/release-notes/maps/pr-103794-map.yaml b/releases/release-1.23/release-notes/maps/pr-103794-map.yaml index af005f97fa1..123ff62a09d 100644 --- a/releases/release-1.23/release-notes/maps/pr-103794-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103794-map.yaml @@ -1,3 +1,3 @@ -pr: 103794 -releasenote: - text: Provide IPv6 support for internal load balancer. +pr: 103794 +releasenote: + text: Provide IPv6 support for internal load balancer. diff --git a/releases/release-1.23/release-notes/maps/pr-103796-map.yaml b/releases/release-1.23/release-notes/maps/pr-103796-map.yaml index 7deb78cf4e7..61285554e24 100644 --- a/releases/release-1.23/release-notes/maps/pr-103796-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103796-map.yaml @@ -1,4 +1,4 @@ -pr: 103796 -releasenote: - text: The `AllowInsecureBackendProxy` feature gate is removed. It reached GA in - Kubernetes 1.21. +pr: 103796 +releasenote: + text: The `AllowInsecureBackendProxy` feature gate is removed. It reached GA in + Kubernetes 1.21. diff --git a/releases/release-1.23/release-notes/maps/pr-103799-map.yaml b/releases/release-1.23/release-notes/maps/pr-103799-map.yaml index a9f2dd53cda..6b7f82ed8e7 100644 --- a/releases/release-1.23/release-notes/maps/pr-103799-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103799-map.yaml @@ -1,4 +1,4 @@ -pr: 103799 -releasenote: - text: Added `apiserver_longrunning_requests` metric to replace the soon to be deprecated - `apiserver_longrunning_gauge` metric. +pr: 103799 +releasenote: + text: Added `apiserver_longrunning_requests` metric to replace the soon to be deprecated + `apiserver_longrunning_gauge` metric. diff --git a/releases/release-1.23/release-notes/maps/pr-103801-map.yaml b/releases/release-1.23/release-notes/maps/pr-103801-map.yaml index ba07babf0c0..11d5b352311 100644 --- a/releases/release-1.23/release-notes/maps/pr-103801-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103801-map.yaml @@ -1,10 +1,10 @@ -pr: 103801 -releasenote: - text: 'kubeadm: external etcd endpoints passed in the `ClusterConfiguration` that - have Unicode characters are no longer IDNA encoded (converted to Punycode). They - are now just URL encoded as per Go''s implementation of RFC-3986, have duplicate - "/" removed from the URL paths, and passed like that directly to the `kube-apiserver` - `--etcd-servers` flag. If you have etcd endpoints that have Unicode characters, - it is advisable to encode them in advance with tooling that is fully IDNA compliant. - If you don''t do that, the Go standard library (used in k8s and etcd) would do - it for you when making requests to the endpoints.' +pr: 103801 +releasenote: + text: 'kubeadm: external etcd endpoints passed in the `ClusterConfiguration` that + have Unicode characters are no longer IDNA encoded (converted to Punycode). They + are now just URL encoded as per Go''s implementation of RFC-3986, have duplicate + "/" removed from the URL paths, and passed like that directly to the `kube-apiserver` + `--etcd-servers` flag. If you have etcd endpoints that have Unicode characters, + it is advisable to encode them in advance with tooling that is fully IDNA compliant. + If you don''t do that, the Go standard library (used in k8s and etcd) would do + it for you when making requests to the endpoints.' diff --git a/releases/release-1.23/release-notes/maps/pr-103813-map.yaml b/releases/release-1.23/release-notes/maps/pr-103813-map.yaml index 21835647878..6a902b12332 100644 --- a/releases/release-1.23/release-notes/maps/pr-103813-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103813-map.yaml @@ -1,5 +1,5 @@ -pr: 103813 -releasenote: - text: 'kubeadm: update references to legacy artifacts locations, the `ci-cross` - prefix has been removed from the version match as it does not exist in the new - `gs://k8s-release-dev` bucket.' +pr: 103813 +releasenote: + text: 'kubeadm: update references to legacy artifacts locations, the `ci-cross` + prefix has been removed from the version match as it does not exist in the new + `gs://k8s-release-dev` bucket.' diff --git a/releases/release-1.23/release-notes/maps/pr-103823-map.yaml b/releases/release-1.23/release-notes/maps/pr-103823-map.yaml index f131611f090..3ead3e44759 100644 --- a/releases/release-1.23/release-notes/maps/pr-103823-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103823-map.yaml @@ -1,4 +1,4 @@ -pr: 103823 -releasenote: - text: Fix an issue in cleaning up `CertificateSigningRequest` objects with an unparseable - `status.certificate` field. +pr: 103823 +releasenote: + text: Fix an issue in cleaning up `CertificateSigningRequest` objects with an unparseable + `status.certificate` field. diff --git a/releases/release-1.23/release-notes/maps/pr-103831-map.yaml b/releases/release-1.23/release-notes/maps/pr-103831-map.yaml index 92b06116f5d..828c9f67001 100644 --- a/releases/release-1.23/release-notes/maps/pr-103831-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103831-map.yaml @@ -1,3 +1,3 @@ -pr: 103831 -releasenote: - text: Disable aufs module for gce clusters. +pr: 103831 +releasenote: + text: Disable aufs module for gce clusters. diff --git a/releases/release-1.23/release-notes/maps/pr-103843-map.yaml b/releases/release-1.23/release-notes/maps/pr-103843-map.yaml index e271760cc84..49a0ba754a5 100644 --- a/releases/release-1.23/release-notes/maps/pr-103843-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103843-map.yaml @@ -1,4 +1,4 @@ -pr: 103843 -releasenote: - text: Update description of `--audit-log-maxbackup` to describe behavior when `value - = 0`. +pr: 103843 +releasenote: + text: Update description of `--audit-log-maxbackup` to describe behavior when `value + = 0`. diff --git a/releases/release-1.23/release-notes/maps/pr-103852-map.yaml b/releases/release-1.23/release-notes/maps/pr-103852-map.yaml index 2f8f3d0acd2..8c6d8aa7aa3 100644 --- a/releases/release-1.23/release-notes/maps/pr-103852-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103852-map.yaml @@ -1,4 +1,4 @@ -pr: 103852 -releasenote: - text: Fixed a bug which kubectl would emit duplicate warning messages for flag names - that contain an underscore and recommend using a nonexistent flag in some cases. +pr: 103852 +releasenote: + text: Fixed a bug which kubectl would emit duplicate warning messages for flag names + that contain an underscore and recommend using a nonexistent flag in some cases. diff --git a/releases/release-1.23/release-notes/maps/pr-103875-map.yaml b/releases/release-1.23/release-notes/maps/pr-103875-map.yaml index e70fb829178..c74a65cb2d6 100644 --- a/releases/release-1.23/release-notes/maps/pr-103875-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103875-map.yaml @@ -1,3 +1,3 @@ -pr: 103875 -releasenote: - text: Fixed a regression setting `--audit-log-path=-` to log to stdout in 1.22 pre-release. +pr: 103875 +releasenote: + text: Fixed a regression setting `--audit-log-path=-` to log to stdout in 1.22 pre-release. diff --git a/releases/release-1.23/release-notes/maps/pr-103894-map.yaml b/releases/release-1.23/release-notes/maps/pr-103894-map.yaml index e7103f337df..48484b7137c 100644 --- a/releases/release-1.23/release-notes/maps/pr-103894-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103894-map.yaml @@ -1,3 +1,3 @@ -pr: 103894 -releasenote: - text: Display Labels when kubectl describe ingress. +pr: 103894 +releasenote: + text: Display Labels when kubectl describe ingress. diff --git a/releases/release-1.23/release-notes/maps/pr-103917-map.yaml b/releases/release-1.23/release-notes/maps/pr-103917-map.yaml index ae242c12409..a551005b542 100644 --- a/releases/release-1.23/release-notes/maps/pr-103917-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103917-map.yaml @@ -1,4 +1,4 @@ -pr: 103917 -releasenote: - text: 'Troubleshooting: informers log handlers that take more than 100 milliseconds - to process an object if the `DeltaFIFO` queue starts to grow beyond 10 elements.' +pr: 103917 +releasenote: + text: 'Troubleshooting: informers log handlers that take more than 100 milliseconds + to process an object if the `DeltaFIFO` queue starts to grow beyond 10 elements.' diff --git a/releases/release-1.23/release-notes/maps/pr-103918-map.yaml b/releases/release-1.23/release-notes/maps/pr-103918-map.yaml index 480620a9a2d..52dbd5865c9 100644 --- a/releases/release-1.23/release-notes/maps/pr-103918-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103918-map.yaml @@ -1,5 +1,5 @@ -pr: 103918 -releasenote: - text: "`client-go` event library allows customizing spam filtering function. \nIt - is now possible to override `SpamKeyFunc`, which is used by event filtering to - detect spam in the events." +pr: 103918 +releasenote: + text: "`client-go` event library allows customizing spam filtering function. \nIt + is now possible to override `SpamKeyFunc`, which is used by event filtering to + detect spam in the events." diff --git a/releases/release-1.23/release-notes/maps/pr-103941-map.yaml b/releases/release-1.23/release-notes/maps/pr-103941-map.yaml index 37d9045dce2..2c0ca4ceb76 100644 --- a/releases/release-1.23/release-notes/maps/pr-103941-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103941-map.yaml @@ -1,3 +1,3 @@ -pr: 103941 -releasenote: - text: Removed deprecated `--seccomp-profile-root`/`seccompProfileRoot` config. +pr: 103941 +releasenote: + text: Removed deprecated `--seccomp-profile-root`/`seccompProfileRoot` config. diff --git a/releases/release-1.23/release-notes/maps/pr-103958-map.yaml b/releases/release-1.23/release-notes/maps/pr-103958-map.yaml index abe76b4e45e..3fb00d9a490 100644 --- a/releases/release-1.23/release-notes/maps/pr-103958-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103958-map.yaml @@ -1,4 +1,4 @@ -pr: 103958 -releasenote: - text: 'kube-apiserver: sets an upper-bound on the lifetime of idle keep-alive connections - and the time to read the headers of incoming requests.' +pr: 103958 +releasenote: + text: 'kube-apiserver: sets an upper-bound on the lifetime of idle keep-alive connections + and the time to read the headers of incoming requests.' diff --git a/releases/release-1.23/release-notes/maps/pr-103997-map.yaml b/releases/release-1.23/release-notes/maps/pr-103997-map.yaml index 7510ca5f571..e97b1fdb451 100644 --- a/releases/release-1.23/release-notes/maps/pr-103997-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-103997-map.yaml @@ -1,3 +1,3 @@ -pr: 103997 -releasenote: - text: 'Fix: ignore non-VMSS error for VMAS nodes in `reconcileBackendPools`.' +pr: 103997 +releasenote: + text: 'Fix: ignore non-VMSS error for VMAS nodes in `reconcileBackendPools`.' diff --git a/releases/release-1.23/release-notes/maps/pr-104009-map.yaml b/releases/release-1.23/release-notes/maps/pr-104009-map.yaml index 01e179e4aed..fcbc3e37753 100644 --- a/releases/release-1.23/release-notes/maps/pr-104009-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104009-map.yaml @@ -1,3 +1,3 @@ -pr: 104009 -releasenote: - text: 'kube-proxy: delete stale conntrack UDP entries for loadbalancer ingress IP.' +pr: 104009 +releasenote: + text: 'kube-proxy: delete stale conntrack UDP entries for loadbalancer ingress IP.' diff --git a/releases/release-1.23/release-notes/maps/pr-104011-map.yaml b/releases/release-1.23/release-notes/maps/pr-104011-map.yaml index 169698a8829..df2e2f54503 100644 --- a/releases/release-1.23/release-notes/maps/pr-104011-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104011-map.yaml @@ -1,4 +1,4 @@ -pr: 104011 -releasenote: - text: Updated json representation for a conflicted taint to `Key=Effect` when a - conflicted taint occurs in kubectl taint. +pr: 104011 +releasenote: + text: Updated json representation for a conflicted taint to `Key=Effect` when a + conflicted taint occurs in kubectl taint. diff --git a/releases/release-1.23/release-notes/maps/pr-104033-map.yaml b/releases/release-1.23/release-notes/maps/pr-104033-map.yaml index b861cccf6e3..ef4e36aec19 100644 --- a/releases/release-1.23/release-notes/maps/pr-104033-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104033-map.yaml @@ -1,4 +1,4 @@ -pr: 104033 -releasenote: - text: Reverts adding namespace label to admission metrics (and histogram exansion) - due to cardinality issues. +pr: 104033 +releasenote: + text: Reverts adding namespace label to admission metrics (and histogram exansion) + due to cardinality issues. diff --git a/releases/release-1.23/release-notes/maps/pr-104045-map.yaml b/releases/release-1.23/release-notes/maps/pr-104045-map.yaml index f15444bb877..eaeb824ced5 100644 --- a/releases/release-1.23/release-notes/maps/pr-104045-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104045-map.yaml @@ -1,3 +1,3 @@ -pr: 104045 -releasenote: - text: StatefulSet `minReadySeconds` is promoted to beta. +pr: 104045 +releasenote: + text: StatefulSet `minReadySeconds` is promoted to beta. diff --git a/releases/release-1.23/release-notes/maps/pr-104065-map.yaml b/releases/release-1.23/release-notes/maps/pr-104065-map.yaml index ccc150a5848..c1d0663c0cb 100644 --- a/releases/release-1.23/release-notes/maps/pr-104065-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104065-map.yaml @@ -1,6 +1,6 @@ -pr: 104065 -releasenote: - text: 'kubeadm: remove the deprecated flag `--experimental-patches` for the `init|join|upgrade` - commands. The flag `--patches` is no longer allowed in a mixture with the flag - `--config`. Please use the kubeadm configuration for setting patches for a node - using `{Init|Join}Configuration.patches`.' +pr: 104065 +releasenote: + text: 'kubeadm: remove the deprecated flag `--experimental-patches` for the `init|join|upgrade` + commands. The flag `--patches` is no longer allowed in a mixture with the flag + `--config`. Please use the kubeadm configuration for setting patches for a node + using `{Init|Join}Configuration.patches`.' diff --git a/releases/release-1.23/release-notes/maps/pr-104080-map.yaml b/releases/release-1.23/release-notes/maps/pr-104080-map.yaml index a3eefcbb2ed..641fc1d9d1d 100644 --- a/releases/release-1.23/release-notes/maps/pr-104080-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104080-map.yaml @@ -1,3 +1,3 @@ -pr: 104080 -releasenote: - text: Surface warning when users don't set `propagationPolicy` for jobs while deleting. +pr: 104080 +releasenote: + text: Surface warning when users don't set `propagationPolicy` for jobs while deleting. diff --git a/releases/release-1.23/release-notes/maps/pr-104102-map.yaml b/releases/release-1.23/release-notes/maps/pr-104102-map.yaml index 852c441dd0a..4956722706f 100644 --- a/releases/release-1.23/release-notes/maps/pr-104102-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104102-map.yaml @@ -1,4 +1,4 @@ -pr: 104102 -releasenote: - text: CA, certificate and key bundles for the `generic-apiserver` based servers - will be reloaded immediately after the files are changed. +pr: 104102 +releasenote: + text: CA, certificate and key bundles for the `generic-apiserver` based servers + will be reloaded immediately after the files are changed. diff --git a/releases/release-1.23/release-notes/maps/pr-104103-map.yaml b/releases/release-1.23/release-notes/maps/pr-104103-map.yaml index c40102b74fd..e2407a9e9ab 100644 --- a/releases/release-1.23/release-notes/maps/pr-104103-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104103-map.yaml @@ -1,6 +1,6 @@ -pr: 104103 -releasenote: - text: Users of `LogFormatRegistry` in component-base must update their code to use - the logr v1.0.0 API. The JSON log output now uses the format from go-logr/zapr - (no `v` field for error messages, additional information for invalid calls) and - has some fixes (correct source code location for warnings about invalid log calls). +pr: 104103 +releasenote: + text: Users of `LogFormatRegistry` in component-base must update their code to use + the logr v1.0.0 API. The JSON log output now uses the format from go-logr/zapr + (no `v` field for error messages, additional information for invalid calls) and + has some fixes (correct source code location for warnings about invalid log calls). diff --git a/releases/release-1.23/release-notes/maps/pr-104116-map.yaml b/releases/release-1.23/release-notes/maps/pr-104116-map.yaml index c11fb47210a..9e909068a9b 100644 --- a/releases/release-1.23/release-notes/maps/pr-104116-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104116-map.yaml @@ -1,3 +1,3 @@ -pr: 104116 -releasenote: - text: Fixed architecture within manifest for non `amd64` etcd images. +pr: 104116 +releasenote: + text: Fixed architecture within manifest for non `amd64` etcd images. diff --git a/releases/release-1.23/release-notes/maps/pr-104119-map.yaml b/releases/release-1.23/release-notes/maps/pr-104119-map.yaml index 50fe76b1fea..d1cd998fcae 100644 --- a/releases/release-1.23/release-notes/maps/pr-104119-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104119-map.yaml @@ -1,8 +1,8 @@ -pr: 104119 -releasenote: - text: |- - The `apiserver` exposes 4 new metrics that allow to track the status of the Service CIDRs allocations: - - current number of available IPs per Service CIDR - - current number of used IPs per Service CIDR - - total number of allocation per Service CIDR - - total number of allocation errors per ServiceCIDR +pr: 104119 +releasenote: + text: |- + The `apiserver` exposes 4 new metrics that allow to track the status of the Service CIDRs allocations: + - current number of available IPs per Service CIDR + - current number of used IPs per Service CIDR + - total number of allocation per Service CIDR + - total number of allocation errors per ServiceCIDR diff --git a/releases/release-1.23/release-notes/maps/pr-104134-map.yaml b/releases/release-1.23/release-notes/maps/pr-104134-map.yaml index 4fb465d0b05..ee85a192cac 100644 --- a/releases/release-1.23/release-notes/maps/pr-104134-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104134-map.yaml @@ -1,7 +1,7 @@ -pr: 104134 -releasenote: - text: 'kubeadm: When adding an etcd peer to an existing cluster, if an error is - returned indicating the peer has already been added, this is accepted and a `ListMembers` - call is used instead to return the existing cluster. This helps to diminish the - exponential backoff when the first AddMember call times out, while still retaining - a similar performance when the peer has already been added from a previous call.' +pr: 104134 +releasenote: + text: 'kubeadm: When adding an etcd peer to an existing cluster, if an error is + returned indicating the peer has already been added, this is accepted and a `ListMembers` + call is used instead to return the existing cluster. This helps to diminish the + exponential backoff when the first AddMember call times out, while still retaining + a similar performance when the peer has already been added from a previous call.' diff --git a/releases/release-1.23/release-notes/maps/pr-104142-map.yaml b/releases/release-1.23/release-notes/maps/pr-104142-map.yaml index 37255132e36..9e84511d501 100644 --- a/releases/release-1.23/release-notes/maps/pr-104142-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104142-map.yaml @@ -1,7 +1,7 @@ -pr: 104142 -releasenote: - text: |- - Updates the following images to pick up CVE fixes: - - `debian` to v1.9.0 - - `debian-iptables` to v1.6.6 - - `setcap` to v2.0.4 +pr: 104142 +releasenote: + text: |- + Updates the following images to pick up CVE fixes: + - `debian` to v1.9.0 + - `debian-iptables` to v1.6.6 + - `setcap` to v2.0.4 diff --git a/releases/release-1.23/release-notes/maps/pr-104157-map.yaml b/releases/release-1.23/release-notes/maps/pr-104157-map.yaml index 646367a1e4e..1799b7dc876 100644 --- a/releases/release-1.23/release-notes/maps/pr-104157-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104157-map.yaml @@ -1,5 +1,5 @@ -pr: 104157 -releasenote: - text: 'kubeadm: remove the `--port` flag from the manifest for the `kube-controller-manager` - since the flag has been a NO-OP since 1.22 and insecure serving was removed for - the component.' +pr: 104157 +releasenote: + text: 'kubeadm: remove the `--port` flag from the manifest for the `kube-controller-manager` + since the flag has been a NO-OP since 1.22 and insecure serving was removed for + the component.' diff --git a/releases/release-1.23/release-notes/maps/pr-104160-map.yaml b/releases/release-1.23/release-notes/maps/pr-104160-map.yaml index feea3dc93e0..8f14bbab60a 100644 --- a/releases/release-1.23/release-notes/maps/pr-104160-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104160-map.yaml @@ -1,4 +1,4 @@ -pr: 104160 -releasenote: - text: The maximum length of the `CSINode` id field has increased to 256 bytes to - match the CSI spec. +pr: 104160 +releasenote: + text: The maximum length of the `CSINode` id field has increased to 256 bytes to + match the CSI spec. diff --git a/releases/release-1.23/release-notes/maps/pr-104161-map.yaml b/releases/release-1.23/release-notes/maps/pr-104161-map.yaml index 95e8f752505..1dc8fe06512 100644 --- a/releases/release-1.23/release-notes/maps/pr-104161-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104161-map.yaml @@ -1,3 +1,3 @@ -pr: 104161 -releasenote: - text: Fix `kube-apiserver` metric reporting for the deprecated watch path of `/api/<version>/watch/...`. +pr: 104161 +releasenote: + text: Fix `kube-apiserver` metric reporting for the deprecated watch path of `/api/<version>/watch/...`. diff --git a/releases/release-1.23/release-notes/maps/pr-104163-map.yaml b/releases/release-1.23/release-notes/maps/pr-104163-map.yaml index 535ff2147b8..636bfd2b40f 100644 --- a/releases/release-1.23/release-notes/maps/pr-104163-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104163-map.yaml @@ -1,5 +1,5 @@ -pr: 104163 -releasenote: - text: The `SupportPodPidsLimit` and `SupportNodePidsLimit` feature gates that are - GA since v1.20 are unconditionally enabled, and can no longer be specified via - the `--feature-gates` argument. +pr: 104163 +releasenote: + text: The `SupportPodPidsLimit` and `SupportNodePidsLimit` feature gates that are + GA since v1.20 are unconditionally enabled, and can no longer be specified via + the `--feature-gates` argument. diff --git a/releases/release-1.23/release-notes/maps/pr-104167-map.yaml b/releases/release-1.23/release-notes/maps/pr-104167-map.yaml index 5906f1a2d53..1525d4573c4 100644 --- a/releases/release-1.23/release-notes/maps/pr-104167-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104167-map.yaml @@ -1,5 +1,5 @@ -pr: 104167 -releasenote: - text: The `BoundServiceAccountTokenVolume` feature gate that is GA since v1.22 is - unconditionally enabled, and can no longer be specified via the `--feature-gates` - argument. +pr: 104167 +releasenote: + text: The `BoundServiceAccountTokenVolume` feature gate that is GA since v1.22 is + unconditionally enabled, and can no longer be specified via the `--feature-gates` + argument. diff --git a/releases/release-1.23/release-notes/maps/pr-104168-map.yaml b/releases/release-1.23/release-notes/maps/pr-104168-map.yaml index e8d8df2d05a..3e00b43e5f6 100644 --- a/releases/release-1.23/release-notes/maps/pr-104168-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104168-map.yaml @@ -1,4 +1,4 @@ -pr: 104168 -releasenote: - text: The `StartupProbe` feature gate that is GA since v1.20 is unconditionally - enabled, and can no longer be specified via the `--feature-gates` argument. +pr: 104168 +releasenote: + text: The `StartupProbe` feature gate that is GA since v1.20 is unconditionally + enabled, and can no longer be specified via the `--feature-gates` argument. diff --git a/releases/release-1.23/release-notes/maps/pr-104182-map.yaml b/releases/release-1.23/release-notes/maps/pr-104182-map.yaml index 911a248ad29..20c3825e83f 100644 --- a/releases/release-1.23/release-notes/maps/pr-104182-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104182-map.yaml @@ -1,4 +1,4 @@ -pr: 104182 -releasenote: - text: 'kube-apiserver: Avoid unnecessary repeated calls to `admission webhooks` - that reject an update or delete request.' +pr: 104182 +releasenote: + text: 'kube-apiserver: Avoid unnecessary repeated calls to `admission webhooks` + that reject an update or delete request.' diff --git a/releases/release-1.23/release-notes/maps/pr-104185-map.yaml b/releases/release-1.23/release-notes/maps/pr-104185-map.yaml index 3fd4ab6d613..345202d7b7b 100644 --- a/releases/release-1.23/release-notes/maps/pr-104185-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104185-map.yaml @@ -1,3 +1,3 @@ -pr: 104185 -releasenote: - text: Allow to build kubernetes with a custom `kube-cross` image. +pr: 104185 +releasenote: + text: Allow to build kubernetes with a custom `kube-cross` image. diff --git a/releases/release-1.23/release-notes/maps/pr-104199-map.yaml b/releases/release-1.23/release-notes/maps/pr-104199-map.yaml index 913d9634667..76ecf1978b8 100644 --- a/releases/release-1.23/release-notes/maps/pr-104199-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104199-map.yaml @@ -1,3 +1,3 @@ -pr: 104199 -releasenote: - text: Kubernetes is now built with Golang 1.16.7. +pr: 104199 +releasenote: + text: Kubernetes is now built with Golang 1.16.7. diff --git a/releases/release-1.23/release-notes/maps/pr-104232-map.yaml b/releases/release-1.23/release-notes/maps/pr-104232-map.yaml index fa399875b3a..00c0ab08541 100644 --- a/releases/release-1.23/release-notes/maps/pr-104232-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104232-map.yaml @@ -1,3 +1,3 @@ -pr: 104232 -releasenote: - text: Adding support for multiple `--from-env-file flags`. +pr: 104232 +releasenote: + text: Adding support for multiple `--from-env-file flags`. diff --git a/releases/release-1.23/release-notes/maps/pr-104248-map.yaml b/releases/release-1.23/release-notes/maps/pr-104248-map.yaml index e3ba8fb0354..3ab100e5303 100644 --- a/releases/release-1.23/release-notes/maps/pr-104248-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104248-map.yaml @@ -1,5 +1,5 @@ -pr: 104248 -releasenote: - text: 'kube-apiserver: The `rbac.authorization.k8s.io/v1alpha1` API version is removed; - use the `rbac.authorization.k8s.io/v1` API, available since v1.8. The `scheduling.k8s.io/v1alpha1` - API version is removed; use the `scheduling.k8s.io/v1` API, available since v1.14.' +pr: 104248 +releasenote: + text: 'kube-apiserver: The `rbac.authorization.k8s.io/v1alpha1` API version is removed; + use the `rbac.authorization.k8s.io/v1` API, available since v1.8. The `scheduling.k8s.io/v1alpha1` + API version is removed; use the `scheduling.k8s.io/v1` API, available since v1.14.' diff --git a/releases/release-1.23/release-notes/maps/pr-104251-map.yaml b/releases/release-1.23/release-notes/maps/pr-104251-map.yaml index cd6e1d1c011..50a1e0bdf70 100644 --- a/releases/release-1.23/release-notes/maps/pr-104251-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104251-map.yaml @@ -1,8 +1,8 @@ -pr: 104251 -releasenote: - text: "Introduce `v1beta3` API for scheduler. This version \n- increases the weight - of user specifiable priorities.\nThe weights of following priority plugins are - increased\n - `TaintTolerations` to 3 - as leveraging node tainting to group - nodes in the cluster is becoming a widely-adopted practice\n - `NodeAffinity` - to 2\n - `InterPodAffinity` to 2\n\n- Won't have `HealthzBindAddress`, `MetricsBindAddress` - fields" +pr: 104251 +releasenote: + text: "Introduce `v1beta3` API for scheduler. This version \n- increases the weight + of user specifiable priorities.\nThe weights of following priority plugins are + increased\n - `TaintTolerations` to 3 - as leveraging node tainting to group + nodes in the cluster is becoming a widely-adopted practice\n - `NodeAffinity` + to 2\n - `InterPodAffinity` to 2\n\n- Won't have `HealthzBindAddress`, `MetricsBindAddress` + fields" diff --git a/releases/release-1.23/release-notes/maps/pr-104253-map.yaml b/releases/release-1.23/release-notes/maps/pr-104253-map.yaml index 296e55b1f11..f077d77ce2b 100644 --- a/releases/release-1.23/release-notes/maps/pr-104253-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104253-map.yaml @@ -1,3 +1,3 @@ -pr: 104253 -releasenote: - text: Pass additional flags to subpath mount to avoid flakes in certain conditions. +pr: 104253 +releasenote: + text: Pass additional flags to subpath mount to avoid flakes in certain conditions. diff --git a/releases/release-1.23/release-notes/maps/pr-104293-map.yaml b/releases/release-1.23/release-notes/maps/pr-104293-map.yaml index 24b21c013b7..83beab67574 100644 --- a/releases/release-1.23/release-notes/maps/pr-104293-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104293-map.yaml @@ -1,3 +1,3 @@ -pr: 104293 -releasenote: - text: 'Updated Cluster Autosaler to version `1.22.0`. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.22.0.' +pr: 104293 +releasenote: + text: 'Updated Cluster Autosaler to version `1.22.0`. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.22.0.' diff --git a/releases/release-1.23/release-notes/maps/pr-104301-map.yaml b/releases/release-1.23/release-notes/maps/pr-104301-map.yaml index a2f4f9797bb..ebf5264b7b3 100644 --- a/releases/release-1.23/release-notes/maps/pr-104301-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104301-map.yaml @@ -1,3 +1,3 @@ -pr: 104301 -releasenote: - text: Update Go used to build migrate script in etcd image to v1.16.7. +pr: 104301 +releasenote: + text: Update Go used to build migrate script in etcd image to v1.16.7. diff --git a/releases/release-1.23/release-notes/maps/pr-104327-map.yaml b/releases/release-1.23/release-notes/maps/pr-104327-map.yaml index 50c2f9467e0..f8486518d5b 100644 --- a/releases/release-1.23/release-notes/maps/pr-104327-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104327-map.yaml @@ -1,4 +1,4 @@ -pr: 104327 -releasenote: - text: 'The `client-go` dynamic client sets the header `Content-Type: application/json` - by default' +pr: 104327 +releasenote: + text: 'The `client-go` dynamic client sets the header `Content-Type: application/json` + by default' diff --git a/releases/release-1.23/release-notes/maps/pr-104368-map.yaml b/releases/release-1.23/release-notes/maps/pr-104368-map.yaml index 40404868606..71cc73d1b21 100644 --- a/releases/release-1.23/release-notes/maps/pr-104368-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104368-map.yaml @@ -1,8 +1,8 @@ -pr: 104368 -releasenote: - text: |- - Since golang 1.17 both net.ParseIP and net.ParseCIDR rejects leading zeros in the dot-decimal notation of IPv4 addresses, - Kubernetes will keep allowing leading zeros on IPv4 address to not break the compatibility. - IMPORTANT: Kubernetes interprets leading zeros on IPv4 addresses as decimal, users must not rely on parser alignment to not being impacted by the associated security advisory: - CVE-2021-29923 golang standard library "net" - Improper Input Validation of octal literals in golang 1.16.2 and below standard library "net" results in indeterminate SSRF & RFI vulnerabilities. - Reference: https://nvd.nist.gov/vuln/detail/CVE-2021-29923 +pr: 104368 +releasenote: + text: |- + Since golang 1.17 both net.ParseIP and net.ParseCIDR rejects leading zeros in the dot-decimal notation of IPv4 addresses, + Kubernetes will keep allowing leading zeros on IPv4 address to not break the compatibility. + IMPORTANT: Kubernetes interprets leading zeros on IPv4 addresses as decimal, users must not rely on parser alignment to not being impacted by the associated security advisory: + CVE-2021-29923 golang standard library "net" - Improper Input Validation of octal literals in golang 1.16.2 and below standard library "net" results in indeterminate SSRF & RFI vulnerabilities. + Reference: https://nvd.nist.gov/vuln/detail/CVE-2021-29923 diff --git a/releases/release-1.23/release-notes/maps/pr-104382-map.yaml b/releases/release-1.23/release-notes/maps/pr-104382-map.yaml index ef0e45f0870..5562ede1efd 100644 --- a/releases/release-1.23/release-notes/maps/pr-104382-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104382-map.yaml @@ -1,3 +1,3 @@ -pr: 104382 -releasenote: - text: Ensure `InstanceShutdownByProviderID` return false for creating Azure VMs. +pr: 104382 +releasenote: + text: Ensure `InstanceShutdownByProviderID` return false for creating Azure VMs. diff --git a/releases/release-1.23/release-notes/maps/pr-104384-map.yaml b/releases/release-1.23/release-notes/maps/pr-104384-map.yaml index 4b0a7c09018..9ddddaae095 100644 --- a/releases/release-1.23/release-notes/maps/pr-104384-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104384-map.yaml @@ -1,3 +1,3 @@ -pr: 104384 -releasenote: - text: 'fix: skip case sensitivity when checking Azure NSG rules.' +pr: 104384 +releasenote: + text: 'fix: skip case sensitivity when checking Azure NSG rules.' diff --git a/releases/release-1.23/release-notes/maps/pr-104389-map.yaml b/releases/release-1.23/release-notes/maps/pr-104389-map.yaml index ab38abd4f11..eab1df59a2c 100644 --- a/releases/release-1.23/release-notes/maps/pr-104389-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104389-map.yaml @@ -1,6 +1,6 @@ -pr: 104389 -releasenote: - text: Support for the seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` - and `container.seccomp.security.alpha.kubernetes.io/[name]` has been deprecated - since 1.19, will be dropped in 1.25. Transition to using the `seccompProfile` - API field. +pr: 104389 +releasenote: + text: Support for the seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` + and `container.seccomp.security.alpha.kubernetes.io/[name]` has been deprecated + since 1.19, will be dropped in 1.25. Transition to using the `seccompProfile` + API field. diff --git a/releases/release-1.23/release-notes/maps/pr-104399-map.yaml b/releases/release-1.23/release-notes/maps/pr-104399-map.yaml index 33e8b4f9c91..6b266a526be 100644 --- a/releases/release-1.23/release-notes/maps/pr-104399-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104399-map.yaml @@ -1,3 +1,3 @@ -pr: 104399 -releasenote: - text: Introduce v1beta2 for Priority and Fairness with no changes in API spec. +pr: 104399 +releasenote: + text: Introduce v1beta2 for Priority and Fairness with no changes in API spec. diff --git a/releases/release-1.23/release-notes/maps/pr-104426-map.yaml b/releases/release-1.23/release-notes/maps/pr-104426-map.yaml index cd97e11fd7e..3679d60533b 100644 --- a/releases/release-1.23/release-notes/maps/pr-104426-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104426-map.yaml @@ -1,3 +1,3 @@ -pr: 104426 -releasenote: - text: The script `kube-up.sh` installs `csi-proxy v1.0.1-gke.0`. +pr: 104426 +releasenote: + text: The script `kube-up.sh` installs `csi-proxy v1.0.1-gke.0`. diff --git a/releases/release-1.23/release-notes/maps/pr-104430-map.yaml b/releases/release-1.23/release-notes/maps/pr-104430-map.yaml index 3082d21d7e2..bd8f1fd0d8f 100644 --- a/releases/release-1.23/release-notes/maps/pr-104430-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104430-map.yaml @@ -1,3 +1,3 @@ -pr: 104430 -releasenote: - text: Update `cri-tools` dependency to v1.22.0. +pr: 104430 +releasenote: + text: Update `cri-tools` dependency to v1.22.0. diff --git a/releases/release-1.23/release-notes/maps/pr-104438-map.yaml b/releases/release-1.23/release-notes/maps/pr-104438-map.yaml index b7b66008dac..5791099d3c6 100644 --- a/releases/release-1.23/release-notes/maps/pr-104438-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104438-map.yaml @@ -1,3 +1,3 @@ -pr: 104438 -releasenote: - text: The pause image list now contains Windows Server 2022. +pr: 104438 +releasenote: + text: The pause image list now contains Windows Server 2022. diff --git a/releases/release-1.23/release-notes/maps/pr-104466-map.yaml b/releases/release-1.23/release-notes/maps/pr-104466-map.yaml index 074ee62b66f..507ce294964 100644 --- a/releases/release-1.23/release-notes/maps/pr-104466-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104466-map.yaml @@ -1,4 +1,4 @@ -pr: 104466 -releasenote: - text: Fixes a regression that could cause panics in LRU caches in controller-manager, - kubelet, kube-apiserver, or client-go. +pr: 104466 +releasenote: + text: Fixes a regression that could cause panics in LRU caches in controller-manager, + kubelet, kube-apiserver, or client-go. diff --git a/releases/release-1.23/release-notes/maps/pr-104482-map.yaml b/releases/release-1.23/release-notes/maps/pr-104482-map.yaml index b76269263bc..a48f8a26da1 100644 --- a/releases/release-1.23/release-notes/maps/pr-104482-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104482-map.yaml @@ -1,4 +1,4 @@ -pr: 104482 -releasenote: - text: Changed kubectl describe to compute age of an event using the `EventSeries.count` - and `EventSeries.lastObservedTime`. +pr: 104482 +releasenote: + text: Changed kubectl describe to compute age of an event using the `EventSeries.count` + and `EventSeries.lastObservedTime`. diff --git a/releases/release-1.23/release-notes/maps/pr-104483-map.yaml b/releases/release-1.23/release-notes/maps/pr-104483-map.yaml index f0b1a92e657..20b729bb285 100644 --- a/releases/release-1.23/release-notes/maps/pr-104483-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104483-map.yaml @@ -1,4 +1,4 @@ -pr: 104483 -releasenote: - text: Client-go impersonation config can specify a UID to pass impersonated uid - information through in requests. +pr: 104483 +releasenote: + text: Client-go impersonation config can specify a UID to pass impersonated uid + information through in requests. diff --git a/releases/release-1.23/release-notes/maps/pr-104503-map.yaml b/releases/release-1.23/release-notes/maps/pr-104503-map.yaml index e560f7c75b6..04aa4b78bd0 100644 --- a/releases/release-1.23/release-notes/maps/pr-104503-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104503-map.yaml @@ -1,3 +1,3 @@ -pr: 104503 -releasenote: - text: kube-scheduler now doesn't print any usage message when unknown flag is specified. +pr: 104503 +releasenote: + text: kube-scheduler now doesn't print any usage message when unknown flag is specified. diff --git a/releases/release-1.23/release-notes/maps/pr-104518-map.yaml b/releases/release-1.23/release-notes/maps/pr-104518-map.yaml index 37194697e36..a0fadda8733 100644 --- a/releases/release-1.23/release-notes/maps/pr-104518-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104518-map.yaml @@ -1,3 +1,3 @@ -pr: 104518 -releasenote: - text: Removed deprecated metric `scheduler_volume_scheduling_duration_seconds`. +pr: 104518 +releasenote: + text: Removed deprecated metric `scheduler_volume_scheduling_duration_seconds`. diff --git a/releases/release-1.23/release-notes/maps/pr-104523-map.yaml b/releases/release-1.23/release-notes/maps/pr-104523-map.yaml index 51cf6c20cc2..ac79cdab87c 100644 --- a/releases/release-1.23/release-notes/maps/pr-104523-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104523-map.yaml @@ -1,5 +1,5 @@ -pr: 104523 -releasenote: - text: Fixes an issue where an admission webhook can observe a v1 Pod object that - does not have the `defaultMode` field set in the injected service account token - volume in kube-api-server. +pr: 104523 +releasenote: + text: Fixes an issue where an admission webhook can observe a v1 Pod object that + does not have the `defaultMode` field set in the injected service account token + volume in kube-api-server. diff --git a/releases/release-1.23/release-notes/maps/pr-104528-map.yaml b/releases/release-1.23/release-notes/maps/pr-104528-map.yaml index 5c3d59d9b38..529e08462ed 100644 --- a/releases/release-1.23/release-notes/maps/pr-104528-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104528-map.yaml @@ -1,3 +1,3 @@ -pr: 104528 -releasenote: - text: Fixed occasional pod cgroup freeze when using cgroup v1 and systemd driver. +pr: 104528 +releasenote: + text: Fixed occasional pod cgroup freeze when using cgroup v1 and systemd driver. diff --git a/releases/release-1.23/release-notes/maps/pr-104551-map.yaml b/releases/release-1.23/release-notes/maps/pr-104551-map.yaml index 0748dd33301..a0e5bdebf56 100644 --- a/releases/release-1.23/release-notes/maps/pr-104551-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104551-map.yaml @@ -1,3 +1,3 @@ -pr: 104551 -releasenote: - text: Fixes hostPath storage E2E tests within SELinux enabled env +pr: 104551 +releasenote: + text: Fixes hostPath storage E2E tests within SELinux enabled env diff --git a/releases/release-1.23/release-notes/maps/pr-104571-map.yaml b/releases/release-1.23/release-notes/maps/pr-104571-map.yaml index 769d24efbf6..6beb2917178 100644 --- a/releases/release-1.23/release-notes/maps/pr-104571-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104571-map.yaml @@ -1,3 +1,3 @@ -pr: 104571 -releasenote: - text: Added support for setting controller-manager log level online. +pr: 104571 +releasenote: + text: Added support for setting controller-manager log level online. diff --git a/releases/release-1.23/release-notes/maps/pr-104572-map.yaml b/releases/release-1.23/release-notes/maps/pr-104572-map.yaml index d98d3167e6e..0da408c477a 100644 --- a/releases/release-1.23/release-notes/maps/pr-104572-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104572-map.yaml @@ -1,3 +1,3 @@ -pr: 104572 -releasenote: - text: Fix detach disk issue on deleting vmss node. +pr: 104572 +releasenote: + text: Fix detach disk issue on deleting vmss node. diff --git a/releases/release-1.23/release-notes/maps/pr-104577-map.yaml b/releases/release-1.23/release-notes/maps/pr-104577-map.yaml index afd5ce27a6c..3b1d704e895 100644 --- a/releases/release-1.23/release-notes/maps/pr-104577-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104577-map.yaml @@ -1,5 +1,5 @@ -pr: 104577 -releasenote: - text: Fix a regression where the Kubelet failed to exclude already completed pods - from calculations about how many resources it was currently using when deciding - whether to allow more pods. +pr: 104577 +releasenote: + text: Fix a regression where the Kubelet failed to exclude already completed pods + from calculations about how many resources it was currently using when deciding + whether to allow more pods. diff --git a/releases/release-1.23/release-notes/maps/pr-104590-map.yaml b/releases/release-1.23/release-notes/maps/pr-104590-map.yaml index 734384dba46..3992b14928c 100644 --- a/releases/release-1.23/release-notes/maps/pr-104590-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104590-map.yaml @@ -1,5 +1,5 @@ -pr: 104590 -releasenote: - text: '`volume.kubernetes.io/storage-provisioner` annotation will be added to dynamic - provisioning required PVC. `volume.beta.kubernetes.io/storage-provisioner` annotation - is deprecated.' +pr: 104590 +releasenote: + text: '`volume.kubernetes.io/storage-provisioner` annotation will be added to dynamic + provisioning required PVC. `volume.beta.kubernetes.io/storage-provisioner` annotation + is deprecated.' diff --git a/releases/release-1.23/release-notes/maps/pr-104593-map.yaml b/releases/release-1.23/release-notes/maps/pr-104593-map.yaml index e62c8ee4dad..5805f8b9964 100644 --- a/releases/release-1.23/release-notes/maps/pr-104593-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104593-map.yaml @@ -1,3 +1,3 @@ -pr: 104593 -releasenote: - text: Ignore the case when updating Azure tags. +pr: 104593 +releasenote: + text: Ignore the case when updating Azure tags. diff --git a/releases/release-1.23/release-notes/maps/pr-104601-map.yaml b/releases/release-1.23/release-notes/maps/pr-104601-map.yaml index 9f1fa9c160a..6357160c7c2 100644 --- a/releases/release-1.23/release-notes/maps/pr-104601-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104601-map.yaml @@ -1,4 +1,4 @@ -pr: 104601 -releasenote: - text: A small regression in Service updates was fixed. The circumstances are so - unlikely that probably nobody would ever hit it. +pr: 104601 +releasenote: + text: A small regression in Service updates was fixed. The circumstances are so + unlikely that probably nobody would ever hit it. diff --git a/releases/release-1.23/release-notes/maps/pr-104604-map.yaml b/releases/release-1.23/release-notes/maps/pr-104604-map.yaml index fc118e9f4e7..4e130786aba 100644 --- a/releases/release-1.23/release-notes/maps/pr-104604-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104604-map.yaml @@ -1,4 +1,4 @@ -pr: 104604 -releasenote: - text: Don't prematurely close reflectors in case of slow initialization in watch - based manager to fix issues with inability to properly mount secrets/configmaps. +pr: 104604 +releasenote: + text: Don't prematurely close reflectors in case of slow initialization in watch + based manager to fix issues with inability to properly mount secrets/configmaps. diff --git a/releases/release-1.23/release-notes/maps/pr-104605-map.yaml b/releases/release-1.23/release-notes/maps/pr-104605-map.yaml index 2ec4929f85c..50b2e736c52 100644 --- a/releases/release-1.23/release-notes/maps/pr-104605-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104605-map.yaml @@ -1,5 +1,5 @@ -pr: 104605 -releasenote: - text: Better pod events ("waiting for ephemeral volume controller to create the - persistentvolumeclaim"" instead of "persistentvolumeclaim not found") when using - generic ephemeral volumes. +pr: 104605 +releasenote: + text: Better pod events ("waiting for ephemeral volume controller to create the + persistentvolumeclaim"" instead of "persistentvolumeclaim not found") when using + generic ephemeral volumes. diff --git a/releases/release-1.23/release-notes/maps/pr-104624-map.yaml b/releases/release-1.23/release-notes/maps/pr-104624-map.yaml index d3e58512ab2..3c42c8fe982 100644 --- a/releases/release-1.23/release-notes/maps/pr-104624-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104624-map.yaml @@ -1,4 +1,4 @@ -pr: 104624 -releasenote: - text: 'kubelet: turn the KubeletConfiguration v1beta1 `ResolverConfig` field from - a `string` to `*string`.' +pr: 104624 +releasenote: + text: 'kubelet: turn the KubeletConfiguration v1beta1 `ResolverConfig` field from + a `string` to `*string`.' diff --git a/releases/release-1.23/release-notes/maps/pr-104631-map.yaml b/releases/release-1.23/release-notes/maps/pr-104631-map.yaml index c1c64fb7136..618210b625e 100644 --- a/releases/release-1.23/release-notes/maps/pr-104631-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104631-map.yaml @@ -1,4 +1,4 @@ -pr: 104631 -releasenote: - text: A deprecation notice has been added when using the kube-proxy userspace proxier, - which will be removed in v1.25. (#103860) +pr: 104631 +releasenote: + text: A deprecation notice has been added when using the kube-proxy userspace proxier, + which will be removed in v1.25. (#103860) diff --git a/releases/release-1.23/release-notes/maps/pr-104636-map.yaml b/releases/release-1.23/release-notes/maps/pr-104636-map.yaml index 94229f3df62..4768650a0a8 100644 --- a/releases/release-1.23/release-notes/maps/pr-104636-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104636-map.yaml @@ -1,3 +1,3 @@ -pr: 104636 -releasenote: - text: The `IngressClass.Spec.Parameters.Namespace` field is now GA. +pr: 104636 +releasenote: + text: The `IngressClass.Spec.Parameters.Namespace` field is now GA. diff --git a/releases/release-1.23/release-notes/maps/pr-104664-map.yaml b/releases/release-1.23/release-notes/maps/pr-104664-map.yaml index 2c662e85163..b34c720fa56 100644 --- a/releases/release-1.23/release-notes/maps/pr-104664-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104664-map.yaml @@ -1,6 +1,6 @@ -pr: 104664 -releasenote: - text: The test "[sig-network] EndpointSlice should have Endpoints and EndpointSlices - pointing to API Server [Conformance]" only requires that there is an EndpointSlice - that references the "kubernetes.default" service, it no longer requires that its - named "kubernetes". +pr: 104664 +releasenote: + text: The test "[sig-network] EndpointSlice should have Endpoints and EndpointSlices + pointing to API Server [Conformance]" only requires that there is an EndpointSlice + that references the "kubernetes.default" service, it no longer requires that its + named "kubernetes". diff --git a/releases/release-1.23/release-notes/maps/pr-104666-map.yaml b/releases/release-1.23/release-notes/maps/pr-104666-map.yaml index 50d5960d7c8..0f5c7d4b737 100644 --- a/releases/release-1.23/release-notes/maps/pr-104666-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104666-map.yaml @@ -1,4 +1,4 @@ -pr: 104666 -releasenote: - text: Fix job tracking with finalizers for more than 500 pods, ensuring all finalizers - are removed before counting the Pod. +pr: 104666 +releasenote: + text: Fix job tracking with finalizers for more than 500 pods, ensuring all finalizers + are removed before counting the Pod. diff --git a/releases/release-1.23/release-notes/maps/pr-104667-map.yaml b/releases/release-1.23/release-notes/maps/pr-104667-map.yaml index 656e7669bd6..aec090c5ee0 100644 --- a/releases/release-1.23/release-notes/maps/pr-104667-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104667-map.yaml @@ -1,3 +1,3 @@ -pr: 104667 -releasenote: - text: Health check of kube-controller-manager now includes each controller. +pr: 104667 +releasenote: + text: Health check of kube-controller-manager now includes each controller. diff --git a/releases/release-1.23/release-notes/maps/pr-104670-map.yaml b/releases/release-1.23/release-notes/maps/pr-104670-map.yaml index a6f1545b8e6..9c80ca94559 100644 --- a/releases/release-1.23/release-notes/maps/pr-104670-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104670-map.yaml @@ -1,3 +1,3 @@ -pr: 104670 -releasenote: - text: Turn on CSIMigrationAzureDisk by default on 1.23 +pr: 104670 +releasenote: + text: Turn on CSIMigrationAzureDisk by default on 1.23 diff --git a/releases/release-1.23/release-notes/maps/pr-104691-map.yaml b/releases/release-1.23/release-notes/maps/pr-104691-map.yaml index 06c7ee63c04..238fcd9e266 100644 --- a/releases/release-1.23/release-notes/maps/pr-104691-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104691-map.yaml @@ -1,8 +1,8 @@ -pr: 104691 -releasenote: - text: |- - Promote `IPv6DualStack` feature to stable. - Controller Manager flags for the node IPAM controller have slightly changed: - 1. When configuring a dual-stack cluster, the user must specify both `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6` to set the per-node IP mask sizes, instead of the previous `--node-cidr-mask-size` flag. - 2. The `--node-cidr-mask-size` flag is mutually exclusive with `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6`. - 3. Single-stack clusters do not need to change, but may choose to use the more specific flags. Users can use either the older `--node-cidr-mask-size` flag or one of the newer `--node-cidr-mask-size-ipv4` or `--node-cidr-mask-size-ipv6` flags to configure the per-node IP mask size, provided that the flag's IP family matches the cluster's IP family (--cluster-cidr). +pr: 104691 +releasenote: + text: |- + Promote `IPv6DualStack` feature to stable. + Controller Manager flags for the node IPAM controller have slightly changed: + 1. When configuring a dual-stack cluster, the user must specify both `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6` to set the per-node IP mask sizes, instead of the previous `--node-cidr-mask-size` flag. + 2. The `--node-cidr-mask-size` flag is mutually exclusive with `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6`. + 3. Single-stack clusters do not need to change, but may choose to use the more specific flags. Users can use either the older `--node-cidr-mask-size` flag or one of the newer `--node-cidr-mask-size-ipv4` or `--node-cidr-mask-size-ipv6` flags to configure the per-node IP mask size, provided that the flag's IP family matches the cluster's IP family (--cluster-cidr). diff --git a/releases/release-1.23/release-notes/maps/pr-104693-map.yaml b/releases/release-1.23/release-notes/maps/pr-104693-map.yaml index 63bd3c64655..bb6ac5ae9da 100644 --- a/releases/release-1.23/release-notes/maps/pr-104693-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104693-map.yaml @@ -1,3 +1,3 @@ -pr: 104693 -releasenote: - text: Introduce `OS` field in the PodSpec +pr: 104693 +releasenote: + text: Introduce `OS` field in the PodSpec diff --git a/releases/release-1.23/release-notes/maps/pr-104696-map.yaml b/releases/release-1.23/release-notes/maps/pr-104696-map.yaml index 1e635004bd2..c5828101001 100644 --- a/releases/release-1.23/release-notes/maps/pr-104696-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104696-map.yaml @@ -1,3 +1,3 @@ -pr: 104696 -releasenote: - text: Update conformance image to use `debian-base:buster-v1.9.0`. +pr: 104696 +releasenote: + text: Update conformance image to use `debian-base:buster-v1.9.0`. diff --git a/releases/release-1.23/release-notes/maps/pr-104699-map.yaml b/releases/release-1.23/release-notes/maps/pr-104699-map.yaml index 25346dda61d..cf9d930daa0 100644 --- a/releases/release-1.23/release-notes/maps/pr-104699-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104699-map.yaml @@ -1,4 +1,4 @@ -pr: 104699 -releasenote: - text: If a conflict occurs when creating an object with `generateName`, the server - now returns an "AlreadyExists" error with a retry option. +pr: 104699 +releasenote: + text: If a conflict occurs when creating an object with `generateName`, the server + now returns an "AlreadyExists" error with a retry option. diff --git a/releases/release-1.23/release-notes/maps/pr-104705-map.yaml b/releases/release-1.23/release-notes/maps/pr-104705-map.yaml index 17743293dee..c5c4530c2f3 100644 --- a/releases/release-1.23/release-notes/maps/pr-104705-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104705-map.yaml @@ -1,3 +1,3 @@ -pr: 104705 -releasenote: - text: Ignore the case when comparing azure tags in service annotation. +pr: 104705 +releasenote: + text: Ignore the case when comparing azure tags in service annotation. diff --git a/releases/release-1.23/release-notes/maps/pr-104711-map.yaml b/releases/release-1.23/release-notes/maps/pr-104711-map.yaml index e1700834e34..24108d5cb98 100644 --- a/releases/release-1.23/release-notes/maps/pr-104711-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104711-map.yaml @@ -1,3 +1,3 @@ -pr: 104711 -releasenote: - text: Support for Windows Server 2022 was added to the `k8s.gcr.io/pause:3.6` image. +pr: 104711 +releasenote: + text: Support for Windows Server 2022 was added to the `k8s.gcr.io/pause:3.6` image. diff --git a/releases/release-1.23/release-notes/maps/pr-104722-map.yaml b/releases/release-1.23/release-notes/maps/pr-104722-map.yaml index 60a73102a4d..99586630a27 100644 --- a/releases/release-1.23/release-notes/maps/pr-104722-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104722-map.yaml @@ -1,3 +1,3 @@ -pr: 104722 -releasenote: - text: The `CSIMigrationGCE` feature flag is turned `ON` by default +pr: 104722 +releasenote: + text: The `CSIMigrationGCE` feature flag is turned `ON` by default diff --git a/releases/release-1.23/release-notes/maps/pr-104741-map.yaml b/releases/release-1.23/release-notes/maps/pr-104741-map.yaml index b2ba11d8d00..e09b9361c6f 100644 --- a/releases/release-1.23/release-notes/maps/pr-104741-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104741-map.yaml @@ -1,3 +1,3 @@ -pr: 104741 -releasenote: - text: More detailed logging has been added to the EndpointSlice controller for Topology. +pr: 104741 +releasenote: + text: More detailed logging has been added to the EndpointSlice controller for Topology. diff --git a/releases/release-1.23/release-notes/maps/pr-104742-map.yaml b/releases/release-1.23/release-notes/maps/pr-104742-map.yaml index ebcea5405d2..6028185600c 100644 --- a/releases/release-1.23/release-notes/maps/pr-104742-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104742-map.yaml @@ -1,7 +1,7 @@ -pr: 104742 -releasenote: - text: kube-proxy health check ports used to listen to `:<port>` for each of the - services. This is not needed and opens ports in addresses the cluster user may - not have intended. The PR limits listening to all node address which are controlled - by `--nodeport-addresses` flag. if no addresses are provided then we default to - existing behavior by listening to `:<port>` for each service +pr: 104742 +releasenote: + text: kube-proxy health check ports used to listen to `:<port>` for each of the + services. This is not needed and opens ports in addresses the cluster user may + not have intended. The PR limits listening to all node address which are controlled + by `--nodeport-addresses` flag. if no addresses are provided then we default to + existing behavior by listening to `:<port>` for each service diff --git a/releases/release-1.23/release-notes/maps/pr-104744-map.yaml b/releases/release-1.23/release-notes/maps/pr-104744-map.yaml index fe3d49085a6..479abd94dee 100644 --- a/releases/release-1.23/release-notes/maps/pr-104744-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104744-map.yaml @@ -1,3 +1,3 @@ -pr: 104744 -releasenote: - text: Topology Hints now excludes control plane notes from capacity calculations. +pr: 104744 +releasenote: + text: Topology Hints now excludes control plane notes from capacity calculations. diff --git a/releases/release-1.23/release-notes/maps/pr-104748-map.yaml b/releases/release-1.23/release-notes/maps/pr-104748-map.yaml index 0491e320347..7aef1b41931 100644 --- a/releases/release-1.23/release-notes/maps/pr-104748-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104748-map.yaml @@ -1,6 +1,6 @@ -pr: 104748 -releasenote: - text: Resolves a potential issue with GC and NS controllers which may delete objects - after getting a 404 response from the server during its startup. This PR ensures - that requests to aggregated APIs will get 503, not 404 while the APIServiceRegistrationController - hasn't finished its job. +pr: 104748 +releasenote: + text: Resolves a potential issue with GC and NS controllers which may delete objects + after getting a 404 response from the server during its startup. This PR ensures + that requests to aggregated APIs will get 503, not 404 while the APIServiceRegistrationController + hasn't finished its job. diff --git a/releases/release-1.23/release-notes/maps/pr-104756-map.yaml b/releases/release-1.23/release-notes/maps/pr-104756-map.yaml index a33601973c3..d8f024f50c8 100644 --- a/releases/release-1.23/release-notes/maps/pr-104756-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104756-map.yaml @@ -1,3 +1,3 @@ -pr: 104756 -releasenote: - text: Fixed client IP preservation for NodePort service with protocol SCTP in ipvs. +pr: 104756 +releasenote: + text: Fixed client IP preservation for NodePort service with protocol SCTP in ipvs. diff --git a/releases/release-1.23/release-notes/maps/pr-104782-map.yaml b/releases/release-1.23/release-notes/maps/pr-104782-map.yaml index c1f52a14ef9..b0c2fcd52a5 100644 --- a/releases/release-1.23/release-notes/maps/pr-104782-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104782-map.yaml @@ -1,5 +1,5 @@ -pr: 104782 -releasenote: - text: 'kube-scheduler: support for configuration file version `v1beta1` is removed. - Update configuration files to v1beta2(xref: https://github.com/kubernetes/enhancements/issues/2901) - or v1beta3 before upgrading to 1.23.' +pr: 104782 +releasenote: + text: 'kube-scheduler: support for configuration file version `v1beta1` is removed. + Update configuration files to v1beta2(xref: https://github.com/kubernetes/enhancements/issues/2901) + or v1beta3 before upgrading to 1.23.' diff --git a/releases/release-1.23/release-notes/maps/pr-104792-map.yaml b/releases/release-1.23/release-notes/maps/pr-104792-map.yaml index 56a62980709..7fe08f4499f 100644 --- a/releases/release-1.23/release-notes/maps/pr-104792-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104792-map.yaml @@ -1,4 +1,4 @@ -pr: 104792 -releasenote: - text: Adding option for `kubectl cp` to resume on network errors until completion, - requires tar in addition to tail inside the container image +pr: 104792 +releasenote: + text: Adding option for `kubectl cp` to resume on network errors until completion, + requires tar in addition to tail inside the container image diff --git a/releases/release-1.23/release-notes/maps/pr-104796-map.yaml b/releases/release-1.23/release-notes/maps/pr-104796-map.yaml index 319e7f2a183..e4e6964e098 100644 --- a/releases/release-1.23/release-notes/maps/pr-104796-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104796-map.yaml @@ -1,4 +1,4 @@ -pr: 104796 -releasenote: - text: Remove the deprecated flags `--csr-only` and `--csr-dir` from `kubeadm certs - renew`. Please use `kubeadm certs generate-csr` instead. +pr: 104796 +releasenote: + text: Remove the deprecated flags `--csr-only` and `--csr-dir` from `kubeadm certs + renew`. Please use `kubeadm certs generate-csr` instead. diff --git a/releases/release-1.23/release-notes/maps/pr-104817-map.yaml b/releases/release-1.23/release-notes/maps/pr-104817-map.yaml index 1fcb67cfc9f..8e80b60539d 100644 --- a/releases/release-1.23/release-notes/maps/pr-104817-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104817-map.yaml @@ -1,7 +1,7 @@ -pr: 104817 -releasenote: - text: A pod that the Kubelet rejects was still considered as being accepted for - a brief period of time after rejection, which might cause some pods to be rejected - briefly that could fit on the node. A pod that is still terminating (but has - status indicating it has failed) may also still be consuming resources and so - should also be considered. +pr: 104817 +releasenote: + text: A pod that the Kubelet rejects was still considered as being accepted for + a brief period of time after rejection, which might cause some pods to be rejected + briefly that could fit on the node. A pod that is still terminating (but has + status indicating it has failed) may also still be consuming resources and so + should also be considered. diff --git a/releases/release-1.23/release-notes/maps/pr-104847-map.yaml b/releases/release-1.23/release-notes/maps/pr-104847-map.yaml index 402c4d47f7a..c6e600fe381 100644 --- a/releases/release-1.23/release-notes/maps/pr-104847-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104847-map.yaml @@ -1,4 +1,4 @@ -pr: 104847 -releasenote: - text: When a static pod file is deleted and recreated while using a fixed UID, the - pod was not properly restarted. +pr: 104847 +releasenote: + text: When a static pod file is deleted and recreated while using a fixed UID, the + pod was not properly restarted. diff --git a/releases/release-1.23/release-notes/maps/pr-104854-map.yaml b/releases/release-1.23/release-notes/maps/pr-104854-map.yaml index 057fea718ef..ff6d15cddda 100644 --- a/releases/release-1.23/release-notes/maps/pr-104854-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104854-map.yaml @@ -1,8 +1,8 @@ -pr: 104854 -releasenote: - text: 'kubeadm: switch the preflight check (called ''Swap'') that verifies if swap - is enabled on Linux hosts to report a warning instead of an error. This is related - to the graduation of the NodeSwap feature gate in the kubelet to Beta and being - enabled by default in 1.23 - allows swap support on Linux hosts. In the next release - of kubeadm (1.24) the preflight check will be removed, thus we recommend that - you stop using it - e.g. via `--ignore-preflight-errors` or the kubeadm config.' +pr: 104854 +releasenote: + text: 'kubeadm: switch the preflight check (called ''Swap'') that verifies if swap + is enabled on Linux hosts to report a warning instead of an error. This is related + to the graduation of the NodeSwap feature gate in the kubelet to Beta and being + enabled by default in 1.23 - allows swap support on Linux hosts. In the next release + of kubeadm (1.24) the preflight check will be removed, thus we recommend that + you stop using it - e.g. via `--ignore-preflight-errors` or the kubeadm config.' diff --git a/releases/release-1.23/release-notes/maps/pr-104873-map.yaml b/releases/release-1.23/release-notes/maps/pr-104873-map.yaml index 137e4596b1b..1a96d749f1a 100644 --- a/releases/release-1.23/release-notes/maps/pr-104873-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104873-map.yaml @@ -1,5 +1,5 @@ -pr: 104873 -releasenote: - text: JSON log output is configurable and now supports writing info messages to - stdout and error messages to stderr. Info messages can be buffered in memory. - The default is to write both to stdout without buffering, as before. +pr: 104873 +releasenote: + text: JSON log output is configurable and now supports writing info messages to + stdout and error messages to stderr. Info messages can be buffered in memory. + The default is to write both to stdout without buffering, as before. diff --git a/releases/release-1.23/release-notes/maps/pr-104877-map.yaml b/releases/release-1.23/release-notes/maps/pr-104877-map.yaml index 3aed286030f..223b34ba773 100644 --- a/releases/release-1.23/release-notes/maps/pr-104877-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104877-map.yaml @@ -1,4 +1,4 @@ -pr: 104877 -releasenote: - text: Migrated kubernetes object references (= name + namespace) to structured - logging when using JSON as log output format +pr: 104877 +releasenote: + text: Migrated kubernetes object references (= name + namespace) to structured + logging when using JSON as log output format diff --git a/releases/release-1.23/release-notes/maps/pr-104891-map.yaml b/releases/release-1.23/release-notes/maps/pr-104891-map.yaml index 467edc0155c..f0227e62afd 100644 --- a/releases/release-1.23/release-notes/maps/pr-104891-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104891-map.yaml @@ -1,3 +1,3 @@ -pr: 104891 -releasenote: - text: Migrated `pkg/proxy` to structured logging +pr: 104891 +releasenote: + text: Migrated `pkg/proxy` to structured logging diff --git a/releases/release-1.23/release-notes/maps/pr-104894-map.yaml b/releases/release-1.23/release-notes/maps/pr-104894-map.yaml index bcf867a67f7..46afba62843 100644 --- a/releases/release-1.23/release-notes/maps/pr-104894-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104894-map.yaml @@ -1,3 +1,3 @@ -pr: 104894 -releasenote: - text: Add support to generate client-side binaries for windows/arm64 platform +pr: 104894 +releasenote: + text: Add support to generate client-side binaries for windows/arm64 platform diff --git a/releases/release-1.23/release-notes/maps/pr-104904-map.yaml b/releases/release-1.23/release-notes/maps/pr-104904-map.yaml index b673e2d765e..76e810998d0 100644 --- a/releases/release-1.23/release-notes/maps/pr-104904-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104904-map.yaml @@ -1,3 +1,3 @@ -pr: 104904 -releasenote: - text: Kubernetes is now built with Golang 1.17.1. +pr: 104904 +releasenote: + text: Kubernetes is now built with Golang 1.17.1. diff --git a/releases/release-1.23/release-notes/maps/pr-104908-map.yaml b/releases/release-1.23/release-notes/maps/pr-104908-map.yaml index ef4fd978a57..19341f4f175 100644 --- a/releases/release-1.23/release-notes/maps/pr-104908-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104908-map.yaml @@ -1,3 +1,3 @@ -pr: 104908 -releasenote: - text: Migrate `pkg/proxy` to structured logging +pr: 104908 +releasenote: + text: Migrate `pkg/proxy` to structured logging diff --git a/releases/release-1.23/release-notes/maps/pr-104915-map.yaml b/releases/release-1.23/release-notes/maps/pr-104915-map.yaml index c18c2e8675e..a78ebece81d 100644 --- a/releases/release-1.23/release-notes/maps/pr-104915-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104915-map.yaml @@ -1,4 +1,4 @@ -pr: 104915 -releasenote: - text: Track the number of Pods with a Ready condition in Job status. The feature - is alpha and needs the feature gate JobReadyPods to be enabled. +pr: 104915 +releasenote: + text: Track the number of Pods with a Ready condition in Job status. The feature + is alpha and needs the feature gate JobReadyPods to be enabled. diff --git a/releases/release-1.23/release-notes/maps/pr-104923-map.yaml b/releases/release-1.23/release-notes/maps/pr-104923-map.yaml index 95cb79f044b..cd247ad8f99 100644 --- a/releases/release-1.23/release-notes/maps/pr-104923-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104923-map.yaml @@ -1,5 +1,5 @@ -pr: 104923 -releasenote: - text: XFS-filesystems are now force-formatted (option `-f`) in order to avoid problems - being formatted due to detection of magic super-blocks. This aligns with the behaviour - of formatting of ext3/4 filesystems. +pr: 104923 +releasenote: + text: XFS-filesystems are now force-formatted (option `-f`) in order to avoid problems + being formatted due to detection of magic super-blocks. This aligns with the behaviour + of formatting of ext3/4 filesystems. diff --git a/releases/release-1.23/release-notes/maps/pr-104928-map.yaml b/releases/release-1.23/release-notes/maps/pr-104928-map.yaml index 51af308f4fa..f398deacec9 100644 --- a/releases/release-1.23/release-notes/maps/pr-104928-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104928-map.yaml @@ -1,3 +1,3 @@ -pr: 104928 -releasenote: - text: Migrate cmd/proxy/app and pkg/proxy/meta_proxier to structured logging +pr: 104928 +releasenote: + text: Migrate cmd/proxy/app and pkg/proxy/meta_proxier to structured logging diff --git a/releases/release-1.23/release-notes/maps/pr-104931-map.yaml b/releases/release-1.23/release-notes/maps/pr-104931-map.yaml index 16d43d23c4c..954f1cf37e9 100644 --- a/releases/release-1.23/release-notes/maps/pr-104931-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104931-map.yaml @@ -1,3 +1,3 @@ -pr: 104931 -releasenote: - text: Migrated `pkg/proxy/userspace` to structured logging. +pr: 104931 +releasenote: + text: Migrated `pkg/proxy/userspace` to structured logging. diff --git a/releases/release-1.23/release-notes/maps/pr-104932-map.yaml b/releases/release-1.23/release-notes/maps/pr-104932-map.yaml index d4020379153..af57fce8a59 100644 --- a/releases/release-1.23/release-notes/maps/pr-104932-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104932-map.yaml @@ -1,3 +1,3 @@ -pr: 104932 -releasenote: - text: Migrated `pkg/proxy/ipvs` to structured logging +pr: 104932 +releasenote: + text: Migrated `pkg/proxy/ipvs` to structured logging diff --git a/releases/release-1.23/release-notes/maps/pr-104942-map.yaml b/releases/release-1.23/release-notes/maps/pr-104942-map.yaml index dc3eace2eab..c0b99ce9941 100644 --- a/releases/release-1.23/release-notes/maps/pr-104942-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104942-map.yaml @@ -1,4 +1,4 @@ -pr: 104942 -releasenote: - text: "kubeadm: do not check if the `/etc/kubernetes/manifests` folder is empty - on joining worker nodes during preflight" +pr: 104942 +releasenote: + text: "kubeadm: do not check if the `/etc/kubernetes/manifests` folder is empty + on joining worker nodes during preflight" diff --git a/releases/release-1.23/release-notes/maps/pr-104944-map.yaml b/releases/release-1.23/release-notes/maps/pr-104944-map.yaml index ac5c36651c7..3d02b47bd1a 100644 --- a/releases/release-1.23/release-notes/maps/pr-104944-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104944-map.yaml @@ -1,3 +1,3 @@ -pr: 104944 -releasenote: - text: Migrate `cmd/proxy/{config, healthcheck, winkernel}` to structured logging +pr: 104944 +releasenote: + text: Migrate `cmd/proxy/{config, healthcheck, winkernel}` to structured logging diff --git a/releases/release-1.23/release-notes/maps/pr-104969-map.yaml b/releases/release-1.23/release-notes/maps/pr-104969-map.yaml index 46066873ee8..0d27bf2da4a 100644 --- a/releases/release-1.23/release-notes/maps/pr-104969-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104969-map.yaml @@ -1,4 +1,4 @@ -pr: 104969 -releasenote: - text: 'kube-apiserver: Fixes handling of CRD schemas containing literal null values - in enums.' +pr: 104969 +releasenote: + text: 'kube-apiserver: Fixes handling of CRD schemas containing literal null values + in enums.' diff --git a/releases/release-1.23/release-notes/maps/pr-104970-map.yaml b/releases/release-1.23/release-notes/maps/pr-104970-map.yaml index d42dff415f0..cdbc0339948 100644 --- a/releases/release-1.23/release-notes/maps/pr-104970-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104970-map.yaml @@ -1,3 +1,3 @@ -pr: 104970 -releasenote: - text: Updates `debian-iptables` to v1.6.7 to pick up CVE fixes. +pr: 104970 +releasenote: + text: Updates `debian-iptables` to v1.6.7 to pick up CVE fixes. diff --git a/releases/release-1.23/release-notes/maps/pr-104983-map.yaml b/releases/release-1.23/release-notes/maps/pr-104983-map.yaml index 88a4ca34375..f8fdc756a8f 100644 --- a/releases/release-1.23/release-notes/maps/pr-104983-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104983-map.yaml @@ -1,12 +1,12 @@ -pr: 104983 -releasenote: - text: |- - The kube-apiserver's Prometheus metrics have been extended with some that describe the costs of handling LIST requests. They are as follows. - - *apiserver_cache_list_total*: Counter of LIST requests served from watch cache, broken down by resource_prefix and index_name - - *apiserver_cache_list_fetched_objects_total*: Counter of objects read from watch cache in the course of serving a LIST request, broken down by resource_prefix and index_name - - *apiserver_cache_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from watch cache, broken down by resource_prefix - - *apiserver_cache_list_returned_objects_total*: Counter of objects returned for a LIST request from watch cache, broken down by resource_prefix - - *apiserver_storage_list_total*: Counter of LIST requests served from etcd, broken down by resource - - *apiserver_storage_list_fetched_objects_total*: Counter of objects read from etcd in the course of serving a LIST request, broken down by resource - - *apiserver_storage_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from etcd, broken down by resource - - *apiserver_storage_list_returned_objects_total*: Counter of objects returned for a LIST request from etcd, broken down by resource +pr: 104983 +releasenote: + text: |- + The kube-apiserver's Prometheus metrics have been extended with some that describe the costs of handling LIST requests. They are as follows. + - *apiserver_cache_list_total*: Counter of LIST requests served from watch cache, broken down by resource_prefix and index_name + - *apiserver_cache_list_fetched_objects_total*: Counter of objects read from watch cache in the course of serving a LIST request, broken down by resource_prefix and index_name + - *apiserver_cache_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from watch cache, broken down by resource_prefix + - *apiserver_cache_list_returned_objects_total*: Counter of objects returned for a LIST request from watch cache, broken down by resource_prefix + - *apiserver_storage_list_total*: Counter of LIST requests served from etcd, broken down by resource + - *apiserver_storage_list_fetched_objects_total*: Counter of objects read from etcd in the course of serving a LIST request, broken down by resource + - *apiserver_storage_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from etcd, broken down by resource + - *apiserver_storage_list_returned_objects_total*: Counter of objects returned for a LIST request from etcd, broken down by resource diff --git a/releases/release-1.23/release-notes/maps/pr-104986-map.yaml b/releases/release-1.23/release-notes/maps/pr-104986-map.yaml index 560f50e5843..0c2391f688f 100644 --- a/releases/release-1.23/release-notes/maps/pr-104986-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-104986-map.yaml @@ -1,5 +1,5 @@ -pr: 104986 -releasenote: - text: Headless Services with no selector which were created without dual-stack enabled - will be defaulted to RequireDualStack instead of PreferDualStack. This is consistent - with such Services which are created with dual-stack enabled. +pr: 104986 +releasenote: + text: Headless Services with no selector which were created without dual-stack enabled + will be defaulted to RequireDualStack instead of PreferDualStack. This is consistent + with such Services which are created with dual-stack enabled. diff --git a/releases/release-1.23/release-notes/maps/pr-105003-map.yaml b/releases/release-1.23/release-notes/maps/pr-105003-map.yaml index 397f9088ff2..93a3de2db2b 100644 --- a/releases/release-1.23/release-notes/maps/pr-105003-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105003-map.yaml @@ -1,4 +1,4 @@ -pr: 105003 -releasenote: - text: Move the `GetAllocatableResources` Endpoint in PodResource API to the beta - that will make it enabled by default. +pr: 105003 +releasenote: + text: Move the `GetAllocatableResources` Endpoint in PodResource API to the beta + that will make it enabled by default. diff --git a/releases/release-1.23/release-notes/maps/pr-105012-map.yaml b/releases/release-1.23/release-notes/maps/pr-105012-map.yaml index eb24af5a95f..47dc5bf461b 100644 --- a/releases/release-1.23/release-notes/maps/pr-105012-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105012-map.yaml @@ -1,4 +1,4 @@ -pr: 105012 -releasenote: - text: The CPUManager policy options are now enabled, and we introduce a graduation - path for the new CPU Manager policy options. +pr: 105012 +releasenote: + text: The CPUManager policy options are now enabled, and we introduce a graduation + path for the new CPU Manager policy options. diff --git a/releases/release-1.23/release-notes/maps/pr-105034-map.yaml b/releases/release-1.23/release-notes/maps/pr-105034-map.yaml index 70257b90966..c7a3fd6d143 100644 --- a/releases/release-1.23/release-notes/maps/pr-105034-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105034-map.yaml @@ -1,5 +1,5 @@ -pr: 105034 -releasenote: - text: 'kubeadm: remove the `--port` flag from the manifest for the kube-scheduler - since the flag has been a NO-OP since 1.23 and insecure serving was removed for - the component.' +pr: 105034 +releasenote: + text: 'kubeadm: remove the `--port` flag from the manifest for the kube-scheduler + since the flag has been a NO-OP since 1.23 and insecure serving was removed for + the component.' diff --git a/releases/release-1.23/release-notes/maps/pr-105035-map.yaml b/releases/release-1.23/release-notes/maps/pr-105035-map.yaml index 662c6e7f447..0405b4d6bab 100644 --- a/releases/release-1.23/release-notes/maps/pr-105035-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105035-map.yaml @@ -1,3 +1,3 @@ -pr: 105035 -releasenote: - text: Migrated pkg/proxy/winuserspace to structured logging +pr: 105035 +releasenote: + text: Migrated pkg/proxy/winuserspace to structured logging diff --git a/releases/release-1.23/release-notes/maps/pr-105042-map.yaml b/releases/release-1.23/release-notes/maps/pr-105042-map.yaml index 35a7c9aca6a..e92207fe1c9 100644 --- a/releases/release-1.23/release-notes/maps/pr-105042-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105042-map.yaml @@ -1,4 +1,4 @@ -pr: 105042 -releasenote: - text: All `klog` flags except for `-v` and `-vmodule` are deprecated. Support for - `-vmodule` is only guaranteed for the text log format. +pr: 105042 +releasenote: + text: All `klog` flags except for `-v` and `-vmodule` are deprecated. Support for + `-vmodule` is only guaranteed for the text log format. diff --git a/releases/release-1.23/release-notes/maps/pr-105046-map.yaml b/releases/release-1.23/release-notes/maps/pr-105046-map.yaml index 3d1bfc3a584..c264aa0be64 100644 --- a/releases/release-1.23/release-notes/maps/pr-105046-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105046-map.yaml @@ -1,4 +1,4 @@ -pr: 105046 -releasenote: - text: Fix system default topology spreading when nodes don't have zone labels. Pods - correctly spread by default now. +pr: 105046 +releasenote: + text: Fix system default topology spreading when nodes don't have zone labels. Pods + correctly spread by default now. diff --git a/releases/release-1.23/release-notes/maps/pr-105069-map.yaml b/releases/release-1.23/release-notes/maps/pr-105069-map.yaml index bf56a4548e0..7a26ca21e7c 100644 --- a/releases/release-1.23/release-notes/maps/pr-105069-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105069-map.yaml @@ -1,4 +1,4 @@ -pr: 105069 -releasenote: - text: Make the etcd client (used by the API server) retry certain types of errors. - The full list of retriable (codes.Unavailable) errors can be found at https://github.com/etcd-io/etcd/blob/main/api/v3rpc/rpctypes/error.go#L72 +pr: 105069 +releasenote: + text: Make the etcd client (used by the API server) retry certain types of errors. + The full list of retriable (codes.Unavailable) errors can be found at https://github.com/etcd-io/etcd/blob/main/api/v3rpc/rpctypes/error.go#L72 diff --git a/releases/release-1.23/release-notes/maps/pr-105076-map.yaml b/releases/release-1.23/release-notes/maps/pr-105076-map.yaml index 9b843f5d76f..e0a16a17f40 100644 --- a/releases/release-1.23/release-notes/maps/pr-105076-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105076-map.yaml @@ -1,10 +1,10 @@ -pr: 105076 -releasenote: - text: '`--log-flush-frequency` had no effect in several commands or was missing. - Help and warning texts were not always using the right format for a command (`add_dir_header` - instead of `add-dir-header`). Fixing this included cleaning up flag handling in - component-base/logs: that package no longer adds flags to the global flag sets. - Commands which want the klog and `--log-flush-frequency` flags must explicitly - call `logs.AddFlags`; the new `cli.Run` does that for commands. That helper function - also covers flag normalization and printing of usage and errors in a consistent - way (print usage text first if parsing failed, then the error).' +pr: 105076 +releasenote: + text: '`--log-flush-frequency` had no effect in several commands or was missing. + Help and warning texts were not always using the right format for a command (`add_dir_header` + instead of `add-dir-header`). Fixing this included cleaning up flag handling in + component-base/logs: that package no longer adds flags to the global flag sets. + Commands which want the klog and `--log-flush-frequency` flags must explicitly + call `logs.AddFlags`; the new `cli.Run` does that for commands. That helper function + also covers flag normalization and printing of usage and errors in a consistent + way (print usage text first if parsing failed, then the error).' diff --git a/releases/release-1.23/release-notes/maps/pr-105107-map.yaml b/releases/release-1.23/release-notes/maps/pr-105107-map.yaml index e5b6298b246..9bf4e374325 100644 --- a/releases/release-1.23/release-notes/maps/pr-105107-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105107-map.yaml @@ -1,4 +1,4 @@ -pr: 105107 -releasenote: - text: Added a new feature gate `CustomResourceValidationExpressions` to enable expression - validation for Custom Resource. +pr: 105107 +releasenote: + text: Added a new feature gate `CustomResourceValidationExpressions` to enable expression + validation for Custom Resource. diff --git a/releases/release-1.23/release-notes/maps/pr-105140-map.yaml b/releases/release-1.23/release-notes/maps/pr-105140-map.yaml index e98ce3c86de..6731777873d 100644 --- a/releases/release-1.23/release-notes/maps/pr-105140-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105140-map.yaml @@ -1,5 +1,5 @@ -pr: 105140 -releasenote: - text: Added the ability to specify whether to use an RFC7396 JSON Merge Patch, an - RFC6902 JSON Patch, or a Strategic Merge Patch to perform an override of the resources - created by `kubectl run` and `kubectl expose`. +pr: 105140 +releasenote: + text: Added the ability to specify whether to use an RFC7396 JSON Merge Patch, an + RFC6902 JSON Patch, or a Strategic Merge Patch to perform an override of the resources + created by `kubectl run` and `kubectl expose`. diff --git a/releases/release-1.23/release-notes/maps/pr-105156-map.yaml b/releases/release-1.23/release-notes/maps/pr-105156-map.yaml index 076d3f9a9a0..84cf231de4a 100644 --- a/releases/release-1.23/release-notes/maps/pr-105156-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105156-map.yaml @@ -1,9 +1,9 @@ -pr: 105156 -releasenote: - text: |- - `client-go`, using log level 9, traces the following events of a HTTP request: - - DNS lookup - - TCP dialing - - TLS handshake - - Time to get a connection from the pool - - Time to process a request +pr: 105156 +releasenote: + text: |- + `client-go`, using log level 9, traces the following events of a HTTP request: + - DNS lookup + - TCP dialing + - TLS handshake + - Time to get a connection from the pool + - Time to process a request diff --git a/releases/release-1.23/release-notes/maps/pr-105158-map.yaml b/releases/release-1.23/release-notes/maps/pr-105158-map.yaml index 73df8cee2ac..d4724e9c8e6 100644 --- a/releases/release-1.23/release-notes/maps/pr-105158-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105158-map.yaml @@ -1,11 +1,11 @@ -pr: 105158 -releasenote: - text: |- - Update build images to Debian 11 (Bullseye) - - debian-base:bullseye-v1.0.0 - - debian-iptables:bullseye-v1.0.0 - - go-runner:v2.3.1-go1.17.1-bullseye.0 - - kube-cross:v1.23.0-go1.17.1-bullseye.1 - - setcap:bullseye-v1.0.0 - - cluster/images/etcd: Build 3.5.0-2 image - - test/conformance/image: Update runner image to base-debian11 +pr: 105158 +releasenote: + text: |- + Update build images to Debian 11 (Bullseye) + - debian-base:bullseye-v1.0.0 + - debian-iptables:bullseye-v1.0.0 + - go-runner:v2.3.1-go1.17.1-bullseye.0 + - kube-cross:v1.23.0-go1.17.1-bullseye.1 + - setcap:bullseye-v1.0.0 + - cluster/images/etcd: Build 3.5.0-2 image + - test/conformance/image: Update runner image to base-debian11 diff --git a/releases/release-1.23/release-notes/maps/pr-105185-map.yaml b/releases/release-1.23/release-notes/maps/pr-105185-map.yaml index e26bd645722..4343653f7a5 100644 --- a/releases/release-1.23/release-notes/maps/pr-105185-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105185-map.yaml @@ -1,3 +1,3 @@ -pr: 105185 -releasenote: - text: 'Ignore `not a vmss instance` error for VMAS nodes in `EnsureBackendPoolDeleted`.' +pr: 105185 +releasenote: + text: 'Ignore `not a vmss instance` error for VMAS nodes in `EnsureBackendPoolDeleted`.' diff --git a/releases/release-1.23/release-notes/maps/pr-105188-map.yaml b/releases/release-1.23/release-notes/maps/pr-105188-map.yaml index 3b40957a4c5..4188104c605 100644 --- a/releases/release-1.23/release-notes/maps/pr-105188-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105188-map.yaml @@ -1,5 +1,5 @@ -pr: 105188 -releasenote: - text: |- - Fixed consolidate logs for `instance not found` error - Fixed skip `not found` nodes when reconciling LB backend address pools +pr: 105188 +releasenote: + text: |- + Fixed consolidate logs for `instance not found` error + Fixed skip `not found` nodes when reconciling LB backend address pools diff --git a/releases/release-1.23/release-notes/maps/pr-105196-map.yaml b/releases/release-1.23/release-notes/maps/pr-105196-map.yaml index 70b5d679808..f1777d378d0 100644 --- a/releases/release-1.23/release-notes/maps/pr-105196-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105196-map.yaml @@ -1,4 +1,4 @@ -pr: 105196 -releasenote: - text: Enhanced error message for nodes not selected by scheduler due to pod's PersistentVolumeClaim(s) - bound to PersistentVolume(s) that do not exist. +pr: 105196 +releasenote: + text: Enhanced error message for nodes not selected by scheduler due to pod's PersistentVolumeClaim(s) + bound to PersistentVolume(s) that do not exist. diff --git a/releases/release-1.23/release-notes/maps/pr-105197-map.yaml b/releases/release-1.23/release-notes/maps/pr-105197-map.yaml index d879dfa5b3f..a9ce8e8c7d3 100644 --- a/releases/release-1.23/release-notes/maps/pr-105197-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105197-map.yaml @@ -1,6 +1,6 @@ -pr: 105197 -releasenote: - text: |- - When feature gate `JobTrackingWithFinalizers` is enabled: - - Limit the number of Pods tracked in a single Job sync to avoid starvation of small Jobs. - - The metric `job_pod_finished_total` counts the number of finished Pods tracked by the Job controller. +pr: 105197 +releasenote: + text: |- + When feature gate `JobTrackingWithFinalizers` is enabled: + - Limit the number of Pods tracked in a single Job sync to avoid starvation of small Jobs. + - The metric `job_pod_finished_total` counts the number of finished Pods tracked by the Job controller. diff --git a/releases/release-1.23/release-notes/maps/pr-105211-map.yaml b/releases/release-1.23/release-notes/maps/pr-105211-map.yaml index b508469f5d2..c247e069384 100644 --- a/releases/release-1.23/release-notes/maps/pr-105211-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105211-map.yaml @@ -1,5 +1,5 @@ -pr: 105211 -releasenote: - text: Fixed a bug that prevents a PersistentVolume that has a PersistentVolumeClaim - UID which doesn't exist in local cache but exists in etcd from being updated to - the Released phase. +pr: 105211 +releasenote: + text: Fixed a bug that prevents a PersistentVolume that has a PersistentVolumeClaim + UID which doesn't exist in local cache but exists in etcd from being updated to + the Released phase. diff --git a/releases/release-1.23/release-notes/maps/pr-105213-map.yaml b/releases/release-1.23/release-notes/maps/pr-105213-map.yaml index 9fd86ffab0d..b2168f002b1 100644 --- a/releases/release-1.23/release-notes/maps/pr-105213-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105213-map.yaml @@ -1,4 +1,4 @@ -pr: 105213 -releasenote: - text: Removed the error message label from the `kubelet_started_pods_errors_total` - metric +pr: 105213 +releasenote: + text: Removed the error message label from the `kubelet_started_pods_errors_total` + metric diff --git a/releases/release-1.23/release-notes/maps/pr-105214-map.yaml b/releases/release-1.23/release-notes/maps/pr-105214-map.yaml index c850801afdc..27b52f3b1d7 100644 --- a/releases/release-1.23/release-notes/maps/pr-105214-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105214-map.yaml @@ -1,4 +1,4 @@ -pr: 105214 -releasenote: - text: 'Fix job controller syncs: In case of conflicts, ensure that the sync happens - with the most up to date information. Improves reliability of JobTrackingWithFinalizers.' +pr: 105214 +releasenote: + text: 'Fix job controller syncs: In case of conflicts, ensure that the sync happens + with the most up to date information. Improves reliability of JobTrackingWithFinalizers.' diff --git a/releases/release-1.23/release-notes/maps/pr-105215-map.yaml b/releases/release-1.23/release-notes/maps/pr-105215-map.yaml index 84227d162fe..8445776bd0e 100644 --- a/releases/release-1.23/release-notes/maps/pr-105215-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105215-map.yaml @@ -1,3 +1,3 @@ -pr: 105215 -releasenote: - text: Kubelet's Node Grace Shutdown will terminate probes when shutting down +pr: 105215 +releasenote: + text: Kubelet's Node Grace Shutdown will terminate probes when shutting down diff --git a/releases/release-1.23/release-notes/maps/pr-105219-map.yaml b/releases/release-1.23/release-notes/maps/pr-105219-map.yaml index 95d5e275a7f..40e48b24515 100644 --- a/releases/release-1.23/release-notes/maps/pr-105219-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105219-map.yaml @@ -1,3 +1,3 @@ -pr: 105219 -releasenote: - text: The `TTLAfterFinished` feature gate is now GA and enabled by default. +pr: 105219 +releasenote: + text: The `TTLAfterFinished` feature gate is now GA and enabled by default. diff --git a/releases/release-1.23/release-notes/maps/pr-105222-map.yaml b/releases/release-1.23/release-notes/maps/pr-105222-map.yaml index a8a0f3632a4..df1250da2c1 100644 --- a/releases/release-1.23/release-notes/maps/pr-105222-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105222-map.yaml @@ -1,4 +1,4 @@ -pr: 105222 -releasenote: - text: Remove `NodeLease` feature gate that was graduated and locked to stable in - 1.17 release. +pr: 105222 +releasenote: + text: Remove `NodeLease` feature gate that was graduated and locked to stable in + 1.17 release. diff --git a/releases/release-1.23/release-notes/maps/pr-105245-map.yaml b/releases/release-1.23/release-notes/maps/pr-105245-map.yaml index 49dd07032b0..d925035c55e 100644 --- a/releases/release-1.23/release-notes/maps/pr-105245-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105245-map.yaml @@ -1,3 +1,3 @@ -pr: 105245 -releasenote: - text: Enhance scheduler `VolumeBinding` plugin to handle Lost PVC as `UnschedulableAndUnresolvable` +pr: 105245 +releasenote: + text: Enhance scheduler `VolumeBinding` plugin to handle Lost PVC as `UnschedulableAndUnresolvable` diff --git a/releases/release-1.23/release-notes/maps/pr-105253-map.yaml b/releases/release-1.23/release-notes/maps/pr-105253-map.yaml index e1e5fb3fe63..512d5dad737 100644 --- a/releases/release-1.23/release-notes/maps/pr-105253-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105253-map.yaml @@ -1,3 +1,3 @@ -pr: 105253 -releasenote: - text: 'fix: leave the probe path empty for TCP probes' +pr: 105253 +releasenote: + text: 'fix: leave the probe path empty for TCP probes' diff --git a/releases/release-1.23/release-notes/maps/pr-105267-map.yaml b/releases/release-1.23/release-notes/maps/pr-105267-map.yaml index 5ed943c2bbc..402a3d26484 100644 --- a/releases/release-1.23/release-notes/maps/pr-105267-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105267-map.yaml @@ -1,5 +1,5 @@ -pr: 105267 -releasenote: - text: Fixes a bug that could result in the EndpointSlice controller unnecessarily - updating EndpointSlices associated with a Service that had Topology Aware Hints - enabled. +pr: 105267 +releasenote: + text: Fixes a bug that could result in the EndpointSlice controller unnecessarily + updating EndpointSlices associated with a Service that had Topology Aware Hints + enabled. diff --git a/releases/release-1.23/release-notes/maps/pr-105295-map.yaml b/releases/release-1.23/release-notes/maps/pr-105295-map.yaml index e7c4d1736c5..1480a4969d8 100644 --- a/releases/release-1.23/release-notes/maps/pr-105295-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105295-map.yaml @@ -1,6 +1,6 @@ -pr: 105295 -releasenote: - text: 'kubeadm: add a new `output/v1alpha2` API that is identical to the `output/v1alpha1`, - but attempts to resolve some internal dependencies with the `kubeadm/v1beta2` - API. The `output/v1alpha1` API is now deprecated and will be removed in a future - release.' +pr: 105295 +releasenote: + text: 'kubeadm: add a new `output/v1alpha2` API that is identical to the `output/v1alpha1`, + but attempts to resolve some internal dependencies with the `kubeadm/v1beta2` + API. The `output/v1alpha1` API is now deprecated and will be removed in a future + release.' diff --git a/releases/release-1.23/release-notes/maps/pr-105327-map.yaml b/releases/release-1.23/release-notes/maps/pr-105327-map.yaml index 8515d81bf34..ab53475f76a 100644 --- a/releases/release-1.23/release-notes/maps/pr-105327-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105327-map.yaml @@ -1,4 +1,4 @@ -pr: 105327 -releasenote: - text: Removed `kubectl --dry-run` empty default value and boolean values. `kubectl - --dry-run` usage must be specified with `--dry-run=(server|client|none)`. +pr: 105327 +releasenote: + text: Removed `kubectl --dry-run` empty default value and boolean values. `kubectl + --dry-run` usage must be specified with `--dry-run=(server|client|none)`. diff --git a/releases/release-1.23/release-notes/maps/pr-105352-map.yaml b/releases/release-1.23/release-notes/maps/pr-105352-map.yaml index 6aa8c0d727e..a69d64ab0bf 100644 --- a/releases/release-1.23/release-notes/maps/pr-105352-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105352-map.yaml @@ -1,3 +1,3 @@ -pr: 105352 -releasenote: - text: Revert building binaries with PIE mode. +pr: 105352 +releasenote: + text: Revert building binaries with PIE mode. diff --git a/releases/release-1.23/release-notes/maps/pr-105396-map.yaml b/releases/release-1.23/release-notes/maps/pr-105396-map.yaml index 8477dc5accc..9e522b113e4 100644 --- a/releases/release-1.23/release-notes/maps/pr-105396-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105396-map.yaml @@ -1,4 +1,4 @@ -pr: 105396 -releasenote: - text: Fixes the `should support building a client with a CSR` E2E test to work with - clusters configured with short certificate lifetimes +pr: 105396 +releasenote: + text: Fixes the `should support building a client with a CSR` E2E test to work with + clusters configured with short certificate lifetimes diff --git a/releases/release-1.23/release-notes/maps/pr-105405-map.yaml b/releases/release-1.23/release-notes/maps/pr-105405-map.yaml index 18c7db34459..38b5e91cd0a 100644 --- a/releases/release-1.23/release-notes/maps/pr-105405-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105405-map.yaml @@ -1,3 +1,3 @@ -pr: 105405 -releasenote: - text: Ephemeral containers graduated to beta and are now available by default. +pr: 105405 +releasenote: + text: Ephemeral containers graduated to beta and are now available by default. diff --git a/releases/release-1.23/release-notes/maps/pr-105421-map.yaml b/releases/release-1.23/release-notes/maps/pr-105421-map.yaml index 9cb8b1d574a..5f0f321eb7a 100644 --- a/releases/release-1.23/release-notes/maps/pr-105421-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105421-map.yaml @@ -1,4 +1,4 @@ -pr: 105421 -releasenote: - text: Fixed a bug where using `kubectl patch` with `$deleteFromPrimitiveList` on - a nonexistent or empty list would add the item to the list +pr: 105421 +releasenote: + text: Fixed a bug where using `kubectl patch` with `$deleteFromPrimitiveList` on + a nonexistent or empty list would add the item to the list diff --git a/releases/release-1.23/release-notes/maps/pr-105424-map.yaml b/releases/release-1.23/release-notes/maps/pr-105424-map.yaml index 8dd640bea66..81dbf13a8a7 100644 --- a/releases/release-1.23/release-notes/maps/pr-105424-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105424-map.yaml @@ -1,6 +1,6 @@ -pr: 105424 -releasenote: - text: The legacy scheduler policy config is removed in v1.23, the associated flags - `policy-config-file`, `policy-configmap`, `policy-configmap-namespace` and `use-legacy-policy-config` - are also removed. Migrate to Component Config instead, see https://kubernetes.io/docs/reference/scheduling/config/ - for details. +pr: 105424 +releasenote: + text: The legacy scheduler policy config is removed in v1.23, the associated flags + `policy-config-file`, `policy-configmap`, `policy-configmap-namespace` and `use-legacy-policy-config` + are also removed. Migrate to Component Config instead, see https://kubernetes.io/docs/reference/scheduling/config/ + for details. diff --git a/releases/release-1.23/release-notes/maps/pr-105445-map.yaml b/releases/release-1.23/release-notes/maps/pr-105445-map.yaml index 08d7112d6b9..2769452e112 100644 --- a/releases/release-1.23/release-notes/maps/pr-105445-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105445-map.yaml @@ -1,3 +1,3 @@ -pr: 105445 -releasenote: - text: Change `kubectl diff --invalid-arg` status code from 1 to 2 to match docs +pr: 105445 +releasenote: + text: Change `kubectl diff --invalid-arg` status code from 1 to 2 to match docs diff --git a/releases/release-1.23/release-notes/maps/pr-105462-map.yaml b/releases/release-1.23/release-notes/maps/pr-105462-map.yaml index cb97459f78b..6abaddabfa6 100644 --- a/releases/release-1.23/release-notes/maps/pr-105462-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105462-map.yaml @@ -1,3 +1,3 @@ -pr: 105462 -releasenote: - text: Evicted and other terminated Pods will no longer revert to the `Running` phase. +pr: 105462 +releasenote: + text: Evicted and other terminated Pods will no longer revert to the `Running` phase. diff --git a/releases/release-1.23/release-notes/maps/pr-105466-map.yaml b/releases/release-1.23/release-notes/maps/pr-105466-map.yaml index 66079eb517e..33b2ec69856 100644 --- a/releases/release-1.23/release-notes/maps/pr-105466-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105466-map.yaml @@ -1,3 +1,3 @@ -pr: 105466 -releasenote: - text: 'apimachinery: Pretty printed JSON and YAML output is now indented consistently.' +pr: 105466 +releasenote: + text: 'apimachinery: Pretty printed JSON and YAML output is now indented consistently.' diff --git a/releases/release-1.23/release-notes/maps/pr-105474-map.yaml b/releases/release-1.23/release-notes/maps/pr-105474-map.yaml index 62d4c5ac551..ce01b078c9c 100644 --- a/releases/release-1.23/release-notes/maps/pr-105474-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105474-map.yaml @@ -1,4 +1,4 @@ -pr: 105474 -releasenote: - text: Feature-gate `VolumeSubpath` has been deprecated and cannot be disabled. It - will be completely removed in 1.25 +pr: 105474 +releasenote: + text: Feature-gate `VolumeSubpath` has been deprecated and cannot be disabled. It + will be completely removed in 1.25 diff --git a/releases/release-1.23/release-notes/maps/pr-105479-map.yaml b/releases/release-1.23/release-notes/maps/pr-105479-map.yaml index 060e89aca12..133d09ec295 100644 --- a/releases/release-1.23/release-notes/maps/pr-105479-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105479-map.yaml @@ -1,4 +1,4 @@ -pr: 105479 -releasenote: - text: Node affinity, Node selectors, and tolerations are now mutable for Jobs that - are suspended and have never been started +pr: 105479 +releasenote: + text: Node affinity, Node selectors, and tolerations are now mutable for Jobs that + are suspended and have never been started diff --git a/releases/release-1.23/release-notes/maps/pr-105484-map.yaml b/releases/release-1.23/release-notes/maps/pr-105484-map.yaml index cc612bbc0c6..eb90b611f89 100644 --- a/releases/release-1.23/release-notes/maps/pr-105484-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105484-map.yaml @@ -1,3 +1,3 @@ -pr: 105484 -releasenote: - text: Fixed architecture within manifest for non `amd64` etcd images. +pr: 105484 +releasenote: + text: Fixed architecture within manifest for non `amd64` etcd images. diff --git a/releases/release-1.23/release-notes/maps/pr-105490-map.yaml b/releases/release-1.23/release-notes/maps/pr-105490-map.yaml index 637bc19b064..8717c45886b 100644 --- a/releases/release-1.23/release-notes/maps/pr-105490-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105490-map.yaml @@ -1,4 +1,4 @@ -pr: 105490 -releasenote: - text: client-go uses the same HTTP client for all the generated groups and versions, - allowing to share customized transports for multiple groups versions. +pr: 105490 +releasenote: + text: client-go uses the same HTTP client for all the generated groups and versions, + allowing to share customized transports for multiple groups versions. diff --git a/releases/release-1.23/release-notes/maps/pr-105495-map.yaml b/releases/release-1.23/release-notes/maps/pr-105495-map.yaml index edcb5e240fa..25f18c9d48f 100644 --- a/releases/release-1.23/release-notes/maps/pr-105495-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105495-map.yaml @@ -1,4 +1,4 @@ -pr: 105495 -releasenote: - text: Feature gate `StorageObjectInUseProtection` has been deprecated and cannot - be disabled. It will be completely removed in 1.25 +pr: 105495 +releasenote: + text: Feature gate `StorageObjectInUseProtection` has been deprecated and cannot + be disabled. It will be completely removed in 1.25 diff --git a/releases/release-1.23/release-notes/maps/pr-105511-map.yaml b/releases/release-1.23/release-notes/maps/pr-105511-map.yaml index 35527d574b8..110f1ab791f 100644 --- a/releases/release-1.23/release-notes/maps/pr-105511-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105511-map.yaml @@ -1,5 +1,5 @@ -pr: 105511 -releasenote: - text: Watch requests that are delegated to aggregated API servers no longer reserve - concurrency units (seats) in the API Priority and Fairness dispatcher for their - entire duration. +pr: 105511 +releasenote: + text: Watch requests that are delegated to aggregated API servers no longer reserve + concurrency units (seats) in the API Priority and Fairness dispatcher for their + entire duration. diff --git a/releases/release-1.23/release-notes/maps/pr-105563-map.yaml b/releases/release-1.23/release-notes/maps/pr-105563-map.yaml index 779950ef48a..1d3997cced1 100644 --- a/releases/release-1.23/release-notes/maps/pr-105563-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105563-map.yaml @@ -1,3 +1,3 @@ -pr: 105563 -releasenote: - text: Kubernetes is now built with Golang 1.17.2 +pr: 105563 +releasenote: + text: Kubernetes is now built with Golang 1.17.2 diff --git a/releases/release-1.23/release-notes/maps/pr-105569-map.yaml b/releases/release-1.23/release-notes/maps/pr-105569-map.yaml index c054d339dad..1ab36783b7e 100644 --- a/releases/release-1.23/release-notes/maps/pr-105569-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105569-map.yaml @@ -1,4 +1,4 @@ -pr: 105569 -releasenote: - text: kubelet did not report `kubelet_volume_stats_*` metrics for Generic Ephemeral - Volumes. +pr: 105569 +releasenote: + text: kubelet did not report `kubelet_volume_stats_*` metrics for Generic Ephemeral + Volumes. diff --git a/releases/release-1.23/release-notes/maps/pr-105606-map.yaml b/releases/release-1.23/release-notes/maps/pr-105606-map.yaml index 8c2d256353a..2df00f8408d 100644 --- a/releases/release-1.23/release-notes/maps/pr-105606-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105606-map.yaml @@ -1,3 +1,3 @@ -pr: 105606 -releasenote: - text: 'kube-apiserver: fix a memory leak when deleting multiple objects with a `deletecollection`.' +pr: 105606 +releasenote: + text: 'kube-apiserver: fix a memory leak when deleting multiple objects with a `deletecollection`.' diff --git a/releases/release-1.23/release-notes/maps/pr-105609-map.yaml b/releases/release-1.23/release-notes/maps/pr-105609-map.yaml index d5ca797517c..25edc8d7bf7 100644 --- a/releases/release-1.23/release-notes/maps/pr-105609-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105609-map.yaml @@ -1,4 +1,4 @@ -pr: 105609 -releasenote: - text: The "Generic Ephemeral Volume" feature graduates to GA. It is now enabled - unconditionally. +pr: 105609 +releasenote: + text: The "Generic Ephemeral Volume" feature graduates to GA. It is now enabled + unconditionally. diff --git a/releases/release-1.23/release-notes/maps/pr-105631-map.yaml b/releases/release-1.23/release-notes/maps/pr-105631-map.yaml index a4407e111c6..c98ec303081 100644 --- a/releases/release-1.23/release-notes/maps/pr-105631-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105631-map.yaml @@ -1,6 +1,6 @@ -pr: 105631 -releasenote: - text: Add a new `distribute-cpus-across-numa` option to the static `CPUManager` - policy. When enabled, this will trigger the `CPUManager` to evenly distribute - CPUs across NUMA nodes in cases where more than one NUMA node is required to satisfy - the allocation. +pr: 105631 +releasenote: + text: Add a new `distribute-cpus-across-numa` option to the static `CPUManager` + policy. When enabled, this will trigger the `CPUManager` to evenly distribute + CPUs across NUMA nodes in cases where more than one NUMA node is required to satisfy + the allocation. diff --git a/releases/release-1.23/release-notes/maps/pr-105649-map.yaml b/releases/release-1.23/release-notes/maps/pr-105649-map.yaml index 35e62346814..a600b461612 100644 --- a/releases/release-1.23/release-notes/maps/pr-105649-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105649-map.yaml @@ -1,4 +1,4 @@ -pr: 105649 -releasenote: - text: 'kubeadm: do not allow empty `--config` paths to be passed to `kubeadm kubeconfig - user`' +pr: 105649 +releasenote: + text: 'kubeadm: do not allow empty `--config` paths to be passed to `kubeadm kubeconfig + user`' diff --git a/releases/release-1.23/release-notes/maps/pr-105666-map.yaml b/releases/release-1.23/release-notes/maps/pr-105666-map.yaml index ff2a23eb20d..3ba6dffe734 100644 --- a/releases/release-1.23/release-notes/maps/pr-105666-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105666-map.yaml @@ -1,3 +1,3 @@ -pr: 105666 -releasenote: - text: 'Fix: skip `instance not found` when decoupling VMSSs from LB' +pr: 105666 +releasenote: + text: 'Fix: skip `instance not found` when decoupling VMSSs from LB' diff --git a/releases/release-1.23/release-notes/maps/pr-105673-map.yaml b/releases/release-1.23/release-notes/maps/pr-105673-map.yaml index f4bcf409e5c..9ebe03a2206 100644 --- a/releases/release-1.23/release-notes/maps/pr-105673-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105673-map.yaml @@ -1,3 +1,3 @@ -pr: 105673 -releasenote: - text: Support more than 100 disk mounts on Windows +pr: 105673 +releasenote: + text: Support more than 100 disk mounts on Windows diff --git a/releases/release-1.23/release-notes/maps/pr-105676-map.yaml b/releases/release-1.23/release-notes/maps/pr-105676-map.yaml index 9c3697a3f8c..2e368b541e1 100644 --- a/releases/release-1.23/release-notes/maps/pr-105676-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105676-map.yaml @@ -1,3 +1,3 @@ -pr: 105676 -releasenote: - text: Fix pod name of NonIndexed Jobs to not include rogue `-1` substring +pr: 105676 +releasenote: + text: Fix pod name of NonIndexed Jobs to not include rogue `-1` substring diff --git a/releases/release-1.23/release-notes/maps/pr-105682-map.yaml b/releases/release-1.23/release-notes/maps/pr-105682-map.yaml index 6f6f3479190..5fc06e0d399 100644 --- a/releases/release-1.23/release-notes/maps/pr-105682-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105682-map.yaml @@ -1,3 +1,3 @@ -pr: 105682 -releasenote: - text: Be able to create a Pod with Generic Ephemeral Volumes as raw block devices. +pr: 105682 +releasenote: + text: Be able to create a Pod with Generic Ephemeral Volumes as raw block devices. diff --git a/releases/release-1.23/release-notes/maps/pr-105687-map.yaml b/releases/release-1.23/release-notes/maps/pr-105687-map.yaml index 82b32bb486c..2417934e8c4 100644 --- a/releases/release-1.23/release-notes/maps/pr-105687-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105687-map.yaml @@ -1,3 +1,3 @@ -pr: 105687 -releasenote: - text: JobTrackingWithFinalizers graduates to beta. Feature is enabled by default. +pr: 105687 +releasenote: + text: JobTrackingWithFinalizers graduates to beta. Feature is enabled by default. diff --git a/releases/release-1.23/release-notes/maps/pr-105711-map.yaml b/releases/release-1.23/release-notes/maps/pr-105711-map.yaml index a1b6c07d083..dbb43f1c0ad 100644 --- a/releases/release-1.23/release-notes/maps/pr-105711-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105711-map.yaml @@ -1,5 +1,5 @@ -pr: 105711 -releasenote: - text: Shell completion now knows to continue suggesting resource names when the - command supports it. For example `kubectl get pod pod1 <TAB>` will suggest more - Pod names. +pr: 105711 +releasenote: + text: Shell completion now knows to continue suggesting resource names when the + command supports it. For example `kubectl get pod pod1 <TAB>` will suggest more + Pod names. diff --git a/releases/release-1.23/release-notes/maps/pr-105712-map.yaml b/releases/release-1.23/release-notes/maps/pr-105712-map.yaml index 64b0fd9970f..9bb36c65534 100644 --- a/releases/release-1.23/release-notes/maps/pr-105712-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105712-map.yaml @@ -1,3 +1,3 @@ -pr: 105712 -releasenote: - text: The `--leader-elect*` CLI args are now honored in the scheduler. +pr: 105712 +releasenote: + text: The `--leader-elect*` CLI args are now honored in the scheduler. diff --git a/releases/release-1.23/release-notes/maps/pr-105734-map.yaml b/releases/release-1.23/release-notes/maps/pr-105734-map.yaml index 792627034dd..3a64d291e95 100644 --- a/releases/release-1.23/release-notes/maps/pr-105734-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105734-map.yaml @@ -1,3 +1,3 @@ -pr: 105734 -releasenote: - text: Fixed concurrent map access causing panics when logging timed-out API calls. +pr: 105734 +releasenote: + text: Fixed concurrent map access causing panics when logging timed-out API calls. diff --git a/releases/release-1.23/release-notes/maps/pr-105773-map.yaml b/releases/release-1.23/release-notes/maps/pr-105773-map.yaml index 4e9ca6e729d..af874349273 100644 --- a/releases/release-1.23/release-notes/maps/pr-105773-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105773-map.yaml @@ -1,4 +1,4 @@ -pr: 105773 -releasenote: - text: Ensures that volume is deleted from the storage backend when the user tries - to delete the PV object manually and the PV `ReclaimPolicy` is set to `Delete`. +pr: 105773 +releasenote: + text: Ensures that volume is deleted from the storage backend when the user tries + to delete the PV object manually and the PV `ReclaimPolicy` is set to `Delete`. diff --git a/releases/release-1.23/release-notes/maps/pr-105776-map.yaml b/releases/release-1.23/release-notes/maps/pr-105776-map.yaml index 99a955f54f6..58d4ff8cbb9 100644 --- a/releases/release-1.23/release-notes/maps/pr-105776-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105776-map.yaml @@ -1,3 +1,3 @@ -pr: 105776 -releasenote: - text: Added ability for `kubectl wait` to wait on arbitary JSON path +pr: 105776 +releasenote: + text: Added ability for `kubectl wait` to wait on arbitary JSON path diff --git a/releases/release-1.23/release-notes/maps/pr-105777-map.yaml b/releases/release-1.23/release-notes/maps/pr-105777-map.yaml index 6fe56780641..666fef9f893 100644 --- a/releases/release-1.23/release-notes/maps/pr-105777-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105777-map.yaml @@ -1,3 +1,3 @@ -pr: 105777 -releasenote: - text: 'Fix: do not try to delete a LoadBalancer that does not exist' +pr: 105777 +releasenote: + text: 'Fix: do not try to delete a LoadBalancer that does not exist' diff --git a/releases/release-1.23/release-notes/maps/pr-105794-map.yaml b/releases/release-1.23/release-notes/maps/pr-105794-map.yaml index 8aed5862882..d0b06d4dd35 100644 --- a/releases/release-1.23/release-notes/maps/pr-105794-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105794-map.yaml @@ -1,4 +1,4 @@ -pr: 105794 -releasenote: - text: Adds `--as-uid` flag to `kubectl` to allow uid impersonation in the same way - as user and group impersonation. +pr: 105794 +releasenote: + text: Adds `--as-uid` flag to `kubectl` to allow uid impersonation in the same way + as user and group impersonation. diff --git a/releases/release-1.23/release-notes/maps/pr-105839-map.yaml b/releases/release-1.23/release-notes/maps/pr-105839-map.yaml index 102cbda29a0..cc377930e35 100644 --- a/releases/release-1.23/release-notes/maps/pr-105839-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105839-map.yaml @@ -1,3 +1,3 @@ -pr: 105839 -releasenote: - text: 'fix: remove VMSS and VMSS instances from SLB backend pool only when necessary' +pr: 105839 +releasenote: + text: 'fix: remove VMSS and VMSS instances from SLB backend pool only when necessary' diff --git a/releases/release-1.23/release-notes/maps/pr-105845-map.yaml b/releases/release-1.23/release-notes/maps/pr-105845-map.yaml index 9a0ab072aed..2de3bc7a7f2 100644 --- a/releases/release-1.23/release-notes/maps/pr-105845-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105845-map.yaml @@ -1,4 +1,4 @@ -pr: 105845 -releasenote: - text: Fix scoring for `NodeResourcesBalancedAllocation` plugins when nodes have - containers with no requests. +pr: 105845 +releasenote: + text: Fix scoring for `NodeResourcesBalancedAllocation` plugins when nodes have + containers with no requests. diff --git a/releases/release-1.23/release-notes/maps/pr-105851-map.yaml b/releases/release-1.23/release-notes/maps/pr-105851-map.yaml index b3bc8eb511f..be1d0bca290 100644 --- a/releases/release-1.23/release-notes/maps/pr-105851-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105851-map.yaml @@ -1,3 +1,3 @@ -pr: 105851 -releasenote: - text: kubectl will now provide shell completion choices for the `--output/-o` flag +pr: 105851 +releasenote: + text: kubectl will now provide shell completion choices for the `--output/-o` flag diff --git a/releases/release-1.23/release-notes/maps/pr-105855-map.yaml b/releases/release-1.23/release-notes/maps/pr-105855-map.yaml index a95a49d08ff..38f5770a263 100644 --- a/releases/release-1.23/release-notes/maps/pr-105855-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105855-map.yaml @@ -1,5 +1,5 @@ -pr: 105855 -releasenote: - text: Migrated `cmd/kube-scheduler/app/server.go`, `pkg/scheduler/framework/plugins/nodelabel/node_label.go`, - `pkg/scheduler/framework/plugins/nodevolumelimits/csi.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/non_csi.go` - to structured logging +pr: 105855 +releasenote: + text: Migrated `cmd/kube-scheduler/app/server.go`, `pkg/scheduler/framework/plugins/nodelabel/node_label.go`, + `pkg/scheduler/framework/plugins/nodevolumelimits/csi.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/non_csi.go` + to structured logging diff --git a/releases/release-1.23/release-notes/maps/pr-105857-map.yaml b/releases/release-1.23/release-notes/maps/pr-105857-map.yaml index d0bed9a78d7..2f607bd0488 100644 --- a/releases/release-1.23/release-notes/maps/pr-105857-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105857-map.yaml @@ -1,5 +1,5 @@ -pr: 105857 -releasenote: - text: 'PodSecurity: in 1.23+ restricted policy levels, Pods and containers which - set `runAsUser=0` are forbidden at admission-time; previously, they would be rejected - at runtime' +pr: 105857 +releasenote: + text: 'PodSecurity: in 1.23+ restricted policy levels, Pods and containers which + set `runAsUser=0` are forbidden at admission-time; previously, they would be rejected + at runtime' diff --git a/releases/release-1.23/release-notes/maps/pr-105885-map.yaml b/releases/release-1.23/release-notes/maps/pr-105885-map.yaml index 2e24516e9bb..37bfdfc1480 100644 --- a/releases/release-1.23/release-notes/maps/pr-105885-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105885-map.yaml @@ -1,4 +1,4 @@ -pr: 105885 -releasenote: - text: Move `ConfigurableFSGroupPolicy` to GA and rename metric `volume_fsgroup_recursive_apply` - to `volume_apply_access_control` +pr: 105885 +releasenote: + text: Move `ConfigurableFSGroupPolicy` to GA and rename metric `volume_fsgroup_recursive_apply` + to `volume_apply_access_control` diff --git a/releases/release-1.23/release-notes/maps/pr-105888-map.yaml b/releases/release-1.23/release-notes/maps/pr-105888-map.yaml index 0792121d2f0..d4352f9822f 100644 --- a/releases/release-1.23/release-notes/maps/pr-105888-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105888-map.yaml @@ -1,4 +1,4 @@ -pr: 105888 -releasenote: - text: 'kubeadm: remove the deprecated / NO-OP phase `update-cluster-status` in `kubeadm - reset`' +pr: 105888 +releasenote: + text: 'kubeadm: remove the deprecated / NO-OP phase `update-cluster-status` in `kubeadm + reset`' diff --git a/releases/release-1.23/release-notes/maps/pr-105896-map.yaml b/releases/release-1.23/release-notes/maps/pr-105896-map.yaml index 8f8efeec83f..d44d4270f5f 100644 --- a/releases/release-1.23/release-notes/maps/pr-105896-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105896-map.yaml @@ -1,3 +1,3 @@ -pr: 105896 -releasenote: - text: Support using negative array index in JSON patch replace operations. +pr: 105896 +releasenote: + text: Support using negative array index in JSON patch replace operations. diff --git a/releases/release-1.23/release-notes/maps/pr-105898-map.yaml b/releases/release-1.23/release-notes/maps/pr-105898-map.yaml index ebeb2b8364e..82a99371d1d 100644 --- a/releases/release-1.23/release-notes/maps/pr-105898-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105898-map.yaml @@ -1,4 +1,4 @@ -pr: 105898 -releasenote: - text: 'Add Pod Security admission metrics: `pod_security_evaluations_total`, `pod_security_exemptions_total`, - `pod_security_errors_total`' +pr: 105898 +releasenote: + text: 'Add Pod Security admission metrics: `pod_security_evaluations_total`, `pod_security_exemptions_total`, + `pod_security_errors_total`' diff --git a/releases/release-1.23/release-notes/maps/pr-105908-map.yaml b/releases/release-1.23/release-notes/maps/pr-105908-map.yaml index 9f2a420d5e3..caa977a45ea 100644 --- a/releases/release-1.23/release-notes/maps/pr-105908-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105908-map.yaml @@ -1,8 +1,8 @@ -pr: 105908 -releasenote: - text: |- - The Pods and Pod controllers that are exempted from the PodSecurity admission process are now marked with the `pod-security.kubernetes.io/exempt: user/namespace/runtimeClass` annotation, based on what caused the exemption. - - The enforcement level that allowed or denied a Pod during PodSecurity admission is now marked by the `pod-security.kubernetes.io/enforce-policy` annotation. - - The annotation that informs about audit policy violations changed from `pod-security.kubernetes.io/audit` to `pod-security.kubernetes.io/audit-violation`. +pr: 105908 +releasenote: + text: |- + The Pods and Pod controllers that are exempted from the PodSecurity admission process are now marked with the `pod-security.kubernetes.io/exempt: user/namespace/runtimeClass` annotation, based on what caused the exemption. + + The enforcement level that allowed or denied a Pod during PodSecurity admission is now marked by the `pod-security.kubernetes.io/enforce-policy` annotation. + + The annotation that informs about audit policy violations changed from `pod-security.kubernetes.io/audit` to `pod-security.kubernetes.io/audit-violation`. diff --git a/releases/release-1.23/release-notes/maps/pr-105913-map.yaml b/releases/release-1.23/release-notes/maps/pr-105913-map.yaml index d0d5fe50a23..9094ff27a77 100644 --- a/releases/release-1.23/release-notes/maps/pr-105913-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105913-map.yaml @@ -1,3 +1,3 @@ -pr: 105913 -releasenote: - text: The `pods/binding` subresource now honors `metadata.uid` and `metadata.resourceVersion` +pr: 105913 +releasenote: + text: The `pods/binding` subresource now honors `metadata.uid` and `metadata.resourceVersion` diff --git a/releases/release-1.23/release-notes/maps/pr-105915-map.yaml b/releases/release-1.23/release-notes/maps/pr-105915-map.yaml index 98c97457a1a..771fe6111c7 100644 --- a/releases/release-1.23/release-notes/maps/pr-105915-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105915-map.yaml @@ -1,3 +1,3 @@ -pr: 105915 -releasenote: - text: The `--leader-elect*` CLI args are now honored in scheduler. +pr: 105915 +releasenote: + text: The `--leader-elect*` CLI args are now honored in scheduler. diff --git a/releases/release-1.23/release-notes/maps/pr-105916-map.yaml b/releases/release-1.23/release-notes/maps/pr-105916-map.yaml index 4bbc2a34b5a..47390b45a91 100644 --- a/releases/release-1.23/release-notes/maps/pr-105916-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105916-map.yaml @@ -1,3 +1,3 @@ -pr: 105916 -releasenote: - text: Performs strict server side schema validation requests via the `fieldValidation=[Strict,Warn,Ignore]`. +pr: 105916 +releasenote: + text: Performs strict server side schema validation requests via the `fieldValidation=[Strict,Warn,Ignore]`. diff --git a/releases/release-1.23/release-notes/maps/pr-105931-map.yaml b/releases/release-1.23/release-notes/maps/pr-105931-map.yaml index be68b770d15..e37fbca7cc6 100644 --- a/releases/release-1.23/release-notes/maps/pr-105931-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105931-map.yaml @@ -1,4 +1,4 @@ -pr: 105931 -releasenote: - text: Migrate `pkg/scheduler/framework/plugins/interpodaffinity/filtering.go`,`pkg/scheduler/framework/plugins/podtopologyspread/filtering.go`, - `pkg/scheduler/framework/plugins/volumezone/volume_zone.go` to structured logging +pr: 105931 +releasenote: + text: Migrate `pkg/scheduler/framework/plugins/interpodaffinity/filtering.go`,`pkg/scheduler/framework/plugins/podtopologyspread/filtering.go`, + `pkg/scheduler/framework/plugins/volumezone/volume_zone.go` to structured logging diff --git a/releases/release-1.23/release-notes/maps/pr-105940-map.yaml b/releases/release-1.23/release-notes/maps/pr-105940-map.yaml index 14b471b350f..2856f52f156 100644 --- a/releases/release-1.23/release-notes/maps/pr-105940-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105940-map.yaml @@ -1,3 +1,3 @@ -pr: 105940 -releasenote: - text: The `CSIVolumeFSGroupPolicy` feature has moved from beta to GA. +pr: 105940 +releasenote: + text: The `CSIVolumeFSGroupPolicy` feature has moved from beta to GA. diff --git a/releases/release-1.23/release-notes/maps/pr-105945-map.yaml b/releases/release-1.23/release-notes/maps/pr-105945-map.yaml index d6e5e053acf..ec085eba3af 100644 --- a/releases/release-1.23/release-notes/maps/pr-105945-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105945-map.yaml @@ -1,4 +1,4 @@ -pr: 105945 -releasenote: - text: The `/openapi/v3` endpoint will be populated with OpenAPI v3 if the feature - flag is enabled +pr: 105945 +releasenote: + text: The `/openapi/v3` endpoint will be populated with OpenAPI v3 if the feature + flag is enabled diff --git a/releases/release-1.23/release-notes/maps/pr-105980-map.yaml b/releases/release-1.23/release-notes/maps/pr-105980-map.yaml index 3de84a27c67..eeac330695d 100644 --- a/releases/release-1.23/release-notes/maps/pr-105980-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105980-map.yaml @@ -1,4 +1,4 @@ -pr: 105980 -releasenote: - text: Pod template annotations and labels are now mutable for Jobs that are suspended - and have never been started +pr: 105980 +releasenote: + text: Pod template annotations and labels are now mutable for Jobs that are suspended + and have never been started diff --git a/releases/release-1.23/release-notes/maps/pr-105999-map.yaml b/releases/release-1.23/release-notes/maps/pr-105999-map.yaml index a53f077250b..1e179239bb0 100644 --- a/releases/release-1.23/release-notes/maps/pr-105999-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-105999-map.yaml @@ -1,3 +1,3 @@ -pr: 105999 -releasenote: - text: Support to enable Hyper-V in GCE Windows Nodes created with `kube-up` +pr: 105999 +releasenote: + text: Support to enable Hyper-V in GCE Windows Nodes created with `kube-up` diff --git a/releases/release-1.23/release-notes/maps/pr-106058-map.yaml b/releases/release-1.23/release-notes/maps/pr-106058-map.yaml index b3925c8a055..85e761e89c0 100644 --- a/releases/release-1.23/release-notes/maps/pr-106058-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106058-map.yaml @@ -1,3 +1,3 @@ -pr: 106058 -releasenote: - text: Moving `WindowsHostProcessContainers` feature to beta +pr: 106058 +releasenote: + text: Moving `WindowsHostProcessContainers` feature to beta diff --git a/releases/release-1.23/release-notes/maps/pr-106089-map.yaml b/releases/release-1.23/release-notes/maps/pr-106089-map.yaml index acd5fb219cb..4f14a256abd 100644 --- a/releases/release-1.23/release-notes/maps/pr-106089-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106089-map.yaml @@ -1,6 +1,6 @@ -pr: 106089 -releasenote: - text: The `PodSecurity `admission plugin has graduated to `beta` and is enabled - by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1beta1`. - See https://kubernetes.io/docs/concepts/security/pod-security-admission/ for usage - guidelines. +pr: 106089 +releasenote: + text: The `PodSecurity `admission plugin has graduated to `beta` and is enabled + by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1beta1`. + See https://kubernetes.io/docs/concepts/security/pod-security-admission/ for usage + guidelines. diff --git a/releases/release-1.23/release-notes/maps/pr-106098-map.yaml b/releases/release-1.23/release-notes/maps/pr-106098-map.yaml index 74cd40be400..133e800400c 100644 --- a/releases/release-1.23/release-notes/maps/pr-106098-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106098-map.yaml @@ -1,4 +1,4 @@ -pr: 106098 -releasenote: - text: Changed feature `CSIMigrationAWS` to on by default. This feature requires - the AWS EBS CSI driver to be installed. +pr: 106098 +releasenote: + text: Changed feature `CSIMigrationAWS` to on by default. This feature requires + the AWS EBS CSI driver to be installed. diff --git a/releases/release-1.23/release-notes/maps/pr-106219-map.yaml b/releases/release-1.23/release-notes/maps/pr-106219-map.yaml index c49e711c3db..7c920f6358d 100644 --- a/releases/release-1.23/release-notes/maps/pr-106219-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106219-map.yaml @@ -1,3 +1,3 @@ -pr: 106219 -releasenote: - text: The `kubectl describe namespace` now shows Conditions +pr: 106219 +releasenote: + text: The `kubectl describe namespace` now shows Conditions diff --git a/releases/release-1.23/release-notes/maps/pr-106271-map.yaml b/releases/release-1.23/release-notes/maps/pr-106271-map.yaml index a1163a2bcaf..9263d2d9a3f 100644 --- a/releases/release-1.23/release-notes/maps/pr-106271-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106271-map.yaml @@ -1,3 +1,3 @@ -pr: 106271 -releasenote: - text: The `DownwardAPIHugePages` feature is now enabled by default. +pr: 106271 +releasenote: + text: The `DownwardAPIHugePages` feature is now enabled by default. diff --git a/releases/release-1.23/release-notes/maps/pr-106301-map.yaml b/releases/release-1.23/release-notes/maps/pr-106301-map.yaml index 51e60f78dd8..a0a40ecfd48 100644 --- a/releases/release-1.23/release-notes/maps/pr-106301-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106301-map.yaml @@ -1,4 +1,4 @@ -pr: 106301 -releasenote: - text: The kube-proxy image contains `/go-runner` as a replacement for deprecated - klog flags. +pr: 106301 +releasenote: + text: The kube-proxy image contains `/go-runner` as a replacement for deprecated + klog flags. diff --git a/releases/release-1.23/release-notes/maps/pr-106317-map.yaml b/releases/release-1.23/release-notes/maps/pr-106317-map.yaml index 7139fcd3e97..f9a8ec02e90 100644 --- a/releases/release-1.23/release-notes/maps/pr-106317-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106317-map.yaml @@ -1,3 +1,3 @@ -pr: 106317 -releasenote: - text: Fixed a panic in `kubectl` when creating secrets with an improper output type +pr: 106317 +releasenote: + text: Fixed a panic in `kubectl` when creating secrets with an improper output type diff --git a/releases/release-1.23/release-notes/maps/pr-106501-map.yaml b/releases/release-1.23/release-notes/maps/pr-106501-map.yaml index 2b991da8350..317756d492b 100644 --- a/releases/release-1.23/release-notes/maps/pr-106501-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106501-map.yaml @@ -1,4 +1,4 @@ -pr: 106501 -releasenote: - text: CRI v1 is now the project default. If a container runtime does not support - the v1 API, Kubernetes will fall back to the v1alpha2 implementation. +pr: 106501 +releasenote: + text: CRI v1 is now the project default. If a container runtime does not support + the v1 API, Kubernetes will fall back to the v1alpha2 implementation. diff --git a/releases/release-1.23/release-notes/maps/pr-106507-map.yaml b/releases/release-1.23/release-notes/maps/pr-106507-map.yaml index c6a0bc94677..095e8268e72 100644 --- a/releases/release-1.23/release-notes/maps/pr-106507-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106507-map.yaml @@ -1,4 +1,4 @@ -pr: 106507 -releasenote: - text: The `kube-Proxy` now correctly filters out unready endpoints for Services - with Topology. +pr: 106507 +releasenote: + text: The `kube-Proxy` now correctly filters out unready endpoints for Services + with Topology. diff --git a/releases/release-1.23/release-notes/maps/pr-106510-map.yaml b/releases/release-1.23/release-notes/maps/pr-106510-map.yaml index cc185bfaaa6..bae5588688a 100644 --- a/releases/release-1.23/release-notes/maps/pr-106510-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106510-map.yaml @@ -1,3 +1,3 @@ -pr: 106510 -releasenote: - text: Topology Aware Hints now ignores unready endpoints when assigning hints. +pr: 106510 +releasenote: + text: Topology Aware Hints now ignores unready endpoints when assigning hints. diff --git a/releases/release-1.23/release-notes/maps/pr-106520-map.yaml b/releases/release-1.23/release-notes/maps/pr-106520-map.yaml index a0f9089659d..c0792bf75f4 100644 --- a/releases/release-1.23/release-notes/maps/pr-106520-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106520-map.yaml @@ -1,4 +1,4 @@ -pr: 106520 -releasenote: - text: 'kubelet: the printing of flags at the start of kubelet now uses the final - logging configuration.' +pr: 106520 +releasenote: + text: 'kubelet: the printing of flags at the start of kubelet now uses the final + logging configuration.' diff --git a/releases/release-1.23/release-notes/maps/pr-106661-map.yaml b/releases/release-1.23/release-notes/maps/pr-106661-map.yaml index 8082e7985b6..607f87847b6 100644 --- a/releases/release-1.23/release-notes/maps/pr-106661-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106661-map.yaml @@ -1,4 +1,4 @@ -pr: 106661 -releasenote: - text: 'kube-apiserver: Server Side Apply merge order is reverted to match v1.22 - behavior until `http://issue.k8s.io/104641` is resolved.' +pr: 106661 +releasenote: + text: 'kube-apiserver: Server Side Apply merge order is reverted to match v1.22 + behavior until `http://issue.k8s.io/104641` is resolved.' diff --git a/releases/release-1.23/release-notes/maps/pr-106808-map.yaml b/releases/release-1.23/release-notes/maps/pr-106808-map.yaml index e0eda6c9298..653a70aed4a 100644 --- a/releases/release-1.23/release-notes/maps/pr-106808-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-106808-map.yaml @@ -1,3 +1,3 @@ -pr: 106808 -releasenote: - text: Reverts the CRI API version surfaced by dockershim to `v1alpha2`. +pr: 106808 +releasenote: + text: Reverts the CRI API version surfaced by dockershim to `v1alpha2`. diff --git a/releases/release-1.23/release-notes/maps/pr-92433-map.yaml b/releases/release-1.23/release-notes/maps/pr-92433-map.yaml index 26abf34b10d..e9832733ec6 100644 --- a/releases/release-1.23/release-notes/maps/pr-92433-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-92433-map.yaml @@ -1,3 +1,3 @@ -pr: 92433 -releasenote: - text: The etcd container image now supports Windows. +pr: 92433 +releasenote: + text: The etcd container image now supports Windows. diff --git a/releases/release-1.23/release-notes/maps/pr-92853-map.yaml b/releases/release-1.23/release-notes/maps/pr-92853-map.yaml index 6af166c72dd..d8c2f2416e1 100644 --- a/releases/release-1.23/release-notes/maps/pr-92853-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-92853-map.yaml @@ -1,3 +1,3 @@ -pr: 92853 -releasenote: - text: Add mechanism to load simple sniffer class into fluentd-elasticsearch image +pr: 92853 +releasenote: + text: Add mechanism to load simple sniffer class into fluentd-elasticsearch image diff --git a/releases/release-1.23/release-notes/maps/pr-92989-map.yaml b/releases/release-1.23/release-notes/maps/pr-92989-map.yaml index 8ad10989c39..7b2474e8d84 100644 --- a/releases/release-1.23/release-notes/maps/pr-92989-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-92989-map.yaml @@ -1,3 +1,3 @@ -pr: 92989 -releasenote: - text: Add fish shell completion to kubectl. +pr: 92989 +releasenote: + text: Add fish shell completion to kubectl. diff --git a/releases/release-1.23/release-notes/maps/pr-95128-map.yaml b/releases/release-1.23/release-notes/maps/pr-95128-map.yaml index fe1395d1f7f..4ff9257b1b1 100644 --- a/releases/release-1.23/release-notes/maps/pr-95128-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-95128-map.yaml @@ -1,4 +1,4 @@ -pr: 95128 -releasenote: - text: 'kube-apiserver: requests to node, Service, and Pod `/proxy` subresources - with no additional URL path now only automatically redirect GET and HEAD requests.' +pr: 95128 +releasenote: + text: 'kube-apiserver: requests to node, Service, and Pod `/proxy` subresources + with no additional URL path now only automatically redirect GET and HEAD requests.' diff --git a/releases/release-1.23/release-notes/maps/pr-96345-map.yaml b/releases/release-1.23/release-notes/maps/pr-96345-map.yaml index 44aa6dd74d0..f50e025178e 100644 --- a/releases/release-1.23/release-notes/maps/pr-96345-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-96345-map.yaml @@ -1,8 +1,8 @@ -pr: 96345 -releasenote: - text: |- - controller-manager: the following flags have no effect and would be removed in v1.24: - - `--port` - - `--address` - The insecure port flags `--port` may only be set to 0 now. - Also `metricsBindAddress` and `healthzBindAddress` fields from `kubescheduler.config.k8s.io/v1beta1` are no-op and expected to be empty. Removed in `kubescheduler.config.k8s.io/v1beta2` completely. +pr: 96345 +releasenote: + text: |- + controller-manager: the following flags have no effect and would be removed in v1.24: + - `--port` + - `--address` + The insecure port flags `--port` may only be set to 0 now. + Also `metricsBindAddress` and `healthzBindAddress` fields from `kubescheduler.config.k8s.io/v1beta1` are no-op and expected to be empty. Removed in `kubescheduler.config.k8s.io/v1beta2` completely. diff --git a/releases/release-1.23/release-notes/maps/pr-96684-map.yaml b/releases/release-1.23/release-notes/maps/pr-96684-map.yaml index 77e639b941c..8c362dbccc8 100644 --- a/releases/release-1.23/release-notes/maps/pr-96684-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-96684-map.yaml @@ -1,7 +1,7 @@ -pr: 96684 -releasenote: - text: The `Service.spec.ipFamilyPolicy` field is now *required* in order to create - or update a Service as dual-stack. This is a breaking change from the beta behavior. Previously - the server would try to infer the value of that field from either `ipFamilies` - or `clusterIPs`, but that caused ambiguity on updates. Users who want a dual-stack - Service MUST specify `ipFamilyPolicy` as either "PreferDualStack" or "RequireDualStack". +pr: 96684 +releasenote: + text: The `Service.spec.ipFamilyPolicy` field is now *required* in order to create + or update a Service as dual-stack. This is a breaking change from the beta behavior. Previously + the server would try to infer the value of that field from either `ipFamilies` + or `clusterIPs`, but that caused ambiguity on updates. Users who want a dual-stack + Service MUST specify `ipFamilyPolicy` as either "PreferDualStack" or "RequireDualStack". diff --git a/releases/release-1.23/release-notes/maps/pr-97350-map.yaml b/releases/release-1.23/release-notes/maps/pr-97350-map.yaml index 60a67e0294f..08d6a68875a 100644 --- a/releases/release-1.23/release-notes/maps/pr-97350-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-97350-map.yaml @@ -1,4 +1,4 @@ -pr: 97350 -releasenote: - text: Added a new flag `--append-server-path` to `kubectl proxy` that will automatically - append the kube context server path to each request. +pr: 97350 +releasenote: + text: Added a new flag `--append-server-path` to `kubectl proxy` that will automatically + append the kube context server path to each request. diff --git a/releases/release-1.23/release-notes/maps/pr-97415-map.yaml b/releases/release-1.23/release-notes/maps/pr-97415-map.yaml index b2c8092c150..5832ec72ec3 100644 --- a/releases/release-1.23/release-notes/maps/pr-97415-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-97415-map.yaml @@ -1,3 +1,3 @@ -pr: 97415 -releasenote: - text: PodResources interface was changed, now it returns only isolated CPUs +pr: 97415 +releasenote: + text: PodResources interface was changed, now it returns only isolated CPUs diff --git a/releases/release-1.23/release-notes/maps/pr-98913-map.yaml b/releases/release-1.23/release-notes/maps/pr-98913-map.yaml index 7d26ca84d32..3ecdaad117e 100644 --- a/releases/release-1.23/release-notes/maps/pr-98913-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-98913-map.yaml @@ -1,3 +1,3 @@ -pr: 98913 -releasenote: - text: Update `migratecmd/kube-proxy/app` logs to structured logging. +pr: 98913 +releasenote: + text: Update `migratecmd/kube-proxy/app` logs to structured logging. diff --git a/releases/release-1.23/release-notes/maps/pr-99273-map.yaml b/releases/release-1.23/release-notes/maps/pr-99273-map.yaml index 247040bfd8b..c6668d3503a 100644 --- a/releases/release-1.23/release-notes/maps/pr-99273-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-99273-map.yaml @@ -1,3 +1,3 @@ -pr: 99273 -releasenote: - text: Migrate `pkg/scheduler` to structured logging. +pr: 99273 +releasenote: + text: Migrate `pkg/scheduler` to structured logging. diff --git a/releases/release-1.23/release-notes/maps/pr-99557-map.yaml b/releases/release-1.23/release-notes/maps/pr-99557-map.yaml index 9884f7734f2..b72481fb1ad 100644 --- a/releases/release-1.23/release-notes/maps/pr-99557-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-99557-map.yaml @@ -1,3 +1,3 @@ -pr: 99557 -releasenote: - text: Adds new [alpha] command 'kubectl events' +pr: 99557 +releasenote: + text: Adds new [alpha] command 'kubectl events' diff --git a/releases/release-1.23/release-notes/maps/pr-99728-map.yaml b/releases/release-1.23/release-notes/maps/pr-99728-map.yaml index 49a7f65331b..42317b38abc 100644 --- a/releases/release-1.23/release-notes/maps/pr-99728-map.yaml +++ b/releases/release-1.23/release-notes/maps/pr-99728-map.yaml @@ -1,4 +1,4 @@ -pr: 99728 -releasenote: - text: Added a feature gate `StatefulSetAutoDeletePVC`, which allows PVCs automatically - created for StatefulSet pods to be automatically deleted. +pr: 99728 +releasenote: + text: Added a feature gate `StatefulSetAutoDeletePVC`, which allows PVCs automatically + created for StatefulSet pods to be automatically deleted. diff --git a/releases/release-1.23/release-notes/release-notes-draft.json b/releases/release-1.23/release-notes/release-notes-draft.json index d6b93725ca7..8ae3a139213 100644 --- a/releases/release-1.23/release-notes/release-notes-draft.json +++ b/releases/release-1.23/release-notes/release-notes-draft.json @@ -1,6685 +1,6685 @@ -{ - "100125": { - "commit": "0734820279ccce8c6034d9d122392fe3a0c7535e", - "text": "kube-apiserver: events created via the `events.k8s.io` API group for cluster-scoped objects are now permitted in the default namespace as well for compatibility with events clients and the `v1` API", - "markdown": "Kube-apiserver: events created via the `events.k8s.io` API group for cluster-scoped objects are now permitted in the default namespace as well for compatibility with events clients and the `v1` API ([#100125](https://github.com/kubernetes/kubernetes/pull/100125), [@h4ghhh](https://github.com/h4ghhh))", - "author": "h4ghhh", - "author_url": "https://github.com/h4ghhh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100125", - "pr_number": 100125, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "duplicate": true - }, - "100482": { - "commit": "e414cf764196a3753d7f8063827131fc4c8d771b", - "text": "Handle Generic Ephemeral Volumes properly in the node limits scheduler filter and the kubelet `hostPath` check.", - "markdown": "Handle Generic Ephemeral Volumes properly in the node limits scheduler filter and the kubelet `hostPath` check. ([#100482](https://github.com/kubernetes/kubernetes/pull/100482), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100482", - "pr_number": 100482, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "testing" - ], - "duplicate": true - }, - "100720": { - "commit": "df51e4e63e198331ca4797ac43d3f2c9336f556d", - "text": "Metrics changes: Fix exposed buckets of `scheduler_volume_scheduling_duration_seconds_bucket` metric.", - "markdown": "Metrics changes: Fix exposed buckets of `scheduler_volume_scheduling_duration_seconds_bucket` metric. ([#100720](https://github.com/kubernetes/kubernetes/pull/100720), [@dntosas](https://github.com/dntosas))", - "author": "dntosas", - "author_url": "https://github.com/dntosas", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100720", - "pr_number": 100720, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "storage", - "apps", - "instrumentation" - ], - "duplicate": true - }, - "101081": { - "commit": "8dbc33d649e3e60ac3aa88ff25633baad04242f0", - "text": "Add Kubernetes Events to the `Kubelet Graceful Shutdown` feature.", - "markdown": "Add Kubernetes Events to the `Kubelet Graceful Shutdown` feature. ([#101081](https://github.com/kubernetes/kubernetes/pull/101081), [@rphillips](https://github.com/rphillips))", - "author": "rphillips", - "author_url": "https://github.com/rphillips", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101081", - "pr_number": 101081, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "101257": { - "commit": "938d31e273328bc3982e74efd84be83ddd3698ea", - "text": "Introduce a new server run option 'shutdown-send-retry-after'. If true the HTTP Server will continue listening until all non longrunning request(s) in flight have been drained, during this window all incoming requests will be rejected with a status code `429` and a 'Retry-After' response header.", - "markdown": "Introduce a new server run option 'shutdown-send-retry-after'. If true the HTTP Server will continue listening until all non longrunning request(s) in flight have been drained, during this window all incoming requests will be rejected with a status code `429` and a 'Retry-After' response header. ([#101257](https://github.com/kubernetes/kubernetes/pull/101257), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101257", - "pr_number": 101257, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "101370": { - "commit": "41fdc193ff28218f15bc30f2bdaa07b91a5008bc", - "text": "Create HPA with follow:", - "markdown": "Create HPA with follow: ([#101370](https://github.com/kubernetes/kubernetes/pull/101370), [@RyanAoh](https://github.com/RyanAoh)) [SIG Autoscaling]", - "author": "RyanAoh", - "author_url": "https://github.com/RyanAoh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101370", - "pr_number": 101370, - "kinds": [ - "bug" - ], - "sigs": [ - "autoscaling" - ], - "do_not_publish": true - }, - "101646": { - "commit": "0d997019e9b8e825c75547bbcbb1bab65d9e4bdf", - "text": "Adding support for multiple `--from-env-file` flags.", - "markdown": "Adding support for multiple `--from-env-file` flags. ([#101646](https://github.com/kubernetes/kubernetes/pull/101646), [@lauchokyip](https://github.com/lauchokyip))", - "author": "lauchokyip", - "author_url": "https://github.com/lauchokyip", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101646", - "pr_number": 101646, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "101781": { - "commit": "9c5cefb230241d74340ba530666212300cba8ff8", - "text": "[Errno -2] Name or service not known", - "markdown": "[Errno -2] Name or service not known ([#101781](https://github.com/kubernetes/kubernetes/pull/101781), [@ptabor](https://github.com/ptabor)) [SIG Cloud Provider]", - "author": "ptabor", - "author_url": "https://github.com/ptabor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101781", - "pr_number": 101781, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ], - "do_not_publish": true - }, - "101789": { - "commit": "7ee94f2f4fc4c8e0444ea89ef828eb452d0ba908", - "text": "The `CSIDriver.Spec.StorageCapacity` can now be modified.", - "markdown": "The `CSIDriver.Spec.StorageCapacity` can now be modified. ([#101789](https://github.com/kubernetes/kubernetes/pull/101789), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1472-storage-capacity-tracking", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101789", - "pr_number": 101789, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true, - "duplicate_kind": true - }, - "101928": { - "commit": "8ac95264750ad1d93ec92b58b9956cd8f6a0a738", - "text": "Added a `Processing` condition for the `workqueue` API.\nChanged `Shutdown` for the `workqueue` API to wait until the work queue finishes processing all in-flight items.", - "markdown": "Added a `Processing` condition for the `workqueue` API.\n Changed `Shutdown` for the `workqueue` API to wait until the work queue finishes processing all in-flight items. ([#101928](https://github.com/kubernetes/kubernetes/pull/101928), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101928", - "pr_number": 101928, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true - }, - "102015": { - "commit": "55e1d2f9a73a0c78fc0c266236c3e31261635b90", - "text": "Support allocating whole NUMA nodes in the CPUManager when there is not a 1:1 mapping between socket and NUMA node", - "markdown": "Support allocating whole NUMA nodes in the CPUManager when there is not a 1:1 mapping between socket and NUMA node ([#102015](https://github.com/kubernetes/kubernetes/pull/102015), [@klueska](https://github.com/klueska))", - "author": "klueska", - "author_url": "https://github.com/klueska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102015", - "pr_number": 102015, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "102242": { - "commit": "a48a2efbd45ad77901dd09f2665d8cc1e1d8dbf6", - "text": "Remove 'master' as a valid EgressSelection type in the EgressSelectorConfiguration API.", - "markdown": "Remove 'master' as a valid EgressSelection type in the EgressSelectorConfiguration API. ([#102242](https://github.com/kubernetes/kubernetes/pull/102242), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102242", - "pr_number": 102242, - "areas": [ - "apiserver", - "provider/gcp" - ], - "kinds": [ - "cleanup", - "api-change", - "deprecation" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "102393": { - "commit": "5d60c8d8573f19bab79c571854c677143e7e5056", - "text": "Pod SecurityContext sysctls name parameter for update requests where the existing object's sysctl contains slashes and kubelet sysctl whitelist support contains slashes.", - "markdown": "Pod SecurityContext sysctls name parameter for update requests where the existing object's sysctl contains slashes and kubelet sysctl whitelist support contains slashes. ([#102393](https://github.com/kubernetes/kubernetes/pull/102393), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Apps, Auth, Node, Storage and Testing]", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102393", - "pr_number": 102393, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node", - "auth", - "apps", - "testing" - ], - "duplicate": true - }, - "102507": { - "commit": "542829d30d2e48abb802e4f4499dc63dd8076c3d", - "text": "Introduce a feature gate `DisableKubeletCloudCredentialProviders` which allows disabling the in-tree kubelet credential providers.\n\nThe feature gate `DisableKubeletCloudCredentialProviders` is currently in Alpha, which means is currently disabled by default. Once this feature gate moves to beta, in-tree credential providers will be disabled by default, and users will need to migrate to use external credential providers.", - "markdown": "Introduce a feature gate `DisableKubeletCloudCredentialProviders` which allows disabling the in-tree kubelet credential providers.\n \n The feature gate `DisableKubeletCloudCredentialProviders` is currently in Alpha, which means is currently disabled by default. Once this feature gate moves to beta, in-tree credential providers will be disabled by default, and users will need to migrate to use external credential providers. ([#102507](https://github.com/kubernetes/kubernetes/pull/102507), [@ostrain](https://github.com/ostrain))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2443", - "type": "KEP" - }, - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/1a66671cf0e01ceb19f56bfb563100909cb67867/keps/sig-cloud-provider/2133-out-of-tree-credential-provider", - "type": "KEP" - } - ], - "author": "ostrain", - "author_url": "https://github.com/ostrain", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102507", - "pr_number": 102507, - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "102534": { - "commit": "8e02b788737aec63629e9c9329b064ab96826016", - "text": "Create HPA v2 from v2beta2 with some fields changed.", - "markdown": "Create HPA v2 from v2beta2 with some fields changed. ([#102534](https://github.com/kubernetes/kubernetes/pull/102534), [@wangyysde](https://github.com/wangyysde)) [SIG API Machinery, Apps, Auth, Autoscaling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-autoscaling/2702-graduate-hpa-api-to-GA", - "type": "KEP" - } - ], - "author": "wangyysde", - "author_url": "https://github.com/wangyysde", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102534", - "pr_number": 102534, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "autoscaling", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "102886": { - "commit": "1f8b1b84fbfbf88bf50429b1f5673fd34ae30050", - "text": "Allow node expansion of local volumes.", - "markdown": "Allow node expansion of local volumes. ([#102886](https://github.com/kubernetes/kubernetes/pull/102886), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102886", - "pr_number": 102886, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "testing" - ], - "feature": true, - "duplicate": true - }, - "102915": { - "commit": "91b7fb4dc9f5d98583ee63be51dac7b6c0704b10", - "text": "Support pod priority based node graceful shutdown.", - "markdown": "Support pod priority based node graceful shutdown. ([#102915](https://github.com/kubernetes/kubernetes/pull/102915), [@wzshiming](https://github.com/wzshiming))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2712-pod-priority-based-graceful-node-shutdown", - "type": "KEP" - } - ], - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102915", - "pr_number": 102915, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "102917": { - "commit": "cee4aa09b09298c5d2ecf4ccaed9927f3c176fdf", - "text": "Added show-capacity option to `kubectl top node` to show `Capacity` resource usage", - "markdown": "Added show-capacity option to `kubectl top node` to show `Capacity` resource usage ([#102917](https://github.com/kubernetes/kubernetes/pull/102917), [@bysnupy](https://github.com/bysnupy)) [SIG CLI]", - "author": "bysnupy", - "author_url": "https://github.com/bysnupy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102917", - "pr_number": 102917, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "102945": { - "commit": "9be67806cdecc18a07750eacd796f7885644def1", - "text": "client-go: pass `DeleteOptions` down to the fake client `Reactor`", - "markdown": "Client-go: pass `DeleteOptions` down to the fake client `Reactor` ([#102945](https://github.com/kubernetes/kubernetes/pull/102945), [@chenchun](https://github.com/chenchun))", - "author": "chenchun", - "author_url": "https://github.com/chenchun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102945", - "pr_number": 102945, - "areas": [ - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps" - ], - "feature": true, - "duplicate": true - }, - "102981": { - "commit": "7ab3e3c8c39cc8f4d832fb800cf9db72bd95c733", - "text": "The `kube-controller-manager` supports `--concurrent-ephemeralvolume-syncs` flag to set the number of ephemeral volume controller workers.", - "markdown": "The `kube-controller-manager` supports `--concurrent-ephemeralvolume-syncs` flag to set the number of ephemeral volume controller workers. ([#102981](https://github.com/kubernetes/kubernetes/pull/102981), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102981", - "pr_number": 102981, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "103027": { - "commit": "40c9066054433353fafce208a6cdd286f31f7d26", - "text": "kubeadm: add support for dry running `kubeadm join`. The new flag `kubeadm join --dry-run` is similar to the existing flag for `kubeadm init/upgrade` and allows you to see what changes would be applied.", - "markdown": "Kubeadm: add support for dry running `kubeadm join`. The new flag `kubeadm join --dry-run` is similar to the existing flag for `kubeadm init/upgrade` and allows you to see what changes would be applied. ([#103027](https://github.com/kubernetes/kubernetes/pull/103027), [@Haleygo](https://github.com/Haleygo))", - "author": "Haleygo", - "author_url": "https://github.com/Haleygo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103027", - "pr_number": 103027, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "103095": { - "commit": "33de444861d3de783a6618be9d10fa84da1c11b4", - "text": "Added support for `PodAndContainerStatsFromCRI` feature gate, which allows a user to specify their pod stats must also come from the CRI, not `cAdvisor`.", - "markdown": "Added support for `PodAndContainerStatsFromCRI` feature gate, which allows a user to specify their pod stats must also come from the CRI, not `cAdvisor`. ([#103095](https://github.com/kubernetes/kubernetes/pull/103095), [@haircommander](https://github.com/haircommander))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2371", - "type": "KEP" - } - ], - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103095", - "pr_number": 103095, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "103137": { - "commit": "d7c166355613812feaaf2366fa64e9a2d7ae6550", - "text": "Graceful node shutdown, allow the actual inhibit delay to be greater than the expected inhibit delay.", - "markdown": "Graceful node shutdown, allow the actual inhibit delay to be greater than the expected inhibit delay. ([#103137](https://github.com/kubernetes/kubernetes/pull/103137), [@wzshiming](https://github.com/wzshiming))", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103137", - "pr_number": 103137, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "103162": { - "commit": "d7a06ede70b293d9932925b5430c4df08b3744e3", - "text": "Introduces a new metric: `admission_webhook_request_total` with the following labels: name (string) - the webhook name, type (string) - the admission type, operation (string) - the requested verb, code (int) - the HTTP status code, rejected (bool) - whether the request was rejected, namespace (string) - the namespace of the requested resource.", - "markdown": "Introduces a new metric: `admission_webhook_request_total` with the following labels: name (string) - the webhook name, type (string) - the admission type, operation (string) - the requested verb, code (int) - the HTTP status code, rejected (bool) - whether the request was rejected, namespace (string) - the namespace of the requested resource. ([#103162](https://github.com/kubernetes/kubernetes/pull/103162), [@rmoriar1](https://github.com/rmoriar1))", - "author": "rmoriar1", - "author_url": "https://github.com/rmoriar1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103162", - "pr_number": 103162, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "103172": { - "commit": "fed612c9f8e00cc2d228bbe7afa66f4623085916", - "text": "The deprecated `--experimental-bootstrap-kubeconfig` flag has been removed.\nThis can be set via `--bootstrap-kubeconfig`.", - "markdown": "The deprecated `--experimental-bootstrap-kubeconfig` flag has been removed.\n This can be set via `--bootstrap-kubeconfig`. ([#103172](https://github.com/kubernetes/kubernetes/pull/103172), [@niulechuan](https://github.com/niulechuan))", - "author": "niulechuan", - "author_url": "https://github.com/niulechuan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103172", - "pr_number": 103172, - "areas": [ - "kubelet" - ], - "kinds": [ - "deprecation" - ], - "sigs": [ - "node" - ] - }, - "103174": { - "commit": "16823fceb00fc19bbb15bbefd063bf07d66ee96a", - "text": "Changes behaviour of kube-proxy start; does not attempt to set specific `sysctl` values (which does not work in recent Kernel versions anymore in non-init namespaces), when the current sysctl values are already set higher.", - "markdown": "Changes behaviour of kube-proxy start; does not attempt to set specific `sysctl` values (which does not work in recent Kernel versions anymore in non-init namespaces), when the current sysctl values are already set higher. ([#103174](https://github.com/kubernetes/kubernetes/pull/103174), [@Napsty](https://github.com/Napsty))", - "author": "Napsty", - "author_url": "https://github.com/Napsty", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103174", - "pr_number": 103174, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "103178": { - "commit": "0c9bb963f847debd6abe320035703fc568e0687d", - "text": "Cloud providers can set service account names for cloud controllers.", - "markdown": "Cloud providers can set service account names for cloud controllers. ([#103178](https://github.com/kubernetes/kubernetes/pull/103178), [@nckturner](https://github.com/nckturner))", - "author": "nckturner", - "author_url": "https://github.com/nckturner", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103178", - "pr_number": 103178, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "103231": { - "commit": "d1479ea431cddda2a432dc0edbaa465923d5f5f2", - "text": "Fixed an issue which didn't append OS's environment variables with the one provided in Credential Provider Config file, which may fail execution of external credential provider binary. \nSee https://github.com/kubernetes/kubernetes/issues/102750.", - "markdown": "Fixed an issue which didn't append OS's environment variables with the one provided in Credential Provider Config file, which may fail execution of external credential provider binary. \n See https://github.com/kubernetes/kubernetes/issues/102750. ([#103231](https://github.com/kubernetes/kubernetes/pull/103231), [@n4j](https://github.com/n4j))", - "author": "n4j", - "author_url": "https://github.com/n4j", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103231", - "pr_number": 103231, - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "auth" - ], - "duplicate": true - }, - "103299": { - "commit": "0473cab82327ce51d9ef824d4836c3912c357d05", - "text": "allows users to prevent garbage collection on pinned images", - "markdown": "Allows users to prevent garbage collection on pinned images ([#103299](https://github.com/kubernetes/kubernetes/pull/103299), [@wgahnagl](https://github.com/wgahnagl)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2694", - "type": "KEP" - } - ], - "author": "wgahnagl", - "author_url": "https://github.com/wgahnagl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103299", - "pr_number": 103299, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "103439": { - "commit": "dadecb2c8932fd28de9dfb94edbc7bdac7d0d28f", - "text": "Fixed azure disk translation issue due to lower case `managed` kind.", - "markdown": "Fixed azure disk translation issue due to lower case `managed` kind. ([#103439](https://github.com/kubernetes/kubernetes/pull/103439), [@andyzhangx](https://github.com/andyzhangx))", - "documentation": [ - { - "description": "follow guide", - "url": "https://docs.microsoft.com/en-us/azure/virtual-machines/windows/convert-unmanaged-to-managed-disks", - "type": "external" - } - ], - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103439", - "pr_number": 103439, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "cloud-provider" - ], - "duplicate": true - }, - "103447": { - "commit": "8d9e424f73287eecc4c680f30cf3f95f021ca220", - "text": "Add support for Portworx plugin to csi-translation-lib. Alpha release\n\nPortworx CSI driver is required to enable migration.\nThis PR adds support of the `CSIMigrationPortworx` feature gate, which can be enabled by:\n\n1. Adding the feature flag to the kube-controller-manager `--feature-gates=CSIMigrationPortworx=true` \n2. Adding the feature flag to the kubelet config:\n\nfeatureGates:\n CSIMigrationPortworx: true", - "markdown": "Add support for Portworx plugin to csi-translation-lib. Alpha release\n \n Portworx CSI driver is required to enable migration.\n This PR adds support of the `CSIMigrationPortworx` feature gate, which can be enabled by:\n \n 1. Adding the feature flag to the kube-controller-manager `--feature-gates=CSIMigrationPortworx=true` \n 2. Adding the feature flag to the kubelet config:\n \n featureGates:\n CSIMigrationPortworx: true ([#103447](https://github.com/kubernetes/kubernetes/pull/103447), [@trierra](https://github.com/trierra)) [SIG API Machinery, Apps, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows]", - "author": "trierra", - "author_url": "https://github.com/trierra", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103447", - "pr_number": 103447, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "kubeadm", - "ipvs", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "scalability", - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "apps", - "windows", - "cli", - "instrumentation", - "testing", - "release", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "103515": { - "commit": "3282d6cfdbaa6c935c5eb8192bcec6fdeabcdbe4", - "text": "`kube-scheduler` now logs node and plugin scoring even though --v\u003c10\n- scores of the top 3 plugins in the top 3 nodes are dumped if --v=4,5\n- scores of all plugins in the top 6 nodes are dumped if --v=6,7,8,9", - "markdown": "`kube-scheduler` now logs node and plugin scoring even though --v\u003c10\n - scores of the top 3 plugins in the top 3 nodes are dumped if --v=4,5\n - scores of all plugins in the top 6 nodes are dumped if --v=6,7,8,9 ([#103515](https://github.com/kubernetes/kubernetes/pull/103515), [@muma378](https://github.com/muma378))", - "author": "muma378", - "author_url": "https://github.com/muma378", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103515", - "pr_number": 103515, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "103538": { - "commit": "f1c817614d28ca1127a6217fce9032f37a4eec72", - "text": "The flag `--deployment-controller-sync-period` has been deprecated and will be removed in v1.24.", - "markdown": "The flag `--deployment-controller-sync-period` has been deprecated and will be removed in v1.24. ([#103538](https://github.com/kubernetes/kubernetes/pull/103538), [@Pingan2017](https://github.com/Pingan2017))", - "author": "Pingan2017", - "author_url": "https://github.com/Pingan2017", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103538", - "pr_number": 103538, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ] - }, - "103564": { - "commit": "0a704f9e1f6685f3ae39114435d23593a900e74c", - "text": "Expose a `NewUnstructuredExtractor` from apply configurations `meta/v1` package that enables extracting objects into unstructured apply configurations.", - "markdown": "Expose a `NewUnstructuredExtractor` from apply configurations `meta/v1` package that enables extracting objects into unstructured apply configurations. ([#103564](https://github.com/kubernetes/kubernetes/pull/103564), [@kevindelgado](https://github.com/kevindelgado))", - "author": "kevindelgado", - "author_url": "https://github.com/kevindelgado", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103564", - "pr_number": 103564, - "areas": [ - "test", - "apiserver", - "release-eng", - "kubeadm", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "103654": { - "commit": "a87838481b240652c2dd29ced38a386a33517439", - "text": "The `constants/variables` from k8s.io for STABLE metrics is now supported.", - "markdown": "The `constants/variables` from k8s.io for STABLE metrics is now supported. ([#103654](https://github.com/kubernetes/kubernetes/pull/103654), [@coffeepac](https://github.com/coffeepac))", - "author": "coffeepac", - "author_url": "https://github.com/coffeepac", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103654", - "pr_number": 103654, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "auth", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "103685": { - "commit": "4f50f99cc65ae6b0f2cca21fdf448229c5b22cdf", - "text": "The `ServiceAccountIssuerDiscovery` feature gate is removed. It reached GA in Kubernetes 1.21.", - "markdown": "The `ServiceAccountIssuerDiscovery` feature gate is removed. It reached GA in Kubernetes 1.21. ([#103685](https://github.com/kubernetes/kubernetes/pull/103685), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1393-oidc-discovery", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103685", - "pr_number": 103685, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true - }, - "103692": { - "commit": "c1e69551be1a72f0f8db6778f20658199d3a686d", - "text": "Kubernetes is now built using go 1.17.", - "markdown": "Kubernetes is now built using go 1.17. ([#103692](https://github.com/kubernetes/kubernetes/pull/103692), [@justaugustus](https://github.com/justaugustus))", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103692", - "pr_number": 103692, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "kubeadm", - "code-generation", - "ipvs", - "dependency" - ], - "kinds": [ - "api-change", - "feature", - "failing-test" - ], - "sigs": [ - "network", - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "autoscaling", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "103724": { - "commit": "98e526390da420db6d36c4a0d7203fcde74a1dd8", - "text": "The image `gcr.io/kubernetes-e2e-test-images` will no longer be used in E2E / CI testing, `k8s.gcr.io/e2e-test-images` will be used instead.", - "markdown": "The image `gcr.io/kubernetes-e2e-test-images` will no longer be used in E2E / CI testing, `k8s.gcr.io/e2e-test-images` will be used instead. ([#103724](https://github.com/kubernetes/kubernetes/pull/103724), [@claudiubelu](https://github.com/claudiubelu))", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103724", - "pr_number": 103724, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "103751": { - "commit": "c0c7039f3a114b3d0e24e42efb9e8bf548161ba4", - "text": "Scheduler resource metrics over fractional binary quantities (2.5Gi, 1.1Ki) were incorrectly reported as very small values.", - "markdown": "Scheduler resource metrics over fractional binary quantities (2.5Gi, 1.1Ki) were incorrectly reported as very small values. ([#103751](https://github.com/kubernetes/kubernetes/pull/103751), [@y-tag](https://github.com/y-tag))", - "author": "y-tag", - "author_url": "https://github.com/y-tag", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103751", - "pr_number": 103751, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "api-machinery" - ], - "duplicate": true - }, - "103758": { - "commit": "dec8528abaa58a4c7fc190df2cad8848799f9891", - "text": "Added PowerShell completion generation by running `kubectl completion powershell`.", - "markdown": "Added PowerShell completion generation by running `kubectl completion powershell`. ([#103758](https://github.com/kubernetes/kubernetes/pull/103758), [@zikhan](https://github.com/zikhan))", - "author": "zikhan", - "author_url": "https://github.com/zikhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103758", - "pr_number": 103758, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "103793": { - "commit": "644228091e41cf33c97d576676ea8630c7bb97b1", - "text": "Deprecate `apiserver_longrunning_gauge` and `apiserver_register_watchers` in 1.23.0.", - "markdown": "Deprecate `apiserver_longrunning_gauge` and `apiserver_register_watchers` in 1.23.0. ([#103793](https://github.com/kubernetes/kubernetes/pull/103793), [@yan-lgtm](https://github.com/yan-lgtm))", - "author": "yan-lgtm", - "author_url": "https://github.com/yan-lgtm", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103793", - "pr_number": 103793, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "instrumentation" - ], - "duplicate": true - }, - "103794": { - "commit": "b3027706602546d486b7869998886e7c81317707", - "text": "Provide IPv6 support for internal load balancer.", - "markdown": "Provide IPv6 support for internal load balancer. ([#103794](https://github.com/kubernetes/kubernetes/pull/103794), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103794", - "pr_number": 103794, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "103796": { - "commit": "2dc4f7be17e797a03eaee4577156faf00fd00a13", - "text": "The `AllowInsecureBackendProxy` feature gate is removed. It reached GA in Kubernetes 1.21.", - "markdown": "The `AllowInsecureBackendProxy` feature gate is removed. It reached GA in Kubernetes 1.21. ([#103796](https://github.com/kubernetes/kubernetes/pull/103796), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103796", - "pr_number": 103796, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "103799": { - "commit": "58617e161933277fe362599ce380bebf08cbdacb", - "text": "Added `apiserver_longrunning_requests` metric to replace the soon to be deprecated `apiserver_longrunning_gauge` metric.", - "markdown": "Added `apiserver_longrunning_requests` metric to replace the soon to be deprecated `apiserver_longrunning_gauge` metric. ([#103799](https://github.com/kubernetes/kubernetes/pull/103799), [@jyz0309](https://github.com/jyz0309))", - "author": "jyz0309", - "author_url": "https://github.com/jyz0309", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103799", - "pr_number": 103799, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true - }, - "103801": { - "commit": "8df554bafdf1d8030d459a89111d8a178e537387", - "text": "kubeadm: external etcd endpoints passed in the `ClusterConfiguration` that have Unicode characters are no longer IDNA encoded (converted to Punycode). They are now just URL encoded as per Go's implementation of RFC-3986, have duplicate \"/\" removed from the URL paths, and passed like that directly to the `kube-apiserver` `--etcd-servers` flag. If you have etcd endpoints that have Unicode characters, it is advisable to encode them in advance with tooling that is fully IDNA compliant. If you don't do that, the Go standard library (used in k8s and etcd) would do it for you when making requests to the endpoints.", - "markdown": "Kubeadm: external etcd endpoints passed in the `ClusterConfiguration` that have Unicode characters are no longer IDNA encoded (converted to Punycode). They are now just URL encoded as per Go's implementation of RFC-3986, have duplicate \"/\" removed from the URL paths, and passed like that directly to the `kube-apiserver` `--etcd-servers` flag. If you have etcd endpoints that have Unicode characters, it is advisable to encode them in advance with tooling that is fully IDNA compliant. If you don't do that, the Go standard library (used in k8s and etcd) would do it for you when making requests to the endpoints. ([#103801](https://github.com/kubernetes/kubernetes/pull/103801), [@gkarthiks](https://github.com/gkarthiks))", - "author": "gkarthiks", - "author_url": "https://github.com/gkarthiks", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103801", - "pr_number": 103801, - "areas": [ - "kubeadm", - "dependency", - "code-organization" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "103813": { - "commit": "90ac41bd77d6c5f768ff3a21c072c2ec18ff67b7", - "text": "kubeadm: update references to legacy artifacts locations, the `ci-cross` prefix has been removed from the version match as it does not exist in the new `gs://k8s-release-dev` bucket.", - "markdown": "Kubeadm: update references to legacy artifacts locations, the `ci-cross` prefix has been removed from the version match as it does not exist in the new `gs://k8s-release-dev` bucket. ([#103813](https://github.com/kubernetes/kubernetes/pull/103813), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103813", - "pr_number": 103813, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "103823": { - "commit": "1a9ae3454993b2362503db3efe1d7e48307bf3ff", - "text": "Fix an issue in cleaning up `CertificateSigningRequest` objects with an unparseable `status.certificate` field.", - "markdown": "Fix an issue in cleaning up `CertificateSigningRequest` objects with an unparseable `status.certificate` field. ([#103823](https://github.com/kubernetes/kubernetes/pull/103823), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103823", - "pr_number": 103823, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "apps" - ], - "duplicate": true - }, - "103831": { - "commit": "9b84e473b28f0e63fd27df420791e2089fc09b30", - "text": "Disable aufs module for gce clusters.", - "markdown": "Disable aufs module for gce clusters. ([#103831](https://github.com/kubernetes/kubernetes/pull/103831), [@lizhuqi](https://github.com/lizhuqi))", - "author": "lizhuqi", - "author_url": "https://github.com/lizhuqi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103831", - "pr_number": 103831, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "103843": { - "commit": "488292100207b246bdb658d68742eca3cb11cf4a", - "text": "Update description of `--audit-log-maxbackup` to describe behavior when `value = 0`.", - "markdown": "Update description of `--audit-log-maxbackup` to describe behavior when `value = 0`. ([#103843](https://github.com/kubernetes/kubernetes/pull/103843), [@Arkessler](https://github.com/Arkessler))", - "author": "Arkessler", - "author_url": "https://github.com/Arkessler", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103843", - "pr_number": 103843, - "areas": [ - "apiserver" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "api-machinery" - ] - }, - "103852": { - "commit": "3945e35f1cfac9d489242607ddbba8c74c452ec3", - "text": "Fixed a bug which kubectl would emit duplicate warning messages for flag names that contain an underscore and recommend using a nonexistent flag in some cases.", - "markdown": "Fixed a bug which kubectl would emit duplicate warning messages for flag names that contain an underscore and recommend using a nonexistent flag in some cases. ([#103852](https://github.com/kubernetes/kubernetes/pull/103852), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103852", - "pr_number": 103852, - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle", - "cli" - ], - "duplicate": true - }, - "103875": { - "commit": "ee5df7cbcfffaddece66944a528fccb07430d29a", - "text": "Fixed a regression setting `--audit-log-path=-` to log to stdout in 1.22 pre-release.", - "markdown": "Fixed a regression setting `--audit-log-path=-` to log to stdout in 1.22 pre-release. ([#103875](https://github.com/kubernetes/kubernetes/pull/103875), [@andrewrynhard](https://github.com/andrewrynhard))", - "author": "andrewrynhard", - "author_url": "https://github.com/andrewrynhard", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103875", - "pr_number": 103875, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "duplicate_kind": true - }, - "103894": { - "commit": "6a7a527f8e56323f3615790c0794f01274c74b18", - "text": "Display Labels when kubectl describe ingress.", - "markdown": "Display Labels when kubectl describe ingress. ([#103894](https://github.com/kubernetes/kubernetes/pull/103894), [@kabab](https://github.com/kabab))", - "author": "kabab", - "author_url": "https://github.com/kabab", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103894", - "pr_number": 103894, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "103917": { - "commit": "ec663ada4be14d0afd45e0414b8711d4380ec289", - "text": "Troubleshooting: informers log handlers that take more than 100 milliseconds to process an object if the `DeltaFIFO` queue starts to grow beyond 10 elements.", - "markdown": "Troubleshooting: informers log handlers that take more than 100 milliseconds to process an object if the `DeltaFIFO` queue starts to grow beyond 10 elements. ([#103917](https://github.com/kubernetes/kubernetes/pull/103917), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103917", - "pr_number": 103917, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "103918": { - "commit": "582c6f6df71d8c59de5b8b5a2363d13ffcc42b14", - "text": "`client-go` event library allows customizing spam filtering function. \nIt is now possible to override `SpamKeyFunc`, which is used by event filtering to detect spam in the events.", - "markdown": "`client-go` event library allows customizing spam filtering function. \n It is now possible to override `SpamKeyFunc`, which is used by event filtering to detect spam in the events. ([#103918](https://github.com/kubernetes/kubernetes/pull/103918), [@olagacek](https://github.com/olagacek))", - "author": "olagacek", - "author_url": "https://github.com/olagacek", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103918", - "pr_number": 103918, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "103941": { - "commit": "0b4a793da2a2912393687367e0af2436612a9b8e", - "text": "Removed deprecated `--seccomp-profile-root`/`seccompProfileRoot` config.", - "markdown": "Removed deprecated `--seccomp-profile-root`/`seccompProfileRoot` config. ([#103941](https://github.com/kubernetes/kubernetes/pull/103941), [@saschagrunert](https://github.com/saschagrunert))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/135-seccomp#seccomp-root-path-configuration", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103941", - "pr_number": 103941, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "node" - ] - }, - "103958": { - "commit": "28990f766481c28d7b942a669eaac8b1191e0805", - "text": "kube-apiserver: sets an upper-bound on the lifetime of idle keep-alive connections and the time to read the headers of incoming requests.", - "markdown": "Kube-apiserver: sets an upper-bound on the lifetime of idle keep-alive connections and the time to read the headers of incoming requests. ([#103958](https://github.com/kubernetes/kubernetes/pull/103958), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103958", - "pr_number": 103958, - "areas": [ - "kubelet", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "api-machinery" - ], - "duplicate": true - }, - "103997": { - "commit": "5336006cc8c42ee2f46baed4e91ec5596499e8b2", - "text": "Fix: ignore non-VMSS error for VMAS nodes in `reconcileBackendPools`.", - "markdown": "Fix: ignore non-VMSS error for VMAS nodes in `reconcileBackendPools`. ([#103997](https://github.com/kubernetes/kubernetes/pull/103997), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103997", - "pr_number": 103997, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "104009": { - "commit": "2c1c1b75465e93ecc49d0cd59efdfa1b0bdb3bbc", - "text": "kube-proxy: delete stale conntrack UDP entries for loadbalancer ingress IP.", - "markdown": "Kube-proxy: delete stale conntrack UDP entries for loadbalancer ingress IP. ([#104009](https://github.com/kubernetes/kubernetes/pull/104009), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104009", - "pr_number": 104009, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "104011": { - "commit": "94a55684a8ef2f0108b1f9f8bd15b3e31ac92c4d", - "text": "Updated json representation for a conflicted taint to `Key=Effect` when a conflicted taint occurs in kubectl taint.", - "markdown": "Updated json representation for a conflicted taint to `Key=Effect` when a conflicted taint occurs in kubectl taint. ([#104011](https://github.com/kubernetes/kubernetes/pull/104011), [@manugupt1](https://github.com/manugupt1))", - "author": "manugupt1", - "author_url": "https://github.com/manugupt1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104011", - "pr_number": 104011, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "104033": { - "commit": "026fb3bf35915c9b4e2029ce162724648854a291", - "text": "Reverts adding namespace label to admission metrics (and histogram exansion) due to cardinality issues.", - "markdown": "Reverts adding namespace label to admission metrics (and histogram exansion) due to cardinality issues. ([#104033](https://github.com/kubernetes/kubernetes/pull/104033), [@s-urbaniak](https://github.com/s-urbaniak))", - "author": "s-urbaniak", - "author_url": "https://github.com/s-urbaniak", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104033", - "pr_number": 104033, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true - }, - "104045": { - "commit": "62a6df9e0b8ed3fe9fad96c8a9a0bde4a3224f35", - "text": "StatefulSet `minReadySeconds` is promoted to beta.", - "markdown": "StatefulSet `minReadySeconds` is promoted to beta. ([#104045](https://github.com/kubernetes/kubernetes/pull/104045), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/pull/2824", - "type": "KEP" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104045", - "pr_number": 104045, - "areas": [ - "test" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "104065": { - "commit": "746fea56aead7342e82864a5989e1d0e826def22", - "text": "kubeadm: remove the deprecated flag `--experimental-patches` for the `init|join|upgrade` commands. The flag `--patches` is no longer allowed in a mixture with the flag `--config`. Please use the kubeadm configuration for setting patches for a node using `{Init|Join}Configuration.patches`.", - "markdown": "Kubeadm: remove the deprecated flag `--experimental-patches` for the `init|join|upgrade` commands. The flag `--patches` is no longer allowed in a mixture with the flag `--config`. Please use the kubeadm configuration for setting patches for a node using `{Init|Join}Configuration.patches`. ([#104065](https://github.com/kubernetes/kubernetes/pull/104065), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/1739-customization-with-patches", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104065", - "pr_number": 104065, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "action_required": true - }, - "104080": { - "commit": "8d7a797eb74be48c5af62cc4a376a0fb1a63e89d", - "text": "Surface warning when users don't set `propagationPolicy` for jobs while deleting.", - "markdown": "Surface warning when users don't set `propagationPolicy` for jobs while deleting. ([#104080](https://github.com/kubernetes/kubernetes/pull/104080), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104080", - "pr_number": 104080, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ] - }, - "104102": { - "commit": "98bd2002176056125567f407dc04bc4d906c587c", - "text": "CA, certificate and key bundles for the `generic-apiserver` based servers will be reloaded immediately after the files are changed.", - "markdown": "CA, certificate and key bundles for the `generic-apiserver` based servers will be reloaded immediately after the files are changed. ([#104102](https://github.com/kubernetes/kubernetes/pull/104102), [@tnqn](https://github.com/tnqn))", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104102", - "pr_number": 104102, - "areas": [ - "test", - "apiserver", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "104103": { - "commit": "5b49d125b76b4d92d5f782630b75b911fee75aaa", - "text": "Users of `LogFormatRegistry` in component-base must update their code to use the logr v1.0.0 API. The JSON log output now uses the format from go-logr/zapr (no `v` field for error messages, additional information for invalid calls) and has some fixes (correct source code location for warnings about invalid log calls).", - "markdown": "Users of `LogFormatRegistry` in component-base must update their code to use the logr v1.0.0 API. The JSON log output now uses the format from go-logr/zapr (no `v` field for error messages, additional information for invalid calls) and has some fixes (correct source code location for warnings about invalid log calls). ([#104103](https://github.com/kubernetes/kubernetes/pull/104103), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104103", - "pr_number": 104103, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "storage", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "104116": { - "commit": "a21a328a1ad76782cd065c51b651150beb3b26e7", - "text": "Fixed architecture within manifest for non `amd64` etcd images.", - "markdown": "Fixed architecture within manifest for non `amd64` etcd images. ([#104116](https://github.com/kubernetes/kubernetes/pull/104116), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104116", - "pr_number": 104116, - "areas": [ - "release-eng" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "104119": { - "commit": "e95983be570fb0c95c8341ecadd33f5577afb9cf", - "text": "The `apiserver` exposes 4 new metrics that allow to track the status of the Service CIDRs allocations:\n - current number of available IPs per Service CIDR\n - current number of used IPs per Service CIDR\n - total number of allocation per Service CIDR\n - total number of allocation errors per ServiceCIDR", - "markdown": "The `apiserver` exposes 4 new metrics that allow to track the status of the Service CIDRs allocations:\n - current number of available IPs per Service CIDR\n - current number of used IPs per Service CIDR\n - total number of allocation per Service CIDR\n - total number of allocation errors per ServiceCIDR ([#104119](https://github.com/kubernetes/kubernetes/pull/104119), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104119", - "pr_number": 104119, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "apps", - "instrumentation" - ], - "duplicate": true - }, - "104134": { - "commit": "de4e5006732da964e725a63ad2308ad4507145f8", - "text": "kubeadm: When adding an etcd peer to an existing cluster, if an error is returned indicating the peer has already been added, this is accepted and a `ListMembers` call is used instead to return the existing cluster. This helps to diminish the exponential backoff when the first AddMember call times out, while still retaining a similar performance when the peer has already been added from a previous call.", - "markdown": "Kubeadm: When adding an etcd peer to an existing cluster, if an error is returned indicating the peer has already been added, this is accepted and a `ListMembers` call is used instead to return the existing cluster. This helps to diminish the exponential backoff when the first AddMember call times out, while still retaining a similar performance when the peer has already been added from a previous call. ([#104134](https://github.com/kubernetes/kubernetes/pull/104134), [@ihgann](https://github.com/ihgann))", - "author": "ihgann", - "author_url": "https://github.com/ihgann", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104134", - "pr_number": 104134, - "areas": [ - "kubeadm", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "104142": { - "commit": "e2e3c2d01c1f8fb9c488041fa5f99195679dd645", - "text": "Updates the following images to pick up CVE fixes:\n- `debian` to v1.9.0\n- `debian-iptables` to v1.6.6\n- `setcap` to v2.0.4", - "markdown": "Updates the following images to pick up CVE fixes:\n - `debian` to v1.9.0\n - `debian-iptables` to v1.6.6\n - `setcap` to v2.0.4 ([#104142](https://github.com/kubernetes/kubernetes/pull/104142), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104142", - "pr_number": 104142, - "areas": [ - "test", - "security", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "104157": { - "commit": "5eeaafd2b4dd8a1c0b2c5cc092bbfd61d0463665", - "text": "kubeadm: remove the `--port` flag from the manifest for the `kube-controller-manager` since the flag has been a NO-OP since 1.22 and insecure serving was removed for the component.", - "markdown": "Kubeadm: remove the `--port` flag from the manifest for the `kube-controller-manager` since the flag has been a NO-OP since 1.22 and insecure serving was removed for the component. ([#104157](https://github.com/kubernetes/kubernetes/pull/104157), [@knight42](https://github.com/knight42))", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104157", - "pr_number": 104157, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "104160": { - "commit": "d5cf54937627dda28e809a480ae091b683cfac8e", - "text": "The maximum length of the `CSINode` id field has increased to 256 bytes to match the CSI spec.", - "markdown": "The maximum length of the `CSINode` id field has increased to 256 bytes to match the CSI spec. ([#104160](https://github.com/kubernetes/kubernetes/pull/104160), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104160", - "pr_number": 104160, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "104161": { - "commit": "1658e13cae9c2a7aaca87ca09f2aeee1a6cd085a", - "text": "Fix `kube-apiserver` metric reporting for the deprecated watch path of `/api/\u003cversion\u003e/watch/...`.", - "markdown": "Fix `kube-apiserver` metric reporting for the deprecated watch path of `/api/\u003cversion\u003e/watch/...`. ([#104161](https://github.com/kubernetes/kubernetes/pull/104161), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104161", - "pr_number": 104161, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "104163": { - "commit": "e8653fe24a8517120b2a3cfb94c4a9ed36591cd9", - "text": "The `SupportPodPidsLimit` and `SupportNodePidsLimit` feature gates that are GA since v1.20 are unconditionally enabled, and can no longer be specified via the `--feature-gates` argument.", - "markdown": "The `SupportPodPidsLimit` and `SupportNodePidsLimit` feature gates that are GA since v1.20 are unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#104163](https://github.com/kubernetes/kubernetes/pull/104163), [@ialidzhikov](https://github.com/ialidzhikov))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/757", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/policy/pid-limiting/", - "type": "official" - } - ], - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104163", - "pr_number": 104163, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "104167": { - "commit": "9ff99adc60fe52798555d683c0cb682dd6f69c4d", - "text": "The `BoundServiceAccountTokenVolume` feature gate that is GA since v1.22 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument.", - "markdown": "The `BoundServiceAccountTokenVolume` feature gate that is GA since v1.22 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#104167](https://github.com/kubernetes/kubernetes/pull/104167), [@ialidzhikov](https://github.com/ialidzhikov))", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104167", - "pr_number": 104167, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth" - ] - }, - "104168": { - "commit": "35747a6ef89a9d3b613844f52c71ec84a8dbf710", - "text": "The `StartupProbe` feature gate that is GA since v1.20 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument.", - "markdown": "The `StartupProbe` feature gate that is GA since v1.20 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#104168](https://github.com/kubernetes/kubernetes/pull/104168), [@ialidzhikov](https://github.com/ialidzhikov))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/950", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes", - "type": "official" - } - ], - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104168", - "pr_number": 104168, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "104182": { - "commit": "7f6d463b34301b6b8840af8f642184df367ab262", - "text": "kube-apiserver: Avoid unnecessary repeated calls to `admission webhooks` that reject an update or delete request.", - "markdown": "Kube-apiserver: Avoid unnecessary repeated calls to `admission webhooks` that reject an update or delete request. ([#104182](https://github.com/kubernetes/kubernetes/pull/104182), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104182", - "pr_number": 104182, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "104185": { - "commit": "8c64743d73f206bf633828a7fa1dd014ce153209", - "text": "Allow to build kubernetes with a custom `kube-cross` image.", - "markdown": "Allow to build kubernetes with a custom `kube-cross` image. ([#104185](https://github.com/kubernetes/kubernetes/pull/104185), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104185", - "pr_number": 104185, - "areas": [ - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "104199": { - "commit": "29c13f55152a3e74972f8c173b1428baefb8abd5", - "text": "Kubernetes is now built with Golang 1.16.7.", - "markdown": "Kubernetes is now built with Golang 1.16.7. ([#104199](https://github.com/kubernetes/kubernetes/pull/104199), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104199", - "pr_number": 104199, - "areas": [ - "test", - "security", - "provider/gcp", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "testing", - "release", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "104232": { - "commit": "5f0180ec051ec3f8a605b6ef2194467f5f549bfe", - "text": "Adding support for multiple `--from-env-file flags`.", - "markdown": "Adding support for multiple `--from-env-file flags`. ([#104232](https://github.com/kubernetes/kubernetes/pull/104232), [@lauchokyip](https://github.com/lauchokyip))", - "author": "lauchokyip", - "author_url": "https://github.com/lauchokyip", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104232", - "pr_number": 104232, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "104248": { - "commit": "48da959dbff18bfef6e801bd8c8ab3c88b7a7650", - "text": "kube-apiserver: The `rbac.authorization.k8s.io/v1alpha1` API version is removed; use the `rbac.authorization.k8s.io/v1` API, available since v1.8. The `scheduling.k8s.io/v1alpha1` API version is removed; use the `scheduling.k8s.io/v1` API, available since v1.14.", - "markdown": "Kube-apiserver: The `rbac.authorization.k8s.io/v1alpha1` API version is removed; use the `rbac.authorization.k8s.io/v1` API, available since v1.8. The `scheduling.k8s.io/v1alpha1` API version is removed; use the `scheduling.k8s.io/v1` API, available since v1.14. ([#104248](https://github.com/kubernetes/kubernetes/pull/104248), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104248", - "pr_number": 104248, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "network", - "api-machinery", - "auth", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "104251": { - "commit": "9b45983d3c8c246948682e678caa721b6d0bed0c", - "text": "Introduce `v1beta3` API for scheduler. This version \n- increases the weight of user specifiable priorities.\nThe weights of following priority plugins are increased\n - `TaintTolerations` to 3 - as leveraging node tainting to group nodes in the cluster is becoming a widely-adopted practice\n - `NodeAffinity` to 2\n - `InterPodAffinity` to 2\n\n- Won't have `HealthzBindAddress`, `MetricsBindAddress` fields", - "markdown": "Introduce `v1beta3` API for scheduler. This version \n - increases the weight of user specifiable priorities.\n The weights of following priority plugins are increased\n - `TaintTolerations` to 3 - as leveraging node tainting to group nodes in the cluster is becoming a widely-adopted practice\n - `NodeAffinity` to 2\n - `InterPodAffinity` to 2\n \n - Won't have `HealthzBindAddress`, `MetricsBindAddress` fields ([#104251](https://github.com/kubernetes/kubernetes/pull/104251), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/pull/2850/", - "type": "KEP" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104251", - "pr_number": 104251, - "areas": [ - "test" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true - }, - "104253": { - "commit": "3ca0145f20cdb5707b9d53860dcafdbb1254b65f", - "text": "Pass additional flags to subpath mount to avoid flakes in certain conditions.", - "markdown": "Pass additional flags to subpath mount to avoid flakes in certain conditions. ([#104253](https://github.com/kubernetes/kubernetes/pull/104253), [@mauriciopoppe](https://github.com/mauriciopoppe))", - "author": "mauriciopoppe", - "author_url": "https://github.com/mauriciopoppe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104253", - "pr_number": 104253, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "104287": { - "commit": "1d1d462d2f24de79323624c7fcd686fb383c95a5", - "text": "Reduce the number of calls to docker for stats via dockershim. For Windows this reduces the latency when calling docker, for Linux this saves cpu cycles.", - "markdown": "Reduce the number of calls to docker for stats via dockershim. For Windows this reduces the latency when calling docker, for Linux this saves cpu cycles. ([#104287](https://github.com/kubernetes/kubernetes/pull/104287), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows]", - "author": "jsturtevant", - "author_url": "https://github.com/jsturtevant", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104287", - "pr_number": 104287, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true - }, - "104293": { - "commit": "07fe9f0192283ffa1ce81f490b02f5240cf4099d", - "text": "Updated Cluster Autosaler to version `1.22.0`. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.22.0.", - "markdown": "Updated Cluster Autosaler to version `1.22.0`. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.22.0. ([#104293](https://github.com/kubernetes/kubernetes/pull/104293), [@x13n](https://github.com/x13n))", - "author": "x13n", - "author_url": "https://github.com/x13n", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104293", - "pr_number": 104293, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "autoscaling", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "104301": { - "commit": "1ebc6bfcbad727b63ef29b4ba334829ba0f87100", - "text": "Update Go used to build migrate script in etcd image to v1.16.7.", - "markdown": "Update Go used to build migrate script in etcd image to v1.16.7. ([#104301](https://github.com/kubernetes/kubernetes/pull/104301), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104301", - "pr_number": 104301, - "areas": [ - "release-eng" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "release" - ], - "duplicate": true - }, - "104327": { - "commit": "a78e3133a0d0401fa592ae1c4a1daf4e30e2efdf", - "text": "The `client-go` dynamic client sets the header `Content-Type: application/json` by default", - "markdown": "The `client-go` dynamic client sets the header `Content-Type: application/json` by default ([#104327](https://github.com/kubernetes/kubernetes/pull/104327), [@sxllwx](https://github.com/sxllwx))", - "author": "sxllwx", - "author_url": "https://github.com/sxllwx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104327", - "pr_number": 104327, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "104368": { - "commit": "b0bc8adbc2178e15872f9ef040355c51c45d04bb", - "text": "Since golang 1.17 both net.ParseIP and net.ParseCIDR rejects leading zeros in the dot-decimal notation of IPv4 addresses,\nKubernetes will keep allowing leading zeros on IPv4 address to not break the compatibility.\nIMPORTANT: Kubernetes interprets leading zeros on IPv4 addresses as decimal, users must not rely on parser alignment to not being impacted by the associated security advisory:\nCVE-2021-29923 golang standard library \"net\" - Improper Input Validation of octal literals in golang 1.16.2 and below standard library \"net\" results in indeterminate SSRF \u0026 RFI vulnerabilities.\nReference: https://nvd.nist.gov/vuln/detail/CVE-2021-29923", - "markdown": "Since golang 1.17 both net.ParseIP and net.ParseCIDR rejects leading zeros in the dot-decimal notation of IPv4 addresses,\n Kubernetes will keep allowing leading zeros on IPv4 address to not break the compatibility.\n IMPORTANT: Kubernetes interprets leading zeros on IPv4 addresses as decimal, users must not rely on parser alignment to not being impacted by the associated security advisory:\n CVE-2021-29923 golang standard library \"net\" - Improper Input Validation of octal literals in golang 1.16.2 and below standard library \"net\" results in indeterminate SSRF \u0026 RFI vulnerabilities.\n Reference: https://nvd.nist.gov/vuln/detail/CVE-2021-29923 ([#104368](https://github.com/kubernetes/kubernetes/pull/104368), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104368", - "pr_number": 104368, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "kubeadm", - "code-generation", - "ipvs", - "e2e-test-framework", - "dependency", - "network-policy" - ], - "kinds": [ - "bug", - "cleanup", - "api-change" - ], - "sigs": [ - "network", - "scalability", - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "104382": { - "commit": "625b1e2d0bb54cd8bf34ddded183755c80cf9b47", - "text": "Ensure `InstanceShutdownByProviderID` return false for creating Azure VMs.", - "markdown": "Ensure `InstanceShutdownByProviderID` return false for creating Azure VMs. ([#104382](https://github.com/kubernetes/kubernetes/pull/104382), [@feiskyer](https://github.com/feiskyer))", - "author": "feiskyer", - "author_url": "https://github.com/feiskyer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104382", - "pr_number": 104382, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "104384": { - "commit": "f38c5964801aba7ba2ef3f864fa7550ae1765974", - "text": "fix: skip case sensitivity when checking Azure NSG rules.", - "markdown": "Fix: skip case sensitivity when checking Azure NSG rules. ([#104384](https://github.com/kubernetes/kubernetes/pull/104384), [@feiskyer](https://github.com/feiskyer))", - "author": "feiskyer", - "author_url": "https://github.com/feiskyer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104384", - "pr_number": 104384, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "104389": { - "commit": "74a09fe682fb18ce5e9c478d237e572f9d03b89c", - "text": "Support for the seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io/[name]` has been deprecated since 1.19, will be dropped in 1.25. Transition to using the `seccompProfile` API field.", - "markdown": "Support for the seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io/[name]` has been deprecated since 1.19, will be dropped in 1.25. Transition to using the `seccompProfile` API field. ([#104389](https://github.com/kubernetes/kubernetes/pull/104389), [@saschagrunert](https://github.com/saschagrunert))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/blob/cccc6fa/keps/sig-node/135-seccomp/README.md", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104389", - "pr_number": 104389, - "kinds": [ - "documentation" - ], - "sigs": [ - "node" - ], - "action_required": true - }, - "104399": { - "commit": "cdcf2a239e211c66c84efaedea1a4eb5eb4c409d", - "text": "Introduce v1beta2 for Priority and Fairness with no changes in API spec.", - "markdown": "Introduce v1beta2 for Priority and Fairness with no changes in API spec. ([#104399](https://github.com/kubernetes/kubernetes/pull/104399), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104399", - "pr_number": 104399, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "104426": { - "commit": "9d38c64a7da5d4c7688ba11334485b8cabd9dc1c", - "text": "The script `kube-up.sh` installs `csi-proxy v1.0.1-gke.0`.", - "markdown": "The script `kube-up.sh` installs `csi-proxy v1.0.1-gke.0`. ([#104426](https://github.com/kubernetes/kubernetes/pull/104426), [@mauriciopoppe](https://github.com/mauriciopoppe))", - "author": "mauriciopoppe", - "author_url": "https://github.com/mauriciopoppe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104426", - "pr_number": 104426, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "windows", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "104430": { - "commit": "94ff97fd89794cfcbdfad969c6fbcf2086752192", - "text": "Update `cri-tools` dependency to v1.22.0.", - "markdown": "Update `cri-tools` dependency to v1.22.0. ([#104430](https://github.com/kubernetes/kubernetes/pull/104430), [@saschagrunert](https://github.com/saschagrunert))", - "documentation": [ - { - "description": "The release", - "url": "https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.22.0", - "type": "external" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104430", - "pr_number": 104430, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "cloud-provider" - ], - "duplicate": true - }, - "104438": { - "commit": "2a8ad728007b03f0d083ad379403e2a13dd913b5", - "text": "The pause image list now contains Windows Server 2022.", - "markdown": "The pause image list now contains Windows Server 2022. ([#104438](https://github.com/kubernetes/kubernetes/pull/104438), [@nick5616](https://github.com/nick5616))", - "author": "nick5616", - "author_url": "https://github.com/nick5616", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104438", - "pr_number": 104438, - "kinds": [ - "feature" - ], - "sigs": [ - "windows" - ], - "feature": true - }, - "104466": { - "commit": "7fcecc077dae36071901472d12fa26e5af99010c", - "text": "Fixes a regression that could cause panics in LRU caches in controller-manager, kubelet, kube-apiserver, or client-go.", - "markdown": "Fixes a regression that could cause panics in LRU caches in controller-manager, kubelet, kube-apiserver, or client-go. ([#104466](https://github.com/kubernetes/kubernetes/pull/104466), [@stbenjam](https://github.com/stbenjam))", - "author": "stbenjam", - "author_url": "https://github.com/stbenjam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104466", - "pr_number": 104466, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "storage", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "104482": { - "commit": "c6935ad50e0809c1dc2d3ac9000abda0ecb49bcc", - "text": "Changed kubectl describe to compute age of an event using the `EventSeries.count` and `EventSeries.lastObservedTime`.", - "markdown": "Changed kubectl describe to compute age of an event using the `EventSeries.count` and `EventSeries.lastObservedTime`. ([#104482](https://github.com/kubernetes/kubernetes/pull/104482), [@harjas27](https://github.com/harjas27))", - "author": "harjas27", - "author_url": "https://github.com/harjas27", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104482", - "pr_number": 104482, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "104483": { - "commit": "48d844ec64bd83a378418d420ba455fa28043cbc", - "text": "Client-go impersonation config can specify a UID to pass impersonated uid information through in requests.", - "markdown": "Client-go impersonation config can specify a UID to pass impersonated uid information through in requests. ([#104483](https://github.com/kubernetes/kubernetes/pull/104483), [@margocrawf](https://github.com/margocrawf))", - "author": "margocrawf", - "author_url": "https://github.com/margocrawf", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104483", - "pr_number": 104483, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "104503": { - "commit": "d0f6983d6ccace8aa7569eb9f57ab913e9186720", - "text": "kube-scheduler now doesn't print any usage message when unknown flag is specified.", - "markdown": "Kube-scheduler now doesn't print any usage message when unknown flag is specified. ([#104503](https://github.com/kubernetes/kubernetes/pull/104503), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104503", - "pr_number": 104503, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "104518": { - "commit": "296991f697ddd9c61c467a8fb8e961dcde0fe750", - "text": "Removed deprecated metric `scheduler_volume_scheduling_duration_seconds`.", - "markdown": "Removed deprecated metric `scheduler_volume_scheduling_duration_seconds`. ([#104518](https://github.com/kubernetes/kubernetes/pull/104518), [@dntosas](https://github.com/dntosas))", - "author": "dntosas", - "author_url": "https://github.com/dntosas", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104518", - "pr_number": 104518, - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "scheduling", - "storage", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true - }, - "104523": { - "commit": "2f68346fbb6246961ce0a3176418630950aea500", - "text": "Fixes an issue where an admission webhook can observe a v1 Pod object that does not have the `defaultMode` field set in the injected service account token volume in kube-api-server.", - "markdown": "Fixes an issue where an admission webhook can observe a v1 Pod object that does not have the `defaultMode` field set in the injected service account token volume in kube-api-server. ([#104523](https://github.com/kubernetes/kubernetes/pull/104523), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104523", - "pr_number": 104523, - "kinds": [ - "bug" - ], - "sigs": [ - "auth" - ] - }, - "104528": { - "commit": "cbd0611d4902d9fe71ee8affe68a5d4ffd81df3b", - "text": "Fixed occasional pod cgroup freeze when using cgroup v1 and systemd driver.", - "markdown": "Fixed occasional pod cgroup freeze when using cgroup v1 and systemd driver. ([#104528](https://github.com/kubernetes/kubernetes/pull/104528), [@kolyshkin](https://github.com/kolyshkin))", - "author": "kolyshkin", - "author_url": "https://github.com/kolyshkin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104528", - "pr_number": 104528, - "areas": [ - "kubelet", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "104551": { - "commit": "d5de03f0d30c3f279443103be0ddda23c260bd99", - "text": "Fixes hostPath storage E2E tests within SELinux enabled env", - "markdown": "Fixes hostPath storage E2E tests within SELinux enabled env ([#104551](https://github.com/kubernetes/kubernetes/pull/104551), [@Elbehery](https://github.com/Elbehery))", - "author": "Elbehery", - "author_url": "https://github.com/Elbehery", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104551", - "pr_number": 104551, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "testing" - ], - "duplicate_kind": true - }, - "104571": { - "commit": "3e10db97d07ea204f0434aff8e3b0b6a00b3d19e", - "text": "Added support for setting controller-manager log level online.", - "markdown": "Added support for setting controller-manager log level online. ([#104571](https://github.com/kubernetes/kubernetes/pull/104571), [@h4ghhh](https://github.com/h4ghhh))", - "author": "h4ghhh", - "author_url": "https://github.com/h4ghhh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104571", - "pr_number": 104571, - "areas": [ - "controller-manager" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "104572": { - "commit": "758ad0790ceae9e7be0554637c0fd623ff02e45f", - "text": "Fix detach disk issue on deleting vmss node.", - "markdown": "Fix detach disk issue on deleting vmss node. ([#104572](https://github.com/kubernetes/kubernetes/pull/104572), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104572", - "pr_number": 104572, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "104577": { - "commit": "bbbeceb6aa53ed6a2b42d639ba41f0ac8a70f323", - "text": "Fix a regression where the Kubelet failed to exclude already completed pods from calculations about how many resources it was currently using when deciding whether to allow more pods.", - "markdown": "Fix a regression where the Kubelet failed to exclude already completed pods from calculations about how many resources it was currently using when deciding whether to allow more pods. ([#104577](https://github.com/kubernetes/kubernetes/pull/104577), [@smarterclayton](https://github.com/smarterclayton))", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104577", - "pr_number": 104577, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "104590": { - "commit": "bcd2ffbdc17ad7472fbd9d5dc2e2c2fdbfc4cdbf", - "text": "`volume.kubernetes.io/storage-provisioner` annotation will be added to dynamic provisioning required PVC. `volume.beta.kubernetes.io/storage-provisioner` annotation is deprecated.", - "markdown": "`volume.kubernetes.io/storage-provisioner` annotation will be added to dynamic provisioning required PVC. `volume.beta.kubernetes.io/storage-provisioner` annotation is deprecated. ([#104590](https://github.com/kubernetes/kubernetes/pull/104590), [@Jiawei0227](https://github.com/Jiawei0227))", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104590", - "pr_number": 104590, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "apps" - ], - "duplicate": true - }, - "104593": { - "commit": "9dba11d971dd940b7fe9901f5d723ead8dbf33b8", - "text": "Ignore the case when updating Azure tags.", - "markdown": "Ignore the case when updating Azure tags. ([#104593](https://github.com/kubernetes/kubernetes/pull/104593), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104593", - "pr_number": 104593, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "104601": { - "commit": "bb9e89d430138725def3463b7f607e8dd52aed72", - "text": "A small regression in Service updates was fixed. The circumstances are so unlikely that probably nobody would ever hit it.", - "markdown": "A small regression in Service updates was fixed. The circumstances are so unlikely that probably nobody would ever hit it. ([#104601](https://github.com/kubernetes/kubernetes/pull/104601), [@thockin](https://github.com/thockin))", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104601", - "pr_number": 104601, - "kinds": [ - "bug", - "api-change", - "regression" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "104604": { - "commit": "c262d09bb7d22d62665aa215b5c6d1dd2a865007", - "text": "Don't prematurely close reflectors in case of slow initialization in watch based manager to fix issues with inability to properly mount secrets/configmaps.", - "markdown": "Don't prematurely close reflectors in case of slow initialization in watch based manager to fix issues with inability to properly mount secrets/configmaps. ([#104604](https://github.com/kubernetes/kubernetes/pull/104604), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104604", - "pr_number": 104604, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "104605": { - "commit": "b12379ef1c8defd0bcda12103a46b05ab094a641", - "text": "Better pod events (\"waiting for ephemeral volume controller to create the persistentvolumeclaim\"\" instead of \"persistentvolumeclaim not found\") when using generic ephemeral volumes.", - "markdown": "Better pod events (\"waiting for ephemeral volume controller to create the persistentvolumeclaim\"\" instead of \"persistentvolumeclaim not found\") when using generic ephemeral volumes. ([#104605](https://github.com/kubernetes/kubernetes/pull/104605), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104605", - "pr_number": 104605, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "storage" - ], - "duplicate": true - }, - "104613": { - "commit": "cda360c59fdfc9aab79d590a2d639913caebb45b", - "text": "Kubelet should reconcile `kubernetes.io/os` and `kubernetes.io/arch` labels on the node object. The side-effect of this is kubelet would deny admission to pod which has nodeSelector with label `kubernetes.io/os` or `kubernetes.io/arch` which doesn't match the underlying OS or arch on the host OS. \n- The label reconciliation happens as part of periodic status update which can be configured via flag `--node-status-update-frequency`", - "markdown": "Kubelet should reconcile `kubernetes.io/os` and `kubernetes.io/arch` labels on the node object. The side-effect of this is kubelet would deny admission to pod which has nodeSelector with label `kubernetes.io/os` or `kubernetes.io/arch` which doesn't match the underlying OS or arch on the host OS. \n - The label reconciliation happens as part of periodic status update which can be configured via flag `--node-status-update-frequency` ([#104613](https://github.com/kubernetes/kubernetes/pull/104613), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node, Testing and Windows]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/pull/2803", - "type": "KEP" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104613", - "pr_number": 104613, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "windows", - "testing" - ], - "feature": true, - "duplicate": true - }, - "104624": { - "commit": "fa2657b8b2f839b88834579917abda1a816a1970", - "text": "kubelet: turn the KubeletConfiguration v1beta1 `ResolverConfig` field from a `string` to `*string`.", - "markdown": "Kubelet: turn the KubeletConfiguration v1beta1 `ResolverConfig` field from a `string` to `*string`. ([#104624](https://github.com/kubernetes/kubernetes/pull/104624), [@Haleygo](https://github.com/Haleygo))", - "author": "Haleygo", - "author_url": "https://github.com/Haleygo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104624", - "pr_number": 104624, - "areas": [ - "kubelet", - "kubeadm" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "node", - "cluster-lifecycle" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "104631": { - "commit": "84027bc07d14bdc35e566d8f4933b43a447586a1", - "text": "A deprecation notice has been added when using the kube-proxy userspace proxier, which will be removed in v1.25. (#103860)", - "markdown": "A deprecation notice has been added when using the kube-proxy userspace proxier, which will be removed in v1.25. (#103860) ([#104631](https://github.com/kubernetes/kubernetes/pull/104631), [@perithompson](https://github.com/perithompson))", - "author": "perithompson", - "author_url": "https://github.com/perithompson", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104631", - "pr_number": 104631, - "kinds": [ - "deprecation" - ], - "sigs": [ - "network" - ] - }, - "104636": { - "commit": "1ff64edffbbb5600db3fe0e69482b83a571426cb", - "text": "The `IngressClass.Spec.Parameters.Namespace` field is now GA.", - "markdown": "The `IngressClass.Spec.Parameters.Namespace` field is now GA. ([#104636](https://github.com/kubernetes/kubernetes/pull/104636), [@hbagdi](https://github.com/hbagdi))", - "author": "hbagdi", - "author_url": "https://github.com/hbagdi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104636", - "pr_number": 104636, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "104650": { - "commit": "463802765df062f0bd529103aedc968e0ac9e29d", - "text": "Pod will not start when Init container was OOM killed.", - "markdown": "Pod will not start when Init container was OOM killed. ([#104650](https://github.com/kubernetes/kubernetes/pull/104650), [@yxxhero](https://github.com/yxxhero)) [SIG Node]", - "author": "yxxhero", - "author_url": "https://github.com/yxxhero", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104650", - "pr_number": 104650, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "104664": { - "commit": "81e41b7fc490c3f51a9d0a2c13f1dd645b437af9", - "text": "The test \"[sig-network] EndpointSlice should have Endpoints and EndpointSlices pointing to API Server [Conformance]\" only requires that there is an EndpointSlice that references the \"kubernetes.default\" service, it no longer requires that its named \"kubernetes\".", - "markdown": "The test \"[sig-network] EndpointSlice should have Endpoints and EndpointSlices pointing to API Server [Conformance]\" only requires that there is an EndpointSlice that references the \"kubernetes.default\" service, it no longer requires that its named \"kubernetes\". ([#104664](https://github.com/kubernetes/kubernetes/pull/104664), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104664", - "pr_number": 104664, - "areas": [ - "test", - "conformance" - ], - "kinds": [ - "bug", - "documentation", - "cleanup", - "failing-test" - ], - "sigs": [ - "network", - "testing", - "architecture" - ], - "duplicate": true, - "duplicate_kind": true - }, - "104666": { - "commit": "669de4b95796e93dff2dec17b6897512e7a9538c", - "text": "Fix job tracking with finalizers for more than 500 pods, ensuring all finalizers are removed before counting the Pod.", - "markdown": "Fix job tracking with finalizers for more than 500 pods, ensuring all finalizers are removed before counting the Pod. ([#104666](https://github.com/kubernetes/kubernetes/pull/104666), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104666", - "pr_number": 104666, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "instrumentation" - ], - "duplicate": true - }, - "104667": { - "commit": "30f3511104d5f9fe2887299bf39688d8b75253d5", - "text": "Health check of kube-controller-manager now includes each controller.", - "markdown": "Health check of kube-controller-manager now includes each controller. ([#104667](https://github.com/kubernetes/kubernetes/pull/104667), [@jiahuif](https://github.com/jiahuif))", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104667", - "pr_number": 104667, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "104670": { - "commit": "5d7ac70051f4e5e85834852c30d07c5b0cd3c6d0", - "text": "Turn on CSIMigrationAzureDisk by default on 1.23", - "markdown": "Turn on CSIMigrationAzureDisk by default on 1.23 ([#104670](https://github.com/kubernetes/kubernetes/pull/104670), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104670", - "pr_number": 104670, - "areas": [ - "provider/azure" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "104691": { - "commit": "a53e2eaeaba064309dceca2dc27f3ac09c6375b0", - "text": "Promote `IPv6DualStack` feature to stable.\nController Manager flags for the node IPAM controller have slightly changed:\n1. When configuring a dual-stack cluster, the user must specify both `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6` to set the per-node IP mask sizes, instead of the previous `--node-cidr-mask-size` flag.\n2. The `--node-cidr-mask-size` flag is mutually exclusive with `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6`.\n3. Single-stack clusters do not need to change, but may choose to use the more specific flags. Users can use either the older `--node-cidr-mask-size` flag or one of the newer `--node-cidr-mask-size-ipv4` or `--node-cidr-mask-size-ipv6` flags to configure the per-node IP mask size, provided that the flag's IP family matches the cluster's IP family (--cluster-cidr).", - "markdown": "Promote `IPv6DualStack` feature to stable.\n Controller Manager flags for the node IPAM controller have slightly changed:\n 1. When configuring a dual-stack cluster, the user must specify both `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6` to set the per-node IP mask sizes, instead of the previous `--node-cidr-mask-size` flag.\n 2. The `--node-cidr-mask-size` flag is mutually exclusive with `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6`.\n 3. Single-stack clusters do not need to change, but may choose to use the more specific flags. Users can use either the older `--node-cidr-mask-size` flag or one of the newer `--node-cidr-mask-size-ipv4` or `--node-cidr-mask-size-ipv6` flags to configure the per-node IP mask size, provided that the flag's IP family matches the cluster's IP family (--cluster-cidr). ([#104691](https://github.com/kubernetes/kubernetes/pull/104691), [@khenidak](https://github.com/khenidak))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack", - "type": "KEP" - }, - { - "url": "https://github.com/kubernetes/enhancements/pull/2860#pullrequestreview-733375378", - "type": "KEP" - } - ], - "author": "khenidak", - "author_url": "https://github.com/khenidak", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104691", - "pr_number": 104691, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubeadm" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "apps", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "104693": { - "commit": "bb24c265ce725c90f0e82b01e7c1ccbffb695d14", - "text": "Introduce `OS` field in the PodSpec", - "markdown": "Introduce `OS` field in the PodSpec ([#104693](https://github.com/kubernetes/kubernetes/pull/104693), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2803", - "type": "KEP" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104693", - "pr_number": 104693, - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true - }, - "104696": { - "commit": "caf853b5964679b888c3c7324f184466fe67234d", - "text": "Update conformance image to use `debian-base:buster-v1.9.0`.", - "markdown": "Update conformance image to use `debian-base:buster-v1.9.0`. ([#104696](https://github.com/kubernetes/kubernetes/pull/104696), [@PushkarJ](https://github.com/PushkarJ))", - "author": "PushkarJ", - "author_url": "https://github.com/PushkarJ", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104696", - "pr_number": 104696, - "areas": [ - "test", - "security", - "conformance", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing", - "release", - "architecture", - "security" - ], - "duplicate": true - }, - "104699": { - "commit": "85b11ad24e996e2db4aa00a99e16f066544b22b0", - "text": "If a conflict occurs when creating an object with `generateName`, the server now returns an \"AlreadyExists\" error with a retry option.", - "markdown": "If a conflict occurs when creating an object with `generateName`, the server now returns an \"AlreadyExists\" error with a retry option. ([#104699](https://github.com/kubernetes/kubernetes/pull/104699), [@vincepri](https://github.com/vincepri))", - "author": "vincepri", - "author_url": "https://github.com/vincepri", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104699", - "pr_number": 104699, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "104705": { - "commit": "8d43aa6cbc0ab63d5c63994ca7bd9993d52cf5db", - "text": "Ignore the case when comparing azure tags in service annotation.", - "markdown": "Ignore the case when comparing azure tags in service annotation. ([#104705](https://github.com/kubernetes/kubernetes/pull/104705), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104705", - "pr_number": 104705, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "104711": { - "commit": "c79f7c1add652ce7c70205bb0ba2911744ce640b", - "text": "Support for Windows Server 2022 was added to the `k8s.gcr.io/pause:3.6` image.", - "markdown": "Support for Windows Server 2022 was added to the `k8s.gcr.io/pause:3.6` image. ([#104711](https://github.com/kubernetes/kubernetes/pull/104711), [@claudiubelu](https://github.com/claudiubelu))", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104711", - "pr_number": 104711, - "areas": [ - "test", - "kubelet", - "kubectl", - "provider/gcp", - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "cluster-lifecycle", - "cli", - "testing", - "release", - "cloud-provider" - ], - "duplicate": true - }, - "104722": { - "commit": "6805e6ee41bb31f374300c9b22b68ae64072f0ec", - "text": "The `CSIMigrationGCE` feature flag is turned `ON` by default", - "markdown": "The `CSIMigrationGCE` feature flag is turned `ON` by default ([#104722](https://github.com/kubernetes/kubernetes/pull/104722), [@leiyiz](https://github.com/leiyiz))", - "author": "leiyiz", - "author_url": "https://github.com/leiyiz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104722", - "pr_number": 104722, - "areas": [ - "test", - "kubelet", - "provider/gcp" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "storage", - "node", - "apps", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "104741": { - "commit": "f9488f314a03c4a4fbe2c3b23e305b5ed6a86659", - "text": "More detailed logging has been added to the EndpointSlice controller for Topology.", - "markdown": "More detailed logging has been added to the EndpointSlice controller for Topology. ([#104741](https://github.com/kubernetes/kubernetes/pull/104741), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104741", - "pr_number": 104741, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "104742": { - "commit": "648559b63ed730519e8d172b2c778c709829a98b", - "text": "kube-proxy health check ports used to listen to `:\u003cport\u003e` for each of the services. This is not needed and opens ports in addresses the cluster user may not have intended. The PR limits listening to all node address which are controlled by `--nodeport-addresses` flag. if no addresses are provided then we default to existing behavior by listening to `:\u003cport\u003e` for each service", - "markdown": "Kube-proxy health check ports used to listen to `:\u003cport\u003e` for each of the services. This is not needed and opens ports in addresses the cluster user may not have intended. The PR limits listening to all node address which are controlled by `--nodeport-addresses` flag. if no addresses are provided then we default to existing behavior by listening to `:\u003cport\u003e` for each service ([#104742](https://github.com/kubernetes/kubernetes/pull/104742), [@khenidak](https://github.com/khenidak))", - "author": "khenidak", - "author_url": "https://github.com/khenidak", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104742", - "pr_number": 104742, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "104743": { - "commit": "5f0a94b23cb5489bfc371e717937499e4ad7fd62", - "text": "Respect grace period when updating static pods.", - "markdown": "Respect grace period when updating static pods. ([#104743](https://github.com/kubernetes/kubernetes/pull/104743), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing]", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104743", - "pr_number": 104743, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "104744": { - "commit": "c54ed73f9a7fdf9f94f169cf5a00a6b1cb7abe3f", - "text": "Topology Hints now excludes control plane notes from capacity calculations.", - "markdown": "Topology Hints now excludes control plane notes from capacity calculations. ([#104744](https://github.com/kubernetes/kubernetes/pull/104744), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104744", - "pr_number": 104744, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "104748": { - "commit": "7c530952189e66d4bd07688caa038efbf7690f0a", - "text": "Resolves a potential issue with GC and NS controllers which may delete objects after getting a 404 response from the server during its startup. This PR ensures that requests to aggregated APIs will get 503, not 404 while the APIServiceRegistrationController hasn't finished its job.", - "markdown": "Resolves a potential issue with GC and NS controllers which may delete objects after getting a 404 response from the server during its startup. This PR ensures that requests to aggregated APIs will get 503, not 404 while the APIServiceRegistrationController hasn't finished its job. ([#104748](https://github.com/kubernetes/kubernetes/pull/104748), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104748", - "pr_number": 104748, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "104756": { - "commit": "a402f1753ca0a28834dfa834455416e0893a19bf", - "text": "Fixed client IP preservation for NodePort service with protocol SCTP in ipvs.", - "markdown": "Fixed client IP preservation for NodePort service with protocol SCTP in ipvs. ([#104756](https://github.com/kubernetes/kubernetes/pull/104756), [@tnqn](https://github.com/tnqn))", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104756", - "pr_number": 104756, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "104782": { - "commit": "04f747d09fd2f8fb486c90a85122c0cb7b2df782", - "text": "kube-scheduler: support for configuration file version `v1beta1` is removed. Update configuration files to v1beta2(xref: https://github.com/kubernetes/enhancements/issues/2901) or v1beta3 before upgrading to 1.23.", - "markdown": "Kube-scheduler: support for configuration file version `v1beta1` is removed. Update configuration files to v1beta2(xref: https://github.com/kubernetes/enhancements/issues/2901) or v1beta3 before upgrading to 1.23. ([#104782](https://github.com/kubernetes/kubernetes/pull/104782), [@kerthcet](https://github.com/kerthcet))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2921", - "type": "KEP" - } - ], - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104782", - "pr_number": 104782, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "104792": { - "commit": "82379431df22809dc9454d3b03c957a65e9ca3ff", - "text": "Adding option for `kubectl cp` to resume on network errors until completion, requires tar in addition to tail inside the container image", - "markdown": "Adding option for `kubectl cp` to resume on network errors until completion, requires tar in addition to tail inside the container image ([#104792](https://github.com/kubernetes/kubernetes/pull/104792), [@matthyx](https://github.com/matthyx))", - "author": "matthyx", - "author_url": "https://github.com/matthyx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104792", - "pr_number": 104792, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "104796": { - "commit": "f48336b0aed08f39dacbdddc921e466869de6371", - "text": "Remove the deprecated flags `--csr-only` and `--csr-dir` from `kubeadm certs renew`. Please use `kubeadm certs generate-csr` instead.", - "markdown": "Remove the deprecated flags `--csr-only` and `--csr-dir` from `kubeadm certs renew`. Please use `kubeadm certs generate-csr` instead. ([#104796](https://github.com/kubernetes/kubernetes/pull/104796), [@RA489](https://github.com/RA489))", - "author": "RA489", - "author_url": "https://github.com/RA489", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104796", - "pr_number": 104796, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "104817": { - "commit": "1dcea5cb028a549e7a1c9f06ee0ae3a452231dbb", - "text": "A pod that the Kubelet rejects was still considered as being accepted for a brief period of time after rejection, which might cause some pods to be rejected briefly that could fit on the node. A pod that is still terminating (but has status indicating it has failed) may also still be consuming resources and so should also be considered.", - "markdown": "A pod that the Kubelet rejects was still considered as being accepted for a brief period of time after rejection, which might cause some pods to be rejected briefly that could fit on the node. A pod that is still terminating (but has status indicating it has failed) may also still be consuming resources and so should also be considered. ([#104817](https://github.com/kubernetes/kubernetes/pull/104817), [@smarterclayton](https://github.com/smarterclayton))", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104817", - "pr_number": 104817, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "104844": { - "commit": "45f77ca4bab08da88bdda267be2157dc10bc64ac", - "text": "Don't use a custom dialer for the kubelet if is not rotating certificates, so we can reuse TCP connections and have only one between the apiserver and the kubelet.\nIf users experiment problems with stale connections using HTTP1.1, they can force the previous behavior of the kubelet by setting the environment variable DISABLE_HTTP2.", - "markdown": "Don't use a custom dialer for the kubelet if is not rotating certificates, so we can reuse TCP connections and have only one between the apiserver and the kubelet.\n If users experiment problems with stale connections using HTTP1.1, they can force the previous behavior of the kubelet by setting the environment variable DISABLE_HTTP2. ([#104844](https://github.com/kubernetes/kubernetes/pull/104844), [@aojea](https://github.com/aojea)) [SIG API Machinery, Auth and Node]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104844", - "pr_number": 104844, - "areas": [ - "kubelet", - "apiserver" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node", - "api-machinery", - "auth" - ], - "duplicate": true, - "duplicate_kind": true - }, - "104847": { - "commit": "51384aa77ea50bdff48d101a5b2b55436f18841e", - "text": "When a static pod file is deleted and recreated while using a fixed UID, the pod was not properly restarted.", - "markdown": "When a static pod file is deleted and recreated while using a fixed UID, the pod was not properly restarted. ([#104847](https://github.com/kubernetes/kubernetes/pull/104847), [@smarterclayton](https://github.com/smarterclayton))", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104847", - "pr_number": 104847, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "104853": { - "commit": "dcfe8f5d5c9531e3196eb5036a86643c728eafe7", - "text": "podInformer := NewPodInformer(kubeClient, 0)\n\tinformerFactory := informers.NewSharedInformerFactory(kubeClient, 0)\n\tnodeInformer := informerFactory.Core().V1().Nodes()\n\t....\n\trc.ScheduledPodsHasSynced = podInformer.Informer().HasSynced\n\t// scheduled pod cache\n\tpodInformer.Informer().AddEventHandler(\n\t\tcache.FilteringResourceEventHandler{\n\t\t\tFilterFunc: func(obj interface{}) bool {\n\t\t\t\tswitch t := obj.(type) {\n\t\t\t\tcase *v1.Pod:\n\t\t\t\t\treturn assignedNonTerminatedPod(t)\n\t\t\t\tcase cache.DeletedFinalStateUnknown:\n\t\t\t\t\tif pod, ok := t.Obj.(*v1.Pod); ok {\n\t\t\t\t\t\treturn assignedNonTerminatedPod(pod)\n\t\t\t\t\t}\n\t\t\t\t\truntime.HandleError(fmt.Errorf(\"unable to convert object %T to *v1.Pod in %T\", obj, rc))\n\t\t\t\t\treturn false\n\t\t\t\tdefault:\n\t\t\t\t\truntime.HandleError(fmt.Errorf(\"unable to handle object in %T: %T\", rc, obj))\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t},\n\t\t\tHandler: cache.ResourceEventHandlerFuncs{\n\t\t\t\tAddFunc: rc.addPodToCache,\n\t\t\t\tUpdateFunc: rc.updatePodInCache,\n\t\t\t\tDeleteFunc: rc.deletePodFromCache,\n\t\t\t},\n\t\t},\n\t)\n\n\tnodeInformer.Informer().AddEventHandler(\n\t\tcache.ResourceEventHandlerFuncs{\n\t\t\tAddFunc: rc.addNodeToCache,\n\t\t\tUpdateFunc: rc.updateNodeInCache,\n\t\t\tDeleteFunc: rc.deleteNodeFromCache,\n\t\t},\n\t)\n\n\trc.NodeLister = nodeInformer.Lister()\n\trc.PodLister = podInformer.Lister()\n\tgo podInformer.Informer().Run(stopCh)\n\tgo nodeInformer.Informer().Run(stopCh)\n\trc.InformerFactory.Start(stopCh)\n\t...", - "markdown": "PodInformer := NewPodInformer(kubeClient, 0)\n \tinformerFactory := informers.NewSharedInformerFactory(kubeClient, 0)\n \tnodeInformer := informerFactory.Core().V1().Nodes()\n \t....\n \trc.ScheduledPodsHasSynced = podInformer.Informer().HasSynced\n \t// scheduled pod cache\n \tpodInformer.Informer().AddEventHandler(\n \t\tcache.FilteringResourceEventHandler{\n \t\t\tFilterFunc: func(obj interface{}) bool {\n \t\t\t\tswitch t := obj.(type) {\n \t\t\t\tcase *v1.Pod:\n \t\t\t\t\treturn assignedNonTerminatedPod(t)\n \t\t\t\tcase cache.DeletedFinalStateUnknown:\n \t\t\t\t\tif pod, ok := t.Obj.(*v1.Pod); ok {\n \t\t\t\t\t\treturn assignedNonTerminatedPod(pod)\n \t\t\t\t\t}\n \t\t\t\t\truntime.HandleError(fmt.Errorf(\"unable to convert object %T to *v1.Pod in %T\", obj, rc))\n \t\t\t\t\treturn false\n \t\t\t\tdefault:\n \t\t\t\t\truntime.HandleError(fmt.Errorf(\"unable to handle object in %T: %T\", rc, obj))\n \t\t\t\t\treturn false\n \t\t\t\t}\n \t\t\t},\n \t\t\tHandler: cache.ResourceEventHandlerFuncs{\n \t\t\t\tAddFunc: rc.addPodToCache,\n \t\t\t\tUpdateFunc: rc.updatePodInCache,\n \t\t\t\tDeleteFunc: rc.deletePodFromCache,\n \t\t\t},\n \t\t},\n \t)\n \n \tnodeInformer.Informer().AddEventHandler(\n \t\tcache.ResourceEventHandlerFuncs{\n \t\t\tAddFunc: rc.addNodeToCache,\n \t\t\tUpdateFunc: rc.updateNodeInCache,\n \t\t\tDeleteFunc: rc.deleteNodeFromCache,\n \t\t},\n \t)\n \n \trc.NodeLister = nodeInformer.Lister()\n \trc.PodLister = podInformer.Lister()\n \tgo podInformer.Informer().Run(stopCh)\n \tgo nodeInformer.Informer().Run(stopCh)\n \trc.InformerFactory.Start(stopCh)\n \t... ([#104853](https://github.com/kubernetes/kubernetes/pull/104853), [@kitianFresh](https://github.com/kitianFresh)) [SIG API Machinery]", - "author": "kitianFresh", - "author_url": "https://github.com/kitianFresh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104853", - "pr_number": 104853, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "do_not_publish": true - }, - "104854": { - "commit": "91f820eee42a8126d95d1d706ae20740c9d57913", - "text": "kubeadm: switch the preflight check (called 'Swap') that verifies if swap is enabled on Linux hosts to report a warning instead of an error. This is related to the graduation of the NodeSwap feature gate in the kubelet to Beta and being enabled by default in 1.23 - allows swap support on Linux hosts. In the next release of kubeadm (1.24) the preflight check will be removed, thus we recommend that you stop using it - e.g. via `--ignore-preflight-errors` or the kubeadm config.", - "markdown": "Kubeadm: switch the preflight check (called 'Swap') that verifies if swap is enabled on Linux hosts to report a warning instead of an error. This is related to the graduation of the NodeSwap feature gate in the kubelet to Beta and being enabled by default in 1.23 - allows swap support on Linux hosts. In the next release of kubeadm (1.24) the preflight check will be removed, thus we recommend that you stop using it - e.g. via `--ignore-preflight-errors` or the kubeadm config. ([#104854](https://github.com/kubernetes/kubernetes/pull/104854), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2400-node-swap", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104854", - "pr_number": 104854, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "104873": { - "commit": "fb82a0d7eb252acacd9ef8b7cea63cf1cff535b3", - "text": "JSON log output is configurable and now supports writing info messages to stdout and error messages to stderr. Info messages can be buffered in memory. The default is to write both to stdout without buffering, as before.", - "markdown": "JSON log output is configurable and now supports writing info messages to stdout and error messages to stderr. Info messages can be buffered in memory. The default is to write both to stdout without buffering, as before. ([#104873](https://github.com/kubernetes/kubernetes/pull/104873), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components/README.md", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104873", - "pr_number": 104873, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "cluster-lifecycle", - "cli", - "instrumentation", - "architecture" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "104877": { - "commit": "a5cd438b9fbf49e013453f4d6c9b2e935a78071c", - "text": "Migrated kubernetes object references (= name + namespace) to structured logging when using JSON as log output format", - "markdown": "Migrated kubernetes object references (= name + namespace) to structured logging when using JSON as log output format ([#104877](https://github.com/kubernetes/kubernetes/pull/104877), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104877", - "pr_number": 104877, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "storage", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "104891": { - "commit": "daf5af29176953aa7573b2981749544e00fde610", - "text": "Migrated `pkg/proxy` to structured logging", - "markdown": "Migrated `pkg/proxy` to structured logging ([#104891](https://github.com/kubernetes/kubernetes/pull/104891), [@shivanshu1333](https://github.com/shivanshu1333))", - "author": "shivanshu1333", - "author_url": "https://github.com/shivanshu1333", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104891", - "pr_number": 104891, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "104894": { - "commit": "f31453fe5b37f8aa960fca06c02faba9c3bbc610", - "text": "Add support to generate client-side binaries for windows/arm64 platform", - "markdown": "Add support to generate client-side binaries for windows/arm64 platform ([#104894](https://github.com/kubernetes/kubernetes/pull/104894), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104894", - "pr_number": 104894, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "windows", - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "104904": { - "commit": "1d19d1a1d18c9d20834081e47b97dad206243809", - "text": "Kubernetes is now built with Golang 1.17.1.", - "markdown": "Kubernetes is now built with Golang 1.17.1. ([#104904](https://github.com/kubernetes/kubernetes/pull/104904), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104904", - "pr_number": 104904, - "areas": [ - "test", - "security", - "provider/gcp", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing", - "release", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "104908": { - "commit": "060f5b88d0d554fd8b38333ed25b8e73614ab630", - "text": "Migrate `pkg/proxy` to structured logging", - "markdown": "Migrate `pkg/proxy` to structured logging ([#104908](https://github.com/kubernetes/kubernetes/pull/104908), [@CIPHERTron](https://github.com/CIPHERTron))", - "author": "CIPHERTron", - "author_url": "https://github.com/CIPHERTron", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104908", - "pr_number": 104908, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "104915": { - "commit": "6edcb60d9f854903d341dc5155a78ff8221ad64e", - "text": "Track the number of Pods with a Ready condition in Job status. The feature is alpha and needs the feature gate JobReadyPods to be enabled.", - "markdown": "Track the number of Pods with a Ready condition in Job status. The feature is alpha and needs the feature gate JobReadyPods to be enabled. ([#104915](https://github.com/kubernetes/kubernetes/pull/104915), [@alculquicondor](https://github.com/alculquicondor))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2879-ready-pods-job-status", - "type": "KEP" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104915", - "pr_number": 104915, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "104923": { - "commit": "486ca678a03ef1bceb903376bc8f1757a1293fe0", - "text": "XFS-filesystems are now force-formatted (option `-f`) in order to avoid problems being formatted due to detection of magic super-blocks. This aligns with the behaviour of formatting of ext3/4 filesystems.", - "markdown": "XFS-filesystems are now force-formatted (option `-f`) in order to avoid problems being formatted due to detection of magic super-blocks. This aligns with the behaviour of formatting of ext3/4 filesystems. ([#104923](https://github.com/kubernetes/kubernetes/pull/104923), [@davidkarlsen](https://github.com/davidkarlsen))", - "author": "davidkarlsen", - "author_url": "https://github.com/davidkarlsen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104923", - "pr_number": 104923, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "104928": { - "commit": "5449ce7c5c9c3ed0e96b8b078c6c07a346b2891f", - "text": "Migrate cmd/proxy/app and pkg/proxy/meta_proxier to structured logging", - "markdown": "Migrate cmd/proxy/app and pkg/proxy/meta_proxier to structured logging ([#104928](https://github.com/kubernetes/kubernetes/pull/104928), [@jyz0309](https://github.com/jyz0309))", - "author": "jyz0309", - "author_url": "https://github.com/jyz0309", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104928", - "pr_number": 104928, - "areas": [ - "test", - "logging", - "kubeadm", - "ipvs", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "node", - "cluster-lifecycle", - "apps", - "testing" - ], - "duplicate": true - }, - "104931": { - "commit": "4916b6cd7486e2e0dd6ce5417ae4e6842356954a", - "text": "Migrated `pkg/proxy/userspace` to structured logging.", - "markdown": "Migrated `pkg/proxy/userspace` to structured logging. ([#104931](https://github.com/kubernetes/kubernetes/pull/104931), [@shivanshu1333](https://github.com/shivanshu1333))", - "author": "shivanshu1333", - "author_url": "https://github.com/shivanshu1333", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104931", - "pr_number": 104931, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "104932": { - "commit": "7d9a6d1de6552f66ca53ee69e072f604b4368c85", - "text": "Migrated `pkg/proxy/ipvs` to structured logging", - "markdown": "Migrated `pkg/proxy/ipvs` to structured logging ([#104932](https://github.com/kubernetes/kubernetes/pull/104932), [@shivanshu1333](https://github.com/shivanshu1333))", - "author": "shivanshu1333", - "author_url": "https://github.com/shivanshu1333", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104932", - "pr_number": 104932, - "areas": [ - "logging", - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "104942": { - "commit": "8975906dfc87732e063bb30e36b181a031988a52", - "text": "kubeadm: do not check if the `/etc/kubernetes/manifests` folder is empty on joining worker nodes during preflight", - "markdown": "Kubeadm: do not check if the `/etc/kubernetes/manifests` folder is empty on joining worker nodes during preflight ([#104942](https://github.com/kubernetes/kubernetes/pull/104942), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104942", - "pr_number": 104942, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "104944": { - "commit": "acbeaf8b8e1ee8de55f8167ac9c41d6c7526f9dd", - "text": "Migrate `cmd/proxy/{config, healthcheck, winkernel}` to structured logging", - "markdown": "Migrate `cmd/proxy/{config, healthcheck, winkernel}` to structured logging ([#104944](https://github.com/kubernetes/kubernetes/pull/104944), [@jyz0309](https://github.com/jyz0309))", - "author": "jyz0309", - "author_url": "https://github.com/jyz0309", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104944", - "pr_number": 104944, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "104969": { - "commit": "9c147baa70c31afc966329df73302e9b52d8e432", - "text": "kube-apiserver: Fixes handling of CRD schemas containing literal null values in enums.", - "markdown": "Kube-apiserver: Fixes handling of CRD schemas containing literal null values in enums. ([#104969](https://github.com/kubernetes/kubernetes/pull/104969), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104969", - "pr_number": 104969, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "network", - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "104970": { - "commit": "abd83afaeca9504a75e942460a1e23740da0e28e", - "text": "Updates `debian-iptables` to v1.6.7 to pick up CVE fixes.", - "markdown": "Updates `debian-iptables` to v1.6.7 to pick up CVE fixes. ([#104970](https://github.com/kubernetes/kubernetes/pull/104970), [@PushkarJ](https://github.com/PushkarJ))", - "author": "PushkarJ", - "author_url": "https://github.com/PushkarJ", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104970", - "pr_number": 104970, - "areas": [ - "test", - "security", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "testing", - "release", - "security" - ], - "feature": true, - "duplicate": true - }, - "104983": { - "commit": "5b489e2846a7fb959252dc5a04fe21ec844e9fad", - "text": "The kube-apiserver's Prometheus metrics have been extended with some that describe the costs of handling LIST requests. They are as follows.\n- *apiserver_cache_list_total*: Counter of LIST requests served from watch cache, broken down by resource_prefix and index_name\n- *apiserver_cache_list_fetched_objects_total*: Counter of objects read from watch cache in the course of serving a LIST request, broken down by resource_prefix and index_name\n- *apiserver_cache_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from watch cache, broken down by resource_prefix\n- *apiserver_cache_list_returned_objects_total*: Counter of objects returned for a LIST request from watch cache, broken down by resource_prefix\n- *apiserver_storage_list_total*: Counter of LIST requests served from etcd, broken down by resource\n- *apiserver_storage_list_fetched_objects_total*: Counter of objects read from etcd in the course of serving a LIST request, broken down by resource\n- *apiserver_storage_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from etcd, broken down by resource\n- *apiserver_storage_list_returned_objects_total*: Counter of objects returned for a LIST request from etcd, broken down by resource", - "markdown": "The kube-apiserver's Prometheus metrics have been extended with some that describe the costs of handling LIST requests. They are as follows.\n - *apiserver_cache_list_total*: Counter of LIST requests served from watch cache, broken down by resource_prefix and index_name\n - *apiserver_cache_list_fetched_objects_total*: Counter of objects read from watch cache in the course of serving a LIST request, broken down by resource_prefix and index_name\n - *apiserver_cache_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from watch cache, broken down by resource_prefix\n - *apiserver_cache_list_returned_objects_total*: Counter of objects returned for a LIST request from watch cache, broken down by resource_prefix\n - *apiserver_storage_list_total*: Counter of LIST requests served from etcd, broken down by resource\n - *apiserver_storage_list_fetched_objects_total*: Counter of objects read from etcd in the course of serving a LIST request, broken down by resource\n - *apiserver_storage_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from etcd, broken down by resource\n - *apiserver_storage_list_returned_objects_total*: Counter of objects returned for a LIST request from etcd, broken down by resource ([#104983](https://github.com/kubernetes/kubernetes/pull/104983), [@MikeSpreitzer](https://github.com/MikeSpreitzer))", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104983", - "pr_number": 104983, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "104986": { - "commit": "924f1968828da3b0c20a9eea2e19236a47fa689f", - "text": "Headless Services with no selector which were created without dual-stack enabled will be defaulted to RequireDualStack instead of PreferDualStack. This is consistent with such Services which are created with dual-stack enabled.", - "markdown": "Headless Services with no selector which were created without dual-stack enabled will be defaulted to RequireDualStack instead of PreferDualStack. This is consistent with such Services which are created with dual-stack enabled. ([#104986](https://github.com/kubernetes/kubernetes/pull/104986), [@thockin](https://github.com/thockin))", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104986", - "pr_number": 104986, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "105003": { - "commit": "894ceb63d09bf4000ba938d570a5aaeb20613a64", - "text": "Move the `GetAllocatableResources` Endpoint in PodResource API to the beta that will make it enabled by default.", - "markdown": "Move the `GetAllocatableResources` Endpoint in PodResource API to the beta that will make it enabled by default. ([#105003](https://github.com/kubernetes/kubernetes/pull/105003), [@swatisehgal](https://github.com/swatisehgal))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2403-pod-resources-allocatable-resources/README.md", - "type": "KEP" - } - ], - "author": "swatisehgal", - "author_url": "https://github.com/swatisehgal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105003", - "pr_number": 105003, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "105012": { - "commit": "63f66e6c99ab59a6143dcd377cf93b6dde318c59", - "text": "The CPUManager policy options are now enabled, and we introduce a graduation path for the new CPU Manager policy options.", - "markdown": "The CPUManager policy options are now enabled, and we introduce a graduation path for the new CPU Manager policy options. ([#105012](https://github.com/kubernetes/kubernetes/pull/105012), [@fromanirh](https://github.com/fromanirh))", - "author": "fromanirh", - "author_url": "https://github.com/fromanirh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105012", - "pr_number": 105012, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "105034": { - "commit": "73d51a21dbe7504a00423877e272a279a21a115f", - "text": "kubeadm: remove the `--port` flag from the manifest for the kube-scheduler since the flag has been a NO-OP since 1.23 and insecure serving was removed for the component.", - "markdown": "Kubeadm: remove the `--port` flag from the manifest for the kube-scheduler since the flag has been a NO-OP since 1.23 and insecure serving was removed for the component. ([#105034](https://github.com/kubernetes/kubernetes/pull/105034), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105034", - "pr_number": 105034, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "105035": { - "commit": "f06ce08d63db87da3d5cf6aaf8a50c858e5d8a35", - "text": "Migrated pkg/proxy/winuserspace to structured logging", - "markdown": "Migrated pkg/proxy/winuserspace to structured logging ([#105035](https://github.com/kubernetes/kubernetes/pull/105035), [@shivanshu1333](https://github.com/shivanshu1333))", - "author": "shivanshu1333", - "author_url": "https://github.com/shivanshu1333", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105035", - "pr_number": 105035, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "105042": { - "commit": "e4e2c51648e1ab12965800f71bc3f5baa9496a2f", - "text": "All `klog` flags except for `-v` and `-vmodule` are deprecated. Support for `-vmodule` is only guaranteed for the text log format.", - "markdown": "All `klog` flags except for `-v` and `-vmodule` are deprecated. Support for `-vmodule` is only guaranteed for the text log format. ([#105042](https://github.com/kubernetes/kubernetes/pull/105042), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2845", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105042", - "pr_number": 105042, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "cli", - "instrumentation", - "architecture" - ], - "duplicate": true - }, - "105046": { - "commit": "fb70ca9b7b24ce90b19b0d565ae43e6af20458ad", - "text": "Fix system default topology spreading when nodes don't have zone labels. Pods correctly spread by default now.", - "markdown": "Fix system default topology spreading when nodes don't have zone labels. Pods correctly spread by default now. ([#105046](https://github.com/kubernetes/kubernetes/pull/105046), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105046", - "pr_number": 105046, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "105069": { - "commit": "63e7ee43bb5394abd6dd5010be47ebcb22ec0ef8", - "text": "Make the etcd client (used by the API server) retry certain types of errors. The full list of retriable (codes.Unavailable) errors can be found at https://github.com/etcd-io/etcd/blob/main/api/v3rpc/rpctypes/error.go#L72", - "markdown": "Make the etcd client (used by the API server) retry certain types of errors. The full list of retriable (codes.Unavailable) errors can be found at https://github.com/etcd-io/etcd/blob/main/api/v3rpc/rpctypes/error.go#L72 ([#105069](https://github.com/kubernetes/kubernetes/pull/105069), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105069", - "pr_number": 105069, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "105076": { - "commit": "82da9bdaab705a1a72e4c5915f6ddd8775592fdf", - "text": "`--log-flush-frequency` had no effect in several commands or was missing. Help and warning texts were not always using the right format for a command (`add_dir_header` instead of `add-dir-header`). Fixing this included cleaning up flag handling in component-base/logs: that package no longer adds flags to the global flag sets. Commands which want the klog and `--log-flush-frequency` flags must explicitly call `logs.AddFlags`; the new `cli.Run` does that for commands. That helper function also covers flag normalization and printing of usage and errors in a consistent way (print usage text first if parsing failed, then the error).", - "markdown": "`--log-flush-frequency` had no effect in several commands or was missing. Help and warning texts were not always using the right format for a command (`add_dir_header` instead of `add-dir-header`). Fixing this included cleaning up flag handling in component-base/logs: that package no longer adds flags to the global flag sets. Commands which want the klog and `--log-flush-frequency` flags must explicitly call `logs.AddFlags`; the new `cli.Run` does that for commands. That helper function also covers flag normalization and printing of usage and errors in a consistent way (print usage text first if parsing failed, then the error). ([#105076](https://github.com/kubernetes/kubernetes/pull/105076), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105076", - "pr_number": 105076, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "release-eng", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "scheduling", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "105107": { - "commit": "6f47878926f1aa51e0864821d882bf695558709a", - "text": "Added a new feature gate `CustomResourceValidationExpressions` to enable expression validation for Custom Resource.", - "markdown": "Added a new feature gate `CustomResourceValidationExpressions` to enable expression validation for Custom Resource. ([#105107](https://github.com/kubernetes/kubernetes/pull/105107), [@cici37](https://github.com/cici37))", - "documentation": [ - { - "description": "[KEP]: \u003c", - "url": "http://kep.k8s.io/2876\u003e", - "type": "external" - } - ], - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105107", - "pr_number": 105107, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "105140": { - "commit": "47041cd2a2ff325d70bf23f361c7f59e5ba4c9a1", - "text": "Added the ability to specify whether to use an RFC7396 JSON Merge Patch, an RFC6902 JSON Patch, or a Strategic Merge Patch to perform an override of the resources created by `kubectl run` and `kubectl expose`.", - "markdown": "Added the ability to specify whether to use an RFC7396 JSON Merge Patch, an RFC6902 JSON Patch, or a Strategic Merge Patch to perform an override of the resources created by `kubectl run` and `kubectl expose`. ([#105140](https://github.com/kubernetes/kubernetes/pull/105140), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105140", - "pr_number": 105140, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "105156": { - "commit": "b7da9ef49f82ac8b54d28931a5b3e1de30accfd3", - "text": "`client-go`, using log level 9, traces the following events of a HTTP request:\n - DNS lookup\n - TCP dialing\n - TLS handshake\n - Time to get a connection from the pool\n - Time to process a request", - "markdown": "`client-go`, using log level 9, traces the following events of a HTTP request:\n - DNS lookup\n - TCP dialing\n - TLS handshake\n - Time to get a connection from the pool\n - Time to process a request ([#105156](https://github.com/kubernetes/kubernetes/pull/105156), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105156", - "pr_number": 105156, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "105158": { - "commit": "d385d0602a1075837bf8713b9f56964c154aede7", - "text": "Update build images to Debian 11 (Bullseye)\n- debian-base:bullseye-v1.0.0\n- debian-iptables:bullseye-v1.0.0\n- go-runner:v2.3.1-go1.17.1-bullseye.0\n- kube-cross:v1.23.0-go1.17.1-bullseye.1\n- setcap:bullseye-v1.0.0\n- cluster/images/etcd: Build 3.5.0-2 image\n- test/conformance/image: Update runner image to base-debian11", - "markdown": "Update build images to Debian 11 (Bullseye)\n - debian-base:bullseye-v1.0.0\n - debian-iptables:bullseye-v1.0.0\n - go-runner:v2.3.1-go1.17.1-bullseye.0\n - kube-cross:v1.23.0-go1.17.1-bullseye.1\n - setcap:bullseye-v1.0.0\n - cluster/images/etcd: Build 3.5.0-2 image\n - test/conformance/image: Update runner image to base-debian11 ([#105158](https://github.com/kubernetes/kubernetes/pull/105158), [@justaugustus](https://github.com/justaugustus))", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105158", - "pr_number": 105158, - "areas": [ - "test", - "security", - "release-eng", - "conformance", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing", - "release", - "architecture" - ], - "duplicate": true - }, - "105185": { - "commit": "26365faf310dab52e5ec359158c7b91bc2aa5243", - "text": "Ignore `not a vmss instance` error for VMAS nodes in `EnsureBackendPoolDeleted`.", - "markdown": "Ignore `not a vmss instance` error for VMAS nodes in `EnsureBackendPoolDeleted`. ([#105185](https://github.com/kubernetes/kubernetes/pull/105185), [@ialidzhikov](https://github.com/ialidzhikov))", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105185", - "pr_number": 105185, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "105188": { - "commit": "1ad3e14f1fc4a5f6e6cd6f9ffc7d030cb3d6540d", - "text": "Fixed consolidate logs for `instance not found` error\nFixed skip `not found` nodes when reconciling LB backend address pools", - "markdown": "Fixed consolidate logs for `instance not found` error\n Fixed skip `not found` nodes when reconciling LB backend address pools ([#105188](https://github.com/kubernetes/kubernetes/pull/105188), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105188", - "pr_number": 105188, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "105196": { - "commit": "16fdb2f39148e8843e999780fc7bd3ee161349fb", - "text": "Enhanced error message for nodes not selected by scheduler due to pod's PersistentVolumeClaim(s) bound to PersistentVolume(s) that do not exist.", - "markdown": "Enhanced error message for nodes not selected by scheduler due to pod's PersistentVolumeClaim(s) bound to PersistentVolume(s) that do not exist. ([#105196](https://github.com/kubernetes/kubernetes/pull/105196), [@yibozhuang](https://github.com/yibozhuang))", - "author": "yibozhuang", - "author_url": "https://github.com/yibozhuang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105196", - "pr_number": 105196, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "storage" - ], - "duplicate": true - }, - "105197": { - "commit": "0a29e2a73a5f7e5c9ef35787a09cc69c74e42dd6", - "text": "When feature gate `JobTrackingWithFinalizers` is enabled:\n- Limit the number of Pods tracked in a single Job sync to avoid starvation of small Jobs.\n- The metric `job_pod_finished_total` counts the number of finished Pods tracked by the Job controller.", - "markdown": "When feature gate `JobTrackingWithFinalizers` is enabled:\n - Limit the number of Pods tracked in a single Job sync to avoid starvation of small Jobs.\n - The metric `job_pod_finished_total` counts the number of finished Pods tracked by the Job controller. ([#105197](https://github.com/kubernetes/kubernetes/pull/105197), [@alculquicondor](https://github.com/alculquicondor))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2307-job-tracking-without-lingering-pods", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#job-tracking-with-finalizers", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105197", - "pr_number": 105197, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "105211": { - "commit": "baaa53db64aa703e75610fb773ed5278f1c202a1", - "text": "Fixed a bug that prevents a PersistentVolume that has a PersistentVolumeClaim UID which doesn't exist in local cache but exists in etcd from being updated to the Released phase.", - "markdown": "Fixed a bug that prevents a PersistentVolume that has a PersistentVolumeClaim UID which doesn't exist in local cache but exists in etcd from being updated to the Released phase. ([#105211](https://github.com/kubernetes/kubernetes/pull/105211), [@xiaopingrubyist](https://github.com/xiaopingrubyist))", - "author": "xiaopingrubyist", - "author_url": "https://github.com/xiaopingrubyist", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105211", - "pr_number": 105211, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "105213": { - "commit": "e138afc35d0d3fc0d231dc3aac3627a95c2dccfb", - "text": "Removed the error message label from the `kubelet_started_pods_errors_total` metric", - "markdown": "Removed the error message label from the `kubelet_started_pods_errors_total` metric ([#105213](https://github.com/kubernetes/kubernetes/pull/105213), [@yxxhero](https://github.com/yxxhero))", - "author": "yxxhero", - "author_url": "https://github.com/yxxhero", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105213", - "pr_number": 105213, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "instrumentation" - ], - "duplicate": true - }, - "105214": { - "commit": "aec9acda6818684a2e9b98b22ee8d0ab23e77580", - "text": "Fix job controller syncs: In case of conflicts, ensure that the sync happens with the most up to date information. Improves reliability of JobTrackingWithFinalizers.", - "markdown": "Fix job controller syncs: In case of conflicts, ensure that the sync happens with the most up to date information. Improves reliability of JobTrackingWithFinalizers. ([#105214](https://github.com/kubernetes/kubernetes/pull/105214), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105214", - "pr_number": 105214, - "kinds": [ - "bug", - "flake" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "105215": { - "commit": "a923852ba06e520c7b531e5cf102d78744dd6f53", - "text": "Kubelet's Node Grace Shutdown will terminate probes when shutting down", - "markdown": "Kubelet's Node Grace Shutdown will terminate probes when shutting down ([#105215](https://github.com/kubernetes/kubernetes/pull/105215), [@rphillips](https://github.com/rphillips))", - "author": "rphillips", - "author_url": "https://github.com/rphillips", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105215", - "pr_number": 105215, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "105219": { - "commit": "76c86ce324c7915a0ffc4d3ba0dcaf6c3c6ba403", - "text": "The `TTLAfterFinished` feature gate is now GA and enabled by default.", - "markdown": "The `TTLAfterFinished` feature gate is now GA and enabled by default. ([#105219](https://github.com/kubernetes/kubernetes/pull/105219), [@sahilvv](https://github.com/sahilvv))", - "author": "sahilvv", - "author_url": "https://github.com/sahilvv", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105219", - "pr_number": 105219, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "105222": { - "commit": "519b164db1320d2243c807c60ffc2e499318f283", - "text": "Remove `NodeLease` feature gate that was graduated and locked to stable in 1.17 release.", - "markdown": "Remove `NodeLease` feature gate that was graduated and locked to stable in 1.17 release. ([#105222](https://github.com/kubernetes/kubernetes/pull/105222), [@cyclinder](https://github.com/cyclinder))", - "author": "cyclinder", - "author_url": "https://github.com/cyclinder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105222", - "pr_number": 105222, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "node", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "105245": { - "commit": "6c292ce27008391f2223ef12f7979fb0d6b96f2d", - "text": "Enhance scheduler `VolumeBinding` plugin to handle Lost PVC as `UnschedulableAndUnresolvable`", - "markdown": "Enhance scheduler `VolumeBinding` plugin to handle Lost PVC as `UnschedulableAndUnresolvable` ([#105245](https://github.com/kubernetes/kubernetes/pull/105245), [@yibozhuang](https://github.com/yibozhuang))", - "author": "yibozhuang", - "author_url": "https://github.com/yibozhuang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105245", - "pr_number": 105245, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true - }, - "105253": { - "commit": "763e528e5bf02218b9c69d07074b9361a917adbc", - "text": "fix: leave the probe path empty for TCP probes", - "markdown": "Fix: leave the probe path empty for TCP probes ([#105253](https://github.com/kubernetes/kubernetes/pull/105253), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105253", - "pr_number": 105253, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "105267": { - "commit": "598a8829c1b6c1cdf79733de9f9ae104c9ce717d", - "text": "Fixes a bug that could result in the EndpointSlice controller unnecessarily updating EndpointSlices associated with a Service that had Topology Aware Hints enabled.", - "markdown": "Fixes a bug that could result in the EndpointSlice controller unnecessarily updating EndpointSlices associated with a Service that had Topology Aware Hints enabled. ([#105267](https://github.com/kubernetes/kubernetes/pull/105267), [@llhuii](https://github.com/llhuii))", - "author": "llhuii", - "author_url": "https://github.com/llhuii", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105267", - "pr_number": 105267, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "105292": { - "commit": "a9ad15c42102ce6a53ece6d3b6f41e85f2d89f60", - "text": "Kubelet should reject pods whose OS doesn't match the node's OS label.", - "markdown": "Kubelet should reject pods whose OS doesn't match the node's OS label. ([#105292](https://github.com/kubernetes/kubernetes/pull/105292), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Apps and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2803", - "type": "KEP" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105292", - "pr_number": 105292, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "105295": { - "commit": "73f4064fff7b0c5fb411c0f103f9e44c758c5f1d", - "text": "kubeadm: add a new `output/v1alpha2` API that is identical to the `output/v1alpha1`, but attempts to resolve some internal dependencies with the `kubeadm/v1beta2` API. The `output/v1alpha1` API is now deprecated and will be removed in a future release.", - "markdown": "Kubeadm: add a new `output/v1alpha2` API that is identical to the `output/v1alpha1`, but attempts to resolve some internal dependencies with the `kubeadm/v1beta2` API. The `output/v1alpha1` API is now deprecated and will be removed in a future release. ([#105295](https://github.com/kubernetes/kubernetes/pull/105295), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105295", - "pr_number": 105295, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "feature", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "105327": { - "commit": "bac45abf77ed1f96921365c056303066fc177702", - "text": "Removed `kubectl --dry-run` empty default value and boolean values. `kubectl --dry-run` usage must be specified with `--dry-run=(server|client|none)`.", - "markdown": "Removed `kubectl --dry-run` empty default value and boolean values. `kubectl --dry-run` usage must be specified with `--dry-run=(server|client|none)`. ([#105327](https://github.com/kubernetes/kubernetes/pull/105327), [@julianvmodesto](https://github.com/julianvmodesto))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/0e4d5df19d396511fe41ed0860b0ab9b96f46a2d/keps/sig-api-machinery/576-dry-run/README.md", - "type": "KEP" - } - ], - "author": "julianvmodesto", - "author_url": "https://github.com/julianvmodesto", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105327", - "pr_number": 105327, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "105352": { - "commit": "e1b94fdac9cf217b3ddf6ff0c18023e43120779a", - "text": "Revert building binaries with PIE mode.", - "markdown": "Revert building binaries with PIE mode. ([#105352](https://github.com/kubernetes/kubernetes/pull/105352), [@ehashman](https://github.com/ehashman))", - "author": "ehashman", - "author_url": "https://github.com/ehashman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105352", - "pr_number": 105352, - "kinds": [ - "regression" - ], - "sigs": [ - "node", - "release", - "security" - ], - "duplicate": true - }, - "105396": { - "commit": "6044cdbb31eecfe32c6236a1a260c3383b074b51", - "text": "Fixes the `should support building a client with a CSR` E2E test to work with clusters configured with short certificate lifetimes", - "markdown": "Fixes the `should support building a client with a CSR` E2E test to work with clusters configured with short certificate lifetimes ([#105396](https://github.com/kubernetes/kubernetes/pull/105396), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105396", - "pr_number": 105396, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "testing" - ], - "duplicate": true - }, - "105405": { - "commit": "18104ecf1f57362ae6b33f01ce6413d7fec4f715", - "text": "Ephemeral containers graduated to beta and are now available by default.", - "markdown": "Ephemeral containers graduated to beta and are now available by default. ([#105405](https://github.com/kubernetes/kubernetes/pull/105405), [@verb](https://github.com/verb))", - "documentation": [ - { - "description": "[KEP]", - "url": "http://kep.k8s.io/277", - "type": "external" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/tasks/debug-application-cluster/debug-running-pod/", - "type": "official" - } - ], - "author": "verb", - "author_url": "https://github.com/verb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105405", - "pr_number": 105405, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "105421": { - "commit": "0b0007ae68c464cf97759057226a0930f91c3893", - "text": "Fixed a bug where using `kubectl patch` with `$deleteFromPrimitiveList` on a nonexistent or empty list would add the item to the list", - "markdown": "Fixed a bug where using `kubectl patch` with `$deleteFromPrimitiveList` on a nonexistent or empty list would add the item to the list ([#105421](https://github.com/kubernetes/kubernetes/pull/105421), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105421", - "pr_number": 105421, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "105424": { - "commit": "835980ac67c839fc796f12caa2c5b86926abe2d9", - "text": "The legacy scheduler policy config is removed in v1.23, the associated flags `policy-config-file`, `policy-configmap`, `policy-configmap-namespace` and `use-legacy-policy-config` are also removed. Migrate to Component Config instead, see https://kubernetes.io/docs/reference/scheduling/config/ for details.", - "markdown": "The legacy scheduler policy config is removed in v1.23, the associated flags `policy-config-file`, `policy-configmap`, `policy-configmap-namespace` and `use-legacy-policy-config` are also removed. Migrate to Component Config instead, see https://kubernetes.io/docs/reference/scheduling/config/ for details. ([#105424](https://github.com/kubernetes/kubernetes/pull/105424), [@kerthcet](https://github.com/kerthcet))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2901", - "type": "KEP" - } - ], - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105424", - "pr_number": 105424, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "105437": { - "commit": "1f6d5caa9a783af299ae202d14ba30a9ad6ce565", - "text": "The Kubelet's `--register-with-taints` option is now available via the Kubelet config file field registerWithTaints", - "markdown": "The Kubelet's `--register-with-taints` option is now available via the Kubelet config file field registerWithTaints ([#105437](https://github.com/kubernetes/kubernetes/pull/105437), [@cmssczy](https://github.com/cmssczy)) [SIG Node and Scalability]", - "author": "cmssczy", - "author_url": "https://github.com/cmssczy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105437", - "pr_number": 105437, - "areas": [ - "kubelet", - "kubelet-api" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scalability", - "node" - ], - "duplicate": true, - "duplicate_kind": true - }, - "105445": { - "commit": "e054181e517b48a3c862207537092c28604aaad9", - "text": "Change `kubectl diff --invalid-arg` status code from 1 to 2 to match docs", - "markdown": "Change `kubectl diff --invalid-arg` status code from 1 to 2 to match docs ([#105445](https://github.com/kubernetes/kubernetes/pull/105445), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105445", - "pr_number": 105445, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "105462": { - "commit": "907d62eac8bdbb8bceea8e3767f6f3b9061a17f5", - "text": "Evicted and other terminated Pods will no longer revert to the `Running` phase.", - "markdown": "Evicted and other terminated Pods will no longer revert to the `Running` phase. ([#105462](https://github.com/kubernetes/kubernetes/pull/105462), [@ehashman](https://github.com/ehashman))", - "author": "ehashman", - "author_url": "https://github.com/ehashman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105462", - "pr_number": 105462, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "105466": { - "commit": "7cce7eec116f4487c6f6a73d7751322c84e64830", - "text": "apimachinery: Pretty printed JSON and YAML output is now indented consistently.", - "markdown": "Apimachinery: Pretty printed JSON and YAML output is now indented consistently. ([#105466](https://github.com/kubernetes/kubernetes/pull/105466), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105466", - "pr_number": 105466, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "105474": { - "commit": "a8bda48abeccf3daaafb0a95e9e86eccd30b389e", - "text": "Feature-gate `VolumeSubpath` has been deprecated and cannot be disabled. It will be completely removed in 1.25", - "markdown": "Feature-gate `VolumeSubpath` has been deprecated and cannot be disabled. It will be completely removed in 1.25 ([#105474](https://github.com/kubernetes/kubernetes/pull/105474), [@mauriciopoppe](https://github.com/mauriciopoppe))", - "author": "mauriciopoppe", - "author_url": "https://github.com/mauriciopoppe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105474", - "pr_number": 105474, - "kinds": [ - "deprecation" - ], - "sigs": [ - "storage" - ] - }, - "105479": { - "commit": "dea052ceba25fa3ad27c152bdcd0abbf0ff49ec5", - "text": "Node affinity, Node selectors, and tolerations are now mutable for Jobs that are suspended and have never been started", - "markdown": "Node affinity, Node selectors, and tolerations are now mutable for Jobs that are suspended and have never been started ([#105479](https://github.com/kubernetes/kubernetes/pull/105479), [@ahg-g](https://github.com/ahg-g))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/2926-job-mutable-scheduling-directives", - "type": "KEP" - } - ], - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105479", - "pr_number": 105479, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "105484": { - "commit": "9cb0c403df65defb3844e87e9d0a09495a231120", - "text": "Fixed architecture within manifest for non `amd64` etcd images.", - "markdown": "Fixed architecture within manifest for non `amd64` etcd images. ([#105484](https://github.com/kubernetes/kubernetes/pull/105484), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105484", - "pr_number": 105484, - "areas": [ - "release-eng" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "105490": { - "commit": "881980a5c67b7636fd983c481b2648bc4e00c242", - "text": "client-go uses the same HTTP client for all the generated groups and versions, allowing to share customized transports for multiple groups versions.", - "markdown": "Client-go uses the same HTTP client for all the generated groups and versions, allowing to share customized transports for multiple groups versions. ([#105490](https://github.com/kubernetes/kubernetes/pull/105490), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105490", - "pr_number": 105490, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "105495": { - "commit": "dea14dbdcc9d2eb5b380af09cce16bc6fabf62e5", - "text": "Feature gate `StorageObjectInUseProtection` has been deprecated and cannot be disabled. It will be completely removed in 1.25", - "markdown": "Feature gate `StorageObjectInUseProtection` has been deprecated and cannot be disabled. It will be completely removed in 1.25 ([#105495](https://github.com/kubernetes/kubernetes/pull/105495), [@ikeeip](https://github.com/ikeeip))", - "author": "ikeeip", - "author_url": "https://github.com/ikeeip", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105495", - "pr_number": 105495, - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "duplicate_kind": true - }, - "105511": { - "commit": "313b43a8cb792efb26de0ade8da7bb9abe523674", - "text": "Watch requests that are delegated to aggregated API servers no longer reserve concurrency units (seats) in the API Priority and Fairness dispatcher for their entire duration.", - "markdown": "Watch requests that are delegated to aggregated API servers no longer reserve concurrency units (seats) in the API Priority and Fairness dispatcher for their entire duration. ([#105511](https://github.com/kubernetes/kubernetes/pull/105511), [@benluddy](https://github.com/benluddy))", - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105511", - "pr_number": 105511, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "105512": { - "commit": "ba944971f66210d09273ee779380d3e116f75880", - "text": "Do not unmount and mount subpath bind mounts during container creation unless bind mount changes", - "markdown": "Do not unmount and mount subpath bind mounts during container creation unless bind mount changes ([#105512](https://github.com/kubernetes/kubernetes/pull/105512), [@gnufied](https://github.com/gnufied)) [SIG Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105512", - "pr_number": 105512, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "105563": { - "commit": "d09ce7be1c3b98afabaab1e01494546a2f4a95c5", - "text": "Kubernetes is now built with Golang 1.17.2", - "markdown": "Kubernetes is now built with Golang 1.17.2 ([#105563](https://github.com/kubernetes/kubernetes/pull/105563), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105563", - "pr_number": 105563, - "areas": [ - "test", - "provider/gcp", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing", - "release", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "105569": { - "commit": "dc9c5711661180b6d651621435829d5570fb1a29", - "text": "kubelet did not report `kubelet_volume_stats_*` metrics for Generic Ephemeral Volumes.", - "markdown": "Kubelet did not report `kubelet_volume_stats_*` metrics for Generic Ephemeral Volumes. ([#105569](https://github.com/kubernetes/kubernetes/pull/105569), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105569", - "pr_number": 105569, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "105571": { - "commit": "766a7e2e00ea42d17acb7a4cc66b8d9f579bce60", - "text": "Remove ignore error flag for drain, and set this feature as default", - "markdown": "Remove ignore error flag for drain, and set this feature as default ([#105571](https://github.com/kubernetes/kubernetes/pull/105571), [@yuzhiquan](https://github.com/yuzhiquan)) [SIG CLI]", - "author": "yuzhiquan", - "author_url": "https://github.com/yuzhiquan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105571", - "pr_number": 105571, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "105606": { - "commit": "2dede1d4d453413da6fd852e00fc7d4c8784d2a8", - "text": "kube-apiserver: fix a memory leak when deleting multiple objects with a `deletecollection`.", - "markdown": "Kube-apiserver: fix a memory leak when deleting multiple objects with a `deletecollection`. ([#105606](https://github.com/kubernetes/kubernetes/pull/105606), [@sxllwx](https://github.com/sxllwx))", - "author": "sxllwx", - "author_url": "https://github.com/sxllwx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105606", - "pr_number": 105606, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "105609": { - "commit": "c592bd40f2df941aa4ea364592ce92fd5c669bfc", - "text": "The \"Generic Ephemeral Volume\" feature graduates to GA. It is now enabled unconditionally.", - "markdown": "The \"Generic Ephemeral Volume\" feature graduates to GA. It is now enabled unconditionally. ([#105609](https://github.com/kubernetes/kubernetes/pull/105609), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/e669a1483064f4a3f248e78c9b8399858ca75f66/keps/sig-storage/1698-generic-ephemeral-volumes/README.md", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105609", - "pr_number": 105609, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "105611": { - "commit": "c0b5ed75560c47b085815b88bcb9f7b00a553ef2", - "text": "KubeSchedulerConfiguration provides a new field `MultiPoint` which will register a plugin for all valid extension points", - "markdown": "KubeSchedulerConfiguration provides a new field `MultiPoint` which will register a plugin for all valid extension points ([#105611](https://github.com/kubernetes/kubernetes/pull/105611), [@damemi](https://github.com/damemi)) [SIG Scheduling and Testing]", - "author": "damemi", - "author_url": "https://github.com/damemi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105611", - "pr_number": 105611, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "105631": { - "commit": "b2c4269992498d3a44f1b79a20eb14b8dc61b380", - "text": "Add a new `distribute-cpus-across-numa` option to the static `CPUManager` policy. When enabled, this will trigger the `CPUManager` to evenly distribute CPUs across NUMA nodes in cases where more than one NUMA node is required to satisfy the allocation.", - "markdown": "Add a new `distribute-cpus-across-numa` option to the static `CPUManager` policy. When enabled, this will trigger the `CPUManager` to evenly distribute CPUs across NUMA nodes in cases where more than one NUMA node is required to satisfy the allocation. ([#105631](https://github.com/kubernetes/kubernetes/pull/105631), [@klueska](https://github.com/klueska))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2902-cpumanager-distribute-cpus-policy-option", - "type": "KEP" - } - ], - "author": "klueska", - "author_url": "https://github.com/klueska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105631", - "pr_number": 105631, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "105649": { - "commit": "3f85ed46db1c0ab06f07866cbff9df0a366796b7", - "text": "kubeadm: do not allow empty `--config` paths to be passed to `kubeadm kubeconfig user`", - "markdown": "Kubeadm: do not allow empty `--config` paths to be passed to `kubeadm kubeconfig user` ([#105649](https://github.com/kubernetes/kubernetes/pull/105649), [@navist2020](https://github.com/navist2020))", - "author": "navist2020", - "author_url": "https://github.com/navist2020", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105649", - "pr_number": 105649, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "105666": { - "commit": "421cdec3a5d1a185ce36398f4505d8b44d1c74f7", - "text": "Fix: skip `instance not found` when decoupling VMSSs from LB", - "markdown": "Fix: skip `instance not found` when decoupling VMSSs from LB ([#105666](https://github.com/kubernetes/kubernetes/pull/105666), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105666", - "pr_number": 105666, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "105673": { - "commit": "655c04d9f530e5ebc2ec6f5feef76716c8a9db22", - "text": "Support more than 100 disk mounts on Windows", - "markdown": "Support more than 100 disk mounts on Windows ([#105673](https://github.com/kubernetes/kubernetes/pull/105673), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105673", - "pr_number": 105673, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "windows" - ], - "duplicate": true - }, - "105676": { - "commit": "0bfa37dfccf9b5459b03c4fdc2b0c894bbc53c38", - "text": "Fix pod name of NonIndexed Jobs to not include rogue `-1` substring", - "markdown": "Fix pod name of NonIndexed Jobs to not include rogue `-1` substring ([#105676](https://github.com/kubernetes/kubernetes/pull/105676), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105676", - "pr_number": 105676, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "105682": { - "commit": "7fbb384e15e2fb8370513eab9443c5107df1b257", - "text": "Be able to create a Pod with Generic Ephemeral Volumes as raw block devices.", - "markdown": "Be able to create a Pod with Generic Ephemeral Volumes as raw block devices. ([#105682](https://github.com/kubernetes/kubernetes/pull/105682), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105682", - "pr_number": 105682, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "apps", - "testing" - ], - "duplicate": true - }, - "105687": { - "commit": "c733594040f697efbf570bef79df5678b513b1c6", - "text": "JobTrackingWithFinalizers graduates to beta. Feature is enabled by default.", - "markdown": "JobTrackingWithFinalizers graduates to beta. Feature is enabled by default. ([#105687](https://github.com/kubernetes/kubernetes/pull/105687), [@alculquicondor](https://github.com/alculquicondor))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2307-job-tracking-without-lingering-pods", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#job-tracking-with-finalizers", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105687", - "pr_number": 105687, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "105706": { - "commit": "1c127d36828929d9c8d405cb3c0236ff267893cd", - "text": "Upgrade etcd to 3.5.1", - "markdown": "Upgrade etcd to 3.5.1 ([#105706](https://github.com/kubernetes/kubernetes/pull/105706), [@uthark](https://github.com/uthark)) [SIG Cloud Provider, Cluster Lifecycle and Testing]", - "author": "uthark", - "author_url": "https://github.com/uthark", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105706", - "pr_number": 105706, - "areas": [ - "test", - "provider/gcp", - "release-eng", - "kubeadm", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "105711": { - "commit": "aa7c6338c6767a86a76abae819670145033497f6", - "text": "Shell completion now knows to continue suggesting resource names when the command supports it. For example `kubectl get pod pod1 \u003cTAB\u003e` will suggest more Pod names.", - "markdown": "Shell completion now knows to continue suggesting resource names when the command supports it. For example `kubectl get pod pod1 \u003cTAB\u003e` will suggest more Pod names. ([#105711](https://github.com/kubernetes/kubernetes/pull/105711), [@marckhouzam](https://github.com/marckhouzam))", - "author": "marckhouzam", - "author_url": "https://github.com/marckhouzam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105711", - "pr_number": 105711, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "105712": { - "commit": "4bb31b5a5613c1a935f153cc72acf354171c08a1", - "text": "The `--leader-elect*` CLI args are now honored in the scheduler.", - "markdown": "The `--leader-elect*` CLI args are now honored in the scheduler. ([#105712](https://github.com/kubernetes/kubernetes/pull/105712), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105712", - "pr_number": 105712, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "105734": { - "commit": "afff019fbc90373127020693cdb056a968468f04", - "text": "Fixed concurrent map access causing panics when logging timed-out API calls.", - "markdown": "Fixed concurrent map access causing panics when logging timed-out API calls. ([#105734](https://github.com/kubernetes/kubernetes/pull/105734), [@marseel](https://github.com/marseel))", - "author": "marseel", - "author_url": "https://github.com/marseel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105734", - "pr_number": 105734, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "105741": { - "commit": "5848dbaa80f4fa36cc05194d99295ab827f77cc3", - "text": "kubeadm: add the kubeadm specific, Alpha (disabled by default) feature gate UnversionedKubeletConfigMap. When this feature is enabled kubeadm will start using a new naming format for the ConfigMap where it stores the KubeletConfiguration structure. The old format included the Kubernetes version - \"kube-system/kubelet-config-1.22\", while the new format does not - \"kube-system/kubelet-config\". A similar formatting change is done for the related RBAC rules. The old format is now DEPRECATED and will be removed after the feature graduates to GA. When writing the ConfigMap kubeadm (init, upgrade apply) will respect the value of UnversionedKubeletConfigMap, while when reading it (join, reset, upgrade), it would attempt to use new format first and fallback to the legacy format if needed.", - "markdown": "Kubeadm: add the kubeadm specific, Alpha (disabled by default) feature gate UnversionedKubeletConfigMap. When this feature is enabled kubeadm will start using a new naming format for the ConfigMap where it stores the KubeletConfiguration structure. The old format included the Kubernetes version - \"kube-system/kubelet-config-1.22\", while the new format does not - \"kube-system/kubelet-config\". A similar formatting change is done for the related RBAC rules. The old format is now DEPRECATED and will be removed after the feature graduates to GA. When writing the ConfigMap kubeadm (init, upgrade apply) will respect the value of UnversionedKubeletConfigMap, while when reading it (join, reset, upgrade), it would attempt to use new format first and fallback to the legacy format if needed. ([#105741](https://github.com/kubernetes/kubernetes/pull/105741), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/2915-kubeadm-replace-kubelet-config-x.y", - "type": "KEP" - }, - { - "description": "[Enhancement tracking issue]", - "url": "https://github.com/kubernetes/enhancements/issues/2915", - "type": "KEP" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105741", - "pr_number": 105741, - "areas": [ - "test", - "kubeadm" - ], - "kinds": [ - "feature", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "105744": { - "commit": "1f6aa87a9311aa6e2b52299099bc67a342d7dfe2", - "text": "Add support for Windows Network stats in Containerd", - "markdown": "Add support for Windows Network stats in Containerd ([#105744](https://github.com/kubernetes/kubernetes/pull/105744), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node, Testing and Windows]", - "author": "jsturtevant", - "author_url": "https://github.com/jsturtevant", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105744", - "pr_number": 105744, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node", - "windows", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "105773": { - "commit": "9b083c4226ab517c4eb486f0987cbfb340a066c4", - "text": "Ensures that volume is deleted from the storage backend when the user tries to delete the PV object manually and the PV `ReclaimPolicy` is set to `Delete`.", - "markdown": "Ensures that volume is deleted from the storage backend when the user tries to delete the PV object manually and the PV `ReclaimPolicy` is set to `Delete`. ([#105773](https://github.com/kubernetes/kubernetes/pull/105773), [@deepakkinni](https://github.com/deepakkinni))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2680", - "type": "KEP" - } - ], - "author": "deepakkinni", - "author_url": "https://github.com/deepakkinni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105773", - "pr_number": 105773, - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "apps" - ], - "feature": true, - "duplicate": true - }, - "105776": { - "commit": "6be67e860c39c65ee43c5a67ad9562d49a509ba8", - "text": "Added ability for `kubectl wait` to wait on arbitary JSON path", - "markdown": "Added ability for `kubectl wait` to wait on arbitary JSON path ([#105776](https://github.com/kubernetes/kubernetes/pull/105776), [@lauchokyip](https://github.com/lauchokyip))", - "author": "lauchokyip", - "author_url": "https://github.com/lauchokyip", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105776", - "pr_number": 105776, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "105777": { - "commit": "b403ed85783f8c83241e78a3584b412831b61ff4", - "text": "Fix: do not try to delete a LoadBalancer that does not exist", - "markdown": "Fix: do not try to delete a LoadBalancer that does not exist ([#105777](https://github.com/kubernetes/kubernetes/pull/105777), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105777", - "pr_number": 105777, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "105794": { - "commit": "c9baa14d708415225ed030e520970b3e1b6e4349", - "text": "Adds `--as-uid` flag to `kubectl` to allow uid impersonation in the same way as user and group impersonation.", - "markdown": "Adds `--as-uid` flag to `kubectl` to allow uid impersonation in the same way as user and group impersonation. ([#105794](https://github.com/kubernetes/kubernetes/pull/105794), [@margocrawf](https://github.com/margocrawf))", - "author": "margocrawf", - "author_url": "https://github.com/margocrawf", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105794", - "pr_number": 105794, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "105839": { - "commit": "aa6bb481bacd00c25076b73cefed6f8b61fd2788", - "text": "fix: remove VMSS and VMSS instances from SLB backend pool only when necessary", - "markdown": "Fix: remove VMSS and VMSS instances from SLB backend pool only when necessary ([#105839](https://github.com/kubernetes/kubernetes/pull/105839), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105839", - "pr_number": 105839, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "105845": { - "commit": "a2c37bfd09fe0df6ceecd9499528994626e22b56", - "text": "Fix scoring for `NodeResourcesBalancedAllocation` plugins when nodes have containers with no requests.", - "markdown": "Fix scoring for `NodeResourcesBalancedAllocation` plugins when nodes have containers with no requests. ([#105845](https://github.com/kubernetes/kubernetes/pull/105845), [@ahmad-diaa](https://github.com/ahmad-diaa))", - "author": "ahmad-diaa", - "author_url": "https://github.com/ahmad-diaa", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105845", - "pr_number": 105845, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "105851": { - "commit": "011aef1222bb5459401a400231cd8ad309486510", - "text": "kubectl will now provide shell completion choices for the `--output/-o` flag", - "markdown": "Kubectl will now provide shell completion choices for the `--output/-o` flag ([#105851](https://github.com/kubernetes/kubernetes/pull/105851), [@marckhouzam](https://github.com/marckhouzam))", - "author": "marckhouzam", - "author_url": "https://github.com/marckhouzam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105851", - "pr_number": 105851, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "105855": { - "commit": "3c87c43ceff6122637c8d8070601f7271026360e", - "text": "Migrated `cmd/kube-scheduler/app/server.go`, `pkg/scheduler/framework/plugins/nodelabel/node_label.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/csi.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/non_csi.go` to structured logging", - "markdown": "Migrated `cmd/kube-scheduler/app/server.go`, `pkg/scheduler/framework/plugins/nodelabel/node_label.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/csi.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/non_csi.go` to structured logging ([#105855](https://github.com/kubernetes/kubernetes/pull/105855), [@shivanshu1333](https://github.com/shivanshu1333))", - "author": "shivanshu1333", - "author_url": "https://github.com/shivanshu1333", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105855", - "pr_number": 105855, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "duplicate": true - }, - "105857": { - "commit": "dba9975e3e3ba25e0712a209e67862603c172777", - "text": "PodSecurity: in 1.23+ restricted policy levels, Pods and containers which set `runAsUser=0` are forbidden at admission-time; previously, they would be rejected at runtime", - "markdown": "PodSecurity: in 1.23+ restricted policy levels, Pods and containers which set `runAsUser=0` are forbidden at admission-time; previously, they would be rejected at runtime ([#105857](https://github.com/kubernetes/kubernetes/pull/105857), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105857", - "pr_number": 105857, - "kinds": [ - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true - }, - "105873": { - "commit": "9351ea291ab139a38a1f3b235fb4fdaa6dca8188", - "text": "This PR adds the following metrics for API Priority and Fairness.\n- **apiserver_flowcontrol_priority_level_seat_count_samples**: histograms of seats occupied by executing requests (both regular and final-delay phases included), broken down by priority_level; the observations are taken once per millisecond.\n- **apiserver_flowcontrol_priority_level_seat_count_watermarks**: histograms of high and low watermarks of number of seats occupied by executing requests (both regular and final-delay phases included), broken down by priority_level.\n- **apiserver_flowcontrol_watch_count_samples**: histograms of number of watches relevant to a given mutating request, broken down by that request's priority_level and flow_schema.", - "markdown": "This PR adds the following metrics for API Priority and Fairness.\n - **apiserver_flowcontrol_priority_level_seat_count_samples**: histograms of seats occupied by executing requests (both regular and final-delay phases included), broken down by priority_level; the observations are taken once per millisecond.\n - **apiserver_flowcontrol_priority_level_seat_count_watermarks**: histograms of high and low watermarks of number of seats occupied by executing requests (both regular and final-delay phases included), broken down by priority_level.\n - **apiserver_flowcontrol_watch_count_samples**: histograms of number of watches relevant to a given mutating request, broken down by that request's priority_level and flow_schema. ([#105873](https://github.com/kubernetes/kubernetes/pull/105873), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery, Instrumentation and Testing]", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105873", - "pr_number": 105873, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "105885": { - "commit": "dcf0a031e9de1b9af338ddd57f365d63311f7816", - "text": "Move `ConfigurableFSGroupPolicy` to GA and rename metric `volume_fsgroup_recursive_apply` to `volume_apply_access_control`", - "markdown": "Move `ConfigurableFSGroupPolicy` to GA and rename metric `volume_fsgroup_recursive_apply` to `volume_apply_access_control` ([#105885](https://github.com/kubernetes/kubernetes/pull/105885), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105885", - "pr_number": 105885, - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "105888": { - "commit": "c9ddd248b6d58c4c973d507be07261b96ef0cfbc", - "text": "kubeadm: remove the deprecated / NO-OP phase `update-cluster-status` in `kubeadm reset`", - "markdown": "Kubeadm: remove the deprecated / NO-OP phase `update-cluster-status` in `kubeadm reset` ([#105888](https://github.com/kubernetes/kubernetes/pull/105888), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105888", - "pr_number": 105888, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "105896": { - "commit": "18cb34ebb2b64a7607057c7dea80427e2af387f3", - "text": "Support using negative array index in JSON patch replace operations.", - "markdown": "Support using negative array index in JSON patch replace operations. ([#105896](https://github.com/kubernetes/kubernetes/pull/105896), [@zqzten](https://github.com/zqzten))", - "author": "zqzten", - "author_url": "https://github.com/zqzten", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105896", - "pr_number": 105896, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "105898": { - "commit": "349758d65d5261a85bf3ac229bd40da44e4aa686", - "text": "Add Pod Security admission metrics: `pod_security_evaluations_total`, `pod_security_exemptions_total`, `pod_security_errors_total`", - "markdown": "Add Pod Security admission metrics: `pod_security_evaluations_total`, `pod_security_exemptions_total`, `pod_security_errors_total` ([#105898](https://github.com/kubernetes/kubernetes/pull/105898), [@tallclair](https://github.com/tallclair))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/2579-psp-replacement/README.md#monitoring", - "type": "KEP" - } - ], - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105898", - "pr_number": 105898, - "areas": [ - "test", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "105904": { - "commit": "a41d166a90aeb4fb67d791726daeac7272b69874", - "text": "Migrated `pkg/scheduler/framework/plugins/volumebinding/assume_cache.go` to structured logging.", - "markdown": "Migrated `pkg/scheduler/framework/plugins/volumebinding/assume_cache.go` to structured logging. ([#105904](https://github.com/kubernetes/kubernetes/pull/105904), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation, Scheduling and Storage]", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105904", - "pr_number": 105904, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "storage", - "instrumentation" - ], - "duplicate": true - }, - "105908": { - "commit": "ac2d872ed934f9fccb9f83499e652dc04d7802c9", - "text": "The Pods and Pod controllers that are exempted from the PodSecurity admission process are now marked with the `pod-security.kubernetes.io/exempt: user/namespace/runtimeClass` annotation, based on what caused the exemption.\n\nThe enforcement level that allowed or denied a Pod during PodSecurity admission is now marked by the `pod-security.kubernetes.io/enforce-policy` annotation.\n\nThe annotation that informs about audit policy violations changed from `pod-security.kubernetes.io/audit` to `pod-security.kubernetes.io/audit-violation`.", - "markdown": "The Pods and Pod controllers that are exempted from the PodSecurity admission process are now marked with the `pod-security.kubernetes.io/exempt: user/namespace/runtimeClass` annotation, based on what caused the exemption.\n \n The enforcement level that allowed or denied a Pod during PodSecurity admission is now marked by the `pod-security.kubernetes.io/enforce-policy` annotation.\n \n The annotation that informs about audit policy violations changed from `pod-security.kubernetes.io/audit` to `pod-security.kubernetes.io/audit-violation`. ([#105908](https://github.com/kubernetes/kubernetes/pull/105908), [@stlaz](https://github.com/stlaz))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/2579-psp-replacement/README.md", - "type": "KEP" - } - ], - "author": "stlaz", - "author_url": "https://github.com/stlaz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105908", - "pr_number": 105908, - "kinds": [ - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true - }, - "105913": { - "commit": "5aacb15a19510aa5e8a76ee195a927954c8f4781", - "text": "The `pods/binding` subresource now honors `metadata.uid` and `metadata.resourceVersion`", - "markdown": "The `pods/binding` subresource now honors `metadata.uid` and `metadata.resourceVersion` ([#105913](https://github.com/kubernetes/kubernetes/pull/105913), [@aholic](https://github.com/aholic))", - "author": "aholic", - "author_url": "https://github.com/aholic", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105913", - "pr_number": 105913, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "105915": { - "commit": "e30f9648cc6c60d043941e4c78fec1a1d3619ce3", - "text": "The `--leader-elect*` CLI args are now honored in scheduler.", - "markdown": "The `--leader-elect*` CLI args are now honored in scheduler. ([#105915](https://github.com/kubernetes/kubernetes/pull/105915), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105915", - "pr_number": 105915, - "kinds": [ - "regression" - ], - "sigs": [ - "scheduling" - ] - }, - "105916": { - "commit": "8f9dd0a14c55e8c92d65b8c152ca6eaf53aad02f", - "text": "Performs strict server side schema validation requests via the `fieldValidation=[Strict,Warn,Ignore]`.", - "markdown": "Performs strict server side schema validation requests via the `fieldValidation=[Strict,Warn,Ignore]`. ([#105916](https://github.com/kubernetes/kubernetes/pull/105916), [@kevindelgado](https://github.com/kevindelgado))", - "documentation": [ - { - "description": "[KEP-2885](", - "url": "https://github.com/kubernetes/enhancements/issues/2885)", - "type": "KEP" - } - ], - "author": "kevindelgado", - "author_url": "https://github.com/kevindelgado", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105916", - "pr_number": 105916, - "areas": [ - "test", - "kubelet", - "apiserver", - "provider/gcp", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "105931": { - "commit": "adff4a75ad99b5c2805fa8952368220dbbf44172", - "text": "Migrate `pkg/scheduler/framework/plugins/interpodaffinity/filtering.go`,`pkg/scheduler/framework/plugins/podtopologyspread/filtering.go`, `pkg/scheduler/framework/plugins/volumezone/volume_zone.go` to structured logging", - "markdown": "Migrate `pkg/scheduler/framework/plugins/interpodaffinity/filtering.go`,`pkg/scheduler/framework/plugins/podtopologyspread/filtering.go`, `pkg/scheduler/framework/plugins/volumezone/volume_zone.go` to structured logging ([#105931](https://github.com/kubernetes/kubernetes/pull/105931), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105931", - "pr_number": 105931, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "duplicate": true - }, - "105934": { - "commit": "6d9008b1b086008caed5a9d8ef150cca0abaefa9", - "text": "Fixed applying of SELinux labels to CSI volumes on very busy systems (with \"error checking for SELinux support: could not get consistent content of /proc/self/mountinfo after 3 attempts\")", - "markdown": "Fixed applying of SELinux labels to CSI volumes on very busy systems (with \"error checking for SELinux support: could not get consistent content of /proc/self/mountinfo after 3 attempts\") ([#105934](https://github.com/kubernetes/kubernetes/pull/105934), [@jsafrane](https://github.com/jsafrane)) [SIG Storage]", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105934", - "pr_number": 105934, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "105940": { - "commit": "2af34cf54d812a0aee930579e1241d978d89691e", - "text": "The `CSIVolumeFSGroupPolicy` feature has moved from beta to GA.", - "markdown": "The `CSIVolumeFSGroupPolicy` feature has moved from beta to GA. ([#105940](https://github.com/kubernetes/kubernetes/pull/105940), [@dobsonj](https://github.com/dobsonj))", - "author": "dobsonj", - "author_url": "https://github.com/dobsonj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105940", - "pr_number": 105940, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true, - "duplicate_kind": true - }, - "105941": { - "commit": "c2706035f2a18ba985060b10246dd09e952379e3", - "text": "Graduating `pending_pods`, `preemption_attempts_total`, `preemption_victims` and `schedule_attempts_total` metrics to stable. Also `e2e_scheduling_duration_seconds` is renamed to `scheduling_attempt_duration_seconds` and the latter is graduated to stable.", - "markdown": "Graduating `pending_pods`, `preemption_attempts_total`, `preemption_victims` and `schedule_attempts_total` metrics to stable. Also `e2e_scheduling_duration_seconds` is renamed to `scheduling_attempt_duration_seconds` and the latter is graduated to stable. ([#105941](https://github.com/kubernetes/kubernetes/pull/105941), [@rezakrimi](https://github.com/rezakrimi)) [SIG Instrumentation, Scheduling and Testing]", - "author": "rezakrimi", - "author_url": "https://github.com/rezakrimi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105941", - "pr_number": 105941, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "scheduling", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "105945": { - "commit": "f784891854ccb8d904a3f6d5da1e8e4fc940dcb2", - "text": "The `/openapi/v3` endpoint will be populated with OpenAPI v3 if the feature flag is enabled", - "markdown": "The `/openapi/v3` endpoint will be populated with OpenAPI v3 if the feature flag is enabled ([#105945](https://github.com/kubernetes/kubernetes/pull/105945), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105945", - "pr_number": 105945, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "105967": { - "commit": "6ac2d8edc8606ab387924b8b865b4a69630080e0", - "text": "Migrated `pkg/scheduler/framework/preemption/preemption.go`, `pkg/scheduler/framework/plugins/examples/stateful/stateful.go`, and `pkg/scheduler/framework/plugins/noderesources/resource_allocation.go` to structured logging", - "markdown": "Migrated `pkg/scheduler/framework/preemption/preemption.go`, `pkg/scheduler/framework/plugins/examples/stateful/stateful.go`, and `pkg/scheduler/framework/plugins/noderesources/resource_allocation.go` to structured logging ([#105967](https://github.com/kubernetes/kubernetes/pull/105967), [@shivanshu1333](https://github.com/shivanshu1333)) [SIG Instrumentation, Node and Scheduling]", - "author": "shivanshu1333", - "author_url": "https://github.com/shivanshu1333", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105967", - "pr_number": 105967, - "areas": [ - "kubelet", - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "node", - "instrumentation" - ], - "duplicate": true - }, - "105968": { - "commit": "8eda02ccbd2bfb8e1477b565ccc5405056138e69", - "text": "Migrated scheduler files `comparer.go`, `dumper.go`, `node_tree.go` to structured logging", - "markdown": "Migrated scheduler files `comparer.go`, `dumper.go`, `node_tree.go` to structured logging ([#105968](https://github.com/kubernetes/kubernetes/pull/105968), [@shivanshu1333](https://github.com/shivanshu1333)) [SIG Instrumentation and Scheduling]", - "author": "shivanshu1333", - "author_url": "https://github.com/shivanshu1333", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105968", - "pr_number": 105968, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "duplicate": true - }, - "105969": { - "commit": "927914dec7d273fc53025e15a4bd3691d0e671d3", - "text": "Migrated scheduler file `cache.go` to structured logging", - "markdown": "Migrated scheduler file `cache.go` to structured logging ([#105969](https://github.com/kubernetes/kubernetes/pull/105969), [@shivanshu1333](https://github.com/shivanshu1333)) [SIG Instrumentation and Scheduling]", - "author": "shivanshu1333", - "author_url": "https://github.com/shivanshu1333", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105969", - "pr_number": 105969, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "duplicate": true - }, - "105980": { - "commit": "36e69a33030c16e19b5d7edba9f755cae917d09d", - "text": "Pod template annotations and labels are now mutable for Jobs that are suspended and have never been started", - "markdown": "Pod template annotations and labels are now mutable for Jobs that are suspended and have never been started ([#105980](https://github.com/kubernetes/kubernetes/pull/105980), [@ahg-g](https://github.com/ahg-g))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/2926-job-mutable-scheduling-directives", - "type": "KEP" - } - ], - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105980", - "pr_number": 105980, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "105992": { - "commit": "35f9bcabf1ea3d520c4cfe2b18fa0a0b3ab9a4ed", - "text": "kubeadm: fix a bug on Windows worker nodes, where the downloaded KubeletConfiguration from the cluster can contain Linux paths that do not work on Windows and can trip the kubelet binary.", - "markdown": "Kubeadm: fix a bug on Windows worker nodes, where the downloaded KubeletConfiguration from the cluster can contain Linux paths that do not work on Windows and can trip the kubelet binary. ([#105992](https://github.com/kubernetes/kubernetes/pull/105992), [@hwdef](https://github.com/hwdef)) [SIG Cluster Lifecycle and Windows]", - "author": "hwdef", - "author_url": "https://github.com/hwdef", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105992", - "pr_number": 105992, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle", - "windows" - ], - "duplicate": true - }, - "105997": { - "commit": "4dfd73940396730caf331e35cbb28235d233f2a0", - "text": "EndpointSlice Mirroring controller now cleans up managed EndpointSlices when a Service selector is added", - "markdown": "EndpointSlice Mirroring controller now cleans up managed EndpointSlices when a Service selector is added ([#105997](https://github.com/kubernetes/kubernetes/pull/105997), [@robscott](https://github.com/robscott)) [SIG Apps, Network and Testing]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105997", - "pr_number": 105997, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps", - "testing" - ], - "duplicate": true - }, - "105999": { - "commit": "324eff5b75750e2c7302a2dcd25096928a850e8e", - "text": "Support to enable Hyper-V in GCE Windows Nodes created with `kube-up`", - "markdown": "Support to enable Hyper-V in GCE Windows Nodes created with `kube-up` ([#105999](https://github.com/kubernetes/kubernetes/pull/105999), [@mauriciopoppe](https://github.com/mauriciopoppe))", - "author": "mauriciopoppe", - "author_url": "https://github.com/mauriciopoppe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105999", - "pr_number": 105999, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "windows", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "106017": { - "commit": "e48cb8adb01cf07471f72fef24c66ce2724b92f4", - "text": "(PodSecurity admission) errors validating workload resources (deployment, replicaset, etc.) no longer block admission.", - "markdown": "(PodSecurity admission) errors validating workload resources (deployment, replicaset, etc.) no longer block admission. ([#106017](https://github.com/kubernetes/kubernetes/pull/106017), [@tallclair](https://github.com/tallclair)) [SIG Auth]", - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106017", - "pr_number": 106017, - "kinds": [ - "bug" - ], - "sigs": [ - "auth" - ] - }, - "106030": { - "commit": "cb040e50973c908d063d5dc73794c236dbe1c767", - "text": "The kube-proxy sync_proxy_rules_iptables_total metric now gives\nthe correct number of rules, rather than being off by one.\n\nFixed multiple iptables proxy regressions introduced in 1.22:\n\n - When using Services with SessionAffinity, client affinity for an\n endpoint now gets broken when that endpoint becomes non-ready\n (rather than continuing until the endpoint is fully deleted).\n\n - Traffic to a service IP now starts getting rejected (as opposed to\n merely dropped) as soon as there are no longer any *usable*\n endpoints, rather than waiting until all of the terminating\n endpoints have terminated even when those terminating endpoints\n were not being used.\n\n - Chains for endpoints that won't be used are no longer output to\n iptables, saving a bit of memory/time/cpu.", - "markdown": "The kube-proxy sync_proxy_rules_iptables_total metric now gives\n the correct number of rules, rather than being off by one.\n \n Fixed multiple iptables proxy regressions introduced in 1.22:\n \n - When using Services with SessionAffinity, client affinity for an\n endpoint now gets broken when that endpoint becomes non-ready\n (rather than continuing until the endpoint is fully deleted).\n \n - Traffic to a service IP now starts getting rejected (as opposed to\n merely dropped) as soon as there are no longer any *usable*\n endpoints, rather than waiting until all of the terminating\n endpoints have terminated even when those terminating endpoints\n were not being used.\n \n - Chains for endpoints that won't be used are no longer output to\n iptables, saving a bit of memory/time/cpu. ([#106030](https://github.com/kubernetes/kubernetes/pull/106030), [@danwinship](https://github.com/danwinship)) [SIG Network]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106030", - "pr_number": 106030, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "106045": { - "commit": "d67cbcb8df15ba28a058f37fe6fa128276a63025", - "text": "fatal error: concurrent map writes\n\ngoroutine 10670 [running]:\nruntime.throw({0x5648d2156ef9, 0xc010a4a4e0})\n runtime/panic.go:1198 +0x71 fp=0xc00a472f20 sp=0xc00a472ef0 pc=0x5648cf1e3371\nruntime.mapassign_faststr(0x5648d2e8ac00, 0x65, {0xc0077382c0, 0x31})\n runtime/map_faststr.go:211 +0x39c fp=0xc00a472f88 sp=0xc00a472f20 pc=0x5648cf1c0a1c\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/audit.LogAnnotation(0xc006f943c0, {0xc0077382c0, 0x31}, {0xc0154fe150, 0x65})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/audit/request.go:235 +0x325 fp=0xc00a473040 sp=0xc00a472f88 pc=0x5648d0066dc5\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.auditHandler.logAnnotations({{0x5648d36ed3a0, 0xc000e044e0}, 0xc006f943c0}, {0x5648d3880100, 0xc00ab29560})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/audit.go:94 +0x1c5 fp=0xc00a4730e8 sp=0xc00a473040 pc=0x5648d006de85\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.auditHandler.Admit({{0x5648d36ed3a0, 0xc000e044e0}, 0xc006f943c0}, {0x5648d37d2fb8, 0xc007a415f0}, {0x5648d3880100, 0xc00ab29560}, {0x5648d380ea78, 0xc003724ea0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/audit.go:58 +0x13c fp=0xc00a473158 sp=0xc00a4730e8 pc=0x5648d006d97c\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.(*auditHandler).Admit(0xc00e871db8, {0x5648d37d2fb8, 0xc007a415f0}, {0x5648d3880100, 0xc00ab29560}, {0x5648d380ea78, 0xc003724ea0})\n \u003cautogenerated\u003e:1 +0x85 fp=0xc00a4731b0 sp=0xc00a473158 pc=0x5648d0071785\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/rest.AdmissionToValidateObjectDeleteFunc.func1({0x5648d37d2fb8, 0xc007a415f0}, {0x5648d37b3b00, 0xc00b4cb8c0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/rest/delete.go:172 +0x611 fp=0xc00a4733e0 sp=0xc00a4731b0 pc=0x5648d024f211\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).updateForGracefulDeletionAndFinalizers.func1({0x5648d37b3b00, 0xc00b4cb8c0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:819 +0xbb fp=0xc00a4734b8 sp=0xc00a4733e0 pc=0x5648d04f6cfb\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage.SimpleUpdate.func1({0x5648d37b3b00, 0xc00b4cb8c0}, {0xc0101782e0, 0xc012d285a0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/util.go:33 +0x27 fp=0xc00a4734d8 sp=0xc00a4734b8 pc=0x5648d0246d07\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3.(*store).updateState(0xc0028c27e0, 0xc0101782e0, 0x20)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3/store.go:853 +0x3e fp=0xc00a473538 sp=0xc00a4734d8 pc=0x5648d033ddfe\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3.(*store).GuaranteedUpdate(0xc0028c27e0, {0x5648d37d2fb8, 0xc007a415f0}, {0xc011a36ee8, 0x17}, {0x5648d37b3b00, 0xc00b46f8c0}, 0x0, 0x1, 0xc00a2bd860, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3/store.go:296 +0x5c7 fp=0xc00a473b50 sp=0xc00a473538 pc=0x5648d0338687\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/cacher.(*Cacher).GuaranteedUpdate(0xc0028e8000, {0x5648d37d2fb8, 0xc007a415f0}, {0xc011a36ee8, 0x17}, {0x5648d37b3b00, 0xc00b46f8c0}, 0x85, 0x5648d34fb820, 0xc00a2bd860, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/cacher/cacher.go:743 +0x1d3 fp=0xc00a473bf8 sp=0xc00a473b50 pc=0x5648d04e4553\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*DryRunnableStorage).GuaranteedUpdate(0x1e, {0x5648d37d2fb8, 0xc007a415f0}, {0xc011a36ee8, 0x0}, {0x5648d37b3b00, 0xc00b46f8c0}, 0x0, 0x0, 0xc00a2bd860, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/dryrun.go:101 +0x1da fp=0xc00a473c78 sp=0xc00a473bf8 pc=0x5648d04f247a\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).updateForGracefulDeletionAndFinalizers(0xc0015de480, {0x5648d37d2fb8, 0xc007a415f0}, {0xc0098fdf10, 0xe}, {0xc011a36ee8, 0x17}, 0xc00333f2c0, {0x0, 0x0}, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:812 +0x2cf fp=0xc00a473d40 sp=0xc00a473c78 pc=0x5648d04f698f\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).Delete(0xc0015de480, {0x5648d37d2fb8, 0xc007a415f0}, {0xc0098fdf10, 0xe}, 0x5648cf6a8adb, 0xc00333f2c0)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:936 +0x3b3 fp=0xc00a473e90 sp=0xc00a473d40 pc=0x5648d04f73d3\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).DeleteCollection.func2()\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:1058 +0x205 fp=0xc00a473fe0 sp=0xc00a473e90 pc=0x5648d04f80a5\nruntime.goexit()\n runtime/asm_amd64.s:1581 +0x1 fp=0xc00a473fe8 sp=0xc00a473fe0 pc=0x5648cf2169a1\ncreated by k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).DeleteCollection\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:1045 +0x2df", - "markdown": "Fatal error: concurrent map writes\n \n goroutine 10670 [running]:\n runtime.throw({0x5648d2156ef9, 0xc010a4a4e0})\n runtime/panic.go:1198 +0x71 fp=0xc00a472f20 sp=0xc00a472ef0 pc=0x5648cf1e3371\n runtime.mapassign_faststr(0x5648d2e8ac00, 0x65, {0xc0077382c0, 0x31})\n runtime/map_faststr.go:211 +0x39c fp=0xc00a472f88 sp=0xc00a472f20 pc=0x5648cf1c0a1c\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/audit.LogAnnotation(0xc006f943c0, {0xc0077382c0, 0x31}, {0xc0154fe150, 0x65})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/audit/request.go:235 +0x325 fp=0xc00a473040 sp=0xc00a472f88 pc=0x5648d0066dc5\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.auditHandler.logAnnotations({{0x5648d36ed3a0, 0xc000e044e0}, 0xc006f943c0}, {0x5648d3880100, 0xc00ab29560})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/audit.go:94 +0x1c5 fp=0xc00a4730e8 sp=0xc00a473040 pc=0x5648d006de85\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.auditHandler.Admit({{0x5648d36ed3a0, 0xc000e044e0}, 0xc006f943c0}, {0x5648d37d2fb8, 0xc007a415f0}, {0x5648d3880100, 0xc00ab29560}, {0x5648d380ea78, 0xc003724ea0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/audit.go:58 +0x13c fp=0xc00a473158 sp=0xc00a4730e8 pc=0x5648d006d97c\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.(*auditHandler).Admit(0xc00e871db8, {0x5648d37d2fb8, 0xc007a415f0}, {0x5648d3880100, 0xc00ab29560}, {0x5648d380ea78, 0xc003724ea0})\n \u003cautogenerated\u003e:1 +0x85 fp=0xc00a4731b0 sp=0xc00a473158 pc=0x5648d0071785\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/rest.AdmissionToValidateObjectDeleteFunc.func1({0x5648d37d2fb8, 0xc007a415f0}, {0x5648d37b3b00, 0xc00b4cb8c0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/rest/delete.go:172 +0x611 fp=0xc00a4733e0 sp=0xc00a4731b0 pc=0x5648d024f211\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).updateForGracefulDeletionAndFinalizers.func1({0x5648d37b3b00, 0xc00b4cb8c0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:819 +0xbb fp=0xc00a4734b8 sp=0xc00a4733e0 pc=0x5648d04f6cfb\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage.SimpleUpdate.func1({0x5648d37b3b00, 0xc00b4cb8c0}, {0xc0101782e0, 0xc012d285a0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/util.go:33 +0x27 fp=0xc00a4734d8 sp=0xc00a4734b8 pc=0x5648d0246d07\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3.(*store).updateState(0xc0028c27e0, 0xc0101782e0, 0x20)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3/store.go:853 +0x3e fp=0xc00a473538 sp=0xc00a4734d8 pc=0x5648d033ddfe\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3.(*store).GuaranteedUpdate(0xc0028c27e0, {0x5648d37d2fb8, 0xc007a415f0}, {0xc011a36ee8, 0x17}, {0x5648d37b3b00, 0xc00b46f8c0}, 0x0, 0x1, 0xc00a2bd860, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3/store.go:296 +0x5c7 fp=0xc00a473b50 sp=0xc00a473538 pc=0x5648d0338687\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/cacher.(*Cacher).GuaranteedUpdate(0xc0028e8000, {0x5648d37d2fb8, 0xc007a415f0}, {0xc011a36ee8, 0x17}, {0x5648d37b3b00, 0xc00b46f8c0}, 0x85, 0x5648d34fb820, 0xc00a2bd860, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/cacher/cacher.go:743 +0x1d3 fp=0xc00a473bf8 sp=0xc00a473b50 pc=0x5648d04e4553\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*DryRunnableStorage).GuaranteedUpdate(0x1e, {0x5648d37d2fb8, 0xc007a415f0}, {0xc011a36ee8, 0x0}, {0x5648d37b3b00, 0xc00b46f8c0}, 0x0, 0x0, 0xc00a2bd860, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/dryrun.go:101 +0x1da fp=0xc00a473c78 sp=0xc00a473bf8 pc=0x5648d04f247a\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).updateForGracefulDeletionAndFinalizers(0xc0015de480, {0x5648d37d2fb8, 0xc007a415f0}, {0xc0098fdf10, 0xe}, {0xc011a36ee8, 0x17}, 0xc00333f2c0, {0x0, 0x0}, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:812 +0x2cf fp=0xc00a473d40 sp=0xc00a473c78 pc=0x5648d04f698f\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).Delete(0xc0015de480, {0x5648d37d2fb8, 0xc007a415f0}, {0xc0098fdf10, 0xe}, 0x5648cf6a8adb, 0xc00333f2c0)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:936 +0x3b3 fp=0xc00a473e90 sp=0xc00a473d40 pc=0x5648d04f73d3\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).DeleteCollection.func2()\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:1058 +0x205 fp=0xc00a473fe0 sp=0xc00a473e90 pc=0x5648d04f80a5\n runtime.goexit()\n runtime/asm_amd64.s:1581 +0x1 fp=0xc00a473fe8 sp=0xc00a473fe0 pc=0x5648cf2169a1\n created by k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).DeleteCollection\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:1045 +0x2df ([#106045](https://github.com/kubernetes/kubernetes/pull/106045), [@chenlinx17](https://github.com/chenlinx17)) [SIG API Machinery]", - "author": "chenlinx17", - "author_url": "https://github.com/chenlinx17", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106045", - "pr_number": 106045, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "106051": { - "commit": "c84da4e3e61e08b1bd23c562a86504278eacee9b", - "text": "Validation rules for Custom Resource Definitions can be written in the [CEL expression language](https://github.com/google/cel-spec) using the `x-kubernetes-validations` extension in OpenAPIv3 schemas (alpha). This is gated by the alpha \"CustomResourceValidationExpressions\" feature gate.", - "markdown": "Validation rules for Custom Resource Definitions can be written in the [CEL expression language](https://github.com/google/cel-spec) using the `x-kubernetes-validations` extension in OpenAPIv3 schemas (alpha). This is gated by the alpha \"CustomResourceValidationExpressions\" feature gate. ([#106051](https://github.com/kubernetes/kubernetes/pull/106051), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Storage and Testing]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106051", - "pr_number": 106051, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "106058": { - "commit": "d3ef2e393b6457b8f4bc407ca01497c51ebe9471", - "text": "Moving `WindowsHostProcessContainers` feature to beta", - "markdown": "Moving `WindowsHostProcessContainers` feature to beta ([#106058](https://github.com/kubernetes/kubernetes/pull/106058), [@marosset](https://github.com/marosset))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/1981-windows-privileged-container-support", - "type": "KEP" - } - ], - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106058", - "pr_number": 106058, - "kinds": [ - "feature" - ], - "sigs": [ - "windows" - ], - "feature": true - }, - "106089": { - "commit": "9af2ece18abc3188aa280cb1f1c35a8a4cb791c3", - "text": "The `PodSecurity `admission plugin has graduated to `beta` and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1beta1`. See https://kubernetes.io/docs/concepts/security/pod-security-admission/ for usage guidelines.", - "markdown": "The `PodSecurity `admission plugin has graduated to `beta` and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1beta1`. See https://kubernetes.io/docs/concepts/security/pod-security-admission/ for usage guidelines. ([#106089](https://github.com/kubernetes/kubernetes/pull/106089), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106089", - "pr_number": 106089, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "106090": { - "commit": "dc93951ad0049883a10229641c5cf48e59869482", - "text": "In kubelet, log verbosity and flush frequency can also be configured via the configuration file and not just via command line flags. In other commands (kube-apiserver, kube-controller-manager), the flags are listed in the \"Logs flags\" group and not under \"Global\" or \"Misc\". The type for `-vmodule` was made a bit more descriptive (`pattern=N,...` instead of `moduleSpec`).", - "markdown": "In kubelet, log verbosity and flush frequency can also be configured via the configuration file and not just via command line flags. In other commands (kube-apiserver, kube-controller-manager), the flags are listed in the \"Logs flags\" group and not under \"Global\" or \"Misc\". The type for `-vmodule` was made a bit more descriptive (`pattern=N,...` instead of `moduleSpec`). ([#106090](https://github.com/kubernetes/kubernetes/pull/106090), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, CLI, Cluster Lifecycle, Instrumentation, Node and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2845", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106090", - "pr_number": 106090, - "areas": [ - "kubelet", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "cluster-lifecycle", - "cli", - "instrumentation", - "architecture" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "106091": { - "commit": "da707b6133ff0c66dc4d24295374e7e5de8852f5", - "text": "kube-up now includes CoreDNS version v1.8.6", - "markdown": "Kube-up now includes CoreDNS version v1.8.6 ([#106091](https://github.com/kubernetes/kubernetes/pull/106091), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cloud Provider]", - "author": "rajansandeep", - "author_url": "https://github.com/rajansandeep", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106091", - "pr_number": 106091, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "106098": { - "commit": "400ec74080238130817f6b83ee2c16ffa80dca9c", - "text": "Changed feature `CSIMigrationAWS` to on by default. This feature requires the AWS EBS CSI driver to be installed.", - "markdown": "Changed feature `CSIMigrationAWS` to on by default. This feature requires the AWS EBS CSI driver to be installed. ([#106098](https://github.com/kubernetes/kubernetes/pull/106098), [@wongma7](https://github.com/wongma7))", - "author": "wongma7", - "author_url": "https://github.com/wongma7", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106098", - "pr_number": 106098, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true - }, - "106102": { - "commit": "d92a443ca7867e0d2c1047b0502a7da42f1ac5e7", - "text": "Ensure Pods are removed from the scheduler cache when the scheduler misses deletion events due to transient errors", - "markdown": "Ensure Pods are removed from the scheduler cache when the scheduler misses deletion events due to transient errors ([#106102](https://github.com/kubernetes/kubernetes/pull/106102), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling]", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106102", - "pr_number": 106102, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "106122": { - "commit": "ae550b62da15ca5fe4983c79aaa6b2a39e3e711a", - "text": "Graduating `controller_admission_duration_seconds`, `step_admission_duration_seconds`, `webhook_admission_duration_seconds`, `apiserver_current_inflight_requests` and `apiserver_response_sizes` metrics to stable.", - "markdown": "Graduating `controller_admission_duration_seconds`, `step_admission_duration_seconds`, `webhook_admission_duration_seconds`, `apiserver_current_inflight_requests` and `apiserver_response_sizes` metrics to stable. ([#106122](https://github.com/kubernetes/kubernetes/pull/106122), [@rezakrimi](https://github.com/rezakrimi)) [SIG API Machinery, Instrumentation and Testing]", - "author": "rezakrimi", - "author_url": "https://github.com/rezakrimi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106122", - "pr_number": 106122, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "106123": { - "commit": "da73a24f6a5a03a9a35061ee21ec353eb31176a0", - "text": "[kube-log-runner](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/component-base/logs/kube-log-runner) is included in release tar balls. It can be used to replace the deprecated `--log-file` parameter.", - "markdown": "[kube-log-runner](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/component-base/logs/kube-log-runner) is included in release tar balls. It can be used to replace the deprecated `--log-file` parameter. ([#106123](https://github.com/kubernetes/kubernetes/pull/106123), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Cloud Provider, Cluster Lifecycle and Instrumentation]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2845", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106123", - "pr_number": 106123, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "instrumentation", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "106126": { - "commit": "ed42bbd722a14640f8b5315a521745e7526ff31b", - "text": "Remove deprecated and not supported old cronjob controller.", - "markdown": "Remove deprecated and not supported old cronjob controller. ([#106126](https://github.com/kubernetes/kubernetes/pull/106126), [@soltysh](https://github.com/soltysh)) [SIG Apps]", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106126", - "pr_number": 106126, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ] - }, - "106146": { - "commit": "f1b000db7cd4129ddab5dc58cb46dae30d446b03", - "text": "Log messages in JSON format are written to stderr by default now (same as text format) instead of stdout. Users who expected JSON output on stdout must now capture stderr instead or in addition to stdout.", - "markdown": "Log messages in JSON format are written to stderr by default now (same as text format) instead of stdout. Users who expected JSON output on stdout must now capture stderr instead or in addition to stdout. ([#106146](https://github.com/kubernetes/kubernetes/pull/106146), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Cluster Lifecycle and Instrumentation]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106146", - "pr_number": 106146, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "instrumentation", - "architecture" - ], - "duplicate": true, - "action_required": true - }, - "106150": { - "commit": "aa964e097c8d6f083d4807c3e36404f96cb57a27", - "text": "kubemark is now built as a portable, static binary.", - "markdown": "Kubemark is now built as a portable, static binary. ([#106150](https://github.com/kubernetes/kubernetes/pull/106150), [@pohly](https://github.com/pohly)) [SIG Scalability and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/2845", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106150", - "pr_number": 106150, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scalability", - "testing" - ], - "duplicate": true - }, - "106154": { - "commit": "f151a40d8d8ac92b0b49fbdf3a9d3a1f8b3282bb", - "text": "Implement support for recovering from volume expansion failures", - "markdown": "Implement support for recovering from volume expansion failures ([#106154](https://github.com/kubernetes/kubernetes/pull/106154), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Apps and Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106154", - "pr_number": 106154, - "kinds": [ - "api-change" - ], - "sigs": [ - "storage", - "api-machinery", - "apps" - ], - "duplicate": true - }, - "106163": { - "commit": "0940dd6fc4ecf764564cd48fe2635169fd31abdd", - "text": "fix kube-proxy regression on UDP services because the logic to detect stale connections was not considering if the endpoint was ready.", - "markdown": "Fix kube-proxy regression on UDP services because the logic to detect stale connections was not considering if the endpoint was ready. ([#106163](https://github.com/kubernetes/kubernetes/pull/106163), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Contributor Experience, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106163", - "pr_number": 106163, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "conformance", - "code-generation", - "ipvs", - "e2e-test-framework", - "dependency", - "network-policy" - ], - "kinds": [ - "bug", - "api-change", - "regression" - ], - "sigs": [ - "network", - "scalability", - "scheduling", - "storage", - "node", - "api-machinery", - "autoscaling", - "contributor-experience", - "auth", - "apps", - "windows", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "106169": { - "commit": "d9f06f9e1807c804678fe201640ccc2a820d1efb", - "text": "When using `RequestedToCapacityRatio` ScoringStrategy, empty shape will cause error.", - "markdown": "When using `RequestedToCapacityRatio` ScoringStrategy, empty shape will cause error. ([#106169](https://github.com/kubernetes/kubernetes/pull/106169), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling]", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106169", - "pr_number": 106169, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "106172": { - "commit": "2ee2b8cab0772e1d1ff0075a95609aa4a41a9d4c", - "text": "kubectl: deprecated command line flags (like several of the klog flags) now have a `DEPRECATED: \u003cexplanation\u003e` comment.", - "markdown": "Kubectl: deprecated command line flags (like several of the klog flags) now have a `DEPRECATED: \u003cexplanation\u003e` comment. ([#106172](https://github.com/kubernetes/kubernetes/pull/106172), [@pohly](https://github.com/pohly)) [SIG CLI]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2845", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106172", - "pr_number": 106172, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "106190": { - "commit": "0abc0549335455f7fb97239e87bca79e48aa1027", - "text": "Integration testing now takes periodic Prometheus scrapes from the etcd server.\nThere is a new script ,`hack/run-prometheus-on-etcd-scrapes.sh`, that runs a containerized Prometheus server against an archive of such scrapes.", - "markdown": "Integration testing now takes periodic Prometheus scrapes from the etcd server.\n There is a new script ,`hack/run-prometheus-on-etcd-scrapes.sh`, that runs a containerized Prometheus server against an archive of such scrapes. ([#106190](https://github.com/kubernetes/kubernetes/pull/106190), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery and Testing]", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106190", - "pr_number": 106190, - "kinds": [ - "flake", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "106195": { - "commit": "ffe0d03e2c18a7b2e3b02e64d2d24bbd2923e1c1", - "text": "Fixed a bug which could cause webhooks to have an incorrect copy of the old object after an Apply or Update", - "markdown": "Fixed a bug which could cause webhooks to have an incorrect copy of the old object after an Apply or Update ([#106195](https://github.com/kubernetes/kubernetes/pull/106195), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery]", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106195", - "pr_number": 106195, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "106201": { - "commit": "39af75af30d9faa812c30eee148dfaa84287f6d0", - "text": "Enhanced event messages for pod failed for exec probe timeout", - "markdown": "Enhanced event messages for pod failed for exec probe timeout ([#106201](https://github.com/kubernetes/kubernetes/pull/106201), [@yxxhero](https://github.com/yxxhero)) [SIG Node]", - "author": "yxxhero", - "author_url": "https://github.com/yxxhero", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106201", - "pr_number": 106201, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "106209": { - "commit": "0c6f1b4e2ac06da94e904e86ad5dcef81b0f8ed0", - "text": "Kubernetes is now built with Golang 1.17.3", - "markdown": "Kubernetes is now built with Golang 1.17.3 ([#106209](https://github.com/kubernetes/kubernetes/pull/106209), [@cpanato](https://github.com/cpanato)) [SIG API Machinery, Cloud Provider, Instrumentation, Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106209", - "pr_number": 106209, - "areas": [ - "test", - "security", - "provider/gcp", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing", - "release", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "106219": { - "commit": "824ad80bf33db291a5127c41985f94f04371f662", - "text": "The `kubectl describe namespace` now shows Conditions", - "markdown": "The `kubectl describe namespace` now shows Conditions ([#106219](https://github.com/kubernetes/kubernetes/pull/106219), [@dlipovetsky](https://github.com/dlipovetsky))", - "author": "dlipovetsky", - "author_url": "https://github.com/dlipovetsky", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106219", - "pr_number": 106219, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "106228": { - "commit": "398e028d61d2adc26aef8d41239fc63a37538ffa", - "text": "Fixed the issue where logging output of kube-scheduler configuration files included line breaks and escape characters. The output also attempted to output the configuration file in one section without showing the user a more readable format.", - "markdown": "Fixed the issue where logging output of kube-scheduler configuration files included line breaks and escape characters. The output also attempted to output the configuration file in one section without showing the user a more readable format. ([#106228](https://github.com/kubernetes/kubernetes/pull/106228), [@sanchayanghosh](https://github.com/sanchayanghosh)) [SIG Scheduling]", - "author": "sanchayanghosh", - "author_url": "https://github.com/sanchayanghosh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106228", - "pr_number": 106228, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "106266": { - "commit": "c9a245fa485afc462d5052f69b63e1e93957e414", - "text": "Graduating `pod_scheduling_duration_seconds`, `pod_scheduling_attempts`, `framework_extension_point_duration_seconds`, `plugin_execution_duration_seconds` and `queue_incoming_pods_total` metrics to stable.", - "markdown": "Graduating `pod_scheduling_duration_seconds`, `pod_scheduling_attempts`, `framework_extension_point_duration_seconds`, `plugin_execution_duration_seconds` and `queue_incoming_pods_total` metrics to stable. ([#106266](https://github.com/kubernetes/kubernetes/pull/106266), [@ahg-g](https://github.com/ahg-g)) [SIG Instrumentation, Scheduling and Testing]", - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106266", - "pr_number": 106266, - "areas": [ - "test" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "scheduling", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "106271": { - "commit": "2a5de1ac893d9e44e4238760052c376b5d192eec", - "text": "The `DownwardAPIHugePages` feature is now enabled by default.", - "markdown": "The `DownwardAPIHugePages` feature is now enabled by default. ([#106271](https://github.com/kubernetes/kubernetes/pull/106271), [@mysunshine92](https://github.com/mysunshine92))", - "author": "mysunshine92", - "author_url": "https://github.com/mysunshine92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106271", - "pr_number": 106271, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "106289": { - "commit": "42d8b2f3b9e19462011b3cf70ffd189dd0f59313", - "text": "make test KUBE_RACE=-race KUBE_TIMEOUT=--timeout=600s GOFLAGS=-count=10 WHAT=./staging/src/k8s.io/component-base/metrics/testutil\n\nmake test KUBE_RACE=-race KUBE_TIMEOUT=--timeout=600s GOFLAGS=-count=10 WHAT=./pkg/kubelet/kuberuntime/", - "markdown": "Make test KUBE_RACE=-race KUBE_TIMEOUT=--timeout=600s GOFLAGS=-count=10 WHAT=./staging/src/k8s.io/component-base/metrics/testutil\n \n make test KUBE_RACE=-race KUBE_TIMEOUT=--timeout=600s GOFLAGS=-count=10 WHAT=./pkg/kubelet/kuberuntime/ ([#106289](https://github.com/kubernetes/kubernetes/pull/106289), [@CatherineF-dev](https://github.com/CatherineF-dev)) [SIG Instrumentation and Node]", - "author": "CatherineF-dev", - "author_url": "https://github.com/CatherineF-dev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106289", - "pr_number": 106289, - "areas": [ - "kubelet" - ], - "kinds": [ - "failing-test" - ], - "sigs": [ - "node", - "instrumentation" - ], - "duplicate": true, - "do_not_publish": true - }, - "106301": { - "commit": "fb3df2e73c22bb0c167075ee714516db9f8922c1", - "text": "The kube-proxy image contains `/go-runner` as a replacement for deprecated klog flags.", - "markdown": "The kube-proxy image contains `/go-runner` as a replacement for deprecated klog flags. ([#106301](https://github.com/kubernetes/kubernetes/pull/106301), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2845", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106301", - "pr_number": 106301, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ] - }, - "106306": { - "commit": "b817efb0424f030f0e0a8946076f088fdcc9af28", - "text": "Changed buckets in apiserver_request_duration_seconds metric from [0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0,1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60] to [0.05, 0.1, 0.2, 0.4, 0.6, 0.8, 1.0, 1.25, 1.5, 2, 3, 4, 5, 6, 8, 10, 15, 20, 30, 45, 60]", - "markdown": "Changed buckets in apiserver_request_duration_seconds metric from [0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0,1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60] to [0.05, 0.1, 0.2, 0.4, 0.6, 0.8, 1.0, 1.25, 1.5, 2, 3, 4, 5, 6, 8, 10, 15, 20, 30, 45, 60] ([#106306](https://github.com/kubernetes/kubernetes/pull/106306), [@pawbana](https://github.com/pawbana)) [SIG API Machinery, Instrumentation and Testing]", - "author": "pawbana", - "author_url": "https://github.com/pawbana", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106306", - "pr_number": 106306, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "106317": { - "commit": "ad99a592f7399ba8b5a1676e11cbed4598806716", - "text": "Fixed a panic in `kubectl` when creating secrets with an improper output type", - "markdown": "Fixed a panic in `kubectl` when creating secrets with an improper output type ([#106317](https://github.com/kubernetes/kubernetes/pull/106317), [@lauchokyip](https://github.com/lauchokyip))", - "author": "lauchokyip", - "author_url": "https://github.com/lauchokyip", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106317", - "pr_number": 106317, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "106323": { - "commit": "3f0a634ef78b6df33075e54b0f89e465e88049c4", - "text": "update the system-validators library to v1.6.0", - "markdown": "Update the system-validators library to v1.6.0 ([#106323](https://github.com/kubernetes/kubernetes/pull/106323), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106323", - "pr_number": 106323, - "areas": [ - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "cluster-lifecycle" - ], - "feature": true, - "duplicate": true - }, - "106330": { - "commit": "8260340c61d2ad6887c9ef6882ef621083b8ae0e", - "text": "(beta feature) If the CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate applying FSGroup to the driver by passing it to NodeStageVolume and NodePublishVolume, regardless of what other FSGroup policies are set.", - "markdown": "(beta feature) If the CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate applying FSGroup to the driver by passing it to NodeStageVolume and NodePublishVolume, regardless of what other FSGroup policies are set. ([#106330](https://github.com/kubernetes/kubernetes/pull/106330), [@verult](https://github.com/verult)) [SIG Storage]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/1a4f862a4bba0ca796b097a87a661e4f1c736fb2/keps/sig-storage/2317-fsgroup-on-mount/README.md", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://github.com/kubernetes/website/blob/53f76125525d82cf679acc41cb464d244dbf00f0/content/en/docs/tasks/configure-pod-container/security-context.md?plain=1#L187", - "type": "external" - } - ], - "author": "verult", - "author_url": "https://github.com/verult", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106330", - "pr_number": 106330, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true - }, - "106382": { - "commit": "6c04f874705aa786e9450971e718d53e3072776f", - "text": "kubelet: fixes a file descriptor leak in log rotation", - "markdown": "Kubelet: fixes a file descriptor leak in log rotation ([#106382](https://github.com/kubernetes/kubernetes/pull/106382), [@rphillips](https://github.com/rphillips)) [SIG Node]", - "author": "rphillips", - "author_url": "https://github.com/rphillips", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106382", - "pr_number": 106382, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "106389": { - "commit": "79fed540aa6b9579bc23f5f92707f9f61a8b1759", - "text": "Upgrades functionality of `kubectl kustomize` as described at\nhttps://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.4.1", - "markdown": "Upgrades functionality of `kubectl kustomize` as described at\n https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.4.1 ([#106389](https://github.com/kubernetes/kubernetes/pull/106389), [@natasha41575](https://github.com/natasha41575)) [SIG CLI]", - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106389", - "pr_number": 106389, - "areas": [ - "kubectl", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "106433": { - "commit": "bd8e8507093095bbe411fd501ea5971f5b077b3b", - "text": "Topology Aware Hints have graduated to beta.", - "markdown": "Topology Aware Hints have graduated to beta. ([#106433](https://github.com/kubernetes/kubernetes/pull/106433), [@robscott](https://github.com/robscott)) [SIG Network]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106433", - "pr_number": 106433, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "106455": { - "commit": "39c76ba2edeadb84a115cc3fbd9204a2177f1c28", - "text": "Users should not rely on unsupported CRON_TZ variable when specifying schedule, both the API server and cronjob controller will emit warnings pointing to https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/ containing explanation", - "markdown": "Users should not rely on unsupported CRON_TZ variable when specifying schedule, both the API server and cronjob controller will emit warnings pointing to https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/ containing explanation ([#106455](https://github.com/kubernetes/kubernetes/pull/106455), [@soltysh](https://github.com/soltysh)) [SIG Apps]", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106455", - "pr_number": 106455, - "kinds": [ - "bug", - "documentation", - "cleanup", - "regression" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "106501": { - "commit": "d766ab88f7608c7f15afdb702c017a19af6e2b74", - "text": "CRI v1 is now the project default. If a container runtime does not support the v1 API, Kubernetes will fall back to the v1alpha2 implementation.", - "markdown": "CRI v1 is now the project default. If a container runtime does not support the v1 API, Kubernetes will fall back to the v1alpha2 implementation. ([#106501](https://github.com/kubernetes/kubernetes/pull/106501), [@ehashman](https://github.com/ehashman))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2040", - "type": "KEP" - } - ], - "author": "ehashman", - "author_url": "https://github.com/ehashman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106501", - "pr_number": 106501, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "106507": { - "commit": "37ae94f9ed45a7b4dac73129d9b9786c1d492ee0", - "text": "The `kube-Proxy` now correctly filters out unready endpoints for Services with Topology.", - "markdown": "The `kube-Proxy` now correctly filters out unready endpoints for Services with Topology. ([#106507](https://github.com/kubernetes/kubernetes/pull/106507), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106507", - "pr_number": 106507, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "106510": { - "commit": "084b28f6d58aaf82b9cc05d80232b31ce517c8c0", - "text": "Topology Aware Hints now ignores unready endpoints when assigning hints.", - "markdown": "Topology Aware Hints now ignores unready endpoints when assigning hints. ([#106510](https://github.com/kubernetes/kubernetes/pull/106510), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106510", - "pr_number": 106510, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "106520": { - "commit": "1304dfd73eb43b1c46e9cc2b5daddd963a70fbcf", - "text": "kubelet: the printing of flags at the start of kubelet now uses the final logging configuration.", - "markdown": "Kubelet: the printing of flags at the start of kubelet now uses the final logging configuration. ([#106520](https://github.com/kubernetes/kubernetes/pull/106520), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106520", - "pr_number": 106520, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "106661": { - "commit": "724289524084f6edbbe53e31d2c6e636343fdebb", - "text": "kube-apiserver: Server Side Apply merge order is reverted to match v1.22 behavior until `http://issue.k8s.io/104641` is resolved.", - "markdown": "Kube-apiserver: Server Side Apply merge order is reverted to match v1.22 behavior until `http://issue.k8s.io/104641` is resolved. ([#106661](https://github.com/kubernetes/kubernetes/pull/106661), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106661", - "pr_number": 106661, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "regression" - ], - "sigs": [ - "storage", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "106808": { - "commit": "88207ce3b8599fa7bebf4e017f0c178770354fa9", - "text": "Reverts the CRI API version surfaced by dockershim to `v1alpha2`.", - "markdown": "Reverts the CRI API version surfaced by dockershim to `v1alpha2`. ([#106808](https://github.com/kubernetes/kubernetes/pull/106808), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106808", - "pr_number": 106808, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true - }, - "92433": { - "commit": "819b021ada3090a8f520277291c6974283a42dbc", - "text": "The etcd container image now supports Windows.", - "markdown": "The etcd container image now supports Windows. ([#92433](https://github.com/kubernetes/kubernetes/pull/92433), [@claudiubelu](https://github.com/claudiubelu))", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92433", - "pr_number": 92433, - "areas": [ - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "windows" - ], - "feature": true, - "duplicate": true - }, - "92853": { - "commit": "7bff8adaf683dc7e25b5548e2c16e7393ff8a036", - "text": "Add mechanism to load simple sniffer class into fluentd-elasticsearch image", - "markdown": "Add mechanism to load simple sniffer class into fluentd-elasticsearch image ([#92853](https://github.com/kubernetes/kubernetes/pull/92853), [@cosmo0920](https://github.com/cosmo0920))", - "author": "cosmo0920", - "author_url": "https://github.com/cosmo0920", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92853", - "pr_number": 92853, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "92989": { - "commit": "cd80d70c3df154e8f6f2df5bfe8f7f8a490b7acc", - "text": "Add fish shell completion to kubectl.", - "markdown": "Add fish shell completion to kubectl. ([#92989](https://github.com/kubernetes/kubernetes/pull/92989), [@WLun001](https://github.com/WLun001))", - "author": "WLun001", - "author_url": "https://github.com/WLun001", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/92989", - "pr_number": 92989, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "94986": { - "commit": "904e97281fe399399878fc894f1540aaace051a7", - "text": "A new field `omitManagedFields` has been added to both `audit.Policy` and `audit.PolicyRule` \nso cluster operators can opt in to omit managed fields of the request and response bodies from \nbeing written to the API audit log.", - "markdown": "A new field `omitManagedFields` has been added to both `audit.Policy` and `audit.PolicyRule` \n so cluster operators can opt in to omit managed fields of the request and response bodies from \n being written to the API audit log. ([#94986](https://github.com/kubernetes/kubernetes/pull/94986), [@tkashem](https://github.com/tkashem)) [SIG API Machinery, Auth, Cloud Provider and Testing]", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94986", - "pr_number": 94986, - "areas": [ - "test", - "apiserver", - "provider/gcp", - "audit" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "auth", - "testing", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "95128": { - "commit": "d2f6eb6339de25cef04850b6d9be8335d52324cd", - "text": "kube-apiserver: requests to node, Service, and Pod `/proxy` subresources with no additional URL path now only automatically redirect GET and HEAD requests.", - "markdown": "Kube-apiserver: requests to node, Service, and Pod `/proxy` subresources with no additional URL path now only automatically redirect GET and HEAD requests. ([#95128](https://github.com/kubernetes/kubernetes/pull/95128), [@Riaankl](https://github.com/Riaankl))", - "author": "Riaankl", - "author_url": "https://github.com/Riaankl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95128", - "pr_number": 95128, - "areas": [ - "conformance" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing", - "architecture" - ], - "duplicate": true - }, - "96345": { - "commit": "c10be982d16de929eff5df99afb5556898ada9a9", - "text": "controller-manager: the following flags have no effect and would be removed in v1.24:\n- `--port`\n- `--address`\nThe insecure port flags `--port` may only be set to 0 now.\nAlso `metricsBindAddress` and `healthzBindAddress` fields from `kubescheduler.config.k8s.io/v1beta1` are no-op and expected to be empty. Removed in `kubescheduler.config.k8s.io/v1beta2` completely.", - "markdown": "Controller-manager: the following flags have no effect and would be removed in v1.24:\n - `--port`\n - `--address`\n The insecure port flags `--port` may only be set to 0 now.\n Also `metricsBindAddress` and `healthzBindAddress` fields from `kubescheduler.config.k8s.io/v1beta1` are no-op and expected to be empty. Removed in `kubescheduler.config.k8s.io/v1beta2` completely. ([#96345](https://github.com/kubernetes/kubernetes/pull/96345), [@ingvagabund](https://github.com/ingvagabund))", - "author": "ingvagabund", - "author_url": "https://github.com/ingvagabund", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96345", - "pr_number": 96345, - "areas": [ - "test", - "provider/gcp", - "e2e-test-framework" - ], - "kinds": [ - "cleanup", - "api-change", - "deprecation" - ], - "sigs": [ - "scheduling", - "testing", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "96684": { - "commit": "dd2d12f6dc0e654c15d5db57a5f9f6ba61192726", - "text": "The `Service.spec.ipFamilyPolicy` field is now *required* in order to create or update a Service as dual-stack. This is a breaking change from the beta behavior. Previously the server would try to infer the value of that field from either `ipFamilies` or `clusterIPs`, but that caused ambiguity on updates. Users who want a dual-stack Service MUST specify `ipFamilyPolicy` as either \"PreferDualStack\" or \"RequireDualStack\".", - "markdown": "The `Service.spec.ipFamilyPolicy` field is now *required* in order to create or update a Service as dual-stack. This is a breaking change from the beta behavior. Previously the server would try to infer the value of that field from either `ipFamilies` or `clusterIPs`, but that caused ambiguity on updates. Users who want a dual-stack Service MUST specify `ipFamilyPolicy` as either \"PreferDualStack\" or \"RequireDualStack\". ([#96684](https://github.com/kubernetes/kubernetes/pull/96684), [@thockin](https://github.com/thockin))", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96684", - "pr_number": 96684, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug", - "cleanup", - "api-change" - ], - "sigs": [ - "network", - "api-machinery", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "97350": { - "commit": "341d312066bd650e70995cd1a15925035b524a7d", - "text": "Added a new flag `--append-server-path` to `kubectl proxy` that will automatically append the kube context server path to each request.", - "markdown": "Added a new flag `--append-server-path` to `kubectl proxy` that will automatically append the kube context server path to each request. ([#97350](https://github.com/kubernetes/kubernetes/pull/97350), [@FabianKramm](https://github.com/FabianKramm))", - "author": "FabianKramm", - "author_url": "https://github.com/FabianKramm", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97350", - "pr_number": 97350, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "api-machinery", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "97415": { - "commit": "2face135c730282320d7d7c9873e190e483bce6f", - "text": "PodResources interface was changed, now it returns only isolated CPUs", - "markdown": "PodResources interface was changed, now it returns only isolated CPUs ([#97415](https://github.com/kubernetes/kubernetes/pull/97415), [@AlexeyPerevalov](https://github.com/AlexeyPerevalov))", - "author": "AlexeyPerevalov", - "author_url": "https://github.com/AlexeyPerevalov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97415", - "pr_number": 97415, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "98913": { - "commit": "44e2723e2c946171d2579af3d356eafe11d6a7aa", - "text": "Update `migratecmd/kube-proxy/app` logs to structured logging.", - "markdown": "Update `migratecmd/kube-proxy/app` logs to structured logging. ([#98913](https://github.com/kubernetes/kubernetes/pull/98913), [@yxxhero](https://github.com/yxxhero))", - "author": "yxxhero", - "author_url": "https://github.com/yxxhero", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/98913", - "pr_number": 98913, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "99273": { - "commit": "7282c2002e00028c30bf1afe35a9e88174b1f0c8", - "text": "Migrate `pkg/scheduler` to structured logging.", - "markdown": "Migrate `pkg/scheduler` to structured logging. ([#99273](https://github.com/kubernetes/kubernetes/pull/99273), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99273", - "pr_number": 99273, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "99557": { - "commit": "a988182f595af64bc007ba9162509e089c36fd89", - "text": "Adds new [alpha] command 'kubectl events'", - "markdown": "Adds new [alpha] command 'kubectl events' ([#99557](https://github.com/kubernetes/kubernetes/pull/99557), [@bboreham](https://github.com/bboreham))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1440", - "type": "KEP" - } - ], - "author": "bboreham", - "author_url": "https://github.com/bboreham", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99557", - "pr_number": 99557, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "99728": { - "commit": "b8af116327cd5d8e5411cbac04e7d4d11d22485d", - "text": "Added a feature gate `StatefulSetAutoDeletePVC`, which allows PVCs automatically created for StatefulSet pods to be automatically deleted.", - "markdown": "Added a feature gate `StatefulSetAutoDeletePVC`, which allows PVCs automatically created for StatefulSet pods to be automatically deleted. ([#99728](https://github.com/kubernetes/kubernetes/pull/99728), [@mattcary](https://github.com/mattcary))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/1847-autoremove-statefulset-pvcs", - "type": "KEP" - } - ], - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99728", - "pr_number": 99728, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - } +{ + "100125": { + "commit": "0734820279ccce8c6034d9d122392fe3a0c7535e", + "text": "kube-apiserver: events created via the `events.k8s.io` API group for cluster-scoped objects are now permitted in the default namespace as well for compatibility with events clients and the `v1` API", + "markdown": "Kube-apiserver: events created via the `events.k8s.io` API group for cluster-scoped objects are now permitted in the default namespace as well for compatibility with events clients and the `v1` API ([#100125](https://github.com/kubernetes/kubernetes/pull/100125), [@h4ghhh](https://github.com/h4ghhh))", + "author": "h4ghhh", + "author_url": "https://github.com/h4ghhh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100125", + "pr_number": 100125, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "duplicate": true + }, + "100482": { + "commit": "e414cf764196a3753d7f8063827131fc4c8d771b", + "text": "Handle Generic Ephemeral Volumes properly in the node limits scheduler filter and the kubelet `hostPath` check.", + "markdown": "Handle Generic Ephemeral Volumes properly in the node limits scheduler filter and the kubelet `hostPath` check. ([#100482](https://github.com/kubernetes/kubernetes/pull/100482), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100482", + "pr_number": 100482, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "testing" + ], + "duplicate": true + }, + "100720": { + "commit": "df51e4e63e198331ca4797ac43d3f2c9336f556d", + "text": "Metrics changes: Fix exposed buckets of `scheduler_volume_scheduling_duration_seconds_bucket` metric.", + "markdown": "Metrics changes: Fix exposed buckets of `scheduler_volume_scheduling_duration_seconds_bucket` metric. ([#100720](https://github.com/kubernetes/kubernetes/pull/100720), [@dntosas](https://github.com/dntosas))", + "author": "dntosas", + "author_url": "https://github.com/dntosas", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100720", + "pr_number": 100720, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "storage", + "apps", + "instrumentation" + ], + "duplicate": true + }, + "101081": { + "commit": "8dbc33d649e3e60ac3aa88ff25633baad04242f0", + "text": "Add Kubernetes Events to the `Kubelet Graceful Shutdown` feature.", + "markdown": "Add Kubernetes Events to the `Kubelet Graceful Shutdown` feature. ([#101081](https://github.com/kubernetes/kubernetes/pull/101081), [@rphillips](https://github.com/rphillips))", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101081", + "pr_number": 101081, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "101257": { + "commit": "938d31e273328bc3982e74efd84be83ddd3698ea", + "text": "Introduce a new server run option 'shutdown-send-retry-after'. If true the HTTP Server will continue listening until all non longrunning request(s) in flight have been drained, during this window all incoming requests will be rejected with a status code `429` and a 'Retry-After' response header.", + "markdown": "Introduce a new server run option 'shutdown-send-retry-after'. If true the HTTP Server will continue listening until all non longrunning request(s) in flight have been drained, during this window all incoming requests will be rejected with a status code `429` and a 'Retry-After' response header. ([#101257](https://github.com/kubernetes/kubernetes/pull/101257), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101257", + "pr_number": 101257, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "101370": { + "commit": "41fdc193ff28218f15bc30f2bdaa07b91a5008bc", + "text": "Create HPA with follow:", + "markdown": "Create HPA with follow: ([#101370](https://github.com/kubernetes/kubernetes/pull/101370), [@RyanAoh](https://github.com/RyanAoh)) [SIG Autoscaling]", + "author": "RyanAoh", + "author_url": "https://github.com/RyanAoh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101370", + "pr_number": 101370, + "kinds": [ + "bug" + ], + "sigs": [ + "autoscaling" + ], + "do_not_publish": true + }, + "101646": { + "commit": "0d997019e9b8e825c75547bbcbb1bab65d9e4bdf", + "text": "Adding support for multiple `--from-env-file` flags.", + "markdown": "Adding support for multiple `--from-env-file` flags. ([#101646](https://github.com/kubernetes/kubernetes/pull/101646), [@lauchokyip](https://github.com/lauchokyip))", + "author": "lauchokyip", + "author_url": "https://github.com/lauchokyip", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101646", + "pr_number": 101646, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "101781": { + "commit": "9c5cefb230241d74340ba530666212300cba8ff8", + "text": "[Errno -2] Name or service not known", + "markdown": "[Errno -2] Name or service not known ([#101781](https://github.com/kubernetes/kubernetes/pull/101781), [@ptabor](https://github.com/ptabor)) [SIG Cloud Provider]", + "author": "ptabor", + "author_url": "https://github.com/ptabor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101781", + "pr_number": 101781, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ], + "do_not_publish": true + }, + "101789": { + "commit": "7ee94f2f4fc4c8e0444ea89ef828eb452d0ba908", + "text": "The `CSIDriver.Spec.StorageCapacity` can now be modified.", + "markdown": "The `CSIDriver.Spec.StorageCapacity` can now be modified. ([#101789](https://github.com/kubernetes/kubernetes/pull/101789), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1472-storage-capacity-tracking", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101789", + "pr_number": 101789, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true, + "duplicate_kind": true + }, + "101928": { + "commit": "8ac95264750ad1d93ec92b58b9956cd8f6a0a738", + "text": "Added a `Processing` condition for the `workqueue` API.\nChanged `Shutdown` for the `workqueue` API to wait until the work queue finishes processing all in-flight items.", + "markdown": "Added a `Processing` condition for the `workqueue` API.\n Changed `Shutdown` for the `workqueue` API to wait until the work queue finishes processing all in-flight items. ([#101928](https://github.com/kubernetes/kubernetes/pull/101928), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101928", + "pr_number": 101928, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true + }, + "102015": { + "commit": "55e1d2f9a73a0c78fc0c266236c3e31261635b90", + "text": "Support allocating whole NUMA nodes in the CPUManager when there is not a 1:1 mapping between socket and NUMA node", + "markdown": "Support allocating whole NUMA nodes in the CPUManager when there is not a 1:1 mapping between socket and NUMA node ([#102015](https://github.com/kubernetes/kubernetes/pull/102015), [@klueska](https://github.com/klueska))", + "author": "klueska", + "author_url": "https://github.com/klueska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102015", + "pr_number": 102015, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "102242": { + "commit": "a48a2efbd45ad77901dd09f2665d8cc1e1d8dbf6", + "text": "Remove 'master' as a valid EgressSelection type in the EgressSelectorConfiguration API.", + "markdown": "Remove 'master' as a valid EgressSelection type in the EgressSelectorConfiguration API. ([#102242](https://github.com/kubernetes/kubernetes/pull/102242), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102242", + "pr_number": 102242, + "areas": [ + "apiserver", + "provider/gcp" + ], + "kinds": [ + "cleanup", + "api-change", + "deprecation" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "102393": { + "commit": "5d60c8d8573f19bab79c571854c677143e7e5056", + "text": "Pod SecurityContext sysctls name parameter for update requests where the existing object's sysctl contains slashes and kubelet sysctl whitelist support contains slashes.", + "markdown": "Pod SecurityContext sysctls name parameter for update requests where the existing object's sysctl contains slashes and kubelet sysctl whitelist support contains slashes. ([#102393](https://github.com/kubernetes/kubernetes/pull/102393), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Apps, Auth, Node, Storage and Testing]", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102393", + "pr_number": 102393, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node", + "auth", + "apps", + "testing" + ], + "duplicate": true + }, + "102507": { + "commit": "542829d30d2e48abb802e4f4499dc63dd8076c3d", + "text": "Introduce a feature gate `DisableKubeletCloudCredentialProviders` which allows disabling the in-tree kubelet credential providers.\n\nThe feature gate `DisableKubeletCloudCredentialProviders` is currently in Alpha, which means is currently disabled by default. Once this feature gate moves to beta, in-tree credential providers will be disabled by default, and users will need to migrate to use external credential providers.", + "markdown": "Introduce a feature gate `DisableKubeletCloudCredentialProviders` which allows disabling the in-tree kubelet credential providers.\n \n The feature gate `DisableKubeletCloudCredentialProviders` is currently in Alpha, which means is currently disabled by default. Once this feature gate moves to beta, in-tree credential providers will be disabled by default, and users will need to migrate to use external credential providers. ([#102507](https://github.com/kubernetes/kubernetes/pull/102507), [@ostrain](https://github.com/ostrain))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2443", + "type": "KEP" + }, + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/1a66671cf0e01ceb19f56bfb563100909cb67867/keps/sig-cloud-provider/2133-out-of-tree-credential-provider", + "type": "KEP" + } + ], + "author": "ostrain", + "author_url": "https://github.com/ostrain", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102507", + "pr_number": 102507, + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "102534": { + "commit": "8e02b788737aec63629e9c9329b064ab96826016", + "text": "Create HPA v2 from v2beta2 with some fields changed.", + "markdown": "Create HPA v2 from v2beta2 with some fields changed. ([#102534](https://github.com/kubernetes/kubernetes/pull/102534), [@wangyysde](https://github.com/wangyysde)) [SIG API Machinery, Apps, Auth, Autoscaling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-autoscaling/2702-graduate-hpa-api-to-GA", + "type": "KEP" + } + ], + "author": "wangyysde", + "author_url": "https://github.com/wangyysde", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102534", + "pr_number": 102534, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "autoscaling", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "102886": { + "commit": "1f8b1b84fbfbf88bf50429b1f5673fd34ae30050", + "text": "Allow node expansion of local volumes.", + "markdown": "Allow node expansion of local volumes. ([#102886](https://github.com/kubernetes/kubernetes/pull/102886), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102886", + "pr_number": 102886, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "testing" + ], + "feature": true, + "duplicate": true + }, + "102915": { + "commit": "91b7fb4dc9f5d98583ee63be51dac7b6c0704b10", + "text": "Support pod priority based node graceful shutdown.", + "markdown": "Support pod priority based node graceful shutdown. ([#102915](https://github.com/kubernetes/kubernetes/pull/102915), [@wzshiming](https://github.com/wzshiming))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2712-pod-priority-based-graceful-node-shutdown", + "type": "KEP" + } + ], + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102915", + "pr_number": 102915, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "102917": { + "commit": "cee4aa09b09298c5d2ecf4ccaed9927f3c176fdf", + "text": "Added show-capacity option to `kubectl top node` to show `Capacity` resource usage", + "markdown": "Added show-capacity option to `kubectl top node` to show `Capacity` resource usage ([#102917](https://github.com/kubernetes/kubernetes/pull/102917), [@bysnupy](https://github.com/bysnupy)) [SIG CLI]", + "author": "bysnupy", + "author_url": "https://github.com/bysnupy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102917", + "pr_number": 102917, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "102945": { + "commit": "9be67806cdecc18a07750eacd796f7885644def1", + "text": "client-go: pass `DeleteOptions` down to the fake client `Reactor`", + "markdown": "Client-go: pass `DeleteOptions` down to the fake client `Reactor` ([#102945](https://github.com/kubernetes/kubernetes/pull/102945), [@chenchun](https://github.com/chenchun))", + "author": "chenchun", + "author_url": "https://github.com/chenchun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102945", + "pr_number": 102945, + "areas": [ + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps" + ], + "feature": true, + "duplicate": true + }, + "102981": { + "commit": "7ab3e3c8c39cc8f4d832fb800cf9db72bd95c733", + "text": "The `kube-controller-manager` supports `--concurrent-ephemeralvolume-syncs` flag to set the number of ephemeral volume controller workers.", + "markdown": "The `kube-controller-manager` supports `--concurrent-ephemeralvolume-syncs` flag to set the number of ephemeral volume controller workers. ([#102981](https://github.com/kubernetes/kubernetes/pull/102981), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102981", + "pr_number": 102981, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "103027": { + "commit": "40c9066054433353fafce208a6cdd286f31f7d26", + "text": "kubeadm: add support for dry running `kubeadm join`. The new flag `kubeadm join --dry-run` is similar to the existing flag for `kubeadm init/upgrade` and allows you to see what changes would be applied.", + "markdown": "Kubeadm: add support for dry running `kubeadm join`. The new flag `kubeadm join --dry-run` is similar to the existing flag for `kubeadm init/upgrade` and allows you to see what changes would be applied. ([#103027](https://github.com/kubernetes/kubernetes/pull/103027), [@Haleygo](https://github.com/Haleygo))", + "author": "Haleygo", + "author_url": "https://github.com/Haleygo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103027", + "pr_number": 103027, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "103095": { + "commit": "33de444861d3de783a6618be9d10fa84da1c11b4", + "text": "Added support for `PodAndContainerStatsFromCRI` feature gate, which allows a user to specify their pod stats must also come from the CRI, not `cAdvisor`.", + "markdown": "Added support for `PodAndContainerStatsFromCRI` feature gate, which allows a user to specify their pod stats must also come from the CRI, not `cAdvisor`. ([#103095](https://github.com/kubernetes/kubernetes/pull/103095), [@haircommander](https://github.com/haircommander))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2371", + "type": "KEP" + } + ], + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103095", + "pr_number": 103095, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "103137": { + "commit": "d7c166355613812feaaf2366fa64e9a2d7ae6550", + "text": "Graceful node shutdown, allow the actual inhibit delay to be greater than the expected inhibit delay.", + "markdown": "Graceful node shutdown, allow the actual inhibit delay to be greater than the expected inhibit delay. ([#103137](https://github.com/kubernetes/kubernetes/pull/103137), [@wzshiming](https://github.com/wzshiming))", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103137", + "pr_number": 103137, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "103162": { + "commit": "d7a06ede70b293d9932925b5430c4df08b3744e3", + "text": "Introduces a new metric: `admission_webhook_request_total` with the following labels: name (string) - the webhook name, type (string) - the admission type, operation (string) - the requested verb, code (int) - the HTTP status code, rejected (bool) - whether the request was rejected, namespace (string) - the namespace of the requested resource.", + "markdown": "Introduces a new metric: `admission_webhook_request_total` with the following labels: name (string) - the webhook name, type (string) - the admission type, operation (string) - the requested verb, code (int) - the HTTP status code, rejected (bool) - whether the request was rejected, namespace (string) - the namespace of the requested resource. ([#103162](https://github.com/kubernetes/kubernetes/pull/103162), [@rmoriar1](https://github.com/rmoriar1))", + "author": "rmoriar1", + "author_url": "https://github.com/rmoriar1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103162", + "pr_number": 103162, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "103172": { + "commit": "fed612c9f8e00cc2d228bbe7afa66f4623085916", + "text": "The deprecated `--experimental-bootstrap-kubeconfig` flag has been removed.\nThis can be set via `--bootstrap-kubeconfig`.", + "markdown": "The deprecated `--experimental-bootstrap-kubeconfig` flag has been removed.\n This can be set via `--bootstrap-kubeconfig`. ([#103172](https://github.com/kubernetes/kubernetes/pull/103172), [@niulechuan](https://github.com/niulechuan))", + "author": "niulechuan", + "author_url": "https://github.com/niulechuan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103172", + "pr_number": 103172, + "areas": [ + "kubelet" + ], + "kinds": [ + "deprecation" + ], + "sigs": [ + "node" + ] + }, + "103174": { + "commit": "16823fceb00fc19bbb15bbefd063bf07d66ee96a", + "text": "Changes behaviour of kube-proxy start; does not attempt to set specific `sysctl` values (which does not work in recent Kernel versions anymore in non-init namespaces), when the current sysctl values are already set higher.", + "markdown": "Changes behaviour of kube-proxy start; does not attempt to set specific `sysctl` values (which does not work in recent Kernel versions anymore in non-init namespaces), when the current sysctl values are already set higher. ([#103174](https://github.com/kubernetes/kubernetes/pull/103174), [@Napsty](https://github.com/Napsty))", + "author": "Napsty", + "author_url": "https://github.com/Napsty", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103174", + "pr_number": 103174, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "103178": { + "commit": "0c9bb963f847debd6abe320035703fc568e0687d", + "text": "Cloud providers can set service account names for cloud controllers.", + "markdown": "Cloud providers can set service account names for cloud controllers. ([#103178](https://github.com/kubernetes/kubernetes/pull/103178), [@nckturner](https://github.com/nckturner))", + "author": "nckturner", + "author_url": "https://github.com/nckturner", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103178", + "pr_number": 103178, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "103231": { + "commit": "d1479ea431cddda2a432dc0edbaa465923d5f5f2", + "text": "Fixed an issue which didn't append OS's environment variables with the one provided in Credential Provider Config file, which may fail execution of external credential provider binary. \nSee https://github.com/kubernetes/kubernetes/issues/102750.", + "markdown": "Fixed an issue which didn't append OS's environment variables with the one provided in Credential Provider Config file, which may fail execution of external credential provider binary. \n See https://github.com/kubernetes/kubernetes/issues/102750. ([#103231](https://github.com/kubernetes/kubernetes/pull/103231), [@n4j](https://github.com/n4j))", + "author": "n4j", + "author_url": "https://github.com/n4j", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103231", + "pr_number": 103231, + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "auth" + ], + "duplicate": true + }, + "103299": { + "commit": "0473cab82327ce51d9ef824d4836c3912c357d05", + "text": "allows users to prevent garbage collection on pinned images", + "markdown": "Allows users to prevent garbage collection on pinned images ([#103299](https://github.com/kubernetes/kubernetes/pull/103299), [@wgahnagl](https://github.com/wgahnagl)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2694", + "type": "KEP" + } + ], + "author": "wgahnagl", + "author_url": "https://github.com/wgahnagl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103299", + "pr_number": 103299, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "103439": { + "commit": "dadecb2c8932fd28de9dfb94edbc7bdac7d0d28f", + "text": "Fixed azure disk translation issue due to lower case `managed` kind.", + "markdown": "Fixed azure disk translation issue due to lower case `managed` kind. ([#103439](https://github.com/kubernetes/kubernetes/pull/103439), [@andyzhangx](https://github.com/andyzhangx))", + "documentation": [ + { + "description": "follow guide", + "url": "https://docs.microsoft.com/en-us/azure/virtual-machines/windows/convert-unmanaged-to-managed-disks", + "type": "external" + } + ], + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103439", + "pr_number": 103439, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "cloud-provider" + ], + "duplicate": true + }, + "103447": { + "commit": "8d9e424f73287eecc4c680f30cf3f95f021ca220", + "text": "Add support for Portworx plugin to csi-translation-lib. Alpha release\n\nPortworx CSI driver is required to enable migration.\nThis PR adds support of the `CSIMigrationPortworx` feature gate, which can be enabled by:\n\n1. Adding the feature flag to the kube-controller-manager `--feature-gates=CSIMigrationPortworx=true` \n2. Adding the feature flag to the kubelet config:\n\nfeatureGates:\n CSIMigrationPortworx: true", + "markdown": "Add support for Portworx plugin to csi-translation-lib. Alpha release\n \n Portworx CSI driver is required to enable migration.\n This PR adds support of the `CSIMigrationPortworx` feature gate, which can be enabled by:\n \n 1. Adding the feature flag to the kube-controller-manager `--feature-gates=CSIMigrationPortworx=true` \n 2. Adding the feature flag to the kubelet config:\n \n featureGates:\n CSIMigrationPortworx: true ([#103447](https://github.com/kubernetes/kubernetes/pull/103447), [@trierra](https://github.com/trierra)) [SIG API Machinery, Apps, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows]", + "author": "trierra", + "author_url": "https://github.com/trierra", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103447", + "pr_number": 103447, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "kubeadm", + "ipvs", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "scalability", + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "apps", + "windows", + "cli", + "instrumentation", + "testing", + "release", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "103515": { + "commit": "3282d6cfdbaa6c935c5eb8192bcec6fdeabcdbe4", + "text": "`kube-scheduler` now logs node and plugin scoring even though --v\u003c10\n- scores of the top 3 plugins in the top 3 nodes are dumped if --v=4,5\n- scores of all plugins in the top 6 nodes are dumped if --v=6,7,8,9", + "markdown": "`kube-scheduler` now logs node and plugin scoring even though --v\u003c10\n - scores of the top 3 plugins in the top 3 nodes are dumped if --v=4,5\n - scores of all plugins in the top 6 nodes are dumped if --v=6,7,8,9 ([#103515](https://github.com/kubernetes/kubernetes/pull/103515), [@muma378](https://github.com/muma378))", + "author": "muma378", + "author_url": "https://github.com/muma378", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103515", + "pr_number": 103515, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "103538": { + "commit": "f1c817614d28ca1127a6217fce9032f37a4eec72", + "text": "The flag `--deployment-controller-sync-period` has been deprecated and will be removed in v1.24.", + "markdown": "The flag `--deployment-controller-sync-period` has been deprecated and will be removed in v1.24. ([#103538](https://github.com/kubernetes/kubernetes/pull/103538), [@Pingan2017](https://github.com/Pingan2017))", + "author": "Pingan2017", + "author_url": "https://github.com/Pingan2017", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103538", + "pr_number": 103538, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ] + }, + "103564": { + "commit": "0a704f9e1f6685f3ae39114435d23593a900e74c", + "text": "Expose a `NewUnstructuredExtractor` from apply configurations `meta/v1` package that enables extracting objects into unstructured apply configurations.", + "markdown": "Expose a `NewUnstructuredExtractor` from apply configurations `meta/v1` package that enables extracting objects into unstructured apply configurations. ([#103564](https://github.com/kubernetes/kubernetes/pull/103564), [@kevindelgado](https://github.com/kevindelgado))", + "author": "kevindelgado", + "author_url": "https://github.com/kevindelgado", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103564", + "pr_number": 103564, + "areas": [ + "test", + "apiserver", + "release-eng", + "kubeadm", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "103654": { + "commit": "a87838481b240652c2dd29ced38a386a33517439", + "text": "The `constants/variables` from k8s.io for STABLE metrics is now supported.", + "markdown": "The `constants/variables` from k8s.io for STABLE metrics is now supported. ([#103654](https://github.com/kubernetes/kubernetes/pull/103654), [@coffeepac](https://github.com/coffeepac))", + "author": "coffeepac", + "author_url": "https://github.com/coffeepac", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103654", + "pr_number": 103654, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "auth", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "103685": { + "commit": "4f50f99cc65ae6b0f2cca21fdf448229c5b22cdf", + "text": "The `ServiceAccountIssuerDiscovery` feature gate is removed. It reached GA in Kubernetes 1.21.", + "markdown": "The `ServiceAccountIssuerDiscovery` feature gate is removed. It reached GA in Kubernetes 1.21. ([#103685](https://github.com/kubernetes/kubernetes/pull/103685), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/1393-oidc-discovery", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103685", + "pr_number": 103685, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true + }, + "103692": { + "commit": "c1e69551be1a72f0f8db6778f20658199d3a686d", + "text": "Kubernetes is now built using go 1.17.", + "markdown": "Kubernetes is now built using go 1.17. ([#103692](https://github.com/kubernetes/kubernetes/pull/103692), [@justaugustus](https://github.com/justaugustus))", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103692", + "pr_number": 103692, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "kubeadm", + "code-generation", + "ipvs", + "dependency" + ], + "kinds": [ + "api-change", + "feature", + "failing-test" + ], + "sigs": [ + "network", + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "autoscaling", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "103724": { + "commit": "98e526390da420db6d36c4a0d7203fcde74a1dd8", + "text": "The image `gcr.io/kubernetes-e2e-test-images` will no longer be used in E2E / CI testing, `k8s.gcr.io/e2e-test-images` will be used instead.", + "markdown": "The image `gcr.io/kubernetes-e2e-test-images` will no longer be used in E2E / CI testing, `k8s.gcr.io/e2e-test-images` will be used instead. ([#103724](https://github.com/kubernetes/kubernetes/pull/103724), [@claudiubelu](https://github.com/claudiubelu))", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103724", + "pr_number": 103724, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "103751": { + "commit": "c0c7039f3a114b3d0e24e42efb9e8bf548161ba4", + "text": "Scheduler resource metrics over fractional binary quantities (2.5Gi, 1.1Ki) were incorrectly reported as very small values.", + "markdown": "Scheduler resource metrics over fractional binary quantities (2.5Gi, 1.1Ki) were incorrectly reported as very small values. ([#103751](https://github.com/kubernetes/kubernetes/pull/103751), [@y-tag](https://github.com/y-tag))", + "author": "y-tag", + "author_url": "https://github.com/y-tag", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103751", + "pr_number": 103751, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "api-machinery" + ], + "duplicate": true + }, + "103758": { + "commit": "dec8528abaa58a4c7fc190df2cad8848799f9891", + "text": "Added PowerShell completion generation by running `kubectl completion powershell`.", + "markdown": "Added PowerShell completion generation by running `kubectl completion powershell`. ([#103758](https://github.com/kubernetes/kubernetes/pull/103758), [@zikhan](https://github.com/zikhan))", + "author": "zikhan", + "author_url": "https://github.com/zikhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103758", + "pr_number": 103758, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "103793": { + "commit": "644228091e41cf33c97d576676ea8630c7bb97b1", + "text": "Deprecate `apiserver_longrunning_gauge` and `apiserver_register_watchers` in 1.23.0.", + "markdown": "Deprecate `apiserver_longrunning_gauge` and `apiserver_register_watchers` in 1.23.0. ([#103793](https://github.com/kubernetes/kubernetes/pull/103793), [@yan-lgtm](https://github.com/yan-lgtm))", + "author": "yan-lgtm", + "author_url": "https://github.com/yan-lgtm", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103793", + "pr_number": 103793, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "instrumentation" + ], + "duplicate": true + }, + "103794": { + "commit": "b3027706602546d486b7869998886e7c81317707", + "text": "Provide IPv6 support for internal load balancer.", + "markdown": "Provide IPv6 support for internal load balancer. ([#103794](https://github.com/kubernetes/kubernetes/pull/103794), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103794", + "pr_number": 103794, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "103796": { + "commit": "2dc4f7be17e797a03eaee4577156faf00fd00a13", + "text": "The `AllowInsecureBackendProxy` feature gate is removed. It reached GA in Kubernetes 1.21.", + "markdown": "The `AllowInsecureBackendProxy` feature gate is removed. It reached GA in Kubernetes 1.21. ([#103796](https://github.com/kubernetes/kubernetes/pull/103796), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103796", + "pr_number": 103796, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "103799": { + "commit": "58617e161933277fe362599ce380bebf08cbdacb", + "text": "Added `apiserver_longrunning_requests` metric to replace the soon to be deprecated `apiserver_longrunning_gauge` metric.", + "markdown": "Added `apiserver_longrunning_requests` metric to replace the soon to be deprecated `apiserver_longrunning_gauge` metric. ([#103799](https://github.com/kubernetes/kubernetes/pull/103799), [@jyz0309](https://github.com/jyz0309))", + "author": "jyz0309", + "author_url": "https://github.com/jyz0309", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103799", + "pr_number": 103799, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true + }, + "103801": { + "commit": "8df554bafdf1d8030d459a89111d8a178e537387", + "text": "kubeadm: external etcd endpoints passed in the `ClusterConfiguration` that have Unicode characters are no longer IDNA encoded (converted to Punycode). They are now just URL encoded as per Go's implementation of RFC-3986, have duplicate \"/\" removed from the URL paths, and passed like that directly to the `kube-apiserver` `--etcd-servers` flag. If you have etcd endpoints that have Unicode characters, it is advisable to encode them in advance with tooling that is fully IDNA compliant. If you don't do that, the Go standard library (used in k8s and etcd) would do it for you when making requests to the endpoints.", + "markdown": "Kubeadm: external etcd endpoints passed in the `ClusterConfiguration` that have Unicode characters are no longer IDNA encoded (converted to Punycode). They are now just URL encoded as per Go's implementation of RFC-3986, have duplicate \"/\" removed from the URL paths, and passed like that directly to the `kube-apiserver` `--etcd-servers` flag. If you have etcd endpoints that have Unicode characters, it is advisable to encode them in advance with tooling that is fully IDNA compliant. If you don't do that, the Go standard library (used in k8s and etcd) would do it for you when making requests to the endpoints. ([#103801](https://github.com/kubernetes/kubernetes/pull/103801), [@gkarthiks](https://github.com/gkarthiks))", + "author": "gkarthiks", + "author_url": "https://github.com/gkarthiks", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103801", + "pr_number": 103801, + "areas": [ + "kubeadm", + "dependency", + "code-organization" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "103813": { + "commit": "90ac41bd77d6c5f768ff3a21c072c2ec18ff67b7", + "text": "kubeadm: update references to legacy artifacts locations, the `ci-cross` prefix has been removed from the version match as it does not exist in the new `gs://k8s-release-dev` bucket.", + "markdown": "Kubeadm: update references to legacy artifacts locations, the `ci-cross` prefix has been removed from the version match as it does not exist in the new `gs://k8s-release-dev` bucket. ([#103813](https://github.com/kubernetes/kubernetes/pull/103813), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103813", + "pr_number": 103813, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "103823": { + "commit": "1a9ae3454993b2362503db3efe1d7e48307bf3ff", + "text": "Fix an issue in cleaning up `CertificateSigningRequest` objects with an unparseable `status.certificate` field.", + "markdown": "Fix an issue in cleaning up `CertificateSigningRequest` objects with an unparseable `status.certificate` field. ([#103823](https://github.com/kubernetes/kubernetes/pull/103823), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103823", + "pr_number": 103823, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "apps" + ], + "duplicate": true + }, + "103831": { + "commit": "9b84e473b28f0e63fd27df420791e2089fc09b30", + "text": "Disable aufs module for gce clusters.", + "markdown": "Disable aufs module for gce clusters. ([#103831](https://github.com/kubernetes/kubernetes/pull/103831), [@lizhuqi](https://github.com/lizhuqi))", + "author": "lizhuqi", + "author_url": "https://github.com/lizhuqi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103831", + "pr_number": 103831, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "103843": { + "commit": "488292100207b246bdb658d68742eca3cb11cf4a", + "text": "Update description of `--audit-log-maxbackup` to describe behavior when `value = 0`.", + "markdown": "Update description of `--audit-log-maxbackup` to describe behavior when `value = 0`. ([#103843](https://github.com/kubernetes/kubernetes/pull/103843), [@Arkessler](https://github.com/Arkessler))", + "author": "Arkessler", + "author_url": "https://github.com/Arkessler", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103843", + "pr_number": 103843, + "areas": [ + "apiserver" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "api-machinery" + ] + }, + "103852": { + "commit": "3945e35f1cfac9d489242607ddbba8c74c452ec3", + "text": "Fixed a bug which kubectl would emit duplicate warning messages for flag names that contain an underscore and recommend using a nonexistent flag in some cases.", + "markdown": "Fixed a bug which kubectl would emit duplicate warning messages for flag names that contain an underscore and recommend using a nonexistent flag in some cases. ([#103852](https://github.com/kubernetes/kubernetes/pull/103852), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103852", + "pr_number": 103852, + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle", + "cli" + ], + "duplicate": true + }, + "103875": { + "commit": "ee5df7cbcfffaddece66944a528fccb07430d29a", + "text": "Fixed a regression setting `--audit-log-path=-` to log to stdout in 1.22 pre-release.", + "markdown": "Fixed a regression setting `--audit-log-path=-` to log to stdout in 1.22 pre-release. ([#103875](https://github.com/kubernetes/kubernetes/pull/103875), [@andrewrynhard](https://github.com/andrewrynhard))", + "author": "andrewrynhard", + "author_url": "https://github.com/andrewrynhard", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103875", + "pr_number": 103875, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "duplicate_kind": true + }, + "103894": { + "commit": "6a7a527f8e56323f3615790c0794f01274c74b18", + "text": "Display Labels when kubectl describe ingress.", + "markdown": "Display Labels when kubectl describe ingress. ([#103894](https://github.com/kubernetes/kubernetes/pull/103894), [@kabab](https://github.com/kabab))", + "author": "kabab", + "author_url": "https://github.com/kabab", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103894", + "pr_number": 103894, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "103917": { + "commit": "ec663ada4be14d0afd45e0414b8711d4380ec289", + "text": "Troubleshooting: informers log handlers that take more than 100 milliseconds to process an object if the `DeltaFIFO` queue starts to grow beyond 10 elements.", + "markdown": "Troubleshooting: informers log handlers that take more than 100 milliseconds to process an object if the `DeltaFIFO` queue starts to grow beyond 10 elements. ([#103917](https://github.com/kubernetes/kubernetes/pull/103917), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103917", + "pr_number": 103917, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "103918": { + "commit": "582c6f6df71d8c59de5b8b5a2363d13ffcc42b14", + "text": "`client-go` event library allows customizing spam filtering function. \nIt is now possible to override `SpamKeyFunc`, which is used by event filtering to detect spam in the events.", + "markdown": "`client-go` event library allows customizing spam filtering function. \n It is now possible to override `SpamKeyFunc`, which is used by event filtering to detect spam in the events. ([#103918](https://github.com/kubernetes/kubernetes/pull/103918), [@olagacek](https://github.com/olagacek))", + "author": "olagacek", + "author_url": "https://github.com/olagacek", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103918", + "pr_number": 103918, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "103941": { + "commit": "0b4a793da2a2912393687367e0af2436612a9b8e", + "text": "Removed deprecated `--seccomp-profile-root`/`seccompProfileRoot` config.", + "markdown": "Removed deprecated `--seccomp-profile-root`/`seccompProfileRoot` config. ([#103941](https://github.com/kubernetes/kubernetes/pull/103941), [@saschagrunert](https://github.com/saschagrunert))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/135-seccomp#seccomp-root-path-configuration", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103941", + "pr_number": 103941, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "node" + ] + }, + "103958": { + "commit": "28990f766481c28d7b942a669eaac8b1191e0805", + "text": "kube-apiserver: sets an upper-bound on the lifetime of idle keep-alive connections and the time to read the headers of incoming requests.", + "markdown": "Kube-apiserver: sets an upper-bound on the lifetime of idle keep-alive connections and the time to read the headers of incoming requests. ([#103958](https://github.com/kubernetes/kubernetes/pull/103958), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103958", + "pr_number": 103958, + "areas": [ + "kubelet", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "api-machinery" + ], + "duplicate": true + }, + "103997": { + "commit": "5336006cc8c42ee2f46baed4e91ec5596499e8b2", + "text": "Fix: ignore non-VMSS error for VMAS nodes in `reconcileBackendPools`.", + "markdown": "Fix: ignore non-VMSS error for VMAS nodes in `reconcileBackendPools`. ([#103997](https://github.com/kubernetes/kubernetes/pull/103997), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103997", + "pr_number": 103997, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "104009": { + "commit": "2c1c1b75465e93ecc49d0cd59efdfa1b0bdb3bbc", + "text": "kube-proxy: delete stale conntrack UDP entries for loadbalancer ingress IP.", + "markdown": "Kube-proxy: delete stale conntrack UDP entries for loadbalancer ingress IP. ([#104009](https://github.com/kubernetes/kubernetes/pull/104009), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104009", + "pr_number": 104009, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "104011": { + "commit": "94a55684a8ef2f0108b1f9f8bd15b3e31ac92c4d", + "text": "Updated json representation for a conflicted taint to `Key=Effect` when a conflicted taint occurs in kubectl taint.", + "markdown": "Updated json representation for a conflicted taint to `Key=Effect` when a conflicted taint occurs in kubectl taint. ([#104011](https://github.com/kubernetes/kubernetes/pull/104011), [@manugupt1](https://github.com/manugupt1))", + "author": "manugupt1", + "author_url": "https://github.com/manugupt1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104011", + "pr_number": 104011, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "104033": { + "commit": "026fb3bf35915c9b4e2029ce162724648854a291", + "text": "Reverts adding namespace label to admission metrics (and histogram exansion) due to cardinality issues.", + "markdown": "Reverts adding namespace label to admission metrics (and histogram exansion) due to cardinality issues. ([#104033](https://github.com/kubernetes/kubernetes/pull/104033), [@s-urbaniak](https://github.com/s-urbaniak))", + "author": "s-urbaniak", + "author_url": "https://github.com/s-urbaniak", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104033", + "pr_number": 104033, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true + }, + "104045": { + "commit": "62a6df9e0b8ed3fe9fad96c8a9a0bde4a3224f35", + "text": "StatefulSet `minReadySeconds` is promoted to beta.", + "markdown": "StatefulSet `minReadySeconds` is promoted to beta. ([#104045](https://github.com/kubernetes/kubernetes/pull/104045), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/pull/2824", + "type": "KEP" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104045", + "pr_number": 104045, + "areas": [ + "test" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "104065": { + "commit": "746fea56aead7342e82864a5989e1d0e826def22", + "text": "kubeadm: remove the deprecated flag `--experimental-patches` for the `init|join|upgrade` commands. The flag `--patches` is no longer allowed in a mixture with the flag `--config`. Please use the kubeadm configuration for setting patches for a node using `{Init|Join}Configuration.patches`.", + "markdown": "Kubeadm: remove the deprecated flag `--experimental-patches` for the `init|join|upgrade` commands. The flag `--patches` is no longer allowed in a mixture with the flag `--config`. Please use the kubeadm configuration for setting patches for a node using `{Init|Join}Configuration.patches`. ([#104065](https://github.com/kubernetes/kubernetes/pull/104065), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/1739-customization-with-patches", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104065", + "pr_number": 104065, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "action_required": true + }, + "104080": { + "commit": "8d7a797eb74be48c5af62cc4a376a0fb1a63e89d", + "text": "Surface warning when users don't set `propagationPolicy` for jobs while deleting.", + "markdown": "Surface warning when users don't set `propagationPolicy` for jobs while deleting. ([#104080](https://github.com/kubernetes/kubernetes/pull/104080), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104080", + "pr_number": 104080, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ] + }, + "104102": { + "commit": "98bd2002176056125567f407dc04bc4d906c587c", + "text": "CA, certificate and key bundles for the `generic-apiserver` based servers will be reloaded immediately after the files are changed.", + "markdown": "CA, certificate and key bundles for the `generic-apiserver` based servers will be reloaded immediately after the files are changed. ([#104102](https://github.com/kubernetes/kubernetes/pull/104102), [@tnqn](https://github.com/tnqn))", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104102", + "pr_number": 104102, + "areas": [ + "test", + "apiserver", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "104103": { + "commit": "5b49d125b76b4d92d5f782630b75b911fee75aaa", + "text": "Users of `LogFormatRegistry` in component-base must update their code to use the logr v1.0.0 API. The JSON log output now uses the format from go-logr/zapr (no `v` field for error messages, additional information for invalid calls) and has some fixes (correct source code location for warnings about invalid log calls).", + "markdown": "Users of `LogFormatRegistry` in component-base must update their code to use the logr v1.0.0 API. The JSON log output now uses the format from go-logr/zapr (no `v` field for error messages, additional information for invalid calls) and has some fixes (correct source code location for warnings about invalid log calls). ([#104103](https://github.com/kubernetes/kubernetes/pull/104103), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104103", + "pr_number": 104103, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "storage", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "104116": { + "commit": "a21a328a1ad76782cd065c51b651150beb3b26e7", + "text": "Fixed architecture within manifest for non `amd64` etcd images.", + "markdown": "Fixed architecture within manifest for non `amd64` etcd images. ([#104116](https://github.com/kubernetes/kubernetes/pull/104116), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104116", + "pr_number": 104116, + "areas": [ + "release-eng" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "104119": { + "commit": "e95983be570fb0c95c8341ecadd33f5577afb9cf", + "text": "The `apiserver` exposes 4 new metrics that allow to track the status of the Service CIDRs allocations:\n - current number of available IPs per Service CIDR\n - current number of used IPs per Service CIDR\n - total number of allocation per Service CIDR\n - total number of allocation errors per ServiceCIDR", + "markdown": "The `apiserver` exposes 4 new metrics that allow to track the status of the Service CIDRs allocations:\n - current number of available IPs per Service CIDR\n - current number of used IPs per Service CIDR\n - total number of allocation per Service CIDR\n - total number of allocation errors per ServiceCIDR ([#104119](https://github.com/kubernetes/kubernetes/pull/104119), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104119", + "pr_number": 104119, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "apps", + "instrumentation" + ], + "duplicate": true + }, + "104134": { + "commit": "de4e5006732da964e725a63ad2308ad4507145f8", + "text": "kubeadm: When adding an etcd peer to an existing cluster, if an error is returned indicating the peer has already been added, this is accepted and a `ListMembers` call is used instead to return the existing cluster. This helps to diminish the exponential backoff when the first AddMember call times out, while still retaining a similar performance when the peer has already been added from a previous call.", + "markdown": "Kubeadm: When adding an etcd peer to an existing cluster, if an error is returned indicating the peer has already been added, this is accepted and a `ListMembers` call is used instead to return the existing cluster. This helps to diminish the exponential backoff when the first AddMember call times out, while still retaining a similar performance when the peer has already been added from a previous call. ([#104134](https://github.com/kubernetes/kubernetes/pull/104134), [@ihgann](https://github.com/ihgann))", + "author": "ihgann", + "author_url": "https://github.com/ihgann", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104134", + "pr_number": 104134, + "areas": [ + "kubeadm", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "104142": { + "commit": "e2e3c2d01c1f8fb9c488041fa5f99195679dd645", + "text": "Updates the following images to pick up CVE fixes:\n- `debian` to v1.9.0\n- `debian-iptables` to v1.6.6\n- `setcap` to v2.0.4", + "markdown": "Updates the following images to pick up CVE fixes:\n - `debian` to v1.9.0\n - `debian-iptables` to v1.6.6\n - `setcap` to v2.0.4 ([#104142](https://github.com/kubernetes/kubernetes/pull/104142), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104142", + "pr_number": 104142, + "areas": [ + "test", + "security", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "104157": { + "commit": "5eeaafd2b4dd8a1c0b2c5cc092bbfd61d0463665", + "text": "kubeadm: remove the `--port` flag from the manifest for the `kube-controller-manager` since the flag has been a NO-OP since 1.22 and insecure serving was removed for the component.", + "markdown": "Kubeadm: remove the `--port` flag from the manifest for the `kube-controller-manager` since the flag has been a NO-OP since 1.22 and insecure serving was removed for the component. ([#104157](https://github.com/kubernetes/kubernetes/pull/104157), [@knight42](https://github.com/knight42))", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104157", + "pr_number": 104157, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "104160": { + "commit": "d5cf54937627dda28e809a480ae091b683cfac8e", + "text": "The maximum length of the `CSINode` id field has increased to 256 bytes to match the CSI spec.", + "markdown": "The maximum length of the `CSINode` id field has increased to 256 bytes to match the CSI spec. ([#104160](https://github.com/kubernetes/kubernetes/pull/104160), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104160", + "pr_number": 104160, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "104161": { + "commit": "1658e13cae9c2a7aaca87ca09f2aeee1a6cd085a", + "text": "Fix `kube-apiserver` metric reporting for the deprecated watch path of `/api/\u003cversion\u003e/watch/...`.", + "markdown": "Fix `kube-apiserver` metric reporting for the deprecated watch path of `/api/\u003cversion\u003e/watch/...`. ([#104161](https://github.com/kubernetes/kubernetes/pull/104161), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104161", + "pr_number": 104161, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "104163": { + "commit": "e8653fe24a8517120b2a3cfb94c4a9ed36591cd9", + "text": "The `SupportPodPidsLimit` and `SupportNodePidsLimit` feature gates that are GA since v1.20 are unconditionally enabled, and can no longer be specified via the `--feature-gates` argument.", + "markdown": "The `SupportPodPidsLimit` and `SupportNodePidsLimit` feature gates that are GA since v1.20 are unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#104163](https://github.com/kubernetes/kubernetes/pull/104163), [@ialidzhikov](https://github.com/ialidzhikov))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/757", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/policy/pid-limiting/", + "type": "official" + } + ], + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104163", + "pr_number": 104163, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "104167": { + "commit": "9ff99adc60fe52798555d683c0cb682dd6f69c4d", + "text": "The `BoundServiceAccountTokenVolume` feature gate that is GA since v1.22 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument.", + "markdown": "The `BoundServiceAccountTokenVolume` feature gate that is GA since v1.22 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#104167](https://github.com/kubernetes/kubernetes/pull/104167), [@ialidzhikov](https://github.com/ialidzhikov))", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104167", + "pr_number": 104167, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth" + ] + }, + "104168": { + "commit": "35747a6ef89a9d3b613844f52c71ec84a8dbf710", + "text": "The `StartupProbe` feature gate that is GA since v1.20 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument.", + "markdown": "The `StartupProbe` feature gate that is GA since v1.20 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#104168](https://github.com/kubernetes/kubernetes/pull/104168), [@ialidzhikov](https://github.com/ialidzhikov))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/950", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-startup-probes", + "type": "official" + } + ], + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104168", + "pr_number": 104168, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "104182": { + "commit": "7f6d463b34301b6b8840af8f642184df367ab262", + "text": "kube-apiserver: Avoid unnecessary repeated calls to `admission webhooks` that reject an update or delete request.", + "markdown": "Kube-apiserver: Avoid unnecessary repeated calls to `admission webhooks` that reject an update or delete request. ([#104182](https://github.com/kubernetes/kubernetes/pull/104182), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104182", + "pr_number": 104182, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "104185": { + "commit": "8c64743d73f206bf633828a7fa1dd014ce153209", + "text": "Allow to build kubernetes with a custom `kube-cross` image.", + "markdown": "Allow to build kubernetes with a custom `kube-cross` image. ([#104185](https://github.com/kubernetes/kubernetes/pull/104185), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104185", + "pr_number": 104185, + "areas": [ + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "104199": { + "commit": "29c13f55152a3e74972f8c173b1428baefb8abd5", + "text": "Kubernetes is now built with Golang 1.16.7.", + "markdown": "Kubernetes is now built with Golang 1.16.7. ([#104199](https://github.com/kubernetes/kubernetes/pull/104199), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104199", + "pr_number": 104199, + "areas": [ + "test", + "security", + "provider/gcp", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "testing", + "release", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "104232": { + "commit": "5f0180ec051ec3f8a605b6ef2194467f5f549bfe", + "text": "Adding support for multiple `--from-env-file flags`.", + "markdown": "Adding support for multiple `--from-env-file flags`. ([#104232](https://github.com/kubernetes/kubernetes/pull/104232), [@lauchokyip](https://github.com/lauchokyip))", + "author": "lauchokyip", + "author_url": "https://github.com/lauchokyip", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104232", + "pr_number": 104232, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "104248": { + "commit": "48da959dbff18bfef6e801bd8c8ab3c88b7a7650", + "text": "kube-apiserver: The `rbac.authorization.k8s.io/v1alpha1` API version is removed; use the `rbac.authorization.k8s.io/v1` API, available since v1.8. The `scheduling.k8s.io/v1alpha1` API version is removed; use the `scheduling.k8s.io/v1` API, available since v1.14.", + "markdown": "Kube-apiserver: The `rbac.authorization.k8s.io/v1alpha1` API version is removed; use the `rbac.authorization.k8s.io/v1` API, available since v1.8. The `scheduling.k8s.io/v1alpha1` API version is removed; use the `scheduling.k8s.io/v1` API, available since v1.14. ([#104248](https://github.com/kubernetes/kubernetes/pull/104248), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104248", + "pr_number": 104248, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "network", + "api-machinery", + "auth", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "104251": { + "commit": "9b45983d3c8c246948682e678caa721b6d0bed0c", + "text": "Introduce `v1beta3` API for scheduler. This version \n- increases the weight of user specifiable priorities.\nThe weights of following priority plugins are increased\n - `TaintTolerations` to 3 - as leveraging node tainting to group nodes in the cluster is becoming a widely-adopted practice\n - `NodeAffinity` to 2\n - `InterPodAffinity` to 2\n\n- Won't have `HealthzBindAddress`, `MetricsBindAddress` fields", + "markdown": "Introduce `v1beta3` API for scheduler. This version \n - increases the weight of user specifiable priorities.\n The weights of following priority plugins are increased\n - `TaintTolerations` to 3 - as leveraging node tainting to group nodes in the cluster is becoming a widely-adopted practice\n - `NodeAffinity` to 2\n - `InterPodAffinity` to 2\n \n - Won't have `HealthzBindAddress`, `MetricsBindAddress` fields ([#104251](https://github.com/kubernetes/kubernetes/pull/104251), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/pull/2850/", + "type": "KEP" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104251", + "pr_number": 104251, + "areas": [ + "test" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true + }, + "104253": { + "commit": "3ca0145f20cdb5707b9d53860dcafdbb1254b65f", + "text": "Pass additional flags to subpath mount to avoid flakes in certain conditions.", + "markdown": "Pass additional flags to subpath mount to avoid flakes in certain conditions. ([#104253](https://github.com/kubernetes/kubernetes/pull/104253), [@mauriciopoppe](https://github.com/mauriciopoppe))", + "author": "mauriciopoppe", + "author_url": "https://github.com/mauriciopoppe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104253", + "pr_number": 104253, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "104287": { + "commit": "1d1d462d2f24de79323624c7fcd686fb383c95a5", + "text": "Reduce the number of calls to docker for stats via dockershim. For Windows this reduces the latency when calling docker, for Linux this saves cpu cycles.", + "markdown": "Reduce the number of calls to docker for stats via dockershim. For Windows this reduces the latency when calling docker, for Linux this saves cpu cycles. ([#104287](https://github.com/kubernetes/kubernetes/pull/104287), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows]", + "author": "jsturtevant", + "author_url": "https://github.com/jsturtevant", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104287", + "pr_number": 104287, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true + }, + "104293": { + "commit": "07fe9f0192283ffa1ce81f490b02f5240cf4099d", + "text": "Updated Cluster Autosaler to version `1.22.0`. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.22.0.", + "markdown": "Updated Cluster Autosaler to version `1.22.0`. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.22.0. ([#104293](https://github.com/kubernetes/kubernetes/pull/104293), [@x13n](https://github.com/x13n))", + "author": "x13n", + "author_url": "https://github.com/x13n", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104293", + "pr_number": 104293, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "autoscaling", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "104301": { + "commit": "1ebc6bfcbad727b63ef29b4ba334829ba0f87100", + "text": "Update Go used to build migrate script in etcd image to v1.16.7.", + "markdown": "Update Go used to build migrate script in etcd image to v1.16.7. ([#104301](https://github.com/kubernetes/kubernetes/pull/104301), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104301", + "pr_number": 104301, + "areas": [ + "release-eng" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "release" + ], + "duplicate": true + }, + "104327": { + "commit": "a78e3133a0d0401fa592ae1c4a1daf4e30e2efdf", + "text": "The `client-go` dynamic client sets the header `Content-Type: application/json` by default", + "markdown": "The `client-go` dynamic client sets the header `Content-Type: application/json` by default ([#104327](https://github.com/kubernetes/kubernetes/pull/104327), [@sxllwx](https://github.com/sxllwx))", + "author": "sxllwx", + "author_url": "https://github.com/sxllwx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104327", + "pr_number": 104327, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "104368": { + "commit": "b0bc8adbc2178e15872f9ef040355c51c45d04bb", + "text": "Since golang 1.17 both net.ParseIP and net.ParseCIDR rejects leading zeros in the dot-decimal notation of IPv4 addresses,\nKubernetes will keep allowing leading zeros on IPv4 address to not break the compatibility.\nIMPORTANT: Kubernetes interprets leading zeros on IPv4 addresses as decimal, users must not rely on parser alignment to not being impacted by the associated security advisory:\nCVE-2021-29923 golang standard library \"net\" - Improper Input Validation of octal literals in golang 1.16.2 and below standard library \"net\" results in indeterminate SSRF \u0026 RFI vulnerabilities.\nReference: https://nvd.nist.gov/vuln/detail/CVE-2021-29923", + "markdown": "Since golang 1.17 both net.ParseIP and net.ParseCIDR rejects leading zeros in the dot-decimal notation of IPv4 addresses,\n Kubernetes will keep allowing leading zeros on IPv4 address to not break the compatibility.\n IMPORTANT: Kubernetes interprets leading zeros on IPv4 addresses as decimal, users must not rely on parser alignment to not being impacted by the associated security advisory:\n CVE-2021-29923 golang standard library \"net\" - Improper Input Validation of octal literals in golang 1.16.2 and below standard library \"net\" results in indeterminate SSRF \u0026 RFI vulnerabilities.\n Reference: https://nvd.nist.gov/vuln/detail/CVE-2021-29923 ([#104368](https://github.com/kubernetes/kubernetes/pull/104368), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104368", + "pr_number": 104368, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "kubeadm", + "code-generation", + "ipvs", + "e2e-test-framework", + "dependency", + "network-policy" + ], + "kinds": [ + "bug", + "cleanup", + "api-change" + ], + "sigs": [ + "network", + "scalability", + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "104382": { + "commit": "625b1e2d0bb54cd8bf34ddded183755c80cf9b47", + "text": "Ensure `InstanceShutdownByProviderID` return false for creating Azure VMs.", + "markdown": "Ensure `InstanceShutdownByProviderID` return false for creating Azure VMs. ([#104382](https://github.com/kubernetes/kubernetes/pull/104382), [@feiskyer](https://github.com/feiskyer))", + "author": "feiskyer", + "author_url": "https://github.com/feiskyer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104382", + "pr_number": 104382, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "104384": { + "commit": "f38c5964801aba7ba2ef3f864fa7550ae1765974", + "text": "fix: skip case sensitivity when checking Azure NSG rules.", + "markdown": "Fix: skip case sensitivity when checking Azure NSG rules. ([#104384](https://github.com/kubernetes/kubernetes/pull/104384), [@feiskyer](https://github.com/feiskyer))", + "author": "feiskyer", + "author_url": "https://github.com/feiskyer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104384", + "pr_number": 104384, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "104389": { + "commit": "74a09fe682fb18ce5e9c478d237e572f9d03b89c", + "text": "Support for the seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io/[name]` has been deprecated since 1.19, will be dropped in 1.25. Transition to using the `seccompProfile` API field.", + "markdown": "Support for the seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io/[name]` has been deprecated since 1.19, will be dropped in 1.25. Transition to using the `seccompProfile` API field. ([#104389](https://github.com/kubernetes/kubernetes/pull/104389), [@saschagrunert](https://github.com/saschagrunert))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/blob/cccc6fa/keps/sig-node/135-seccomp/README.md", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104389", + "pr_number": 104389, + "kinds": [ + "documentation" + ], + "sigs": [ + "node" + ], + "action_required": true + }, + "104399": { + "commit": "cdcf2a239e211c66c84efaedea1a4eb5eb4c409d", + "text": "Introduce v1beta2 for Priority and Fairness with no changes in API spec.", + "markdown": "Introduce v1beta2 for Priority and Fairness with no changes in API spec. ([#104399](https://github.com/kubernetes/kubernetes/pull/104399), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104399", + "pr_number": 104399, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "104426": { + "commit": "9d38c64a7da5d4c7688ba11334485b8cabd9dc1c", + "text": "The script `kube-up.sh` installs `csi-proxy v1.0.1-gke.0`.", + "markdown": "The script `kube-up.sh` installs `csi-proxy v1.0.1-gke.0`. ([#104426](https://github.com/kubernetes/kubernetes/pull/104426), [@mauriciopoppe](https://github.com/mauriciopoppe))", + "author": "mauriciopoppe", + "author_url": "https://github.com/mauriciopoppe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104426", + "pr_number": 104426, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "windows", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "104430": { + "commit": "94ff97fd89794cfcbdfad969c6fbcf2086752192", + "text": "Update `cri-tools` dependency to v1.22.0.", + "markdown": "Update `cri-tools` dependency to v1.22.0. ([#104430](https://github.com/kubernetes/kubernetes/pull/104430), [@saschagrunert](https://github.com/saschagrunert))", + "documentation": [ + { + "description": "The release", + "url": "https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.22.0", + "type": "external" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104430", + "pr_number": 104430, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "cloud-provider" + ], + "duplicate": true + }, + "104438": { + "commit": "2a8ad728007b03f0d083ad379403e2a13dd913b5", + "text": "The pause image list now contains Windows Server 2022.", + "markdown": "The pause image list now contains Windows Server 2022. ([#104438](https://github.com/kubernetes/kubernetes/pull/104438), [@nick5616](https://github.com/nick5616))", + "author": "nick5616", + "author_url": "https://github.com/nick5616", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104438", + "pr_number": 104438, + "kinds": [ + "feature" + ], + "sigs": [ + "windows" + ], + "feature": true + }, + "104466": { + "commit": "7fcecc077dae36071901472d12fa26e5af99010c", + "text": "Fixes a regression that could cause panics in LRU caches in controller-manager, kubelet, kube-apiserver, or client-go.", + "markdown": "Fixes a regression that could cause panics in LRU caches in controller-manager, kubelet, kube-apiserver, or client-go. ([#104466](https://github.com/kubernetes/kubernetes/pull/104466), [@stbenjam](https://github.com/stbenjam))", + "author": "stbenjam", + "author_url": "https://github.com/stbenjam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104466", + "pr_number": 104466, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "storage", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "104482": { + "commit": "c6935ad50e0809c1dc2d3ac9000abda0ecb49bcc", + "text": "Changed kubectl describe to compute age of an event using the `EventSeries.count` and `EventSeries.lastObservedTime`.", + "markdown": "Changed kubectl describe to compute age of an event using the `EventSeries.count` and `EventSeries.lastObservedTime`. ([#104482](https://github.com/kubernetes/kubernetes/pull/104482), [@harjas27](https://github.com/harjas27))", + "author": "harjas27", + "author_url": "https://github.com/harjas27", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104482", + "pr_number": 104482, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "104483": { + "commit": "48d844ec64bd83a378418d420ba455fa28043cbc", + "text": "Client-go impersonation config can specify a UID to pass impersonated uid information through in requests.", + "markdown": "Client-go impersonation config can specify a UID to pass impersonated uid information through in requests. ([#104483](https://github.com/kubernetes/kubernetes/pull/104483), [@margocrawf](https://github.com/margocrawf))", + "author": "margocrawf", + "author_url": "https://github.com/margocrawf", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104483", + "pr_number": 104483, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "104503": { + "commit": "d0f6983d6ccace8aa7569eb9f57ab913e9186720", + "text": "kube-scheduler now doesn't print any usage message when unknown flag is specified.", + "markdown": "Kube-scheduler now doesn't print any usage message when unknown flag is specified. ([#104503](https://github.com/kubernetes/kubernetes/pull/104503), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104503", + "pr_number": 104503, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "104518": { + "commit": "296991f697ddd9c61c467a8fb8e961dcde0fe750", + "text": "Removed deprecated metric `scheduler_volume_scheduling_duration_seconds`.", + "markdown": "Removed deprecated metric `scheduler_volume_scheduling_duration_seconds`. ([#104518](https://github.com/kubernetes/kubernetes/pull/104518), [@dntosas](https://github.com/dntosas))", + "author": "dntosas", + "author_url": "https://github.com/dntosas", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104518", + "pr_number": 104518, + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "scheduling", + "storage", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true + }, + "104523": { + "commit": "2f68346fbb6246961ce0a3176418630950aea500", + "text": "Fixes an issue where an admission webhook can observe a v1 Pod object that does not have the `defaultMode` field set in the injected service account token volume in kube-api-server.", + "markdown": "Fixes an issue where an admission webhook can observe a v1 Pod object that does not have the `defaultMode` field set in the injected service account token volume in kube-api-server. ([#104523](https://github.com/kubernetes/kubernetes/pull/104523), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104523", + "pr_number": 104523, + "kinds": [ + "bug" + ], + "sigs": [ + "auth" + ] + }, + "104528": { + "commit": "cbd0611d4902d9fe71ee8affe68a5d4ffd81df3b", + "text": "Fixed occasional pod cgroup freeze when using cgroup v1 and systemd driver.", + "markdown": "Fixed occasional pod cgroup freeze when using cgroup v1 and systemd driver. ([#104528](https://github.com/kubernetes/kubernetes/pull/104528), [@kolyshkin](https://github.com/kolyshkin))", + "author": "kolyshkin", + "author_url": "https://github.com/kolyshkin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104528", + "pr_number": 104528, + "areas": [ + "kubelet", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "104551": { + "commit": "d5de03f0d30c3f279443103be0ddda23c260bd99", + "text": "Fixes hostPath storage E2E tests within SELinux enabled env", + "markdown": "Fixes hostPath storage E2E tests within SELinux enabled env ([#104551](https://github.com/kubernetes/kubernetes/pull/104551), [@Elbehery](https://github.com/Elbehery))", + "author": "Elbehery", + "author_url": "https://github.com/Elbehery", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104551", + "pr_number": 104551, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "testing" + ], + "duplicate_kind": true + }, + "104571": { + "commit": "3e10db97d07ea204f0434aff8e3b0b6a00b3d19e", + "text": "Added support for setting controller-manager log level online.", + "markdown": "Added support for setting controller-manager log level online. ([#104571](https://github.com/kubernetes/kubernetes/pull/104571), [@h4ghhh](https://github.com/h4ghhh))", + "author": "h4ghhh", + "author_url": "https://github.com/h4ghhh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104571", + "pr_number": 104571, + "areas": [ + "controller-manager" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "104572": { + "commit": "758ad0790ceae9e7be0554637c0fd623ff02e45f", + "text": "Fix detach disk issue on deleting vmss node.", + "markdown": "Fix detach disk issue on deleting vmss node. ([#104572](https://github.com/kubernetes/kubernetes/pull/104572), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104572", + "pr_number": 104572, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "104577": { + "commit": "bbbeceb6aa53ed6a2b42d639ba41f0ac8a70f323", + "text": "Fix a regression where the Kubelet failed to exclude already completed pods from calculations about how many resources it was currently using when deciding whether to allow more pods.", + "markdown": "Fix a regression where the Kubelet failed to exclude already completed pods from calculations about how many resources it was currently using when deciding whether to allow more pods. ([#104577](https://github.com/kubernetes/kubernetes/pull/104577), [@smarterclayton](https://github.com/smarterclayton))", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104577", + "pr_number": 104577, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "104590": { + "commit": "bcd2ffbdc17ad7472fbd9d5dc2e2c2fdbfc4cdbf", + "text": "`volume.kubernetes.io/storage-provisioner` annotation will be added to dynamic provisioning required PVC. `volume.beta.kubernetes.io/storage-provisioner` annotation is deprecated.", + "markdown": "`volume.kubernetes.io/storage-provisioner` annotation will be added to dynamic provisioning required PVC. `volume.beta.kubernetes.io/storage-provisioner` annotation is deprecated. ([#104590](https://github.com/kubernetes/kubernetes/pull/104590), [@Jiawei0227](https://github.com/Jiawei0227))", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104590", + "pr_number": 104590, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "apps" + ], + "duplicate": true + }, + "104593": { + "commit": "9dba11d971dd940b7fe9901f5d723ead8dbf33b8", + "text": "Ignore the case when updating Azure tags.", + "markdown": "Ignore the case when updating Azure tags. ([#104593](https://github.com/kubernetes/kubernetes/pull/104593), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104593", + "pr_number": 104593, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "104601": { + "commit": "bb9e89d430138725def3463b7f607e8dd52aed72", + "text": "A small regression in Service updates was fixed. The circumstances are so unlikely that probably nobody would ever hit it.", + "markdown": "A small regression in Service updates was fixed. The circumstances are so unlikely that probably nobody would ever hit it. ([#104601](https://github.com/kubernetes/kubernetes/pull/104601), [@thockin](https://github.com/thockin))", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104601", + "pr_number": 104601, + "kinds": [ + "bug", + "api-change", + "regression" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "104604": { + "commit": "c262d09bb7d22d62665aa215b5c6d1dd2a865007", + "text": "Don't prematurely close reflectors in case of slow initialization in watch based manager to fix issues with inability to properly mount secrets/configmaps.", + "markdown": "Don't prematurely close reflectors in case of slow initialization in watch based manager to fix issues with inability to properly mount secrets/configmaps. ([#104604](https://github.com/kubernetes/kubernetes/pull/104604), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104604", + "pr_number": 104604, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "104605": { + "commit": "b12379ef1c8defd0bcda12103a46b05ab094a641", + "text": "Better pod events (\"waiting for ephemeral volume controller to create the persistentvolumeclaim\"\" instead of \"persistentvolumeclaim not found\") when using generic ephemeral volumes.", + "markdown": "Better pod events (\"waiting for ephemeral volume controller to create the persistentvolumeclaim\"\" instead of \"persistentvolumeclaim not found\") when using generic ephemeral volumes. ([#104605](https://github.com/kubernetes/kubernetes/pull/104605), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104605", + "pr_number": 104605, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "storage" + ], + "duplicate": true + }, + "104613": { + "commit": "cda360c59fdfc9aab79d590a2d639913caebb45b", + "text": "Kubelet should reconcile `kubernetes.io/os` and `kubernetes.io/arch` labels on the node object. The side-effect of this is kubelet would deny admission to pod which has nodeSelector with label `kubernetes.io/os` or `kubernetes.io/arch` which doesn't match the underlying OS or arch on the host OS. \n- The label reconciliation happens as part of periodic status update which can be configured via flag `--node-status-update-frequency`", + "markdown": "Kubelet should reconcile `kubernetes.io/os` and `kubernetes.io/arch` labels on the node object. The side-effect of this is kubelet would deny admission to pod which has nodeSelector with label `kubernetes.io/os` or `kubernetes.io/arch` which doesn't match the underlying OS or arch on the host OS. \n - The label reconciliation happens as part of periodic status update which can be configured via flag `--node-status-update-frequency` ([#104613](https://github.com/kubernetes/kubernetes/pull/104613), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node, Testing and Windows]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/pull/2803", + "type": "KEP" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104613", + "pr_number": 104613, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "windows", + "testing" + ], + "feature": true, + "duplicate": true + }, + "104624": { + "commit": "fa2657b8b2f839b88834579917abda1a816a1970", + "text": "kubelet: turn the KubeletConfiguration v1beta1 `ResolverConfig` field from a `string` to `*string`.", + "markdown": "Kubelet: turn the KubeletConfiguration v1beta1 `ResolverConfig` field from a `string` to `*string`. ([#104624](https://github.com/kubernetes/kubernetes/pull/104624), [@Haleygo](https://github.com/Haleygo))", + "author": "Haleygo", + "author_url": "https://github.com/Haleygo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104624", + "pr_number": 104624, + "areas": [ + "kubelet", + "kubeadm" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "node", + "cluster-lifecycle" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "104631": { + "commit": "84027bc07d14bdc35e566d8f4933b43a447586a1", + "text": "A deprecation notice has been added when using the kube-proxy userspace proxier, which will be removed in v1.25. (#103860)", + "markdown": "A deprecation notice has been added when using the kube-proxy userspace proxier, which will be removed in v1.25. (#103860) ([#104631](https://github.com/kubernetes/kubernetes/pull/104631), [@perithompson](https://github.com/perithompson))", + "author": "perithompson", + "author_url": "https://github.com/perithompson", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104631", + "pr_number": 104631, + "kinds": [ + "deprecation" + ], + "sigs": [ + "network" + ] + }, + "104636": { + "commit": "1ff64edffbbb5600db3fe0e69482b83a571426cb", + "text": "The `IngressClass.Spec.Parameters.Namespace` field is now GA.", + "markdown": "The `IngressClass.Spec.Parameters.Namespace` field is now GA. ([#104636](https://github.com/kubernetes/kubernetes/pull/104636), [@hbagdi](https://github.com/hbagdi))", + "author": "hbagdi", + "author_url": "https://github.com/hbagdi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104636", + "pr_number": 104636, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "104650": { + "commit": "463802765df062f0bd529103aedc968e0ac9e29d", + "text": "Pod will not start when Init container was OOM killed.", + "markdown": "Pod will not start when Init container was OOM killed. ([#104650](https://github.com/kubernetes/kubernetes/pull/104650), [@yxxhero](https://github.com/yxxhero)) [SIG Node]", + "author": "yxxhero", + "author_url": "https://github.com/yxxhero", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104650", + "pr_number": 104650, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "104664": { + "commit": "81e41b7fc490c3f51a9d0a2c13f1dd645b437af9", + "text": "The test \"[sig-network] EndpointSlice should have Endpoints and EndpointSlices pointing to API Server [Conformance]\" only requires that there is an EndpointSlice that references the \"kubernetes.default\" service, it no longer requires that its named \"kubernetes\".", + "markdown": "The test \"[sig-network] EndpointSlice should have Endpoints and EndpointSlices pointing to API Server [Conformance]\" only requires that there is an EndpointSlice that references the \"kubernetes.default\" service, it no longer requires that its named \"kubernetes\". ([#104664](https://github.com/kubernetes/kubernetes/pull/104664), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104664", + "pr_number": 104664, + "areas": [ + "test", + "conformance" + ], + "kinds": [ + "bug", + "documentation", + "cleanup", + "failing-test" + ], + "sigs": [ + "network", + "testing", + "architecture" + ], + "duplicate": true, + "duplicate_kind": true + }, + "104666": { + "commit": "669de4b95796e93dff2dec17b6897512e7a9538c", + "text": "Fix job tracking with finalizers for more than 500 pods, ensuring all finalizers are removed before counting the Pod.", + "markdown": "Fix job tracking with finalizers for more than 500 pods, ensuring all finalizers are removed before counting the Pod. ([#104666](https://github.com/kubernetes/kubernetes/pull/104666), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104666", + "pr_number": 104666, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "instrumentation" + ], + "duplicate": true + }, + "104667": { + "commit": "30f3511104d5f9fe2887299bf39688d8b75253d5", + "text": "Health check of kube-controller-manager now includes each controller.", + "markdown": "Health check of kube-controller-manager now includes each controller. ([#104667](https://github.com/kubernetes/kubernetes/pull/104667), [@jiahuif](https://github.com/jiahuif))", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104667", + "pr_number": 104667, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "104670": { + "commit": "5d7ac70051f4e5e85834852c30d07c5b0cd3c6d0", + "text": "Turn on CSIMigrationAzureDisk by default on 1.23", + "markdown": "Turn on CSIMigrationAzureDisk by default on 1.23 ([#104670](https://github.com/kubernetes/kubernetes/pull/104670), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104670", + "pr_number": 104670, + "areas": [ + "provider/azure" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "104691": { + "commit": "a53e2eaeaba064309dceca2dc27f3ac09c6375b0", + "text": "Promote `IPv6DualStack` feature to stable.\nController Manager flags for the node IPAM controller have slightly changed:\n1. When configuring a dual-stack cluster, the user must specify both `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6` to set the per-node IP mask sizes, instead of the previous `--node-cidr-mask-size` flag.\n2. The `--node-cidr-mask-size` flag is mutually exclusive with `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6`.\n3. Single-stack clusters do not need to change, but may choose to use the more specific flags. Users can use either the older `--node-cidr-mask-size` flag or one of the newer `--node-cidr-mask-size-ipv4` or `--node-cidr-mask-size-ipv6` flags to configure the per-node IP mask size, provided that the flag's IP family matches the cluster's IP family (--cluster-cidr).", + "markdown": "Promote `IPv6DualStack` feature to stable.\n Controller Manager flags for the node IPAM controller have slightly changed:\n 1. When configuring a dual-stack cluster, the user must specify both `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6` to set the per-node IP mask sizes, instead of the previous `--node-cidr-mask-size` flag.\n 2. The `--node-cidr-mask-size` flag is mutually exclusive with `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6`.\n 3. Single-stack clusters do not need to change, but may choose to use the more specific flags. Users can use either the older `--node-cidr-mask-size` flag or one of the newer `--node-cidr-mask-size-ipv4` or `--node-cidr-mask-size-ipv6` flags to configure the per-node IP mask size, provided that the flag's IP family matches the cluster's IP family (--cluster-cidr). ([#104691](https://github.com/kubernetes/kubernetes/pull/104691), [@khenidak](https://github.com/khenidak))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack", + "type": "KEP" + }, + { + "url": "https://github.com/kubernetes/enhancements/pull/2860#pullrequestreview-733375378", + "type": "KEP" + } + ], + "author": "khenidak", + "author_url": "https://github.com/khenidak", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104691", + "pr_number": 104691, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubeadm" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "apps", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "104693": { + "commit": "bb24c265ce725c90f0e82b01e7c1ccbffb695d14", + "text": "Introduce `OS` field in the PodSpec", + "markdown": "Introduce `OS` field in the PodSpec ([#104693](https://github.com/kubernetes/kubernetes/pull/104693), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2803", + "type": "KEP" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104693", + "pr_number": 104693, + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true + }, + "104696": { + "commit": "caf853b5964679b888c3c7324f184466fe67234d", + "text": "Update conformance image to use `debian-base:buster-v1.9.0`.", + "markdown": "Update conformance image to use `debian-base:buster-v1.9.0`. ([#104696](https://github.com/kubernetes/kubernetes/pull/104696), [@PushkarJ](https://github.com/PushkarJ))", + "author": "PushkarJ", + "author_url": "https://github.com/PushkarJ", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104696", + "pr_number": 104696, + "areas": [ + "test", + "security", + "conformance", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing", + "release", + "architecture", + "security" + ], + "duplicate": true + }, + "104699": { + "commit": "85b11ad24e996e2db4aa00a99e16f066544b22b0", + "text": "If a conflict occurs when creating an object with `generateName`, the server now returns an \"AlreadyExists\" error with a retry option.", + "markdown": "If a conflict occurs when creating an object with `generateName`, the server now returns an \"AlreadyExists\" error with a retry option. ([#104699](https://github.com/kubernetes/kubernetes/pull/104699), [@vincepri](https://github.com/vincepri))", + "author": "vincepri", + "author_url": "https://github.com/vincepri", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104699", + "pr_number": 104699, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "104705": { + "commit": "8d43aa6cbc0ab63d5c63994ca7bd9993d52cf5db", + "text": "Ignore the case when comparing azure tags in service annotation.", + "markdown": "Ignore the case when comparing azure tags in service annotation. ([#104705](https://github.com/kubernetes/kubernetes/pull/104705), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104705", + "pr_number": 104705, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "104711": { + "commit": "c79f7c1add652ce7c70205bb0ba2911744ce640b", + "text": "Support for Windows Server 2022 was added to the `k8s.gcr.io/pause:3.6` image.", + "markdown": "Support for Windows Server 2022 was added to the `k8s.gcr.io/pause:3.6` image. ([#104711](https://github.com/kubernetes/kubernetes/pull/104711), [@claudiubelu](https://github.com/claudiubelu))", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104711", + "pr_number": 104711, + "areas": [ + "test", + "kubelet", + "kubectl", + "provider/gcp", + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "cluster-lifecycle", + "cli", + "testing", + "release", + "cloud-provider" + ], + "duplicate": true + }, + "104722": { + "commit": "6805e6ee41bb31f374300c9b22b68ae64072f0ec", + "text": "The `CSIMigrationGCE` feature flag is turned `ON` by default", + "markdown": "The `CSIMigrationGCE` feature flag is turned `ON` by default ([#104722](https://github.com/kubernetes/kubernetes/pull/104722), [@leiyiz](https://github.com/leiyiz))", + "author": "leiyiz", + "author_url": "https://github.com/leiyiz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104722", + "pr_number": 104722, + "areas": [ + "test", + "kubelet", + "provider/gcp" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "storage", + "node", + "apps", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "104741": { + "commit": "f9488f314a03c4a4fbe2c3b23e305b5ed6a86659", + "text": "More detailed logging has been added to the EndpointSlice controller for Topology.", + "markdown": "More detailed logging has been added to the EndpointSlice controller for Topology. ([#104741](https://github.com/kubernetes/kubernetes/pull/104741), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104741", + "pr_number": 104741, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "104742": { + "commit": "648559b63ed730519e8d172b2c778c709829a98b", + "text": "kube-proxy health check ports used to listen to `:\u003cport\u003e` for each of the services. This is not needed and opens ports in addresses the cluster user may not have intended. The PR limits listening to all node address which are controlled by `--nodeport-addresses` flag. if no addresses are provided then we default to existing behavior by listening to `:\u003cport\u003e` for each service", + "markdown": "Kube-proxy health check ports used to listen to `:\u003cport\u003e` for each of the services. This is not needed and opens ports in addresses the cluster user may not have intended. The PR limits listening to all node address which are controlled by `--nodeport-addresses` flag. if no addresses are provided then we default to existing behavior by listening to `:\u003cport\u003e` for each service ([#104742](https://github.com/kubernetes/kubernetes/pull/104742), [@khenidak](https://github.com/khenidak))", + "author": "khenidak", + "author_url": "https://github.com/khenidak", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104742", + "pr_number": 104742, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "104743": { + "commit": "5f0a94b23cb5489bfc371e717937499e4ad7fd62", + "text": "Respect grace period when updating static pods.", + "markdown": "Respect grace period when updating static pods. ([#104743](https://github.com/kubernetes/kubernetes/pull/104743), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing]", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104743", + "pr_number": 104743, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "104744": { + "commit": "c54ed73f9a7fdf9f94f169cf5a00a6b1cb7abe3f", + "text": "Topology Hints now excludes control plane notes from capacity calculations.", + "markdown": "Topology Hints now excludes control plane notes from capacity calculations. ([#104744](https://github.com/kubernetes/kubernetes/pull/104744), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104744", + "pr_number": 104744, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "104748": { + "commit": "7c530952189e66d4bd07688caa038efbf7690f0a", + "text": "Resolves a potential issue with GC and NS controllers which may delete objects after getting a 404 response from the server during its startup. This PR ensures that requests to aggregated APIs will get 503, not 404 while the APIServiceRegistrationController hasn't finished its job.", + "markdown": "Resolves a potential issue with GC and NS controllers which may delete objects after getting a 404 response from the server during its startup. This PR ensures that requests to aggregated APIs will get 503, not 404 while the APIServiceRegistrationController hasn't finished its job. ([#104748](https://github.com/kubernetes/kubernetes/pull/104748), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104748", + "pr_number": 104748, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "104756": { + "commit": "a402f1753ca0a28834dfa834455416e0893a19bf", + "text": "Fixed client IP preservation for NodePort service with protocol SCTP in ipvs.", + "markdown": "Fixed client IP preservation for NodePort service with protocol SCTP in ipvs. ([#104756](https://github.com/kubernetes/kubernetes/pull/104756), [@tnqn](https://github.com/tnqn))", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104756", + "pr_number": 104756, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "104782": { + "commit": "04f747d09fd2f8fb486c90a85122c0cb7b2df782", + "text": "kube-scheduler: support for configuration file version `v1beta1` is removed. Update configuration files to v1beta2(xref: https://github.com/kubernetes/enhancements/issues/2901) or v1beta3 before upgrading to 1.23.", + "markdown": "Kube-scheduler: support for configuration file version `v1beta1` is removed. Update configuration files to v1beta2(xref: https://github.com/kubernetes/enhancements/issues/2901) or v1beta3 before upgrading to 1.23. ([#104782](https://github.com/kubernetes/kubernetes/pull/104782), [@kerthcet](https://github.com/kerthcet))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2921", + "type": "KEP" + } + ], + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104782", + "pr_number": 104782, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "104792": { + "commit": "82379431df22809dc9454d3b03c957a65e9ca3ff", + "text": "Adding option for `kubectl cp` to resume on network errors until completion, requires tar in addition to tail inside the container image", + "markdown": "Adding option for `kubectl cp` to resume on network errors until completion, requires tar in addition to tail inside the container image ([#104792](https://github.com/kubernetes/kubernetes/pull/104792), [@matthyx](https://github.com/matthyx))", + "author": "matthyx", + "author_url": "https://github.com/matthyx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104792", + "pr_number": 104792, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "104796": { + "commit": "f48336b0aed08f39dacbdddc921e466869de6371", + "text": "Remove the deprecated flags `--csr-only` and `--csr-dir` from `kubeadm certs renew`. Please use `kubeadm certs generate-csr` instead.", + "markdown": "Remove the deprecated flags `--csr-only` and `--csr-dir` from `kubeadm certs renew`. Please use `kubeadm certs generate-csr` instead. ([#104796](https://github.com/kubernetes/kubernetes/pull/104796), [@RA489](https://github.com/RA489))", + "author": "RA489", + "author_url": "https://github.com/RA489", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104796", + "pr_number": 104796, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "104817": { + "commit": "1dcea5cb028a549e7a1c9f06ee0ae3a452231dbb", + "text": "A pod that the Kubelet rejects was still considered as being accepted for a brief period of time after rejection, which might cause some pods to be rejected briefly that could fit on the node. A pod that is still terminating (but has status indicating it has failed) may also still be consuming resources and so should also be considered.", + "markdown": "A pod that the Kubelet rejects was still considered as being accepted for a brief period of time after rejection, which might cause some pods to be rejected briefly that could fit on the node. A pod that is still terminating (but has status indicating it has failed) may also still be consuming resources and so should also be considered. ([#104817](https://github.com/kubernetes/kubernetes/pull/104817), [@smarterclayton](https://github.com/smarterclayton))", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104817", + "pr_number": 104817, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "104844": { + "commit": "45f77ca4bab08da88bdda267be2157dc10bc64ac", + "text": "Don't use a custom dialer for the kubelet if is not rotating certificates, so we can reuse TCP connections and have only one between the apiserver and the kubelet.\nIf users experiment problems with stale connections using HTTP1.1, they can force the previous behavior of the kubelet by setting the environment variable DISABLE_HTTP2.", + "markdown": "Don't use a custom dialer for the kubelet if is not rotating certificates, so we can reuse TCP connections and have only one between the apiserver and the kubelet.\n If users experiment problems with stale connections using HTTP1.1, they can force the previous behavior of the kubelet by setting the environment variable DISABLE_HTTP2. ([#104844](https://github.com/kubernetes/kubernetes/pull/104844), [@aojea](https://github.com/aojea)) [SIG API Machinery, Auth and Node]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104844", + "pr_number": 104844, + "areas": [ + "kubelet", + "apiserver" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node", + "api-machinery", + "auth" + ], + "duplicate": true, + "duplicate_kind": true + }, + "104847": { + "commit": "51384aa77ea50bdff48d101a5b2b55436f18841e", + "text": "When a static pod file is deleted and recreated while using a fixed UID, the pod was not properly restarted.", + "markdown": "When a static pod file is deleted and recreated while using a fixed UID, the pod was not properly restarted. ([#104847](https://github.com/kubernetes/kubernetes/pull/104847), [@smarterclayton](https://github.com/smarterclayton))", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104847", + "pr_number": 104847, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "104853": { + "commit": "dcfe8f5d5c9531e3196eb5036a86643c728eafe7", + "text": "podInformer := NewPodInformer(kubeClient, 0)\n\tinformerFactory := informers.NewSharedInformerFactory(kubeClient, 0)\n\tnodeInformer := informerFactory.Core().V1().Nodes()\n\t....\n\trc.ScheduledPodsHasSynced = podInformer.Informer().HasSynced\n\t// scheduled pod cache\n\tpodInformer.Informer().AddEventHandler(\n\t\tcache.FilteringResourceEventHandler{\n\t\t\tFilterFunc: func(obj interface{}) bool {\n\t\t\t\tswitch t := obj.(type) {\n\t\t\t\tcase *v1.Pod:\n\t\t\t\t\treturn assignedNonTerminatedPod(t)\n\t\t\t\tcase cache.DeletedFinalStateUnknown:\n\t\t\t\t\tif pod, ok := t.Obj.(*v1.Pod); ok {\n\t\t\t\t\t\treturn assignedNonTerminatedPod(pod)\n\t\t\t\t\t}\n\t\t\t\t\truntime.HandleError(fmt.Errorf(\"unable to convert object %T to *v1.Pod in %T\", obj, rc))\n\t\t\t\t\treturn false\n\t\t\t\tdefault:\n\t\t\t\t\truntime.HandleError(fmt.Errorf(\"unable to handle object in %T: %T\", rc, obj))\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t},\n\t\t\tHandler: cache.ResourceEventHandlerFuncs{\n\t\t\t\tAddFunc: rc.addPodToCache,\n\t\t\t\tUpdateFunc: rc.updatePodInCache,\n\t\t\t\tDeleteFunc: rc.deletePodFromCache,\n\t\t\t},\n\t\t},\n\t)\n\n\tnodeInformer.Informer().AddEventHandler(\n\t\tcache.ResourceEventHandlerFuncs{\n\t\t\tAddFunc: rc.addNodeToCache,\n\t\t\tUpdateFunc: rc.updateNodeInCache,\n\t\t\tDeleteFunc: rc.deleteNodeFromCache,\n\t\t},\n\t)\n\n\trc.NodeLister = nodeInformer.Lister()\n\trc.PodLister = podInformer.Lister()\n\tgo podInformer.Informer().Run(stopCh)\n\tgo nodeInformer.Informer().Run(stopCh)\n\trc.InformerFactory.Start(stopCh)\n\t...", + "markdown": "PodInformer := NewPodInformer(kubeClient, 0)\n \tinformerFactory := informers.NewSharedInformerFactory(kubeClient, 0)\n \tnodeInformer := informerFactory.Core().V1().Nodes()\n \t....\n \trc.ScheduledPodsHasSynced = podInformer.Informer().HasSynced\n \t// scheduled pod cache\n \tpodInformer.Informer().AddEventHandler(\n \t\tcache.FilteringResourceEventHandler{\n \t\t\tFilterFunc: func(obj interface{}) bool {\n \t\t\t\tswitch t := obj.(type) {\n \t\t\t\tcase *v1.Pod:\n \t\t\t\t\treturn assignedNonTerminatedPod(t)\n \t\t\t\tcase cache.DeletedFinalStateUnknown:\n \t\t\t\t\tif pod, ok := t.Obj.(*v1.Pod); ok {\n \t\t\t\t\t\treturn assignedNonTerminatedPod(pod)\n \t\t\t\t\t}\n \t\t\t\t\truntime.HandleError(fmt.Errorf(\"unable to convert object %T to *v1.Pod in %T\", obj, rc))\n \t\t\t\t\treturn false\n \t\t\t\tdefault:\n \t\t\t\t\truntime.HandleError(fmt.Errorf(\"unable to handle object in %T: %T\", rc, obj))\n \t\t\t\t\treturn false\n \t\t\t\t}\n \t\t\t},\n \t\t\tHandler: cache.ResourceEventHandlerFuncs{\n \t\t\t\tAddFunc: rc.addPodToCache,\n \t\t\t\tUpdateFunc: rc.updatePodInCache,\n \t\t\t\tDeleteFunc: rc.deletePodFromCache,\n \t\t\t},\n \t\t},\n \t)\n \n \tnodeInformer.Informer().AddEventHandler(\n \t\tcache.ResourceEventHandlerFuncs{\n \t\t\tAddFunc: rc.addNodeToCache,\n \t\t\tUpdateFunc: rc.updateNodeInCache,\n \t\t\tDeleteFunc: rc.deleteNodeFromCache,\n \t\t},\n \t)\n \n \trc.NodeLister = nodeInformer.Lister()\n \trc.PodLister = podInformer.Lister()\n \tgo podInformer.Informer().Run(stopCh)\n \tgo nodeInformer.Informer().Run(stopCh)\n \trc.InformerFactory.Start(stopCh)\n \t... ([#104853](https://github.com/kubernetes/kubernetes/pull/104853), [@kitianFresh](https://github.com/kitianFresh)) [SIG API Machinery]", + "author": "kitianFresh", + "author_url": "https://github.com/kitianFresh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104853", + "pr_number": 104853, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "do_not_publish": true + }, + "104854": { + "commit": "91f820eee42a8126d95d1d706ae20740c9d57913", + "text": "kubeadm: switch the preflight check (called 'Swap') that verifies if swap is enabled on Linux hosts to report a warning instead of an error. This is related to the graduation of the NodeSwap feature gate in the kubelet to Beta and being enabled by default in 1.23 - allows swap support on Linux hosts. In the next release of kubeadm (1.24) the preflight check will be removed, thus we recommend that you stop using it - e.g. via `--ignore-preflight-errors` or the kubeadm config.", + "markdown": "Kubeadm: switch the preflight check (called 'Swap') that verifies if swap is enabled on Linux hosts to report a warning instead of an error. This is related to the graduation of the NodeSwap feature gate in the kubelet to Beta and being enabled by default in 1.23 - allows swap support on Linux hosts. In the next release of kubeadm (1.24) the preflight check will be removed, thus we recommend that you stop using it - e.g. via `--ignore-preflight-errors` or the kubeadm config. ([#104854](https://github.com/kubernetes/kubernetes/pull/104854), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2400-node-swap", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104854", + "pr_number": 104854, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "104873": { + "commit": "fb82a0d7eb252acacd9ef8b7cea63cf1cff535b3", + "text": "JSON log output is configurable and now supports writing info messages to stdout and error messages to stderr. Info messages can be buffered in memory. The default is to write both to stdout without buffering, as before.", + "markdown": "JSON log output is configurable and now supports writing info messages to stdout and error messages to stderr. Info messages can be buffered in memory. The default is to write both to stdout without buffering, as before. ([#104873](https://github.com/kubernetes/kubernetes/pull/104873), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components/README.md", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104873", + "pr_number": 104873, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "cluster-lifecycle", + "cli", + "instrumentation", + "architecture" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "104877": { + "commit": "a5cd438b9fbf49e013453f4d6c9b2e935a78071c", + "text": "Migrated kubernetes object references (= name + namespace) to structured logging when using JSON as log output format", + "markdown": "Migrated kubernetes object references (= name + namespace) to structured logging when using JSON as log output format ([#104877](https://github.com/kubernetes/kubernetes/pull/104877), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104877", + "pr_number": 104877, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "storage", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "104891": { + "commit": "daf5af29176953aa7573b2981749544e00fde610", + "text": "Migrated `pkg/proxy` to structured logging", + "markdown": "Migrated `pkg/proxy` to structured logging ([#104891](https://github.com/kubernetes/kubernetes/pull/104891), [@shivanshu1333](https://github.com/shivanshu1333))", + "author": "shivanshu1333", + "author_url": "https://github.com/shivanshu1333", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104891", + "pr_number": 104891, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "104894": { + "commit": "f31453fe5b37f8aa960fca06c02faba9c3bbc610", + "text": "Add support to generate client-side binaries for windows/arm64 platform", + "markdown": "Add support to generate client-side binaries for windows/arm64 platform ([#104894](https://github.com/kubernetes/kubernetes/pull/104894), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104894", + "pr_number": 104894, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "windows", + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "104904": { + "commit": "1d19d1a1d18c9d20834081e47b97dad206243809", + "text": "Kubernetes is now built with Golang 1.17.1.", + "markdown": "Kubernetes is now built with Golang 1.17.1. ([#104904](https://github.com/kubernetes/kubernetes/pull/104904), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104904", + "pr_number": 104904, + "areas": [ + "test", + "security", + "provider/gcp", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing", + "release", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "104908": { + "commit": "060f5b88d0d554fd8b38333ed25b8e73614ab630", + "text": "Migrate `pkg/proxy` to structured logging", + "markdown": "Migrate `pkg/proxy` to structured logging ([#104908](https://github.com/kubernetes/kubernetes/pull/104908), [@CIPHERTron](https://github.com/CIPHERTron))", + "author": "CIPHERTron", + "author_url": "https://github.com/CIPHERTron", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104908", + "pr_number": 104908, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "104915": { + "commit": "6edcb60d9f854903d341dc5155a78ff8221ad64e", + "text": "Track the number of Pods with a Ready condition in Job status. The feature is alpha and needs the feature gate JobReadyPods to be enabled.", + "markdown": "Track the number of Pods with a Ready condition in Job status. The feature is alpha and needs the feature gate JobReadyPods to be enabled. ([#104915](https://github.com/kubernetes/kubernetes/pull/104915), [@alculquicondor](https://github.com/alculquicondor))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2879-ready-pods-job-status", + "type": "KEP" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104915", + "pr_number": 104915, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "104923": { + "commit": "486ca678a03ef1bceb903376bc8f1757a1293fe0", + "text": "XFS-filesystems are now force-formatted (option `-f`) in order to avoid problems being formatted due to detection of magic super-blocks. This aligns with the behaviour of formatting of ext3/4 filesystems.", + "markdown": "XFS-filesystems are now force-formatted (option `-f`) in order to avoid problems being formatted due to detection of magic super-blocks. This aligns with the behaviour of formatting of ext3/4 filesystems. ([#104923](https://github.com/kubernetes/kubernetes/pull/104923), [@davidkarlsen](https://github.com/davidkarlsen))", + "author": "davidkarlsen", + "author_url": "https://github.com/davidkarlsen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104923", + "pr_number": 104923, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "104928": { + "commit": "5449ce7c5c9c3ed0e96b8b078c6c07a346b2891f", + "text": "Migrate cmd/proxy/app and pkg/proxy/meta_proxier to structured logging", + "markdown": "Migrate cmd/proxy/app and pkg/proxy/meta_proxier to structured logging ([#104928](https://github.com/kubernetes/kubernetes/pull/104928), [@jyz0309](https://github.com/jyz0309))", + "author": "jyz0309", + "author_url": "https://github.com/jyz0309", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104928", + "pr_number": 104928, + "areas": [ + "test", + "logging", + "kubeadm", + "ipvs", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "node", + "cluster-lifecycle", + "apps", + "testing" + ], + "duplicate": true + }, + "104931": { + "commit": "4916b6cd7486e2e0dd6ce5417ae4e6842356954a", + "text": "Migrated `pkg/proxy/userspace` to structured logging.", + "markdown": "Migrated `pkg/proxy/userspace` to structured logging. ([#104931](https://github.com/kubernetes/kubernetes/pull/104931), [@shivanshu1333](https://github.com/shivanshu1333))", + "author": "shivanshu1333", + "author_url": "https://github.com/shivanshu1333", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104931", + "pr_number": 104931, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "104932": { + "commit": "7d9a6d1de6552f66ca53ee69e072f604b4368c85", + "text": "Migrated `pkg/proxy/ipvs` to structured logging", + "markdown": "Migrated `pkg/proxy/ipvs` to structured logging ([#104932](https://github.com/kubernetes/kubernetes/pull/104932), [@shivanshu1333](https://github.com/shivanshu1333))", + "author": "shivanshu1333", + "author_url": "https://github.com/shivanshu1333", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104932", + "pr_number": 104932, + "areas": [ + "logging", + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "104942": { + "commit": "8975906dfc87732e063bb30e36b181a031988a52", + "text": "kubeadm: do not check if the `/etc/kubernetes/manifests` folder is empty on joining worker nodes during preflight", + "markdown": "Kubeadm: do not check if the `/etc/kubernetes/manifests` folder is empty on joining worker nodes during preflight ([#104942](https://github.com/kubernetes/kubernetes/pull/104942), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104942", + "pr_number": 104942, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "104944": { + "commit": "acbeaf8b8e1ee8de55f8167ac9c41d6c7526f9dd", + "text": "Migrate `cmd/proxy/{config, healthcheck, winkernel}` to structured logging", + "markdown": "Migrate `cmd/proxy/{config, healthcheck, winkernel}` to structured logging ([#104944](https://github.com/kubernetes/kubernetes/pull/104944), [@jyz0309](https://github.com/jyz0309))", + "author": "jyz0309", + "author_url": "https://github.com/jyz0309", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104944", + "pr_number": 104944, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "104969": { + "commit": "9c147baa70c31afc966329df73302e9b52d8e432", + "text": "kube-apiserver: Fixes handling of CRD schemas containing literal null values in enums.", + "markdown": "Kube-apiserver: Fixes handling of CRD schemas containing literal null values in enums. ([#104969](https://github.com/kubernetes/kubernetes/pull/104969), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104969", + "pr_number": 104969, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "network", + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "104970": { + "commit": "abd83afaeca9504a75e942460a1e23740da0e28e", + "text": "Updates `debian-iptables` to v1.6.7 to pick up CVE fixes.", + "markdown": "Updates `debian-iptables` to v1.6.7 to pick up CVE fixes. ([#104970](https://github.com/kubernetes/kubernetes/pull/104970), [@PushkarJ](https://github.com/PushkarJ))", + "author": "PushkarJ", + "author_url": "https://github.com/PushkarJ", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104970", + "pr_number": 104970, + "areas": [ + "test", + "security", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "testing", + "release", + "security" + ], + "feature": true, + "duplicate": true + }, + "104983": { + "commit": "5b489e2846a7fb959252dc5a04fe21ec844e9fad", + "text": "The kube-apiserver's Prometheus metrics have been extended with some that describe the costs of handling LIST requests. They are as follows.\n- *apiserver_cache_list_total*: Counter of LIST requests served from watch cache, broken down by resource_prefix and index_name\n- *apiserver_cache_list_fetched_objects_total*: Counter of objects read from watch cache in the course of serving a LIST request, broken down by resource_prefix and index_name\n- *apiserver_cache_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from watch cache, broken down by resource_prefix\n- *apiserver_cache_list_returned_objects_total*: Counter of objects returned for a LIST request from watch cache, broken down by resource_prefix\n- *apiserver_storage_list_total*: Counter of LIST requests served from etcd, broken down by resource\n- *apiserver_storage_list_fetched_objects_total*: Counter of objects read from etcd in the course of serving a LIST request, broken down by resource\n- *apiserver_storage_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from etcd, broken down by resource\n- *apiserver_storage_list_returned_objects_total*: Counter of objects returned for a LIST request from etcd, broken down by resource", + "markdown": "The kube-apiserver's Prometheus metrics have been extended with some that describe the costs of handling LIST requests. They are as follows.\n - *apiserver_cache_list_total*: Counter of LIST requests served from watch cache, broken down by resource_prefix and index_name\n - *apiserver_cache_list_fetched_objects_total*: Counter of objects read from watch cache in the course of serving a LIST request, broken down by resource_prefix and index_name\n - *apiserver_cache_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from watch cache, broken down by resource_prefix\n - *apiserver_cache_list_returned_objects_total*: Counter of objects returned for a LIST request from watch cache, broken down by resource_prefix\n - *apiserver_storage_list_total*: Counter of LIST requests served from etcd, broken down by resource\n - *apiserver_storage_list_fetched_objects_total*: Counter of objects read from etcd in the course of serving a LIST request, broken down by resource\n - *apiserver_storage_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from etcd, broken down by resource\n - *apiserver_storage_list_returned_objects_total*: Counter of objects returned for a LIST request from etcd, broken down by resource ([#104983](https://github.com/kubernetes/kubernetes/pull/104983), [@MikeSpreitzer](https://github.com/MikeSpreitzer))", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104983", + "pr_number": 104983, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "104986": { + "commit": "924f1968828da3b0c20a9eea2e19236a47fa689f", + "text": "Headless Services with no selector which were created without dual-stack enabled will be defaulted to RequireDualStack instead of PreferDualStack. This is consistent with such Services which are created with dual-stack enabled.", + "markdown": "Headless Services with no selector which were created without dual-stack enabled will be defaulted to RequireDualStack instead of PreferDualStack. This is consistent with such Services which are created with dual-stack enabled. ([#104986](https://github.com/kubernetes/kubernetes/pull/104986), [@thockin](https://github.com/thockin))", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104986", + "pr_number": 104986, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "105003": { + "commit": "894ceb63d09bf4000ba938d570a5aaeb20613a64", + "text": "Move the `GetAllocatableResources` Endpoint in PodResource API to the beta that will make it enabled by default.", + "markdown": "Move the `GetAllocatableResources` Endpoint in PodResource API to the beta that will make it enabled by default. ([#105003](https://github.com/kubernetes/kubernetes/pull/105003), [@swatisehgal](https://github.com/swatisehgal))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2403-pod-resources-allocatable-resources/README.md", + "type": "KEP" + } + ], + "author": "swatisehgal", + "author_url": "https://github.com/swatisehgal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105003", + "pr_number": 105003, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "105012": { + "commit": "63f66e6c99ab59a6143dcd377cf93b6dde318c59", + "text": "The CPUManager policy options are now enabled, and we introduce a graduation path for the new CPU Manager policy options.", + "markdown": "The CPUManager policy options are now enabled, and we introduce a graduation path for the new CPU Manager policy options. ([#105012](https://github.com/kubernetes/kubernetes/pull/105012), [@fromanirh](https://github.com/fromanirh))", + "author": "fromanirh", + "author_url": "https://github.com/fromanirh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105012", + "pr_number": 105012, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "105034": { + "commit": "73d51a21dbe7504a00423877e272a279a21a115f", + "text": "kubeadm: remove the `--port` flag from the manifest for the kube-scheduler since the flag has been a NO-OP since 1.23 and insecure serving was removed for the component.", + "markdown": "Kubeadm: remove the `--port` flag from the manifest for the kube-scheduler since the flag has been a NO-OP since 1.23 and insecure serving was removed for the component. ([#105034](https://github.com/kubernetes/kubernetes/pull/105034), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105034", + "pr_number": 105034, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "105035": { + "commit": "f06ce08d63db87da3d5cf6aaf8a50c858e5d8a35", + "text": "Migrated pkg/proxy/winuserspace to structured logging", + "markdown": "Migrated pkg/proxy/winuserspace to structured logging ([#105035](https://github.com/kubernetes/kubernetes/pull/105035), [@shivanshu1333](https://github.com/shivanshu1333))", + "author": "shivanshu1333", + "author_url": "https://github.com/shivanshu1333", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105035", + "pr_number": 105035, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "105042": { + "commit": "e4e2c51648e1ab12965800f71bc3f5baa9496a2f", + "text": "All `klog` flags except for `-v` and `-vmodule` are deprecated. Support for `-vmodule` is only guaranteed for the text log format.", + "markdown": "All `klog` flags except for `-v` and `-vmodule` are deprecated. Support for `-vmodule` is only guaranteed for the text log format. ([#105042](https://github.com/kubernetes/kubernetes/pull/105042), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2845", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105042", + "pr_number": 105042, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "cli", + "instrumentation", + "architecture" + ], + "duplicate": true + }, + "105046": { + "commit": "fb70ca9b7b24ce90b19b0d565ae43e6af20458ad", + "text": "Fix system default topology spreading when nodes don't have zone labels. Pods correctly spread by default now.", + "markdown": "Fix system default topology spreading when nodes don't have zone labels. Pods correctly spread by default now. ([#105046](https://github.com/kubernetes/kubernetes/pull/105046), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105046", + "pr_number": 105046, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "105069": { + "commit": "63e7ee43bb5394abd6dd5010be47ebcb22ec0ef8", + "text": "Make the etcd client (used by the API server) retry certain types of errors. The full list of retriable (codes.Unavailable) errors can be found at https://github.com/etcd-io/etcd/blob/main/api/v3rpc/rpctypes/error.go#L72", + "markdown": "Make the etcd client (used by the API server) retry certain types of errors. The full list of retriable (codes.Unavailable) errors can be found at https://github.com/etcd-io/etcd/blob/main/api/v3rpc/rpctypes/error.go#L72 ([#105069](https://github.com/kubernetes/kubernetes/pull/105069), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105069", + "pr_number": 105069, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "105076": { + "commit": "82da9bdaab705a1a72e4c5915f6ddd8775592fdf", + "text": "`--log-flush-frequency` had no effect in several commands or was missing. Help and warning texts were not always using the right format for a command (`add_dir_header` instead of `add-dir-header`). Fixing this included cleaning up flag handling in component-base/logs: that package no longer adds flags to the global flag sets. Commands which want the klog and `--log-flush-frequency` flags must explicitly call `logs.AddFlags`; the new `cli.Run` does that for commands. That helper function also covers flag normalization and printing of usage and errors in a consistent way (print usage text first if parsing failed, then the error).", + "markdown": "`--log-flush-frequency` had no effect in several commands or was missing. Help and warning texts were not always using the right format for a command (`add_dir_header` instead of `add-dir-header`). Fixing this included cleaning up flag handling in component-base/logs: that package no longer adds flags to the global flag sets. Commands which want the klog and `--log-flush-frequency` flags must explicitly call `logs.AddFlags`; the new `cli.Run` does that for commands. That helper function also covers flag normalization and printing of usage and errors in a consistent way (print usage text first if parsing failed, then the error). ([#105076](https://github.com/kubernetes/kubernetes/pull/105076), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105076", + "pr_number": 105076, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "release-eng", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "scheduling", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "105107": { + "commit": "6f47878926f1aa51e0864821d882bf695558709a", + "text": "Added a new feature gate `CustomResourceValidationExpressions` to enable expression validation for Custom Resource.", + "markdown": "Added a new feature gate `CustomResourceValidationExpressions` to enable expression validation for Custom Resource. ([#105107](https://github.com/kubernetes/kubernetes/pull/105107), [@cici37](https://github.com/cici37))", + "documentation": [ + { + "description": "[KEP]: \u003c", + "url": "http://kep.k8s.io/2876\u003e", + "type": "external" + } + ], + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105107", + "pr_number": 105107, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "105140": { + "commit": "47041cd2a2ff325d70bf23f361c7f59e5ba4c9a1", + "text": "Added the ability to specify whether to use an RFC7396 JSON Merge Patch, an RFC6902 JSON Patch, or a Strategic Merge Patch to perform an override of the resources created by `kubectl run` and `kubectl expose`.", + "markdown": "Added the ability to specify whether to use an RFC7396 JSON Merge Patch, an RFC6902 JSON Patch, or a Strategic Merge Patch to perform an override of the resources created by `kubectl run` and `kubectl expose`. ([#105140](https://github.com/kubernetes/kubernetes/pull/105140), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105140", + "pr_number": 105140, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "105156": { + "commit": "b7da9ef49f82ac8b54d28931a5b3e1de30accfd3", + "text": "`client-go`, using log level 9, traces the following events of a HTTP request:\n - DNS lookup\n - TCP dialing\n - TLS handshake\n - Time to get a connection from the pool\n - Time to process a request", + "markdown": "`client-go`, using log level 9, traces the following events of a HTTP request:\n - DNS lookup\n - TCP dialing\n - TLS handshake\n - Time to get a connection from the pool\n - Time to process a request ([#105156](https://github.com/kubernetes/kubernetes/pull/105156), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105156", + "pr_number": 105156, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "105158": { + "commit": "d385d0602a1075837bf8713b9f56964c154aede7", + "text": "Update build images to Debian 11 (Bullseye)\n- debian-base:bullseye-v1.0.0\n- debian-iptables:bullseye-v1.0.0\n- go-runner:v2.3.1-go1.17.1-bullseye.0\n- kube-cross:v1.23.0-go1.17.1-bullseye.1\n- setcap:bullseye-v1.0.0\n- cluster/images/etcd: Build 3.5.0-2 image\n- test/conformance/image: Update runner image to base-debian11", + "markdown": "Update build images to Debian 11 (Bullseye)\n - debian-base:bullseye-v1.0.0\n - debian-iptables:bullseye-v1.0.0\n - go-runner:v2.3.1-go1.17.1-bullseye.0\n - kube-cross:v1.23.0-go1.17.1-bullseye.1\n - setcap:bullseye-v1.0.0\n - cluster/images/etcd: Build 3.5.0-2 image\n - test/conformance/image: Update runner image to base-debian11 ([#105158](https://github.com/kubernetes/kubernetes/pull/105158), [@justaugustus](https://github.com/justaugustus))", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105158", + "pr_number": 105158, + "areas": [ + "test", + "security", + "release-eng", + "conformance", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing", + "release", + "architecture" + ], + "duplicate": true + }, + "105185": { + "commit": "26365faf310dab52e5ec359158c7b91bc2aa5243", + "text": "Ignore `not a vmss instance` error for VMAS nodes in `EnsureBackendPoolDeleted`.", + "markdown": "Ignore `not a vmss instance` error for VMAS nodes in `EnsureBackendPoolDeleted`. ([#105185](https://github.com/kubernetes/kubernetes/pull/105185), [@ialidzhikov](https://github.com/ialidzhikov))", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105185", + "pr_number": 105185, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "105188": { + "commit": "1ad3e14f1fc4a5f6e6cd6f9ffc7d030cb3d6540d", + "text": "Fixed consolidate logs for `instance not found` error\nFixed skip `not found` nodes when reconciling LB backend address pools", + "markdown": "Fixed consolidate logs for `instance not found` error\n Fixed skip `not found` nodes when reconciling LB backend address pools ([#105188](https://github.com/kubernetes/kubernetes/pull/105188), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105188", + "pr_number": 105188, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "105196": { + "commit": "16fdb2f39148e8843e999780fc7bd3ee161349fb", + "text": "Enhanced error message for nodes not selected by scheduler due to pod's PersistentVolumeClaim(s) bound to PersistentVolume(s) that do not exist.", + "markdown": "Enhanced error message for nodes not selected by scheduler due to pod's PersistentVolumeClaim(s) bound to PersistentVolume(s) that do not exist. ([#105196](https://github.com/kubernetes/kubernetes/pull/105196), [@yibozhuang](https://github.com/yibozhuang))", + "author": "yibozhuang", + "author_url": "https://github.com/yibozhuang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105196", + "pr_number": 105196, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "storage" + ], + "duplicate": true + }, + "105197": { + "commit": "0a29e2a73a5f7e5c9ef35787a09cc69c74e42dd6", + "text": "When feature gate `JobTrackingWithFinalizers` is enabled:\n- Limit the number of Pods tracked in a single Job sync to avoid starvation of small Jobs.\n- The metric `job_pod_finished_total` counts the number of finished Pods tracked by the Job controller.", + "markdown": "When feature gate `JobTrackingWithFinalizers` is enabled:\n - Limit the number of Pods tracked in a single Job sync to avoid starvation of small Jobs.\n - The metric `job_pod_finished_total` counts the number of finished Pods tracked by the Job controller. ([#105197](https://github.com/kubernetes/kubernetes/pull/105197), [@alculquicondor](https://github.com/alculquicondor))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2307-job-tracking-without-lingering-pods", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#job-tracking-with-finalizers", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105197", + "pr_number": 105197, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "105211": { + "commit": "baaa53db64aa703e75610fb773ed5278f1c202a1", + "text": "Fixed a bug that prevents a PersistentVolume that has a PersistentVolumeClaim UID which doesn't exist in local cache but exists in etcd from being updated to the Released phase.", + "markdown": "Fixed a bug that prevents a PersistentVolume that has a PersistentVolumeClaim UID which doesn't exist in local cache but exists in etcd from being updated to the Released phase. ([#105211](https://github.com/kubernetes/kubernetes/pull/105211), [@xiaopingrubyist](https://github.com/xiaopingrubyist))", + "author": "xiaopingrubyist", + "author_url": "https://github.com/xiaopingrubyist", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105211", + "pr_number": 105211, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "105213": { + "commit": "e138afc35d0d3fc0d231dc3aac3627a95c2dccfb", + "text": "Removed the error message label from the `kubelet_started_pods_errors_total` metric", + "markdown": "Removed the error message label from the `kubelet_started_pods_errors_total` metric ([#105213](https://github.com/kubernetes/kubernetes/pull/105213), [@yxxhero](https://github.com/yxxhero))", + "author": "yxxhero", + "author_url": "https://github.com/yxxhero", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105213", + "pr_number": 105213, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "instrumentation" + ], + "duplicate": true + }, + "105214": { + "commit": "aec9acda6818684a2e9b98b22ee8d0ab23e77580", + "text": "Fix job controller syncs: In case of conflicts, ensure that the sync happens with the most up to date information. Improves reliability of JobTrackingWithFinalizers.", + "markdown": "Fix job controller syncs: In case of conflicts, ensure that the sync happens with the most up to date information. Improves reliability of JobTrackingWithFinalizers. ([#105214](https://github.com/kubernetes/kubernetes/pull/105214), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105214", + "pr_number": 105214, + "kinds": [ + "bug", + "flake" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "105215": { + "commit": "a923852ba06e520c7b531e5cf102d78744dd6f53", + "text": "Kubelet's Node Grace Shutdown will terminate probes when shutting down", + "markdown": "Kubelet's Node Grace Shutdown will terminate probes when shutting down ([#105215](https://github.com/kubernetes/kubernetes/pull/105215), [@rphillips](https://github.com/rphillips))", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105215", + "pr_number": 105215, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "105219": { + "commit": "76c86ce324c7915a0ffc4d3ba0dcaf6c3c6ba403", + "text": "The `TTLAfterFinished` feature gate is now GA and enabled by default.", + "markdown": "The `TTLAfterFinished` feature gate is now GA and enabled by default. ([#105219](https://github.com/kubernetes/kubernetes/pull/105219), [@sahilvv](https://github.com/sahilvv))", + "author": "sahilvv", + "author_url": "https://github.com/sahilvv", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105219", + "pr_number": 105219, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "105222": { + "commit": "519b164db1320d2243c807c60ffc2e499318f283", + "text": "Remove `NodeLease` feature gate that was graduated and locked to stable in 1.17 release.", + "markdown": "Remove `NodeLease` feature gate that was graduated and locked to stable in 1.17 release. ([#105222](https://github.com/kubernetes/kubernetes/pull/105222), [@cyclinder](https://github.com/cyclinder))", + "author": "cyclinder", + "author_url": "https://github.com/cyclinder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105222", + "pr_number": 105222, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "node", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "105245": { + "commit": "6c292ce27008391f2223ef12f7979fb0d6b96f2d", + "text": "Enhance scheduler `VolumeBinding` plugin to handle Lost PVC as `UnschedulableAndUnresolvable`", + "markdown": "Enhance scheduler `VolumeBinding` plugin to handle Lost PVC as `UnschedulableAndUnresolvable` ([#105245](https://github.com/kubernetes/kubernetes/pull/105245), [@yibozhuang](https://github.com/yibozhuang))", + "author": "yibozhuang", + "author_url": "https://github.com/yibozhuang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105245", + "pr_number": 105245, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true + }, + "105253": { + "commit": "763e528e5bf02218b9c69d07074b9361a917adbc", + "text": "fix: leave the probe path empty for TCP probes", + "markdown": "Fix: leave the probe path empty for TCP probes ([#105253](https://github.com/kubernetes/kubernetes/pull/105253), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105253", + "pr_number": 105253, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "105267": { + "commit": "598a8829c1b6c1cdf79733de9f9ae104c9ce717d", + "text": "Fixes a bug that could result in the EndpointSlice controller unnecessarily updating EndpointSlices associated with a Service that had Topology Aware Hints enabled.", + "markdown": "Fixes a bug that could result in the EndpointSlice controller unnecessarily updating EndpointSlices associated with a Service that had Topology Aware Hints enabled. ([#105267](https://github.com/kubernetes/kubernetes/pull/105267), [@llhuii](https://github.com/llhuii))", + "author": "llhuii", + "author_url": "https://github.com/llhuii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105267", + "pr_number": 105267, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "105292": { + "commit": "a9ad15c42102ce6a53ece6d3b6f41e85f2d89f60", + "text": "Kubelet should reject pods whose OS doesn't match the node's OS label.", + "markdown": "Kubelet should reject pods whose OS doesn't match the node's OS label. ([#105292](https://github.com/kubernetes/kubernetes/pull/105292), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Apps and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2803", + "type": "KEP" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105292", + "pr_number": 105292, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "105295": { + "commit": "73f4064fff7b0c5fb411c0f103f9e44c758c5f1d", + "text": "kubeadm: add a new `output/v1alpha2` API that is identical to the `output/v1alpha1`, but attempts to resolve some internal dependencies with the `kubeadm/v1beta2` API. The `output/v1alpha1` API is now deprecated and will be removed in a future release.", + "markdown": "Kubeadm: add a new `output/v1alpha2` API that is identical to the `output/v1alpha1`, but attempts to resolve some internal dependencies with the `kubeadm/v1beta2` API. The `output/v1alpha1` API is now deprecated and will be removed in a future release. ([#105295](https://github.com/kubernetes/kubernetes/pull/105295), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105295", + "pr_number": 105295, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "feature", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "105327": { + "commit": "bac45abf77ed1f96921365c056303066fc177702", + "text": "Removed `kubectl --dry-run` empty default value and boolean values. `kubectl --dry-run` usage must be specified with `--dry-run=(server|client|none)`.", + "markdown": "Removed `kubectl --dry-run` empty default value and boolean values. `kubectl --dry-run` usage must be specified with `--dry-run=(server|client|none)`. ([#105327](https://github.com/kubernetes/kubernetes/pull/105327), [@julianvmodesto](https://github.com/julianvmodesto))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/0e4d5df19d396511fe41ed0860b0ab9b96f46a2d/keps/sig-api-machinery/576-dry-run/README.md", + "type": "KEP" + } + ], + "author": "julianvmodesto", + "author_url": "https://github.com/julianvmodesto", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105327", + "pr_number": 105327, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "105352": { + "commit": "e1b94fdac9cf217b3ddf6ff0c18023e43120779a", + "text": "Revert building binaries with PIE mode.", + "markdown": "Revert building binaries with PIE mode. ([#105352](https://github.com/kubernetes/kubernetes/pull/105352), [@ehashman](https://github.com/ehashman))", + "author": "ehashman", + "author_url": "https://github.com/ehashman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105352", + "pr_number": 105352, + "kinds": [ + "regression" + ], + "sigs": [ + "node", + "release", + "security" + ], + "duplicate": true + }, + "105396": { + "commit": "6044cdbb31eecfe32c6236a1a260c3383b074b51", + "text": "Fixes the `should support building a client with a CSR` E2E test to work with clusters configured with short certificate lifetimes", + "markdown": "Fixes the `should support building a client with a CSR` E2E test to work with clusters configured with short certificate lifetimes ([#105396](https://github.com/kubernetes/kubernetes/pull/105396), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105396", + "pr_number": 105396, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "testing" + ], + "duplicate": true + }, + "105405": { + "commit": "18104ecf1f57362ae6b33f01ce6413d7fec4f715", + "text": "Ephemeral containers graduated to beta and are now available by default.", + "markdown": "Ephemeral containers graduated to beta and are now available by default. ([#105405](https://github.com/kubernetes/kubernetes/pull/105405), [@verb](https://github.com/verb))", + "documentation": [ + { + "description": "[KEP]", + "url": "http://kep.k8s.io/277", + "type": "external" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/tasks/debug-application-cluster/debug-running-pod/", + "type": "official" + } + ], + "author": "verb", + "author_url": "https://github.com/verb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105405", + "pr_number": 105405, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "105421": { + "commit": "0b0007ae68c464cf97759057226a0930f91c3893", + "text": "Fixed a bug where using `kubectl patch` with `$deleteFromPrimitiveList` on a nonexistent or empty list would add the item to the list", + "markdown": "Fixed a bug where using `kubectl patch` with `$deleteFromPrimitiveList` on a nonexistent or empty list would add the item to the list ([#105421](https://github.com/kubernetes/kubernetes/pull/105421), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105421", + "pr_number": 105421, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "105424": { + "commit": "835980ac67c839fc796f12caa2c5b86926abe2d9", + "text": "The legacy scheduler policy config is removed in v1.23, the associated flags `policy-config-file`, `policy-configmap`, `policy-configmap-namespace` and `use-legacy-policy-config` are also removed. Migrate to Component Config instead, see https://kubernetes.io/docs/reference/scheduling/config/ for details.", + "markdown": "The legacy scheduler policy config is removed in v1.23, the associated flags `policy-config-file`, `policy-configmap`, `policy-configmap-namespace` and `use-legacy-policy-config` are also removed. Migrate to Component Config instead, see https://kubernetes.io/docs/reference/scheduling/config/ for details. ([#105424](https://github.com/kubernetes/kubernetes/pull/105424), [@kerthcet](https://github.com/kerthcet))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2901", + "type": "KEP" + } + ], + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105424", + "pr_number": 105424, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "105437": { + "commit": "1f6d5caa9a783af299ae202d14ba30a9ad6ce565", + "text": "The Kubelet's `--register-with-taints` option is now available via the Kubelet config file field registerWithTaints", + "markdown": "The Kubelet's `--register-with-taints` option is now available via the Kubelet config file field registerWithTaints ([#105437](https://github.com/kubernetes/kubernetes/pull/105437), [@cmssczy](https://github.com/cmssczy)) [SIG Node and Scalability]", + "author": "cmssczy", + "author_url": "https://github.com/cmssczy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105437", + "pr_number": 105437, + "areas": [ + "kubelet", + "kubelet-api" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scalability", + "node" + ], + "duplicate": true, + "duplicate_kind": true + }, + "105445": { + "commit": "e054181e517b48a3c862207537092c28604aaad9", + "text": "Change `kubectl diff --invalid-arg` status code from 1 to 2 to match docs", + "markdown": "Change `kubectl diff --invalid-arg` status code from 1 to 2 to match docs ([#105445](https://github.com/kubernetes/kubernetes/pull/105445), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105445", + "pr_number": 105445, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "105462": { + "commit": "907d62eac8bdbb8bceea8e3767f6f3b9061a17f5", + "text": "Evicted and other terminated Pods will no longer revert to the `Running` phase.", + "markdown": "Evicted and other terminated Pods will no longer revert to the `Running` phase. ([#105462](https://github.com/kubernetes/kubernetes/pull/105462), [@ehashman](https://github.com/ehashman))", + "author": "ehashman", + "author_url": "https://github.com/ehashman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105462", + "pr_number": 105462, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "105466": { + "commit": "7cce7eec116f4487c6f6a73d7751322c84e64830", + "text": "apimachinery: Pretty printed JSON and YAML output is now indented consistently.", + "markdown": "Apimachinery: Pretty printed JSON and YAML output is now indented consistently. ([#105466](https://github.com/kubernetes/kubernetes/pull/105466), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105466", + "pr_number": 105466, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "105474": { + "commit": "a8bda48abeccf3daaafb0a95e9e86eccd30b389e", + "text": "Feature-gate `VolumeSubpath` has been deprecated and cannot be disabled. It will be completely removed in 1.25", + "markdown": "Feature-gate `VolumeSubpath` has been deprecated and cannot be disabled. It will be completely removed in 1.25 ([#105474](https://github.com/kubernetes/kubernetes/pull/105474), [@mauriciopoppe](https://github.com/mauriciopoppe))", + "author": "mauriciopoppe", + "author_url": "https://github.com/mauriciopoppe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105474", + "pr_number": 105474, + "kinds": [ + "deprecation" + ], + "sigs": [ + "storage" + ] + }, + "105479": { + "commit": "dea052ceba25fa3ad27c152bdcd0abbf0ff49ec5", + "text": "Node affinity, Node selectors, and tolerations are now mutable for Jobs that are suspended and have never been started", + "markdown": "Node affinity, Node selectors, and tolerations are now mutable for Jobs that are suspended and have never been started ([#105479](https://github.com/kubernetes/kubernetes/pull/105479), [@ahg-g](https://github.com/ahg-g))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/2926-job-mutable-scheduling-directives", + "type": "KEP" + } + ], + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105479", + "pr_number": 105479, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "105484": { + "commit": "9cb0c403df65defb3844e87e9d0a09495a231120", + "text": "Fixed architecture within manifest for non `amd64` etcd images.", + "markdown": "Fixed architecture within manifest for non `amd64` etcd images. ([#105484](https://github.com/kubernetes/kubernetes/pull/105484), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105484", + "pr_number": 105484, + "areas": [ + "release-eng" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "105490": { + "commit": "881980a5c67b7636fd983c481b2648bc4e00c242", + "text": "client-go uses the same HTTP client for all the generated groups and versions, allowing to share customized transports for multiple groups versions.", + "markdown": "Client-go uses the same HTTP client for all the generated groups and versions, allowing to share customized transports for multiple groups versions. ([#105490](https://github.com/kubernetes/kubernetes/pull/105490), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105490", + "pr_number": 105490, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "105495": { + "commit": "dea14dbdcc9d2eb5b380af09cce16bc6fabf62e5", + "text": "Feature gate `StorageObjectInUseProtection` has been deprecated and cannot be disabled. It will be completely removed in 1.25", + "markdown": "Feature gate `StorageObjectInUseProtection` has been deprecated and cannot be disabled. It will be completely removed in 1.25 ([#105495](https://github.com/kubernetes/kubernetes/pull/105495), [@ikeeip](https://github.com/ikeeip))", + "author": "ikeeip", + "author_url": "https://github.com/ikeeip", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105495", + "pr_number": 105495, + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "duplicate_kind": true + }, + "105511": { + "commit": "313b43a8cb792efb26de0ade8da7bb9abe523674", + "text": "Watch requests that are delegated to aggregated API servers no longer reserve concurrency units (seats) in the API Priority and Fairness dispatcher for their entire duration.", + "markdown": "Watch requests that are delegated to aggregated API servers no longer reserve concurrency units (seats) in the API Priority and Fairness dispatcher for their entire duration. ([#105511](https://github.com/kubernetes/kubernetes/pull/105511), [@benluddy](https://github.com/benluddy))", + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105511", + "pr_number": 105511, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "105512": { + "commit": "ba944971f66210d09273ee779380d3e116f75880", + "text": "Do not unmount and mount subpath bind mounts during container creation unless bind mount changes", + "markdown": "Do not unmount and mount subpath bind mounts during container creation unless bind mount changes ([#105512](https://github.com/kubernetes/kubernetes/pull/105512), [@gnufied](https://github.com/gnufied)) [SIG Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105512", + "pr_number": 105512, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "105563": { + "commit": "d09ce7be1c3b98afabaab1e01494546a2f4a95c5", + "text": "Kubernetes is now built with Golang 1.17.2", + "markdown": "Kubernetes is now built with Golang 1.17.2 ([#105563](https://github.com/kubernetes/kubernetes/pull/105563), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105563", + "pr_number": 105563, + "areas": [ + "test", + "provider/gcp", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing", + "release", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "105569": { + "commit": "dc9c5711661180b6d651621435829d5570fb1a29", + "text": "kubelet did not report `kubelet_volume_stats_*` metrics for Generic Ephemeral Volumes.", + "markdown": "Kubelet did not report `kubelet_volume_stats_*` metrics for Generic Ephemeral Volumes. ([#105569](https://github.com/kubernetes/kubernetes/pull/105569), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105569", + "pr_number": 105569, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "105571": { + "commit": "766a7e2e00ea42d17acb7a4cc66b8d9f579bce60", + "text": "Remove ignore error flag for drain, and set this feature as default", + "markdown": "Remove ignore error flag for drain, and set this feature as default ([#105571](https://github.com/kubernetes/kubernetes/pull/105571), [@yuzhiquan](https://github.com/yuzhiquan)) [SIG CLI]", + "author": "yuzhiquan", + "author_url": "https://github.com/yuzhiquan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105571", + "pr_number": 105571, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "105606": { + "commit": "2dede1d4d453413da6fd852e00fc7d4c8784d2a8", + "text": "kube-apiserver: fix a memory leak when deleting multiple objects with a `deletecollection`.", + "markdown": "Kube-apiserver: fix a memory leak when deleting multiple objects with a `deletecollection`. ([#105606](https://github.com/kubernetes/kubernetes/pull/105606), [@sxllwx](https://github.com/sxllwx))", + "author": "sxllwx", + "author_url": "https://github.com/sxllwx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105606", + "pr_number": 105606, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "105609": { + "commit": "c592bd40f2df941aa4ea364592ce92fd5c669bfc", + "text": "The \"Generic Ephemeral Volume\" feature graduates to GA. It is now enabled unconditionally.", + "markdown": "The \"Generic Ephemeral Volume\" feature graduates to GA. It is now enabled unconditionally. ([#105609](https://github.com/kubernetes/kubernetes/pull/105609), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/e669a1483064f4a3f248e78c9b8399858ca75f66/keps/sig-storage/1698-generic-ephemeral-volumes/README.md", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105609", + "pr_number": 105609, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "105611": { + "commit": "c0b5ed75560c47b085815b88bcb9f7b00a553ef2", + "text": "KubeSchedulerConfiguration provides a new field `MultiPoint` which will register a plugin for all valid extension points", + "markdown": "KubeSchedulerConfiguration provides a new field `MultiPoint` which will register a plugin for all valid extension points ([#105611](https://github.com/kubernetes/kubernetes/pull/105611), [@damemi](https://github.com/damemi)) [SIG Scheduling and Testing]", + "author": "damemi", + "author_url": "https://github.com/damemi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105611", + "pr_number": 105611, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "105631": { + "commit": "b2c4269992498d3a44f1b79a20eb14b8dc61b380", + "text": "Add a new `distribute-cpus-across-numa` option to the static `CPUManager` policy. When enabled, this will trigger the `CPUManager` to evenly distribute CPUs across NUMA nodes in cases where more than one NUMA node is required to satisfy the allocation.", + "markdown": "Add a new `distribute-cpus-across-numa` option to the static `CPUManager` policy. When enabled, this will trigger the `CPUManager` to evenly distribute CPUs across NUMA nodes in cases where more than one NUMA node is required to satisfy the allocation. ([#105631](https://github.com/kubernetes/kubernetes/pull/105631), [@klueska](https://github.com/klueska))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2902-cpumanager-distribute-cpus-policy-option", + "type": "KEP" + } + ], + "author": "klueska", + "author_url": "https://github.com/klueska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105631", + "pr_number": 105631, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "105649": { + "commit": "3f85ed46db1c0ab06f07866cbff9df0a366796b7", + "text": "kubeadm: do not allow empty `--config` paths to be passed to `kubeadm kubeconfig user`", + "markdown": "Kubeadm: do not allow empty `--config` paths to be passed to `kubeadm kubeconfig user` ([#105649](https://github.com/kubernetes/kubernetes/pull/105649), [@navist2020](https://github.com/navist2020))", + "author": "navist2020", + "author_url": "https://github.com/navist2020", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105649", + "pr_number": 105649, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "105666": { + "commit": "421cdec3a5d1a185ce36398f4505d8b44d1c74f7", + "text": "Fix: skip `instance not found` when decoupling VMSSs from LB", + "markdown": "Fix: skip `instance not found` when decoupling VMSSs from LB ([#105666](https://github.com/kubernetes/kubernetes/pull/105666), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105666", + "pr_number": 105666, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "105673": { + "commit": "655c04d9f530e5ebc2ec6f5feef76716c8a9db22", + "text": "Support more than 100 disk mounts on Windows", + "markdown": "Support more than 100 disk mounts on Windows ([#105673](https://github.com/kubernetes/kubernetes/pull/105673), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105673", + "pr_number": 105673, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "windows" + ], + "duplicate": true + }, + "105676": { + "commit": "0bfa37dfccf9b5459b03c4fdc2b0c894bbc53c38", + "text": "Fix pod name of NonIndexed Jobs to not include rogue `-1` substring", + "markdown": "Fix pod name of NonIndexed Jobs to not include rogue `-1` substring ([#105676](https://github.com/kubernetes/kubernetes/pull/105676), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105676", + "pr_number": 105676, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "105682": { + "commit": "7fbb384e15e2fb8370513eab9443c5107df1b257", + "text": "Be able to create a Pod with Generic Ephemeral Volumes as raw block devices.", + "markdown": "Be able to create a Pod with Generic Ephemeral Volumes as raw block devices. ([#105682](https://github.com/kubernetes/kubernetes/pull/105682), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1698-generic-ephemeral-volumes", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105682", + "pr_number": 105682, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "apps", + "testing" + ], + "duplicate": true + }, + "105687": { + "commit": "c733594040f697efbf570bef79df5678b513b1c6", + "text": "JobTrackingWithFinalizers graduates to beta. Feature is enabled by default.", + "markdown": "JobTrackingWithFinalizers graduates to beta. Feature is enabled by default. ([#105687](https://github.com/kubernetes/kubernetes/pull/105687), [@alculquicondor](https://github.com/alculquicondor))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2307-job-tracking-without-lingering-pods", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#job-tracking-with-finalizers", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105687", + "pr_number": 105687, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "105706": { + "commit": "1c127d36828929d9c8d405cb3c0236ff267893cd", + "text": "Upgrade etcd to 3.5.1", + "markdown": "Upgrade etcd to 3.5.1 ([#105706](https://github.com/kubernetes/kubernetes/pull/105706), [@uthark](https://github.com/uthark)) [SIG Cloud Provider, Cluster Lifecycle and Testing]", + "author": "uthark", + "author_url": "https://github.com/uthark", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105706", + "pr_number": 105706, + "areas": [ + "test", + "provider/gcp", + "release-eng", + "kubeadm", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "105711": { + "commit": "aa7c6338c6767a86a76abae819670145033497f6", + "text": "Shell completion now knows to continue suggesting resource names when the command supports it. For example `kubectl get pod pod1 \u003cTAB\u003e` will suggest more Pod names.", + "markdown": "Shell completion now knows to continue suggesting resource names when the command supports it. For example `kubectl get pod pod1 \u003cTAB\u003e` will suggest more Pod names. ([#105711](https://github.com/kubernetes/kubernetes/pull/105711), [@marckhouzam](https://github.com/marckhouzam))", + "author": "marckhouzam", + "author_url": "https://github.com/marckhouzam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105711", + "pr_number": 105711, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "105712": { + "commit": "4bb31b5a5613c1a935f153cc72acf354171c08a1", + "text": "The `--leader-elect*` CLI args are now honored in the scheduler.", + "markdown": "The `--leader-elect*` CLI args are now honored in the scheduler. ([#105712](https://github.com/kubernetes/kubernetes/pull/105712), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105712", + "pr_number": 105712, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "105734": { + "commit": "afff019fbc90373127020693cdb056a968468f04", + "text": "Fixed concurrent map access causing panics when logging timed-out API calls.", + "markdown": "Fixed concurrent map access causing panics when logging timed-out API calls. ([#105734](https://github.com/kubernetes/kubernetes/pull/105734), [@marseel](https://github.com/marseel))", + "author": "marseel", + "author_url": "https://github.com/marseel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105734", + "pr_number": 105734, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "105741": { + "commit": "5848dbaa80f4fa36cc05194d99295ab827f77cc3", + "text": "kubeadm: add the kubeadm specific, Alpha (disabled by default) feature gate UnversionedKubeletConfigMap. When this feature is enabled kubeadm will start using a new naming format for the ConfigMap where it stores the KubeletConfiguration structure. The old format included the Kubernetes version - \"kube-system/kubelet-config-1.22\", while the new format does not - \"kube-system/kubelet-config\". A similar formatting change is done for the related RBAC rules. The old format is now DEPRECATED and will be removed after the feature graduates to GA. When writing the ConfigMap kubeadm (init, upgrade apply) will respect the value of UnversionedKubeletConfigMap, while when reading it (join, reset, upgrade), it would attempt to use new format first and fallback to the legacy format if needed.", + "markdown": "Kubeadm: add the kubeadm specific, Alpha (disabled by default) feature gate UnversionedKubeletConfigMap. When this feature is enabled kubeadm will start using a new naming format for the ConfigMap where it stores the KubeletConfiguration structure. The old format included the Kubernetes version - \"kube-system/kubelet-config-1.22\", while the new format does not - \"kube-system/kubelet-config\". A similar formatting change is done for the related RBAC rules. The old format is now DEPRECATED and will be removed after the feature graduates to GA. When writing the ConfigMap kubeadm (init, upgrade apply) will respect the value of UnversionedKubeletConfigMap, while when reading it (join, reset, upgrade), it would attempt to use new format first and fallback to the legacy format if needed. ([#105741](https://github.com/kubernetes/kubernetes/pull/105741), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/2915-kubeadm-replace-kubelet-config-x.y", + "type": "KEP" + }, + { + "description": "[Enhancement tracking issue]", + "url": "https://github.com/kubernetes/enhancements/issues/2915", + "type": "KEP" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105741", + "pr_number": 105741, + "areas": [ + "test", + "kubeadm" + ], + "kinds": [ + "feature", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "105744": { + "commit": "1f6aa87a9311aa6e2b52299099bc67a342d7dfe2", + "text": "Add support for Windows Network stats in Containerd", + "markdown": "Add support for Windows Network stats in Containerd ([#105744](https://github.com/kubernetes/kubernetes/pull/105744), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node, Testing and Windows]", + "author": "jsturtevant", + "author_url": "https://github.com/jsturtevant", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105744", + "pr_number": 105744, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node", + "windows", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "105773": { + "commit": "9b083c4226ab517c4eb486f0987cbfb340a066c4", + "text": "Ensures that volume is deleted from the storage backend when the user tries to delete the PV object manually and the PV `ReclaimPolicy` is set to `Delete`.", + "markdown": "Ensures that volume is deleted from the storage backend when the user tries to delete the PV object manually and the PV `ReclaimPolicy` is set to `Delete`. ([#105773](https://github.com/kubernetes/kubernetes/pull/105773), [@deepakkinni](https://github.com/deepakkinni))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2680", + "type": "KEP" + } + ], + "author": "deepakkinni", + "author_url": "https://github.com/deepakkinni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105773", + "pr_number": 105773, + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "apps" + ], + "feature": true, + "duplicate": true + }, + "105776": { + "commit": "6be67e860c39c65ee43c5a67ad9562d49a509ba8", + "text": "Added ability for `kubectl wait` to wait on arbitary JSON path", + "markdown": "Added ability for `kubectl wait` to wait on arbitary JSON path ([#105776](https://github.com/kubernetes/kubernetes/pull/105776), [@lauchokyip](https://github.com/lauchokyip))", + "author": "lauchokyip", + "author_url": "https://github.com/lauchokyip", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105776", + "pr_number": 105776, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "105777": { + "commit": "b403ed85783f8c83241e78a3584b412831b61ff4", + "text": "Fix: do not try to delete a LoadBalancer that does not exist", + "markdown": "Fix: do not try to delete a LoadBalancer that does not exist ([#105777](https://github.com/kubernetes/kubernetes/pull/105777), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105777", + "pr_number": 105777, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "105794": { + "commit": "c9baa14d708415225ed030e520970b3e1b6e4349", + "text": "Adds `--as-uid` flag to `kubectl` to allow uid impersonation in the same way as user and group impersonation.", + "markdown": "Adds `--as-uid` flag to `kubectl` to allow uid impersonation in the same way as user and group impersonation. ([#105794](https://github.com/kubernetes/kubernetes/pull/105794), [@margocrawf](https://github.com/margocrawf))", + "author": "margocrawf", + "author_url": "https://github.com/margocrawf", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105794", + "pr_number": 105794, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "105839": { + "commit": "aa6bb481bacd00c25076b73cefed6f8b61fd2788", + "text": "fix: remove VMSS and VMSS instances from SLB backend pool only when necessary", + "markdown": "Fix: remove VMSS and VMSS instances from SLB backend pool only when necessary ([#105839](https://github.com/kubernetes/kubernetes/pull/105839), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105839", + "pr_number": 105839, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "105845": { + "commit": "a2c37bfd09fe0df6ceecd9499528994626e22b56", + "text": "Fix scoring for `NodeResourcesBalancedAllocation` plugins when nodes have containers with no requests.", + "markdown": "Fix scoring for `NodeResourcesBalancedAllocation` plugins when nodes have containers with no requests. ([#105845](https://github.com/kubernetes/kubernetes/pull/105845), [@ahmad-diaa](https://github.com/ahmad-diaa))", + "author": "ahmad-diaa", + "author_url": "https://github.com/ahmad-diaa", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105845", + "pr_number": 105845, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "105851": { + "commit": "011aef1222bb5459401a400231cd8ad309486510", + "text": "kubectl will now provide shell completion choices for the `--output/-o` flag", + "markdown": "Kubectl will now provide shell completion choices for the `--output/-o` flag ([#105851](https://github.com/kubernetes/kubernetes/pull/105851), [@marckhouzam](https://github.com/marckhouzam))", + "author": "marckhouzam", + "author_url": "https://github.com/marckhouzam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105851", + "pr_number": 105851, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "105855": { + "commit": "3c87c43ceff6122637c8d8070601f7271026360e", + "text": "Migrated `cmd/kube-scheduler/app/server.go`, `pkg/scheduler/framework/plugins/nodelabel/node_label.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/csi.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/non_csi.go` to structured logging", + "markdown": "Migrated `cmd/kube-scheduler/app/server.go`, `pkg/scheduler/framework/plugins/nodelabel/node_label.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/csi.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/non_csi.go` to structured logging ([#105855](https://github.com/kubernetes/kubernetes/pull/105855), [@shivanshu1333](https://github.com/shivanshu1333))", + "author": "shivanshu1333", + "author_url": "https://github.com/shivanshu1333", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105855", + "pr_number": 105855, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "duplicate": true + }, + "105857": { + "commit": "dba9975e3e3ba25e0712a209e67862603c172777", + "text": "PodSecurity: in 1.23+ restricted policy levels, Pods and containers which set `runAsUser=0` are forbidden at admission-time; previously, they would be rejected at runtime", + "markdown": "PodSecurity: in 1.23+ restricted policy levels, Pods and containers which set `runAsUser=0` are forbidden at admission-time; previously, they would be rejected at runtime ([#105857](https://github.com/kubernetes/kubernetes/pull/105857), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105857", + "pr_number": 105857, + "kinds": [ + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true + }, + "105873": { + "commit": "9351ea291ab139a38a1f3b235fb4fdaa6dca8188", + "text": "This PR adds the following metrics for API Priority and Fairness.\n- **apiserver_flowcontrol_priority_level_seat_count_samples**: histograms of seats occupied by executing requests (both regular and final-delay phases included), broken down by priority_level; the observations are taken once per millisecond.\n- **apiserver_flowcontrol_priority_level_seat_count_watermarks**: histograms of high and low watermarks of number of seats occupied by executing requests (both regular and final-delay phases included), broken down by priority_level.\n- **apiserver_flowcontrol_watch_count_samples**: histograms of number of watches relevant to a given mutating request, broken down by that request's priority_level and flow_schema.", + "markdown": "This PR adds the following metrics for API Priority and Fairness.\n - **apiserver_flowcontrol_priority_level_seat_count_samples**: histograms of seats occupied by executing requests (both regular and final-delay phases included), broken down by priority_level; the observations are taken once per millisecond.\n - **apiserver_flowcontrol_priority_level_seat_count_watermarks**: histograms of high and low watermarks of number of seats occupied by executing requests (both regular and final-delay phases included), broken down by priority_level.\n - **apiserver_flowcontrol_watch_count_samples**: histograms of number of watches relevant to a given mutating request, broken down by that request's priority_level and flow_schema. ([#105873](https://github.com/kubernetes/kubernetes/pull/105873), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery, Instrumentation and Testing]", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105873", + "pr_number": 105873, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "105885": { + "commit": "dcf0a031e9de1b9af338ddd57f365d63311f7816", + "text": "Move `ConfigurableFSGroupPolicy` to GA and rename metric `volume_fsgroup_recursive_apply` to `volume_apply_access_control`", + "markdown": "Move `ConfigurableFSGroupPolicy` to GA and rename metric `volume_fsgroup_recursive_apply` to `volume_apply_access_control` ([#105885](https://github.com/kubernetes/kubernetes/pull/105885), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105885", + "pr_number": 105885, + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "105888": { + "commit": "c9ddd248b6d58c4c973d507be07261b96ef0cfbc", + "text": "kubeadm: remove the deprecated / NO-OP phase `update-cluster-status` in `kubeadm reset`", + "markdown": "Kubeadm: remove the deprecated / NO-OP phase `update-cluster-status` in `kubeadm reset` ([#105888](https://github.com/kubernetes/kubernetes/pull/105888), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105888", + "pr_number": 105888, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "105896": { + "commit": "18cb34ebb2b64a7607057c7dea80427e2af387f3", + "text": "Support using negative array index in JSON patch replace operations.", + "markdown": "Support using negative array index in JSON patch replace operations. ([#105896](https://github.com/kubernetes/kubernetes/pull/105896), [@zqzten](https://github.com/zqzten))", + "author": "zqzten", + "author_url": "https://github.com/zqzten", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105896", + "pr_number": 105896, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "105898": { + "commit": "349758d65d5261a85bf3ac229bd40da44e4aa686", + "text": "Add Pod Security admission metrics: `pod_security_evaluations_total`, `pod_security_exemptions_total`, `pod_security_errors_total`", + "markdown": "Add Pod Security admission metrics: `pod_security_evaluations_total`, `pod_security_exemptions_total`, `pod_security_errors_total` ([#105898](https://github.com/kubernetes/kubernetes/pull/105898), [@tallclair](https://github.com/tallclair))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/2579-psp-replacement/README.md#monitoring", + "type": "KEP" + } + ], + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105898", + "pr_number": 105898, + "areas": [ + "test", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "105904": { + "commit": "a41d166a90aeb4fb67d791726daeac7272b69874", + "text": "Migrated `pkg/scheduler/framework/plugins/volumebinding/assume_cache.go` to structured logging.", + "markdown": "Migrated `pkg/scheduler/framework/plugins/volumebinding/assume_cache.go` to structured logging. ([#105904](https://github.com/kubernetes/kubernetes/pull/105904), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation, Scheduling and Storage]", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105904", + "pr_number": 105904, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "storage", + "instrumentation" + ], + "duplicate": true + }, + "105908": { + "commit": "ac2d872ed934f9fccb9f83499e652dc04d7802c9", + "text": "The Pods and Pod controllers that are exempted from the PodSecurity admission process are now marked with the `pod-security.kubernetes.io/exempt: user/namespace/runtimeClass` annotation, based on what caused the exemption.\n\nThe enforcement level that allowed or denied a Pod during PodSecurity admission is now marked by the `pod-security.kubernetes.io/enforce-policy` annotation.\n\nThe annotation that informs about audit policy violations changed from `pod-security.kubernetes.io/audit` to `pod-security.kubernetes.io/audit-violation`.", + "markdown": "The Pods and Pod controllers that are exempted from the PodSecurity admission process are now marked with the `pod-security.kubernetes.io/exempt: user/namespace/runtimeClass` annotation, based on what caused the exemption.\n \n The enforcement level that allowed or denied a Pod during PodSecurity admission is now marked by the `pod-security.kubernetes.io/enforce-policy` annotation.\n \n The annotation that informs about audit policy violations changed from `pod-security.kubernetes.io/audit` to `pod-security.kubernetes.io/audit-violation`. ([#105908](https://github.com/kubernetes/kubernetes/pull/105908), [@stlaz](https://github.com/stlaz))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/2579-psp-replacement/README.md", + "type": "KEP" + } + ], + "author": "stlaz", + "author_url": "https://github.com/stlaz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105908", + "pr_number": 105908, + "kinds": [ + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true + }, + "105913": { + "commit": "5aacb15a19510aa5e8a76ee195a927954c8f4781", + "text": "The `pods/binding` subresource now honors `metadata.uid` and `metadata.resourceVersion`", + "markdown": "The `pods/binding` subresource now honors `metadata.uid` and `metadata.resourceVersion` ([#105913](https://github.com/kubernetes/kubernetes/pull/105913), [@aholic](https://github.com/aholic))", + "author": "aholic", + "author_url": "https://github.com/aholic", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105913", + "pr_number": 105913, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "105915": { + "commit": "e30f9648cc6c60d043941e4c78fec1a1d3619ce3", + "text": "The `--leader-elect*` CLI args are now honored in scheduler.", + "markdown": "The `--leader-elect*` CLI args are now honored in scheduler. ([#105915](https://github.com/kubernetes/kubernetes/pull/105915), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105915", + "pr_number": 105915, + "kinds": [ + "regression" + ], + "sigs": [ + "scheduling" + ] + }, + "105916": { + "commit": "8f9dd0a14c55e8c92d65b8c152ca6eaf53aad02f", + "text": "Performs strict server side schema validation requests via the `fieldValidation=[Strict,Warn,Ignore]`.", + "markdown": "Performs strict server side schema validation requests via the `fieldValidation=[Strict,Warn,Ignore]`. ([#105916](https://github.com/kubernetes/kubernetes/pull/105916), [@kevindelgado](https://github.com/kevindelgado))", + "documentation": [ + { + "description": "[KEP-2885](", + "url": "https://github.com/kubernetes/enhancements/issues/2885)", + "type": "KEP" + } + ], + "author": "kevindelgado", + "author_url": "https://github.com/kevindelgado", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105916", + "pr_number": 105916, + "areas": [ + "test", + "kubelet", + "apiserver", + "provider/gcp", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "105931": { + "commit": "adff4a75ad99b5c2805fa8952368220dbbf44172", + "text": "Migrate `pkg/scheduler/framework/plugins/interpodaffinity/filtering.go`,`pkg/scheduler/framework/plugins/podtopologyspread/filtering.go`, `pkg/scheduler/framework/plugins/volumezone/volume_zone.go` to structured logging", + "markdown": "Migrate `pkg/scheduler/framework/plugins/interpodaffinity/filtering.go`,`pkg/scheduler/framework/plugins/podtopologyspread/filtering.go`, `pkg/scheduler/framework/plugins/volumezone/volume_zone.go` to structured logging ([#105931](https://github.com/kubernetes/kubernetes/pull/105931), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105931", + "pr_number": 105931, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "duplicate": true + }, + "105934": { + "commit": "6d9008b1b086008caed5a9d8ef150cca0abaefa9", + "text": "Fixed applying of SELinux labels to CSI volumes on very busy systems (with \"error checking for SELinux support: could not get consistent content of /proc/self/mountinfo after 3 attempts\")", + "markdown": "Fixed applying of SELinux labels to CSI volumes on very busy systems (with \"error checking for SELinux support: could not get consistent content of /proc/self/mountinfo after 3 attempts\") ([#105934](https://github.com/kubernetes/kubernetes/pull/105934), [@jsafrane](https://github.com/jsafrane)) [SIG Storage]", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105934", + "pr_number": 105934, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "105940": { + "commit": "2af34cf54d812a0aee930579e1241d978d89691e", + "text": "The `CSIVolumeFSGroupPolicy` feature has moved from beta to GA.", + "markdown": "The `CSIVolumeFSGroupPolicy` feature has moved from beta to GA. ([#105940](https://github.com/kubernetes/kubernetes/pull/105940), [@dobsonj](https://github.com/dobsonj))", + "author": "dobsonj", + "author_url": "https://github.com/dobsonj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105940", + "pr_number": 105940, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true, + "duplicate_kind": true + }, + "105941": { + "commit": "c2706035f2a18ba985060b10246dd09e952379e3", + "text": "Graduating `pending_pods`, `preemption_attempts_total`, `preemption_victims` and `schedule_attempts_total` metrics to stable. Also `e2e_scheduling_duration_seconds` is renamed to `scheduling_attempt_duration_seconds` and the latter is graduated to stable.", + "markdown": "Graduating `pending_pods`, `preemption_attempts_total`, `preemption_victims` and `schedule_attempts_total` metrics to stable. Also `e2e_scheduling_duration_seconds` is renamed to `scheduling_attempt_duration_seconds` and the latter is graduated to stable. ([#105941](https://github.com/kubernetes/kubernetes/pull/105941), [@rezakrimi](https://github.com/rezakrimi)) [SIG Instrumentation, Scheduling and Testing]", + "author": "rezakrimi", + "author_url": "https://github.com/rezakrimi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105941", + "pr_number": 105941, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "scheduling", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "105945": { + "commit": "f784891854ccb8d904a3f6d5da1e8e4fc940dcb2", + "text": "The `/openapi/v3` endpoint will be populated with OpenAPI v3 if the feature flag is enabled", + "markdown": "The `/openapi/v3` endpoint will be populated with OpenAPI v3 if the feature flag is enabled ([#105945](https://github.com/kubernetes/kubernetes/pull/105945), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105945", + "pr_number": 105945, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "105967": { + "commit": "6ac2d8edc8606ab387924b8b865b4a69630080e0", + "text": "Migrated `pkg/scheduler/framework/preemption/preemption.go`, `pkg/scheduler/framework/plugins/examples/stateful/stateful.go`, and `pkg/scheduler/framework/plugins/noderesources/resource_allocation.go` to structured logging", + "markdown": "Migrated `pkg/scheduler/framework/preemption/preemption.go`, `pkg/scheduler/framework/plugins/examples/stateful/stateful.go`, and `pkg/scheduler/framework/plugins/noderesources/resource_allocation.go` to structured logging ([#105967](https://github.com/kubernetes/kubernetes/pull/105967), [@shivanshu1333](https://github.com/shivanshu1333)) [SIG Instrumentation, Node and Scheduling]", + "author": "shivanshu1333", + "author_url": "https://github.com/shivanshu1333", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105967", + "pr_number": 105967, + "areas": [ + "kubelet", + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "node", + "instrumentation" + ], + "duplicate": true + }, + "105968": { + "commit": "8eda02ccbd2bfb8e1477b565ccc5405056138e69", + "text": "Migrated scheduler files `comparer.go`, `dumper.go`, `node_tree.go` to structured logging", + "markdown": "Migrated scheduler files `comparer.go`, `dumper.go`, `node_tree.go` to structured logging ([#105968](https://github.com/kubernetes/kubernetes/pull/105968), [@shivanshu1333](https://github.com/shivanshu1333)) [SIG Instrumentation and Scheduling]", + "author": "shivanshu1333", + "author_url": "https://github.com/shivanshu1333", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105968", + "pr_number": 105968, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "duplicate": true + }, + "105969": { + "commit": "927914dec7d273fc53025e15a4bd3691d0e671d3", + "text": "Migrated scheduler file `cache.go` to structured logging", + "markdown": "Migrated scheduler file `cache.go` to structured logging ([#105969](https://github.com/kubernetes/kubernetes/pull/105969), [@shivanshu1333](https://github.com/shivanshu1333)) [SIG Instrumentation and Scheduling]", + "author": "shivanshu1333", + "author_url": "https://github.com/shivanshu1333", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105969", + "pr_number": 105969, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "duplicate": true + }, + "105980": { + "commit": "36e69a33030c16e19b5d7edba9f755cae917d09d", + "text": "Pod template annotations and labels are now mutable for Jobs that are suspended and have never been started", + "markdown": "Pod template annotations and labels are now mutable for Jobs that are suspended and have never been started ([#105980](https://github.com/kubernetes/kubernetes/pull/105980), [@ahg-g](https://github.com/ahg-g))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/2926-job-mutable-scheduling-directives", + "type": "KEP" + } + ], + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105980", + "pr_number": 105980, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "105992": { + "commit": "35f9bcabf1ea3d520c4cfe2b18fa0a0b3ab9a4ed", + "text": "kubeadm: fix a bug on Windows worker nodes, where the downloaded KubeletConfiguration from the cluster can contain Linux paths that do not work on Windows and can trip the kubelet binary.", + "markdown": "Kubeadm: fix a bug on Windows worker nodes, where the downloaded KubeletConfiguration from the cluster can contain Linux paths that do not work on Windows and can trip the kubelet binary. ([#105992](https://github.com/kubernetes/kubernetes/pull/105992), [@hwdef](https://github.com/hwdef)) [SIG Cluster Lifecycle and Windows]", + "author": "hwdef", + "author_url": "https://github.com/hwdef", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105992", + "pr_number": 105992, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle", + "windows" + ], + "duplicate": true + }, + "105997": { + "commit": "4dfd73940396730caf331e35cbb28235d233f2a0", + "text": "EndpointSlice Mirroring controller now cleans up managed EndpointSlices when a Service selector is added", + "markdown": "EndpointSlice Mirroring controller now cleans up managed EndpointSlices when a Service selector is added ([#105997](https://github.com/kubernetes/kubernetes/pull/105997), [@robscott](https://github.com/robscott)) [SIG Apps, Network and Testing]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105997", + "pr_number": 105997, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps", + "testing" + ], + "duplicate": true + }, + "105999": { + "commit": "324eff5b75750e2c7302a2dcd25096928a850e8e", + "text": "Support to enable Hyper-V in GCE Windows Nodes created with `kube-up`", + "markdown": "Support to enable Hyper-V in GCE Windows Nodes created with `kube-up` ([#105999](https://github.com/kubernetes/kubernetes/pull/105999), [@mauriciopoppe](https://github.com/mauriciopoppe))", + "author": "mauriciopoppe", + "author_url": "https://github.com/mauriciopoppe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105999", + "pr_number": 105999, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "windows", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "106017": { + "commit": "e48cb8adb01cf07471f72fef24c66ce2724b92f4", + "text": "(PodSecurity admission) errors validating workload resources (deployment, replicaset, etc.) no longer block admission.", + "markdown": "(PodSecurity admission) errors validating workload resources (deployment, replicaset, etc.) no longer block admission. ([#106017](https://github.com/kubernetes/kubernetes/pull/106017), [@tallclair](https://github.com/tallclair)) [SIG Auth]", + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106017", + "pr_number": 106017, + "kinds": [ + "bug" + ], + "sigs": [ + "auth" + ] + }, + "106030": { + "commit": "cb040e50973c908d063d5dc73794c236dbe1c767", + "text": "The kube-proxy sync_proxy_rules_iptables_total metric now gives\nthe correct number of rules, rather than being off by one.\n\nFixed multiple iptables proxy regressions introduced in 1.22:\n\n - When using Services with SessionAffinity, client affinity for an\n endpoint now gets broken when that endpoint becomes non-ready\n (rather than continuing until the endpoint is fully deleted).\n\n - Traffic to a service IP now starts getting rejected (as opposed to\n merely dropped) as soon as there are no longer any *usable*\n endpoints, rather than waiting until all of the terminating\n endpoints have terminated even when those terminating endpoints\n were not being used.\n\n - Chains for endpoints that won't be used are no longer output to\n iptables, saving a bit of memory/time/cpu.", + "markdown": "The kube-proxy sync_proxy_rules_iptables_total metric now gives\n the correct number of rules, rather than being off by one.\n \n Fixed multiple iptables proxy regressions introduced in 1.22:\n \n - When using Services with SessionAffinity, client affinity for an\n endpoint now gets broken when that endpoint becomes non-ready\n (rather than continuing until the endpoint is fully deleted).\n \n - Traffic to a service IP now starts getting rejected (as opposed to\n merely dropped) as soon as there are no longer any *usable*\n endpoints, rather than waiting until all of the terminating\n endpoints have terminated even when those terminating endpoints\n were not being used.\n \n - Chains for endpoints that won't be used are no longer output to\n iptables, saving a bit of memory/time/cpu. ([#106030](https://github.com/kubernetes/kubernetes/pull/106030), [@danwinship](https://github.com/danwinship)) [SIG Network]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106030", + "pr_number": 106030, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "106045": { + "commit": "d67cbcb8df15ba28a058f37fe6fa128276a63025", + "text": "fatal error: concurrent map writes\n\ngoroutine 10670 [running]:\nruntime.throw({0x5648d2156ef9, 0xc010a4a4e0})\n runtime/panic.go:1198 +0x71 fp=0xc00a472f20 sp=0xc00a472ef0 pc=0x5648cf1e3371\nruntime.mapassign_faststr(0x5648d2e8ac00, 0x65, {0xc0077382c0, 0x31})\n runtime/map_faststr.go:211 +0x39c fp=0xc00a472f88 sp=0xc00a472f20 pc=0x5648cf1c0a1c\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/audit.LogAnnotation(0xc006f943c0, {0xc0077382c0, 0x31}, {0xc0154fe150, 0x65})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/audit/request.go:235 +0x325 fp=0xc00a473040 sp=0xc00a472f88 pc=0x5648d0066dc5\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.auditHandler.logAnnotations({{0x5648d36ed3a0, 0xc000e044e0}, 0xc006f943c0}, {0x5648d3880100, 0xc00ab29560})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/audit.go:94 +0x1c5 fp=0xc00a4730e8 sp=0xc00a473040 pc=0x5648d006de85\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.auditHandler.Admit({{0x5648d36ed3a0, 0xc000e044e0}, 0xc006f943c0}, {0x5648d37d2fb8, 0xc007a415f0}, {0x5648d3880100, 0xc00ab29560}, {0x5648d380ea78, 0xc003724ea0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/audit.go:58 +0x13c fp=0xc00a473158 sp=0xc00a4730e8 pc=0x5648d006d97c\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.(*auditHandler).Admit(0xc00e871db8, {0x5648d37d2fb8, 0xc007a415f0}, {0x5648d3880100, 0xc00ab29560}, {0x5648d380ea78, 0xc003724ea0})\n \u003cautogenerated\u003e:1 +0x85 fp=0xc00a4731b0 sp=0xc00a473158 pc=0x5648d0071785\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/rest.AdmissionToValidateObjectDeleteFunc.func1({0x5648d37d2fb8, 0xc007a415f0}, {0x5648d37b3b00, 0xc00b4cb8c0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/rest/delete.go:172 +0x611 fp=0xc00a4733e0 sp=0xc00a4731b0 pc=0x5648d024f211\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).updateForGracefulDeletionAndFinalizers.func1({0x5648d37b3b00, 0xc00b4cb8c0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:819 +0xbb fp=0xc00a4734b8 sp=0xc00a4733e0 pc=0x5648d04f6cfb\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage.SimpleUpdate.func1({0x5648d37b3b00, 0xc00b4cb8c0}, {0xc0101782e0, 0xc012d285a0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/util.go:33 +0x27 fp=0xc00a4734d8 sp=0xc00a4734b8 pc=0x5648d0246d07\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3.(*store).updateState(0xc0028c27e0, 0xc0101782e0, 0x20)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3/store.go:853 +0x3e fp=0xc00a473538 sp=0xc00a4734d8 pc=0x5648d033ddfe\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3.(*store).GuaranteedUpdate(0xc0028c27e0, {0x5648d37d2fb8, 0xc007a415f0}, {0xc011a36ee8, 0x17}, {0x5648d37b3b00, 0xc00b46f8c0}, 0x0, 0x1, 0xc00a2bd860, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3/store.go:296 +0x5c7 fp=0xc00a473b50 sp=0xc00a473538 pc=0x5648d0338687\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/cacher.(*Cacher).GuaranteedUpdate(0xc0028e8000, {0x5648d37d2fb8, 0xc007a415f0}, {0xc011a36ee8, 0x17}, {0x5648d37b3b00, 0xc00b46f8c0}, 0x85, 0x5648d34fb820, 0xc00a2bd860, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/cacher/cacher.go:743 +0x1d3 fp=0xc00a473bf8 sp=0xc00a473b50 pc=0x5648d04e4553\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*DryRunnableStorage).GuaranteedUpdate(0x1e, {0x5648d37d2fb8, 0xc007a415f0}, {0xc011a36ee8, 0x0}, {0x5648d37b3b00, 0xc00b46f8c0}, 0x0, 0x0, 0xc00a2bd860, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/dryrun.go:101 +0x1da fp=0xc00a473c78 sp=0xc00a473bf8 pc=0x5648d04f247a\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).updateForGracefulDeletionAndFinalizers(0xc0015de480, {0x5648d37d2fb8, 0xc007a415f0}, {0xc0098fdf10, 0xe}, {0xc011a36ee8, 0x17}, 0xc00333f2c0, {0x0, 0x0}, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:812 +0x2cf fp=0xc00a473d40 sp=0xc00a473c78 pc=0x5648d04f698f\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).Delete(0xc0015de480, {0x5648d37d2fb8, 0xc007a415f0}, {0xc0098fdf10, 0xe}, 0x5648cf6a8adb, 0xc00333f2c0)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:936 +0x3b3 fp=0xc00a473e90 sp=0xc00a473d40 pc=0x5648d04f73d3\nk8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).DeleteCollection.func2()\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:1058 +0x205 fp=0xc00a473fe0 sp=0xc00a473e90 pc=0x5648d04f80a5\nruntime.goexit()\n runtime/asm_amd64.s:1581 +0x1 fp=0xc00a473fe8 sp=0xc00a473fe0 pc=0x5648cf2169a1\ncreated by k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).DeleteCollection\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:1045 +0x2df", + "markdown": "Fatal error: concurrent map writes\n \n goroutine 10670 [running]:\n runtime.throw({0x5648d2156ef9, 0xc010a4a4e0})\n runtime/panic.go:1198 +0x71 fp=0xc00a472f20 sp=0xc00a472ef0 pc=0x5648cf1e3371\n runtime.mapassign_faststr(0x5648d2e8ac00, 0x65, {0xc0077382c0, 0x31})\n runtime/map_faststr.go:211 +0x39c fp=0xc00a472f88 sp=0xc00a472f20 pc=0x5648cf1c0a1c\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/audit.LogAnnotation(0xc006f943c0, {0xc0077382c0, 0x31}, {0xc0154fe150, 0x65})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/audit/request.go:235 +0x325 fp=0xc00a473040 sp=0xc00a472f88 pc=0x5648d0066dc5\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.auditHandler.logAnnotations({{0x5648d36ed3a0, 0xc000e044e0}, 0xc006f943c0}, {0x5648d3880100, 0xc00ab29560})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/audit.go:94 +0x1c5 fp=0xc00a4730e8 sp=0xc00a473040 pc=0x5648d006de85\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.auditHandler.Admit({{0x5648d36ed3a0, 0xc000e044e0}, 0xc006f943c0}, {0x5648d37d2fb8, 0xc007a415f0}, {0x5648d3880100, 0xc00ab29560}, {0x5648d380ea78, 0xc003724ea0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission/audit.go:58 +0x13c fp=0xc00a473158 sp=0xc00a4730e8 pc=0x5648d006d97c\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/admission.(*auditHandler).Admit(0xc00e871db8, {0x5648d37d2fb8, 0xc007a415f0}, {0x5648d3880100, 0xc00ab29560}, {0x5648d380ea78, 0xc003724ea0})\n \u003cautogenerated\u003e:1 +0x85 fp=0xc00a4731b0 sp=0xc00a473158 pc=0x5648d0071785\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/rest.AdmissionToValidateObjectDeleteFunc.func1({0x5648d37d2fb8, 0xc007a415f0}, {0x5648d37b3b00, 0xc00b4cb8c0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/rest/delete.go:172 +0x611 fp=0xc00a4733e0 sp=0xc00a4731b0 pc=0x5648d024f211\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).updateForGracefulDeletionAndFinalizers.func1({0x5648d37b3b00, 0xc00b4cb8c0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:819 +0xbb fp=0xc00a4734b8 sp=0xc00a4733e0 pc=0x5648d04f6cfb\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage.SimpleUpdate.func1({0x5648d37b3b00, 0xc00b4cb8c0}, {0xc0101782e0, 0xc012d285a0})\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/util.go:33 +0x27 fp=0xc00a4734d8 sp=0xc00a4734b8 pc=0x5648d0246d07\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3.(*store).updateState(0xc0028c27e0, 0xc0101782e0, 0x20)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3/store.go:853 +0x3e fp=0xc00a473538 sp=0xc00a4734d8 pc=0x5648d033ddfe\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3.(*store).GuaranteedUpdate(0xc0028c27e0, {0x5648d37d2fb8, 0xc007a415f0}, {0xc011a36ee8, 0x17}, {0x5648d37b3b00, 0xc00b46f8c0}, 0x0, 0x1, 0xc00a2bd860, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd3/store.go:296 +0x5c7 fp=0xc00a473b50 sp=0xc00a473538 pc=0x5648d0338687\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/cacher.(*Cacher).GuaranteedUpdate(0xc0028e8000, {0x5648d37d2fb8, 0xc007a415f0}, {0xc011a36ee8, 0x17}, {0x5648d37b3b00, 0xc00b46f8c0}, 0x85, 0x5648d34fb820, 0xc00a2bd860, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/cacher/cacher.go:743 +0x1d3 fp=0xc00a473bf8 sp=0xc00a473b50 pc=0x5648d04e4553\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*DryRunnableStorage).GuaranteedUpdate(0x1e, {0x5648d37d2fb8, 0xc007a415f0}, {0xc011a36ee8, 0x0}, {0x5648d37b3b00, 0xc00b46f8c0}, 0x0, 0x0, 0xc00a2bd860, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/dryrun.go:101 +0x1da fp=0xc00a473c78 sp=0xc00a473bf8 pc=0x5648d04f247a\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).updateForGracefulDeletionAndFinalizers(0xc0015de480, {0x5648d37d2fb8, 0xc007a415f0}, {0xc0098fdf10, 0xe}, {0xc011a36ee8, 0x17}, 0xc00333f2c0, {0x0, 0x0}, ...)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:812 +0x2cf fp=0xc00a473d40 sp=0xc00a473c78 pc=0x5648d04f698f\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).Delete(0xc0015de480, {0x5648d37d2fb8, 0xc007a415f0}, {0xc0098fdf10, 0xe}, 0x5648cf6a8adb, 0xc00333f2c0)\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:936 +0x3b3 fp=0xc00a473e90 sp=0xc00a473d40 pc=0x5648d04f73d3\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).DeleteCollection.func2()\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:1058 +0x205 fp=0xc00a473fe0 sp=0xc00a473e90 pc=0x5648d04f80a5\n runtime.goexit()\n runtime/asm_amd64.s:1581 +0x1 fp=0xc00a473fe8 sp=0xc00a473fe0 pc=0x5648cf2169a1\n created by k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry.(*Store).DeleteCollection\n k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/registry/generic/registry/store.go:1045 +0x2df ([#106045](https://github.com/kubernetes/kubernetes/pull/106045), [@chenlinx17](https://github.com/chenlinx17)) [SIG API Machinery]", + "author": "chenlinx17", + "author_url": "https://github.com/chenlinx17", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106045", + "pr_number": 106045, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "106051": { + "commit": "c84da4e3e61e08b1bd23c562a86504278eacee9b", + "text": "Validation rules for Custom Resource Definitions can be written in the [CEL expression language](https://github.com/google/cel-spec) using the `x-kubernetes-validations` extension in OpenAPIv3 schemas (alpha). This is gated by the alpha \"CustomResourceValidationExpressions\" feature gate.", + "markdown": "Validation rules for Custom Resource Definitions can be written in the [CEL expression language](https://github.com/google/cel-spec) using the `x-kubernetes-validations` extension in OpenAPIv3 schemas (alpha). This is gated by the alpha \"CustomResourceValidationExpressions\" feature gate. ([#106051](https://github.com/kubernetes/kubernetes/pull/106051), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Storage and Testing]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106051", + "pr_number": 106051, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "106058": { + "commit": "d3ef2e393b6457b8f4bc407ca01497c51ebe9471", + "text": "Moving `WindowsHostProcessContainers` feature to beta", + "markdown": "Moving `WindowsHostProcessContainers` feature to beta ([#106058](https://github.com/kubernetes/kubernetes/pull/106058), [@marosset](https://github.com/marosset))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/1981-windows-privileged-container-support", + "type": "KEP" + } + ], + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106058", + "pr_number": 106058, + "kinds": [ + "feature" + ], + "sigs": [ + "windows" + ], + "feature": true + }, + "106089": { + "commit": "9af2ece18abc3188aa280cb1f1c35a8a4cb791c3", + "text": "The `PodSecurity `admission plugin has graduated to `beta` and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1beta1`. See https://kubernetes.io/docs/concepts/security/pod-security-admission/ for usage guidelines.", + "markdown": "The `PodSecurity `admission plugin has graduated to `beta` and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1beta1`. See https://kubernetes.io/docs/concepts/security/pod-security-admission/ for usage guidelines. ([#106089](https://github.com/kubernetes/kubernetes/pull/106089), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106089", + "pr_number": 106089, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "106090": { + "commit": "dc93951ad0049883a10229641c5cf48e59869482", + "text": "In kubelet, log verbosity and flush frequency can also be configured via the configuration file and not just via command line flags. In other commands (kube-apiserver, kube-controller-manager), the flags are listed in the \"Logs flags\" group and not under \"Global\" or \"Misc\". The type for `-vmodule` was made a bit more descriptive (`pattern=N,...` instead of `moduleSpec`).", + "markdown": "In kubelet, log verbosity and flush frequency can also be configured via the configuration file and not just via command line flags. In other commands (kube-apiserver, kube-controller-manager), the flags are listed in the \"Logs flags\" group and not under \"Global\" or \"Misc\". The type for `-vmodule` was made a bit more descriptive (`pattern=N,...` instead of `moduleSpec`). ([#106090](https://github.com/kubernetes/kubernetes/pull/106090), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, CLI, Cluster Lifecycle, Instrumentation, Node and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2845", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106090", + "pr_number": 106090, + "areas": [ + "kubelet", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "cluster-lifecycle", + "cli", + "instrumentation", + "architecture" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "106091": { + "commit": "da707b6133ff0c66dc4d24295374e7e5de8852f5", + "text": "kube-up now includes CoreDNS version v1.8.6", + "markdown": "Kube-up now includes CoreDNS version v1.8.6 ([#106091](https://github.com/kubernetes/kubernetes/pull/106091), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cloud Provider]", + "author": "rajansandeep", + "author_url": "https://github.com/rajansandeep", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106091", + "pr_number": 106091, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "106098": { + "commit": "400ec74080238130817f6b83ee2c16ffa80dca9c", + "text": "Changed feature `CSIMigrationAWS` to on by default. This feature requires the AWS EBS CSI driver to be installed.", + "markdown": "Changed feature `CSIMigrationAWS` to on by default. This feature requires the AWS EBS CSI driver to be installed. ([#106098](https://github.com/kubernetes/kubernetes/pull/106098), [@wongma7](https://github.com/wongma7))", + "author": "wongma7", + "author_url": "https://github.com/wongma7", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106098", + "pr_number": 106098, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true + }, + "106102": { + "commit": "d92a443ca7867e0d2c1047b0502a7da42f1ac5e7", + "text": "Ensure Pods are removed from the scheduler cache when the scheduler misses deletion events due to transient errors", + "markdown": "Ensure Pods are removed from the scheduler cache when the scheduler misses deletion events due to transient errors ([#106102](https://github.com/kubernetes/kubernetes/pull/106102), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling]", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106102", + "pr_number": 106102, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "106122": { + "commit": "ae550b62da15ca5fe4983c79aaa6b2a39e3e711a", + "text": "Graduating `controller_admission_duration_seconds`, `step_admission_duration_seconds`, `webhook_admission_duration_seconds`, `apiserver_current_inflight_requests` and `apiserver_response_sizes` metrics to stable.", + "markdown": "Graduating `controller_admission_duration_seconds`, `step_admission_duration_seconds`, `webhook_admission_duration_seconds`, `apiserver_current_inflight_requests` and `apiserver_response_sizes` metrics to stable. ([#106122](https://github.com/kubernetes/kubernetes/pull/106122), [@rezakrimi](https://github.com/rezakrimi)) [SIG API Machinery, Instrumentation and Testing]", + "author": "rezakrimi", + "author_url": "https://github.com/rezakrimi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106122", + "pr_number": 106122, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "106123": { + "commit": "da73a24f6a5a03a9a35061ee21ec353eb31176a0", + "text": "[kube-log-runner](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/component-base/logs/kube-log-runner) is included in release tar balls. It can be used to replace the deprecated `--log-file` parameter.", + "markdown": "[kube-log-runner](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/component-base/logs/kube-log-runner) is included in release tar balls. It can be used to replace the deprecated `--log-file` parameter. ([#106123](https://github.com/kubernetes/kubernetes/pull/106123), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Cloud Provider, Cluster Lifecycle and Instrumentation]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2845", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106123", + "pr_number": 106123, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "instrumentation", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "106126": { + "commit": "ed42bbd722a14640f8b5315a521745e7526ff31b", + "text": "Remove deprecated and not supported old cronjob controller.", + "markdown": "Remove deprecated and not supported old cronjob controller. ([#106126](https://github.com/kubernetes/kubernetes/pull/106126), [@soltysh](https://github.com/soltysh)) [SIG Apps]", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106126", + "pr_number": 106126, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ] + }, + "106146": { + "commit": "f1b000db7cd4129ddab5dc58cb46dae30d446b03", + "text": "Log messages in JSON format are written to stderr by default now (same as text format) instead of stdout. Users who expected JSON output on stdout must now capture stderr instead or in addition to stdout.", + "markdown": "Log messages in JSON format are written to stderr by default now (same as text format) instead of stdout. Users who expected JSON output on stdout must now capture stderr instead or in addition to stdout. ([#106146](https://github.com/kubernetes/kubernetes/pull/106146), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Cluster Lifecycle and Instrumentation]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106146", + "pr_number": 106146, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "instrumentation", + "architecture" + ], + "duplicate": true, + "action_required": true + }, + "106150": { + "commit": "aa964e097c8d6f083d4807c3e36404f96cb57a27", + "text": "kubemark is now built as a portable, static binary.", + "markdown": "Kubemark is now built as a portable, static binary. ([#106150](https://github.com/kubernetes/kubernetes/pull/106150), [@pohly](https://github.com/pohly)) [SIG Scalability and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/2845", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106150", + "pr_number": 106150, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scalability", + "testing" + ], + "duplicate": true + }, + "106154": { + "commit": "f151a40d8d8ac92b0b49fbdf3a9d3a1f8b3282bb", + "text": "Implement support for recovering from volume expansion failures", + "markdown": "Implement support for recovering from volume expansion failures ([#106154](https://github.com/kubernetes/kubernetes/pull/106154), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Apps and Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106154", + "pr_number": 106154, + "kinds": [ + "api-change" + ], + "sigs": [ + "storage", + "api-machinery", + "apps" + ], + "duplicate": true + }, + "106163": { + "commit": "0940dd6fc4ecf764564cd48fe2635169fd31abdd", + "text": "fix kube-proxy regression on UDP services because the logic to detect stale connections was not considering if the endpoint was ready.", + "markdown": "Fix kube-proxy regression on UDP services because the logic to detect stale connections was not considering if the endpoint was ready. ([#106163](https://github.com/kubernetes/kubernetes/pull/106163), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Contributor Experience, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106163", + "pr_number": 106163, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "conformance", + "code-generation", + "ipvs", + "e2e-test-framework", + "dependency", + "network-policy" + ], + "kinds": [ + "bug", + "api-change", + "regression" + ], + "sigs": [ + "network", + "scalability", + "scheduling", + "storage", + "node", + "api-machinery", + "autoscaling", + "contributor-experience", + "auth", + "apps", + "windows", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "106169": { + "commit": "d9f06f9e1807c804678fe201640ccc2a820d1efb", + "text": "When using `RequestedToCapacityRatio` ScoringStrategy, empty shape will cause error.", + "markdown": "When using `RequestedToCapacityRatio` ScoringStrategy, empty shape will cause error. ([#106169](https://github.com/kubernetes/kubernetes/pull/106169), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling]", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106169", + "pr_number": 106169, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "106172": { + "commit": "2ee2b8cab0772e1d1ff0075a95609aa4a41a9d4c", + "text": "kubectl: deprecated command line flags (like several of the klog flags) now have a `DEPRECATED: \u003cexplanation\u003e` comment.", + "markdown": "Kubectl: deprecated command line flags (like several of the klog flags) now have a `DEPRECATED: \u003cexplanation\u003e` comment. ([#106172](https://github.com/kubernetes/kubernetes/pull/106172), [@pohly](https://github.com/pohly)) [SIG CLI]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2845", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106172", + "pr_number": 106172, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "106190": { + "commit": "0abc0549335455f7fb97239e87bca79e48aa1027", + "text": "Integration testing now takes periodic Prometheus scrapes from the etcd server.\nThere is a new script ,`hack/run-prometheus-on-etcd-scrapes.sh`, that runs a containerized Prometheus server against an archive of such scrapes.", + "markdown": "Integration testing now takes periodic Prometheus scrapes from the etcd server.\n There is a new script ,`hack/run-prometheus-on-etcd-scrapes.sh`, that runs a containerized Prometheus server against an archive of such scrapes. ([#106190](https://github.com/kubernetes/kubernetes/pull/106190), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery and Testing]", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106190", + "pr_number": 106190, + "kinds": [ + "flake", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "106195": { + "commit": "ffe0d03e2c18a7b2e3b02e64d2d24bbd2923e1c1", + "text": "Fixed a bug which could cause webhooks to have an incorrect copy of the old object after an Apply or Update", + "markdown": "Fixed a bug which could cause webhooks to have an incorrect copy of the old object after an Apply or Update ([#106195](https://github.com/kubernetes/kubernetes/pull/106195), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery]", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106195", + "pr_number": 106195, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "106201": { + "commit": "39af75af30d9faa812c30eee148dfaa84287f6d0", + "text": "Enhanced event messages for pod failed for exec probe timeout", + "markdown": "Enhanced event messages for pod failed for exec probe timeout ([#106201](https://github.com/kubernetes/kubernetes/pull/106201), [@yxxhero](https://github.com/yxxhero)) [SIG Node]", + "author": "yxxhero", + "author_url": "https://github.com/yxxhero", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106201", + "pr_number": 106201, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "106209": { + "commit": "0c6f1b4e2ac06da94e904e86ad5dcef81b0f8ed0", + "text": "Kubernetes is now built with Golang 1.17.3", + "markdown": "Kubernetes is now built with Golang 1.17.3 ([#106209](https://github.com/kubernetes/kubernetes/pull/106209), [@cpanato](https://github.com/cpanato)) [SIG API Machinery, Cloud Provider, Instrumentation, Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106209", + "pr_number": 106209, + "areas": [ + "test", + "security", + "provider/gcp", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing", + "release", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "106219": { + "commit": "824ad80bf33db291a5127c41985f94f04371f662", + "text": "The `kubectl describe namespace` now shows Conditions", + "markdown": "The `kubectl describe namespace` now shows Conditions ([#106219](https://github.com/kubernetes/kubernetes/pull/106219), [@dlipovetsky](https://github.com/dlipovetsky))", + "author": "dlipovetsky", + "author_url": "https://github.com/dlipovetsky", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106219", + "pr_number": 106219, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "106228": { + "commit": "398e028d61d2adc26aef8d41239fc63a37538ffa", + "text": "Fixed the issue where logging output of kube-scheduler configuration files included line breaks and escape characters. The output also attempted to output the configuration file in one section without showing the user a more readable format.", + "markdown": "Fixed the issue where logging output of kube-scheduler configuration files included line breaks and escape characters. The output also attempted to output the configuration file in one section without showing the user a more readable format. ([#106228](https://github.com/kubernetes/kubernetes/pull/106228), [@sanchayanghosh](https://github.com/sanchayanghosh)) [SIG Scheduling]", + "author": "sanchayanghosh", + "author_url": "https://github.com/sanchayanghosh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106228", + "pr_number": 106228, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "106266": { + "commit": "c9a245fa485afc462d5052f69b63e1e93957e414", + "text": "Graduating `pod_scheduling_duration_seconds`, `pod_scheduling_attempts`, `framework_extension_point_duration_seconds`, `plugin_execution_duration_seconds` and `queue_incoming_pods_total` metrics to stable.", + "markdown": "Graduating `pod_scheduling_duration_seconds`, `pod_scheduling_attempts`, `framework_extension_point_duration_seconds`, `plugin_execution_duration_seconds` and `queue_incoming_pods_total` metrics to stable. ([#106266](https://github.com/kubernetes/kubernetes/pull/106266), [@ahg-g](https://github.com/ahg-g)) [SIG Instrumentation, Scheduling and Testing]", + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106266", + "pr_number": 106266, + "areas": [ + "test" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "scheduling", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "106271": { + "commit": "2a5de1ac893d9e44e4238760052c376b5d192eec", + "text": "The `DownwardAPIHugePages` feature is now enabled by default.", + "markdown": "The `DownwardAPIHugePages` feature is now enabled by default. ([#106271](https://github.com/kubernetes/kubernetes/pull/106271), [@mysunshine92](https://github.com/mysunshine92))", + "author": "mysunshine92", + "author_url": "https://github.com/mysunshine92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106271", + "pr_number": 106271, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "106289": { + "commit": "42d8b2f3b9e19462011b3cf70ffd189dd0f59313", + "text": "make test KUBE_RACE=-race KUBE_TIMEOUT=--timeout=600s GOFLAGS=-count=10 WHAT=./staging/src/k8s.io/component-base/metrics/testutil\n\nmake test KUBE_RACE=-race KUBE_TIMEOUT=--timeout=600s GOFLAGS=-count=10 WHAT=./pkg/kubelet/kuberuntime/", + "markdown": "Make test KUBE_RACE=-race KUBE_TIMEOUT=--timeout=600s GOFLAGS=-count=10 WHAT=./staging/src/k8s.io/component-base/metrics/testutil\n \n make test KUBE_RACE=-race KUBE_TIMEOUT=--timeout=600s GOFLAGS=-count=10 WHAT=./pkg/kubelet/kuberuntime/ ([#106289](https://github.com/kubernetes/kubernetes/pull/106289), [@CatherineF-dev](https://github.com/CatherineF-dev)) [SIG Instrumentation and Node]", + "author": "CatherineF-dev", + "author_url": "https://github.com/CatherineF-dev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106289", + "pr_number": 106289, + "areas": [ + "kubelet" + ], + "kinds": [ + "failing-test" + ], + "sigs": [ + "node", + "instrumentation" + ], + "duplicate": true, + "do_not_publish": true + }, + "106301": { + "commit": "fb3df2e73c22bb0c167075ee714516db9f8922c1", + "text": "The kube-proxy image contains `/go-runner` as a replacement for deprecated klog flags.", + "markdown": "The kube-proxy image contains `/go-runner` as a replacement for deprecated klog flags. ([#106301](https://github.com/kubernetes/kubernetes/pull/106301), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2845", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106301", + "pr_number": 106301, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ] + }, + "106306": { + "commit": "b817efb0424f030f0e0a8946076f088fdcc9af28", + "text": "Changed buckets in apiserver_request_duration_seconds metric from [0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0,1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60] to [0.05, 0.1, 0.2, 0.4, 0.6, 0.8, 1.0, 1.25, 1.5, 2, 3, 4, 5, 6, 8, 10, 15, 20, 30, 45, 60]", + "markdown": "Changed buckets in apiserver_request_duration_seconds metric from [0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0,1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60] to [0.05, 0.1, 0.2, 0.4, 0.6, 0.8, 1.0, 1.25, 1.5, 2, 3, 4, 5, 6, 8, 10, 15, 20, 30, 45, 60] ([#106306](https://github.com/kubernetes/kubernetes/pull/106306), [@pawbana](https://github.com/pawbana)) [SIG API Machinery, Instrumentation and Testing]", + "author": "pawbana", + "author_url": "https://github.com/pawbana", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106306", + "pr_number": 106306, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "106317": { + "commit": "ad99a592f7399ba8b5a1676e11cbed4598806716", + "text": "Fixed a panic in `kubectl` when creating secrets with an improper output type", + "markdown": "Fixed a panic in `kubectl` when creating secrets with an improper output type ([#106317](https://github.com/kubernetes/kubernetes/pull/106317), [@lauchokyip](https://github.com/lauchokyip))", + "author": "lauchokyip", + "author_url": "https://github.com/lauchokyip", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106317", + "pr_number": 106317, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "106323": { + "commit": "3f0a634ef78b6df33075e54b0f89e465e88049c4", + "text": "update the system-validators library to v1.6.0", + "markdown": "Update the system-validators library to v1.6.0 ([#106323](https://github.com/kubernetes/kubernetes/pull/106323), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106323", + "pr_number": 106323, + "areas": [ + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "cluster-lifecycle" + ], + "feature": true, + "duplicate": true + }, + "106330": { + "commit": "8260340c61d2ad6887c9ef6882ef621083b8ae0e", + "text": "(beta feature) If the CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate applying FSGroup to the driver by passing it to NodeStageVolume and NodePublishVolume, regardless of what other FSGroup policies are set.", + "markdown": "(beta feature) If the CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate applying FSGroup to the driver by passing it to NodeStageVolume and NodePublishVolume, regardless of what other FSGroup policies are set. ([#106330](https://github.com/kubernetes/kubernetes/pull/106330), [@verult](https://github.com/verult)) [SIG Storage]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/1a4f862a4bba0ca796b097a87a661e4f1c736fb2/keps/sig-storage/2317-fsgroup-on-mount/README.md", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://github.com/kubernetes/website/blob/53f76125525d82cf679acc41cb464d244dbf00f0/content/en/docs/tasks/configure-pod-container/security-context.md?plain=1#L187", + "type": "external" + } + ], + "author": "verult", + "author_url": "https://github.com/verult", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106330", + "pr_number": 106330, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true + }, + "106382": { + "commit": "6c04f874705aa786e9450971e718d53e3072776f", + "text": "kubelet: fixes a file descriptor leak in log rotation", + "markdown": "Kubelet: fixes a file descriptor leak in log rotation ([#106382](https://github.com/kubernetes/kubernetes/pull/106382), [@rphillips](https://github.com/rphillips)) [SIG Node]", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106382", + "pr_number": 106382, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "106389": { + "commit": "79fed540aa6b9579bc23f5f92707f9f61a8b1759", + "text": "Upgrades functionality of `kubectl kustomize` as described at\nhttps://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.4.1", + "markdown": "Upgrades functionality of `kubectl kustomize` as described at\n https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.4.1 ([#106389](https://github.com/kubernetes/kubernetes/pull/106389), [@natasha41575](https://github.com/natasha41575)) [SIG CLI]", + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106389", + "pr_number": 106389, + "areas": [ + "kubectl", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "106433": { + "commit": "bd8e8507093095bbe411fd501ea5971f5b077b3b", + "text": "Topology Aware Hints have graduated to beta.", + "markdown": "Topology Aware Hints have graduated to beta. ([#106433](https://github.com/kubernetes/kubernetes/pull/106433), [@robscott](https://github.com/robscott)) [SIG Network]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106433", + "pr_number": 106433, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "106455": { + "commit": "39c76ba2edeadb84a115cc3fbd9204a2177f1c28", + "text": "Users should not rely on unsupported CRON_TZ variable when specifying schedule, both the API server and cronjob controller will emit warnings pointing to https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/ containing explanation", + "markdown": "Users should not rely on unsupported CRON_TZ variable when specifying schedule, both the API server and cronjob controller will emit warnings pointing to https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/ containing explanation ([#106455](https://github.com/kubernetes/kubernetes/pull/106455), [@soltysh](https://github.com/soltysh)) [SIG Apps]", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106455", + "pr_number": 106455, + "kinds": [ + "bug", + "documentation", + "cleanup", + "regression" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "106501": { + "commit": "d766ab88f7608c7f15afdb702c017a19af6e2b74", + "text": "CRI v1 is now the project default. If a container runtime does not support the v1 API, Kubernetes will fall back to the v1alpha2 implementation.", + "markdown": "CRI v1 is now the project default. If a container runtime does not support the v1 API, Kubernetes will fall back to the v1alpha2 implementation. ([#106501](https://github.com/kubernetes/kubernetes/pull/106501), [@ehashman](https://github.com/ehashman))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2040", + "type": "KEP" + } + ], + "author": "ehashman", + "author_url": "https://github.com/ehashman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106501", + "pr_number": 106501, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "106507": { + "commit": "37ae94f9ed45a7b4dac73129d9b9786c1d492ee0", + "text": "The `kube-Proxy` now correctly filters out unready endpoints for Services with Topology.", + "markdown": "The `kube-Proxy` now correctly filters out unready endpoints for Services with Topology. ([#106507](https://github.com/kubernetes/kubernetes/pull/106507), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106507", + "pr_number": 106507, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "106510": { + "commit": "084b28f6d58aaf82b9cc05d80232b31ce517c8c0", + "text": "Topology Aware Hints now ignores unready endpoints when assigning hints.", + "markdown": "Topology Aware Hints now ignores unready endpoints when assigning hints. ([#106510](https://github.com/kubernetes/kubernetes/pull/106510), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106510", + "pr_number": 106510, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "106520": { + "commit": "1304dfd73eb43b1c46e9cc2b5daddd963a70fbcf", + "text": "kubelet: the printing of flags at the start of kubelet now uses the final logging configuration.", + "markdown": "Kubelet: the printing of flags at the start of kubelet now uses the final logging configuration. ([#106520](https://github.com/kubernetes/kubernetes/pull/106520), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106520", + "pr_number": 106520, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "106661": { + "commit": "724289524084f6edbbe53e31d2c6e636343fdebb", + "text": "kube-apiserver: Server Side Apply merge order is reverted to match v1.22 behavior until `http://issue.k8s.io/104641` is resolved.", + "markdown": "Kube-apiserver: Server Side Apply merge order is reverted to match v1.22 behavior until `http://issue.k8s.io/104641` is resolved. ([#106661](https://github.com/kubernetes/kubernetes/pull/106661), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106661", + "pr_number": 106661, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "regression" + ], + "sigs": [ + "storage", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "106808": { + "commit": "88207ce3b8599fa7bebf4e017f0c178770354fa9", + "text": "Reverts the CRI API version surfaced by dockershim to `v1alpha2`.", + "markdown": "Reverts the CRI API version surfaced by dockershim to `v1alpha2`. ([#106808](https://github.com/kubernetes/kubernetes/pull/106808), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106808", + "pr_number": 106808, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true + }, + "92433": { + "commit": "819b021ada3090a8f520277291c6974283a42dbc", + "text": "The etcd container image now supports Windows.", + "markdown": "The etcd container image now supports Windows. ([#92433](https://github.com/kubernetes/kubernetes/pull/92433), [@claudiubelu](https://github.com/claudiubelu))", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92433", + "pr_number": 92433, + "areas": [ + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "windows" + ], + "feature": true, + "duplicate": true + }, + "92853": { + "commit": "7bff8adaf683dc7e25b5548e2c16e7393ff8a036", + "text": "Add mechanism to load simple sniffer class into fluentd-elasticsearch image", + "markdown": "Add mechanism to load simple sniffer class into fluentd-elasticsearch image ([#92853](https://github.com/kubernetes/kubernetes/pull/92853), [@cosmo0920](https://github.com/cosmo0920))", + "author": "cosmo0920", + "author_url": "https://github.com/cosmo0920", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92853", + "pr_number": 92853, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "92989": { + "commit": "cd80d70c3df154e8f6f2df5bfe8f7f8a490b7acc", + "text": "Add fish shell completion to kubectl.", + "markdown": "Add fish shell completion to kubectl. ([#92989](https://github.com/kubernetes/kubernetes/pull/92989), [@WLun001](https://github.com/WLun001))", + "author": "WLun001", + "author_url": "https://github.com/WLun001", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/92989", + "pr_number": 92989, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "94986": { + "commit": "904e97281fe399399878fc894f1540aaace051a7", + "text": "A new field `omitManagedFields` has been added to both `audit.Policy` and `audit.PolicyRule` \nso cluster operators can opt in to omit managed fields of the request and response bodies from \nbeing written to the API audit log.", + "markdown": "A new field `omitManagedFields` has been added to both `audit.Policy` and `audit.PolicyRule` \n so cluster operators can opt in to omit managed fields of the request and response bodies from \n being written to the API audit log. ([#94986](https://github.com/kubernetes/kubernetes/pull/94986), [@tkashem](https://github.com/tkashem)) [SIG API Machinery, Auth, Cloud Provider and Testing]", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94986", + "pr_number": 94986, + "areas": [ + "test", + "apiserver", + "provider/gcp", + "audit" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "auth", + "testing", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "95128": { + "commit": "d2f6eb6339de25cef04850b6d9be8335d52324cd", + "text": "kube-apiserver: requests to node, Service, and Pod `/proxy` subresources with no additional URL path now only automatically redirect GET and HEAD requests.", + "markdown": "Kube-apiserver: requests to node, Service, and Pod `/proxy` subresources with no additional URL path now only automatically redirect GET and HEAD requests. ([#95128](https://github.com/kubernetes/kubernetes/pull/95128), [@Riaankl](https://github.com/Riaankl))", + "author": "Riaankl", + "author_url": "https://github.com/Riaankl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95128", + "pr_number": 95128, + "areas": [ + "conformance" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing", + "architecture" + ], + "duplicate": true + }, + "96345": { + "commit": "c10be982d16de929eff5df99afb5556898ada9a9", + "text": "controller-manager: the following flags have no effect and would be removed in v1.24:\n- `--port`\n- `--address`\nThe insecure port flags `--port` may only be set to 0 now.\nAlso `metricsBindAddress` and `healthzBindAddress` fields from `kubescheduler.config.k8s.io/v1beta1` are no-op and expected to be empty. Removed in `kubescheduler.config.k8s.io/v1beta2` completely.", + "markdown": "Controller-manager: the following flags have no effect and would be removed in v1.24:\n - `--port`\n - `--address`\n The insecure port flags `--port` may only be set to 0 now.\n Also `metricsBindAddress` and `healthzBindAddress` fields from `kubescheduler.config.k8s.io/v1beta1` are no-op and expected to be empty. Removed in `kubescheduler.config.k8s.io/v1beta2` completely. ([#96345](https://github.com/kubernetes/kubernetes/pull/96345), [@ingvagabund](https://github.com/ingvagabund))", + "author": "ingvagabund", + "author_url": "https://github.com/ingvagabund", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96345", + "pr_number": 96345, + "areas": [ + "test", + "provider/gcp", + "e2e-test-framework" + ], + "kinds": [ + "cleanup", + "api-change", + "deprecation" + ], + "sigs": [ + "scheduling", + "testing", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "96684": { + "commit": "dd2d12f6dc0e654c15d5db57a5f9f6ba61192726", + "text": "The `Service.spec.ipFamilyPolicy` field is now *required* in order to create or update a Service as dual-stack. This is a breaking change from the beta behavior. Previously the server would try to infer the value of that field from either `ipFamilies` or `clusterIPs`, but that caused ambiguity on updates. Users who want a dual-stack Service MUST specify `ipFamilyPolicy` as either \"PreferDualStack\" or \"RequireDualStack\".", + "markdown": "The `Service.spec.ipFamilyPolicy` field is now *required* in order to create or update a Service as dual-stack. This is a breaking change from the beta behavior. Previously the server would try to infer the value of that field from either `ipFamilies` or `clusterIPs`, but that caused ambiguity on updates. Users who want a dual-stack Service MUST specify `ipFamilyPolicy` as either \"PreferDualStack\" or \"RequireDualStack\". ([#96684](https://github.com/kubernetes/kubernetes/pull/96684), [@thockin](https://github.com/thockin))", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96684", + "pr_number": 96684, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug", + "cleanup", + "api-change" + ], + "sigs": [ + "network", + "api-machinery", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "97350": { + "commit": "341d312066bd650e70995cd1a15925035b524a7d", + "text": "Added a new flag `--append-server-path` to `kubectl proxy` that will automatically append the kube context server path to each request.", + "markdown": "Added a new flag `--append-server-path` to `kubectl proxy` that will automatically append the kube context server path to each request. ([#97350](https://github.com/kubernetes/kubernetes/pull/97350), [@FabianKramm](https://github.com/FabianKramm))", + "author": "FabianKramm", + "author_url": "https://github.com/FabianKramm", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97350", + "pr_number": 97350, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "api-machinery", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "97415": { + "commit": "2face135c730282320d7d7c9873e190e483bce6f", + "text": "PodResources interface was changed, now it returns only isolated CPUs", + "markdown": "PodResources interface was changed, now it returns only isolated CPUs ([#97415](https://github.com/kubernetes/kubernetes/pull/97415), [@AlexeyPerevalov](https://github.com/AlexeyPerevalov))", + "author": "AlexeyPerevalov", + "author_url": "https://github.com/AlexeyPerevalov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97415", + "pr_number": 97415, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "98913": { + "commit": "44e2723e2c946171d2579af3d356eafe11d6a7aa", + "text": "Update `migratecmd/kube-proxy/app` logs to structured logging.", + "markdown": "Update `migratecmd/kube-proxy/app` logs to structured logging. ([#98913](https://github.com/kubernetes/kubernetes/pull/98913), [@yxxhero](https://github.com/yxxhero))", + "author": "yxxhero", + "author_url": "https://github.com/yxxhero", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/98913", + "pr_number": 98913, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "99273": { + "commit": "7282c2002e00028c30bf1afe35a9e88174b1f0c8", + "text": "Migrate `pkg/scheduler` to structured logging.", + "markdown": "Migrate `pkg/scheduler` to structured logging. ([#99273](https://github.com/kubernetes/kubernetes/pull/99273), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99273", + "pr_number": 99273, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "99557": { + "commit": "a988182f595af64bc007ba9162509e089c36fd89", + "text": "Adds new [alpha] command 'kubectl events'", + "markdown": "Adds new [alpha] command 'kubectl events' ([#99557](https://github.com/kubernetes/kubernetes/pull/99557), [@bboreham](https://github.com/bboreham))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1440", + "type": "KEP" + } + ], + "author": "bboreham", + "author_url": "https://github.com/bboreham", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99557", + "pr_number": 99557, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "99728": { + "commit": "b8af116327cd5d8e5411cbac04e7d4d11d22485d", + "text": "Added a feature gate `StatefulSetAutoDeletePVC`, which allows PVCs automatically created for StatefulSet pods to be automatically deleted.", + "markdown": "Added a feature gate `StatefulSetAutoDeletePVC`, which allows PVCs automatically created for StatefulSet pods to be automatically deleted. ([#99728](https://github.com/kubernetes/kubernetes/pull/99728), [@mattcary](https://github.com/mattcary))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/1847-autoremove-statefulset-pvcs", + "type": "KEP" + } + ], + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99728", + "pr_number": 99728, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + } } \ No newline at end of file diff --git a/releases/release-1.23/release-notes/release-notes-draft.md b/releases/release-1.23/release-notes/release-notes-draft.md index 65bafecc223..156d721f841 100644 --- a/releases/release-1.23/release-notes/release-notes-draft.md +++ b/releases/release-1.23/release-notes/release-notes-draft.md @@ -1,508 +1,508 @@ -## What's New (Major Themes) - -### Deprecation of FlexVolume - -FlexVolume is deprecated. Out-of-tree CSI driver is the recommended way to write volume drivers in Kubernetes. -See [this doc](https://github.com/kubernetes/community/blob/master/sig-storage/volume-plugin-faq.md#kubernetes-volume-plugin-faq-for-storage-vendors) for more information. -Maintainers of FlexVolume drivers should implement a CSI driver and move users of FlexVolume to CSI. -Users of FlexVolume should move their workloads to CSI driver. - -### Deprecation of klog specific flags - -To simplify the code base, several [logging flags got marked as deprecated](https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#klog) in Kubernetes 1.23. -The code which implements them will be removed in a future release, so users of those need to start replacing the deprecated flags with some alternative solutions. - -### Software Supply Chain SLSA Level 1 Compliance in the Kubernetes Release Process - -Kubernetes releases are now generating provenance attestation files describing the staging and release phases of the release process and artifacts are verified as they are handed over from one phase to the next. -This final piece completes the work needed to comply with Level 1 of the [SLSA security framework](https://slsa.dev/) (Supply-chain Levels for Software Artifacts). - -### IPv4/IPv6 Dual-stack Networking graduates to GA - -[IPv4/IPv6 dual-stack networking](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack) graduates to GA. -Since 1.21, Kubernetes clusters are enabled to support dual-stack networking by default. -In 1.23, the `IPv6DualStack` feature gate is removed. -The use of dual-stack networking is not mandatory. -Although clusters are enabled to support dual-stack networking, Pods and Services continue to default to single-stack. -To use dual-stack networking: Kubernetes nodes have routable IPv4/IPv6 network interfaces, a dual-stack capable CNI network plugin is used, Pods are configured to be dual-stack and Services have their `.spec.ipFamilyPolicy` field set to either `PreferDualStack` or `RequireDualStack`. - -### HorizontalPodAutoscaler v2 graduates to GA - -Version 2 of the HorizontalPodAutoscaler API graduates to stable in the 1.23 release. The HorizontalPodAutoscaler `autoscaling/v2beta2` API is deprecated in favor of the new `autoscaling/v2` API, which the Kubernetes project recommends for all use cases. - -This release does *not* deprecate the v1 HorizontalPodAutoscaler API. - -### Generic Ephemeral Volume feature graduates to GA - -The generic ephemeral volume feature moved to GA in 1.23. -This feature allows any existing storage driver that supports dynamic provisioning to be used as an ephemeral volume with the volume’s lifecycle bound to the Pod. -All StorageClass parameters for volume provisioning and all features supported with PersistentVolumeClaims are supported. - -### Skip Volume Ownership change graduates to GA - -The feature to configure volume permission and ownership change policy for Pods moved to GA in 1.23. -This allows users to skip recursive permission changes on mount and speeds up the pod start up time. - -### Allow CSI drivers to opt-in to volume ownership and permission change graduates to GA - -The feature to allow CSI Drivers to declare support for fsGroup based permissions graduates to GA in 1.23. - -### PodSecurity graduates to Beta - -[PodSecurity](https://kubernetes.io/docs/concepts/security/pod-security-admission/) moves to Beta. -`PodSecurity` replaces the deprecated `PodSecurityPolicy` admission controller. -`PodSecurity` is an admission controller that enforces Pod Security Standards on Pods in a Namespace based on specific namespace labels that set the enforcement level. -In 1.23, the `PodSecurity` feature gate is enabled by default. - -### Container Runtime Interface (CRI) v1 is default - -The Kubelet now supports the CRI `v1` API, which is now the project-wide default. -If a container runtime does not support the `v1` API, Kubernetes will fall back to the `v1alpha2` implementation. -There is no intermediate action required by end-users, because `v1` and `v1alpha2` do not differ in their implementation. -It is likely that `v1alpha2` will be removed in one of the future Kubernetes releases to be able to develop `v1`. - -### Structured logging graduate to Beta - -Structured logging reached its Beta milestone. Most log messages from kubelet and kube-scheduler have been converted. Users are encouraged to try out JSON output or parsing of the structured text format and provide feedback on possible solutions for the open issues, such as handling of multi-line strings in log values. - -### Simplified Multi-point plugin configuration for scheduler - -The kube-scheduler is adding a new, simplified config field for Plugins to allow multiple extension points to be enabled in one spot. -The new `multiPoint` plugin field is intended to simplify most scheduler setups for administrators. -Plugins that are enabled via `multiPoint` will automatically be registered for each individual extension point that they implement. -For example, a plugin that implements Score and Filter extensions can be simultaneously enabled for both. -This means entire plugins can be enabled and disabled without having to manually edit individual extension point settings. -These extension points can now be abstracted away due to their irrelevance for most users. - -### CSI Migration updates - -CSI Migration enables the replacement of existing in-tree storage plugins such as `kubernetes.io/gce-pd` or `kubernetes.io/aws-ebs` with a corresponding CSI driver. -If CSI Migration is working properly, Kubernetes end users shouldn’t notice a difference. -After migration, Kubernetes users may continue to rely on all the functionality of in-tree storage plugins using the existing interface. -- CSI Migration feature is turned on by default but stays in Beta for GCE PD, AWS EBS, and Azure Disk in 1.23. -- CSI Migration is introduced as an Alpha feature for Ceph RBD and Portworx in 1.23. - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- Kubeadm: remove the deprecated flag `--experimental-patches` for the `init|join|upgrade` commands. The flag `--patches` is no longer allowed in a mixture with the flag `--config`. Please use the kubeadm configuration for setting patches for a node using `{Init|Join}Configuration.patches`. ([#104065](https://github.com/kubernetes/kubernetes/pull/104065), [@pacoxu](https://github.com/pacoxu)) - - Log messages in JSON format are written to stderr by default now (same as text format) instead of stdout. Users who expected JSON output on stdout must now capture stderr instead or in addition to stdout. ([#106146](https://github.com/kubernetes/kubernetes/pull/106146), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Cluster Lifecycle and Instrumentation] - - Support for the seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io/[name]` has been deprecated since 1.19, will be dropped in 1.25. Transition to using the `seccompProfile` API field. ([#104389](https://github.com/kubernetes/kubernetes/pull/104389), [@saschagrunert](https://github.com/saschagrunert)) - - [kube-log-runner](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/component-base/logs/kube-log-runner) is included in release tar balls. It can be used to replace the deprecated `--log-file` parameter. ([#106123](https://github.com/kubernetes/kubernetes/pull/106123), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Cloud Provider, Cluster Lifecycle and Instrumentation] - -## Changes by Kind - -### Deprecation - -- A deprecation notice has been added when using the kube-proxy userspace proxier, which will be removed in v1.25. (#103860) ([#104631](https://github.com/kubernetes/kubernetes/pull/104631), [@perithompson](https://github.com/perithompson)) -- Added `apiserver_longrunning_requests` metric to replace the soon to be deprecated `apiserver_longrunning_gauge` metric. ([#103799](https://github.com/kubernetes/kubernetes/pull/103799), [@jyz0309](https://github.com/jyz0309)) -- Controller-manager: the following flags have no effect and would be removed in v1.24: - - `--port` - - `--address` - The insecure port flags `--port` may only be set to 0 now. - Also `metricsBindAddress` and `healthzBindAddress` fields from `kubescheduler.config.k8s.io/v1beta1` are no-op and expected to be empty. Removed in `kubescheduler.config.k8s.io/v1beta2` completely. ([#96345](https://github.com/kubernetes/kubernetes/pull/96345), [@ingvagabund](https://github.com/ingvagabund)) -- Feature-gate `VolumeSubpath` has been deprecated and cannot be disabled. It will be completely removed in 1.25 ([#105474](https://github.com/kubernetes/kubernetes/pull/105474), [@mauriciopoppe](https://github.com/mauriciopoppe)) -- Kubeadm: add a new `output/v1alpha2` API that is identical to the `output/v1alpha1`, but attempts to resolve some internal dependencies with the `kubeadm/v1beta2` API. The `output/v1alpha1` API is now deprecated and will be removed in a future release. ([#105295](https://github.com/kubernetes/kubernetes/pull/105295), [@neolit123](https://github.com/neolit123)) -- Kubeadm: add the kubeadm specific, Alpha (disabled by default) feature gate UnversionedKubeletConfigMap. When this feature is enabled kubeadm will start using a new naming format for the ConfigMap where it stores the KubeletConfiguration structure. The old format included the Kubernetes version - "kube-system/kubelet-config-1.22", while the new format does not - "kube-system/kubelet-config". A similar formatting change is done for the related RBAC rules. The old format is now DEPRECATED and will be removed after the feature graduates to GA. When writing the ConfigMap kubeadm (init, upgrade apply) will respect the value of UnversionedKubeletConfigMap, while when reading it (join, reset, upgrade), it would attempt to use new format first and fallback to the legacy format if needed. ([#105741](https://github.com/kubernetes/kubernetes/pull/105741), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Testing] -- Kubeadm: remove the deprecated / NO-OP phase `update-cluster-status` in `kubeadm reset` ([#105888](https://github.com/kubernetes/kubernetes/pull/105888), [@neolit123](https://github.com/neolit123)) -- Remove 'master' as a valid EgressSelection type in the EgressSelectorConfiguration API. ([#102242](https://github.com/kubernetes/kubernetes/pull/102242), [@pacoxu](https://github.com/pacoxu)) -- Removed `kubectl --dry-run` empty default value and boolean values. `kubectl --dry-run` usage must be specified with `--dry-run=(server|client|none)`. ([#105327](https://github.com/kubernetes/kubernetes/pull/105327), [@julianvmodesto](https://github.com/julianvmodesto)) -- Removed deprecated metric `scheduler_volume_scheduling_duration_seconds`. ([#104518](https://github.com/kubernetes/kubernetes/pull/104518), [@dntosas](https://github.com/dntosas)) -- The deprecated `--experimental-bootstrap-kubeconfig` flag has been removed. - This can be set via `--bootstrap-kubeconfig`. ([#103172](https://github.com/kubernetes/kubernetes/pull/103172), [@niulechuan](https://github.com/niulechuan)) - -### API Change - -- A new field `omitManagedFields` has been added to both `audit.Policy` and `audit.PolicyRule` - so cluster operators can opt in to omit managed fields of the request and response bodies from - being written to the API audit log. ([#94986](https://github.com/kubernetes/kubernetes/pull/94986), [@tkashem](https://github.com/tkashem)) [SIG API Machinery, Auth, Cloud Provider and Testing] -- A small regression in Service updates was fixed. The circumstances are so unlikely that probably nobody would ever hit it. ([#104601](https://github.com/kubernetes/kubernetes/pull/104601), [@thockin](https://github.com/thockin)) -- Added a feature gate `StatefulSetAutoDeletePVC`, which allows PVCs automatically created for StatefulSet pods to be automatically deleted. ([#99728](https://github.com/kubernetes/kubernetes/pull/99728), [@mattcary](https://github.com/mattcary)) -- Client-go impersonation config can specify a UID to pass impersonated uid information through in requests. ([#104483](https://github.com/kubernetes/kubernetes/pull/104483), [@margocrawf](https://github.com/margocrawf)) -- Create HPA v2 from v2beta2 with some fields changed. ([#102534](https://github.com/kubernetes/kubernetes/pull/102534), [@wangyysde](https://github.com/wangyysde)) [SIG API Machinery, Apps, Auth, Autoscaling and Testing] -- Ephemeral containers graduated to beta and are now available by default. ([#105405](https://github.com/kubernetes/kubernetes/pull/105405), [@verb](https://github.com/verb)) -- Fix kube-proxy regression on UDP services because the logic to detect stale connections was not considering if the endpoint was ready. ([#106163](https://github.com/kubernetes/kubernetes/pull/106163), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Contributor Experience, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows] -- If a conflict occurs when creating an object with `generateName`, the server now returns an "AlreadyExists" error with a retry option. ([#104699](https://github.com/kubernetes/kubernetes/pull/104699), [@vincepri](https://github.com/vincepri)) -- Implement support for recovering from volume expansion failures ([#106154](https://github.com/kubernetes/kubernetes/pull/106154), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Apps and Storage] -- In kubelet, log verbosity and flush frequency can also be configured via the configuration file and not just via command line flags. In other commands (kube-apiserver, kube-controller-manager), the flags are listed in the "Logs flags" group and not under "Global" or "Misc". The type for `-vmodule` was made a bit more descriptive (`pattern=N,...` instead of `moduleSpec`). ([#106090](https://github.com/kubernetes/kubernetes/pull/106090), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, CLI, Cluster Lifecycle, Instrumentation, Node and Scheduling] -- Introduce `OS` field in the PodSpec ([#104693](https://github.com/kubernetes/kubernetes/pull/104693), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- Introduce `v1beta3` API for scheduler. This version - - increases the weight of user specifiable priorities. - The weights of following priority plugins are increased - - `TaintTolerations` to 3 - as leveraging node tainting to group nodes in the cluster is becoming a widely-adopted practice - - `NodeAffinity` to 2 - - `InterPodAffinity` to 2 - - - Won't have `HealthzBindAddress`, `MetricsBindAddress` fields ([#104251](https://github.com/kubernetes/kubernetes/pull/104251), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- Introduce v1beta2 for Priority and Fairness with no changes in API spec. ([#104399](https://github.com/kubernetes/kubernetes/pull/104399), [@tkashem](https://github.com/tkashem)) -- JSON log output is configurable and now supports writing info messages to stdout and error messages to stderr. Info messages can be buffered in memory. The default is to write both to stdout without buffering, as before. ([#104873](https://github.com/kubernetes/kubernetes/pull/104873), [@pohly](https://github.com/pohly)) -- JobTrackingWithFinalizers graduates to beta. Feature is enabled by default. ([#105687](https://github.com/kubernetes/kubernetes/pull/105687), [@alculquicondor](https://github.com/alculquicondor)) -- Kube-apiserver: Fixes handling of CRD schemas containing literal null values in enums. ([#104969](https://github.com/kubernetes/kubernetes/pull/104969), [@liggitt](https://github.com/liggitt)) -- Kube-apiserver: The `rbac.authorization.k8s.io/v1alpha1` API version is removed; use the `rbac.authorization.k8s.io/v1` API, available since v1.8. The `scheduling.k8s.io/v1alpha1` API version is removed; use the `scheduling.k8s.io/v1` API, available since v1.14. ([#104248](https://github.com/kubernetes/kubernetes/pull/104248), [@liggitt](https://github.com/liggitt)) -- Kube-scheduler: support for configuration file version `v1beta1` is removed. Update configuration files to v1beta2(xref: https://github.com/kubernetes/enhancements/issues/2901) or v1beta3 before upgrading to 1.23. ([#104782](https://github.com/kubernetes/kubernetes/pull/104782), [@kerthcet](https://github.com/kerthcet)) -- KubeSchedulerConfiguration provides a new field `MultiPoint` which will register a plugin for all valid extension points ([#105611](https://github.com/kubernetes/kubernetes/pull/105611), [@damemi](https://github.com/damemi)) [SIG Scheduling and Testing] -- Kubelet should reject pods whose OS doesn't match the node's OS label. ([#105292](https://github.com/kubernetes/kubernetes/pull/105292), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Apps and Node] -- Kubelet: turn the KubeletConfiguration v1beta1 `ResolverConfig` field from a `string` to `*string`. ([#104624](https://github.com/kubernetes/kubernetes/pull/104624), [@Haleygo](https://github.com/Haleygo)) -- Kubernetes is now built using go 1.17. ([#103692](https://github.com/kubernetes/kubernetes/pull/103692), [@justaugustus](https://github.com/justaugustus)) -- Performs strict server side schema validation requests via the `fieldValidation=[Strict,Warn,Ignore]`. ([#105916](https://github.com/kubernetes/kubernetes/pull/105916), [@kevindelgado](https://github.com/kevindelgado)) -- Promote `IPv6DualStack` feature to stable. - Controller Manager flags for the node IPAM controller have slightly changed: - 1. When configuring a dual-stack cluster, the user must specify both `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6` to set the per-node IP mask sizes, instead of the previous `--node-cidr-mask-size` flag. - 2. The `--node-cidr-mask-size` flag is mutually exclusive with `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6`. - 3. Single-stack clusters do not need to change, but may choose to use the more specific flags. Users can use either the older `--node-cidr-mask-size` flag or one of the newer `--node-cidr-mask-size-ipv4` or `--node-cidr-mask-size-ipv6` flags to configure the per-node IP mask size, provided that the flag's IP family matches the cluster's IP family (--cluster-cidr). ([#104691](https://github.com/kubernetes/kubernetes/pull/104691), [@khenidak](https://github.com/khenidak)) -- Remove `NodeLease` feature gate that was graduated and locked to stable in 1.17 release. ([#105222](https://github.com/kubernetes/kubernetes/pull/105222), [@cyclinder](https://github.com/cyclinder)) -- Removed deprecated `--seccomp-profile-root`/`seccompProfileRoot` config. ([#103941](https://github.com/kubernetes/kubernetes/pull/103941), [@saschagrunert](https://github.com/saschagrunert)) -- Since golang 1.17 both net.ParseIP and net.ParseCIDR rejects leading zeros in the dot-decimal notation of IPv4 addresses, - Kubernetes will keep allowing leading zeros on IPv4 address to not break the compatibility. - IMPORTANT: Kubernetes interprets leading zeros on IPv4 addresses as decimal, users must not rely on parser alignment to not being impacted by the associated security advisory: - CVE-2021-29923 golang standard library "net" - Improper Input Validation of octal literals in golang 1.16.2 and below standard library "net" results in indeterminate SSRF & RFI vulnerabilities. - Reference: https://nvd.nist.gov/vuln/detail/CVE-2021-29923 ([#104368](https://github.com/kubernetes/kubernetes/pull/104368), [@aojea](https://github.com/aojea)) -- StatefulSet `minReadySeconds` is promoted to beta. ([#104045](https://github.com/kubernetes/kubernetes/pull/104045), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- Support pod priority based node graceful shutdown. ([#102915](https://github.com/kubernetes/kubernetes/pull/102915), [@wzshiming](https://github.com/wzshiming)) -- The "Generic Ephemeral Volume" feature graduates to GA. It is now enabled unconditionally. ([#105609](https://github.com/kubernetes/kubernetes/pull/105609), [@pohly](https://github.com/pohly)) -- The Kubelet's `--register-with-taints` option is now available via the Kubelet config file field registerWithTaints ([#105437](https://github.com/kubernetes/kubernetes/pull/105437), [@cmssczy](https://github.com/cmssczy)) [SIG Node and Scalability] -- The `CSIDriver.Spec.StorageCapacity` can now be modified. ([#101789](https://github.com/kubernetes/kubernetes/pull/101789), [@pohly](https://github.com/pohly)) -- The `CSIVolumeFSGroupPolicy` feature has moved from beta to GA. ([#105940](https://github.com/kubernetes/kubernetes/pull/105940), [@dobsonj](https://github.com/dobsonj)) -- The `IngressClass.Spec.Parameters.Namespace` field is now GA. ([#104636](https://github.com/kubernetes/kubernetes/pull/104636), [@hbagdi](https://github.com/hbagdi)) -- The `Service.spec.ipFamilyPolicy` field is now *required* in order to create or update a Service as dual-stack. This is a breaking change from the beta behavior. Previously the server would try to infer the value of that field from either `ipFamilies` or `clusterIPs`, but that caused ambiguity on updates. Users who want a dual-stack Service MUST specify `ipFamilyPolicy` as either "PreferDualStack" or "RequireDualStack". ([#96684](https://github.com/kubernetes/kubernetes/pull/96684), [@thockin](https://github.com/thockin)) -- The `TTLAfterFinished` feature gate is now GA and enabled by default. ([#105219](https://github.com/kubernetes/kubernetes/pull/105219), [@sahilvv](https://github.com/sahilvv)) -- The `kube-controller-manager` supports `--concurrent-ephemeralvolume-syncs` flag to set the number of ephemeral volume controller workers. ([#102981](https://github.com/kubernetes/kubernetes/pull/102981), [@SataQiu](https://github.com/SataQiu)) -- The legacy scheduler policy config is removed in v1.23, the associated flags `policy-config-file`, `policy-configmap`, `policy-configmap-namespace` and `use-legacy-policy-config` are also removed. Migrate to Component Config instead, see https://kubernetes.io/docs/reference/scheduling/config/ for details. ([#105424](https://github.com/kubernetes/kubernetes/pull/105424), [@kerthcet](https://github.com/kerthcet)) -- Track the number of Pods with a Ready condition in Job status. The feature is alpha and needs the feature gate JobReadyPods to be enabled. ([#104915](https://github.com/kubernetes/kubernetes/pull/104915), [@alculquicondor](https://github.com/alculquicondor)) -- Users of `LogFormatRegistry` in component-base must update their code to use the logr v1.0.0 API. The JSON log output now uses the format from go-logr/zapr (no `v` field for error messages, additional information for invalid calls) and has some fixes (correct source code location for warnings about invalid log calls). ([#104103](https://github.com/kubernetes/kubernetes/pull/104103), [@pohly](https://github.com/pohly)) -- Validation rules for Custom Resource Definitions can be written in the [CEL expression language](https://github.com/google/cel-spec) using the `x-kubernetes-validations` extension in OpenAPIv3 schemas (alpha). This is gated by the alpha "CustomResourceValidationExpressions" feature gate. ([#106051](https://github.com/kubernetes/kubernetes/pull/106051), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Storage and Testing] - -### Feature - -- (beta feature) If the CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate applying FSGroup to the driver by passing it to NodeStageVolume and NodePublishVolume, regardless of what other FSGroup policies are set. ([#106330](https://github.com/kubernetes/kubernetes/pull/106330), [@verult](https://github.com/verult)) [SIG Storage] -- Add a new `distribute-cpus-across-numa` option to the static `CPUManager` policy. When enabled, this will trigger the `CPUManager` to evenly distribute CPUs across NUMA nodes in cases where more than one NUMA node is required to satisfy the allocation. ([#105631](https://github.com/kubernetes/kubernetes/pull/105631), [@klueska](https://github.com/klueska)) -- Add fish shell completion to kubectl. ([#92989](https://github.com/kubernetes/kubernetes/pull/92989), [@WLun001](https://github.com/WLun001)) -- Add mechanism to load simple sniffer class into fluentd-elasticsearch image ([#92853](https://github.com/kubernetes/kubernetes/pull/92853), [@cosmo0920](https://github.com/cosmo0920)) -- Add support for Portworx plugin to csi-translation-lib. Alpha release - - Portworx CSI driver is required to enable migration. - This PR adds support of the `CSIMigrationPortworx` feature gate, which can be enabled by: - - 1. Adding the feature flag to the kube-controller-manager `--feature-gates=CSIMigrationPortworx=true` - 2. Adding the feature flag to the kubelet config: - - featureGates: - CSIMigrationPortworx: true ([#103447](https://github.com/kubernetes/kubernetes/pull/103447), [@trierra](https://github.com/trierra)) [SIG API Machinery, Apps, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows] -- Add support to generate client-side binaries for windows/arm64 platform ([#104894](https://github.com/kubernetes/kubernetes/pull/104894), [@pacoxu](https://github.com/pacoxu)) -- Added PowerShell completion generation by running `kubectl completion powershell`. ([#103758](https://github.com/kubernetes/kubernetes/pull/103758), [@zikhan](https://github.com/zikhan)) -- Added a `Processing` condition for the `workqueue` API. - Changed `Shutdown` for the `workqueue` API to wait until the work queue finishes processing all in-flight items. ([#101928](https://github.com/kubernetes/kubernetes/pull/101928), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) -- Added a new feature gate `CustomResourceValidationExpressions` to enable expression validation for Custom Resource. ([#105107](https://github.com/kubernetes/kubernetes/pull/105107), [@cici37](https://github.com/cici37)) -- Added a new flag `--append-server-path` to `kubectl proxy` that will automatically append the kube context server path to each request. ([#97350](https://github.com/kubernetes/kubernetes/pull/97350), [@FabianKramm](https://github.com/FabianKramm)) -- Added ability for `kubectl wait` to wait on arbitary JSON path ([#105776](https://github.com/kubernetes/kubernetes/pull/105776), [@lauchokyip](https://github.com/lauchokyip)) -- Added support for `PodAndContainerStatsFromCRI` feature gate, which allows a user to specify their pod stats must also come from the CRI, not `cAdvisor`. ([#103095](https://github.com/kubernetes/kubernetes/pull/103095), [@haircommander](https://github.com/haircommander)) -- Added support for setting controller-manager log level online. ([#104571](https://github.com/kubernetes/kubernetes/pull/104571), [@h4ghhh](https://github.com/h4ghhh)) -- Added the ability to specify whether to use an RFC7396 JSON Merge Patch, an RFC6902 JSON Patch, or a Strategic Merge Patch to perform an override of the resources created by `kubectl run` and `kubectl expose`. ([#105140](https://github.com/kubernetes/kubernetes/pull/105140), [@brianpursley](https://github.com/brianpursley)) -- Adding option for `kubectl cp` to resume on network errors until completion, requires tar in addition to tail inside the container image ([#104792](https://github.com/kubernetes/kubernetes/pull/104792), [@matthyx](https://github.com/matthyx)) -- Adding support for multiple `--from-env-file flags`. ([#104232](https://github.com/kubernetes/kubernetes/pull/104232), [@lauchokyip](https://github.com/lauchokyip)) -- Adding support for multiple `--from-env-file` flags. ([#101646](https://github.com/kubernetes/kubernetes/pull/101646), [@lauchokyip](https://github.com/lauchokyip)) -- Adds `--as-uid` flag to `kubectl` to allow uid impersonation in the same way as user and group impersonation. ([#105794](https://github.com/kubernetes/kubernetes/pull/105794), [@margocrawf](https://github.com/margocrawf)) -- Adds new [alpha] command 'kubectl events' ([#99557](https://github.com/kubernetes/kubernetes/pull/99557), [@bboreham](https://github.com/bboreham)) -- Allow node expansion of local volumes. ([#102886](https://github.com/kubernetes/kubernetes/pull/102886), [@gnufied](https://github.com/gnufied)) -- Allow to build kubernetes with a custom `kube-cross` image. ([#104185](https://github.com/kubernetes/kubernetes/pull/104185), [@dims](https://github.com/dims)) -- Allows users to prevent garbage collection on pinned images ([#103299](https://github.com/kubernetes/kubernetes/pull/103299), [@wgahnagl](https://github.com/wgahnagl)) [SIG Node] -- CRI v1 is now the project default. If a container runtime does not support the v1 API, Kubernetes will fall back to the v1alpha2 implementation. ([#106501](https://github.com/kubernetes/kubernetes/pull/106501), [@ehashman](https://github.com/ehashman)) -- Changed feature `CSIMigrationAWS` to on by default. This feature requires the AWS EBS CSI driver to be installed. ([#106098](https://github.com/kubernetes/kubernetes/pull/106098), [@wongma7](https://github.com/wongma7)) -- Client-go: pass `DeleteOptions` down to the fake client `Reactor` ([#102945](https://github.com/kubernetes/kubernetes/pull/102945), [@chenchun](https://github.com/chenchun)) -- Cloud providers can set service account names for cloud controllers. ([#103178](https://github.com/kubernetes/kubernetes/pull/103178), [@nckturner](https://github.com/nckturner)) -- Display Labels when kubectl describe ingress. ([#103894](https://github.com/kubernetes/kubernetes/pull/103894), [@kabab](https://github.com/kabab)) -- Enhance scheduler `VolumeBinding` plugin to handle Lost PVC as `UnschedulableAndUnresolvable` ([#105245](https://github.com/kubernetes/kubernetes/pull/105245), [@yibozhuang](https://github.com/yibozhuang)) -- Ensures that volume is deleted from the storage backend when the user tries to delete the PV object manually and the PV `ReclaimPolicy` is set to `Delete`. ([#105773](https://github.com/kubernetes/kubernetes/pull/105773), [@deepakkinni](https://github.com/deepakkinni)) -- Expose a `NewUnstructuredExtractor` from apply configurations `meta/v1` package that enables extracting objects into unstructured apply configurations. ([#103564](https://github.com/kubernetes/kubernetes/pull/103564), [@kevindelgado](https://github.com/kevindelgado)) -- Feature gate `StorageObjectInUseProtection` has been deprecated and cannot be disabled. It will be completely removed in 1.25 ([#105495](https://github.com/kubernetes/kubernetes/pull/105495), [@ikeeip](https://github.com/ikeeip)) -- Graduating `controller_admission_duration_seconds`, `step_admission_duration_seconds`, `webhook_admission_duration_seconds`, `apiserver_current_inflight_requests` and `apiserver_response_sizes` metrics to stable. ([#106122](https://github.com/kubernetes/kubernetes/pull/106122), [@rezakrimi](https://github.com/rezakrimi)) [SIG API Machinery, Instrumentation and Testing] -- Graduating `pending_pods`, `preemption_attempts_total`, `preemption_victims` and `schedule_attempts_total` metrics to stable. Also `e2e_scheduling_duration_seconds` is renamed to `scheduling_attempt_duration_seconds` and the latter is graduated to stable. ([#105941](https://github.com/kubernetes/kubernetes/pull/105941), [@rezakrimi](https://github.com/rezakrimi)) [SIG Instrumentation, Scheduling and Testing] -- Health check of kube-controller-manager now includes each controller. ([#104667](https://github.com/kubernetes/kubernetes/pull/104667), [@jiahuif](https://github.com/jiahuif)) -- Integration testing now takes periodic Prometheus scrapes from the etcd server. - There is a new script ,`hack/run-prometheus-on-etcd-scrapes.sh`, that runs a containerized Prometheus server against an archive of such scrapes. ([#106190](https://github.com/kubernetes/kubernetes/pull/106190), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery and Testing] -- Introduce a feature gate `DisableKubeletCloudCredentialProviders` which allows disabling the in-tree kubelet credential providers. - - The feature gate `DisableKubeletCloudCredentialProviders` is currently in Alpha, which means is currently disabled by default. Once this feature gate moves to beta, in-tree credential providers will be disabled by default, and users will need to migrate to use external credential providers. ([#102507](https://github.com/kubernetes/kubernetes/pull/102507), [@ostrain](https://github.com/ostrain)) -- Introduces a new metric: `admission_webhook_request_total` with the following labels: name (string) - the webhook name, type (string) - the admission type, operation (string) - the requested verb, code (int) - the HTTP status code, rejected (bool) - whether the request was rejected, namespace (string) - the namespace of the requested resource. ([#103162](https://github.com/kubernetes/kubernetes/pull/103162), [@rmoriar1](https://github.com/rmoriar1)) -- Kubeadm: add support for dry running `kubeadm join`. The new flag `kubeadm join --dry-run` is similar to the existing flag for `kubeadm init/upgrade` and allows you to see what changes would be applied. ([#103027](https://github.com/kubernetes/kubernetes/pull/103027), [@Haleygo](https://github.com/Haleygo)) -- Kubeadm: do not check if the `/etc/kubernetes/manifests` folder is empty on joining worker nodes during preflight ([#104942](https://github.com/kubernetes/kubernetes/pull/104942), [@SataQiu](https://github.com/SataQiu)) -- Kubectl will now provide shell completion choices for the `--output/-o` flag ([#105851](https://github.com/kubernetes/kubernetes/pull/105851), [@marckhouzam](https://github.com/marckhouzam)) -- Kubelet should reconcile `kubernetes.io/os` and `kubernetes.io/arch` labels on the node object. The side-effect of this is kubelet would deny admission to pod which has nodeSelector with label `kubernetes.io/os` or `kubernetes.io/arch` which doesn't match the underlying OS or arch on the host OS. - - The label reconciliation happens as part of periodic status update which can be configured via flag `--node-status-update-frequency` ([#104613](https://github.com/kubernetes/kubernetes/pull/104613), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node, Testing and Windows] -- Kubernetes is now built with Golang 1.16.7. ([#104199](https://github.com/kubernetes/kubernetes/pull/104199), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with Golang 1.17.1. ([#104904](https://github.com/kubernetes/kubernetes/pull/104904), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with Golang 1.17.2 ([#105563](https://github.com/kubernetes/kubernetes/pull/105563), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Kubernetes is now built with Golang 1.17.3 ([#106209](https://github.com/kubernetes/kubernetes/pull/106209), [@cpanato](https://github.com/cpanato)) [SIG API Machinery, Cloud Provider, Instrumentation, Release and Testing] -- Move `ConfigurableFSGroupPolicy` to GA and rename metric `volume_fsgroup_recursive_apply` to `volume_apply_access_control` ([#105885](https://github.com/kubernetes/kubernetes/pull/105885), [@gnufied](https://github.com/gnufied)) -- Move the `GetAllocatableResources` Endpoint in PodResource API to the beta that will make it enabled by default. ([#105003](https://github.com/kubernetes/kubernetes/pull/105003), [@swatisehgal](https://github.com/swatisehgal)) -- Moving `WindowsHostProcessContainers` feature to beta ([#106058](https://github.com/kubernetes/kubernetes/pull/106058), [@marosset](https://github.com/marosset)) -- Node affinity, Node selectors, and tolerations are now mutable for Jobs that are suspended and have never been started ([#105479](https://github.com/kubernetes/kubernetes/pull/105479), [@ahg-g](https://github.com/ahg-g)) -- Pod template annotations and labels are now mutable for Jobs that are suspended and have never been started ([#105980](https://github.com/kubernetes/kubernetes/pull/105980), [@ahg-g](https://github.com/ahg-g)) -- PodSecurity: in 1.23+ restricted policy levels, Pods and containers which set `runAsUser=0` are forbidden at admission-time; previously, they would be rejected at runtime ([#105857](https://github.com/kubernetes/kubernetes/pull/105857), [@liggitt](https://github.com/liggitt)) -- Shell completion now knows to continue suggesting resource names when the command supports it. For example `kubectl get pod pod1 <TAB>` will suggest more Pod names. ([#105711](https://github.com/kubernetes/kubernetes/pull/105711), [@marckhouzam](https://github.com/marckhouzam)) -- Support to enable Hyper-V in GCE Windows Nodes created with `kube-up` ([#105999](https://github.com/kubernetes/kubernetes/pull/105999), [@mauriciopoppe](https://github.com/mauriciopoppe)) -- The CPUManager policy options are now enabled, and we introduce a graduation path for the new CPU Manager policy options. ([#105012](https://github.com/kubernetes/kubernetes/pull/105012), [@fromanirh](https://github.com/fromanirh)) -- The Pods and Pod controllers that are exempted from the PodSecurity admission process are now marked with the `pod-security.kubernetes.io/exempt: user/namespace/runtimeClass` annotation, based on what caused the exemption. - - The enforcement level that allowed or denied a Pod during PodSecurity admission is now marked by the `pod-security.kubernetes.io/enforce-policy` annotation. - - The annotation that informs about audit policy violations changed from `pod-security.kubernetes.io/audit` to `pod-security.kubernetes.io/audit-violation`. ([#105908](https://github.com/kubernetes/kubernetes/pull/105908), [@stlaz](https://github.com/stlaz)) -- The `/openapi/v3` endpoint will be populated with OpenAPI v3 if the feature flag is enabled ([#105945](https://github.com/kubernetes/kubernetes/pull/105945), [@Jefftree](https://github.com/Jefftree)) -- The `CSIMigrationGCE` feature flag is turned `ON` by default ([#104722](https://github.com/kubernetes/kubernetes/pull/104722), [@leiyiz](https://github.com/leiyiz)) -- The `DownwardAPIHugePages` feature is now enabled by default. ([#106271](https://github.com/kubernetes/kubernetes/pull/106271), [@mysunshine92](https://github.com/mysunshine92)) -- The `PodSecurity `admission plugin has graduated to `beta` and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1beta1`. See https://kubernetes.io/docs/concepts/security/pod-security-admission/ for usage guidelines. ([#106089](https://github.com/kubernetes/kubernetes/pull/106089), [@liggitt](https://github.com/liggitt)) -- The `ServiceAccountIssuerDiscovery` feature gate is removed. It reached GA in Kubernetes 1.21. ([#103685](https://github.com/kubernetes/kubernetes/pull/103685), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- The `constants/variables` from k8s.io for STABLE metrics is now supported. ([#103654](https://github.com/kubernetes/kubernetes/pull/103654), [@coffeepac](https://github.com/coffeepac)) -- The `kubectl describe namespace` now shows Conditions ([#106219](https://github.com/kubernetes/kubernetes/pull/106219), [@dlipovetsky](https://github.com/dlipovetsky)) -- The etcd container image now supports Windows. ([#92433](https://github.com/kubernetes/kubernetes/pull/92433), [@claudiubelu](https://github.com/claudiubelu)) -- The kube-apiserver's Prometheus metrics have been extended with some that describe the costs of handling LIST requests. They are as follows. - - *apiserver_cache_list_total*: Counter of LIST requests served from watch cache, broken down by resource_prefix and index_name - - *apiserver_cache_list_fetched_objects_total*: Counter of objects read from watch cache in the course of serving a LIST request, broken down by resource_prefix and index_name - - *apiserver_cache_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from watch cache, broken down by resource_prefix - - *apiserver_cache_list_returned_objects_total*: Counter of objects returned for a LIST request from watch cache, broken down by resource_prefix - - *apiserver_storage_list_total*: Counter of LIST requests served from etcd, broken down by resource - - *apiserver_storage_list_fetched_objects_total*: Counter of objects read from etcd in the course of serving a LIST request, broken down by resource - - *apiserver_storage_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from etcd, broken down by resource - - *apiserver_storage_list_returned_objects_total*: Counter of objects returned for a LIST request from etcd, broken down by resource ([#104983](https://github.com/kubernetes/kubernetes/pull/104983), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) -- The pause image list now contains Windows Server 2022. ([#104438](https://github.com/kubernetes/kubernetes/pull/104438), [@nick5616](https://github.com/nick5616)) -- The script `kube-up.sh` installs `csi-proxy v1.0.1-gke.0`. ([#104426](https://github.com/kubernetes/kubernetes/pull/104426), [@mauriciopoppe](https://github.com/mauriciopoppe)) -- This PR adds the following metrics for API Priority and Fairness. - - **apiserver_flowcontrol_priority_level_seat_count_samples**: histograms of seats occupied by executing requests (both regular and final-delay phases included), broken down by priority_level; the observations are taken once per millisecond. - - **apiserver_flowcontrol_priority_level_seat_count_watermarks**: histograms of high and low watermarks of number of seats occupied by executing requests (both regular and final-delay phases included), broken down by priority_level. - - **apiserver_flowcontrol_watch_count_samples**: histograms of number of watches relevant to a given mutating request, broken down by that request's priority_level and flow_schema. ([#105873](https://github.com/kubernetes/kubernetes/pull/105873), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery, Instrumentation and Testing] -- Topology Aware Hints have graduated to beta. ([#106433](https://github.com/kubernetes/kubernetes/pull/106433), [@robscott](https://github.com/robscott)) [SIG Network] -- Turn on CSIMigrationAzureDisk by default on 1.23 ([#104670](https://github.com/kubernetes/kubernetes/pull/104670), [@andyzhangx](https://github.com/andyzhangx)) -- Update the system-validators library to v1.6.0 ([#106323](https://github.com/kubernetes/kubernetes/pull/106323), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] -- Updated Cluster Autosaler to version `1.22.0`. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.22.0. ([#104293](https://github.com/kubernetes/kubernetes/pull/104293), [@x13n](https://github.com/x13n)) -- Updates `debian-iptables` to v1.6.7 to pick up CVE fixes. ([#104970](https://github.com/kubernetes/kubernetes/pull/104970), [@PushkarJ](https://github.com/PushkarJ)) -- Updates the following images to pick up CVE fixes: - - `debian` to v1.9.0 - - `debian-iptables` to v1.6.6 - - `setcap` to v2.0.4 ([#104142](https://github.com/kubernetes/kubernetes/pull/104142), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Upgrade etcd to 3.5.1 ([#105706](https://github.com/kubernetes/kubernetes/pull/105706), [@uthark](https://github.com/uthark)) [SIG Cloud Provider, Cluster Lifecycle and Testing] -- When feature gate `JobTrackingWithFinalizers` is enabled: - - Limit the number of Pods tracked in a single Job sync to avoid starvation of small Jobs. - - The metric `job_pod_finished_total` counts the number of finished Pods tracked by the Job controller. ([#105197](https://github.com/kubernetes/kubernetes/pull/105197), [@alculquicondor](https://github.com/alculquicondor)) -- When using `RequestedToCapacityRatio` ScoringStrategy, empty shape will cause error. ([#106169](https://github.com/kubernetes/kubernetes/pull/106169), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling] -- `client-go` event library allows customizing spam filtering function. - It is now possible to override `SpamKeyFunc`, which is used by event filtering to detect spam in the events. ([#103918](https://github.com/kubernetes/kubernetes/pull/103918), [@olagacek](https://github.com/olagacek)) -- `client-go`, using log level 9, traces the following events of a HTTP request: - - DNS lookup - - TCP dialing - - TLS handshake - - Time to get a connection from the pool - - Time to process a request ([#105156](https://github.com/kubernetes/kubernetes/pull/105156), [@aojea](https://github.com/aojea)) -- `kube-scheduler` now logs node and plugin scoring even though --v<10 - - scores of the top 3 plugins in the top 3 nodes are dumped if --v=4,5 - - scores of all plugins in the top 6 nodes are dumped if --v=6,7,8,9 ([#103515](https://github.com/kubernetes/kubernetes/pull/103515), [@muma378](https://github.com/muma378)) - -### Documentation - -- Graduating `pod_scheduling_duration_seconds`, `pod_scheduling_attempts`, `framework_extension_point_duration_seconds`, `plugin_execution_duration_seconds` and `queue_incoming_pods_total` metrics to stable. ([#106266](https://github.com/kubernetes/kubernetes/pull/106266), [@ahg-g](https://github.com/ahg-g)) [SIG Instrumentation, Scheduling and Testing] -- The test "[sig-network] EndpointSlice should have Endpoints and EndpointSlices pointing to API Server [Conformance]" only requires that there is an EndpointSlice that references the "kubernetes.default" service, it no longer requires that its named "kubernetes". ([#104664](https://github.com/kubernetes/kubernetes/pull/104664), [@aojea](https://github.com/aojea)) -- Update description of `--audit-log-maxbackup` to describe behavior when `value = 0`. ([#103843](https://github.com/kubernetes/kubernetes/pull/103843), [@Arkessler](https://github.com/Arkessler)) -- Users should not rely on unsupported CRON_TZ variable when specifying schedule, both the API server and cronjob controller will emit warnings pointing to https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/ containing explanation ([#106455](https://github.com/kubernetes/kubernetes/pull/106455), [@soltysh](https://github.com/soltysh)) [SIG Apps] - -### Failing Test - -- Fixes hostPath storage E2E tests within SELinux enabled env ([#104551](https://github.com/kubernetes/kubernetes/pull/104551), [@Elbehery](https://github.com/Elbehery)) - -### Bug or Regression - -- (PodSecurity admission) errors validating workload resources (deployment, replicaset, etc.) no longer block admission. ([#106017](https://github.com/kubernetes/kubernetes/pull/106017), [@tallclair](https://github.com/tallclair)) [SIG Auth] -- A pod that the Kubelet rejects was still considered as being accepted for a brief period of time after rejection, which might cause some pods to be rejected briefly that could fit on the node. A pod that is still terminating (but has status indicating it has failed) may also still be consuming resources and so should also be considered. ([#104817](https://github.com/kubernetes/kubernetes/pull/104817), [@smarterclayton](https://github.com/smarterclayton)) -- Add Kubernetes Events to the `Kubelet Graceful Shutdown` feature. ([#101081](https://github.com/kubernetes/kubernetes/pull/101081), [@rphillips](https://github.com/rphillips)) -- Add Pod Security admission metrics: `pod_security_evaluations_total`, `pod_security_exemptions_total`, `pod_security_errors_total` ([#105898](https://github.com/kubernetes/kubernetes/pull/105898), [@tallclair](https://github.com/tallclair)) -- Add support for Windows Network stats in Containerd ([#105744](https://github.com/kubernetes/kubernetes/pull/105744), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node, Testing and Windows] -- Added show-capacity option to `kubectl top node` to show `Capacity` resource usage ([#102917](https://github.com/kubernetes/kubernetes/pull/102917), [@bysnupy](https://github.com/bysnupy)) [SIG CLI] -- Apimachinery: Pretty printed JSON and YAML output is now indented consistently. ([#105466](https://github.com/kubernetes/kubernetes/pull/105466), [@liggitt](https://github.com/liggitt)) -- Be able to create a Pod with Generic Ephemeral Volumes as raw block devices. ([#105682](https://github.com/kubernetes/kubernetes/pull/105682), [@pohly](https://github.com/pohly)) -- CA, certificate and key bundles for the `generic-apiserver` based servers will be reloaded immediately after the files are changed. ([#104102](https://github.com/kubernetes/kubernetes/pull/104102), [@tnqn](https://github.com/tnqn)) -- Change `kubectl diff --invalid-arg` status code from 1 to 2 to match docs ([#105445](https://github.com/kubernetes/kubernetes/pull/105445), [@ardaguclu](https://github.com/ardaguclu)) -- Changed kubectl describe to compute age of an event using the `EventSeries.count` and `EventSeries.lastObservedTime`. ([#104482](https://github.com/kubernetes/kubernetes/pull/104482), [@harjas27](https://github.com/harjas27)) -- Changes behaviour of kube-proxy start; does not attempt to set specific `sysctl` values (which does not work in recent Kernel versions anymore in non-init namespaces), when the current sysctl values are already set higher. ([#103174](https://github.com/kubernetes/kubernetes/pull/103174), [@Napsty](https://github.com/Napsty)) -- Client-go uses the same HTTP client for all the generated groups and versions, allowing to share customized transports for multiple groups versions. ([#105490](https://github.com/kubernetes/kubernetes/pull/105490), [@aojea](https://github.com/aojea)) -- Disable aufs module for gce clusters. ([#103831](https://github.com/kubernetes/kubernetes/pull/103831), [@lizhuqi](https://github.com/lizhuqi)) -- Do not unmount and mount subpath bind mounts during container creation unless bind mount changes ([#105512](https://github.com/kubernetes/kubernetes/pull/105512), [@gnufied](https://github.com/gnufied)) [SIG Storage] -- Don't prematurely close reflectors in case of slow initialization in watch based manager to fix issues with inability to properly mount secrets/configmaps. ([#104604](https://github.com/kubernetes/kubernetes/pull/104604), [@wojtek-t](https://github.com/wojtek-t)) -- Don't use a custom dialer for the kubelet if is not rotating certificates, so we can reuse TCP connections and have only one between the apiserver and the kubelet. - If users experiment problems with stale connections using HTTP1.1, they can force the previous behavior of the kubelet by setting the environment variable DISABLE_HTTP2. ([#104844](https://github.com/kubernetes/kubernetes/pull/104844), [@aojea](https://github.com/aojea)) [SIG API Machinery, Auth and Node] -- EndpointSlice Mirroring controller now cleans up managed EndpointSlices when a Service selector is added ([#105997](https://github.com/kubernetes/kubernetes/pull/105997), [@robscott](https://github.com/robscott)) [SIG Apps, Network and Testing] -- Enhanced event messages for pod failed for exec probe timeout ([#106201](https://github.com/kubernetes/kubernetes/pull/106201), [@yxxhero](https://github.com/yxxhero)) [SIG Node] -- Ensure Pods are removed from the scheduler cache when the scheduler misses deletion events due to transient errors ([#106102](https://github.com/kubernetes/kubernetes/pull/106102), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- Ensure `InstanceShutdownByProviderID` return false for creating Azure VMs. ([#104382](https://github.com/kubernetes/kubernetes/pull/104382), [@feiskyer](https://github.com/feiskyer)) -- Evicted and other terminated Pods will no longer revert to the `Running` phase. ([#105462](https://github.com/kubernetes/kubernetes/pull/105462), [@ehashman](https://github.com/ehashman)) -- Fix `kube-apiserver` metric reporting for the deprecated watch path of `/api/<version>/watch/...`. ([#104161](https://github.com/kubernetes/kubernetes/pull/104161), [@wojtek-t](https://github.com/wojtek-t)) -- Fix a regression where the Kubelet failed to exclude already completed pods from calculations about how many resources it was currently using when deciding whether to allow more pods. ([#104577](https://github.com/kubernetes/kubernetes/pull/104577), [@smarterclayton](https://github.com/smarterclayton)) -- Fix detach disk issue on deleting vmss node. ([#104572](https://github.com/kubernetes/kubernetes/pull/104572), [@andyzhangx](https://github.com/andyzhangx)) -- Fix job controller syncs: In case of conflicts, ensure that the sync happens with the most up to date information. Improves reliability of JobTrackingWithFinalizers. ([#105214](https://github.com/kubernetes/kubernetes/pull/105214), [@alculquicondor](https://github.com/alculquicondor)) -- Fix job tracking with finalizers for more than 500 pods, ensuring all finalizers are removed before counting the Pod. ([#104666](https://github.com/kubernetes/kubernetes/pull/104666), [@alculquicondor](https://github.com/alculquicondor)) -- Fix pod name of NonIndexed Jobs to not include rogue `-1` substring ([#105676](https://github.com/kubernetes/kubernetes/pull/105676), [@alculquicondor](https://github.com/alculquicondor)) -- Fix scoring for `NodeResourcesBalancedAllocation` plugins when nodes have containers with no requests. ([#105845](https://github.com/kubernetes/kubernetes/pull/105845), [@ahmad-diaa](https://github.com/ahmad-diaa)) -- Fix system default topology spreading when nodes don't have zone labels. Pods correctly spread by default now. ([#105046](https://github.com/kubernetes/kubernetes/pull/105046), [@alculquicondor](https://github.com/alculquicondor)) -- Fix: do not try to delete a LoadBalancer that does not exist ([#105777](https://github.com/kubernetes/kubernetes/pull/105777), [@nilo19](https://github.com/nilo19)) -- Fix: ignore non-VMSS error for VMAS nodes in `reconcileBackendPools`. ([#103997](https://github.com/kubernetes/kubernetes/pull/103997), [@nilo19](https://github.com/nilo19)) -- Fix: leave the probe path empty for TCP probes ([#105253](https://github.com/kubernetes/kubernetes/pull/105253), [@nilo19](https://github.com/nilo19)) -- Fix: remove VMSS and VMSS instances from SLB backend pool only when necessary ([#105839](https://github.com/kubernetes/kubernetes/pull/105839), [@nilo19](https://github.com/nilo19)) -- Fix: skip `instance not found` when decoupling VMSSs from LB ([#105666](https://github.com/kubernetes/kubernetes/pull/105666), [@nilo19](https://github.com/nilo19)) -- Fix: skip case sensitivity when checking Azure NSG rules. ([#104384](https://github.com/kubernetes/kubernetes/pull/104384), [@feiskyer](https://github.com/feiskyer)) -- Fixed a bug that prevents a PersistentVolume that has a PersistentVolumeClaim UID which doesn't exist in local cache but exists in etcd from being updated to the Released phase. ([#105211](https://github.com/kubernetes/kubernetes/pull/105211), [@xiaopingrubyist](https://github.com/xiaopingrubyist)) -- Fixed a bug where using `kubectl patch` with `$deleteFromPrimitiveList` on a nonexistent or empty list would add the item to the list ([#105421](https://github.com/kubernetes/kubernetes/pull/105421), [@brianpursley](https://github.com/brianpursley)) -- Fixed a bug which could cause webhooks to have an incorrect copy of the old object after an Apply or Update ([#106195](https://github.com/kubernetes/kubernetes/pull/106195), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery] -- Fixed a bug which kubectl would emit duplicate warning messages for flag names that contain an underscore and recommend using a nonexistent flag in some cases. ([#103852](https://github.com/kubernetes/kubernetes/pull/103852), [@brianpursley](https://github.com/brianpursley)) -- Fixed a panic in `kubectl` when creating secrets with an improper output type ([#106317](https://github.com/kubernetes/kubernetes/pull/106317), [@lauchokyip](https://github.com/lauchokyip)) -- Fixed a regression setting `--audit-log-path=-` to log to stdout in 1.22 pre-release. ([#103875](https://github.com/kubernetes/kubernetes/pull/103875), [@andrewrynhard](https://github.com/andrewrynhard)) -- Fixed an issue which didn't append OS's environment variables with the one provided in Credential Provider Config file, which may fail execution of external credential provider binary. - See https://github.com/kubernetes/kubernetes/issues/102750. ([#103231](https://github.com/kubernetes/kubernetes/pull/103231), [@n4j](https://github.com/n4j)) -- Fixed applying of SELinux labels to CSI volumes on very busy systems (with "error checking for SELinux support: could not get consistent content of /proc/self/mountinfo after 3 attempts") ([#105934](https://github.com/kubernetes/kubernetes/pull/105934), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] -- Fixed architecture within manifest for non `amd64` etcd images. ([#104116](https://github.com/kubernetes/kubernetes/pull/104116), [@saschagrunert](https://github.com/saschagrunert)) -- Fixed architecture within manifest for non `amd64` etcd images. ([#105484](https://github.com/kubernetes/kubernetes/pull/105484), [@saschagrunert](https://github.com/saschagrunert)) -- Fixed azure disk translation issue due to lower case `managed` kind. ([#103439](https://github.com/kubernetes/kubernetes/pull/103439), [@andyzhangx](https://github.com/andyzhangx)) -- Fixed client IP preservation for NodePort service with protocol SCTP in ipvs. ([#104756](https://github.com/kubernetes/kubernetes/pull/104756), [@tnqn](https://github.com/tnqn)) -- Fixed concurrent map access causing panics when logging timed-out API calls. ([#105734](https://github.com/kubernetes/kubernetes/pull/105734), [@marseel](https://github.com/marseel)) -- Fixed consolidate logs for `instance not found` error - Fixed skip `not found` nodes when reconciling LB backend address pools ([#105188](https://github.com/kubernetes/kubernetes/pull/105188), [@nilo19](https://github.com/nilo19)) -- Fixed occasional pod cgroup freeze when using cgroup v1 and systemd driver. ([#104528](https://github.com/kubernetes/kubernetes/pull/104528), [@kolyshkin](https://github.com/kolyshkin)) -- Fixed the issue where logging output of kube-scheduler configuration files included line breaks and escape characters. The output also attempted to output the configuration file in one section without showing the user a more readable format. ([#106228](https://github.com/kubernetes/kubernetes/pull/106228), [@sanchayanghosh](https://github.com/sanchayanghosh)) [SIG Scheduling] -- Fixes a bug that could result in the EndpointSlice controller unnecessarily updating EndpointSlices associated with a Service that had Topology Aware Hints enabled. ([#105267](https://github.com/kubernetes/kubernetes/pull/105267), [@llhuii](https://github.com/llhuii)) -- Fixes a regression that could cause panics in LRU caches in controller-manager, kubelet, kube-apiserver, or client-go. ([#104466](https://github.com/kubernetes/kubernetes/pull/104466), [@stbenjam](https://github.com/stbenjam)) -- Fixes an issue where an admission webhook can observe a v1 Pod object that does not have the `defaultMode` field set in the injected service account token volume in kube-api-server. ([#104523](https://github.com/kubernetes/kubernetes/pull/104523), [@liggitt](https://github.com/liggitt)) -- Fixes the `should support building a client with a CSR` E2E test to work with clusters configured with short certificate lifetimes ([#105396](https://github.com/kubernetes/kubernetes/pull/105396), [@liggitt](https://github.com/liggitt)) -- Graceful node shutdown, allow the actual inhibit delay to be greater than the expected inhibit delay. ([#103137](https://github.com/kubernetes/kubernetes/pull/103137), [@wzshiming](https://github.com/wzshiming)) -- Handle Generic Ephemeral Volumes properly in the node limits scheduler filter and the kubelet `hostPath` check. ([#100482](https://github.com/kubernetes/kubernetes/pull/100482), [@pohly](https://github.com/pohly)) -- Headless Services with no selector which were created without dual-stack enabled will be defaulted to RequireDualStack instead of PreferDualStack. This is consistent with such Services which are created with dual-stack enabled. ([#104986](https://github.com/kubernetes/kubernetes/pull/104986), [@thockin](https://github.com/thockin)) -- Ignore `not a vmss instance` error for VMAS nodes in `EnsureBackendPoolDeleted`. ([#105185](https://github.com/kubernetes/kubernetes/pull/105185), [@ialidzhikov](https://github.com/ialidzhikov)) -- Ignore the case when comparing azure tags in service annotation. ([#104705](https://github.com/kubernetes/kubernetes/pull/104705), [@nilo19](https://github.com/nilo19)) -- Ignore the case when updating Azure tags. ([#104593](https://github.com/kubernetes/kubernetes/pull/104593), [@nilo19](https://github.com/nilo19)) -- Introduce a new server run option 'shutdown-send-retry-after'. If true the HTTP Server will continue listening until all non longrunning request(s) in flight have been drained, during this window all incoming requests will be rejected with a status code `429` and a 'Retry-After' response header. ([#101257](https://github.com/kubernetes/kubernetes/pull/101257), [@tkashem](https://github.com/tkashem)) -- Kube-apiserver: Avoid unnecessary repeated calls to `admission webhooks` that reject an update or delete request. ([#104182](https://github.com/kubernetes/kubernetes/pull/104182), [@liggitt](https://github.com/liggitt)) -- Kube-apiserver: Server Side Apply merge order is reverted to match v1.22 behavior until `http://issue.k8s.io/104641` is resolved. ([#106661](https://github.com/kubernetes/kubernetes/pull/106661), [@liggitt](https://github.com/liggitt)) -- Kube-apiserver: events created via the `events.k8s.io` API group for cluster-scoped objects are now permitted in the default namespace as well for compatibility with events clients and the `v1` API ([#100125](https://github.com/kubernetes/kubernetes/pull/100125), [@h4ghhh](https://github.com/h4ghhh)) -- Kube-apiserver: fix a memory leak when deleting multiple objects with a `deletecollection`. ([#105606](https://github.com/kubernetes/kubernetes/pull/105606), [@sxllwx](https://github.com/sxllwx)) -- Kube-proxy health check ports used to listen to `:<port>` for each of the services. This is not needed and opens ports in addresses the cluster user may not have intended. The PR limits listening to all node address which are controlled by `--nodeport-addresses` flag. if no addresses are provided then we default to existing behavior by listening to `:<port>` for each service ([#104742](https://github.com/kubernetes/kubernetes/pull/104742), [@khenidak](https://github.com/khenidak)) -- Kube-proxy: delete stale conntrack UDP entries for loadbalancer ingress IP. ([#104009](https://github.com/kubernetes/kubernetes/pull/104009), [@aojea](https://github.com/aojea)) -- Kube-scheduler now doesn't print any usage message when unknown flag is specified. ([#104503](https://github.com/kubernetes/kubernetes/pull/104503), [@sanposhiho](https://github.com/sanposhiho)) -- Kube-up now includes CoreDNS version v1.8.6 ([#106091](https://github.com/kubernetes/kubernetes/pull/106091), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cloud Provider] -- Kubeadm: When adding an etcd peer to an existing cluster, if an error is returned indicating the peer has already been added, this is accepted and a `ListMembers` call is used instead to return the existing cluster. This helps to diminish the exponential backoff when the first AddMember call times out, while still retaining a similar performance when the peer has already been added from a previous call. ([#104134](https://github.com/kubernetes/kubernetes/pull/104134), [@ihgann](https://github.com/ihgann)) -- Kubeadm: do not allow empty `--config` paths to be passed to `kubeadm kubeconfig user` ([#105649](https://github.com/kubernetes/kubernetes/pull/105649), [@navist2020](https://github.com/navist2020)) -- Kubeadm: fix a bug on Windows worker nodes, where the downloaded KubeletConfiguration from the cluster can contain Linux paths that do not work on Windows and can trip the kubelet binary. ([#105992](https://github.com/kubernetes/kubernetes/pull/105992), [@hwdef](https://github.com/hwdef)) [SIG Cluster Lifecycle and Windows] -- Kubeadm: switch the preflight check (called 'Swap') that verifies if swap is enabled on Linux hosts to report a warning instead of an error. This is related to the graduation of the NodeSwap feature gate in the kubelet to Beta and being enabled by default in 1.23 - allows swap support on Linux hosts. In the next release of kubeadm (1.24) the preflight check will be removed, thus we recommend that you stop using it - e.g. via `--ignore-preflight-errors` or the kubeadm config. ([#104854](https://github.com/kubernetes/kubernetes/pull/104854), [@pacoxu](https://github.com/pacoxu)) -- Kubelet did not report `kubelet_volume_stats_*` metrics for Generic Ephemeral Volumes. ([#105569](https://github.com/kubernetes/kubernetes/pull/105569), [@pohly](https://github.com/pohly)) -- Kubelet's Node Grace Shutdown will terminate probes when shutting down ([#105215](https://github.com/kubernetes/kubernetes/pull/105215), [@rphillips](https://github.com/rphillips)) -- Kubelet: fixes a file descriptor leak in log rotation ([#106382](https://github.com/kubernetes/kubernetes/pull/106382), [@rphillips](https://github.com/rphillips)) [SIG Node] -- Kubelet: the printing of flags at the start of kubelet now uses the final logging configuration. ([#106520](https://github.com/kubernetes/kubernetes/pull/106520), [@pohly](https://github.com/pohly)) -- Make the etcd client (used by the API server) retry certain types of errors. The full list of retriable (codes.Unavailable) errors can be found at https://github.com/etcd-io/etcd/blob/main/api/v3rpc/rpctypes/error.go#L72 ([#105069](https://github.com/kubernetes/kubernetes/pull/105069), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Metrics changes: Fix exposed buckets of `scheduler_volume_scheduling_duration_seconds_bucket` metric. ([#100720](https://github.com/kubernetes/kubernetes/pull/100720), [@dntosas](https://github.com/dntosas)) -- Migrated kubernetes object references (= name + namespace) to structured logging when using JSON as log output format ([#104877](https://github.com/kubernetes/kubernetes/pull/104877), [@pohly](https://github.com/pohly)) -- Pass additional flags to subpath mount to avoid flakes in certain conditions. ([#104253](https://github.com/kubernetes/kubernetes/pull/104253), [@mauriciopoppe](https://github.com/mauriciopoppe)) -- Pod SecurityContext sysctls name parameter for update requests where the existing object's sysctl contains slashes and kubelet sysctl whitelist support contains slashes. ([#102393](https://github.com/kubernetes/kubernetes/pull/102393), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Apps, Auth, Node, Storage and Testing] -- Pod will not start when Init container was OOM killed. ([#104650](https://github.com/kubernetes/kubernetes/pull/104650), [@yxxhero](https://github.com/yxxhero)) [SIG Node] -- PodResources interface was changed, now it returns only isolated CPUs ([#97415](https://github.com/kubernetes/kubernetes/pull/97415), [@AlexeyPerevalov](https://github.com/AlexeyPerevalov)) -- Provide IPv6 support for internal load balancer. ([#103794](https://github.com/kubernetes/kubernetes/pull/103794), [@nilo19](https://github.com/nilo19)) -- Reduce the number of calls to docker for stats via dockershim. For Windows this reduces the latency when calling docker, for Linux this saves cpu cycles. ([#104287](https://github.com/kubernetes/kubernetes/pull/104287), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows] -- Removed the error message label from the `kubelet_started_pods_errors_total` metric ([#105213](https://github.com/kubernetes/kubernetes/pull/105213), [@yxxhero](https://github.com/yxxhero)) -- Resolves a potential issue with GC and NS controllers which may delete objects after getting a 404 response from the server during its startup. This PR ensures that requests to aggregated APIs will get 503, not 404 while the APIServiceRegistrationController hasn't finished its job. ([#104748](https://github.com/kubernetes/kubernetes/pull/104748), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Respect grace period when updating static pods. ([#104743](https://github.com/kubernetes/kubernetes/pull/104743), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing] -- Revert building binaries with PIE mode. ([#105352](https://github.com/kubernetes/kubernetes/pull/105352), [@ehashman](https://github.com/ehashman)) -- Reverts adding namespace label to admission metrics (and histogram exansion) due to cardinality issues. ([#104033](https://github.com/kubernetes/kubernetes/pull/104033), [@s-urbaniak](https://github.com/s-urbaniak)) -- Reverts the CRI API version surfaced by dockershim to `v1alpha2`. ([#106808](https://github.com/kubernetes/kubernetes/pull/106808), [@saschagrunert](https://github.com/saschagrunert)) -- Scheduler resource metrics over fractional binary quantities (2.5Gi, 1.1Ki) were incorrectly reported as very small values. ([#103751](https://github.com/kubernetes/kubernetes/pull/103751), [@y-tag](https://github.com/y-tag)) -- Support more than 100 disk mounts on Windows ([#105673](https://github.com/kubernetes/kubernetes/pull/105673), [@andyzhangx](https://github.com/andyzhangx)) -- Support using negative array index in JSON patch replace operations. ([#105896](https://github.com/kubernetes/kubernetes/pull/105896), [@zqzten](https://github.com/zqzten)) -- The `--leader-elect*` CLI args are now honored in scheduler. ([#105915](https://github.com/kubernetes/kubernetes/pull/105915), [@Huang-Wei](https://github.com/Huang-Wei)) -- The `--leader-elect*` CLI args are now honored in the scheduler. ([#105712](https://github.com/kubernetes/kubernetes/pull/105712), [@Huang-Wei](https://github.com/Huang-Wei)) -- The `client-go` dynamic client sets the header `Content-Type: application/json` by default ([#104327](https://github.com/kubernetes/kubernetes/pull/104327), [@sxllwx](https://github.com/sxllwx)) -- The `kube-Proxy` now correctly filters out unready endpoints for Services with Topology. ([#106507](https://github.com/kubernetes/kubernetes/pull/106507), [@robscott](https://github.com/robscott)) -- The `pods/binding` subresource now honors `metadata.uid` and `metadata.resourceVersion` ([#105913](https://github.com/kubernetes/kubernetes/pull/105913), [@aholic](https://github.com/aholic)) -- The kube-proxy sync_proxy_rules_iptables_total metric now gives - the correct number of rules, rather than being off by one. - - Fixed multiple iptables proxy regressions introduced in 1.22: - - - When using Services with SessionAffinity, client affinity for an - endpoint now gets broken when that endpoint becomes non-ready - (rather than continuing until the endpoint is fully deleted). - - - Traffic to a service IP now starts getting rejected (as opposed to - merely dropped) as soon as there are no longer any *usable* - endpoints, rather than waiting until all of the terminating - endpoints have terminated even when those terminating endpoints - were not being used. - - - Chains for endpoints that won't be used are no longer output to - iptables, saving a bit of memory/time/cpu. ([#106030](https://github.com/kubernetes/kubernetes/pull/106030), [@danwinship](https://github.com/danwinship)) [SIG Network] -- Topology Aware Hints now ignores unready endpoints when assigning hints. ([#106510](https://github.com/kubernetes/kubernetes/pull/106510), [@robscott](https://github.com/robscott)) -- Topology Hints now excludes control plane notes from capacity calculations. ([#104744](https://github.com/kubernetes/kubernetes/pull/104744), [@robscott](https://github.com/robscott)) -- Update Go used to build migrate script in etcd image to v1.16.7. ([#104301](https://github.com/kubernetes/kubernetes/pull/104301), [@serathius](https://github.com/serathius)) -- Updated json representation for a conflicted taint to `Key=Effect` when a conflicted taint occurs in kubectl taint. ([#104011](https://github.com/kubernetes/kubernetes/pull/104011), [@manugupt1](https://github.com/manugupt1)) -- Upgrades functionality of `kubectl kustomize` as described at - https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.4.1 ([#106389](https://github.com/kubernetes/kubernetes/pull/106389), [@natasha41575](https://github.com/natasha41575)) [SIG CLI] -- Watch requests that are delegated to aggregated API servers no longer reserve concurrency units (seats) in the API Priority and Fairness dispatcher for their entire duration. ([#105511](https://github.com/kubernetes/kubernetes/pull/105511), [@benluddy](https://github.com/benluddy)) -- When a static pod file is deleted and recreated while using a fixed UID, the pod was not properly restarted. ([#104847](https://github.com/kubernetes/kubernetes/pull/104847), [@smarterclayton](https://github.com/smarterclayton)) -- XFS-filesystems are now force-formatted (option `-f`) in order to avoid problems being formatted due to detection of magic super-blocks. This aligns with the behaviour of formatting of ext3/4 filesystems. ([#104923](https://github.com/kubernetes/kubernetes/pull/104923), [@davidkarlsen](https://github.com/davidkarlsen)) -- `--log-flush-frequency` had no effect in several commands or was missing. Help and warning texts were not always using the right format for a command (`add_dir_header` instead of `add-dir-header`). Fixing this included cleaning up flag handling in component-base/logs: that package no longer adds flags to the global flag sets. Commands which want the klog and `--log-flush-frequency` flags must explicitly call `logs.AddFlags`; the new `cli.Run` does that for commands. That helper function also covers flag normalization and printing of usage and errors in a consistent way (print usage text first if parsing failed, then the error). ([#105076](https://github.com/kubernetes/kubernetes/pull/105076), [@pohly](https://github.com/pohly)) - -### Other (Cleanup or Flake) - -- All `klog` flags except for `-v` and `-vmodule` are deprecated. Support for `-vmodule` is only guaranteed for the text log format. ([#105042](https://github.com/kubernetes/kubernetes/pull/105042), [@pohly](https://github.com/pohly)) -- Better pod events ("waiting for ephemeral volume controller to create the persistentvolumeclaim"" instead of "persistentvolumeclaim not found") when using generic ephemeral volumes. ([#104605](https://github.com/kubernetes/kubernetes/pull/104605), [@pohly](https://github.com/pohly)) -- Changed buckets in apiserver_request_duration_seconds metric from [0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0,1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60] to [0.05, 0.1, 0.2, 0.4, 0.6, 0.8, 1.0, 1.25, 1.5, 2, 3, 4, 5, 6, 8, 10, 15, 20, 30, 45, 60] ([#106306](https://github.com/kubernetes/kubernetes/pull/106306), [@pawbana](https://github.com/pawbana)) [SIG API Machinery, Instrumentation and Testing] -- Deprecate `apiserver_longrunning_gauge` and `apiserver_register_watchers` in 1.23.0. ([#103793](https://github.com/kubernetes/kubernetes/pull/103793), [@yan-lgtm](https://github.com/yan-lgtm)) -- Enhanced error message for nodes not selected by scheduler due to pod's PersistentVolumeClaim(s) bound to PersistentVolume(s) that do not exist. ([#105196](https://github.com/kubernetes/kubernetes/pull/105196), [@yibozhuang](https://github.com/yibozhuang)) -- Fix an issue in cleaning up `CertificateSigningRequest` objects with an unparseable `status.certificate` field. ([#103823](https://github.com/kubernetes/kubernetes/pull/103823), [@liggitt](https://github.com/liggitt)) -- Kube-apiserver: requests to node, Service, and Pod `/proxy` subresources with no additional URL path now only automatically redirect GET and HEAD requests. ([#95128](https://github.com/kubernetes/kubernetes/pull/95128), [@Riaankl](https://github.com/Riaankl)) -- Kube-apiserver: sets an upper-bound on the lifetime of idle keep-alive connections and the time to read the headers of incoming requests. ([#103958](https://github.com/kubernetes/kubernetes/pull/103958), [@liggitt](https://github.com/liggitt)) -- Kubeadm: external etcd endpoints passed in the `ClusterConfiguration` that have Unicode characters are no longer IDNA encoded (converted to Punycode). They are now just URL encoded as per Go's implementation of RFC-3986, have duplicate "/" removed from the URL paths, and passed like that directly to the `kube-apiserver` `--etcd-servers` flag. If you have etcd endpoints that have Unicode characters, it is advisable to encode them in advance with tooling that is fully IDNA compliant. If you don't do that, the Go standard library (used in k8s and etcd) would do it for you when making requests to the endpoints. ([#103801](https://github.com/kubernetes/kubernetes/pull/103801), [@gkarthiks](https://github.com/gkarthiks)) -- Kubeadm: remove the `--port` flag from the manifest for the `kube-controller-manager` since the flag has been a NO-OP since 1.22 and insecure serving was removed for the component. ([#104157](https://github.com/kubernetes/kubernetes/pull/104157), [@knight42](https://github.com/knight42)) -- Kubeadm: remove the `--port` flag from the manifest for the kube-scheduler since the flag has been a NO-OP since 1.23 and insecure serving was removed for the component. ([#105034](https://github.com/kubernetes/kubernetes/pull/105034), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: update references to legacy artifacts locations, the `ci-cross` prefix has been removed from the version match as it does not exist in the new `gs://k8s-release-dev` bucket. ([#103813](https://github.com/kubernetes/kubernetes/pull/103813), [@SataQiu](https://github.com/SataQiu)) -- Kubectl: deprecated command line flags (like several of the klog flags) now have a `DEPRECATED: <explanation>` comment. ([#106172](https://github.com/kubernetes/kubernetes/pull/106172), [@pohly](https://github.com/pohly)) [SIG CLI] -- Kubemark is now built as a portable, static binary. ([#106150](https://github.com/kubernetes/kubernetes/pull/106150), [@pohly](https://github.com/pohly)) [SIG Scalability and Testing] -- Migrate `cmd/proxy/{config, healthcheck, winkernel}` to structured logging ([#104944](https://github.com/kubernetes/kubernetes/pull/104944), [@jyz0309](https://github.com/jyz0309)) -- Migrate `pkg/proxy` to structured logging ([#104908](https://github.com/kubernetes/kubernetes/pull/104908), [@CIPHERTron](https://github.com/CIPHERTron)) -- Migrate `pkg/scheduler/framework/plugins/interpodaffinity/filtering.go`,`pkg/scheduler/framework/plugins/podtopologyspread/filtering.go`, `pkg/scheduler/framework/plugins/volumezone/volume_zone.go` to structured logging ([#105931](https://github.com/kubernetes/kubernetes/pull/105931), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Migrate `pkg/scheduler` to structured logging. ([#99273](https://github.com/kubernetes/kubernetes/pull/99273), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) -- Migrate cmd/proxy/app and pkg/proxy/meta_proxier to structured logging ([#104928](https://github.com/kubernetes/kubernetes/pull/104928), [@jyz0309](https://github.com/jyz0309)) -- Migrated `cmd/kube-scheduler/app/server.go`, `pkg/scheduler/framework/plugins/nodelabel/node_label.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/csi.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/non_csi.go` to structured logging ([#105855](https://github.com/kubernetes/kubernetes/pull/105855), [@shivanshu1333](https://github.com/shivanshu1333)) -- Migrated `pkg/proxy/ipvs` to structured logging ([#104932](https://github.com/kubernetes/kubernetes/pull/104932), [@shivanshu1333](https://github.com/shivanshu1333)) -- Migrated `pkg/proxy/userspace` to structured logging. ([#104931](https://github.com/kubernetes/kubernetes/pull/104931), [@shivanshu1333](https://github.com/shivanshu1333)) -- Migrated `pkg/proxy` to structured logging ([#104891](https://github.com/kubernetes/kubernetes/pull/104891), [@shivanshu1333](https://github.com/shivanshu1333)) -- Migrated `pkg/scheduler/framework/plugins/volumebinding/assume_cache.go` to structured logging. ([#105904](https://github.com/kubernetes/kubernetes/pull/105904), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation, Scheduling and Storage] -- Migrated `pkg/scheduler/framework/preemption/preemption.go`, `pkg/scheduler/framework/plugins/examples/stateful/stateful.go`, and `pkg/scheduler/framework/plugins/noderesources/resource_allocation.go` to structured logging ([#105967](https://github.com/kubernetes/kubernetes/pull/105967), [@shivanshu1333](https://github.com/shivanshu1333)) [SIG Instrumentation, Node and Scheduling] -- Migrated pkg/proxy/winuserspace to structured logging ([#105035](https://github.com/kubernetes/kubernetes/pull/105035), [@shivanshu1333](https://github.com/shivanshu1333)) -- Migrated scheduler file `cache.go` to structured logging ([#105969](https://github.com/kubernetes/kubernetes/pull/105969), [@shivanshu1333](https://github.com/shivanshu1333)) [SIG Instrumentation and Scheduling] -- Migrated scheduler files `comparer.go`, `dumper.go`, `node_tree.go` to structured logging ([#105968](https://github.com/kubernetes/kubernetes/pull/105968), [@shivanshu1333](https://github.com/shivanshu1333)) [SIG Instrumentation and Scheduling] -- More detailed logging has been added to the EndpointSlice controller for Topology. ([#104741](https://github.com/kubernetes/kubernetes/pull/104741), [@robscott](https://github.com/robscott)) -- Remove deprecated and not supported old cronjob controller. ([#106126](https://github.com/kubernetes/kubernetes/pull/106126), [@soltysh](https://github.com/soltysh)) [SIG Apps] -- Remove ignore error flag for drain, and set this feature as default ([#105571](https://github.com/kubernetes/kubernetes/pull/105571), [@yuzhiquan](https://github.com/yuzhiquan)) [SIG CLI] -- Remove the deprecated flags `--csr-only` and `--csr-dir` from `kubeadm certs renew`. Please use `kubeadm certs generate-csr` instead. ([#104796](https://github.com/kubernetes/kubernetes/pull/104796), [@RA489](https://github.com/RA489)) -- Support allocating whole NUMA nodes in the CPUManager when there is not a 1:1 mapping between socket and NUMA node ([#102015](https://github.com/kubernetes/kubernetes/pull/102015), [@klueska](https://github.com/klueska)) -- Support for Windows Server 2022 was added to the `k8s.gcr.io/pause:3.6` image. ([#104711](https://github.com/kubernetes/kubernetes/pull/104711), [@claudiubelu](https://github.com/claudiubelu)) -- Surface warning when users don't set `propagationPolicy` for jobs while deleting. ([#104080](https://github.com/kubernetes/kubernetes/pull/104080), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- The `AllowInsecureBackendProxy` feature gate is removed. It reached GA in Kubernetes 1.21. ([#103796](https://github.com/kubernetes/kubernetes/pull/103796), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- The `BoundServiceAccountTokenVolume` feature gate that is GA since v1.22 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#104167](https://github.com/kubernetes/kubernetes/pull/104167), [@ialidzhikov](https://github.com/ialidzhikov)) -- The `StartupProbe` feature gate that is GA since v1.20 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#104168](https://github.com/kubernetes/kubernetes/pull/104168), [@ialidzhikov](https://github.com/ialidzhikov)) -- The `SupportPodPidsLimit` and `SupportNodePidsLimit` feature gates that are GA since v1.20 are unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#104163](https://github.com/kubernetes/kubernetes/pull/104163), [@ialidzhikov](https://github.com/ialidzhikov)) -- The `apiserver` exposes 4 new metrics that allow to track the status of the Service CIDRs allocations: - - current number of available IPs per Service CIDR - - current number of used IPs per Service CIDR - - total number of allocation per Service CIDR - - total number of allocation errors per ServiceCIDR ([#104119](https://github.com/kubernetes/kubernetes/pull/104119), [@aojea](https://github.com/aojea)) -- The flag `--deployment-controller-sync-period` has been deprecated and will be removed in v1.24. ([#103538](https://github.com/kubernetes/kubernetes/pull/103538), [@Pingan2017](https://github.com/Pingan2017)) -- The image `gcr.io/kubernetes-e2e-test-images` will no longer be used in E2E / CI testing, `k8s.gcr.io/e2e-test-images` will be used instead. ([#103724](https://github.com/kubernetes/kubernetes/pull/103724), [@claudiubelu](https://github.com/claudiubelu)) -- The kube-proxy image contains `/go-runner` as a replacement for deprecated klog flags. ([#106301](https://github.com/kubernetes/kubernetes/pull/106301), [@pohly](https://github.com/pohly)) -- The maximum length of the `CSINode` id field has increased to 256 bytes to match the CSI spec. ([#104160](https://github.com/kubernetes/kubernetes/pull/104160), [@pacoxu](https://github.com/pacoxu)) -- Troubleshooting: informers log handlers that take more than 100 milliseconds to process an object if the `DeltaFIFO` queue starts to grow beyond 10 elements. ([#103917](https://github.com/kubernetes/kubernetes/pull/103917), [@aojea](https://github.com/aojea)) -- Update `cri-tools` dependency to v1.22.0. ([#104430](https://github.com/kubernetes/kubernetes/pull/104430), [@saschagrunert](https://github.com/saschagrunert)) -- Update `migratecmd/kube-proxy/app` logs to structured logging. ([#98913](https://github.com/kubernetes/kubernetes/pull/98913), [@yxxhero](https://github.com/yxxhero)) -- Update build images to Debian 11 (Bullseye) - - debian-base:bullseye-v1.0.0 - - debian-iptables:bullseye-v1.0.0 - - go-runner:v2.3.1-go1.17.1-bullseye.0 - - kube-cross:v1.23.0-go1.17.1-bullseye.1 - - setcap:bullseye-v1.0.0 - - cluster/images/etcd: Build 3.5.0-2 image - - test/conformance/image: Update runner image to base-debian11 ([#105158](https://github.com/kubernetes/kubernetes/pull/105158), [@justaugustus](https://github.com/justaugustus)) -- Update conformance image to use `debian-base:buster-v1.9.0`. ([#104696](https://github.com/kubernetes/kubernetes/pull/104696), [@PushkarJ](https://github.com/PushkarJ)) +## What's New (Major Themes) + +### Deprecation of FlexVolume + +FlexVolume is deprecated. Out-of-tree CSI driver is the recommended way to write volume drivers in Kubernetes. +See [this doc](https://github.com/kubernetes/community/blob/master/sig-storage/volume-plugin-faq.md#kubernetes-volume-plugin-faq-for-storage-vendors) for more information. +Maintainers of FlexVolume drivers should implement a CSI driver and move users of FlexVolume to CSI. +Users of FlexVolume should move their workloads to CSI driver. + +### Deprecation of klog specific flags + +To simplify the code base, several [logging flags got marked as deprecated](https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#klog) in Kubernetes 1.23. +The code which implements them will be removed in a future release, so users of those need to start replacing the deprecated flags with some alternative solutions. + +### Software Supply Chain SLSA Level 1 Compliance in the Kubernetes Release Process + +Kubernetes releases are now generating provenance attestation files describing the staging and release phases of the release process and artifacts are verified as they are handed over from one phase to the next. +This final piece completes the work needed to comply with Level 1 of the [SLSA security framework](https://slsa.dev/) (Supply-chain Levels for Software Artifacts). + +### IPv4/IPv6 Dual-stack Networking graduates to GA + +[IPv4/IPv6 dual-stack networking](https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/563-dual-stack) graduates to GA. +Since 1.21, Kubernetes clusters are enabled to support dual-stack networking by default. +In 1.23, the `IPv6DualStack` feature gate is removed. +The use of dual-stack networking is not mandatory. +Although clusters are enabled to support dual-stack networking, Pods and Services continue to default to single-stack. +To use dual-stack networking: Kubernetes nodes have routable IPv4/IPv6 network interfaces, a dual-stack capable CNI network plugin is used, Pods are configured to be dual-stack and Services have their `.spec.ipFamilyPolicy` field set to either `PreferDualStack` or `RequireDualStack`. + +### HorizontalPodAutoscaler v2 graduates to GA + +Version 2 of the HorizontalPodAutoscaler API graduates to stable in the 1.23 release. The HorizontalPodAutoscaler `autoscaling/v2beta2` API is deprecated in favor of the new `autoscaling/v2` API, which the Kubernetes project recommends for all use cases. + +This release does *not* deprecate the v1 HorizontalPodAutoscaler API. + +### Generic Ephemeral Volume feature graduates to GA + +The generic ephemeral volume feature moved to GA in 1.23. +This feature allows any existing storage driver that supports dynamic provisioning to be used as an ephemeral volume with the volume’s lifecycle bound to the Pod. +All StorageClass parameters for volume provisioning and all features supported with PersistentVolumeClaims are supported. + +### Skip Volume Ownership change graduates to GA + +The feature to configure volume permission and ownership change policy for Pods moved to GA in 1.23. +This allows users to skip recursive permission changes on mount and speeds up the pod start up time. + +### Allow CSI drivers to opt-in to volume ownership and permission change graduates to GA + +The feature to allow CSI Drivers to declare support for fsGroup based permissions graduates to GA in 1.23. + +### PodSecurity graduates to Beta + +[PodSecurity](https://kubernetes.io/docs/concepts/security/pod-security-admission/) moves to Beta. +`PodSecurity` replaces the deprecated `PodSecurityPolicy` admission controller. +`PodSecurity` is an admission controller that enforces Pod Security Standards on Pods in a Namespace based on specific namespace labels that set the enforcement level. +In 1.23, the `PodSecurity` feature gate is enabled by default. + +### Container Runtime Interface (CRI) v1 is default + +The Kubelet now supports the CRI `v1` API, which is now the project-wide default. +If a container runtime does not support the `v1` API, Kubernetes will fall back to the `v1alpha2` implementation. +There is no intermediate action required by end-users, because `v1` and `v1alpha2` do not differ in their implementation. +It is likely that `v1alpha2` will be removed in one of the future Kubernetes releases to be able to develop `v1`. + +### Structured logging graduate to Beta + +Structured logging reached its Beta milestone. Most log messages from kubelet and kube-scheduler have been converted. Users are encouraged to try out JSON output or parsing of the structured text format and provide feedback on possible solutions for the open issues, such as handling of multi-line strings in log values. + +### Simplified Multi-point plugin configuration for scheduler + +The kube-scheduler is adding a new, simplified config field for Plugins to allow multiple extension points to be enabled in one spot. +The new `multiPoint` plugin field is intended to simplify most scheduler setups for administrators. +Plugins that are enabled via `multiPoint` will automatically be registered for each individual extension point that they implement. +For example, a plugin that implements Score and Filter extensions can be simultaneously enabled for both. +This means entire plugins can be enabled and disabled without having to manually edit individual extension point settings. +These extension points can now be abstracted away due to their irrelevance for most users. + +### CSI Migration updates + +CSI Migration enables the replacement of existing in-tree storage plugins such as `kubernetes.io/gce-pd` or `kubernetes.io/aws-ebs` with a corresponding CSI driver. +If CSI Migration is working properly, Kubernetes end users shouldn’t notice a difference. +After migration, Kubernetes users may continue to rely on all the functionality of in-tree storage plugins using the existing interface. +- CSI Migration feature is turned on by default but stays in Beta for GCE PD, AWS EBS, and Azure Disk in 1.23. +- CSI Migration is introduced as an Alpha feature for Ceph RBD and Portworx in 1.23. + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- Kubeadm: remove the deprecated flag `--experimental-patches` for the `init|join|upgrade` commands. The flag `--patches` is no longer allowed in a mixture with the flag `--config`. Please use the kubeadm configuration for setting patches for a node using `{Init|Join}Configuration.patches`. ([#104065](https://github.com/kubernetes/kubernetes/pull/104065), [@pacoxu](https://github.com/pacoxu)) + - Log messages in JSON format are written to stderr by default now (same as text format) instead of stdout. Users who expected JSON output on stdout must now capture stderr instead or in addition to stdout. ([#106146](https://github.com/kubernetes/kubernetes/pull/106146), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Cluster Lifecycle and Instrumentation] + - Support for the seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io/[name]` has been deprecated since 1.19, will be dropped in 1.25. Transition to using the `seccompProfile` API field. ([#104389](https://github.com/kubernetes/kubernetes/pull/104389), [@saschagrunert](https://github.com/saschagrunert)) + - [kube-log-runner](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/component-base/logs/kube-log-runner) is included in release tar balls. It can be used to replace the deprecated `--log-file` parameter. ([#106123](https://github.com/kubernetes/kubernetes/pull/106123), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Cloud Provider, Cluster Lifecycle and Instrumentation] + +## Changes by Kind + +### Deprecation + +- A deprecation notice has been added when using the kube-proxy userspace proxier, which will be removed in v1.25. (#103860) ([#104631](https://github.com/kubernetes/kubernetes/pull/104631), [@perithompson](https://github.com/perithompson)) +- Added `apiserver_longrunning_requests` metric to replace the soon to be deprecated `apiserver_longrunning_gauge` metric. ([#103799](https://github.com/kubernetes/kubernetes/pull/103799), [@jyz0309](https://github.com/jyz0309)) +- Controller-manager: the following flags have no effect and would be removed in v1.24: + - `--port` + - `--address` + The insecure port flags `--port` may only be set to 0 now. + Also `metricsBindAddress` and `healthzBindAddress` fields from `kubescheduler.config.k8s.io/v1beta1` are no-op and expected to be empty. Removed in `kubescheduler.config.k8s.io/v1beta2` completely. ([#96345](https://github.com/kubernetes/kubernetes/pull/96345), [@ingvagabund](https://github.com/ingvagabund)) +- Feature-gate `VolumeSubpath` has been deprecated and cannot be disabled. It will be completely removed in 1.25 ([#105474](https://github.com/kubernetes/kubernetes/pull/105474), [@mauriciopoppe](https://github.com/mauriciopoppe)) +- Kubeadm: add a new `output/v1alpha2` API that is identical to the `output/v1alpha1`, but attempts to resolve some internal dependencies with the `kubeadm/v1beta2` API. The `output/v1alpha1` API is now deprecated and will be removed in a future release. ([#105295](https://github.com/kubernetes/kubernetes/pull/105295), [@neolit123](https://github.com/neolit123)) +- Kubeadm: add the kubeadm specific, Alpha (disabled by default) feature gate UnversionedKubeletConfigMap. When this feature is enabled kubeadm will start using a new naming format for the ConfigMap where it stores the KubeletConfiguration structure. The old format included the Kubernetes version - "kube-system/kubelet-config-1.22", while the new format does not - "kube-system/kubelet-config". A similar formatting change is done for the related RBAC rules. The old format is now DEPRECATED and will be removed after the feature graduates to GA. When writing the ConfigMap kubeadm (init, upgrade apply) will respect the value of UnversionedKubeletConfigMap, while when reading it (join, reset, upgrade), it would attempt to use new format first and fallback to the legacy format if needed. ([#105741](https://github.com/kubernetes/kubernetes/pull/105741), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Testing] +- Kubeadm: remove the deprecated / NO-OP phase `update-cluster-status` in `kubeadm reset` ([#105888](https://github.com/kubernetes/kubernetes/pull/105888), [@neolit123](https://github.com/neolit123)) +- Remove 'master' as a valid EgressSelection type in the EgressSelectorConfiguration API. ([#102242](https://github.com/kubernetes/kubernetes/pull/102242), [@pacoxu](https://github.com/pacoxu)) +- Removed `kubectl --dry-run` empty default value and boolean values. `kubectl --dry-run` usage must be specified with `--dry-run=(server|client|none)`. ([#105327](https://github.com/kubernetes/kubernetes/pull/105327), [@julianvmodesto](https://github.com/julianvmodesto)) +- Removed deprecated metric `scheduler_volume_scheduling_duration_seconds`. ([#104518](https://github.com/kubernetes/kubernetes/pull/104518), [@dntosas](https://github.com/dntosas)) +- The deprecated `--experimental-bootstrap-kubeconfig` flag has been removed. + This can be set via `--bootstrap-kubeconfig`. ([#103172](https://github.com/kubernetes/kubernetes/pull/103172), [@niulechuan](https://github.com/niulechuan)) + +### API Change + +- A new field `omitManagedFields` has been added to both `audit.Policy` and `audit.PolicyRule` + so cluster operators can opt in to omit managed fields of the request and response bodies from + being written to the API audit log. ([#94986](https://github.com/kubernetes/kubernetes/pull/94986), [@tkashem](https://github.com/tkashem)) [SIG API Machinery, Auth, Cloud Provider and Testing] +- A small regression in Service updates was fixed. The circumstances are so unlikely that probably nobody would ever hit it. ([#104601](https://github.com/kubernetes/kubernetes/pull/104601), [@thockin](https://github.com/thockin)) +- Added a feature gate `StatefulSetAutoDeletePVC`, which allows PVCs automatically created for StatefulSet pods to be automatically deleted. ([#99728](https://github.com/kubernetes/kubernetes/pull/99728), [@mattcary](https://github.com/mattcary)) +- Client-go impersonation config can specify a UID to pass impersonated uid information through in requests. ([#104483](https://github.com/kubernetes/kubernetes/pull/104483), [@margocrawf](https://github.com/margocrawf)) +- Create HPA v2 from v2beta2 with some fields changed. ([#102534](https://github.com/kubernetes/kubernetes/pull/102534), [@wangyysde](https://github.com/wangyysde)) [SIG API Machinery, Apps, Auth, Autoscaling and Testing] +- Ephemeral containers graduated to beta and are now available by default. ([#105405](https://github.com/kubernetes/kubernetes/pull/105405), [@verb](https://github.com/verb)) +- Fix kube-proxy regression on UDP services because the logic to detect stale connections was not considering if the endpoint was ready. ([#106163](https://github.com/kubernetes/kubernetes/pull/106163), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Contributor Experience, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows] +- If a conflict occurs when creating an object with `generateName`, the server now returns an "AlreadyExists" error with a retry option. ([#104699](https://github.com/kubernetes/kubernetes/pull/104699), [@vincepri](https://github.com/vincepri)) +- Implement support for recovering from volume expansion failures ([#106154](https://github.com/kubernetes/kubernetes/pull/106154), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Apps and Storage] +- In kubelet, log verbosity and flush frequency can also be configured via the configuration file and not just via command line flags. In other commands (kube-apiserver, kube-controller-manager), the flags are listed in the "Logs flags" group and not under "Global" or "Misc". The type for `-vmodule` was made a bit more descriptive (`pattern=N,...` instead of `moduleSpec`). ([#106090](https://github.com/kubernetes/kubernetes/pull/106090), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, CLI, Cluster Lifecycle, Instrumentation, Node and Scheduling] +- Introduce `OS` field in the PodSpec ([#104693](https://github.com/kubernetes/kubernetes/pull/104693), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- Introduce `v1beta3` API for scheduler. This version + - increases the weight of user specifiable priorities. + The weights of following priority plugins are increased + - `TaintTolerations` to 3 - as leveraging node tainting to group nodes in the cluster is becoming a widely-adopted practice + - `NodeAffinity` to 2 + - `InterPodAffinity` to 2 + + - Won't have `HealthzBindAddress`, `MetricsBindAddress` fields ([#104251](https://github.com/kubernetes/kubernetes/pull/104251), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- Introduce v1beta2 for Priority and Fairness with no changes in API spec. ([#104399](https://github.com/kubernetes/kubernetes/pull/104399), [@tkashem](https://github.com/tkashem)) +- JSON log output is configurable and now supports writing info messages to stdout and error messages to stderr. Info messages can be buffered in memory. The default is to write both to stdout without buffering, as before. ([#104873](https://github.com/kubernetes/kubernetes/pull/104873), [@pohly](https://github.com/pohly)) +- JobTrackingWithFinalizers graduates to beta. Feature is enabled by default. ([#105687](https://github.com/kubernetes/kubernetes/pull/105687), [@alculquicondor](https://github.com/alculquicondor)) +- Kube-apiserver: Fixes handling of CRD schemas containing literal null values in enums. ([#104969](https://github.com/kubernetes/kubernetes/pull/104969), [@liggitt](https://github.com/liggitt)) +- Kube-apiserver: The `rbac.authorization.k8s.io/v1alpha1` API version is removed; use the `rbac.authorization.k8s.io/v1` API, available since v1.8. The `scheduling.k8s.io/v1alpha1` API version is removed; use the `scheduling.k8s.io/v1` API, available since v1.14. ([#104248](https://github.com/kubernetes/kubernetes/pull/104248), [@liggitt](https://github.com/liggitt)) +- Kube-scheduler: support for configuration file version `v1beta1` is removed. Update configuration files to v1beta2(xref: https://github.com/kubernetes/enhancements/issues/2901) or v1beta3 before upgrading to 1.23. ([#104782](https://github.com/kubernetes/kubernetes/pull/104782), [@kerthcet](https://github.com/kerthcet)) +- KubeSchedulerConfiguration provides a new field `MultiPoint` which will register a plugin for all valid extension points ([#105611](https://github.com/kubernetes/kubernetes/pull/105611), [@damemi](https://github.com/damemi)) [SIG Scheduling and Testing] +- Kubelet should reject pods whose OS doesn't match the node's OS label. ([#105292](https://github.com/kubernetes/kubernetes/pull/105292), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Apps and Node] +- Kubelet: turn the KubeletConfiguration v1beta1 `ResolverConfig` field from a `string` to `*string`. ([#104624](https://github.com/kubernetes/kubernetes/pull/104624), [@Haleygo](https://github.com/Haleygo)) +- Kubernetes is now built using go 1.17. ([#103692](https://github.com/kubernetes/kubernetes/pull/103692), [@justaugustus](https://github.com/justaugustus)) +- Performs strict server side schema validation requests via the `fieldValidation=[Strict,Warn,Ignore]`. ([#105916](https://github.com/kubernetes/kubernetes/pull/105916), [@kevindelgado](https://github.com/kevindelgado)) +- Promote `IPv6DualStack` feature to stable. + Controller Manager flags for the node IPAM controller have slightly changed: + 1. When configuring a dual-stack cluster, the user must specify both `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6` to set the per-node IP mask sizes, instead of the previous `--node-cidr-mask-size` flag. + 2. The `--node-cidr-mask-size` flag is mutually exclusive with `--node-cidr-mask-size-ipv4` and `--node-cidr-mask-size-ipv6`. + 3. Single-stack clusters do not need to change, but may choose to use the more specific flags. Users can use either the older `--node-cidr-mask-size` flag or one of the newer `--node-cidr-mask-size-ipv4` or `--node-cidr-mask-size-ipv6` flags to configure the per-node IP mask size, provided that the flag's IP family matches the cluster's IP family (--cluster-cidr). ([#104691](https://github.com/kubernetes/kubernetes/pull/104691), [@khenidak](https://github.com/khenidak)) +- Remove `NodeLease` feature gate that was graduated and locked to stable in 1.17 release. ([#105222](https://github.com/kubernetes/kubernetes/pull/105222), [@cyclinder](https://github.com/cyclinder)) +- Removed deprecated `--seccomp-profile-root`/`seccompProfileRoot` config. ([#103941](https://github.com/kubernetes/kubernetes/pull/103941), [@saschagrunert](https://github.com/saschagrunert)) +- Since golang 1.17 both net.ParseIP and net.ParseCIDR rejects leading zeros in the dot-decimal notation of IPv4 addresses, + Kubernetes will keep allowing leading zeros on IPv4 address to not break the compatibility. + IMPORTANT: Kubernetes interprets leading zeros on IPv4 addresses as decimal, users must not rely on parser alignment to not being impacted by the associated security advisory: + CVE-2021-29923 golang standard library "net" - Improper Input Validation of octal literals in golang 1.16.2 and below standard library "net" results in indeterminate SSRF & RFI vulnerabilities. + Reference: https://nvd.nist.gov/vuln/detail/CVE-2021-29923 ([#104368](https://github.com/kubernetes/kubernetes/pull/104368), [@aojea](https://github.com/aojea)) +- StatefulSet `minReadySeconds` is promoted to beta. ([#104045](https://github.com/kubernetes/kubernetes/pull/104045), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- Support pod priority based node graceful shutdown. ([#102915](https://github.com/kubernetes/kubernetes/pull/102915), [@wzshiming](https://github.com/wzshiming)) +- The "Generic Ephemeral Volume" feature graduates to GA. It is now enabled unconditionally. ([#105609](https://github.com/kubernetes/kubernetes/pull/105609), [@pohly](https://github.com/pohly)) +- The Kubelet's `--register-with-taints` option is now available via the Kubelet config file field registerWithTaints ([#105437](https://github.com/kubernetes/kubernetes/pull/105437), [@cmssczy](https://github.com/cmssczy)) [SIG Node and Scalability] +- The `CSIDriver.Spec.StorageCapacity` can now be modified. ([#101789](https://github.com/kubernetes/kubernetes/pull/101789), [@pohly](https://github.com/pohly)) +- The `CSIVolumeFSGroupPolicy` feature has moved from beta to GA. ([#105940](https://github.com/kubernetes/kubernetes/pull/105940), [@dobsonj](https://github.com/dobsonj)) +- The `IngressClass.Spec.Parameters.Namespace` field is now GA. ([#104636](https://github.com/kubernetes/kubernetes/pull/104636), [@hbagdi](https://github.com/hbagdi)) +- The `Service.spec.ipFamilyPolicy` field is now *required* in order to create or update a Service as dual-stack. This is a breaking change from the beta behavior. Previously the server would try to infer the value of that field from either `ipFamilies` or `clusterIPs`, but that caused ambiguity on updates. Users who want a dual-stack Service MUST specify `ipFamilyPolicy` as either "PreferDualStack" or "RequireDualStack". ([#96684](https://github.com/kubernetes/kubernetes/pull/96684), [@thockin](https://github.com/thockin)) +- The `TTLAfterFinished` feature gate is now GA and enabled by default. ([#105219](https://github.com/kubernetes/kubernetes/pull/105219), [@sahilvv](https://github.com/sahilvv)) +- The `kube-controller-manager` supports `--concurrent-ephemeralvolume-syncs` flag to set the number of ephemeral volume controller workers. ([#102981](https://github.com/kubernetes/kubernetes/pull/102981), [@SataQiu](https://github.com/SataQiu)) +- The legacy scheduler policy config is removed in v1.23, the associated flags `policy-config-file`, `policy-configmap`, `policy-configmap-namespace` and `use-legacy-policy-config` are also removed. Migrate to Component Config instead, see https://kubernetes.io/docs/reference/scheduling/config/ for details. ([#105424](https://github.com/kubernetes/kubernetes/pull/105424), [@kerthcet](https://github.com/kerthcet)) +- Track the number of Pods with a Ready condition in Job status. The feature is alpha and needs the feature gate JobReadyPods to be enabled. ([#104915](https://github.com/kubernetes/kubernetes/pull/104915), [@alculquicondor](https://github.com/alculquicondor)) +- Users of `LogFormatRegistry` in component-base must update their code to use the logr v1.0.0 API. The JSON log output now uses the format from go-logr/zapr (no `v` field for error messages, additional information for invalid calls) and has some fixes (correct source code location for warnings about invalid log calls). ([#104103](https://github.com/kubernetes/kubernetes/pull/104103), [@pohly](https://github.com/pohly)) +- Validation rules for Custom Resource Definitions can be written in the [CEL expression language](https://github.com/google/cel-spec) using the `x-kubernetes-validations` extension in OpenAPIv3 schemas (alpha). This is gated by the alpha "CustomResourceValidationExpressions" feature gate. ([#106051](https://github.com/kubernetes/kubernetes/pull/106051), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Storage and Testing] + +### Feature + +- (beta feature) If the CSI driver supports the NodeServiceCapability `VOLUME_MOUNT_GROUP` and the `DelegateFSGroupToCSIDriver` feature gate is enabled, kubelet will delegate applying FSGroup to the driver by passing it to NodeStageVolume and NodePublishVolume, regardless of what other FSGroup policies are set. ([#106330](https://github.com/kubernetes/kubernetes/pull/106330), [@verult](https://github.com/verult)) [SIG Storage] +- Add a new `distribute-cpus-across-numa` option to the static `CPUManager` policy. When enabled, this will trigger the `CPUManager` to evenly distribute CPUs across NUMA nodes in cases where more than one NUMA node is required to satisfy the allocation. ([#105631](https://github.com/kubernetes/kubernetes/pull/105631), [@klueska](https://github.com/klueska)) +- Add fish shell completion to kubectl. ([#92989](https://github.com/kubernetes/kubernetes/pull/92989), [@WLun001](https://github.com/WLun001)) +- Add mechanism to load simple sniffer class into fluentd-elasticsearch image ([#92853](https://github.com/kubernetes/kubernetes/pull/92853), [@cosmo0920](https://github.com/cosmo0920)) +- Add support for Portworx plugin to csi-translation-lib. Alpha release + + Portworx CSI driver is required to enable migration. + This PR adds support of the `CSIMigrationPortworx` feature gate, which can be enabled by: + + 1. Adding the feature flag to the kube-controller-manager `--feature-gates=CSIMigrationPortworx=true` + 2. Adding the feature flag to the kubelet config: + + featureGates: + CSIMigrationPortworx: true ([#103447](https://github.com/kubernetes/kubernetes/pull/103447), [@trierra](https://github.com/trierra)) [SIG API Machinery, Apps, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scalability, Scheduling, Storage, Testing and Windows] +- Add support to generate client-side binaries for windows/arm64 platform ([#104894](https://github.com/kubernetes/kubernetes/pull/104894), [@pacoxu](https://github.com/pacoxu)) +- Added PowerShell completion generation by running `kubectl completion powershell`. ([#103758](https://github.com/kubernetes/kubernetes/pull/103758), [@zikhan](https://github.com/zikhan)) +- Added a `Processing` condition for the `workqueue` API. + Changed `Shutdown` for the `workqueue` API to wait until the work queue finishes processing all in-flight items. ([#101928](https://github.com/kubernetes/kubernetes/pull/101928), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) +- Added a new feature gate `CustomResourceValidationExpressions` to enable expression validation for Custom Resource. ([#105107](https://github.com/kubernetes/kubernetes/pull/105107), [@cici37](https://github.com/cici37)) +- Added a new flag `--append-server-path` to `kubectl proxy` that will automatically append the kube context server path to each request. ([#97350](https://github.com/kubernetes/kubernetes/pull/97350), [@FabianKramm](https://github.com/FabianKramm)) +- Added ability for `kubectl wait` to wait on arbitary JSON path ([#105776](https://github.com/kubernetes/kubernetes/pull/105776), [@lauchokyip](https://github.com/lauchokyip)) +- Added support for `PodAndContainerStatsFromCRI` feature gate, which allows a user to specify their pod stats must also come from the CRI, not `cAdvisor`. ([#103095](https://github.com/kubernetes/kubernetes/pull/103095), [@haircommander](https://github.com/haircommander)) +- Added support for setting controller-manager log level online. ([#104571](https://github.com/kubernetes/kubernetes/pull/104571), [@h4ghhh](https://github.com/h4ghhh)) +- Added the ability to specify whether to use an RFC7396 JSON Merge Patch, an RFC6902 JSON Patch, or a Strategic Merge Patch to perform an override of the resources created by `kubectl run` and `kubectl expose`. ([#105140](https://github.com/kubernetes/kubernetes/pull/105140), [@brianpursley](https://github.com/brianpursley)) +- Adding option for `kubectl cp` to resume on network errors until completion, requires tar in addition to tail inside the container image ([#104792](https://github.com/kubernetes/kubernetes/pull/104792), [@matthyx](https://github.com/matthyx)) +- Adding support for multiple `--from-env-file flags`. ([#104232](https://github.com/kubernetes/kubernetes/pull/104232), [@lauchokyip](https://github.com/lauchokyip)) +- Adding support for multiple `--from-env-file` flags. ([#101646](https://github.com/kubernetes/kubernetes/pull/101646), [@lauchokyip](https://github.com/lauchokyip)) +- Adds `--as-uid` flag to `kubectl` to allow uid impersonation in the same way as user and group impersonation. ([#105794](https://github.com/kubernetes/kubernetes/pull/105794), [@margocrawf](https://github.com/margocrawf)) +- Adds new [alpha] command 'kubectl events' ([#99557](https://github.com/kubernetes/kubernetes/pull/99557), [@bboreham](https://github.com/bboreham)) +- Allow node expansion of local volumes. ([#102886](https://github.com/kubernetes/kubernetes/pull/102886), [@gnufied](https://github.com/gnufied)) +- Allow to build kubernetes with a custom `kube-cross` image. ([#104185](https://github.com/kubernetes/kubernetes/pull/104185), [@dims](https://github.com/dims)) +- Allows users to prevent garbage collection on pinned images ([#103299](https://github.com/kubernetes/kubernetes/pull/103299), [@wgahnagl](https://github.com/wgahnagl)) [SIG Node] +- CRI v1 is now the project default. If a container runtime does not support the v1 API, Kubernetes will fall back to the v1alpha2 implementation. ([#106501](https://github.com/kubernetes/kubernetes/pull/106501), [@ehashman](https://github.com/ehashman)) +- Changed feature `CSIMigrationAWS` to on by default. This feature requires the AWS EBS CSI driver to be installed. ([#106098](https://github.com/kubernetes/kubernetes/pull/106098), [@wongma7](https://github.com/wongma7)) +- Client-go: pass `DeleteOptions` down to the fake client `Reactor` ([#102945](https://github.com/kubernetes/kubernetes/pull/102945), [@chenchun](https://github.com/chenchun)) +- Cloud providers can set service account names for cloud controllers. ([#103178](https://github.com/kubernetes/kubernetes/pull/103178), [@nckturner](https://github.com/nckturner)) +- Display Labels when kubectl describe ingress. ([#103894](https://github.com/kubernetes/kubernetes/pull/103894), [@kabab](https://github.com/kabab)) +- Enhance scheduler `VolumeBinding` plugin to handle Lost PVC as `UnschedulableAndUnresolvable` ([#105245](https://github.com/kubernetes/kubernetes/pull/105245), [@yibozhuang](https://github.com/yibozhuang)) +- Ensures that volume is deleted from the storage backend when the user tries to delete the PV object manually and the PV `ReclaimPolicy` is set to `Delete`. ([#105773](https://github.com/kubernetes/kubernetes/pull/105773), [@deepakkinni](https://github.com/deepakkinni)) +- Expose a `NewUnstructuredExtractor` from apply configurations `meta/v1` package that enables extracting objects into unstructured apply configurations. ([#103564](https://github.com/kubernetes/kubernetes/pull/103564), [@kevindelgado](https://github.com/kevindelgado)) +- Feature gate `StorageObjectInUseProtection` has been deprecated and cannot be disabled. It will be completely removed in 1.25 ([#105495](https://github.com/kubernetes/kubernetes/pull/105495), [@ikeeip](https://github.com/ikeeip)) +- Graduating `controller_admission_duration_seconds`, `step_admission_duration_seconds`, `webhook_admission_duration_seconds`, `apiserver_current_inflight_requests` and `apiserver_response_sizes` metrics to stable. ([#106122](https://github.com/kubernetes/kubernetes/pull/106122), [@rezakrimi](https://github.com/rezakrimi)) [SIG API Machinery, Instrumentation and Testing] +- Graduating `pending_pods`, `preemption_attempts_total`, `preemption_victims` and `schedule_attempts_total` metrics to stable. Also `e2e_scheduling_duration_seconds` is renamed to `scheduling_attempt_duration_seconds` and the latter is graduated to stable. ([#105941](https://github.com/kubernetes/kubernetes/pull/105941), [@rezakrimi](https://github.com/rezakrimi)) [SIG Instrumentation, Scheduling and Testing] +- Health check of kube-controller-manager now includes each controller. ([#104667](https://github.com/kubernetes/kubernetes/pull/104667), [@jiahuif](https://github.com/jiahuif)) +- Integration testing now takes periodic Prometheus scrapes from the etcd server. + There is a new script ,`hack/run-prometheus-on-etcd-scrapes.sh`, that runs a containerized Prometheus server against an archive of such scrapes. ([#106190](https://github.com/kubernetes/kubernetes/pull/106190), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery and Testing] +- Introduce a feature gate `DisableKubeletCloudCredentialProviders` which allows disabling the in-tree kubelet credential providers. + + The feature gate `DisableKubeletCloudCredentialProviders` is currently in Alpha, which means is currently disabled by default. Once this feature gate moves to beta, in-tree credential providers will be disabled by default, and users will need to migrate to use external credential providers. ([#102507](https://github.com/kubernetes/kubernetes/pull/102507), [@ostrain](https://github.com/ostrain)) +- Introduces a new metric: `admission_webhook_request_total` with the following labels: name (string) - the webhook name, type (string) - the admission type, operation (string) - the requested verb, code (int) - the HTTP status code, rejected (bool) - whether the request was rejected, namespace (string) - the namespace of the requested resource. ([#103162](https://github.com/kubernetes/kubernetes/pull/103162), [@rmoriar1](https://github.com/rmoriar1)) +- Kubeadm: add support for dry running `kubeadm join`. The new flag `kubeadm join --dry-run` is similar to the existing flag for `kubeadm init/upgrade` and allows you to see what changes would be applied. ([#103027](https://github.com/kubernetes/kubernetes/pull/103027), [@Haleygo](https://github.com/Haleygo)) +- Kubeadm: do not check if the `/etc/kubernetes/manifests` folder is empty on joining worker nodes during preflight ([#104942](https://github.com/kubernetes/kubernetes/pull/104942), [@SataQiu](https://github.com/SataQiu)) +- Kubectl will now provide shell completion choices for the `--output/-o` flag ([#105851](https://github.com/kubernetes/kubernetes/pull/105851), [@marckhouzam](https://github.com/marckhouzam)) +- Kubelet should reconcile `kubernetes.io/os` and `kubernetes.io/arch` labels on the node object. The side-effect of this is kubelet would deny admission to pod which has nodeSelector with label `kubernetes.io/os` or `kubernetes.io/arch` which doesn't match the underlying OS or arch on the host OS. + - The label reconciliation happens as part of periodic status update which can be configured via flag `--node-status-update-frequency` ([#104613](https://github.com/kubernetes/kubernetes/pull/104613), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Node, Testing and Windows] +- Kubernetes is now built with Golang 1.16.7. ([#104199](https://github.com/kubernetes/kubernetes/pull/104199), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with Golang 1.17.1. ([#104904](https://github.com/kubernetes/kubernetes/pull/104904), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with Golang 1.17.2 ([#105563](https://github.com/kubernetes/kubernetes/pull/105563), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Kubernetes is now built with Golang 1.17.3 ([#106209](https://github.com/kubernetes/kubernetes/pull/106209), [@cpanato](https://github.com/cpanato)) [SIG API Machinery, Cloud Provider, Instrumentation, Release and Testing] +- Move `ConfigurableFSGroupPolicy` to GA and rename metric `volume_fsgroup_recursive_apply` to `volume_apply_access_control` ([#105885](https://github.com/kubernetes/kubernetes/pull/105885), [@gnufied](https://github.com/gnufied)) +- Move the `GetAllocatableResources` Endpoint in PodResource API to the beta that will make it enabled by default. ([#105003](https://github.com/kubernetes/kubernetes/pull/105003), [@swatisehgal](https://github.com/swatisehgal)) +- Moving `WindowsHostProcessContainers` feature to beta ([#106058](https://github.com/kubernetes/kubernetes/pull/106058), [@marosset](https://github.com/marosset)) +- Node affinity, Node selectors, and tolerations are now mutable for Jobs that are suspended and have never been started ([#105479](https://github.com/kubernetes/kubernetes/pull/105479), [@ahg-g](https://github.com/ahg-g)) +- Pod template annotations and labels are now mutable for Jobs that are suspended and have never been started ([#105980](https://github.com/kubernetes/kubernetes/pull/105980), [@ahg-g](https://github.com/ahg-g)) +- PodSecurity: in 1.23+ restricted policy levels, Pods and containers which set `runAsUser=0` are forbidden at admission-time; previously, they would be rejected at runtime ([#105857](https://github.com/kubernetes/kubernetes/pull/105857), [@liggitt](https://github.com/liggitt)) +- Shell completion now knows to continue suggesting resource names when the command supports it. For example `kubectl get pod pod1 <TAB>` will suggest more Pod names. ([#105711](https://github.com/kubernetes/kubernetes/pull/105711), [@marckhouzam](https://github.com/marckhouzam)) +- Support to enable Hyper-V in GCE Windows Nodes created with `kube-up` ([#105999](https://github.com/kubernetes/kubernetes/pull/105999), [@mauriciopoppe](https://github.com/mauriciopoppe)) +- The CPUManager policy options are now enabled, and we introduce a graduation path for the new CPU Manager policy options. ([#105012](https://github.com/kubernetes/kubernetes/pull/105012), [@fromanirh](https://github.com/fromanirh)) +- The Pods and Pod controllers that are exempted from the PodSecurity admission process are now marked with the `pod-security.kubernetes.io/exempt: user/namespace/runtimeClass` annotation, based on what caused the exemption. + + The enforcement level that allowed or denied a Pod during PodSecurity admission is now marked by the `pod-security.kubernetes.io/enforce-policy` annotation. + + The annotation that informs about audit policy violations changed from `pod-security.kubernetes.io/audit` to `pod-security.kubernetes.io/audit-violation`. ([#105908](https://github.com/kubernetes/kubernetes/pull/105908), [@stlaz](https://github.com/stlaz)) +- The `/openapi/v3` endpoint will be populated with OpenAPI v3 if the feature flag is enabled ([#105945](https://github.com/kubernetes/kubernetes/pull/105945), [@Jefftree](https://github.com/Jefftree)) +- The `CSIMigrationGCE` feature flag is turned `ON` by default ([#104722](https://github.com/kubernetes/kubernetes/pull/104722), [@leiyiz](https://github.com/leiyiz)) +- The `DownwardAPIHugePages` feature is now enabled by default. ([#106271](https://github.com/kubernetes/kubernetes/pull/106271), [@mysunshine92](https://github.com/mysunshine92)) +- The `PodSecurity `admission plugin has graduated to `beta` and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1beta1`. See https://kubernetes.io/docs/concepts/security/pod-security-admission/ for usage guidelines. ([#106089](https://github.com/kubernetes/kubernetes/pull/106089), [@liggitt](https://github.com/liggitt)) +- The `ServiceAccountIssuerDiscovery` feature gate is removed. It reached GA in Kubernetes 1.21. ([#103685](https://github.com/kubernetes/kubernetes/pull/103685), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- The `constants/variables` from k8s.io for STABLE metrics is now supported. ([#103654](https://github.com/kubernetes/kubernetes/pull/103654), [@coffeepac](https://github.com/coffeepac)) +- The `kubectl describe namespace` now shows Conditions ([#106219](https://github.com/kubernetes/kubernetes/pull/106219), [@dlipovetsky](https://github.com/dlipovetsky)) +- The etcd container image now supports Windows. ([#92433](https://github.com/kubernetes/kubernetes/pull/92433), [@claudiubelu](https://github.com/claudiubelu)) +- The kube-apiserver's Prometheus metrics have been extended with some that describe the costs of handling LIST requests. They are as follows. + - *apiserver_cache_list_total*: Counter of LIST requests served from watch cache, broken down by resource_prefix and index_name + - *apiserver_cache_list_fetched_objects_total*: Counter of objects read from watch cache in the course of serving a LIST request, broken down by resource_prefix and index_name + - *apiserver_cache_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from watch cache, broken down by resource_prefix + - *apiserver_cache_list_returned_objects_total*: Counter of objects returned for a LIST request from watch cache, broken down by resource_prefix + - *apiserver_storage_list_total*: Counter of LIST requests served from etcd, broken down by resource + - *apiserver_storage_list_fetched_objects_total*: Counter of objects read from etcd in the course of serving a LIST request, broken down by resource + - *apiserver_storage_list_evaluated_objects_total*: Counter of objects tested in the course of serving a LIST request from etcd, broken down by resource + - *apiserver_storage_list_returned_objects_total*: Counter of objects returned for a LIST request from etcd, broken down by resource ([#104983](https://github.com/kubernetes/kubernetes/pull/104983), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) +- The pause image list now contains Windows Server 2022. ([#104438](https://github.com/kubernetes/kubernetes/pull/104438), [@nick5616](https://github.com/nick5616)) +- The script `kube-up.sh` installs `csi-proxy v1.0.1-gke.0`. ([#104426](https://github.com/kubernetes/kubernetes/pull/104426), [@mauriciopoppe](https://github.com/mauriciopoppe)) +- This PR adds the following metrics for API Priority and Fairness. + - **apiserver_flowcontrol_priority_level_seat_count_samples**: histograms of seats occupied by executing requests (both regular and final-delay phases included), broken down by priority_level; the observations are taken once per millisecond. + - **apiserver_flowcontrol_priority_level_seat_count_watermarks**: histograms of high and low watermarks of number of seats occupied by executing requests (both regular and final-delay phases included), broken down by priority_level. + - **apiserver_flowcontrol_watch_count_samples**: histograms of number of watches relevant to a given mutating request, broken down by that request's priority_level and flow_schema. ([#105873](https://github.com/kubernetes/kubernetes/pull/105873), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery, Instrumentation and Testing] +- Topology Aware Hints have graduated to beta. ([#106433](https://github.com/kubernetes/kubernetes/pull/106433), [@robscott](https://github.com/robscott)) [SIG Network] +- Turn on CSIMigrationAzureDisk by default on 1.23 ([#104670](https://github.com/kubernetes/kubernetes/pull/104670), [@andyzhangx](https://github.com/andyzhangx)) +- Update the system-validators library to v1.6.0 ([#106323](https://github.com/kubernetes/kubernetes/pull/106323), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] +- Updated Cluster Autosaler to version `1.22.0`. Release notes: https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.22.0. ([#104293](https://github.com/kubernetes/kubernetes/pull/104293), [@x13n](https://github.com/x13n)) +- Updates `debian-iptables` to v1.6.7 to pick up CVE fixes. ([#104970](https://github.com/kubernetes/kubernetes/pull/104970), [@PushkarJ](https://github.com/PushkarJ)) +- Updates the following images to pick up CVE fixes: + - `debian` to v1.9.0 + - `debian-iptables` to v1.6.6 + - `setcap` to v2.0.4 ([#104142](https://github.com/kubernetes/kubernetes/pull/104142), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Upgrade etcd to 3.5.1 ([#105706](https://github.com/kubernetes/kubernetes/pull/105706), [@uthark](https://github.com/uthark)) [SIG Cloud Provider, Cluster Lifecycle and Testing] +- When feature gate `JobTrackingWithFinalizers` is enabled: + - Limit the number of Pods tracked in a single Job sync to avoid starvation of small Jobs. + - The metric `job_pod_finished_total` counts the number of finished Pods tracked by the Job controller. ([#105197](https://github.com/kubernetes/kubernetes/pull/105197), [@alculquicondor](https://github.com/alculquicondor)) +- When using `RequestedToCapacityRatio` ScoringStrategy, empty shape will cause error. ([#106169](https://github.com/kubernetes/kubernetes/pull/106169), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling] +- `client-go` event library allows customizing spam filtering function. + It is now possible to override `SpamKeyFunc`, which is used by event filtering to detect spam in the events. ([#103918](https://github.com/kubernetes/kubernetes/pull/103918), [@olagacek](https://github.com/olagacek)) +- `client-go`, using log level 9, traces the following events of a HTTP request: + - DNS lookup + - TCP dialing + - TLS handshake + - Time to get a connection from the pool + - Time to process a request ([#105156](https://github.com/kubernetes/kubernetes/pull/105156), [@aojea](https://github.com/aojea)) +- `kube-scheduler` now logs node and plugin scoring even though --v<10 + - scores of the top 3 plugins in the top 3 nodes are dumped if --v=4,5 + - scores of all plugins in the top 6 nodes are dumped if --v=6,7,8,9 ([#103515](https://github.com/kubernetes/kubernetes/pull/103515), [@muma378](https://github.com/muma378)) + +### Documentation + +- Graduating `pod_scheduling_duration_seconds`, `pod_scheduling_attempts`, `framework_extension_point_duration_seconds`, `plugin_execution_duration_seconds` and `queue_incoming_pods_total` metrics to stable. ([#106266](https://github.com/kubernetes/kubernetes/pull/106266), [@ahg-g](https://github.com/ahg-g)) [SIG Instrumentation, Scheduling and Testing] +- The test "[sig-network] EndpointSlice should have Endpoints and EndpointSlices pointing to API Server [Conformance]" only requires that there is an EndpointSlice that references the "kubernetes.default" service, it no longer requires that its named "kubernetes". ([#104664](https://github.com/kubernetes/kubernetes/pull/104664), [@aojea](https://github.com/aojea)) +- Update description of `--audit-log-maxbackup` to describe behavior when `value = 0`. ([#103843](https://github.com/kubernetes/kubernetes/pull/103843), [@Arkessler](https://github.com/Arkessler)) +- Users should not rely on unsupported CRON_TZ variable when specifying schedule, both the API server and cronjob controller will emit warnings pointing to https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/ containing explanation ([#106455](https://github.com/kubernetes/kubernetes/pull/106455), [@soltysh](https://github.com/soltysh)) [SIG Apps] + +### Failing Test + +- Fixes hostPath storage E2E tests within SELinux enabled env ([#104551](https://github.com/kubernetes/kubernetes/pull/104551), [@Elbehery](https://github.com/Elbehery)) + +### Bug or Regression + +- (PodSecurity admission) errors validating workload resources (deployment, replicaset, etc.) no longer block admission. ([#106017](https://github.com/kubernetes/kubernetes/pull/106017), [@tallclair](https://github.com/tallclair)) [SIG Auth] +- A pod that the Kubelet rejects was still considered as being accepted for a brief period of time after rejection, which might cause some pods to be rejected briefly that could fit on the node. A pod that is still terminating (but has status indicating it has failed) may also still be consuming resources and so should also be considered. ([#104817](https://github.com/kubernetes/kubernetes/pull/104817), [@smarterclayton](https://github.com/smarterclayton)) +- Add Kubernetes Events to the `Kubelet Graceful Shutdown` feature. ([#101081](https://github.com/kubernetes/kubernetes/pull/101081), [@rphillips](https://github.com/rphillips)) +- Add Pod Security admission metrics: `pod_security_evaluations_total`, `pod_security_exemptions_total`, `pod_security_errors_total` ([#105898](https://github.com/kubernetes/kubernetes/pull/105898), [@tallclair](https://github.com/tallclair)) +- Add support for Windows Network stats in Containerd ([#105744](https://github.com/kubernetes/kubernetes/pull/105744), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node, Testing and Windows] +- Added show-capacity option to `kubectl top node` to show `Capacity` resource usage ([#102917](https://github.com/kubernetes/kubernetes/pull/102917), [@bysnupy](https://github.com/bysnupy)) [SIG CLI] +- Apimachinery: Pretty printed JSON and YAML output is now indented consistently. ([#105466](https://github.com/kubernetes/kubernetes/pull/105466), [@liggitt](https://github.com/liggitt)) +- Be able to create a Pod with Generic Ephemeral Volumes as raw block devices. ([#105682](https://github.com/kubernetes/kubernetes/pull/105682), [@pohly](https://github.com/pohly)) +- CA, certificate and key bundles for the `generic-apiserver` based servers will be reloaded immediately after the files are changed. ([#104102](https://github.com/kubernetes/kubernetes/pull/104102), [@tnqn](https://github.com/tnqn)) +- Change `kubectl diff --invalid-arg` status code from 1 to 2 to match docs ([#105445](https://github.com/kubernetes/kubernetes/pull/105445), [@ardaguclu](https://github.com/ardaguclu)) +- Changed kubectl describe to compute age of an event using the `EventSeries.count` and `EventSeries.lastObservedTime`. ([#104482](https://github.com/kubernetes/kubernetes/pull/104482), [@harjas27](https://github.com/harjas27)) +- Changes behaviour of kube-proxy start; does not attempt to set specific `sysctl` values (which does not work in recent Kernel versions anymore in non-init namespaces), when the current sysctl values are already set higher. ([#103174](https://github.com/kubernetes/kubernetes/pull/103174), [@Napsty](https://github.com/Napsty)) +- Client-go uses the same HTTP client for all the generated groups and versions, allowing to share customized transports for multiple groups versions. ([#105490](https://github.com/kubernetes/kubernetes/pull/105490), [@aojea](https://github.com/aojea)) +- Disable aufs module for gce clusters. ([#103831](https://github.com/kubernetes/kubernetes/pull/103831), [@lizhuqi](https://github.com/lizhuqi)) +- Do not unmount and mount subpath bind mounts during container creation unless bind mount changes ([#105512](https://github.com/kubernetes/kubernetes/pull/105512), [@gnufied](https://github.com/gnufied)) [SIG Storage] +- Don't prematurely close reflectors in case of slow initialization in watch based manager to fix issues with inability to properly mount secrets/configmaps. ([#104604](https://github.com/kubernetes/kubernetes/pull/104604), [@wojtek-t](https://github.com/wojtek-t)) +- Don't use a custom dialer for the kubelet if is not rotating certificates, so we can reuse TCP connections and have only one between the apiserver and the kubelet. + If users experiment problems with stale connections using HTTP1.1, they can force the previous behavior of the kubelet by setting the environment variable DISABLE_HTTP2. ([#104844](https://github.com/kubernetes/kubernetes/pull/104844), [@aojea](https://github.com/aojea)) [SIG API Machinery, Auth and Node] +- EndpointSlice Mirroring controller now cleans up managed EndpointSlices when a Service selector is added ([#105997](https://github.com/kubernetes/kubernetes/pull/105997), [@robscott](https://github.com/robscott)) [SIG Apps, Network and Testing] +- Enhanced event messages for pod failed for exec probe timeout ([#106201](https://github.com/kubernetes/kubernetes/pull/106201), [@yxxhero](https://github.com/yxxhero)) [SIG Node] +- Ensure Pods are removed from the scheduler cache when the scheduler misses deletion events due to transient errors ([#106102](https://github.com/kubernetes/kubernetes/pull/106102), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- Ensure `InstanceShutdownByProviderID` return false for creating Azure VMs. ([#104382](https://github.com/kubernetes/kubernetes/pull/104382), [@feiskyer](https://github.com/feiskyer)) +- Evicted and other terminated Pods will no longer revert to the `Running` phase. ([#105462](https://github.com/kubernetes/kubernetes/pull/105462), [@ehashman](https://github.com/ehashman)) +- Fix `kube-apiserver` metric reporting for the deprecated watch path of `/api/<version>/watch/...`. ([#104161](https://github.com/kubernetes/kubernetes/pull/104161), [@wojtek-t](https://github.com/wojtek-t)) +- Fix a regression where the Kubelet failed to exclude already completed pods from calculations about how many resources it was currently using when deciding whether to allow more pods. ([#104577](https://github.com/kubernetes/kubernetes/pull/104577), [@smarterclayton](https://github.com/smarterclayton)) +- Fix detach disk issue on deleting vmss node. ([#104572](https://github.com/kubernetes/kubernetes/pull/104572), [@andyzhangx](https://github.com/andyzhangx)) +- Fix job controller syncs: In case of conflicts, ensure that the sync happens with the most up to date information. Improves reliability of JobTrackingWithFinalizers. ([#105214](https://github.com/kubernetes/kubernetes/pull/105214), [@alculquicondor](https://github.com/alculquicondor)) +- Fix job tracking with finalizers for more than 500 pods, ensuring all finalizers are removed before counting the Pod. ([#104666](https://github.com/kubernetes/kubernetes/pull/104666), [@alculquicondor](https://github.com/alculquicondor)) +- Fix pod name of NonIndexed Jobs to not include rogue `-1` substring ([#105676](https://github.com/kubernetes/kubernetes/pull/105676), [@alculquicondor](https://github.com/alculquicondor)) +- Fix scoring for `NodeResourcesBalancedAllocation` plugins when nodes have containers with no requests. ([#105845](https://github.com/kubernetes/kubernetes/pull/105845), [@ahmad-diaa](https://github.com/ahmad-diaa)) +- Fix system default topology spreading when nodes don't have zone labels. Pods correctly spread by default now. ([#105046](https://github.com/kubernetes/kubernetes/pull/105046), [@alculquicondor](https://github.com/alculquicondor)) +- Fix: do not try to delete a LoadBalancer that does not exist ([#105777](https://github.com/kubernetes/kubernetes/pull/105777), [@nilo19](https://github.com/nilo19)) +- Fix: ignore non-VMSS error for VMAS nodes in `reconcileBackendPools`. ([#103997](https://github.com/kubernetes/kubernetes/pull/103997), [@nilo19](https://github.com/nilo19)) +- Fix: leave the probe path empty for TCP probes ([#105253](https://github.com/kubernetes/kubernetes/pull/105253), [@nilo19](https://github.com/nilo19)) +- Fix: remove VMSS and VMSS instances from SLB backend pool only when necessary ([#105839](https://github.com/kubernetes/kubernetes/pull/105839), [@nilo19](https://github.com/nilo19)) +- Fix: skip `instance not found` when decoupling VMSSs from LB ([#105666](https://github.com/kubernetes/kubernetes/pull/105666), [@nilo19](https://github.com/nilo19)) +- Fix: skip case sensitivity when checking Azure NSG rules. ([#104384](https://github.com/kubernetes/kubernetes/pull/104384), [@feiskyer](https://github.com/feiskyer)) +- Fixed a bug that prevents a PersistentVolume that has a PersistentVolumeClaim UID which doesn't exist in local cache but exists in etcd from being updated to the Released phase. ([#105211](https://github.com/kubernetes/kubernetes/pull/105211), [@xiaopingrubyist](https://github.com/xiaopingrubyist)) +- Fixed a bug where using `kubectl patch` with `$deleteFromPrimitiveList` on a nonexistent or empty list would add the item to the list ([#105421](https://github.com/kubernetes/kubernetes/pull/105421), [@brianpursley](https://github.com/brianpursley)) +- Fixed a bug which could cause webhooks to have an incorrect copy of the old object after an Apply or Update ([#106195](https://github.com/kubernetes/kubernetes/pull/106195), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery] +- Fixed a bug which kubectl would emit duplicate warning messages for flag names that contain an underscore and recommend using a nonexistent flag in some cases. ([#103852](https://github.com/kubernetes/kubernetes/pull/103852), [@brianpursley](https://github.com/brianpursley)) +- Fixed a panic in `kubectl` when creating secrets with an improper output type ([#106317](https://github.com/kubernetes/kubernetes/pull/106317), [@lauchokyip](https://github.com/lauchokyip)) +- Fixed a regression setting `--audit-log-path=-` to log to stdout in 1.22 pre-release. ([#103875](https://github.com/kubernetes/kubernetes/pull/103875), [@andrewrynhard](https://github.com/andrewrynhard)) +- Fixed an issue which didn't append OS's environment variables with the one provided in Credential Provider Config file, which may fail execution of external credential provider binary. + See https://github.com/kubernetes/kubernetes/issues/102750. ([#103231](https://github.com/kubernetes/kubernetes/pull/103231), [@n4j](https://github.com/n4j)) +- Fixed applying of SELinux labels to CSI volumes on very busy systems (with "error checking for SELinux support: could not get consistent content of /proc/self/mountinfo after 3 attempts") ([#105934](https://github.com/kubernetes/kubernetes/pull/105934), [@jsafrane](https://github.com/jsafrane)) [SIG Storage] +- Fixed architecture within manifest for non `amd64` etcd images. ([#104116](https://github.com/kubernetes/kubernetes/pull/104116), [@saschagrunert](https://github.com/saschagrunert)) +- Fixed architecture within manifest for non `amd64` etcd images. ([#105484](https://github.com/kubernetes/kubernetes/pull/105484), [@saschagrunert](https://github.com/saschagrunert)) +- Fixed azure disk translation issue due to lower case `managed` kind. ([#103439](https://github.com/kubernetes/kubernetes/pull/103439), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed client IP preservation for NodePort service with protocol SCTP in ipvs. ([#104756](https://github.com/kubernetes/kubernetes/pull/104756), [@tnqn](https://github.com/tnqn)) +- Fixed concurrent map access causing panics when logging timed-out API calls. ([#105734](https://github.com/kubernetes/kubernetes/pull/105734), [@marseel](https://github.com/marseel)) +- Fixed consolidate logs for `instance not found` error + Fixed skip `not found` nodes when reconciling LB backend address pools ([#105188](https://github.com/kubernetes/kubernetes/pull/105188), [@nilo19](https://github.com/nilo19)) +- Fixed occasional pod cgroup freeze when using cgroup v1 and systemd driver. ([#104528](https://github.com/kubernetes/kubernetes/pull/104528), [@kolyshkin](https://github.com/kolyshkin)) +- Fixed the issue where logging output of kube-scheduler configuration files included line breaks and escape characters. The output also attempted to output the configuration file in one section without showing the user a more readable format. ([#106228](https://github.com/kubernetes/kubernetes/pull/106228), [@sanchayanghosh](https://github.com/sanchayanghosh)) [SIG Scheduling] +- Fixes a bug that could result in the EndpointSlice controller unnecessarily updating EndpointSlices associated with a Service that had Topology Aware Hints enabled. ([#105267](https://github.com/kubernetes/kubernetes/pull/105267), [@llhuii](https://github.com/llhuii)) +- Fixes a regression that could cause panics in LRU caches in controller-manager, kubelet, kube-apiserver, or client-go. ([#104466](https://github.com/kubernetes/kubernetes/pull/104466), [@stbenjam](https://github.com/stbenjam)) +- Fixes an issue where an admission webhook can observe a v1 Pod object that does not have the `defaultMode` field set in the injected service account token volume in kube-api-server. ([#104523](https://github.com/kubernetes/kubernetes/pull/104523), [@liggitt](https://github.com/liggitt)) +- Fixes the `should support building a client with a CSR` E2E test to work with clusters configured with short certificate lifetimes ([#105396](https://github.com/kubernetes/kubernetes/pull/105396), [@liggitt](https://github.com/liggitt)) +- Graceful node shutdown, allow the actual inhibit delay to be greater than the expected inhibit delay. ([#103137](https://github.com/kubernetes/kubernetes/pull/103137), [@wzshiming](https://github.com/wzshiming)) +- Handle Generic Ephemeral Volumes properly in the node limits scheduler filter and the kubelet `hostPath` check. ([#100482](https://github.com/kubernetes/kubernetes/pull/100482), [@pohly](https://github.com/pohly)) +- Headless Services with no selector which were created without dual-stack enabled will be defaulted to RequireDualStack instead of PreferDualStack. This is consistent with such Services which are created with dual-stack enabled. ([#104986](https://github.com/kubernetes/kubernetes/pull/104986), [@thockin](https://github.com/thockin)) +- Ignore `not a vmss instance` error for VMAS nodes in `EnsureBackendPoolDeleted`. ([#105185](https://github.com/kubernetes/kubernetes/pull/105185), [@ialidzhikov](https://github.com/ialidzhikov)) +- Ignore the case when comparing azure tags in service annotation. ([#104705](https://github.com/kubernetes/kubernetes/pull/104705), [@nilo19](https://github.com/nilo19)) +- Ignore the case when updating Azure tags. ([#104593](https://github.com/kubernetes/kubernetes/pull/104593), [@nilo19](https://github.com/nilo19)) +- Introduce a new server run option 'shutdown-send-retry-after'. If true the HTTP Server will continue listening until all non longrunning request(s) in flight have been drained, during this window all incoming requests will be rejected with a status code `429` and a 'Retry-After' response header. ([#101257](https://github.com/kubernetes/kubernetes/pull/101257), [@tkashem](https://github.com/tkashem)) +- Kube-apiserver: Avoid unnecessary repeated calls to `admission webhooks` that reject an update or delete request. ([#104182](https://github.com/kubernetes/kubernetes/pull/104182), [@liggitt](https://github.com/liggitt)) +- Kube-apiserver: Server Side Apply merge order is reverted to match v1.22 behavior until `http://issue.k8s.io/104641` is resolved. ([#106661](https://github.com/kubernetes/kubernetes/pull/106661), [@liggitt](https://github.com/liggitt)) +- Kube-apiserver: events created via the `events.k8s.io` API group for cluster-scoped objects are now permitted in the default namespace as well for compatibility with events clients and the `v1` API ([#100125](https://github.com/kubernetes/kubernetes/pull/100125), [@h4ghhh](https://github.com/h4ghhh)) +- Kube-apiserver: fix a memory leak when deleting multiple objects with a `deletecollection`. ([#105606](https://github.com/kubernetes/kubernetes/pull/105606), [@sxllwx](https://github.com/sxllwx)) +- Kube-proxy health check ports used to listen to `:<port>` for each of the services. This is not needed and opens ports in addresses the cluster user may not have intended. The PR limits listening to all node address which are controlled by `--nodeport-addresses` flag. if no addresses are provided then we default to existing behavior by listening to `:<port>` for each service ([#104742](https://github.com/kubernetes/kubernetes/pull/104742), [@khenidak](https://github.com/khenidak)) +- Kube-proxy: delete stale conntrack UDP entries for loadbalancer ingress IP. ([#104009](https://github.com/kubernetes/kubernetes/pull/104009), [@aojea](https://github.com/aojea)) +- Kube-scheduler now doesn't print any usage message when unknown flag is specified. ([#104503](https://github.com/kubernetes/kubernetes/pull/104503), [@sanposhiho](https://github.com/sanposhiho)) +- Kube-up now includes CoreDNS version v1.8.6 ([#106091](https://github.com/kubernetes/kubernetes/pull/106091), [@rajansandeep](https://github.com/rajansandeep)) [SIG Cloud Provider] +- Kubeadm: When adding an etcd peer to an existing cluster, if an error is returned indicating the peer has already been added, this is accepted and a `ListMembers` call is used instead to return the existing cluster. This helps to diminish the exponential backoff when the first AddMember call times out, while still retaining a similar performance when the peer has already been added from a previous call. ([#104134](https://github.com/kubernetes/kubernetes/pull/104134), [@ihgann](https://github.com/ihgann)) +- Kubeadm: do not allow empty `--config` paths to be passed to `kubeadm kubeconfig user` ([#105649](https://github.com/kubernetes/kubernetes/pull/105649), [@navist2020](https://github.com/navist2020)) +- Kubeadm: fix a bug on Windows worker nodes, where the downloaded KubeletConfiguration from the cluster can contain Linux paths that do not work on Windows and can trip the kubelet binary. ([#105992](https://github.com/kubernetes/kubernetes/pull/105992), [@hwdef](https://github.com/hwdef)) [SIG Cluster Lifecycle and Windows] +- Kubeadm: switch the preflight check (called 'Swap') that verifies if swap is enabled on Linux hosts to report a warning instead of an error. This is related to the graduation of the NodeSwap feature gate in the kubelet to Beta and being enabled by default in 1.23 - allows swap support on Linux hosts. In the next release of kubeadm (1.24) the preflight check will be removed, thus we recommend that you stop using it - e.g. via `--ignore-preflight-errors` or the kubeadm config. ([#104854](https://github.com/kubernetes/kubernetes/pull/104854), [@pacoxu](https://github.com/pacoxu)) +- Kubelet did not report `kubelet_volume_stats_*` metrics for Generic Ephemeral Volumes. ([#105569](https://github.com/kubernetes/kubernetes/pull/105569), [@pohly](https://github.com/pohly)) +- Kubelet's Node Grace Shutdown will terminate probes when shutting down ([#105215](https://github.com/kubernetes/kubernetes/pull/105215), [@rphillips](https://github.com/rphillips)) +- Kubelet: fixes a file descriptor leak in log rotation ([#106382](https://github.com/kubernetes/kubernetes/pull/106382), [@rphillips](https://github.com/rphillips)) [SIG Node] +- Kubelet: the printing of flags at the start of kubelet now uses the final logging configuration. ([#106520](https://github.com/kubernetes/kubernetes/pull/106520), [@pohly](https://github.com/pohly)) +- Make the etcd client (used by the API server) retry certain types of errors. The full list of retriable (codes.Unavailable) errors can be found at https://github.com/etcd-io/etcd/blob/main/api/v3rpc/rpctypes/error.go#L72 ([#105069](https://github.com/kubernetes/kubernetes/pull/105069), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Metrics changes: Fix exposed buckets of `scheduler_volume_scheduling_duration_seconds_bucket` metric. ([#100720](https://github.com/kubernetes/kubernetes/pull/100720), [@dntosas](https://github.com/dntosas)) +- Migrated kubernetes object references (= name + namespace) to structured logging when using JSON as log output format ([#104877](https://github.com/kubernetes/kubernetes/pull/104877), [@pohly](https://github.com/pohly)) +- Pass additional flags to subpath mount to avoid flakes in certain conditions. ([#104253](https://github.com/kubernetes/kubernetes/pull/104253), [@mauriciopoppe](https://github.com/mauriciopoppe)) +- Pod SecurityContext sysctls name parameter for update requests where the existing object's sysctl contains slashes and kubelet sysctl whitelist support contains slashes. ([#102393](https://github.com/kubernetes/kubernetes/pull/102393), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Apps, Auth, Node, Storage and Testing] +- Pod will not start when Init container was OOM killed. ([#104650](https://github.com/kubernetes/kubernetes/pull/104650), [@yxxhero](https://github.com/yxxhero)) [SIG Node] +- PodResources interface was changed, now it returns only isolated CPUs ([#97415](https://github.com/kubernetes/kubernetes/pull/97415), [@AlexeyPerevalov](https://github.com/AlexeyPerevalov)) +- Provide IPv6 support for internal load balancer. ([#103794](https://github.com/kubernetes/kubernetes/pull/103794), [@nilo19](https://github.com/nilo19)) +- Reduce the number of calls to docker for stats via dockershim. For Windows this reduces the latency when calling docker, for Linux this saves cpu cycles. ([#104287](https://github.com/kubernetes/kubernetes/pull/104287), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows] +- Removed the error message label from the `kubelet_started_pods_errors_total` metric ([#105213](https://github.com/kubernetes/kubernetes/pull/105213), [@yxxhero](https://github.com/yxxhero)) +- Resolves a potential issue with GC and NS controllers which may delete objects after getting a 404 response from the server during its startup. This PR ensures that requests to aggregated APIs will get 503, not 404 while the APIServiceRegistrationController hasn't finished its job. ([#104748](https://github.com/kubernetes/kubernetes/pull/104748), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Respect grace period when updating static pods. ([#104743](https://github.com/kubernetes/kubernetes/pull/104743), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing] +- Revert building binaries with PIE mode. ([#105352](https://github.com/kubernetes/kubernetes/pull/105352), [@ehashman](https://github.com/ehashman)) +- Reverts adding namespace label to admission metrics (and histogram exansion) due to cardinality issues. ([#104033](https://github.com/kubernetes/kubernetes/pull/104033), [@s-urbaniak](https://github.com/s-urbaniak)) +- Reverts the CRI API version surfaced by dockershim to `v1alpha2`. ([#106808](https://github.com/kubernetes/kubernetes/pull/106808), [@saschagrunert](https://github.com/saschagrunert)) +- Scheduler resource metrics over fractional binary quantities (2.5Gi, 1.1Ki) were incorrectly reported as very small values. ([#103751](https://github.com/kubernetes/kubernetes/pull/103751), [@y-tag](https://github.com/y-tag)) +- Support more than 100 disk mounts on Windows ([#105673](https://github.com/kubernetes/kubernetes/pull/105673), [@andyzhangx](https://github.com/andyzhangx)) +- Support using negative array index in JSON patch replace operations. ([#105896](https://github.com/kubernetes/kubernetes/pull/105896), [@zqzten](https://github.com/zqzten)) +- The `--leader-elect*` CLI args are now honored in scheduler. ([#105915](https://github.com/kubernetes/kubernetes/pull/105915), [@Huang-Wei](https://github.com/Huang-Wei)) +- The `--leader-elect*` CLI args are now honored in the scheduler. ([#105712](https://github.com/kubernetes/kubernetes/pull/105712), [@Huang-Wei](https://github.com/Huang-Wei)) +- The `client-go` dynamic client sets the header `Content-Type: application/json` by default ([#104327](https://github.com/kubernetes/kubernetes/pull/104327), [@sxllwx](https://github.com/sxllwx)) +- The `kube-Proxy` now correctly filters out unready endpoints for Services with Topology. ([#106507](https://github.com/kubernetes/kubernetes/pull/106507), [@robscott](https://github.com/robscott)) +- The `pods/binding` subresource now honors `metadata.uid` and `metadata.resourceVersion` ([#105913](https://github.com/kubernetes/kubernetes/pull/105913), [@aholic](https://github.com/aholic)) +- The kube-proxy sync_proxy_rules_iptables_total metric now gives + the correct number of rules, rather than being off by one. + + Fixed multiple iptables proxy regressions introduced in 1.22: + + - When using Services with SessionAffinity, client affinity for an + endpoint now gets broken when that endpoint becomes non-ready + (rather than continuing until the endpoint is fully deleted). + + - Traffic to a service IP now starts getting rejected (as opposed to + merely dropped) as soon as there are no longer any *usable* + endpoints, rather than waiting until all of the terminating + endpoints have terminated even when those terminating endpoints + were not being used. + + - Chains for endpoints that won't be used are no longer output to + iptables, saving a bit of memory/time/cpu. ([#106030](https://github.com/kubernetes/kubernetes/pull/106030), [@danwinship](https://github.com/danwinship)) [SIG Network] +- Topology Aware Hints now ignores unready endpoints when assigning hints. ([#106510](https://github.com/kubernetes/kubernetes/pull/106510), [@robscott](https://github.com/robscott)) +- Topology Hints now excludes control plane notes from capacity calculations. ([#104744](https://github.com/kubernetes/kubernetes/pull/104744), [@robscott](https://github.com/robscott)) +- Update Go used to build migrate script in etcd image to v1.16.7. ([#104301](https://github.com/kubernetes/kubernetes/pull/104301), [@serathius](https://github.com/serathius)) +- Updated json representation for a conflicted taint to `Key=Effect` when a conflicted taint occurs in kubectl taint. ([#104011](https://github.com/kubernetes/kubernetes/pull/104011), [@manugupt1](https://github.com/manugupt1)) +- Upgrades functionality of `kubectl kustomize` as described at + https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.4.1 ([#106389](https://github.com/kubernetes/kubernetes/pull/106389), [@natasha41575](https://github.com/natasha41575)) [SIG CLI] +- Watch requests that are delegated to aggregated API servers no longer reserve concurrency units (seats) in the API Priority and Fairness dispatcher for their entire duration. ([#105511](https://github.com/kubernetes/kubernetes/pull/105511), [@benluddy](https://github.com/benluddy)) +- When a static pod file is deleted and recreated while using a fixed UID, the pod was not properly restarted. ([#104847](https://github.com/kubernetes/kubernetes/pull/104847), [@smarterclayton](https://github.com/smarterclayton)) +- XFS-filesystems are now force-formatted (option `-f`) in order to avoid problems being formatted due to detection of magic super-blocks. This aligns with the behaviour of formatting of ext3/4 filesystems. ([#104923](https://github.com/kubernetes/kubernetes/pull/104923), [@davidkarlsen](https://github.com/davidkarlsen)) +- `--log-flush-frequency` had no effect in several commands or was missing. Help and warning texts were not always using the right format for a command (`add_dir_header` instead of `add-dir-header`). Fixing this included cleaning up flag handling in component-base/logs: that package no longer adds flags to the global flag sets. Commands which want the klog and `--log-flush-frequency` flags must explicitly call `logs.AddFlags`; the new `cli.Run` does that for commands. That helper function also covers flag normalization and printing of usage and errors in a consistent way (print usage text first if parsing failed, then the error). ([#105076](https://github.com/kubernetes/kubernetes/pull/105076), [@pohly](https://github.com/pohly)) + +### Other (Cleanup or Flake) + +- All `klog` flags except for `-v` and `-vmodule` are deprecated. Support for `-vmodule` is only guaranteed for the text log format. ([#105042](https://github.com/kubernetes/kubernetes/pull/105042), [@pohly](https://github.com/pohly)) +- Better pod events ("waiting for ephemeral volume controller to create the persistentvolumeclaim"" instead of "persistentvolumeclaim not found") when using generic ephemeral volumes. ([#104605](https://github.com/kubernetes/kubernetes/pull/104605), [@pohly](https://github.com/pohly)) +- Changed buckets in apiserver_request_duration_seconds metric from [0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0,1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60] to [0.05, 0.1, 0.2, 0.4, 0.6, 0.8, 1.0, 1.25, 1.5, 2, 3, 4, 5, 6, 8, 10, 15, 20, 30, 45, 60] ([#106306](https://github.com/kubernetes/kubernetes/pull/106306), [@pawbana](https://github.com/pawbana)) [SIG API Machinery, Instrumentation and Testing] +- Deprecate `apiserver_longrunning_gauge` and `apiserver_register_watchers` in 1.23.0. ([#103793](https://github.com/kubernetes/kubernetes/pull/103793), [@yan-lgtm](https://github.com/yan-lgtm)) +- Enhanced error message for nodes not selected by scheduler due to pod's PersistentVolumeClaim(s) bound to PersistentVolume(s) that do not exist. ([#105196](https://github.com/kubernetes/kubernetes/pull/105196), [@yibozhuang](https://github.com/yibozhuang)) +- Fix an issue in cleaning up `CertificateSigningRequest` objects with an unparseable `status.certificate` field. ([#103823](https://github.com/kubernetes/kubernetes/pull/103823), [@liggitt](https://github.com/liggitt)) +- Kube-apiserver: requests to node, Service, and Pod `/proxy` subresources with no additional URL path now only automatically redirect GET and HEAD requests. ([#95128](https://github.com/kubernetes/kubernetes/pull/95128), [@Riaankl](https://github.com/Riaankl)) +- Kube-apiserver: sets an upper-bound on the lifetime of idle keep-alive connections and the time to read the headers of incoming requests. ([#103958](https://github.com/kubernetes/kubernetes/pull/103958), [@liggitt](https://github.com/liggitt)) +- Kubeadm: external etcd endpoints passed in the `ClusterConfiguration` that have Unicode characters are no longer IDNA encoded (converted to Punycode). They are now just URL encoded as per Go's implementation of RFC-3986, have duplicate "/" removed from the URL paths, and passed like that directly to the `kube-apiserver` `--etcd-servers` flag. If you have etcd endpoints that have Unicode characters, it is advisable to encode them in advance with tooling that is fully IDNA compliant. If you don't do that, the Go standard library (used in k8s and etcd) would do it for you when making requests to the endpoints. ([#103801](https://github.com/kubernetes/kubernetes/pull/103801), [@gkarthiks](https://github.com/gkarthiks)) +- Kubeadm: remove the `--port` flag from the manifest for the `kube-controller-manager` since the flag has been a NO-OP since 1.22 and insecure serving was removed for the component. ([#104157](https://github.com/kubernetes/kubernetes/pull/104157), [@knight42](https://github.com/knight42)) +- Kubeadm: remove the `--port` flag from the manifest for the kube-scheduler since the flag has been a NO-OP since 1.23 and insecure serving was removed for the component. ([#105034](https://github.com/kubernetes/kubernetes/pull/105034), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: update references to legacy artifacts locations, the `ci-cross` prefix has been removed from the version match as it does not exist in the new `gs://k8s-release-dev` bucket. ([#103813](https://github.com/kubernetes/kubernetes/pull/103813), [@SataQiu](https://github.com/SataQiu)) +- Kubectl: deprecated command line flags (like several of the klog flags) now have a `DEPRECATED: <explanation>` comment. ([#106172](https://github.com/kubernetes/kubernetes/pull/106172), [@pohly](https://github.com/pohly)) [SIG CLI] +- Kubemark is now built as a portable, static binary. ([#106150](https://github.com/kubernetes/kubernetes/pull/106150), [@pohly](https://github.com/pohly)) [SIG Scalability and Testing] +- Migrate `cmd/proxy/{config, healthcheck, winkernel}` to structured logging ([#104944](https://github.com/kubernetes/kubernetes/pull/104944), [@jyz0309](https://github.com/jyz0309)) +- Migrate `pkg/proxy` to structured logging ([#104908](https://github.com/kubernetes/kubernetes/pull/104908), [@CIPHERTron](https://github.com/CIPHERTron)) +- Migrate `pkg/scheduler/framework/plugins/interpodaffinity/filtering.go`,`pkg/scheduler/framework/plugins/podtopologyspread/filtering.go`, `pkg/scheduler/framework/plugins/volumezone/volume_zone.go` to structured logging ([#105931](https://github.com/kubernetes/kubernetes/pull/105931), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Migrate `pkg/scheduler` to structured logging. ([#99273](https://github.com/kubernetes/kubernetes/pull/99273), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) +- Migrate cmd/proxy/app and pkg/proxy/meta_proxier to structured logging ([#104928](https://github.com/kubernetes/kubernetes/pull/104928), [@jyz0309](https://github.com/jyz0309)) +- Migrated `cmd/kube-scheduler/app/server.go`, `pkg/scheduler/framework/plugins/nodelabel/node_label.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/csi.go`, `pkg/scheduler/framework/plugins/nodevolumelimits/non_csi.go` to structured logging ([#105855](https://github.com/kubernetes/kubernetes/pull/105855), [@shivanshu1333](https://github.com/shivanshu1333)) +- Migrated `pkg/proxy/ipvs` to structured logging ([#104932](https://github.com/kubernetes/kubernetes/pull/104932), [@shivanshu1333](https://github.com/shivanshu1333)) +- Migrated `pkg/proxy/userspace` to structured logging. ([#104931](https://github.com/kubernetes/kubernetes/pull/104931), [@shivanshu1333](https://github.com/shivanshu1333)) +- Migrated `pkg/proxy` to structured logging ([#104891](https://github.com/kubernetes/kubernetes/pull/104891), [@shivanshu1333](https://github.com/shivanshu1333)) +- Migrated `pkg/scheduler/framework/plugins/volumebinding/assume_cache.go` to structured logging. ([#105904](https://github.com/kubernetes/kubernetes/pull/105904), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation, Scheduling and Storage] +- Migrated `pkg/scheduler/framework/preemption/preemption.go`, `pkg/scheduler/framework/plugins/examples/stateful/stateful.go`, and `pkg/scheduler/framework/plugins/noderesources/resource_allocation.go` to structured logging ([#105967](https://github.com/kubernetes/kubernetes/pull/105967), [@shivanshu1333](https://github.com/shivanshu1333)) [SIG Instrumentation, Node and Scheduling] +- Migrated pkg/proxy/winuserspace to structured logging ([#105035](https://github.com/kubernetes/kubernetes/pull/105035), [@shivanshu1333](https://github.com/shivanshu1333)) +- Migrated scheduler file `cache.go` to structured logging ([#105969](https://github.com/kubernetes/kubernetes/pull/105969), [@shivanshu1333](https://github.com/shivanshu1333)) [SIG Instrumentation and Scheduling] +- Migrated scheduler files `comparer.go`, `dumper.go`, `node_tree.go` to structured logging ([#105968](https://github.com/kubernetes/kubernetes/pull/105968), [@shivanshu1333](https://github.com/shivanshu1333)) [SIG Instrumentation and Scheduling] +- More detailed logging has been added to the EndpointSlice controller for Topology. ([#104741](https://github.com/kubernetes/kubernetes/pull/104741), [@robscott](https://github.com/robscott)) +- Remove deprecated and not supported old cronjob controller. ([#106126](https://github.com/kubernetes/kubernetes/pull/106126), [@soltysh](https://github.com/soltysh)) [SIG Apps] +- Remove ignore error flag for drain, and set this feature as default ([#105571](https://github.com/kubernetes/kubernetes/pull/105571), [@yuzhiquan](https://github.com/yuzhiquan)) [SIG CLI] +- Remove the deprecated flags `--csr-only` and `--csr-dir` from `kubeadm certs renew`. Please use `kubeadm certs generate-csr` instead. ([#104796](https://github.com/kubernetes/kubernetes/pull/104796), [@RA489](https://github.com/RA489)) +- Support allocating whole NUMA nodes in the CPUManager when there is not a 1:1 mapping between socket and NUMA node ([#102015](https://github.com/kubernetes/kubernetes/pull/102015), [@klueska](https://github.com/klueska)) +- Support for Windows Server 2022 was added to the `k8s.gcr.io/pause:3.6` image. ([#104711](https://github.com/kubernetes/kubernetes/pull/104711), [@claudiubelu](https://github.com/claudiubelu)) +- Surface warning when users don't set `propagationPolicy` for jobs while deleting. ([#104080](https://github.com/kubernetes/kubernetes/pull/104080), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- The `AllowInsecureBackendProxy` feature gate is removed. It reached GA in Kubernetes 1.21. ([#103796](https://github.com/kubernetes/kubernetes/pull/103796), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- The `BoundServiceAccountTokenVolume` feature gate that is GA since v1.22 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#104167](https://github.com/kubernetes/kubernetes/pull/104167), [@ialidzhikov](https://github.com/ialidzhikov)) +- The `StartupProbe` feature gate that is GA since v1.20 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#104168](https://github.com/kubernetes/kubernetes/pull/104168), [@ialidzhikov](https://github.com/ialidzhikov)) +- The `SupportPodPidsLimit` and `SupportNodePidsLimit` feature gates that are GA since v1.20 are unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#104163](https://github.com/kubernetes/kubernetes/pull/104163), [@ialidzhikov](https://github.com/ialidzhikov)) +- The `apiserver` exposes 4 new metrics that allow to track the status of the Service CIDRs allocations: + - current number of available IPs per Service CIDR + - current number of used IPs per Service CIDR + - total number of allocation per Service CIDR + - total number of allocation errors per ServiceCIDR ([#104119](https://github.com/kubernetes/kubernetes/pull/104119), [@aojea](https://github.com/aojea)) +- The flag `--deployment-controller-sync-period` has been deprecated and will be removed in v1.24. ([#103538](https://github.com/kubernetes/kubernetes/pull/103538), [@Pingan2017](https://github.com/Pingan2017)) +- The image `gcr.io/kubernetes-e2e-test-images` will no longer be used in E2E / CI testing, `k8s.gcr.io/e2e-test-images` will be used instead. ([#103724](https://github.com/kubernetes/kubernetes/pull/103724), [@claudiubelu](https://github.com/claudiubelu)) +- The kube-proxy image contains `/go-runner` as a replacement for deprecated klog flags. ([#106301](https://github.com/kubernetes/kubernetes/pull/106301), [@pohly](https://github.com/pohly)) +- The maximum length of the `CSINode` id field has increased to 256 bytes to match the CSI spec. ([#104160](https://github.com/kubernetes/kubernetes/pull/104160), [@pacoxu](https://github.com/pacoxu)) +- Troubleshooting: informers log handlers that take more than 100 milliseconds to process an object if the `DeltaFIFO` queue starts to grow beyond 10 elements. ([#103917](https://github.com/kubernetes/kubernetes/pull/103917), [@aojea](https://github.com/aojea)) +- Update `cri-tools` dependency to v1.22.0. ([#104430](https://github.com/kubernetes/kubernetes/pull/104430), [@saschagrunert](https://github.com/saschagrunert)) +- Update `migratecmd/kube-proxy/app` logs to structured logging. ([#98913](https://github.com/kubernetes/kubernetes/pull/98913), [@yxxhero](https://github.com/yxxhero)) +- Update build images to Debian 11 (Bullseye) + - debian-base:bullseye-v1.0.0 + - debian-iptables:bullseye-v1.0.0 + - go-runner:v2.3.1-go1.17.1-bullseye.0 + - kube-cross:v1.23.0-go1.17.1-bullseye.1 + - setcap:bullseye-v1.0.0 + - cluster/images/etcd: Build 3.5.0-2 image + - test/conformance/image: Update runner image to base-debian11 ([#105158](https://github.com/kubernetes/kubernetes/pull/105158), [@justaugustus](https://github.com/justaugustus)) +- Update conformance image to use `debian-base:buster-v1.9.0`. ([#104696](https://github.com/kubernetes/kubernetes/pull/104696), [@PushkarJ](https://github.com/PushkarJ)) - `volume.kubernetes.io/storage-provisioner` annotation will be added to dynamic provisioning required PVC. `volume.beta.kubernetes.io/storage-provisioner` annotation is deprecated. ([#104590](https://github.com/kubernetes/kubernetes/pull/104590), [@Jiawei0227](https://github.com/Jiawei0227)) \ No newline at end of file diff --git a/releases/release-1.23/release-notes/sessions/maps-1629741951.json b/releases/release-1.23/release-notes/sessions/maps-1629741951.json index abf24385e21..21af1d5e4ac 100644 --- a/releases/release-1.23/release-notes/sessions/maps-1629741951.json +++ b/releases/release-1.23/release-notes/sessions/maps-1629741951.json @@ -1,247 +1,247 @@ -{ - "mail": "cicih@google.com", - "name": "cici37", - "date": 1629741951, - "prs": [ - { - "nr": 103564, - "hash": "ce02436b58b2ad629721d6c96072f89ace71574f" - }, - { - "nr": 103685, - "hash": "3aae0804b3a310f713677e803887da2b7f9402cd" - }, - { - "nr": 102507, - "hash": "5b042ccc9e9b59c28bf4abf554c58cf734463c40" - }, - { - "nr": 103231, - "hash": "70f0a2783d86c4d2cd479448178db442eaa3aa76" - }, - { - "nr": 103852, - "hash": "dc50498289e8a104db846434649bc2afc506ad46" - }, - { - "nr": 103843, - "hash": "f08361894ca476bee677affc2cea486567777865" - }, - { - "nr": 104033, - "hash": "c53b85d88df514993a2afe1e25e70cbb36cbaedf" - }, - { - "nr": 103027, - "hash": "c57c71c161cf42468b4c7938347ae3979423d0ac" - }, - { - "nr": 103162, - "hash": "f36477029d64a2d2e0723b0c761d63aa4e76ab05" - }, - { - "nr": 103997, - "hash": "0a1c6173c606654c5b7480c74bc7736585b89b73" - }, - { - "nr": 104426, - "hash": "b96904ce5b43577d8db9ecdcdfafa520c4ecdbc0" - }, - { - "nr": 103724, - "hash": "99cee06dd315f0bbb489863a810cd2a3833f5353" - }, - { - "nr": 98913, - "hash": "210cb29e0d5e26b8752469c2688addaff50f4c4e" - }, - { - "nr": 102981, - "hash": "d28f40c2520cea1364dd5927cb9c8da63c857e4a" - }, - { - "nr": 104009, - "hash": "9b425ba8f9b2973ae46e12302420359b0c48968e" - }, - { - "nr": 103801, - "hash": "e8af76c170997bf47cd1f4808bd5cf95a035e36f" - }, - { - "nr": 103796, - "hash": "4246660ceb1173a1f03b9aa12d55c289b1b69c68" - }, - { - "nr": 104080, - "hash": "3cea80f89d9ea8583b8d6859124c4e7ae6a35571" - }, - { - "nr": 104102, - "hash": "db97405f56ef528d3b090bb55bc4fa94c4106214" - }, - { - "nr": 104182, - "hash": "1ec7bd0385a124434c27606dc5e2db331f76d3da" - }, - { - "nr": 104161, - "hash": "e19ae8be54900992afce70b839423f463a2ec0df" - }, - { - "nr": 104293, - "hash": "12fcad8d4e26da3875fa1e7cbcb266296269c96e" - }, - { - "nr": 103654, - "hash": "303db7ce34d231559a8a2d761696f92606a60b61" - }, - { - "nr": 103794, - "hash": "9228a312021a00cc608a6af221e6d98fbe7a4e80" - }, - { - "nr": 103823, - "hash": "167dee04458b405a6b052ffba9b6d9900695e520" - }, - { - "nr": 104119, - "hash": "575298ee325526a15e958e462b63910fa2878044" - }, - { - "nr": 104116, - "hash": "08775e2aaf8ed06caf4af88afd68de2006a0f51f" - }, - { - "nr": 104199, - "hash": "8915890cc44a540e7fd79801baf8a48714568939" - }, - { - "nr": 104134, - "hash": "7c5a1ecd06a37d6ea25d9462af9de3d6286884f6" - }, - { - "nr": 103875, - "hash": "db6b0c76fcf88fdde39900ef6eb1f38991b41af0" - }, - { - "nr": 103831, - "hash": "79bbb5391dfffd7853aa19b4664ad18a6fdd1868" - }, - { - "nr": 104065, - "hash": "88902ba977cafa9e0aa6009e8f3b51287c5daad1" - }, - { - "nr": 103538, - "hash": "e57f75aa44e28569e9599c5b867e08e2d05a768d" - }, - { - "nr": 104142, - "hash": "f941b7b76be5c7be0c5517db22569f7fb39b98d4" - }, - { - "nr": 104011, - "hash": "04e845e2361e02d362e1b767980e99a73dbf09c0" - }, - { - "nr": 103813, - "hash": "0e8b6fddb983e78409c4923dcb53d922a20facab" - }, - { - "nr": 101646, - "hash": "df050b41114f816afddedffff3e692814124441a" - }, - { - "nr": 103918, - "hash": "e0ba9d238e59cf634c526802c8385a0c75f6e375" - }, - { - "nr": 101789, - "hash": "416a41073c969ef3871485b7a36a798323930141" - }, - { - "nr": 104253, - "hash": "dbdeb4339eb552b3fc4133d97a4da408527eac8f" - }, - { - "nr": 104168, - "hash": "8d72244aa192747e20651e817856804a4b49e543" - }, - { - "nr": 104157, - "hash": "a5a056524e8c2bd5e2c12458f196cdf3a40ea865" - }, - { - "nr": 103439, - "hash": "c1aed3f71371779b5fe017e01cef34f5895e9774" - }, - { - "nr": 104389, - "hash": "181fe22a4aaf62e9790f5a7ed82f6c108c311b1b" - }, - { - "nr": 104430, - "hash": "aa464c17a9d3476c5584dfcc3c9883696d6219da" - }, - { - "nr": 101081, - "hash": "9cac7d22ec19d2c81e069554a8ced43fe4e5c6d2" - }, - { - "nr": 101257, - "hash": "279f26a8cf85217de7ab3af4c14a82e8d1d5952a" - }, - { - "nr": 104185, - "hash": "52bb24c88aa8504f2b32b4d1e86de63bb975aebf" - }, - { - "nr": 103793, - "hash": "902a8efe7a36d7626db4d78c2d5bfd7ab53e7d2b" - }, - { - "nr": 101370, - "hash": "26efbdd836652fee30ab09f11b24a0c81ccada49" - }, - { - "nr": 101781, - "hash": "5b2dae14f7c9d6838a7410051ae3ec38ec466e8e" - }, - { - "nr": 104384, - "hash": "b14dcf63891796bce5dce282e8949039659c1d71" - }, - { - "nr": 103137, - "hash": "0e1fb0accb894205ab6d5210059d7d8217dcfcf4" - }, - { - "nr": 102886, - "hash": "58f7a556738583a0f7532b5bd6d009a4e4fd9325" - }, - { - "nr": 104248, - "hash": "2202fae8beb37c15b900c0e0b7db095b0154a91f" - }, - { - "nr": 103958, - "hash": "80ccc15d5f1770b2bda5316ba26cacd478ab8243" - }, - { - "nr": 103894, - "hash": "aab1378d2e1fc5f0f29548e328254b4238dd5cf2" - }, - { - "nr": 103799, - "hash": "e59b7f4c82fbe9809c85c16e975458c8e7f4b7f4" - }, - { - "nr": 103917, - "hash": "7ad31583d6288cc10fac4a5ad05fde83c1261196" - }, - { - "nr": 104301, - "hash": "d762e4e2c69c32ec7ac69324db3fdf732c570e25" - } - ] +{ + "mail": "cicih@google.com", + "name": "cici37", + "date": 1629741951, + "prs": [ + { + "nr": 103564, + "hash": "ce02436b58b2ad629721d6c96072f89ace71574f" + }, + { + "nr": 103685, + "hash": "3aae0804b3a310f713677e803887da2b7f9402cd" + }, + { + "nr": 102507, + "hash": "5b042ccc9e9b59c28bf4abf554c58cf734463c40" + }, + { + "nr": 103231, + "hash": "70f0a2783d86c4d2cd479448178db442eaa3aa76" + }, + { + "nr": 103852, + "hash": "dc50498289e8a104db846434649bc2afc506ad46" + }, + { + "nr": 103843, + "hash": "f08361894ca476bee677affc2cea486567777865" + }, + { + "nr": 104033, + "hash": "c53b85d88df514993a2afe1e25e70cbb36cbaedf" + }, + { + "nr": 103027, + "hash": "c57c71c161cf42468b4c7938347ae3979423d0ac" + }, + { + "nr": 103162, + "hash": "f36477029d64a2d2e0723b0c761d63aa4e76ab05" + }, + { + "nr": 103997, + "hash": "0a1c6173c606654c5b7480c74bc7736585b89b73" + }, + { + "nr": 104426, + "hash": "b96904ce5b43577d8db9ecdcdfafa520c4ecdbc0" + }, + { + "nr": 103724, + "hash": "99cee06dd315f0bbb489863a810cd2a3833f5353" + }, + { + "nr": 98913, + "hash": "210cb29e0d5e26b8752469c2688addaff50f4c4e" + }, + { + "nr": 102981, + "hash": "d28f40c2520cea1364dd5927cb9c8da63c857e4a" + }, + { + "nr": 104009, + "hash": "9b425ba8f9b2973ae46e12302420359b0c48968e" + }, + { + "nr": 103801, + "hash": "e8af76c170997bf47cd1f4808bd5cf95a035e36f" + }, + { + "nr": 103796, + "hash": "4246660ceb1173a1f03b9aa12d55c289b1b69c68" + }, + { + "nr": 104080, + "hash": "3cea80f89d9ea8583b8d6859124c4e7ae6a35571" + }, + { + "nr": 104102, + "hash": "db97405f56ef528d3b090bb55bc4fa94c4106214" + }, + { + "nr": 104182, + "hash": "1ec7bd0385a124434c27606dc5e2db331f76d3da" + }, + { + "nr": 104161, + "hash": "e19ae8be54900992afce70b839423f463a2ec0df" + }, + { + "nr": 104293, + "hash": "12fcad8d4e26da3875fa1e7cbcb266296269c96e" + }, + { + "nr": 103654, + "hash": "303db7ce34d231559a8a2d761696f92606a60b61" + }, + { + "nr": 103794, + "hash": "9228a312021a00cc608a6af221e6d98fbe7a4e80" + }, + { + "nr": 103823, + "hash": "167dee04458b405a6b052ffba9b6d9900695e520" + }, + { + "nr": 104119, + "hash": "575298ee325526a15e958e462b63910fa2878044" + }, + { + "nr": 104116, + "hash": "08775e2aaf8ed06caf4af88afd68de2006a0f51f" + }, + { + "nr": 104199, + "hash": "8915890cc44a540e7fd79801baf8a48714568939" + }, + { + "nr": 104134, + "hash": "7c5a1ecd06a37d6ea25d9462af9de3d6286884f6" + }, + { + "nr": 103875, + "hash": "db6b0c76fcf88fdde39900ef6eb1f38991b41af0" + }, + { + "nr": 103831, + "hash": "79bbb5391dfffd7853aa19b4664ad18a6fdd1868" + }, + { + "nr": 104065, + "hash": "88902ba977cafa9e0aa6009e8f3b51287c5daad1" + }, + { + "nr": 103538, + "hash": "e57f75aa44e28569e9599c5b867e08e2d05a768d" + }, + { + "nr": 104142, + "hash": "f941b7b76be5c7be0c5517db22569f7fb39b98d4" + }, + { + "nr": 104011, + "hash": "04e845e2361e02d362e1b767980e99a73dbf09c0" + }, + { + "nr": 103813, + "hash": "0e8b6fddb983e78409c4923dcb53d922a20facab" + }, + { + "nr": 101646, + "hash": "df050b41114f816afddedffff3e692814124441a" + }, + { + "nr": 103918, + "hash": "e0ba9d238e59cf634c526802c8385a0c75f6e375" + }, + { + "nr": 101789, + "hash": "416a41073c969ef3871485b7a36a798323930141" + }, + { + "nr": 104253, + "hash": "dbdeb4339eb552b3fc4133d97a4da408527eac8f" + }, + { + "nr": 104168, + "hash": "8d72244aa192747e20651e817856804a4b49e543" + }, + { + "nr": 104157, + "hash": "a5a056524e8c2bd5e2c12458f196cdf3a40ea865" + }, + { + "nr": 103439, + "hash": "c1aed3f71371779b5fe017e01cef34f5895e9774" + }, + { + "nr": 104389, + "hash": "181fe22a4aaf62e9790f5a7ed82f6c108c311b1b" + }, + { + "nr": 104430, + "hash": "aa464c17a9d3476c5584dfcc3c9883696d6219da" + }, + { + "nr": 101081, + "hash": "9cac7d22ec19d2c81e069554a8ced43fe4e5c6d2" + }, + { + "nr": 101257, + "hash": "279f26a8cf85217de7ab3af4c14a82e8d1d5952a" + }, + { + "nr": 104185, + "hash": "52bb24c88aa8504f2b32b4d1e86de63bb975aebf" + }, + { + "nr": 103793, + "hash": "902a8efe7a36d7626db4d78c2d5bfd7ab53e7d2b" + }, + { + "nr": 101370, + "hash": "26efbdd836652fee30ab09f11b24a0c81ccada49" + }, + { + "nr": 101781, + "hash": "5b2dae14f7c9d6838a7410051ae3ec38ec466e8e" + }, + { + "nr": 104384, + "hash": "b14dcf63891796bce5dce282e8949039659c1d71" + }, + { + "nr": 103137, + "hash": "0e1fb0accb894205ab6d5210059d7d8217dcfcf4" + }, + { + "nr": 102886, + "hash": "58f7a556738583a0f7532b5bd6d009a4e4fd9325" + }, + { + "nr": 104248, + "hash": "2202fae8beb37c15b900c0e0b7db095b0154a91f" + }, + { + "nr": 103958, + "hash": "80ccc15d5f1770b2bda5316ba26cacd478ab8243" + }, + { + "nr": 103894, + "hash": "aab1378d2e1fc5f0f29548e328254b4238dd5cf2" + }, + { + "nr": 103799, + "hash": "e59b7f4c82fbe9809c85c16e975458c8e7f4b7f4" + }, + { + "nr": 103917, + "hash": "7ad31583d6288cc10fac4a5ad05fde83c1261196" + }, + { + "nr": 104301, + "hash": "d762e4e2c69c32ec7ac69324db3fdf732c570e25" + } + ] } \ No newline at end of file diff --git a/releases/release-1.23/release-notes/sessions/maps-1632072296.json b/releases/release-1.23/release-notes/sessions/maps-1632072296.json index 738500bf83f..5f14d10c880 100644 --- a/releases/release-1.23/release-notes/sessions/maps-1632072296.json +++ b/releases/release-1.23/release-notes/sessions/maps-1632072296.json @@ -1,215 +1,215 @@ -{ - "mail": "mail@samcogan.com", - "name": "Sam Cogan", - "date": 1632072296, - "prs": [ - { - "nr": 104666, - "hash": "fd7a7a30a2ce1abbd20f80fa36c8728ecbd75652" - }, - { - "nr": 103515, - "hash": "b654d92bca5a5c38bd13ab22b5e6472531229e37" - }, - { - "nr": 104466, - "hash": "7ea790849a00e66dc71a290c415211b7a6efbbee" - }, - { - "nr": 103758, - "hash": "7ce2e381d3e0aef9fe1ea02c1e1acfa774b7848d" - }, - { - "nr": 97350, - "hash": "636cb33ee3a9568cf48b526f633ed07f1e930ba8" - }, - { - "nr": 96684, - "hash": "7ca850b1f55afa245e1b9aafeb279718c242766f" - }, - { - "nr": 104577, - "hash": "6e16516187ea2db20fd4e30f162df19914b392aa" - }, - { - "nr": 100720, - "hash": "32ad7e26ae67f727777479a27d8937fb49013d53" - }, - { - "nr": 104604, - "hash": "89f678141b15506f591ba95ffe9ad9d8ccd81bec" - }, - { - "nr": 104571, - "hash": "779c438d6f4e8a764f435f515079319914501e10" - }, - { - "nr": 104593, - "hash": "1b6a80401afad9b0d0d6dff5d9522fe0624beb04" - }, - { - "nr": 104817, - "hash": "8191b0b4ddbc9c9f8056303d4199f78756853288" - }, - { - "nr": 104605, - "hash": "b70357afc5511f53a3d5d323e7f14d9b1ffaad6c" - }, - { - "nr": 104368, - "hash": "21d011f7679c2e7a43f74f36517ab98f1bf6e48c" - }, - { - "nr": 104741, - "hash": "b211e399a7af08f2311d0d17769f660dfc4d3a8c" - }, - { - "nr": 104438, - "hash": "0bfae5bebd22b3260e6b38ebe41e04b8fbb123dc" - }, - { - "nr": 104931, - "hash": "a8c4054ec412d1230938e26cc38c7b2df5984321" - }, - { - "nr": 104904, - "hash": "586e775eaebc82be233f264a9abd5e3a64882b6b" - }, - { - "nr": 104970, - "hash": "f531343f717ab322fbb771c6a55261a4c855d39a" - }, - { - "nr": 104711, - "hash": "38a4fe6fb91fda71e76ec3f81860fb0560fb3863" - }, - { - "nr": 104590, - "hash": "f2a426198477f6052299aba935a906dd7bbaef58" - }, - { - "nr": 104796, - "hash": "4e806c94de269d3d102e98d585f7c5d861d56e77" - }, - { - "nr": 101928, - "hash": "04b682c1182a4d21e06159459e491343546ecde1" - }, - { - "nr": 104969, - "hash": "d61ebc58b40c3aaad6d2640dd2fee3a3f450ce54" - }, - { - "nr": 104399, - "hash": "7d289bba1663685189651d6dae20d2a07aa33cc2" - }, - { - "nr": 104572, - "hash": "e5d2a723096194c26727f317cd641145e13f9547" - }, - { - "nr": 104382, - "hash": "3b3f7a9ab74a2eea98bfb66991b01be1886e78fb" - }, - { - "nr": 104667, - "hash": "d06b2b153e68f1a9311e5e819c862656bf9a2bc6" - }, - { - "nr": 103178, - "hash": "05cacc4eb9f2476cca5ee3f5082bfe3a51365751" - }, - { - "nr": 104232, - "hash": "81222087861a8d28a80388beb4b0e5e9945fa5f7" - }, - { - "nr": 103692, - "hash": "ed3b5fb83024f78853459791662cb608b84623c5" - }, - { - "nr": 104103, - "hash": "a08137564166265938f8b53531e140cc8ec345ec" - }, - { - "nr": 104756, - "hash": "fb3c1b5f0a545babab202a74d716f963a2525494" - }, - { - "nr": 103751, - "hash": "ada129d825fb0b487cf47c7bc5b59379033b069d" - }, - { - "nr": 103941, - "hash": "cae02db474f9c4cd67f202cb16b18841eaaec363" - }, - { - "nr": 104742, - "hash": "df6a622a0f9841e77fa4b018126a35fc9887228a" - }, - { - "nr": 104160, - "hash": "f1ecbb4ded51af5764ae4ca1835111c5a2dc8ef9" - }, - { - "nr": 96345, - "hash": "73664a03fc363d684cc236c7c83f546ee12b3b3a" - }, - { - "nr": 104045, - "hash": "e0d9ddc039cf291335ea6cbaf343946903b39c48" - }, - { - "nr": 104699, - "hash": "5dc32a7c9dd3cd9cadb21a0443b0fcb007322523" - }, - { - "nr": 104518, - "hash": "f59ab9161a22a0cfd0d6354d0fd583b12dfb3403" - }, - { - "nr": 104523, - "hash": "1de6a9cbaba40de976229f3a41282d3c251d139a" - }, - { - "nr": 104528, - "hash": "773c1ebeca948281a06157e5afda536bdf899d84" - }, - { - "nr": 92989, - "hash": "6cd647018816d4c19491d88228f3fa5c168072f6" - }, - { - "nr": 104696, - "hash": "f22800484bad77ddb65e11885118a9875b5401ea" - }, - { - "nr": 104853, - "hash": "0554ecbfbedeca911ba7b249d2707e7034f723f9" - }, - { - "nr": 99273, - "hash": "a078348b40632564176c5879e788068f68f4a1f3" - }, - { - "nr": 104705, - "hash": "1859f7bb34e2629b04830e0f685b7fd3f539d3c8" - }, - { - "nr": 104482, - "hash": "fa02b5b98829e9a17d4d74db3e1b2c23d540a3d8" - }, - { - "nr": 104601, - "hash": "c7bbd48bfba725bcec6ceb272557519c86c4a7b8" - }, - { - "nr": 104664, - "hash": "2f466bbd326e5f56a32c7f2358c1b2651b04689c" - }, - { - "nr": 104503, - "hash": "e29cbab08a60f34140eeffa3f896f55704c86f51" - } - ] +{ + "mail": "mail@samcogan.com", + "name": "Sam Cogan", + "date": 1632072296, + "prs": [ + { + "nr": 104666, + "hash": "fd7a7a30a2ce1abbd20f80fa36c8728ecbd75652" + }, + { + "nr": 103515, + "hash": "b654d92bca5a5c38bd13ab22b5e6472531229e37" + }, + { + "nr": 104466, + "hash": "7ea790849a00e66dc71a290c415211b7a6efbbee" + }, + { + "nr": 103758, + "hash": "7ce2e381d3e0aef9fe1ea02c1e1acfa774b7848d" + }, + { + "nr": 97350, + "hash": "636cb33ee3a9568cf48b526f633ed07f1e930ba8" + }, + { + "nr": 96684, + "hash": "7ca850b1f55afa245e1b9aafeb279718c242766f" + }, + { + "nr": 104577, + "hash": "6e16516187ea2db20fd4e30f162df19914b392aa" + }, + { + "nr": 100720, + "hash": "32ad7e26ae67f727777479a27d8937fb49013d53" + }, + { + "nr": 104604, + "hash": "89f678141b15506f591ba95ffe9ad9d8ccd81bec" + }, + { + "nr": 104571, + "hash": "779c438d6f4e8a764f435f515079319914501e10" + }, + { + "nr": 104593, + "hash": "1b6a80401afad9b0d0d6dff5d9522fe0624beb04" + }, + { + "nr": 104817, + "hash": "8191b0b4ddbc9c9f8056303d4199f78756853288" + }, + { + "nr": 104605, + "hash": "b70357afc5511f53a3d5d323e7f14d9b1ffaad6c" + }, + { + "nr": 104368, + "hash": "21d011f7679c2e7a43f74f36517ab98f1bf6e48c" + }, + { + "nr": 104741, + "hash": "b211e399a7af08f2311d0d17769f660dfc4d3a8c" + }, + { + "nr": 104438, + "hash": "0bfae5bebd22b3260e6b38ebe41e04b8fbb123dc" + }, + { + "nr": 104931, + "hash": "a8c4054ec412d1230938e26cc38c7b2df5984321" + }, + { + "nr": 104904, + "hash": "586e775eaebc82be233f264a9abd5e3a64882b6b" + }, + { + "nr": 104970, + "hash": "f531343f717ab322fbb771c6a55261a4c855d39a" + }, + { + "nr": 104711, + "hash": "38a4fe6fb91fda71e76ec3f81860fb0560fb3863" + }, + { + "nr": 104590, + "hash": "f2a426198477f6052299aba935a906dd7bbaef58" + }, + { + "nr": 104796, + "hash": "4e806c94de269d3d102e98d585f7c5d861d56e77" + }, + { + "nr": 101928, + "hash": "04b682c1182a4d21e06159459e491343546ecde1" + }, + { + "nr": 104969, + "hash": "d61ebc58b40c3aaad6d2640dd2fee3a3f450ce54" + }, + { + "nr": 104399, + "hash": "7d289bba1663685189651d6dae20d2a07aa33cc2" + }, + { + "nr": 104572, + "hash": "e5d2a723096194c26727f317cd641145e13f9547" + }, + { + "nr": 104382, + "hash": "3b3f7a9ab74a2eea98bfb66991b01be1886e78fb" + }, + { + "nr": 104667, + "hash": "d06b2b153e68f1a9311e5e819c862656bf9a2bc6" + }, + { + "nr": 103178, + "hash": "05cacc4eb9f2476cca5ee3f5082bfe3a51365751" + }, + { + "nr": 104232, + "hash": "81222087861a8d28a80388beb4b0e5e9945fa5f7" + }, + { + "nr": 103692, + "hash": "ed3b5fb83024f78853459791662cb608b84623c5" + }, + { + "nr": 104103, + "hash": "a08137564166265938f8b53531e140cc8ec345ec" + }, + { + "nr": 104756, + "hash": "fb3c1b5f0a545babab202a74d716f963a2525494" + }, + { + "nr": 103751, + "hash": "ada129d825fb0b487cf47c7bc5b59379033b069d" + }, + { + "nr": 103941, + "hash": "cae02db474f9c4cd67f202cb16b18841eaaec363" + }, + { + "nr": 104742, + "hash": "df6a622a0f9841e77fa4b018126a35fc9887228a" + }, + { + "nr": 104160, + "hash": "f1ecbb4ded51af5764ae4ca1835111c5a2dc8ef9" + }, + { + "nr": 96345, + "hash": "73664a03fc363d684cc236c7c83f546ee12b3b3a" + }, + { + "nr": 104045, + "hash": "e0d9ddc039cf291335ea6cbaf343946903b39c48" + }, + { + "nr": 104699, + "hash": "5dc32a7c9dd3cd9cadb21a0443b0fcb007322523" + }, + { + "nr": 104518, + "hash": "f59ab9161a22a0cfd0d6354d0fd583b12dfb3403" + }, + { + "nr": 104523, + "hash": "1de6a9cbaba40de976229f3a41282d3c251d139a" + }, + { + "nr": 104528, + "hash": "773c1ebeca948281a06157e5afda536bdf899d84" + }, + { + "nr": 92989, + "hash": "6cd647018816d4c19491d88228f3fa5c168072f6" + }, + { + "nr": 104696, + "hash": "f22800484bad77ddb65e11885118a9875b5401ea" + }, + { + "nr": 104853, + "hash": "0554ecbfbedeca911ba7b249d2707e7034f723f9" + }, + { + "nr": 99273, + "hash": "a078348b40632564176c5879e788068f68f4a1f3" + }, + { + "nr": 104705, + "hash": "1859f7bb34e2629b04830e0f685b7fd3f539d3c8" + }, + { + "nr": 104482, + "hash": "fa02b5b98829e9a17d4d74db3e1b2c23d540a3d8" + }, + { + "nr": 104601, + "hash": "c7bbd48bfba725bcec6ceb272557519c86c4a7b8" + }, + { + "nr": 104664, + "hash": "2f466bbd326e5f56a32c7f2358c1b2651b04689c" + }, + { + "nr": 104503, + "hash": "e29cbab08a60f34140eeffa3f896f55704c86f51" + } + ] } \ No newline at end of file diff --git a/releases/release-1.23/release-notes/sessions/maps-1633406937.json b/releases/release-1.23/release-notes/sessions/maps-1633406937.json index 76105d4c618..406f7479d5f 100644 --- a/releases/release-1.23/release-notes/sessions/maps-1633406937.json +++ b/releases/release-1.23/release-notes/sessions/maps-1633406937.json @@ -1,563 +1,563 @@ -{ - "mail": "parulsahoo5jan@gmail.com", - "name": "parul5sahoo", - "date": 1633406937, - "prs": [ - { - "nr": 104232, - "hash": "81222087861a8d28a80388beb4b0e5e9945fa5f7" - }, - { - "nr": 104389, - "hash": "181fe22a4aaf62e9790f5a7ed82f6c108c311b1b" - }, - { - "nr": 103654, - "hash": "303db7ce34d231559a8a2d761696f92606a60b61" - }, - { - "nr": 104157, - "hash": "a5a056524e8c2bd5e2c12458f196cdf3a40ea865" - }, - { - "nr": 104854, - "hash": "b1d5d75ac53d3ab710b8f7e70141a9b65e649b3d" - }, - { - "nr": 104904, - "hash": "586e775eaebc82be233f264a9abd5e3a64882b6b" - }, - { - "nr": 104970, - "hash": "f531343f717ab322fbb771c6a55261a4c855d39a" - }, - { - "nr": 104593, - "hash": "1b6a80401afad9b0d0d6dff5d9522fe0624beb04" - }, - { - "nr": 104605, - "hash": "b70357afc5511f53a3d5d323e7f14d9b1ffaad6c" - }, - { - "nr": 104160, - "hash": "f1ecbb4ded51af5764ae4ca1835111c5a2dc8ef9" - }, - { - "nr": 103799, - "hash": "e59b7f4c82fbe9809c85c16e975458c8e7f4b7f4" - }, - { - "nr": 102981, - "hash": "d28f40c2520cea1364dd5927cb9c8da63c857e4a" - }, - { - "nr": 105196, - "hash": "c2873b7f32088f5201c75a4159f0acb6ebc31dd7" - }, - { - "nr": 104691, - "hash": "098aa73d3bacecdcec29a61966ed992b8cb84a81" - }, - { - "nr": 104045, - "hash": "e0d9ddc039cf291335ea6cbaf343946903b39c48" - }, - { - "nr": 101928, - "hash": "04b682c1182a4d21e06159459e491343546ecde1" - }, - { - "nr": 103813, - "hash": "0e8b6fddb983e78409c4923dcb53d922a20facab" - }, - { - "nr": 103564, - "hash": "ce02436b58b2ad629721d6c96072f89ace71574f" - }, - { - "nr": 92853, - "hash": "055e2a5e881a8b0c51d47564d1398d3dac01d8a3" - }, - { - "nr": 104163, - "hash": "ac341234cf598f33dee4a834673ee2ce3084a66c" - }, - { - "nr": 104399, - "hash": "7d289bba1663685189651d6dae20d2a07aa33cc2" - }, - { - "nr": 104161, - "hash": "e19ae8be54900992afce70b839423f463a2ec0df" - }, - { - "nr": 104711, - "hash": "38a4fe6fb91fda71e76ec3f81860fb0560fb3863" - }, - { - "nr": 98913, - "hash": "210cb29e0d5e26b8752469c2688addaff50f4c4e" - }, - { - "nr": 101646, - "hash": "df050b41114f816afddedffff3e692814124441a" - }, - { - "nr": 104430, - "hash": "aa464c17a9d3476c5584dfcc3c9883696d6219da" - }, - { - "nr": 104080, - "hash": "3cea80f89d9ea8583b8d6859124c4e7ae6a35571" - }, - { - "nr": 101781, - "hash": "5b2dae14f7c9d6838a7410051ae3ec38ec466e8e" - }, - { - "nr": 104742, - "hash": "df6a622a0f9841e77fa4b018126a35fc9887228a" - }, - { - "nr": 104756, - "hash": "fb3c1b5f0a545babab202a74d716f963a2525494" - }, - { - "nr": 104666, - "hash": "fd7a7a30a2ce1abbd20f80fa36c8728ecbd75652" - }, - { - "nr": 97350, - "hash": "636cb33ee3a9568cf48b526f633ed07f1e930ba8" - }, - { - "nr": 103172, - "hash": "4726022cdb7ee6bc66983e375f65d65c214e9263" - }, - { - "nr": 104667, - "hash": "d06b2b153e68f1a9311e5e819c862656bf9a2bc6" - }, - { - "nr": 105214, - "hash": "678287c4c781dc119cfa59a93932af329a4f12bc" - }, - { - "nr": 104167, - "hash": "9a0f866d8210d103d7a89664ee953ad6f6c00cf5" - }, - { - "nr": 104466, - "hash": "7ea790849a00e66dc71a290c415211b7a6efbbee" - }, - { - "nr": 104142, - "hash": "f941b7b76be5c7be0c5517db22569f7fb39b98d4" - }, - { - "nr": 101370, - "hash": "26efbdd836652fee30ab09f11b24a0c81ccada49" - }, - { - "nr": 103439, - "hash": "c1aed3f71371779b5fe017e01cef34f5895e9774" - }, - { - "nr": 104696, - "hash": "f22800484bad77ddb65e11885118a9875b5401ea" - }, - { - "nr": 103692, - "hash": "ed3b5fb83024f78853459791662cb608b84623c5" - }, - { - "nr": 103724, - "hash": "99cee06dd315f0bbb489863a810cd2a3833f5353" - }, - { - "nr": 104009, - "hash": "9b425ba8f9b2973ae46e12302420359b0c48968e" - }, - { - "nr": 104908, - "hash": "d3c66001890d18908c653e12d03e2f53e365bca2" - }, - { - "nr": 104503, - "hash": "e29cbab08a60f34140eeffa3f896f55704c86f51" - }, - { - "nr": 104253, - "hash": "dbdeb4339eb552b3fc4133d97a4da408527eac8f" - }, - { - "nr": 104033, - "hash": "c53b85d88df514993a2afe1e25e70cbb36cbaedf" - }, - { - "nr": 104928, - "hash": "ce7e382618350521044659e6edc2c6e7e50f8450" - }, - { - "nr": 104011, - "hash": "04e845e2361e02d362e1b767980e99a73dbf09c0" - }, - { - "nr": 104817, - "hash": "8191b0b4ddbc9c9f8056303d4199f78756853288" - }, - { - "nr": 101081, - "hash": "9cac7d22ec19d2c81e069554a8ced43fe4e5c6d2" - }, - { - "nr": 102886, - "hash": "58f7a556738583a0f7532b5bd6d009a4e4fd9325" - }, - { - "nr": 104293, - "hash": "12fcad8d4e26da3875fa1e7cbcb266296269c96e" - }, - { - "nr": 104382, - "hash": "3b3f7a9ab74a2eea98bfb66991b01be1886e78fb" - }, - { - "nr": 104426, - "hash": "b96904ce5b43577d8db9ecdcdfafa520c4ecdbc0" - }, - { - "nr": 104199, - "hash": "8915890cc44a540e7fd79801baf8a48714568939" - }, - { - "nr": 103875, - "hash": "db6b0c76fcf88fdde39900ef6eb1f38991b41af0" - }, - { - "nr": 104986, - "hash": "535e60a5ae177356fbe805f2f469e4deddaff480" - }, - { - "nr": 105069, - "hash": "9da8971b6e219dfe878cb5c9237d67789700bef6" - }, - { - "nr": 105035, - "hash": "8a56b469bd75874f0ed5e7975d4d2ab74fcc4332" - }, - { - "nr": 104577, - "hash": "6e16516187ea2db20fd4e30f162df19914b392aa" - }, - { - "nr": 103515, - "hash": "b654d92bca5a5c38bd13ab22b5e6472531229e37" - }, - { - "nr": 104699, - "hash": "5dc32a7c9dd3cd9cadb21a0443b0fcb007322523" - }, - { - "nr": 103918, - "hash": "e0ba9d238e59cf634c526802c8385a0c75f6e375" - }, - { - "nr": 104103, - "hash": "a08137564166265938f8b53531e140cc8ec345ec" - }, - { - "nr": 103162, - "hash": "f36477029d64a2d2e0723b0c761d63aa4e76ab05" - }, - { - "nr": 104065, - "hash": "88902ba977cafa9e0aa6009e8f3b51287c5daad1" - }, - { - "nr": 104923, - "hash": "6ce9d9aaf645ad4f0e5751778d5cb8db993f001d" - }, - { - "nr": 104741, - "hash": "b211e399a7af08f2311d0d17769f660dfc4d3a8c" - }, - { - "nr": 103137, - "hash": "0e1fb0accb894205ab6d5210059d7d8217dcfcf4" - }, - { - "nr": 104248, - "hash": "2202fae8beb37c15b900c0e0b7db095b0154a91f" - }, - { - "nr": 105034, - "hash": "10144905d20987748987c3c3ffa57db1b9e8d6d1" - }, - { - "nr": 104482, - "hash": "fa02b5b98829e9a17d4d74db3e1b2c23d540a3d8" - }, - { - "nr": 96684, - "hash": "7ca850b1f55afa245e1b9aafeb279718c242766f" - }, - { - "nr": 100720, - "hash": "32ad7e26ae67f727777479a27d8937fb49013d53" - }, - { - "nr": 103801, - "hash": "e8af76c170997bf47cd1f4808bd5cf95a035e36f" - }, - { - "nr": 103831, - "hash": "79bbb5391dfffd7853aa19b4664ad18a6fdd1868" - }, - { - "nr": 104624, - "hash": "fc9541b080bd8a96a8e7fa1711cd4c94b128b3e7" - }, - { - "nr": 104983, - "hash": "f0b391276e20bead757a2e83a22de71748d5480c" - }, - { - "nr": 103178, - "hash": "05cacc4eb9f2476cca5ee3f5082bfe3a51365751" - }, - { - "nr": 101257, - "hash": "279f26a8cf85217de7ab3af4c14a82e8d1d5952a" - }, - { - "nr": 102507, - "hash": "5b042ccc9e9b59c28bf4abf554c58cf734463c40" - }, - { - "nr": 104571, - "hash": "779c438d6f4e8a764f435f515079319914501e10" - }, - { - "nr": 104523, - "hash": "1de6a9cbaba40de976229f3a41282d3c251d139a" - }, - { - "nr": 104969, - "hash": "d61ebc58b40c3aaad6d2640dd2fee3a3f450ce54" - }, - { - "nr": 104384, - "hash": "b14dcf63891796bce5dce282e8949039659c1d71" - }, - { - "nr": 103894, - "hash": "aab1378d2e1fc5f0f29548e328254b4238dd5cf2" - }, - { - "nr": 103823, - "hash": "167dee04458b405a6b052ffba9b6d9900695e520" - }, - { - "nr": 103843, - "hash": "f08361894ca476bee677affc2cea486567777865" - }, - { - "nr": 104944, - "hash": "2d6085f0ad184ef9925bf55c5c155d38cda7a05f" - }, - { - "nr": 104572, - "hash": "e5d2a723096194c26727f317cd641145e13f9547" - }, - { - "nr": 104182, - "hash": "1ec7bd0385a124434c27606dc5e2db331f76d3da" - }, - { - "nr": 104102, - "hash": "db97405f56ef528d3b090bb55bc4fa94c4106214" - }, - { - "nr": 104368, - "hash": "21d011f7679c2e7a43f74f36517ab98f1bf6e48c" - }, - { - "nr": 104116, - "hash": "08775e2aaf8ed06caf4af88afd68de2006a0f51f" - }, - { - "nr": 103793, - "hash": "902a8efe7a36d7626db4d78c2d5bfd7ab53e7d2b" - }, - { - "nr": 104483, - "hash": "dc5c5acc7c9b27f95005fd1653d2b65b37224a7e" - }, - { - "nr": 103174, - "hash": "7f99550cce8a22b9c671fe3cfe8fb661501b8195" - }, - { - "nr": 104847, - "hash": "4c351187f6b715b9921f9b952619f278cf91354e" - }, - { - "nr": 104601, - "hash": "c7bbd48bfba725bcec6ceb272557519c86c4a7b8" - }, - { - "nr": 105158, - "hash": "e28b935542eb27c04400c211651056b0136c2d7a" - }, - { - "nr": 100125, - "hash": "49f9a9453feabcaee2e5d2741a80894e718abaf7" - }, - { - "nr": 103796, - "hash": "4246660ceb1173a1f03b9aa12d55c289b1b69c68" - }, - { - "nr": 101789, - "hash": "416a41073c969ef3871485b7a36a798323930141" - }, - { - "nr": 103027, - "hash": "c57c71c161cf42468b4c7938347ae3979423d0ac" - }, - { - "nr": 104590, - "hash": "f2a426198477f6052299aba935a906dd7bbaef58" - }, - { - "nr": 104604, - "hash": "89f678141b15506f591ba95ffe9ad9d8ccd81bec" - }, - { - "nr": 92989, - "hash": "6cd647018816d4c19491d88228f3fa5c168072f6" - }, - { - "nr": 104119, - "hash": "575298ee325526a15e958e462b63910fa2878044" - }, - { - "nr": 103958, - "hash": "80ccc15d5f1770b2bda5316ba26cacd478ab8243" - }, - { - "nr": 103794, - "hash": "9228a312021a00cc608a6af221e6d98fbe7a4e80" - }, - { - "nr": 104670, - "hash": "e2871d51c15496bc3dfe1d4550afee6e095853b3" - }, - { - "nr": 104796, - "hash": "4e806c94de269d3d102e98d585f7c5d861d56e77" - }, - { - "nr": 104705, - "hash": "1859f7bb34e2629b04830e0f685b7fd3f539d3c8" - }, - { - "nr": 104134, - "hash": "7c5a1ecd06a37d6ea25d9462af9de3d6286884f6" - }, - { - "nr": 104664, - "hash": "2f466bbd326e5f56a32c7f2358c1b2651b04689c" - }, - { - "nr": 103685, - "hash": "3aae0804b3a310f713677e803887da2b7f9402cd" - }, - { - "nr": 103917, - "hash": "7ad31583d6288cc10fac4a5ad05fde83c1261196" - }, - { - "nr": 104438, - "hash": "0bfae5bebd22b3260e6b38ebe41e04b8fbb123dc" - }, - { - "nr": 104185, - "hash": "52bb24c88aa8504f2b32b4d1e86de63bb975aebf" - }, - { - "nr": 104168, - "hash": "8d72244aa192747e20651e817856804a4b49e543" - }, - { - "nr": 103231, - "hash": "70f0a2783d86c4d2cd479448178db442eaa3aa76" - }, - { - "nr": 99273, - "hash": "a078348b40632564176c5879e788068f68f4a1f3" - }, - { - "nr": 104528, - "hash": "773c1ebeca948281a06157e5afda536bdf899d84" - }, - { - "nr": 103758, - "hash": "7ce2e381d3e0aef9fe1ea02c1e1acfa774b7848d" - }, - { - "nr": 103538, - "hash": "e57f75aa44e28569e9599c5b867e08e2d05a768d" - }, - { - "nr": 104942, - "hash": "7ec09526be8fcc5cde8db9b7c3185a3ac57bcd9e" - }, - { - "nr": 96345, - "hash": "73664a03fc363d684cc236c7c83f546ee12b3b3a" - }, - { - "nr": 103751, - "hash": "ada129d825fb0b487cf47c7bc5b59379033b069d" - }, - { - "nr": 103941, - "hash": "cae02db474f9c4cd67f202cb16b18841eaaec363" - }, - { - "nr": 103997, - "hash": "0a1c6173c606654c5b7480c74bc7736585b89b73" - }, - { - "nr": 103852, - "hash": "dc50498289e8a104db846434649bc2afc506ad46" - }, - { - "nr": 104301, - "hash": "d762e4e2c69c32ec7ac69324db3fdf732c570e25" - }, - { - "nr": 104518, - "hash": "f59ab9161a22a0cfd0d6354d0fd583b12dfb3403" - }, - { - "nr": 105046, - "hash": "648363316810897a6885af3127071f8b3cf86ade" - }, - { - "nr": 102242, - "hash": "992ce6429cf901b6a0bc4da9313a6947303d7636" - }, - { - "nr": 104931, - "hash": "a8c4054ec412d1230938e26cc38c7b2df5984321" - }, - { - "nr": 104853, - "hash": "0554ecbfbedeca911ba7b249d2707e7034f723f9" - } - ] +{ + "mail": "parulsahoo5jan@gmail.com", + "name": "parul5sahoo", + "date": 1633406937, + "prs": [ + { + "nr": 104232, + "hash": "81222087861a8d28a80388beb4b0e5e9945fa5f7" + }, + { + "nr": 104389, + "hash": "181fe22a4aaf62e9790f5a7ed82f6c108c311b1b" + }, + { + "nr": 103654, + "hash": "303db7ce34d231559a8a2d761696f92606a60b61" + }, + { + "nr": 104157, + "hash": "a5a056524e8c2bd5e2c12458f196cdf3a40ea865" + }, + { + "nr": 104854, + "hash": "b1d5d75ac53d3ab710b8f7e70141a9b65e649b3d" + }, + { + "nr": 104904, + "hash": "586e775eaebc82be233f264a9abd5e3a64882b6b" + }, + { + "nr": 104970, + "hash": "f531343f717ab322fbb771c6a55261a4c855d39a" + }, + { + "nr": 104593, + "hash": "1b6a80401afad9b0d0d6dff5d9522fe0624beb04" + }, + { + "nr": 104605, + "hash": "b70357afc5511f53a3d5d323e7f14d9b1ffaad6c" + }, + { + "nr": 104160, + "hash": "f1ecbb4ded51af5764ae4ca1835111c5a2dc8ef9" + }, + { + "nr": 103799, + "hash": "e59b7f4c82fbe9809c85c16e975458c8e7f4b7f4" + }, + { + "nr": 102981, + "hash": "d28f40c2520cea1364dd5927cb9c8da63c857e4a" + }, + { + "nr": 105196, + "hash": "c2873b7f32088f5201c75a4159f0acb6ebc31dd7" + }, + { + "nr": 104691, + "hash": "098aa73d3bacecdcec29a61966ed992b8cb84a81" + }, + { + "nr": 104045, + "hash": "e0d9ddc039cf291335ea6cbaf343946903b39c48" + }, + { + "nr": 101928, + "hash": "04b682c1182a4d21e06159459e491343546ecde1" + }, + { + "nr": 103813, + "hash": "0e8b6fddb983e78409c4923dcb53d922a20facab" + }, + { + "nr": 103564, + "hash": "ce02436b58b2ad629721d6c96072f89ace71574f" + }, + { + "nr": 92853, + "hash": "055e2a5e881a8b0c51d47564d1398d3dac01d8a3" + }, + { + "nr": 104163, + "hash": "ac341234cf598f33dee4a834673ee2ce3084a66c" + }, + { + "nr": 104399, + "hash": "7d289bba1663685189651d6dae20d2a07aa33cc2" + }, + { + "nr": 104161, + "hash": "e19ae8be54900992afce70b839423f463a2ec0df" + }, + { + "nr": 104711, + "hash": "38a4fe6fb91fda71e76ec3f81860fb0560fb3863" + }, + { + "nr": 98913, + "hash": "210cb29e0d5e26b8752469c2688addaff50f4c4e" + }, + { + "nr": 101646, + "hash": "df050b41114f816afddedffff3e692814124441a" + }, + { + "nr": 104430, + "hash": "aa464c17a9d3476c5584dfcc3c9883696d6219da" + }, + { + "nr": 104080, + "hash": "3cea80f89d9ea8583b8d6859124c4e7ae6a35571" + }, + { + "nr": 101781, + "hash": "5b2dae14f7c9d6838a7410051ae3ec38ec466e8e" + }, + { + "nr": 104742, + "hash": "df6a622a0f9841e77fa4b018126a35fc9887228a" + }, + { + "nr": 104756, + "hash": "fb3c1b5f0a545babab202a74d716f963a2525494" + }, + { + "nr": 104666, + "hash": "fd7a7a30a2ce1abbd20f80fa36c8728ecbd75652" + }, + { + "nr": 97350, + "hash": "636cb33ee3a9568cf48b526f633ed07f1e930ba8" + }, + { + "nr": 103172, + "hash": "4726022cdb7ee6bc66983e375f65d65c214e9263" + }, + { + "nr": 104667, + "hash": "d06b2b153e68f1a9311e5e819c862656bf9a2bc6" + }, + { + "nr": 105214, + "hash": "678287c4c781dc119cfa59a93932af329a4f12bc" + }, + { + "nr": 104167, + "hash": "9a0f866d8210d103d7a89664ee953ad6f6c00cf5" + }, + { + "nr": 104466, + "hash": "7ea790849a00e66dc71a290c415211b7a6efbbee" + }, + { + "nr": 104142, + "hash": "f941b7b76be5c7be0c5517db22569f7fb39b98d4" + }, + { + "nr": 101370, + "hash": "26efbdd836652fee30ab09f11b24a0c81ccada49" + }, + { + "nr": 103439, + "hash": "c1aed3f71371779b5fe017e01cef34f5895e9774" + }, + { + "nr": 104696, + "hash": "f22800484bad77ddb65e11885118a9875b5401ea" + }, + { + "nr": 103692, + "hash": "ed3b5fb83024f78853459791662cb608b84623c5" + }, + { + "nr": 103724, + "hash": "99cee06dd315f0bbb489863a810cd2a3833f5353" + }, + { + "nr": 104009, + "hash": "9b425ba8f9b2973ae46e12302420359b0c48968e" + }, + { + "nr": 104908, + "hash": "d3c66001890d18908c653e12d03e2f53e365bca2" + }, + { + "nr": 104503, + "hash": "e29cbab08a60f34140eeffa3f896f55704c86f51" + }, + { + "nr": 104253, + "hash": "dbdeb4339eb552b3fc4133d97a4da408527eac8f" + }, + { + "nr": 104033, + "hash": "c53b85d88df514993a2afe1e25e70cbb36cbaedf" + }, + { + "nr": 104928, + "hash": "ce7e382618350521044659e6edc2c6e7e50f8450" + }, + { + "nr": 104011, + "hash": "04e845e2361e02d362e1b767980e99a73dbf09c0" + }, + { + "nr": 104817, + "hash": "8191b0b4ddbc9c9f8056303d4199f78756853288" + }, + { + "nr": 101081, + "hash": "9cac7d22ec19d2c81e069554a8ced43fe4e5c6d2" + }, + { + "nr": 102886, + "hash": "58f7a556738583a0f7532b5bd6d009a4e4fd9325" + }, + { + "nr": 104293, + "hash": "12fcad8d4e26da3875fa1e7cbcb266296269c96e" + }, + { + "nr": 104382, + "hash": "3b3f7a9ab74a2eea98bfb66991b01be1886e78fb" + }, + { + "nr": 104426, + "hash": "b96904ce5b43577d8db9ecdcdfafa520c4ecdbc0" + }, + { + "nr": 104199, + "hash": "8915890cc44a540e7fd79801baf8a48714568939" + }, + { + "nr": 103875, + "hash": "db6b0c76fcf88fdde39900ef6eb1f38991b41af0" + }, + { + "nr": 104986, + "hash": "535e60a5ae177356fbe805f2f469e4deddaff480" + }, + { + "nr": 105069, + "hash": "9da8971b6e219dfe878cb5c9237d67789700bef6" + }, + { + "nr": 105035, + "hash": "8a56b469bd75874f0ed5e7975d4d2ab74fcc4332" + }, + { + "nr": 104577, + "hash": "6e16516187ea2db20fd4e30f162df19914b392aa" + }, + { + "nr": 103515, + "hash": "b654d92bca5a5c38bd13ab22b5e6472531229e37" + }, + { + "nr": 104699, + "hash": "5dc32a7c9dd3cd9cadb21a0443b0fcb007322523" + }, + { + "nr": 103918, + "hash": "e0ba9d238e59cf634c526802c8385a0c75f6e375" + }, + { + "nr": 104103, + "hash": "a08137564166265938f8b53531e140cc8ec345ec" + }, + { + "nr": 103162, + "hash": "f36477029d64a2d2e0723b0c761d63aa4e76ab05" + }, + { + "nr": 104065, + "hash": "88902ba977cafa9e0aa6009e8f3b51287c5daad1" + }, + { + "nr": 104923, + "hash": "6ce9d9aaf645ad4f0e5751778d5cb8db993f001d" + }, + { + "nr": 104741, + "hash": "b211e399a7af08f2311d0d17769f660dfc4d3a8c" + }, + { + "nr": 103137, + "hash": "0e1fb0accb894205ab6d5210059d7d8217dcfcf4" + }, + { + "nr": 104248, + "hash": "2202fae8beb37c15b900c0e0b7db095b0154a91f" + }, + { + "nr": 105034, + "hash": "10144905d20987748987c3c3ffa57db1b9e8d6d1" + }, + { + "nr": 104482, + "hash": "fa02b5b98829e9a17d4d74db3e1b2c23d540a3d8" + }, + { + "nr": 96684, + "hash": "7ca850b1f55afa245e1b9aafeb279718c242766f" + }, + { + "nr": 100720, + "hash": "32ad7e26ae67f727777479a27d8937fb49013d53" + }, + { + "nr": 103801, + "hash": "e8af76c170997bf47cd1f4808bd5cf95a035e36f" + }, + { + "nr": 103831, + "hash": "79bbb5391dfffd7853aa19b4664ad18a6fdd1868" + }, + { + "nr": 104624, + "hash": "fc9541b080bd8a96a8e7fa1711cd4c94b128b3e7" + }, + { + "nr": 104983, + "hash": "f0b391276e20bead757a2e83a22de71748d5480c" + }, + { + "nr": 103178, + "hash": "05cacc4eb9f2476cca5ee3f5082bfe3a51365751" + }, + { + "nr": 101257, + "hash": "279f26a8cf85217de7ab3af4c14a82e8d1d5952a" + }, + { + "nr": 102507, + "hash": "5b042ccc9e9b59c28bf4abf554c58cf734463c40" + }, + { + "nr": 104571, + "hash": "779c438d6f4e8a764f435f515079319914501e10" + }, + { + "nr": 104523, + "hash": "1de6a9cbaba40de976229f3a41282d3c251d139a" + }, + { + "nr": 104969, + "hash": "d61ebc58b40c3aaad6d2640dd2fee3a3f450ce54" + }, + { + "nr": 104384, + "hash": "b14dcf63891796bce5dce282e8949039659c1d71" + }, + { + "nr": 103894, + "hash": "aab1378d2e1fc5f0f29548e328254b4238dd5cf2" + }, + { + "nr": 103823, + "hash": "167dee04458b405a6b052ffba9b6d9900695e520" + }, + { + "nr": 103843, + "hash": "f08361894ca476bee677affc2cea486567777865" + }, + { + "nr": 104944, + "hash": "2d6085f0ad184ef9925bf55c5c155d38cda7a05f" + }, + { + "nr": 104572, + "hash": "e5d2a723096194c26727f317cd641145e13f9547" + }, + { + "nr": 104182, + "hash": "1ec7bd0385a124434c27606dc5e2db331f76d3da" + }, + { + "nr": 104102, + "hash": "db97405f56ef528d3b090bb55bc4fa94c4106214" + }, + { + "nr": 104368, + "hash": "21d011f7679c2e7a43f74f36517ab98f1bf6e48c" + }, + { + "nr": 104116, + "hash": "08775e2aaf8ed06caf4af88afd68de2006a0f51f" + }, + { + "nr": 103793, + "hash": "902a8efe7a36d7626db4d78c2d5bfd7ab53e7d2b" + }, + { + "nr": 104483, + "hash": "dc5c5acc7c9b27f95005fd1653d2b65b37224a7e" + }, + { + "nr": 103174, + "hash": "7f99550cce8a22b9c671fe3cfe8fb661501b8195" + }, + { + "nr": 104847, + "hash": "4c351187f6b715b9921f9b952619f278cf91354e" + }, + { + "nr": 104601, + "hash": "c7bbd48bfba725bcec6ceb272557519c86c4a7b8" + }, + { + "nr": 105158, + "hash": "e28b935542eb27c04400c211651056b0136c2d7a" + }, + { + "nr": 100125, + "hash": "49f9a9453feabcaee2e5d2741a80894e718abaf7" + }, + { + "nr": 103796, + "hash": "4246660ceb1173a1f03b9aa12d55c289b1b69c68" + }, + { + "nr": 101789, + "hash": "416a41073c969ef3871485b7a36a798323930141" + }, + { + "nr": 103027, + "hash": "c57c71c161cf42468b4c7938347ae3979423d0ac" + }, + { + "nr": 104590, + "hash": "f2a426198477f6052299aba935a906dd7bbaef58" + }, + { + "nr": 104604, + "hash": "89f678141b15506f591ba95ffe9ad9d8ccd81bec" + }, + { + "nr": 92989, + "hash": "6cd647018816d4c19491d88228f3fa5c168072f6" + }, + { + "nr": 104119, + "hash": "575298ee325526a15e958e462b63910fa2878044" + }, + { + "nr": 103958, + "hash": "80ccc15d5f1770b2bda5316ba26cacd478ab8243" + }, + { + "nr": 103794, + "hash": "9228a312021a00cc608a6af221e6d98fbe7a4e80" + }, + { + "nr": 104670, + "hash": "e2871d51c15496bc3dfe1d4550afee6e095853b3" + }, + { + "nr": 104796, + "hash": "4e806c94de269d3d102e98d585f7c5d861d56e77" + }, + { + "nr": 104705, + "hash": "1859f7bb34e2629b04830e0f685b7fd3f539d3c8" + }, + { + "nr": 104134, + "hash": "7c5a1ecd06a37d6ea25d9462af9de3d6286884f6" + }, + { + "nr": 104664, + "hash": "2f466bbd326e5f56a32c7f2358c1b2651b04689c" + }, + { + "nr": 103685, + "hash": "3aae0804b3a310f713677e803887da2b7f9402cd" + }, + { + "nr": 103917, + "hash": "7ad31583d6288cc10fac4a5ad05fde83c1261196" + }, + { + "nr": 104438, + "hash": "0bfae5bebd22b3260e6b38ebe41e04b8fbb123dc" + }, + { + "nr": 104185, + "hash": "52bb24c88aa8504f2b32b4d1e86de63bb975aebf" + }, + { + "nr": 104168, + "hash": "8d72244aa192747e20651e817856804a4b49e543" + }, + { + "nr": 103231, + "hash": "70f0a2783d86c4d2cd479448178db442eaa3aa76" + }, + { + "nr": 99273, + "hash": "a078348b40632564176c5879e788068f68f4a1f3" + }, + { + "nr": 104528, + "hash": "773c1ebeca948281a06157e5afda536bdf899d84" + }, + { + "nr": 103758, + "hash": "7ce2e381d3e0aef9fe1ea02c1e1acfa774b7848d" + }, + { + "nr": 103538, + "hash": "e57f75aa44e28569e9599c5b867e08e2d05a768d" + }, + { + "nr": 104942, + "hash": "7ec09526be8fcc5cde8db9b7c3185a3ac57bcd9e" + }, + { + "nr": 96345, + "hash": "73664a03fc363d684cc236c7c83f546ee12b3b3a" + }, + { + "nr": 103751, + "hash": "ada129d825fb0b487cf47c7bc5b59379033b069d" + }, + { + "nr": 103941, + "hash": "cae02db474f9c4cd67f202cb16b18841eaaec363" + }, + { + "nr": 103997, + "hash": "0a1c6173c606654c5b7480c74bc7736585b89b73" + }, + { + "nr": 103852, + "hash": "dc50498289e8a104db846434649bc2afc506ad46" + }, + { + "nr": 104301, + "hash": "d762e4e2c69c32ec7ac69324db3fdf732c570e25" + }, + { + "nr": 104518, + "hash": "f59ab9161a22a0cfd0d6354d0fd583b12dfb3403" + }, + { + "nr": 105046, + "hash": "648363316810897a6885af3127071f8b3cf86ade" + }, + { + "nr": 102242, + "hash": "992ce6429cf901b6a0bc4da9313a6947303d7636" + }, + { + "nr": 104931, + "hash": "a8c4054ec412d1230938e26cc38c7b2df5984321" + }, + { + "nr": 104853, + "hash": "0554ecbfbedeca911ba7b249d2707e7034f723f9" + } + ] } \ No newline at end of file diff --git a/releases/release-1.23/release-notes/sessions/maps-1635354988.json b/releases/release-1.23/release-notes/sessions/maps-1635354988.json index 43ac9b37d47..160db70f458 100644 --- a/releases/release-1.23/release-notes/sessions/maps-1635354988.json +++ b/releases/release-1.23/release-notes/sessions/maps-1635354988.json @@ -1,11 +1,11 @@ -{ - "mail": "cicih@google.com", - "name": "cici37", - "date": 1635354988, - "prs": [ - { - "nr": 104157, - "hash": "ec61f5263f1cbbfbf946846def0dedaa80855d57" - } - ] +{ + "mail": "cicih@google.com", + "name": "cici37", + "date": 1635354988, + "prs": [ + { + "nr": 104157, + "hash": "ec61f5263f1cbbfbf946846def0dedaa80855d57" + } + ] } \ No newline at end of file diff --git a/releases/release-1.23/release-notes/sessions/maps-1636752000.json b/releases/release-1.23/release-notes/sessions/maps-1636752000.json index 5e949c1b094..7c11e761e11 100644 --- a/releases/release-1.23/release-notes/sessions/maps-1636752000.json +++ b/releases/release-1.23/release-notes/sessions/maps-1636752000.json @@ -1,331 +1,331 @@ -{ - "mail": "ldwyerds@gmail.com", - "name": "AuraSinis", - "date": 1636752000, - "prs": [ - { - "nr": 105666, - "hash": "eafb4308d35cbbc75f18e23ed750c94cba1f7a4c" - }, - { - "nr": 105484, - "hash": "89c5fc65f7cc17be7bbb1391d253df6ecd1fcbe4" - }, - { - "nr": 104693, - "hash": "1e400e86bc3012617cb6a29ede96b4ee9c3285bb" - }, - { - "nr": 105676, - "hash": "842589d25c91ed7db7d0c8194078491f6916e194" - }, - { - "nr": 104932, - "hash": "3acf23adc6c0b0a7b84737cff2352b1b2f814ef1" - }, - { - "nr": 105245, - "hash": "b75de4dd104aa3c9bf156a5178f1890fb6a884dc" - }, - { - "nr": 105711, - "hash": "9bbe53069ff511ed7696a398d73f897f87768ecd" - }, - { - "nr": 105479, - "hash": "e88a767e341f4855d33a13a809f6a02689ec204a" - }, - { - "nr": 105474, - "hash": "b9b5451a621385829347a4c22872d9f494b44d4d" - }, - { - "nr": 105777, - "hash": "706bd12d21a698e46274cf774c7918b171833a9d" - }, - { - "nr": 105185, - "hash": "4ee7169fbefdcb54ab7983a7bab1252eb20e91d3" - }, - { - "nr": 105156, - "hash": "d32f489dffa49fb7b35813855dd84243df02a1b5" - }, - { - "nr": 105712, - "hash": "c3fe8861ada049f85512b361ad1c7514834c8521" - }, - { - "nr": 105003, - "hash": "8f35965d8c3dbb1ceb1cc0d2f02f752212606bd9" - }, - { - "nr": 105511, - "hash": "4eb3cde757a7f808017269f56ff219ad4ed37ed8" - }, - { - "nr": 104744, - "hash": "337ece5c29797edcacca980117bf462d5004207b" - }, - { - "nr": 105462, - "hash": "4876b60152155a70ced10f01b76db49a3d093f81" - }, - { - "nr": 105213, - "hash": "0c46e70d73a9a6213ea03760ac8e173ba8d4ddf8" - }, - { - "nr": 104873, - "hash": "314606e6834134fc864b8050a52c9b6edbe9b5e0" - }, - { - "nr": 105466, - "hash": "732daf1bdd9832743805d1fdb9a348ef887fd118" - }, - { - "nr": 100482, - "hash": "057ecf054c49c03023794a612acac543fa10b767" - }, - { - "nr": 105267, - "hash": "414edbfcc4fcad0702669e96276f0395d97613db" - }, - { - "nr": 105855, - "hash": "08a361359f1926e361d62bcaec0c2426ce526029" - }, - { - "nr": 105687, - "hash": "fbef315eee3570d53a92198947063eb5f2434e39" - }, - { - "nr": 105327, - "hash": "08ed34b62fd38201ed3355456c353f4d3bce96c5" - }, - { - "nr": 99557, - "hash": "e16d6b241a75c297c5b6fce64a4d7222c0ab65ae" - }, - { - "nr": 102945, - "hash": "74a28017dcd3d37c22cf497bf430f5fecadd921b" - }, - { - "nr": 104915, - "hash": "90fce05d8c324400267a52152368ce2eb1b39f42" - }, - { - "nr": 104748, - "hash": "3786a53f1f0e04a94f817f1eb71fa078c804efc4" - }, - { - "nr": 105219, - "hash": "55429ef16d40a1e26374cb5c5cb500293c41d144" - }, - { - "nr": 105682, - "hash": "d91fa413549e32bc1e93c6b78b8d87b53e74e432" - }, - { - "nr": 105215, - "hash": "e629ea8ef9fbf15eb3d09fbe2f8ec21c7e13e57b" - }, - { - "nr": 105999, - "hash": "0c23739d84f92a9905dcc0bf8a8d5478afcf47fd" - }, - { - "nr": 104891, - "hash": "d2e3da2755d521682899d72ce3ceb1bd17e96171" - }, - { - "nr": 105606, - "hash": "13a3ac235e20d036ef3c65f54f1be50b2b59e4fd" - }, - { - "nr": 105197, - "hash": "7b973ffc229bf378f7a54316ac06d6f6923f07a7" - }, - { - "nr": 105851, - "hash": "053ad489ce18ebee2f12956f6d89dea3ef432f6e" - }, - { - "nr": 97415, - "hash": "7af53408e66d8cf19cade95e0ad3230b478fc008" - }, - { - "nr": 105913, - "hash": "a23993ad866b4db6b6fe8c9a2614f4169938c0f0" - }, - { - "nr": 105609, - "hash": "202f1dc3725258e9581e6119565c72a75f480f19" - }, - { - "nr": 105896, - "hash": "e0e519f03d2fa04bfa77df49b05ee3d8d88ac8ff" - }, - { - "nr": 105424, - "hash": "c20c498f878b0605c38e12e6421cdbe765eb6ea4" - }, - { - "nr": 104782, - "hash": "5cc8e3345416cd71c393c08fffdcebcc07d3f36b" - }, - { - "nr": 105211, - "hash": "04391b235ddd2ac055b02c85d62a66867d1db764" - }, - { - "nr": 95128, - "hash": "cf91e7eea682810ef53f3390cf2fee370bf6b376" - }, - { - "nr": 105188, - "hash": "f5e9fe4b1e85319dbc6f9168e0dd3825e2889ac9" - }, - { - "nr": 105857, - "hash": "774865d6f006adaab2eeaf5b4fe365a56b76cf31" - }, - { - "nr": 105569, - "hash": "223318a5997d12c93752b7f84ced4308f0a45b44" - }, - { - "nr": 105107, - "hash": "845bf5a0b50f970d094b4c58317e566fc6dd9c70" - }, - { - "nr": 105734, - "hash": "4f4ab567642bcad5a80f909fb9d291a233dd2209" - }, - { - "nr": 92433, - "hash": "6e95d328443c8c662e2735d8dbaf157eb284927a" - }, - { - "nr": 105631, - "hash": "dea2997bf8ea0925191dba7f2e2e5168d66b8189" - }, - { - "nr": 105405, - "hash": "f7ca9dac7d1d06a60046a16ff6bcfa09eeeab022" - }, - { - "nr": 105845, - "hash": "380c9375c4cfe137200ae428852c753e009d919a" - }, - { - "nr": 105222, - "hash": "741aa101d8b0037a5922e2b648e89c842d73b1f1" - }, - { - "nr": 104551, - "hash": "ea8a121062296e284ccef616fd0879e0f9672587" - }, - { - "nr": 105012, - "hash": "1ca519e2b5b5ba48019ab46b4338493fdc26e80b" - }, - { - "nr": 105495, - "hash": "66b4bbac4172032f0707cbc588fb436705196c7f" - }, - { - "nr": 105839, - "hash": "cdafb61385ccab173ce562631f1118520378e9c0" - }, - { - "nr": 105042, - "hash": "f7db6bd64618427414bc085f23bc5d0ccfaf6edf" - }, - { - "nr": 105649, - "hash": "6d791253842ac30e71ccf173f3e86d86804e5be5" - }, - { - "nr": 104894, - "hash": "f7c60b2d546576cc1a225d7c617e45cf52200e1c" - }, - { - "nr": 105445, - "hash": "6963574ddbb4238d6dd4e9cfc29b8cfb642a5d20" - }, - { - "nr": 105352, - "hash": "f021484c8d37ca027cb796999c2965801d25ab6b" - }, - { - "nr": 105915, - "hash": "4949bb7e1b77e7a6d2b017b6bbf71a84d8f71f05" - }, - { - "nr": 104251, - "hash": "003f04db450de1e4b28fc96ba255139975a93e55" - }, - { - "nr": 105888, - "hash": "4266256be5d2ac4fa74eddd67efc1751036651a0" - }, - { - "nr": 105490, - "hash": "36958419bed69ee591113908307cd663c2210d2c" - }, - { - "nr": 105898, - "hash": "e14fafdd5466e10b6399371679c12e1656a630e3" - }, - { - "nr": 105931, - "hash": "f0cd9c02275fab0e31b9574c63bf2f6fb6c18eb4" - }, - { - "nr": 105253, - "hash": "ec89a2c1db4ae2ae9469086a916c3c8c76ecaa99" - }, - { - "nr": 105980, - "hash": "bc463e812b50b10665d16250692568a98e40c87b" - }, - { - "nr": 105908, - "hash": "4d7418bf88326a42d4b8b4fb45dddb235fca87eb" - }, - { - "nr": 105396, - "hash": "2474a946e0df8ffeac9b1857d1c4cb6f53b39017" - }, - { - "nr": 102015, - "hash": "9bb564c78672f11534dff2bdb72302ea20e92a8b" - }, - { - "nr": 105673, - "hash": "e27efaf5f96eaafa7a34bd24c31ac44c21592fbd" - }, - { - "nr": 105563, - "hash": "716f94f179b10f145dd117571bd4b40a2c060986" - }, - { - "nr": 104327, - "hash": "f067ebe105b68a2cbb659ef546fd738b1dcad641" - }, - { - "nr": 104877, - "hash": "54daf9875cef31e2a71ea526e50f48ae731b7156" - }, - { - "nr": 104631, - "hash": "6a1a31e811687e8681f0194454bd7c236fd54ba7" - }, - { - "nr": 105076, - "hash": "a954273077757ace5d8ecd10bb8878d09d214233" - } - ] +{ + "mail": "ldwyerds@gmail.com", + "name": "AuraSinis", + "date": 1636752000, + "prs": [ + { + "nr": 105666, + "hash": "eafb4308d35cbbc75f18e23ed750c94cba1f7a4c" + }, + { + "nr": 105484, + "hash": "89c5fc65f7cc17be7bbb1391d253df6ecd1fcbe4" + }, + { + "nr": 104693, + "hash": "1e400e86bc3012617cb6a29ede96b4ee9c3285bb" + }, + { + "nr": 105676, + "hash": "842589d25c91ed7db7d0c8194078491f6916e194" + }, + { + "nr": 104932, + "hash": "3acf23adc6c0b0a7b84737cff2352b1b2f814ef1" + }, + { + "nr": 105245, + "hash": "b75de4dd104aa3c9bf156a5178f1890fb6a884dc" + }, + { + "nr": 105711, + "hash": "9bbe53069ff511ed7696a398d73f897f87768ecd" + }, + { + "nr": 105479, + "hash": "e88a767e341f4855d33a13a809f6a02689ec204a" + }, + { + "nr": 105474, + "hash": "b9b5451a621385829347a4c22872d9f494b44d4d" + }, + { + "nr": 105777, + "hash": "706bd12d21a698e46274cf774c7918b171833a9d" + }, + { + "nr": 105185, + "hash": "4ee7169fbefdcb54ab7983a7bab1252eb20e91d3" + }, + { + "nr": 105156, + "hash": "d32f489dffa49fb7b35813855dd84243df02a1b5" + }, + { + "nr": 105712, + "hash": "c3fe8861ada049f85512b361ad1c7514834c8521" + }, + { + "nr": 105003, + "hash": "8f35965d8c3dbb1ceb1cc0d2f02f752212606bd9" + }, + { + "nr": 105511, + "hash": "4eb3cde757a7f808017269f56ff219ad4ed37ed8" + }, + { + "nr": 104744, + "hash": "337ece5c29797edcacca980117bf462d5004207b" + }, + { + "nr": 105462, + "hash": "4876b60152155a70ced10f01b76db49a3d093f81" + }, + { + "nr": 105213, + "hash": "0c46e70d73a9a6213ea03760ac8e173ba8d4ddf8" + }, + { + "nr": 104873, + "hash": "314606e6834134fc864b8050a52c9b6edbe9b5e0" + }, + { + "nr": 105466, + "hash": "732daf1bdd9832743805d1fdb9a348ef887fd118" + }, + { + "nr": 100482, + "hash": "057ecf054c49c03023794a612acac543fa10b767" + }, + { + "nr": 105267, + "hash": "414edbfcc4fcad0702669e96276f0395d97613db" + }, + { + "nr": 105855, + "hash": "08a361359f1926e361d62bcaec0c2426ce526029" + }, + { + "nr": 105687, + "hash": "fbef315eee3570d53a92198947063eb5f2434e39" + }, + { + "nr": 105327, + "hash": "08ed34b62fd38201ed3355456c353f4d3bce96c5" + }, + { + "nr": 99557, + "hash": "e16d6b241a75c297c5b6fce64a4d7222c0ab65ae" + }, + { + "nr": 102945, + "hash": "74a28017dcd3d37c22cf497bf430f5fecadd921b" + }, + { + "nr": 104915, + "hash": "90fce05d8c324400267a52152368ce2eb1b39f42" + }, + { + "nr": 104748, + "hash": "3786a53f1f0e04a94f817f1eb71fa078c804efc4" + }, + { + "nr": 105219, + "hash": "55429ef16d40a1e26374cb5c5cb500293c41d144" + }, + { + "nr": 105682, + "hash": "d91fa413549e32bc1e93c6b78b8d87b53e74e432" + }, + { + "nr": 105215, + "hash": "e629ea8ef9fbf15eb3d09fbe2f8ec21c7e13e57b" + }, + { + "nr": 105999, + "hash": "0c23739d84f92a9905dcc0bf8a8d5478afcf47fd" + }, + { + "nr": 104891, + "hash": "d2e3da2755d521682899d72ce3ceb1bd17e96171" + }, + { + "nr": 105606, + "hash": "13a3ac235e20d036ef3c65f54f1be50b2b59e4fd" + }, + { + "nr": 105197, + "hash": "7b973ffc229bf378f7a54316ac06d6f6923f07a7" + }, + { + "nr": 105851, + "hash": "053ad489ce18ebee2f12956f6d89dea3ef432f6e" + }, + { + "nr": 97415, + "hash": "7af53408e66d8cf19cade95e0ad3230b478fc008" + }, + { + "nr": 105913, + "hash": "a23993ad866b4db6b6fe8c9a2614f4169938c0f0" + }, + { + "nr": 105609, + "hash": "202f1dc3725258e9581e6119565c72a75f480f19" + }, + { + "nr": 105896, + "hash": "e0e519f03d2fa04bfa77df49b05ee3d8d88ac8ff" + }, + { + "nr": 105424, + "hash": "c20c498f878b0605c38e12e6421cdbe765eb6ea4" + }, + { + "nr": 104782, + "hash": "5cc8e3345416cd71c393c08fffdcebcc07d3f36b" + }, + { + "nr": 105211, + "hash": "04391b235ddd2ac055b02c85d62a66867d1db764" + }, + { + "nr": 95128, + "hash": "cf91e7eea682810ef53f3390cf2fee370bf6b376" + }, + { + "nr": 105188, + "hash": "f5e9fe4b1e85319dbc6f9168e0dd3825e2889ac9" + }, + { + "nr": 105857, + "hash": "774865d6f006adaab2eeaf5b4fe365a56b76cf31" + }, + { + "nr": 105569, + "hash": "223318a5997d12c93752b7f84ced4308f0a45b44" + }, + { + "nr": 105107, + "hash": "845bf5a0b50f970d094b4c58317e566fc6dd9c70" + }, + { + "nr": 105734, + "hash": "4f4ab567642bcad5a80f909fb9d291a233dd2209" + }, + { + "nr": 92433, + "hash": "6e95d328443c8c662e2735d8dbaf157eb284927a" + }, + { + "nr": 105631, + "hash": "dea2997bf8ea0925191dba7f2e2e5168d66b8189" + }, + { + "nr": 105405, + "hash": "f7ca9dac7d1d06a60046a16ff6bcfa09eeeab022" + }, + { + "nr": 105845, + "hash": "380c9375c4cfe137200ae428852c753e009d919a" + }, + { + "nr": 105222, + "hash": "741aa101d8b0037a5922e2b648e89c842d73b1f1" + }, + { + "nr": 104551, + "hash": "ea8a121062296e284ccef616fd0879e0f9672587" + }, + { + "nr": 105012, + "hash": "1ca519e2b5b5ba48019ab46b4338493fdc26e80b" + }, + { + "nr": 105495, + "hash": "66b4bbac4172032f0707cbc588fb436705196c7f" + }, + { + "nr": 105839, + "hash": "cdafb61385ccab173ce562631f1118520378e9c0" + }, + { + "nr": 105042, + "hash": "f7db6bd64618427414bc085f23bc5d0ccfaf6edf" + }, + { + "nr": 105649, + "hash": "6d791253842ac30e71ccf173f3e86d86804e5be5" + }, + { + "nr": 104894, + "hash": "f7c60b2d546576cc1a225d7c617e45cf52200e1c" + }, + { + "nr": 105445, + "hash": "6963574ddbb4238d6dd4e9cfc29b8cfb642a5d20" + }, + { + "nr": 105352, + "hash": "f021484c8d37ca027cb796999c2965801d25ab6b" + }, + { + "nr": 105915, + "hash": "4949bb7e1b77e7a6d2b017b6bbf71a84d8f71f05" + }, + { + "nr": 104251, + "hash": "003f04db450de1e4b28fc96ba255139975a93e55" + }, + { + "nr": 105888, + "hash": "4266256be5d2ac4fa74eddd67efc1751036651a0" + }, + { + "nr": 105490, + "hash": "36958419bed69ee591113908307cd663c2210d2c" + }, + { + "nr": 105898, + "hash": "e14fafdd5466e10b6399371679c12e1656a630e3" + }, + { + "nr": 105931, + "hash": "f0cd9c02275fab0e31b9574c63bf2f6fb6c18eb4" + }, + { + "nr": 105253, + "hash": "ec89a2c1db4ae2ae9469086a916c3c8c76ecaa99" + }, + { + "nr": 105980, + "hash": "bc463e812b50b10665d16250692568a98e40c87b" + }, + { + "nr": 105908, + "hash": "4d7418bf88326a42d4b8b4fb45dddb235fca87eb" + }, + { + "nr": 105396, + "hash": "2474a946e0df8ffeac9b1857d1c4cb6f53b39017" + }, + { + "nr": 102015, + "hash": "9bb564c78672f11534dff2bdb72302ea20e92a8b" + }, + { + "nr": 105673, + "hash": "e27efaf5f96eaafa7a34bd24c31ac44c21592fbd" + }, + { + "nr": 105563, + "hash": "716f94f179b10f145dd117571bd4b40a2c060986" + }, + { + "nr": 104327, + "hash": "f067ebe105b68a2cbb659ef546fd738b1dcad641" + }, + { + "nr": 104877, + "hash": "54daf9875cef31e2a71ea526e50f48ae731b7156" + }, + { + "nr": 104631, + "hash": "6a1a31e811687e8681f0194454bd7c236fd54ba7" + }, + { + "nr": 105076, + "hash": "a954273077757ace5d8ecd10bb8878d09d214233" + } + ] } \ No newline at end of file diff --git a/releases/release-1.23/release-notes/sessions/maps-1637187438.json b/releases/release-1.23/release-notes/sessions/maps-1637187438.json index 830859c98ff..486b4f67fc2 100644 --- a/releases/release-1.23/release-notes/sessions/maps-1637187438.json +++ b/releases/release-1.23/release-notes/sessions/maps-1637187438.json @@ -1,887 +1,887 @@ -{ - "mail": "ldwyerds@gmail.com", - "name": "AuraSinis", - "date": 1637187438, - "prs": [ - { - "nr": 105156, - "hash": "d32f489dffa49fb7b35813855dd84243df02a1b5" - }, - { - "nr": 103724, - "hash": "99cee06dd315f0bbb489863a810cd2a3833f5353" - }, - { - "nr": 105682, - "hash": "d91fa413549e32bc1e93c6b78b8d87b53e74e432" - }, - { - "nr": 104877, - "hash": "54daf9875cef31e2a71ea526e50f48ae731b7156" - }, - { - "nr": 105495, - "hash": "66b4bbac4172032f0707cbc588fb436705196c7f" - }, - { - "nr": 105185, - "hash": "4ee7169fbefdcb54ab7983a7bab1252eb20e91d3" - }, - { - "nr": 101928, - "hash": "04b682c1182a4d21e06159459e491343546ecde1" - }, - { - "nr": 104699, - "hash": "5dc32a7c9dd3cd9cadb21a0443b0fcb007322523" - }, - { - "nr": 105777, - "hash": "706bd12d21a698e46274cf774c7918b171833a9d" - }, - { - "nr": 104590, - "hash": "f2a426198477f6052299aba935a906dd7bbaef58" - }, - { - "nr": 104033, - "hash": "c53b85d88df514993a2afe1e25e70cbb36cbaedf" - }, - { - "nr": 105896, - "hash": "e0e519f03d2fa04bfa77df49b05ee3d8d88ac8ff" - }, - { - "nr": 104251, - "hash": "003f04db450de1e4b28fc96ba255139975a93e55" - }, - { - "nr": 105213, - "hash": "0c46e70d73a9a6213ea03760ac8e173ba8d4ddf8" - }, - { - "nr": 102981, - "hash": "d28f40c2520cea1364dd5927cb9c8da63c857e4a" - }, - { - "nr": 104301, - "hash": "d762e4e2c69c32ec7ac69324db3fdf732c570e25" - }, - { - "nr": 103958, - "hash": "80ccc15d5f1770b2bda5316ba26cacd478ab8243" - }, - { - "nr": 103801, - "hash": "e8af76c170997bf47cd1f4808bd5cf95a035e36f" - }, - { - "nr": 104601, - "hash": "c7bbd48bfba725bcec6ceb272557519c86c4a7b8" - }, - { - "nr": 100720, - "hash": "32ad7e26ae67f727777479a27d8937fb49013d53" - }, - { - "nr": 105666, - "hash": "eafb4308d35cbbc75f18e23ed750c94cba1f7a4c" - }, - { - "nr": 104908, - "hash": "d3c66001890d18908c653e12d03e2f53e365bca2" - }, - { - "nr": 104624, - "hash": "fc9541b080bd8a96a8e7fa1711cd4c94b128b3e7" - }, - { - "nr": 104382, - "hash": "3b3f7a9ab74a2eea98bfb66991b01be1886e78fb" - }, - { - "nr": 95128, - "hash": "cf91e7eea682810ef53f3390cf2fee370bf6b376" - }, - { - "nr": 100125, - "hash": "49f9a9453feabcaee2e5d2741a80894e718abaf7" - }, - { - "nr": 104482, - "hash": "fa02b5b98829e9a17d4d74db3e1b2c23d540a3d8" - }, - { - "nr": 104045, - "hash": "e0d9ddc039cf291335ea6cbaf343946903b39c48" - }, - { - "nr": 103178, - "hash": "05cacc4eb9f2476cca5ee3f5082bfe3a51365751" - }, - { - "nr": 104157, - "hash": "ec61f5263f1cbbfbf946846def0dedaa80855d57" - }, - { - "nr": 102507, - "hash": "5b042ccc9e9b59c28bf4abf554c58cf734463c40" - }, - { - "nr": 101781, - "hash": "5b2dae14f7c9d6838a7410051ae3ec38ec466e8e" - }, - { - "nr": 104199, - "hash": "8915890cc44a540e7fd79801baf8a48714568939" - }, - { - "nr": 100482, - "hash": "057ecf054c49c03023794a612acac543fa10b767" - }, - { - "nr": 104756, - "hash": "fb3c1b5f0a545babab202a74d716f963a2525494" - }, - { - "nr": 104253, - "hash": "dbdeb4339eb552b3fc4133d97a4da408527eac8f" - }, - { - "nr": 105215, - "hash": "e629ea8ef9fbf15eb3d09fbe2f8ec21c7e13e57b" - }, - { - "nr": 103997, - "hash": "0a1c6173c606654c5b7480c74bc7736585b89b73" - }, - { - "nr": 104426, - "hash": "b96904ce5b43577d8db9ecdcdfafa520c4ecdbc0" - }, - { - "nr": 105188, - "hash": "f5e9fe4b1e85319dbc6f9168e0dd3825e2889ac9" - }, - { - "nr": 103917, - "hash": "7ad31583d6288cc10fac4a5ad05fde83c1261196" - }, - { - "nr": 103831, - "hash": "79bbb5391dfffd7853aa19b4664ad18a6fdd1868" - }, - { - "nr": 105676, - "hash": "842589d25c91ed7db7d0c8194078491f6916e194" - }, - { - "nr": 104796, - "hash": "4e806c94de269d3d102e98d585f7c5d861d56e77" - }, - { - "nr": 105219, - "hash": "55429ef16d40a1e26374cb5c5cb500293c41d144" - }, - { - "nr": 104894, - "hash": "f7c60b2d546576cc1a225d7c617e45cf52200e1c" - }, - { - "nr": 103875, - "hash": "db6b0c76fcf88fdde39900ef6eb1f38991b41af0" - }, - { - "nr": 105253, - "hash": "ec89a2c1db4ae2ae9469086a916c3c8c76ecaa99" - }, - { - "nr": 104932, - "hash": "3acf23adc6c0b0a7b84737cff2352b1b2f814ef1" - }, - { - "nr": 103751, - "hash": "ada129d825fb0b487cf47c7bc5b59379033b069d" - }, - { - "nr": 105857, - "hash": "774865d6f006adaab2eeaf5b4fe365a56b76cf31" - }, - { - "nr": 104711, - "hash": "38a4fe6fb91fda71e76ec3f81860fb0560fb3863" - }, - { - "nr": 105245, - "hash": "b75de4dd104aa3c9bf156a5178f1890fb6a884dc" - }, - { - "nr": 105076, - "hash": "a954273077757ace5d8ecd10bb8878d09d214233" - }, - { - "nr": 96684, - "hash": "7ca850b1f55afa245e1b9aafeb279718c242766f" - }, - { - "nr": 104666, - "hash": "fd7a7a30a2ce1abbd20f80fa36c8728ecbd75652" - }, - { - "nr": 104168, - "hash": "8d72244aa192747e20651e817856804a4b49e543" - }, - { - "nr": 104604, - "hash": "89f678141b15506f591ba95ffe9ad9d8ccd81bec" - }, - { - "nr": 104065, - "hash": "88902ba977cafa9e0aa6009e8f3b51287c5daad1" - }, - { - "nr": 102945, - "hash": "74a28017dcd3d37c22cf497bf430f5fecadd921b" - }, - { - "nr": 105649, - "hash": "6d791253842ac30e71ccf173f3e86d86804e5be5" - }, - { - "nr": 105327, - "hash": "08ed34b62fd38201ed3355456c353f4d3bce96c5" - }, - { - "nr": 105107, - "hash": "845bf5a0b50f970d094b4c58317e566fc6dd9c70" - }, - { - "nr": 103027, - "hash": "c57c71c161cf42468b4c7938347ae3979423d0ac" - }, - { - "nr": 104182, - "hash": "1ec7bd0385a124434c27606dc5e2db331f76d3da" - }, - { - "nr": 105222, - "hash": "741aa101d8b0037a5922e2b648e89c842d73b1f1" - }, - { - "nr": 105197, - "hash": "7b973ffc229bf378f7a54316ac06d6f6923f07a7" - }, - { - "nr": 105035, - "hash": "8a56b469bd75874f0ed5e7975d4d2ab74fcc4332" - }, - { - "nr": 104142, - "hash": "f941b7b76be5c7be0c5517db22569f7fb39b98d4" - }, - { - "nr": 105158, - "hash": "e28b935542eb27c04400c211651056b0136c2d7a" - }, - { - "nr": 104103, - "hash": "a08137564166265938f8b53531e140cc8ec345ec" - }, - { - "nr": 104986, - "hash": "535e60a5ae177356fbe805f2f469e4deddaff480" - }, - { - "nr": 103793, - "hash": "902a8efe7a36d7626db4d78c2d5bfd7ab53e7d2b" - }, - { - "nr": 105898, - "hash": "e14fafdd5466e10b6399371679c12e1656a630e3" - }, - { - "nr": 92433, - "hash": "6e95d328443c8c662e2735d8dbaf157eb284927a" - }, - { - "nr": 105012, - "hash": "1ca519e2b5b5ba48019ab46b4338493fdc26e80b" - }, - { - "nr": 104384, - "hash": "b14dcf63891796bce5dce282e8949039659c1d71" - }, - { - "nr": 103918, - "hash": "e0ba9d238e59cf634c526802c8385a0c75f6e375" - }, - { - "nr": 103823, - "hash": "167dee04458b405a6b052ffba9b6d9900695e520" - }, - { - "nr": 105563, - "hash": "716f94f179b10f145dd117571bd4b40a2c060986" - }, - { - "nr": 105396, - "hash": "2474a946e0df8ffeac9b1857d1c4cb6f53b39017" - }, - { - "nr": 105046, - "hash": "648363316810897a6885af3127071f8b3cf86ade" - }, - { - "nr": 102242, - "hash": "992ce6429cf901b6a0bc4da9313a6947303d7636" - }, - { - "nr": 105609, - "hash": "202f1dc3725258e9581e6119565c72a75f480f19" - }, - { - "nr": 105855, - "hash": "08a361359f1926e361d62bcaec0c2426ce526029" - }, - { - "nr": 103799, - "hash": "e59b7f4c82fbe9809c85c16e975458c8e7f4b7f4" - }, - { - "nr": 103843, - "hash": "f08361894ca476bee677affc2cea486567777865" - }, - { - "nr": 105851, - "hash": "053ad489ce18ebee2f12956f6d89dea3ef432f6e" - }, - { - "nr": 105511, - "hash": "4eb3cde757a7f808017269f56ff219ad4ed37ed8" - }, - { - "nr": 104853, - "hash": "0554ecbfbedeca911ba7b249d2707e7034f723f9" - }, - { - "nr": 104593, - "hash": "1b6a80401afad9b0d0d6dff5d9522fe0624beb04" - }, - { - "nr": 104119, - "hash": "575298ee325526a15e958e462b63910fa2878044" - }, - { - "nr": 104102, - "hash": "db97405f56ef528d3b090bb55bc4fa94c4106214" - }, - { - "nr": 105999, - "hash": "0c23739d84f92a9905dcc0bf8a8d5478afcf47fd" - }, - { - "nr": 105980, - "hash": "bc463e812b50b10665d16250692568a98e40c87b" - }, - { - "nr": 104782, - "hash": "5cc8e3345416cd71c393c08fffdcebcc07d3f36b" - }, - { - "nr": 104942, - "hash": "7ec09526be8fcc5cde8db9b7c3185a3ac57bcd9e" - }, - { - "nr": 104931, - "hash": "a8c4054ec412d1230938e26cc38c7b2df5984321" - }, - { - "nr": 105466, - "hash": "732daf1bdd9832743805d1fdb9a348ef887fd118" - }, - { - "nr": 104983, - "hash": "f0b391276e20bead757a2e83a22de71748d5480c" - }, - { - "nr": 104572, - "hash": "e5d2a723096194c26727f317cd641145e13f9547" - }, - { - "nr": 99557, - "hash": "e16d6b241a75c297c5b6fce64a4d7222c0ab65ae" - }, - { - "nr": 104483, - "hash": "dc5c5acc7c9b27f95005fd1653d2b65b37224a7e" - }, - { - "nr": 103796, - "hash": "4246660ceb1173a1f03b9aa12d55c289b1b69c68" - }, - { - "nr": 104571, - "hash": "779c438d6f4e8a764f435f515079319914501e10" - }, - { - "nr": 105687, - "hash": "fbef315eee3570d53a92198947063eb5f2434e39" - }, - { - "nr": 105445, - "hash": "6963574ddbb4238d6dd4e9cfc29b8cfb642a5d20" - }, - { - "nr": 104670, - "hash": "e2871d51c15496bc3dfe1d4550afee6e095853b3" - }, - { - "nr": 104518, - "hash": "f59ab9161a22a0cfd0d6354d0fd583b12dfb3403" - }, - { - "nr": 103852, - "hash": "dc50498289e8a104db846434649bc2afc506ad46" - }, - { - "nr": 101789, - "hash": "416a41073c969ef3871485b7a36a798323930141" - }, - { - "nr": 103538, - "hash": "e57f75aa44e28569e9599c5b867e08e2d05a768d" - }, - { - "nr": 104696, - "hash": "f22800484bad77ddb65e11885118a9875b5401ea" - }, - { - "nr": 105931, - "hash": "f0cd9c02275fab0e31b9574c63bf2f6fb6c18eb4" - }, - { - "nr": 105888, - "hash": "4266256be5d2ac4fa74eddd67efc1751036651a0" - }, - { - "nr": 105424, - "hash": "c20c498f878b0605c38e12e6421cdbe765eb6ea4" - }, - { - "nr": 104854, - "hash": "b1d5d75ac53d3ab710b8f7e70141a9b65e649b3d" - }, - { - "nr": 103894, - "hash": "aab1378d2e1fc5f0f29548e328254b4238dd5cf2" - }, - { - "nr": 104923, - "hash": "6ce9d9aaf645ad4f0e5751778d5cb8db993f001d" - }, - { - "nr": 104691, - "hash": "098aa73d3bacecdcec29a61966ed992b8cb84a81" - }, - { - "nr": 104904, - "hash": "586e775eaebc82be233f264a9abd5e3a64882b6b" - }, - { - "nr": 105569, - "hash": "223318a5997d12c93752b7f84ced4308f0a45b44" - }, - { - "nr": 104389, - "hash": "181fe22a4aaf62e9790f5a7ed82f6c108c311b1b" - }, - { - "nr": 104466, - "hash": "7ea790849a00e66dc71a290c415211b7a6efbbee" - }, - { - "nr": 105474, - "hash": "b9b5451a621385829347a4c22872d9f494b44d4d" - }, - { - "nr": 105462, - "hash": "4876b60152155a70ced10f01b76db49a3d093f81" - }, - { - "nr": 104399, - "hash": "7d289bba1663685189651d6dae20d2a07aa33cc2" - }, - { - "nr": 104160, - "hash": "f1ecbb4ded51af5764ae4ca1835111c5a2dc8ef9" - }, - { - "nr": 104523, - "hash": "1de6a9cbaba40de976229f3a41282d3c251d139a" - }, - { - "nr": 104293, - "hash": "12fcad8d4e26da3875fa1e7cbcb266296269c96e" - }, - { - "nr": 103685, - "hash": "3aae0804b3a310f713677e803887da2b7f9402cd" - }, - { - "nr": 103162, - "hash": "f36477029d64a2d2e0723b0c761d63aa4e76ab05" - }, - { - "nr": 105908, - "hash": "4d7418bf88326a42d4b8b4fb45dddb235fca87eb" - }, - { - "nr": 105490, - "hash": "36958419bed69ee591113908307cd663c2210d2c" - }, - { - "nr": 105069, - "hash": "9da8971b6e219dfe878cb5c9237d67789700bef6" - }, - { - "nr": 103654, - "hash": "303db7ce34d231559a8a2d761696f92606a60b61" - }, - { - "nr": 104134, - "hash": "7c5a1ecd06a37d6ea25d9462af9de3d6286884f6" - }, - { - "nr": 104163, - "hash": "ac341234cf598f33dee4a834673ee2ce3084a66c" - }, - { - "nr": 103439, - "hash": "c1aed3f71371779b5fe017e01cef34f5895e9774" - }, - { - "nr": 105479, - "hash": "e88a767e341f4855d33a13a809f6a02689ec204a" - }, - { - "nr": 104891, - "hash": "d2e3da2755d521682899d72ce3ceb1bd17e96171" - }, - { - "nr": 102886, - "hash": "58f7a556738583a0f7532b5bd6d009a4e4fd9325" - }, - { - "nr": 105839, - "hash": "cdafb61385ccab173ce562631f1118520378e9c0" - }, - { - "nr": 105631, - "hash": "dea2997bf8ea0925191dba7f2e2e5168d66b8189" - }, - { - "nr": 105196, - "hash": "c2873b7f32088f5201c75a4159f0acb6ebc31dd7" - }, - { - "nr": 104503, - "hash": "e29cbab08a60f34140eeffa3f896f55704c86f51" - }, - { - "nr": 104009, - "hash": "9b425ba8f9b2973ae46e12302420359b0c48968e" - }, - { - "nr": 105211, - "hash": "04391b235ddd2ac055b02c85d62a66867d1db764" - }, - { - "nr": 104631, - "hash": "6a1a31e811687e8681f0194454bd7c236fd54ba7" - }, - { - "nr": 105352, - "hash": "f021484c8d37ca027cb796999c2965801d25ab6b" - }, - { - "nr": 105214, - "hash": "678287c4c781dc119cfa59a93932af329a4f12bc" - }, - { - "nr": 104664, - "hash": "2f466bbd326e5f56a32c7f2358c1b2651b04689c" - }, - { - "nr": 104528, - "hash": "773c1ebeca948281a06157e5afda536bdf899d84" - }, - { - "nr": 98913, - "hash": "210cb29e0d5e26b8752469c2688addaff50f4c4e" - }, - { - "nr": 103813, - "hash": "0e8b6fddb983e78409c4923dcb53d922a20facab" - }, - { - "nr": 105711, - "hash": "9bbe53069ff511ed7696a398d73f897f87768ecd" - }, - { - "nr": 104577, - "hash": "6e16516187ea2db20fd4e30f162df19914b392aa" - }, - { - "nr": 105673, - "hash": "e27efaf5f96eaafa7a34bd24c31ac44c21592fbd" - }, - { - "nr": 104873, - "hash": "314606e6834134fc864b8050a52c9b6edbe9b5e0" - }, - { - "nr": 104928, - "hash": "ce7e382618350521044659e6edc2c6e7e50f8450" - }, - { - "nr": 101257, - "hash": "279f26a8cf85217de7ab3af4c14a82e8d1d5952a" - }, - { - "nr": 104080, - "hash": "3cea80f89d9ea8583b8d6859124c4e7ae6a35571" - }, - { - "nr": 105405, - "hash": "f7ca9dac7d1d06a60046a16ff6bcfa09eeeab022" - }, - { - "nr": 104551, - "hash": "ea8a121062296e284ccef616fd0879e0f9672587" - }, - { - "nr": 103172, - "hash": "4726022cdb7ee6bc66983e375f65d65c214e9263" - }, - { - "nr": 105034, - "hash": "10144905d20987748987c3c3ffa57db1b9e8d6d1" - }, - { - "nr": 103231, - "hash": "70f0a2783d86c4d2cd479448178db442eaa3aa76" - }, - { - "nr": 92853, - "hash": "055e2a5e881a8b0c51d47564d1398d3dac01d8a3" - }, - { - "nr": 104605, - "hash": "b70357afc5511f53a3d5d323e7f14d9b1ffaad6c" - }, - { - "nr": 99273, - "hash": "a078348b40632564176c5879e788068f68f4a1f3" - }, - { - "nr": 103137, - "hash": "0e1fb0accb894205ab6d5210059d7d8217dcfcf4" - }, - { - "nr": 97415, - "hash": "7af53408e66d8cf19cade95e0ad3230b478fc008" - }, - { - "nr": 104167, - "hash": "9a0f866d8210d103d7a89664ee953ad6f6c00cf5" - }, - { - "nr": 103941, - "hash": "cae02db474f9c4cd67f202cb16b18841eaaec363" - }, - { - "nr": 104185, - "hash": "52bb24c88aa8504f2b32b4d1e86de63bb975aebf" - }, - { - "nr": 104748, - "hash": "3786a53f1f0e04a94f817f1eb71fa078c804efc4" - }, - { - "nr": 104327, - "hash": "f067ebe105b68a2cbb659ef546fd738b1dcad641" - }, - { - "nr": 103174, - "hash": "7f99550cce8a22b9c671fe3cfe8fb661501b8195" - }, - { - "nr": 104970, - "hash": "f531343f717ab322fbb771c6a55261a4c855d39a" - }, - { - "nr": 103692, - "hash": "ed3b5fb83024f78853459791662cb608b84623c5" - }, - { - "nr": 97350, - "hash": "636cb33ee3a9568cf48b526f633ed07f1e930ba8" - }, - { - "nr": 101370, - "hash": "26efbdd836652fee30ab09f11b24a0c81ccada49" - }, - { - "nr": 104915, - "hash": "90fce05d8c324400267a52152368ce2eb1b39f42" - }, - { - "nr": 105267, - "hash": "414edbfcc4fcad0702669e96276f0395d97613db" - }, - { - "nr": 104368, - "hash": "21d011f7679c2e7a43f74f36517ab98f1bf6e48c" - }, - { - "nr": 101646, - "hash": "df050b41114f816afddedffff3e692814124441a" - }, - { - "nr": 104744, - "hash": "337ece5c29797edcacca980117bf462d5004207b" - }, - { - "nr": 104969, - "hash": "d61ebc58b40c3aaad6d2640dd2fee3a3f450ce54" - }, - { - "nr": 104667, - "hash": "d06b2b153e68f1a9311e5e819c862656bf9a2bc6" - }, - { - "nr": 104116, - "hash": "08775e2aaf8ed06caf4af88afd68de2006a0f51f" - }, - { - "nr": 105845, - "hash": "380c9375c4cfe137200ae428852c753e009d919a" - }, - { - "nr": 104817, - "hash": "8191b0b4ddbc9c9f8056303d4199f78756853288" - }, - { - "nr": 104705, - "hash": "1859f7bb34e2629b04830e0f685b7fd3f539d3c8" - }, - { - "nr": 104011, - "hash": "04e845e2361e02d362e1b767980e99a73dbf09c0" - }, - { - "nr": 104438, - "hash": "0bfae5bebd22b3260e6b38ebe41e04b8fbb123dc" - }, - { - "nr": 104161, - "hash": "e19ae8be54900992afce70b839423f463a2ec0df" - }, - { - "nr": 103794, - "hash": "9228a312021a00cc608a6af221e6d98fbe7a4e80" - }, - { - "nr": 104693, - "hash": "1e400e86bc3012617cb6a29ede96b4ee9c3285bb" - }, - { - "nr": 104944, - "hash": "2d6085f0ad184ef9925bf55c5c155d38cda7a05f" - }, - { - "nr": 104741, - "hash": "b211e399a7af08f2311d0d17769f660dfc4d3a8c" - }, - { - "nr": 104232, - "hash": "81222087861a8d28a80388beb4b0e5e9945fa5f7" - }, - { - "nr": 104248, - "hash": "2202fae8beb37c15b900c0e0b7db095b0154a91f" - }, - { - "nr": 105484, - "hash": "89c5fc65f7cc17be7bbb1391d253df6ecd1fcbe4" - }, - { - "nr": 104847, - "hash": "4c351187f6b715b9921f9b952619f278cf91354e" - }, - { - "nr": 104430, - "hash": "aa464c17a9d3476c5584dfcc3c9883696d6219da" - }, - { - "nr": 105913, - "hash": "a23993ad866b4db6b6fe8c9a2614f4169938c0f0" - }, - { - "nr": 105042, - "hash": "f7db6bd64618427414bc085f23bc5d0ccfaf6edf" - }, - { - "nr": 103515, - "hash": "b654d92bca5a5c38bd13ab22b5e6472531229e37" - }, - { - "nr": 103758, - "hash": "7ce2e381d3e0aef9fe1ea02c1e1acfa774b7848d" - }, - { - "nr": 101081, - "hash": "9cac7d22ec19d2c81e069554a8ced43fe4e5c6d2" - }, - { - "nr": 105734, - "hash": "4f4ab567642bcad5a80f909fb9d291a233dd2209" - }, - { - "nr": 102015, - "hash": "9bb564c78672f11534dff2bdb72302ea20e92a8b" - }, - { - "nr": 105003, - "hash": "8f35965d8c3dbb1ceb1cc0d2f02f752212606bd9" - }, - { - "nr": 96345, - "hash": "73664a03fc363d684cc236c7c83f546ee12b3b3a" - }, - { - "nr": 105915, - "hash": "4949bb7e1b77e7a6d2b017b6bbf71a84d8f71f05" - }, - { - "nr": 105712, - "hash": "c3fe8861ada049f85512b361ad1c7514834c8521" - }, - { - "nr": 92989, - "hash": "6cd647018816d4c19491d88228f3fa5c168072f6" - }, - { - "nr": 103564, - "hash": "ce02436b58b2ad629721d6c96072f89ace71574f" - }, - { - "nr": 105606, - "hash": "13a3ac235e20d036ef3c65f54f1be50b2b59e4fd" - }, - { - "nr": 104742, - "hash": "df6a622a0f9841e77fa4b018126a35fc9887228a" - } - ] +{ + "mail": "ldwyerds@gmail.com", + "name": "AuraSinis", + "date": 1637187438, + "prs": [ + { + "nr": 105156, + "hash": "d32f489dffa49fb7b35813855dd84243df02a1b5" + }, + { + "nr": 103724, + "hash": "99cee06dd315f0bbb489863a810cd2a3833f5353" + }, + { + "nr": 105682, + "hash": "d91fa413549e32bc1e93c6b78b8d87b53e74e432" + }, + { + "nr": 104877, + "hash": "54daf9875cef31e2a71ea526e50f48ae731b7156" + }, + { + "nr": 105495, + "hash": "66b4bbac4172032f0707cbc588fb436705196c7f" + }, + { + "nr": 105185, + "hash": "4ee7169fbefdcb54ab7983a7bab1252eb20e91d3" + }, + { + "nr": 101928, + "hash": "04b682c1182a4d21e06159459e491343546ecde1" + }, + { + "nr": 104699, + "hash": "5dc32a7c9dd3cd9cadb21a0443b0fcb007322523" + }, + { + "nr": 105777, + "hash": "706bd12d21a698e46274cf774c7918b171833a9d" + }, + { + "nr": 104590, + "hash": "f2a426198477f6052299aba935a906dd7bbaef58" + }, + { + "nr": 104033, + "hash": "c53b85d88df514993a2afe1e25e70cbb36cbaedf" + }, + { + "nr": 105896, + "hash": "e0e519f03d2fa04bfa77df49b05ee3d8d88ac8ff" + }, + { + "nr": 104251, + "hash": "003f04db450de1e4b28fc96ba255139975a93e55" + }, + { + "nr": 105213, + "hash": "0c46e70d73a9a6213ea03760ac8e173ba8d4ddf8" + }, + { + "nr": 102981, + "hash": "d28f40c2520cea1364dd5927cb9c8da63c857e4a" + }, + { + "nr": 104301, + "hash": "d762e4e2c69c32ec7ac69324db3fdf732c570e25" + }, + { + "nr": 103958, + "hash": "80ccc15d5f1770b2bda5316ba26cacd478ab8243" + }, + { + "nr": 103801, + "hash": "e8af76c170997bf47cd1f4808bd5cf95a035e36f" + }, + { + "nr": 104601, + "hash": "c7bbd48bfba725bcec6ceb272557519c86c4a7b8" + }, + { + "nr": 100720, + "hash": "32ad7e26ae67f727777479a27d8937fb49013d53" + }, + { + "nr": 105666, + "hash": "eafb4308d35cbbc75f18e23ed750c94cba1f7a4c" + }, + { + "nr": 104908, + "hash": "d3c66001890d18908c653e12d03e2f53e365bca2" + }, + { + "nr": 104624, + "hash": "fc9541b080bd8a96a8e7fa1711cd4c94b128b3e7" + }, + { + "nr": 104382, + "hash": "3b3f7a9ab74a2eea98bfb66991b01be1886e78fb" + }, + { + "nr": 95128, + "hash": "cf91e7eea682810ef53f3390cf2fee370bf6b376" + }, + { + "nr": 100125, + "hash": "49f9a9453feabcaee2e5d2741a80894e718abaf7" + }, + { + "nr": 104482, + "hash": "fa02b5b98829e9a17d4d74db3e1b2c23d540a3d8" + }, + { + "nr": 104045, + "hash": "e0d9ddc039cf291335ea6cbaf343946903b39c48" + }, + { + "nr": 103178, + "hash": "05cacc4eb9f2476cca5ee3f5082bfe3a51365751" + }, + { + "nr": 104157, + "hash": "ec61f5263f1cbbfbf946846def0dedaa80855d57" + }, + { + "nr": 102507, + "hash": "5b042ccc9e9b59c28bf4abf554c58cf734463c40" + }, + { + "nr": 101781, + "hash": "5b2dae14f7c9d6838a7410051ae3ec38ec466e8e" + }, + { + "nr": 104199, + "hash": "8915890cc44a540e7fd79801baf8a48714568939" + }, + { + "nr": 100482, + "hash": "057ecf054c49c03023794a612acac543fa10b767" + }, + { + "nr": 104756, + "hash": "fb3c1b5f0a545babab202a74d716f963a2525494" + }, + { + "nr": 104253, + "hash": "dbdeb4339eb552b3fc4133d97a4da408527eac8f" + }, + { + "nr": 105215, + "hash": "e629ea8ef9fbf15eb3d09fbe2f8ec21c7e13e57b" + }, + { + "nr": 103997, + "hash": "0a1c6173c606654c5b7480c74bc7736585b89b73" + }, + { + "nr": 104426, + "hash": "b96904ce5b43577d8db9ecdcdfafa520c4ecdbc0" + }, + { + "nr": 105188, + "hash": "f5e9fe4b1e85319dbc6f9168e0dd3825e2889ac9" + }, + { + "nr": 103917, + "hash": "7ad31583d6288cc10fac4a5ad05fde83c1261196" + }, + { + "nr": 103831, + "hash": "79bbb5391dfffd7853aa19b4664ad18a6fdd1868" + }, + { + "nr": 105676, + "hash": "842589d25c91ed7db7d0c8194078491f6916e194" + }, + { + "nr": 104796, + "hash": "4e806c94de269d3d102e98d585f7c5d861d56e77" + }, + { + "nr": 105219, + "hash": "55429ef16d40a1e26374cb5c5cb500293c41d144" + }, + { + "nr": 104894, + "hash": "f7c60b2d546576cc1a225d7c617e45cf52200e1c" + }, + { + "nr": 103875, + "hash": "db6b0c76fcf88fdde39900ef6eb1f38991b41af0" + }, + { + "nr": 105253, + "hash": "ec89a2c1db4ae2ae9469086a916c3c8c76ecaa99" + }, + { + "nr": 104932, + "hash": "3acf23adc6c0b0a7b84737cff2352b1b2f814ef1" + }, + { + "nr": 103751, + "hash": "ada129d825fb0b487cf47c7bc5b59379033b069d" + }, + { + "nr": 105857, + "hash": "774865d6f006adaab2eeaf5b4fe365a56b76cf31" + }, + { + "nr": 104711, + "hash": "38a4fe6fb91fda71e76ec3f81860fb0560fb3863" + }, + { + "nr": 105245, + "hash": "b75de4dd104aa3c9bf156a5178f1890fb6a884dc" + }, + { + "nr": 105076, + "hash": "a954273077757ace5d8ecd10bb8878d09d214233" + }, + { + "nr": 96684, + "hash": "7ca850b1f55afa245e1b9aafeb279718c242766f" + }, + { + "nr": 104666, + "hash": "fd7a7a30a2ce1abbd20f80fa36c8728ecbd75652" + }, + { + "nr": 104168, + "hash": "8d72244aa192747e20651e817856804a4b49e543" + }, + { + "nr": 104604, + "hash": "89f678141b15506f591ba95ffe9ad9d8ccd81bec" + }, + { + "nr": 104065, + "hash": "88902ba977cafa9e0aa6009e8f3b51287c5daad1" + }, + { + "nr": 102945, + "hash": "74a28017dcd3d37c22cf497bf430f5fecadd921b" + }, + { + "nr": 105649, + "hash": "6d791253842ac30e71ccf173f3e86d86804e5be5" + }, + { + "nr": 105327, + "hash": "08ed34b62fd38201ed3355456c353f4d3bce96c5" + }, + { + "nr": 105107, + "hash": "845bf5a0b50f970d094b4c58317e566fc6dd9c70" + }, + { + "nr": 103027, + "hash": "c57c71c161cf42468b4c7938347ae3979423d0ac" + }, + { + "nr": 104182, + "hash": "1ec7bd0385a124434c27606dc5e2db331f76d3da" + }, + { + "nr": 105222, + "hash": "741aa101d8b0037a5922e2b648e89c842d73b1f1" + }, + { + "nr": 105197, + "hash": "7b973ffc229bf378f7a54316ac06d6f6923f07a7" + }, + { + "nr": 105035, + "hash": "8a56b469bd75874f0ed5e7975d4d2ab74fcc4332" + }, + { + "nr": 104142, + "hash": "f941b7b76be5c7be0c5517db22569f7fb39b98d4" + }, + { + "nr": 105158, + "hash": "e28b935542eb27c04400c211651056b0136c2d7a" + }, + { + "nr": 104103, + "hash": "a08137564166265938f8b53531e140cc8ec345ec" + }, + { + "nr": 104986, + "hash": "535e60a5ae177356fbe805f2f469e4deddaff480" + }, + { + "nr": 103793, + "hash": "902a8efe7a36d7626db4d78c2d5bfd7ab53e7d2b" + }, + { + "nr": 105898, + "hash": "e14fafdd5466e10b6399371679c12e1656a630e3" + }, + { + "nr": 92433, + "hash": "6e95d328443c8c662e2735d8dbaf157eb284927a" + }, + { + "nr": 105012, + "hash": "1ca519e2b5b5ba48019ab46b4338493fdc26e80b" + }, + { + "nr": 104384, + "hash": "b14dcf63891796bce5dce282e8949039659c1d71" + }, + { + "nr": 103918, + "hash": "e0ba9d238e59cf634c526802c8385a0c75f6e375" + }, + { + "nr": 103823, + "hash": "167dee04458b405a6b052ffba9b6d9900695e520" + }, + { + "nr": 105563, + "hash": "716f94f179b10f145dd117571bd4b40a2c060986" + }, + { + "nr": 105396, + "hash": "2474a946e0df8ffeac9b1857d1c4cb6f53b39017" + }, + { + "nr": 105046, + "hash": "648363316810897a6885af3127071f8b3cf86ade" + }, + { + "nr": 102242, + "hash": "992ce6429cf901b6a0bc4da9313a6947303d7636" + }, + { + "nr": 105609, + "hash": "202f1dc3725258e9581e6119565c72a75f480f19" + }, + { + "nr": 105855, + "hash": "08a361359f1926e361d62bcaec0c2426ce526029" + }, + { + "nr": 103799, + "hash": "e59b7f4c82fbe9809c85c16e975458c8e7f4b7f4" + }, + { + "nr": 103843, + "hash": "f08361894ca476bee677affc2cea486567777865" + }, + { + "nr": 105851, + "hash": "053ad489ce18ebee2f12956f6d89dea3ef432f6e" + }, + { + "nr": 105511, + "hash": "4eb3cde757a7f808017269f56ff219ad4ed37ed8" + }, + { + "nr": 104853, + "hash": "0554ecbfbedeca911ba7b249d2707e7034f723f9" + }, + { + "nr": 104593, + "hash": "1b6a80401afad9b0d0d6dff5d9522fe0624beb04" + }, + { + "nr": 104119, + "hash": "575298ee325526a15e958e462b63910fa2878044" + }, + { + "nr": 104102, + "hash": "db97405f56ef528d3b090bb55bc4fa94c4106214" + }, + { + "nr": 105999, + "hash": "0c23739d84f92a9905dcc0bf8a8d5478afcf47fd" + }, + { + "nr": 105980, + "hash": "bc463e812b50b10665d16250692568a98e40c87b" + }, + { + "nr": 104782, + "hash": "5cc8e3345416cd71c393c08fffdcebcc07d3f36b" + }, + { + "nr": 104942, + "hash": "7ec09526be8fcc5cde8db9b7c3185a3ac57bcd9e" + }, + { + "nr": 104931, + "hash": "a8c4054ec412d1230938e26cc38c7b2df5984321" + }, + { + "nr": 105466, + "hash": "732daf1bdd9832743805d1fdb9a348ef887fd118" + }, + { + "nr": 104983, + "hash": "f0b391276e20bead757a2e83a22de71748d5480c" + }, + { + "nr": 104572, + "hash": "e5d2a723096194c26727f317cd641145e13f9547" + }, + { + "nr": 99557, + "hash": "e16d6b241a75c297c5b6fce64a4d7222c0ab65ae" + }, + { + "nr": 104483, + "hash": "dc5c5acc7c9b27f95005fd1653d2b65b37224a7e" + }, + { + "nr": 103796, + "hash": "4246660ceb1173a1f03b9aa12d55c289b1b69c68" + }, + { + "nr": 104571, + "hash": "779c438d6f4e8a764f435f515079319914501e10" + }, + { + "nr": 105687, + "hash": "fbef315eee3570d53a92198947063eb5f2434e39" + }, + { + "nr": 105445, + "hash": "6963574ddbb4238d6dd4e9cfc29b8cfb642a5d20" + }, + { + "nr": 104670, + "hash": "e2871d51c15496bc3dfe1d4550afee6e095853b3" + }, + { + "nr": 104518, + "hash": "f59ab9161a22a0cfd0d6354d0fd583b12dfb3403" + }, + { + "nr": 103852, + "hash": "dc50498289e8a104db846434649bc2afc506ad46" + }, + { + "nr": 101789, + "hash": "416a41073c969ef3871485b7a36a798323930141" + }, + { + "nr": 103538, + "hash": "e57f75aa44e28569e9599c5b867e08e2d05a768d" + }, + { + "nr": 104696, + "hash": "f22800484bad77ddb65e11885118a9875b5401ea" + }, + { + "nr": 105931, + "hash": "f0cd9c02275fab0e31b9574c63bf2f6fb6c18eb4" + }, + { + "nr": 105888, + "hash": "4266256be5d2ac4fa74eddd67efc1751036651a0" + }, + { + "nr": 105424, + "hash": "c20c498f878b0605c38e12e6421cdbe765eb6ea4" + }, + { + "nr": 104854, + "hash": "b1d5d75ac53d3ab710b8f7e70141a9b65e649b3d" + }, + { + "nr": 103894, + "hash": "aab1378d2e1fc5f0f29548e328254b4238dd5cf2" + }, + { + "nr": 104923, + "hash": "6ce9d9aaf645ad4f0e5751778d5cb8db993f001d" + }, + { + "nr": 104691, + "hash": "098aa73d3bacecdcec29a61966ed992b8cb84a81" + }, + { + "nr": 104904, + "hash": "586e775eaebc82be233f264a9abd5e3a64882b6b" + }, + { + "nr": 105569, + "hash": "223318a5997d12c93752b7f84ced4308f0a45b44" + }, + { + "nr": 104389, + "hash": "181fe22a4aaf62e9790f5a7ed82f6c108c311b1b" + }, + { + "nr": 104466, + "hash": "7ea790849a00e66dc71a290c415211b7a6efbbee" + }, + { + "nr": 105474, + "hash": "b9b5451a621385829347a4c22872d9f494b44d4d" + }, + { + "nr": 105462, + "hash": "4876b60152155a70ced10f01b76db49a3d093f81" + }, + { + "nr": 104399, + "hash": "7d289bba1663685189651d6dae20d2a07aa33cc2" + }, + { + "nr": 104160, + "hash": "f1ecbb4ded51af5764ae4ca1835111c5a2dc8ef9" + }, + { + "nr": 104523, + "hash": "1de6a9cbaba40de976229f3a41282d3c251d139a" + }, + { + "nr": 104293, + "hash": "12fcad8d4e26da3875fa1e7cbcb266296269c96e" + }, + { + "nr": 103685, + "hash": "3aae0804b3a310f713677e803887da2b7f9402cd" + }, + { + "nr": 103162, + "hash": "f36477029d64a2d2e0723b0c761d63aa4e76ab05" + }, + { + "nr": 105908, + "hash": "4d7418bf88326a42d4b8b4fb45dddb235fca87eb" + }, + { + "nr": 105490, + "hash": "36958419bed69ee591113908307cd663c2210d2c" + }, + { + "nr": 105069, + "hash": "9da8971b6e219dfe878cb5c9237d67789700bef6" + }, + { + "nr": 103654, + "hash": "303db7ce34d231559a8a2d761696f92606a60b61" + }, + { + "nr": 104134, + "hash": "7c5a1ecd06a37d6ea25d9462af9de3d6286884f6" + }, + { + "nr": 104163, + "hash": "ac341234cf598f33dee4a834673ee2ce3084a66c" + }, + { + "nr": 103439, + "hash": "c1aed3f71371779b5fe017e01cef34f5895e9774" + }, + { + "nr": 105479, + "hash": "e88a767e341f4855d33a13a809f6a02689ec204a" + }, + { + "nr": 104891, + "hash": "d2e3da2755d521682899d72ce3ceb1bd17e96171" + }, + { + "nr": 102886, + "hash": "58f7a556738583a0f7532b5bd6d009a4e4fd9325" + }, + { + "nr": 105839, + "hash": "cdafb61385ccab173ce562631f1118520378e9c0" + }, + { + "nr": 105631, + "hash": "dea2997bf8ea0925191dba7f2e2e5168d66b8189" + }, + { + "nr": 105196, + "hash": "c2873b7f32088f5201c75a4159f0acb6ebc31dd7" + }, + { + "nr": 104503, + "hash": "e29cbab08a60f34140eeffa3f896f55704c86f51" + }, + { + "nr": 104009, + "hash": "9b425ba8f9b2973ae46e12302420359b0c48968e" + }, + { + "nr": 105211, + "hash": "04391b235ddd2ac055b02c85d62a66867d1db764" + }, + { + "nr": 104631, + "hash": "6a1a31e811687e8681f0194454bd7c236fd54ba7" + }, + { + "nr": 105352, + "hash": "f021484c8d37ca027cb796999c2965801d25ab6b" + }, + { + "nr": 105214, + "hash": "678287c4c781dc119cfa59a93932af329a4f12bc" + }, + { + "nr": 104664, + "hash": "2f466bbd326e5f56a32c7f2358c1b2651b04689c" + }, + { + "nr": 104528, + "hash": "773c1ebeca948281a06157e5afda536bdf899d84" + }, + { + "nr": 98913, + "hash": "210cb29e0d5e26b8752469c2688addaff50f4c4e" + }, + { + "nr": 103813, + "hash": "0e8b6fddb983e78409c4923dcb53d922a20facab" + }, + { + "nr": 105711, + "hash": "9bbe53069ff511ed7696a398d73f897f87768ecd" + }, + { + "nr": 104577, + "hash": "6e16516187ea2db20fd4e30f162df19914b392aa" + }, + { + "nr": 105673, + "hash": "e27efaf5f96eaafa7a34bd24c31ac44c21592fbd" + }, + { + "nr": 104873, + "hash": "314606e6834134fc864b8050a52c9b6edbe9b5e0" + }, + { + "nr": 104928, + "hash": "ce7e382618350521044659e6edc2c6e7e50f8450" + }, + { + "nr": 101257, + "hash": "279f26a8cf85217de7ab3af4c14a82e8d1d5952a" + }, + { + "nr": 104080, + "hash": "3cea80f89d9ea8583b8d6859124c4e7ae6a35571" + }, + { + "nr": 105405, + "hash": "f7ca9dac7d1d06a60046a16ff6bcfa09eeeab022" + }, + { + "nr": 104551, + "hash": "ea8a121062296e284ccef616fd0879e0f9672587" + }, + { + "nr": 103172, + "hash": "4726022cdb7ee6bc66983e375f65d65c214e9263" + }, + { + "nr": 105034, + "hash": "10144905d20987748987c3c3ffa57db1b9e8d6d1" + }, + { + "nr": 103231, + "hash": "70f0a2783d86c4d2cd479448178db442eaa3aa76" + }, + { + "nr": 92853, + "hash": "055e2a5e881a8b0c51d47564d1398d3dac01d8a3" + }, + { + "nr": 104605, + "hash": "b70357afc5511f53a3d5d323e7f14d9b1ffaad6c" + }, + { + "nr": 99273, + "hash": "a078348b40632564176c5879e788068f68f4a1f3" + }, + { + "nr": 103137, + "hash": "0e1fb0accb894205ab6d5210059d7d8217dcfcf4" + }, + { + "nr": 97415, + "hash": "7af53408e66d8cf19cade95e0ad3230b478fc008" + }, + { + "nr": 104167, + "hash": "9a0f866d8210d103d7a89664ee953ad6f6c00cf5" + }, + { + "nr": 103941, + "hash": "cae02db474f9c4cd67f202cb16b18841eaaec363" + }, + { + "nr": 104185, + "hash": "52bb24c88aa8504f2b32b4d1e86de63bb975aebf" + }, + { + "nr": 104748, + "hash": "3786a53f1f0e04a94f817f1eb71fa078c804efc4" + }, + { + "nr": 104327, + "hash": "f067ebe105b68a2cbb659ef546fd738b1dcad641" + }, + { + "nr": 103174, + "hash": "7f99550cce8a22b9c671fe3cfe8fb661501b8195" + }, + { + "nr": 104970, + "hash": "f531343f717ab322fbb771c6a55261a4c855d39a" + }, + { + "nr": 103692, + "hash": "ed3b5fb83024f78853459791662cb608b84623c5" + }, + { + "nr": 97350, + "hash": "636cb33ee3a9568cf48b526f633ed07f1e930ba8" + }, + { + "nr": 101370, + "hash": "26efbdd836652fee30ab09f11b24a0c81ccada49" + }, + { + "nr": 104915, + "hash": "90fce05d8c324400267a52152368ce2eb1b39f42" + }, + { + "nr": 105267, + "hash": "414edbfcc4fcad0702669e96276f0395d97613db" + }, + { + "nr": 104368, + "hash": "21d011f7679c2e7a43f74f36517ab98f1bf6e48c" + }, + { + "nr": 101646, + "hash": "df050b41114f816afddedffff3e692814124441a" + }, + { + "nr": 104744, + "hash": "337ece5c29797edcacca980117bf462d5004207b" + }, + { + "nr": 104969, + "hash": "d61ebc58b40c3aaad6d2640dd2fee3a3f450ce54" + }, + { + "nr": 104667, + "hash": "d06b2b153e68f1a9311e5e819c862656bf9a2bc6" + }, + { + "nr": 104116, + "hash": "08775e2aaf8ed06caf4af88afd68de2006a0f51f" + }, + { + "nr": 105845, + "hash": "380c9375c4cfe137200ae428852c753e009d919a" + }, + { + "nr": 104817, + "hash": "8191b0b4ddbc9c9f8056303d4199f78756853288" + }, + { + "nr": 104705, + "hash": "1859f7bb34e2629b04830e0f685b7fd3f539d3c8" + }, + { + "nr": 104011, + "hash": "04e845e2361e02d362e1b767980e99a73dbf09c0" + }, + { + "nr": 104438, + "hash": "0bfae5bebd22b3260e6b38ebe41e04b8fbb123dc" + }, + { + "nr": 104161, + "hash": "e19ae8be54900992afce70b839423f463a2ec0df" + }, + { + "nr": 103794, + "hash": "9228a312021a00cc608a6af221e6d98fbe7a4e80" + }, + { + "nr": 104693, + "hash": "1e400e86bc3012617cb6a29ede96b4ee9c3285bb" + }, + { + "nr": 104944, + "hash": "2d6085f0ad184ef9925bf55c5c155d38cda7a05f" + }, + { + "nr": 104741, + "hash": "b211e399a7af08f2311d0d17769f660dfc4d3a8c" + }, + { + "nr": 104232, + "hash": "81222087861a8d28a80388beb4b0e5e9945fa5f7" + }, + { + "nr": 104248, + "hash": "2202fae8beb37c15b900c0e0b7db095b0154a91f" + }, + { + "nr": 105484, + "hash": "89c5fc65f7cc17be7bbb1391d253df6ecd1fcbe4" + }, + { + "nr": 104847, + "hash": "4c351187f6b715b9921f9b952619f278cf91354e" + }, + { + "nr": 104430, + "hash": "aa464c17a9d3476c5584dfcc3c9883696d6219da" + }, + { + "nr": 105913, + "hash": "a23993ad866b4db6b6fe8c9a2614f4169938c0f0" + }, + { + "nr": 105042, + "hash": "f7db6bd64618427414bc085f23bc5d0ccfaf6edf" + }, + { + "nr": 103515, + "hash": "b654d92bca5a5c38bd13ab22b5e6472531229e37" + }, + { + "nr": 103758, + "hash": "7ce2e381d3e0aef9fe1ea02c1e1acfa774b7848d" + }, + { + "nr": 101081, + "hash": "9cac7d22ec19d2c81e069554a8ced43fe4e5c6d2" + }, + { + "nr": 105734, + "hash": "4f4ab567642bcad5a80f909fb9d291a233dd2209" + }, + { + "nr": 102015, + "hash": "9bb564c78672f11534dff2bdb72302ea20e92a8b" + }, + { + "nr": 105003, + "hash": "8f35965d8c3dbb1ceb1cc0d2f02f752212606bd9" + }, + { + "nr": 96345, + "hash": "73664a03fc363d684cc236c7c83f546ee12b3b3a" + }, + { + "nr": 105915, + "hash": "4949bb7e1b77e7a6d2b017b6bbf71a84d8f71f05" + }, + { + "nr": 105712, + "hash": "c3fe8861ada049f85512b361ad1c7514834c8521" + }, + { + "nr": 92989, + "hash": "6cd647018816d4c19491d88228f3fa5c168072f6" + }, + { + "nr": 103564, + "hash": "ce02436b58b2ad629721d6c96072f89ace71574f" + }, + { + "nr": 105606, + "hash": "13a3ac235e20d036ef3c65f54f1be50b2b59e4fd" + }, + { + "nr": 104742, + "hash": "df6a622a0f9841e77fa4b018126a35fc9887228a" + } + ] } \ No newline at end of file diff --git a/releases/release-1.23/release-notes/sessions/maps-1637365719.json b/releases/release-1.23/release-notes/sessions/maps-1637365719.json index 17078631e45..f6bbb83b277 100644 --- a/releases/release-1.23/release-notes/sessions/maps-1637365719.json +++ b/releases/release-1.23/release-notes/sessions/maps-1637365719.json @@ -1,327 +1,327 @@ -{ - "mail": "61474540+Damans227@users.noreply.github.com", - "name": "Damans227", - "date": 1637365719, - "prs": [ - { - "nr": 105885, - "hash": "7808d9878f7494bafb3b2def8ab16f6007f50132" - }, - { - "nr": 105140, - "hash": "d98c5b56663522e81a14719343f85edf4a082b6a" - }, - { - "nr": 105945, - "hash": "58da3e6461a0a4957fc4cf9de9b03f530353a30e" - }, - { - "nr": 105983, - "hash": "b3af7811ac5da8c6ea46e610533022cb05b06208" - }, - { - "nr": 106098, - "hash": "76d32fe2ca05f3f0fc683fbb901e2b56190cdeb5" - }, - { - "nr": 104844, - "hash": "40ec428751aaa055a33ee1838e566910bf94880c" - }, - { - "nr": 106172, - "hash": "13364b5febabce8b85b65212044186ccbdcc5e90" - }, - { - "nr": 106030, - "hash": "1795ed006dee96b9ae732f5334ca748fe2dd621a" - }, - { - "nr": 106330, - "hash": "205b5ea28cfe66ec513a1c10f8a317f3cf00181d" - }, - { - "nr": 104743, - "hash": "bea1fa5767836ace2a1d49a392e0fd29ac7934c2" - }, - { - "nr": 106146, - "hash": "4394f5a3f0043cd77229128335ea532632301e43" - }, - { - "nr": 106045, - "hash": "6f55315090fabbff1edfc2525c497b286abee414" - }, - { - "nr": 106058, - "hash": "fc8acd44738d082bd5da9a56bbbd3b1df2dff3fd" - }, - { - "nr": 102917, - "hash": "ebbbdb30b9b6e35e3acf6d63ffe0a2bdf9b2ca2a" - }, - { - "nr": 94986, - "hash": "25d7b286e7cb54c9454c1db4415a71c65a2a70fe" - }, - { - "nr": 105744, - "hash": "58446ceeee18e6bf35558f2c5d77878d9ee22d89" - }, - { - "nr": 106266, - "hash": "afeb14c70291c55b20199a1b0e00ed604827b067" - }, - { - "nr": 106169, - "hash": "14af4b0ba553f4145ef2ddd5160debd44079a450" - }, - { - "nr": 105773, - "hash": "d909d2418a120dfea951c5e766822313dd333e59" - }, - { - "nr": 105968, - "hash": "1a08ae2e557c7c6f383a03857c78d7b02d289e26" - }, - { - "nr": 106271, - "hash": "5fba7c3095c964042292fff5eab4afb3bfac5345" - }, - { - "nr": 103095, - "hash": "a3158919d63410a2c76852ed4ed70b40fcef3ad6" - }, - { - "nr": 103299, - "hash": "e15b1d828e3bc1c8b4f5a855e4f24357fd17627a" - }, - { - "nr": 106389, - "hash": "2f93fb78781fe360bca28060421982d4e4a5a4ec" - }, - { - "nr": 106317, - "hash": "30ad062ab54c3556e4c7e5fe9c74f9c3cfebd328" - }, - { - "nr": 106306, - "hash": "ac85b34b6b4327cb1531dafd38998b1a7958431a" - }, - { - "nr": 106190, - "hash": "ec6fbb8ada9d3efd0ace84b359c470f81d4e9d31" - }, - { - "nr": 106126, - "hash": "6678af59f0bd62bb895645fbdccd7be46032cc86" - }, - { - "nr": 103526, - "hash": "b6fe753e6f346758c2cdde72d0cfa6793ca91937" - }, - { - "nr": 105611, - "hash": "177f9f876ac3d7592802d586e4c4d5dd3e4ed972" - }, - { - "nr": 106123, - "hash": "ac43170286cae0344e2a721046e3a46969280ed0" - }, - { - "nr": 106301, - "hash": "450a58f3ce7d860f4410b610d4af51fdd7d503c8" - }, - { - "nr": 106163, - "hash": "1891fd78a206479de3dbb25858d309fa5788cc61" - }, - { - "nr": 105295, - "hash": "1230ee224fc85cb401d52896aced9130d0e7d109" - }, - { - "nr": 106219, - "hash": "1df310dbd2faddb36c1c6c492f347ed238eae9a5" - }, - { - "nr": 105940, - "hash": "85646510112a5b5c0d78dc52bcb99bd238114217" - }, - { - "nr": 105997, - "hash": "5149bbfe4ed37fcf682e93ba62e262e1aede7346" - }, - { - "nr": 102393, - "hash": "60e7954e47c5c937fc328463ba7406d6795a407b" - }, - { - "nr": 105967, - "hash": "4fc98d93a32eb4b3b8badec9799308590b1f723f" - }, - { - "nr": 102534, - "hash": "07651ad72e719e637ebdab693068c4139814d6cd" - }, - { - "nr": 106209, - "hash": "40be8d9e7dcc52a8fab6b5c37a97d4fc5ae5d8fe" - }, - { - "nr": 105776, - "hash": "d13ad65ad378760480143fd6bec42cafb964f14a" - }, - { - "nr": 106433, - "hash": "c669e3181fb88da5a6d3fb38081665e0c8df90a5" - }, - { - "nr": 105992, - "hash": "b87f61ea95cd5a5119a4624f093b1a6f1096ecc1" - }, - { - "nr": 106323, - "hash": "89c11eb290d4a76925383ecb637e29d551e4ec80" - }, - { - "nr": 104636, - "hash": "7f332eb96d896af5fe86d5f8edf14ea039400cf9" - }, - { - "nr": 106228, - "hash": "e8f23ef292f172f6f327f7c61128ddfad2f7230e" - }, - { - "nr": 106122, - "hash": "2744a1174c7d12288b08a7aef6a4acb00af417ab" - }, - { - "nr": 106154, - "hash": "7d07ee885090eef15c439e2acf680f07777d028e" - }, - { - "nr": 106201, - "hash": "865b0a9e8b23afbaf0245a362e1b5d9f72914647" - }, - { - "nr": 106150, - "hash": "638f41b9ba1435adb78792b81327d66ef2c8e49b" - }, - { - "nr": 104722, - "hash": "2e3607ad128057c64de6a4e0ff3697cb4afce34a" - }, - { - "nr": 105292, - "hash": "3bcfd4786f7f7cafeb7d41f9facc31f59c0ba336" - }, - { - "nr": 105571, - "hash": "2930e9a10a9124434147c534290a3333bd36ad0c" - }, - { - "nr": 105706, - "hash": "0f5a8730f70549764504438caac33af4681c32f6" - }, - { - "nr": 105904, - "hash": "b41e683a130df27bf36ee55758ef8ad0bca33b8d" - }, - { - "nr": 105512, - "hash": "6ef7f8c364691701bf95491afc1cb738482f6257" - }, - { - "nr": 106102, - "hash": "aef24f6eb1bca80e8dc8fbaf65d457119c474992" - }, - { - "nr": 104650, - "hash": "f0343b839ee36abc30f4d918369f31b3332b8fb6" - }, - { - "nr": 105934, - "hash": "22e842347742d86d65a968f7f42a70901b5477b3" - }, - { - "nr": 106090, - "hash": "14609ce37bede9aa2fb273c0c262efb58d09aaa4" - }, - { - "nr": 106455, - "hash": "3ca330a848178fdafbe7a2c88fe80b11fcce0bc8" - }, - { - "nr": 106382, - "hash": "8e60e91796432afea23e1328b072ad5bf94365ed" - }, - { - "nr": 105421, - "hash": "9858c30b6da11d756458d81eff05b624bc7b16d9" - }, - { - "nr": 106289, - "hash": "443fdbfb0f96a68c27071c5bb65e5c37745011f9" - }, - { - "nr": 106017, - "hash": "ec3a25143be3a9d8bb5f555c98a5b0f55c1c5280" - }, - { - "nr": 105437, - "hash": "24e02b5c2c64f9bba83249f818f334d9e5abdcd8" - }, - { - "nr": 104287, - "hash": "2184fbbb34eb8736d50e7e2789e2321fe85c74d4" - }, - { - "nr": 105969, - "hash": "ce66ca0f1a5d00c8d3d55c281fec68801afb2641" - }, - { - "nr": 106091, - "hash": "6d8bed92731df29efbd77c11e06d7ebe7754090e" - }, - { - "nr": 103447, - "hash": "fd9be23ee9d96809dfac57f72f34bd22152f8f57" - }, - { - "nr": 105873, - "hash": "7b763e3ea67b4e3add068a9ae80a5e355ac8b81c" - }, - { - "nr": 105741, - "hash": "1d47168551c3ee89b9f4f75c049a2cc619bd806e" - }, - { - "nr": 104613, - "hash": "b9b762460292be8b109d19099139652fcd73f69b" - }, - { - "nr": 105794, - "hash": "e78984a268deb690b43498fbd20182d6e4c39072" - }, - { - "nr": 106051, - "hash": "72aeae91203bfdedef42923634eb38d2d3f900d7" - }, - { - "nr": 106195, - "hash": "54ac40ebadd6fc222c79870678e5bbc62cf6c9b5" - }, - { - "nr": 104792, - "hash": "577a8991f8ca9c123c77cb3dde23802b9fb978a7" - }, - { - "nr": 105941, - "hash": "736d80b1f8ef2e6091d3274d02b6c84926d54469" - }, - { - "nr": 106089, - "hash": "c7b7f85889035da4e1caea4dbbeb016d53afcb94" - } - ] +{ + "mail": "61474540+Damans227@users.noreply.github.com", + "name": "Damans227", + "date": 1637365719, + "prs": [ + { + "nr": 105885, + "hash": "7808d9878f7494bafb3b2def8ab16f6007f50132" + }, + { + "nr": 105140, + "hash": "d98c5b56663522e81a14719343f85edf4a082b6a" + }, + { + "nr": 105945, + "hash": "58da3e6461a0a4957fc4cf9de9b03f530353a30e" + }, + { + "nr": 105983, + "hash": "b3af7811ac5da8c6ea46e610533022cb05b06208" + }, + { + "nr": 106098, + "hash": "76d32fe2ca05f3f0fc683fbb901e2b56190cdeb5" + }, + { + "nr": 104844, + "hash": "40ec428751aaa055a33ee1838e566910bf94880c" + }, + { + "nr": 106172, + "hash": "13364b5febabce8b85b65212044186ccbdcc5e90" + }, + { + "nr": 106030, + "hash": "1795ed006dee96b9ae732f5334ca748fe2dd621a" + }, + { + "nr": 106330, + "hash": "205b5ea28cfe66ec513a1c10f8a317f3cf00181d" + }, + { + "nr": 104743, + "hash": "bea1fa5767836ace2a1d49a392e0fd29ac7934c2" + }, + { + "nr": 106146, + "hash": "4394f5a3f0043cd77229128335ea532632301e43" + }, + { + "nr": 106045, + "hash": "6f55315090fabbff1edfc2525c497b286abee414" + }, + { + "nr": 106058, + "hash": "fc8acd44738d082bd5da9a56bbbd3b1df2dff3fd" + }, + { + "nr": 102917, + "hash": "ebbbdb30b9b6e35e3acf6d63ffe0a2bdf9b2ca2a" + }, + { + "nr": 94986, + "hash": "25d7b286e7cb54c9454c1db4415a71c65a2a70fe" + }, + { + "nr": 105744, + "hash": "58446ceeee18e6bf35558f2c5d77878d9ee22d89" + }, + { + "nr": 106266, + "hash": "afeb14c70291c55b20199a1b0e00ed604827b067" + }, + { + "nr": 106169, + "hash": "14af4b0ba553f4145ef2ddd5160debd44079a450" + }, + { + "nr": 105773, + "hash": "d909d2418a120dfea951c5e766822313dd333e59" + }, + { + "nr": 105968, + "hash": "1a08ae2e557c7c6f383a03857c78d7b02d289e26" + }, + { + "nr": 106271, + "hash": "5fba7c3095c964042292fff5eab4afb3bfac5345" + }, + { + "nr": 103095, + "hash": "a3158919d63410a2c76852ed4ed70b40fcef3ad6" + }, + { + "nr": 103299, + "hash": "e15b1d828e3bc1c8b4f5a855e4f24357fd17627a" + }, + { + "nr": 106389, + "hash": "2f93fb78781fe360bca28060421982d4e4a5a4ec" + }, + { + "nr": 106317, + "hash": "30ad062ab54c3556e4c7e5fe9c74f9c3cfebd328" + }, + { + "nr": 106306, + "hash": "ac85b34b6b4327cb1531dafd38998b1a7958431a" + }, + { + "nr": 106190, + "hash": "ec6fbb8ada9d3efd0ace84b359c470f81d4e9d31" + }, + { + "nr": 106126, + "hash": "6678af59f0bd62bb895645fbdccd7be46032cc86" + }, + { + "nr": 103526, + "hash": "b6fe753e6f346758c2cdde72d0cfa6793ca91937" + }, + { + "nr": 105611, + "hash": "177f9f876ac3d7592802d586e4c4d5dd3e4ed972" + }, + { + "nr": 106123, + "hash": "ac43170286cae0344e2a721046e3a46969280ed0" + }, + { + "nr": 106301, + "hash": "450a58f3ce7d860f4410b610d4af51fdd7d503c8" + }, + { + "nr": 106163, + "hash": "1891fd78a206479de3dbb25858d309fa5788cc61" + }, + { + "nr": 105295, + "hash": "1230ee224fc85cb401d52896aced9130d0e7d109" + }, + { + "nr": 106219, + "hash": "1df310dbd2faddb36c1c6c492f347ed238eae9a5" + }, + { + "nr": 105940, + "hash": "85646510112a5b5c0d78dc52bcb99bd238114217" + }, + { + "nr": 105997, + "hash": "5149bbfe4ed37fcf682e93ba62e262e1aede7346" + }, + { + "nr": 102393, + "hash": "60e7954e47c5c937fc328463ba7406d6795a407b" + }, + { + "nr": 105967, + "hash": "4fc98d93a32eb4b3b8badec9799308590b1f723f" + }, + { + "nr": 102534, + "hash": "07651ad72e719e637ebdab693068c4139814d6cd" + }, + { + "nr": 106209, + "hash": "40be8d9e7dcc52a8fab6b5c37a97d4fc5ae5d8fe" + }, + { + "nr": 105776, + "hash": "d13ad65ad378760480143fd6bec42cafb964f14a" + }, + { + "nr": 106433, + "hash": "c669e3181fb88da5a6d3fb38081665e0c8df90a5" + }, + { + "nr": 105992, + "hash": "b87f61ea95cd5a5119a4624f093b1a6f1096ecc1" + }, + { + "nr": 106323, + "hash": "89c11eb290d4a76925383ecb637e29d551e4ec80" + }, + { + "nr": 104636, + "hash": "7f332eb96d896af5fe86d5f8edf14ea039400cf9" + }, + { + "nr": 106228, + "hash": "e8f23ef292f172f6f327f7c61128ddfad2f7230e" + }, + { + "nr": 106122, + "hash": "2744a1174c7d12288b08a7aef6a4acb00af417ab" + }, + { + "nr": 106154, + "hash": "7d07ee885090eef15c439e2acf680f07777d028e" + }, + { + "nr": 106201, + "hash": "865b0a9e8b23afbaf0245a362e1b5d9f72914647" + }, + { + "nr": 106150, + "hash": "638f41b9ba1435adb78792b81327d66ef2c8e49b" + }, + { + "nr": 104722, + "hash": "2e3607ad128057c64de6a4e0ff3697cb4afce34a" + }, + { + "nr": 105292, + "hash": "3bcfd4786f7f7cafeb7d41f9facc31f59c0ba336" + }, + { + "nr": 105571, + "hash": "2930e9a10a9124434147c534290a3333bd36ad0c" + }, + { + "nr": 105706, + "hash": "0f5a8730f70549764504438caac33af4681c32f6" + }, + { + "nr": 105904, + "hash": "b41e683a130df27bf36ee55758ef8ad0bca33b8d" + }, + { + "nr": 105512, + "hash": "6ef7f8c364691701bf95491afc1cb738482f6257" + }, + { + "nr": 106102, + "hash": "aef24f6eb1bca80e8dc8fbaf65d457119c474992" + }, + { + "nr": 104650, + "hash": "f0343b839ee36abc30f4d918369f31b3332b8fb6" + }, + { + "nr": 105934, + "hash": "22e842347742d86d65a968f7f42a70901b5477b3" + }, + { + "nr": 106090, + "hash": "14609ce37bede9aa2fb273c0c262efb58d09aaa4" + }, + { + "nr": 106455, + "hash": "3ca330a848178fdafbe7a2c88fe80b11fcce0bc8" + }, + { + "nr": 106382, + "hash": "8e60e91796432afea23e1328b072ad5bf94365ed" + }, + { + "nr": 105421, + "hash": "9858c30b6da11d756458d81eff05b624bc7b16d9" + }, + { + "nr": 106289, + "hash": "443fdbfb0f96a68c27071c5bb65e5c37745011f9" + }, + { + "nr": 106017, + "hash": "ec3a25143be3a9d8bb5f555c98a5b0f55c1c5280" + }, + { + "nr": 105437, + "hash": "24e02b5c2c64f9bba83249f818f334d9e5abdcd8" + }, + { + "nr": 104287, + "hash": "2184fbbb34eb8736d50e7e2789e2321fe85c74d4" + }, + { + "nr": 105969, + "hash": "ce66ca0f1a5d00c8d3d55c281fec68801afb2641" + }, + { + "nr": 106091, + "hash": "6d8bed92731df29efbd77c11e06d7ebe7754090e" + }, + { + "nr": 103447, + "hash": "fd9be23ee9d96809dfac57f72f34bd22152f8f57" + }, + { + "nr": 105873, + "hash": "7b763e3ea67b4e3add068a9ae80a5e355ac8b81c" + }, + { + "nr": 105741, + "hash": "1d47168551c3ee89b9f4f75c049a2cc619bd806e" + }, + { + "nr": 104613, + "hash": "b9b762460292be8b109d19099139652fcd73f69b" + }, + { + "nr": 105794, + "hash": "e78984a268deb690b43498fbd20182d6e4c39072" + }, + { + "nr": 106051, + "hash": "72aeae91203bfdedef42923634eb38d2d3f900d7" + }, + { + "nr": 106195, + "hash": "54ac40ebadd6fc222c79870678e5bbc62cf6c9b5" + }, + { + "nr": 104792, + "hash": "577a8991f8ca9c123c77cb3dde23802b9fb978a7" + }, + { + "nr": 105941, + "hash": "736d80b1f8ef2e6091d3274d02b6c84926d54469" + }, + { + "nr": 106089, + "hash": "c7b7f85889035da4e1caea4dbbeb016d53afcb94" + } + ] } \ No newline at end of file diff --git a/releases/release-1.23/release-notes/sessions/maps-1637950799.json b/releases/release-1.23/release-notes/sessions/maps-1637950799.json index bde84ba1567..c3abed69cae 100644 --- a/releases/release-1.23/release-notes/sessions/maps-1637950799.json +++ b/releases/release-1.23/release-notes/sessions/maps-1637950799.json @@ -1,39 +1,39 @@ -{ - "mail": "cicih@google.com", - "name": "cici37", - "date": 1637950799, - "prs": [ - { - "nr": 105916, - "hash": "8239ed406d271fe81f582d9cafbcaadc2080d888" - }, - { - "nr": 106507, - "hash": "28ecffdd0c95b5e0cd58fb4229b06aa91a70117d" - }, - { - "nr": 106510, - "hash": "cbab8f10a99d6527f80e974ecdb7e2c47a996a0a" - }, - { - "nr": 106501, - "hash": "95db41d801c6a308c4978d1da6e2f8787bef481c" - }, - { - "nr": 102915, - "hash": "5ff9243610a271a5e7d2055a4a4b4b994bad81b2" - }, - { - "nr": 99728, - "hash": "e88fe0e8d75a65a7b7a066a1454813bd7a433a57" - }, - { - "nr": 106520, - "hash": "cff9b848734abd2915d44b4e104c988c8776cb26" - }, - { - "nr": 96345, - "hash": "90eb6c23e063ac6f559eec591f4f9bdedcd9d512" - } - ] +{ + "mail": "cicih@google.com", + "name": "cici37", + "date": 1637950799, + "prs": [ + { + "nr": 105916, + "hash": "8239ed406d271fe81f582d9cafbcaadc2080d888" + }, + { + "nr": 106507, + "hash": "28ecffdd0c95b5e0cd58fb4229b06aa91a70117d" + }, + { + "nr": 106510, + "hash": "cbab8f10a99d6527f80e974ecdb7e2c47a996a0a" + }, + { + "nr": 106501, + "hash": "95db41d801c6a308c4978d1da6e2f8787bef481c" + }, + { + "nr": 102915, + "hash": "5ff9243610a271a5e7d2055a4a4b4b994bad81b2" + }, + { + "nr": 99728, + "hash": "e88fe0e8d75a65a7b7a066a1454813bd7a433a57" + }, + { + "nr": 106520, + "hash": "cff9b848734abd2915d44b4e104c988c8776cb26" + }, + { + "nr": 96345, + "hash": "90eb6c23e063ac6f559eec591f4f9bdedcd9d512" + } + ] } \ No newline at end of file diff --git a/releases/release-1.23/release-notes/sessions/maps-1638814441.json b/releases/release-1.23/release-notes/sessions/maps-1638814441.json index 045ba785a7b..c5bd52de170 100644 --- a/releases/release-1.23/release-notes/sessions/maps-1638814441.json +++ b/releases/release-1.23/release-notes/sessions/maps-1638814441.json @@ -1,15 +1,15 @@ -{ - "mail": "cicih@google.com", - "name": "cici37", - "date": 1638814441, - "prs": [ - { - "nr": 106808, - "hash": "b39f50fa72281e1d7a765f2ce56265b257cbdd42" - }, - { - "nr": 106661, - "hash": "057e399581b0aeb30ac8578eba5edf4fed5f40b5" - } - ] +{ + "mail": "cicih@google.com", + "name": "cici37", + "date": 1638814441, + "prs": [ + { + "nr": 106808, + "hash": "b39f50fa72281e1d7a765f2ce56265b257cbdd42" + }, + { + "nr": 106661, + "hash": "057e399581b0aeb30ac8578eba5edf4fed5f40b5" + } + ] } \ No newline at end of file diff --git a/releases/release-1.23/release-team.md b/releases/release-1.23/release-team.md index df011149fd4..fd58012b0b2 100644 --- a/releases/release-1.23/release-team.md +++ b/releases/release-1.23/release-team.md @@ -1,17 +1,17 @@ -# Kubernetes 1.23 Release Team - -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|----------|----------------------------------|----------------------------------------| -| Lead | Rey Lejano ([@reylejano](https://github.com/reylejano)) / Slack: `@rlejano` | James Laverack ([@JamesLaverack](https://github.com/JamesLaverack) / Slack: `@james.laverack`), Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@Joseph`), Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkorbi`), Menna Elmasry ([@MonzElmasry](https://github.com/MonzElmasry) / Slack: `@Menna`) | -| Enhancements | Xander Grzywinski ([@salaxander](https://github.com/salaxander)) / Slack: `@Xander` | Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`), Kevin Delgado ([@kevindelgado](https://github.com/kevindelgado) / Slack: `@kevindelgado`), Laura Lorenz ([@lauralorenz](https://github.com/lauralorenz) / Slack: `@Laura Lorenz`), Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack `@psaggu`), Supriya Premkumar ([@supriya-premkumar](https://github.com/supriya-premkumar) / Slack: `@supriya-premkumar`) | -| CI Signal | Hossein Salahi ([@encodeflush](https://github.com/encodeflush)) / Slack: `@hsalahi` | Arsh Sharma ([@RinkiyaKeDad](https://github.com/RinkiyaKeDad) / Slack: `@arsh`), Calvin Ho ([@calvh](https://github.com/calvh) / Slack: `@calvin`), Leonard Vincent Simon Pahlke ([@leonardpahlke](https://github.com/leonardpahlke) / Slack: `@lvspahlke`), Rajula Vineet Reddy ([@rajula96reddy](https://github.com/rajula96reddy) / Slack: `@rajula96reddy`), Simran Gupta ([@simrangupta234](https://github.com/simrangupta234) / Slack: `@Simran`) | -| Bug Triage | Christoph Voigt ([@voigt](https://github.com/voigt)) / Slack: `@Christoph Voigt` | Jyoti Mahapatra ([@jyotimahapatra](https://github.com/jyotimahapatra) / Slack: `@Jyoti Mahapatra`), Nilima Chavan ([@NilimaC04](https://github.com/NilimaC04) / Slack: `@Nilima`), Ritu Diwan Panjwani ([@ritpanjw](https://github.com/ritpanjw) / Slack: `@ritpanjw`), Varsha Prasad Narsing ([@varshaprasad96](https://github.com/varshaprasad96) / Slack: `@Varsha`), Xinyuan Cai ([@nannancy](https://github.com/nannancy) / Slack: `@Xinyuan Cai`) | -| Docs | Jesse Butler ([@jlbutler](https://github.com/jlbutler)) / Slack: `@Jesse Butler` | Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@mehabhalodiya`), Chris Negus ([@chrisnegus](https://github.com/chrisnegus) / Slack: `@Chris Negus`), Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `@ramrodo`), Nate Waddington ([@nate-double-u](https://github.com/nate-double-u) / Slack: `@nate-double-u`) | -| Release Notes | Cici Huang ([@cici37](https://github.com/cici37)) / Slack: `@cici37` | Daman Arora ([@Damans227](https://github.com/Damans227) / Slack: `@Daman`), Lucas Dwyer ([@AuraSinis](https://github.com/AuraSinis) / Slack: `@Lucas Dwyer`), Parul Sahoo ([@parul5sahoo](https://github.com/parul5sahoo) / Slack: `@parul_sahoo`), Sam Cogan ([@sam-cogan](https://github.com/sam-cogan) / Slack: `@samcogan`) | -| Communications | Karen Chu ([@karenhchu](https://github.com/karenhchu)) / Slack: `@karenhchu` | Ciara Swann ([@cccswann](https://github.com/cccswann) / Slack: `@ciara`), Kaslin Fields ([@kaslin](https://github.com/kaslin) / Slack: `@kaslin`), Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`), Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@mickey`) | -| Emeritus Adviser | Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard)) / Slack: `@jerickar` | | -| Branch Manager | Verónica López ([@Verolop](https://github.com/Verolop)) / Slack: `@veronica` | Nabarun Pal ([@palnabarun](https://github.com/palnabarun)) / Slack: `@palnabarun` | - -Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.23, once the 1.23 release cycle concludes. +# Kubernetes 1.23 Release Team + +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|----------|----------------------------------|----------------------------------------| +| Lead | Rey Lejano ([@reylejano](https://github.com/reylejano)) / Slack: `@rlejano` | James Laverack ([@JamesLaverack](https://github.com/JamesLaverack) / Slack: `@james.laverack`), Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@Joseph`), Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkorbi`), Menna Elmasry ([@MonzElmasry](https://github.com/MonzElmasry) / Slack: `@Menna`) | +| Enhancements | Xander Grzywinski ([@salaxander](https://github.com/salaxander)) / Slack: `@Xander` | Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`), Kevin Delgado ([@kevindelgado](https://github.com/kevindelgado) / Slack: `@kevindelgado`), Laura Lorenz ([@lauralorenz](https://github.com/lauralorenz) / Slack: `@Laura Lorenz`), Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack `@psaggu`), Supriya Premkumar ([@supriya-premkumar](https://github.com/supriya-premkumar) / Slack: `@supriya-premkumar`) | +| CI Signal | Hossein Salahi ([@encodeflush](https://github.com/encodeflush)) / Slack: `@hsalahi` | Arsh Sharma ([@RinkiyaKeDad](https://github.com/RinkiyaKeDad) / Slack: `@arsh`), Calvin Ho ([@calvh](https://github.com/calvh) / Slack: `@calvin`), Leonard Vincent Simon Pahlke ([@leonardpahlke](https://github.com/leonardpahlke) / Slack: `@lvspahlke`), Rajula Vineet Reddy ([@rajula96reddy](https://github.com/rajula96reddy) / Slack: `@rajula96reddy`), Simran Gupta ([@simrangupta234](https://github.com/simrangupta234) / Slack: `@Simran`) | +| Bug Triage | Christoph Voigt ([@voigt](https://github.com/voigt)) / Slack: `@Christoph Voigt` | Jyoti Mahapatra ([@jyotimahapatra](https://github.com/jyotimahapatra) / Slack: `@Jyoti Mahapatra`), Nilima Chavan ([@NilimaC04](https://github.com/NilimaC04) / Slack: `@Nilima`), Ritu Diwan Panjwani ([@ritpanjw](https://github.com/ritpanjw) / Slack: `@ritpanjw`), Varsha Prasad Narsing ([@varshaprasad96](https://github.com/varshaprasad96) / Slack: `@Varsha`), Xinyuan Cai ([@nannancy](https://github.com/nannancy) / Slack: `@Xinyuan Cai`) | +| Docs | Jesse Butler ([@jlbutler](https://github.com/jlbutler)) / Slack: `@Jesse Butler` | Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@mehabhalodiya`), Chris Negus ([@chrisnegus](https://github.com/chrisnegus) / Slack: `@Chris Negus`), Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `@ramrodo`), Nate Waddington ([@nate-double-u](https://github.com/nate-double-u) / Slack: `@nate-double-u`) | +| Release Notes | Cici Huang ([@cici37](https://github.com/cici37)) / Slack: `@cici37` | Daman Arora ([@Damans227](https://github.com/Damans227) / Slack: `@Daman`), Lucas Dwyer ([@AuraSinis](https://github.com/AuraSinis) / Slack: `@Lucas Dwyer`), Parul Sahoo ([@parul5sahoo](https://github.com/parul5sahoo) / Slack: `@parul_sahoo`), Sam Cogan ([@sam-cogan](https://github.com/sam-cogan) / Slack: `@samcogan`) | +| Communications | Karen Chu ([@karenhchu](https://github.com/karenhchu)) / Slack: `@karenhchu` | Ciara Swann ([@cccswann](https://github.com/cccswann) / Slack: `@ciara`), Kaslin Fields ([@kaslin](https://github.com/kaslin) / Slack: `@kaslin`), Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`), Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@mickey`) | +| Emeritus Adviser | Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard)) / Slack: `@jerickar` | | +| Branch Manager | Verónica López ([@Verolop](https://github.com/Verolop)) / Slack: `@veronica` | Nabarun Pal ([@palnabarun](https://github.com/palnabarun)) / Slack: `@palnabarun` | + +Review the [Release Managers page](/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](/releases/patch-releases.md). It will be updated to include 1.23, once the 1.23 release cycle concludes. diff --git a/releases/release-1.24/README.md b/releases/release-1.24/README.md index a6357762a69..59c0f0ee7c0 100644 --- a/releases/release-1.24/README.md +++ b/releases/release-1.24/README.md @@ -1,127 +1,127 @@ ---- -title: "Kubernetes 1.24 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.24 Stargazer - -<p align="center"> - <img src="./logo/main-logo.png" height="500" alt="Kubernetes 1.24 Release Logo" /> -</p> - -Kubernetes 1.24 is named *Stargazer*, for all those that would look to the night sky. ✨ - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.24/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.24/release-team.md) -* [Meeting Minutes](http://bit.ly/k8s124-releasemtg) (members of [release-team@] receive meeting invites) -* [v1.24 Release Calendar][k8s124-calendar] -* Contact: [#sig-release] on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail -* [Internal Contact Info] (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Sheet](https://bit.ly/k8s124-enhancements) -* [Feature blog Tracking Sheet](http://bit.ly/k8s124-feature-blog) -* [Bug Triage Tracking Sheet](https://bit.ly/k8s124-bug-triage-tracking) -* [CI Signal Project Board & Issue Tracking](https://github.com/orgs/kubernetes/projects/68) -* [Retrospective Document][Retrospective Document] -* [kubernetes/sig-release v1.24 milestone](https://github.com/kubernetes/kubernetes/milestone/56) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## Summary - -The 1.24 release cycle is as follows: - -- **Monday 10th January 2022**: Week 1 — Release cycle begins -- **Thursday 27th January 2022**: Week 3 — [Production Readiness Soft Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) -- **02:00 UTC Friday 4th February 2022** / **18:00 PST Thursday 3rd February 2022** : Week 4 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **Wednesday 23rd March 2022**: Week 11 — [Release Retrospective][Retrospective Document] part 1 -- **01:00 UTC Wednesday 30th March 2022** / **02:00 BST Wednesday 30th March 2022** / **18:00 PDT Tuesday 29th March 2022**: Week 12 — [Code Freeze](../release_phases.md#code-freeze) -- **01:00 UTC Wednesday 6th April 2022** / **02:00 BST Wednesday 6th April 2022** / **18:00 PDT Tuesday 5th April 2022**: Week 13 — [Test Freeze](../release_phases.md#test-freeze) -- **Tuesday 12th April 2022**: Week 14 — Docs must be completed and reviewed -- **Tuesday 3rd May 2022**: Week 17 — Kubernetes v1.24.0 released -- **Wednesday 11th May 2022**: Week 18 — [Release Retrospective][Retrospective Document] part 2 -- **Thursday 12th May 2022**: Week 18 — [Release Retrospective][Retrospective Document] part 3 - -## Timeline - -| **What** | **Who** | **When** | **Week** | **CI Signal** | -|---|---|-------|---|---| -| Start of Release Cycle | Lead | Monday 10th January 2022 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Monday 10th January 2022 | week 1 | | -| Schedule finalized | Lead | Friday 14th January 2022 | week 1 | | -| Team finalized | Lead | Friday 14th January 2022 | week 1 | | -| Start Release Notes Draft | Release Notes Lead | Tuesday 25th January 2022 | week 3 | | -| Production Readiness Soft Freeze | Enhancements Lead | Thursday 27th January 2022 | week 3 | | -| 1.24.0-alpha.2 released | Branch Manager | Tuesday 1st February 2022 | Week 4 | | -| **Begin [Enhancements Freeze]** | Enhancements Lead | 02:00 UTC Friday 4th February 2022 / 18:00 PST Thursday 3rd February 2022 | week 4 | [master-blocking], [master-informing] | -| 1.24.0-alpha.3 released | Branch Manager | Tuesday 15th February 2022 | Week 6 | | -| Begin Friday APAC-friendly meetings | Lead | Friday 25th February 2022 | Week 7 | | -| (most of) North America enters Daylight Savings Time | | Sunday 13th March 2022 | | | -| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 21st March 2022 | week 11 | [1.24-blocking], [master-blocking], [master-informing] | -| **Call for [Exceptions][Exception]** | Lead | Monday 21st March 2022 | week 11 | | -| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Monday 21st March 2022 | week 11 | | -| **Begin Feature blog freeze** | Comms Lead | 01:00 UTC Wednesday 23rd March 2022 / 18:00 PDT Tuesday 22nd March 2022 | week 11 | | -| 1.24.0-alpha.4 released | Branch Manager | Tuesday 22nd March 2022 | Week 11 | | -| Release retrospective part 1 | Community | 17:00 UTC Wednesday 23rd March 2022 / 10:00 PDT Wednesday 23rd March 2022 | week 11 | | -| (most of) Europe enters Daylight Savings Time | | Sunday 27th March 2022 | | | -| Burndown Meetings daily | Lead | Monday 28th March 2022 | week 12 | | -| **Begin [Code Freeze]** | Branch Manager | 01:00 UTC Wednesday 30th March 2022 / 02:00 BST Wednesday 30th March 2022 / 18:00 PDT Tuesday 29th March 2022 | week 12 | | -| 1.24.0-beta.0 released | Branch Manager | Wednesday 30th March 2022 | week 12 | | -| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 31st March 2022 | week 12 | | -| Deprecations and Removals blog published | Comms | Thursday 31st March 2022 | week 12 | | -| **[Test Freeze]** | Branch Manager | 01:00 UTC Wednesday 6th April 2022 / 02:00 BST Wednesday 6th April 2022 / 18:00 PDT Tuesday 5th April 2022 | week 13 | | -| Docs deadline — PRs ready for review | Docs Lead | Tuesday 5th April 2022 | week 13 | | -| Start final draft of Release Notes | Release Notes Lead | Tuesday 5th April 2022 | week 13 | | -| Release blog ready to review | Comms / Docs | 01:00 UTC Wednesday 6th April 2022 / 02:00 BST Wednesday 6th April 2022 / 18:00 PDT Tuesday 5th April 2022 | week 13 | | -| Docs complete — All PRs reviewed and ready to merge | Docs Lead | Tuesday 12th April 2022 | week 14 | | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Tuesday 12th April 2022 | week 14 | | -| Release Notes complete — reviewed & merged to `k/sig-release` | Release Notes Lead | 01:00 UTC Friday 15th April 2022 / 02:00 BST Friday 15th April 2022 / 18:00 PDT Thursday 14th April 2022 | week 14 | | -| 1.24.0-rc.0 released | Branch Manager | Tuesday 19th April 2022 | week 15 | | -| release-1.24 branch created | Branch Manager | Tuesday 19th April 2022 | week 15 | | -| release-1.24 jobs created | Branch Manager | Tuesday 19th April 2022 | week 15 | | -| 1.24.0-rc.1 released | Branch Manager | Tuesday 26th April 2022 | week 16 | | -| **v1.24.0 released** | Branch Manager | Tuesday 3rd May 2022 | week 17 | | -| Release blog published | Comms | Tuesday 3rd May 2022 | week 17 | | -| **[Thaw]** | Branch Manager | Tuesday 3rd May 2022 | week 17 | | -| Release retrospective part 2 (16:00 UTC) | Community | Wednesday 11th May 2022 | week 18 | | -| Release retrospective part 3 (16:00 UTC) | Community | Thursday 12th May 2022 | week 18 | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[k8s124-calendar]: https://bit.ly/k8s-release-cal -[Internal Contact Info]: https://bit.ly/k8s124-contacts -[Retrospective Document]: https://bit.ly/k8s124-retro - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Thaw]: ../release_phases.md#thaw -[Test Freeze]: ../release_phases.md#test-freeze - -[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.24-blocking]: https://testgrid.k8s.io/sig-release-1.24-blocking#Summary - -[exception requests]: ../EXCEPTIONS.md -[release phases document]: ../release_phases.md +--- +title: "Kubernetes 1.24 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.24 Stargazer + +<p align="center"> + <img src="./logo/main-logo.png" height="500" alt="Kubernetes 1.24 Release Logo" /> +</p> + +Kubernetes 1.24 is named *Stargazer*, for all those that would look to the night sky. ✨ + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.24/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.24/release-team.md) +* [Meeting Minutes](http://bit.ly/k8s124-releasemtg) (members of [release-team@] receive meeting invites) +* [v1.24 Release Calendar][k8s124-calendar] +* Contact: [#sig-release] on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail +* [Internal Contact Info] (accessible only to members of [release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Sheet](https://bit.ly/k8s124-enhancements) +* [Feature blog Tracking Sheet](http://bit.ly/k8s124-feature-blog) +* [Bug Triage Tracking Sheet](https://bit.ly/k8s124-bug-triage-tracking) +* [CI Signal Project Board & Issue Tracking](https://github.com/orgs/kubernetes/projects/68) +* [Retrospective Document][Retrospective Document] +* [kubernetes/sig-release v1.24 milestone](https://github.com/kubernetes/kubernetes/milestone/56) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## Summary + +The 1.24 release cycle is as follows: + +- **Monday 10th January 2022**: Week 1 — Release cycle begins +- **Thursday 27th January 2022**: Week 3 — [Production Readiness Soft Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) +- **02:00 UTC Friday 4th February 2022** / **18:00 PST Thursday 3rd February 2022** : Week 4 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **Wednesday 23rd March 2022**: Week 11 — [Release Retrospective][Retrospective Document] part 1 +- **01:00 UTC Wednesday 30th March 2022** / **02:00 BST Wednesday 30th March 2022** / **18:00 PDT Tuesday 29th March 2022**: Week 12 — [Code Freeze](../release_phases.md#code-freeze) +- **01:00 UTC Wednesday 6th April 2022** / **02:00 BST Wednesday 6th April 2022** / **18:00 PDT Tuesday 5th April 2022**: Week 13 — [Test Freeze](../release_phases.md#test-freeze) +- **Tuesday 12th April 2022**: Week 14 — Docs must be completed and reviewed +- **Tuesday 3rd May 2022**: Week 17 — Kubernetes v1.24.0 released +- **Wednesday 11th May 2022**: Week 18 — [Release Retrospective][Retrospective Document] part 2 +- **Thursday 12th May 2022**: Week 18 — [Release Retrospective][Retrospective Document] part 3 + +## Timeline + +| **What** | **Who** | **When** | **Week** | **CI Signal** | +|---|---|-------|---|---| +| Start of Release Cycle | Lead | Monday 10th January 2022 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Monday 10th January 2022 | week 1 | | +| Schedule finalized | Lead | Friday 14th January 2022 | week 1 | | +| Team finalized | Lead | Friday 14th January 2022 | week 1 | | +| Start Release Notes Draft | Release Notes Lead | Tuesday 25th January 2022 | week 3 | | +| Production Readiness Soft Freeze | Enhancements Lead | Thursday 27th January 2022 | week 3 | | +| 1.24.0-alpha.2 released | Branch Manager | Tuesday 1st February 2022 | Week 4 | | +| **Begin [Enhancements Freeze]** | Enhancements Lead | 02:00 UTC Friday 4th February 2022 / 18:00 PST Thursday 3rd February 2022 | week 4 | [master-blocking], [master-informing] | +| 1.24.0-alpha.3 released | Branch Manager | Tuesday 15th February 2022 | Week 6 | | +| Begin Friday APAC-friendly meetings | Lead | Friday 25th February 2022 | Week 7 | | +| (most of) North America enters Daylight Savings Time | | Sunday 13th March 2022 | | | +| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 21st March 2022 | week 11 | [1.24-blocking], [master-blocking], [master-informing] | +| **Call for [Exceptions][Exception]** | Lead | Monday 21st March 2022 | week 11 | | +| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Monday 21st March 2022 | week 11 | | +| **Begin Feature blog freeze** | Comms Lead | 01:00 UTC Wednesday 23rd March 2022 / 18:00 PDT Tuesday 22nd March 2022 | week 11 | | +| 1.24.0-alpha.4 released | Branch Manager | Tuesday 22nd March 2022 | Week 11 | | +| Release retrospective part 1 | Community | 17:00 UTC Wednesday 23rd March 2022 / 10:00 PDT Wednesday 23rd March 2022 | week 11 | | +| (most of) Europe enters Daylight Savings Time | | Sunday 27th March 2022 | | | +| Burndown Meetings daily | Lead | Monday 28th March 2022 | week 12 | | +| **Begin [Code Freeze]** | Branch Manager | 01:00 UTC Wednesday 30th March 2022 / 02:00 BST Wednesday 30th March 2022 / 18:00 PDT Tuesday 29th March 2022 | week 12 | | +| 1.24.0-beta.0 released | Branch Manager | Wednesday 30th March 2022 | week 12 | | +| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 31st March 2022 | week 12 | | +| Deprecations and Removals blog published | Comms | Thursday 31st March 2022 | week 12 | | +| **[Test Freeze]** | Branch Manager | 01:00 UTC Wednesday 6th April 2022 / 02:00 BST Wednesday 6th April 2022 / 18:00 PDT Tuesday 5th April 2022 | week 13 | | +| Docs deadline — PRs ready for review | Docs Lead | Tuesday 5th April 2022 | week 13 | | +| Start final draft of Release Notes | Release Notes Lead | Tuesday 5th April 2022 | week 13 | | +| Release blog ready to review | Comms / Docs | 01:00 UTC Wednesday 6th April 2022 / 02:00 BST Wednesday 6th April 2022 / 18:00 PDT Tuesday 5th April 2022 | week 13 | | +| Docs complete — All PRs reviewed and ready to merge | Docs Lead | Tuesday 12th April 2022 | week 14 | | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Tuesday 12th April 2022 | week 14 | | +| Release Notes complete — reviewed & merged to `k/sig-release` | Release Notes Lead | 01:00 UTC Friday 15th April 2022 / 02:00 BST Friday 15th April 2022 / 18:00 PDT Thursday 14th April 2022 | week 14 | | +| 1.24.0-rc.0 released | Branch Manager | Tuesday 19th April 2022 | week 15 | | +| release-1.24 branch created | Branch Manager | Tuesday 19th April 2022 | week 15 | | +| release-1.24 jobs created | Branch Manager | Tuesday 19th April 2022 | week 15 | | +| 1.24.0-rc.1 released | Branch Manager | Tuesday 26th April 2022 | week 16 | | +| **v1.24.0 released** | Branch Manager | Tuesday 3rd May 2022 | week 17 | | +| Release blog published | Comms | Tuesday 3rd May 2022 | week 17 | | +| **[Thaw]** | Branch Manager | Tuesday 3rd May 2022 | week 17 | | +| Release retrospective part 2 (16:00 UTC) | Community | Wednesday 11th May 2022 | week 18 | | +| Release retrospective part 3 (16:00 UTC) | Community | Thursday 12th May 2022 | week 18 | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[k8s124-calendar]: https://bit.ly/k8s-release-cal +[Internal Contact Info]: https://bit.ly/k8s124-contacts +[Retrospective Document]: https://bit.ly/k8s124-retro + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Thaw]: ../release_phases.md#thaw +[Test Freeze]: ../release_phases.md#test-freeze + +[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.24-blocking]: https://testgrid.k8s.io/sig-release-1.24-blocking#Summary + +[exception requests]: ../EXCEPTIONS.md +[release phases document]: ../release_phases.md diff --git a/releases/release-1.24/logo/README.md b/releases/release-1.24/logo/README.md index 40896ade6d4..7ceaeec03dd 100644 --- a/releases/release-1.24/logo/README.md +++ b/releases/release-1.24/logo/README.md @@ -1,7 +1,7 @@ -# Stargazer Release Logo - -Two versions of the logo are provided: the main logo and a small logo. The small logo is intended for use at 128×128 pixels, such as a Slack react. All other uses should use the main logo. - -Both are provided in PNG and SVG format. The original Affinity Designer file is also provided, but should be avoided for display purposes. - -The Logo was created by [Britnee Laverack](https://www.instagram.com/artsyfie/) for the Kubernetes project. +# Stargazer Release Logo + +Two versions of the logo are provided: the main logo and a small logo. The small logo is intended for use at 128×128 pixels, such as a Slack react. All other uses should use the main logo. + +Both are provided in PNG and SVG format. The original Affinity Designer file is also provided, but should be avoided for display purposes. + +The Logo was created by [Britnee Laverack](https://www.instagram.com/artsyfie/) for the Kubernetes project. diff --git a/releases/release-1.24/logo/main-logo.svg b/releases/release-1.24/logo/main-logo.svg index 14c2e50ff17..e89d1f4f151 100644 --- a/releases/release-1.24/logo/main-logo.svg +++ b/releases/release-1.24/logo/main-logo.svg @@ -1,170 +1,170 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg width="100%" height="100%" viewBox="0 0 2000 2000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;"> - <rect id="Artboard1" x="0" y="0" width="2000" height="2000" style="fill:none;"/> - <g id="Artboard11" serif:id="Artboard1"> - <g> - <use xlink:href="#_Image1" x="129.349" y="154.014" width="1741.39px" height="1691.13px" transform="matrix(0.999651,0,0,0.999486,0,0)"/> - <g> - <g transform="matrix(1.00153,0,0,1.02621,-0.333683,-5.92522)"> - <clipPath id="_clip2"> - <path d="M199.942,1193.25L364.301,514.79L998.803,219.243L1637.94,519.724L1795.99,1188.04L1353.38,1735.61L635.058,1726.84L199.942,1193.25Z"/> - </clipPath> - <g clip-path="url(#_clip2)"> - <g transform="matrix(0.99847,-0,-0,0.974459,0.333172,5.77389)"> - <use xlink:href="#_Image3" x="199.979" y="219.189" width="1598.49px" height="1556.11px" transform="matrix(0.999681,0,0,0.999427,0,0)"/> - </g> - </g> - <clipPath id="_clip4"> - <path d="M199.942,1193.25L364.301,514.79L998.803,219.243L1637.94,519.724L1795.99,1188.04L1353.38,1735.61L635.058,1726.84L199.942,1193.25Z"/> - </clipPath> - <g clip-path="url(#_clip4)"> - <g opacity="0.26"> - <g transform="matrix(0.99847,-0,-0,0.974459,0.333172,5.77389)"> - <use xlink:href="#_Image5" x="227.979" y="243.189" width="1547.51px" height="1515.13px" transform="matrix(0.999681,0,0,0.999427,0,0)"/> - </g> - </g> - <g opacity="0.44"> - <g transform="matrix(0.99847,-0,-0,0.974459,0.333172,5.77389)"> - <use xlink:href="#_Image6" x="236.979" y="219.119" width="1487.53px" height="1392.65px" transform="matrix(0.999681,0,0,0.999749,0,0)"/> - </g> - </g> - <g opacity="0.18"> - <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> - <use xlink:href="#_Image7" x="320.291" y="459.403" width="549.186px" height="765.301px" transform="matrix(0.99852,0,0,0.999087,0,0)"/> - </g> - <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> - <use xlink:href="#_Image8" x="732.761" y="708.863" width="438.552px" height="868.691px" transform="matrix(0.99898,0,0,0.999644,0,0)"/> - </g> - <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> - <use xlink:href="#_Image9" x="1360.44" y="620.793" width="290.858px" height="938.2px" transform="matrix(0.999513,0,0,0.999148,0,0)"/> - </g> - <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> - <use xlink:href="#_Image10" x="868.694" y="219.387" width="564.309px" height="472.303px" transform="matrix(0.998777,0,0,0.998526,0,0)"/> - </g> - <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> - <use xlink:href="#_Image11" x="385.176" y="219.099" width="173.532px" height="654.896px" transform="matrix(0.997309,0,0,0.999841,0,0)"/> - </g> - <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> - <use xlink:href="#_Image12" x="703.029" y="568.403" width="787.074px" height="844.852px" transform="matrix(0.998825,0,0,0.999825,0,0)"/> - </g> - <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> - <use xlink:href="#_Image13" x="866.072" y="301.15" width="549.981px" height="1006.94px" transform="matrix(0.999966,0,0,0.999944,0,0)"/> - </g> - </g> - <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> - <g opacity="0.79"> - <g opacity="0.69"> - <use xlink:href="#_Image14" x="199.979" y="219.189" width="1598.49px" height="1556.11px" transform="matrix(0.999681,0,0,0.999427,0,0)"/> - </g> - <g transform="matrix(-0.267326,0.963606,-0.963606,-0.267326,2221.22,309.693)"> - <g opacity="0.69"> - <g transform="matrix(-0.267326,-0.963606,0.963606,-0.267326,295.367,2223.17)"> - <use xlink:href="#_Image15" x="199.979" y="219.189" width="1557.5px" height="1556.11px" transform="matrix(0.999681,0,0,0.999427,0,0)"/> - </g> - </g> - </g> - <g transform="matrix(0.227026,0.91635,-0.91635,0.227026,1411.7,-200.317)"> - <g opacity="0.69"> - <g transform="matrix(0.254731,-1.02818,1.02818,0.254731,-153.641,1502.5)"> - <use xlink:href="#_Image16" x="199.965" y="219.189" width="1325.67px" height="1556.11px" transform="matrix(0.999751,0,0,0.999427,0,0)"/> - </g> - </g> - </g> - </g> - </g> - <g> - <g transform="matrix(0.414942,0.886327,1.00689,-0.448987,23.2579,1690.1)"> - <path d="M777.716,406.287C532.236,406.287 332.937,663.736 332.937,980.841C332.937,1297.95 532.236,1555.4 777.716,1555.4L777.716,406.287Z" style="fill:rgb(3,8,1);"/> - </g> - <g transform="matrix(-0.609397,1.09228,-1.20298,-0.63927,2078.34,1556.7)"> - <path d="M777.716,406.287C532.236,406.287 332.937,663.736 332.937,980.841C332.937,1297.95 532.236,1555.4 777.716,1555.4L777.716,406.287Z" style="fill:rgb(2,4,1);"/> - </g> - </g> - <g transform="matrix(1,0,0,1,-41.3588,38.1078)"> - <g transform="matrix(0.99847,-0,-0,0.974459,41.692,-32.3339)"> - <use xlink:href="#_Image17" x="883.548" y="504.016" width="689.152px" height="617.264px" transform="matrix(0.998771,0,0,0.99881,0,0)"/> - </g> - <g transform="matrix(2.09082,-0.439678,0.450511,2.04054,-1749.92,-55.2331)"> - <g transform="matrix(1.31285,0,0,1.31285,-404.68,-204.432)"> - <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> - </g> - <g transform="matrix(1.45181,0,0,1.45181,-441.944,-355)"> - <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> - </g> - <g transform="matrix(1.45181,0,0,1.45181,-340.964,-323.319)"> - <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> - </g> - <g transform="matrix(1.45181,0,0,1.45181,-243.369,-403.134)"> - <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> - </g> - <g transform="matrix(0.14162,0,0,0.106379,1255.11,326.107)"> - <ellipse cx="473.71" cy="2213.74" rx="26.366" ry="34.914" style="fill:rgb(217,246,249);"/> - </g> - <g transform="matrix(0.183176,0,0,0.137594,1267.83,306.177)"> - <ellipse cx="473.71" cy="2213.74" rx="26.366" ry="34.914" style="fill:rgb(217,246,249);"/> - </g> - <g transform="matrix(0.183176,0,0,0.137594,1305.97,260.005)"> - <ellipse cx="473.71" cy="2213.74" rx="26.366" ry="34.914" style="fill:rgb(217,246,249);"/> - </g> - </g> - </g> - <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> - <g transform="matrix(0.783287,-0.62166,0.42354,0.533658,-349.619,718.646)"> - <rect x="408.402" y="1093.79" width="4.959" height="29.434" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(-1.08701,-1.35903,1.25702,-1.00542,20.2649,2656.45)"> - <path d="M604.583,1063.58C604.179,1070.87 586.72,1078.12 568.636,1078.25C550.01,1078.39 530.735,1071.2 529.66,1063.58C528.777,1057.33 548.391,827.047 548.391,827.047L585.852,827.047C585.852,827.047 604.755,1060.48 604.583,1063.58Z" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(0.580282,-0.484732,0.515587,0.61722,-287.394,754.668)"> - <path d="M641.934,922.236C641.934,920.246 640.217,918.631 638.101,918.631L630.433,918.631C628.317,918.631 626.599,920.246 626.599,922.236L626.599,935.668C626.599,937.657 628.317,939.272 630.433,939.272L638.101,939.272C640.217,939.272 641.934,937.657 641.934,935.668L641.934,922.236Z" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(1.10336,0,0,0.756103,-129.874,304.992)"> - <rect x="623.76" y="952.024" width="7.556" height="14.882" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(0.751106,0.0867832,-0.0867832,0.751106,192.048,259.139)"> - <rect x="554.086" y="1154.69" width="147.217" height="5.682" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(0.756103,0,0,0.756103,87.9789,304.992)"> - <path d="M613.582,964.953L639.836,965.694L825.281,1466.63L764.142,1485.44L632.829,1001.44L649.028,1425.43L579.185,1422.77L619.111,1000.78L499.628,1410.41L433.386,1386.72L613.582,964.953Z" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(0.425329,-0.211956,0.174717,0.350602,71.4523,902.336)"> - <rect x="578.119" y="1119.44" width="90.986" height="10.603" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(0.429183,0.204039,-0.168191,0.353779,508.279,640.307)"> - <rect x="578.119" y="1119.44" width="90.986" height="10.603" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(1.49723,1.87143,-1.1012,0.881008,970.521,-678.592)"> - <rect x="425.339" y="1060.05" width="3.413" height="11.518" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(2.14937,-1.93806,-2.42817,-1.73401,2106.96,3725.88)"> - <path d="M423.257,1073.04C421.873,1074.48 418.261,1074.62 415.794,1073.04C415.729,1073 417.66,1062.29 417.66,1062.29L421.391,1062.29C421.391,1062.29 423.292,1073 423.257,1073.04Z" style="fill:rgb(2,4,1);"/> - </g> - </g> - </g> - <path d="M199.942,1193.25L364.301,514.79L998.803,219.243L1637.94,519.724L1795.99,1188.04L1353.38,1735.61L635.058,1726.84L199.942,1193.25Z" style="fill:none;stroke:black;stroke-width:0.99px;"/> - </g> - <g transform="matrix(7.52627,0,0,7.52627,-365.767,206.722)"> - <path d="M291.737,128.689L272.73,46.128C271.696,41.805 268.772,38.167 264.772,36.228L187.837,-0.502C183.801,-2.428 179.102,-2.428 175.066,-0.502L98.138,36.25C94.138,38.187 91.213,41.823 90.177,46.145L71.203,128.71C70.339,132.553 71.058,136.587 73.198,139.895C73.459,140.295 73.736,140.683 74.036,141.057L127.282,207.262C130.106,210.709 134.325,212.722 138.781,212.749L224.168,212.729C228.623,212.704 232.842,210.693 235.668,207.249L288.895,141.038C291.654,137.564 292.699,133.022 291.737,128.691L291.737,128.689ZM282.54,132.555C282.412,133.14 282.246,133.715 282.042,134.278C281.552,135.647 280.839,136.926 279.932,138.063L232.633,196.901L231.147,198.753C230.23,199.878 229.136,200.846 227.907,201.618C227.433,201.922 226.94,202.196 226.433,202.44C226.091,202.598 225.743,202.742 225.388,202.871C224.935,203.043 224.473,203.191 224.005,203.315C223.352,203.491 222.688,203.618 222.016,203.694C221.548,203.747 221.077,203.774 220.606,203.776L143.102,203.794L142.342,203.794C141.183,203.787 140.031,203.628 138.913,203.322C137.55,202.961 136.251,202.395 135.058,201.644C134.114,201.043 133.248,200.327 132.482,199.512C132.249,199.266 132.014,199.025 131.802,198.762L82.997,138.083C82.725,137.74 82.47,137.385 82.232,137.017C81.68,136.164 81.229,135.249 80.889,134.291C80.688,133.729 80.524,133.155 80.398,132.572C79.972,130.659 79.973,128.675 80.402,126.763L97.796,51.088C98.745,47.127 101.425,43.794 105.091,42.018L175.599,8.332C179.298,6.567 183.605,6.567 187.304,8.332L257.823,42.002C261.488,43.78 264.168,47.113 265.116,51.075L282.538,126.75C282.967,128.662 282.968,130.645 282.54,132.557L282.54,132.555Z" style="fill:rgb(18,16,24);fill-rule:nonzero;"/> - </g> - </g> - </g> - </g> - <defs> - <image id="_Image1" width="1742px" height="1692px" xlink:href="data:image/png;base64,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"/> - <image id="_Image3" width="1599px" height="1557px" xlink:href="data:image/png;base64,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AAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8A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"/> - <image id="_Image5" width="1548px" height="1516px" xlink:href="data:image/png;base64,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"/> - <image id="_Image6" width="1488px" height="1393px" xlink:href="data:image/png;base64,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"/> - <image id="_Image7" width="550px" height="766px" xlink:href="data:image/png;base64,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"/> - <image id="_Image8" width="439px" height="869px" xlink:href="data:image/png;base64,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"/> - <image id="_Image9" width="291px" height="939px" xlink:href="data:image/png;base64,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"/> - <image id="_Image10" width="565px" height="473px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjUAAAHZCAYAAAB+e8r8AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOy92XMja3rm98NGkCBrPVWnztan+/QidkuWRjO2NIoZx8yFI3znf9P3jgnrwg4v2kYT4ZHUI3W3hF7Ovled2kgmmVh98X4vvxdZIIsLSCaA5xeRASCRADLBKn4Pn3drIIQQQogrp1+UDcC3FtBOWwfopq0H3AYeAO8A76XbR8DddOwGMARK4DGwBzwHfgF8CjwDXgAHwCEwAMbAKN1OAHZ73enVXvH10i/KRvumT0IIIYRYM1zY+P0mWej45vu6mMi5D9zBRFATmGJiZRN4AnyT7u8ARXqdixkwERQ/f9wvysYqCZvdXncqUSOEEELcDI0595tkF6dDdnE20/1WeM0m5rq0gHuYY3OIOTL+PgeYyHGRRHp+ggmjlaJ50ycghBBCrCGNyuNpuJ2QRccUW6ubc17TwEJRt7DQ1F3MqemS13d/n+p7NuA4JLYySNQIIYQQ189pLomLkFHaYhipygQLLRVYHs0LYB9zbEpm82j8M1dKyEQkaoQQQiwd/aJs9ItyWdewqqCpujTjsHl4qUF2WZwofKaVY04STXH/yokb5dQIIYRYGpKQ8ZwT+kU5ICziS5b46uc9qWxgpkOHbD4MsJyZjbRNMTHzMm1FOsZfe1K4yoUPrGBOjUSNEEKIpSAJmtvkBFqwRFhPfJ30i3IITGssbk5yVOJ9FzJjbJ1+jJVs307bdnoPL9n+AvgOEz0FFnYa86orEx/X9fu5FBI1Qgghak8SND3MpfgetkhvYfkjRdoOsfySlzd0mqey2+tOU2KuuzPxfhQ3A2x97gK/wQTcbazC6S6WGNzFSrnH2PV+ieXTeAVUiX0X1Xya14WnlhqJGiGEELUmCYENTMQ8xBb2XawhXQl8BnyLORYf8aorUTeisIgVSZ4U/C4mSH6FXfcmJmSeYf1qttJjb7y3lW4fY4KmAI7Sew15NVn4+LupsaN1ISRqhBBC1B1vUNfCHIofAv8B+IP0/O+A/wR8jbk5435RDnZ73cmc97pRKm5NzKcZYeXYb2LXAbPdhvcx8XKQ9t8HnmJiZowJvQJzbUpM0AzIgmZc+byVRKJGCCFE3Ymipo25F+9i4wM8+fVHmFNzQAq79Iuylrk1Qdi4uGhgYxG2gY/J1xlHKexj4uYQ+y6O0r49TMR8h4mer8ml3L65S7OyIxIciRohhBDLgodojjDhMsTWsUHYqgmytWS3152kPKEG5i7tYc6Lj0HwUQnN8LhDrnDysNJ+uj/A3Jo25tYMmRUyM6JmVZGoEUIIUVtCx9s4kLEJ/B0mAu4DvwU+wcIvLmpq6dLMoYUl+DaxNdn70oyYHZ3geUVDZnOGCrLAeYk5WM94NY/mOFl4Sb6XCyFRI4QQopaEnjRNct5JD/g5lkfzCHgDS5D9Om175KqfujPFXCcXL9FdqTYWbGDXX5Kb8TWZTQYeYYnSb5BzbdZG0MAKdhMUQgix/PSLMg5xBFvMd7DF2Rf1LazU2cNRT0h9a3Z73WUQNcCxGxW32DhvGu63ydO8t9LtmCyG3J3x2U8v0v5lca0ujUSNEEKI2hDKtzeBt8kL+D6zs4xekIWNOx4tYK+OVU9nIYx9cHEDs6LGJ3Q3MeHSIucZVfNnbgH7u72u5+CsBQo/CSGEqBMuYh6kbRdrOuf9aPaAXzA77LGZ7o+X2ZFIycNRzMzrCOy3A7LIiYLGw00vMHG4VkjUCCGEqAVpQW+lbQN4D/i3wE+xxbwP/G9YGKokJ8muTK5IKveO96sip9rjBmab6k2BSfo+Dq/x1GuBRI0QQog6EXvSdLAQ1NvpuT3gfeArQjhqWcNNJxEFWrxfadpXHbWwrEM9F4pEjRBCiLoQXYkRuReN54XsY+7DiCXoRbNoKgIH5nwH6yxoQKJGCCFEfXD3wRNfm8BfYbk0O1gZ96fMTuZey0U8hqbWXchEVP0khBCiNqQKoG0s5OTddh9gycJfA8+BzzHHZrBMpdvi6pFTI4QQok5MsVyZL8gjA77CSpQLLBRVAmUdc2nkntwscmqEEELUjuTYeN+WJta3xgXPdLfXHd7Uuc0jNNA7rlCSsLl+JGqEEELUmiQYmtRwplMouY4irMEJwyPrdO6riESNEEIIcUH6RdnCuvv6IErHmwOCyq6vDeXUCCGEEOckuEcuahwXNl6ODrPN8VzoSNRcAXJqhBBCiHMQOh+3w62Pctgkj23wjr4D8iiDMSsw0qGuyKkRQgghzkhICG5iHY83yJPE38HEy1a6PcQGbXrDQLCZTGs1ZPI6kagRQgghzocnBTewdXQnbXew0vNeeu4Q+A4rRZ8Cn6TbJubYiAUjUSOEEEKcgeDS+OY0MVHzAHgLEzUtTNTcBb4FPsLW3DapKqpflApBLRiJGiGEEOL8xERhv7+NiZgtcjdksJCTTxb3PjYNkLBZNM3XHyKEEEKIQCPcTsN9FzcemmphwsZDUhvMln2rWGfBSNQIIYQQ52Na2SbkEu7jXjTMDugcpttx5ZhGaOC3UPpF2fDtKt6/jij8JIQQQpyPKGZ8c5fmJSZeupiQeY4lCnticMzHieJmYQQREz9nLVgb9SaEEGK9iY7FRfNYQtO9NhZO2gRuA+9ioaVtchXUYdq+wPJq9oADLLfm2LlZZE5NOD8fK9EgCa91yN2RUyOEEGLlCZVLzoUW+N1ed9ovSndpxpiQmQKfYf1qtoBnWGLwCBMxQ0zUHKX7PhdqYVPG0wBQmG0K6Nc4Bob9onRHCVZ0XINEjRBCiJWkEoZpVZ6DOcLmjIu8h402yA32WmnbT9sGtsYekAdcHpHzasYsdjhnE3iEiadO+mw/Tw99jcmiZgK4QKvVkNDLIFEjhBBiVWlg4mLC/PXOnQtf0Cf9omy8boFPbk0DEyxNZid0N7HwUhvLq3F3pkNOGJ6ygHDQnO7GQ+B7WB5PN1zbKN0fkhv/udiZhMdLj3JqhBBCrBwpHOO9Y1y8uHvRwISHOxceBppZ4F8nOir5K467Qk1MUB3PesKER7Hb6y4k7JQmhLfT+/r2Dlm8+KDNMebguKAqyeEvF12N3V53yJIjp0YIIcTKENwLX/DHWKffAhMZ3kNmg7zIj8jORRNzUV67wCfHJlY/OTHXpuqINFlALk0SbS1ysnI33S+B3weeYAnMnfR5z9J17pFnUR2l876DdT1eeuTUCCGEWBnSYu/uhY8l2MLGF+xjAqBNzm85xAZMukMzxBb+C4eHKmEh0vtOF+jQxJDTJnZ9tzAR0wPeAH6GuTP307GPsev8AvseDjBR9Bz4PD239BVSEjVCCCFWghPKrbfS7T1s4fcKpRJbyJ9hAsdDNM/JIudS1UGLKCE/4T39OjfS1sPcljeAt4E3gR9iguY+ds3PMGHzSbq/AfwVNnDzkFxmvtQVUQo/CSGEWHoqwyab4X4HW/Bvk4dNern1PiZ0XmIOhoeNPPfmUs7KFYuDGGZrhn2bWF7ND4CfYDlFW5hw+RT7Dj4D/l8sZOVNAmPysESNEEIIUQNiGbffb2GDJh9izsUGtnAX2IJ/QF7gR+G9Rv2inCwqbLRAqsLN3SkfrtnFyrvfwcScVzzdSa//BPse9shJw/5eg35RUsNrPhMSNUIIIVaN6nBJX/S30uZJvC0s9PQGOeQ0oTIC4Sxl3jdEdRxCnBzewcSNr/NN7NrfBN7HBI0nSkO+5jH1vuZT0UBLIYQQq0S1a7CHVDysUnVyfNEfMCtsXNwsA3EW1QhzX7xkPeJOzhEmavYwt6pMr1tKdyYip0YIIcQqMW+Ctosavw+2uHszvJMW87oW01Sv0YXbiCxOXJANyc5UgQmaZRFr50aiRgghzsiyWvJrRjWcEt0Zn5a9jS30h1g/lz1SSXN4fV0FjRNDZDFs5mJtDPwSC63dS49fAh9j13zEbC5N3a/3TEjUCCHEa4iluRI29SQ1woPZxT4Km2eYeLmFJcxuYuXbQ2yR32d2NpO/rlZzkcKIhpm8H7Jb08Gu5f/ABM1bWNJwAyvpfgp8mO7Haz6+XpbYyZGoEUKIU6iUCvu+pW9StopUJmj7It3GxMsLLHF2ExM2W2SHZoS5GN67ZuFTtBdMVdCMMXH2NvAR8CVWun433b+Tts/T8Y+BrzFRU82pWeqS7pWwm4QQ4ioIzdw8wZJ0O0j3Y2jjeCGQ4Lk5ws9sE+tH43OQfIp27MI7xBb1ZrrdI+ffjKlxh91KV+Ed4PcwoeIzoFzA3cEEzn1sFIL35umTRd0A+y6GJHFT1+t+HRI1Qggxh35RupPti0STLGK8Ay3kScgz27IuCqtA+tn5zCNvTledaL2ZDnd3pou5OT4HqvYLexoJsY1dy4g8FiL2rdnB+vLcw/rx7Kdj3wB+RXamPNG49td9Ggo/CSFEhbRYdLEFoST3+5iSF8ghsy6N5zQM03vIsbk5PHzkE7jjDKYm2ZVokd2JI8y9eclyLexe0eSCphWea4bnqrOuXmLXu0/IIVqi656LnBohhEhUZgd1sBwFFzBb5Lb0B9gi4Yui5yF4bsIUOKrrArEuyc7z8qESHo7yKd6+qAM0d3vdAUtEEuFxgyzgXOhsY9+Dz3jyf9MvgdGydhCuIlEjhBAcL4Cec7FBHnz4Y+yvYV8YNtLjIr3U7fwB2a35ChjXSTjECi6nTud3Vcy7bmbnJsUKqSks5/cSBHkkdlXeTLfey8bF3OZur7t/jad6pUjUCCEEx3/teq5Fj5xMehv4KebOvIElWQ4xMbOPlQofYgviC2yuziE1STQ9ZVFf2vk+iyC4OCuT4H3KzzomSs/0tvES8WW/dkeiRgix9gSXZgMTM9uYmLmPlcU+wiYeb2BDAqfkqccvMMHzG6ycdg8LTXmp8I3kKVQWuOrv+uPk5lVZzMR8wr+DGIZb2Z+9EoWFEGJ+V1W37N8CfgB8AHwPeIAJoAJ4Fws1/Zd0/A6534e/3+i6+9rMETTzRI0n0a7UX+piFv+5hsaES+9InYZEjRBirakkk8YchFg58wYman6IhZ+8V81tLAT1EHNs/Ph22n9c4n1d1VAVQePXAdmdmfmL3Y8/IXTxCld9DfE8VnnxvW7W5bvUlG4hhDCqwsarY/x+DwtLeTXJFiZw3sccnPtYeMqTha8tX2WOIKnmUbTD/eoWhU/1PV7Zf1bxcxFSXtPxz+AqP0usJnJqhBAiE3MOvDpkELaqUGml/ftYXk3J7FDE+L5X7XDE5oDuNlUbz8VhjdUeO1PmODnzzj2FqxYm2oJb5ud9fB79ohzPe826OA/ifMipEUKIjC/sXiEyxETLIbOlsNP0nCcFT5l1dqrux3UswBtYk8Dozni/HS9Rb8/ZomNTdXCq27GblUTUpUmCZqtyrn6+fs5RoDXT58vFEa8gp0YIIV4VM7FtvLsGe1iF010s7LSPTXf+HTZTZ49Zp2Zaef8rISzuY+BNrJnamFdDTnGyc+xpErshw6yrU72G+D3RL8rmRR2bcN5+Hvcw8egixs+pSXbI4jmM+0U5Abk2IiNRI4RYa7xPB7NTj+O04hFW6fTXmKB5iOXPlNgE5CfAx+l2Lx0b5+lcycJbKdV1F2Ufy+/5Oj1XzalxwRVfA7OjBJphX1XUVAXbZa7Jy+hdcDWwxOsJ5tT4ORyRfyajtH9ETuQeIURCokYIIWbdiujSNNL9/4KVd9/GhM1d7Pfnp1gY6gh4jImKQ/K4hCtpwFcRNDEs4yLgB5jgapDDOh1mnRoPP/k1DsP7QHapYh5OPM7dms3dXvfonOfv4aQYEptgE6WH2He9kT7zIJ1DQZginfY9P8/nitVHMUkhhOCVMQlbWMO9HnnGk+es3E7372Jhp5dp/7fAN+SmeyNsEV5ok7MgaKKYiTkxHeBHmAD5ltlcFXdrXNQMMREWBzzGVvpRBHkeUWyxv4O5U8OzXmNo5x+/0810u4X1/hliAsf7AQ0wAePT0Q+A78iOmEJQApBTI4QQwHEYysNOHazvzFNmk3+b2FiENiZqCsydOcLybMBcGl/0r0LQRFFQTe717RvgD9P9F+l6XDx4+KmDCZQN8pBDXxN8onMMV7nIIX3uO8AX6TovMiQz/lHdxgTSXUxIPgrnO8C+c+8J9EU6X3d3jnN81o1QAs9urzu3SmzdkFMjhBCBflFuYoukh0V84fDF3R2PnXRcDDdtY7k1w6uYqxQWsWr10ryeNHeBfwV8mM6viwmGTnq7bjj/g3S/g4kID/WMyYLGr9H79fyO2XwX4HTHpOIyuYPks7buYlPR30u3t7DveoSJme+AX2OC7VnaF8N8CxeRdSV9jzGs6GHH40Tudfge5iGnRgghAru97lESD+7aeCWOi5oBOUTTTI89LHMItHd73XLR53VC2CmKm/jY82e+AH4fEzY+ZXwnHdtNx5SYm+ML5ct0G6eOF+k172KC4kNycvHcXjanUO3gXO3i7E0Nt8kiso19t56gHSu1SmaTmFeaIGi2MPHn3/8LchixTNvaIVEjhBAVdnvdSZyVU8Hdiym2EI8r22DR51MJO1VFgOfRxL4u3udlhP0F/0fYjKoNcufjLbIouEXOt3FR5JVFRXr8+8A/kBOQqxtcfI5UtVy82s24xWzysJ9bdImOxz2suEvhM8l82OoPsdDcU+AzLPfo0zX4HuYiUSOEEHNIwmZeiN4X3ehUTLDQx1WEnOYJiKqYiH+9d8kN7DYxUbMN/AxzYe6krZfOf4gthJvpdpqeG2FhqW0s8fhv0vMxpycumsdi75wLqjssXlk1YDaXx997Em4nzIoe/FzWYCGPQvY94D9g1W7Pgb8F/gL7WQ77RTlag+9jBokaIYQ4gVMWhGm/KGdCHlexeJww06m6r+rebGAhpm1yvkqJ/UXvIaWH5DDUEBvY6Q6Ph572sYTdNvD/YY6NL6bRVamOWfCp0KcJm+rx7nI5XiLu/WoKZquf5gm74+9sVRfyisD1cOOb2M/pPtZW4NdYKMorw1byuzgJiRohhLgAqVrqupyB6uIdF7dqLxlf7HpYl97bmIAB+CmWm+KVRi1y+XaZXn8Hc2g6WKjp55h46TLrlPj9qlsTe9jMCAz/zpgvikiP97HOzbfJYbEXWC7PE3KC8HDO56+DU+Pf24jZuWPjdN/DcrCGxUASNUIIcUGuUdDE+9WwUxQ31Y7B3k/nISZwNrFSbDDB4Hk3YAtihzyq4JdYnoY7PbH3TpyBBbPuiTsup4Xi4rnGcJILmk3MabqFhdS+S5+5h4XQjsj9gKLQWmlC2wH/mT0D/hz4Cfb9fYQJPw/hrfx3UkWiRgghasgJoad426w8d5ysS17MPFzUw0JM9zAnJg64dHHh7s4IC2FMMEFUYkKnSxYS/t6x8ss7MEdh84qbFdyaOIpiA3NjvPLK++pspXPax0JQG+nW++jEBO11cGk812uCheMKrKv1b7Hv6RkmRPeAwTp8H1UkaoQQYjmoOjR+GyuhqhPC3bXxRnY9cjKxv58n/HqZ97fk0NVB2ryM3TsAF+QcG3+fmDgdK8ROCkP54w1sIa5OBvccny1yubz3Atojh1nWpj9N4IjcLNGFjHe/jvOy1g6JGiGEWC5Oqn6KgqBVufXqKG8cOC9Hx0u6tzGHxkvTvVTcy9c99yYm+Mby6vMups/DuVbLuFvYAu39gYaYmNrEnB2vOlsnQeOO1KhflO6IDchC5krmjS0LEjVCCLHcVJOF431/fl5ezrz3aWNOTJfcWPAACwu9JE8hd6egmix85sTUVP5ehkaHccYUZIE2xsSNJwZ7UnNzt9dd6wndQbhM+0VZrquQiUjUCCFE/amGnWC+iImVSZ7UOyBXC72uxNdfW2LCpSCPgagm5lbfJwqb81TdzJSCV87Fw1oeIqvOoxIJCRpDokYIIZaLea5MtUTaxYmLGhc2Z3E2YvVUDF9VK64Ij/12njg5FV+MU/LwvPOoXhdcUaNDsfxI1AghxPIwrdyvujTuZrhL46ImVibNG0Xg71N1deDVMQxVkROJn0Hl/qmc4DRMUxXY8XXKkRCnIVEjhBD1p+qAzAvVVMcI+P0mJkZcpHiPlw7ZifGE30MscfcFVkbtoaeqyIlJyaeFmy4tQJKIkZARZ0KiRggh6s+8UQSx2qj62MVMOz13gDWye5Lez8u7fU7UMB0zwRKCv8ZKhV+SE4O9+mheJ9/z5tEIcSVI1AghRA1JvVzmDW08SdzEfR6y8UTfB8A/p31dbATBVrrtpOOfknvPvAC+ITfEm5cwXE0arobD5LCIa0eiRggh6k0UKVRuqy6NHzvChMib2KDDv0v7O9jcJx8/cDft28JEzHOyy/MSG0/g3XyPyKGoqrA5TdwIcW1I1AghxPIQ3ZlqZRDpfom5LT/BxMnfY7/rW5h42SaPH9hLr7uHhaaeYmGoDSxEVTAbgopOTexTMy8MNtNBeIHfgRAnIlEjhBA1JYSgomiJIwmiOzImJwD/IZYXc0juzNvBhMpLTNRsYS7MJB23BzwmC5i76fhDTOh4wz13arwXTrWb8IxLI0EjrhMldgkhRM0JuTVebeRCpV3ZtoH/Gfg5JjziuIQOeZClD7ncwcTJQ8yFeYoJHe9t8y7wOfAFJm7ihO5qXo3fjlD5tbghJGqEEGIJSMLGt9gYz6dtbwN/AvwLJixi6XWLV4XQNpY0PMYSiafkUQguagA+AH6FCR6vgKqWj/tj71i8dvOYRD2QqBFCiCUhCJvqNOtHafs0HRoFjTs7VTG0nW7BcmpamBsTnZohJprexqqnDni16qlaSi6XRtwYyqkRQojlIo4LaGAuywRzaHwo5ZgsYqrjDVzkjMNzEyw05VVTw7B59dMj4ENerXZ6ZTq3BI24KeTUCCHEkpEmWzexXBh3T6ILEzv9zpvT1MQShb0E3BOHJ+Qqp2rezN30ui+YTQ6OIkuCRtwocmqEEGL5mGKVSU/JFVFeDeXiBmZnOxH2xXlK/jp3bjzsVE0I/hp4C+tx459bq3BTEnvK51lj5NQIIcSSUek0HF2Z6kymSAxZeSM+FzVe7t0gT/f2MFN0ZcAqor4hj1W4cUGTvo8tcljNz3l80+cmrheJGiGEWGIqycMN5oed4FW3xudCubPjoiZO+q4mAbsr5M36blw0pOvvAnewcFwb64x8ADzf7XWHN3h64pppvv4QIYQQdSVMsa6WVsf74zn7R2EbkrsFx9DTPFEzxJr0da7j+s5AA0tyfgD8KfC/AP8RGw+xkUJSYk3QD1sIIZacIGziFkXJvPtV4eNiptpQ76RRCCX1cPtjqfoD4B3gB5io2STnF4k1QInCQgixAriwOWGy9zxcoDTDMZ4sHGdKVe9HEVUHYrjsM+z8n5BHQNTlPMU1IFEjhBCrxysLuee+hFlS1XlSXt5dnTU1Mx38pnNo5uCi5jHwN8AvMNfpBdZfZ3xzpyaumzpYh0IIIa6ZflE2wsBMmG3SB0s0mDJdg3dN7qT7PnQTkttU52sQi0GiRggh1pw5IasZlkkMhGqwDlbm7Z2SB4ScoWW6JnF2FH4SQog1p+LYzOy/ifNZAB0sUfgRljw8xkJRL7By7z2s5FusGHJqhBBCrAz9omwBt4HvA38M/HeYsNkHfgn8PTZ1vNjtdZVvs2LIqRFCCLESJLfJJ5dvAR8A/x4r897DGvR9iyUVf9MvymKJ3SgxB/WpEUIIsUrEyeMTLGnYOybfBnqY6HEBJFYI/UCFEEKsBMl18UaCA8yR+U3afgf8CzaMc0SlukusBgo/CSGEWCV8lMML4OfAJ9h08SbwRXr8FCh3e93JSW8ilhMlCgshhFgpUrLwRto6wE66HWPVT/u7ve7g5s5QXBUSNUIIIVaO0K/GJ5J7usUQ9akRQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEKI5UHVT0KIlaFflE3s99okDmlUpYsQ64FEjRBi6Ul9SVpAN+0aYj1JILXLl7ARYvVRR2EhxFKT3Jk28C7W/r4LHGFt8keYwBkChzd1jkKI60FOjRBiaUnhpU2sY+wd4MfANtY99inwDNgHPgaO5NZcP0l0NjHHbAoKB4qrQ06NEGKZcZemhzk1Pwb+DfAA+Byb/fOf0/PTflEOLjrvJ+TrTDUz6GyksOB22kZkB628yfMSq4tEjRBimfE2+E3MnfkA+BOyyNkHPsNCT6O0nUuQJDfI83WawKRflIP0uZ6vI5FTIX1vG5jA/APgLjYlu98vyqG+M3EVNF9/iBBC1BoXF0PMCZimfZ20zRzrFVFnIR3bAd7EFuU303YPuJ22zeRIiFdpYsLmA+D3gPcx10Z/UIsrQf+whBDLzJScDDzAHJmfA+8Aj4HfAnvpmCkWOjpTPkdwGnawvJ0PMLfmNvAyvf8A+AITU+JVxth3/zHmmj0m/yyEWDgSNUKIZSaKmgbwl8B/A97ChMZz4EtMhAzIZd5nwUNaW8AjzGX4N+m9XwIfAf9POmazX5Tlbq97nvdfaVKfoDHwLfZz2MZE5z72MxNi4UjUCCGWlt1ed9IvSv/L/zfY77Q2toB2sQqoDlAAw3O6NDFfpw28B/xbcun4XwOfkkvFnydho1yRxG6vO0zCBkwIToGRqp/EVSFRI4RYanZ73XG/KJ9hv888X+Yp5rAMMMemcUGx4e83xVyeLhaSagEPsbCUP68WGXMI3/vgRk9ErAUSNUKIpScJmyhaGtgiOgXGF3QGplgC8ggrQT7E+t5spP3KpRGiZugvCyGEmEPqS7OBJQa/B/wEq4D6PubYfIglJX+J5YwccI4QlxBi8UjUCCHECfSLso2Vb9/CQk6bWOfi21gCbEnug6PeK0LcMAo/CSHEyUyAF5hoaWEhqS6WiOwl5E1gIIdGiJtHTo0QQryG1FyvgYmaJiZsGphTM2ZNpoCnqjD/Y3hEHhux8tculgOJGiGEOAeh3BvWaEFPOUa3MceqhblUnkg9Uo8eUQcUfhJCiHOQRMxaCBknCbktLKfoe1iX5SFWOglNV8IAACAASURBVH+IVYJJ1IgbR6JGCCHE62hh68VdbIbTv8Iqw/rAXwBb/aKc7Pa66hQsbhQNtBRCCHEWmljY7RbwQ2wW1vvYCIke0D7PsFAhrgI5NUIIIc7CGAs5FcATrALMZ2oJUQskaoQQQrwOn7YN8Ets2vYDTNx8jQmdi3ZuFmJhyCoUQgjxWvpFuYn9IdxJt7exkvYR8B0aVClqgESNEEKIM5HKur2kvUOesTVRN2UhhBBCLCX9omwoMVgIIYRYE7TwC3G96D+bEEIsmIqQ0SgBIa4JiRohhFggYYzCzDgFbKTAXCR4hFgMEjVCCLEAgjvTxDrwxuamU9LgS2Z/7x6PXJCwEeLyqKOwEEIsjh5W7tzGxgh0w227srXCVg1ZCSEugP4TCSHEJQhipIUJmIfAc3I/lyn2u9Z7ujTJwx+nWJdeD02pgZ0Ql0AdhYUQ4nI0yI5LExMvbwH72FRr33+EiZlpOsZDUh1M7BTXfeJCrBoSNUIIcUFSM7oWJkzcmSHdvoWJlh7m4LhTc0gWOA1M/Bym+3JphLgECj8JIcQFSGGnJjl/ZgPYwtyZTeBtTPBsAzukzrvYvKSj9DZfAc/IgmeEyr+FuDByaoQQ4pyEPJpYtu1hqB5wFxM272FJwncwQVMCtzCB8xtMFG2Qw1IA435RTiRshDg/EjVCCHExGpXbSBebYn0feAMTOA3MobkD/BZzcA7IYagSSxoeAiMJGyHOj0q6hRDi4sTeNHHYow983MHEi4endjCB8wYmeu6lfZ30+hkRozJvIc6HRI0QQlyeabiNG7waotrAwlRjLAw1YDb8BMp3FOJCKPwkhBCLYUIu0x6Qw0lR4PjzU3Ln4aroAVVBCXEhJGqEEOLiVJ2ZcWWbYv1nOpiAGQEv03aUHsOssDlGOTVCnA+JGiGEOCe7ve60X5T+0IdVTir3m8DnWNLwLawqqsCSgx9jpdwF2dHx2VBCiAsiUSOEEBfHRUwUMxMsb+Zj7HdsD0sG7mHOzNP02udY470jUsUTs+JICHFOlIwmhFg4/aJsrEPoJHUU9gZ8Hayy6U3MffEKqA1yV+ENcrO9DczJ8TDUiBC2WofvT4hFI6dGCLEwYgnymggbd2jGmEjpAN+QG/G56PEZUFtYyOkove4WsEfFpVmD702IK0FOjRDi0szpp9IA2O11Vz5HJF17nPtU7VcDJngamKgZkfNomum1T5GgEeLSSNQIIS5FWtTnihpS4utJC7WLoWVfyFMYymdB+X3IuTHu2ri48RyaMblf2NGyfw9C3DQSNUKICxMETdWZ8NszV/SswoIexE1V1Pj+dro/YTbk1ATGq/AdCHGTSNQIIS5ECDnF3JHqoEd3I6rdcmMzOmclQi9B6FWvOTo5M2Xgq3DdQtQBiRohxLnpF6V3wgUTNW2yuPFGdC2ss647EpBDLSeNFVjJBb6SczTj4qzi9QpxU0jUCCHORXAi3iBX8bTJwiaGXI6nTpOdiurYAO/Ee9yfZZUTjFclj0iIOqKSbiHEmQhug5crF8CPga/IwiZOm/axAF7p46KmGo6Kj1vp2JVFYkaIq0NOjRDitQRBE5vNtbBOuT8EPsN+n3SxCp9pOmaCiZqSHHoapP2NdOtTqjtYz5YhaPEXQpwfOTVCiLPSCpuLmjHwHfATzLFpA9vk/isNLER1mB4PyCGrKbmz7ibwJVnsSNAIIc6NnBohxKkklyaOAvCJ0/54A3gLy7F5jImanbS/jQmZg3TsC0zgkG69d8vvmDPYUW6NEOI8SNQIIU4kJAVHEdNNmwscn230PnkS9QOse+4mOfw0AZ6k+0fkpOJfpdd4pZRvqg4SQpwLhZ+EEK8jNtaLnXO7mIjZIrf/fxP7vbKBOTc9cvXTHlnkTLEJ1f9EFkfet8XFzgSYrMkMKSHEApCoEULMpTL+4KSGcp5Dcw+4mx7/MN3ex8JQo3T843TcEMuf+QwTPTPTqcNn+b5Jvyjl2AghXotEjRDidVSFDcw2zHPX5h7wDiZuHpGdHDBx0sNcmo8xF+YOOY/G+9gM0mO/9c9CwkYI8TokaoQQr3DS1G1mw1CQw0Rewu2uzR0sJNVKx02wkNRTTNzcJ4ehPE/nJRaSGjMroFQNJYQ4ExI1QoiTqA6prO6L8578GM+n2cAETRyl0MDCUQ/JScEHwHOyOxOHPE5RMYMQ4hw0X3+IEGJNqbojVcdk3vymSeX46uu92/Ah5swcYI7NKLxH9bXH9+c4SEIIcYxEjRDiJKrCIooYd1PGmCAZkpvsHfHqKIQqsZFfdHuqYad55yKEEHORqBFCnIWqQxOdmTEWOvL+M5PKMf6aISZ6PMzk86HiMMxqOGve5wshxFwkaoQQr5CqjOYJkwmzYqbaLM9LsY+w7sEeXjrEkoBfAN+m2yId57OfJswXLxI0QogzoURhIcTrOE3Y+NYgJ/m+AJ5h1U876baBdRMeYBVQX2MJwgeYsIkjEqoC5/jzVdIthDgNiRohxFlwEdMkuzQxzHSElWZ/hw223ARuY6LGuw5/jYmdNiZmnmDujYekvDdNfO+T3BshhHgFiRohxGm4oHA3JrozU3Ko6V3gG+Bz7PdKL207WA+a25ig+Q4TMbcwEfOSLGq8CZ87PjOOjVwaIcTrUEWBENfEMs4wCqMSfKhlizzEsoM5MD8gVzzF57tYM74OJmJKTNQUmFi5D/wSEzaePDxmdmzCGJgu2/cmhLgZJGqEuAb6RdkmOR27ve7Y+60sw2IdhE2T2Wqlbcyhec5sM752OK6X9m2nfc/IZd8tzMH5TdrnYsYdoAn2fdX+OxJC1AOJGiGukH5RRueihS3WJbnvyxgY133hDsLGy653sInc32HipTrB27ct7Dq3MOfmEHNqPIemgwmfT3hV1CjsJIQ4FxI1QlwR/aJsYmLmEbMLfEFOiB0AL3d73fFNnedZSdfTICcB75NFjj8HWbD5oEvI4sV71XjDvhE5lPUtIY9GYkYIcV4kaoS4ApKzsYnlktwGfoQNebyLiZqvMEHzz1hOyXAZFvF+UfrwyZIsaHyuk4uZeB0b6bZNFnWeP+PbGAtPDbHvQoJGCHEhVP0kxNXguSVbwNvAD4E/wZJq94CPgf+EiZ4RUPSLchmEzRgrx/YZTl7i7X8gVc/fH8fmfFHMuDPzjJR3s9vrDq/w/IUQK4xEjRBXQ2z33wbewUTNO+SQy8+whNlh2sb9oqx1YuxurzsB6BelCxnvJTPPqYnzosaVfVHQeNn2HtBaxioxIUQ9kKgR4urwBXyEiRffF6uCooOxNEmxPkahUvINrzo1sb8N4diqoHExN0EIIS6IRI0QCyYt9L5Au6ApgC/Ii/bvsFJoFzXwqiCoPbu97rRflHDyuR8LNnK4yu8fdyReFjEnhKg3EjVCXB2xwucz4H/F+rpsp8cfY6MCvBpqKRf20wRJEHiQ3ZmZMJUEjRBiUaj6SYgFkvrStMkJtHfSNsXyaHpYNdRzrAroKyyXZOT5KquKNxx0JGaEEItGokaIBdEvyg2smslFzYBc7gzmxoCVek+xKqIWS9KnRggh6o7CT0IsgNS/ZRNzZe5hHXfH5A66DeDDtK/AxIxXPQkhhFgAEjVCXJLQOfg28AbwU6zZ3j3gSyzE9DfpGJ9IDUqQFUKIhSJRI8TlifOObmH9Z/4DJmqeAH8OfI+cDHy42+uObuZUhRBidWm+/hAhxBmJ/VjuYuME7gIPyHk2DXg1afYm6Rdlo07nI4QQF0WiRojF4E32DrFqpi+xCqevgMfMlmzXJuwUxYyEjRBi2VH4SYjL44JmiDk1v8aEzDvYgMbPga+xaic/5sYJ3YD9j5tGvyjHnNAvpy5CTAghTkJ/mQmxAFJ/mntYH5pO2m6n2ydYV+FvsGncN16+nc4X7A+bVnjKRVd17MEEJGyEEPVGTo0Qi2EKvMDKtd356GBTur3iaVoTQdPAhMwOdl5t8kymFuY6efNA7/zr560EZyFEbZGoEWIBpG7AkxS+8TEATUzQTKnJGIRUft4iV2vdIU8Nd0HjJefeQ8dFzt61nqwQQpwThZ+EuEL6RdmoS8gmCJoO9gdNB7if7rfJnY6HQJm2EfZ74jEmdiZ1uR4hhKgiUSPEGpBCTk1MvHQxAbOJhcfewgTOHUz0DLBQ2hHmNH1JHro5QsJGCFFTFH4SYn3wvBm/7310drBKrZ20b4BVbX0LfJL2jTAXpwGM+kU5viphE0vLJZ6EEOdBfWqEWA8alVswkdLCHJr7WJPAu9iohwdYd+R76fkdzNnxfJwradgXyswbQFO9c4QQ50FOjRDrR3Rs/HGHPFG8jYWldrAEYrBKKK+G8tcszEUJ4iVONW9irlDs6zPzuXJyhBAROTVCrB9TskjxpOBR5fm4NSrbQgmCxpOXu2nbIIstT3KOlVsa7yCEmEFOjRArTlr4j0c0kEXNGBMz47QVmIiYAPtYCbc347tKRyQKlw3s95KXxLdJVVfk3jl+HRPMyZFjI4QAJGqEWHl2e91pEDaTyub7PsK6Ie+kl70AnmHzqw4xcTOOr7mskKjkzzzChJQ7NT7808WWixp3lKaYwwQmiA4vcy5CiNVAokaI9SGGlFzUAHyIiYkesI25JU8xQXGEzawqya7NpWdXha7GHnLaB36MjZTYTOfiwmaf7CaV5F463nPn2zr1AxJC3ByKRwuxBCyizHlOr5q7WGjHE4W9AV8Xcz4O0/EvMbfEnZpLl3P3i7KNiSfPm9nEqq1+Hxv+6XO0NrAwWBxD4f1yGsDv0jWMqdH0cyHEzSBRI0TNqSbDXmbhTl2FXbx4SCdO63axAebSDNO+A/L8qssKmngOW5g71Ev3HwF/gAmYt7Fw2F461y/SeYyA77Bp6O4ied6N8muEWGMUfhKixiQBMFN1lOZLzeUMC7oPp/TBm82w30NCR+Q5UCPMsWmxGEETBVQcorkNPMT642xhwuZW2ldiwuZROu9fAJ+l40bkcJgnPUvUCLGmSNQIUUMqi79P0XYa2ELu+2KuzKkkUTJO7x/fwxmRS6e9QspLvxfRm2ZeabgLqi4mXL4H/CTdv5OOeQm8D/wt5urcJw8JdSFWAoNUDXXpvB8hxPIhUSNEzQi5L7exxbqNLdxgi39JFiSxVHvUL8opZ3BU0vPTE/q8uJjx+/5+i3BpIs2wefJyE8uneYSNbuikY70q6/tYyMmFkJ+j5wY1/LMUhhJi/ZCoEaJGVByaEba472F5Lt6Arkt2To6Td7H/z8O0nYkTFv5pEkenHXMZ5nU0ru7bYLa7cBtzbe5iQmfAbKn5tPJeEjRCrCESNULUhCBovBKpiS3eb2GOzRa22PtCPsBcm3F6nSfNXtqpuCaXo9oI0IXKPpY7Uz2HapjN83KYcyuEWEMkaoSoF967xcud22l7J93eIoWasDyTI3I10Di93oVCrag0AZzX2XiAiRnvieNhtna6/xS7ZnepWrw6OuHSYTIhxPIiUSNEDQh5NHGYYxcTMT2sKugOlmfTwhb2Z5ir8Vk63kccgCUDT2qYMHvauIZR2neIibSXWLhph9zh+LdYHxvvWTMgV0Bd9TgHIUTNkagRol7E3BKv7LmNJc++gwmcNraQ3wI+wRb9I/K8JHc6hjVNmHUBMq5s3lTvKfB/YoLmAXb9A6xPzRD4HHiM5Rodpudit2M14RNiTZGoEaK+xDyRLXKDugb5/+59zLHwkmYfI3D8+joJmxCCqoqaAdaM7zvgG7JLdQfrYbMFfIpdaw8TPnvYdbtbE3vWCCHWEIkaIeqNN8vzEusYnvJw1YjZKqC6J8tWw05DTJx9lZ73mU4bmAu1gTlVj7Gw0wRzb74mJ0ofN96ri4ATQlw/EjVC3DAn9IpxMTMiOzBevu1OhwsZyAmz88qja0Vya8CuYYSFmT4i9+NphNvNtP8Z5sh4yKmJOTn7hJwaCRoh1huJGiFumBCSgVenaI/C7R4mbrpp3x4WrvFSbj92pgKojgt9uuYJJlo+I1d5ufvk4q2DCZzD9PiQPOvJ50e9qGFCtBDiBpCoEaI+VAXNODx+hoVetrGQTBMTNF4FFYWNOzq1EzNzeIldi1+vu0wuUrx8e0huuucNBou0r7aulBDietEvAyFqQnJrPIy0gTkyd7HE2HHat5kebwDPsUTZBlYZ5D1rXNiM6+jSzCMM7qz2mvH9bXLJekwK1mRuIcQxEjVC1Ii0uDcx0XILW8hH5BEJbUzsdMnN6sbp+SfM5pcsVUjmhNwiyGLHJ4qrdFsIMReJGiFqRGjCt0melB275XqTPQ+7HJFnPTWxcM502QTN6wgjJEBiRghxAhI1QtSMflHGKqbYZdjLtT1E5QMsPdzUwBb8wXWf83XgTo4EjRDiJCRqhKghwZmodhiG7Nz4nKc4qbuxai6NEEKclebrDxGrxCl5C6JGJDciNqlz4VJtWjcMzyNBI4RYZ7TArQlBzHiIQhb+EjNPnOpnKoRYdyRq1oCQfApJ1HDKjBwtjkIIIZYRhZ9WnFQi7EmlnbDFviB+vwE0liFEtQznKIQQ4npRR+EVJS36/vPd4NXOqw1yfxPHu9CO+0VZW8dGgkYIIcQ8JGpWlwbWoG0Ha5+/iQkb73XSwpJMvRcK6blheI94/0aZJ2T6Rdmoq/ASQghx/UjUrBghf8Z/tjvAPaz7bA8TMR1sVtBROu6IXBrsPU6e37RomCNkqo9rKWjieUt0CSHE9SEbf4UIgmaDHHLaAr5PDjPdTvtKTNiADUqcpH0t4MN0f3xTJcIVQXOSuJlSs0qulMPkNLBxBdP03Mx11Om8b5p+UTZVji6EuCwSNStEWjQ75KGHW2m7BfwMEy73MecG4BB4irXW93b7/0h2cQbc0AyhSgn6PFHj+8YkYePO0utybq5CTIRmeXFGUQPrJxM/b+az113YJBHY5tXvqlZiVQixHEjUrBCpvb6Lmm1MzLyBCZk3gT9Oz71LHpT4CSZqngB/CzzGnJuC2eZu17bIVARNrMyK+Cwkb0o379waJ+xfqJgIQyg9ObsqasaV8/HPXuuhjOl7u0f+3vzf2/Ek7t1ed3RzZyiEWDaUU7MihLBHdU5QG1s4fgg8An6aHvcwN+Zd4GPgrzABNEivbWNOjjs2o2uuiHJBE+cgVZ+LAmEatuq8pCru6lzagQoCrEcePhmFzZjZhOtJ2O/vMV43YZMEuCevf5/camAP2E+3397YCQohlhKJmhVgTqgmhkC8tf4G8BbwNnA3PT/BFuM9TPQMycJgiAmaa3HzkijzhT0KGt/82uYJFw9bTHhVAFXFwvHjy+ZxhBymVjqHN8jJ1xtk4VWmc3IXYpqOh5zXtG60sNDoQ+zf5L9O978F/gn4B2CzX5RTLLdrrUSfEOJiSNSsFlU3ozoMsYWVebfSPv9r+X66HWEL8IDZkE4UFFfFNJ2bf25sGujCBrLT4aImujU+qboqgBqV1x53VL6osEmCJp5fB/vu3sIcrh75uz5M53BAdm4aWKiv4e+3Lgt3ZVhnC3gH+DPMQdzH/v19S0pWJ1fnCSHEqUjUrB5xAffBhwMsR2aPHF6KYmdEXmBazHYbju95JQSnaQw8SOfpIiyKmhhyqnZC9tAPYb8LpEZ4v2nYP8U6KLd2e93jcNAZiYtyF3NmuukaPsC+53tpX4kJmRfpdgR8mq7Nz2WyRsIm/tsbk8WLd73eotLl+gbOUQixhEjUrBYxr8TDTkPMKTggOzEFuRHfcyxJeJ8cfqom6EY3ZGFUqpT88w6A94FvmBU2vkVR44LHz9EdEP93Xa08cqEzZDZ81eoXZXlWx6biNPjWwXoC3caEzAfp9lY6D88T2QN+gzljnuTsCcWTOndyXiD+M3RBcwj8AniGJa1/THa1ruTfnhBiNZGoWQFCGbOLGV8sR+TqpQnmFPwCW3jvYILgS+Az4CPgO2zxPQqvi0JpYVQEjbswnufjOT6fk0VKnFkVE3I76fX+l77vH5OdmehMReHmwm6PnDx81us8qSKrh+XWvIHlLm2mzzjCyucPsO/fnaEWtrBDEjas+CKe/r26g9gA/hlzrh6mx9+kbR8Yqn+NEOKsSNSsDrFM2AWNi5IBtnD+PeYe3McW3W2spPsFtrB/TS7n9pCJL7QLcxCCoGmGrRVuverqx8AXZAHiYR53alyU+F/1A7J7U8ZzJyfquqB5mK7zSXj+tcLmhB441UqrDvbdbpNDYj6W4lE6T/+ZxNdxlnNYBXZ73Um/KCfAV2Qx+hE5cX2E/Ts4b1hQCLHGSNSsCOmvX8hOjefTDLFF9lfYz3sLW2zvYqGRZ+TS2TEWjoo9akaErrgLZF6FUxQ2z7GclB+RF74N8qgHn23VwNyQISYUXPQU5ITnJrnaqAW8hzkBL5mTBH0OUTHPrTlOQq4859fl4msYjqu+50oLGme31z3sF+WAnCvVwn5+nkx9Ff/uhBArjETNCpGEjbs0HnrpAb8lOxgesrmFiYIm5lYchMcx/ORuz0II+SgxVyYKmpg/8y3WV+fH6b6Lsh2ymGml8/Vz9sTcNjkp2kVOO73XrzExB/OrxM5DzF/ynCXv7VOtvPLqLL/2ajLs2iXEpgTtMVi/HrKbtg65RUKIBbN2v0TXgdTYrIuFWPaZv4Bupf29dIyHnLYxl2SPBY9IqIwSiAKrEx7H/e7M/CEmFJ5hQuZeem4z3Xoy9Chdt5+/N707wETFz4C/w/KIjtLxHqaLnYlPXVQrQ0PdQfKJ6G9gScIfpMexrPtx+uxvMSG5l87Nw1HeRVeLuRBCXAA5NauJOwQetvHZOjFp9pDcNXhI7k+zjwmehXTcPYHYINA3FzEuctqYIOhioaI/wnKBPNH2HiZqtjAxcEDOX2mTE3QLTKj9DPhLTEjEfJwqx71szhCGii5NrDo7whJfXehsYaGuAywZ+zn2vXvez1okCAshxFUjUbOCpCTMglzCPGK2x4snzcZck2OngNwBd2FUXJpqB+SYOLyBiYBuuL+JiYE/xBKZx1jC7Q4mWCbkMvWCHEIr0/Y+Jmj8mG76PBckceyC74fThY0LGK/G8vASWHKzC6vtdA3DdA0NTDgekEWNu0TqnCuEEJdAomZFCYnDnhNTzY3xhdwX9ZkQzBUvrvNyWKpdZj2h2bceJgT+ABMFPaxR3za5ZLqNhag2yNVFPWxQ54DZ3jAuQqrdiMfY93L8XVSFTSUpO5bQdzBXKYamfL5RBxNkR+n8XHCNwyaEEOISSNSsML4Qp+ThmRyR0NfGF3NYcOl25bNgVsxUhU3shePPtcl5Kt5bpwHspvO+m54nXMdmOtadp/+KiaS7zHZZ9sZ8sT9OzK+JQo9qU7yKaPSqncfh/fwafAbUJtk9GmFirCCEnuTSCCHE5ZCoWQPmLZZpX2zad9XVJo0T7sfH1eaB7tp0MFHyCMul8c69nugcxyx0MKGwhzV1u5VeMyDnD0GujvKqKS8t9qqlWJbt4vAkx6aBNdaLgsaP81Cel5e72DrEhM0zNZcTQojFIFGz5ly1O3BCszrITsa8GT9VceOJvZuYuLmNiRVPKPb3c1FzhIma+5h48MqoNiYkXpJHFrhDE0N0VcfotO9okt6/Oi/LX+NztTysFUvlB+RBmEIIIS6JRI24bk7qxxKFTUwmjgMovUIqVklFvClfGxM+HtrxSqopuUutl1HHrsnnHgdRCfF5YnYkTgb3MJeLp5hcLIQQ4pJI1IibpDHnNjo38X58jTfqm4dXUHliMZiQeYE5ND7bakB2gl53fq+lEs6LRMfGuZLcJSGEWHckasR1ctKCHx9Xe77EMFS1Sd5peHfauM17bbWj76VK2U9p2Dd53TFCCCEuh0SNqAPTcOu5LV6l5GGiI/KgyyFnCxPFSd4xZBWngs8j5tLMiJyLDpuUkBFCiKvnpF/qQlwlVRFT3aJDE+cpHZLDRiflv0yYdWb82DhzyROMfVzDaU7NzGdInAghRH2RUyNuiqqwmTAraHzCuCfzujvTCMd4V+Rm2O/l0p5DU5BzaOKsJ3g1dycmKAshhFgy5NSIK6XibER3Zd796NDEzcu6vXqpgY0ceEqeqXSECRifq7SPDY78DivdLshOj4ukOKLgpOqnc1dECSGEuBnk1Ijrpipyqg5NFBlxLlOJCZMu8Lv0+q2wdchN8Hy45QEmbJ7xqmsTRU1MRI4l2NXzFUIIUWMkasR1EsNHcWp4FDHxsR+7j41K6AH/mI7ZxDoLb2KN+FpYYz13Z0pMAJWYe/MCEzk+Hbvq2EyYfx7HKJ9GCCHqjUSNuC5c0JyUGBzFTJwkfgC8hVUv/QO5uV4vbZvYTKgp1kH4GSZsXqZ9vfQ++2mLoibm2MQGfFVxI0EjhBBLgESNuHLSjKQ4biCKmSazwoZ032cm/SA9/kdyKfYGFnLaTPf3MVHijfW+JefRtDDR80V6XDAbforCphr6Oj7/hX0ZQgghrgyJGnETVF2a6OB4590W8AEmTj4n59a0yT1nfGSC58nsp+Oep+0obV3gARaWGmCCKebUnBR+kpgRQoglQuWr4toIIwRiCbX3jvH+MU3MhfnvyY5LK7ymHbYWJmpuY2JlO712nyxqyrTdSsf+BgtpxT42VUFznDAsl0YIIZYHiRpxrSRhE7cWWdi0sJDSnwEfYeKjVTk2iiGf3n0HEzAucEpMDHkJt+fP3E2v/ygdX53OPRN6uklB0y/KJjCVqBJCiLMjUSOunYqw8eZ5LSxM9O+APiZIYmO9anO8+LptzHnx6dyT9Pp5fWkeYiLmM16dB3XjuTTpu9nEriWGxUYSOEIIcToSNeJGCMLGhUoH+EPgE0yIxJDTSSMM3L3ZwgRAGwszQZ4XFROCh5hAeIQJnm+YFQ43WumUvpMuVsV1H/tO9tL23W6vOzrl5UIIsfZI1IgbIwibNla2/QwTF3Hg5OvmMbnDM073e+nWK6jcjYmVTqTPe5k+sxY5NCnkdAt4gQKjSwAAHxhJREFUH/hT4D2sauuvgS+Bg91ed3zyOwghxHqj6idxY4RS7x7wddrdJJd6V0XNvC6/LXJeTCvt83/X1cGWMSn4cywUtYklFtchKTg6Uvcx4dXAGg8+xr4PiRohhDgBiRpRB16mW+9Z4yXeXu4dRU1VeMScGE/49ZEJY3LIaV6V01dYknGL7ODcJF7SXmKia4qNfXjBbB8fIYQQc1D4SdSCOeXeJ+XRQBY3sSrKH3tpuAsj70VTrW6KIqENDG/aqQk5NXexSq5t7Dx9htUQauEoCSFELZGoEbUhCJsoZvx+dRAm4flmuO/l4f56FzRVYTMllEz3i7JRB7GQ8mo8jNbCBFpJFm0wez0SOUIIkZCoEbUjJBBHqsIm7nfc5Ym9bU4aUrkUPWCSyOlgrs3ttNtDVMcVXru97mT+OwghxPqgnBpRO5LYmAbnBk7OJ/H9nkPj4qeaXBzDTUshaBJe0fV9rCrqHnkUxOdYv53HN3Z2QghRI+TUiFoThc1JQqQifhqVW6gkGC+LoAmVYW9jPXz+R+CPsLybT4D/G/hb0rBOlXsLIdYdOTWi1pxFgMS8GOaXfZ/r/WpELGvfAX6MDfncxMJRXwIfYr12yn5RTpbs+oQQYqFI1IiVoSJu5j63ZLjDNMZ66RyQuy0X6X6sAhNCiLVGokasHHWraLoEU6yM+wgblfD3mCvTBZ4A/4iNejhEs6GEEEJ/3QlRZ/pF2cKqnrz78W0s9DTCwk9PgGeaCyWEEBI1QtSeJGw6mLPaxMQNWPipwFwalXQLIdYeiRohlgAPpaW+Ncfl6hIzQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEKI5UJjEoQ4B2kOUxOYYFO0p5qOLYQQ9aB50ycgTqZflM0068cfS4TeIEnQ7ABvAW8D98nDJYUQQtwwWiRrSBIy7bQ1gDLdToGJhhheP0lQbgKPgD8G3gH+BfhvwMvdXnd4g6cnhBACOTW1IwmaLeAu8AbwEHME7gC3gV6/KDs3d4ZrTQNoYcLmHeA9zLlp3eRJCSGEMNo3fQIikwRNl+wI7GCiZgS8AA6A74Cv+0XZuEwuh4eylA9yLsbAAPgN8Bz4HCjSfiGEEDeMwk81IuRsPAB+APxr4EfALeBT4O+AnwNPgENgeBFRkgRNB/v5x7DJFCR0TiL9fLawPwY2se/uEDjUdyaEEDePnJp60cSERgMTN7vAv8MEyLuYW/MYW0zHYTszKXTlblADcx5G6ekJMOgX5USL9Kvs9rrjflEepId72Pc31nclhBD1QKKmJoTKJr91sdHCRM0O5hLE487ltPWLso0JmrfS+97CRNFR2gbAPvDyotex6gQBo5CTEELUDImaejEl520cYm7Ah1iC8DfAV1gl1HGPlLO+cUhAvoMJpN/Dwlx3sfyQb4CPsLyddr8oR3IghBBCLBMSNTVht9ed9otygoWWPM/lL4B/wpKGnwDPgK8xN2WIiZvXklygZto2gDeBnwH/Pr33M+CvgKdYpVUDOOgX5YVydoQQQoibQKKmRuz2upN+UQ6xn8uvsbBTBwsTNTBhM8Uqbs7rpHi+jt/eA36IOTdvYFVVv02fsReOk6gRQgixFEjU1I8J5sZ44z0wYbOJhaSOwATQOd835oIcYXkzo/R5HvKakB0dVcYJIYRYKiRqakYSK5N+UXoi6hTLoznCRMe5c11SaGuKiZhBer9D4D9j7f4Pse6436T7LnbWwqVJ+Uaa4SSEEEuO/hpfEhbQbM/zaW5jpeJeNv4Ic4I+xxKRP8PCW+Vur7vSFT5hHEULc6vc/dIoCiGEWEIkataI1DzuTWwB72Bhpi0sZ+c55gbtA3urvqin5OkNLLeoi/1fOMJcqiE2z0nOjRBCLBEKP60XE+Bb7OfexMJL3iV3goWe1iXs5K7VQ+B9TOw9xxKmf4l9RxpSKYQQS4ScmjUkuRRe2eRDGr077kqHnGBm4vZ9LBT3PwEfYC7V/4VN3v4a2N/tdUcnvY8QQoh6IadmDUlhFXdjpv2iXNck2SnmTG0B25iwu0MWeRL9QgixREjUiHUdYDnFwksFNix0glWFfYXl1oxZjzCcEEKsDPpLVKwlaQ7WbWxURBdzaNpYV+XPSV2b11TwCSHEUiKnRqwrY8yl+QJLmvaE6QJzbSRohBBiyZBTI9aa1KvGaWMhJw3zFEIIIYQQQgghhBBCCCGEEEIIIdYb5dSIM5Oa1gFrWwYuhBCixjRff4gQs4JGCCGEqCNaqMRrCWMV/N9Lg9fMiJKTI4QQ4rpRnxpxIsGdaWGunjt7Dawbr49biOI4jmAQQgghrg2JGnEaLfK/kTjZu0kagJme8+GYYA7OpF+UE5BjI4QQ4vqQqBGvUAk3bQOjdL9DdmxGwCC8bBJuh+nY8ppOWQghhFBOjZglCRoXLi1MnDzExgd0sDlJLcyZOSKHokbpLUbpmCe+T26NEEKI60BOjajSwP5dtMmi5gh4FxM228Bmeu4ovWafLGw62KRrF0cThBBCiGtATo04Jrk0nkezgYkXv93BhM0QuI+5MSUmZJ6H+58CB1hoaoTl3Uzk1gghhLhqJGoEMFPp5C5NFDO3gTvAA+DttP8WJlr20/YM+DDd7mMujouaETDd7XXl2gghhLgyFH4SkXkid4q5NzuYqHmACZxuOv4QeIqFpu6Qk4pbmHszSO8x6hdlQ46NEEKIq0KiRlRpVDbI5dpdLKemR+5Zs42FpB5iIsY3b9Dn7kws+xZCCCEWjsYkiMhJ4UhvqDfmVdHTxJKDp5i4GabjpswKI0DjFoQQQlwdcmpElWm4dadlhLkvR+Rw0kyzPbLA8SZ9caSCBmEKIYS4ciRqRCQKmujOjMgl2xOsuskb8Q2w6qcXmOgZopCTEEKIG0CiRlRxMTMhlWMzmxvzKVYZtQNsAS+xJOGnmLgpMKETRZDmQQkhhLhyJGpEJAoa38Zp2wA+wqqaemnbwsTLd+l1+8AeFqry3Bp/j6lCT0IIIa4SiRoBWK5LSuKNoScXNlvAZ+nQTtq2yP1snmGl3RtYCCr2qHGnRgghhLhSVIkiZqjMfuoCb2CChbDfn2ti4qYg59NsAo/JoacxKEFYCCHE1SNRc0bWqXFcEjZtLMRULeN2OunxZjrGQ06T9LqnSNAIIYS4RiRqTmFeT5V1WaD7RdkmdxN29yYm/Pr+DfKkbq+UIu0/WJfvSwghxM2j5nsnEATNvA67K89ur+vhoxGzJd3x8YDcu8b3+2uK6z9rIYQQ68zaLNJnpSJmqreePAvMJNe+wqo4FJXvI16T7/ccG/9upqjSSQghxA0gUVMhLeIebvH7U/LC7eGVeQv8zEK+Sgv7vJyiOQJwCqt13UIIIZYHiZpEZYFukR2IahhqwGyZcvwOp9XbdVjg/btbh2sVQghRXyRqEv2i3GA2CbadNp827aKmZLbDruclVUcMKBQjhBBCXCMSNRw7DS3gLazt/5QsalrMDmwsyUmx7ua4wIlDHkfhddPdXnd8HdcihBBCrCtr3VE45M+4YNkDfgR8gQmUDlaa7LjQGabNy5pHzObTDMLrp1iFkBBCCCGukLV1aioJwS1yyOk28D1M2LSw5nIu/jrkUuZB2h9Lmb1fyxDruOsTrCegnBMhhBDiKllLpyYImhazgsZFyh7wY+BrTJzspOO7mEAp09bB+rGU5DyaEngIHGCCptq0TgghhBBXwFqKmkQTu/4OWdD4Y08G/gk2gfoWsI25Nk1yw7kmNszxiBxmeiu9xgWNi5rxOo1aEEIIIa6btRM1c/rQNMm5M7556GgbG+hYAg/SY59EPcFcGj/2CBM9nwMvsO+2OqF60i9KQKEoIYQQYtGsnajh1bEHnlfUIoeatrChjCPMeWmnfQ8w4TJIr3kC3CGPBPg1Jm62yOGoWBnVwOYjTeXaCCGEEItlrUTNCSMQqp2BW2SH5h7mzHyQbu+RJ1dPMQFUpO0X2Pd5izzY0QWNl3/7xOsx5tpI2AghhBALYq1ETeIkp2YaNp8+fRd4GxMzDzEnZzMdP8QEzgHwK8yx2Sf3sWmSQ1UluWJqShY3EjRCCCHEglgbUTNn8GR0a2JCbwwbtTDhchtzYDbSPsh5OEPgzXQ7wb7TLpYsPCYnEU+YFU0SNEIIIcQCab7+kJWiGn6q3veZT9G98URiL/12vHrqNnA/3bYxN6YADslCpzoram37AwkhhBBXxbqJmnnuyEx1ErMiJI47mIc7LiNymGnEfBFTFTMNmOsgCSGEEOICrJuoiQ4M4X4MObmQKTG3pSCXcFdFke9rkHvcbDA7DNM/d55LJIQQQogFsTY5NXOoChsXNGPyKIQjcghpTE7w9SGWQyw52BOE/VjIeToezvItTvMWQgghxIJYN1FTFRQnuTRRwLjIeUZOAt5I+w+wkQrfYInBB5i7EwVOTBCunoea8AkhhBALYt1ETaQqaLzUOoqQw3T7eXrNDrk5XxP4FnNzDrE5Uc8wYRPLuEfhfcfhvSVmhBBCiAWyNqJmt9edhqTcKGia4b7v98TfLvBRem4LK+vupfvbmEPzlJwn8xx4SR5yOWTW+ZkRNHJphBBCiMWxNqIm4EJigokRd1DcsRmmx7eA35JLujfJYmYDK+F+CTzG3JktrOT7ABM1A7KoGTGblzOVoBFCCCEWy6VEzbK1+Z/j1lRDTz7E8jYmaLw3TRsTMp30fAsLQ42xXBqvkLqTnivJ5d1R0MRZUEIIIYRYIBcuL+4XZSu9frrb645dLCyDyKlM6nbR0sbGIbyJ5cp4Iz4/xret9NotTOh4uMkrpR6Q82tisvCxgFqG70gIIYRYNs4tavpF6TONfGTAGHMlvFx5DIzrvnAnYePl1i1sztN9bPK2C7ZqOXaTPPupgwmbARZy8jLwMfAI+CLtn0k+rvv3IoQQQiwr5xI1SdB0gLewBX4LW6wPyAmxA+Dlbq87XuypLp50PQ0s+XcTc1zazIqZKt1069O8J2SXxnNoJtggzC/IFVQSNEIIIcQVcmZRk5yNTSyX5A7wIyz35B4mBr7CBM2/AC+A4TIs4v2i7GBCxidrx82Jgyg9D8lDUTCbEBzHKjwAvt7tdYdXeAlCCCGE4HyJwj7AcRMLr3wf+FPgh5hT8yHwv2NVQ0PgsF+UgyUQNi5EPHzmZd5R8FXnQ0EuBfcQXCzd9sTgr4BuvyhHS/A9CCGEEEvNeURNNbn2beB/AN7DFvENrKfLIbnp3KhflJM6L+h+bv2ihFzmHYdRVs/dXRt3cvw2Cpo4ELO4olMXQgghROAiJd2eDHyUHrursU0eK3BMnQVNJJ3nNFRGRapOjYsdFzfe72ZmLMKyXLsQQgixCpxX1MQJ1gVWuuwi4EOso+6QJR4BkHrZnHZIzK/xUJVzPMlbgkYIIYS4Xs6UKBzKnztYzszbwC6WKPtu2vcp0Ac+xsTNIVCu8uIeGvnNhKlW+ZqFEEKIuvJaUZOa7LXJC/cO8AY5j6aHVUM9x3JpvsImVw93e92V754bhI3EjBBCCHGDnCpqUrnzbXI33ZIscMBCUVNyQ7qDdNyLZehTI4QQQojV4cScmiRotjBRc5/caO6QXNHzMSZsCkzMeAM6IYQQQohrZa6oCaMQbmOhpl2s2d59LDn4W+Av0zEjLOwEqvgRQgghxA1xklMT5x3tAD8F/iMmap4Bfw68T650KnZ73dGVn60QQgghxAk0T3nORY07L/ew3Jk72CRrn5EE0IgJszdNvyhrdT5CCCGEuHpOEzXek+YQq2b6Epvp9DXwOD0HSfjUJewUxUwKowkhhBBiDTgp/ORdg4eYuPkt8B3Wk2Yf+Awr3d7H8mlqUekUugEfz25KjfTmjj2oixATQgghxOU5MUST+tPcw/rQtLGk4FtAF3NqBphrM6hD+XY6X7BzbYWn4tTsON5AowyEEEKIFeI0UeODKzvkMJWXefvQyvFur3s0/x2uj+TQdLCk5gE536eBiZphenw8l4nsLmmCthBCCLECnNinJnUDnvSLckx2OJqYoJlSkxlPQXy58LqHCZtu2j8ml5z7OY/T8S+u9WSFEEIIcWW8dqBlZdTBpF+U47o4G8mhaWGhMe90vAHcTYf00r4h1g35iNwF+TGz7o0QQgghlpilLXsOQzY932cTC431sJLzHpYDtIGJmheYy7SPVXIVmNAZA5PrmFPVL8pGXQShEEIIsWq81qlZIjyv5jYmZnx6+CbmzuwB32DzqbbIOTVDYORVUosWHZV+OY1+UarqSgghhLgClrmPS6OyQc772cGaBN7HhM3ddP8ONvbhbjpmAwtfXYljFQRNM26VXjqNyrFCCCGEuACr4NQ0wm0UBl7a7fu7mEPjycOeWzO3h80CiSXm/hnDflEef67fT8JGZeZCCCHEBVhmUTOt3E7IlU5H6XbKbG+aCbk53/GIBxbs1KSKLE9i7qTNz8M/bxzux/Ob9otyImEjhBBCnI9lFjWOiwEXNaN0O8byaDbScfvAcyxZ2F2aq6KBhbmOsO/Yy8s9PNYk986JbpF3cW70i3Jah6aGQgghxLKw7KJmQhYGk7BNgd9hFVA72HU+w4TNM3LlkwugKCwuTKjI6mBO0Y+x5GQPfTXSuWxhgqeFiRgXLyW5WuvgsucjhBBCrBNLnZwaGu95WXcPeIiJlTZW+bSdbl9gQmKICY0y3Xdhc6mQT+iZ00nn4pVYP8VKyHcwMbOJuUWHmAB6mT6/TK95CXy7iHMSQggh1okbEzWx2ueSYsJ71XSx6qYBJhZc7GxiYmGMuR9TTMg8J8+FWoSgaZL75WyS3ZmHwC7wBHiEVWONMbfoEHiKia0O8Ak2KNTF1xglDgshhBBn4kbCT1dQvuyL/jPChO50/wC7zjY5gdiFUMniRIMLKe9w7P1yttNn/Vm6fScdW2IOzgtMWP1XTMRsMtvleKzeNkIIIcTruXanJlQGxc8/MSH2LIt5mNAdq5q80sjnQrWZTSRuYAM5R+e8hOpnu0vTwtyZLhZquod1Nn4vbT8D3v7/27uX3jbTKoDj/zhO3Tq9TDutBs0MAxIgS2xgh/gALPm6bFkhsRuEQMIwAwOaUubaaTtx4vgSFuc5eZ+4SZNO877jxP+fZNlxnMTO5j06z7mU57Ju5glR5/N7ogboCfAVTc3PYXndDDM2kiS9UmeZmnLxrwOA1Vbquv06vz66yGqB0XCwyBkvRJYjfx6qAIZmmeWyet1lWR0EmNmWHeAHRGDzMyJ70yeCq4fAh8T040l5fZ84GssMTi7ftBNKkqRX6GSicJXNuEdTSDtYud+pbv1y3yPam8/NKI2Gg6PcLE6zyymDmJxfk3Uqy/L6y8x8nDY9uA7SbhNHUQOaWp9bwA+BHxMt4Fn7U3dEHf9+pw5LknS21jM1KxmaOXH8kvNjMmuTAcdqRqVPc/xyIXWgUj0+uqzC5DOsZpzqYXpL4nPPaLJRKY/N9olMTb6m/p2XPhxQkqTrqNWgZmWTdp8msHmHqBm5RWQn8qI/L8/n0dB++fqNN1y3UY9yRuYkg5nMuOwTQdwezdFX/lzWzUAEeZmxyizParAkSZLO0Hampg5q8qKdrc8PiAv4bZo26+dEh9KSaHWe00zivewamDc2Gg6Oqlqe07Izh+W2JAKcnGicW8K/AT4h5ubkZ5/xcl3QUf69tj+TJElXVWtBTXXsVB8/DYhW5yFxDHWHqLPpERf/b4iMxuPya3ZoLvCLshNp7YIbTg9ocgZODtZ7THQ3PaAJ6P5NfN5PiMDmGXEMlcdx9ZRkSZL0Cl10P60e0WwTgcx9osV5SFM7c4+40N+iyeDkTJcZsd36jY6hWnS8kJImEMmZOE+IoOY28RnfJoqGPyUyUn3gi/J4jyZjk+3nZmkkSTpHVy3dq/UhW0TgskuzEyk3WT+gyVbkrf65N66vuUzlCApOLtTM3U93aQKaHZo1CffK7RmxEuEQeAv4DxHUZHH0gpilY6ZGkqRztBLUVEdP8HKmps5k1K/LTqgsJj5eE9DGe7xMJbDJz5Pv/QPiWCk/U65t6NPso9qmyc5AZK+eEkFOtqKv/eeXJGkdtJmpyaOj1SLaOXG8MuVkN1AW0+awvHrWy9q3NVeBzYLIwnxM0/G1GrzdLN8bEgFNdnltE9mdzzBDI0nSa2klqHlFV1C2OefjF8TFfFCee0FkLnJmS52pOG3+zFoZDQfL8WR6k9jptF3doPk/9IigbpumVui4Zqg8f2M0HOwhSZIurO2amtNanSn3T4makl2igHaLCGim5f7b8jiLZeslj2trNBxMqoAuVxxkJiqDmkMieMmpwVkUnG3ga1U3JEnSVdDqkU5ZXpn1JDeIY5f7NJuo87lhefwNzbHUE5oMRgY2i6tyoV9paYeTAVk9vyenKNcrHq7EZ5QkaZ20XqdSApttovvnLk2Gop40nNutpzSLHesBfPU+pyslpw7XgcpZAc9V/HySJK2LLoKazErcoikcziMZaIKbQflezmjJI5s94Og6XvBb3kclSdJG6aSjaDyZbnNysnAGN3DyKKZP1JTkcdM2MB8NBxdeaClJkjZTr4s/MhoOcuZKDqebVfczIpA5KLe6MDj3QEmSJL1Sp7Nfzthqne8jMzZ1t5THMpIk6ULWZqBdVTy79vNoJEmSJEmSJEmSJEmSJEmSpHV3bqHwaseSxbuSJGkdvTKoqTqS6tce7yYy4Dld3cnl/0SSpG6cGdRU6w3qlQZbxHC8ehpwPs79RRt9ES+7rnaI/9uS+H/BNV31IEnSujg1qClrDTKY6dNMHt4iJgAvqq/roGYBmxvYlIDmLhHU5CbyA5pJyoej4eDw+3uHkiRdX/36i5XjpNtEAJMbtvNIpU+zcDKn/0JctPO5ORumBDS3iGDmA2AXuAd8S2wbfwY8Hk+mW5sa9EmS1Kb+ytf1cskZ8BCYADeIwGabyDpMy+sOiWzEsvpdLzb0wr1NbBp/ALwL/Ap4H3gO/An4IxHoHI0n05lHUZIkXa7joKZkGrZptmXvEMHLe0Rgs0tctCnPL4E9mkWVAJ9RsjWbFNicUlB9D/g5EdQcEMHfp0TWJreQS5KkS9SHE8dOmaUZVLcl8BMic3OfJtiZEBfpWXn8uPxsHj9taiZiQQQyM+J/sFXu6+JqSZJ0yerjp62VxzvAHeAtolbkx8CwPJ4TNSJ7RHbmGVFLsiAu3lvAfDyZLtmctuYM5g6JoO9D4PPy3D+Ar2gyXJvw/5AkqVP96uikPkLJAuAtIpB5G3hE09mzJIKdJ8BTIvhZlNfvExdviGzFtb+Aj4aDo/Fkmh1OW8BHxHHTfSLY+x9RLPwcmFpPI0nS5TstU5PFwnXm5gYR3Nysnu8RF+1HxHHLARHQwMmgiE2orxkNB8sS2HxG/F8z27VLHM8dALPRcDD7/t6lJEnX12ndT9AEJTl7Zr7yfWhm1yyIjMycky3edZB0rQOaNBoOpuPJdMbJuT7flseHNAXVkiTpkq0GNUcrt6wRqQtfe9X3MtjZLrfVCcT5OzdGOVo6Pl4aT6bz6nsb9b+QJKlLdVBTTwbO8f5zIruQk3GfEh1RPaJI+EuiSHifpuPppQv3Jl/MN/mzS5LUpX4pcoUmmKlvefx0AIyJ+pA7RI3N1+X5r4gC2H0iq5NrFOzykSRJnVnN1ORtNbj5iGaf0S7R1r1HBDM9om5kj6ZuJIOapZkKSZLUhePal2ord+56uk1kZQ5ohvL1iS6o7O55TgQyN4H/0qxNWBABja3LkiSpEyem25ZVCfVixlxcmcW/WzQ1NTdojpwWRLDzBaULyoBGkiR16aWR/ePJNBdXLst9BjN5jNQngpoBEcDU7dw3gBcGNJIkqWurLd3QdD1l63YGPrnHaFHd5+uzhiZntBjUSJKkTp25XHFl8zQ0mZocLJd1NbnvaZP2PEmSpDVz7sbo3OBdWr9Xl17msdRRvqaNNylJknSec4Oas9QBjsGMJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEmSJEk633dek/A6quWY7oiSJEmtaD2oGU+mfWAAbAOHlI3eo+Fg1vbfliRJm6PVoGY8mfaAXeDdcn8EPAe+Bp6NhoNlm39fkiRtjl7Lv78P3ALeAX4D/Bb4BXAHuFlv+pYkSXoT/ZZ//xYROPWBR0SA8zkwJI6jesCi5fcgSZI2QNtBzZKoo9kD/go8BB4D+0Qw4/GTJEm6FF3V1OwCN4C7RE3Ni3JbgN1QkiTpzXXR/ZTHTAA75X5GFA33iWxNHkEtDXAkSdJ30WmhbjWv5iZwj6itmQPT6n46Gg4Ou3xfkiTp6mu7puY0A6Jo+H3gR0RgMwG+BJ4A/xxPpnPbvSVJ0uvoOqjpEUHMI+CXwK+BD4gMzV+A3xEzbJbjyfTAoyhJknRRnQU15eipR9Pi/RD4KfAeUWOzAP5GZGteEF1TtntLkqQLaXv43mnqNu8JEbhMiTbvOVFz41A+SZL0WjrL1IyGg6PxZLogApoDYl7NH4CPiUDn78C/iOOnQ5xhI0mSXkPXNTVHRMDyDPgzEcjcJaYLHwCfEnNsptbTSJKk19H5MU+prekTM2t65X6HyMwcAAej4WDe9fuSJElX2/8BlKx7RWbuCroAAAAASUVORK5CYII="/> - <image id="_Image11" width="174px" height="655px" xlink:href="data:image/png;base64,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"/> - <image id="_Image12" width="788px" height="845px" xlink:href="data:image/png;base64,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"/> - <image id="_Image13" width="550px" height="1007px" xlink:href="data:image/png;base64,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"/> - <image id="_Image14" width="1599px" height="1557px" xlink:href="data:image/png;base64,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"/> - <image id="_Image15" width="1558px" height="1557px" xlink:href="data:image/png;base64,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"/> - <image id="_Image16" width="1326px" height="1557px" xlink:href="data:image/png;base64,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"/> - <image id="_Image17" width="690px" height="618px" xlink:href="data:image/png;base64,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"/> - </defs> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="100%" height="100%" viewBox="0 0 2000 2000" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;"> + <rect id="Artboard1" x="0" y="0" width="2000" height="2000" style="fill:none;"/> + <g id="Artboard11" serif:id="Artboard1"> + <g> + <use xlink:href="#_Image1" x="129.349" y="154.014" width="1741.39px" height="1691.13px" transform="matrix(0.999651,0,0,0.999486,0,0)"/> + <g> + <g transform="matrix(1.00153,0,0,1.02621,-0.333683,-5.92522)"> + <clipPath id="_clip2"> + <path d="M199.942,1193.25L364.301,514.79L998.803,219.243L1637.94,519.724L1795.99,1188.04L1353.38,1735.61L635.058,1726.84L199.942,1193.25Z"/> + </clipPath> + <g clip-path="url(#_clip2)"> + <g transform="matrix(0.99847,-0,-0,0.974459,0.333172,5.77389)"> + <use xlink:href="#_Image3" x="199.979" y="219.189" width="1598.49px" height="1556.11px" transform="matrix(0.999681,0,0,0.999427,0,0)"/> + </g> + </g> + <clipPath id="_clip4"> + <path d="M199.942,1193.25L364.301,514.79L998.803,219.243L1637.94,519.724L1795.99,1188.04L1353.38,1735.61L635.058,1726.84L199.942,1193.25Z"/> + </clipPath> + <g clip-path="url(#_clip4)"> + <g opacity="0.26"> + <g transform="matrix(0.99847,-0,-0,0.974459,0.333172,5.77389)"> + <use xlink:href="#_Image5" x="227.979" y="243.189" width="1547.51px" height="1515.13px" transform="matrix(0.999681,0,0,0.999427,0,0)"/> + </g> + </g> + <g opacity="0.44"> + <g transform="matrix(0.99847,-0,-0,0.974459,0.333172,5.77389)"> + <use xlink:href="#_Image6" x="236.979" y="219.119" width="1487.53px" height="1392.65px" transform="matrix(0.999681,0,0,0.999749,0,0)"/> + </g> + </g> + <g opacity="0.18"> + <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> + <use xlink:href="#_Image7" x="320.291" y="459.403" width="549.186px" height="765.301px" transform="matrix(0.99852,0,0,0.999087,0,0)"/> + </g> + <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> + <use xlink:href="#_Image8" x="732.761" y="708.863" width="438.552px" height="868.691px" transform="matrix(0.99898,0,0,0.999644,0,0)"/> + </g> + <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> + <use xlink:href="#_Image9" x="1360.44" y="620.793" width="290.858px" height="938.2px" transform="matrix(0.999513,0,0,0.999148,0,0)"/> + </g> + <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> + <use xlink:href="#_Image10" x="868.694" y="219.387" width="564.309px" height="472.303px" transform="matrix(0.998777,0,0,0.998526,0,0)"/> + </g> + <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> + <use xlink:href="#_Image11" x="385.176" y="219.099" width="173.532px" height="654.896px" transform="matrix(0.997309,0,0,0.999841,0,0)"/> + </g> + <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> + <use xlink:href="#_Image12" x="703.029" y="568.403" width="787.074px" height="844.852px" transform="matrix(0.998825,0,0,0.999825,0,0)"/> + </g> + <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> + <use xlink:href="#_Image13" x="866.072" y="301.15" width="549.981px" height="1006.94px" transform="matrix(0.999966,0,0,0.999944,0,0)"/> + </g> + </g> + <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> + <g opacity="0.79"> + <g opacity="0.69"> + <use xlink:href="#_Image14" x="199.979" y="219.189" width="1598.49px" height="1556.11px" transform="matrix(0.999681,0,0,0.999427,0,0)"/> + </g> + <g transform="matrix(-0.267326,0.963606,-0.963606,-0.267326,2221.22,309.693)"> + <g opacity="0.69"> + <g transform="matrix(-0.267326,-0.963606,0.963606,-0.267326,295.367,2223.17)"> + <use xlink:href="#_Image15" x="199.979" y="219.189" width="1557.5px" height="1556.11px" transform="matrix(0.999681,0,0,0.999427,0,0)"/> + </g> + </g> + </g> + <g transform="matrix(0.227026,0.91635,-0.91635,0.227026,1411.7,-200.317)"> + <g opacity="0.69"> + <g transform="matrix(0.254731,-1.02818,1.02818,0.254731,-153.641,1502.5)"> + <use xlink:href="#_Image16" x="199.965" y="219.189" width="1325.67px" height="1556.11px" transform="matrix(0.999751,0,0,0.999427,0,0)"/> + </g> + </g> + </g> + </g> + </g> + <g> + <g transform="matrix(0.414942,0.886327,1.00689,-0.448987,23.2579,1690.1)"> + <path d="M777.716,406.287C532.236,406.287 332.937,663.736 332.937,980.841C332.937,1297.95 532.236,1555.4 777.716,1555.4L777.716,406.287Z" style="fill:rgb(3,8,1);"/> + </g> + <g transform="matrix(-0.609397,1.09228,-1.20298,-0.63927,2078.34,1556.7)"> + <path d="M777.716,406.287C532.236,406.287 332.937,663.736 332.937,980.841C332.937,1297.95 532.236,1555.4 777.716,1555.4L777.716,406.287Z" style="fill:rgb(2,4,1);"/> + </g> + </g> + <g transform="matrix(1,0,0,1,-41.3588,38.1078)"> + <g transform="matrix(0.99847,-0,-0,0.974459,41.692,-32.3339)"> + <use xlink:href="#_Image17" x="883.548" y="504.016" width="689.152px" height="617.264px" transform="matrix(0.998771,0,0,0.99881,0,0)"/> + </g> + <g transform="matrix(2.09082,-0.439678,0.450511,2.04054,-1749.92,-55.2331)"> + <g transform="matrix(1.31285,0,0,1.31285,-404.68,-204.432)"> + <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> + </g> + <g transform="matrix(1.45181,0,0,1.45181,-441.944,-355)"> + <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> + </g> + <g transform="matrix(1.45181,0,0,1.45181,-340.964,-323.319)"> + <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> + </g> + <g transform="matrix(1.45181,0,0,1.45181,-243.369,-403.134)"> + <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> + </g> + <g transform="matrix(0.14162,0,0,0.106379,1255.11,326.107)"> + <ellipse cx="473.71" cy="2213.74" rx="26.366" ry="34.914" style="fill:rgb(217,246,249);"/> + </g> + <g transform="matrix(0.183176,0,0,0.137594,1267.83,306.177)"> + <ellipse cx="473.71" cy="2213.74" rx="26.366" ry="34.914" style="fill:rgb(217,246,249);"/> + </g> + <g transform="matrix(0.183176,0,0,0.137594,1305.97,260.005)"> + <ellipse cx="473.71" cy="2213.74" rx="26.366" ry="34.914" style="fill:rgb(217,246,249);"/> + </g> + </g> + </g> + <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> + <g transform="matrix(0.783287,-0.62166,0.42354,0.533658,-349.619,718.646)"> + <rect x="408.402" y="1093.79" width="4.959" height="29.434" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(-1.08701,-1.35903,1.25702,-1.00542,20.2649,2656.45)"> + <path d="M604.583,1063.58C604.179,1070.87 586.72,1078.12 568.636,1078.25C550.01,1078.39 530.735,1071.2 529.66,1063.58C528.777,1057.33 548.391,827.047 548.391,827.047L585.852,827.047C585.852,827.047 604.755,1060.48 604.583,1063.58Z" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(0.580282,-0.484732,0.515587,0.61722,-287.394,754.668)"> + <path d="M641.934,922.236C641.934,920.246 640.217,918.631 638.101,918.631L630.433,918.631C628.317,918.631 626.599,920.246 626.599,922.236L626.599,935.668C626.599,937.657 628.317,939.272 630.433,939.272L638.101,939.272C640.217,939.272 641.934,937.657 641.934,935.668L641.934,922.236Z" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(1.10336,0,0,0.756103,-129.874,304.992)"> + <rect x="623.76" y="952.024" width="7.556" height="14.882" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(0.751106,0.0867832,-0.0867832,0.751106,192.048,259.139)"> + <rect x="554.086" y="1154.69" width="147.217" height="5.682" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(0.756103,0,0,0.756103,87.9789,304.992)"> + <path d="M613.582,964.953L639.836,965.694L825.281,1466.63L764.142,1485.44L632.829,1001.44L649.028,1425.43L579.185,1422.77L619.111,1000.78L499.628,1410.41L433.386,1386.72L613.582,964.953Z" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(0.425329,-0.211956,0.174717,0.350602,71.4523,902.336)"> + <rect x="578.119" y="1119.44" width="90.986" height="10.603" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(0.429183,0.204039,-0.168191,0.353779,508.279,640.307)"> + <rect x="578.119" y="1119.44" width="90.986" height="10.603" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(1.49723,1.87143,-1.1012,0.881008,970.521,-678.592)"> + <rect x="425.339" y="1060.05" width="3.413" height="11.518" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(2.14937,-1.93806,-2.42817,-1.73401,2106.96,3725.88)"> + <path d="M423.257,1073.04C421.873,1074.48 418.261,1074.62 415.794,1073.04C415.729,1073 417.66,1062.29 417.66,1062.29L421.391,1062.29C421.391,1062.29 423.292,1073 423.257,1073.04Z" style="fill:rgb(2,4,1);"/> + </g> + </g> + </g> + <path d="M199.942,1193.25L364.301,514.79L998.803,219.243L1637.94,519.724L1795.99,1188.04L1353.38,1735.61L635.058,1726.84L199.942,1193.25Z" style="fill:none;stroke:black;stroke-width:0.99px;"/> + </g> + <g transform="matrix(7.52627,0,0,7.52627,-365.767,206.722)"> + <path d="M291.737,128.689L272.73,46.128C271.696,41.805 268.772,38.167 264.772,36.228L187.837,-0.502C183.801,-2.428 179.102,-2.428 175.066,-0.502L98.138,36.25C94.138,38.187 91.213,41.823 90.177,46.145L71.203,128.71C70.339,132.553 71.058,136.587 73.198,139.895C73.459,140.295 73.736,140.683 74.036,141.057L127.282,207.262C130.106,210.709 134.325,212.722 138.781,212.749L224.168,212.729C228.623,212.704 232.842,210.693 235.668,207.249L288.895,141.038C291.654,137.564 292.699,133.022 291.737,128.691L291.737,128.689ZM282.54,132.555C282.412,133.14 282.246,133.715 282.042,134.278C281.552,135.647 280.839,136.926 279.932,138.063L232.633,196.901L231.147,198.753C230.23,199.878 229.136,200.846 227.907,201.618C227.433,201.922 226.94,202.196 226.433,202.44C226.091,202.598 225.743,202.742 225.388,202.871C224.935,203.043 224.473,203.191 224.005,203.315C223.352,203.491 222.688,203.618 222.016,203.694C221.548,203.747 221.077,203.774 220.606,203.776L143.102,203.794L142.342,203.794C141.183,203.787 140.031,203.628 138.913,203.322C137.55,202.961 136.251,202.395 135.058,201.644C134.114,201.043 133.248,200.327 132.482,199.512C132.249,199.266 132.014,199.025 131.802,198.762L82.997,138.083C82.725,137.74 82.47,137.385 82.232,137.017C81.68,136.164 81.229,135.249 80.889,134.291C80.688,133.729 80.524,133.155 80.398,132.572C79.972,130.659 79.973,128.675 80.402,126.763L97.796,51.088C98.745,47.127 101.425,43.794 105.091,42.018L175.599,8.332C179.298,6.567 183.605,6.567 187.304,8.332L257.823,42.002C261.488,43.78 264.168,47.113 265.116,51.075L282.538,126.75C282.967,128.662 282.968,130.645 282.54,132.557L282.54,132.555Z" style="fill:rgb(18,16,24);fill-rule:nonzero;"/> + </g> + </g> + </g> + </g> + <defs> + <image id="_Image1" width="1742px" height="1692px" xlink:href="data:image/png;base64,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"/> + <image id="_Image3" width="1599px" height="1557px" xlink:href="data:image/png;base64,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AAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8AAAAAAMAo4gcAAAAAADCK+AEAAAAAAIwifgAAAAAAAKOIHwAAAAAAwCjiBwAAAAAAMIr4AQAAAAAAjCJ+AAAAAAAAo4gfAAAAAADAKOIHAAAAAAAwivgBAAAAAACMIn4AAAAAAACjiB8A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"/> + <image id="_Image5" width="1548px" height="1516px" xlink:href="data:image/png;base64,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"/> + <image id="_Image6" width="1488px" height="1393px" xlink:href="data:image/png;base64,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"/> + <image id="_Image7" width="550px" height="766px" xlink:href="data:image/png;base64,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"/> + <image id="_Image8" width="439px" height="869px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbcAAANlCAYAAAD//rfmAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOy9Z3dj6XmmeyERJMgqVuoKnZWaCpZle2Zsa449nuU54zX+xefbOWeW7JnjGVuSJStA6qAO1RVYiWmTG/F8eN6H74tNsIoBAAHs+1prL2Rgk92Fm/cTYQFpZ3klvRRCCCFSFkYcCkKWXh/6la1Wc4gQQojSM/fiFkRtBehh51s852E4BiCBE0IIMefi1s7yKlAFWkCfxKUl113Y/BhK4IQQotzMpbgFt1YBakAdaABrQDc8ZRAuh5joubAdX5fACSFEeale9Qm8hipR3JrATWADc3EtTOxWw7GSHHWgomITIYQoL/WrPoEiiWtzcVvBBOwaJmpdLP82CJedcNkP1/ug3JsQQpSZuXI3idtyx7YKrAPXgXuYezskCtohkIdjHzgI17tAXwInhBDlZN6cmzu2BqOO7TZwF/gQE7YjTNj2gFfA0/DaZjg6wA6jBShCCCFKwlyIWxKKrGOuzQtIbmKidh94H3NvNcyZHWCi1g9HDfgaE77ObH8CIYQQ88Q8FZSkochrmLDdYVTY1jBHtx6es4qFJ/fC4c6vgopKhBCitLzWubWzvDIub9XOcndX3kDd22o1B8XnXRDvW/Oy/iqxEnLcc2vheq/wOoUkhRCipJwQtyBcdUKxSTvL+5h4DZPH14G3sPBgDmTtLD+4hMBVONmM7aLWDJ/TJQpZF8upPQd2sfybV1G6uAkhhCgpI+LWzvI6cAsLCbqgZJh45ZgANbFQ4V9iovQZ8DEmKtkFz8MdoBeF3Ai3d4AnmEusYH1uQyyv9hDLuT0BXoTP7qBJJUIIUXqOxS04sg3gPeBHmLC9xMTj83C7juXBfgT8+/DSDPiE0F92QapYPq2PFYp0MXdYx3JpX4dz2QyfVw33bYfnexFJD00nEUKI0lOH4xmOLeBd4P8A/hvmlj4D/h9MWHbDa6pYT9lXmND8Ljze5YJstZr9dpYfENsAvEH7MDzlACseeRbua2HC9ooohhq7JYQQAojObQULRX4E/DXwR4RCkfBYNbn9AvgNJm5d4BFwdNmCkq1Wc9jOcojzIjtYKLJLHJ7sE0nq4TlHjE4sEUIIIaiHcvkGFpL0+Y0uGp8Av8cckwvIITHX1ccmgVxaWMJ5pEUlvXC7g4lbL5yXF4yshdvHRSRybUIIIQDqwTENsBDjE+BnmJhtA/8dE7g9onh021nem7SQJM7Ny/ndwXnvWpdYMOLFJ17kIlETQghxjJf7V7H5jQ+wask1TEg+A55utZr5rE6oMDg5ve5hURezGqqKFEIIMQbPuQ0x5/YQc23ukDrMeJRVwcGBiZs7uaE/BxM6IYQQ4gTH46mCY3K3dOUT9Yujs676fC5DaLOA2Kw+RI5TCCGmhmYvTpEQ7m1g01wOiAUzXuE58dylEEKIOdkKsMTUsWb0W+HwXXMZVum5j8KrQggxceTcpkQIRa5ho8p+AHyAzcJ8ES6/xJrQj+TehBBissi5TYEwo3MVC0d+D/gv2CzOV8BPgZ9gzs0dnBBCiAlSGnE7bbfbpF1T0hR/DXgH+BPgP2BhyQ3gUyzvtkvs45NzE0KICbK04hZEpsaocLjAHbcVtLN8GpWYaRtDjm03WMOa5H+DDX3ew/JvlXaWVye4D08IIUrP0uXckibwCiYoXrCROiSvWjy+nJTAhc9fxWZy3ge+A3yIubYc+Edsy8Je4XwmNspMCCHKzlKJW2G6iVcqpkKWHj7D0mdVTmw2ZTiPNWxFz7VwdLFw5TYmcjcJY82IA6E7QGer1bzM+iAhhCg9yxiWdGFrhOvXMDEZFI5+OKrhsstkc19dTLwOsZVAXjjSxFzch8RddDnWFnCAhTAlbkIIcQmWzblVsTzbChYabGEVi+nQ5T7RKfn1PByTdm/VcBA+y1cLfQj8GJvluQ08xlYIfYpVVO5vtZrqfxNCiAuyNM4tCUnWsJ9rFXNtdzAXl2Ei18XcVCfctx/eYqJCH0SyD/SD6Pr5vI+1Bfw9sIWJ2f8G/l+s/y3NxQkhhLgACy9uSYm/i1oTc2zXMWG7G44ME7R9rAz/GRYSXAmvG2BCMw3HVAvndQPbdv4nwPfDeTYx4fOeN28PEEIIcUEWXtwYdWsNTChuYJWKb2NicgtzQ11MwL4iLkF9SBS+aTkmD4euhHPdwcT1JvAF8K9YBeVLYn5QCCHEBVlocUvyWu7YvELxLpbPeg+4jYke4TLHBPEIE5MBsXWg0s7yyhT63rzfbhtza+vhs+uY0P0PTGRfomHKQghxaRZa3BKKpf3dcL1OLOggedxf48/1ysmpiMpWq9kJO+oaWF7t55hT28fE+AvCxBIJmxBCXJ5lELe0b22ICUgLc2IZMa81xMRkOxy7WGFJj9GG7mnRx9zii/DZT8P51cJ5HKmBWwghJsMyiBvYz3ENE4p9TDg8D5djfWU9TFi+Jk7n3yO2BAxgektRt1rNfjvLj8J5uJvsJI9L2IQQYkIsdFVe0tc2JFYkrmOVkptYDm4DEzkXsUdYUckBsT1gYv1tZzjnCiz2ZnEhhJh3Flrc4ERRiVdLrmFCV8McXQdzcGuYY9vHQoRdNM9RCCGWjoUPS261msN2lqd5t254KCeGJb1/bB1zbF5E4rk2IYQQS8TCi1vAKx8dnxlZxYTNR2/l4bl5eM7MwpFCCCFmx8KHJZ1kf1uV2LdWxcTMKyIJz+kxwTU3Qggh5otlcW6OhxrTnW7e/+YMlWMTQojlZmmcm5PMmgRUlSiEEEIIIYQQQgghhBBCCCGEEEIIcV6WrqDkrKjwRAghlpfSiFsQs/TnTa+7sKn3TQghloClF7dE1KrYvMle4SnFlTkSOCGEWHCqb37KwuOTSxrYEOVVTOSawEq4348aUC2GLIUQQiwWyzahZIQxGwMq2AqcQXL4eC6fR+nbueXehBBiQVlqcSOO4PJdb2vATWzzdRcTt1647pfHQ5Wv4HyFEEJMgKUNv4VFplXMsa1hIclbwAeYuPlW7AwTtAzbzO3C11PuTQghFpOldG5jhG0dc2z3gQdYru0IE7JXwFPiMtNGeGyP0TU6QgghFoSlE7cgbJ5jWwFawG3gHeA94F64f4C5tXSh6UG4rzPzExdCCDExlqpaMikgqWGitQpcx8KRd4G3wn1ePblCXF56RGwZSN9PCCHEgrFU4hbwnjU/vFikkjwOcTN3JzwnPQaoWlIIIRaWpQtLBoaYmK2Gow+8JLYB1DBRewI8AraBXWKRyQA1cwshxMKydGG3dpavYGX/YCK2gRWT3MFClNcxsasDfwCeAy8wccuBgTZ1CyHEYrOMzs3DkJ5z62JFIttYZeQ1YiHJLuboDoi9bXJrQgix4Cydc4OxFZNNYmuAl/oPwnP2wu0ucm1CCLEULKNzg1hU0sdyaz5aq04sMhliIcsj5NqEEGKpWErnBsfurUYs7/cxXF4wMsBc3HF1pApIhBBiObh0K8Ac94INMUfWxwSthxWMeLl/nxielLAJIcQScW5hCmLWSF7vIjKct3zVOOGViAkhxPJzLnELYrGCldM3iK6oi+W2OvMmcEIIIcrHeQtKathw4TvYnMYdbPjwPlZ1+IqSroo5LTwrpyiEELPnzM4tFGi0sMn6fwz8DdYf9iXwa+ATTOR2yvKFHgTNQ7On/S6Pfxdl+b0IIcRVcybn1s7yGrY25i3gh8B/A36EfaH/K/A1Fqb0GY5L+yUefhcuZn6ZFuakQjdIrg/bWV6RwAkhxPQ5T1hyiH2JN7GcWwWrPnyBhSMPMXFbyi/vxKWtETcI+OGkw5lTAUx/J0v5+xFCiHniPOLWJA4b/l/Ygs8d4H8Cv8dErjspZ+I5rKt2Oomopet0NrDfhTu2olt1QRsULofz8nMJIcQyc56c2wo2l/E2sInNbTwCnmFCd3jZSslESIpcSd4qOR/f7F3HxO0+9nO7uA0Ll0VRG4w5JHBCCDElzuPceljo0R2bDygGOLqosAUBWcNCnONCfcP0aGf5TEQhWXzqk018wWkDc2774b7hKUdRzPrJJZS0qlQIIWbBefvcPCxXJc5nrFxE2BJX5MUqLpRpBSKMCsOxE5q2wIWfNd3q7YOYm8AD4qLT4yb25Pz8eo84JcWf00sOTUYRQogpcK4+tyBiRSE795dz4opcOCrAXay1IH3PovPxpnGIDmjiJD1rxfP0DQMd4B0sNOmC5aLmQuwC5rMr/fz93Je6qlQIIa6SmW8FKDg2d0JrwBbWKwejTiidgtIjuMZ2lk9l3FdB2NKcm6/PWcP6/e4kL/MZlen5+hzLlXBfN9znP4MQQogpcVUrb9wNNbDClI1w332iEPQZFYUOJgyd8B79IHDTcD9FYfOQpAvbJrbd+1o4H1926mHIQ+IqnU44//3kvdNLIYQQE+YqxK3ohtYwkagD38W2ZGfE6f0ZJhQ5Jhq74fUTLywpuMo0HOnnuc6osN0P55cW2BxiYufnux8e85+d5GevtbO8t9VqTi3EKoQQZWSm4hbEoygYm1i+7T3gx8A28BJzPLvh2Mf66Dokbqqd5RMrLhlT9u8hUw+brgM3sCkt98LxrXBOe8RQpJ/vK6yy1POI3h93K7z3l+F1qpoUQogJMxNxKwhHnejWXNg+AD4Cvoe5t11MFLaBR1gu7lV43Up4ny+Bl5cVtkKOrZYcLsAtzKndCpcPMCF+GxO4GiZqfczFvcIKTbrhsc3wsw6AzzCRPiBWm6KxXEIIMVmmLm6JsKXVhi1shNfbmKhtYbMq38ccUhcTgK/Caw+x3NzPgYeYMzry97+oMCTC5qLrgrYSjtVwPi3Mtb0bzvFdTOTWw/PXMaE6Is7YzDFx+y3wGBO9DBNB75+rEtsHhBBCTIhZhSWrxErDdaID+hZR2D7CXE4NE8AVYkjvFfApJh7urFJxuAxpKDIt+W9hjusW5tDeTo77mNg1iI6PcN6r4ZxeYkKchcf8vP2zUscocRNCiAkyi5L0tCnby+W96jEPz3E3V0te5/1j9XCew+R1XpU4KVEYN10krdbshMsqJl5rxP68IgOiQDaScy9OKUkbvoUQQkyQWYhbKhouGP7F7k5uiIUe0ykeu1he7WvMBR0Se8e6TFbciuda7Fnzz/SVPv7c4mu7mLvMCueatjP4+ygcKYQQU2JWYUkXNjBBu4+F/J5ixSIbmMvJiDmrdnjML59g4UlvhL60OGy1msMk7zZuJuQQ+x1dx6okG1iF4x7Rnfl8ySNMkJ9g4cht4Hl4rve8pRNe5NqEEGJKTF3cgoDUsIkeQ0yguth2gbex6sGPsQrDdzAhaAG/wooxHmF9ZDvE/rde+v6XPMVxw469yvH95Jw/xgpJvIWhH87T3e8eJmrPw/EVJnQ74bFDRkdxqQVACCGmxKyqJbtYxWAdy1l57mwXCzvuYuHJx5gweJjyC0zcdhkVhmlsBqhgDvIdrJBlF/hNuO8mlhfcx9xmBxO2W8SwYwX4HAul7hCbuXfDdc8VppsBmNLPIoQQpWYmzg2gnXntyHFO7ZA42aOGhSnd6XSwCsVtRieWTGMPWhULO3qf2u+w34s3b3tRyX64v4u5zHVMuHYwt3kTc2su0HvE/jd3m8eOTYImhBDTY5YTStLQXxcTtwHmbhqYQPj9fUxw3PWk4jBpURhgYce0yTxdX+Pn5FWPe+F8N8P5vQzPuUfcdbeDiaGfe/rzS9iEEGLKzFrcvPrQizi8vL5BdE7udn7JaIVknynscUucZbGwxB1mTsyr+fivlfDYE+K0kedYyPUlJtQ+D7NDFGWJmhBCzICZiVsoLHEnBGHRKXHxaQcTBM9LHWBhQV8nM+3Fnqn4pMtGveHar9cwcRti7szFeIAVyOwx6jTT9ge5NiGEmAGz3grgAuL5s3QMVerQ/LlVQmXkjEShuEXb3Zyfqx9eROKuzYtErmNi7MUjLtTqaRNCiBky851ipywDhSQceBXuZsycyXSIcirCPkoMLGzqW7gHWJFJDcu5pU3gV/ZzCSFEGbmyhZmJmADzEa5LzikVtuLiUs8RejuDuzLvW9sgrrJJ83dz8TMKIUQZ0DboAgWBc0EbJ3BpaX8qbqtYiDXN30nYhBBihlzFJu5FwVfTeOFLGrb0x9NxWo4Lm8KQQghxRci5jaEQMq0ULp1jUZOICSHEfCFxew3FvGARiZoQQoiFpp3llTeJnRBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBDidWhjuBCi7OhLcEkIgtYE+th/10q4PthqNQdXeW5CCDFrJG5LQDvLq0ADuAEMwzEAuuHobLWa/as7QyGEmC3Vqz4BMRFqwDombh8B7wEPgNvAJrCiUKUQokzUr/oExOUouLbvAP8JeAI8Bx4CnwAZ0MNcnBBCLD0StwWmneU1oAXcAr4L/BdM3CrA74D/DjwDXmFhSiGEKAUSt8WmjhWR3ATeB34Urg+BFWAPc23KtwkhSoXEbbEZhGMDyIEvgFXgCPgX4LfAdrg9vKJzFEKImSNxW3xc1Krh+r9gYvYr4CtgH+hutZoSNyFEaZC4LTY9rFLyAPgSy68BHGKhyD2gL2ETQpQNidsCs9VqDttZ3sEKSDpY1WQHq4psYCInYRNClA71Pi0BoYetSphKEkSvIscmhBBCCCGEEEIIIYQQQgghhBBCiIuggpIzMm7wsAo2hBBiPpG4nUKY2zgg7kZzhuOuS+iEEGJ+UJ/bGMKk/RWsSboobmCiNywck/x8/zz/bH//oURUCCHejJxbQtIvVsPErU4cOpyKis90HCbXB5MQnkRYa8T/PoNwHj0tHRVCiDcj58aIU3Jha4TjNrDLSZfmgtYPh7/+UsIThK0JXAfuYmO1euE4AjrtLD+UwAkhxOuRuHE8xqpKFLc65p5WiWLWL1zvEcWtBwzbWX5Z91YD1jBR/SGwg43Q2sMGIL/AhiNL3IQQ4jVI3DiR40qFrQlcw2Y1dojC5vMb+8n9lwrxhgKWVWzx6EfAX2HbtbexxaO/DJ/Va2f5C+XehBDidEovbkHYKphrcte2ionaJvAO5pqOiOHBPFzuYyLn71G9iHtrZ3kD28l2G/ge8F+Bv8XE7SXmKD8liqkQQojXUGpxS4StiuXYVrCw4DVMaO4CHzAqantYuPAptuXa83MD4NVWq3l4gVPx82hg+bb7mLBWw2fvhs/qECs45dyEEOIUSituhcrIOiYsa8BNTNTuA+8Db4XH+lj+6zkmLL3wusdYLsxDhheZxj8k5tv2gY8xgV0BfgH8r3Dfy/A5EjYhhHgNpRS3QihyJRwtLAx4B7gHvIcJXAsTwSEmcnl4XVrg4etmKkClneXnber2xaJfh/f6RywMuUfcqr0LdFQpKYQQb6aU4hbwApBhcum9a553W+XkdBIvHqmG+7zIxF97kWkl/r5HwBMs7PkHTNBuYCJ6FJ4jhBDiDVTf/JSlpShqfngTdYVQ4p88J8NCg16i7zkwbwkYYC0B56qcDGLoeb2XWIXk51jIs42JXE8VkkIIcTbK7NxSp1bDqhU3sTDjMyz/VQXWiYUdjzDheRwu9zCRc4G7sPhstZqDdpbnWPVlNX0/iZoQQpyP0o7fCk3ba5ioHWFCv44VlNzG+s3WsbBgBxPAh5iwvcIc1i6x301zH4UQYk4os3MDc105VijiYchDTLyOsCbul9gYLH/+c0zUPAc2QMJ2KbROSAgxaUrr3OD4SzUdt9XEikhWsNDganjsEBOxNSxkmWGi6HMfJW7nYMzWgyLagiCEuBRld27OABMpL/n3cv9ucvSxkGXGaBGJvoDPSNKCsYaFetMWCifduDCJeZ1CiBIicYtDiAdEEfNS/x5xUHE6V7KX3CfOQOKSa9gUFm9GHxInrqSDqf1AAieEOC+lDkvCiYZuF7V0LFeXpIeN6OhUyXhGCuHfJlaos4m54OIqId+y4H9AdIHuVqupPySEEGem9OIGJ/a5VZJjyMkS/6qmhJyPsPHAhc0rVD/ECneOw7tEMfOtC+6cjzCB0x8SQogzobAkx/vcKsQw48j0ksKXqoTtHIwZTu2Dqd/CWi68YtUd2wEmbjmxh1B/hAkhzoW+NBLSknS5hMtTGE7tu/FuYbM7P8Lc2x5R0Hwp6wHWcvGM2HbRAfr67yKEOAtybgn64pwcY4StRXRsHwDfBv4SE61dTNC2sSkwv8dGnHluzoVOrlkIcSYkbmLiJMLmu+7WMJF6F/gm8F3gzzD3tooJnA+L9lxbOkjaC0+EEOJMSNzERCkI2xpxhNldbD/eFvCnwPexvsEq5uqa2PaDBrYI9gUmdDXigG8taRVCnIkybwUQ0yUtyvFCHZ/6cp04kNqfOyy8toc5Ou8rHML4UV1CCFFE4iamhZf2p03ZNcyldbGQo7cA5Fi+7VNsYetzLBRZbJiXaxNCnAmFJcVECW0VxXVCdzGnto8Vi2yE+++El3WAXwC/C8fnWAHJPjEHp6Z5IcSZkbiJaVDBBGwFE6ZPsRaAPiZyv8Ec2jtYIUkDW8r6G6yAxNsBfDi15ncKIc6FxE1MgwE2fSQdt9XFSv4fhcfWga8wh7aKrRZ6hBWT7JGEIiVsQojzInETEyeEJiEWk/SwHFqNuPj1GubedjGHdgMTOJ9Ycjy/UwghzovETUwTFzcvIBli4cZauH2EiZkXlrwiClsf0DYAIcSFkLiJaZLuyYPRvrUuJnTd5HkueAMkbEKIS6CeITE1CuuEXNT8qBBL/b0PrhZug3JtQohLIHETU2XMOiG/HJKU+Acq2tsmhJgEEjcxdcZMFakgZyaEEEIIIYQQQgghhBBCCCGEEELMLSooKSFvWhujQg8hxKIjcSsJBUF73X/3scImwRNCLBIStyWkneUVF6OkkdoZW5af3D7tugROCLEwSNyWkHaW17D/tt4QXUkOkvtShkQxGydw2qcmhFgYJG5LRBJ6rGP7016E2z7bsVK49OtDTorbafdJ4IQQc48GJy8JQdh8tJXPc2xgguSPwfg/aIoiNmC8wMEpOTkhhJgn5NwWnCSnls5urGL70lawxZ9+/2nClApYUdgGyXF8v9ybEGKekbgtKGMGErtbqxI3YP974J85KW5+WQxJpq4tvSweEjghxFyjsOQCkghb6tqqmLjVw1HFFn+2sMWfdWKBSTHMeJpL64f38ctBuN4HhmlVphBCzBMSt8XldcLWCMcL4B3gabh/XJGIC17RnfWJFZepsJG8VsImhJhLJG6LS1reX0sOF7cVTIz+FPiHcJ8LVDEUmbq2PnF7drXwmH/eMLkUQoi5Q+K2YBSasovuLXVtTUzgDoCbyVt0iQ6smFvrhSPdiN1PDhjtnUOhSSHEPCJxW2zSKsmic2ti+bYM+BbwnJiH8w3YaX6thwlfN3m8lxyd8Jh/roqRhBBzi8RtgSjMh3RR8+subCvAajjWw+1/B/wUE70ME6k0DDnARM8FbEgUuk54TVphmR5ybUKIuUPilpCMrYLgaOYl5FaokPSGbBe1omNbw4RtA7genvd+eN4eJlguav1w+zC5vxOOA066tdS1VYFBO8sBTS4RQswPCi0B7SyvYg7nNvYl786lA3Sv+kt7TE9bWiHpxSOtcLigXQduAPeBLaypOwP2gSNGhS3Dfu5uuDwEdoBXmBhm4TUe0qwQp5/sAPlV/46EECJFzs2oYk7nPvY7cRHYCUf/9JdOl4Jjg1g4kh5NRh3bdayI5E44bgDfw/JuB5hQeZHIAfbz+s+8h7UOFKsxN4C74b0fheekzk4IIeaG0otbCEW2gAfAXwAfAo+BXwCfY0KQXcF5FYcbe8i0mhwrmJi1sBxbiyhsbwH3MMG+g4nTGubUcsx15djPtoeJ+LNw2z/vGjaA+TrwEPga+Cq8znNzFdTQLYSYM0otbiEcuYYJwQ+Bv8Rczg3gt9gX/WDWX9ynTCCpMZpjWyFOImkAm5iIbWLidhdr4H6A/XxeXOJ9bENiXm03fN5OeN67wDcxcf8c+AxzdR2ioPl5ef+bhE0IMTeUWtyIDcwrmEN7gjmSXwNfYF/6V5lzcweVhiAbjPayNTHXthKOG5g43ccE7h6WS1wl5sn86Ib37GOi+A1MsNqYuHsYc0AU1/QYaQmQexNCzAtlFzewL/in2Bf/XrjvFRaGy7ZazZnm28a4ttSxFSsiN8JxCxOwm+HyRrjvfri9EV6Xvq9fH2Ci2MNCjg8xQfOiERfVdGrJuMWnEjUhxNxQanHbajWH7SzvYdWBD4FtLJ/UIDqWq2LcJJL0SKeSuPCtY2L2IBy3wn0NTsf73WrEgpQWFoasJ+cwbktAKmgSOCHE3FBqcQPYajUH7Sw/whxchTh26qp73IqT+9MJ/X3sfHNiwYtXOu6G4wYxR+Z5stNIhdSnkRwRy/+9wdubvI83AyTnKWETQswNpRc3MIHjal3a63jdkONxk/xddNzNvU50usRqyV3i9BJ/j/Q90+vp46l4SuCEEHNB9c1PEbPkFLc4TuCKy0W9dP8+lmPLCQ3WmBtLd7n5uK0jTNgeY8U0z8LxPLzWHW26GmfcOYGETQgxR8i5zTevc2wuaNexsv11TIg+xQTrPaxCcj883yeZ+NT/XUzE3LE9A77Eims8tLmD5R47xAHK6edrvqQQYi6RuM0345xaBSv4+DYmWB2sdH8dy7PdxRzcHrastEds8G5ibqyGidbX2LQRF7EjTNS2w+t93qQ3bXt4Mg1HCiHE3CFxm0NCFaff9ErGFWz4cQMTnd+G694SUCPOw9wNj/WAl5i43cbE6DC85xombF9hYraLuTx3aEdEcesxRtjU0yaEmFckbvNNFZs6soq5pz9gzs1X2wyJPWh9ovOqhvv2iHMhO+F2jrm0LUzcnmOhyFeYuHlRSXE7t4vbELQBQAgx30jczkgY1eU5pv40v9xDI7f3rz1ntOu0gRQAACAASURBVLfNZ0ympfh9omh5u8BheJ5PLelhDs0n/+fh9jNM9F4RhyinC02LhSMSNiHE3CNxOwNB2K4RizYO21mehRaCiRPEoxsazNOG7aKouLB1GF1e2sUEq4rl2QaYcG2H64eYmN3HxPOQ2C/n/W1pji39PCGEmHskbm8guKhVrPrwz7AQ3m+I7mhqJLk3H07spD1oHU5uxnbXVg/n7mHKl+F1HUzo7mEi6BWR3qTdY7Q68ti5ybUJIRYBidubqWNjrH4AfAfLX7WZfdN32k/mguPOroaFEsEECuL2AJ+8sk8cKeY5ul8Sp5v4fcWqyHlucBdCiLFI3M5GB6sq7GK9YE+IIjILxrUEpCFLH7PVZzQ/10ju3yXucXMh+wLbIOC5uLSApFjyL8cmhFgYJG5vpocJw6/DMQSOrig8lzZze+GI4/dBzNF5UcghcWt2KmBHwAfEkGRxxNbIgGSFJIUQi4LE7Q2EvJcPDr7K3q5iaDAVtiGjq2jcuflzvEIynQnp7/c7orj54yNl/yBhE0IsFq+bFC/mhMKON19zk27nLj7uAue72HyDQNo+4OLWxPbAPWI0DKlCEiHEwiJxWxDGCFy6GTt1bDAqbhViBWS6ky0d53ULG9VVdIOaQiKEWEgkbgvEGIErClvxqDF+wkjq3LzRu5vcx7R6+IQQYhYo57aYpO7Li0iK7s2bvovFIel7+GUHWNlqNafatyeEELNCzm3BSNwbnAxDUrhd4Q1T/BV2FEIsIxK3BaQgcHDyv6PfHrtIVIImhFh2JG4LyhiBSymKmwRNCFEqJG5LwGlCJ0ETQgghhBBCCCGEEPOJwpJLyLgwpUKUQogyIXFbEk5pEXBUWCKEKBUStyWgneU+isvHaUFcXAqFdTkSOCHEsiNxW2DaWe7jt6rYEtWckxu703Fbxw3dEjghxDKj8VsLSghDppP/N7BZknByyWhxs7aP5BJCiKVEzm0BGSNsK8A6sEoUrtSt9YhbAfrYLMme3JsQYlmRc1tcUoFrYsJ2l5NbtbvElTddbPu2v1biJoRYSuTcFozEtdWABrAGXANuAN/A8m8HRDE7xHJxB8AekBHFri/3JoRYRuTcFogxwrYKtIBN4C3gdrjMMPE6AHaAZ5hjW8VcXgd4PuPTF0KImSFxWxCCsPkG7hqWZ2thgnYXeBd4B9uqPcTEbSc81xeRfoEJnldVKjQphFhKJG4LQMGxrWDuax0LRd4B3iYKWyO8rIGJWgVzbXuMbvAWQoilReI2JRJBqgCDCea20r41L/GvYqJX/O/pj1XCc3uMVk7SzvKK8m5CiGVD4nZBEvEawuhYq9BcvUYsze+2s7yz1Wp2L/mxxYZsF7UG5s464fYQKyR5CWxj4UkvJHFBHLuZWwghlgFVS56TIGqrxPDfgFBuv9VqDsLjDeA+8D4mMjuYyOxttZqDC36uhxNXsOrI25g4XQceYKHJTSwP1wdeAV8Dj4Gvwu0jYv5tAJo1KYRYTuTczkEibO9h+a6jcOwDO+0sP8R+p7eBHwJ/jYnJTzDnlBFE5QJUsDybV0F2sakkDcyh9bGqyLXwOWCi9hwT2A7RuWn8lhBiqZG4nY86cBP4DvBnWNXhY+D3wGeYgNQxEXoPc1EvMfG7jLCx1Wr221m+S2wDcMeYYQ5uN3zuEBPctfDZe8S+Nw1OFkKUAonbGWlneQNzax8Bfwf8R0xg/g0TlifAi/D0DPgV8DTc93ssJDmJeY6eK+thYlrBRLYWLj30uEYs++8Rc21CCLH0SNzOQAhHNrFw43eBP8b6yjrA7zDxOMJEJ8fE7rdAGxOUPSYnLGmlpOfPvE2gg4UgB1iebyWc13ERiVybEKIMSNzOTg37fdUwwXiGFWn8HPgUE5PeVqs5DLm3nFC4MSlBCe8No0LZI4pbzmjByBATvCFybUKIEqFqyTMQnFsLa5j+PubcbmH5tv8J/BrYv2gl5AXPJ93lBnFZ6XFuDRO8hXJsvlF8Uc5XCDGfSNzOSNh2vYHNbrxGFJCHwKutVrM3w3NJt22nlwtZMBJ+Ho8ieO/gRF2vEKJcSNzOSNK/5oeHHXsTKhS5yPmMsIhCEPr3VrC+wAPiclVf1dNZxJ9LCHG1SNzOQTKVhFmFIJeZpFDnOvABJmxd4oqeDNiZpSsWQiwHEjdxZYRQ7zo29PnPgG9irRPPgM+BL7FCnQO5NyHEeVC1pLgS2llex4p07mLTXP4r8KeYY/snzME9w8RNCCHOhVafiBOMy+dN4f0bmGu7D3wPq0Jdx0KUdaw30Hv0FGEQQpwLOTcxrvqS0E93zBTCgp6zrGBjwr7AevK+Bv4FG2e2g4lbNZzjQlaDCiFmj/4iLjGJg3J3lP7/MGR0Lc7ERCUpJFnBwpLfwBzcanjK/4eNM/P5mX4+XcIoMRX0CCFeh8SthCRVn1XiipwhyX46Yq9Zuj9u0gK3ivUMrofzyIkjzPrYyiDfeNAL9+fYiLFcDk4IcRoKS5aMgrD5OLEW5oqGhcNnUvosSxfBSxNGiXWw3JqvCvL5nOvY9oW3sArKPawtYBdb4dMljhUTQogTSNzKiQtbI1xex8TCxcsFrRcODw8O21k+MfcW1vjk4bOdJubo3gX+PBwvsNaAfw7n3iE20QshxAkkbuXDnVsNy3mtYS4pDQcOiMtNfePBVKaweO4sTCppYWuFvgH8FfD3mHPrYUUmH4fDV/0IIcRY1ApQIsaEJD3ndQ0TkQ+wJav3sZDgTcxJ+ZDmFaA+pVYBPzc/rzvAZnL/HjGE2QEG025ZEEIsLnJuJSARgVTUWlg48g4mZu9h7qyDNVK/xIZCd8Lr1rHlq9MKBQ7C56xgjvFz4Gfh3F4A/ze2GPZrgpNUQYkQ4jQkbuXAw5B1TDzcsd3FclvvYotYq1gIcD+8zhevZuHw95rWOR4C2+E8XMhaxI3n24TcoIRNCPE6JG5LThKKrGEFJE1M2G5j4vYACz/WwvN868EAc3AQw5JTE5StVnPQznLfBrBDbOjOiTm/jLAQdlrnIYRYDpRzKw/FKsi0SjFt4C4Wk3ST6973NpURXWF1kLvFZ8CjcDwN9x2qeVsIcRbk3MrDcSM2ca7jEHNJfh3MrT3FtoxvE8OS3eT109wd1yOM3Aq3+6EnrivHJoQ4K6o2KwHBZa1gBSQNTKCuY2HJt8L1DUzA+lgxx7NwvCJpEZiVwLSzvCIxE0JcFInbklOYH+l5tzVMzHz01Uq4fRAe38YmgWRYvktFHEKIhULiVhJCk7SX2jeJk0Cq4XoNE7I6Jma7xJ6yPprGL4RYIJRzKw8uTOmk/S4mah527ITH1xidViJhE0IsFBK3khCKMnwAMsSm6QqjFZFeVemzG1WdKIRYOCRu5cIn/Q+J1YjeuJ2W+suxCSEWGuXcSkZh63b6338AscRf1YpCiEVG4lZCig3YEjEhhBBCCCGEEEIIIYQQQgghhBBCpKigRJxKobLyuOhEBShCiHlH4iZGaGd5LblZFLf0kMgJIeYWiZsAjl2az59sYaO4/P+PdHRX2giuJm8hxFyiCSUiFTbfGnANG5p87NKIo7h811qfKHJCCDFXSNwEmEOrYv8/rIT7NhkdyeUDl13UfHmpEELMHQpLlpzg2iqYsK1iIclN4B6jK286xAHLh+ljCk0KIeYNOTdRwcKRdWyv2wZwE3gHc2y+rDQD9oGX4b4V4g647ol3FUKIK0TiVlISx+Z5thZwHbiNCdvb2JbuDubSngFfYYJXAV5gwtYvvrcQQlw11Tc/RSwbibA1iKHIa8AtTNTew9zbOnAj3L+B/TGUhWMQ3qNaHMQshBBXjcStvFSSIw1LroejnjwPYlWktwIctwPM6HyFEOLMSNzKzaBw1DCx8qpIv74LPAd2sBBlN3mNxE0IMXco51ZCtlrNYTvL3XW5Y6sBr7AQZQPLpzUwAfsCeEIUOC8iGW61mmoHEELMHRK38uKFJF4U0gv3e6HIBrFpewcTt31M1HrAQC0AQoh5ReJWUrZazW47y/vEfFsPCzkOMAe3QQxBNrAikqPwPImaEGKukbiVGxcpb9L2vrY6sVG7j7UIHGLC1keuTQgx50jcRJ9YEenXfTOAF47kxNClcmxCiLlH/Uklp7ANwFsDqsR8m4uZD0vWqhshxNwjcRNpU3e6v21AstKmneUViZoQYlGQuM0In+IxrwJRnDIyr+cphBBnQeI2RcJW6xrRFXmYr7QFGa8b1VXW34kQYvJI3KZEO8vrwBpwh1hi38OqEnOgV5Yv84Kgve7/uePfR1l+N0KI6aBqySnQzvIq1hu2CbyPCdshcW3Mc2LT9FKS5PFgVNDS+1IBGxGzdpZL4IQQF0biNmHCl3oNc21vA38RLp8BnwC/JDq4pdyDllRgrmF9c5XCUcQ3fY8MYpbACSEuisRtgoQv9QbW9Pw+8GPgb7HQpM9kbLPcopa2E6xheUZvNfBdcE4qZi5uPpAZYKgqTSHERZC4TR7/Ym9gI6ya4f49LBx5gOXcluoLO3FrflnHtnXfwsKxvoGiGIr0w8XNG8ld4NQ0LoQ4NyoomTDtLG8Cd7Eln38UjhbwKfAPWGjygAlUTBbyWnAFBRlJsYiLms+qbITjbWCb6NzSvXCpsKVN475u53gqitybEOI8yLlNni7m0IbAb4CvMadWAR5iockLf1kXQn/jxG2IhfOAmYncacLWxEK0B+H+dAdcKmz9wuGDnL3oZKj8mxDiPEjcJk+64PMIWxVzGB474oItAEnYbxOruEz75/xzUxd0okBjyowTuCYmUu8S3CphhFfhPHvEBal+u4oV3Sx1VakQYjpI3CZMWATaI66IqRALSIYXFDYXjRpwjfHh5LQg49gFBcczlbxVISRZFLcmVlBSBd7B9sQNifnGVMh8MHMf+111iCLo7y3XJoQ4MxK3KRAE7NKOIwlB+mLRFeyL/x4mnsVqw1Qgjq+3s7w7xZBesUKyFs5zFcs1XsfybuvhfPy8PZ92SBS3PDzeGfO+KiwRQpwZidv8k4qbC8YPsAKVccUX7nz8uj/WL77xZUiE18v83Vn6ea5jIdSb4ZzfxZzsbnI+GSZuR+H6S2Jlpb/nOiaWr9pZfqi8mxDiLEjc5p+0tWCVGJZ8n9EQXp/ogrqYYOwTXdDEKBS1uKB5jm0NE6QbWH/fPeAt4JvhXA6Iy1H3MLF7iRXeVLD/JzfD63KsCGfpJ7oIISaLxG1OKexZ81Cfi8YG8G1MGPaJ4b09ojt6RhIqbGf5yAqbS57XOMe2ggnvZjjH28B9TITvY2JVI4rxEfAKeBrO/RomjveB3wOPiCHK4yZwVU0KIc6CxG0OSQTEqw49zHcLy199APxnzPF4VeZLrGjjK2Jo7ybmnp4Czy4jCoXiES8aScv+14jO7RYWhnwvHJ5zqxOLXjrEkv8+5ugeh3M9CJ9VTQ4VlgghzozEbc5IHFuav7qBOZp3gO8AP8QE4yNivuox8G+YC6piea7fYOKXA5UJjLIqVkSmhSPXMDF9K5zrfeBBuNwMz09dH0Qnt52c90r4ufPk+UIIcS4kbnNEImwuamtYCPIW5sC+CfwxNvXkHiYEQ2Lo7gUmaI8wB+RjsPzxSVQcjhOcYeFwkWqFn6Ex5jUkP6s/7rk4zxv2iM5ulj17QogFp/rmp4gZ4+FId0YbWP7qXeAbwIeYG1phdI4jmCisEsN/x8tRk/e+LOOmi3hlZo45Sa+ATHvviu/RwfKF++H5XuGZtjS4sA3GvIcQQpyKxG3+8KHB/uXewcKOe5gQuItxvDF6NxxZuJ2H13oBx4BLOJ8QzjxtLmR62cTCqNew3NleOJdUuA7DuT7HcoSPsQIYzyG6c5NbE0JcCIUl54/iIOE+Ft67Ex57hIUph1g4rwd8CXwG/Brrf3uEVSIeEkVlkudXHPNVD+f0HiZKD8N5fxDOfYCFJ+tEcfsSC53uhMsn4Zz3Mdfnjd3FWZRCCPFGJG5zRBjd5cJRxwTtOlZw0caEahVzd7cwcQMrnf83TCCeYY7IHZMLxCRL6P381jABy8I57mLFI3cx17YdzrkV7h+G+1cxcfuCuAbIHaqX/4+EI1X+L4Q4DxK3+aOOVR3uYSG7Vrh9gDmcSrj/AbG3bYAJ3FeY+/FijD4TXBcTxLeCiW4lfP5vsfyfz5HshXN9ET7/JSZmbxHza5vhXLeJ7i3j5MJSCZsQ4kJI3OaMrVYzb2f5NlYmXyVWEO6G2ztYXutFODLMPT1mtO/tUjm2cYQBzhArMb0lIA2jHob7IfbbtcL9z8PP4sUwL4i5xLQI5RgJmxDiIkjc5pM0x9TDvvR9BYxP3N/DxMGHDb9gtOqwD5MVh7BdYBDcW7GoxQcfe8O172OrYxWfGSZuPtj5ASbGnl9Lz1v5NSHEpZC4zSdpmb3PiRxgAlHDwnwvMYHrYeG9deIsSd9ePe3y+bS4xHeweT+dN2V7EckL4qiwLhbGPAw/U9rPdlxEItcmhLgoErc5JOS2XDC8N82vV4kDk9OCkVVi3qrYLjANUnfZZ7S5u8toD94AE+gjooB9RgxXplu4x/XFCSHEuZC4zTfp1moP93kertgL9pjo2KYqbEF8/bxc2NJzTcdspeX/HWJ+znNzqUCriEQIMREkbnNKIiD+xe/FHJ57O+5fC0LQn8DsyPPiQubCVnRxxZFaPUYbvl8RQ5LqZRNCTAwNpZ1zCtP4nSFcvbsZs9fN3Vpxg8CQuB08DTt6xWU33FaeTQgxESRuC4KL3Lx9+Sfim66lSfNvHkb1kGPx/KvMIJQqhCgXEjdxKRJxg5MbA/z6sahJxIQQs0DiJi5NQeBSjvvhJGpCiFkicRMTJxU7iZoQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCGEEEIIIYQQQgghhBBCCCHE7NCyUlF6tFxViOVD4iZKSRC0ZrhZDZcDoAf0JXJCLDYSN1E62lleBRrABnANE7QB0AU6QA7kEjghFpf6VZ+AEFdAFVgFbgM/BF5gonYA7AHPMKHrX9UJCiEuh8RNlIrEtV0HvgH8R2AdeA78HvgZUMPcm8RNiAVF4iZKQxC2NeAG8G3gb4D/jAndM8y9/RbYRiF7IRaa6pufIsTSUMVcWRPLt90NlzUsDPkKOCK4trSKUgixWMi5iTIxCMcGcAh8DLSwfwe/BH4KfIHl3XoqKBFicZG4ibLRAb7EKiT/N/ApVkgyAD7DRE/CJsSCo7CLKBXtLK9hebd1LDzZxJzaCvASyICBxE2IxUbOTZSNAZZX62O5tkq4PQDYajVVISnEEiDnJkpHKBTx//eHcmlCCCGEEEIIIYQQQgghhBBCCCGEEEIIseSoWlJMjeL4KlUlCiFmhcRNTJxCqX0FcFE7FrdpCF3hcx2V+gtRQtTELSZCstm6iwlMUWiGWKP0MDx/YgJX2KpdSz6vhzVrqzFbiJIh5yYuReKWfJ1Mn1G35tdTcfMBxpd2VYWt2reJ00b62HT/DnCoySNClAs5N3FhEmGrJcc6JigwGo50UesTxa2XPOei+Fbtm8AfAbvErdoZNi+yg9ybEKVCzk1ciIJjq2PuqQk8AHYYdWp+3cOEfr0L9LdazcEFz6EaPvMW8BHwt8A9TNC+BH4FfBXOZ1u5NyHKg5ybuAwubjVM3FbD7ZucdGldorh1iTmxC5Fs1b4OfAP4K+DvgPcx9/YT4GtM5DrhvOTehCgJEjdxWSrY/0dN4iqZe9hetCNMxDpY/quLhQo9L1cFqu0sv0jurYatqbkG3AG+jbnGeri/G86hSxRTIURJkLiJcxNCku7Y3LWtAZtYiPADTMB8tcwBsI+FC3Ps/7tr4e1ecDFH5c7QxfVLbLP2dWwB6T8BvweeEUVWCFESJG7iXCTC5lWKHhq8AdwF3gHuh/vdNe1gua9+eN1z4Amx0KNygdaACiZwL4BPMPF6GB6rAj8Nj3VUKSlE+ZC4iTOTCFuDWEDSwsrw3wLeDccN4v9bPUyIdrEc2A7m5FwgL1TUtNVq9tpZfkgUy0Pgc8whQtyqLWETooRI3MSZGFP2X8cKSDawApLbWO5rMzzmolUNlwNMEL3vzcOKlwkXDrAw5ytgD3NqB8RwZeeilZhCiMVG4ibOS9qE3cVCi0eYcxokz3F6xJzbEaNVk4PkNedmq9UctrPcQ5vV8Ln9rVZz0M7yyrKX/hdnd4LmdwrhqM9NnJnwZerObQXLq93Gcmy3sWKS97AcXB0TrmdYfu0TLO/2ChO7nChuA7jcF3OJxGzcaDOI/YSgeZpCyLmJczMkjtraxITqCSZQnkd7iYlfjuXavsBChlk4vIry0qLmLPOXeZLrbGKu1+dnusilbnoADCY5u1OIRUTiJs5DBRO1ASZaR+H2CpbzqmDO7BqxFWAFc29pPsy/jPUF/AZCs7pPgbmNhXerhacNiX8s+KDofjvL+/r9irIicRNnJuSyvNKxRvwyPcKELQ+P7WMOLceEbgfLyXkj9zC8n754X0MibGll6ipxJmc62mzcFJjjLQxClA3l3MS5CV+63rzdwNxZnegwVjGB80KPCubaOoR5kigv9FqS/GY6/eU68Db2h0OP0VBkh9g36JNgDoGefs+ijMi5iYvioTC/3iU6urR6cojl5jzPdtny/7JRbJb/JvaHgleeurD5qLFDLGR84R5CIZYBiZu4CB4KqyS3IfbBudi5uL0ghiMVknwDYzYuNLHw7i2sQf77WI7TBW4Pc2qvsEb5KtFN77ezPNfvW5QNiZs4N6G/DCw05g7Bj+I2AMLtihqq30wibC5qq8Th0O8DHwJ/TnRr+8A2VpF6RByF9hCrYtWEFlFKJG7iQgSBczFzB1fh9BJ/OYc3UBC2FUzYbmB5tm9iju1HwHcw4etjxTqfYL/zPcy9fYWJnru/dDO6EKVA4iYujItXcHGgIpHLUiHm11pYrtKHUX8HE7bvhvt9IksNeIy5tgNM5GpEQfP/Rkvf5C5EisRNXBp9aV6eQp4tPTw8uY6FHNeJfW6pI6tiYeKjcOTEikohSkexGVQIcbX4hvJ+uHSRqoXLQ2KfWw48xcKSn2MObgcTNwmbKDVybkLMASGHWRyjtYoVkgyBP2D5txpWNelN878E2lhByVdYcUlG7HlTqFiUEombEPNFBROxBubCPgYehNu/w5zaPaxgpB4e/xXWAnBIbJRX87YoNRI3IeYHrzp9ilVLtohzOx9hgtbEiky2iYtgn2LzO/eIIUshSo3ETYg5YavV7Lez3Ksd07mdu5hoPcMqKbexxvgjLGz5jFHXplybKD0azyPEnNHOct+Xt0Js5K5hBWCr4Wl7mJDdxMKX+8TB1AOFJEXZkXMTYv4YEEOOECfBVIkDkn1W5y4mgj7LU65NCCRuQswrPjYrXQJbxZzZyHYFYtuAKiOFCCgsKcQcEpq6IYoayeWJHjaJmhCjSNyEmFMSgYPRf6tyaEIIIYQQQgghhBBCCCGEEEIIIYQQQghxHlQtKcQ5KFQwjkWVjEJcPRI3Id7AKYI27r4ToiahE+JqkLgJcQqJqJ3Wb1ZkOO66BE6I2SNxEyIhDC0ecFLQKpz891Ihithpl8fXJXJCzA6JmxCB4NSa2HgrGBW084hbeqT3SeCEmBEanCxKTxA1P4bAW8DzcDud7ZgK3LgQpIvYgJMCV3yNEGKKyLmJ0lLIqVWTy/eAJ5gY1Xjzv5OiW0sFblC8T+5NiOkjcROlpODWXNh8IegNbCnoS6K4FQWpGJIcJ2iDMdclcELMAImbKBUFt5aGHWvhqGPLP/8G+El4Tp3xS0DHObZ+4XKQ3B4klxI4IaaIcm6ijBRdWypsjXD5FNjAxMjFrShGxTDkILyPLxhNXVuFUeETQkwRiZsoK2kY0oXNxa0B7ALfBz4Ot128YHxlpLuyXrisMRqK9KKUPlH4hBBTQuImSsOYkOQ451bH2gEGWGHJ0/AYjG7ALoYje+GoE1sJ+skxLHyuEGKKSNxEWRmXc3Pn1gTWgG3gLiZWFaBLFCqI4cV+eCx93F1cFzgqfGYFqLSzXH1vQkwJiZsoG+Mmj1QZFTYXtwrwF8CvsSKTQ6IrS/NpnXD0wn3dcP2I0YZwd29pPk4IMQUkbqIUFIYfe+l/Gpb0KsnVcKwDLeAa8G54/AATrjTP5s6sk9zuAPtAXvg8d4nD8H6VdpZ3t1pNFZgIMWEkbmLpeU2z9mnhyGtYpeRmeOwHmIBl4TLNsx0SHZpff8XJHroqJpYb4Vy2saIVFZYIMQUkbmJiJI3R89jDlYpMsYCkgbk1F5/rwM1wbAI/xApLXLzctR0l9+2H4ymjTeGr4T3uAY+Ar4E9zOEJIaaEqrbEpQmitkF0IV4h2LtKkTulYdvFbCW5dLe2CdzCZku+BdwHPgA+Ipb6H4b39JzaAebAXgAPMQF7GZ6/EZ7zBfA4vNYLT7y6Ug3dQkwBOTdxKYKAuDtZJeac3M1ciUMZE4pMw5B+fRUTtWtYjs0d2x3gAfA2Vi25ER53QSJcZpgL83zcOiaGHwCfAZ9gQpcRe93SUOXxH5ftLK9I4ISYHBI3cVlqWDjvPSw3tYuF5j4Fhu0s35nll3ahcKTYqF10bn5fA5sneR8TtrewMOJ9TNzWMSGE0XzbSviMHPv5K0Ab+AO2VaCTnEON2MCditu4uZVCiEsicRMXpp3ldeyL/z3gx1jZfA78D2yqvhdWXMWXd5pf85FaLmpe7t/Czn8j3F7BHOh94B1M2NyRVkff/vh2Hj7rKZZPy8JnroTDw5CpoKW/DwmcEFNA4iYuQ1ow8S4mEF4tmHF1RRPFwpHi7MgmUdQ8DHkXC0O+g4Ukb2M/1xonhc0/A8yNVTChvI6FYveIJf/ezO1juYoDlSVqQkwBiZu4DP4FvwP8DHMuO8AvsFL3oyvOIxVDlCl+XulMSC/08D60OuOFzd8vXLEwCwAAIABJREFUDTn6YGTPOebE5u60gCQVOAmbEFNC4iYuQ465lBrwT1gY7girHOzMWtiSfNuwcOkCVuWkAB1ixSBr4fKAWNXoAjSuqrgfXp9hbu2AOKWkOH/Sz2FkpxsSOCGmxml/lQrxRoJ4dbAw5GOsQvALTPBmPnUjEdNUjIoicmIzduFoYtWTXijS46QA9bGfO8MKR55gVZHPw/ES+x24SPp7nCaUQogJI+cmLsVWq9lrZ/kgXJ/HaRvFfWsntmJjecN7WN6tC3xFXFvjVY715P06mIDtYI5tJ7zma0zcPO+2SxzN5eHI9HPTc1Q7gBATRH9FiqUjhCfT8n+/9MbtVaz4423gO8Qc2DrWBvBueOxWuG8FKxjxvFydKGbPMHF7CHxObOL22ZJdRh1gulXgWMgkakJMFjk3saykG7D90l3at4hT/n9OrHT0UOQuJoI5FqZcxaoq3YndxEr/H2Gi9jI85g6tR8zppWFJd24SMyGmjMRNLDMekqwRm7MzbLt2jdjr5gtGXdiqmCi9DI/dwMKMzzFxa4bnb4f7nobXHYTH03L/YghUwibEDJC4iaVjq9UctrMczH09wIRlHxMrn0iyQqyedGHbD/f1MKGqEHv3XMjcnX2EFdHshsPzb4fhvdKKSb+UqAkxIyRuYuloZ7nn16pYXgxGm7rTZaG+bPSQGML0qSNVrEWA8Pgr4mqbGnFgsrcUHIXDc2wnCmzk2oSYDRI3MROSdThTr6rcajUH7Sz3RaEuUn69xmgFZYc4GsvzYll4fh0LW4I5s/3wuAvYtXC/59a8z62fXGrjthBXgMRNTJ3gpDYwYXHhyafpYkJo0gWrWHbvwtZjdDq/ix3hvgZxsshLYj4tD7f/ChPCQ0ZFzXNsp5X+CyGmjMRNzIImVlr/PhbG+yJc9l73osuSCByM5r5ceLqMOjtvPHcn1wjP95BkN3ndEBsz5iHJtI8tHa91LK4KSQoxOyRuYqq0s3wFq1T8D8AW8DtsoscseyzTVoBU3Lx4hOR2uti0lzx/j+jK/PILrK3gF8l9fUaFToImxBUgcRPTxoViH+sL+xhrfJ6qaxtD2vfmhSPpWKw0ROki54+7Oyv2q/lsTV9rUwxH+ufKtQkxYyRuYtp4v9g/h9tHTDnfdgpFcUvvT2dSpgLnYpWHIw03egjzEyx8mSX3aSiyEFeMxm+JqROWmnpP2XDWMyiTvJuLlp9PuhXbH0/FzdsGfG3NuF1sFaw5/Amjpf9D7GeVwAlxBUjcRCkYI3AuXJXCQXK9Fm77CK20Ny4VrSYmgPM8QFqIUiFxE6VhjMAVha14eGgyLe8vTh4hPG9lq9U8nPKPIIQ4I8q5iTJSzL8VHVt6fVxp/zEh7NjHCk6EEHOCnJsoFYl7c4oFJsXrqVs7Rrk0IeYbiZsoHWMEDsb/Wxjn0oQQC4DETZSWU0RuBAmaEIuJxE2IQCp2EjUhhBBCCCGEEEKIaaKwpBAFXpeLU7hSiMVA4iYExzvnnLTXLV2VoyHIQiwIEjdReoJTW+Pkfjc4uZdtgGZGCjH3SNxEaQmi5jMkV8Lhq28cFzSfJ3m8XVsCJ8T8InETpaQgbHVsbc0t4hitomMrbtruIoETYm7RbElRZnzlTR2b7L8GrDK6RdsHJ6dbuI/QH4ZCzDUSN1F2aphra4brbzG6WbuPLSrthct9Yl4uXVoqhJgj9NenKB0hJOk73ZrAOnADuAN8FJ6WYeJ2GI4d4AVwgIlaFdgG+gpNCjF/yLmJUlHItXkocgO4CdwHbofrvqB0F3iMOTTfAfccc3H641CIOUXiJkpDELYaMRS5ArSwQpIHwLtYWHI9vKQfnpNjAreH5ds8VwejvXBCiDmh+uanCLH4jCn7XwWuYS7tDuba7mJilz63iolcg9H9br7A9EzbBYQQs0XiJspG2rfWw8KPR0AnPJYKlW/YPsTcWzfc1+OUzdxCiPlAYUkxt4SRWO6iBlut5omN2Bcg7VsbYv8GWsSiEW8LGACvsKKRx8DTcDvDhNBbBTSOS4g5ROEUcaWctkMtCNs6Fj4cYK6ps9VqHl3iszxXtoJVR65i/wY2sZzbHUzoNjCxOwI+xwTuBSZuRwTnJlETYn6RuImZEwStTsxpDQmN0lut5jA8vgK8DXwHCwk+B74C9rdazd4FP7eKCVeHKHIbwPVwrGGurYn1s61gru15uO3hS5X/CzHnKCwproI6VpW4Scx7ZcB+O8uPwuM3gR8C/wkLIf4EE5mDi37oVqs5aGf5HiZsDUxUO+E9+1hYcjXcf4iJW0YiaijHJsRCIHETMyVxTx8CP8BCjjuYK/sDJnY1zEXdCtd3sZzXQXj+hQnOMB2r5dGLHBM9FzLvc1sL9x3PlpRrE2L+kbiJmZGslnkH+Avg7zGn9CnwfxHzWkMsDPgL4CEmbp8AB1ut5qXGXYVzSItKwITOp5Z0MXHrERu3c2KF5dyS5C+9CnqIcoOipEjcxCxpYOHGbwM/Br4b7t8Pj3WJocIK8Bnm5jrECsVLkeT0XNhc5Lwq0+dKegjyVXhe319/2XOYBsERrzLaYN4Heu0s7132jwIhFg2Jm5gldaxwYxP7Ij7EROv3mHt7CXSDAB33nk2oBeCY8P4Qp/9XkgNiH9vIayZ5DpMkCJsXx9zFwqgD7Pd3BBy2s/xw0r9HIeYZiZuYJQPMpT0BfgY8wwTtH7Cw475/AQcxmZrbSATORcuFbRHDeBXsj4XbwJ9gYdQcy2V6n56HW4UoBRI3MUs6mJh9iuXRWljY7ynw6qIl/hfFRSzJw821QxtHcG1NzA1/C/hr4D0sf/nPwM+xPyiyqzpHIa4CiZuYGaEU/4jYOzbAwmaeZ7uq81ooQXOSPNstLI/518CfYzMz94DfEfOVw3aWVxb1ZxXivEjcxEzZajW77Sz3PNekRmqVGXed3hjfxUKSXwFfMNpCUQ1tEAvpUoU4DxI3MXPKULlX3BQwJSFxUWti4d5/I67k+Rr4Vyz8OwjPcSFMqyglcGIpkbgJMQEKYnZirF0oXpmGyB1iRSMDrC/wUyy/1sAKdqpYw7xvFh9gzq5DHAItxNKh2ZJCXJKQ+6oz2laQ4hsEJt5UHUTVN4o3wuFC1sDyb98n5jWPsDDlc0z8jhQaFsuInJsQFyRZgFrFKj+7nC5s7poG7Syf2Aiv0NLgcy99RVAX+7e9ii1h/QHwx1iRySOsgtLzcxNpjhdi3pC4CXEBCpu96+FYY7QBPBW1fnLZZYIDmEMVavp+3tD9NvDvgL/DxK0H/BT4Epv+0kMLi8WSov+xhbg4Ho5shOub2ASWDWwX3Trm6FaJ63TqWNXiRFMCW62mhzs9THkdm1byDSzn5iHLDnGzeI45SaUnxNIh5ybExUhDkg1MvG5g/6ZyolPzWZW+WqcbXnO8yXsK9ML7V7Hc2ifEwpN/AH6NhScztOVALCkSNyHOSSHX5rmtjXC8g4mbi9ohlut6joUwfdP383aWT2PUl4dKD7At4o3w2dfCff+K9b51kLCJJUbiJsQ5CMLmouZViteAO8AD4P3weB9zRs/CSz1kuI2J31TYajX77Sw/CJ+3gw2l/hJzcrvh/gPC1vNpnYcQV43ETYgzEoTNC0gaxMKNO5hjewfLu9UwEWlhIcLHmKAcElfSuPubVnN3F3OMh+F8vQ1gFcjK0Egvyo3ETYizUyWKWxNzbDewafx3icKWrtAZhPsgVkt6Pm4q8x5f0x4w3Go1jyb5WULMKxI3Ic5AYYO3l/f3iFWH41oAMmzrwT4xD9dP3mdq8x3D+/Y0LFmUFYmbEOfDhatPLBDpYytmvLCkhoUBH2I5t2eYyHm1pAvc1JGwibKi/hYhzkhwb3VixWMX62W7jeXdroXb7uyeYCX3O1gxxyFWyKGJIEJMGTk3Ic6O59MyLMy4ihWW7GFi9gITvSMsTNkPjx0Qx1zJSQkxAyRuQpyRrVazl7QCeLm/N2cfYeKXYTm2LtYmkDHjUKQQQmFJIc5NsgUgPbxNoIaFH32Hmq+X6aKmaSFmhpybEOfHi0q8QrJHnFgCQcgwkfPiEomaEDNEzk2IC1AIT/q/I58Z6X1sx/fJsQkxW+TchLg4aYFIhaSHLREzTQIR4gqQcxPiEhTXxcihCSGEEEIIIYQQQgghhBClRDk3IWZEmp9Tbk6I6SJxE2JKFIpNKoXL4w0CEjohJo/ETYgpkAxZdqqFp3gbwQAJnBATR+ImxIQpbOzewEZwwei+t3QvXB81egsxUdTELcQESSaX1LCNAevhelHYekRhq6IRXUJMlGKoRAhxOVzc6sBKuH0H2MT2vfnOt1Y4muH51WJDuBDi4si5CTEhgjil4uabud/Hhij7TjffFHBAHLrcCG/Tm+1ZC7GcSNyEmBxprq2JCdst4B4mdJ1w7AFPse0Bm5jDe0kctiyEuCQSNyEuSeLYXNjWgBvAW8C7wH1M6Ny1bWPCdoCJ3GF4fbWd5aqcFGICSNyEuDxe9r+CCdt1zLHdB97G8my15LlVLPzoxSQQC02EEBNABSVCXILEtfkBscwfTNTSQpEe5tp6yeH73yRuQkwIOTchLo+7rj5xp9tKuNzH8m8NTMC2sVDkU+AVFprs+OsUkhRiMkjchLgEW63mMLi3AbFCcgg8J7q2fSxceYgVjnyJFZV4BWUPCZsQE0XiJsTlqWBOLccc2Fq47yVwhAleFcgwwdsBdrHwZHFztxBiAkjchLgkW61mv53lh5hwebHIIebm9jBx62Lit4aFIj3v1r+KcxZi2ZG4CTE5vJCkG253MME7Cte7mGurhusamizElJC4CTE5XNy8+tHL/l3M0mITFzchxBTQLDshJkRh/FaxPcAHJRPuk2MTYopI3ISYIMnw4/RyuNVqTtWl+edKMIUwJG5CTIFZiM1ZtwhI8EQZkbgJsWAk4U+n+O94WLwugRNlQ+ImFoYxIT8oSe6qneW+8LQoakWhS2dUjlwvw+9JCEfiJhaCIGxNRmc19gnzGZf5izv87KtYQcqA0YIVGJ1p6ZdeuTlMj2X+PQmRolYAMfeEL/cVbNr+TawZeoD1juXE+YxLRaH6so+t0dnnpLilpGLmYnh8vZ3lClGKUiBxE4tAFXNtt4AfYj1iR9jg4a+BTjvLe9OuSJwlQdhcxHxP3Cb2s/v9RVLnNhhz9IG+BE6UAYmbmGsS13YD+Aj4P4Hb2FT9fySOuDq6qnOcNIU1OvVwNLAQ7H1sLmWN0SbworD1k0vCayvE7QVCLDUSNzG3JLmmm8A3gR9jzm0VWAf+BQvTTcyxjSuvn6XLKWz1dsfmi1D7mLAPwmM+8QRGw5Gei3QR86WovlpHu+PE0iNxE/NO0YnsY1/cHwOfAc8w13apL+tCef1IgUY7y4GZilyaa6thrs3X6awBd4i741zYU2HrMurc0lFfFaDSzvKKQpNimVG1pJhr2lm+huWabgHfBd7HvrAfAj8DHgNHF/miLgjaaUUaI1WH0xaEJNeWOjYXtQ3Mxb6HDWD2Ic2pa+uEwx/rYH8QHGLFN74/rg/qfxPLi5ybmHdyLMdUBX4DfI5VR4LtS+teQthqxApEbzHwI3VCx0UZ7SwfTEsQCrk2GHVuLnDXgHfC5ZDoWofEQpseJmIHWNFNWpiyFt5vqfKUQhSRuIl5x7+0d7Fln3XMhfST41y0s9xFo4bl7sY2h1OoMiQ6nt4Ffo43nVN6Duk2gQZWKdrCWiE2MQf3AdGV+blmxNYIX5TqLvAOJuR/AF4Q1/IIsZQoLCnmniRUVyW4qYu6p0TYGljIrwXcw8QTYu7Oha1HzFm5I8on3XaQ/IxpEUkTE99NrJDkLvAA+P/bO9fuxs7zPF8AQYKDOR+k0dGyZdmMnTpumzaJm6arTfOlv6C/t02T1ZWkjh3FsmFL1sGSZjRnDkmQOPfD/T58X2yCMyOSAEHgvtbaC8DGBrAJafaN+3mfwwfAD5DQ7pN/AOyhcOV94A9kx9sHfo8EL8KWIdQu7DZLiZ2bWXjSxfdELq2kkolYhvp+AHzB0aLnAXJCg+L+kDP+UVipaQuB20Shx6tI3G4icXsXifGtdMyAvNb2nFT3l/6+L5CoPU7nXi+2MvxqzNJhcTOrRpmw0UQhvg4K843I3U9GyBVFF5TddL8OrJ3F2lsRiiwd2xpylHF/EwnZ20jY3gHeQo5uPb1+jESuns71HvANCj+O03H99H5HCsCdOWmWEYubWSXK9ax1FJKMkN9foLDdcyQI+0jQOsDD9HgtvaaFEjXOIiGjDJOWbvJKOrc7yLG9hgq476b960yuFUZj5XBtLSTe4c4GxVb2nDRmKbG4mZWgyI6MtbYoMXgDOaIPkBjsotDjUyRqsVZ1N20fI0c0OI3jqWRGRqhwrbitrr1dQoK1yWTz6JJ4L5hMgOkX913EbVYCi5tZairNh0MorpGd0HeBH6P6uTeREPSRsLXJTuf/obWrHlmETrwGuNVqjtO5TessEqHQfeQcd9MWIdM4viw2HyDX+YTsQPfIa4bHCppDkmYZqb/8EGMuJsWaVqxdtcgJGreQoP0Y+GO0phVF0rdROHATicQjctiwTMaov+o07GOo9oOsdvQPp9VM5zxA4dAOuZXWAIVHH6ZzfYgK3O8hoXuW9u8Ur5sQu1P+DcYsJHZuZtkJx7ZOLoK+hVzau+Tsw0uV19RR+LKZ9vU52uHjLB1PtaaujoT2LeTAPkmf3SBPSWiRi7i/QjVsD9K+DhK1XXJh96Go2a2ZZcfiZlaBMrW/R77wPyOH+obkfw89FIKMjMPo5hGidljjdhqRSKHJOLdaul1HwruOHOMOErkGCjfW03lvovDqdnptjP/5Mh23z2TReYixhc2sBBY3s7Qk8YC8nlV2F7mKOnbcRyG8OnJvIxTa+xg5oY+RK3pELgc4y6SMeI8mcpFPUYuxyHi8hgT4WTpuD/27vYoE7knadxO5tmdpX7lGV/0sY5Yei5tZdsr1q2hD1UIdPMaoGfNvkTDcRo5tiBJIPiYnc0RrqyFwlv0lG+l8+unzIkuyTm5+vIfcWR8JVwOJ2RA5twMkuk/TsQdp65K7q9i1mZXC4maWnTESjDdRKPIz5IbuIGH4HLmdFtn93E7HfZEe71N0LjljgYgsx+pUghC26A8ZtXeQB5eWovsYFXZvM7kuWDZ+NmZlsLiZZaeGLvZ/QP+/X0Ki0WEytf86EpEnZGHZJo+LidEyZ0oIZVp7K4UtziEymqPRcSS6jNL5hTsbouSTDpN1bWVLMWNWBoubWWqiwXFRUzYkj4MBiVc9PY6uJD3ge8jRhXCcdTiySrUMINYGI9GkS67Xi+bHO5Xz+yY9f8CUgm2HJM0qYXEzq0JZKN1DQjEgt66KsTqRFTkir1+V61azPsfInCwLxOM8Q9yitq10lMO07zqT/THt2sxKYnEzq0J08Si7epSd8rvkkN4QObjNtH8Wa23HnWOIWnme1Wnh4cjKzM1I9Y/2YRPdU+zazKrhzgRmZShGy0TH/dIN1citqsLlraNJ33NJxqgMLC07+Fenc5eZlKU7Gxev9aw2s9JY3MzKUBGPqnCEszvX9aljzjEel1u5pnZIqu2rz0uQjVlULG5mpaj0USzvL4zLmXKO087ZiSLGvACLm1lZQkQWURxe0Mz4cHr2Ip63MYuCxc2YBWaayFnUjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjzPnhkTfGmDMnjeqpp4djFmgYrFkNLG7GmDMjidrl9LCOrjHDtPWBoUXOzIPGeZ+AMWY5aHe6dWADidsdoIdcWy9tu0An7TNmpljcjDFnRR1oAreAPwW6yK3tAF8jgRshgTNmpljcjDGnJoUj14HrwPvAXwLvIWH7B2ATeArsn9c5mtWi/vJDjDHmeJKwbQI3ycL2Z8AW8EfADeB5OnycjjdmpljcjDGnJTIjY9tECSQ94B7wBXAfubiBE0rMPHBY0hhzWsbAAGghAftVeryBRO3nwCOgs9VqDs/rJM1qYXEzxpyWSPf/GiWQ/CvwKXJufeTenCVp5opj38aYU5PW0ZrIvW2kbQ8JXC3dHzkkaeaFxc0YcyakOrcGsIbW3rrI0dW2Ws3ReZ6bWT0sbsaYM6PMhLRLM8YYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDFmVrgUwBjzyjjV31wULG7GXECmddafldi0O91o01c2Wh+hjiMuzjYLicXNmAtEErX4d1tjsl/j4f2zErp2p7uGJms3yOI2Qj0j+0DPAmcWETdONmbBKQaBDpGglQIHErXqdhafu4bG11xFg0f3yMJ2kB4/S/uMWSjs3IxZYJKw1YFLZHEL4v4YCUx5Ozyte0vhyGvAu8Cfo2bIB8A28FXadoBndm9m0bBzM2ZBKYQtmhFfRl32q4SolRvtTvfEApeaIMd07Q+AvwL+GLm1XwD/B3iChM4/ks3CYXEzZgGpCNs6ErdbyClBDj2GsA3TNqrcnuSz60hIbyFh+8/Az4DrSFw/S+89OOlnGDNrLG7GLCYhbiFwG0jIbpOFDCRig2JfHw0GjdefRHxqHF3b66b3fgj8HvgD8BSJnUsCzMJhcTNmwSjS/GvIsTVQiPAS8D0UGuymY4Zk4ekgZxeC2Gh3ur2tVrP/LU8hQpuN9H6/Tu95DXgO/B2aur271Wp2j3uTi8y0Ugtwbd9FwuJmzGISrmkNTbi+jMKCt4C3kKCN0m2H7KJaadtN+07q3A6AB2RX9nm6fQ48QmttSxeSLMLB0xi3O10L3AXBC8HGLBDFxXUdhSJbSNReA95Bzu0uCkWOkIu7j8KF28CXKNEj3FyfE2ROpnW3ENXNdC77aWumzxgsw4U+fecNJOR18g+Lsq6vTNoZOzt08bFzM2ZBqCSRxDpbC2Usvgm8jUTuMrr4jpDQHKAw4XNyOPHbhiIn2Go1R+1ON9bTOuk9QzBrqDvJsgjbGvoBcZDul+uNUTdYJu0Mk4OzwC0wFjdjFoApjm0TuILCkK8Br6fbK2RHES4DJHI1chZjOLsTC9BWqzlsd7qj+IxlupgXnV7q6PtuoO+4m/aNmRS3ARL2cbrttjvd8TII/LJicTNmcagWZQ/ROtpB2qodSEZp/y5yVz1SGJIz6lSSLt7LegEPYWsix/YWuW4vRH1M/u8Q2agHZBe3rN/NhcfiZsziUC3GHqR9G+jiu40c3Wbav4+SOx6jNbcnKLvxIL12lMKLXls/SpmJGmuLLVRqES4N9D0fpMc9FPrtkco07N4WF4ubMYtDub5TRyHIBhKucBF9dBHupX2fAveQe+um/QOKJBJffCcpQpIhcNE/swX8CXJke+nwHvoREYk7e8XxT5DY+ftdQCxuxiwAW63muN3pgi62V5GIPUIX3BvItY1Qev5VJGZD5NQeowbGZejSHE+sta0hV3wZOba3gX8D3EHf7xiJ12PgIyRs11BZxFfkHxhmAbG4GbM4NNAF8wk5XDZA62ljdMFtIMHbScdeIRd1R6cSi9sxVBJ3LqMfDq8B3wF+DLyPWo7FmucjVMS+j+oGP0Hf9zpJ3Nqdbs3uePGwuBmzIGy1mv108S3Dk+EOIgV/HQnbHrkryT5Z2KIOyxfbCkU92wbq9hLi9g7wIxSSfB8540gqGaIfGfvov8l6erv4rs2CYnEzZvEIYRsUj2ONKP7N7pPXhprIuZU9J01B4diidvAqORT5LppX9xZywmX7s7iNcoByXfNUpRZmtljcjFk8yqzJcAghbuHQ+pVjogbLCSTHE2IVtYBd0jy6dBsdXdbScXsoWecTtM52D4WM98ilAf6uFxSLmzELREosKZ1CKWxlkXZZy3aAQ5GvSvwYiO/wEnJyj1Hm6Zic0LMN/GPafx+tvz0nh4GXokvLsuJMH2MWkMpkgOr0ba+rnYB2p7tGTv1/E2U+rqHOJO+j0OQ1lC35CAndr1Cm5D0kgNuk5B1//4uNnZsxC0jFwY2rz53PWV14xuTawftIqG6jNcsvkStrIHG7h5zdPnnieAeHIi8Mdm7GmJUgTTqAPEboEgpBXiX37IwOMA+RsN0CvkDrbLukZJJl6rO5rNi5GWNWgqIVWZmNGin+HXI2JcipRXeS6FDSJ7dEMwuOxc0Ys2qUGaYgwYoJCxtkURsgkdsgN0v2WucFwWFJY8xKUfSWbKCi7DIbNbrElKn+DZJjs7BdHCxuxpiVozLPLdbiylpCZ6RecCxuxpiVpFJuEbdjLGpLgcXNGLPSlPPuLGrGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wx5mLgUgBjzEJRpua/DKfum+OwuBljFoIponbc9emIoFnkTBWLmzHm3JjSJaR6v9wXAlYK2eF9C5wpqb/8EGOMOTtC0Ir+juW2Ru73uFZ5XG5lb8jy/YwB7NyMMXOm3eluoObEUIgTkyJHsW9c3JburRwYGs+5L6QBLG7GmDmS3FUTjZo5YNJ9VcUtbqthyOo2qu6zwBmLmzFm5kwZMfMucC89XYYaYfr6W+nYqoI2Km4P91vgVhuLmzFmZhTrYKWArQE3kAgdMDlTDY53bse5tWHl/uFjC9zq0jjvEzDGLCeVhJEyGSQmW/8M+L/k5JFYWwvKDEmYFLYRWcTqxf74vP6M/ixzQbBzM8acOVMyIdeKbR0J3PvAAyR06+mlIWYvCkeWW+nYQvB66T2H4BKBVcXOzRhzplRS8kthaxTbBrAN/Dnwc46KW0kpcMNii2zJYXr/AdnJhaha2FYUi5sxZhaUociyfi2cW4jZkLz+FuHK0r1VU/8HxTGlY+un+/E6i9uKY3EzxsySMtW/dHDrwCbwFPgT4PfIzR2GEwtCoAZMilg4uG56rrq+NwI5SYcmVw+LmzFm1oTglKHJDVTvVgPuAjtp/xAJWFm4DZNraePiuIO0vxS2+Mz4rGG70x172i+PAAAgAElEQVRY4FYLi5sxZhZUMyXjthS2JnAZ2AN+BDxPrz0gZz6CxKxLdm0DJGh7aX+1Ndcl4Eo67jHQs7CtHhY3Y8yZUWRJwmS3kTIc2UQC1EIi1EShyc/TcXtMitsACV4fiVoXeAbsM9mH8hrwenr9l8gN9uO8LHCrhcXNGHMmVLIkSydVrrVtoLW2y0iMrgLX0/M/TK8txS0KvbtIzDrAI+TyIjnlDgpt3gc+A3bJdW6HiSUWuNXC4maMOTVTOpGUSSTh2CIcGY7tBnAbuJkef4CErQxLDpCw7abtHnJtm8DbSBw/AT4ii1opqqPivSxwK4TFzRhzVlSLtjeYXF+7hBxbCFs4rrvIvbWQWJU1bAPk2HaQM9tBfSnvAm3gQ1QvNyI7xCFHx+KUEwXMCmBxM+YCsigOpDJsdNrMtToSuGtI0GK7hVzbG2m7jcSvyWQPyUHaR7o/An6N3NoTJrMiB0zOf6vWurnubYWwuBlzgWh3uuuki3a70x0Bw61Wc/SSl83qXKrCtlbZNsittkJwNpGwvQ28hRzYa0jwNjg6QHkt3W6gcOVjFHrcRE6vR04ygaPTAc7luzHnj8XNmAtAEpINJARRBzYAeu1Od3+r1awWPs/jfCAL2zqT3UeaSIAiFHkNhR6vo7Dk5XQ/1twukYWspFzLu4TClnHsiCxuPfS99MldTMppARPnvgiu18wWi5sxF4O4uN9GAtdF608PgFESuPO4YJfhyGoPyWoCyU107m+QXdsN9Hcddy2qhjurk7rLfpNVx1Ydagq4kfKqYHEzZsEpXNtN4CfAX6Eki58D/4SyBOd9PnC0SLsqPCE2UXS9j851G4lduW1UXhtEe609JOY76T2iM0m4M5gUsmm1dha1FaIa3zbGLB4byOF8H/j3wJvI/WyQW1LNbXzVFOdTjqMJFxV9IGM97KDYumn/mBxeLBsmBxF2PEDp//eBh6gf5TOUUPI43d9BNXDluJvqWJwxHKnHM0uKnZsxi0+sr/WBr1Co7xHKGvwGOK+QZEk1BFiGB8vhoiO0FncHCfITcoYj5PBjCOTTdMwuEsWn6G++jxxgWeAd627lZ8W5ORy5YljcjFl8xuji/Tm6kP8SOZUv0QX9PM+rusVstVLQItnlGvDddP9jtP72LhK7MRLtyAbdT/sfo7/zHhK5LrlpcoQqO+S+k6WwjS1oq4vtuTEXgHanu4ESL2Jtah9dwPfPuRQg6szKpJIymeQqErB3kMsaI5F7DSWVvI5Crq30uqtk4aoh8foDEvYHKAT5PN0+Ru4twpHh2ixsxs7NmAtCXLj3yWHKRQm1lX0gIxzZQLVs15AYfYjE+Rq5Zu1pOnYPiWIThSu3yW243kIhyGcoFBviFm7tuPU/s+JY3Iy5ACQRG5z3eUwhBC1c3DrwHnJx98lrhJtIwPpIoJ+RR9lEp5HL6fF9JGzRT/JJ2qIN1y4StwMmp3Ibc4jFzRhzIrZazXGRebgGfAeJ0+dk9xZdR9aZbIIcTZFjAkADuboDtL4W6f8PUUjzaXoc2ZcRhozsyDIr0hiLmzHmVNTROtkY+CLdxtpbjckkj6h1g+zaQhwbSKyiQXI5w62FnNo2kx1IIuX/MIEkTmpBwrXmHLG4GWNORHJtY/IE7SjohtxKK8KW4driNUPy+mE4u3Be0T+yT84OvQl8TS7cLgWt2k/SGIubMeZkJHdULYwOcanWt/WZ7NJfHSa6kR53mXRofRTGfIPs/KbVztm1mQksbsYsGUloDmeYzfFiP67cL11bKWxldmW07orEkEgaKTudjJB7u4SEL/ZN60JiDGBxM2apaHe6DRTCC3GIDh4zpUguKTMnI/xYFbbI+ix7U8b57qdtWBw7Ql1Jfopq3qa11zJmAoubMUtCEpcW8D4SuAfA5+1OdzDHkTjVFlyRVFI+B5MNjeOYKBOILiRlv8oa8FE6Pmr+JrqjOBxpSixuxiwPTbQ29R/QOJl/QGn58yZELSi79ofQleJWL47pMtlppHRnz9Cg010KoTyvDi1msbG4GbMEFK2wQJ08dlH/xufzcm1FaLIqYkFV9MoxOSFgkQ1ZFbZwcdHVZGxRMy/CvSWNWRLane4aqjm7gtzPARK3uYbrpkzpXmOyTCCeq7q3WGMrxQ0m19RqFjXzKljcjFkiUkJJDRic5xrUFIGrDg+d9nha/dohXlMz3waLmzHmzKkMBJ0mZlSeh2OyHy1q5iRY3IwxM2HKxOuq4JVMODULmjktFjdjzMyYInBBJJ5M3LeombPC4maMmQsvEDqLmjHGmOXgRWJnjDHGGGMq+JeTMeZcOc7BOVRpToPFzRhzLlRq4cpbZ06aU2NxM8bMldRJJah2LoFKQ2TcFNmcAIubMWZuJLe2hmazlXPeSqKPZDlhe2SBM98Gi5sxZuYUjZ3rqGH7dfJct2DaFO/oNznADs58CzwVwBgzU4q1tWiivI56SN5EUwCqE7xjAveYPKzUDZPNt8LOzRgzc9qdbilsTTRU9S1ys+RyrE3MczsA9ihmvM1x6Kq54Ni5GWNmypQJARtoza0BvMOkU+shMdtFgrYBbCKh257riZsLjcXNGDNrQtTqyLltAtfQVO3vI0cXbm0PeICEroEGrz5Foldvd7pedzOvhMXNGDMzikSSBgpHXkHJJHeAt9G62zVy4khM2n4K7CDRWyPPhCsbLhtzLNX6EmOMOROKtP8NcijyEnADeAN4EwlbuRYXySYN8nTuiTlv7klpXgWLmzHmzCkc2xrZtW0i53YFuJz2ldegSCiJNbhh8XjqdG5jjsNhSWPMLCkFq4+SRbrpcS/tW0/H7KBw5APgMfAcrcH10vEu5DavjMXNGDNLQtwGyKVdQkL1AIUq+8jBRYbkZ8AzoAPsp+ddwG2+NY5dG2OAw1BiJG6MOaVTSrVtNSRet5BIbaA1t9sosWQDhSi307FfI+F7jsStCwwXvYA71gEtwIuDnZsxJi7OsSYWCRzddqe7f8oLdgsJ1CMkZDXkymrIqcV63PO07wCJWo9c+7aQgpHEG7SuWAPG7U7XfTAXBIubMStC4aSmObM6ErYtdLHeBb5Kz3VO8nlbreao3enukt3gCIlWjdw0eZ0seH0Uttwndy5ZSMeWvstwnUGEX/vtTre36G5z2bG4GbMCtDvddeAqeSliAPTanW4XCd0l4DvAfwFeB/4FrX1ttzvd2kmdyFarOW53utWkEsgi10j7I8kkjulRpP8vEsnlrqMfAz9AwjxG532AXGj0xDTnhMXNmCWn3ek20JrX95Ari04gj4GH6MLcSsdcJRdTPwf6ZxBiK8UN8kU/SgWi6/8QiUPsW9QkkhDl66g/5nfQee8An6ZjRu1O99mCnv9KYHEzZokp1tLeAP4T8D4Stt8Cv0z395CwfA38LRKW3yNxO3Wj4uTeShczJIdHQ9RifQ0WeEBp+j4b6EfAe8BfAH+NnOcvkcjdI/+NC/c3rAoWN2OWmw3U4upPgL9BF+RY0/od2cntpNtH6EI94GxcGzAhcGNyaDRuR0yK2SJ3/l9Hju1t4CfAfyTPpmsicYvyhVpam1tIoV52LG7GLCnpwnoJraF9gDrw32QyLHlAzo7cQYIzk9T7JHBQcTMX8MJfFqQ/RN/xNvDPwMfp/hAJYR0YpnXHoUf2zA+LmzHLTQO5sy4SswHwGxRC+wboFuJSnYx95lxAIasS0woitDtAzu0bsrDdQu44SgUOk2RSaYUTTeaAxc2Y5SUy+J4BH5E77H8GtIHdrVZz5oK2ZAzR9zkCvkAF5w2UgLOZjllHSSa99PggbY9RmcCZhXvN8VjcjFluos7sI5TJ10MX2kfki++F50WTAs5SSFLt3hCl/0dLsZga3kBTDl4H/nt6SR99179Kz/fx0NW5YHEzZkkpkjj2yK6tm+6PL3J4rDLdO7aSw84m7U73rAVu2O50D8i1eqN0u4nm1P0E1Qt+D333f4cyUe+lc6qz2EkzS4HFzZglJglcZO9xkQUtKObENcjCUh2dE7V1Y1RzduYOLr0/7U53DRV0v46Kun+GOr1cIndgGZCzKM0csLgZs+Ski/pSrPEUzZ3rqPVVj6NzKUPYyq2soztrop5tmG53USjyGko6iSzKByiB58L/wLgIWNyMMReCQthicneDPEKnFK4QmuhN2Ufp+CduI/YSRumcxij8+HNUIhBZlf+EEk6q52lmiMXNGHORKEOSdVS3F0IGWdii88k+OfFjlg52h9yV5ENUIN9DySMxm27gLMn54XluxpgLQSpKX0NdVy6hFlhvofBknxyCjALr5+QWYnXOrlfmcee2SV5nW0cZlB3UuWTbBdzzxc7NGLPwpJBkhCUbSEiupu17TDq2XVRUPUrHPUz7ZuaaUolATDaINcGYSdexY5s/FjdjzEJTWWsrXdtt4E3UFLqJxCtq+EYoJBjOLSYNzKyZcSoRiOzNpchMvchY3IwxC8uUJJINNJ7nBhK1N1FYsoFEaw0lb/TS/VhrO0zmmGFiyVJlpl50qim0xhizSIS4raMQ42WUYn89bS0kYnFsOKdqxuSY2SaUmAXDzs0YcxGIWrU+yjzcJ0/sbiKBG6KsxUdpe5YeH6Tnhl77Wh0sbsaYRabsNhJrWJvInT1CYcqDdNtFhdJfkUWth4VtJbG4GWMWnRG5YLtOHt0zQsK1gcKWMXD1MVp3O2CBp3qb2WJxM8YsOhvIqW0jEWuh+rHY10z3d9L9HXKD6AEwnmUSiVlMXMRtjFl4igLudSRgTfTjvJbu98lTxcPFRZ3ZyMK2eti5GWMuAuXaWz/dj8LucGm99HwTC9vKY3EzxlwUYo0Nch9HkKPrM9koeYyFbaVxWNIYc2FI4ck6+doVtyFsMcPOa2wrjsXNGHNhqEzgLnFGpJnA4maMuXAUInemE7aNMcYYY4wxxhhjjDHmjGh3urUylGmWH//HNsYsLcWQ0ypOQFlyLG7GmKUilQvEta28D5Ojbw5LB+Z6gmYuuIjbGLM0FHVwl1GXkurMyhC2YXrucIipWS7s3IwxS0EhbOvAVfKInGjVFW4tBG1IGolj97Z82LkZYy48xdpaA4lbDbiD+k6W07ljVM4ANVqukyd1myXC4maMWRZqZOfWBG6Q+06CnFofCd7zdOwm0G93ugd2b8uFxc0YswyEsK2h+W9XgevAWyj0OEaitgN8k45fB56QmzGbJcLiZoy50FRmvW0CV4DbwF3gnfTcCNhFwtYDPieHJUMYLXJLRDWTyBhjLgxFEkkDObYWcAt4E7m2FnAp3baQkA3T8ZFgMiZN6573+ZvZYXEzxlxIkhiVa2yXgWsoJHkVubjyGjciz3sbkMfkjHFR99LhsKQx5qJTTug+QGHHuN9Abq2H1tceAY9RQsl+Os6lAEuIxc0Yc5Epa9dqKDR5ADxArm0n3faAL9Ca2z5KLrGwLTEWN2PMhSRN3B4j8WoiAXuMQo41JHKb6XEn3T4D9nDyyNJjcTPGXGTqSLR2yMXbHeTmniFx6yK3djndluttZklxdpAx5kKTEkvWyBmT6+S1tnXk4PpIzOrlY4cklxc7N2PMMlAmlYxQiDJEr0t2ahvFMWaJsXMzxlx4irKAtbSrVmwhZocu7awc23G1cXaE54/FzRizFBTNk6vXtTMPP1ZErfp5E59loTsfLG7GmKVhmpM6S3GZMtn7uGto+ZkuED8HLG7GGPMCCsEsha1W2YIYhgqT8+QscHPG7beMMebF1FBfyljTi5lxsTWmbHFc9L6suXflfPGXbYwxUyhCkHU0G65TPK66OMiOrWzIXN4OcfnB3LC4GWNMhSL7MtzaJeAm8DQ9rgpbEGHJUbGNkbDFsFSHKOeA69yMMa9MGjFz6FS2Ws2lqxebImzR+eQaKgAPcRszXdyipq7q2rp4btzcsLgZY15Ku9NdQ+tO0ctxDAzane4AGCyLE6mUE8S6WXQ+OQDeRW29YgAqZKEj3UZ7r1LYysGo5fFmRljcjDEvJAnbJeA1srCNkBPZQxOul8WNlOtsZQJJDDe9hf7WDbKAlWIVoUfIIrdXec9RJJcsy4+CRcTiZox5GXXk2l4HfoBcSAeNlfkDmmK9syQX6nCmVfe2gZowA3yAvoMBEvkyoaRHXl/roblx9WLbRGHOnfS8mREWN2PMsaQ1tiZyLH8M/A90cf498Hdo+OcuZxBqe1mq/KzFc8rnhyDFpO9L6Jr5HeTGQC4thDCGpPbR9IEnZPd3Fa3ZPQEeImE0M8TiZoyZSrrYXwJuI8f2l8B30YV8mzMaHVNZ55omcKN03DzCeGUWZJ3s2lrAFSRQ14H30d++X7wmhqA+B+6l194A3kZDUu8hx0d67/Gc/qaVxOJmjDmOMtzWR6HI50jUfgN8ipzIwUmyJpMrjEYSh8XOlc+dSKuflRhUatrWim0dhRKvoFKAO0jcvk92azFTbg8lm3yBnO7NdP9z5G4p3j8mh1vYZoTFzRhzHCEsdbS+9vcoHPkcXbAfAL0TClusZ91J7xfz18pswtjCHcZa1qxCeiFuEYZsoQGnl5FjuwO8hdYeb6T98bf3kYDFNXUf+C05s3I9nfcaeVI4oO/C7u3ssbgZY6ay1WqO251uD62rRZ1WG12w4YRZksmxxQW/gYSj2vGjFLZy67c73dFZ1ddVQqJxXuX5XUFZom8iYXsbeAMJW7N4q410+4TsblvI7e6n50qhtpjNGIubMeZFxODPbSRmdXTBjlZS30rcCscW7mgE/Bj4mqOF0TF8NNb2+uQQ6anFrdIQuewXGckjkQRyFTm114C76f565e0irNpEwtcgf3eRZFKuUZYNls0MsLgZY44lubc+uijXUVeSE4UFKwNFI1HjUnp8F4lMuRY1IKfWd5HA1oG1dqc7PKNQXohtnFMI2xUkatfR2tkNJHSb5IbIJeHK+umco0xgPGUrPxsscjPB4maMeSFJRCIseFaskcWtBvwZCudF9uEYOcRI1Pim8ppIbjktZUgS8tpeHwnqLgrDXk2fF65xVLxmXBz7MJ3rIxSifIZEucNkDZzd24yxuBlj5kV1bWsTuaHbwHvpcaxP9ZCoPUFJLJHcsZ8eH5xRIsa0RseDtJXhxBDV7XSeV8nXzwFqqPxlen4nnXesv+2Tw5Mhni4BmDEWN2PMzCkSN2JtK9LrXwPeQUkaP0UOKFzb18BH6S3WgV8h4Ygw4jAll5yFwIWwhauK9bErKGT6BPgYFXCvIeFtkvtGdlC3ls+Qe+uSHWB1vc3CNgcsbsaYmVIIWySStFAd2JuoEfEPUd3Ym+Qejp10/yESlafIPcV613EF369MWk8sMzNL53YFie4zJKp30mffL87tOhK5beTq7qNw5DfpdR0mGyoffu5pztu8GhY3Y8zMKIStzEKMTh93UMeTHyFHtMlkpmRMtI4p2NGvsUzWOC1lyUH00HwDiemvUSj0OhKqx+nzH5Jr9B6jtbY15NCeIcHbQ+HIA84gs9N8eyxuxphZU3b6CLG4hdbabiGxK4UNchlAN22xDlZOt4ZTdvlI7m1MbjO2jZzietrXRwL1nNzhf4xcZDSPPkBCdheJW5ccjgwn6Nq2OWNxM8bMi1iDOkBrZ+FyekgoYijoAIX3vgY+QYka36B1r730HqfuaQmHzrKZzuErJltvxflGkssAiV+8Zj+dZwhw9I3cIa+xxVicMZ7APVcsbsaYWRNhvzILcQ3Vjj1DAtZAorBO7oTyIRK0beScynT6MxGK9B77RQ1epPhHnV03HRrz62IkTpPcSzIyIZ+ikOYBkwJs13YOWNyMMTOjCPtFJuIa6s24j9a0vosEbR+tdzWRYxuh8OAnSOAiJDkTB1ScJ2QxLpNWosavHG9TQ4IcQjZE63F1JIRl9qXFbc5Y3Iwxsybc0GvIff2O3E/ym/T8F2nfCAnE6yj7MNp+7ZNDfLMiRLhGUY9GbvkVQhfJLTHyJtbU4twvM6VFmEOS88XiZoyZNQ0kBF+l+5GoER1G9pBwXENi8QyFJDc56oxmvW5VuszycdmHMtqEle3ByjXA3eK1Xmc7J05VJ2KMMa9Csaa1QS4JiC2aDl9BYraLRON9tPZ2kLYBatY8M7EomimX0wFgchRP1OzFGmKZNBLUv21TaXO2WNyMMXMhjbqJzvshcmvkllzh1ELIxsjp7ZHCfmc16uYl51mGH4+bEh7uLcKRDjsuGA5LGmPmRWQgloXapXBEvVi0qxqhJJMBcwzvFZ1LqucXf0N5/g47Lih2bsaYuVGEJ8s2WhT3o2B7QjDOQ0AKBweTxeKH9y1si4vFzRgzV4qWXKW4hWDMI2nkW1EROcCidhGwuBlj5k5lCnawUKJmjDHGnIhprsgYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhhjjDELhrsDGGPMElPtArMqLc4sbsYYs4S0O92YlReDVw+njK/CIFWLmzHGLBlpMOwmcANNWqgjYRugKeedZRc4i5sxxiwRKQzZBK4DHyDHNkZDYPeBh8A20FvmEKUncRtjzHJRQ9f268B7wE+RW3sG/DNwGfgNEjuLmzHGmMUmubZ14BrwXeBnwH+Lp4HPga+YHBS7lFjcjDFmeWgAV4G7KCT5Y6BFXm8botDkUrs2sLgZY8yyEQI2Aj4FNoDnwN8DnwCPgf2tVnN0bmc4ByxuxhizPAxRluQO8GG6/SVwD4naA+Tgltq1gcXNGGOWiTHwCLgCfA08Rc7tCap32wX6y5wlGSz1gqIxxqwaqcZtA5UDROLIHnJsLHt9W2BxM8aYJSNlTUaHkvFWqzk451MyxhhjjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxhizhLQ73VqqaTMV/KUYY8wFIQlZWaANark1Akar0FbrVXFvSWOMuQAUs9ouI2ELcRukrYdG2Rjs3Iwx5lS8LCx4Fm6qELYrwPvAQXpqnO53UXPkfbs3YedmjDEnoAgRwlGjMK7cnpYaul5fAW4A30eCNkCi9mk67mHav/JY3Iwx5lvQ7nQbZNGKrvtVcRulY8btTvdUa2FJROuoy/9tNF37f6anvwH+FtgGngG1dqdbWzb3dpw7ftHfaXEzxphXJI2TqQGXkGuKx6TbuNiOyAI3ane6g1MITj19XgjbXyPnFvv/Ea21Ld0Q0sIdT/uOx+1O91iBs7gZY8wrkIStjq6bV4H99BgmMxcPsxfTNkQX4uEJBW4didiVdLtRvO9XwOfIwS3FINLCqZJu4wdE7Dv80YB+OIzRWJ+Jv9viZowxL6BwDyFsDSQsd9D61pijafnDdH+AEj5Ok7w3RM5sjCZr/zzd7gK/TttzoLfVao5O8TnnTiFsV9Df3CB/9+Hayh8Pw7Qdca0WN2OMeTXqqL5sPW3XyaITAheCNkLCt0d2H+spPHkSARoB99L77AG/QIkkdZREcpCOubAUA1bjux2iv2maO47yhzGp/KHd6U64VoubMca8nNK9raPkjg3gHfJ6Vz3d9lHI8gm6WF9HF+EHnGBNbKvV7Lc73b3iPZ6lc9hGAjpCru3ChiMLYWug77aPvts98o+GOtm19cmOrcOk2AEWN2OMeRXKziAbKGx2DXgv7Rum47pIfL5GCSCXgT+k/XWUzXiS2rch2Z2FyO6jC3ptq9UcvuC1F4Hyh8MG0AJuArfI4cdwbj1y0fpz9L2sAY20rjkEi5sxxhxLsQbUQBfeTSRsN4G7SMBukkOTO+jiPAR+i9zVWtoGTGb7vTJbrea43emWDnG8BIJWJb7rELc6yg4dIQGrF/f3URJNJx17B4Vtn8ebWdyMMWYKlUSSuOheRmL2BvBmun+JLFqx7tVNx5ehtFOtiSW3V37GUlD8gIgfEZvIFb8G/FG6jczUffSD4eN0/zoqYP+aJPztTne81WqOLW7GGFOhELZIHtlE6f83kVt7Ld1uMpkJGZ1Eakxm8y2VIJ0VlUbQ5fd8F/geWnf7KfnHww7wu3T8c+A3yMmto3W4cHcWN2OMOYayvioc2AC5sg5ZtELc+ig9/zFK1d9GCREH6blTu7dloiJs4dhuIEf8PvAj4Afoh0QDfXdXUFLNXnqbZroti+Zpd7o1i5sxxkynrFmLLMg+uhjXUTZkZPcNUZjsSyRsO+gCvE/O7DtSaLyqFMIWotZCwvY68DYStx8ioQudih8Zm+g7L0sCBuTaQsBrbsYYcxzlGtcQXVCvAI/QhXmAxOsScmc9lNQQAlfWwFnYjlK6tnVyODcK36NAPhiiUORXaI3tG/QDIzImoxTAa27GGDONlJ0Iulg2kKt4hgTsero/QBfnq+gCG0kPeyhs2aXiJoxI328If7jiCPf2UDLOUyRgt9D32gE+An4P3Efhyadpfx8YuIjbGGNeTg2FyyLtfANdRDvoohwFxttpO0jH75HDZIfrQGYq4YpjTfIO+u7+ldx95DLSqm3kij8EPkP/XYbFe0xgcTPGmClstZqjdqe7Q04siYvwYfE02VHspOe2UfgyXJvF7XjG6DtaR1moa0AbJZCMUFbkVygUPEBObQOFfp+g77qXjj1SGO9J3MYY8wLSNIAoxI71oWoNXLiIWJvrUGRHer1tOu1O9zL6Pnvoe4tyixtI1Gqo5m0PhYI30+0Dcii4BxyZuGDnZowxLyaSSsK9RTPf6HcI2UFE38MacKohpavAVqu5l348rKPvtodc8Ag5sxoSsx1UZtFDwhf3o0n1ESxuxhjzAlLyQ1xAo/t/dXjmkYushe2VKTNSu2lf/ECoIRe8Sw4H99H65gEvKLFwWNIYY16BVJsF2a0FTvU/BVO6wURJQIR918jhx0j3b5BKLY773i1uxhjzihQCd4hF7fQU/SVjbbP6Q6IUNuDl37vFzRhjzLlTOLgQunIA7JGEkZdhcTPGGLMQTHPGYHdsjDHGGGOMMcYYY4wxxhhjjDHGGGOMMcYYY4wxxqwArnMzxhjzShzXoXhSjxQAAAiHSURBVKXd6dYWrRbN4maMMeaFTBG16BxyLOctdhY3Y4wxUylE7dtoxYSonZfIWdyMMcZMUPR5DI67H4yn3H/lJsezoDq6wRhjzIpRhh3T8NDqyJm4bZA795f74371tedmoOzcjDFmxSkELaaLlyNnytBkjenrbeUw16nbvN2bxc0YY1aY5NrWgNeAR0y6rtKJwYtDkiFkIybFLh7PVeAsbsYYs4JUJovXgctIhAYcDTFW3dtxa2wjjorcGBgyZ4GzuBljzIoxZTBoHdgA/i3wYdpfTsSuTsYOquHH41zbEInmEOaTYNKY9QcYY4xZHKYIW5kQ8gC4AXTIySMhRNUMSpgubHEfsrAx5bmZYnEzxpgV4RjHFlmQDWAP+Gvgf6XnGkyGIMO5VcOSIWLDyr5R+qxReu1chA0cljTGmJWgImwRdgx3tp62DeAdoAvsp33hzKohyhC4ELa4rRWP++m9eul+hCZnvvZm52aMMatHWZcWYckQtz3gb4D/nR6HWIXAlSI3RoI14Ggospf2ly4x3NsYJLizEjk7N2OMWXIqbbSqocgQtQ3gEsqafA8JUzc9H+JVdW8TiSLk0OQBWrfbT/f7aQuRrAO9rVZzcOZ/bMLOzRhjVosXrbttAJtIiP4r8E/F4ygRKE1RiFassQ2QqPWYFNJRev8byBk+JgviTLC4GWPM6lDtEVmuvTWRS2siQXsCvE9ODOkxKYyxL5xbH9hFTq1s0XUFFYgfAF8gcRsCtXanO7OyAIubMcasBtPaaIWzitDkJXJosgH8BfBpOma/eE0NCVskihwAz9MxEe68hsSxk95jOx0b7zEGZjYLzuJmjDFLTGUWW9lWqwxHriO3dhm4Wmw14Ifpdj+9R9S+ddO2BzxNz2+g0ON3gB3gd8gB9pgMUUZiSY0ZCZzFzRhjlpRKiy148TrbJRRCvAHcAq4DLeD75KSQcXpdJJvsIvHaT6+7nR7/GniYjilDlCFsE+5tBn+6xc0YY1aEqGmrZkg2ycJ2HQnU68BdFFrcTLdlAfYACV4z3X8v3f9X4EsmRa2B1tiq/Sop7jssaYwx5uVMaYxcrrOtI1d2HYUfrwM303YLidvr6f4mEq6SAbl7SQe4B3yDBDBcYNS/9dJrysbKZYPlmWBxM8aYJeOYurbqwNEIC64hobsNvAW8jVzbbeTYopC7ZJ1c0zZAYhY9KXfTMSFsUS4QWZUzFzawuBljzFJRcWxlaDDCkRGGvIzE6yoKSbbSdhUJ1Q3kwqqTAIJ6er6V3jvKA6rtuKoNlauDTWeCxc0YY05J0bfxMEliq9WcW5PgynnAZAiyXGOLGrYrabuJHNpd4I20vY7ClJtIGKdRFm1HrVt0Man2oZxWW0dxO5NWXMcpsjHGmFeg3enWyWtX4YI2253ueZqHaeNsyi0IcdpFdWhPUFr/Xtp/nNiM0/M7wLP02mfptbHtpPeJjiUTjZMr25lj52aMMSckOaUNcheOslPHo3anOzoHB1cWaU8bGBqd+kP4wtHtp/3RZis6kDSZHHUzSsfukYu376ftUXocvSU75DKCWKObWHNzhxJjjFk86uji/ybqpL+GMgc/IjuWeXPcdOxy5lopNHE/HOgGcnA1FLKE7Pj66XYb/Z0PkJiFqHfS420kfiGW5eeNYPbTuC1uxhhzAlI4chOtV/074E+RuP0C+Bdm3Bj4FXjRlOyqqL2OkkvuIdf5NlqnC2caxd675ALuh8DnqAQgCrnLzxgU21yFDSxuxhhzUmpMZiB20v5PUYhub6vVnKvAbbWa4xQqDfEoBa7q2taQ47yZzvdxul9H62d1JGZrKLtyA62l7SJBf5gef5Ne+yw9F51MquUDcw3PWtyMMeZkxBiXHeBDdJHfA75CYblFcG6QezjG0NE6ErXr6Jzvo7KA60jEtsm9JCPF/0a6fYQE7Cvk3h6jv3kbfQ+75HBsKWYhdjOfwB1Y3Iwx5gQkl7SNwm4fA5+R3ds+My5Sfsl5QRa1KE+oI8d1HYnUPeTGok4tsiZrSLi20+sa6O/ppdfFANKfkLMie8X+aKjcp5i6PW8sbsYYc3KGTA7n7AKjebmTV2CEwoo3kag9Q24t1tBq5AzKEOYBEqoQxY20L4aM9sgp/qP0ngfF+1QTVSxuxhhzkUgi1m93uoPi8blTrL21UKJIjKUp69yiS/8QiRPkRJA9svNrpvtRy9ZH4vcY+HPgN+S1trIrybRklrlRXfAzxhhzwSnq7yBNvSYLW5kEE9tG5X4I01radxUJ2w6TPSNvI+G6R3ZtEZaMurq5ZkkGdm7GGLOcRI1dteVVuKkQnyD2H5ATQOrk9lrPUChyWOzrIPf2BVnQqv0kz8XN2rkZY8wSU/S9XKts62QXF7dlL8kQt6hzi0zIEK9I+b+ZHj/maLnBRIstOzdjjDFnSbiyenEb4cpa5fmyRq08LjqOVN3ZA+ADlKgS627xmecibGDnZowxcyE5qFj3GgPDeV3wX+Deqs2Vg7I/5Xo63ygHiPq9EDjQulwkpkwUkJ9Xko2dmzHGzJgkLpvAHXIfxp12p9ud48U/3Fl1/a3cXzU8h0JMXmcbVbYx+nuuFu93bqIWWNyMMWb21FFK/p+ibh8fAZ+gMN88CaGCHG6sih5MCmCIWDmzrRw6Gu+7B3Aec+ymYXEzxpgZklzbJeBd4EcozPcbcm3ZzJnSczKSPaprbDApbCFukVlZhiInnNlWq9mfycmfEIubMcbMnhGqEfsFcmu/B/bnGbqrCFx1YsCLJmfD0fT+ifed4WmfGCeUGGPMjGl3umuoOfEGaXjnVqs575BknEtVvKp1cHDUzVXDkAsraoHFzRhj5kCa/1ab9xicY86leu0/TgsiLHnIootaYHEzxpgVZIrATeNwne6iiFpgcTPGmBXmZSJ30UQt+P/nqJesEQIXTgAAAABJRU5ErkJggg=="/> + <image id="_Image9" width="291px" height="939px" xlink:href="data:image/png;base64,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"/> + <image id="_Image10" width="565px" height="473px" xlink:href="data:image/png;base64,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"/> + <image id="_Image11" width="174px" height="655px" xlink:href="data:image/png;base64,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"/> + <image id="_Image12" width="788px" height="845px" xlink:href="data:image/png;base64,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"/> + <image id="_Image13" width="550px" height="1007px" xlink:href="data:image/png;base64,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"/> + <image id="_Image14" width="1599px" height="1557px" xlink:href="data:image/png;base64,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"/> + <image id="_Image15" width="1558px" height="1557px" xlink:href="data:image/png;base64,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"/> + <image id="_Image16" width="1326px" height="1557px" xlink:href="data:image/png;base64,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"/> + <image id="_Image17" width="690px" height="618px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArIAAAJqCAYAAADXFKPCAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nNS966Lkqq4u9glXr/1I+ZnXyxvn7NlllB/ojnDV6J77JGGt2aNsQAihm2WB6f/8P/4vWGE0hXBqwE/1DDBRW5W6sVQQHeDXMWKt9CFvRw7YQMtVgsMJLIGsmv1ewkEakHQkTkhauw1Vx2fDnyjhCACszSenax02gyEwcUsdxZcZjmvpnvoRrC2jb+8IsF9aOwalyTAIl7ScASNvX8sEQ1mGwSCMgMFaZ58ONzAYBkAg1HVKMyIO02EbwydHYJkTDbKZkHF+hEUJJxL4LHXjIvx6vfDrvy78er2AMcDM+Oe//8Hv3zfu+4052cZzXCjAB0hpSSe+CvhwmQ8hyBt2BlCaYHE/J3q0zQwPspuU2h07fioqi1QA1evQ3JYRAFGhHxReRuc7POLw5/Hn1mGXzaQTA793ZVOZX5Jux+yhVIVAoeKL8X6EUlAd/wK00rXajqLvI3MchuIIplEt240Kc2vRjKdyw5xITZS1J6WucjELrg0+m5orE5osFoWbNtH+VbvEpboOVA1ZQYN42eMDWnsHRdDQkfWM9ey02WzBRiAGmHb6dP0MQW74Kvzm/Du5D4WOG/9VnBs67BQtAz6JqNDbHYo6ntLtCGCnX+3QytxDOfDIMx4P4wV5eJ17bSr4izbB0xqU7Gb159TGLOdJ+2VPbV2dFHExmEzFbhXDfcCcK5xjiU6sY1f++DTaET8sV2xCJP4yn9sAIF4Oh/s11TItAV6akcVBOQyvjqI6MUes97sEEgBzaw0M7M4sgYiPvE3qpHPzgEMI9xPRRKOQz0fnbs0qARUo0D1MGQmVb+lARVKsCcyzeB0MnoT7nuD/Zvz+58agBeGeE/O+MU3Lf+KTQ32a3zdwnuADbgm+8/iqmD/DVuwyjXYIT9Co+cV2wWL0iLZGjxhFTHI7+pYU/XDR4YfL2rEU0tfH6j/AoB8jNt8ebP7S8NQOf8KOn0okqI4DoVdwdKy6Y7Mo3yhipDCL/foONfUZGw1qDMBG+/jMbQEMBobCGWx0VDzdb3IEkxrRB9pgTdP8ot7TiqQvFd9ABw5g4w1gs7eGp3Q4oLV32OwrFfVI4ODZP9G6LU/2ICLoE0XT+q9KtLPf9vib0YmXTf16LA30fInOz+fz75XsyBIQPXgvFbkPBiYq4MQHJALBJhQ0NOrVGeCT+g5SDvW+xGGzRyPpKxJI3DlwDj86WFrn/FwMLpON4SgHJWHAovRH2GG0aNAYwZl0Atr4WhEGUkfcSFgEr9IzQnc0HS9nRgrQtbvMXXumiF8dbykawjCXOLK50jo6sxXUogXLMhdFDAjsomxoOCGNHFE5hzUwBx/AiJrVkVSH2gimvBaotSMef5Kx+/ueoBsgYpjjT8ANNlIavpUQUI4UqIyglFhoqbygTDSSYqGouNnhlmFkmvJ2g9nHMXaX+8oDo5GZRI6d5hzah56Zfi1dO+vn1a5qGFDeqyIgYHYoeUBldQq/a5so0Rs5QJs6tfZh4Cqtuf2Tru3KYcCmNM+IRd5pq+fw749wUr0VIf2Jzat9isjmBXH6cf5nR6HwRZrprra3jvw4nw24SPBet/mQwc6QNuBG9RqvLnthb1NEINXGEmWXlxEitGYMg148TSep3TgHVSJcmy/BmH/jzMbbDIq20bpSnnsCWuW10fkBPmjg5MzOOi550xZ30+uhHz3g26s4mJJp7GEsVmM2u9JnwTkO4wi28zGG2abUObN/IujPpQbAXkfFdwwDjxPoo9LURQz6PU8+vGJ3kx2Jj80FMgEXx4I2oi+c4pOcOhVhZMd9uyc1yVcwSRfmqBquOFqkc5F6YygCaO60GAGDhFIQpAJKXQGfoxqoXbuz4BNd1Grf9TcBmPYQEBqkd14kjk7FNTRJKxfdZBSarp8kkUp7pa9LjLAQoo1JFTdmErBqr4y/2shsUNrbQ4Dj7cIfqcVgWnUuFYEXlUZw46MKlGxOgu9wlGjEVWDTXQGh/CNGwimMTZDIdTLLPyxdik0iAVJVox6yqdiVawbY4/AN7mT/IK2I6abwQJLNWoODpuxQX79hG5fCWCvqoQ94N3fj/cbcPkNpGp/sIoCz31IfduTf6kB8X7IhP1Udy4nvDktZ9X1KPSvrkkQbbuhTXVGYMUiz6p8mEQBs84gPxc3ji6moIW+qMpipni2vt3MWuCGA52wCMkGvRdTMxH2QOVVNqt46AnXOLJG9ZVQRcdwr/MIrdslh/D/jRfcLMp4Jltnc8reiE4rZ4aYyBSm+iYx+ofaiW3CG0+nbb4epgtZ0+Ijnd/q7Hb0Zvivn1II2svenxoY84KVty0JmfRmMJ/ud2B0A1JtJEZ8ESByxILD5gZHFqahR4YpXjKx0NHCHw4QLSyhI4YdmC4EBjJna2xxKWwLs1UxAu8PAaUUoysipENRIGjWbaU7/Ho0FL8W0O7O70MeUgAiuKiMSGOZ8Rig0fB7CRoQBpprS4HPXdfCnVMUvElnu7SHxDE0VMfldo2wIk5D/2N8GCPyUTxuToaMtWP+snE+zTIA6WtaNLqO5cbvxGiSVQeWONNMk9C/S68OsNR66ZstBtFeFYw3AYsijgWVyGrOOSSyJxmy8nyZOAaFWW5b1kL/m+4f6qWDUydDWpi4qU0fBIoBmcim2NxSGZ0HT/mapTlHnpgRuONfH8Tp160K16Qk69dnwfkQwgj83+KZwof03XU7Njl7FueTRa+Nl72Ju4ybDEYhdJwOzj0kjuR4U+1sEEEU2sjgQCLp9gCWX8yLVseTwxF7QGMXj8dkOwWfypCRim8HqJhNwMpWfJpT6ux1wZ1b3RTxHZut1Y2+T/ThFZQ/oq209yka0Dc04pRmQbV2lEwgpOvuIb+WviC8ijGaq6U2lK/salT3233wRau5hu/6TFINu/J88nzzkyCr0aFia0T4WNwWPb72jWtnXf0MnGvPcovxMixcqbTNIQE7hhktrLj+2NIOq+TdHuikRt81/ycySArFjgOYsQHJRg9mzuFJBnYtnw5qci+QZHdqlW3WxY+vA6IbCjofFjqvXsjk50l83KvGmItSVCikYCmLnuzNJAj1ajRMcF4soj8WnfKbecajwmyX6Xf2mcydubneT67GqdrofrtGyDTm/L1/w4g9Axa2CFb4u/cm5o9Jer5Lx60EfC7dQHQD5z9Wecv0zeRpNeGCHM4wv2vyPFZnfQWf82Ox8M16AvOVYpmRa0/7eo9K2ikL3ip0oCYqO6A9vMKfTb5H/3vJUOKUhTcWP2fUd4Bl3TMD0NKaYMjVo8EdntopgURJGAhMudZ56Z5Z5+nBqLh4cpHydnYSvnNlO5//LZTd7Ac//4fJRQ/5VZPZvOzzL91fgKnFDh9czBBk8Pn5XQ3UcuTcFRDEOpQu8eXO7D6XoMCzn8dHfSEhG2IIXxfgk+YvIhEo0Huz9Wmd2NySMhSsR5+G1uyXTVZcz/MryCowRaLSbaRa8lzPbxZCcIOtX0MKJD3T9otNJ25i2Tl0iefPEd0q/WutM6QFl/YzRVp+LjqfPAv6gws08tCbkVVFEJDCJMvUmE2R/SSKNSju1T0y+qW2VESL9HnnYfCC5nsabWsMuYyKHnuoiMsChQ5JNpwcZXOWITMfkZQdWJh1GxqtROPdjySINuWj0XCouFvIIPTSqVLsJ3tu1PZTm+jCbNV60vYpzN4jWUbgR5t00T07sbhOpoUE/G0DZL3pBufFK8y0P4BwmFnk03H4e+MGQbEa4NrB/Cs6NcfhpMT54gvHgEHxjUENf35MqN5nL+Kp/1TlUBn9IR+Ctuy1IZTU2uV3rmDKCxhC977n0S/yjAGa+WYHZderJ4l/hUT0JhQiTRJ6nLLTyn1z+yJk9yJPZbO13dGa94Xm4avyer4lGdmYVjzh80etpOtQ0qMCaqCx0PnXcbRQpOxgkxxsNChuIQGxgs7NHZGQ9UlR2W5sGgY4X6uUTb2iDD0pGeeNjdLyM/9r10kFTbPVF7Hlr2F9TjI0GQYx4RCWgfBqdjuG72SkalVM54v6kNGtuICH9THokOEEJGcWtjEQK312NSM/8y5VB90qgznNoe1WdTQg8j1fol3RWyGgld48ztRvFknAisRpkaPm4+xwYcOcKoW2csgqt5YHtc6ybyNzeu0OptiltgrJ1jEZTG6vtobD+ecVsgxGq86142Sy3uRsBUKojX5HOe134ZrgeXK3QCM8nu08NSL236apt7KJUqrJLTdVZp37QRwy18FYTvYad0+ROvDkod3gYLfOwjlU7Zf0IAOnIJWsxIpQwBlmjpf/K/Q2XQ9kV9DZEO+yRQT4x6A9LsUkRVIPxeQxhnz6XPMCs6EdbA+QGSxlJtUY/8womMIT8HCsVGom1E2jIo6zLtmvOPMShXZMhOflnaPvI1NuTFmPyetCdPFdUlrGyFUDgyRjMmERy+gHJNg1aObQy9QFxZiMNWceriyU07RyboK81Lap93fyvObOktN4CTdvaFDROpusnpUsz2JXk8wAEypvIOP1pukdjffAJPtUFy/gTTB9bfAIQ8OnR+gS/zIdSasEHC9Il0QVjL2a6oNMr3c2yETIbRM0djIbmTJqgB/h56ptY5Pm1r4YzopZ/qcwUu6NGHyloYbc8Nor4QUojN1xOtbMzq0NEb4Vd8drr9NA2piyUJVDdXB1SiiM3OotTi8ZwEbZ5eN2AOrN5goTksAp/sszHo2mr3UkeLcCK4Hir06hyjhyNjFFV95s9Sk8pFE42P5u6GRwGoPOL07t2Ilr7ZbYsesJr8hTpwSTvxtmDGuTrrHnVJgNiKGy5B7J/L4Z5nYfLK+fVxJfsPOI9Vdf5K6aUnqLKHAkEnRe2TWDbYyI1trkptQkJXRk5KpyeNZDt2LoRdiQneNkIbm8PEuCwAhyp5f2f/Cq9o7KeT8Dg1OmksT6RjNKCHRyJBtjH6GxA8cd1ccBtAoEnNgR8gVNq0mnIrq6qru1aGbkofuLEG+rUxhzaDh4NdWIFtjpuwrcaGqABEA15UUQYw9/8jEEp95xc2ASXRY0BYE4J8kh0dspfpuXMkrSdqlsng8YIG8JCZHab085DuoG4i5K5Ppe3kkz4mTMbFN9HZzaOS+bIA3u33r61P1o8T8LxlDObEcx4Gi3Z5TWmRTyjFRiu0LHFHTC6Fg38cNXdTMZ1N/k4rHXAh+e5/qTvYv9I3HBqwUPX7tG99hEb7PqB8BmdqMjK1BsPcpC/fjXHIHDrcgqKYq6M/oRL+RkdnJ+ZkWJ90hxj6RT1aRxxsKBONMucg76RZs8Up+V3xeTbFvdoXqPWr25sJwAdZw/Vaj4E7W2/MqBBws0pd6+sbZrmlsYSIIVX2Jy+0K1brqq100gDvIVoCgK6YFHrFiitodxgRfwV5qn9aUJZG6wWX+gHhKk/ylgdO3rblIfopl5gfxzqB4XyPz64TZ++cs5K7y9bxvbVoX3q8QT9Q+ujTv+y8JG5FAFp9zVAtHx+MknCLM/Gzvtv4OoNsx96LTfU2Nbd5sk+fSGnBOMhjbSuWxqRJwyoA7seygYujLH0EyH2UQMlf8Rpm2CMweC5TgKYk0GY4LkcWt1jOSdWdBa6KdidWVetxRGp+gVK/ajMPziz9u+fOrMNHlUt2bhxA3eT2ld0zT69g75L+WFfGav/ufKskpv2n/D9McBze8L5weUrfH6Gy8s7NZ07y/HspptQ9hxT+4UmdrcXIG2yshDJ+1HmyJSfo3No6VFNjjqJudXaYYktB3S11TlEBy07P56n02m26iJ6x1i7olU+Vn71LoIqka8QjAVSBCENgkHkx54Ah3WtWO2Yds5sJEB+OAnuEa2vXRER5pzySiXgSwWDLiob5yRRX899DgosLUnQsGA52lCOtLFNWUJ9VqMh8GhXxD6K0jsL58rbis5so3lTKoimj/B69TfE+DHyW4DIAtApKY84PuuQgHU9iFZYcqw2ORhHlotM4Z7luCohWXAyD6Fakej8lhnLgE5jIOfrYo/KxuXaqoKUiIy4CB6yw9OknSO2xgDsy3JRPW4Qz6VqmI99NE3K8Pq5kTw6sGWSrYH5axtWx+4d8lR/GLN7MDrl1m99HvDc1N3B5Pme2qDjgc2hJflIQcyhXd0KtpoONVSu5C+J8wqYEztomG4c8p++cVpB3aBjWM2PRF8nYw7GPRmDVrrBBIN4gjAxWWzoDQxi3GqbooFYY/F61d2kGSQdGL3BrPui7K5ULgLxT5xZPSe8LFjAw53ZYIMJK/pM2T7VaXa8kZ3dMp+C5/Zb1vSnUVlgRdJzq7xZbcPthPRTVDYiRBMpXXEHeBbxh/mketrpocXWgcgfFndkD/c3aM05ssoop5LlON10Y8VOXFOgHccYHknR7q+IKbTvsisPCMdomyHYjK9QqTZVw+KYWW0c0t+BV6Bu+EOVqQAOaQYU6Z61+JIp8lslGkKya4ZQFUnsrz+UrXg5s7pWOr51dxwUShTXeMXIq5LJ26wWDVwX8J//+gUi4L//eQPvKfzMHrwl5bMsCtt45mhUTSXj0wnzqOCUVwoMVkep0XxtYX11EOa7aHs+JSKsbR1isim0Zml9dcIOZJu2jRUVb0Sh8nNx3NTc0mpjH1qofX9SdHyhT7QHVhFf33NY3wSGYscGj9jJB/HWgdAt/PqL8+/kQfX9s3nw9r2B2W+5s//BmBb4T3B/uFoP5RsjU9eg9tl1c2avwvSfRqtzfdT3i76nN1PVf310aEn0SoKRtQwGWdqAOqOaQjCIMMaw30SEaxDoGrjGitTSIAyM9bBdAig8l2a5J4PHisQOmuDBeM+5HFbVR/fEJGBcy5m9BvDWSGwx3Z4uE6xhWq9IWFnff82ZpWBSI83DaTubrQrtZd9ttUr/rjO7365F/euKpt2IqWLf8vqjGeKnyhaRj2kAPxo/12tQ8Tky+wHeFwjtX/b6opMxdGdZjaH3fklxRUZqR1mvZd1gwRd9wzVrwxy1U1yC6SoMTA2+Jkh5VsLkqgaDkERHJ5HCI6U1ABqNpaXeQPuw3F8jXGNgzulObVTSgLyicowc9xCZMhwY8eQHfb2U1s2TegNF5GxOo09QcM09rveDUhuvges1JKcLQYiDwjHSigILurIq0jyezlp+8R5p9xL5WY7KSq+lMjV7CMiUYFjUM3LOplRPUEiOzbFZhBNIbYi8PkQheqE4EEKUMvCmKmgA9mGOEMqvdggM8KhObmqBWFHXAoBFW61VORvLuVYXnmU4SvX+gQdOAxkPH5QijZykW8lQZ7PfiF+Mi60yzXc2O99ZLNwgy4fLzAAFCw7r3IJpsHhQwF+W+po7l+jcUanZ79W+MsBj9TNuzsu1ueecCj8dzsfL/mtc6wKYalUn43AnViKxFw1xXJcje10jObfpGsPobRuo1NmcKwrLzLjnxDUJ97102aSV/3pr37najLGc32sQ7tnoqeRU8jaP9ObTHCgqBtjAGtzvnNlCXLApEbcnwUgkOHnATe8qelk9194BTplPJcIhKnvM0U2K2xXYpyPEijneyFPxOqjCgLco5ThWC7CD0SBTcIovIh+d5RN9f1D81IKP5fDMb15F3NWO3QdwbyGCfBgNsFcLeqdlOEK9A/hr00SeQDDKzZvR98JblXosAVhk7tCWgOTMrusqsNUdUEVK6yl7EHiqAXa6LNtKYYWcibeNWfIKjGhCtz4lBygNv0t6PWBqxzvcI9/QVBdv3sD/+r//AQDc9w07Ektx1GNvlAb85XNjXOODsGWbFdRWXA6KXXYhj3j1Qh/kIBjjnPpdebcw5MZr3RhCJ16RihS5z03woeJQntttkauHfs+nK3T9P9z+MIVYbQbCHIEPAH6MJ6efn4B8/81zBVVgdcarweyzM/tnheqYZbBPdmkjVdviw+LibAA3x1Xam+MXdPGqcX3dRcbSi0YHuDu0UmVveQTNQWuM6MRa9JWWs/q6Bq7rst9jjOXgXsvRJUgf5LEZE3OuSOw9GdecuO+JMSbGTbgngW4CcAO4cOPGYMJNy6bMuU51nMzL5iYPRJ0iTdvbbVVy+n7gzJ6cZLf1MZVMAURnFt8w+f+ecnBm/bpzZoH/byC/yo8js58Bfj+9pu3H7oHmzx9ESCAbn8/fV1uzLc+NKjpP6K26bKsor3sQCJgjtuNaR7OoFsnTkrbcDBptfc/zACxyqm3EIevYVP0eTSlwP2gRzpwjBKoSmSBf14U3v8PcpfGQ/EfoAHkmMz5+pg32C4uBKYdpN55GenxdmPUiuOAPkDi6a4dsfjpc85zM4Pdce31EOS4yROaRFdP1VrqxnDJQFRzQr2IZX4/fqoyjAcKVK6p5yPD/nNoBPstuf426q7XzdVnGFs4/po/JqvIkYfxjfCpGkPU91SDHITrJYti3nCe10V0CKg+AprfplBmNTKQQaoibK+NKOD20UvgmLbHKi18C+xr6o1DzGDXgncj+ZJyoDBCmUEfcjCOVNg8eWmcGWv/+J+UhZMyUebJ7TvhkDI7oKD0PnZVOvPHUhwFLoydybLQk5NNZVGbQ4VmUoD3HRB6oCVIi7sqHzTw23Vcax9zYLJkEIsaQHFmLuI6BQeLEjgvXNfC6LryugdfrwiCYc6sOb9RFSycwJk/ck3Hfy4l9j4lx38vxveMMljOrgvgWEhKLU3sHW6HzIQLPSZF+1aH9E2dWc8hq5HHRt+p+pXV0ZiOPpM6wAEMdUy1BNGt5yt6KIpyDMMT1D20M345Oaawypz+OynIG/gdR2TSeW+yzOHeVagJ5b/PRUW6UAeFR5do8Xl0GZARTBdeNk05WjEwwbk6ChE5ZyYK4ReFGdA1j74K81xHCaQbWp6HkNivImHkxc9s45zr3iBLlqGLjXOnYKTJLOjQlkHr0ijo16nyNa6wnZ6GjRWPDq+yFryQBlKde2zTEccf4AHF2EDK9480uqcDbWT/eHxgsCibKFyvfHCyfnTUEK4kDu0jMwBw8xSOZJJJ3A/a6PRJ2/XPJhqW147eqxLUW8XXjInM2gvYKCQor0mlNwJzmOP5RYZay3VJZbWU+YK/rb8gUedy4F3GRXbfXUQKPcubq6phstoG9xmzSwwzyhs8on3UtpV10aM8mrrmmpsU+1KdCqUPhJaxZxznv+j8P1m56awqX6nrddU1ry/HuXpKf1kV99c1Je1rMU9lptbegVM0ID2nptIAOjtbNI07dfqxEv93w2I2oygRYg/+6rxFaWoe6eqqA/KdO7OslTuzrwi9xZq/rwjUGrkvyaAM8VaPMa5PXWyKx931jvG+8lUS21IxLHgaZBzCAC8sB1g1k65sui+5ZBiMjBHvXUkZsKuQNbePMLlD2w/CTH95W2kddnxw/mNnrFuzvSx7AVfs2ms6zzjdf/z2qxbn8As7HJu0u2+/6/2VGwFfl9AwRG1hENnri3ZTWerqJq+rRv59MZu/y4MqA2gEBBmHl6gVHATlLdTOVFPww7LEaDvOwuZlPQ+6k5C3tjT78HPXVyfqOeRlfmq1AlmWxGd/UnfkJKg+f6lgzmDfj9bpw33PhLwNcIxhLI8xYSk5xm+GoFbK96K4zGsUUJ1ifmAlZpBiw0xRc9kUhGm9APcIwY+lvT9sx+qdb7MPHBYSpbQzjinDUFcf1r8ZnYAzg13UBF4HnxPv3GzNtDFj0IBDmmH4zLBLVOSif2K1OjvzsPP2qFUDplXuMYtrXy6CGkOwh2oGfGNdjzCmfxVqHSem5PASjmU+vUlHvVTWeuXhz4IOsRr1pS2j851K7RWk6b9TwUzpRbSD4EDL0g0zHAzu/KH2z/e6g7Jw7dlWXRHrzDmpT6GS3o7486X3aRjxTpKK16ahUz/v6PBR/6HtqWFeI4kWq3mNHySXdYHUltuTuZnNji97q+pWomvZcm7qWDrqugdcQZ/UKTuzrwq/XC7/Esb0kV3ZFb+Ff/gLkqK2VWvC6b9z3xO97mNM7BuE3bsFYdC0zLh7gsY7hYpLgCrn9WCqjezvjE/7kzJo8nyKzetuih0Xmo6vBO/yssLvfuV3tv41XWCiDCete7CCsneraOt98TbW9IbgUo52Da9M/2d8CcJu3j9tKd8SrzZfdKJ5LunEi3qnzAy4/r84fRDiqFKpYtY26j5vvbSoH2M/lwOSXPcGZJSHwZswc0O7MZmwtIiiwlo1/QPgpbFSnRHm11PHwNAPOwllUhOFWpkVYcIbAsogsgqM89GtSynTquDMwhYLyNZcFvJuzRHVBAM/ttX2aL0TxECwSQ5BX/nDEdd4mtB3tEB4UCg39Qwq+BXXJmyq+jJ3GavevepW1AWG8LrxehPdNuO8ZzttxOtpcN5pFAW+Oi2vaWVuNYMnm/E3+5fpBfQQsH2Q2lQ+taG/CrEr1qwECgB7nCier9XO/xxIEnOsDaQX/qdD24+f4fBzAHVOqDlwlUMX74MB+P/qfEsab/zSt9wuQ/xqFk0PR3mmE7WtYaNgit6qqS4Vbo76WGxv++gYvwq/XhdcVndjL/lsOrjiy6syGV/z3ZMw58b4vvN8rGnvJUV4rLLu0MPO1ghtjpXeNQWCMlVZA4tAKj67c2ca7i/P7wpk1If2pM/uDUrVsdjbzdcYv6G+z43m6O5jQHj1pvsH33yif4FTUPkc23Zk9jfc83b+U6E8IPoB/RRXXeuxBEZzhkFM1NGrxik8h8fzMMMrmzIYQlL1iUO4qCiY5s+S8aTmGxb01QfSGwTGteMUbvOMQnVZaaQAEWgfrM+Q19oJyz4nobcnLcBuWAHtdSnBFyLyisiwHAhJW7uycK09KtYM+0c0x1yt8RVkiucTiTGEdxQIQ7jnDU7QSWV1BPw5lOa3kONo0OFOX3GCz1DudK31DukI6L1VXVP8KLSV9YOXkxgeIfAJEZ74ZWLt8b5KTIMTVZVjkzttrXq16THWCCjCuYzgyjvN8hmQkW1R8s5ZRzQKQM251cHvo12Hjm5DtoeODsxSNPEmVc3MAACAASURBVMNftdo8ivwyyhe6nDf8GonoJ7VIik9CuyiR6lzqw1h80CiLnHJ2Y4TE6jMSdhn9HbumcItz/cPcYqFEc8rTWg36jkd9/p0ZPD/iHO63h7R+NVRo39H5g+nLxCjtfTHagEPsXJZnd2ib62Q7OjwPXs2Gs4/ocuv1+oEDIkkrGLCI6XW9Vj7sNZIT+59f4sz+WvdWmsEw59dGZWDOiXtOvN8T72vg9zUwfnvsnRl4yYkG+qGEi1d+/8RKWVhHdomNUvEz+33wEB6c2Rm9v5Mzm8Eg+RuEVtY3DZldlOx11r8bDFuhz85sgJt8lE1VBZ3zL0Rl2/bATscNd9Hgddy6BGWc7WSIQgxbUXYz3r55x9YVjtWDTniInBhL1MLAa7tvgKpmz1fc1HUjuv1nv5+IDdTtzLvL3IxTPZUgcJIFdMBtN7YOi3ObOD4ntFGjVYU3QDQwaOD1ksOtxwDfjHve+P3PLe2okeuQV6nKj5YzfI0BGuvp/fc9RaGRPKEDgy/DhVm/7ALcxGCeWAfki+cpkYCbGfOeJb+3m5VcB1Lp3y0yq111DgJGPy7BAiuYvcTgO7MHZ5bcCVSUqw1WJzJue9IxwQBP4J9/fpsTbpxOzp7daQQk/zjvs42Xn5EUiPekgEV0MvyNVdGwIYdAKat/IiyFsRvQinhXKFTWjkLYUs28j2VpOpR6l4HPyivJUXAA2n7NRyfqqA508zo2sGmVzzoUeU33Y5W21ieFXPVOwOV59Cgt37U7DxxRMMloy09y4Pq2p3Xsb/cVHtk84tOsawv+VDoHIdiUI7TKPGX8lHJDvuF4XOrUEsa4cElO7K/X+u8/v67k0L4kMjuugUu9YgnA3HNizonf18T1HulkA8YKcDBfmMx4Tca8JuZcNmUwgXn95pttzpaKp9Nk5fqGPuKIxRzXoB3ll9Pg0Zk1igV/4UT72D+g8+TMmm2KEOOcY8WRn79/F7aXDuhpwN3+OLuddGBTPr62P9evlcv1m6WI1V+8wvsq6v4TxUPp+K3CcI8LVZOsQ7dgcKMd8W+1ax4OQufNAraORBydgZzKYKHaVTRSp4fRA1gfs9BB1AtTVKsDUhWUoGOvfhv76NNd5/2NQXi9Bn795xdoDMz7xn//NzBeDNzAbXmZ7AxAay5rs+iwp3jxaFeUdwz80o8gDGHEOQFxUpfiWvDmTaChgrcO1wYB799vicAWk9HytAuvLTdlY+7ObDjBNa6/L0z6spNSTfN72dZECS6t1AGHf/xBHSh3XDPK8WtsfpasKH9g7eYVVhhZGgMv84bLxvvAMgTT+SmQbStKx8Sy9vQiOI6Aj7GHcAstQup30xP3BWfL4Uak+kI6vm5+DHgqGMV5YxiDH9YL6JVRmKKteQSjr0xrhza6HAwPqU5qBDNdcJrPQX3s3RMZI9BibJ4UeVye2O7UhVUOepzUKbL77QRC/2jF9Vb1Sz6V5+k15WAgufJrBy0iJ7J4IH1V19WhXBd+pakzG4To0J6XOaMZ60N/EplQ2VrpYCRBDjlHdgDXtSK0lzisv355VNYjsy/b/GWpZoB8zWvifU+M953sHbC+GPXrWp+pvV8rBeGaA/dgjDHBk3CTyz/JG560l46jXdgMpFXWyGaQNiTf4qMzC+zODqnh2NVqsM3p5ZQ1FL25nWRQ8X2OzGbfKDTodGL3lux0+WVUVvtg61cJmeeN0rbtNkYkPmwTj1pqylu8w2o2MBvDt839i8jsD5zZV1oMtert4B8sIZazkXaCxvU2+Ypw0nvpXAyfilCHTrAywRcZFF/LYrdW5bXvPsXGKC6vZ2vqZFKvQ3Zs0oB+T5uuC+N1A7cQZCyPKsbcglmSJ3fPiaJBeElU9hokbt1y0MYY8uqIMOZ6ZU60HKKLL1zXerX0vidYPWjCSj3lyFSVCbPwJhnZJg+EM5pAY71i2p2f2gerkdoAgmwcixF7BGeVbRxbQtdzeZzE3+6WKqykloha1Dqk9dSILT82SvcJjE7S5vI0Fts4JTYLTtgfwGwL9o1y+CDrx+oHXI5A1Mi4kvXataj7qyt8Hof2pfAtjqu/6usO7GdtF/H5POczvF6QPkZ86EOL4lDXrSMdHvV+S/avyzNNnj+k0HZ4NGwbV3xgE92smYwvA/GtnKejfYa3maYh+fqi/zQgoacOqF3QI7h+XSSbviQv9vVaDq06sq8Xfv268BpDUtYEHV4R2eueto9C8ZzM+DVf6xPgc+n++7pw3RPXmLiJMMeyF0yEG8vJBt+LU2h9xnzbD12dJKHXszP7ULZG4cbBdpy6fHJmK4DOmX3C+HvX6i/LgzO7tw3MF8343hCPM/hSxupQX3bfWabaz78oL8NAAUdvgBW7B7zUWTBfI75GXYao1wHBglDDqXYZORM7NSN+0RNUOQhROY10doaxF4wKjFIEJD6VpDmr8yE5SSwblpgnNI3VljHKrCk5QA9ZXc7s+uILDXkddK3vcYMQqL3mNebEm8XFuQZeF3D/vvGeEzxnUQIrWrtO3gqvdLa1UA2RnUKjv3iF3VPZIGCy54jZU11y6HYD/mtc67hDAPq1mmUYVmbs4jQ5qSDoqF7vKR/6zvi1vDEmqCB2fMJ5E6jecjwtIZ5aQbxOsclOvBvLRQtVVN0nJgD7Vq9GnAl+vi3cGdD86rzVsRiDdB9Ic0zOXLTI8WMW0mdz1CtPdBq04uF4V5w4RsI0KjBc0urOf1t0hchYLyaAsGqxj0uskZK8taeWaIcoLadC3rStCT9iBBXVdaS9j+nV0OoQ9Z1ErkoN/11511VN41Oh76b+e21+vvehfLKOX4+9g+N6I5aZ2d30lnltqqdEv/7QoVWdQXruKzmPaER1/TfsJIOX6PnruvCS1IJfGpW9xorKStu47+KeE/fwAyh1L8YtkdrrtZzX1zXwvgkY/sYQU3C8CeLDJo3YTddNclL4dr1FNpUw8ajLGt1QNRJA9nBC28MybA4VwWxc8W7TOMGUnZoGaxB1V4ejEQnuKWTkWE7oOaX1mWmknIKoo9ub3KgjCOnEjJ1hxSJWGhW8/QSrc5CrE60cuT+vnV/+zJk9rfn2ZS997e+C/QzWyKQbk8oB6WfJ18XzZTmjGxlHCFxfzan9E6bYj65xxlvEfppYXSKCpUTkGewtOdfe74n/Nf/BdQ3MuZ6e7etcKtyqO0XJQZxXPaaFaEVeh3yukIjsUPyI4zLESxmCCPOeuN+3fBDBTHVy2NKnagFxFBEIqsR1B2A9DIT1CMtjkcrJ0NxWkqfLdae8rt6O7ZG8sf8sRc7M+Od943oD77tzUctHtcnXJLcm60aIwhbmaNTxxezTLDJ0ApnjamwtTbj06g3rjsf2tiCNymly0VZwvaG/CHnsBPqkHjpMxYD+aAt7Gfg4XKRD79xvIm25Mb7wNN0fWSYku4wkDzDuXweeTOuf12VnhazrnOy831PIzdpUnkiqtyr+gxNrYEjFoGK790tzPoHV5aJw43+ynMxFqowex2dQWjqWJ61RfgnEX/Rnbx/rKV7s4+nbHblYkU4p5sRqYCJEZnXj10tSDfQ8WY3M6he/NLXgnowxl3AzltRMcWLTsV3qvMp/65PNFFL+BOfBwe9y5osaUqbUvj3vnFnfDP+lnjGG64/ksrSH4qNUXV1M8eahpvVK+B4c6IpjHUgfeqLTmifVdD6VwKCMs+PZlD6DX+19aGesfSLcn5WNbJ/cu7+Fj/bLXosIz84ebZfLiQRSFKd90jjB6Wa74LVR4eJF2gOePflG4ySbgwLznvJPEhOoL0FA2a4NTneCF+XWEcwTv39jpRaM9bpm3tlh8qjawl2ftpevqnlUA3R5En/cmZ8wIFjSvp7Q4G1ixLXsSIyPouboRYsStEiILOS550saSv8huPVfCdF5Q/Enwq/rhf/6zy+M12X5X29tF5WkQQzObIFd2MSoQDG/eusRrpuNTFHRbv0C21ddG1Y645d4MfB9oE1gXLkI8w2DWDVH9STcH2y/nmu65LbKqRp22oZw3HOcc2tRwakIi0HfRTryImApKtqwqhEqf+vwZjy1WuLWgZxKe59PGGhTW5XP62pGfJ5e+zdM+tiWA0rfGMDIZw3hGhApcn0YooPWis+flk4xbFuUq2zGqs+WscNd3TRbfSrgtghtqN8a1/HEWVUQY/gZsCKo7tSuzcF6KsFLHVD70tdlX/waCoNXauP71s2mjDnGSh8YtznHZJvKhjuya3QQ3eutmeoNw5WAO654d9zh5u/CiJT0dGmiwrlFdOG+W9CxVd+bbGv/2C+hQf6GJ4l2z6j2xo6QcK8T3bRdUWZ7JDkisCN6Th/I7XW6CumYxtEZWqhND3Q0eEH+bT5s69RFTQ9DWKXvg6k03AH8SYpBBffy203Zon5dW0f0caNDO5OHthbxoXw/jivKxO5+eGzx14qn9rT/oh1X7lvmNpKEv37PxBCsMMSB8GghmTIhItBF9gpoXEvwo+N7ZCbtD/lL8uFYfVMN76jHN8Vo7XFaiSgd3Q5MG27uVZ5iocKJsRQz3xO/f79xv+91XFl7rqFey6dWD35oNxFPq4hzCPBZlEwkWAMn3bEHqN5xz/2ehPegnX2g1YbPNI88qjhpSa/wCWUqncn/VB7mRP7ntBa9t/oJH4dIzfJVEE8a5zzml/M/Ao+rUIxjadWbCuHVR8vRDxuPvvs4eWoM2t7kf678kNyrT+R/AfBl2Cr4STKspJqEXG3C2nOwGqhinlZvw31yaAn2Zi0At426pvaDU0s0cI11Is24PP1gnVowzHdixjpK6xq455QIL1k0dsEc0OMbEX6vl38DkA8mZJuHsiaqv/f0HlbhOqUZdKmD3zizaQTyjwBxHJeCUStyFNLIfC4/c5iWio3z66SgcU7xc2d2ofdD/B7wVtS+LU9nsdS3WjrEJwuWYPxYh9HX6/XKFiANW5jJ76f2dHq+gTFduPEFSuJ9bCvRWSoyZzaPqQz85Ofrq/gADtEpPvM+hX97vEVIDTcGmJNAr94j8Xdk9YoHoadzl+6Qd7BwriTJ1bUNXkqj4MoGXJCe4lB+V84M12X5VPGosWC4E231tMa/f0/8r1uPx1rfDweXiHpaXb1bnNlA1zSVSL2UPlDmGF4Rx+s8VRVwsnN6vb1OoeIZxtc+RLvMprBxVOsBKzq4HXEqI8zBykkySHJSVxM/72KHnZT1NnDGWZBNRoVS1DgslDFN+DqZ8KrCEQBQGia8qMwwXDt2ups80iHCP/B1qKd0rS27fpTvJD1AW2vDD8jk3FX0Xjq1FJt/UMGZTx6MCDnd/x3T2+iNbS5hIasDa30O1pKVf8RhiA9A9iAP+diKr+OQNBSP0OqbgtBfwPOTLYxTIHiAgbA2D4tjqYGN5dxKEAN+VJfVyWe9J9aHDWjGtAGFF+EGUun4Q1fb9cxCZx3LmNg35BFUl8ZVISEpMTt5xbnKUro0pW5qvx2g344RS8drG3cTU9FQCXbBcVuf/HYs+6Cxb1Q6FSGt+Zkzu4+Pre3XUdnSnesNXcsTOdpot444N2jnUixWHO9z58f1it1fSRJ9OPu7qzQ3IpRet1fil58nY16N19amUw1hCrQche3g8doumePKPfvwCRqpM5Jp09ipHWfe3S0dgIZ7WiQDUVQ4Anx9QXSuvKYwT4PL4gQyr2NWmDHf9zoo+55yRMs6V3adKxjRY0Uz2QkTEqoTpA8MuEmz0UFr4hvDqYob0+Zx872CBFPzmV3RRefEj1MRTjSeL6kGURg339D52SdPeaAy2dWEU52vxVLSHBxvouFOd9VrT4UhUZS42/6hGG8UpyBg6iTxtwOrizIAb4pjY3EOE2kbFHyIypfTHKlNPSTED3O28Q7yXIb3FjE/+3v3Kz0Q08N44d8zMH0zM9G5PRTaxdI+kj/QP5GngGztVo9sGKDHS1txafbzcl5Lrvd7ponEQ7He2O1crtMHao0uxnOxST0I6x70Q3Boc949WqKaPy1/Yq623mSE//Rhr31zuOumOuS2XCXn181iVIrs2sEUxwgdntIMyB0ghFz0GLAAEDcO97m2fp02DyVlnselxpn9LlIf1r5Fg7fh/Ufxyjbz93Nn9ifFtggUxH8C8geBT4Fd8/I+dc6TrCz5cegvEPQc2S162qBC/rszjY9FdkhuQPuLOOr2024EFFK8bmM6lIhXxV1/irClE+bVcYn9bdDPzsiGOq3doQGMo80Akx1ZReLIrHNkB5gpKVVDgwAWJ/W+J5hv+4KLKs7F8KKcWJ9S2Ra1PrkWEgQa6e/KL52iDfcbZsx2WJxPoykDk9dLL9b6rDQ0giGHm8kmfwJwg3FZake0sps+samoApYFSY6qGsZ13/hfm+0tS6R0PWhRnFukg5yscZZXiRwLsiRrGelYKUvktgLM4fzenf4ByzTP3CocV2UEjNYGbaTRHjDlnEISOtfzXvWAhqNAxXPW6hyMF/fXX9aOujhSY0UqXuFvxHnYt0cjHgX/+ioy/bz2scP4HD9RhmIQDX4H93N5blMGiGvSGV3TH5/L7ox/mEwajnDaAHgsLfiDY2OvwsWpEZ6K6RYMCt2DrADQk0hcvAPNmiHXObZsqQkcdbLQXU8fYIbp8zFUh8ParY9ErrYatLD/VedGkGTA8kxt1/wKD8NOgiFBerOnon+BtKIUxwA7jQJ9U7ugx1tnFrVrQST8qWNs/RHqSrsaJNi/qlWc0c6INHj55cmZrYTrx9/mK+h7Vtm+Oa0l5TZ+WImOdG1UtkNa30me5/SEHMkcjh+xOiLopeTIPgH6Tll1/dLvhyHOHeWOMTwFGlZiNp2OwzdM3yhSM2aVwfbBWpgJVqVH0+bCyou6XgMMyCcFJ/ga8pFWzjQAMDEx7/UxhHsCN6+vvdhnCbcpc/rtNje/jolHSm0leTYnHgo0aZyp0sJ0p0HahMFvLlpq7tjKKeY5wTxwv5cyjlFb7WvGqBW2jNTzpqZguYJCjUe+ubooiRGEYJC6UsaKU+gM9GMJdHsQdTfZH4AfFUFR7BvDx3Zf6Jxjv6c+Qd6Z9w1flGn6PTGj0n8O51Lz6yTrVvFJuX6o39IkfkLW0wDP5gDF1/7LsvPDZyI/GbfGWkagnUObnC0O+qNzdkr3EOUhY+/1Y6Ud7KKgjuucExPry1segJjhemLOIX8JkE9cq4hN+bKXttevOt6TU0BjqvMMBEeXI8I7/VTHx02vwRnaNGLrEGFbzCBN+HNn9gC7wSHeS7m1cmcf77QB68/KvykpWlp/p4z5zQz+fJZ5hO1cp36DyrHUz83/pDSnFkRE9I8Kc8eh6CnWUNh8r7J7zttXSfd7al4Tw9fBVWEUNDhcOG2rIOZFsIfUMhl37JKLGxCucyPDO+JJQdFpOxrrk7bAcl4hX2qZl3zh657g4ZuPFDqJ9zfnxHwz5rzFiYU8nQOYExpvMFVNsgN04x1db+yBucaX23fwK60QUjLYFyCQQldBIx4Rv0Wi4FSj7CxnrM0Nr/XZ3tevFxiMf/75B2DgfgOgO0cG7HO3Wc7aFxLJ+AkMDnm4kQfL+mZS0e7MsjgfQiOjQFLCma9WxJ4lFy8YGh2rMxaKhDiVvjqCi61RHMchOCpLsafTACiuSVxLH0OR8vyqWpx2gyilvaiM7Cc6ZJ2Q2qdblM6VBTmvres4GcBfnyYXc8Ehsj0tVlf0oxv/ohcP1qbbz+r8mCO+NUILb5fma1A+WrEPppWf22wsulV8Uzri+ByeMIx82dac8Fc5jYIPwFKfiofqn8btsUnNiaCf4VbVvmR6uPNI8eFKHE9oytdKC7t5fbzgJQ7qe06MOUGTgLds/pKB51x6/33PdZ7sPfG+l/6fcm+Cc1BDHNvlYLPZk0jLlErXmTTWyfebWnlrDFSmjPox8eyBd/1jh95w80meInf1reoH7zk6s09R2byV9jSXcr+OWS8Ft41apZ2z2h6VbcA240d92JDuMSrrcJKZiXXJMDV0LrdGs6ZPKkW7vzZhNyNxKiEvtm5+OWEX7pMkefPMRqnxjhYdjAYDusXczoG0Bs0cgsOUsKnDkb+0dofdvhuVYX+lWWND2lEzAXRU9XxYvoH791xnwBPAY4jwMt5zvZ4et09AnywJK+GfJzD5ButBtTIDNoGYywcrglBOFlt4sTPmR6u4LEBHCIsU5ddMe/eCkd01Zwss+wNoWxcC1vFk1/q62aCBW16P8ZT8VNt5CqPZYp/FK5vdSx8e4KBA5W+JVCepIc4f4gjqJqo8w5023SLjwn8EBbw96CblXdqexCumpyjDH/RMHOdp+6SBRuSbfnXbaAfB5FZTYvbik88yXYgSWWRSWM4T/r2+qmtlf6k0k79UCZ49nQ184ivmc8bOti7U3t/xjuMjr3szhR7kYa02Zdrfei5fN9yHb3u7DJ7BEzYh0o2FG52Ek+umL+gacGjOzobx6KjJ4OGysN6Q5eip/ve+J173xPtavy8JZqjjyoMx5tL3CI7p+574/fvG7/e9fstJL8uxnbg15SCkIaTUA7Ez/uDr6Q4milWdpY8MNKSOemlzoMrtowPo7TJI17gcjZWsw2pXJb5J3/qBM9ue2Pgvl802y49WJ5zKB3P91K3F6Yfgq6bb3mZ8cGY7vJ7GI6QcWdjrinPzJ08Opf40vDDgqLWxvbqV7MPa7sbA9t3pBmR7yGGCAddb9hlSOdQ/GSfkRThl3Pl9k3rB7eys6U0WYzVovQ5nAHwz3rfkWGm0TUDN6buXmThRCAibw3i9Vp+qfHidVqXR43yGKDCFvViUlgl5XI6Cu40cpp0IyKWdXYr7Ka+w1m/pLB5LzG8myGuw5B7qiQcBvNoaUc7zXg866wNmdQIyltKK4F9AYX/l7PNvNKmN6UZKkcnCS2vnf7ClVZRXReBPm7zgofPX+uI92UMXxTvBISfrBF9o0/Ob86WvOe0eeqc1PuyB97YGlgk8Aq+kuYcojqGYJVEf4CrJumVdf0s0teTcxn3ZbP/ueGWwDFo7MsWRCZtKwwO/rk2Mjm5HEcqXmIwnlNTDaafRwPhlHvMznEE/KeE0g4DQXs07OWPUniPCDcjHiu9uWfnuNW42j0Chc+cEPFnnAi4/rLo9EQS7y629vsUzXmNdepYx1r05GXO4I7o25t6Y97Co6u+3ftJ2jTF5nRObP1HbOLLvG+/b/85bHFpm3DzFoWX5aI3tnHDbImfInnRAiPwk5zRK0C5NvLXH1ra0O/Dop/QFti8i9sNuvusnZ7a78Tj/YE+bdic67FPyKGs6l7XMQ4dI6RAB9Dbc+UZbLDrcwYzzDfeSiSnrpa+2qOp3g73z3TOG8mWvZ834pd4UFHP7Ovxu0vexwt7BKhkRZmfQIjPLTQ+bU8FMNY47MOPAYGdOPtymc7N17MkAM/B+s+FNQPpk5lJ20yKaeoxK/VTiXJ7IOtVAHJLl2Ek2bZlPWoH6xBzqtvxRqj86K/htofwzsciSWl25yk1LAHzHvQr4+5833rhtSnOuvGD/5HIjsNFzF2UBdCurxOkI4gAY0csQYe1NQQsjsY/ntTyUYomfOuzv3Q9tHKfH59p2/G+bfdnv63Z/20d6pig63HkUuP5wrKdRiB4BLE3keJY25b/LUaeQVuL4GhdxdQ4CN32xnHn8bE22LN8W72/X5u+LnaP52KrKX8GhGEM8yV61rhs9i3yXSDapbHNZWGmiZ4RD9RhD8l4JQ22O6PibV/rAJWkE133jehN+ixO7AhMrinqPgfGm9InaOVcKwfvtzmx0an9bqsGNe/JyaKEbgWnpSol+mCYiyGbZgy08OEU7GZXOVcF2rtD6ZQGszz5W6CGN3av7mTObVrAOEFMMnpzCPI/kzH4qp8E3/+fQTF2JgzP7b5SKwt+CjsdvfjV+nFspr9ZHU4ZoqrIdqsZcf2/uB5ybzgbXWEEGYsAiZS5AFbcCz75GUcc/FM39s0uyfKdNMNun/yIJ5TVwZSZmkqOIdJ7usJhqDvKuuNln+dL4jPUae2Ay49evAbzhm7umRl1VzF3gTQ7jWX+2PkjH/Nl4UXg7Cc3ECv0cpu+JCBpx8yBld3B4yNhA2w3G+31DncYxlmIG1OmPSGdnwDb/FN/W6V/5O2zSSpPuibDGcoOafEn9bRVrnAGyT90uhasEUzxTx6I44fMJYtG+TTa+Y2vDslYUnARf5p2XDSgBBEnhSOLgCTpKj01UC/2S5lBbRGHqKERkoJ4C6EFTWm9ditdG9SKkxWiqCZEmsoTloZUDOchFIH56FAR741Mjt0YrWRxd9mm0gr1JQQy+VmdWcnVPObOJeM09qkbu5Hhjy3YOst8O+IhOgPJY9WFSofkBFjWXfBo5yPfRoBYdUC+3HNoIc12aP8WwRbaILGAbum5ekVg9D9bmymvzl352doQ0Bd/Ytfq+f0/88/u9nNl3cGYl5WDe93pzNxk3L1NEIDn5oDh3pPzXnJiB2E7pkRWE3442Jur63D6fZsuP8P0z6TGPH2oSD1/+ynmksfpTVLZDa8cvzzvn43dAnFdiike2R59PMFByumnendnNfBwmcXS8Cy0BX68GO8Npl+c8Qe500kM5ObNlsxftPwuW3e3jiiaQInxN2KuucbypZ5ZRvBmY7qhTW4LE1pwWPtX/VFEfXtvlrlExqREUcpgx9o1ctglL+5bIKcIQRGtj1/v3G6orvVEQFogwC1fXvS4+l6JcVAiCYs7IcF7DiJzeJAJ4Wkqz4RLZnnJnZdr80QKByATGlI99TYCHKHU41BrVrHShoDij9CldlFUDTfwhB/CjuJQmJ/4JwAp9I7tbdA9LUXtqSGYhzv/sB0fY+FxvZJTS3LOSSihDVliZqxMFhr/dT4jiHNlVexxpl/CGB4krP31ZxO/D/lCCtI7x9sDgFF3XV/4GYqzUERrG2quePEorhjR9sSfMk7Bk9hIe5zBUdGg3Z9ZIe1jbo2Mq/UJKdKDE8gAAIABJREFUxBNJKtHTVbJQ36/FY6l67lCqEfuUs23wWnLl8dIzxwa2EKvg6w9LwUZJ+5qOM5kxLJK69j28iUB0hwchGF9MZtzzwmsyLiL7RK2Ko0Zk7/vG+z3xj0Rk//n9xvstn/h+37jvifuWIxpvljPHRYcGmc2bmoT/TtGwzfRnre63Gxtm8A58Fh0+ahZFg04RAf2jOvzBmSUOuinMtSv1c7dJHqM8JJ0peid6kVHVmIHfFNx3pZiVY5qBInwqO1m/iyIHNB7AHXrEVaZS+wyh48V8/FZnS6rgh8EyqM2KHvoGJ6DimxSktmXo1OTTADqb3L+eMxkFsY4hDU4E84Uk/f/W0iO3LQj4Cf1dnXSa8E02il7QuyQ/Ui7wxmHryZTBeN/Ar/+85EtYWNEoPZu1nWiZsA1TZqykDXglIbb1yX1SYwLShr0NEUbDAIaPfoAgKgFTSjF5Vp2CCIZi5DI8J9vrvwJDdU9Vija2oky2SEkhlnNY/USG+kDmRLWx7GNvnTA6xMVa7GAos/tik2E85JHWgzECGSnSHLe2PoMEaQSJ2pwFYP+KVh0//vSHLRf3Q5KGEl6j/lXNyFysWXI0lOd0QoQhObGDB5imf/2IVl/NWWQa67OjUOd10UDrtV+ycAF9O+ge01IMJkfxdp40rgnqZNAlR5FOp17nxG6Ky2+TnUu9d9s6oKz5aSkTDofBu1pzcujQQB2srAcPoQznldJ+s2sdvsov7Ryrx1LwMZkmZZr07DdZ3qDNuU7puCduCM+IM2vYsDqxE/c18b4GriGfnRUM7CQC2dT1vlde7O/fN37/niFndooju9ILbs2TZT+Wy6x6pBFDNlX8xJnNvLLbCyUjZT1e2+svVcCqqtM6NAhUvV0Ws9WD6Vavq7aILhS+LsZ3IB1OxOtAPOAclY1k4IwGxX6iONIeimSbgw1U6nb830RlO5zaSO0G7zxf28j/cG50pYmfWlANTZHXFMPuRi847rVZg2z11fhtGqcbp1Annb1FQtE6kThKMY7VEX4sJBtKDjQ4d5NhONCcqp3LOERDvSn39a8y6HzLHZZ/kqMGoDi2eR06uofUhsjD7RofeChVZ82eTyEIY2vUONXvY3m0oxOwMpYqTyMQvKLytbGST9RO3DgsVPdgtG+D2vstue36qn3peZjCv/5p3KfyILMVxQe5SR2sGfdT1JaM/DDwdYl8+JRxnJDfq47TcRncnCIJMZM8BKy3KMvhGENSDOTVyvo0qNZ7OxuDYHkE6oDow8ZyRvThU/IVwbJbc8kCA6hpBmnelbabESqXFgh4Wud9wU6t+9zgb3jIADi/f1OOYX4deVHKmthmOz6g1DsHTyOkRmX+JK/UGMN4xPzkyZhEuOd62zRp4r6x8R8DmHytNIBr4rrEiVXe0oitpgqYM/u2KOzv98Tv94rErtMLIMdvKc/FEwzEWZX6RTe4s1Mjs9VcmBp/sAzVqVS4ODuz+W6kTgSXEPA/xXS0XB5RsotP/lCd3eMISLwV7drpiakO3zqzp/FOpZPRs7021L4eYvcmWnhfFz8q89NoLxvhJMTR+Jfend8QW3dm07bwRO++RW9/bmL5vnTGLzIenJcB2bxRgGz8HoyxPUfsB21EwUrkaJ9SyZ3PMJ6lEQSaMsSgiGExUxcVX5bNjegcaPLmGzQGaN7iM8bX8vGFaTX2qugVUcfRS2BSQfHIBJWftNgX3iLDk/3NDxY77Kru9BXcWusVQYvBHT/2qwgZhegDObytbfDAGCsTNFGj9k/W2Cef+KelDQnbxHzt1dTH6bUpwXmdAEzidrxlVsMMKMKKNAu42dM87NQM4lRlF35uepBrJkPbN1OFHO1iaDIyEf3IIzMQKOOe6ZKdjPRcuw0Ul1L+FacUFi1zJ1YdCvstf5dqU2dD+yot5PgjrLxGkDg1wr8kzgVh5S5Oy+tZROhyZncRPRhgo9GB2DWQsam0QuseSm6wIfnZip380xQp/EFJI1MZoMJLZwpHw7tJ7mkEo5PubZBzacA8TOcwrw8cEBg3qbc1QYjRWHE274n7GrjmhetNlh/roy79fuuZsTevqOy88f4tpxfcE7/1GK77xi35tvbQpOfKqi4dtFIP4hRV/3zjzMpF1tUxPcb5GOF6p3DYBNmr8dJd4ebIaWyU9WKzlKZn+8F87pS6uFk3pulIsvke2ZltZDdennyNMNeKz+eUiE3hBwhFHmP7Cq/g08tKJU+3mPXWZ2cWUEeWOWyYoPAnSPynA6Glk7c6sEtl/A8VZpJsA4RGSUJkMVKbMhaRd0KD7DAdEWzqHgzhFlWjaBbjj4Cs+VIpWzRh4XwW1ZcX1bUk63RdJL5icWITeg+aoZlbbnUQ1IiTeFVJmQXdh+SlRMVQ0gW2AQKtWWSKdMPe8DUQomTDuGkGucXdInl78t86L1OKJ78gyhGXe3qlMlbmp85sfICp0L3wdmtgOZUb3YXvnV8iFF8DlbSkzxOsxqmQV+k6buJ8in1dYWSwKlscb+7FDA3w7LRF/ioNDqxPNJgpbEM0VhMnFutzyIR1vvOKyqpDuw6pp0s26hBANBA/javOWPqM6PDXvOs9r+RQin6bShPZAWjOLCmfELMxZZjntsEtKeqernmhMhGs3U7vFiSfKmD0aFFofp/LN7or26FsxD8joG9xdO0aCoWx4qWeViCrJDnveizdJU4kSRoYrgHwLQ7sZcdjjTHwmgP0nriG86GJAAP6FbD71mO8ZkglmPh93/b7PVm+AOln17IsFgs8e5OnKQcE07em+6JDEnPME4H2I7nsuobnijMXk7DqsVMdvV1XiXygOLOdOij9wzMj1DZvnaLq4/TnQ+l1z7/jzP7b5SAYJ1vXmIO/Hj6R/JwGquXVJtgliAvUxpGlHZmJpNCoWZAl3Yd2HaWEoTW6ahhdxZl1TGKxaRWPo9+JSekXl/unaIExl0Uz1/xsmpsAJWIsPG0e+opNXpu73xTEO4PSDVwafdRd/Gr0lA6nYlmchpY/OJzbC1QS+spDk/YaRqs9ecB2KqbIb3R/qkOVhdeWM+opEtpLBGxOjiC7STRKJNbrQaRRoUZUVWGu68ReFMXOnWldR6ghMiNBYvDiDOPPoDGLvwK2dxwu7DKlYQPH9RT+oiqtJE56NVJxOOEzwz/oB8339hFkLeoaw3iTAv2i/HIYK+kkaWd1gA16PJmAKNzhOOH0l+CnFHg/TynQWyS7xsdFsvGGbCf5dY31pTkicWJhUd0lv9McBT3yaL3OnZjEcprJADHjnsC4WI5AAmgwpubVpugSgUid2TTxunzfFXvNAmxa45A+cmjt4JoeMdLZt/ihg7CV1rPK5AlCm/JvgU0frOZkdcdRpcpUwGICc4TX2unJKnPpGYs4rd8MrEj9ZIyxUgbiW4B63rtGVnmKoypHcalTe4e/62tf+llchgY7opVQPUcA5kwKJus+0xOieyPJgpKu7zddlxa9K9fWIzFB1h/VtTBaBDgpJnzyDSN7lPmdmLDNlUXTfxuvGi29rBHkZoKJTIec2QLelu0UlXWAu/2LWBOFat7pQ9G2ed+TDKufkXEojdNyN3twSgk5sghT34buB4t1bSkMfmz6MOY39ymYoMK3VNqdK1BX4wMez/VR7nO7k3EYuZrQKge9NMFgv6M/mRnXhcwsi6MtT89xi16EwyOZQVRw+1TDnE5cK4L9+ERlfTP/+cPLoa8odBIaMuQ7BOJALPxnQfuwDts7lIiYulZBE2i9sU6iVDO52jfiolf1ZZwuCfX80I7lvSv/kTTZpnnApm3UdqDwV3lFtVvgLX3Y6EYsP7nePI3fWqRPCNf1RdCuC8+F6rC81yEbucYIzisBr3GtqNk1MC6syOxYjqzmzWphvhBzE9WhICJMmrbG6rhMXh9OWQ7HhJ3AwHEuO/2+oFxDmi96fLEcQJDih/ZL3EjUX79mH1f0pHPaygZaMZaI0mf6oDEYMRx6LGE8Zjv5ZJ1WMZZWmgCN9dDikYB1ziyPxSeDxjo7diyeHENpRoIC2995T98cNj06q/mz0z6YIxsL5/rCmObHxvluTpDd0MplKz74QEbXo58SAPj1EVxSp12s5eiilGXsbfOppAm1zic1Tf//X7rJdLRSh7eIzBfQU/MPtKvnz0TeefWe3pMGqoM5h2s+kA8iHQ7GK3v6KP1Og8dfC3aKwlLwDTN6FUS9COOL4xKEVBUvGdCmPyFHjtWW+w/sjo2vPukRXHBFlR5OCSH3Khq0AE/K1Id8vS2vR3EJIJkN2ykCOh7pJ8EK/tq+uBiq1MjvJ5oVRyOlUHCwn4d1t6cxylGclboqAOS1azzQXtvXs0zTOyRi+7az+wZqpOBEt8IAD4Cm08qeFkj+H5SyLW/MAoYrwDgOGUebqA5wyQ6SBYkqWKfjmAtcwYfURDqfkK69wQraXTGlfO1/4ruXmse+Jpz87RqdUPnQ/2aoC6gv8nos39ItcC6aZuKKbpfTxTeV+KGsM2SFdvI4p5EwibZe8knp17hwDcJrjHXvGlY3aEVta7KVHWw/J8acuG8C0cRt6lJOZplDD/kEeG0O0lMGWCcbCVcuy6QildYde9B4IGjbL10+9vpkzyj/g584tN0bg1S+sCHHS04SFgA2jT9YbjsrRJ0fBtZxiQPqvw4JyjKvEywG00ovmYRrMIgn6I4pK2H+rPgy5g1MXrmv77m+4HXPlZN7y4Ywc2b1gzFgiQHXebnOPDqziYF2ZqLSrrZwVbzefplujPAaHjW4T/xbo7KxDwDN3bfgT8HpMSprqB0iswlQpU5pfIDVCnW8/N8SlXW4W3Wij8uIXyr9D0sU5pls5jNLQW2BViser701tT+3JifsKiL2o+9kD7d1XC4NCjqgZRTjXWOEjwq6R70a7W3M013ttuk6avXfCU563TaQ5m492siJSd+CA83lFMdCNSkW2+hcF2OPDT0mgh6TlXHV3LxsdAJbwaSkn6LBUWeC0z/KDJwMpuUDmnMaFR6E8MsaRAGOYy4B41CbmTvrFXbam2TWPuRVhJCPLsZGo8QnOTH+Zp2yXPsamgLaIrGRQQk1NLFhuq1HlCkXlipylYbdXa0xJaTcYUPwhp/XkFmlroWfrxo2wGlr67DPvRc5zj+3BlIv9PYPPMgGG1prQWP9d431ielBhOu1jkW6Xtf6a84sLL1Ax9CUgjEJ95Scx3vNahKBb7KvPy3eYl8zYZIBfXaLshbk+2nugb+MoDguUenWyPhDv2TjDihFMJ4X2QONbT8GRb/Ar+u0fRaZw0WB1bkp3XimV6LjIg8sk4el5Sx+Xyk+c5J93EU3E66RgrzrH5b/pjiy4qzqhxbMcZ2egsDE0j7gye7S1gfkJ2fWzvmOb/SyQrUfkaQpwBMdz3juarEuleScAea12b0vtKrjKx4pToWuIxpntszpGWZ3vTlQH8pPnZ1/uWQDAMMn6JZnDJ03Qu+P7Z1XqZwjG9sdke2ul0OUrQgfOvaIba2Kwa241OpqdFmdiQQPgeCNVqLYeK+n4KlG/QaIsbKopMamJaKjApe0WZgDhdv5cFxX2iYrrlDbtCQbXwYlts8ZLqVTp7tDWMIoB5rOqHyi0+PR6Ty/kEZAcAcv+l7IT1WbqhKlGfMeHWqIWKshTwqD3IncdI9GbHOFOS3gbaxdOwErKluUTdoM4ThFDk49zFEOY1RLLU6MPnxwhBIi2M5vbN0sQZ7ibDM2frV+rV39ig8fFBDZ+kWRCZuPoLbW30wo0wXvo3jX6wNz/JXu1jjnFklKs0tShkzciF+oT2fRMohWzisRQOqcDsJFA2MMXOPCr4vwugZe1wvjNfBLzvrUtnGZlx/gX2K634TfOh69wPctKfaMN5M4NWM51jzBhBWt09X1kJetwaOq3Z9orH947n0siY+IK5jvS2NykoPTAg0cy0E3dnhWX6DFL8uDOT8RwEP/1rJZd+GupMRyVGzNdK3mPUlPfZbslhWMmCQPO9OsifEn4G/eljMbNhHOiZvZ7i8ndspmQoj8ipTEN3TKD5weRUXNnpzZrII3M2rt/EayOmb/CpAA21Rv6JdsMOe/eW3yyabdusV756jsZlBEdddoaj+IW9dk0Bs40Z41dLJrffDaACXw2/qV+uMAFfNafVqvtL7BBj0RPVop+ZmGCrxZ2zPs+K0edWBbi1ynhoAd4Ww4qjaJQJ6UbuPYCphsfN2YOpM0iJ5v7MAfcPoM6gsrfGpOOMLk2DatZfQWsDEiifwyr92veYmWwJAeLRWegl2Ge8eimE/sRHNkbc/UaQ6BRTe+1jssc4UKo/Zr5QBKTIUbecTO5Wwt0EniCvylFQLLsF1nEmRDeWavQhjKNUf1u2uirf+5fCHhn8J0W68vFMlGl9zUl7DRZsdecYCft1dng2xc+yPLKv8j+arSWH8vcVpf14XXNXBdF35pdNbaUZjbtN3iYw4Q3etDEvdqM7HSDgZLrjcDk1Zu7KCxImnicGgyuD0/RbXbkePooQbz+sA3H/n2UXf+aTkD9Y1Xh55a/ah78ljJVJp9ijK5G/qjfHaoywOcOxOhNzMmDfAECBNjrNzodJQbZrGbYshZHcyl1/ScWMY6Y3Y5tu66ao7s0l8aBa5aM5BBeQzA/krbJ0uxQ6UDLTxj29NSkGEVAOQ/p47NPaXXQ89Oteo0PkZV94E3PZZSDNot2/9i+Qnsf11gSznYtS+HrcuyO7Ne/NSCZvgKzO4Lc6Tdwx39yrl8n4hMOLSh3kjumHcQvzT+9gH1ajyLwgw2Pr826wVl+U2Uczqbp/1dIZL6mi06ehG/Oa2KZh3fE+YFAOLMToG58q0WLstPFKWIaTDSSKbXwzztZ5xfIKGdCqTKOtPEnUxzB02/e8TVDUp0ebUfMcHyColgGaG8jB3lhE2HUA0CeR4raIb1iHtu4+S6ReFdeGz6Ct0jSZt+LPRiXviH2HckeloDvWsGB4A9ybSqUw1KiY4YdMGXVh71Rq5OqfC+Bib30SlWfIdgEBwGM3MMwCKabP3i3wE19o5vft3el6hnkhNr9Xr8gsR+ByEetXVdA9dFeF36e+D1uvDrda3fGpUNR3Et1C5MXrmKdJfUHfEW1iYfYEw5D5hWBPgWuYTKGfSYNbbuzSTxkRhw3RpN7EfTHdRUYsJvOh+a9ZhGG+I9vs2RPTq0tcxcHV0Pu0NwfRQiYVVmEhoMIiLzibIzq7p39RzMmCJC817rTWDwMIm2t1TZmVwpBIqmHqk1laf0f8x2jvGas8rl0p82k+pDUnZmE4Gqg9AoN1aaBXuR6Ra6NG+yqpIjaEpEY4vUgNgtbvHqrHW9V170JdyNEoZTUcQtPZrKhHfQq38cle3Bm10oD1Lei/sBCsBvo7K5n/6Ke1HyvE8A9ueiaHe8/SsOpCUxbPxtQuw329ee+xxOszw1tltPDuxnFR3hBmIbs9MHILRfboO3lMqXtd8npfrp/V4dpPIwxSqCOmlMwGsoQ46E15ziVNDA/Z7urxEKcPlT51AUS+ZPZRBOfbNPfN73D43CUkSg0l0ld2x9EY5pYzhP1a9hZeNV8WAfJs67oc2OfwRTnLN1y+lpFm/1C5koGaO6Ca3+pLgSmmZQlMTh94Z+DfeVHL1UVBmT5lN361m6jF7OvTn1vAhZ3qRL18Sfjo87D0SJrRbsmB5Adm+dTiBO60sjsx6d9Y1frnxXpIxw6wkFRgCAL8ac6xQEnsAcjMED1w3c4mgsp2aRX/nC3qjsRNvLx6WgdQwYNlZJNGlhWkUx5g+laOa2bK+rY1/+NIwzRjsW56bxnqoaN6JU2mbn5GkuzLw7s9qLVS5JPoaxcqQX1EXLFXyo2wZ3f0NPJGBelfLHnF5WubB0BA52iQEm8yG33E9Bdc1BUr8SNtoQpsOYC44J3+oRSddA7+NnWd0P8/tK3OIc7Zu9Ik8E/VTQt1EprNOXHkfCNo0bR63OwP/bpfD3xyj034zB7eWx184qW3k9DdfeOaxlFufPEL8B+GdR2IxR8jyi9/URpTznaDz05hMbxjrdqGSGPWuFjOr26PuZ3U2olT9oj7L55zMJ13WtJ3t7Ta/5qIz3zbaZZACYYTcTBYibo2DTKPnJwYnO82KLmvrtbHTi6/qUV0uLpqpUT4vpQw6wOLNmACmuYF1L0lkWjHqrmpZv69sgpTOSeWxOQ2LbRHXHJyGcxzTbhMiDtJ3neJJa7xdpu0MmCiMkOxPH0geLnYvjW406ZTUewacXO5DnrkHn/cndvwLY+St7ofSXNCVA+MQ+biAfPnhplFbSCF6vYdHYl2z6GpfkyQrCc+gh+CTruoz1HIxrXrgHex7uJEzQ2tQlzUlPFAG2SEyK5KSSiPKYLRJzhllypL9+prYFDAtWhj9pscxvoXVovuv9vUcvb8pgzQjh4pSCsEV0W8T3GWwizRyzohbPBofWTqOZS840dcIezDStoMzW8XKvUZ3X6EjGDZL623SyplutEC12nsImYxQu/Kc39I2aHb30mh4Je9yZvx0zW/VhHuuQvHYatrUFC9d6FFC9zAAa9ghdwvuPbECyLP8kKrsrwYSHae8UlW01c4C1E/UxKttSqFsc+L2cwtx2qcGKyl2v2G8f6FQ6hjghe+rReANfjN/WRH4QzqFj6wPs05Cq/JNnUK3rdvEF/G8txJ+U+sJ4lQGJJAEgusAXYfB6kr8G475vy2mlCTDJ7mkGQCMpFXNCTlNuSR+sgka6Sn8ubGpgCM8DVgvdadGUpuDNSHBzw/I0iQZuP2BZhU2Tldul9W65yw1urPi/IbenfqeW5H8/RkE/uB2VIRrD3cIkqT+xRho78/ATydZbC43CwiOxNEA0ZNNX/CiCR2LX6QWSUytKmHiKoyKYTMa8Bu7JGGPaYfeawkBEK72CaW06m2iMu5OqDyTI7ONmxEyGdbmp4/3NwR+Vs3hszT6NlHXCR4uSax89Ume9kzpf3QPti/NRJ9pNWyOz2oAB29ynqC2QywNd0dmIn6ej6ENk+gQ5I/HGVB0RI7DatODPGqfIO3c3Z3YcfE93NJZXUp0lb1joWuhUneLtc7iJ8K2H+IU680lslrID2c75m4GOCHhfUw7I8vlt+UvxfCxmL/9ssM8UKqv/iVdEhjuYrwhuR/xb1Ojwu7tDp4q273OJxnMxdnx107bvhuo4uYKGMH2n4OLBsRsktjFIYUQAXP4qDM6IUaiKZXP4yuiWWiBGcaxva67fMslBWMe9XAx9NJp2yqBqup3pOj6P5Ol+q9OoazRI9CxH2uwbtRIR+HtWzV9qZjdo8mcwZN+wOglOOf83Urgo1aAQ65zdEASFWXJsLUpfjOGJPX0+HT7IgYOiGGeYfi5HYWhbcviV5+uRbT1aJxsB72PuSMCRAY/0xOlRhK28KHCMNUmiqHP3ylyANz5Oue4yFun37BUurQ/T6utdzZclcWovIjmSa/039Peln6hdtBiQtALIZ2jHwJgTFxFuc5KnyWt4IZGnUizrp1dv1Mz7dCzWWXtXz7cb5KF8tGr5rch5Ps1D7sOQqMNGPDuH7Fwl3cWYagSsKj1jZrEhAqyeBqAObbXbYInG8nrnpH7v1HOhFb+ZMdR8WJtadFpFv2RrsvDjWTeyME7O7B54qDfcDq5TZw7ObGzdRfP0lvyg0ezOtyns6QHbX2TbUq1mstOHmWXEmlb2M/NEyCiIhkipBDuCsNDp66is6X1aPNFHh4JeVhXyKSrbzTnwRN0w3czBqKG2EodxUm5dB6CfS2zwsvy3YvRix/2iYV7B2PRET5XDFXmXM0WxTTD9iPLoxF/fTndma88qpEqajmE7VL62Bt+XJGcluaLQ1pnSmfQjOkHulMmIw6YxnrvciMSkqA8XYJvsCN3ty04ch4fznbyqEF6uJ7rGeeYJUahb4+zHc0gL1vF2JcTVAJfQzD41h1uFNOeOuurY2IGsUZjO5hmEX4V2W++ioEfRDbElr/rz2X5BFlu0xOFoQsYU2iDJHSd26ces8liB1ht5nZI+0FdVey7FrjcIGST14qsRWcUtfixhfcVrRWnjxxPSJ0UB+VIXgQdhTM+31dMN9IxaMqTUoSXHISjyfOQZt9uhC6uFJj1X15IfQvZ+dv+4th9K41E/g3I8Pp07G3t8jx6XUWirA9TENPZoV56Lp47ylqHHV/YA3DkR/Zw0AceeYfgYotVfGxHIcEvqg0MIoYvMRlxFz7GuRQO/dWZPuileKxmowIl82C1snU9ok32yUdyJ53zZ6ly3mNdX5I9+gNJVzQXt+KLatK58qO9w+JGsRoUYJ9bLhVWnW7uu2VGIRP8ssdUGjo3oFcd6naBRqk/7bB4X8QCcyt8TAp/qBTc/dL9TlqqAyQQ4g26R8XvV2Pr7x0MfR1Wjo+HEdP8tsNtoTFmrqDvTqOlHrFliMeor9LiMai0B20jiUYg4ZzW02i/jpdEsu89qoPNUQJTOfLdVICSD3rF1b2z2Vn0kwf8uhUF7H5n3iJNyQrWwoN3Icc+1EYcDbxNWqLis49AqoBiCLLxG5zCE0YoIfgxOA+KA5/bqOfB/+hU+sOGOxor+K5tH+uVNLHEOB1QcAefBOB/TRS5LJxFWMMMvdxnalinzozUTudacberml1QGBcc4wDuESkeht/1HG4J1ilZ2c0KRjFuHPipKaIjyUP/Q/jDXE+StlSDPNPzc60Pnz/D60ZdmODzytdOnUtHrAGYmnkzM6z+7D9i+Af0tHUDyaWOYs8r5mgVX8kfoqiZ0vPVfRsx5WoWD0zUlusTlKxtsU6ugK+KfKsu1WyKj8mqla8G3Vj3qtL0+wel4iOoPx/U8n/BgmgSNoHSjtt8JXr3t8IjCfoQo2BpYUHkZS+nRJXUj1+9+TE/QvD4NXQIFNtzbi7Auj8GMHeY44PhBm1RhPQn1qasSrdRtxrln8C8Q/Ki5NuPXoJOYrl3cg+bcVulLNUo/at2BuGfNAAAgAElEQVR0Lmui0FwreqWGyKROz7BcCvPnin/xXiFiuPSqg4bgMIWWJz8tqOPSVlrV6UnP55FaWXSxZ1eqE95B2qTOM/iC2lVp4Ww+8uD9JaebQQ6e4H0j858BRZJ8avVd1TfM+oVgbfzZ5fxS8BtKVcxXNPGyTS8h2tPhzCTRsEP9xlv7esRJ1qotcGXdC0J/pnx6HI9taPv5oeVXJT2MflLL7Y1SmR4eDhnIJxh1fTSq/u34of9iDY/GRifV4jB4crnDUCciyB97gWZ81MuA/kib0h5G9jcYp2ad8avO6xH8o3aNDuQG71uzon/rfxUI1cZ/UCzABX9QrU7m9p8OOdZ/Z2T3CZ6q/wj9v1Iguf8HEo6w6q8mXLXDZYTzSJsmnVEpIYvd6Bf4+pPDomwher2p3LtZgwSYIi5VkRAQ37+SwsvbAXd0icLriQTRQ6MBVpwG43mZDRynH7HWgUi1trKULVV4nV2iRd/JAO4bkI0ocx0uCL7lqy9igAHkY7g2vPZFUmc27pKNaMtWAGnLTjJ1ZuN7IPgZqtB+ZSdl3AygS1rHtfE9fyGQxF/fxFNVLSNTuihrUFmXLsqVP2cWHZiQ59mWuFqM/YMXoUrwLqfc7g5LMm7NQeRpXfWPt3N2i/tsI04PuoOXAR7xRsAgxuhPpxfUY8aSPNG2VQNR7lt562xOtFSi6zS33MROl5E94hUd1TkZuNbaTmbZJEmYExgjHFDPHP5zWVsyLO2q0ELlca3E4vGd7qYdDzKwz7shigH6YBcqr34ou0NU+PoAoqZLfyrbycilc8v/daA4GGUGyOBER1G7HHt/02kBB6t+CE+H8VX/bSkiSS1y6pInhJ4IwVaZzmt0fdrHoPM2W9S/Cjc4QVcf8fhgJdvNjt34IThSUTru8keAQaWvT6GkGAScaxSxm+phzmYXzA7Wxr2Q+BQqLxYHwWYX9TrnacRRtmHj2kT7243Xjb2Xc3W1g2cy6IxebW2C6co88VgQdL/dKBA1fU/atNp7BNqlPkCf+LY1+rqQfXoqwqQNTHJg7R6yX6RP0HUyCa6vSFqusOvFn72/mEujqFXR5RmRGNKJea/rMaelCs0510PEZD1UNq1hd5SR4d5MlUDha2Fn5G0TL4c1d0nbWVOfUOOakajYh53Z5kLGFJKAnslfFVSFT9WRezo7chxrHCBKm5bZRa81ihtmF0PPiFM64AVKzNi2wvPK7jyUDlvXfm0sSPDTGg4YVEPuH4MoijQNvlN8S9UNfLSONXLcikraliD5LATZNMdg8t3hzADfDBbn9AZjzOWU3nOCJoFonQcKnhiDJLdxreI9GfNmzHtifTp0fe2L7WtMizf0XOcJ3/Sozq/PnWW+rH7I+tjybOgbL48y2TTe2nY6yRvuTvKjAvgwVlwT12hniF4frZLBB9bHsdIAvOn11D7YuXgdZgx1IBaeD/2D42P6J8reo1lb/fPDfFaQnYlNOc4lsJI7eIJV0sNqsziORe635GkhOpOZFZROcXNrN++dv46H/u/g4Z8b7+szTLgSTUNnvnEzRnn4p8OWHza5fVUC/X1j1d8A7AbQwlvN6Zjyn8P/G3wDjDj1hgyvGJXwYy4ODpQZemz8Vh8oN3fgk09WGS1exnG7xhnB/ZauTHCsFsjgETCyVSyO3GIob05BCExHGuy8Q7LHNitaYs9DZCJQVTrdFONSmIXSOJefOECK+8Q6jUAiWRMA7jWNKeGhJeCubMwJUQdQaBTPkc1KXe85oamQ1q6jIon6hCJVQz+OPEFhLUuivnYYQRQKIbMOq7y773AVDlhH2sjvqLyrjqvIc+E9FxfteOJnjzHtjik76oR1+K9d5vVZ8FM8PFNjU+IUxoUYOd8IYrFy65cTHSLvuskNsAnJOGVJAmgEc7Qp8Z03kmXVTjqtGO3fVMRauyEGUKOdwxjEc4o1YrpgM25eTuw1GO95rw1ctzpc6yyMy+i45I3nxHtOvCfjfa+vfN33xD0n7ujYQh1VlUfBVmxkdKJ8JmxtlrjnNf6kglvjFm3BwT9wOlaN9aWObocvxpVoW/1jxBFw/qxNqn3l/VaL0zY44I+KQU+oDmfsALcoHvLHYU5mLcwpe48uWctJxObw5Iez1SCpveSYlfqEOxfv5jytEfVxbumQ43EyKQp50KLxzVt0bKs9rPo8krugr1byAUvrFNvudG4o1kZ7D3RPOrAH+xT1/1lU1i9Vo7tTDxskdbHY4c6/LT1S9U6/fhKVJqWyfoQn0gZUvuyVLdND6RSe3N0E4wtwESyX6yM+lYPL4J/0ZcdM7edpfUOEHnFBBPCgwlwEmv50//i6yUojXY9I/6woDmPQclTDuPY5WWlo0Z17Hcd1z8K7GzofWROF27aaoG7lZhWSoIUp3RHcKh8GrEwZuHBrs+RgFdbZVyQ3iFeVPR8NYisgsaPKypmiu2kuTDxq3TO8ve0z+IebfefyWdpUNjl7wOpImg9CsZGr0VsPRaOoK+K5ZHvqf3NFUedk3HPimoT3fSPmiTMTmAf08Wdi9XlPcVzndGeWF6zJ+gUwjQB3HpFOLnBr0V3VbW2yv5+J1enuszj3jZ7gfyrqFH+wfUAnmflX5KN8M8PfMI/K4KM4FWyC6srNgjMQHQdF5ZN4WbRP4SiSuxPD9m8clrKzutncTuFHXd8j+G2aAQA/TovCm6uEEDLtrchNRnqwqfhsftTuexVFHufc8Gnlm0j+TwtWqr/Vnh8R+B8rdf58rv4RGt95DE/9n74o+doafwJ2uGf/UhQfbPp2IfKgFTatEwU1tuOeMVtgDOjnSE+ZCcRY3390D269Hoc5sWPQ+ljkIFzyioTnOsuIWWFzlokyFstRV06viG2NLMJwCRCa+sPcGbgGgafHETmRZL2qpOG01IgUDZLXnTsp8ygBN0Z6aBfVqiMjEUQVQuij9E56bVM0OPC0xEcsbF5oIdqHUF8llrowr+04L+IVOddZCW6M5fzraz8nFe18GujR+mWbA+FU/EoFVPrt3pxJ5zM8GVcyb/JbAvp/mHvXRclRHF30ExHZc97/ZaerVhidHyChG9iRWT276c5aYQNCCN0QF6dyvursI5vIvRLFYBZWfuqeGv0SlyWlrY0Riizg1ZAx/vOtfO1NVgSaTvBmZJqhzmsnxtUZdDFereNzjf7QdUH0VuOG6+qmn6yR16t3fD7TmeU+IrECu09HOVBC5KH0M2Y0vvKbfEZ8sTHcUpkDF231jiXwnR15ku704CrnOSaXYVPurvsqrmzKVeyucuagpwZKh9byrCmg/SjtRlH/1pn1+vexM1u8YrFVDKyv5rgCRldg6oq44Uhwni18gwCwIrFJxxX1ogqRfoca+VqvbfMJ3bR1o9KDuy0Gqe+0f+38ifjSN5V5oCbWIpNEZTNor+s51PRGeNuea1dWp8yHPXz2YUCR2rRZ763OKaHXA+6fCk0XteCtVbbmJihotxYjwlRpm33zET2fXrOcXDs/I7KNQK+G92sAaW0cmuI2gPVLPiCwYPvL+Ov+PUu2f1HzFn2hpZAlEruucTFQbdSDWU/AAhh70ipBdZZxNa5YOWOWHRKHXMjJxsgWChZBWIlFR+1P7A5UxNCenMKiXc5lnXDz4JGupcZMSe6129rfEzMaMdrY2zMcrxvnq7jH25q4apzMaMg9sBTquqXG8Dtc4Ybo0A7AGfdUCO49TVi7C/3NrKiAW9DTygUD61OgpL7CyFiHtK4+9r5S72idcH0GBxBduv2gM6NRX/fC8tAOLE5s77iu4cx+ro7PJZHa1Y5GZYG17cvShmfM2Oj22K1EUo4vNuW29QKPxQIlwxZyfJd48zsly8Unw7J2gMoVVbsDbeltdSkzAO/oj7/r+wJBXyGSMOYbZVuY0RQofeDMWt3ll5GXHnfDaHljlhkq0x5Gyn2Pw5snviZT7IVUrxFYdIiv5AuTNGgnI7r4j8x7k9QY7wwmAoFrJyuiO/ohWBThCev0V6Jz5O0CGzsRCJXXdq3/RLqxV6dmU/5XHQ/l40CM9M6Vqra8EyO63RceaYmTj2/d4qaCvBSBPTWpxhShjhHVqq0gruL1jFc9lHRV24ic0ig/PkX5Mo7s+LQkd6DzBTCNr2OBQC/gmuuQ9qBJvHzfP3F4YRRVVUFJlQdV8tiQxR/9WXWGkRRQ3kh22ijwXZrF7TBafaxoWsNgdbDtJxsecvlZ4TudT6YeFfDZOEORv2chidHZt2nPs/5nlGlY+0nVrBlBqWTZHSJYPUg0VXi8KSOvHa9EZS4HLWb/rPFJJW3jbErIjkAZP288R6co1I2wwm8zLvvyMZEbG43U2iSrKxvamj2UBID7C0An1TNj6ET+hhPEc9m/0djXSiC8qOMCDYOFDn4N57LzoPf4IMJsk1e0dTiz13RiOz7XZSKyXZ1Z0HgHonmIixVWSZnkKGZjJ11bL3Z0NjyhIhv0UfIJPA+ugl8mNdhLL54ODA8d5neR+7RwcQ6t5Q8rE6pmhGBGZzlWXgQVHAAsPO4irnZA1As0aFm9RW5EUNoIi7PVjabhePK/Mh+2seWUrj3yIut6i0dBOzb5Jnc2mKOAp+0IFkh964DlO1r0dnaFsTYjr97GSPU2KZ7FOAYb4uuRH19bmmLdeq8sC314i4DBQ8ZZ9ERE3KN1isrGvo8ky9oEdaKm6mc7WdiqfL8t5KSBSgSKSPfekU1w4g49UkAW11Qm/oy2ytbcMRJhzHoOTlXcgbFVnWVEwJNy8cno4+tFeL3feL0Iv95v3Yv4YqBfjJ8fHoFcIlyfC5c7NrzB5jh6RgnqbDtUolAWwOnzMWz+O36yy1mj11MtRSWA2HVkJwfpTTGeXjfMUQ3bCvSEu1WShBH9Y2A4cRsCm1BFXnaNy2FnnrOakkPdJZ7yGa1CYOOLjFBuD+Twdcnp0QqWKZAGhNKv0m+witvyWylwz1TUsdFUoIap8r8X/G0DXiXSVO5rm4qNjHaMSSp1RqexpWDAkAhqQ+/A1bp+4ctizQx1Vj/XNQ99XfM2g7HVQPbIyp5ZsFeLQzftZb3qd1yvELycs3YEuJOn9OMfTga3A5pk5LruRcQvupwF8LjNx8pXLB5mCDuHVtTWqs++/sEGekaVF6F8MUzfjMzaQuAdrsqZXXexx9U73zDB0GG2os5mcJ6SM2t07C5FtbQvdVv7y9xRwjqM3gvZuBuSHqpG19qDwfTjECv8RqPHFCj0hcr/zQq+3vzzrqVTHnnOqCgAgNpTDdpVBK6MnOI9jXzCbzlv45vT5FFMmFB4NwubfircgJYTEuOo63YCAtqr6bfTf/16j++nYzkvQEfrDf2ng3ltR9CdD7IUEpore8MwS+TsybEbI4TXziRjBbpksBS2qBd7Mr0bZ+zgTLH7YRpfBF/mc+PkOuYZOUsJkDOQPuDApgteCOJy2uIDi6fQNUR7g3PIwgPSB+lX/BSuo8dawaIJaq002k5EY3lS3E+dB0sXW9S7MPopYscolTLx0ZQxZnO8nDPrq+aVr7Up/RQv0zbJP9fCbyXfWHeV4ZlTTn69HnC6q63xloi7RCzkftfODOrARTy+tHRBdaF8VOTVxh7zNvnbhgD0DtnOuHhuL7jWzQW99/G+j4u3+tw+wNObdYe/Au/FzzB76lkZXfh4/8vqB8c1SGlnUbc26YEFTlUiDlZea3iy2Cao3K+0HhxaB4x1olypYx/hltZddYdjKn/SCQvVr5xZZ3adHclR2cbxlovcnkbuNEMUnMBcaIgeGA7wpiOxXlJD5Iu7/hRRWWeSxvu0TzeaLXbF4+BUDfsxiEWs6VqGdRHERmXdsAWaBPhx/HYILLFc7zkBst1h1XFVVNZBr8xEsEEL/AS0oXeEoVZ1W6bKXPr9LQhERbPoQS7P4lTa06ptm3iXUdQpbJjfM+uJaF9RQm7lu4NCtrzR8UQAvQitNbTXC+/3a+yLU8WzKjditAYwNxDJYQ+a2oENsfwI7ZxaAZ1OqR8HOScblbSk3AfzrQYMdINjtw0+Ga7anCNzRm7HOmgDQJeO2c5+Q5u8QFWYe16yGkwQnIwRDYjqUtkuYKMS5MqEKg6JTBX7SLAXhCpkwwN5B6DppRSWzLCclyR7q5CCQTBLOFY5J751/GJ6qzMLkVaL1ElpBMRdCMvAlzLky6zDJra0x8GSCgxQCzEjHhdmEeYHRPpoqIHRWxvOLAh4Afgw+MV67dCHxy0GMiFutK5PG3fGDof2moe8rj7uoL2ueQUXr322+rcvh9YdeBO9ksYza8jxohbG7E9Zw1oU3CVH9Adj/FVauiJ9MrngZ8Ky2yqvheqQB566haqyIHeFXlrRTkrHv0i+plFb+wJAqY+cf2AMl90uQEVVfTfqaJClYp+wfLvIbfmCUTqzkDp+klBYBl9vPhJTgU8CAH8ll2E5NaAFEUq4AQeXzGViRYHlL9iJQRqkffMPUPyTFMU1t5Wt5R+05uF85a8Ee/ZVPbZbC3zkYCmNjfP6DW6rCXjCFYoSgEZxjCGvQLPDeTgiJEZNl5/h8tffDFv3q9BgTLvfLJkFwrgNoDOua/zjfk3jM2uwgqtMR/F2ClToQvk1k1MqHA1K/EUrD2K4B02Gbqq0W0A97nV1jRulKrou+EkOAbMpvs0+5z3ME8M29hoGj884cIaOuUGFt6Kty3DJpxT7Gj54B55cL3fkgcWAJdK4u7VwECmYCBct9LwalO5CdMFUAHv81kW7oZyF54goqDrLVnBxjIIEa3gS/YQkFXokMBOAOZOERmUN3vJso/lJpjphXh47y88FVJ69meB7BwiMCx26raQ1dO4jGs8j2nURKR8Lx/Dc78qY2wvQxzaEbq7gMlsK5NYQ2dYQucc9p29wFAZK9dneeLlDk3EGWjqxpZIPvHMofgvPg5XBjKCjfo76Ticku+YE7Rm4YeYakyWu6rA5OIm0RhsUTosvXhCsjNgi+K5ec1AoF8H56LuBF4ub5X/17Yv2lqKSAt7obe9FL8N/QXfXyHvcd9HXRIZdR30p7xX7XDLdjHQunVkYUlkgW3O+FGOyX2LjUj+CRQ3jZJ+JfP9XUFti7f0cla3oFX6vYBMB0l6PtXertVHANsk1SdaRpek/iuAU9vH/JMkg1uRzJe0ASy2riK3xVJiFmKg2IVdOGiG5maB3yN13BOD6dPx8xoENnpEVucx8lNnhT+vPuYv/p4nKp523dNTIqLVofDUU3rjarM3lW9YVPZ4Cz4BGLGX5p3QM5TPKfY17ud1gR3RaHSm/MZ6Knw4nVHo3qVSji6TTKz/Knat9h54qeHlRVEgWr1C+Wk4smWl/vg/is2mkkLffTb9Vfx3g25PPA+a5rA+SGx8GX108bitAa8A1Dma9WkO/CL33wYYNePHcXjBhj320g2vHFoM+vwgmtxmsv+C1DUG8WakLTpyfuxAdqduxofLtkgcUzlQAauRnPEdj+wfpTleG/HhZhsWg1AUh0+6P3pGOTHmvYx7gWzTP8eWDuuToG2S4BOdXtU5XWo3hpOW1MZKTpM4KGHJXZdw6z8ADZ1ZbrBRn7vvqDfROWkHTITBgHelreDmt+NGqI96BOPf3sSUyzRVj41G0yJxhuhRo96VDUa/ERNi/k+748Mv6N2l8EEEvgIOM07Cr/6ST5QyqmBTW513kNSrZlDSatvbXvV4N3LtehWJhu2GqPIUp6K2Rcli/xnJhaxifdZ1lPr2PT01efRqftX9oCa/vh1cUFLkYO4ZUO3Ia31JG1x5Pv+wT5KsihQFqo4PqeGnY2AjTJkKrUd6JhNy7Ovy3QZfWAOA1o0u6iAq6RsCsG4RpBe2Hsbd9EcW07uYaUUSWMV80rqKto3vz+qUyd/GUq1/QvxFNZ2QqNSLMo50pMTAvC5dnToG2db2+IhpkKyQyP8pygQH0k82zM3GfqV2aDs6M0flFItOUgR/13aPVBzJ/Im6hGNOMtGY90EhoScM2MZhlT+uMDIkDKxMo0ZNjp0EHuIHmFgCC3FJAoD6CEG0ypPSJRdx5flgB8kUv6DYCSGRWHVjjxNr+A2DmWnVaNXJQn6Nsdbl23K8s/Tc3QRzhUv55HNbvDahvnheLm+pexy+nZhULyMVH49AekeA9OawDlRyHUH/vbBWekxTT4umFL7fBsLrF4NS2c2b9slFWDaZfxy9W7mBUuETbSJRI4w3tGndO+UGrFzdTZNdlwqMwjkyGlgEhcxbHTgz2SBdoVmO98R/8ax+VrfSuLGjJCpREacXxSHhs8NUcqT8s9CLzfBw/D2docidyCfPznZb9cF6aOCYG/AGuQ2UZ+CQ2UfMWwheVE7A+EgKAex8RvmsoXWrGoSQhH6GZ9QGeG/nbjOp1BqiPQxv96uBO6E1BKGn6ZQzOsdd31sT2//ez74zGbkjppCgN4AV+h4gI7BzH0kmfT220Ow7GAK29Z0S2gbmPQ1O9j3cNMwpG6PNWCJ1waRQ+KG/bgeE5l6JD2p/aI5A9c36EyZVYghq138YwbJLTrbJXTJwptRszumfbEUdLcAh2mQjGiY9cUBlNh8gWX68s1k/PJ5U8TxzEL7LVKa5lFDxUtVshdyN2DbQWoeQMDJYzq+Q1FotpTuzmdVjUhn9HALqsKJBEgAcO1KUnc7czyx7YYYQ7+ro71jjQHWMs055sRSftKYgdLMlX0upBkqnVoswN/Y+CsHs56x1YNONlePVkt4wn6bk78Hp8JNJxK4Ef2qRQyIpqXIleYAqnJujoo4OTaE/hMTiv5rmU+tB2o7lnGGSGinPl0K91YMz0czpLnq8pO1AOKcs34aBZoeU9vMxzSyWbiHWyfwxVwpOeq12G+7pP6XDtmSRv+fjG8arTciYl3cOksvnvYBRQfb2TfN7V3aS3o1sxBke6pvKUy1V6auqC0oml+Tfd91bB8/tYrX/AYLzeL/Q+RIeaLTMPX8wZhzhEUeG3+VUsYKLTyfWZmObyoFccuz2VrPnwkYJqlhnf0M38JQqKKAfIZMEqLdEb4eT+wcgx5qldMj0ia2AL5bm6r3IOgt0CjUYjitXkYN0cJ+YGZuAzC7YO3UMYfaPVhGhN7SB0gI0TsHzNNZgldY1yQ9nP5SV4YwXYKKY6ZoqGUd6Oap5+VqfbFhoDTMXBO61o+FRMTKDZGm8yXdrBa/DLM4VSCLxjDZY0kCOKBk8ZrzVMxXJXxOEGJ0WGEJeXdMsJCTfnA0QCTnWFjBLPiGwHiDqo0yT58IRpRnXdsLGZEBlndfw17wmQ2/vEsPHcuzsiGbLdYQI/0YjC399JGxsWT1Ts62/GxRntU8PRGdiXdpJYTCgTXkn+Nu1aODSZdOfQ3iZ7fHORx5qQqA+8yVsVwjkrb4dVAs1JkkDDqPOio1zZIJtJcMtisO6p6FlrliRX8HHwvSeKRZyT4+Ex9c64P5y3imVbCORmbJR3kXXKmzqzrgP64L8WVvDvJiq722IQhjW/OEZ5K/rUBWOk3S3AKHhvu2IbW3hahOGGr8D3RtTLEm+XF5HYNKTlg4FN+dXLSUdySjjWofy6KC7lJJ/Me3FOxzaDeSdkg3JuEwslBoTlcAdGhBDAdXXlm5VpW+mGptNhOBLgfoiep2ClUnPRcwm1rQL9tsnvM3V81HFoALUG+fTv+/XWCO3Aa6jgxg1Xv7xSObBcLcfW+CxUo61bpvlkPO3LE/HsuHA9HGltKkMwQY/k0IpB1P9u8ZW0wVdZKcgd3fHHgZ/TQKWbJHdIwNHfVbjhMQdOGPxxhYTZiswC66ofzD0wPIPJrDaN5oExmRYRYA452AggK1112wD5lR15L0zKhg/yQdaiH6q0Tv09eYZnY1eu4ETwFF8YnB6rwt/Vmcb6mmaft1Lga+FUDu1XqMb7M3b4bIBKhLFwZn1kL9RPj8uZpQl3+7GEyXbtNe5KpmnH7Ze2rCHmKRuVz7XrrXPWBEMWJxmmnYfJOTLiLxDixLbGx8rZvrxX4zIgd7Dts03RUPyZv7AX0y8E4zEqTwTgzI+/C7f8IELSPwy/REWxFC0GI88wPAeWLCOWjYYBpEjDPPjrQI7s6yBdPhV0Xo2A1+xEa+osTZsx0vwC19jnNjaNf65ruStsyBhmFG0qsuyTi2BajS59PN2nuVNhXxhxKU9hjFyabRhBz32AmcBW7ccacYzymGIqP7ln89UI7fUavkGY8eu+ZzJkvJU72RNcCKrtkNghoDggOcus4dK33lDsEfKjCFWcKfAgS1ST/hL1Ho4r+7YD+qw4+BsgdyRis498byDNax7RxcHiUfmrR7PtvyNRUO6lGmVbUapuHIltHxaeSt9JsBRFNLpCUWDSuRQwHMw2l3PEZSG7BCtbigjjCq+L0Np+XzVz1+U+prlFBjQjWphOrjD9XA1i6fr8MfZRq7uQ0t0Ya4GNMaOcT2b8yjnCjXparPPQgB62JLlit876vuYzmxrwjehHh/Zh92KrqhdM/Z0lUPjWmRVc1Fm0luPc0bxiF7cdGNgYeuT1WqaQMFYNuK/d+zz36cwHrwtF1xlU0v5N28+I4XbvpMfd3mJARg+Iak/VLQ6goKvXWRPVZ4+istFxmj3fRmXjzQdb9AzD8BZe7GA+gxD0suj7DV+uZsm3nzGd8IqxNedXysh51d8be5Uc2VL0nV6LJah4nB0UB9YIZ70c6vfKWl1Qu1fV4/ghhytA62Q7vV+jBNE82D4IKbZgXD0+FUJnXP1a8AsCAzI4jIupLpikkULeE00XmcxJlktWbdX4xMJT8IORj/SWS92j3njWg1xKdKIosYWQ/zgG8TjNfc0riHrHWOZQWTgJrW0tPMe9u4S1Es+WNEsJp77ozyXIItuYkYrYNY1cABvfLyiA+V+v+n2vnJJWq7CfJDndNwZ9QTKVXDBOv1wGnJlADMnEducbBQDhjpG5Od3ojJ28u3wvE2tyBrixhH/NtlyJnvR9RWYH6yzDwZjbr5l1z6wekhol8KkAACAASURBVIChpezPs0Zgyp0wHs/Ikx7O7Hb0eQFk25HIpyuPhRa2k3Y8tbptx9PEaIkdkVyblbwf68X01RLRkpCjQxv9gmoLTRTtoqVU0MGeiqQE9KxPaYHGqbjc/uIlj6Z3NCz+vH1M+iduXZrv5HoyovGZ9iUUQO/X+MusByBFdgikh3LFmRIVyrb9iPdu6fDgzK7E2wBI3kpGohRSfcHzZG7SMnqJj7wzsnzHG+w54MybKEskZ/KY7v2HTPpn3kBuR/pVO7PfgHqH55uGb0o1UcpUFq2RXYrVknC5B3fYFW3RQIXMBwxebbq4L4BoCeDYQzsqXR8Go6NRU+dWMBHUdU8pfFcs/nV6wkBR49aPJwirtUOlgleduNA85d9Wrsjc/kS5UCBp+PHfaimHANE0sgdXphfjk53XvKt3Cs5sW4RyZ17zHuWqbfkGl8GesL6JEB0pFx2dkX9rdXRZjTVQqS3rHaWx85MuhHlYaDk1UTeJc8bTXhKbub6NliYvWl6bmbjzYqLkLVrkEa1Ot1dp7ctmi0/lQBgD5jl2ErAax0KHiL7YBIgNvIHH2hvrEVqOOBGD0ZraMblMQ6nUsW6lIPkLrGhUtMm632zti1VojHUbhRpNM36T57bzlEa6h1brRB6O5I/6OY9ATrR5MLJx5JGjzf1dSybtFklJGpyjw6Tsxi3wOUmXmhcKcx0X3WGv2tf6bSIaDg/yTYUonPNXbpzZo0NCk+eYh66cDCOraUTA6z3Csq0N6l/XnId+rnlQd2yw6X3c7OPiMC5yKi7D0gVBCatN8ujaDhhJVic8DGpQJdmCkC9wU1/PDjiyrme9ACbKRIQTsp2urpjxOL4R3uKrivZVGmVF8+d7ZaUMiMA90j93qI7KeqQqZ9aIT/yR2nivSj6DU+GthbAkMHaRbvTSjdJ0yBe1VbA2qY0y1MYeTGpjBkmgaZGGR9BaB9pwYqnNJbTGoAsgei0FqOYMZqwk9/cV8G16QvZ/FPZw/ttrbsifBlo+v7v4P2nwTZoqnNfVJvqddwyjz73jM7+gAkynoPd5Ofy8PF6PhQfB1Su2TqjscDVRaIZcg1iDsmFbBUlePAjzFNB0qh7hMR2oxsZJ2nVjL8iqWz3UYAuW4qjbWYUZZmkQGB4UZWcnVzfKNDq+MQLhZDzSZnfBeRiHDf5nZ4oqK+51V5GG7p06h9deVmUDQy/5YlJGmzxAGCfL2bpbF2qT5sjTedE9djF9+yCVj29qF8A/nQDe4PVPqFTX/JLL8WI2dBMB3qMTcm7wFnmss4PTNitUK7fbUS18Gr3hxG6FQTzgVTiz1UFVm03A6/VCI+D9r18AxsHo1/UaX6hrhH4xuI1PLx+XvM15sexzrDYrf3K9KR5vbYGkfVv6yjhi92bmWCICrPVQCXhLndB+LBB14gP87oGu3Ip/voZf2YQn5dfvtzVd8t4bK9uRB9rIKrwKKV1WY1XqyXawGAjS57pD4We8+Wt4YnNLQTNLI6s88biIv7WxJEitAZ3RXgx0RhdF4AN4yExxP4B1CUvXWSIVPLUznuPIPGcnqyUaiIA3Ef71rzcAQicGd8bn54MOBr0YfNnadvZb8YcRwhkVl+Xj4XgxPhfwmvurRslBaLmOaEmK0WbOCcKYrafmI89GoaRVhrAUrq0hijztu5rPkUXFd5MJ0ap64wjS/D8ng2R8u7DkN41OyLd+kZNeWs6hvg8OyiJrjaddanN0q3sEb7zZyP+J17UB+4HIrV7aYGr64wnipr+NdHJEpsx4lr2oyndsfg+QvPbVp8VYBWia5yJP/3ieAgE8tz/bOUB2yiLeiv1q3fGUJ7q7MQhw+2F1zGIS3b0zwpTb8fV3lTYeywNllrAsfIS9Qytt7nn5mJPUs+Fvg3/tFtTOTBkJS1xmINamwU1gHQzNN+04mAPubiher4b3q+H1fs3PMDM+n45Pu3BdF/7+989qH1NWDCqqyypVUG37qXTFHDMJbC0Ziif0ydfXNourulxjdjK+sz8M/wuZtpWWKkz/6v45arq6FXln2gTJL2GaK8Z24B3eZm9t4jFjEV3ngTyABnGrs/RrbmEfMkoyoxrItx6G8FpwpThVf5QqQZu/KeSk8eVyzE/JwrH+r1XpqleLyrpc0hmNCJfFX5dj2dUpTr89xXTzNF7E2w3z7/9sehHh/euN9//8C+/36Pbff33Ac6l/RBwLwU0pM9s4DEBzQgGAeXy0ghgfFZI5Vo3HloJu9gfaFHRL5H7ZplDhtdH3XikEPl1OKCsUu71A/RLnFNDyEhj3UTKBPKuVdgUAqIFtY20VKyVPUSDjW0y8zRAlW+yg+Dcc+7ntTUhs7+O072N5e3lXptravUSG+HA+xXquLKUds8JoOliCR1VyKPiGdV2Po6X9xBQbujn+JbC5NHzV3cuXxWsf0aE5voaC5AYO9tPIDl8tH6LqcdgmQ1U7WxyOZnzOKQjeTsU+3Eu7C7yWkwGpwDX8HZfzzkZW+iQa6BtEK2e2TjWP7xweCuX3gUEy/wVkC5BqwdbwerWxX5aB1sZWg3//b0d7tbXvu2M5T4YWyamGlddAv0mHpdvDqhEMPAD3H0qoaDr1SdjaYAV/2YsMy+NfwbcA2Y/NcYxvGWBfzT1aZ5Z0pfU5sIPFTzz0Dc6Fcn7C7zO910vAW2IEa8U5P9WV/J1gzz82KutCWvbZwHOWszBq0iLLroGBg2AC8grW9shJCIZi06/wVPiz7+9hc8NNMjTagTBIy6xHZp4DZTa5teJ9qO4BmstD74b3v1749Zp0p/FRCB2GAuHdrNa3PwSIZK+odTBMvkpCX930DuKeD4jNPpt9MR216gDVumA+C7goqVh34UWrINhvVfAXB2O/p1UMx0FhyB5P6wxZukzwCsHQYyngTKCAYWw14BmzKgu6flm+Wco+wNuMGaElelv7PF4sY6B2yGHiI9FJlVnrdHCSqj2qYi/XwcnVhod0cHZGxMPNsmosLA0T8gVy4z/lrUC0aoxgc1SSVv+jdu5UwSJFZxOOKsxfpJ0cb1YMdsSLxcW8qEMbv2VLFLYx7ZtbFEwDHuwZXH9K/Vw4tNGZdfrWwZtnDCpRtA6TzTDRO6+ndmMtvyXAIM7ktCEY2w7e719Y11oOrdnVaeIgnzkSVxpFo7fcFVqlF+5ty9EBW9bVd1ad7vG78qvd0wb/5cBTGBcLMPdhF5W1qkojd9UyXtXtNLyRzgXficamyR9Jwa72M/vauhv8fIf23Uj9WQD8UfFdUoW3Ux67SuQf7RvJZqzObJUTnZs372UlkKewyH2MnavilAFUuKbyjF2Jr9K3JP2PprmRX5eBBu0+Px0/Px9cnwvj6qDfBr/sIRjdjRGcERAF6FNUNRtF54j6hLiGt2j9prGpGisquGzB+DdNoLzY8JCm5v0EOclbdsGU2MoE73pH69+GRKqbCTOi9puynXCLcvoUdkG7bZWVmYqQp95Xbca8KjspUZUVWu3vRvbQJgmM2PE/0Ld3TWfihcfwrJZkdXWrrk3RXO43Fd5jFjXK+0SOgBcxFdHoDR9sWz5wXaUjvkgpkA7CPPFRa7zdeFOkj5VlMjSpxn/qZgydLecXvA9ldI86fSPAYL9xdJJPzy62ZxXvZU/NujW7VVj9UUW4vlGJha5zfXsCo57/P0zfIjxs1xr2W8VwaPfURi571Bdft+9T4chaj89Yyy2daqcuyUlZ4gCXNmrBGis50GVhyoP4ReIkwXxtJ/bARgLt4CruhLXExjggffMvtFvW9f1c3QlwlLi/GeHYvO9Xx+fnwv/++2/8+39/8PdfH3w+17jFIQ41RXoG2qR8E1lw0QtepJVZMAHce3lv9eItyhYpliLzl6ajPpmGbgyVXTCgaEkQlfEXSgS0lHxyjnIvTl5DkzoR3uSPrKg87Ibp0OobD89+IlzHSEqx6U80DoQQ4KtkILzTmUJRzD4K7xMVNiCMD9HWh2C+mce3QHbyP9Z/x17a3sen5Mc/IgaN34D/y2T+6efnvR4zijc5F5v+0CnTFayIcZPvxLqGz0tYEkxyYAscrSyX/+D/HVPQk4c69w7tKlCCiLCnjjlLXUavRKyu6USEArzU9wpAy7rM4RT5TZI6s9DT6owRJOJ5N+KwpX3KnBk3rKsvyX9mc9OPCvEwVsle3iiOmGfIUFeP8I3ugW5YfNQk2f1fZRt1ZMLLGuVflin0BQG79jJiRZn1MvKCN4NOKSQYZ2c2jLc+BoRuh3S8eCdHiGC9DaTwfKGklgOzMpJ7uyVosJgekRKLISCjTYb8FLzGsuuCthCV/TljCXqWne8vWQbpZtY5W2RnwSmR5D4J7RJK/1Rs93na4dsZ3OYs+++P8im1eX2KXIElyQnQujorJcpEEvYih5AskczyNgTKBOJurmgB3N4++97AtC1H+s7FLpMrSyNkJj8zr3Gi2+0OhuKzqK60UWBbGDFZzWDav9VVZCmdW8nHGYIhtuw7G7VzEBEJshkVUlZ2tDVDB8lvoZwWywqOSuotJUn+B9wMF8v5Wjok08ef3F68VSVOPwx+O3awr6QYAbJR2t74MZEuKiRIEZH52lgOPuXXaW2ZreGva81mviyFGXu3anyj9Zbc62Pqt7VNvCtUQ1/mYzYjMmP0PmFsn6hIngzVut0ipgqjkhJEqb7TeRU/cXiISlCedSACIGPmOeSvm1hI7SZ3xl9//Y1Xa3i9XiACrotxfT5O/zUQOgYf+zNYq4/2lhLfFbOfJ7krZtuRqaTbFdh2lXTLmsISvcL5UBukjo5Bvn5wiGk1Tv5KSYeTS9PQWVV4TMZWVfimsrYdk0Nh20Ipzk/l558uF8reViP/idrp222S5YgdcE/kWD1bR8kAyk1cyiBzZ2JZ3/615ngVFnnq1zhQMezV/FpPXyfje1+KS5e82TBaauNJIvNniqozylkwKggbdfYlLttmxysjT136LLcJcBxANl2j0Kc5bMao6eEkLdI9p+ie6YCs6OLoZFhwwjrO4SmEFEuXd8RyBNMhiHIbbTWAunGaMhG/ElGS+3IJ1qF1sGbzy/bEPs1nnvS1V+YwyrWWHe5Vrv2xhlJ4AutqSUC3aS3EsQZm08DQNZGeWIR0Fnu9s4slDro7HceuHfMWnmlCdSfjjqEMOmSB3SftovBTRIzMf8MtAwZ55gaijkSr2R8K/SkhV8uodk9kucxo+Kpk/5qfGJaeWMy8rfE03Rg4tuXs32eHWpJDG0fGOLSlrYydiwBh9eFvIITc7d2eWS0pFUSQycMr9aWY+2hmiNTBZR5OLNE88PW+8ALh08ct7J+fGQDBZv/wqc9qJoPOd+hW1tKAUcU1bhbRfbjzH3f241TiV2iQSJf4cuLXnJPN6nMs/I1Si05lUPXljQGxfELMjv9e6sp7a40caftiiawqs/JGBLjDY2sCzuzfuUlSULn+JqTlJTjRDt14q3Kx376UnriZf8E0BcBkCB9rqzNTGot+rGP1v/ohzPj88KS1LHEMp7Z3e6KXwdd0aJXRrACu38mvO/Xpttyfpl0DcXCiETzU4uVMpbrO4G8wIkyGtQ3ZOvGO0ZBfjPUTci+ZGL+2B4rvYEknYqXEf97AoHxTJ3VmpWw0MKl6NmG+zDeuQQTO6dFGInnKDq5cnrR8cBeccTgMQuEQ1YHGp0qlHgmKZbbD86Cd2yJkvbmRJNKsRI1I/YmLR2sgKlLrZ3bvFHZ8pln/yfgZeu+M6q76jT7JDReG91h9f4izbGE2sXwnmjqRTQFgR++7oUwO8hOEbpxZB6+Urd9NC9i4qrKBO+OnXyACGjF676Cr4f0iXNe4Axw8rlBEl0NfWOchNn1zUVkqeEOcMvcqOPLiHyqsgl/Ca/+q9CS3lWrOXRrHBhpuJzHWqbMvnR7dOHiP0kMd89uqaEMNx77fY31XpenRBBqtOYUvETJRkEAg8Hpel+XMF7HR5AhbxigETV43wtpKUBcdArIGVlcox40gQ7B6H1dI9T6WPuTzpxiR2uvTdTIxgrB9zQpKJ36Dd+zT1lDcvQ9tCUgFTfs8/Wf3hD5UZmoQyMya1sgKfe/7QTNSx36r1J0msfkNkwcNr9iwUIVHUAANrnGf2OwxPaij7RvC2u9lcLJ1VH1V0cfCBjI17BFe9Ws9czxu4srn0SJfX/5EsZuH1vSQWLjgf15wMT5kxiubFO9V3olG8eA5ZQi15cn7QxWejoQiUM1YMrT5+topDdEKsm6/bChXVxiQ8sXBvUjGcdzoxzKXssqq9iIeU4BYObFl8Tkux+iW1Vu0dFTMf4QjbR9TUnza/PdMJ0aw2z20d+p909bpaGAunEY6IZr28ife3OFD5eMoNh/kUo1+ofO0p9f46MHnc6F/Pvj5+aBfHf0jziyjo8+I4t0kvRU/7RhLJzMM8WHk3IPsSSXCWD2SDyMttht1zNcrvU2vNaxDxeE+GxI4ug3Y4nvq/zmRKtb5V3HVga8QWw0V9La2a3uWgmI++WZSc0lifNZdCvbiaf03AznyNWl1CjYUP+NkYXqTtH67cmfC+XdpirLABMs8+sN4UZvRVol6EWSvzaD1ukBfvsLT+3B+x62O4mUw7M8JfsOIlTIwAiGGLRW/MVpmWa4kQmqrKvCnKXAE5Xd2Nh0HXO70m2JgZqXkyqXPG5PJA5C3nxTYJVTni8jUc5roZ/6b5Pa8DkDKls5wTz7jUcdd62OQJZDynQQY1u4aWldslfo042ln+rtxOMp0ghW6z4WunN1moukDyuiG9orxqPdTx0o1zhaXO4OT5YL12yZO6qLB1xndvfYlsPmwRDEZYtT5JPso95DvX1UUkr4UMyUsI1FfmSd5gmIF2/OU+8HwbZaqreBfR549fjkFukbQd7TV6ue2hI22e2ghsmrgVMGczRLy4+0GYQl7Mxr/gTRaYvOZZZoKsOu7DvQGauN+Uu4Mag38GRBiNHZ0JShwWpQYKtfKodHh8a/CHB8/6p2X72H0tvs0riz308RL24dbSjfIwtLYqv2ltvz4pPEls2/W4r6pd0yWBvJC6z21+zf689jwn5R52slnZZuWM3UqF6MCTfHBnVQgOGfVFo4ckJwWBMQL50VhGJM9eaNRA6OPWSPzvDaKxydPeURiex/bCLgz0KGHma6rw34BbOzvWf3h1C8y/wxuu5kJIRDvQbodx9Os/osZf1EzI1L1KyphkS4N32FrbHOjG/rCvwswEquF5zWZKZrk8yljqvClUIJCpnlWB1NIENuLfBw7sDpRonBvgn3lWr6LGKCzAzWFCCOQ2WWYU72lEh5zYUBZ6G/rZ7+DUPV1B3ypI6oJuJ3++zYoFSePe6BFfRPLCeUCmL7e8KYtdAhjRFxitDxXtQO8kRmnz39D70Q5+qriofyWPZZuP9aRV1H9J/2aGDfrrjSOC9ZtIqyonMHB68IoiAEP6zw52IFIM18nM1J+6it1TGlsHegd4N5HRLYDYML16Wht1689v5E2RFjXaZ3pOuw+0F7jE+sgicD6r3oSZjRSNvqTvPM0XNdUSf+bI8++N/F91mC1HkgEKOGkyHz0pVpEMtBthyVtDlZos57P8+RfsuIA+XFOgGOGtifXUpn+yAq9rtSPf29/olmSxDFrE7mlx60HXAvwbdlDshMSAsYp+9QbQA5DqC8xreuSzTHzYwYu7uNLJehuS9XNpP2M92/o9FHpblYz06PgUSzwzSysgGUiPrdLofn7sTn/uIQZlS4SeZJPUlTRH4UjtP8IgVTYATRFtBhlMgQD6j83i7qNChUpmvLIMelWafz2uO8bp5RrOeIP+Mzoyu0XlJ7COTFHWYHO9D7J5yFCe2pybKEoB7eGpc3ctLfJ3jlPd6sU5PKKNvXTv7syB350Vb6gIyFPmndDlMCSMNketn2ccE2sb4LbGEH72VABwKa9O3aMqiEou9jN9IlWq8IYAY8jIEj0lWWbjJa3BnXcBMQd46M3DDmnjeuKXxExjk24MmU0v5AVs1AdABL89AteE72rd/z69cLPzwUZGXeT0dTPRGLe3XcSXVyBsE61MvGssHCoTQnhGF21B9v/QKUd6z8Um/zRhW/1yE4vkc83YuFrFJ8Adg0ZeJGmBlBrundk/cOcwTgnkcy8j8I/xYl0+1FJj6MftQMa08hnTF4gWjzRaERa+5Qi84/jP2IAfT1jnUJl8HBmyTi66fjmA3Qp/D17Nsf+LsL71/ZfROce+pnWI7fexUW+0BatlA56+xwXLYAy4KK1fNMjaxgXYxuhC2UswjDlPYD1tyE13m5GIUZTEsqJXgb/IorkrpMq25v/jf0uG98BmDhzLL6U+zAetlI2ZXXPDznuNYGLSLqnU27Tol323g19YOzyakZbpubqCnTdTxnbMTYUi7tLfYv8+SOpGxvRKFBMWNyoqXrMCgAuclj0c4tBhccTXSmgAv2e6Gh5kEjdnR3a6LHEkQpG6D//WUfS8Yho25t/wbGtpsCnyKwXpdDfDGj+sZ22sEkdewDuCktBTvWY25fp0YtjIY9xn71WNlHWpXtHqesznFlSXhj/a9TQ5qckqBGayNL826QsjXwywWACzB28BZ3qV1N1zPb1F8xv8z8y74wAxFs0UhtRqWm0lMx4GXnc2QeNdJpoqImKapR0lhvlW4qQeuGNz5aMlu8qzeLHfHej5fv1fkH26+leUR5L71q5qKjJEfBBRClSMs1M2BPZDmYBTVokwsJ52+ZMjfM9oBYdBrgzLoxlCr6efo/4VuMj9X9Lr1MEo35zmpidy1H51tZ3gQsuSouwxIiGCV3Eyf9tgxutQECIzo3f4/14tJ+vSLAxo6+p2+sFOUQMc2yGa+2DzHAlmpCWcic9aANbP7lbEUHwEkXVeU3070RQuiWCk+BuqnDUNfZBL64bY9SBdICgYIAzqlnrErx/Obb+ABTLFC2Mz2rC6XNK5ZYzDorUiIbgFIko6imDFvnxcU7SRK0qVqovQ0jCoueu1CrwjNnm9XZVQ5vNbZZ9iEg9uuYl898KJATEH6WwymLAb8Q+RJps/r7Ns9QUmTIBP0TCHMwS+NI154DqKTJLq7ziU+gwXpDXTTSn8ZyaIEUlCdKUFHNZwvPsJ8UMhMis4EJLBUrgTcZ3bnV4v1+4Pn2Vn0DVhrQ+bIXqX9ZPLS9LsJ5Vx5pbnqw9VIoSmUOBlZ6oX+di9myJvWHJDLyiYjGVMrO8Xtph9UdMlc9h2pAi5bDfdcgQasLwIvCQILBjsN6937/eeL1Gh6+L8flcwHWNgaCWpaTCv8osx9C2HsqrYaBNn4rGCcosncPX27WZol4Xv2FpcqK5EsbWSRqnMj3aG0N00OOrfzHjZuA374Wpz3Uqpgy/nGI/4+P0migVXtHwvKS2MZ6SpcO8EawWFb1RajAGrkLWCNtelRQKW947YS0gaPjBWnnTf81i4yzU42lHZbfNQBxIj2qwymRrzr1hAWJus8p84CxUAIwhAANM2XF3dY2SH3bhxH+UnqILMD4aoMhsuHl3GNEoxyDLHstadjKuFV9JtvD1xiJQ+BtRUnGhha8x+g+RVFQSW6MYIoUmTGj6eEreozriYlvJlfEHDm0oa9RNaZoiaEuU012ftoqVvIhipEm6HzTIRdGWbTUdGiqKe2c29LWbIa2cWXcqkgKeeYzs/aC65K+v7AcVoibzCs46Zar3idTJ9Fp1aRoC9Loi5nF/7Os9Dn8RMA+irS71i9DbnA4LT4h4SmJO9CQCuHvZK8ffEGaRPeS7D8BMZW9wWP6ouPEy7lRMFtxAzI6GZ8JyaHWc1rhnB1Pwmm/CYbXFNq5ifsa4j91BJutvWQZQhezpZWlpqr1//Rpf5ACA9pknnpgxlt3NwB5TodFSHT/UKVc7VIGtFf6dHvVObGibjRNlSxkcHFOThVEi+ej1n6bvwJ6UTTUih5OzNw2fdpiWeMy/0XXbInsGl15GV2FjHuGcjqe2do9ELhP2EZ9OJvs9s7PuIVX8uwxvtNRfJu85FG0H8VoVH8I3yll0JJ14SEAvA5YckfRwgva0THASbd6tTtjJEh2yK53lcXnUnr6q4UXVmvpHdk0iTErI1jjhxPmVVrmTnzr/myiO33Yf8H2CvgOvHsAjjGky+PN7Yh/gc8o/4AIAeS+kL7hWc9QrGX/zx6yOK2tHlT1lPu95PSFfSl5+oAGT7ISJxn7Zf/3rFz6fj2qOcfiMp0PKoD4OhANzZVpvOwIABrfxyUuZyBHR+LiSdLhiw62CnAUnc57tZqRFlR3b2HCcFOvh+W5v/QmnbUM3sESMRPcc+GmbAus0vQ9S9zvENilt61GZXj8OSAeNUO2DoKLr9n43j9CyIcDW2PN0CuR/CdfppbqttCX+pto/7JzqbQi7f7R+y38XOrl85C/9LfuE5j4W2RNddykarO1jnaKFvOPpOH63xt2/p1guFL13jEJpZ/et4a/6Q4Gt1p25qZ05OG7PbBBGsvlT88c9tBH20kfFeKa9SvfJdGW+GJvP9LqhYhKk9ZLfZZfXcg8Io79ysUXajV0MXjvQIvcl66cbszjeWCXPa+Ozu1bb1Y988DCd6qizZ/6q4l/4wJWIytG0Qb5URMO/8OVOe9frTpDB3+Ju9dqu7h3syNZnogtvLb3oNegjFFySe2ifYVzumXXPQUZDvxJ6VJer+hAlZavzBYTK/OShRkWhuoWczD2uWnXqEO1DIcuOFDlfryQsx2XVozauAWsvwnVd+J9//QK1F1preL0Jr19vvN5vvN9vvH+9xt/3C6/XC+3V0F4N9BpwGrVR7zXKdXFSb4bWM4LQfkOzG35OY1mNh9WhSe/PZ1FnIdJDdjMwiuobHaS5ji+pyJDkv26WRtjenLA96JH5+I05+wBhfDQAHJaUilm+PByVcPmQn2MUJgnKspz7IfYw2QlIqGWXWKYzG0bhnOzA3M2eHyQ3g38wK3oQA/RwG+HVZI+m+bpPX3udVoKPfAAAIABJREFUcst7XO50/j7YIpwbMUQ9I0u3GIR6VhgdYqteIa8F0qPxNFGziDn+2MgD2TEcyiTOjXneISjREQIWcryaSuLX4JbOn3DKKG8mj9XAHAlj0+qXr/wUn7pelTuGz8oYp0KWtqvtExbn9tUyss2XgUgSBZGZfToRNjFsbiLhVr0WZb7rTwGQAP1MpqHaqbkjaq4A1QWVhgUuEFG9ayXs/ZO3qjcqGvHxp9gFhXxCoWSteZpdt4nsq9ytxIxClRIsuPsEZkNmC6HBLwvHgqlFt3qwcIzbCCygMk/hm4PaYVuFa3vm6yqVLWpx0kCctG0/hECqbzsTfv1/v8A/4zowfs02mcYyuxwQR8dUuADmlz9bx/v1a3z44efziEf0oyDORlT0M2wU7Ak6FoxiyE5pbUDc1NgeInnSwm8gFOuHFcPfisoaVN4/f39wUQc1Gl+7+gDce4pS+gPZNxaVgLWBIZaLljrUc88nJZ07M35X87iZ1skarFMxo6O6gXx5MQUTPLL6dboZ9CGTzznjiQ8yZsM0Zpdt3rPHHdeHcdGlSqXcB7296ujWtK1ienIuI+sXVXjqJlKm84ecFgCdCYZrpuIiTcS+pJe8vJOi6WGqC8OYvFlYAsPfeXJCJtvksX9sIHQyBxK78T+MAU6u1Y1YjsxMv1RE6it95vspNoMc07Hm7QJhqucMD+xeKe+Yqr1UHoKheaYArQKm8b1TRId8irMFQcjVyRomuFibti3gTda2Gtk/pvwg1jLyh7bY68bkBB/aVx4bgHL5qlsJF+zbLJ2iqv1A6S07m/4V4u01heGmnXqLtDH2xjdgIDtnpfiMakJZhMvmL4RSNTfovGA4NBjrqKnVlMU4JP8k2PCwqyI7rIa7xBfkUEFKy6zdVnPiJfrsYOkif83biHQLAAj0eqFNp60BwP+8gd7xejUNKIyvlGEeksEIAMwD760B7/f/4Ofvv9E/14DbeOyPnfqvxgfLVwv90sO/lj/kt92jbOHKK0PvtVc2F+cJdN3lbeDa8o517Nc8e2EWpT6rLmG7dS7p7ZgR4MwbTpUNZPsLNehnVrVGwbOGNd6fnwuEDrS1FN+7MNpC0pqM+0SJuPX+gRMEckR61PZpGfWmehEo/L30lER/kI5OipnxgQivF+HXrzf+9a83GPLBhw/637Iv6GRUTy4RYRv6P+Jn+3EDf5Z6Dt/+yNALW7d7eNRUxsy+jQqYXBlGOM8Wisuh9HUKN6PoHtVJfEiviuEjCe6eDRzmytCKB1sicIte7rOvYycKhYsz/z7nryNGJWl9+2Vr23r/YDpOTk50OORZ/kge8oy6lfXsj2pENjzqnLIdvvv8u7no3fwtce/dEFX2zaFVaYfgzNbFnuVrs+Eg17eprFZ5RuJYmjxdyRJPq0TQlL/vdHSO1O8igwrXmhVkoEwFO3ZLNrT32Fr3eo+tIcQAtblC2Rn8Ylyf0Wibn7JHA96vhn//+y+9EWkcdMIIyLPxUdjgKv2WB0UwO501vYo0AzyWFgIykHAjXlNPH2XvAaCqzLbonX03zuW37BtC2u9rHtWn6RnrDVbG5zjukcrWCwu7+O4BfvrLXCd0d5k+cHZiBR+Dq8rkyp0Zo1GZ2a3Tpw8G9lvlV+EYQQU98Cj8Pp3Y94vwfr3w69drLKcAesffgJcBHn0PxVGUtvG0dJwqyVp9S02amw9s6dVUqJD8w+jc1JzHVX50HtPkqUL41FqVitMS1gGipZgZ8DsZTNE8JPFcb42TU6wpio3CoY1GLDLETlOua7AsffO1YzuaVT0sXCH39UAvo5tLzkL/IvCgBE68PyMcXj4aJDqvkw4xqDJTaQ8VumfGjW4VeTM8ZPBbHcnt7Oc54qRY2CHPsoRxGOrT+WT+roxF3sOY6Ot7pyfmZ2e14KAwvj6QemgzvtrZbx+WSjil9YBK37gKFl7VR6A8yKVO1NA/jkd4N3aLD5Z28Q6Dlb3oVW1Rt85EpJOF4diO54GgSj4WfW0l3edJ0s2F99gvO+6Vfb1eYOb50SOAe5/1O3p7o1+MxuM60r///fcSizYjhVNRj3usGzQqWjCEV7tWZg9RWVtWuxnkkMd/7NYL164USXp/8EP+RO5sLkyMRvVoURkrKru7wSDQoozKYn4W0nYzRGV3txdMmONT7sBbCDLGhvS3VKzS3nRLg5UrcbYRW4hyyOQ36kJqBvsQctNbu6x9p06fovBbnQ8g8BgMaURWPg84tgAxfn4uXB+5M5gR9Z+0cUuBLSInY+AN5tZHpFAn0I9ZeDNiud7FCEs04voYx8ZeLeRwy4Po7o7NkEOX8nvZx1rRoYzeFEn0py7EiNID+32ytkZxo0F1xYl2mTD2kblbt2uJYNvTiRiToZ3BL1RcRs3ySNUSmR8Mp972pCr4MhUOrVUOhtgTWcJkmM4GsM6IU2rP1tjql+R5OWvvETV0GSTkiNpNZNKM0QkdR8Ib/ayrMOzKRXmt0HBO0x6j/RsbqdysHtXayimEU8Eb+2Acl0B369L4ZGUQ6/ch2zsgm25sE911wiPshHv8cVP15MiJY7Lylq9GvryA7MY5mhnO51pr0ZOgTfvhpXA4bHKGnQh40QtEDa8Xlpp/N1Wgw9EFPp8Lf//19/AfG6FxQ786WPZMEINePHwtGGfSqNd/wOzvU2Socs/rqfqg4XHvthvrXbkn8nmDlOWt30k8t42w/nt2WUip/z3cOuMJosJxupfupqqWrQrlewESnjLTudHhf8SQ0fakfyKBq6DD43HjohqHhDJ3/Hwu/PXvv/Hv//0Lf//1wc9Px9XXF83KJrZGrqBiRdi7KrIcjdH1dAa48L2skFbNFfqwxI+waa9iDmdIKGXvsYjAAgIJQcMCqJ2MWuaWBTqNn+bJKWSOSr/y2Y1cOaOyQyhUV6tUMED0rmx5l7/cnZjI/phfw3mWKLZW5qcUlinIRZHs+O60jQcf/dO6NG0LZIewgBDacWroNxRa+sCFb2r/MtII0UYcaHVXJibrZDsGJ4TrC3LZcuj2tN0Oj7UpzpaNg0fyFSm9VYPsv/llMSd/dbuOPCjGJ9gXzT6VNz/WY+B1A8hlsc028psKOeielgqDUmbNv+TrmipxR/j4Whf01h79oinaPBTd8H69gMkmr1ebtxYQ0Aj0amuYUv+jPqtw9ZlkbnaoUxzo+DiQGff9Y9mx+AXCHQIR78gXYieS/EpB8TdaqB+biRn2PUVwhl+az6gSjR68qQHoBJaLajWMe+NHJ+JX3BSyK2/jPpSyaf++wqlE9QWkh5OZfzjd9+NbvJgBXAx+jfvu+JLl+2vw++ak7R+nE9MkHvYM8O3wf49OZLiQns7gyoBd1XHy748dvJW2utSzantoJwWhzr1VQvy4PefM2jbT8wLo5hNsyzzsKhEebQFyuHB+tcvf1S+Lyvh3fSpPJpf1xstym892GWMH8DZmegARaclFmUPVmPn91QAboM9luN5ugD0NrdPl1OSGX2w/2cIN5e/Y6U/TxNdFQC1es8BgH1KGLFd8bXl9pCWgXJjfoC9KNlVSkCerdcISnXahOkEEaTuWq2F1WBJ128exhxZ93GrwehH4amivAb+ho6Ojza0E69P2AnpuxwjbJQYuJYEdJvqkdNvx5ybLEWCnk2p4+oGDKpkx/0ODc4vHn4BuIMwT0UaAIZ+BQ81DwPyyk8FCi5u7IMn8g9FjUZnvjHxgzvGOSic2XIPm62AwKoPG/bI2/FUVrpAgG/UiJAvzH/DEkrt5t0E2fOa093Hy8ponMPvF89otzvoWleMBPz6FESY3I+Awnk+IEhiAqMZjl0rH0oBLOiPwdWz+pq0qwPiwtsOy0c1F2ArSM/SuViT52pJzRLjAzkwseMER4G62fsIjzK7TOORp+zpIsUmjZAvPRaGvwo2BPhaBFvJL5Dzz5B6Ye2iBeu5AUtdqGLm/dzWhKxnyXfMtGgeBvenCehdg7HyJsmqRUTrrFcAdUJtF+R/Ff9KH+dzIfw9e74Nd70q84ytrfxheSROg69g7ADqWNz1mU/CAl9a3TtopMgvAXcuHAnxQJtaek3mreBb868A4nCzileK1LWT+pSrfFnNX9xHkYIk4nWleElZkCeN2n9frNe+Xbet+2TbvmG2LX/TfBCLRdgG9TRuaZYJEXo9dLmho+HMtBpx5O9LSjRfDXe96xnf3+o4Y/tcuKlv7KIS3/C4/wVi1FRTS9pO9EsGJWf4aw6KhTbvbcuY+zqIMH7mpRPFYgFD4k0/GqAw2ZMFPV9x8m0IAhc1Ltvep/W7ayMP2Zs0b8leQgLEHXFYC93BW+YrbdJJvI1tZN/rfXsdv299+KSdhID85yYQNcrgQhlGqclgiXbdVBCrE6dneDByc/kzSWmbTRU0Uyqc7fzNU1yrBdhwxirqLwXiIhZxwkR3K7eE+5F83CFh9cFU4yIOztM45dWUmaSodyxV9lX7VwFZ6RHR8+Ga7S6IjnGdUwLJ5Rq+IczTb2suIgbn1pNg3K+PqZ/dH+Iluwn5WsE1/teU4fEnnmwJJrwZ52KwSRJHXEk7pCOwCRiChHbbyuiIDk2jeIz6ROEdmZTw5s5XwmsnOYKTNcP+z+gn6kIiz+kGunQXZ3jE8cZV+TdrJ8HDncVikzfipwLL0a6Qn3kX3rm14fR6WXiTgGM0UQiZ7YegbryYN+et3xSC1LKaruMRB776dxFsVjJisrqs+J5sK7l5v8v+BNDZXmEMcjFr4AR3ze1SyNt6UeWKu6FCOzX9TxUJBSunJ3bc9KfLZYKSzZfsv4PHbqai822NihbwiFyM73zdNlani2/mezKsa3IFG4ZW7xYBCtyswD2TDs/Shw7v2inxKBY8YmN+izMeYpS/dVGwXnaFTSyS3RtIO3A12wenjSAKLpxgXMvkw+dB+6Rjo5wlpVdhFnhTEjtYVA0XYudyRT6toM9kfVU0KTztheSBsRVebRNitbFgrCNQ+YWhX/ku2ni16ctiS7Lal/6ooMcb+PbJ7Pq3ObIRzqCeM4XaiUtOUi3ylRovohnK74SvRlH7BGEkK+LqBS1Wd3nE6zsAO0cMIjxxAwx+pYck3nlNA0TXkaJ1/lnhUbcpPdR4DIRK8UJeweDzQdEVFpQFpZvy387husot2c962lY1Bt+Vf83IV5DC8EwkO44V0CEODhIm+q72YX/KCGz7b3914Y/GV1dVFGYeLqhUhgqEPhQonYN/kG/nRXn0RlW0d4uR4ydVxsy/sIxWz1rs+eMwPOWYjfCj5VRMu3TiuN4CftfvtbOM/Mzv5b0hfbhBQPjYAigKU3x2q7FTqqnvAMGbH52ezuccVbsHFoE/RQsbgiVLJRn734nTY517BhbSZuG8dWhu92SDgJr27YBTlPtdQi5yvddwuPQC0LbKrt6Hbrg61WrGmJfrwT5bkk9UlDyfJXni2xv4oiwVsFw005W75I9fP7HbA5W7IzDK78pqL/jiPIeuTyLNc5KdylafzJynAqXQe2XKFjIQH78NTrnZEey7Xl2MuscEZgJuBwvFboqohymjgxCFZRabDRDIRM/xH5Lt/Q/OSJf/ET3qiFxxtyf/lmF9BKl9u0Hvow/wjenOfmvdhZy8JiqAe9KSVbfVKOgz6WKY4EYEw9g46MBMd+2UxC36ru4Sz2c7LBKD9t8FV+yh3peX8VO2kU54YpVDfgYmEiL9/Q2CcfQLwyLF+GpYX+nGcNz7Dadu2Y0AuKlSEL+h8sy1AZuGZNBT+3Gnlu16v/OGrBcYKMuJisXfOHSPscUU9yz7gHyezN76CG49nKi7rgIlowiVGhmsUjJLaXYisBon8q6qow8OPfbBoW4zq30/q7mFSFeEEIZ16d//se+jvNIk8N236HfPoyJOiS5O4qnG9ZS5fJ9gjxSErNsPnVNYXspXtPXgd+5jxkbpxvMZfe5NBus1A4RT927Cm109A0sIq/zYq628hGOBp48AWjZm/9f7V8OzwimUNzYp6cmZl6bPxztont798vhNfpX8Y3PuI1AolprugwT1psxHwWrKixJk4k/9RssfvRGWPpkRvHPMVKN/JI72DMnolb3FcNEpv+IVsNS8IfrypVgFKt00nTVS2rgzsorLvHOZ56MwcLdoXySI2vepXa2DmZURozLAIxqHGWD7tcz+K88XLdshlb7EPGXIlWZLZ8PifjK1ux/ZpZTwF8EctPULjMTqBp82wzxdnSHl8ffn1OT6cu52UKJev8y7Won01nLRtT5Wq/nfhJ4ehmIwYx0lo3bL5Gz/mG0sVOBl7Kc7s7fbg2c9beROgghMv8qiBMPDEJFTNZ44wiEZm0r/kGGvPVZschXviR6uEdxo+vooSE2Df0l8MkC1YVDI0sLsNfz8F3i4HPoygEyQ/Hrlm8BZYmtxgXcIThubEE5lsh3EPr/33YUTaItMV/GhR3Wdv3+YUJ4fJqAWYuRVXtiIBmTzH/0tx28/Uqu1G0L0lPDJ/l3+wXE4KbdfogkRnEjqAdxvt/vz8gEBobRzcatTARHM76dgPe3UeX/ya3u3afUkANRB3yKX9W7/rNFS/a2orPQbkMS3uCl/Zk9FucNhm23F60om9afrH0rzIbD7tGov5G/x/D9c1eyM1VjS+okHjSozxb9z11kBoNJlPih9xJl9ogK+DNfGd0clP7Hb1zv5Lb8IjxwoZwL4xSH2qiWLzYlTAAjSP9lRmlX+bVAHeKMtbIAeBKZclK+hG+uM1QIWgOX1RMoFzl+bfB4MEIN0Xcyt4WVtHU1U0Yn7Gzs0vDrmobIAXeCh1/RseUN47YeydtJjv/Ara4DxTO7q5yKxk9E5EG0BYWizK2+fdik/Jp/v08E4Lj3MC7/nsqPLMGK13N/huB+nQoMvcCB3VlUtws469n7Ua63pXuRkf9vjnKPVm/GJz5MUtRWidgs0dc0FY+/KER4BTRkNdeV/B8UCsRwDZ2x0O7ZYCrpN3jzsFGuWKGX6iZXDonI6Ye1sZADPj/euFqzN+/v7B5+fC9blwXRc+Px2fT0fvHcwdn+saB7o647rk/WAO/3GZMGjaj/xP+JLlJpJke339zMdnOYzbNSjAXfgZgtlowa6ZGTCp75WV8oQUJZ3vy7l4qQsTw635nsKw/QntAevWglsda4DPXrlKVLz7JskyhiA3Liue72jY/s7rpHjvdppnPQ0/eO71rWL1mvgUdcql/8vSt8NwY7TSicYb+FaP+ZQdwHOyTFucqtxFQGJohcpq2/YUhNNdi7+e7QC+4RLXwJ5itrjNjdJWcPC+bZZTxKfkP6/r2vttUd/081t4ou+qKJH7uVGYFfEUNV4NpNqFoXUw6EYxhP7fD/sejLPcByBldHZXl6ItqctFI7UNSx3wOsENeUdJst2j9XIEpR6GIGjiEJzZML+KCDq8LT9q9HGnnzZoHKNowGYMK3C0AqXV3bY2KheLuYibhWfqJeTD7FP6LVFZ18FqNA3TJd4+3OUT6xBDp7I8LMavX7/w8/ePTniABqZxAwE1Ruc+D1OOe9c79xEou4Zzy/oBIbhbOFg72OFo8JUsP7AR0pmqSrJRFrkb+DLGp+htBYFgDuw+TL/vGj5Kt7eDbdMU/Owf2qntkxFlNSISkST75Y0XgV4vtHfD6zW+vgEARDyYzznAhHpfUULSYCeZGdcBSqKS87cB5XXuyWUTYTbK+s4RdMLvcqD9tLDu4BX/6nICfwflJv0GsypOGxthXzw7wGQfg3ZN2Zv9PKb62sWwLxhNRYmLe5dnleUz293hmUY52LojIul/dfyZkwJQ7IIBjtDyQ4RQikRRzFrSKFPk/7nc8Uz2flD4vaH+JPOqY/En83uRijKhqxT7Z0l9qk7zPxvUYkRmC8rVqWTXjIXt7EPZrjE40MYVi527S/syTyaNy2mDGwdq3+CR+2bZTz91mvD+Qj7jIFRsbeCk9sowl3m0POHqmPISebe0Yax5egMqWuVxMPSadtnfmVj1INJqyrGNEFbtalTxkGhYCJnQtBfh9X7h778+uD4d1yVR1gufzvhcIzLbr47rp+O6xr/+6fj5+QAvGvevY/htnRf8k4cT/c7VV+uSx84U/XMPLb4IXS8Jt36kqKy8n7gW9/A7xCvYLPmEr6KyJVyq/gQYe558p5yv052rXc3edk9zgiCHeOTzcFKyYe6dlefhzDJ4fWt+5zxv0IxXDcn4PE2CSpJdmZknlGqX59QCu3r/r5Pg/d3sk2Yd6yvUcRYD3/wRWRxBhCd3uAaYZk/QCrh5parfy97gr2NZDt3Jq/mdmXpoqpF6ly7oxzBbyUyNXXsF/g2EC/srvWI0/rYbJKMtiAA8rwSLkYKhCzdGucA73XctkALbWFQIBL+TzdYOFZx4BiKaeejqRmGYhMalcnDY5YZveKscVlplNmQwZakuoP0FfISGMkw3yd5Y7NywL68ymMvEW3h93k0iA39WE4eNNGSbx9zrb4qddVmxGxa/Sqvtr1kWhbTpyhL5Z+rDCoJTO3kCLzmqS7WajeTumgiISeVEXkr98JBMHgP2ntmFvwEYAVlnijF1/Mh/v19jP+xfH8gSuYgiGSPARBpker1f6HZvLIDWGq6fazix8g92vsRKLxYnZDkjvseWbKQooLqbtaaZofVdFJWijYzyWtD1wGSN5nmk/9LU7JD8s2knPKlUnU3LFiybsL6PLA6edUSfBFESRtNBkvaOBoBM+YAz+WK+XOoIUNMnJ6coE4wvkoYW6vqShTq7AujAypvtOOz8vCLrCRbHq6BKUMHh2DCepcMWow2TLBUR2rIEcj84l6+eOdYPOEZfIn1/2Ts5Gf/pZJpIJsK2g3hKnl2UNAhRlaz+tAYXNC5mH41M/DcwLLgYObM/Ch5v4YWVqxLlSFMTuxbne8uBlc0QHtwKmRxX8GNN+WHT7qGeR0IfSzgOzw2Nt29vZFJhLt1RF6Ny8eOwIBIaMXrOmrfEJCsvgbbKrIoEBZ3nkTQrhDO3vP/XlE9tm3Zy8MoyUfhnwSmOtr3wjzAdfTMuBR4JuSrU1shMcgLvuMeiv4GNxpbCDcdZ+XIDMX7/+vXS6CszwF3ukcXYInB1cGd8+orCfq6Oz+caNxn0jn4xrutC7zx3D7D+s96s1ayjG+wXgq3ahKewK2dtUOpwlWOIVo1zRVuSlqoZyo6hV16CL/L1NCobu5HukDa8tcAh9xs2EwT6/Yisx82FIFBb+jNTsuCmIAbD6AntSTSBvJlbF+0Fj8nTOGTbAlmJx+BLcA9m/gL4JxMYS4qnaT+LQ32+6HDq0NqBf2SiU8qYjfPFAjdtbieQJlRSaIRSNrTaImARh8rlaT0c1NDzpB0agzXY6czhqz9y04HBu9IgzgiYHKp66il8lrcnaU+b3V0Khwr3bTweimKsq7qqrIrGlZ6W/iHPC9UBj/CK3Y9Dqnj2wMen/mxwERXHd2UrcH5mtPAqunaUv0eMOL+vVo2BPIcw/nloREBqeYi+hg9wjZcjMuv1y/amE6sLXP6548dSSSd+I9GmNxrtI2+IH4zJ+OMZyNOxFLxVQqOHNc+92gs/Pxd0ExqR0py5K+/SvHarN3FOMQeI9LAXM+PChffrBdByYu02wRE0WOs9Kqqxz/JExS5pSwAOevB2iJ7xRTAWdQbR2D9xavPmK47/qXTybQDdGfHc+Fpd4BObAgTn4R9SQo7lu8g8P5PMYJrPmLMiA9aBP3SUwr8IgEFw9yxiTDBdl6YmJ6LxqV37VQ/9Q+5XQqBCLBY2vphHfM703fUGvt4KlOkPAHJwbvTh6en6scS39kHba2vLVNm+0/hzBe/YQsp+zrl1+3UDj5vfAdlnbyI8UpYtczK0LJnRs9N8CvCimkxfxDL+VXYeqt7n0Vn45PfxbJ27toYraGbi92Q0n4XlUHLWbVXh8l3bFtCkv1V7my/E1BGJO2QIZIAn0Dhxnu87AQXdrBDdyFwB/iu5I6uzQuviIN4oldtPTG/qKk8pg1b1NzrbJo5lxRYUcLFENO6rTSsJB13gkDRf37R/w0LJKh7opSfbvRV0cBxetiOWhjv6ky1fdIcBajbIcGMs4niTL1e1QkS4+ozCQu6On/9TBxTz4Ph8d02HlhlXv8zdsrM+Az8/H7zfcvCVAXVG5bcl+tINiZuc3Ody8fYBtys2/0g0URiGHqn9ajk5lmGUalB9IAtGyv9fRWUdjyyhmxHZoyZx7aaXToDZd8o1eNNGMfHk3sfMairB8Yy5V0NZCeLa2r1Vm3luQoNTqVWAGXi/Xuj9ghwc0VsV4PspBxdJ8Wnou80yMX1hFW7nQtuOxybJFF9YZ3DVrkTMviYGqNu6+078bpAIZqaTBg2WAW8jehQxtbjL7Nohd0wrgrlRLBVP3YE1XV24RMub+xh1So2PjOUodZrhrjyRBRmnWRcrAPOEdR1eMjsjjDse51Vg8npESza9cpEYaxQft14bxpT8bQ0uOXac/TARJt2i6YZ7h7M4wgV+kwZrlcdcnlOhdupP4msOmZEodzI9+z31/bF0CGhQtZk5RWe1sLaXNBSZnEIs/J7uCN93ZTUlmi73qO7j0oz6WfdYkJY8LV/EI+GGzvCXlZk0vMJ/ueNFwYdGITeQq4kqI7O3VtVEVios40MAOoMaz61EbMobS2JhWNhWoDSq7akozqoEbRg8g79LYy3XwVjqa9hp/S9PH6MLfzM+Px+8f73w+blGPzBuUVIrql0ye1OfmcdZdtFiPK5P6UbyH4DcNyh47kruDMNdSPT/cTLu8HIOASC70E+TSOCzTntFPudBbTDSp3dcnceelX7hYh7XbkFmWFZA7W9/u8AuLf3ulcr8COMcu45f7zcI44Q0vRrau6G9XiAaFyqPvKbO7ote20FXd3gzq6yUrPbKDBGnwtr1WW/npRRwERROcoACbJu/I/TTdyD4aFHBhze8eOvHxAK7JXf3j4p/MMwRwNwicS5nucFxKt06AAAgAElEQVRfI5R/1yBM/aD97NdvGDwv/j4gUzpKvuySsvFkDXW68UzyNGoQjB2zA5+3DYb9cjG6WOndUpAOg1R7Cvs6lk2ZwC3TZ1s/qas7TWUo7Whzr6PV3ymxC4x2C7cQ/i0/IvXL41LRheIMINSP8GjRks5ltc3d/CTRNbS166Ty+qyzlr4cmXN1J6AOViohcqNfrqLFf/bTmqH2uv9Y5G6XBL5HXMdLaBzGxsukBTcqsR0fYC1xOmyOkmKKnQyN52GxjcTwV2Y5mZ1O6nR+e2dgRmN9oGz87R24Ph2tjU87pzNnX/h45V5Tk9gykNic+Zeq+g5OXHEtUov5lPMZ28WpcZOOkQmVQcFZJhq08vHnUdnFzxmxYo9sPSLizGy3R6wQlVZYESCVBEXU9ckoIqJx5QVpoxcu0LjeQ/bNzmoXoI7wo2XJoj1F32JmCE8YE7P3+4UORiNak5M54GOfzaLD9bkUFu/6vMPrIcpf9DYlAtz2sNzs4d6+E9AyfTuL4/C34H6y+c8Q4bQ0t2l2B3XyxP29lCcAJbFXEQs/8SgfrOmC8DzrnoPOzVkLVXRKFdvzZEu76kaReRVjovCFTNcYf83ZNeCArMpU0JG5NcoZaovvcDM0T0XteGyqpiIngiXi78vRkAzH3pUTmx6K/kYll5w7mjWe19GkM3KUhTLPRRqEaoXjyforZEzOcw6PO6MgTt/i54Sh4/GIzB3zD6O1Jw+tYuFtmlhHKK4bE4D9XGwkB7ERFuNoWlwtARJS5IdEHamFr19RwooC2zTHWHa4jkBRV/jDdydgbmfkDrQXg6hB7kmqbro5fjXyyztb/TojawEtVw6o4UQbIX7U4jn9twZm35EY/itObKg1kk7Kkl9gtfnKWvAtc7qPzU2Yw1DzDBc5/QwGdZ5XZaw9slvFcUiqmiq/wNFhMCyIxgSAgNfrBQB4ESmzdma03tFp9Or6dAesXPB+gm5RJsKpjYM8+hc7Ny5fO+pb8TZnbJyXOpXvsDcTtKlQKbEpLUlxF+mBX5INAmdHIgG1XNb3jpl7ZZjK2H/h6SfjHq+6ckzprskpDE7xfgdfXVAeezHVtoTu7Gljley+xftDXHuMR/OTptsOnkwzJyPYIEuI4TPAJaids1B4MIAeVl2fiV8EzDWNRVqdDe34NDY8kC9MVtZ9Kx6KcTAcIgGP2K8yQmpfWEdM+Ci2vHMiBFSRP9umxuorkMveyKIRW+LTcVJxcDzXlyyvY8i3X+U8cSMgjoDVB9YuaoGt3Fn7VfJjQEDVkegvFhihp1G32F1xrhnLaxwcJYLfW1NYgfmFhB0J1VGy+tbJvUHmJK/G41pyHokzH1VN8Nr60mdNLT7auz7A69XWOOrXES3sO31n9XwYLD2YFrB1sjjlO4qyI8E9oy6fuuCjRiOCtxSmw494fFTC7YhQHjs0u0D8ZhJ9JXIyxuDt8J/OWV4yXQOqanlrlL3LNGbqcp2KIRiPv6r0VMA9IeSVvWyL2Q9w9EskY6G4hNbR0MoyrX+2a3rdVyO85j9qEuuXO+eA62J8PmNgG2SWt/btPmHx23TDm4+SGZ4SlNN85p3OtON+tYoR7IBQytpWM1m6LPWHHc61d0pf+FBWA4yTVtnMuFw35V6YakV22K+K2QqrONbqxeTcqWXmQdr1ewqxaSr1sz7xTaZvMsxhJcPw/mGX6MSHTQUxavDjq/CMxVhkMXpmr/xUR9ryTpcEnRJxONivVB/wui/k71yiiDBNQJVT5AMyYZzEADm+99jqF4hih0z7pWGK8hjuik3lK9jViyKqaKGRjq1p9wjXUKeBWdx3Wod1jmtbAQxZw0pXLk6NmUHMm5vIHdrrBp2lHjPN7tT0cbLqOrGH/K1DoHbfeB7O3wlRUL9VtfpKWMBLRZx0jGPw0R9EMvDFGXasdBhjza+EmgyvLOXIDiGj9ciOx+QV20dTvk+Y19XR2gt0XY797bgex2fWcVN8IX8I5Tp2Jvtj9afit9sgw4MVwj9KZWTkn4Kt/9EXLeQuHZopY/4Zbp//MsrsfpNOs7zSk2dZDpAbC4bhML870K/AY7yeM8ps0D5EhU7jbGC82/yy2PuN12v8fr8b3r9ec7/s3PfaAHoRmtkzKzCcjXmcTM8OTFdnrfFZzC/PfkjTi4YxK2vzJofOEfLZoDzEUOEJ/RBwI9nr9UTiqPx5KuaqTAFZHCq/REwYeuDPTMDk3yCtavQHOPMeT6MEOEbFZFYc6poaZVNazuKOpS5Pt6r45iukt8jsXhyT980KZ8GBI+iySdUU+wpUFLnfVX9yLpCVtjEwO1VavnHCuG9b7sX1K2ix6KE/OkN6WL7Kd1aYUvZyYm31cxtExKT31Mt5ggaw0afOFm3+yV52rGdCU/kd/9O9ftxaY7KnUgXOHMD0ha6kNGPfN2nnjMdx3KbV3kKX/N+yftgza4e/NABLH+5RmlagFe267oR9m2ThY+JCKqf1B1Iqfp3ZkQzwMOx2EbVb2k1aVt76E87syl3XC2bvV/hqXEJ4+7h7t5zvNDCFWHudcRL7qO9rPAo+3uyVVXC7vbJVQzQLEvl7i9WHlBujfFlQA5rwj4yrXLaliNg9soEbirFgaxDarDMRV2Po6vFhVuId3dig28MZij5zaXbOdcVBxWsSJFYmUbN+oDIQEaG9Ghoz+MO6H/NuGepBJ2p8fQHfifiqKF46BtCJek7BEdinANf13yjR0/YFOyNnA9Mt2d8TNckTG5A1ghUE6CSNjIMrypbCl2gmv5Pw/d7T3L0o8kWbkpeZcm/Mof6TZIISFX730M4l/nybQSgdXuSbAiy9MoAnHP0sbRS3GSKek0kykb9c64DRzZJdCaYwKi6rbDKV+CIV41cOad0GNYlqTH1rbZFdAamaibwQnRsG1t6P1baPog0h1tV3O9HkgoXMjUyZkOfJZGxbO/FPbUB0+nKTkgPosdvCjac5hTACb+oqscHHHjkTu+P/k1zEBja8tf+hxbUbvJ5zmizKKG8nyNH2c7rngVAi9tcu96PC+TwCjy1EaWuMRJR6hDz2/8HNtW+3lMxQJ6zcY6m+iNmCQIuWPBnYrUqzqW9geKCTc0pikS++SW7ZwtbYCvTZjK2lbRjjzu5dgmTtpuwX06+dBD8kInRUKjscfaMOpqNt0a4oDt1HZAfqD73vw2kXO8u3X8BQspIJ/hJ0KWzxz1bDKJzdisZojeZvS/B1an5RbLyQyWNrL/Q+7lgbk0eaFi/Cm7wDzs5m5Y0pFuSVuuEZdiCmMzjpIrPtvTtODjvZwkAWTysxOxzne0VtOlaNCd1NSiuDbp2Qibe+F1pJAbOLNTjWNW4WviD4XJiihKQmDP/eGikb+tG6k+ukLzNi/1t3ip+sTmz7pnzOShYyw3uMZIHHpiyRscJYY2jHWldplF14RHVO/VOztgoQht1i++UdDrZujJkO4HBqrWy7YS3s2Xdp68hUjFnVJ7nOqjBM8ZEN/KmnlzwDOhO0NCPA+2tWUbLSgGQr1gRot0dtEIcePrO/d8irqjIIWW09r/KzCnPpaKtDQytO14aPaBjCRbNYHaKKsYYNqmXbqbzLFP2WbgnHUsys7smqtb6QRzTPH6l4ig2BI7PTx4D7NLpFcuHqLYmDE43Xnf5ym21znVP1FZG1Di1gHFrJJm2HMVacxw/ZDzgOAgmz6VVRDehc3adKm9+xGIdSSwHtHAN9HfM8R6/yxKbolMwJpM/yzX6RwzinIHbfJ9CT1bpPiH2TjMSOdwx+TsFwJCN+o1AUjB3/rxAo0cjgDYVpfAtFV+GdksFcMluMzTQiWYsjI08gjfVYkgTYXvBboKvgGHCflqNlOInG3mjQCwT5nCvQiQB0txk+fd/6C2dW8Qm0pFBnKFWviJQqoawlsXUOCgomHC2lT2grCcuxL6IylH+OMjx1h6eb1bdVEzmIYY2t6ZYdiskWBWvUiQCr4LcB8eVtmZfGtEz9KDpBN60kZR2AR7HeLvdE5qnyuSpZvjnqAtUZD+/LrmCJXZmTMrWNNDln0tlPgO3S8dIjOqkzh3zGN+K7wqOJ7rJlMqCCYWAIu590FhR/ytbT7sWHqA9cknFYLoqVs9oRSkrTp2Bryt/bCveJ5AMAKgDetqi0G7zTduyIC+cM629omZIVl6JSZ9Y0pLzhxtACsrpijoEWnGN/sGn7O2N/w4bmBgy0fJ5hRHy8BtWfpj9b2Md8/CH6/0D/v0hvd8oQMMrJRKmMQRFWJQD0Wla3zf0Nekkwj5kid7EYHOAjEPtkJu+SHWBS8Atb026yD1aB5Lb0Whn1ErA+44Zx/1zv6wshq5hKkDemPiy7cKqE9kki+8NU7GIBDN0dLly3oUuYtdKtEZgEUnbISslqMnoBbZ4K1eVgWrIpM0mnk63SNLPCiN1yIzrK75gfumBJYPFtbbgb78nv7fVCv665stjAxOh9GFCRkdZofCGmUx7PO68w4JQpH5RWfMvx/eCDtZ/84bJfTBNuZDliAlrYRmRwyDZo4DM+E0nmGfNaTEo7j7LTuCCyOEGVz1A5HPb9vptFMvJ0S7hIXUM8NmOiS+ZcOLMGUduuMvmJt0+jm1vgQ/6ZWFsP4wCLx64cY0tJ1ulVTY+JKM2ggew912GlFUAB89wDSwslg3XjFzr3hcm8j5P7iOyO+MuirzqWzG5HkT1AxKuwoUXR5crjLbw6wjrAN/iftZ/ap+ic2OgYbpKzLQTrJabRC06Ou/ZOiSv6eMFYYC18XiBj+4q/RJUNosQejUhT52z6fHW2Aawo80auSgKYZPnhocJUekW2L+vHDVdc988OYC1Si55rWFyBFEVOdFFAvoHo9NrVQNXhJvLt+NvQL9qtpJMb9MtSyHie0nuRyRMsHbAx+lTOVcgFyq2RCixdHTxNpcwYmA674wrD7TNmSp0O+VJ/CsgyD7Ua3i0RLlkR8i/HHAA+Px+ACI3aMLrX6O2nM/gaFypD/hnj5JbHn6STs/MkieP6bdoiueOmStNYNISf4MaMbFQb43YIYNprcQinc3LnOyRSiVAn/He1cxm5LxiN0Ah4vV/49X7Pu4SB3ho6GNw7rutSPTWc3I6rd4/ZTWT2njf4IU9UGk4Mjd8AkaywOAYbjNZGirrZPMl31jOjWYY0fy/dbr9SUlSeB76QN6MIH6WCnsEmgdQMpCK+EhckPSG9aZvdj03JPR9ofjRupvzQnsE5iUioTROaeqdIdEebq35kD11OHe8/LBOMPgM8V8SIx/G4zibg4MLhJppnnReLdbXiYtumkKUNWfoU5NDXJjJLBPByaMs2LPmjjiwdp4eeWESUEFYwjONJXhTKQJ/sFrq1SbScoRNKhy6QW9+f7SWE9rw97oidA+eiKQVSPHnC6ObRvJGiih6+QaRJw6HC93twb0b8W5b4L01vRAFAjm44ezPHltoL0CXX5YTwu40vu32uWZbwwnAc08cLhIjJKaVE3FLtbvSjMpKLztr/ViloCDuBmDj+/fc1FWxDo0Gn62JlvEt82I05iDyTIoq2wE6Y795b5bmrV+5pfM7Nbp+t07OFotKhkjyaDh+hX30YKwJeNOY9r+kRjdVlVrDoquYGwGYamMYp+hYlGVRvKPO50qROxXh4vRraq+H9fuH1Jrxf4+Qzc8d1AT8X0Bho1PH5MK45kYsauZrI1Xs+pQJnFJWgJ02+15yi5PfO7DQCB0siitqJhgE3JtViBJ54h6Y/d0URe/+lFi5t0RqZ1PXiLszV4gNk7xo3zsZgl3i37UaYZoXnGARGos17VBStaBx4LPCnrMCUNckIGsyZ4WkrrAMrfo+s9hHJvQMjk+RAUUnacdMNg1Un07QNzJwdWmag+8gbYTk160YDotrRCPZDXllBCdmr0Np+Fh0Vic46sXZ/xSCzgWZ+Rc8wREMXFsVeXWlD5DoYKRdFjzTRYqs9xw+KR1t1Cz3n0fT874xmWnGkhZfJm1CxPE8smCG4ElVTaaP1ZeR3ofF6dPxQ6C0niUWDSZ4scbRL9p0lntAz3PubYFedLhpPUdlNmko1RrW3ZqqI5tv2M3+P8m/lV+17VnZyiGvNfefANVEwS16oz7l4awBf6oR4jGYSwseO1KVN2htIiuUM79v8ioYaNDM0oTZefv7+ACRKtUNuMGAehpsx5ODTu5tRMQB/4GDfftGB/8N0i9nWprlqhvHdXavTqRlRTrnVS7+5h5cScyp2nleuTZjUxkSBMPmNxmcD+1ovD/jZBY8qZcXro8djrBsR3u2N9y/C+/VS/mRuAF3oTOiQSM9yi6p5cxKFCg/L2kmxS3GaCoKR5EcE0j0PHpQ9hyyb1mLVoPRL0pXsQbBfxCnz4cGqXJil07sArS1jD9odh5j2+WR+SbRa3xX8bOttpWSXQelHLq+2r4h8R+dHeYSdMV3GOfK35Z9ZD0A1+cyawL4JzBkmK2Szs/o1BUwv2/okuDq4tJxaInkmvPSdXsijDq1NPPfFMk2HdjqwjWk5svNvx5TLxsuZVXTzMvGzryXFjnOZXRVZWxvuwfuXUWifGhMjJITlDGx0wDp/YNq1Do3VL9bGO0fE4kdOdZSwI75zK5tdc7WrGrqn1DpGrvEgxcmzMgzs/LooLIXTBzOGRlWnPmg6fXFtk44VKJ/N+Tp9i9HOOfiqV7+d3nr1iA60erSzyMyfvCCX/K0cr9rKKy+tTCZeiS92T/ElTz67s37160xiIxDz51jtprFMzIMGXeS9XZDbHK858weMkuPsxEah+Do9qXQUGHmkTVmkcV9wBXH7qcW9crbOyzp1PJijNQKh4f0etNKtKReDGub3rudnfmUvLQPvNkT+4rEn1cKWG4cLlZd6U80GlYfFgL4IrxmRfb3lay72Ci6A5n7w1uQWD1qKa66nZRJvaGYZUjtCxuGIYJoQ5z5Zo4Jx0wBTYMRKB23BrYXjId7e2OiKzs4Z9uikp20fdqUP7ezyaftD5DjySG2CE8QdPZ8k6/zRfbd8BV7KVxTxEQlbN7wrn+AckoKAhb+xiDhQMmVNNG9FYrG2ExCBGqkD22h8Hry5d96ZtYl53OXFvYP/f+bedVFyFFcTlYjI6v3+D3t2d64wOj/QXQI7sqpnhu6sFTYgBOjyGQs81j4GIFpvC+eKz16nkHB9mOtBmRcIpwMx+oUwN7f5rNMW2Baj0xXp7YF/g0Mgq7L7jUd+Uuq8uRsOIPozOfUh3K+GZZ3h6ZQS1qWVQTrfWHe7p/4Z2xSa81t1BMy2EKmsNtYO2wapiivOmuFjOtsCjv9KT1fRwR6KtuwSmNBlDKGEs15uwgukWGLIyCwmyia1TT8ibc5tHOnuGcCul21SmZYTFiQktmsrrMpGP7g8a1BGf2pBNpzJMOBiwI/VWoUZGj4jtXRKHvinyDxAjHH1+elS6W4ELt+68wrJRis7auwiMF07JC8TKgI1AnLv/NT+B+kLsGEVmkIbts6CnC57uxzyfd2xllX4fGPkj0u8QDbqABJvkALAOQHmgAv4S2m8ceri1e4yrNQdmdJaTb2fF6iSF0kYsxrD1ezi5bqutdlrwgLZBu+shbu5Kn3K3SGoj9i3ArClN5yjfJqCfHSihVGCdvJ0D9CkoDNgAM0c3xC9aYS8nUGxr1+M6Sl5NPp1Pfup53NvCW08kTfIf8QANVd/QDu/8kt5uqLqVlkHgoFY/jvGgBcOePHRdwHUFsIcTkAEc/AKLB+jMy+CietVD+IAnMT7GgYgEXxohTstWahgbje+7Sptceh5zHbIRu56wNJo0zf+NSX5/PoYvKbJK9SyeljCGHybkrEVySLEiYQ/fxsNzJaG+gbMzLBdDhshG8SY9eIIujyIAgghXlK8LX/g+jRPQY5yaFFfPOpiRpGp5Db/xFzu8KH6/yPpDQAQYprc3IfEQqIRrrIjnFamPo0R7/Eic+TxK4YO2YvgubRodwqeyoSsh64xFfP99fcQgJ/grXz6WBzIaQaC6PSuKCUKAApwpjVZFDJ2/WikqRBNAiiFAmqrQuv52NltXz7nGBuiPHI1wYejjAHLIY0B47WMKPKJAMCv5oEIJiAMjob7zLmcjzgn10tdFQ5z2j2tbmI6fZfIeuALyokFMAlI338CXNcHfn4IPj8LxM454ZoEEy5+uF58ZTuidttjnJ31C8wK0nLch29vC+y5M4VxrARw6ypCamI3VLbqcLBzBBB2EG9o+fL1rLHoqO4eoMoE3xjidojlEkHDqh63FxqG9br6kSPot8OqtmHe+NOVRFfB7NBjbxSKxTpfO+hSFimHIFrWWpHSEALZYMn24TXW25HBv4d8KlwALfp+A9vjuU6T4VXYOddG3AFzWaU54boI9Pg8ApgD4D0HXET6qfmy4Ys/2kDkpssLULaxN8CpWlPxj8hXvCjCYiinLMS2qxBGwIV2Q4rxOI7xgtdr3fx85lqlJgK6LoeDjEuzo/Z4v0ynM2zabAZRXq/rrWXK/Vsvezg4qVjf3Aj89ikAE/Cg2nKeCXnZn3G3KtuwYrZHQjdo37x3hJsueVte5qnDCqW5poGb4ajZggkWM49jZW8ayPOjMbIBgwC0chafnBbwuCYB8OYnAI4VnAREU79NrM6yo7y5zFd2DsEu8eRUyxDpZ52XuXQz4Pm03ZmJoC5DO4IkdQRMUNu/A06AzcifU2CtGYAvPP89f7ktN0co/1m9F1M3xrCV2DFgvNcnfgcOAy4IAIQwYAK8AGgSXBDjje2sfDN3rWMU45/6Uvw0gENttAw4sIF/LQD7uS4ARKDPBGV3rE1+n58LPhfxKQUEBJPlJbYcbDxBENUWN/jfLdJKDsHnH8yv5njDhTvQi+mvbwqDKdC2tIDpPBKqQ4rPrFXKAgaQCxRJ8q1vRHqj21uB5vKuqVJcW0wdzqRpC3YdiLhVLpkbKh1cwxrtTGi/IaUZeCy5r5fqVAqVXw96Alk3tkuEiWVj1RVAKiuwr8FhPQxaB/InwhXMDv6C9gr5GYlBA7ET5gS4GMheOPm88w/AWI/MGrk+V+iYHJGO3B9CakFtK2sDln5SznAVGhlQjZEFolaebuS/ZczfXnLswzje7wF//esNAwd8Phd8Ph/4z79/1hub+4Zic9uylR/d7e/42j2lFinkIcqfTTe64OTXgTVXPFpKd0N5SCB4NxZU76uZ9w+fd2PJbyXFVFgccnYKpMXpxFws3jb3T78wfiKZ/630DlbcyZvEBa2xIP22N3BxQFhHT8mXD+TLHtNN3ATQlTbn3FZ2MnS0cahiINngRcyWBb/TgmT8O28VyhupCnrsN6HtuPUZ1kMTOCNS+dtPe/V6t2JC/md0/pGKFbb/doDlPoVXn2KDAcDiYgdv7hrLWb0GDOT1VrT61kH/FC47lEnf8Kw275UljpUzWwGB8H12Ui98raPlJsD1mfAaC7nKkWsibst5wjqhgB2k7I7254H6gcwLFZqXURO5PErXUhnTvc0xMX4MwnhQrCKufL1qJ4uH347tAvznxUrXooSPfGHkwlmaJLxF6rE5AQFQBVgc1DdGNo9xNgzYF9+Sw1N8Y9O4eDSfVGZqfm2f7zjBQ9avR+Nw8OJtW+EsUCnVkV28Sxc0pAChBbHv10vB7GsMeL0GvBnMymotgMTdWxIge821MnvN9fA5kPc8wBvwmvCBD6gG0PIzA1A3ZcqGxAHiDyno0ba7Oj+jAXr9+Ecf6KGWW5VlxiqQaeh1YKWJzxnjBe/3GluaBK/XhIsQYK4TWIzO4imYKWeONg1WgRHRhAxmc8+jNdu/jSnKGogUefV6gF2Bjgs3M9xN22dZ+x1rPzwyy60IC5hVHhVn7PrTXftxoWaeXH44em5D34eBpAL7IBgn/H9rVbZOqNcQi5FtCHmGZBxFDy7ehCNB9qufDHxdAK9flQxrZEm54zA06U4hi7FIXjbnp9cg6uvk2pfvQEfhL+8StG1Iuz584VafpS99dZ3hNB5fNbexCGR0kDd1pWcmiErG84BrBJFXQ4CN+LPtTabwO27XvFIoNPmYhAFjbeybBuoESRMfrI4D+WMY8pkgJnsY/1Zhd+W9oZRymAr4Xu7oeDuSi3m7T5Dk9w/EKfB2pzA5NbKYquchqG8u987kkUA/5tMT/W+mg41bKLDw0DuRVK8ay3PzVC4aCmj8dL4kTBzrNn/EYJkFF/fKD70ezL5fA968Ivt+cXjSGG7zl2uDAOREgmuuI/GuSfAZF4yJgNeSrQsACN4AqJ8iAIIV546Th4uXZ2UF2cSI3H834wYJeQWAkVNHKYGpVCSu2D1PBKzv/PZ0OWyOmX2tMb28+gaw4VDE0UI4P+9XJe9Swivw1QMg13MhCT3Ku+HFGZY7G3iXn0OCnoA2BDCcHfpyYqDn5M9t+MP031na/Tq9s2JGE+WPNeGSBHAx8PBCKsoBwAqilNZQ5jv7lDwOppwCaE90blJapT0bpXo7jg4l1rPnpNoX32aJeagtLqBxg4Z3ehpY8e6nN6r70ROrtn7ryuuQa9AnLll1FcclpzkIOswSB7SA4XWtXcYfXk2ZNDlchb8GFR5GmAbr0z4iMzW26aDItW4qQ4qAQerPCQNfYGs0G4LZ+XgH6KdcyA/WFzZO4VnXl89xCqnBsxnO9HgO/a5N/utevK4qPBwZU+1SYFltwaYAoL52BgBbhXUVJslpIlyjgNl4IwM72Z1d84I47VMAjxnc3ay8ZOJ/6mUCCxYVLb+2ZCVDQIpfnc1IE8DldZ1Yg2ULOU5wPHgBaFfj5TPU8opbwKisyL7fL3gzaP31fi0Q+3rBr5cB2Rf/XfWtHfJA9prwGesDJWMgfD6XyhS+HEMEQLDCDgaHGGhPO3naYLMy7hscVQG/eJQyUuF+Oe//BHTIpjXE6SujS2r+/Z8P/PoQjBfCdV0hLjVgV7R5lofs8qkjRJXAXXisJx5XZWPnu88ohfEPut5obqCXjBY80NfMUEfPNwzLf8EAACAASURBVH9Yle1vdE1an9Zcl0a6oj3toONVvr5aCY1kDmxzO49on5oVAvv++/QGx19vxmPnhTkBbrb8Lee2AcjyDoURA9iOgCPcrGNGbrwhyIKVunDrlJSU0/ib1BmuAp7I/WjIVv1+9OLhzNDfERpNZlB86GpTwg13NiT2V+VqAsBrfQRBXm9OnKykK03gDRkaczrXBivnmBQIB06MBpbXm7FPIXat0Ql92NLXJwzhKL55UB80/CkK6yMJlS270YoZsQNGUEdOhECDgC4DJlrczwtBWUUt6YBoCGyeA8/sHDGUTtUBgMi5Ah/jtuFpJ6K98wYIr/8KHRtPO67G24CD4mG6h/FSx6XpC4oDDceiWQ9204Hpl8ZDZv3d+WVK2WjNRoCR7Gjuq/975NjnFUUp9XZmiMMG2FMgwOCPGMhueX1LM3gTF4NUXpFdq7Ev+PVG/jvg/X5reMErrcoCANsLWYWd8BoTPtflTjhAAPgYOKRlNwYh0BhLjzmcSaYbOFYW15daWlmWKZFxCLay2K1m0LAp3qRTSE9xiaw+GWiIjH8+H8AL4IMT3q/1Fmptgkt9ZN1eeC2CIi+TiMMg0zRA1sWzxkEAByvRmWu2Mb56cKA9YsqrsjsIsgXS9Qk50Qe1D3rayeGV2+PwAtca+avweu5eRm4LtP37AkR8WfwPKnyVNLTg9PlJsefxTFSBsHw8FbkQeY1V69FQ6+tY0g44o2dsY1BToW3y5wHWdeSzmbc6ziftHFHDjVfhfX89EGqM4DF1hagZ3AoW9hTFEfc85tZxrBgsgHX0zbo7GBhSEI95SUzbBXTROsqKSLYPR0ccwArpvQIUw4NSQpIt1un3/Ye4V/7zuexUBqJp502GMUjjlZ0Wxk0uy8Eswz2T8wFPQ7yTQa/amWNyNIvtjfJQQAp7hKA76OxHg3s6XKZ0iR2PGH0CUHPChWt8XKAAcdNa1N6CFSnynjFltAB8D2P/EfgsXiX+3fgbdYdePJM3NQNYAXAhMEto5KHuMVml5/vRKkgeKPBypP1Chq5ydKQ4Y9cEcpkl/7Bi5+VUAl5tffMK7K/XC379GvDr/dZVWgG7/igueRtIHFLwGhOuMTmG9mJ9/ADAG4A+K759LDszCGHy5sQx+HwDiRW1FRyQ/pyACUqf3cBsV079oDmpyPLs73kwq5spM7nk0zOYnZPPWsUlUTTNx9CUUDmxn5mpaHuQy66YZWQYIG/SEGjgCmMIaAxVl4JhxNiC8c7j0OHFNrlBSrfL1G0dcPseqfK3qw5sG9lmAjQYUmjI/fxW6Wl4QUcYwfmlKkf3RN1vb1YDkBGbE+Xrv7Mq26f3Mdel4i5TTKhM9KBUaXOezw3ea9zzziSLcGCfHZkxatsVWPUIj0FsYqVrTp3ldykTbC6/punq3SnHTfXFhjPwIm8D4MWbHGjyxw3GgDetVVea9mlaZQVhfclLTgCYstIHYAuxSTNQGr7htw1QT0X0h7xIZyQ1ydtWt+kQbU4zym3Sjj3kuLS//nrDCwdMIPj5fGBe66igtTpyQ+TQ3ln9nTNKXzJxELWWppP+NExsWg2JEoYqBQ06fPEC5XnK+vpt+QaM/FF6xEMzu/5sK3kocEBk/UwgQpKq8OmgNC7YChaW0vZ2zpXFaFVt4xdv8nqBAlgPYt+vAe/3ArG/3i/46/3S+6/XOl9W3mYAgH6167omvDi0QM0NAhC8+Ll2rE1hr/XQ/CLQ1Vm6lpCtLyRhay+fr7LxHOhY9HWeYisdQYcUsp/0pvGU5PkeYI3BDkyF9l2Wf/m/zgof8Hqv1XLiTbOTTzH60AX6lqWn3DZrQFB6lsGar5QFNJXvqvt5DEu3jbDfgeAS2pS2Qd353ZTsgaVHkX8XLP7dhdn/VxID2TVh39ryBVoigJwkBgDc2FM/+SBAaO92aQVfJkFuSG3ox/u0dcACXZ/OYeeIT4XuQOxdu1sfeVNxgcRuZt09rLfOjURFtaqkB2xP/vSWrLoA8KYtAWZsL+QwdGJaF5F+I11Qi3X7y87f5ZPx4a+XrVkBo+J89CWDbmeWHxH96Y5/1oMypG4OEder0V+/XvCvf/1aH36Yk/9dq+6AEFKRReAuFOerOLAHBiAaPveBFK+f/utvzjyYjnn5cfDp7sxWQF5pFJoEfjUnt9n26WT5H/Tfx9i2YDb+OCaNxFhK2hTY/OZrSsAw4k2EmYDp1sru+D4KL9SyO3Y3wyFxrQJCEd1qbFqRfTN4/ev9UjD7cvGy9sla/jLgnHDhgDEud6KB6coCuwNec8I11zm1U/nhfxQgCINzpytw0K+7EKecEDgsBPNtsGO5mjkMq1b3Ka6agUfXi+7ekDgcVUGVnhqGAL/eL/jXX3/BGAC/fy74z79/w+/fM4yV1hSGNsK5w4hVjasvy2VCT4svxXrvAagL/N0Ut/7v8U58SMglEoiFpj8bAslK1sb2pZ6lsiq7K0dqnx6dXLDjMf5JK7JpDApN91uno/Hnkg8AvAnI3VCnKZwMaBPGyb5bK9jeFPneIMmd+u/sUEuhWc6/q+IL3D1R1dMeKBHfGzEK+a6et2MNmTNLvYoBrSOpxDl5xwGT4Brrr1+NXXhvHeOGiCsulhjckLBMFof0WL2iw9mXavrh/mr2pDRYTUJnqm7KIv9vDIA3vx4FWCchrLhg+6cMeWCY2Mkjs4pahbWqMYXNrT6dea6/o01oApTU3xnDXd3svsmWihLtnQyQ8+fs/hV3pAdUFDqeQXepd7PFy+mkd3YwXV87joW+udqQrHZZ5rWh6sBKaLfVBTWQfbnsQzon3NqiPSJCBjwICC9AXlHFAGbHQHi91wav93sdufWLwaxs+Pr1fsGv1zrQfwHZ1bauAI4J40JAvJSjdSQXwDUmzDHg9XrBa67TDcaUzaruS2NI6uNWOAn7Epz6Nt8WQKhOyHEsHqRN1aAFf4P885Q0VF53O5tHANp/Of3gXzjgujjulji8zKMv9PTJ0Zb7BpT7Z1wmMCCh1h4ZobAYEKBajFzSXT3YyHnIzvxbqAT0Fb8NL/gyfQ1UuxonIu2Efd/q08RAllog2kWdVQfogKn6B3YOWOTFVZMvhPXIuXaXumIuNSis8QsYCjUrsM6ul2MRW//Zg9g9m1FZzk8vrtc5VqRYsk3DHpElB/X89WwHkw5FxaDz78U6AV4AIHFsso8qyDsBjAW6wMdTPT6Z+8Dbxu9u4AzfzLRuUTHo9+QfhG0MPjz9uib8/P4BQISfnw9/LUx2Dyd6lIzxFsyaEpijZXMtDw8tpLxPWW6MFQx3tF2nj8aTty119E+Oo+6C7+TD24MmhlaZ3vW9GWAhd6rm+H+cumaSHH39CvEOT7YVOtvyTfk7gyn35FRy1Ff+LwGx/Hd9zUs2dL3cEVxrdfaX/Hu9OE4WQJe4ieAzjZaYpHWe7FqFfc0XzDlhzMnHeM0Vpz4AcMZ68lBa94iQA7MA5M+MXRXqGBztfZpkHd5eF1CaeCoc21WzfsK3Zx8H3RHLYgJnRxKuyV0r4vwY6gCciQ0z5Bzuk5VJxHEGl23/sN46Fe9unC8rCM3zd6NfRQyCj6yKHRblO3ng+362gn9ASvVz+Yepla8OpK+5fr4qC+HoHJIbjs+3rpQ0BBh/BHr6akDUdysMxXsV7kJMlui8AskYbP6dqzU8FRy9mxmCVGDnmXYYcTfgR6ZipQBU7prQOK2bNlqYxr+7EI+v09ESg0hI9MNyKGOUVGIgb3MB6wioSQBELk9I3zF/3znfVst+KOjl40xX++tphWaoODnZ/Pbzm+AHLxD8TnPediXozbEUbXnvP5jh6H6rdLlu9xUyz9o9AagddGA5PRQiQn34dPNXQodu+4fl6nv1+RpRpupPEeyGuzunyX8pXz0Gs668EWqpx3vAL+MQZIlWVlVtZXboJ61feoasA7Tut70FWsOFE2E6APqmBWKva8A1BlxjwjXWx1kQ5S0S88Ff8EPhbTf+BbB03XcytN25v0mOoIUQVaC75e2P07eSbuNMRDAnwP/+73/g/esNQAjzWif28uwCje5A8J2eRF5KaMQdZ035Y+9y5pdDcVe8fyjZ17qn98wFPE9/ZuX+b6e3IT6ATjgUf8hvchm5JPufNRQnwbTf+UklbAYgWK+ct/U7fytQhSckrBR7Ml8o+gm0uqHLvJQW3HFC8YmlG/d8XwYX+2p6vQMmFMYB88NLAfm7VNCeXQlYEACa5s5/pnSSf5CJUZOAyJu9pM/uFXto0LPzJYjVP8u0GBkZiAPYvQEGBmYpkkpzRgQwryuEIeBA/VKYKZx7iPmmfW0IVM3DpyELUw8akHa8TTiW5BID/VXDdf2N+l8PbGO9CQQj3Qv8BzDdnUx5qNuVSLgmh3iUpAUeOohugNxKxzdeS6/CD3Bl8lj3dPb3mry2WDdAAhytBOI6vWOtzPJpBAh8IoFtAsuAVk4ukFYkCugigPkSEEt6VNdrONoosbr2F9WY24rxHviIQERpbTcCnwXFOdvoE6OLxPCwhtJWtufbqTJZamNME2Ulm8yEvSQTPwvq1z4/H7g+CD8/E15jrYTPa66vB/qxIKeeVVjbBWosMp43avnB8sx3YwF1bA8oNrbVkD0Iimxs/Oq1yhfhBWVV9g/bcAyr32gsynN/5MkjgH4SGgHkOMy/cfiopnRqQbWiWfd0g8FuQKn84P+Go+AdIHOWTBw4iMDCJi7G0WG6ymennJ6VrS3JfVc0tqsQmghcod8QkpyGnK8blropjoP88CDtiZHq2BMaN934p5JitsaZLaGmKAfh/dHa7IQvb1BIY7GiURK5CtRca0Iz1UiHEmgOWXvtAB+V9jA5u3EX3pIi0zWtTjd3RxkOpMHHrBKA+1rmyfq4+fB/1c96fXX8aKy85Cc9B1BQ12G17l7uUy6lZ7q6PN3hy/ZkOZA1EqsEg1nyn83NA1x5IrIVP+uSeG+I88Jy2lhTXyA3F+1ACYJOdTHZZjUXUei1Vqjej3RsoSvTGtnakZY8c5fHkJ3l2lxlv2U8/Wdr5ZitF6+kyoptPH4L1qapOQBe6ytdYxC8+Aiu9XnpqWAZ+Z/EqOteilY2fOoAU5O3G679EIHKVLj/jMhphv64dPKp1GcAEKwjy+YqN8eECfz6H2F90t6P6R3QDK2udm2x5K7OuW+3eK8UWDd2YLYWN5+yFvoHjBcuQD8JCPJbtwQZE8SqIaffIMi+uL/1+MXPN4mZDgs16pjB3O4DQHyX3pVABAoVIGRFN6bDrWRI7WYyDF55k4oU57WZDF/jGJt25y3vC+hXh8LO5cKQuMuUEfBSksxmWAJEQ3cz+u7cuF0dd4D3qa9BfQGPUYrdYNigwGI5VysnUMtdSnU5SNsDzQ0sCM11nIsTiGJ9ozybjFY8qORtbGBbTX7b6jPnDScsaTX9SUKAEJojRthWydHoBiR259QEDpof6lcC8o0IzOJQbuxCmP8DS20JR6BsosraeSNbN4kAmg9L5Pnz9Bsnm23nrsuP3iTZQ2NuMdPNapFZqQS2JZ5wVRrH4brkHR7I1j7ZdAWgMbRgK6VrJTXen7DUZ7r74OsxLWlS9aFL226mMeBL7x0Moz0Zq0DgqE85S8BVmMMWmHBNXZUljldt+iI/dPXW/J2WbpYB/Vc91+kzFyw/ECpGrsidyaz5ydFgvOvjd+NKamMJDiuZbWqa7/l6Vh1ghav8639+AQLAv//3N/x8SH3in9Dzd9Q71ul4kAiqsCQ52ZHzbtkNv64+a6HFnLyY0phz2RgOcSX8Tza1vY2hJAh7uegTigDvKpCz+B3hOlUxD83vgtk8L8yJoUJTK9y94okeiX9SeHpofU1ylqUXt/OT61DN3rZ3lx5IdynSGLdvZCzIFK5FO49YWxGQ45V6Y+Zx/bFpLVWCsUp7XZLQizb3gVErw3U7/J1FaCp9MecYOWho/RkgMV1OinBWiI5KAx83x6A0KZitu/ZP4PCP05ngs1AAuCv0N9KBvvgqlZJ6VNfWeQFA8+T6JV+nsesE6m7y/mBy8Xj5ddfyntQIPZ8Q3hL4MjE0b8Hstvh95kaMfJaGPrBtXcdwe5ueEWlPN/QhFTie0lfcxs0glCGXDUgepeUebkIMAliPiWj9G/yp5c9nln71/EX+/+nTC2p78MBmbQogAPKrTo2mknkcEgNPGkL0M2mt18gqwAR9U/ZtH982X/7IG7npPDmaybMO1SdBWbEE8uXRqih/DUgBeYHghAdBjaanF59HPFfyJHHotaLfgwaPNSWgcmRl5akn+MZiFO1JxHfFyjUg0behyuSLb0Cu5Hnc/fRRr01pdGU4CxhwE9p+C1OuyN1HO59RLZI9JJQVVHDTqaJJWndBHweOAyt7B577mEvGrhpzek5sK6egcyZ6EWh3/kxDHJzzFuOFhYIyRgBxFfBp8uoL0HuFPJVdGxLjlv3EmLA+y3WgfyTPMVTCRz72LFXIJiUvvgac3fTFO6X2+LB7hs95J8eg5f8QsfixJQpfVxNR9A+Frfpy4R2grQmlgpPbZ6iCMI8vAhEmnGH2XP/Jxk8ijR8n/ctnlxPxl/HIyrnyYlKI1tsyb5G8/RWN8x9tux0L38tkEsx/1D5a6oydbyIrLaQhp/3xkqV9mb+VYaeX+Lmqdq17U134FdsNJpq6mnsj4vr1KbWjXT8Tl41v3jVSwBElllKIUlKgMgCd2toqcaxDtI6P/M+/f8NrjBU+p6FXW5Zjk9Tor6vs3Q/VAWraWhfe/kVWNhNfmATVLVmJRUCAF+sSu4KBCPhahQffnK917CbBOsWIcMIYAHM287VdNV5/3gByNh7FVahOkMJIrgw7JrYOc2vzWwElU3wFgKlaqEeNAHN2jiU7pWZ1Frmt1wsNSBCpMb2mnBvFWcou6l+iTd+t4TNbwcxiUzwr1MEwblrveav1pKyNauOpg7HtqKqYg4+DBqnmHLK6mGRLERxg3T2oBMOzZQcgtxH6ImPuPZlMcmfsY/WvE3triyPKf28IswzbcOXzVrN8e0Pt+nJwuJkTs62yE9lNxwQAlPiv78boDCT3446+THCaZuz0VhsDSYGG/Y7AcA21a+OWzc6WWazurhdGq9on4Up1iD+pKgsIecatusxlAl6p6e41tRQxH816ooNzsrmOktjFJGtEaN8XWTd0wGnKTvgJRK/1pcBJ/NEDgokTEJf3E9s/yfIv/Tf1vgJjPiGF9OzqdVIOORnR0xC29m0TM+r8rIQ77M1yRkSHst39O1f32D3cGLAdHfQyab/iF7lcfdr8Vn0hy8vjwrdMBZ3fVfCS+V4C14KjtkOU5iATpfS3ghX/MQ2AteENaW16M/zyIPFDWhWJnZBEgPc43QDWM7noK5fMr1XX10AY76VHr9f6VP0YAz6f9cEfughoTvjQlHgg8B+9eZrewiQML3SOULZRGzlACepOFWRPcXA2uTJAaNs3HOItyN9nQJSVIKQznFztUu6Inkn4fq8Ds4nWQf8/P5+1RD59mEFUp9MEGPvRqYQy3gECgQW9BCqhzXiDcjGrh3Ea85jvsIeVxSIO5p18hom9mDYZGP/0p3/FebhTDnSDFxp5r0xzEAwy+qs8AY3IocCs6LhjJ41TMYSNs29HRXrQq7k/EWFLK0zI7l6iQPtbmK+w447z5QGCh1rFWeRE5iyt9hhO3OhWENkkH5lGmzCCONEBdHOU7cfhddRdNBHGnX+t1cBcIh/kW+hvwIkOeT4/IY/IfoQI4kqKPFBkMNtbP28/+9RpeeHInRPtBGLLcyuFzrYRXyuo9KuwDFyvOeGa67Oy10UwUNZWCabbVCIrsZ85FchOWp+snXxvgVoPbhcTlCKRzMyX7cqbEcq1VxoAMI+uKAEJP1wNyEDwInirTWkxy+kXnWYtgqKyApoIRzDrbH2o1zW4btht+RWvIvsbR9VViEyoX7HyFMrfnV5QdVvqe19c52w9n5FWsTCGht/Qn0hrhzn1fbbPTz4i1zBLlGXPX+cGq21DWJsw1UzDOm3k9esFr/cLfv16wev1ggFLl37//sB7XPD5ueDn5weQP2m8jt1bwB8AgWiGcYgfyjF5euMAAyq4nmYVXECsQwAwPI0wOpT0uAMLXyQ609s/TXX3d+bct+WgFa4Dun+9XzBeLy1P1ws+81pGk6tJ3dsniAfvgUkcZDe2nbSXlcmNITy0GMjlJuUm1FFUGTm24SgmAmZ/WZnSa3QXkbFh0G6QVHDjhsMcthlWMyR/lg51H3xe1RuIPJ6256KTY1Ze3//gTYn1s1nPJDfWoeGDPJYsUmeumXfi3ObHm9Fd+bQT3jwmPQMtcG2KZyh5am2X/0fS9LjiHQeHKrf0nzBRy1TyAmpEzx8zsER9EMiqk4QB2IrqhDnHArDXhOs14ZoTPtflYvCWdA5EA3QEDHoXeP1cEz6XW529JoNaA7Fy/qlRXPc6B/58iA/2eVs+2fBc3WMleip/WW+e16jz/BWZG7OI96y1Nt9dFR+08ZPiBxIYiqWLkXQ2OXfcQJR3muEjEo2TrCD5nPIDejVjN3p8DC9oip+yj2wTh0wgIH+Fb7zXKSG/fq1PFr9f9sGQMRB+/rOO2Zz00pAMorldkDil94D1JE8IAJf7TIkE4rruEfGbQw9u5LUmHRRLR4eKPLSmWgY/0EuUFfN5xOOnodOQQwQcES/FLsK5H/7Mw0UxobJSvnPPSQkCh+QvYL0Kyf13IEAmoaBLTn5l4XA6glJ3U6NzgzZtDQpQPoSzEDJgBYy4my8tmb5d3sUiBVfippvQtahNIOOs9HoUQVfCguliQ1XmG/LYd3KVxNkGwrox5JUXyQCYGjhcaNjSjdcszWmdXpL8OxEB+NJekldpMIR1AKxjpvrxl1J2hBUc37K36DGFftwa9oGHg+TjnPRfIqoj5MfiGzAqMMbr8V0I2Q0x3mIv974jdh67LRQJ9e95NH3tTE2RFB3QM22RVCIAGmsB5UX6LZS16koAnznhNQdck+BzTRh4gX68gBmYJBtJ1r1JU8PAfj4Tfq4Lfq6LAa0A3EvB7DUnTN5ostoW98N95xViU1rQN77ZU+zF7+EHtoPRD5YPsrzb3UbPOrLBIDg7Q/vaKu3d9Kq9Mn5dYEHkOLTfdEm1q5Epz4dLVSbTJqzOZ/kVvTtZbSfM35Q3Ob6QcXXST49IngLbJ6C9GdJnyfueMxcbogjg9PKaBDgRXr8G/Hq/4fUagMP2P7xeA+avAb/ma+ngWMe2+VMcW1Y2q8NvfOMCbpfbYMHxJIBTg8jF/At4UNCgapQ3YCVh2QEoV6OMly/Q0YbsF+8m4WY7h6yusnBekwD4+JDPvFac1lzOfu8/nkhOKoOpu268oj5SM5ZNb3yZYHUgAqp21CIykWLU8X2bpC0TPiGNYFgtZGyayMqO7ocCDDSjsA43R8NA2ZmIUStiinodw+BzwpJDEGOjkDFi2Mlr/peZ9wwmueqQg/8tvPtqee70hwO2AAAoG0SEKX/gPurHSFw2APkNRaTlmmGRJo3BrOnuzU+UCkdIDY0bNHTs+KFQm+WZicoSDl8HVfcVw6jO/AYQiMGH6MsDf7T4Wa+vEr3OOk8QQanNhzH0N+Q2drf3/Geyem1AQvMdTb/guhfFGyWWXGeD1tf9llxJ/Oo1J7zm+nTzNRCui+AzrvWpU/4SF4DEwgK85JOyPrSAAeoCrxd8Ptf6y/8uIriI4DPXSuwkggnrH7G5WgDW+iQxmLzfHJNxDOMX+pseDIFuwEswUjye0REcBveQl8j1RRsFbgvuKRzz8Zxd6/d9vsdcO1nEeuntCqVSOsdqIGq7Yujdin4YR1e+s9Oh3Nb+ByNl/d+MwaOV6pDbhRfkMn55yAoYHmR7xHHlOEIHEn9rtVazEFaMu75ZAdi/xa733gMHXLSWhEkAs9pGm11xxslm63/j0SNkn5gtM9db6lXWOoEpn3tv1ySVSql4J9uCMBm1irR+TYL5+2cdmg244qkm2YajHYHDnbbVoDGUSGTHDM6hdUQb7fb0y67h0PKOw2OOnd+egSbFBUXMLa/csEJLAGGFlrXxpIIqLawMryGH3S8lGc650QQDUI0r2cUGdkniEk1XkrPqLooN2MkLxvKSgbkcFyMIH3jouC8mQcZaQBdiLScqlMRywoqIP7nV0t5EF5cUCwaTKPovZ0sCbIyqv0Xub89V7Ze1tX7eesYNMebHVXehx9t0E9Z4cNQHx35oL49Y33y0BJ0frPY/1aSm8CZ5sEgOxA5c9ndwTOxnTsALYZ20f3Fdjp2dxB9FAJNhBriTwxA+14TP54LfPxd8PnYvxM/6TV8c4kCB153V8APRKWjSE/VZT8Gsu9jIzHGjk6Og1cWuyhsMySjztTJUFktMbc9XBkWy6es20mJn78/dj7oiMSch2Dna9fy63h/ZHRrcNKK2wsuce2tUFw3XjaJ9+ucsC9+FF+zHr173bd6YJse/CgYAIBDLEyK/UbkmjDHg57r4QyRjgVuyzZiAyGdJ26ZKAiFLzemZ1A3wOn5rjOWcVrCt2+jlyhKSfyAITsA658tn50Hx41XF0gsoWLXyCkFub+W6Fp5gkDCBSRTc7BER0LKXMPFakn7xrnlK1XN7nFfYOBr1PJZ8rzUs/jKjmyytHYMHDo4SfEfHtycKf6KVtkE9YbPlj4EPK8R4sSFzwIzmemehtniPj/TO3TCYW7MzAgpf6CpkmjFuYwM0d0w0LD0oH4tEdxRyxYiwYQEP8Z18P2QP1Lqd4xBukwzZuW31aL6mq0Vu1sh4Uofyh6mtmPU1liv9uPcgfz/dAvaD3cD4M/Mfo4Sw3iRbDBHnLcdvTQK42P/MwYB2Dg4nwMgZERC9FICOwWVkSgE4vnZqSMIPr8r+/lzw85kuzIA3f8E6uv+aHFqwGoqA7JvJCbovup517mbCm+wnM7ev3wG0A8FnBY51vxfp7/yWWiceWiOw0QAAIABJREFUb8MFnpa7uhvyTj26Ogy8xmstmBAOmMDxnX8jJvZrkXj4AN67TWxKJLsoeeI8MyeeIQHrbBjmJPh8LoetfsEY6+uddC0d//1zwc/PB+Y1AQFgvF8A17XezhyOgM/pLf2pg22AxHfAn9G5e00f+ibxd3IGJzhAqzKLaYZsUO1kgmAezRX5d5vmq9I9dtUBiEcHrcXzkxMBH02W2vCdbVKAlLtB8qWZblZjDOU3oGgx3jMiMAWhcdN+sAQQduQCejOWM3Z1zNq8+FMKEeIjlu2/Dk1pBYoDksfesT4GwGsMQLS/RMAOas3jwPXJylA3kN2Mocd4dpBsGhIZS6EvsWXRtJakiIDHX+SvkxkBmBBnLr96B9hrZxjCsnRY99LLPBAADHET/H7+GS6VIFAnMFn2vcPT1WGCNNSl391RUe4UWle6McDaujuDM5uhJ8mRz3VbWncNfO/5v08H52eL8xL/u2cGWQBI5krug/dtuBaUwme7uR7LsyyQyOrsNdf5pq9rwoUAP54/LUdwXQNer/V52bUQJ1q8nOACsgZaP9fFMbOTV2Z5E9nkt21zBQ2sDWdLG/wK7c2gOg7935Sfl+LzVxQ6sg4E714p786RzfbSdsovQon8pi9OZAp+aQBNQ2atyrr2iq9u6DSrDiF7oI1FeRM59F610U9SUzbpzRjrSKn3+wVEBJ+fD3w+F8zP9YBi16Eb9lR2GJegeJbGzskgD3AyhjFv10an8+1qubvSr8SBzseEKRdANNW+Xh8+LeSaICeMTJr8+d7JEX/EJxk8m683IABOYakDSs5ZuHFCfrr2c1DEP4+rlHNjT7qkDNXnyESLEgfwIULKxqvT48x0yDPoEpUyto9MXPVJ5qrioZAf7Uf83nBJ5H80q0KpaskvghcHMo5N5qPny4D7TuC78v5Z2KTBcbJy0jlxQT28IO3wBwEftGxgah24DPBrvAH4VQURAV4TCMbaAAIEA5CPwbHdq9uZofgzyDiWIknuaScMfI9iHt7Ebze8xXHtiuzBrF2gglmZw5K0iIFMsxgSHkJFJmw8qpbpG5ui865RML7EV62Ft7hdSzWZ1rxHs+3/m67UJ7DeuSkjSJhj5ysgkIoxw3VIYts+racus0vZiHrnHup50lQM4a7a5om14fbGu3pwBHmcdd4QEQ0Hsf7LRlEgWMATCC5YR2pNJLhwAjpMIKByzgFzDniNAa9rva4cGDedSpjCnACX2+j14XCDHwWx/pzZtYpEzDkhAQyEedlK0/3GqhtBCWWk2EOARatsfUXfCtoX6W9VjjTYhvijuEoKzDfyLIDpOMxRfhfO6jR/Vz2+rn/0osLlq2lHgL/+9QZEhJ+xjunEosOQFFDAgxBpFhCUwDK+iAzqXFU8jSMmlrsOUq5iG/tC8Z3IO9toIkhqqMmdCrLK/Sywes0VxgOwfrO+algB2/JvTi94CyIOBlv4cSNB+p/sGglclk6OGTR0pSCs0K6/Vl8+yNAjBr86ay34VUE1pVqGwO5idEyT+JQCP587KJG92Zpoe1hAvdfV9d0pKSyfY1FeG3duJ++uaUGs++uH46TaG953VWjzo4s48X1Ydm6B2enrZj3f+QETJFa4de7cGAhvfAEfVMe8mHNTxTbclim3HaQyf/2AhBUb9aiCwhAAmwMqu7+uakk7f3cEWztCvj4CjFwyEtIHA747VVcoisBWxBK9pit2rwqAtYRdiVA7rsr2KbdPHPm74+2Y7rBNV6Y0ctPqLVNHK7NnMbwJMAccbZmHpbvWZV6odLOWcxuESWwp6SY5ia/TVkUXXWzdNQleY3J8LG8uQQlXWJxck2BeBHYU12VgdhqQnbzhy4DyorFCHqYN7eQf0Sg3I+0vGwCjI3O67rK8PoJbmX0osbqq5t4WbVdl641czsAgWoFQ0vwiEdiqLAK058CWzjX3lboDdclroy/f0sn93DWvHW3LE9gcICKM1wteYwANWh/aYB51E3LAC7Tnw98X50XNPIQb+06VrGMAvzqvhq8kL972I5gsOEw3aHmLz2f19/q5HMAlAJo2jlKJII2X561P76DEHHwbhTp7WBPmdoO+AzL+1WM7+P4yv3a800v/VaKQNiYbzXiuawxFrcbBK21PJOgAcIIF2Tk0nvb4BNq1fzfRt/Q6Glvih1TL3k5jACddPud2fcBFIHwNK08by7M4PuI4OD1D8O5pz69StsOeMkqHHUMEADRAD/RPlHx1vafG6S5lZwg6tiE3kNpY5Zvm/FuFWJQrd/XFhqAYDAMvWrwip7790Kt7jf0akOaUKz+Zjn8wFT/8Vftf9r48ge5o3rX6ANDq2zwCIIT1zoRPGJkEgBPgstMJZAzmawHeaxC85oTXGDBw8mkGXh4MkMq/S8MM7LcA5mtOK0+OBoNic6oOgCig9YOWDcW3AtOBW98GNqV3frDh52+nzq9+25QDtwC2eCVkSohAJ5fW54pVN3bZ38ivV3Mi2OMLblBllwj+v//9D/x6v2HOa+2jOWH03JXbAmneU4e3MbhfrGb+k0l54QfjCQQ4AQYQfH4vfVvul/SfoVfXly/Zf1/XOl5KYxHcEm/lMqE+ffBCiIq90pAnvwD0MMqSG4J8R/mBlFWcsn9S4/a8kHpF8TIRqyfwfm+E/G5HXWneluYYko3PptQn+0BA7ESxndDdEJSQxxIqGG4Zpl6QxKZQHOtTagEVxdk2CvGuTQWprNukMR/DQNEkgjGB1Qd05WZ9wccOWg5P26lpiztySUI8Q4eEGad4YboaCx/KUL0GmXNKf2sqOW5c4m39Bl4fR9eJCNiqjf4ickdv+XntnK/X2azsuz4RCAyicrcrzvqG8ZWcHsO1odC8fS9kQ/Ubz1Pb2yeBeNlWUioR6qDZjTB+DV/VqZ1RRpYwBLgN2YwpO1m73cUvryzzBaT2CFlflz7PSYBjwnUNILKYuUEAcyCMQXAhwmus17hrRRa1fQIAmGAnzZCtvAqIvSYBufjYi0GsxexVgER5JQv9Dy9YN0KmtToQ4ifAjW/7qg7KK/I9LfHdSx8159GqLESxc+bJYm5rPbPiFm9tr8RR/Se6YYNhq7zRFns7MqofJW+7PUHME9mOjhsK5b7MTWOcrs8HLkT4/MxVgx+Ilg9PTYf6OoA2l63+OuuQ5nqNZZYVCjVjk4khBDulKs9nUzyn2JLcJDuBCpbP4OV4+FwXr2ALiIVQ1/zzNH4alr3cSnpPJiwlJkWmKpjK0hOZkeY0dIClX51p8hI5tqooHjSXh8+FVDpyE8Nt9H3J1hyg9l2Lboz3mXuXizGkqSXVHbTsylCXkwttkvdUpVweMwhvIbIklDafOkCdj+aIFBZuYRMBVNmCissZdATrbN8BQNel4eUSMycB5eHhTGl1IMuJQPZLpX90uCxmxBoOyCF230parF6VU4uo0qF0vrRplX+kQ8qz8KlzXI0F0BfVR/u4OGn0SEuQOsBsNHfdK+bYG9zSKagPhh2vajSx6Ye0yw4UTPvyMb8lYZzpHS+n46W3YsCE2/C2DACkfruCtTcIbY4K1b1CF9Dv+dNXcllqyI5XI+TptQ/w0ES4xA6oFuACsnOFEoyB8EGE14D12XBwDzRcd72NEUA77XquTZ/E9y72e/Klr+kc7SI1lI+tzfTy0SnhbvxUHjeFn9rUm1Yep04xdrLfVoAomPomCiAuhPlVdKNhQGXdx7l8oYIXTuXIrG/8zz9RXuR3AhBMQLTQmCATWv3L0wu+ZGcX/rCtEK43vuqOX2+YwtgAP+DL7wkThovxNVBhwDzJyJfpLYTiag2ZVfbeHwj2r/R9ClrNvigJrQ5CVGQPRD0LZS0oIIvWg7ZoMTqa5NiyRwmIs6nn2rCq66Y5ZQzV/CahfgRd/zrv5+xpzcXGs1C8zErmhbmAqWR7AGJcaxLeys5OEWj/S0RO2MmKwhNFvNVZzvS7ZpSfD041HkQc0YmiOKJhed48hXTGApUf2z7F5OW+cXq+etAtcjpiFUI4hZ8DR7P6omhEDai5FTMdFgQihqcSc8hZqKuyEWb3fY45xPqEPMGi21o+6ZrnuI08INdlU7YtBxKfBwDtqmwODXoSZxvY6XiMDUTmb8FFtG/hzM9cvyP19+ISKg9PWJZy0ryjsxb9mk9hAcshg78510PsQAKYg+tOGLSALOL6HC1OhNdAuCZamIrb5SxqY5+7pRhjS/wlIV8GSOdcQwpCp6UfkqbPCiqu95qx6VLUUdHtg0C76/tV2XwLVRd1A2ejQ8pzdiPqus0zBzq5bfZlSz8wsD9erm0+T3jM1TBN5BVa5pTEs7bd2aeyrHdTQczvDnzqKqNV0NfkD/TEhjPb+VRAXUfiIfmFwiUZdXn+rz6u8R1dvx+FKHTCL1WX7ZokIQWrPMHcyCzLpVtcNb8dW/Pj9gYWEHs1juEztCfWMwMm1pGeL9OZMRCmwBj2D2si/8HX36bkCLbSdUQAh0SOqVxZ9nJjKH2m16DIrskvSNQKG0u4SftcmTNXCGNWW7uMUwN4fNYRSZihj4H/rsSw3ZALK7HRpUDFmdaGj8Odo9W6dfplwNJ1vI/lK1HOcNwYz47zVlTK/HSVbJXskcz6bLT5khU0OZKv9bcA1taTs75EJQuq5IzskCHJixpRiDG8Ul7EbD94tQO+xI24PDZtu/QnWPWWptjGB9zdFkm9FL/DQIcmgCzLzgkAYwLwV7sI1srqQIQL1xuXSWxlZWqdYyOA9aYGDMASf8HLNjhz2AKvFBF7WgL3evTYpzvflotvZrmt51Hlg7HvnvQ6gcjC3W1GyyboMSuVVocZEZYtEP/4eg+YFwNdXPHTEwjkdBt0XxicN0+X3658lueDW1AM5zHIJjHTe6Lo5MvFCn14wTcMNvx+E0+EuPQmG7dDUoBPDpD+w7bqrY/57FAI9vomjYs7KhninFyOrPq0fQ3+UJxNpZ7bjYKXRiRPPnl+d47XOdIgRAC7p+K80toh/7O827OlfxuYoO+W2BqFEW9W15sIcAcEPGiRsyTq0Ph6leEtvR3WJb1b299t8rdrAaXx1FD5QbA+goBj8BdHSPtwUltnMg6lYskgkZjLoMvwY+ccSi7GPxT4iDX0K7a6+hGhmIDyHGslzRwxb55aeT3kbsq1fQ6YuL0YE9cNn3aH+08IAAN5rvlYtqhZzjGJM8NEs3lIPXUyLcfm1VnST/duqgOEqCPvWGQ6tntI8JwvqtOaNGiH1JWpGhJqaezavv1jUlndcBDmhkwEsvI7K66r8zwJa4Mzr8gCrk3IyCEHxCs7zMdAhDFR20GIJ754ffdA1oAt88xg9qKpQ6YxyTqvXZ+zcGeZb2waiIYme6H+zYdHYAWb0RAfBIJ9g469b0/sxrIpZhd2NqztBOQjFP3RTf1wce+9Ox2gMvB6v8z3zwnIK+R6rjYhzCuuL/4RSPSFT/Ic+rUb73xjz0Dv6xoZkQ1P6iT3/BXQzvqzp+5YUDhwMJYEBTjfJu/Pin9KxLuKX82h0Xo7E2xAhem5/7DF3yIXx1wHZvvGtb5WKFavXYjRseossuwMT8eAef627AfWsvHYF9+R7lJ7rqerW0MsuqZUysEU8lwj/MV0yxsX6OdrK8ul35uCJ+cNaeYpZmzlWsHdAnYCvjxl+eykGdq1eSYvNNU2eueF6QrdmIYHWxVS0pI9dQEaKXPkwslqexlVDyzKEqHgPh0QE5gDWdcz0i6+kQJLgTNkq5D0dZFjY+Nfb550SZ24sxEAdbVzspN246jz5bqA6Hy7lEMC1M8/iMN0IRZaGeI8PLEBKEO6KSwNpFdp/rfHSp0JJF843OgsbDMnp7RboXWAzDec+UPZOEku/EomUI7UI/u8tZxXjrhW6MZAgIkwcZ10gNxuALIODIhcim+bfCwSEekRSfKW1v+WDUkUJ3o7ivqzGXN/Q7xSC44J9CGK0v3c3DGVjWEbq65T+ScA4s7DV7sWQmKlvQGAr8GfMOX5nAs8XbjOG72utVlXaHS+yO7v/I8UuAFMtCexaTD2N13uyG3XjWUu7uYj2Z51eaqQ+5xAwEP8wqWh38r5nRCdVr+/XVnX0IK2F1l3SQywK+9CCMhVqkf8tpDFrsNTZwIjqQaAOc8cumC2dOUeAUp2+gFROgcLwK83vLFsmGoSHgpZ73bAo9NYciOH4b5tEvOJ0t/UjHta78TQ+9QgWO2k1HwrRuClx3qd43sS95jmQwnItTAwQc0DeaqCHNw4u89m1j7vrVtVW2qeH1wPVb5Y7UthckjKlfdMBXmTDErlMI2POU2v2ql209cqp6aW1bqqhpMzO15/3WkTeVFJm0fg/SC90UJuZ8KMuu7HK1uCZKOVl52yElQwq+2J/u9XJoQN8m2e7EKTX0T74BN2WElGweaZRwXjzIuZiywkqreO9InXa7RLvq0z/MsUjjGUV8kiWbSObpVnEQKE+SEGtQAEw7HhwgGc/MmKLIHMz1QQvW5KHH1d3fKLCkSINv8P+r6NUfb+stG/pKutLDUIoGAUSf5msc/oHvIbY9huILJyxsa60dIRM8VjDSgT6vqKyEep8b0Ba1UWET6/16lKciqFrMzv4ivjWJQOdaOVzWYTstqsfJ50I3CzEYUd+96s7+wNApCTc3Vvbq6fgUBpkBpj4sYnjDfFDnXNCGvb82qf8PZd+bfx+0RJs4foBF1K/iGzN4A24CaIxrsKyMGjtLdxm88uwDJubNk+JjdT5b956VkdtSd6N6bVtX1XvilR5ONAyw83Pqn7p/s4xdM72rsYSqdvRTyKPzgYx1vjtcl83MEKFL9Lh7o7kmW84mDlR9EdcYuOTw4mqVOwtV3zQk+n0kr4KIyW5zt9I9ZftStP9JP5IQA7Du/JiDhVfdrMk9SA338+/R0Z3NGDlqY9o/owAy7rVmdVbogAcazyzlFGU+DeV7mdmt7vaty8Dz/wsh+o1J70vXmSGuB6orgBVrv07cxRC7T/oXRQeNSfZOoIoKvrAADwGoA0YbwGDJow5YmGz7yvYDq1+5jPh4O7oa/BGZQma0vyKQp+xlP1abE/gpEeE/ij8bsJXP4nzcmGeA6yhDU1VAqaIajrrOiLegNRGnziQLhcUILoYMtZsOJMQx2Gt/rqMv2DBDa9MmV2Qk9DjyHm2v82RNwdXkFAaZRs/NTh+gbyaJZ3z2075xQbKeLoxr/De4iloE1fg2eEylYKaHcphmsRj6f6oBu/uslOGFrlLZ8y/TJ2tqkJ8+dky2Bwuaw25Avnp3qRmEzQz6U3kIk9eQRXcexHVVkuTiT3o0vEK6V+fiPHcbzJZ6zc/bMhAOCNvSZ1tnqc39Z8MPi5A5C5O0VOdwyJ7G4In6r9qXqC688feIPbh2mCMh7ablf37zgkefPAtIkQSZbZeIMPoC1ITP6AzTpOb+nBigZY8a0TQM+HnvwFL39CgZwfu/65Y7X09AJzVScQS0sFivCdvYErdL5hKTi1NSaIqA9Q27OK24cbx5mvR5ljDDVaFnd9kD/eh3W43PUlmrllr5bLyxtIlxyMF67PD3PYQexSY01aW+Mdfpqtw3TcvXBYXX5Q6JvsO2gEAGbnKTFpYTydmlbSBOUNrtqp/RdOA/ZrjXfrJC03OaSCITKUkDf+rZxzBgG829aUjJx5ml9nr+MTFn7oGa87hxPDjzwOuA4LuDN3U+Hiim3zmbIrmhpewmHmWyVwjSmYKiUgFnR3DhOll2opI2Dv07NVst6qqAoEer6MzsoOxPoqYFOyj3WpGdLXjAeXODkOc1W0crHdTtZqTxfNFMuJacw3K4p7utF6BD1tlgt0lLtBJXD92PBfOwRm3SMgLmL0hKQMDuZ5F8QjfMbX+e3CBpdDHIoacPj+LZdlU9gLvU0NP4hsp5pKnW2/vX3K4oZQx85TTQ4kzOvOkIt8eDlx4Q4Vr2awkWROB8WUIu/pWSVjyFdIHelSIOtWMKw38uTqhdhmV4mPGRVAKSuzK2yHt7RKKIDXz+DwOKzIP4knYcwYyq3zJlo3CrKJEW6tbWe/INVXg4u3RaOOJSP8xFQ8SU92sIfOVhu3/iwBLdEM5MycDAGvYC6VzBV637Kq3yG/hq9Eob/q2pPwMKsQQomKAkaC1RV045Y6fGBKj+NzLFQJcjJeO1SH5zAAJZzjbiW7o/elnH4TJ/vuDfZKXtfMrIpZlIOKSRuNXGCgEZxKbGWX4fLR/YnGP9TycU6S6YCkB7MPjjjtWmBOj6Nm/HVF8r3ELrn+RtuWHF5D1OpHir7UXiwigIxzbrqa+Yb8xBT6Q6W4XJVhZiLB7QZg6R0h2EPI5qxd9fE1SxN6ZlNueQDRy2eGAcVZFlyTjB3Iy6leWGQ1yr9bRxmXsnsC9XdzKmWZk70MO5Lk8NZhPNXxZvGTi2xXnUdY4eenI/JOjTp6+ZBmNzxtaEgGs9jcf9R4Yw/uY1Fi8VPpEjSb+duAZ4nvB4D1kcjmAyTp5/7+huNN0+fkKk0WL3me8a9FJfZaHqrI/IwzGUrP7/a22M3IXPAPlO6J7blHSEdHjr6Mt2e5VIhDBBhj8KYm7uW0PD5aNfpRctw78Siy1PEa7rEFkgcGP7dBL+Sv5A8mJSCH9n5VqRL7aaMrn5uYRIBzffFrAvGZwHIsFwBOv/nOGNphwj0QukOZ/e0GY9eUJ6MvUG+pfTwpUvXpwleQ4Da8wJVTW9kIjA/bCOO3g5R01IXO0au8uPOFy4s//1928zV2mUOGEHmzF9+Oz+45wGBdDQVNkfHoNn0PEujs/ECT4nTxDjlHZLf0rYRb+nf5hzqu6vqZnFfoduPYOrLlVkQBzaLRDclsrCAJxx1fWSCjMoQ7t/Pngv8bLj1m6NrrKIbuNEDBy1endtHWUbp5N8IPPbaCzGfkqNNiTf1c2EsBn+8/fdW6zRv6vtTG2JbSbpTDcUG5Qb6B7rfaAbM224dUtbfWYj3+rumez9zZW16h71aDs75o+BsBrxzFOvlzuSU5ke3MRMEWAPspyvUxZ9b+BJKPcfYXcv9lwu5tnrtVVmiB58RPfQsuqO9f42zLe4cnIPZxqvYz3hBftP5OAniNN8y5Njhl9yL7xKOMuFXPdCTWbTr1tJgkjIjp7rX6k6QP6Aifnw/Ipq8pYSgTYF4cXhIcz76TtyGvufpjPXBsd9V3w3FD/9FDh7Z6JkZt9Vznns6jpDb5b1P6R5KFFjwEmJMHwkdoxsE7A1r9WXrvymHVI43HkBi9tJsC9Skxi1lqoqz8JHhzh4PlJ94NFVmhJzONAH4JUReXFMzeEcqOlaxysHzOMbuyU+4UgFTZXCWkvQQoFJBIeWSZ2dMTQ9CqWPN0WVsxtsXd2bXRlpoo38JUGn58Ol4b2S0WwzlYjEVD8SySPryFIBVCk+filJlo0S/k/ttO8Djjkp/IqoeMOaYtqwO6ciqGTH66jTfhaKWyEuhbdZMOC6xMMlDZz4TlYZ4v6UMb6I7Kny9evlRXlDre7G1d5O/kc/0JacmCAYDsxn8IEtCNX+adgXbiHoT6kg1vCSuhWrf2VsDVU/8h8xOLIQPIOFhr4cZrLnHX/Ih1qbH7oSyFvwZev3TLX6OmxJPadad1NGGMl365UEZlAMGca7eTjp7YMK18aE+fwphm9g1kZ0NoeanaILdtr71BF5uYVZSlRlZar4u9DyHQIMAxYCDAxcvQ86Kgnn3b6a42f3o9HandTmduJetdHv98mR80EJcB0qH+QvZu+c2GZ0vFMrenDKTbR3dJ8Wcus5vAVE39yXb+Iq8KZMMKVRjY5J1Du+5LOJWfVD85r20i6FCiAkxvg9B+ENQzC70D86bKO7sOBrQ8BQLN/UN3tmlTNb4Sx943HxtxyklxpeuOFdKrblLRleidRScJXnZDrDKzJcYt90Qcbk0NECNQGYi2Qo6YATv2xRla2UxRgbmAr9O4ufGgOG9io3xHBeTpRq0JNUwgT1X9dIvLM2XoAAn6IpEoZHhbjI4aaZtvuQx4yf2WrQMhlgzwsFIptIdu+EAF51E/UxV1xgTrcPyOIy+B1mMTkIQlTMVR+mFy7s8etjDmOGhegswmVluWCrjeikxClYOchMZwhXJ8z7ais/eJb28yjzzQHZMU/vhi+25F/vkZrxgGangn2PS6velkhHIA0pMx9Nl35aPeZSSE4S8AsJzhC4GmiyknABwA5D50IB91UA5IjvhbCCeO0mpHbGF4A3E8g3zTK+qqHZGVlQHr8fyAxsUSIOAkwHkBDX4QZxs5eXeevBGJiW5A3YM5fYJic5n+dYBr09+8G5dT7Wyca/v1iDDHK3kf6+gEkom2y1PpyXGyoXwzfgf6335o4eQGAbrNXh1CCBnuvggVe4MVslgBSaBd3p21bAN7qEAIISmPtm0Wr1B1q0wxzMyBB74cycFHNmN5a/7OmIv3gzTRfZ0Qx5uK1Thk6Y9z+uWMVAM77SEVWgL5/96rz60g7pxYDjFx1OPb5wCINoaIGsDaSRYxeMLo5Mw7G0AQPogMpsR4Ot+3rn0pWvlAWude+j5NgzYQpkJ5s74askmydtTiCKIyt/0Gqrhb1c9ZeIb0LED5JhH4Yl5MlDoBABI0b+ETl1Ro5POritVgmmoTwpChoyEdcrIf5g8TUaGVbQHB8TVMiGNNmpr6v4ruRhPq/ENj+/qKEAUrWigqY+R4RdEh0ZW7xqqbjQnDHy/D4S1Em4x//6pfZSqUs21bDb45p6D3ufBhfny1QOemwXLcDvsliBsYiQDeL1RbMuRhmwBIPqsL6wu+wkdY2CvdiTAmTNgTEBv8DO27Wu5535eqe6DtfohE4iUb+Nh/4Po8rdjqenSYt3ki2qg+pBmO/fWTJO2zzzyCstN4oY1H7YArlAnEYNGQXVZ+8wQ8ZnCTzGmm2o7GaXz1mkrZQEflJa/KUmFXgawAqLB2clwKDF4OACjY+XWuQTaU2dkelChp3LYkCe3sI/mtAAAgAElEQVQ4sG2hR/S987unE12Fu7+zjxtatG0z1gi8Usr19R+0T+WqccCB4M7xthX6IruLbB+3cUL9rSKmjFoREcZwdgcRkCYQn0epRKqXvEnoZKhzotIbp5Rt/o56AlJ3j6QNe4+6I2Mw5EV93U5RWBfOnDM+NiHtdOX1ARTTanqnr14HkpP0/Ia2yFfaM5jMmWwuCJWxlm2Z6Aq1PEQXcDeSrUO+rdH9dg7kAY55lr4Afl/RhEi33DL7/XSHc6CV6HyPaKD27SmJNP7obNYkgNf7DXTR2lPF4Rg0lzEjWv6VANaqJaxX8sTHkD1u/x9PX4yj4AYBB0CQH3gAGJRNoT2/iwN+xG8DgjfXpSoAxMipjCohgj6hp3PPCH1T/XuQnQGv/1GCsThr18C39x/y9F9I77Ur1EY3dDesipD9RTCkxk8k8pioNQhA1mYoI1nFXDceZgKg46GHDBEhi4wMl62pxbOkfSEtvwO+rvnU5hYAy6oQQYO2pG69vwfj4SUphPFwPEn9blNcbjNvoAAAex0f+iGVS+cL1WV7/JfWIv2jX0tP0Vt1UnAqMxBBIwLjWV7RGCyH66FhrRRO+ZSpR8TurQHBbMcwDjajnkm6A19ykWmuVajcKQ9OEfQ9mms9yoyU78BZNFF7jFK8Z8hdVBwPaDbBS6DsWBaxttbjeQlxQ5gfFKPZp8n5BcHedMf0+UmyuX9Yxw9zU8Uoeae8KbgY1osTRpaNT88PpGlY9zELqsf7NLTtxy3w33/acT0BtOnmUxYKvv9TVOrqbk5SiUatlzdEPjsV1yau17/eQJNgKMBlEHutL5zRJKDX6u/ncrsREPVjEgDepJmvVpbDsG6+OLYTevXnuV6GTLtxlNVML5PyGM9HTMlb3ptpfRIdcEwPCGivHoh68CtdZki1nNnilLdZjd2HF1CXe2K6/u5ZtDL6RpHcAFGlkYlRvnMz/rLanMi/V5MWMC7nrhoD5IyxEzgFNh6ZekeahcLFsKKdgWZgLCMpd6ez8J4/5UmyynpWKVfydivPrcA9d5QyObtXaf1xMpEAuXJeg2wVvWO0CkSJ6kjjZeVSXf8ZW4RghIvwyatJplxUJ+jgQbEcOOoMguGVbDwdG7jiMweOdV6lsE4MGgkBca1rvMaA6yIdJA/MjHHf76TxJwNIJvvdK2V7JhzQA2prNRxO4LuPPdfVKnlZrxrif6Mwp/tAWKtwtFogLiin00orCt/spXzZlp52x/qlMuK7RmAPD4KFyQ1TGCssoxYHgXVUXonrfCW2crhSsUEpJfrhtya0zgm3nW9zxZ8nV3gLrFLzUu3YYCegD/mA02OFn1y+bJt63n7ZnOclNSCWmM6QoNEMr3L+mLhNE4gI+FpnBL1fY6nhQBhzOfILLpi4NkcBEfz8XEpL58vHIYY2dkLiQch9Cs+MXRVyP7wxD3m1suhtXpjQz9M2ICgJ5QaTujJZh5I5r30AiKAFnUEBi/nciYUzvyFN2WadQWhTNqXa/dT/0we3lJ9dI0nC8xtGzwSd2N2MN7gxS7936fRS8h0ArDcMxZownPJeBsBWw8jtbnb58jvEZm3doNXXfrPjplyFcl0E2R1gLvAMZr0BqxxFp1RSq8DNKMtqb0vOOcXNkESnntsg+2+qT4AWr1wUtDZmO2HTM6AHsXJfBEobFmGw2Ev5b7BbZc5sTNQGdAHjfiBCDyhchyps+NcKx4D3y8AIAcB1AdCY8JoIFyDM6VZDg+6FKN86w+kQbCRYu2/VwEUOKRJXEpRksI8jROscus1orVMgLWsYJXsRV5GM2WLjFTyn+gS62UjkO87DxlN0tsXFs5pR7zxfBgH782fVEpB0Ymza97OLpUh0ip23c+H8raPulLu/tU26qo9urhrdfJoG+t2IT5qvYXvy+1yzLRjl24+7/D09BGA/dq1/2DoNSB7L6bkUIJ9R6j5fG/eGmdsUoGZPuMUPISK8EGG8B+gbkRewa1o2iy6Cn8/l3jw570d+3hoQ530+1ezHfWMQtQcjZ4oW02rFDDOS+o5vNwg9T70uySb+zF/pTRq/UiKNNw/XXv/C6QGpQfHppf3GQd70bwtiU4yt1d60UQ6yzfTy/Vqopb9J3XwMHeAwEV1liXUlE/5QQJTSaUNnbChOUhzeTWdEqnDPJLIDDALQpt44tUbzLnbk6IjyADQNHur3D3f5ThqPNJdEkEBsslZdo754evzJ+2CpCM3BWIUmKxhwC12ZqcouRV6UFtqRLrISO8YL3q8BOOxzhwMRXmM5hgky0Gh0XENeKvNo5P4BQFrY8hOC7b+1wrdeGsesZkDITy7UYfT1PW95irbTdDAEDQ2FHHQkKlazp5eHSG+iOfmWR38rMASAVIei46FXglJud3LGMe3YP6W/6aO/au5xWzeGaiNzX9MBsi+ofkf4i+Z6K7RvUY3JDb2HPJZV787mpOzBvnesTV9DQg9eA8ZYD2ZD7ZqwKz+YzB8O4X36rxHW9K1KtHsl/haBxMkBppSyAGALRLsyxciH+/G87Bs8Ui5rebOHOxzQPJ4FULvj9/9uGstZZ/Qj2TyYrEDjPViB0J7+MuDKDnhr0A342itiMRi2DlaeGDnfscdkKiLfi3AHQh5MSHa22yqobIa/4B0s2m9aeTqYBK5cqktoB4k7MOCiCTMraT7chLgGqGvU7fRGcKEhccKhn+ReuQSjAYA7C1imj1J+0x/qZtfJnMaYre9zv8ZyAjre2jcKqxgIyFt/PSDSnicmBIBye0JDxlKGDdPYeDwLAPo1Zem7E18k0h27x8RPK1G2euSKCLxxxNjTOjIW6gOVkTgmiXJ81iE1kB6P+DXtwGfunsOQGHTcA4oNsKDwR59NkCgUnQmoenxbu5geGEC65yneA9qOweBrHNOVmvciG4XwzX2zYiV21dGxSztv1grnQW/o3TbY0+hMSrjxIO65XZlvm8RQunk0UhhRCO3krxrPmJ7EbYeQLWTGgjEK3OMLAX8tEPt6DRjvsewdP9AvvXa2yfNF6W/rE/2NdEdsCMX8cCZ2oXGgv02bktuVX/uNbXsHJnZMHVc7TykRdCFaXXYMH8w2166/go4Yx+TEXl/ftf+kQg8SXNpZuE35h4JSj99K3kH1diD8er8AEGFeEz4/E0TXhA87vkXIyHmSB2HUVyrclhh6FKIYDW4As850lSZol1HMU6yTyjOPwQ7c+rDTpGMs4j3pllasHU4B8gAf0qv8tqOKFKyFxih4xfeCJuNQwxWYpgKZ3eY8A1UxtwNL5Og42WjmtoZ9LnqoyxSur0SwwmFpHenCfJRXV2pviF/FJt7Q8eLEnsIPx5Pck9gqmXtE+6RtRBegJ9xuhRadLFF1OJ5jshe3WtfzNv09KqvLwhkC2hlbGQ2IbsogkLGmxX24Ci0DQwKCQ3yCyIQJi8+2pp2N8L46+wuNsXMyL+MlJ825U7oWuc4m+HwwpfTJ+0vl2cIgCnCTJGEcyd/2FqKf6+4uuba3hb1pcmNX2/876zImcFsHtiV2Y3hxcSZmqMb699Wjx8vjt2sz+rla5AFocLoXdJxtBPG/agAAEAmQxlJDvJSYjGl7KIqX0/yaZi9k9/14VE58A7bt9TGtid6tr/yWQdpel1zh78jjphME+cTD1mSU8fH1mXbw6348/D3BAsGfuR7l8EGXX7gnn5uLR18Z+9QI1I2MnUJH7sRz1GkPyEjvIMJ64nuvpz98cQNEYRXAv85WI+9DAryRFiPgYlutda9wqQseYAg9NSjrH+bCpYckTbta634W7+0qx+njy1Knzr7dLIqJYCtg8s/3b50tqLzi6ilh7kPuQMM7d5wmbSpyMa6/DuL23pWW9GSn6/jFAeuVvq7SkytwSCjnmQ6w1+7cTwR9Hb/a4TwdKqY/1tLj5FPD1/mLBHMSfC4C4vgyosmhSm43pMqsdBldPJN4e2Tlrf0xuYdogL1yOHKEpK8QrU9QMB3k3/6hkQFh4DFcmU7bIf9JAXS1VvoY2xU7gEi2eu27mPhbpzfwIUFBjh1jqt9Y+mi9sRXn2jvLD4TLaSfocyOcyk6j/X0wo0SVKermwIieDHM2C7ebxiLpltfezudbzo47R1VOMGnSU/jQ13S1d4OC+aK2iMiv2eVNDNrqZNtkw3QWBWpzMhdi8LxdOjfWiZb6JP5NRHxKQeWzFVoxkKldDTXIX2wRnZP7I1QLttzqVBYwX2/skNe6Qu4oQJJ5gjKudGnWZulrAl/F5CYfwbfuwwP8uFSsUx5+W6eQLx2tJCoaxhaaP4QUpFdn5TE2V9wOdMVE1BLY0DsUe5MrF/ArOqcLCyjMa8LAASQnE3NQ8JJ10v8CWFUv08sgZul3FVAGH+0Iox2GtIoNsZxVyyDI8VDYZDc0t6tdh/Z7hg/55wndCtrTNtMT43bFgolTEXYMMpHrIoKeR7rEnQ/xBgJEPv8vfwO4CMpqex9b1LUuoNOcFs0JNADmRJi8PIHc/zkvmLz717+9x5Ga69AGO3gB+Mdp5XLdRj5MfiVVTH9943d18j00YOT9WLAOAiTJUNTG0deWEoDsskS2CdJnUVPBjXoZkDOCXVHbIpbQKG++Q96M6NkSQxo+0KnVpQRxm8SQeb/BLPK+Jr9Ov9ALlzn7+/Qndf7L6TkEwac4paEuoAs1bhQQ4CVzTfw4lZ8QIonbrN3wVhKNj9uA0c7/UpIwAbVLHNFJpdcbNJ0lltVkv8qCYbi4E56N3Q8z3BnML5Lyn5r0RQ6rdi3J3OdukvMwUCrly2y72NzMQ9bxjf6+vIF0gC/zo+33INbbtMrPrv3mht7b+ZVd9m5uKoh9nvKE1PTWTovDJQAaNvtE/J1nmvD7N8EYvMpFNi5+vvJOco9TqvFH918hhGrT3PyCOKQePHRmZgc8reQAgJnOnWyotMJbcG/LRuKhnMsb65zsHlKXG+F8bLtxIR6MJwDp5824c87FbeEMQEF34a5X7euoq+EAJcCck08Zkcmjfsoy726Y5ExE67kNur2R0UeT9cGDOdcRZcFYAL+yA36wMjl3z1Fl6CJfTtnRZYkoyQpW+phUiJJB7pOME8g5oQB+/avGu7qfsmKvQyFK7BoUiuogMwg7CLc3mDyhGg2Ea26JjzVDGWOyssZm9E7EZfojVvmmiApGNkKZrppOJLoRU4RgvMkfBghSDsvXu6KuhlXywonZqNhmV379un2lmpLW3z5Y34GJL8BGIn/idfd8K/xuVervpEAUATku/td7be6cBHB91kMrTILrimfXLd6o0msY3ZqqDUuFjOojuXJ5rZ1HSvzwBIAXAF0TrjkBx+qfnPuOBHDpl76YLsfniY6JnTIA6I1qM6FJPMxe5bKcw/5TAVhbzo2EN4Bil3bsFKHxvMN3wiRj5oHiBsUGsphzc+aarK0O5z6cunBnDHK+Nc/X6oD2NFpy35xNfSM/p/IpiYiGLrGc2hdOzR+ovohpdbb1jc4hLxuM7qxKUXXiGDICmt5BRD55SgHA3lIQG/a1gJuNr6MPABoPqbxnt9us1AU7YKNCubz7MIH3Z7JGU9d8/ABK87vzYFuPvEnZO1RKh+y2ZfbgVlrmRJBAqZDAQmo16IJWlzZ2DK5NVvga8K+/fsEYa7Xzc034/BAAvOCiy+JMMRLwc0z2k/920aO1TOjqpPWJxzntbCQiOcd/VURYR2VJzJCueoAbuw62SPkkzmh0lbUj0xDCSXuFR1couj4iXK/5tzDBS7WB5CgWrCnil9D4CQ+lYXyTTJUj8pI+ax0CP7nEDVcZZ56cvfRZqEZNGO0M6nKyAkzFNsnRaCbKIn/E3fCSJkbTj6L91/WK+ZW5QuObAOwJZjG/xolWSAn1r763OLVNnUOWnyKM4vGaxsBpHfm79kP9pSe34SXbFA8ecutnN5h9xTkhLEf4er/h168XwAC4Ph/4z78/8PP7WjYpfYVJogXLecVt09/x09XAdEexJttllUZaefOyuEgck0Mmxtq0OCfQnPx2icEUUZGEh4EpD9MzWu3KqRqX7FyoF03f5BcATZt6XtxSV2fj9qQrWztvhvrA1MazUS7hAXg3XplOopkeYsIRh9mEEjAwijyt2qQuztsDtW/Sz2An2Zi550jv47N67d3lXgbeup1G7TYVgVo+TFgSQuuw5iVjbLoYGAAQTGIwG3dvxcGRZR1Aa7tBAeRWb6SM+WE0fndL515hnFPyZfLEeKelZUgGIw2QxxFBwLKTOn3JaMN6ShTAZEJRu68IbSgLIAD3xwSTZzeNrbkj56gQ+HirF/zrrzf8+uvNirEeET4fUAAW6jtRUwxQOhxVNOtuZhtIaNk5inAxSEFYMcFiZAnU2BJRCcj3LiC2s5jF0KgMlwMGbkpIx9DWXf0fJYFxdNXsDFpfulM+yDCTO0s1SIdHpa6eDbjdTa2BW9tmWpGO3YMV3+tslZGUV/a0QF7osDTpJKNHrI632r4aY/kOcdI37wa8WzfIIMOBKn9o/3FNZ+nNjsfzx9aDTEbqYpYaFH4gabqezWEeifLjYF2Cp6plB8/547RpDpsCshzhLUguT7HKpsFavzUYCPB6LXnDX7/g+qwv+NEHAMdsDorHwGEh2jadZbOxRZsehDvScZ1nPnHgNeDjDssfHItEEwFwAgKE8Kg51yknxIwQAsCkMK4mAs1Ae/FN2eYbsRkDAl2VVXvkZa0biJiP8nAnxG9FGeOiw03S5tT89B8f0DBJsmmB7qMC2q7Zy+2aZozlaOpXx+fptdPlx4+sVu+dMw8hI/Vr0SU/YMnhro21uGSrLKJ0ki8OsONBfIv7mAS6a6B+fos886kF5KxtUE+MbAoNwOXz1zFcL+0wzbWh5prSaV9HpNwNmu8QofkL8PV7Jyc7lf1ekdDXbjnjIPh0AwLrYiRWet7ZJ4X+wkVsE1UmKk/6UxTd3euM/qZ6ud7IosSmISCM1zrf0IOxeYG+ca57JeN1z96T9QSn1GKUWAmC61ZZYevk5+bmvZaf2tBsOgruPm3mUHWNgrjH8JoTWWcUA3+cJ0vRB4OijNw12KkKgT0INB7dPpzS1BdDvluGTPY/hIFohr+ZGsh0SfhBm8KFe8pKbd/ndVE43coAl8f0IOvBbALWfbtfZdaiN2Uf4oJj/e9LUbzrsVLLTJpXT4kIJq1TdSbZTmYXNvuwj8k3PSyv+tvUvB0bkXHeIDs/hqAWhmX/yRtsEVaI35S3hAQgpxwss1n78EcrlP9H02F2/q5wPq0cbAoUv2BsUL5Rm8ihHKWhc6dqDtX22PaRX3iaDn3hzoPK4gKYcM4Gju9s/Q2np/QMEX1Dk+DtjaiMkl4xIEAHiOSLlTgQXq8B7/cL8PUCxBWP9Pv3BUh8HAiJsxBjlaUECqDXpWt05cIjFYQKAdx1mNcPSv68p7uoEAtjbi8LMWUM4F/zoOsk53V86LCErmIDYk+mMQE7aW9XhW1kHJrGkbcXvHLHxnReBBdegIDw87ng5/MD85pAJOcbqYWwfmCzWsu0xZaU9skUwndRlB3zg5PagKkGivxcBHkT1sgTNp7D0p0bEhSeq8tEFcw0jx7g+aHhv93iRnD97LFlFbrolvSVZgzRzg43oYc+jlZ00UM55p8xmVqQjdypWCUxIACOKTYma9/lSJnEmTPoMFIl354IuqfnCqmZK6pmRPwqaygSKO6NcM7V1VjWDdXzbMdk1Z021LVrakh1THZb43ROg2WWDW3SrLO/h1gHzTmU69S4rro/AH211cU5Ab+JIfj3vz/w67XG83NxqwMArm8RUTbqz3myX0kfS2Jt4hWA+ZlsU83lazgK2UkMEk4wrwvGC9d+BG3Orek5JyT1om8VNg4+4i49ipWEwxhwdheSsBpwdLr8ev9PwguKH3xcEaqobBnIxn7dI1dntkzwWyeP2Y4LcLuxOg1K4z9OdXyZB83501Bu06Niq9A7t58hhTHs761P5uFrwPvXC8ZrncWFKK875vpufWLaG8siMdHLWsyQOE4UZ4Pali+/9JXbdLoZ38QfRJRZGqG8yyyvVQRpNIR82Zx/MzmYLsyUbUpl+gLIwquHBgl5jBeUoenTA8EjWpsp/kM/MH4AJGxkfkhN6gpBGAB+g0IebzduylX1dVulQSmU+k3SDwktUTCWgJYHZ31H+wHwIAK6Bw8pt8ZFmi3nnctK4Z01RTc2avyY9zSdprlZDpIgqH5k3g3wJBhWG0Lihwim50kWIG/jBUDpDFW3KcyGDOLDsP0inlvdsJoVSX82iulXZ4P9yH2Ok1VciKyOZbDgbBqi82+dD3KbxdqVZzSz6s1rEL/HqQcXfmRT07X/0vBD37STsNxyr9zeBssDBcYaBPD7Px+AccHntc5ZnQBwTQspwGWCvkw3vD2tu3PkCEA0YV5y3CC4/QSktkJs9WBdnURAc/Xv/Rowf67Kp3MHZ1veCc9NXw/ZJWQgZlZevMHX1+1JMKVLCngDiNgwRI9AbdgGRodwAfUZFu+uuqL/YV4wymeIsaeoDcL9KqEniFt7TmbtgaSy5mm5zvVYQFmgOCdhwCgyp1UPY9RNxWPb5I0a9K4nJT21IMZlxHghcShGm4BgAtGogym20RtzN5mlL/oO1TGrf+saru6MDJ3m0zyb+1FWouD7lXWkBWKLLzhb3lhBf1PML8R219C9Edo3eiLnx9W7IB8TiimAvHhN2Gi/mw1WeCTgzRUEYkrllRjCWr23L5KtzQq6kcF31a2CBj+lMkHmN7Hu+Q1OtYxPcnpgH+Gw2E7JIVfQoQe5F554ZA1rgK1nOYDmW1V6ZGCm8OqFCuO0cDfks5TyOn8CAX5clKNucnJ6HAZ0QgwK9iCBrSbW0bWfsnYnN/xOU2nSGSSn09pH2YRXFSggNX+sGgLYRgRvV4Lfa6yeI83cQtQh0iGIoM1Tsl/NzLoLNDAfch2/w4bHuhLnPRIm1SUAKDLRdlY24cHh2EPfbKFHQsBO49CGk2wE/cg2OvGway6kyqiI7xKj1ebLlZveuV8En0lObhAmTdUH9KIf5D7ceMjbXflctKnv3t5NtqdeNJdsm42eQ+aGVPg/nwveY8BnXqGd4KORPb3oourZH/T1DhmGcfU8nNoTttgGbXkqnvp5UjtIkQ//tknBKel9r8ex675D3Xiav9RUbIO7Cm+gqRbLqDyTzzG3WrxrH1j2dpNCNtStfWj4aYrYzzt5azK25e3m225Vs6yDGnIULsAkgmtOmJ8fQAC4Lj7ihBY9CVxfvGwET5cpErPJsOs4NU7MnKg3ljshZwEtjiOlcrsrm+4d9eoPlU6rN8J7So3QhSq39TOBfO3OMyRYwGzaPBMbZ8C1evDr/YYxXgC0znH9fK61oeGSkIM4lmJnQ+vOtv3N0YSBaXfvE4JORs3leS3POtQ745muz6nOA+J6E/Lr1xvGWEb1988PfObk+PR9+3etmPM8AJ++ht3LTe+K6nU6ykLzxNmQ2nWEYqdXzaNqVtlqGeVwlAamhXrEgK4fmtO4C/g4FBHUWPLRnj08Yycs8bWS/BM2KtP7AuQ9bYb/DUDAF8JrvGAMhGtOXXmdvF9Dn+efjlMBmk/4/6J8i5WjjzvxrFvmLtCHaSIGq7SO45LVyvVssf+KkzX2zRz5Dvx35je2FX2e4b9on6gYGXJv3Z3OrUFxNPcgrIGYNxyeQBop2zjjvX0LDYjd8bIBxg3KhfjwcgNi008reZp341sWSLel/yEReoeFO6G9MbS6M5qW87yuCf+eP2vTFyFM4lU2eQ+ozufGwWcNzgwZA2twsi7xhUFsgNBGAcjJx/lsJ/Nb2cg3OzyrA4v6R/nLKC1ysLmf6nSO+8CnDlmqlzfFIQu6kiqvyE1I/UiTIFo0o7Jeoy4Q+9evN4z3Wob6/QOA1zo2BmGtpBiYjW1EREFx4u4U3OMGb6/yF6nkh4tJU4Xnn9osQhoTLyme4SjzuYTEkWpYmv7Q3BYTrNh0hF+/fsH//M9fC998LriuD1yIet4uamNGqdOPePxQ1kt+M4OuXgFZE+IxW3kc/G2v5za+OQ42Alq0uSGAOQDGJu5i9WQZCBdqqnTl6K1QR2VWvKQ4nMWjxR3bzLjo6l4EZR6xZvhn8L0NtzY3I2n8q7Fmzv44zhGrk7+rIfIbdBQawd22GKNb7jrrEzn78mvt1SAE+Hwm/Pvfv/V7PrMAOQ/iMq+pfUo3Ho1PZ5g3xTZZIVwk0dGQKIT4RCzy7nVs2pvWLtIpjkm6i/Uy2MrcEflD4N78uLF3IV1KOPkzP7TyNjdFk8Q5eACCfJG2+G4OlAA+mHOhn1+1S4u0yf+T1Pi4TZ71142X2ye08TQx3Q5gLk/W5VAeu5tWDdFw4wkaUZI3np639TGd9NcSJMUPc4o/l6ONlpFeR4A49xE+YuBfZ24cXXiHaFKM/jW4Ohy0MqfOt235H9npuPs7J1ucvm/LzWQbk5dp7dpo0kM7KZlbh7sB0mIIV1c6tZP5iUjBum5OFRHhjeuTxq/XUD0C+WwsTOd4o9plZ6/s8op8CY/qQlyST+9skhnabiDXQVT7+ei8INVs8jmiD6InJ9ruWCYuOhDh/X7poe8IAB/gT1lemZ87ZHDq26rvVc0wk3OWoaOcsF7GEhuv6kCZ3gxfkeBbEm5Qumey29veekwZj3Jla+MwTbpdTYy221O2ArHF8CuZvJK8D3Crss0bfPdgurNruXxq9GYJM5PrFkL6As/oCbG2dJqfJZvLB4wXwoqnRriuF/zQanN2O7FDfxt9zb9DVd/hJ6AkGKmvi2buUYoFH8h2U+wd0aO+9JxlgbIAokW/0ywfzwnVPmR+fCp8rk4c48hFrslzncLkKouhrf+fum9dk1zFtVzCkdXfvP/Dnu7KMJofoCvCdmTV7jND964M2yCEENIyCKyXF10y8ri2sOGfhfds5EIFq46RhJbJ7dVIrnVkXdA4YWBZpsrtJehJpynXeJcAACAASURBVEKKzSPXFe/imJPeLfxVRSof8bRtuVxR5OX7GVlRnRJZ+0WpOQRbjzen9aAHH9w8nj0Es+LACqe45AfmwecFzTQFs8zUOLs0qiPf10tr7G8erD5H7T1MEi6ndzxptmvpx52yhyw1qMgcBZdf4Qpa+zLE1IbZOkzdISvHUxlnO97vE0RjU8L39zfOs4/Ze61kHYXRx0YrlOzYKps8DsXxJQXQEBPNJ/yTEZkFYhxjsSSziQ0cIJC01MgWZ0mUDQIIDXSMkAwG64HnAHSCtYPxPt8gZnz//sb3+1TaRtBRZzb1Cu2I3BaF7amORwFy0f3FGNlo7MJCvHukIiOEMb+8qKSyJGA2kQSkLKlnVy5MMRfxLOEK3fVljsfF0E5v1Va7JPbI6oTPmXzuFtElOxyYXqp8Elr1MN3uiIpM3QKDuzi6BHgfmLqZnfVLk6I7Ej9LYoM+iyuw23fFlpWBO44/yE8o+Y7+Woy7rByMHBIPqZutyHsFgRVJD9NlxaJaf5GNqze+IEbhPf2sbACv/r7cehTTW9DN2YVO3+aoCYiPT7ZimWdVcj3eUJ/D2/encIeLe2W6e5bkxqYFQDU0Nx0genXHM20vE8F4qS8jO9uf02ScyMfIek8aGNtQTNnAF+d9Lg5ewGwO+vL5EQzc+l5NUR7eaRScqO/O/M8yCigrHZL8ofyfOop4wNfKU5Eux1rx8IKeSvXSIMRGc6F8/jo4MjLQ9v39xvuN6WTGyRa9c+TP0Rv+aHiivSn3ZXgZjbYpZZbSfDU9K26jlpo/bmnCFwHzbuZ53TgkdDdOElheqHg6BQJAjfDr14HjOND7ie/fpx6OLjuU//Pv3xif5GS83x389n3p6y46uOrzIK97MOH9n1Xr5OCqj/OghVIKATEFbp9ZZdjEPOgRa2WfUmiTOn5Zc6ZMkJbGhg8jJB7IkQvWWg0NbeUn2cjN8tRjdTOAp9mMJuin9ujKSCSZXFUR2v8nLD0De8wGet7vjv/5nzeO13zxe0eksR+Ffzt9WtNVW5N/0xwcctr7kdvFL2PnB41dOLqZgd51+R/L+UOw+lniPe27epdnGaKJP1g6riS/opobn3dLYVNO3VqGlvmlw/mRm7bepaipNzkfk64zDiAbjtZaC9rS2/ybNhwsIFEfDSHZGZc+PTj/xDkFufSwyo/myHty5JpVoP/GwrIDa+TLzL/kMi687q32XGgfvyu/GwDEzPegY+ni6pJXny0V88rnj+XSo81EPLslBxU760sviceZbe8SfiJdIbhwkmmjgoWr5VJ5lyVeDzgKkO6tLLm+drII8b2AC2kxZsfMM6Cz0g7rDLmZQVMW53ubk6ZqhRzVxTTqO46G4+sLjQi999B+ZoDfJ97zqGYQja+VgR1us04VjrUw+fsmPQHxOsuo+dg3qhBmkZRwYRHTmF7Af4opuXxf7FKHb++UerXuXrbDJfeGr/gyxGQN5KpSYoqzoAWYy7HHUeN4nNzgZxSd/u4sBQEIJ/4XlNcCvAJT7MUUPG+442d9HY+7seZtWiX6C/MUdDfXB4zZWB4vcf3s+D4JjYBzrmB09pRQUrtMfwSmHhReTDall9GVTJi1QvYTuc4Hrb1h0ySX9Sd44mD6rwibiZIxel1/PEHpmn8fXrAd4s7q55niz7s6lajEf0V0yT/7VdqTZ7IVjD7hmONPgg32sGy38bMPhTER3r747TD4ROr7vC/viLViafT0zvlxOZEqxjI4Ug4+wD8xnq5mZZ2RDOWdOk5e11MLEm+mvemZQAt4//1Bui5BKtAnuZGWYMj1xcN6l9vBFJmz3vIruR1PSVE9iCXWfbSxoIBCFiOIsVLpsvlJQDm3j8bFwsPK1SznnX/t+7FQK8BcNogktNXgtnlkz9S9Xn2LyRnRB28ifvVZnfas7/37G0TA+/vE2VmN2pjllt8A6TEOpEP2ss7cbmSp0prZ37g44HaxWcuY45xjZc4r0MocxKDYxlPhc8gFzfFR8T9tWnxmVsVVAahGks3Ozg1jag8rnyDVyDFcwqh74TasOu5byInRyZPGWtDdD+N1wTDJHi6OJsk4d21hS9RO5n7J43DhpWK4qqNmoYInzOOkHNnwRoxxljKbzLe6jQrUbnxHyrWkrUrfAMnV/7tnlSUWqvHDGX+UtsGZ8nyVTC3TKuL/FsVcJt+VJaUiXOVSnbxuLgTzAL5La73sn92A2p/ExD5mLQ90HZsU+jOw50VZK2RxLwCrIo/DCeEVIhUp+wPXMcApvVT5smFZZreagQzG2Gre4PXYlR87hL1e0Hy22q/mCCSLJ7doBai6cJeKGf30oNJw33A9d9NnrQpJDS1eCqvJOUZdjvwuHVs4h3xgf8xMif5Vmt53KsbOj4SvCMPApeZ35Rv7+hWKAZj7uci18XYCfg6wzSkJWU9l1jMYDRdkpVSkzYueSn3jnsaVScYJGMZXdA79zdRVLl3WN8nNpJAZ9MW4yeybVMAi75FzfJSKcZ5A53M6ZifhObB7pGqNcLFw0c+5ASiyMSQ17jE0pnk86Qq8tDb5rJ9Pc2xKSKn2E7kqHP1UOEgIXvbMkdAyzuOZqiyzpSyNv/MU0b7M6XD3fDykNOMb5OYfsbuP4vcSOx2vqpMfQhudIzDAa3HCa2uTUQz9vbrt9HhtgruhK9i3jljure1fGd7Ya95kd6lLRqZgn+4s4mr8LjxlXeAm1nFXlotfRXYbqEtu1YeVpZvkxszTGNGSwvXouivP/sdN9YsabglyvlFydxWuHfzJWrS6WDLmWfPSsYd7zp7o02wX+WEXpUxU3L2SN9/JZ60rg1Q/Aq/re9qm+/TyVQZlqbRV7sksJouxL1h0GEPo+JkMUWQzBNlbiUI5AEZVPkfQMbLOl2VDmqRbnS7wQSL6ackNPQBXbyGf9v8Y59el7GxdKeMNJ5JuZhCd3WhSZ+lDAbzStw9bskKgG6DiB/BVxxSGdACDBhCjHYee2z/2v8wvk9GAkz5es7vuGgCDUxeakRRQV73M8PxCQwfcG+mmuXBMXCUdMp7QXaHZV8onlUXjWboUrhjjuMsxPuS0iWxcUuN8p+kav+tQ+SlgTvIH81GAp11SJ+jzbxCdiCGM93kz6HhKMoCqGe2q3ML77UE5RRsWBtZqd6SeDM2bPLckyOy0JnZ/CakbIsX4gY/Ffd6kAgHWmHFPofzc8ZPiVOT5Sx79wzb8jaoCKL3M/Q8z9FeqjQX0SDu9cQW+sg1L90pWOD7IvkhApT7n9Nzzt9Y/TMuVACqeL9Ly0lD9fELoExB7n3F+onY4A24ReEYU4gmKlOaAnLNMhnPnfd2s4z4dCT/W/BKJWK3kNDBnJfSR8WCxfxFM+60lkTPfnNgWP+PL6To9gME482ZxBrh2QpHDFcAEBivfXrVhGtMFG5St2Y/q7F8VO6iYfDmaHz9A7KrM7cQSHMqzYyP3gcnQRTLN9jH8rPnSHAED5CA0Qc9VdaKI3C56M3SJDoDagdaANo8OIzC4AedJYCYcGOeanhLH6sANT3YavAxoqVOWlbXdQZ7BGkl2hCPSMBZHaMo4dCNh+WSr9JnUqOKbdUhMcHxR8HHyZUF7MdGzfk0vBYseKgtpiwomGp4ww02hu2zaV4xJ1Gw3RDGWlsleRJxgTCc8v8XYcHXoTv7ZTo19n7yYCFx/+vACAOM09BZV33VaCC9Y+J4rXaRiCroTyM12xevVpn0OLwbF0Yqk8BQZXt0rrWxkBgqzu3Kc+cEix89TQoCbarbXqXypa/7XTflnqSrjBNrmwK/ITZ9pICc5EJFnmp7TSxfjOtTfxsHKo8Sd32vbs1MmPtNYbRDHy1jfgxfFy6nKK2e9vx3b663YTcGQf2ZajCDUBv5YZnf3U5ZnNVV6Mssv/X9DbfaJzciS0PcO2Xt5Vv8RU1di6v7YvnyjYibzcwFPkNEPjHjjPOldGSozkN6ERGEwKhrkclTtRpDl7ns+c9Qnw17Jy9e2IRNybiy0DsRCk0IVueySIYIIIE58ENxyuCtCQGxHnL/N8YYLLkl0NVRAO3IaQOUv8r0dMOR+9J4qT3m9CCYKIcLcEd7wavPTugpk5gcHWgP3udEkMKODKHz8dTxpYHccC+cla7i+3gQr3frphaQpoB1UjhHfS67HHACZUbhFvTuHl8eKyIrDM8Ly/S5rp4xt7zAxyqdJL0fggeMnC46xNohe5TuRfjFKEA5i7JhfVhLDhtDvQj10h9qo8cPXOeQzSm51uzAFq07cIzrZT+CpsPzrZBt42OAh/1yLuhcRGcl7ZmKGauOIryOMWR1zV7yVPRnrX34/0K3L5E6kIQcjmCws6MIW3fL8oP7avmN+feambBgMKe2Gmjx6iJlusy3y4DkpQf7WBWMxwzLG7zgSUx5C4gp6ue6N7d76KrU5Yi+Tf3usAuZ7noNYDj89iFwwe5oaTuYaS6Gi2mGN5UueZQa7VZmxqinz+iXOtTkFUQEq36w7ZG1mZzpJJ23S1s1jiyQfMAREJJY8MmyFNy2Y5d3USl7W0TLMaXbRO1Mu77sWVONHqZcrldlT+amvC/3J57wbrRsjSuXPTZGdR3YMOnYFYAW+PIgV/gqHH7FumGOcWYe+aDav8IEtf9KuVMBap55jTL2UX/wERPV2vzHwDFCbM6iNcDRCawPEyjFcWppG3qGD3WYk4GMd5x0NAe9L/zI62vjQJgzkjj6R5XKJq9aJlamI4zOHY0w1zC8YuV3sHMUwsSJpmdx+6S+LPY7yWs4FmS8bOpyXMCNTDoLFTJfavSzHsxpFApXHTgdbSA3eZGsMJ8zxsbQh6bBu7AtspBMnQt3e1tTjS14S4kar4GEWGZkP4zmLW9js5ikuuwCUnrY1s6adLDogwLy2ubHyNYubk44PZWb/yn9uzHc+AaLcIFLQq82tv1to3iOQkCtMduvKRM/NodLNTAxKQDJuWn7CzxWfe/+mJyJc8B1JiSLZWFxYdbOyow9c3G7hSD+fld3l/VBY6TQASd6vc8Gv3Uv1hUt3f8PSllORp5sVLqtLH0/I9QeMqf1rFrGeSL7ie2cPHH/lnhfzFdUhYt6PX6VFHrvkHje7ZzMx5os4CCbMoCVCIA9fWA2qXwZtrhBTfjnkJLtNI57kCRkveE65g6lb+rEwqFe2/4FfeD4Uk/GsWMoEPX9FRXmjAIMtzEOKBnqpwWkD3tgUlY10vvJu2C6rYZOru02F4w/sQlx/ejhvNXLHflFzYwDBCuiRP32AR+5my5s4C/Bcgdg3wJr3TBMW+ZKVlue+XZ+KT5NsYOPcexvDpLpZnDziconDqJ6FevVmsj0pKT2qn9eVpBtTydfV1TW0ItL4BHEwNGxKlZ6gs9DSECKgEZhoYginIST2KCl0Sp/393WJuxDjH+sY8FiEFP73E0ayIayA7SeJEGgWl9bXAB3DsFAjNGrjc+7Nuvy2bdu2/GH6i6Qy2fHjHyBeVvizerj4tckQL0J9BRhc2Fk822W1N4zsn6WXlO1MbLEa86y+O8B+16BPbOYnadB9hWZMMKqzndo5+uoAN91R0gyhCXP51IPZtOKohx94HhDexjzaGiAjKo0RjPFXGeVRuhsFG+YV0iHoFMpkRTZnE+5pE+4MJ194eip+T1lyuKyLONmIOMMMANbrYesp9Hls8QpP/ZXN0OmdUTUxCPLVLNfmwgKEjxmwY15+6VmeVp+9Y9mXxXrgLsnWVaFqhKFAxB10HCPGW+MhZx4G+ORxvisbVzqjSu5NuELoXnIsbWnwb7FDFebmMZF/ifbHVGX9wuDkVdduqrq1XRGoBsps2HUMV2/sPXEoboumY51RpPSDfXsqYfYhp7BSs5FDjGtyGf0LgI/X5/xsahZFPgNXOjO8F2p4XsWskshXjQIQskqbpm3FKkP29TxK3sbGy6A/7tktZWYANlP+cdroJF1c7cfCLv+fJf1MMmD97V9QZnq1AyEbM7h3jW3vp41V4bq+cftgTaoQ8mqW/J6sNt3ikJ0l2Ve5jykl6JTeluy0EjNmXyy+Xyu5DFkNvEPH0JOmwucJcb+eWR8yIk+jdMPH/XzxhQHeXF5xyvGnwx9PwwnWXBf1FXjDyj/TizLdqJXMzspEjfZhCnd8WYc4qxyQCwdnR/6+t7DO5gso0PADIqAjLvOKgyatwogQYoVekSR0YWnyFGna/ETp+ceGrSrm0+6+ypI2HeUNH7kCO3qcHPVDPhLAkGx6ZM2NsVRJU1IOzrGUHPqKHN1qd3FwluQzOkUq1lOi7xfTvDHSLNqtF/tEQ1fb7IuzMxozziZ1NoDHwev97HM2dhpWRoo7dMaCM2cZ8EHbkHPooKVC490Go1y+tDrzmhbLOv+SPN8phGsTAXE2fvx1EcAwjlUBRh+5No8/pPd1BPBo37AfFKiCOixeIxXM/kCG3gQX/gXd+HByZ9cY1VnWAjRfbOQrbMH+CQFlVz6aYPf2KhjpiDwoZdHnaUOENzWe60ojdkl6qLKsIRps9v2jT44qTWf7r+zlnsgjX+lnNm0EXBnwTyRUl7IKvR6M+0RAa+PH4cJCTmbwOexNf5+OEEeSf8ZmYjoPjmxPEv0srjAeCj5Sft1ku5x3uwFSy/jlze/qmfieSjgZR0wZE0odDicAlDR9fTueQoUb1p1tKZ9fdTTHn95MZSAmV5v23iYns+jgRTSisxfnxJbyWnlMlY7xTNAPBUmYX//u4DbawzwYeZnBFf8RBSEGNb79mJmkObNQhbTYDBMDTd5ep6nsbF+pzc7TA5/daA7WVSyHFRjzXNlpuzKlQZ0PKgUVK76Qc8S8fDx9Z+zWGEJKmWK1C9bINJFvXiurPB3hW+TkB5jWyD3nBsT5642ls5H7yDtkTvn0TEyd8U0bkDrWNs64Pk+vix4SG2hUhfYxnEk88mre4GaACb0zqI1zXLkDOOUojz6+tIWOjnmGLBkZKS+zzrEX3OBxuu4glDr9MrwHrptKdfFxxbD8jpOl+cGOytPQwUsrlDKPftLoUnKs6VcCq/bG8SP9vnrBNQjEnCLZbmyPHbzpADSsQ1SZIUWyDXDyFT69PfMS9fpEPhrascJ2tiv79gczUczKehPmeKkG+iiWTrtwVZnM/Dm0d5bhotqyi6rdxZnXcY/L/B+mjxpg2c26bI3+RxVsKYgvc5lkUqU1wnFYPxMInRj9PAGSF6SHLFQivmtDddvZ/uDbg5Eo6ksW5j49aNRNFj+Tmq1UyLAkXuhy8Uvv7HjIFS4MxXry5LWCvIBlisoeiTT5XO0OmcyQDc5XirIweFE3hz/x7hOGH+RZAcK4TWPstOPA0Q60V0NrDb/bb/Sz4/wWbzxnZAGy2Qt2pnEKyrCLv+FMA8/zMo9F61OjbWOFbfwh7YTgN+70n1OmbGg/sXrbCi4M36VBqbJTAH9sd5/Rf5T2TKhT5ayYeQRK9ROg6CYnum5jWiZdMPJqSeFnCdyWG33sL3NvZOAnuaxZnn4BLlUR50YpnvpNAHe/e7M7m+WcDlgdlYG0jYB0Td0bj9EXGWpSkHlKH+jErftIauA/hfCZ8olwBNBaWQ7d6WM/kzs0oxDU087aTa1SxXL6mv1reDxeckQnyeWvAE4NesiBFT9zXYmkg32c9aOU2nPJi+S5sHIF3vhDqKZ12kW2CXc280M0+hfTslnxRzQepgAwzKFJTDcxA43QOgGtoaODmNH93rtQ4xXKy1k8l09a+WNFeUT5j8nUx/78tbT6Fb/xtsqdf/Iux7gWs2+GtnBEK+DOjyO3HvMYftoTqfiubyzn0k5svJb4AMR+6lIwQexx4HgRXscL//o/v/Dr6wvoHUc78J9//3us8p8dzJTDU8UZjf/WkzrI/qgjcM5oOaYp9eDcyBA+PuC9ChhLEEsYl1LxCmlyGjVvpEc+1yblakB19QCWVzmevLL9Hs1iJ5ErJMyIsnugBykDo6IywZiC6vlXwxscKelqooxRXQX1Bp/g35K8/ErwAIZxaVkVMLXLgIdG2iIuqJOq0/gnGRgZ50H/5CFPujBwOo+GHcsXrL97/hqOxu+wAVb5t2U99F/HyzGMDJAd55V73kefFM0bHx1IHU7pP0uVEo97jOb4lc1H9X8d1h9W7filWNPXxNCcujLPcIaSF3WM/JvmhPjVAK7ssZiW8Zu1/mU8kOl5rMsxLn+a9bF/McyntOymd2Ts2TFT146wxClOP8a7lz97IaY8MbPEdCr95J4qU74Wu9wUm7XCjYy6jirtfEFFIF1e2cxybOwHzCM/HOykymuu3iQ/SJCwg5L1DbcXPJUM1iO/rnDTwursawD+SMKSzoa5yxfAin71ARFHMZDLHVCoh6+/6q8/SSsovsrpcvjBvC2/AaO8jNxNXVWW9Xz7+Iw2Q+wGN/k8eUxe9j8nFkbh43Xg19cXvl4Hvr6+8K9fB45jfm1zFnjJ7NKugijyPbQ2A8iFcvtcyUO5ClL3zoeytJuehgaLQ6F4VA8X+ZNNueTR/TJwJh1Ekf/HKVdaEfD1X+dfxvlG9LQ7LkObywaSEiH2cgTHSrnpRi5A5FQ7mODMZp0jAsALkle5qs20HebsQETgWZ2GEbnqorioP7WcGbqNiiXPOAg/rErkTYlJn+OKk2zaksZ4A1PE0BLi5zYlg+9HFnkT/MthEF/AVTGCKuC/YIAy2HBtS7NqBsim7FsoGGmFxEbbt6tFAOlncLMNsk1mF8ZRHpO/SK1UOpbibDAlfus6eb6cbG0pDx0Ob8RhL4B2qKrYyOVe2W6aq/0f4nXhu6wEM6H1C30qMrmylMXnR/oYjzwVw3ozvuwUzdjfz3X5N+eNm7gz00PO3nE/M+zV+4ofS7KSJZu8hFVvuUrM9tCvhPZty3vbfUeNt5c/SXsSxZOL+m5Z2YYX7Ii4C/bFdzSqwbJYbVcXB6yxPVJKn2f2o0/U5378u5nYOnRnN8CLG0E2te2+86YWJzu35lVx2Nviq/1lBnpnnO8T399vtHYAvaPLhKkbrq9du6r6ovGfTr3M6IxoGGoNNIMfw8HGYYB5o0nQE4n1eB/nOIOhJgmh3HEc2UltXOymKLWyI4t85lIvjfASE1nUynAxolow8bRXnCcgNnx5l+7UMPPpz/OrK5UjuxiEls+7EzJCza/tpvIh86YtgImzazhKAj7z7EYBgX1HU5DcHBQ89bAJZpHTB/q0HsQOw7HJRRFh1GHd5CNgVOMuxYXNjyKMSHZrhx8uU16q1mQAwLKx1i0vEVUf60Ylf9MbxhBkWlAI/eb1dBHqzM9TPFZQ4+3n7yGO1Ivzw1dZUZYrBvzGtDxqAn8MjDc5kTV0hWSNmY01Woy19TERgzuNT5W5QcWAvnczA8S9GP8GTP1uXKufHc+xjIFUl8WXkTE7cw4w6/TU/GJpFr0q+BWARfqcmiVqvCiXt2wdjBbuXFmjpOSrmoVhr8q/q/4ZJgsZ7ks8C/kdOnOeHUSEJid9dJ4O2fmTZRzesWA8Ltkz+4S5xHq9CK0FQ/+ne5JTwNOCwm5qeBgvbbGlxndMs+25entUXK7nqpruOtu84/9Bn68Bb8mXi3ie6o/PL/3xN8MJkOVD8VQAldcThr3DqtPt17vU5nbwSfjGG8A4Keg8T/DZ8f39jX6Osy8JHshOgsP/EAqt0SrvAFbKWNz0Bjcyf9kvwZglQ0m1Y4q2uGLKeEF+GvxJIZArPbpdQqlk/Eizre6rx9uBXN/x9kqfXtgmXiqpQKwztEs8HXarRsZPyfc+f3fdyw16DHLcyFD2tNXnZnndljR7JvJpphXhyDrJO/1TfGGL1QZ2fJSG1BEEdGEZPkpF+8VXCLgSY5SRRCg6rf9GngK6osXedXgCWwpmy1zlnb2+CO8OMECGJ8V37lBBlMEAdhJ+AiynJ+QaTaE2tqBaBZvaRKa7VQpg099c8snRRev43tH9o3SL/e4QaUUu2vMFDCjp0uH8LD01Ppt89iJAIGo4+zk+hEA0zpElQu99hOZ0tmg6FqJ8W8cuw1X2AeCeNO62I/8/TT9okxeFFjc6xMV5+GVVDwDn1TOv3j6cYOmqylF/WF+JHR6C2KdZb/gRP9xPAHzim8fMbD/HjKyE/DGPvC/AAVM9Cic6ngX6TVDoPxFYpwwWRCRmnGIIDqnzp6VzYBZCsfDo3RBiW9iBbAMvWCzxd3k0Ui6/U5jKiS1n66yUA45YkpvRLhrly0YxkgIPLyatkYHwLklrLdkOmtOmedJAAreQ5fichvW2GSlfb+RTeNGSGo9ofdMF6DHGjBmGgbEP01BCGJIXLjLFXoTOkMHx0Zzk5AgsfwQAGa+s9fn2u+ugB9Zm21iXys0ZPIGG0m/SZ22Oha5P5yzk5EOcqwTTsnx1SHWlO5VLY7/URXL9kkYOyXC1AS4Ure9c9slmODQDMPoZz2iKd6hAwUGnT/eY3PmE2xKOvjRXusp/h1jvJ4BKkYYHoJnEuFnZBs9XWjkR0sHI+TYlaT/EeuusbPLpuSPkOnRs1VvutIuHPETrcVFuceofPV5ttSzx3TnmnSkmRu/jZAIGA32MOZr2TUY7s1tH2c1U3jMfmNDsXtkgttArzQW9uyMLr9LDcrfN2uZ7ztgzCPYgF2HxU+XM8g4LfMSZ68fZXcR+g7E+dewQOHxTNz8vJpsyL1zdrX3zOtaLJl128LXMZRa4dwYT4/0eN7v/MNfkxYUWTEObzUYK9uY0UOLSIady0gPGNuWGC3idTKuZluJNdszUggrGtujjvADtQW+ox12aV0o0Nc/F8wf2IRccVwZLroz13fHiO5uqz5N3GuzIEtG8w/m8Vq8Xsa81ZlRlMvtT9KRk13Ro1J+0rnAI8bbpFAlvRG6zoZ0rO3aP82KDtB8mKvRsZlOwIocEtq5Agncgrpyueky9H7MycmPtPSXtQho2E335h3s25RSH9K6mhVyQhSpaIub0iAIFaxuLnsgu7YUfB9YcsJNlpJK0TAAAIABJREFUTNWtArzZAwQRhJdoVVlyT73OT4vBLkvSfxlHnICCzx2ildPANGvr+PYoV+RyYUvCbHJ+JiTYX0UbXRaoqo2m2m4Fo+pBj+tJ7Tv/LBvqdCvQuhxWa/IMFof4b60nAU11y+lcz3s0eOlSfZqJaxEHWrvECnPsiyDQPY8L7TLTjNXW/SLkjtuz+MX7JX4CFn1JHbo4ilrf12uv98L2qtDk9CbGsVbC9v296Ywgw5gnYjQ5vUBk4B5ivdTzKRdx7uR709e+EnVe1r7aNKRBc+VUQ3zFai/18tGpEeZHI/d+UyuuYE2Z5KWLmUEnNNwh6yxDvuzlQawz5vmQ53TErONPOjoWJZdDkp77qf+wDjbvNdlPzdB0ChrzBa2AF4CbebFzcuV3lJS7RJUo/Lo1oOF3HpWJzzTm7upfu68iT+GG4YsVAuv4cP1OQQeGTpiNjdE/cYOQ5Zf+JNd/2lzteDGoQrdPmuWR7Fg7amrepEfdlmQNssSlVZl9DSyrnTL6bZaOjjmP0jR484cGWGCp6ae9Q0SPxEmuoZqAk+ScWg+ANNzfNUnopSlDBbGU/I30UT5HgX13qRAJ7tzLncPSBrtrJbRxglTl9eSkwqEvZlk8g4AAwjC5ySarqr6xROWHrpehr8Px5s+FdptMLacPdTL5e4sotlOAhhen2UgvivEkmxJbIZvt8YDYlY/nqiZZONMptiHgDXcd62eVV2XzgTmunZ9ZNrGGIjTPCsY2TXWt2xB+77yntyfGV2t2hjAB4DbHFROAbn4pOVPRTDfa9IcMuz5pDJaaLosukyvXrbafmzIy4+31R13djH+0iZNpPYjXQ4dyuooFAxaZRK73DO9iXC+sYkmnurdtkrfdd7SKF6Jg7bnMclX7sxTsyQX6yDPn6/C7qWQlzdVNrc932IM2Lqw/lYsNZgkj2JV9eRAbDaztNzWZ1NKxRjvEQs5cyXKba1A4DqniL4U32NlC7rq0ZptEyfirg4FaoXqGwxyHK1WkG+15rFg+/yeFIgBcbHy2lkn3yT+TnOSWMsQQquFDsj4GKo1gdpbm4jPEgZ67+VTJUwsbNiczSFsEBEp9sx49xFwa6FtpP+xoOu8AoWUe+aKsIhcB++Ezvb4qNWvV8wzt2PhnzBkgSvTkqmsb/VAOf2efikPcAlq9d+sZ558EuvyzsowcN5Xz7t2eZeeyPj9zqKq7rF64g83zAPN+rwJqIHN4njFefir4WRrhfA4thRCBZjKfmZ0S0C55LO+zUblztlN+GbB8ahOfsnCVtH6vA3IE23jcmr0AKs8kYQFwMa3FuM1Vke9Xds8snID1o0BPpJwsTSomx8kJo8fRxjnZ5M5opg7u1gb9GiZwM0P7/0FySualvc2OCixz+bO8FRRiUDQjuMF8edLD2y/BNAs2urKH+8tHKTYoSORy45s3SD+rDKXNuKKXDKNkffkuV7OdN64URn3PJAUQo75wejx/fJH0j+1mrqx3oLxWJ1Z/AQny1w14X4N8kEEGfSgWa/q5vc0dRNtHjrENpWdcaM95cAEEI7rgTfdE3noUlIqDh/VbCWJTE2Rp1s92yEMSfjKPwlD1eg7fx6Jbrk3OltgJVwYowsysryLt12FxBDJT4sCcrVjYAM4giUBzZsMD54Qu5p8ucFTFvBvBHnxKm3oQuJwn2slCadQdkzSVdB7T+sv1nGuvhpq4PszW1RygG2PS33LLnWqhrVB5CvuTbrHJixy/lpzgJ3pbLAWv/iCUVdTiiuWm5iYDGt+o0stBr0uFzj7Bg8L5r8Shs9GrNoGFCQXnK2NIrYGtLI5dugOplP7eJdO+2W8cZbrGvMbSUdhmJjaPI63c1uXNIT1PeEI+gwkA7WiqJr0DzH3MqM6VlrMAfEv1uRoZkOq33MMQdPwEGXihJgZkPEzw+vU60HsHNdGxAyfJKkR3ezaH7vVqavbiPNeaW1rb+EG6PlXvyk4+qMxc0XV2Xn5gHyOKWt8cifJFztURQj1cn16Pl/3lvuSGCTI9eJzyGOIN8BVnqlht08He7+TBfjEx8nIjCwoWgJoZx4DXhSJTzSTcgPFOnGExl4ulMQFklxhSBYiEhP6UxjnHvS24kql+3ycKHUDLj0xMXNb4L56xuhaIDvxel7fV7m5y1KkVxAKKItWIOg+r8WEGxpRg4fTXGQEHEuSvkBaeqkb7kBKsm2rK5SzpqjzOi0psxisbazv5NDQt6yNVfEtG/8BAQVzUiPl0p7uPKS2oNQczImOzhIwJ/zcofubN8cPTMrg43HXzkhHTs1q9vWK7Z8dHGX140mG5ft18arK4MOic22iy1pLsqg/yibbIjlMr6lF9nDwrwdVxVYlCBsa6wvTzVM66bAzcDZvzmXtpuaDxkDk4D7vYDOleXsrI72TzlcjIJysfXleOdswZ2qYzteARgn+ejM59+uPViFR+0Vtr3h1H4e2JlHoEKpxFoCgYogZq4xX+9esLzB0NDQxG6320pZN+Jv7s44ijyFcht4X3v6GFgweS2c2PlGS157bUH405u77PMa+1vGOeXVP9GarxWvjhaDqXwZtvEMD9ovc5/rxz/Df3CbI4Kbrk25ptmhtTu35acETynyKfasBs2Mwx3T7Li53g1Y+p4XXHkQflmsa44EPiIjlBBwZAXYz4dDxkpxMQj6VpnuvDxGmqxPNp0vDUMydwDYrshzenbOici3eG4fm48o4t3ltnIwrldT/3cTGcc6cnk0QaKLTkQHJga3sNj8pMZTJ0M+PAE47fKWMvVvI/srEqNuio5SjysdQXlnUAbrWDj6DOBmvOk5MAF329cHwyc9gBr02fIIxB4ztZZOcB+CXs0Y4ofwVK6bgtmU9ehrFzNLJ3yot4sUEzj9sHMsloZHCk6wu3RKlUX7/qMetns7X6kqPjM+ucoUb56tu426FnSU8rqzHYUy6LXdVgx+SBxIn5IR/MR1xuXUyOkGsUHpL7J23jCs+zk2D3b8lTYd/8nfUMV5fDAaTNFAAwNTVRLXP6toQcKaA2UIqPihwVS9Yo8RU7MKs6VspO8kiGK8tgOt9a03C4YfYOtD6+7D5CcBp0M9CD2Vlj1fyf1JVzGAW5vu6LVUEtNSK0duBohEZfOoR6Z7zfHb2f4A58f59aT/mSn3lxmW7Pk33ShIX1z4BYJCR8FHkrgKS3r2nbkM32ZCuwuvlhwHLIO+gNg3nn/+9Z9vUkHVe1H/3G4abkHdcjW+L3ot71xZhzhtXPD4d6kec6vUKBUNjF4W3PX4Xej1cITfF/PRV1tE8YNrlW1S/13wliAZXZYzlqw0lWc8UXhriklNNdw5/35JIztX9ZQCTgKh4q2/yW5Cwxp0auELhDMFX9133kEBDglqgjH6oOLcCwgS+TfYlVJUVKuj/qtDw2BNw9N1uem9GkbpnxEWiTQZRwExEY1kT7R1Vqc3bjLl1UVWe+13kdqoKlyH6P+tae4IUCLdWpeWUPyYYBLKMfKjqDQAIUa105xj8jsQhHIshE57mM64y+t6EuHMJijFPc71XXBV3MgMiFFyw24JNUjI8ix57N+9o+8VVPwGwqULDwrDadWSO/mY8ANLQXg98E9I5GbR77dwFkNqkEtKtDwqq8d1SjbRkmiNBaw+s4QPNFvzOjtRO9N/z73781rpYa5lzFZ+353038jF3eXlyk0TFl7jt6fPEs35/dLCdKsAIjD0Dnxxz8wbV5L4X69RqvjfLVkw8E6LPeDuKHcv7DWf2XokmTpIpNluo0Sw1FIVMhBg6vIJ7Vo28DKTAtx+hKnTYDI499WVJWFAN58DmvPRu6Q/6Zf961pEzBoPjZLd+k4GSSx97J2mfZXXuRZMwUxoBN1W/3zIkP1z5OBhge8GU2OY8zhIbr+OTU1c4x0ASx7rn+lDxLXKVvo+OVqxyRJrSryF2Kns7f2jXsSSw7z+U8W/hrucEAtzRrF7o8AScRB1lWn0swM7U5t9aBrnJzY06a48rZYbv+ZqXdWYHdrVIFaKzHNrJ+SEOb0ccSaKhnrOd0pgnKxNSyhkZ4WxMY8GE8YrWJUv8SJJYz48vcZKlruZa+1tkTR19YCkHKY4l3ieY9TO6NANv3P5gxzqs53qmnDIu11Tam33c2rlwRgXE8y2cyYXjXU686nOXrcipv7YVMTTIQ4owSop6u1ezd5i2ogPYj92Js7mosVvIuq18ouP72DQgKtXEaZT2V7x0NozY+yACMj9IRHfj9/cZxHONoIwZOBqjNg+jBm934Vy3aJR0wkDjjjIcuSv0X0rQm6no4TbQuA6NOfsmNnD4XPsNwEOBB6zoeZjlCWKhbZZOYqlYhHjZjTbV9eFTmp/nK8VDneQVD52cKAIwjXXzHSMYMsCj6d8Jcdo1GJ29CkCOOtIwiCoUCEFBq2MY50IBqYvvYTc+TPjfec3xldHTC32oWolo45+L/sI+WGQ0nB8wyvXCTEGhlEHZrXDN9va40gWrH44BkjAk0rvyyb5BKZXkIUeDeV2W2NdjTsQLzX5o/TbV6A6QEZa3d4xy5pJFhCfcl00n5r5Od/ZgJapWEGX0WRSK5pYTwuYp95swCcde2KaNIDWiN8K9/fYFA+P7+Bp+wt++N4sQheeM2pCMeJ5mtckx4XZB7Oq455JONoYQZW8gcv6ITWGX3vij1WD9JDGQ8txWmWFKky2ymbQ8MFq/sHzfDawqKiIyTJeE5a8vAq9H8BPHIxa64f3ERE+Zt+0rdG4psqzcpdEdlUDe6GZ/uU/ABJlN5FlUi81vwnyrUeXFepFCkSE++IswS5ubtv3sJ00HsbQz8aQB1zU9duepPXp5caD8Zo/ZTX2h9/0mNBHy1A/1gMB8An2CMuNnW2FbnU1x8GnZCbs/P0tbiURr+JY1d03fiKJb8F/PhmWmELH5pb15xZPcpaqGsWq2ivun9QDJ4e5RHnFzNWuYjuJYKbspfpqoT7+g9rWuTL/f1zgxMfX9paIuCrVFaN4UkABCMkKID19UCBGTmbgIhtavKvsysCEIZjJDL4eNwb7c2ZKtfJSeMZQ/AIrjcUdnNC8xJ5Je1bAE8NGanKJWqgIHyth+EZSoczIZ0WTTYaHOpBdGE0pDbnCpUY+iU6apA8NDjWqFQjsFybyLSZb467QL3Q3VRnFSgaLPII0ZOZu2kHja6TBom2UHg3mN7nML4RYcxTrLVnqNLZh8n/3cqbaOS8Ho1tDbOp+zcp9DY5YvnxxIAbt4pO9azEbmyS24o2ETErM8BlwH0yYy066Osa2qXlB8Ks4661OzZcLMg+gWloJupv91YtCV+aa/NBEuNNpb9MPD9bS/NEcPO9jqw1qbONBog9qA24i9p0GEmDaHoABrz3EMAyMdmOMnMd0Y4nzQLNTWp7N7KkYp7TmTi01Vea/X+DOmquhLqrBVigVUX/BQpda9OAPM01ec5wPGMH+8MBXcmez+Okw7ftaHkW/yms4POJsc6KmMrA8oV5PE1pM6M5vRwrN3MLT6ysXKpa/2tYYO14pRtNstrhvr6aCcjYyGvVV6vjF6Jsn1FYdRSPq2PtT7WvBc+7ornJ4l8XUDc1MThzxPay6RO5rny29skfukiADSIp5B7SVas/sX5qR8MndfoP2fRYBCGE4N3OhsMfLhhOMI26TrHsDSFCzmwdrjxmo2tqzPL80aua+L18oKG4TTP33WlH01u3aVbWg+cQxos4ygNT4Ld80euYl9BcR30bSCffboR3rprldyf8ft1HDjPc84bxjAIImigrezE9592JGoYIFdGTzfnc9Fi14CQK69WXLRse/d9dvT+HwBAP/nakG7FVxT6025Wl04OzYhD87zUg8xMEEUHXeYXZ84KLINv3jNpT9Q3JqAMp1JX6sdptDEAYgdCB7WxvGv5jtdrOPjWhr71eVha7wDbud7jOCjPUOKQHeGy7VV7BRz7MtG+3gGPjy1CChO4Owosp7u8T/mJwHwcn9ffY5MmMeOYdu9ktpfEKZpK/CsXT7jNpaZvXJRpBzCjWspLkIRDyWdwe2dQG/Q7W7iLfmwkAeiPANlPUlhy8PaTks6mQcdeBjn9CcM3ZdPjRT7lzKgVruW5G1UriL1laAFAVe4rFLw+JvVymyLBfi9ltXWGzQOOYOYLMPsgERgvrwjxDEBA5s8HfvQOYhTXVnjl4+ocRIZAVy3mLwT1I90LoBWLLhshx4MHruzKdMS6C4AbjgGy5oRWVANnubMDsc4Jx7au5eMb6BXKyQN+w5Pe9w1e3wOUTSGtLLgh4AF7ABXGDvu+I5jeGCoJzFpTKeSNRzPhQrZQwwtgHjLuWtwAXZee/PQ+v+TT5Tg4p9sTM0U1IqBJOMlgbqxknPBjUV5euwrTGySCfd4X6VkQ45hdVhHasWzhpBEpwgO8jqHAAcuEPiMrU+sIQUMBwjgvM7vkddUEl0+y0JMmfH0LHWOcCHOn+Mir56wGr+1IiUOUFw+nwxVIy7OawSYn1nzI5jorWUs0s8jEM662TV0fM36NhqyOr4aGBjQC85gJfL8H6CDGPOOzq4NYT8BRIcQ7mb2NX1rA6gbMlvtJkGxrIRM/KzvGgrMxs28Da1EdTJ7eXoij9KFws8BFSG2wR7aBkJV4n+EGDJ6boFjHWrTPQsQak8wmVk1I5nDDnh/vViA7RE/FbfabecfpWoTv32+8qeF40VgBmLO0Xd+M4Ow10szgylloYIjVCwa9bv7WQWX7EJt6C6y3Qs1GAsh7FmL2cHhW4CFfWjavzOPEiO4q0PxpjFw15zotTONKq6JmjuTl6UsSgf2qydW8kdl4uqoeuq7qh+jQ1aUEh690XNU9Hr5S8ahn5O7mhvhAYje1b2DYe1H5YVZXZ8x2HjUd/7MoQTBk815ewvN0swLaP6H9ci3kZfPxePvOEbPTGPvqbtbcyMfLVs0uDF59LQSTYha/rpK3QwQHfkQUmT7loRcbqKIX7ZR/Qp+48pW9a9AQgUB3/sPC5xLgakNV6rcNPX5pesSAAYzXcaDzWz2ej2Eld1SDADCvh6LDjLHbF3OTiCl3NQpHvVkMqK4rh5Aex/KscluGpoooG869paq3bPqxXqVqUFN4KlPtFI4YM7rkr8Vxk5z8MO9NHVkcSSSloEvBr/DGwDjSy23rczZhGYXFsNYf3saF+AyoMvlNWZHAdKoH4fUiNDrw+hohImDG2TtaG6Dj+/sNsNt64I+3c7yoaXW/AwDYmQY10RnM+jYWz7UZqe1Vqu43Y67UKjfOORNRYzAvJdbVGfvSFxY+QmQGIcl9jqf5msuEEVSLqT8Le0CaGTCRe+Gv9jJkdmQIIm/nh1WFvJ2Zuu5oMgawb0T4/f0NENDQ0M8D5zFnabnjnC/1LrIwsuTBgNy9ABc/T0VPcfp9BWycku9B+FVR9mpzyd86BmrGzB86V0iWP/ZX5EdvZijlrmgpNMdRKcYreRggI6Kwy0/4zRMo9qxq93oEVw4nksHJi4ECiIi7XxIuzxi061dEMgayWCPaJHP4LAnQmyGfYOSS0Uk+LSJ880Sr66Bl7Mjt8DenwrBXzzwgKcv6y8onV/Z2x4vMwEk+bVoUTlC27CATzTuftIKJfS75MVaXFlcR6g7K6R2GmttcprIMNdAjn1+cMrusfnBs7Z1pkj8CS8HpdHSyIYgxDkDv3PVoGgkraDJ7yXZOouiM9pXM7IWViLG/Pnx9S8W02Q3NgL0cSks4LF8SA3JEdt5q53tG9drHrruqzGTl+uVmW3Q3NoSQ+w7uBdoDuKWNjtdOzeJatZoMBOYsXR8xq1LzeGnAdSL7j3vsn9G0cXrBGI/ebs026pgQPUJ4T15TNnb+UvqCdOMZCdLUfh9g9us4xowsAY0PHGfH7+83qDXQcYI6obveZv3XZK4rnGIvVMxsjbjwa+KISOJ7Un45JujWHkeiUSyTKRk73HlDJzO7k/McCQSNI95RqMwjBxDkq+cRNCv0ZYMY4zFYiuczXDgRV+XqmuKq5s7hqMemBjTg+5ttlYg6WmdQHysBvZ9zuM7ZWWcYnrXsWQqu4i6pcK8f35aPtfsM8d4lX4Uw8ljQ6irfXdCY9nFf7V0H5Acc/3Jkgcsylkgdr/mfdT6OUn75Me1aaevHy5J3a2ECKkw8cCg6Jx/E2YF7FUNqyWZkq9iO7Bm9dMg5qjSwlllZTyPwU1iTuvKUOzm/IuWOrGq5qt3yuHnYJ8Za6r9m7wEB1OPvpsjTpAZRxl675jafG3trmXYhH1qk4PYinjxCDZdXbUc04rkWBbEQcDKceWfg9Wp4d7b8BBwggBqYO3RJHPJqN2Kd5HN8DMywheDp47JNniEoFdQBjEtZPE2faEQqeVn0YuQ8ZNt6a3aCi+MwYJlQmFYx58iyOXEAdGHPAy7tE7iJB4IB/xiaIaYvKrMZcd0QuBMBI31aThjMtrADOACaL2E0wSwajt7wmkckdQwwomA2oJtpfz8AlvvHizdLjdug4UdqV43/u/wZnFRgdl5Kd15Q2FWRPxOqYaNuKdqG8j0ojfk2DD8sss6F160atqePM2+J7exRGp9xaJ2B+fGh8ZIHNyN7E19/L8m/nO7r+oybarBy8ZQFcz4gt8tU3f8ExK5+JYJqMYK53Lx83FWG/3w0nK5XBfA6zfW0O5RZnNfypWOdjGHYxFJnA7Us1tVveHsgd5cMyKoxh9a6vEHqWtXOiZnD2eIVKoZvmubQIZ5nDkQgunwUci8kR5kEqBII/tEA2BUS2dC1qq4OTG47wCyeVGYJUoklKmLD7+1piCTVRm2M/kr6tAr7Lgy5F/ftQNxKQ4ZQoDdYTfRmhlCWJseUKhARu/utNRxz40Ob9dExH3Y9IVy7t8/TAMaf2aA5eomBc04FExqONuIax7JgdJDaYIeJkNon+4pluTR8f8t5a41dhEAkA1lwVYi8R1vS+M68hUtWqnYdM1lYNLtPh0V6ijXJ3ciB0GmH/+hHVMqRNlmGKsy/zL5mxpwNZa2XmCdgnGBUZt5VWMnp6RDleUsbPSsd5+IGKfnByhiycbOw1Bm9Ec4ZSvDKakLj/E9ZMRl1zn6dQu9YRZ1YDjSzdRoxokl4VOT3JooBPbkDEiiyUI6EPC8EXenofGupHGO7ZznlD1PHcWD8barIrkNsUTkTLfbCVe3TlFWyZHZd4504NAkjpvABmO3d2UDGALUAMFc2mOxlhxngzjga8JYQA9yB2T9Lf0Z6V7q4f6UyvpwDXVsQ+Qkr+eGjBovCOQNw4TqTpStyEMLmoIICzYOwcyxsmLzz4HXyR0S6adB5JCvLAM2NKrLRUGPMAV1N6zzb6wDtaFncGEeyHAcuIzNfUVB+5HAYRCq2KwAVHErMVN5VazhF4f0BMMEATLqOWF1LZjbzFq9d9Xec3qQCWD1NlWfx5KrYRU6ZLjnK+SK97eqvZvUoJRn1KpW39wbBNz+AFTdGFdeEIC63/UljV6873bDr+FcOoGdmHF8H+tmHvBvjaA3oQD86uItXGruVbUDP7/qMabMpIpqfgwTOs+sYda+wUSaLQ0wSDsNwyezEwc4IzUfiPCsdo43CeSNOvI6Gglbow3mH2GB1LhKutZHTahEc/shm21Z6fCjHEC85/TD0YUtZto1Vzhu9HEETsGjfSk3JREb+fOvmjZB/tNNiV+cGLjm/sg9AwfKyyNBlbgKhUQPpRi9A9BFetYIe7e2QrTDcpOxTp01gYPbTSsO/VI0bccYaGC8ORi/8WPmmMdZKI36Vgv2yn1Wp1e5lWq5FtGbV8s5UhGvNmEosx0VdMebGVwFplqKL/tl9HT9iYwG8z7H59X2u52vvkwj1Gf87Xmsb5X46UBP6hwt6Bn6uQz9SXc5UIJuTpQz5Z0Ud/nl4vOPn4eyvkKexqa+23dDG2Lh1eQNfrD5G5vfiCrS88Mxj6EgixgWbDELqE5UXBvjQcdvHLIILx5mhRBhDgLmNyYTe1d5lMLsOUrvxWqA4AInjG34wBs+Pzp1HxATqbtOE3Fd0ArcMyIWwTLrOL6sfCNlc3lu4uBkUPvlmx6iHjSPYjZqPklc+qh+RSGPzvHDFlwZCM1muDJLX8q6O6MnqRBWN1AlppHJSl6VuyjWOSgzcujNmc04dmJihBdCCMjiPY3xT/fVqOAELPziGs20TyKADnecXqFpHP/vkjfQrQK0dIGa8z47TfWwhhJkEUJPt/xrnKu+6GmhPewiiY1baDHdQA6cuXKY4UVhR64M5+q0BTcaomx8k716tcVltljEtFjyNxbwDPsS4urhk3VlO0b3rlTUj8DBNsFbPEkKSnRRPp0hm1McMptCfO8XFCfKUe1hhWT+aME4wMCQhRv7sHf0b42WKGrgzzncfu8sh52sw9OWosFV+jqS0ZKJ/Lk/wy7R0ieq7ZPG60WBsaMyrc5y2eEAFUxz6YllFYwZonV1d07VtunqwG1Oays0mkUp4+gTQxkBcebDn4aLG/QY8r28AaRwy2aktYnuZx5e9AgD09RQ24yp96hrL/PdEbrnao6FNSQ5/runf8Mebi0B0Y3d3SfzYJo+zuiO7gl4rL1ZT26g2Uvwjqb/U34QJZm3/iA89GCbPZD02EM7nc0VAXtTHC/DI272cfQgjezCr/o+JgJ5iZl+rzFal1dXTWZFNM4kERrl4/MnirpBDD7Lp9fmDYS1yX5ismMm3LZG5jH/VdZeCRZ8/yO4RVz9Prq7rTScbVir+n1QWCmxGN60lLjMs8o6lR/xiMvYh1II1RjXQzHXka4LGy47lWgIdQwteXy+IorfWwK2DuQF96vbJ6NRBndQBmD4zzveJUyfJ/He+eG3fnayyeER8Coo8GEMl/Eh2YgE1NuDxEYcUD7gW5gfK5vPfZRx5lN0KH/jZoqX0NHSfDrUlxCiyZOE1guCc5WGp2ZFzABqOtAAi3XCrHWWlPR3dRDjDVzoT/vOf3zio4X0cOI4T5zkdA4+jknieYxqY4JCvAAAgAElEQVTUO5mxoBu50ko8jx5YJQ1jfPp912N4ykbB1IcBCHrw6G4lcFtzFeX4KVb6rycPaIMCYcP8B636qQCcweg9Pfon4wlu05/U/WHZP23mZXk/JsTGFqtbcnFLq6Ldy8cZxD6h68MJWEAsxmZBkrPUCeMUH5o+EzxXiDDv2Uyt1sAYIS0M8LSH/ewz1G7E+tMM76L5AR9u43SQ8TI8fc/cNL1TTYaEFizL1+6oBQ7ueMrdzcaKIQYAtBl3Nw25omuH3tW6yx+PzrB0rPiUaNbKuUrndRwIzYAzFHQzG+k+ip9lqsoUIDBnW/skVcRRVEuDyTn1J2kLVHwFFa2C4S0I3Y1K2l5q7YKnZl+w3vQ02cCogAhHiGFHEwldnXicNxrBACw10EE42jjuqB1tbISYdTEdc3atY+zqnQOPABzj7E+ZKesyTsR3K2scdCTPEnrd02UtJ04BRuMylrV6WFV/kJtvu1J+HCSJ46BxMsMxZmNw9nG4OzCXeZyQAFACfwrlVLhQwLaoF4nWy5u3gUX/AqmhUW7c+n2H7EAluXIGiNPLaFA/bweizTG8lLmXazfHpdMN8lzqnm0k7QFX2vACATFm3x1FMU4mGG08GTi/3yAinMQ4OqOfg/77lFnObktz2srpLNtqJ30ohupmlTKAnDJjBtrhxqRkJusP0c4Qc0nzvANfTqZ1XJhS7jLt7uVcsTWt5dMZ5h+ClUeY4sIfXJa3j2i5se/ofsZJ+fyylOo/p0yiiNqLWGZ2lXpRm/7xLzW8PJd7e/oPkh9QPycQrvNciTN2D8jE47NWYtYjla4/U7ic9oXY/btLehKAbG5WszgcT5u2rqENPznl3VpDIwK3cZwbERTIavx+6pohimP6x2GDOo2Qgs6Mc9oCms8bAJYTWebRgq11cHczsxtxvMQk5iUjEk50KRP2hBKVQogczlyIhldvhdkgd4zMvHaWOhhEf+CMl5we1ZTuh+uqn9n9vVzBuhrgHB2mPt0xIpepd3LEhgwBBx7Gn4fG4GrQE/IoTg+LwjfNMXCxyZAuvcj1RYeQNvPNX7TpxoxjdInZgRz2To7QWgMdDa9GALUxKAk4AN28Iip6MOHsGKCXG6iN2df+NoXzKxGsvLogerV4hPCyRViMSmxMlEM4VkmdPlyd9l4sxVsbjTpeB/71ry8AhO/3N76ZgXOA2hjfhHgUbuCB4v2NfpH+m9DT5FG+ghbJs/adwsRl05hoyjzaxT3izgrCgwAKzqKtWdsln3gN1QKuk9wUG2POPt7E5KXk28lg8HefzgQ4qaOfBKID7Wg45dD6RuiKiGxjTmiubji19o4bFpsaIskQ+Q6Yn4YsjqNpTNtiAsjifvXaP8ccFezvRBWKYss+JtLKY4NCtjS2Nrhna/Xo6vmVE9nkuPI3vtDit5LT2xU28+b6m8OzzNs1MzMvSZ9cOZDH5AomNu3bVccYH6WQppFvc+UPKCpVQFj3bN4neYkz270CYj/IYgYdEwRzbNnOhZWwZJRTfpn1jXUmduSvk+FgYdAjaiAwiATEzlVLQEPwqI1n49PsI26/EaHJjKw3vywbnefHN/o5/zJOZhD1sdGVaIb7y4kafb7rz2kKGpuwO9uLx/gimFm51+4AAm2tV5yyk5Jjc5omjLSlGLsXbvKUohTIudfFKDnnI52SO64h574clwSk79ObUVDj7C1VsMDZhOWJ9li56G+6HbLay7MZppXivkG2K32Xoah0aUc0iqoHC8iR3MJxhlPeuS6+SGdiF77SuCxxwgR0I17Vs0zKM823xjYH4hiEBDqOMRAb5j1rHGGc28ogHAcAaujf55jh9I5jKs54yZuxBTLDMU8wUJk1L0xAzhINji8MKRewL+2Ruv0YSjMtPsKH2jBIX18H2nGM+ycp72HW2mMA1+c2YRv1XYrUe2NtDItIbAwOBdcZTWef7bo7alHZxMApN4xAJ9w0MRmnLJJNSdrI5CIMkr1bz/2aWdwGNA3/mDKeU/2hvXO5fRxMjxmj25wJYhBO8Dl+d2bgBBodOPkEQDrGZWKAJ/rO42tQYLfRTc4WtVltHbsTNEi7GUDvHa/jNTYwwvpNe3ca4EY8HU6yzbn/Cjymwz+8dKau8d2RaUyf4+cizL27AcG1fBZbs3BQZNzk2toqn5JaLZUu5S84Irg4yCvuvWPhcNvbzTTXWJLJxnyZlVXUAR0fTmP+OF3TeCL8+Uv5X0fME7LeVo8UtHnpjiDZUpd3fPA+y117CeEs5DgTC0gcrM7ENkLD8BtyfbQGag3HMZ8dBEKbq5xAAwX7BwAnY87AdvTecM7QgtY7ThCIOnobYXsnGGBGbw3EJxjjJBRug1DeACaftyWax2/Fjtgo7+LIJmghcrNnrke8zM3ObUlnc3PHTqzOORY/lh8TgjoX8jcCCS5vf8bs81TlzvcebHezVDiO5YZ3zsu6YM4fnXnOttK/oBV4cL/vLN7UaIl51R6YIS0Sn0QToLZj7vxuY5m9tQaCD2YPEEwd9VAxjipAzk7THGwzdhEYg5p5/8aehtLzFHGk0Q4ZovRFPr0z3t9vMBjf39/DqEymrr4tULO513d+mE+fF2/TRJihSTZ7u1p/sVqs9sXLovQPzj6ob7VazQhcskz63PnnQMbPSuonQ6EGOOS30JH58u/tEBNOOnXWE2Awj9M1ZIZUBQYBz37T2mTO4TgAGiITTPd8bsCTnd0mvM8TX68XzvOcWYWui5VjQqPuQtskjzkixtgswm5MQe7BnOBlSs0SjuXoMx2jWscswCaXT7/+VKc/hGUPXNP/fvpb0PNP046HFXP8Y2mdeo08yM+p85cslQ8rEHsn/0sniSAf7zdA+nItoQJt2q5G8/Sd1iaAHRujW2s4jqbPRv42gOy01zZbzugdGtf/fXa01nH2uc8EhNYJ7y4zQ+Ntn84Obg29d4HdkBMPdukFMawV6te5fDECThreMHoHM62jmOYg0tJneSMe8eLyUh6AjgHXAAoKR7+k6pn0NQk3PrNTXsZGb6igGzWnPqBgJeaOmNTlnbZtz0Xv+v5S4hn++obz2oYwhqZ3crRrAJsQqTrUGp+6uSt3jNUmaeFZE9HmWGOJC5zL0xOUyuxkoxkv2jA+V0vkZkcnwXkWo8xZNZK3xfHZUAlkFwcqOzMFXnmUtIQYaN+kHgzdwOp3CU3jScdGN2ioJbkXDlmS0eFJwJjQO/H7dwe3Ga43P+FDM5MTKWTJ3W9YW+KTwkxyvfbg8+dTSKwmOWIvPmQnKANDZMQS3fF7xFeJPaOpd+xguh3ZJfpjzRFd9VvpWPKwy6zPky3U2xRk6SOsFhvAFj4hgItkCryNmFg7MFyAMAD5UpnGm5qNjiEq0sD5WGbB3XgcfMw+H7u44D6qE+Rwnm8cX18432/ImtNYdRhtHquEbbaVtT0WSz0cWEfXfopDQnRSdG6Wquy6M23Srw0ztk6bbeEUKgNpTHdgtrAhuap9ojUXF3aOEF+cfDF/qsHWx1zzMGbDPfEdkcHI9dzClQP9Qdqws8WFN+m6SH7Kxc9se7MvK2rgzf27qp6w+DdSkrFdMgiNcRzr7j6IjyOd8DhaQzsGsD3m3pHjIBzHgdfrwOuY4QTN7S8RIEt+GZxxznjYfp44esd5drzf5/hLHfQ+5+og5moR40RDZx6f6e59rIqS2KQ6xvo12zlt4CZWVu4QzKjq4E8j03tELalWfZ/Md4gMxHzW+aIVi3nulKQge8si7QyDKxHoXhiRiyQH8t9nF2R0Z3AoimrHD/nr/Wi0Q4dWSJK5iwBFQImrhUR5Ra0ENNHWuHmAVh3Lao7cASQF7671FIFM6DanVhLbx53HhGsfM2K9i9NgMJ+GKifaYGFQwckisn2q+uKqrDr9DLEm0GCaZ+QCmHaDBTgVYzie1OLARgHEjDkBOxvdyUg4KIj9dRB8/J+MB2DWL9OEumw5EJSAUZ6O2kIDSPkL051MOEmiPSZ9BaGF3VlaTfGBCEnbInKZS96zGfJ5DRWH++SpbZIVXqf82eVnoWsBHXl0xf6awGXyJDguN0+h65RpOKfX9Us/T7y+RpjB0D1b0SDNy+in9I07cnGKp6HpB93a0cBn15AdD74XsV/Y7rHpZOymBmEAbMCdzWuz3f00/xWOCtskX2WZ09m4qpzcjQuHTod3X7S45KR4qnpcMrilxuGO2OE7kFkYtR17nP7m8kusSV35Esn3UZr1cQylqdjM7PmW8nLHQZKKzr6GdD8/86FVaxoi8j6zysdzjIpPktXKpuWIxtiRcIHWCO1oeE0Q+zraALGt4Xg1fL1GON7xGkD3kHCDaZeVFx7HufXe0c+GszPe54n30fB+n2jvEycRQCcaAW8wdFfkqw2fBQKJfSSoAuTwgpcqsjhecUTz0wshBksojB9QWCObC5wcP/Hbk4FRaltIZhJ8DQZayjVFyhQifzntx0Yi9kODY25BrunyeSmKIP+Ho9kbz2C5spAIAR12/0xAQ2WoPc9JTg5drf6HIJ9J9NuznrSH/G8XYjDsFGswun2WdjrmCTS6AAtEkcoChKiTAD5xhp37jPOZu/25Y+zDGQBXlltZ4Ar1sKhh4mL7CcQGyROZbWPX22GmbAITEriUv/A0AY/SYbu9AcjxU8UCP5zD9Z0gMZl6h5f+ZsaYHuujD3pYEYh1rV/EivVFlTWQBxr9AwFUUi9h8jd4XfZxUqoCLsYVVZI6hTnxctnpujnxqXICZm2GPzWQ7WzGwa4GtViGMFydh9XL9RwTezzQktgAo+9y+EvSSeG55C+yHfLkk/F6jR3JmBsl9RzdScAOvRhLjBwZAjVGa8d8KWSlDQ5/sNipUI9rKA0dojbAsYRwMI9jf8YBHR1v+SSrG/A7YFOlIHJ/MzeweuybwOlJkn9dyT1vjEIlH5V76E/+cnqKFer21HZseQ7MT2FbhYunvWUigqi7fD99bJm8zm9A6h2NZEgJ6ZrMN9Ic6zrTOkHsmIU98PU6cLwaXscx7zccbc7Qzjhav+GLeaz8nWfH2ccsbHu7FVEivOkEaIJYbrbwzQwWesyKb4fJX2NlX4tA1AEMgOrHUxTt6vCy6YkydeiAYinLnzuPAtm1/t3A8w6nfs7StgdjN/NpyvCBpfjTVMZZ/GHxdEjyogc5ucGUZxiX7Kk+opSxmKKMNjsvfWXEZTRXVmkeNh+Jj2/UE/oBvIgUOOze8pl5BKr3cUzV+Z7neCpKk3EhM2bjZpj0e6AiK7RbBZvbWrX5pylgsyItoGtXb3OdLPol2GzqV4ZPRj9TNVrLSNcbqT4H8iJ9XvTtTlre9MsJBnI/c8Q8dtVGXfVjS6yzA43ZRwVgNgF1UmCJuy0tnxeFKqAJJcqv2kw1kGiQUupaSorSAZuZJQIdUi3peAPNGZVDZmnGebhowOs48H53cBf5DR4uAUu6U5l5ifFr4212fNiEjvEC+hb2XFt2YLbGpA8ff+IfRrv3nfsTmn+S/tl6/tkWPAB3/2i1u9ehK7Ac7ZLZFwnjo/R8S6ikmZNM6JD8b4LKGC4w/r5eI5zgawLZr9eB19cLX6/x7DgGsG0tAlQAOPvwnwJk3+8Tx9Hwu71nOMLcowLoGJRJodbGpBD3YQcJFy8QLKEFU3jqYpZOmY1mwE3NOmHlkXc5Gm9yujsFWXnBUBPtMfTT5EDIEnt1gY0zWK+tqM8fb4ZDqSgXiKR98WoHb8pePtT3hlRF5tWa7pYneMmtjGeXbWnOeWUQu1yEGl33CUPsv74Z60mIODhdhjr78IAwnBkk3gcA8/g6V5OvBDDgZsEYY0D1PsMIBMTynD1inl8uAfKnAkmdsV8zdjKQpS2K4ggtCuDGDmmSWVfoddIVuaalG/xTJIZwEYQNXogJDTfHGXaLWUwljeZqX1LI4ZvaavYyRk2cxbClJA3ViWDSAuDNQG8BcQyEFw3BxBi61jMK9RvBJj7RxyQv0NKTNj79i4rkrVLStFUiEgMreT3DOS+yg3AnNeQOk3Y4RyXj7OvrBe59gN15RjOY0WmckHFOJWhjWKN14Hgd+H6/F7dPE9RxrHaf3EqihIWYClEITWmNwMeBdp7jZIVZ3GZmxSLFMVjbdM9zcg/hiRW8dlNkfc4IISFG/FIQvtXJ4T9xjnTD3x+mPyS83ZR3x7Qod4+Zdh5sT26DoHaPtuyYj13VxfSwvNb8Dyu8ySZ2R/5rsoGrjXhYAam/Jpj99fXC1+uFr69j/Pc6cEyAqwCYLDRtxMYyuHd8v0+8jxPH8UZrhN9kK32E4VOZGa/XDANqY3b2bBN7dh5btk5/ILO18bWGONfgNB8K8Fni9bIkJNZSRvK4NkNhBaVD1cl441tUqYniX78JJ4O+WM7JpTRW6XrHx0J/zTCWY+sClxPNPr+0Kzjtla0FFu6wjrt1NXPiZ9JqVsn98sPS9bOj631JXMb2FFnj7XQHu64m8Dyx4AAwwCvzWHocm566hFgaCBbe5xFM53vMyI7NXcMbnzyYkwG4Ht2yT+vWqJ2YyP4K0HASy9Qc3HLPXWdWYM+BsIqr0R8ZDPl+SKXE9kpfBBAoJwVW0ko8JRARtdeKULx07XHoueK8EMN47/A2hlM/RCrBXnjMobd0tOi/CtIoxYEzFru3MJ2Flvtl4TFso5y32J4RwM6wexlTzu4pE8YuZjK5HK/xeeY2zuEZ2HJuskRn8HvMsBwM0FfD93++zfZK6AJcLK32X2aA5v+d4XYS486gNuNhDRFquQxh2JFVfpDA7IOkXVT2lSnbtXsi0zltNrmO8JxfJI+FvC5fcm4c7OvI8K/gqTLgJY0dP/H51YqWThjw+kI/MrDrVLomBiTf9yD/kriSyCZnRDLR+TlGnIKyaiyn/AX15dl8fW6AHBNIGDKU2ViblR0xrzIbqyD264Vf8t+v15ip/RphByMUwUIUAIA7xue2z47jfeJ8n6DveVoQzZOEMPqoy8SQTBzxtCc8ZmWFLk0cK+fKivq+gqNj1385YGpJEo0XgVPpPXLa2d6Qx0ya5Aszmq62ca1IZpvySrr6dcAmzZwCBDXYOgyk+wkF1v6/vml4RcXoXX41M5t9cRgYRX2cCmztTFGWwn0KPjSsZmruTN33nwxL205EsPYuPn4TWzlm+2zZtdHUGppgtTX0uawhXyQZRxcBTOc8NksWWcxICBgeX+ziGSM7Xuw7GHIANbk41lGozz4cHWj3Z5dM8KEtmMecSQzj6gDt5wjxsk07Pgdjjkjyjrg07yv1Zeec0VT+F0CBtZOa01+97+I2fR9Wb2S+Cp4ghKoMAgpdS/RlYij1ggdDoLFjwYspnUGWmrF+LEX7VmK2PAQS++XsqnE4rLzEBLNrWSv6y7VDZju9JCTLWmiWkVhmp4uepuBhsf0BH2cZkRvrbRzRQ3NJsR1tfgZ56ruy0NFfBySk4fv36WRM7oSKEQ+nlp96kGVsXYoGnjLkOU4aW4zvqMcBmiXOqZLc9djZJaW8FI91Vq5gqTc0O6Csa95oyNFsJqEzHFkpWyn0s/RIOp+LLxaX8nd0dqDT3kw+4mXNXhXm5dFlFe6h/2ztmsnZELb7cVroqkHPGkqA+kKbjR1HbB2yuUuA7Jx1/fV14F8TxH79ek1we+CYoQc5tKB3xjlPKni9T3x/n0AjfNM3xBpqHC3zPA7yQOs8/qNxXGZvDHSaoBtgapgB75pe9tN2JlO4M5udAc61LUgPbWn0YsqzLL3LXdbEF/lv/CaRcVnSF2fzmH0/u3CR/2IghJKp4k9tRBwYG5bcuafLs9wMzs9veiq1lwmQT22Ox/GtWn28O+3rVhcmiGttONR+Mvr5HqDWzXDLpo9z+MpRsEXHOGDlGJi60UsALDtafirfzVJ7eVOgmn8+s9a3/f10oGjmZOSvyoe3vIuMy+OfgYFRlPTP6qNYwaFUm+NntuYp86gs0lrG3cigNoYDRKKk/5j9G9X4lzYyXiqZXdhXig2flEVnXRMJkLd3G2XW73nNRF4Ama2EFvb4Dww/KyCxdbpZbX4nus2/Y5PfGBvv9xiPdBCOPuNlu6t3grBJaEprGUiWPCAXC848TxmaMbpwr8eMGO6hwzmGFVmFP9PfP9D8yRxHAp+CsdkXEifcIGFQY/Xq6fm5P5qY/H8t8e5yBaN/nKp+ekRfFNkfb/lp+qQQ2yyngNkJQmm+oB6N8Go0QayFFfzr1wtfv77GvV+vEVowN4Y1Zxi593FSwfvUZyRx+LL/5ByrpK/e8T47Wu/hIwzUjT+H66e7nT4XCmTNGOqgLnxWPG925NMjEZbZkyxgKn6v+LgqefV8l9/chhWufHZozdZZm+PghaGZPwM7yG09sbJuCBWDSURJ0ctdqWlwpn8wMPV90AkrsOzYDa47x4FGolac1nl1v2giM1fqdJoswSZnJn2h515OR8ojXEDsgQS2B6fdefhOnmEIRO6LbrMvmQDqoDbOUu0E8MkWnTOdgTM9kJkyHUUBCJEOkywXvRdeMjPIMJc+jk8xydX6HMcqVQNaQRMhz8oyzZeIZdrSZESeTF3tovb27rIBxYwxnTbrENCYRhHM2ecjAwF7Gyetpk07JeEpFtrqELGII9Bzz121nv34Dpfs3OSRJ6Abd4swGhnqjKU+APZBMraNWjrJ6upcT2aYSjfHpzf+Rt82tEW75RQ02ztn80h4oDFeNa/Kp6HROHpnOEqgnQ0ndWVPdyYLiJbj0/QMXa+DFDgZ8pllps3s745OhHZIH083JSckJJwYROZauir0w8S7kvXdsobFYfmy13zJ6sDRGl6/XuN4o/c4w3OEedxxcN/uyxx/CA7/GDynGbufM1SV2wDghPrJTWxUNJ5y5H3KXa77JOAVkB8aVnDEs2Fldvb1mrOuX8cMLfjC19drAtoXXl8vPcmgub0WPGdk38eB7/aOL/8zJK+fE8CeJ16vA+d54jwa3m8HaOeHVcZ51EnM8+IVDBMAeROsxeLuhvM/Yc7DBwlRKrbaIkfZYht3NXvjWrrB0llH3lt2ercpObESNVi9zeevbMPmll+KitmuzS1LZ+2afVV/jg0QPjL6cM8XUlQ/s1mUOAzNHw4UatUV/eIOCY8r3xP6Kogdd8VBhdXDZPhlQlWO6IozEx4GDgDyPjtwNOCU5Z4JJ8k1nTnGxokvz/0ZVOnKkNWdWU9676JzNzvT1SwmtJHhsMe3BW1/Nw/7tU7L8ERNRXjMK09eV/LOJANFjhWy37phFek5J3IBvNrybNRpymIIjt2+5mUws+f8c4lR9ChgWMmbIrh8Gvm93R0cKIkJnkcweARBVo2izfhM6cJ9VtnlzfsV5jL2apPtx0ENOADQ+Dzl0TFebGUG1fsdFsIMmmfvrJMIUwY6zhoaA+c8M5kY6J0muCYT8qRr9OsxFGV0AWgqptzdp2B2m8frjf+6xkVSr07z09REeB2M/2DMhEGPPPszxEjLr1Ezh0F4VTKDjWpAeeAAKxeKzOc+nMAXLaoPm5urZuxYVrokDmDNnlneTG1zmTk/v0vXuYjG6yC1uOZICmrJ/pMQg4b5EQTC6yV/G76+Xnh9HRpe8CXxsscxTy8A1C5wx3kyjgliJXWeAPd84Xh1vN7j89fv1nEcB1rroHai0QHCPEtWJ/VcC8iuXupxZYCUu7q8UzSHZMH0okRYva3qVWGFSqn7n9liFYBoqWr824SngCIkVg/10U7e83mHKRRy25KM2kYZx+NYdg53cyTZweabK0EEgezHwrNENbQyezl73M1ukisbxAZ2MynqxqO4qEW8oKky+6wARWdnp/Me6msbaLIQTD0FnHX1ZeMYoGFgFKzMN3k/E/T1IpxudnKQE1BsABcEBS+iYF5SOmYmX4JT4lsMbfqQw1/za6sr2cuzIyxLh+E1oR7J+bj2PO6Dj0ne7GkCfD19QDvXjcqdUwkEeW5tx4gX9X5J5YvpgJoxqiiK9cxBua31CztkfV76LTEdFFcn4sY1uDqnrrj6hoLRmF129ckjDzRGs3kFautHeMI4U00YU5eQExHkaeDFyaQgF3iSJ2N4uO1CUyYeL5j9Gu1Ud5JqIIyYdeOn42QHJGSMhmQ6PxbHZdk1Gg5pHsCYJ4Hp5k+AQTPezsf/xhAh5/+KpLbhiT3WtsTylVXLUirz7EIMVNl2/gZzIn5stmmvYwCVo4HonF9jk+I/dhqp7F17/lI1ZeJHFZa+9SNmvb5uCDh/c8fFleN+xhKHP8/yx/0tw646IEuYn5+lCSybAlU5V/ZLZmhnaMHX12vkJbNpvY9jtMI97vg6O97vA6/j1FnfdrhNYDIT6/hako+TJYKdIzv1mi5mRGn7q0jJQ8S82WLXKe96/iStNdQcfEDgz5IanR0kqPLfpDR2HilzPa1nzzgNjCX7zwRiACoyHXplGc/+RuFIwuMR+xqqmX5AbjAmAJ0DRJc09atJ5yJCBo/NKSpgdlEUBj7sxIPBKUABn5ocRATJPboZy0c2KYWd3Of/e6q8pAfrgIr36FH2iNsp3p7Y2VU/+lDDLTRkJNUvpZ385aEcTk9Cz7Miy/nOpnlZ+rCeHD8rz70dK/vBhwtMZKYvUylsR+llmxLOq421kL9dGO473SCfaQIgOYquM8+PGdsug2T+lW+J0RxxmvKxEEPGVyYgniYQZdIhGy9bMmFskW/zxarLp2nd+H0y6qoo2ovMP8dKVfq48CjQmfH9Pg3An38NXv6D6W/z+A+0mcufnxX8C2lsXN4rWhzXse5h0uzVV1YxaB7BJWC2zRMJjqOhveRLXw1fc0PY19drnil7jM2fuvrBOBvhPU3u+DjCMUIJZn4JWzjeBmYbzTNm23zxOkeIHzHHFzCZKGHgFQALX4PTCGFHIf1GtxCZswO6hflyBO8t6u1LzQXJ6ESEXltvurervLykK2uBATGeq4RGMzfSE0fJgF8SymBo3LtCHJWsBLnNP7ksLbt6PvMAACAASURBVD/2yh0E8IiDJeXXhaU9bsYx0FIHa0g07PBnoSYdzHZaUYIVK1Myi8zu1hhoHJZ8THnELTPGLO3r1wvv36eqAE9+5GDpcIqAHwZCWXXAAtfHBNlcEvfoaEEBK39uxJVjxD67OWXl5JPPhbUx0mFfTWlaTnCfspXVnGyjqP9salj6t85a36VKvZt9r+Nm3u6zIjUUYwOBvDSIVAgAOoFbIi7nBU/r7WNOdVaT/LZPF8Htp1xdDID1gesfrXZoh1uFvBxEQbbaJmd1U3lvz03WHfJlRqNrIQyxfneDYefQhtsM5cK6cczYyspEtz7w9IP+yMYNOVCW5s0Ul+KjAHaWdmSX/jB4mb9t59u/jP9l8Nx0jta+DNC6/BWYLd7m6rE8dbZq1sWsrNzpnfH9n2980xvHQeh9hriw2Le1KR/73E2pS9f/t5Mbb9e1/je4ekp/D5DY/RuTy08IqzYrJX/HW7SC6lxNaW3+dTOjEjd7HE2/+NUO2eA1AeycrR2frB24cHz1b9jSozPa0SfYtZlY8oCZLF7X/oc4I0sel9l9O7XgRvYiEnbXi/ITbMepvCWkJaDCxCjFAOjuENMVo0/yBPYKrmYDSS7IZ7tQimopCDNmiAASB+OdVdnYTwbDCugCqx6FqDfyOXkt54oGdvJoKWw6p0cxkS3tTVoRfCeCzLFqkleOHfVRhjRg0tFQ3n15Jwu/rK/1zg1d3ycINL5WxJQkljZcdZrxu2ZwaMkvNIaHapTYmCxyAH+k5WvwWoqk0AoBPF6HvU5vjP1WJR2oU0A1ufQgpYqfz3V5fS2wRizG2NkX7TvpC4jOObTlTsCKSHNUYLOrJqFVBlNmbHVqfKwPeyhxU+wDll8Mm11NIgtjZYZgRKJSWT41xfRUwWySn2tNkKJHO4adSGfCB51W2FLT3bQQg9agoRBy8kfIp7R2ztyxKAXJ+iDbB1oQPM/zKTOmfApmPR+eAO8yP0praGlRONCseJh3JsgZ7wwWCgVgTph94mT3oOsq7bn7sOCO1aRX2S6HrFluu6WhzW1/LJb4sI052KtRdGYFrxTp6Bh0NtV5j20Kbc06KYN4+pNpBMfnned/JMv8bc7Q2izpMc+ZbTpzayccHIfYPgJRA3PXEwgGOB5jX4HyMSYiZCZ2TEwghBTQZJG6m+1NAn+hSKtDGKLzCyvLOJKTanPnhTpdjOpO+LP26FLqlM+FLfNeEaHqcdxdMewkp85H9MWZfX9jar7spvUhyPpVmZy9uHqaalnxxg7FjqBUJCzPVv3qYiAjSIQ1MJRzbrXZbL49drKYCpvZTuT0qWiNLCtLv8WlQ1KAoPt2sw/y65Jk1DufaO0Yh7sHpxhBmCzfUtjxn5kXKC4xPuYWvaHsbiMbYo5KZCHpDHECBBYNPBDQ8nmCQtBSegmVSMbSXjJkBlwyzL/uvFBdGg4Ih5WWUs0N9MWdPEnHmJHN6mczrw7MBdqy0QkIIFRBoAUJrA5sEKXMn5gL/XKcd0iWZDgRZMYsBVUp69Ghadnwy3eeOUL/VMIX1GjljXWunjKu2ofkMMC9A69msacSGqHKAw1DEO41BERVgeAnAlrwWUnv4eYTsy1amBU9Wrdt1Vhmh0J8/dlWrzxelquUaAFlBUoLCr3nyJOUEApy9vlDDLdJz3P/zJvd1LsDan+zjv9WucUEF3Qc/mA00Iyl818LCw5T/IravVWnaQEtvrqYv09aGpLggaaAXrJ65Kf+nT/8RxOAgQWEBz9xsLa9TkQEt/CWGsNIwo0zY2uZtDNBOXd5sxNcmFsdWcHZ8zziSRyAXtGZKIa/t/5cKqFk+5e6Y37K7d/x/MNEi9rdFri21e3meVU+76RNhja7yh2IBWBL9+5x1u+sTjoTKGN6YWf0QVxlZKksgarxTI4JGf95HU8DZN8UT9Dl4U0+yb3vT5HFZfmb5z7xlc4/I5Cud4bxZ+TL+nRsR/pLZZsKVYZKsKIfDX38ZMeGqILeWf2i6FDgRqmX1RJp32VQCgV6suM42uiMcgpAWz/Vi9B1lf0XtZ8EeAJUagfOd8f7PPUb632GHfQ+41IxwGs/Ec6H9gyRv16SOEiqsywKn3sq9d2lMv7EOu+U7QekPqrqHnQDgG5QXd/C/h5fD/j4ryUH3P8x8p888IhOQF2+3+zZGBDTEQfhrVjiA+4uSjD8/gD/IpVf/iSvR01hbwEbrYAMeX2R8jG+Qz9XbLfo7AS8svn05Zmslmx3poGmMbW3B5dz2b4bKQUgrFMYwh1qxOJmU6wlBae5ukzPN+ByaLG1Y/RSZTnXiYxctxQXZFueClGzE+d+rngNEt3nLB+wPfrE0ix9xE5Wqb45lRecViBFAXzGbk3eOj3zg2l8u47mIALyuce2XC/Z2T79s7DNxsz84NZ5ym5fH7AW6yBPSPTb42Oys2h1DLkYU5HFAsIj4VocKhPhL0N9F/fr+32dDgiSELs7MEzaDU8iDwe++tz2E3SEVMkV3PEULlCurlQsLRJQhbfxT+52nhk1It4eZcM5S5OVl/6xpb0owwUmit1hWHiwMBRspW0kY4yTTzxWNImw/VVQ6o72ophr9DVpntFkOdnAiNtJYtbQ0ebZNp791Fj5ZyKL+WfGcTS8v9/a5kYnqI8jfGSpsJ8D2MqSbO8WW6svl0GOXvDyYPVmyxZQv/Qonea0PNrUdXzGdOcjfpasPyIrue5Fr2IHX1F+xoe3hddmtpgU+Bwq/aTMP0PkImXaGvOlA8UZ+ezsHGbw/AImwGADeGlPOQu/YXB/cNzTxCtAVHbjJE6fTkm+dNm73R8vqh1dP2BgY/wUGl02hsKV7SO2fjaLpyEQMKtjpMBYxLaiS5Q+UevHiBnpNPSTfZGyKlixkjroKOSJae+9gkFzblQ2MejmGUolNOhtNyrr20o/zSLTraFzREvaeRZgGu50a8+YDIwsoFh3dvbPzG/+ts8HaZGJ04Z8EDQBaTdODVY43Sf7UZ5Y4AsoAmb3mG0glA7DjJTeZljM3gRlgc8VZZiDdPXbJ2qt3eMXhXJmHG2Z1jN5pX6qqvtDXD9KOfq4pLYoTO4DZ8jrzoxjVnSf4ZaUYmdlMv5prhqYX7ea9oEAv88s1r+NEXW1eyfD6eML8qK0w0O6fh83zcUazAHGj38kAyeAUvVoKCJLfFuSR5aQQj4P7FzoSs2fiMg5aP2k8ihwtAPf3+coNs9rZYyYb3T5AALh7HZagNDlLkfhscp38SzSfOFx2fRETh6u0AWYXQwCCR0/qP8ve2+4JjmqY4tKOKpn3v9lz+7KMLo/QNKSELYjK7tnzvkue3dl2AYhhJCWQeBKy56kDdICFxZyLYYwll3G4i0rqQSyYyAKcqt8d4iGan6uq082E259bqGSI9HVsyf5ze+g/NQYpEGbccRuI13ukGwwyoEImRV8oU/L7VnOCE4GDG2SjQ+epmghlphh4EN/k02e6BmvYyiyhQNJF1tZOc8efh+t09mY+E0kRzOdOvs4h/199gF051e8zj7+6z3SHqB2rnyykPh2aHvZJ/0yGAvNkFoSIXoNH+qex2dc5i4C9bPE9katRtbe4qFH1RDH80ejGNcEPV95noBYkwaFonnUxhrXb0rhr9WpDSDiuRYVCQ6Zaa2e1wJZyW1cVqNzcasXz+OtJ+YXxrkVytEgVza5qtekzvWDxW6rflYPyQem2+CoB2am1DYpALC84u3IYIMnfbRpHOmuNkaFpIoxHaBldAUQXTqa40r7hAn3Qi4S8boCvwpuivwGNBSsoO5HR2D1Qx2q5wIyirOwLo88quLMLq1yN1lhv5n3DPdwJtBqY6A3wX6j9H6h/kCgfUuYSBSJ6b7SDz5lWMfW1AbCyRIgBww1YBB7kLpWpN1nfhLWs5QADX1gamNTITJuRD1StytSJ2NzPGfyTbc2278LVlHe/PAsAS+AflD0fN9pj4+D6ffXe9DVLRIT6PY2PoDA1OfsyegTOacDknGy9ACzMuLBjSfr0OVy6GVYF5jNhEP4hyBpB2aTQKFOlDeUf2RNv5EyO9W5wfC48gD7HKBsmqTKN3Njcy9q+JN0Qz4xkysV74ZgGPUmFJCb2ioRXHVxkX9L/VEjp7Bnn6vs07ZmyK72NDuw7yUhCvZ+3POZUKJx3qvOtp6nAs8+vrzVD+rnSe+zUTsbHXyONhxCTTo1Hrs/ZALZ833S1/zvfY5zjaWPvwhsdYbXfQ7Pmdkx2htzmA/zI/WIXuoc1j7MLqzPq7bkNHnbv0U8bcQfcJEfoGUW8mNkJCjw8oGFQvGvTm9csleGIOXHCZxFXrhLmFdqN+T36afzQf7LMSE+1rb1yXoLii9l95ANulbweVGB+M+Q3ZAJVoagSNYKkyPDed/xhut5ygiHbRAq1wIIRfcPwyyUOpi0Pv5JdxcLsFUmq/vOodWFPym068Sb/HC1xep228f+MvHq2M2p4zFq+RxWUTAbiRgQZQ6651vdpu1c8NP8YMgMa9EVGZuZJCE9gibgcdMLt7TOfxIQwY78BHiRnlvJVbeUrr9g8ABbLyY+mN5f5+CbhVqfITJ9+pPOJPPzsE3GRzJ6lxGmc8rYGU1MneZXvfxrJ+5g1X8n8e3Soucfg9mFYAGYnqRn4+HTUfPt9L1B/c265j+7WIRFT6HM8uAifffd4qrcYxFVGf8l+X4jyVh6EbIVJZk20EGjgVjhMNv67p1eE2h+vc9x5Nb7pGOeYNDmC3knouPsdBzN3KZ+gvbrfdLX1zni598nvQHYnmc3oGyztDyP1tQVGnvBYxrftxZiGqcIyQzFK08t8OTLnW5EB/HnW4sSZFyOi0lpfjPbR7meMaNk5vt4UkjAr4Aj7gYHAO65JMaxsWsJwdkYr9yMv059A8/lwfhorEMDbliGOj9LCB4AaMmaZfxWpxpj6gYNLmcPvLhbrWy/Qrel+g2LyuwZBVfeSX6NSz9YSTKgKxhGwBF5V/ARwyJwwT2jClC23Drm8bWmWV5zS4XYjSQC75LlotujYVqfsskSd7wbP9ZuIMXxvubLsoMRA7zF3kbQ5YBrykafsMfuLi2zGIH8DOLzcfwljKzPrO3i9wZenaAyjGdsg6Mp63FWHVFLMIGuZY12x3nVM3op0mbNF4oNPtUU5XECrYwYNcpKbZG1KFTip0ysJ4wEQ2pgllujRkx9glhtX7fp0vlCz0LtzTMiotuhNvoZaTnPcVTPJG6njVjsWmyHL31rm1d9sXhjgrGAArwFs8WzcJxifH79gpjshaTbeSBX9viaYkFgQ/OeNBHx+FhSyDT1gshHedIfHRsQ5/SYvUuGcyF5SOJpNaXz+Qm6MUUN2dd3O9GwqyA8ekBjjis9eWeckw7xsHO5/92Fjt7pmKEB7/dJ76PRcTb6+jrpmPZOT0zofcTK8+kbsLqMcIL3OYDs1+83/f37i35/nfT1ewDat4LZ9ww/EJ+lteP9yJFca426dGIeNm1+5P7++C0iir46iXR1rMEF+7V5GN7qalkhT2WALx/pBhmrPyElN0ti94ivoXecQ+Y4cN0DBwc5mhMH8GKfOOWfWYMeXzH2QVrCAsIzDjKKedChZqKJ1GXMsJfBSaABGpJ8rmKygm+5MZD6SG2qAk/Jji7qXZy5QdrVwfEJ1sHLWOQqeo1QO0/KwSHXhm2nF5+qSdbVu7z5QwmxbBpkIctGcdIvG6vhvsIvz+W16HFWkVZgKdWNbR42WzcErjxrTV27TXz0EwGoyrRlfPKUmKKOJeCQ22oyBjpLHwN+HN9ZHe1XkMeZXrJNgm3R312o68rb0lWqeBmQeAOGvaX5rfYxU6NSGiX1GK3heGyplLvF4TY7Wst3zn91oV9Ho86nsRAc8jJU4uphiT109ty0C/zOJZjdJb4EOUs9yMcFycW92DM1ZHtWAF8+ricUrto76eje10z2uxjvqY+zUBjd/JlrzaZna6eu8qFvCQoXfAgRuLnCXH9LFhc69DEdIvLNGnp/E5eyzIy7DOyjQFPdRvhPp/NkOo4xU/p1djpOoa93p+PoxK1T4/ecyxrjsXehs8+X3DaxxqTb50zu+T7p77/f9Pv3/O/9tlnZr/dJZz8nYO6+MWxuChPqw683IulCR9gXMEKcDMhm9c4L88HgBTlNI7pV1GQYVd5tp5nxWg+yZo67rXF3rxbDFb5lP58ZsMxXPTLMpqOuZKeT1ytXc7Yobxov8WZOT5CLlD9H8WrgZBHsOq4CrOH7xkTLWZd6H37gywSjd08z81lyYywAfZ2NTcYoxBnq88A/Iou1Jp/X8whBbJRDhBkAGOjwTn0QWpiRWIAMEXQSmO4n/Z5qM8iROl3P9cQzVPOmLs+c7jECMOVO74AezHYxSa1zRBQ+TQSzXHj2K+CVybMqierS0uzlBo5b1J3wBS+zHFkOUCjIYtoaeIafrR0YLsZADz44NSpZnYwagBlQs/Hf3NiAE4RaB74bIdBB8TQRA+xrqr2s+8wB3HWH8TAb4iEvQtR5nLhAOtPO7GfGCs0vIAzmxl0mkk5f707tOOg8z4DrFc5onFwGEgzPiRL38AISgOYlmL1JN0DkMqzhiubuQVmfxMdPwgUWOs8Q1b8ZjVDWTz+D++gJnScVyfLjcSEufl35vpLOTwgDZmNx02WnaR+kU+9MrGEFPGdk3ycdjelrbubUY197JxLpdJ5Cxww7aPMTtbaRU2d0v076/TVA7NfvL/r6/aavrwFmbVb2PKnTDDE4PWaWie1Fp7Xhg9s0iMIyviqWxHUDZi9kNP+ucHDezcv19kaRLPdOYaYRVDqSuC3NcJjxeKIJBciAKY5RY/Y0ufwHGofZkwBvpb6AzAf1PQWxmiUbs9Ky1W0GWLZh4EEK8kkQUE9AviK5scal1mT5F81iTiZncRDjpgOoLHBZs+NP3uYuUsxRdeXiWFemF4pPUzxFzo+Nela4GO74GJ6bw77TVexVK++vDgJAnmbIGIJw40aI7DOt7DYQuzJ/pAFwKvADJq9o7OBMEadym/pzmjhcYvP2UMwbyacXki0DuxLheZ4UEPhlcFF8sT+GQUwN6fPTGxMQm4UQovM9Pll5nj0uWFACaxeDguc/lv1OZ/4UzD4plu3PtoP+//R/fXqElv9nO31AKCH9BPd8zSQRDw84WYjFTyP4ep9E88tcPD9f+0UE50SPmdvx6VmeHzeY9ck4luv9HqEDv7/e9J5g1kDt15vebwW0M6zgFGrc6HWMY/tOmqcZEBM1ocZEjY8Bmg8eeavGluIWNbQMOVgfkJmsApuOH52Y2sYYAb3FQBdWOjO5ceLoyK8216zl8dU/xsQuTgtZzg/DW0G6j/8hmEXsDedFljLDbqiapN0DTjHkuBlb1hyhYJSNZTiXUvPib40xD23Cqm/QGiev5g5c3EHMGSFG4eHL0B1+m/G+Wix8XhTLsmt/1CxtyMiYQenYtx3IbPwZalnB5tLZgs1PFJ1D3TREMmbNnIK3hohTKIWJZRq/WcoOD0WO9q8sQ72nAcLlEoKZPUGKuhvfeanOSmQC0MS5PYBPRDPAkvzEhH6iBBn4wlk17SscgvpAY5+JZO6Wz9JczZOoUDGIN9sXY4RDHp4Ex2Ti3JolQvZ1WB3sWj6Kw/mw2RhaO0yTIB9KyjtJ67KQBhHS47kGPzPWtTci/Xrf7LN8LJ9qgRDR2cenLPsp3k+JNR//yJ43FMNrww2Cvm36veJVPqVMOD24sVlreWRok2VHMtuyp+Wq/Bhz8jB92tSfTmv9lZX5IO383QcNvc/2mdR+Zjb2yomq4ZCYfY7VYd/HhsvGc1b2ZDqZ6H12YmZq75O+1F5OOr13OrvQeZ70eh3UjkZHaxZyhaEF77NTf+umrzd9vWes7HsAWp2VHZvBOvXzpK/3OO2AiYgb06/jF539beFi3BodrzbicpkjkM1dsO6aTTt3g1JM6VwBIxhEy0zvDahaY7eCFZ933Wgaf7x5hpYZHSx4IwQZ6isEnQXFPArQ4jPOGdd2gkfNdhNZvZTPjjR6a15zGOknsVkmBCiZLtGhj2ue5d1pLTl1l+K2UQNAxbKTtjo0JZCPQZuQh8sKCl0WssFi9aQlaY9LzAAL+M3HHaWx8nSlI8Etv39T/Pr8Y3Xs+R4FQIvATLke97OVQArpJyNAXAd5UMmpSMwRJNt95AqHuKJO5Q4AuzCU0XEtQB9CG9xYAEMMXFt0hC915Y5wk8OhuVZjCCcYNmyw7/S8/Gyn8hgwURiULic9R7sCT+oELLOzv2bfOOTZF41hA5sI+RsCbHIl7wcLObAy86/mFKJTxpFnIn15sYpcbfwMxAGXZoybW5GL8ZPMB02l2WTAmzuCRYGn6/Z55SkV4+X23oCb7Lb5ymL73BsV2RILqbQ+a6msn8hQJXJJeWwAor/R55wK5rK5jpvGahNkkxebeCeOXO4uXzbWgbZ4CJLJE8MLhISFzsl7Fx7fFuonkR6XxzS3jOpxeUKtdzp7o+M86GiHbd7UPuvnPMJLwwvOk35/DdD6++uk37/nJrD3SV/zRIPzfY6NXngclwgJjY8RHe0Yfw+2MIYFyC4yQ0OcbPzqiAsHhT/S+peTzhWQOT/XitST2dKAI7sDCEGP8thRTz6no6T5fJDmZwSxScnD2YuGm9B8R97qXdrAH9JL/Fc8LC1fDPq1bJyJi9z2LAEhP3bYyQS+MwBRRw+VgQEIR8EiezBg19VDhgc0+yBwVBAil5NQ+p7GcGC+2RAARRegIRnPBFvpNakrQaujPCSHRQTL9djJsUcrd2Dgglzn9KQPmz1UZYPdiGL9sc7cebhn5Cjv0A98MObUSl138KMF4zqe8GAlG/QpVtUmFJoIz2ZJwaYoC/YVGLum8FW3rPceMw0+AnUDAnFdLgBCieZhK1pZSoa22PjL9qRK+E6lfMa8akDz/eijx6REYkcSiTnLWiVb8meXULbY+vGCeFzYzMG+cxrtXCch1lj8KWcTVTIVd1imhnQ+HnapLG9f4DFCOcOWXlkgzdSW/Ob6bs+ZrVscE3rAO56XCmpS/0IK1T+u94G/e5I+becak0fZLy1ky+6Qy8vHzG2ckxBNEDuG2xh7Qid3sxFERF98klrEc4LLfgq1o9H5ZjqOMSPbeM7ITuoarjDOnx3x8O9zAtnf73kM13uA2S894aDTOU83GWEP5CCcBq2DDyLScIfRnBe2bmcYiGgCOLHZqe0MJ5irfCUpP2CFeUs25b00dsYVv34uYZ0j8jKzZYcDxYVWX7pPbphdzx6UlPxzs5nhfyCt/bGOvdzCa1MZB3WWfY6BjrT9SCkvwDHXlTcrUp7FudQtLcAcXmxyfVeyiaTuz3ld4nMTK2Wlt4kLo6uW4BktTn8FL4ApfH5PNkm/BIIX+bO2AlM2zBuF/mIiWLZWUFkctUdQDgSvQN/5RduCRoQc/AZUHUN0gmHUN7aARLG1M9xgPgi2ucDRNlJy7CyDfEJTk51MSbmXjHrZC4i1w++EjWqaSxxoCxhchMJP09XwV2nvngvNA9gJwyEyGL28/IyhJ+U/TlFez454+jD9U47p54XxjZR90qNs30/fanMstL5frQT1C4UagNb7sEVNhLgLjdOdmfgcs69jcuEg6UKvVyeRTv0YqyfnwfQ6znEuNI+zoYdL8SO9+jwf9guO2vr9ftvxW19fPhN7ypiJPXufL24TDPOY2BmLs52EWmjoBLJoGdNvphFOMC2vOm4HtC7AUXQPaO3rOOJof9AC5wllR/nVeOFyq9tOmJvgPcD26wZNlZjFHmTnmM/MxMcbR3Nhe8Nyd+UEJPRVenh3ZwV/OVlbNjxeDA+7hQAgZIPnRDQ30PixPVaH4Jz3Wgen66glIOgFSYm3Lb1MOGiN53qG2e0JABhiLB2HTDcoYmcvKk1d0q8icDJcVGcedDclx0DeVoaHcZRNGRlgmE+rmR/lGabhQs+I8kchBjTKoeiDrSIOQgz9gnGhuU2cjrXAme1Vjm6PKkbspUeAbyGPxcX7NGN022yddPLVAzIw5lWspxXE6qN8dMh3dCUhGBebwckRAQq2lsI521P3eM6S+hG8qiX2PbeEhZ2m4nOBWNkQrZBAtDbXVkcMe09nqeeAiYvONW78a1phoRsAuULMsNAIXQC9oDzGg6TiuFqWcJazBiwdrY0wBxqOeIQZyloZtjnXt6RcNvcv6tCmQYI3LqlfP9g6spV+CMew/t2V+266J3gt2wfpjwn8QVLlv5hVvy4//lw24eKhiH/vL/hf5Y3GJszOnVgatbPTmwZA/Joa0Jv4F7/mR02+WqPXMT+MMD9yopSlj0Gvn7093+NM2XN+JEGBrIYenL3Tuwv1eQSXfvWPZB71pePvbCStq51jbhZaoA6yACvWXE6P4iKjGvDhs2BkT+nmt/VIcTXQdJG7NhkR0Kz9mUbusosD0/AAu/nQZbNr3kJ8MViW2gwBFayao8fyuR9W/i4EuebKWTfO6o5OwopOboJABQmhhGA+qJ/c+TpbXktgD0+WeJBUZy+XFhMvgU9oAadnGj/+xFZ684oxNxsYn7SYf6O25a29771hMpI01jREYFnByIAsI57Ns7xeDlodgI/MZeeZz4HQLBPMyPxS9wQe6wsxu3NJLGkM7TBf+sI7QSI5PeOalZN64CjQ0zZpcggHMeJMpGexkhAJxjPgmLCqrPWzfLIZMOT2sC1QICIOMbuWg+fRtoW5CWMBSC15oRklLyjC4uM5Y2WiGPMXJiCGTVRgNvLC8yzMX7/G14vGUujp/FHS8wRm1wbVRccikgqjx0yX3XQNlWs+KjpPMm4q2KUt31sB/Uj1O7J/jFuvfDnqVbRUOec3OUE9SIMrxNvwOraZhk6BQogIM0+rDS+awkyNPMTgpE7SiF6n0FutqRD11qn3Nk43aCO0gJnp3caLn9ktM15kL4EDyPoXvMaRWyf1t4JY/5pYl24AWPQs7fl9bg8oFQAAIABJREFU7JNlzEGek6+j0YuPCGRRUCEG0nps3T8ck++WbhIOk3GAuWDWuw4Gx43AOHt7QxZXdKthUDgfcCaLSkoqZspE3oG7gulwx3AOqXKRfX2gk+atuXIGV0M9PltmYvETZCG7WBMWmur87U5sUM0NCI8Vigz5WMzjEkPm24WwwjEYqZA3MiFKfgHTeXU18Jx0bjzUDSUSZaTquPHNRjIIRFsFsaGXjmITRxl0SmaT/fQFwDsR0KnumvjFQx67thdnoyvdwJoL5uGtLz9FvqZQjTjPfztaEdysQwrt4SRgjuOjEdlbvOmVsevLaxDqrF3sTURHAiARl/FVZON4GKI4ha36oueqIpALkoi/AgM8WoPAO/3FR2VEldldtss4xH3c6Wyq5Zp2S+/70ORA2/wGmGZG2tpmu9QJjjTmkTFGKeutoZc6ObLGyq8ivAazBO1V+Q19ao3paI2ONmL3bAXjNmaWqhv7xG2s8T7OX5H3m+XjzwkW/mWf/fZc288Y+ihFdv7Bij5OpbHcyzUXLdL1C+lONfbOCUMMiInaBLPMTI2Y3iLUmpC0Rmfr9JKDThZqZxvDtjV6sX7pj9yO93lygXT7aILMeNnzPA3cjmcKZseMr5Y1eCU07jUiOfvYAznjaJmJXquTEcKy5lqSw8/do2bKbAW4aCJaJmk1eDfPeTJmTrXsXaL1SG3RNiU2OrYpsG6OQG3B0w5CeURelXPZXTM9WIbYordvpA0Ce0hyLb0IIOV3oKRYSv8ZXxAyaDDz+3L+WsdPpdyp+KgAG8Y0OMD5wOFVSaKue5mxjPws5dP1tXHcjAsGv37dZYFOpCZFFVeNRUBZZf3M+GfDbXZL7SqaBsVlnAtg431Hb6But6JWBttFNGZo8RPKKjMAnQMwC+h0ai9mZgWISDNKBtGx9hBa40y/cnZ2T2ex9XQHRpquLzvc4nSg+vxsaUICszfJo4IRfF4UeABmMzu/3ycd84zNWvWSFD9Hj5fph8n9ERP/K3j5V9OT1n4oke8I8CcFn1c5IdZHT2PSCNnWhU5m6sJ0zJfTcVIBU+9CrR3UuBPziCU/3YFDBUpTDMj28wTgOjZ46VFeujlMpNvHV6TPbbcyQhv4pIEPTiGNddIQiI30tLHuFHjKIpyLmcy4xZPNq2zkWeA+D+fEtmzqRi4uvQI/drROg80ADIUUgjvN3CbnA5JVw6l+z2CLmLm/MojdV/ssXfjQxyS2yP26XnMIknpOX0TyLMRKwuvKnY8cGHhygK/hdGP2SguKkRjd7YDPIZVABrZ6wuyTFkOZ5rcz1KUNXh6rnVGOAGWh1iSXBECUlQGEOgmPMwp8hjnpa1BYCeegRsqDps3WM28njjiMnUQs8Yv1W1b2tV9fbNgBMihdCsglcpvYuyqsaoRxqH2vs9jjq9zjJBLsLy0Hg34Zfzpflw6Rm+VCT/RhaBU12QYyh9ewYOMzwqaJqSv88PKpG53IPq1ThSWpHEVnqMUkUYixKD50S+Y4C3Gtcwyh/kCINdjzdOZMsCeDXiedyYaXgQxmgTFtSQzq0PGDoy+mcO8GzBotGTNS/d3pfPuyrX4iWALxcAeE9Tn6kNaI06xsok7PH94+/ig9wfGfE/jZ9JPt/fE6nhZ8lO/7IFvNgrv5eaMLUWPqfcaeNjUlE6GxUBOmzo14njnb2rD/jXX1D0cmvEbPEIHzlPkhhT7B6wSy87lIH2eX66dpRYhFqM/z6KXTCIPow2OiTXm57AypkOILFQf6f3diUV46C+HYgINjsLE9fRUeu2NYCW3XnInAinDpUKTHZ8RuVCSDWE/O/waphJRMI1aRs2GmrEM78hUS2eCAtZ5naYevq3xWvxloZORuvq94CoMSoScR+ddemahxoy7dHDq3Rk0ENpdMUGCOBEd7rFemnjCEtlR9hc5tP72+Nqdsm+ANl3h4wcnkAy1ATvjJrFk2y7b6slQAIyu36+WN+se2bpTT+KlKr2V4o1eDhhoBDlkYYJEuzS8AB5etAwhdD19joiAwuyaiEPckFPqMaR4JA8yN5kxpW3y08jiMhG4WdBA2HzNRWB6f9+2YWRBRm2EJIWp/vjlEaSZbZb8nelvMmW+0HABujh1on5oztPssfjxbFUVVJrObaglgdzPmMxeLiBOa8aQurc8agfTvwey4rUubQojeR59LBPDzxx+a6lEOP9gQHiRlxL8XFe7EsK0//XiMyf8FoPokxfYiU9VvSb+pyJOpS/z5SDaSB+oHSWw4eGfoWEanIp7XrrfsMDNLJ5ljmQDdzqmVTtMfjxlYaUTnSdS4E7VxpiyffWIin4r0yaOO9Q0aHYDsKXRKJ5qxsUQaVjBb2MfneKSP8dZnc0WIur6gNyI5T2JmelU+CA2Xv40OFo29ZVoyyg8Nnz/wN29zALjeR/52jaYlsXedLoIM3WWsbn8xDsmnIYglyLLWn/jMYto9qMDEXWNvnt+B2Jr/65F5x1KGlRn9BZDCZMcgHTJmzHS2aQDR4XGkE3XuYUCzVDtBJnAA8BjgVMZXIeZQ61XOZ+a0xyoCBJp7NBQO+OYdx6PABCn48HhfNRaidS7652208Rd8L57SqaAvtGA5UMN4F6LW8iyTgLAo/lYxEfseuzQzrEKWOWBCSFHDmpjWXZNwpfSdWhH+EFd8gqvKzgMfXilxA57sp86cqqRbMNRENOKL9SMYnUmaBOMR+cNBoOEFAWGaehpb7DG2of9RYKlhQt0z7pbsJzoMcXdpdhp5YeVZYHY0davO8vjs7sySPkqiDpRIz5SNbaliASsbXsYMahY1B4n8XZhBlMeg01jP0vCji5zvtYf/CNvl/grXBfWbCp9EbKyS/qAFf9zgn03/JDvXtPOTNfdtfCzL90832KYaDdjYhJlZ+wKkyDyJgIhOGi9wc5KoTxugYU8NCWobiPxlsDug1U/b9nOcFa1HdAnJBLJjJnaY8HGPiaj3MTPbJxg9O9HRiN7vN4YWiHvWyQ/YAiIiOLylAKwh+UBfF0CR/hJU4FfqMPEeAODxIHdOur5DXVcZqkcfjAwDv8+LXNet9/8xYyGXtO/aURcFhitZ8HBWBzMdrxEqMr7sM8roYcq4UW70f7+Vg8hm85HylB8t9ude0HmSxF50ADtcAqjlOnqb6lgyhO8r+UL3EThoHYzjGvu9kAtrvWzgd58Sonma7vqCoj0aZRRUZp54FQzU4TQKlJtDTfJhs/bUARwjCFMl6LEvcKJ3pebL+JU6aHmd/awBcQX28G4NznMBXoSciG50GUOCb0dNyOQXdm4sJqERD2cz68jcCmb9/pqWZlVgdqezE8Qer4NamzGBXUjOEevXe/CMm7b+ufn+X4YV/+9KF937/1ilFynir3xXRAYeU/DJPGZGZ+gAE82VdHFlZCKSEXogwX5E6zNiBsZML4mHF4zvnvjxdroSoqnPlZ/ebabYIKCGen2dJ73WgeGAdvDqcFR5r4SAKWwzQN+oxiOUZxMMk8DLsUYj6jOw6kTk8XnJcVqMWOSo/o1AwQ1hqXpCV5O9awK/YfwEMFeYpGSp6l3gmic/RacQsUlVW4iPvEnPMH2Uq09w5Li2yWMbR9scPL4M8nodY7AcbbwV9j7ixd5j7uugNnY8Su4zDzfQdueJC8b8juCcHeCVGF6Fd2qD7Wd35GPY4OxdD6wiiBq8euSkO3IdDwCOVHoiRNzGsVcW6tE8m5Adj2xjdiI9BbEcFINNJjyNSdjJD3RQDLpKHcXHzjNIXFSkmQhM1cpSAYVZZJqzf1GGUIS9qFU8Z1bzC7dwOv8ifEiDCQwQCJXtGLkqed9N7prrgsbQhjhOxvZlQOYabZLNYwlCrILQKungWLDhDsLFImA4cCOIZhcVDxBeY1Yp9BPOykZ2vX9Yw9Ki5xiUhXzVLiWG0AwiHYfgt0Lbki+aTTAwO503HvuH/DARtUb0X//1i15HIxGi379P+v33bxJBEA52WHUbWH/uQgrPrLPc+nh1vNEwYdklvjfSD7OEgUaJENZ7SO9u6vdfSstMfeVyqxeofzM9mSr/NF3S03E3PJZ6BPOmOlkorhNCYxxr2JGGBDGNTVc25nWsGkXXC9FTCIQMsPYZC2v5pmPReHS1O33GFUhPR0nJSdLmhxrCiMBBnxqvLjbCkSgfYTdqzFqOg2yDPa3SBmB57NnkYJkSTiP7qpJl5sV/l7Na+XpLd3MfVUVu8j6xdCqjDT/ZadzPoulPWe6bLwelvuNtXUhVQIEhJT7LMYBso3bM+flD6HwTvYmIXkLy+6QuPRql1L+Fm5v1yC5DvLebgS36a8kJjjaCQHwOqKChbPRf3CGOBMRil7BQtVt+0flJcID8qd8NBzeTbughasRNHOgQ+YdQUvuRB70YL6FMa6iBcjBlI7yyiHWSGzNFfSJah9qpaANcDhyPdA6GdeaQ2Hzv93herKVmJSdPIJPOc/Oj8sZkq/lm2JUXhH+0/LYb1rbU3wD+lB+jofJZAC60cwEaq0IzQejK/IvbDRTMlsxrH2ps8KUdY5e7omN9gsCCY9+qA0XeKzDr4Tqy4RNI9Njl+VPBoJUeQziXW3/9IjrPY569qa+lWkq8vB7/tzzN6c454Ipz7AjfgMh4e/7cCWHznKuLC/vI6fpHkw0g8kH1nL0wTuzX7IG85JHTExnu2v7Av+Ow/Cfw7D5VVkjst86KMgySsNFVi3SXm2n/qT5+hA9YLfMY5hEPSyQ0j9nS/1g5QD3Ws8BpgFgh8p0GMn3DoPMyNvDVdFCiqKXoODmMxqwHQq53OYoNg/1lFkb7vbpB8vLZwny747Vd+p/eSyQBAzV1EvfWaK1qFmCUZzYAl2Uvbm6+CPYJi/vKcWNgTW3p98SID1R9m2PiNjZ4HUejozX669dB/GrUQCfai8YRIDMQnLnR+MoS+fFG6DoATKoqL/bYFJMgQy2hQYOXPhJsJYA5I2/q1DWDCYeJJzAauRGMNkUPuKIwFI90cncs8YwSZkOSIY/yIGoHT+PRqFEHp43GXMK9QXZtO9oYm5Wda1FqA8Iss1JraluaicRnWNn8k80tKx5y01MneClSIMUzv35DnAPyEu8za8DgNE/Mrg46Hskl4d85e5jKh5Mm9B6RnaARv1bm2qB5VGeEQF1VlExLXpEp6iwn892zk4IZ9VmrPHFufZXrI7LZZmzeqItjXUQ2K7syRKbqGC5tYNaVyuUxlT58rS6BWW9mETubxov+xuYsuGYKoAtRf3fqh740TNA7Hepa0dr/m8tHaZ05FPjFS98NzLEps32OOddn0T9mXxTv/flM552DvChSdPuOm390VlYH7lXM67+LYkOSOXAyvFE/PBLAR/QzUMJCAtTPAdbzygji/Gd8bEcdduISy/hWKvGcBxOd7zF7+5p8piF/7UHCzET3e2j71Q8bhTTbF99eNylrX3V9RyMPcGhFLLs67sowXPJ3ldj+iWU/GqtZMa4L/5ND43rGRW2/emwtw/ZfY6bWGh2vg7ilOVx1Wo3Gs/FKFpSbJlCJjYT6DJhkywYAzjwW6POF0l3KM21kWZ/TB309Gy/ze9ON5mdCKwX0+9ZCA3jjb2uwRDuXJxUF2yH9MLvZuNWG3VHXMP637WGjuWTNuGZ5PkH7IlZeCUomiKN+ZLYsPNsKw31Gatjsa/4KISBBUB82XvIikeufOqh5Y95jcBBaQF8cwjn7CuxSe/Okm6utWMtxFr7EPwnMjtsShpBWhroBYvTNeOJHbnm+D0EIDkf6HFzkPthNsm0TmISqvBARdaHf7zed52lHD52nL4/euoMfALOJo5sca8djnbebjp6kb2DNfyUxkdn1XfrY//5vSDd99oOA2P0tgFL7CEkEtkQOZD10SxIhAjCqoDbyu7wbTWMcP7POk47YDO9rjU+LPYt7oiNCGEoi6hgoDszoRh4ky5itONV/l+kDmtYnr4U9qRgJQ2F2cB4EjADpro7Zpm3IwpWAljNb2UHhrhAY9C3Z8kGGCxzvsrvIXCzpaeAj14ezVgKAlOH52Yn62enr3ek8hU6R+VUd1Tsi2Z6liQqS7lksHpmAhMiW0AFyOPCBsciTwRAmEQ7WBCkYQNZPquaOniATjvKxmSWe/OtZfkJBF4TIwapMnqaS2hdcJ2hqRNRaG0HzzQECE5F0ocZzVygPKNJHLBJwyR53C+20ZtG0EZfDQW2G8i4QV6y7Xlf9E2pE3KHpq+KGR2BUs6jDRDynrNA3U5xhHA3BCRAqQBvQ1e6yfsr2cd5rFDfQrkJk48d1zxGWz1rjWEAENnuHAcjrtK3x7+0xO7fYp0E3LMGT9pFQ7nS/hF/64hkJU0iJfcb2Snw+dlgjicmRi5twc3A5M5sVFerGCWFN59mp93H4O/OISZCzU5+bT01UdJG2srpOlZwzYbF/C+JF2R+dCFzoCLzHoT0B24rl8nVJVOrbVymdf736cZBtpv20c/4fSBozOy6IVHA43vGlXCczg+8XivIqZDeyzH9zfuBFdgTG82kLfHC+8uTADvwEw6OBSAvDHG8JBVx5wVsNJ5Ots40F6ik4yV6zY7ly8xcVilsYVsjLeJGbwelvsiXhKz8JRRYhTTWf4XpnLZ0BXVrzZF7vtiJs4RpjNK/BOeOjVQTzJoDFg5iYx2avLvM8umMAqVOE+lvo632ObzCf/talU2eyVBqFoc4ZF8ztRzV6kliCOnMacGbzppWDZwumJlp4u6g21g621ZFuXdJetyYCYyY7pLq1EXt8EIFTJ5Lex5Fm0qi1GWsEh7Eb+EFLpqyhgcclXcL+r2Jls+Q5/M4bh+zFdOdQZB4Bo5+Fnf0hjAW0UyaoC3KbMhGy4yBws48Vw5Ib1cHjf/2vhjoEgc38IdAIh0ikq78B3I0mTeA2baF4hvlHXQFvxmVMCi5QxcLLMMjPnYxv0NLjxzC7j757NFC4EGvvWlr1nSgIMVIaV6K2UGUGlVyYw/BSgjqhS6gghWEn1to3MCyNn8pl671CbktHZlugmieb/Imc8v2ngG3nOnVYfkq/HO/P2dhlDc+f8JQJLgPzIi0D/EF9jxnCSqr7+OwT2nPU8vxKeaZm/wj8S7Rqq5SdoeNFwheK8DkcJK44z35TkKl0d0rLl70whnX83VluJSwkjYIRiwTB6Fh54Ibh+QO5G4CaCNmc8/Q67vOjW8Vn2IxbzQ/cgqHeFVmmwKFT0vJwmKmsaG3XxiQxgIb5ZghXJAMfCCQCTnGjPXljPeBtQ9KUlrwpTR2xdOrnyNC/hHh8486OlzpPGYcmj3M7fFSFpq+/PFhc5R8ZMnZ1Ew/EUFYitTI7g5ZazPDbPZwyDZq00I+jPZC3mTYFaXF829FkWiOTgVg+2vw7QIfueu4zz7sLyXkO3mdD84q4efTJS35FyGPBoz3FGuogFUKQ5g+1aWEzV15SwEpQuVokJjDHqac7jKcen8tqt7QCVTqbCsQ+8FlRmXW2aeTdhugmMjTeI59+5cvAz8zHWL+SCS+8Lr4Q+iBwH+Qb9SWJDfrRAaaX1YHusaWzjAbcaj/NnsWxNrWKFjAb6oKxYXLcp8W9oQ6qPII/wZLYV/OutQtPrNjZ1qJamNmNtRVO9mkyIce6nhWkW/YlU7yp4EdnZyMjVv84/vMCTygjcNuzi/mSKhkZwWsXUoZZLo76NJJ/QhSP0l2I2lW67MAPFJRpzIoGlwT+l9kOaUGKuxlWLZdZFJHqLRWMXjZkiR48fuGD+Cx57BJU3QgGEYAa8h04eyBj21QNw8HsWXZORQXDIU3HOp1SMIhLX2+lsalirywfxWsZvQt5GTP4fGMk7u7Zo7W9lynPfGXDmbMS0dmFGtOcBRQ6375LWHcoMo3z63xXo/O04zCMIS66MnJTlg8AaVmD+mHTthidbNHxNxM1mCEtdBVPg2Aes6zcxma6drS5x2wKpg8AMl5o59JzcMaA5JKDuR8JV452I8N8+y7m0JwVk82YM8GB+whQWXMG8jYTm2ylVQ9ji0OGoRtc5Meve41NjY3aq4148IPt5UwP/8bZuPUQK2g96jOAbY9djXyqbZtvB3BAAOQrxqctyWPtpU3EHOO3v4Qkulbc9aeaBbwaYdUxVvn0gkwh17Ga0gLMXjCRweyioVswK/BvSh+Zle84kB9Kd3x+1zR+16z+pDne0Kqs8b+a/hEGisZq2NAHVEQeAJ3KvdmQk1Hlt0BRnV5h8NNqFGnG7ZU2oLAFlPPlLyMlP3iHby2z2/QQx7UA2mRYMtnMsscnJkJmoNfyZUrOD1mnCRii3V131AZHlvhY8z1AqR8Ogqs4skpz8cVgqX32qZbpXeYsoYOPfk4HRfgCInPWVkj0cyATVC06SCgddNIOfo0HFL/5XKb+YCyF2YpLsQfkFwmAQOJ5yf7cdkGLtkHL6bj0AHvcZa8vcWNjXIMZWSZuY2bQBYGAgw3Q4VeXLLRf64F2KeBiIj87FwTh12JtJeJ5YIHvza/FCZ2sbdJHW4ChckSDNEt1mm+/7EeeGR2GWU3QY9B3u2RKsot2gbE/ZOo4DZqtMf33X3/R8atRP4X+8/s3nX+PuG9BJ4IVWjUaI1o1nMAJwcY7oaivYKtxPC5AL+iel50nqoXyDls1HMTvLuEhWpfyZDEY68YjnK8rXcvicxKzRQoAXbyfy9wFGEXq9vWjkqm6/J6zC8O6tqK+Z86woq59khpzUVeclcWMRSGotwqBWEwiYAivAjoG24hvVOHHI2E9Tjgetnlunv8cNw/SjzQ/tygZvKsWI+4S3eHgz4bPwD7N5f9we+FF+1+7TKujgTsTfNz2cmaCKs1BBaY9TXCaYfwG/8PGWk2n6sTowJYs4GVsoFed3op7oaYJRLjKk6TMKQdoS7XE9TiBs/2kiP3KTH1gCMxBiZ5KN+5qf9nByCzUeYAv0Q8vE0Xgl5uwvFXqSwJbjFyIm5w/rSuZqDw9h0yj4EtzU9MA4dwder6VEZaDYRUV2JfpF1AX0JTn1h31QVXE/xMRkrOT9E4iMjerDHDt9gcZEsL+X2e3uPSp9ikAC3PN2wV11GZhEOlRXXlA4OakJS0TBWy7qRjOfA3VG6JTtIa811hBKegKAg4NIZePBWC8aMyKN6L/kl/09zlWIsbMuMvGwCSh1BPwW0wHq7TIQg0Y9BYVnR2E6hJ7XKGK4sl2NkqPB0/pYFkmXgGCDjsESlL3+gJ29D4a//w0v6Rh1caL/1tAqshroVwqCz/jNg++5MCFSJVP+9cu4g/46cIe4SdXtj7xIbGVJubcGFOn2iqp1tzUunf9F6LVDGwbXLH3K+D8r8LEbyXeXC36q/+gfSUhDymL+rA9sSOEoIE/U9phMKWBaPXDtIjZ8soyP5D/4y7KGTOzD9OieOOGfdkrfvHHM/jOMJTUYk0hzm1SYb8f6FdeHg3czLQbKG5H5g7vDGijz42PmRIQzG1ZB/2EQ0QWk4ul70xwVKQagyblB0fGS/m0c66SZXheVLhd0i44k7yxCkthvBldeCSJ/aFgirrPbuQ3NRE6U8VxwsyXw8cBzWL1S1a07ID19hzkegC8geGm/GXQBS9J5DSzfBrhTDsv/OiB0k2PHAtdqsbNmcaZavPlq9o7U23k1A8fMOkBH2IMd5qf1iSx8A2I4KDQmXk51Y5fqSxCPGtVyzNc5+CfEMsORUXgW4Q+Cnd2jLzHiMLmJ7AlCAxGl2uLm+Xdm9akT+Ih79VRziQ0vqR86tmj3UAk6YsauRPxWU3QLfwtbKdOqN5NnxT00jFdp/C1LFQYHrIQcIrMc+MlyMfoqb/NYwkZDXq6RENb3qdhBSiHXN3y1IUUSpjvYfVjaj3CawotqVQ0l4U1YAGz6auA0ajtHECZnuWEXDp7v6s+Jf1KWPFke13Np8nFVZn0wyxKbX37fUzqopI/JfDvpApozrGq9lvCgAFjEwbhkwR++pNikblY8H+RiG1Gdq+iyfKY1VyH2mb8j2fuYyrqCwV/jo5RjcFcnmQ8vVCzAWpKRm3l7RoYZnA1aGxauDQ+GVt1CEuemDuSLILj/yg9B7FEq4OORQ2RRnJ2jZ5rOhAZ4MHmYw2IrmyO2Sk/msr7zy1dCNH9CTFd9X/OyqmpUNw3vyCxAfKOY3xST5efB95RGaB3Z5gk3CzJJH6bghRi6udJ1A4i6sTnNIgTBctXH58HJHHnz4mH7HRvDo0tVwpuvPEGmgZgdGVTMHuI0YRxZmAQbYL4QfaGf8i01GtMNivUhxhCxljVN3kb5zJk/PfXm07p9GqNzq6fZpwfWZFk9RRkUmwD0dwoSTQ28IF8uvTx0jl23UZ+iJZNZB6tECWrKoKmXtvCBKsbmlc/SsIq19Qj9qKqt71j4jK2jRjC1x4Uu+HQYNv15r2WlKEU3wCz1ykZpNlICQw8oVGlzxn6GM4twPZ/EVL5R9M3gO9iH5MToNTfAXh+B2h/G4FekCt875Ok9tkMxM+xVVT0KL2uxbMbOBkVrgB07Ug1egVayJ6B3NCtx9q45ReKh7LryWcAXymCVd7cX9uxJGsORisCs+FMQ+jZDTjC2+7E8l0JB6QvW9lAbsvy5xLLtfbwE7PoYENMfyOHFflVjkYF+4iJ9BOV2M8dGoPLrRsGbTyy0Yhtt7r0GsExjOUAjFOyj1Mx7ton87AN+dDb4NSaxq4eTO1o9DraiJPsQnTq53ddnw0A6Cc/SV/eTIhhlaO18f33MREnJNSIFKwyz2Xs8bvboCMDNhKEAGl2uj8etLVuPYM1A69AhXHM6K+UC37ivGA8B5RzRgqf0W00jmPQ3f3k+70UHhmoSMPXMVG2bTOD45KQ39o9XwjYgN2U9dlJOtP5JfR1nKOMyJg9w027sw4Hwc6S2UKi+SGR8ULEbdzv76kb79PjQK0tQn4yzChg9MWbi69KXh/GNOsqiEQ5yFwqJjH6RB4ra2MhgVmzJTDeUOyLuzebj/ngSrDE7G3wH6EGu13KAAAgAElEQVSvKbZv64kLdxAnyNBmo2UX+9WzX6trCvIPvsMNQSqR7WsNKKJEIqf7Wdlr/vZlYFA8SHmmfJPhigJVct/lMJqoXfUM10hqfxeK+rAqgL+rfvvDpC+COo4e9t+e3vP+IqI1b0v3Lrqzrv8u/zMZ2oysrlp7rCBHp5a9P9uZNTfc4cindUQFMtOozLdYnEiQOQPIGjtX1FwbLfXSFaC9Yf1RmrR0ndGMeVFbYTPVTe/qZ31pCDFQyTGHSpYL+o6mMef+2+QrBza6GrZHaAyHfRb4mpI7yHFQfB24UaVS2oUK4k31ewYUrDUw825OBMpjuIWCpUTfwYHeHTfa0ejX66C//vpF1Br1s9Pvr5OI3tThC0FJSmWbsv+UeQasz4x26sLUOmST2cIJPOwzoEFGShdkRUQKRrXDEBximQjgo1wYrpYKZXfhEDZuPONFNXl+BW3pd5CVgdBAeT7TvChbnIIkHHHsLEwwN/QDRkSfxduQc+88dW7YMSm/6qK0HQypWVEOGjd6vRr99etFREzv86T//P2bWmM6+yjLA0UZnw5EXT+ICMBstAsqJxGZYQiDEd/Qhdnh1TEAhZDlGpNY/dGn3FurkV+/WmeO/cI/S0l4A1C2dg9sWPWQ8gGQEiZabveJl7ztMwYTlIR9JUNBYPSUnSpZJVGO4VbOT4A7nvhcaxvRCjATo4WvjRXt/kb+SlNW3beHS4UXTMrmeVW21oEQfrWsmklWDKe4xPYkXpbqhJJCJ/sKq1ucM1LZzOdf77uXkX3Zy9uL3O0G6eQ4WLNC0FzcXvAROASlq/lgPFb64zOUjhyCr0MCy7p+NJh+W2vIrxrIByqFQ6DhtfIXpbLCRCMdngdQL8QYQMm8csu5Beby0z2ncT94YrpebeL0G8BnamtVpFI1nbE1Q1eO3+nowXdW2AXwR2yCOhrx2V6ze2uTZiF87nrVUOF4Lco0BuzRmF6vg/7677/o9esgIqKzEbX3O2wJ8XZMx0xxthoV/CpURftZgUs3WU25aWxscv65T/UF0hwzw8jIPt/sAQgOxjmT8ptQDZRD96t3xrL2zNeJbPobRqPJLcdWQzFuIDDxbU/elDh2GJTDvjCl/wn2N9gSM1S+2U7OEXvdyWc4fQZ35hG8AtL6+a8JJke4zZztbI2YmV5M9Ot8kcibhIR6n/0cumHKSkWvn0AOsvbWqK3A2duJww3YxuYjxE22ABulupcA7yCTz6mFcUkEX4NLvpKFuDV6HQe1xvR+n/Q+l5NUFzbWDM/tYlkcySS7M2Ln4YMj4L0ixTviQP8KBKTZzCtyRHQ7O4t9gGyIDmpcYl7GOBdNU6M9x4GOMcy/yPGz/vlXU+5KdEg/wvZnfvs2/Slf1XLHd4n/gIwMKQ2/lh0hXEkFahJg2n7FaNNgBDALvYtySwKnGZDM2oay3I4mo6m5UCTZ8X9XXUYC18Ufi+M23RMqW3tRTJYvbqX8jW6qxRo5dOWWqCOjOjnyK/U3x3XK8mPlcMOJwsZwo9E8T5SIqI1ZI9ajmWgAnC5CXTqJ9LnkXzaivI3s6wuAaLjC9DK53eN6QsQAYpPEcUl6OpptmF8omvpHf/LFsYETVVyqv8YIVBFB6CfRBiGoJIynB9BpPxMQpchTfAcGUIsdgXJoqs9is4WjqBALhNZU1SrKUizQxm8LS5dOZ+8BpNpQqGQssQExsoLDJt3cjHFjlWl+rZb42MDNYhJ2SgD6U4UTLTghDT59EXn9Ouj1OkKXbIl8mm7Luw3D9xzWZ0uYwY2/u5HBv5LCbAOb3sv8L7Yy/YdGY6bPTiz9Dr//Fr3/kd5I6U+B7Z+24cP6/0GRva5rSK9ETKTLYlUaxlmt7ZXBgndtNDhMS5XDgPsDyc9L+kBH4gM1eH6F5zhmaKLtgWesuy0TE+v0WMHYHgwPULHczZlqGS1lbjRGhgSu1HBpirabk1gLNoPwd2rAE1DdKfdSWVlhqHW5r11Zga18K081IXhTAcBM1bgdHT1bu9rM26bxF3p/vUnOg5iE/v77i873SXLuD5Watc0LsUbuIgL0rjjDEWTMAp08TjOVnLfGGG/aTzie0CSgKcCKFgXSuqAzjBajKTBSnFvILiXbMMjkeFsUBPnYFd0WZRuftIvRnsBYEAq8GMfl2GbClQFLDfLqkp3O0IKMLNp6yoCJkg1I4F8zCJOcQv/5z2/69TpGnGz3eX3VDw93KFgngqW9KWmO9YdocBsHE5iHWVWiNk9BwLOCVa7YbIy19eneWL+G9SwT30RhIgjxuXShkzv9/q19azm8/mSWhGjyzFnwdVp8insVSdmI0CVggViXz9MuGndz+YBfla8Q6FnB6Pwt3Ih1lh6MBdqaz6DLTQlUVkJ93GXfbnulvZ7/KdgrKP48yT9If8YM55WRP2nck6KfK9Ejgq97JAH5Z7Ig+WpgcMoPzlcHVS5QHsFTMfBUyJgNBiTaEN00s8zS7NqDpMMOM6iv6KTFGWfyl+C3SoXcc8UXoLqF8hKK1NV9pnVStTgb81hgZKnknOls2Ksom5PL/SG5wyjaQAO0mRfnhHeVLrJSJ9KJOtH7FDrPk9pEf73LALEyYiVz1QHYBceiHHlbwiYU8t3lcVyNO/6J6ggSB/szcKBSM2wqMXxyOUNQ/RkHovFTDDkEp5kOssq2JI/9oWUTLxjMbGYIKp8zhjpczGELHB+1wa/WPpv622ls3L2Pm+NI7Si0Ncx6qxLLoN/Fvxr7fr+JzxEf27hR7yOkQCQtqUv6m5RM1z5GqQ5yYHuur1kebMXz/zzussd3X0T9RrPMHHQ6tB+Gl84eLyF92gwAi+/zpLOf83QHIXuJYOjPQMf74bGDzf4Lhlf+Nj0TWZyyHVVo4M3VcwGnZTxU1BENybvKV7Js9RW2iojwvO3SxG1o7itVQ1RD0O0i7G0F63iPk1z5eXbShb3IDViU9o6nzPc3UVtlBh/L5U9T8nN4HwbiwkYJIDbMFuN+LfpZQ1/3WXKd05kmt2PwJQlewxVA3RLRHh0MWjDNVQIHzozF8jXzZvTCcmtw9vMnOoAVUezrW1ji+tmk6zMea1vWrqwHX5hbvej/tmTIxrFKydEuz5AOGldOwI4pCb2g7IMkPFvsQazXfIPkVs3cGu9X0iD1dUDNkJ4bdtHmAXfYf7Ms54bxjEPtc0mZmTqdyhh1OWEszRncwEHdYk4PslaEmFjyJuyjd3xqlUVjc3XJmm1Wdqwmgh464nKuEQhdGS2c2ZN53BoCTQqkpsh9x3v4K1EuAnJEs6SNkD5myvNufYambMeE5sH162WzQcwOjfYi6R4Qi3Urffsinq4ICPGcibR6oJMd5BVMoXCIqImYrtftditt6wcmbI9xZFbZcyqJGjJjfAHMlbyBioWJzNQ3Prk7ODt1gkILzQwrrIh8PscdOriSdGBVLY/PZQWMKdjH26pThjJ/saFhR3Nfn1xe3pff5b4g9mkFl8/U3m1szi2B63SJr8pnmY/FuxX5H/BWkf2nU9C/q9nxH0g3YhiTA447wHtR7W/AUeb4FglZokHIjniJUeSYQ3dSOx+JAtOex03KRmtxWhe0cshgZOQH0oWs9ynDlXT1sV590JY7u3CX8nRFSsIKGr+Tdojjpj4tS5TUjSc/fj3UIcChe8dj9lvd94xhnXGs/avHuPRPmx8cIQ6QDIyKAZkGAGKxuq4Z36tj80YAjWnOPO+IIgrYouv0E8BxHgoW07uwXTv8hS12GSqAUhDCPAGuykwBUmK5ClIFBmJoyxozPLCNorQUJ87OociYnR361C0mWiyfl2OTjbY9V7jKIfKq9UZdWUIeVDyaM9DllbFYdEkm5nQv8rUvv0wQ2CpGLiyY+2GKY00SJ3uNxyeFrlaFcn/d5YeHd2165G6Sl/8mpX8h5fF/a6FHumP9j4X4jxUuyP0baBaq+7a/flxDeUvrbXO5hpnoFRRV4ByAxRCNFPzHiqvWa3MaOtirQmRsqEnxGVowSEtR3yV7bdDYjj6xWQezvvCaH7zm+I3LX7GOOZ2gZJaaOdRf5lFx3N3L9cKfPRqPRMxmFw4oVF3ZLbAJ+/fIpeP364yJfsAV1v67KN5ZFhy0hdzR+rYYAc2eKUmzyGzfIe2xPuUvHpK5tm8CIKZxgoAtbwIO0vdJXRZWnGRkAi2CHdtJlym6ZE5O3HE6pzxzgxggRAVMwglwAdhf6mCCc113AwPuKzjUUQJtWnVVx9PM0YAH0iLjf7bBTmd6KWoTE5zWYG1W4XJUSPg7vnTXZgfouUHIp14kndA26s+QT8mb8kJp71+LC7XjvQYNjTPXGXNRQy8aLCBzx3xiy9KkE48BMJHvlvT92tvi5xbE2FsiPWjMR6bN2ipuL7iiQAG4w/x5phUyouUVIotdNzvHLuygjsjARar2azSGZ0UaEohHn8XnVdV7ZkL+YFNvGgD2JRxDd8mM3xC8eoKfuLbLl2UbkZ0zW+rtJB02QaSMLIVMpfypfNroK/qncnMlnVwmPM+jqHgmlHzLw5SPlfiptNNnTj8ehwQ8zacBTWoR2XSJmeiY9UJoAY5mNCTuLKqqeXuxY5yLfMm5IYR5aFiMupISNfdz4FkVumlJrMlhVN/VYVZQ64FKLWNu48ZQFHVWscelbpixhg4OrGwEpxgh5EPwU1QSPFrVjmBBL6tfFSbuUN4P3fgkL18i/yFEeEcQMQyp3QA5ZNOHVan1Dvaocr2oY+5wlwlBKGJDdiM/f+8q9CT0407fOP4EfVh8luq6+IvguMcOyGTAJQUUl4NoxW/QRF76xBWVXeaBweB3QB/6LCIgB+wvX9YOR/gtdmAyDOEZLCc4cY7IB8ZJ1lYHVKq3eupA8/KmjHODIEW7Na7jnoJlRt90KCvQaLCVVDvLZM7eluDR/if/lLR7qcW1wD+koOXGs+a2dxmkCeZkXZH4SHQwUQKzlt83UQbQVeqf/2ZkqaKbC4P7Mv5Kv+622tYHC+JziMU7poMrU86q5EeJ6spL/Sw9YoYVNQ61bN1zBSqhxH5hOvmj9CNFpy2/r7xUTJVjWol7+6r2VDYjM5L66yGeiXUU+Ze3qBuC5WytZAW9ZmPvnFNGre/JILogGOrzCRUmGudqz09ZtpaPHxBlICqt+Z8k00VZuPrJeVRWFicWzP2DDnCzhJizu3Fp4OB4LMkJGvqiztAm9ueNaDhJV151hhbMr9apaqMyt456+DdmsrbcjMzqyJrL/I8HkrKYT3jMZqRsGPTbCrxytvoipk0tw9bPH3VcICgv2qt5bBiGOA6n3kaXNfgalBJgnzmNZxelj24I23FbRhnGNY4p58c7m5Vk8JAS6ox2cWwsCiAWZ2PzTKx4OcvbaB4dpVVxkBcTA5nhYBlBLFYdZgd41QFOWsQ0ZoEnv53d/qgv5ym0MCQY/mti02IeLOBn4BJP8DblqrriB/qTG9By7d83b40RAf0fQGw0YksIrTARt+QfGGQoSZzakuhUNTaUKMrSZdN8YSQdo7UzAX5yAACK1G/hwxDYZusYNnlpvzsY5mlPXD71a1CyK7k7GPOhbGMGQVnhc0n30+M8xqKiAR+ysOZ0CtuduC1Tirwb+Xvsv/Q08n6XYIVjqbj6r1UgjmLX7Cpf2j+EYljsabwIPocGL96H4z3UswIRFv/hs7IJ+fHj5PB91rXIelfZk6TO4hsEMh93aaMOe/r+5zPuYkVMTK01O0O7NabjdcA5srTizUuarE5XH/nO1V0qTzoI9KGZi6fKxNR61AQdXAKN5N/vuqvCorH+lCNN213S/4au/FRajd5T1bq3VFzf/uMkvPTm5xUs3ZUHSX4Oz4RW9H9ZPQA+tfnTs+3UOrSvAH33zUXgKJHf4i0n+0nKR2nl4ZMcDrPU/b1UtRuj+rilG7ncWJbHcII1sY9Hc5Bek8PATAIAFyb9kpZhxtQB7C8N+CTMDLBA3CgHfvIvEx0TEb48TNCYVUF/2PtBZSItr7feZlsREIzpDdINWIMvofgWNStpEUlsrVwFAgHt1H0BfLPmGlMR9uERnE2Rtd2LiC1EzEFraDpkw2dVO3b/hfoqXiBDHFLXA3p9umvs91Ic/w8BzHcr/hzBfK/mf8ppVulRe77ZaKYP+uNZvZ9wwqQTFMPGHbY/AlJ2yPWprBv6fKv/VWWOMwd/x9HoOJoesqgZ94JDg2vGEd6GdsZUB0ioZieQ6v7dANg9A4OMB82bwWJ9qj6fDdzGdzL8H7TXPjEDPCzWLb3rscB/F22aPKXCl/m/ayOuh0pyuFdTvlkGf8jYVNUKT5UzrnlQLM4oOT2LfU7+NGx6DefjOIGlesum0xMrrIkYmI1keK70TYa8vBxZBnY56BBf4sqtrQAneMwSe3UyYtGsBq0zeXBsKxMx4RfsNI9YXou5zDELsKPeM9OSjGeTudi/GlWhtn6YxB6XnoyO3kCZKbRNMxisvAwZONjiAdpBDkyUJWDFtTlN72w+4kC2y9+HuEieUffG2my7D4Jx3TDYANursmNrbzUuvKpCqSVlhIriiJttwaB1yvlwWTp9sQ31F4sLjdmX1qgdQ3e5Naduw7KoL4PZqt1SvIxlm1XYm9KwbcGslNnH86S0nJ8rvxsnmYbQU3PrG6uFqinlpSlFKNNig7ENlRyRHI7/lbk9z5iBLzIX/P1z2YCfXftv5LFP+saGLxrQd4/TMwYUuLY27EdrAyxya9TaHH/BPiUCaFIftPczMDvzT0XTYczM9NoNkBJvmi7z0oDl2JFEVT9fGQAgZpJZa45fiFT2LdylSXs9ch4HL1rmzB9YPW2/qNNZSWC9HgdUdRYeNRR5W8f4Ku9dtU9TsOWEapG5jH9v+6JSJwQI1FOGWK+9KBABBoJ+C/p6FU7hLjM4UpuZsWEwKbmjXt4ZqpnY+LazqX8MuuUx0wBK8zilIAr8G4J9q4qJPC5zWg6hPC1oZRjHVugTG9WRfADAyFrtTJW4vYQ12cgpMLC0yUGsxGEqQo2nBqlyQJhPbrPDO4MTC9t+b34LVm0A6+asNsFOm4fnkwE2ofFlNkYBCdaoMmcAidqnsS+MlyYkOBOq8RSLPUyCnfrMs0/t08J2/KErF34wYIn6as572LcnaZywt9WxqIeZRFmjbYv2w3SOCUAl/DvB+1+/XsQH03l2ev8+R8hPF5PdEBFYC1U9bIRIbFOSaOBq8mPsleaxuCmbCy7sCkgH7Y/5Qn0u8S/aMRvCYBYDV945ztWlby2YDB8yyU2L+XWkrSax9i+3/mSTjFsdRvnGrlycqaC1veKPK03Gboqu6M9SzcaDcsBQiKOu5eCjv86jEx3cGh3MdMyXx/dXHyFV5/iqIAtR+LT5jZu6al+9Uh/10Vf73ad0IWq903l2euEsU6674s8NbGJQDeiG77pBeDFrS8Da4sF2vjOcilAouD4CmZftQTbKGxxfgOZukUhvVY6bcQXyE0L5lfkKPFVx+jRljHFJT3fHWKa7hiUaTFR/y1tivkQ5z9IssaxIJhvs+a/pAK2AwGMcmaiLHtcJjicacAfAygzHtqUOD/q7CHm6MPFyDPpgB+lj52v8p4432OwynmeNFODbjYaoIQKHHZLxo/Q3I3tpL7RVUn6ty4BLwBgTL822TMSK5+Dy7BMFLd5U3TiDAo4CxzNqi26FCowR8tmqQSsYXAapK3jT6kLV2b5y1INJR5Idi+NMeQuCh4YAeNR+A/V0AMeuiuJ1BxOO8tAnOh6IxhnDyuvGruq3vaSg5aJh8mNNQCaSK5ytbUy/joNerZGcnUQa9WMcPZbxhO0XkBbIpeaUTVUvYhv5REewftGMUqqkt46nC2wxqeSvWhUGH58KUw8xzzHvblj78MQBOEuYsFJX1AyvSxJawVX92yKzxo3/vQ7Ug0mBfyJJ+kvYO/9Epbz05+dVfc4XExMfIwb1OA769dcv+uvXi1pj+v31pt+//6bff49TULqOO7DB/2jCVRUdTEJ0diF6n88+iGA2qxzIsaLKsEVH6CmM7WQYEUBWqZxhhas+pbzGpiG9tOZ3GyS8Y/5plgvjtBXtBzxVRS/0Kz+WTT89oxdc9a1ab43ApnDGRGtmoauac1/klw4FYK4qgHSuusCe+XePAs/IZ6KjGmxg+q6r8/Ps+Dhm3h6rU9DaVe3mIxdYSwhnR1RQNSSj9sLL5HOE8csyii2dndjXCpMMyCgQwRwKVtQOBhLzYcNLBpUC+6YncOkjnTk3EOkfuMCXIXv5WMSRQKzK2w1vYR9jm3PpcA1iwOX/PNbzhH0maKwIwFQe7RXXZKt9By7AJc26IMwgyGX+I0L9FOq6CZGno5fxWwHgijdgW1y5NA4pqbieL4FgNjJWEYiNREdfwd2cIpi9saDWQRdgNz/NWW/szRDxQ//zxOg/zga5igLxNang79oV/EGqiP5ow//BdIen5pM5pl6vg/766xf9138NiNiORiKdzvc8t5pyP1zV+TPJjvZT2uOwHDqpPwGy6g7bM77yiM0GJDuGXDCUz72/ePLFoY6zPX0A6rmd67yDedSCt6pBZEZt4cF+ed7KcHlsZ7JuT9Od4akuSp6ds92M8QO8uuZvRPrRqkdlQfzeG+baL3nhKofgOcFKc/47HW7+vnyoiYmoiztsBp4Ewxiwd+fSc2PTdQnfK9eGQeOF0soW+3NgJxhrpiArdbWk/DHQorjR0cMCEELAMzsrV2eBfQl9UbqtvqyOXJ8YnSnYsXydZkiJyM5nVbl7B5AxhP1gm79UmGNRPp+1SoRmSK+TvVFbIqo1M58MvnzClKH/UliBtUMrQ+adTTa60eeWoq0eOJuh9VrAjP1stC276/FbZhLqzlwsJa/PGO062HSes79YVgzRZUeAehDncQWuhZi+vt50np1aIzp7HzMVU8YIZo2dBRRLYAEDu2zA34BZy5AriEKI8yE47FXFqEjmEhI4wPIgclzB2BtkKH7nu4NBSrLclbF39zWH2HIATNsmOay0o428THnQSNY1rzSsEi0CeQhCc5Ib2XyL6EN+duQeFc1+E3VtCEiIxkpH7yTiRxii/SPawIpPUxbDDS4e4V1MusokQsRd6LUzoCv9ab1x4ulpX6jhJxCG/n7KAN4XAoI1M24mnaWNPsbS6GXK+tUS7iSuhvgqjJnD330kLRe/NtQuEWnWcll/moF/MCKuslwxSkQLYIN+DBKb42XdJ1NVnox/AsjR4cqkvSopS6zfaFHxm8aMkwEsYsdBxBv9mC41dn9NP4M45C2jhERnAaq7xExxEtVPWljLoaJcdD4ALCKm8QEBKG/9Ergk5olNjCGO5RQkqTFhHGObL2+A5x8RAvPALOxbRoYFGj5ka61l5YGoW9cYRJrdNF6k7Bgqq4PsZcFmaAEXKRgZH8S4tgKd4nekdr1i8pdu8g3ty/xlx8xE8ZPBoCjMQe3GEJh2r7I3W5XBTzILeY/CS5oQ0Tk+7ND7OV4Y+6QXwGucpcPZ4KVqMwrZiRPohGaF0KQJZq1/FRBhlyVssFR7YVq3bgdYXXYYKNsX4zyP8cDrllMskU+MgWvMmn+HH7Gy29W/Jwn7QG8l92KZ7qqqdPQDjFtmRRkU/iAH31wQKO5fKVmo5HmSwVM/O73pTfK30zvPk76+Tjrf/nn14X52YPCbfbtrcgJyAWUJjxlZHD8rdLoxSFVPcvpdgQHNA+eBxzYkg6s/FuCV2FB/ORvl7K1WYtxRCi0SKFIECLzIAnfz+VeDrgxHMggXNcom08A4m/sZeNVMmC3Y0SlTOZbg5nasTYAwwdlqOyT020IqIIvguqaLSSab3VUSlLBY2OSMgghE6Wp/R9rMjdpx0NiENJg+u2pVMqB2WTh5IvBiWani33g8EuwgZbwfi6p8KFHXGNPw6VkiisdLpxGWXxx3j7VWjoF0YQxJ6Ep4a5ncgrxt9Ar7bCTEruL4tlnloLx+iFU0KWOcVq4aZ7LNjvK4HqCVYOZJnG+/dOYbj9l+jXuGPDZWgy31G77nD84vhias2Ml1yeqTqF1za1vgI8wYKm8sc4abocPwQxMJ9Khzm7OkNvO2NLLgcwLFKFEyuXVRGmhfxXIijXGdbCDHakswxZAhtzDMzCbhX2CLnHZZo0tZ7QS2xeyXjlnxDWALb3a5teYfcJnuBaYuBCAXWa4wxEOZRuXWl95oDxfaGx6v68iIY15lXXtSJ/TfmuGJQuWx9GFKxYVoxmR2ehNRlzcRCZ3vTr136l1GbGyfsenfqHLld9f+glfToYkRNMSJBUILhGxjR6zAb8XhLRTWOvKr4RxYHAsFYjhtHawXcFA3b6sVfhX8+5NDHuSBLoBzuclZf1lpkWCsnvHpffnh1D4wTksMo9P5VCfXGOWZzEOWDGwrFvg31lNJogLAAYtt+C0KISNZEIm/xdQ0pnY0+jWPJ+n9JHmf1M8hBEm6DB7RZ8iKuuxGihGtvV/6i2At0RNyydU7RQOhlb+rERn418G306o42G0jzW6UYoyosYHlL/gmquBKou+g9Sofjn4moo4oNFQPoQnI20R1PJG44Fdui/X70perqrLrlIq58/oCYHSAhTxWcts1v/pZtp1jqX4bGzGUY9Ft5KV0+GzPhjhBR63OeLyXvqyEsav3AWwy843D3QO25aMWVXYAjJ/Y0T1O2xggqmSXS19z8LGdvyuQBXtbAWT4VFhyVWAjze84tisnANd6rjmXSvGd9Kfl/5CPOcZkvjFx79RF6Pf/EeoyQgwGeO3O7Sf9fZseAFokJ+43RIheeKRHXThWkKuTGXAbAK06HgH9U+uIgBf1OjhktLY3jds5VzXO0xrzQjNmDZvOL8HhXuBhNkyDLBeeds4XqXsdHJ4EYRYzqOtAvgjlKh7cZfJ4thLglfKNtHL81+ieda7AS7GXWnw95EKQzktNBWGM0sTnU2jaFpb55jee8ZwJYiY62ov+668XvX79GvX1Rt3eVm6lelsAACAASURBVHW8yEIeW+BOmOdKa/MWq4O0bvcyLQkD2B0xqDDgx3OBy3VjGhG8VAqtz3Os+6TLg2XIrohCGff+iydQdCdANGZRyLouygWG0gijzYoQFT1OUrPzGQrVyANdogFMUW2Jzdd3Nv94hdPVl3gDUnn4huqjTRlVsjnKYZ/Wo60ssoTnc5qWzo4MA/mwhmWQx7w14EOQnjppDYWYdhsq9mbgoI/WCk8AUb61Hd5dpqD+Z4JUDbXAEwMsfEP1IMzMqvwwDl7WPliqre0dxu9C7656AyYRyT9J2Tqu5eOdq5m/4XqBog4om3qvdM7rLq+1vv2QWRoUPpuMzUBdCI1QW5dtzp4zvmhJrvJRepwxFUsfYfEJ29yzH9bjhjAyebshnUFJspIOGqVckEFh6iLTH51DjXiE9/xIXOxlwlH0IPecRIDNXmmkL7SisdV7otZA9d6MOi4/+RANfhw6JQDJsv50/06g5tlHpwbxVE7ZRilbFuJPRGpuuKwis3ZP62fSGtILjH23GrPmfsnhWV1kSEhRCRpbtwDI0rDBhROBAY3HM2nGeiik4bvYiKSLW/0bIJa50fGr0et1DPaZBzabAEQ0Rm9uSDLXr0ujJgtgz+qAwSCyPM+sbfVJ+95ypE/owrJ/fNGrDGAiHPKBzfCOtgv77K7obZ+BZR7PlbMBbwORaDSsTdp4rbQVrMb+tqPEJjpcNzx5A1hkfGhAcZJVHOFKA4OlfTpbTXm9IvSTtt/uDiMqOmtLw0grsLMvyyUDqec0+IYMl/mQihCx2z/WOF0dNoWITTisqii021Q0reXk07NoyzweHJw6w33NH3aIzfITfPsSouuQmzNON/Q2Q/9y9O0lSFCGerq7MQajg2YTQC8v185Tku1F4ea8kfFXKttjjpWVAshkULmUibf3Lvii3vk4nMNKQYypPBqTDV+YbYOwfFQUdE1BJzdX7BsrV/xc7TCplDTRD6Qu2hvyPEeWqD3rFE7SP7Uf88MIQkRNZKiX/ASgvar/Rh9zEqJXmHGtnFNZqVeh+6P9q+Hku6CLYrjbFqkrcFwAb+XM8Lpi20aHGkeoLdul8FwI5bGGRSQePkxLl5SKjC1fneyTIAkqctYzzavxDA5iO5jY5LvaoBtjtkvscU2ZGewGPaoqzMBCklwAyC26s375YOqhO9VguyD7yCJjJ7WMLTi///6ir3enU8T8YZ7tWbo585mmUk0HEaggPuPQsuAsiIj8BIXxgDnGgi8hBrtY3VEZaWCxLSZjYN+y52ryJihqCXha+bdmKq/TRssxq4wBhEC/6myOZxabSKGtnezLuEQT9IQv53DI4/02bsiMi8b+BAs4ZqWmuMoJkqAAOpamRZU2X5aSwoGtC5g2SLA59TZ6qtFwSF15noU7jQ9M4HYrHcOtEXXoTx2bnpNdnOJ/XXWSUw/oOccKC8R8etss9nn+7voChGEGpd2ZYwdkSpTBLJMuJ7oG7YBTsnXYJyIU1nbWmYNEN5FGORVVx1scfuUUX8BnXqwrH2e38JmZQ/1mYtnGjAEPpVOLXUPQtx6fUrKROc6W9CmgihYNZVMRyPYvGVWieZ7yyjDCkJK15cEmpzoe9XNP2hl4TAVkcz+wMSYWuM2zZLlRezG1g+n9Pqk3oveMl+U7MHsNNXYMXDy/JvDyCnNGOKx6SyaaAOtv0JNgbMHvaN/YhpPExVIfakhIvN4XAh3Iji4alFXB17bt0n2ODxLf03sKYp/XqZb983RZquyj63o2gQBOQWcSkBSgTLGvSPGUZVVnvoY8HK9LScMyZheh8y30n/fXGPws9D6F8OgtNs+SjfAuFQ4vDIzo4e7o2bEzdqNoFTq+y6nogj6Cy7LPUx/kMKXSOECaS9/2kYQy5fGvoDTHi3o+byWH+6H3kyj8mYIi3oqqvM31k0HXudkRDWq/iA15mfzBebgyx/kxP+3a2gxMmUG6LN1CCLgxHLvjoF3pm1gUSA4C+CeM0Thc1VfEMbaMacA3FibA5MB+5oETJSn0ZRgmWl77rTZ568kx9zZrMghgNlKIFWSFikhtwb/ZIW5TtAmJuUQgeTu5tknLsyf+4lZsNzb228Q3Assm6I69q2QFn1L5o9r+MBW294YVmXatHY1eR6PXXy/677/+Ij6Y3u9O//k//6Hev8a4b0JyftI2fsDD9+UFoQULQpipHlnLEJjFOxGxoBOJxsfPfpzU9EtF89/t+DXrGdkrxy6ROW2NH1Ozl52AxtBm54qAPDsJ/J3NxC6V8ZhaGhjDY2cW3JFmVK8NQRTUNRiINB0zxRKhT8oZsoIYAgyQwagjvULkfmXfVxx2GDMA1e2bz44hlHkaWJyw1tL36tQHL+fZkzP2pRedOV7qXgBNHLxCfqRIDQKBmwp3GhDAsqMjNCZytBtBNkUHFaqOA8FnYiEvDVDjXQ3tmRjLl52xYGVnyMDXkOEKTpY0SXE1G8RQT5BVNcDIYjHxNBXVt9EEAWaaAxhQx6Qye/an/THpMuO70nIe6aKS2P6UwkZaIuI2GtR4rp21wXuX2bY+Zid7n5vYsPFKA3jiqUd2ogFJZDCNZQmPfFYYiQvxsj9wZOMZZjF7YdLXWVxdHYFSQTDLaQZKV2i8AIMMU4vDna2bNTCrfCiDGWQWpVVWAiIszIPXDX0DP/fDI9u8yeUDe+kWG/pFwexteVT+ZAvtERpcuqZpgvke0DESJqwdT5G9MlWD8IKt73NcELji6YOUY/6NtplKpl9Ho+N1ELcxhs73i95fJ51nL6qLY25X6zIOSibKB5fptTpVJ7OOJ7PqV754lpc046KDyZ1K3DLgxmJDMhrJAmh5NVxnpyjugCnAkHgG3gh6mhSzVdcg0Q1Q0TnGmNgmjytazxLIldt11vyWvRjThFhCRozx47Vw2RC5fIS4pcqTjw/22lWP8IUB0IWWF6IrkeQjeSTUQuYER+r2r7/42DYdd46mV6s7KnkIlrQwGVtEozxL+tBYlfFGy8xhaTv8jFnyW3PccJJ5NA4j2/i3ES8ydb5HvYu/WmxLagLPWpblIMiUm1sAZGEeYcOL2H0mb91+CZ2ceQXzgbZi3IgASnc/5+Pjsu2IVjK9GGp7xevzieO5bMjj++nERLoprPeDOjU6pRNTp4MVzPqGK21fy6cXWG/6+K+0Fvm0NthLofKPPgPlybNZDmb1pQUPtLA6dRMYvihbN/VZ+zypooNisOcN9i/g0WoWk609ulHO6dUO2fOs9a+lKiTDBPFLqcCfoKpIzEOZUO/BABWTASVJIux8KAYnXjDNWf7kU7Z8YpKLvFokTSYBeXlQZTBJUmXN8kiO58MUPMWDsI7MSvAR2+qToRWi3judTPT7q9FxnNSORmc/6ewDwNpZzmW9OG6v+u6pPOrxkfl/BZ25JAQSQQehtHTQir7HmXoWfAjEmOhgbCF/cJREFF5T0QdgATQKesTNfOb65YY3BPLbVy2m+uQjf6ydSXVv8EBUk8K87xxZlnEmVjwGJh18XFqZ6EyD4pvso2PdM3SvmIGXpMtVc4nYur2yMyHuMKuj2vnk5XR2Jn8NyMtaBCAwFY0ra91kaka+Ixy5bFaHQawUo7qOEKF6Op7c0N/5qQAGjtlu8f4EWVR1ePLjD9IeIycPU7OC+ay4wRazCaOVXs5mazkCoTxDp++VTkXLAHO4Oa4aw8ZrpxgfzOHPolgS22Y6Aq0zZ4zFkbR9NGAiJTuSgCIf4CV5KpvOTO5SlOm4k2NohWZYQdPwginJJkSn0HnKOD2iCzUW6tLIPizAabbUeNaaTcON76ymq6ZrW6s96CDPCaYhitjrFh/vwWTp7HboA4GxOzlgiUMRyoVVB+jU1Q2jzZ1exAjgWCTLV5jXkEIdYbKhdtieBQhuaOPJyzc1m/9UQTvgQ6N6WR2Fcbl2r/GUNbiid+1u86Yugko4XKYWBhGjlYreT3KTL3m9up/zbF27O45djn1NuVF3zOhYkmEL5Pc4R5aZ6H0K9fdJvZ/UuzkQJxpsWKovGM7UP7tmVM2ddqDy2+Ec2SstiWq/ZtRBtAYHQF5oUGSFl/wLq4UzSgxS8DaJjRoXRFcUx5tYnoVFIH01sNb43Iu8PB3jFTJ2q3JB9ll9nveJOfswPSx8FXIVzpnXe9Bji0uxwX7hGbxgMRjictu6meZCrskoI43LQttzVp2nfHWtbxVjn1DIZWW9FciBo2Z4nH6UNQLyyCuP+ngdbyBobAquxwOzBqYyUFy4inbJvzflNyMwQyunIK5F54gYZgEdydbxnKm2TU+orENPeG3ItoukxWvEmLokgR90acxzY9hBZ2fqdBILUyOxr62ZNYQXwAxCkN/MXtjrRQpMZ1kRO37NsEJ2CTf+GGefzRVgCXDo/p43c9gLhgqL1nDxVPHKR4QjK/ao/NVVSmtDSxBtMdpZbmzOUmLLyE7GqcI7I3ebyo9S7FJh4//IT/1gyqgnPqkGKV6urxXfa9Nn0qjssohQ70ytdeqn0PvN1M9OZ9fzZGc+puQg1Q+Yg50fgdlVDgD4ij+woVfq9sKLxc1NFDz4GhZgxZPgGESsQ3z2QCJHt360MNbLNdzBhoEhWvzVhS7hJgL3jbCTGYOxrPx0QsFZa93YyMoigmPUmNwSZCTl5rtBjzQyxZ3g1dBfkC25WalcpXLQcKIptAASjG8O2cBvhkrQzjPc1GtY+rl6oUzTf04H/3DMHlFTMk/W39iAinG9k5coyVcJFl323d1ODXrehIX8qmNMbUYB4lhbVNNXUCp7Fl4oZYKXzYusnUSRxtSVxtV6DfOCiqmWkrUh0DhLDxVYsowOx9hZUp7DfGSsuELp2kPsJxQQkYNEtTkNvy6i1AHd6UdngJOgM6L1qFaOUAEdDroCr3Xj54HHEvw480Cgwetqhj8dLwCzJtgAhmaZrJRGX5JtRlMkOkK4BQU66Gl7oHwQLvS5HdeVbVsUUBiUVh1HeoRF0mUetcBwDSu2Kp0feOvCE2aql5nFHhNNf31dYW71Z+AJx/myaWzp7LVwCmcbf6OttnGM9dViSvXJrCLqKNo0uwZ98NWHiueLlPd6LOxVdu+TiuK4z/PEVY3LQwsRSx85ZnJ60yGL5pIxK6tnOo9onQ4NkbUJeRXsdoMXtCUveVF0I0yNTu4UUeiwRa/MCI5dX7p1w2yXaYpTZxPDCoL59KG4vuyaOI0j9arVax4jl7yWZPqIPtRh5tqchvI62gsOzuQwNzowFRNre5CytM7kcpceZQrqbvwjldIgfDpyH3BhAH2b47JeDXGLy9E0N5egQco0sIFCi76lEgK/YPQBh64D67NadZ2S8xrzVYN7UtvYoSWhz9xZd8uDbWfgviKqSQL/IU/VZdgfKPLm9RrEgDE/zmvV7OnYrCXNWJEcb4JJ6e6eVzyHoT2DDgDVBFtmNk3rQ/2M4UpC0zib32YaB4xPAhLN0zDVSh+ZUwePujf4DPHoEsztIMHjTFlu40YXB7PWSP3DAzvLOZ6NTcl9tso71V4uYUiEUcqJV04qLw50leZgI66DrTOAKG/lO2dK4zYWtr5ZblsPJpLJoUITvPiF/8ox1VS8VNbJBbazknH77OLJ6lri2XyFdYy0AvcQdx9FlGq7cifwLIne+xcGL26xvEw6xoSC7kVmC1+xi/GVIj++GO1N7DN3akNvEPKXwFGP05wDM5hmH7fwGZRIP+CfqoGJ6cSvzPHYbSJT1nZqQRiXRguryf4D+dO7OsDUX8wjXB3IzuAie2kSI8PMc0a27HfdQTu1A4GiDHMfmJtbom3A2xmEPM9jnBZbd4lqsP5s9N5pX7hzEyBH5wKtMIE1k8gwcYIxZMPjxu4Gg2l5Cl6kfj9K5guuZPIAOdTp7ADJ5jIRJilpIh9wI7SdysF3Vd2T9MQE6eAQonql3eTCmy7YDEYbwNA+iuMnvn0nh8AKRgojAMYBoYXnRkZ52qI4ANc26CDghQIaqtW+YvuYskHj8NGDY+PcEi27LfCMqyzhLFb9Y+zp8VkE0rE3dhnGysp7i6ODzqqZFUDHeTMbMHQp9RsK1D/JlagqDFVHgToR9Sg0drKRXQTOyY2JtOWg3fEsHKKKVYKATOe8QpWT8HgBCCFxU8bm4TuTHJ0atXHZOwkzNebx/XSa94CvRkydyWJUoyxmC4EtgTMvmWdYggsjYAaG2WTEvTozTlN+AuVjV7AbOZQZ9IB9mQz9xDICZHkectVqH09wALmnXKFkthW3Kamd8+RCB/Vbi7OvkD6tallMvMkvku+ktLPpwWxn5Rh9ise+RTO9FbhlXrBb4dtyHyO/t1ETk8B6OgwSuvKgySGlNyWfQAFSU+C1FtfnduiArLeQI/GcJHZwzrrI5pmexbrHHz0bOgDX17Dn+sGZ8cEUoU5t2HbRVaER7uChBShItQ1ur/y/wC+62rQjsAnNwKuZIUWMBiehSoobCtLSePox+ON0GxnEZTnKx+JOI7q8Lwf6VZwepis1LW1reK7ymPUJZV3+LF1ZtA0HJY1P9XHLTM8aESow/dqVX5beI3v7zQqaUHnnncu+5MLAVkemldwuDuqJ/tzaulDDSmyFe5nYHINwtTy/VTp4vnZJeL6EGAg8FxlYc6jGeLFsCOw2fExbxBNoRANNBFO+qdxuVo/hmAksygbEYi2qF0zcCLQuVYjjz1ZwYBYDlm4CMMwDPyh5QlEhTlJBl86MzmsG3VvSkOH57tTbPMGAiYjbiH8jGjO25LOubg8TmJ3C1RmR1b0y8VwGDL6eCCZvXGhmvgOmgbOjUZ+sGKCc4Kh8YHkxSYT0P2QM5Jhak1OlVj8Vn/qoRKpwMf92xN5z6mOu6QF6C1fRKu/b9LC9N+bgW5TlSSYOf0oPrsDalFKKcg/TgxjRy+IwLp+kcYoU1ZNFj+tE/TLC2xof0VSgOleOiIRaa9QaUaM25h+ZidqI1X11IulE53kOJmSEhLwUQIZqEQNkPKCEQ2u8mBtQLgpq+zgoDC4DxeOVBPCnuZvBv87oGo3Kz/IicDukPhi/Kmk+NqO++JtqcCRyPhxm5jBQFI5hCzdp8rvjWHT6a3HoFTc39QjFN82nBorz/cxjdcFkx6JcCQBiVnIUiT1w/2rXWs9q08EAlbZYUrMLwc7NOfg0n0qw8LozqmjYSjnE5w6cd/wVihl4VV2ZAk31rktVWI2eUOB5EHMxRTAy7I3Li5tS2DdYJihzrO0tdpNUgdhILwC6RiRdbLnfu8F/YdzoGvY0JVOCllmvxgakISE4k1KCbGUIvE15thQFmxSbPzJWKzEKRLsMi8pnI2r6TnHqpO3/R9yfbkvS4mqDoIR7ZPX932ut+k6+21H/QMOjAfMdmae6LZbHdjdASEKTgcCICR//LZBkfc0X9GYBbF2Z8AES9SuWU5soTWrgx3sVU9KGITHNBaPRmgRdsL0QRNGZ17li0P5k36vONLnoyp7d0ZNdHRtc4ocMX8b6VZ/nXThcBmFO7/gFwu1A4PK1PuUXVuHDmUP25W0UJpAmXGLjQXEq86QMYCHjjP/Q3tqCXWp0PvLpAadaVvspME/RRIPE/yCYgrblimD1/beyoZo81Bl7Om8bZF5n1V7t1GKm1/tFa8VKGy+m9cP0o5tRdSeqzciC4iNSA28m01mDADdMI4GgUNucFU/VSPRMwdgEpwGv6YkOrsxRjQ6Y+ExO1Mm5HqKOeRZnpWaYcQgnPTk7JL9avu+1hmJC7ieFT5wbFDMFIP0a/fFfXX/d4JeXGaSiwLM+R/1ieUfsbmOW/OB3g/xorUr+YfMs/rcMUB0+huF3FFATK0ALAKNcsDgRgU7ri4fi/CW5iSfhhQ1NrM6FNVTq8902xxxuvhQDngvUetz60/EvcY71YvnwJ4jVwMtlCeCOKoiOpzsoC2Bz92ZXSggiBQaCd3j2G4hIRA+hDgvxWn5szmHhdn5u5anokt1S52CTxUxCmxflWShR87f0jgD+HYea9tAmpNCxuurBuouR286pfLScBR/9jUHSb4JZhFe7lPzT6qOnaO0zgn6za9+gjzJ9f9JdTjgmeUt35vbOjiv4of1oFAYA47KBlD/FACYbEO0xDSGDg/aGl5+qARu69Q76D+8Ke2v+54vdhHpC232L7N7m6VA0zIsNBDKuc69hIS+Aa4NzXU4bqOcGNUhf2TG0sxTATbReRK8X01ovWq8XrWU9Cq3Xoh+RSI+S7fZgncmYByKPB8qU1sc0cA5EPENjynCWgtqiy1lEBEbfOCJMtDGPTsiDYHMGyccmXDoKF2n3wPeMICrluc8uhLWptTsw7F/0FOUzXt9eWJDxdIfDt4VvmT/2RFY+renY8S8cRmtvYKKdPQ6YKGBJfJX4JGdMLo4jRlD9GJw8C5SEZCBc+DY+HcV+PRsyeZDJL8LaoLsjt8BwkeoSyFz1KQksRBN+06wz18qgT5kID/YmHL0OkWxuA3VL2MCwYSkgS/KPGRYiplV8YDtIr+AEhDAHTHWS7rCUzsXqADi3difkxzaBeYwK+QL7yQfzVMaeFyahH/jGjhJvNN9/jQU40Y+OU+SsdInoq5b31sBVSERfT6sDYLuVs65OTgyDixqMCODO+HyQbbdZTB9KTWdwcyClPtI7sSGCrLDFm05yNsCSAqw8XDYWy+PP5oL4UljtX5bcC1ETcPet5xMbK4utYzo8ZfNxUx9SfoHvYvxe44bB+Zpi6dIw+fJx6ETt1X2ToX5dgi+KMZZV3IYO21o7w18mD1RKOa9ab6D/6ZqaTSCuIIFj33wXhR0N2/cdv3PctZA0Hk1EGDpPseEFgtk/LucRsFmxsNUnsC0USIqiviSGc0X4RlQ1TuOPc8GGCyEh3GrAatitmdiEAPS/K9OuEbQWg17feRsK0pZVMK76Igu/T7P/tej/Lzb8Jbz/Kmn37y57CCgI5K/f0HnCt8ov7+awcs9liXZE7an9hMMVOXArdxp+K0/3+t8g3JwCP7P/Gkis2GT5pX/Lj7Ie04BjZKwGrcMbsKv19auQnO35en953eW5WhbMWvCFxhSsLyF/AosaDJz61mRyJYwwpYT61qfFER4HAI+mwbGKNr2aDJo6CImA1jfgbokUjAENC0Ts0Zjx4V+j3jREyW5mx+R1HTg32iu/mnyMtA/GW6AyPvh5WW0fEXfr4hfBbP09ucOp3m+uas5qYybJLEhBKBNrjjQGwBVgcAj1MI/EbOcYhfT/J9evgrPb9RSn/bKga8pT+//g+o3/e2w/Kgn8f+v0XDhBd4f/5H+fi4lIH6I1i0n0IVp7Nx2NLQW4aibxZq840cbEl1WPL87afkKS4BND8sEqipudZGC/mT2YXQqQC4J+PqHG4BvUTagKNJyz6HmAxTnOVpCMeek1uzLIQ/hfqsehfDNuB1sZS66oOSocDuAaSNQb3TmNfZYxSbv/vzWs5MCux+xH4SGFbNyGpzmv31GU+l2glCsA+znTUVNc4lQNHaPJk4XQeQch6Vkug0Ljx2HIBZuGb5elPo5Cm+y1o6czlN0vT+040wvpOiPLIIireYGgOZeODsOSKCi4eKrmUhvuca1y1586bkzkaQ60if68l+7U1xSmxe7o6VPeMgTpuCZvkU+bdd7Pa7VcWIp0irA/WtbWbplsow7OM3dhJzrnXnIUFBVy8cTZc5UDlyod6y3iS/7sHQLIClfIc2Rt5gRTXkRf4uC6ndrr0YWoHRhnpvy9GEM7fsflbrR9ioMgf2JYxX2AkCwh3hxaW0XJCFW4rTv0JzQ0rzYPygXGq8KdlpinMzZzhdBftLlof1pjLE/+sNouqKx1Q+wL9s6upOFGROJnFEv6673biSsDbliQQE5dON5dYOIOUloZPNBCd05dfUwaV+hZSp0mZFp9M/UHNKimOeDTm6/uV7WdvW2mDJGVofoXeNzvy1ZdJZ2cFDpvGSQieS1aiz0TaovQz2efXH9m4rWIZNupBTgQ5m4lZNeYREQ5kgMXc/MnJXA8Bg40yLvOUYGQGcsBJvG0P+W0s80HtWHJlbqk1jba6iUTG+AGA/74ty6FdsGv+NKlvNT7G5kl8py959lLgPt3W3FnWN0FdLxuKN1symX8Lamr5/FXq6bfIT5KS+UWMKB1xHwIg7/w52CktVqWbsrpBg+iEJsc7VqpIj4gMiMVD/LUmKadgojdU2YDcUbn2VB/kC+Du9LXuR3DAPXBbr9GH2+8kpXswv5sWn9eRB/dhMZEosfw+XGBcmyhjx9nGlMcKsWw2+xkNa+ILNsozsLg9gToP7FKHgMx6auOjuuXWh4Bs2i+KJPoXqCDoO9NyDGQ8oP9vs9LwCY1O23RV9vcTtpmqiEwcJsROJyvQicn9/D5zJ5LVDM4rLRI8N4pye6IZAl2OvAnkBofzsoDYgyzjc9NJvPxSom90s8tn1C7BjU1gsZqg1p2vYk74wTDeOcvrouiyq0o6Q8qXKkGitYeO1L1opAakKEkptxsf1EDwoP4iIbiTp6Ds/KnEwSyVjxBrI2qMP3uGpsI0ZlSlHtwfEtL+8UVMSZ4TiGSLfRZQvJD9GKiLUz02ee0Atnks7UfnSfedmpB86RGGnTWArHcgiuYajFQ2YsAnPIxLOntMbhIxQUnyShEKQpw6ctHEx37LEiyqYy+UHPH49jazXXjYrkX39NGmP9AcFJP96cERVPgLGATNrnQZNgBQziXDh3AbM5F7+RWEG2kfn9UYOysm+jjWGsTCDOqQb0gdzP+TPU9TeDFqBBT+DwfnXJxMEqIBxkIq42fRUiWn8m5SOLHgd0dLLoPpL45fsOFozaRacJA9NDXt+v64EsctCkvmZn2z6bXnzeRbBKxI4hY6zBt2mTnHIrARgeHQZpzqqOrS2y2w/rYxYeAw/WZNCi7y449nB3V1dlGDD5hLMf28K3ankW6Gian1CccrL10qCxnxQpHDk0oAzrnTNocXggR4ckHoZ6qzfZ0QdgIPBTM4AAAIABJREFUA4wSrjh/4KQErE4RIMbsmAUy9p1hvBjVg6aZ0tvVF2KfbK3Bt99lDJH3COYJFXuohcGZA/GoLvD75veMN/lwSxmr1pujGoyzsdQFrk1vA31Db2mGH+pPF5M9Vu2/MTW5RzadL320brP+lagC/g6YpEGqNvN8r5sjk77g719S6ia7WYxKJ+JO1GYKwe8m6Jv8KFTT+e2TbZvoR6tu0RSoo9+uE3r6xjsBjaiFsvYQiRsVNQR+JiIj+m4mTufOBTDE7HSmhtUzEjjiVM9gZklFIz1d867mi8AQwcCAia4Gx+uG+X0Sj3ws8VPfD0C8dd6d/r9/cY6c+O8M+Xx94xCU1dmtqaoMP1n/E4jCK/hBTOru8tz0Nk7mISah6Ncz9YDUVOku2jN805FEtNWKFuMJIwjwxsN2YzDgE9JQPZ9wm63eWqX7C5h0Y+TPcB61Pj3JUjOyN71er7Orn0mPgzHHGcepiQht0zk5abbbjjECG3eC5vNjS0kTTqipDWVO+zUk6bQFWJQnP+yFLgxusTkpQQgD97A8+sG4JFvX9P4hcvdmNt3rwfm24TI86E8pE0Q59YHJA+iEveV4wtnhQS3qjbatSzKjKEI/5vNoUQqavI1oC0zToMrYBL3pmgXXv6lexvQ2s/t0TWkN6VYF+LQppMQDGe7gF0Z9/FsKbkb+oROZb/fqvzCof3XJfwAPAgqIc/4zP8s0Pm0+dV3G9MaRrrFW94GH04xSq66PQ2nM1Bptob2E6HN02YNXe+AR++9c73ZcSpqR4fDRHGo/+vjq9BysaNTN+b7VX2FGEwQ8Q9ExBxg+o3iMTzLG0AQndQS/OKNjjszyvjJxgNlkuBwHNL76rRwyGqc5zpcHp6n/ILl0fHr9mqfypLBlvFORdFrpWcnu+9FLn1Vzp26rr8B4TEKNUp3URQ3A4DVThq1ksWpdJPRMzoYzb+sMShM2LLV7BevRwJaA43bABfpdf2MdyB9ePrVb+E7Ad+Y0G2/NvGY9sghxJAtMorFrhuK5UK+dgPjuQSzoHK8wYI2qrIKlYP7KGq/YhpdNQq/3W3XQT6ilpTOrItvfVGXL/PtnF/kAsVNbYhsWgn1C8To0HiQE0gkQcVCblC4pMVyYz+5QinznOAAERzsRsXBN07fcz0Y+f7IAAkFWJKE6Bv4sIET+BjPw3VY7/BgnOgVq5Vzf0i/Sl8YE+Jc5A2yI3FsXfCYwDpLgpdWpagqb/QaPACkDv87YsqegNPv8vfFtKbjz6Fa/24f6O1E3dpdpT/dNVvQvM24evPEH7M6NBcYuN9JSCqV9Pb/NXlbbS/qiFJQJyjYfm8zTzhdkO969auHbxW/e4YJtHWMF4MdfgIUOyk/pKD+GI/FwnNbyhM4sLMuZLJAjQ+n4YwxkmUknryanJzQe1jA5jmtAdCubvY8p2ZNPKnYlviTj0xtz/gm9l/oIAh34VPeKXC0PpJ+DWUrOqkPLUiF6i6uhaNLTetGvfyu5FwP+UL2jINevfdwHDRv6T0+NWn6CkpTEqiLygLzzvY6SKoon3XFzWinTsdjcUZwaaZgRi5tnOMlEvbo8zUtXrDN/ScGSR1q5UZVBR+fGvxW9O79lqAE4GX3qeGy4bCMVE/mGTTMlaeVXlutA/JFKQue/I3ACpKXj+n6vE3CspeepHsu5P+xBLRHRz8/Pwd02n0aSLfR03lJzUNJ6JQqVIL0pAIRVWr8Q4OOjsi/Ke7MHXh9lEzgjXVJwdhetv/2f8sgbOpxSDcTITqZJ8SMu6RQaHtb6RVAZ6JnwYirxCOFMqBYM8UpKcXDhBSH0EhvvIAfYN9hFG+BTELnCd9PLuUNAVJnjfXUAI8hys5rPag/rVEWdeUs25anf6CD7XgGrUGa+k0z5YJYehvELtjzNZt5915E7LuXVp1ZoUT82IQ6+rY31gwM1eRQmwcNcrwyeLN2Eq95buhn4ofupaJqVvUI4TjbrBBqx1gn6O5V/e9MgbbIjAA2Ozc4ijLc5j6fV0WywxGcuJRnuS1t4Ws42SSpgIGvayw/3nBFCsZ1Y3b6+HYL27w7kqGKQOl61YnuWLw0GFecqYDesdOOCKbRMgcudInvfekb4QWH+8krnMQg6i2xgBL1IlakyA3R82Go42qxYpgRpmWgrnoSJatjEEoFJ1AHc4dYoPezYjRIagHTweJSIjPtleCboPFQ4e3IwlJ31imMnDhhs3PyiKxJmLJKzMFmeEBbyKTcSEtjBVQOnZAP8DtPr9aLP3p6fannTZ+n8IOQHnoPCehCr3bCPT+eX1P4hQDjnF57dsUREf95vT89keR12chjUn58PEZ982i1Bu3eKfLPYiW2Dqkqz8jmhw9Ze/F6WGUQctcJq7nA3GpgfcIc5NTzx9mw1KcSHWbd5AB4lJzUF8pQ1w05q8CDSabNuQP5t3Kp/LbNv8Z5HUd2yc2ZtRq8GTNrOyvXVyNW+eJNknmyATJ8zWHtQdf6PplYIZ9+ByzHeg/7jQ3TMSGND+PnktIf6djkdQxCbytEZ8r4G30cXsH/0C8U24Xdwj48TDNNuw4RpgP3N1bvihIvh1meSSz8THK8bgHiVh7SK/ze8q6w02ZkAPMA1xXd0pZcnvt5jj4cOnotn4SefwhGTqVBMzKfH9sXTPyGGJi2M3rVtWV4s6tiaBxgeKlyCimaMIHJY4mkLz1e428eaPJV/kb4Jv6d+fqmEUb02qJD/EuC3K0cGD/AnCgfBvk0xfh2zoQpfdM1F1XZeci7jUjE1fQD4iKftAn+qOiD8F7Zi0qdRTdgCNSJmc+D64VqPhkCsDfrlAn13vhZ7kVjPdM5tPee5Lj0wfS2i9WLSl22TpTTFzC3MyhlYCCimIPbOn+4cX+scz/ViprUW8YtpLabXa9F6HXO5bAZ3sa78nqAvidIgJkGHBo+TKDZDVD3nLKduWTzfln38erpUHhOU85aRU3+Y2Jwof1S6Ux6EcOVHjXEkdKX693oTMA3OcAR8EfhJCIa18KODGexBRoqbvEsjoA+vjgAWuH8SOo+b+VVJD2ZHe44XN4wX83Ns0cqmoGEOYm9AviaOfbNfX9zVd8s625K/Q+qpl2+BFwoTWOC/sNvP8P//eVWprsWqT6XF/2uXxIMWfm7X+3FleTSolzo+ixC78dOErUbWkQ2Rn7bDr4JwMFFbjETrVdEyuyrkDgZ3SHN0UhFDsxiwLSmOCh4Iw7xPCrpvQpGz3yrA7yFDD7djVsK+f2/zrZfbFctzdpVAAG61IFBIPYl5rVxuspJK2pNPjGc8Hc/Rorm165PzYM9OfmlVVsuHm59Yc8YgHAdkdZSgZAfTg7Itx6fqfq/OV8d3Lt7/tFyLG3vZg5USWAgFvVsd1TVt4HJfn+pFuKgIRiFVLs/bcnhZgE30/vOirWcHvl72OtUzu7tJ1KnbzOx5Owo63lkKOj2TNuAueS/XHFofPCHijwbZtM4472PvFuZuWU6sDY/FQRU/k3f9gfHPYSvYx5qDDTjlcVb+6Ow7VrH5ymYjXD5heV5xR5xSV4thr63O0rqd1U2TINAp4DJgRp7k295/RcR01G9HB3XRM7Pl8MM3iySm1A266iU8FcHuBRdzFF5/3k52QaK53Z3MqPEmZom7v3vcFJTVr+FkKxwstcGMeQd4qctESXhK6gBdMPZjM4lI8PQApuvrUtP6gNJyXESxw9WoTo4WlPL7RqvmmDL8qT2orI3nOXnk3kv1LcQE/DSC55Z33y6X85enbib/LkU37nDmKnUgJr/62yvav5NzdaM7h0NE1SiDlXLrM7kK7JS1JWiR+ZEGH6Sz4cGZB7iMR6BLHNiAv0+Ce5Px6BTzL6tFAOAoaNNso9NyH8DbwRypUkWP6gaR38rDU19Tn72ezWC0GZXbJbXW3Pd1LFpprrVxs1NtJaQrfcB/B3W+pDxXEp/NHPERIgIH7vIHTtceqOL8XsTMo4gHhQfZR1zVa7AL8KkXTlhynj9jP4oz6jq8nKQb8u7EHBWm4a1c0T42cQCOy3DV2c11ZjjXW2dnX4v4c/Dfn2OY9uf0wboT7MyodXuFY9ecNxG1Byxzkr4XcJPwqy09MzGtF5F8FtHaxLSINi7lawd4zK8ZNYCPy6w47FVv+wPUZE/sb9hIH0auMssON8t+SHcNZjEZOQILdnAnlo9lQLtqWiOmSU2Ou5p8vCfILxiTc4B68Felg5CvDa5Q6AsMWpbRIDM7c3QcUNv47HhcdvA3OIcZBRVocG7INO0qkv8+Xe1BrhhqsAdRkNuM5ikVVg1/9ijfADfLxzQHT2oD8b7bpHZozQ2jYrs85bHbPOxvnB18XoI7d8ttMxd7/4Jjrkjyu7HvAMavj1dS3Mn/q0Tdlge+BgR/JTHX9u9f5T5AFZP7OeDFYKCUeS6VOVH0shSMmOx2W8KqxiKsdtg9/WKnOzCTv/ZdyI0ipu8QW06GhON3/KytCXrJknQ7Z3c2jZkbdcYLg/S0EcSM2e+ueu6jjURBrpQjZpMg1f7L8ilAS7MkYJ0tYd15dxNclSnc4vQVHQM53GupyfngQ0o0O3siSOtddwdmAVUlBNkQHZAa5AInvSQ6j8ScXl9DHyKbSbSg+fXKm4SYiPhF8WYYtmCQyJnS/Xvvh8r4GT2eo5uNXbwtDQbOAxWml+rYWkyv94ver1e8tXodefqhTfLZ9HqfPNr9wRxn8HBFaHpAgUJx2toJD8LnvVu2WOCgmo0iTc8w8nGFKbMmDIYDc/sUhj82YA1bsZxvvmt6DJDMfFYb2a/ssiXjy0ZH4ZsHKh22Yd1c3BAX+cQqsDSpH0NXE84QcHchVdyFSJbJI4yj56yLyz0DXZ5+zUaVwnebRjA6XPqOti2YRea4gMANzrjGl26vg7fdBmWGDdYr2SqQM5Xn4OnQXYNV7Xa3f+4C0N7yAG8XHnq91emkLN+Sxr4jGnp282szwTuN15UtBUaHd5srH7JZTv11ZWWBo7/siRWX7NJM+Iz1nZ4vly7jtb0KXm7jgDz5X7wquNL/fKAPl481NEnT/Ner8SKiKacCYTJhEkLpi7gbZYdXKeIoT5KB/XNr1h4wrnw3ZwIo3XI72/lIvxQbB1eVF39cDBv21ozYl9F/rPt3xacKGBoWEr6sCV3xmB311JPI4PSgvuTqly6xwXfe4fK8EJ23Al3wm67owpSAQ68GUAJVz6fIB5O/VpX5LNVbYLiY9MO6A3+d16Ss17GatnTOOGYZ+OMSG1sYVo1EwT+xJI6XM7/+er/o/edN79ebXn8W/fnXi95/XvT+14vWa9H79TqpBjrgNbac+s0MmoyZtcjGd4ucz74v+XnOMXPkXA7LmGf7mMpKsWUe00AO8qSpTqefncppvHpIZfUH5eiUaCc1OLOzCr548kEUb4KMcwJe/+bvuN9u2uQdwphqPiyD0qQUWdhJdkQxQ038hjvc2CAUmbg5EEvoVEKS7sONOv7JF9SoZ+att3uy0UXXTcNvl/B96BNKCHC03w9IpUGuudzfOny+Wnr/U9/E8+0vmNxzhn8DpQTiX9tcnMTtaonptRz7/t2V6f0G/wvs1vy3nJ/bv1toiD+cx6ypcL0z3HAx9sbp9VARDggoMJMb1HaqURpnNbZuvUEAnRAh2/BARPGOxEQgODQDp/BtWTrMjbhGiPLCvFVeTjeLB67FhYXxa8YFjzf1x3rrT4jTs4aVSf6JNfg5OQFxw+Y9KOguUnjsMtrVAthkfG9XOgBB8iG29k/RKVMRidKxlcdwjrjnjLsJYx17k5GLo8KJju4yB88+dwMP2SVyMLndFGeiktmvRa+1Ip1hndxkO+6IiXV2Vk9xmARmCS1a1E558B3w1RrMDyFCtiFKiHhZiEG8NKXgxfRaL3r9YVqv1xkypW+9iD6fDwnJ2RVNKlLMZG/Own3yKBNGp89CrRgUEdITPvJRUZq5q3JyAtpwrgp3CwSAIbICMyPAJj3CC7gE8hdmLM4xrUOBknjgqn0rQZTJ/qHtENM1uJhOZt0HUHUelMYUxhGSVJRhDw8/FQEAjenyflvHv078nPsMACgm5DlV0naicCfLg8YiBu28qUzlE/vWfgpXiAZ6cR/Gfz8zOzBw9du4MDErczNP1B50ONWKh69kdCWDTQ9wQ39VTpIiQL/JtNVj0Arus1ObC4/J0ZnhYJKNXf5dQD1eua+YhExSUwsJdqXOdJjLuvAmX+Jj5rxOCJmSQX2shDwe+njsutXsX3/bOrdhpf82AXZpL+nNXtA/VyFGJtjgFzeWYxBKubPJXtgSOIxWEmToLykBWH8v4BgrkHaWDK0TmMtOvIWpAlFmsKUyHKEh7YbfMCOSRUkpRU9qdKZgztQO+f8sZpPpHlCffj61fOjN2g3fZcLoAf+v8v+VgN4PsMxmrRmrdE8z4Kw1YKDrubVf8ZjwBVHP9dBAVOBcCXCMLCXmtRZt09JFRAK7nOXcky20+bwS0LvUDXlb32O9GD3nge1HU6XuGX8U+4C6qpu8FhO/Fq3Xi/h95i+javDBZpW3wiz+Nig3lVs5oSZNB2Ikoj9F5ASbymbeTLSIfv75kJ0vywZTl0L3TxylszXIs1m6bUE2Gw+kPZxL+evBDNw8v3wEHfXF5A/dPTdRdCWEi1zhePTcaQ8e9fepJiYQlAwc/JnEPsLImoyTERLrI+EGQDUNgCn4mC+QWbTdsMQpONj1ut2WKGICuw94G9SwJNlex9FiOioQwITVKDbnMZiF/nHMi98MuXoyRj1wSVLk5kdK2R3c+RMYPLVxf/oN4COA3yBGLudt4kI6j7t3+rIiRVSOu3TB9U7sYfuKXGUEiMI1mTzEu9GUf/+Cj78a3OoDQ4IhCWfYj8euw/l2tiOtOyIqT2Z31KCrt8muTwS6p+ianne8VqffsKFa1Zx1erlQmw0AmFMXx/ucWSaCeaHsVYFIMMwJrwM8Kz/nBygMEhyXYXBdAItl0S+TE0tw9Gs8JNnueXyJZzkr9IskjiL4denmi5VAH9fqIU4Vvwdcm7jc656A4ItxqcOd0MuGNnMDDXFX1hxBBXe9PxMQZGHdPesjWEYHZq4LwtotBBKO4aliS2hxxNaZ6eQX00ut4lqLZG937iJbDY9tmDpHTskm2lqPFgSNIPsyyRDoXjuXEnaGV2ehDRpbWYQ+W2h/Nn0+H/rns2lvItq7opOvlW9ZwN1QBb1zndhy8iuJ6Oef7Q6Fl9BLFi0m+oh4MCvbzvAN3E+8Ur0khnaIXGJC/DBeptzMYrfFxqGUugxJI5wJ2mCKhgVYQmUbAutsLVMA3x4dQKw8aqSFluGTTIZjBPJZ1HXPAWveP/DHDY/V3AkeMgHf1mXnyMbV9bhjTq7OuGrHgEbQnrmQN+pB3jGDPUmooIbMwWyfcSWqgULG4ou91QbfMqqShLU8bXw4tjGs9Km+YC779ZJCJ2iNDYSVMjdb0zEvtoWCr4apQ7iCevY394Cy8OoGJgW0szaNd+3trjAmz9HAUAOV2KteCSLKHPvdZbDr5rsynhFRSG43oTFcMSM70DTqefbUFApY1KhsPmLbaeV20QzGEABMCHgkH8Y443dzsNDMiHTobRT9t+g0SgePhoRcAHHJ8H6NDI0i/Ckr9z+2v7mRr719uZ7h/hUcMLazOGVrij3n+t9x4mlonnBrNQKAEMWDyS9YwVSOvWKkoz6EqDOsy9YKx9pn184ZZfYGZ5me4szT89FzT63560W8hbYQ7U0nsF3nSfaz9bB/tDZuWOHWJEzMOul5Cjfc70tEYQAOfzUnYhPt1ybe+qppJvr8fOjzz4f++QjtnziIPTsedXZNT6C78mPSU5uVZbI3dp36vJjWZvqsTR+Nm0S2BoJ6wL7o+YbFZ+lJpZTGz0onecoRA/lsqNKJ8UKdZJ5k2QIvqBRt+OglmlQmC7kmZ1Ic2FOwU/EBftdVvONHzww2cZcvpoJno7PabrvHAR/1LA1+ce74YCAwDIT4xz30fNMYRJqFaXUJ8trXHDDU0zBG96gFczw3tHiKUb60/488wmODIk9jIFcPHyw8brR/w/IvqGiziZPsDf7jeiTWX/b/n15fc+PhesKVqcusdUHmm8K+jZRVf/VU/l/yJQWyRBE447R5LNGgcc55n+yv7zSDVDXetDE7yrp0k33PQL3B9lMOJPoU0ldNIiQ0OXfjHvDN8Jh5qTU0KGEKwyhAW3GeeR8Iw6QEMme+5riltIHZugka3nsuv+PRKpsBAYAWnji5O2YNkYII6owimQbBIQW7xB1McYcOw8psr8s0G5dtE1rCbljTUJXC1fKrGJZsdSaBgU47b1W7ZS+PUU30ysQXQIHI8yAPKScN4LWY+HU2Sp23o1qyJBMtIZZNixbRi2j/s+kf2covgTfwcvBODcL47gbdoGGnDzATvegEeGdkX7TlQ6h/RHoWqxDtzyZmoh8i4v9hogWB72fTP3vT56Mv9TSgYD6aORl4JET+hiq7RGemj0gdvvFi+shH+aRrIZvow0LL8vmZST6aQrD0eDDd5uwTIxL9ujCmgQRtTMp5BNaCyjgBJACmLsQ2ZZ3CaiccDt60OnZkTnM0orOXpDM9k3sCi4Hq0y5zg892hT0VQvT8z8qSwwOzG5KW8xCnAT/l38FRTorIuGQ7CbcEDoBXt8dh2W4csLE2NayY1vtEgaegT0lduLVr45BHzRSh4Gf+71KccCEZKghCd9uWDBm2H+BWWKOsohSBXfbyabe/gzWbjEoJbb0v9R9gc/2RrqqA8RoRul0CkoF266HJfF36QQV/CEofuxtla6iASvl76B31tLrI8FLIwQ//xfUuliz11++WOgQ2oNqCeMz3wW+w0k3O/Y7HzXBC1+wN4hqbIRqmBVaUNPST4A5trc5UVAEWQZHuVjNBKPVEsfM5BXal42l5YTCYeFUzMi/ZD/dSBzdPVnocjEEG3U2vz77wvV67L0T2LpxO3wABjYBbYqhIRDgjFEoNUJISnBqbOWpreVQpI4HygobVDKnLt8BDmqKt+Y2LX+fEgsXE60Wv9zml4MTR0GbxmfXkD9HP6XgJ0YfpbOxaQRPOylWOA3XOj9e/XvR6nVzXz2fTFqGf//khphXBg25A+/zIOUGBiOiz6bMtT5WdvYuZSM+QPXkFhTVEfcLGGiOeTVzCWPgDFTN9fj5+f334ZKfaw9OyN3rpeJBoQHtmvvf++FR07PbfFHfiiPeQHPRsaMvOjZg4xJk5mzw4wV88P0M+akspyHwRNZhVrdgDp6W3IpCafLaJPZo37EtCfAqcYqfoyKC/ytwBneB1E+IqEcOu4ENGrttqBt5ZTu2WW/0URQVU1UNLHbFNYQEl22kHIfl+XeQxcvsEoPED+DWaP7WWxRQ73yXXS50ixb1BwG4x0kOw8YDjr69ipLtEFx7zQCf+dsNRLkvh80EEP6rKldkC2vurHM4ehfh3tQ98H9g0FlcOWoHjyoH/tfehvdWx31KL7YbBH2DeeFJgmv6kcreHv5QTNDxE9A4DB/hAPXMhGAgc2agGIJy8l1RtTRGFZO0dnoqTSpV8jlgWs+GDQoEnKQwqElLc72obbgljGfc0q5i7TdzgcbBgwRHLI9E2oXmb2q9JJ3VrxWSspvMPbr8D6W+ClWlS00c2E8JpILWu5azh7MrdDwFuQiL4hA5SWWZIx72GMNOIMJ8oM1ieq1fOpaloC4XTOwGJzsnYcjSgnA5nF7iHtBodIK+YF3sCVj4nai0mXvqy1Cpgi4g+RGfmiyiOj1q0NmxQ8TdUUdPBeKzqhL9eTP/684de6wQJ/8///NDrvWj/aD6uCMlnu2KwnHxcUR596OAkTiudHE3LSR3tfLnZcgZqC90MRxaQniYfPZt2gX5je9HZ4M+KpXeXtn1e0iAb0yjQ4FnPcS/+bxT1uya/JlgKHk9t0GrYBEXKYUsqVdjKB58V1b74TDd74GeizwJ9SPh+JrBIJusQVDBwDduf6loTlZWD8HRCRnno9A01yb9U/iuiYDIXcxxjmtrBpc3wLVi4mX/XE1aUsjQP7fzJJxigvUDb2XROeRB2tXXonUwz5LZXswZiHW/qjcEu52Xm6jnAHEg5qcFrD8ihFUZjm9pnnG/WutEOfIoXXgz+Mav6DA/k3kSzoA9woTKlrxk3m629wuIWT1wvgBf4sz90f/fj0DnQLLVK6pNLpSf4T4AmuDQI8qWp6fNzd+5FPTU1boUZDcMJ7B45z/cy2URPxy6kaX/DBc00IDcgITTxpnMm9EliA0/WyPj+sEZgy7XX8rHj30puryOmFGWcnq7JrPy6wS/7SPXxy5l2izG06EwBM2diTgDLASMtBVytxUiCms47vZOw2H0HDwwQ8ZngqTJrfXHYFZb9kTR+43gmHdT/XuQs8UMGyuCwkJ97auTZ+6u3RXVF/bLjWhki2DAhoc/HLMYJrv+8XmdDpm0aM2/gCibn1ATZJ6Ddeobr56QT7M+29zakgCfx4bcXn0V4Oy3BUiKEibbA6zC1s/Rub/uQEMkGnojjJJ998pENRx9bk7QvyDZR646bkwycgMZvSW0xCZlrEnlju29sTXAFOgXok4mfzDrHjHbqH9BKp37ow01eADM9x7MAuj2ueGAdVqTxWCwbz3AfNsaIP3zl4GZsisZHS7zqhmirT8HPgYfCBA+tWMUU+4SSiWdpjNlxHYCkGf6C3f16nJl5htD4wjO3ntt8q1Q49c0m3Mov9012/ttrJIPr/aEW3Ho8gePXWDy1/20gii0Qnvns5xa/ukLk4/OF9nz8FtYVG8NYvzM0zuK4Hy4TjmqM7AsC/mRTgsNIDlMnCbNuigvbBjK1j+64zd/QRHC2GpZjFfpecM52m8TPwVXDiOkNRJTPQBFKL0WQHCz5hjPgRWZP7vw2eG1aHvHV/7tx18N8ypOUU48sSPKmHbhPYr9lOWgGD7NJJG6TLcHFqQ64k1hhlFwyE45bAAAgAElEQVRCP/uvIlrEzB9wMEmRmewdhZbzh7zIoxL0JS76qVMHPwyAidjfQDW+QpLIU2syVVao/BI4faDgICLx9pbikELftEBfIucxF+TOHnYcfmw5O+/3Z5Ps7Yf/0yYPbE2xtk4/Oeskd+l6KocHss+RXR99CQbO1uXDkg9SOhdLrLwkksgL0XHcP0vzWZ1Jzg8Y7bATyGIvO//Wi/X1tmc5+rz0wPjvkVzYlmCf6zG/kK/sdBLTmZHFlJN6lZWWvNUVzrut4035ZOOEGBORnMX3SGdBa6y5pa4fAbOoW+KZjWulxo/pYoql1aqXBkjN5rTsy6yvko47iif7oOJKhLhBOasUNsOWZMzp6YjjucNIaJunQxglKdbNvsA90pMVCp8CZho5p9V+TKZMoAy8DoVdc26RKF11EKqLMoQQ3vgYn3So2GOvopJVAv/aMmVu4Pd2QxL/Gy8BsPO/wsAleLfJ2d6cITWZvehouQ4fq2/45YXK5ADQwJ8y5tBFEHM64yjFv4QvIpCjRivi32jlMjhWsU4iVrnNTdoVApJvXHlXcPDmhpNpykmR23tTOqmiyFc/Rzb1JcrgjFzfWjCHXNVWDrYz4JTxOjRwWg5iJXDLEK62Ab1MNtuZmqWrio459H5+YuVJbWvLcyiZDOgUAwGG8usFfAilhqtaarzHpxN7LWeezQ6jTmQ2vHrM2sfw+yK0T3ZAtnvkS41sqMhxB+PgzChKlOS1CphtIEm34q8Q9Y1pChWOVsXwgFOfQGOnKMocRuBu45OGjtjxM5zYzgNiIl5Mr6X512JyarwTIrETCz4ke9Nnb/psKgGLUpBmFcH/GMJYIuyzl//n//ybXmvRejF9NvnrZGP3NrpQDeIkAgFf5vba0T6pR0KB8z2oyBR8+defN/H7BNw/P2f1x/JFrc0mf1FauvyRPfmh0/aYHabN+9Bixvamzymyiw1bJ6Cf25XFdSdOhDxHFHl3ZMh2yltEqbQCb9Jycy4m4pMiYrJpOPhzqwXOnpReAjpOoEowy7SWkOhJNkn+7femHsySIR2JVC6/Rck85QGDnIqfGDYYB5ybEcCEfDEBTgoX960UzdDxYP//4CXXOCqpKwELXQFNpwF+WoodhSd9Z7JsHSfkUjm6zKGT9X/bxJX5hHDuN2AwRtjBw7pZe26vVZKhrfWf8Ik2i3TSYiUFU977fzO8dHuAnw0rBYdh/QGHF2FMrB9QwbhitCNWNuWl5BqXu9PD2i8vZkpxhrk4ZrLX0yyyNCUqMg6+nYne3WgHQjciAtz5hv4/lM+ChQGeGUOizlgHxD7TREQ+aScgyUJwxBc3DDpFRRME6tQtWMejAbwEluGo8oq8oS8eZHS8Op4ldjj33PpR/dKNRYM4iWwY5bqJrQpkC+KYcv5kqtNFNxsjlZNK9m4UNyoGwk5NMcmL8Y1ZrTjv8lTmRm9LqrIZ0JIjGt9h/sangoD2dO8Gw8RB+ZHSnEGrLmyweuZWhIheSxf9t9APf+hFLy39+PK5OYf9+ZxZU809FV3d2JAXkTIZGceXI2qoU9zM9Pk5UfHmM/MpRHourSQ+n3xZ3WRRvL8A+614XyzS6bbobPNPi5gX/fnzpj//nz/Ei3Q2mmgbf8DhuKo6pw3FM4ublriS0Zc4XtAcsci8GU35Vdt/O0Msr3xpKxe/bEmFYyUCH4ByMItODRwvqgjS5zgwxAzKF/PqS9LiClqGTjLORvUx9txO5CkdHbPVnHOagGo97l5XUpbDNPsjWWYKrR7Yi81qgnwaHrZZzUyK+b8uzmCjb0Fftbo5cJGoBoUSuEBRZ3DG275Lq5oDg8l7Nltex6TgGZnkBY/UsdaZjnEgSvG1pCIJRU3mHwjFcbD+UBcLT9o9oGUaNetOsEJjHCrT4CNNjpILwjp6UKzz+hDrPqjImgvbNID+Bfmf8ekY3gChI5vqXxiiE4jYi9sfppiJVTdqK2l2XxYTHIx19GPHw3M7R/Z+3R1K3M/CVJ0UEQroJDmcfpsSqS2gvS95SepsXMa9owzvnu8y79mfaa3Wb6bAvxcUpsDlej0UP4/Vb6/qubIxHIPZyRjQ7V658UjuULfJisT3cTmEKZ5+mqXPVUe/onBdGcR5kE/TKF2O8Dx6mCskPt9YYw6YIvDTTt+6k35/6CxvrnN61ZZN58Qr9uG0jV0iQntvDS7pnCuLjh6dz2SriMzKEPOKzVHKNyGiny3E+5OWgSyNII62I+Bv9NKea2aNunCpIUrMTC89U9fK91YeiKNwvSJVJjZe+BK4GVh0pqX/wO6p3MIZu/e9fro7xC/TQSsOuamZjoEvW7cQxBnBuaFvgBTOD83JTNTYhYhwGcCXgk0oLO3G8ECzbWPAh8gWd0BwsFxhiardv3E5nCRn9RXA2dCEPs9seBlB7L726nCsjYUngecYlw4D6L8aM0rTOu58aAq8O1fyQpjK+289jw5pfV5rldyufwXXKe9HPUCNTs+Tdl07FaI8a/1U8el2De/nNl9PQ3hCgWY0UqX60FjRaWbGpHepnN32Mf1uHAOV8I0238eLfSOyn9CzmPZn04uODJsPqwL2tr4t589wcprw8boFs9Vaqtv3YihXMFuNXiy/QbBkiNnjDhPJNkMJsFyGYzb42Cs4kgbz3uwv0pPRanj2NX9Of5xHuMzM1Z4I2dvlv43xXDxZsp4yEbIvju+sJkHtxAELemowe/A3z0NJZiPXVY0x6sqNpDIkcV21KcpcPqQQae3slSfnVatk5BhtppgSC96ZY3rHniDNYYITjU0pEk+JxiJjpOHkzooB+lnwxXi7sclnhU5rkSNri18kJPSzz9FW+NS693Y95qQzTPI5J16dF3fBkTr216r6SrQNpDkw/baJ+H3OXV16zBfJybs9QbRtklJwkMiY9QwcUTcTjndk42cuud4bi6spUuq3CH0+H6J/n4H6/Hzo52drDjDWny7IoEe7/xtn4+YCAwCwIZLrhhhXW4uYZODZzMLs1jQT7PYpGyqTR0s5inNkvTB+t1WvGFfBPlCxJnXV3z4bzjAvqfLikE1WGeAR5Mol+rSV46DaAzPRcazSNHlxkHZ8hQhfL5vYb7fNTZDOLq8eEoLVySXIELLcV/sNvGwXwJHhPg9FtXvjTfLpYMevIp5pSPJd+wXbNm18jnuFUOBJ7ncnnjdXIRV3+w3G2w0elNuNnJ9TkC19WfXZcNDZqABBH8JEg4vKk29EHbehF7zsC1apqipYUGGYnszjlK/eyWOTCQ8LVE3X1cYsZj3/nE9QyycVbJGQrJduAsZNmraDoOTIBr+qEBHVaetk4NWpZ4UdCKqRXtAFY8el+xMhaBenOHneh36mwYcp7BGPCswJNc8MfGDgmX7qQ6J4IDOj/AuXWC5Tjghon9Nb6liiUg9YJCW38fqCZR3EOn4oFVfFx/pfurKleeHIXUpoajA7zcwCPaODqXpahN5eBRteHjo2YcAmkvktRN34sd3sVtRiEtZXMn/2jtlZUxWRE7tTyPDWaCLEl0nWuZN7iTrSWDA8NPG5+1pM/3q/6f0+R1H/8/MP/fM/P8S89dQsg8qgs/XqMogz3oIEUfmO7dOGSwhYhIg20c8/H/r5ifKNURYN+uPjkdFLvqzJSbkXJGkR11vp903q41ki16jtDqtaNjGhVJn9JDLyQjbrxidfQhf2jbYOp9prCru3hcrzCSQAFSGz1IAjg+yzhIlKWEtMbJB8zJWQqR8H/toxeiZPF5imrYOT6NbMBfUYA0yLu62tucTaxqsbq6vN4IIj12DiKhle321Aqj9vQnMSod6pA0nJl0vaF8TG5LsXXoOjZPKu2GYZvqPw0LIMnPPfmV/q5+8xlwpW04YPQTQ/RFBpRxkKMk64pQpCbv39wdQ0akpVkcefI3unOpeffopLs2NWa6c71/FR3hvZax3fxiJncmQxvd9vD27pRbRfTD8/H2I56URrL9pwTpBlcQ3EHYTFP4YEh8aComb5FzqH/UoizntEgVDDEz7PsLdZJvsEE4T4PJdBXZuxcWUyy/L0qOBLpNwGEMvzaJrwwYdMFs2pOlr6OZZ9wqTd675zCG3s2qkG49FG3gY9bHWE30wBXxDs0h67QUHIubb7jelpBMzlztfaDBstEn1rlcsdGHu0XXHM2hrg5G6JQN7TunI3sWmSwXPrRlMfPCQQHlnuqmVv7042J16ffCEi+py/+6PfP8ex7n1OCfj5KM+2NTJ1t7QC1SGX84zphiBRFJm1iF7vE9Su1/Ij1SzgZ0+a7GxNnok4p22MXzOPjpw9OP1NmhO8af+c3OC9QyaEQBIAj6TnetUzmP9WnO2G/TvqJTHUWM1QcvmaOhvmaLu5TH9TYJW6C0MWaRSZv2npvCyzB0DVMw9OjVdxOkfSJc/BViwk8CCivILCnPxMTLgUGkUcf044mr0P53cbRAEacIUrfyHnN87P+Ky3NTcE+PhD50MZKDb/F38A+bsMGJz6uuurMylFabWDxU+lsM/Y5erga5UQqcmWYlBovPkWZUn8j/zCmGSpjKxe38Y/JhrCls0EQF2HyaXPEABmZUpaHlowmDZOSi/vwksQmKScvzE0gPRt5vbaBOMGHj5R1CAn1CriU51SwHZU+OHF2Sj8In6tE9yqD1m6YXe9zmvYpUetsfLdYp7ymRontFiPgPEBBurHD5Ovy7sxhyDAC6x6ZpSLfhoEsJS/EABMV2jjX5tjwNvGmC+5clipAewIPaB8D2gfIQ41nmrNAdy1/K+uv1CwqboaO6bb0FZNs/maFC1BdZ6VczrtwkHMNAhUuondcQzzsWj5iBVJbRLKVchEIlCVQ/EWIfwXflC8viEg2Ld8GaFiJ0SDRNonWBYiNcoYrNVQi68/fycfFYbgn1bTHObeQkKbRM55t+a8sjW54/DfSP0NoPPIOkikWSQL5QWLU73j6y60yg6UWRgRKTIZPqfBNh0KJPOwqVxR4eky2436l2dV7XviRaWHo/9Uz90M2HDHDmhpMsbx0H8RuayjD4FOueVcYqIzeSEap9lD2tEJrhM8A/Ca0XauW1BrdHHiFxV+1SZhX2KMsNqT+k78k8T3wbh+U/9E8zRA+fdjzIaBpgmLHaSdEOH756HvSQj+0sPRo2X50t1NX/6r/n7FT4R1bOntEav1zZLK2cEe2O1BFRTxNuFo/nYZAN6npchAEXSWn0QCo3g3NH6EaJhVOGfgWTfBIKYwsuI1gQ8g4PA8R/a2J2J8vscKeCcCosQQoNXpl6FCUziokokniyMqqNbn7c7QyLC3mXLkrI+AjQka7MFqDNsl4h76roZBHntSw+0EMzxkuKjkpZnRCCYHY78lnEJqqvj6zKSurZdXE8SSHYfxZkM1xjkFfbcpB8gbiWNvejXHQvnQZjbE9AVodB5o/YVUKv8g4BE3Itt17ZCvge0+QavoywbO615JN4KRzvCKw7GNO0AsuZ4xlCjuIufFBf/3//k3/c+/f+jf//xz3tz1Uf57fliRtVEWMaDODI1J9MyPq17Z+EB3RG1tKOR0HYRYZa7BLSKbyiu7Kj6CX2cvkRdSVNaxI7CPs7BVhkqko+DtxRSWQ2vag0CCHPqfTzUgcET5PMfIddVS65jttvkB2MPgILE/5K+28dlcobNtUNzcmETE7GrUTzNty0vde4Y+oQXNXG33cNAn8+C4Gx9ML4vtI6IpmGX8hnIxik51NlGxzs5OwWz4itIRuPbk3yum2CVTo8/Bc+87lVdHsgwBw4Up4g/9jTLf/JB9lLaV/UhuMw+iZyVJoXsUCvx+NtVWn/s177TavGsHl/6boHCp0DqkLDcDPMTfisr9/+xyyfOVRH8Bzee8ICd8k/lZ8VdKe+BL5Hq/adNbzDmvfhRIYpBQJwCtOt+K6jEv+WKvXCJya8+Ungwt9ygZeoqNDhy3zJJkhIARDWFtnMhpHoHS+NcXJMRXcLyNP8l1Fa6UO8lGXfhHpU5qLmGrr4pYCZBMc2snBa8MIp/9G3XbUySXdg4eHGZ/3RR8OUTlo9Am4zT061DiGKDDq2oEYBapgmb2GU4XNykbJ70QoYor8tIHSavizhbqJjXc4stc1sadssscnkWEbLaggcOJDwGL+NIcVwAqHkff/vn50CKhvT6OmzkB2YVh5jjKeE8bubzvQZ6JcqDHyJzSfLpc3Bfphj8uNh0yL9u43S+Um6oSTJTGOOwT0KEC5MeNNZOJUKfvR/hq3MDr1IlNXuLlNqGQ9zNxxst7YvcTEc8BLBt4mJRIdKvAy1I8KeCE/FJmchrnmfs2r+L5sdaxHfvG7BszSUItTFPCbzwEG2mcWN3hYRr7g3TlV3YdTp/pqfMg05X4DXjVkxv6Jel7DDWOdwx0AwdyxqVC67IGZp6/XDbhmSzW+7W8kpVuyFggveLUmHSQRr4dlGwFLnJYR5Pi9hV9ZTWM2owpyXNkyMTmJJtEsDpSj2yBsUu3hu8JV6k8MvyrzegMqTYiF5579o6eyfFzr54R9MlOgc3ERLSZ9hI6GxqIfkTo9X4RLyb5bPWpW9/6eAJeopNfK3JeD/4Ow3VUzw+CKc4jVP8glV4/6HyR2tCJOlkEEXKwbzBgYMzEQDAIZkAIbjjzKWasJOri+WTnLwM+cL2MBaI8h7CrwLWLiTPK7pMVHwb87XdCBsFzu5MAD6ydFC46TCS3gLtDivGMUXlw3Tjm1kfVtDakUsrDafpO5FQ/v1UNU/PyiQJn08jZkJLfrObtilHygGJ6A1EhXRSVqhPbdj4ZDjDGCVcEm5a18eEtGmbXmNEphwmQ648QCRv1m/CtPz5MunGHPnKOzN0QIHgOL0OHcW6oI6JPyvZaW6FNtDUglz2kScTvOOFiKh1ExWbRS73q9W4+fjJPubLCd9ktAltkoI0nwziC7cR+HVTS/4R+wBMYj+RRES1Gn5B6i2V1GDAJUOJCby0O1od+4KMRuyXhbKkxBstlXPVrCxfZtPUQ1W2VSbN3rHIKJtwpcvfi9qGzAteU7Exgk1deTPwx6WfC8y+MQxZQHDaxB/04NGKGvNh/gyfwMFhdQbtR5DYFs96Ac3W2epkfz5dyPcmJ4lhOYfDNbIm5oKOxSy3/Td1x+yqIM8X43JQerHy5YTqV9dLHbrw494F9cf1u9IGgMcCWmZeO49MF/rHcjOAe7FCSoHpemvUHA3UVBYucx/4r4qXcl5Wb8ExklCBEUvUxHvYGOQ2PRWddWYh4Ef1zeLK3nk++1ZfZ7K2cMbKXeywfuZoD4dne9skUSWZ7r0ZMnuzM2Xgce1oWXDQQuV1nEbXf/S5NCe1ouSujSwXflMNjlRbE1kq1vy/oYUJFtGhM7V3dipvxNyF5ApZ7f74qvpcqv7yEaFj/fb5SPhynuUv6G7mI4AtcY8ujNJnPyuplLLBhK1rE14EZzTjIparqHBuOClpMK6KBrsDaqqx/TpNwSkLUHoym4Uo6KiByakjs35btNmEe9t+MR7GOj6IPmztLL6zl4zLkr65q3O9FvwHabP7NtzT7yfNPNw056CK62DTV+8lceDs192FRpRxrBhu2Gu5M5+UT4UNRcmxHsuGOWDPShvGHuyP1H1z5KPlhkSnl0QkRBO6SHpITG1FExBgYSsPQHvnRYtKS/tRYdOXbCYHtCDRnsrnkVI8yv6AsluLtc37XpW6HUqbukY8zAZXo6fqtwZ87yRsvAcf/reu34C5k5LzNv+y0tZs7iXiIgP7/BT6M9mWqZH/TY0WvNfDitrowXckX2YdEj0vc9Pl86OefH9o/mz76+fnZfjpP8msi9O5TR+g0gZcuYzlKx9kuTCI4yhjUYhfmiPEpNvTSll3jEHM8F1EylNSj3XWDy/E87p34dAPFQwtTTukT/Kr9tJldmkcK7jNRntG4NOkATmu5teBAswzPVDUCHzCS1shnyTBasf5hqbLOak5ETdg+sakh7WuEFwiO5rkn1iYBtBG32Z4IDlGWI5ATAI9zNrV3W44/SGwv7bLtznxcSgfnhHj528jmkdyEh66EwZGtTk+QMya5YVo820M7DDbfKU6UifHc56K0f4K3KrWQLbdnqN/6s3NzcaxTWAW6ztSOT0pi0p1HxcjHSNtNEyAVrgz3M169WQOrfLfMZvcKksWlp0zkKCzJkc+iQJ9R4UKUlaHEEMUqB4DG8zU5tzxijlZfKN7YpRrFpVG5sO/TbzCCfUIh5BZbJfzCiZDLky2T4ExkFRuthyaQlYn9RJ7pmLDoFmcJq3VI5CNcS8cwsssDilLjAxL1AuBsZ5EP+W7gV2tnuO2c2JujKRpdO0058kTuGK/grNTswCQ3JWXBcVfJzOkc5feVFk1nO0o6oHN5lTSTv9FFanmiNTQn5E6eB6X+loDZ9p6MQLC9gHGY6lVE6l/jebexXs11F3qYUPTlgBib8HD7vIFSlEf7DMb5A7KkX9M5sqkfMGSO66AtNXdJCOPOMJIkFEYBkIZwVfvKlRiNF/I/IaVUTTa7uhqzDBi4WluBD9KVjI7+BwYkqtxMSZQ9GZy5w0xfbbubhBS4X4pR8E532cNfV28ul9M3E+oSkSkuitGcON3pMDkldMc2OOiN4UqdH2lVaik9PoDMukPZRB+WPMNSxwXk1Y5a8vSXRBvgmfCzpVhjzWl4nGgYy3ZEndl7JrK1Xw9gObic3aRXVZtiOVyMmR+pVc5rlcyA5KnReECdwi9ciWES30jH/l+U1gdr/I4B5VqLNp/jwcjoc9EQYJkRaRKg+NnQMJoCSLjBjSOORs55TKOqfQsKh/0Bmu6zPsUullKEWs1Xrifl9+q4WgdCEUgOfi9uSSlDOc14C/X0g/AR5Wid5K9Mj6KvcJThFELGtZUJ8T6DGvocY4X8ilme01fdeyEkngIyLTUb3ds2IIP3+UtTWtpk512D2ctwl2bZaOGjMZAQcImcITXV44blBCxLbNEbGRqkDmmsHyI0IvTfXVzfKMLkr4slyg/Bt95/hRLYM2XUyBbHod6VXAy37t37VtAMqRyheXiwh/HRb9LDZ1LbjftiLKfWMzdS3EVgaBMU+ghBOgENaYfhB4mJ3va008+hO73F7auqOGLJtUl8ORCVgYICiP2xA0E5iQidA653Av0vIXzy4fmLthU97zKY4k/a22+pYbImOHN5Ni1kvoKBLt2d3KQgdRAjcicKbeBHq9MN03B9UybHp+RC/q1xqOwlUHYIoGwkw9mAkTMapcPLKO0Rw0fp1GA2zcoy6SRoYIfbHeN/GBexWhnFeEAFp2zfUsSGSEvgpc5dYGmUfZoz5Dq4po4YbUDVP+A6qgAbwgw0DuemVrXJ+a0H+kJ8U3N9GLjkLtisrN8u45LzBvGyl1wETlYJZYr1PMn3ix0Pf5ObRHCyEwPJ8x0rQfEAgQyhAb/7Jc7QsI/IL5roHdUwRtlnBiFgQJm8rsymaKVqEUjRCnstRPmNYRKyHqsKqDUmeyiJRjiD2MG6HLMXmwCKF8GKCAazjtLRJXyoPShp6WK38aK6x7ZMqc1ZwQdH8NFYUwD0IdNkL635geFbLPRRo19zw8ehgN9hZS6XNmICXtnvh5kHs0d+YgrYKpTFhBNUcJ9T7Rhc+Rc80EwAccWvtgbflG6CgJeS9C3Pxvbf7QfoEBENaW6DMqYgDCkIqYmeKt+QHhNakDzDpYpBUvJL2WSbJvrHPNwKtEcq7tw7+wZ7dQGH+PDp94ilnNfSQhAbfQvRRb7LG1SZcs6Nu4bz5+Es2cY3NnsVmsZDPcCS7lzgIf/wofN0HzlXOJ/qDmEh56/4xrnKUOEi+0VxK/pdSKtBAEs9XKf0y+G+f3F16kcv2qtkhK7lUm5Ir3K5gS0mDb3Jtlv2L3B7QR4WM1CQAztbUG+JznGCLQqXZT5X1sG6+ol/n41bdgBYjK94ELLDyTSXNenHiEa5h0FUO+Pk1CjLzPerGMh5aJ+v6eFaby2l7bUWvdai9+tF7/eL1mvR65XPr+5wEdhF3pJsXwXihnjOP61O5osuEZUgdXBoDXO2Px7ptYa5Dec/aA40YLMVDG934WcWs77hyOcsYfbPiKgLY+yOiOGOnZ8av8XgepIowAFjXYehiSFjHf0fJn0wjSeAHB7jG/jOTK4gWO+ns814+3DZuDjSGhg+1fexVH7BnomwXBecMEbwCtVnPaA7CiSXX1XInwBOSD41Huz8U5URtkkB2DhU5MkdX5nysFmr4vLl6qmTF3gP8cbf9Eaqg8x5i9WvmtqFaqky7Bjpg2ILYh+ulU0wPlVccGH4UHwy/7KUJR76j9qX/rackYrFrqp2kMnpCveniehNXOlr70J0XuO5iFpgK2Ev3HjsxGkitY/+zq2CThtrfxohF4bMuWIoEkCDFka9/8t9hiFiyhv59HdBsJ5Va+fqpQ93rk/XZGJTu41vKiMYH8n3lYbxXFAo9/FGh424ejdSypXzDB/qGw3btqYSy9gM0gk8hXx3oQawRmJ1yx2/PIK4IQIdIaJwMBOnd/sYZ+AWMKQeYFbNcCQiDQiISJ2gHdGzmD1ojNeDBlLjAxL3JU2jVaJWaW/WzhjDcRsb6GU5qLxY3wizaK1Fr9dLUYDtYt52AIbiaDcSfc9XtW+tRVULnCVOD87YRnXFDitudq6D99QR0tk+WDKvspzCC0C7oer23TZehUO1BybrKmaIVS5ZPDhm6jIaLxDgkl4mLntuy1UufMVMUH7IN5phMO4BveOFdBVamSh2mVReYOoA8pE1TjzQmElXIUw7e24jt1/xkMBuNxAJ+A5IN9yHIGM8JmuoOPruYlOTablcXo4AmXIwYTi4ClShC2lFYisX2+yrqWz1eQn49Lv2bR3+glr0H2hkuNrE6tviJ2fjBHL2cCFp+LKxVD4Jyh1ezmCrtkLl/CGSLa55YLu4PxNyN+kpBeloMp9gRehycmTjCdiUx6x01vLqMLPnHXnQKcprNwEPKhMUa78AACAASURBVOcFD2A6w60Hi31j6uk+m6m8oSoOBBN92MClLbQX3p05G4tGwA+xKlWdVUioe/fcK7ixBuWG5Zg8MveBSNyoSlhntQZQyQF80+Fy9QB2l3LlU+pQBibVXzzU03IhOidm4PutGb5nmD1vMBz//bJBEPJjrQSW2yXkZ1qWB3F127hY8kO9oKxFK0/9dZtqaS26KO/fj9zCGxuPDLMZdQLDOns8M2KsldcLdMCRPWkQks4PBvockOEBiiT5tgGNDEPJ8JTlSUfg+0k+kKDPLOJabjNfvIhetnmAtRc3o6GPw5lZdYIPfDDgCCMsHzAAIHMQB+TpzlzPk5w5i7EzQnrvqY9kVsKW+PBLOJGEgucA58K0KMHkOdX+4O8PM8rR8gR4MmZCQdyWYfDi0laDmWrxVAHQA6YLHC5Hq4CxKD8oZbFMtetyKmOGaQ5mOfWhsmwTBW0WMxiKmMQ0BArKMMpmbgRggHxezXXaO2A8jNns2jLxAjsZcyVH1J/xgQZtW0NRj+aiWgLv3R9W/jGrjFbHhqAa4rqqUB68pXT9RPdkvqal/iT6ErzZTdb/wwvpSyClmCXT6/gptMv52caX3kWTksLXiLPwb7eXt/ZLiOjDQYdHwX4jKm+875YVPsCEfkElLrc414unxUptdHts2HnTC254ykFsT2cIM4NT15Jq2WYTfJXl6VOOwebAzx8Q0DOp0XRXXEahyg5OwghRnWQJYw3olrnSCrF/Cs9DIAU+Wl6ObBGi88IMzvefrtMrl3uz8vnGJeHEg5gBhjFLbGHHw02y4C887kLS10CteBC7Sh5ec/TeNBBIMxq6PMKy/TD4EzQcPue0G3MgfN49TbYAYfcWyQnPiuyam1QJbikG7HjAbfjLLmyl6TjOJutrnRlOZnsftrpdzg1FFhEv16fK7zwp5POjYXIgrSOaA67YHw6jyQ3YK9uVzoaoE4mXzN+rOboUZ/FAveyl/VmbG78ruJDB4FMsEdkd1vx/TpPWm8hn9/F130LrjBNxdua4yQl55X/E7ZJA/WA+Fz0rxKS/BO4Eohjo95gHqZ4fGyJ6SR8DXGIiyYpZXKvLATXkBS9rD74BaVkccDg1k8zHehX7bMd5jdbcZdruSfilL3Y592nhsjEv+7Ybipkwzj7XCJ9NfeFLtpf6xXHpnbtlyB4BBj2x2J/Cq+IKsa4ZOIcv+AYswI87dyQlcd3hXJfIq2+9+Fpj06rvoL5c0nM6tD8On++/wwad2ytXV3t7UlNOXioz0fv1AjKsnMM2PF1Np/XCCQMGGZVSVxErSQ6Zc7f9XUzk+X1Pthdq90otn4Qv3+2qFORqm2RwDrWLbHYCGnCyGJT4WfquMzMXrL2/KZgFy9AmShMydAIhwKc/kH0RmeEJjodhyQjWG3f+f71GKxjXZOPzePJFHoOIaULmiPjEG3kctAirZs6qrz7f3cii5grV6DA2bJYHLEDl6Faoxzf7NulgDltR5t1LUpLob0ac6MzsvoiIX/R6n3zT1+t8ji5oYLsadSNmuZNfClITgO5O4usJ4LelKunMrFgkwB0EQ9tnPJ7LUdRtZmGyTXGv4MPpSzZN6HiWOR8+Y7A4XsdqQ936UnwcnodCGXnQqdEU1OCFTGfMTkj8LkNsTrDDpOy0vNmh0Z1p61rlWUU7Q2anw9mcptHBrgKfPWyZzISvXEb9MxRKN8PDZaLPgqaLzDNUTV+GeoxknBuh1dmzja5TzCwGFXH0nRUWIXL4HS9+dCa96Fda/03d/+rqPTL8T0TdPFWl/Wt8Lu3/mg4Yl//4muk/gWeodOgYh4yp0lkAaw8vNonx/pe+V8tWsZ2zobOLsX0mq32f7nG5UWR6OVx8EAOFiieW8sQEAHuIpsbjNpAOpjI3vndfkZUqO2vSSRYBJaxLk7P0CM4CAjFiObnFAdi186vklVkxhNgijOIgiCW4Rmrxm4/Rf6rMD8GKgWz4YV/bbvw2mM11t86Ipc1G6TNEofAnHEKu5zOTDQ/xcvaZ2e1/02wRjF3VF1/yFMuT7VucYkdqyfOFujhhZej5nIvHWaiEQDy2C8yivquoZLkBHRtfJoJV6CKfBouFmBe9X2cD1ck3XcT63R213M65rHYjaITJ8vbF+L9LEFt3sJ40CwZ7tJ2nPz+bPp9Ne5+PkMSSd0xr0SjMikB7E2C5rLlZnWPUIeKwzRHhHczCU/IkDgwjryhqE7B3bLQBhXxzliMPVRZWFlUntLCZ117bAGLUZ/e9h2KpTVXSES/Bv21lYqdMaKnbD/G8dcfNAkjrh7P1yZtzuhvyF0FAChdyMWmlkcTs+laaKZGcYSSzINHxcDmfMvuu1+groKGLlxT5scG4ztpdxn2uTZh3DJSUbxlpBpmzO8jviI/BEeDufvvJZf7a4eE9HRdYFWOmlC6EfPK0pKpPKmtcn5oM4ZXvIe3TSgyX348XxBs3m9SX8RF/lJEwLhOsY7YOk1jtFS+OoJTOipyd4OF1FB5sqwCZsc2ZF3KroKAvRhuJ9TfROx91o8blQXnM/MxXx0r4NlAqLcPTaQ6BngfWn/ijx5S3kfIBrVsnscO2wAKXOrNDhnYTahfehW7nfMkrHLi4IxBfpY9t67ha7juaLpSpKfr6prnkjhJv29N+2iaVBjaPctxlEjsXh0IJBNtkL/UAD405Kx1gXJF3wo1VVkfVVCHir9xHX2UI08q35Q2HkfOpw+FK9syciI6f6BiZSPQVCiSiy0u6zSczVA1M6KSf6QrOjRfTWux/7Vgmq2ZP5uf19uL4Rx8RrKQUdQGeOfGWZAG0jDNYMR7Wv8HxBdPFtD+nU9lCsk7J3qev/QnesvMMoMvdWTj+FSN77a/7U/ZxMX21QMgb2dGBCC95c6rPbwY8xtRv59c6B3Ic/t0RMfuoxYL5nZY1PMhfVKGW3+7BbNRLomtVFJGNTo2yvrNIpA0yuAs3epCUbe3TE6rA/wcTSUg1RXA9NV6YtiezZUCFafPxN0bDBiLxwH6knZnyuZ1oZJ3vtbvuWxPdRpKHC0fQIgWpXGo4/OHV+F5l0JExfgMILvUJjtNK6UyzrR9xGvzDuByfhzjbZ8Gyqe96r3IceywCj31TmK9temK2PPUHxpCY2htMpfCRS5PUaRl3VP0WHGBFCXtU7L3QynZZ659bCxXP5YRp0V5CLz5HZTncRccGyZk8illaUrW1iQt2nNpwIC6G7gfoVcHDamswRV5qh6vkHaVcMr/CUKeOGeEA0LDkocRFz46dnw4gkfQnNnRkyNudseJrsypWTwc0jo/pRuEY2eP87U0eacl0ZWXNHLm/a1UoZicF/pmAFEobVg0YVWMyAJmE5fHKI3bRoYJe0igaX9lowx6NSrGN01J+CDYjNNddvjo8hwtoZBsCedLuiEIibLOkTUxwRp5sBB0ZQRnkcLpUDDsYqQj4rZAdSArgiic9P+MVWbhpBfPHpA2iNQ4vhM4s1yFNG7BxYQ98jBVbiPZnn1fUyqZN+s5sJTLnBhZa2PrG96Rl53ve8He+txftWC5oQl4lhRftj5DsTbLPu7r3FtK3HJ5gdoXpSg7QeOJB7Kzn7Y4FsWT25dBswf4i1gmOcCde23/o4Be7KOVjti9m2KxdMSRW5Csql0tUCjVAdBEFlfMrsxokUpKtqNkHyda6I8IcbpOA2OXv6foKeknAqh4/jrPLSg2ap3KbOJn5xOF/oj3WB9BLdUJldiN7bSwns4232U4zoWScINRIv4cv6eLyjZ150akoDh7zw+kHnt+ItsflsjtrX4quPtRnpEt9/HCvEXm+wIs8pUelNN1n75tDF7C9/pbayOtznDFfV0qgjU/+WVe5OKuhwuCEgwESr39nFP3q8s1WKpujrKAII9KqbzgDe+Cp7Xqf1LKlkxmLz8rcSStYYNPCBjFzSSmofuaXhE1VkS/sb/bqA1U5W8221CrV2LX65m4uyGN7nmfHavWOEPwsFfKGwCrEZhhHyESkObi17AFB1tmCmSXc8VXrlmfuap+Fyf6zn47QLqF8oPnXqyA4ju/DKLlzHS5GYz4LzkkHeJrNvQncgyDaU6lk+cjLrXk2MIHypXxjtlUIB4wOPB2kj5atBgVp9mLgKN8KiqNcrbRID1MWlC9Ki/1qYC6bacO+hv3zoc9nU91YhTnGz1ec6XpmP8FZpAfk30ALiveG2TrBMN82+AjZAfkReP93V6B4YK1lJzBQiOxeqhpnplyYdBbXbCSMycPwbDAh01FKPl3mZq0EGoBpkhOQbU9VwVlO/WozuEF7P1JNgJyzNmNyIW4DAheQ5U2wQTDssoi+XclOCSlMSr07cJuwIMifZZdXP7Af2Z5w00A1sIh+zUzgrGpQ0/Q22RkL5M3Ba4KvcJw64hyYlrAd6UY5cMSp9T6NJuKycVvvGbg6vtl2DYLZUBGnwR5MW7rKgHHc0nswDufnXU8PzuFVEjpzC6+RZ5dthl1+bxa4mfJ2zTPT7CWhE1O9/8A+IRgQUV+RVqJtVfvE8cph4bPSQKKxLUytgjj+eb/o888meekbMvf2k1CIWF3uke/FQvpGdRBdNxDfyXywh+/ieSmNCDgPWSFMxATHqhR3ibYY56utHZVnNFRS9FsA99j6GHAXGI4uPI9+ZX74gVoSAYofW8R41JjWR+QE0VuKuzRyyY+goXJJUd+oJEQnTtMNf7EPQGBcufBLKO/E5+A1lSGb9GCTvjPuF0oh+l+dVim30vIeaLI1jyIXALebNV/tNJGQMw9mGY7sNYKz058mFVFQ/Niy6c17jSaVNFtekXxQzwFrS7qMWDsNQe7yEcdjuNDeB9KcfwuMaSkq3HIe1FM7TH7iLgoI4M/VzGqKju2OFSH6CO39IXotF0V9AYv/JbKlfq3gwyQBCyyh8SSWBkHrOe4skjPLjTKTGCL+12ayj8GMSnvn5d4jg5ssWBkUuMC+lSMuQY8Q0et1Bu6c8nCE3gJnC2bozfT57Mx/wNsdjxqk9BCmQVDnSVEISQlKQZGYUxHKT3hqu0RGfptceQBoS+lgsWw23mISC6CCLph9R5WGDn0FwDyA2W2pJs4FkBLT7IGBiNi8KJOPjwB+xiBDyd1gINH8ShIJqGe8g8Hrwb/RYyyw468Y8n2tYqIT7W360mNbSKiOYE1xZIaHxcrQmlMdwRZR0NHGwMvB4hS/kINRtDiDXzIw/gKLcjyY+3Jk08Bj1Jm6ju88yT7FyOkrr90Ke33mfO5pqVnQayaFmdqRdcG7wWEW/MKWATz0nXxuJvm1OIjNdlkd0tRQppc/3GrKGrPqrxAtzY4STT0zoyCKm1hddp1nxnEBJJkmKSj8ghr69T05R+OAdcYvKGbS91ZTWAAbHzOqyDgyo3NxAtnLnlugvWEWrL9MqHj904SrobciVHA0HqDUGKgHALd8/hP8K5m056AsAQDly9gLEy2bjXHDC4YVafRfcbAkBkye2zVkNST2bpSih+upuJUBTaUs/NYw/s63ILjXwhASuvOKmRYY2vhSeDmlq+L4YboA7j9mLRNoFLACKdnxRH+uOGw4HCdobBJicK6mXh6o+GNZ1Jd+Mq8bI0g98IuJ0gNmGRs0eiLH+TMR0dJ8Z2Yi+SEipvXRmUGd+Tskv5IzT10LBWFKpG24ICKy3NKlS3s2UXrOwbVNAtrR4Cz6I6OHW85mMhSIifikHaRjaDrCQ4Fzi5IHBXtAi+nFhwfvP2cc1nt5MPPZRB/dMfr55+P3edmMCMAnEGMuwTgBAxGt+t0cSOJGOD134Zg3osEMIBTOnVEWY6yMHagxwRtKsOP2eUghg0exgeRcmAv7ZJiy3fUlTgsEzIGjD7CWgXQilzWB2O2rdmEPI66nTrgJczwIoL31B9n6W/uyh7CtMglqrmC7D3Ta06aeSfExOGWnr7uCuJHmuAq4fA/tFwiBlY3Dh3b7YVxRFBT3bquHAX3ycVWuvUkn9OjblC44w58WvDJYJinlXHlu7W5i/6QGpQ4rIDf1bm9jNhZ5vPT0GcRvLdvYdWYKFxHxi2j/7POmRBH67E0nFezwceuqV1odUSMkxFn2uDLpmUBwU0RE9GaYNcGlF+aDvDkpN9JaKbIDQYHhqRVtq5gxQYHEoDQ5bp0dkjXHS4NfCV4o9lKDlZPQ7M3ZjGXBExijak9uWqHvTF80iCpu4h1ym5kFOTnO2gwe0AkNnlyqzVLc3g+d3SF5EFEVncuPmx3IuPRAwS6fO4YGXH57TJM4BB5FgwFBxrim20AjswAXUUeh0zfb+oXmSHDeCKZzqWI8hIR2Z+MuAINnPi8lREJrWBkPGXHnCkJ2Zirj6DDXoUlelRZ+AX5IGwP40j+OhdQnQJD3LdtnpixI/yFzxDgLKgAaZ9ez23LbyaeW8Xq9TqeLzjBb3uEJRurmnjqgiTMeHNXymJUCxOr4SPsCMgC3k+jB+IgQ8fJNcq/3i5bnrTG9Ppv2Zvqff3/OhojYH+EOx8aj2ikiakv5o6rqQ6v7CJi9PZn8MD7+8IHwwBMmzyFnIxbZov1O+sy++hWbtRyuyk7+HSGvjU1YrtAUX1uYlnK8Dt5wA6I4KAzZJ8bVFAZYCU38NwWzXHMR9n15i/nkhYOn0IE5+Enct7QxRC6/yjmKecEDh5C7VecP4DivIhRJSIFv1ZNiQ6b21tLICgrGwC82jlMQgRduVAF6JtzygFCYe0AzAnukMJxX7T6d9DLKN9AN98POQblRfEQK0D79J2nEJ5LWX/iBNJGQZujqMuJAXL1cqIrfHeg9aV360hjIgxViTZESeulfEjqzsLzoR37oDzPtvf0NensLfX4+dGRkEa2t/BHnjY2Tz9CCniX2tmsueGMxK/XmktaL/Rgqr+UyMo5+6i5NaCSB7SiFW7f6x70lh1Gu5ENUsZJsev+cGxGpkIhSitxDxb/TYy3vVzYyRW577eqsBoHPGbNlgcbaX4Yk+Mu5ASj0oF/XUc7UzbX6nuILgMGYMVF6GKlLJg4DcZB96VC9wTiouV5yoILBq21K4WgXU4l3o+I0dsdl/0FYB/isQcYEjHmRaWCWO+ZQjjBgROEdzSKhWKDRIwtQDy+WohmyanmLXX9+f2nqxcuszzGqLHRmNQ3sZhI+gYN8UHafLN/f4vKfXjPdnjrARGvReVWuKunmF9Fn0/st9PNzxoLlQ5u4BQfWAwAmXDFLsiOtdmIT2oEs+sjHuqxMic0x42aCxjr5eRrYvjL3mZqi437D+4K0Do9XOA8rkcu257Ni/+Ua3EzCnzXVwJ2qEmW4NVFWJ2tKIdo/M8HDRFlxU9xAq93/j0FEuRU4sOq72kRJt/PsLNcOjGBDqc95ZvMpw82MXQ8y8gzvKLVAXA7sHmzm5brVZvi/cDJ+P5kJL/+CU3Picv1508Wna8yh9Z+3BwdyeYOaidfnOCyO9EUyHSgX63mva9FaRLwWva0tLaJXwLBNgXvv8wD+ORtZ98+mTR+ixbS2xAbIxbFypw+PEweuNvvL+EVqgZAbR9b8ByKi9dbBlRiX9B55Zcw25VUHY47IcAvnF8HAqYoVSA3g+ZJe7ak+Fw1M1CVf2mpLIbDUc7pl38TpO5Z9icgEuQQP+teNhwcgUBOMTA9ZctAhrTzwWEiv05oh3q4Sl0aHZog61gBfSu2guuf5duxdCS3YoTRMOOyZZ/YjeSAZN9flXEYmgoeRWyR/bltAcTEUhqArGLvoBoppYAFpcpkRuNXlwwU2+OMKNfDjeLAkT85TdW6MnoVPbhYr4tODkTAE5rARLc1KWUPIrXN6BMEFcAZqY4OQdpNqGvwFuau2wUWI7TWyTLTWK46+EqG9PiTC9PmAc2QjNBw15tpOhjFsChgwF0wJBebCQ6QnKYgzLvdjH7SdDkflay16vU4QJfunOXdbanYThvBxBtXqOLnQIBFxxjVmrE4jf22st1XYGR0FYYYOfroanAa8jgYHEjo6jo+xYZHoTH+yiYx6TuAeDv6eb0dTeFbNeLd38UwLqyZqPIVsxQGMldHK5pNso1a0MWgufUyeYhQaRMNDCkcZ8JWCa44vehNhzB8G3tUVKpDlXPPiSVDeGyZBW8Jz8Dspk7WU28x4D9wG+6z36qpz8jcEDALZjmXrkFlOdqz0JxCYV76S8WzY8+IPLdVmEvAT/LA7ChnKy32S9MfTVYgo9pA8X2GDjt15v0+uqOyz/G/pQfZ6dV6xIr+W2eIj24tX0uW3vM7Rhq9Fn8+HNp/UsLPio2Tok22kfYbtEloU09nT+JdrlE+YkcWazHScyiJarxct0Q0KYJFln+fpLUK0VQDIt3ikjrtohnEJvHjMpzyOo0UQuZ6AgkurVHyZDQInuG7vw7JF/dQ6ls0c79bH85WHKwdsW+L34B/LZQIBzttpgMaoRP5/tz64xSAvIyVo6cqzrr8QxOj9tAArPy0z4f+npASzJBRnZ54a4YzMvuFmmOLUEhKkTjSo6eN/N7cOH/ifxUKoPpQw1Op+F6MEQN9klSwPL2DLBzaUeT3EQBJIc65t5jehgMddqMnesNmtLJ061iJ6TN0ZNzb8/bxWtBa6XL0WLT6rQQs2bq79pp/Ph3hJbNaT5cG4EfW4ClBpG4tAN4R85oIrT4a2Lr929OI6y4tbztFfr1e2bIvFV4Zsm5S5Juf2sllL8joHHxtEbY/+zlWBXagkGTj9bps/oWpdrs6aCGWcfxrvRGmP2cqsTW3T1Jk50VQFAnyLnjVzHEEe0eF1tONkHtplggh671t5DQnsD75jjqsFFIuXzr6bdzAew2McpBq4rTuAjBHjolGVZZydRQ8kOC4TyXp/i6RqV21I+iy9dtF36+PwX0o1ZSI8GUWqCN3HyXodyhr+ACNyyKeGfRNbroYGtpSleyhg1ia6HGccY6jb/Vy9PMgRUaQWHNms6ftHdmcmxgLEpi1M+9+fmHF9LXq9F6w2xikFS+O/19KXubDZCROmTfTntN2aKmWzty/ypKOD296UjJsVGivty4McjMzU621tz0YKIk9u50Pov/4cb3ICVtLZg03+9pXNJGuRv0feDcxhCgprPmQ6+jVlTFYYB8lmn3zwwg36zyQMOVhJtFuDQXlwyVQ9/MDAmlvbM5WCrmQBCxS0kRkCzoKiIbg56JS7N10+/Yz0PEsMKnsxzw3CzfURZb5gRfX3YSStjEv1pLyDgpde3Ez6TNmEI8WQlE0R/tRdHCkDkNoiwYdZvWlMUHas1JY7E47QiSC+Zgz3ebqVtI7bDYFOgAKeGas4Pj/GOC52IH1UJVYyrCNoIyR6QIb+TpYXJNYYIscZ85Y43UB1kYmJ1qaXMJEs+njwurVdZpn31JyQnleLKz25Rfmd5artn8FC/CICKRqHT7LpzICswM18LTt+aguTow2ZtIxMp8F5FF235WfTCNaHZJMR53uWkRi9sEwHraL9TVhhhs2NWyCXcly9pmsrjA87vvaAFXaIfDbdzHMsuHHIqdIZk85JEAC+TUKY8zC7izmvQCM7U3XlTM8a1/48z2/QpCo8bpKNVxbg1aDG6FOZsHYWhxtPY9zgGhShLkp1N5gL+8RQKa9NODcMq2BpSoqpzQRaHW5ftB5dLpAdUjsDGxodXfwCutJWWvxotwzfH7xUWQOd/OIRLyn0//YaF4MNnpDrX+4nKjQxx2IEyrAKsTd9iGj/+0O8XvR+M73eb3rp+15tdZ7Y9i4Ag4RO+oD6WtlC67VOKtjPPvEia9TKJqPKK7cP9oCt1WheYblwzBoRkU6HpFeKvRbxa9F6v+nPn0Wv9aI///pD//rXH/rX//Wmf/3rRa8/b+K1iJjptc7H01ndkD6jFEYNcWOskO0mm9GqIw10Yfm12qXA+nwqR8f2hd9J7JtXPVc+9nM2J5Lu3Dv9KgBfd2Anc3eFf4XABONninCUIH9O8XG0zQKWTrPjTPXB+Hu8VUOZwhI3FIhmojF/K64HKKNRANpSFqCQDiloTc3xAXNGRMv9yhOiOOQfwYHtuaAeDh0rjhdKSeFT5XdrGW4tlW/TFomfDUGmeJfkMDJ/5zeusxeBmNQbl4rPTneLvgBlC/3z702ff3/o88+mz5bjSD7iTjICD/C502rUhBKKC6CF1SKIYTgw3SqWCArxEAqnJognhCn6G7vgBMzmDbOViaAd7gvpahk73tk8IDykL3Q04BQ+OXMsnUzxX+Qv/2BhTem4MESO/IjyxIJunKKBkGO8IIMl2yEOvqT7Evft4d6ORjr92Qu0gWeLIrBMwczt5+CDmvhxLh/gGQIxOsP4w6AmPozi/uy3rEbaaEaDr8/mp7TnxLteQfFNLJLKsoxQA3T57X++0DkiNhe3KQkm8s1cpsupX6G9N330w3xy+pe9gnzELcZ3vZauosVbIINl7Kt31UUSUQS16zliTMzmPNZvfHa0pOD3a9H7z8unndfLnCudt+XQhzYt4n+OIf7ogPpyrgXZLHHkziYXbrS3xo7voirKCIAATtpyRzglFJXBxMhivJjS3pVSNmPUv6c6ZcQYllLD7FUgYZ6e+ZJ77TNNlQShPLMiZOF00IHCkrsSGORb8GKeiRWfRoCibK+f5Bsgd8QaQD85dAY+S+FqTF14MRNpHp84menQcbBPfkvgSdZK1NKbzInBBz2o9BiQY3QZTiIQXYZn/+lkoB0xemtakRqDOFUEnRP7qWvORaEkKz33MxsKlBjTV1EiGat7BZNgW205CFQZPS8pjWPJhIRIgzzRXbJpRU/fpkRiC9cxi4bq8P8l7U2TJNlxrbEDRlY/bUDDIj6TFqFh/6uRWXdmEPqB6QCkR9Z98u66Ge5OgiCIiSBILy2xUcm2jeFIlyQBcVwcmm/EI6KgeMnwMIw2gOVRxe/vb/tkrgjEj7fRbV/QsmU5xyH7dSBS6LCevdhGd9PqQVKky3D2I8cpxIfGKbq6qQGp35yqQsPM6Pjz7sAmPwU/cz9dhyxI3D9E+AAAIABJREFUSxXhSDVH/viT3+FUxnMKPJ9XKgOUnhCUHG2BrrmGIVB5I2emCiDyBxHfRKu+tA87uMy1CPMUKCk6Xq/oP/GJJF75Dc52yaA/daURRkDOO7P4KFcOSROAjqZW2XpwCE2+v7n9jzSYE263DctljtMHSjcQn86ZfXZW3VXh90UTVeFv0nZcCFT/kMS5Otj7P7p2ezzgkQWiFArJ1634ATuORjG7Ja6rRex0gpd0u+Bmqtu0gWCgFM5xpH+Frqg9Kk7fZssnMPyS9suGNFLeFF+IVIIlkNfC10vw+rLcia+vl+20DQDhxGzz3m1yTj0bPFp8qhR+lMssuQsGO6rdgjP0Zq2TeSJdcir4zJu6CkeMxIMxm88IDsliUyoyBzzL9Cy+2SLnjCZ8cPT2AlTk+raXirJ9rAQ3z/1ZQcENXc2skURo35BOhYuM1iQ+swtdFg/l+kGjZeVT6bIBIWMund6n0Vd60yc2N+4wI+/J8VULQE1Dsl4D4CUFEHVnyy2bRr/TwJF0TJ2oMGNLmxp5vLvaQznK8EhgfvBABv0Fh/4VYImiclxRfUgQzMA8uPF4bJbQV260EVcTshR7A/rztiXctey8VzW9A/Ul3Zuoeht3Ocd9ED89vxas4v0ufrojqIAswfe/f9xoCN4iWGvbWbmgL5B5n7IVH2wzHILugKOXawzNupO7FobOxi8v0nnGflMYSfymbCmQR1kwvHQiSk9H3mID1VPb+w8XmArSOP7+YPtxPueQCeLcTzuXt3C9soSjmGdapkr1mGqemR7FN2w2FSf086kfihUBH7erzfNuS6lOc9IHzLZ90+LsYee/GBJpQYpOmevkmorpfEC5uA1PnWUvhL0iHbSwOlPTXo1ze0Qy8CTb6LRh3WlBA+AaJ48K2fVPS9xysVVFq1u9vkFr9pPuZTwJvd/FP0sYK5nV2ajUiDZPzai38fEK3Y5IhwmQ3VbVmeGsY3iC0PupQE4gt+tqdRxVKzW2hrPLm7WjNQ7HZofpHHQ782WParauuQaqaRSZsEoE0+3I8lqg9vnredkJB4vKtajNciLrGvVKEMxWKNqB76J12D+c2MIqnKl4I5D3NPhU5/vWhWE86r7lBFOZ5iMPkIzlwa9+7YZT61V09sSzwR9Kn4UjomUH9NZgLXNmeySAjIP/WUq05PLctWaVcSiUej+J3uxHDB0tUwYfuOKUYUzD4O4w8AGUBGYf0oSMow87VWkLteogVCv7rOSANS+ZAErs5B9WhkUT1S8nFuWRl7KNDyWL02LyQPvamE6ce0SrppuVRxi5r2xYu0q8jVxQIzQWELvCVPwrbm/N40mXfzVk+wcENrTp/5ochmLqOCEmCtk1p2/DJdTsg7yj9OR4fNzxV9/e3z8e5REsH/utArwtJcuU/y4IWkO4OTLB1uzJxrK4jq7027B4fFuyHKP2VluMrIP6A0iUlQ4v+KOph8C5WZLGph1B7pxQlZA7e7AWsDeNN1tvN9Jmz1z2wih/oFvTHxKbExWcSxt2svEb98+VXjkvg7didUjI1gpPpXlXPcCHxnfcXf5XDZ0jWe0p2SMe80Hio++zbwx11r9tim66mNsimgx+Sw2ZtogGpYGnPoi3P/gm+XxX/6UTtXwWVuCuD62IO2HSi3VktGgeTudk6BQVaUCuEwo9bzXw1dukrUrf8ks5fcCAhe0LHLTkUDUnhxCBbFspyrPJedjY7hGiIvCUApro+ctSBcGX9duRhUdGiwCzw4w8jwH41IIIz4cAw76Lu8i67bd9veHnvaF7+5cb0Bv/y0vZycx60t8fIRd6rwDEliUvr281LoXk+tPat/9Mw38UvPb5LGP5VIRGoBRMBVtKe2LXib1yZSAFkQAehiyYraGpVV/ImdWjwO2i95ehegykNqR+K8BKdXSqUSUMyGTxet+/FnRpvL3uvNbnCVbwHt2YOFL7cJUTNo2NsKLSDNyha/4Cy5nDITvYUBYl/GR0K9um3mhttgzFNvsZ6alpP1DBqixH7bAeug8zPbXvX6fDoFvxdjzMobOUHD9FNnFOH6K05LMKal76r4x3uX6ThbO4bo9DOH5mJyQHbGvb7giJT/5CL4bzg3L95bWh88FyOg8ulHFLQ+MjKXkqgPTqg594SbnrquT+7HGlhRT+3d7fgBdnSTiWLBciB48Hf4jrdELxGFJ7VMSMdJf84AeteHSOI+UjILw0X5e1V4LQ83HF2wQ5sLdoagRpQgFwU4nbMfFJBYF51RiwQ3H2zUlo1/gIwC1S1xtAjb+gkb80ZJUDP/PN5f/kkjzZ6azX0pUGjonB0z6fa2Ub175Z75Lq5yzw/od9OdA7kfpcSraPj7QiKjClszZUVjmzL9t4u8WCBC9ZbgNGO2o6Y6vi/bPxfm+3swtfXwtvEeD9xtZ3N2Hax/9jpLx1kS0Mkide/9v/+H8sofcldYYpPGcCsURmUZKfnzd+3m9sR9jSC9THVHKQ/ubK2YIjRwuqadT4vpBnEwn0pdSSfAFqWQlSVjE0RYIijScM3xXOwPPX7o2oZPxdjD53R3u5/pKeP4xzp8UNjFPnorAZ3Spergm/PzadyOjgrH/jhT5s7Vnj2T6URxtAzzsS9DJmRBTtsdDGCE5My2o64OjRrDwZhgKRxtJAs9uHhq8CtVkjk5ACJ6nATXwwAIMF5EYDJNs2O5T2S6LqSVKqkDSP8r4JpujUGa2mkpL/Az+TdbYnAV/aM4uC1KQqIydhO7SrvL5kd//VmiZClagSHh8VmHTxfir6ge8B5zRpGs8mJdqXXAVIR+WWi3cq+cvNxWmJ6vxOJNKh+tiy02HlSsZvbdTKR5U7Np60X5ynXDBwq3FVWp1/UqfTO1rooKoEc7Jh3Cb+gWrpjOJyd8opDTts1zr6cbTg+EnRnV+NbibvNWFHyeP0reLhEUGpS59+SP/XnOgoxmWaTpRMN35u8VRAXabIsQfuTuzAmd3gfBC8K8NZSlVLPoe/CH0Qm/lC7hvbsTMIk8/kGR4nKb6T0B/LwuhVVBrQw6nTCazwtdMgCKEhPLehl/HfmkSFvCi9F0tbALCwaELruKrmv622USy+7PV+/1j+v6rl375W4UerZn28iKluvpTQuliWB77k5btqf9TytpaFhd9b8daN11r4zsmQ4Ptn0+YEAJlPEh0r5XFSL+bfjxrYZ5Y1sLxUHzMeu6lNU8fgUfnjbADRjFhRiwRjChqVpSW2u5BKFdesQorwXmXe2PhoeDutzIldZ8JD3jVyr24igx5RB9I5Kh0hfsbiqSJHQ+l4lDOsvd9z6P3ZOROvSkaLnUZk27ePjtbBNbQoqSgnKh0HrbtR2elOmzRaETbJQbgwJv5UXTyVU2BueNplG4IMTAbrtJceLJBKgIFxlOQKJ3QD9bykQ9HOinXLH5GhRggVi8S21CDicQBCDoAWUawvKlR2MoS3uXuUTt8EQyUjQeFwD3KBZgEnDWZR4JeHF13x6cq6ZenbhCPYm2Q9JFgRqSBSgiybyk9vYmB2qNZmbQHhIFpKAwClzVw9j5WXvUuLuAFtcsrWJsaGe3e/Si+F/uoJHIfb09XDeMkEGO6xkzQdkmZIvW4aWQYX+Cky8rnL+JepKsnKL5BtpKO024Rr/o6NaWE/FIOc1VW/r2SUkstOFKY7pzMNoqnOF+2aDmxhTuOu472GrqyR5H0SDVMF390lTWuTdH5ooxW89/3z1evYZGCuhFxqDRZhO19cHAVjg7DxVkQ09a314ZqgS4xf9mc3J/Ri1vO5uj6+SAtlTujpk2W0SbJjCg8m7G0rBRrpRRtvLMucUUD9tBUbPvIH4fnp1gVE5tRb33kcjQiw/tiHFGSbr9lOM2t48kATsUdg7fW//I//03RDdsjhbYW1rXi/FfvHve5tkVh4fuwZ3iFizigTgNqC7ceHZJFomzR+TlniWfWylZt99/dZNQ3eFJhhDR7V7SgbgIXfTo1zueUBoPeKHse6YnGNFE32lsPv4Ooyys6fOsrnhoSGHZdpVrP+aCnwAxfqpBXlMYlvk4bFceMhAE8iQvEz05ctI36UdcGaCORK1I6pWUgHwqNTEUgsoyxk7zwXtnf76G7eT10b7y5C22AdEe4wIOVGdPkvLA76C7fQeaLHB+N9M/OIdIa4loSc2adXV4o8wSfNr/Kq/jmPBIGPgD8w8ljzywoeo3YKJL8xph/GoBFF0lhkZDyoIZPjq08fr2PiUhVkna9uThs0ujWMdruin0P/XTtufykTlyYw7kBFkEAiN5TG79J+BIm7KqTgwhMqQ14b70qdUHHV6yMdTT55HW38zlWEeVRXkzpvoLdd5VvAV0o2rnpOTY5E6Fi5hltDCrw2/YnXujrhvtxsgsmovW5CcKkj+S9OVpntMnIVWIr3MQGuf8ZCRNvUE0FqrpBYU6Md3/4OOQb8MOeBFDlsF+fGEgW6PmRHftBBejkRSdcmNnKKf9xFvl7mvK2Fl38ZS114ov9yLGFqR0rsWe53SKSZoA/yQIJnNlaK7iHEzL7E4JH+k09E8H5H5HVj6/a0AtsrJdA8DGDvcHarL3GmtgVD34j9BMu/fvMs0qHzZ78M/8yRzcYUePtRWSKKteG70MyAGHIFqfhYTnngi4+ueMaTyrM0lxNR5WmTSHXis/Qz+KthOqYDj+jNt9l0FHJQpM8mAmBD9txylP+txBDFUTzlRB/KX8B5YI6u36hA3Z9yeW2CHKW5G15vRvwZZ402Gzb91zUPR+L4sai8qtIugHzEj6ptNjnBxViem4IeVnjHOGlgUuDyvasU8lyZ1a5X1Ce5iJ9T8ZemCWTPtZNUnsRiKwxXHJXl50unM5bL5Qpo7CIXH9/TDX9qKyPEYQT2yQOf9ho/Sk92eyxx3wzL491v111urib0kE9ckJ9GGT3iduloniyh5G7eZg/khHKKShruTRiEHYyjFW9MLlQ4ahIu+SbzhhsarS9tMX+QB6O4oo6iaslnPBQh2w6wqzqf2kVO7aArw5KGMHfT8g5VY2k6IlhaQZzU61owCMdPstr1WvSx5Cn1gwCimjpIo9PZnOAmPQk/kaB21enqsJt5VsYt2sts6CJ/wydocWn/KMy8wIM5OUHbXevj1TBfmOMXmKVaPQIt7vZ9Oa3SSVtYuTPPN1Yp3Bk0GufX7ZBA6XJGY7MoHOlHarBpiFP/Bpy5/8Ofx4f+cnVm7Zx82eekf6D6wn6/00kNw6tQ7DfxcKrR7szyEGtGoTfeU3X8Oj79+uLIZywTpNER22GrCmAr3tu/Ea47rFieD0sj0P9KpHdvF2hSRmBGgONgQjh31GfsWaxC7eKLfdn+X42+hMC1lqjrBjcVchqSuyXIjQmTz6fE3p7HD9OMfktIXvL88moGqhqolAJuR8+jOqR+jI3D9vSYAnUcpjPbZeSSzJ6FtH2J6Oxa13aLaTOKQWwHdxs99TEb+LNK78+1lSkDFCdQuUNbZ2gBuRlHW8XaFFdjUPcyflmJfn/iXBh7yRxHrWOKPkSgeiRemkyVZyAlltF2jGEyThQYx8RxypASnZYAsvB6CYAX+IB4O0TEdwh7dDxyXkO9ViRiUohOMhEArj8Cz3pv1WLprCZrQ46lTwREN5QmLRLyWRWGL6v57OBlbvOQvVHhrl7qXfb+Ntbj2Xa+Xk6XSx3G11Sn0TSjg7ECseskBz4sI+iiWZ/gZlnT8UuBHRHchB98Zbo5vreusC+/vUPu2cBFuwjYaS9zFeFJFKJuLH5F/yNVq9onHOPdhYJxFvqNpQDSjzf9hoK5tegUy8lpD2+dCUbWATrSFgLfEGktGnIC35EXGvTU9pDqsa6rEtkbPmFjgHCJJr4v3Ng8Wvvaq+vkeO0w4i5ga9VtOaIBM16kykvs0PLs3YchlLsZl8CEeZS0vRjdhGiLL/ts8Ute/nEAlF70k5WWf3gAP2aDTbdt59F7n6IbT/Y41GEr3mCVn5Q+ZOTHupzmRFJgwYIFbN34eQN/vhZ+vn9yb1R+plmRf997lywpyUCTby3azpyXcXsK5RQ0e/mlIe0ege387e8iCquKHUtR0Mu3cuOeOZvni5ccFJkGI7o6cukE4KX5RwVAFPhkM0Ki2pJQVvAfA7yCHbcOvY6hCMNCb4+NGm6MmfaXviQDhPRjKKbAgh8lvaPChQKEeuUgh3DSoEr95JwcxrU7s7TscSyJw2ki56BkPnDrebZ3UzB2f24UuYQwSh2mMQtApdTjiyRAj1iJ2Ll4gU1EJ2IyR0PYWkt8aRAL/zL2TwbSHtcybz1UeuCKmsZpOqSHj5iOIfFunBkoCmgcacfvA7y3HbRz5bxE8IVlR7UslH54x5EupqRr8tVMGhFwyoAS7la+WE97uYerswPplSwwmq5B89u+RH3d1PqwM3peGrz38eqngXe2Yr2KoouO1mkyHy9rk3vr6IkjSIoFeUZyohDaxSc6pRfCmfXpq4SekJKTSF+Y8hzFSGfWhJwtWukhPpaqRks6/RQVOFF37yhdpeX1skFHjrTRo17XMJDgxsSt6UzibyEmVAAvcQf+Zg+5+pDz4z0GXudrJoWfShHvI7mE+aHTnwHn1D1TCpRfp0Acz+N18AAMiQaeHZ7Wgw/CcuB3W495hjGq27WAI2TP8Msr9IduL3JHf4nkS154/Vl4Lfs66lqG4c9747U2vr9/TJUvzdNNwolkM8hzvCfd0fm/j2dOSncEEYNhWDajn8HLsEny2pAt9iEXbEBeeO+3nSqjlV4a58dCLT92K/FBjK3AP+ccSNeX6KaPUHiTrZuM3uQMcY5suAMCpQYSkPeum2imImHCWi+E3Z1fy+8wAibhNd6TkY9X4ATlMCAB+PxsWleMNQtksW35NjmtdbyH13Cqesq9GcuOQnhDu/I6wqRCdI02RJiqWZzH8yHockZhYbRb4yzehrFWyexbM6Kj90O+GY8ZmRWUgmRDVd95B0piyDwq3U3OnlgFm6USLL5jPqjlTicgRb/TjC03vGIOrf1dEPWjn5ZSJBH4/uHkAe1GmInsxnYu9zXjzfftbHX79c6Wnic7jS55XysILBNVwGgsvAt05xJLinRPkkCrH2cGvl4LeMVEYPl+LIXo26IdNJktteCTAjdBl9lsXb7mVWdQOoetjTo7l/gwye2H1w/6BE2E+8ql2KNqND3I99HW9kYfnuc7PYT4gRpdhvxBLdwWfumcZakqwakyVYmMteDyhZ0ykqHxMt1Da/tXmATku6h6nONROGhsSi2seOm+oEf/5OLMji1Qh07qPFCrEWy/vE1qUR2X2bdynsxJ0Jhkkgm0a9vSrFNtq5Iz+3ARg7VolkZ7vWMy3tu76pegHbOeCIoQX7CJgj+X23M0uLdu5HMaoNBryb7eKGcuRIqXKkC9OqEHytmfssHPCUYxdkOyXoVnfdms804s4UfklTfvbQBrb5vYvwRfr1d+rvVP+6iU4M8SvH8sRdOW5xfeCqj+4Jg9XEhw9Mx5hMjQyzGfuIF1DvLnK8dkzqpkA7rqOHU7icByYk1lb5ft7d8UAEKVRzv1rAyzKK0IXXgs0NUP7+dVObKh+Ketiwcp0RciZ4PS3+V03d7lrDiYTnYpOZFixYsG/9VoMI6gvyOV4fGqZJDeJ8w+8TtGtrRJOSL0vtaA8pZrz2tORH7vwAUGCXeASL6+KIIbBMawHJFpNo2ppzPbKh2gyWB+wOCGz/QDnpo6FNqlgVgaevn3oddL8Hq97F5sh2mcjbf3xvf3G0viUP5UxXfg4XChpoo3/Mnmp46erDzcFJRlwBC9MKaK3h4VHjwsUOy9KMXA3m5FP0IoeFLg0dj4tranyIZzE/iHoxwT4Umi0AtV42ys3evx5Lfrb8Xmiac+vjt0wQfoA8DNZv3VdSCjx2t4hP0fNUG6qR64rlJApHPjHA8+QD5zJptTlcOdYh/c2Wxac2rI5EhxcsMynR5N22F4CGEZfD66C2k4lq0zIIUj2HfqUTLqAW/MDPGsPRChA/zjHGKJLWXQWZ6dfgmXYLrDbH1eJvfp0BfRYpJYY0Y6Imx99jtS7JSLl2OY4fxOR7Zwj5upqHtRqX52m6nxHw1kNTvedewD7ITvo/43PsN/8zpsnbwQwbOtdib8S1auWhVrmbP72gvvLdhvByDiaQ7tcN7/dgcoM4WQrKtsTo25pnCSTKhFXGUtfP+8sd++EuncuT2VID+V64qtvjfBjsbZl4+94zqXCQZfX9xJ24XtymuTIEe0kJTQRSsQWtIxdOWm6cxW2ZrR2w3Z0f43tWBoiK7RZxI3R+ggIMewWf0ayIwW1qfZGG7NYFg1lnKlpjAxQ8NlHPnywRwrA3xuwF5J003g2SkPz9yN/XGp89cIYB/kx6CahGxoB8AMNZtiC8ISOTci0Ws2r5mfmzrYfrTeh5JUhW7B6wW8XvZ55vVaeEGgL+BL7SMg//m3CfTaNlVVSwo0UGl1CQkyJrb5hM13L8vG3EoDwhZzfmQsP0tLAs4Cw/dwPmh84/VFjOVR0eNwvavZISMoRV7DWWcJAL4p9EehbzuFMGbkZPZzCOIrTJk5lMQJNll5lFFcEqcYEN1KTyAZW4/8p4Ib5XmJuTUvQHwV7JBZxThV4eGKirQ5UIsNqECHdMDVy+82EexGXqhIb+czojUGVP5Iuo+RjlU2lFOSer50e+q8WKGQto+yaE5OzbQ1JVohx4UTR2aR/BS3Y5o57EbwHrwn+YleYVhFUwWZoMS/dC1AqQZSK52JiywINlQXJJzZQFzFNgsMfRiqJGxkpTLU38TPbWhWHHzRCd6j3Fnq0MdBjHpeNKMi3Ez2ffDdCrk/jZiAHXuHHv2ecISf8OCPLpOs6e4d6zxBPR0pHZzrOTER3HqxPE5jy/HBR0Dw6TTeweflfDfa6Wgxxh63q/dR0L+EyKO2Q39tpFIqqe7K6uu18P3zA2zYRxLU8VP4aqW2cYqfnFtc3eiDNLvHNKkPsGj/OyKBX5x3CqrYjArT/Ri5qXJL5cRf4WLC9VhhaE4GMjvBK0rCjY5IGisdy1/pEN+aBLpDT7jwbnBGD9S6tIrMTM7oUkormZOKT3lMRX8i1PtDNDn00o380c9ChYqRULamn0zyqXDqjRwo8FdXY5hC+bd+SIcRZRtOh5a8oSONvkVz54EWCdQDZyEY/DnL9TKn14RpYQH48/WCAPjZAH5seWSTs9kCoQCm93nkZ4Y2FuaiwopeAVS3eNjxRqTsIKQfgG+I7LvXiEixpB6Gr/KAnXwT0+RpU34b8rLjtLZKThBFF1TtyL73tgCDbfQ0GafPgZHSImGh8SftUSu/whSdfMmWtte7l5/vQoF/lkkWZJ1tjKqyyHjJxfgIV5z8cWtvrIYo/9H88ErNz7XdPwDPQ2CepD0zobQPXqojldbPbHcCik+4JqzQRx2e4X5Tx5qfvqaSFYAh+eZob2ev4LcoWyV3RnLL3sRGGJZHTfjMjT06e8ubja8emTNqTukLWpve4gvwgy8syFT2rQWAoodlFpFbbQ8dasRv89yLU3nIIzkU7Iw9Ww1t7w+1XqH0eq6USjiXuRsMu+vPzlLcLm9wwsc6cn/TlO8EUkbZ8kPfkP3Cjyjw/YOvry9fsYIHTSww4ntgsVTsK3/vd/cPbk1cu1n0sDYQAtbhHKsqpb/4xJFgRW3GTKF+KkF+LU3nmHRahNrqn8Ite88HE13Vk6DZP4Zf+cr2/Kt2GaJTLvqQs2hCoBVlpRraLgoQseLXcDIZYYHtJG7twVPkQhvnAEnt5mY0qB7PnDMtdWAUlfMA/DgDTuudv+gBkJHrUCQMQtuvlpurvexfX0JjdtfMobnZsjQQHInVW/mhlDtwLbpSH56YL5iW2SranBkX1+Z+uzTaIcPvP7Y/Df9yY5rIsESSLoFFIwXbj5rbCrzIBokIXiJ4L2Ko4fAIPWmqMCW4+t/SAGan6BI6ZDp23UcRUVhUFuluGxSNfGXLv8qjwqaGdCXyzvLx4QunVy77dxwV9q0xWZbY/97LjuDaii0LkDdEgTcfmB29izxK5aXMiE6zbMOjzeJfr9Uizym6bJGRkWeIbzybGzRRY+I3YQZ6Vj2QMxNuI79HXm2Hfjl4miOFl/H93BkC7hgp92HUOu+1gZoTkwZr6pZEg1Y1MMnmtFJhFEPooOsGMHRj0CvyuAsWCBY7NpETG7JnLEwnV0S11JV6dgdo0VqO1lRObGX6cnuMV6savHloO822eqwoZNN+B7e9pJzZvoW1QvkKWEojyUN+kpfRXCE/N26RThftEv5Jr0OB5vNO2gB+0AsxjNcVf9xKky7tclJtaDgHWrzY8R1SEU1nFFXKDoiWwxYBsIhusgJ3QIk+Od1nSpCOts3R2/lBbf/E65evUvn5qhvbvpC66QupALBegO8tQMhGpGZRv69jdKFhiwAnbZAOTrpplFWam/79JJMl9iGs/NCBA6kPIni/r4OrnXcsPnxGYa8dQuc1qQdlmey/X0eFMPsuxLVEL54Uza0QV9+QkV6yv9L54Lkz2RIrOpISAOwozrZv7afifPAqf82vGTYo+OVpqT6I/hBz+efXaP8jrgBiCbUMw2ncTqDPr8KohXI6TPQVPvo4Dxp/aB1jtK+li7W1KfjOO6XGt0ju5I1/+72hL89yTw1sNdaKr5yYchNVP6BCocQwQZtCeCj7SZtkHsJ28HI65+r5qOKfwFx9UFTPjQnN9iiLehgHQ8hNLMq1Ozwz03lq50vHRoH32+ovvJHpFE2HlUPYNkleBjweneM3+nD1//R2253Zj3Ly9FKHkfuLalMRTPb7mNNzwtXxXxnPa/cBOoEehCoioi238YPOM/7TtAsFeDZwP8rmCMANJ/swbomk9+8FT4EBBwcJVrV35O9HHS0+qjSAkN0ykUGEiJNMF/XoXnhp6YCW5bZolzRZPC+aUPflyN6ykC5byEDOsbLHZlnPIXULP2wWr1YCEF1BAAAgAElEQVQ5V3HUQUq/Hjzs7RVtBrM/sRgt+XK6BJeu8sQLWb3gT/FqUKoC/qrCDcYsynaU36q7ar75C98CwQ9+9rIPAGwtnQnN+WA6hqpjk6XD9pOQLPeiVmUm+hoC9dSxg8Y+eMEoPAFaFqCQtcwu+qkEDU7wjnaYYWe2RnhgKKFB/xNj7QUPHdYBfDWtH/LiW+QVkdLrDE4CUj87sz9eqVtDZHmJLJCtJUptFnfIzm2cHhR2K55lyETPetm+dymFzeLCtXR0acs3SVt02RRDBo3ntJmidNfrxoez76O+Bl4f6jLD6cblYH8GOoBR+7zUe1+2VFtyvvWP7R+TF6AUaD3rMHZDeU4TsW/LZdQ4RwYtImsz6PeGL41v6IrMT3u23+rzyZHn7MzVfBNtzd37EfYOejh4PT6uHgF1kr0W/rziDFR3YLbtJhWUzrOzlim1Z56X6MSOyFMsqwbcTfFsr5BGxVh9Q9/iDSps34JZ1tANudCh4n5vKGCKxknBNzUi3hepaNYYyunM9gPwC/55kSCIZLkZe65yaembw1KyQIjwmE8/hN83mWLDQ4vVQ+zuat6NWnMC5t9DYbfXtQQ+cPXfaaij/kbRIxQB9yuWYpoyqlW9Gn/0JU1FOZVku3J1bmvqmrS55EKUPmfKBLfSpCiHi6xXYzJqJ9/jvCT6c9LNrWXWLRXwtOZV44jsW2mqPhgjvx6dnp0vQQGZk0dL1u351KGVH6ydDikHhNqFRExIne0GyVN/SqcznxpQLEJCf0ktcP03bUfLcdZe3mhECD7Zz0K/cMk6mjobUvyJt2VS/fy8ofo2p07hO/x3JgTvNtuI0T9IbE8jcOEOr7QS6HWnIrlcmjYwwPiIB/8LgLWg72/v86lEOkm1vW0yMur91UUpBNmnNlSGz5cpXe0Vo1Qz1yZEPZAgVGdqykfMHn4XakDoxxNmCjGGG8zJtVFGZh2AczROyJPo0set5Tw+mMnNJawPt1zS0qyktQvbsy+zXzruuajgrwI+gH9o4NQIl5KELyumA42ObBrCw5iDZbY9OzYI9AYuz/ryzqx9jBNpfS3P2XN2Fn5+Nt7vjZcsO1LKox+6Fe+9zdn1o1OM70J5XDb/OI5Bm36EUPAuKmq4kXmEhqbx9daNr2UfHFhL8PrzwuvLclT1/cb3t+PwJn9DCgHLhXXZYsFRALLKGRpf32sG3cHJpHlsxHKZXU7Tlc9I+aYzK77hhxSUw+JT47j9yQKqTqsx4pPF5k2yYg7A3+ouoDluLXcpIPvAhVzTMq8924W7EIyIZHueZPH1k2UtI5oR79a7hjTOL+WRCSx/g9oiLyh4w99n6gaNijJMtu/Cz2vCxpEoRrM2bkniVvgoJHk4sI2/u+kZ0Va5xjzVrcHLCOigi3j3RWnzS4wZkbhWuOYYLfC57HOTYzmPQbJaMWshpJYiIG14mG8zHk9LQRKOXdjStgI5FPJNPz9dF93/WD+DQnq8NxLEFwmY7/4egSYddNPRCUtsfuCeFaY+/IuL4ZM5QZBZ1eRkLdtDsPe2lAPVHtVMQSCAl+jQdbWCk8XzfXyp8t3t6I0u9HqP99WmYr8dFg9N2ssiyD2g1V2Z1BV79HvyT+rZMADBP+fIArHZazbmGqjmu1qYUvQhxajtcpmKtAS3L2veSuvsNffsqM8lZPzqBib+ViVVVN6oC1qdUznxYA7X/C/HfLg0n145ZeM0NzxAPLCjL7N/10+kUjsyaPtg36DU3V+FmAzVI/0nImGOLwhw8SeNNNsXmt6wIRw6KRqY7aazuYtGHK0BFD/ftkT+lm1Hcjmv7m3GUneYGdD5eZowitWqH5NGnOoQRTMnNpnEDH9K4Va8/iz8688X/vzXF14eTv8R4P2zbWbvfJF5qMPqBluVvrBfWy3qG+OVqQBFONSETBGbe0TqNARdjqvnVWGZDlnL6US8ll+EqaFqv2OsQg6HJrL3wlPE4ossy14wJclzFqKjYR8ow4yDV3SU98yVEShuC1pQrbZqkU69+rmNGcEORRo5mdVIRqyO62J1bldW3ZeyQa3S/9YlFoqilxXYpLe7EepL2DVaxW8lH1GEJzBsPoI/pNEh0PbG8tAKtg+Wwc0AO4dwz73fIbdNAVIAQ2J1YMHyaS4kBNA2d8VL5wmN8XW5Mt9FGlKpG8jARSqHrfDxYnIMAhm5dH5q3KKBHINbnsG4VCbBHUaiGjJJBn0KJhGoJiWS/etR7OItY7thv2kF54rvUBrZ3OxB0CDo1sadALECKbDHaSpRnqu3dTr/6p5C8IL40rzrJNgZsg3D+GCMEN3YON2uJhcDb1kA3lcVwbScMttXLsI2vLtp5vZiYr5vBT60/bSUO6s7H+seAzKur3bHzHgFyA0Oz+HqOf0iNfNiISKBvoMsA5Bolt17htEeXaXPwbt0yqIKz/2Zb4qvuiI9+OCowbezxocGbyh+6N6E+nfOLAFkJZ7VKF1kokvRmI84Z0tjd/YNE9nJL5yHGWBn+71u/OYUA8HPuz4IYmmgPn6eo6fbjCje9um+bJ9QrbHXxmb3oRG6Ka2p4fwkmeKb3YL1ZefcRrQjDWV2jIxPLkd2pz5/ueAEl++Uq5PeccXRSRnJC+PsYeD84tfLfvt3EmAb6ixtw9BUJhaNFXWD7m82kxXu4yU4DvfvLut5GSktHSISoYKOZ/Rt0qmcCYGN4+v1wutlmwzee+Pn54c287XKwOFwTIt1b/URo5pZj7F9qKfa+fNJqKh8pJOkc3ldHRvtEU7hSEqrbvYgNoaV6i/aNqjkVZw9646DYuiYFrzgN5G6EXqBwQzjyDQgnqwVDKdoOrM4DQP9rE1xjpMG7tNQd1vYnDJCVal4b4j5Fjhmu8kJSu0jncA8MaKTGNiVd89X0qPhcWhse5YOD+m02RbT4fh9dLU9rJIxUw0aDP/mANvbaHY9ZACm897vTY5r5Y8q0yDprSdAxvVJ1G8d/GWjz2/mXtUiymljUGk3BkA7yV1e/7YdkVXR6Vu55ssN3kYQ0Z5/2Uxcmhw0SOzdiJC8BzMTgZv+ivUxEro0fNXClKn4Gk8xf5dyjYhTPnCAIXvay/PyartSVmPm/0Dudp6UVXLXJenW8Kd+zlanzuo2xfvAS7spFSzQD33hRghkt/FF/Ml/AI3NJ+7m9vvQ+qNPDmhVUK7E0eWDk1mw9Wi+abaM3hWQPPpp4Dy4CsDyTUv8DJbsLkB8QSo+x5e5sxzabT0Npe9tK8bSfi1rCuCf+yMeIbpGnCmcuf3eeL8FgG0e+P62L65k39dCLp3G2MrqEcrG74L1tfD+eRcD0PI23JVLXKOmmhHbvqM8TY0YPc35jty/cEg29rYZ9hLxnGOnFyvBIIZPbsuZDbm7Mkz6bCXXASf6nV3u9VQ9/SzkzT+9u2ziIKp4uxO+lp1uUUIu2WLjAVIdIoI//7UAEayfN7Zu29lsh+za+AcbXRXE2dffr4sSYlAXPQy3B1WECVca7OhtOLNpj43XtCmgZfzZjCFKfztcTgPMw7G1FQNUCRveiU88Tr2Y5ertcGbr+9RoZ8h6ZDZkQhpTofCT2X5dsZKRdJq8mJPOeCS06TrEI/ptchEpEKUDcbYfPKhB05LfLA/gsIFHP0y2I7c9NqcpPI2B+0TsciWHPvweY6ecuxwvtZ5wZR3GazrWPCGenx0oniTiJK206Y2rFOYAKX31CwC2L9sTDK0VvRL1aiA3DhM/tFbHKiSxYH2HOMFFx5G6inVn7EfgjrWgTG7wknr3OF7AMQkP/B888CNHP8velJY3KEwDa482e93rHIpfOtGtYUYCSO/pZjSOtuQo2mZwbFzomc73xPB89aUHzx9JmBdcmqX+hCnAObMt3sWCiO6bBr9n7pOCa54H33PX9fKwE24iezqzyQCS74c+7qQ+ZkITqf4zlEGd6ziuOZNhGKwEE24pr/tFiOvxtMB8EA5j2W2KcE+CGQTdZdh0qx8U55EdGU5TU1rGBfy+7l1R7b4T15ab3VV26x0LA6qK758fvN9vvNaCrFVO7LI6K6O1tYSlSh/wFKHjVqQOuwYgWp8QaDwxrV4qKFdG8SYiZ66sMz/U/ywIXq+FH4V9Y5zoJE9DRCwQLnUrOljK3klWDcM3GeTB32h4/tf/9IWvrxewFf/5fkPfG77hmOpf9B2zpSIn2AL76MbrtSxvDt2oNvHUYFttYOVSlsxgxyEOlp39H3Tuqp43+fCWKq44B2rIuxTeXD6NGnulpIPa6SJsFEcA42ZaALIdR5fH6R0D73ye+lc6sQFP86ll37bK5IyWen1EKQtMMLKfmEDt3E7qACi3ffRbU9bQ4xzcIJ0PbKQO5/BCvHTGCIM0M0NSYhKeS/9+HxufBh7lEmgD0RzfeBb9pg6VfBd+N5Px9L48C3t+W9nuzwanPDHeZPE0qNva0xqYY7JeaA1FdFEkhGOVeNBgQoWvDmSkudj7RlotOgGht27X0CVHH6JM8MXFoVXNdweoY3AIpMtPwhDg9b/+7/93yq3cjqMSwdXx4BZIF7WBV9DyAyvAyL+9wJXx79qby21arOjDE86FT69+gd1wuBxGJCeSt1xQHc+DX3JzAv++9c0au9ODjMAR2STmulOjP50yKUzHKw/I5ecT40+7RorQbVYEM2oIO89cmx7N5epC70kbx8sfqt+9osqF7Y3zt+UDjzT4OSYPPJhtS8M/N7I04Y/fJp8qsCVp1czPFf/ylH2RTPD6WlgikMxRFY8gx1J/Tej+fL3w/f2u/qaSKFVZo5CL7EgA+SfgR16vYsnLlubJ2Ntw+5mKYYUbOBrY5iQQTi4v88tarORvonQda3oaXRcAa73wr//6wr/+9QV5mQ58vzfePzsNrEqvN4Ab28WSeUxYxDZY/rzfHo0l5GLDasCleyFdmjSYrD348RQbck4GkabUnrqRdM1N7CEUfY0+Oy/QuErCI2c2caHUApBPMNVAsEb4BarEKow58xAjrQd8ngxUx2I1weBkskFEkcZ4dIrJ8fyixXIMM10iCBB9CV6vx3d4RJN0lgkBHqcYlyMi7LTha/LFfUmf/ks6POHR+OX4HIQY7TjuEmNw4PMk1R1mo5EUTONP0k3lPrP6Iy3YgFxuT8evx34eJOxwnOO39tdZnjBin/Dyq+HnMqZuaJOnpBeIFY3pHRUAPF/NmX3An35fR86QojG/MOlU+iKUI/sJwaj8oYzJoXbikgJ7CsR94sNLK39f4Uhav4DyY4Mc84/QP+Vr/s01h2MG/WqpgRh86OSP1y9kOfp2U2L8OhzgyTQPM7TcnPHU3rhEO4s3vftYmZTOBQ0dvzuIy3LoQ/3cEJZDob0ASGExj8PHT/n5DVFBbC4sxa7zdRsERTluGcUBoO83vr6+8HrZd73Xa+H1Mpjbc1E1eP1tDvAG8BKLOP773z8HVcpp0upTtEs9qpw9KqPLV8oFshVri51H6KkNG7A8Y0H2pecvc/S6lCdTknUJj7M+iHyUufEEz9OZtdeyCQBgu3P3Vrx/3v3wcqBOWJiRfM8FiejdW9/Qn42f9/Ln26Li6rw0FEI7HyUD1w+yd7v5JEfa/3aanYphTtiulxDfXgoJRQ+t+CI66hWXyPk+jgeTYTMl9Lc2N6P5CG1XvBz0nqu1jKyQLFSTC7lxK98KSUjpgclfMvsJtEmAiPT+OeSnDU8MzxzyS4NEAnXhY7npJxfFC5a7cv7uzqxSdBad5odv5frpMdo36xiyOvrD0WNGv1kWTs3olqZ65j/7+DqsxkTWJwMZnDaS758usfW76sOdNj0dIg4LZhz08fb6kNNNvD0JugBjkxbVFee5T2N0NP3sH1yYAJGS8gEg1Rt6aQj5V+i6yyqQF1Q/uyyY4tHLMMS4AWk/HLbdPzq2v15dSZyvQ3sA3ZntPVex43/WmIo/925eNmjF8KHCWKEx3J49OuOGMWaZExWRGS0IR/sPaI2G209pzzoOs2pzpq5XUxlIRUdv86NSU2DRxz9WEZMvPk1CnhxExokiDtzDHB0X8Bsp2ihxMwyQFF0Tl3jVFMQFVzpWh9MwBII4u/itkWkqdCwVRbjEjN5WxZ/XwtfrhfVagPh+NFmQ97YlyDctySuw1sL3vz2dIGllZXbm8gYPxi7uOVmJfDnUAMJlwQ3Pz4/p47VsV7IFkxX7HYaJLEhEvTK5tGRgOnvhtByUjfEYemjypMKd1ZdFqPfbvsWTm/mg+NkK/d5YIvj52fj59rQCgoXsQsjtpe1teXMqC9C3nw5hRkKx/QixqKN+nm+4Dwo+WzUaSb2dNGA6UtmN/tEMYvSTKxuzn87TTHuCjwOtnFQe+IOejsCBRKKLNHlk50mk6ktUpT42uxmG98C7FTjlflJgeDWn+0j87+Ot+VyrPyBHIPSK49upfNLz+fpsnVRN1jKt2MdlBiWSZ5weIqD02NMmRc/y8aA7Brx6MRybzuZjnMq5yluqo97wzFc9eD7xTS5KuPwVs5YvrQysSdSDQzt4i/9wjur0kL3Pxn+azXUbFMDiGC2CrR2/s8Dl97ym0sz6Mu6tvT72em1PJ7yH9s/89Rv+k88oR5gVLhFO1U8tCKaqDimal9EQk7PzuBSlAWpOWyIjeYbp05Lg/fqgheI9A2Olns9LkeeMhBtuSBBT5wv664oqiB515uaYeNqgEplbk+4EnC8Yh0FTXsJpFaLfZLwEkE1wGuF/H4GPVyh3bzb9gltRRTfigCmrUIiB7HW8SSJ4l208fppwSZmbQJgVVsePFKESDzBoKfLHi+ncDqhoAKatb/iZo2O/l+EgrqR9ovNaC+tlDu9ai5Zx7dO0/u0yvAHoC3nkwPf3j52M8BI7jUGR+VzxScZc+U0S0OYXx1hl16kPlv+A+Ib89hxYEcGmvN00M8n/npEZbbMpGlHpxWkPpBdP8WX9VQOiqn4iBPD6euFf//WCbME33tD329pVOy4H//7GmxjjvTlxpbf6qLuUzo1VH9mcVHhugSK96+JMSYe7wz1bMRLOXvtmQiX/QGr8UjwksB/gU/10DVYIhWxMeQq+IHxS2cE+XbuRTMXbeuc15bI5UIR/j69Eu92JzAIRmFH48VZTAXsD/GnkSZzUzxGRFWp7UCNtzdDn2vtXtrLU3t050dZ3HieFOLtpZqkk4STka9AjupSTVcRQleMBMiMEst23827pVxSkEzpYNYsO+hCJGqTrw06DzsY6H6VOjaNrTyKjjQ83cFu16XWEOqY58T+YO1lo9nvioa3+REvHk4/4JXpKv0ffx4oJ96ly5KvO0T+u7HXbCDzQTfW2BTOumiRXv6YCsD9fCRCMMMrKHF7I5CBSnUIirL2GjIZzZj74vdFx/Jpwn61HInS+lw65BLEe9mhxMUw1xw2L33qlQfCzPwNFLsCKSQZvRFdua/4CYCiSONOyynSG0rEDLZbxLqqoFyTEp+lsTEvs0eF01dL1nRHhcAQD1qia8K70Rw7ksHFeK6KJYXij9dwS5VcdsdW4ePCeilokhPo8VbspCz15KMsXwPyOfBgT718uMoSsCSwXdoWTYrU2BCuUti58Lf/G9Vr4/nn745cdIebdDCz6QTT1X1fpTr3KZ8xhEN/ssnzZMM/gt9/iubr5Cd3lH+SIM158yOITvLEpMppYwRsuowo+PYJkJACNZDf+ihTWwmsJRBe22gcw9B1Op5V7bwpBenuSupLakICPikQK0L6Okng5RsksOeDm5HmZIzOK+W3+RtCZLzI6STNNXX8FMKs3Q3woUlKaQRPm+uATKu8bJtOpYlI12WSo3Xo0gx2yJtxbXMoSL6xWwidopPBzZcHzwZuZK/6pPNnqPetDDVj5lFKDgllVBwu5PAfdgq+iL3EkB+vD7HhhoBI6lByqbDJyQ4PPSweJ69GMZfFYTPLQY72+D+SrL61uNJ2b+C7R1sslOmLkHKVM4jJ+IQNhaCbiSH4sxGABlkvWgPjsWcfReX0Jnjor/q8O3/B+DLQnTgeSmryR3R6BluyeEBnkADo61Lt9LhtIPQ8l1yQUnzqQ9TXyo+6ve/vZwdIgHXJ0sKxpP0d2chEz0y9676bnGr+B1BErBr0lnd+5WH8v8svF2jKoSh4dbZaK5dLb5q3ChmB+4JV4fUBiO0u6NMpzKtcRoE0l+kCrPGvxCbFfNMb/30vn7ef8VPixNIFRKu+ARQamrjGek4iTnqP2PKrtKJFt9ufJy3OiNC3pA+0PXgixiDFuL2nZP+khqVPUjaHCjWLyLYp33ZkFLMXgtRbeL0CwIW/4hwuMZ+J4MaOPVRZyKAIn7rB6W2GgRdXTduB4utHepZhyqDhyB5hTPoaYlwQLr/itLaew01VxY7qg28/3xvv9DQB4v9/IaHT0bFe7Ijnql2sK773dVv7Dk7KBYaj+Gkw9vxjsw0beAJCBPS52oOYX4EiRqTwg3ERT7+/yMVs91h2GRNjbyOfmhcRc2c2yNKbkScQwxSpLTnQG+qdDjMQBiHQGyl8flIneptM6aK9Jz9LJ6bC4DRARYJGTmZGqk9dEUWV7U+WAQ6bPgFjiIP/7dEzZJiW2RB+MoeTyU3Wz0CogoaOSlhP+uGc4mIUHTS6P58r/vD5FOU/ajQbacUBkq9NB+8sr+9cbGOCOSu1s30MxXvC9yh+/uCFG5X6tLzR5+gyuhpQG19XgU/WmjnoZhVuegZdJ4i3UG9GKMKoNT2Gzh7GkH7vAY/A/6GjBcdzdOdA63p1XKdLdhX6Mm44BGdDpyZP2f0DFnZHDtx6OURSLfxueZ4hgihAU+zsdJA3a+r9m4FKhKrZvPuK2GllHD+R4Nmvav/jftf/PtxbZirM6m7AMLcodovdkJvKujdCFf+O/tuqkRIDiyyhb1R1+LlXF47lkqphPGjfp4C/FQTeOGsT4R+TT0gOKNoKILTvuvmQvS/BCHAH1wuvry1ISFhnKNMvZElE52jj7BzUc3ts2fiQNgmHf25+RDlBXKR5VNvUi0OVf23J9s2LpfO6SvFDU0WsP4rzaYIL9Vrzfb/z85wc/3z9VX0N/aUY92OmaG9408jKGQs9+xmAiNnrshBTXDkWw9dzY1b32s6Px/KLhJRWlVv8THz6XaVzcn9kg2+fWWLQkpbSabgRV1OadHJG4i+3s8tzdYJtUkg5saVYFsIHd/u1FQXpakn3v2i3Go9JamN59kZclp9qPX0JDRRNTwYj+dT0ry3AUX5GBlG6QMqzuiGqma0mzsQRT6DSGoBfjSiA70UKX1B/Gec5fJMLHHnLOieuSBi5ZJItHnnFvJHFOVowf2vvYZCPupeIOehlDmRXr1lRQ0YnTAYT4J/qknJOuYhtB6X2+0tQMRXMpek0bDbms8Ex5GU3VxKm3y38/XyVXFQWlNhpwHwe5DsCBXyvCf4d0Nxlqcl3wvyYRTB+UKpVwZluCEtAilePQagD9bM2GMzvBp4K50fbad+bxGxOSAi05paXCo1Ed76YSPqHzW21PQ4jv9YLB8mq4+MwllnpPfZjjxC338CWp14EoL195c6dRJORC5iuVrJnZ1uadUoNOOmLcT1J2qxw8vVOb+ztpBedy5AHokGDnCyJhBTpuUTjJoVl6tsDRqSYmV3ZizcaFqg0Das+22OdCQibN3xfI9vQCfy4eyklWdqYTCHTt2i26AfhOfN12n7uJD97jJfUDe6PUNnrt0MVimaBsa2KUAMNT1HJ1k9FE8PI2ZFuaRPxXsLBl59fFIJ6GQbmOyaGsfqb8IEadoj8B8LKDOziqb7wiMrnc1Nj7+ABoxxoOHnAqeFNSquhoYN441jf9UEgd+GYf/KqoOTqxGuM8r6fEcrmMehUVLTipWioUSraL9RgN7pDV6m5tLMvuRz+8n31gSUc4bQIVBYC1nUelwZn6tEVntR4E9CoddOPoYm0EC2fWZHIOOT0ZfHtsFgLlb2JcLj8AzLkaBXp01jHnCWNDYcZJkaLStlAxfUbf7b/a2HZ2N8Y/6cOX6oDfxarDQdNTz5nYTA9032SmF0ix54T2HL0NfWAVG0sOpDt1qWcng5SOChgz58NhpBhhk19xtt2i952ZHy7GtMtikx/t5dOUNUhxekFpjJla2USizQDt4coI56x04NEZuJLXtZdMgLEBJAbZnzFxwmHmMHjr4MAB9/fnVaq19yH+82Qp+HnB+CQEz+O9YXGQMxKnjzBLydn5m/QP/T4FVJGRo2mwEjvO10kcPEIbSyAcEaeqOawd/Gk42wuaUSvBnhsCpLc1846SVtHHuBZqk1jiOMbqmhZigM7RQPGictGbE1sFbrojIpph1HPDBLNkrGqE48IzcJZyjrISnmEsddu/7bvi4x9UKce2dQ+hGOOLUvSZhEKQ5Js3vIh2+uRFfgI7cjF20X7k7jWfBfCIE7C+Fl5fC68X8PqS5PMlAF42Mdy0CtFUyWVUq2zh03CfYx7Gj9JXmYOqL123FNwIMV9ku9FOs260QduwAMz6IccT4CjS9JheUvxmNIV+H83ylxlDnwxoEm+YuQ1QRa/i+YbEeWMh96KHPqudh0BFR6Xo5881ESiepeYLZ+HO8Xd6gwahfLroyaRnRDv9af9QzLN+DwrGGIdeFhKaUF8tQuf647jcZ6mvjrFSVwbCDbf58QRoKxBG44pmN2Pit888UONgdIoo8mWNL0E2vKPnGisXRb8cQsY6ATTN9YDrnGxJL0pYWbSaHKXB2hkoIF5gKIKxzP1Auwr89+flOUUhlH2AwFLE+tkxx7iU2SVukwK1hi48dLkr3fhHHv6TL5RWv9EPNyL361TKz2XHmPO1itPL2urtPh0R+ktlDmwHgSwS8KE/v3T4XvUYgUcgN/PwT0rcHNKnS8bfqD9b2/wsFbff6md8ZXT1uhp4tPg3TPILiI91plrodZtquXVw6uTfcGnlx/hk/TKEjb5jPBWSgd4U5mOtTEupkHLRyXfiyigdJTZrcENc8Fik2NsAACAASURBVI9zMvl3GDhibwVyZm29iIhqRcIOOEQ2CCAv/xffvtWVNMum6Gti19HwlIZgrZJhpitd6cWG0QNeX2aU12thrRfktSCvF2St+rwtYFFjAPlJ4EKB2upG8MCideNvZHnCoeefxGnyZhSkZ3s8ejDx9XY+vsmOPuB8Gz9uuL1mil52uzD9Gsipe+MjHBWVrDa1eC5KT4WG4bxI+zMus0mz+ERPPapvsqvZQKSzxDFz6tq5CZMCQY+AraEDNOpof99RzzuXeoR3KTgLVnre7LGkf1Uk94gYk/DRFEpDsBwQ04GxizwmAcfKYagw6p89L3oCSNxl6lAvX5vQQqeeVFrRiGB8oc7LSE9nIHJcaRCSUZviqq2Dykff6UH27UApryWR9uyFDuQc0IOepjDH312nCRotdYhH/37zH8KpnRUe6hwO7S+XYv2OUHvd36/MexjGdItemKDj3o83qQLdYSGwVx0dGv1uNJ7pa0Nl758IdjFBHwyZprJ6HlGl/93aknZfM/DedpXcB6zeY76bE4FHQVIrfBiCNHShQKYVe3bVe3UBR957w/1K3ncnpqLHXUxjJr6jzK1bh9GFnZFKTt4M8aSB8Xd1moOV2emI+tWGnxsqGhltFWiROa0q+YpolEZpmdCyRkEcmyMNh5ZdrMDWbWjEZ2fdcbWvZO00fvlBh+BUDosSjty9+AJX5KQiDLrYS6FNmWmDQq+zM+sFeGkyuy7RRlDCfqwvO8s1zswV1JfIjF3K4PPKc0tzyT4pPaj03JRF70TsrUkSzGP4vH9Bu0ZDjeZGH4HMqdCcaQw+kbqdAbQpP7X8PN5N/hwiOKDgdgn1o644rHifbUQdQckxvWZHjhFaqEV2hlj09HB8jpnxnzj9askR5ADBdUhn4rkCMckWPH06CJGSg1Qyxd7FMxg9sTvxzW3hFTWpvfyrNA2xXYcIXX0N5KsWn2i/N5dz+4omezGDKZUeB8PRxjaTR0XkgQbL5kLe4eXdzE6nfXtzdVRL37CPZ7+lCiVAzuXlzp34DY2OWP0qgLvsRZwCcfRJSP9Fi/O+X20hwQtZnKCPR3etAuZFKSdqWpWW2r8QmZsHm0LpqQzsxw27K+ygsg5tXEurdmsQ+4IzD8hxuNaTz9Lw/wC/2fYq8pVCS7ONItCHRkPRn3sXznoTDypzKt2Z28hvnilwq3M2/lRrCqHcne5re7cezLYlf/NZs1WsFhanaySjFdX6PgUwhfgiCNO20L1eX+hJMuk9OkeINeZQol6yH69Du3JTuociHp+ExbhtG0RuRl6rsF7oMo+eiTrqhDmVt+PMoIaCKtr4fQw7G0kh6k2y8ftBtLA9eWC7Ix5mQFWwt2C9AJXVckiDi9QBbUpHUHqefVLPOVWjczMg05akU+acqlpra7UzJfHIY5ciZLHcmPGZXzks3jfaZKFsYXkMyLrE7nKhx/Gu6B5OhBNbFbppwVdhpxYsKj/aKZXJDDD5csiv+BFl0Q6jF8g18fKyLKb0LlNgN06Hps08glzaaQKvnIO2r2PcHEgUjWRF/2zClFkDBLsNgfc/RpT/JJemANgt73qPMe2iHwB445UhzRkAzA/Xnfeqw+hTOaJlnFMQh9wVnBgrY2QNfUJXcYMgNGHQBZ4vDqCC1V1tgatPi3HocmZZBfFydOQGPHRP6a9g/5SLUb2NJdBozpjp7UXi6ala2R1NGWtDnLq/97Xnt56kOI9OKGVD1vmoli8PeG4nQJb7mLyHrOsjTZrFYN3ROjNpgxoP7srEud12uzEFQFbowEkAnA+abdLxV44qOfa3lUfF/NFsxc1vIQOZVVYQIuOMNMudfWn0mlq43WsZjQucLHXrxLXtMNYPgB5baNU/1J1LaPeooKLT4B6V5QhrsNDtqwtUi5dk0Mfs5FIPyF2FVu/PJ/LRZT4SoeEzqo9InvmAWnTlHM+YfUduzcw5ckAqk4GIBorH8zRahHFeFOE4BIyXhZRpy3xYBOu86eU2W1CC17AbKA8hyAhf/OdgDW3lypBaIY0ldhfmdjC7K6K9t32J6q14vxXvvS1f9K12Xqq6M/sG9F1RXMCOoIo0hd4z+o+MPgAAdrGJsu4nGiuzSvGUOB2UOvvejveOSH39bmsiTNeGM42/qgVhvJ/nRpGClSIUzptWGRYgS+jw54l/Pytx2KKK0jazolUw6rL8sQGcbH91bi+FQwSC8dvrDa0T4vuloSKCKAMBQfIfLVqmw1OTRcmWrEg5vA2cUtyMlZD/u7lsTbcrv+80kFmm6TgqN/s/nzdaLhynxWjhftPfXZMRvuGlU18jStouTomIjtEqyqUXrW8idVRYPaw2W90aDNMLE3Q4oAyPAM5AbMp9s8chT6iJXBG52xkQ1bIsPafyKf35OwZ88HmL+AfCJ/2SD7yIxs2NMWkSokKaQ2Ae1wvAMoXUfYUxlmRTI8CSK0J6afOCerPljZWkVwidKPAIet+kk1VZkTeaMaVOLn+YM11x7i/PnxDiA79v58g2fThmMIHekcj84Zquyic8bw8Nn18aGaU/wf8M6bAGd5j/AJvepv5CkF7jVKAkbChndj19NouB8DW7cygmuZeLZ2Sk/0EKzAW3AHAnyAwmHRFrBdo09WZohzHvJyb0sjNiY884B+sGmwWtrF68yS5KtD9fMGhz7mP0G3S/yWdaMCH2UQFgY71e2Nuc1wC/POK5RfES4P1W7PxaGOyTq7nxS8CTBA2ajRyVdAZbztigowL6ChTpVIHqbpbbW7HW9v1FNmH9eW/fyLbdkXKDp6ETtNHjtve7DUj+CGIO3nBejCOSbisdbfscWwaFGShuJzvpI+r8UYGQD5oxFO3fqCBqtmuOB7jzXoC/+168XlSk5nhluqje8LCH91Snz03+tfo9ysUR+2zwOr+a71g7psM5ybQLLk72OuQ41lZ0RLcSeHvYN18KBrwoG16SVgFxXlOuTD9T9X2i53ESR48+aj4P3Hm8B6KB+O60PckQ+Guvzs24LGY/LqHVcH4PFd9ITAoxlQs9SkExRjRe9RWNa4QYOL86VkzbR1fGM80B1n2XrTx94jpDZWDegp86caSJTWbg5PtBy9vk8WyvytpK8S3nyv+yDE9mnsVREnltNz7ok81N2verncoE4PU//x//lz8IgaTUZzfCkcfCJG9G/6akHJmkZ3sRiPI/7nXXSmFcWtXRwc5KVzB/qRMHi6Z8jNpDyd5he98UbshX77L0ov2WlF60dVlfjDGJZP8j+PlbP2/lPhqY4ZBcvdkb7AcK3RKwJg43WrORj2n3Eyx03Vi88kDxwV8ioE3cVi90RMqBdiT5TiSMJsFXblE7KqmYpcoKPXYZFRLC18s+XLA94qrbNqtU7rEpBVWFvhX77f3zg4nNXbSzDqJfLf1i+jG0pF9HuVWJ3Bk7+VqAtVa6GAJLK92q2PHBBLVo8TvPsZ6GUMoVV9j5nrdlq0nTds+6SRK3qKhjI8miyqkNc2yUPbiz4RGOkKb7BnFUMw+t5L48rybfekC42Q9/uEnW+okEE8gh/rORJf3LgAHNmXxuVLml6cSfJicxzq3NcmKKbJ+2wTBdI71kWJ9oH51HjZ8UsctRWiWU+j70tgBak8OOTX8WfJQJRswK4UDmfbXfnUOCqXXyw18FfWjciiqTD/nmIldxE8TI6JyVf8KCJ8Qzona0I/252bj4zwTcf2Rcf6OC5reIdbvvuru9l8rdT8wlXw1Yrp1bKHpIJf2pM3MZzqRF1W+bInVifrkaqzCvXHqc+qbw+GBSyUxpfvYZIlBZyb85FnPl4OY36OzQIO6to17+qwTGFO6xanvVddL6DOB2skn99MItit9c/0uD/EQnyWsXLNcOm8c6cBJeEhGHIoRLc9WjbUdTK6oUy7w3RXNTZV3xflAaMnCfZTjEd1tel5N6Q4TO9qeB//UaDtu+8+QnDBo0T+b8FUT/WijRSQ5aTVj7qY/dYt7xdqdwBo9j6d1y/qK8NTR7umnY2AEfMT7LT4qobJwjvOps0XK6JFMJzEleUFX853unEg3DJr71d4ltSlkitkS/tztryz6E8Nb88tbMQatIdi3p12R3CPyKckS/pKjircB+vy1SDMXeAtlKu8XdMRXQxwHCWQ7taLJYJydRdGkIYqFHznDKPC+KGqL68u04OTkq5ikWUKqyS+c0fhLTp5gcVlrT4DFjaVQjmmoxfJssca8LpxHQQCEXBmUDeAH6PjC72ZGhDRNwZaDZM43fSTNHuatJIpT3nqOkQro+K4k30Z2AUgnay45LQ1cKox+pTdWPXNn39KT6OtmgQLbD+Cj8g9BXbceykqlFUpKfmsNlViPNpnWnJLDuTNaTy6TaUp2RNL/oMW/EOeSntavjV/Tw5L/kmQOOwwg5p/fGJxzR7fLQ8HowJxUQJCxJaefiXdb3+OClC63fTb8ZAGk48n6PTiER0i+xYnc3g6gzfR+u0e/2Zbfz9b07PlEOvydKicr8ng/a+Aro40TSZeCIENerTg6ml7Q1oAXkilWWTrli7gMy1eSNdllEljsQRqSJ2fwV6PS+5o9RtfjJYcvQyVHo1HiFfIgu5cycq+qS7y464ChWNx/msjnjrOM2MhLGA8XGIqkzoLaDCs8WpxE5utDaE8ww+AFxNv8wlvlgKocDw/E2uF+jxx2fz2sZaE6Ojo6TnHX8mISpbJB8O6Ecxpl13KWHDQ0F+BN005l1DdwjeYQZZvGmSKuNCihKxy9EgiIekmc0mxOgIlhL8PMORanZb0XlulqagGd1bsU7I7URqYtcWUdPtY2otn5aB2TK7CFnnSejaBVn/qiShcdgnljy5Sb4x0f+PYTVNyCYHAkAXT3vNvWE9Il7N+af2iMYPr4VwblsaiXgZgQjyldTHnFm8TlPqzRFTYYzZC16PuzUP1N2ZPQzZKyAd/3jvNDavOhdZhgOKqD9vuPVJn4+UCohl1PpZ6ECEsafwc7osFCNJU32rkblQenedWfZh+S5UTod1cD1eZi8fHFlTaiRMn3H4RHYA8aF91xNmDmvpzh3oKkfpSBncTn7e8CbFW4IY5a5j0Y5mVVeB97ttAMB6sg0EmxmL6pPJYu3c7gmwSL6qRfalWw0h7NFN6X6K5whzvfSyfHJceZ2CJ2jRrSvWeR3OKNpIuvlGjL8MJ6Xc2SfG/908bEys71yWkvh8orE9ZLxb237V2B+8ZGaBjwAzhT1YmohBvnQwGFk+6NfB/Q3Jprlj+ZvXPWMz9H8fP0X6JwNdHSeS54vD/QPcn42at3jOC+bQJ6ORuqRoVcOimwlJzZwvsmHQNWO1DrOkx0tHDKZTmO/D4VRTqTLTa60+72Yovz5+UGmDahi7zf23r5hSvHz3n6/8X5vP+LMndy34v3zNpALyC98hTOZfzdUBftGcn0YL6VhmrIRjjYs7SFPUNC2lSv7f9CI4T9d2e4D4RMIOYKM54g2lGnTa58/3cUznii0csPvODk3kapoxicZyIbmi9tnEtDs570ff+n18CvtZWuyZjTXJl/zWKzTHjUMIuqb/FrjWG0y48VumOnrVMdTJ0XTzuy5/DvhDxs1J/PHMVCzt7TSEf+afzZ4gkhxuSaBZkWmZ9m3I01CztITtJlId7x4ZWSqvzGRmnzFk57GZU/OQcInx43qJwyhCWM9bMv4kzpE/QfbzwMdpe9OQjvfNo85W8gvv8BTc2i5XcUjnW0A6rn9G/bnhqM/WxD/pPJD+TSEyBe/unyfHLYn08d1W/0aMQoVfYD32aHJAy1TKd8UrfR05yZhQ2kdx4v6b+3at3bTzbL5cF6S9QTI2WcutZ5aZThK2oiTxxc2QQsl2ypm85kaoQFHT2JT/sRp3Ef5i/d32AC53zdGNA+g7zS/CuLdHE2VP3G5XrH07aUEeqSAbI3cy4bm3elNurOSKISVSaugXZrd+iudd8ruR15SGNvbUmFSQKgeMyjvro3Xmv06S3P7PivejmPMYr053SHoJz9XvtVCfG3MlPXC3m9Axc6Uheb35DY29L0rJ3ZvvN+Kn3ed1WvHcNlmsTjN4PUlftRgbHmBCtT16bv06nJq+5xQvNxNdpJefupApJTuN/wsXCOE7jpRocTQf/OzC7PGB6FYgPpkJiLOQfdpVg14Po0ISMzCiafs0X1SrfC042KPshUTbyYXH3sj9aNc+lD6pUO0Hh9wP3hQdU0dCa5GyCY+9G58xUxUsXSW585HtYEAqj4QUuKFhesq+nl29aot4TYih6PQmjpajzb9BKKenkFKR7hfDK85LXPBXgdNkf5GpsQ2HqpczMJhYj3HiWEP+sjoPJ16kLUGr6SDennX2zS5CXufoKdell7juJvt57vqq3AF6SU5uMn/zkuIJqM3rYGht6gPEQDTTOmIgrUap1h26Fwoxyaww9mZtMpns+9cPuqQnNMJCIz2IsyuVFn2r09gulJjpZ5n/wqTMTRUe3iuuhN2Na3sOMUqY8I96itagMrH5WsiOtqje62Rlc5kscx5iJfQGC3mv65B5fKr9XEolJsYHw3P9w6jzrJL5LtvmUw3l1KRpzt1oRpKbVismQdpzznjXnPwu8nqjR9NjCuHPqIIeXDxk0V7uAbz3elbZaQy1fz1ff/45wapzUH3xz7zQEg5OXPky1AFjaXzE7G1g6rfzCDDjgMks2yQpBUpXFOba74MsxeiZcn4I8dWiFU9DUDVxvf9fmf/YkPkmu2+zdDsODps0VafZNNw8rauJZAl0DfRJnf5Oj5atJk7ekVUlUIHErBRkZvt8CT0iAKYE12vh625gz/IB0HPmS4RGsrc/5vjEh0Q5FmfXo6/9S00RtFPAfxjB5rtC8OkQRcMnuIxQZ/wDUZxlTIsqF878KB2gyY9FzjwD14/kMiSj0GWqCPz4ZTsoad4kMhDq6OVRhM6qcONz7ZqXJIQIXtx35xpApV0kf6+tYmMYgU7rja0zhsuqznQjU7OQ9l1SVLoQEoAbOkborN73NWGQw1muVIj8ku6NIGFADeyDuXXLiNqTDD6SETLY3yyOa3miRUbThheB5MmHglSVkKPDAzLts4jE5j/41GkXSXw26ZHaWCS6ixDilEn2M7z/knBiw9+y92lppJd6fcgQJafY1B8HcAI3zGsccBeDf197BpExTlGs5rLwMxxbeWPevUgmq2TrCN3uQh749AJbiVDUpi7BlNJuoR4o8DsUKizE97aFrQZUyB3xe7AUsvINUIHc92E7P4kn3LYxom8ZRSK1zcw3h/lAZqG4lDOc/RvZ9lhAultztcDYQX6v635Zrb/RPqmi//iOmd6xDftneIMqV4UoSvIrQPrB2NqICuiJ/z+YqiOzTED/Tkxjo08j6cTacFmhaajjP2NCJ7keZlMwXC22meLCd1CQS0n9nvbRrtIJ9ANUY+CB7mhyFXX+MSVbvX/KwDV9OBUoWLHc21rgz11jbBL6IIdeoKtuG94iRUxD0KLe4ZMF3tR/JnpDhoRWMS5Ysc4sXLsBqHk2lQM8Ul+fYx55zAtYDzr4H6HGV8EGk53d56MnPM0rtFE420l3rG/vR8tkgzQsUeFvXV/fJVwbsQjdKfKOtB81DX3Clk8bVRvIXmeusHHHnFgpHB/0hNIOTImGHSY+qLlDCgVfO5jfOYgvrxIPbEm00h3/NJhn7QPfzeJu6nXg1fmwgZfAoJ9DlJ9ucm9Zzr6ysW/fuspwfa7F9CAI2faTwMQKkJqgnVq+Ojm3Qpp+5/7cuKf1eAq3lb4F213PLxiw0t9ZT/GazderPbHM2l/SkgJBxXNTbXRdPGA9vqjRQNByuwanaVbVssELvwREVA0owY4OUbkgfJegwJzcx/1iY+W8gp6B89E4YF/jUfvxJSDtqohg3rEClFqFSkrCB5P+mxZ4/MJ1FB8tUVzDG6Ccb/008uTo26adxbX+eQDEoPAebj5316fcAcwk4ZPh7I+Tmu46+wAPmjbW4Ot/AlphOT/Btyvbd2MDRuKf4J/p/+J6mCIA/7l/dURfGz8xPYD+Pm6ewrXAvkgopBs3IGSH8Dyx57kyc4m1LTR0c7OOXfwluUh5qd/g994UqHhF0lgBrhjvF6hnJD6xHRQ5LdJPU9aL5pc1JW2jdilUP/A9+InFPgS2BQ8NsY8RDKdm+a1aiEEks2H6CB/1elpM/isqNMgHQUuz477KVu9C8/1L7qVaP6I0+Pb+zuZ75oS/k1BksH3f7el0c84sIXX5rSdTsEdr8e2JIy+Wzrn+Yr8SskDkVtAqr/lSlZjMh/AdYGi4OfybVWSxe+tv5XzKQnHKnb7l635O2tL0EhIv6qv3oZeglXSayUeNJONwFjkk+azrFv9U8dvZp/W7+kVkTvcnKXPvNe7rYTf5SKBE5zHUUUk1lUKyf0Jr+XujjLCOMxutmd3ShRCDEMeJeqx/t8WuIx969usf+tP+9ztKd+npNKT1durr502DVmKO/+GrhIdSjrVPTKCi+N1j8omPFa400sgb6Cts8AHSAnxMqoq8LwPzW8SXy+WStbDY4nijNz08imXaVDHhGAkDeeSqQC1t7B2sHJ7od7Dkeg5JzFGN4sVvwZNBRT16v+g5vS0SMgtgnqGLekfIe7vkg70728vbe1T7+o/H/o+0alDUhp/T8U0fhwTkNFFvtm9IndkIM95U4VLvabMyMF7mfdp6+5ZP/NONyxfdOcStgJqG/JVVW1nFfZbMnJry5qahtv+LmArlizaJFEbJuLEgbqj44d0meGLr8c584poRmntbC2m6+RWo6Ypf8XrXy/8+dcL6w8rEpcQNbnlvbqNdxi2C21f3a/IW4EQsASpvEkHdUc9I941vGfGUdNf1E3Hk1Zc7c/8VOR4X3gqmIea4oqCGr3s9Yla9Fjb/VXMCJ3wHy0thnRSk6uSwPr4gGZRhhp6/XfTG3zfXZB0/pw3PyodJ8hRhO0KkM7kjvI5Fv5jofFyf+10yVXF4MkDkXye5NuCPP/XxT36WA6gkhPkTo5GNJN6FbnM8ZwNDmPuYDbEmhdfNvbPSbd/UvUiL7zEhxwuKdDpPwiKeYTQEOKjBo/pJMhxiPEW6V+3MhVk7Tm3mTqqZaJAqjad9bQudblsX+ci0s/x44mYsM8y7FhN/IkOORTTqQ7/gbpOf0dGJ7NJFrhw5vEkeWd2rymx3t9bhUh9uxafvotGBx5gZ5UHJUQg25e9yhL5DQvMOOuqzs/EIOToJKMjZXDlaAfIsDTrZdaYjGhk5gdiCXR0ei7xMHJxwCf1g2xYpweVSZmS/iGNu8YM/AqfkkklskZjYagJMNNXS9lxV/gqIytlnB+U+WEfwzGaaF3qTfaSC8PxWI8RfMClM5XOvqL46AB2aWcWigje88UNVi8pmzJfNfbwmxv8jJvkWFphReVqIjdxVdM7auqEV2ACkjlP49gvyqmNFKAQnWhzhYFbnmObOFb+WBz5lCQJFId+XYj83UQAeYRUwPBVHd0endiWD5XzR6qvAMQPNf96LbxeCz8/P/jegL6jbDlo4rLVMpFo9qdAnnO7IZ56WwOm6B8+ANyIaQ8Gs32SMETuuLdjj4gZJFGRUnlDtqae52fNcQbVb9fkPMlx6J3iDnR6Zcmm3K/W7Irnp0JxoJuoLwk7AZXYKwx5cwSGHQGUUkckRXaMtD8P26OXLmg5CfLQy2HktkZkNpYYwj5SHjljmuD1cPCyLRVPtdUaMoTICKhaptBYTnz0zeWUWq5NV9QaDzK/21FBe9vZ8wsPCFIRK4D6Clb1l9vjTYrUkQJ3qrnjErhTnR2oAFCjd4yBy1vI8BNMHriFhXRbGTB3/8F4TRYrtRmVL30m9ur8Q5vJiA/OtUWHHd8geD+g2MaedVS1y120Z8TME2DqlUEgYdx1dPIBVvIocBsoQZ07eyblhe2ZV2NyoKbcR0mKXrpxelKYrMwctiYhzjrRr6ciNeIT/RYT++WiEaRBzX7wwGuv1roV/bm2cWFg5R22sSuZJYQFNW5ZMkH0u18VMdDq36X8s/HpmGSUWKvdE5yOf/SG+f1j23r57dGvUeG6H0aDB5neDdSJ++Wmt8fCQDms/scDnAP+aB83GkRb0usEgT1x+0wHUfpvsXB8FevtKQQillVZu8TLwKm3F5Gd+BBL7BiNExEEqyKya2Etu3/F77WwvHzuXCZYbXdrKPRg4aVtaUe570w+79v+3vZpXUHCjU1+fsgCbWawrEYdYU3lPDaNTRmaUljuhv3bQawP+qomsjGeY6yUOLKJh+I4+WB6sslX42iqqYNS/87c+0HMy++pedIdearmY3hbZo4hLhDTItQYlekwYJW2YuU0Z6vRGCvkcnwswucrFbhcDuI5M7DXEsatPS85aqskqeIl+8GwTwerdHj2d0VCuZAI8C54ABrH+616l6HbZ+VOaymjk6gxWpU3+6xndapCH/NoqLBlXlWlzU8B5warNRhK4yySEUgJeR02lu2dlF4tOMxTijMaN2gZY8tFmJQtfUQSp3CQ+6lb3BumV9E+UqhqfF0O2jjL0d2EHO0RVRoFOA8mHguKruMKXV7vdLztho2HL/Jxe7dLuFLXEHrnas79mjnW128KXDXCSGr/u+scuPzFQhBK9SAwPeDmu/m7Xv8dbHv9mUIx3t8UyG95cU3Au/d71hw9GPL/21inYch/mjmZf1MfmPX/vl4hTHed3/8xjN/ye+d4C3vdwNiyebHxE16kXGT5nlM50DvuuX5y+eEcON/z7mKGk7f0gAYilcaAvxWtv+wuaqnZjMbqNu25luDlilAALM9Dei3BawnWSyAvc1DXir/mzC53LpeU4rM/yycGpxJO7AZh+NzY+P3z/cZ//t8ffP/77ceGMW90snY2U6JhMxtUnwwbu19jU/O8ig9Yj12iP+ygT911RLrn4n4Bu614lGDdkHxi8IuxTvi/aM25YvMIXxs7s7z9hfoGT/cHlCjQ5V3qtJQ7/oYgGQAAIABJREFU2L/QzWTkT13n0eR0oMqOpa0Ke5W/TYDSkcwNlK6Rffk7/UqCkf1vdl0Sk1wJ+Du7fxQq/2x22AEu8ilCz4QYN0eOYez2jvVfLqVPJObPm5MV9VfAc/oFDe6S0cElnYngWcL5VSrjOO//1mZRjvbRejp2zxhK+9UeQBvODwgFQ0b1FzwYqgXjF06ReTPGWU5vcSDwDKDlAF/gA+z/zTG6OapEFwBfhUBSzX7GsvvR9644LcVAEOtsYSgndrEkwKwi+aRGISbitlpn0NpM97BU9ECBOcPKdq6c7n1UIK3WJIdHZUQHLbYroTAk8S6j109ME1ZD0LYFCtM1gWEilAZB+OnDxdVn+yj6P12nU9AfcDbHHUrhHnhH+QeR/3zxUI9xmk0eOaiTvzH792D+Wm5D8OpZI2E5Kwe7xJEvyWaDVpqOCB/t4yqNeEujRw1pl7Zoy46E0uR38eX+pEhESP2lurMa5HFFviDAq1ENsmzRfbuDQmgfkXpZTn+XR1HfACaxJApA63vcsPVJaUbd+wOBny8rwNt2Hrd8zENmnd60OlN0BeZA2PDaD87P3HG+1ka2ZcvKN4YTbKJ00F/oh4aNT6ee8EC87xHMFk1KVkhOyJ6yA1ZvvSnWTUMhZPNVuK7gqcP77LfCDy7WxrMubMzoPtVg1tM2lIabpRjkpL81Jrlq2ZykzDeUgV+XdAHlSafArKSl9tpFEKBwCp7KkqFRax+E1ROEnxw5l7l3QugFt0W8mLm2ys5bpDJwy4H18zhrJ2Qrx/RjNLJUoMXoKoejyCi5zU5oGjRnRfGAhoxnQnxIHF7DHmM+eVXT5nBQwk4j0bMdcryVXjAPWaoecWmjRemKQfRqewkiPTD7NhLk24ikMqQb9zHyUaFSDyNCPs1gjhHhQLwxSdIexJg+6IID5wMBX71j+g38U2cG4MmDR7tmN7/4Me98ZF5oDAeUMe+JSQbDES1holyiTJB9JAFRIvS9Tv1LKDOs1OQd8akjjqb612WOziLAKGRo6suK1+jbHR7ThtbIGq+yarxeQ16qXDHx7MMNrcplemjpxj1T5z6ND4Inq9IUgo/9u7x8WGmn284H1yVF5Z9PPNivqazb/CVY7WiqjB/rjOxa1/IIds/oYSjGMJpeT8p6wxww76WWvMXSTp2OEhEl4+G1wugazOVpBUssSwy5fO8iuHwHt2oep8rfjVcoYq+gip+c5XzxLgxRI+KbwTjX3hAtTRRG36lmDrMBXVI7yos2tHRNrdVkOSyrO53hvPIIx7jmBs3wsKt+Rpw9o9aCw5cvZsVAcNMAOV4xrtqRZhgdu6AcMUN87o0mWSTPPbDQGP8ufMJFKkf7SYeqcIattD8MUohfW6ZaGK6w0T7TjYSP54bDUEszruxMsU0E/Bhg6ltHUmDTtEzwRtNbaTajuMlItevvYwhy60YfkzBnmxweZhPl+lM1JQ9edHx7pNfneQ7x7D2T+CIOXKwWjx40J89woz0axgxkjdWnw0Fqq2E0HtSfY5XuwuYB6zTTRImcEWUTib82JEMvlI5+XIX9YBPtPXe4aHZMZkPBiVIO2+wrE8X/DHVUznzJagXiLkjrbe1qFMWnAjcFY7qCu55tlHpo9Of22GY2GgH4CsNXJrZQUNVxRMJA0d8rkP6g+OaNUIJsKGSMW7aT/XBz5NYwFTZQks4IZOUHaupoaF4yqckkuvU7tohUnXDU2k7QUWvCSwMx12m4eJrmqK1owEc7uWCsMK2xjgLn38aMNxrK/XHIMFmksyeStGnw5t0nYR/vfy964psCw87DX0MsIBH5PGajSv1IfSiYzU0VtUO0xvDvjEJpwW/ObFc0OXbiK5OIVQzJnbtLxNJKvL049H0twct3CSzPC6g0AWmH83knIL4ZQt3q1scVzCnc7qjI8k/PIr5nINQfKaWa9kB88cV2rGnItRNYcxDd+ZaF9QJeyzr5VsvE23vXp0XTGLk+EbIFodhzTEkLaTRVwjJsAP58vbDWwv7Z0G0nGty4qw8vj2noAXi+LhLHWTNRjo9DBBLsPEekNx1n7s/I3XR26lhOo+z6R8uZPVRiBgEUiVhbEeuanbwEeHerbKiSsQJiEMgWSMGOqKoCFakP8ZCxeVKp32wUGz6Mc2A8+4PECSGbKN2Ttit1JOsMTTBL41QApCxBUB//SDIITW5DvmFe+VLb7Jgo1vjNzUJFxZq8tgDmtF0PqpEd2Fxdy2ZCVonQ/myCT/ziRbLGSM1hnhyTmlpJibou736KRAUbJPskCUZ5ODq7kt0S7+gcw6Kv/9KTgKFDuGojq5DvlUGIYNDt/BWvtRFxzu+KB6qt/gDkzFKHkwd11LuDOwJJMbZ6K09CUBBa8+hPC6dR/OjOQOirMxeXLEG6XmmEnf1cACuPJmMgVOFBOq7wtfRx4My69tC5cyTH9cvrkwE+VEgcCiFtwvg7AmcKRgyw3IonYzxuWpic7Iru4zWN0z8YnmtZngWSgsoKI+dZ1nOTc+zpqf/s8A4Be8LxA0rPl49Z7kr3yhO+Po4OGSKh+4qi1RKhAOruIit5KcWc+pZ1AvGefcXF1xAi504cd59wLXjeK8xpffmROpYXuyqdD5W6UKvy7szCltt1h1Nhm82277yJvVV7m6O8PQIbkcolZAAilYHY+FCeNPEUAb7+fOHPv76wFrDfiv98f2P/B9h0tNchZzF2v11pzM7tIkvMkYX4Z3abzhD6L4/Lb8w4H0wFMBeFD+brMsNRZBTP9GrcVjAW/YaiDtgnbCTaW90REAyhvvR52NHskKOr3tcm2wSn2RPmlViularVarAzpU6exhZsADgSF9OwE4eGfjot4rZLUr8cy7vpSEl98TL6r6MBetfalCp7Lh//f8S965bsqM4lOoUj1x7n/d+1e9fKMOof6DIlcGTW1z3GcY1aGbZBCKGbhYCOnVofVsXq4LYhfzTTGu99uUxpX1iH0foSl+/Wh1XOePMQnaUWk1wntKIbfW6FbLN9bUt5D4ouV1RPEYtSJ8gnCA0jC1CPhEZ/NNtDd3otpas6mXVQe5rGdvkHbtmirXdDih0pL3uFxoOdJfc+Gi2eynNKl7955LVA9+N7HqbX2qdu0BdFVZcUniDoXKw+1+GMvuoltH48V56ssaCzuSEFLA1eykXtcHQ8IVZKdLz3rm42xG/IucwYlGvGRGhT+MfLGdOjHfbUR4Wif+ve4btqde3R6GDVOYZ7dGZ7vUdGeegBK5tGYv7QSIHmAnwQHTynEz68PzUdCJhGrXIh57H0241fkTRjIn6oz8qmf2+EWiajcBKbqRwRaS+B1Lr+2A0kiWFEoaz6tLbSjAByISTdndgRClcwBLjMYR3DFm8NW7w1Vm9kiE3IpDMbBlRtxwboymGdCh0CmYpbFKoTcwIyF/y3nRY2PedUKcpBzvYCvQyh6+adRQWTxuG6LowxAb1wv+3EM2QuFueBR+qDRymJkDmNruHCOP96Eq/Xef99AxB8v3NVnVBaRPDmg67hj5J4xtZafPirBQ8+aF953p7nIedEcja0RISE1GWoyI3nie5CWPUz/Sr1teLGntmB3eszx5gMg/1g28szwV7EHdOMwiUvrS5LNuOpMKBuBp48Q0l1TpQgp0CiHavtXT7JuF1DLBLPeoL6Hsnu3ZQFgMrfvUhECkkRsUXeHFqiX1WuVCzV78bT6Wyli1cK+XoThqw8hd3b8/SSbL+0HcA03+te32c/GroIl55MbOCxEzNxaUOZ7dbZtCRKgxe8UW5pAIhupD8ErvsJgOOFrBIf8TETI4FfNsPpFjTo/h36cILQiQ1ZRpfqYavYIuxHgAei+tWNQIPlPPcqIX7XCEdED7/dggLYlzNy+TYaXMCUQSYjuDR4WfoWVgUd4x7imKhJ9gMw49P7IhtK29+T7ilk0f2FTw0cmJxr9a/NWd5SWcND2hY9fbzLYzPAkZYB5Pm7/EcPI/oB7/48SSwd7bav7g6tm4Z54vIYnycsSGGpq83+olI+WKqAfBjghtIRxQOOEX1zQwQ2lFknTabZKVWMkhOXEZ0smEZcNBthxRLjOCydwGXIUwU88ioSzuvV/oqMuBffmYC66Xu/rzSChfttu6Hfc+IW12UDgolbMzvpnsA1VvqEx/NUzOHytIELK4OH3cjDACgE+p6YX1hT+/asHsHIekBI6efODauAZHGnr5OfhUMUOtcysr/WJtcjlUWDIk0tZeFcdavZjii0J0hGSgUZms3RTKOXW8RxChMaozTkWV+fdKbUQETcsR71MtGOIp0oSVjbrzrGUZIsPW86wn5Bll19yKl+GgbjVw5rud3LDwOgrmIimjdSBRBCoE+ohUPrwtNNhhJ/CcDHunIfK33z9+pK16Y0w2N3JfUhStU+HazZFjRsDYdeKtFcrk96WXsjh4aXE0lCROOUdo1JcFDKqOTie1ecHmDhhZlR/iAqG3Q59SXZ3PfEPuNXxwcHGrv+muHQ1gY+4sfwnKcjQpu+AaDYDy5o7YXSThksM4DHRs+P1u1sz5PydQHYw3Xkx3z1YsdLg/F1SaBLWrHIjVV6zgWEInNLsdWc0NaRmQZGApxHt2YOSFnJnUwfesV/tMgcJ6cX9ceK4YloUYWUfXTBlR73KRWhyg6GdeBSXo1+rHldgJuCTImu+JQxjhxjlAJPE9/cxYOOLuWOOolRo9/SXiZ4faa90t/DKugS4bDQZLCnnjCoIlc1nPGrdvpye09oGo2lPy+gN1pt3XZ6U3TaX0SyaMgAypc0AKiYrTTgZQUtvVARvMw5vUQg48J1re22XvZbwqFde8XKWNHUZRCJT8wBuC1adM+Je07IDci0g3IVeB+mZW9dO2FGJCpgL3raWKpOFV6s3umoOvG+Af3f/8X7dUEgmHNimuKdbrFocYZOjQ8BjQ9oa8DzT5tyLzNFMVYm1TTjtAy6OeVhFbvhYp3pvLtwms40XifekdRI458mZGWHDdNNT3zqvUt8dvi5SM7GRvS4uD7zyQxWSSHyexbsHZmcJqyuihiMIVKCRC7zVZyzbY8ElZkTEk6aF6koS+4G8KSievf5Cnz8pR82EA6g20hXpFJhUdRyA6pUWhulgrE7PfyeHRkqw/TpffN3AVOib4GSFPW0O0cFT/9Xou1tKl7aX+oPSdLRmQqcS5QX+S5w9zScKpsxPABiZ4OAQAasCkkh0kqrCETgBNiCjt4OfXjxIPCMkusFxlVUzfxpgbfei+06hSIAxcEusiIUDCCSAunQ9ghVY5ikldbBeTKArSGPEp+KZr+oHo+FlpO9iqVCJMJ89PYYo09lTxcJspY/Bl5QLAvrgWheEt9TB2trhHVrsBP7iG6FsKBQQzHVmYzDenlD6UdyVfqzL1069FibFMb/T9cTim6zqxE+kEP5fS3Qh63bz88YdHxkz3zRXuZXgGLct23ZDlfoGm6TcfBTsRpvM9vy34G1gCT31BTLdVVcdlD7EMG4Bl6XOazXcl6/rgvjGrgG8sCDyxZ+DSl4zrlMwdSVD3tNwX0L7iGQWzDHxH0D1zroEvcE/vwZ+OfvtJO8Bi6dK+rgkTSwYykQT4kJ60NGxX6+75W+gNuP8ZwrWkxbFyRJuylMKq+vAZKVsMxyKE8w2QmQZfy6Aa0VdyYNlUsDuT5q2nlb2xeTJm22/hTojDEq13y6dsbNQwoQtDmGiB6d2Yf7X10H/ctguv148oRCLI0XjLc6OWXrV6OZpH49UVKB+mEQnopLpqDuU67ZSoT3GF+gfkWkPvTPjQgo76TKW/FxrG1WLBD8nH3loaZIr7XZA4gb3QMv6htItKXvLCDZx2ZLgyaNFbPfrjMJh4KKGEz+WKIZrA6/UKn1i+j19Or8kGZND+AhArk0dVkQODWxa6cjGrxIn+ifOk5C+YwhuOmE1LI92FMfOr6/6O8uPyg8/Sky672e/aEVf/XRUBmQwpU8uKeeFOtNcJwYS9uEUd4u194rN0slI7Oe35GbMGa0N4TW8wADnON7kGJV+tLeQmCVOKz4yvO++KNKpKpvMUFWbv9ZH3ShK0NSmepBRx0vdrRPcod2/5uo7JG2nxDT/piS8rW/aUq1MzVbGpZpBYBpPPNMmQKfy5YI2X5VRV87mpt+C0kbffHnvjPgvU/1QGMSF79DiQmyM9fwc7U44CumPR8WeHF0dayjXscQvC7B6xrr/9fANS5c18B1Wf7syw88qLRSNWdWJ+6pKyI7BO97pSfc91I5ooIb13LKBLiuscRkmjYgAwMo+BjRYbqGs5cyQOG0WWkKkS8LF2mlWSGP8pLcko5ZR10Ldr5kKvtYr3Ileu+4+U4JUmulSPnsUWbRZsSdKk3nxYVn6kGb3VIAMtPJsALh9rYPsi75ahTR4Kzk/TUGdSanyoO2hGzS8f3qspvp8bB8GhuwFISc7jzzebcx1H0SYS38704br7bndAKPys0gZxvjsEFmdNjDyVFtl49v56CM8pUt9MDjQrW6Li65x1gL22kTHYDs4kY8qjh8vFtb/qQxcKRhhIqreY8RVS08UQCUmbQwIV6U+sX0VKd7oRKhneBrd6IYfSxolkmHn5GgFnjsm/1SFv4yw/IAo4PSfZeopDCIhqwcjdcn16Ha0UVlRLc+LBvkGnEArtuHAPJe6xxUoNODDA6LhKzzVlEvWt8BnItGeNNN82/EeDP1khbwIubMup6w9ss+skQ5wlBIYZPmZk4qyOsOwndqL9OigloQi/jDToU3JZTOrMPN9lNdVMyCXBHt4S5qffDk+HQloP2RIhDlCrKM0Br7XZNseBah/7H0Vu04Jb5p/4YqdmUVNy4rwrUZRW1PCYGoSw3xlEjDzzHjuEan2Pbx42HMcpFwq0/Hni/vWpm3bor2XO/De13vYxrYhPOww6bheMYtlV3tY3FmebxZBK0ffhqi/x7mdAwRvAZwXWJOrDuwF17XwNdr4DXW/XJmV6T2spO8mKYeidU58b4n7jnwHhOXCL4tdVRU8AYgb8WN5Wz++c/A33+AKTeGL/YSxQXBnANj6Np+LAylRX5oajz3QswcUwHnlKXOSjbWON8lF006GTdlZc6cpu5gQ8FDYLhwLn7ofJIfLwWtOf5NpdPAsvzMdDzcmdLKE3H0w5GvDF4Ybm9VAp+ggHZjaM+F6WQU6Nbl3HgSYtvSJBosMKvOJIoXY1mtc8leMNq7o5jfvcYTGXhal++2ExA13qe5aTaD+e/xYusEqK11iM+EgkcwZ0udQ5rJXTGuP55BM7A7sL0egdRmz3ki3V/Vqsw7FWR8PHYVWYY3BDiK5F661StwHVi6c+obr4vtoILtXUZ2vCtBTrIo2BytAM8NSzBMWEfXX4FmS3fYgmgS6QLrdm5jLmNA59O+9/5Z6kLb9YGvk1hpOq/rgnwJrnFBdQUuvt9v3PcdOqGcbKnA2pEkkowf6NIuR4e2lTtdG4uH47zzTfAvyfCL68ZgCFCiEpHfw6geehIyTgg4QUPpe3G3NFSRPidVFHGCShg0NPw0lI1qQzGkkdZpShIzHUDS1v6I7UgnPHff++r13eC4sWkKlkHsKpAAF9K6lu01aH/HE5hTG12paXumtdkO45zATgX99fbRsZcV6k9xEMpUwwP+2sixTT3/wpklXuBLSBt7DhKr+yOwaHc2gSbzqDBFU2FkeV+ApAmg8EzLBzfQ/DV++dZHPk1uVsYXdvkiruWoLqf1y5zYr9eFr6/lxLqTOy5aBEbITFVMXQ7sdU+83xMyVmoB3gKRiW/c1r+5NPkE5AKulwJzrJQEXVy81sOIbUdvOaOzLvJk/8XzSgXpoF5jALhtVwSmbsneSnNsTCDlpUZ7KoqhaR6qNU20NgMFe2Z1fdD8d1lJDCVAaQzTQmcUNvQITffmnqUTOnaHjgVGlc2clIhg1cxNP8Y95f5FAVrc1SM2cFxpP6AeheVwe9QB0YxobuMd75rXFoEDWqMQtgtphmI9GslQjhuj4dP1pN8k31Y3S/Kn/xBuQOnXAhaUCftov62gb6EXnek2IYkSJiLecGOdOamv6jXcxhogNnEl8ip6ArBuJWUtvjVPC6PcVvMqsUbKwCNITznNRK+6RIVuiPTRF6EPTpNDb0shyF2DKrqZGyulTznh7ANQEI7++Mi7/DEvpPPina/8tu9okeISvNEPPrD/+eyEgCFqNuDC6z8Df/58rYNwoPgeS/+u1K970WcgA0dJSOubtoYWYUveMZejsSn5vxtvVnr3fW/jrn14VEeWRFmNyHFm/W9ymoomMG6LXIzo67n8oUDhcZt2ynsEXy9YROAOTpMPC3pULb7Ifpu71Qfgh4ge2usTOX5oYIf/w7h8hH9Qbv9PLzJIx9c8dlbsyckLeEf4D83/5MzqDqB/tHBe7kb9U7c+4aRCjg1IwB/43f4pDgUqSSV2PHFlmeImsDQDKyiyFniNMfAa64v89Rr4upYDuxzZ5dCu556CYNtz2cox1TXdPz0a+564xsT1nvgevJLfkBmA3gDe65Pg6+uCfit83wLvlWIux9FSf+SC3hO+BmyVM53CNLnMyZ6aaT2nRQMx9cyzQmVQGzPyn3i/akZ092SFodEWjAfdn8vcR3cYeClZZygKN5HS3iLzxaBtHFQuxqt/Fxffg2xyXMKwz/D362EPn5+ukxz1yFjkaHYBOQvhFHpNdADLZG+Pvbojkji2tfBi/UOeVfCIGX5h/maQaguOqK1wfHacFQ3VzpZH7GUvC/PJzoG3Ar5+SyRPBWkJgFDNcGI7ci1thMc4KUGGo+vrE36mIUFBhtoxgs3pU4kFKnUleHGjTUTVbY6k9T0+jlA/g+LG1aGqfdPkB3Dva+j8HQmn0olE1A2BXLaQV2FBC0T4Ybs6wONUcCt+0iNRfdUvu5Vs5blzO8H5tjmyivKFgTW4mTPLHeSkpw9XWFdJfnClwgajJ555jpjls82Z2zQIsmk/t/rxy0qzQTU0mBgR7CkORiqKUH4/XcWwJPP5wIw27jz1CKoqUuvHFeveWKCAR04xhKp5TsO5sapWsfXKoTN7ha7HWTf1MsfLsCnlWRlKLCQvXZq1/IMdsdcHZ/ZJsBqL99WgIQ9sUw6AUzBHKkiibV/9OdmxImKE+gxRtO9506MiC6wreY9QqoxVZuUVxIKttT9sRmRfl+BrpBP752v9/vMaeH1l2sE1/KSv7Ok9FXMOXNfEfS0nVuQO2XK7DPNEVQH5sgVgrwtry641Taay3G1VwcSETBvkOTEEOjXX9QZ1LMoMYE2FGR/56U5sUV1+BVg5YGtoaNTWCuB6gqFFVDeHIRkkvpeV1r+brhIZUFhOstg2ZQHDYm3dmSU9JY5wGX/CF7LtEe3R1uD5rq75A79EYu2XtgApy/Mg59x1TlQ2Y6tmnFwmu5xtUWdEf/1noTPBr/2o5XPWLt/77F0s5DL5cadRGMVOJ4O9HPrqnJUfrCR7Zbi58xnDg261utq/KKj7RRuoPutiG5PFgw0tTpolG9WWGqXe6otey69FrMo9ScyYLTddlAqr9ivdsH65k0s497YoAMGRWy1QOvKF0zejG0mKhF/oG+8QyNRuiFN5ut/LmSYLsrmNcIc1DW586GimWUV9btllhM0Vebf82vfHvvUN+QuMMfD1dWHeE7f9D+dZN7ay06x064ddDbYMChZgn51y9DVGIrsgiUDSv1NauyNrFbywZGlpZfLvB08iipAgNYLkSsEGy6RSPYjuOlCA/uWWK0hXjh3K2wPmBz5jgyFcmpRfPt60BcJiPrS+BWyPCtzL1ahTlC/gHwCUCvv7nuspJ0XKzXxqAqD5j97uby5flEOqkfkFpFep/93mfcKvGPan94R1WSzBrbUPhq3ZPsCUChO8XPpmiqYReNPfaKgT2PS/WED9Y8UNqqcV2JG018DlObIvwdc18Oc1wpF1Z/brNXC91jZc3ZH1HNnve2K+J/7Kjdi/VU+0Ety3u3DAn69X5NaufkzoJRhrA9y1Ly2wIhvqW81YP7B4+L41jK+TIA516QuCmv6qwXDTQqZU82PvRHx6wDor9KTlnArwZ4xQ8mLbk7kZ0gaqwCQnNhVV51+L7NDuDNv0Bujd1l4+9zQNLlIcAdo9YrGvBlqI7lsQAUTSQ/ObM6uKPJMVrd/ey4Y/R3KcLFJBBFi4XXCqp2ToxPrwEbWPgtqUDytbOiBMDdtXwpkTkcK6wSPz6yoroxqVmoEsoCVmYOKREqdHNNF5ntp5iJ4tV6W1l6rD+suU60W1IkR2Mo/7VcQCp4ZG3bmh2dKCl3/8PRhPXrzZ+sK5s8/RvoSV/kjqjvXD2zjQ69h2e9F8C5+Tks5hotVOFO9ZH1nEn+dropUTx1TJnMAbb+h/J77fF+Z7rjUP97S0MRbuXQaPKuWDjU1OOOgoZDPaytOqvEoP2arvjmw3mrEBt4b6RIXUmKrUt3Jzwo4L2ot4bSd2uOg8BZEK15PKBxsh+zemIIxpc7HYoc0DQ6Se1ZriRF1ZyDqBm0Zvmrw7UCyfm27p7XX+7v3oVmO7zsqrVh/7eDOE1r0NfERHTwUazIfXywB5VIuFV7hIAcFy/purphEktDz5qZE/ivOq1xGc2PFa4LpcAO5crVe2xJgUm5QxDM/i0IGEx/xYq9Y1z4LFf6Lru3+I4GXO4GukM3u9LFfWnNk/X+v3y/JmfZuubH7J3/uea4eCIWn09TJTfuXUkbgCu9bijjlxvS4Aug5HwDrt62ss53hCofewfK0BkRnbfy0H+o5yyS+0AwkZDA2KwHShnbWQHGCvTIPopDxLoTeCypEIHlXTVb4rgmBFOl7/3wsvGbh14u9fcwjMmQ1HuasNx8f1EOEXOEga03DITaHJsO3HlB2bxl/hKCCMVItZND3HL0hFu2Ng9xERbnQ60s0dBW6sVxb/R+tz/3gRkJpIQ8e+TgY9agTQm/YNItCd2cZHTBI1ACI9AsqCy6UNryAdhl+QAAAgAElEQVRWpYz0rQg22yqpnOxHuMtiiThEEz+CNDKiza6G0+uy6jbKWzOCltxDg1NpUBXUNh0s2c1+eFGJ6sdz5xxuf9elNaUgMcpesE1Q2knBeVhLuwT4eLEeLfQBu+9EEbaVIJoYkyhmuXc5rs2TQEVXU8d5nu8RcUe2nzvAAqFGMZG1z/YNvN9rdmjexlUHsOUaNuBpxqycjU/PdXA50jaGLevIZ00K8/lfQdsZg/SClSuO7Ib0R2ehGo5N4/WrR6xOxavGQ1eDK43gAXy8l0NHarnSnva3rnj2nmyR2U/Xhy/ZAr9rygfkn6e0nwbph/GAohyH+ng9jecP1X5bxotqOhZVjeQj1kd9yrV3dx4+YoT+XfyS706JMvs+jw3gkf/9jpSR2ofXafHDQwc27tlC+nvz7rx4lNczekQ8vWAdhrAWe12RYvByx/UalmaQubJrWy4JXBSKe+qC8b7xLWToVJcza6LrByMsdNZX/1RZC71eL6hFXIHluA6xLdRUIXPlbIkly37f99p+xsa9zCSIU0yJN1zPOKPsJoP9hBysfOEGahkcjqopEZ+XogguGbhetuWZCHDbBxNFOZpWw8ZXgUZncurviY/IiPSjlPeyzRHrrbsvwYE9g76lO/iY+PvWo62H7CH8pH64zt6F9XwcCgwGf2iI8yzZb3LD25qtMYk6r6WnCv1iAxyOV2z21QqPquRc91s/Iy3AG275hrnVXLYtyaYbiuvhjIJ5eFCi7IuvgTr+CvrNtOSGHkxyFpei3vadG7QCkfb+YyiWuuKPmFGTmuRMKXc9u+OOJNmqzWy7UG0fgbLhKQQPBR5N7zvuMkyXD9zzDlDHCDH5LjlplDyicLd6Ldr1lKvYP1YLqP/ZdeCBAu8nefkJXkPwtZvHdjkPEYOt51Le79rJhdB7QAaFpYB4NJSOErNF2MrMqPNIgKk98OiF81M4gE/pvI6bdyuUQZ0qU58Bcxn5FJUluHm7j0R0L9HvRbbLX6XuboU3y9QZXVo5ek+MEYaqr6qFtGpPHGnjPnsHDx3edU7jqQrWu10i7k2nbfxsoCy4aKdSSeiXo13tpCWTU6NhydO7USLnyhFTIuVGnjpdt8iuBR57Edof6YAfeSua22YJLDJrOa+ZK2v5sr7Iy9MM7H5twzUihWFN66/9Y4crSPVo6cA9de0TOxWXKuZl0dwx8H7fuOe9MNGVJ7v2RF19uIdgTMUUwXgJ5hvQ+8ak3C1FslSOh4Yd9uj7rTVim2Tm+CaK0Ym8vpFHJwtyQcWcKwodEX762p02fewwvt9vQAbe32/M+8bUm3qwq83MlUXuvRiMllEr3vWgwllRaTEj3qpTySrDricTGBlU3gHC3lkCVwTBOx6hDVsk4CDJOFcEfVF+VoQRDSSdpaV+7XWWY51H9im8BkLLx3dDwOxR68qpk2FDgIzAEu1W8+GxRMTbbVDqDNNXztnFZqRC2nO713MRaKTQ9DNxowdCNkKbiVu8VT+OkqeHtE3WxGXVO0DNsbnstsT/qFa6lzC8pg0muDEiTvRPODSTFPHO6L7WAq5vXBca8kt9kNyEmGmOO5DrdwrtEn4s7LKFm2K0FmOIleIlwO06FoDM6swyTV1GKPHZdwxQBd6em2T3hS6amjJsUjfhTk+OAseMeqWb0yzNXJdt573eBr0rtK2G+1XKywcAsIE4TifXvLzagRTQ8iknOxx2KKoGqj2LD1UCtyzNwsHhCBQ6pNYuKD4ryiD0p1DDp6vhffiGt3aklA/wT+Rsj3Z0nt8AKJrmyZddeD2A2V60+81qdLy8uOnz5nhnblWtJ8QjiWtT2tprIaMLbhgEGDLwUqurCgzgvlMRfRrinW1y/MoeofRVz/V8ulN95qDhnnjb3xMyur9UrGn6C4CHo0SWcXEFuHYuGPa/ObXXZdFZWXvKvvKAhK/XiJxaX1ylura6et9z7VFrSnzqwLwG5mvlWH2Z8pu6ZGmq4noN6FwRWbknoLOcBS4qMf46sSKw0+2nT8+lkQ3JThuOPnqnPEsxEvkDmrgv5PXfrjdN57t1SMK7dbO+3t9rNwc3XHOu/L6TjuYMzjKYYCPtjJO7MoQTGTM/VE4FQ+p6gY0IjEPoNu2vFsgSBDjoTG5GJ2SnOpU94OQdkHb/4SrydEAl1a87gyeFRrrXGYgXRtEwb5sYbDJYc+2ziaw4SuDRc+YdjAQOQp64r6XpExBqMDh6WRa1mRGMDxoflZi1cS7yQmUQqwMbRCJEhF23sqdAPA25KXRdJXNTexwGTQKHukEBG0APVmnZBe6km0v09KBzK0wt3XSf7JkdzbZok2JaIxGyCSOIqB2ao8hV3J7w7vXXAVHDd5gZF8ZrLZB9v2V9KGOdbFjUHvfJVYbjQx3zb2Xf3XiTfVI9lZLNrhd73IYwgBgpBozGgikzdFdeTOmuGfNdtEPO7KvgU/ZgJODGkew0+E4GKWB7LKr2VLJhVQuNNSRJ8CruTfE6/iLEH5rl7DnnbhWlVajRfnfsKUJbyLGIgD0q+3SlAa4NtNf0vNBTcKTvU4u0b9EDELIC1P/Gy/RePnfPqbLx3cmA+OOMOEgpsyNE5vqxaYLYOmNR+kHHsl4DOhX3e0UYhaNYqGQqqBVHPvHMVIJs/8RWmX+9xocVhZLmWCpO9gMgiicvu5Y1WqZhXArBsgPi9yUZnV27GSRdeC/Zl50Cxo5sbmSumJfgmr4v7cB7Kl4ekZ2Kl0VkMW+8TV9e0HVYgvg/GkZEiB52pBjWDrGIqbhMxTpv75SSWCS/rhwsBu3gSAoZaFNZMjwPH21wvaxi+q4L9CXiQ7YfuqUhV+58xMp/wmGh6Ct8+XAZeu+OSpkFsuUkJOqPBKsegwMIncys5ot0ipPrej0dpT295xMSjMMHhbw97VWc/AOouxlIwK9c0YRemHqPaFgRUtrGx/HB7R/qruKCfmSoQw+s8q6jKh3bIjpS2Twj4AueEjXbkq6l4BazZzm2trWl1DHgyxtWk31XJqkHCCuwL5Dqimmf9KgPAcXc10zr4SNBqD9i9sFD2VRSy9ggZLmi2+2gaxCJD+y7jZ42YqohUhbAJRYu4EkHbksAVV8K63RYumCMC6/XhT9/XhhjhB64MfM0wbW9S5KS8RquY7zdiSxoNgY2A7XptMQvLLTRkw+miVW8WB/QwIgZLSBTshYY52uWFqJpGxsPkJ7eWecBcI7sJ0UHkHLNgj8seD/AaPD6yxiFQ7W0C/bDBjsUPcs5GaGt8abAfou6NXDemzQZdMM/xrN34FRc+4Pyqs3WneGVZjsu8gj+56FM4f7dpQ8kPtNpg9yTxtu1YaFPH1LUqq6V+//5zwuv1wUo8PfvjX/++w2FWMJ7gNvgn/vhQ7DwLY7pCQEHFUYs+Xfvkh3rfCS78IamG2YrWuPaQOC7F6ypKtgCqnRkxbfmKv/ncbbLLzbXSJaToNdSWOOeuIbgHgPXmLnd16X4ktXF+69CMFekcJMBt2pzRZEHMPXCmDduEZtpUdLHWkUOSaL2uLzbb05XN4L9lTmzQmVVKHiq6Q+YES5qs7E/H90tD7glT7oxVuTHegLMj/dPfTvop5MT22uevOFC1P/Li2Tot/A+DqUidrt4bDLt+6H+ZlEfMECjS0gfuW75LEvlFP2STR9WQaQXWMOxvWgb28wAEHOG4oy3cOzWCXrrSTjTzdtxm7mlnTscLJzys9HrWc3iAK43Hm9kgJ3W1Y/U0OH+zRFgpTkyBUDOpvTp6m1su0PLcDbFTfMKXaYa/eLOx7OIU9LEdUayVgwgCLP1y9fGK2xaSxCOtVwQvAs9Nnuz6Zu0NeWKLvLiwPbyN5dQf4Q4fTrei7fXLKoCetXgkc61GZnzCc80HTrZ+/tainTYiQ6SNJDOFL69jinRkz58IlaWQHLFQQ05Q9HnWnj+Ic21Fyo5yIAv+JBiFWpLxGVyhvnp8qiJiQ62qOxm/Tp8VwzE6OpKQbZqTJxI4j8sZNoqNEfpAeiG4vMzbX/75R18aE96uW7RZS+6DYobBL4yzsWtn3TeChpZJMk0xddLcV8ChcRioqoAd6z8fvH8CPaMZ/BAquaQN5zqjgUGnxp2u15yJwsuISCbg+Ht+4cPvxYyqOmg+pc5KRyxCLb0fWRlpSsMgUwzwl4GnsLAffDnC/+1k8KKgC883Dyuv1MVuIH5fq8tuu7bFiQAc95UdIaoOQkmM4BfUYa+/6W+899FVJjdT4tc6MMpsoNogCfWzlX9XRl2ttbRXm6mnvp2605E6tP5qaeA+TdORmUn8vQl0vONDlpedGLschUT1NJKeNd29tyvbq0eVtSeni4ZPMGxRwUB3oXEXAcWu84/PEaNZlrKu07PwRRX1rqUQxz0UVhQIqK95IgLpCPl0atKhaUTvMm1B/AIvlQgZjIgalu1LRsCcTYr85WWvCNFma50LNO7SjsMwFe5M8EOBrWgTTc0xotPnGEkU1/t0QxkWIhSJhNOi4dKKxBekNtqem5OlSJhB7YRrl7joA9wM8dWY2wWTNnJcDBQTlVXRmuGZ+JbAfz9i9frhTltz9c5LQgqdpqtBhxvaI8aV0Nk5EYsYJPEIMjSec9UdnCnd3IgPqrX8Fg+72U2x/l8DNzfb+Ay/sWavSumkJWlW0BZOqzSLnngpWAI9mtoITTnd6GVL081O+MapuRYbDlYB8tDSikGgmi4JXZyaslRAefCLx4SVwRmv2v75+5tZTLVQuq7k0btj1sbqVCetD4pCFqV2m3A3mZV3D9f55F+tEVRYDNxH25PeEh7m8rkN7wXb9UX3ZzQUUsnmNBxA2Pla6qkUdCZyvjc96LnAUxc41qz4ENWbqcqhq5k/D2pnWxfYf+q2Cvq5MyK31d44g4F8oNAkQ6tN1ea0qSxy4a7uaegKcxzqj1ahItnbcDmbStjqS/75NvqmE5Ab5iiRnxYYMpaLKWOcu0QH2PYJz6270qxvEIJlji5CPvQOO1Dxx0is5A4VCCkjRyprPtJxp/VhFfdJLksXqq47+aW7ru+Pjau23OGL+2BEo7SKxy73rAaH99uzx51Q89Bt9cZRaQFMALsYpodWqZM21vXUg/cU6JsEjRZJXJBV0SvhOVOAMnFPct3kEO7aU9HccRADtTEVMEtBnuOJX+2VVvYBWs32IG2IivpEm1NB2wquQ8UbZKQ8NXLex/VupAyEvWpqWRRx7XxbDZqs1AeQOjCTZJDzqzQawHA23gmDwky/wK5lkOZzVqOreYTLhPNwyOSiZcH4fyDZOoE3gpcwPv+B3MC95wr8Kh7dNd1uac6JM05lbPSGRDo8IVf1GnBSTCY3M1qCdbiXYFcdrKk7f2Na5iNWh9EU2HBCdLV8LSxpaMX3ZIv/ECsXQFaaoHnY4hqbHUZ4+RTn8jx/HSxIVGa+gx6PiqymvFVJN/wi+CNegPemA2AfcZlVNYR8oUkRqRCfKIJaedzrqX3kbbiCWXvmqmybcB95IdqQU4ZNustwz/g3sDtUZAD8Q+KIB42ovxog04FtN+w+esG9LwVmFNznDE4Nt4Xw3gZxbW+cN9v3PeNYXmya1uo5Zgo5tYXVkKdZGsxFXB9Xfiyafj3ex3f+v33Xl/LRaFqgbdZZTJG7CS4WYgoJMjAED+W38gtsJIKxmO+85VqPleNqXHfMsqVpW8U5M5kcdADhprzqVBM3AqjK6JjU+2IWzWX1v7euv6ft65ow71oqPdce8tG1MGtm4FUn6qSsgm+KjIa52lhg3LtSCHFJFBsQcTj/onJ1yK3nIK0UWlj5lXFDZflM65N+YWMnhlGG7+yToOYwW/V7FPiT5zl9JGs4ekBkT8fMzxpWEO3egPRWPKdDzkfhlbUIP2U/i4arHYmCjdq96uLy/lmlVQBtlQwHypkpNHppb2gLz4knPv478q9QhGnox+O4VLruInnsC+au/Oq9kwMyEt49b0363m8CsXA2p3DVqXL+kiHLEdiyNrJYw7Xs3bIQCacO9zQyIpgE2yMwAx23LwwXbiYASg5ytZYnzXkRVJqOkXy1aofArPHxozeqW61MmLwgyZOzU5xkbLYqLCCvbGgX6p4peFZfTPNST0nhESyY149AocaOlymHVpgDmzsqiKw6Xi3dZpwGO8aus4yRFsfHeHykofWlDqsCASQsRZRTwVkDAxMO/Z2xAxf+GyvL8h941Y7+VHyAyrWX1jw1eaZEvXQL0l3oB+IMLJn+bVG18dowuHqRf9FfXboqqogTcnLGk2wKpsiHRqksqJesqkprbeCewlT8rK1+HPPSj9+Xath+gOYHpn6n19NMDZ4/9cNJPwPoCwB5vfgppboVyj8KWtVOQDIDKFVNUPBeosN9wOC7tgJBH/+fGFcgq8v4L///Qd6K96+srR92e7kdE1C8ud31vRs9wWjpoz5muZAuTM4rT861/GpRUHONZ0158CcitunIm+EIN5zxulec5oDah8DcypstywMm5GZ94pOzwno8m7ta9yi1gsJi8Tey5m9FTpnLGqI8dum9PI+ef5ZFgtHsP0gYlIQdZWPf+g9QeTyjFXYzj72/UO4/wyAy0Eo8Nn4oI708UjmWoX654aJeuLR6trB1hkEoSNg8HD5ezfkjEcdufXiR8z/pfkpFSPwsdP98SqL7QS5oHg5IrGdEgslQBMUaXeWczVW7iM5qN2BFXNwBzm5HsEtx5y7HwnXLcujmSYjt07LNQcEwzjJ/lWL764VcbHbAUffWP/QU9Tp+84knX7rn74vLMOMD4ruaAVe5MBuThcK39ToZF9wJjlOM3PauRtbbqswuxPWrbz7pV6u6OQRoMCzZQtcHpCz+Ti8fsL0sPsc2qQnho89bRBdthuvmKmKXZlsflRxrTsgLJ0+bI2D2G44vg7jWseQuwzGx6vhq3Ni+oKxR9VdX/hiZrXdhsKRVZmoKerEpE5XABw3LYDbfYaMSRkM8iSjFhGGpyjZyBTNHeEVR9w4yn13Y2JJbAM/XUZOwT4+l7DfM8e2KPFDp/OYzE6BVnGDkQqxmj5HlBoB0b97Ls82e70usncaO1K2DK/DdZ29gSD6hRBxv7hYkaK9IVfIpe8J3x05Mr3n/rviLLiuMb9vrTQs2qg1yfXZZrVrqkURdWLgggzg67rwLZOrb85sNhHCVXP4aMxrJDZxUyoehm3Cpk7T9Y9o60ycl+O59oTl/+f0nRy8jbZrgU47YnY5n8vxnbRYbh0z+/39xvu+La/rXvDvtTXVfc/1TgE/GGHeE/d7/Z3TI7YIBe4aMMmoJioe+8mFU7iXiqh7X69/eJFyjEAIit9TXnBxjJVqIQyOO5viThM5bhyFdUdgqsb2ZeDxh9NcSd8N6ofpL1lxB2fXmKzSCRk+f5FTdUkywp/kNX0hWgvBl5WN/EXD2VfbQ71uwveKoQ0sUsgEpGHt4k4PcqQ2FXYSSH8VgoJsyPt/+DLoKrqM9KEdpy0jnyd1Vb2azmiNyNZFmOtAjchRZ+cWti0X5VUvsdD4O1UgNOXssxIuP2sHZ2Btqj/JlucUt24DQXR2HvDxaFP8i8SpkNYsqAYRQhYKuHRv1TvVm7QfOfGqmzPrOy5xmlHU82G3+rBtoIJ3Y4y9gcpkEezoNsvhR98dfeXXyLUt1ep56qSnQ/Sr6HTaqtBpsmUFKU/HE4HYxSgXE5Yfef9ks1sp66mjikiL86SN6iWxsDgakLUYeM61vYitUKkzUMN8SCRXni7fseGVNV1FElt53BrxB9yl/mfJWHaiRyo2JaRaBzMqnBVHVXRkqNtAZNWqBFlBF30JwLnE9/eMnMQT3h0nGFOWRVhPpP/htTSOC2ZNmla8P2jyUh8h1KU5PpN7R+YM51ia3mh79ATziK/yYKFICrA7sw/0Zr+kRKkCPaNzKMCEFRuRcxusrK2BpWCWRtE5MeeN+3sthIq8UNenn9ih0XZVawacGncx4YPZpgLDHIUg/9SVl6SGryKc1Ptax6fOaY7jPfF+T7yutU9hfPFi9WdMz9XTqPN9T3y/J97v5QAr1ofC9/eN93vG4QjvW/F+K/6+73UogrV1zzvqeYRYp+I9FarTjqlVMshtlCPtKQ1lOJVepPF8N6ZJWltk4tqY2jhFb+K1uiGicWEY9KXhDqC5PPB45dpRK/k++jiz4fIRZYo+Fmog0xmMKRE5fsww8Rud2Tphy+N8bc9jcWviEiijxJ2Cj7NPauWl+A1bIDnYvw5ej277PA0/jRaL3l6Dq34iyoNAevFZHmyGK+7Fxjr3OE492J1Yz9jgxZS+yGuMETuIrOjssGfWywQGb9hnWHyqWRWYdtSzqMRRzlMVYnmVt9H9Gr5FUtJBXVeuPtn6yExpisXg3dkM1MiBaQum9o3ytDpiqgVWH49id7RylQLpCrTyPq0mPDTqcpOcngu17J+mbFKcG994lBHkyFGOLffRY25VprinZ9lc9N96Vstqe9R+cIJDFiSY/FHt7ys7k4Iz/0goqBAfKzRHrZ9cUNdP9mGuobpSR9OH504vkkEBXq5U+LUjtGSTe9IoJ3s9/yLJ/L2mpAgb9VFVII+XtQeHo7iKs6FA5OZEVNbZuy95gT3nZ24ENeAFawf92jRBV7b9ooHt0eit/5t3o4bEQEjAwbjkneeVPDBKGLXWfBPOsLPwRVJS62/wBcVGbM3HgD4g9dSnE52cDjaupmS01C0M1Vo78SCXR7zPHslOdh5G1dJ3BewUK+B//69vQG68XoL7DYuA+nT4wzhpFfXyXRGWnttnnAmsK1pzFHyBpvqUv6KkDCzndeD7vnHdA6/3xHVNvN93puBYxNaN7GouI7b3VLwtd+v7PfHP32/8/b7xfa8TvG7Lc33fN77fN97vN97favcZEfaTogDB246inbjXzEgbbbYCGgrVMFMikzgtbbysU1N8PkYiXcXbyNQN1wGCshK3fDDbeeUYmQvnfBTOgK+39lzG9dUUXOYRK2RbzIqspQoNVkfWHpFhoDLSF/eqmQeqxkusVqO64ey8Q48TDyX9y4rYqo/EkiVJuSEau8gnBhmwk3oQ/kkDbJePwVbXlRvJx4pw2Saz7lVSW4rEgXb1JGSekcuPXynv04nlSKzvGGLb1Plpe+7IhlM7bCtlwbDdUXiKV4dHXmfKuK69Xm9V3JjmdE5MGRhDgTnXwjEnpQCemhD8J+ILItU37Qq5gKRDa8ox3cCEUXhXl5zNbjDClivBdFiV3myrvO1iItoYFceHeE5YfwPhg7B+Ea5XoGoGEPiNCUv1jtgHST6PoKEyTb2eC9PJ9LoECGI8QCaP9pHtsksOTeFOrQgvWvpuFmwvRWMbLcB0hG95azw5sfyHOTXWs0wAcg9MTAyMPIVBEUELwFJmxgW972iPA+uOfxnTgrS0HNl+/eS4FZY43RlRNiVVS2ZxQvVQZO8ItVM6nkPdkwgqfjnaj3AZiQNOW/vkPAEH5VzKCypAEuBQwk+DcMCvv9Z2/wlc1NmNBVORDevPALNs8sCPTFXqVQ0TGon+/VQ/xfbTB1U+241bede2+krYgu/vG74N0n1bGVpQdcT0Q5h2G672wN2XE3/6MEY6wT2hQzB1TSnedpTs+z1xXeuUrr/3jfFNMwpmFK9bcI01Xe0437Yd1nJIJ/6+b4vCqm2ZZakH74nv74m3/+/PI93AT71SO/L2inbN7pjCbPRTN77Ubz9CGkDsShCGsg7tth0O6tg+DcJR/OHAjSPdAplRWAaDzLoxYnyOKX30n9o+N0rviBMbj6fqN9wsuuYHBjwAPDx2R6MrlJ9044eLQH10Zn+B3tqKzTbAK+P8LD8xTJLPO+i1z2XXIV1BOECBRKhSwsBnIFVzO7thW20NwTWWU3vJWPs2D2AMyy80ZzZ+ewfh5mHNXNxz2GzLcmjvoRjzxpAl53IDt5ADf2ssz4pt4gbyJLjohWN+po/LTlqxcGfjt9OizLRphbAcZ6YoQ+PxQPTdHdgifkc7XiAgIsxWONe6VXsRnrPDRuWZTXVTZDZYQgsFfxAPZlAtqKxrACMUSn+5OUdhKR3XNkMUxUvATI9OlgDo29bFzlasp2wwvMjUuY7TxQi4envK2IxAyVRkWpoRcKVvE26ufx4G+PXkcPUDhXJlIlmH6IGYsRZwiFro/a6DirQsAoSJUaDl+PkVSi8YjBiAonfVoU2KKz/t9VtDPbqMUvxJZKrV3HJoSwg/jUzCdnrK/n5v6YMzV5XShv8RnqmRbq9IsLL75ExGeTbIWioIe0jHxs/PaWY2NseU2OHgIHWtR0y7PDnpUFJavwtftCmS9vNWXesk7bplYgzLuzxGph/QPshpnBDkcKzrKfTZhj9z+qttczJ1RVCvay08u++J98A6evZ9m/Fc26VYss9yYueIgxFE7pAJhZ2INldqwfe9HNnv7+W4fr8n3t+3pR3c+H6/8Z537OZw22Kue86VkqErgvS+J0Rse6A4wpHH72RMjWI3QvmtXE3ffSIZV51eSBn0Z0Ez2KwEbS4fJx5Klsi8DsIxZphSbpND++RqboejvrkSqw5Ck/PS86f9uhXrXGLd3qvpETG96O7zkOSj9cA76UQmGZl037obiAWe+sjuVR9IksBBuTbRZot29VKu1Cp1H11vJ/jjoGJB3T1Qdslcidg5fCaCvREJL6bKsOkci6rGvsseiR0Dr7GcWD9h72ULZa6I1o44ajodWU8pMCdWdX2g3hNjrvx2GQp5m2BM2P8KXEu+7qkQzDUJ6FvdNbW6f4InH62/PIVETmI80R3s9sPTGPvYnqam1deopc9HciNgm3s2K2FauX53IFubgY/xg6cQFKSPaQaHIEZ+78D9nnyeEe+OfFik4Mnq3BWXwdvvbRPsfTxWKyWPnXTlqk+zRkavORePu372jwRM2oXgEuh9w9dp6KSVXeqDoNGJumYhaeEfRaFmra1c7BUDexrJ0GqAe9el99mYE8HZnVN7HmfAny0AACAASURBVKeP4sdiFFPBCI6hwpTrTqaCAPkWPD26li2s37PjE2yyo6fbk714kQHSvsZNIdxbZON0KWq3nstzM8cXD07wM7zWsc2BtfuYcpXSSq9/jDadroPxOrGjsAMhQu3/gqaAze7SSPXxZxtlD6oTW3nLlbofgODX9C0QfNruoZld0RAtiT8Vms6sAXBlmRFfW8zhOsEjsvZ7ObOy0gKG4D0mxlvwPWQ5qgAU1zKQ9xXHzopM1n+2HdZyRN/urN5zpRWQE/v9vvG+b7wnL+K6Y4GY2kKzyO+bwPVSyFyG2Xm/B19LXoUziTtTxJex36sQHyo7ImyIkQMvSgs+nc9I7dHFZj23WTvsMMJDp7xy157t9iLqxbc5A2UrvadnHlVWwMXDy1OZB+cxi1RO/nfaprfvdExA+gGXXYaavQgB6b3UOiZtfBKmfbSI67Ul+7sz622v9xmNXR9mnhogSCf2Mgf1ZafnLQfWorLXZc6trD2qLYLrObUAaBumzFu/74n3BYw5MO6J97Sp2jkh62sH8ZEotqsBBOMGbltHBs9Zb2a1EYYe+ddIOrSZ/FUXhikQ3z7pA6b90G08OI+2NhxFSWR7Dq/v6Qw0Pgo8ewfZHdk7XtcttDQDqX85I/Nkwgv+Wp7UjoXf0OCYXsjAXzwogOst4e/VqPlNN0S4uo7qGSHKww3BXD/ueS82tCisqvPvNBNJunmnUN6yHmuo1tQCWlxQgJTO+ci1aGl4l0npnI5KY745s4V5vZxHZ5UGLgdA/GtCcrVxuApRXpEOR+LBEWi2BZ8cWl8lebxKe1yvSZAbW/parEAeTMCTZWj47HRNR2AHdBLhzjqucfLlHqm1doSGnfrN8Sh/95z83a3vCT+npZpzkVN/3lr0Uoq2LABD0H5B280h8GibjvgKDfRdENWVeFaMxUS9GR4eqc8FYPuw+HCK29O1Tmiu1e9uNHTqEmNZCmLOiVsGRBTDDoMQSOboyYrQeVRn7au7Ijuv14W/b5vapD4uui/Eb1vM9f098fd7Oa/f33fkyn5/3xaBXYb1vn2ng3VQQtn+C4K/f79xicBSZFMqC1EAnQK5AD5hC6rhfLoaT/VLW5F4usKo+mA5mHk6kueFhjM7LRoUeonkluc2XR54BVYTQ4XzM8mZT9eJrDH013C6u/14miUiWolLW1s26E65khxMWJg2I2pVdqt+UgXlxDICny6WCA9wnPSeR5LbY5evpuZLSrnVLtSp6qfSikgvZbwYGy9uuosWP+1pELJ2yohb2kPTt90yubvGFUdAvy7B67osEjvwdbEz65FbCZsFSET6XI7uuU4oHPfaxzrGW7E+gMe9dOUAvpV0htmsISb/7uCY+exskA7R3vdVcNI4J5GdfiVy2qgdVjp4A83Rc2E4N5+pBgMxzW8Wx/280AzOR5wn4OsKYnaCEau+DAiO8uPemXa/kY4jozBES0Hvhe3IEvqPI6qyogBMm4bLKY/YATCJ90VlWsqV9GDTiUU21Wm9prFUF4+9cZPtAGCLoSXsqbtqqUNz3CseoYuRZPqYI7spzCfD3wgTv8sIkdo7KoFWTFB5Q21wBZFWUGTsBLMs5S0oJPPxPT7g9XilENRGdB8I5P2J305gf6T5r6+uwT9dh0afqmj7e1wc+Oy+VkDZLqfKn4u7YWxGllquA8x9Mo3cHnVsCuiIEPrthM3pRoVCtW38eMLt3Ga/NrOq9bfey++aquuIWcvpc6ds6oriei7SfVtkR4C3+CKUBXRtg0WO7DXwfetKKzDj7Ata1vS95bRiRXXet0VmzYldkdrMi33fufgr96r1fFi1PXzXFjPjz8A3prg+j8ioFakXLTQ50G3jDk1W0EZPH6X+0VoiS66o2yCVDxettU9XbimWDqfbSVUFRs8D5/blyMINpV9cFbcqDhu31pq+28fJI/nY3s8Fdwf856uX61T/Sevx6X5PUDmyn3vK5s45zhu+sEvsn5XfuuSNc2SvIXhdKxL7el34GgNf14XruuxvTTsojixy32bf/u+eE0PutevBXT/s1Xe5uCdeKjarIlBdiwYzS2RRSkWA5SzYulFtvhU5gGCZ6B/sSXmOzjJu0Do24uNhspimVQqtj5f5BjOLehNwP3CrG6kz5lBFcOTERV5Oturc3zD9AvCWzav9rp0yt5Y1WXww28uaekmoGL2kE7LTxU5PKf2StXIrsI7OVL9li+C2/qYOlGoLxXXbkhf3t2EL+9l/OzPCU388MLoKpCNLid7+1Q/k3+LQAqnJCiLUuEfNWgg6Vgyz0mCNFSuAR6QZLOFwLQ+DC/iRZ1CsvJ829bpguvFqFOG2qX3+smAq6kaBamAyWtjfbh7NAxStD4OOx2rbIBPJKwz7XYz54eeCSRWi/zEwD4g0UMyZyc2Htp9MsAlcR+1EiPIZaGNUwq360A5gCTw/+5XaxrWQb0I0ceVIwubUlAcHnOxxIRvpsXQcDD5Px4SemBFRnNOjLIBYDtM910ljeAOid9B0TuBrKnQO6LzWLgSX4hoaC03cKPsXterEGDeu6zIHdW2v9c/323JjPT/2xj1he8e60V0G2NMJnHedtn//vhe+RHuNHzm2uf1YGo+yaGRbQW1D4fB4EVbA1k2fLt6yiIgbAtNDDLe30z+uA79s5iyXQOSmsvGKXRQiIiHkzBr+rMdONAi9rKFf1FYTy6EzTKF+xSwAd551ab5FehEElwcsmL8qMCNzFtmwQLQiBK6YgirmCb7t2OM6JD5KjmKqWdUB+UyiGWeoAJdaWgHSuTUn9hKxaKzgNQRf5rB+XRe+XsuJXQ7u+ntdI/JkS1rUnGt3gjnxvgfe93ud4mUcw+mFcy7dMcU/EgRDFFNSZ9pZXxF19T06/ft4o4cpnsLjMUC9sKZtJ+OlW1HXnzRbYo/DtLi3msVz/IwRgiPcIaaiIuREdRtL8rNfyZO0Sozgosc76o11VkRT3zmj9Zla41kPMKwup85vPwKv5xRD6l/YmDpv2MtsN2Sf6jAn/mmfkDpuwHJikwZLn1kdpTrRG6OsALEg1sszqkb0V2oy7vuD0upOgf5AiBypUGpaqx8cL4k6zGndSEQV0fIi1aKYbj8wfMe14+1cVBpyIXRiilWp8HszyXPOqA6Y9q+gcrFoiKxPY/G9IfqtFWwt0vtE15O7V4FzwSfz9gOSfIj3oeV1lyvIn/FyMGfj51MaOVIP+BUr1/rKY3DqqAJKmzhVI562Mti49DGrxDVbV/yxszjDN+vCBlWd33UJuB9KsvJj74XNe65Nqml3bX2ZjOk6leu6J17XwLjqIhNWMOoJ/uMbmMDf7xv//L3x/dfyZCmV4H3ToQs30onVbDMMmxmYr2vgnjc5PEDsz+i8F0aIpgqJvr64L4fR9BX5VE63iHalzt4HwnnJhzoa08NvG/kJyGiT9aSygju7Horf1XtT06tS+kdrCjwiD9tNi6xOGLrwcg2XyLE1QnC4ddODlS7TgwkPF8WyqW82GsL60JE70cB/9A9c3dEjcqrZk6ayrHAT6KJrEY5wmCQl3wVMCjXRcGMsRVZXruxaTPmyvNjL8l9flhf7GgN/rguv14U/5sh+vVZE1iOzFzuyZrw9reB9T1xj2kfnGywMngbkOnFO2IFSaxbnkkW0G643NHYzYHr6wiZp4x/nEpWZkpOhcYKSM3IcD3bWNAVVcIj0JrzNnJS0srTV2bpFjnvI1sfReYFB6IBE6oQxROj+rBfcQDDzZxp4zmqoFbMfw1J45mEmijseC8AKWRbRSrPVDW0+2Z4MuNXxrm/lKj5hh1wRIdNAXeduQM6NV7/sAY/XNjckutfP5oviCWYDds8pNUnAzX0IdmNUqkdUltoXquUKd6DqI9I0sUH1iTC9g/7XeborZ+OENTi2zQtbB2w/Hy9fXCKBr7ex51ACoCSwYkWegOdPpikPZP9bqp9ZOG+Ynq30sfMNXzPC9V32q7LQJwe0wTepYEeEITPlKr9YKTP+Wz8Um707XT1/icFvNBKTI23J896DtniAA8LcvxWY5JdrbOZU2zFhKdzbck9fY+0fK1C81wG9AFYE5gu2dc/rwtuc2PsasV2QH47gHfJp8YmV46q2E8J9T/z9+46tvfzkr9tyc2/kkbZ+UI1Oj06kU6YK/P17h9PlztvKuVqLaOryfuL3Nl4KgutPYqWwhqfiuiyiHtJkPMbDFwCZPvNcMBqORMgqqxkMjqbB4dNA+zhSGc+jWrB936zMNfRoDTvtMVSi9hGUXlnhIxrTFBb/wHErIedvveE5o/SBo4CMxN+JsrrFVpu67YYYUpTW0oU+5rt5OV3nMk/2yduretXPD4yDTgwETfxUMIMt60J8iUvaCUHmyq4FXL7ga8QuBa9r5cZ+XQNfrwt/Xq8alWVZtF7pXFvhXWNi3CutYKUyvAO/G2q7qiiuKbhlfdzMgKMxeOI54+EgpKcQssVOhbgeIPpItQwnm7bbjQQcISuTy3yPnfjqFFbCC1k2hQTO7L6PrLcZp48xYiKlWW6/O4QcOAA8ipxBu2I/Cv+nzavbTFl7gdL64bNr0de5dbb88vTLcgls71YazEgryNox9mzT2K4a7IO6Rangeon60TFWI0IcY7wZ6lpPTwgJ7yPbvYADkmXD/Ghv70pWUGwLbjr0x6lfxbleNOyNsDlosH+pAaMOGRH+wrJ2GPbzIjMudtB87sD317MD+H9w7YT51/VdZ/HN/wikog5pyaX9933f3NzTNkHI2207uXLjc2f0hHEl0A8AkMcd1nbLg9riqVO1/cNrh7lJFZFw0qIknUtmb5nAXBEF6IDiDcWFS9f04es1MCcwLrHdCDwiK7UjgpWVobZYy3cdmFiOa2yxtY6svZVy+eykIfVdCdbZXeu3+aaKVO7DnG8XlFB2CsSq8QOPb6Jo05+PNHc9pQSO52UjLGVOTlP7vm+t41Om+3ksWTcUf093XiF9XCPRGnv6ZzG3KhLGNvwzNyaSxF1/PBJtyNqUc26FapWL/jvps99de17gv62/6n6K/jLsk+VoqY0fap/b7+/7/SKlPREioT3PrbeqM/uKRV+WWvC68PUa+PPKBWArKlsdWT/g5D0mxpj27g3oFdvufem15O+euM2RnnMtOhu6/o/ZlRYm85b4Ayz8H3K2BMl+WQ9x0xcasVx6ofam/AHI2QSw+Z0ud8258YICigYK6GPV3nu+ZveRyEYpyUXoocC3TYM23yE+xHHmMVIdaXAPXwActGXY4jiGnrR3Ph6NLO5ss7GMUbdwfIz9g0REzmzAe75CPR36nUNcaXeAUpmsXa9U4s9KSqyhyJVz5IwpfJufo9Po0RN776ehZ+6Uxl2IaFgz6izZrdJvKx9nhIvGquTQ6lyBXsHLV/mteEV1JUMXoovI4fX6jmy5j+5sHdlzkBmJTs8PHKPYqrqNLlfwr5TyUfaEhrOGen4VFzhVQE55PlmOoix4+vHBK0HifDRShl+tI8UABfRykw3pAdcz9s2cGVBOgNno7nh1ssW7dBo+iDIUucOcRQWd1IuKdjqTb27uq5HxFsi1IE+5cdnxLDoEc9j2ktfEmILxHivKc1kkKXbYsZFXibSAdaDBcknf79scWl/MpZEXq5EX69tt2VYswrJwFwKsdAhX0/Va3y2kQ3Sp4yynxaEM5R0GomlXzYxPhS61NUhPcTnzUMpUpbraF0BpuRIrX3UuScMZhzdMXsghEWmN/oLyTVuaBzs3qznKKHd1Q7SwbqRD4rg5DbtOFG/HYMaQpV4P8kylqKxHzh90AF1hMoO+Lu5VYLbZsiMkkNWvBqs6s13pt3ziplDZIdodiaiUMgrAF3757iArM6DuIzt40dd14Y8t9vIUg9e4LE/WDlKApeWMdcDJNaXYF4V/QNruIzJwj4FrrAjuuGSlsKnYQs7lnK2/hYoEE3tMqt0XiTgoscxND+IgTz3kMXU5YPDUWHeelEo8mMzizKI/szE1mew7JaRet7/iHXTbReU4rcP0TJyY1pFCRXjRL3MItBeLvtDYkPkNQxDwulvgvEu2juFK6Xa0pfZuNvv6ZKeK8uCvDhZlJdlhXeS0DRp7ddN/FHQIWFCLyHZvsV8mhOMSXNcVBgkw43QTZuUsazI0/iyUHkcyyuu46QPFGmIjolfeOJw0TodXvI3mnHB1Vaouh8ZzEAr1etGqk/f6Dr/TLa5xbDuKHoT7GAhRdgK4yt63/vXLhq+Uk/o3VWDtbCeBL/jQQPYTkfYvxK2UVc/t7KX9OjuZ+dWcH2vS3ws/rfyUTgy5U9SVzn51rB4McxNW/6n8KJpUVUwMHeY/TMwxloypYsrA8hO9f4thVNf0+JwT97QokSjeQyD3jPxYp6LGalOB2qlcsY/lzB0JVtR1rvxXO0lo7Yow4ekDCkDv9UNFq+hGj9Vt2vNFBKlnvdclgvam8HDnTs5lXTpTELoqNHCrJZw7b3t2ejHWG67bg4+0vuMOfXLWFkphRrmnbjwLWRrYwKsXiBSG85XOb6JBiJR2ys222qp7RK1a6HL2C7y39P6EYxewYj9WvXBmT/IcT7RVz1URbnSPpkTSDLmL4463AJFz7v/7wQcemV2Lu2wBmG3J9dUWfHmbc9qHp58kqIDqwK0Xvqbivq3eXPtHDxXItIDUEAysMoCn8XCHWXZ4qyfr48m+8HUcYuNWzV0FNsn+YK6L7J4uYrM+M13TD1I+iOkWCIqcorziBWNC0c5urxxxI9JctXrAMemZuogdbQVygYWiLVCtTXHzomdnto6HtMhswo1ividjb+OJ/A/jXeRQqB8lEZv+Pl3dNWhtWWoBK4Y+MDYmY+119+c/LyhgG5zflm+nsD1vaaScUs5AdSQ1DGTVqJWBqXcNvWJLnEBKuYqNQcnjyOcOXrzhTZpJ4zmDr7yYoYOeNwbk66Dg6nRlL671OZHzyLlevME5O0z082gLuIB8NGqd8yKScyy346igpRtBo0b79bBByjLddq5hZIGkKBbSoJRWDgPmW1hV7BMq3+4Kz40cmcNG94574f+ODvHp0VfgH4I819ou32d2vbmg9zrc4KUrIjuxZPsaa7wHJm6L/qzImuSUqcAiqdnufa+bCUQUdkakNp1dqG/eDsCiuC4KUJv5WItQckKQ5NIXLpUjXbvaIhkp0+ReRNoMgaLwgnskD5pg8ZJ47qOZNvH9En0BnSCOgiWcDHQZNMqkK0PpixTJIzL83RHwjrPjnRyfGV0e9bWxk2CT5sxq/vWCTvtgJdaJAEeFK/1tjIqj0rnaEPyoYBwXg/JJV9k1qczRTwqGY4AdTrU3T1qoL4vpvrpvWWdcE/s2e3qBCGJ/WF/MFYvAfOst+v8a13JGXYfpynMVS2maULxUMeeFeyjelo4wbm93HWwyRJD/rVQjnmF0nhC2350GTekp9uEsPNaGAEDwaEYrhfgRkergOjzkUR+c2TacbLHrPYJ+q9ta9TNq/bhv7F81BH2Em+yGmhkAp9Ussap2CabXdl6tHSs9Z3+iIG5pVDOfu6ZIIrSgQQsARjFJzTK14Tv5RpsfxZ0g+pBoTU34UZY71/fyLT+1veMc2QNzmK+5jtF7Xfj6c+HP16ryHhP//KPAfVdiMrefdBi9rsJfKh8vp7fr+ejzr67Ooqf3Wt93S0bt5aKtruLoRio5zu31OucO7Q7QZwL8a/L8+qoGptOHZa+0ffxQOIE+qZJe/tA73Un8qe+TmzogovNQuw1C0QXBlG5oGt5PLEcMkgpyv/a1fge6WBsT03LfJjBWGoCYuROsyMyNlV83BtaU2i2Qa0WLZE6MMSBjRAvr6NgZNFBb4eGOrEIp3WD9jX1pzZFVq6emCRfJyLtqRCJqAsg0n4nmzDrZykI51/SUv6awvDhnUE0YIomD62aJlhOnzXtG0sS0uS8oeeS/JkLnSDS9IGDZfCrdpIbU+ocSpQ/dWjtNPqxbKMaE2tzwNIH8RVbBh6tS8ae0grJwZ3tJIBew+hxSmzuIb215b0cFubOAIj7sfREeJNeYcFS2OLXhzOaOBnzqV0lpsA9UVcWlw7bLW87q5fCtvowZuHGKYHbfnFuxj0wxx2nNKe99DZltKruThp0ntOdF41EubgyNv2nOrI2V4jCGcJlujN0bLwutswynR8TjcNKYAHQj/aUU/hJxfWdSyjpoC9Eeb4nWErJVyjXa98npEGuPhG6JtAapf30YIJqTw6ertkuwthD+T3UP73GgiT14PTs8SWx3aK8x6PUMI1VyT9yyePWIKnQFuQrsObPrXTrHNDJbbzRGUeOVsUsmDR36RQahOSDkDVD7kv2g8YiVtY5YF2A0O42Mm9SvGEbvQfg8qmLPQ5/HqsnOBGejxm8/zNAd8ElTWXJZSIoiAso8G0X3sT8a+xhuzzJkhVRp3A30AfmsKbLRYmu/GfYjfvRCDvQ+4qe13mPbrtyDplWhZqUqK4DpGiAyd0IeLJS5gmtqeWBrwQfsZK1LJKKVc5g7dinkVvgCT5X36tHkoV+4qvqyLcqBnRqI+L0znDv56udE2zSW+k5mRCQe4TBiSPlbouT58VYqHFR6zvPivuSWSBhjFXKV8rH+0mSyajrE6rTztnO8GUfw4iqnmzdXvHEe1iagTj/o9mGz4crH1goidzWCrZ7LSjowVJ3Tadgmv6F7aYI/yNlk0OkbY6w0bc0Kz/j8NEWRXxBI5Wn6TzWz17p0KoxXJ+G52w82H1vbjv+DRdyfZDkRCZ03jI6+nVUWyv/TqcxI7fp/lNQDd2LHsK3wnK6KxX8qmGqzKpZ363vWeo77MsUDIveaVJjpRBdLITh8DHAsUGkIJWWpEPVkK3ZTlwvMVun+nkkWYgRmmYYX3OawPGkBUmY8ez8FJRCYtsOqhGalS0839Jfei0WYg2V8zUHvMLHsEiPLNTejU6LSNksTM71cH1r90lBZhFfJHZSQ8WrHyBaJrAW4DDcGiNJBCQjrzaVnaKx5vEiHFaYBcj0deHPOrBcR2ZPorhNm1v4iU9eG52681rnqb8xbifDBuol495TYKtH7UIdPLvnTlBAhXpXqSUvVN670U7uZgWHmK5Uo8VvLY7J/Qi+QRrXA23F/QLVgvWTzgZ7cyKHFHVr98a8jJ4XbsyObY19lmbCpTC7tve99uGHc5vByPM5ObU2DbobnsV/UJ22vwvnoABSnr80+Y+T12G/Zpq38K1g4N7XWt6cF7nkMJVa5z6kho+v3iFNnZGR7IgK81yIFkQsr75NaZCWlpifMoVsR11Ss68+Sm1jcFH0dgJ0qpIBsDoy3Gn1jZxIlVWALlAqwolUHuhj+lA0LGo4cNAHg04DqhmHEfVU1uVipNqUxtQ+jBdc75bBXfnHt7vgk3aXk5mTl4rMXUHV1uhKPsU4MYzkFUja2/s3123J2Ga9XXI/WCCE4Bx6JUuGNN5j+0V2YgQYgdIP+uLuBFPqyQFds17DnxH340ua4It6bQ+nH2EqWSScXkRbg9WLSx+HBHWFuCwEfsI+Xu9qrx1nFeLBvoRQOx+bM0hiltG4r6NOcS723f1KMNOpRdwMXZ4Nu7arVReifbpdLhzeZznvvmuuDtVRAiY4LMTWFKvMsCeF0CtGwleCZpKSfMhJr/Mm49bQDd5JzWCRlgPoSD8r4HWgjOdOUeSHY4QnDY4JaYXruPdlxALYH/Sc1BbQjao/q41bcCgATOt94f0tEW+6pkDFKRDZONwlGp9YGKw5r0JWYRxrwfC3ZoK6z9vUvVRvQEQKlpb6AFbcvDrGowZ0Grapvjxsj/mrDIbN5SMC2gXlSFIwfXVt9pf6whOUj/lo9tniUeKk894hoH51DB0sV2Zt3na85Bm4Oxra6E7ukh0E649a7V+E490urRWDoyj0H/cFDvadLP7QjWBEy491qcCf8S7tP22nvf+MfTPNVRFGOS5jrxdvOqPa8WdUVRRqmY3ADnmclGJh6RwSMhzv9K462InYksBuTR5NNe74CdhonSnnQrn5oVP6uzqzxt6bcZRmu0H9qIx3lzFqUtXyICoJGEWgtjqgWR1R5HBfRERUzjEBXO12ufPVQ4e7M2jj4B0rggpZ7x90g/hHXi2o8UGoYpSwKpL5vtkzf1zxpvt0r5dTaShVCm/V0Ydxwpim3mMOYLi+kK5JVUkAm18fAcmZdHzMHbN1FAs2fZ2eW+K+BEbNNEv+YnZAymruOP7TzqFWl35410QPYYzuLr80JewokyWqrHK3sq983Z1b3IfZbaa8DVm063ycgASL/PEy7ai0PhO7UqKsdnQMiRg/2ZY7dIf0CNIeKfICBnJigagFo9hfcKhpByIkMA+/5tjGC9HGRMJPmljvL/lNhciX/gWgTM3Aa9Akn2hlbJPe3DP/O1w6EksCaE/S9vVb9srjOu1Z44YTf0gIqiEBMcWTPfsli3HmvbXucsfhL87pGVlNf5KFhpB+v0l5vuFrw7a5rmVqgfuFtV8YBeXr0XL6w795eeyTt9VPvP79/AA7WiD9B6LHOT008qc3fqMIHwK7BD693zJ/6yxqmWQMmtj3QBvHBDoG/KKPc7LV6ptQZzDbgD5cX5eFTXUfABj3CWNjvBrPYmGibEEgda6qLcgo1tyKD2BHR4UEiTtcaYxEl8+8skgsJpymDqqmM1ZzW5UVjOa2x8pmPJ3TTEnIn+dR0y0M4jNVJH6nqzBKNqM2f6q76tFApFjS0UubAFj9qK5kN9z2GfajcMS+83W5LJSYV0QRy7o9QmZqh4DmHZ6ZNf5OM0A+q4KyNjgblU4XPDVQSNn7YBmJV4Bmxf6HOfhBn0g3GzTag3oRo5eMiuuF8aMGbA2aLR9bbtWdzg+ezHG6fTF+q2TJfEK5aW3GHxN9niw89zi6u25IOwM6TkDPrzgwJX4fJf/V4G+pNNT0qKe81nJsT9u64bU7B0+XwyUbEp6GmvLgOFXvu6QzZrXT402l8aCda+ARgxgAAIABJREFUqB/F6HXspe//nKB+2nKrvnD9HH0JZ9YLMMI73CwmxbHcc2CfDCO1Iwo6m6c06Skv2/b6Wov79eo66rSYdC3ciLtsyFZc/vlzxQk991wbqpdprBJNUBQHx5CP8kwoHxIV2nbLv3r9i8uf+1noq57nra1mU2X7iV++KjNlTTqdtjsjhqF9in2w+1jh7SqN33+ORDO8HSWDcDrCLqWlPn+6mEmOXtMHi3bkWw9DFQ6zP7SFSbzxiEqjLUX5MzR2QucHi8tfh2SkWbATvwpzM8nOW7KXPeKj7e3IqRW5jA7icSyiiMOeCtwSikyBCPgxZs4GFo/SpBuA6efqLUoP8Vw7jb0/73sdRBCLtZxugtgNYduPUTSe3XSmtpIDG9FbNgaesRBDsgoGnSJCmUROu3SIrlpHS15mtrb0hemg4vxCm6NHHwD5ELzNlqslokIM8IKd/FSjvClLJQDbWGeb2dk0CfEymH5W1/qazoDzKtNYCWwVYI64C1Z6SmwHRM+zvjrHRfoKd+4xdYz7HfaiapuTxgySF4MlQbUoy9H0p2tbrcTPtsLbfe79KRvOS1CJd+2RT2LA5cz+n3aUs/+ec2KKYIpGxNd5J/ZqnnMdTqJrNmT6Hs1uk8y+Tk1H11XD+mfNg4sS4v6bfBznw07P4syeKO22tr1tGwYUCmsb5+29smQ9j2456EEO+LHdLNGsbDRn5lxjp91mXuUPq+XL6Gnx/eqdLG5RmrUM7RKEMYCUH7pybGeOD705kUz5XxOVPnPszuxGxVgIVEat+BWLFyiPYmh8JSnb6/DXwhiV8kGj5rNEloVkpLssPrSOnhd7MeWLRFqpsaIzr2vg68/An/+8METWEZXfN/BtAjMbjBAMsgJMJOKEUEiiNYxdrsNUNKNr1dIwuRY2IQ/KpQo8TUKQDJdn9eqsc1K/NWYo9KSULuO0dbog8CzC1j8OQ50ANPis0+VYnrH/zcUascE8tBUGNsqMWn5b5dJhGAR96qE9jZWbEi1KK5J1W5sM9Bg97E5Q64JkLqqP9/VaX//XtXYK8NN4IAjDtIpKOAzrXgvtYq2Umu0YZF4k9ziF2Op/lXQgHFIcfOCPFjHv+95z2tR43fWxApFaUEBq8ZXcJodzY8VH9JNk4RSaJjwcUKEFPa/DwLMxVTyWivAjZzmajdC/BZMq8sSe6WRLcRDZaCkp+do9fuaRtkKrcS6vyvoiJUl0iVHQxJ3ZsFPL8VaRIl4x/m5Y/T660px02veyOj/rpuuMgzpHTAtX0h4KGoTCGyEBTZ+aHeGGo4FklKKJmTlIMex6ryZ0qK5N2C7mO3U07WQ7gzTVDy6YEXVdey+v/8cU3HNg5aovJ5W/r+ZUvKcdAW0Orf+edjx0LMY2OeX/ipWy8YyZqf4hVxcbpNwwP+PDeFmFMpVMw0dsDk9t6sGzA7jQ86njdoDuzLK9XQQR4u1swyO5oSk8TUAQ+l40dyrnNljvHI+/bVfwpcMl2kQfiF+jDx79LjOJzXDp9vQHZ7ZV7oCQ5DowANUnXcdsVIKYvn3ChvL5GcM6dPUFelZmkoJIfCk5sRe+vtZ2XK/LtDwG5P3Or75QCsx51NgsD5ZKUCKgUNCGsr2bfqz4EeWmC4pFjMQTV6zoSbFKbKVPau2BCQ2IVWYqc6WiUol52JwiostNXWy1S+uPeBEeW6FdKfDvwotjL176deI85X7XRLdPTnkIL1LYauResmDP7SGmUH5GsM8tNxhg7+oB11K7jw91iA18exdTSoZvrFB+XfBdAgYUel2Y94S+EUfOssJzbvIm+r68FsgWqK/Z9OjRalg0JrVMTta7W9d2QEU8A3Y6eEuETUlEDqh/nbuCJlJ4GCUUjLVN5RS2mAruDHbKenmt40TOcIyqdAmfQT9/wXMGaueOZ9SScpS9T0L0jyTVbDVp6UCRijVac5n3PGbWk3TiSxCG+y7tXeUzjkwvp9fGei56BOk9yuRT765/hHlZEq2DbYM7PwQTMmKGY+lzr0OViKTeDRZ1T1zLDYvQ/CqiYcF0V0iZuRJKJQ3cydC2vu/R3n55y7sG8PQdtVXmHoWdc32kzjGht2IOxX0t5/V9T7zGxHvOdXjBfRs8xWXzrd6WO67v+7b/V71pz/OQkonbdhlSc5Y9Srv+ev766k6NlB56TY/WsOcDn7pmElq4dqPaUvHNhrreN2d2culmqxabOx9oPt9aQczAFr3EwDb2bPZZqCz1jddRlEi154y6jJj4h5VpDn3eaKWpky5I0PhbANie4C51vfshiyjkRU9LCBVV7rXCjdzc1KOCsfjHy4vj7wMoWY8jZTn9TmT1+oSGL1R2Xer0IlwfF3t1Xuw3mp+ZoVLue0LvaSf7NMY6AXyaW7Dy2svz68eqm+UNQHFgwrGWFvR0k8Yf2okvk1C9wZg7Eah4lD5R/7G1Xzzz/vzskJ0hyq9fZYF/2xaVpw+V9fpkVE7w3fJKG8EfsNuK6ccunCLQXReWItqsc4OvmFAdiEUy07bMIf4RABiCIddiJ5uGyY9EUtQH3As5Z5AJ/iEQMxUHRpp2GldPXVhdU9tKPR2D4mCZIlO052bIxelDsy9hkxo6yzGsToWrVgcakRNXOeSM7WTJlCSPirKkR3mp9U82FN6PMDCC0l03TK6Ae20ex7JITfJ3uwKU9JvEx1fL572UtTjsmFbUkh51ZOy107W0fyCM9Ae/uHo3Os9tkCoCzxrzt+03hbw1+qRts8LWEhnkOQGMJfM+zV8isPeNewjuMfB932tfWckdBaYqJm9HoH5y3rK73/cMh/b7vnHrcl49ujvpiOglh5ZqQP1iHhFZ0eMMy7djptj5kOrkb+zrTuSm0t25QR2uNNkkR3jkjw/iEgD7Ii5Qk4FfG0DZCiZ+6bpUdzC6QkOVKThay1QPrrTDcDZWJlUS9POrp3c4vvjZmd3G4hERoLnAezFXFMolGPl2/fB6vaLQkbNkLvZSKsSGJuGyYmf87m/FN74x51rs9f194/t7CaVqGyAH0i1DI1ys+/MdDkzTdryifAhTf2kKTmCG0PoZuR1sMbXQvKKo5dl2bVaOEeJO0nQrPa88SkRv18afvd0ndArz7b/08DHhuOT57wxU0JAure2YdMtwwPRQRNU3/5bt3XadV8dsaPzGrE5F9ZeXVn9qOLXIgS8fF9O4Are/4guxbgAXIw6IDIxxY97GQwpSysbLnXFB2yBTMcfLabIO0iL+LklyttBh6tb9pScmWNNHT6fGScqqa5I9nPWP/OKPZo5VjFuN2sbP6IxHI1gf6gow+5R6d0jUwS1HTzn2Y4pQ7KYuwljA0n024Ep4eje8H8GD0WIQcsUDOAmuKDQEjxX8JdWJ+rhV4vZJcF8zEPszKyCxRxBtS9GdWXOM1fUwyDC7kYwtuqSMv+MBeMrCbpWPEhJdtwi4hDuC/mEe2b5F8fkYCwkH65tmNZUaZVL2j+uCseCkCxmy78wxVTFUobZ+ZIistIF74n0pLr3xnoLrnpBx2wzNvfqlq74fdOC57DBH1B1Zd2C/7xvvOddfCyqtcuTcWh6tgQH0XtvmxczlioBVeijRKVObtovGQIwGAaPYaClDwjM06W2tMdjSDE5j7Vf3J57w3Oo6h9Ft8Ivus9OOvvbaEmyzbVQisHRLba0582j2e0GiMgdnuXSBc4HNw2PaRmoFkTcA2Y+NtGYbDuUWWMPJoq5ih9wUWbSdabzh7JNTh/ORNNR5Hca1d/ScSF3ohLeuvlhxKw1CH4Ds2yowZeKG4v67pkZ9jcf7vrOvipx5c4XMVyi32pb2Ql2m/IaepINaCmD/xMh+hG2hGsE2m+3tOTYV59SXhVUIFUEdHi2KOegl3GJDrtSOph+vT3ms4dUcnDQWZqfBVkqAqmGE/n7UHg1OUyZlZa5B7UZ870lO5VStSW1Uw9mPL/X2VpnMASsKls0oDUT0uIDs/dqfeqMerZlzYFzCrUBheXEikDmgYy69SgnvweJki7dmSuH1YGLtABYoNnktDiTLWmnhYDU09GaUL1xNfO50DbtFIFM+LcrYeFUVGAMbNrnoierDbthxN0eBebCMMyGVuKVjX6qaLIRIkeEOiOFYuUEgY94HjZVPGIHSy/goKRF6sfSslpDMObGh8yt4wtP7bJP87lB2WnSU43mOaY6ypxkQXpyDGjYCVSeRY821a4MR/tgxO4B8QHpvoBJmr9gA92I+o67i+egTOgdULId1Ct7viWsIrjnxPW/ITcfQwpzY6QciLL3kfdU5cWuNyH6/73Bi35aq8L5rVDZP3pt2hDQQjk+3e0w4STu7EexB92WqAY9gMrzzVY/AJ5uwEGT9tDLr18lhrY8qnJNbcFiOhpAKObShFZvgQQH80ILgCZdTE77NiSWPmOmfMNnWVhT3VJDuawAl78Hq8EGI29G/T6RoL8pj1xVP9Tfclcb3Z79hRf49KkvlBXjBFIyvsNvaflBcOie+VYq+FFkRHI/iCH3oLyATuepAEjh3jAfhEC3cFFqbEorpPI4WsXFpVu8T6Tzpe4EXivsUDBaog6EJ5VyIUH+XnNlNUUj7VRf28N/StCPfwKThNcPiEZKH6WV/poFnXbUt0ojZ8/24C0FrGqgua0dlRHmK3cvpAJTLOD6tnLaip8uiUCeh3fmnxYkO/Y7WJH+vSJzGWrYlNxN6rwUCa8P0RbR1zvWE70JTzrluTLx9V5R3svVh+jAqIJcEbKd7GKHsYG1MCJILAWtIqrW2JFr0Wou/BH0UKFHATVTgfFr0mYvITkrYZ3IcEme+58p9B3sS11grMIjD/VSsIIFzNmd1RjMh6QKxlLOZ6lj/D3HvlijJimMLLpl7nKy6f9UjqRncnv+Auisz3FB/oMeSAPMdmVV9LTPOdjNACCEkIQSQsgv5TIorG496jBcBD11w6huEFp3GrKbDQgqVS9jBBO+rBpqbXeK7lR2YsbhQstWJxvaf4D9k/qoDiPilHxyp2lwl3s/Vm/0ASB2wGRidnkzLRRxXyaFQW1mf3yIKWmdMqyLLqE6v0hBAb+C+FLfe+NyEm9y2QoDwuL5fV1w3aw7qmR7e1oHPxwzZMaYx6//GwGfcZTPYxEMj/I9XZdx55tIemubNYmyuVoFzC9HJSZP84XRWH9MMsYnqKn3rGBf4vtSu2OltSeIVEQmBmRM7L2BCgQBEdqHkVlFMMiTHR+BD4joNsiq/XebEGbhzkE7Kmn1VGslqXtwr24QY94PWokq/k56I/N0cmYs49gOVHpDUMcWzXuSQGJ6j1DMfi/WNI6g9fE1SFhewErwbMbK7cNUea+akiYPUyfMRQb6uCBXm8mlAg5LZSZsKNk/NMBUPUbpog02x3jiCt8iqaMCp9v6l9dZS166+uks2DFp3iW2bkYrgJI639NPD78hf1cMZ0EauL6myfvqWZ1ugUvqpxAGZWvIboXq6HzcU6TV/545uNyxGufBCEwk3mwwOUzC/f8/4OLmmt/G+5/fbvH3JllVCl1MHdu2JuNBcFvfh5ytRsmODh1Z/fQgeX0adip0nnAlfsT0PPyepcYyWpbuQ4/zERjEZkj0vuTGqDJBGZzXsPIuPSO/HyQB+LODOaztsxpDp5K1la3olyfxhxqT3ZMpSEtRwE3PXVxoKOL2jK0VWY9bIbWWLFtyMu2zzBJTonUdyZL/SWlg2o/Q+ZBKwRj7V0NMXI+cBwINYVIVAhs5wKI0x7ZupfNMXME/luFXxsoTPGLhuAUQgdKim6sD9epnxecW1tTyBUp0e2TGq9/X356YNYNM7e98ZhjAMl4E8kosNPN6xX8nEBGs8kwMBNhDsPa0P7iN1D6dnr8Ii0moXkU7o4489lsLyAjluSXZyrOXq6OwFdhRoVlUpvY2aLbg50abdtY7VDViTRWm8lTHonzh9lykJVvSAmu221HtJ/VC9SgnTEfTNpU6DFi6RaLhE+KFO2RGEnndc89iE+UlWRePdiO0INlkcG3sDGDesA0DVSqE1QJJ1Qo82uRJmpGEen6NUU/qlBN9Tzovy6zDW8ss9q0u5hdm5AUDOcHwm0Iaw4+cMS7y8x/OgMEjhOZ8BWHcrbhGvwsbjSavR9oUxU8st2FdeW994WXczQ6r4Clhjt4f6Wvc0VCDW3rsuXTPuoFMGpjmZIf5Jh+J6C37fH8iYJwZA5l3pviFk3nHtu42tneIK7cDrMYglZ7O5wTWvshQBXjY03SCLprlys7ZJh600fBqhWLlJTNUSrtIxV20moP29km9tqskvDgVhmTCc36k7xQkh5lWkHbHJNsTkXr+1a2F7hZ0JnMYqywNBCu5RmuerRpoDtMQg+zPppEv4AOFAYhTO/htBHicPyf7sDTZm3b6+ktD2nU5oaPev54rwBJRo0AZDYYpMwpazkS8yZt1zZpOf8NTw7MtX/DovMiqtn5k20QdSaZHk98YFurvXrA82H7ZxpZgbtK4huEUBHbhvwe/w5EvQauj03t4vxWcoXjJjZOuYyKO2Prap6/etJcTgt3tp9Q6P7LA42elL0jAql1DQ8NSq9dTaypQRJkwMkJOwzK/FxjVl7/3EfqmTNacus56MWXqNLyavpIJb64mPXiE3ZoNW8FAakQKJ/ScakPoEc9dAT3I7q6FW5K8W9DxjeG6Dj+tpNe4FjwUuneNJLxoabeVryl8e47mvYBGENr6jtcVLyjpCk07QuVQR7lglGEpts2SvChP39xTA1PnQsKFC1gQFS9THVrHw0seuj7T1TLXMs5cW+yMEZE3oRlQckK2uzLqwV8qN3khEx28VZuLI9hJ/qEsUbRARvstMxD1mB76OAaIV7ormQdMnpMjnS9VLyS0O3OCq8GIlFCwkfEBvDM7C1FWsrFU331zZOs1JzXTX9rdRbDepnbl2/ELeCocSa9GMuSzt99Up5zUhePPQ7IHX68LnHjl2LHh+3ADsGlvVATHDdm2bLJRMNPKrr+S/3rNZl2BefmCDvZ5QlII74lg7zzcyuZqrHgEt7Z8o1VGpve8CjiNdCA29+uYvVjrp+VYQPi6y7GOWb/Tsok1RZYFWqdI98T4PvUQBvUKeJmjp+rbKqTJDdcUhaRG5MirUaoi3ICg6fgJTts6OZs9sHlVWx/bOM9t6dwlz7ygVfSCVtuel/kSAPVxN3GMx5sV32e3lYNy4xFFHrY2uix+f7YDLQRRXn6vgpg67dBqzYwAYHt5FuEAx9DWPznpdeI3piX2JXUciEpMx98iqhQ18huJWi5cdGSt733a6gckRvhjBPZ/pAa3L0+pn9CGk1toPRJClOxxXmBxxQ4THrmqc0hTpXkdnODO8VFzpVNmQnTKyftYBYdtUROu2qpqSFn4aRkv7vR5i9jl0Xejt5eYSRuDA/JcfuziSEGHIx6qhLvwY15+HXhKif9pIE2r1zObkt0akbmmz/eJ9g1YvEspufC4xs+d6+JNA7BzZEGgrPNebFwU7l1m1JuA+JqN/BnVIQ2J1waegFtSkEIZGmEnwKzolzjaj2UQsR4ZUZUXAWquzMQ9Y3rmySydcvV2HflqsAXJ1nT3ICAKUmFqqPyvvGBU1WzxNbIxxyQWkQ+oHlZKm8kHM/VbNiYd2fU0PDLKrdrEwS1GSHo6f5kulDLWHvg6VGgvMY6CIvzQdQg6QYgx+DUrPOCGRuXvZC6Y5QRttrKk+y46JsS7s2B5TptZWXxl5vy+MAYgI3i/fqEmxcxQsP4eYx2ZlONGW/7RPRBgIUqvRJ87J73ksrYaCizxKQzwutnC5VKH1FaTOM8WwLSKIE4w7iOdKH1g8XD+GCKZsHfbQEZt43WsihLvLf5Zf83pgnSFHYcwawOKV3TRE6+kDmc7tNPIqG7OIvEm3y4yHSruyAleHqiVI5ovq65Q3C5gBTs3iU2ZGrELQyowLWr90PRpFSmzzxEohV1/a1sJelvrs9QA/yezjZr6NMSC4cMuADo+STB7Qcc2NYNeF1/3C65qxsdcluFANX9WBe7hhPI3Yz9AZE8ubvcaYx+mNO4798pUcb4O7qDxEacbvp65Skk3cyPUGyEbnkt2Youh/zDGimifG9Gxl3Bo/WPeum7ZYIGbIF9sZ2+wuzbuYqOCs/KGdJD9S4EvLRJ9E7bB7gI3LCpcM4ki2scIE6mU1WpQ0g0RYSU64NOp3cCX0SCtCKcsYTiFk0rsZsyKgGF8b6w4w7KBkDF0M2+RHPrUFoBjZHY11eyB+EnjSzyUulhtnmCHKrRdA5diTNGCEigS29y49S4W1ZWEAqmyq01WTdpVMNFzw2AlmX6vZPclb1KzVp3fCBaD27GugdKZb1zT8lkLt8Sl490Zsshy+1EG/EP/wjVK+Ikqaxg2T6lo7wmeMpzCcFxR0LX6m5krtLhCKgQU3JLLmuRlPU8D4Eq05nO4xIHoIrwiMkit9ift1CV7XhV+vuXHkdV3zWtkx43CBudwpl87xfLPw0WhKv2xgH5N5eKJPKt2KXQZmD/slte+L7JMOQxc4WpsRfdT1TeDnCpXTHZAadZnNhLY7yoxzLqF7Undwx0psZas0bge3mZA+DnoKR6CGZZHZ4hiNrgyiGe5z67LM272p+3kYUTaSAWUAHwr/cXK3aJQbtkF209LeGadKd+AamLS0ck/7UAWuueERt8amLi8zVKAvteO27Mit64WXTKPlhStjZKGAKm5FnEJwjxsf9Vu+7vTS3gPDNnzNW8SAW2ny7P+4Eb1dLdxPvujtrwbmDr5SF3QbigewsVCJFQVKAW34Fc8sjeGKG41J8Pj2j7wiTcAXPGOEOxSuoRYQkA2aadOISwYT7GjK5Ve48UNPtWflfllKdlMKVLdwii1Z2eHwfBMOLLjt70mxcz9snnf/EKC9jYb8UJ1xvH3Ti+XLpZpGKvGBIhU+AyjaIrmtKK0489DzUH42TlNObds1gms8NpUYekP3NDZmAt8EFHi44qMAlioPoxFYniaR1+NNEs3d88xIrEB2Ujj/eghAYLjDIzhdFiE1k3ZeTiap9g/fGxD4TaHiM8HJG+L2DVwxJY/8pA4tfXIKJ0n1nnFL/LQRAUBoObkKPO18YRl5eQfi3oE6luZZjyO8qSU2lmDzblkDBxXgJRder3mUz6+/XpBr9vk1XtAxIL9vQC/IS/C5bzJg6wYCZwOJ+g5CveRvy47ERuUzwc3JXU2Yfe/jTqggw/BxHWK4Crfy3uoNnCmqzc5HzT4CxOljMSEK4PXKm60g89qIuQpIu3lVAD+jOQdcSjT1PkvZMjAvoSCCkOwkAe+FKV4xe8hWYaxMyFcHqzDjiiYpIW7VZFx6Kj1JqHzKQop9RgIL2hVK7xatax+NoVg2uiDHzSSH3QrnE4EIAtzIIKNVrIAQz/mHxSvrTNQ3wJSHOdraZuN7eOf6LUw3MC9GQehI1XnT17gU9yW4ZIYU+eUIIn4F7yx066S1x9IP1YiXHYONWrULEuYy/rA+nVfmpjeWhkwhx6nBJWYTQJmgiNO4kbAbXZbA17yGkuX6GS9+9/xX8ltGo2qUFWP0CJ+M/mhN2An5BWNCJn7qmq9kyYaxfNfGe1psoZV6u74QzLFbjfmKa7ctuC9YrsHFjmIadpqbEH1sO4BcZGs6J+Bp9C102B4NJRMiN++qAuEpDuHidbncQr0g0f4uhuxiyGmogeItWIusCsVfD7bZpj7tH6LurYLcrQOkdkX0CP1MEe1vJ6OHcNH2Tnglz9u71xsSvcE/PZs6dmj9EBrL43Oe0k/Znvn3qWDSucxyiSobm4XytcSSpmvtBKDobFDYYNCvGeRF0PY+BIq7rSC9EQg+yHcyjDcDIX/HWGMZtNRjS4w6G8hjrrKhQgdt3KLyAOwsrcR4/pbpUb6m9/X9euHXXxfev95zUxnmEvf9mTDu8ZnX4oKfHP8XKyoTNKxLqtFQuaCJhlQgzk6LCKniH82IWgrrDkbCmQnESHDKN44T/2551JTEqPI08PD4dvO4voyuM9Rg7qJ7qU3CuPMUtMFmeuBDPi3nItPzJAScz40kEn0kxrumWJB8J0xn02b1qC+CbYqsGLOu0EL3mqLi5fs2zDYjcdMQKboj61U78mtXqm1ec9ag8drbs8Ughp8aHT2jbE66Xwtn3KOQsp/w5mT8mrLrBqaxNz2lQ6/pMR3Dzo210woEdr7slUTHNEpV51nUvolrnmRgG8HIyPX3qZPVsJn8sHg3jQZFvdYW5oAv5bzdvpESRQ3ns+FpsTG0yD4t+eb8zHjXaeG8zbJZSN+zB4qz7WQ5sBiFnsHjy6ESW+BmkjfSZCVkaXQJRevu1TIoVqrn/FMXtEr26lKm9EN90UeLT5dwslAT/KvPgdjHMEHOf8ozs735xZ8uZEI+VVmfOQTIW3YSAF9SwJ5czxm7XvnZSpwN5s6NgyFuJBbrsD5KsRFUlBaCKBhQI9Vzewz49EorCrUXjrOShWM4z2bwtDYzbx7lP792YXAA7+2JSYtoo4lQjCdW4dReti13xRq4rYrSDTG/VjOQU1uKI+kT40wBP5PUvec7GWiVZmuj+mfaRJsGeWVdzZfg8l19ByVZBLzzBRkUjFbjX7aHGGBpry1Bzmtvgev1wvsl+PW+8H6/8HpJeMz0AsYlGB8vKjPMYJF9FMeGaRwVTya16bT0xOTnDLVNZvRS+FHSZGbcgRH+EXjsc06jSOvXaLNkA9x45Tyw/nfYooCd8Xldgvd7Xs8m12Wb8xSqN3BLyFG/914Tpdk0P1dYJYli6QM6jRnu9yBa19AGU1wy1qXDWSI2LxTxKXBDYXP2SVRFHe98LJoxvtGv5NVUAFeGUIWX+fCoW6tFtfgmniscGbOfjd9NZi97RoInTCe5HK4SdfPbyvWVO6AY0uob9ZcYGzc85ueBy653nicsKOZ5sC8V6GvmcrrIEIgMXGK8JUAN7K2G6T2mYcpG6z1gHlu75taO+Qs/rCL3sjiaTlcWb+N5AAAgAElEQVQSwU2zrTRiYiHxrMcC7jRwBcnyPfisl7HkGcaTPB+bwBqWvAEcZuwm2LUdob3MgAPs1BPOE3E53GbEZk8h/DUSaXhSzGtIuI3+qBJKHa2Uo8S+fBnBko5qqC4aOpbOa90haQ1+xsZyvd6mKwnA1Qv4gNq5adkm6lKXuBECMiYlNM22mOJAlRpUPbKUkOLakrzg4SHxXht6eGJV7giQBOVWbX2p47F+LR0xvzjuRdJXeKQUO/hCr23dav0jpcQzztzOivBO/B6fb3QSFvD/DJCfP5WsnchTIalgc6h+GmZTOUh8VuPx+XroH32u9zslpyDZGrC7Cr1Sx3vDMOVTY5wdhh10Vb2thI2fqfsEL5knFFwvuyFoCzSL6lyzdHXXPGMIY7a8tzyPum4ntFub+tJugFwzkqxY8cgNVWTsnJDzcR4SOCtOajgcf8TijefucsgLl101/NILqjdU3wA+dn03odnlSmsKZZqvPsEUStstu3gHCL7wEsXmh5EOolRe3lDkm+TfkGhu/DZlwZ7Up2cjDR7zl7LdgbGtKnFQEB1L7Qccd+K6kH5nEJGRQkbPNM/9ulq7itt49AJwGV4X3BPrmwkzXxpJacgOM2RvdQPXDNjwzLqtohjmRJqTUVreNsU8sIqsTkmXh0ye5AVvfR8rDKHKO10+69IlwXaxslDLFWPWSRWsrdkpDNfuaIr8IAXkcIXRICYzY8thr45cDyOopQd0oZm/7GJm+zPrWRBb6NGN3QquE6NtX5a2imaNiyajw/sXn68i4iwP3os06grJizuBpdKoPxFNuHhWWwnbFdENcgRPzFGXs/mDwH56tkTp2jMrn8Jtl1UdqQMtDbd2vfGuvrzTvQHS9mOHu2uR5LRzvyvl/2LCccyJUpmtx5wgaXFJNFTDFliHax3oteBQ4JKrImmeuVgqH84zi8aH62O10TblfW9EGigx6LcGCsHV5QuIYMvDRz5taajergNfL+zWek5zSHCekG0qc2OIoMAv8nxMoXXfit+/b3w+ebWlx90lHlpQdThuhH3ffLdp/6ZdnT9dVbrMSbauU08pErcCqoZ3SuAqUrymYQYOAYvdvWkCR9y0IXcBkOvC9b5wXQgFM+83uTDuGyMD86Z56MuEirKUnx48CbpzWyAKGYI6sZ6DmONUF2OW+V0B9ip3YzP/62sQRgcgQiiKt9t+erk41cZNOad15DNqx6qdMBjSvWqGCV0Uc5m65baK96njWjqeviUSrNuYA0r+8jRdGX3Vh7C1CRL95fHsfhoJbHwOUxoaoVqKW+wMaZkw5tm2Pp24QqC4QTRlwewb99AOo/l8H8t3YIr9OAvUG+Pkq/bR/LaK8hgHLgrXzcVSO9SA84kJlWwlY67qEo7dVgjwISRsbFC9HmbA59jmOGB4WoAnXFqX7XGbjIzXpZnUQDrUjdGr8Xf2LcOVlofxlZrsr942NqIleabA1swQnt3uDdcWp04gsi21s0P/Em0VmLrJ9h0AyFMTPYa20WU5xquR5S177qwdTM+la9ZaZXbSmikFSLaeU7J8lFD28uq2P7n2+O9D+vYxzmnNq3UyolGOpAJVsRdwDCaFXSFCx4m/L+gv2K7J/GPtrH09/iIpYJ/pueKw2nc8eLI0v3F4gLwuE9CThumZE8gLsQoSO8EN9lRMuWQ5RheErtip9vjJcYHGS9yPSpmV/rKh2AZ/Cbnx4kVWb25yI7JqwDg83AxfEoRYGEeOMT8aSu+BDwSXHaclAjNiP7jvz9wocistpVWhpUYM/3ph1/tBjG1qibGsAYSpSDucnWcWtSjnS6NJAkR2N/dXRGFYN0we5P0WyUGEsxe5BC9M4/W67JgCP2PLDRnaBKkjy86jtZKt3NsaFPdJQjACgvHD6LJ3P94wdlo7KRrteHPXLE7GLJohdxIvIePMuCIZEWFkbpj3zioKiI133iDbleH0DGeag2srgDuv/M6Ydbw8aqGJglpLfxyPGqDLx4RFvdYxfjnGNL5n24Ygjry9RIpBChEMlQglmCCHU8pOLpj53TD1sJ9hfDe/a8hJ987yeFHz6MJw2T1F8myIot5Up6PvoQ6Dx4hbbCZNHo06NjJOm7bYyUhCTflHM2ZTRQgpD89PVOHu64ikON3XKVYvVZMZm16A8W9l9QZ491TJR1XWZAMS6U91hHB0nkU5CcFJuem0Hz4nQUIt6XtVFvibCinfu2aSbSbu844XK/pcMmsbBTTTS9ysJbgwiZvKW0OK7yXGRicMCT7dNbsRc9uR25wrsCAIEejQs6uAq0D7RQeFT5+YpcFZ+GTHDIHuKvCD7v6mjYiy/NhUusOPcosnyNodMmM2xTLqUFzywkucL9L7NW+5SgxGtGnifc1M88xGlltKnhzGxX7ycjlQ2SKLzI4Jb9xk6uDj0t4N/ctChUuxIkfaWFTtpEr4hGfeSDQrUt+tbQSYFy4IPgoM+02iEPdnnj3pyk0ViwGdLDfb20m4ZJbMCy6LyfeXrWKU8kxfqlQbnNmfFkuNVp48p11W7cTG0HkdcKqzWWiuQLEg0mBd181QUhRj2G0TVmdc2z0PrNf7rgaEXfUNIPp/iHI3zvKuSKQuR8YcmxVpDGibEObBtSVL9bgl1CSXE16KrMs0U3LWeGFeho1HN05j8ogyQWB83Xt5SYXv1fltXnVCCTw5YOsA4Q8AAap4eQu9f4tylRVEUHC+DOvQl4jOI43q2bhpzDqXUz8MG8cq1l7EJCMWqQSQO8t78+ZfDUM2x3H11Dr/zb7O++RVLvfEPShCcJcYMuSl48YIqlEA5KVNns06jdmhrOR6p4JgavtN+tJ1gRtiULFroa1IlJl4qXcF1UOsxT/i1Y8d7Oox+AO1vjz4xepsSlX5PFii12Q1DkmQ2v7QP4mce53FIMsFfG6Da6c++TrqcLk7snyrIJuE1MHbpvoQCfR57FZvalEpC9+QBxwobfURplQR40cxsg2r9iypOyYvsicFVORvfPEnT8ALbXPAtzNYVH6GXLm3iHGmMSVvK3msc7m9qPIzIqzh6ykHPBSKJP2Dh5XS/FUMrA5eie4h6r7hWZ+inzrzuBfN/2OCSHUA1wvv6zKlPKX5dQleCjvGQyD3IGE+B/i4R5Ojzd90wmXX/gm40rhKPKBZBxViLr8dsKFNi1Rfqb6GWyz6pSlx3wF/m9H6EuBj50my6TcnEJi3/6iaB7tv9Mvh61/ZbHeDv8iGBbm1zWFfBGCyahXVmPDl2WbM4mjM2p8r4Ts/BIhO7h17NP7Iq2cbZdytO8b0nZnuAIDPfceh9ep1NX7gRiutKHj1bnr4RqZogi0FlnX7eKpiCnAlWy7Hi/iNYE1JkjJe+HYiYYpqAi5yBYo8IaF5aR+G3s6IiCaR/HoUe4rqbk8AaSg1eV/y1AG75GgivGSrGKopbRcRWsUF6UzePxgTZdjRW1DsOiZlX8J2I3VoauK5yXBEXZOx2tWOu0Zt2t8fP9+2y60tLGDZBe+TxlyW73AMOeabYm/sm7B8tN8a9VRYbhzxJN6zoRnF26aSkcwyxytfTx3YDrT4vUy8HX96kciYMezu5Y/6I30CnCeV9fXv5pbvjYzY942n1+l3osu3Jzz4a1sPBezvzPA+EbLEI7RiRWFZnuFKpo3OrUFLsmTRefbfmMlv07siqV+Oz6LttQrVgJfcnSFV1kNs8XEfh7bULfFD8RNTcxOeNoEp5+9dtQFX2tI9vb2P7ZvEt6bNkYM7vpmgkWur1haEFvLaj2I8kMdIMAWjqO+CfOH964WhivclYcyoCc8bL8RtVCr4/blDSFWlSv1UHuobyfzzm/ZccXpDLP9FhslfxYnHaY1pNGCtqOTLlcR3FjsVIPx1KFQGrmuaRHrbeZKXx+nViudNUwyyrzUS9VYWIVqTYVSKKyBXygP20k2Ew0hRhuW4eV3qHiCE4JQ+rgkxhe/2RhxGIKj6O2oKMBNWmNVeJ7VPVe14pNmn963ANUMyxLwgcikiPnb4iZ1VsSWiEn2rmB6QV4xRmbcsKUwRzvjJOFGUFG/G2moxnuK4CUk6BmEib42ZhRtPUcg7n2WkUyX7jNfsgxMUSR9I3bAmCSGP5qUtZiHCIsI08rtsWjRYEFJTqPSneVijT2jox+7zPuoK7ikcQ466TSq21ujjfxNmkGNLiao0mbxmOyRmZommx7ELcmf93LzlfKUYzinsiQ1LLnhi9pbrL0V62YmuXHdMyFilkiEz+4b1lsHT1GgMd3rlx8YuEPqrtStWdRldoqZX+0kG3saJq7JKNPCaqJZElLwno01Pb6Xenmb1sf3gk9RFWhMJ7Exjl5OAxuqm3vdklxBk0ajMf3mcPuuR5EIRxHnis8yUaXMvQe1WbvPkj/woqLf8xnfx1YMDAWOITN50L7dEX81x83aWIjGN/uxkQLaZOr14THJwA2bobiCJH8PQ6qnsk1rptEvSuGCDfWcWokInWMm+1rCAlYbflnb2rYd4+WBux6nsmPYEe5t86qwi4U/JU4JlDuqxLXM91ZmcdayQ9TiCV6Of5rzoCjr/ek+j7LpeNHMHLhm4x9wm/vk9bEKlKWithi5kUYRJE1Q7caRY5imhZB1uVCDl+0YdpEABVokY0rji83VTVa9CbXHTB/5NI5x4Me7mLnj4shD1YwhcFD4BkAH7CbYer2T9oYV5pszJ/mhtuZYjIO1qV5QuWzZ7Yer81/uC3orXS2hpFZM/SAYkn1evL8gwdGPWPWMKAEOh19xpft8KGffMJwrcgnk1mtEGQnMSa1xs6SChn0FpYCYp4RU6b7f0W0T1MvkLPzmA5PCibb3QhBebc5sxC1CIShCauSK4lzYCM5+Q91gA8QOTHJgQf4lxhi+7m3LzcFC2l1ZDZ30W0aSoAHrG+K4lQ8Kp32sGpbJegHc/pMCcG46cJt63KcySP43ngDgfWtvsS5B2+mBjIGRO9nOOuGCmlRYFV39LAddXLURS/i16FlGs9lXI5EoZ53OaOh37uPRtD1dIUPVjszpzdSYnbYxQrzt6I7pSm1DaNJGFSxuDVRfRikZhIYEfj3dpSgwl+RSsEr8n4OsSXDpD9KwQKVcfa96/2mjeBWluAJtts8GODLNgWncj819+9p1RkumKWk7lBu/hZvPLh7DC04BJQyKXMxoyIQQTU9+tGp0dfVxFFHt812jCAxG1LmGuDeUlMcJVUAzS6kP0eCMpUBZBWVDauNOPHb/ric2j7e8p/QcgyA+GQq/QYTYa+Z2AdGW3rSgEgYTzUeKwcwXkwuuaXowLF95vW9q9rtmNqhjXC5fqNGIx7yQfHlSmWtD0WbiCbIWqpfPpr8uA0lhqVjMqAqRWeEfBrI1rC/uylJQFxnZssjCBjx/Hkz1entk+3NOoGCzsaUzFV97kLN5OF7GEoFSl1BPTl5+juogE1TyWUDTlg4scnXGtRQSRHBGZy2vXJRC7zcyPKLrvvKg72qdOszaxtGVzPgh9suc8hP71mn08J+oGQ7JtCoQTbSDbk1hfmY+NceV4WQWGTAXmRrzxll/VHpu4wmOd+cJcZF6z8RVL2d7HDltQu1Up3ECmvlgux1nkeOtYIxD3e8TeuW4sO8J5PIEmAaR/1GKZD7c1G/vXsJIHkWSNzQytzr2+mGVUMsFPyXXL3MJfSIv5JMG9bkaLmABXwZFes1SI6X4iHKxQGL1CeVoYgZZWcJvJyorskhMQglG1MAJo5jI8F+Fn44k3PEotv6pLLemB8Ua45idN3pnuxZZJW3M1kxrciqczVM2TnzhNo66sZXWsRGqv12btlw56R3CTmCCcm+0yLMm+TjvK7BT1la9BeDpplOtNwTqbS6cZNIpk+EJtI7ej9OemfbliQQLe2+nzffOus670kM31Zq949h5UbmaRB+0De2fTjS4rAH5HzfJY3w7eUmL3iQjFFdK70t8iTpXyf61LE0UeeUu5J4n6f/6pAgk4yb5NB22gbBJDkbbc6opqQHV6YC+/qtGXRF+T8ecNOTder2n5fD4XRIft3LUetKU5xUZOK/fz/DX+oG+azVqbvH+lgvMZIriKROzq4BkfZm0G7UvRCqWbvyzDRfkWIcXqada9OD2/NbgbAfakT5aWwfFwYZKWP6WNK99YzKwZsb/eL/zb335NI/4e+K9/3FCdoQDJstrgunD3iqXhmn+nx8OMKdAqAAlctVMLNNxnAAVBHunGT+gIAR2LR1zr/CLuBW2GGKfH533MK3uqA1IsOUjg2BYfSvn8JKnkhuaRcG5JzY0Bs5Z5R4AV28iMol8QYxmAxSNrhBstz4au2ae7PEX1rvm/6auOnyuVwmyV+xSpmBl8etfTWmeVEkdZ+d8dXm3Jvg9loHFD69RF/vxENNIAFd+oGK3XJoS/PF+XojgviDlnVT4+t1av41PKb36DdUfKBjewnzE8p/J4DNdBDF92CdpKj+Sk8mXhQpdcIdMvzHAmeb1M/s9QklFCBFxuwMayGaUd00KLpjiXzGsbH72yp67YUGYPPZ/36bDqEJHe4qUKIkpHjIxZUDfMP+YdOsBk+RVYEZM4RIkS8+Ogb0dtsOO2tsRS7Vsb2JqzZgfgHq+VNrqiwHcDE4x1xFQw5Qmt2Dy/O4HPAE69X2KXNvUebE5n9qmg0lCMHA/cxoqASXFZZyspOgajZswmXmL/12CGK6ZtFxQD923GrCrF+CjYrVN5KXFM3DTotHE+0a/zlO+b+F2WiVgLEbpksvwcvmaf9XCakMW0pPmomzSVrrP+7CfnhtKKBVXe9cqYs9Hj+idYXVv2HU82ETUV/+Sp1+vC33698f7rBcBOxfjdz8lDdG54He17rbIuQTqeQwG5NVcQPMfQ6Dso0sAa2tqRQtN3Kk/mFhTVK2kF5XtCGCE7HZbxJXs2qN28B3mGFTCzqSNN704qIrjj6Oljfhe6vas+tJzJnleh8BE/i/tKCV+sP6ZfeBupNcOM2R7mYgO9i7cc7X619Y7pNJgzy7P81PLNac/QfckXvOuz7PzRoCmL1DjiDCzq2zhG+03eWHazOeWe9hOXnRPNLCimDrW7hlHsBGXn+QVojP3yDqIiC2tKjxEpIGOVQC9VkeTWDGlqTWXUKjKgAsNjtFu4Fk9GGAnBugLbkcR2rjNXp1Ri7IhcuF45hq/rSqH0MhxU7dA22/QL77+R9GJPK7WvroCLl0IEqQa6Yu3VlVauCihhR1MdMK+se4u7bBZanGw9ZWq/Hb+VDSF/QpDXU2r+R/VHS1yMPYvTAwwSypyj5/R4taUJG5G1TSY8i/CNJQhvt+EhvOtzgxEX4/7WWgqUzRCwDzt66qZ9PctT+Yf8JEcLHVlwrNjkYAsXSg7WJE0Z/aU6RBYXjBJMPQeuqbBhQR7DNzbIIljm4M6egip0FBlug0DDGGFxoU6PaH7iXM5X9G5YaKKGt/CX3tKVDiUUo6pkrQ0kvZHUX9Bg+yD6R/I7sZF7Fa5moe8E+pH3CAnfnMQF0ubRmr0YI1VHxBJwg/+EQF6bOwFcEFwX5obBl8Bj5z+f244Z0zhBgPEEcmImS1r/4PIguC7nhmrfOYRgpGeyRuCM7E3V9KaSRZ/8adIpbsckI09SKXmhiGEkcqeS8Y+yfgd1AA25wIXaGspFNJgnlldpVS6fQQo5hqXvWQmRE5MG+s4RR10GuF6SvvMruqoyWnVY8Ljl/SJAPREiKZAGyVXp0Z4uZls2k7g0wJwgzCObiQi/ZZ+TDO54kCLdjvEvD4ftAGTuSiVogcsVxUzloMsag5Uwhg60MDOnp6FEopJotHocedwG+zu1lAx0YaAGgU9ESRKw2F71yTWVXLVnq6ATWEiUGJ+p8bdlua45XuS6ILRKWaJyfs16XvfA79tkx6W4huA2Hg/5HCyePvluL5Znt6RJ2PeCNQ75J5z3Ld+a/ga6sO5SACZjz9ps5izSmf5oCnYDxnQIAbSMPve2JnewuGEBXP1JHU/d/jw9GWXk+Yk7xRWdNlzaz4XO55DnRcB1Oh8k4BFadF+XoHvpFo9sPxxpNknTtAno1cc7GbMlpyJ35RKd4782qIYIBANjCMa4cA/F+3JlIpUupuhnfOQoqMxk2xmsZgL05fTWFFFSqKd8LL00e3oZTpiDbCFnm41TJHmjI4Pb4OT4HvrQd7NrGU8Ug75VcF1gnZqv3U6IZ/BE1ugpBITJy0pjMSCLVqKvPAEgdnQl8I/fN+7PjJ3++z/mFbFDNR129p+p0JIC8c7n3+tKT4+NRWKBkEjKfTmifPClTZbZQJhevwERPq2fiO0GcpCjxSBK+m0jXjZy9acJLB1mlwkl0ZFchEc3mqF241SMzRmjfKyZDFU3AspYDSrOCtRMPt64WKwHb0IAow+KXJWPCkiGOO9E91ZjFlp5oz6D4GjsOpfdWOc2xQQoI2tPOkIicJ1n1TmoNKQ3QTjhawNMev5mdkWvLeqof1gkBtVTq128dv5jMfwQ3kKAY0krH7k887G2oGO8wKVYXF9S9wS0gjHOilyKC3ZoNUBzDG/3vHDDLL2EKAQfZ5+O2NA6jdTXZRsGxmRmuXyyfuHlE1zicXkJVF/4qOLSC9Abt1V62aknctlxizQAV/oh7B4ebpWgaRPlKRUV3vZ0Aqen978gty8VS5qUAYtDl40Xb/aq4+vhOQ239an95x0oS9qEuhF426q0/NT+Ii3bY3t2qtew0Z6iqLVlOwoii3f46LtdoHN/rRl+TvdzeflCj4rRLPGTAk4bYrZihO3onN/iFxHBna/TizpHxNDpzZlLoXw9rlbvqwsAE4JiG3TOs8hNe5Q3KGzwXwR4N4rPZsMJRln2QrVhQknXHFT/Rsm07PU4lPUqnyLDtONbuXhfUy9RD4PvXhsm70ZPVWM23Cap9bQM0ing1Wq9bwAY+PvffwfWanFiRdkw25KS4TRVrZMuMhtC6ev8W1egrIgzN8FVogdgYQX9tAKXQ10TmzEbxl8bX93odGM2BExkd+ut06Pxu/cbye54HMTQOQ6vVefk+l4VzhN/IfobyL1ITpESzRhNPhVC1RHSgfNxCoFLEjt9dzPfj9QJ177U5/Q/5H+CFRJxLfOkMv7o6Qp5W9cf6KBFD/eyXypc4O3lb/CEENtqzcNo7D4wn7RoDKrugGvUp9smLZ+YiZd0x4S+mvE3Pgpcitd1zSMoX9OYFcy9I02JzjhZHWkA6wW9B8al0PsRw1MD//Wni5qvNs3P677S2nDgVRjU31+Gm9fNqDTbqSrTbirq8mvF5WSpGn6qACs4Z5qut0lhlBUZc+WzWniiw6yuC30f9rqU3P32Ohm6av23VN8z/fTh8qfvZZDb/wTh3MgsvRD1bfOUJI6cb192Zh3zLFTNf1BgjHmw/Lhv6BjQ29LH3Nw17oExnM90bee3ZzgqPyBQY3nm7N1Tbsr6AV4Lv1SmgR967kZsTT4b3i2oIn92L34m7JGmVxnJxhOUJtIi0JGbKKfhZgK7DZ0u9LUkEi6j4jLHrnvH5nmln8+N+/fA/VH8/ozJO3BeIt/5ti9qtN30nnp8OqZiaCqIdE8lT4gqbZlqD0/j1g0rMlQ7XYr3hiohURBLkgrzItEKVzEcN3y+uGU239m7YuiU64bJ8BCneVga6c2aY7fioKDuLWSasXhOk9xI0ggk3triV81GLxMgokeRp8ycu1Hd9dfme5fNOUDqgOnPMtbnjbbzn9hfDY6q4+a7advHWUGNUT0Nj80Top7/+TD3SZBaTuFSCyrtixC9On9mmRK6ecizQK9xPvRX4mdMuADMwKVV4pcb+haA/n3FyaGuK+KgVDWS2SqlIuJKLz+fbtNAEQs7cCMsK3SoBS/FhnW8/8k7XXQ5zwASKmL1UQqopiw3mlM4M5BHqm5sKUKj3ey1ocbqmnx4lARxxSdt6yok+q62PIT8AL+ZmGdUlHqmUzMLp4ycGAqXB9Bn1CWdBmXG1hFTbNAq9nQ5CkSx9HxrDtDO5czUpixbWlayhV2e4zxGGyeenrYL2gmhOBMFk02Ztn5fu3tG59FJA0Mu/OMfHxuklw1U4HaDF5gG7tAolweBtzYRQl3f/HSTbHFeKfyYnWJHcpNpfBYFcqpzjwZ/HVgWtxcWWETAFjeFKwAeJE3RxJIsQrgGoGID0FI/2xHQGFPTs3ahBiKvO+kLFroulHd+U2hcYXypL423y9Mavsza6QUtUag2BNzLLGEwzeOfhBQexZ95dRRHKlFjk2WqC8XVZZjyIjTyqK4+roLW7diwAeCS0vzZjtzs2+mcDZBkTlXkTWpszF4W0oNQAwxCAmTFILTCaEZFQ4FPHEGBR3CK1yRXbMp2MXYXL7LIllADuH+ug5nMlxWEKy9dPj4/3p0bnCr8L7DWqNtnFH6i2wUPR4rMp2qZXnuVgIJKw31WiU4unrsorJWFkj3BU+ZF3B/QCnZwnlPvXW3ZXb8zkU2/KOes5bR/tkpCCjT2jKHu+WwVJi6davqFV+IzLp7W3Vg2X4DcScbvjwPUHYP+uPh/17Nzc77+4z//702tso6Xn9hAy+Ctnbmyc/3NsmVXXVduC+QdzkWwZ+kSAbAH3IBIgSctuUfwnqAw9zADPzbcEmITSHk0Uv+pZz2c8VQ9VSckR/b1LmnRRdK6q/JB6k2J+8X90ohLXvOGpDENFTXPqxusn48H0UvzzPJfQmjDAJ1Pz4Ro+VzoHHpibWtDYVtvMzxcwdpvaXkZYAg8SsoftoO/HFUknPFMAzKctvzbJoBpt/QxOvGTZKTe9KV93QYqMbGEXnGykJIj0DTeEmj5DoEfDTXxzHESesRvuEGlWqEqjeu6KVFozDHXKVz+FoN9R7/WVm6AJMPML3GsVcLzPHwBgsOQBpPHbXpfamP5XZJIDW80PZztkvojqLHwByN3eREpg7ePQumEEv7rQFMD+UTG27BElTacev1tOB3wXxOq80zptzSQWsELtYnyMMUF89QAACAASURBVH0XBLzJ/vJk/Z7aspQ4W4slbliQY09qVuaD2f+yzQc0+Skwo2/THNfRm3bwZJwWDTZNaF7GLR57ib49DYPokZetEEYiWY6HnzqfOE9k/lKL8qrwtGQVOvUmfCV6Spn502wJbpcDDDvBa2uTC/oRqQxIaPSwqNnQi2VmWEp9bLXneI5s96iyAvv2zKLPU7i+KaYQhyY7QiX6l17j7utafj7DddQRw0256FTzGTnjU+LJDkzyKbYZv85YnjM8Uafm6jmeTalttt3S27Ymqo8NZeUPnqzpYVFMwg6BXjOc4PV+4XN/AJ1B+pB7Hjl+JfNPI3fCu64L9+fOpWTMMz+j1i9LT2tc35eHLKgTlaW8N7+j9vxSBEHkbsKhFhIitz56lWfc5xnDbdEuu7psbjwiLZmFcSicteoDRvnujoHsSxTFlR5VexekB5NUStLUCkFKpatndv3uh3TPHrvsU/PitrZVOWBCRAAdUryjtVA3NhtRtH5QG0OelBcflNoRG1jFq/A1MtrsU5YdnNCK42oqDfkp2Uk2Upmsxd/sfdPxpa7e8YBbMQ2RBTtCzhUcM2HCW0uP2pkLz56U4w/lxxZCb9NTYVdoXwaVQ1aG/AMcf96M7bO24ku72qlBS/KDCtqNua9PZ51inJ0nMJxnlv3SZwLMCXCnvlYwyD7KReE5EMY1gDEn0UMEb1unvZBsoKb35gUwN8bnto1tgusNO0XFL+1Y90vAYS1GKw3G//bnh7zO2Q2V1/+1eGT3BWKF/jQ+jjhI+SU4Dfdn4kQ5Xed8+6dpt5OMMaEcd38XBt7ADHhS+7dlX2yMZjgdLqJ5fLqxPz8mXFccJf2Az5qiT5lWCDHucgCehQcbX9LR3sDNmSYAvN/ztIKMmcWMq5tTy/DMQj2GFhhjXks6bp55Tlym3TGXabgeoPVTGF57ZbjYE40AoaRFat9U4KgeOa5jFYrS/n5TMKdk95gtfEpjZjszd5jPerLwgxLSEdTn5wWTdVN1RwIQoN2oR/mEvZalhRRV1Kh/VVNRgBDQWSaFO+8rzNGi82axxgVi/Q1UQ35ZMgRNlMTi7mTyn+/2L8Nm6flJn6ZvV8YQBOyAIJ4925v9W42hxJH/8lOP2BKupFrQ1JaZfsFMZhHEJExyt7aTcpWtOa6WeplErb5COwAqvM27FyLYHX5rDPNVQvdsG0l/HpSHBCokwHp6rid3Olcvbv5LWDwyltqDaZ+NdF2+NDONcaLxGAjB7b9VaSX/ecY6IepwiizwMdHhFaNVK3iWVVllgc80LBjrjk6y/gp91HgYPgxqf6gxoKjW01O8jKpdiGDTsWH7AdR15sjQuwHc94i4eR9r4ufQPj1EnCev7A5K3viKlFNKHNzsNI5q4jpUCtfH9/fz9IVmqMdszxY6R15xN3ceUz8yfUtL7e3E0vITaiW77+ClJw777h4vNaNKuTjIgist8UDzHsM6i9RD34Ek2ZNX7GdPNWx7V0gsIfqYpRdGaKn/O32TtpM5zsMg4eZNIgdg7p3CvOnqkhc+v0d88/ouAYYKRO4IPUjMZ4jB/RG8fgnGb99QYn1lSPDKuvNpHyQjBpZgbWCnzSrSayzVQ/Zd2sHa33ZZMugGr1qYRXApzl+UjPPmXY3M2j80oQTM8UTXGkWWgWIgRn0LXI89dfjrJqMeM7vILC3Zw27RAobKuMLwdLIpuw5EeGP9mKsB0bmZjT2+frB9iBCZnlxpyi/sv/iRrV6Wt6O1kkjyOIrGGR0F5Jn2Q88rnjNTAip9wm68KNClhvX1UOR1ktryTDxUZB4N5DmsbsOWKwI3jj23ZbJVKLkgtgyL8onl4WLtIENUqjWCcsjudty13goR1o0Abx/DeJao+6dr1l36zPGUKw5J/bpZoHLlVxG5eb7VELk2GYss4PQ4txZHtapAMJBvaG5CASLYqsrlKClCJKqTRNup5EMs5XXl71lOqzxkHIYHC1zz6CydIWIfDLwuwee+KdwO0Pu2saWFhHF8+9DlCLJv9uxPnkrKLwC/ebG/Pap4/cd//u9mwB2wIlWSP3RJL/BXIM9fdFMP5x8Js6yglA/5cbO4SdmbhgM1w40XakFpt/IX8vTtmtPlY4dXMCXt6vXQ+6qstQGSUuaSebvRvNr1mk6w1m8/ZdrFAN60on5atcYy+yp11/wCQORCbNZqyiX0tuZmQT8M3cYsfNPP+3XFYNZSl9Q/bRawTAo2OBYjhDHcCM/nVYdGG7dg1hzL7xO8JU8HWQwfZP3G37KT4o1fOkXLr4s8izrHXJ5mID17QFzGWonJ1FaW6mPrlAyOkq17MalADcWTheBr79PSOHkKYqz77Vpobcga4ZarRDhCGfDR/vlz3fCU7dnQU/pPrq+1JDyh8zzYicVF1yZnXy5eL/ux6pHMP+uoXSbUtiWGlfrjxO11n8WuvUwWQVm9KkuM3CbndwlyVZrWSoQ7gyfzW5QJYBNB39fCEz9udSnVx+YW5plIS+7ri6wvVRbpZ59k+RST4l2sPwdHUsLal1SQJxg7fuHJsjFhxZSdZFlBiLvGFnys2kqRJiGI90gSVLjBE1aeDdgG0sVV0M/HshUaOk/tmXtIpldW1U45cPuHjgNRzZMefI5aTpVqQ7kisulv/yL8vuqPxJ+T6phgOVfqC3ErSRBwjOyfBpZsFEb78Fhgo+eX3I/pHd2d++WxvNawqg36BQd/KXB5rrHBWNefC7m6gX1EuAH0Ebw1CicpLtss9Xq98JJ5jd1QxT0G7nv+++njZ4J+5ZDHjuNE2dCzjto8ToUEIhkycVS7nS3LNwF7jBAA/P7ceF0X7jxb64DWN67bYlrAHAAvJZZVqK2L+ozLkvr9wwqts1NPXI7wenzd4FjHYlHy28I5FmpT5peMKvb3TZO5jIBy12xP3e1DrSiTTV6SzXE6QDYtY5D7zVhFAtLZsSlN1DTLnIBN72VrGgGc8LVWsOmrODReJK7Q9bNThXN6zGycVSvRHgU2y3tdhpFVoZr5tTR3tXG86dJps+9v9sRPj6nS1bYNtlS3RidRUZwGUBQBbxbO2MYISX1lflWFxZscnqcxzRzyJctjhm+j8ofPl7p6Lcs52iyzvcQTakU4bGrYMsvD0zt7PNH+AR1Us+JEYm7/NgtVX9PPcrqMBz8/3UurAGMA1wy7uy6NkAIF8lp2HXb04W7Q+WUTgvV80tPzpzz2J/mf8/ZTJPh5/cd//u8G66mzhX49I/cd9SqYlL6vueDXAz9gtMOhQteWOstzmzhZS9ZcIZXgvXUwk+Zkrt7A9x2pNV/PnBTyGyBPTz8IZsaWTWv21+vC3/7tF/7t3/7Cr1+vadR5nIwajb29uvZIIMQ2qB0poB7EJtJ6tO659X/iAI7R+quCFKYNCTwdObvuM796SsEMbK9hJY5J7/9Dh1XsCcODca/EL3sJthm3Tag1ntiFqhUeouwHrs4RwcYQUK9Wdvx7V0h97Y8cXw4fi3drLbB4wwyGKxaBZEyZX23cae00VNRQBs4iDJsGd4mZRYOhASOvYETzIrj9M2vK5UXqHatg3ubVkBPbQLYiavXWikp3tfeCjxlorhdrPqE/EhUFq5b2sXebmJljK+MgUapng9sSZxt9KWTEr+MvvnFIQnc3x29t+Hb+y41pkcJ0N1qUy32Ihq5l8nTXBNSmCo0QVyUOGm5tUNcUIqYIFd8OwNbm+qO+rnQ/6fTn47Z0/5lpuug2LWm7pCWhjbsVlrWh0HAVnKEjnKxkBxRTnWM+F2HZoLqsavjxbaezrcmf5cbzAG8ECZvTwpks/b6nPldztfpFYAJAbzNqAfARigobpj7RaM2QXR8AeasWf+vtA6ovJNqzrrpF86TSKcIi+cgalw9kC7wX3B89m7r8Itzqh50lt3mez41doVCkWaRLL/BcZcm7xL90z5jSZ8lNYcdq+rjt9qFlOpLrAGsfU7sasCXNjNTpfb5wvV7zOGe58Ndnxsbo737vc3+EuIwHl5bvK9LOQ6uI2k6CPOvqakdcC+z1acYhDUUcR6IByEoGc40SgnDGlxHZ48e5sMu5CN6i5R7yKv2VNg6zlt0xnM/8b8aEEHW05X9637TpxC4aht6BOhvcMu75Qfd6Gwykx5sKfc+y5eRXMC37rVuKuXrKgjPOgw4viEGL9Iornw6RhqEGHAVmXBvH3BIZ0stC/OndJcCMp7LrX5U3VpEWwtyoETeIdQFFv+Pn0LgOJxR2Cc3wibadytA7ZwYTo5yfTXXAUaNdzrwamLeEmfKltqdo8bY4QWZbXYbwsIqlUwezG85KOFj+rmwVl61GD/5YBfUM0A9859cM/xBqX8p/r68z+Uk4VBnojSNJgCUU5Z96vpV7Tj8bsY9K5TtobT+ODpafVbKKNF3yeF/sbQFWxg2a9B/KN1LXOru9UYAUqRXjIO0IFzA2ZshDO/c+e3k1zpjv41biFA38oxXCeEnA2KC2pp2eE1vvHl/o2CpXAhTp0t4tgmTVLz9nlqr3ND8USfIM75yq8WfHdsfyur485znkcuYpJwPo2QkfEdZri/IKltqYhTr+YdT3EPsm1xWCgXln8vBv9M+Lj6H4DMXnHtAbeTf8RTFtskOEEAocpObj9hwIPLH0k+qYyq6kGrwH4aY2eNX6JW/9mrd9wTZ5lS6I/Hv8tL0vWQg/P5S9qo7WmeUx783jqk0jntN0g+tisCqnLtnpd/JcYb9NvzX2JAG6SSOsYsgrY7qjae3geWS338jVcWEhZn+HN2dOXi5rm5+2EE1yPJQa3jHymGnuZ9MaPnHdElkSt1KM2sCHfAFmj1LO2lSvI6wsJrs1mC1pMojUiUJtpf5yfHds6oov7ofTnikJ48qxEqEqX+6HpQ3q6VaawxzCO5q8oTaJSBII+iUHBTC3rI/5zleOv0vVxvDTbxUH7xb+iIlM3Pyg5UopUYGo4Bos873SvtEYD89WaO1TQmZoJcc/88jxZZN1aSB+isCuGtml/rQ9B6HWi8emLqqrTBlYbhQxVscfoyrE87NCqQ2UWe/K5TR6rD4VqfHiqqVpOrTioJPRxj3lqHto42a/4RZLpUnGxub4TYOZaOL2QogbyzmFL3w11k9WAMRWoGgCfNlhzz6mbLNOoXyYIdqYA+inAWX6iPe2UEbPvzIYflS+Koktv+o2N4A9Q6xV/kkjet7QSEUiH4fr1vhQFO4NjtgIbjiTIOv13pUCcREdW3wI7aGK8Rn4f/7rH/ivf/zGf/3Dz5VbiHB4mhbapn8rv/tyKHcw5E6fok9sAPv1tFoU2r/CC5uvX8At85nWQbrrsc7g59flWfqyhQO7gGP8lvH1iO+/LhIKMGn87t93H0ihSBkSL0DEYsEld+KSXNnBOc3T8zspIjnkL7qr7srnDRRT3WsUUgJQ1X/mqUgZID95wBBdefFwbncH20hT/qrUPtBZoxtn2VLQiXFVhnHhnPgY/iRGZrM0JoeLQMfKo31QjeUiiZq3XH2rAPszp6KnI9a+8fs35h/f/VTLaux/24ACvkuIn+b5Yb6lc/4Hnj8G3zmQf/epWJ845Z6KI2xO3/Drd4zou+mqIxDlE0127aoaxPeIFJ1XukhDElVoJOiKcPXZhX1wQzUmnjvM/7DDFlH3XP6J3O8NnRjyjo7bfFVUE3GKqOT3vQBaRP7oJbWU5g0Vq621K9Gq9GlIl1rRDJ5d6V7YwmYNfVcHZ1iePWF7yHgudZI1CyC9ML284+N8PBn4//37P2xyNO9f/tzTkxlHdeCZUQL6IaPoDe53BerMV7GsTp6qmE0/FOj9RHlmEVP4TSHv2S2NA7F37bPp/oysU8t/dn3RImgVNbbohBfzpJStM0tZbqetFtf6Cs9q6ZQnzgS4C5xXhfi9wjiTzMagx5v6V1rajsqAGfd8KbH3rFsUkGvSc95KhukV0/f0yOsoTpSsyK/A9bbPRs0rUSmby5Ex6+msvkZ6GLy2UcuP3hpQ4izbqGYXfCRc79mEIX78lYfPRLJLMcn6WYYowtgNWE0aR5VReq4Y8O72lKcWxGVjinWurlCJkEwNZLiF4+fGshDKwOLEApdXxC1/6h9t04JxRBlbZUTHuYhXUsXbYYax4sqj+NRlp3NeH9Su4Bui4u0+jS+fhHB+1G5c4oZ6FcmAyT+6FhHpWC/PEuOoZuh9K/jf9Sxy78RTNv6DtlVvSshAGrBNLm7DCHKbfhtJJOCcd0ywzPhZorcC/bV0iSCPtuKhWpZK8iimGIc0AVOTMx6yUgNKMl+5fttTg8Y56K3GSSYWHZbQQzf5UYqXCE0vahPKVnfIK5IdPLEMUSw5iZCdVXTAJug66fNelW9jp6dZQ6k0SfuT3Ifalnw9VVsXxuC23o1zPyFFaM1CLlWBamWRFD0ZUDuC6vpTThn6d92XOMLTWADc22T0XKQsVSVutIIq7nsqBSWPXSjxR4wY91RGUgRiFeTbctWu26naQ8MOvGJ9GqGoJtSW5YgvAjqNwI3Q28DQ9r5rR5oUdDTTQLU2ux4SFgKwcz9lyd/r9zGw+OUWGZNU32Upsk/7cMg2uj2/js/NY/VyPGxBselP5Y2dLGwhuF4X/vr1hl+xe4+B8ZlW6RhV3fl/lHabA1d6OkiDSe2AqDxPNxEyZjUHYhjHUSJkz4DiikLGIeYEVDfMtDJAGLNuRpFSTGJJKNWcKKXROdtAY8KKJW9lQo2Jk6gCQ6GXTI+pAygsPusehBYAM5CEKqVuVOI8jpvVOYFU66/dpkZ3nvpmO2VFFv0mSOM226mYhPdJ2ZxUadISeQ64WNwvs0PBA65wn6VkafdmnEQiqa9HyRv88U36f8FnY8D+H3mi20yf94DSU7EuLLAaP9oT/WsJhclx57qxVrR5LxvUKh7rjvq5gbN0F2+CDMtzMgefuAOgGs2z4XBdoo0L1C6dW3QJyIgkdDN9NRszgxx5Yykv9FuJtif4Xx9ZlQJD3OBVPbI04Cqy+SxhVJtn8US11KfXTu5BfV8kqXhNGgI5HSQaAjXtRf/RicxGgh5pv9jziyUhmQ/dVDiV4QKCnspf+LeD0UxIQ8mE7Ouam7oyjnRiNHQAdzZlxOpa0mVl+LUh0hldC3Zr+UBaCo01amy1hcHAnCjNo8m80DDUPf7KP7yOY871ewi9EgPuuR9rRAiHsDal5HJPEOWmxkgRRnv4JtisbG6OQyqMTdsiP6hLqXlKGfZL4C5ksX4rwnXTAG04uWfWZZGXt/CB9/uFv/76hfevF4CB3x/F31WBz6ejbT9SWQC+XIcUlCEWXHgM9AlX5B+S+qgQbeJdcDbaF2PWvJ8CQDQPtJvdk8Jb4RMxUrx1KNi7K7s887cas0iDOQo50aXgy4oz6orVB90Oh0Fyvo4rLzfbFN54B0NHamURxfB+8q44jGvPxiIl+cdlgtUdDJQbAMuwD74wbUJ9x/zXZX9fpN2tmxTxuGEp/iAtf0nfCuKmuDcwV9nQx99Zwv/0WS92aC8bNZhZHhaTY1VCS/4A3cRqH87+PcOMfDLb8B3NBN21h5efwhiWEK2eKL6hWJIu6+ZsL+tjvUks9fL1s/9MqZDczEZ5xLyqFtXG49NFFsD0CcC2qkS8wu0pxPHWpGm9CxcL+vImyQSB8AKbcBXEKN3A23CMKC6JuIelfuy+8E1RJSPHT0TwL/1zxEthqXkK3M0gfECwx8BEWJk/yxGiB3jbkbX52GZkTStaDEwHofvsBk838BayHP6NGPQCXILX+8Lf/vYL/+t//Tv+/d//DX/76wXnqjRu1wOy6tA8P/qY6Ztn9gEww11APBRcwLa3UD775ycivcjO3p8NgiwdjKbZdvDP+OkSg9fgt/Z3sfONPh29JVm3U7Ofw1s+yKYOGoQ0fkQuXHLh9X7hr/cbv/564f0SvN4vs5cW87W9agjomvacP5SA42JCRVMLRFOY1srIu6HqEh21b+qQpy1ipxWbggfAXqbIwm3bian+myw29uDUD9JFXLa1Y0n1a3hJNXSCsnKw3woJma2wDayNjlxGkf8oYLfgUDAbGko0/Fp9+AYbKVSHb53B/pHiRVSVld+ZMOwyc/y+yUFKv4j4/5z5+a8brfUZzYjd8OmzuGZtfcjzE0Wxr05lV77xiYJslobGhqV2dXL2pwYX++SgM3+mGDflFBFv/mdFt0r2D2r+RiAX4PTnD6r73v8JbN4W/pKM4aWOjY2isTuNsJEL0hngpBfs90rnb5z+RfVS36d8HUEAitTaluEP1xGX55CCE7x4U5jrP43bbjAUm9gyTMZMeE8itRZ1JXzhr79e+Nu/vfDv//4L71+/8Ov1wiW+LLmn/p8Ys4Gd8v5VX8qt7ZSlVH871LQQC/RvQ1BK3yU7XQXIv7tGPeDEM+L4ov5tJ1CaEajAcjbLpjZu4vzAja8Zlxp/IDDYCFnmZf1p9pIUDy9Ql+8d52bclRKl8H5wd5x886vOpeD7942//+M37t8fW1lIQOs48w+dMKs6ml9HbYMS+QHoaIadoOCr7b/piNCYTHKMWnYAG0cMnPnAP3v/Cdhrv7Qt8GJLOnGrfWVyajFme3kh8BvOsTqmjUywKVmh2aeS2Xgn9XI71cbgqEOJO4kLUVuYBcOBoCt8y8oGbehJpbYVg5ar6PIKlYmW/Lt2EE8v3715rc2nf0/PznGk9Z/Ejvl2DIvI5oSGb635gg4UxTmW11JanbC+t9XXCNVB7U/PKPytI/ETjAxam8POGpI3iqYem7xK7LVd1aMClDeHHvEOwYxv5qCKMtK6lidru5jsMrbcGlBf4Ci49gLFkSjZf24m5gkl9VlW+YIImXd3cgE3660ieF+C4Qcd9sGv2UGRHALTMWwMQnX2mD3V+r4U6DzV1tTytRO0FQNFfW1nKqQE7Ncm+aD3TiNVe0bsPCZblFjwb9A4ftD614O29R743Ir3e7bh1xv4/RLIh+tamephXrKdTO0NX420zbnJRwjLZGK7HrcZlWWA7Rf4T3jkUD2VTQVR07zufQnp+SJRtp9bbUuIkBAefTwUrLZwnzpBiyHTRiO6E1Ms6xGiNm+84pkJWLMVqc09oriuNzAU//jcuIfGpPv+PW+zQeTWEE2ui3NR2XJ4jGRBIOWfUpp7/AKGuhFPZ8wG7mLt536wvNBcLqdOE22bstTaEbGDFGZAS7FCBVwmimLGtVo5rn+2C0HPGDOurBiIo0iiK4IYLEYg8GIx17s2aGUZ3NqJ5cPEU0JpztrEiFg9vhIKwHtNWv3LjaRBMJZqzOXZflXJCy+Esl6J68Vxkk7UIFjWkzWkXGrUKfU/PXQU7y6VYD3AK4N6+VHSVA4nYMDGEuFTjp4Kg5FgRVKjU0cqkrtA26Kx4K5Lm7rcpfx6ptqjuoqhc9Dp5RspDONZdnAwyQDAb6esxWk1Z4G/PinHYxTty9gk7MxTuuifkrphyBkJIlZW45ul4roU1+vC79+jGaVtZcTDGgLmCceEDSjeXltuHlgz8WRfMDcPtaCnhVGYv6ty1PbOBXpO/7Ey7eJ8aA+rIm9Jf/gsRldyHcpqm7Li2lbYvp0OEV0BlNtfoi421vpTh6ILbsXAuAX358Y/ALzeFz4fLfcsLwPHh0yMvy6APaZPqTYurtByQ01rYe907+sFTBMvTeGu9G2VFTqROvF29fpweDr9C96e9ipJrtuyZF1ulLPkWBDaKcIQUYcBsDNiF/4nOc/49hp3olrKmLecynGjtsHBtT8IUOkf789WS1GQZNwocH9uXC+B/v7g42aNADrGXPGAQi6xm2yYX9iwFDtH2Y1ZHpupMqqcnrCK0YrMFGZoiLCkkZNLDNmBNGbb6ZUuaakP2HieRiMb4I6nU2vm8VMPJu1GrM54TDvImDUofvWPZD3RZm8Ed5HlmbuRaVOlznCAi1rifReOhwgzyD5OZqM+K6RnizKBXkIbzQjOXrcAMSmmjXQ7pVA2lW3SR1fSYYhQg5G8u+CxCCGixs6II3mwEZcodFnemdJGw6PA80s1NjLPoRDuW+O6sMre2Fsf7tcGcIvGagvUtJO8Prz/CMdWA3VVGpl7+B4zKzbOVr/WT+oXwG7+G9paaS8+jDO/yw7UrnBF+KT4Ct+xzCPozADi8sfLpQzyMSyYYzZOXVGXt1rk/NlY30wf6MNbMInwegFj0Eih5STWXxPvKmy3VYfColcQ+G2B8yDqBXTz7YkpHiD/LNc3AN018KO6UIB2nivZfghvLgtOxvr7f/3GP67feF0XdAC3mvfKQh3WNlQ8/FMXja6q1k1aP6My4DyU/KZD1x33Da/HZ7tsfMy8zftc+kkJeP0EZZud6l119hd+7p7O1oZNV/DGuD5bX4ldAfyI7apt0Z5Nb5bm6JbJ8mflLgXCMAvvoMFwUqh5aiOto2taKCetRcLTrzx6KqwkSS0USuzKMRdC3Iwljz9nyH60m5jBwBulJFq/kitNQzKcG+5hRBSy0qaNcjRXpi990RrjipsQIeXTjFkgaUvLm+XoNTJm/VSZZFMvUz1RofCIWrl8Wr3ZxZiNH+JaMq4LTnWjAaPwW4LfiWrksYjZLPWJxOWU+HMpc8zdTseIp9+KdKyD+iQK1md37ehPH6ffc45eF3/7In03zqzlKZOuLoB7gT9ra8/9sx0D/zw9f1T6S4Y6ZdRFmcdU+QDnB8GM1G0UnmpVvuwabPGwkAG8Xn7cljGunz5mMuL5LN/z844QlKsK6d3yZREOzieNVtTE9qO+doN2EWaPjL2r6GdZF6hLuu6S6hf6s0y8vSFjMUm/IFiVDOsoSj4TliGq4r7toMwP8LG42BFHFMyWPhnNTKti3mhNW5ZTdiku9I1hRIyJ7fpNXyaedcUpd22pRXfE7i1HPb2z0yX12l40kVc8MjeueRSO+08HVOP7SejtFSGX3+To3XHAb2+y7oyd/Fts53K3tCRf7Ixjj6F7epwZm/xxA2aoArdfKHQu8AAAIABJREFUEiMQOzd2njsL8Hmzacys7fF+VdzwY6yCV4lB3PuZHo11zWaeOev5M45s2mrkpTAELswzF/2EgTkGajuPxyuFJ0XmyQdLCEOjeZDUDEcFILUFMaTCc0IjyPlLyJxUmXf6whRODBWNPlbJtiQ6ujFmM3k57YHCB4Tw2ArF6E86ZaAYt1lXL5oI5KDI5KoPhfBCoyHDm8YskP3aHy6wGd3CP1gylDUZqrDqpD08l6UPOklG478GdhWXz6KmLEVxPt228bSG/CMDltFSTV9SCK2fP7vl7FXHHd5svJeN+azCeNLxTU6XPD7m9jjHqJCsj8Vo0LB4Y4XSV0SCXTxDdyU3PSIm/K7rglwSp8y4rr8uweejeAmgOm8ZvVWB64LcTjdXAMyDbmwe+MNyvEU8jlrMWvYySTxX/i4MdaTOSYFFCuEHT9LOB3yek4qAdFTjj9d+6vJrVdtb+Z/o7NvRUEoZqHmg9gaL3dfM3gCeZM1RoqyAZx/OpcbQSRENP5qM2RhCkv27OfJ0/naP04Mi3T3iJ5uH4YrJ+Or8djXasGfs+Xlm9cR74tEBznyqg8wATlZ89bafBNIDWv0c0RNI6R86oJ7m9CzUTAZTylPrbsRmI2NXfxf6Jf60mlS7p6RYte10plJyDEAwpkELwA/k5siTPIpHQg4LgzRBPje0SDayjDEp5TPlCoUFYC5Fi4cr0KYIAdwzO/Gc+a/AwuNmNYwjNV63ooFreDUcN8ZHgYi/I9uGQzklluFp05Ib+JR30r7HGbthYGaOa8ti9CWgwJKUquPdL8WIrnCKRxkar0LwI2kns9qeCDLAtyKp877UjD3MzmVQXFgh3iaq4xJcVL7A36C9RYyIWlPYsKdiWrIUeFr/0wCfx6OnLkUPeG9F0qHU2g+7hiDGQgeauXflND3UJyQo/l2eslZhkR9pjNX8K5DlpEiHebh4QHZW9PZJWgQ7uN4neXd8fOJq+WPC3poS0QNlIFQwXu8lOo1SAK/rwvWal4wIfRP5YNxTht8jJ2bchhbAVRF6eN4u6KZX1s4dhQJ62TmBsPt9PQZzYl4MGatH5UulfdDRkSXFM4LdMCmq6AvwXVotVwQQpx5HpeUY9dXTh5qzQnFEpQ2JfUsWg+GH9Nx804KLHkC1rZVWpsTiWdLsXlbET/hySVfmubNdALzMqBW7m3moQEYSWACMuF1l/qcaZue21wxrw8sK6haAj+L6vWZvVgBAVsz+meOmKTsHvAjOOgq2Xk3vBIoJzaSOxwavIxO2sz8jyT5uDL8JTgLZEosZkjbrXchvQn6WsDhuQ4IpoW40Rs3VSHJs1MCFfhDmIJc3Sjh76YTiXRx42kaY2vVzCV/8QgYWVRSOEMZl4LIas+G9dCXj7B/eX6JVkETj8oI0sGr/zSMcU32yf7mPBS8bt+0oKHaSjFnM9qlQbK3R0psurl07XiD5ZE1PY7F+9LjeoBWwnmaQVU/JtNko6pInlz/bWN1NbvkTe6cdHgnHqsEchEQ6p9FBa4n4RkGwkleGsBE939X9Q8ZQ5vm6V+X68LYpVJDstHGauLWkK/1+3qrI/7w5LhBL2CyIpLa9S/6VJhVGWcjDRoWwcKoVHFDs9T7T33ky8dA9XwYOrpuVnJhbRBris2tfcs3bCnWYHSl4vS683hfe12s6qUw2/HX9wn0P/P67YlwDr3HhxgBegH468/vPtd4dfu9L7K5yEbzfAtXLDNc8y09lGq5qy3vagLh35F4ufH94Ok83mbGaA6eOeIBfNTAVXEHyEpL27NoyH8CV76f0zWeN/+533P//8zSK0yunxKB43H2vuw6M/OwNvV4XINdcilBAbzu6K+J493HYnVK5xHequKP4Jd/Sf9+ior6A06nE1woInye0v8h30fNO4+PzmL1qgz4EVhu+TTEW8upxCNV0NjN73oyTdJs4PY+64ORL3okKj7QUkNOos+vu+BQxLx+61oXEZqz4dyHaRLYqVBSJPHuWpkFtxqz9TlzpaslSJ9Owasi5AcRaHmOZT1owPFTWFXit6KONwkmC1NZu6Mayepl1mQELp08bvUokivq0tNNvGk48aUrSDTpa7dkQifjmYAnuaFV4mrZQkrEPxS701IBpSSdKbrNLf9vIo2cF+K89f2rETnboQuks747nJDMCC28znIe2X8/JP3l+srbMI8InZY+90mXi1yrOGX7muP2W6V8j0hiAiobn9f26zPMquF4vvF5XeGQBxWWr+e9fbwAffH4PXCq4t4T7M/5+X6+JxHVdELnmzmAbdC8TQOMC7ntuFHKPw+sleF/A56MYQ2e8wxddXDXhmnO39LQtu3ldP2v9sBi0/rsbRD5HdGlmQuSqijhUYtMJi9csZX182BqxEWKxw3NjL/+P8GilB89sOUXoSy7b9oZuaEu/L8z4mcl7k/EBYLwGxj3sgodqsLoBUOJYFwNT913NVrkrTu2luWWNJkfB3pWmo7YWSC8YDRTOx9fX7sYHNvxV2usWVOeyHzzbicnah5lJN1noRc0QYIRbsVqd04WYLsaFwO921QpmQTk9qOaJcGNU1qVitmXmvVKSdxVrB+gDPdva5VWSv+3iNfsULexihihYfw0BrjxRIc+/qScjLN0UBBlQudJwDcliHlQLgSgnLQDmqsXcdEGHjvTmz9hDCz0TOym695MZ4Hl7mnnUhYlDDWjs5eEZirlnI7zbQOz6htXPAJZJlQ2UbOfkq7n5zbPUcAyntBaDFVBcVUa4nHceo7AoAHWPo3g/HAxu5v4lbWHQ+lcAbXXNtKbfzgo1H+mT7PWpojQ3x8Wnb6VC5p4Ut0Ps6T+VY6Q5/yndx1D2Spzhyq6+JphU6MNJlJZCHvee/bGeLESyq4Ccp6KsSO1xqw+1+gf5AqQwi0478Lp0Xl5zyTRiA96Mm329LgydcqqE9/F5X1GNLqFdcYMht2uoeWRfF96X4LpkLvOq3zrvXtgBvaa39vVSjEvx+T0wfuvcQCTZ/mN/FVpIfS/KgJUD71ZtZVagz8+qOVPALgnZtblBwf9Uxuq3BdXlo139NACW6fm5HecsJ8tg367vT+2QZfWt5Kybq76A2iRqhLTYnhlc14UPAB33VCGi0OFLybLyS/sl3bV0rL6KLJEdwl+5GdLorIsyadXybqRdvtvq654dG1xZW285o/yNACytpAKoNkL8WJUWWVWlfi/o9FiNWeblp+4KQxQIQ6khsX14Gb4Ysy5LWLcQ3Gk4ST/LBkGMRTmkwuHlcnGDsWwYUwMhZlQhC4SxIsQfaczO7sgKFEQ3I/U0zKYx29sV1TgeBm/iacaOGbvjap71NvZtlJF32PPwWHGLkwwpDlYWzkPFyLQbwxVlyn9VZKxwmVhIEeOpPJUM//Rul/MPFvmW9ElOr5F7oTaiCS2yr4yhBF7Yp3uNj8GNhk9ZWYhGfXl243P3aQ+oSYnHcfrtSSdELXkybJcVt4NMXdfJjucoHco7/PpePqKeQiLckFIVy5KmirvOWkCsOO+M2C3ySNZRfym9t3nYcNymA8sGrxjWOQHPMJ0cU2E3bmRCzGutfbE65WivSDwgmc/7el14v8Q8Y1bMZq/iYsRiIG4M3GNg3InoPN+wVrZV/x4rhd7AzWt0yoYpfvqc2q/0d8O1nS9ZXmr8mjnXc0H3lbLJ0XcVrr13QlySdE/5juC6Em6fS3LLq+tPKV9OvaMzPqXbhs5nOmNgX/U4VlwQjEvsWlb3aZjR4AVXLBtOG2GyNMBPULBPi63yzHXiCtQV+bfALKnCaRY7lHHv7NLNT2OiWFPPuETeTdLS31abafBFvHp1hddc9bnnUnM8MfJuy7gxBgVtf8cObG/7rp91JE4hS9iY5bI7Y7YYXVx508Yh3JsxszFmfZ9QxJVS29w4klCGEvLS6aKFptklTsCpFGbD58kGE5YCwEtmklcGQHFVjzIo0Xg18IqJgRqrSxrxqsarmjHNoUutg688bQFwg713YOoHP4Oye6DTsWuKU7rJ4+SozOb0SllCbV4Gk8Uos5KtR2RvZQ13ppic2wjMDYyGSyQyT+nyX9s1dH5k89rkwtnoO4RSLWEb9alx/2uuZV9AS8vedN7v+R8Iijzndwf/gPD6vgVhfN0KdPWt5Zds2lh/nWKCTwZ+97ut5sNPGt3q63pvaz8S55XJmcnToRgXgI9CXvOkJAD49XqFYh2quD95gY1cF15QAAP3h23DWufOK9tPYni/LY7htTBoju5pYY8AAnHgT0z5zQzoPdJSjWlFtrkfIf6Mg1ed9JSo2gfasfIjTn9sjG8hbbkscnyvQ8ufRyP0AVpnuZ89rlRosI7p1b9erwpQjNd6exeUftbqJZ/CAtEJNClTYSum7epkiOen4dQMwAhZIUXdRGRVBEWI/+D5iTHbZ9w9+eGt7y5dx9IAXxgxRvPMchhFge7WpxsRG6uxYeLqoOIgca5sVqCIMIPFjkrYYcxulUwas8X+arQAgLydS7I9koUowi7bQpu+wpjtigZXGqil+gvFC0vGkN6wtqOecNDbYGwnxj6e7svYuWEtV2OcekwlBaHipPSKYjUkdU7Ke6Kxywo2ZoXpO2VI3RBoBjA0Crjx7VBi6BVAyN+7pwQoU0N32X3o+sVBS57+oXcGfqbwnp7Gv38WNrpW+g0NjV4/ZdBm16406GFkf7Lx68910QMQX75u8rlo8y+ysyP1Fb8fNOA7DB+NIFF5wPMHBm/JsdG7xfErgAzFuASfe5i3der0SwS36jwrXhV6Kz6fgXHfGDrsEhKZMbSYqz0/ssdpVfWdnbeOymZXIESUWdfDtIdPuneECIhHb9UJY1cCXP9ejf1Tj3XAtnb/GDeYIQZVP07nn3miTj5CTEoK+ptsv+5ga8vWDZAGb5lSFvNkW4NDyD7Z47SIIbUrHo0xhipeOmNrPhi4ZB5tNFzx6rKzEGftQbj4AG7Z+PX1vnKJpBuz7mmCk4OOcepGRVkaduV5tXTOn9qQ7ZqFht+33X434R+M2dqLX0dvvh/GjR0etRizcfC1oHotO1puv6Ant4Vbyud0Y5kdXWAf4kgspLG0eGYDHhupzTMbdWupiCe3qldckpCoOn9JgTvZpka0ejumc5ONWYDIWPqGDb2knJY8s2q1fhPGOPsyd83BDUFB3+FPdCf8ePPapkvtxfK6cWloxyJLZPM6PVRCyhAT9xKDTpQoEwvioMYrkWREXr47LADL8Xyy/EASj+lOP4XyeDtZtiRxICPJVziohVCUth3H7opT5UrOcpYiO3OW9csqojo+npe+KbWhPI4n40PwlFvwA234qNg3rw9qUKiPtfT59yrXbwwYOVSj3lUCzu/G9V0k08uMZSfZFrqqbZjWIzccvivhJuU3G7MKncasIG4R9ZWN8THjVnVevIV0PrijdPq1nvjZcRH4Odr+vIcoXpG8oI6hY27mGoi/56p0AfSjVU7P+AV9AMWTMr835Xkelw4h69vkXejgdxY26sxVK6GJ7xPL8t5ke0avmAXW+nzr3n/qWYCehmIK3573R+csEFE1rvK4QnGMz42BG3K90lBUnbsityjtmEoDo2+PyPTWXe/XvLLUFSeja0IBSCV5yVUvlThKro23rJwAwMaP1jjRHxiwS3V4aHXQqqp5xmUtv+YqT9FXm6V6BBlywJrAVvHYzENjrC9io0+zDaoReVDl5cPGmPXyyu2W6PeCTrogs/HELzO0sR0pRXBqjP9G+BsQ994WE1szFpWNoUu531jZJ/1Kq8LF6grON2kK9FKThbNdQl6J9EwTbO0xiK7kjDTe8dGPObJE1SY2TiA6TquiHRX60WSOlofIRiyr1qmYtvQJNEMZItJ0WFsoljrQnsiW8kmUZog0OlQjlhDzj42cXE33AO49kj+QD0U20qTlX3ieQgK8Hk7aRdXnp40Rq7oq9//J56Eq5b4s31Mf9PIruFytmE8LA5HyJ+wtwYY6eu71MtLFxrTDFsEw9+ZwJaOIzWSnPj2S5niWmO+RVUznxazr85n43PdtJ1pNB6jfLOqHCqxK/od8Ts9bh+KWkSEDoWABdSP2HviMexoWw04poKO2Fi97TJXp9UfobJj/kGOnPLdgdh9dcPfP9p/UM63MBgE1BX021psRGzywMQ5KOn3bSsbT+yEZnWbcnpUWvQ2ltJBC8PZpBVXpRUbcMI+UFRh34i+C6Y4SxIxuyjg1HvqDMP5Df/iZyX4X/ft1YYx5Y9T0QF0xefG9MIrZv58xcDo8OtuaP8Q30ZRn3wIFNjHXTW8+DKLz0HclsYt50/Jrr/DOEjtZjA3zpFdZsvUCMjlG2ikgC3xhY7a3TuJ0AdoKlPKG5FhpnxAPKYImubPdvJW7pXeO72elAMwNia1Gnj/Mqma5OD0hh48ZMZKGJvxbs4s8b1Zv4ygN4XWO5w1xK1OtqTIXnO4gDDCU4ngRY0+sP1KQ8zKwLQHbBovaPqepn8ZwIc8X9lZJYKke3xuTSwXoAgoV5UWy5FcOpCVeLz3i8cKC4tX1mUIfestY4r7bPpcT7ACFFYa90xAIPjd56eESyxCJc7789+bZDllBWQIsjJZ/Vs1am8CbnpZ6mNzwkI4dPNYN2lIf6gdr0y11Hp6mv6Mubbnq+7KnZQ/14ftZftb3fUUn/x7bVBGNhDnhuyygfW6gnmcZXGIbKHnGSax0bo/u20Okm2EEJkXVZR2AS3GPe4YaDPPGuiNL3RmYntkYv/Fw//DvFcv3GPN8r9saG8wqwOdWjHtu8MKYRscwQ9YROAEOIsX4NTb9mUVbCx9eQZ8KBrrJ8BP46K9dgS4Z8pX69+uzkKsJ4+fMX4D+mMCt7J+Vcxl07s8mkMjt6CcQ6OAcCmDMJbYLOUFgKH8it8hE4QE/7SuJwT+G4tevN9SMWrkuqL7sTNs7+PZzDxfNEFGb6T7V37XjF+R3Q4i+PZwN8TOgP59NnpHa8W380i/VVWZZTjMAsCqxPiakpmlPy/OI0sDzNK2eWYoVKcc04YsxK5zPTDrzJi0R9Np+uvdRKG5zsXVSYJfzWjSTlg1Q3lYvx4YtV6HJv/aD2uYKUey3w/L6lLytbVw1Y6jr5gnS5L8bhEvfcSEJb030nyZ5fDnSx/JU4hbqxn1QKkn+DB+GG2Uc3+AHyQSJ9uNWnRZwHhuV2EUcy0ZBZAa2YevRgo00P3r+Cfn/gyIj+n9XZgOgzwzC4/pU2T+ju55g9QH49Ggp9RNM/kgdLQX0K4CjTYeNEXtNHr5EcDk7q+J1mZ903HNVIuDsjPj6/MRxlFtRqw7QWSmGCvSeK/thvFqmMb2l1N4/oyi34D10ADcwbrsY4ZoGhgqg98A9FPdtQbpNUW2b7wN37JPXcltTdJO+yUKfjsHsT7ryMf8PFT91DP/a6qgFEVe+m/r/qTHdhCALk6/tPkph+uaaFHBPS/dse4yT7PiDaKV6Y+hrReya8bEeRxilT2xy+uhlF/ZhBTKPnAOAv379wnUJfr3ElmQE476gUHx+35B7xMDJm4+eUXiUVAde7jxjan2foTzd1N1VEJbBEaXFEPMPfg6p8y2FRNTTG7ysGYTFSprfne1VUWJKa4VmfJYvaxRuGFDhKaq835tc3rsxS8p2MWb9Z2zcci9jbgwTIXxzmCSAYvA1Y1ZIyJsM5fMka2NRjNnLKKVkaB+NWesr5aO3xKv0UyPIgHaqKsVAF68noYZKa4jjhQhRUPBpL14XQVrkqRsYEjQU64aSNc5fpvo4g5NeqboAWTeKZbN9Y6rSJxphIrFqk5TixzuKdEnvT2FjgVWz8b8xkfPiMbLBS5bjHZ0sq9HiEDjGusrHQ4mt/JDebYSUlnwbjO1Xx1HzSGmfABbptlZWjur78VPtmjX1z77v02icLzm6ftyYj3uSFzkmsGMsr1wt8TC4+547ay+5MWg1lPmivRYsnjli9kXaXxO26jwLetjGLx+XaaxSaAGAx05YK1ye97gVKsMGiUA/XokdSj10GrbmGvZl3iPEZeB+w2lAtj3lGbomsr9S/tDNsf8fc/+6KDuKo4uin3DM7F7v/657deUIo/0D3RGOGFnV+xxX5Rxhm4sQQvosBDxVWNFHKPZLejcCvryi/ny8KpJ4rO53nZ8N66m8DxT66DGQ4tMC53gsbsqeKa0YizJtm4sjH3AN3UHnJfkLQ8dfSPlE6xzo6yL89efCJVvRgYF5D/z9cwM3Y+jxdRJus3hJeTAmkrjQmazF8arkb/IcdDWllLGNh140hEWxgkTvpm9vSLhHyBPDigCkD/0IBrTYtCfuTIOtHr0a9yhsm8CMbaNxU6FxhXpsSeahqpQlSxHMKo5deRnkG/FriYqiBBGlaXKdAufMVlDpj1RfTqCkG6CMTWAIWCYjJi/2soFovNWg0miWGCTTj9PaQEPlWYf4qiM4b4MnNPMMymlVcsPJ6fWNjJ+wPVisJ6bRst2ju/7q988MdTkhyvj4ICQjlVknMMDskPDYAKlc0svWXBVkJg99Iwg58kYpoPTENOo2JBpwWtL4sPqFnTheVYg/lBw+APp08d0Z4JJ0WJ7//UV7Thj+QxlPWDj32UM5PhQ/X2bYmpmdJyJoDXE9D4CwfjMIFy2v5+B1auE0PmYD65pSpRYu91HVpqGw69SkfaT/J08Q61HzVRc1V2Xplyx+6c4DBKwzc6cDVQbW4i4lSsCsFxFbArQewDrCm6vxs5QEybxafZ29e1Bf/pOaV6qJN0V4JMrM58reE2PFqdBwpO9ZEdWyngdEqeAwEsMHUf6bKtqJ0XOUOSjkZdwCeKWYj9OfXh73JzOsbhm2KKVJzduPjeb1OtAxhF6Nw+UJnsvrSrQ+3BZgXe27LsKLGTxfIAJ+3jfGe6U3z09SDk2TEp1dn/T0r9TRMjYSk9zCGZlmUFCrYwccVc6DQkqzKmlbJK1n3SdFWNuvMmKuMIahW/no1T1fTSQNzDqEMaBEataKhg0b/cO215JnpisoPNNY7cBHik1lmFf5yTMLDr/JdalyqBoE8XqqTl1VacOy4beFTkKisk/BbAaVOQ9JPCl0NbzFHIedOmVMA8sYEsWFIuJBmUWFywIp90YHepX4srWapdCtxBD15fIgMeXP2vVen5FKm5cm8msxjFVJWAbnqX8ghcSbuqzjqYzbbbixNM3TBCkr7fECKsYZFRiARJYhfd4t1Cz34cEwcjpjlxpwUvnb86UTgoyWMdVd3PIzvj9Vmq80fd1W1Ni90v9t/bv6O7Zm6SjaM220RrV/qP9gf7eSOzwSKyhKPo0Ugh0qRJko+9uo60wPl5QcUxaaZi75vifS4lBm+P7Rn/nYXocsg2+sXY7mckW/77WQax18IJXPmeIZ1Rg+kvFLGp8EaCXgs1B8Xd5DDf+EqalkbjjC+Sd/Sl/o+fdI+o9fzFPOUtYjZpf3cu3HKsjWDPcTKu8HjE2thmcPxDyXPzt56bPOybjf7DsSiC4gAi4aGBeS/B+b2HV/5Ev4b+3CpahIK/SfGyFN8U88aNM+Wb6SibV6vdk29+Mt/VPI68JtMUHenX8jpfHo7GY4VhBBNG1GzOWL0jNntefn/M9mbN0eZEBUD7vYt3BSILf6VWNL2QhESb/XWYYIIHDWwl1o0WFbmCogZaWHQGOFkf35c4GI5APuWl6dMZZnh+SwhOGkEQHqyFVecqHE7tvQsia1NIiYkvywMCA5CKj8F/ga0y2+UhAayWD3+iPQX+1Lkj+2fiowKKe3KfD8X+VTBP9K3S7flD7efm0KzupvV75flccJxH5HQmyhEJXefwdiv6zsi4e/LD/IGknY5XXJ9L1+BH7i5Qc72I3x7l33gsWxxJB408lZbzIVlV0KLBXuNvnfxEQ6g6/j55/IXSrw/Oo154StIp9hqpSB97xXsHAMJ+D0Z1PqiVYZhEcCmvePU6OAjc71hcFZUNSbtynEUF76cmOkQaZK798ZT0GZoZsmPWKHTHS2w6r5Qmt63fBv0X66bHN48ZBeryFTwjLKZbWzrl4EaH387Jo/dPmDVPOaHtno+NDWNqwksnXCPIPMBGLCPRk014LG93vgdXFQUDrlOnBdA7e4pyxo3gqugOVEhstb2/oDr05Xkd6NhAXUDgKhyERvGpvDHHgeh4uNsTyAk2e6+VKxKglIXkwtI2UPN2U8r6et2y8ZfmoeOKALcqBDns75fUmDNcfGNonsr5XtMS5RGxykXmVLPfq0+NDx2mSGysI4Jgux0FX4EDCrH0eqxgepzJM5whdZBMx19jmB1pgGED3FwADxBAZwEeGeSk/gv63m1xMT1tgm5nw6HSHQCuiJXLaoawh/gtd206FVJFT92xcJCe3qqRZ+qJ2I4hpQolocX/CnZaVBbmNG6bJBZt1NDvaCnKts2dBq1LjRbu+UKh+brmYiP7ywOFMx5cm2L6eJPrdNbK+i7jzpkw5n92A2hfOGar4xXAf93npjZ5NwI/FcjfaNxJwOIv+Qg9i7KVw/uXU79jyoY6CBS7y/ZZm2tLEkQ++eExiEa8qBKbIj0Jy677/0muC9FKJVaItt6h1uTZs9815eYw+OZVUmEJ4/olhCC8imiNgUrCa4aRZngSjvh3ITzTKKc+hwGL57m+Xe1Usqu2NIBbONEMXhnjtsZrD5D4TwKZkJxAnQHnTBh9cPo/A/e0W+LS/sevi6LvCAfOjI9hpzGcv3Hdpc6Bxb6Q4X1vuqXR+IOl0CuDNY83erCgUnsMM9zOnAc8WHM2yXDi3PpJJQFFgvNI36VEI+tCHWd05teq7ix/hBBSTMuhcSNEfVTwULWF0tmJX/NlkPSlF3ErCyOAa4S/ZGAyb3adUlu/aItPfyEmn2SNevwKy+Z49mM3wq/w0FNuSl23I0BnTnDJ66+KkYlGBkDECrcWUlQBu4nm3bIAKYrAtBVr8QPIyAXgP//eeFiRUDPpkxaC0Oed83AMa4rrVzjXlWgrBmn9SNAAAgAElEQVRZTAh7SIKJEbkYRARnoQ3C94LuaEgMb2hKEt0yzCwMJYHZxn7oh1QCgZlXNT41tVVkNjlaOKXOttduSitUfJRvlkNngyp9ofVfqA6fgK/BCuGKcvPF1WPdk+Hi9FolPyf5JyA2lveUhXfSHm1lHjQxK9GKJR8X4XUNDHHqXUT4+bkxaUoX5UWB/xTEfn7hOt3kz3YXWR8tNBnzkiZPx27pNM2qPgsX6vJD10AxY7koSioF0aW0JEOIMBUXP+qOjOjVe7peJvZM5grWgpmBcWvdbJv4fxK7rh9doMNALe+TLrdkrpDqB4Qnbsqt6ZSpQRFZlGsykrFMrgX8o4u1vFCkCkjuSUts91mAvMTNpreVhuvX5AcPmtxPEC6MpYQHbHDr/CPPiZ+fiTHWkaRgN95Qo39wqy47MbzCBr/sTeXye5wSeioGfLk9r1DNKQd/gPH//M+PhBMQBgbu+17g/C2LvCbWsbqc19B2FD1fh5RbP0UJaDpR0Rcr9unL7UQ8k3HWJK0+pYcU8eMy0UP5NaGfRdGY2mixDKzUZYONPAUQwLooK8zA1G9fBUNKjokpqVJmI9pOJ2Ms74wMEl2ha1vfAHYEshseRkWbNAiYcdFY4KHQEjGaqrp0wpXce9tzTzPCrhK0YsFfL8L1ukCvgT8SIsS8tlscF/CHgPeb8TNn8eRQOPrX+aJGdQHYwOeo3sh3Ihm2CA2p7Sy7Y7CECzBYAHZIX+Qvxuo6t1XDxwhbduALuJFpkBprFi0vF4sUGkbwRaqFCr0yFNCODP1N5ZnUzZGg8NHig6Yb1R65n8o3Ahj55db8/lkLzp40XqGCk+WSq3pOT3Spra4vPI56DcpILB+Lz+UE+TN5JRANjAG8Xhf+668XBhEmGD8/S+beb506/3VzQrtOz/s37mFXuVSPv0g6Awi7TOme6MyZsFP520fH9uvZwm3kbf0VdAkDHxnWw4Xt/qWDhwFsIQSEterMlELSHpvCrOU/Yaeo37qLmJI7+vNavg8Qoiq/8sj2uT3V0Q3Y71HLIevTBPszhz7x95fFnbNVow9nxaCxDAwtEDqJcAHAey1ViN5M9+Z1HzJqUAI8+SVvPzUrAx8HMywNIib8z//9WfG/tHYxIFqftu/3DRqE+cNmu+vVzeD9hl5diJPITIp5y5BKShuVf1GjAYItTdM4fczPyXIFnxXeE72TKSxYCfVq/pbIuScgBQCf6AleAi3OMEwAs1hgbsT3zGL0VgApSb0ki6JQVaU4DWiI80BDFBTlmVLy35GdBmoNkFBYbMSBuQp1Yemctgt/XhderwtjrHkQZsYkwvsNvOXISDnTwPcO1zhfRgCEsT59t+IKDN9RGG9QeSVvB5xea3Ng2WRY2IYPDa83+wOqMQ4vLTQA7vmPySPva3lRpqxw4Yv2RdiCg5E2cLACW7nfOjheRyt5eH4of7PXYSALf/1Vh0JKvofXat/iw5y82XbyoTk7KQdFHMv7N+xzJIqgnwbr32sQ3ptXrfLjc+Vs/3xPzU5dLoh5ge3JvA4VMqCfGdxVyzqemmHxjwi05yov/0aHEO3hBXJLAF5stNs3DxTSxcHMc2wF/AbMWplNmkqU0T7Fo2Kg45uNKSqzeuvnra258wjY9WLScP/wCl+AHXEtaP9Ub5E+Vu/IoZiqvLn2FIU+E4MYvA7uBPdpBBoDNCdWfFIZ5B0NlbSkzAvwchfJBqg+xdNbJmPRmhLVnZVeGPj75wc+9TrxfhMGrRCD+56YP8t7e/+IL4Zlh4UDpHrqLh1vTa7cP1F0Z9/OxLOjMaDNUC0av2aeqQNr278j/lIGI37gINFIG3niuvUzD5A7v/myD8DDNuGXyrIXb1dpPiRWej0Og+C7HQwpW3kzrgGeFE4tI/0/1uEMigBXQzls7bWSkIMzJSiGAmtYqlJl/4QOUSQu9RANebPA92sMXNeF13VhXJfEpirPSyzuGGHRpBsj7Tfvn2rU5Z10aOznmJIp6rlgaid8pXW5JgWNFGTF2u5dBr9ZqRa7nM6J7uMR+b7Tn+o5pVBnehcaDEqRMw7nRNjVzNKyd7qvmIrq0d4dpycPCv8U2nYKM3jEHL3VaqvXj5vW8MRHUSF43smx/4Jt5kgD9X0H74Nkb1t7vuefmKA5cN8Tf/+88efPBWZfGMxWx0M87qEuDm04WUr/ltj86yk9QR2Q66NVQWznDd08yFZOtgVlNLd1p2v6OO4lc9cPRyPSE/h4/wKigYsT76oUaGeIKa9wW98baIAYgJrmQYFYMWTbR+wwuxmYbTmFgTZl2aXq4OP5za+vp877ut5YWEQmGYimKpOMPrfjiTrTN5PBY3lbxxWMKgDbNkkXKxhZ/xT5HJcrfaQ3UN08XkD/GoQ5b9hxYky4Jc+gCRIPC0/G+15etLWbxyo72S2lp9NMZYy1dDfjjE8zLzFsoysj9ndRpilXmMIOEKGvk0JfHxuxk7Mli3peZVMS7tPGCOCKo3Y3Zj9QHAhYWzztYDYt4UqVa7leOyHyj7Fwh4YQjAuyW8AALl6ntgpgHbS2bWNDYKLPBBTpDiAsRihJfSRrAuplFp9nYFTY/l5xJwAmwjW8CCLSk6CXfpcOYDDec64wmzkx3zfeYR9xDF8Epv2S5T8SGgAsXFaz7MG240lwlgjLcxr5QKk/lhz6XKGrnGCMGf7xrdt7BR4p/9UzHIeKv89ALM0SWKgI4Az1xjEyxNmHCwPsPttkm8IHwjakSxFdDS635FgrYUTqsj3VlN6FoIf+MpAexm6bLj4flmxuBj3cP8T079VkHp4S7phPQCEY7583wOu4VZ4LxM57igmQcMygV6zWU1hD+/Ssy6tzbUumH5cyCPzYdylkkxEud4UXv4U2v0wfZ2XWwPF9u1TsCzsfK2RoaIG4ZU8K/SNhNXWRsb60IuB2Lqk/9q/4Oii6ziXLF29zjZ85noL5U1ty3tO3S5eifVan2NUQlI8Ejsxkz/C0aXxXrU/lFnqtG7i8zb1nsW+ySnlt18a4aUpQ/BJMnYL0VUK1ss9K8nyPJCO0lfclspJrnT8tg2gsWCDrObFW/ALEN3T/3AkCgpJI0+OMzekBuKH+TJ3wObK9U4RFyxzLVBSx8f/QC78Y8ilpMwQ3hX5Kr4/YxR+AG10dIhw8hRE5BZmNjkggeNrSTvvVMxsWmYdxpw5Ipyl0rnpjFS3KXwVcr7/EGMtOF3NOTEE/Yw7xMK0GTkHx62NKDFDYD9fihHcra5ydUjep5aThQ094qG3TU9R46pgWg80Aj+XJud8TPz/3moWQbRdZ6HQyBEIHHZ33ClZe+seCtilwGd55VUx9YHlp7F0hrFcw5XC2bOYODgtNjNDSlpWT4owPBStQxoXf6oESgSX6GE364AnzPZKVKwRfABUaiJn23UxDP/Ba23e0b50TYZvJCXYYFe5YpeGXaMoaEpFm9qpyKM/spzNt1vJqfvP8Lf5/CqjaeFL0Z6MeczKeEm5zA2+AecqC4JVh2pR219Z4H2N5V7lWZUhee/EzZon2SOJiwQ4lttScsm0gdrM5cTx3yjvfUn1VsrUhIt9chnBneqR3r1Tehkb/DTDbvMdjmsoRUUK6rZfsCxiBwSMFnyvM1ZVsUWl2CW3st4C0PHANVt49XB/o32J6nzrgqbpvsB/LADNhWvXf98T9vkFyMhYEyPKEDfbwnfRvXl8K/FP2TqcFYxyH9VQDT7FLA5P5WYWmjZ8fLy/vQcWaMWxyPhDx/CoP9wDW9MvndMlrql6eLYG/jLbySE8kquYPYDHVI8+ik9amGtPuB5rAwWzvGxdQ5JhH7JTTo6I0iAEaoCGHaQh4ZV5nnI8xwNcCfJMZExODCfNeSPN1KYCFhTok5X+yIWo4bejHnQBWm+oBAaxd8ucCY22tSH8D8yLLAwLe73vtUvCWuFTWKVSvTyA0FFwpLlMwttg0AVxQMGsZld4UciBuCdJ4RN4U8GoZl/7Vd3FzNN69+pERJttsgFZhsBUavYnBBilQ40CTVdMYCirtNnpUj9iBDk4h2W3NW5WXvP6oBH6heYu3+qmcyTNT9KkaDanZrmGvH4til691+4w4ThPo/qsOkEqV78W8nBj+IRWn6PmZjM/XQ96+DUEZNIb1ae9XDtLel1cffbC5/6ZJ7grYHAoPdcVHr/TQOoWA2tHPHLc/n6Aa1x+x2PhlokZDp55Ytoiu45m+ay3bMuSi4QrgsK970bJOL2/kblUGBhy3X/ntpdlP24oF70wOhm722OzKrnJ9SmouHvUgTLx/5hK8e+KetPaavB0EsH26hu/Mh+5K8XloVt5uxH/xrHgj+HTTKADGAmseBG+oxmhMFCo/Q5WxSa3RSfXGjTf9eRdeUqXqs5QxEipnBwaZlgJmjx9HzfLLatkcH0Fn3470ad0mkwFg2esAZmv6XPO+5UukkSjIcwg8NRSR5VXBbAXX62ABkpPi1mECF13Aa4UaXBpOAGDwxBtra6vrNfC+1/Skbzu6+B2/i+N2X3V7K2/L+jlZ9l4WnZYc1wS8LgCTMH/eGK9r7cIxGCS70qiD8ZZDcRgxBtCUqIR5aXywEBblnpVNI/BLG6UL21hbLElcKLXdI+SJnbriave+N6+xpdE+cxCaQ0MWfYRQlP2jMqB1ev/4keoCuUfsEJOMflxUWxfIM3bGJGkcyIM0w0NB/zeqPA8hYfa+AaL9Ui8hdQm+mc9sRlzy/EZ9GQQ9VHayr9mB3CsTHc2PRgaU27wlD/yNIhjAXbZSaoNhjDuFLx5p0lvhv7bjI2LQ8XYoNlfBqNuebbYrlPkRFHR7/aWyy93GksjnoFOxdOotu5fAcASSgNfaXxspNh/1QGEr6Hr7Wdy38sLVbYQfbSsVbZAXnnJKu56IcJiQlToP1vUEyKOBaK98YNGe8beAdiMgFNOwOn9pflga9w0pIY17Phg8CQaGBAC84fu3KgaaOvgfMNGn6nNTOfz7/fX7uJ+TspE/1KQJ7z+21ZRFTanIgsK/ofXW/4srmQJCljIGqti5nbbbZPCj0VQLj9J5Np2Giu2adgbQovWlZhPSfFaglwuYXcWFBVGBD4UNmw3fL3IgFuvWJsP5m6uSVXck0anEuK6B63ph0AC9rrXjhdWyCrwZeL1WmX+/byiyJyhD5FGxYFPlQHh+BOjwroojRvvm/Z4CdAf4XqVOylsaMhjXH9lKbwMQFOiVSV12Xnu/URr/0NAC8pUSKjOcGS7xyjO12yJIGQ4o7fK8sAV2gC4w076jVSB0CwbXICKbUYaVf1aNGFMBkZQa3Iwv4yRtjzMAkrxp1qLTdM6b9FDNNA8oJ3tbHm1W59z4rWJsrs7gcaZIP2TrYq4Esg9kVW+tbz2ddZb2t91lBhaiO92dea/Numj1zbgAGhfmm8F8y0wLQFh7qVdckXTeXlux1aXfE3lhPJ+QSduNyomzncq/g5Fry6P07iQ5nyXKObJUA9l/11i7BpFsbTZxy8yQlDo0BJXTR/0rV2DDXnh7IClLzOcmbLF6mj90McG/wo8V/uLiterQBEAswLbjija3EcLweiPfY2iCgDXCsXPkqZsLU5+Smuw7hfl7luxpvM8FNP0SU0cFFYzdavL0Glj4K95EBRurhuFHvxp4wGPdx/aGDNQ/Pl7RLsWHyQh3vVUt0SNoK0kp8t8L8yKelCtvMsU1aa8d+9d1zNr9Hmm83penlr6X6GiOkxUIKTQ7Ax6Wk90d9qFJgIgTeQ3WNvXMat7QsEBybG7LC1PMjHTSFBjRczUZuOxErPDfJT8gOwK8LowrzIWESgcRfu5pH7qTVmHEuqQpSIryKNp5kIFZb2ABPtKumG5O0QrXatuKCSdpQ4RODPBa+DjjtGnqT7YOpLG8zR6Ly1DPNpGsfdKpatlcl+GLeOxgDNMTGqaw+Kl7e9dNKnRmbZfXvFuE0s5kI8n7Hkqv6DOQ/C9cE9l5yTE9Y2A4T8IiJS3bwyDsYQCv2X74dCqHHBxoBRjhY0/IV3BdSMw2LQ1h3uj0l8U4tnquM+L62PmTkldDut1kr3itYgs5kAdrT9c9g/GJUy4bUEw74IwVpdJo9RoNWlvVXWsP9fc18fMG7vdcI5cJyRvbFH98wpnePX1k4MfStpQsT5yPpZ+45Pjk8fnVa1fmrBt0VzmWLTzHIPx5vfDnzzpp8Oe+8fOvG/PNIJq+sPRgf19a4TbNuGrZqdux0rlFPe/3MuX+ydvw7151ItRJOwiI2kXy9GhTavp2Xe5/9nri53/4OuIk48s+VREVsXt0pi2W+k/T9y0vWhD7qfzS73uCh1GFqND/DXk40tuU+UnBcLOlW4o5e6JUFFBnx6TL19jtjFhJFF8XmYi2xxw6pHQ+U3gaHMchY+W7Aa/LLAAYyGD5l8jDCYiA67pWPOw1bN/YiPsgNm4tiCTMQbh4gOn2BbvtAosI7HyqnCMbDbBGQ6TsioussEJkSMGMgCdByl72Mhavi/C+ZySl4aLbi/VtKnwksqExLgDjwktw3vtmjFvSoIQ/OIf9Xyko2wX/hEGBoB6FsEAyh+9n1/UBkwfFYCvPScprhxhpY1189Fm8L6DGvjcO0xesMbnd68aTaK3oTmmOhqoFjyfo89sr59m8fm2RCVWnULLWIZuGI6cH+4oCxt62rG92EFmYVG+ZV+z7GHhdA6/XivketHYimYNlr1Z8YZt/b7x1+8zPpvN7kPupxg9F/vPyTimYAeHxnz8Drz+vpY/GwLwZ7/v2tTlaXsOUl38djo+m4h9fDWi1v+GDw0gN72Pw7y5p4W+R45VygG2qFjuYPQlJqCaGaMW/8qHRik8cNM/bZ0mJHR483X8q7jfX89j3RJHPqjKmGtioxHMxDmaX8fRN2/tGPG3q3735ONYiUZ2iROzcD5KvhughwdZt0TB9M7i24h8ybcqzGJaNVvpQ3AIWFtpjnsknovNAUVxo4NNek50GFcd4BSipvA27qpdLF4fUVfJKcyhUvEwqiztI0DpiHikjgURNnwGjbv9EQ067M8BXwCyAm2Uh5D1x89rG57aYdjYQWRfE5FX/frhB/oaMms0Nqz/V1eXk7QWwUPQwwKULzt736i+GnMBVG6N80r5NZAvYpxVu8ddfL9A1cL9vMNZ2XpOnpMv8NToC4GRpbI18MbGLfIGHPhEUIMPpFyFYtwTiaTrJRYChuxYsGaNULTh7d+s3VvqAFcZkp0js332q38JpNB7clKiOLR1gcoWPIAfMxjwv1x5GWcfxg93SJ0UeEzI2P0Z3mR7ytlJ9leo95Zd3VBKXdRWbW9rK1HGxdAJmMfLNmLJXPDF5lDcNz7oDNoLlCkMk/6jZWjuASuA2i+yXtLHjb81D9eHh6rCCvXu2zRx5bW/llyTkybhvxnUtQb/1QBYdf5sMZgF/1YI7Wjt5dab3xu4bGW/j22o9W/GFKdWWbXTUU7tzitZOX5Q7N/zcbCGFN+xpXKGdxB6tADzCs9j0L2TvH10P5H5TLx8G3ff5n6uvl63h+zL9p+1ajgT9/uVKEWSik87PDW4sd3r1BYB9LC6n16N33V5FK9y01wPWxI6UsWlzw5SyxNGxg9lwa+vfdFTpNmkKNIICSKEK8jiC2Z0b5YEagCBUaTGofLaRTs3Lq3uCrytQzp4Wsk3dfeO+V7zXlIinBZbUqEpa+ZtntXkDVEqWzdgFHlAyTmGKO/CGGWvHQ/O0r+dTwKyWoV7N5XmMfct5NpqU7rVQa1x6ctiagp9jIE2PqwxQ6S+qM1urj7dxW81AbK+KgRhCJge1KZCGgv+c66TnkjZNfdxHvI5fZ8Q2XNI0eRuvmsuK2Yc9OCDPaBc+6hLP0wPYroJvyo/pNuqt/iet6SB3pzUXn/nvTqlHtBLwQjzgqcMHIhOCP94/E+AbRGvB5i3b5S0540x7U+/uQW503QdzEvUkQ9o89zp8rOcrPdrY9IUFjR8VxuvP+VT9J0iloRwsW67xxN//egOyyPR9i86c08KMXKHusvHap4cb+hEGcrTM7nJDcMWEPHqbFWhsnAli3NOk1s9uFmLQO5f0+3rC+LtqlRYHNJX3t7vxrap2KW62FPvASwVZZx2ARycvlQH/yavWm8hXU5MVxEdKCH40zxfV/wZyei/kZ8CZLkovu1S/pOCbb5APTIpdun3AbWM1a4e96J3+1NzDflidWvdYvpo4yG3wnFXSk5yXFHtfR7CBDczGOVVVqAZo1aIl0BXArDC4XTwDrHJprvbahwbDtyaitbfqgM000DVssfs6r8Bh8zoJaGK+J26eSzHfTgeYDes7ziRMYowYilH4byvwdVzaZhfih00KJsfCknomddcGSaofMdn3rfWV0BQiizZZJEt7jUvSUwKG7/cb8+cNFsOUZypi3loX29R7213OssAr665VFstCM4qmPvNnjSVKt7GOGXi95A35qoTJ6WRgpa9IeNwPM7qOo7fca0uQSOVyG71ubDbvbx7LkP7n3Mg4NjlmKoqt1R29rsk7RXy+zE6GfkjvDx/qeZFk5FZnwEOhun5j6x+fQZo3wHPN7L7n9FOzdKYx8IMTkxsK4k0AQzWb2TPDWI4iiCRGeLLpGsf1Va73aktDD89P99XIUZfI083IF4btOaf0igxOBnBP/OtfjMm3fewn0Er13mkpi73O1yZTW0NDD3xRQqeQHutnmebSSweqTg2l0jgIfBrZZ7DBQD4ysV67YDzT/oxYdCD86mCDZ5Ke031H1v/i9Yt2fs2TKE/NCWCfyvnAi3+jZ35d18duSYpEnz3legCxX1x92mrQolLRRQ9IdjBo5ERTjcrPUKaxYpsifdigRsFs2m4sAjraG5gUkoPZ/DmkWzKtNBddAID7vgFcuDDBpJuDqvd4HXF88zpkABpiwLafCkg2djdyFWjavVAQcU6Ee4ws/RLmoWCsTm6ypIl2Py9qlBjWCOYMaO3s1hi26LyezPj5+433zwKV7/cKKZgBcVhyKZtCWQuARpuSt7qrkrLRJPjc4m/Z+UBUC9HnGcjVIedv2cDg05WqCUVvGFi9U7RbH+dUHCsFMHTD5TsSH6hGYWwd+1TAbLWIdQeV52sD1ZUU5r3dT+W1ADZeE2WCYEufACqAn/ctIUC8ewV/cZ1zOo99BiG/H3H7NVIVTJ6en8r/5fXFjPnj9WVWlf+lHwiQv7bw1hPmssOsRw9kNwlshtMJuAaX/5JN2l7FfFomN90Wr3EFIximEM0TYWidEGt1ZqjxIhPgqOSQ0jsPzrA2NCBnSWn84ALkRR2aPXq1UyEsduODGqiyFvNT/NkM7CQXBxC/gWD9ZMhGJmrTuMn35ys2INfP5e9vSvr3r+8+U46pGkIiEPmKzk67Pn5onVO3OR+HXPNyct4PqSPBhlsY0fLcp8h1TEQwWzRAtolr7AyXPhvEtlCGsheqA7OFzLbp9mLFjlKhnQC8/lzgyfi5bwwea9//+8Y9CYNugNaK6iGNn7yON9ajXnVhymDgxvKemqxruIR4VkHwdjGOYFYPGDC4JvlPC2hZcmt3EusKfy9jC+sysKEhFqVMGfeT14lg98z9ySEmOAOzMHb1nzjDJ/XSljV4gDdgFUS08GBvl/whb7tfxpT21vhl3twyLrTuyaYmt5ETiIlmtQ2pC+DK8tZnH2xusgbboOs1U//0QUdWHsuzfSXB8/UpVCp5QKOZD483IuJdFQTOdbKNfcUKvNebvLGeNx0ZURVOnUkL9jj63HQxoy+mDQOBybad86r1w9iveBKZX7mvOWAVJ0LadTomPRWZd13JbC5ypWM1PlLPtujs9NGqz2P5BgEJmIyXm5KTUJaOrwP9g0Vvv7S0E/QnsoGvyY2nwz0QQ7Z/AURBEuGOEJ3VkJU6q1HTrTO2Y4o4/dFXFF0XD2NyyY0bP29IyVsMtj7QQbGd4NVdhgV27fEMx36vWPaq13D7upRPBDXJH8tuQAo+5UkZOok7X7XcrRs/VDzVU3QKkVMl0JIUubEJTkvPR7PUjt9TK/F5p2415tHuRtJNRrXMalikS7jIlGKaqNAtv44ZDTGQ53bs9U5wBrMPxlLtBa0DPxjL0zguWb3MjPcNDJqgsYCpFqG/aax0U7054MAiTiA9d78byLjGR+8XX/f2abngoDeCfl3368EKYZBHW1G+M8ky5CNt7cWaR8uX/p5g0Jxhm97Vqeo9Ci0zOjY7uxkGN+IG9rZ4Wm9AHY9cHuRTyOIrMkBbpcQbKrxJQKCxo6w8jTJaikmDpNQQbM22sNHq0P7Qd88H4XD4t78qwGkfy7tm3HC6S3T+xtKkEAMAecog4pqNqFY9bTGqUbZygdu1VBqXqrL+Yq1Y6LSgwq7c+izIBPlP+DZ56+h0koVqJN7KOSaIyeLkx+TeUfzh2f664eD2RRQ7uvCGK7//KcZo8nWkgZZH1hTfloqzAOnXCBq5fmIWM2rA95Y0CGCkxPS3VDguwtA9HWVVKZN6JkSNypi/72bwuxYsNKqlbMlzJRfoerp0Sxo9ys5i2Wx81vrz37VllT+oMbahpgM9T2ESmuILAUsxOpkA1Z++9QlVp0isbF9N8UCZGjH2mo5pusvt1olvfbHPs/XtKLI/4TvEKjiNEdZ9KtOXZteLp0trrCA2jtED356K2953ihgFjD6n3ygNg92/vcnBKqJUF8vIvlraIjEV2cmYA2BeTTMmTUzsyr1kN/EqpGeSj2ae+Llluyda/TcHQCsYcjsggwD/8Ja4cNYkSlbgkYK+Vcwqb1gQatgZIADG2POcEJ7zwUAvh2PqYxPl+YDsU1toi4s3iTjTgUBHfCbxoWkngwoK42Cxbt5QZeCpnsa2+n35KVZGIj2djUzR9nvHYrvSt78ZNoID2iLqGvYRmaQgM3mFRR6lY92eVTvLVpZZyYbwGCdMiWgy3pkeLgsDa2l+48oreyZDg7OKKeAUrc7K6b6wMU06o6Dd4hFhWvF4OFYAACAASURBVP25HG+G4AR7rcKa029ldjOlW42c+uAh6UZYcoIahoGMt9Xn6wjsIV2xAO28F6C9eQJ32LRO2qj8mY82NyxJr3yx5yc9n5Nbirm/5u5B45XNBVW6chnWLfe6T0fUfgJnD/V9kSEOvvNl7SzJ4+9BchLEGLjkpIfJDLqXdWFm/P2zpvhs9e1eQ7jv6N2PCq3NcZ1x7uz4Jqb96Gm1qj8IkiX/bQ8C6+tuhPz/W1dU8OX5F4+OZT5dUVF/kecRwD7WcX73cR3lQ6W64Ob56pX8kaBnYn6XZ/OshvRxiEXAkwABTCYMUMbFTU80BtDXVrZdjdWT+gUK7bkd02He6zQv3fx8GQmW3avIEpO2UUeTNJp54iU7oWxGLgCf5GkN4EJjRf0eCWyu9G5CKYAeefUM4lg8sxVHlv61qccSwOdNkfTOEqNPZ+biLgFGk+16EcoPnxnaPgdoHOjTV1VXFx8pw2cTCi+2aIAip8nGc8hgADiAyhBT6dnCWGaEhWj+3qnG0skJzNbSRJ7tO6BpEHn6vVH1ouA9316tP83w+Q2I3WuuQlllrdNt8X1X3vl2Ns/S7ik92jqRF6qJvfgBxHIYQy3Jjgn0pCuMtTZo0MAVZJfAwJzro5d1dxH2hrTQpfB4a1Th+Vfn5AIGSr92VH1zfQbQFvLAJUbWIq4E/GVizx3w9dWGGXiZDA4rOJPuApjkbPPVius18Od1rePMaMWhve6J93vi779/TIVZ3FNVSNaOaFm9rvxMSyP4djXY7GNt2pp6lK8sAbHLm6OdpF5Xj/dLQ1tXlh47tdKZf3fgNuneKXsHn7TY5JKrq8bTHGVe+/1RNrWDvP/TV3dsSnIJRf5E642ePYUsuzQExGiU7+MyC5HKj7cT6WOra14uxEGRN5lLls9e9SNBlv8XeSoL0/jDLgZP47krrxaR9m9C7lfE9gvzYldPgIdFiIY0q0yeGmuqpVXh89/+xn/pNPjSSQB4gjFCrJzsjavAhIPtUJ0Txv1byle/mdmI6ekBslDKoRvvE1wK1BtIKcvGV12pv/i5KtA9UdOIjsOG1TMbE/iPFM3M0mjtf2N92OkhrkwmL060njOqAZYhlZkiSj/C2B87fV05IJXlhmEli9mhrrjAm218ysdNAqEsnmS4rM4WOdsNFKgneoGCJlU5xpYHGbc2ckhb2k35QcuSGd6o7FstVedQpKC5Gh2VHnUUBHvG/fOnKso5UpaARF7BtdxQ0Pa86mfATrPEFyA2yQVQgSRZojWudKPBdQiL0g+AZa/mQeBJmESQgJ5Ed2cRjvRtSdk3iWm81q7JHtosraqyF2d5DAC3RWl7DoUH9r2qgt89c78xpl9crWckvs5xWabYpWd5LG17XYTreuG6hnlIxmsA/IP5Wur4fjPmBBgD4PkwHbEuAgz4nr82m+dWbuiCoJwseDsqwuR9Wn0QF3EsEIUA7IvRR1FBJr/P6I2FHmKExTNuiROPbKVLU9BJY22xNDHtNyOoq6ir559le0p4vfyITUzdQ5DCxvV73TZV/HRx81uq1aJPILgk/1D4P8nfZCi2OeCFj+ntCoATgCGkdrEzojjlAo8x+fI7gSd7qLSnpaahlhPPVPdwyoVEg6SRmHq+ISFOkbhV73KSsBkosnPCFz9VvhTwelwrsnfWSl46kAg6+532cXXO6ar/yEqlW+/D2NT28b47XjD9pobMuGn9oZ7kFYan89CvyKWgZ6vaip5N8l7bfOcWdO47SpwWSVlfBmfJCTtZzGOXINDcrjBhp7+0tq2UNfQueJUTUCC5105OYbB1QHmb+UQ/eS3HK+qA03jZYzL2zIdCufb7IRvrWpdAzTlx+EmFamVlGC82Wgh7WvZQyO1dSf90aiVxKcEUQ3ygwrkGdfzgXOVPMK4SUuK5V5r8JMUYt+SF99sGyi4d9VdXZF0wb+m+NfdP9D1eTsmrPujKSsYkbWPzUH/i9wczmrgShd37TbeyYQGz86YFw0n1mCT86wXGArCTbhyvjfgC2mz+rmrq0nIbj7HbXblRUHb2TS5Ww8ITQEVA4wpCtSycwPI/+7jwUTjGWIvkhvoJwuhMtl4NBKeu/VZG8/WBZosLFjJaBRFBxmcefDWY5OuWAPzXXy+MsQDtPSf+9ffbPpR20Ko8I2dKJek0rJrp38YkpjyV779YYteSttFX7RJcQU5e54T0he8Kdqs4HKeZ8ZW0imL7MrUFjzmtNmTzbgi5eod2QaFtzHAHYpSv1TbDGdJUm4dl0YO+RYHxY+0nG6pjhq1j5tqfa2pXVxuvdz4WVMfFRf9qh2tT/J48TtX2aT0t7FV4yClW19+qSiDzLBjtrp48MdRmSCdNBsZe+9av8cWeIjwpoyHSTBspsUC580M1jleSh9GLd6go+j3UUZAm9qIiqmJqDgM1JhJYZM1fsqD8draEqYDQGvuoSiEKme5lcwpfqm4LMOaIG6XuGNt5ytSa3DrWt0Qc5OKzvktrSQjrezOO6TpYKl0J1DUQnnJ6n7Hb9Q8Fm5lE2tJjb5PoDu0e2+YWN0AisxJGxHOudUDMMRpHZOXAq/r4cO/0VvoqueFBo4J1Zkvj6z08SdLe4Tfv5Hzsc8n72p4crmZ3k+frN2ktQyNlEQSKUeHJmHPK5tquZBQQkgHGMOpDfFkLwz/Su6vHSvrQaYYw9lLqUG00vDne9kzOAlSU3n8NZxnw6fOlGK/XBZ5zgTiZKlweuBXDq/WtRXNP9TlNVFOeAN4HJffcru9a/TFVBTNEGNfA//nvvwAi/P33e8nZz8QEpVNUABSim0Y2yY80Sf+c5fCbmNlfXg8y/7jlynYtUPcRzNbk/JCmGjgZ/+l1TM0VzHbcDrqgm2rd6PaBvLY/1TAD9ZYt67F2HmDrwthGB3YA3RM0PHzAQCBUj/tdnLaO3lnWFoYyDCdVECnT2nsTlfoyBouNcS9zmTKOdYXfZB0ba5HnE2urIIK3TLBbxCmqnyr/tdIASbLHOX5oh8VOXdttc3kK9KUMdRyHRULk5W/Am7HWnMm7vf7Qp7EAKzuDQabQS7HzW2TpBKrn/enDJedoX+/FH6qkQPMx/WZyffwAHV7pdG1leHjdAB6K+8QeaLdcs32dnwS18eSFbQv4Ag/ZmJMBrt/4tmCLdDpGgOytgHbZ6zldb9uHSgcOE02hY35NcwQ08C495ftt+V98uGjdAch+zhRDHT8n9kqyBtSHzfMnBgiin7y2mbjnxPvNuF6uljmU4Z5aSGeq8hIhlOfbEK8dH41erCC2JdShnj3maep/SFybLHA22u4Z1JoqSFbPCW9CoQZtTfWSAU4np2RILiHnu628ZuB1LREYF0BYC+XWyUNzHaepIRlxFD9cSUEbHc2zr64mT3z0KC+fymaTibWIZ3mo5728YhcRXn9euP5+Y9zr69e3EBJCgrBsevIjDcHo13YYgHgkP6OXj1eZlO3sxDdVPrwrUyjPZQme0POyVONmLB8R0w4D9jLPYHaxOgz4CmZL49g27vfyHMwsROFvmjRaIMMW90wQ6LbHqfvyAi5tpbd4TnwEs5ldHi4QMUAGyB7ORMFwRj2jH7+uYUWPqoc9iTFnkKcGGQ6slXcVzEauwfqxIiFAt2WjyEPtCzXyPFcYR2ZJLkfpgdefRMdFMjsYOPCNEGReEtlXivaL6hjlcqShXFr3iMLAvqOAdX7lS1RCQe7sNo6oOj7g5W9AZFdO+S54Yk12Obw9NDUsDNhHcqeYAjUm8DreDoqGS9ua8jqd14VWxl+1vnQXdj6ywJDaRnZpaL2dKtfQNRTL5tyTMTEwBsupV/cqZ841wji0GYzdUxoJ4VS1ikiSCinPJEDjPHeWbVfrDa6mLsoah3qNSbENhC1F2U3rVRN8ur73C4XBUQbTpxpigxeQonVcY9AVY653P3//gMZaCEYI5yCzTs11SCG3Z6WiPq3Rfy4BAPTsbAWZgy45Qm4I5mGbCdKxdQ09+lClV9Sdol0o/aovl9YPoXaFsJ1I043lyaCBca2Fcq9rgAagW37xNTFvAr/vdRQeRx5VQa0B/oT0s+Vdq932N/zw2xJ+J43dYLDiRPFMZgsn+PNa/cezCkDJT5mCbz8iPUMt+kMB2+s62OtFKU+X+jckq77cuzSgoE4GuPBGxzLWYc4JzCaacnnrbk9hRmCynAAY1LIpSkVd8r4EzbuSjSo964VsAFhO2ont5UQfMzAnJXwfQWuKm0dt+9ojMm7d9wxmA7AodXnHk2twgnxwIyDDzIKoZtTAGrkTwOUy4cgJYb/tCBY5PBdLQkiOSHu7EKMD4+JBrzGWFNoHwGZP4loFb17sxMALYWb0VKd+i7ZT38ddJRVphQ8Ec7LEtjxdzoAgVmeDniqPNqRJteftAEdRaI12jxK2LyUJKaLqjAxsCWvsbi0WkQOuK1LyooB9ej8/N/kJ4O+JpoQDN7II5gpNoQZBvIQOjnpSB67qqKCOJsc4LE0/cb9XHav9c6dLsUamvrR9b0N6dOB9f5Xc0g56mtHj8hdA2o7raERXXd3r18cptqIIIzbpB0tUs0E5cszZNaw+16m6tfE45Ld3OOP9vvH+uTEGFijDwD3vBUDuBUxUZpjhe3DYoKpd7f9uVFbmh/zqBcoGZ+D10oVCviecDUjVFwKUUowXi5K3vUadt+MaazsgleBOKLSc8JyFMLXdk2XFNUH4J/vQMclgm7gMxMlm7rMKUdwfEUhaTRvzq3iUD5cN/IfrIGInte78WZ6c9xu43//CzyCA1vGic3rIRc3nu3zUGnal/dmMfeDVo67lbGm1xodmn43dAwlBnlJtqcCOlv7ySfooqKfC97tNARMwJ9te03FOmLVgJU/RVwQNm5ZsCAr6Y8oDi7iUGZWhH4VS5trjMWQP6rE2yjQoW5GGEZnXeK1951o3xyt2i75c3y5GcKev1aiqYRKeeVFS4AT0EApdrMZGc5EBIn/OMkslM21D6qo4Sh3jafeKiJV4vVvxwAqOPYFv+xU9yxQqi/xQtu19Lho+M9yMqny83CuvnzwZh0Ho7KIasloj3/kgxTP0sh6pyyCW4KET699trEeZANAHsXuJvL84KJDA/43+PcPJRJRuWc9KzBNvTHkmr3ryTjTFAh51ZKSHkyZzm2v31SbsNiJ/EMY+lHUz6hVlzrtfxCFcaE6778Sxb3WH+1leK/EzJDdad3v4acvJPONdfjFhbQwby07aoFHP68ErpPnG0sYid0X1T682NnAp/kGE61obkq8ZCa/15+/VaBpY8WdC0XtOA61zKlNEMDZXQ0OOtE+oQPXcxPw0klo3nuiZ4q/XwP1m96SongUEpK/Btby3ulOBuNUHjBLC4sM951ee5vqq86LpAiYvj4wuGgRcJIuzu9H8Rd+3JH4rMw/p6LO4flVLUSCTAb4nCBPve8UNs6KH38r6R5TInu7rAvfsn4r/h6/7PB/rLAhjQ2ZIzYjbYzHg+5ACzb6WOfMW5x5vSWZtchBl0xgftTYQvu2PTSRyeZMbmmvx5h3eME5tjmFnXdFs23OldBqUpGDWDSulSpzpiwQFleshlX5TViVPcmxbmqLXkAYOafOA9QU5Xs80EOZTsjF2Vb2lzqxoBItCKH2z6O+m94OOb4SbR2g3cp8kuQ2dph9INsmWkHlutw0L8meI5Wmqj4PV+UThNtfaAYOYv2zNtsk3bb+eyaJm/Ia3n/TTbqzAIZA14ZymrB3vVIGIaboW+fjS27LhVE7/EcR2hEdaROHF9oygHwmyRmg9iCB2wRu5L4vVsv7pmWVjSz7E7PkmKiejVp6nD8RSD8J+HHsnNWV/9zrtI2vtTr1xoD0QlvKHvzvYTe7Fx4sl9aC11RaNl+zVuRj0/mEDYkvBC1gcCxTOFeC5QjsmF8Gi0lZXBLXBVXDztBO58gC550M00doZhvHnL1pnrQO4RNu58ltK1M/tYNuWZ90vybwuhKluV8F5tH1gqCQnAngSmCcmXZhT1mGozlTFTbRicm42g2b1RgtaL+Nr0PZPRHogc/JqGy8tK8HRgFnehzYXpRGTN2NSPeEKLcgj5/NCr+Nnp1r8Z7JOWZNRbEqOtrxPtFmfvYxyf0z9ZPcea4ll6JRCyGAs6k1C6iKurK4Ul06kkISW4g6ilbJPEDyKUvMHQLOBolo3N0Qf6Hua3maXGZaNXFd8XIZaQ2gYtnGtP5vsn92qEG3/aqnRMPMtRiZ6epTSe+nPhJ0MbQX7ZO+jPnQBjiwjCumUZTp0WTt40cPywrfpUsMHaYN8voxYp4+3TobCt4J5T921HHtilWPOXJ3OjQBP418Dch1J/3LZjFengD29tlVnclx0dJo+7laRR9mmskIbkoTZtHnRRWF7L2eOl+xdHRga8isEeTQ3Tnywt5HecNspEevaqh9EPhovYMy8Ucf1N2+Pc0K3WZxeBb2g98kpNqxuFvpdSqXhXMqIgJoDz/VWuosI4mCJ2aJTrvBqGXiYptGZiqaNdkUA3Ki6mrz1xsotlebaOIhXWjgdaWsMc6mvizFWdJiJKkx9slqdWNMv3u/lrWuQe2P/+vPCX//1wpyM++e2LZHmdDCrJSug5bkWJJjHYcr2XZUI1S0Njdw8OMXUJp3DvLa1Elm/b+CvP8szC6xpfKdVpiDVIzsZ9J6m8JmHLxbht7dTKSEV6F3ptfw1b8BaRMASa2xGVHU8MwbW7hgsexzSWM/BHw7x2Mn5QNVDOkXPp41M62fal1Panr95oAaund74cDXTkr+pP9oBf01b8nPp/4Dmmj3236+LKyMn6BcDCbH8zTblOM9dlvIDvdsNfCy7KnEFMBHsKT2FoK5uii/qmoFKsAyoEOrQDg8xjszqUZWySWemBlg2kR0jgCteYGpiapSSuQs2z6zpuUiTGFNd6S44KMWcEuwBcwGzNnWvesOLh92HHWSZMvtUj5V8niSvykjep6yCG0CrfcVmByKv8yqvUL7w1cC2pLFHAdCmfQG0DwEkEBnlXu41yi18lxg/IgDR53FLx3wVcFJTpU4puQn5mX4o1K3Cwixog28sbyq4qXKzvR3ZRZ/PipJa9BtRRgE5Zb+tfoVP0QFBvPzjp9AZgZjJt29VmZOTyZ+NmVp9+Gv8V3mSuqa0hzdGlhMFtuZV4tnrAtvZ1UzuuIlX3r5+OcD2KwxEk6sDTZx2Sd75AVFApetPF0M9sumzNVqwqJF6W2bkhs7gLsEBMDbyk0IK/vx14b/+64VxrRV7fK+Tteac0FX7qjiIpthNUd8aDC2D0dBhJJT0ZI5I20MnWG5Od7aIgQA9Xi5iqvtm/PmvF+Z7MWFcBMKwhVs8GTQIfE/cNKSNzo+//3UDPFIgNxF7ew9jI/ULu0KEAmheHwQ/Pzf0tJAx1pZbPG/ccR8+JgtaP/ZjBSut9gpX8LhuAeKJxSwbQsP78TDXsAOL5k3RXSamXZxpKi5KCWX53kvbiatT7t1r+TvG/j6Sf+DohxSbys+volKtBqfaRxy5W8oN+qVk6nowVmXGhPYUbjw4iQUA2dlfV+KfwaaWkSYFtbCO/9uHii7kiW3Zw66W6HoK2cJ5b7F6VOGyaGBWBOJS/RbaTqy6ZMV0L7DYhxlAu0P2v90833LvHCJ7EMMHrNSQX++R7hkR9CUwy+s9x46m8jGT+ht6FoW/i8wPgukeMt2lhY2fKjeI9FbvrtoNVZ72aC1PdDSap9FpLlDgIRksptSljeSASA4Ldym2qVzRI0VjBALtKXYm6C0FuY2FhjIi/VEe2Ok/0ZauqD8jlKh/m/Jqybqg69NMU2p7+irOHtqecn06gHhqZywqjY1aShNOUJRjzpLzc+ENDw73Qe5ObK8xw/YPpdeLHB30mpa93pY7tGYhAtXbLhElf5pRHciAn8M4Fb1Uv3+8ogHoGErVhQHq5McYWc5CWK/Ncj2DvV/H0HZCAzcx6zxhxs+bMUVZT/kythjYsBJRFb0Jg3G2ubR/t7pLC7tYWUmZp8FghkTWDC0P8nsuMCuG5nVdEmPL0FWtNwEksTFa1b/+571AJtyQaCd6XK01vTCVym+GxsrIHe434QbjIgYPYK6D0ATEQr4Iy1fUiY+bnBg3mvS/kI/fXioTv5HBdP2naWM8Mc8N53+42r2Wf/b6ZAfbq9ENjX45q5LDFGEDZo/ps870I2sP1O8xt00bmr7RkZQ2+oYq9qwBKwvyPTcvyOJiMQZeY9E1BAHPCdy8Pt4HrQM8dE8zVgAC2BZEMQpyU7cMxFAMm+qmkFpjYZlkr332xwzjr8asKlhVA2/G1RZ4ef/FHtRJGHUGw0plp521TrkpQLzKCsfWJkDrvCfL6xA+3ltpEftEgrfSMggQYyU4Yzd4O6DNl+t7Tv2W21r1faVLnxb5rqJu09G/uPI00vPFXMnLly00jgSeMyQJUjn9rUILpK1COTzb9VHc2ktlvA7nDIYbnRav+rER1dGW/BOTqUzfS/mRrQzkL7CMb/ZvH27TtVTKd8Gn6wlFMg9Ez2xPzSohn+zFOUlrizoyImMQb0tM6ZFsykxmAsZa8f/zvoH/izWdxsDP32+8f2QleQEHfspGVNAPgyG7Ucrbqhkz6buyITNAJisM0LXaPQgSvzvx5yV7tw7CNYarOwbotdJoWf/6n1vazmtBH5EYqGVlOBgaNUQdsA9VmByuvzMNtinTDGvjdsY62nftlFB2GImhYCIK0TLvivrxcqvRgpJkwMLuo/WidoChDNh8b+Y0bXtWafvl5cSmOo5F1gdc2PlNde3T2h+H/KqjPtAUsUCl7SO9JX9lStUXLuVJPPxd+oJDbgCHjFanegJ1xJWP7eS5Krzb2qWyGvNiY6SVYp4V34apTn7VOhd1a3bnRYQxBq5wvBoRAzfhxoSqjNU8ibWXj19V3F66M8t0utTvx4O7bvSV0+LfLW0zD57yTx7kskPbJeNE2O0Bu1GzmTSoVogBXctSqqpb0/Puia5AkvwfOOyJJbph3DBmmG1LSMDSad+KjVOmNCYkfyBRKqp1RmjbpLDJ8ZNLeJPQEoesK3ws9TkByZ++mUd9MExNZlXW2PAGwPYgMj/bQuJ4T7PnfwCzYdp9r3/7VG1KDwAt9GmbNsVXr4QVG22nWMUE0fkrfE/6IHky4x/feSg3JtRXyy/lLHJ9jNhiryoLLOVqmtiWRNdqXI6IyHJYQ1hasgJ+85cE2N4wQc6KK/fl/I1c5JgmWafcH5Ez3ag9CVQEFVyzLCU8F1z5+blt1b9OwfM8DRQviIOS6N7bIFYNQg0Tu+vwNZJsEWC7E8wJXINBdGFcC7gCwOs1lpEatFSGFECYtt3Y3z/vNV14+efNvBks04E6jZG+DJlPJJY0MhCn8182vlhTmWZ41wAZNHCDsX2ZAmGgUnmIVsml5zn14UpW+HfX44qC5k3ov+/KxxdCk5OfK0f6Co7y1CHMo8ck5Wlk9Uk2uuri+/mQgGL+DCS2Cpq8a0hmoxwnSszOpRg+hu3MXw1zbRCjAdsFzgYwm4BO60HiRlACHYcOjKLMpdPXftOrzrVOACAa66P30nCliCRXg4jWri3TPmJXqil6KNUHheBsv9yW+bjXmaQI9Eh7REMNjG5tugI552BsPUsHaJMnaWiEpLOmkaeXF9l0ZS/rOrpcWJf6WGnPo4X1FMaUCuFZbZym2u2k4xX2fCpHdRJQwEEQOG+RNzU0VABK2EprU6WpZc6ZhEtC/3RqOj0g2sk7XWXtgoKYR9O7zYw8ElSI4OZn6L1tZ3+krjxdOoebvbAfSNGap/2Cjr3UW0aPT6e7jLHVbiLFexsZpe8LHfXjp/ZAWiz1aQ1ULTs8cBo6SdQ2zXz/4WpLSoBZxpLd7/W+wvAzsj1zrwaq480VoCqtENwvRHnwfDQQoea6sTjrCRbk8UYaMhCNyklCdeSeUF00QLNROGYsGsut0ztUUxceIcolQ2PDVr5hp4CZAwHLaAHA/b5xDVobjjMtLU2MMSbmXDszgLFWGoOXZxVIXM0e62wo3HOrBiO0RZ6bJ5jXySKRlam9VRdVHurPT9oE1At0KuowMIg8TlmvDo0auKg9BlF4QXPUFCnGB5nZG8GFlMN76hM9FPCBiZ9ef+wDLyYCm/WQ9gQf8z+8REiwlRWmmtNrbuoOx0x1loYRTkuiFWYwZkj9DGaNvFqvWZ/aAB0X3BtRbjxlUYsyxAu3qNKdCvzUsuU5naIj55zAVA+je1WhZZHH0mpVNXa2UA4tDVHXG0V7m1Ip2h0hdMBCorR0BbOM8I7sT+aN6vwKZqOUrPE/wdCDY2x/byxf8tLZvWRy6EvNZyWz1FYBrYUoqJ6X+qIoxAPiTM5UKKJWiKEV5Hl47UkcVbn3GwMYTVRcbl/dDaEdu1qc9u+md5H1o+XbR3iz6VRJEHmZsUNTGJ6Mx3TCSx6t6vxua4+q/raqA45o1nXEltWrRKFgjYWQ/OAkywTmyrgk3k4fS8B4JCLzwjKggu9ZqeX8Y4+N1XEc3mv3ztK+KNOK7WJlhLBvrjCphkvIZTGy7bRgkJ+iCj9OI36KqKxAcHsvtfHUckpgcA1gPxrELy/76u2ZsH0tN/F+ERrVeDRd6LrtZlg9k6rLr4HLnk5MAt538LhAlTvM2BhprV7ID7kKopaqHzAyqJzn7Gc+h3aeddCTcHRg7pSeSh3/uIP/jbyhCLuey/pU228p+RSx9hBKZPkf3cxN5g8R0R+vY24Vtupu3exVhJrZ2O8MVvR0uMqJs7wtgCkF1vefpjnaHj8b4PVRHr1jDor0ve5RvdKyTCuveuac67CO28MKssEL22oV/bBsDYNJQ3RObvZsRGzRUu0zvY0s06lNcl1nvgVRiKynHqqGJ5bIBNrIWTbNdeajuRdRJ9n9rcb4+kdKr3m4KHuTQF7PquvHMaXwvWCDVH4DBvdR6caVIj2WIaNMv8vt2gt3uYhNIKvovKolOUXqKfKgcgAAIABJREFUtPo/uLbxVwHFVngB55WLnJO2MfbbraGv+Kch9lBAVR9bqqC/atl1BniLJ11CnJdVIoqhzEzH9LusZBBLNibByPxXYqKOTBLcMOdBvXmBMd1T4gNirHUc6nzF+gxcJm8srIEbmNWdday92ViS5XCF7PWxTV+hMixMa6sSby8ufyG0pxe0GyEuaRUFWLpABxHAIyvjcH2MYVQZZF7K+1K/CbXl6TWEbpYp/clrWn/qSWBF8veYmTM5/fMFGAkQI8Ty8UN5D9Wo/TrbDSQZaLd8qbcnop7qSOka6e62//gleqxrp5+uLl0kfauaSsItb2+qs116WFCpY6wxZPrzibVleUyfhs/ynz33ff1PFaiUB22zc6QUF6Bbfm3AmWWuXmnMC8CeYmYZHo5zHLSRIazVVlAW5JLD1HuMswyeRGDtKkL3xDswlXk9n2K82PpTaS4cMR0eAe1Celw27IpUqqdSwaON1whmQwbHirR7WWJfsWcwQM9Yq/jhTYiYzbb9CqFRTxcDaZGfTuv6zi3at9FmhfzBfKyXqrO9VXmGS3ebKHQEHq4dDQrYSFN7JLLqP+vHjv+ZksWB5epf377R7VnOA8C8K1r/oOC4iEMpym5Q2I84puNBTTwLmEWltb4rV1X5HRFxSr2mLphgQZ+Q54grvPjIzhancC0m0KODlksGqW+jPJI7Ob8vzVnlwzFNLE8GWJp9TGOaSmtcN9l9YJN+ePprzvdA47kuTolAgrGklsMwnZzbSnjZtElJXOMi/Pfumc185jTwOpya9ghLBbDnSZWrlsN+HUeSJ8iDuiuAA+LgzDkRgk5x2nQVosnQ4vzrx+SVAb4ZGAuUPu7rEHWbkSd0RLDtLShm3Fv3+erp8Ok2LWUUSftA+PYqUneoMxWTU5wXC1aAdybht1e117+tJkcJNjLUfWChTSrp5bWJmhqVAhC1GNeLuQD9kCrVbbFV8X3DfltcfDjrREXIeZDpxwy0KYsKS54+J4qdDpmVUaFsndpS9yT7refewSyRzQmtex3UjwJcxuNGZ0hF+bWGHt03MK41tfy+2bcRoaUH5tRFr5kfJDsXxKFawSzsmdbvzDddw/4hxKabySuC9x3ZsxGeU5kpcGa7XJnVEI/sYoavRaGkNmwaP/HKG1THBRC2xrIyyqBIHzNCd3hgY25In4cPmjwehcFx0ERRimMvdjgzdLPwtJVZoJtTW8sYDbcTDmzTC+unfYAdis12/bTWoV4HhZlqTQLbgdkubR08tc+au2Lvuy5KyWMVn4wo55uNhsL6mcJSODiHikEti5DNEx7UmW0jp481pKUnbW+YDEoXv0axn01tSUdburS2AIjT0VrhqbCm0v2ZefNDeS+3NHn0DCb7ekjKngXMqqZp0Lenj4M6jMZEyN6BCxyWacJkUfW+NKg+j6zQuqzxdRqSkIzczHRx9X7FUQF25614C6bs7wrxMMzJGLRiTuYNDJrgcUmsXN+xRFiLwQbhmoRJK7Zs0gBhivwGKCN9nh3QZ2lM4EKt3KbMgsZVmTooqy1/7N/iNd2m+1A/2oqyPyG7zf3xkPab66TYTmlTmvPo18G9x+B+oOOgUKO8efnnqXViFP3hsvstOW24mT5rtq+LBVdWWe11XDf5sxGvlNfCg4wd6eEkVzXMqYJZ9dzqsbMM2ILMyL/u06xluVJP+bn16VyeUiLdRYS9A41fw7yT1jmR11JmNJPKb8aa8YlAyWNH1VXh9CUbJB297ZOr7a8eQAr9HI1e8iKyNX55vqVWtUFxgVK0icozaFmmCbOs2Tnx6+k6cRFh+6xSeGpvES1lbtFLab0BlTzSHo8njDqAVl8HepNpNJbRwf4z4sa6xjujTYhOykztY6D9Udd92NA6FLvZ6e4qapI7PHCs5FtCtB7es+t6D7XdSVg6JffwesMfvL1PlMnew9qnjScwVM0b/UkFxDylCDODk6QarUft8SqIZ+BVKodS+hZPEGzvd5ZEeliCpTIclQ0BH+le9er2b1uohP0QmZH6XUKPKDm8Tm3I6avcfiiuyVHzB4P0Rfq9gE91NgnOOGTPn+RPFUIlwKf81lTgBN9rH1xmyFcZ9xZXv/aDJtWN0QnLkGou2V4yJaYv/vvuIs+QbdSe7vjq9O4ETj8X+WXN3ycq8v0xw/Z6K2B7/euYU9NGh9efB9k3FfzvZf/wPpH/wX5V59KW/GgED+UmWd5BwuZjmVTeR2o+Xx9Tcfmpg5/XEdEcbNqE6JI5vd2N/Q2RCMUsQUISTkTkfWaTVrGFUHuMYjB7TqyStoEXDlkl1IprOXJPjAlONijqMKNGHjKxAAhdsqbQlgH1rlOoJxdWONWMbCZglgXNlRcxk6p5xH6QBWiLGbIbz0l+P0iPLQ570uxVQAqw5fBfqnqkNqTinobbw/s4o+6Ap6Hxi+LzOAztjwMm3edeSzNV9au6yOsnHfEIYhnpwB//6JP6urLtIzUWXxXFEz21L+P72teN3FTPRUmzOzYaJVQfEJC/9LrkdCi/kBCcJ689ZcARwSurCiaF84Q4B6Kt1fohCu+N0gAb1RQ7y1wF6t3cvDappqAh63P90rQ/cmMdqJwo86JK7qzcbtxONl9H/juQQ5KEaXkCbNcBZgyWASLrVHSFMcKJZHzPpeSYSzxOwxANCUlGIjSNa2xZGiHlUvQcLBGlN3vaxBcE5dql7p/rlOTex00W6nxgvSJ/mgkmjomovIzvVHZaKLUX/J+8Np2pe2Z+yHN8XwfVdyREdmzZU4IP5OwxAXm91pfsTdWX7tuNwAd2bd3vntk1jsiExcIMrBPUrFb9ABNn1QWLEIKCNFORsV3ECzyL54zv2t/sIin3a/x4/XHsE/neqbZkzN41BIf2mz0AhCZvDEWjVNrqLmZksGj87mJdVW8HgxPyK0BUzFb732bpQ3dEMKueKZbMsU8Ca50aVUVGRtYP6101wU6P0RoSPASUZTBrbY/P0Pxestjjg6irinyK/G05mJzoONAOIh7TbbNY0aymshqbHcMMKKS3CrvVoTF/ozQIvvK9oY2SrSy6H3hwFnCJQszpNk+sNVeF8qzgOJaX9Jdb/ZNH0/MHPcCAHSUXEllEgSqgUJZvfKgAPiZmlwVLz7mDU11ZcOqsZCjK0/M6eNvELjEzZJBiM5BNLBG4wZQfsbfbUpFPcMe8Wl5RrVlg0lckg0gis8KUqXXfF8aobU7i0sM0iTZuKl2nAqWDI+VB8G0plyoEomVgaHXNAPCeE9d14edenTUEINmijzntq3/e0zwo/p82bP1H8q9zsh8o/cAUDpvAwg3PacrYroeXRxD7oTRh7HO1/duzeviV1HhJT8r7Q9bHdwfAla+60O5zeVvqgAd6wjqCDlVxk7o+eGw7H2oLmeb+No63+KT7vfFyZmEyW6npTCnuY3qRXJBIjZm1MRcA2IGXvN2stP6v06UTdMMeDsE0bFUxVN/AgRbzBmbV8OVp52zwTqeeVbCpbZ2cMaa91GaoGjFnAsUCip6qx2BEQykdVvKvGS1Vr4E+eQ7laaVH949lrPjsoZrT7ZKxabMdgJ5Hn8J4NvsdSoo2XWwpjZBhu5pnFWwkkEmBR3WJZjaYUdqsNqYN4OXFZ7WRDW3dfZE1f78v8slXbFtNEB1OCeEdr+17ufbnAxhubeUXs2AWHw6YpzmXtREBxztNeRZepJjMcRFRc3ZCiHnlKDdd9eV93c7M5alUkm5z+duOXvWKH2jcpaPwt02wgdkNyO4qsNKQl4cp+9e6frb7+B1Pha5jRDuAFY/mwQ/+Ue8jLlGm1Jy8iiVEwT8OqjJJox3Rm5vKC+msOc14VUVP4QGvIFlMTPz154Wfnx8wrzCBMcjCBWgQ5s245y2LYdbJWrcczduudtTfqsTVm37cwL4iD1WI8pRZbHKRet4/LDYaDu83dtbsrfKrRjTXl8r7GNQa0xYDav1eKuLyXnm0DQ/K6fXp9in5kTD/9cURfzFb13wjnz/V3o/3r1P/LntIfjAWX6xKjxLc0mKaankOU1c+CGLEDR09ebeDAMVsVqbQ/8AbPZ0s+X4D/fZNzeuLUu07mTLLxbOUqR7H+H4aaI04TQSn7ODgpKw2pS2veG3+YB/vWp5UlEBc0iO7dVmmwCPIoXn1txXKJaODRJ5htx3NTaufFhlsfaiLL60GW7nfMTL8LkLDukYB0vcc8/hOr42xkp0UEPhdbFBlkvWFpKqudAYieAlMCr/jPsK5LxQYmTGL3sCsYHe6yqWfXnVYJ4/dSSV2ZZrAH2jpsmyvTvhA3zU7ALUFK5GegEr6bcEYc6OXa6eKbDZuR5aFm9oGkj7SHTjiPq9cCHDtEPgXqkj9jgbEMrDWEpWp4AiURa7soJMSM+vMyQeQKLPqPrUuYlJ+WMjWdas+bDyy5yuGD0TdTv4+1OFKs5Jg4QI2TatlBoJpJAEjInmtHVxs3RElNS/iow2MVIWpj/rRSyFxnEmLbVop1vs5Ga+//uDnf/42AzjHmvYasrCL5hLq+z1llwNgXMD7b4Q9I3PMmI+Bwyg8jvuD8nzEER9ARrOS8TuMQ4XNJ+v/C8T0i9q3Lq48O+vO/f3Tl/uxjk8VfH/tvsX/f7we2vslmI0lPQPr8EDsGkVZL0Zqo6wDs8mI8A5m245u2hSAosVycnq9xcDbNHoBq/a78czW8jYwiwJmRe8x0dYdm9hSba2EHYAC4Ms8sDutRwzuNvWuOpRqerlXdSNfa8RkHyLLCaoA13Vx4ph21/Iq7JsZaDI2nJqYwGXxV+3hbecQoV3L23cjoObOb8zLKHzZwjM4Z1DXU9nfIhVM2D2ze5GBj5U3DzOdnjeiqHNdGQCFrInvpTxOfz5fZQ55U9exrq7QDn9VueAsF65blH9Bf3DmsGoUV1miW3QrOQbsUBXCmrlLIJYg27SsB7Pn137r+Cp/HO284NKftDleOqaGNteFcsfcLndbcmnya4+ZDJCaGTRGgsNxcJtCJIlniEw3SnL5JKdFrTgmtmm+1a+6Z0wc+ez4hshuGEy2j60S1O5gEN5ztFm0C+kk+XDQhCpIpYdiLAhi+nCblP/qgDkJf/114f2vv02OiQC6F19WDO3a5mCMNa18M4N/VsHXRbin7iUb+Sbe8OkKHEZ2bOBBe1Sh5vAiae6HMsyanUBs1ER7GVyTfACxagCc1r3emj5X9hSptis2KyXOJtQMj1q0Mc71S/CX16bbP7tdf1Hiv5m6scI1/cfaOvQUWPZUXhxfen11qIuBhJ3+WMMaZ66fgOXR0P2fP4UZ5FYsYtzrGUCyFJHBrBN2ArMT2MBsaonqHqiq19wBrCiFS/ki7+6Q2+Yr8r1QVn7IkCnzdNYS85KqHgNv/cLB8Nc2RQeCenjtyNsUGqVAwAHFph2m9yfLgRTJ5gEWbsVEhc5qUPzpxjLlqbUtkGj0wXhnmVi3YPSy3Fmy/vUT4Fzzht709pRpQ/PQfbjm9kVDiYWl1XkYHBcQsdszQISad5amAU6o/C6SEcpDmoMP4gQDOFWZNOVvtxR4m8ISavoaXqDpAp/Cvyzt12e+9/EqnEPwtvo1ScZolAYXWg6D3ev33JEmYAOxtS1aiwLwun4nndZAlksTmCOuKd94srEr7PuT3OCMlx+VrGGpy5Vs7QiFmqCr94DikKMwtSTst7KHPR+Xp1uLmCSE4HZFbR7bwMvYrZyUkTYmaPNUN6EVyNM1Y3oSpRXd672yUoI5dIbxR/758xfh758bEYCv2hi4GWMALHvMLkC7jqKdt4oa4SLghspJDOYAQJujHllRHHhgClFTZuXSlWZ1xruiQKmkP+W0wdaBikOyPEaCJtasjB2kQAdpS1Sq9zlJVnprXOyVValL4AT4TMeHKzYl4Yv04Lty6t0zzD/kTQqytJXKreoAefbsz6mGs3/UpN7kwMCs0hM/hk/GK1VZa8jpE5jtKSp5y/gkrSUtM2va0j9Py2G0aip8L/ncvjEg097rkIIgqLE7CYW2AmjTlnoOUlOzq9TZB6fzY98WTduwKXl34pkKCnIcuiAdQHFQO/VBbiXZlopqHn3XmHp1wkpZ+Gt9kX2t6Dd6nPKSPAX9FPPEKjwptm0lfeQeLw+XGgVYlrqU56l9VPr/GPvmj6O+5HybkUGpv7stoYxb+U9XMDq2NemWgMw8JKzVlue7+nr8Ood7x0063gYR7gnwUJ8b50XpVnEcsJzb+eHaDjioZKtUKQs3ELsb0PiBVMU+2fIv+mDbL4SBVxyBFKgjDOYR74UYVThkcFW8slKGMEEBcgo3GIQ/rwuXeB+ZGPfNuO8bEjzqU2aiMKw/ptNgfsc1EIUMdiWRxjrb69T4yriNgQXM0YVccNV2UZMCIEpJX4Nwv2c65lWF14zQBIZ8Nc45QRIb6wu9Jm4m/HkN/P337QM71mvt2Q3uN1/bpui3ebQnbFQU9fb0CRSpNYn09ulP3qWUJvCcW8/petmWVMZC5JYpl4aFem78V3qitZz//rUV+2U9T8rqWzD7T+gJjjsAhwNmLQG3wy1igae6j2BWErvhiMQ99abUQDm91mtgNjfiA6V5xxGd6qU0PoLxqPwIDNRSl4IUw6rgq+6SwAHM8ur3NcNOsPg0MvMaKijKM/AARXbSszA+01Q/az0B55CXRED1VbTSad5Z0/fLoUCMJGBxE3jjSVaXe9myoIrUKxrat02GkOpSLvwIdiozKF/a6AZt1+QrJtrXLvhHzUHuthnEL4AOxR8bBGnTsyUJwhafbQoi/MoD9lCVy1/S1aHojPkNpKQiHi0jUypkPuoFCva4UOaDMrUllxZALC0ZG6JJrms1ZmWfa/aCGTerjMO8sUQh7PADmk7hnECakE+/dDyq41H1UJmsNl7aIMzcdU+1IUrLuXTxRkAk1l4Y1YKXXnmT/32yJQqFxXGpPAzfoW/tcboGqX5nDALksGsMEK4/A//1Gvjv//MX7jdwzxv/+vuNNwHjJtyYy9NIK5bUVggzzG2uTLfVp/uwbrlwtuufRrAXwNbGp3KyxDIPXNdi/P0O3RaMNAfeRrB2DRdIO8GHJ/7+AV6vgZ+f2wVDp02ETyjG+7dXM+l2aPOZq/VXm2rrmEP6LkQgPFlt/l9AiKWeAxHtTMyW4SyE/z+5vpD6/9WSl8J7yMrhR1Q8sKFzlPHK6q/BLHuK53ZUdJHByQZmP4R91Jq0dKci02Mf/JEEdgeC4Wypmm0aWXW4G6gKjhnAZAaRLuTQpnqbebIBQ3mC7APcwWwMIUhs0zxpZ4IwBU59T/gMIEK+orskr29NVTohgWPntOHNmCN689KHPoXctYbuXRXyTjCKznjQHRzTQ/tzB7ZedANEvxqyuSC2f5rXp9m/lDhyvVy/CpNqNs4/VZ88WpX4kinKH9dFWyU9q63u2qR1UvtegSuIoPGShAViX5e8GwQS/IMB8D3xvhcKmgIafTZG1heZgtUBDpOjSKu92nj2zFPadtQR3KFpKfRLC5s6nhN6r2PzIBjd1wj7NjIDYxCzoP10AomMV4J6YCOAhcJZDI0rIr8nWp7Yv14D//1//uB1XcCL8X4T+J6YN9bX7hiYWF7LQUpnPHxb5DusQB6ylwmv1Re9AB/4Estpr2ppbbuWUEYqWBWxSgtAg0FYoFN5EvWgGQ/1xFgM5gTmBSLZvBwctvIAfuaN63UB79tjZgHsS92p/D6O8GTYEwukSSlnms4ylel7OGqZm8IIJG2egKitYwzNSpSX1xQKt6lL8lDFUvluTHBGRB8vSr96Y/b/1VXBFf8b7WrK+wqJf2UR2++X+myT1qY96VFtfq0jPOAmRWs7Y56t+gDsAEB2CgkSnMBc3x9RYkKLOYdAeBop2ZOlMKXOj77GAaWqLF0BtB4yyRkoGqBizy+K2rhQ2rcZa3nGWHtoG80GGFebcz+wJYj7mlN4nRvrxNqCs9LnFJOlcsSIBsXMlmzKPt+QsrUaDqk0j8/GbZ7z+IOMA0a7+Z+DzbVMWt+OTBvNrk9UVpwPdSOaqMYTWDO56sZ8s5K8UQ+pvZtqoMawnMtLTiv2Lks/nspCygDrx1N6K05BbBnLjaHcy9P6dqsTw69MH9HavWhg4JKYFbrWM8s81+meYzCmOK1uuNOv53UhdQNKzpesG9l0g40r5iOIjcUpmN33B4s/fXDqYk87bCTKRsA1rONDFBQBeI3XsPTm8eS1MImYcc8JGgO6QTfRWoikY50A0FDQJl8SBnLFGzvWdPhffwb+el0YclrIfU8HwgS8aHXQHMCthwKA1/YspjQWgT2ocUUDcOMmz3cPfW2dkRILk7fShDZXrq40rgG837eQnYc+AeXMZT1RbpV1z4kxyM+z51WGDuifv994XWMpTjMR9Wq51DyPWqPRSJb1DGSIgOtFGGMscD2B+y5B3Y7cD1UkrW3kbobrCU+xJ6Qmadf657K+qPObJKeXXxPzzaWTwIHPwGO/fVNelo2zcetLKD8YElhYyOK9e6lk/QjON+NXhnF9oB+O8vxB8gHI8aYJYEgOI5QSUkgHVzR0ZxMXW72sB5dsm1ck8pCWzl0sYnum98vI+Zhaaiujmyguagtgv2Pb5K94et1ZqeO6GG7rtvVEzdLQeDwji1M+Cu+SEVRv8G4/U3uSvIZCOSaLMtXG8jpNatDNzvCAhi+EpvpvS99IlXb5xq/cyRRbVpAmpbbmHEnTfaN72IdDLS6Pv0NZO+m5f5LHPT7rbJH81fxPSpywrcc+0ROK3RJwvrVnTCMMvBiPS/bcZaOrX/o2OG5in278Tnolxz+DNQZfJ+GXANEIeiyC0KZNJHv6uRc7tyMPtJxu6YzPmMLGrSowzgM1lVBkwMe76JtZOrep/vXXNay5U1bEM7N5RF/jkmcCYiV24/JPd9sHlYgwaA0vGpeA3IFrEK5rLPA5GbhWDOiKGSWZDhu2jQkBuOhaxzCaPRYatL+M8aKoRHOzbpYYxkJShmYkinZMwtpcMYbThDN0Th2QcwH4t4YTROOSlJaWM2ELJWgZjQHKOxSwt1fb/37PtTBsMKYdWVnaGurs34XhGQZsKmybjiJLQyHJNQb++7//C2DGv/71A+Zb5CeUYb+5obeSWVBJ97u770rkpBLysHvoerfktcBzvk49t9dW5r93ee913sB/Xl4ldI+h7Vt75MEE6GHzv8qWxE/O+5pu2LZk5i0/qmCkBwWL7XZhY6WP2/U+hyAt5R/LWwTHkbaK99N0onVe9eUP9xhfb7QSrQWjgRYFY/4RnZGKj+ZkYaGLvSQs1EGdGssRqFd9mPhV5cV1ltHMK+aQQn7NFahV85kNvrCqnteS+iaJP1vhuhfn0rMTPpWX27DWCXAa5rbg2OpZFCQHFUV5jPpaNT4VopGvIner60IUbOiPxepqyyoxgQ4v1lNwJiItXqVMe6Srpb25XHbjgMjF1Rzb01M9CeM4IDtdS9QI5uGLbbU0Qesp72Q8B1Z6eXVgxplsILW9quC965f0M9Y34uC4KmjRME2UCSDZLUpDGxBsLfORH8nMnwwr+5jVN+aJrV3E+WFSmYGejZoK14ro1sPc2AGhJQGA13Vd9uImx/jzdo8oQBjDg9yHuAEGLbA2IF7YMdYzIhANeeZ5aAzMN2Pe73V+OAjXIBAu3AJyCROTxWUu3khVznPqNhM6wlXNcWNYC6fT4OksOn9AH5R/audsYMzTzBC3agJm9NfadbpKpd+/uGwyXKf1ykCZ8sWiccSxSf8WSDqBSH1d7pYnfw2ecQ1cr4H3PcXNrH32C5oo/fn1Ven7DLt+cT0UUOs9Zf+4O9N/jqQDAf+p8g7K8unBJ43+6UWdxuYnTjfNTZp2T/HR8bu9r9Y5K5OsfvZx0GmEXF/UJQ5el9Ng1aX6V6dB6wqCMUhsG6N6xzTdBgoLPoXqWY6xtqqPQplqwaiWKvaV6mnEvmVWdoqye4Irz5pqrTzBHr7Ay1uoetbTO28TUAlhF9ak1GdqTEvvacga1ZaT52NvPeVK+3HyYJvizjW5qNi5oXxKdwFi6S/5rEkMJSSAPHe+70TnJy12Oo6xD9q648WDwqqvuPI5wU1gO7qXc/Or2eeG3LyUKQqDzp/qOyQEZ47VqQI81wYGU2VnJZ8yaw2sNUh6LK7x98SPJMw+qn2mW+so+muGQj8YhxaQDiphBvUDomI2HXh6vuG5Utu1gAigKRxUTygvRqonFgI8NY7jGiuOg6C/x4qRVQ8t1jTz8tSRdSbLl+4FAsbALeVPCTWYc51gdc+Vjnl5GwcTJql3eA3buABs33+MJH/sjcjAZusPQmZ2AnMVzHIRiAOwDXsTav9EctZvV6aOZQXehviY/CXl6fRZBrORvuaylcblffG+1jG9fzA4PXMy/u///AvjutZpZmoN4xntlk8lvNLobf4K5zWLvJ7GcW2Npu/roq17v72S8q4V/KKc/9hV+5Fb1n0ooCKfviG6k8bmyMcqQp0i9HBidGJZZ/gCmvymGVsfx2EOHYOeIoFVjunk0UZ/yY/gR6VcHm/Jm4EN6aCC0Gis4KOlPwnXRWC6fMYMa9zdU3QIrdCwGQ2Rb4aamJBbEGM94xr8AH14AMR5l5PYL8mqZq/qhDh2VW1S2NnAVB7V5itBfhPSb0PMtldz6i3+leOeq5uItjKXplWrOYg18+r/vI2Zpo20e6hYBrRymUeKUpNbhaXjOcT3Opne/hR6iNzfIHYQV49qr6FxUp9Lw/nqj0bH1tw+SadETuX4SN5piDfR9vgwSJIQu7oYFLY8sS+jBHTSqyv6o832xexLZryMSQDmvfDOdWFCnIsTYF67GekMuv4HiG7VMRjDBypfhBjemJP7i1FBbGFEuZlNuAgPyILTxDzEj7CEpco4Y2UIseGzKHEvi42Sf4l4rc6XAaQLBVRJrtOnhvyWsAEsAPu6BsYYeF3DvLBDvAWDfM+5ORk8xloZC8KYA3z9TlyZAAAgAElEQVQx7jEx7ok5x4oPnYwxJ+6bZXNvaQcEzIqpmEzQM7BzVwlYKiPXbUdQYgmbBQFoOy0YFyuCkJFBGUr8/zb3bVuO47iWG5Qjq2f+/1dPd2fYIuYBd5CSHVl11hp1Z4Ul8QKSILAFgmBOywkfcakmhK7c5PnjQ89Yvg79Z1pC++jiHEpG+6tNqFthk5NNsaTPU4SExAxm9QOm2n9JkC+X9j8tE6KqKc4ogy7KWvJdvPpAoO4ybubxZ/V+8LqXu1gJSlE/QqSpbOO1T5REvjGBc6U2NDVH6jxtHHzYkcpU81Qxt+aria/avtJVsnPQdVXB4mbQyyuHsuhspSiQVS5YEpN5GVcVn1osn5WbyhXU2ErXMfAYRwFMrIqaJuHFUxVdLyn1bvu5YCRtFqU0vgrGgJ8yZI0yMVQKWvc2GE6LaSgV+b2xZ0mjBOUBLNbcGnOlgIrGUEXucviX52nBjP0HV7OSbxJUsXeVRoFM0d1eZOqLXlAfqAtG5ZIgVl3DfSAXtPZRLbKWX8Tuphu4CABJ/Gb1v5W1k/+8T+siKen1nr0LpEi5LzrrrBF87Y+5ZyKHAvkqer7s9WnpWJ+rbDwJOIjwArsu1STu8lGkZHcnUJfJKxm9qFgXyPF83diV28qbPsjtTj+SQQ5IfdKzG56qIxPM1iJPMMv+KgZk45X1ga88scQSHOZGQIRBAl4HDRzHwIMUxI4D4xh4JJ/YMdRnlkTQ2BenLEFPnMx4jAPnOfGcJwYNDJp4nSeIgBcs8u8E+ADzqQJzejnSPgaxni6mWoNLENHolGUTjIk86zzO/bgDc5rfvlCME1x5ZVDFWMY3T6B8BK9Wwfk0rqQ1cgtyoVvhZi8y0OuMlNcMlzZaP/G9NXbDuzYRQbLRiwCMI7lHzFBkvJsgrrhW5b29XAZfKZOr56gKqE9oe2jPFxmagfT72m6ouL8+EfpIoOJduiJz81hupO9t/dIpdyC2p740vmb2NOGEhlfXqtM9JyB1kWbzii7T1geuexKo4pRuwdL20e2yRnfbaxm+m97TW9/nUuH/Xdwoprju0BAQe9AhJ9toyBBm4DT/WkxEqLG62BkqWUcn68NN97EKRkKIkuy36e8pOsxWImKK2oZiKs1z5U/w8bTOKLYByv2fBycTHptfAdLIBUndF9FvdCaZignC8HII8ANovPGtY6R9iUG8KbZMn8vPyXRcugVKG02Jb/YC1/KMsKNsdU5qq/+2tq8rJ9yMP0ubs+jcqDkAuAqJ2DTYJqc9rn1yeXHs1l+B2aaOzHtwxpVqQvlvaTL1Vi8qv4qPbRpt2RSo9fv8DD4nSr7sHPwxwaA5wTzFWAQUi24Zp2KV1b7Jbek/S/44eMnb0Z2/ebeKHWXMNN67IbRn3szel+3LY9UvNqcB0HRyHmFFU7Q/WSyemmCoNWGQCM5DwezjEFcC+XvgGANfx8BxHHgc4oJgllkJ1WXgTT1aJ+Olm8tex8R4yfGrJgifL+AB4KWRvnlOTLKNYQpldfABwpiMky4YsPTi+6sI2tvPx6ZqOdTjfu9YV831flHciRPi5BuIgF2sAVU81neb6401YS9+PoBjprGM9kEYx4GDhkarYEyWD6eJs25I1PH7Eej7J0DsJ9eHvHNd3x/k+bt19uJ+Wt6b9J+C2I/Kd1m4L3MBVsv04Tam97QV62T+WCkI6ab+/p4bK74x5brlMSuhlHxbn7ZPNtbK7uXsziXZ81K1ezuqkmQnTd5ftMfBTCGptBWsuBm2asRaT1pON4RqWCwB5ESll+nvyPSE/HbQH8X1zkRo/paAlq7dANp1EGTVi4GRbeQZeVudFH3F0bpcnhmFal3WnDTSxSc3pWuWrDpuiSYDYcuAtXtqP2jtwrCvJ8CU+Znrz+Xi3UDdEfXmKhPCJuoOJeXXmaf7bErt+oAkt2NvhagZ17Y1BKcntuEmqxjQ1R05C89XKhLQfHFtsxuCcrk237VtPsc4d6C5OLC7/HECsV7mtq35lNNof7a/3V0+FRibj45930bj2njPePd4nbLTfZ4KZlNfEYkwHGKOFTAyAsR+PQbGOPB1HHgcA1/HQ/8mi+w4dPOXVMisu+4m42ueeE4GvU6MIQcGDDrx/ZL6n0/gcQiYPQaBcWDooQkWTi/TO/g6CofMTr4YoDwxAjCy+XU26224HWRJL/nHMdJyKUE9tP1aLGK9bFhZjT6lm8vrJpo5xE+5OFKvSiAJz/ZyjbMbgvtWODK8MNIPn1+/HvjrX18YY+D1OvGff3/jmxlkDuvd17GbYYoga5rqg+suVenOLN8I67bot4V8UKN3+bUVdV0Gxhuf1hLA16vJuKpT9cNV+YsE73o2zSe0IUxZi+WuJeF9lk11dw1aL9t/YNdqWao17uuPp+buJIWhzAPv/wJo2EGK5YsxbjVZNYYPaIhhiWybaMx8W4J8nRKT+0zx+zIoi70GqRK3DsecMwUXjk7SOPMRjpmqexaIwFNX0jo4zMCSkSyVFdCOEHkOBAYg+zgyVix91CeNDahkyDF+XZECSe6Rj4v31SQQ5eVWSkxjaQfSEPhgi1jjABgZ0OYm2Hj76l7mQ43ZWQBwnihJhpDw0fUHKycaKA+c5++zOjTKpsM/AC6R9AeJrwupMqNrtMS6MjRp9c91dCvwAkxt1Rv19Ku08N9EdcU1+4S62ucl81SZUY+JZV9hcRKLJTXK8aZzotXnQOWriJAknSah+9gnHiGtJJXMwTiZjIyVpHkdn+T+4dCtDOyYtjyZ0TrSNscwEB7nU85+ZT8eVn2pRrgTyFFpAmgPtbZ+PQYex4HHceDrceDreODrMfB1HOJycBCOcSiYtaASupOWxSJ3zoHjPHEMwus1cWJq+C7gCeGb5wvgIb5lg4FzDAyIdcE2NXgMtWmTemVDBw36+pIFqX5/Cw+okKke4WVAvV5m2XzB0K8d2QzhgLsr7+1l4iPa8qkY+CRdBwt3b7usW4hOQqPOZP2rVn4iwuOhVvxhvrMT32qF3/sGArHkuan39roAAvbuTUdRGu4tS/Wy70gqY15nfrVLvb/caFP8mq/o6kvJq6Iq1rmljcZ7jXHLXS3xnXtDGcpNfVZTkcELRTet3n0BbImQQsrRuKXwTOTa2rv7rc500WE74w20mGJ703Nt0mbr6mTZS2Dlnxba8NRwir3XnMBd4P7W7gZyNp+2nj+PmXyjD3UzmFhyU+3ZzmMeYqgAF7icoGJEyARFg7Lk7BERdjKwjgv8b5WCmfCRn24mV51fiz3EbzM1OaHcs6Ezo719rHk7LdvonZKv1gHZSTkDjUYbATcf0dfXOwC76JflBvvBuhLKbeWbYG4+F/Rw628qtvCog/Oza1IXNV/mtbnVbDraybbIIsIz09pQdGsaa7bG1jLfyVEUoJxwjDGqszk5Psz6k+fZS6xdVTcdlT52d51MNrVx2LXVy1rNlY8ph/V6OWEZ0Y1Y0OgDapk9SMDIQQnEPg78Og58fRmoNZA7PB8B7tA+WaIQvM6J52tgjBODTryytU//8WTwYEw+AJ5gPjGJBB+evFhlpW86k2egqe3r/ZO4jxGAwYfYhEk7wEB+ibndIjTIgQAADqtH+pDVOisgXOJpcB7k7Zyn9N+cpomAZZNZCyWzKX+Nn3ctqZY30TEXqXSiTAhgfZ7465wY0IDtIIDiK7DCrFTGVXttml702actuRWznRF2kvxeTlfBeZO2qvH3l2x+vNny/6aGRQAzmjHT1GMDNrs7kVygT+jZ9kE83Cq2T4vxl0tjbi/bPR+6ittg7EaH3vYNJ0IzUHQFkcFHyre1vKcqLCLMZMbrZAxmt8cTAedMu5mhhbXoLRayywoWS2qvqwvF4ArKz+2JRzZgd80S2TzUDYFrQWn6yvRSXcSx2SoPpferz8tQustVwAmnqWxKOmgoPEcxNtJ3I60mDtcdufFEFd43I7PL/JQjgJaO0fbAhFKYdUALsQgDtin/LhBMB7Cc2rutukpkUlrnnaQqndBk344k3j9fFuXvhGPS/bvKxNw1W/pW2CKi72T21b4A4xljTcJuhbTG9l/BuFlq2X+3FNuNV/GsHF7AKxKqgLK/JEABqj+eZXYUWR/uCPn1Tkem9qdyCm3eZ2kEFhALjRpC3k/2/nFqxxywCZIAmn5my6atsMo+3OoqfrG/DMw+Hvr3wNdDNoNZmC6bqMzhk/s4BPwdLwW8aRne081D48pOTCYJwWUM4g2PcFzRESuYTd2xQbLpHbp9IHX6xZeD+wKT+a2ZFZZ8KWCynpAGyEfFO229pW33+11BP4FI+8unhxd1BSLXfDwZ8zzx7//5xnHoRr5zqrVoN52vaGZ/dW14uwGxy67JT6j/7HWt08TXJZH/n182hz4c4J8Ve/mwc/TPuy4PLmPR0E0E5OdhcEgC+x2YpTYfm5IoVTRyygrErrEdDOlvghySQgpAJFShVDAAt8bZISSuDFvfs57IFXFgqZGxISo9WshjuOWL9MXkBPQ8Ck7q5bwBOLUx5s0Kprx+AmRT1mbGJ8yWR6SuqDeFDhuf9cTIUItJtxgK7DkyqN2NoT4veTgACCVrKtNMbbuW/SXsJG36YwNi8/1+ZTDNS9s81/ph37iUnd6mWuq6fJJp3gCcnnR5PTeDkIjbhgf7SFfkThWTlk8CoxUA8/oB0uvi+LlWukzg+oN7muLegsWIyZE1nsyQgkSQWMH+3uRblNsx1p6Ncvr+LvWeFUXXTLmcKJaMdw+oK8EkhpyuBY80YGCRmDCOFCuWZCPX4xhqkX3g19cDvx4H/voSMPt4DHypa4FvSIB0qFgSNDqBuh7IBDy1xQJgz1NCch3jwDmAMafsTqb4+hchuYdBa4DdmsI2FRQpmtKtYFYFfjIRmCCGbqyw/z0eh5Y9wUzqGiGWinmy9DcTQDN8XjINu6vT6YTm0OKE3o617VflXlwu/KlOgNK9dIVIcU4Gf0+crxdovJw8U8Cz+F2QM+he9FQl8sl1F1mqlr5XiOX+o7KKav7BtajeO1jeKuSfdMlFEWGV+xGIdQBwR++Ov7OyXJ/u8N1S5KJY07vJ4WyZrz0Ja33Z70DnKB3CowzgSDLXBTvDGa73RwWzM1YmvPIEb7nSw7oxzH3sAFmxR4zZyXISkHVJjift3ZS7gxmMoT6gUmHZVLobM9M4GgC2tGkSOJ34Fat8NnNrzNSw3EZHlg9l+6W6yEW1tZFioxnlnnay25Yldy8wekwGW/VJiftctE4Lf8HwK7Y+MKDIRQF7XyaFS1q/ibAlTNNM1tm2zF1YfSeLlFyGugsa89qYuJ8DLq79i+1SeNsgF8PW9M+F8C2qqQOq7e94tLP67Q4wiN+2XrGmuZRyd+/SZwi19ocMNRcB8ueXF3fqqHfKBTEc//XhCHrcMF+GTxmnrOCyOef6nigaBFZj02RG3s1l/xWALOWtQxgUlLYVa3hpMUDx8duHK4PYtSsJD9ugYP5MxDLxxBgrUQoOj1Ygfx/DIhYceDzk39fjwF9fao1VMPulm8IOXXIX/w856OA4plhi7aAE68/J4EOtsOcAT8IkURqTBHAfcBEC2pjPF6a4ZElKvoG51y40nfSoyit2QUPEIHqINfYgHA/Cr399QQC5fihMieUox/JOEANjHGAeOGmCcfooXVPbL759e9WEq4vaTYGTJgMNay45KX6WiSJpT56y9yPFDc0Wo7dtoDfvPdlFY/dOoO+v2ywhNLZyaqOU31+VzhoQpVf/B+3J+RYlk5afU3VbXWTPmj+e715/C2ixdMtdNf0K0NKUc89wctB4M63tIfdkJxzMmlh4PERJHQdpXEcSn39OiS4uUXQhrP0QAKepUjDTRx2z0ELabpdBqS22r0uUDIuLeSrSN8lGjgs6rc154qeCEp9kir0urScbWGSpM0HLBZllFwdZviRAjzeHK1XO9SyQO384ZDAMGLjIdKPMLy75roayThFtR95DYS+tiQvICmbdBDOQxpV5ZdouFd8YtWoCpaVhlW1ib0ij/eLKIeVWwo1UjhtuMMdY/3KevBEKVB9u/XabhXpfEJKOS69XUv0mW+yJ7TRNK8sYikK5QVdg56ziqbnjMdYl+rWBe0lYXRMTD7fykusr8iY4ALKPBbLyfjwGfj0eoEGYr4nfzyfwAvLOrOHMR8BhJ5jOVJ99sAqg5E3fbtvCnMLSJgT3Ts8x8GCt2ASWff0SU9mRakh9DIsbSx56S9wL1Dr79VAXgwjHlYHsZMYxGeOcGOOUTjKzuwK/czKOOXE8BsY8cJyMc0hkg3EOTJJNYZPSZNp9GURXbJR+EsgmiOzTKL12idQGg2gEiB3iDDuGHMv6+PXA1zFAQ/w/bRfx9/OUaA1fA8/nlON6GUI7Dwn10iaq1Vl21mZCnNGzYxSHIHuHdaoEbO8SAGjvKL/fFbg4+tUTRIzvlspdmfdXu8bQzV2QUZzsLi9KdF1Ud5f7Mv1PQOw1B3eA9cdXWh66LTHk0Prcsm6VUSivvd/fnuF+0NWavtllrugEVmCwVMbLnQNHoFhmiUg2sh4PHMcQX//nCWvLqR+uS9OTgi/RDbwtO+DSlqn9Izo0cCkniy8TD82n36cXZXqQDGl1Asi7VHD+Ek1ypqhPLT/AcCjSbJ0tHyF+xBf5cB2D8PVL3NgmA/N54vnSDwZwiw5jFERfxhZSA8i6E9sVPidxmRSn9b+mC7c1radPxjS23hm1K8pl7mW+QZa44hXqeZQOr4LqOLa0rqqSKL4VHkxre1r1Wf0VddABrbU9TYBsifdnph4+nPhbMJxpNd7t5eXTpFqbclmeyPjBfxoPSBr/0Mr4IPUdkRjdTuW3Oa2MtUWlertZ9LzdDnT/gN3+miJdOWSCN7dXaO59RRUL1uNhDTXQrqvhQ38fA/M1QUMOsZq2QxNhXHTx82aca7SENqzZd/ZCzj/irk+dxIhkhyJkMHv4oQjxLzaA/XoMsdQeh1tdjZ5zyqlPpCAWD3nGJ+MxJh5j4KSh1uBwZwg/VDj/5F1274HKTYKt4rl6qQMJdiltffD1S6zSx3HoBgcBs+c5QS/5qjnPE7aMFhOanAlCSyUguZnI99eN9NoIP89SgMpHmT+6rLifApYAsR8k68+WGXp9ZavVT5q44Yz7Qm464H45/502urtMyv2s93tkpnhxVc07+v+p651U1L+ZzsmNF+7L2Ok9IuBxEL5+/cL//T8PgAbmOfEffOP8Pcvy4f1obSy/i7qrKeyOTVHYlN3sCuvTWBPqgzTXM7ZvrxMiuQDmvJTVMYWLlV51BrSu8eBL4Lq9GL9+HfjXX78wDsJ5Mv47p7hTlKCVtgdBhKm5LAQJqQ83XZC6zYm33B73IO3w9n6omtYx1CKuuE4La6+kyy4P7C+9f0g/Br3Qi3kcZkHsLs7/odonQWRrT3tdnhA6+2AxajQGXLY9baffTazDBXj2rFzT3SZGZm+5NXcV+++G39nmXf4y0zxugyRZqXkatrE8Gz4Ij8gRYSgv6U3htxJN8Sx3OHv7jLKJLs8Zsfpr7pliG/7GS+L6nxMsSFwNmcBQXPd4CK57nYzn9xOvp6S1lWUBsbnBaMOxA1wXb9mg8ZrOrsfyIvWHxyxQFOJgVk/3emgoJfkrxyR+6Qawh/rOinuBFEAkFlmaBDoJYALPF84pYbvmMd339nkMjNeBQRN0APQaIEz4vIaCWGjcwmyO6Jc/t95sEvaqkxh1AJwxbScrAWaZPgYeXwd+fT0SiO2DlWwFKqxCyKBYWrw+YvWFI8SXcwa7bdDSa0neRU76vVtV/BS8bplyj3b2y8wfgLIiVHdld1X1+VXZhRbW+KyQnN4WJ28KWCbzRVG3Fd69vVnSZ156awtQUlWuuJ29Mt9RSbunba+YsiC+3K297RC+TsLLcJT5ywwJ0/ehi0k2FprektjZB/7664BHaLgJdVSBnRI4uLzPXZrpd0sQkoUtv/euNUK7LFvzeMPMJaq/zHimgKccHq8BqjoVpQxjkVa+8VsFtIlqtXwTAY8H8Hg8cDwOfX+qi1atmu0sdWRLK1KfWij7eMdqNCiH1nR0S/ljw0KYkfoEyovubZF50a/ev1m/WhtMV2yWg2S5VQqZGvfXdGCZdj6gu4vir+mcm3lPl+VYGuuVD2RWY8uiibjvwcq+rDGO+cNkUQddD3HvfF5+Wj7fwObF0tIoiyrh420pOfrfLPZuqLNoSjC+ixUBTwdy9wRfFU9wdLceX5o6rU/6WHHqvhgnK4/sZ8MeMsclktQwUO1zTXluyDkCv3594evrARDjOCWu/3w+MemEBkWFgf6y8ppXaVP7whqL7cX5h81Ttf7au0fwGXlCAWoyAOKndIAwwjI70j8KP9gvBaGPQzZ6fenhCYNis9dMyksiEwycc+A8COMYfvTiGAN0EOhFEF+TIfQY45GErxqD/bxzCdlK+mUA9gUbovT1czf1KHFo6jzv88pc8XWuvroW8sZO2knl8DnB88TJGo1BmSl/FdVRs4x5VjXw0Ntkrye5UHN/r5Qx4qM2pdeFwvLr6koZW7u1xpa2l7iR/EloXF/3AjV2F78p4xbbXNNAuXzyJ06T/M1MgAqwrup5p4926Zx9hH+pv2/0OKXbUD05g75Ygq3e0FleVk3Ws0zzNWsH2GZ+3Rb7ZrqkqZkeZOR0UUAvz7Km9HMCU8n9/d8nnt8vicLBAPNU2aTzb6aPC+YWuBZYNoQV6gsF6x2jAONd+oXXKO77d3POULtJn2GTPoPZhsgLtmr6iwgYA/Hxblp1AjgGiA55fIpS/H6eeH2fvtfAa9RKQkSL7Ft9SK1nTXAqKC0fZ6kPOPqo9s3681ZMXaWzKso5JkZPHdMiPXPcUwNEu4TbEnjl+w3t75sWmXfF1JnPLUsr8Z0DJausMjbhi5R38jsPm/uj2J+mAyl9sBH0wBKKecNhqjC6AP2eZYAOPVRA/WMdOJKE3LTRXTbQuVEO283r/qS9i1Bx9r61B+Z3mj5GmdNKToyPjRdP0jRYPjyzJBLobdEYwmc4uxMUyVX2zbT2FyzT2xg/smdcfLeyuRZAUXeEyfK8upRP3iL7xqDqckCj3B8F6KrPBYDBBEBDaWlYL9KTwzzMF0XZIIq6YJ2aJnPujCA63mtDh4LZaPtGwlrZrvRSuaWj13qN3+dkzNcJehxCOzNe6tv1fE08nyfOl/jMGrPsdzRS+i/HZComjM3l2qn20eIyu534a6F3MnpNSBflWp07VZgZuiuUq4qu1K8l+QykxFinope6Pryc3bg/2la7L+BN/72rPw3wFnSU5GHpucqQBXVBJXyRIV5unqzpa1/NAmbXpfZWdGvvFiT4802nbnlxf4ncAogGXifw+9/f+K2RVuZr4jVtWZA9ZraYFlk2qE6uMN3BrPaMf9xbgypt/biQeMv79jdeWizvWl8Wb1TKSONiPoGqbFlT9/BRLpuyHEjsvPppiuHC1Mp5yoZYkYmyV+L39wvPlyxVzvPEqQc82JK7F8lwKyKrrCzG2cLmtSfLh77xeOkrKjxUoJu19+60sXw5YLH+sj5LnbPd3MOtDQpejN6+yayVkDXJwi8X8ubeI2sTomxJ0X8Zr2cf656D1/ukf7kn395vwlwV3hu1MIr0hi3cC6nIx/CNJRBKyGw2fAQc48DrfOlCTfLNJvtwQtLLEn/eVwaMltwVipfid+2nBTqk7u4WZ4Z8hNOOSTSVRPLI/RGAlifj9WLg90tXkwnnc+L1fOneAMbpuKs0Au2L0FfR+bzCPlnXRDG28cu9i3Q144HN5X4gVxfF1DBBFP8EmGZ/1jFG9K9umzVwmsFvfkbmL2V1MWuMPX1/Td3aGUBRXPKmT5xN/stYsyp/9AheQAKTA2dYm8/pgv88T7HavFgPCGD3Sbn2i8mz7wpt/QD1LOt9Ww348+vj7B8k/KisN4nuJXAtp4C0D7PdlFe+Mt+Vt2O/PwWx/1T+fvU23JZ/BWD/5HqTs+u7bZZ/rjOY9ZjXcyrICjAyhioHAr4OWQYfinFmWpas1gxsLLMrzF/B7E36Nw/W15WgLg2KLSABxQShVYHvKkgo9gI/EYm/8ePXAwDj+/uF+ZSEfDKemHi9zGoLXb2zMGHJbzcr7g0QFzBhdXJ6W/2URS0b3QlsegadsNt5zfp/8rZtOuVaNnFKe5WE4f2dMFtqSZQVOhO69YLSuz1p+SpG4QLQr+BpL+AT0eaDsi/E+3zNLVgw8q86tAlXuy24lJcsMX7xLlsk7SONCGK4A3x+m3nveBBekzAUvzCTyAvDNObiRRVoStreRnux8uO6etrAbWsf8678zjfrqDkJOgcZpwDil7oU8Ckgdp44i7XYGOciKgqgsayxH39nor0cJyCijk7gkRl23YLQa2+iltcOcipLOnbw6SD6qgoT/kYtgPIVTOkFp3/b+msv2Um28P6zcq7QKjWOkq85A+w2kCCJsztPxgsn5jnVmizWGALwPOUQiDMdhHANYhEJ8kTfTtiLZ8UMI3/F4ds0lDKaT4517G+x2OblnidvaLx9tgPsP0Cbt31bLTbXxd6AAa5PmoOI/C7K9f76LNZtz4TUzj7pbpIXJXFR9OJ2ou1b0NhaTiappl/7q2acJUNh4T7PtzpuV2akXcpbCby9LJReATQk92MAX4fEjwZJDMbvlyR5vSKeYrFMTkoxPi2UXx7U1l+mAeNJLa//3vGvPuIuhDPC1NS++mW5M/jNMqyPBaW623tW2TnGwOMhm3jnyZivlB8srlgkBw1ZEdNpCpDg1XWw4r+DqGqZlgTOh+p/mi2kkr7M6JgHoUSSzpVnzDle7sJ0fokXBKXJnwVGfl7728dFgUM/UC+f7hSDrreZBKV9MRKjpqGdD8qCrTjI5Hi2zq4dA727KJWf6sn572R5SlOgAeqUipDTtuIgnT0GYGZT32wOYOQg075vRnzpMy56POw0U2gZEXEjvnpzm9sAACAASURBVBhTVAobqNQ1BkPYZXcDBZzHfaMWONwcjPNL4rtQjNaFBHH14RMTBGb5sI+PCqwHT5QY916y+viPiBfYr2WgpPHenFzNwGqRZdhy9wTTgDnuloI5OpUZamVU37HJEe/Pj5e1SS274+ZUv42pne/L7FzLZfb6mViWJQgasm/ApgojMTjHZJQxV6a0FY3kE7gCryT0ylMRKmagPac5M9v+WrXYgDBYTmM5juiL4xg4X1P85Vijxr1d/rb2rMLs8r48axPBLMUX6Yu/p2dKaera1iUULavPuKhzm/Pu3im8T/WRS0EHsbvEOxAdd2VJvolrRt3/cwVQzcKyf2eeb1cDsqdtebR5veweRswdSnwZCn5DN4AaFD5oW1g0f6WPNf1Kf2WucGlbNKf+idAwn1yLZ06y7Eh5V4OSQzhBdY2kHQN4PA789dcv/Pr1AAj4/n7hnGds/EjdWbhnxmZawPYQbNBGZIALr01567dFTcGEYkkgazNHH1J6acrPpeXlWiY2Q2t1N9kx5M3zxaDXKac2TpWPOa9VZ6KJ4t5HK4VNdCOFHb5TqFQtUYdbW7WTLY3/N/yVMELBqpyUDGuCK/7kxSeWVWdZ2TY3dUncQXPVS4lwUP0R8m4HGjnav75NZfg4XDDyxXU92zMEfq8hLGXObf2wrTDdXJVO5a/910AsJR7Rbe9jwH3aCe4aY/Ja3BfFjREYesiU0jCtJCRejT7wrV5EfjhB7b2+elv5s8OEspjcQLFvXSSo7aDXt5YHwEOZmd966UdW+O+8hsvLQXzDFT7nZv7A7G95NQ7xAmTZC/cunpJxqlk8AKdQa6DVfSQ0Dux5Mg6aeJ2Eh1cuvmRzTpz+T9LPU8DghB1Nq/Wo/5kD1Cm9vzI/YTtRoWxCvN3YYo7Q0f5g6zr37WQXVV7Wx7ZUwGIxmC+ZAHNCaRdLrPVlfBlVhdR4Nhgb7f3dtTX/qVCPdYq1E7DKpaLSPgBmlcYQjFvheFnrSldNcyE5r3HnkrCcALMt7o10ZoQwi1Kdh6zdSyntIV2wa5zJfhv/4JK2+4uWX9UdIqGjN5Vk5R3qolF8a21pa+trFYVQ7/OQzoV2vgELW9L6I+abIO1av/mVcmwmIoIfDvP1OBbQ6h/nqT5faFFrnGD3ENBs1sFOrYN8lVNUywtkVRtnfqNIS3EeI5yAg4YCaIWdZCBJkpMr0e5PaGXDfQTBSEObwG8yG8px7hPPb25gOf46iNixZGl+Wke0Mqa4oZVN0qVLKM2zpMgzKC6bG9fJau1mqiDQ5y317MEUEVIr6KlIQ3mRYR2ZFLtJ1WgYl7FQydTc4nbK32vnrk2zPtS8Tg9FZ2/m6dW1SoLErH0At5n2UNh1dNejOUXTD8JTaZddmlag6eGCbULEO3WTHOES6eE/oSeUnhM4ZL4MyFw+zymukR4vWPbOgAA9RQV2uEnfzAVrnyOCpL9545qYWRmQA10uOpUBdXeIDsp4p2qHJNS6rEm3xA23tDGds2XoTGRylauvs8/Xvrqhfx6piCRowwmevTmsIJT933ky8LD7KafbDPn3Gqf4jYHwYo6vZAWpr5cswc9T882p54bbPwWz2VoLs8wyBPK2L3JW2qWeqqcMemwYnlKaOgCb2UlRX+lkdRkgAEwaTU012OQzHY4Qg3IpWzIaWvn6H7ru2rev9/3y9zvoRRe//0aZHxbD6b9XTf+JNN6B2ZB6N1XcFX8L/P75a/kYvK3+WhX9tNaPXheB9Pdr/aMBARYA04vL2Pd1ThyQJenf//2WjZ1zX8Sifxp9vvu+5Ggamyu/lSJyPxaKU31DjyMHVCmHtck2VTDIw/iVjxfDHwlEkVXIMD+mRK65jciDearlOWHEIn3tmT1sY8epfYuYZITV5yiPNUuTv0mcF8uq30f6PiL+l+E73hdfy8Ulj+v4dGdfa+DtKkMaz6w4CAtvEaO6ObXqIr2N/aYq5tKXW3Ks7AJSLtrQX7HV3xSzi+w0ehng2I9upLrpOoZUMxSQCrbZyzeNlSQRlDSa0qGOs+IrK50Z3yYEmtJRzBOv83RXRMfP5l7IXDclAg50bSWLS19mYIc60Kwgj1K+OIyr9BbVTKmeOpOWfUR2a2l7n7kRsBr9nPoFpN/onx32oXaTyn8s73PSacBR8pxzargss7xK3LHjPPGaA8/X6WG5ArjKCS3hI2sW24nn68TzeeJ5nni+TpynlCe7UxXMQjdNMIfrAthX2EBIXx0XyM8mw9AvoQtdSGwibnVQzvOuhAOxWrXcDHDYT7ogOUGDO1jR3F1o233+uvFB2jBQTRAFXEFlF5yhlWRS6yyb687PtyB2834/Glt0srl67pVLV9etpqw/pNPK7+D0PX2bsj9tHmoL93ipCZY7q+PmKu53jcD6ZY+wLFBPv5LjORc9lZXrRmgt6ZNVtgGjXfXZSr1bjvxx/6AN192HBGHhj7AiMl7nifO//9WkhNdr+kpMpthlgwl9H6RNByTwQZlRVNlZgi5R7G15MIDsg0wmR1QDHyRxWOmweJhCj7hCkbiDEUBDTjOzWvJHufi/cihVJB6hTEzKW9lwlVjebqwuEVxnSOUdBmgApxLRAE6vpx5+kN1HWro0oSrPJBBp7VKrdD6SeKmdU0OiEnsRHOd+E1czoM27PBUzcC107PKHylreXk2PPIkaaIL3a+XMKI/c5Yid2FzMRo508Leht+G+9R0Y5wnQEFfAcZD4vGZga/7NpGAWhKFzxA9ogiSx4TmGgNs5zad7iKsZTYBJVm1prrzV+42CzrgkU7ARRTzZLnYZrXM2m64WFzmTT9zISTQ0MBsunXUASOkzt1JeLLH1qnpKyx3kBzIsWcugMx7LDFepwyaMZNtjArOMh1pNzzP9e028aOJ4TQw73WEeciStOULrJJlTQta8XgJmz+eJl4LZ11Oem8uC5CFMNi8n26UoYJYxZcNEOe0lNzb3vgnYEL49rcEZ/xqhSLuAHJ1T5muSR59VQBkfxBdP+HpUIvcQavt056+1gJBU9j5gpF9DN1/89euBYwz8/v3C6/nagoXbgnaXTqja4zeAgVOLm/Bd9AB78UGdmbauyCwTfK0o/EVpecub9OUixMfLTrDuMry9OpjVp7usvQ4TsEiCgqJ9TbfUMi6+XJboQEuyjeLJ1+LeY06wuoSa5DgMUO3Iu+i6WPr+oG9J4tgm1ZreZXlYwUtOOSdkH8DzLD518o5XSysqf4aXf29g0iF5HL24KkXKLtZaTGsCL50n4YRE4Y62cmb9KcfEihFiUVmZ1pEZYxdnNE/A1DlFTvxAyqT54B8HbslONFize/+W+uo8Y6B/V2ysx9cT0sFQ9m9wYJsGlDMxCjpc/bDuB4E3IPjV5vKI4vNg63gUENrnOuWbRENSHf3t0vT1ERY91/2vvcfZ++VW37jc4X5S6+31NjrRFDons/g2k4iiQaQHGwXdMpfkkCh3K9CjlUNnSTx5DIB5YGjMacHEFkYrdUlZQk/jFmjRmr2/ElNn95V4nwdylTOu74hiNRsGaLyQmMlKVlBMm+4NeghwHLchXspt79jwk01a4gvQr/3ChMeibyfAw/pSl/NVqJ00cUzCOYdYYo/pVlgPjZXqmsx4TTHFD9tMwQjfWAWv36+X/pV/c544p5hcmfPXD2ngYQIwwHQCZo11gdEGM2sD7z/7yu2dGLN9IIreXq0zw+lbi72QAHmiF/rcT2stP6W+vPx0s4VOq8eUXEMi+pw1pM1xDHx9HeI2Ml/vwdvNFUq82LFuMoz3tWwSWDWBvZLysGwhL98XCAMYH7Q56+LMT43l3l1XPrNBYy2wrDz2fLs+ovR4MyfC2pnmz50Se6Mfti+7MCoa0KyzSf3dsUpu//b9hXW2LHdFXUu4/1LBNZi1JTzhrSrAF+tILqHwTVjtMguXCsNw7bc1R5MfXbwkXrFNfe7nNwjHY+A4EpOo+xcT6U5lP0wHtjWldwj5JMsVAxGRoRN0gSy3IHPtR0r9V/WhKD/StVX3d8zld7lMWKbNJQBEjANoxLxJQ0BWKENDTlohSTYZWKXsL24gNilvOuW9TU2zGiZZXmWVo+Agq8sKv9/MkRGd2b0jdvNyOSa5yI1MY7YLdt27JyUnDwF+K3hS3VbPRgmnDYHBGsrZLNZUPhljypGzNA45hn6QfHMPrDobcfgAEWOAZP44uxMoHZASYK3Nm9TOVSek3TM2H3OinQAxhmRsui59WlDyYV1kXqxm9ylek4YMtL8EiM95+wDxOZLyzV6OpbTJmMrI7hWPIGgV/JbQN19pBIKTJ445xBVArbDAWQZoTsZjyolfNGTXnzVMluIUyE4Fsxr8ep5yeMB5ivvBeACPMfCvIUeinf85hZFsqZ4grgUkU/v6CyykYDRzlWj1W17SNBVzc+W0b9KX19T+rvUtuvCfuJzZAOKJ5/OF8yW0362yfnx9vMz74YL+HXDprzMQscn3Bx24ZslgB3dDdv/8x/3b6n2T5GM6bl7+GQtc5HrLwB/MmT8i57Myfzq/cvpuUMk/eZdh8yDuLuhte+NuTqXf1leBvyglO8TmeOjS6pHAJQEHDzyfJwwMGBbbGlg2K0KlTTn267adSYHmV3TDFYpCwhIOXzm0B0FS6rFWvpOIG5Fl7Jn3J1IdMWsvtfu+46zu+Caw7SyjbD3VPG7hNg1u0fPZG6gSO5VYG7YF5DvGvAS3FcAs17J6s3biNm+npdPYc3+GYdOU3yfejrE5ufq7OOBJrvBldH/XvEkKikdzlcZQNKDLx+lV+p8/tw+Uz0T19H7ZTcrUWf4FsXagPckxr8GbMjT/1mruYLZOrH4CXzEKL8VcWeTTNRvDpOQlaoG5ULmJmSwOqjjvTvWNPdQ6+3wRiM4o0/Ky+M8+zoHjGGl3n7yX2OLikvCaLzxfE6/Xidfzhd/PE89z4jxPvE7G8ZDYjHQQzjnx/TwwXoZcJZYZCCkumzV4K23VZ0U6ZDJH9HLEBjdJmYWNiYN9uQ5DvajU4WnwtvNrp9wW1MX57f5iQI7Ay58si9RK73Jp4tPDJ+PEq/CAWPbfqPgsgJT2z+BDErnO5UEz5xT0Ro712U+pzEvy/86nwWY0OoE7XV2GtT5wFxVP3i0tFxxA9ubi/WW2vei4BF9leGzzzw2P5cc7Gkz6+5XR2qVWi+wFGKWHV/SXqld6l/7eV+CF8vJ8vduegHVR/r2VmX98iMKWRc2vT40LhwLYYT6yZFRbvGy5F7kargb2X4dNffq2NnnkBO+XNW0QnV6a7DSXGFeamoYDLyD/9bSawWP2dgLTD0IBwdiNx0R9SCgZOoj23pKYkZU/h+XnSJ90BQGhvN2qO8GeseoiX2HQ1UvTWoUzrbNKN/dK26Xm6uV8oDT1i1WQuEaHub04aOggx8tvPN3zX97tmDLpWOMHEo43PUSIzVvhBpJXcXVW54MTGt8YQGWLS6p52ffKZB9x4x0OPOp8lgc4fnPvrKvu3vYl79Pkbptr+um9kP10cxkpGoh9bKWENufNSttJ8I37Ce+UBBlf2NzWRI/iU6az33aqWmKLEXAyY0wJqUXqy/gsQE1B7Ml4PAa+jgNjkFhljXLbsMUGZAXEfj/FreD5MovsCdvg9fh1CN8dA2OIQ7Z/lAahddA2gXiJRGgTJMjxcGYS4sIvdJ3NJkfMJ2Q3UYXx+5MYvC54tiChBMGmJeEybRcyiskgpdz5AnY1mJlQn7H8G1czJQtyzg92DeWS1rNyftdbuC6arak2NC36cOPb14XARojvBeN1en92ZTJb2Ks+oGxwQREZK0W3jrKUeGqTTF/2/twe7whsh1DSzxj3K/2+Lc94rdOVkHxSslT4OhVn8mv7trUn13UZ+WsDZnt5bfy6H2V925NTDWDfp/jOgpwL+AjMdgKiksksy6P+fmh75V8Oq/h6hZ+sbbLtNUjxXIe19UcAdHawbM2kZS5Yg1NdvX8ZdYyQy+OiCoqcmRF+jxJveZ2ZdlMpmc4isCjr3L3s2H4E5frIVZcDGX3lzhtaxHBiQqcs8shRVKxN1vT6uoAj1JXYTR/kAxWKytmwqvu83vRLvW6EbpMVmYa7683nuZdhfG8GgPC+Y3cXOkE4RswBDAJmPoq6V6Mx9LW6QUOjWYh8JNIl+txJBmAZAebcL7Tq+LVbDY+gyo4rOZ47AAie62lLnflAipp/V1/orw2Osv8mEMroeqetgm9YvHxg84yTvcrShJ48wWQHL4gDM/HESQQyUPQCOE1GhoDU82DMOTCPKV/+5o+lu/Cn+sjOOd3F4FujF7xeErLidYpVlwg4eWICAnxfp+wGNqvxjZ6XRir8JI2mAMLjMfAYB8YDGgKM8f08JbzIaYXQWh7SnOIIS3NZf85n4LtI1k36Pon9Zispey2X5VLyqtteV9ZbfT5BAWYX8Lqp//JZEwC3QkmV67aUfdYSzqRHCt+V9AY3/PF1V8iKbvxBtwj9uGwrLmb77uX2yW34r05zNh3lBPaYsBgUnC79887QX6ufDcxye7/DzDftmdiGE2LNlw7Vjnfe5tq3bnW8mqb+WMdY47guiYoT2QW4sGS3YLaXLQSalbXMCgL4BHiIfLd350s39E7oBi/2oip5s1jmM+uVoXexlyz5SUevgJYW1nIFS3Cf1s4Ftf4Adg7WfFd8yLKgPBHdxUR6HVIJkXgnaspJdbymKfnr+ogv80Ik5kyZbIPMXnUoYHIokCZk6sc6LS90WAEN8fxS9nYEhIuE0ZRtC/rUu1URH6bYgy/lk6lglqA+rWF9HbqkPvTeNOGpKxtuVNfSZX6IMMjhRFkxyPEg4GR3h3zNNk6FPpsHu/YJzbNFHlgB7EYI+7ToJRvgi+6ab/o2h9RSTKk3tNBSsbaA2TlrmiXHLSCH99GjJKD63o2dahKfQ1wC/MCKI4QCw2LMHnLk4GPgdcZmAvOSZZ7ic3sq6NWDEZ4v85FldS0Qay0ImL+nRY3F91MjGpxpmYuTkmkCL8Bs9O8gwr/+9cDj6wAz4/d/n/IV9RpykrC29x4Y9l+fTKaa05nKst8W8VZd/fNXniS0/Pi8yZ7zQ/rLJpuo6i1+y3N2m/jvgFhab3/Y/vu6q2vLh0S9KfP+5Z+Rz9ufS7/zLtHfvf7Jsu57ZBYwu8vcwOwHdZXSbs6D2Ob4h8CsXyQf4ucpBfHvU5Zaze3qlJW1qaYiEU+9lgS8bLkwAdoldSJBNuPBU6wW2k2LysobY1J8HlhRnJOyfDAIhpO8u+L72FF+uIoibxsjjiuodPbC8o8OKhqy7HKFar9/InZIwZR9uGzTZGruZCbt+2dtzVsFVtM3dtwCtq7L+/PrB59dLH1LIMVv5BG3LCqeuQjMOUEHYWqUA9KVDR5D8ZZ9RLFjJiBcCU7FLHPOZLElPA6h/ZwsoaYmKxh84zFqgHm511zLBrwqt92FwZ8Z2HOUu4LKK9lvj1L2Ts/ORsK+w5LLFKjlK993egrjimsBEWn4a0fjuvxjp3oBHuKKwHjSTAYZ8+1g8JTd7vMYeE1xKYiAwamDWAL+GohlBa3nOQXEzomnxmF86ulY5zm9rtdrKnCunbxMyjZBzcrsR0uqpZh/fWm9jMmvOiC1v8pVgkwnAXt1DVD7wrlgtssibqRvT7a9Ygxq+gsJ1oRwscoudWSlXjt+gaNX9H28OeyiiD7esBZ/9rGxxkX1N3u9Slz8h7s4vQUXHafsEr/pDt+ZzzIva9a6bCn0XrPYuyV6lzQ9Qe7zMiG4ABdP847FN9WWG2r8f4n19tq5KN4T10HeWcGsAbOtJE7F8+ZZurYfcQZGCUhn8W4rMNFSvvE6D+2rlnckPEK6+/3U47JxDPB5Sr4cpoVCtlvZMp5pDvf5APhBClPlR2PBtOSK+sDShwqqLcoIyBqkHVJYsNHDU5jeXRtcJnUA2TjHloObuLZUs/01nbzw3ywNqu2h3P7dVedTbmsqKddWfg+Yq0iSw21aeOmXjLPW8JOVlH6FSqH12Y1q/Oiyrm5F1UJN/wl4FVcujjmYl1aSCyMpxhljyDH0BIAPME+JGysCQ+fM1GoiDn6AWCl+8oT7xM6QvWMQMGTPCtmBUBvrprfIWTjPi5Ygd1GRv4kXk/wyVwJFbqkvjQ5OZbV51C7WPIva4IoTurtLJ39lw/riIZsgmcaSRQEn6YYvJswBABODBl46hZkBPnSwmPF1DEweGFOW8geJNTb1kg4ky7K+Wj9fZ5wO9jpPnJPxOnV5i4E5T8wT7qvymqn+yRrzdtMZ1u8qZXgC58n4/Tox1Id3sggt2dxwQNjv9LHzijbXHhjUqVTm54VDXbd2XCula6ap9ecKOppolS8SsauEuMLT9lrq7LYo1bs+2f6mZMwTcVGul1uglmKcPH/QlehaRwezrfJ1qN6OXaqD10elGEMX6eXS860MX/kpgmQlbwWEm9vcsT4PaoyVxdJ2ORB94C46vT3frTz1mbRwQK7qhTt2F4skbfgj3+f89I7X+oDwOrDjMrVU19PfgFkuVl+VdUQut+bZALR/faR43SAgyfu76eorhXngN32yt8AG9WYxWo/qzcTWgrJy1hb4s1pf+J+GqxgcvMdwqsImFFBrY+BZGx7YHlHB8I12Pob2b6erSv4AYJwYTdoQwq96vCfw6o2zjdupTo2KsO4o8Wp+dG3VpDc6P0ruHiSbtsuHgws4eL/sgilUnli2QO1pTKTY0cxegr4kxRVEGn4OAjKnOXnQANHUTYRySIidPjpt3tjcKuFjJ3y/jHWYynGGnlib2kODEtBObSiugOnFoDhVz8uJJHFiX+2QZSNfkprSL1Xf170H+08HIzstw6Qm5/zBux6qbmZstVGkbaC3J3vZVxyRbLYaNMQ6MTWW4BBTwkvtizJ4egTrZIwxC4iloacFmPRgAa2s/ld2+EEAWcY5ZbOX+dKaKwJjKrBuZyCwdfCszTEhymEAmRM4v0/8z/lfHMcBi7IwJ9IJFAciQKQNxsWXUdJFPiD+N03G3UB48fXLRm7TxM6S5m5HaDbXWwekvqhSFFU6dLNgbmvTXhFLcpV0t7LPhQ9ttPIPLpdEd5VSYY+rmrYtSPrj3WVg9m3SD8r69OoswIwUKmYjVPr9m7atm+NaQV0JYweLK333Qx3K9vb9hpT6m5fUAS4I5WXXelf0qRK9nHZtju55jZe7EmQ8Z1BBdQUqlr7s01Zvubku2JhK/giADjRFxqLZCOTLnNnhOa8EXImL/JCxB7NZP4WbQR2MFfBuGlwqZwe1LuUSCDJw7j66BmI4lHWfGyKKM1+Ry/ymbbBKgT4nKQBT/obozpZLV1AFL67lN7PAx6oyif3PqbBkHJvgFpLb3NiuHLUWejE+ptbPFgmDAEpbDIlwTlnty77L0bSNDt0wk6uWt4JW+4+qq4nRaDo2RWwFQa2kzOBJOA6BtExDjGw8nbdshRoMPwXP2zKV7zztru9sJcSICmG7fLgvTeXaN2XVepbhZABk9CS5mVP4h52Ox1If1/RFpDl/WRJKpwL2/FAZkSYkAXz2BqfEaawfPWxEycPRnJMZrMetDQAvnjgUaM2pO/sG4RyyHDf0NK9BM1rEqYMcvNoJOLH5izXMl5vfp6RjhM+JM8DWcpOGI89pZl9O+P2t8Whx6pFy4brAd7O1fV1UgUfpd4jSd9MqOvzNOy/+E0iWaDElknDx7YrWtv6uPaOOj6Fo1Vo/yblWaxPksoj3/b7P2hDB+wyStPqZfAyCf0DYNV1vXvycjE2OptAS6vlx6Zd1/bAo3vy6S7tgodsEl5XdvK8UbT+QPiXQ7y/GlKHWyj16fkfu1I20ZThb/cW+tSn/83l/A2Zz/UXEVIZbAW11Ei70qOLKJdihCF1he/sbeMuiqmOKWkZUZBuGri7zx/R6tUxruyt/F4879OBEWKMAtI9OFr6Q8rKCCqHkAM1QuyXbhSgDanjLNmWvP1DjhYfg1PTHGJ5kDMjqr45iNFmppM1hP5eAzkflM3GSE2W+cSdZYVpZ4mc7TRdTLeHHEcY4cxUQnDG9Wz0yEvfqnHFkjiwyKfpvacs1opRrixdTrzBlY/5SQl7s5/7SylpWwDe9nubVLPuOeFPmWj7ZnG209goegfTVV5atX9WfiuDnbE8VHjwFrJ4YYJ44BgEsjtBjMAbE7E5ky/W1Up4BFkt4F91cYO4Gk2UCBYidCVzDO3KdTLuZFTH1zid7jGLAljjU2ZoQDNSOo8iCKNaWjEW6FkrC0AegCuWtRFi+sJP0zyGdtoO6CiFTVnbcHotfh4RTe+WsXVhu6DEwW/xC0xjsSOrEeFl/AGJ727dFfFbuZ6la/9818iOp+Y6oVsFOafD+tcrC5EIatoSra7Uy1kaU+t4A2LfNp0pfrDvlNFz5onWHLYvLq/cdvg7XGy69eR2bhTbzE/qnhVzb1p9MgMv79IDb/d7QQLralTKZ5TBthKrZAvgYYKCcKJxX3XLrOfPwMAf/dLG1uxKYNSpKmw1ELLGfuRejdAL3YBboPwUCGnDjJaxrAZGacRntLiYzGOnkdp3EE5Ms/oD9T+eqyv+VnsZQhSj2hFXjBIDl1Hg2sEGRdrXQ3iqYJnvJi+o4w1SHuOzpDn/FA2MANMQEPVSNHg/ZYwNmvPJ57wlNKT7f07Ol7/piH0ydJ16P3AtuJVfzpGkmAYPEKnsyYxyQPTuTHbS6jUvhhPjFRuQCtonHEoprls7j3Z9wQboEsLTe7qz1jm1Mjs7N/A3NMdPyhLEjO70VA8kvkzu1AdPm9DJ/KvmlH3xqKZjN6Vs3PGx6BwDW0+qnqcIKviZkWR8DGHNiEmEy4TAm1VAWEqmAHcxmSn0cAQVWUu5E2jgGBbJg+fo50wYzFbC+aSs3LMVhyy1P09WVjvzmmCQQ5qudVGdO9LuWb8sTH5k4gyHKkzx4G+VO1q78bgNyOBdWIjVI5Ih//fWFMQbOV9vl/QAAE1tJREFU88R//vMtTFln0Xol6Z7lvFsl+gTc5rckXbtcCc0NcrT2Fm3V8rwZAm5F1fo2BauUrnFFNyTumvDTa9HslQZre4sOabMzyGAU/713kj1w1b4Beem11vRnl29suFI0fXNC/lXadbvlf8lPN0+WiZRe10DvIU0IOd2GxxPgrnimVnApxzNBuY7Wb8wGzzjuRwjYHsvUfBFt+pHKQi98zuLzKUqhdEEQEWz5DjdY5d4bWY52t4Esxqig7M0Epvr1ILRQvinvcjvyd2PIT6u35t22L4snNlpS6kI2IU7lUgAxmhmA81i3k5EyQZ2YxqPLtaTXh6mj2X1LVn29yZz0bK6i9rBZqAW8DhwHQENO+/SjXkn0EeEADwnFObhuijaQD8UKRRF1PUj1wYVU8z+KdtIKB6c+iN/+gcUSCk1cLgXEnhZByXGEgdpZxpBZ5F/ZgW+MJ8p4IdrTLrF8mwbjlM3L38g16aTITw78Ej9QkAWTdtPZnYAGd7ILRtRhlZYN7j2zRQUt5XGjN+b0lf6J8FvGIM6n+rUw89G17H0OjQAwSBjA4qpNkr35pPnsiyxTm1fls4uBcYIB3Wkgi2Mzl7wzk3OUAzbXGyt8hKSi6Or8hZo73OX5h3raAnuHQjPhpT4xXZh5xnpLjSFSe+qTbq16d1l6F7aM4xh4fB0Y55Bz1Hmq33Guv9ZB/bfT1Zd7Ogj8lNbeQRWiLfJ0KfYHfXKb+jrObrHEx8P/xStr4Dypu8KOK4tv2+h6XWZ/jnsfUGRF94dX29S09VRZqKq/WoH4FMxaKYs19W4+dWVR0SjMupJLr/mjvfuer0+XVjLieFIGPC7QBbEFLk+CBsAMgZdWV5yfVc4GJWmMR2AqH6vQUv5fA8pXs3glNdFjMnmKlW4dEkrpvSOKTDPg4HsKyEoNa2HJz1J33rtARg4STXnoybSXKesVHcv8MXDXuI2TXkq9M6cC1Ewo6/u27isGni5j5f1AGgOO9K26dNvQXwEXHDRs6vIMb+UyQOMAEWsITjlV86CBx9fA4zhgy7XHIcfdP59P2bUPgE/dcwPp9x3W2f5uD/Z8uJHlFDq9vPJ+d8cHn49MhFPDgRovztyP4HJSY3xcrjLNs83Ke5z+G9Mzta8N4+w6uRkotiEes9m5u5rAVrLJ22Pzhbn2NJV88mwuPg6t7cW6xJv39XfZFJbeP670mwkpCzthAf2JZGCnNY0NsIZLASissYtPqd27nBUGycwAiHCb3jD2vrXlEeaJx4Nwnn1o6xUO2yqJWzw170VW9VQA7l3Juysrm5WJPr3W4aDNm8/KNuA/T8brdYLG0HGMsTJhfrG95/MqPwavlwXgcwB7+fBdyRf5+foVkvLfXX82zJd1lUJvy94IRPt7h3veF/w30uZsP8vHm19/79rN9b9RVAdZfyf7367/TYL+ZdIVWuPnpXhXbCn7SGlMZx37jr2ZLZUeUwfKsPXjrI6fYtC4TyZV0wLkhbJ+6uyUW9X+HWJSSse23O9AOZx25PGF8rRSDehrGfHBwOlLIcu9ZpV7wzQBsexqH3c96kM7eCEO5ugCtxGQAceOvs09q3WfDsJjEMY4cHwJcB1HarP6y05+AE+AxxnG7fbB4V37d1XNxVVWtFyGBv6IhMD4OvQE0gZgWcckWWk9zJfRn63t1q4ZE65bHrsoXTb7ggCe/RPFEae0p86uBSXeyEhKGNO7PxfR85L1SWaIJo+72wy3Qu/oSTiBwXisH2MqHvQTkoeCWYQVlBBWU1J5KfN8FsOBAFuOATQiU58Vi6ALJ2MkaR1PI7hO9mMMnKfsGyUK4Uy2DK+CJ4RNTB4PE2T9RhDgPVO4Cye0DbrJqMWMtUbzLF/b7ePkcqAuntPFnbHLwsQ+rjIz//ufJ57fJ8Ygict7sgsIY41L3uGoxykw945klbmUL2XO7FLZh0akp6ukTu1abP1Qq6pGvrg5El9diScu2/DuakCglNvrui0gJSyS/IdXkcyb/Jvx/XE9RW69z3vtBvHpla2yi2S/JU/ur+EWbzrEd+sDMKve/uOoS/x9/flJwXUmM3LzTFBffJ0Yv1drYUwID7uT8r8Fs5tmdTwDPaGos6qpYqqpG8U6+L6pRq1fdC2NckSdOuEln1tovQSuFGSG68KSyEeUeJZ8oaOsAyrgcJ3Tc2RlTqGvGWYksnBO0okeqnLseej91QXOVWbr754npaCWPiXNFm177SIG5Atc5h8rxwNLP40SogGuez38loQDgAPBfGr1jc6MV10v75LXzVXBp7rqrHzJ1h7LZ2KBABqy38YiDER5yhtMMKU/z734z7zYaYrfktOhRJnDOfFaw8K3/c3mA9eYtHzyMJfSs4cHc0I+Ws3s8t93Shru2tDjFVCK49cbsl4EEiBbhLvKysrDrVKz4lHkYW2R+VoMZkycLvh92UWJ8mDAWuQ0ocqUGCN1jiU0CwCJrwpZQHNluKDFGpYmYCpnwE7kmKmx5A72HibC22iZu3YKwVXlYu+z1I8sLf75xbUvNjKqyNI0QOdkjAHM1xnP7Quk54e1d33R1MLCG07a8gm5bdCqGVvbFkWCbrWpPN4DBxTti2jXFg/kyvrE+HS4LiVVI/iivWtWqg/2+n0p5hJHdkHSMsaUu1cES8V2TZ9gH2VbfGZ/pLSBEiLvg6sn5dsBSADlAhNE7gsiurhAH1Eu47z4gDHqcbbZkuf1c83QwHQJaW5uWql+g1AAFlf8UqxVT60fGfVBjoNLH/DSMvhUJO0qYQTwstGdfBuLVQax2ZhL/laci3aG7T7yBVVmMeb03DtAmz90upTSOryrKOpYiCHUgfC+rz1hyeK+DUwbSDMIxbu7ScdJ5yUiljymETYCm0wnE04QDt3df86JB5lrQeJgYrHOztiownk8y1hFXXkOFKunlVlatbYziuYV/1JYFvOMAxPO14nYqVWJWsFt5h2rc5bnxoJV2+2vGiKu6nFCjudsM6jx2XZKsruc59EuvtrQWPKc1rlbp4UlNo2FF7gTops56ZXjgtZUNGcf2VYe66yhRKX/mKkm1oZY31gM4KEFJsYqQaUbv8Xv+EqNj1kDH9oqdWiazPjr64Hv5wnzdnb9vFX4DRQwQBQWHbG4cBXWHHWzN0yBWlFQJqn6QAXj1wabDy+w5/ZGeeONJXmXM13+IJ+EFruWa0lBu1s84smesIvL3FI2L6K8XGWnv10lbM3ybu02T+eCofrAFuNWY4uV5otKdunK/dVg3tRRyrnsjCIjtkmWrJ1xktIsr0MtvB3xMnlb+RcurJx/FXnTANtP6v5HrrXFrrhY7wqfcFGSWdXti05KDjaEHBVlhvT0ejs7mJX33BjXQky5HHKQUKMtrGBW/ptF1OjzE0lmX42VVZFPTONWDPUMtPJKW+Vhf71qi1yMOp2Wtzb9B6V0HQR4v6GdxEUaZunm6oBWO6lszrJqUlJjqeAJG4Wpu+Wt/9/MxKqKg027/F/k7F27Mu1XCqW+tw3a1scO+6Zspplg0Bh4PgEwg78Yx3FIi1kB7uv0Q5BspXYMjWxkvqMLC4S8Mnoyr8/LlTcdJ/0gquIozdU+LZMeeb3C2MYpvdPUmJD1Yen5FIi4lrRQKr+cj/fjxzldclUoH2slg21mY7tNAooci3lytpUO6+danh3165Vmy+qO5gX7NHr9w27Nm5vzMKpLuou5Y+VZP1aXAfhApX0FSfqhtLllhVtiidu7NPsF/mcpgJgyQ7GKfiksFsEqwapjN8eys8uxfMRnoj3Re49u3gjATttS/vv8P6hhzfsu82J2+Qeu4gtmz1DvV0I2v/apFhbmq7cXBe7a+0/3wbvrsr7Ozx+xyHWhgQ6qUv/p9SERXd380fW/Pha9go7ifvYx95Oa3hW9B7PvatipZnuQAdtKz61POPbdUR613eUZK665NgnMCKKbf2zns0v9IeGcDOgY8ClVpAgRttewbGFAssA1S7e81RIT8F+++5zeFdByAnT9WvfuEtAsdFHf+mQpNa1sZfWYVFwv4ubaCeXPAK3oUnuSPrYmcGr7ni/bFZ+ObdVN3x6KkyM2awE4FyOwa9JbccFrGl5+NWykzqI0hocD1VZ7nm4gYvtvfj4r1YrCfkB71Wk7yVUg86ahYwAYFK6GhgyVFYWlJATpuhqwAZZdAd/phu2rBGKBetqIf6Dv63vIu2upyLkFDFh4rjpWKmS8niS9ksaVwdxIP2VUK7js6kvyVt00wu+GIcsUj0PODvepE1/mUHkYLSSvzyhl6FfJrHFjyYUZ/CuT7eg0yqkqrZdSY6u9NrPJG5xKsA9Ba9bOirvM8Tqu5QNjGW6qD0vCP1PgcvCxrVU0yWrBkVM/dnr+PnRYyxQmvkt/Pfl5tONoV3QA56/dcsm7xpRIQkbLCsIZMdeuirRlwb7sk2khO9r5Qmzektx9mC4KiO7a9AdSBcqb1NNnM+HfxJFvi0gJtgDkZODI409YrbI/oWD7+XWZJYNZEWHRYRWQJblyx66WPr0j3XgTw0JpbNJm3CSXrYDcmmXYl/HdXBlMWgWKQNkEvpb8OAb++vUFAPh+vjDnidBlSEv8gJl8GYhNRNaPiWjzi/T2UJOzdOckYQYUUvdO1UbZEp+LwmZm58gSbMeTRl5yItPfctEyAMEWjR/ejcXltQe0vHlvfWAJLPYqq46ffCqAkkV2O+woB/i1Poq+eyd3Eta4a0VXu03UhntrDg9Xjzqe08aq90YU6r3DiH+bFH6/EwlBdXmwuqbYbYClBUsm+sdx4OvrgXEQnr9feL5eGvOWa/ACzquZMS6AuhmAgz8tyWJI3LUntWljKS6hueLrSOot0SDSEbUdNvQv7j4JlyvPkzyyKUc5Y7i/Tqc+RMi0AD96YANkM5flk/e/vh74/f3S5ZhqSbUOdsGvtFISELDJ1WjNlPrStgnAM2j38ou1uPfB2l+5bxa82FwXlqxZCnV+3uYTQsm4u8+8fCTm8mn1J5f2oynGXN/Sth3gtORv9z/f11/6JcZ/V+vtF6QPaT9FpxeUlXF6fB3dq5ZVwH2eL1GJFb9jMfZ6TchKvpHbnpWZKc43e6YcR/zIAou0VNsSXAgRExHO3leA+VNE+vYNLUk9TQMDTk/eRNCBw0ZQuky8oo02P6/mfluGp5nL3eTdHNJQytP0ftAE17iugiMD1vY5lFgtrrF0S01f6Ex+pd6UWZKU7wUSgHeMAToIfEpEFk+dgCDI9jxER0xrTY9H6m2hYIncFwnwS1V5cOOHz1jKc7F3RvTbsvCVHoj/eJyAZTrM3d+WgtNcM/3WhUTuKlxft9b4UmffPGB8ROl7itO8kTHgl5yOZYcfiQE+02rjmIm+oiXfb+jeZPfRND2/nRj607cVRESJ+ZpFFNbsmfaWYCdTgGrfI5KP5s21fZqAfyoErouy3LZ7XXG2TZHiYqmgNNPOKU/q3dycqfXnfvRvMvuQu9IbBQcZ43eBGHlns2Tbu0e+LX0ZtJd7t9Da8zJRL8Oqv9d/g4AzW3/Jd24SZBkpd55iVnnO8oUOtjEdkTZJUp8ssK9mW1pKMVFTx1qosaV/WAEtY+mfmN+u2VL/3LS/MEyUeKsI8kWbl7vEmaHbVw2ovS8N+vRqAt7o5uRTU97dIRwTNz8Bs4mFFm16cb3jzU3yjl03qPiDinvyJOX+oLziH9XaNFnOMl8kkV7kS0k35P3I3WWjQPvQZubugIuxNzpdlbdl/nswW2I9t6Rzy3POzFh2RbHkuie1a4cLUjV6iu9cR2udWWZLF8eg02TftHTVPi+T/D/FuprHpsfttrTbFTaq+ZcpyGu6Eg0ifbh4HQ7eyfnidU7Mfz/BAE7OoCI1gvWzkyWOqbdH0638FUSnPbzeRSW5r0KygAL/EOgNjsZ6fk5TvfeHNzw2W1Eu0EAqXdscY8f9FXh4I5ccNN8n8wEsYCMaZOoxVo9Unk+N2y4KWYeq0xuL9QtgvJLrTkIIj/vw16kPqZeXFG7iZRHTelhTYiDHR+3D+10XcvtR/Kf5Im150EBidwHgchxB6AgG5pz4/f0Egdwv+eyGg7T0J/7E9f08PaFTSEoHjemnp143vkiVtc2JnlR6zUN5s5dxXP7Ou2OCLXDK8Y1+djEz0YhBIRewmVkozjhQ/6ih1pGvL3EvsEmhciw1j8HJ5YBP2ZPAWblbxfYlThHChSftgd7VZHJBeJXg/fVTCPnPX59QQNufb4XN9uV1ffdg9uL5PwVgL0DALY76ybXL26zWF1jk+trNzwsQ+/b6KYD9vOC/0W8/y7iIKuzGrwvxdyV+PiJr6vYkr7v39XsEfvHks5XXN2+lUzHGoBIOhzZ55LnB7djwWlw9SNKECGyKLYHi7kbwrreYV1uaxSrXG7CC0TkBtiUxygezXEsIVsOCAFqX6tc5TH9n3doaFcvmDAtJWX0/kEAeyceitsFWDS8BviOr2CRUQkk2n9xCegJe+9alebfdRb7NdH05vZke46HYTFXrFgXtm4yYvU8MMmZM9Zaktgr8do/eu/Jaop5+DS9V09S3qzBeRPNPCbJbY5PZx7ECoDK7iBwgnuqSM9GjDdR5XT8U0+a72go4v2qbijvjbXsaiF0+bFaQm+//H3VFrG91ldDJAAAAAElFTkSuQmCC"/> + </defs> +</svg> diff --git a/releases/release-1.24/logo/small-logo.svg b/releases/release-1.24/logo/small-logo.svg index 044a642d0a8..9be15bb91ee 100644 --- a/releases/release-1.24/logo/small-logo.svg +++ b/releases/release-1.24/logo/small-logo.svg @@ -1,142 +1,142 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg width="100%" height="100%" viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;"> - <g transform="matrix(1,0,0,1,-2518,-137)"> - <g id="Artboard2" transform="matrix(0.3723,0,0,0.372784,1580.29,85.6974)"> - <rect x="2518.69" y="137.62" width="343.809" height="343.363" style="fill:none;"/> - <g transform="matrix(0.186514,0,0,0.186272,2504.08,123.03)"> - <g transform="matrix(1.00153,0,0,1.02621,-0.333683,-5.92522)"> - <clipPath id="_clip1"> - <path d="M199.942,1193.25L364.301,514.79L998.803,219.243L1637.94,519.724L1795.99,1188.04L1353.38,1735.61L635.058,1726.84L199.942,1193.25Z"/> - </clipPath> - <g clip-path="url(#_clip1)"> - <g transform="matrix(14.3791,-0,-0,14.0333,78.5434,82.1033)"> - <use xlink:href="#_Image2" x="8.443" y="9.858" width="110.998px" height="108.055px" transform="matrix(0.99998,0,0,0.991329,0,0)"/> - </g> - </g> - <clipPath id="_clip3"> - <path d="M199.942,1193.25L364.301,514.79L998.803,219.243L1637.94,519.724L1795.99,1188.04L1353.38,1735.61L635.058,1726.84L199.942,1193.25Z"/> - </clipPath> - <g clip-path="url(#_clip3)"> - <g opacity="0.26"> - <g transform="matrix(14.3791,-0,-0,14.0333,78.5434,82.1033)"> - <use xlink:href="#_Image4" x="12.787" y="13.885" width="102.54px" height="100.396px" transform="matrix(0.99553,0,0,0.994016,0,0)"/> - </g> - </g> - <g opacity="0.44"> - <g transform="matrix(14.3791,-0,-0,14.0333,78.5434,82.1033)"> - <use xlink:href="#_Image5" x="8.443" y="9.858" width="109.998px" height="108.055px" transform="matrix(0.99998,0,0,0.991329,0,0)"/> - </g> - </g> - <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> - <g opacity="0.79"> - <g opacity="0.69"> - <g transform="matrix(14.4011,-0,-0,14.4011,78.3301,78.3301)"> - <use xlink:href="#_Image6" x="8.443" y="9.858" width="110.998px" height="108.055px" transform="matrix(0.99998,0,0,0.991329,0,0)"/> - </g> - </g> - <g transform="matrix(-0.267326,0.963606,-0.963606,-0.267326,2221.22,309.693)"> - <g opacity="0.69"> - <g transform="matrix(-3.84979,-13.877,13.877,-3.84979,349.907,2126.75)"> - <use xlink:href="#_Image7" x="8.457" y="9.858" width="107.815px" height="108.055px" transform="matrix(0.99829,0,0,0.991329,0,0)"/> - </g> - </g> - </g> - <g transform="matrix(0.227026,0.91635,-0.91635,0.227026,1411.7,-200.317)"> - <g opacity="0.69"> - <g transform="matrix(3.6684,-14.8069,14.8069,3.6684,-53.1511,1441.91)"> - <use xlink:href="#_Image8" x="8.533" y="9.784" width="85.094px" height="104.88px" transform="matrix(0.98947,0,0,0.998856,0,0)"/> - </g> - </g> - </g> - </g> - </g> - <g> - <g> - <g transform="matrix(0.414942,0.886327,1.00689,-0.448987,23.2579,1690.1)"> - <path d="M777.716,406.287C532.236,406.287 332.937,663.736 332.937,980.841C332.937,1297.95 532.236,1555.4 777.716,1555.4L777.716,406.287Z" style="fill:rgb(3,8,1);"/> - </g> - <g transform="matrix(-0.609397,1.09228,-1.20298,-0.63927,2078.34,1556.7)"> - <path d="M777.716,406.287C532.236,406.287 332.937,663.736 332.937,980.841C332.937,1297.95 532.236,1555.4 777.716,1555.4L777.716,406.287Z" style="fill:rgb(2,4,1);"/> - </g> - </g> - <g transform="matrix(1.22962,0,0,1.22962,-406.296,-126.223)"> - <g transform="matrix(11.6939,-0,-0,11.4127,394.3,169.423)"> - <use xlink:href="#_Image9" x="47.225" y="26.675" width="56.165px" height="49.942px" transform="matrix(0.985356,0,0,0.998839,0,0)"/> - </g> - <g transform="matrix(2.09082,-0.439678,0.450511,2.04054,-1749.92,-55.2331)"> - <g transform="matrix(1.31285,0,0,1.31285,-404.68,-204.432)"> - <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> - </g> - <g transform="matrix(1.45181,0,0,1.45181,-441.944,-355)"> - <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> - </g> - <g transform="matrix(1.45181,0,0,1.45181,-340.964,-323.319)"> - <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> - </g> - <g transform="matrix(1.45181,0,0,1.45181,-243.369,-403.134)"> - <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> - </g> - <g transform="matrix(0.14162,0,0,0.106379,1255.11,326.107)"> - <ellipse cx="473.71" cy="2213.74" rx="26.366" ry="34.914" style="fill:rgb(217,246,249);"/> - </g> - <g transform="matrix(0.183176,0,0,0.137594,1267.83,306.177)"> - <ellipse cx="473.71" cy="2213.74" rx="26.366" ry="34.914" style="fill:rgb(217,246,249);"/> - </g> - <g transform="matrix(0.183176,0,0,0.137594,1305.97,260.005)"> - <ellipse cx="473.71" cy="2213.74" rx="26.366" ry="34.914" style="fill:rgb(217,246,249);"/> - </g> - </g> - </g> - <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> - <g transform="matrix(0.783287,-0.62166,0.42354,0.533658,-349.619,718.646)"> - <rect x="408.402" y="1093.79" width="4.959" height="29.434" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(-1.08701,-1.35903,1.25702,-1.00542,20.2649,2656.45)"> - <path d="M604.583,1063.58C604.179,1070.87 586.72,1078.12 568.636,1078.25C550.01,1078.39 530.735,1071.2 529.66,1063.58C528.777,1057.33 548.391,827.047 548.391,827.047L585.852,827.047C585.852,827.047 604.755,1060.48 604.583,1063.58Z" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(0.580282,-0.484732,0.515587,0.61722,-287.394,754.668)"> - <path d="M641.934,922.236C641.934,920.246 640.217,918.631 638.101,918.631L630.433,918.631C628.317,918.631 626.599,920.246 626.599,922.236L626.599,935.668C626.599,937.657 628.317,939.272 630.433,939.272L638.101,939.272C640.217,939.272 641.934,937.657 641.934,935.668L641.934,922.236Z" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(1.10336,0,0,0.756103,-129.874,304.992)"> - <rect x="623.76" y="952.024" width="7.556" height="14.882" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(0.751106,0.0867832,-0.0867832,0.751106,192.048,259.139)"> - <rect x="554.086" y="1154.69" width="147.217" height="5.682" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(0.756103,0,0,0.756103,87.9789,304.992)"> - <path d="M613.582,964.953L639.836,965.694L825.281,1466.63L764.142,1485.44L632.829,1001.44L649.028,1425.43L579.185,1422.77L619.111,1000.78L499.628,1410.41L433.386,1386.72L613.582,964.953Z" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(0.425329,-0.211956,0.174717,0.350602,71.4523,902.336)"> - <rect x="578.119" y="1119.44" width="90.986" height="10.603" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(0.429183,0.204039,-0.168191,0.353779,508.279,640.307)"> - <rect x="578.119" y="1119.44" width="90.986" height="10.603" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(1.49723,1.87143,-1.1012,0.881008,970.521,-678.592)"> - <rect x="425.339" y="1060.05" width="3.413" height="11.518" style="fill:rgb(2,4,1);"/> - </g> - <g transform="matrix(2.14937,-1.93806,-2.42817,-1.73401,2106.96,3725.88)"> - <path d="M423.257,1073.04C421.873,1074.48 418.261,1074.62 415.794,1073.04C415.729,1073 417.66,1062.29 417.66,1062.29L421.391,1062.29C421.391,1062.29 423.292,1073 423.257,1073.04Z" style="fill:rgb(2,4,1);"/> - </g> - </g> - </g> - </g> - <path d="M199.942,1193.25L364.301,514.79L998.803,219.243L1637.94,519.724L1795.99,1188.04L1353.38,1735.61L635.058,1726.84L199.942,1193.25Z" style="fill:none;stroke:black;stroke-width:14.2px;"/> - </g> - <g transform="matrix(7.52627,0,0,7.52627,-365.767,206.722)"> - <path d="M291.737,128.689L272.73,46.128C271.696,41.805 268.772,38.167 264.772,36.228L187.837,-0.502C183.801,-2.428 179.102,-2.428 175.066,-0.502L98.138,36.25C94.138,38.187 91.213,41.823 90.177,46.145L71.203,128.71C70.339,132.553 71.058,136.587 73.198,139.895C73.459,140.295 73.736,140.683 74.036,141.057L127.282,207.262C130.106,210.709 134.325,212.722 138.781,212.749L224.168,212.729C228.623,212.704 232.842,210.693 235.668,207.249L288.895,141.038C291.654,137.564 292.699,133.022 291.737,128.691L291.737,128.689ZM282.54,132.555C282.412,133.14 282.246,133.715 282.042,134.278C281.552,135.647 280.839,136.926 279.932,138.063L232.633,196.901L231.147,198.753C230.23,199.878 229.136,200.846 227.907,201.618C227.433,201.922 226.94,202.196 226.433,202.44C226.091,202.598 225.743,202.742 225.388,202.871C224.935,203.043 224.473,203.191 224.005,203.315C223.352,203.491 222.688,203.618 222.016,203.694C221.548,203.747 221.077,203.774 220.606,203.776L143.102,203.794L142.342,203.794C141.183,203.787 140.031,203.628 138.913,203.322C137.55,202.961 136.251,202.395 135.058,201.644C134.114,201.043 133.248,200.327 132.482,199.512C132.249,199.266 132.014,199.025 131.802,198.762L82.997,138.083C82.725,137.74 82.47,137.385 82.232,137.017C81.68,136.164 81.229,135.249 80.889,134.291C80.688,133.729 80.524,133.155 80.398,132.572C79.972,130.659 79.973,128.675 80.402,126.763L97.796,51.088C98.745,47.127 101.425,43.794 105.091,42.018L175.599,8.332C179.298,6.567 183.605,6.567 187.304,8.332L257.823,42.002C261.488,43.78 264.168,47.113 265.116,51.075L282.538,126.75C282.967,128.662 282.968,130.645 282.54,132.557L282.54,132.555Z" style="fill:rgb(18,16,24);fill-rule:nonzero;"/> - </g> - </g> - </g> - </g> - <defs> - <image id="_Image2" width="111px" height="109px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG8AAABtCAYAAACvDT9rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD1ElEQVR4nO2dS5LcIBBE0YQWXvpKvv+dRt542jStD5+EyoJ84XDETADKygKkouX29vvXnyNYsW1ml76FVNeR6NqrRyINkFVXajyCnSpYJi0RPYxHUL/yYkiDYzUd5RfXyouY3XgEmJWXIOMbydT5ljyZDmCg1r17wrwYz6rzRtf9tskaUAqrzs667B9YrK9/hQNdKtJHoSLdCFJdUxfps+viWnkx0vVIlyKdKcA3JtP1nrzJguuOsa7+26aML6Lk0MRnkU6qa/Tx4tgHFplexoOu/AcW0gC9Go/AtFRY2fgqEO+wyPRCOunq/5FQLiw6Uoh16XjMgqmPxxg1hUCnC388RhbgC1ZdKdVFOmuArLpSpirSvZgeAq/WqndYWINJYdU5e5G+svFVQP6hiZPgaOhVpNMEzKIjhVTXoSLdBtSpFs/Ki2HUFPjOdJcp0tmMf9Ggy0WRPqPxCLpumzK9kEJdl9umjC/EQNfYz/NkfBmQd1icBmfGIF12pcLixhdzokvHYyOY+niMQcMZ5Lrai3TyAOkA6uJYeSmMmkKg04U9HiML7gWrrjOq3mFhDZBVV4pFka53WAKtzqcDlPNtkzSYD4h1jji5UpGe4OlMd6oi3ZPxCChKhdVMbwZVpMv4QpBFOqX5jJpCoNOlIt2SRl0q0msh0LVmkc6qqxBfRTqrLiPGlQoyHo7vd1gWh6JIF3V8WQsQ9Sh5jlHyHKPkOUbJc4yS5xglzzFKnmOUPMcoeY5R8hyj5Dmmz39HI+o4jqLmSh6KQuMRKHkGpqPwnTzHxiOwS97ixiMoT55Mt+dfDnYlYzBAv33f80ZCOMnXSB6h8Qj4kzep8S8a4uuXvNlND8E8xvPkyXgathud/p42nei9Mx3F2HuejC/jQUd+8lgCusGL6Shots3VjEdcH7JtyvhB106usVMYb63BwHgE7StPxpuNa3fPW9h01Jh1K0/G9xmv+B0WkllkMi5qPNA4pc8f7yvPi+nIMQHjND/0VfZ/Xnmssx00lpXxTX2rPkknmu0h+DYe0a/8nrf4bB/WN6NPcfJkfIdrFfSJ/c8/YbEwvaVvZxNr2hdNfMjK8zDba/pUznbo2I3tzpM36TYD1TIoQXft/iePbLaH0Ml4qzGB1/3xZQ/f35ABzwZHj8sw21vbZXmTeSv72DZl/DWP3gATc6Eg+juEfXtaeezbzKjZntOmwPjzb1vcfv689QkfTX++mv84fM/2nHGaV0xk/OVXXOYYv6U9Tn8fX+OyTdiSex54lbFtM5fGb1+frS9m++dP0e+3zOREWb5tk/6UjP8XqQ+dNazhY+gAAAAASUVORK5CYII="/> - <image id="_Image4" width="103px" height="101px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGcAAABlCAYAAABQif3yAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAZrUlEQVR4nN2dSXobSZKFHwiK8yBqSJVSVd19Bi36VNrVPWqVp+pFnqGrMpmSUgNFipM4oRduP+yFISgSnFoo/774AIKBCA83N3OzZ88cA81we/1mexBvBz3/HknSr7+8Gj1cj+629T3UTLQQzEDSnL3SLtSEcyFpNKsCmknhhGDmJA0lzccxVHuekaRzSWdxnEu6mEUBzZxwimAWJC1JWoz3QzVhnEj6Juk43s+kgOb/vztwwzYn6ZGkZUnrcayoPc+ZpENJX5WahImbqTaLwkFzHqkJ5LGkZ5I247NTSbtKLTpVExiCmpk2d/UpP04zJwCTtippS9ILSa8k/Ue8vojPV5XmbmDe3Uy0WdecZTWNeaYmkGVJR3HOgaQvcR4e3Uy1WRSO1AZ6Xs0RWFFbcx7H+0W1NYf385pBwUizKZyBHUM1zVhU05pltXVlMT4flvNnqs3UmnNJw8zVY+aEUdssCmdU3uMmX/S8r+fOVJtF4Ug58C6MC0WwqUkBzZxgpBkSjrnR9aBdJojLzv/h2w/tEBTUmbVlXm2xf6QurlaP+Z5zRnHNsRB/ZEjnhxNOEYgjzgz6gpqbvBrHipqXBr52roa3rdh5x2rCOFUxfa/fbP+wgvph1LyYLRcGMx9tWZK0JumppJ8l/aek/1ILQpfUgtD3kv4p6X8lbUv6JGlfTUjAOR3UWrZG/ShCmlo4d53gKnkZzNa8mhYsqGkEB7HMuppw/qIG17xSQwkW1dDoj5J+j+OdmnD21AR3HOdwnCgFdh7H1ELqGRfH8m6kmdcWjt3c4wgcCvecxgjw9zpThOJrxKKaBiyra5r8/boadgZs81wNxllQG+wvkv5U06APknbUUOoDNfSAV44jpbAwfdcS0hXjIk26+NcW0jTC4eZuaoBGRuo3FRMPVh6Ga5GXWVYzWWvKVADHmnKd4f+P7ViN650pcbWdeN1TCudAzcR9Lcd+/A9BoU0XuiQXVCaYj0lN/LlmXjs7ey3hWIILPGtJmeQaxg1P1EwGZoPOjDvS8zAIBXxsQ90B34xjXSkYNGq5fEZfzuP+h8oBdy1BQHtxfLFjNz7bV5pAdyL6nsUhJMZlIZ6Rvrg5PdM1E3/X9dYqErwRx2p8dhE391k4zkK+frPNddAWHsZByy21deSppCfxtwtmWd2sp69JC3FNZisauaimZb7GHMdg7asJYlfSZzs+qWkcQjqUTTZ7FsBXxmQtxmQt/p6L5z+Iewx0OXrR26ZxpStM/1xtAAEbMSWf4rp70aETZRYSV5iHeawmiOd2PI3rPo5zQJcBMqsXhxnB3rtwRspBXFJyC0hjH6hNJgT0Me77IZ7jc/zvQDnZeJY5pVu/Ec/xVGliB2qC3Yn3Z+qayivblcLpMUVLSm/pRXSMjnyO/8+rC0Kex+UQDA/zPK7xQtJPagv8llIrF+1aUtpwjgt1Pb05JYyDEE6Vs3Wg1LgVNeFvxj05MKekvpeUDsVRXHekrhXBMXkRz7US99yLPjERDniW12+2B1eZtmk0p647q/EgT+Nhv8XDLqg7q/djgAbxoBvxnZ8kvYzjRTwg2rIUD694yOryjuLarD+rca6vOQwGJonndXQBk8j6xbq3oa455byv0Y9R/O0u/ct43VK69HPx/D7Jrg0jTYsQVPxqTmnX15Va427xrnV0RZlWfqkWRCKYzfg/a4cvpizkR2oCUlx7I66n+M4jTXprX+M6DKi76MtKTSLAregD5y3HNY/s/o/VtB/BPIuxoKHxNwJirxTOr7+8GgXEgbk4iQ4yM4+V6wImzmGW3ThnGA/MTON4qhQsJvBYTSB75ThUE85QiRJgYhaiyyzCn5UB6H70H1LIhroaQv+Z4e7ac6zGNY/inktKcslPauZsLfrGpMJtP4p+jdebu/TWFBc9jRvtxUMz8wZqMx9zh0atK00BwnEHgAdaiAc+Vno3OzEYO0rv6VBNeItqGnOutPvc9zTO21ULRN/GdejDSvQVZ+RJvOcaC9EnBO5e5Y5SODzfZnx3OcbJ7/2nuuiEr39XtusKB83xB8eG8vm3eEhmGZoEqW+o9PR80WedQCif1bylj3F8VjMnmCfF907VBu2Z3cMdAUwbSMGB2iRiUFkvn9nxJPqH244WARntqU2gC+Wa5fHVYdzzQ9zzXbz/otT6uxVOmLaLePBvMVBSVzC4mk+V/v6mchF0RwIzwkzfV5thf8YDvVPOOgRzGPefVw4gsxFzgT3H/GIacYnPlKZtXRnb7CpjszM1Ia0qHRM81EOleeJeZ+paEybDn2qT60u59rXJjdOYNX9oNMljBqLpC6X5qHEKiy/3Zf3aURPI72oo8lvljMOF5b5E4B0bXvrp/QMtQPNwp30tA0U4je86goEWoa0n9ooVOYj+/hF9/1NN6JhiRxquDaheWzihPVLGLE4YP7UHw3xtxPXBwlhsh/F9TJGbgrdqwmEhd8Gcqxs3uVCuypCCbx0rTaxDTT6pWGM8V4Rbz3W+KbXhm9J8Ihz67po2dcXDVGnquLBrEJANyMDHeN1VG1RsMy4qMQOAqXt/wCkcfUCk22sPPmtirv5P6ganeFMAoMA4DtmABrhJxg1nPbpQTi7WSEyx54+m0hja1JlQBBTIAbYXaGe/PNy50rUGUpE9dG2X5YhG5RyuWalQVTD+v4FdbyLXckk/alqDxvs6udAW1t8z3SJ5d2OCR9zQWS/MyjGCG6fWAffPK2tzQ+maenTu0TUD5dlSF0DNpM6VczxNAcaHSwxs4yi3C9Wbf+7jMHVq4LJ2VxwCR60rUuxRMprGuuWVApgvBxadvHGq7qD7UbXnsvMe2euqmjDACH9WRvl4g4wPiTeQZe+fIwxc/05YTbcVjguFdYVkGbEOsZB7eZiqgdogbNnfCNhzRsAmBH8+IFVANbO6YNe7iP8vK6N7h5LA+bbi/IHSVXftxHnAi/MaIdf0a8c0fe3GwikJOIfOSZThoRHL+OIodQdxza7laWqOJbXF+kxZ+sHnuOZDTQrGsbJjpaAcSQZ8RWsIpIeyqjgbL78X8Q+Iw4baRAJwPb8O+nxZu43m1DSC52ceR6cX1R4M8JLEFbEGns+jON9J6Q5ArqrFQmB0JOIQEjU4Tp8CqdiMPuGCo6kI5i9q2BgY36IyD0W/T5ToAl4nbveauukG4pupg87a7kI4fVoDwkxOf18JwxzG94FyECQmwlO+Tuj4rDYjFX+T7PO8j2dZGbTnakJZj++uqQmL/As5JPA0MD5S2IQFA2WxFvcljgOS4llWoq9o3sNpjiXg3KQ54QKTJrUH/aKENPbUZtOK2mwlMMScEPQ5v2BDKZyLOIeU9oZS+4ZKFGFdbeDPoi/HapMJ8NW/Tz3puZogCCqJ9I/iu5tqA+4Wg3vx7FxvgXu+frN9I6/tNpqDfUfVKwTPw5Kqfa8Gz3xWGzBPJ6D+tVTQQccnSlR6wT5DOM4GIql3FtfZUKYavK8k9lgXSTW8V0b7H9WE80hNmFKuiax3fc+PNp/caHR1c+FUL809FrQGu72vJhzg+w/x+ZIS76rxESaGa+Fugwi7p+TQEC4sZg1BkV5gMuFMAMvQz09q0NG2pN+UUMy3+N6J0qFgzQOZXlU3g+rpeg96r92mFk7hFLhwcKExSyMlBvVFSaD4oDbIj9TFnqqAPLPKYKNhblIdSK2EDjwqRzLQMKcufY2+vVXT7t/i9b0SzV6Oa68r4RmIjMRrHka4qSVNPlW7jeZUipOnAuCykct3ftiumlDm1HWvnbThaXCEvaQulOOIwJhNaY2E30LPd6RElveUiPLvkv6lLo2XdQ7tgaSIu4xj4OMAwjAuFr6JS31bs8YM9XjEOQBkNp1RiUstdQl7Hk+4w+GcBAcxK1ziUbxjebx3uAUU/UBNAG/VtOWfaoJxZPnYvutsUVL055p0YDxE8HtP1W4iHMeu+qJ5rum5lMpHBvEd85GVA1vZoJdBQQi/MjPpF5MF8+ZgJd/dVTNnfyhNGU4AqWXQgXklt8FjNhJ4lQ1bg+Op153bmjUGkUURL0tK4fgAejq5D/73Eg8HQeGBeVq8EkCOlMLBtd9Uuu0MEN8n3UFanNQ4jB1PHpLxJE1ypJxsrCd4lz4Wt9oD4aaa4zMcwI+ZMlcextn7fRGzZ1ThN3suxyEUziVIxMGARMEshk8GngfmRg7G81HOn/b71VleM79YAJyN6qS45lybq+bttmsOJgS17mPXO8NeykGSuk6FA5k1k+mpZ7SGwJbF+4vS1d2Kc0j2VS51H/+ummk+937L+sCBIPsqMNykTd2mEk5PSWAfdC91cxwOsWO2HLon7gBWgZlTEV4pBU7u3r2sT0rh7CmDVfI1BMayexMGQA8mUKVCzut16H8lCjrV14VT80zXouB6u6lZ8/d9GUdf3GukD8/NiXsMEAzKSjb0uIS1bF9NQDBePsbnpAZW1AYcrwrzwwA65xswdkltncJVZm3BPDKRxpsdlbGo+STe13G7VruNWauZx75MpDMsn8bfuJ7MWkcXKAWBR+YUXSd2ONGCBRrvCRS8zvyqwaAOzhZ6rCZwSll8LQIKImPrQup7fl9nHswh4GZ9QuEzKfMuj9Ug+aHaTB7Y/xxZ8Co2x74IQvvu4/EMdUJ9Nn+ufA9XG02CAPlUGcfglPAKoXFJWerhQbePy2UWZap2qXDK3mS8d/ij1vjXTCT0qOfxfQcf0Zpa7+nsFmIct/PVTJJDAukmivfCK4RbWf5oD/EJdaaee0JzIG2g9fC0N5VrKBro6051lkZeWs/rZetQRzg9mzJU7fAAz8v/GESftZgJxTnsBeDgI9+tqWcXep0ktS4Gr2xF6RA8Ua5bmKD5nmshaPJSy0pYx8soPaYBFvJtxBaUE68mDFfs2St+ONJ39kIYC6en5LwPAsEtJSfCDHXz40QHBnNdWboxLOf1mR/cVYJK9wTnlRwAkIbFEMRpXBON/UmZJ3Kyhh94lrJ+Lyjjmuo2cx7OzJLSrLnjQ1b4yP5HXFTZSuPA/PWb7bGAxi6euprhsYfPaCJg3N6Xkv6mtlHD35SVbkDxTl/1SjTXSKkbxzhy4BOCoG6kbq0lFdPOpUZrPZ1NiQiBZK16+x7PrQKuHhP5s+6peY6/q+F0pB0+q1sni7AJZD2gHe/kO3g9uW+ms2hYD7D/YEfYetxeiqA83StNBmx1pvgMqjWTDv17MZMPBjUweGqes3GEmBQGMRKLPBCNNIl4uMW4ai2hPyTryF15lcG+uoR/1jb6MoFQoOrOfHGV9IAQMA976ud5wsvXK+d6MZgVAPXDabfEHSzUeHp4W9zPcz19MIoP3pEyNvqsTPaxmFfenVds46RQKV1xMya4WxYpk308t8NGe8o6JGAvNPncB9MDs2dqGlFJFL5Yo2HYXCAbZm8VSuUjM3PrdicIB/LEE2XeHu2tzgcsnxr8OhJNqQawj+drWOirMHxhp6RlM67pqQh/dkwkE30Yz+GbaJDn2lHy49zcnkkauOYgdWITBER1MOZE1gGg97qg03kvnkXdKYiCV1w1CZR3IQbiWMlt27T/1yDPAVVfP7yOBiT6kxrs805twpDnryi7b2ABkwdBMkFk4+DAba1fhcNHXw6VjsexMr4aoyHuSnsM4a4u5gzpsshDUofa6mV1DC7or1eZbcfrjlJ70Bi+PxeD8k0JZPr1a6HUZck2mtfrMBCUnUDgQONZUxAOk5W6Ug+gGdzTGFhKJCEWInR3sYfl+ozvBOhbg1CvucE2chMkXPEmgrInyqrlgbL83NMBJLfexavPME8nPIrPltQP4dNPaL5uDpnVTLK5S75LnygB6XMMcH7IhhJ8Vt4DJoqKPJ6NEn+v4kZAmPvOVjTeVydGeDkDSSjFTebsYp4FpEJ5XS2mAH9iFuD6cg+3t6xBfTRdtFbqzma38ad2LYTstafO166D7tfC9IIAeK5qWRlHMYj+PExkCCIg5PDzWCvh9rn3eKE091TAdSYig1frPfkyGxwwGEfq1xzWhoHSJHplNWrsHp3fE+FgJqVJrrNv+OOmhLrOr8ogFE7buTLuchTAQwTvj5cd4pS4NrpDMqd0MqieJt39VrmWueY4aVLxf8wh2ddxFZxrDvaYjh1Z532m+m4aihsDoeChAFoymDX1DOaFVrrZqSkG54JxPY8p3ql5X5Szs0a5vWcvGtYLUtjkeRaUkbwn4ICKvH7HiYhsSLGjbgX1OzVtACx1ToQn/hhzcDxPbWjeKqVRbw/WPO0MTI+t9fXhXOlReWTudhbUF3pUrfd0L8gHpO4RAB+umpKP8XCLap4mfQJZYMb7PgQIiBKTM/ueB9uUxDv9d6BMlzsnzyvAPU3uAayHGhWxGCME7hC4BwQBwlkjF+Vg4SdLuGidpNIAtADBPVG3NHG8/5hyCxbPTjr/mHgKPjOzFVoTZEXnRTvKjQfnAbQLnngHjwzT+JMmdxt5pO42LtSD7iirq92VdhSmJiXd4+zw7+alTqW0U5TO1MWX/P+OM0m5MFO4+0Hd6gFMwZb62Ssj5SYOmJ2KjS3avVhr3qsLkyAcBpg8kdNmMW1eGbChJA+OlFlUKt5+VhdElZJa5YXKXpvjeyMwVuf23tt4XHtRaftw9Po7vzPjX7bS9z6qkdOaPPNJWtgdASkHlYCPg2ugNV69XClNCAetQfv8Gk5m97oaKgkG0Qd+k+evagDvM2XEz0JOipxqhAlKlY9rjFnv2PbldHqTbdclIZS9CVx7Pqi/FA8436EMcjxf4u81ZZrai7AG6moNgqG0Hht/qkSmEYCXpaA9vsXKrjKuGsbnIO6v1LQGXjRxDYjHe3V36gCA7d0q8r4JHn2t8sk+KVPQtXqN3ZY8hbCgNvNP1Ga8b4wHFxnIw7WGQXFPhwXdTWzVQIQHJAN3+yD6uaUmnL8qISy42qx3eGYIxzcfwhrcqg2vPuX77e3//EMv//vv/FkZnJ6P8fyHA5d8zkJNdTM1muwEcqI2w9mGhXgCTjMz1sFPz0q654gX6o6N14r+rKYxL6M/uOJHahqDE/KbGhz1UaXW6C42Dr8TzSkbF7H2OICIG4sLyUCBhi8r4R9nbLJNGO6zQ+y+L05l2PgauKMmQDZ2Jf5CGDg+ZGv5HHNIP71C7w91t4GhBvRUdyQY6e7MmjTJyHSopBIsnigFhHAYZAggTgQEXgH2gbYEhISb6uwf1kGQYt+1l/UH/G9BaWqJs9xDPFaasm01zf1D3e26wB/vRDDSHQqnZ9uvfU2yQT2lsKVuEm9dk1AJMBKz0vf5pP8gw2Q7+bxWPNTUtKfkl+xzAkZHSr6oaclvyvodUIkrnYCbtrvUnD7zNlcOD2jP1c2iugBr+tezq2jautqg4Np69ZhnJImxKjWqVgV42sFRa+KpbTXB+Fp3L+aMdqfCseYZUPfrHWR1mhDMzprX4Hxn/TxWM2kjNSF5SsOJISDB7IHtNCZ3RgBbiddIQVAjimB+U5ozHICpt4acpt25cCz28fWH5jC7C6hyyFw4CAZGDTD8mrr5oJps83wMFF8X0NDu5YPrpYjUiP6udABwmzsQ/338rMu9aE7PxnmH6poz52w5ubwvI+jZVtYEkAaHgCqHgOvVnaHYiMLNLH1zjQH+/5eaYFhjHkQw0v2ZtT4BSZMAqjM4fVdABhhNI2/ku2Y4GcKziL6meMqZtDApd0/u4dmRm6GyGlOGyww8c++Cke5RONKEgJz2I3VdZjAuoBpHvJ2+SrBIEsyRdB+k7xHKEaaXaUBUJG29oyagvu2Hx5Phvn+h6l6FI02sQXhxQ02y+WHiLChdU+cWON3J1ws3f7SKouN9VSIImoX2kIL339chvXEZoHlv7d6FI00IiHWncobduyO28eAOhwH318nufTmS6nw4eREnBEeDzKbvnO4M1DvbfXCa9iDCKc0XbCdbjNSlqrIZAylwYpdaHlIFVAWDe+wERswaaQWythd2L89aVuE/SHto4Tjt1/dT87TvNyUc/0nNrMDqqcLxmKUvyHWNqcIZKrOz/G4PqQmgHYgg3Mfxu3tvDyKcK3Y1JABFODvK/aWhGLG/p5PxvJbHZ7fUFY4HlpXuy28tgC5saTJR51v1n6mVadw5GtDXHkpzHMLnwSGnY1Kkbq7kbbw64a8PTK24XR8TtFY6cC2QaLQSyIf6nydKfnfdo2D2hdNTYuJbO7Jf2qK6NCPPy8OchMVSyzJ8PXDOg8dTnQKlOAdWKWlrT6uTNkA4ZDnHcM1t9u68bntIzXG8q5q0OeWeZ+wu5b8x4OUdaKG/Sl1XWup6bRfldaAu7w56FJoMslA3VvUfjLj39tDCcRanU5ZIQe8qzYgXNzlXugrDhdLnTY16XjmPfI+Xp7BtcS3CuvUuUNO2hxSOQyqsFUTmJ+rux1Z/0mSCxSJdzmTxdsmPr0pdOrCXMKI5IBVuSmtO6l7bQ7vSnjIgjUzw6T9ScS1g8aY2337qzPM2/LASP+21rMTbnOH6bxfnuFCc3gSgeaju7k81DXBffcKTo/Luo5rWnKmZszNNbvH1IJ6a9LDCYZayIStUpDllfPNRXbb9vUElpj2uxSDiR0rEgD2xSep5Gci9tocWDvmSgXKHXN7z+zl9mc377BdJQejA5+qWvnhJoNOv7r09yMIWC3cttwMbk7q7Go5pur/+8ureoZL4tXrvm9cR0Tegn3ElwL8TQiB1i5OcAML/HP19sNmpbkLPuQ9D+8zR7QfD1h5Ec6QOUuDBo0f0HiQ+GCz/I/ftwYRDK5sfeRtJN3eP76L9aH37PxvtFz/EG7R9AAAAAElFTkSuQmCC"/> - <image id="_Image5" width="110px" height="109px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG4AAABtCAYAAABAz1RVAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nO19y5LjSq6ke1DKzNO9uKtZj9n8wfz/j3VJIvwu8AgExcys5+mqto4yFimlRJHhAcCBAILEf0CTxDp+/jOf3zpvPP36ex/9tH14LpJf+1vffQG/dTPZcg/RG/29b7rH9mHlK35/P52B8/Te94D4RwNnsnbH8mN/g35Ykni8z/5a880JEVfgTs7Bszd70zcefxOAfyxwEzRBWoHyHu/HWACMvztQiJP0D8TH5pcKOh7hOulAtXfzHGq/cdwfj78KwD8SuFSPgts3+X1TAAO8tg8QHSdKcCR8X40CEB12BOz5/yfpxBwTi608AhYbn/5+tK+fgffHAZdA+R3LgYAoV5UJ2Ii/Dfh7A1PyEkwgBQjVEaFoCQqa2LCJLQ/75VhgShkbUBABwwLesuXnFwA/Au+PAi7ZYwDnAGoCJmgEKEPCiNcDtUcA2KXxyVqV1LE6k3gGcZHDUolMwNjBYoJWe74LIr8KvMuPdORv0EIQRCUo0iYkaNoEbPB9Arc1G5gA1snQOk3xIcWHQruq5NW/JUDV4YIMgCia/LNGf88CQIsv+ed835oUmuBDVfmnAud9pjIYAZ5LlgOmTcBF0AYH6wJog7CJGAg1WvbOwRcLPYqhkqcEEI4N4dbSX7vpVEgURcAEGR2oPUDaA8A9gCEAi/Mv4OWAAVzLnEndnwoc0FRdHCdoQwGUoIuAC6RrAHcBcAnbtwEYLj9nVD+BieFxIBkUw8JScJAkuHQJ3AO8HeJOYAcwROwASGhHU75n4LXfOgXvjwGuR0fiHaBJGgBCGFM16iLgCugq6OrHvoUUXrDYvejI0IsU8hfL9gSYoRohytWdSAvwTC5Ze4C3A3oA3AE8UsrlbsWjDw4BY9rEUsTvqsw/BrjWGoCNR0jDAVSoRVwAXSW8CHgB8CLo6ntc/e8hdQEey4lPF1GiA6NVJbqUpc1KKQvwHgHeI8DbBN0BsouYCB1uxOpegIOKfm5/BHDP0nak9rUPEEJdCpeQthdArwHgKxzAUJ/YGN8TpoVDSRkEyUIMQyUmaGWzzNUfH4IeAd5G4BFMIwlUslHBpUwM6U2jyXek7Kgu/wjgvrKF/zbVJZrkYYL2KuAVU3VeVJInJvHPTlVQ/A6Wkw7tSPKhUIfEI8C6069hNF8xwJIIGlzNDhHGJmntXnRyXO1PB47vbEE+NBDgBTl5CdBeEeoTBW5KXTJ+BmgI0gHBbVeCtsNt2E7wAbdZm8DhWpAhYZLA9NsMziR3ThU9sKrJ8kDiHv8jbFwblQzrreOdHQFMBnlp+7R1L3y2d+kbhi1D2bMAMACDEw7fOskBpkNtcd5tBUsDYP2Wwr426fy0/ZbAndi03k7o+2kE6B0prO3CCWKXun7+DsDe9o/nz0oQDSywdqxSdWCwp/fRrrsY52n7bYD7CrA+/Hr/oOq9+cp7gimhR4nskll2DtMVYLy/t9/T8fuNXHwGzg+38StO+i1NEt8B7ezGl8+lsmQd+ymZEwVhU7DECplhptwWTcv1f85X798CghWSHwWR3319dr5P279N4j4Aa34Gs/Pe+4zLlEsH3fBHJAOutsQ9SMXDHWM84McP+P0/5jlZUjT9gmUAhFPNbuf61lXqcevA9QHzHsgftn8LcDPKX+8kGE9gTkX/hBfbi3CUK5qR/tUOaoeSRPAWbsIGcDQjIjjxSPvXZDn/NsEinPbHOZOgPADcD/u+dXDPAPym9rcDZ3PiE5gd996+tWeN1qQNCPAQoGmGm+4kPLgMDQab0wzyG7xjrwA3uLQtBIXMCAl2ZvgKfCSABO4g7gDvdNDaxgcCbJxLaAfwa1QpgL8RuJg369eyBInb/gPwjo2s0H52AGGagd1HUW+KBHPiFRlXRIHmzJLAcA7DnHILm8hyBegq81EgkvcCELiHX3efrxcJTPBLjXKq5DNVqbjTBcS/BbgDaHkFSXuTtlX4CvPvqyuKHt9rGlQA540bKXP1yDhv85EmgUjQXqAAjc2Xi9lTNrWWHR6SlyCE1LnKbKClVC7qM7+HCdqZ1OGzcfvLgeugTQlTB4lQ5YsEyyUXjFTkI0PnQhuADpoIlwwOYDcClKjinoCWgDDu9MjJDSw/rjvh4JzQLCaac2z0ENcieW0fIC5Stto6/+6R9QITvA9t368HLv5P0DKJB6rwEjE7q7+3nIXukU7q3W+UgM+QAfAoBwbcL6gLmKM6Vd5dLgVH0GKmYCFFFbJizgjQyU90/oMHxjltGucx0QlOSN3MTeEzWP8eG2c+KxKgRZ6IYxAEoYeA6nUC2ZvWG5T5PDTVu1flozX9ymCcKnchVeQl1Nhxbu4YPUk1bOBi71LyYt/dBYRK5ZGIJNAZoD7YOXQQP2y/DLgEDStoAzM/JObPeuRBJx3HCPSqVJbcdpmmCsuMrEytzHwOKCSVrOBu+m85b7chZ8RZg6bUa14DpkSsktdySTgBm/4cy44dAesa4ODLhXLKXz9JXfgK5vbtbc11fAYtAIoEnvSrcMjEanR8ucnspFJTFjdWIyWJ45L1NVXhpvabOKhITGlvfcMOWrueNQpD0EI5H0Gt91DAv5uul7/nR39XllcDbRqkAi07sPJCNngeSGZhzTwQhvZzh0tJx+XTKMg0nhib0WGTxES3756FUJ09NFVYqugjaCur9cPq1DaIpq3lkrGlBlaC1G3sGVglaSd27rT9fODmvpJTO2gz60oXCRuIS6TUdSlgUo4QWgMrwYau+fjIG9YkE0vKN0FGikB+zictlWAx1PZM1Wtb7Q5E6CB5T4mvHwCzgNS6arnuah8lxP404J5pv4Lmp3pEpsxtcNA8mUeRiTVnrWPUp/RIAnaKQ8AgFX0/p/xZKXPLbSeRYbNRjGFt+TuswbASknbcO+8oeU29LYB88pnlvMe9//gnKeg/BbhDwJgI9qiZMreppcxh5oJcUdlYB4mb5sqcYutBl5AEITt/SbLJSzgQC8TJEl7nO+v3jsAttzj3kzjwcyA+AucUMOBz0ICfAFwDrbPIMfdJBJS5H5XAE1lXCV73pfKEkaOokZqTooEyeMzxbGLyrHPyfMdXwgrc6S0ejr8VjK859gv4hjKr7wbuKGWa+z6xOFLK5Imo1wbaCzzH8QUzJ2TDnLQ0tRnnKK8RnL5bOLNJKHoyaQcvjz8DB3juyK8F7CMwPntd7VuLG78LuDPV2Ax8FlxUigAiMRWeEvcCB+tVnryTf0vJJJBREu4+b1a+2SZom6zwVNXJyVDm8j99pn+2jGm/vZPXn9mp9773YfuRcuJvAu4EMCAN/uzIJa8jthe5dL3CwXpR5TkWoD1OmBGQxyQi3DFzII9k4h3w4rpPGGPaupOeKzt2Qs2/RS0+tR+t++7tq4E7l7Jle0rGQQMNqpS417Ydsooz3EjJg7BJKDIB5+x3k7Ofqu7Jchf/sILcjcTUrWaSqlZ/ravjVL/v29OfCNJZ+yrgVgJS+waYGmg6qsfMX3x93oKcOMt0eu65qIZgkI09TqleQQI9BAZMQBwutYrU6R8e6wXiq85iyVLTLRwl8/PUewNTZR4B/OWgAV8B3Dug9Wh+gRbqLiXoBR+CVtnEC5uUKuYnoAhIV3FLO2Eb7vgLSB8Sz1GSzGscmpVVQH6FiIxlmJYgsgcBNIPMnRg9Afgr24fAHUA7qsWe0tZVY5eyI2hvWLOIu/8G+Ii30JiZQNq9Y2FmcM0oRVV0z5UXpuNf2uCgyo8B7XQPJAhVeQNqJ7jLr4cIAGOeL9fqWAjLezVtP7O9C9xnoOkZsAuKNX4oZQlclzbPE3D/7IEnCWthpQhhtRS8ec3ID1d5cbLbnsWcxy24TPqpgZSmiInuAB5x/JDno8T1aW/yfqxt++XgnQL3Dmg9en8oqiiafwWeSMgb3gWNG6Ex69ACKy6ARQDXO5SHOSx2UOPaj6BpFjX2rOX4/ZLKuM0q+/VojTwVAVRmhjXw/KKjs/5W8J6A+xy0J8BCNTrNh/DqtH+CRuBVnqf/IvCFMSPg52XwgcoSBoIcMKZKWJORjEnMVkThcccMkCUx6TMRm1Qq/Oo+JJM8XRB5JjnjEMUe+6Fs6ibhTnriUYCV3sKes7kuqYvd/WXgLcCdgXYw7tnhvcIzfbNFHQp4a++9kHiReGWFtzi6espLwJSqnojjmVVexpQgJoHxze1agjbtm6rQMa+3fEcEo/U0FY2UuJkBprurSF0I3nIgsOVkNgBTVZvmvfgJJY6fDN5H5ORIpTtrjJGLVy1gKdViV4+diATwVYokL3IvAFqIK5NrUlUhS3J3BsvjOu+V5TUx4ERJ7brVrj2viQGeq0FSOX1nQUjuAd5F0EZ53qVYdXQ9xbC3QwBc2mXcOH6+A36uIqd/NketrpqAvEl4hQNWm6KAEEsgedL+xpvTRvUqmMyQqgRTl7yeBsdm52gxxeN3AVeVIcwlfVjsMku9+7UxVmRwNzJqujMz6y7PT8m5xEGR6nOeCUe/sQCPrc77oZ0EsHH7YQCPEtdUZEla2oqcfnmB11W/NcD+UgFXFZ9VOKhJRGKURlWmU+vMJM7s3xvAG4EbHLQ7iQZgSBwrdSGkbUlKelaZizugSH7l1W2vLnCpGs6NJPiAeAC8Y6atV+VqDozZXwnaqjYTRofOUxLu9iBJXH4AwAuAYzirQkRtpMayExXNf4VL1huAvwA14KZzreggTBvplz9V5O4dk4DNjaTvgRvB+6o6MxO4JK9fe9i7Qxc21c/pfG8uSbzC7diG8MCnuvT3BWwMiZvqGId+U/8doPy+vMaIt4GiJoAE8a1qtEtcV5HNZ4tJUFUI6zVVoYC/MLe3sHG9RDftYt6gRyVUCaJ3ADcBN0I3gF9AfIHwhcAXgF9C0m6hOl3i2PMSl9BTskoBmWyeelSFZeSrZPb0oA/QqgUPbyQGF2uRm3QHWv+06azI2m3LVsFrGAhnoZlcJEaQbjiHFUE8bCf59QBePpa2SDVQLD0xaX9K3GLftBbFp1pqp64Of6hJGYF/kfwC4F8AvoD8F+tvvGHau7R1O8pR7hJWgKX6DGBl+UdUbqSkyqbyjGfmNUsjSgcswAzJrDXBiMzGljKck0o6/cj4O3bHKiMtDt4QZSBGAoghSgEggE+k8MTGtXm1mc7mE6G1ToiS8mewONYRmSsZQBVO8s7SQj7uJG5wqbolYEzggC8EvwSotw4a1gziqRFjcKhAi8VjwqFWq5JR5UBWbXeEz1wSQwrZ1GNmoTnRUQNmAcqZbANuAHoI2EPLMNiwjNQAZXLgUswHqFzB5iMmmsB1nZ0/6KBJM1fE7VauzuMSqFqt5wLiAnXVGNMhwq6ZS3/DtF9fMLd/BVgBnIPKXiyx5Nsfa8uEeC/vI5nqPkHTA8ID5KNdT880Tgeakhw8MhNmW16oM24r4ERTrSM2WgBg+MI5XjOehIqg+SJtFOnpOb60kAddY4RoAHAm+ix9Z36cg6ceoM3QUTrPnuijjD6kfVA6sR5FCHqeflmSkJSkLlkNrJLChVmCVVRxlLa0bx1BNXBT0l0NsuoFNncDltjlUnQfqrBrINdyXcIgSqBNwFLqMknqFkLwgDgYBSODpEAN0dx0miBqYMDo9NYAjVM38YmcPOUX1oIvh9S6/nprozxtTJuWyVIj3eVk44ZT0LpqLPXoYD+DFsUSyT+W1rO+EoQAjgNhr9Dcg2CZPaN5a+ctDRSAzb0KvBHADUnDZn99CdDuCLVJ0MmQsJNxrbIAz+seYrKvIhQ4UZtdVeY+AawRhgYeagHPTO8uBpWjPEd8hKXUfbOUrCN4+bd7qUemivSISWORxc6U5G9tWdxBBzrCWcQ93KmciyMnoyRjloATvG42uh1z4KRh9VrDpOoXq/UxNaQpzeQscDSnqCZiF0hJ5tX/sloZxzmPT10AMBlHgHdpoCF6vy4ywVPOpCwqIq25gggo1/6IUc+I9eEuV32uCoUvYqnFfP8GhkpcqzoPJUkTNKySVgLPZqecaFQ+JsB1OQtOAAmXBDap66vLls0KE0JL21ZSVsAlLzjWKAzJB0r8GOX2N2KsfU/L1/RM7ioYy6D10Y87HCuPHSjliTtb01695uYmpC2jDqn+9EXTN7sxAOOqFtMWhl08rmCw5H68Q5Uru8tacVylNiSg/biDuW6r6ZgSV6BRegZxug2z2ISlqqukzDcR8hjp7rVgzFszgAGmL3raIToLedVxHwWzD5Rhql1OdQnJVNKWK8q1EBYnYChJY0ZJOmi90H2WKk3ATiStrltVJ0KYW8BKTqn74tP/AbWPaSZznGBNLTPdgACv2bhJSpaVapvaZTjubKqXVDqYVCR/S646Ecn2Ze4AZBaTeMIqJ0LzDZk8YcZCvB9hfIc8rluLl2FOudzh0ZBSh5r27TaBZYKWUrbUkZ0wyA5YXTQbWwlYLAkn/ZrVQCTnpDeZmV8EIY9CSU9EjT2kFdvW2CWaGUlTs0jrHDyMZfQUEQNfB1OQ5vsMxcHFkOdJ5uzACl3voHRqQ/1VQDhleg+1AFVHK5b+S6lShLUivCXm8hLLOiAdtBPATkFj/DfLPiIK5S8sKwSy15FjN6SM7aT+zlKfXj/RftxPJZVfBw8J9h5MJRVWBfLCodmfUYuuaXZ8lkTV3z4HGyB2zVHkZPnFhpu0poFn/sU9VAGkjOxX8mmV6jopwc1ZJRO0UIu6a12BoDnBT2rxQ9ASjTANaQiyGhVBubsRSBvX7ULZtBri9denLLe8jpmZNtP1MlWiBwlOtly3WTt8xmGTYGK5b9Sxgkjtkg7AVRYoDrYMqvhiL8owf68exqBp3zIyoRsaU2xbAua2jCVhfV3H7KD31GP0ZnZzFnvXhGrZvHY+hJSvpyg1zyJiLBb9BFhe3xUtC03zXINz/nKHz/XlSn091yWXo+rux1mWdr/O6oN3JG6pUU7Q8gfQ3u/Zxe3zmjPXsWldPqLIB1c71sNYR6B48l78oYmTm64w9+j9bu0Le+qybvqS08W7VeMa9rGt+pBTSppLJToBjOtnAQ9ggMxA9cDCMPkeaP2eT+87gVP7Qgev1GSoPmAFtFLb1vcX23W2plWv4S4J49Mgq4s/XmNvmh9c/pxrA3XzY/OzCtu4nD5Ufnw16UEIMh1An6ejdoqXyKEhp+DtoQqNdd66jYMf2aRrvbPTjujdcGkdcrQpCQ7hHV6jDwkaOXwRmByRNbEZlL5sWEvycdUYnxOZUytc7vCkHVXWu41YJA3zsgG0Sc1QjlQCVSj6YIyOyXWZLdyMndBO10JXutqbdQ9zZj8C3J1o1XxcLpEI1r+64g9Am+0jVZnn2ksRTOIwHUnCqY/bzu57RVJP7V3KSBvwKY1cLSEG3JlOz/0RKJ0c9/1yrsPASLbniw85SUqY2JhARJ2QqxEkY87ss5dBXA24DGGzxMD5bSw08DwDwUgt9Hm5ZaGdvNJu199tCzlpnST4D7TzpnOYqeHlUKY5Tx2fJMNpPWd+5PAtRlzOAy8LER/1+7GdgdRvtt/D8Tv9xBnntPjwzvkHpMnK70cneOiN3Ck8hscbLwO4xH4kKZIXrhuIB9RImefOxGBmLG6TeaIpjTWQ+309taONO3bEPvtQMeoym1e9z51+r8tGtAsKKaNPWwxkpgWASXvzh44GerlyrjdzVO/H7ayp7iic9DiO//NeI8oHGCvdwjXKIO4m3As04iJgWGSJGQSS/ogWLolQFY9NTTTi/KwZj9NY7FN7VpU+9AT30aZ9d2se708fo9m97NQAzyUrVeJATNFXeswEqbkUx2328ez1ox0+ee2dzo9BDF+PqTaB0Iv5OKQkIwAFwkZMCBtwDfAuI7LYVHmZZTrS5j/QWDbnHOODzKw1hkaC+XLobHbwqD75BFwFxA4dlYyvbB+ng9hOVd/LHwYj/TD5MsmR6hEzd6NF4jslLjrde30BqRn9w6y4J9nqCVgWYFjO6Woz78XjZ/O5A0jbTfdph894XEG7CIzZAG0Re6Qbxegv+XN2ADxAPCjcY33Lni/q4HFRmdFrcZzGN9qFpLRy4tZyfRcmwYp+R57rSISKIY5iSqTLGVK19pq6nGGfSzatq+od7VyXsozqJIMLe4EdrL+1Bw25+WlA1j3WEWBZO+7hw5Rcp/cCdhEP83SN+8C4CNpEbAJjZmCqXU0GPaNDnAF1run1e/IARvyZT3jMdgEAkrJJhdV0fes7D3g2FJ/IwxwlidIC2DLrXHNVPpveU/lqDmwZEdXhCvDYYpuVU+I+p3I+sFf3+HNxEOQhSIA6CZngJc+VQvIWn3aQD/nCOpvArSaWvQbBo8ZLObL693tA/QEmUUGB1riBOO3etB3lQkXrj2eOaYxAsux56ZupcRKulEK6mM0nWaQKvCCfNOVg5XNtLnAnNvNaMt+fqEyqgx1TU10zdJa+48FvrGqfWhQt1V/zIfsoDLuL0A4KLbA+/VHz4YIjahRGmxmYI6FSBHt2WWWq9WBE2TonK8EPJgsP8NwEPU3rTDljph2qaAfqiGGwC7l+yHnzlWykfACRCrAXrQvWOICaOfr5w8qxdBj50IzIsBx+VWiN4ANUui9ZLELvQMK9G0aQfqXgrK5grd9FVRA94pF0YMkAzdcZU415AWC3tf36cyDNzC/OGf6UNBRhXNsCXOYzzKfZ59OXsTg2R6DbYd9SLV6iPu1FbXEaZT1dPeNNVyHVzwJczrPFjdd6y0W1WVNNbAtY80HoDtVq5SMYVpYEMzuyP32Ry+3UoptOgKI+LpRornhE1D4mWpuCr2vXap/B7vMyyZYYFUiTpDSCAtTCAKdlVoNDuVBoG4XLHeVpgMle4qNPhSKqCh/Pghb0KujV5GudNCAjBbAnJeXvZ27LTKylA5jpEZVoRPJGn07a6GVSg/75nDTdD7dijLuY2c3NKqCkNqJGbmaUeSpiTZxOtl3zMGFwcuJiMt0EKcFMGxz210fXdAlKsN4Fzj/UQkRrmnq+39lLXmzmU2Qa31XLgjR68w1vkt4sAAwQUyITvKkq/RdzhM6ANXGncAt6/YVePnXz4C+/EBrugoAjAwaq8Za3EffwpC7bMYmoA4jqWQZRM6XZmfFN/1p0WajMlNp863TjVI1L/PZEU37dOicpnp88VqWDtjwtMcD5y6A3SX/F8V+C3kx6E/QaIF4lXcwldcxRXCM1yYhTakXirPiFwJXkF4IXRtUowTFikVPzZAXmVH0IhlCR5ZjYLnun6rjo2JgGme6Qyp5n/7aY66KqlvPk/nhcr5+1HHGsaP2mJaEOPl9dXrNFqSYz6/kq6MVS0qR/GHwT7C+TA2jQq6RXc5V5sUpxU/UuZhLSo9myG8EbiSvBLxQnYPGACIR2HK65ZICNtDkRpVBpDk8KT3uucoueOj0JWXKBMkFPfTa/2Dv+CNzT35dO/kWPk14IibzTO2ivoRb/EuwfBv3TCkD7R4D3ZrAXg16mxC2qcvGDEEUjBK8EL5RnI5NkxEGZ89+o6hzYiMVncpI8VN0AKut7n/32JCW9JXjdbBz75PjiCNxnx/7dX7Qmc14TVaChKnuCdLwa7DUk6y9TgAf9M47fdpe+Fzl4F3NpG0nH4oZKTRK4RD32NgIwlyrPsHO1MpxuCzY8W9iDvh5XdEaoqHICxsyGWwA5to/eP+MBX3uOrwYs248vNDqpfzzNPh1TXUy6WqhKg95MFqrR/rHLJW7391ziJAcO1sJHT/ZthDrMDDtRHioSh43072iPgfFQuCOi/EnBwogQlft0k2kCWPUin27109dnHOCdbjtvX7u0xvcCt/hscsue9D3q6UriXgS9mNuwtx32ZrK3HXrbZW8Gi71eDHY1BXBBShRLNCFz+yt6DqO4C3wM8iKMbcg2cFQojcwoR4aluAnzaVX9GFjA+0jqqoNPyNpXdfrZub71Oz/BxqkDmCouFsvWxaCrS5K9mOzFYK879Lprf91hr3v8bZddDXY1aMvUbs26hGJzPgWLnCKCMOi1ZUafJjSSwweTFNPsFdXwU6xA9fapxPROfq/D33ts6L9lvcqz6+ibNFdoUFSsBMlIQK57brLrDrvusssOu+yybYdtJg2DZU5+zGktDmpG0XeB+xAjXkmDhpGZba2eHYwkGnmi6WGdcYgfb7/Fsoe9ndSLA8iITMujr/kpbSbbrPaW+7HLxg7jLuMOwy7TDjOTYDB3sDzt3dfUijo7ineCN3HcBNwh3UHcCN0tVwKSHmI+sxu7IINkqByXhY4fbqdu6rduP2Ljai+gqZ+ZO29RydL3ARJ2X21HO8x22R4gykP/ppC4LAN+MBerIe8D4wbZDfSaO2rcjPpC6SbqppaEq0OpMA6z5PiEjv+u7WexSiDAms74UgyBBMSHvpk5WI+QPCV4JoNBZl5o0qL/AZzGXbAbOO4QbqRuhG+KUi5FYYnWzOmc+pnP5IlUAVR8MG/p7DZ/r/aDNk7LsYC0KpqbZJBJMoN2kz0MurvaFM1Be6TaDHB3k/YGnK8wBN4HLWcBbsS4S7qLukm4g15ggrkMR9bfZTxzLdYv0Fqw1732U6D+Dtv1te1nPemjSESCFarOTP4gI4O8k6GbRRmuS57uBg0L0HbITLaHmrzL59cKOGjcSSRg+fC+QyZVraGSr3P24O4JOj3nk6U6OdUncG4Hf5v2I8A9qZZ0lp1UKDpfjwDsbtAXc8YJcwm8OPu04SpUMtlu0C4pKoNiHS/mvJvdqXEn9RhedPJQXz+lPas0wK79WBa5WQtNiEVl/vZ272f4cUBImiM3F4QJibkLuAXLjIiudkG3iEuOKMeVyQE3WIL2KOCkOzEepEuhYsldtLQF5soMmfZGPoZnT/dsqtxHWgOjgAOZgtgY5e/LLb8XuAqypi1DVKzCQXsgaunQQQMQ0nhXrI1yeN9C2u6GReIeBO+jAMMDkRiEJBuRfxLZ0r6WSKS9j8qkqgziPZJQK4WAeHIVzr3o37FZ1yQAAAONSURBVKT9rMeQxc32ejrdMfNHMhidE6HxHJ2ceFUUUTr9V5RlpY1D2DGXRj7GdBNqnWaCNljp3DYYKe8OVvsbdrbPNWJiq5pMTyde/UbEBPhxG9e3kDbtcMmoBNdQowlaPlA2s8DQvr9DpQZ9U812u2qUMrsrfLKZ4u77IS8qGVWrMFrdwphrPUfJVMw8MwnKcm8Afj/QgJ8jcR24HR72Oi5B76rMVxSvJQTTnnB25g7yAZXtSpW7Q9hFpkRWYk1kS2uA2jA0SG0c2kANDo14r3IV63imemMGruN++BtbN28/OgPeQWPsd+aUMAFPp59LQxE5Sw0OEqYc+aHGamOSj0ON+CyQKMA4NDjggA1sGNq4+TFLArOGYWZQRVUcZqEFmtTVPX9Xz/7i9iPkpB+XxLEErdLKgiDgYeA2yOEpv6SB8CqeYUMy49iHZHLQcoXWWjqjbSKQUoYNQxds2DBw4aYL/TiBHFMq0aQMnMk4fxRowM9VlUKsGEAvbkj1ZCR3itsAh4EcJAcGNgni8OV4MPYNMmH4+laCAWYi9gwQZ4jKQQhgOHDhhgs3Xbnh6sdIQOdCnlmIAuBcLa5B5t8YNOA7gGvqst9YVbp4J7TU6aDnwhgixiZRGP4wHcY0KSAxwpmHvWD5qOg6p6tHlqQlYFdeHDhsGBzYErAo7FoBYpO09f6+tU/+He2nuQOudhQVtZqdTA5faIUDsY51rbgi9KqUYIZhv0SLeq5YtEUoxshRajEBeynQLrhwpJQd8hJWin9sfwpowHcCd5Q6BuWPtZQs8kE0fLLAfNG46MPISx2q9YiDMJg2mIaGDQ8366GhHbssQtcM0C4cugRYLwWaA7fBa149JyHk/wOO+CeB1dsPSxxRqb0IpsaRa/KTgoZrK087ACkMEE5MBraY6vG96UrTQ5sMhp2mu3Z5QXVUZxO4YgL2yqsDhw0XDAyOUotngP2pQB3bdwPnNXWW47rAG0DW6MqXIRYHBPN1qcKAjfDIfXFyg7TDYJTP/9CilNPwoK8ls3vBKP7/X//vP6Ljf7T9sJ+5yxjRZeTEKTwJJKLOFYuMSdWMRuf/GVaJiSAHEoCX5ez+kET835f/81/AWvspAYIED8rp1IzY5rH3ef6f8wlzXkh6Pvb//2f7538BO2k/LbLTq1knOOtvTKjydT/U8v7ruP4XsA/aTw/JzaLIb2uJ0s98VNd/cvtfPAATpP0CzscAAAAASUVORK5CYII="/> - <image id="_Image6" width="111px" height="109px" xlink:href="data:image/png;base64,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"/> - <image id="_Image7" width="108px" height="109px" xlink:href="data:image/png;base64,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"/> - <image id="_Image8" width="86px" height="105px" xlink:href="data:image/png;base64,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"/> - <image id="_Image9" width="57px" height="50px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAAyCAYAAADm33NGAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAQ8ElEQVRogVWaPah361HFf2ue5//ee0NiuAmKpogEkkIxprBR1EoRP7ogWNhYWdkLtvYSEOwV0iuxECw0VlppYRRBIUZDNL6Rm5uPe8/575llMfP8z/WFc889X3vveWZmrTVrtn7tc38ICEkEAgQYJGxTFCYpmSRxFBZUCG9TO9DN/f1IrGciktgJy/AK1hbagZaIvVg3ERJEQAgAFJx/LuOCJflTn/hBfv0Xf4YvfunLfPVr3+T56S5fyXUVdV3kc5H3/v/ruriei6f3nvjuO9/l/feeeOf1n7O9ivDq2CRk9Q3LsMRyYAVSIYsK43m+CggFpoDEBmLjKMSCqD4yiVCgEK/evDltHJLUwfffBTKAUYBthEjgvednEsESui0Awp0ELVAZKpACotivNj/wsY/w1tNb/NAnPo9++ae+QBAECySCQJNZ6JtZIJnEWKYkvAqH8E3UMo6LioS447jDumAXcRO6mbXF7Y3tH//Mj/KvX/8v7nXHWgoFRBeQOPfs/1SaQN4RvPfeE9c9VffCV1LPF1cmeS+u5/66ruT5nuT9Tl1F3i8yk33FxdLGiNCi3BXUt+ug3QXMDiggwp3RJYw5uQz1zy36+xXYhS2K8N6v+PQnf5ivvX7N0/vVBxn0Z4EVGHc1FRAmXbruF1YfvJaoErUCVfXN5hrFHNRU13mynat7bvcZErH7h+r84ulVgUMdcgQhdybDZCRai1LgeELa07dJKLEWJvX+/e4v/c3fkxgCaUFq+lMfxII5qABKGM29AqcnYCgCKwH19yJw5FzrXDPY97hzw1xd8t0Tk41ydC/1Uc1zCEJUgMM4DCyqLrQ649YdBKGFuZC77LNCeRUKEat7MQpqHfDR3MsY4y4JHIKMPoToTJWCCkOs/t0IiqRPrxPhKBSwc19IYhOIheRHqU6LYzrQGAR0BAsodY8yp1cSEcJ0hqwLdTIQa0qx46kUsUXRvx/VZWfcWTBd6qJ/x30vo77vdLDVfdKfG+wsgRZSUTI7bzXIWaBzy0EvRffqANPJaAxiir6IBpmJyYD2o49RIFd/XX2ymkBsWNV9XaFGyRC4g0BBVU05ggmKahQV1KCpB7w60FuX/LogT0/eClGgPuUMUKlP32AH1XiLTN+gi4JSEI8Gv8DdizmHgIW5MAtclAPZ/UGnoWTkaE5WsIxdklVUMYdRlMGeA9GkQqLm4HmAUsJ2UyAgFTvfMNH9Tg5dxFw0ppfw9Nr0iBSnqB5IdoLHqwEsq9G3FlaXkKOvEUWfoOCqxZJx4Lf25u2PfIjX337X1/3UbJ2SADprdnYPTqmyCxy4ilibqsYNb+NaBK+CelPUK8g3gA25IVeRq3AUFdUPGhO56qFOmlO7Z+V59uxcg3DOczogRRWkRVaQFZSDVLDjFT/32c/we7/5y3ziYx+HFTaNoCU1DWmQltXlHIHXQrpBbLRvaAWsReyNYoGC7dvJUl8ynVAiUvMA2b9QnYVG2EAxOP8Itvu2yOa9GoG4gCwK4Gack/CbUE0LZnCF+cq/f5O3Xv0Lr999jyrh6uzYAyzNKS1OCB75DcOa3o8YznXjwVps3Rr1ypAuyCQEKVCqaf6ldslaLO2pd42I0Gjcgbs0VlFU92IUOXhoV/fPFbDALGKBE339W9/xf73zL9SV2EuWqNBwZVEBsho191Ha03tu/Sxdg64DhhQ7VkzRGVfXWk2JaVRIpzKBWwOUGoSOWLCM3QKhFN23poONxE5kk+UuYxfcGnAOaSwgLWX6A3p4zbgwwKK+l2LucTSuq7OJUbh5Uhq+hc2eXqqOJUlQEVFcJKt2g9LpuTDpeFEp9kOtWEA1ejLlT2YfXDcmNtQtEIW8Rr20bm4maO7U8GbR9+zUjFwzxDJpEzZXAr4QRZabU+tqyrLZN68uKwoicYqqrn0RlIpLnUXFlICvzr6GEjiU4+FxPQKyoLI60HIj4lVT5v1ArVg3sBoR9UHKWo0XkxkpYE3VRR+iRqnZXTVnNOwP2GuUQ00WTCNpuU9tqfvxsg7bQmxwl0WMgtHBoQHeLuk+SQBfM2/OiIRXl/GrDXnmD7A2K8Drg7MtpzZRdPe7mtvrVBFn9i3KiQ6sq9jLQdjDkX5BMx+pdog7qAjKSUQTvJWUdSgP1wjlwZ8PPPpoYeHKkWXdW7oSuF7iyGitWrxoWeYE5cGP6k4+I1lduC6oojkrcZm9w+nF3l6UDVkkMehXDzBRFFcVa13NhUcdRadsTSa7NAeFs1ny8kmEGgw84GBwJc7+2hHNpZc6U5fQXg8eRkMhk7EzWHf51gTf05QH9W6vwp/7sU/x7rvfZ+/aVLmDc+vE8hEZneFFYS1ShcgGJZmbsqUaR8U0CDtal0YEcjTsWyyNcGccg2yiLBeRQYRxFo59ktYHN5yIjFrcdMJsytXVR83vJiH84Q+9xe/+zuf5j2+8Zt9qc7lHTGzKRr4aX6rP7gqzR7w7TKkaZaeUVabWUMac8mOWOdkcuug+neqLFgT6wMEIDS/zUHWdrbEPAkjNSDfSciwZoq9TIX3v/Sf/0Z/8Be9++3vs0I0wLDd5h6sl2JEmndtu6JVk1OjhRCe76yBXc2hWA1LRGQwHdo9uXX7rcW3WIs6s2rNWV9GpjNPjU+oeevLLw3WAmp6Zsn7O0pf/7p+cz3f29p5Kby4z1YHQWT0n5kE5yeQqIkwP7t0JEaOnr4b7CnVTTqYCzUQDMYLiDOCsGxGrKUlqccVk0E1PLwDmx5/14E4DWLQpFhUj7Yr7PVVV7NDqEtJixY10PdBWp5EZ9XB4ZwR7RSF1qXvKEBWkX/wXgWK1TgU2i1LzpCNwLGIvtGK8nji2DWURqpeePKljgvMIEjHG2xxITCtMS2z7wHQMHCxMgoIy3X/zhzVTSKqtQAJCRVmsmd45guEKdAsiN3C1EuKGKGKMs1q06tntOlgLnSnfxZlcXa2nHc2VPkFFtMSLaF4ttd4eg2zsCzYPiF7YV/dj9ZDr3b3gEYr9/CYDFtVwH9Hz5znj7MH2TCJrBUrBjvFSN4UfY9DDpDrWyYgbB034a8ArGgmPJ53TjG7I7mDFEcEPW4QFu1RNH/1otPLvepBaJHvQ1GrLYQEZenCUTs/OIaiCyuxADOwbkUNPEsue057qGb5IakR4ZzFtVDNVFFTEC6Q+powgIshQO3H18tmDzjtJ7jKpzkYaHIt0URMgWlQcF7yvE2rlL44wmAmvrYWhhx6Ol0WuDvhmUZoR56FPRw1KTeiHytQIVBLh0cNDTz7U2RDQF7iiHYgFXC+0si/upIvLSSopjQIUndXSQ5g7VgcYJ8ChkgCxjh88d+/yWRHTXyLKH1gH0AiOqYIVRVSOS5/A+Dpn2KFtFdGByMfI1tyrS1PpHobjJeP7zp1Ucae4whRJuh5IeqzGNR5NRasWMaKAUQ0wpaYxJ4TWzIxe7NNXx2oHTLJKhJJ6uKZFVc9+7TVNCQZUrB7E1Caa8QNciO5ttqg832/q3Fe9x4XJMElLrBwuSuphHjtezvI4Cc6rs1x90TXLovZLg+XBtWPl28Qxkt19WGOjqM3Z8Rf6o0JI2dniTDq9ymBQ/6GXV/Pxce183AyZ/cQTJbgXTf6rB+SaqSQUlOsxDSwXOV5LaJGVfSMXxBr/Ns5429QiRty3emmpN5sL10M+xtExI+YbnNQFMJO9oykvdQ6ps3eQtqrRtg74FOw7z1xVU4Zt3ScMxNOTttpZZ2yQVVCxe86mLYnqNJAxFuSIdsV6Cezo2Zplj3vKL+rhxYr2jBwxe5RGco5+nWAltQUZxVUNSOzRwWuCiAGeu59I0xZC9MM3cp2JfyEl6+EgBDBjkoK7gqXVU8YyTrPaaMFaUjbAxMvOqUU34HL3mP2CE/HSb1YQqjGe2xwTtO80WbYnuGMePHpzEDdgP3GnMNcARweyR+/2PkEsqGw+cuHq4TkltpuBY7XKWfsNf/yjb/H+08X7T+k02sTIsC7IHgJO5la3DpON6d9iVnUDUloeYDu/0uvDhwoZHVurx7EToJaIu+9cuiglWYNydTXoaDirLtLVPy+Tvsi8yPud53zm+f7E/flOXZd/6O03+f3f/iV+4xd+kluIupKsogd3N39dLb90qXVuDgpnC41VveHeESwt33Z4K9xl6t6PDkgpes2h4P99EHoEvlMefzR6sTmusMfIEkmTQuEU4as1IkZZD1S0A9bmnXe+w1f+7Rv869e+yfNT9rY4u1hLB6Eb9kO0RrOwL6RoPBjbMQK//dE3+eSPvM0/fPXrXHXv7AlilkKHRvyB7bGiVVQHa3aNxVdnm3QuMtYQal8G9wh0ZRFpqOotlOGIfF/W/3zrXX/hi38FLMhg86pnTiXtMagtk4BylypKVBuvi4VILaSLV7fNr/70T/Czn/00f/Cnf8k//ud/u8iHqdSA5ja31aOZJnuxRCaExC5awftsZx+CXeMUMG+FmKxGxqyCLFTZ6sIjBFpE6N0Ldrzild6EyN4AD2c3FSyUYj0mnE0T1w07CbKtkrz423/+Ku98//v85+t3IHJWikcCzkVVxOq9CVdXiAfEiGB7DTsde0FdPo+pAlrAZxtQlW6HrYq6kii4l1g0n0YUVLX5qx6ur3BvrtTj0pkqHBsd8neMijpml8la+o9v/K///fVr3q8LQlLMlDNAGTNhu3p+nJVDa+fmKzZxG29UeAXHCvAoFT88Go0L3oK5XyvpoKkZsgUXixhne2lchmiZmDOxRLQlUi2mUDWKVhWxaaJfTa6Jldmm8jqEG6snjJEQPPbVLSZirFTUWd0ceEfHonuYxLbHFaNthWr+bN9W4wSqB2IFTk2wRfnMnYY013qZVqpE7kQ1HqtH5kljpGneV9CIC8PKtkdiNtsnk9mDuhes6mq81O5+RIPnxscM7oc9Hq7dkqjnMvcGtwSX250jqOpNIQSVswBKUTHKyeaaoOUiIrhaJiEW1y7W4EislsD9gtJ5NaZdAe2Wif2exwwFehERdnRlDFDqZNONLbtX3kOe9G6jFYkfg2cvg+ZnFvYiqvAY0/NqQz8Uq+WdhuBtkjan02LJbTrLrGudV07aPYiELLyawg5yN8uD9qE1+g2ssy48gtAaG2Vj12zHFpspwf7XF9YEbLd6kNdsi/148HK74kEfSk+zIxal8Uvb/A2Cqwp0R2txU3Hvd3sorR62l4kR6r7quJPNf6NNXS/TTFegWvPWDNX0gdhNQzHOwfY1iv8EyACPc5qaEdKtUFyBal6icD7oRWd9DmT1xJFXc1fOyxFtMbZrLse47/ce0a4Xsa9XRlf0a2y0Ipq3i+YZGwQVTICmKjoZnIW7gDsps93LvZdkdlQ9A7rf7Oi1d68PXhacjZDHxXf2ze01nQOX6rHlsrr8scgUO+Z6GdxvZkU8aEGAd3Zp3k7WmAHa09O9an9sHQ1XiSjNyxdBebEt9of3tm3ee7rj6gZ9vN1hETGb6JpuGER9TBKjOmaC7YxPI9v91lRmDt8KnJOJGatCsxwS69YCRO6HPc/RLl70W5Ljt9ZMJw+0nzbrj7OSaC93/9av/Dy2+eM/+2ve7/pqZ+jAdJs6jWA0ah43vodpRlz3n+1B6sKEi8wZ2dIsJZXVU0dUL4kiiGp75e6WfEE8vNyoRS2IuqFbvzjYa/pHJ3V2z9au6PfvLrdTcMF+a21c5ubNlfP6QitbrI20O0PHqJoVSZY76FlfKyCypZ0q5pWUFuTX7PXJ3gIrEl3Nd+tkBsENcso9qgl/ecHeiIvFbmtz9RTTldpbZ1+9l6yrEVpp8gJX8X+vZ7aqEzXW6wAAAABJRU5ErkJggg=="/> - </defs> -</svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg width="100%" height="100%" viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;"> + <g transform="matrix(1,0,0,1,-2518,-137)"> + <g id="Artboard2" transform="matrix(0.3723,0,0,0.372784,1580.29,85.6974)"> + <rect x="2518.69" y="137.62" width="343.809" height="343.363" style="fill:none;"/> + <g transform="matrix(0.186514,0,0,0.186272,2504.08,123.03)"> + <g transform="matrix(1.00153,0,0,1.02621,-0.333683,-5.92522)"> + <clipPath id="_clip1"> + <path d="M199.942,1193.25L364.301,514.79L998.803,219.243L1637.94,519.724L1795.99,1188.04L1353.38,1735.61L635.058,1726.84L199.942,1193.25Z"/> + </clipPath> + <g clip-path="url(#_clip1)"> + <g transform="matrix(14.3791,-0,-0,14.0333,78.5434,82.1033)"> + <use xlink:href="#_Image2" x="8.443" y="9.858" width="110.998px" height="108.055px" transform="matrix(0.99998,0,0,0.991329,0,0)"/> + </g> + </g> + <clipPath id="_clip3"> + <path d="M199.942,1193.25L364.301,514.79L998.803,219.243L1637.94,519.724L1795.99,1188.04L1353.38,1735.61L635.058,1726.84L199.942,1193.25Z"/> + </clipPath> + <g clip-path="url(#_clip3)"> + <g opacity="0.26"> + <g transform="matrix(14.3791,-0,-0,14.0333,78.5434,82.1033)"> + <use xlink:href="#_Image4" x="12.787" y="13.885" width="102.54px" height="100.396px" transform="matrix(0.99553,0,0,0.994016,0,0)"/> + </g> + </g> + <g opacity="0.44"> + <g transform="matrix(14.3791,-0,-0,14.0333,78.5434,82.1033)"> + <use xlink:href="#_Image5" x="8.443" y="9.858" width="109.998px" height="108.055px" transform="matrix(0.99998,0,0,0.991329,0,0)"/> + </g> + </g> + <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> + <g opacity="0.79"> + <g opacity="0.69"> + <g transform="matrix(14.4011,-0,-0,14.4011,78.3301,78.3301)"> + <use xlink:href="#_Image6" x="8.443" y="9.858" width="110.998px" height="108.055px" transform="matrix(0.99998,0,0,0.991329,0,0)"/> + </g> + </g> + <g transform="matrix(-0.267326,0.963606,-0.963606,-0.267326,2221.22,309.693)"> + <g opacity="0.69"> + <g transform="matrix(-3.84979,-13.877,13.877,-3.84979,349.907,2126.75)"> + <use xlink:href="#_Image7" x="8.457" y="9.858" width="107.815px" height="108.055px" transform="matrix(0.99829,0,0,0.991329,0,0)"/> + </g> + </g> + </g> + <g transform="matrix(0.227026,0.91635,-0.91635,0.227026,1411.7,-200.317)"> + <g opacity="0.69"> + <g transform="matrix(3.6684,-14.8069,14.8069,3.6684,-53.1511,1441.91)"> + <use xlink:href="#_Image8" x="8.533" y="9.784" width="85.094px" height="104.88px" transform="matrix(0.98947,0,0,0.998856,0,0)"/> + </g> + </g> + </g> + </g> + </g> + <g> + <g> + <g transform="matrix(0.414942,0.886327,1.00689,-0.448987,23.2579,1690.1)"> + <path d="M777.716,406.287C532.236,406.287 332.937,663.736 332.937,980.841C332.937,1297.95 532.236,1555.4 777.716,1555.4L777.716,406.287Z" style="fill:rgb(3,8,1);"/> + </g> + <g transform="matrix(-0.609397,1.09228,-1.20298,-0.63927,2078.34,1556.7)"> + <path d="M777.716,406.287C532.236,406.287 332.937,663.736 332.937,980.841C332.937,1297.95 532.236,1555.4 777.716,1555.4L777.716,406.287Z" style="fill:rgb(2,4,1);"/> + </g> + </g> + <g transform="matrix(1.22962,0,0,1.22962,-406.296,-126.223)"> + <g transform="matrix(11.6939,-0,-0,11.4127,394.3,169.423)"> + <use xlink:href="#_Image9" x="47.225" y="26.675" width="56.165px" height="49.942px" transform="matrix(0.985356,0,0,0.998839,0,0)"/> + </g> + <g transform="matrix(2.09082,-0.439678,0.450511,2.04054,-1749.92,-55.2331)"> + <g transform="matrix(1.31285,0,0,1.31285,-404.68,-204.432)"> + <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> + </g> + <g transform="matrix(1.45181,0,0,1.45181,-441.944,-355)"> + <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> + </g> + <g transform="matrix(1.45181,0,0,1.45181,-340.964,-323.319)"> + <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> + </g> + <g transform="matrix(1.45181,0,0,1.45181,-243.369,-403.134)"> + <circle cx="1164.57" cy="746.198" r="3.714" style="fill:rgb(217,246,249);"/> + </g> + <g transform="matrix(0.14162,0,0,0.106379,1255.11,326.107)"> + <ellipse cx="473.71" cy="2213.74" rx="26.366" ry="34.914" style="fill:rgb(217,246,249);"/> + </g> + <g transform="matrix(0.183176,0,0,0.137594,1267.83,306.177)"> + <ellipse cx="473.71" cy="2213.74" rx="26.366" ry="34.914" style="fill:rgb(217,246,249);"/> + </g> + <g transform="matrix(0.183176,0,0,0.137594,1305.97,260.005)"> + <ellipse cx="473.71" cy="2213.74" rx="26.366" ry="34.914" style="fill:rgb(217,246,249);"/> + </g> + </g> + </g> + <g transform="matrix(0.99847,0,0,0.974459,0.333172,5.77389)"> + <g transform="matrix(0.783287,-0.62166,0.42354,0.533658,-349.619,718.646)"> + <rect x="408.402" y="1093.79" width="4.959" height="29.434" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(-1.08701,-1.35903,1.25702,-1.00542,20.2649,2656.45)"> + <path d="M604.583,1063.58C604.179,1070.87 586.72,1078.12 568.636,1078.25C550.01,1078.39 530.735,1071.2 529.66,1063.58C528.777,1057.33 548.391,827.047 548.391,827.047L585.852,827.047C585.852,827.047 604.755,1060.48 604.583,1063.58Z" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(0.580282,-0.484732,0.515587,0.61722,-287.394,754.668)"> + <path d="M641.934,922.236C641.934,920.246 640.217,918.631 638.101,918.631L630.433,918.631C628.317,918.631 626.599,920.246 626.599,922.236L626.599,935.668C626.599,937.657 628.317,939.272 630.433,939.272L638.101,939.272C640.217,939.272 641.934,937.657 641.934,935.668L641.934,922.236Z" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(1.10336,0,0,0.756103,-129.874,304.992)"> + <rect x="623.76" y="952.024" width="7.556" height="14.882" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(0.751106,0.0867832,-0.0867832,0.751106,192.048,259.139)"> + <rect x="554.086" y="1154.69" width="147.217" height="5.682" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(0.756103,0,0,0.756103,87.9789,304.992)"> + <path d="M613.582,964.953L639.836,965.694L825.281,1466.63L764.142,1485.44L632.829,1001.44L649.028,1425.43L579.185,1422.77L619.111,1000.78L499.628,1410.41L433.386,1386.72L613.582,964.953Z" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(0.425329,-0.211956,0.174717,0.350602,71.4523,902.336)"> + <rect x="578.119" y="1119.44" width="90.986" height="10.603" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(0.429183,0.204039,-0.168191,0.353779,508.279,640.307)"> + <rect x="578.119" y="1119.44" width="90.986" height="10.603" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(1.49723,1.87143,-1.1012,0.881008,970.521,-678.592)"> + <rect x="425.339" y="1060.05" width="3.413" height="11.518" style="fill:rgb(2,4,1);"/> + </g> + <g transform="matrix(2.14937,-1.93806,-2.42817,-1.73401,2106.96,3725.88)"> + <path d="M423.257,1073.04C421.873,1074.48 418.261,1074.62 415.794,1073.04C415.729,1073 417.66,1062.29 417.66,1062.29L421.391,1062.29C421.391,1062.29 423.292,1073 423.257,1073.04Z" style="fill:rgb(2,4,1);"/> + </g> + </g> + </g> + </g> + <path d="M199.942,1193.25L364.301,514.79L998.803,219.243L1637.94,519.724L1795.99,1188.04L1353.38,1735.61L635.058,1726.84L199.942,1193.25Z" style="fill:none;stroke:black;stroke-width:14.2px;"/> + </g> + <g transform="matrix(7.52627,0,0,7.52627,-365.767,206.722)"> + <path d="M291.737,128.689L272.73,46.128C271.696,41.805 268.772,38.167 264.772,36.228L187.837,-0.502C183.801,-2.428 179.102,-2.428 175.066,-0.502L98.138,36.25C94.138,38.187 91.213,41.823 90.177,46.145L71.203,128.71C70.339,132.553 71.058,136.587 73.198,139.895C73.459,140.295 73.736,140.683 74.036,141.057L127.282,207.262C130.106,210.709 134.325,212.722 138.781,212.749L224.168,212.729C228.623,212.704 232.842,210.693 235.668,207.249L288.895,141.038C291.654,137.564 292.699,133.022 291.737,128.691L291.737,128.689ZM282.54,132.555C282.412,133.14 282.246,133.715 282.042,134.278C281.552,135.647 280.839,136.926 279.932,138.063L232.633,196.901L231.147,198.753C230.23,199.878 229.136,200.846 227.907,201.618C227.433,201.922 226.94,202.196 226.433,202.44C226.091,202.598 225.743,202.742 225.388,202.871C224.935,203.043 224.473,203.191 224.005,203.315C223.352,203.491 222.688,203.618 222.016,203.694C221.548,203.747 221.077,203.774 220.606,203.776L143.102,203.794L142.342,203.794C141.183,203.787 140.031,203.628 138.913,203.322C137.55,202.961 136.251,202.395 135.058,201.644C134.114,201.043 133.248,200.327 132.482,199.512C132.249,199.266 132.014,199.025 131.802,198.762L82.997,138.083C82.725,137.74 82.47,137.385 82.232,137.017C81.68,136.164 81.229,135.249 80.889,134.291C80.688,133.729 80.524,133.155 80.398,132.572C79.972,130.659 79.973,128.675 80.402,126.763L97.796,51.088C98.745,47.127 101.425,43.794 105.091,42.018L175.599,8.332C179.298,6.567 183.605,6.567 187.304,8.332L257.823,42.002C261.488,43.78 264.168,47.113 265.116,51.075L282.538,126.75C282.967,128.662 282.968,130.645 282.54,132.557L282.54,132.555Z" style="fill:rgb(18,16,24);fill-rule:nonzero;"/> + </g> + </g> + </g> + </g> + <defs> + <image id="_Image2" width="111px" height="109px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG8AAABtCAYAAACvDT9rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAD1ElEQVR4nO2dS5LcIBBE0YQWXvpKvv+dRt542jStD5+EyoJ84XDETADKygKkouX29vvXnyNYsW1ml76FVNeR6NqrRyINkFVXajyCnSpYJi0RPYxHUL/yYkiDYzUd5RfXyouY3XgEmJWXIOMbydT5ljyZDmCg1r17wrwYz6rzRtf9tskaUAqrzs667B9YrK9/hQNdKtJHoSLdCFJdUxfps+viWnkx0vVIlyKdKcA3JtP1nrzJguuOsa7+26aML6Lk0MRnkU6qa/Tx4tgHFplexoOu/AcW0gC9Go/AtFRY2fgqEO+wyPRCOunq/5FQLiw6Uoh16XjMgqmPxxg1hUCnC388RhbgC1ZdKdVFOmuArLpSpirSvZgeAq/WqndYWINJYdU5e5G+svFVQP6hiZPgaOhVpNMEzKIjhVTXoSLdBtSpFs/Ki2HUFPjOdJcp0tmMf9Ggy0WRPqPxCLpumzK9kEJdl9umjC/EQNfYz/NkfBmQd1icBmfGIF12pcLixhdzokvHYyOY+niMQcMZ5Lrai3TyAOkA6uJYeSmMmkKg04U9HiML7gWrrjOq3mFhDZBVV4pFka53WAKtzqcDlPNtkzSYD4h1jji5UpGe4OlMd6oi3ZPxCChKhdVMbwZVpMv4QpBFOqX5jJpCoNOlIt2SRl0q0msh0LVmkc6qqxBfRTqrLiPGlQoyHo7vd1gWh6JIF3V8WQsQ9Sh5jlHyHKPkOUbJc4yS5xglzzFKnmOUPMcoeY5R8hyj5Dmmz39HI+o4jqLmSh6KQuMRKHkGpqPwnTzHxiOwS97ixiMoT55Mt+dfDnYlYzBAv33f80ZCOMnXSB6h8Qj4kzep8S8a4uuXvNlND8E8xvPkyXgathud/p42nei9Mx3F2HuejC/jQUd+8lgCusGL6Shots3VjEdcH7JtyvhB106usVMYb63BwHgE7StPxpuNa3fPW9h01Jh1K0/G9xmv+B0WkllkMi5qPNA4pc8f7yvPi+nIMQHjND/0VfZ/Xnmssx00lpXxTX2rPkknmu0h+DYe0a/8nrf4bB/WN6NPcfJkfIdrFfSJ/c8/YbEwvaVvZxNr2hdNfMjK8zDba/pUznbo2I3tzpM36TYD1TIoQXft/iePbLaH0Ml4qzGB1/3xZQ/f35ABzwZHj8sw21vbZXmTeSv72DZl/DWP3gATc6Eg+juEfXtaeezbzKjZntOmwPjzb1vcfv689QkfTX++mv84fM/2nHGaV0xk/OVXXOYYv6U9Tn8fX+OyTdiSex54lbFtM5fGb1+frS9m++dP0e+3zOREWb5tk/6UjP8XqQ+dNazhY+gAAAAASUVORK5CYII="/> + <image id="_Image4" width="103px" height="101px" xlink:href="data:image/png;base64,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"/> + <image id="_Image5" width="110px" height="109px" xlink:href="data:image/png;base64,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"/> + <image id="_Image6" width="111px" height="109px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAG8AAABtCAYAAACvDT9rAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAR0klEQVR4nO2da3bruBGEm7ZmJivIKrKlrC5byiqyhLEl5cfclosfqxugTPlaN+lzeAi+QKAL1Q+Aspf4H5G///ufy6Pq/s8//nV9VN2dPKxD30UGoN3b/xKsrwTylwWvAc2dn9WDA8aC9RUg/pLgFcAtE+UZuRZld/xQEH858AxwDqh7gHSgjc5FxOMAfHlEpUfLbLDRALcU24vsWX4pzvM5DoglMAgeFSz9FOY9MPLLeq/RK7UrV6LMminrPiKOZ+DpyMqc7ADqs5GfPv9izinjeOyAdu+4hgeM5nPB/iHyEAbcGZ4fCZ4qrwKp2liXY5NuF3MuTDkijmXfoeDtCM9HQcKoXZ0CHHAhZfVTL1ED6N7nACN4F3P/qs1HAXiI2bwzNP9M6O7MlJYVnIgtOAw4OgAd43KAXH6ULz+2fKcC+DDT+SnwBqB1gFUmagSiC81TOdf4S3EuWCFIjCbdPXyPMisBSuBSsuyePxzEu8zmJGh7o7xZ9nU5lh5rGqTAMOR/DQ8g61OTeJHtjONLeD+4CmyOMJ27mTfIpbjfEyy4OpxUIblThmPeq9kT3A68S2zb7URNp7bnMPZNg/dJ0Jy/mQFRZRT18VoVqKi5dADOgJeMc23sgp+vz/MAHMsdaG5Eu3NVh7NcAVZtS2wBJHivRbnyewneOWpw9f25/Zw8b5JtHWjd9NIo4qN0+VWVa6XQbCr7TrFlogOPrNPt3ZyrfGDW92m/VzJvcp4wombX7FYBSKmCBpbzWJ9zg6NjHk2nyxu1TRnlOn/onjlELHiFmazYNgLsNbYK4ujXOvRdKWTcaMtQPp+dMeXaLqdwPZdteY0P8JhCPNxsbsDbAVwH2musQePWAViNbvod7mmqqDgdGC76dFZA20Ah0wgc9XU4iCvwGuAqv1YxTLdTccxnnLmKqCM9Bew9PpT3Lu12oToHSnVele5YyP6TcW08cYTcwNsBnHZyBNipKSsLyb4UZy41SMhAIduV4fsi92c9o8EYxfXqfAWS02OWj08V7gCO5tEBpttvUYNHANnRinH5nIIX8pz26RLrfrkZmUp4fwVYF6Q8RKpocwScY5oD6zeU9Z58jmZTpWNcsrQzkxEfgYSG6Qq0yyE1MKHsZY8D8RAWngzr3LHza2QaAas2AsgwPYUBSgL3insXc69Gm6oop0g3S+NAdPdU8rAIU0WZV9l3Zyod03L7vdiPwHMRHk2lAzline+9xppt1YyI5oIacKjQ9Lqcspoc4JTd4UKzSdC07EwkQUug/og1eApgPkef51jHWQyNANUXvsaHKdXoj6IphAKmgQ5ZR2bPgKj9cHIIoAneDOsq4H7H9gf2I/DIJprA9HF6nX6wyhOzXE1R0cfmM87MujxztAQUeP5QodmsghQGJwROAdONwDLqrFiXClG2kXEacVa5W2faGDToVBeTbb0+u4YX4UE8TE6xZV3uNZejySRw3P4WWwDp81TxKsoonqd/nM29VPF5rPc5f6n6YB1ciJ31f4eKmk3n75zZpJ8jYNw78JR1+X71c4s550BL6ZSngDnw8vyLnO/AcwAqE0fm8zBx0aYCV+VyChwBzE2ZqIDT16XojMgi587hlaniVq31fGXWtN4EsAMv75sNWLKOK461zrslzSYdfJWUV/6OwFVmU80lzZZOb1XOXhXnTCH9kcvdVMEaZSqAF5zXNuj7XSCkksDZpJzLbnvX96qAZTavc35PzaYGK85cpqi5zOPcO1OVwUwV9XXAkaX0fy+yd75T63SDqWKe9o39jIg1mDNAVj6vijYJnOZ0Lk1Qk0nWpThlJphM0nXVehTtMajgRqFyOR+q7cu9M5t6D+tWuZrzt+cSyA5EF212JtMxz+V6XZCio1xNXgLmgNIVhApUx75zjFnC/l+l7FKPFDfgHNgUa0Lx/BSI6pgr1s2CyGkwl9NpJEuGEKhqI/sUuCp0J3BnnKuix6pu5+dGJHBLX1UEvUl33Leysz6vWj3gakGVDmhjVaGOYeeIeMOWwL3FmoHvsQbABRGVwpX1uuqQOuCcqAY1VKSmGTSfzqRmTkkLwDpWTCQL3axE5/MckCy7WY+s2/mjBCGB+jPmQNM6KoWFnFvMNUaxI/ArX1kN+Ep3bhHaTfFZM5wgujyvM517GsNRS4Uo2/6MGkAFMcFzpq8K1/X9IfdnOWI9q5LnGRF3SuUAzT3Zle/mQOJ1rYtyY6HmeY51IyCd/eaLUtF5XDGuA46BSQKoUilSr1cpRB7nPTSjfE/2N0zZ9V/LHHDcs53aNt23S0IVaEt4irPRqYT0HYwoNQhxgJFxVZjPKM8x42qu5XUqd8H9eZ8btIEy658BLrdFzukz1SC7dktCVMZMVESfwQ+CrrGNKhWsP6Nmm2PayCLodolt+93vDWbq13y18u+qk8p/ujxUAyMFU+UaEYuLNqtjJ2wYZ0CyDrIuI0oHIFMD7XTEVonnqAHjgMt2qEXQvqS4FEpBcwvJfCd1ROAStBc51kl59dMWwHt/XOlAU2Dyheo76OsSrLMpM1/7qzPXWGLZjPaTacer7LMdTikKaMQWbMc+fvnmUqKOeS6XVNDyHGUDIGdYOnFRkZvteJNG6rO8zyXfzkx+KHFZ5YmM5PKdJ7meHywlgDSf2bYEUf2Ysq36tFGvucSbenMzQ+94Nr+Gi9his9LpiHlVKKtK1i+68gWcfK7Ac1NcDJdDOpeKp4+5xpqBaUrznCpVE2pVBiNGxzw3SeEWl5lmcLCr30/AHOPfYyu3qJTgMTztRo0DLu/LqTB9If2h7tVEVhFfMkNBZNudaWKUrIFUMlGFZrKbFtQZptlvcs4/7n8vnumi1VXAdYo1YHpjFYwocBxlabYWc54zIpwdoe/h6M22ZbDBvFKDolS2spDRoIsMHdu6L+bc54xuksLNKHWfPWp/XPkGnt6sN1bApV/Tl6ofUhuujdeIi9GXKtFFidUo1mt5zoFW1XkND17ez+iSXxJUk/AdeHuAc/795p5OcjP3NEH6UppKNZdsfDUolPFkhFO6doxmk2aJZq+KIgmca4MDkEti1ZqlS5NOsR381I8b7BqsLQGfVzGOQQaBSzmHt/lsXJapQCqLyXCKJrNa73t4X8IAhyaTg8gl36NVFX7mQZ+v4KllcsA58DTtuvX9FFul0lS6VGDBy3JEdeAFjh3D6GeodG3fImUGAZWZpE/TRH0pniOAjoE0nYwFFLzKV7u4wqU5t2jZMY8o5wudL9NncuRz9LrQO/2Jip5PAFifA47LL53PrPauHSMWdmxkqqQAOP+tBMl6q5mjW556QkWuQnZC5TXWZowjn4p0vqxS0CnWgGQ787mLqc8BEDhfSQU42+rMu7aZJjv9VQZmqd+T7M/hB2EbcGkS6wBMJWUS+YbrGtl1i4za8ZO8j6x0CnHAUNlOmAK5c+4eFb6L7+36qeDle3Kwz8zJlqBl45R5zqcssU5oI9YA09c5c6fXlDk8dubKAUSwXJLvIlwVnqtSBkpnbvW5rr0jX1z1f9M+Mi9im3fpA2RmmoM0cZwM1pF2jXWApGaE79FO6j0ESJN8BlkVqDPsc/e591fuhi5mD+M7U18yjw3ktBGvaTSkaYI6cwUu4gNsVWr3fo46N8XGKbt7AOS7eVyBxAhRA4qIrTVjGytrMSXV9JgDTjvzKvdpORt/lX1KMjNtud5zxbFGvGoZEjT3maCb7N4DYuX7O1Zr3sZIksd6fzch7/Rixa0q0HzyWm4auqqZVOeskve79TYqJCNX9UVpJnX9zy3e7gWw6p8Dzy3luOAk9RGxHnjdioq2dWSeI8KbTRVlDytg7uHW1/JZOmMFUDvFEJ0zKcqw7lPBbnRXZmqJbV+riYoRcDolp7pU9rlPGmdAvLXZBSxONDGuRqYbzQyp1T+mCc0ZmzdpmOZwek47n8DpVn115tinAdOCvfZJ25vvpi/W9un0WAUeAay+26ksRkRsF2OdD2D058Bj8k72MKfhyM1Fx2t85I4JOlngvjojgNUoZoSrLiL7p747262zTBVwOkPSzaboktoIwMpi3JiXlTMsZ/rgGq0Nc/6DwHO2Qu+9xAdwZF1ulc/Tr86cOapGsbZT2XeRvc5HdozjxD19Xuc73cdXru0rAN16XmdCk2VqRjUwYefY6TccOx/Djgc6oA6/+li3+t6TjONe20K20AzSJ86sinc+1G1telFFmw5AjspUsItKs9HaaQLiRqTruDM5yj6yUFnHT+S1voj1gNV+0tLo6oNjUbUMpTIKgrS9rv2bNGKJmPpPJDR/bjqHU2GcZdf1r+orLJrWSlk6WpOBPNbOK/AMsFx/FQSuILjJiIp1HBT6bg7GarugfNtWoA3+B5Ayh2ZRO6odO5k9AeVkdNVpBgb6EdO7OUfQch+iQK2fqwDaN87dEqxuJaXqBwfkzH4VfFmwdvzTCzKPneG3jVp2SuAKQnY6io5q5MYRfI2i06jXmU72TUEkoNp/ZznYD1oSZ0oZYPHeGjzKDzBHJrQCkOtUNDPVAqoL5zX3cp2lacwtYgueKpLSBV0EqloBcLp1IT/by7bzntuzU+BF2D+oqiBy1CkoI3MzMjUZJI06yrIqh4oLnMt+XKTMviqY3FMfHOj5Lu4JiCtvUoTc7v2tQr5cg4qIj4iRI5yN1XnOCjh9h9ZXddZtIe3Rsg6KlAz3HRP1mYw8sx8amaZ0pCB43eb6d3t2mnkRQ/Y5H+HM6cjcVB2tOuzuXWILAs9zYGS5q1f7zrLur+EBdP2p+lVduz33GeZlJRX7Lrh2NddcBKuiCo1m7xTm2OAAjFizs0rm3XPV+0fgVX2pyvbcLuZFDP+YuJadL+N5PpvHVArFscAxmL6KSh35n4jedLEtro0zfRgNTnvvUcyrGsqZitzoJ6pB5Nii1yJ8euEGT6DsRrRGedrOMM/k/do+1YPep7IXSPfMfcyLGP5Xr9w7RrhrVTucGXTvcX6UUWw3ZRWxZZymHjx3xT5iDZxzJe6do/PDZz/LPK2wY4l2aAa4PM/QXdlW1V2lK93cqgKUz55/3Kfs0vP6fpY5EdBJd0/7/F3Mi9j1T35H7KmkMoX0nZozuskAN/VGU8jkn4k/5xnJxMofsuxkBuCb6N8guxu8iOl/re1A6J6h32BdLuWopuN4nQA65rnJYS4vjQDcA56VmT/Z+CnwUnb8f/Q976V5q3yYmwQnkFyuqcDjklO3PNMBGLk/8p/aU47webcGGhBdw6vQeUYYFDgzGOHNqfs8IetK8Jb48GmMRnV2pnr/w4Bycgh4KTrKGjbe00GaTlUWc77KJ1bLTgqGtjGnyvQ5BZlR8yjKPFwOBU9lxlw4gIXF1WNu5EdsgRuBqMKQ3wHHeUwC9+VyiM97hAiwMxEmF3r5I3+ugDvmabBSfVPiFn6rFfoboI/yew9j3sFCs3avuImCwLlqc3VE1O16OCNpPr6zuOks+jzeO3tM6cCt7v9y+bbgiampciaW92zVM6zvW8uzmM1KOoA0B+MSVaDcAcnr30aeEbxZwLgxSOH8qJt81rU9vde16cvlGcFLoflThnFlgCxjMFEBTxAr8/tT5JnASyVpQuyYt8QWNL1XczYVAl4tA1XA7Q2KPi3PAp6bvXCg5XaWfQoTbzeVV60kjCahS6AeObf5baPNiGHHR/6u+yEHf5FT/QuA0U+tXJu+TJ6FeSnONKn5c2xKtpF11b2d+Zxh35cB+Ezg0XRq0KGK5zPXWP/NF7com/UwSJkF0bX14fKtzWaENZ1Vkr3HbDpz2f2mfYZ1X54HPhPzInyYH7FOE/I+Att95FsFQVX+NwXWI4OViCdgXsRGCSx3ynafMvCnxHv/HIgD8P8+b6c4FnImRXPCpbiu9eXebbvThEfLt13Pc9J8rZ370ZJO9dmEClk04+M2rHu0yYx4MvAipgDMfQfaCDzuHVg/FbiIJ/F5Ksb/dWaOfrD68muUElQJ+pf7OZWnY16K+f5ldrW7KkdsgyGWHVgr4L6KdRFPDF7Erq+2WXbHKVVe2ZUj4muBi3hy8FImQOzOjaQD8yZfDVzELwJeyuBPkXymryUwPwO0lF8KvJQBiJ+WnwmYyn8BiKZDQAD5lakAAAAASUVORK5CYII="/> + <image id="_Image7" width="108px" height="109px" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAABtCAYAAABEOoRoAAAACXBIWXMAAA7EAAAOxAGVKw4bAAASZElEQVR4nOVdwZLbuA5syZ5kd++55k9zyp/mmh/Yzdijd7BhN1sNkPJMHM88VKkkSxRFsgmgQVLyhA8u33/8nJJL2Xm9thTp0mvfvn6p7rtZqkK/a0mA0nMjaUIcAHpuleatgfuQgHXAmsw5Pa5k2XgM4O2A+3CAGbAcKL19JUtnn50D8Hrg5tfc/A6EgdBtpr3bdrJl6WbJz20XKXzqpgp9CJHGcNozJb/1PO9DnEbxpucgx5Djm7Tt/1XDKk3aAdgX59w1p4FVZwBwm7a9ew2jSmfapY3mTFjWwJFHpl0vyXG1QfLapGnvDrCBuGqL31KNS33PWbTxXwb3zlTyfhi0dwNYx3yoRmRg9UhDDzQHFG/ZOb6H8wE2gvbwgA2OVFSAZWxwJ/sMOBZu/ADgiBYg/a3AVRrXBe1hAdswpNRjfqpJShT0uNIyBSwAOibHo8ABg6Dtswt/UgaGlbLgeBSs/flcML6ZzmWgqe9igGKLZx3P9xxNPV7MufdLOgZHKvg407DMBDJYTNUZMAeaAhYadDgfZ3venL+zMVumZQ+pYSQjgTAf93yWxlV7AE/ym9OoWVRzeDjfczinP5yfdZD7nLxIvlGP9+PDBkYqYp8BBawB22EN2hNawHjPwbEjH2oOD+ftmfbP5rzTtor6Wy17GA0bHFbi44wNZhRezd8ewCd40FjTIl9gbRIPtO1wAidjmJA8gBu07JGHpkb8kmN5melTsBikJ5zA+wTg83n767z9Tftsi7SfaYv8+JnKUF1HvIgjXw+jYSS9ILgaoWAggVHwFuwx4ROu4KmmzWjJAWvYM1oQVAl0OMptGjqkWvYQgCXMsAqAeb/DGqz4rfGV+rATOFNjGj/J9bgnRAFTYNWc94ayAuA4V5rEhwCMRM1CFVe5GEsB5F7vzCL/Zg1j0JyWKWAKVkhv7DHyZJBLX/aoPmwEKDVzrBFq1p4kndvivk9Y+zP1a7r9Lb/ZhzkTq9MxzqIAWFufP65hxfRIBpgjGKdrC2ZMl2vOLHKDVcAxGXmi+9nMqYZpvOZGRXQ/48oUQ6PeFUt0rEl9UkYewhepWauIhJpM3eKe0BinbfzbsUT3fDforHW/7FnL/riGJdIziQqcIxgT1qaHh6fc4O+MBTtMllnu0WrCgnWju8FhHqo6UL489jijZYyppj0iYD1zmGmZ0xo2VY6ArP3J1Nyr/k+D6NmcY8AOOGkZAxbHAZrzXY9J68V/VZuOWGQbg1rFaRq8tmZpaYBTjXaAhbC/CrAiVosyBlhqNYZ82SNqWEilXa73MzmYpdEhe9XEFrDJdhYdEF7oPsBr1gFX/8WgcT2cljFokTeAxwOsp2UZlX+SazvT6Jq/+jsGzZVL4z2gHQtk7WKwHAt1Grai9E4ejSWGjBIOZmAcPz2hjoVcsGvnpeh6pnFalmysUjVLCctsnnWRcB+PpGFVPFYFy6plHBdlHTKeUfXs5WyUGEjV2B1dq+I7JUkZWF0NewTAFKDY97RMwXJx1hqEtfbkWjalc1XqxxxYO7NnsFwc5ureEI83BeyGlayVVjFYlSly5ogBc5SbG0HTZWsLQxi0uJ9jstaXjoOVaVjTmV4F2GsX9p8lK2xF7xW0GAfUIPdqEhe8nM0bA8HCWuRWPh3Pz3Fa6sqn+wysaqRjJZsBu/GNxkyyHuXMQ2+0IwtyT2blat6OsueyZyPrPKXP0yKT5KFldOGDAysDrTGJ33/8nIYBe8XSM5WMgSlLcqxJGyUzjxozcePHb9BeJyerNYcz5TGjBazqYBlYjhm+TsOKpWeZD3LHwHp2ldMpAwvJ7Lzrxeo31M8EYAcpkx67dYdqGt36QlcXLavTqKrNGikBGwQqA889WIdadPKul9dIL1YHH2bl1NjXJx7Qmj6gBZVXRUUniGVsR6w7g9YtK3Nv07ZoJAWsA1bmZ3qgLcm+ysOJpuPeqw4+njOdU0fjckNPtA9T50yjmsUQpf9ZOXtA9ertAdvwJmOl3pmGVSMKVR6ZKc3uz+j6jAULplV9uFwBCo+qxxI2DcqVpLhR9hFAqvPDY4m93lHZ5AqwLBjl507SsE6cGdLy8bWTJk4XLQpNYt8Vz2PQTkAtOGK6rOoNMKs1G07rtKyVNGABBrCBFUyVI62HetbzRXq+vW+6FNhppvvt4iuug9aHRRlj+KnwWQdMqzpyeqX/qnHOf2+WSsMyjRrZKsCyFwLUnwE5ML3Xd15wZXKhRUBbpowdTpI+NEwZaeTFNN+xysyiaBmcrK43gHUWxLhC+2n2NWDamFyhic5XBVegRjYmFnq/KxezRKCdq+K6c90YMK1br2NtllENy2izmy7ggDVEwQozw+9RaRDK92VgcY+OFUzM4vaUp2qz5sPXJjlmX8Z+caFzPHnJLz+MgjdkOi+ADU7X65CQ7hUwrjj3+iM96yBpXIF5ZIKB57USHCdlrEzpeTQsgxYSHahtg5YGMWBRLvemiprIraBdZIQlKlDVnI8GrPFwbmTWvlNFTmyQTRE3SIhq1UE2fnOEn8sa4RpRf/Pz1PxNaFmrAyxCgJEX+iq/ZkHLAKsIhxu7c5Nz3HDsr7RBd5hWhWZhoK6M7apRDNZ6ZOPa6FyOU2MueMZk39kCWusQv13stZO0/JKEmsctwFnZA9Yc8nE12JpNvSsw0Xigc1zp8AEZO3R+S9/JUrCiMWO0I/I6XPKZ8AyvYaE5VfgBtIAxU9SX+W7xaYABcFTDlLbrtHc2eci9TgGM3hq+IeIu9WNMtRUsDSUi/3gmj9qz73C+jBsvyqUsk80hd4gKsEzTbqL8DjBH6TOTmE1rKGBO29qGvgbJXGDt6cwsM7BUu7LrDJQGvFxn15ABus4KcGdQsHhT+q9a5Z6Hb1+/LFs0zGlaxhiZIUaBdFSE81fhQodJCqB4aEgZIXeIYK1MxZVluriJ2yB8pmN2ruNxZ3iWzZnGLMAGWtAuwoBp4/XMoou/2EzxQwOwDCBQusw8KMt0BMaZTQ0xMtA4fNA6L9RWkc6tHVHtVcAc+eCyv8qH8bEDzpkl1h6Xl4orXK/Qk+w5LwZMG1MBC/PFZnKhdHHvTtIwyPoMLkNo1C944DLi4ep8+aLAfuBDJq7xtYf3zFvsXY/KnC/3dmaYHHTzM7R3q7Y7P5b1bGBt5vZyL5tcB1imZWwaK2o/TDpCMiArn6OVdhTW9azsOPJgX6IVWeQ+HefUjqSdgo9dSKPl3eMay2Ua5sxiLybLQGvqu2XVlMsk04oQ7m1V8FhpW+TDje5iusiHwXLm2QGmebn4M4DicCHTsEzLejHZqzSMK6EV4oIxGQCujevMA+97PU3Br3wdlyNmiNWfTqv7r2sVWSId+zAXKvBSOh64dvV2QbQDqgQLqAHraRLTWm4MDS7duF/leNUcAi0LWzf81XSF6eSGBNZmfDmf5TopsEzrd2g1i+faHGBBaNy454hJ5Po1nzBygKnd3AKWNmikdb2s6m0MWuwn+EaJ9FvivKZBzHN4Y7DUz/KzVMPUlylI1WhHqmn7b1+/LMki0R5QDqxZ8nC2PBumUX8S+aqpBaWdZR/pVTMzifS6B9UxTGGkj3zD7PJYZaTJfBnXuwIqlZ4Py8ByY4OZxjmzoNqlfosbf5E8tXyg+wLUXpjBGhHifF10BmDdQZhFav5cH9cxdShsGDgGTE1PpWEuBlK2lNly3jsfppXvaYimzWLHSNPLk33ftW5LMw3EIyAxVKZlcqbREasMoAVYf4Iv82GO/rIZgFxzIwpZLwvAtEIqLg50saCCpudU1M/qc8JnsV/k/HnLxjPjOVxHd6w+uVf21CQyaFFBBo0fooBpobWHqWnIzACDw6ZJr6lwWKFkgOvnGmbGGoRT2uuTsoZ11F73avJdfhcfPPqBS5eRs9MxxqbxDqdRLcpovIqatlnOczq1CBpWuHopmBM8uNEZueNOcqx+lO/n57nfmU9OZQYaJF3GzhYridCphN7UgpuyANYjDPGbp254SieuTXJP5OXMt/PPaq6yhlNTVmm6AlPlqb9TH1uZxJDoZarO2uui4Aq6NpIzC3HvdL4yn4/UN2rYkD0r9o4Nxu9gtVxHtSp8jkXr7NxBtFkvHtR6ANj2VW1GWE0D+wdOVwHGwDBYLC0o00pj1Ec6lsoAqf/VZ4ZPVL+hftIBo/OCGWDcIfSZjlBp+axcMjSIqjqr/3HjgYfkuAqQT42wrGaw9YXzT1h/i+PJ/OaJxcjX9fAeyeHzsemgr07k8hoPHsnXaR7dur4rRE2MVkZBc/4sA88FiCoB1oRpBZgDSj84+RntZx/Wi4EmqwXq27TuboJWZ9a1Y2nZ1ddWPnZlNrN3yRvARMsysEbYX8UI1400NQ3CmuWA0i9/8ncKt34BlMcB9RynbwFZVivF+He7zmWh5y9N3hk5KmWlYQa0jOaP0nbXi5muV2A5kPSz5L3PtvZe1NDwQX2matYe00qr3WeK4gPQVw2bGpN5Wva9UaxJTPyZo8EZRc629tlL0ziZZjFQsf2D+rvxFWgcBqhWgbRA72EtyvwqP9eFIO3z1i8rdgHMfFhGK7XhbwVsogI735UBxkBVoOlH/tksKVitaZoux1ou57cUvOyLPDNyLd+kZeVofYBmHOAwq4GPQ5QiV0SDP0muC0OD2ETwHte5nGy2Z1wHcF3vdkE7l8+9AKKjPBqbckynCqJ+rNuuQ2s6VNs2fLJInanSWdcYSjS05zJRYMBc46mPPYF1WhrgOpCLs1RLuLzsk+J5usJLtTljrFmbNbJlEc5FRv9g8/uPn1yILADNqLx+oZoB4/E9fXsFaMGMLWaMI4SIdFVn6sVbTuO5bI7EuJhwWG4C7AZx8YZjYO6Pa/5C65OiRzNgup6fNS/23PjsV10Pr4Bzm+bhhqQcSJuBuwdgDizXczNKr1rGjc5gTHKO3yFzDp/9Rmay3JaZODdUx5KROHcutWC/DbDiY2IZ4XCsi+Mwp2Fh6oA1WM9YMzVnjqqen+1VXKyq1+K4BKQn9zSJmQ9zLFFBi70DzPmzanRjxI9kAGTxKJvi0YGEXpxq5V6AhahZcc48A44D0gmtgz8iH4qqgBqh0g4gnj1WAjOywjkD6m1o/Suk5wuclrnAVMfqAjDAa1MGFpdLpdIiJjIzHcf5kGwgfGSl78NpWAWao8usMbzn4FOD3FdRZuSapPFUpJ3ld6SvlqU74IblT5lENYujm/OFIVXl9fwIKVCt0uV9HGcBLWBuHWalZStNu+v/OJvP97mGVq3ogaSaU5munt8ApY3jKcnDrcNk7coAyzQsW0//cCYRqM1ixeAqnzLiM7J5OaBlefE79jHMpKBkJjJIRwVab+qplN8JWKZV+jszcUBOnxf4pd9sfnqvpnJjRd7xTAYLcp5NoQNMtSwDK2WM1dDfPUc6+HcWvKotV7PE17PldfzShTaWalfmQ9wgcpwPcLM02kHcAtqH1LCeONIQe65gDD0BrbmKF75/AfiPjn9h2ytN/FwuyxFrINXvOsAqX5oxxIfzYb3RhczZ8zghmy0G7D/aGLRMy+JjZM40TnIc4kbeNY12OK6PnkvJRm8m5E9qGJATCR4PxPm8G6VXwBi07DML1Z/ghKhPm2jP1zJT7uqVXeP7u/LmgCVf5HaSMT4Gi8cM3SDvM65A/YsrYCMvgY80WoDDgMHs+f4MmMwEXp47Ms94bw1zleJGVLCAq3axH3OAqZa5L9BUPV21J871mKyOR/YIjaYBMD4pfC/AXMGVBca8FYO10Hmm9Ee0zHDEhznSoWXkPZ93GuVCkCyvFChgHCzg9wPGlY3fDixdlxFpj3SO/Rdr2DNaoFjDRr86o+UdOV8Bpr9Ts7sFLOC+JtE5YmWDbk0G02hHTNj8ZYTDaRiXS8uZld/5LJeue24rUCH3NIl8zGDFwGq8K8xmz70N6ZikC6JHtGvlQ4Q03dKo5T23AhVyD8DYnDiiEY3P6ZlozOaaMkr3DZARZgigbUQ+fuV6zFV+byH3Jh3R4DwJ6Ea8dcYYcp2DYTd+yJql7JDzKhv0rRv7LWTuJ9kmyRsw/Nv5LyUQjqr/S1tF4SuwMrLxbuR3apgyK9UyZ25e6JqSDU2jA6sjg6zWb70nuTdL1NiHry24EpBsul/H6NzIOF//UGAB9yMd+vtFfsemmgV4LdUAOBuF/1BgAfcNnDV4fKHfbCbDr1aAKTAZWMAHAguoB2dfJeavrVhrqjc6RqZhRjfgA4EF3D8OA9pB1mypAO85n9hnWqQgfSiwgN+oYcDwn5/qcVauDIwSKODjgAUA/wNxgdTDAoPvhQAAAABJRU5ErkJggg=="/> + <image id="_Image8" width="86px" height="105px" xlink:href="data:image/png;base64,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"/> + <image id="_Image9" width="57px" height="50px" xlink:href="data:image/png;base64,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"/> + </defs> +</svg> diff --git a/releases/release-1.24/release-notes/maps/pr-101028-map.yaml b/releases/release-1.24/release-notes/maps/pr-101028-map.yaml index 4fcf55e73c0..da2d910f08e 100644 --- a/releases/release-1.24/release-notes/maps/pr-101028-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-101028-map.yaml @@ -1,9 +1,9 @@ -pr: 101028 -releasenote: - text: Fixed bug with leads to Node goes `Not-ready` state when credentials for vCenter - stored in a secret and Zones feature is in use. Zone labels setup moved to KCM - component, kubelet skips this step during startup in such case. If credentials - stored in cloud-provider config file as plaintext current behaviour does not change - and no action required. For proper functioning `kube-system:vsphere-legacy-cloud-provider` - should be allowed to update node object if vCenter credentials stored in secret - and Zone feature used. +pr: 101028 +releasenote: + text: Fixed bug with leads to Node goes `Not-ready` state when credentials for vCenter + stored in a secret and Zones feature is in use. Zone labels setup moved to KCM + component, kubelet skips this step during startup in such case. If credentials + stored in cloud-provider config file as plaintext current behaviour does not change + and no action required. For proper functioning `kube-system:vsphere-legacy-cloud-provider` + should be allowed to update node object if vCenter credentials stored in secret + and Zone feature used. diff --git a/releases/release-1.24/release-notes/maps/pr-101218-map.yaml b/releases/release-1.24/release-notes/maps/pr-101218-map.yaml index b1b6c4579a9..460743c98ec 100644 --- a/releases/release-1.24/release-notes/maps/pr-101218-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-101218-map.yaml @@ -1,4 +1,4 @@ -pr: 101218 -releasenote: - text: Kubelet now checks "NoExecute" taint/toleration before accepting pods, except - for static pods. +pr: 101218 +releasenote: + text: Kubelet now checks "NoExecute" taint/toleration before accepting pods, except + for static pods. diff --git a/releases/release-1.24/release-notes/maps/pr-101719-map.yaml b/releases/release-1.24/release-notes/maps/pr-101719-map.yaml index 92692fc8e9b..c78e1ea8320 100644 --- a/releases/release-1.24/release-notes/maps/pr-101719-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-101719-map.yaml @@ -1,3 +1,3 @@ -pr: 101719 -releasenote: - text: The deprecated flag `--really-crash-for-testing` was removed. +pr: 101719 +releasenote: + text: The deprecated flag `--really-crash-for-testing` was removed. diff --git a/releases/release-1.24/release-notes/maps/pr-102265-map.yaml b/releases/release-1.24/release-notes/maps/pr-102265-map.yaml index aa94ed2b40a..6faafae03ae 100644 --- a/releases/release-1.24/release-notes/maps/pr-102265-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-102265-map.yaml @@ -1,4 +1,4 @@ -pr: 102265 -releasenote: - text: allow kubectl to manage resources by filename patterns without the shell expanding - it first +pr: 102265 +releasenote: + text: allow kubectl to manage resources by filename patterns without the shell expanding + it first diff --git a/releases/release-1.24/release-notes/maps/pr-103061-map.yaml b/releases/release-1.24/release-notes/maps/pr-103061-map.yaml index 54dfdb49797..839c9ff1467 100644 --- a/releases/release-1.24/release-notes/maps/pr-103061-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-103061-map.yaml @@ -1,4 +1,4 @@ -pr: 103061 -releasenote: - text: The `node.k8s.io/v1alpha1` RuntimeClass API is no longer served. Use the `node.k8s.io/v1` - API version, available since v1.20 +pr: 103061 +releasenote: + text: The `node.k8s.io/v1alpha1` RuntimeClass API is no longer served. Use the `node.k8s.io/v1` + API version, available since v1.20 diff --git a/releases/release-1.24/release-notes/maps/pr-103516-map.yaml b/releases/release-1.24/release-notes/maps/pr-103516-map.yaml index 022c5b8f8b0..64bf60950f4 100644 --- a/releases/release-1.24/release-notes/maps/pr-103516-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-103516-map.yaml @@ -1,4 +1,4 @@ -pr: 103516 -releasenote: - text: 'kube-apiserver: Subresources such as `status` and `scale` now support tabular - output content types.' +pr: 103516 +releasenote: + text: 'kube-apiserver: Subresources such as `status` and `scale` now support tabular + output content types.' diff --git a/releases/release-1.24/release-notes/maps/pr-104244-map.yaml b/releases/release-1.24/release-notes/maps/pr-104244-map.yaml index c9ad51e25a1..d0166370388 100644 --- a/releases/release-1.24/release-notes/maps/pr-104244-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-104244-map.yaml @@ -1,4 +1,4 @@ -pr: 104244 -releasenote: - text: Introduce policy to allow the HPA to consume the `external.metrics.k8s.io` - API group. +pr: 104244 +releasenote: + text: Introduce policy to allow the HPA to consume the `external.metrics.k8s.io` + API group. diff --git a/releases/release-1.24/release-notes/maps/pr-104620-map.yaml b/releases/release-1.24/release-notes/maps/pr-104620-map.yaml index 1e156f97305..fc540b7a2a2 100644 --- a/releases/release-1.24/release-notes/maps/pr-104620-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-104620-map.yaml @@ -1,3 +1,3 @@ -pr: 104620 -releasenote: - text: Added field `add_ambient_capabilities` to the Capabilities message in the CRI-API. +pr: 104620 +releasenote: + text: Added field `add_ambient_capabilities` to the Capabilities message in the CRI-API. diff --git a/releases/release-1.24/release-notes/maps/pr-104732-map.yaml b/releases/release-1.24/release-notes/maps/pr-104732-map.yaml index b71770d3fe2..2a194b92a2d 100644 --- a/releases/release-1.24/release-notes/maps/pr-104732-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-104732-map.yaml @@ -1,5 +1,5 @@ -pr: 104732 -releasenote: - text: Remove the deprecated flag `--experimental-check-node-capabilities-before-mount`. - With CSI now GA, there is a better alternative. Remove any use of `--experimental-check-node-capabilities-before-mount` - from your kubelet scripts or manifests. +pr: 104732 +releasenote: + text: Remove the deprecated flag `--experimental-check-node-capabilities-before-mount`. + With CSI now GA, there is a better alternative. Remove any use of `--experimental-check-node-capabilities-before-mount` + from your kubelet scripts or manifests. diff --git a/releases/release-1.24/release-notes/maps/pr-104736-map.yaml b/releases/release-1.24/release-notes/maps/pr-104736-map.yaml index c52354408de..90f5cef1408 100644 --- a/releases/release-1.24/release-notes/maps/pr-104736-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-104736-map.yaml @@ -1,3 +1,3 @@ -pr: 104736 -releasenote: - text: Improve kubectl's user help commands readability +pr: 104736 +releasenote: + text: Improve kubectl's user help commands readability diff --git a/releases/release-1.24/release-notes/maps/pr-104774-map.yaml b/releases/release-1.24/release-notes/maps/pr-104774-map.yaml index 0f853881d0d..05014689365 100644 --- a/releases/release-1.24/release-notes/maps/pr-104774-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-104774-map.yaml @@ -1,3 +1,3 @@ -pr: 104774 -releasenote: - text: Fixed failed flushing logs in defer function when kubelet cmd exit 1. +pr: 104774 +releasenote: + text: Fixed failed flushing logs in defer function when kubelet cmd exit 1. diff --git a/releases/release-1.24/release-notes/maps/pr-104837-map.yaml b/releases/release-1.24/release-notes/maps/pr-104837-map.yaml index 2b74ca2e17f..8032761b067 100644 --- a/releases/release-1.24/release-notes/maps/pr-104837-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-104837-map.yaml @@ -1,4 +1,4 @@ -pr: 104837 -releasenote: - text: Fixed regression in CPUManager that it will release exclusive CPUs in app - containers inherited from init containers when the init containers were removed. +pr: 104837 +releasenote: + text: Fixed regression in CPUManager that it will release exclusive CPUs in app + containers inherited from init containers when the init containers were removed. diff --git a/releases/release-1.24/release-notes/maps/pr-104846-map.yaml b/releases/release-1.24/release-notes/maps/pr-104846-map.yaml index a95df474ad7..e00df7e6aa0 100644 --- a/releases/release-1.24/release-notes/maps/pr-104846-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-104846-map.yaml @@ -1,5 +1,5 @@ -pr: 104846 -releasenote: - text: The Service field `spec.internalTrafficPolicy` is no longer defaulted for - Services when the type is `ExternalName`. The field is also dropped on read when - the Service type is `ExternalName`. +pr: 104846 +releasenote: + text: The Service field `spec.internalTrafficPolicy` is no longer defaulted for + Services when the type is `ExternalName`. The field is also dropped on read when + the Service type is `ExternalName`. diff --git a/releases/release-1.24/release-notes/maps/pr-105070-map.yaml b/releases/release-1.24/release-notes/maps/pr-105070-map.yaml index 7fce6ec4fb6..fc063338614 100644 --- a/releases/release-1.24/release-notes/maps/pr-105070-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-105070-map.yaml @@ -1,3 +1,3 @@ -pr: 105070 -releasenote: - text: turn on `CSIMigrationAzureFile` by default on 1.24 +pr: 105070 +releasenote: + text: turn on `CSIMigrationAzureFile` by default on 1.24 diff --git a/releases/release-1.24/release-notes/maps/pr-105164-map.yaml b/releases/release-1.24/release-notes/maps/pr-105164-map.yaml index 970c7769c39..0370bc31925 100644 --- a/releases/release-1.24/release-notes/maps/pr-105164-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-105164-map.yaml @@ -1,3 +1,3 @@ -pr: 105164 -releasenote: - text: Added prune flag into `diff` command to simulate `apply --prune`. +pr: 105164 +releasenote: + text: Added prune flag into `diff` command to simulate `apply --prune`. diff --git a/releases/release-1.24/release-notes/maps/pr-105297-map.yaml b/releases/release-1.24/release-notes/maps/pr-105297-map.yaml index 9ecdfb1f5fe..317f6563b43 100644 --- a/releases/release-1.24/release-notes/maps/pr-105297-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-105297-map.yaml @@ -1,3 +1,3 @@ -pr: 105297 -releasenote: - text: If drainer has nil for Ctx or Client it will error with `RunCordonOrUncordon`. +pr: 105297 +releasenote: + text: If drainer has nil for Ctx or Client it will error with `RunCordonOrUncordon`. diff --git a/releases/release-1.24/release-notes/maps/pr-105360-map.yaml b/releases/release-1.24/release-notes/maps/pr-105360-map.yaml index 03602384445..eb9a5596c6f 100644 --- a/releases/release-1.24/release-notes/maps/pr-105360-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-105360-map.yaml @@ -1,3 +1,3 @@ -pr: 105360 -releasenote: - text: Kubelet config validation error messages are updated. +pr: 105360 +releasenote: + text: Kubelet config validation error messages are updated. diff --git a/releases/release-1.24/release-notes/maps/pr-105517-map.yaml b/releases/release-1.24/release-notes/maps/pr-105517-map.yaml index 60015934f97..d77f6ceea28 100644 --- a/releases/release-1.24/release-notes/maps/pr-105517-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-105517-map.yaml @@ -1,5 +1,5 @@ -pr: 105517 -releasenote: - text: 'Added a new label `type` to `apiserver_flowcontrol_request_execution_seconds` - metric - it has the following values: - ''regular'': indicates that it is a non - long running request - ''watch'': indicates that it is a watch request.' +pr: 105517 +releasenote: + text: 'Added a new label `type` to `apiserver_flowcontrol_request_execution_seconds` + metric - it has the following values: - ''regular'': indicates that it is a non + long running request - ''watch'': indicates that it is a watch request.' diff --git a/releases/release-1.24/release-notes/maps/pr-105566-map.yaml b/releases/release-1.24/release-notes/maps/pr-105566-map.yaml index 878d123a2bb..cf0618e7846 100644 --- a/releases/release-1.24/release-notes/maps/pr-105566-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-105566-map.yaml @@ -1,3 +1,3 @@ -pr: 105566 -releasenote: - text: Added a `proxy-url` flag into `kubectl config set-cluster`. +pr: 105566 +releasenote: + text: Added a `proxy-url` flag into `kubectl config set-cluster`. diff --git a/releases/release-1.24/release-notes/maps/pr-105585-map.yaml b/releases/release-1.24/release-notes/maps/pr-105585-map.yaml index a4b9bf0f140..1473aa6f20a 100644 --- a/releases/release-1.24/release-notes/maps/pr-105585-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-105585-map.yaml @@ -1,4 +1,4 @@ -pr: 105585 -releasenote: - text: add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state - to kubelet +pr: 105585 +releasenote: + text: add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state + to kubelet diff --git a/releases/release-1.24/release-notes/maps/pr-105632-map.yaml b/releases/release-1.24/release-notes/maps/pr-105632-map.yaml index 13de31d6ada..f018d13e918 100644 --- a/releases/release-1.24/release-notes/maps/pr-105632-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-105632-map.yaml @@ -1,4 +1,4 @@ -pr: 105632 -releasenote: - text: Added support for kubectl commands (`kubectl exec` and `kubectl port-forward`) - via a SOCKS5 proxy. +pr: 105632 +releasenote: + text: Added support for kubectl commands (`kubectl exec` and `kubectl port-forward`) + via a SOCKS5 proxy. diff --git a/releases/release-1.24/release-notes/maps/pr-105853-map.yaml b/releases/release-1.24/release-notes/maps/pr-105853-map.yaml index 21ef57deda0..7c5c9dfe663 100644 --- a/releases/release-1.24/release-notes/maps/pr-105853-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-105853-map.yaml @@ -1,4 +1,4 @@ -pr: 105853 -releasenote: - text: Restored `NumPDBViolations` info of nodes, when `HTTPExtender ProcessPreemption`. - This info will be used in subsequent filtering steps - `pickOneNodeForPreemption` +pr: 105853 +releasenote: + text: Restored `NumPDBViolations` info of nodes, when `HTTPExtender ProcessPreemption`. + This info will be used in subsequent filtering steps - `pickOneNodeForPreemption` diff --git a/releases/release-1.24/release-notes/maps/pr-105954-map.yaml b/releases/release-1.24/release-notes/maps/pr-105954-map.yaml index a81365d3671..92abaee1e5b 100644 --- a/releases/release-1.24/release-notes/maps/pr-105954-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-105954-map.yaml @@ -1,5 +1,5 @@ -pr: 105954 -releasenote: - text: Only extend token lifetimes when `--service-account-extend-token-expiration` - is true and the requested token audiences are empty or exactly match all values - for `--api-audiences`. +pr: 105954 +releasenote: + text: Only extend token lifetimes when `--service-account-extend-token-expiration` + is true and the requested token audiences are empty or exactly match all values + for `--api-audiences`. diff --git a/releases/release-1.24/release-notes/maps/pr-105964-map.yaml b/releases/release-1.24/release-notes/maps/pr-105964-map.yaml index 2210c28d8c6..65755ff1a5d 100644 --- a/releases/release-1.24/release-notes/maps/pr-105964-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-105964-map.yaml @@ -1,4 +1,4 @@ -pr: 105964 -releasenote: - text: The `kubectl logs` will now warn and default to the first container in a pod. This - new behavior brings it in line with `kubectl exec`. +pr: 105964 +releasenote: + text: The `kubectl logs` will now warn and default to the first container in a pod. This + new behavior brings it in line with `kubectl exec`. diff --git a/releases/release-1.24/release-notes/maps/pr-106109-map.yaml b/releases/release-1.24/release-notes/maps/pr-106109-map.yaml index 3999d2d190d..53c00086cee 100644 --- a/releases/release-1.24/release-notes/maps/pr-106109-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106109-map.yaml @@ -1,3 +1,3 @@ -pr: 106109 -releasenote: - text: Migrate statefulset files to structured logging +pr: 106109 +releasenote: + text: Migrate statefulset files to structured logging diff --git a/releases/release-1.24/release-notes/maps/pr-106164-map.yaml b/releases/release-1.24/release-notes/maps/pr-106164-map.yaml index aefbf248e05..1034cc421b8 100644 --- a/releases/release-1.24/release-notes/maps/pr-106164-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106164-map.yaml @@ -1,3 +1,3 @@ -pr: 106164 -releasenote: - text: 'Fixed: removed outdated ipv4 route when the corresponding node is deleted.' +pr: 106164 +releasenote: + text: 'Fixed: removed outdated ipv4 route when the corresponding node is deleted.' diff --git a/releases/release-1.24/release-notes/maps/pr-106179-map.yaml b/releases/release-1.24/release-notes/maps/pr-106179-map.yaml index a26ca49603c..1094a1abe4c 100644 --- a/releases/release-1.24/release-notes/maps/pr-106179-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106179-map.yaml @@ -1,3 +1,3 @@ -pr: 106179 -releasenote: - text: Fixed bug in error messaging for basic-auth and ssh secret validations. +pr: 106179 +releasenote: + text: Fixed bug in error messaging for basic-auth and ssh secret validations. diff --git a/releases/release-1.24/release-notes/maps/pr-106203-map.yaml b/releases/release-1.24/release-notes/maps/pr-106203-map.yaml index 6eb090b11bf..70fa94f1185 100644 --- a/releases/release-1.24/release-notes/maps/pr-106203-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106203-map.yaml @@ -1,4 +1,4 @@ -pr: 106203 -releasenote: - text: Added test cases for `scheduler/PriorityQueue.Activate`, to change the `assert` - way from `assert.Equal(t, a, b, "fail msg")` to a more clear way. +pr: 106203 +releasenote: + text: Added test cases for `scheduler/PriorityQueue.Activate`, to change the `assert` + way from `assert.Equal(t, a, b, "fail msg")` to a more clear way. diff --git a/releases/release-1.24/release-notes/maps/pr-106313-map.yaml b/releases/release-1.24/release-notes/maps/pr-106313-map.yaml index a882d7214cf..fbb8be1cefc 100644 --- a/releases/release-1.24/release-notes/maps/pr-106313-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106313-map.yaml @@ -1,4 +1,4 @@ -pr: 106313 -releasenote: - text: Added a test to guarantee that conformance clusters require at least 2 untainted - nodes. +pr: 106313 +releasenote: + text: Added a test to guarantee that conformance clusters require at least 2 untainted + nodes. diff --git a/releases/release-1.24/release-notes/maps/pr-106366-map.yaml b/releases/release-1.24/release-notes/maps/pr-106366-map.yaml index ba28226e09b..c45cfbb929f 100644 --- a/releases/release-1.24/release-notes/maps/pr-106366-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106366-map.yaml @@ -1,5 +1,5 @@ -pr: 106366 -releasenote: - text: Renamed metrics `evictions_number` to `evictions_total` and mark it as stable. - The original `evictions_number` metrics name is marked as "Deprecated" and has - been removed in kubernetes 1.23 . +pr: 106366 +releasenote: + text: Renamed metrics `evictions_number` to `evictions_total` and mark it as stable. + The original `evictions_number` metrics name is marked as "Deprecated" and has + been removed in kubernetes 1.23 . diff --git a/releases/release-1.24/release-notes/maps/pr-106445-map.yaml b/releases/release-1.24/release-notes/maps/pr-106445-map.yaml index 0b4c5cf1333..5b6854e46cd 100644 --- a/releases/release-1.24/release-notes/maps/pr-106445-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106445-map.yaml @@ -1,3 +1,3 @@ -pr: 106445 -releasenote: - text: Fixed documentation typo in cloud-provider. +pr: 106445 +releasenote: + text: Fixed documentation typo in cloud-provider. diff --git a/releases/release-1.24/release-notes/maps/pr-106453-map.yaml b/releases/release-1.24/release-notes/maps/pr-106453-map.yaml index 7070394e0fe..77a60b241f8 100644 --- a/releases/release-1.24/release-notes/maps/pr-106453-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106453-map.yaml @@ -1,3 +1,3 @@ -pr: 106453 -releasenote: - text: Fixed spelling of implemented in pkg/proxy/apis/config/types.go line 206 +pr: 106453 +releasenote: + text: Fixed spelling of implemented in pkg/proxy/apis/config/types.go line 206 diff --git a/releases/release-1.24/release-notes/maps/pr-106492-map.yaml b/releases/release-1.24/release-notes/maps/pr-106492-map.yaml index 06a50e8f9a4..61d707da4e2 100644 --- a/releases/release-1.24/release-notes/maps/pr-106492-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106492-map.yaml @@ -1,3 +1,3 @@ -pr: 106492 -releasenote: - text: Metrics Server image bumped to v0.5.2 +pr: 106492 +releasenote: + text: Metrics Server image bumped to v0.5.2 diff --git a/releases/release-1.24/release-notes/maps/pr-106497-map.yaml b/releases/release-1.24/release-notes/maps/pr-106497-map.yaml index b1a0b26ecd9..1b7f27a8da0 100644 --- a/releases/release-1.24/release-notes/maps/pr-106497-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106497-map.yaml @@ -1,6 +1,6 @@ -pr: 106497 -releasenote: - text: |- - Services with "internalTrafficPolicy: Local" now behave more like - "externalTrafficPolicy: Local". Also, "internalTrafficPolicy: Local, - externalTrafficPolicy: Cluster" is now implemented correctly. +pr: 106497 +releasenote: + text: |- + Services with "internalTrafficPolicy: Local" now behave more like + "externalTrafficPolicy: Local". Also, "internalTrafficPolicy: Local, + externalTrafficPolicy: Cluster" is now implemented correctly. diff --git a/releases/release-1.24/release-notes/maps/pr-106539-map.yaml b/releases/release-1.24/release-notes/maps/pr-106539-map.yaml index c61451f7690..40708b18af6 100644 --- a/releases/release-1.24/release-notes/maps/pr-106539-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106539-map.yaml @@ -1,5 +1,5 @@ -pr: 106539 -releasenote: - text: Replace the url label of `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` - metrics with a host label to prevent cardinality explosions and keep only the - useful information. This is a breaking change required for security reasons. +pr: 106539 +releasenote: + text: Replace the url label of `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` + metrics with a host label to prevent cardinality explosions and keep only the + useful information. This is a breaking change required for security reasons. diff --git a/releases/release-1.24/release-notes/maps/pr-106570-map.yaml b/releases/release-1.24/release-notes/maps/pr-106570-map.yaml index ff23b0c0c65..8451cf0b003 100644 --- a/releases/release-1.24/release-notes/maps/pr-106570-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106570-map.yaml @@ -1,3 +1,3 @@ -pr: 106570 -releasenote: - text: Fix container creation errors for pods with cpu requests bigger than 256 cpus +pr: 106570 +releasenote: + text: Fix container creation errors for pods with cpu requests bigger than 256 cpus diff --git a/releases/release-1.24/release-notes/maps/pr-106581-map.yaml b/releases/release-1.24/release-notes/maps/pr-106581-map.yaml index bd3a31c3c42..a09faf6a050 100644 --- a/releases/release-1.24/release-notes/maps/pr-106581-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106581-map.yaml @@ -1,3 +1,3 @@ -pr: 106581 -releasenote: - text: Publishing kube-proxy metrics for Windows kernel-mode +pr: 106581 +releasenote: + text: Publishing kube-proxy metrics for Windows kernel-mode diff --git a/releases/release-1.24/release-notes/maps/pr-106600-map.yaml b/releases/release-1.24/release-notes/maps/pr-106600-map.yaml index aae596a959e..c4ce33f8f33 100644 --- a/releases/release-1.24/release-notes/maps/pr-106600-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106600-map.yaml @@ -1,3 +1,3 @@ -pr: 106600 -releasenote: - text: Added an example for the `kubectl plugin list` command. +pr: 106600 +releasenote: + text: Added an example for the `kubectl plugin list` command. diff --git a/releases/release-1.24/release-notes/maps/pr-106619-map.yaml b/releases/release-1.24/release-notes/maps/pr-106619-map.yaml index d5bb282fea9..30d6095f0cf 100644 --- a/releases/release-1.24/release-notes/maps/pr-106619-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106619-map.yaml @@ -1,3 +1,3 @@ -pr: 106619 -releasenote: - text: Feature of `PreferNominatedNode` is graduated to GA. +pr: 106619 +releasenote: + text: Feature of `PreferNominatedNode` is graduated to GA. diff --git a/releases/release-1.24/release-notes/maps/pr-106628-map.yaml b/releases/release-1.24/release-notes/maps/pr-106628-map.yaml index f6955c35861..a9137ecb297 100644 --- a/releases/release-1.24/release-notes/maps/pr-106628-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106628-map.yaml @@ -1,4 +1,4 @@ -pr: 106628 -releasenote: - text: A new Priority and Fairness metric 'apiserver_flowcontrol_work_estimate_seats_samples' - has been added that tracks the estimated seats associated with a request. +pr: 106628 +releasenote: + text: A new Priority and Fairness metric 'apiserver_flowcontrol_work_estimate_seats_samples' + has been added that tracks the estimated seats associated with a request. diff --git a/releases/release-1.24/release-notes/maps/pr-106629-map.yaml b/releases/release-1.24/release-notes/maps/pr-106629-map.yaml index f5548ac5923..e883874aa63 100644 --- a/releases/release-1.24/release-notes/maps/pr-106629-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106629-map.yaml @@ -1,5 +1,5 @@ -pr: 106629 -releasenote: - text: Added a new Priority and Fairness metric `apiserver_flowcontrol_request_dispatch_no_accommodation_total` - to track the number of times a request dispatch attempt results in a no-accommodation - status due to lack of available seats. +pr: 106629 +releasenote: + text: Added a new Priority and Fairness metric `apiserver_flowcontrol_request_dispatch_no_accommodation_total` + to track the number of times a request dispatch attempt results in a no-accommodation + status due to lack of available seats. diff --git a/releases/release-1.24/release-notes/maps/pr-106648-map.yaml b/releases/release-1.24/release-notes/maps/pr-106648-map.yaml index fd71e5dd5af..713ba062784 100644 --- a/releases/release-1.24/release-notes/maps/pr-106648-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106648-map.yaml @@ -1,4 +1,4 @@ -pr: 106648 -releasenote: - text: 'kubeadm: remove the `IPv6DualStack` feature gate. The feature has been GA - and locked to enabled since 1.23.' +pr: 106648 +releasenote: + text: 'kubeadm: remove the `IPv6DualStack` feature gate. The feature has been GA + and locked to enabled since 1.23.' diff --git a/releases/release-1.24/release-notes/maps/pr-106660-map.yaml b/releases/release-1.24/release-notes/maps/pr-106660-map.yaml index 273060912f5..6ae3a3d3762 100644 --- a/releases/release-1.24/release-notes/maps/pr-106660-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106660-map.yaml @@ -1,4 +1,4 @@ -pr: 106660 -releasenote: - text: 'kube-apiserver: Server Side Apply merge order is reverted to match v1.22 - behavior until http://issue.k8s.io/104641 is resolved.' +pr: 106660 +releasenote: + text: 'kube-apiserver: Server Side Apply merge order is reverted to match v1.22 + behavior until http://issue.k8s.io/104641 is resolved.' diff --git a/releases/release-1.24/release-notes/maps/pr-106715-map.yaml b/releases/release-1.24/release-notes/maps/pr-106715-map.yaml index 5f5fefbb32b..153967b43d9 100644 --- a/releases/release-1.24/release-notes/maps/pr-106715-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106715-map.yaml @@ -1,4 +1,4 @@ -pr: 106715 -releasenote: - text: 'CRI-API: IPs returned by `PodSandboxNetworkStatus`` are ignored by the kubelet - for host-network pods.' +pr: 106715 +releasenote: + text: 'CRI-API: IPs returned by `PodSandboxNetworkStatus`` are ignored by the kubelet + for host-network pods.' diff --git a/releases/release-1.24/release-notes/maps/pr-106721-map.yaml b/releases/release-1.24/release-notes/maps/pr-106721-map.yaml index 204b004188b..01579f80a4e 100644 --- a/releases/release-1.24/release-notes/maps/pr-106721-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106721-map.yaml @@ -1,5 +1,5 @@ -pr: 106721 -releasenote: - text: '`apiserver`, if configured to reconcile the `kubernetes.default` service - endpoints, checks if the configured Service IP range matches the apiserver public - address IP family, and fails to start if not.' +pr: 106721 +releasenote: + text: '`apiserver`, if configured to reconcile the `kubernetes.default` service + endpoints, checks if the configured Service IP range matches the apiserver public + address IP family, and fails to start if not.' diff --git a/releases/release-1.24/release-notes/maps/pr-106725-map.yaml b/releases/release-1.24/release-notes/maps/pr-106725-map.yaml index 91f93d7f492..8862cc34f7f 100644 --- a/releases/release-1.24/release-notes/maps/pr-106725-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106725-map.yaml @@ -1,4 +1,4 @@ -pr: 106725 -releasenote: - text: Updated the default API priority-and-fairness config to avoid endpoint/configmaps - operations from controller-manager to all match leader-election priority level. +pr: 106725 +releasenote: + text: Updated the default API priority-and-fairness config to avoid endpoint/configmaps + operations from controller-manager to all match leader-election priority level. diff --git a/releases/release-1.24/release-notes/maps/pr-106739-map.yaml b/releases/release-1.24/release-notes/maps/pr-106739-map.yaml index 65943f0a3b4..f64198c4bf1 100644 --- a/releases/release-1.24/release-notes/maps/pr-106739-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106739-map.yaml @@ -1,3 +1,3 @@ -pr: 106739 -releasenote: - text: Added completion for `kubectl config set-context`. +pr: 106739 +releasenote: + text: Added completion for `kubectl config set-context`. diff --git a/releases/release-1.24/release-notes/maps/pr-106792-map.yaml b/releases/release-1.24/release-notes/maps/pr-106792-map.yaml index 7145bb3f6a5..6e89607a2af 100644 --- a/releases/release-1.24/release-notes/maps/pr-106792-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106792-map.yaml @@ -1,5 +1,5 @@ -pr: 106792 -releasenote: - text: New feature gate, ServiceIPStaticSubrange, to enable the new strategy in the - Service IP allocators, so the IP range is subdivided and dynamic allocated ClusterIP - addresses for Services are allocated preferently from the upper range. +pr: 106792 +releasenote: + text: New feature gate, ServiceIPStaticSubrange, to enable the new strategy in the + Service IP allocators, so the IP range is subdivided and dynamic allocated ClusterIP + addresses for Services are allocated preferently from the upper range. diff --git a/releases/release-1.24/release-notes/maps/pr-106803-map.yaml b/releases/release-1.24/release-notes/maps/pr-106803-map.yaml index 36e435ada53..9cd42ea3ad4 100644 --- a/releases/release-1.24/release-notes/maps/pr-106803-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106803-map.yaml @@ -1,3 +1,3 @@ -pr: 106803 -releasenote: - text: Reverts the CRI API version surfaced by dockershim to v1alpha2 +pr: 106803 +releasenote: + text: Reverts the CRI API version surfaced by dockershim to v1alpha2 diff --git a/releases/release-1.24/release-notes/maps/pr-106816-map.yaml b/releases/release-1.24/release-notes/maps/pr-106816-map.yaml index cd87c550635..6230a89dc69 100644 --- a/releases/release-1.24/release-notes/maps/pr-106816-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106816-map.yaml @@ -1,4 +1,4 @@ -pr: 106816 -releasenote: - text: Fixed a bug that a pod's `.status.nominatedNodeName` is not cleared properly, - and thus over-occupied system resources. +pr: 106816 +releasenote: + text: Fixed a bug that a pod's `.status.nominatedNodeName` is not cleared properly, + and thus over-occupied system resources. diff --git a/releases/release-1.24/release-notes/maps/pr-106824-map.yaml b/releases/release-1.24/release-notes/maps/pr-106824-map.yaml index 58b3e856190..e7fe8ef75cf 100644 --- a/releases/release-1.24/release-notes/maps/pr-106824-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106824-map.yaml @@ -1,3 +1,3 @@ -pr: 106824 -releasenote: - text: Removed deprecated `generator` and `container-port` flags +pr: 106824 +releasenote: + text: Removed deprecated `generator` and `container-port` flags diff --git a/releases/release-1.24/release-notes/maps/pr-106830-map.yaml b/releases/release-1.24/release-notes/maps/pr-106830-map.yaml index fe2bd4c1c2d..ca904fdec9b 100644 --- a/releases/release-1.24/release-notes/maps/pr-106830-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106830-map.yaml @@ -1,3 +1,3 @@ -pr: 106830 -releasenote: - text: Remove deprecated feature gates `ValidateProxyRedirects` and `StreamingProxyRedirects` +pr: 106830 +releasenote: + text: Remove deprecated feature gates `ValidateProxyRedirects` and `StreamingProxyRedirects` diff --git a/releases/release-1.24/release-notes/maps/pr-106833-map.yaml b/releases/release-1.24/release-notes/maps/pr-106833-map.yaml index c8589afea7a..cff1e6f85f6 100644 --- a/releases/release-1.24/release-notes/maps/pr-106833-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106833-map.yaml @@ -1,3 +1,3 @@ -pr: 106833 -releasenote: - text: Kubernetes is now built with Golang 1.17.4 +pr: 106833 +releasenote: + text: Kubernetes is now built with Golang 1.17.4 diff --git a/releases/release-1.24/release-notes/maps/pr-106838-map.yaml b/releases/release-1.24/release-notes/maps/pr-106838-map.yaml index ceb8ebe56b4..499560eedc6 100644 --- a/releases/release-1.24/release-notes/maps/pr-106838-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106838-map.yaml @@ -1,3 +1,3 @@ -pr: 106838 -releasenote: - text: The `NamespaceDefaultLabelName` feature gate, GA since v1.22, is now removed. +pr: 106838 +releasenote: + text: The `NamespaceDefaultLabelName` feature gate, GA since v1.22, is now removed. diff --git a/releases/release-1.24/release-notes/maps/pr-106850-map.yaml b/releases/release-1.24/release-notes/maps/pr-106850-map.yaml index 3d2bd650c84..44901ab7c8f 100644 --- a/releases/release-1.24/release-notes/maps/pr-106850-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106850-map.yaml @@ -1,4 +1,4 @@ -pr: 106850 -releasenote: - text: Deprecated types in `k8s.io/apimachinery/util/clock`. Please use `k8s.io/utils/clock` - instead. +pr: 106850 +releasenote: + text: Deprecated types in `k8s.io/apimachinery/util/clock`. Please use `k8s.io/utils/clock` + instead. diff --git a/releases/release-1.24/release-notes/maps/pr-106853-map.yaml b/releases/release-1.24/release-notes/maps/pr-106853-map.yaml index ec7c1846c63..e0db2567043 100644 --- a/releases/release-1.24/release-notes/maps/pr-106853-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106853-map.yaml @@ -1,4 +1,4 @@ -pr: 106853 -releasenote: - text: Allowed attached volumes to be mounted quicker by skipping exponential backoff when - checking for reported-in-use volumes. +pr: 106853 +releasenote: + text: Allowed attached volumes to be mounted quicker by skipping exponential backoff when + checking for reported-in-use volumes. diff --git a/releases/release-1.24/release-notes/maps/pr-106854-map.yaml b/releases/release-1.24/release-notes/maps/pr-106854-map.yaml index 4d17d5564e3..06942d65196 100644 --- a/releases/release-1.24/release-notes/maps/pr-106854-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106854-map.yaml @@ -1,5 +1,5 @@ -pr: 106854 -releasenote: - text: 'kubeadm: allow the `certs check-expiration` command to not require the existence - of the cluster CA key (ca.key file) when checking the expiration of managed certificates - in kubeconfig files.' +pr: 106854 +releasenote: + text: 'kubeadm: allow the `certs check-expiration` command to not require the existence + of the cluster CA key (ca.key file) when checking the expiration of managed certificates + in kubeconfig files.' diff --git a/releases/release-1.24/release-notes/maps/pr-106859-map.yaml b/releases/release-1.24/release-notes/maps/pr-106859-map.yaml index b87bb313570..2304dfece54 100644 --- a/releases/release-1.24/release-notes/maps/pr-106859-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106859-map.yaml @@ -1,4 +1,4 @@ -pr: 106859 -releasenote: - text: 'kube-apiserver: the insecure address flags `--address`, `--insecure-bind-address`, - `--port` and `--insecure-port` (inert since 1.20) are removed' +pr: 106859 +releasenote: + text: 'kube-apiserver: the insecure address flags `--address`, `--insecure-bind-address`, + `--port` and `--insecure-port` (inert since 1.20) are removed' diff --git a/releases/release-1.24/release-notes/maps/pr-106860-map.yaml b/releases/release-1.24/release-notes/maps/pr-106860-map.yaml index 5ae1028e732..fa2808de9dc 100644 --- a/releases/release-1.24/release-notes/maps/pr-106860-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106860-map.yaml @@ -1,4 +1,4 @@ -pr: 106860 -releasenote: - text: The insecure address flags `--address` and `--port` in kube-controller-manager - have had no effect since v1.20 and are removed in v1.24. +pr: 106860 +releasenote: + text: The insecure address flags `--address` and `--port` in kube-controller-manager + have had no effect since v1.20 and are removed in v1.24. diff --git a/releases/release-1.24/release-notes/maps/pr-106865-map.yaml b/releases/release-1.24/release-notes/maps/pr-106865-map.yaml index 3d53ac62847..af10fef01cb 100644 --- a/releases/release-1.24/release-notes/maps/pr-106865-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106865-map.yaml @@ -1,4 +1,4 @@ -pr: 106865 -releasenote: - text: Removed kube-scheduler insecure flags. You can use `--bind-address` and `--secure-port` - instead. +pr: 106865 +releasenote: + text: Removed kube-scheduler insecure flags. You can use `--bind-address` and `--secure-port` + instead. diff --git a/releases/release-1.24/release-notes/maps/pr-106875-map.yaml b/releases/release-1.24/release-notes/maps/pr-106875-map.yaml index 26c811771c4..4b7ed776d8d 100644 --- a/releases/release-1.24/release-notes/maps/pr-106875-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106875-map.yaml @@ -1,4 +1,4 @@ -pr: 106875 -releasenote: - text: Updated the error message to not use the `--max-resource-write-bytes` & `--json-patch-max-copy-bytes` - string. +pr: 106875 +releasenote: + text: Updated the error message to not use the `--max-resource-write-bytes` & `--json-patch-max-copy-bytes` + string. diff --git a/releases/release-1.24/release-notes/maps/pr-106882-map.yaml b/releases/release-1.24/release-notes/maps/pr-106882-map.yaml index f7b14c89432..a1d6d3ac048 100644 --- a/releases/release-1.24/release-notes/maps/pr-106882-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106882-map.yaml @@ -1,5 +1,5 @@ -pr: 106882 -releasenote: - text: Refactor kubelet command line for enabling features and "drop `RuntimeClass` feature gate" - if present. Note that this feature has been on by default since 1.14 and was GA'ed - in 1.20. +pr: 106882 +releasenote: + text: Refactor kubelet command line for enabling features and "drop `RuntimeClass` feature gate" + if present. Note that this feature has been on by default since 1.14 and was GA'ed + in 1.20. diff --git a/releases/release-1.24/release-notes/maps/pr-106891-map.yaml b/releases/release-1.24/release-notes/maps/pr-106891-map.yaml index edeed7385d1..16a3a8747fc 100644 --- a/releases/release-1.24/release-notes/maps/pr-106891-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106891-map.yaml @@ -1,7 +1,7 @@ -pr: 106891 -releasenote: - text: 'kubeadm: during execution of the `certs check-expiration` command, treat the etcd - CA as external if there is a missing etcd CA key file (etcd/ca.key) and perform - the proper validation on certificates signed by the etcd CA. Additionally, make - sure that the CA for all entries in the output table is included - for both certificates - on disk and in kubeconfig files.' +pr: 106891 +releasenote: + text: 'kubeadm: during execution of the `certs check-expiration` command, treat the etcd + CA as external if there is a missing etcd CA key file (etcd/ca.key) and perform + the proper validation on certificates signed by the etcd CA. Additionally, make + sure that the CA for all entries in the output table is included - for both certificates + on disk and in kubeconfig files.' diff --git a/releases/release-1.24/release-notes/maps/pr-106901-map.yaml b/releases/release-1.24/release-notes/maps/pr-106901-map.yaml index 32b573919b6..aa0e49a10ff 100644 --- a/releases/release-1.24/release-notes/maps/pr-106901-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106901-map.yaml @@ -1,9 +1,9 @@ -pr: 106901 -releasenote: - text: Reverted graceful node shutdown to match 1.21 behavior of setting pods that - have not yet successfully completed to "Failed" phase if the GracefulNodeShutdown - feature is enabled in kubelet. The GracefulNodeShutdown feature is beta and must - be explicitly configured via kubelet config to be enabled in 1.21+. This changes - 1.22 and 1.23 behavior on node shutdown to match 1.21. If you do not want pods - to be marked terminated on node shutdown in 1.22 and 1.23, disable the GracefulNodeShutdown - feature. +pr: 106901 +releasenote: + text: Reverted graceful node shutdown to match 1.21 behavior of setting pods that + have not yet successfully completed to "Failed" phase if the GracefulNodeShutdown + feature is enabled in kubelet. The GracefulNodeShutdown feature is beta and must + be explicitly configured via kubelet config to be enabled in 1.21+. This changes + 1.22 and 1.23 behavior on node shutdown to match 1.21. If you do not want pods + to be marked terminated on node shutdown in 1.22 and 1.23, disable the GracefulNodeShutdown + feature. diff --git a/releases/release-1.24/release-notes/maps/pr-106907-map.yaml b/releases/release-1.24/release-notes/maps/pr-106907-map.yaml index e9fd3fa75df..3d0b33a1eb5 100644 --- a/releases/release-1.24/release-notes/maps/pr-106907-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106907-map.yaml @@ -1,5 +1,5 @@ -pr: 106907 -releasenote: - text: 'kubelet: the following dockershim related flags are also removed along with dockershim - `--experimental-dockershim-root-directory`, `--docker-endpoint`, `--image-pull-progress-deadline`, - `--network-plugin`, `--cni-conf-dir`, `--cni-bin-dir`, `--cni-cache-dir`, `--network-plugin-mtu`.' +pr: 106907 +releasenote: + text: 'kubelet: the following dockershim related flags are also removed along with dockershim + `--experimental-dockershim-root-directory`, `--docker-endpoint`, `--image-pull-progress-deadline`, + `--network-plugin`, `--cni-conf-dir`, `--cni-bin-dir`, `--cni-cache-dir`, `--network-plugin-mtu`.' diff --git a/releases/release-1.24/release-notes/maps/pr-106911-map.yaml b/releases/release-1.24/release-notes/maps/pr-106911-map.yaml index 52faf172864..f5f39609c26 100644 --- a/releases/release-1.24/release-notes/maps/pr-106911-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106911-map.yaml @@ -1,6 +1,6 @@ -pr: 106911 -releasenote: - text: 'client-go metrics: change bucket distribution for `rest_client_request_duration_seconds` - and `rest_client_rate_limiter_duration_seconds` from [0.001, 0.002, 0.004, 0.008, - 0.016, 0.032, 0.064, 0.128, 0.256, 0.512] to [0.005, 0.025, 0.1, 0.25, 0.5, 1.0, - 2.0, 4.0, 8.0, 15.0, 30.0, 60.0}]' +pr: 106911 +releasenote: + text: 'client-go metrics: change bucket distribution for `rest_client_request_duration_seconds` + and `rest_client_rate_limiter_duration_seconds` from [0.001, 0.002, 0.004, 0.008, + 0.016, 0.032, 0.064, 0.128, 0.256, 0.512] to [0.005, 0.025, 0.1, 0.25, 0.5, 1.0, + 2.0, 4.0, 8.0, 15.0, 30.0, 60.0}]' diff --git a/releases/release-1.24/release-notes/maps/pr-106912-map.yaml b/releases/release-1.24/release-notes/maps/pr-106912-map.yaml index 5adccd6ffcb..90d7c2816c3 100644 --- a/releases/release-1.24/release-notes/maps/pr-106912-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106912-map.yaml @@ -1,4 +1,4 @@ -pr: 106912 -releasenote: - text: 'Fix libct/cg/fs2: fixed GetStats for unsupported hugetlb error on Raspbian - Bullseye' +pr: 106912 +releasenote: + text: 'Fix libct/cg/fs2: fixed GetStats for unsupported hugetlb error on Raspbian + Bullseye' diff --git a/releases/release-1.24/release-notes/maps/pr-106932-map.yaml b/releases/release-1.24/release-notes/maps/pr-106932-map.yaml index 24fde72c601..63c97edc82f 100644 --- a/releases/release-1.24/release-notes/maps/pr-106932-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106932-map.yaml @@ -1,3 +1,3 @@ -pr: 106932 -releasenote: - text: The feature `DynamicKubeletConfig` has been removed from the kubelet. +pr: 106932 +releasenote: + text: The feature `DynamicKubeletConfig` has been removed from the kubelet. diff --git a/releases/release-1.24/release-notes/maps/pr-106949-map.yaml b/releases/release-1.24/release-notes/maps/pr-106949-map.yaml index 7db5be1c43a..4426208dfbb 100644 --- a/releases/release-1.24/release-notes/maps/pr-106949-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106949-map.yaml @@ -1,3 +1,3 @@ -pr: 106949 -releasenote: - text: Updated golang.org/x/net to v0.0.0-20211209124913-491a49abca63. +pr: 106949 +releasenote: + text: Updated golang.org/x/net to v0.0.0-20211209124913-491a49abca63. diff --git a/releases/release-1.24/release-notes/maps/pr-106954-map.yaml b/releases/release-1.24/release-notes/maps/pr-106954-map.yaml index 645bb60f032..2841c0bc15c 100644 --- a/releases/release-1.24/release-notes/maps/pr-106954-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106954-map.yaml @@ -1,4 +1,4 @@ -pr: 106954 -releasenote: - text: Marked kubelet `--container-runtime-endpoint` and `--image-service-endpoint` - CLI flags as stable. +pr: 106954 +releasenote: + text: Marked kubelet `--container-runtime-endpoint` and `--image-service-endpoint` + CLI flags as stable. diff --git a/releases/release-1.24/release-notes/maps/pr-106956-map.yaml b/releases/release-1.24/release-notes/maps/pr-106956-map.yaml index 2f36cd485bb..a42841c8424 100644 --- a/releases/release-1.24/release-notes/maps/pr-106956-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106956-map.yaml @@ -1,3 +1,3 @@ -pr: 106956 -releasenote: - text: Kubernetes is now built with Golang 1.17.5. +pr: 106956 +releasenote: + text: Kubernetes is now built with Golang 1.17.5. diff --git a/releases/release-1.24/release-notes/maps/pr-106973-map.yaml b/releases/release-1.24/release-notes/maps/pr-106973-map.yaml index a7869c2d6bc..c77ce6f4f6f 100644 --- a/releases/release-1.24/release-notes/maps/pr-106973-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106973-map.yaml @@ -1,10 +1,10 @@ -pr: 106973 -releasenote: - text: 'kubeadm: handled the removal of dockershim related flags for new kubeadm - clusters. If kubelet <1.24 is on the host, kubeadm >=1.24 can continue using the - built-in dockershim in the kubelet if the user passes the `{Init|Join}Configuration.nodeRegistration.criSocket` - value in the kubeadm configuration to be equal to `unix:///var/run/dockershim.sock` - on Unix or `npipe:////./pipe/dockershim` on Windows. If kubelet version >=1.24 - is on the host, kubeadm >=1.24 will treat all container runtimes as "remote" using - the kubelet flags `--container-runtime=remote --container-runtime-endpoint=scheme://some/path`. - The special management for kubelet <1.24 will be removed in kubeadm 1.25.' +pr: 106973 +releasenote: + text: 'kubeadm: handled the removal of dockershim related flags for new kubeadm + clusters. If kubelet <1.24 is on the host, kubeadm >=1.24 can continue using the + built-in dockershim in the kubelet if the user passes the `{Init|Join}Configuration.nodeRegistration.criSocket` + value in the kubeadm configuration to be equal to `unix:///var/run/dockershim.sock` + on Unix or `npipe:////./pipe/dockershim` on Windows. If kubelet version >=1.24 + is on the host, kubeadm >=1.24 will treat all container runtimes as "remote" using + the kubelet flags `--container-runtime=remote --container-runtime-endpoint=scheme://some/path`. + The special management for kubelet <1.24 will be removed in kubeadm 1.25.' diff --git a/releases/release-1.24/release-notes/maps/pr-106978-map.yaml b/releases/release-1.24/release-notes/maps/pr-106978-map.yaml index 0788b7b5da8..e71cb0d12a1 100644 --- a/releases/release-1.24/release-notes/maps/pr-106978-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-106978-map.yaml @@ -1,4 +1,4 @@ -pr: 106978 -releasenote: - text: Modified log messages that were logged with `"v":0` in JSON output although - they were debug messages with a higher verbosity. +pr: 106978 +releasenote: + text: Modified log messages that were logged with `"v":0` in JSON output although + they were debug messages with a higher verbosity. diff --git a/releases/release-1.24/release-notes/maps/pr-107003-map.yaml b/releases/release-1.24/release-notes/maps/pr-107003-map.yaml index 0e67fdf2eb9..cb40f197455 100644 --- a/releases/release-1.24/release-notes/maps/pr-107003-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107003-map.yaml @@ -1,4 +1,4 @@ -pr: 107003 -releasenote: - text: 'kubectl: restored `--dry-run`, `--dry-run=true`, and `--dry-run=false` for - compatibility with pre-1.23 invocations.' +pr: 107003 +releasenote: + text: 'kubectl: restored `--dry-run`, `--dry-run=true`, and `--dry-run=false` for + compatibility with pre-1.23 invocations.' diff --git a/releases/release-1.24/release-notes/maps/pr-107006-map.yaml b/releases/release-1.24/release-notes/maps/pr-107006-map.yaml index b99970c7bda..7fa3d1f88a3 100644 --- a/releases/release-1.24/release-notes/maps/pr-107006-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107006-map.yaml @@ -1,3 +1,3 @@ -pr: 107006 -releasenote: - text: Added a metric for measuring end-to-end volume mount timing. +pr: 107006 +releasenote: + text: Added a metric for measuring end-to-end volume mount timing. diff --git a/releases/release-1.24/release-notes/maps/pr-107009-map.yaml b/releases/release-1.24/release-notes/maps/pr-107009-map.yaml index ec558a30c6e..8a0f33b6089 100644 --- a/releases/release-1.24/release-notes/maps/pr-107009-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107009-map.yaml @@ -1,8 +1,8 @@ -pr: 107009 -releasenote: - text: |- - The calculations for Pod topology spread skew now exclude nodes that - don't match the node affinity/selector. This may lead to unschedulable pods if you previously had pods - matching the spreading selector on those excluded nodes (not matching the node affinity/selector), - especially when the `topologyKey` is not node-level. Revisit the node affinity and/or pod selector in the - topology spread constraints to avoid this scenario. +pr: 107009 +releasenote: + text: |- + The calculations for Pod topology spread skew now exclude nodes that + don't match the node affinity/selector. This may lead to unschedulable pods if you previously had pods + matching the spreading selector on those excluded nodes (not matching the node affinity/selector), + especially when the `topologyKey` is not node-level. Revisit the node affinity and/or pod selector in the + topology spread constraints to avoid this scenario. diff --git a/releases/release-1.24/release-notes/maps/pr-107013-map.yaml b/releases/release-1.24/release-notes/maps/pr-107013-map.yaml index bbe88ee3321..1095b90e8b5 100644 --- a/releases/release-1.24/release-notes/maps/pr-107013-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107013-map.yaml @@ -1,6 +1,6 @@ -pr: 107013 -releasenote: - text: '`kubeadm.k8s.io/v1beta2` has been deprecated and will be removed in a future - release, possibly in 3 releases (one year). You should start using `kubeadm.k8s.io/v1beta3` - for new clusters. To migrate your old configuration files on disk you can use - the `kubeadm config migrate` command.' +pr: 107013 +releasenote: + text: '`kubeadm.k8s.io/v1beta2` has been deprecated and will be removed in a future + release, possibly in 3 releases (one year). You should start using `kubeadm.k8s.io/v1beta3` + for new clusters. To migrate your old configuration files on disk you can use + the `kubeadm config migrate` command.' diff --git a/releases/release-1.24/release-notes/maps/pr-107025-map.yaml b/releases/release-1.24/release-notes/maps/pr-107025-map.yaml index f520f73f334..9a4247beca2 100644 --- a/releases/release-1.24/release-notes/maps/pr-107025-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107025-map.yaml @@ -1,3 +1,3 @@ -pr: 107025 -releasenote: - text: Fixed detaching CSI volumes from nodes when a CSI driver name has prefix "csi-". +pr: 107025 +releasenote: + text: Fixed detaching CSI volumes from nodes when a CSI driver name has prefix "csi-". diff --git a/releases/release-1.24/release-notes/maps/pr-107027-map.yaml b/releases/release-1.24/release-notes/maps/pr-107027-map.yaml index 3a1cf7da8ee..46ea55eeb83 100644 --- a/releases/release-1.24/release-notes/maps/pr-107027-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107027-map.yaml @@ -1,4 +1,4 @@ -pr: 107027 -releasenote: - text: The `ServiceLBNodePortControl` feature has graduated to GA. The feature gate will - be removed in 1.26. +pr: 107027 +releasenote: + text: The `ServiceLBNodePortControl` feature has graduated to GA. The feature gate will + be removed in 1.26. diff --git a/releases/release-1.24/release-notes/maps/pr-107034-map.yaml b/releases/release-1.24/release-notes/maps/pr-107034-map.yaml index 7038f33f0c5..92e33d9a71e 100644 --- a/releases/release-1.24/release-notes/maps/pr-107034-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107034-map.yaml @@ -1,3 +1,3 @@ -pr: 107034 -releasenote: - text: Fixed a bug that could cause panic when a `/healthz` request times out. +pr: 107034 +releasenote: + text: Fixed a bug that could cause panic when a `/healthz` request times out. diff --git a/releases/release-1.24/release-notes/maps/pr-107035-map.yaml b/releases/release-1.24/release-notes/maps/pr-107035-map.yaml index 686935fea5c..7f25c373557 100644 --- a/releases/release-1.24/release-notes/maps/pr-107035-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107035-map.yaml @@ -1,4 +1,4 @@ -pr: 107035 -releasenote: - text: Fixed performance regression in JSON logging caused by syncing stdout every - time error was logged. +pr: 107035 +releasenote: + text: Fixed performance regression in JSON logging caused by syncing stdout every + time error was logged. diff --git a/releases/release-1.24/release-notes/maps/pr-107044-map.yaml b/releases/release-1.24/release-notes/maps/pr-107044-map.yaml index e8c244a812d..bbf605c8ca2 100644 --- a/releases/release-1.24/release-notes/maps/pr-107044-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107044-map.yaml @@ -1,5 +1,5 @@ -pr: 107044 -releasenote: - text: Modified command line errors (for example, `kubectl list` -> `unknown command`) - that were printed as log message with escaped line breaks instead of a multi-line - plain text, making the error hard to read. +pr: 107044 +releasenote: + text: Modified command line errors (for example, `kubectl list` -> `unknown command`) + that were printed as log message with escaped line breaks instead of a multi-line + plain text, making the error hard to read. diff --git a/releases/release-1.24/release-notes/maps/pr-107056-map.yaml b/releases/release-1.24/release-notes/maps/pr-107056-map.yaml index c21170bbbff..4013788fdf8 100644 --- a/releases/release-1.24/release-notes/maps/pr-107056-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107056-map.yaml @@ -1,4 +1,4 @@ -pr: 107056 -releasenote: - text: Windows Pause no longer has support for SAC releases 1903, 1909, 2004. Windows - image support is now Ltcs 2019 (1809), 20H2, LTSC 2022 +pr: 107056 +releasenote: + text: Windows Pause no longer has support for SAC releases 1903, 1909, 2004. Windows + image support is now Ltcs 2019 (1809), 20H2, LTSC 2022 diff --git a/releases/release-1.24/release-notes/maps/pr-107065-map.yaml b/releases/release-1.24/release-notes/maps/pr-107065-map.yaml index 1825e877c88..7c3b47bf704 100644 --- a/releases/release-1.24/release-notes/maps/pr-107065-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107065-map.yaml @@ -1,4 +1,4 @@ -pr: 107065 -releasenote: - text: Changed node staging path for CSI driver to use a PV agnostic path. Nodes - must be drained before updating the kubelet with this change. +pr: 107065 +releasenote: + text: Changed node staging path for CSI driver to use a PV agnostic path. Nodes + must be drained before updating the kubelet with this change. diff --git a/releases/release-1.24/release-notes/maps/pr-107088-map.yaml b/releases/release-1.24/release-notes/maps/pr-107088-map.yaml index 2ae855908eb..40c7733a483 100644 --- a/releases/release-1.24/release-notes/maps/pr-107088-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107088-map.yaml @@ -1,4 +1,4 @@ -pr: 107088 -releasenote: - text: 'Fixed a bug where unwanted fields were being returned from a `create --dry-run`: - uid and, if generateName was used, name.' +pr: 107088 +releasenote: + text: 'Fixed a bug where unwanted fields were being returned from a `create --dry-run`: + uid and, if generateName was used, name.' diff --git a/releases/release-1.24/release-notes/maps/pr-107090-map.yaml b/releases/release-1.24/release-notes/maps/pr-107090-map.yaml index ea5227326ca..b04c9e3c734 100644 --- a/releases/release-1.24/release-notes/maps/pr-107090-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107090-map.yaml @@ -1,3 +1,3 @@ -pr: 107090 -releasenote: - text: CEL validation failure returns object type instead of object. +pr: 107090 +releasenote: + text: CEL validation failure returns object type instead of object. diff --git a/releases/release-1.24/release-notes/maps/pr-107091-map.yaml b/releases/release-1.24/release-notes/maps/pr-107091-map.yaml index ccac04aacb9..d712b0cddf0 100644 --- a/releases/release-1.24/release-notes/maps/pr-107091-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107091-map.yaml @@ -1,5 +1,5 @@ -pr: 107091 -releasenote: - text: An inefficient lock in EndpointSlice controller metrics cache has been reworked. - Network programming latency may be significantly reduced in certain scenarios, - especially in clusters with a large number of Services. +pr: 107091 +releasenote: + text: An inefficient lock in EndpointSlice controller metrics cache has been reworked. + Network programming latency may be significantly reduced in certain scenarios, + especially in clusters with a large number of Services. diff --git a/releases/release-1.24/release-notes/maps/pr-107094-map.yaml b/releases/release-1.24/release-notes/maps/pr-107094-map.yaml index ce2192fb6aa..2e9ad00a4ed 100644 --- a/releases/release-1.24/release-notes/maps/pr-107094-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107094-map.yaml @@ -1,4 +1,4 @@ -pr: 107094 -releasenote: - text: The `--container-runtime` kubelet flag is deprecated and will be removed in - future releases. +pr: 107094 +releasenote: + text: The `--container-runtime` kubelet flag is deprecated and will be removed in + future releases. diff --git a/releases/release-1.24/release-notes/maps/pr-107096-map.yaml b/releases/release-1.24/release-notes/maps/pr-107096-map.yaml index 1615fe9738a..21f8dbaa1cd 100644 --- a/releases/release-1.24/release-notes/maps/pr-107096-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107096-map.yaml @@ -1,3 +1,3 @@ -pr: 107096 -releasenote: - text: Removed kubelet `--non-masquerade-cidr` deprecated CLI flag +pr: 107096 +releasenote: + text: Removed kubelet `--non-masquerade-cidr` deprecated CLI flag diff --git a/releases/release-1.24/release-notes/maps/pr-107103-map.yaml b/releases/release-1.24/release-notes/maps/pr-107103-map.yaml index f4b194f2863..b95b70849fe 100644 --- a/releases/release-1.24/release-notes/maps/pr-107103-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107103-map.yaml @@ -1,5 +1,5 @@ -pr: 107103 -releasenote: - text: In text format, log messages that previously used quoting to prevent multi-line - output (for example, text="some \"quotation\", a\nline break") will now be printed - with more readable multi-line output without the escape sequences. +pr: 107103 +releasenote: + text: In text format, log messages that previously used quoting to prevent multi-line + output (for example, text="some \"quotation\", a\nline break") will now be printed + with more readable multi-line output without the escape sequences. diff --git a/releases/release-1.24/release-notes/maps/pr-107105-map.yaml b/releases/release-1.24/release-notes/maps/pr-107105-map.yaml index b747dfda8c9..da38365f90d 100644 --- a/releases/release-1.24/release-notes/maps/pr-107105-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107105-map.yaml @@ -1,3 +1,3 @@ -pr: 107105 -releasenote: - text: Kubernetes in now built with go1.18rc1 +pr: 107105 +releasenote: + text: Kubernetes in now built with go1.18rc1 diff --git a/releases/release-1.24/release-notes/maps/pr-107116-map.yaml b/releases/release-1.24/release-notes/maps/pr-107116-map.yaml index 21de570562b..1218fb2a483 100644 --- a/releases/release-1.24/release-notes/maps/pr-107116-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107116-map.yaml @@ -1,3 +1,3 @@ -pr: 107116 -releasenote: - text: Added more message for no PodSandbox container. +pr: 107116 +releasenote: + text: Added more message for no PodSandbox container. diff --git a/releases/release-1.24/release-notes/maps/pr-107131-map.yaml b/releases/release-1.24/release-notes/maps/pr-107131-map.yaml index f48f6999092..17e66940588 100644 --- a/releases/release-1.24/release-notes/maps/pr-107131-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107131-map.yaml @@ -1,3 +1,3 @@ -pr: 107131 -releasenote: - text: Fixed default config flags for `NewDefaultKubectlCommand`. +pr: 107131 +releasenote: + text: Fixed default config flags for `NewDefaultKubectlCommand`. diff --git a/releases/release-1.24/release-notes/maps/pr-107141-map.yaml b/releases/release-1.24/release-notes/maps/pr-107141-map.yaml index 6ed3c01b734..995f6fe92f1 100644 --- a/releases/release-1.24/release-notes/maps/pr-107141-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107141-map.yaml @@ -1,3 +1,3 @@ -pr: 107141 -releasenote: - text: Increase default value of discovery cache TTL for kubectl to 6 hours. +pr: 107141 +releasenote: + text: Increase default value of discovery cache TTL for kubectl to 6 hours. diff --git a/releases/release-1.24/release-notes/maps/pr-107142-map.yaml b/releases/release-1.24/release-notes/maps/pr-107142-map.yaml index 0ac219155ea..f1afb1e4e39 100644 --- a/releases/release-1.24/release-notes/maps/pr-107142-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107142-map.yaml @@ -1,3 +1,3 @@ -pr: 107142 -releasenote: - text: '`kubectl config delete-user` now supports completion' +pr: 107142 +releasenote: + text: '`kubectl config delete-user` now supports completion' diff --git a/releases/release-1.24/release-notes/maps/pr-107152-map.yaml b/releases/release-1.24/release-notes/maps/pr-107152-map.yaml index aaeb5677fdb..4bd558f0893 100644 --- a/releases/release-1.24/release-notes/maps/pr-107152-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107152-map.yaml @@ -1,3 +1,3 @@ -pr: 107152 -releasenote: - text: Removed the `ImmutableEphemeralVolumes` feature gate. +pr: 107152 +releasenote: + text: Removed the `ImmutableEphemeralVolumes` feature gate. diff --git a/releases/release-1.24/release-notes/maps/pr-107171-map.yaml b/releases/release-1.24/release-notes/maps/pr-107171-map.yaml index 97f02fe62fe..4711cf67af6 100644 --- a/releases/release-1.24/release-notes/maps/pr-107171-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107171-map.yaml @@ -1,4 +1,4 @@ -pr: 107171 -releasenote: - text: Added a new metric `webhook_fail_open_count` to monitor webhooks that fail - to open. +pr: 107171 +releasenote: + text: Added a new metric `webhook_fail_open_count` to monitor webhooks that fail + to open. diff --git a/releases/release-1.24/release-notes/maps/pr-107178-map.yaml b/releases/release-1.24/release-notes/maps/pr-107178-map.yaml index 4784153fc62..0253a043d2b 100644 --- a/releases/release-1.24/release-notes/maps/pr-107178-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107178-map.yaml @@ -1,4 +1,4 @@ -pr: 107178 -releasenote: - text: The deprecated kube-controller-manager flag '--deployment-controller-sync-period' - has been removed, it is not used by the deployment controller. +pr: 107178 +releasenote: + text: The deprecated kube-controller-manager flag '--deployment-controller-sync-period' + has been removed, it is not used by the deployment controller. diff --git a/releases/release-1.24/release-notes/maps/pr-107180-map.yaml b/releases/release-1.24/release-notes/maps/pr-107180-map.yaml index d4ee974986f..5b226f4b0af 100644 --- a/releases/release-1.24/release-notes/maps/pr-107180-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107180-map.yaml @@ -1,5 +1,5 @@ -pr: 107180 -releasenote: - text: ServerResources was deprecated in February 2019 (https://github.com/kubernetes/kubernetes/commit/618050e) - and now it's being removed and ServerGroupsAndResources is suggested to be used - instead +pr: 107180 +releasenote: + text: ServerResources was deprecated in February 2019 (https://github.com/kubernetes/kubernetes/commit/618050e) + and now it's being removed and ServerGroupsAndResources is suggested to be used + instead diff --git a/releases/release-1.24/release-notes/maps/pr-107201-map.yaml b/releases/release-1.24/release-notes/maps/pr-107201-map.yaml index 90603d8a24f..b0cf27e556a 100644 --- a/releases/release-1.24/release-notes/maps/pr-107201-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107201-map.yaml @@ -1,4 +1,4 @@ -pr: 107201 -releasenote: - text: 'kubelet: add `kubelet_volume_metric_collection_duration_seconds` metrics - for volume disk usage calculation duration' +pr: 107201 +releasenote: + text: 'kubelet: add `kubelet_volume_metric_collection_duration_seconds` metrics + for volume disk usage calculation duration' diff --git a/releases/release-1.24/release-notes/maps/pr-107207-map.yaml b/releases/release-1.24/release-notes/maps/pr-107207-map.yaml index a9c2ac5aef9..fda2265a498 100644 --- a/releases/release-1.24/release-notes/maps/pr-107207-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107207-map.yaml @@ -1,4 +1,4 @@ -pr: 107207 -releasenote: - text: The experimental dynamic log sanitization feature has been deprecated and - removed in the 1.24 release. The feature is no longer available for use. +pr: 107207 +releasenote: + text: The experimental dynamic log sanitization feature has been deprecated and + removed in the 1.24 release. The feature is no longer available for use. diff --git a/releases/release-1.24/release-notes/maps/pr-107221-map.yaml b/releases/release-1.24/release-notes/maps/pr-107221-map.yaml index b977658369a..f2e13371966 100644 --- a/releases/release-1.24/release-notes/maps/pr-107221-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107221-map.yaml @@ -1,4 +1,4 @@ -pr: 107221 -releasenote: - text: Fixed a panic when using invalid output format in `kubectl create secret` - command. +pr: 107221 +releasenote: + text: Fixed a panic when using invalid output format in `kubectl create secret` + command. diff --git a/releases/release-1.24/release-notes/maps/pr-107235-map.yaml b/releases/release-1.24/release-notes/maps/pr-107235-map.yaml index a053aef61be..5d5e4b7bdfb 100644 --- a/releases/release-1.24/release-notes/maps/pr-107235-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107235-map.yaml @@ -1,6 +1,6 @@ -pr: 107235 -releasenote: - text: Deprecated `Service.Spec.LoadBalancerIP`. This field was under-specified and - its meaning varies across implementations. As of Kubernetes v1.24, users are - encouraged to use implementation-specific annotations when available. This field - may be removed in a future API version. +pr: 107235 +releasenote: + text: Deprecated `Service.Spec.LoadBalancerIP`. This field was under-specified and + its meaning varies across implementations. As of Kubernetes v1.24, users are + encouraged to use implementation-specific annotations when available. This field + may be removed in a future API version. diff --git a/releases/release-1.24/release-notes/maps/pr-107295-map.yaml b/releases/release-1.24/release-notes/maps/pr-107295-map.yaml index 287fb1d23b7..fd1eeb6dc3c 100644 --- a/releases/release-1.24/release-notes/maps/pr-107295-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107295-map.yaml @@ -1,12 +1,12 @@ -pr: 107295 -releasenote: - text: "kubeadm: make sure that `kubeadm init/join` always use a URL scheme (unix:// - on Linux and npipe:// on Windows) when passing a value to the `--container-runtime-endpoint` - kubelet flag. This flag's value is taken from the kubeadm configuration `criSocket` - field or the `--cri-socket` CLI flag. Automatically add a missing URL scheme to - the user configuration in memory, but warn them that they should also update their - configuration on disk manually. During `kubeadm upgrade apply/node` mutate the - `/var/lib/kubelet/kubeadm-flags.env` file on disk and the `kubeadm.alpha.kubernetes.io/cri-socket` - annotation Node object if needed. These automatic actions are temporary and will - be removed in a future release. In the future the kubelet may not support CRI - endpoints without an URL scheme." +pr: 107295 +releasenote: + text: "kubeadm: make sure that `kubeadm init/join` always use a URL scheme (unix:// + on Linux and npipe:// on Windows) when passing a value to the `--container-runtime-endpoint` + kubelet flag. This flag's value is taken from the kubeadm configuration `criSocket` + field or the `--cri-socket` CLI flag. Automatically add a missing URL scheme to + the user configuration in memory, but warn them that they should also update their + configuration on disk manually. During `kubeadm upgrade apply/node` mutate the + `/var/lib/kubelet/kubeadm-flags.env` file on disk and the `kubeadm.alpha.kubernetes.io/cri-socket` + annotation Node object if needed. These automatic actions are temporary and will + be removed in a future release. In the future the kubelet may not support CRI + endpoints without an URL scheme." diff --git a/releases/release-1.24/release-notes/maps/pr-107311-map.yaml b/releases/release-1.24/release-notes/maps/pr-107311-map.yaml index 33e0990794c..5ad29404498 100644 --- a/releases/release-1.24/release-notes/maps/pr-107311-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107311-map.yaml @@ -1,4 +1,4 @@ -pr: 107311 -releasenote: - text: 'client-go: fixed the paged list calls with `ResourceVersionMatch` set would - fail once paging is kicked in.' +pr: 107311 +releasenote: + text: 'client-go: fixed the paged list calls with `ResourceVersionMatch` set would + fail once paging is kicked in.' diff --git a/releases/release-1.24/release-notes/maps/pr-107317-map.yaml b/releases/release-1.24/release-notes/maps/pr-107317-map.yaml index f16e6a87ae8..d1de1a2b93d 100644 --- a/releases/release-1.24/release-notes/maps/pr-107317-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107317-map.yaml @@ -1,8 +1,8 @@ -pr: 107317 -releasenote: - text: |- - kubeadm: default the kubeadm configuration to the containerd socket (Unix: `unix:///var/run/containerd/containerd.sock`, Windows: `npipe:////./pipe/containerd-containerd`) instead of the one for Docker. If the `Init|JoinConfiguration.nodeRegistration.criSocket` field is empty during cluster creation and multiple sockets are found on the host always throw an error and ask the user to specify which one to use by setting the value in the field. Make sure you update any kubeadm configuration files on disk, to not include the dockershim socket unless you are still using kubelet version < 1.24 with kubeadm >= 1.24. - - Remove the DockerValidor and ServiceCheck for the `docker` service from kubeadm preflight. Docker is no longer special cased during host validation and ideally this task should be done in the now external cri-dockerd project where the importance of the compatibility matters. - - Use `crictl` for all communication with CRI sockets for actions like pulling images and obtaining a list of running containers instead of using the docker CLI in the case of Docker. +pr: 107317 +releasenote: + text: |- + kubeadm: default the kubeadm configuration to the containerd socket (Unix: `unix:///var/run/containerd/containerd.sock`, Windows: `npipe:////./pipe/containerd-containerd`) instead of the one for Docker. If the `Init|JoinConfiguration.nodeRegistration.criSocket` field is empty during cluster creation and multiple sockets are found on the host always throw an error and ask the user to specify which one to use by setting the value in the field. Make sure you update any kubeadm configuration files on disk, to not include the dockershim socket unless you are still using kubelet version < 1.24 with kubeadm >= 1.24. + + Remove the DockerValidor and ServiceCheck for the `docker` service from kubeadm preflight. Docker is no longer special cased during host validation and ideally this task should be done in the now external cri-dockerd project where the importance of the compatibility matters. + + Use `crictl` for all communication with CRI sockets for actions like pulling images and obtaining a list of running containers instead of using the docker CLI in the case of Docker. diff --git a/releases/release-1.24/release-notes/maps/pr-107327-map.yaml b/releases/release-1.24/release-notes/maps/pr-107327-map.yaml index dd39839a8cf..40b6674fd54 100644 --- a/releases/release-1.24/release-notes/maps/pr-107327-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107327-map.yaml @@ -1,5 +1,5 @@ -pr: 107327 -releasenote: - text: 'kubeadm: removed the restriction that the `ca.crt` can only contain one certificate. - If there is more than one certificate in the `ca.crt` file, kubeadm will pick the - first one by default.' +pr: 107327 +releasenote: + text: 'kubeadm: removed the restriction that the `ca.crt` can only contain one certificate. + If there is more than one certificate in the `ca.crt` file, kubeadm will pick the + first one by default.' diff --git a/releases/release-1.24/release-notes/maps/pr-107337-map.yaml b/releases/release-1.24/release-notes/maps/pr-107337-map.yaml index 76b4b44c4e8..ff9d4a92139 100644 --- a/releases/release-1.24/release-notes/maps/pr-107337-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107337-map.yaml @@ -1,5 +1,5 @@ -pr: 107337 -releasenote: - text: Fixed a bug where vSphere client connections where not being closed during - testing. Leaked vSphere client sessions were causing resource exhaustion during - automated testing. +pr: 107337 +releasenote: + text: Fixed a bug where vSphere client connections where not being closed during + testing. Leaked vSphere client sessions were causing resource exhaustion during + automated testing. diff --git a/releases/release-1.24/release-notes/maps/pr-107363-map.yaml b/releases/release-1.24/release-notes/maps/pr-107363-map.yaml index 6a27aec45e7..84dc9c1dfad 100644 --- a/releases/release-1.24/release-notes/maps/pr-107363-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107363-map.yaml @@ -1,3 +1,3 @@ -pr: 107363 -releasenote: - text: Improve error message when applying CRDs before the CRD exists in a cluster +pr: 107363 +releasenote: + text: Improve error message when applying CRDs before the CRD exists in a cluster diff --git a/releases/release-1.24/release-notes/maps/pr-107384-map.yaml b/releases/release-1.24/release-notes/maps/pr-107384-map.yaml index 93e268cd4e9..1228809a1e5 100644 --- a/releases/release-1.24/release-notes/maps/pr-107384-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107384-map.yaml @@ -1,4 +1,4 @@ -pr: 107384 -releasenote: - text: Improved the rounding of `PodTopologySpread` scores to offer better scoring - when spreading a low number of pods. +pr: 107384 +releasenote: + text: Improved the rounding of `PodTopologySpread` scores to offer better scoring + when spreading a low number of pods. diff --git a/releases/release-1.24/release-notes/maps/pr-107395-map.yaml b/releases/release-1.24/release-notes/maps/pr-107395-map.yaml index cc3a46e5ba8..0c16b4f0f99 100644 --- a/releases/release-1.24/release-notes/maps/pr-107395-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107395-map.yaml @@ -1,3 +1,3 @@ -pr: 107395 -releasenote: - text: Indexed Jobs graduated to stable. +pr: 107395 +releasenote: + text: Indexed Jobs graduated to stable. diff --git a/releases/release-1.24/release-notes/maps/pr-107402-map.yaml b/releases/release-1.24/release-notes/maps/pr-107402-map.yaml index e1b2339861d..ea881a9972a 100644 --- a/releases/release-1.24/release-notes/maps/pr-107402-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107402-map.yaml @@ -1,4 +1,4 @@ -pr: 107402 -releasenote: - text: 'apiserver will now reject connection attempts to `0.0.0.0/::` when handling - a proxy subresource request.' +pr: 107402 +releasenote: + text: 'apiserver will now reject connection attempts to `0.0.0.0/::` when handling + a proxy subresource request.' diff --git a/releases/release-1.24/release-notes/maps/pr-107406-map.yaml b/releases/release-1.24/release-notes/maps/pr-107406-map.yaml index ebb96b65049..cca6a92488f 100644 --- a/releases/release-1.24/release-notes/maps/pr-107406-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107406-map.yaml @@ -1,3 +1,3 @@ -pr: 107406 -releasenote: - text: 'Fixed: deleted a non-existent Azure disk issue.' +pr: 107406 +releasenote: + text: 'Fixed: deleted a non-existent Azure disk issue.' diff --git a/releases/release-1.24/release-notes/maps/pr-107410-map.yaml b/releases/release-1.24/release-notes/maps/pr-107410-map.yaml index d5a4151b3a1..6fe971e822d 100644 --- a/releases/release-1.24/release-notes/maps/pr-107410-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107410-map.yaml @@ -1,4 +1,4 @@ -pr: 107410 -releasenote: - text: Fixed a bug that caused credentials in an exec plugin to override the static - certificates set in a kubeconfig. +pr: 107410 +releasenote: + text: Fixed a bug that caused credentials in an exec plugin to override the static + certificates set in a kubeconfig. diff --git a/releases/release-1.24/release-notes/maps/pr-107413-map.yaml b/releases/release-1.24/release-notes/maps/pr-107413-map.yaml index 93b21648d76..6d3a44c2cf9 100644 --- a/releases/release-1.24/release-notes/maps/pr-107413-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107413-map.yaml @@ -1,4 +1,4 @@ -pr: 107413 -releasenote: - text: Fixed duplicate port opening in kube-proxy when `--nodeport-addresses` is - empty. +pr: 107413 +releasenote: + text: Fixed duplicate port opening in kube-proxy when `--nodeport-addresses` is + empty. diff --git a/releases/release-1.24/release-notes/maps/pr-107429-map.yaml b/releases/release-1.24/release-notes/maps/pr-107429-map.yaml index 3dc41e0197b..7f74ded6db5 100644 --- a/releases/release-1.24/release-notes/maps/pr-107429-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107429-map.yaml @@ -1,3 +1,3 @@ -pr: 107429 -releasenote: - text: Fixed `azureDisk` parameter lowercase translation issue. +pr: 107429 +releasenote: + text: Fixed `azureDisk` parameter lowercase translation issue. diff --git a/releases/release-1.24/release-notes/maps/pr-107432-map.yaml b/releases/release-1.24/release-notes/maps/pr-107432-map.yaml index b0e6a4aa92a..f6256080d01 100644 --- a/releases/release-1.24/release-notes/maps/pr-107432-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107432-map.yaml @@ -1,3 +1,3 @@ -pr: 107432 -releasenote: - text: Feature of `NonPreemptingPriority` is graduated to GA +pr: 107432 +releasenote: + text: Feature of `NonPreemptingPriority` is graduated to GA diff --git a/releases/release-1.24/release-notes/maps/pr-107439-map.yaml b/releases/release-1.24/release-notes/maps/pr-107439-map.yaml index 0c874710e62..2f7409c27cc 100644 --- a/releases/release-1.24/release-notes/maps/pr-107439-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107439-map.yaml @@ -1,4 +1,4 @@ -pr: 107439 -releasenote: - text: Fixed kubectl bug where bash completions don't work if `--context` flag is specified - with a value that contains a colon. +pr: 107439 +releasenote: + text: Fixed kubectl bug where bash completions don't work if `--context` flag is specified + with a value that contains a colon. diff --git a/releases/release-1.24/release-notes/maps/pr-107452-map.yaml b/releases/release-1.24/release-notes/maps/pr-107452-map.yaml index 752d48105bb..2b5320a40c7 100644 --- a/releases/release-1.24/release-notes/maps/pr-107452-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107452-map.yaml @@ -1,3 +1,3 @@ -pr: 107452 -releasenote: - text: Fixed a rare race condition handling requests that timeout. +pr: 107452 +releasenote: + text: Fixed a rare race condition handling requests that timeout. diff --git a/releases/release-1.24/release-notes/maps/pr-107455-map.yaml b/releases/release-1.24/release-notes/maps/pr-107455-map.yaml index e8becf3fa23..4b1d14a5722 100644 --- a/releases/release-1.24/release-notes/maps/pr-107455-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107455-map.yaml @@ -1,4 +1,4 @@ -pr: 107455 -releasenote: - text: kubernetes e2e framework will use the url `invalid.registry.k8s.io/invalid` - instead `invalid.com/invalid` for test that use an invalid registry. +pr: 107455 +releasenote: + text: kubernetes e2e framework will use the url `invalid.registry.k8s.io/invalid` + instead `invalid.com/invalid` for test that use an invalid registry. diff --git a/releases/release-1.24/release-notes/maps/pr-107462-map.yaml b/releases/release-1.24/release-notes/maps/pr-107462-map.yaml index 5a4e828d696..c257c0b4e1c 100644 --- a/releases/release-1.24/release-notes/maps/pr-107462-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107462-map.yaml @@ -1,5 +1,5 @@ -pr: 107462 -releasenote: - text: OpenStack Cinder CSI migration is now GA and switched on by default, Cinder - CSI driver must be installed on clusters on OpenStack for Cinder volumes to work - (has been since v1.21). +pr: 107462 +releasenote: + text: OpenStack Cinder CSI migration is now GA and switched on by default, Cinder + CSI driver must be installed on clusters on OpenStack for Cinder volumes to work + (has been since v1.21). diff --git a/releases/release-1.24/release-notes/maps/pr-107467-map.yaml b/releases/release-1.24/release-notes/maps/pr-107467-map.yaml index 57e47c68b8d..ec4c764d884 100644 --- a/releases/release-1.24/release-notes/maps/pr-107467-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107467-map.yaml @@ -1,3 +1,3 @@ -pr: 107467 -releasenote: - text: 'kubeadm: all warning messages are printed to stderr instead of stdout.' +pr: 107467 +releasenote: + text: 'kubeadm: all warning messages are printed to stderr instead of stdout.' diff --git a/releases/release-1.24/release-notes/maps/pr-107468-map.yaml b/releases/release-1.24/release-notes/maps/pr-107468-map.yaml index 4ae188d96d6..498016f7a90 100644 --- a/releases/release-1.24/release-notes/maps/pr-107468-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107468-map.yaml @@ -1,5 +1,5 @@ -pr: 107468 -releasenote: - text: 'kubeadm: removed the deprecated `output/v1alpha1` API used for machine readable - output by some kubeadm commands. In 1.23 kubeadm started using the newer version - `output/v1alpha2` for the same purpose.' +pr: 107468 +releasenote: + text: 'kubeadm: removed the deprecated `output/v1alpha1` API used for machine readable + output by some kubeadm commands. In 1.23 kubeadm started using the newer version + `output/v1alpha2` for the same purpose.' diff --git a/releases/release-1.24/release-notes/maps/pr-107476-map.yaml b/releases/release-1.24/release-notes/maps/pr-107476-map.yaml index a066eafa17a..a9f499526ee 100644 --- a/releases/release-1.24/release-notes/maps/pr-107476-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107476-map.yaml @@ -1,3 +1,3 @@ -pr: 107476 -releasenote: - text: JobReadyPods graduates to Beta and it's enabled by default. +pr: 107476 +releasenote: + text: JobReadyPods graduates to Beta and it's enabled by default. diff --git a/releases/release-1.24/release-notes/maps/pr-107481-map.yaml b/releases/release-1.24/release-notes/maps/pr-107481-map.yaml index 7ed31e236ab..024dadd9d7f 100644 --- a/releases/release-1.24/release-notes/maps/pr-107481-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107481-map.yaml @@ -1,3 +1,3 @@ -pr: 107481 -releasenote: - text: The cluster addon for dashboard was removed. To install dashboard, see [here](https://github.com/kubernetes/dashboard/blob/master/docs/user/README.md). +pr: 107481 +releasenote: + text: The cluster addon for dashboard was removed. To install dashboard, see [here](https://github.com/kubernetes/dashboard/blob/master/docs/user/README.md). diff --git a/releases/release-1.24/release-notes/maps/pr-107507-map.yaml b/releases/release-1.24/release-notes/maps/pr-107507-map.yaml index 5fe859820cd..ea9977729b3 100644 --- a/releases/release-1.24/release-notes/maps/pr-107507-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107507-map.yaml @@ -1,4 +1,4 @@ -pr: 107507 -releasenote: - text: Added `SetTransform` to `SharedInformer` to allow users to transform objects - before they are stored. +pr: 107507 +releasenote: + text: Added `SetTransform` to `SharedInformer` to allow users to transform objects + before they are stored. diff --git a/releases/release-1.24/release-notes/maps/pr-107512-map.yaml b/releases/release-1.24/release-notes/maps/pr-107512-map.yaml index fb5d70d8633..8886714d226 100644 --- a/releases/release-1.24/release-notes/maps/pr-107512-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107512-map.yaml @@ -1,5 +1,5 @@ -pr: 107512 -releasenote: - text: 'kubeadm: added support for dry running `kubeadm reset`. The new flag `kubeadm - reset --dry-run` is similar to the existing flag for `kubeadm init/join/upgrade` - and allows you to see what changes would be applied.' +pr: 107512 +releasenote: + text: 'kubeadm: added support for dry running `kubeadm reset`. The new flag `kubeadm + reset --dry-run` is similar to the existing flag for `kubeadm init/join/upgrade` + and allows you to see what changes would be applied.' diff --git a/releases/release-1.24/release-notes/maps/pr-107516-map.yaml b/releases/release-1.24/release-notes/maps/pr-107516-map.yaml index 15d368165cd..446f9d36d90 100644 --- a/releases/release-1.24/release-notes/maps/pr-107516-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107516-map.yaml @@ -1,4 +1,4 @@ -pr: 107516 -releasenote: - text: Alowed useful inclusion of `-args $prog_args` in KUBE_TEST_ARGS, when doing - `make test-integration`. +pr: 107516 +releasenote: + text: Alowed useful inclusion of `-args $prog_args` in KUBE_TEST_ARGS, when doing + `make test-integration`. diff --git a/releases/release-1.24/release-notes/maps/pr-107527-map.yaml b/releases/release-1.24/release-notes/maps/pr-107527-map.yaml index 72d50cf46c9..b9d41618c11 100644 --- a/releases/release-1.24/release-notes/maps/pr-107527-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107527-map.yaml @@ -1,5 +1,5 @@ -pr: 107527 -releasenote: - text: 'kube-apiserver: the `metadata.selfLink` field can no longer be populated - by kube-apiserver; it was deprecated in 1.16 and has not been populated by default - since 1.20+.' +pr: 107527 +releasenote: + text: 'kube-apiserver: the `metadata.selfLink` field can no longer be populated + by kube-apiserver; it was deprecated in 1.16 and has not been populated by default + since 1.20+.' diff --git a/releases/release-1.24/release-notes/maps/pr-107533-map.yaml b/releases/release-1.24/release-notes/maps/pr-107533-map.yaml index 31f5674f17e..e1d848e1b4e 100644 --- a/releases/release-1.24/release-notes/maps/pr-107533-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107533-map.yaml @@ -1,14 +1,14 @@ -pr: 107533 -releasenote: - text: 'kubeadm: apply `second stage` of the plan to migrate kubeadm away from the - usage of the word `master` in labels and taints. For new clusters, the label `node-role.kubernetes.io/master` - will no longer be added to control plane nodes, only the label `node-role.kubernetes.io/control-plane` - will be added. For clusters that are being upgraded to 1.24 with `kubeadm upgrade - apply`, the command will remove the label `node-role.kubernetes.io/master` from - existing control plane nodes. For new clusters, both the old taint `node-role.kubernetes.io/master:NoSchedule` - and new taint `node-role.kubernetes.io/control-plane:NoSchedule` will be added - to control plane nodes. In release 1.20 (`first stage`), a release note instructed - to preemptively tolerate the new taint. For clusters that are being upgraded to - 1.24 with `kubeadm upgrade apply`, the command will add the new taint `node-role.kubernetes.io/control-plane:NoSchedule` - to existing control plane nodes. Please adapt your infrastructure to these changes. - In 1.25 the old taint `node-role.kubernetes.io/master:NoSchedule` will be removed.' +pr: 107533 +releasenote: + text: 'kubeadm: apply `second stage` of the plan to migrate kubeadm away from the + usage of the word `master` in labels and taints. For new clusters, the label `node-role.kubernetes.io/master` + will no longer be added to control plane nodes, only the label `node-role.kubernetes.io/control-plane` + will be added. For clusters that are being upgraded to 1.24 with `kubeadm upgrade + apply`, the command will remove the label `node-role.kubernetes.io/master` from + existing control plane nodes. For new clusters, both the old taint `node-role.kubernetes.io/master:NoSchedule` + and new taint `node-role.kubernetes.io/control-plane:NoSchedule` will be added + to control plane nodes. In release 1.20 (`first stage`), a release note instructed + to preemptively tolerate the new taint. For clusters that are being upgraded to + 1.24 with `kubeadm upgrade apply`, the command will add the new taint `node-role.kubernetes.io/control-plane:NoSchedule` + to existing control plane nodes. Please adapt your infrastructure to these changes. + In 1.25 the old taint `node-role.kubernetes.io/master:NoSchedule` will be removed.' diff --git a/releases/release-1.24/release-notes/maps/pr-107552-map.yaml b/releases/release-1.24/release-notes/maps/pr-107552-map.yaml index b34a218f07f..07520bf4055 100644 --- a/releases/release-1.24/release-notes/maps/pr-107552-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107552-map.yaml @@ -1,6 +1,6 @@ -pr: 107552 -releasenote: - text: Added an e2e test to verify that the cluster is not vulnerable to CVE-2021-29923 - when using Services with IPs with leading zeros, note that this test is a necessary - but not sufficient condition, all the components in the clusters that consume - IPs addresses from the APIs MUST interpret them as decimal or discard them. +pr: 107552 +releasenote: + text: Added an e2e test to verify that the cluster is not vulnerable to CVE-2021-29923 + when using Services with IPs with leading zeros, note that this test is a necessary + but not sufficient condition, all the components in the clusters that consume + IPs addresses from the APIs MUST interpret them as decimal or discard them. diff --git a/releases/release-1.24/release-notes/maps/pr-107553-map.yaml b/releases/release-1.24/release-notes/maps/pr-107553-map.yaml index 530bcf69b9c..dabd357a08e 100644 --- a/releases/release-1.24/release-notes/maps/pr-107553-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107553-map.yaml @@ -1,4 +1,4 @@ -pr: 107553 -releasenote: - text: The fluentd-elasticsearch addon is no longer included in the cluster directory. - It is available from https://github.com/kubernetes-sigs/instrumentation-addons/tree/master/fluentd-elasticsearch. +pr: 107553 +releasenote: + text: The fluentd-elasticsearch addon is no longer included in the cluster directory. + It is available from https://github.com/kubernetes-sigs/instrumentation-addons/tree/master/fluentd-elasticsearch. diff --git a/releases/release-1.24/release-notes/maps/pr-107554-map.yaml b/releases/release-1.24/release-notes/maps/pr-107554-map.yaml index 11f32a14cf7..daf9816f028 100644 --- a/releases/release-1.24/release-notes/maps/pr-107554-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107554-map.yaml @@ -1,5 +1,5 @@ -pr: 107554 -releasenote: - text: |- - The feature gate was mentioned as `csiMigrationRBD` where it should have been `CSIMigrationRBD` to be in parity with other migration plugins. This release correct the same and keep it as `CSIMigrationRBD`. - users who have configured this feature gate as `csiMigrationRBD` has to reconfigure the same to `CSIMigrationRBD` from this release. +pr: 107554 +releasenote: + text: |- + The feature gate was mentioned as `csiMigrationRBD` where it should have been `CSIMigrationRBD` to be in parity with other migration plugins. This release correct the same and keep it as `CSIMigrationRBD`. + users who have configured this feature gate as `csiMigrationRBD` has to reconfigure the same to `CSIMigrationRBD` from this release. diff --git a/releases/release-1.24/release-notes/maps/pr-107559-map.yaml b/releases/release-1.24/release-notes/maps/pr-107559-map.yaml index 3397a47d749..b9f705743a0 100644 --- a/releases/release-1.24/release-notes/maps/pr-107559-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107559-map.yaml @@ -1,3 +1,3 @@ -pr: 107559 -releasenote: - text: Fixed handling of objects with invalid selectors. +pr: 107559 +releasenote: + text: Fixed handling of objects with invalid selectors. diff --git a/releases/release-1.24/release-notes/maps/pr-107565-map.yaml b/releases/release-1.24/release-notes/maps/pr-107565-map.yaml index 85af8377dde..a2755b7bb17 100644 --- a/releases/release-1.24/release-notes/maps/pr-107565-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107565-map.yaml @@ -1,4 +1,4 @@ -pr: 107565 -releasenote: - text: 'kube-apiserver: when merging lists, Server Side Apply now prefers the order - of the submitted request instead of the existing persisted object.' +pr: 107565 +releasenote: + text: 'kube-apiserver: when merging lists, Server Side Apply now prefers the order + of the submitted request instead of the existing persisted object.' diff --git a/releases/release-1.24/release-notes/maps/pr-107575-map.yaml b/releases/release-1.24/release-notes/maps/pr-107575-map.yaml index cb542573c6b..f464dfe166f 100644 --- a/releases/release-1.24/release-notes/maps/pr-107575-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107575-map.yaml @@ -1,3 +1,3 @@ -pr: 107575 -releasenote: - text: Fixed `azureFile` `volumeID` collision issue in CSI migration. +pr: 107575 +releasenote: + text: Fixed `azureFile` `volumeID` collision issue in CSI migration. diff --git a/releases/release-1.24/release-notes/maps/pr-107604-map.yaml b/releases/release-1.24/release-notes/maps/pr-107604-map.yaml index dfaa08d4f69..f4fa44881a3 100644 --- a/releases/release-1.24/release-notes/maps/pr-107604-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107604-map.yaml @@ -1,3 +1,3 @@ -pr: 107604 -releasenote: - text: Updated cri-tools to [v1.23.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.23.0). +pr: 107604 +releasenote: + text: Updated cri-tools to [v1.23.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.23.0). diff --git a/releases/release-1.24/release-notes/maps/pr-107607-map.yaml b/releases/release-1.24/release-notes/maps/pr-107607-map.yaml index 0061c5e4548..d2fb90649a8 100644 --- a/releases/release-1.24/release-notes/maps/pr-107607-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107607-map.yaml @@ -1,5 +1,5 @@ -pr: 107607 -releasenote: - text: |- - '`build/dependencies.yaml`: remove the dependency on Docker. With the dockershim removal, core Kubernetes no longer - has to track the latest validated version of Docker.' +pr: 107607 +releasenote: + text: |- + '`build/dependencies.yaml`: remove the dependency on Docker. With the dockershim removal, core Kubernetes no longer + has to track the latest validated version of Docker.' diff --git a/releases/release-1.24/release-notes/maps/pr-107612-map.yaml b/releases/release-1.24/release-notes/maps/pr-107612-map.yaml index f61b8717821..bb85995e173 100644 --- a/releases/release-1.24/release-notes/maps/pr-107612-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107612-map.yaml @@ -1,3 +1,3 @@ -pr: 107612 -releasenote: - text: Kubernetes is now built with Golang 1.17.6. +pr: 107612 +releasenote: + text: Kubernetes is now built with Golang 1.17.6. diff --git a/releases/release-1.24/release-notes/maps/pr-107631-map.yaml b/releases/release-1.24/release-notes/maps/pr-107631-map.yaml index 559d996866d..e3dedc0345e 100644 --- a/releases/release-1.24/release-notes/maps/pr-107631-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107631-map.yaml @@ -1,3 +1,3 @@ -pr: 107631 -releasenote: - text: Fix the bug that the outdated services may be sent to the cloud provider +pr: 107631 +releasenote: + text: Fix the bug that the outdated services may be sent to the cloud provider diff --git a/releases/release-1.24/release-notes/maps/pr-107674-map.yaml b/releases/release-1.24/release-notes/maps/pr-107674-map.yaml index 58bd6cb4b4f..b80716ef66d 100644 --- a/releases/release-1.24/release-notes/maps/pr-107674-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107674-map.yaml @@ -1,4 +1,4 @@ -pr: 107674 -releasenote: - text: '`topologySpreadConstraints` includes minDomains` field to limit the minimum - number of topology domains.' +pr: 107674 +releasenote: + text: '`topologySpreadConstraints` includes minDomains` field to limit the minimum + number of topology domains.' diff --git a/releases/release-1.24/release-notes/maps/pr-107681-map.yaml b/releases/release-1.24/release-notes/maps/pr-107681-map.yaml index f1daf7be881..0abed2109fc 100644 --- a/releases/release-1.24/release-notes/maps/pr-107681-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107681-map.yaml @@ -1,3 +1,3 @@ -pr: 107681 -releasenote: - text: mark AzureDisk CSI migration as GA +pr: 107681 +releasenote: + text: mark AzureDisk CSI migration as GA diff --git a/releases/release-1.24/release-notes/maps/pr-107684-map.yaml b/releases/release-1.24/release-notes/maps/pr-107684-map.yaml index e2c1a5e550c..f3ee93a7bd6 100644 --- a/releases/release-1.24/release-notes/maps/pr-107684-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107684-map.yaml @@ -1,4 +1,4 @@ -pr: 107684 -releasenote: - text: kube-proxy doesn't set the sysctl `net.ipv4.conf.all.route_localnet=1` if - no IPv4 loopback address is selected by the `nodePortAddresses` configuration parameter. +pr: 107684 +releasenote: + text: kube-proxy doesn't set the sysctl `net.ipv4.conf.all.route_localnet=1` if + no IPv4 loopback address is selected by the `nodePortAddresses` configuration parameter. diff --git a/releases/release-1.24/release-notes/maps/pr-107686-map.yaml b/releases/release-1.24/release-notes/maps/pr-107686-map.yaml index b2ba54b1d71..98aa405b26a 100644 --- a/releases/release-1.24/release-notes/maps/pr-107686-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107686-map.yaml @@ -1,5 +1,5 @@ -pr: 107686 -releasenote: - text: 'NodeRestriction admission: nodes are now allowed to update PersistentVolumeClaim - status fields `resizeStatus` and `allocatedResources` when the `RecoverVolumeExpansionFailure` - feature is enabled.' +pr: 107686 +releasenote: + text: 'NodeRestriction admission: nodes are now allowed to update PersistentVolumeClaim + status fields `resizeStatus` and `allocatedResources` when the `RecoverVolumeExpansionFailure` + feature is enabled.' diff --git a/releases/release-1.24/release-notes/maps/pr-107688-map.yaml b/releases/release-1.24/release-notes/maps/pr-107688-map.yaml index da23979e242..15747eabcce 100644 --- a/releases/release-1.24/release-notes/maps/pr-107688-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107688-map.yaml @@ -1,4 +1,4 @@ -pr: 107688 -releasenote: - text: 'Fixed a regression in 1.23 that incorrectly pruned data from array items - of a custom resource that set `x-kubernetes-preserve-unknown-fields: true`.' +pr: 107688 +releasenote: + text: 'Fixed a regression in 1.23 that incorrectly pruned data from array items + of a custom resource that set `x-kubernetes-preserve-unknown-fields: true`.' diff --git a/releases/release-1.24/release-notes/maps/pr-107695-map.yaml b/releases/release-1.24/release-notes/maps/pr-107695-map.yaml index 142c28e0086..f4ccb4c095e 100644 --- a/releases/release-1.24/release-notes/maps/pr-107695-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107695-map.yaml @@ -1,3 +1,3 @@ -pr: 107695 -releasenote: - text: Fixed static pod add and removes restarts in certain cases. +pr: 107695 +releasenote: + text: Fixed static pod add and removes restarts in certain cases. diff --git a/releases/release-1.24/release-notes/maps/pr-107725-map.yaml b/releases/release-1.24/release-notes/maps/pr-107725-map.yaml index c6fb90adce2..d833b73ca3d 100644 --- a/releases/release-1.24/release-notes/maps/pr-107725-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107725-map.yaml @@ -1,10 +1,10 @@ -pr: 107725 -releasenote: - text: 'kubeadm: improve the strict parsing of user YAML/JSON configuration files. - Next to printing warnings for unknown and duplicate fields (current state), also - print warnings for fields with incorrect case sensitivity - e.g. `controlPlaneEndpoint` - (valid), `ControlPlaneEndpoint` (invalid). Instead of only printing warnings during - `init` and `join` also print warnings when downloading the ClusterConfiguration, - KubeletConfiguration or KubeProxyConfiguration objects from the cluster. This - can be useful if the user has patched these objects in their respective ConfigMaps - with mistakes.' +pr: 107725 +releasenote: + text: 'kubeadm: improve the strict parsing of user YAML/JSON configuration files. + Next to printing warnings for unknown and duplicate fields (current state), also + print warnings for fields with incorrect case sensitivity - e.g. `controlPlaneEndpoint` + (valid), `ControlPlaneEndpoint` (invalid). Instead of only printing warnings during + `init` and `join` also print warnings when downloading the ClusterConfiguration, + KubeletConfiguration or KubeProxyConfiguration objects from the cluster. This + can be useful if the user has patched these objects in their respective ConfigMaps + with mistakes.' diff --git a/releases/release-1.24/release-notes/maps/pr-107750-map.yaml b/releases/release-1.24/release-notes/maps/pr-107750-map.yaml index f4b5e26380d..6e4860cde89 100644 --- a/releases/release-1.24/release-notes/maps/pr-107750-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107750-map.yaml @@ -1,4 +1,4 @@ -pr: 107750 -releasenote: - text: A node IP provided to kublet via `--node-ip` will now be preferred for when - determining the node's primary IP and using the external cloud provider (CCM). +pr: 107750 +releasenote: + text: A node IP provided to kublet via `--node-ip` will now be preferred for when + determining the node's primary IP and using the external cloud provider (CCM). diff --git a/releases/release-1.24/release-notes/maps/pr-107763-map.yaml b/releases/release-1.24/release-notes/maps/pr-107763-map.yaml index 754f350be11..4cb3d20792a 100644 --- a/releases/release-1.24/release-notes/maps/pr-107763-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107763-map.yaml @@ -1,5 +1,5 @@ -pr: 107763 -releasenote: - text: e2e tests wait for `kube-root-ca.crt` to be populated in namespaces for use - with projected service account tokens, reducing delays starting those test pods - and errors in the logs. +pr: 107763 +releasenote: + text: e2e tests wait for `kube-root-ca.crt` to be populated in namespaces for use + with projected service account tokens, reducing delays starting those test pods + and errors in the logs. diff --git a/releases/release-1.24/release-notes/maps/pr-107775-map.yaml b/releases/release-1.24/release-notes/maps/pr-107775-map.yaml index fb1222b808f..c052fa7bf4b 100644 --- a/releases/release-1.24/release-notes/maps/pr-107775-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107775-map.yaml @@ -1,3 +1,3 @@ -pr: 107775 -releasenote: - text: Added details about preemption in the event for scheduling failed. +pr: 107775 +releasenote: + text: Added details about preemption in the event for scheduling failed. diff --git a/releases/release-1.24/release-notes/maps/pr-107785-map.yaml b/releases/release-1.24/release-notes/maps/pr-107785-map.yaml index 5e666b0d48f..995a4c2610a 100644 --- a/releases/release-1.24/release-notes/maps/pr-107785-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107785-map.yaml @@ -1,4 +1,4 @@ -pr: 107785 -releasenote: - text: 'kubeadm: fixed a bug related to a warning printed if the `KubeletConfiguration` - `resolvConf` field value does not match `/run/systemd/resolve/resolv.conf`' +pr: 107785 +releasenote: + text: 'kubeadm: fixed a bug related to a warning printed if the `KubeletConfiguration` + `resolvConf` field value does not match `/run/systemd/resolve/resolv.conf`' diff --git a/releases/release-1.24/release-notes/maps/pr-107789-map.yaml b/releases/release-1.24/release-notes/maps/pr-107789-map.yaml index b799f1541d8..8a7870903a6 100644 --- a/releases/release-1.24/release-notes/maps/pr-107789-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107789-map.yaml @@ -1,4 +1,4 @@ -pr: 107789 -releasenote: - text: Improved handling of unmount failures when device may be in-use by another - container/process. +pr: 107789 +releasenote: + text: Improved handling of unmount failures when device may be in-use by another + container/process. diff --git a/releases/release-1.24/release-notes/maps/pr-107796-map.yaml b/releases/release-1.24/release-notes/maps/pr-107796-map.yaml index 26cb4425aff..88e76226ef3 100644 --- a/releases/release-1.24/release-notes/maps/pr-107796-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107796-map.yaml @@ -1,9 +1,9 @@ -pr: 107796 -releasenote: - text: |- - Added a path `/header?key=` to `agnhost netexec` allowing one to view what the header value is of the incoming request. - - Ex: - - ```$ curl -H "X-Forwarded-For: something" 172.17.0.2:8080/header?key=X-Forwarded-For - something``` +pr: 107796 +releasenote: + text: |- + Added a path `/header?key=` to `agnhost netexec` allowing one to view what the header value is of the incoming request. + + Ex: + + ```$ curl -H "X-Forwarded-For: something" 172.17.0.2:8080/header?key=X-Forwarded-For + something``` diff --git a/releases/release-1.24/release-notes/maps/pr-107806-map.yaml b/releases/release-1.24/release-notes/maps/pr-107806-map.yaml index 840d5e64805..1a115a7f49c 100644 --- a/releases/release-1.24/release-notes/maps/pr-107806-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107806-map.yaml @@ -1,4 +1,4 @@ -pr: 107806 -releasenote: - text: 'Env var for additional cli flags used in the csi-proxy binary when a Windows - nodepool is created with `kube-up.sh`' +pr: 107806 +releasenote: + text: 'Env var for additional cli flags used in the csi-proxy binary when a Windows + nodepool is created with `kube-up.sh`' diff --git a/releases/release-1.24/release-notes/maps/pr-107845-map.yaml b/releases/release-1.24/release-notes/maps/pr-107845-map.yaml index 1082af7d64c..1ff642c42cd 100644 --- a/releases/release-1.24/release-notes/maps/pr-107845-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107845-map.yaml @@ -1,4 +1,4 @@ -pr: 107845 -releasenote: - text: Failure to start a container cannot accidentally result in the pod being considered - "Succeeded" in the presence of deletion. +pr: 107845 +releasenote: + text: Failure to start a container cannot accidentally result in the pod being considered + "Succeeded" in the presence of deletion. diff --git a/releases/release-1.24/release-notes/maps/pr-107847-map.yaml b/releases/release-1.24/release-notes/maps/pr-107847-map.yaml index 298669c4c70..626a7447299 100644 --- a/releases/release-1.24/release-notes/maps/pr-107847-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107847-map.yaml @@ -1,5 +1,5 @@ -pr: 107847 -releasenote: - text: 'Fixed a regression in 1.23 where update requests to previously persisted - `Service` objects that have not been modified since 1.19 can be rejected with - an incorrect `spec.clusterIPs: Required value` error.' +pr: 107847 +releasenote: + text: 'Fixed a regression in 1.23 where update requests to previously persisted + `Service` objects that have not been modified since 1.19 can be rejected with + an incorrect `spec.clusterIPs: Required value` error.' diff --git a/releases/release-1.24/release-notes/maps/pr-107859-map.yaml b/releases/release-1.24/release-notes/maps/pr-107859-map.yaml index 89d066ede5e..a7f4b561428 100644 --- a/releases/release-1.24/release-notes/maps/pr-107859-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107859-map.yaml @@ -1,3 +1,3 @@ -pr: 107859 -releasenote: - text: Promote IdentifyPodOS feature to beta. +pr: 107859 +releasenote: + text: Promote IdentifyPodOS feature to beta. diff --git a/releases/release-1.24/release-notes/maps/pr-107880-map.yaml b/releases/release-1.24/release-notes/maps/pr-107880-map.yaml index e13bb8bf4e0..6becd874bdf 100644 --- a/releases/release-1.24/release-notes/maps/pr-107880-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107880-map.yaml @@ -1,5 +1,5 @@ -pr: 107880 -releasenote: - text: '`kubectl create token` can now be used to request a service account token, - and permission to request service account tokens is added to the `edit` and `admin` - RBAC roles' +pr: 107880 +releasenote: + text: '`kubectl create token` can now be used to request a service account token, + and permission to request service account tokens is added to the `edit` and `admin` + RBAC roles' diff --git a/releases/release-1.24/release-notes/maps/pr-107900-map.yaml b/releases/release-1.24/release-notes/maps/pr-107900-map.yaml index 4b4c81cb414..a195179a9a0 100644 --- a/releases/release-1.24/release-notes/maps/pr-107900-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107900-map.yaml @@ -1,4 +1,4 @@ -pr: 107900 -releasenote: - text: A static pod that is rapidly updated was failing to start until the Kubelet - was restarted. +pr: 107900 +releasenote: + text: A static pod that is rapidly updated was failing to start until the Kubelet + was restarted. diff --git a/releases/release-1.24/release-notes/maps/pr-107904-map.yaml b/releases/release-1.24/release-notes/maps/pr-107904-map.yaml index 40b6aface98..895b27232f6 100644 --- a/releases/release-1.24/release-notes/maps/pr-107904-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107904-map.yaml @@ -1,5 +1,5 @@ -pr: 107904 -releasenote: - text: The in-tree Azure plugin has been deprecated. The Azure kubelogin plugin serves - as an out-of-tree replacement via the kubectl/client-go credential plugin mechanism. Users - will now see a warning in the logs regarding this deprecation. +pr: 107904 +releasenote: + text: The in-tree Azure plugin has been deprecated. The Azure kubelogin plugin serves + as an out-of-tree replacement via the kubectl/client-go credential plugin mechanism. Users + will now see a warning in the logs regarding this deprecation. diff --git a/releases/release-1.24/release-notes/maps/pr-107921-map.yaml b/releases/release-1.24/release-notes/maps/pr-107921-map.yaml index d58751901fb..47d34ac3691 100644 --- a/releases/release-1.24/release-notes/maps/pr-107921-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107921-map.yaml @@ -1,4 +1,4 @@ -pr: 107921 -releasenote: - text: The output of `kubectl describe ingress` now includes an IngressClass name - if available. +pr: 107921 +releasenote: + text: The output of `kubectl describe ingress` now includes an IngressClass name + if available. diff --git a/releases/release-1.24/release-notes/maps/pr-107956-map.yaml b/releases/release-1.24/release-notes/maps/pr-107956-map.yaml index 5012e465297..dc8bda78c8f 100644 --- a/releases/release-1.24/release-notes/maps/pr-107956-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107956-map.yaml @@ -1,3 +1,3 @@ -pr: 107956 -releasenote: - text: CRD deep copies should no longer contain shallow copies of `JSONSchemaProps.XValidations`. +pr: 107956 +releasenote: + text: CRD deep copies should no longer contain shallow copies of `JSONSchemaProps.XValidations`. diff --git a/releases/release-1.24/release-notes/maps/pr-107963-map.yaml b/releases/release-1.24/release-notes/maps/pr-107963-map.yaml index 5bf4b10094e..c901832e26a 100644 --- a/releases/release-1.24/release-notes/maps/pr-107963-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107963-map.yaml @@ -1,3 +1,3 @@ -pr: 107963 -releasenote: - text: Adds a new Status subresource in Network Policy objects +pr: 107963 +releasenote: + text: Adds a new Status subresource in Network Policy objects diff --git a/releases/release-1.24/release-notes/maps/pr-107967-map.yaml b/releases/release-1.24/release-notes/maps/pr-107967-map.yaml index f1613a2ba08..47b40c3a60b 100644 --- a/releases/release-1.24/release-notes/maps/pr-107967-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107967-map.yaml @@ -1,3 +1,3 @@ -pr: 107967 -releasenote: - text: '`kubectl version` now fails when given extra arguments.' +pr: 107967 +releasenote: + text: '`kubectl version` now fails when given extra arguments.' diff --git a/releases/release-1.24/release-notes/maps/pr-107970-map.yaml b/releases/release-1.24/release-notes/maps/pr-107970-map.yaml index ba6ed2fb49d..e6a27aef134 100644 --- a/releases/release-1.24/release-notes/maps/pr-107970-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107970-map.yaml @@ -1,3 +1,3 @@ -pr: 107970 -releasenote: - text: Fixed OpenAPI serialization of the x-kubernetes-validations field +pr: 107970 +releasenote: + text: Fixed OpenAPI serialization of the x-kubernetes-validations field diff --git a/releases/release-1.24/release-notes/maps/pr-107974-map.yaml b/releases/release-1.24/release-notes/maps/pr-107974-map.yaml index d44e82b6683..58f7c1ad633 100644 --- a/releases/release-1.24/release-notes/maps/pr-107974-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107974-map.yaml @@ -1,3 +1,3 @@ -pr: 107974 -releasenote: - text: The scheduler prints info logs when the extender returned an error. (`--v>5`) +pr: 107974 +releasenote: + text: The scheduler prints info logs when the extender returned an error. (`--v>5`) diff --git a/releases/release-1.24/release-notes/maps/pr-107979-map.yaml b/releases/release-1.24/release-notes/maps/pr-107979-map.yaml index 1866c247ecb..763d3f7eb93 100644 --- a/releases/release-1.24/release-notes/maps/pr-107979-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107979-map.yaml @@ -1,3 +1,3 @@ -pr: 107979 -releasenote: - text: The `.spec.loadBalancerClass` field for Services is now generally available. +pr: 107979 +releasenote: + text: The `.spec.loadBalancerClass` field for Services is now generally available. diff --git a/releases/release-1.24/release-notes/maps/pr-107981-map.yaml b/releases/release-1.24/release-notes/maps/pr-107981-map.yaml index b6646e9106a..61ec176e697 100644 --- a/releases/release-1.24/release-notes/maps/pr-107981-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107981-map.yaml @@ -1,5 +1,5 @@ -pr: 107981 -releasenote: - text: |- - This code change fixes the bug that UDP services would trigger unnecessary LoadBalancer updates. The root cause is that a field not working for non-TCP protocols is considered. - ref: https://github.com/kubernetes-sigs/cloud-provider-azure/pull/1090 +pr: 107981 +releasenote: + text: |- + This code change fixes the bug that UDP services would trigger unnecessary LoadBalancer updates. The root cause is that a field not working for non-TCP protocols is considered. + ref: https://github.com/kubernetes-sigs/cloud-provider-azure/pull/1090 diff --git a/releases/release-1.24/release-notes/maps/pr-107982-map.yaml b/releases/release-1.24/release-notes/maps/pr-107982-map.yaml index d635edc9acf..1fe6ef539ad 100644 --- a/releases/release-1.24/release-notes/maps/pr-107982-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107982-map.yaml @@ -1,4 +1,4 @@ -pr: 107982 -releasenote: - text: 'kubeadm: fixed the bug that `kubeadm certs generate-csr` command does not - remove duplicated SANs' +pr: 107982 +releasenote: + text: 'kubeadm: fixed the bug that `kubeadm certs generate-csr` command does not + remove duplicated SANs' diff --git a/releases/release-1.24/release-notes/maps/pr-107986-map.yaml b/releases/release-1.24/release-notes/maps/pr-107986-map.yaml index fd9639a62e7..e9faf9f106f 100644 --- a/releases/release-1.24/release-notes/maps/pr-107986-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107986-map.yaml @@ -1,3 +1,3 @@ -pr: 107986 -releasenote: - text: Promoted graceful shutdown based on pod priority to beta +pr: 107986 +releasenote: + text: Promoted graceful shutdown based on pod priority to beta diff --git a/releases/release-1.24/release-notes/maps/pr-107997-map.yaml b/releases/release-1.24/release-notes/maps/pr-107997-map.yaml index 9ae99541672..7aa8fd7db70 100644 --- a/releases/release-1.24/release-notes/maps/pr-107997-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-107997-map.yaml @@ -1,4 +1,4 @@ -pr: 107997 -releasenote: - text: Fixes bug in CronJob Controller V2 where it would lose track of jobs upon - job template labels change. +pr: 107997 +releasenote: + text: Fixes bug in CronJob Controller V2 where it would lose track of jobs upon + job template labels change. diff --git a/releases/release-1.24/release-notes/maps/pr-108000-map.yaml b/releases/release-1.24/release-notes/maps/pr-108000-map.yaml index 7e7ab7d6a1b..6918cccc238 100644 --- a/releases/release-1.24/release-notes/maps/pr-108000-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108000-map.yaml @@ -1,5 +1,5 @@ -pr: 108000 -releasenote: - text: Existing InTree AzureFile PVs which don't have a secret namespace defined - will now work properly after enabling CSI migration - the namespace will be obtained - from ClaimRef. +pr: 108000 +releasenote: + text: Existing InTree AzureFile PVs which don't have a secret namespace defined + will now work properly after enabling CSI migration - the namespace will be obtained + from ClaimRef. diff --git a/releases/release-1.24/release-notes/maps/pr-108004-map.yaml b/releases/release-1.24/release-notes/maps/pr-108004-map.yaml index 1a3735688d6..258147fc11c 100644 --- a/releases/release-1.24/release-notes/maps/pr-108004-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108004-map.yaml @@ -1,3 +1,3 @@ -pr: 108004 -releasenote: - text: Add the metric `container_oom_events_total` to kubelet's cAdvisor metric endpoint. +pr: 108004 +releasenote: + text: Add the metric `container_oom_events_total` to kubelet's cAdvisor metric endpoint. diff --git a/releases/release-1.24/release-notes/maps/pr-108013-map.yaml b/releases/release-1.24/release-notes/maps/pr-108013-map.yaml index 83fbb985fb6..4c6800fbf38 100644 --- a/releases/release-1.24/release-notes/maps/pr-108013-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108013-map.yaml @@ -1,4 +1,4 @@ -pr: 108013 -releasenote: - text: CRD writes will generate validation errors if a CEL validation rule references - the identifier `oldSelf` on a part of the schema that does not support it. +pr: 108013 +releasenote: + text: CRD writes will generate validation errors if a CEL validation rule references + the identifier `oldSelf` on a part of the schema that does not support it. diff --git a/releases/release-1.24/release-notes/maps/pr-108016-map.yaml b/releases/release-1.24/release-notes/maps/pr-108016-map.yaml index 9e505fc5d9a..b2cf5e0d7b9 100644 --- a/releases/release-1.24/release-notes/maps/pr-108016-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108016-map.yaml @@ -1,5 +1,5 @@ -pr: 108016 -releasenote: - text: The `v1` version of `LeaderMigrationConfiguration` supports only `leases` - API for leader election. To use formerly supported mechanisms, please continue - using `v1beta1`. +pr: 108016 +releasenote: + text: The `v1` version of `LeaderMigrationConfiguration` supports only `leases` + API for leader election. To use formerly supported mechanisms, please continue + using `v1beta1`. diff --git a/releases/release-1.24/release-notes/maps/pr-108017-map.yaml b/releases/release-1.24/release-notes/maps/pr-108017-map.yaml index d19c55059b9..99a7336bd7c 100644 --- a/releases/release-1.24/release-notes/maps/pr-108017-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108017-map.yaml @@ -1,4 +1,4 @@ -pr: 108017 -releasenote: - text: Add a deprecated cmd flag for the time interval between flushing pods from - unschedulable queue to active queue or backoff queue. +pr: 108017 +releasenote: + text: Add a deprecated cmd flag for the time interval between flushing pods from + unschedulable queue to active queue or backoff queue. diff --git a/releases/release-1.24/release-notes/maps/pr-108020-map.yaml b/releases/release-1.24/release-notes/maps/pr-108020-map.yaml index 42065a16d9a..62fa3b09019 100644 --- a/releases/release-1.24/release-notes/maps/pr-108020-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108020-map.yaml @@ -1,4 +1,4 @@ -pr: 108020 -releasenote: - text: Remove `tolerate-unready-endpoints` annotation in Service deprecated from - 1.11, use `Service.spec.publishNotReadyAddresses` instead. +pr: 108020 +releasenote: + text: Remove `tolerate-unready-endpoints` annotation in Service deprecated from + 1.11, use `Service.spec.publishNotReadyAddresses` instead. diff --git a/releases/release-1.24/release-notes/maps/pr-108027-map.yaml b/releases/release-1.24/release-notes/maps/pr-108027-map.yaml index 5029f9a8510..9ba6fa1072c 100644 --- a/releases/release-1.24/release-notes/maps/pr-108027-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108027-map.yaml @@ -1,11 +1,11 @@ -pr: 108027 -releasenote: - text: 'kubeadm: graduated the `UnversionedKubeletConfigMap` feature gate to Beta - and enabled the feature by default. This implies that 1) for new clusters kubeadm - will start using the `kube-system/kubelet-config` naming scheme for the kubelet - ConfigMap and RBAC rules, instead of the legacy `kubelet-config-x.yy` naming. - 2) during upgrade, kubeadm will only write the new scheme ConfigMap and RBAC objects. - To disable the feature you can pass `UnversionedKubeletConfigMap: false` in the - kubeadm config for new clusters. For upgrade on existing clusters you can also - override the behavior by patching the ClusterConfiguration object in `kube-system/kubeadm-config`. - More details in the associated KEP.' +pr: 108027 +releasenote: + text: 'kubeadm: graduated the `UnversionedKubeletConfigMap` feature gate to Beta + and enabled the feature by default. This implies that 1) for new clusters kubeadm + will start using the `kube-system/kubelet-config` naming scheme for the kubelet + ConfigMap and RBAC rules, instead of the legacy `kubelet-config-x.yy` naming. + 2) during upgrade, kubeadm will only write the new scheme ConfigMap and RBAC objects. + To disable the feature you can pass `UnversionedKubeletConfigMap: false` in the + kubeadm config for new clusters. For upgrade on existing clusters you can also + override the behavior by patching the ClusterConfiguration object in `kube-system/kubeadm-config`. + More details in the associated KEP.' diff --git a/releases/release-1.24/release-notes/maps/pr-108032-map.yaml b/releases/release-1.24/release-notes/maps/pr-108032-map.yaml index 6e7479b5eda..33531ea2c2d 100644 --- a/releases/release-1.24/release-notes/maps/pr-108032-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108032-map.yaml @@ -1,4 +1,4 @@ -pr: 108032 -releasenote: - text: This adds an optional `timeZone` field as part of the CronJob spec to support - running cron jobs in a specific time zone. +pr: 108032 +releasenote: + text: This adds an optional `timeZone` field as part of the CronJob spec to support + running cron jobs in a specific time zone. diff --git a/releases/release-1.24/release-notes/maps/pr-108034-map.yaml b/releases/release-1.24/release-notes/maps/pr-108034-map.yaml index a62563716b8..3674133cb7d 100644 --- a/releases/release-1.24/release-notes/maps/pr-108034-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108034-map.yaml @@ -1,4 +1,4 @@ -pr: 108034 -releasenote: - text: The script `cluster/gce/gci/configure.sh` now supports downloading `crictl` - on ARM64 nodes +pr: 108034 +releasenote: + text: The script `cluster/gce/gci/configure.sh` now supports downloading `crictl` + on ARM64 nodes diff --git a/releases/release-1.24/release-notes/maps/pr-108038-map.yaml b/releases/release-1.24/release-notes/maps/pr-108038-map.yaml index 8573558dd6e..c30b71ac2fd 100644 --- a/releases/release-1.24/release-notes/maps/pr-108038-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108038-map.yaml @@ -1,3 +1,3 @@ -pr: 108038 -releasenote: - text: Removed feature gate `SetHostnameAsFQDN`. +pr: 108038 +releasenote: + text: Removed feature gate `SetHostnameAsFQDN`. diff --git a/releases/release-1.24/release-notes/maps/pr-108045-map.yaml b/releases/release-1.24/release-notes/maps/pr-108045-map.yaml index 9e095c1f7f3..343057fbee0 100644 --- a/releases/release-1.24/release-notes/maps/pr-108045-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108045-map.yaml @@ -1,4 +1,4 @@ -pr: 108045 -releasenote: - text: The `--pod-infra-container-image` kubelet flag is deprecated and will be removed - in future releases +pr: 108045 +releasenote: + text: The `--pod-infra-container-image` kubelet flag is deprecated and will be removed + in future releases diff --git a/releases/release-1.24/release-notes/maps/pr-108052-map.yaml b/releases/release-1.24/release-notes/maps/pr-108052-map.yaml index 6892e3af075..dcbae2822c6 100644 --- a/releases/release-1.24/release-notes/maps/pr-108052-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108052-map.yaml @@ -1,4 +1,4 @@ -pr: 108052 -releasenote: - text: Fixed bug in `TopologyManager` for ensuring aligned allocations on machines - with more than 2 NUMA nodes +pr: 108052 +releasenote: + text: Fixed bug in `TopologyManager` for ensuring aligned allocations on machines + with more than 2 NUMA nodes diff --git a/releases/release-1.24/release-notes/maps/pr-108053-map.yaml b/releases/release-1.24/release-notes/maps/pr-108053-map.yaml index 653a1381130..791f2f56266 100644 --- a/releases/release-1.24/release-notes/maps/pr-108053-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108053-map.yaml @@ -1,3 +1,3 @@ -pr: 108053 -releasenote: - text: kubectl stack traces now only print at verbose `-v=99` and not `-v=6` +pr: 108053 +releasenote: + text: kubectl stack traces now only print at verbose `-v=99` and not `-v=6` diff --git a/releases/release-1.24/release-notes/maps/pr-108059-map.yaml b/releases/release-1.24/release-notes/maps/pr-108059-map.yaml index 4fb2be1e68f..918a23b09fd 100644 --- a/releases/release-1.24/release-notes/maps/pr-108059-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108059-map.yaml @@ -1,3 +1,3 @@ -pr: 108059 -releasenote: - text: '[k8s.io/utils/clock]: IntervalClock is now deprecated in favour of SimpleIntervalClock' +pr: 108059 +releasenote: + text: '[k8s.io/utils/clock]: IntervalClock is now deprecated in favour of SimpleIntervalClock' diff --git a/releases/release-1.24/release-notes/maps/pr-108062-map.yaml b/releases/release-1.24/release-notes/maps/pr-108062-map.yaml index 5a6dbb00821..ce4b6ca081c 100644 --- a/releases/release-1.24/release-notes/maps/pr-108062-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108062-map.yaml @@ -1,4 +1,4 @@ -pr: 108062 -releasenote: - text: 'kube-apiserver: the `--master-count` flag and `--endpoint-reconciler-type=master-count` - reconciler are deprecated in favor of the lease reconciler' +pr: 108062 +releasenote: + text: 'kube-apiserver: the `--master-count` flag and `--endpoint-reconciler-type=master-count` + reconciler are deprecated in favor of the lease reconciler' diff --git a/releases/release-1.24/release-notes/maps/pr-108073-map.yaml b/releases/release-1.24/release-notes/maps/pr-108073-map.yaml index 3969608c5c1..cda55f0eec0 100644 --- a/releases/release-1.24/release-notes/maps/pr-108073-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108073-map.yaml @@ -1,4 +1,4 @@ -pr: 108073 -releasenote: - text: CEL CRD validation expressions may now reference existing object state using - the identifier `oldSelf`. +pr: 108073 +releasenote: + text: CEL CRD validation expressions may now reference existing object state using + the identifier `oldSelf`. diff --git a/releases/release-1.24/release-notes/maps/pr-108078-map.yaml b/releases/release-1.24/release-notes/maps/pr-108078-map.yaml index fbfb7146d51..0c9184091d0 100644 --- a/releases/release-1.24/release-notes/maps/pr-108078-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108078-map.yaml @@ -1,4 +1,4 @@ -pr: 108078 -releasenote: - text: Prevent unnecessary `Endpoints` and `EndpointSlice` updates caused by `Pod - ResourceVersion` change +pr: 108078 +releasenote: + text: Prevent unnecessary `Endpoints` and `EndpointSlice` updates caused by `Pod + ResourceVersion` change diff --git a/releases/release-1.24/release-notes/maps/pr-108091-map.yaml b/releases/release-1.24/release-notes/maps/pr-108091-map.yaml index a64b7df65ad..fb5c6f5db2c 100644 --- a/releases/release-1.24/release-notes/maps/pr-108091-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108091-map.yaml @@ -1,3 +1,3 @@ -pr: 108091 -releasenote: - text: Kubernetes is now built with Golang 1.17.7 +pr: 108091 +releasenote: + text: Kubernetes is now built with Golang 1.17.7 diff --git a/releases/release-1.24/release-notes/maps/pr-108092-map.yaml b/releases/release-1.24/release-notes/maps/pr-108092-map.yaml index 301f4494ea6..dfa0f8d460a 100644 --- a/releases/release-1.24/release-notes/maps/pr-108092-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108092-map.yaml @@ -1,5 +1,5 @@ -pr: 108092 -releasenote: - text: 'kube-apiserver: `--audit-log-version` and `--audit-webhook-version` now only - support the default value of `audit.k8s.io/v1`. The v1alpha1 and v1beta1 audit - log versions, deprecated since 1.13, have been removed.' +pr: 108092 +releasenote: + text: 'kube-apiserver: `--audit-log-version` and `--audit-webhook-version` now only + support the default value of `audit.k8s.io/v1`. The v1alpha1 and v1beta1 audit + log versions, deprecated since 1.13, have been removed.' diff --git a/releases/release-1.24/release-notes/maps/pr-108107-map.yaml b/releases/release-1.24/release-notes/maps/pr-108107-map.yaml index f5d0cdfa809..ffecaba8e9f 100644 --- a/releases/release-1.24/release-notes/maps/pr-108107-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108107-map.yaml @@ -1,6 +1,6 @@ -pr: 108107 -releasenote: - text: The kubelet no longer forcefully closes active connections on heartbeat failures, - using the HTTP2 health check mechanism to detect broken connections. Users can - force the previous behavior of the kubelet by setting the environment variable - DISABLE_HTTP2. +pr: 108107 +releasenote: + text: The kubelet no longer forcefully closes active connections on heartbeat failures, + using the HTTP2 health check mechanism to detect broken connections. Users can + force the previous behavior of the kubelet by setting the environment variable + DISABLE_HTTP2. diff --git a/releases/release-1.24/release-notes/maps/pr-108129-map.yaml b/releases/release-1.24/release-notes/maps/pr-108129-map.yaml index af105da27af..a9ed370077a 100644 --- a/releases/release-1.24/release-notes/maps/pr-108129-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108129-map.yaml @@ -1,4 +1,4 @@ -pr: 108129 -releasenote: - text: Suspend job to GA. The feature gate `SuspendJob` is locked and will be removed - in 1.26. +pr: 108129 +releasenote: + text: Suspend job to GA. The feature gate `SuspendJob` is locked and will be removed + in 1.26. diff --git a/releases/release-1.24/release-notes/maps/pr-108136-map.yaml b/releases/release-1.24/release-notes/maps/pr-108136-map.yaml index aa591ded8c0..2ef87b5d923 100644 --- a/releases/release-1.24/release-notes/maps/pr-108136-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108136-map.yaml @@ -1,5 +1,5 @@ -pr: 108136 -releasenote: - text: pod affinity namespace selector and cross-namespace quota graduated to GA. - The feature gate `PodAffinityNamespaceSelector` is locked and will be removed - in 1.26. +pr: 108136 +releasenote: + text: pod affinity namespace selector and cross-namespace quota graduated to GA. + The feature gate `PodAffinityNamespaceSelector` is locked and will be removed + in 1.26. diff --git a/releases/release-1.24/release-notes/maps/pr-108138-map.yaml b/releases/release-1.24/release-notes/maps/pr-108138-map.yaml index 82e938a35b1..6a510ea89fe 100644 --- a/releases/release-1.24/release-notes/maps/pr-108138-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108138-map.yaml @@ -1,8 +1,8 @@ -pr: 108138 -releasenote: - text: Fixes a regression in v1beta1 PodDisruptionBudget handling of `strategic merge - patch`-type API requests for the `selector` field. Prior to 1.21, these requests - would merge `matchLabels` content and replace `matchExpressions` content. In 1.21, - patch requests touching the `selector` field started replacing the entire selector. - This is consistent with server-side apply and the v1 PodDisruptionBudget behavior, - but should not have been changed for v1beta1. +pr: 108138 +releasenote: + text: Fixes a regression in v1beta1 PodDisruptionBudget handling of `strategic merge + patch`-type API requests for the `selector` field. Prior to 1.21, these requests + would merge `matchLabels` content and replace `matchExpressions` content. In 1.21, + patch requests touching the `selector` field started replacing the entire selector. + This is consistent with server-side apply and the v1 PodDisruptionBudget behavior, + but should not have been changed for v1beta1. diff --git a/releases/release-1.24/release-notes/maps/pr-108146-map.yaml b/releases/release-1.24/release-notes/maps/pr-108146-map.yaml index 7bb06e086ad..b92571aa124 100644 --- a/releases/release-1.24/release-notes/maps/pr-108146-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108146-map.yaml @@ -1,4 +1,4 @@ -pr: 108146 -releasenote: - text: Updating kubelet permissions check for Windows nodes to see if process is - elevated instead of checking if process owner is in Administrators group +pr: 108146 +releasenote: + text: Updating kubelet permissions check for Windows nodes to see if process is + elevated instead of checking if process owner is in Administrators group diff --git a/releases/release-1.24/release-notes/maps/pr-108149-map.yaml b/releases/release-1.24/release-notes/maps/pr-108149-map.yaml index b27a58421a8..212601dde9f 100644 --- a/releases/release-1.24/release-notes/maps/pr-108149-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108149-map.yaml @@ -1,4 +1,4 @@ -pr: 108149 -releasenote: - text: 'fixed: do not return early in the node informer when there is no change of - the topology label.' +pr: 108149 +releasenote: + text: 'fixed: do not return early in the node informer when there is no change of + the topology label.' diff --git a/releases/release-1.24/release-notes/maps/pr-108154-map.yaml b/releases/release-1.24/release-notes/maps/pr-108154-map.yaml index 7746ac33049..762f7175e08 100644 --- a/releases/release-1.24/release-notes/maps/pr-108154-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108154-map.yaml @@ -1,3 +1,3 @@ -pr: 108154 -releasenote: - text: Improved algorithm for selecting `best` non-preferred hint in the TopologyManager +pr: 108154 +releasenote: + text: Improved algorithm for selecting `best` non-preferred hint in the TopologyManager diff --git a/releases/release-1.24/release-notes/maps/pr-108167-map.yaml b/releases/release-1.24/release-notes/maps/pr-108167-map.yaml index 93c3bdae169..4e2483907f7 100644 --- a/releases/release-1.24/release-notes/maps/pr-108167-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108167-map.yaml @@ -1,4 +1,4 @@ -pr: 108167 -releasenote: - text: Fixed a bug in attachdetach controller that didn't properly handle kube-apiserver - errors leading to stuck attachments/detachments. +pr: 108167 +releasenote: + text: Fixed a bug in attachdetach controller that didn't properly handle kube-apiserver + errors leading to stuck attachments/detachments. diff --git a/releases/release-1.24/release-notes/maps/pr-108198-map.yaml b/releases/release-1.24/release-notes/maps/pr-108198-map.yaml index d3f3dbe4a9a..b94f7dcb0ed 100644 --- a/releases/release-1.24/release-notes/maps/pr-108198-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108198-map.yaml @@ -1,4 +1,4 @@ -pr: 108198 -releasenote: - text: Fixed a bug where a partial `EndpointSlice` update could cause node name information - to be dropped from endpoints that were not updated. +pr: 108198 +releasenote: + text: Fixed a bug where a partial `EndpointSlice` update could cause node name information + to be dropped from endpoints that were not updated. diff --git a/releases/release-1.24/release-notes/maps/pr-108209-map.yaml b/releases/release-1.24/release-notes/maps/pr-108209-map.yaml index d1e761b9ba1..78aa9ae7b73 100644 --- a/releases/release-1.24/release-notes/maps/pr-108209-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108209-map.yaml @@ -1,3 +1,3 @@ -pr: 108209 -releasenote: - text: Increase Azure ACR credential provider timeout +pr: 108209 +releasenote: + text: Increase Azure ACR credential provider timeout diff --git a/releases/release-1.24/release-notes/maps/pr-108224-map.yaml b/releases/release-1.24/release-notes/maps/pr-108224-map.yaml index 7c0572300c9..d7d49b4216a 100644 --- a/releases/release-1.24/release-notes/maps/pr-108224-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108224-map.yaml @@ -1,4 +1,4 @@ -pr: 108224 -releasenote: - text: Kube-proxy in iptables mode now only logs the full iptables input at `-v=9` - rather than `-v=5`. +pr: 108224 +releasenote: + text: Kube-proxy in iptables mode now only logs the full iptables input at `-v=9` + rather than `-v=5`. diff --git a/releases/release-1.24/release-notes/maps/pr-108253-map.yaml b/releases/release-1.24/release-notes/maps/pr-108253-map.yaml index 284a2f4ca1f..74d5a429f95 100644 --- a/releases/release-1.24/release-notes/maps/pr-108253-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108253-map.yaml @@ -1,4 +1,4 @@ -pr: 108253 -releasenote: - text: The `e2e.test` binary supports a new `--kubelet-root` parameter to override - the default `/var/lib/kubelet` path. CSI storage tests use this. +pr: 108253 +releasenote: + text: The `e2e.test` binary supports a new `--kubelet-root` parameter to override + the default `/var/lib/kubelet` path. CSI storage tests use this. diff --git a/releases/release-1.24/release-notes/maps/pr-108278-map.yaml b/releases/release-1.24/release-notes/maps/pr-108278-map.yaml index 1d701c399d9..721cde5c902 100644 --- a/releases/release-1.24/release-notes/maps/pr-108278-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108278-map.yaml @@ -1,3 +1,3 @@ -pr: 108278 -releasenote: - text: Feature of `DefaultPodTopologySpread` is graduated to GA +pr: 108278 +releasenote: + text: Feature of `DefaultPodTopologySpread` is graduated to GA diff --git a/releases/release-1.24/release-notes/maps/pr-108290-map.yaml b/releases/release-1.24/release-notes/maps/pr-108290-map.yaml index 871e6b3221f..d9de37cba75 100644 --- a/releases/release-1.24/release-notes/maps/pr-108290-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108290-map.yaml @@ -1,3 +1,3 @@ -pr: 108290 -releasenote: - text: Introduce a v1alpha1 networking API for ClusterCIDRConfig +pr: 108290 +releasenote: + text: Introduce a v1alpha1 networking API for ClusterCIDRConfig diff --git a/releases/release-1.24/release-notes/maps/pr-108296-map.yaml b/releases/release-1.24/release-notes/maps/pr-108296-map.yaml index 8bab34cd180..33a2b59f558 100644 --- a/releases/release-1.24/release-notes/maps/pr-108296-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108296-map.yaml @@ -1,4 +1,4 @@ -pr: 108296 -releasenote: - text: 'client-go: add new histogram metric to record the size of the requests and - responses.' +pr: 108296 +releasenote: + text: 'client-go: add new histogram metric to record the size of the requests and + responses.' diff --git a/releases/release-1.24/release-notes/maps/pr-108309-map.yaml b/releases/release-1.24/release-notes/maps/pr-108309-map.yaml index a9225442aa8..8e2e5bd716c 100644 --- a/releases/release-1.24/release-notes/maps/pr-108309-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108309-map.yaml @@ -1,8 +1,8 @@ -pr: 108309 -releasenote: - text: The `LegacyServiceAccountTokenNoAutoGeneration` feature gate is beta, and - enabled by default. When enabled, Secret API objects containing service account - tokens are no longer auto-generated for every ServiceAccount. Use the [TokenRequest](https://kubernetes.io/docs/reference/kubernetes-api/authentication-resources/token-request-v1/) - API to acquire service account tokens, or if a non-expiring token is required, - create a Secret API object for the token controller to populate with a service - account token by following this [guide](https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets). +pr: 108309 +releasenote: + text: The `LegacyServiceAccountTokenNoAutoGeneration` feature gate is beta, and + enabled by default. When enabled, Secret API objects containing service account + tokens are no longer auto-generated for every ServiceAccount. Use the [TokenRequest](https://kubernetes.io/docs/reference/kubernetes-api/authentication-resources/token-request-v1/) + API to acquire service account tokens, or if a non-expiring token is required, + create a Secret API object for the token controller to populate with a service + account token by following this [guide](https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets). diff --git a/releases/release-1.24/release-notes/maps/pr-108312-map.yaml b/releases/release-1.24/release-notes/maps/pr-108312-map.yaml index e7a5fc47d5d..cc68ee8219a 100644 --- a/releases/release-1.24/release-notes/maps/pr-108312-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108312-map.yaml @@ -1,4 +1,4 @@ -pr: 108312 -releasenote: - text: 'CRD `x-kubernetes-validations` rules now support the CEL functions: `isSorted`, - `sum`, `min`, `max`, `indexOf`, `lastIndexOf`, `find` and `findAll`.' +pr: 108312 +releasenote: + text: 'CRD `x-kubernetes-validations` rules now support the CEL functions: `isSorted`, + `sum`, `min`, `max`, `indexOf`, `lastIndexOf`, `find` and `findAll`.' diff --git a/releases/release-1.24/release-notes/maps/pr-108315-map.yaml b/releases/release-1.24/release-notes/maps/pr-108315-map.yaml index 281c7afbad7..46259774259 100644 --- a/releases/release-1.24/release-notes/maps/pr-108315-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108315-map.yaml @@ -1,4 +1,4 @@ -pr: 108315 -releasenote: - text: 'kubeadm: better surface errors during `kubeadm upgrade` when waiting for - the kubelet to restart static pods on control plane nodes' +pr: 108315 +releasenote: + text: 'kubeadm: better surface errors during `kubeadm upgrade` when waiting for + the kubelet to restart static pods on control plane nodes' diff --git a/releases/release-1.24/release-notes/maps/pr-108341-map.yaml b/releases/release-1.24/release-notes/maps/pr-108341-map.yaml index d0169e76a3e..342dfa35370 100644 --- a/releases/release-1.24/release-notes/maps/pr-108341-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108341-map.yaml @@ -1,3 +1,3 @@ -pr: 108341 -releasenote: - text: '`kube-addon-manager` image version is bumped to 9.1.6' +pr: 108341 +releasenote: + text: '`kube-addon-manager` image version is bumped to 9.1.6' diff --git a/releases/release-1.24/release-notes/maps/pr-108350-map.yaml b/releases/release-1.24/release-notes/maps/pr-108350-map.yaml index cdb67be3dcc..28a016239ae 100644 --- a/releases/release-1.24/release-notes/maps/pr-108350-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108350-map.yaml @@ -1,7 +1,7 @@ -pr: 108350 -releasenote: - text: |- - Changes the kubectl `--validate` flag from a bool to a string that accepts the values {true, strict, warn, false, ignore} - - true/strict - perform validation and error the request on any invalid fields in the ojbect. It will attempt to perform server-side validation if it is enabled on the apiserver, otherwise it will fall back to client-side validation. - - warn - perform server-side validation and warn on any invalid fields (but ultimately let the request succeed by dropping any invalid fields from the object). If validation is not available on the server, perform no validation. - - false/ignore - perform no validation, silently dropping invalid fields from the object. +pr: 108350 +releasenote: + text: |- + Changes the kubectl `--validate` flag from a bool to a string that accepts the values {true, strict, warn, false, ignore} + - true/strict - perform validation and error the request on any invalid fields in the ojbect. It will attempt to perform server-side validation if it is enabled on the apiserver, otherwise it will fall back to client-side validation. + - warn - perform server-side validation and warn on any invalid fields (but ultimately let the request succeed by dropping any invalid fields from the object). If validation is not available on the server, perform no validation. + - false/ignore - perform no validation, silently dropping invalid fields from the object. diff --git a/releases/release-1.24/release-notes/maps/pr-108366-map.yaml b/releases/release-1.24/release-notes/maps/pr-108366-map.yaml index 7ccd81efb18..71b6e27de5b 100644 --- a/releases/release-1.24/release-notes/maps/pr-108366-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108366-map.yaml @@ -1,8 +1,8 @@ -pr: 108366 -releasenote: - text: Fixed a regression that could incorrectly reject pods with `OutOfCpu` errors - if they were rapidly scheduled after other pods were reported as complete in the - API. The Kubelet now waits to report the phase of a pod as terminal in the API - until all running containers are guaranteed to have stopped and no new containers - can be started. Short-lived pods may take slightly longer (~1s) to report Succeeded - or Failed after this change. +pr: 108366 +releasenote: + text: Fixed a regression that could incorrectly reject pods with `OutOfCpu` errors + if they were rapidly scheduled after other pods were reported as complete in the + API. The Kubelet now waits to report the phase of a pod as terminal in the API + until all running containers are guaranteed to have stopped and no new containers + can be started. Short-lived pods may take slightly longer (~1s) to report Succeeded + or Failed after this change. diff --git a/releases/release-1.24/release-notes/maps/pr-108394-map.yaml b/releases/release-1.24/release-notes/maps/pr-108394-map.yaml index 45249555724..35115db4d5c 100644 --- a/releases/release-1.24/release-notes/maps/pr-108394-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108394-map.yaml @@ -1,4 +1,4 @@ -pr: 108394 -releasenote: - text: The `WarningHeaders` feature gate that is GA since v1.22 is unconditionally - enabled, and can no longer be specified via the `--feature-gates` argument. +pr: 108394 +releasenote: + text: The `WarningHeaders` feature gate that is GA since v1.22 is unconditionally + enabled, and can no longer be specified via the `--feature-gates` argument. diff --git a/releases/release-1.24/release-notes/maps/pr-108400-map.yaml b/releases/release-1.24/release-notes/maps/pr-108400-map.yaml index 8ef55f41bed..2950824bb76 100644 --- a/releases/release-1.24/release-notes/maps/pr-108400-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108400-map.yaml @@ -1,3 +1,3 @@ -pr: 108400 -releasenote: - text: Support in-tree PV deletion protection finalizer. +pr: 108400 +releasenote: + text: Support in-tree PV deletion protection finalizer. diff --git a/releases/release-1.24/release-notes/maps/pr-108410-map.yaml b/releases/release-1.24/release-notes/maps/pr-108410-map.yaml index 6eaf4f90ca0..1d847f2273e 100644 --- a/releases/release-1.24/release-notes/maps/pr-108410-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108410-map.yaml @@ -1,4 +1,4 @@ -pr: 108410 -releasenote: - text: 'kubeadm: fixed a bug when using `kubeadm init --dry-run` with certificate authority - files (`ca.key` / `ca.crt`) present in `/etc/kubernetes/pki`)' +pr: 108410 +releasenote: + text: 'kubeadm: fixed a bug when using `kubeadm init --dry-run` with certificate authority + files (`ca.key` / `ca.crt`) present in `/etc/kubernetes/pki`)' diff --git a/releases/release-1.24/release-notes/maps/pr-108423-map.yaml b/releases/release-1.24/release-notes/maps/pr-108423-map.yaml index ff855f7a0dc..09055f07b2e 100644 --- a/releases/release-1.24/release-notes/maps/pr-108423-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108423-map.yaml @@ -1,5 +1,5 @@ -pr: 108423 -releasenote: - text: API server's deprecated `--experimental-encryption-provider-config` flag is - now removed. Adapt your machinery to use the `--encryption-provider-config` flag - that is available since v1.13. +pr: 108423 +releasenote: + text: API server's deprecated `--experimental-encryption-provider-config` flag is + now removed. Adapt your machinery to use the `--encryption-provider-config` flag + that is available since v1.13. diff --git a/releases/release-1.24/release-notes/maps/pr-108429-map.yaml b/releases/release-1.24/release-notes/maps/pr-108429-map.yaml index 492e77b5649..60a946f31aa 100644 --- a/releases/release-1.24/release-notes/maps/pr-108429-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108429-map.yaml @@ -1,3 +1,3 @@ -pr: 108429 -releasenote: - text: Allow KUBE_TEST_REPO_LIST to be a remote url +pr: 108429 +releasenote: + text: Allow KUBE_TEST_REPO_LIST to be a remote url diff --git a/releases/release-1.24/release-notes/maps/pr-108437-map.yaml b/releases/release-1.24/release-notes/maps/pr-108437-map.yaml index daaf7ec2800..8dfb1a3d08c 100644 --- a/releases/release-1.24/release-notes/maps/pr-108437-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108437-map.yaml @@ -1,5 +1,5 @@ -pr: 108437 -releasenote: - text: bump `sigs.k8s.io/apiserver-network-proxy/konnectivity-client@v0.0.30` to - fix a goroutine leak in kube-apiserver when using egress selctor with the gRPC - mode. +pr: 108437 +releasenote: + text: bump `sigs.k8s.io/apiserver-network-proxy/konnectivity-client@v0.0.30` to + fix a goroutine leak in kube-apiserver when using egress selctor with the gRPC + mode. diff --git a/releases/release-1.24/release-notes/maps/pr-108441-map.yaml b/releases/release-1.24/release-notes/maps/pr-108441-map.yaml index 8b1c38848b0..378e8f3ed72 100644 --- a/releases/release-1.24/release-notes/maps/pr-108441-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108441-map.yaml @@ -1,3 +1,3 @@ -pr: 108441 -releasenote: - text: Feature of `PodOverhead` is graduated to GA +pr: 108441 +releasenote: + text: Feature of `PodOverhead` is graduated to GA diff --git a/releases/release-1.24/release-notes/maps/pr-108445-map.yaml b/releases/release-1.24/release-notes/maps/pr-108445-map.yaml index 427e1250862..7cbb707bad0 100644 --- a/releases/release-1.24/release-notes/maps/pr-108445-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108445-map.yaml @@ -1,6 +1,6 @@ -pr: 108445 -releasenote: - text: 'CSIStorageCapacity.storage.k8s.io: The v1beta1 version of this API is deprecated - in favor of v1, and will be removed in v1.27. If a CSI driver supports storage - capacity tracking, then it must get deployed with a release of external-provisioner - that supports the v1 API.' +pr: 108445 +releasenote: + text: 'CSIStorageCapacity.storage.k8s.io: The v1beta1 version of this API is deprecated + in favor of v1, and will be removed in v1.27. If a CSI driver supports storage + capacity tracking, then it must get deployed with a release of external-provisioner + that supports the v1 API.' diff --git a/releases/release-1.24/release-notes/maps/pr-108448-map.yaml b/releases/release-1.24/release-notes/maps/pr-108448-map.yaml index e6d7e82f9bb..efae3dbb438 100644 --- a/releases/release-1.24/release-notes/maps/pr-108448-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108448-map.yaml @@ -1,3 +1,3 @@ -pr: 108448 -releasenote: - text: The API server's deprecated `--deserialization-cache-size` flag is now removed. +pr: 108448 +releasenote: + text: The API server's deprecated `--deserialization-cache-size` flag is now removed. diff --git a/releases/release-1.24/release-notes/maps/pr-108450-map.yaml b/releases/release-1.24/release-notes/maps/pr-108450-map.yaml index d7383d36228..eb0aba6d01f 100644 --- a/releases/release-1.24/release-notes/maps/pr-108450-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108450-map.yaml @@ -1,5 +1,5 @@ -pr: 108450 -releasenote: - text: Endpoints and EndpointSlice controllers no longer populate [resourceVersion - of targetRef](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-reference/#ObjectReference) - in Endpoints and EndpointSlices +pr: 108450 +releasenote: + text: Endpoints and EndpointSlice controllers no longer populate [resourceVersion + of targetRef](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-reference/#ObjectReference) + in Endpoints and EndpointSlices diff --git a/releases/release-1.24/release-notes/maps/pr-108455-map.yaml b/releases/release-1.24/release-notes/maps/pr-108455-map.yaml index 542dccda7b4..0ddc330ce2a 100644 --- a/releases/release-1.24/release-notes/maps/pr-108455-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108455-map.yaml @@ -1,3 +1,3 @@ -pr: 108455 -releasenote: - text: Fix a race in the timeout handler that could lead to kube-apiserver crashes +pr: 108455 +releasenote: + text: Fix a race in the timeout handler that could lead to kube-apiserver crashes diff --git a/releases/release-1.24/release-notes/maps/pr-108457-map.yaml b/releases/release-1.24/release-notes/maps/pr-108457-map.yaml index 79817550f7d..3317ce82417 100644 --- a/releases/release-1.24/release-notes/maps/pr-108457-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108457-map.yaml @@ -1,3 +1,3 @@ -pr: 108457 -releasenote: - text: API server's deprecated `--target-ram-mb` flag is now removed. +pr: 108457 +releasenote: + text: API server's deprecated `--target-ram-mb` flag is now removed. diff --git a/releases/release-1.24/release-notes/maps/pr-108458-map.yaml b/releases/release-1.24/release-notes/maps/pr-108458-map.yaml index d62d2baa36a..dea47030e8c 100644 --- a/releases/release-1.24/release-notes/maps/pr-108458-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108458-map.yaml @@ -1,4 +1,4 @@ -pr: 108458 -releasenote: - text: When invoked with `-list-images`, the `e2e.test` binary now also lists the images - that might be needed for storage tests. +pr: 108458 +releasenote: + text: When invoked with `-list-images`, the `e2e.test` binary now also lists the images + that might be needed for storage tests. diff --git a/releases/release-1.24/release-notes/maps/pr-108482-map.yaml b/releases/release-1.24/release-notes/maps/pr-108482-map.yaml index 4f89e24216d..6b8fe844baf 100644 --- a/releases/release-1.24/release-notes/maps/pr-108482-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108482-map.yaml @@ -1,4 +1,4 @@ -pr: 108482 -releasenote: - text: Added CEL runtime cost calculation into CustomerResource validation. CustomerResource - validation will fail if runtime cost exceeds the budget. +pr: 108482 +releasenote: + text: Added CEL runtime cost calculation into CustomerResource validation. CustomerResource + validation will fail if runtime cost exceeds the budget. diff --git a/releases/release-1.24/release-notes/maps/pr-108486-map.yaml b/releases/release-1.24/release-notes/maps/pr-108486-map.yaml index b32f69ad620..eb0e67ca1a5 100644 --- a/releases/release-1.24/release-notes/maps/pr-108486-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108486-map.yaml @@ -1,3 +1,3 @@ -pr: 108486 -releasenote: - text: Non-graceful node shutdown handling is enabled for stateful workload failovers +pr: 108486 +releasenote: + text: Non-graceful node shutdown handling is enabled for stateful workload failovers diff --git a/releases/release-1.24/release-notes/maps/pr-108493-map.yaml b/releases/release-1.24/release-notes/maps/pr-108493-map.yaml index adc1077899f..23b39a6e9be 100644 --- a/releases/release-1.24/release-notes/maps/pr-108493-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108493-map.yaml @@ -1,6 +1,6 @@ -pr: 108493 -releasenote: - text: |- - kubectl now supports shell completion for the <type>/<name> format for specifying resources. - kubectl now provides shell completion for container names following the `--container/-c` flag of the `exec` command. - kubectl's shell completion now suggests resource types for commands that only apply to pods. +pr: 108493 +releasenote: + text: |- + kubectl now supports shell completion for the <type>/<name> format for specifying resources. + kubectl now provides shell completion for container names following the `--container/-c` flag of the `exec` command. + kubectl's shell completion now suggests resource types for commands that only apply to pods. diff --git a/releases/release-1.24/release-notes/maps/pr-108496-map.yaml b/releases/release-1.24/release-notes/maps/pr-108496-map.yaml index 0c70e484871..de07378eca5 100644 --- a/releases/release-1.24/release-notes/maps/pr-108496-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108496-map.yaml @@ -1,4 +1,4 @@ -pr: 108496 -releasenote: - text: kube-proxy will no longer hold service node ports open on the node. Users - are still advised not to run any listener on node ports range used by kube-proxy. +pr: 108496 +releasenote: + text: kube-proxy will no longer hold service node ports open on the node. Users + are still advised not to run any listener on node ports range used by kube-proxy. diff --git a/releases/release-1.24/release-notes/maps/pr-108505-map.yaml b/releases/release-1.24/release-notes/maps/pr-108505-map.yaml index 5f25ea974d0..210dc162ada 100644 --- a/releases/release-1.24/release-notes/maps/pr-108505-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108505-map.yaml @@ -1,3 +1,3 @@ -pr: 108505 -releasenote: - text: Re-adds response status and headers on verbose kubectl responses +pr: 108505 +releasenote: + text: Re-adds response status and headers on verbose kubectl responses diff --git a/releases/release-1.24/release-notes/maps/pr-108506-map.yaml b/releases/release-1.24/release-notes/maps/pr-108506-map.yaml index c4d75d4eb79..631402ac5a8 100644 --- a/releases/release-1.24/release-notes/maps/pr-108506-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108506-map.yaml @@ -1,4 +1,4 @@ -pr: 108506 -releasenote: - text: print `<default>` as the value in case kubectl describe ingress shows `default-backend:80` - when no default backend is present +pr: 108506 +releasenote: + text: print `<default>` as the value in case kubectl describe ingress shows `default-backend:80` + when no default backend is present diff --git a/releases/release-1.24/release-notes/maps/pr-108522-map.yaml b/releases/release-1.24/release-notes/maps/pr-108522-map.yaml index 11460d01cd7..251d27abad0 100644 --- a/releases/release-1.24/release-notes/maps/pr-108522-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108522-map.yaml @@ -1,4 +1,4 @@ -pr: 108522 -releasenote: - text: Support for gRPC probes is now in beta. GRPCContainerProbe feature gate is - enabled by default. +pr: 108522 +releasenote: + text: Support for gRPC probes is now in beta. GRPCContainerProbe feature gate is + enabled by default. diff --git a/releases/release-1.24/release-notes/maps/pr-108531-map.yaml b/releases/release-1.24/release-notes/maps/pr-108531-map.yaml index 6a7a07ed170..4f620dc2f26 100644 --- a/releases/release-1.24/release-notes/maps/pr-108531-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108531-map.yaml @@ -1,3 +1,3 @@ -pr: 108531 -releasenote: - text: SPDY transport in client-go will no longer follow redirects. +pr: 108531 +releasenote: + text: SPDY transport in client-go will no longer follow redirects. diff --git a/releases/release-1.24/release-notes/maps/pr-108561-map.yaml b/releases/release-1.24/release-notes/maps/pr-108561-map.yaml index 934ec7c4bf0..a55c4b5206f 100644 --- a/releases/release-1.24/release-notes/maps/pr-108561-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108561-map.yaml @@ -1,3 +1,3 @@ -pr: 108561 -releasenote: - text: Added support for `btrfs` resizing +pr: 108561 +releasenote: + text: Added support for `btrfs` resizing diff --git a/releases/release-1.24/release-notes/maps/pr-108611-map.yaml b/releases/release-1.24/release-notes/maps/pr-108611-map.yaml index befde0de7e4..f7f9e6c1338 100644 --- a/releases/release-1.24/release-notes/maps/pr-108611-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108611-map.yaml @@ -1,3 +1,3 @@ -pr: 108611 -releasenote: - text: topology translation of in-tree vSphere volume to vSphere CSI. +pr: 108611 +releasenote: + text: topology translation of in-tree vSphere volume to vSphere CSI. diff --git a/releases/release-1.24/release-notes/maps/pr-108613-map.yaml b/releases/release-1.24/release-notes/maps/pr-108613-map.yaml index e3c362ed206..912e5e5543a 100644 --- a/releases/release-1.24/release-notes/maps/pr-108613-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108613-map.yaml @@ -1,4 +1,4 @@ -pr: 108613 -releasenote: - text: Fixed a bug that out-of-tree plugin is misplaced when using scheduler v1beta3 - config +pr: 108613 +releasenote: + text: Fixed a bug that out-of-tree plugin is misplaced when using scheduler v1beta3 + config diff --git a/releases/release-1.24/release-notes/maps/pr-108614-map.yaml b/releases/release-1.24/release-notes/maps/pr-108614-map.yaml index 64321b961a5..5f3668243e8 100644 --- a/releases/release-1.24/release-notes/maps/pr-108614-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108614-map.yaml @@ -1,3 +1,3 @@ -pr: 108614 -releasenote: - text: Remove support for `node-expansion` between `node-stage` and `node-publish` +pr: 108614 +releasenote: + text: Remove support for `node-expansion` between `node-stage` and `node-publish` diff --git a/releases/release-1.24/release-notes/maps/pr-108616-map.yaml b/releases/release-1.24/release-notes/maps/pr-108616-map.yaml index 9770c7d133a..a5d111e537c 100644 --- a/releases/release-1.24/release-notes/maps/pr-108616-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108616-map.yaml @@ -1,6 +1,6 @@ -pr: 108616 -releasenote: - text: The `client.authentication.k8s.io/v1alpha1` ExecCredential has been removed. - If you are using a client-go credential plugin that relies on the v1alpha1 API - please contact the distributor of your plugin for instructions on how to migrate - to the v1 API. +pr: 108616 +releasenote: + text: The `client.authentication.k8s.io/v1alpha1` ExecCredential has been removed. + If you are using a client-go credential plugin that relies on the v1alpha1 API + please contact the distributor of your plugin for instructions on how to migrate + to the v1 API. diff --git a/releases/release-1.24/release-notes/maps/pr-108617-map.yaml b/releases/release-1.24/release-notes/maps/pr-108617-map.yaml index f4252978ee5..c2394a9237a 100644 --- a/releases/release-1.24/release-notes/maps/pr-108617-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108617-map.yaml @@ -1,5 +1,5 @@ -pr: 108617 -releasenote: - text: CEL regex patterns in x-kubernetes-valiation rules are compiled when CRDs - are created/updated if the pattern is provided as a string constant in the expression. - Any regex compile errors are reported as a CRD create/update validation error. +pr: 108617 +releasenote: + text: CEL regex patterns in x-kubernetes-valiation rules are compiled when CRDs + are created/updated if the pattern is provided as a string constant in the expression. + Any regex compile errors are reported as a CRD create/update validation error. diff --git a/releases/release-1.24/release-notes/maps/pr-108628-map.yaml b/releases/release-1.24/release-notes/maps/pr-108628-map.yaml index 8cac73b2809..c0fddfa1baf 100644 --- a/releases/release-1.24/release-notes/maps/pr-108628-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108628-map.yaml @@ -1,3 +1,3 @@ -pr: 108628 -releasenote: - text: Improved logging when volume times out waiting for attach/detach. +pr: 108628 +releasenote: + text: Improved logging when volume times out waiting for attach/detach. diff --git a/releases/release-1.24/release-notes/maps/pr-108631-map.yaml b/releases/release-1.24/release-notes/maps/pr-108631-map.yaml index e5f4015182f..3fa65ad663d 100644 --- a/releases/release-1.24/release-notes/maps/pr-108631-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108631-map.yaml @@ -1,4 +1,4 @@ -pr: 108631 -releasenote: - text: 'kube-apiserver: removed `apf_fd` from server logs which could contain data - identifying the requesting user' +pr: 108631 +releasenote: + text: 'kube-apiserver: removed `apf_fd` from server logs which could contain data + identifying the requesting user' diff --git a/releases/release-1.24/release-notes/maps/pr-108648-map.yaml b/releases/release-1.24/release-notes/maps/pr-108648-map.yaml index 48be8942ecb..9eda3f2dabf 100644 --- a/releases/release-1.24/release-notes/maps/pr-108648-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108648-map.yaml @@ -1,4 +1,4 @@ -pr: 108648 -releasenote: - text: PreFilter extension in the scheduler framework now returns not only status - but also PreFilterResult +pr: 108648 +releasenote: + text: PreFilter extension in the scheduler framework now returns not only status + but also PreFilterResult diff --git a/releases/release-1.24/release-notes/maps/pr-108662-map.yaml b/releases/release-1.24/release-notes/maps/pr-108662-map.yaml index 58d9cb49b8d..e324b7c0a45 100644 --- a/releases/release-1.24/release-notes/maps/pr-108662-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108662-map.yaml @@ -1,3 +1,3 @@ -pr: 108662 -releasenote: - text: Fix to allow `fsGroup` to be applied for CSI Inline Volumes +pr: 108662 +releasenote: + text: Fix to allow `fsGroup` to be applied for CSI Inline Volumes diff --git a/releases/release-1.24/release-notes/maps/pr-108691-map.yaml b/releases/release-1.24/release-notes/maps/pr-108691-map.yaml index fa7c75de707..80a38c04037 100644 --- a/releases/release-1.24/release-notes/maps/pr-108691-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108691-map.yaml @@ -1,4 +1,4 @@ -pr: 108691 -releasenote: - text: Apply ProxyTerminatingEndpoints to all traffic policies (external, internal, - cluster, local). +pr: 108691 +releasenote: + text: Apply ProxyTerminatingEndpoints to all traffic policies (external, internal, + cluster, local). diff --git a/releases/release-1.24/release-notes/maps/pr-108693-map.yaml b/releases/release-1.24/release-notes/maps/pr-108693-map.yaml index e3d974b534d..3a2bc89e5c1 100644 --- a/releases/release-1.24/release-notes/maps/pr-108693-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108693-map.yaml @@ -1,3 +1,3 @@ -pr: 108693 -releasenote: - text: Call `NodeExpand` on all nodes in case of RWX volumes +pr: 108693 +releasenote: + text: Call `NodeExpand` on all nodes in case of RWX volumes diff --git a/releases/release-1.24/release-notes/maps/pr-108701-map.yaml b/releases/release-1.24/release-notes/maps/pr-108701-map.yaml index a8e5e1e44de..d1044630b4c 100644 --- a/releases/release-1.24/release-notes/maps/pr-108701-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108701-map.yaml @@ -1,3 +1,3 @@ -pr: 108701 -releasenote: - text: Added PreemptionPolicy in PriorityClass describe +pr: 108701 +releasenote: + text: Added PreemptionPolicy in PriorityClass describe diff --git a/releases/release-1.24/release-notes/maps/pr-108717-map.yaml b/releases/release-1.24/release-notes/maps/pr-108717-map.yaml index 18c9f601ad6..27f5647d0d7 100644 --- a/releases/release-1.24/release-notes/maps/pr-108717-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108717-map.yaml @@ -1,6 +1,6 @@ -pr: 108717 -releasenote: - text: The metadata.clusterName field is deprecated. This field has always been unwritable - and always blank, but its presence is confusing, so we will remove it next release. - Out of an abundance of caution, this release we have merely changed the name in - the go struct to ensure any accidental client uses are found before complete removal. +pr: 108717 +releasenote: + text: The metadata.clusterName field is deprecated. This field has always been unwritable + and always blank, but its presence is confusing, so we will remove it next release. + Out of an abundance of caution, this release we have merely changed the name in + the go struct to ensure any accidental client uses are found before complete removal. diff --git a/releases/release-1.24/release-notes/maps/pr-108724-map.yaml b/releases/release-1.24/release-notes/maps/pr-108724-map.yaml index e859a8de9b4..700de218c96 100644 --- a/releases/release-1.24/release-notes/maps/pr-108724-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108724-map.yaml @@ -1,3 +1,3 @@ -pr: 108724 -releasenote: - text: CycleState is now optimized for "write once and read many times". +pr: 108724 +releasenote: + text: CycleState is now optimized for "write once and read many times". diff --git a/releases/release-1.24/release-notes/maps/pr-108736-map.yaml b/releases/release-1.24/release-notes/maps/pr-108736-map.yaml index ff65e9674f9..73b67862abd 100644 --- a/releases/release-1.24/release-notes/maps/pr-108736-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108736-map.yaml @@ -1,5 +1,5 @@ -pr: 108736 -releasenote: - text: The AnyVolumeDataSource feature is now beta, and the feature gate is enabled - by default. In order to provide user feedback on PVCs with data sources, deployers - must install the VolumePopulators CRD and the data-source-validator controller. +pr: 108736 +releasenote: + text: The AnyVolumeDataSource feature is now beta, and the feature gate is enabled + by default. In order to provide user feedback on PVCs with data sources, deployers + must install the VolumePopulators CRD and the data-source-validator controller. diff --git a/releases/release-1.24/release-notes/maps/pr-108747-map.yaml b/releases/release-1.24/release-notes/maps/pr-108747-map.yaml index e9b80f2cad2..ac600d78c06 100644 --- a/releases/release-1.24/release-notes/maps/pr-108747-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108747-map.yaml @@ -1,5 +1,5 @@ -pr: 108747 -releasenote: - text: The `TopologyAwareHints` feature gate is now enabled by default. This will - allow users to opt-in to Topology Aware Hints by setting the `service.kubernetes.io/topology-aware-hints` - on a Service. This will not affect any Services without that annotation set. +pr: 108747 +releasenote: + text: The `TopologyAwareHints` feature gate is now enabled by default. This will + allow users to opt-in to Topology Aware Hints by setting the `service.kubernetes.io/topology-aware-hints` + on a Service. This will not affect any Services without that annotation set. diff --git a/releases/release-1.24/release-notes/maps/pr-108748-map.yaml b/releases/release-1.24/release-notes/maps/pr-108748-map.yaml index 6d623a51b55..8a2ac958f66 100644 --- a/releases/release-1.24/release-notes/maps/pr-108748-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108748-map.yaml @@ -1,3 +1,3 @@ -pr: 108748 -releasenote: - text: fixed `--retries` functionality for negative values in `kubectl cp` +pr: 108748 +releasenote: + text: fixed `--retries` functionality for negative values in `kubectl cp` diff --git a/releases/release-1.24/release-notes/maps/pr-108752-map.yaml b/releases/release-1.24/release-notes/maps/pr-108752-map.yaml index ec8947a190e..b43de90279a 100644 --- a/releases/release-1.24/release-notes/maps/pr-108752-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108752-map.yaml @@ -1,4 +1,4 @@ -pr: 108752 -releasenote: - text: Fix issue where the job controller might not remove the job tracking finalizer - from pods when deleting a job, or when the pod is orphan +pr: 108752 +releasenote: + text: Fix issue where the job controller might not remove the job tracking finalizer + from pods when deleting a job, or when the pod is orphan diff --git a/releases/release-1.24/release-notes/maps/pr-108758-map.yaml b/releases/release-1.24/release-notes/maps/pr-108758-map.yaml index 43ca781b4bf..d07af7a3c47 100644 --- a/releases/release-1.24/release-notes/maps/pr-108758-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108758-map.yaml @@ -1,4 +1,4 @@ -pr: 108758 -releasenote: - text: add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state - to kubelet +pr: 108758 +releasenote: + text: add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state + to kubelet diff --git a/releases/release-1.24/release-notes/maps/pr-108761-map.yaml b/releases/release-1.24/release-notes/maps/pr-108761-map.yaml index a81de7ee0cd..2336b6c8824 100644 --- a/releases/release-1.24/release-notes/maps/pr-108761-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108761-map.yaml @@ -1,3 +1,3 @@ -pr: 108761 -releasenote: - text: Set `PodMaxUnschedulableQDuration` as 5 min. +pr: 108761 +releasenote: + text: Set `PodMaxUnschedulableQDuration` as 5 min. diff --git a/releases/release-1.24/release-notes/maps/pr-108769-map.yaml b/releases/release-1.24/release-notes/maps/pr-108769-map.yaml index 64d9fe443ac..2bd7c255b95 100644 --- a/releases/release-1.24/release-notes/maps/pr-108769-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108769-map.yaml @@ -1,4 +1,4 @@ -pr: 108769 -releasenote: - text: 'kubeadm: fixed a bug where Windows nodes fail to join an IPv6 cluster due to - preflight errors' +pr: 108769 +releasenote: + text: 'kubeadm: fixed a bug where Windows nodes fail to join an IPv6 cluster due to + preflight errors' diff --git a/releases/release-1.24/release-notes/maps/pr-108772-map.yaml b/releases/release-1.24/release-notes/maps/pr-108772-map.yaml index 675b0cf96ed..91211de45cb 100644 --- a/releases/release-1.24/release-notes/maps/pr-108772-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108772-map.yaml @@ -1,4 +1,4 @@ -pr: 108772 -releasenote: - text: 'bug: client-go clientset was not defaulting to the user agent, and was using - the default golang agent for all the requests.' +pr: 108772 +releasenote: + text: 'bug: client-go clientset was not defaulting to the user agent, and was using + the default golang agent for all the requests.' diff --git a/releases/release-1.24/release-notes/maps/pr-108782-map.yaml b/releases/release-1.24/release-notes/maps/pr-108782-map.yaml index 4b1c0ad59a1..044466318a7 100644 --- a/releases/release-1.24/release-notes/maps/pr-108782-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108782-map.yaml @@ -1,5 +1,5 @@ -pr: 108782 -releasenote: - text: The CertificateSigningRequest `spec.expirationSeconds` API field has graduated - to GA. The `CSRDuration` feature gate for the field is now unconditionally enabled - and will be removed in 1.26. +pr: 108782 +releasenote: + text: The CertificateSigningRequest `spec.expirationSeconds` API field has graduated + to GA. The `CSRDuration` feature gate for the field is now unconditionally enabled + and will be removed in 1.26. diff --git a/releases/release-1.24/release-notes/maps/pr-108817-map.yaml b/releases/release-1.24/release-notes/maps/pr-108817-map.yaml index 1102c164835..df535154774 100644 --- a/releases/release-1.24/release-notes/maps/pr-108817-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108817-map.yaml @@ -1,3 +1,3 @@ -pr: 108817 -releasenote: - text: '`kubectl version` now includes information on the embedded version of Kustomize' +pr: 108817 +releasenote: + text: '`kubectl version` now includes information on the embedded version of Kustomize' diff --git a/releases/release-1.24/release-notes/maps/pr-108820-map.yaml b/releases/release-1.24/release-notes/maps/pr-108820-map.yaml index ebb94455d28..353144d1dd4 100644 --- a/releases/release-1.24/release-notes/maps/pr-108820-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108820-map.yaml @@ -1,4 +1,4 @@ -pr: 108820 -releasenote: - text: Remove deprecated `--serviceaccount`, `--hostport`, `--requests` and `--limits` - from kubectl run. +pr: 108820 +releasenote: + text: Remove deprecated `--serviceaccount`, `--hostport`, `--requests` and `--limits` + from kubectl run. diff --git a/releases/release-1.24/release-notes/maps/pr-108829-map.yaml b/releases/release-1.24/release-notes/maps/pr-108829-map.yaml index 865112f75a5..7503515645a 100644 --- a/releases/release-1.24/release-notes/maps/pr-108829-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108829-map.yaml @@ -1,3 +1,3 @@ -pr: 108829 -releasenote: - text: The scheduler framework option `runAllFilters` is removed. +pr: 108829 +releasenote: + text: The scheduler framework option `runAllFilters` is removed. diff --git a/releases/release-1.24/release-notes/maps/pr-108831-map.yaml b/releases/release-1.24/release-notes/maps/pr-108831-map.yaml index de268b21062..c1df5b7179a 100644 --- a/releases/release-1.24/release-notes/maps/pr-108831-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108831-map.yaml @@ -1,3 +1,3 @@ -pr: 108831 -releasenote: - text: Skip re-allocate logic if pod is already removed to avoid panic +pr: 108831 +releasenote: + text: Skip re-allocate logic if pod is already removed to avoid panic diff --git a/releases/release-1.24/release-notes/maps/pr-108847-map.yaml b/releases/release-1.24/release-notes/maps/pr-108847-map.yaml index 1b6d73f5f6c..c523a7a6af8 100644 --- a/releases/release-1.24/release-notes/maps/pr-108847-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108847-map.yaml @@ -1,5 +1,5 @@ -pr: 108847 -releasenote: - text: Kubelet external Credential Provider feature is moved to Beta. Credential - Provider Plugin and Credential Provider Config API's updated from v1alpha1 to - v1beta1 with no API changes. +pr: 108847 +releasenote: + text: Kubelet external Credential Provider feature is moved to Beta. Credential + Provider Plugin and Credential Provider Config API's updated from v1alpha1 to + v1beta1 with no API changes. diff --git a/releases/release-1.24/release-notes/maps/pr-108859-map.yaml b/releases/release-1.24/release-notes/maps/pr-108859-map.yaml index 7158ebe90af..ed440073675 100644 --- a/releases/release-1.24/release-notes/maps/pr-108859-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108859-map.yaml @@ -1,4 +1,4 @@ -pr: 108859 -releasenote: - text: Skip x-kubernetes-validations rules if having fundamental error against the - OpenAPIv3 schema. +pr: 108859 +releasenote: + text: Skip x-kubernetes-validations rules if having fundamental error against the + OpenAPIv3 schema. diff --git a/releases/release-1.24/release-notes/maps/pr-108870-map.yaml b/releases/release-1.24/release-notes/maps/pr-108870-map.yaml index dcbd7ad64cd..2cbdba9fbdc 100644 --- a/releases/release-1.24/release-notes/maps/pr-108870-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108870-map.yaml @@ -1,10 +1,10 @@ -pr: 108870 -releasenote: - text: Kubernetes 1.24 bumped version of golang it is compiled with to go1.18, which - introduced significant changes to its garbage collection algorithm. As a result, - we observed an increase in memory usage for kube-apiserver in larger an heavily - loaded clusters up to ~25% (with the benefit of API call latencies drop by up - to 10x on 99th percentiles). If the memory increase is not acceptable for you - you can mitigate by setting GOGC env variable (for our tests using GOGC=63 brings - memory usage back to original value, although the exact value may depend on usage - patterns on your cluster). +pr: 108870 +releasenote: + text: Kubernetes 1.24 bumped version of golang it is compiled with to go1.18, which + introduced significant changes to its garbage collection algorithm. As a result, + we observed an increase in memory usage for kube-apiserver in larger an heavily + loaded clusters up to ~25% (with the benefit of API call latencies drop by up + to 10x on 99th percentiles). If the memory increase is not acceptable for you + you can mitigate by setting GOGC env variable (for our tests using GOGC=63 brings + memory usage back to original value, although the exact value may depend on usage + patterns on your cluster). diff --git a/releases/release-1.24/release-notes/maps/pr-108889-map.yaml b/releases/release-1.24/release-notes/maps/pr-108889-map.yaml index 70fb54b4505..2fa4ed4372f 100644 --- a/releases/release-1.24/release-notes/maps/pr-108889-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108889-map.yaml @@ -1,5 +1,5 @@ -pr: 108889 -releasenote: - text: The `ServerSideFieldValidation` feature has graduated to beta and is now enabled - by default. Kubectl 1.24 and newer will use server-side validation instead of - client-side validation when writing to API servers with the feature enabled. +pr: 108889 +releasenote: + text: The `ServerSideFieldValidation` feature has graduated to beta and is now enabled + by default. Kubectl 1.24 and newer will use server-side validation instead of + client-side validation when writing to API servers with the feature enabled. diff --git a/releases/release-1.24/release-notes/maps/pr-108898-map.yaml b/releases/release-1.24/release-notes/maps/pr-108898-map.yaml index 82b46b79022..32351d4fe98 100644 --- a/releases/release-1.24/release-notes/maps/pr-108898-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108898-map.yaml @@ -1,3 +1,3 @@ -pr: 108898 -releasenote: - text: OpenAPI definitions served by kube-apiserver now include enum types by default. +pr: 108898 +releasenote: + text: OpenAPI definitions served by kube-apiserver now include enum types by default. diff --git a/releases/release-1.24/release-notes/maps/pr-108919-map.yaml b/releases/release-1.24/release-notes/maps/pr-108919-map.yaml index 9c1b64fc439..635724392a6 100644 --- a/releases/release-1.24/release-notes/maps/pr-108919-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108919-map.yaml @@ -1,3 +1,3 @@ -pr: 108919 -releasenote: - text: Rename unschedulableQ to unschedulablePods +pr: 108919 +releasenote: + text: Rename unschedulableQ to unschedulablePods diff --git a/releases/release-1.24/release-notes/maps/pr-108927-map.yaml b/releases/release-1.24/release-notes/maps/pr-108927-map.yaml index a26fb4a8088..2011f04ff96 100644 --- a/releases/release-1.24/release-notes/maps/pr-108927-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108927-map.yaml @@ -1,3 +1,3 @@ -pr: 108927 -releasenote: - text: Record requests rejected with 429 in the apiserver_request_total metric +pr: 108927 +releasenote: + text: Record requests rejected with 429 in the apiserver_request_total metric diff --git a/releases/release-1.24/release-notes/maps/pr-108929-map.yaml b/releases/release-1.24/release-notes/maps/pr-108929-map.yaml index c8c486d22dd..031ba5f0c19 100644 --- a/releases/release-1.24/release-notes/maps/pr-108929-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108929-map.yaml @@ -1,3 +1,3 @@ -pr: 108929 -releasenote: - text: Move volume expansion feature to GA +pr: 108929 +releasenote: + text: Move volume expansion feature to GA diff --git a/releases/release-1.24/release-notes/maps/pr-108930-map.yaml b/releases/release-1.24/release-notes/maps/pr-108930-map.yaml index 7b15190eb7e..96b3a4107fe 100644 --- a/releases/release-1.24/release-notes/maps/pr-108930-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108930-map.yaml @@ -1,5 +1,5 @@ -pr: 108930 -releasenote: - text: Introduction of a new "sync_proxy_rules_no_local_endpoints_total" proxy metric. - This metric represents the number of services with no internal endpoints. The - "traffic_policy" label will contain both "internal" or "external". +pr: 108930 +releasenote: + text: Introduction of a new "sync_proxy_rules_no_local_endpoints_total" proxy metric. + This metric represents the number of services with no internal endpoints. The + "traffic_policy" label will contain both "internal" or "external". diff --git a/releases/release-1.24/release-notes/maps/pr-108953-map.yaml b/releases/release-1.24/release-notes/maps/pr-108953-map.yaml index 0bf6f470133..821e520028c 100644 --- a/releases/release-1.24/release-notes/maps/pr-108953-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108953-map.yaml @@ -1,4 +1,4 @@ -pr: 108953 -releasenote: - text: Remove insecure serving configuration from cloud-provider package, which is - consumed by cloud-controller-managers. +pr: 108953 +releasenote: + text: Remove insecure serving configuration from cloud-provider package, which is + consumed by cloud-controller-managers. diff --git a/releases/release-1.24/release-notes/maps/pr-108987-map.yaml b/releases/release-1.24/release-notes/maps/pr-108987-map.yaml index 8040cf1505c..d26da3aa520 100644 --- a/releases/release-1.24/release-notes/maps/pr-108987-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108987-map.yaml @@ -1,4 +1,4 @@ -pr: 108987 -releasenote: - text: Deprecate kubectl version long output, will be replaced with kubectl version - ` --short`. Users requiring full output should use `--output=yaml|json` instead. +pr: 108987 +releasenote: + text: Deprecate kubectl version long output, will be replaced with kubectl version + ` --short`. Users requiring full output should use `--output=yaml|json` instead. diff --git a/releases/release-1.24/release-notes/maps/pr-108988-map.yaml b/releases/release-1.24/release-notes/maps/pr-108988-map.yaml index 4b667e5c992..5f717084561 100644 --- a/releases/release-1.24/release-notes/maps/pr-108988-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108988-map.yaml @@ -1,3 +1,3 @@ -pr: 108988 -releasenote: - text: update the k8s.io/system-validators library to v1.7.0 +pr: 108988 +releasenote: + text: update the k8s.io/system-validators library to v1.7.0 diff --git a/releases/release-1.24/release-notes/maps/pr-108992-map.yaml b/releases/release-1.24/release-notes/maps/pr-108992-map.yaml index f47db322d0b..a511bd00d9d 100644 --- a/releases/release-1.24/release-notes/maps/pr-108992-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108992-map.yaml @@ -1,4 +1,4 @@ -pr: 108992 -releasenote: - text: Adds `OpenAPIV3SchemaInterface` to `DiscoveryClient` and its variants for - fetching OpenAPI v3 schema documents. +pr: 108992 +releasenote: + text: Adds `OpenAPIV3SchemaInterface` to `DiscoveryClient` and its variants for + fetching OpenAPI v3 schema documents. diff --git a/releases/release-1.24/release-notes/maps/pr-108994-map.yaml b/releases/release-1.24/release-notes/maps/pr-108994-map.yaml index a92f201df44..0780d9c825f 100644 --- a/releases/release-1.24/release-notes/maps/pr-108994-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108994-map.yaml @@ -1,3 +1,3 @@ -pr: 108994 -releasenote: - text: Updates `kubectl kustomize` and `kubectl apply -k` to Kustomize v4.5.4 +pr: 108994 +releasenote: + text: Updates `kubectl kustomize` and `kubectl apply -k` to Kustomize v4.5.4 diff --git a/releases/release-1.24/release-notes/maps/pr-108995-map.yaml b/releases/release-1.24/release-notes/maps/pr-108995-map.yaml index 8d76047a47a..30e109a5f4d 100644 --- a/releases/release-1.24/release-notes/maps/pr-108995-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-108995-map.yaml @@ -1,4 +1,4 @@ -pr: 108995 -releasenote: - text: The infrastructure for contextual logging is complete (feature gate implemented, - JSON backend ready). +pr: 108995 +releasenote: + text: The infrastructure for contextual logging is complete (feature gate implemented, + JSON backend ready). diff --git a/releases/release-1.24/release-notes/maps/pr-109018-map.yaml b/releases/release-1.24/release-notes/maps/pr-109018-map.yaml index eec98078afc..f7b7b538bc6 100644 --- a/releases/release-1.24/release-notes/maps/pr-109018-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109018-map.yaml @@ -1,4 +1,4 @@ -pr: 109018 -releasenote: - text: Deprecate apiserver_dropped_requests_total metric. The same data can be read - from apiserver_request_terminations_total metric. +pr: 109018 +releasenote: + text: Deprecate apiserver_dropped_requests_total metric. The same data can be read + from apiserver_request_terminations_total metric. diff --git a/releases/release-1.24/release-notes/maps/pr-109019-map.yaml b/releases/release-1.24/release-notes/maps/pr-109019-map.yaml index bf8b7f671d7..563deacd9e5 100644 --- a/releases/release-1.24/release-notes/maps/pr-109019-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109019-map.yaml @@ -1,4 +1,4 @@ -pr: 109019 -releasenote: - text: Custom resource requests with `fieldValidation=Strict` consistently require - `apiVersion` and `kind`, matching non-strict requests +pr: 109019 +releasenote: + text: Custom resource requests with `fieldValidation=Strict` consistently require + `apiVersion` and `kind`, matching non-strict requests diff --git a/releases/release-1.24/release-notes/maps/pr-109024-map.yaml b/releases/release-1.24/release-notes/maps/pr-109024-map.yaml index cc296ff6aef..8e353fb9cce 100644 --- a/releases/release-1.24/release-notes/maps/pr-109024-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109024-map.yaml @@ -1,5 +1,5 @@ -pr: 109024 -releasenote: - text: Kubernetes 1.24 is built with go1.18, which will no longer validate certificates - signed with a SHA-1 hash algorithm by default. See https://golang.org/doc/go1.18#sha1 - for more details. If you are using certificates like this in admission or conversion +pr: 109024 +releasenote: + text: Kubernetes 1.24 is built with go1.18, which will no longer validate certificates + signed with a SHA-1 hash algorithm by default. See https://golang.org/doc/go1.18#sha1 + for more details. If you are using certificates like this in admission or conversion diff --git a/releases/release-1.24/release-notes/maps/pr-109029-map.yaml b/releases/release-1.24/release-notes/maps/pr-109029-map.yaml index cb9a3a3cdb7..462af27d6f1 100644 --- a/releases/release-1.24/release-notes/maps/pr-109029-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109029-map.yaml @@ -1,3 +1,3 @@ -pr: 109029 -releasenote: - text: Updated runc to 1.1.0 and updated cadvisor to 0.44.0 +pr: 109029 +releasenote: + text: Updated runc to 1.1.0 and updated cadvisor to 0.44.0 diff --git a/releases/release-1.24/release-notes/maps/pr-109031-map.yaml b/releases/release-1.24/release-notes/maps/pr-109031-map.yaml index 07cd265e8a1..558f3e1084d 100644 --- a/releases/release-1.24/release-notes/maps/pr-109031-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109031-map.yaml @@ -1,3 +1,3 @@ -pr: 109031 -releasenote: - text: OpenAPI V3 is turned on by default +pr: 109031 +releasenote: + text: OpenAPI V3 is turned on by default diff --git a/releases/release-1.24/release-notes/maps/pr-109035-map.yaml b/releases/release-1.24/release-notes/maps/pr-109035-map.yaml index 6d6feeb4653..fd4729efb71 100644 --- a/releases/release-1.24/release-notes/maps/pr-109035-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109035-map.yaml @@ -1,3 +1,3 @@ -pr: 109035 -releasenote: - text: Enabled beta feature HonorPVReclaimPolicy by default. +pr: 109035 +releasenote: + text: Enabled beta feature HonorPVReclaimPolicy by default. diff --git a/releases/release-1.24/release-notes/maps/pr-109050-map.yaml b/releases/release-1.24/release-notes/maps/pr-109050-map.yaml index 0222298b1f4..a9847592d6d 100644 --- a/releases/release-1.24/release-notes/maps/pr-109050-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109050-map.yaml @@ -1,4 +1,4 @@ -pr: 109050 -releasenote: - text: 'client-go: if resetting the body fails before a retry, an error is now surfaced - to the user.' +pr: 109050 +releasenote: + text: 'client-go: if resetting the body fails before a retry, an error is now surfaced + to the user.' diff --git a/releases/release-1.24/release-notes/maps/pr-109059-map.yaml b/releases/release-1.24/release-notes/maps/pr-109059-map.yaml index 94ac1205a20..0aa5db9e5be 100644 --- a/releases/release-1.24/release-notes/maps/pr-109059-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109059-map.yaml @@ -1,8 +1,8 @@ -pr: 109059 -releasenote: - text: |- - The kubelet now creates an iptables chain named `KUBE-IPTABLES-HINT` in - the `mangle` table. Containerized components that need to modify iptables - rules in the host network namespace can use the existence of this chain - to more-reliably determine whether the system is using iptables-legacy or - iptables-nft. +pr: 109059 +releasenote: + text: |- + The kubelet now creates an iptables chain named `KUBE-IPTABLES-HINT` in + the `mangle` table. Containerized components that need to modify iptables + rules in the host network namespace can use the existence of this chain + to more-reliably determine whether the system is using iptables-legacy or + iptables-nft. diff --git a/releases/release-1.24/release-notes/maps/pr-109060-map.yaml b/releases/release-1.24/release-notes/maps/pr-109060-map.yaml index 02dc17c7d7d..3aea255e017 100644 --- a/releases/release-1.24/release-notes/maps/pr-109060-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109060-map.yaml @@ -1,4 +1,4 @@ -pr: 109060 -releasenote: - text: Users who look at iptables dumps will see some changes in the naming and structure - of rules. +pr: 109060 +releasenote: + text: Users who look at iptables dumps will see some changes in the naming and structure + of rules. diff --git a/releases/release-1.24/release-notes/maps/pr-109072-map.yaml b/releases/release-1.24/release-notes/maps/pr-109072-map.yaml index 7ccfdbc7669..59182a71f9f 100644 --- a/releases/release-1.24/release-notes/maps/pr-109072-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109072-map.yaml @@ -1,4 +1,4 @@ -pr: 109072 -releasenote: - text: Leader Migration is now GA. All new configuration files onwards should use - version v1. +pr: 109072 +releasenote: + text: Leader Migration is now GA. All new configuration files onwards should use + version v1. diff --git a/releases/release-1.24/release-notes/maps/pr-109074-map.yaml b/releases/release-1.24/release-notes/maps/pr-109074-map.yaml index 9c10cdda48a..d6e4d3b8be3 100644 --- a/releases/release-1.24/release-notes/maps/pr-109074-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109074-map.yaml @@ -1,4 +1,4 @@ -pr: 109074 -releasenote: - text: 'kubeadm: added the flag `--experimental-initial-corrupt-check` to etcd static - Pod manifests to ensure etcd member data consistency' +pr: 109074 +releasenote: + text: 'kubeadm: added the flag `--experimental-initial-corrupt-check` to etcd static + Pod manifests to ensure etcd member data consistency' diff --git a/releases/release-1.24/release-notes/maps/pr-109089-map.yaml b/releases/release-1.24/release-notes/maps/pr-109089-map.yaml index cf0a0b7a84c..cb4883c82c4 100644 --- a/releases/release-1.24/release-notes/maps/pr-109089-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109089-map.yaml @@ -1,8 +1,8 @@ -pr: 109089 -releasenote: - text: |- - vSphere releases less than 7.0u2 are deprecated as of v1.24. Please consider upgrading vSphere to 7.0u2 or above. vSphere CSI Driver requires minimum vSphere 7.0u2. - - General Support for vSphere 6.7 will end on October 15, 2022. vSphere 6.7 Update 3 is deprecated in Kubernetes v1.24. Customers are recommended to upgrade vSphere (both ESXi and vCenter) to 7.0u2 or above. vSphere CSI Driver 2.2.3 and higher supports CSI Migration. - - Support for these deprecations will be available till October 15, 2022. +pr: 109089 +releasenote: + text: |- + vSphere releases less than 7.0u2 are deprecated as of v1.24. Please consider upgrading vSphere to 7.0u2 or above. vSphere CSI Driver requires minimum vSphere 7.0u2. + + General Support for vSphere 6.7 will end on October 15, 2022. vSphere 6.7 Update 3 is deprecated in Kubernetes v1.24. Customers are recommended to upgrade vSphere (both ESXi and vCenter) to 7.0u2 or above. vSphere CSI Driver 2.2.3 and higher supports CSI Migration. + + Support for these deprecations will be available till October 15, 2022. diff --git a/releases/release-1.24/release-notes/maps/pr-109104-map.yaml b/releases/release-1.24/release-notes/maps/pr-109104-map.yaml index 26abca62bf6..3a97d2b7a1a 100644 --- a/releases/release-1.24/release-notes/maps/pr-109104-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109104-map.yaml @@ -1,3 +1,3 @@ -pr: 109104 -releasenote: - text: Updated runc to 1.1.1 +pr: 109104 +releasenote: + text: Updated runc to 1.1.1 diff --git a/releases/release-1.24/release-notes/maps/pr-109120-map.yaml b/releases/release-1.24/release-notes/maps/pr-109120-map.yaml index 4fff8c006b8..48b9f7bbc35 100644 --- a/releases/release-1.24/release-notes/maps/pr-109120-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109120-map.yaml @@ -1,5 +1,5 @@ -pr: 109120 -releasenote: - text: New "field_validation_request_duration_seconds" metric, measures how long - requests take, indicating the value of the fieldValidation query parameter and - whether or not server-side field validation is enabled on the apiserver +pr: 109120 +releasenote: + text: New "field_validation_request_duration_seconds" metric, measures how long + requests take, indicating the value of the fieldValidation query parameter and + whether or not server-side field validation is enabled on the apiserver diff --git a/releases/release-1.24/release-notes/maps/pr-109128-map.yaml b/releases/release-1.24/release-notes/maps/pr-109128-map.yaml index 463d375d201..f49c1dc112a 100644 --- a/releases/release-1.24/release-notes/maps/pr-109128-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109128-map.yaml @@ -1,4 +1,4 @@ -pr: 109128 -releasenote: - text: apiextensions_openapi_v3_regeneration_count metric (alpha) will be emitted - for OpenAPI V3. +pr: 109128 +releasenote: + text: apiextensions_openapi_v3_regeneration_count metric (alpha) will be emitted + for OpenAPI V3. diff --git a/releases/release-1.24/release-notes/maps/pr-109137-map.yaml b/releases/release-1.24/release-notes/maps/pr-109137-map.yaml index 73e3c5f339c..162f9055bf9 100644 --- a/releases/release-1.24/release-notes/maps/pr-109137-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109137-map.yaml @@ -1,4 +1,4 @@ -pr: 109137 -releasenote: - text: Fixed indexer bug that resulted in incorrect index updates if number of index - values for a given object was changing during update +pr: 109137 +releasenote: + text: Fixed indexer bug that resulted in incorrect index updates if number of index + values for a given object was changing during update diff --git a/releases/release-1.24/release-notes/maps/pr-109154-map.yaml b/releases/release-1.24/release-notes/maps/pr-109154-map.yaml index 6089566e9e9..21524bb2eaf 100644 --- a/releases/release-1.24/release-notes/maps/pr-109154-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109154-map.yaml @@ -1,4 +1,4 @@ -pr: 109154 -releasenote: - text: Fixed CSI migration of Azure Disk in-tree StorageClasses with topology requirements - in Azure regions that do not have availability zones. +pr: 109154 +releasenote: + text: Fixed CSI migration of Azure Disk in-tree StorageClasses with topology requirements + in Azure regions that do not have availability zones. diff --git a/releases/release-1.24/release-notes/maps/pr-109178-map.yaml b/releases/release-1.24/release-notes/maps/pr-109178-map.yaml index 23dcfd0cc1d..81923ba1a87 100644 --- a/releases/release-1.24/release-notes/maps/pr-109178-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109178-map.yaml @@ -1,6 +1,6 @@ -pr: 109178 -releasenote: - text: Omit enum declarations from the static openapi file captured at https://git.k8s.io/kubernetes/api/openapi-spec. - This file is used to generate API clients, and use of enums in those generated - clients (rather than strings) can break forward compatibility with additional - future values in those fields. See https://issue.k8s.io/109177 for details. +pr: 109178 +releasenote: + text: Omit enum declarations from the static openapi file captured at https://git.k8s.io/kubernetes/api/openapi-spec. + This file is used to generate API clients, and use of enums in those generated + clients (rather than strings) can break forward compatibility with additional + future values in those fields. See https://issue.k8s.io/109177 for details. diff --git a/releases/release-1.24/release-notes/maps/pr-109188-map.yaml b/releases/release-1.24/release-notes/maps/pr-109188-map.yaml index 3b98dfb41bb..789ad5e09b8 100644 --- a/releases/release-1.24/release-notes/maps/pr-109188-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109188-map.yaml @@ -1,4 +1,4 @@ -pr: 109188 -releasenote: - text: Fix the overestimated cost of delegated API requests in kube-apiserver API - priority & fairness +pr: 109188 +releasenote: + text: Fix the overestimated cost of delegated API requests in kube-apiserver API + priority & fairness diff --git a/releases/release-1.24/release-notes/maps/pr-109205-map.yaml b/releases/release-1.24/release-notes/maps/pr-109205-map.yaml index 36ff6106eb2..7d074c49b17 100644 --- a/releases/release-1.24/release-notes/maps/pr-109205-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109205-map.yaml @@ -1,4 +1,4 @@ -pr: 109205 -releasenote: - text: Adds PV deletion protection finalizer only when PV reclaimPolicy is Delete - for dynamically provisioned volumes. +pr: 109205 +releasenote: + text: Adds PV deletion protection finalizer only when PV reclaimPolicy is Delete + for dynamically provisioned volumes. diff --git a/releases/release-1.24/release-notes/maps/pr-109213-map.yaml b/releases/release-1.24/release-notes/maps/pr-109213-map.yaml index 893ab07be38..7092a3e3524 100644 --- a/releases/release-1.24/release-notes/maps/pr-109213-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109213-map.yaml @@ -1,3 +1,3 @@ -pr: 109213 -releasenote: - text: Moving MixedProtocolLBService from alpha to beta +pr: 109213 +releasenote: + text: Moving MixedProtocolLBService from alpha to beta diff --git a/releases/release-1.24/release-notes/maps/pr-109241-map.yaml b/releases/release-1.24/release-notes/maps/pr-109241-map.yaml index e7445e8e16f..b90f23e6be1 100644 --- a/releases/release-1.24/release-notes/maps/pr-109241-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109241-map.yaml @@ -1,3 +1,3 @@ -pr: 109241 -releasenote: - text: Make STS available replicas optional again. +pr: 109241 +releasenote: + text: Make STS available replicas optional again. diff --git a/releases/release-1.24/release-notes/maps/pr-109245-map.yaml b/releases/release-1.24/release-notes/maps/pr-109245-map.yaml index 22258433768..0722a65efb6 100644 --- a/releases/release-1.24/release-notes/maps/pr-109245-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109245-map.yaml @@ -1,4 +1,4 @@ -pr: 109245 -releasenote: - text: Prevent kube-scheduler from nominating a Pod that was already scheduled to - a node +pr: 109245 +releasenote: + text: Prevent kube-scheduler from nominating a Pod that was already scheduled to + a node diff --git a/releases/release-1.24/release-notes/maps/pr-109271-map.yaml b/releases/release-1.24/release-notes/maps/pr-109271-map.yaml index 6516e961ee7..d07f08f9511 100644 --- a/releases/release-1.24/release-notes/maps/pr-109271-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109271-map.yaml @@ -1,3 +1,3 @@ -pr: 109271 -releasenote: - text: The `ServerSideFieldValidation` feature has been reverted to alpha for 1.24. +pr: 109271 +releasenote: + text: The `ServerSideFieldValidation` feature has been reverted to alpha for 1.24. diff --git a/releases/release-1.24/release-notes/maps/pr-109436-map.yaml b/releases/release-1.24/release-notes/maps/pr-109436-map.yaml index 0fb924ee347..2bda01023c6 100644 --- a/releases/release-1.24/release-notes/maps/pr-109436-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109436-map.yaml @@ -1,3 +1,3 @@ -pr: 109436 -releasenote: - text: Remove a v1alpha1 networking API for ClusterCIDRConfig +pr: 109436 +releasenote: + text: Remove a v1alpha1 networking API for ClusterCIDRConfig diff --git a/releases/release-1.24/release-notes/maps/pr-109442-map.yaml b/releases/release-1.24/release-notes/maps/pr-109442-map.yaml index 8ed18ca3167..0a02c9b8bab 100644 --- a/releases/release-1.24/release-notes/maps/pr-109442-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109442-map.yaml @@ -1,4 +1,4 @@ -pr: 109442 -releasenote: - text: Correct event registration for multiple scheduler plugins; this fixes a potential - significant delay in re-queueing unschedulable pods. +pr: 109442 +releasenote: + text: Correct event registration for multiple scheduler plugins; this fixes a potential + significant delay in re-queueing unschedulable pods. diff --git a/releases/release-1.24/release-notes/maps/pr-109461-map.yaml b/releases/release-1.24/release-notes/maps/pr-109461-map.yaml index f3d45640708..cb52ef80225 100644 --- a/releases/release-1.24/release-notes/maps/pr-109461-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109461-map.yaml @@ -1,3 +1,3 @@ -pr: 109461 -releasenote: - text: Kubernetes is now built with Golang 1.18.1 +pr: 109461 +releasenote: + text: Kubernetes is now built with Golang 1.18.1 diff --git a/releases/release-1.24/release-notes/maps/pr-109471-map.yaml b/releases/release-1.24/release-notes/maps/pr-109471-map.yaml index e8fb0bfe8b4..a843c90f347 100644 --- a/releases/release-1.24/release-notes/maps/pr-109471-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109471-map.yaml @@ -1,3 +1,3 @@ -pr: 109471 -releasenote: - text: 'etcd: Update to v3.5.3' +pr: 109471 +releasenote: + text: 'etcd: Update to v3.5.3' diff --git a/releases/release-1.24/release-notes/maps/pr-109487-map.yaml b/releases/release-1.24/release-notes/maps/pr-109487-map.yaml index cc4ba5193f5..49d4f5c15c6 100644 --- a/releases/release-1.24/release-notes/maps/pr-109487-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-109487-map.yaml @@ -1,4 +1,4 @@ -pr: 109487 -releasenote: - text: Sets JobTrackingWithFinalizers, a beta feature, as disabled by default, due - to unresolved bug https://github.com/kubernetes/kubernetes/issues/109485 +pr: 109487 +releasenote: + text: Sets JobTrackingWithFinalizers, a beta feature, as disabled by default, due + to unresolved bug https://github.com/kubernetes/kubernetes/issues/109485 diff --git a/releases/release-1.24/release-notes/maps/pr-82162-map.yaml b/releases/release-1.24/release-notes/maps/pr-82162-map.yaml index 6c6e1e3e0ab..89fe3643a3c 100644 --- a/releases/release-1.24/release-notes/maps/pr-82162-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-82162-map.yaml @@ -1,5 +1,5 @@ -pr: 82162 -releasenote: - text: MaxUnavailable for StatefulSets, allows faster RollingUpdate by taking down - more than 1 pod at a time. The number of pods you want to take down during a RollingUpdate - is configurable using maxUnavailable parameter. +pr: 82162 +releasenote: + text: MaxUnavailable for StatefulSets, allows faster RollingUpdate by taking down + more than 1 pod at a time. The number of pods you want to take down during a RollingUpdate + is configurable using maxUnavailable parameter. diff --git a/releases/release-1.24/release-notes/maps/pr-94637-map.yaml b/releases/release-1.24/release-notes/maps/pr-94637-map.yaml index c22604c55bd..4bb833fc304 100644 --- a/releases/release-1.24/release-notes/maps/pr-94637-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-94637-map.yaml @@ -1,6 +1,6 @@ -pr: 94637 -releasenote: - text: 'kube-apiserver: ensures the namespace of objects sent to admission webhooks - matches the request namespace. Previously, objects without a namespace set would - have the request namespace populated after mutating admission, and objects with - a namespace that did not match the request namespace would be rejected after admission.' +pr: 94637 +releasenote: + text: 'kube-apiserver: ensures the namespace of objects sent to admission webhooks + matches the request namespace. Previously, objects without a namespace set would + have the request namespace populated after mutating admission, and objects with + a namespace that did not match the request namespace would be rejected after admission.' diff --git a/releases/release-1.24/release-notes/maps/pr-95400-map.yaml b/releases/release-1.24/release-notes/maps/pr-95400-map.yaml index 00e5a671cb8..e67fe8adb3d 100644 --- a/releases/release-1.24/release-notes/maps/pr-95400-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-95400-map.yaml @@ -1,5 +1,5 @@ -pr: 95400 -releasenote: - text: Adds support for `InterfaceNamePrefix` and `BridgeInterface` as arguments - to `--detect-local-mode` option and also introduces a new optional `--pod-interface-name-prefix` - and `--pod-bridge-interface` flags to kube-proxy. +pr: 95400 +releasenote: + text: Adds support for `InterfaceNamePrefix` and `BridgeInterface` as arguments + to `--detect-local-mode` option and also introduces a new optional `--pod-interface-name-prefix` + and `--pod-bridge-interface` flags to kube-proxy. diff --git a/releases/release-1.24/release-notes/maps/pr-97252-map.yaml b/releases/release-1.24/release-notes/maps/pr-97252-map.yaml index b20d499b1e6..e371df7c3e6 100644 --- a/releases/release-1.24/release-notes/maps/pr-97252-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-97252-map.yaml @@ -1,7 +1,7 @@ -pr: 97252 -releasenote: - text: Docker runtime support using dockershim in the kubelet is now completely removed - in 1.24. The kubelet used to have a module called dockershim, which implements - CRI support for Docker, and it has seen maintenance issues in the Kubernetes community. - From 1.24 onwards, please move to a container runtime that is a full-fledged implementation - of CRI (v1alpha1 or v1 compliant) as they become available. +pr: 97252 +releasenote: + text: Docker runtime support using dockershim in the kubelet is now completely removed + in 1.24. The kubelet used to have a module called dockershim, which implements + CRI support for Docker, and it has seen maintenance issues in the Kubernetes community. + From 1.24 onwards, please move to a container runtime that is a full-fledged implementation + of CRI (v1alpha1 or v1 compliant) as they become available. diff --git a/releases/release-1.24/release-notes/maps/pr-97966-map.yaml b/releases/release-1.24/release-notes/maps/pr-97966-map.yaml index d8604033332..fa7c3e43338 100644 --- a/releases/release-1.24/release-notes/maps/pr-97966-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-97966-map.yaml @@ -1,4 +1,4 @@ -pr: 97966 -releasenote: - text: Removed validation if AppArmor profiles are loaded on the local node. This - should be handled by the container runtime. +pr: 97966 +releasenote: + text: Removed validation if AppArmor profiles are loaded on the local node. This + should be handled by the container runtime. diff --git a/releases/release-1.24/release-notes/maps/pr-99287-map.yaml b/releases/release-1.24/release-notes/maps/pr-99287-map.yaml index f993faeadca..98b79d11883 100644 --- a/releases/release-1.24/release-notes/maps/pr-99287-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-99287-map.yaml @@ -1,9 +1,9 @@ -pr: 99287 -releasenote: - text: Add 2 new options for kube-proxy running in winkernel mode. `--forward-healthcheck-vip`, - if specified as true, health check traffic whose destination is service VIP will - be forwarded to kube-proxy's healthcheck service. `--root-hnsendpoint-name` specifies - the name of the hns endpoint for the root network namespace. This option enables - the pass-through load balancers like Google's GCLB to correctly health check the - backend services. Without this change, the health check packets is dropped, and - Windows node will be considered to be unhealthy by those load balancers. +pr: 99287 +releasenote: + text: Add 2 new options for kube-proxy running in winkernel mode. `--forward-healthcheck-vip`, + if specified as true, health check traffic whose destination is service VIP will + be forwarded to kube-proxy's healthcheck service. `--root-hnsendpoint-name` specifies + the name of the hns endpoint for the root network namespace. This option enables + the pass-through load balancers like Google's GCLB to correctly health check the + backend services. Without this change, the health check packets is dropped, and + Windows node will be considered to be unhealthy by those load balancers. diff --git a/releases/release-1.24/release-notes/maps/pr-99441-map.yaml b/releases/release-1.24/release-notes/maps/pr-99441-map.yaml index fc94a206d51..77144b317ed 100644 --- a/releases/release-1.24/release-notes/maps/pr-99441-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-99441-map.yaml @@ -1,3 +1,3 @@ -pr: 99441 -releasenote: - text: Migrate `volume/csi/csi-client.go` logs to structured logging. +pr: 99441 +releasenote: + text: Migrate `volume/csi/csi-client.go` logs to structured logging. diff --git a/releases/release-1.24/release-notes/maps/pr-99556-map.yaml b/releases/release-1.24/release-notes/maps/pr-99556-map.yaml index ed35c64bb7d..7f4f4fd89a4 100644 --- a/releases/release-1.24/release-notes/maps/pr-99556-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-99556-map.yaml @@ -1,4 +1,4 @@ -pr: 99556 -releasenote: - text: An alpha flag `--subresource` is added to get, patch, edit replace kubectl - commands to fetch and update status and scale subresources. +pr: 99556 +releasenote: + text: An alpha flag `--subresource` is added to get, patch, edit replace kubectl + commands to fetch and update status and scale subresources. diff --git a/releases/release-1.24/release-notes/maps/pr-99758-map.yaml b/releases/release-1.24/release-notes/maps/pr-99758-map.yaml index b820c733072..d2db61876b6 100644 --- a/releases/release-1.24/release-notes/maps/pr-99758-map.yaml +++ b/releases/release-1.24/release-notes/maps/pr-99758-map.yaml @@ -1,3 +1,3 @@ -pr: 99758 -releasenote: - text: Added label selector flag to all `kubectl rollout` commands. +pr: 99758 +releasenote: + text: Added label selector flag to all `kubectl rollout` commands. diff --git a/releases/release-1.24/release-notes/release-notes-draft.json b/releases/release-1.24/release-notes/release-notes-draft.json index 9f3ce6c05d8..32727ddb364 100644 --- a/releases/release-1.24/release-notes/release-notes-draft.json +++ b/releases/release-1.24/release-notes/release-notes-draft.json @@ -1,7284 +1,7284 @@ -{ - "100424": { - "commit": "ba1c42892f5ac079f099fa96f30f9f1b40d1283a", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#100424](https://github.com/kubernetes/kubernetes/pull/100424), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Node]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100424", - "pr_number": 100424, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "101028": { - "commit": "c2ba0a49088b31988ed0f896693ac4d6da63b1e7", - "text": "Fixed bug with leads to Node goes `Not-ready` state when credentials for vCenter stored in a secret and Zones feature is in use. Zone labels setup moved to KCM component, kubelet skips this step during startup in such case. If credentials stored in cloud-provider config file as plaintext current behaviour does not change and no action required. For proper functioning `kube-system:vsphere-legacy-cloud-provider` should be allowed to update node object if vCenter credentials stored in secret and Zone feature used.", - "markdown": "Fixed bug with leads to Node goes `Not-ready` state when credentials for vCenter stored in a secret and Zones feature is in use. Zone labels setup moved to KCM component, kubelet skips this step during startup in such case. If credentials stored in cloud-provider config file as plaintext current behaviour does not change and no action required. For proper functioning `kube-system:vsphere-legacy-cloud-provider` should be allowed to update node object if vCenter credentials stored in secret and Zone feature used. ([#101028](https://github.com/kubernetes/kubernetes/pull/101028), [@lobziik](https://github.com/lobziik))", - "author": "lobziik", - "author_url": "https://github.com/lobziik", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101028", - "pr_number": 101028, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ], - "action_required": true - }, - "101218": { - "commit": "6c96ac04ff970809d815c871958be702d3065db1", - "text": "Kubelet now checks \"NoExecute\" taint/toleration before accepting pods, except for static pods.", - "markdown": "Kubelet now checks \"NoExecute\" taint/toleration before accepting pods, except for static pods. ([#101218](https://github.com/kubernetes/kubernetes/pull/101218), [@gjkim42](https://github.com/gjkim42))", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101218", - "pr_number": 101218, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "101719": { - "commit": "f356ae4ad977bc9bf2baf3e90451f9b74a9dbba9", - "text": "The deprecated flag `--really-crash-for-testing` was removed.", - "markdown": "The deprecated flag `--really-crash-for-testing` was removed. ([#101719](https://github.com/kubernetes/kubernetes/pull/101719), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101719", - "pr_number": 101719, - "areas": [ - "test", - "kubelet", - "apiserver" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "network", - "node", - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "102265": { - "commit": "2cb3c7f706dbf266820fbde2e1b23a320e5d3de7", - "text": "allow kubectl to manage resources by filename patterns without the shell expanding it first", - "markdown": "Allow kubectl to manage resources by filename patterns without the shell expanding it first ([#102265](https://github.com/kubernetes/kubernetes/pull/102265), [@danielrodriguez](https://github.com/danielrodriguez))", - "author": "danielrodriguez", - "author_url": "https://github.com/danielrodriguez", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102265", - "pr_number": 102265, - "areas": [ - "kubectl", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "103061": { - "commit": "5211a4b2147ce745649e77687a87cdebc08a6707", - "text": "The `node.k8s.io/v1alpha1` RuntimeClass API is no longer served. Use the `node.k8s.io/v1` API version, available since v1.20", - "markdown": "The `node.k8s.io/v1alpha1` RuntimeClass API is no longer served. Use the `node.k8s.io/v1` API version, available since v1.20 ([#103061](https://github.com/kubernetes/kubernetes/pull/103061), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103061", - "pr_number": 103061, - "areas": [ - "test", - "apiserver", - "kubectl" - ], - "kinds": [ - "cleanup", - "api-change", - "deprecation" - ], - "sigs": [ - "node", - "api-machinery", - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "103516": { - "commit": "9fbe66a486990a5bd2e5213ecdacb7d98e11075d", - "text": "kube-apiserver: Subresources such as `status` and `scale` now support tabular output content types.", - "markdown": "Kube-apiserver: Subresources such as `status` and `scale` now support tabular output content types. ([#103516](https://github.com/kubernetes/kubernetes/pull/103516), [@ykakarap](https://github.com/ykakarap))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/2590-kubectl-subresource", - "type": "KEP" - } - ], - "author": "ykakarap", - "author_url": "https://github.com/ykakarap", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103516", - "pr_number": 103516, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "104143": { - "commit": "5fbb0801aaa4ccfbf83e8fdc4cb9317fc8983c28", - "text": "NONE", - "markdown": "NONE ([#104143](https://github.com/kubernetes/kubernetes/pull/104143), [@wzshiming](https://github.com/wzshiming)) [SIG Node]", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104143", - "pr_number": 104143, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "104244": { - "commit": "85c43df3f6090f13a1004098a852553d1c61c745", - "text": "Introduce policy to allow the HPA to consume the `external.metrics.k8s.io` API group.", - "markdown": "Introduce policy to allow the HPA to consume the `external.metrics.k8s.io` API group. ([#104244](https://github.com/kubernetes/kubernetes/pull/104244), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104244", - "pr_number": 104244, - "kinds": [ - "feature" - ], - "sigs": [ - "autoscaling", - "auth", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "104620": { - "commit": "df21ff86eb299c207f2c1db580896dc07595d7bc", - "text": "Added field `add_ambient_capabilities` to the Capabilities message in the CRI-API.", - "markdown": "Added field `add_ambient_capabilities` to the Capabilities message in the CRI-API. ([#104620](https://github.com/kubernetes/kubernetes/pull/104620), [@vinayakankugoyal](https://github.com/vinayakankugoyal))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2757", - "type": "KEP" - } - ], - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104620", - "pr_number": 104620, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "104732": { - "commit": "06e107081e4e0182efb9daa0daf7f2ae12272704", - "text": "Remove the deprecated flag `--experimental-check-node-capabilities-before-mount`. With CSI now GA, there is a better alternative. Remove any use of `--experimental-check-node-capabilities-before-mount` from your kubelet scripts or manifests.", - "markdown": "Remove the deprecated flag `--experimental-check-node-capabilities-before-mount`. With CSI now GA, there is a better alternative. Remove any use of `--experimental-check-node-capabilities-before-mount` from your kubelet scripts or manifests. ([#104732](https://github.com/kubernetes/kubernetes/pull/104732), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104732", - "pr_number": 104732, - "areas": [ - "kubelet", - "provider/gcp" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "storage", - "node", - "apps", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "104736": { - "commit": "750cb93e62bad7bc798b75c96eb4ff0f6f1883b9", - "text": "Improve kubectl's user help commands readability", - "markdown": "Improve kubectl's user help commands readability ([#104736](https://github.com/kubernetes/kubernetes/pull/104736), [@lauchokyip](https://github.com/lauchokyip))", - "author": "lauchokyip", - "author_url": "https://github.com/lauchokyip", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104736", - "pr_number": 104736, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "kubeadm", - "conformance", - "code-generation", - "ipvs", - "e2e-test-framework", - "dependency", - "network-policy" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "scalability", - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "autoscaling", - "contributor-experience", - "auth", - "apps", - "windows", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider", - "security" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "104774": { - "commit": "b1c204a237b433127e99107afea4e84a5b89d5b8", - "text": "Fixed failed flushing logs in defer function when kubelet cmd exit 1.", - "markdown": "Fixed failed flushing logs in defer function when kubelet cmd exit 1. ([#104774](https://github.com/kubernetes/kubernetes/pull/104774), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104774", - "pr_number": 104774, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "104837": { - "commit": "03ee86c09c96054d64c402592e4e0fdec4943615", - "text": "Fixed regression in CPUManager that it will release exclusive CPUs in app containers inherited from init containers when the init containers were removed.", - "markdown": "Fixed regression in CPUManager that it will release exclusive CPUs in app containers inherited from init containers when the init containers were removed. ([#104837](https://github.com/kubernetes/kubernetes/pull/104837), [@eggiter](https://github.com/eggiter))", - "author": "eggiter", - "author_url": "https://github.com/eggiter", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104837", - "pr_number": 104837, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "104846": { - "commit": "1945829906546caf867992669a0bfa588edf8be6", - "text": "The Service field `spec.internalTrafficPolicy` is no longer defaulted for Services when the type is `ExternalName`. The field is also dropped on read when the Service type is `ExternalName`.", - "markdown": "The Service field `spec.internalTrafficPolicy` is no longer defaulted for Services when the type is `ExternalName`. The field is also dropped on read when the Service type is `ExternalName`. ([#104846](https://github.com/kubernetes/kubernetes/pull/104846), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104846", - "pr_number": 104846, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "105070": { - "commit": "15fb945348cdd65ef398d7e460da96c6c3ca3026", - "text": "turn on `CSIMigrationAzureFile` by default on 1.24", - "markdown": "Turn on `CSIMigrationAzureFile` by default on 1.24 ([#105070](https://github.com/kubernetes/kubernetes/pull/105070), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105070", - "pr_number": 105070, - "areas": [ - "provider/azure" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "105164": { - "commit": "e53f93c7bb9fe28e5de2799da8eb1c62bdd4f4f1", - "text": "Added prune flag into `diff` command to simulate `apply --prune`.", - "markdown": "Added prune flag into `diff` command to simulate `apply --prune`. ([#105164](https://github.com/kubernetes/kubernetes/pull/105164), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105164", - "pr_number": 105164, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "105297": { - "commit": "d3c1e26c7feede68af476dc71d952d244ec5f2da", - "text": "If drainer has nil for Ctx or Client it will error with `RunCordonOrUncordon`.", - "markdown": "If drainer has nil for Ctx or Client it will error with `RunCordonOrUncordon`. ([#105297](https://github.com/kubernetes/kubernetes/pull/105297), [@jackfrancis](https://github.com/jackfrancis))", - "author": "jackfrancis", - "author_url": "https://github.com/jackfrancis", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105297", - "pr_number": 105297, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "105360": { - "commit": "b685b3982d729ad8695f7ec0ad9286dd6e4fbdd1", - "text": "Kubelet config validation error messages are updated.", - "markdown": "Kubelet config validation error messages are updated. ([#105360](https://github.com/kubernetes/kubernetes/pull/105360), [@shuheiktgw](https://github.com/shuheiktgw))", - "author": "shuheiktgw", - "author_url": "https://github.com/shuheiktgw", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105360", - "pr_number": 105360, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "105517": { - "commit": "cbec2a936bfc22afdbafebcd05de029ffe58ffc1", - "text": "Added a new label `type` to `apiserver_flowcontrol_request_execution_seconds` metric - it has the following values: - 'regular': indicates that it is a non long running request - 'watch': indicates that it is a watch request.", - "markdown": "Added a new label `type` to `apiserver_flowcontrol_request_execution_seconds` metric - it has the following values: - 'regular': indicates that it is a non long running request - 'watch': indicates that it is a watch request. ([#105517](https://github.com/kubernetes/kubernetes/pull/105517), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105517", - "pr_number": 105517, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "105566": { - "commit": "afdde383210294c3da573decc44b5ce55cffcb94", - "text": "Added a `proxy-url` flag into `kubectl config set-cluster`.", - "markdown": "Added a `proxy-url` flag into `kubectl config set-cluster`. ([#105566](https://github.com/kubernetes/kubernetes/pull/105566), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105566", - "pr_number": 105566, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "duplicate_kind": true - }, - "105585": { - "commit": "1a5abe5d1f837b8269b857354a2fd32b82a771bf", - "text": "add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state to kubelet", - "markdown": "Add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state to kubelet ([#105585](https://github.com/kubernetes/kubernetes/pull/105585), [@fengzixu](https://github.com/fengzixu))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/pull/2900", - "type": "KEP" - } - ], - "author": "fengzixu", - "author_url": "https://github.com/fengzixu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105585", - "pr_number": 105585, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "105632": { - "commit": "d10161b45b751df45701e343599476e27d533d58", - "text": "Added support for kubectl commands (`kubectl exec` and `kubectl port-forward`) via a SOCKS5 proxy.", - "markdown": "Added support for kubectl commands (`kubectl exec` and `kubectl port-forward`) via a SOCKS5 proxy. ([#105632](https://github.com/kubernetes/kubernetes/pull/105632), [@xens](https://github.com/xens))", - "author": "xens", - "author_url": "https://github.com/xens", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105632", - "pr_number": 105632, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "api-machinery", - "cluster-lifecycle", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "105853": { - "commit": "20a5b335c50138fe5abac092180515e2bc6f0d8e", - "text": "Restored `NumPDBViolations` info of nodes, when `HTTPExtender ProcessPreemption`. This info will be used in subsequent filtering steps - `pickOneNodeForPreemption`", - "markdown": "Restored `NumPDBViolations` info of nodes, when `HTTPExtender ProcessPreemption`. This info will be used in subsequent filtering steps - `pickOneNodeForPreemption` ([#105853](https://github.com/kubernetes/kubernetes/pull/105853), [@caden2016](https://github.com/caden2016))", - "author": "caden2016", - "author_url": "https://github.com/caden2016", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105853", - "pr_number": 105853, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "105954": { - "commit": "a1b52fb17a6f7f34f676bf399e82979b8ff9b072", - "text": "Only extend token lifetimes when `--service-account-extend-token-expiration` is true and the requested token audiences are empty or exactly match all values for `--api-audiences`.", - "markdown": "Only extend token lifetimes when `--service-account-extend-token-expiration` is true and the requested token audiences are empty or exactly match all values for `--api-audiences`. ([#105954](https://github.com/kubernetes/kubernetes/pull/105954), [@jyotimahapatra](https://github.com/jyotimahapatra))", - "author": "jyotimahapatra", - "author_url": "https://github.com/jyotimahapatra", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105954", - "pr_number": 105954, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "testing" - ], - "duplicate": true - }, - "105964": { - "commit": "0977a5d7cda59d5bd324bf2730846905e072fbbf", - "text": "The `kubectl logs` will now warn and default to the first container in a pod. This new behavior brings it in line with `kubectl exec`.", - "markdown": "The `kubectl logs` will now warn and default to the first container in a pod. This new behavior brings it in line with `kubectl exec`. ([#105964](https://github.com/kubernetes/kubernetes/pull/105964), [@kidlj](https://github.com/kidlj))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/2227-kubectl-default-container", - "type": "KEP" - } - ], - "author": "kidlj", - "author_url": "https://github.com/kidlj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105964", - "pr_number": 105964, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "106109": { - "commit": "83988399e87f9d9674b8327b351e1bdf7c7fe716", - "text": "Migrate statefulset files to structured logging", - "markdown": "Migrate statefulset files to structured logging ([#106109](https://github.com/kubernetes/kubernetes/pull/106109), [@h4ghhh](https://github.com/h4ghhh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1602-structured-loggin", - "type": "KEP" - } - ], - "author": "h4ghhh", - "author_url": "https://github.com/h4ghhh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106109", - "pr_number": 106109, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "instrumentation" - ], - "duplicate": true - }, - "106153": { - "commit": "e9fc46750f6da84d9434a8066d7d2ba1531c5d67", - "text": "NONE", - "markdown": "NONE ([#106153](https://github.com/kubernetes/kubernetes/pull/106153), [@hyschumi](https://github.com/hyschumi)) [SIG API Machinery]", - "author": "hyschumi", - "author_url": "https://github.com/hyschumi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106153", - "pr_number": 106153, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "106164": { - "commit": "03bcfab1a6675563672ddc11bd24c613967b102c", - "text": "Fixed: removed outdated ipv4 route when the corresponding node is deleted.", - "markdown": "Fixed: removed outdated ipv4 route when the corresponding node is deleted. ([#106164](https://github.com/kubernetes/kubernetes/pull/106164), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106164", - "pr_number": 106164, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "cloud-provider" - ], - "duplicate_kind": true - }, - "106179": { - "commit": "a90f31f85ad0e0fa927f852ec0dee77a670d1586", - "text": "Fixed bug in error messaging for basic-auth and ssh secret validations.", - "markdown": "Fixed bug in error messaging for basic-auth and ssh secret validations. ([#106179](https://github.com/kubernetes/kubernetes/pull/106179), [@vivek-koppuru](https://github.com/vivek-koppuru))", - "author": "vivek-koppuru", - "author_url": "https://github.com/vivek-koppuru", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106179", - "pr_number": 106179, - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "apps" - ], - "duplicate": true - }, - "106203": { - "commit": "b960f7a0e04687c17e0b0801e17e7cab89f273cc", - "text": "Added test cases for `scheduler/PriorityQueue.Activate`, to change the `assert` way from `assert.Equal(t, a, b, \"fail msg\")` to a more clear way.", - "markdown": "Added test cases for `scheduler/PriorityQueue.Activate`, to change the `assert` way from `assert.Equal(t, a, b, \"fail msg\")` to a more clear way. ([#106203](https://github.com/kubernetes/kubernetes/pull/106203), [@jiekun](https://github.com/jiekun))", - "author": "jiekun", - "author_url": "https://github.com/jiekun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106203", - "pr_number": 106203, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "106313": { - "commit": "87a54cbd3ff97b668a334a42cfd979d610eb35c4", - "text": "Added a test to guarantee that conformance clusters require at least 2 untainted nodes.", - "markdown": "Added a test to guarantee that conformance clusters require at least 2 untainted nodes. ([#106313](https://github.com/kubernetes/kubernetes/pull/106313), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106313", - "pr_number": 106313, - "areas": [ - "test", - "conformance" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "testing", - "architecture" - ], - "duplicate": true, - "duplicate_kind": true - }, - "106322": { - "commit": "19fe56cb393f41720cab92fbaa4c438ac83ee481", - "text": "NONE", - "markdown": "NONE ([#106322](https://github.com/kubernetes/kubernetes/pull/106322), [@amacaskill](https://github.com/amacaskill)) [SIG Storage and Testing]", - "author": "amacaskill", - "author_url": "https://github.com/amacaskill", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106322", - "pr_number": 106322, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "failing-test" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "106366": { - "commit": "ba200841fddcf8fb5edb413546ce9574f2a14d82", - "text": "Renamed metrics `evictions_number` to `evictions_total` and mark it as stable. The original `evictions_number` metrics name is marked as \"Deprecated\" and has been removed in kubernetes 1.23 .", - "markdown": "Renamed metrics `evictions_number` to `evictions_total` and mark it as stable. The original `evictions_number` metrics name is marked as \"Deprecated\" and has been removed in kubernetes 1.23 . ([#106366](https://github.com/kubernetes/kubernetes/pull/106366), [@cyclinder](https://github.com/cyclinder))", - "author": "cyclinder", - "author_url": "https://github.com/cyclinder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106366", - "pr_number": 106366, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "kubeadm", - "conformance", - "code-generation", - "e2e-test-framework", - "dependency", - "network-policy" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "scalability", - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "apps", - "windows", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "106445": { - "commit": "08fc9febb1a75a428d3a8126c65058c1a62028ec", - "text": "Fixed documentation typo in cloud-provider.", - "markdown": "Fixed documentation typo in cloud-provider. ([#106445](https://github.com/kubernetes/kubernetes/pull/106445), [@majst01](https://github.com/majst01))", - "author": "majst01", - "author_url": "https://github.com/majst01", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106445", - "pr_number": 106445, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ] - }, - "106447": { - "commit": "75109026d0aa24dd600e71da67a16db8a5320886", - "text": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", - "markdown": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#106447](https://github.com/kubernetes/kubernetes/pull/106447), [@hyschumi](https://github.com/hyschumi)) [SIG Scheduling]", - "author": "hyschumi", - "author_url": "https://github.com/hyschumi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106447", - "pr_number": 106447, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "106453": { - "commit": "68e64ba52eb8518894ee62ef4240c9733f8c4346", - "text": "Fixed spelling of implemented in pkg/proxy/apis/config/types.go line 206", - "markdown": "Fixed spelling of implemented in pkg/proxy/apis/config/types.go line 206 ([#106453](https://github.com/kubernetes/kubernetes/pull/106453), [@davidleitw](https://github.com/davidleitw))", - "author": "davidleitw", - "author_url": "https://github.com/davidleitw", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106453", - "pr_number": 106453, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "106492": { - "commit": "2bfd0ef278b4f30e9b102539d7326dc712c7263a", - "text": "Metrics Server image bumped to v0.5.2", - "markdown": "Metrics Server image bumped to v0.5.2 ([#106492](https://github.com/kubernetes/kubernetes/pull/106492), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106492", - "pr_number": 106492, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "instrumentation", - "cloud-provider" - ], - "duplicate": true - }, - "106497": { - "commit": "9f213370cc0dc250d036d2d17de5b9df8c29830c", - "text": "Services with \"internalTrafficPolicy: Local\" now behave more like\n\"externalTrafficPolicy: Local\". Also, \"internalTrafficPolicy: Local,\nexternalTrafficPolicy: Cluster\" is now implemented correctly.", - "markdown": "Services with \"internalTrafficPolicy: Local\" now behave more like\n \"externalTrafficPolicy: Local\". Also, \"internalTrafficPolicy: Local,\n externalTrafficPolicy: Cluster\" is now implemented correctly. ([#106497](https://github.com/kubernetes/kubernetes/pull/106497), [@danwinship](https://github.com/danwinship))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/9ad538c8c04f7a15a6e7c17c49cac2c47b63a1a1/keps/sig-network/2086-service-internal-traffic-policy", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106497", - "pr_number": 106497, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "106539": { - "commit": "6de9dddf94c75a19d8baadf9e22f94095956ee2b", - "text": "Replace the url label of `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` metrics with a host label to prevent cardinality explosions and keep only the useful information. This is a breaking change required for security reasons.", - "markdown": "Replace the url label of `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` metrics with a host label to prevent cardinality explosions and keep only the useful information. This is a breaking change required for security reasons. ([#106539](https://github.com/kubernetes/kubernetes/pull/106539), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106539", - "pr_number": 106539, - "kinds": [ - "bug" - ], - "sigs": [ - "instrumentation" - ] - }, - "106570": { - "commit": "0e8e30756794cb54549554a4b0bcf4a8ad1db7e1", - "text": "Fix container creation errors for pods with cpu requests bigger than 256 cpus", - "markdown": "Fix container creation errors for pods with cpu requests bigger than 256 cpus ([#106570](https://github.com/kubernetes/kubernetes/pull/106570), [@odinuge](https://github.com/odinuge))", - "author": "odinuge", - "author_url": "https://github.com/odinuge", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106570", - "pr_number": 106570, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "106581": { - "commit": "68b53cf9401a3a08ffcfd1cf4a6eb43b78db2e32", - "text": "Publishing kube-proxy metrics for Windows kernel-mode", - "markdown": "Publishing kube-proxy metrics for Windows kernel-mode ([#106581](https://github.com/kubernetes/kubernetes/pull/106581), [@knabben](https://github.com/knabben))", - "author": "knabben", - "author_url": "https://github.com/knabben", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106581", - "pr_number": 106581, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows", - "instrumentation" - ], - "duplicate": true - }, - "106584": { - "commit": "32a244552e4caa0922d481d3ed8988b99ab142e1", - "text": "after", - "markdown": "After ([#106584](https://github.com/kubernetes/kubernetes/pull/106584), [@jonyhy96](https://github.com/jonyhy96)) [SIG Cloud Provider]", - "author": "jonyhy96", - "author_url": "https://github.com/jonyhy96", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106584", - "pr_number": 106584, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup", - "flake", - "failing-test" - ], - "sigs": [ - "cloud-provider" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "106588": { - "commit": "9cbe01e5a1cecd8aab4498c6989831f44bc85057", - "text": "NONE", - "markdown": "NONE ([#106588](https://github.com/kubernetes/kubernetes/pull/106588), [@victory460](https://github.com/victory460)) [SIG API Machinery, Cloud Provider and Instrumentation]", - "author": "victory460", - "author_url": "https://github.com/victory460", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106588", - "pr_number": 106588, - "areas": [ - "provider/gcp", - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true - }, - "106600": { - "commit": "d22c82413a1774342f473d003e3ce65b4e4700db", - "text": "Added an example for the `kubectl plugin list` command.", - "markdown": "Added an example for the `kubectl plugin list` command. ([#106600](https://github.com/kubernetes/kubernetes/pull/106600), [@bergerhoffer](https://github.com/bergerhoffer))", - "author": "bergerhoffer", - "author_url": "https://github.com/bergerhoffer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106600", - "pr_number": 106600, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "106619": { - "commit": "84f1d6834fee980ce9f43521e018bfb4bbe16a08", - "text": "Feature of `PreferNominatedNode` is graduated to GA.", - "markdown": "Feature of `PreferNominatedNode` is graduated to GA. ([#106619](https://github.com/kubernetes/kubernetes/pull/106619), [@chendave](https://github.com/chendave))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2026, https://github.com/kubernetes/enhancements/pull/3057", - "type": "KEP" - } - ], - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106619", - "pr_number": 106619, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true - }, - "106628": { - "commit": "909bada3f475777a5a9d2e9f9d7506e310016c74", - "text": "A new Priority and Fairness metric 'apiserver_flowcontrol_work_estimate_seats_samples' has been added that tracks the estimated seats associated with a request.", - "markdown": "A new Priority and Fairness metric 'apiserver_flowcontrol_work_estimate_seats_samples' has been added that tracks the estimated seats associated with a request. ([#106628](https://github.com/kubernetes/kubernetes/pull/106628), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106628", - "pr_number": 106628, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "106629": { - "commit": "33a2c50bce334467640e016f68cf19e9382ba1a7", - "text": "Added a new Priority and Fairness metric `apiserver_flowcontrol_request_dispatch_no_accommodation_total` to track the number of times a request dispatch attempt results in a no-accommodation status due to lack of available seats.", - "markdown": "Added a new Priority and Fairness metric `apiserver_flowcontrol_request_dispatch_no_accommodation_total` to track the number of times a request dispatch attempt results in a no-accommodation status due to lack of available seats. ([#106629](https://github.com/kubernetes/kubernetes/pull/106629), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106629", - "pr_number": 106629, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "106644": { - "commit": "b457ae72f5155fbce5bf151ab3c6ae5583822f45", - "text": "E1123 02:12:14.103886 3340 server.go:279] \"kubelet running with insufficient permissions\" err=\"error while checking admin group membership: error retrieving group ids: The user name could not be found.\"\nI1123 02:12:14.166198 3340 server.go:440] \"Kubelet version\" kubeletVersion=\"v1.22.2\"\nI1123 02:12:14.166198 3340 init_windows.go:55] \"Setting the priority of kubelet process\" windowsPriorityClass=\"NORMAL_PRIORITY_CLASS\"\nW1123 02:12:14.166748 3340 plugins.go:132] WARNING: vsphere built-in cloud provider is now deprecated. The vSphere provider is deprecated and will be removed in a future release. Please use https://github.com/kubernetes/cloud-provider-vsphere\nI1123 02:12:14.267995 3340 dynamic_cafile_content.go:155] \"Starting controller\" name=\"client-ca-bundle::C:\\\\var\\\\vcap\\\\jobs\\\\kubelet-windows\\\\config\nkubelet-client-ca.pem\"\nE1123 02:12:14.480099 3340 server.go:294] \"Failed to run kubelet\" err=\"failed to run Kubelet: unable to add process counter. Error code is c0000bb8\"", - "markdown": "E1123 02:12:14.103886 3340 server.go:279] \"kubelet running with insufficient permissions\" err=\"error while checking admin group membership: error retrieving group ids: The user name could not be found.\"\n I1123 02:12:14.166198 3340 server.go:440] \"Kubelet version\" kubeletVersion=\"v1.22.2\"\n I1123 02:12:14.166198 3340 init_windows.go:55] \"Setting the priority of kubelet process\" windowsPriorityClass=\"NORMAL_PRIORITY_CLASS\"\n W1123 02:12:14.166748 3340 plugins.go:132] WARNING: vsphere built-in cloud provider is now deprecated. The vSphere provider is deprecated and will be removed in a future release. Please use https://github.com/kubernetes/cloud-provider-vsphere\n I1123 02:12:14.267995 3340 dynamic_cafile_content.go:155] \"Starting controller\" name=\"client-ca-bundle::C:\\\\var\\\\vcap\\\\jobs\\\\kubelet-windows\\\\config\n kubelet-client-ca.pem\"\n E1123 02:12:14.480099 3340 server.go:294] \"Failed to run kubelet\" err=\"failed to run Kubelet: unable to add process counter. Error code is c0000bb8\" ([#106644](https://github.com/kubernetes/kubernetes/pull/106644), [@ahrtr](https://github.com/ahrtr)) [SIG Node and Windows]", - "author": "ahrtr", - "author_url": "https://github.com/ahrtr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106644", - "pr_number": 106644, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true, - "do_not_publish": true - }, - "106648": { - "commit": "522c1be4c17a6b40c5687f5323876a477cb0b100", - "text": "kubeadm: remove the `IPv6DualStack` feature gate. The feature has been GA and locked to enabled since 1.23.", - "markdown": "Kubeadm: remove the `IPv6DualStack` feature gate. The feature has been GA and locked to enabled since 1.23. ([#106648](https://github.com/kubernetes/kubernetes/pull/106648), [@calvin0327](https://github.com/calvin0327))", - "author": "calvin0327", - "author_url": "https://github.com/calvin0327", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106648", - "pr_number": 106648, - "areas": [ - "test", - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle", - "testing" - ], - "duplicate": true - }, - "106660": { - "commit": "aff056d8a197f6a404ad5e02210ca662d16c3dbe", - "text": "kube-apiserver: Server Side Apply merge order is reverted to match v1.22 behavior until http://issue.k8s.io/104641 is resolved.", - "markdown": "Kube-apiserver: Server Side Apply merge order is reverted to match v1.22 behavior until http://issue.k8s.io/104641 is resolved. ([#106660](https://github.com/kubernetes/kubernetes/pull/106660), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106660", - "pr_number": 106660, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "106715": { - "commit": "469c4c4a30ab57540425e739215f4ceaf9a30682", - "text": "CRI-API: IPs returned by `PodSandboxNetworkStatus`` are ignored by the kubelet for host-network pods.", - "markdown": "CRI-API: IPs returned by `PodSandboxNetworkStatus`` are ignored by the kubelet for host-network pods. ([#106715](https://github.com/kubernetes/kubernetes/pull/106715), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106715", - "pr_number": 106715, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "106721": { - "commit": "62faf2cdc221cb94bd96b09721a246ba3a9847a1", - "text": "`apiserver`, if configured to reconcile the `kubernetes.default` service endpoints, checks if the configured Service IP range matches the apiserver public address IP family, and fails to start if not.", - "markdown": "`apiserver`, if configured to reconcile the `kubernetes.default` service endpoints, checks if the configured Service IP range matches the apiserver public address IP family, and fails to start if not. ([#106721](https://github.com/kubernetes/kubernetes/pull/106721), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106721", - "pr_number": 106721, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "106725": { - "commit": "c67fb7b098f35a8e94c0c9ffcaf952e8f41a9523", - "text": "Updated the default API priority-and-fairness config to avoid endpoint/configmaps operations from controller-manager to all match leader-election priority level.", - "markdown": "Updated the default API priority-and-fairness config to avoid endpoint/configmaps operations from controller-manager to all match leader-election priority level. ([#106725](https://github.com/kubernetes/kubernetes/pull/106725), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106725", - "pr_number": 106725, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "106739": { - "commit": "2b32b4b3527b16dece4483734f4b79b3593f237f", - "text": "Added completion for `kubectl config set-context`.", - "markdown": "Added completion for `kubectl config set-context`. ([#106739](https://github.com/kubernetes/kubernetes/pull/106739), [@kebe7jun](https://github.com/kebe7jun))", - "author": "kebe7jun", - "author_url": "https://github.com/kebe7jun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106739", - "pr_number": 106739, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "106792": { - "commit": "e8e0fe9e8771b09dc7e73d9d3bfff07d28511c79", - "text": "New feature gate, ServiceIPStaticSubrange, to enable the new strategy in the Service IP allocators, so the IP range is subdivided and dynamic allocated ClusterIP addresses for Services are allocated preferently from the upper range.", - "markdown": "New feature gate, ServiceIPStaticSubrange, to enable the new strategy in the Service IP allocators, so the IP range is subdivided and dynamic allocated ClusterIP addresses for Services are allocated preferently from the upper range. ([#106792](https://github.com/kubernetes/kubernetes/pull/106792), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106792", - "pr_number": 106792, - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation" - ], - "feature": true - }, - "106803": { - "commit": "ea644ad9be9f8d6f9405191ea2ead84731b3dbf7", - "text": "Reverts the CRI API version surfaced by dockershim to v1alpha2", - "markdown": "Reverts the CRI API version surfaced by dockershim to v1alpha2 ([#106803](https://github.com/kubernetes/kubernetes/pull/106803), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106803", - "pr_number": 106803, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true, - "duplicate_kind": true - }, - "106816": { - "commit": "712745cb6755b3a28ca12292b30d138d5f737aa6", - "text": "Fixed a bug that a pod's `.status.nominatedNodeName` is not cleared properly, and thus over-occupied system resources.", - "markdown": "Fixed a bug that a pod's `.status.nominatedNodeName` is not cleared properly, and thus over-occupied system resources. ([#106816](https://github.com/kubernetes/kubernetes/pull/106816), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106816", - "pr_number": 106816, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true - }, - "106824": { - "commit": "d429c9820e8570d093d1315e4b8f7a90af55d0a7", - "text": "Removed deprecated `generator` and `container-port` flags", - "markdown": "Removed deprecated `generator` and `container-port` flags ([#106824](https://github.com/kubernetes/kubernetes/pull/106824), [@lauchokyip](https://github.com/lauchokyip))", - "author": "lauchokyip", - "author_url": "https://github.com/lauchokyip", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106824", - "pr_number": 106824, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "106830": { - "commit": "c2d2e665355334d2cfa282b6e5adff6bb0f80839", - "text": "Remove deprecated feature gates `ValidateProxyRedirects` and `StreamingProxyRedirects`", - "markdown": "Remove deprecated feature gates `ValidateProxyRedirects` and `StreamingProxyRedirects` ([#106830](https://github.com/kubernetes/kubernetes/pull/106830), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106830", - "pr_number": 106830, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "106833": { - "commit": "68bd9994aea41012cd1dc93f6f7856a18cf3942d", - "text": "Kubernetes is now built with Golang 1.17.4", - "markdown": "Kubernetes is now built with Golang 1.17.4 ([#106833](https://github.com/kubernetes/kubernetes/pull/106833), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106833", - "pr_number": 106833, - "areas": [ - "test", - "security", - "provider/gcp", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing", - "release", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "106838": { - "commit": "2daa3415eca55d0ce0e6f81fc33737b3336ddd1e", - "text": "The `NamespaceDefaultLabelName` feature gate, GA since v1.22, is now removed.", - "markdown": "The `NamespaceDefaultLabelName` feature gate, GA since v1.22, is now removed. ([#106838](https://github.com/kubernetes/kubernetes/pull/106838), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/2161-apiserver-default-labels", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106838", - "pr_number": 106838, - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "apps" - ], - "feature": true, - "duplicate": true - }, - "106850": { - "commit": "c16b2afc1d3c32462f068ea08cdc4791bd97b947", - "text": "Deprecated types in `k8s.io/apimachinery/util/clock`. Please use `k8s.io/utils/clock` instead.", - "markdown": "Deprecated types in `k8s.io/apimachinery/util/clock`. Please use `k8s.io/utils/clock` instead. ([#106850](https://github.com/kubernetes/kubernetes/pull/106850), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", - "author": "MadhavJivrajani", - "author_url": "https://github.com/MadhavJivrajani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106850", - "pr_number": 106850, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "cloud-provider" - ], - "duplicate": true - }, - "106853": { - "commit": "f0dbc32ed9c8a51a6d149eb62d868fb995f0db3a", - "text": "Allowed attached volumes to be mounted quicker by skipping exponential backoff when checking for reported-in-use volumes.", - "markdown": "Allowed attached volumes to be mounted quicker by skipping exponential backoff when checking for reported-in-use volumes. ([#106853](https://github.com/kubernetes/kubernetes/pull/106853), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106853", - "pr_number": 106853, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node", - "apps" - ], - "duplicate": true - }, - "106854": { - "commit": "89f53538ffb5d45599c73a3f245a747ccdabdf3b", - "text": "kubeadm: allow the `certs check-expiration` command to not require the existence of the cluster CA key (ca.key file) when checking the expiration of managed certificates in kubeconfig files.", - "markdown": "Kubeadm: allow the `certs check-expiration` command to not require the existence of the cluster CA key (ca.key file) when checking the expiration of managed certificates in kubeconfig files. ([#106854](https://github.com/kubernetes/kubernetes/pull/106854), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106854", - "pr_number": 106854, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "106859": { - "commit": "8cc7d14588f688fec1d7b7da953e151158440b3a", - "text": "kube-apiserver: the insecure address flags `--address`, `--insecure-bind-address`, `--port` and `--insecure-port` (inert since 1.20) are removed", - "markdown": "Kube-apiserver: the insecure address flags `--address`, `--insecure-bind-address`, `--port` and `--insecure-port` (inert since 1.20) are removed ([#106859](https://github.com/kubernetes/kubernetes/pull/106859), [@knight42](https://github.com/knight42))", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106859", - "pr_number": 106859, - "areas": [ - "apiserver", - "provider/gcp", - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "106860": { - "commit": "cb0e11a2963f0b32ab432b57ed2603d7d64899cf", - "text": "The insecure address flags `--address` and `--port` in kube-controller-manager have had no effect since v1.20 and are removed in v1.24.", - "markdown": "The insecure address flags `--address` and `--port` in kube-controller-manager have had no effect since v1.20 and are removed in v1.24. ([#106860](https://github.com/kubernetes/kubernetes/pull/106860), [@knight42](https://github.com/knight42))", - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106860", - "pr_number": 106860, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "node", - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "106865": { - "commit": "ac318a65184fcbd448928374c38f46ffe5afce3b", - "text": "Removed kube-scheduler insecure flags. You can use `--bind-address` and `--secure-port` instead.", - "markdown": "Removed kube-scheduler insecure flags. You can use `--bind-address` and `--secure-port` instead. ([#106865](https://github.com/kubernetes/kubernetes/pull/106865), [@jonyhy96](https://github.com/jonyhy96))", - "author": "jonyhy96", - "author_url": "https://github.com/jonyhy96", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106865", - "pr_number": 106865, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "106875": { - "commit": "2cd8ceb2694ef30d93cccb53445e9add6cbd9f7f", - "text": "Updated the error message to not use the `--max-resource-write-bytes` \u0026 `--json-patch-max-copy-bytes` string.", - "markdown": "Updated the error message to not use the `--max-resource-write-bytes` \u0026 `--json-patch-max-copy-bytes` string. ([#106875](https://github.com/kubernetes/kubernetes/pull/106875), [@warmchang](https://github.com/warmchang))", - "author": "warmchang", - "author_url": "https://github.com/warmchang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106875", - "pr_number": 106875, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "106878": { - "commit": "8f91d09865b7adb641a5e890d8b9b6053078b81a", - "text": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#106878](https://github.com/kubernetes/kubernetes/pull/106878), [@humblec](https://github.com/humblec)) [SIG Storage]", - "author": "humblec", - "author_url": "https://github.com/humblec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106878", - "pr_number": 106878, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "do_not_publish": true - }, - "106882": { - "commit": "dc6a3ad06296d8d5c92de342cd33ff901d5c68cc", - "text": "Refactor kubelet command line for enabling features and \"drop `RuntimeClass` feature gate\" if present. Note that this feature has been on by default since 1.14 and was GA'ed in 1.20.", - "markdown": "Refactor kubelet command line for enabling features and \"drop `RuntimeClass` feature gate\" if present. Note that this feature has been on by default since 1.14 and was GA'ed in 1.20. ([#106882](https://github.com/kubernetes/kubernetes/pull/106882), [@cyclinder](https://github.com/cyclinder))", - "author": "cyclinder", - "author_url": "https://github.com/cyclinder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106882", - "pr_number": 106882, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "106891": { - "commit": "f98f27bc2f318add77118906f7595abab7ab5200", - "text": "kubeadm: during execution of the `certs check-expiration` command, treat the etcd CA as external if there is a missing etcd CA key file (etcd/ca.key) and perform the proper validation on certificates signed by the etcd CA. Additionally, make sure that the CA for all entries in the output table is included - for both certificates on disk and in kubeconfig files.", - "markdown": "Kubeadm: during execution of the `certs check-expiration` command, treat the etcd CA as external if there is a missing etcd CA key file (etcd/ca.key) and perform the proper validation on certificates signed by the etcd CA. Additionally, make sure that the CA for all entries in the output table is included - for both certificates on disk and in kubeconfig files. ([#106891](https://github.com/kubernetes/kubernetes/pull/106891), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106891", - "pr_number": 106891, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "106901": { - "commit": "747f3c8fd9993302d000165eff1b4fba8a20b343", - "text": "Reverted graceful node shutdown to match 1.21 behavior of setting pods that have not yet successfully completed to \"Failed\" phase if the GracefulNodeShutdown feature is enabled in kubelet. The GracefulNodeShutdown feature is beta and must be explicitly configured via kubelet config to be enabled in 1.21+. This changes 1.22 and 1.23 behavior on node shutdown to match 1.21. If you do not want pods to be marked terminated on node shutdown in 1.22 and 1.23, disable the GracefulNodeShutdown feature.", - "markdown": "Reverted graceful node shutdown to match 1.21 behavior of setting pods that have not yet successfully completed to \"Failed\" phase if the GracefulNodeShutdown feature is enabled in kubelet. The GracefulNodeShutdown feature is beta and must be explicitly configured via kubelet config to be enabled in 1.21+. This changes 1.22 and 1.23 behavior on node shutdown to match 1.21. If you do not want pods to be marked terminated on node shutdown in 1.22 and 1.23, disable the GracefulNodeShutdown feature. ([#106901](https://github.com/kubernetes/kubernetes/pull/106901), [@bobbypage](https://github.com/bobbypage))", - "author": "bobbypage", - "author_url": "https://github.com/bobbypage", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106901", - "pr_number": 106901, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "106907": { - "commit": "feb758027ca8a270e3b18c32b40e7c4dbea043da", - "text": "kubelet: the following dockershim related flags are also removed along with dockershim `--experimental-dockershim-root-directory`, `--docker-endpoint`, `--image-pull-progress-deadline`, `--network-plugin`, `--cni-conf-dir`, `--cni-bin-dir`, `--cni-cache-dir`, `--network-plugin-mtu`.", - "markdown": "Kubelet: the following dockershim related flags are also removed along with dockershim `--experimental-dockershim-root-directory`, `--docker-endpoint`, `--image-pull-progress-deadline`, `--network-plugin`, `--cni-conf-dir`, `--cni-bin-dir`, `--cni-cache-dir`, `--network-plugin-mtu`. ([#106907](https://github.com/kubernetes/kubernetes/pull/106907), [@cyclinder](https://github.com/cyclinder))", - "author": "cyclinder", - "author_url": "https://github.com/cyclinder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106907", - "pr_number": 106907, - "areas": [ - "test", - "kubelet", - "provider/gcp" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "node", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "106911": { - "commit": "25ccc48c606f99d4d142093a84764fda9588ce1e", - "text": "client-go metrics: change bucket distribution for `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` from [0.001, 0.002, 0.004, 0.008, 0.016, 0.032, 0.064, 0.128, 0.256, 0.512] to [0.005, 0.025, 0.1, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 15.0, 30.0, 60.0}]", - "markdown": "Client-go metrics: change bucket distribution for `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` from [0.001, 0.002, 0.004, 0.008, 0.016, 0.032, 0.064, 0.128, 0.256, 0.512] to [0.005, 0.025, 0.1, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 15.0, 30.0, 60.0}] ([#106911](https://github.com/kubernetes/kubernetes/pull/106911), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106911", - "pr_number": 106911, - "areas": [ - "dependency" - ], - "kinds": [ - "bug", - "cleanup", - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "architecture" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "106912": { - "commit": "8b458055230032042da6e0d3c045f2e94ed580a8", - "text": "Fix libct/cg/fs2: fixed GetStats for unsupported hugetlb error on Raspbian Bullseye", - "markdown": "Fix libct/cg/fs2: fixed GetStats for unsupported hugetlb error on Raspbian Bullseye ([#106912](https://github.com/kubernetes/kubernetes/pull/106912), [@Letme](https://github.com/Letme))", - "author": "Letme", - "author_url": "https://github.com/Letme", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106912", - "pr_number": 106912, - "areas": [ - "dependency" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "106932": { - "commit": "38e9a29620d667069f3b6fa157e29c2a3b758e37", - "text": "The feature `DynamicKubeletConfig` has been removed from the kubelet.", - "markdown": "The feature `DynamicKubeletConfig` has been removed from the kubelet. ([#106932](https://github.com/kubernetes/kubernetes/pull/106932), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106932", - "pr_number": 106932, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "node", - "auth", - "apps", - "instrumentation", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "106949": { - "commit": "b0eb3e1ec2d4268604d9a2c3403f0580a3bda2ec", - "text": "Updated golang.org/x/net to v0.0.0-20211209124913-491a49abca63.", - "markdown": "Updated golang.org/x/net to v0.0.0-20211209124913-491a49abca63. ([#106949](https://github.com/kubernetes/kubernetes/pull/106949), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106949", - "pr_number": 106949, - "areas": [ - "security", - "apiserver", - "kubectl", - "cloudprovider", - "release-eng", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "106954": { - "commit": "f5f34166b7657f310bb4b7962465c6294b9ef4ef", - "text": "Marked kubelet `--container-runtime-endpoint` and `--image-service-endpoint` CLI flags as stable.", - "markdown": "Marked kubelet `--container-runtime-endpoint` and `--image-service-endpoint` CLI flags as stable. ([#106954](https://github.com/kubernetes/kubernetes/pull/106954), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106954", - "pr_number": 106954, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "106956": { - "commit": "4ea2448be2cf287057faa2646b34955f6012d467", - "text": "Kubernetes is now built with Golang 1.17.5.", - "markdown": "Kubernetes is now built with Golang 1.17.5. ([#106956](https://github.com/kubernetes/kubernetes/pull/106956), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106956", - "pr_number": 106956, - "areas": [ - "test", - "security", - "provider/gcp", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing", - "release", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "106973": { - "commit": "77243f3274fd76d47f1ab3e134b4e5909c3e7001", - "text": "kubeadm: handled the removal of dockershim related flags for new kubeadm clusters. If kubelet \u003c1.24 is on the host, kubeadm \u003e=1.24 can continue using the built-in dockershim in the kubelet if the user passes the `{Init|Join}Configuration.nodeRegistration.criSocket` value in the kubeadm configuration to be equal to `unix:///var/run/dockershim.sock` on Unix or `npipe:////./pipe/dockershim` on Windows. If kubelet version \u003e=1.24 is on the host, kubeadm \u003e=1.24 will treat all container runtimes as \"remote\" using the kubelet flags `--container-runtime=remote --container-runtime-endpoint=scheme://some/path`. The special management for kubelet \u003c1.24 will be removed in kubeadm 1.25.", - "markdown": "Kubeadm: handled the removal of dockershim related flags for new kubeadm clusters. If kubelet \u003c1.24 is on the host, kubeadm \u003e=1.24 can continue using the built-in dockershim in the kubelet if the user passes the `{Init|Join}Configuration.nodeRegistration.criSocket` value in the kubeadm configuration to be equal to `unix:///var/run/dockershim.sock` on Unix or `npipe:////./pipe/dockershim` on Windows. If kubelet version \u003e=1.24 is on the host, kubeadm \u003e=1.24 will treat all container runtimes as \"remote\" using the kubelet flags `--container-runtime=remote --container-runtime-endpoint=scheme://some/path`. The special management for kubelet \u003c1.24 will be removed in kubeadm 1.25. ([#106973](https://github.com/kubernetes/kubernetes/pull/106973), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106973", - "pr_number": 106973, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "106978": { - "commit": "46c072d9d9d8bd42aa56aceb8159b108fb1e7c67", - "text": "Modified log messages that were logged with `\"v\":0` in JSON output although they were debug messages with a higher verbosity.", - "markdown": "Modified log messages that were logged with `\"v\":0` in JSON output although they were debug messages with a higher verbosity. ([#106978](https://github.com/kubernetes/kubernetes/pull/106978), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106978", - "pr_number": 106978, - "areas": [ - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "apps", - "cli", - "instrumentation", - "cloud-provider" - ], - "duplicate": true - }, - "107003": { - "commit": "c83a94da72416219cf9f022dc44b0e6db158f092", - "text": "kubectl: restored `--dry-run`, `--dry-run=true`, and `--dry-run=false` for compatibility with pre-1.23 invocations.", - "markdown": "Kubectl: restored `--dry-run`, `--dry-run=true`, and `--dry-run=false` for compatibility with pre-1.23 invocations. ([#107003](https://github.com/kubernetes/kubernetes/pull/107003), [@julianvmodesto](https://github.com/julianvmodesto))", - "author": "julianvmodesto", - "author_url": "https://github.com/julianvmodesto", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107003", - "pr_number": 107003, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "107006": { - "commit": "d1a5513cb044ad805007cbea6327bdfb1cc73aab", - "text": "Added a metric for measuring end-to-end volume mount timing.", - "markdown": "Added a metric for measuring end-to-end volume mount timing. ([#107006](https://github.com/kubernetes/kubernetes/pull/107006), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107006", - "pr_number": 107006, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node" - ], - "feature": true, - "duplicate": true - }, - "107009": { - "commit": "39136784a4330061e369279ad1b119b151b7dbd4", - "text": "The calculations for Pod topology spread skew now exclude nodes that\ndon't match the node affinity/selector. This may lead to unschedulable pods if you previously had pods\nmatching the spreading selector on those excluded nodes (not matching the node affinity/selector),\nespecially when the `topologyKey` is not node-level. Revisit the node affinity and/or pod selector in the\ntopology spread constraints to avoid this scenario.", - "markdown": "The calculations for Pod topology spread skew now exclude nodes that\n don't match the node affinity/selector. This may lead to unschedulable pods if you previously had pods\n matching the spreading selector on those excluded nodes (not matching the node affinity/selector),\n especially when the `topologyKey` is not node-level. Revisit the node affinity and/or pod selector in the\n topology spread constraints to avoid this scenario. ([#107009](https://github.com/kubernetes/kubernetes/pull/107009), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107009", - "pr_number": 107009, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "action_required": true - }, - "107013": { - "commit": "be5b9b4f8d8876090697e777e63d6a4c25738e71", - "text": "`kubeadm.k8s.io/v1beta2` has been deprecated and will be removed in a future release, possibly in 3 releases (one year). You should start using `kubeadm.k8s.io/v1beta3` for new clusters. To migrate your old configuration files on disk you can use the `kubeadm config migrate` command.", - "markdown": "`kubeadm.k8s.io/v1beta2` has been deprecated and will be removed in a future release, possibly in 3 releases (one year). You should start using `kubeadm.k8s.io/v1beta3` for new clusters. To migrate your old configuration files on disk you can use the `kubeadm config migrate` command. ([#107013](https://github.com/kubernetes/kubernetes/pull/107013), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107013", - "pr_number": 107013, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true, - "action_required": true - }, - "107025": { - "commit": "489fb9bee3f626b3eeb120a5af89ad8c2b2f1c20", - "text": "Fixed detaching CSI volumes from nodes when a CSI driver name has prefix \"csi-\".", - "markdown": "Fixed detaching CSI volumes from nodes when a CSI driver name has prefix \"csi-\". ([#107025](https://github.com/kubernetes/kubernetes/pull/107025), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107025", - "pr_number": 107025, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "107027": { - "commit": "a1e8a5bf39d48719dfbcf49ea09223ee04840502", - "text": "The `ServiceLBNodePortControl` feature has graduated to GA. The feature gate will be removed in 1.26.", - "markdown": "The `ServiceLBNodePortControl` feature has graduated to GA. The feature gate will be removed in 1.26. ([#107027](https://github.com/kubernetes/kubernetes/pull/107027), [@uablrek](https://github.com/uablrek))", - "author": "uablrek", - "author_url": "https://github.com/uablrek", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107027", - "pr_number": 107027, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "107034": { - "commit": "5436a8ea2eea4b09f37b465d49a4253c1935f485", - "text": "Fixed a bug that could cause panic when a `/healthz` request times out.", - "markdown": "Fixed a bug that could cause panic when a `/healthz` request times out. ([#107034](https://github.com/kubernetes/kubernetes/pull/107034), [@benluddy](https://github.com/benluddy))", - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107034", - "pr_number": 107034, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "107035": { - "commit": "8323ef7ff0cd8e0bb0d4c36c2a6693d45ebaf374", - "text": "Fixed performance regression in JSON logging caused by syncing stdout every time error was logged.", - "markdown": "Fixed performance regression in JSON logging caused by syncing stdout every time error was logged. ([#107035](https://github.com/kubernetes/kubernetes/pull/107035), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107035", - "pr_number": 107035, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scalability", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true - }, - "107044": { - "commit": "8f453c9d79a763c0ee0252b4424a7e8a4daf6583", - "text": "Modified command line errors (for example, `kubectl list` -\u003e `unknown command`) that were printed as log message with escaped line breaks instead of a multi-line plain text, making the error hard to read.", - "markdown": "Modified command line errors (for example, `kubectl list` -\u003e `unknown command`) that were printed as log message with escaped line breaks instead of a multi-line plain text, making the error hard to read. ([#107044](https://github.com/kubernetes/kubernetes/pull/107044), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107044", - "pr_number": 107044, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "107056": { - "commit": "b2c5bd2a278288b5ef19e25bf7413ecb872577a4", - "text": "Windows Pause no longer has support for SAC releases 1903, 1909, 2004. Windows image support is now Ltcs 2019 (1809), 20H2, LTSC 2022", - "markdown": "Windows Pause no longer has support for SAC releases 1903, 1909, 2004. Windows image support is now Ltcs 2019 (1809), 20H2, LTSC 2022 ([#107056](https://github.com/kubernetes/kubernetes/pull/107056), [@jsturtevant](https://github.com/jsturtevant))", - "author": "jsturtevant", - "author_url": "https://github.com/jsturtevant", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107056", - "pr_number": 107056, - "kinds": [ - "cleanup" - ], - "sigs": [ - "windows" - ] - }, - "107065": { - "commit": "c175418281a6073b270ab901e7df46a95d50374a", - "text": "Changed node staging path for CSI driver to use a PV agnostic path. Nodes must be drained before updating the kubelet with this change.", - "markdown": "Changed node staging path for CSI driver to use a PV agnostic path. Nodes must be drained before updating the kubelet with this change. ([#107065](https://github.com/kubernetes/kubernetes/pull/107065), [@saikat-royc](https://github.com/saikat-royc))", - "author": "saikat-royc", - "author_url": "https://github.com/saikat-royc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107065", - "pr_number": 107065, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true - }, - "107088": { - "commit": "321b4117846a6692e1fe6d660a4d7a23bc47bc48", - "text": "Fixed a bug where unwanted fields were being returned from a `create --dry-run`: uid and, if generateName was used, name.", - "markdown": "Fixed a bug where unwanted fields were being returned from a `create --dry-run`: uid and, if generateName was used, name. ([#107088](https://github.com/kubernetes/kubernetes/pull/107088), [@joejulian](https://github.com/joejulian))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/576-dry-run/README.md#generated-values", - "type": "KEP" - } - ], - "author": "joejulian", - "author_url": "https://github.com/joejulian", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107088", - "pr_number": 107088, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "107090": { - "commit": "28755c32b51dd4052cc79be8a2df4b2eef5e73f6", - "text": "CEL validation failure returns object type instead of object.", - "markdown": "CEL validation failure returns object type instead of object. ([#107090](https://github.com/kubernetes/kubernetes/pull/107090), [@cici37](https://github.com/cici37))", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107090", - "pr_number": 107090, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "107091": { - "commit": "13e97453f9024f347a40940f27630e62c4540fa5", - "text": "An inefficient lock in EndpointSlice controller metrics cache has been reworked. Network programming latency may be significantly reduced in certain scenarios, especially in clusters with a large number of Services.", - "markdown": "An inefficient lock in EndpointSlice controller metrics cache has been reworked. Network programming latency may be significantly reduced in certain scenarios, especially in clusters with a large number of Services. ([#107091](https://github.com/kubernetes/kubernetes/pull/107091), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107091", - "pr_number": 107091, - "kinds": [ - "bug", - "cleanup", - "regression" - ], - "sigs": [ - "network", - "scalability", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "107094": { - "commit": "19069665f90226142674a2090fe39ba367f2bd06", - "text": "The `--container-runtime` kubelet flag is deprecated and will be removed in future releases.", - "markdown": "The `--container-runtime` kubelet flag is deprecated and will be removed in future releases. ([#107094](https://github.com/kubernetes/kubernetes/pull/107094), [@adisky](https://github.com/adisky))", - "author": "adisky", - "author_url": "https://github.com/adisky", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107094", - "pr_number": 107094, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "107096": { - "commit": "8d01b02c60a93dddac5b7a4d84782bbd61649467", - "text": "Removed kubelet `--non-masquerade-cidr` deprecated CLI flag", - "markdown": "Removed kubelet `--non-masquerade-cidr` deprecated CLI flag ([#107096](https://github.com/kubernetes/kubernetes/pull/107096), [@hakman](https://github.com/hakman))", - "author": "hakman", - "author_url": "https://github.com/hakman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107096", - "pr_number": 107096, - "areas": [ - "kubelet", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "cloud-provider" - ], - "duplicate": true - }, - "107103": { - "commit": "38ec822b46853acfb3c3dc7e386a8d4636c67e03", - "text": "In text format, log messages that previously used quoting to prevent multi-line output (for example, text=\"some \\\"quotation\\\", a\\nline break\") will now be printed with more readable multi-line output without the escape sequences.", - "markdown": "In text format, log messages that previously used quoting to prevent multi-line output (for example, text=\"some \\\"quotation\\\", a\\nline break\") will now be printed with more readable multi-line output without the escape sequences. ([#107103](https://github.com/kubernetes/kubernetes/pull/107103), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107103", - "pr_number": 107103, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "107105": { - "commit": "bda996e6a7cd115d76ebf1e0c127bee68e06269a", - "text": "Kubernetes in now built with go1.18rc1", - "markdown": "Kubernetes in now built with go1.18rc1 ([#107105](https://github.com/kubernetes/kubernetes/pull/107105), [@justaugustus](https://github.com/justaugustus))", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107105", - "pr_number": 107105, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "107116": { - "commit": "0b9ad84973888ef6b838435264e60878a27cfb66", - "text": "Added more message for no PodSandbox container.", - "markdown": "Added more message for no PodSandbox container. ([#107116](https://github.com/kubernetes/kubernetes/pull/107116), [@yxxhero](https://github.com/yxxhero))", - "author": "yxxhero", - "author_url": "https://github.com/yxxhero", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107116", - "pr_number": 107116, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "107131": { - "commit": "9386aa0d60e16a2a87642a9ac575a543a7429ea9", - "text": "Fixed default config flags for `NewDefaultKubectlCommand`.", - "markdown": "Fixed default config flags for `NewDefaultKubectlCommand`. ([#107131](https://github.com/kubernetes/kubernetes/pull/107131), [@jonnylangefeld](https://github.com/jonnylangefeld))", - "author": "jonnylangefeld", - "author_url": "https://github.com/jonnylangefeld", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107131", - "pr_number": 107131, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "107141": { - "commit": "04c8807f1f984bcbbfa0430f7f09466b38ad65ef", - "text": "Increase default value of discovery cache TTL for kubectl to 6 hours.", - "markdown": "Increase default value of discovery cache TTL for kubectl to 6 hours. ([#107141](https://github.com/kubernetes/kubernetes/pull/107141), [@mk46](https://github.com/mk46))", - "author": "mk46", - "author_url": "https://github.com/mk46", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107141", - "pr_number": 107141, - "areas": [ - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "107142": { - "commit": "31dba0a435ecb98722fc71dab6f8180ffc0e0935", - "text": "`kubectl config delete-user` now supports completion", - "markdown": "`kubectl config delete-user` now supports completion ([#107142](https://github.com/kubernetes/kubernetes/pull/107142), [@dimbleby](https://github.com/dimbleby))", - "author": "dimbleby", - "author_url": "https://github.com/dimbleby", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107142", - "pr_number": 107142, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "107152": { - "commit": "aa1be30828dd342111a0bc2b6d828b130f5a69f2", - "text": "Removed the `ImmutableEphemeralVolumes` feature gate.", - "markdown": "Removed the `ImmutableEphemeralVolumes` feature gate. ([#107152](https://github.com/kubernetes/kubernetes/pull/107152), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107152", - "pr_number": 107152, - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node" - ], - "feature": true, - "duplicate": true - }, - "107171": { - "commit": "9d0d2e8ece9bdd0cd8c23be2f36eee5473afc648", - "text": "Added a new metric `webhook_fail_open_count` to monitor webhooks that fail to open.", - "markdown": "Added a new metric `webhook_fail_open_count` to monitor webhooks that fail to open. ([#107171](https://github.com/kubernetes/kubernetes/pull/107171), [@ltagliamonte-dd](https://github.com/ltagliamonte-dd))", - "author": "ltagliamonte-dd", - "author_url": "https://github.com/ltagliamonte-dd", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107171", - "pr_number": 107171, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "107178": { - "commit": "14cc997d034601af6948aa541d119cccecf19eaa", - "text": "The deprecated kube-controller-manager flag '--deployment-controller-sync-period' has been removed, it is not used by the deployment controller.", - "markdown": "The deprecated kube-controller-manager flag '--deployment-controller-sync-period' has been removed, it is not used by the deployment controller. ([#107178](https://github.com/kubernetes/kubernetes/pull/107178), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107178", - "pr_number": 107178, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "107180": { - "commit": "0b79a791eda116199c40b13b21121274c56df374", - "text": "ServerResources was deprecated in February 2019 (https://github.com/kubernetes/kubernetes/commit/618050e) and now it's being removed and ServerGroupsAndResources is suggested to be used instead", - "markdown": "ServerResources was deprecated in February 2019 (https://github.com/kubernetes/kubernetes/commit/618050e) and now it's being removed and ServerGroupsAndResources is suggested to be used instead ([#107180](https://github.com/kubernetes/kubernetes/pull/107180), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107180", - "pr_number": 107180, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "cli" - ], - "duplicate": true - }, - "107201": { - "commit": "e9ba9dc4e4aba4a2fcfea6605b33e74de1074eaf", - "text": "kubelet: add `kubelet_volume_metric_collection_duration_seconds` metrics for volume disk usage calculation duration", - "markdown": "Kubelet: add `kubelet_volume_metric_collection_duration_seconds` metrics for volume disk usage calculation duration ([#107201](https://github.com/kubernetes/kubernetes/pull/107201), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107201", - "pr_number": 107201, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "107207": { - "commit": "22a03f893d40d37009908f5b3577372ee18271be", - "text": "The experimental dynamic log sanitization feature has been deprecated and removed in the 1.24 release. The feature is no longer available for use.", - "markdown": "The experimental dynamic log sanitization feature has been deprecated and removed in the 1.24 release. The feature is no longer available for use. ([#107207](https://github.com/kubernetes/kubernetes/pull/107207), [@ehashman](https://github.com/ehashman))", - "documentation": [ - { - "description": "[KEP]", - "url": "http://kep.k8s.io/1753", - "type": "external" - } - ], - "author": "ehashman", - "author_url": "https://github.com/ehashman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107207", - "pr_number": 107207, - "kinds": [ - "api-change", - "deprecation" - ], - "sigs": [ - "scheduling", - "instrumentation", - "security" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "107221": { - "commit": "e9fc23e31e78142e4ebac83bde7241d872e5f48b", - "text": "Fixed a panic when using invalid output format in `kubectl create secret` command.", - "markdown": "Fixed a panic when using invalid output format in `kubectl create secret` command. ([#107221](https://github.com/kubernetes/kubernetes/pull/107221), [@rikatz](https://github.com/rikatz))", - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107221", - "pr_number": 107221, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "107235": { - "commit": "42c391da29319638c3cc357cf0d0f0cc70842504", - "text": "Deprecated `Service.Spec.LoadBalancerIP`. This field was under-specified and its meaning varies across implementations. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version.", - "markdown": "Deprecated `Service.Spec.LoadBalancerIP`. This field was under-specified and its meaning varies across implementations. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version. ([#107235](https://github.com/kubernetes/kubernetes/pull/107235), [@uablrek](https://github.com/uablrek))", - "author": "uablrek", - "author_url": "https://github.com/uablrek", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107235", - "pr_number": 107235, - "kinds": [ - "documentation", - "api-change", - "deprecation" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "107295": { - "commit": "c7d57a01b7291c19d3fdd51fd1cccff5dd4787f9", - "text": "kubeadm: make sure that `kubeadm init/join` always use a URL scheme (unix:// on Linux and npipe:// on Windows) when passing a value to the `--container-runtime-endpoint` kubelet flag. This flag's value is taken from the kubeadm configuration `criSocket` field or the `--cri-socket` CLI flag. Automatically add a missing URL scheme to the user configuration in memory, but warn them that they should also update their configuration on disk manually. During `kubeadm upgrade apply/node` mutate the `/var/lib/kubelet/kubeadm-flags.env` file on disk and the `kubeadm.alpha.kubernetes.io/cri-socket` annotation Node object if needed. These automatic actions are temporary and will be removed in a future release. In the future the kubelet may not support CRI endpoints without an URL scheme.", - "markdown": "Kubeadm: make sure that `kubeadm init/join` always use a URL scheme (unix:// on Linux and npipe:// on Windows) when passing a value to the `--container-runtime-endpoint` kubelet flag. This flag's value is taken from the kubeadm configuration `criSocket` field or the `--cri-socket` CLI flag. Automatically add a missing URL scheme to the user configuration in memory, but warn them that they should also update their configuration on disk manually. During `kubeadm upgrade apply/node` mutate the `/var/lib/kubelet/kubeadm-flags.env` file on disk and the `kubeadm.alpha.kubernetes.io/cri-socket` annotation Node object if needed. These automatic actions are temporary and will be removed in a future release. In the future the kubelet may not support CRI endpoints without an URL scheme. ([#107295](https://github.com/kubernetes/kubernetes/pull/107295), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107295", - "pr_number": 107295, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "107311": { - "commit": "b0f0aad2cedc1168bc44387e5a3d6d7745ae580b", - "text": "client-go: fixed the paged list calls with `ResourceVersionMatch` set would fail once paging is kicked in.", - "markdown": "Client-go: fixed the paged list calls with `ResourceVersionMatch` set would fail once paging is kicked in. ([#107311](https://github.com/kubernetes/kubernetes/pull/107311), [@fasaxc](https://github.com/fasaxc))", - "author": "fasaxc", - "author_url": "https://github.com/fasaxc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107311", - "pr_number": 107311, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "107317": { - "commit": "8a259641532d12f730d0fc6b237d36206d405e52", - "text": "kubeadm: default the kubeadm configuration to the containerd socket (Unix: `unix:///var/run/containerd/containerd.sock`, Windows: `npipe:////./pipe/containerd-containerd`) instead of the one for Docker. If the `Init|JoinConfiguration.nodeRegistration.criSocket` field is empty during cluster creation and multiple sockets are found on the host always throw an error and ask the user to specify which one to use by setting the value in the field. Make sure you update any kubeadm configuration files on disk, to not include the dockershim socket unless you are still using kubelet version \u003c 1.24 with kubeadm \u003e= 1.24.\n\nRemove the DockerValidor and ServiceCheck for the `docker` service from kubeadm preflight. Docker is no longer special cased during host validation and ideally this task should be done in the now external cri-dockerd project where the importance of the compatibility matters.\n\nUse `crictl` for all communication with CRI sockets for actions like pulling images and obtaining a list of running containers instead of using the docker CLI in the case of Docker.", - "markdown": "Kubeadm: default the kubeadm configuration to the containerd socket (Unix: `unix:///var/run/containerd/containerd.sock`, Windows: `npipe:////./pipe/containerd-containerd`) instead of the one for Docker. If the `Init|JoinConfiguration.nodeRegistration.criSocket` field is empty during cluster creation and multiple sockets are found on the host always throw an error and ask the user to specify which one to use by setting the value in the field. Make sure you update any kubeadm configuration files on disk, to not include the dockershim socket unless you are still using kubelet version \u003c 1.24 with kubeadm \u003e= 1.24.\n \n Remove the DockerValidor and ServiceCheck for the `docker` service from kubeadm preflight. Docker is no longer special cased during host validation and ideally this task should be done in the now external cri-dockerd project where the importance of the compatibility matters.\n \n Use `crictl` for all communication with CRI sockets for actions like pulling images and obtaining a list of running containers instead of using the docker CLI in the case of Docker. ([#107317](https://github.com/kubernetes/kubernetes/pull/107317), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107317", - "pr_number": 107317, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true, - "action_required": true - }, - "107327": { - "commit": "c15e24b128c71d1b3b33e3b8bd03a06c92c58372", - "text": "kubeadm: removed the restriction that the `ca.crt` can only contain one certificate. If there is more than one certificate in the `ca.crt` file, kubeadm will pick the first one by default.", - "markdown": "Kubeadm: removed the restriction that the `ca.crt` can only contain one certificate. If there is more than one certificate in the `ca.crt` file, kubeadm will pick the first one by default. ([#107327](https://github.com/kubernetes/kubernetes/pull/107327), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107327", - "pr_number": 107327, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "107337": { - "commit": "e045e5c875b2f51c4c4b1bc14d4e717123649b17", - "text": "Fixed a bug where vSphere client connections where not being closed during testing. Leaked vSphere client sessions were causing resource exhaustion during automated testing.", - "markdown": "Fixed a bug where vSphere client connections where not being closed during testing. Leaked vSphere client sessions were causing resource exhaustion during automated testing. ([#107337](https://github.com/kubernetes/kubernetes/pull/107337), [@derek-pryor](https://github.com/derek-pryor))", - "author": "derek-pryor", - "author_url": "https://github.com/derek-pryor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107337", - "pr_number": 107337, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true - }, - "107363": { - "commit": "306d7724dd23188d4cea53b6f12a597034181718", - "text": "Improve error message when applying CRDs before the CRD exists in a cluster", - "markdown": "Improve error message when applying CRDs before the CRD exists in a cluster ([#107363](https://github.com/kubernetes/kubernetes/pull/107363), [@eddiezane](https://github.com/eddiezane))", - "author": "eddiezane", - "author_url": "https://github.com/eddiezane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107363", - "pr_number": 107363, - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "107384": { - "commit": "eb64a3e13ac90357dad1f53d9e3aadd9401c2323", - "text": "Improved the rounding of `PodTopologySpread` scores to offer better scoring when spreading a low number of pods.", - "markdown": "Improved the rounding of `PodTopologySpread` scores to offer better scoring when spreading a low number of pods. ([#107384](https://github.com/kubernetes/kubernetes/pull/107384), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107384", - "pr_number": 107384, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "107395": { - "commit": "f97825e1cea6d06813c53319c70e2568778067f0", - "text": "Indexed Jobs graduated to stable.", - "markdown": "Indexed Jobs graduated to stable. ([#107395](https://github.com/kubernetes/kubernetes/pull/107395), [@alculquicondor](https://github.com/alculquicondor))", - "documentation": [ - { - "description": "[KEP]", - "url": "http://git.k8s.io/enhancements/keps/sig-apps/2214-indexed-job", - "type": "external" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/tasks/job/indexed-parallel-processing-static/", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107395", - "pr_number": 107395, - "areas": [ - "test", - "conformance", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "testing", - "architecture" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "107402": { - "commit": "10ded7501a7fc2ad1ae28826f88c41830f538814", - "text": "apiserver will now reject connection attempts to `0.0.0.0/::` when handling a proxy subresource request.", - "markdown": "Apiserver will now reject connection attempts to `0.0.0.0/::` when handling a proxy subresource request. ([#107402](https://github.com/kubernetes/kubernetes/pull/107402), [@anguslees](https://github.com/anguslees))", - "author": "anguslees", - "author_url": "https://github.com/anguslees", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107402", - "pr_number": 107402, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "107406": { - "commit": "7bde4baac48d702aabb03123a342d3c11323c4ef", - "text": "Fixed: deleted a non-existent Azure disk issue.", - "markdown": "Fixed: deleted a non-existent Azure disk issue. ([#107406](https://github.com/kubernetes/kubernetes/pull/107406), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107406", - "pr_number": 107406, - "areas": [ - "cloudprovider", - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "107410": { - "commit": "19935de5a9a4196f23f9a90cd9b7acb79091e3c2", - "text": "Fixed a bug that caused credentials in an exec plugin to override the static certificates set in a kubeconfig.", - "markdown": "Fixed a bug that caused credentials in an exec plugin to override the static certificates set in a kubeconfig. ([#107410](https://github.com/kubernetes/kubernetes/pull/107410), [@margocrawf](https://github.com/margocrawf))", - "author": "margocrawf", - "author_url": "https://github.com/margocrawf", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107410", - "pr_number": 107410, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true - }, - "107413": { - "commit": "de83db2a08f726d6db8cae4d9af315b81830a44f", - "text": "Fixed duplicate port opening in kube-proxy when `--nodeport-addresses` is empty.", - "markdown": "Fixed duplicate port opening in kube-proxy when `--nodeport-addresses` is empty. ([#107413](https://github.com/kubernetes/kubernetes/pull/107413), [@tnqn](https://github.com/tnqn))", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107413", - "pr_number": 107413, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "107429": { - "commit": "2f64227aeab46ab77de4b996a4ce63209295de60", - "text": "Fixed `azureDisk` parameter lowercase translation issue.", - "markdown": "Fixed `azureDisk` parameter lowercase translation issue. ([#107429](https://github.com/kubernetes/kubernetes/pull/107429), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107429", - "pr_number": 107429, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "cloud-provider" - ], - "duplicate": true - }, - "107432": { - "commit": "24e5d1fdb7d55b86f5be5c8c9b9c06a712005971", - "text": "Feature of `NonPreemptingPriority` is graduated to GA", - "markdown": "Feature of `NonPreemptingPriority` is graduated to GA ([#107432](https://github.com/kubernetes/kubernetes/pull/107432), [@denkensk](https://github.com/denkensk))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/902-non-preempting-priorityclass", - "type": "KEP" - } - ], - "author": "denkensk", - "author_url": "https://github.com/denkensk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107432", - "pr_number": 107432, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "107439": { - "commit": "ab4801c4f35a7bf461ad13779b907b997d475639", - "text": "Fixed kubectl bug where bash completions don't work if `--context` flag is specified with a value that contains a colon.", - "markdown": "Fixed kubectl bug where bash completions don't work if `--context` flag is specified with a value that contains a colon. ([#107439](https://github.com/kubernetes/kubernetes/pull/107439), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107439", - "pr_number": 107439, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "107452": { - "commit": "3cec1d1a13a7414ed5413d75898a167220c3892c", - "text": "Fixed a rare race condition handling requests that timeout.", - "markdown": "Fixed a rare race condition handling requests that timeout. ([#107452](https://github.com/kubernetes/kubernetes/pull/107452), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107452", - "pr_number": 107452, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "107455": { - "commit": "e9e9bd0bf0d644032c2eb83a04f295fb750ad072", - "text": "kubernetes e2e framework will use the url `invalid.registry.k8s.io/invalid` instead `invalid.com/invalid` for test that use an invalid registry.", - "markdown": "Kubernetes e2e framework will use the url `invalid.registry.k8s.io/invalid` instead `invalid.com/invalid` for test that use an invalid registry. ([#107455](https://github.com/kubernetes/kubernetes/pull/107455), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107455", - "pr_number": 107455, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ] - }, - "107462": { - "commit": "42436c877e1f1e352b1a8edfb2c9c7f2bcd443cb", - "text": "OpenStack Cinder CSI migration is now GA and switched on by default, Cinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work (has been since v1.21).", - "markdown": "OpenStack Cinder CSI migration is now GA and switched on by default, Cinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work (has been since v1.21). ([#107462](https://github.com/kubernetes/kubernetes/pull/107462), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107462", - "pr_number": 107462, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true - }, - "107467": { - "commit": "9c468ecf30773537fc0a101e17f71b2d7b8b039a", - "text": "kubeadm: all warning messages are printed to stderr instead of stdout.", - "markdown": "Kubeadm: all warning messages are printed to stderr instead of stdout. ([#107467](https://github.com/kubernetes/kubernetes/pull/107467), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107467", - "pr_number": 107467, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "107468": { - "commit": "f86ee5649b2e127a6471bbc896614ecd32ff57c7", - "text": "kubeadm: removed the deprecated `output/v1alpha1` API used for machine readable output by some kubeadm commands. In 1.23 kubeadm started using the newer version `output/v1alpha2` for the same purpose.", - "markdown": "Kubeadm: removed the deprecated `output/v1alpha1` API used for machine readable output by some kubeadm commands. In 1.23 kubeadm started using the newer version `output/v1alpha2` for the same purpose. ([#107468](https://github.com/kubernetes/kubernetes/pull/107468), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107468", - "pr_number": 107468, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "107476": { - "commit": "dd1e43332a478f64a861a576975a679697cd52a5", - "text": "JobReadyPods graduates to Beta and it's enabled by default.", - "markdown": "JobReadyPods graduates to Beta and it's enabled by default. ([#107476](https://github.com/kubernetes/kubernetes/pull/107476), [@alculquicondor](https://github.com/alculquicondor))", - "documentation": [ - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/job-v1/#JobStatus", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107476", - "pr_number": 107476, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "107481": { - "commit": "a3207872a3bf0d1dd097699a74bbc64ac8a87f8b", - "text": "The cluster addon for dashboard was removed. To install dashboard, see [here](https://github.com/kubernetes/dashboard/blob/master/docs/user/README.md).", - "markdown": "The cluster addon for dashboard was removed. To install dashboard, see [here](https://github.com/kubernetes/dashboard/blob/master/docs/user/README.md). ([#107481](https://github.com/kubernetes/kubernetes/pull/107481), [@shu-mutou](https://github.com/shu-mutou))", - "author": "shu-mutou", - "author_url": "https://github.com/shu-mutou", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107481", - "pr_number": 107481, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "documentation", - "deprecation" - ], - "sigs": [ - "testing", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "107507": { - "commit": "f4046f9e6d0bb2fc4fa2d84af64cc9c6db44270a", - "text": "Added `SetTransform` to `SharedInformer` to allow users to transform objects before they are stored.", - "markdown": "Added `SetTransform` to `SharedInformer` to allow users to transform objects before they are stored. ([#107507](https://github.com/kubernetes/kubernetes/pull/107507), [@alexzielenski](https://github.com/alexzielenski))", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107507", - "pr_number": 107507, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "107512": { - "commit": "19a37027dc389919d33be45d9668104b871c6346", - "text": "kubeadm: added support for dry running `kubeadm reset`. The new flag `kubeadm reset --dry-run` is similar to the existing flag for `kubeadm init/join/upgrade` and allows you to see what changes would be applied.", - "markdown": "Kubeadm: added support for dry running `kubeadm reset`. The new flag `kubeadm reset --dry-run` is similar to the existing flag for `kubeadm init/join/upgrade` and allows you to see what changes would be applied. ([#107512](https://github.com/kubernetes/kubernetes/pull/107512), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107512", - "pr_number": 107512, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "107516": { - "commit": "824145d31ba4dec5d631c998cf5ed43fe564c70f", - "text": "Alowed useful inclusion of `-args $prog_args` in KUBE_TEST_ARGS, when doing `make test-integration`.", - "markdown": "Alowed useful inclusion of `-args $prog_args` in KUBE_TEST_ARGS, when doing `make test-integration`. ([#107516](https://github.com/kubernetes/kubernetes/pull/107516), [@MikeSpreitzer](https://github.com/MikeSpreitzer))", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107516", - "pr_number": 107516, - "kinds": [ - "bug" - ], - "sigs": [ - "testing" - ] - }, - "107527": { - "commit": "e42e2e877f01d28d886ebe5b855ff0f16ffca680", - "text": "kube-apiserver: the `metadata.selfLink` field can no longer be populated by kube-apiserver; it was deprecated in 1.16 and has not been populated by default since 1.20+.", - "markdown": "Kube-apiserver: the `metadata.selfLink` field can no longer be populated by kube-apiserver; it was deprecated in 1.16 and has not been populated by default since 1.20+. ([#107527](https://github.com/kubernetes/kubernetes/pull/107527), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107527", - "pr_number": 107527, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "scheduling", - "storage", - "api-machinery", - "autoscaling", - "auth", - "apps", - "cli", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "107533": { - "commit": "1fa888529e398424ab0823508e01826f0a70dccb", - "text": "kubeadm: apply `second stage` of the plan to migrate kubeadm away from the usage of the word `master` in labels and taints. For new clusters, the label `node-role.kubernetes.io/master` will no longer be added to control plane nodes, only the label `node-role.kubernetes.io/control-plane` will be added. For clusters that are being upgraded to 1.24 with `kubeadm upgrade apply`, the command will remove the label `node-role.kubernetes.io/master` from existing control plane nodes. For new clusters, both the old taint `node-role.kubernetes.io/master:NoSchedule` and new taint `node-role.kubernetes.io/control-plane:NoSchedule` will be added to control plane nodes. In release 1.20 (`first stage`), a release note instructed to preemptively tolerate the new taint. For clusters that are being upgraded to 1.24 with `kubeadm upgrade apply`, the command will add the new taint `node-role.kubernetes.io/control-plane:NoSchedule` to existing control plane nodes. Please adapt your infrastructure to these changes. In 1.25 the old taint `node-role.kubernetes.io/master:NoSchedule` will be removed.", - "markdown": "Kubeadm: apply `second stage` of the plan to migrate kubeadm away from the usage of the word `master` in labels and taints. For new clusters, the label `node-role.kubernetes.io/master` will no longer be added to control plane nodes, only the label `node-role.kubernetes.io/control-plane` will be added. For clusters that are being upgraded to 1.24 with `kubeadm upgrade apply`, the command will remove the label `node-role.kubernetes.io/master` from existing control plane nodes. For new clusters, both the old taint `node-role.kubernetes.io/master:NoSchedule` and new taint `node-role.kubernetes.io/control-plane:NoSchedule` will be added to control plane nodes. In release 1.20 (`first stage`), a release note instructed to preemptively tolerate the new taint. For clusters that are being upgraded to 1.24 with `kubeadm upgrade apply`, the command will add the new taint `node-role.kubernetes.io/control-plane:NoSchedule` to existing control plane nodes. Please adapt your infrastructure to these changes. In 1.25 the old taint `node-role.kubernetes.io/master:NoSchedule` will be removed. ([#107533](https://github.com/kubernetes/kubernetes/pull/107533), [@neolit123](https://github.com/neolit123))", - "documentation": [ - { - "url": "https://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/2067-rename-master-label-taint", - "type": "external" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107533", - "pr_number": 107533, - "areas": [ - "test", - "kubeadm", - "e2e-test-framework" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cluster-lifecycle", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "107552": { - "commit": "2047936f3f8ddd96498dcc812631b5368d14f3be", - "text": "Added an e2e test to verify that the cluster is not vulnerable to CVE-2021-29923 when using Services with IPs with leading zeros, note that this test is a necessary but not sufficient condition, all the components in the clusters that consume IPs addresses from the APIs MUST interpret them as decimal or discard them.", - "markdown": "Added an e2e test to verify that the cluster is not vulnerable to CVE-2021-29923 when using Services with IPs with leading zeros, note that this test is a necessary but not sufficient condition, all the components in the clusters that consume IPs addresses from the APIs MUST interpret them as decimal or discard them. ([#107552](https://github.com/kubernetes/kubernetes/pull/107552), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107552", - "pr_number": 107552, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true - }, - "107553": { - "commit": "87ad2ae8e314ff76a4060e953b6c68a3a864771c", - "text": "The fluentd-elasticsearch addon is no longer included in the cluster directory. It is available from https://github.com/kubernetes-sigs/instrumentation-addons/tree/master/fluentd-elasticsearch.", - "markdown": "The fluentd-elasticsearch addon is no longer included in the cluster directory. It is available from https://github.com/kubernetes-sigs/instrumentation-addons/tree/master/fluentd-elasticsearch. ([#107553](https://github.com/kubernetes/kubernetes/pull/107553), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107553", - "pr_number": 107553, - "areas": [ - "provider/gcp", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "instrumentation", - "cloud-provider" - ], - "duplicate": true - }, - "107554": { - "commit": "6f896dec4f45ffb82491bc9ce2393e7452886562", - "text": "The feature gate was mentioned as `csiMigrationRBD` where it should have been `CSIMigrationRBD` to be in parity with other migration plugins. This release correct the same and keep it as `CSIMigrationRBD`.\nusers who have configured this feature gate as `csiMigrationRBD` has to reconfigure the same to `CSIMigrationRBD` from this release.", - "markdown": "The feature gate was mentioned as `csiMigrationRBD` where it should have been `CSIMigrationRBD` to be in parity with other migration plugins. This release correct the same and keep it as `CSIMigrationRBD`.\n users who have configured this feature gate as `csiMigrationRBD` has to reconfigure the same to `CSIMigrationRBD` from this release. ([#107554](https://github.com/kubernetes/kubernetes/pull/107554), [@humblec](https://github.com/humblec))", - "author": "humblec", - "author_url": "https://github.com/humblec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107554", - "pr_number": 107554, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "storage" - ], - "duplicate_kind": true, - "action_required": true - }, - "107559": { - "commit": "184daed0dbb6b9adac82b7b8b58f5cee0935d152", - "text": "Fixed handling of objects with invalid selectors.", - "markdown": "Fixed handling of objects with invalid selectors. ([#107559](https://github.com/kubernetes/kubernetes/pull/107559), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107559", - "pr_number": 107559, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "storage", - "api-machinery", - "apps" - ], - "duplicate": true - }, - "107565": { - "commit": "cf18d80d035780739575b8cc889e8f26bf36779f", - "text": "kube-apiserver: when merging lists, Server Side Apply now prefers the order of the submitted request instead of the existing persisted object.", - "markdown": "Kube-apiserver: when merging lists, Server Side Apply now prefers the order of the submitted request instead of the existing persisted object. ([#107565](https://github.com/kubernetes/kubernetes/pull/107565), [@jiahuif](https://github.com/jiahuif))", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107565", - "pr_number": 107565, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "107575": { - "commit": "807cee8ad204af0e32d8bc41e6277cc1dd88a222", - "text": "Fixed `azureFile` `volumeID` collision issue in CSI migration.", - "markdown": "Fixed `azureFile` `volumeID` collision issue in CSI migration. ([#107575](https://github.com/kubernetes/kubernetes/pull/107575), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107575", - "pr_number": 107575, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "cloud-provider" - ], - "duplicate": true - }, - "107588": { - "commit": "9c3a0e63a71c0890a5ab1aa0a267e91a81e5c441", - "text": "E0116 13:06:48.614623 66988 controller.go:233] error syncing 'default/example-foo': foos.samplecontroller.k8s.io \"example-foo\" not found, requeuing", - "markdown": "E0116 13:06:48.614623 66988 controller.go:233] error syncing 'default/example-foo': foos.samplecontroller.k8s.io \"example-foo\" not found, requeuing ([#107588](https://github.com/kubernetes/kubernetes/pull/107588), [@discordianfish](https://github.com/discordianfish)) [SIG API Machinery]", - "author": "discordianfish", - "author_url": "https://github.com/discordianfish", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107588", - "pr_number": 107588, - "kinds": [ - "documentation", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "107603": { - "commit": "24b0c3ce137566a00e0552b875786ae1e19bc654", - "text": "NONE", - "markdown": "NONE ([#107603](https://github.com/kubernetes/kubernetes/pull/107603), [@jayesh-srivastava](https://github.com/jayesh-srivastava)) [SIG Apps, CLI and Docs]", - "author": "jayesh-srivastava", - "author_url": "https://github.com/jayesh-srivastava", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107603", - "pr_number": 107603, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "apps", - "cli", - "docs" - ], - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "107604": { - "commit": "018288b38fcf4c5248c83aa2920641b565798be2", - "text": "Updated cri-tools to [v1.23.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.23.0).", - "markdown": "Updated cri-tools to [v1.23.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.23.0). ([#107604](https://github.com/kubernetes/kubernetes/pull/107604), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107604", - "pr_number": 107604, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "release", - "cloud-provider" - ], - "duplicate": true - }, - "107607": { - "commit": "5c9c181698c0a8944057c2d4c15ad78de8a96319", - "text": "'`build/dependencies.yaml`: remove the dependency on Docker. With the dockershim removal, core Kubernetes no longer\nhas to track the latest validated version of Docker.'", - "markdown": "'`build/dependencies.yaml`: remove the dependency on Docker. With the dockershim removal, core Kubernetes no longer\n has to track the latest validated version of Docker.' ([#107607](https://github.com/kubernetes/kubernetes/pull/107607), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107607", - "pr_number": 107607, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "cluster-lifecycle" - ], - "duplicate": true - }, - "107612": { - "commit": "ba1fc6f83c1c2de5d6459768e5a89e8f4e51a855", - "text": "Kubernetes is now built with Golang 1.17.6.", - "markdown": "Kubernetes is now built with Golang 1.17.6. ([#107612](https://github.com/kubernetes/kubernetes/pull/107612), [@palnabarun](https://github.com/palnabarun))", - "author": "palnabarun", - "author_url": "https://github.com/palnabarun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107612", - "pr_number": 107612, - "areas": [ - "test", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "107631": { - "commit": "68d26c868fa1b353b63a8abebb6af1d822dc5793", - "text": "Fix the bug that the outdated services may be sent to the cloud provider", - "markdown": "Fix the bug that the outdated services may be sent to the cloud provider ([#107631](https://github.com/kubernetes/kubernetes/pull/107631), [@lzhecheng](https://github.com/lzhecheng))", - "author": "lzhecheng", - "author_url": "https://github.com/lzhecheng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107631", - "pr_number": 107631, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "cloud-provider" - ], - "duplicate": true - }, - "107674": { - "commit": "5b52c4d12772c65ff5896f9268b4a4ca58a66995", - "text": "`topologySpreadConstraints` includes minDomains` field to limit the minimum number of topology domains.", - "markdown": "`topologySpreadConstraints` includes minDomains` field to limit the minimum number of topology domains. ([#107674](https://github.com/kubernetes/kubernetes/pull/107674), [@sanposhiho](https://github.com/sanposhiho))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3022", - "type": "KEP" - } - ], - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107674", - "pr_number": 107674, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "107681": { - "commit": "05b59e77175a87b7caca8b27a3ed2478df3d452e", - "text": "mark AzureDisk CSI migration as GA", - "markdown": "Mark AzureDisk CSI migration as GA ([#107681](https://github.com/kubernetes/kubernetes/pull/107681), [@andyzhangx](https://github.com/andyzhangx))", - "documentation": [ - { - "url": "https://testgrid.k8s.io/provider-azure-azuredisk-csi-driver#pr-azuredisk-csi-driver-e2e-migration", - "type": "external" - }, - { - "url": "https://testgrid.k8s.io/provider-azure-azuredisk-csi-driver#pr-azuredisk-csi-driver-e2e-migration-windows", - "type": "external" - } - ], - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107681", - "pr_number": 107681, - "areas": [ - "provider/azure" - ], - "kinds": [ - "documentation", - "feature" - ], - "sigs": [ - "storage", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "107684": { - "commit": "2134e971a68b6d63f5d142ccbeae6596e52a3b9c", - "text": "kube-proxy doesn't set the sysctl `net.ipv4.conf.all.route_localnet=1` if no IPv4 loopback address is selected by the `nodePortAddresses` configuration parameter.", - "markdown": "Kube-proxy doesn't set the sysctl `net.ipv4.conf.all.route_localnet=1` if no IPv4 loopback address is selected by the `nodePortAddresses` configuration parameter. ([#107684](https://github.com/kubernetes/kubernetes/pull/107684), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107684", - "pr_number": 107684, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "107686": { - "commit": "b14ac7f8a4fee2d65592f2af85b9e389c6600f2f", - "text": "NodeRestriction admission: nodes are now allowed to update PersistentVolumeClaim status fields `resizeStatus` and `allocatedResources` when the `RecoverVolumeExpansionFailure` feature is enabled.", - "markdown": "NodeRestriction admission: nodes are now allowed to update PersistentVolumeClaim status fields `resizeStatus` and `allocatedResources` when the `RecoverVolumeExpansionFailure` feature is enabled. ([#107686](https://github.com/kubernetes/kubernetes/pull/107686), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107686", - "pr_number": 107686, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "auth" - ], - "duplicate": true - }, - "107688": { - "commit": "05701a1309ae9f248b358bc98795605821e54b62", - "text": "Fixed a regression in 1.23 that incorrectly pruned data from array items of a custom resource that set `x-kubernetes-preserve-unknown-fields: true`.", - "markdown": "Fixed a regression in 1.23 that incorrectly pruned data from array items of a custom resource that set `x-kubernetes-preserve-unknown-fields: true`. ([#107688](https://github.com/kubernetes/kubernetes/pull/107688), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107688", - "pr_number": 107688, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "107695": { - "commit": "cbaab07b68834f2745624ba39f9fbdb4cb4771aa", - "text": "Fixed static pod add and removes restarts in certain cases.", - "markdown": "Fixed static pod add and removes restarts in certain cases. ([#107695](https://github.com/kubernetes/kubernetes/pull/107695), [@rphillips](https://github.com/rphillips))", - "author": "rphillips", - "author_url": "https://github.com/rphillips", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107695", - "pr_number": 107695, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "107725": { - "commit": "0cfb5ccd6abc692b74ab57327e816eee6f1276de", - "text": "kubeadm: improve the strict parsing of user YAML/JSON configuration files. Next to printing warnings for unknown and duplicate fields (current state), also print warnings for fields with incorrect case sensitivity - e.g. `controlPlaneEndpoint` (valid), `ControlPlaneEndpoint` (invalid). Instead of only printing warnings during `init` and `join` also print warnings when downloading the ClusterConfiguration, KubeletConfiguration or KubeProxyConfiguration objects from the cluster. This can be useful if the user has patched these objects in their respective ConfigMaps with mistakes.", - "markdown": "Kubeadm: improve the strict parsing of user YAML/JSON configuration files. Next to printing warnings for unknown and duplicate fields (current state), also print warnings for fields with incorrect case sensitivity - e.g. `controlPlaneEndpoint` (valid), `ControlPlaneEndpoint` (invalid). Instead of only printing warnings during `init` and `join` also print warnings when downloading the ClusterConfiguration, KubeletConfiguration or KubeProxyConfiguration objects from the cluster. This can be useful if the user has patched these objects in their respective ConfigMaps with mistakes. ([#107725](https://github.com/kubernetes/kubernetes/pull/107725), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107725", - "pr_number": 107725, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "107744": { - "commit": "effff78a1f8f35d2deca7cb3a754a6b8179e47aa", - "text": "NONE", - "markdown": "NONE ([#107744](https://github.com/kubernetes/kubernetes/pull/107744), [@Shubham82](https://github.com/Shubham82)) [SIG Auth]", - "author": "Shubham82", - "author_url": "https://github.com/Shubham82", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107744", - "pr_number": 107744, - "kinds": [ - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true, - "do_not_publish": true - }, - "107750": { - "commit": "22db936de30d16f5fa16efdb7084329fd823c6eb", - "text": "A node IP provided to kublet via `--node-ip` will now be preferred for when determining the node's primary IP and using the external cloud provider (CCM).", - "markdown": "A node IP provided to kublet via `--node-ip` will now be preferred for when determining the node's primary IP and using the external cloud provider (CCM). ([#107750](https://github.com/kubernetes/kubernetes/pull/107750), [@stephenfin](https://github.com/stephenfin))", - "author": "stephenfin", - "author_url": "https://github.com/stephenfin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107750", - "pr_number": 107750, - "areas": [ - "kubelet", - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "cloud-provider" - ], - "duplicate": true - }, - "107753": { - "commit": "25697c4812daa06670efb97c49db7646502ed256", - "text": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#107753](https://github.com/kubernetes/kubernetes/pull/107753), [@srikiz](https://github.com/srikiz)) [SIG Network and Testing]", - "author": "srikiz", - "author_url": "https://github.com/srikiz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107753", - "pr_number": 107753, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "107763": { - "commit": "cd117abf194bee8702f8adf11e74c8bdb6c34b5e", - "text": "e2e tests wait for `kube-root-ca.crt` to be populated in namespaces for use with projected service account tokens, reducing delays starting those test pods and errors in the logs.", - "markdown": "E2e tests wait for `kube-root-ca.crt` to be populated in namespaces for use with projected service account tokens, reducing delays starting those test pods and errors in the logs. ([#107763](https://github.com/kubernetes/kubernetes/pull/107763), [@smarterclayton](https://github.com/smarterclayton))", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107763", - "pr_number": 107763, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup", - "flake" - ], - "sigs": [ - "testing" - ], - "duplicate_kind": true - }, - "107769": { - "commit": "66445662ad7b65ffdb144b9665608f7b6a4b57a6", - "text": "No", - "markdown": "No ([#107769](https://github.com/kubernetes/kubernetes/pull/107769), [@liurupeng](https://github.com/liurupeng)) [SIG Cloud Provider and Windows]", - "author": "liurupeng", - "author_url": "https://github.com/liurupeng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107769", - "pr_number": 107769, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "windows", - "cloud-provider" - ], - "duplicate": true - }, - "107775": { - "commit": "2fb24de42b5f8550dfbf0bbb90c3ec3357627f8c", - "text": "Added details about preemption in the event for scheduling failed.", - "markdown": "Added details about preemption in the event for scheduling failed. ([#107775](https://github.com/kubernetes/kubernetes/pull/107775), [@denkensk](https://github.com/denkensk))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/902-non-preempting-priorityclass#stable-v124", - "type": "KEP" - } - ], - "author": "denkensk", - "author_url": "https://github.com/denkensk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107775", - "pr_number": 107775, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "107785": { - "commit": "eda02deda26192f5543b58097d9137fca435315a", - "text": "kubeadm: fixed a bug related to a warning printed if the `KubeletConfiguration` `resolvConf` field value does not match `/run/systemd/resolve/resolv.conf`", - "markdown": "Kubeadm: fixed a bug related to a warning printed if the `KubeletConfiguration` `resolvConf` field value does not match `/run/systemd/resolve/resolv.conf` ([#107785](https://github.com/kubernetes/kubernetes/pull/107785), [@chendave](https://github.com/chendave))", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107785", - "pr_number": 107785, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "107789": { - "commit": "be38633742e571b83874d0d926f46353d8b84ee1", - "text": "Improved handling of unmount failures when device may be in-use by another container/process.", - "markdown": "Improved handling of unmount failures when device may be in-use by another container/process. ([#107789](https://github.com/kubernetes/kubernetes/pull/107789), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107789", - "pr_number": 107789, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "107796": { - "commit": "f03c06ad572e19f31d6b65090ca6eee63a28dbc1", - "text": "Added a path `/header?key=` to `agnhost netexec` allowing one to view what the header value is of the incoming request.\n\nEx:\n\n```$ curl -H \"X-Forwarded-For: something\" 172.17.0.2:8080/header?key=X-Forwarded-For\nsomething```", - "markdown": "Added a path `/header?key=` to `agnhost netexec` allowing one to view what the header value is of the incoming request.\n \n Ex:\n \n ```$ curl -H \"X-Forwarded-For: something\" 172.17.0.2:8080/header?key=X-Forwarded-For\n something``` ([#107796](https://github.com/kubernetes/kubernetes/pull/107796), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107796", - "pr_number": 107796, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - }, - "107806": { - "commit": "e14ace92871f513c61a318213a7a2391fbae060b", - "text": "Env var for additional cli flags used in the csi-proxy binary when a Windows nodepool is created with `kube-up.sh`", - "markdown": "Env var for additional cli flags used in the csi-proxy binary when a Windows nodepool is created with `kube-up.sh` ([#107806](https://github.com/kubernetes/kubernetes/pull/107806), [@mauriciopoppe](https://github.com/mauriciopoppe))", - "author": "mauriciopoppe", - "author_url": "https://github.com/mauriciopoppe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107806", - "pr_number": 107806, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "windows", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "107845": { - "commit": "df98f75e937cb74eb2f6bc68174355210a55893a", - "text": "Failure to start a container cannot accidentally result in the pod being considered \"Succeeded\" in the presence of deletion.", - "markdown": "Failure to start a container cannot accidentally result in the pod being considered \"Succeeded\" in the presence of deletion. ([#107845](https://github.com/kubernetes/kubernetes/pull/107845), [@smarterclayton](https://github.com/smarterclayton))", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107845", - "pr_number": 107845, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "107847": { - "commit": "ce52600a3af533b155a200e2c8a494cd6fc45ad5", - "text": "Fixed a regression in 1.23 where update requests to previously persisted `Service` objects that have not been modified since 1.19 can be rejected with an incorrect `spec.clusterIPs: Required value` error.", - "markdown": "Fixed a regression in 1.23 where update requests to previously persisted `Service` objects that have not been modified since 1.19 can be rejected with an incorrect `spec.clusterIPs: Required value` error. ([#107847](https://github.com/kubernetes/kubernetes/pull/107847), [@thockin](https://github.com/thockin))", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107847", - "pr_number": 107847, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network", - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "107859": { - "commit": "96aa41513e44ea17d935c641506b9f8a5bb1aefe", - "text": "Promote IdentifyPodOS feature to beta.", - "markdown": "Promote IdentifyPodOS feature to beta. ([#107859](https://github.com/kubernetes/kubernetes/pull/107859), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-windows/2802-identify-windows-pods-apiserver-admission", - "type": "KEP" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107859", - "pr_number": 107859, - "areas": [ - "test", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "apps", - "windows", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "107880": { - "commit": "e74c42aaf2b1eff98e15d46026ce13c6be987a4e", - "text": "`kubectl create token` can now be used to request a service account token, and permission to request service account tokens is added to the `edit` and `admin` RBAC roles", - "markdown": "`kubectl create token` can now be used to request a service account token, and permission to request service account tokens is added to the `edit` and `admin` RBAC roles ([#107880](https://github.com/kubernetes/kubernetes/pull/107880), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107880", - "pr_number": 107880, - "areas": [ - "test", - "kubectl", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "107900": { - "commit": "baad1caee9dea68c6f9de9c14b23cfe6a96a80f8", - "text": "A static pod that is rapidly updated was failing to start until the Kubelet was restarted.", - "markdown": "A static pod that is rapidly updated was failing to start until the Kubelet was restarted. ([#107900](https://github.com/kubernetes/kubernetes/pull/107900), [@smarterclayton](https://github.com/smarterclayton))", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107900", - "pr_number": 107900, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "107904": { - "commit": "a4f559bfe10532bee534fefcaf4e6cc21c1e466c", - "text": "The in-tree Azure plugin has been deprecated. The Azure kubelogin plugin serves as an out-of-tree replacement via the kubectl/client-go credential plugin mechanism. Users will now see a warning in the logs regarding this deprecation.", - "markdown": "The in-tree Azure plugin has been deprecated. The Azure kubelogin plugin serves as an out-of-tree replacement via the kubectl/client-go credential plugin mechanism. Users will now see a warning in the logs regarding this deprecation. ([#107904](https://github.com/kubernetes/kubernetes/pull/107904), [@sabbey37](https://github.com/sabbey37))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/541-external-credential-providers", - "type": "KEP" - } - ], - "author": "sabbey37", - "author_url": "https://github.com/sabbey37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107904", - "pr_number": 107904, - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "auth" - ], - "duplicate_kind": true - }, - "107921": { - "commit": "3866cb91f22da6eb49dab10dd5c33385690b57b4", - "text": "The output of `kubectl describe ingress` now includes an IngressClass name if available.", - "markdown": "The output of `kubectl describe ingress` now includes an IngressClass name if available. ([#107921](https://github.com/kubernetes/kubernetes/pull/107921), [@mpuckett159](https://github.com/mpuckett159))", - "author": "mpuckett159", - "author_url": "https://github.com/mpuckett159", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107921", - "pr_number": 107921, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "107924": { - "commit": "8f5a12d7012ae345f1a47d3c89490369314ece6b", - "text": "~\u003e ~/goal/bin/stress ./reconciler.test -test.run=Test_Run_Positive_VolumeAttachMountUnmountDetach \n5s: 454 runs so far, 0 failures \n10s: 930 runs so far, 0 failures \n15s: 1415 runs so far, 0 failures \n20s: 1900 runs so far, 0 failures \n25s: 2394 runs so far, 0 failures \n30s: 2888 runs so far, 0 failures \n^C", - "markdown": "~\u003e ~/goal/bin/stress ./reconciler.test -test.run=Test_Run_Positive_VolumeAttachMountUnmountDetach \n 5s: 454 runs so far, 0 failures \n 10s: 930 runs so far, 0 failures \n 15s: 1415 runs so far, 0 failures \n 20s: 1900 runs so far, 0 failures \n 25s: 2394 runs so far, 0 failures \n 30s: 2888 runs so far, 0 failures \n ^C ([#107924](https://github.com/kubernetes/kubernetes/pull/107924), [@gnufied](https://github.com/gnufied)) [SIG Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107924", - "pr_number": 107924, - "kinds": [ - "flake" - ], - "sigs": [ - "storage" - ], - "do_not_publish": true - }, - "107956": { - "commit": "8dee712448beb92355a73a2197b63dbea8631749", - "text": "CRD deep copies should no longer contain shallow copies of `JSONSchemaProps.XValidations`.", - "markdown": "CRD deep copies should no longer contain shallow copies of `JSONSchemaProps.XValidations`. ([#107956](https://github.com/kubernetes/kubernetes/pull/107956), [@benluddy](https://github.com/benluddy))", - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107956", - "pr_number": 107956, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "107963": { - "commit": "42a12010829962c6e87cee8e4bc217d39d7a8043", - "text": "Adds a new Status subresource in Network Policy objects", - "markdown": "Adds a new Status subresource in Network Policy objects ([#107963](https://github.com/kubernetes/kubernetes/pull/107963), [@rikatz](https://github.com/rikatz))", - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107963", - "pr_number": 107963, - "areas": [ - "test", - "apiserver", - "code-generation", - "network-policy" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "107967": { - "commit": "a3301946010ed6618b3f61f384623b1168260a4f", - "text": "`kubectl version` now fails when given extra arguments.", - "markdown": "`kubectl version` now fails when given extra arguments. ([#107967](https://github.com/kubernetes/kubernetes/pull/107967), [@jlsong01](https://github.com/jlsong01))", - "author": "jlsong01", - "author_url": "https://github.com/jlsong01", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107967", - "pr_number": 107967, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "107970": { - "commit": "4c300ff5bffc1e999034958715262b4f98a23072", - "text": "Fixed OpenAPI serialization of the x-kubernetes-validations field", - "markdown": "Fixed OpenAPI serialization of the x-kubernetes-validations field ([#107970](https://github.com/kubernetes/kubernetes/pull/107970), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107970", - "pr_number": 107970, - "areas": [ - "dependency" - ], - "kinds": [ - "bug", - "api-change", - "flake" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "107974": { - "commit": "0e31414f3e6b2ee917d1bb012a92de6ad2e7f83a", - "text": "The scheduler prints info logs when the extender returned an error. (`--v\u003e5`)", - "markdown": "The scheduler prints info logs when the extender returned an error. (`--v\u003e5`) ([#107974](https://github.com/kubernetes/kubernetes/pull/107974), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107974", - "pr_number": 107974, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "107979": { - "commit": "7cf5c02980404d12da4eedac4e72df6045e8a382", - "text": "The `.spec.loadBalancerClass` field for Services is now generally available.", - "markdown": "The `.spec.loadBalancerClass` field for Services is now generally available. ([#107979](https://github.com/kubernetes/kubernetes/pull/107979), [@XudongLiuHarold](https://github.com/XudongLiuHarold))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cloud-provider/1959-service-lb-class-field", - "type": "KEP" - }, - { - "description": "[Issue]", - "url": "https://github.com/kubernetes/enhancements/issues/1959", - "type": "KEP" - } - ], - "author": "XudongLiuHarold", - "author_url": "https://github.com/XudongLiuHarold", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107979", - "pr_number": 107979, - "areas": [ - "test", - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "107981": { - "commit": "9d18c761af091fd047e12c764b8fd0809e0e7207", - "text": "This code change fixes the bug that UDP services would trigger unnecessary LoadBalancer updates. The root cause is that a field not working for non-TCP protocols is considered.\nref: https://github.com/kubernetes-sigs/cloud-provider-azure/pull/1090", - "markdown": "This code change fixes the bug that UDP services would trigger unnecessary LoadBalancer updates. The root cause is that a field not working for non-TCP protocols is considered.\n ref: https://github.com/kubernetes-sigs/cloud-provider-azure/pull/1090 ([#107981](https://github.com/kubernetes/kubernetes/pull/107981), [@lzhecheng](https://github.com/lzhecheng))", - "author": "lzhecheng", - "author_url": "https://github.com/lzhecheng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107981", - "pr_number": 107981, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "107982": { - "commit": "9f791bbf5b0e27521a33ab63f6a4c16a677e20f4", - "text": "kubeadm: fixed the bug that `kubeadm certs generate-csr` command does not remove duplicated SANs", - "markdown": "Kubeadm: fixed the bug that `kubeadm certs generate-csr` command does not remove duplicated SANs ([#107982](https://github.com/kubernetes/kubernetes/pull/107982), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107982", - "pr_number": 107982, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "107986": { - "commit": "a6e65a246c31ab874dac50ad5a2f1f0ce5bdcdfb", - "text": "Promoted graceful shutdown based on pod priority to beta", - "markdown": "Promoted graceful shutdown based on pod priority to beta ([#107986](https://github.com/kubernetes/kubernetes/pull/107986), [@wzshiming](https://github.com/wzshiming))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2712-pod-priority-based-graceful-node-shutdown/README.md", - "type": "KEP" - } - ], - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107986", - "pr_number": 107986, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "107997": { - "commit": "343125cc6c4a8b83b6fad8778d9fc1cd7ad1f947", - "text": "Fixes bug in CronJob Controller V2 where it would lose track of jobs upon job template labels change.", - "markdown": "Fixes bug in CronJob Controller V2 where it would lose track of jobs upon job template labels change. ([#107997](https://github.com/kubernetes/kubernetes/pull/107997), [@d-honeybadger](https://github.com/d-honeybadger))", - "author": "d-honeybadger", - "author_url": "https://github.com/d-honeybadger", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107997", - "pr_number": 107997, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "108000": { - "commit": "bbc2dbb98019f2fa7403b1b588e92b438c2f9c70", - "text": "Existing InTree AzureFile PVs which don't have a secret namespace defined will now work properly after enabling CSI migration - the namespace will be obtained from ClaimRef.", - "markdown": "Existing InTree AzureFile PVs which don't have a secret namespace defined will now work properly after enabling CSI migration - the namespace will be obtained from ClaimRef. ([#108000](https://github.com/kubernetes/kubernetes/pull/108000), [@RomanBednar](https://github.com/RomanBednar))", - "author": "RomanBednar", - "author_url": "https://github.com/RomanBednar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108000", - "pr_number": 108000, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "cloud-provider" - ], - "duplicate": true - }, - "108004": { - "commit": "7858fc93e5c61ad87e6e2fafa5df33806b38bf28", - "text": "Add the metric `container_oom_events_total` to kubelet's cAdvisor metric endpoint.", - "markdown": "Add the metric `container_oom_events_total` to kubelet's cAdvisor metric endpoint. ([#108004](https://github.com/kubernetes/kubernetes/pull/108004), [@jonkerj](https://github.com/jonkerj))", - "author": "jonkerj", - "author_url": "https://github.com/jonkerj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108004", - "pr_number": 108004, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "108013": { - "commit": "59fad3c6be9c339b9cf165333905573981438b22", - "text": "CRD writes will generate validation errors if a CEL validation rule references the identifier `oldSelf` on a part of the schema that does not support it.", - "markdown": "CRD writes will generate validation errors if a CEL validation rule references the identifier `oldSelf` on a part of the schema that does not support it. ([#108013](https://github.com/kubernetes/kubernetes/pull/108013), [@benluddy](https://github.com/benluddy))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/0ad0fc8269165ca300d05ca51c7ce190a79976a5/keps/sig-api-machinery/2876-crd-validation-expression-language#transition-rules", - "type": "KEP" - } - ], - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108013", - "pr_number": 108013, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "108016": { - "commit": "64e711085b6febbe40031cf971590f40299f5b7f", - "text": "The `v1` version of `LeaderMigrationConfiguration` supports only `leases` API for leader election. To use formerly supported mechanisms, please continue using `v1beta1`.", - "markdown": "The `v1` version of `LeaderMigrationConfiguration` supports only `leases` API for leader election. To use formerly supported mechanisms, please continue using `v1beta1`. ([#108016](https://github.com/kubernetes/kubernetes/pull/108016), [@jiahuif](https://github.com/jiahuif))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2436", - "type": "KEP" - } - ], - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108016", - "pr_number": 108016, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "108017": { - "commit": "f538b0b105552abeb2c52a3cc3650c108acb1429", - "text": "Add a deprecated cmd flag for the time interval between flushing pods from unschedulable queue to active queue or backoff queue.", - "markdown": "Add a deprecated cmd flag for the time interval between flushing pods from unschedulable queue to active queue or backoff queue. ([#108017](https://github.com/kubernetes/kubernetes/pull/108017), [@denkensk](https://github.com/denkensk))", - "author": "denkensk", - "author_url": "https://github.com/denkensk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108017", - "pr_number": 108017, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "108020": { - "commit": "49dc22638164c415fd2c13d8a5f2013ca62151d1", - "text": "Remove `tolerate-unready-endpoints` annotation in Service deprecated from 1.11, use `Service.spec.publishNotReadyAddresses` instead.", - "markdown": "Remove `tolerate-unready-endpoints` annotation in Service deprecated from 1.11, use `Service.spec.publishNotReadyAddresses` instead. ([#108020](https://github.com/kubernetes/kubernetes/pull/108020), [@tossmilestone](https://github.com/tossmilestone))", - "author": "tossmilestone", - "author_url": "https://github.com/tossmilestone", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108020", - "pr_number": 108020, - "kinds": [ - "deprecation" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "108027": { - "commit": "d374c954deb3a3da62f1fb0055842530ff8c9451", - "text": "kubeadm: graduated the `UnversionedKubeletConfigMap` feature gate to Beta and enabled the feature by default. This implies that 1) for new clusters kubeadm will start using the `kube-system/kubelet-config` naming scheme for the kubelet ConfigMap and RBAC rules, instead of the legacy `kubelet-config-x.yy` naming. 2) during upgrade, kubeadm will only write the new scheme ConfigMap and RBAC objects. To disable the feature you can pass `UnversionedKubeletConfigMap: false` in the kubeadm config for new clusters. For upgrade on existing clusters you can also override the behavior by patching the ClusterConfiguration object in `kube-system/kubeadm-config`. More details in the associated KEP.", - "markdown": "Kubeadm: graduated the `UnversionedKubeletConfigMap` feature gate to Beta and enabled the feature by default. This implies that 1) for new clusters kubeadm will start using the `kube-system/kubelet-config` naming scheme for the kubelet ConfigMap and RBAC rules, instead of the legacy `kubelet-config-x.yy` naming. 2) during upgrade, kubeadm will only write the new scheme ConfigMap and RBAC objects. To disable the feature you can pass `UnversionedKubeletConfigMap: false` in the kubeadm config for new clusters. For upgrade on existing clusters you can also override the behavior by patching the ClusterConfiguration object in `kube-system/kubeadm-config`. More details in the associated KEP. ([#108027](https://github.com/kubernetes/kubernetes/pull/108027), [@neolit123](https://github.com/neolit123))", - "documentation": [ - { - "url": "https://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/2915-kubeadm-replace-kubelet-config-x.y", - "type": "external" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108027", - "pr_number": 108027, - "areas": [ - "test", - "kubeadm" - ], - "kinds": [ - "feature", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108032": { - "commit": "0f2300575c805bb70ba181957684361bcd25f86a", - "text": "This adds an optional `timeZone` field as part of the CronJob spec to support running cron jobs in a specific time zone.", - "markdown": "This adds an optional `timeZone` field as part of the CronJob spec to support running cron jobs in a specific time zone. ([#108032](https://github.com/kubernetes/kubernetes/pull/108032), [@deejross](https://github.com/deejross))", - "author": "deejross", - "author_url": "https://github.com/deejross", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108032", - "pr_number": 108032, - "areas": [ - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108034": { - "commit": "344bf270ee094fe85c438f7e206dd24f4b69884e", - "text": "The script `cluster/gce/gci/configure.sh` now supports downloading `crictl` on ARM64 nodes", - "markdown": "The script `cluster/gce/gci/configure.sh` now supports downloading `crictl` on ARM64 nodes ([#108034](https://github.com/kubernetes/kubernetes/pull/108034), [@tstapler](https://github.com/tstapler))", - "author": "tstapler", - "author_url": "https://github.com/tstapler", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108034", - "pr_number": 108034, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "108038": { - "commit": "d79ea9ea33834fd5a22ed893e92d3f251eddfb91", - "text": "Removed feature gate `SetHostnameAsFQDN`.", - "markdown": "Removed feature gate `SetHostnameAsFQDN`. ([#108038](https://github.com/kubernetes/kubernetes/pull/108038), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108038", - "pr_number": 108038, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "108045": { - "commit": "efa5692c0b5f01bd33d8a112ab98b386300198e7", - "text": "The `--pod-infra-container-image` kubelet flag is deprecated and will be removed in future releases", - "markdown": "The `--pod-infra-container-image` kubelet flag is deprecated and will be removed in future releases ([#108045](https://github.com/kubernetes/kubernetes/pull/108045), [@hakman](https://github.com/hakman))", - "author": "hakman", - "author_url": "https://github.com/hakman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108045", - "pr_number": 108045, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "108052": { - "commit": "e24b5333e5667a4d34e48d6051082e61823e6aab", - "text": "Fixed bug in `TopologyManager` for ensuring aligned allocations on machines with more than 2 NUMA nodes", - "markdown": "Fixed bug in `TopologyManager` for ensuring aligned allocations on machines with more than 2 NUMA nodes ([#108052](https://github.com/kubernetes/kubernetes/pull/108052), [@klueska](https://github.com/klueska))", - "author": "klueska", - "author_url": "https://github.com/klueska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108052", - "pr_number": 108052, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "108053": { - "commit": "f06baf9f36a5d973ad84779bbca44f2fb4a93483", - "text": "kubectl stack traces now only print at verbose `-v=99` and not `-v=6`", - "markdown": "Kubectl stack traces now only print at verbose `-v=99` and not `-v=6` ([#108053](https://github.com/kubernetes/kubernetes/pull/108053), [@eddiezane](https://github.com/eddiezane))", - "author": "eddiezane", - "author_url": "https://github.com/eddiezane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108053", - "pr_number": 108053, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "108059": { - "commit": "8bae9bea45de30cc8eb3a3da604abd01376ffbd8", - "text": "[k8s.io/utils/clock]: IntervalClock is now deprecated in favour of SimpleIntervalClock", - "markdown": "[k8s.io/utils/clock]: IntervalClock is now deprecated in favour of SimpleIntervalClock ([#108059](https://github.com/kubernetes/kubernetes/pull/108059), [@RaghavRoy145](https://github.com/RaghavRoy145))", - "author": "RaghavRoy145", - "author_url": "https://github.com/RaghavRoy145", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108059", - "pr_number": 108059, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "108062": { - "commit": "a1ac74224eac04dae21fcee2b32f8e914111ec9f", - "text": "kube-apiserver: the `--master-count` flag and `--endpoint-reconciler-type=master-count` reconciler are deprecated in favor of the lease reconciler", - "markdown": "Kube-apiserver: the `--master-count` flag and `--endpoint-reconciler-type=master-count` reconciler are deprecated in favor of the lease reconciler ([#108062](https://github.com/kubernetes/kubernetes/pull/108062), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108062", - "pr_number": 108062, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "108073": { - "commit": "ef404e989d6c3cf83987773d0ece3c6c4ece8489", - "text": "CEL CRD validation expressions may now reference existing object state using the identifier `oldSelf`.", - "markdown": "CEL CRD validation expressions may now reference existing object state using the identifier `oldSelf`. ([#108073](https://github.com/kubernetes/kubernetes/pull/108073), [@benluddy](https://github.com/benluddy))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/787e5513d09096756c61aaba1916a73cb1dd348b/keps/sig-api-machinery/2876-crd-validation-expression-language#transition-rules", - "type": "KEP" - } - ], - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108073", - "pr_number": 108073, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108078": { - "commit": "0dc83fe6969f7012dcaf4fcbe90f9eb55b81db4e", - "text": "Prevent unnecessary `Endpoints` and `EndpointSlice` updates caused by `Pod ResourceVersion` change", - "markdown": "Prevent unnecessary `Endpoints` and `EndpointSlice` updates caused by `Pod ResourceVersion` change ([#108078](https://github.com/kubernetes/kubernetes/pull/108078), [@tnqn](https://github.com/tnqn))", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108078", - "pr_number": 108078, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "108091": { - "commit": "6669a016aec0f56b3e949858cd51503fb1b01a06", - "text": "Kubernetes is now built with Golang 1.17.7", - "markdown": "Kubernetes is now built with Golang 1.17.7 ([#108091](https://github.com/kubernetes/kubernetes/pull/108091), [@xmudrii](https://github.com/xmudrii))", - "author": "xmudrii", - "author_url": "https://github.com/xmudrii", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108091", - "pr_number": 108091, - "areas": [ - "test", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "108092": { - "commit": "19762408612e49401aa46d8396c7032462fe5ab0", - "text": "kube-apiserver: `--audit-log-version` and `--audit-webhook-version` now only support the default value of `audit.k8s.io/v1`. The v1alpha1 and v1beta1 audit log versions, deprecated since 1.13, have been removed.", - "markdown": "Kube-apiserver: `--audit-log-version` and `--audit-webhook-version` now only support the default value of `audit.k8s.io/v1`. The v1alpha1 and v1beta1 audit log versions, deprecated since 1.13, have been removed. ([#108092](https://github.com/kubernetes/kubernetes/pull/108092), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108092", - "pr_number": 108092, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108107": { - "commit": "a41f9e976da10af28169cbbfebbce5ad4ba965f0", - "text": "The kubelet no longer forcefully closes active connections on heartbeat failures, using the HTTP2 health check mechanism to detect broken connections. Users can force the previous behavior of the kubelet by setting the environment variable DISABLE_HTTP2.", - "markdown": "The kubelet no longer forcefully closes active connections on heartbeat failures, using the HTTP2 health check mechanism to detect broken connections. Users can force the previous behavior of the kubelet by setting the environment variable DISABLE_HTTP2. ([#108107](https://github.com/kubernetes/kubernetes/pull/108107), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108107", - "pr_number": 108107, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "api-machinery" - ], - "duplicate": true - }, - "108129": { - "commit": "8a6439d2b1a56d2875d607803d376aa7406aa508", - "text": "Suspend job to GA. The feature gate `SuspendJob` is locked and will be removed in 1.26.", - "markdown": "Suspend job to GA. The feature gate `SuspendJob` is locked and will be removed in 1.26. ([#108129](https://github.com/kubernetes/kubernetes/pull/108129), [@ahg-g](https://github.com/ahg-g))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2232-suspend-jobs", - "type": "KEP" - } - ], - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108129", - "pr_number": 108129, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108136": { - "commit": "d5263feb038825197ab426237b111086822366be", - "text": "pod affinity namespace selector and cross-namespace quota graduated to GA. The feature gate `PodAffinityNamespaceSelector` is locked and will be removed in 1.26.", - "markdown": "Pod affinity namespace selector and cross-namespace quota graduated to GA. The feature gate `PodAffinityNamespaceSelector` is locked and will be removed in 1.26. ([#108136](https://github.com/kubernetes/kubernetes/pull/108136), [@ahg-g](https://github.com/ahg-g))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/2249-pod-affinity-namespace-selector", - "type": "KEP" - } - ], - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108136", - "pr_number": 108136, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108138": { - "commit": "a37b6fc8b488a07839e6426e5d7ce4a5165cfe73", - "text": "Fixes a regression in v1beta1 PodDisruptionBudget handling of `strategic merge patch`-type API requests for the `selector` field. Prior to 1.21, these requests would merge `matchLabels` content and replace `matchExpressions` content. In 1.21, patch requests touching the `selector` field started replacing the entire selector. This is consistent with server-side apply and the v1 PodDisruptionBudget behavior, but should not have been changed for v1beta1.", - "markdown": "Fixes a regression in v1beta1 PodDisruptionBudget handling of `strategic merge patch`-type API requests for the `selector` field. Prior to 1.21, these requests would merge `matchLabels` content and replace `matchExpressions` content. In 1.21, patch requests touching the `selector` field started replacing the entire selector. This is consistent with server-side apply and the v1 PodDisruptionBudget behavior, but should not have been changed for v1beta1. ([#108138](https://github.com/kubernetes/kubernetes/pull/108138), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108138", - "pr_number": 108138, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "api-change", - "regression" - ], - "sigs": [ - "auth", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "108146": { - "commit": "faf7ad612057f34d34491c039f91331ba311919f", - "text": "Updating kubelet permissions check for Windows nodes to see if process is elevated instead of checking if process owner is in Administrators group", - "markdown": "Updating kubelet permissions check for Windows nodes to see if process is elevated instead of checking if process owner is in Administrators group ([#108146](https://github.com/kubernetes/kubernetes/pull/108146), [@marosset](https://github.com/marosset))", - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108146", - "pr_number": 108146, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true - }, - "108149": { - "commit": "b68063fce7abf62c69c257610d93ed3eb100956a", - "text": "fixed: do not return early in the node informer when there is no change of the topology label.", - "markdown": "Fixed: do not return early in the node informer when there is no change of the topology label. ([#108149](https://github.com/kubernetes/kubernetes/pull/108149), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108149", - "pr_number": 108149, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "cloud-provider" - ], - "duplicate_kind": true - }, - "108154": { - "commit": "422001df8b694f20e7c781808408a470bed3249c", - "text": "Improved algorithm for selecting `best` non-preferred hint in the TopologyManager", - "markdown": "Improved algorithm for selecting `best` non-preferred hint in the TopologyManager ([#108154](https://github.com/kubernetes/kubernetes/pull/108154), [@klueska](https://github.com/klueska))", - "author": "klueska", - "author_url": "https://github.com/klueska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108154", - "pr_number": 108154, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "108167": { - "commit": "66daef4aa7bc63521828f2977a3202e50a81e5aa", - "text": "Fixed a bug in attachdetach controller that didn't properly handle kube-apiserver errors leading to stuck attachments/detachments.", - "markdown": "Fixed a bug in attachdetach controller that didn't properly handle kube-apiserver errors leading to stuck attachments/detachments. ([#108167](https://github.com/kubernetes/kubernetes/pull/108167), [@jfremy](https://github.com/jfremy))", - "author": "jfremy", - "author_url": "https://github.com/jfremy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108167", - "pr_number": 108167, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "108198": { - "commit": "5699e6d3eaaa04e47fe3ea44217fe1974d3847de", - "text": "Fixed a bug where a partial `EndpointSlice` update could cause node name information to be dropped from endpoints that were not updated.", - "markdown": "Fixed a bug where a partial `EndpointSlice` update could cause node name information to be dropped from endpoints that were not updated. ([#108198](https://github.com/kubernetes/kubernetes/pull/108198), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108198", - "pr_number": 108198, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "108209": { - "commit": "2355747e7c14fdf7b6ce824a91d04697ec084922", - "text": "Increase Azure ACR credential provider timeout", - "markdown": "Increase Azure ACR credential provider timeout ([#108209](https://github.com/kubernetes/kubernetes/pull/108209), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108209", - "pr_number": 108209, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "108224": { - "commit": "8f3636e8ac6f6e9a27c9dcca29643c48342ab21b", - "text": "Kube-proxy in iptables mode now only logs the full iptables input at `-v=9` rather than `-v=5`.", - "markdown": "Kube-proxy in iptables mode now only logs the full iptables input at `-v=9` rather than `-v=5`. ([#108224](https://github.com/kubernetes/kubernetes/pull/108224), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108224", - "pr_number": 108224, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "108253": { - "commit": "7cc4fcd802edf888fd2f21a20194c392ee4a2edd", - "text": "The `e2e.test` binary supports a new `--kubelet-root` parameter to override the default `/var/lib/kubelet` path. CSI storage tests use this.", - "markdown": "The `e2e.test` binary supports a new `--kubelet-root` parameter to override the default `/var/lib/kubelet` path. CSI storage tests use this. ([#108253](https://github.com/kubernetes/kubernetes/pull/108253), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108253", - "pr_number": 108253, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "node", - "testing" - ], - "duplicate": true - }, - "108278": { - "commit": "bf7b9119f03b83e373907dea09348d6878f30e7f", - "text": "Feature of `DefaultPodTopologySpread` is graduated to GA", - "markdown": "Feature of `DefaultPodTopologySpread` is graduated to GA ([#108278](https://github.com/kubernetes/kubernetes/pull/108278), [@kerthcet](https://github.com/kerthcet))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/1258-default-pod-topology-spread", - "type": "KEP" - } - ], - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108278", - "pr_number": 108278, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "duplicate_kind": true - }, - "108290": { - "commit": "b9792a9daef4d978c5c30b6d10cbcdfa77a9b6ac", - "text": "Introduce a v1alpha1 networking API for ClusterCIDRConfig", - "markdown": "Introduce a v1alpha1 networking API for ClusterCIDRConfig ([#108290](https://github.com/kubernetes/kubernetes/pull/108290), [@sarveshr7](https://github.com/sarveshr7))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2594", - "type": "KEP" - } - ], - "author": "sarveshr7", - "author_url": "https://github.com/sarveshr7", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108290", - "pr_number": 108290, - "areas": [ - "test", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108296": { - "commit": "5ee80dee042d9b83a20031469606af0d2fb8d815", - "text": "client-go: add new histogram metric to record the size of the requests and responses.", - "markdown": "Client-go: add new histogram metric to record the size of the requests and responses. ([#108296](https://github.com/kubernetes/kubernetes/pull/108296), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108296", - "pr_number": 108296, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "108309": { - "commit": "88f97283393715c7fa870dd90be0fd0d0faad6bd", - "text": "The `LegacyServiceAccountTokenNoAutoGeneration` feature gate is beta, and enabled by default. When enabled, Secret API objects containing service account tokens are no longer auto-generated for every ServiceAccount. Use the [TokenRequest](https://kubernetes.io/docs/reference/kubernetes-api/authentication-resources/token-request-v1/) API to acquire service account tokens, or if a non-expiring token is required, create a Secret API object for the token controller to populate with a service account token by following this [guide](https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets).", - "markdown": "The `LegacyServiceAccountTokenNoAutoGeneration` feature gate is beta, and enabled by default. When enabled, Secret API objects containing service account tokens are no longer auto-generated for every ServiceAccount. Use the [TokenRequest](https://kubernetes.io/docs/reference/kubernetes-api/authentication-resources/token-request-v1/) API to acquire service account tokens, or if a non-expiring token is required, create a Secret API object for the token controller to populate with a service account token by following this [guide](https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets). ([#108309](https://github.com/kubernetes/kubernetes/pull/108309), [@zshihang](https://github.com/zshihang))", - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108309", - "pr_number": 108309, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "108312": { - "commit": "a83bb7746c18caa53fafdeaa882cbb21a120547c", - "text": "CRD `x-kubernetes-validations` rules now support the CEL functions: `isSorted`, `sum`, `min`, `max`, `indexOf`, `lastIndexOf`, `find` and `findAll`.", - "markdown": "CRD `x-kubernetes-validations` rules now support the CEL functions: `isSorted`, `sum`, `min`, `max`, `indexOf`, `lastIndexOf`, `find` and `findAll`. ([#108312](https://github.com/kubernetes/kubernetes/pull/108312), [@jpbetz](https://github.com/jpbetz))", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108312", - "pr_number": 108312, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "108315": { - "commit": "4fcfc58d1b5153c30a9667e8891547759e36727d", - "text": "kubeadm: better surface errors during `kubeadm upgrade` when waiting for the kubelet to restart static pods on control plane nodes", - "markdown": "Kubeadm: better surface errors during `kubeadm upgrade` when waiting for the kubelet to restart static pods on control plane nodes ([#108315](https://github.com/kubernetes/kubernetes/pull/108315), [@Monokaix](https://github.com/Monokaix))", - "author": "Monokaix", - "author_url": "https://github.com/Monokaix", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108315", - "pr_number": 108315, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "108341": { - "commit": "3213a92802b91ed718578f51b14916105fb0c3da", - "text": "`kube-addon-manager` image version is bumped to 9.1.6", - "markdown": "`kube-addon-manager` image version is bumped to 9.1.6 ([#108341](https://github.com/kubernetes/kubernetes/pull/108341), [@zshihang](https://github.com/zshihang))", - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108341", - "pr_number": 108341, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scalability", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "108350": { - "commit": "c18c2447cf602ee1a76113200b3f5b6200a24a34", - "text": "Changes the kubectl `--validate` flag from a bool to a string that accepts the values {true, strict, warn, false, ignore}\n- true/strict - perform validation and error the request on any invalid fields in the ojbect. It will attempt to perform server-side validation if it is enabled on the apiserver, otherwise it will fall back to client-side validation.\n- warn - perform server-side validation and warn on any invalid fields (but ultimately let the request succeed by dropping any invalid fields from the object). If validation is not available on the server, perform no validation.\n- false/ignore - perform no validation, silently dropping invalid fields from the object.", - "markdown": "Changes the kubectl `--validate` flag from a bool to a string that accepts the values {true, strict, warn, false, ignore}\n - true/strict - perform validation and error the request on any invalid fields in the ojbect. It will attempt to perform server-side validation if it is enabled on the apiserver, otherwise it will fall back to client-side validation.\n - warn - perform server-side validation and warn on any invalid fields (but ultimately let the request succeed by dropping any invalid fields from the object). If validation is not available on the server, perform no validation.\n - false/ignore - perform no validation, silently dropping invalid fields from the object. ([#108350](https://github.com/kubernetes/kubernetes/pull/108350), [@kevindelgado](https://github.com/kevindelgado))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/2885-server-side-unknown-field-validation", - "type": "KEP" - } - ], - "author": "kevindelgado", - "author_url": "https://github.com/kevindelgado", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108350", - "pr_number": 108350, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "108366": { - "commit": "9e50a332d8fcbec104e7ff90a01aa215c8ea72e6", - "text": "Fixed a regression that could incorrectly reject pods with `OutOfCpu` errors if they were rapidly scheduled after other pods were reported as complete in the API. The Kubelet now waits to report the phase of a pod as terminal in the API until all running containers are guaranteed to have stopped and no new containers can be started. Short-lived pods may take slightly longer (~1s) to report Succeeded or Failed after this change.", - "markdown": "Fixed a regression that could incorrectly reject pods with `OutOfCpu` errors if they were rapidly scheduled after other pods were reported as complete in the API. The Kubelet now waits to report the phase of a pod as terminal in the API until all running containers are guaranteed to have stopped and no new containers can be started. Short-lived pods may take slightly longer (~1s) to report Succeeded or Failed after this change. ([#108366](https://github.com/kubernetes/kubernetes/pull/108366), [@smarterclayton](https://github.com/smarterclayton))", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108366", - "pr_number": 108366, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "108394": { - "commit": "162f8d5bac870d41bbc63dbeb4922b4eab1b8800", - "text": "The `WarningHeaders` feature gate that is GA since v1.22 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument.", - "markdown": "The `WarningHeaders` feature gate that is GA since v1.22 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#108394](https://github.com/kubernetes/kubernetes/pull/108394), [@ialidzhikov](https://github.com/ialidzhikov))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1693-warnings", - "type": "KEP" - } - ], - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108394", - "pr_number": 108394, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "108400": { - "commit": "370b7cc25cc2357eb8cc44774ded599b8529e2e9", - "text": "Support in-tree PV deletion protection finalizer.", - "markdown": "Support in-tree PV deletion protection finalizer. ([#108400](https://github.com/kubernetes/kubernetes/pull/108400), [@deepakkinni](https://github.com/deepakkinni))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3181", - "type": "KEP" - } - ], - "author": "deepakkinni", - "author_url": "https://github.com/deepakkinni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108400", - "pr_number": 108400, - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "apps" - ], - "feature": true, - "duplicate": true - }, - "108410": { - "commit": "6f1612dcae9eddd3e12223d417662971c63952fa", - "text": "kubeadm: fixed a bug when using `kubeadm init --dry-run` with certificate authority files (`ca.key` / `ca.crt`) present in `/etc/kubernetes/pki`)", - "markdown": "Kubeadm: fixed a bug when using `kubeadm init --dry-run` with certificate authority files (`ca.key` / `ca.crt`) present in `/etc/kubernetes/pki`) ([#108410](https://github.com/kubernetes/kubernetes/pull/108410), [@Haleygo](https://github.com/Haleygo))", - "author": "Haleygo", - "author_url": "https://github.com/Haleygo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108410", - "pr_number": 108410, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "108423": { - "commit": "1160923ae630fdcc2624c37c4e4f784bc61a5dd1", - "text": "API server's deprecated `--experimental-encryption-provider-config` flag is now removed. Adapt your machinery to use the `--encryption-provider-config` flag that is available since v1.13.", - "markdown": "API server's deprecated `--experimental-encryption-provider-config` flag is now removed. Adapt your machinery to use the `--encryption-provider-config` flag that is available since v1.13. ([#108423](https://github.com/kubernetes/kubernetes/pull/108423), [@ialidzhikov](https://github.com/ialidzhikov))", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108423", - "pr_number": 108423, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "108429": { - "commit": "4737127b57d02051dfa9f5f263bcb5049516db1c", - "text": "Allow KUBE_TEST_REPO_LIST to be a remote url", - "markdown": "Allow KUBE_TEST_REPO_LIST to be a remote url ([#108429](https://github.com/kubernetes/kubernetes/pull/108429), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108429", - "pr_number": 108429, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "108432": { - "commit": "0b3629ae7d65ef4eb7e36e66ceda0a273c2700a6", - "text": "No", - "markdown": "No ([#108432](https://github.com/kubernetes/kubernetes/pull/108432), [@iXinqi](https://github.com/iXinqi)) [SIG Testing and Windows]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/pull/2975", - "type": "KEP" - } - ], - "author": "iXinqi", - "author_url": "https://github.com/iXinqi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108432", - "pr_number": 108432, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "windows", - "testing" - ], - "feature": true, - "duplicate": true - }, - "108437": { - "commit": "82755e3cb2fa8742ac05749058c6f6d991ed2061", - "text": "bump `sigs.k8s.io/apiserver-network-proxy/konnectivity-client@v0.0.30` to fix a goroutine leak in kube-apiserver when using egress selctor with the gRPC mode.", - "markdown": "Bump `sigs.k8s.io/apiserver-network-proxy/konnectivity-client@v0.0.30` to fix a goroutine leak in kube-apiserver when using egress selctor with the gRPC mode. ([#108437](https://github.com/kubernetes/kubernetes/pull/108437), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108437", - "pr_number": 108437, - "areas": [ - "apiserver", - "cloudprovider", - "provider/gcp", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider" - ], - "duplicate": true - }, - "108441": { - "commit": "a504daa0484d35d07f144e3f65f5a481570e96ec", - "text": "Feature of `PodOverhead` is graduated to GA", - "markdown": "Feature of `PodOverhead` is graduated to GA ([#108441](https://github.com/kubernetes/kubernetes/pull/108441), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/688-pod-overhead", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108441", - "pr_number": 108441, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108445": { - "commit": "24a71990e02edbfd0a05f4abfdedcab991525874", - "text": "CSIStorageCapacity.storage.k8s.io: The v1beta1 version of this API is deprecated in favor of v1, and will be removed in v1.27. If a CSI driver supports storage capacity tracking, then it must get deployed with a release of external-provisioner that supports the v1 API.", - "markdown": "CSIStorageCapacity.storage.k8s.io: The v1beta1 version of this API is deprecated in favor of v1, and will be removed in v1.27. If a CSI driver supports storage capacity tracking, then it must get deployed with a release of external-provisioner that supports the v1 API. ([#108445](https://github.com/kubernetes/kubernetes/pull/108445), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1472", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/storage/storage-capacity/", - "type": "official" - }, - { - "description": "[Other doc]", - "url": "https://kubernetes-csi.github.io/docs/storage-capacity-tracking.html", - "type": "external" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108445", - "pr_number": 108445, - "areas": [ - "test", - "apiserver", - "conformance", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "api-machinery", - "auth", - "testing", - "architecture" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108448": { - "commit": "6224458dc2440b580012434ea1ed951af98d86f3", - "text": "The API server's deprecated `--deserialization-cache-size` flag is now removed.", - "markdown": "The API server's deprecated `--deserialization-cache-size` flag is now removed. ([#108448](https://github.com/kubernetes/kubernetes/pull/108448), [@ialidzhikov](https://github.com/ialidzhikov))", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108448", - "pr_number": 108448, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "108450": { - "commit": "da23196df6d519c657a27c68932c62aa35e87dc5", - "text": "Endpoints and EndpointSlice controllers no longer populate [resourceVersion of targetRef](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-reference/#ObjectReference) in Endpoints and EndpointSlices", - "markdown": "Endpoints and EndpointSlice controllers no longer populate [resourceVersion of targetRef](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-reference/#ObjectReference) in Endpoints and EndpointSlices ([#108450](https://github.com/kubernetes/kubernetes/pull/108450), [@tnqn](https://github.com/tnqn))", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108450", - "pr_number": 108450, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "108455": { - "commit": "9bb5823b83c2929b059498b1e59c08261257126b", - "text": "Fix a race in the timeout handler that could lead to kube-apiserver crashes", - "markdown": "Fix a race in the timeout handler that could lead to kube-apiserver crashes ([#108455](https://github.com/kubernetes/kubernetes/pull/108455), [@Argh4k](https://github.com/Argh4k))", - "author": "Argh4k", - "author_url": "https://github.com/Argh4k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108455", - "pr_number": 108455, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "108457": { - "commit": "ad46b4f9215ce34fe316e4473767531456a81188", - "text": "API server's deprecated `--target-ram-mb` flag is now removed.", - "markdown": "API server's deprecated `--target-ram-mb` flag is now removed. ([#108457](https://github.com/kubernetes/kubernetes/pull/108457), [@ialidzhikov](https://github.com/ialidzhikov))", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108457", - "pr_number": 108457, - "areas": [ - "test", - "apiserver", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scalability", - "api-machinery", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "108458": { - "commit": "897f2f78a5c7ff659dfce23f53dd36b9261a23c9", - "text": "When invoked with `-list-images`, the `e2e.test` binary now also lists the images that might be needed for storage tests.", - "markdown": "When invoked with `-list-images`, the `e2e.test` binary now also lists the images that might be needed for storage tests. ([#108458](https://github.com/kubernetes/kubernetes/pull/108458), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108458", - "pr_number": 108458, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - }, - "108482": { - "commit": "866e42310dd6b68c740d6f2d0acd4a4ffb3e4ab8", - "text": "Added CEL runtime cost calculation into CustomerResource validation. CustomerResource validation will fail if runtime cost exceeds the budget.", - "markdown": "Added CEL runtime cost calculation into CustomerResource validation. CustomerResource validation will fail if runtime cost exceeds the budget. ([#108482](https://github.com/kubernetes/kubernetes/pull/108482), [@cici37](https://github.com/cici37))", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108482", - "pr_number": 108482, - "areas": [ - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "108486": { - "commit": "c00975370a5bf81328dc56396ee05edc7306e238", - "text": "Non-graceful node shutdown handling is enabled for stateful workload failovers", - "markdown": "Non-graceful node shutdown handling is enabled for stateful workload failovers ([#108486](https://github.com/kubernetes/kubernetes/pull/108486), [@sonasingh46](https://github.com/sonasingh46))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2268-non-graceful-shutdown", - "type": "KEP" - } - ], - "author": "sonasingh46", - "author_url": "https://github.com/sonasingh46", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108486", - "pr_number": 108486, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "node", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108493": { - "commit": "a2a774d3d194de4b7265c0bed293b3edc4393696", - "text": "kubectl now supports shell completion for the \u003ctype\u003e/\u003cname\u003e format for specifying resources.\nkubectl now provides shell completion for container names following the `--container/-c` flag of the `exec` command.\nkubectl's shell completion now suggests resource types for commands that only apply to pods.", - "markdown": "Kubectl now supports shell completion for the \u003ctype\u003e/\u003cname\u003e format for specifying resources.\n kubectl now provides shell completion for container names following the `--container/-c` flag of the `exec` command.\n kubectl's shell completion now suggests resource types for commands that only apply to pods. ([#108493](https://github.com/kubernetes/kubernetes/pull/108493), [@marckhouzam](https://github.com/marckhouzam))", - "author": "marckhouzam", - "author_url": "https://github.com/marckhouzam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108493", - "pr_number": 108493, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "108496": { - "commit": "7152825c0695d62fe06b47cc3e1699095290d73f", - "text": "kube-proxy will no longer hold service node ports open on the node. Users are still advised not to run any listener on node ports range used by kube-proxy.", - "markdown": "Kube-proxy will no longer hold service node ports open on the node. Users are still advised not to run any listener on node ports range used by kube-proxy. ([#108496](https://github.com/kubernetes/kubernetes/pull/108496), [@khenidak](https://github.com/khenidak))", - "author": "khenidak", - "author_url": "https://github.com/khenidak", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108496", - "pr_number": 108496, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "108505": { - "commit": "bb3800f0225dcc025b9bb01f8525f99e5c36d5ce", - "text": "Re-adds response status and headers on verbose kubectl responses", - "markdown": "Re-adds response status and headers on verbose kubectl responses ([#108505](https://github.com/kubernetes/kubernetes/pull/108505), [@rikatz](https://github.com/rikatz))", - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108505", - "pr_number": 108505, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cli" - ], - "duplicate": true - }, - "108506": { - "commit": "afbe2935392ce36ada61b8dee2b08feab85d85b5", - "text": "print `\u003cdefault\u003e` as the value in case kubectl describe ingress shows `default-backend:80` when no default backend is present", - "markdown": "Print `\u003cdefault\u003e` as the value in case kubectl describe ingress shows `default-backend:80` when no default backend is present ([#108506](https://github.com/kubernetes/kubernetes/pull/108506), [@jlsong01](https://github.com/jlsong01))", - "author": "jlsong01", - "author_url": "https://github.com/jlsong01", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108506", - "pr_number": 108506, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "108522": { - "commit": "8168c68bb6dcf313f74e2d20cc6711d7aca7cf77", - "text": "Support for gRPC probes is now in beta. GRPCContainerProbe feature gate is enabled by default.", - "markdown": "Support for gRPC probes is now in beta. GRPCContainerProbe feature gate is enabled by default. ([#108522](https://github.com/kubernetes/kubernetes/pull/108522), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108522", - "pr_number": 108522, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108531": { - "commit": "ea006f5246dded2db606dac7c642041cfbe1ccb1", - "text": "SPDY transport in client-go will no longer follow redirects.", - "markdown": "SPDY transport in client-go will no longer follow redirects. ([#108531](https://github.com/kubernetes/kubernetes/pull/108531), [@tallclair](https://github.com/tallclair))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1558-streaming-proxy-redirects", - "type": "KEP" - } - ], - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108531", - "pr_number": 108531, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "api-machinery" - ], - "duplicate": true - }, - "108561": { - "commit": "7f1907c4c61e9166c4d8498ec44ecd08338136c9", - "text": "Added support for `btrfs` resizing", - "markdown": "Added support for `btrfs` resizing ([#108561](https://github.com/kubernetes/kubernetes/pull/108561), [@RomanBednar](https://github.com/RomanBednar))", - "author": "RomanBednar", - "author_url": "https://github.com/RomanBednar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108561", - "pr_number": 108561, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true - }, - "108611": { - "commit": "dd2596e40d1fbb92fa4825145c4cf8cda1e559fa", - "text": "topology translation of in-tree vSphere volume to vSphere CSI.", - "markdown": "Topology translation of in-tree vSphere volume to vSphere CSI. ([#108611](https://github.com/kubernetes/kubernetes/pull/108611), [@divyenpatel](https://github.com/divyenpatel))", - "author": "divyenpatel", - "author_url": "https://github.com/divyenpatel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108611", - "pr_number": 108611, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "storage" - ], - "duplicate_kind": true - }, - "108613": { - "commit": "0b8a665d508a861713398d0480e4789802c70607", - "text": "Fixed a bug that out-of-tree plugin is misplaced when using scheduler v1beta3 config", - "markdown": "Fixed a bug that out-of-tree plugin is misplaced when using scheduler v1beta3 config ([#108613](https://github.com/kubernetes/kubernetes/pull/108613), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108613", - "pr_number": 108613, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true - }, - "108614": { - "commit": "b4f7da1ec8e01700924a1ab60cf7d12b5af8e3bb", - "text": "Remove support for `node-expansion` between `node-stage` and `node-publish`", - "markdown": "Remove support for `node-expansion` between `node-stage` and `node-publish` ([#108614](https://github.com/kubernetes/kubernetes/pull/108614), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108614", - "pr_number": 108614, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "108616": { - "commit": "b9817c801bcbf9efbea8da1a5b68c83b3ee4ace6", - "text": "The `client.authentication.k8s.io/v1alpha1` ExecCredential has been removed. If you are using a client-go credential plugin that relies on the v1alpha1 API please contact the distributor of your plugin for instructions on how to migrate to the v1 API.", - "markdown": "The `client.authentication.k8s.io/v1alpha1` ExecCredential has been removed. If you are using a client-go credential plugin that relies on the v1alpha1 API please contact the distributor of your plugin for instructions on how to migrate to the v1 API. ([#108616](https://github.com/kubernetes/kubernetes/pull/108616), [@margocrawf](https://github.com/margocrawf))", - "author": "margocrawf", - "author_url": "https://github.com/margocrawf", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108616", - "pr_number": 108616, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change", - "deprecation" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "duplicate_kind": true - }, - "108617": { - "commit": "95e30f66c300c76ce21c0ca0e8bc4bf4a45e028f", - "text": "CEL regex patterns in x-kubernetes-valiation rules are compiled when CRDs are created/updated if the pattern is provided as a string constant in the expression. Any regex compile errors are reported as a CRD create/update validation error.", - "markdown": "CEL regex patterns in x-kubernetes-valiation rules are compiled when CRDs are created/updated if the pattern is provided as a string constant in the expression. Any regex compile errors are reported as a CRD create/update validation error. ([#108617](https://github.com/kubernetes/kubernetes/pull/108617), [@jpbetz](https://github.com/jpbetz))", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108617", - "pr_number": 108617, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "108628": { - "commit": "aa343fa6324e2f90bca20d9754b8345e288e81f7", - "text": "Improved logging when volume times out waiting for attach/detach.", - "markdown": "Improved logging when volume times out waiting for attach/detach. ([#108628](https://github.com/kubernetes/kubernetes/pull/108628), [@RomanBednar](https://github.com/RomanBednar))", - "author": "RomanBednar", - "author_url": "https://github.com/RomanBednar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108628", - "pr_number": 108628, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "108631": { - "commit": "e9af39914797d40766b166e18dac3a441a2bf5d4", - "text": "kube-apiserver: removed `apf_fd` from server logs which could contain data identifying the requesting user", - "markdown": "Kube-apiserver: removed `apf_fd` from server logs which could contain data identifying the requesting user ([#108631](https://github.com/kubernetes/kubernetes/pull/108631), [@jupblb](https://github.com/jupblb))", - "author": "jupblb", - "author_url": "https://github.com/jupblb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108631", - "pr_number": 108631, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "108648": { - "commit": "d7bd0d4f520e3f8031f33d8c19badda2889122da", - "text": "PreFilter extension in the scheduler framework now returns not only status but also PreFilterResult", - "markdown": "PreFilter extension in the scheduler framework now returns not only status but also PreFilterResult ([#108648](https://github.com/kubernetes/kubernetes/pull/108648), [@ahg-g](https://github.com/ahg-g))", - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108648", - "pr_number": 108648, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true - }, - "108662": { - "commit": "9642a1f84b97582c29142a9c04d0c25c5632ad08", - "text": "Fix to allow `fsGroup` to be applied for CSI Inline Volumes", - "markdown": "Fix to allow `fsGroup` to be applied for CSI Inline Volumes ([#108662](https://github.com/kubernetes/kubernetes/pull/108662), [@dobsonj](https://github.com/dobsonj))", - "author": "dobsonj", - "author_url": "https://github.com/dobsonj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108662", - "pr_number": 108662, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "108691": { - "commit": "57a739bdf209e544133add5cd0759fd00650de7c", - "text": "Apply ProxyTerminatingEndpoints to all traffic policies (external, internal, cluster, local).", - "markdown": "Apply ProxyTerminatingEndpoints to all traffic policies (external, internal, cluster, local). ([#108691](https://github.com/kubernetes/kubernetes/pull/108691), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108691", - "pr_number": 108691, - "areas": [ - "test", - "ipvs" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "testing" - ], - "feature": true, - "duplicate": true - }, - "108693": { - "commit": "12667440025c5e9dcfb49a3457b701c8d374ed85", - "text": "Call `NodeExpand` on all nodes in case of RWX volumes", - "markdown": "Call `NodeExpand` on all nodes in case of RWX volumes ([#108693](https://github.com/kubernetes/kubernetes/pull/108693), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108693", - "pr_number": 108693, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node", - "apps" - ], - "duplicate": true - }, - "108701": { - "commit": "2786b78b5a242452e6c7eda5a310609f77a482b9", - "text": "Added PreemptionPolicy in PriorityClass describe", - "markdown": "Added PreemptionPolicy in PriorityClass describe ([#108701](https://github.com/kubernetes/kubernetes/pull/108701), [@denkensk](https://github.com/denkensk))", - "author": "denkensk", - "author_url": "https://github.com/denkensk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108701", - "pr_number": 108701, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "cli" - ], - "duplicate": true - }, - "108717": { - "commit": "bb67b5e9e830fba239c1e7957e5dcbefdce92a37", - "text": "The metadata.clusterName field is deprecated. This field has always been unwritable and always blank, but its presence is confusing, so we will remove it next release. Out of an abundance of caution, this release we have merely changed the name in the go struct to ensure any accidental client uses are found before complete removal.", - "markdown": "The metadata.clusterName field is deprecated. This field has always been unwritable and always blank, but its presence is confusing, so we will remove it next release. Out of an abundance of caution, this release we have merely changed the name in the go struct to ensure any accidental client uses are found before complete removal. ([#108717](https://github.com/kubernetes/kubernetes/pull/108717), [@lavalamp](https://github.com/lavalamp))", - "author": "lavalamp", - "author_url": "https://github.com/lavalamp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108717", - "pr_number": 108717, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change", - "deprecation" - ], - "sigs": [ - "scheduling", - "api-machinery", - "auth", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "108724": { - "commit": "92c30bf6bdefce5d3e2e29aa3c0c0989cd313827", - "text": "CycleState is now optimized for \"write once and read many times\".", - "markdown": "CycleState is now optimized for \"write once and read many times\". ([#108724](https://github.com/kubernetes/kubernetes/pull/108724), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108724", - "pr_number": 108724, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "108736": { - "commit": "9fe98d8babc7b8b8a766b8c48e4ca7bc75ef81bc", - "text": "The AnyVolumeDataSource feature is now beta, and the feature gate is enabled by default. In order to provide user feedback on PVCs with data sources, deployers must install the VolumePopulators CRD and the data-source-validator controller.", - "markdown": "The AnyVolumeDataSource feature is now beta, and the feature gate is enabled by default. In order to provide user feedback on PVCs with data sources, deployers must install the VolumePopulators CRD and the data-source-validator controller. ([#108736](https://github.com/kubernetes/kubernetes/pull/108736), [@bswartz](https://github.com/bswartz))", - "author": "bswartz", - "author_url": "https://github.com/bswartz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108736", - "pr_number": 108736, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108747": { - "commit": "c28cfea07d1db48764656a2b241e7266e17cdbbc", - "text": "The `TopologyAwareHints` feature gate is now enabled by default. This will allow users to opt-in to Topology Aware Hints by setting the `service.kubernetes.io/topology-aware-hints` on a Service. This will not affect any Services without that annotation set.", - "markdown": "The `TopologyAwareHints` feature gate is now enabled by default. This will allow users to opt-in to Topology Aware Hints by setting the `service.kubernetes.io/topology-aware-hints` on a Service. This will not affect any Services without that annotation set. ([#108747](https://github.com/kubernetes/kubernetes/pull/108747), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108747", - "pr_number": 108747, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "108748": { - "commit": "6c67869ff2f797efeb9a59a594c2413a876ea8e0", - "text": "fixed `--retries` functionality for negative values in `kubectl cp`", - "markdown": "Fixed `--retries` functionality for negative values in `kubectl cp` ([#108748](https://github.com/kubernetes/kubernetes/pull/108748), [@atiratree](https://github.com/atiratree))", - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108748", - "pr_number": 108748, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "108752": { - "commit": "4348c8ecaf87d91503718a42a930c397c3c82569", - "text": "Fix issue where the job controller might not remove the job tracking finalizer from pods when deleting a job, or when the pod is orphan", - "markdown": "Fix issue where the job controller might not remove the job tracking finalizer from pods when deleting a job, or when the pod is orphan ([#108752](https://github.com/kubernetes/kubernetes/pull/108752), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108752", - "pr_number": 108752, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "108758": { - "commit": "b0254c8a0b202083b12fbfaae7ff1ba4f7288ca0", - "text": "add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state to kubelet", - "markdown": "Add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state to kubelet ([#108758](https://github.com/kubernetes/kubernetes/pull/108758), [@fengzixu](https://github.com/fengzixu))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/pull/2900", - "type": "KEP" - } - ], - "author": "fengzixu", - "author_url": "https://github.com/fengzixu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108758", - "pr_number": 108758, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "108761": { - "commit": "aface3ab99b5c8c6ac8c4892c8019742075a461d", - "text": "Set `PodMaxUnschedulableQDuration` as 5 min.", - "markdown": "Set `PodMaxUnschedulableQDuration` as 5 min. ([#108761](https://github.com/kubernetes/kubernetes/pull/108761), [@denkensk](https://github.com/denkensk))", - "author": "denkensk", - "author_url": "https://github.com/denkensk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108761", - "pr_number": 108761, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "108769": { - "commit": "4d08582d1fa21e1f5887e73380001ac827371553", - "text": "kubeadm: fixed a bug where Windows nodes fail to join an IPv6 cluster due to preflight errors", - "markdown": "Kubeadm: fixed a bug where Windows nodes fail to join an IPv6 cluster due to preflight errors ([#108769](https://github.com/kubernetes/kubernetes/pull/108769), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108769", - "pr_number": 108769, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "108772": { - "commit": "b0c435c8c48587edaeade94937525e03ccff9167", - "text": "bug: client-go clientset was not defaulting to the user agent, and was using the default golang agent for all the requests.", - "markdown": "Bug: client-go clientset was not defaulting to the user agent, and was using the default golang agent for all the requests. ([#108772](https://github.com/kubernetes/kubernetes/pull/108772), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108772", - "pr_number": 108772, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true - }, - "108782": { - "commit": "0053a0e0fd55d4772074b7e8dbdcf3866941d674", - "text": "The CertificateSigningRequest `spec.expirationSeconds` API field has graduated to GA. The `CSRDuration` feature gate for the field is now unconditionally enabled and will be removed in 1.26.", - "markdown": "The CertificateSigningRequest `spec.expirationSeconds` API field has graduated to GA. The `CSRDuration` feature gate for the field is now unconditionally enabled and will be removed in 1.26. ([#108782](https://github.com/kubernetes/kubernetes/pull/108782), [@cfryanr](https://github.com/cfryanr))", - "author": "cfryanr", - "author_url": "https://github.com/cfryanr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108782", - "pr_number": 108782, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108817": { - "commit": "bd1e7dc3cb3d8115f3cef1210e12fa0c42ca14a7", - "text": "`kubectl version` now includes information on the embedded version of Kustomize", - "markdown": "`kubectl version` now includes information on the embedded version of Kustomize ([#108817](https://github.com/kubernetes/kubernetes/pull/108817), [@KnVerey](https://github.com/KnVerey))", - "author": "KnVerey", - "author_url": "https://github.com/KnVerey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108817", - "pr_number": 108817, - "areas": [ - "test", - "kubectl", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "108820": { - "commit": "e3982ce472af31efe0cfb5165271c84f1ace0b0f", - "text": "Remove deprecated `--serviceaccount`, `--hostport`, `--requests` and `--limits` from kubectl run.", - "markdown": "Remove deprecated `--serviceaccount`, `--hostport`, `--requests` and `--limits` from kubectl run. ([#108820](https://github.com/kubernetes/kubernetes/pull/108820), [@mozillazg](https://github.com/mozillazg))", - "author": "mozillazg", - "author_url": "https://github.com/mozillazg", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108820", - "pr_number": 108820, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "108829": { - "commit": "80746c762227a19fd4588e39b93eb9049dbff8ce", - "text": "The scheduler framework option `runAllFilters` is removed.", - "markdown": "The scheduler framework option `runAllFilters` is removed. ([#108829](https://github.com/kubernetes/kubernetes/pull/108829), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108829", - "pr_number": 108829, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "108831": { - "commit": "dbd37cb8a8b6a54a7637ec6a6471979ce4260929", - "text": "Skip re-allocate logic if pod is already removed to avoid panic", - "markdown": "Skip re-allocate logic if pod is already removed to avoid panic ([#108831](https://github.com/kubernetes/kubernetes/pull/108831), [@waynepeking348](https://github.com/waynepeking348))", - "author": "waynepeking348", - "author_url": "https://github.com/waynepeking348", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108831", - "pr_number": 108831, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "108847": { - "commit": "68cf2a60c60725ce6943b49a10bf8c65bdff56b9", - "text": "Kubelet external Credential Provider feature is moved to Beta. Credential Provider Plugin and Credential Provider Config API's updated from v1alpha1 to v1beta1 with no API changes.", - "markdown": "Kubelet external Credential Provider feature is moved to Beta. Credential Provider Plugin and Credential Provider Config API's updated from v1alpha1 to v1beta1 with no API changes. ([#108847](https://github.com/kubernetes/kubernetes/pull/108847), [@adisky](https://github.com/adisky))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2133-kubelet-credential-providers", - "type": "KEP" - } - ], - "author": "adisky", - "author_url": "https://github.com/adisky", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108847", - "pr_number": 108847, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "node", - "api-machinery" - ], - "duplicate": true - }, - "108859": { - "commit": "0a6309044585e52d88c4f414d84613ce903a587b", - "text": "Skip x-kubernetes-validations rules if having fundamental error against the OpenAPIv3 schema.", - "markdown": "Skip x-kubernetes-validations rules if having fundamental error against the OpenAPIv3 schema. ([#108859](https://github.com/kubernetes/kubernetes/pull/108859), [@cici37](https://github.com/cici37))", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108859", - "pr_number": 108859, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108870": { - "commit": "5984099509fde391ed63769efc0b518a8a5736c3", - "text": "Kubernetes 1.24 bumped version of golang it is compiled with to go1.18, which introduced significant changes to its garbage collection algorithm. As a result, we observed an increase in memory usage for kube-apiserver in larger an heavily loaded clusters up to ~25% (with the benefit of API call latencies drop by up to 10x on 99th percentiles). If the memory increase is not acceptable for you you can mitigate by setting GOGC env variable (for our tests using GOGC=63 brings memory usage back to original value, although the exact value may depend on usage patterns on your cluster).", - "markdown": "Kubernetes 1.24 bumped version of golang it is compiled with to go1.18, which introduced significant changes to its garbage collection algorithm. As a result, we observed an increase in memory usage for kube-apiserver in larger an heavily loaded clusters up to ~25% (with the benefit of API call latencies drop by up to 10x on 99th percentiles). If the memory increase is not acceptable for you you can mitigate by setting GOGC env variable (for our tests using GOGC=63 brings memory usage back to original value, although the exact value may depend on usage patterns on your cluster). ([#108870](https://github.com/kubernetes/kubernetes/pull/108870), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108870", - "pr_number": 108870, - "areas": [ - "test", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "108889": { - "commit": "ea0dc6ed417c7cd398cd5e02cdaf04721265eee2", - "text": "The `ServerSideFieldValidation` feature has graduated to beta and is now enabled by default. Kubectl 1.24 and newer will use server-side validation instead of client-side validation when writing to API servers with the feature enabled.", - "markdown": "The `ServerSideFieldValidation` feature has graduated to beta and is now enabled by default. Kubectl 1.24 and newer will use server-side validation instead of client-side validation when writing to API servers with the feature enabled. ([#108889](https://github.com/kubernetes/kubernetes/pull/108889), [@kevindelgado](https://github.com/kevindelgado))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2885", - "type": "KEP" - } - ], - "author": "kevindelgado", - "author_url": "https://github.com/kevindelgado", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108889", - "pr_number": 108889, - "areas": [ - "test", - "apiserver", - "kubectl", - "conformance" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "cli", - "testing", - "architecture" - ], - "duplicate": true - }, - "108898": { - "commit": "8f12e4a44bbe5f5f2af2c7c5e63cb060da25748d", - "text": "OpenAPI definitions served by kube-apiserver now include enum types by default.", - "markdown": "OpenAPI definitions served by kube-apiserver now include enum types by default. ([#108898](https://github.com/kubernetes/kubernetes/pull/108898), [@jiahuif](https://github.com/jiahuif))", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108898", - "pr_number": 108898, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "108919": { - "commit": "2161071d0b985a033c5a81df122734da31ffce18", - "text": "Rename unschedulableQ to unschedulablePods", - "markdown": "Rename unschedulableQ to unschedulablePods ([#108919](https://github.com/kubernetes/kubernetes/pull/108919), [@denkensk](https://github.com/denkensk))", - "author": "denkensk", - "author_url": "https://github.com/denkensk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108919", - "pr_number": 108919, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "108927": { - "commit": "d9819f05d0154677aee3e643c5498511fabce38a", - "text": "Record requests rejected with 429 in the apiserver_request_total metric", - "markdown": "Record requests rejected with 429 in the apiserver_request_total metric ([#108927](https://github.com/kubernetes/kubernetes/pull/108927), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108927", - "pr_number": 108927, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "108929": { - "commit": "c239b406f002956ddc0a7d94fa4fe1b1592f96da", - "text": "Move volume expansion feature to GA", - "markdown": "Move volume expansion feature to GA ([#108929](https://github.com/kubernetes/kubernetes/pull/108929), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108929", - "pr_number": 108929, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "108930": { - "commit": "978d9683f5c253cf62225dc0656c0bfeb2a7d339", - "text": "Introduction of a new \"sync_proxy_rules_no_local_endpoints_total\" proxy metric. This metric represents the number of services with no internal endpoints. The \"traffic_policy\" label will contain both \"internal\" or \"external\".", - "markdown": "Introduction of a new \"sync_proxy_rules_no_local_endpoints_total\" proxy metric. This metric represents the number of services with no internal endpoints. The \"traffic_policy\" label will contain both \"internal\" or \"external\". ([#108930](https://github.com/kubernetes/kubernetes/pull/108930), [@MaxRenaud](https://github.com/MaxRenaud))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/c62cfc32ad2d9d247ade41d0f6004f3de8fd72a6/keps/sig-network/2086-service-internal-traffic-policy/README.md", - "type": "KEP" - } - ], - "author": "MaxRenaud", - "author_url": "https://github.com/MaxRenaud", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108930", - "pr_number": 108930, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "conformance", - "code-generation", - "ipvs", - "e2e-test-framework", - "dependency", - "network-policy" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "scheduling", - "storage", - "node", - "api-machinery", - "autoscaling", - "auth", - "apps", - "windows", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108953": { - "commit": "8b158fa7304906f0da30f2a0e007be3ccced7354", - "text": "Remove insecure serving configuration from cloud-provider package, which is consumed by cloud-controller-managers.", - "markdown": "Remove insecure serving configuration from cloud-provider package, which is consumed by cloud-controller-managers. ([#108953](https://github.com/kubernetes/kubernetes/pull/108953), [@nckturner](https://github.com/nckturner))", - "author": "nckturner", - "author_url": "https://github.com/nckturner", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108953", - "pr_number": 108953, - "areas": [ - "test", - "cloudprovider" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "testing", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "108965": { - "commit": "bfe649dbc07a3707fe342b971a1dad422e6cb95f", - "text": "None.", - "markdown": "None. ([#108965](https://github.com/kubernetes/kubernetes/pull/108965), [@adisky](https://github.com/adisky)) [SIG Node and Testing]", - "author": "adisky", - "author_url": "https://github.com/adisky", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108965", - "pr_number": 108965, - "areas": [ - "test" - ], - "kinds": [ - "failing-test" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "108987": { - "commit": "5a651eacbc7176c5922ec9c9137d00fbbbc2b683", - "text": "Deprecate kubectl version long output, will be replaced with kubectl version ` --short`. Users requiring full output should use `--output=yaml|json` instead.", - "markdown": "Deprecate kubectl version long output, will be replaced with kubectl version ` --short`. Users requiring full output should use `--output=yaml|json` instead. ([#108987](https://github.com/kubernetes/kubernetes/pull/108987), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108987", - "pr_number": 108987, - "areas": [ - "kubectl" - ], - "sigs": [ - "cli" - ] - }, - "108988": { - "commit": "736a02316715d7eb9a8bd34c6af123f07c1d34d1", - "text": "update the k8s.io/system-validators library to v1.7.0", - "markdown": "Update the k8s.io/system-validators library to v1.7.0 ([#108988](https://github.com/kubernetes/kubernetes/pull/108988), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108988", - "pr_number": 108988, - "areas": [ - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "108992": { - "commit": "656dc213ce43f1ecfa7f54eb1f01864468f8f0e2", - "text": "Adds `OpenAPIV3SchemaInterface` to `DiscoveryClient` and its variants for fetching OpenAPI v3 schema documents.", - "markdown": "Adds `OpenAPIV3SchemaInterface` to `DiscoveryClient` and its variants for fetching OpenAPI v3 schema documents. ([#108992](https://github.com/kubernetes/kubernetes/pull/108992), [@alexzielenski](https://github.com/alexzielenski))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2896", - "type": "KEP" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108992", - "pr_number": 108992, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "kubeadm", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "108994": { - "commit": "1ff499ac1382ca7dd62022d5f256e19fcc41c40d", - "text": "Updates `kubectl kustomize` and `kubectl apply -k` to Kustomize v4.5.4", - "markdown": "Updates `kubectl kustomize` and `kubectl apply -k` to Kustomize v4.5.4 ([#108994](https://github.com/kubernetes/kubernetes/pull/108994), [@KnVerey](https://github.com/KnVerey))", - "documentation": [ - { - "url": "https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.5.4", - "type": "external" - } - ], - "author": "KnVerey", - "author_url": "https://github.com/KnVerey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108994", - "pr_number": 108994, - "areas": [ - "kubectl", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "108995": { - "commit": "5b8dbfbbcf304bd0f260a9e99e3555dce8f46514", - "text": "The infrastructure for contextual logging is complete (feature gate implemented, JSON backend ready).", - "markdown": "The infrastructure for contextual logging is complete (feature gate implemented, JSON backend ready). ([#108995](https://github.com/kubernetes/kubernetes/pull/108995), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3077", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108995", - "pr_number": 108995, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "scheduling", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "109018": { - "commit": "24cb73bb9027b089e05d27cc29be0987ab8153ae", - "text": "Deprecate apiserver_dropped_requests_total metric. The same data can be read from apiserver_request_terminations_total metric.", - "markdown": "Deprecate apiserver_dropped_requests_total metric. The same data can be read from apiserver_request_terminations_total metric. ([#109018](https://github.com/kubernetes/kubernetes/pull/109018), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109018", - "pr_number": 109018, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "109019": { - "commit": "58847ef7025d08cf45a6b9def5df48f2ccc3f950", - "text": "Custom resource requests with `fieldValidation=Strict` consistently require `apiVersion` and `kind`, matching non-strict requests", - "markdown": "Custom resource requests with `fieldValidation=Strict` consistently require `apiVersion` and `kind`, matching non-strict requests ([#109019](https://github.com/kubernetes/kubernetes/pull/109019), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109019", - "pr_number": 109019, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "109024": { - "commit": "e0ca5cfd73bd046ee5fbdef50e073842e6fbc52f", - "text": "Kubernetes 1.24 is built with go1.18, which will no longer validate certificates signed with a SHA-1 hash algorithm by default. See https://golang.org/doc/go1.18#sha1 for more details. If you are using certificates like this in admission or conversion", - "markdown": "Kubernetes 1.24 is built with go1.18, which will no longer validate certificates signed with a SHA-1 hash algorithm by default. See https://golang.org/doc/go1.18#sha1 for more details. If you are using certificates like this in admission or conversion ([#109024](https://github.com/kubernetes/kubernetes/pull/109024), [@stlaz](https://github.com/stlaz))", - "documentation": [ - { - "description": "[Other doc]", - "url": "https://tip.golang.org/doc/go1.18#sha1", - "type": "external" - } - ], - "author": "stlaz", - "author_url": "https://github.com/stlaz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109024", - "pr_number": 109024, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "109029": { - "commit": "fe8a663860e624a974fe15e224938b43dc6b8bd4", - "text": "Updated runc to 1.1.0 and updated cadvisor to 0.44.0", - "markdown": "Updated runc to 1.1.0 and updated cadvisor to 0.44.0 ([#109029](https://github.com/kubernetes/kubernetes/pull/109029), [@ehashman](https://github.com/ehashman))", - "author": "ehashman", - "author_url": "https://github.com/ehashman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109029", - "pr_number": 109029, - "areas": [ - "test", - "kubelet", - "kubectl", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "cli", - "testing" - ], - "duplicate": true - }, - "109031": { - "commit": "904c30562a9a34d26ff3e76db29d00daea2e0f60", - "text": "OpenAPI V3 is turned on by default", - "markdown": "OpenAPI V3 is turned on by default ([#109031](https://github.com/kubernetes/kubernetes/pull/109031), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109031", - "pr_number": 109031, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "kubeadm", - "conformance", - "code-generation", - "ipvs", - "e2e-test-framework", - "dependency", - "network-policy" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "autoscaling", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "109035": { - "commit": "78889cd1bb1c823a7f1292d325a31695fc826084", - "text": "Enabled beta feature HonorPVReclaimPolicy by default.", - "markdown": "Enabled beta feature HonorPVReclaimPolicy by default. ([#109035](https://github.com/kubernetes/kubernetes/pull/109035), [@deepakkinni](https://github.com/deepakkinni))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3181", - "type": "KEP" - } - ], - "author": "deepakkinni", - "author_url": "https://github.com/deepakkinni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109035", - "pr_number": 109035, - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "apps" - ], - "feature": true, - "duplicate": true - }, - "109050": { - "commit": "97bf2986cdeae0e7da70659d70375e0770b14a5e", - "text": "client-go: if resetting the body fails before a retry, an error is now surfaced to the user.", - "markdown": "Client-go: if resetting the body fails before a retry, an error is now surfaced to the user. ([#109050](https://github.com/kubernetes/kubernetes/pull/109050), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", - "author": "MadhavJivrajani", - "author_url": "https://github.com/MadhavJivrajani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109050", - "pr_number": 109050, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "109059": { - "commit": "4fdca04f3576d84bf4900197e9c657a6f52c8488", - "text": "The kubelet now creates an iptables chain named `KUBE-IPTABLES-HINT` in\nthe `mangle` table. Containerized components that need to modify iptables\nrules in the host network namespace can use the existence of this chain\nto more-reliably determine whether the system is using iptables-legacy or\niptables-nft.", - "markdown": "The kubelet now creates an iptables chain named `KUBE-IPTABLES-HINT` in\n the `mangle` table. Containerized components that need to modify iptables\n rules in the host network namespace can use the existence of this chain\n to more-reliably determine whether the system is using iptables-legacy or\n iptables-nft. ([#109059](https://github.com/kubernetes/kubernetes/pull/109059), [@danwinship](https://github.com/danwinship))", - "documentation": [ - { - "description": "[KEP]: (in progress)", - "url": "https://github.com/kubernetes/enhancements/pull/3179", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109059", - "pr_number": 109059, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "node" - ], - "feature": true, - "duplicate": true - }, - "109060": { - "commit": "f2e5c16545027fbe04cc33d4ef59cd01de6b9967", - "text": "Users who look at iptables dumps will see some changes in the naming and structure of rules.", - "markdown": "Users who look at iptables dumps will see some changes in the naming and structure of rules. ([#109060](https://github.com/kubernetes/kubernetes/pull/109060), [@thockin](https://github.com/thockin))", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109060", - "pr_number": 109060, - "areas": [ - "test", - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true - }, - "109072": { - "commit": "d4ac0ebecb5142330f1827120e3e6315a8b69caf", - "text": "Leader Migration is now GA. All new configuration files onwards should use version v1.", - "markdown": "Leader Migration is now GA. All new configuration files onwards should use version v1. ([#109072](https://github.com/kubernetes/kubernetes/pull/109072), [@jiahuif](https://github.com/jiahuif))", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109072", - "pr_number": 109072, - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "109074": { - "commit": "f25c0e5f094485f710e80377fbb833d3eeed7492", - "text": "kubeadm: added the flag `--experimental-initial-corrupt-check` to etcd static Pod manifests to ensure etcd member data consistency", - "markdown": "Kubeadm: added the flag `--experimental-initial-corrupt-check` to etcd static Pod manifests to ensure etcd member data consistency ([#109074](https://github.com/kubernetes/kubernetes/pull/109074), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109074", - "pr_number": 109074, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "109089": { - "commit": "c290874532839f5414f32e968d97830600a2d4cc", - "text": "vSphere releases less than 7.0u2 are deprecated as of v1.24. Please consider upgrading vSphere to 7.0u2 or above. vSphere CSI Driver requires minimum vSphere 7.0u2.\n\nGeneral Support for vSphere 6.7 will end on October 15, 2022. vSphere 6.7 Update 3 is deprecated in Kubernetes v1.24. Customers are recommended to upgrade vSphere (both ESXi and vCenter) to 7.0u2 or above. vSphere CSI Driver 2.2.3 and higher supports CSI Migration.\n\nSupport for these deprecations will be available till October 15, 2022.", - "markdown": "VSphere releases less than 7.0u2 are deprecated as of v1.24. Please consider upgrading vSphere to 7.0u2 or above. vSphere CSI Driver requires minimum vSphere 7.0u2.\n \n General Support for vSphere 6.7 will end on October 15, 2022. vSphere 6.7 Update 3 is deprecated in Kubernetes v1.24. Customers are recommended to upgrade vSphere (both ESXi and vCenter) to 7.0u2 or above. vSphere CSI Driver 2.2.3 and higher supports CSI Migration.\n \n Support for these deprecations will be available till October 15, 2022. ([#109089](https://github.com/kubernetes/kubernetes/pull/109089), [@deepakkinni](https://github.com/deepakkinni))", - "author": "deepakkinni", - "author_url": "https://github.com/deepakkinni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109089", - "pr_number": 109089, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "feature", - "deprecation" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true, - "duplicate_kind": true, - "action_required": true - }, - "109104": { - "commit": "fe4cbf6514aa247e1f6d83f33970710b65649685", - "text": "Updated runc to 1.1.1", - "markdown": "Updated runc to 1.1.1 ([#109104](https://github.com/kubernetes/kubernetes/pull/109104), [@kolyshkin](https://github.com/kolyshkin))", - "author": "kolyshkin", - "author_url": "https://github.com/kolyshkin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109104", - "pr_number": 109104, - "areas": [ - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "109120": { - "commit": "c7fc0f9125a239b391df0d7d06e61b8f968ef956", - "text": "New \"field_validation_request_duration_seconds\" metric, measures how long requests take, indicating the value of the fieldValidation query parameter and whether or not server-side field validation is enabled on the apiserver", - "markdown": "New \"field_validation_request_duration_seconds\" metric, measures how long requests take, indicating the value of the fieldValidation query parameter and whether or not server-side field validation is enabled on the apiserver ([#109120](https://github.com/kubernetes/kubernetes/pull/109120), [@kevindelgado](https://github.com/kevindelgado))", - "author": "kevindelgado", - "author_url": "https://github.com/kevindelgado", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109120", - "pr_number": 109120, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "109128": { - "commit": "ba1bbb5ac67084b25a17622a6573e648f88f440b", - "text": "apiextensions_openapi_v3_regeneration_count metric (alpha) will be emitted for OpenAPI V3.", - "markdown": "Apiextensions_openapi_v3_regeneration_count metric (alpha) will be emitted for OpenAPI V3. ([#109128](https://github.com/kubernetes/kubernetes/pull/109128), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109128", - "pr_number": 109128, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "109137": { - "commit": "2e55595d3baeedcab09745355824f38a60cf6d08", - "text": "Fixed indexer bug that resulted in incorrect index updates if number of index values for a given object was changing during update", - "markdown": "Fixed indexer bug that resulted in incorrect index updates if number of index values for a given object was changing during update ([#109137](https://github.com/kubernetes/kubernetes/pull/109137), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109137", - "pr_number": 109137, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "109154": { - "commit": "c6478308f8aeb691b482a7b6d96606af6c477f9d", - "text": "Fixed CSI migration of Azure Disk in-tree StorageClasses with topology requirements in Azure regions that do not have availability zones.", - "markdown": "Fixed CSI migration of Azure Disk in-tree StorageClasses with topology requirements in Azure regions that do not have availability zones. ([#109154](https://github.com/kubernetes/kubernetes/pull/109154), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109154", - "pr_number": 109154, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "109178": { - "commit": "e89b80bdd809bbb56fe55c6f482a880f9736c26d", - "text": "Omit enum declarations from the static openapi file captured at https://git.k8s.io/kubernetes/api/openapi-spec. This file is used to generate API clients, and use of enums in those generated clients (rather than strings) can break forward compatibility with additional future values in those fields. See https://issue.k8s.io/109177 for details.", - "markdown": "Omit enum declarations from the static openapi file captured at https://git.k8s.io/kubernetes/api/openapi-spec. This file is used to generate API clients, and use of enums in those generated clients (rather than strings) can break forward compatibility with additional future values in those fields. See https://issue.k8s.io/109177 for details. ([#109178](https://github.com/kubernetes/kubernetes/pull/109178), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109178", - "pr_number": 109178, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change", - "feature", - "regression" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "109188": { - "commit": "885f14d162471dfc9a3f8d4c46430805cf6be828", - "text": "Fix the overestimated cost of delegated API requests in kube-apiserver API priority \u0026 fairness", - "markdown": "Fix the overestimated cost of delegated API requests in kube-apiserver API priority \u0026 fairness ([#109188](https://github.com/kubernetes/kubernetes/pull/109188), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109188", - "pr_number": 109188, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "109205": { - "commit": "df1a3ddc9811969ad464b98ec5ec8972e907f778", - "text": "Adds PV deletion protection finalizer only when PV reclaimPolicy is Delete for dynamically provisioned volumes.", - "markdown": "Adds PV deletion protection finalizer only when PV reclaimPolicy is Delete for dynamically provisioned volumes. ([#109205](https://github.com/kubernetes/kubernetes/pull/109205), [@deepakkinni](https://github.com/deepakkinni))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/pull/3181", - "type": "KEP" - } - ], - "author": "deepakkinni", - "author_url": "https://github.com/deepakkinni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109205", - "pr_number": 109205, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "apps" - ], - "duplicate": true - }, - "109213": { - "commit": "2da1558909043ddc41d7a36ab93672869474ec55", - "text": "Moving MixedProtocolLBService from alpha to beta", - "markdown": "Moving MixedProtocolLBService from alpha to beta ([#109213](https://github.com/kubernetes/kubernetes/pull/109213), [@bridgetkromhout](https://github.com/bridgetkromhout))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/1435-mixed-protocol-lb", - "type": "KEP" - } - ], - "author": "bridgetkromhout", - "author_url": "https://github.com/bridgetkromhout", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109213", - "pr_number": 109213, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "109241": { - "commit": "3024ddcfe2440b0cf5c3ace3100c6232d6a23df9", - "text": "Make STS available replicas optional again.", - "markdown": "Make STS available replicas optional again. ([#109241](https://github.com/kubernetes/kubernetes/pull/109241), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109241", - "pr_number": 109241, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "regression" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "109245": { - "commit": "11a61462838bbd894b3f56277e768b4bfc913e85", - "text": "Prevent kube-scheduler from nominating a Pod that was already scheduled to a node", - "markdown": "Prevent kube-scheduler from nominating a Pod that was already scheduled to a node ([#109245](https://github.com/kubernetes/kubernetes/pull/109245), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109245", - "pr_number": 109245, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "109271": { - "commit": "92a1d0f84c710755a570eaf05f3e315a8c9deb1b", - "text": "The `ServerSideFieldValidation` feature has been reverted to alpha for 1.24.", - "markdown": "The `ServerSideFieldValidation` feature has been reverted to alpha for 1.24. ([#109271](https://github.com/kubernetes/kubernetes/pull/109271), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109271", - "pr_number": 109271, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "109436": { - "commit": "4cdeab4696e86c9738d99e2650d2cdfdfb0f8d32", - "text": "Remove a v1alpha1 networking API for ClusterCIDRConfig", - "markdown": "Remove a v1alpha1 networking API for ClusterCIDRConfig ([#109436](https://github.com/kubernetes/kubernetes/pull/109436), [@JamesLaverack](https://github.com/JamesLaverack))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/2594", - "type": "KEP" - } - ], - "author": "JamesLaverack", - "author_url": "https://github.com/JamesLaverack", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109436", - "pr_number": 109436, - "areas": [ - "test", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "network", - "api-machinery", - "auth", - "apps", - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "109442": { - "commit": "65178fec72df6275ed0aa3ede12c785ac79ab97a", - "text": "Correct event registration for multiple scheduler plugins; this fixes a potential significant delay in re-queueing unschedulable pods.", - "markdown": "Correct event registration for multiple scheduler plugins; this fixes a potential significant delay in re-queueing unschedulable pods. ([#109442](https://github.com/kubernetes/kubernetes/pull/109442), [@ahg-g](https://github.com/ahg-g))", - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109442", - "pr_number": 109442, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true - }, - "109461": { - "commit": "75e49ec824b183288e1dbaccfd7dbe77d89db381", - "text": "Kubernetes is now built with Golang 1.18.1", - "markdown": "Kubernetes is now built with Golang 1.18.1 ([#109461](https://github.com/kubernetes/kubernetes/pull/109461), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109461", - "pr_number": 109461, - "areas": [ - "test", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "109471": { - "commit": "f33ca2306548719e5116b53fccfc278bffb809a8", - "text": "etcd: Update to v3.5.3", - "markdown": "Etcd: Update to v3.5.3 ([#109471](https://github.com/kubernetes/kubernetes/pull/109471), [@justaugustus](https://github.com/justaugustus))", - "author": "justaugustus", - "author_url": "https://github.com/justaugustus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109471", - "pr_number": 109471, - "areas": [ - "test", - "provider/gcp", - "kubeadm", - "e2e-test-framework" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "testing", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "109487": { - "commit": "a750d8054a6cb3167f495829ce3e77ab0ccca48e", - "text": "Sets JobTrackingWithFinalizers, a beta feature, as disabled by default, due to unresolved bug https://github.com/kubernetes/kubernetes/issues/109485", - "markdown": "Sets JobTrackingWithFinalizers, a beta feature, as disabled by default, due to unresolved bug https://github.com/kubernetes/kubernetes/issues/109485 ([#109487](https://github.com/kubernetes/kubernetes/pull/109487), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109487", - "pr_number": 109487, - "areas": [ - "test", - "batch" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "82162": { - "commit": "f85ff4b5743d501381c76b94a5bc6197b7766190", - "text": "MaxUnavailable for StatefulSets, allows faster RollingUpdate by taking down more than 1 pod at a time. The number of pods you want to take down during a RollingUpdate is configurable using maxUnavailable parameter.", - "markdown": "MaxUnavailable for StatefulSets, allows faster RollingUpdate by taking down more than 1 pod at a time. The number of pods you want to take down during a RollingUpdate is configurable using maxUnavailable parameter. ([#82162](https://github.com/kubernetes/kubernetes/pull/82162), [@krmayankk](https://github.com/krmayankk))", - "author": "krmayankk", - "author_url": "https://github.com/krmayankk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/82162", - "pr_number": 82162, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true - }, - "94637": { - "commit": "77eb1a03df5ed29db8b093bc1b89778388593c2f", - "text": "kube-apiserver: ensures the namespace of objects sent to admission webhooks matches the request namespace. Previously, objects without a namespace set would have the request namespace populated after mutating admission, and objects with a namespace that did not match the request namespace would be rejected after admission.", - "markdown": "Kube-apiserver: ensures the namespace of objects sent to admission webhooks matches the request namespace. Previously, objects without a namespace set would have the request namespace populated after mutating admission, and objects with a namespace that did not match the request namespace would be rejected after admission. ([#94637](https://github.com/kubernetes/kubernetes/pull/94637), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94637", - "pr_number": 94637, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "95400": { - "commit": "922ccde1b490a3d8d8a9d54100c542d04193d8e4", - "text": "Adds support for `InterfaceNamePrefix` and `BridgeInterface` as arguments to `--detect-local-mode` option and also introduces a new optional `--pod-interface-name-prefix` and `--pod-bridge-interface` flags to kube-proxy.", - "markdown": "Adds support for `InterfaceNamePrefix` and `BridgeInterface` as arguments to `--detect-local-mode` option and also introduces a new optional `--pod-interface-name-prefix` and `--pod-bridge-interface` flags to kube-proxy. ([#95400](https://github.com/kubernetes/kubernetes/pull/95400), [@tssurya](https://github.com/tssurya))", - "author": "tssurya", - "author_url": "https://github.com/tssurya", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/95400", - "pr_number": 95400, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "97252": { - "commit": "cdf3ad823a33733dbbfcec45b368be8ed9690c5b", - "text": "Docker runtime support using dockershim in the kubelet is now completely removed in 1.24. The kubelet used to have a module called dockershim, which implements CRI support for Docker, and it has seen maintenance issues in the Kubernetes community. From 1.24 onwards, please move to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available.", - "markdown": "Docker runtime support using dockershim in the kubelet is now completely removed in 1.24. The kubelet used to have a module called dockershim, which implements CRI support for Docker, and it has seen maintenance issues in the Kubernetes community. From 1.24 onwards, please move to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available. ([#97252](https://github.com/kubernetes/kubernetes/pull/97252), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97252", - "pr_number": 97252, - "areas": [ - "test", - "kubelet", - "cloudprovider", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "node", - "instrumentation", - "testing", - "cloud-provider" - ], - "duplicate": true, - "action_required": true - }, - "97966": { - "commit": "a90961aac04e7107a5420435723c729efe9836f4", - "text": "Removed validation if AppArmor profiles are loaded on the local node. This should be handled by the container runtime.", - "markdown": "Removed validation if AppArmor profiles are loaded on the local node. This should be handled by the container runtime. ([#97966](https://github.com/kubernetes/kubernetes/pull/97966), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/97966", - "pr_number": 97966, - "areas": [ - "security" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "auth", - "security" - ], - "duplicate": true - }, - "99287": { - "commit": "41b29e6542f7ad41530c78a426c76bb25ace56ed", - "text": "Add 2 new options for kube-proxy running in winkernel mode. `--forward-healthcheck-vip`, if specified as true, health check traffic whose destination is service VIP will be forwarded to kube-proxy's healthcheck service. `--root-hnsendpoint-name` specifies the name of the hns endpoint for the root network namespace. This option enables the pass-through load balancers like Google's GCLB to correctly health check the backend services. Without this change, the health check packets is dropped, and Windows node will be considered to be unhealthy by those load balancers.", - "markdown": "Add 2 new options for kube-proxy running in winkernel mode. `--forward-healthcheck-vip`, if specified as true, health check traffic whose destination is service VIP will be forwarded to kube-proxy's healthcheck service. `--root-hnsendpoint-name` specifies the name of the hns endpoint for the root network namespace. This option enables the pass-through load balancers like Google's GCLB to correctly health check the backend services. Without this change, the health check packets is dropped, and Windows node will be considered to be unhealthy by those load balancers. ([#99287](https://github.com/kubernetes/kubernetes/pull/99287), [@anfernee](https://github.com/anfernee))", - "author": "anfernee", - "author_url": "https://github.com/anfernee", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99287", - "pr_number": 99287, - "areas": [ - "test", - "provider/gcp", - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "network", - "api-machinery", - "windows", - "testing", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "99292": { - "commit": "f979b4094e8c62a8b752012161a791ddf2e45dc7", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#99292](https://github.com/kubernetes/kubernetes/pull/99292), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Apps and Scheduling]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99292", - "pr_number": 99292, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "apps" - ], - "duplicate": true, - "do_not_publish": true - }, - "99441": { - "commit": "e22ec17057a4e0b8a937a295d7d46b9612f8887c", - "text": "Migrate `volume/csi/csi-client.go` logs to structured logging.", - "markdown": "Migrate `volume/csi/csi-client.go` logs to structured logging. ([#99441](https://github.com/kubernetes/kubernetes/pull/99441), [@CKchen0726](https://github.com/CKchen0726))", - "author": "CKchen0726", - "author_url": "https://github.com/CKchen0726", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99441", - "pr_number": 99441, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "99556": { - "commit": "d58f42961cc397b820ea2372a42dee3bc33745eb", - "text": "An alpha flag `--subresource` is added to get, patch, edit replace kubectl commands to fetch and update status and scale subresources.", - "markdown": "An alpha flag `--subresource` is added to get, patch, edit replace kubectl commands to fetch and update status and scale subresources. ([#99556](https://github.com/kubernetes/kubernetes/pull/99556), [@nikhita](https://github.com/nikhita))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/2590-kubectl-subresource", - "type": "KEP" - } - ], - "author": "nikhita", - "author_url": "https://github.com/nikhita", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99556", - "pr_number": 99556, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "99758": { - "commit": "6845df17290505ad6d989463f5bca2fbbd619c03", - "text": "Added label selector flag to all `kubectl rollout` commands.", - "markdown": "Added label selector flag to all `kubectl rollout` commands. ([#99758](https://github.com/kubernetes/kubernetes/pull/99758), [@aramperes](https://github.com/aramperes))", - "author": "aramperes", - "author_url": "https://github.com/aramperes", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99758", - "pr_number": 99758, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - } -} +{ + "100424": { + "commit": "ba1c42892f5ac079f099fa96f30f9f1b40d1283a", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#100424](https://github.com/kubernetes/kubernetes/pull/100424), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Node]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100424", + "pr_number": 100424, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "101028": { + "commit": "c2ba0a49088b31988ed0f896693ac4d6da63b1e7", + "text": "Fixed bug with leads to Node goes `Not-ready` state when credentials for vCenter stored in a secret and Zones feature is in use. Zone labels setup moved to KCM component, kubelet skips this step during startup in such case. If credentials stored in cloud-provider config file as plaintext current behaviour does not change and no action required. For proper functioning `kube-system:vsphere-legacy-cloud-provider` should be allowed to update node object if vCenter credentials stored in secret and Zone feature used.", + "markdown": "Fixed bug with leads to Node goes `Not-ready` state when credentials for vCenter stored in a secret and Zones feature is in use. Zone labels setup moved to KCM component, kubelet skips this step during startup in such case. If credentials stored in cloud-provider config file as plaintext current behaviour does not change and no action required. For proper functioning `kube-system:vsphere-legacy-cloud-provider` should be allowed to update node object if vCenter credentials stored in secret and Zone feature used. ([#101028](https://github.com/kubernetes/kubernetes/pull/101028), [@lobziik](https://github.com/lobziik))", + "author": "lobziik", + "author_url": "https://github.com/lobziik", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101028", + "pr_number": 101028, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ], + "action_required": true + }, + "101218": { + "commit": "6c96ac04ff970809d815c871958be702d3065db1", + "text": "Kubelet now checks \"NoExecute\" taint/toleration before accepting pods, except for static pods.", + "markdown": "Kubelet now checks \"NoExecute\" taint/toleration before accepting pods, except for static pods. ([#101218](https://github.com/kubernetes/kubernetes/pull/101218), [@gjkim42](https://github.com/gjkim42))", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101218", + "pr_number": 101218, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "101719": { + "commit": "f356ae4ad977bc9bf2baf3e90451f9b74a9dbba9", + "text": "The deprecated flag `--really-crash-for-testing` was removed.", + "markdown": "The deprecated flag `--really-crash-for-testing` was removed. ([#101719](https://github.com/kubernetes/kubernetes/pull/101719), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101719", + "pr_number": 101719, + "areas": [ + "test", + "kubelet", + "apiserver" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "network", + "node", + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "102265": { + "commit": "2cb3c7f706dbf266820fbde2e1b23a320e5d3de7", + "text": "allow kubectl to manage resources by filename patterns without the shell expanding it first", + "markdown": "Allow kubectl to manage resources by filename patterns without the shell expanding it first ([#102265](https://github.com/kubernetes/kubernetes/pull/102265), [@danielrodriguez](https://github.com/danielrodriguez))", + "author": "danielrodriguez", + "author_url": "https://github.com/danielrodriguez", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102265", + "pr_number": 102265, + "areas": [ + "kubectl", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "103061": { + "commit": "5211a4b2147ce745649e77687a87cdebc08a6707", + "text": "The `node.k8s.io/v1alpha1` RuntimeClass API is no longer served. Use the `node.k8s.io/v1` API version, available since v1.20", + "markdown": "The `node.k8s.io/v1alpha1` RuntimeClass API is no longer served. Use the `node.k8s.io/v1` API version, available since v1.20 ([#103061](https://github.com/kubernetes/kubernetes/pull/103061), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103061", + "pr_number": 103061, + "areas": [ + "test", + "apiserver", + "kubectl" + ], + "kinds": [ + "cleanup", + "api-change", + "deprecation" + ], + "sigs": [ + "node", + "api-machinery", + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "103516": { + "commit": "9fbe66a486990a5bd2e5213ecdacb7d98e11075d", + "text": "kube-apiserver: Subresources such as `status` and `scale` now support tabular output content types.", + "markdown": "Kube-apiserver: Subresources such as `status` and `scale` now support tabular output content types. ([#103516](https://github.com/kubernetes/kubernetes/pull/103516), [@ykakarap](https://github.com/ykakarap))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/2590-kubectl-subresource", + "type": "KEP" + } + ], + "author": "ykakarap", + "author_url": "https://github.com/ykakarap", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103516", + "pr_number": 103516, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "104143": { + "commit": "5fbb0801aaa4ccfbf83e8fdc4cb9317fc8983c28", + "text": "NONE", + "markdown": "NONE ([#104143](https://github.com/kubernetes/kubernetes/pull/104143), [@wzshiming](https://github.com/wzshiming)) [SIG Node]", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104143", + "pr_number": 104143, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "104244": { + "commit": "85c43df3f6090f13a1004098a852553d1c61c745", + "text": "Introduce policy to allow the HPA to consume the `external.metrics.k8s.io` API group.", + "markdown": "Introduce policy to allow the HPA to consume the `external.metrics.k8s.io` API group. ([#104244](https://github.com/kubernetes/kubernetes/pull/104244), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104244", + "pr_number": 104244, + "kinds": [ + "feature" + ], + "sigs": [ + "autoscaling", + "auth", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "104620": { + "commit": "df21ff86eb299c207f2c1db580896dc07595d7bc", + "text": "Added field `add_ambient_capabilities` to the Capabilities message in the CRI-API.", + "markdown": "Added field `add_ambient_capabilities` to the Capabilities message in the CRI-API. ([#104620](https://github.com/kubernetes/kubernetes/pull/104620), [@vinayakankugoyal](https://github.com/vinayakankugoyal))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2757", + "type": "KEP" + } + ], + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104620", + "pr_number": 104620, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "104732": { + "commit": "06e107081e4e0182efb9daa0daf7f2ae12272704", + "text": "Remove the deprecated flag `--experimental-check-node-capabilities-before-mount`. With CSI now GA, there is a better alternative. Remove any use of `--experimental-check-node-capabilities-before-mount` from your kubelet scripts or manifests.", + "markdown": "Remove the deprecated flag `--experimental-check-node-capabilities-before-mount`. With CSI now GA, there is a better alternative. Remove any use of `--experimental-check-node-capabilities-before-mount` from your kubelet scripts or manifests. ([#104732](https://github.com/kubernetes/kubernetes/pull/104732), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104732", + "pr_number": 104732, + "areas": [ + "kubelet", + "provider/gcp" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "storage", + "node", + "apps", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "104736": { + "commit": "750cb93e62bad7bc798b75c96eb4ff0f6f1883b9", + "text": "Improve kubectl's user help commands readability", + "markdown": "Improve kubectl's user help commands readability ([#104736](https://github.com/kubernetes/kubernetes/pull/104736), [@lauchokyip](https://github.com/lauchokyip))", + "author": "lauchokyip", + "author_url": "https://github.com/lauchokyip", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104736", + "pr_number": 104736, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "kubeadm", + "conformance", + "code-generation", + "ipvs", + "e2e-test-framework", + "dependency", + "network-policy" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "scalability", + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "autoscaling", + "contributor-experience", + "auth", + "apps", + "windows", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider", + "security" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "104774": { + "commit": "b1c204a237b433127e99107afea4e84a5b89d5b8", + "text": "Fixed failed flushing logs in defer function when kubelet cmd exit 1.", + "markdown": "Fixed failed flushing logs in defer function when kubelet cmd exit 1. ([#104774](https://github.com/kubernetes/kubernetes/pull/104774), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104774", + "pr_number": 104774, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "104837": { + "commit": "03ee86c09c96054d64c402592e4e0fdec4943615", + "text": "Fixed regression in CPUManager that it will release exclusive CPUs in app containers inherited from init containers when the init containers were removed.", + "markdown": "Fixed regression in CPUManager that it will release exclusive CPUs in app containers inherited from init containers when the init containers were removed. ([#104837](https://github.com/kubernetes/kubernetes/pull/104837), [@eggiter](https://github.com/eggiter))", + "author": "eggiter", + "author_url": "https://github.com/eggiter", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104837", + "pr_number": 104837, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "104846": { + "commit": "1945829906546caf867992669a0bfa588edf8be6", + "text": "The Service field `spec.internalTrafficPolicy` is no longer defaulted for Services when the type is `ExternalName`. The field is also dropped on read when the Service type is `ExternalName`.", + "markdown": "The Service field `spec.internalTrafficPolicy` is no longer defaulted for Services when the type is `ExternalName`. The field is also dropped on read when the Service type is `ExternalName`. ([#104846](https://github.com/kubernetes/kubernetes/pull/104846), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104846", + "pr_number": 104846, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "105070": { + "commit": "15fb945348cdd65ef398d7e460da96c6c3ca3026", + "text": "turn on `CSIMigrationAzureFile` by default on 1.24", + "markdown": "Turn on `CSIMigrationAzureFile` by default on 1.24 ([#105070](https://github.com/kubernetes/kubernetes/pull/105070), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105070", + "pr_number": 105070, + "areas": [ + "provider/azure" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "105164": { + "commit": "e53f93c7bb9fe28e5de2799da8eb1c62bdd4f4f1", + "text": "Added prune flag into `diff` command to simulate `apply --prune`.", + "markdown": "Added prune flag into `diff` command to simulate `apply --prune`. ([#105164](https://github.com/kubernetes/kubernetes/pull/105164), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105164", + "pr_number": 105164, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "105297": { + "commit": "d3c1e26c7feede68af476dc71d952d244ec5f2da", + "text": "If drainer has nil for Ctx or Client it will error with `RunCordonOrUncordon`.", + "markdown": "If drainer has nil for Ctx or Client it will error with `RunCordonOrUncordon`. ([#105297](https://github.com/kubernetes/kubernetes/pull/105297), [@jackfrancis](https://github.com/jackfrancis))", + "author": "jackfrancis", + "author_url": "https://github.com/jackfrancis", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105297", + "pr_number": 105297, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "105360": { + "commit": "b685b3982d729ad8695f7ec0ad9286dd6e4fbdd1", + "text": "Kubelet config validation error messages are updated.", + "markdown": "Kubelet config validation error messages are updated. ([#105360](https://github.com/kubernetes/kubernetes/pull/105360), [@shuheiktgw](https://github.com/shuheiktgw))", + "author": "shuheiktgw", + "author_url": "https://github.com/shuheiktgw", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105360", + "pr_number": 105360, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "105517": { + "commit": "cbec2a936bfc22afdbafebcd05de029ffe58ffc1", + "text": "Added a new label `type` to `apiserver_flowcontrol_request_execution_seconds` metric - it has the following values: - 'regular': indicates that it is a non long running request - 'watch': indicates that it is a watch request.", + "markdown": "Added a new label `type` to `apiserver_flowcontrol_request_execution_seconds` metric - it has the following values: - 'regular': indicates that it is a non long running request - 'watch': indicates that it is a watch request. ([#105517](https://github.com/kubernetes/kubernetes/pull/105517), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105517", + "pr_number": 105517, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "105566": { + "commit": "afdde383210294c3da573decc44b5ce55cffcb94", + "text": "Added a `proxy-url` flag into `kubectl config set-cluster`.", + "markdown": "Added a `proxy-url` flag into `kubectl config set-cluster`. ([#105566](https://github.com/kubernetes/kubernetes/pull/105566), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105566", + "pr_number": 105566, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "duplicate_kind": true + }, + "105585": { + "commit": "1a5abe5d1f837b8269b857354a2fd32b82a771bf", + "text": "add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state to kubelet", + "markdown": "Add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state to kubelet ([#105585](https://github.com/kubernetes/kubernetes/pull/105585), [@fengzixu](https://github.com/fengzixu))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/pull/2900", + "type": "KEP" + } + ], + "author": "fengzixu", + "author_url": "https://github.com/fengzixu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105585", + "pr_number": 105585, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "105632": { + "commit": "d10161b45b751df45701e343599476e27d533d58", + "text": "Added support for kubectl commands (`kubectl exec` and `kubectl port-forward`) via a SOCKS5 proxy.", + "markdown": "Added support for kubectl commands (`kubectl exec` and `kubectl port-forward`) via a SOCKS5 proxy. ([#105632](https://github.com/kubernetes/kubernetes/pull/105632), [@xens](https://github.com/xens))", + "author": "xens", + "author_url": "https://github.com/xens", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105632", + "pr_number": 105632, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "api-machinery", + "cluster-lifecycle", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "105853": { + "commit": "20a5b335c50138fe5abac092180515e2bc6f0d8e", + "text": "Restored `NumPDBViolations` info of nodes, when `HTTPExtender ProcessPreemption`. This info will be used in subsequent filtering steps - `pickOneNodeForPreemption`", + "markdown": "Restored `NumPDBViolations` info of nodes, when `HTTPExtender ProcessPreemption`. This info will be used in subsequent filtering steps - `pickOneNodeForPreemption` ([#105853](https://github.com/kubernetes/kubernetes/pull/105853), [@caden2016](https://github.com/caden2016))", + "author": "caden2016", + "author_url": "https://github.com/caden2016", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105853", + "pr_number": 105853, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "105954": { + "commit": "a1b52fb17a6f7f34f676bf399e82979b8ff9b072", + "text": "Only extend token lifetimes when `--service-account-extend-token-expiration` is true and the requested token audiences are empty or exactly match all values for `--api-audiences`.", + "markdown": "Only extend token lifetimes when `--service-account-extend-token-expiration` is true and the requested token audiences are empty or exactly match all values for `--api-audiences`. ([#105954](https://github.com/kubernetes/kubernetes/pull/105954), [@jyotimahapatra](https://github.com/jyotimahapatra))", + "author": "jyotimahapatra", + "author_url": "https://github.com/jyotimahapatra", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105954", + "pr_number": 105954, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "testing" + ], + "duplicate": true + }, + "105964": { + "commit": "0977a5d7cda59d5bd324bf2730846905e072fbbf", + "text": "The `kubectl logs` will now warn and default to the first container in a pod. This new behavior brings it in line with `kubectl exec`.", + "markdown": "The `kubectl logs` will now warn and default to the first container in a pod. This new behavior brings it in line with `kubectl exec`. ([#105964](https://github.com/kubernetes/kubernetes/pull/105964), [@kidlj](https://github.com/kidlj))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/2227-kubectl-default-container", + "type": "KEP" + } + ], + "author": "kidlj", + "author_url": "https://github.com/kidlj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105964", + "pr_number": 105964, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "106109": { + "commit": "83988399e87f9d9674b8327b351e1bdf7c7fe716", + "text": "Migrate statefulset files to structured logging", + "markdown": "Migrate statefulset files to structured logging ([#106109](https://github.com/kubernetes/kubernetes/pull/106109), [@h4ghhh](https://github.com/h4ghhh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1602-structured-loggin", + "type": "KEP" + } + ], + "author": "h4ghhh", + "author_url": "https://github.com/h4ghhh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106109", + "pr_number": 106109, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "instrumentation" + ], + "duplicate": true + }, + "106153": { + "commit": "e9fc46750f6da84d9434a8066d7d2ba1531c5d67", + "text": "NONE", + "markdown": "NONE ([#106153](https://github.com/kubernetes/kubernetes/pull/106153), [@hyschumi](https://github.com/hyschumi)) [SIG API Machinery]", + "author": "hyschumi", + "author_url": "https://github.com/hyschumi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106153", + "pr_number": 106153, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "106164": { + "commit": "03bcfab1a6675563672ddc11bd24c613967b102c", + "text": "Fixed: removed outdated ipv4 route when the corresponding node is deleted.", + "markdown": "Fixed: removed outdated ipv4 route when the corresponding node is deleted. ([#106164](https://github.com/kubernetes/kubernetes/pull/106164), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106164", + "pr_number": 106164, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cloud-provider" + ], + "duplicate_kind": true + }, + "106179": { + "commit": "a90f31f85ad0e0fa927f852ec0dee77a670d1586", + "text": "Fixed bug in error messaging for basic-auth and ssh secret validations.", + "markdown": "Fixed bug in error messaging for basic-auth and ssh secret validations. ([#106179](https://github.com/kubernetes/kubernetes/pull/106179), [@vivek-koppuru](https://github.com/vivek-koppuru))", + "author": "vivek-koppuru", + "author_url": "https://github.com/vivek-koppuru", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106179", + "pr_number": 106179, + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "apps" + ], + "duplicate": true + }, + "106203": { + "commit": "b960f7a0e04687c17e0b0801e17e7cab89f273cc", + "text": "Added test cases for `scheduler/PriorityQueue.Activate`, to change the `assert` way from `assert.Equal(t, a, b, \"fail msg\")` to a more clear way.", + "markdown": "Added test cases for `scheduler/PriorityQueue.Activate`, to change the `assert` way from `assert.Equal(t, a, b, \"fail msg\")` to a more clear way. ([#106203](https://github.com/kubernetes/kubernetes/pull/106203), [@jiekun](https://github.com/jiekun))", + "author": "jiekun", + "author_url": "https://github.com/jiekun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106203", + "pr_number": 106203, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "106313": { + "commit": "87a54cbd3ff97b668a334a42cfd979d610eb35c4", + "text": "Added a test to guarantee that conformance clusters require at least 2 untainted nodes.", + "markdown": "Added a test to guarantee that conformance clusters require at least 2 untainted nodes. ([#106313](https://github.com/kubernetes/kubernetes/pull/106313), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106313", + "pr_number": 106313, + "areas": [ + "test", + "conformance" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "testing", + "architecture" + ], + "duplicate": true, + "duplicate_kind": true + }, + "106322": { + "commit": "19fe56cb393f41720cab92fbaa4c438ac83ee481", + "text": "NONE", + "markdown": "NONE ([#106322](https://github.com/kubernetes/kubernetes/pull/106322), [@amacaskill](https://github.com/amacaskill)) [SIG Storage and Testing]", + "author": "amacaskill", + "author_url": "https://github.com/amacaskill", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106322", + "pr_number": 106322, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "failing-test" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "106366": { + "commit": "ba200841fddcf8fb5edb413546ce9574f2a14d82", + "text": "Renamed metrics `evictions_number` to `evictions_total` and mark it as stable. The original `evictions_number` metrics name is marked as \"Deprecated\" and has been removed in kubernetes 1.23 .", + "markdown": "Renamed metrics `evictions_number` to `evictions_total` and mark it as stable. The original `evictions_number` metrics name is marked as \"Deprecated\" and has been removed in kubernetes 1.23 . ([#106366](https://github.com/kubernetes/kubernetes/pull/106366), [@cyclinder](https://github.com/cyclinder))", + "author": "cyclinder", + "author_url": "https://github.com/cyclinder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106366", + "pr_number": 106366, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "kubeadm", + "conformance", + "code-generation", + "e2e-test-framework", + "dependency", + "network-policy" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "scalability", + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "apps", + "windows", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "106445": { + "commit": "08fc9febb1a75a428d3a8126c65058c1a62028ec", + "text": "Fixed documentation typo in cloud-provider.", + "markdown": "Fixed documentation typo in cloud-provider. ([#106445](https://github.com/kubernetes/kubernetes/pull/106445), [@majst01](https://github.com/majst01))", + "author": "majst01", + "author_url": "https://github.com/majst01", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106445", + "pr_number": 106445, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ] + }, + "106447": { + "commit": "75109026d0aa24dd600e71da67a16db8a5320886", + "text": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", + "markdown": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#106447](https://github.com/kubernetes/kubernetes/pull/106447), [@hyschumi](https://github.com/hyschumi)) [SIG Scheduling]", + "author": "hyschumi", + "author_url": "https://github.com/hyschumi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106447", + "pr_number": 106447, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "106453": { + "commit": "68e64ba52eb8518894ee62ef4240c9733f8c4346", + "text": "Fixed spelling of implemented in pkg/proxy/apis/config/types.go line 206", + "markdown": "Fixed spelling of implemented in pkg/proxy/apis/config/types.go line 206 ([#106453](https://github.com/kubernetes/kubernetes/pull/106453), [@davidleitw](https://github.com/davidleitw))", + "author": "davidleitw", + "author_url": "https://github.com/davidleitw", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106453", + "pr_number": 106453, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "106492": { + "commit": "2bfd0ef278b4f30e9b102539d7326dc712c7263a", + "text": "Metrics Server image bumped to v0.5.2", + "markdown": "Metrics Server image bumped to v0.5.2 ([#106492](https://github.com/kubernetes/kubernetes/pull/106492), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106492", + "pr_number": 106492, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "instrumentation", + "cloud-provider" + ], + "duplicate": true + }, + "106497": { + "commit": "9f213370cc0dc250d036d2d17de5b9df8c29830c", + "text": "Services with \"internalTrafficPolicy: Local\" now behave more like\n\"externalTrafficPolicy: Local\". Also, \"internalTrafficPolicy: Local,\nexternalTrafficPolicy: Cluster\" is now implemented correctly.", + "markdown": "Services with \"internalTrafficPolicy: Local\" now behave more like\n \"externalTrafficPolicy: Local\". Also, \"internalTrafficPolicy: Local,\n externalTrafficPolicy: Cluster\" is now implemented correctly. ([#106497](https://github.com/kubernetes/kubernetes/pull/106497), [@danwinship](https://github.com/danwinship))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/9ad538c8c04f7a15a6e7c17c49cac2c47b63a1a1/keps/sig-network/2086-service-internal-traffic-policy", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106497", + "pr_number": 106497, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "106539": { + "commit": "6de9dddf94c75a19d8baadf9e22f94095956ee2b", + "text": "Replace the url label of `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` metrics with a host label to prevent cardinality explosions and keep only the useful information. This is a breaking change required for security reasons.", + "markdown": "Replace the url label of `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` metrics with a host label to prevent cardinality explosions and keep only the useful information. This is a breaking change required for security reasons. ([#106539](https://github.com/kubernetes/kubernetes/pull/106539), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106539", + "pr_number": 106539, + "kinds": [ + "bug" + ], + "sigs": [ + "instrumentation" + ] + }, + "106570": { + "commit": "0e8e30756794cb54549554a4b0bcf4a8ad1db7e1", + "text": "Fix container creation errors for pods with cpu requests bigger than 256 cpus", + "markdown": "Fix container creation errors for pods with cpu requests bigger than 256 cpus ([#106570](https://github.com/kubernetes/kubernetes/pull/106570), [@odinuge](https://github.com/odinuge))", + "author": "odinuge", + "author_url": "https://github.com/odinuge", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106570", + "pr_number": 106570, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "106581": { + "commit": "68b53cf9401a3a08ffcfd1cf4a6eb43b78db2e32", + "text": "Publishing kube-proxy metrics for Windows kernel-mode", + "markdown": "Publishing kube-proxy metrics for Windows kernel-mode ([#106581](https://github.com/kubernetes/kubernetes/pull/106581), [@knabben](https://github.com/knabben))", + "author": "knabben", + "author_url": "https://github.com/knabben", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106581", + "pr_number": 106581, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows", + "instrumentation" + ], + "duplicate": true + }, + "106584": { + "commit": "32a244552e4caa0922d481d3ed8988b99ab142e1", + "text": "after", + "markdown": "After ([#106584](https://github.com/kubernetes/kubernetes/pull/106584), [@jonyhy96](https://github.com/jonyhy96)) [SIG Cloud Provider]", + "author": "jonyhy96", + "author_url": "https://github.com/jonyhy96", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106584", + "pr_number": 106584, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup", + "flake", + "failing-test" + ], + "sigs": [ + "cloud-provider" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "106588": { + "commit": "9cbe01e5a1cecd8aab4498c6989831f44bc85057", + "text": "NONE", + "markdown": "NONE ([#106588](https://github.com/kubernetes/kubernetes/pull/106588), [@victory460](https://github.com/victory460)) [SIG API Machinery, Cloud Provider and Instrumentation]", + "author": "victory460", + "author_url": "https://github.com/victory460", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106588", + "pr_number": 106588, + "areas": [ + "provider/gcp", + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true + }, + "106600": { + "commit": "d22c82413a1774342f473d003e3ce65b4e4700db", + "text": "Added an example for the `kubectl plugin list` command.", + "markdown": "Added an example for the `kubectl plugin list` command. ([#106600](https://github.com/kubernetes/kubernetes/pull/106600), [@bergerhoffer](https://github.com/bergerhoffer))", + "author": "bergerhoffer", + "author_url": "https://github.com/bergerhoffer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106600", + "pr_number": 106600, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "106619": { + "commit": "84f1d6834fee980ce9f43521e018bfb4bbe16a08", + "text": "Feature of `PreferNominatedNode` is graduated to GA.", + "markdown": "Feature of `PreferNominatedNode` is graduated to GA. ([#106619](https://github.com/kubernetes/kubernetes/pull/106619), [@chendave](https://github.com/chendave))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2026, https://github.com/kubernetes/enhancements/pull/3057", + "type": "KEP" + } + ], + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106619", + "pr_number": 106619, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true + }, + "106628": { + "commit": "909bada3f475777a5a9d2e9f9d7506e310016c74", + "text": "A new Priority and Fairness metric 'apiserver_flowcontrol_work_estimate_seats_samples' has been added that tracks the estimated seats associated with a request.", + "markdown": "A new Priority and Fairness metric 'apiserver_flowcontrol_work_estimate_seats_samples' has been added that tracks the estimated seats associated with a request. ([#106628](https://github.com/kubernetes/kubernetes/pull/106628), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106628", + "pr_number": 106628, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "106629": { + "commit": "33a2c50bce334467640e016f68cf19e9382ba1a7", + "text": "Added a new Priority and Fairness metric `apiserver_flowcontrol_request_dispatch_no_accommodation_total` to track the number of times a request dispatch attempt results in a no-accommodation status due to lack of available seats.", + "markdown": "Added a new Priority and Fairness metric `apiserver_flowcontrol_request_dispatch_no_accommodation_total` to track the number of times a request dispatch attempt results in a no-accommodation status due to lack of available seats. ([#106629](https://github.com/kubernetes/kubernetes/pull/106629), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106629", + "pr_number": 106629, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "106644": { + "commit": "b457ae72f5155fbce5bf151ab3c6ae5583822f45", + "text": "E1123 02:12:14.103886 3340 server.go:279] \"kubelet running with insufficient permissions\" err=\"error while checking admin group membership: error retrieving group ids: The user name could not be found.\"\nI1123 02:12:14.166198 3340 server.go:440] \"Kubelet version\" kubeletVersion=\"v1.22.2\"\nI1123 02:12:14.166198 3340 init_windows.go:55] \"Setting the priority of kubelet process\" windowsPriorityClass=\"NORMAL_PRIORITY_CLASS\"\nW1123 02:12:14.166748 3340 plugins.go:132] WARNING: vsphere built-in cloud provider is now deprecated. The vSphere provider is deprecated and will be removed in a future release. Please use https://github.com/kubernetes/cloud-provider-vsphere\nI1123 02:12:14.267995 3340 dynamic_cafile_content.go:155] \"Starting controller\" name=\"client-ca-bundle::C:\\\\var\\\\vcap\\\\jobs\\\\kubelet-windows\\\\config\nkubelet-client-ca.pem\"\nE1123 02:12:14.480099 3340 server.go:294] \"Failed to run kubelet\" err=\"failed to run Kubelet: unable to add process counter. Error code is c0000bb8\"", + "markdown": "E1123 02:12:14.103886 3340 server.go:279] \"kubelet running with insufficient permissions\" err=\"error while checking admin group membership: error retrieving group ids: The user name could not be found.\"\n I1123 02:12:14.166198 3340 server.go:440] \"Kubelet version\" kubeletVersion=\"v1.22.2\"\n I1123 02:12:14.166198 3340 init_windows.go:55] \"Setting the priority of kubelet process\" windowsPriorityClass=\"NORMAL_PRIORITY_CLASS\"\n W1123 02:12:14.166748 3340 plugins.go:132] WARNING: vsphere built-in cloud provider is now deprecated. The vSphere provider is deprecated and will be removed in a future release. Please use https://github.com/kubernetes/cloud-provider-vsphere\n I1123 02:12:14.267995 3340 dynamic_cafile_content.go:155] \"Starting controller\" name=\"client-ca-bundle::C:\\\\var\\\\vcap\\\\jobs\\\\kubelet-windows\\\\config\n kubelet-client-ca.pem\"\n E1123 02:12:14.480099 3340 server.go:294] \"Failed to run kubelet\" err=\"failed to run Kubelet: unable to add process counter. Error code is c0000bb8\" ([#106644](https://github.com/kubernetes/kubernetes/pull/106644), [@ahrtr](https://github.com/ahrtr)) [SIG Node and Windows]", + "author": "ahrtr", + "author_url": "https://github.com/ahrtr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106644", + "pr_number": 106644, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true, + "do_not_publish": true + }, + "106648": { + "commit": "522c1be4c17a6b40c5687f5323876a477cb0b100", + "text": "kubeadm: remove the `IPv6DualStack` feature gate. The feature has been GA and locked to enabled since 1.23.", + "markdown": "Kubeadm: remove the `IPv6DualStack` feature gate. The feature has been GA and locked to enabled since 1.23. ([#106648](https://github.com/kubernetes/kubernetes/pull/106648), [@calvin0327](https://github.com/calvin0327))", + "author": "calvin0327", + "author_url": "https://github.com/calvin0327", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106648", + "pr_number": 106648, + "areas": [ + "test", + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle", + "testing" + ], + "duplicate": true + }, + "106660": { + "commit": "aff056d8a197f6a404ad5e02210ca662d16c3dbe", + "text": "kube-apiserver: Server Side Apply merge order is reverted to match v1.22 behavior until http://issue.k8s.io/104641 is resolved.", + "markdown": "Kube-apiserver: Server Side Apply merge order is reverted to match v1.22 behavior until http://issue.k8s.io/104641 is resolved. ([#106660](https://github.com/kubernetes/kubernetes/pull/106660), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106660", + "pr_number": 106660, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "106715": { + "commit": "469c4c4a30ab57540425e739215f4ceaf9a30682", + "text": "CRI-API: IPs returned by `PodSandboxNetworkStatus`` are ignored by the kubelet for host-network pods.", + "markdown": "CRI-API: IPs returned by `PodSandboxNetworkStatus`` are ignored by the kubelet for host-network pods. ([#106715](https://github.com/kubernetes/kubernetes/pull/106715), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106715", + "pr_number": 106715, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "106721": { + "commit": "62faf2cdc221cb94bd96b09721a246ba3a9847a1", + "text": "`apiserver`, if configured to reconcile the `kubernetes.default` service endpoints, checks if the configured Service IP range matches the apiserver public address IP family, and fails to start if not.", + "markdown": "`apiserver`, if configured to reconcile the `kubernetes.default` service endpoints, checks if the configured Service IP range matches the apiserver public address IP family, and fails to start if not. ([#106721](https://github.com/kubernetes/kubernetes/pull/106721), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106721", + "pr_number": 106721, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "106725": { + "commit": "c67fb7b098f35a8e94c0c9ffcaf952e8f41a9523", + "text": "Updated the default API priority-and-fairness config to avoid endpoint/configmaps operations from controller-manager to all match leader-election priority level.", + "markdown": "Updated the default API priority-and-fairness config to avoid endpoint/configmaps operations from controller-manager to all match leader-election priority level. ([#106725](https://github.com/kubernetes/kubernetes/pull/106725), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106725", + "pr_number": 106725, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "106739": { + "commit": "2b32b4b3527b16dece4483734f4b79b3593f237f", + "text": "Added completion for `kubectl config set-context`.", + "markdown": "Added completion for `kubectl config set-context`. ([#106739](https://github.com/kubernetes/kubernetes/pull/106739), [@kebe7jun](https://github.com/kebe7jun))", + "author": "kebe7jun", + "author_url": "https://github.com/kebe7jun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106739", + "pr_number": 106739, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "106792": { + "commit": "e8e0fe9e8771b09dc7e73d9d3bfff07d28511c79", + "text": "New feature gate, ServiceIPStaticSubrange, to enable the new strategy in the Service IP allocators, so the IP range is subdivided and dynamic allocated ClusterIP addresses for Services are allocated preferently from the upper range.", + "markdown": "New feature gate, ServiceIPStaticSubrange, to enable the new strategy in the Service IP allocators, so the IP range is subdivided and dynamic allocated ClusterIP addresses for Services are allocated preferently from the upper range. ([#106792](https://github.com/kubernetes/kubernetes/pull/106792), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106792", + "pr_number": 106792, + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation" + ], + "feature": true + }, + "106803": { + "commit": "ea644ad9be9f8d6f9405191ea2ead84731b3dbf7", + "text": "Reverts the CRI API version surfaced by dockershim to v1alpha2", + "markdown": "Reverts the CRI API version surfaced by dockershim to v1alpha2 ([#106803](https://github.com/kubernetes/kubernetes/pull/106803), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106803", + "pr_number": 106803, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true, + "duplicate_kind": true + }, + "106816": { + "commit": "712745cb6755b3a28ca12292b30d138d5f737aa6", + "text": "Fixed a bug that a pod's `.status.nominatedNodeName` is not cleared properly, and thus over-occupied system resources.", + "markdown": "Fixed a bug that a pod's `.status.nominatedNodeName` is not cleared properly, and thus over-occupied system resources. ([#106816](https://github.com/kubernetes/kubernetes/pull/106816), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106816", + "pr_number": 106816, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true + }, + "106824": { + "commit": "d429c9820e8570d093d1315e4b8f7a90af55d0a7", + "text": "Removed deprecated `generator` and `container-port` flags", + "markdown": "Removed deprecated `generator` and `container-port` flags ([#106824](https://github.com/kubernetes/kubernetes/pull/106824), [@lauchokyip](https://github.com/lauchokyip))", + "author": "lauchokyip", + "author_url": "https://github.com/lauchokyip", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106824", + "pr_number": 106824, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "106830": { + "commit": "c2d2e665355334d2cfa282b6e5adff6bb0f80839", + "text": "Remove deprecated feature gates `ValidateProxyRedirects` and `StreamingProxyRedirects`", + "markdown": "Remove deprecated feature gates `ValidateProxyRedirects` and `StreamingProxyRedirects` ([#106830](https://github.com/kubernetes/kubernetes/pull/106830), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106830", + "pr_number": 106830, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "106833": { + "commit": "68bd9994aea41012cd1dc93f6f7856a18cf3942d", + "text": "Kubernetes is now built with Golang 1.17.4", + "markdown": "Kubernetes is now built with Golang 1.17.4 ([#106833](https://github.com/kubernetes/kubernetes/pull/106833), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106833", + "pr_number": 106833, + "areas": [ + "test", + "security", + "provider/gcp", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing", + "release", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "106838": { + "commit": "2daa3415eca55d0ce0e6f81fc33737b3336ddd1e", + "text": "The `NamespaceDefaultLabelName` feature gate, GA since v1.22, is now removed.", + "markdown": "The `NamespaceDefaultLabelName` feature gate, GA since v1.22, is now removed. ([#106838](https://github.com/kubernetes/kubernetes/pull/106838), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/2161-apiserver-default-labels", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106838", + "pr_number": 106838, + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "apps" + ], + "feature": true, + "duplicate": true + }, + "106850": { + "commit": "c16b2afc1d3c32462f068ea08cdc4791bd97b947", + "text": "Deprecated types in `k8s.io/apimachinery/util/clock`. Please use `k8s.io/utils/clock` instead.", + "markdown": "Deprecated types in `k8s.io/apimachinery/util/clock`. Please use `k8s.io/utils/clock` instead. ([#106850](https://github.com/kubernetes/kubernetes/pull/106850), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", + "author": "MadhavJivrajani", + "author_url": "https://github.com/MadhavJivrajani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106850", + "pr_number": 106850, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "cloud-provider" + ], + "duplicate": true + }, + "106853": { + "commit": "f0dbc32ed9c8a51a6d149eb62d868fb995f0db3a", + "text": "Allowed attached volumes to be mounted quicker by skipping exponential backoff when checking for reported-in-use volumes.", + "markdown": "Allowed attached volumes to be mounted quicker by skipping exponential backoff when checking for reported-in-use volumes. ([#106853](https://github.com/kubernetes/kubernetes/pull/106853), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106853", + "pr_number": 106853, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node", + "apps" + ], + "duplicate": true + }, + "106854": { + "commit": "89f53538ffb5d45599c73a3f245a747ccdabdf3b", + "text": "kubeadm: allow the `certs check-expiration` command to not require the existence of the cluster CA key (ca.key file) when checking the expiration of managed certificates in kubeconfig files.", + "markdown": "Kubeadm: allow the `certs check-expiration` command to not require the existence of the cluster CA key (ca.key file) when checking the expiration of managed certificates in kubeconfig files. ([#106854](https://github.com/kubernetes/kubernetes/pull/106854), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106854", + "pr_number": 106854, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "106859": { + "commit": "8cc7d14588f688fec1d7b7da953e151158440b3a", + "text": "kube-apiserver: the insecure address flags `--address`, `--insecure-bind-address`, `--port` and `--insecure-port` (inert since 1.20) are removed", + "markdown": "Kube-apiserver: the insecure address flags `--address`, `--insecure-bind-address`, `--port` and `--insecure-port` (inert since 1.20) are removed ([#106859](https://github.com/kubernetes/kubernetes/pull/106859), [@knight42](https://github.com/knight42))", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106859", + "pr_number": 106859, + "areas": [ + "apiserver", + "provider/gcp", + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "106860": { + "commit": "cb0e11a2963f0b32ab432b57ed2603d7d64899cf", + "text": "The insecure address flags `--address` and `--port` in kube-controller-manager have had no effect since v1.20 and are removed in v1.24.", + "markdown": "The insecure address flags `--address` and `--port` in kube-controller-manager have had no effect since v1.20 and are removed in v1.24. ([#106860](https://github.com/kubernetes/kubernetes/pull/106860), [@knight42](https://github.com/knight42))", + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106860", + "pr_number": 106860, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "node", + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "106865": { + "commit": "ac318a65184fcbd448928374c38f46ffe5afce3b", + "text": "Removed kube-scheduler insecure flags. You can use `--bind-address` and `--secure-port` instead.", + "markdown": "Removed kube-scheduler insecure flags. You can use `--bind-address` and `--secure-port` instead. ([#106865](https://github.com/kubernetes/kubernetes/pull/106865), [@jonyhy96](https://github.com/jonyhy96))", + "author": "jonyhy96", + "author_url": "https://github.com/jonyhy96", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106865", + "pr_number": 106865, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "106875": { + "commit": "2cd8ceb2694ef30d93cccb53445e9add6cbd9f7f", + "text": "Updated the error message to not use the `--max-resource-write-bytes` \u0026 `--json-patch-max-copy-bytes` string.", + "markdown": "Updated the error message to not use the `--max-resource-write-bytes` \u0026 `--json-patch-max-copy-bytes` string. ([#106875](https://github.com/kubernetes/kubernetes/pull/106875), [@warmchang](https://github.com/warmchang))", + "author": "warmchang", + "author_url": "https://github.com/warmchang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106875", + "pr_number": 106875, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "106878": { + "commit": "8f91d09865b7adb641a5e890d8b9b6053078b81a", + "text": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#106878](https://github.com/kubernetes/kubernetes/pull/106878), [@humblec](https://github.com/humblec)) [SIG Storage]", + "author": "humblec", + "author_url": "https://github.com/humblec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106878", + "pr_number": 106878, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "do_not_publish": true + }, + "106882": { + "commit": "dc6a3ad06296d8d5c92de342cd33ff901d5c68cc", + "text": "Refactor kubelet command line for enabling features and \"drop `RuntimeClass` feature gate\" if present. Note that this feature has been on by default since 1.14 and was GA'ed in 1.20.", + "markdown": "Refactor kubelet command line for enabling features and \"drop `RuntimeClass` feature gate\" if present. Note that this feature has been on by default since 1.14 and was GA'ed in 1.20. ([#106882](https://github.com/kubernetes/kubernetes/pull/106882), [@cyclinder](https://github.com/cyclinder))", + "author": "cyclinder", + "author_url": "https://github.com/cyclinder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106882", + "pr_number": 106882, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "106891": { + "commit": "f98f27bc2f318add77118906f7595abab7ab5200", + "text": "kubeadm: during execution of the `certs check-expiration` command, treat the etcd CA as external if there is a missing etcd CA key file (etcd/ca.key) and perform the proper validation on certificates signed by the etcd CA. Additionally, make sure that the CA for all entries in the output table is included - for both certificates on disk and in kubeconfig files.", + "markdown": "Kubeadm: during execution of the `certs check-expiration` command, treat the etcd CA as external if there is a missing etcd CA key file (etcd/ca.key) and perform the proper validation on certificates signed by the etcd CA. Additionally, make sure that the CA for all entries in the output table is included - for both certificates on disk and in kubeconfig files. ([#106891](https://github.com/kubernetes/kubernetes/pull/106891), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106891", + "pr_number": 106891, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "106901": { + "commit": "747f3c8fd9993302d000165eff1b4fba8a20b343", + "text": "Reverted graceful node shutdown to match 1.21 behavior of setting pods that have not yet successfully completed to \"Failed\" phase if the GracefulNodeShutdown feature is enabled in kubelet. The GracefulNodeShutdown feature is beta and must be explicitly configured via kubelet config to be enabled in 1.21+. This changes 1.22 and 1.23 behavior on node shutdown to match 1.21. If you do not want pods to be marked terminated on node shutdown in 1.22 and 1.23, disable the GracefulNodeShutdown feature.", + "markdown": "Reverted graceful node shutdown to match 1.21 behavior of setting pods that have not yet successfully completed to \"Failed\" phase if the GracefulNodeShutdown feature is enabled in kubelet. The GracefulNodeShutdown feature is beta and must be explicitly configured via kubelet config to be enabled in 1.21+. This changes 1.22 and 1.23 behavior on node shutdown to match 1.21. If you do not want pods to be marked terminated on node shutdown in 1.22 and 1.23, disable the GracefulNodeShutdown feature. ([#106901](https://github.com/kubernetes/kubernetes/pull/106901), [@bobbypage](https://github.com/bobbypage))", + "author": "bobbypage", + "author_url": "https://github.com/bobbypage", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106901", + "pr_number": 106901, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "106907": { + "commit": "feb758027ca8a270e3b18c32b40e7c4dbea043da", + "text": "kubelet: the following dockershim related flags are also removed along with dockershim `--experimental-dockershim-root-directory`, `--docker-endpoint`, `--image-pull-progress-deadline`, `--network-plugin`, `--cni-conf-dir`, `--cni-bin-dir`, `--cni-cache-dir`, `--network-plugin-mtu`.", + "markdown": "Kubelet: the following dockershim related flags are also removed along with dockershim `--experimental-dockershim-root-directory`, `--docker-endpoint`, `--image-pull-progress-deadline`, `--network-plugin`, `--cni-conf-dir`, `--cni-bin-dir`, `--cni-cache-dir`, `--network-plugin-mtu`. ([#106907](https://github.com/kubernetes/kubernetes/pull/106907), [@cyclinder](https://github.com/cyclinder))", + "author": "cyclinder", + "author_url": "https://github.com/cyclinder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106907", + "pr_number": 106907, + "areas": [ + "test", + "kubelet", + "provider/gcp" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "node", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "106911": { + "commit": "25ccc48c606f99d4d142093a84764fda9588ce1e", + "text": "client-go metrics: change bucket distribution for `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` from [0.001, 0.002, 0.004, 0.008, 0.016, 0.032, 0.064, 0.128, 0.256, 0.512] to [0.005, 0.025, 0.1, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 15.0, 30.0, 60.0}]", + "markdown": "Client-go metrics: change bucket distribution for `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` from [0.001, 0.002, 0.004, 0.008, 0.016, 0.032, 0.064, 0.128, 0.256, 0.512] to [0.005, 0.025, 0.1, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 15.0, 30.0, 60.0}] ([#106911](https://github.com/kubernetes/kubernetes/pull/106911), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106911", + "pr_number": 106911, + "areas": [ + "dependency" + ], + "kinds": [ + "bug", + "cleanup", + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "architecture" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "106912": { + "commit": "8b458055230032042da6e0d3c045f2e94ed580a8", + "text": "Fix libct/cg/fs2: fixed GetStats for unsupported hugetlb error on Raspbian Bullseye", + "markdown": "Fix libct/cg/fs2: fixed GetStats for unsupported hugetlb error on Raspbian Bullseye ([#106912](https://github.com/kubernetes/kubernetes/pull/106912), [@Letme](https://github.com/Letme))", + "author": "Letme", + "author_url": "https://github.com/Letme", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106912", + "pr_number": 106912, + "areas": [ + "dependency" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "106932": { + "commit": "38e9a29620d667069f3b6fa157e29c2a3b758e37", + "text": "The feature `DynamicKubeletConfig` has been removed from the kubelet.", + "markdown": "The feature `DynamicKubeletConfig` has been removed from the kubelet. ([#106932](https://github.com/kubernetes/kubernetes/pull/106932), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106932", + "pr_number": 106932, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "node", + "auth", + "apps", + "instrumentation", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "106949": { + "commit": "b0eb3e1ec2d4268604d9a2c3403f0580a3bda2ec", + "text": "Updated golang.org/x/net to v0.0.0-20211209124913-491a49abca63.", + "markdown": "Updated golang.org/x/net to v0.0.0-20211209124913-491a49abca63. ([#106949](https://github.com/kubernetes/kubernetes/pull/106949), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106949", + "pr_number": 106949, + "areas": [ + "security", + "apiserver", + "kubectl", + "cloudprovider", + "release-eng", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "106954": { + "commit": "f5f34166b7657f310bb4b7962465c6294b9ef4ef", + "text": "Marked kubelet `--container-runtime-endpoint` and `--image-service-endpoint` CLI flags as stable.", + "markdown": "Marked kubelet `--container-runtime-endpoint` and `--image-service-endpoint` CLI flags as stable. ([#106954](https://github.com/kubernetes/kubernetes/pull/106954), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106954", + "pr_number": 106954, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "106956": { + "commit": "4ea2448be2cf287057faa2646b34955f6012d467", + "text": "Kubernetes is now built with Golang 1.17.5.", + "markdown": "Kubernetes is now built with Golang 1.17.5. ([#106956](https://github.com/kubernetes/kubernetes/pull/106956), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106956", + "pr_number": 106956, + "areas": [ + "test", + "security", + "provider/gcp", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing", + "release", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "106973": { + "commit": "77243f3274fd76d47f1ab3e134b4e5909c3e7001", + "text": "kubeadm: handled the removal of dockershim related flags for new kubeadm clusters. If kubelet \u003c1.24 is on the host, kubeadm \u003e=1.24 can continue using the built-in dockershim in the kubelet if the user passes the `{Init|Join}Configuration.nodeRegistration.criSocket` value in the kubeadm configuration to be equal to `unix:///var/run/dockershim.sock` on Unix or `npipe:////./pipe/dockershim` on Windows. If kubelet version \u003e=1.24 is on the host, kubeadm \u003e=1.24 will treat all container runtimes as \"remote\" using the kubelet flags `--container-runtime=remote --container-runtime-endpoint=scheme://some/path`. The special management for kubelet \u003c1.24 will be removed in kubeadm 1.25.", + "markdown": "Kubeadm: handled the removal of dockershim related flags for new kubeadm clusters. If kubelet \u003c1.24 is on the host, kubeadm \u003e=1.24 can continue using the built-in dockershim in the kubelet if the user passes the `{Init|Join}Configuration.nodeRegistration.criSocket` value in the kubeadm configuration to be equal to `unix:///var/run/dockershim.sock` on Unix or `npipe:////./pipe/dockershim` on Windows. If kubelet version \u003e=1.24 is on the host, kubeadm \u003e=1.24 will treat all container runtimes as \"remote\" using the kubelet flags `--container-runtime=remote --container-runtime-endpoint=scheme://some/path`. The special management for kubelet \u003c1.24 will be removed in kubeadm 1.25. ([#106973](https://github.com/kubernetes/kubernetes/pull/106973), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106973", + "pr_number": 106973, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "106978": { + "commit": "46c072d9d9d8bd42aa56aceb8159b108fb1e7c67", + "text": "Modified log messages that were logged with `\"v\":0` in JSON output although they were debug messages with a higher verbosity.", + "markdown": "Modified log messages that were logged with `\"v\":0` in JSON output although they were debug messages with a higher verbosity. ([#106978](https://github.com/kubernetes/kubernetes/pull/106978), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106978", + "pr_number": 106978, + "areas": [ + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "apps", + "cli", + "instrumentation", + "cloud-provider" + ], + "duplicate": true + }, + "107003": { + "commit": "c83a94da72416219cf9f022dc44b0e6db158f092", + "text": "kubectl: restored `--dry-run`, `--dry-run=true`, and `--dry-run=false` for compatibility with pre-1.23 invocations.", + "markdown": "Kubectl: restored `--dry-run`, `--dry-run=true`, and `--dry-run=false` for compatibility with pre-1.23 invocations. ([#107003](https://github.com/kubernetes/kubernetes/pull/107003), [@julianvmodesto](https://github.com/julianvmodesto))", + "author": "julianvmodesto", + "author_url": "https://github.com/julianvmodesto", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107003", + "pr_number": 107003, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "107006": { + "commit": "d1a5513cb044ad805007cbea6327bdfb1cc73aab", + "text": "Added a metric for measuring end-to-end volume mount timing.", + "markdown": "Added a metric for measuring end-to-end volume mount timing. ([#107006](https://github.com/kubernetes/kubernetes/pull/107006), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107006", + "pr_number": 107006, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node" + ], + "feature": true, + "duplicate": true + }, + "107009": { + "commit": "39136784a4330061e369279ad1b119b151b7dbd4", + "text": "The calculations for Pod topology spread skew now exclude nodes that\ndon't match the node affinity/selector. This may lead to unschedulable pods if you previously had pods\nmatching the spreading selector on those excluded nodes (not matching the node affinity/selector),\nespecially when the `topologyKey` is not node-level. Revisit the node affinity and/or pod selector in the\ntopology spread constraints to avoid this scenario.", + "markdown": "The calculations for Pod topology spread skew now exclude nodes that\n don't match the node affinity/selector. This may lead to unschedulable pods if you previously had pods\n matching the spreading selector on those excluded nodes (not matching the node affinity/selector),\n especially when the `topologyKey` is not node-level. Revisit the node affinity and/or pod selector in the\n topology spread constraints to avoid this scenario. ([#107009](https://github.com/kubernetes/kubernetes/pull/107009), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107009", + "pr_number": 107009, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "action_required": true + }, + "107013": { + "commit": "be5b9b4f8d8876090697e777e63d6a4c25738e71", + "text": "`kubeadm.k8s.io/v1beta2` has been deprecated and will be removed in a future release, possibly in 3 releases (one year). You should start using `kubeadm.k8s.io/v1beta3` for new clusters. To migrate your old configuration files on disk you can use the `kubeadm config migrate` command.", + "markdown": "`kubeadm.k8s.io/v1beta2` has been deprecated and will be removed in a future release, possibly in 3 releases (one year). You should start using `kubeadm.k8s.io/v1beta3` for new clusters. To migrate your old configuration files on disk you can use the `kubeadm config migrate` command. ([#107013](https://github.com/kubernetes/kubernetes/pull/107013), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107013", + "pr_number": 107013, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true, + "action_required": true + }, + "107025": { + "commit": "489fb9bee3f626b3eeb120a5af89ad8c2b2f1c20", + "text": "Fixed detaching CSI volumes from nodes when a CSI driver name has prefix \"csi-\".", + "markdown": "Fixed detaching CSI volumes from nodes when a CSI driver name has prefix \"csi-\". ([#107025](https://github.com/kubernetes/kubernetes/pull/107025), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107025", + "pr_number": 107025, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "107027": { + "commit": "a1e8a5bf39d48719dfbcf49ea09223ee04840502", + "text": "The `ServiceLBNodePortControl` feature has graduated to GA. The feature gate will be removed in 1.26.", + "markdown": "The `ServiceLBNodePortControl` feature has graduated to GA. The feature gate will be removed in 1.26. ([#107027](https://github.com/kubernetes/kubernetes/pull/107027), [@uablrek](https://github.com/uablrek))", + "author": "uablrek", + "author_url": "https://github.com/uablrek", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107027", + "pr_number": 107027, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "107034": { + "commit": "5436a8ea2eea4b09f37b465d49a4253c1935f485", + "text": "Fixed a bug that could cause panic when a `/healthz` request times out.", + "markdown": "Fixed a bug that could cause panic when a `/healthz` request times out. ([#107034](https://github.com/kubernetes/kubernetes/pull/107034), [@benluddy](https://github.com/benluddy))", + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107034", + "pr_number": 107034, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "107035": { + "commit": "8323ef7ff0cd8e0bb0d4c36c2a6693d45ebaf374", + "text": "Fixed performance regression in JSON logging caused by syncing stdout every time error was logged.", + "markdown": "Fixed performance regression in JSON logging caused by syncing stdout every time error was logged. ([#107035](https://github.com/kubernetes/kubernetes/pull/107035), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107035", + "pr_number": 107035, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scalability", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true + }, + "107044": { + "commit": "8f453c9d79a763c0ee0252b4424a7e8a4daf6583", + "text": "Modified command line errors (for example, `kubectl list` -\u003e `unknown command`) that were printed as log message with escaped line breaks instead of a multi-line plain text, making the error hard to read.", + "markdown": "Modified command line errors (for example, `kubectl list` -\u003e `unknown command`) that were printed as log message with escaped line breaks instead of a multi-line plain text, making the error hard to read. ([#107044](https://github.com/kubernetes/kubernetes/pull/107044), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107044", + "pr_number": 107044, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "107056": { + "commit": "b2c5bd2a278288b5ef19e25bf7413ecb872577a4", + "text": "Windows Pause no longer has support for SAC releases 1903, 1909, 2004. Windows image support is now Ltcs 2019 (1809), 20H2, LTSC 2022", + "markdown": "Windows Pause no longer has support for SAC releases 1903, 1909, 2004. Windows image support is now Ltcs 2019 (1809), 20H2, LTSC 2022 ([#107056](https://github.com/kubernetes/kubernetes/pull/107056), [@jsturtevant](https://github.com/jsturtevant))", + "author": "jsturtevant", + "author_url": "https://github.com/jsturtevant", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107056", + "pr_number": 107056, + "kinds": [ + "cleanup" + ], + "sigs": [ + "windows" + ] + }, + "107065": { + "commit": "c175418281a6073b270ab901e7df46a95d50374a", + "text": "Changed node staging path for CSI driver to use a PV agnostic path. Nodes must be drained before updating the kubelet with this change.", + "markdown": "Changed node staging path for CSI driver to use a PV agnostic path. Nodes must be drained before updating the kubelet with this change. ([#107065](https://github.com/kubernetes/kubernetes/pull/107065), [@saikat-royc](https://github.com/saikat-royc))", + "author": "saikat-royc", + "author_url": "https://github.com/saikat-royc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107065", + "pr_number": 107065, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true + }, + "107088": { + "commit": "321b4117846a6692e1fe6d660a4d7a23bc47bc48", + "text": "Fixed a bug where unwanted fields were being returned from a `create --dry-run`: uid and, if generateName was used, name.", + "markdown": "Fixed a bug where unwanted fields were being returned from a `create --dry-run`: uid and, if generateName was used, name. ([#107088](https://github.com/kubernetes/kubernetes/pull/107088), [@joejulian](https://github.com/joejulian))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/576-dry-run/README.md#generated-values", + "type": "KEP" + } + ], + "author": "joejulian", + "author_url": "https://github.com/joejulian", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107088", + "pr_number": 107088, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "107090": { + "commit": "28755c32b51dd4052cc79be8a2df4b2eef5e73f6", + "text": "CEL validation failure returns object type instead of object.", + "markdown": "CEL validation failure returns object type instead of object. ([#107090](https://github.com/kubernetes/kubernetes/pull/107090), [@cici37](https://github.com/cici37))", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107090", + "pr_number": 107090, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "107091": { + "commit": "13e97453f9024f347a40940f27630e62c4540fa5", + "text": "An inefficient lock in EndpointSlice controller metrics cache has been reworked. Network programming latency may be significantly reduced in certain scenarios, especially in clusters with a large number of Services.", + "markdown": "An inefficient lock in EndpointSlice controller metrics cache has been reworked. Network programming latency may be significantly reduced in certain scenarios, especially in clusters with a large number of Services. ([#107091](https://github.com/kubernetes/kubernetes/pull/107091), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107091", + "pr_number": 107091, + "kinds": [ + "bug", + "cleanup", + "regression" + ], + "sigs": [ + "network", + "scalability", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "107094": { + "commit": "19069665f90226142674a2090fe39ba367f2bd06", + "text": "The `--container-runtime` kubelet flag is deprecated and will be removed in future releases.", + "markdown": "The `--container-runtime` kubelet flag is deprecated and will be removed in future releases. ([#107094](https://github.com/kubernetes/kubernetes/pull/107094), [@adisky](https://github.com/adisky))", + "author": "adisky", + "author_url": "https://github.com/adisky", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107094", + "pr_number": 107094, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "107096": { + "commit": "8d01b02c60a93dddac5b7a4d84782bbd61649467", + "text": "Removed kubelet `--non-masquerade-cidr` deprecated CLI flag", + "markdown": "Removed kubelet `--non-masquerade-cidr` deprecated CLI flag ([#107096](https://github.com/kubernetes/kubernetes/pull/107096), [@hakman](https://github.com/hakman))", + "author": "hakman", + "author_url": "https://github.com/hakman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107096", + "pr_number": 107096, + "areas": [ + "kubelet", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "cloud-provider" + ], + "duplicate": true + }, + "107103": { + "commit": "38ec822b46853acfb3c3dc7e386a8d4636c67e03", + "text": "In text format, log messages that previously used quoting to prevent multi-line output (for example, text=\"some \\\"quotation\\\", a\\nline break\") will now be printed with more readable multi-line output without the escape sequences.", + "markdown": "In text format, log messages that previously used quoting to prevent multi-line output (for example, text=\"some \\\"quotation\\\", a\\nline break\") will now be printed with more readable multi-line output without the escape sequences. ([#107103](https://github.com/kubernetes/kubernetes/pull/107103), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107103", + "pr_number": 107103, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "107105": { + "commit": "bda996e6a7cd115d76ebf1e0c127bee68e06269a", + "text": "Kubernetes in now built with go1.18rc1", + "markdown": "Kubernetes in now built with go1.18rc1 ([#107105](https://github.com/kubernetes/kubernetes/pull/107105), [@justaugustus](https://github.com/justaugustus))", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107105", + "pr_number": 107105, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "107116": { + "commit": "0b9ad84973888ef6b838435264e60878a27cfb66", + "text": "Added more message for no PodSandbox container.", + "markdown": "Added more message for no PodSandbox container. ([#107116](https://github.com/kubernetes/kubernetes/pull/107116), [@yxxhero](https://github.com/yxxhero))", + "author": "yxxhero", + "author_url": "https://github.com/yxxhero", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107116", + "pr_number": 107116, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "107131": { + "commit": "9386aa0d60e16a2a87642a9ac575a543a7429ea9", + "text": "Fixed default config flags for `NewDefaultKubectlCommand`.", + "markdown": "Fixed default config flags for `NewDefaultKubectlCommand`. ([#107131](https://github.com/kubernetes/kubernetes/pull/107131), [@jonnylangefeld](https://github.com/jonnylangefeld))", + "author": "jonnylangefeld", + "author_url": "https://github.com/jonnylangefeld", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107131", + "pr_number": 107131, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "107141": { + "commit": "04c8807f1f984bcbbfa0430f7f09466b38ad65ef", + "text": "Increase default value of discovery cache TTL for kubectl to 6 hours.", + "markdown": "Increase default value of discovery cache TTL for kubectl to 6 hours. ([#107141](https://github.com/kubernetes/kubernetes/pull/107141), [@mk46](https://github.com/mk46))", + "author": "mk46", + "author_url": "https://github.com/mk46", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107141", + "pr_number": 107141, + "areas": [ + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "107142": { + "commit": "31dba0a435ecb98722fc71dab6f8180ffc0e0935", + "text": "`kubectl config delete-user` now supports completion", + "markdown": "`kubectl config delete-user` now supports completion ([#107142](https://github.com/kubernetes/kubernetes/pull/107142), [@dimbleby](https://github.com/dimbleby))", + "author": "dimbleby", + "author_url": "https://github.com/dimbleby", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107142", + "pr_number": 107142, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "107152": { + "commit": "aa1be30828dd342111a0bc2b6d828b130f5a69f2", + "text": "Removed the `ImmutableEphemeralVolumes` feature gate.", + "markdown": "Removed the `ImmutableEphemeralVolumes` feature gate. ([#107152](https://github.com/kubernetes/kubernetes/pull/107152), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107152", + "pr_number": 107152, + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node" + ], + "feature": true, + "duplicate": true + }, + "107171": { + "commit": "9d0d2e8ece9bdd0cd8c23be2f36eee5473afc648", + "text": "Added a new metric `webhook_fail_open_count` to monitor webhooks that fail to open.", + "markdown": "Added a new metric `webhook_fail_open_count` to monitor webhooks that fail to open. ([#107171](https://github.com/kubernetes/kubernetes/pull/107171), [@ltagliamonte-dd](https://github.com/ltagliamonte-dd))", + "author": "ltagliamonte-dd", + "author_url": "https://github.com/ltagliamonte-dd", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107171", + "pr_number": 107171, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "107178": { + "commit": "14cc997d034601af6948aa541d119cccecf19eaa", + "text": "The deprecated kube-controller-manager flag '--deployment-controller-sync-period' has been removed, it is not used by the deployment controller.", + "markdown": "The deprecated kube-controller-manager flag '--deployment-controller-sync-period' has been removed, it is not used by the deployment controller. ([#107178](https://github.com/kubernetes/kubernetes/pull/107178), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107178", + "pr_number": 107178, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "107180": { + "commit": "0b79a791eda116199c40b13b21121274c56df374", + "text": "ServerResources was deprecated in February 2019 (https://github.com/kubernetes/kubernetes/commit/618050e) and now it's being removed and ServerGroupsAndResources is suggested to be used instead", + "markdown": "ServerResources was deprecated in February 2019 (https://github.com/kubernetes/kubernetes/commit/618050e) and now it's being removed and ServerGroupsAndResources is suggested to be used instead ([#107180](https://github.com/kubernetes/kubernetes/pull/107180), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107180", + "pr_number": 107180, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "cli" + ], + "duplicate": true + }, + "107201": { + "commit": "e9ba9dc4e4aba4a2fcfea6605b33e74de1074eaf", + "text": "kubelet: add `kubelet_volume_metric_collection_duration_seconds` metrics for volume disk usage calculation duration", + "markdown": "Kubelet: add `kubelet_volume_metric_collection_duration_seconds` metrics for volume disk usage calculation duration ([#107201](https://github.com/kubernetes/kubernetes/pull/107201), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107201", + "pr_number": 107201, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "107207": { + "commit": "22a03f893d40d37009908f5b3577372ee18271be", + "text": "The experimental dynamic log sanitization feature has been deprecated and removed in the 1.24 release. The feature is no longer available for use.", + "markdown": "The experimental dynamic log sanitization feature has been deprecated and removed in the 1.24 release. The feature is no longer available for use. ([#107207](https://github.com/kubernetes/kubernetes/pull/107207), [@ehashman](https://github.com/ehashman))", + "documentation": [ + { + "description": "[KEP]", + "url": "http://kep.k8s.io/1753", + "type": "external" + } + ], + "author": "ehashman", + "author_url": "https://github.com/ehashman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107207", + "pr_number": 107207, + "kinds": [ + "api-change", + "deprecation" + ], + "sigs": [ + "scheduling", + "instrumentation", + "security" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "107221": { + "commit": "e9fc23e31e78142e4ebac83bde7241d872e5f48b", + "text": "Fixed a panic when using invalid output format in `kubectl create secret` command.", + "markdown": "Fixed a panic when using invalid output format in `kubectl create secret` command. ([#107221](https://github.com/kubernetes/kubernetes/pull/107221), [@rikatz](https://github.com/rikatz))", + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107221", + "pr_number": 107221, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "107235": { + "commit": "42c391da29319638c3cc357cf0d0f0cc70842504", + "text": "Deprecated `Service.Spec.LoadBalancerIP`. This field was under-specified and its meaning varies across implementations. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version.", + "markdown": "Deprecated `Service.Spec.LoadBalancerIP`. This field was under-specified and its meaning varies across implementations. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version. ([#107235](https://github.com/kubernetes/kubernetes/pull/107235), [@uablrek](https://github.com/uablrek))", + "author": "uablrek", + "author_url": "https://github.com/uablrek", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107235", + "pr_number": 107235, + "kinds": [ + "documentation", + "api-change", + "deprecation" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "107295": { + "commit": "c7d57a01b7291c19d3fdd51fd1cccff5dd4787f9", + "text": "kubeadm: make sure that `kubeadm init/join` always use a URL scheme (unix:// on Linux and npipe:// on Windows) when passing a value to the `--container-runtime-endpoint` kubelet flag. This flag's value is taken from the kubeadm configuration `criSocket` field or the `--cri-socket` CLI flag. Automatically add a missing URL scheme to the user configuration in memory, but warn them that they should also update their configuration on disk manually. During `kubeadm upgrade apply/node` mutate the `/var/lib/kubelet/kubeadm-flags.env` file on disk and the `kubeadm.alpha.kubernetes.io/cri-socket` annotation Node object if needed. These automatic actions are temporary and will be removed in a future release. In the future the kubelet may not support CRI endpoints without an URL scheme.", + "markdown": "Kubeadm: make sure that `kubeadm init/join` always use a URL scheme (unix:// on Linux and npipe:// on Windows) when passing a value to the `--container-runtime-endpoint` kubelet flag. This flag's value is taken from the kubeadm configuration `criSocket` field or the `--cri-socket` CLI flag. Automatically add a missing URL scheme to the user configuration in memory, but warn them that they should also update their configuration on disk manually. During `kubeadm upgrade apply/node` mutate the `/var/lib/kubelet/kubeadm-flags.env` file on disk and the `kubeadm.alpha.kubernetes.io/cri-socket` annotation Node object if needed. These automatic actions are temporary and will be removed in a future release. In the future the kubelet may not support CRI endpoints without an URL scheme. ([#107295](https://github.com/kubernetes/kubernetes/pull/107295), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107295", + "pr_number": 107295, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "107311": { + "commit": "b0f0aad2cedc1168bc44387e5a3d6d7745ae580b", + "text": "client-go: fixed the paged list calls with `ResourceVersionMatch` set would fail once paging is kicked in.", + "markdown": "Client-go: fixed the paged list calls with `ResourceVersionMatch` set would fail once paging is kicked in. ([#107311](https://github.com/kubernetes/kubernetes/pull/107311), [@fasaxc](https://github.com/fasaxc))", + "author": "fasaxc", + "author_url": "https://github.com/fasaxc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107311", + "pr_number": 107311, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "107317": { + "commit": "8a259641532d12f730d0fc6b237d36206d405e52", + "text": "kubeadm: default the kubeadm configuration to the containerd socket (Unix: `unix:///var/run/containerd/containerd.sock`, Windows: `npipe:////./pipe/containerd-containerd`) instead of the one for Docker. If the `Init|JoinConfiguration.nodeRegistration.criSocket` field is empty during cluster creation and multiple sockets are found on the host always throw an error and ask the user to specify which one to use by setting the value in the field. Make sure you update any kubeadm configuration files on disk, to not include the dockershim socket unless you are still using kubelet version \u003c 1.24 with kubeadm \u003e= 1.24.\n\nRemove the DockerValidor and ServiceCheck for the `docker` service from kubeadm preflight. Docker is no longer special cased during host validation and ideally this task should be done in the now external cri-dockerd project where the importance of the compatibility matters.\n\nUse `crictl` for all communication with CRI sockets for actions like pulling images and obtaining a list of running containers instead of using the docker CLI in the case of Docker.", + "markdown": "Kubeadm: default the kubeadm configuration to the containerd socket (Unix: `unix:///var/run/containerd/containerd.sock`, Windows: `npipe:////./pipe/containerd-containerd`) instead of the one for Docker. If the `Init|JoinConfiguration.nodeRegistration.criSocket` field is empty during cluster creation and multiple sockets are found on the host always throw an error and ask the user to specify which one to use by setting the value in the field. Make sure you update any kubeadm configuration files on disk, to not include the dockershim socket unless you are still using kubelet version \u003c 1.24 with kubeadm \u003e= 1.24.\n \n Remove the DockerValidor and ServiceCheck for the `docker` service from kubeadm preflight. Docker is no longer special cased during host validation and ideally this task should be done in the now external cri-dockerd project where the importance of the compatibility matters.\n \n Use `crictl` for all communication with CRI sockets for actions like pulling images and obtaining a list of running containers instead of using the docker CLI in the case of Docker. ([#107317](https://github.com/kubernetes/kubernetes/pull/107317), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107317", + "pr_number": 107317, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true, + "action_required": true + }, + "107327": { + "commit": "c15e24b128c71d1b3b33e3b8bd03a06c92c58372", + "text": "kubeadm: removed the restriction that the `ca.crt` can only contain one certificate. If there is more than one certificate in the `ca.crt` file, kubeadm will pick the first one by default.", + "markdown": "Kubeadm: removed the restriction that the `ca.crt` can only contain one certificate. If there is more than one certificate in the `ca.crt` file, kubeadm will pick the first one by default. ([#107327](https://github.com/kubernetes/kubernetes/pull/107327), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107327", + "pr_number": 107327, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "107337": { + "commit": "e045e5c875b2f51c4c4b1bc14d4e717123649b17", + "text": "Fixed a bug where vSphere client connections where not being closed during testing. Leaked vSphere client sessions were causing resource exhaustion during automated testing.", + "markdown": "Fixed a bug where vSphere client connections where not being closed during testing. Leaked vSphere client sessions were causing resource exhaustion during automated testing. ([#107337](https://github.com/kubernetes/kubernetes/pull/107337), [@derek-pryor](https://github.com/derek-pryor))", + "author": "derek-pryor", + "author_url": "https://github.com/derek-pryor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107337", + "pr_number": 107337, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true + }, + "107363": { + "commit": "306d7724dd23188d4cea53b6f12a597034181718", + "text": "Improve error message when applying CRDs before the CRD exists in a cluster", + "markdown": "Improve error message when applying CRDs before the CRD exists in a cluster ([#107363](https://github.com/kubernetes/kubernetes/pull/107363), [@eddiezane](https://github.com/eddiezane))", + "author": "eddiezane", + "author_url": "https://github.com/eddiezane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107363", + "pr_number": 107363, + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "107384": { + "commit": "eb64a3e13ac90357dad1f53d9e3aadd9401c2323", + "text": "Improved the rounding of `PodTopologySpread` scores to offer better scoring when spreading a low number of pods.", + "markdown": "Improved the rounding of `PodTopologySpread` scores to offer better scoring when spreading a low number of pods. ([#107384](https://github.com/kubernetes/kubernetes/pull/107384), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107384", + "pr_number": 107384, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "107395": { + "commit": "f97825e1cea6d06813c53319c70e2568778067f0", + "text": "Indexed Jobs graduated to stable.", + "markdown": "Indexed Jobs graduated to stable. ([#107395](https://github.com/kubernetes/kubernetes/pull/107395), [@alculquicondor](https://github.com/alculquicondor))", + "documentation": [ + { + "description": "[KEP]", + "url": "http://git.k8s.io/enhancements/keps/sig-apps/2214-indexed-job", + "type": "external" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/tasks/job/indexed-parallel-processing-static/", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107395", + "pr_number": 107395, + "areas": [ + "test", + "conformance", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "testing", + "architecture" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "107402": { + "commit": "10ded7501a7fc2ad1ae28826f88c41830f538814", + "text": "apiserver will now reject connection attempts to `0.0.0.0/::` when handling a proxy subresource request.", + "markdown": "Apiserver will now reject connection attempts to `0.0.0.0/::` when handling a proxy subresource request. ([#107402](https://github.com/kubernetes/kubernetes/pull/107402), [@anguslees](https://github.com/anguslees))", + "author": "anguslees", + "author_url": "https://github.com/anguslees", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107402", + "pr_number": 107402, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "107406": { + "commit": "7bde4baac48d702aabb03123a342d3c11323c4ef", + "text": "Fixed: deleted a non-existent Azure disk issue.", + "markdown": "Fixed: deleted a non-existent Azure disk issue. ([#107406](https://github.com/kubernetes/kubernetes/pull/107406), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107406", + "pr_number": 107406, + "areas": [ + "cloudprovider", + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "107410": { + "commit": "19935de5a9a4196f23f9a90cd9b7acb79091e3c2", + "text": "Fixed a bug that caused credentials in an exec plugin to override the static certificates set in a kubeconfig.", + "markdown": "Fixed a bug that caused credentials in an exec plugin to override the static certificates set in a kubeconfig. ([#107410](https://github.com/kubernetes/kubernetes/pull/107410), [@margocrawf](https://github.com/margocrawf))", + "author": "margocrawf", + "author_url": "https://github.com/margocrawf", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107410", + "pr_number": 107410, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true + }, + "107413": { + "commit": "de83db2a08f726d6db8cae4d9af315b81830a44f", + "text": "Fixed duplicate port opening in kube-proxy when `--nodeport-addresses` is empty.", + "markdown": "Fixed duplicate port opening in kube-proxy when `--nodeport-addresses` is empty. ([#107413](https://github.com/kubernetes/kubernetes/pull/107413), [@tnqn](https://github.com/tnqn))", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107413", + "pr_number": 107413, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "107429": { + "commit": "2f64227aeab46ab77de4b996a4ce63209295de60", + "text": "Fixed `azureDisk` parameter lowercase translation issue.", + "markdown": "Fixed `azureDisk` parameter lowercase translation issue. ([#107429](https://github.com/kubernetes/kubernetes/pull/107429), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107429", + "pr_number": 107429, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "cloud-provider" + ], + "duplicate": true + }, + "107432": { + "commit": "24e5d1fdb7d55b86f5be5c8c9b9c06a712005971", + "text": "Feature of `NonPreemptingPriority` is graduated to GA", + "markdown": "Feature of `NonPreemptingPriority` is graduated to GA ([#107432](https://github.com/kubernetes/kubernetes/pull/107432), [@denkensk](https://github.com/denkensk))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/902-non-preempting-priorityclass", + "type": "KEP" + } + ], + "author": "denkensk", + "author_url": "https://github.com/denkensk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107432", + "pr_number": 107432, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "107439": { + "commit": "ab4801c4f35a7bf461ad13779b907b997d475639", + "text": "Fixed kubectl bug where bash completions don't work if `--context` flag is specified with a value that contains a colon.", + "markdown": "Fixed kubectl bug where bash completions don't work if `--context` flag is specified with a value that contains a colon. ([#107439](https://github.com/kubernetes/kubernetes/pull/107439), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107439", + "pr_number": 107439, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "107452": { + "commit": "3cec1d1a13a7414ed5413d75898a167220c3892c", + "text": "Fixed a rare race condition handling requests that timeout.", + "markdown": "Fixed a rare race condition handling requests that timeout. ([#107452](https://github.com/kubernetes/kubernetes/pull/107452), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107452", + "pr_number": 107452, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "107455": { + "commit": "e9e9bd0bf0d644032c2eb83a04f295fb750ad072", + "text": "kubernetes e2e framework will use the url `invalid.registry.k8s.io/invalid` instead `invalid.com/invalid` for test that use an invalid registry.", + "markdown": "Kubernetes e2e framework will use the url `invalid.registry.k8s.io/invalid` instead `invalid.com/invalid` for test that use an invalid registry. ([#107455](https://github.com/kubernetes/kubernetes/pull/107455), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107455", + "pr_number": 107455, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ] + }, + "107462": { + "commit": "42436c877e1f1e352b1a8edfb2c9c7f2bcd443cb", + "text": "OpenStack Cinder CSI migration is now GA and switched on by default, Cinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work (has been since v1.21).", + "markdown": "OpenStack Cinder CSI migration is now GA and switched on by default, Cinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work (has been since v1.21). ([#107462](https://github.com/kubernetes/kubernetes/pull/107462), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107462", + "pr_number": 107462, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true + }, + "107467": { + "commit": "9c468ecf30773537fc0a101e17f71b2d7b8b039a", + "text": "kubeadm: all warning messages are printed to stderr instead of stdout.", + "markdown": "Kubeadm: all warning messages are printed to stderr instead of stdout. ([#107467](https://github.com/kubernetes/kubernetes/pull/107467), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107467", + "pr_number": 107467, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "107468": { + "commit": "f86ee5649b2e127a6471bbc896614ecd32ff57c7", + "text": "kubeadm: removed the deprecated `output/v1alpha1` API used for machine readable output by some kubeadm commands. In 1.23 kubeadm started using the newer version `output/v1alpha2` for the same purpose.", + "markdown": "Kubeadm: removed the deprecated `output/v1alpha1` API used for machine readable output by some kubeadm commands. In 1.23 kubeadm started using the newer version `output/v1alpha2` for the same purpose. ([#107468](https://github.com/kubernetes/kubernetes/pull/107468), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107468", + "pr_number": 107468, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "107476": { + "commit": "dd1e43332a478f64a861a576975a679697cd52a5", + "text": "JobReadyPods graduates to Beta and it's enabled by default.", + "markdown": "JobReadyPods graduates to Beta and it's enabled by default. ([#107476](https://github.com/kubernetes/kubernetes/pull/107476), [@alculquicondor](https://github.com/alculquicondor))", + "documentation": [ + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/job-v1/#JobStatus", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107476", + "pr_number": 107476, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "107481": { + "commit": "a3207872a3bf0d1dd097699a74bbc64ac8a87f8b", + "text": "The cluster addon for dashboard was removed. To install dashboard, see [here](https://github.com/kubernetes/dashboard/blob/master/docs/user/README.md).", + "markdown": "The cluster addon for dashboard was removed. To install dashboard, see [here](https://github.com/kubernetes/dashboard/blob/master/docs/user/README.md). ([#107481](https://github.com/kubernetes/kubernetes/pull/107481), [@shu-mutou](https://github.com/shu-mutou))", + "author": "shu-mutou", + "author_url": "https://github.com/shu-mutou", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107481", + "pr_number": 107481, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "documentation", + "deprecation" + ], + "sigs": [ + "testing", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "107507": { + "commit": "f4046f9e6d0bb2fc4fa2d84af64cc9c6db44270a", + "text": "Added `SetTransform` to `SharedInformer` to allow users to transform objects before they are stored.", + "markdown": "Added `SetTransform` to `SharedInformer` to allow users to transform objects before they are stored. ([#107507](https://github.com/kubernetes/kubernetes/pull/107507), [@alexzielenski](https://github.com/alexzielenski))", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107507", + "pr_number": 107507, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "107512": { + "commit": "19a37027dc389919d33be45d9668104b871c6346", + "text": "kubeadm: added support for dry running `kubeadm reset`. The new flag `kubeadm reset --dry-run` is similar to the existing flag for `kubeadm init/join/upgrade` and allows you to see what changes would be applied.", + "markdown": "Kubeadm: added support for dry running `kubeadm reset`. The new flag `kubeadm reset --dry-run` is similar to the existing flag for `kubeadm init/join/upgrade` and allows you to see what changes would be applied. ([#107512](https://github.com/kubernetes/kubernetes/pull/107512), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107512", + "pr_number": 107512, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "107516": { + "commit": "824145d31ba4dec5d631c998cf5ed43fe564c70f", + "text": "Alowed useful inclusion of `-args $prog_args` in KUBE_TEST_ARGS, when doing `make test-integration`.", + "markdown": "Alowed useful inclusion of `-args $prog_args` in KUBE_TEST_ARGS, when doing `make test-integration`. ([#107516](https://github.com/kubernetes/kubernetes/pull/107516), [@MikeSpreitzer](https://github.com/MikeSpreitzer))", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107516", + "pr_number": 107516, + "kinds": [ + "bug" + ], + "sigs": [ + "testing" + ] + }, + "107527": { + "commit": "e42e2e877f01d28d886ebe5b855ff0f16ffca680", + "text": "kube-apiserver: the `metadata.selfLink` field can no longer be populated by kube-apiserver; it was deprecated in 1.16 and has not been populated by default since 1.20+.", + "markdown": "Kube-apiserver: the `metadata.selfLink` field can no longer be populated by kube-apiserver; it was deprecated in 1.16 and has not been populated by default since 1.20+. ([#107527](https://github.com/kubernetes/kubernetes/pull/107527), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107527", + "pr_number": 107527, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "scheduling", + "storage", + "api-machinery", + "autoscaling", + "auth", + "apps", + "cli", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "107533": { + "commit": "1fa888529e398424ab0823508e01826f0a70dccb", + "text": "kubeadm: apply `second stage` of the plan to migrate kubeadm away from the usage of the word `master` in labels and taints. For new clusters, the label `node-role.kubernetes.io/master` will no longer be added to control plane nodes, only the label `node-role.kubernetes.io/control-plane` will be added. For clusters that are being upgraded to 1.24 with `kubeadm upgrade apply`, the command will remove the label `node-role.kubernetes.io/master` from existing control plane nodes. For new clusters, both the old taint `node-role.kubernetes.io/master:NoSchedule` and new taint `node-role.kubernetes.io/control-plane:NoSchedule` will be added to control plane nodes. In release 1.20 (`first stage`), a release note instructed to preemptively tolerate the new taint. For clusters that are being upgraded to 1.24 with `kubeadm upgrade apply`, the command will add the new taint `node-role.kubernetes.io/control-plane:NoSchedule` to existing control plane nodes. Please adapt your infrastructure to these changes. In 1.25 the old taint `node-role.kubernetes.io/master:NoSchedule` will be removed.", + "markdown": "Kubeadm: apply `second stage` of the plan to migrate kubeadm away from the usage of the word `master` in labels and taints. For new clusters, the label `node-role.kubernetes.io/master` will no longer be added to control plane nodes, only the label `node-role.kubernetes.io/control-plane` will be added. For clusters that are being upgraded to 1.24 with `kubeadm upgrade apply`, the command will remove the label `node-role.kubernetes.io/master` from existing control plane nodes. For new clusters, both the old taint `node-role.kubernetes.io/master:NoSchedule` and new taint `node-role.kubernetes.io/control-plane:NoSchedule` will be added to control plane nodes. In release 1.20 (`first stage`), a release note instructed to preemptively tolerate the new taint. For clusters that are being upgraded to 1.24 with `kubeadm upgrade apply`, the command will add the new taint `node-role.kubernetes.io/control-plane:NoSchedule` to existing control plane nodes. Please adapt your infrastructure to these changes. In 1.25 the old taint `node-role.kubernetes.io/master:NoSchedule` will be removed. ([#107533](https://github.com/kubernetes/kubernetes/pull/107533), [@neolit123](https://github.com/neolit123))", + "documentation": [ + { + "url": "https://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/2067-rename-master-label-taint", + "type": "external" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107533", + "pr_number": 107533, + "areas": [ + "test", + "kubeadm", + "e2e-test-framework" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cluster-lifecycle", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "107552": { + "commit": "2047936f3f8ddd96498dcc812631b5368d14f3be", + "text": "Added an e2e test to verify that the cluster is not vulnerable to CVE-2021-29923 when using Services with IPs with leading zeros, note that this test is a necessary but not sufficient condition, all the components in the clusters that consume IPs addresses from the APIs MUST interpret them as decimal or discard them.", + "markdown": "Added an e2e test to verify that the cluster is not vulnerable to CVE-2021-29923 when using Services with IPs with leading zeros, note that this test is a necessary but not sufficient condition, all the components in the clusters that consume IPs addresses from the APIs MUST interpret them as decimal or discard them. ([#107552](https://github.com/kubernetes/kubernetes/pull/107552), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107552", + "pr_number": 107552, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true + }, + "107553": { + "commit": "87ad2ae8e314ff76a4060e953b6c68a3a864771c", + "text": "The fluentd-elasticsearch addon is no longer included in the cluster directory. It is available from https://github.com/kubernetes-sigs/instrumentation-addons/tree/master/fluentd-elasticsearch.", + "markdown": "The fluentd-elasticsearch addon is no longer included in the cluster directory. It is available from https://github.com/kubernetes-sigs/instrumentation-addons/tree/master/fluentd-elasticsearch. ([#107553](https://github.com/kubernetes/kubernetes/pull/107553), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107553", + "pr_number": 107553, + "areas": [ + "provider/gcp", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "instrumentation", + "cloud-provider" + ], + "duplicate": true + }, + "107554": { + "commit": "6f896dec4f45ffb82491bc9ce2393e7452886562", + "text": "The feature gate was mentioned as `csiMigrationRBD` where it should have been `CSIMigrationRBD` to be in parity with other migration plugins. This release correct the same and keep it as `CSIMigrationRBD`.\nusers who have configured this feature gate as `csiMigrationRBD` has to reconfigure the same to `CSIMigrationRBD` from this release.", + "markdown": "The feature gate was mentioned as `csiMigrationRBD` where it should have been `CSIMigrationRBD` to be in parity with other migration plugins. This release correct the same and keep it as `CSIMigrationRBD`.\n users who have configured this feature gate as `csiMigrationRBD` has to reconfigure the same to `CSIMigrationRBD` from this release. ([#107554](https://github.com/kubernetes/kubernetes/pull/107554), [@humblec](https://github.com/humblec))", + "author": "humblec", + "author_url": "https://github.com/humblec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107554", + "pr_number": 107554, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "storage" + ], + "duplicate_kind": true, + "action_required": true + }, + "107559": { + "commit": "184daed0dbb6b9adac82b7b8b58f5cee0935d152", + "text": "Fixed handling of objects with invalid selectors.", + "markdown": "Fixed handling of objects with invalid selectors. ([#107559](https://github.com/kubernetes/kubernetes/pull/107559), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107559", + "pr_number": 107559, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "storage", + "api-machinery", + "apps" + ], + "duplicate": true + }, + "107565": { + "commit": "cf18d80d035780739575b8cc889e8f26bf36779f", + "text": "kube-apiserver: when merging lists, Server Side Apply now prefers the order of the submitted request instead of the existing persisted object.", + "markdown": "Kube-apiserver: when merging lists, Server Side Apply now prefers the order of the submitted request instead of the existing persisted object. ([#107565](https://github.com/kubernetes/kubernetes/pull/107565), [@jiahuif](https://github.com/jiahuif))", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107565", + "pr_number": 107565, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "107575": { + "commit": "807cee8ad204af0e32d8bc41e6277cc1dd88a222", + "text": "Fixed `azureFile` `volumeID` collision issue in CSI migration.", + "markdown": "Fixed `azureFile` `volumeID` collision issue in CSI migration. ([#107575](https://github.com/kubernetes/kubernetes/pull/107575), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107575", + "pr_number": 107575, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "cloud-provider" + ], + "duplicate": true + }, + "107588": { + "commit": "9c3a0e63a71c0890a5ab1aa0a267e91a81e5c441", + "text": "E0116 13:06:48.614623 66988 controller.go:233] error syncing 'default/example-foo': foos.samplecontroller.k8s.io \"example-foo\" not found, requeuing", + "markdown": "E0116 13:06:48.614623 66988 controller.go:233] error syncing 'default/example-foo': foos.samplecontroller.k8s.io \"example-foo\" not found, requeuing ([#107588](https://github.com/kubernetes/kubernetes/pull/107588), [@discordianfish](https://github.com/discordianfish)) [SIG API Machinery]", + "author": "discordianfish", + "author_url": "https://github.com/discordianfish", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107588", + "pr_number": 107588, + "kinds": [ + "documentation", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "107603": { + "commit": "24b0c3ce137566a00e0552b875786ae1e19bc654", + "text": "NONE", + "markdown": "NONE ([#107603](https://github.com/kubernetes/kubernetes/pull/107603), [@jayesh-srivastava](https://github.com/jayesh-srivastava)) [SIG Apps, CLI and Docs]", + "author": "jayesh-srivastava", + "author_url": "https://github.com/jayesh-srivastava", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107603", + "pr_number": 107603, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "apps", + "cli", + "docs" + ], + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "107604": { + "commit": "018288b38fcf4c5248c83aa2920641b565798be2", + "text": "Updated cri-tools to [v1.23.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.23.0).", + "markdown": "Updated cri-tools to [v1.23.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.23.0). ([#107604](https://github.com/kubernetes/kubernetes/pull/107604), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107604", + "pr_number": 107604, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "release", + "cloud-provider" + ], + "duplicate": true + }, + "107607": { + "commit": "5c9c181698c0a8944057c2d4c15ad78de8a96319", + "text": "'`build/dependencies.yaml`: remove the dependency on Docker. With the dockershim removal, core Kubernetes no longer\nhas to track the latest validated version of Docker.'", + "markdown": "'`build/dependencies.yaml`: remove the dependency on Docker. With the dockershim removal, core Kubernetes no longer\n has to track the latest validated version of Docker.' ([#107607](https://github.com/kubernetes/kubernetes/pull/107607), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107607", + "pr_number": 107607, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "cluster-lifecycle" + ], + "duplicate": true + }, + "107612": { + "commit": "ba1fc6f83c1c2de5d6459768e5a89e8f4e51a855", + "text": "Kubernetes is now built with Golang 1.17.6.", + "markdown": "Kubernetes is now built with Golang 1.17.6. ([#107612](https://github.com/kubernetes/kubernetes/pull/107612), [@palnabarun](https://github.com/palnabarun))", + "author": "palnabarun", + "author_url": "https://github.com/palnabarun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107612", + "pr_number": 107612, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "107631": { + "commit": "68d26c868fa1b353b63a8abebb6af1d822dc5793", + "text": "Fix the bug that the outdated services may be sent to the cloud provider", + "markdown": "Fix the bug that the outdated services may be sent to the cloud provider ([#107631](https://github.com/kubernetes/kubernetes/pull/107631), [@lzhecheng](https://github.com/lzhecheng))", + "author": "lzhecheng", + "author_url": "https://github.com/lzhecheng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107631", + "pr_number": 107631, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "cloud-provider" + ], + "duplicate": true + }, + "107674": { + "commit": "5b52c4d12772c65ff5896f9268b4a4ca58a66995", + "text": "`topologySpreadConstraints` includes minDomains` field to limit the minimum number of topology domains.", + "markdown": "`topologySpreadConstraints` includes minDomains` field to limit the minimum number of topology domains. ([#107674](https://github.com/kubernetes/kubernetes/pull/107674), [@sanposhiho](https://github.com/sanposhiho))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3022", + "type": "KEP" + } + ], + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107674", + "pr_number": 107674, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "107681": { + "commit": "05b59e77175a87b7caca8b27a3ed2478df3d452e", + "text": "mark AzureDisk CSI migration as GA", + "markdown": "Mark AzureDisk CSI migration as GA ([#107681](https://github.com/kubernetes/kubernetes/pull/107681), [@andyzhangx](https://github.com/andyzhangx))", + "documentation": [ + { + "url": "https://testgrid.k8s.io/provider-azure-azuredisk-csi-driver#pr-azuredisk-csi-driver-e2e-migration", + "type": "external" + }, + { + "url": "https://testgrid.k8s.io/provider-azure-azuredisk-csi-driver#pr-azuredisk-csi-driver-e2e-migration-windows", + "type": "external" + } + ], + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107681", + "pr_number": 107681, + "areas": [ + "provider/azure" + ], + "kinds": [ + "documentation", + "feature" + ], + "sigs": [ + "storage", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "107684": { + "commit": "2134e971a68b6d63f5d142ccbeae6596e52a3b9c", + "text": "kube-proxy doesn't set the sysctl `net.ipv4.conf.all.route_localnet=1` if no IPv4 loopback address is selected by the `nodePortAddresses` configuration parameter.", + "markdown": "Kube-proxy doesn't set the sysctl `net.ipv4.conf.all.route_localnet=1` if no IPv4 loopback address is selected by the `nodePortAddresses` configuration parameter. ([#107684](https://github.com/kubernetes/kubernetes/pull/107684), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107684", + "pr_number": 107684, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "107686": { + "commit": "b14ac7f8a4fee2d65592f2af85b9e389c6600f2f", + "text": "NodeRestriction admission: nodes are now allowed to update PersistentVolumeClaim status fields `resizeStatus` and `allocatedResources` when the `RecoverVolumeExpansionFailure` feature is enabled.", + "markdown": "NodeRestriction admission: nodes are now allowed to update PersistentVolumeClaim status fields `resizeStatus` and `allocatedResources` when the `RecoverVolumeExpansionFailure` feature is enabled. ([#107686](https://github.com/kubernetes/kubernetes/pull/107686), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107686", + "pr_number": 107686, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "auth" + ], + "duplicate": true + }, + "107688": { + "commit": "05701a1309ae9f248b358bc98795605821e54b62", + "text": "Fixed a regression in 1.23 that incorrectly pruned data from array items of a custom resource that set `x-kubernetes-preserve-unknown-fields: true`.", + "markdown": "Fixed a regression in 1.23 that incorrectly pruned data from array items of a custom resource that set `x-kubernetes-preserve-unknown-fields: true`. ([#107688](https://github.com/kubernetes/kubernetes/pull/107688), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107688", + "pr_number": 107688, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "107695": { + "commit": "cbaab07b68834f2745624ba39f9fbdb4cb4771aa", + "text": "Fixed static pod add and removes restarts in certain cases.", + "markdown": "Fixed static pod add and removes restarts in certain cases. ([#107695](https://github.com/kubernetes/kubernetes/pull/107695), [@rphillips](https://github.com/rphillips))", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107695", + "pr_number": 107695, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "107725": { + "commit": "0cfb5ccd6abc692b74ab57327e816eee6f1276de", + "text": "kubeadm: improve the strict parsing of user YAML/JSON configuration files. Next to printing warnings for unknown and duplicate fields (current state), also print warnings for fields with incorrect case sensitivity - e.g. `controlPlaneEndpoint` (valid), `ControlPlaneEndpoint` (invalid). Instead of only printing warnings during `init` and `join` also print warnings when downloading the ClusterConfiguration, KubeletConfiguration or KubeProxyConfiguration objects from the cluster. This can be useful if the user has patched these objects in their respective ConfigMaps with mistakes.", + "markdown": "Kubeadm: improve the strict parsing of user YAML/JSON configuration files. Next to printing warnings for unknown and duplicate fields (current state), also print warnings for fields with incorrect case sensitivity - e.g. `controlPlaneEndpoint` (valid), `ControlPlaneEndpoint` (invalid). Instead of only printing warnings during `init` and `join` also print warnings when downloading the ClusterConfiguration, KubeletConfiguration or KubeProxyConfiguration objects from the cluster. This can be useful if the user has patched these objects in their respective ConfigMaps with mistakes. ([#107725](https://github.com/kubernetes/kubernetes/pull/107725), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107725", + "pr_number": 107725, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "107744": { + "commit": "effff78a1f8f35d2deca7cb3a754a6b8179e47aa", + "text": "NONE", + "markdown": "NONE ([#107744](https://github.com/kubernetes/kubernetes/pull/107744), [@Shubham82](https://github.com/Shubham82)) [SIG Auth]", + "author": "Shubham82", + "author_url": "https://github.com/Shubham82", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107744", + "pr_number": 107744, + "kinds": [ + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true, + "do_not_publish": true + }, + "107750": { + "commit": "22db936de30d16f5fa16efdb7084329fd823c6eb", + "text": "A node IP provided to kublet via `--node-ip` will now be preferred for when determining the node's primary IP and using the external cloud provider (CCM).", + "markdown": "A node IP provided to kublet via `--node-ip` will now be preferred for when determining the node's primary IP and using the external cloud provider (CCM). ([#107750](https://github.com/kubernetes/kubernetes/pull/107750), [@stephenfin](https://github.com/stephenfin))", + "author": "stephenfin", + "author_url": "https://github.com/stephenfin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107750", + "pr_number": 107750, + "areas": [ + "kubelet", + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "cloud-provider" + ], + "duplicate": true + }, + "107753": { + "commit": "25697c4812daa06670efb97c49db7646502ed256", + "text": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#107753](https://github.com/kubernetes/kubernetes/pull/107753), [@srikiz](https://github.com/srikiz)) [SIG Network and Testing]", + "author": "srikiz", + "author_url": "https://github.com/srikiz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107753", + "pr_number": 107753, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "107763": { + "commit": "cd117abf194bee8702f8adf11e74c8bdb6c34b5e", + "text": "e2e tests wait for `kube-root-ca.crt` to be populated in namespaces for use with projected service account tokens, reducing delays starting those test pods and errors in the logs.", + "markdown": "E2e tests wait for `kube-root-ca.crt` to be populated in namespaces for use with projected service account tokens, reducing delays starting those test pods and errors in the logs. ([#107763](https://github.com/kubernetes/kubernetes/pull/107763), [@smarterclayton](https://github.com/smarterclayton))", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107763", + "pr_number": 107763, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup", + "flake" + ], + "sigs": [ + "testing" + ], + "duplicate_kind": true + }, + "107769": { + "commit": "66445662ad7b65ffdb144b9665608f7b6a4b57a6", + "text": "No", + "markdown": "No ([#107769](https://github.com/kubernetes/kubernetes/pull/107769), [@liurupeng](https://github.com/liurupeng)) [SIG Cloud Provider and Windows]", + "author": "liurupeng", + "author_url": "https://github.com/liurupeng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107769", + "pr_number": 107769, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "windows", + "cloud-provider" + ], + "duplicate": true + }, + "107775": { + "commit": "2fb24de42b5f8550dfbf0bbb90c3ec3357627f8c", + "text": "Added details about preemption in the event for scheduling failed.", + "markdown": "Added details about preemption in the event for scheduling failed. ([#107775](https://github.com/kubernetes/kubernetes/pull/107775), [@denkensk](https://github.com/denkensk))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/902-non-preempting-priorityclass#stable-v124", + "type": "KEP" + } + ], + "author": "denkensk", + "author_url": "https://github.com/denkensk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107775", + "pr_number": 107775, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "107785": { + "commit": "eda02deda26192f5543b58097d9137fca435315a", + "text": "kubeadm: fixed a bug related to a warning printed if the `KubeletConfiguration` `resolvConf` field value does not match `/run/systemd/resolve/resolv.conf`", + "markdown": "Kubeadm: fixed a bug related to a warning printed if the `KubeletConfiguration` `resolvConf` field value does not match `/run/systemd/resolve/resolv.conf` ([#107785](https://github.com/kubernetes/kubernetes/pull/107785), [@chendave](https://github.com/chendave))", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107785", + "pr_number": 107785, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "107789": { + "commit": "be38633742e571b83874d0d926f46353d8b84ee1", + "text": "Improved handling of unmount failures when device may be in-use by another container/process.", + "markdown": "Improved handling of unmount failures when device may be in-use by another container/process. ([#107789](https://github.com/kubernetes/kubernetes/pull/107789), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107789", + "pr_number": 107789, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "107796": { + "commit": "f03c06ad572e19f31d6b65090ca6eee63a28dbc1", + "text": "Added a path `/header?key=` to `agnhost netexec` allowing one to view what the header value is of the incoming request.\n\nEx:\n\n```$ curl -H \"X-Forwarded-For: something\" 172.17.0.2:8080/header?key=X-Forwarded-For\nsomething```", + "markdown": "Added a path `/header?key=` to `agnhost netexec` allowing one to view what the header value is of the incoming request.\n \n Ex:\n \n ```$ curl -H \"X-Forwarded-For: something\" 172.17.0.2:8080/header?key=X-Forwarded-For\n something``` ([#107796](https://github.com/kubernetes/kubernetes/pull/107796), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107796", + "pr_number": 107796, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + }, + "107806": { + "commit": "e14ace92871f513c61a318213a7a2391fbae060b", + "text": "Env var for additional cli flags used in the csi-proxy binary when a Windows nodepool is created with `kube-up.sh`", + "markdown": "Env var for additional cli flags used in the csi-proxy binary when a Windows nodepool is created with `kube-up.sh` ([#107806](https://github.com/kubernetes/kubernetes/pull/107806), [@mauriciopoppe](https://github.com/mauriciopoppe))", + "author": "mauriciopoppe", + "author_url": "https://github.com/mauriciopoppe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107806", + "pr_number": 107806, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "windows", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "107845": { + "commit": "df98f75e937cb74eb2f6bc68174355210a55893a", + "text": "Failure to start a container cannot accidentally result in the pod being considered \"Succeeded\" in the presence of deletion.", + "markdown": "Failure to start a container cannot accidentally result in the pod being considered \"Succeeded\" in the presence of deletion. ([#107845](https://github.com/kubernetes/kubernetes/pull/107845), [@smarterclayton](https://github.com/smarterclayton))", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107845", + "pr_number": 107845, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "107847": { + "commit": "ce52600a3af533b155a200e2c8a494cd6fc45ad5", + "text": "Fixed a regression in 1.23 where update requests to previously persisted `Service` objects that have not been modified since 1.19 can be rejected with an incorrect `spec.clusterIPs: Required value` error.", + "markdown": "Fixed a regression in 1.23 where update requests to previously persisted `Service` objects that have not been modified since 1.19 can be rejected with an incorrect `spec.clusterIPs: Required value` error. ([#107847](https://github.com/kubernetes/kubernetes/pull/107847), [@thockin](https://github.com/thockin))", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107847", + "pr_number": 107847, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network", + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "107859": { + "commit": "96aa41513e44ea17d935c641506b9f8a5bb1aefe", + "text": "Promote IdentifyPodOS feature to beta.", + "markdown": "Promote IdentifyPodOS feature to beta. ([#107859](https://github.com/kubernetes/kubernetes/pull/107859), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-windows/2802-identify-windows-pods-apiserver-admission", + "type": "KEP" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107859", + "pr_number": 107859, + "areas": [ + "test", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "apps", + "windows", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "107880": { + "commit": "e74c42aaf2b1eff98e15d46026ce13c6be987a4e", + "text": "`kubectl create token` can now be used to request a service account token, and permission to request service account tokens is added to the `edit` and `admin` RBAC roles", + "markdown": "`kubectl create token` can now be used to request a service account token, and permission to request service account tokens is added to the `edit` and `admin` RBAC roles ([#107880](https://github.com/kubernetes/kubernetes/pull/107880), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107880", + "pr_number": 107880, + "areas": [ + "test", + "kubectl", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "107900": { + "commit": "baad1caee9dea68c6f9de9c14b23cfe6a96a80f8", + "text": "A static pod that is rapidly updated was failing to start until the Kubelet was restarted.", + "markdown": "A static pod that is rapidly updated was failing to start until the Kubelet was restarted. ([#107900](https://github.com/kubernetes/kubernetes/pull/107900), [@smarterclayton](https://github.com/smarterclayton))", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107900", + "pr_number": 107900, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "107904": { + "commit": "a4f559bfe10532bee534fefcaf4e6cc21c1e466c", + "text": "The in-tree Azure plugin has been deprecated. The Azure kubelogin plugin serves as an out-of-tree replacement via the kubectl/client-go credential plugin mechanism. Users will now see a warning in the logs regarding this deprecation.", + "markdown": "The in-tree Azure plugin has been deprecated. The Azure kubelogin plugin serves as an out-of-tree replacement via the kubectl/client-go credential plugin mechanism. Users will now see a warning in the logs regarding this deprecation. ([#107904](https://github.com/kubernetes/kubernetes/pull/107904), [@sabbey37](https://github.com/sabbey37))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/541-external-credential-providers", + "type": "KEP" + } + ], + "author": "sabbey37", + "author_url": "https://github.com/sabbey37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107904", + "pr_number": 107904, + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "auth" + ], + "duplicate_kind": true + }, + "107921": { + "commit": "3866cb91f22da6eb49dab10dd5c33385690b57b4", + "text": "The output of `kubectl describe ingress` now includes an IngressClass name if available.", + "markdown": "The output of `kubectl describe ingress` now includes an IngressClass name if available. ([#107921](https://github.com/kubernetes/kubernetes/pull/107921), [@mpuckett159](https://github.com/mpuckett159))", + "author": "mpuckett159", + "author_url": "https://github.com/mpuckett159", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107921", + "pr_number": 107921, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "107924": { + "commit": "8f5a12d7012ae345f1a47d3c89490369314ece6b", + "text": "~\u003e ~/goal/bin/stress ./reconciler.test -test.run=Test_Run_Positive_VolumeAttachMountUnmountDetach \n5s: 454 runs so far, 0 failures \n10s: 930 runs so far, 0 failures \n15s: 1415 runs so far, 0 failures \n20s: 1900 runs so far, 0 failures \n25s: 2394 runs so far, 0 failures \n30s: 2888 runs so far, 0 failures \n^C", + "markdown": "~\u003e ~/goal/bin/stress ./reconciler.test -test.run=Test_Run_Positive_VolumeAttachMountUnmountDetach \n 5s: 454 runs so far, 0 failures \n 10s: 930 runs so far, 0 failures \n 15s: 1415 runs so far, 0 failures \n 20s: 1900 runs so far, 0 failures \n 25s: 2394 runs so far, 0 failures \n 30s: 2888 runs so far, 0 failures \n ^C ([#107924](https://github.com/kubernetes/kubernetes/pull/107924), [@gnufied](https://github.com/gnufied)) [SIG Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107924", + "pr_number": 107924, + "kinds": [ + "flake" + ], + "sigs": [ + "storage" + ], + "do_not_publish": true + }, + "107956": { + "commit": "8dee712448beb92355a73a2197b63dbea8631749", + "text": "CRD deep copies should no longer contain shallow copies of `JSONSchemaProps.XValidations`.", + "markdown": "CRD deep copies should no longer contain shallow copies of `JSONSchemaProps.XValidations`. ([#107956](https://github.com/kubernetes/kubernetes/pull/107956), [@benluddy](https://github.com/benluddy))", + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107956", + "pr_number": 107956, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "107963": { + "commit": "42a12010829962c6e87cee8e4bc217d39d7a8043", + "text": "Adds a new Status subresource in Network Policy objects", + "markdown": "Adds a new Status subresource in Network Policy objects ([#107963](https://github.com/kubernetes/kubernetes/pull/107963), [@rikatz](https://github.com/rikatz))", + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107963", + "pr_number": 107963, + "areas": [ + "test", + "apiserver", + "code-generation", + "network-policy" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "107967": { + "commit": "a3301946010ed6618b3f61f384623b1168260a4f", + "text": "`kubectl version` now fails when given extra arguments.", + "markdown": "`kubectl version` now fails when given extra arguments. ([#107967](https://github.com/kubernetes/kubernetes/pull/107967), [@jlsong01](https://github.com/jlsong01))", + "author": "jlsong01", + "author_url": "https://github.com/jlsong01", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107967", + "pr_number": 107967, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "107970": { + "commit": "4c300ff5bffc1e999034958715262b4f98a23072", + "text": "Fixed OpenAPI serialization of the x-kubernetes-validations field", + "markdown": "Fixed OpenAPI serialization of the x-kubernetes-validations field ([#107970](https://github.com/kubernetes/kubernetes/pull/107970), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107970", + "pr_number": 107970, + "areas": [ + "dependency" + ], + "kinds": [ + "bug", + "api-change", + "flake" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "107974": { + "commit": "0e31414f3e6b2ee917d1bb012a92de6ad2e7f83a", + "text": "The scheduler prints info logs when the extender returned an error. (`--v\u003e5`)", + "markdown": "The scheduler prints info logs when the extender returned an error. (`--v\u003e5`) ([#107974](https://github.com/kubernetes/kubernetes/pull/107974), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107974", + "pr_number": 107974, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "107979": { + "commit": "7cf5c02980404d12da4eedac4e72df6045e8a382", + "text": "The `.spec.loadBalancerClass` field for Services is now generally available.", + "markdown": "The `.spec.loadBalancerClass` field for Services is now generally available. ([#107979](https://github.com/kubernetes/kubernetes/pull/107979), [@XudongLiuHarold](https://github.com/XudongLiuHarold))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cloud-provider/1959-service-lb-class-field", + "type": "KEP" + }, + { + "description": "[Issue]", + "url": "https://github.com/kubernetes/enhancements/issues/1959", + "type": "KEP" + } + ], + "author": "XudongLiuHarold", + "author_url": "https://github.com/XudongLiuHarold", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107979", + "pr_number": 107979, + "areas": [ + "test", + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "107981": { + "commit": "9d18c761af091fd047e12c764b8fd0809e0e7207", + "text": "This code change fixes the bug that UDP services would trigger unnecessary LoadBalancer updates. The root cause is that a field not working for non-TCP protocols is considered.\nref: https://github.com/kubernetes-sigs/cloud-provider-azure/pull/1090", + "markdown": "This code change fixes the bug that UDP services would trigger unnecessary LoadBalancer updates. The root cause is that a field not working for non-TCP protocols is considered.\n ref: https://github.com/kubernetes-sigs/cloud-provider-azure/pull/1090 ([#107981](https://github.com/kubernetes/kubernetes/pull/107981), [@lzhecheng](https://github.com/lzhecheng))", + "author": "lzhecheng", + "author_url": "https://github.com/lzhecheng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107981", + "pr_number": 107981, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "107982": { + "commit": "9f791bbf5b0e27521a33ab63f6a4c16a677e20f4", + "text": "kubeadm: fixed the bug that `kubeadm certs generate-csr` command does not remove duplicated SANs", + "markdown": "Kubeadm: fixed the bug that `kubeadm certs generate-csr` command does not remove duplicated SANs ([#107982](https://github.com/kubernetes/kubernetes/pull/107982), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107982", + "pr_number": 107982, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "107986": { + "commit": "a6e65a246c31ab874dac50ad5a2f1f0ce5bdcdfb", + "text": "Promoted graceful shutdown based on pod priority to beta", + "markdown": "Promoted graceful shutdown based on pod priority to beta ([#107986](https://github.com/kubernetes/kubernetes/pull/107986), [@wzshiming](https://github.com/wzshiming))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2712-pod-priority-based-graceful-node-shutdown/README.md", + "type": "KEP" + } + ], + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107986", + "pr_number": 107986, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "107997": { + "commit": "343125cc6c4a8b83b6fad8778d9fc1cd7ad1f947", + "text": "Fixes bug in CronJob Controller V2 where it would lose track of jobs upon job template labels change.", + "markdown": "Fixes bug in CronJob Controller V2 where it would lose track of jobs upon job template labels change. ([#107997](https://github.com/kubernetes/kubernetes/pull/107997), [@d-honeybadger](https://github.com/d-honeybadger))", + "author": "d-honeybadger", + "author_url": "https://github.com/d-honeybadger", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107997", + "pr_number": 107997, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "108000": { + "commit": "bbc2dbb98019f2fa7403b1b588e92b438c2f9c70", + "text": "Existing InTree AzureFile PVs which don't have a secret namespace defined will now work properly after enabling CSI migration - the namespace will be obtained from ClaimRef.", + "markdown": "Existing InTree AzureFile PVs which don't have a secret namespace defined will now work properly after enabling CSI migration - the namespace will be obtained from ClaimRef. ([#108000](https://github.com/kubernetes/kubernetes/pull/108000), [@RomanBednar](https://github.com/RomanBednar))", + "author": "RomanBednar", + "author_url": "https://github.com/RomanBednar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108000", + "pr_number": 108000, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "cloud-provider" + ], + "duplicate": true + }, + "108004": { + "commit": "7858fc93e5c61ad87e6e2fafa5df33806b38bf28", + "text": "Add the metric `container_oom_events_total` to kubelet's cAdvisor metric endpoint.", + "markdown": "Add the metric `container_oom_events_total` to kubelet's cAdvisor metric endpoint. ([#108004](https://github.com/kubernetes/kubernetes/pull/108004), [@jonkerj](https://github.com/jonkerj))", + "author": "jonkerj", + "author_url": "https://github.com/jonkerj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108004", + "pr_number": 108004, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "108013": { + "commit": "59fad3c6be9c339b9cf165333905573981438b22", + "text": "CRD writes will generate validation errors if a CEL validation rule references the identifier `oldSelf` on a part of the schema that does not support it.", + "markdown": "CRD writes will generate validation errors if a CEL validation rule references the identifier `oldSelf` on a part of the schema that does not support it. ([#108013](https://github.com/kubernetes/kubernetes/pull/108013), [@benluddy](https://github.com/benluddy))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/0ad0fc8269165ca300d05ca51c7ce190a79976a5/keps/sig-api-machinery/2876-crd-validation-expression-language#transition-rules", + "type": "KEP" + } + ], + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108013", + "pr_number": 108013, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "108016": { + "commit": "64e711085b6febbe40031cf971590f40299f5b7f", + "text": "The `v1` version of `LeaderMigrationConfiguration` supports only `leases` API for leader election. To use formerly supported mechanisms, please continue using `v1beta1`.", + "markdown": "The `v1` version of `LeaderMigrationConfiguration` supports only `leases` API for leader election. To use formerly supported mechanisms, please continue using `v1beta1`. ([#108016](https://github.com/kubernetes/kubernetes/pull/108016), [@jiahuif](https://github.com/jiahuif))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2436", + "type": "KEP" + } + ], + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108016", + "pr_number": 108016, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "108017": { + "commit": "f538b0b105552abeb2c52a3cc3650c108acb1429", + "text": "Add a deprecated cmd flag for the time interval between flushing pods from unschedulable queue to active queue or backoff queue.", + "markdown": "Add a deprecated cmd flag for the time interval between flushing pods from unschedulable queue to active queue or backoff queue. ([#108017](https://github.com/kubernetes/kubernetes/pull/108017), [@denkensk](https://github.com/denkensk))", + "author": "denkensk", + "author_url": "https://github.com/denkensk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108017", + "pr_number": 108017, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "108020": { + "commit": "49dc22638164c415fd2c13d8a5f2013ca62151d1", + "text": "Remove `tolerate-unready-endpoints` annotation in Service deprecated from 1.11, use `Service.spec.publishNotReadyAddresses` instead.", + "markdown": "Remove `tolerate-unready-endpoints` annotation in Service deprecated from 1.11, use `Service.spec.publishNotReadyAddresses` instead. ([#108020](https://github.com/kubernetes/kubernetes/pull/108020), [@tossmilestone](https://github.com/tossmilestone))", + "author": "tossmilestone", + "author_url": "https://github.com/tossmilestone", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108020", + "pr_number": 108020, + "kinds": [ + "deprecation" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "108027": { + "commit": "d374c954deb3a3da62f1fb0055842530ff8c9451", + "text": "kubeadm: graduated the `UnversionedKubeletConfigMap` feature gate to Beta and enabled the feature by default. This implies that 1) for new clusters kubeadm will start using the `kube-system/kubelet-config` naming scheme for the kubelet ConfigMap and RBAC rules, instead of the legacy `kubelet-config-x.yy` naming. 2) during upgrade, kubeadm will only write the new scheme ConfigMap and RBAC objects. To disable the feature you can pass `UnversionedKubeletConfigMap: false` in the kubeadm config for new clusters. For upgrade on existing clusters you can also override the behavior by patching the ClusterConfiguration object in `kube-system/kubeadm-config`. More details in the associated KEP.", + "markdown": "Kubeadm: graduated the `UnversionedKubeletConfigMap` feature gate to Beta and enabled the feature by default. This implies that 1) for new clusters kubeadm will start using the `kube-system/kubelet-config` naming scheme for the kubelet ConfigMap and RBAC rules, instead of the legacy `kubelet-config-x.yy` naming. 2) during upgrade, kubeadm will only write the new scheme ConfigMap and RBAC objects. To disable the feature you can pass `UnversionedKubeletConfigMap: false` in the kubeadm config for new clusters. For upgrade on existing clusters you can also override the behavior by patching the ClusterConfiguration object in `kube-system/kubeadm-config`. More details in the associated KEP. ([#108027](https://github.com/kubernetes/kubernetes/pull/108027), [@neolit123](https://github.com/neolit123))", + "documentation": [ + { + "url": "https://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/2915-kubeadm-replace-kubelet-config-x.y", + "type": "external" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108027", + "pr_number": 108027, + "areas": [ + "test", + "kubeadm" + ], + "kinds": [ + "feature", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108032": { + "commit": "0f2300575c805bb70ba181957684361bcd25f86a", + "text": "This adds an optional `timeZone` field as part of the CronJob spec to support running cron jobs in a specific time zone.", + "markdown": "This adds an optional `timeZone` field as part of the CronJob spec to support running cron jobs in a specific time zone. ([#108032](https://github.com/kubernetes/kubernetes/pull/108032), [@deejross](https://github.com/deejross))", + "author": "deejross", + "author_url": "https://github.com/deejross", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108032", + "pr_number": 108032, + "areas": [ + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108034": { + "commit": "344bf270ee094fe85c438f7e206dd24f4b69884e", + "text": "The script `cluster/gce/gci/configure.sh` now supports downloading `crictl` on ARM64 nodes", + "markdown": "The script `cluster/gce/gci/configure.sh` now supports downloading `crictl` on ARM64 nodes ([#108034](https://github.com/kubernetes/kubernetes/pull/108034), [@tstapler](https://github.com/tstapler))", + "author": "tstapler", + "author_url": "https://github.com/tstapler", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108034", + "pr_number": 108034, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "108038": { + "commit": "d79ea9ea33834fd5a22ed893e92d3f251eddfb91", + "text": "Removed feature gate `SetHostnameAsFQDN`.", + "markdown": "Removed feature gate `SetHostnameAsFQDN`. ([#108038](https://github.com/kubernetes/kubernetes/pull/108038), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108038", + "pr_number": 108038, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "108045": { + "commit": "efa5692c0b5f01bd33d8a112ab98b386300198e7", + "text": "The `--pod-infra-container-image` kubelet flag is deprecated and will be removed in future releases", + "markdown": "The `--pod-infra-container-image` kubelet flag is deprecated and will be removed in future releases ([#108045](https://github.com/kubernetes/kubernetes/pull/108045), [@hakman](https://github.com/hakman))", + "author": "hakman", + "author_url": "https://github.com/hakman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108045", + "pr_number": 108045, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "108052": { + "commit": "e24b5333e5667a4d34e48d6051082e61823e6aab", + "text": "Fixed bug in `TopologyManager` for ensuring aligned allocations on machines with more than 2 NUMA nodes", + "markdown": "Fixed bug in `TopologyManager` for ensuring aligned allocations on machines with more than 2 NUMA nodes ([#108052](https://github.com/kubernetes/kubernetes/pull/108052), [@klueska](https://github.com/klueska))", + "author": "klueska", + "author_url": "https://github.com/klueska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108052", + "pr_number": 108052, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "108053": { + "commit": "f06baf9f36a5d973ad84779bbca44f2fb4a93483", + "text": "kubectl stack traces now only print at verbose `-v=99` and not `-v=6`", + "markdown": "Kubectl stack traces now only print at verbose `-v=99` and not `-v=6` ([#108053](https://github.com/kubernetes/kubernetes/pull/108053), [@eddiezane](https://github.com/eddiezane))", + "author": "eddiezane", + "author_url": "https://github.com/eddiezane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108053", + "pr_number": 108053, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "108059": { + "commit": "8bae9bea45de30cc8eb3a3da604abd01376ffbd8", + "text": "[k8s.io/utils/clock]: IntervalClock is now deprecated in favour of SimpleIntervalClock", + "markdown": "[k8s.io/utils/clock]: IntervalClock is now deprecated in favour of SimpleIntervalClock ([#108059](https://github.com/kubernetes/kubernetes/pull/108059), [@RaghavRoy145](https://github.com/RaghavRoy145))", + "author": "RaghavRoy145", + "author_url": "https://github.com/RaghavRoy145", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108059", + "pr_number": 108059, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "108062": { + "commit": "a1ac74224eac04dae21fcee2b32f8e914111ec9f", + "text": "kube-apiserver: the `--master-count` flag and `--endpoint-reconciler-type=master-count` reconciler are deprecated in favor of the lease reconciler", + "markdown": "Kube-apiserver: the `--master-count` flag and `--endpoint-reconciler-type=master-count` reconciler are deprecated in favor of the lease reconciler ([#108062](https://github.com/kubernetes/kubernetes/pull/108062), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108062", + "pr_number": 108062, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "108073": { + "commit": "ef404e989d6c3cf83987773d0ece3c6c4ece8489", + "text": "CEL CRD validation expressions may now reference existing object state using the identifier `oldSelf`.", + "markdown": "CEL CRD validation expressions may now reference existing object state using the identifier `oldSelf`. ([#108073](https://github.com/kubernetes/kubernetes/pull/108073), [@benluddy](https://github.com/benluddy))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/787e5513d09096756c61aaba1916a73cb1dd348b/keps/sig-api-machinery/2876-crd-validation-expression-language#transition-rules", + "type": "KEP" + } + ], + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108073", + "pr_number": 108073, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108078": { + "commit": "0dc83fe6969f7012dcaf4fcbe90f9eb55b81db4e", + "text": "Prevent unnecessary `Endpoints` and `EndpointSlice` updates caused by `Pod ResourceVersion` change", + "markdown": "Prevent unnecessary `Endpoints` and `EndpointSlice` updates caused by `Pod ResourceVersion` change ([#108078](https://github.com/kubernetes/kubernetes/pull/108078), [@tnqn](https://github.com/tnqn))", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108078", + "pr_number": 108078, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "108091": { + "commit": "6669a016aec0f56b3e949858cd51503fb1b01a06", + "text": "Kubernetes is now built with Golang 1.17.7", + "markdown": "Kubernetes is now built with Golang 1.17.7 ([#108091](https://github.com/kubernetes/kubernetes/pull/108091), [@xmudrii](https://github.com/xmudrii))", + "author": "xmudrii", + "author_url": "https://github.com/xmudrii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108091", + "pr_number": 108091, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "108092": { + "commit": "19762408612e49401aa46d8396c7032462fe5ab0", + "text": "kube-apiserver: `--audit-log-version` and `--audit-webhook-version` now only support the default value of `audit.k8s.io/v1`. The v1alpha1 and v1beta1 audit log versions, deprecated since 1.13, have been removed.", + "markdown": "Kube-apiserver: `--audit-log-version` and `--audit-webhook-version` now only support the default value of `audit.k8s.io/v1`. The v1alpha1 and v1beta1 audit log versions, deprecated since 1.13, have been removed. ([#108092](https://github.com/kubernetes/kubernetes/pull/108092), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108092", + "pr_number": 108092, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108107": { + "commit": "a41f9e976da10af28169cbbfebbce5ad4ba965f0", + "text": "The kubelet no longer forcefully closes active connections on heartbeat failures, using the HTTP2 health check mechanism to detect broken connections. Users can force the previous behavior of the kubelet by setting the environment variable DISABLE_HTTP2.", + "markdown": "The kubelet no longer forcefully closes active connections on heartbeat failures, using the HTTP2 health check mechanism to detect broken connections. Users can force the previous behavior of the kubelet by setting the environment variable DISABLE_HTTP2. ([#108107](https://github.com/kubernetes/kubernetes/pull/108107), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108107", + "pr_number": 108107, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "api-machinery" + ], + "duplicate": true + }, + "108129": { + "commit": "8a6439d2b1a56d2875d607803d376aa7406aa508", + "text": "Suspend job to GA. The feature gate `SuspendJob` is locked and will be removed in 1.26.", + "markdown": "Suspend job to GA. The feature gate `SuspendJob` is locked and will be removed in 1.26. ([#108129](https://github.com/kubernetes/kubernetes/pull/108129), [@ahg-g](https://github.com/ahg-g))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2232-suspend-jobs", + "type": "KEP" + } + ], + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108129", + "pr_number": 108129, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108136": { + "commit": "d5263feb038825197ab426237b111086822366be", + "text": "pod affinity namespace selector and cross-namespace quota graduated to GA. The feature gate `PodAffinityNamespaceSelector` is locked and will be removed in 1.26.", + "markdown": "Pod affinity namespace selector and cross-namespace quota graduated to GA. The feature gate `PodAffinityNamespaceSelector` is locked and will be removed in 1.26. ([#108136](https://github.com/kubernetes/kubernetes/pull/108136), [@ahg-g](https://github.com/ahg-g))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/2249-pod-affinity-namespace-selector", + "type": "KEP" + } + ], + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108136", + "pr_number": 108136, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108138": { + "commit": "a37b6fc8b488a07839e6426e5d7ce4a5165cfe73", + "text": "Fixes a regression in v1beta1 PodDisruptionBudget handling of `strategic merge patch`-type API requests for the `selector` field. Prior to 1.21, these requests would merge `matchLabels` content and replace `matchExpressions` content. In 1.21, patch requests touching the `selector` field started replacing the entire selector. This is consistent with server-side apply and the v1 PodDisruptionBudget behavior, but should not have been changed for v1beta1.", + "markdown": "Fixes a regression in v1beta1 PodDisruptionBudget handling of `strategic merge patch`-type API requests for the `selector` field. Prior to 1.21, these requests would merge `matchLabels` content and replace `matchExpressions` content. In 1.21, patch requests touching the `selector` field started replacing the entire selector. This is consistent with server-side apply and the v1 PodDisruptionBudget behavior, but should not have been changed for v1beta1. ([#108138](https://github.com/kubernetes/kubernetes/pull/108138), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108138", + "pr_number": 108138, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "api-change", + "regression" + ], + "sigs": [ + "auth", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "108146": { + "commit": "faf7ad612057f34d34491c039f91331ba311919f", + "text": "Updating kubelet permissions check for Windows nodes to see if process is elevated instead of checking if process owner is in Administrators group", + "markdown": "Updating kubelet permissions check for Windows nodes to see if process is elevated instead of checking if process owner is in Administrators group ([#108146](https://github.com/kubernetes/kubernetes/pull/108146), [@marosset](https://github.com/marosset))", + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108146", + "pr_number": 108146, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true + }, + "108149": { + "commit": "b68063fce7abf62c69c257610d93ed3eb100956a", + "text": "fixed: do not return early in the node informer when there is no change of the topology label.", + "markdown": "Fixed: do not return early in the node informer when there is no change of the topology label. ([#108149](https://github.com/kubernetes/kubernetes/pull/108149), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108149", + "pr_number": 108149, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cloud-provider" + ], + "duplicate_kind": true + }, + "108154": { + "commit": "422001df8b694f20e7c781808408a470bed3249c", + "text": "Improved algorithm for selecting `best` non-preferred hint in the TopologyManager", + "markdown": "Improved algorithm for selecting `best` non-preferred hint in the TopologyManager ([#108154](https://github.com/kubernetes/kubernetes/pull/108154), [@klueska](https://github.com/klueska))", + "author": "klueska", + "author_url": "https://github.com/klueska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108154", + "pr_number": 108154, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "108167": { + "commit": "66daef4aa7bc63521828f2977a3202e50a81e5aa", + "text": "Fixed a bug in attachdetach controller that didn't properly handle kube-apiserver errors leading to stuck attachments/detachments.", + "markdown": "Fixed a bug in attachdetach controller that didn't properly handle kube-apiserver errors leading to stuck attachments/detachments. ([#108167](https://github.com/kubernetes/kubernetes/pull/108167), [@jfremy](https://github.com/jfremy))", + "author": "jfremy", + "author_url": "https://github.com/jfremy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108167", + "pr_number": 108167, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "108198": { + "commit": "5699e6d3eaaa04e47fe3ea44217fe1974d3847de", + "text": "Fixed a bug where a partial `EndpointSlice` update could cause node name information to be dropped from endpoints that were not updated.", + "markdown": "Fixed a bug where a partial `EndpointSlice` update could cause node name information to be dropped from endpoints that were not updated. ([#108198](https://github.com/kubernetes/kubernetes/pull/108198), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108198", + "pr_number": 108198, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "108209": { + "commit": "2355747e7c14fdf7b6ce824a91d04697ec084922", + "text": "Increase Azure ACR credential provider timeout", + "markdown": "Increase Azure ACR credential provider timeout ([#108209](https://github.com/kubernetes/kubernetes/pull/108209), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108209", + "pr_number": 108209, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "108224": { + "commit": "8f3636e8ac6f6e9a27c9dcca29643c48342ab21b", + "text": "Kube-proxy in iptables mode now only logs the full iptables input at `-v=9` rather than `-v=5`.", + "markdown": "Kube-proxy in iptables mode now only logs the full iptables input at `-v=9` rather than `-v=5`. ([#108224](https://github.com/kubernetes/kubernetes/pull/108224), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108224", + "pr_number": 108224, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "108253": { + "commit": "7cc4fcd802edf888fd2f21a20194c392ee4a2edd", + "text": "The `e2e.test` binary supports a new `--kubelet-root` parameter to override the default `/var/lib/kubelet` path. CSI storage tests use this.", + "markdown": "The `e2e.test` binary supports a new `--kubelet-root` parameter to override the default `/var/lib/kubelet` path. CSI storage tests use this. ([#108253](https://github.com/kubernetes/kubernetes/pull/108253), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108253", + "pr_number": 108253, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "node", + "testing" + ], + "duplicate": true + }, + "108278": { + "commit": "bf7b9119f03b83e373907dea09348d6878f30e7f", + "text": "Feature of `DefaultPodTopologySpread` is graduated to GA", + "markdown": "Feature of `DefaultPodTopologySpread` is graduated to GA ([#108278](https://github.com/kubernetes/kubernetes/pull/108278), [@kerthcet](https://github.com/kerthcet))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/1258-default-pod-topology-spread", + "type": "KEP" + } + ], + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108278", + "pr_number": 108278, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "duplicate_kind": true + }, + "108290": { + "commit": "b9792a9daef4d978c5c30b6d10cbcdfa77a9b6ac", + "text": "Introduce a v1alpha1 networking API for ClusterCIDRConfig", + "markdown": "Introduce a v1alpha1 networking API for ClusterCIDRConfig ([#108290](https://github.com/kubernetes/kubernetes/pull/108290), [@sarveshr7](https://github.com/sarveshr7))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2594", + "type": "KEP" + } + ], + "author": "sarveshr7", + "author_url": "https://github.com/sarveshr7", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108290", + "pr_number": 108290, + "areas": [ + "test", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108296": { + "commit": "5ee80dee042d9b83a20031469606af0d2fb8d815", + "text": "client-go: add new histogram metric to record the size of the requests and responses.", + "markdown": "Client-go: add new histogram metric to record the size of the requests and responses. ([#108296](https://github.com/kubernetes/kubernetes/pull/108296), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108296", + "pr_number": 108296, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "108309": { + "commit": "88f97283393715c7fa870dd90be0fd0d0faad6bd", + "text": "The `LegacyServiceAccountTokenNoAutoGeneration` feature gate is beta, and enabled by default. When enabled, Secret API objects containing service account tokens are no longer auto-generated for every ServiceAccount. Use the [TokenRequest](https://kubernetes.io/docs/reference/kubernetes-api/authentication-resources/token-request-v1/) API to acquire service account tokens, or if a non-expiring token is required, create a Secret API object for the token controller to populate with a service account token by following this [guide](https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets).", + "markdown": "The `LegacyServiceAccountTokenNoAutoGeneration` feature gate is beta, and enabled by default. When enabled, Secret API objects containing service account tokens are no longer auto-generated for every ServiceAccount. Use the [TokenRequest](https://kubernetes.io/docs/reference/kubernetes-api/authentication-resources/token-request-v1/) API to acquire service account tokens, or if a non-expiring token is required, create a Secret API object for the token controller to populate with a service account token by following this [guide](https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets). ([#108309](https://github.com/kubernetes/kubernetes/pull/108309), [@zshihang](https://github.com/zshihang))", + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108309", + "pr_number": 108309, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "108312": { + "commit": "a83bb7746c18caa53fafdeaa882cbb21a120547c", + "text": "CRD `x-kubernetes-validations` rules now support the CEL functions: `isSorted`, `sum`, `min`, `max`, `indexOf`, `lastIndexOf`, `find` and `findAll`.", + "markdown": "CRD `x-kubernetes-validations` rules now support the CEL functions: `isSorted`, `sum`, `min`, `max`, `indexOf`, `lastIndexOf`, `find` and `findAll`. ([#108312](https://github.com/kubernetes/kubernetes/pull/108312), [@jpbetz](https://github.com/jpbetz))", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108312", + "pr_number": 108312, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "108315": { + "commit": "4fcfc58d1b5153c30a9667e8891547759e36727d", + "text": "kubeadm: better surface errors during `kubeadm upgrade` when waiting for the kubelet to restart static pods on control plane nodes", + "markdown": "Kubeadm: better surface errors during `kubeadm upgrade` when waiting for the kubelet to restart static pods on control plane nodes ([#108315](https://github.com/kubernetes/kubernetes/pull/108315), [@Monokaix](https://github.com/Monokaix))", + "author": "Monokaix", + "author_url": "https://github.com/Monokaix", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108315", + "pr_number": 108315, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "108341": { + "commit": "3213a92802b91ed718578f51b14916105fb0c3da", + "text": "`kube-addon-manager` image version is bumped to 9.1.6", + "markdown": "`kube-addon-manager` image version is bumped to 9.1.6 ([#108341](https://github.com/kubernetes/kubernetes/pull/108341), [@zshihang](https://github.com/zshihang))", + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108341", + "pr_number": 108341, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scalability", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "108350": { + "commit": "c18c2447cf602ee1a76113200b3f5b6200a24a34", + "text": "Changes the kubectl `--validate` flag from a bool to a string that accepts the values {true, strict, warn, false, ignore}\n- true/strict - perform validation and error the request on any invalid fields in the ojbect. It will attempt to perform server-side validation if it is enabled on the apiserver, otherwise it will fall back to client-side validation.\n- warn - perform server-side validation and warn on any invalid fields (but ultimately let the request succeed by dropping any invalid fields from the object). If validation is not available on the server, perform no validation.\n- false/ignore - perform no validation, silently dropping invalid fields from the object.", + "markdown": "Changes the kubectl `--validate` flag from a bool to a string that accepts the values {true, strict, warn, false, ignore}\n - true/strict - perform validation and error the request on any invalid fields in the ojbect. It will attempt to perform server-side validation if it is enabled on the apiserver, otherwise it will fall back to client-side validation.\n - warn - perform server-side validation and warn on any invalid fields (but ultimately let the request succeed by dropping any invalid fields from the object). If validation is not available on the server, perform no validation.\n - false/ignore - perform no validation, silently dropping invalid fields from the object. ([#108350](https://github.com/kubernetes/kubernetes/pull/108350), [@kevindelgado](https://github.com/kevindelgado))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/2885-server-side-unknown-field-validation", + "type": "KEP" + } + ], + "author": "kevindelgado", + "author_url": "https://github.com/kevindelgado", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108350", + "pr_number": 108350, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "108366": { + "commit": "9e50a332d8fcbec104e7ff90a01aa215c8ea72e6", + "text": "Fixed a regression that could incorrectly reject pods with `OutOfCpu` errors if they were rapidly scheduled after other pods were reported as complete in the API. The Kubelet now waits to report the phase of a pod as terminal in the API until all running containers are guaranteed to have stopped and no new containers can be started. Short-lived pods may take slightly longer (~1s) to report Succeeded or Failed after this change.", + "markdown": "Fixed a regression that could incorrectly reject pods with `OutOfCpu` errors if they were rapidly scheduled after other pods were reported as complete in the API. The Kubelet now waits to report the phase of a pod as terminal in the API until all running containers are guaranteed to have stopped and no new containers can be started. Short-lived pods may take slightly longer (~1s) to report Succeeded or Failed after this change. ([#108366](https://github.com/kubernetes/kubernetes/pull/108366), [@smarterclayton](https://github.com/smarterclayton))", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108366", + "pr_number": 108366, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "108394": { + "commit": "162f8d5bac870d41bbc63dbeb4922b4eab1b8800", + "text": "The `WarningHeaders` feature gate that is GA since v1.22 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument.", + "markdown": "The `WarningHeaders` feature gate that is GA since v1.22 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#108394](https://github.com/kubernetes/kubernetes/pull/108394), [@ialidzhikov](https://github.com/ialidzhikov))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1693-warnings", + "type": "KEP" + } + ], + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108394", + "pr_number": 108394, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "108400": { + "commit": "370b7cc25cc2357eb8cc44774ded599b8529e2e9", + "text": "Support in-tree PV deletion protection finalizer.", + "markdown": "Support in-tree PV deletion protection finalizer. ([#108400](https://github.com/kubernetes/kubernetes/pull/108400), [@deepakkinni](https://github.com/deepakkinni))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3181", + "type": "KEP" + } + ], + "author": "deepakkinni", + "author_url": "https://github.com/deepakkinni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108400", + "pr_number": 108400, + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "apps" + ], + "feature": true, + "duplicate": true + }, + "108410": { + "commit": "6f1612dcae9eddd3e12223d417662971c63952fa", + "text": "kubeadm: fixed a bug when using `kubeadm init --dry-run` with certificate authority files (`ca.key` / `ca.crt`) present in `/etc/kubernetes/pki`)", + "markdown": "Kubeadm: fixed a bug when using `kubeadm init --dry-run` with certificate authority files (`ca.key` / `ca.crt`) present in `/etc/kubernetes/pki`) ([#108410](https://github.com/kubernetes/kubernetes/pull/108410), [@Haleygo](https://github.com/Haleygo))", + "author": "Haleygo", + "author_url": "https://github.com/Haleygo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108410", + "pr_number": 108410, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "108423": { + "commit": "1160923ae630fdcc2624c37c4e4f784bc61a5dd1", + "text": "API server's deprecated `--experimental-encryption-provider-config` flag is now removed. Adapt your machinery to use the `--encryption-provider-config` flag that is available since v1.13.", + "markdown": "API server's deprecated `--experimental-encryption-provider-config` flag is now removed. Adapt your machinery to use the `--encryption-provider-config` flag that is available since v1.13. ([#108423](https://github.com/kubernetes/kubernetes/pull/108423), [@ialidzhikov](https://github.com/ialidzhikov))", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108423", + "pr_number": 108423, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "108429": { + "commit": "4737127b57d02051dfa9f5f263bcb5049516db1c", + "text": "Allow KUBE_TEST_REPO_LIST to be a remote url", + "markdown": "Allow KUBE_TEST_REPO_LIST to be a remote url ([#108429](https://github.com/kubernetes/kubernetes/pull/108429), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108429", + "pr_number": 108429, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "108432": { + "commit": "0b3629ae7d65ef4eb7e36e66ceda0a273c2700a6", + "text": "No", + "markdown": "No ([#108432](https://github.com/kubernetes/kubernetes/pull/108432), [@iXinqi](https://github.com/iXinqi)) [SIG Testing and Windows]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/pull/2975", + "type": "KEP" + } + ], + "author": "iXinqi", + "author_url": "https://github.com/iXinqi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108432", + "pr_number": 108432, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "windows", + "testing" + ], + "feature": true, + "duplicate": true + }, + "108437": { + "commit": "82755e3cb2fa8742ac05749058c6f6d991ed2061", + "text": "bump `sigs.k8s.io/apiserver-network-proxy/konnectivity-client@v0.0.30` to fix a goroutine leak in kube-apiserver when using egress selctor with the gRPC mode.", + "markdown": "Bump `sigs.k8s.io/apiserver-network-proxy/konnectivity-client@v0.0.30` to fix a goroutine leak in kube-apiserver when using egress selctor with the gRPC mode. ([#108437](https://github.com/kubernetes/kubernetes/pull/108437), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108437", + "pr_number": 108437, + "areas": [ + "apiserver", + "cloudprovider", + "provider/gcp", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider" + ], + "duplicate": true + }, + "108441": { + "commit": "a504daa0484d35d07f144e3f65f5a481570e96ec", + "text": "Feature of `PodOverhead` is graduated to GA", + "markdown": "Feature of `PodOverhead` is graduated to GA ([#108441](https://github.com/kubernetes/kubernetes/pull/108441), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/688-pod-overhead", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108441", + "pr_number": 108441, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108445": { + "commit": "24a71990e02edbfd0a05f4abfdedcab991525874", + "text": "CSIStorageCapacity.storage.k8s.io: The v1beta1 version of this API is deprecated in favor of v1, and will be removed in v1.27. If a CSI driver supports storage capacity tracking, then it must get deployed with a release of external-provisioner that supports the v1 API.", + "markdown": "CSIStorageCapacity.storage.k8s.io: The v1beta1 version of this API is deprecated in favor of v1, and will be removed in v1.27. If a CSI driver supports storage capacity tracking, then it must get deployed with a release of external-provisioner that supports the v1 API. ([#108445](https://github.com/kubernetes/kubernetes/pull/108445), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1472", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/storage/storage-capacity/", + "type": "official" + }, + { + "description": "[Other doc]", + "url": "https://kubernetes-csi.github.io/docs/storage-capacity-tracking.html", + "type": "external" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108445", + "pr_number": 108445, + "areas": [ + "test", + "apiserver", + "conformance", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "api-machinery", + "auth", + "testing", + "architecture" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108448": { + "commit": "6224458dc2440b580012434ea1ed951af98d86f3", + "text": "The API server's deprecated `--deserialization-cache-size` flag is now removed.", + "markdown": "The API server's deprecated `--deserialization-cache-size` flag is now removed. ([#108448](https://github.com/kubernetes/kubernetes/pull/108448), [@ialidzhikov](https://github.com/ialidzhikov))", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108448", + "pr_number": 108448, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "108450": { + "commit": "da23196df6d519c657a27c68932c62aa35e87dc5", + "text": "Endpoints and EndpointSlice controllers no longer populate [resourceVersion of targetRef](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-reference/#ObjectReference) in Endpoints and EndpointSlices", + "markdown": "Endpoints and EndpointSlice controllers no longer populate [resourceVersion of targetRef](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-reference/#ObjectReference) in Endpoints and EndpointSlices ([#108450](https://github.com/kubernetes/kubernetes/pull/108450), [@tnqn](https://github.com/tnqn))", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108450", + "pr_number": 108450, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "108455": { + "commit": "9bb5823b83c2929b059498b1e59c08261257126b", + "text": "Fix a race in the timeout handler that could lead to kube-apiserver crashes", + "markdown": "Fix a race in the timeout handler that could lead to kube-apiserver crashes ([#108455](https://github.com/kubernetes/kubernetes/pull/108455), [@Argh4k](https://github.com/Argh4k))", + "author": "Argh4k", + "author_url": "https://github.com/Argh4k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108455", + "pr_number": 108455, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "108457": { + "commit": "ad46b4f9215ce34fe316e4473767531456a81188", + "text": "API server's deprecated `--target-ram-mb` flag is now removed.", + "markdown": "API server's deprecated `--target-ram-mb` flag is now removed. ([#108457](https://github.com/kubernetes/kubernetes/pull/108457), [@ialidzhikov](https://github.com/ialidzhikov))", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108457", + "pr_number": 108457, + "areas": [ + "test", + "apiserver", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scalability", + "api-machinery", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "108458": { + "commit": "897f2f78a5c7ff659dfce23f53dd36b9261a23c9", + "text": "When invoked with `-list-images`, the `e2e.test` binary now also lists the images that might be needed for storage tests.", + "markdown": "When invoked with `-list-images`, the `e2e.test` binary now also lists the images that might be needed for storage tests. ([#108458](https://github.com/kubernetes/kubernetes/pull/108458), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108458", + "pr_number": 108458, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + }, + "108482": { + "commit": "866e42310dd6b68c740d6f2d0acd4a4ffb3e4ab8", + "text": "Added CEL runtime cost calculation into CustomerResource validation. CustomerResource validation will fail if runtime cost exceeds the budget.", + "markdown": "Added CEL runtime cost calculation into CustomerResource validation. CustomerResource validation will fail if runtime cost exceeds the budget. ([#108482](https://github.com/kubernetes/kubernetes/pull/108482), [@cici37](https://github.com/cici37))", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108482", + "pr_number": 108482, + "areas": [ + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "108486": { + "commit": "c00975370a5bf81328dc56396ee05edc7306e238", + "text": "Non-graceful node shutdown handling is enabled for stateful workload failovers", + "markdown": "Non-graceful node shutdown handling is enabled for stateful workload failovers ([#108486](https://github.com/kubernetes/kubernetes/pull/108486), [@sonasingh46](https://github.com/sonasingh46))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2268-non-graceful-shutdown", + "type": "KEP" + } + ], + "author": "sonasingh46", + "author_url": "https://github.com/sonasingh46", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108486", + "pr_number": 108486, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "node", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108493": { + "commit": "a2a774d3d194de4b7265c0bed293b3edc4393696", + "text": "kubectl now supports shell completion for the \u003ctype\u003e/\u003cname\u003e format for specifying resources.\nkubectl now provides shell completion for container names following the `--container/-c` flag of the `exec` command.\nkubectl's shell completion now suggests resource types for commands that only apply to pods.", + "markdown": "Kubectl now supports shell completion for the \u003ctype\u003e/\u003cname\u003e format for specifying resources.\n kubectl now provides shell completion for container names following the `--container/-c` flag of the `exec` command.\n kubectl's shell completion now suggests resource types for commands that only apply to pods. ([#108493](https://github.com/kubernetes/kubernetes/pull/108493), [@marckhouzam](https://github.com/marckhouzam))", + "author": "marckhouzam", + "author_url": "https://github.com/marckhouzam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108493", + "pr_number": 108493, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "108496": { + "commit": "7152825c0695d62fe06b47cc3e1699095290d73f", + "text": "kube-proxy will no longer hold service node ports open on the node. Users are still advised not to run any listener on node ports range used by kube-proxy.", + "markdown": "Kube-proxy will no longer hold service node ports open on the node. Users are still advised not to run any listener on node ports range used by kube-proxy. ([#108496](https://github.com/kubernetes/kubernetes/pull/108496), [@khenidak](https://github.com/khenidak))", + "author": "khenidak", + "author_url": "https://github.com/khenidak", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108496", + "pr_number": 108496, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "108505": { + "commit": "bb3800f0225dcc025b9bb01f8525f99e5c36d5ce", + "text": "Re-adds response status and headers on verbose kubectl responses", + "markdown": "Re-adds response status and headers on verbose kubectl responses ([#108505](https://github.com/kubernetes/kubernetes/pull/108505), [@rikatz](https://github.com/rikatz))", + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108505", + "pr_number": 108505, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cli" + ], + "duplicate": true + }, + "108506": { + "commit": "afbe2935392ce36ada61b8dee2b08feab85d85b5", + "text": "print `\u003cdefault\u003e` as the value in case kubectl describe ingress shows `default-backend:80` when no default backend is present", + "markdown": "Print `\u003cdefault\u003e` as the value in case kubectl describe ingress shows `default-backend:80` when no default backend is present ([#108506](https://github.com/kubernetes/kubernetes/pull/108506), [@jlsong01](https://github.com/jlsong01))", + "author": "jlsong01", + "author_url": "https://github.com/jlsong01", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108506", + "pr_number": 108506, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "108522": { + "commit": "8168c68bb6dcf313f74e2d20cc6711d7aca7cf77", + "text": "Support for gRPC probes is now in beta. GRPCContainerProbe feature gate is enabled by default.", + "markdown": "Support for gRPC probes is now in beta. GRPCContainerProbe feature gate is enabled by default. ([#108522](https://github.com/kubernetes/kubernetes/pull/108522), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108522", + "pr_number": 108522, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108531": { + "commit": "ea006f5246dded2db606dac7c642041cfbe1ccb1", + "text": "SPDY transport in client-go will no longer follow redirects.", + "markdown": "SPDY transport in client-go will no longer follow redirects. ([#108531](https://github.com/kubernetes/kubernetes/pull/108531), [@tallclair](https://github.com/tallclair))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1558-streaming-proxy-redirects", + "type": "KEP" + } + ], + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108531", + "pr_number": 108531, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "api-machinery" + ], + "duplicate": true + }, + "108561": { + "commit": "7f1907c4c61e9166c4d8498ec44ecd08338136c9", + "text": "Added support for `btrfs` resizing", + "markdown": "Added support for `btrfs` resizing ([#108561](https://github.com/kubernetes/kubernetes/pull/108561), [@RomanBednar](https://github.com/RomanBednar))", + "author": "RomanBednar", + "author_url": "https://github.com/RomanBednar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108561", + "pr_number": 108561, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true + }, + "108611": { + "commit": "dd2596e40d1fbb92fa4825145c4cf8cda1e559fa", + "text": "topology translation of in-tree vSphere volume to vSphere CSI.", + "markdown": "Topology translation of in-tree vSphere volume to vSphere CSI. ([#108611](https://github.com/kubernetes/kubernetes/pull/108611), [@divyenpatel](https://github.com/divyenpatel))", + "author": "divyenpatel", + "author_url": "https://github.com/divyenpatel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108611", + "pr_number": 108611, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "storage" + ], + "duplicate_kind": true + }, + "108613": { + "commit": "0b8a665d508a861713398d0480e4789802c70607", + "text": "Fixed a bug that out-of-tree plugin is misplaced when using scheduler v1beta3 config", + "markdown": "Fixed a bug that out-of-tree plugin is misplaced when using scheduler v1beta3 config ([#108613](https://github.com/kubernetes/kubernetes/pull/108613), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108613", + "pr_number": 108613, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true + }, + "108614": { + "commit": "b4f7da1ec8e01700924a1ab60cf7d12b5af8e3bb", + "text": "Remove support for `node-expansion` between `node-stage` and `node-publish`", + "markdown": "Remove support for `node-expansion` between `node-stage` and `node-publish` ([#108614](https://github.com/kubernetes/kubernetes/pull/108614), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108614", + "pr_number": 108614, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "108616": { + "commit": "b9817c801bcbf9efbea8da1a5b68c83b3ee4ace6", + "text": "The `client.authentication.k8s.io/v1alpha1` ExecCredential has been removed. If you are using a client-go credential plugin that relies on the v1alpha1 API please contact the distributor of your plugin for instructions on how to migrate to the v1 API.", + "markdown": "The `client.authentication.k8s.io/v1alpha1` ExecCredential has been removed. If you are using a client-go credential plugin that relies on the v1alpha1 API please contact the distributor of your plugin for instructions on how to migrate to the v1 API. ([#108616](https://github.com/kubernetes/kubernetes/pull/108616), [@margocrawf](https://github.com/margocrawf))", + "author": "margocrawf", + "author_url": "https://github.com/margocrawf", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108616", + "pr_number": 108616, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change", + "deprecation" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "duplicate_kind": true + }, + "108617": { + "commit": "95e30f66c300c76ce21c0ca0e8bc4bf4a45e028f", + "text": "CEL regex patterns in x-kubernetes-valiation rules are compiled when CRDs are created/updated if the pattern is provided as a string constant in the expression. Any regex compile errors are reported as a CRD create/update validation error.", + "markdown": "CEL regex patterns in x-kubernetes-valiation rules are compiled when CRDs are created/updated if the pattern is provided as a string constant in the expression. Any regex compile errors are reported as a CRD create/update validation error. ([#108617](https://github.com/kubernetes/kubernetes/pull/108617), [@jpbetz](https://github.com/jpbetz))", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108617", + "pr_number": 108617, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "108628": { + "commit": "aa343fa6324e2f90bca20d9754b8345e288e81f7", + "text": "Improved logging when volume times out waiting for attach/detach.", + "markdown": "Improved logging when volume times out waiting for attach/detach. ([#108628](https://github.com/kubernetes/kubernetes/pull/108628), [@RomanBednar](https://github.com/RomanBednar))", + "author": "RomanBednar", + "author_url": "https://github.com/RomanBednar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108628", + "pr_number": 108628, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "108631": { + "commit": "e9af39914797d40766b166e18dac3a441a2bf5d4", + "text": "kube-apiserver: removed `apf_fd` from server logs which could contain data identifying the requesting user", + "markdown": "Kube-apiserver: removed `apf_fd` from server logs which could contain data identifying the requesting user ([#108631](https://github.com/kubernetes/kubernetes/pull/108631), [@jupblb](https://github.com/jupblb))", + "author": "jupblb", + "author_url": "https://github.com/jupblb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108631", + "pr_number": 108631, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "108648": { + "commit": "d7bd0d4f520e3f8031f33d8c19badda2889122da", + "text": "PreFilter extension in the scheduler framework now returns not only status but also PreFilterResult", + "markdown": "PreFilter extension in the scheduler framework now returns not only status but also PreFilterResult ([#108648](https://github.com/kubernetes/kubernetes/pull/108648), [@ahg-g](https://github.com/ahg-g))", + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108648", + "pr_number": 108648, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true + }, + "108662": { + "commit": "9642a1f84b97582c29142a9c04d0c25c5632ad08", + "text": "Fix to allow `fsGroup` to be applied for CSI Inline Volumes", + "markdown": "Fix to allow `fsGroup` to be applied for CSI Inline Volumes ([#108662](https://github.com/kubernetes/kubernetes/pull/108662), [@dobsonj](https://github.com/dobsonj))", + "author": "dobsonj", + "author_url": "https://github.com/dobsonj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108662", + "pr_number": 108662, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "108691": { + "commit": "57a739bdf209e544133add5cd0759fd00650de7c", + "text": "Apply ProxyTerminatingEndpoints to all traffic policies (external, internal, cluster, local).", + "markdown": "Apply ProxyTerminatingEndpoints to all traffic policies (external, internal, cluster, local). ([#108691](https://github.com/kubernetes/kubernetes/pull/108691), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108691", + "pr_number": 108691, + "areas": [ + "test", + "ipvs" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "testing" + ], + "feature": true, + "duplicate": true + }, + "108693": { + "commit": "12667440025c5e9dcfb49a3457b701c8d374ed85", + "text": "Call `NodeExpand` on all nodes in case of RWX volumes", + "markdown": "Call `NodeExpand` on all nodes in case of RWX volumes ([#108693](https://github.com/kubernetes/kubernetes/pull/108693), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108693", + "pr_number": 108693, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node", + "apps" + ], + "duplicate": true + }, + "108701": { + "commit": "2786b78b5a242452e6c7eda5a310609f77a482b9", + "text": "Added PreemptionPolicy in PriorityClass describe", + "markdown": "Added PreemptionPolicy in PriorityClass describe ([#108701](https://github.com/kubernetes/kubernetes/pull/108701), [@denkensk](https://github.com/denkensk))", + "author": "denkensk", + "author_url": "https://github.com/denkensk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108701", + "pr_number": 108701, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "cli" + ], + "duplicate": true + }, + "108717": { + "commit": "bb67b5e9e830fba239c1e7957e5dcbefdce92a37", + "text": "The metadata.clusterName field is deprecated. This field has always been unwritable and always blank, but its presence is confusing, so we will remove it next release. Out of an abundance of caution, this release we have merely changed the name in the go struct to ensure any accidental client uses are found before complete removal.", + "markdown": "The metadata.clusterName field is deprecated. This field has always been unwritable and always blank, but its presence is confusing, so we will remove it next release. Out of an abundance of caution, this release we have merely changed the name in the go struct to ensure any accidental client uses are found before complete removal. ([#108717](https://github.com/kubernetes/kubernetes/pull/108717), [@lavalamp](https://github.com/lavalamp))", + "author": "lavalamp", + "author_url": "https://github.com/lavalamp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108717", + "pr_number": 108717, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change", + "deprecation" + ], + "sigs": [ + "scheduling", + "api-machinery", + "auth", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "108724": { + "commit": "92c30bf6bdefce5d3e2e29aa3c0c0989cd313827", + "text": "CycleState is now optimized for \"write once and read many times\".", + "markdown": "CycleState is now optimized for \"write once and read many times\". ([#108724](https://github.com/kubernetes/kubernetes/pull/108724), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108724", + "pr_number": 108724, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "108736": { + "commit": "9fe98d8babc7b8b8a766b8c48e4ca7bc75ef81bc", + "text": "The AnyVolumeDataSource feature is now beta, and the feature gate is enabled by default. In order to provide user feedback on PVCs with data sources, deployers must install the VolumePopulators CRD and the data-source-validator controller.", + "markdown": "The AnyVolumeDataSource feature is now beta, and the feature gate is enabled by default. In order to provide user feedback on PVCs with data sources, deployers must install the VolumePopulators CRD and the data-source-validator controller. ([#108736](https://github.com/kubernetes/kubernetes/pull/108736), [@bswartz](https://github.com/bswartz))", + "author": "bswartz", + "author_url": "https://github.com/bswartz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108736", + "pr_number": 108736, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108747": { + "commit": "c28cfea07d1db48764656a2b241e7266e17cdbbc", + "text": "The `TopologyAwareHints` feature gate is now enabled by default. This will allow users to opt-in to Topology Aware Hints by setting the `service.kubernetes.io/topology-aware-hints` on a Service. This will not affect any Services without that annotation set.", + "markdown": "The `TopologyAwareHints` feature gate is now enabled by default. This will allow users to opt-in to Topology Aware Hints by setting the `service.kubernetes.io/topology-aware-hints` on a Service. This will not affect any Services without that annotation set. ([#108747](https://github.com/kubernetes/kubernetes/pull/108747), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108747", + "pr_number": 108747, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "108748": { + "commit": "6c67869ff2f797efeb9a59a594c2413a876ea8e0", + "text": "fixed `--retries` functionality for negative values in `kubectl cp`", + "markdown": "Fixed `--retries` functionality for negative values in `kubectl cp` ([#108748](https://github.com/kubernetes/kubernetes/pull/108748), [@atiratree](https://github.com/atiratree))", + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108748", + "pr_number": 108748, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "108752": { + "commit": "4348c8ecaf87d91503718a42a930c397c3c82569", + "text": "Fix issue where the job controller might not remove the job tracking finalizer from pods when deleting a job, or when the pod is orphan", + "markdown": "Fix issue where the job controller might not remove the job tracking finalizer from pods when deleting a job, or when the pod is orphan ([#108752](https://github.com/kubernetes/kubernetes/pull/108752), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108752", + "pr_number": 108752, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "108758": { + "commit": "b0254c8a0b202083b12fbfaae7ff1ba4f7288ca0", + "text": "add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state to kubelet", + "markdown": "Add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state to kubelet ([#108758](https://github.com/kubernetes/kubernetes/pull/108758), [@fengzixu](https://github.com/fengzixu))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/pull/2900", + "type": "KEP" + } + ], + "author": "fengzixu", + "author_url": "https://github.com/fengzixu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108758", + "pr_number": 108758, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "108761": { + "commit": "aface3ab99b5c8c6ac8c4892c8019742075a461d", + "text": "Set `PodMaxUnschedulableQDuration` as 5 min.", + "markdown": "Set `PodMaxUnschedulableQDuration` as 5 min. ([#108761](https://github.com/kubernetes/kubernetes/pull/108761), [@denkensk](https://github.com/denkensk))", + "author": "denkensk", + "author_url": "https://github.com/denkensk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108761", + "pr_number": 108761, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "108769": { + "commit": "4d08582d1fa21e1f5887e73380001ac827371553", + "text": "kubeadm: fixed a bug where Windows nodes fail to join an IPv6 cluster due to preflight errors", + "markdown": "Kubeadm: fixed a bug where Windows nodes fail to join an IPv6 cluster due to preflight errors ([#108769](https://github.com/kubernetes/kubernetes/pull/108769), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108769", + "pr_number": 108769, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "108772": { + "commit": "b0c435c8c48587edaeade94937525e03ccff9167", + "text": "bug: client-go clientset was not defaulting to the user agent, and was using the default golang agent for all the requests.", + "markdown": "Bug: client-go clientset was not defaulting to the user agent, and was using the default golang agent for all the requests. ([#108772](https://github.com/kubernetes/kubernetes/pull/108772), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108772", + "pr_number": 108772, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true + }, + "108782": { + "commit": "0053a0e0fd55d4772074b7e8dbdcf3866941d674", + "text": "The CertificateSigningRequest `spec.expirationSeconds` API field has graduated to GA. The `CSRDuration` feature gate for the field is now unconditionally enabled and will be removed in 1.26.", + "markdown": "The CertificateSigningRequest `spec.expirationSeconds` API field has graduated to GA. The `CSRDuration` feature gate for the field is now unconditionally enabled and will be removed in 1.26. ([#108782](https://github.com/kubernetes/kubernetes/pull/108782), [@cfryanr](https://github.com/cfryanr))", + "author": "cfryanr", + "author_url": "https://github.com/cfryanr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108782", + "pr_number": 108782, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108817": { + "commit": "bd1e7dc3cb3d8115f3cef1210e12fa0c42ca14a7", + "text": "`kubectl version` now includes information on the embedded version of Kustomize", + "markdown": "`kubectl version` now includes information on the embedded version of Kustomize ([#108817](https://github.com/kubernetes/kubernetes/pull/108817), [@KnVerey](https://github.com/KnVerey))", + "author": "KnVerey", + "author_url": "https://github.com/KnVerey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108817", + "pr_number": 108817, + "areas": [ + "test", + "kubectl", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "108820": { + "commit": "e3982ce472af31efe0cfb5165271c84f1ace0b0f", + "text": "Remove deprecated `--serviceaccount`, `--hostport`, `--requests` and `--limits` from kubectl run.", + "markdown": "Remove deprecated `--serviceaccount`, `--hostport`, `--requests` and `--limits` from kubectl run. ([#108820](https://github.com/kubernetes/kubernetes/pull/108820), [@mozillazg](https://github.com/mozillazg))", + "author": "mozillazg", + "author_url": "https://github.com/mozillazg", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108820", + "pr_number": 108820, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "108829": { + "commit": "80746c762227a19fd4588e39b93eb9049dbff8ce", + "text": "The scheduler framework option `runAllFilters` is removed.", + "markdown": "The scheduler framework option `runAllFilters` is removed. ([#108829](https://github.com/kubernetes/kubernetes/pull/108829), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108829", + "pr_number": 108829, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "108831": { + "commit": "dbd37cb8a8b6a54a7637ec6a6471979ce4260929", + "text": "Skip re-allocate logic if pod is already removed to avoid panic", + "markdown": "Skip re-allocate logic if pod is already removed to avoid panic ([#108831](https://github.com/kubernetes/kubernetes/pull/108831), [@waynepeking348](https://github.com/waynepeking348))", + "author": "waynepeking348", + "author_url": "https://github.com/waynepeking348", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108831", + "pr_number": 108831, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "108847": { + "commit": "68cf2a60c60725ce6943b49a10bf8c65bdff56b9", + "text": "Kubelet external Credential Provider feature is moved to Beta. Credential Provider Plugin and Credential Provider Config API's updated from v1alpha1 to v1beta1 with no API changes.", + "markdown": "Kubelet external Credential Provider feature is moved to Beta. Credential Provider Plugin and Credential Provider Config API's updated from v1alpha1 to v1beta1 with no API changes. ([#108847](https://github.com/kubernetes/kubernetes/pull/108847), [@adisky](https://github.com/adisky))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2133-kubelet-credential-providers", + "type": "KEP" + } + ], + "author": "adisky", + "author_url": "https://github.com/adisky", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108847", + "pr_number": 108847, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "node", + "api-machinery" + ], + "duplicate": true + }, + "108859": { + "commit": "0a6309044585e52d88c4f414d84613ce903a587b", + "text": "Skip x-kubernetes-validations rules if having fundamental error against the OpenAPIv3 schema.", + "markdown": "Skip x-kubernetes-validations rules if having fundamental error against the OpenAPIv3 schema. ([#108859](https://github.com/kubernetes/kubernetes/pull/108859), [@cici37](https://github.com/cici37))", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108859", + "pr_number": 108859, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108870": { + "commit": "5984099509fde391ed63769efc0b518a8a5736c3", + "text": "Kubernetes 1.24 bumped version of golang it is compiled with to go1.18, which introduced significant changes to its garbage collection algorithm. As a result, we observed an increase in memory usage for kube-apiserver in larger an heavily loaded clusters up to ~25% (with the benefit of API call latencies drop by up to 10x on 99th percentiles). If the memory increase is not acceptable for you you can mitigate by setting GOGC env variable (for our tests using GOGC=63 brings memory usage back to original value, although the exact value may depend on usage patterns on your cluster).", + "markdown": "Kubernetes 1.24 bumped version of golang it is compiled with to go1.18, which introduced significant changes to its garbage collection algorithm. As a result, we observed an increase in memory usage for kube-apiserver in larger an heavily loaded clusters up to ~25% (with the benefit of API call latencies drop by up to 10x on 99th percentiles). If the memory increase is not acceptable for you you can mitigate by setting GOGC env variable (for our tests using GOGC=63 brings memory usage back to original value, although the exact value may depend on usage patterns on your cluster). ([#108870](https://github.com/kubernetes/kubernetes/pull/108870), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108870", + "pr_number": 108870, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "108889": { + "commit": "ea0dc6ed417c7cd398cd5e02cdaf04721265eee2", + "text": "The `ServerSideFieldValidation` feature has graduated to beta and is now enabled by default. Kubectl 1.24 and newer will use server-side validation instead of client-side validation when writing to API servers with the feature enabled.", + "markdown": "The `ServerSideFieldValidation` feature has graduated to beta and is now enabled by default. Kubectl 1.24 and newer will use server-side validation instead of client-side validation when writing to API servers with the feature enabled. ([#108889](https://github.com/kubernetes/kubernetes/pull/108889), [@kevindelgado](https://github.com/kevindelgado))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2885", + "type": "KEP" + } + ], + "author": "kevindelgado", + "author_url": "https://github.com/kevindelgado", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108889", + "pr_number": 108889, + "areas": [ + "test", + "apiserver", + "kubectl", + "conformance" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "cli", + "testing", + "architecture" + ], + "duplicate": true + }, + "108898": { + "commit": "8f12e4a44bbe5f5f2af2c7c5e63cb060da25748d", + "text": "OpenAPI definitions served by kube-apiserver now include enum types by default.", + "markdown": "OpenAPI definitions served by kube-apiserver now include enum types by default. ([#108898](https://github.com/kubernetes/kubernetes/pull/108898), [@jiahuif](https://github.com/jiahuif))", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108898", + "pr_number": 108898, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "108919": { + "commit": "2161071d0b985a033c5a81df122734da31ffce18", + "text": "Rename unschedulableQ to unschedulablePods", + "markdown": "Rename unschedulableQ to unschedulablePods ([#108919](https://github.com/kubernetes/kubernetes/pull/108919), [@denkensk](https://github.com/denkensk))", + "author": "denkensk", + "author_url": "https://github.com/denkensk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108919", + "pr_number": 108919, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "108927": { + "commit": "d9819f05d0154677aee3e643c5498511fabce38a", + "text": "Record requests rejected with 429 in the apiserver_request_total metric", + "markdown": "Record requests rejected with 429 in the apiserver_request_total metric ([#108927](https://github.com/kubernetes/kubernetes/pull/108927), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108927", + "pr_number": 108927, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "108929": { + "commit": "c239b406f002956ddc0a7d94fa4fe1b1592f96da", + "text": "Move volume expansion feature to GA", + "markdown": "Move volume expansion feature to GA ([#108929](https://github.com/kubernetes/kubernetes/pull/108929), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108929", + "pr_number": 108929, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "108930": { + "commit": "978d9683f5c253cf62225dc0656c0bfeb2a7d339", + "text": "Introduction of a new \"sync_proxy_rules_no_local_endpoints_total\" proxy metric. This metric represents the number of services with no internal endpoints. The \"traffic_policy\" label will contain both \"internal\" or \"external\".", + "markdown": "Introduction of a new \"sync_proxy_rules_no_local_endpoints_total\" proxy metric. This metric represents the number of services with no internal endpoints. The \"traffic_policy\" label will contain both \"internal\" or \"external\". ([#108930](https://github.com/kubernetes/kubernetes/pull/108930), [@MaxRenaud](https://github.com/MaxRenaud))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/c62cfc32ad2d9d247ade41d0f6004f3de8fd72a6/keps/sig-network/2086-service-internal-traffic-policy/README.md", + "type": "KEP" + } + ], + "author": "MaxRenaud", + "author_url": "https://github.com/MaxRenaud", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108930", + "pr_number": 108930, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "conformance", + "code-generation", + "ipvs", + "e2e-test-framework", + "dependency", + "network-policy" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "scheduling", + "storage", + "node", + "api-machinery", + "autoscaling", + "auth", + "apps", + "windows", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108953": { + "commit": "8b158fa7304906f0da30f2a0e007be3ccced7354", + "text": "Remove insecure serving configuration from cloud-provider package, which is consumed by cloud-controller-managers.", + "markdown": "Remove insecure serving configuration from cloud-provider package, which is consumed by cloud-controller-managers. ([#108953](https://github.com/kubernetes/kubernetes/pull/108953), [@nckturner](https://github.com/nckturner))", + "author": "nckturner", + "author_url": "https://github.com/nckturner", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108953", + "pr_number": 108953, + "areas": [ + "test", + "cloudprovider" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "testing", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "108965": { + "commit": "bfe649dbc07a3707fe342b971a1dad422e6cb95f", + "text": "None.", + "markdown": "None. ([#108965](https://github.com/kubernetes/kubernetes/pull/108965), [@adisky](https://github.com/adisky)) [SIG Node and Testing]", + "author": "adisky", + "author_url": "https://github.com/adisky", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108965", + "pr_number": 108965, + "areas": [ + "test" + ], + "kinds": [ + "failing-test" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "108987": { + "commit": "5a651eacbc7176c5922ec9c9137d00fbbbc2b683", + "text": "Deprecate kubectl version long output, will be replaced with kubectl version ` --short`. Users requiring full output should use `--output=yaml|json` instead.", + "markdown": "Deprecate kubectl version long output, will be replaced with kubectl version ` --short`. Users requiring full output should use `--output=yaml|json` instead. ([#108987](https://github.com/kubernetes/kubernetes/pull/108987), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108987", + "pr_number": 108987, + "areas": [ + "kubectl" + ], + "sigs": [ + "cli" + ] + }, + "108988": { + "commit": "736a02316715d7eb9a8bd34c6af123f07c1d34d1", + "text": "update the k8s.io/system-validators library to v1.7.0", + "markdown": "Update the k8s.io/system-validators library to v1.7.0 ([#108988](https://github.com/kubernetes/kubernetes/pull/108988), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108988", + "pr_number": 108988, + "areas": [ + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "108992": { + "commit": "656dc213ce43f1ecfa7f54eb1f01864468f8f0e2", + "text": "Adds `OpenAPIV3SchemaInterface` to `DiscoveryClient` and its variants for fetching OpenAPI v3 schema documents.", + "markdown": "Adds `OpenAPIV3SchemaInterface` to `DiscoveryClient` and its variants for fetching OpenAPI v3 schema documents. ([#108992](https://github.com/kubernetes/kubernetes/pull/108992), [@alexzielenski](https://github.com/alexzielenski))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2896", + "type": "KEP" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108992", + "pr_number": 108992, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "kubeadm", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "108994": { + "commit": "1ff499ac1382ca7dd62022d5f256e19fcc41c40d", + "text": "Updates `kubectl kustomize` and `kubectl apply -k` to Kustomize v4.5.4", + "markdown": "Updates `kubectl kustomize` and `kubectl apply -k` to Kustomize v4.5.4 ([#108994](https://github.com/kubernetes/kubernetes/pull/108994), [@KnVerey](https://github.com/KnVerey))", + "documentation": [ + { + "url": "https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.5.4", + "type": "external" + } + ], + "author": "KnVerey", + "author_url": "https://github.com/KnVerey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108994", + "pr_number": 108994, + "areas": [ + "kubectl", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "108995": { + "commit": "5b8dbfbbcf304bd0f260a9e99e3555dce8f46514", + "text": "The infrastructure for contextual logging is complete (feature gate implemented, JSON backend ready).", + "markdown": "The infrastructure for contextual logging is complete (feature gate implemented, JSON backend ready). ([#108995](https://github.com/kubernetes/kubernetes/pull/108995), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3077", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108995", + "pr_number": 108995, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "scheduling", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "109018": { + "commit": "24cb73bb9027b089e05d27cc29be0987ab8153ae", + "text": "Deprecate apiserver_dropped_requests_total metric. The same data can be read from apiserver_request_terminations_total metric.", + "markdown": "Deprecate apiserver_dropped_requests_total metric. The same data can be read from apiserver_request_terminations_total metric. ([#109018](https://github.com/kubernetes/kubernetes/pull/109018), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109018", + "pr_number": 109018, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "109019": { + "commit": "58847ef7025d08cf45a6b9def5df48f2ccc3f950", + "text": "Custom resource requests with `fieldValidation=Strict` consistently require `apiVersion` and `kind`, matching non-strict requests", + "markdown": "Custom resource requests with `fieldValidation=Strict` consistently require `apiVersion` and `kind`, matching non-strict requests ([#109019](https://github.com/kubernetes/kubernetes/pull/109019), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109019", + "pr_number": 109019, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "109024": { + "commit": "e0ca5cfd73bd046ee5fbdef50e073842e6fbc52f", + "text": "Kubernetes 1.24 is built with go1.18, which will no longer validate certificates signed with a SHA-1 hash algorithm by default. See https://golang.org/doc/go1.18#sha1 for more details. If you are using certificates like this in admission or conversion", + "markdown": "Kubernetes 1.24 is built with go1.18, which will no longer validate certificates signed with a SHA-1 hash algorithm by default. See https://golang.org/doc/go1.18#sha1 for more details. If you are using certificates like this in admission or conversion ([#109024](https://github.com/kubernetes/kubernetes/pull/109024), [@stlaz](https://github.com/stlaz))", + "documentation": [ + { + "description": "[Other doc]", + "url": "https://tip.golang.org/doc/go1.18#sha1", + "type": "external" + } + ], + "author": "stlaz", + "author_url": "https://github.com/stlaz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109024", + "pr_number": 109024, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "109029": { + "commit": "fe8a663860e624a974fe15e224938b43dc6b8bd4", + "text": "Updated runc to 1.1.0 and updated cadvisor to 0.44.0", + "markdown": "Updated runc to 1.1.0 and updated cadvisor to 0.44.0 ([#109029](https://github.com/kubernetes/kubernetes/pull/109029), [@ehashman](https://github.com/ehashman))", + "author": "ehashman", + "author_url": "https://github.com/ehashman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109029", + "pr_number": 109029, + "areas": [ + "test", + "kubelet", + "kubectl", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "cli", + "testing" + ], + "duplicate": true + }, + "109031": { + "commit": "904c30562a9a34d26ff3e76db29d00daea2e0f60", + "text": "OpenAPI V3 is turned on by default", + "markdown": "OpenAPI V3 is turned on by default ([#109031](https://github.com/kubernetes/kubernetes/pull/109031), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109031", + "pr_number": 109031, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "kubeadm", + "conformance", + "code-generation", + "ipvs", + "e2e-test-framework", + "dependency", + "network-policy" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "autoscaling", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "109035": { + "commit": "78889cd1bb1c823a7f1292d325a31695fc826084", + "text": "Enabled beta feature HonorPVReclaimPolicy by default.", + "markdown": "Enabled beta feature HonorPVReclaimPolicy by default. ([#109035](https://github.com/kubernetes/kubernetes/pull/109035), [@deepakkinni](https://github.com/deepakkinni))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3181", + "type": "KEP" + } + ], + "author": "deepakkinni", + "author_url": "https://github.com/deepakkinni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109035", + "pr_number": 109035, + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "apps" + ], + "feature": true, + "duplicate": true + }, + "109050": { + "commit": "97bf2986cdeae0e7da70659d70375e0770b14a5e", + "text": "client-go: if resetting the body fails before a retry, an error is now surfaced to the user.", + "markdown": "Client-go: if resetting the body fails before a retry, an error is now surfaced to the user. ([#109050](https://github.com/kubernetes/kubernetes/pull/109050), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", + "author": "MadhavJivrajani", + "author_url": "https://github.com/MadhavJivrajani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109050", + "pr_number": 109050, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "109059": { + "commit": "4fdca04f3576d84bf4900197e9c657a6f52c8488", + "text": "The kubelet now creates an iptables chain named `KUBE-IPTABLES-HINT` in\nthe `mangle` table. Containerized components that need to modify iptables\nrules in the host network namespace can use the existence of this chain\nto more-reliably determine whether the system is using iptables-legacy or\niptables-nft.", + "markdown": "The kubelet now creates an iptables chain named `KUBE-IPTABLES-HINT` in\n the `mangle` table. Containerized components that need to modify iptables\n rules in the host network namespace can use the existence of this chain\n to more-reliably determine whether the system is using iptables-legacy or\n iptables-nft. ([#109059](https://github.com/kubernetes/kubernetes/pull/109059), [@danwinship](https://github.com/danwinship))", + "documentation": [ + { + "description": "[KEP]: (in progress)", + "url": "https://github.com/kubernetes/enhancements/pull/3179", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109059", + "pr_number": 109059, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "node" + ], + "feature": true, + "duplicate": true + }, + "109060": { + "commit": "f2e5c16545027fbe04cc33d4ef59cd01de6b9967", + "text": "Users who look at iptables dumps will see some changes in the naming and structure of rules.", + "markdown": "Users who look at iptables dumps will see some changes in the naming and structure of rules. ([#109060](https://github.com/kubernetes/kubernetes/pull/109060), [@thockin](https://github.com/thockin))", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109060", + "pr_number": 109060, + "areas": [ + "test", + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true + }, + "109072": { + "commit": "d4ac0ebecb5142330f1827120e3e6315a8b69caf", + "text": "Leader Migration is now GA. All new configuration files onwards should use version v1.", + "markdown": "Leader Migration is now GA. All new configuration files onwards should use version v1. ([#109072](https://github.com/kubernetes/kubernetes/pull/109072), [@jiahuif](https://github.com/jiahuif))", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109072", + "pr_number": 109072, + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "109074": { + "commit": "f25c0e5f094485f710e80377fbb833d3eeed7492", + "text": "kubeadm: added the flag `--experimental-initial-corrupt-check` to etcd static Pod manifests to ensure etcd member data consistency", + "markdown": "Kubeadm: added the flag `--experimental-initial-corrupt-check` to etcd static Pod manifests to ensure etcd member data consistency ([#109074](https://github.com/kubernetes/kubernetes/pull/109074), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109074", + "pr_number": 109074, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "109089": { + "commit": "c290874532839f5414f32e968d97830600a2d4cc", + "text": "vSphere releases less than 7.0u2 are deprecated as of v1.24. Please consider upgrading vSphere to 7.0u2 or above. vSphere CSI Driver requires minimum vSphere 7.0u2.\n\nGeneral Support for vSphere 6.7 will end on October 15, 2022. vSphere 6.7 Update 3 is deprecated in Kubernetes v1.24. Customers are recommended to upgrade vSphere (both ESXi and vCenter) to 7.0u2 or above. vSphere CSI Driver 2.2.3 and higher supports CSI Migration.\n\nSupport for these deprecations will be available till October 15, 2022.", + "markdown": "VSphere releases less than 7.0u2 are deprecated as of v1.24. Please consider upgrading vSphere to 7.0u2 or above. vSphere CSI Driver requires minimum vSphere 7.0u2.\n \n General Support for vSphere 6.7 will end on October 15, 2022. vSphere 6.7 Update 3 is deprecated in Kubernetes v1.24. Customers are recommended to upgrade vSphere (both ESXi and vCenter) to 7.0u2 or above. vSphere CSI Driver 2.2.3 and higher supports CSI Migration.\n \n Support for these deprecations will be available till October 15, 2022. ([#109089](https://github.com/kubernetes/kubernetes/pull/109089), [@deepakkinni](https://github.com/deepakkinni))", + "author": "deepakkinni", + "author_url": "https://github.com/deepakkinni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109089", + "pr_number": 109089, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "feature", + "deprecation" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true, + "duplicate_kind": true, + "action_required": true + }, + "109104": { + "commit": "fe4cbf6514aa247e1f6d83f33970710b65649685", + "text": "Updated runc to 1.1.1", + "markdown": "Updated runc to 1.1.1 ([#109104](https://github.com/kubernetes/kubernetes/pull/109104), [@kolyshkin](https://github.com/kolyshkin))", + "author": "kolyshkin", + "author_url": "https://github.com/kolyshkin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109104", + "pr_number": 109104, + "areas": [ + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "109120": { + "commit": "c7fc0f9125a239b391df0d7d06e61b8f968ef956", + "text": "New \"field_validation_request_duration_seconds\" metric, measures how long requests take, indicating the value of the fieldValidation query parameter and whether or not server-side field validation is enabled on the apiserver", + "markdown": "New \"field_validation_request_duration_seconds\" metric, measures how long requests take, indicating the value of the fieldValidation query parameter and whether or not server-side field validation is enabled on the apiserver ([#109120](https://github.com/kubernetes/kubernetes/pull/109120), [@kevindelgado](https://github.com/kevindelgado))", + "author": "kevindelgado", + "author_url": "https://github.com/kevindelgado", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109120", + "pr_number": 109120, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "109128": { + "commit": "ba1bbb5ac67084b25a17622a6573e648f88f440b", + "text": "apiextensions_openapi_v3_regeneration_count metric (alpha) will be emitted for OpenAPI V3.", + "markdown": "Apiextensions_openapi_v3_regeneration_count metric (alpha) will be emitted for OpenAPI V3. ([#109128](https://github.com/kubernetes/kubernetes/pull/109128), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109128", + "pr_number": 109128, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "109137": { + "commit": "2e55595d3baeedcab09745355824f38a60cf6d08", + "text": "Fixed indexer bug that resulted in incorrect index updates if number of index values for a given object was changing during update", + "markdown": "Fixed indexer bug that resulted in incorrect index updates if number of index values for a given object was changing during update ([#109137](https://github.com/kubernetes/kubernetes/pull/109137), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109137", + "pr_number": 109137, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "109154": { + "commit": "c6478308f8aeb691b482a7b6d96606af6c477f9d", + "text": "Fixed CSI migration of Azure Disk in-tree StorageClasses with topology requirements in Azure regions that do not have availability zones.", + "markdown": "Fixed CSI migration of Azure Disk in-tree StorageClasses with topology requirements in Azure regions that do not have availability zones. ([#109154](https://github.com/kubernetes/kubernetes/pull/109154), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109154", + "pr_number": 109154, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "109178": { + "commit": "e89b80bdd809bbb56fe55c6f482a880f9736c26d", + "text": "Omit enum declarations from the static openapi file captured at https://git.k8s.io/kubernetes/api/openapi-spec. This file is used to generate API clients, and use of enums in those generated clients (rather than strings) can break forward compatibility with additional future values in those fields. See https://issue.k8s.io/109177 for details.", + "markdown": "Omit enum declarations from the static openapi file captured at https://git.k8s.io/kubernetes/api/openapi-spec. This file is used to generate API clients, and use of enums in those generated clients (rather than strings) can break forward compatibility with additional future values in those fields. See https://issue.k8s.io/109177 for details. ([#109178](https://github.com/kubernetes/kubernetes/pull/109178), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109178", + "pr_number": 109178, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change", + "feature", + "regression" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "109188": { + "commit": "885f14d162471dfc9a3f8d4c46430805cf6be828", + "text": "Fix the overestimated cost of delegated API requests in kube-apiserver API priority \u0026 fairness", + "markdown": "Fix the overestimated cost of delegated API requests in kube-apiserver API priority \u0026 fairness ([#109188](https://github.com/kubernetes/kubernetes/pull/109188), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109188", + "pr_number": 109188, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "109205": { + "commit": "df1a3ddc9811969ad464b98ec5ec8972e907f778", + "text": "Adds PV deletion protection finalizer only when PV reclaimPolicy is Delete for dynamically provisioned volumes.", + "markdown": "Adds PV deletion protection finalizer only when PV reclaimPolicy is Delete for dynamically provisioned volumes. ([#109205](https://github.com/kubernetes/kubernetes/pull/109205), [@deepakkinni](https://github.com/deepakkinni))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/pull/3181", + "type": "KEP" + } + ], + "author": "deepakkinni", + "author_url": "https://github.com/deepakkinni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109205", + "pr_number": 109205, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "apps" + ], + "duplicate": true + }, + "109213": { + "commit": "2da1558909043ddc41d7a36ab93672869474ec55", + "text": "Moving MixedProtocolLBService from alpha to beta", + "markdown": "Moving MixedProtocolLBService from alpha to beta ([#109213](https://github.com/kubernetes/kubernetes/pull/109213), [@bridgetkromhout](https://github.com/bridgetkromhout))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/1435-mixed-protocol-lb", + "type": "KEP" + } + ], + "author": "bridgetkromhout", + "author_url": "https://github.com/bridgetkromhout", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109213", + "pr_number": 109213, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "109241": { + "commit": "3024ddcfe2440b0cf5c3ace3100c6232d6a23df9", + "text": "Make STS available replicas optional again.", + "markdown": "Make STS available replicas optional again. ([#109241](https://github.com/kubernetes/kubernetes/pull/109241), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109241", + "pr_number": 109241, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "regression" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "109245": { + "commit": "11a61462838bbd894b3f56277e768b4bfc913e85", + "text": "Prevent kube-scheduler from nominating a Pod that was already scheduled to a node", + "markdown": "Prevent kube-scheduler from nominating a Pod that was already scheduled to a node ([#109245](https://github.com/kubernetes/kubernetes/pull/109245), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109245", + "pr_number": 109245, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "109271": { + "commit": "92a1d0f84c710755a570eaf05f3e315a8c9deb1b", + "text": "The `ServerSideFieldValidation` feature has been reverted to alpha for 1.24.", + "markdown": "The `ServerSideFieldValidation` feature has been reverted to alpha for 1.24. ([#109271](https://github.com/kubernetes/kubernetes/pull/109271), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109271", + "pr_number": 109271, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "109436": { + "commit": "4cdeab4696e86c9738d99e2650d2cdfdfb0f8d32", + "text": "Remove a v1alpha1 networking API for ClusterCIDRConfig", + "markdown": "Remove a v1alpha1 networking API for ClusterCIDRConfig ([#109436](https://github.com/kubernetes/kubernetes/pull/109436), [@JamesLaverack](https://github.com/JamesLaverack))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/2594", + "type": "KEP" + } + ], + "author": "JamesLaverack", + "author_url": "https://github.com/JamesLaverack", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109436", + "pr_number": 109436, + "areas": [ + "test", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "network", + "api-machinery", + "auth", + "apps", + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "109442": { + "commit": "65178fec72df6275ed0aa3ede12c785ac79ab97a", + "text": "Correct event registration for multiple scheduler plugins; this fixes a potential significant delay in re-queueing unschedulable pods.", + "markdown": "Correct event registration for multiple scheduler plugins; this fixes a potential significant delay in re-queueing unschedulable pods. ([#109442](https://github.com/kubernetes/kubernetes/pull/109442), [@ahg-g](https://github.com/ahg-g))", + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109442", + "pr_number": 109442, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true + }, + "109461": { + "commit": "75e49ec824b183288e1dbaccfd7dbe77d89db381", + "text": "Kubernetes is now built with Golang 1.18.1", + "markdown": "Kubernetes is now built with Golang 1.18.1 ([#109461](https://github.com/kubernetes/kubernetes/pull/109461), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109461", + "pr_number": 109461, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "109471": { + "commit": "f33ca2306548719e5116b53fccfc278bffb809a8", + "text": "etcd: Update to v3.5.3", + "markdown": "Etcd: Update to v3.5.3 ([#109471](https://github.com/kubernetes/kubernetes/pull/109471), [@justaugustus](https://github.com/justaugustus))", + "author": "justaugustus", + "author_url": "https://github.com/justaugustus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109471", + "pr_number": 109471, + "areas": [ + "test", + "provider/gcp", + "kubeadm", + "e2e-test-framework" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "testing", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "109487": { + "commit": "a750d8054a6cb3167f495829ce3e77ab0ccca48e", + "text": "Sets JobTrackingWithFinalizers, a beta feature, as disabled by default, due to unresolved bug https://github.com/kubernetes/kubernetes/issues/109485", + "markdown": "Sets JobTrackingWithFinalizers, a beta feature, as disabled by default, due to unresolved bug https://github.com/kubernetes/kubernetes/issues/109485 ([#109487](https://github.com/kubernetes/kubernetes/pull/109487), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109487", + "pr_number": 109487, + "areas": [ + "test", + "batch" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "82162": { + "commit": "f85ff4b5743d501381c76b94a5bc6197b7766190", + "text": "MaxUnavailable for StatefulSets, allows faster RollingUpdate by taking down more than 1 pod at a time. The number of pods you want to take down during a RollingUpdate is configurable using maxUnavailable parameter.", + "markdown": "MaxUnavailable for StatefulSets, allows faster RollingUpdate by taking down more than 1 pod at a time. The number of pods you want to take down during a RollingUpdate is configurable using maxUnavailable parameter. ([#82162](https://github.com/kubernetes/kubernetes/pull/82162), [@krmayankk](https://github.com/krmayankk))", + "author": "krmayankk", + "author_url": "https://github.com/krmayankk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/82162", + "pr_number": 82162, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true + }, + "94637": { + "commit": "77eb1a03df5ed29db8b093bc1b89778388593c2f", + "text": "kube-apiserver: ensures the namespace of objects sent to admission webhooks matches the request namespace. Previously, objects without a namespace set would have the request namespace populated after mutating admission, and objects with a namespace that did not match the request namespace would be rejected after admission.", + "markdown": "Kube-apiserver: ensures the namespace of objects sent to admission webhooks matches the request namespace. Previously, objects without a namespace set would have the request namespace populated after mutating admission, and objects with a namespace that did not match the request namespace would be rejected after admission. ([#94637](https://github.com/kubernetes/kubernetes/pull/94637), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94637", + "pr_number": 94637, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "95400": { + "commit": "922ccde1b490a3d8d8a9d54100c542d04193d8e4", + "text": "Adds support for `InterfaceNamePrefix` and `BridgeInterface` as arguments to `--detect-local-mode` option and also introduces a new optional `--pod-interface-name-prefix` and `--pod-bridge-interface` flags to kube-proxy.", + "markdown": "Adds support for `InterfaceNamePrefix` and `BridgeInterface` as arguments to `--detect-local-mode` option and also introduces a new optional `--pod-interface-name-prefix` and `--pod-bridge-interface` flags to kube-proxy. ([#95400](https://github.com/kubernetes/kubernetes/pull/95400), [@tssurya](https://github.com/tssurya))", + "author": "tssurya", + "author_url": "https://github.com/tssurya", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/95400", + "pr_number": 95400, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "97252": { + "commit": "cdf3ad823a33733dbbfcec45b368be8ed9690c5b", + "text": "Docker runtime support using dockershim in the kubelet is now completely removed in 1.24. The kubelet used to have a module called dockershim, which implements CRI support for Docker, and it has seen maintenance issues in the Kubernetes community. From 1.24 onwards, please move to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available.", + "markdown": "Docker runtime support using dockershim in the kubelet is now completely removed in 1.24. The kubelet used to have a module called dockershim, which implements CRI support for Docker, and it has seen maintenance issues in the Kubernetes community. From 1.24 onwards, please move to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available. ([#97252](https://github.com/kubernetes/kubernetes/pull/97252), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97252", + "pr_number": 97252, + "areas": [ + "test", + "kubelet", + "cloudprovider", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "node", + "instrumentation", + "testing", + "cloud-provider" + ], + "duplicate": true, + "action_required": true + }, + "97966": { + "commit": "a90961aac04e7107a5420435723c729efe9836f4", + "text": "Removed validation if AppArmor profiles are loaded on the local node. This should be handled by the container runtime.", + "markdown": "Removed validation if AppArmor profiles are loaded on the local node. This should be handled by the container runtime. ([#97966](https://github.com/kubernetes/kubernetes/pull/97966), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/97966", + "pr_number": 97966, + "areas": [ + "security" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "auth", + "security" + ], + "duplicate": true + }, + "99287": { + "commit": "41b29e6542f7ad41530c78a426c76bb25ace56ed", + "text": "Add 2 new options for kube-proxy running in winkernel mode. `--forward-healthcheck-vip`, if specified as true, health check traffic whose destination is service VIP will be forwarded to kube-proxy's healthcheck service. `--root-hnsendpoint-name` specifies the name of the hns endpoint for the root network namespace. This option enables the pass-through load balancers like Google's GCLB to correctly health check the backend services. Without this change, the health check packets is dropped, and Windows node will be considered to be unhealthy by those load balancers.", + "markdown": "Add 2 new options for kube-proxy running in winkernel mode. `--forward-healthcheck-vip`, if specified as true, health check traffic whose destination is service VIP will be forwarded to kube-proxy's healthcheck service. `--root-hnsendpoint-name` specifies the name of the hns endpoint for the root network namespace. This option enables the pass-through load balancers like Google's GCLB to correctly health check the backend services. Without this change, the health check packets is dropped, and Windows node will be considered to be unhealthy by those load balancers. ([#99287](https://github.com/kubernetes/kubernetes/pull/99287), [@anfernee](https://github.com/anfernee))", + "author": "anfernee", + "author_url": "https://github.com/anfernee", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99287", + "pr_number": 99287, + "areas": [ + "test", + "provider/gcp", + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "network", + "api-machinery", + "windows", + "testing", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "99292": { + "commit": "f979b4094e8c62a8b752012161a791ddf2e45dc7", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#99292](https://github.com/kubernetes/kubernetes/pull/99292), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Apps and Scheduling]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99292", + "pr_number": 99292, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "apps" + ], + "duplicate": true, + "do_not_publish": true + }, + "99441": { + "commit": "e22ec17057a4e0b8a937a295d7d46b9612f8887c", + "text": "Migrate `volume/csi/csi-client.go` logs to structured logging.", + "markdown": "Migrate `volume/csi/csi-client.go` logs to structured logging. ([#99441](https://github.com/kubernetes/kubernetes/pull/99441), [@CKchen0726](https://github.com/CKchen0726))", + "author": "CKchen0726", + "author_url": "https://github.com/CKchen0726", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99441", + "pr_number": 99441, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "99556": { + "commit": "d58f42961cc397b820ea2372a42dee3bc33745eb", + "text": "An alpha flag `--subresource` is added to get, patch, edit replace kubectl commands to fetch and update status and scale subresources.", + "markdown": "An alpha flag `--subresource` is added to get, patch, edit replace kubectl commands to fetch and update status and scale subresources. ([#99556](https://github.com/kubernetes/kubernetes/pull/99556), [@nikhita](https://github.com/nikhita))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/2590-kubectl-subresource", + "type": "KEP" + } + ], + "author": "nikhita", + "author_url": "https://github.com/nikhita", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99556", + "pr_number": 99556, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "99758": { + "commit": "6845df17290505ad6d989463f5bca2fbbd619c03", + "text": "Added label selector flag to all `kubectl rollout` commands.", + "markdown": "Added label selector flag to all `kubectl rollout` commands. ([#99758](https://github.com/kubernetes/kubernetes/pull/99758), [@aramperes](https://github.com/aramperes))", + "author": "aramperes", + "author_url": "https://github.com/aramperes", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99758", + "pr_number": 99758, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + } +} diff --git a/releases/release-1.24/release-notes/release-notes-draft.md b/releases/release-1.24/release-notes/release-notes-draft.md index 5f1e5d9543e..74d2946ba0a 100644 --- a/releases/release-1.24/release-notes/release-notes-draft.md +++ b/releases/release-1.24/release-notes/release-notes-draft.md @@ -1,452 +1,452 @@ -## Major Themes - -### Dockershim Removed from kubelet - -After its deprecation in v1.20, the dockershim component has been removed from the kubelet. -From v1.24 onwards, you will need to either use one of the other [supported runtimes](https://kubernetes.io/docs/setup/production-environment/container-runtimes/) (such as containerd or CRI-O) -or use cri-dockerd if you are relying on Docker Engine as your container runtime. -For more information about ensuring your cluster is ready for this removal, please -see [this guide](/blog/2022/03/31/ready-for-dockershim-removal/). - -### Beta APIs Off by Default - -[New beta APIs will not be enabled in clusters by default](https://github.com/kubernetes/enhancements/issues/3136). -Existing beta APIs and new versions of existing beta APIs, will continue to be enabled by default. - -### Signing Release Artifacts - -Release artifacts are [signed](https://github.com/kubernetes/enhancements/issues/3031) using [cosign](https://github.com/sigstore/cosign) -signatures -and there is experimental support for [verifying image signatures](/docs/tasks/administer-cluster/verify-signed-images/). -Signing and verification of release artifacts is part of [increasing software supply chain security for the Kubernetes release process](https://github.com/kubernetes/enhancements/issues/3027). - -### OpenAPI v3 - -Kubernetes 1.24 offers beta support for publishing its APIs in the [OpenAPI v3 format](https://github.com/kubernetes/enhancements/issues/2896). - -### Storage Capacity and Volume Expansion Are Generally Available - -[Storage capacity tracking](https://github.com/kubernetes/enhancements/issues/1472) -supports exposing currently available storage capacity via [CSIStorageCapacity objects](https://kubernetes.io/docs/concepts/storage/storage-capacity/#api) -and enhances scheduling of pods that use CSI volumes with late binding. - -[Volume expansion](https://github.com/kubernetes/enhancements/issues/284) adds support -for resizing existing persistent volumes. - -### NonPreemptingPriority to Stable - -This feature adds [a new option to PriorityClasses](https://github.com/kubernetes/enhancements/issues/902), -which can enable or disable pod preemption. - -### Storage Plugin Migration - -There is work under way to [migrate the internals of in-tree storage plugins](https://github.com/kubernetes/enhancements/issues/625) to call out to CSI Plugins, -while maintaining the original API. -The [Azure Disk](https://github.com/kubernetes/enhancements/issues/1490) -and [OpenStack Cinder](https://github.com/kubernetes/enhancements/issues/1489) plugins -have both been migrated. - -### gRPC Probes Graduate to Beta - -With Kubernetes 1.24, the [gRPC probes functionality](https://github.com/kubernetes/enhancements/issues/2727) -has entered beta and is available by default. You can now [configure startup, liveness, and readiness probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes) for your gRPC app -natively within Kubernetes, without exposing an HTTP endpoint or -using an extra executable. - -### Kubelet Credential Provider Graduates to Beta - -Originally released as Alpha in Kubernetes 1.20, the kubelet's support for -[image credential providers](/docs/tasks/kubelet-credential-provider/kubelet-credential-provider/) -has now graduated to Beta. -This allows the kubelet to dynamically retrieve credentials for a container image registry -using exec plugins, rather than storing credentials on the node's filesystem. - -### Contextual Logging in Alpha - -Kubernetes 1.24 has introduced [contextual logging](https://github.com/kubernetes/enhancements/issues/3077) -that enables the caller of a function to control all aspects of logging (output formatting, verbosity, additional values and names). - -### Avoiding Collisions in IP allocation to Services - -Kubernetes 1.24 introduced a new opt-in feature that allows you to -[soft-reserve a range for static IP address assignments](/docs/concepts/services-networking/service/#service-ip-static-sub-range) -to Services. -With the manual enablement of this feature, the cluster will prefer automatic assignment from -the pool of Service IP addresses thereby reducing the risk of collision. - -A Service `ClusterIP` can be assigned: - -* dynamically, which means the cluster will automatically pick a free IP within the configured Service IP range. -* statically, which means the user will set one IP within the configured Service IP range. - -Service `ClusterIP` are unique, hence, trying to create a Service with a `ClusterIP` that has already been allocated will return an error. - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- Docker runtime support using dockershim in the kubelet is now completely removed in 1.24. The kubelet used to have a module called dockershim, which implements CRI support for Docker, and it has seen maintenance issues in the Kubernetes community. From 1.24 onwards, please move to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available. ([#97252](https://github.com/kubernetes/kubernetes/pull/97252), [@dims](https://github.com/dims)) -- Fixed bug with leads to Node goes `Not-ready` state when credentials for vCenter stored in a secret and Zones feature is in use. Zone labels setup moved to KCM component, kubelet skips this step during startup in such case. If credentials stored in cloud-provider config file as plaintext current behaviour does not change and no action required. For proper functioning `kube-system:vsphere-legacy-cloud-provider` should be allowed to update node object if vCenter credentials stored in secret and Zone feature used. ([#101028](https://github.com/kubernetes/kubernetes/pull/101028), [@lobziik](https://github.com/lobziik)) -- The `LegacyServiceAccountTokenNoAutoGeneration` feature gate is beta, and enabled by default. When enabled, Secret API objects containing service account tokens are no longer auto-generated for every ServiceAccount. Use the [TokenRequest](https://kubernetes.io/docs/reference/kubernetes-api/authentication-resources/token-request-v1/) API to acquire service account tokens, or if a non-expiring token is required, create a Secret API object for the token controller to populate with a service account token by following this [guide](https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets). ([#108309](https://github.com/kubernetes/kubernetes/pull/108309), [@zshihang](https://github.com/zshihang)) -- The calculations for Pod topology spread skew now exclude nodes that - don't match the node affinity/selector. This may lead to unschedulable pods if you previously had pods - matching the spreading selector on those excluded nodes (not matching the node affinity/selector), - especially when the `topologyKey` is not node-level. Revisit the node affinity and/or pod selector in the - topology spread constraints to avoid this scenario. ([#107009](https://github.com/kubernetes/kubernetes/pull/107009), [@kerthcet](https://github.com/kerthcet)) -- Remove the deprecated flag `--experimental-check-node-capabilities-before-mount`. With CSI now GA, there is a better alternative. Remove any use of `--experimental-check-node-capabilities-before-mount` from your kubelet scripts or manifests. ([#104732](https://github.com/kubernetes/kubernetes/pull/104732), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- `kubeadm.k8s.io/v1beta2` has been deprecated and will be removed in a future release, possibly in 3 releases (one year). You should start using `kubeadm.k8s.io/v1beta3` for new clusters. To migrate your old configuration files on disk you can use the `kubeadm config migrate` command. ([#107013](https://github.com/kubernetes/kubernetes/pull/107013), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: default the kubeadm configuration to the containerd socket (Unix: `unix:///var/run/containerd/containerd.sock`, Windows: `npipe:////./pipe/containerd-containerd`) instead of the one for Docker. If the `Init|JoinConfiguration.nodeRegistration.criSocket` field is empty during cluster creation and multiple sockets are found on the host always throw an error and ask the user to specify which one to use by setting the value in the field. Make sure you update any kubeadm configuration files on disk, to not include the dockershim socket unless you are still using kubelet version < 1.24 with kubeadm >= 1.24. Remove the DockerValidor and ServiceCheck for the `docker` service from kubeadm preflight. Docker is no longer special cased during host validation and ideally this task should be done in the now external cri-dockerd project where the importance of the compatibility matters. Use `crictl` for all communication with CRI sockets for actions like pulling images and obtaining a list of running containers instead of using the docker CLI in the case of Docker. ([#107317](https://github.com/kubernetes/kubernetes/pull/107317), [@neolit123](https://github.com/neolit123)) -- The feature gate was mentioned as `csiMigrationRBD` where it should have been `CSIMigrationRBD` to be in parity with other migration plugins. This release correct the same and keep it as `CSIMigrationRBD`. - users who have configured this feature gate as `csiMigrationRBD` has to reconfigure the same to `CSIMigrationRBD` from this release. ([#107554](https://github.com/kubernetes/kubernetes/pull/107554), [@humblec](https://github.com/humblec)) -- The experimental dynamic log sanitization feature has been deprecated and removed in the 1.24 release. The feature is no longer available for use. ([#107207](https://github.com/kubernetes/kubernetes/pull/107207), [@ehashman](https://github.com/ehashman)) -- Kubeadm: apply `second stage` of the plan to migrate kubeadm away from the usage of the word `master` in labels and taints. For new clusters, the label `node-role.kubernetes.io/master` will no longer be added to control plane nodes, only the label `node-role.kubernetes.io/control-plane` will be added. For clusters that are being upgraded to 1.24 with `kubeadm upgrade apply`, the command will remove the label `node-role.kubernetes.io/master` from existing control plane nodes. For new clusters, both the old taint `node-role.kubernetes.io/master:NoSchedule` and new taint `node-role.kubernetes.io/control-plane:NoSchedule` will be added to control plane nodes. In release 1.20 (`first stage`), a release note instructed to preemptively tolerate the new taint. For clusters that are being upgraded to 1.24 with `kubeadm upgrade apply`, the command will add the new taint `node-role.kubernetes.io/control-plane:NoSchedule` to existing control plane nodes. Please adapt your infrastructure to these changes. In 1.25 the old taint `node-role.kubernetes.io/master:NoSchedule` will be removed. ([#107533](https://github.com/kubernetes/kubernetes/pull/107533), [@neolit123](https://github.com/neolit123)) -- The feature gate was mentioned as `csiMigrationRBD` where it should have been `CSIMigrationRBD` to be in parity with other migration plugins. This release correct the same and keep it as `CSIMigrationRBD`. - users who have configured this feature gate as `csiMigrationRBD` has to reconfigure the same to `CSIMigrationRBD` from this release. ([#107554](https://github.com/kubernetes/kubernetes/pull/107554), [@humblec](https://github.com/humblec)) - -## Changes by Kind - -### Deprecation - -- Deprecated `Service.Spec.LoadBalancerIP`. This field was under-specified and its meaning varies across implementations. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version. ([#107235](https://github.com/kubernetes/kubernetes/pull/107235), [@uablrek](https://github.com/uablrek)) -- Kube-apiserver: the `--master-count` flag and `--endpoint-reconciler-type=master-count` reconciler are deprecated in favor of the lease reconciler ([#108062](https://github.com/kubernetes/kubernetes/pull/108062), [@aojea](https://github.com/aojea)) -- Kube-apiserver: the insecure address flags `--address`, `--insecure-bind-address`, `--port` and `--insecure-port` (inert since 1.20) are removed ([#106859](https://github.com/kubernetes/kubernetes/pull/106859), [@knight42](https://github.com/knight42)) -- Kubeadm: graduated the `UnversionedKubeletConfigMap` feature gate to Beta and enabled the feature by default. This implies that 1) for new clusters kubeadm will start using the `kube-system/kubelet-config` naming scheme for the kubelet ConfigMap and RBAC rules, instead of the legacy `kubelet-config-x.yy` naming. 2) during upgrade, kubeadm will only write the new scheme ConfigMap and RBAC objects. To disable the feature you can pass `UnversionedKubeletConfigMap: false` in the kubeadm config for new clusters. For upgrade on existing clusters you can also override the behavior by patching the ClusterConfiguration object in `kube-system/kubeadm-config`. More details in the associated KEP. ([#108027](https://github.com/kubernetes/kubernetes/pull/108027), [@neolit123](https://github.com/neolit123)) -- Remove `tolerate-unready-endpoints` annotation in Service deprecated from 1.11, use `Service.spec.publishNotReadyAddresses` instead. ([#108020](https://github.com/kubernetes/kubernetes/pull/108020), [@tossmilestone](https://github.com/tossmilestone)) -- Remove deprecated feature gates `ValidateProxyRedirects` and `StreamingProxyRedirects` ([#106830](https://github.com/kubernetes/kubernetes/pull/106830), [@pacoxu](https://github.com/pacoxu)) -- Remove insecure serving configuration from cloud-provider package, which is consumed by cloud-controller-managers. ([#108953](https://github.com/kubernetes/kubernetes/pull/108953), [@nckturner](https://github.com/nckturner)) -- The `--pod-infra-container-image` kubelet flag is deprecated and will be removed in future releases ([#108045](https://github.com/kubernetes/kubernetes/pull/108045), [@hakman](https://github.com/hakman)) -- The `client.authentication.k8s.io/v1alpha1` ExecCredential has been removed. If you are using a client-go credential plugin that relies on the v1alpha1 API please contact the distributor of your plugin for instructions on how to migrate to the v1 API. ([#108616](https://github.com/kubernetes/kubernetes/pull/108616), [@margocrawf](https://github.com/margocrawf)) -- The `node.k8s.io/v1alpha1` RuntimeClass API is no longer served. Use the `node.k8s.io/v1` API version, available since v1.20 ([#103061](https://github.com/kubernetes/kubernetes/pull/103061), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) -- The cluster addon for dashboard was removed. To install dashboard, see [here](https://github.com/kubernetes/dashboard/blob/master/docs/user/README.md). ([#107481](https://github.com/kubernetes/kubernetes/pull/107481), [@shu-mutou](https://github.com/shu-mutou)) -- The in-tree Azure plugin has been deprecated. The Azure kubelogin plugin serves as an out-of-tree replacement via the kubectl/client-go credential plugin mechanism. Users will now see a warning in the logs regarding this deprecation. ([#107904](https://github.com/kubernetes/kubernetes/pull/107904), [@sabbey37](https://github.com/sabbey37)) -- The insecure address flags `--address` and `--port` in kube-controller-manager have had no effect since v1.20 and are removed in v1.24. ([#106860](https://github.com/kubernetes/kubernetes/pull/106860), [@knight42](https://github.com/knight42)) -- The metadata.clusterName field is deprecated. This field has always been unwritable and always blank, but its presence is confusing, so we will remove it next release. Out of an abundance of caution, this release we have merely changed the name in the go struct to ensure any accidental client uses are found before complete removal. ([#108717](https://github.com/kubernetes/kubernetes/pull/108717), [@lavalamp](https://github.com/lavalamp)) -- VSphere releases less than 7.0u2 are deprecated as of v1.24. Please consider upgrading vSphere to 7.0u2 or above. vSphere CSI Driver requires minimum vSphere 7.0u2. - - General Support for vSphere 6.7 will end on October 15, 2022. vSphere 6.7 Update 3 is deprecated in Kubernetes v1.24. Customers are recommended to upgrade vSphere (both ESXi and vCenter) to 7.0u2 or above. vSphere CSI Driver 2.2.3 and higher supports CSI Migration. - - Support for these deprecations will be available till October 15, 2022. ([#109089](https://github.com/kubernetes/kubernetes/pull/109089), [@deepakkinni](https://github.com/deepakkinni)) - -### API Change - -- Add 2 new options for kube-proxy running in winkernel mode. `--forward-healthcheck-vip`, if specified as true, health check traffic whose destination is service VIP will be forwarded to kube-proxy's healthcheck service. `--root-hnsendpoint-name` specifies the name of the hns endpoint for the root network namespace. This option enables the pass-through load balancers like Google's GCLB to correctly health check the backend services. Without this change, the health check packets is dropped, and Windows node will be considered to be unhealthy by those load balancers. ([#99287](https://github.com/kubernetes/kubernetes/pull/99287), [@anfernee](https://github.com/anfernee)) -- Added CEL runtime cost calculation into CustomerResource validation. CustomerResource validation will fail if runtime cost exceeds the budget. ([#108482](https://github.com/kubernetes/kubernetes/pull/108482), [@cici37](https://github.com/cici37)) -- Added a new metric `webhook_fail_open_count` to monitor webhooks that fail to open. ([#107171](https://github.com/kubernetes/kubernetes/pull/107171), [@ltagliamonte-dd](https://github.com/ltagliamonte-dd)) -- Adds a new Status subresource in Network Policy objects ([#107963](https://github.com/kubernetes/kubernetes/pull/107963), [@rikatz](https://github.com/rikatz)) -- Adds support for `InterfaceNamePrefix` and `BridgeInterface` as arguments to `--detect-local-mode` option and also introduces a new optional `--pod-interface-name-prefix` and `--pod-bridge-interface` flags to kube-proxy. ([#95400](https://github.com/kubernetes/kubernetes/pull/95400), [@tssurya](https://github.com/tssurya)) -- CEL CRD validation expressions may now reference existing object state using the identifier `oldSelf`. ([#108073](https://github.com/kubernetes/kubernetes/pull/108073), [@benluddy](https://github.com/benluddy)) -- CRD deep copies should no longer contain shallow copies of `JSONSchemaProps.XValidations`. ([#107956](https://github.com/kubernetes/kubernetes/pull/107956), [@benluddy](https://github.com/benluddy)) -- CRD writes will generate validation errors if a CEL validation rule references the identifier `oldSelf` on a part of the schema that does not support it. ([#108013](https://github.com/kubernetes/kubernetes/pull/108013), [@benluddy](https://github.com/benluddy)) -- CSIStorageCapacity.storage.k8s.io: The v1beta1 version of this API is deprecated in favor of v1, and will be removed in v1.27. If a CSI driver supports storage capacity tracking, then it must get deployed with a release of external-provisioner that supports the v1 API. ([#108445](https://github.com/kubernetes/kubernetes/pull/108445), [@pohly](https://github.com/pohly)) -- Custom resource requests with `fieldValidation=Strict` consistently require `apiVersion` and `kind`, matching non-strict requests ([#109019](https://github.com/kubernetes/kubernetes/pull/109019), [@liggitt](https://github.com/liggitt)) -- Feature of `DefaultPodTopologySpread` is graduated to GA ([#108278](https://github.com/kubernetes/kubernetes/pull/108278), [@kerthcet](https://github.com/kerthcet)) -- Feature of `NonPreemptingPriority` is graduated to GA ([#107432](https://github.com/kubernetes/kubernetes/pull/107432), [@denkensk](https://github.com/denkensk)) -- Feature of `PodOverhead` is graduated to GA ([#108441](https://github.com/kubernetes/kubernetes/pull/108441), [@pacoxu](https://github.com/pacoxu)) -- Fixed OpenAPI serialization of the x-kubernetes-validations field ([#107970](https://github.com/kubernetes/kubernetes/pull/107970), [@liggitt](https://github.com/liggitt)) -- Fixed failed flushing logs in defer function when kubelet cmd exit 1. ([#104774](https://github.com/kubernetes/kubernetes/pull/104774), [@kerthcet](https://github.com/kerthcet)) -- Fixes a regression in v1beta1 PodDisruptionBudget handling of `strategic merge patch`-type API requests for the `selector` field. Prior to 1.21, these requests would merge `matchLabels` content and replace `matchExpressions` content. In 1.21, patch requests touching the `selector` field started replacing the entire selector. This is consistent with server-side apply and the v1 PodDisruptionBudget behavior, but should not have been changed for v1beta1. ([#108138](https://github.com/kubernetes/kubernetes/pull/108138), [@liggitt](https://github.com/liggitt)) -- Improve kubectl's user help commands readability ([#104736](https://github.com/kubernetes/kubernetes/pull/104736), [@lauchokyip](https://github.com/lauchokyip)) -- Indexed Jobs graduated to stable. ([#107395](https://github.com/kubernetes/kubernetes/pull/107395), [@alculquicondor](https://github.com/alculquicondor)) -- Introduce a v1alpha1 networking API for ClusterCIDRConfig ([#108290](https://github.com/kubernetes/kubernetes/pull/108290), [@sarveshr7](https://github.com/sarveshr7)) -- Introduction of a new "sync_proxy_rules_no_local_endpoints_total" proxy metric. This metric represents the number of services with no internal endpoints. The "traffic_policy" label will contain both "internal" or "external". ([#108930](https://github.com/kubernetes/kubernetes/pull/108930), [@MaxRenaud](https://github.com/MaxRenaud)) -- JobReadyPods graduates to Beta and it's enabled by default. ([#107476](https://github.com/kubernetes/kubernetes/pull/107476), [@alculquicondor](https://github.com/alculquicondor)) -- Kube-apiserver: `--audit-log-version` and `--audit-webhook-version` now only support the default value of `audit.k8s.io/v1`. The v1alpha1 and v1beta1 audit log versions, deprecated since 1.13, have been removed. ([#108092](https://github.com/kubernetes/kubernetes/pull/108092), [@carlory](https://github.com/carlory)) -- Kube-apiserver: the `metadata.selfLink` field can no longer be populated by kube-apiserver; it was deprecated in 1.16 and has not been populated by default since 1.20+. ([#107527](https://github.com/kubernetes/kubernetes/pull/107527), [@wojtek-t](https://github.com/wojtek-t)) -- Kubelet external Credential Provider feature is moved to Beta. Credential Provider Plugin and Credential Provider Config API's updated from v1alpha1 to v1beta1 with no API changes. ([#108847](https://github.com/kubernetes/kubernetes/pull/108847), [@adisky](https://github.com/adisky)) -- Make STS available replicas optional again. ([#109241](https://github.com/kubernetes/kubernetes/pull/109241), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- MaxUnavailable for StatefulSets, allows faster RollingUpdate by taking down more than 1 pod at a time. The number of pods you want to take down during a RollingUpdate is configurable using maxUnavailable parameter. ([#82162](https://github.com/kubernetes/kubernetes/pull/82162), [@krmayankk](https://github.com/krmayankk)) -- Non-graceful node shutdown handling is enabled for stateful workload failovers ([#108486](https://github.com/kubernetes/kubernetes/pull/108486), [@sonasingh46](https://github.com/sonasingh46)) -- Omit enum declarations from the static openapi file captured at https://git.k8s.io/kubernetes/api/openapi-spec. This file is used to generate API clients, and use of enums in those generated clients (rather than strings) can break forward compatibility with additional future values in those fields. See https://issue.k8s.io/109177 for details. ([#109178](https://github.com/kubernetes/kubernetes/pull/109178), [@liggitt](https://github.com/liggitt)) -- OpenAPI V3 is turned on by default ([#109031](https://github.com/kubernetes/kubernetes/pull/109031), [@Jefftree](https://github.com/Jefftree)) -- Pod affinity namespace selector and cross-namespace quota graduated to GA. The feature gate `PodAffinityNamespaceSelector` is locked and will be removed in 1.26. ([#108136](https://github.com/kubernetes/kubernetes/pull/108136), [@ahg-g](https://github.com/ahg-g)) -- Promote IdentifyPodOS feature to beta. ([#107859](https://github.com/kubernetes/kubernetes/pull/107859), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- Remove a v1alpha1 networking API for ClusterCIDRConfig ([#109436](https://github.com/kubernetes/kubernetes/pull/109436), [@JamesLaverack](https://github.com/JamesLaverack)) -- Renamed metrics `evictions_number` to `evictions_total` and mark it as stable. The original `evictions_number` metrics name is marked as "Deprecated" and has been removed in kubernetes 1.23 . ([#106366](https://github.com/kubernetes/kubernetes/pull/106366), [@cyclinder](https://github.com/cyclinder)) -- Skip x-kubernetes-validations rules if having fundamental error against the OpenAPIv3 schema. ([#108859](https://github.com/kubernetes/kubernetes/pull/108859), [@cici37](https://github.com/cici37)) -- Support for gRPC probes is now in beta. GRPCContainerProbe feature gate is enabled by default. ([#108522](https://github.com/kubernetes/kubernetes/pull/108522), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) -- Suspend job to GA. The feature gate `SuspendJob` is locked and will be removed in 1.26. ([#108129](https://github.com/kubernetes/kubernetes/pull/108129), [@ahg-g](https://github.com/ahg-g)) -- The AnyVolumeDataSource feature is now beta, and the feature gate is enabled by default. In order to provide user feedback on PVCs with data sources, deployers must install the VolumePopulators CRD and the data-source-validator controller. ([#108736](https://github.com/kubernetes/kubernetes/pull/108736), [@bswartz](https://github.com/bswartz)) -- The CertificateSigningRequest `spec.expirationSeconds` API field has graduated to GA. The `CSRDuration` feature gate for the field is now unconditionally enabled and will be removed in 1.26. ([#108782](https://github.com/kubernetes/kubernetes/pull/108782), [@cfryanr](https://github.com/cfryanr)) -- The `ServerSideFieldValidation` feature has graduated to beta and is now enabled by default. Kubectl 1.24 and newer will use server-side validation instead of client-side validation when writing to API servers with the feature enabled. ([#108889](https://github.com/kubernetes/kubernetes/pull/108889), [@kevindelgado](https://github.com/kevindelgado)) -- The `ServiceLBNodePortControl` feature has graduated to GA. The feature gate will be removed in 1.26. ([#107027](https://github.com/kubernetes/kubernetes/pull/107027), [@uablrek](https://github.com/uablrek)) -- The deprecated kube-controller-manager flag '--deployment-controller-sync-period' has been removed, it is not used by the deployment controller. ([#107178](https://github.com/kubernetes/kubernetes/pull/107178), [@SataQiu](https://github.com/SataQiu)) -- The feature `DynamicKubeletConfig` has been removed from the kubelet. ([#106932](https://github.com/kubernetes/kubernetes/pull/106932), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) -- The infrastructure for contextual logging is complete (feature gate implemented, JSON backend ready). ([#108995](https://github.com/kubernetes/kubernetes/pull/108995), [@pohly](https://github.com/pohly)) -- This adds an optional `timeZone` field as part of the CronJob spec to support running cron jobs in a specific time zone. ([#108032](https://github.com/kubernetes/kubernetes/pull/108032), [@deejross](https://github.com/deejross)) -- Updated the default API priority-and-fairness config to avoid endpoint/configmaps operations from controller-manager to all match leader-election priority level. ([#106725](https://github.com/kubernetes/kubernetes/pull/106725), [@wojtek-t](https://github.com/wojtek-t)) -- `topologySpreadConstraints` includes `minDomains` field to limit the minimum number of topology domains. ([#107674](https://github.com/kubernetes/kubernetes/pull/107674), [@sanposhiho](https://github.com/sanposhiho)) - -### Feature - -- A new Priority and Fairness metric 'apiserver_flowcontrol_work_estimate_seats_samples' has been added that tracks the estimated seats associated with a request. ([#106628](https://github.com/kubernetes/kubernetes/pull/106628), [@tkashem](https://github.com/tkashem)) -- Add a deprecated cmd flag for the time interval between flushing pods from unschedulable queue to active queue or backoff queue. ([#108017](https://github.com/kubernetes/kubernetes/pull/108017), [@denkensk](https://github.com/denkensk)) -- Add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state to kubelet ([#105585](https://github.com/kubernetes/kubernetes/pull/105585), [@fengzixu](https://github.com/fengzixu)) -- Add the metric `container_oom_events_total` to kubelet's cAdvisor metric endpoint. ([#108004](https://github.com/kubernetes/kubernetes/pull/108004), [@jonkerj](https://github.com/jonkerj)) -- Added `SetTransform` to `SharedInformer` to allow users to transform objects before they are stored. ([#107507](https://github.com/kubernetes/kubernetes/pull/107507), [@alexzielenski](https://github.com/alexzielenski)) -- Added a `proxy-url` flag into `kubectl config set-cluster`. ([#105566](https://github.com/kubernetes/kubernetes/pull/105566), [@ardaguclu](https://github.com/ardaguclu)) -- Added a metric for measuring end-to-end volume mount timing. ([#107006](https://github.com/kubernetes/kubernetes/pull/107006), [@gnufied](https://github.com/gnufied)) -- Added a new Priority and Fairness metric `apiserver_flowcontrol_request_dispatch_no_accommodation_total` to track the number of times a request dispatch attempt results in a no-accommodation status due to lack of available seats. ([#106629](https://github.com/kubernetes/kubernetes/pull/106629), [@tkashem](https://github.com/tkashem)) -- Added a path `/header?key=` to `agnhost netexec` allowing one to view what the header value is of the incoming request. - - Ex: - - ```$ curl -H "X-Forwarded-For: something" 172.17.0.2:8080/header?key=X-Forwarded-For - something``` ([#107796](https://github.com/kubernetes/kubernetes/pull/107796), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) -- Added completion for `kubectl config set-context`. ([#106739](https://github.com/kubernetes/kubernetes/pull/106739), [@kebe7jun](https://github.com/kebe7jun)) -- Added field `add_ambient_capabilities` to the Capabilities message in the CRI-API. ([#104620](https://github.com/kubernetes/kubernetes/pull/104620), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) -- Added label selector flag to all `kubectl rollout` commands. ([#99758](https://github.com/kubernetes/kubernetes/pull/99758), [@aramperes](https://github.com/aramperes)) -- Added more message for no PodSandbox container. ([#107116](https://github.com/kubernetes/kubernetes/pull/107116), [@yxxhero](https://github.com/yxxhero)) -- Added prune flag into `diff` command to simulate `apply --prune`. ([#105164](https://github.com/kubernetes/kubernetes/pull/105164), [@ardaguclu](https://github.com/ardaguclu)) -- Added support for `btrfs` resizing ([#108561](https://github.com/kubernetes/kubernetes/pull/108561), [@RomanBednar](https://github.com/RomanBednar)) -- Added support for kubectl commands (`kubectl exec` and `kubectl port-forward`) via a SOCKS5 proxy. ([#105632](https://github.com/kubernetes/kubernetes/pull/105632), [@xens](https://github.com/xens)) -- Adds `OpenAPIV3SchemaInterface` to `DiscoveryClient` and its variants for fetching OpenAPI v3 schema documents. ([#108992](https://github.com/kubernetes/kubernetes/pull/108992), [@alexzielenski](https://github.com/alexzielenski)) -- Allow kubectl to manage resources by filename patterns without the shell expanding it first ([#102265](https://github.com/kubernetes/kubernetes/pull/102265), [@danielrodriguez](https://github.com/danielrodriguez)) -- An alpha flag `--subresource` is added to get, patch, edit replace kubectl commands to fetch and update status and scale subresources. ([#99556](https://github.com/kubernetes/kubernetes/pull/99556), [@nikhita](https://github.com/nikhita)) -- Apiextensions_openapi_v3_regeneration_count metric (alpha) will be emitted for OpenAPI V3. ([#109128](https://github.com/kubernetes/kubernetes/pull/109128), [@Jefftree](https://github.com/Jefftree)) -- Apply ProxyTerminatingEndpoints to all traffic policies (external, internal, cluster, local). ([#108691](https://github.com/kubernetes/kubernetes/pull/108691), [@andrewsykim](https://github.com/andrewsykim)) -- CEL regex patterns in x-kubernetes-valiation rules are compiled when CRDs are created/updated if the pattern is provided as a string constant in the expression. Any regex compile errors are reported as a CRD create/update validation error. ([#108617](https://github.com/kubernetes/kubernetes/pull/108617), [@jpbetz](https://github.com/jpbetz)) -- CRD `x-kubernetes-validations` rules now support the CEL functions: `isSorted`, `sum`, `min`, `max`, `indexOf`, `lastIndexOf`, `find` and `findAll`. ([#108312](https://github.com/kubernetes/kubernetes/pull/108312), [@jpbetz](https://github.com/jpbetz)) -- Changes the kubectl `--validate` flag from a bool to a string that accepts the values {true, strict, warn, false, ignore} - - true/strict - perform validation and error the request on any invalid fields in the ojbect. It will attempt to perform server-side validation if it is enabled on the apiserver, otherwise it will fall back to client-side validation. - - warn - perform server-side validation and warn on any invalid fields (but ultimately let the request succeed by dropping any invalid fields from the object). If validation is not available on the server, perform no validation. - - false/ignore - perform no validation, silently dropping invalid fields from the object. ([#108350](https://github.com/kubernetes/kubernetes/pull/108350), [@kevindelgado](https://github.com/kevindelgado)) -- Client-go metrics: change bucket distribution for `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` from [0.001, 0.002, 0.004, 0.008, 0.016, 0.032, 0.064, 0.128, 0.256, 0.512] to [0.005, 0.025, 0.1, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 15.0, 30.0, 60.0}] ([#106911](https://github.com/kubernetes/kubernetes/pull/106911), [@aojea](https://github.com/aojea)) -- Client-go: add new histogram metric to record the size of the requests and responses. ([#108296](https://github.com/kubernetes/kubernetes/pull/108296), [@aojea](https://github.com/aojea)) -- CycleState is now optimized for "write once and read many times". ([#108724](https://github.com/kubernetes/kubernetes/pull/108724), [@sanposhiho](https://github.com/sanposhiho)) -- Enabled beta feature HonorPVReclaimPolicy by default. ([#109035](https://github.com/kubernetes/kubernetes/pull/109035), [@deepakkinni](https://github.com/deepakkinni)) -- Env var for additional cli flags used in the csi-proxy binary when a Windows nodepool is created with `kube-up.sh` ([#107806](https://github.com/kubernetes/kubernetes/pull/107806), [@mauriciopoppe](https://github.com/mauriciopoppe)) -- Feature of `PreferNominatedNode` is graduated to GA. ([#106619](https://github.com/kubernetes/kubernetes/pull/106619), [@chendave](https://github.com/chendave)) -- In text format, log messages that previously used quoting to prevent multi-line output (for example, text="some \"quotation\", a\nline break") will now be printed with more readable multi-line output without the escape sequences. ([#107103](https://github.com/kubernetes/kubernetes/pull/107103), [@pohly](https://github.com/pohly)) -- Increase default value of discovery cache TTL for kubectl to 6 hours. ([#107141](https://github.com/kubernetes/kubernetes/pull/107141), [@mk46](https://github.com/mk46)) -- Introduce policy to allow the HPA to consume the `external.metrics.k8s.io` API group. ([#104244](https://github.com/kubernetes/kubernetes/pull/104244), [@dgrisonnet](https://github.com/dgrisonnet)) -- Kube-apiserver: Subresources such as `status` and `scale` now support tabular output content types. ([#103516](https://github.com/kubernetes/kubernetes/pull/103516), [@ykakarap](https://github.com/ykakarap)) -- Kube-apiserver: when merging lists, Server Side Apply now prefers the order of the submitted request instead of the existing persisted object. ([#107565](https://github.com/kubernetes/kubernetes/pull/107565), [@jiahuif](https://github.com/jiahuif)) -- Kubeadm: added support for dry running `kubeadm reset`. The new flag `kubeadm reset --dry-run` is similar to the existing flag for `kubeadm init/join/upgrade` and allows you to see what changes would be applied. ([#107512](https://github.com/kubernetes/kubernetes/pull/107512), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: added the flag `--experimental-initial-corrupt-check` to etcd static Pod manifests to ensure etcd member data consistency ([#109074](https://github.com/kubernetes/kubernetes/pull/109074), [@neolit123](https://github.com/neolit123)) -- Kubeadm: better surface errors during `kubeadm upgrade` when waiting for the kubelet to restart static pods on control plane nodes ([#108315](https://github.com/kubernetes/kubernetes/pull/108315), [@Monokaix](https://github.com/Monokaix)) -- Kubeadm: improve the strict parsing of user YAML/JSON configuration files. Next to printing warnings for unknown and duplicate fields (current state), also print warnings for fields with incorrect case sensitivity - e.g. `controlPlaneEndpoint` (valid), `ControlPlaneEndpoint` (invalid). Instead of only printing warnings during `init` and `join` also print warnings when downloading the ClusterConfiguration, KubeletConfiguration or KubeProxyConfiguration objects from the cluster. This can be useful if the user has patched these objects in their respective ConfigMaps with mistakes. ([#107725](https://github.com/kubernetes/kubernetes/pull/107725), [@neolit123](https://github.com/neolit123)) -- Kubectl now supports shell completion for the <type>/<name> format for specifying resources. - kubectl now provides shell completion for container names following the `--container/-c` flag of the `exec` command. - kubectl's shell completion now suggests resource types for commands that only apply to pods. ([#108493](https://github.com/kubernetes/kubernetes/pull/108493), [@marckhouzam](https://github.com/marckhouzam)) -- Kubelet: add `kubelet_volume_metric_collection_duration_seconds` metrics for volume disk usage calculation duration ([#107201](https://github.com/kubernetes/kubernetes/pull/107201), [@pacoxu](https://github.com/pacoxu)) -- Kubelet: the following dockershim related flags are also removed along with dockershim `--experimental-dockershim-root-directory`, `--docker-endpoint`, `--image-pull-progress-deadline`, `--network-plugin`, `--cni-conf-dir`, `--cni-bin-dir`, `--cni-cache-dir`, `--network-plugin-mtu`. ([#106907](https://github.com/kubernetes/kubernetes/pull/106907), [@cyclinder](https://github.com/cyclinder)) -- Kubernetes 1.24 bumped version of golang it is compiled with to go1.18, which introduced significant changes to its garbage collection algorithm. As a result, we observed an increase in memory usage for kube-apiserver in larger an heavily loaded clusters up to ~25% (with the benefit of API call latencies drop by up to 10x on 99th percentiles). If the memory increase is not acceptable for you you can mitigate by setting GOGC env variable (for our tests using GOGC=63 brings memory usage back to original value, although the exact value may depend on usage patterns on your cluster). ([#108870](https://github.com/kubernetes/kubernetes/pull/108870), [@dims](https://github.com/dims)) -- Kubernetes 1.24 is built with go1.18, which will no longer validate certificates signed with a SHA-1 hash algorithm by default. See https://golang.org/doc/go1.18#sha1 for more details. If you are using certificates like this in admission or conversion ([#109024](https://github.com/kubernetes/kubernetes/pull/109024), [@stlaz](https://github.com/stlaz)) -- Kubernetes in now built with go1.18rc1 ([#107105](https://github.com/kubernetes/kubernetes/pull/107105), [@justaugustus](https://github.com/justaugustus)) -- Kubernetes is now built with Golang 1.17.4 ([#106833](https://github.com/kubernetes/kubernetes/pull/106833), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with Golang 1.17.5. ([#106956](https://github.com/kubernetes/kubernetes/pull/106956), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with Golang 1.17.6. ([#107612](https://github.com/kubernetes/kubernetes/pull/107612), [@palnabarun](https://github.com/palnabarun)) -- Kubernetes is now built with Golang 1.17.7 ([#108091](https://github.com/kubernetes/kubernetes/pull/108091), [@xmudrii](https://github.com/xmudrii)) -- Kubernetes is now built with Golang 1.18.1 ([#109461](https://github.com/kubernetes/kubernetes/pull/109461), [@cpanato](https://github.com/cpanato)) -- Leader Migration is now GA. All new configuration files onwards should use version v1. ([#109072](https://github.com/kubernetes/kubernetes/pull/109072), [@jiahuif](https://github.com/jiahuif)) -- Mark AzureDisk CSI migration as GA ([#107681](https://github.com/kubernetes/kubernetes/pull/107681), [@andyzhangx](https://github.com/andyzhangx)) -- Move volume expansion feature to GA ([#108929](https://github.com/kubernetes/kubernetes/pull/108929), [@gnufied](https://github.com/gnufied)) -- Moving MixedProtocolLBService from alpha to beta ([#109213](https://github.com/kubernetes/kubernetes/pull/109213), [@bridgetkromhout](https://github.com/bridgetkromhout)) -- New "field_validation_request_duration_seconds" metric, measures how long requests take, indicating the value of the fieldValidation query parameter and whether or not server-side field validation is enabled on the apiserver ([#109120](https://github.com/kubernetes/kubernetes/pull/109120), [@kevindelgado](https://github.com/kevindelgado)) -- New feature gate, ServiceIPStaticSubrange, to enable the new strategy in the Service IP allocators, so the IP range is subdivided and dynamic allocated ClusterIP addresses for Services are allocated preferently from the upper range. ([#106792](https://github.com/kubernetes/kubernetes/pull/106792), [@aojea](https://github.com/aojea)) -- No ([#108432](https://github.com/kubernetes/kubernetes/pull/108432), [@iXinqi](https://github.com/iXinqi)) [SIG Testing and Windows] -- OpenAPI definitions served by kube-apiserver now include enum types by default. ([#108898](https://github.com/kubernetes/kubernetes/pull/108898), [@jiahuif](https://github.com/jiahuif)) -- OpenStack Cinder CSI migration is now GA and switched on by default, Cinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work (has been since v1.21). ([#107462](https://github.com/kubernetes/kubernetes/pull/107462), [@dims](https://github.com/dims)) -- PreFilter extension in the scheduler framework now returns not only status but also PreFilterResult ([#108648](https://github.com/kubernetes/kubernetes/pull/108648), [@ahg-g](https://github.com/ahg-g)) -- Promoted graceful shutdown based on pod priority to beta ([#107986](https://github.com/kubernetes/kubernetes/pull/107986), [@wzshiming](https://github.com/wzshiming)) -- Removed feature gate `SetHostnameAsFQDN`. ([#108038](https://github.com/kubernetes/kubernetes/pull/108038), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Removed kube-scheduler insecure flags. You can use `--bind-address` and `--secure-port` instead. ([#106865](https://github.com/kubernetes/kubernetes/pull/106865), [@jonyhy96](https://github.com/jonyhy96)) -- Removed the `ImmutableEphemeralVolumes` feature gate. ([#107152](https://github.com/kubernetes/kubernetes/pull/107152), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Set `PodMaxUnschedulableQDuration` as 5 min. ([#108761](https://github.com/kubernetes/kubernetes/pull/108761), [@denkensk](https://github.com/denkensk)) -- Support in-tree PV deletion protection finalizer. ([#108400](https://github.com/kubernetes/kubernetes/pull/108400), [@deepakkinni](https://github.com/deepakkinni)) -- The `.spec.loadBalancerClass` field for Services is now generally available. ([#107979](https://github.com/kubernetes/kubernetes/pull/107979), [@XudongLiuHarold](https://github.com/XudongLiuHarold)) -- The `NamespaceDefaultLabelName` feature gate, GA since v1.22, is now removed. ([#106838](https://github.com/kubernetes/kubernetes/pull/106838), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- The `kubectl logs` will now warn and default to the first container in a pod. This new behavior brings it in line with `kubectl exec`. ([#105964](https://github.com/kubernetes/kubernetes/pull/105964), [@kidlj](https://github.com/kidlj)) -- The `v1` version of `LeaderMigrationConfiguration` supports only `leases` API for leader election. To use formerly supported mechanisms, please continue using `v1beta1`. ([#108016](https://github.com/kubernetes/kubernetes/pull/108016), [@jiahuif](https://github.com/jiahuif)) -- The kubelet now creates an iptables chain named `KUBE-IPTABLES-HINT` in - the `mangle` table. Containerized components that need to modify iptables - rules in the host network namespace can use the existence of this chain - to more-reliably determine whether the system is using iptables-legacy or - iptables-nft. ([#109059](https://github.com/kubernetes/kubernetes/pull/109059), [@danwinship](https://github.com/danwinship)) -- The output of `kubectl describe ingress` now includes an IngressClass name if available. ([#107921](https://github.com/kubernetes/kubernetes/pull/107921), [@mpuckett159](https://github.com/mpuckett159)) -- The scheduler prints info logs when the extender returned an error. (`--v>5`) ([#107974](https://github.com/kubernetes/kubernetes/pull/107974), [@sanposhiho](https://github.com/sanposhiho)) -- The script `cluster/gce/gci/configure.sh` now supports downloading `crictl` on ARM64 nodes ([#108034](https://github.com/kubernetes/kubernetes/pull/108034), [@tstapler](https://github.com/tstapler)) -- Turn on `CSIMigrationAzureFile` by default on 1.24 ([#105070](https://github.com/kubernetes/kubernetes/pull/105070), [@andyzhangx](https://github.com/andyzhangx)) -- Update the k8s.io/system-validators library to v1.7.0 ([#108988](https://github.com/kubernetes/kubernetes/pull/108988), [@neolit123](https://github.com/neolit123)) -- Updated golang.org/x/net to v0.0.0-20211209124913-491a49abca63. ([#106949](https://github.com/kubernetes/kubernetes/pull/106949), [@cpanato](https://github.com/cpanato)) -- Updates `kubectl kustomize` and `kubectl apply -k` to Kustomize v4.5.4 ([#108994](https://github.com/kubernetes/kubernetes/pull/108994), [@KnVerey](https://github.com/KnVerey)) -- When invoked with `-list-images`, the `e2e.test` binary now also lists the images that might be needed for storage tests. ([#108458](https://github.com/kubernetes/kubernetes/pull/108458), [@pohly](https://github.com/pohly)) -- `kubectl config delete-user` now supports completion ([#107142](https://github.com/kubernetes/kubernetes/pull/107142), [@dimbleby](https://github.com/dimbleby)) -- `kubectl create token` can now be used to request a service account token, and permission to request service account tokens is added to the `edit` and `admin` RBAC roles ([#107880](https://github.com/kubernetes/kubernetes/pull/107880), [@liggitt](https://github.com/liggitt)) -- `kubectl version` now includes information on the embedded version of Kustomize ([#108817](https://github.com/kubernetes/kubernetes/pull/108817), [@KnVerey](https://github.com/KnVerey)) - -### Bug or Regression - -- A node IP provided to kublet via `--node-ip` will now be preferred for when determining the node's primary IP and using the external cloud provider (CCM). ([#107750](https://github.com/kubernetes/kubernetes/pull/107750), [@stephenfin](https://github.com/stephenfin)) -- A static pod that is rapidly updated was failing to start until the Kubelet was restarted. ([#107900](https://github.com/kubernetes/kubernetes/pull/107900), [@smarterclayton](https://github.com/smarterclayton)) -- Add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state to kubelet ([#108758](https://github.com/kubernetes/kubernetes/pull/108758), [@fengzixu](https://github.com/fengzixu)) -- Added a new label `type` to `apiserver_flowcontrol_request_execution_seconds` metric - it has the following values: - 'regular': indicates that it is a non long running request - 'watch': indicates that it is a watch request. ([#105517](https://github.com/kubernetes/kubernetes/pull/105517), [@tkashem](https://github.com/tkashem)) -- Added a test to guarantee that conformance clusters require at least 2 untainted nodes. ([#106313](https://github.com/kubernetes/kubernetes/pull/106313), [@aojea](https://github.com/aojea)) -- Adds PV deletion protection finalizer only when PV reclaimPolicy is Delete for dynamically provisioned volumes. ([#109205](https://github.com/kubernetes/kubernetes/pull/109205), [@deepakkinni](https://github.com/deepakkinni)) -- Allowed attached volumes to be mounted quicker by skipping exponential backoff when checking for reported-in-use volumes. ([#106853](https://github.com/kubernetes/kubernetes/pull/106853), [@gnufied](https://github.com/gnufied)) -- Alowed useful inclusion of `-args $prog_args` in KUBE_TEST_ARGS, when doing `make test-integration`. ([#107516](https://github.com/kubernetes/kubernetes/pull/107516), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) -- An inefficient lock in EndpointSlice controller metrics cache has been reworked. Network programming latency may be significantly reduced in certain scenarios, especially in clusters with a large number of Services. ([#107091](https://github.com/kubernetes/kubernetes/pull/107091), [@robscott](https://github.com/robscott)) -- Apiserver will now reject connection attempts to `0.0.0.0/::` when handling a proxy subresource request. ([#107402](https://github.com/kubernetes/kubernetes/pull/107402), [@anguslees](https://github.com/anguslees)) -- Bug: client-go clientset was not defaulting to the user agent, and was using the default golang agent for all the requests. ([#108772](https://github.com/kubernetes/kubernetes/pull/108772), [@aojea](https://github.com/aojea)) -- Bump `sigs.k8s.io/apiserver-network-proxy/konnectivity-client@v0.0.30` to fix a goroutine leak in kube-apiserver when using egress selctor with the gRPC mode. ([#108437](https://github.com/kubernetes/kubernetes/pull/108437), [@andrewsykim](https://github.com/andrewsykim)) -- CEL validation failure returns object type instead of object. ([#107090](https://github.com/kubernetes/kubernetes/pull/107090), [@cici37](https://github.com/cici37)) -- CRI-API: IPs returned by `PodSandboxNetworkStatus`` are ignored by the kubelet for host-network pods. ([#106715](https://github.com/kubernetes/kubernetes/pull/106715), [@aojea](https://github.com/aojea)) -- Call `NodeExpand` on all nodes in case of RWX volumes ([#108693](https://github.com/kubernetes/kubernetes/pull/108693), [@gnufied](https://github.com/gnufied)) -- Changed node staging path for CSI driver to use a PV agnostic path. Nodes must be drained before updating the kubelet with this change. ([#107065](https://github.com/kubernetes/kubernetes/pull/107065), [@saikat-royc](https://github.com/saikat-royc)) -- Client-go: fixed the paged list calls with `ResourceVersionMatch` set would fail once paging is kicked in. ([#107311](https://github.com/kubernetes/kubernetes/pull/107311), [@fasaxc](https://github.com/fasaxc)) -- Correct event registration for multiple scheduler plugins; this fixes a potential significant delay in re-queueing unschedulable pods. ([#109442](https://github.com/kubernetes/kubernetes/pull/109442), [@ahg-g](https://github.com/ahg-g)) -- Etcd: Update to v3.5.3 ([#109471](https://github.com/kubernetes/kubernetes/pull/109471), [@justaugustus](https://github.com/justaugustus)) -- Existing InTree AzureFile PVs which don't have a secret namespace defined will now work properly after enabling CSI migration - the namespace will be obtained from ClaimRef. ([#108000](https://github.com/kubernetes/kubernetes/pull/108000), [@RomanBednar](https://github.com/RomanBednar)) -- Failure to start a container cannot accidentally result in the pod being considered "Succeeded" in the presence of deletion. ([#107845](https://github.com/kubernetes/kubernetes/pull/107845), [@smarterclayton](https://github.com/smarterclayton)) -- Fix a race in the timeout handler that could lead to kube-apiserver crashes ([#108455](https://github.com/kubernetes/kubernetes/pull/108455), [@Argh4k](https://github.com/Argh4k)) -- Fix container creation errors for pods with cpu requests bigger than 256 cpus ([#106570](https://github.com/kubernetes/kubernetes/pull/106570), [@odinuge](https://github.com/odinuge)) -- Fix issue where the job controller might not remove the job tracking finalizer from pods when deleting a job, or when the pod is orphan ([#108752](https://github.com/kubernetes/kubernetes/pull/108752), [@alculquicondor](https://github.com/alculquicondor)) -- Fix libct/cg/fs2: fixed GetStats for unsupported hugetlb error on Raspbian Bullseye ([#106912](https://github.com/kubernetes/kubernetes/pull/106912), [@Letme](https://github.com/Letme)) -- Fix the bug that the outdated services may be sent to the cloud provider ([#107631](https://github.com/kubernetes/kubernetes/pull/107631), [@lzhecheng](https://github.com/lzhecheng)) -- Fix the overestimated cost of delegated API requests in kube-apiserver API priority & fairness ([#109188](https://github.com/kubernetes/kubernetes/pull/109188), [@wojtek-t](https://github.com/wojtek-t)) -- Fix to allow `fsGroup` to be applied for CSI Inline Volumes ([#108662](https://github.com/kubernetes/kubernetes/pull/108662), [@dobsonj](https://github.com/dobsonj)) -- Fixed CSI migration of Azure Disk in-tree StorageClasses with topology requirements in Azure regions that do not have availability zones. ([#109154](https://github.com/kubernetes/kubernetes/pull/109154), [@jsafrane](https://github.com/jsafrane)) -- Fixed `--retries` functionality for negative values in `kubectl cp` ([#108748](https://github.com/kubernetes/kubernetes/pull/108748), [@atiratree](https://github.com/atiratree)) -- Fixed `azureDisk` parameter lowercase translation issue. ([#107429](https://github.com/kubernetes/kubernetes/pull/107429), [@andyzhangx](https://github.com/andyzhangx)) -- Fixed `azureFile` `volumeID` collision issue in CSI migration. ([#107575](https://github.com/kubernetes/kubernetes/pull/107575), [@andyzhangx](https://github.com/andyzhangx)) -- Fixed a bug in attachdetach controller that didn't properly handle kube-apiserver errors leading to stuck attachments/detachments. ([#108167](https://github.com/kubernetes/kubernetes/pull/108167), [@jfremy](https://github.com/jfremy)) -- Fixed a bug that a pod's `.status.nominatedNodeName` is not cleared properly, and thus over-occupied system resources. ([#106816](https://github.com/kubernetes/kubernetes/pull/106816), [@Huang-Wei](https://github.com/Huang-Wei)) -- Fixed a bug that caused credentials in an exec plugin to override the static certificates set in a kubeconfig. ([#107410](https://github.com/kubernetes/kubernetes/pull/107410), [@margocrawf](https://github.com/margocrawf)) -- Fixed a bug that could cause panic when a `/healthz` request times out. ([#107034](https://github.com/kubernetes/kubernetes/pull/107034), [@benluddy](https://github.com/benluddy)) -- Fixed a bug that out-of-tree plugin is misplaced when using scheduler v1beta3 config ([#108613](https://github.com/kubernetes/kubernetes/pull/108613), [@Huang-Wei](https://github.com/Huang-Wei)) -- Fixed a bug where a partial `EndpointSlice` update could cause node name information to be dropped from endpoints that were not updated. ([#108198](https://github.com/kubernetes/kubernetes/pull/108198), [@liggitt](https://github.com/liggitt)) -- Fixed a bug where unwanted fields were being returned from a `create --dry-run`: uid and, if generateName was used, name. ([#107088](https://github.com/kubernetes/kubernetes/pull/107088), [@joejulian](https://github.com/joejulian)) -- Fixed a bug where vSphere client connections where not being closed during testing. Leaked vSphere client sessions were causing resource exhaustion during automated testing. ([#107337](https://github.com/kubernetes/kubernetes/pull/107337), [@derek-pryor](https://github.com/derek-pryor)) -- Fixed a panic when using invalid output format in `kubectl create secret` command. ([#107221](https://github.com/kubernetes/kubernetes/pull/107221), [@rikatz](https://github.com/rikatz)) -- Fixed a rare race condition handling requests that timeout. ([#107452](https://github.com/kubernetes/kubernetes/pull/107452), [@liggitt](https://github.com/liggitt)) -- Fixed a regression in 1.23 that incorrectly pruned data from array items of a custom resource that set `x-kubernetes-preserve-unknown-fields: true`. ([#107688](https://github.com/kubernetes/kubernetes/pull/107688), [@liggitt](https://github.com/liggitt)) -- Fixed a regression in 1.23 where update requests to previously persisted `Service` objects that have not been modified since 1.19 can be rejected with an incorrect `spec.clusterIPs: Required value` error. ([#107847](https://github.com/kubernetes/kubernetes/pull/107847), [@thockin](https://github.com/thockin)) -- Fixed a regression that could incorrectly reject pods with `OutOfCpu` errors if they were rapidly scheduled after other pods were reported as complete in the API. The Kubelet now waits to report the phase of a pod as terminal in the API until all running containers are guaranteed to have stopped and no new containers can be started. Short-lived pods may take slightly longer (~1s) to report Succeeded or Failed after this change. ([#108366](https://github.com/kubernetes/kubernetes/pull/108366), [@smarterclayton](https://github.com/smarterclayton)) -- Fixed bug in `TopologyManager` for ensuring aligned allocations on machines with more than 2 NUMA nodes ([#108052](https://github.com/kubernetes/kubernetes/pull/108052), [@klueska](https://github.com/klueska)) -- Fixed bug in error messaging for basic-auth and ssh secret validations. ([#106179](https://github.com/kubernetes/kubernetes/pull/106179), [@vivek-koppuru](https://github.com/vivek-koppuru)) -- Fixed detaching CSI volumes from nodes when a CSI driver name has prefix "csi-". ([#107025](https://github.com/kubernetes/kubernetes/pull/107025), [@jsafrane](https://github.com/jsafrane)) -- Fixed duplicate port opening in kube-proxy when `--nodeport-addresses` is empty. ([#107413](https://github.com/kubernetes/kubernetes/pull/107413), [@tnqn](https://github.com/tnqn)) -- Fixed handling of objects with invalid selectors. ([#107559](https://github.com/kubernetes/kubernetes/pull/107559), [@liggitt](https://github.com/liggitt)) -- Fixed indexer bug that resulted in incorrect index updates if number of index values for a given object was changing during update ([#109137](https://github.com/kubernetes/kubernetes/pull/109137), [@wojtek-t](https://github.com/wojtek-t)) -- Fixed kubectl bug where bash completions don't work if `--context` flag is specified with a value that contains a colon. ([#107439](https://github.com/kubernetes/kubernetes/pull/107439), [@brianpursley](https://github.com/brianpursley)) -- Fixed performance regression in JSON logging caused by syncing stdout every time error was logged. ([#107035](https://github.com/kubernetes/kubernetes/pull/107035), [@serathius](https://github.com/serathius)) -- Fixed regression in CPUManager that it will release exclusive CPUs in app containers inherited from init containers when the init containers were removed. ([#104837](https://github.com/kubernetes/kubernetes/pull/104837), [@eggiter](https://github.com/eggiter)) -- Fixed static pod add and removes restarts in certain cases. ([#107695](https://github.com/kubernetes/kubernetes/pull/107695), [@rphillips](https://github.com/rphillips)) -- Fixed: deleted a non-existent Azure disk issue. ([#107406](https://github.com/kubernetes/kubernetes/pull/107406), [@andyzhangx](https://github.com/andyzhangx)) -- Fixed: do not return early in the node informer when there is no change of the topology label. ([#108149](https://github.com/kubernetes/kubernetes/pull/108149), [@nilo19](https://github.com/nilo19)) -- Fixed: removed outdated ipv4 route when the corresponding node is deleted. ([#106164](https://github.com/kubernetes/kubernetes/pull/106164), [@nilo19](https://github.com/nilo19)) -- Fixes bug in CronJob Controller V2 where it would lose track of jobs upon job template labels change. ([#107997](https://github.com/kubernetes/kubernetes/pull/107997), [@d-honeybadger](https://github.com/d-honeybadger)) -- If drainer has nil for Ctx or Client it will error with `RunCordonOrUncordon`. ([#105297](https://github.com/kubernetes/kubernetes/pull/105297), [@jackfrancis](https://github.com/jackfrancis)) -- Improved handling of unmount failures when device may be in-use by another container/process. ([#107789](https://github.com/kubernetes/kubernetes/pull/107789), [@gnufied](https://github.com/gnufied)) -- Improved logging when volume times out waiting for attach/detach. ([#108628](https://github.com/kubernetes/kubernetes/pull/108628), [@RomanBednar](https://github.com/RomanBednar)) -- Improved the rounding of `PodTopologySpread` scores to offer better scoring when spreading a low number of pods. ([#107384](https://github.com/kubernetes/kubernetes/pull/107384), [@sanposhiho](https://github.com/sanposhiho)) -- Increase Azure ACR credential provider timeout ([#108209](https://github.com/kubernetes/kubernetes/pull/108209), [@andyzhangx](https://github.com/andyzhangx)) -- Kube-apiserver: Server Side Apply merge order is reverted to match v1.22 behavior until http://issue.k8s.io/104641 is resolved. ([#106660](https://github.com/kubernetes/kubernetes/pull/106660), [@liggitt](https://github.com/liggitt)) -- Kube-apiserver: ensures the namespace of objects sent to admission webhooks matches the request namespace. Previously, objects without a namespace set would have the request namespace populated after mutating admission, and objects with a namespace that did not match the request namespace would be rejected after admission. ([#94637](https://github.com/kubernetes/kubernetes/pull/94637), [@liggitt](https://github.com/liggitt)) -- Kube-apiserver: removed `apf_fd` from server logs which could contain data identifying the requesting user ([#108631](https://github.com/kubernetes/kubernetes/pull/108631), [@jupblb](https://github.com/jupblb)) -- Kube-proxy in iptables mode now only logs the full iptables input at `-v=9` rather than `-v=5`. ([#108224](https://github.com/kubernetes/kubernetes/pull/108224), [@danwinship](https://github.com/danwinship)) -- Kube-proxy will no longer hold service node ports open on the node. Users are still advised not to run any listener on node ports range used by kube-proxy. ([#108496](https://github.com/kubernetes/kubernetes/pull/108496), [@khenidak](https://github.com/khenidak)) -- Kubeadm: allow the `certs check-expiration` command to not require the existence of the cluster CA key (ca.key file) when checking the expiration of managed certificates in kubeconfig files. ([#106854](https://github.com/kubernetes/kubernetes/pull/106854), [@neolit123](https://github.com/neolit123)) -- Kubeadm: during execution of the `certs check-expiration` command, treat the etcd CA as external if there is a missing etcd CA key file (etcd/ca.key) and perform the proper validation on certificates signed by the etcd CA. Additionally, make sure that the CA for all entries in the output table is included - for both certificates on disk and in kubeconfig files. ([#106891](https://github.com/kubernetes/kubernetes/pull/106891), [@neolit123](https://github.com/neolit123)) -- Kubeadm: fixed a bug related to a warning printed if the `KubeletConfiguration` `resolvConf` field value does not match `/run/systemd/resolve/resolv.conf` ([#107785](https://github.com/kubernetes/kubernetes/pull/107785), [@chendave](https://github.com/chendave)) -- Kubeadm: fixed a bug when using `kubeadm init --dry-run` with certificate authority files (`ca.key` / `ca.crt`) present in `/etc/kubernetes/pki`) ([#108410](https://github.com/kubernetes/kubernetes/pull/108410), [@Haleygo](https://github.com/Haleygo)) -- Kubeadm: fixed a bug where Windows nodes fail to join an IPv6 cluster due to preflight errors ([#108769](https://github.com/kubernetes/kubernetes/pull/108769), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: fixed the bug that `kubeadm certs generate-csr` command does not remove duplicated SANs ([#107982](https://github.com/kubernetes/kubernetes/pull/107982), [@SataQiu](https://github.com/SataQiu)) -- Kubelet now checks "NoExecute" taint/toleration before accepting pods, except for static pods. ([#101218](https://github.com/kubernetes/kubernetes/pull/101218), [@gjkim42](https://github.com/gjkim42)) -- Metrics Server image bumped to v0.5.2 ([#106492](https://github.com/kubernetes/kubernetes/pull/106492), [@serathius](https://github.com/serathius)) -- Modified command line errors (for example, `kubectl list` -> `unknown command`) that were printed as log message with escaped line breaks instead of a multi-line plain text, making the error hard to read. ([#107044](https://github.com/kubernetes/kubernetes/pull/107044), [@pohly](https://github.com/pohly)) -- Modified log messages that were logged with `"v":0` in JSON output although they were debug messages with a higher verbosity. ([#106978](https://github.com/kubernetes/kubernetes/pull/106978), [@pohly](https://github.com/pohly)) -- No ([#107769](https://github.com/kubernetes/kubernetes/pull/107769), [@liurupeng](https://github.com/liurupeng)) [SIG Cloud Provider and Windows] -- NodeRestriction admission: nodes are now allowed to update PersistentVolumeClaim status fields `resizeStatus` and `allocatedResources` when the `RecoverVolumeExpansionFailure` feature is enabled. ([#107686](https://github.com/kubernetes/kubernetes/pull/107686), [@gnufied](https://github.com/gnufied)) -- Only extend token lifetimes when `--service-account-extend-token-expiration` is true and the requested token audiences are empty or exactly match all values for `--api-audiences`. ([#105954](https://github.com/kubernetes/kubernetes/pull/105954), [@jyotimahapatra](https://github.com/jyotimahapatra)) -- Prevent kube-scheduler from nominating a Pod that was already scheduled to a node ([#109245](https://github.com/kubernetes/kubernetes/pull/109245), [@alculquicondor](https://github.com/alculquicondor)) -- Prevent unnecessary `Endpoints` and `EndpointSlice` updates caused by `Pod ResourceVersion` change ([#108078](https://github.com/kubernetes/kubernetes/pull/108078), [@tnqn](https://github.com/tnqn)) -- Print `<default>` as the value in case kubectl describe ingress shows `default-backend:80` when no default backend is present ([#108506](https://github.com/kubernetes/kubernetes/pull/108506), [@jlsong01](https://github.com/jlsong01)) -- Publishing kube-proxy metrics for Windows kernel-mode ([#106581](https://github.com/kubernetes/kubernetes/pull/106581), [@knabben](https://github.com/knabben)) -- Re-adds response status and headers on verbose kubectl responses ([#108505](https://github.com/kubernetes/kubernetes/pull/108505), [@rikatz](https://github.com/rikatz)) -- Record requests rejected with 429 in the apiserver_request_total metric ([#108927](https://github.com/kubernetes/kubernetes/pull/108927), [@wojtek-t](https://github.com/wojtek-t)) -- Removed validation if AppArmor profiles are loaded on the local node. This should be handled by the container runtime. ([#97966](https://github.com/kubernetes/kubernetes/pull/97966), [@saschagrunert](https://github.com/saschagrunert)) -- Replace the url label of `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` metrics with a host label to prevent cardinality explosions and keep only the useful information. This is a breaking change required for security reasons. ([#106539](https://github.com/kubernetes/kubernetes/pull/106539), [@dgrisonnet](https://github.com/dgrisonnet)) -- Restored `NumPDBViolations` info of nodes, when `HTTPExtender ProcessPreemption`. This info will be used in subsequent filtering steps - `pickOneNodeForPreemption` ([#105853](https://github.com/kubernetes/kubernetes/pull/105853), [@caden2016](https://github.com/caden2016)) -- Reverted graceful node shutdown to match 1.21 behavior of setting pods that have not yet successfully completed to "Failed" phase if the GracefulNodeShutdown feature is enabled in kubelet. The GracefulNodeShutdown feature is beta and must be explicitly configured via kubelet config to be enabled in 1.21+. This changes 1.22 and 1.23 behavior on node shutdown to match 1.21. If you do not want pods to be marked terminated on node shutdown in 1.22 and 1.23, disable the GracefulNodeShutdown feature. ([#106901](https://github.com/kubernetes/kubernetes/pull/106901), [@bobbypage](https://github.com/bobbypage)) -- Reverts the CRI API version surfaced by dockershim to v1alpha2 ([#106803](https://github.com/kubernetes/kubernetes/pull/106803), [@saschagrunert](https://github.com/saschagrunert)) -- Services with "internalTrafficPolicy: Local" now behave more like - "externalTrafficPolicy: Local". Also, "internalTrafficPolicy: Local, - externalTrafficPolicy: Cluster" is now implemented correctly. ([#106497](https://github.com/kubernetes/kubernetes/pull/106497), [@danwinship](https://github.com/danwinship)) -- Sets JobTrackingWithFinalizers, a beta feature, as disabled by default, due to unresolved bug https://github.com/kubernetes/kubernetes/issues/109485 ([#109487](https://github.com/kubernetes/kubernetes/pull/109487), [@alculquicondor](https://github.com/alculquicondor)) -- Skip re-allocate logic if pod is already removed to avoid panic ([#108831](https://github.com/kubernetes/kubernetes/pull/108831), [@waynepeking348](https://github.com/waynepeking348)) -- The Service field `spec.internalTrafficPolicy` is no longer defaulted for Services when the type is `ExternalName`. The field is also dropped on read when the Service type is `ExternalName`. ([#104846](https://github.com/kubernetes/kubernetes/pull/104846), [@andrewsykim](https://github.com/andrewsykim)) -- The `ServerSideFieldValidation` feature has been reverted to alpha for 1.24. ([#109271](https://github.com/kubernetes/kubernetes/pull/109271), [@liggitt](https://github.com/liggitt)) -- The `TopologyAwareHints` feature gate is now enabled by default. This will allow users to opt-in to Topology Aware Hints by setting the `service.kubernetes.io/topology-aware-hints` on a Service. This will not affect any Services without that annotation set. ([#108747](https://github.com/kubernetes/kubernetes/pull/108747), [@robscott](https://github.com/robscott)) -- The deprecated flag `--really-crash-for-testing` was removed. ([#101719](https://github.com/kubernetes/kubernetes/pull/101719), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) -- The kubelet no longer forcefully closes active connections on heartbeat failures, using the HTTP2 health check mechanism to detect broken connections. Users can force the previous behavior of the kubelet by setting the environment variable DISABLE_HTTP2. ([#108107](https://github.com/kubernetes/kubernetes/pull/108107), [@aojea](https://github.com/aojea)) -- This code change fixes the bug that UDP services would trigger unnecessary LoadBalancer updates. The root cause is that a field not working for non-TCP protocols is considered. - ref: https://github.com/kubernetes-sigs/cloud-provider-azure/pull/1090 ([#107981](https://github.com/kubernetes/kubernetes/pull/107981), [@lzhecheng](https://github.com/lzhecheng)) -- Topology translation of in-tree vSphere volume to vSphere CSI. ([#108611](https://github.com/kubernetes/kubernetes/pull/108611), [@divyenpatel](https://github.com/divyenpatel)) -- Updating kubelet permissions check for Windows nodes to see if process is elevated instead of checking if process owner is in Administrators group ([#108146](https://github.com/kubernetes/kubernetes/pull/108146), [@marosset](https://github.com/marosset)) -- `apiserver`, if configured to reconcile the `kubernetes.default` service endpoints, checks if the configured Service IP range matches the apiserver public address IP family, and fails to start if not. ([#106721](https://github.com/kubernetes/kubernetes/pull/106721), [@aojea](https://github.com/aojea)) -- `kubectl version` now fails when given extra arguments. ([#107967](https://github.com/kubernetes/kubernetes/pull/107967), [@jlsong01](https://github.com/jlsong01)) - -### Other (Cleanup or Flake) - -- '`build/dependencies.yaml`: remove the dependency on Docker. With the dockershim removal, core Kubernetes no longer - has to track the latest validated version of Docker.' ([#107607](https://github.com/kubernetes/kubernetes/pull/107607), [@neolit123](https://github.com/neolit123)) -- API server's deprecated `--experimental-encryption-provider-config` flag is now removed. Adapt your machinery to use the `--encryption-provider-config` flag that is available since v1.13. ([#108423](https://github.com/kubernetes/kubernetes/pull/108423), [@ialidzhikov](https://github.com/ialidzhikov)) -- API server's deprecated `--target-ram-mb` flag is now removed. ([#108457](https://github.com/kubernetes/kubernetes/pull/108457), [@ialidzhikov](https://github.com/ialidzhikov)) -- Added PreemptionPolicy in PriorityClass describe ([#108701](https://github.com/kubernetes/kubernetes/pull/108701), [@denkensk](https://github.com/denkensk)) -- Added an e2e test to verify that the cluster is not vulnerable to CVE-2021-29923 when using Services with IPs with leading zeros, note that this test is a necessary but not sufficient condition, all the components in the clusters that consume IPs addresses from the APIs MUST interpret them as decimal or discard them. ([#107552](https://github.com/kubernetes/kubernetes/pull/107552), [@aojea](https://github.com/aojea)) -- Added an example for the `kubectl plugin list` command. ([#106600](https://github.com/kubernetes/kubernetes/pull/106600), [@bergerhoffer](https://github.com/bergerhoffer)) -- Added details about preemption in the event for scheduling failed. ([#107775](https://github.com/kubernetes/kubernetes/pull/107775), [@denkensk](https://github.com/denkensk)) -- Allow KUBE_TEST_REPO_LIST to be a remote url ([#108429](https://github.com/kubernetes/kubernetes/pull/108429), [@dims](https://github.com/dims)) -- Client-go: if resetting the body fails before a retry, an error is now surfaced to the user. ([#109050](https://github.com/kubernetes/kubernetes/pull/109050), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) -- Deprecate apiserver_dropped_requests_total metric. The same data can be read from apiserver_request_terminations_total metric. ([#109018](https://github.com/kubernetes/kubernetes/pull/109018), [@wojtek-t](https://github.com/wojtek-t)) -- Deprecated types in `k8s.io/apimachinery/util/clock`. Please use `k8s.io/utils/clock` instead. ([#106850](https://github.com/kubernetes/kubernetes/pull/106850), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) -- E2e tests wait for `kube-root-ca.crt` to be populated in namespaces for use with projected service account tokens, reducing delays starting those test pods and errors in the logs. ([#107763](https://github.com/kubernetes/kubernetes/pull/107763), [@smarterclayton](https://github.com/smarterclayton)) -- Endpoints and EndpointSlice controllers no longer populate [resourceVersion of targetRef](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-reference/#ObjectReference) in Endpoints and EndpointSlices ([#108450](https://github.com/kubernetes/kubernetes/pull/108450), [@tnqn](https://github.com/tnqn)) -- Fixed default config flags for `NewDefaultKubectlCommand`. ([#107131](https://github.com/kubernetes/kubernetes/pull/107131), [@jonnylangefeld](https://github.com/jonnylangefeld)) -- Fixed documentation typo in cloud-provider. ([#106445](https://github.com/kubernetes/kubernetes/pull/106445), [@majst01](https://github.com/majst01)) -- Fixed spelling of implemented in pkg/proxy/apis/config/types.go line 206 ([#106453](https://github.com/kubernetes/kubernetes/pull/106453), [@davidleitw](https://github.com/davidleitw)) -- Improve error message when applying CRDs before the CRD exists in a cluster ([#107363](https://github.com/kubernetes/kubernetes/pull/107363), [@eddiezane](https://github.com/eddiezane)) -- Improved algorithm for selecting `best` non-preferred hint in the TopologyManager ([#108154](https://github.com/kubernetes/kubernetes/pull/108154), [@klueska](https://github.com/klueska)) -- Kube-proxy doesn't set the sysctl `net.ipv4.conf.all.route_localnet=1` if no IPv4 loopback address is selected by the `nodePortAddresses` configuration parameter. ([#107684](https://github.com/kubernetes/kubernetes/pull/107684), [@aojea](https://github.com/aojea)) -- Kubeadm: all warning messages are printed to stderr instead of stdout. ([#107467](https://github.com/kubernetes/kubernetes/pull/107467), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: handled the removal of dockershim related flags for new kubeadm clusters. If kubelet <1.24 is on the host, kubeadm >=1.24 can continue using the built-in dockershim in the kubelet if the user passes the `{Init|Join}Configuration.nodeRegistration.criSocket` value in the kubeadm configuration to be equal to `unix:///var/run/dockershim.sock` on Unix or `npipe:////./pipe/dockershim` on Windows. If kubelet version >=1.24 is on the host, kubeadm >=1.24 will treat all container runtimes as "remote" using the kubelet flags `--container-runtime=remote --container-runtime-endpoint=scheme://some/path`. The special management for kubelet <1.24 will be removed in kubeadm 1.25. ([#106973](https://github.com/kubernetes/kubernetes/pull/106973), [@neolit123](https://github.com/neolit123)) -- Kubeadm: make sure that `kubeadm init/join` always use a URL scheme (unix:// on Linux and npipe:// on Windows) when passing a value to the `--container-runtime-endpoint` kubelet flag. This flag's value is taken from the kubeadm configuration `criSocket` field or the `--cri-socket` CLI flag. Automatically add a missing URL scheme to the user configuration in memory, but warn them that they should also update their configuration on disk manually. During `kubeadm upgrade apply/node` mutate the `/var/lib/kubelet/kubeadm-flags.env` file on disk and the `kubeadm.alpha.kubernetes.io/cri-socket` annotation Node object if needed. These automatic actions are temporary and will be removed in a future release. In the future the kubelet may not support CRI endpoints without an URL scheme. ([#107295](https://github.com/kubernetes/kubernetes/pull/107295), [@neolit123](https://github.com/neolit123)) -- Kubeadm: remove the `IPv6DualStack` feature gate. The feature has been GA and locked to enabled since 1.23. ([#106648](https://github.com/kubernetes/kubernetes/pull/106648), [@calvin0327](https://github.com/calvin0327)) -- Kubeadm: removed the deprecated `output/v1alpha1` API used for machine readable output by some kubeadm commands. In 1.23 kubeadm started using the newer version `output/v1alpha2` for the same purpose. ([#107468](https://github.com/kubernetes/kubernetes/pull/107468), [@neolit123](https://github.com/neolit123)) -- Kubeadm: removed the restriction that the `ca.crt` can only contain one certificate. If there is more than one certificate in the `ca.crt` file, kubeadm will pick the first one by default. ([#107327](https://github.com/kubernetes/kubernetes/pull/107327), [@SataQiu](https://github.com/SataQiu)) -- Kubectl stack traces now only print at verbose `-v=99` and not `-v=6` ([#108053](https://github.com/kubernetes/kubernetes/pull/108053), [@eddiezane](https://github.com/eddiezane)) -- Kubectl: restored `--dry-run`, `--dry-run=true`, and `--dry-run=false` for compatibility with pre-1.23 invocations. ([#107003](https://github.com/kubernetes/kubernetes/pull/107003), [@julianvmodesto](https://github.com/julianvmodesto)) -- Kubelet config validation error messages are updated. ([#105360](https://github.com/kubernetes/kubernetes/pull/105360), [@shuheiktgw](https://github.com/shuheiktgw)) -- Kubernetes e2e framework will use the url `invalid.registry.k8s.io/invalid` instead `invalid.com/invalid` for test that use an invalid registry. ([#107455](https://github.com/kubernetes/kubernetes/pull/107455), [@aojea](https://github.com/aojea)) -- Marked kubelet `--container-runtime-endpoint` and `--image-service-endpoint` CLI flags as stable. ([#106954](https://github.com/kubernetes/kubernetes/pull/106954), [@saschagrunert](https://github.com/saschagrunert)) -- Migrate `volume/csi/csi-client.go` logs to structured logging. ([#99441](https://github.com/kubernetes/kubernetes/pull/99441), [@CKchen0726](https://github.com/CKchen0726)) -- Migrate statefulset files to structured logging ([#106109](https://github.com/kubernetes/kubernetes/pull/106109), [@h4ghhh](https://github.com/h4ghhh)) -- Refactor kubelet command line for enabling features and "drop `RuntimeClass` feature gate" if present. Note that this feature has been on by default since 1.14 and was GA'ed in 1.20. ([#106882](https://github.com/kubernetes/kubernetes/pull/106882), [@cyclinder](https://github.com/cyclinder)) -- Remove deprecated `--serviceaccount`, `--hostport`, `--requests` and `--limits` from kubectl run. ([#108820](https://github.com/kubernetes/kubernetes/pull/108820), [@mozillazg](https://github.com/mozillazg)) -- Remove support for `node-expansion` between `node-stage` and `node-publish` ([#108614](https://github.com/kubernetes/kubernetes/pull/108614), [@gnufied](https://github.com/gnufied)) -- Removed deprecated `generator` and `container-port` flags ([#106824](https://github.com/kubernetes/kubernetes/pull/106824), [@lauchokyip](https://github.com/lauchokyip)) -- Removed kubelet `--non-masquerade-cidr` deprecated CLI flag ([#107096](https://github.com/kubernetes/kubernetes/pull/107096), [@hakman](https://github.com/hakman)) -- Rename unschedulableQ to unschedulablePods ([#108919](https://github.com/kubernetes/kubernetes/pull/108919), [@denkensk](https://github.com/denkensk)) -- SPDY transport in client-go will no longer follow redirects. ([#108531](https://github.com/kubernetes/kubernetes/pull/108531), [@tallclair](https://github.com/tallclair)) -- ServerResources was deprecated in February 2019 (https://github.com/kubernetes/kubernetes/commit/618050e) and now it's being removed and ServerGroupsAndResources is suggested to be used instead ([#107180](https://github.com/kubernetes/kubernetes/pull/107180), [@ardaguclu](https://github.com/ardaguclu)) -- The API server's deprecated `--deserialization-cache-size` flag is now removed. ([#108448](https://github.com/kubernetes/kubernetes/pull/108448), [@ialidzhikov](https://github.com/ialidzhikov)) -- The `--container-runtime` kubelet flag is deprecated and will be removed in future releases. ([#107094](https://github.com/kubernetes/kubernetes/pull/107094), [@adisky](https://github.com/adisky)) -- The `WarningHeaders` feature gate that is GA since v1.22 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#108394](https://github.com/kubernetes/kubernetes/pull/108394), [@ialidzhikov](https://github.com/ialidzhikov)) -- The `e2e.test` binary supports a new `--kubelet-root` parameter to override the default `/var/lib/kubelet` path. CSI storage tests use this. ([#108253](https://github.com/kubernetes/kubernetes/pull/108253), [@pohly](https://github.com/pohly)) -- The fluentd-elasticsearch addon is no longer included in the cluster directory. It is available from https://github.com/kubernetes-sigs/instrumentation-addons/tree/master/fluentd-elasticsearch. ([#107553](https://github.com/kubernetes/kubernetes/pull/107553), [@liggitt](https://github.com/liggitt)) -- The scheduler framework option `runAllFilters` is removed. ([#108829](https://github.com/kubernetes/kubernetes/pull/108829), [@kerthcet](https://github.com/kerthcet)) -- Updated cri-tools to [v1.23.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.23.0). ([#107604](https://github.com/kubernetes/kubernetes/pull/107604), [@saschagrunert](https://github.com/saschagrunert)) -- Updated runc to 1.1.0 and updated cadvisor to 0.44.0 ([#109029](https://github.com/kubernetes/kubernetes/pull/109029), [@ehashman](https://github.com/ehashman)) -- Updated runc to 1.1.1 ([#109104](https://github.com/kubernetes/kubernetes/pull/109104), [@kolyshkin](https://github.com/kolyshkin)) -- Updated the error message to not use the `--max-resource-write-bytes` & `--json-patch-max-copy-bytes` string. ([#106875](https://github.com/kubernetes/kubernetes/pull/106875), [@warmchang](https://github.com/warmchang)) -- Users who look at iptables dumps will see some changes in the naming and structure of rules. ([#109060](https://github.com/kubernetes/kubernetes/pull/109060), [@thockin](https://github.com/thockin)) -- Windows Pause no longer has support for SAC releases 1903, 1909, 2004. Windows image support is now Ltcs 2019 (1809), 20H2, LTSC 2022 ([#107056](https://github.com/kubernetes/kubernetes/pull/107056), [@jsturtevant](https://github.com/jsturtevant)) -- [k8s.io/utils/clock]: IntervalClock is now deprecated in favour of SimpleIntervalClock ([#108059](https://github.com/kubernetes/kubernetes/pull/108059), [@RaghavRoy145](https://github.com/RaghavRoy145)) -- `kube-addon-manager` image version is bumped to 9.1.6 ([#108341](https://github.com/kubernetes/kubernetes/pull/108341), [@zshihang](https://github.com/zshihang)) -- Add SourceVolumeMode field to VolumeSnapshotContents. Documentation for this alpha feature is pending. ([#665](https://github.com/kubernetes-csi/external-snapshotter/pull/665), [@RaunakShah](https://github.com/RaunakShah)) -- Update snapshotter module to v6 and client module to v5. Documentation for this alpha feature is pending. ([#670],(https://github.com/kubernetes-csi/external-snapshotter/pull/670), [@RaunakShah](https://github.com/RaunakShah)) - -### Uncategorized - -- Deprecate kubectl version long output, will be replaced with kubectl version ` --short`. Users requiring full output should use `--output=yaml|json` instead. ([#108987](https://github.com/kubernetes/kubernetes/pull/108987), [@soltysh](https://github.com/soltysh)) +## Major Themes + +### Dockershim Removed from kubelet + +After its deprecation in v1.20, the dockershim component has been removed from the kubelet. +From v1.24 onwards, you will need to either use one of the other [supported runtimes](https://kubernetes.io/docs/setup/production-environment/container-runtimes/) (such as containerd or CRI-O) +or use cri-dockerd if you are relying on Docker Engine as your container runtime. +For more information about ensuring your cluster is ready for this removal, please +see [this guide](/blog/2022/03/31/ready-for-dockershim-removal/). + +### Beta APIs Off by Default + +[New beta APIs will not be enabled in clusters by default](https://github.com/kubernetes/enhancements/issues/3136). +Existing beta APIs and new versions of existing beta APIs, will continue to be enabled by default. + +### Signing Release Artifacts + +Release artifacts are [signed](https://github.com/kubernetes/enhancements/issues/3031) using [cosign](https://github.com/sigstore/cosign) +signatures +and there is experimental support for [verifying image signatures](/docs/tasks/administer-cluster/verify-signed-images/). +Signing and verification of release artifacts is part of [increasing software supply chain security for the Kubernetes release process](https://github.com/kubernetes/enhancements/issues/3027). + +### OpenAPI v3 + +Kubernetes 1.24 offers beta support for publishing its APIs in the [OpenAPI v3 format](https://github.com/kubernetes/enhancements/issues/2896). + +### Storage Capacity and Volume Expansion Are Generally Available + +[Storage capacity tracking](https://github.com/kubernetes/enhancements/issues/1472) +supports exposing currently available storage capacity via [CSIStorageCapacity objects](https://kubernetes.io/docs/concepts/storage/storage-capacity/#api) +and enhances scheduling of pods that use CSI volumes with late binding. + +[Volume expansion](https://github.com/kubernetes/enhancements/issues/284) adds support +for resizing existing persistent volumes. + +### NonPreemptingPriority to Stable + +This feature adds [a new option to PriorityClasses](https://github.com/kubernetes/enhancements/issues/902), +which can enable or disable pod preemption. + +### Storage Plugin Migration + +There is work under way to [migrate the internals of in-tree storage plugins](https://github.com/kubernetes/enhancements/issues/625) to call out to CSI Plugins, +while maintaining the original API. +The [Azure Disk](https://github.com/kubernetes/enhancements/issues/1490) +and [OpenStack Cinder](https://github.com/kubernetes/enhancements/issues/1489) plugins +have both been migrated. + +### gRPC Probes Graduate to Beta + +With Kubernetes 1.24, the [gRPC probes functionality](https://github.com/kubernetes/enhancements/issues/2727) +has entered beta and is available by default. You can now [configure startup, liveness, and readiness probes](/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes) for your gRPC app +natively within Kubernetes, without exposing an HTTP endpoint or +using an extra executable. + +### Kubelet Credential Provider Graduates to Beta + +Originally released as Alpha in Kubernetes 1.20, the kubelet's support for +[image credential providers](/docs/tasks/kubelet-credential-provider/kubelet-credential-provider/) +has now graduated to Beta. +This allows the kubelet to dynamically retrieve credentials for a container image registry +using exec plugins, rather than storing credentials on the node's filesystem. + +### Contextual Logging in Alpha + +Kubernetes 1.24 has introduced [contextual logging](https://github.com/kubernetes/enhancements/issues/3077) +that enables the caller of a function to control all aspects of logging (output formatting, verbosity, additional values and names). + +### Avoiding Collisions in IP allocation to Services + +Kubernetes 1.24 introduced a new opt-in feature that allows you to +[soft-reserve a range for static IP address assignments](/docs/concepts/services-networking/service/#service-ip-static-sub-range) +to Services. +With the manual enablement of this feature, the cluster will prefer automatic assignment from +the pool of Service IP addresses thereby reducing the risk of collision. + +A Service `ClusterIP` can be assigned: + +* dynamically, which means the cluster will automatically pick a free IP within the configured Service IP range. +* statically, which means the user will set one IP within the configured Service IP range. + +Service `ClusterIP` are unique, hence, trying to create a Service with a `ClusterIP` that has already been allocated will return an error. + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- Docker runtime support using dockershim in the kubelet is now completely removed in 1.24. The kubelet used to have a module called dockershim, which implements CRI support for Docker, and it has seen maintenance issues in the Kubernetes community. From 1.24 onwards, please move to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available. ([#97252](https://github.com/kubernetes/kubernetes/pull/97252), [@dims](https://github.com/dims)) +- Fixed bug with leads to Node goes `Not-ready` state when credentials for vCenter stored in a secret and Zones feature is in use. Zone labels setup moved to KCM component, kubelet skips this step during startup in such case. If credentials stored in cloud-provider config file as plaintext current behaviour does not change and no action required. For proper functioning `kube-system:vsphere-legacy-cloud-provider` should be allowed to update node object if vCenter credentials stored in secret and Zone feature used. ([#101028](https://github.com/kubernetes/kubernetes/pull/101028), [@lobziik](https://github.com/lobziik)) +- The `LegacyServiceAccountTokenNoAutoGeneration` feature gate is beta, and enabled by default. When enabled, Secret API objects containing service account tokens are no longer auto-generated for every ServiceAccount. Use the [TokenRequest](https://kubernetes.io/docs/reference/kubernetes-api/authentication-resources/token-request-v1/) API to acquire service account tokens, or if a non-expiring token is required, create a Secret API object for the token controller to populate with a service account token by following this [guide](https://kubernetes.io/docs/concepts/configuration/secret/#service-account-token-secrets). ([#108309](https://github.com/kubernetes/kubernetes/pull/108309), [@zshihang](https://github.com/zshihang)) +- The calculations for Pod topology spread skew now exclude nodes that + don't match the node affinity/selector. This may lead to unschedulable pods if you previously had pods + matching the spreading selector on those excluded nodes (not matching the node affinity/selector), + especially when the `topologyKey` is not node-level. Revisit the node affinity and/or pod selector in the + topology spread constraints to avoid this scenario. ([#107009](https://github.com/kubernetes/kubernetes/pull/107009), [@kerthcet](https://github.com/kerthcet)) +- Remove the deprecated flag `--experimental-check-node-capabilities-before-mount`. With CSI now GA, there is a better alternative. Remove any use of `--experimental-check-node-capabilities-before-mount` from your kubelet scripts or manifests. ([#104732](https://github.com/kubernetes/kubernetes/pull/104732), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- `kubeadm.k8s.io/v1beta2` has been deprecated and will be removed in a future release, possibly in 3 releases (one year). You should start using `kubeadm.k8s.io/v1beta3` for new clusters. To migrate your old configuration files on disk you can use the `kubeadm config migrate` command. ([#107013](https://github.com/kubernetes/kubernetes/pull/107013), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: default the kubeadm configuration to the containerd socket (Unix: `unix:///var/run/containerd/containerd.sock`, Windows: `npipe:////./pipe/containerd-containerd`) instead of the one for Docker. If the `Init|JoinConfiguration.nodeRegistration.criSocket` field is empty during cluster creation and multiple sockets are found on the host always throw an error and ask the user to specify which one to use by setting the value in the field. Make sure you update any kubeadm configuration files on disk, to not include the dockershim socket unless you are still using kubelet version < 1.24 with kubeadm >= 1.24. Remove the DockerValidor and ServiceCheck for the `docker` service from kubeadm preflight. Docker is no longer special cased during host validation and ideally this task should be done in the now external cri-dockerd project where the importance of the compatibility matters. Use `crictl` for all communication with CRI sockets for actions like pulling images and obtaining a list of running containers instead of using the docker CLI in the case of Docker. ([#107317](https://github.com/kubernetes/kubernetes/pull/107317), [@neolit123](https://github.com/neolit123)) +- The feature gate was mentioned as `csiMigrationRBD` where it should have been `CSIMigrationRBD` to be in parity with other migration plugins. This release correct the same and keep it as `CSIMigrationRBD`. + users who have configured this feature gate as `csiMigrationRBD` has to reconfigure the same to `CSIMigrationRBD` from this release. ([#107554](https://github.com/kubernetes/kubernetes/pull/107554), [@humblec](https://github.com/humblec)) +- The experimental dynamic log sanitization feature has been deprecated and removed in the 1.24 release. The feature is no longer available for use. ([#107207](https://github.com/kubernetes/kubernetes/pull/107207), [@ehashman](https://github.com/ehashman)) +- Kubeadm: apply `second stage` of the plan to migrate kubeadm away from the usage of the word `master` in labels and taints. For new clusters, the label `node-role.kubernetes.io/master` will no longer be added to control plane nodes, only the label `node-role.kubernetes.io/control-plane` will be added. For clusters that are being upgraded to 1.24 with `kubeadm upgrade apply`, the command will remove the label `node-role.kubernetes.io/master` from existing control plane nodes. For new clusters, both the old taint `node-role.kubernetes.io/master:NoSchedule` and new taint `node-role.kubernetes.io/control-plane:NoSchedule` will be added to control plane nodes. In release 1.20 (`first stage`), a release note instructed to preemptively tolerate the new taint. For clusters that are being upgraded to 1.24 with `kubeadm upgrade apply`, the command will add the new taint `node-role.kubernetes.io/control-plane:NoSchedule` to existing control plane nodes. Please adapt your infrastructure to these changes. In 1.25 the old taint `node-role.kubernetes.io/master:NoSchedule` will be removed. ([#107533](https://github.com/kubernetes/kubernetes/pull/107533), [@neolit123](https://github.com/neolit123)) +- The feature gate was mentioned as `csiMigrationRBD` where it should have been `CSIMigrationRBD` to be in parity with other migration plugins. This release correct the same and keep it as `CSIMigrationRBD`. + users who have configured this feature gate as `csiMigrationRBD` has to reconfigure the same to `CSIMigrationRBD` from this release. ([#107554](https://github.com/kubernetes/kubernetes/pull/107554), [@humblec](https://github.com/humblec)) + +## Changes by Kind + +### Deprecation + +- Deprecated `Service.Spec.LoadBalancerIP`. This field was under-specified and its meaning varies across implementations. As of Kubernetes v1.24, users are encouraged to use implementation-specific annotations when available. This field may be removed in a future API version. ([#107235](https://github.com/kubernetes/kubernetes/pull/107235), [@uablrek](https://github.com/uablrek)) +- Kube-apiserver: the `--master-count` flag and `--endpoint-reconciler-type=master-count` reconciler are deprecated in favor of the lease reconciler ([#108062](https://github.com/kubernetes/kubernetes/pull/108062), [@aojea](https://github.com/aojea)) +- Kube-apiserver: the insecure address flags `--address`, `--insecure-bind-address`, `--port` and `--insecure-port` (inert since 1.20) are removed ([#106859](https://github.com/kubernetes/kubernetes/pull/106859), [@knight42](https://github.com/knight42)) +- Kubeadm: graduated the `UnversionedKubeletConfigMap` feature gate to Beta and enabled the feature by default. This implies that 1) for new clusters kubeadm will start using the `kube-system/kubelet-config` naming scheme for the kubelet ConfigMap and RBAC rules, instead of the legacy `kubelet-config-x.yy` naming. 2) during upgrade, kubeadm will only write the new scheme ConfigMap and RBAC objects. To disable the feature you can pass `UnversionedKubeletConfigMap: false` in the kubeadm config for new clusters. For upgrade on existing clusters you can also override the behavior by patching the ClusterConfiguration object in `kube-system/kubeadm-config`. More details in the associated KEP. ([#108027](https://github.com/kubernetes/kubernetes/pull/108027), [@neolit123](https://github.com/neolit123)) +- Remove `tolerate-unready-endpoints` annotation in Service deprecated from 1.11, use `Service.spec.publishNotReadyAddresses` instead. ([#108020](https://github.com/kubernetes/kubernetes/pull/108020), [@tossmilestone](https://github.com/tossmilestone)) +- Remove deprecated feature gates `ValidateProxyRedirects` and `StreamingProxyRedirects` ([#106830](https://github.com/kubernetes/kubernetes/pull/106830), [@pacoxu](https://github.com/pacoxu)) +- Remove insecure serving configuration from cloud-provider package, which is consumed by cloud-controller-managers. ([#108953](https://github.com/kubernetes/kubernetes/pull/108953), [@nckturner](https://github.com/nckturner)) +- The `--pod-infra-container-image` kubelet flag is deprecated and will be removed in future releases ([#108045](https://github.com/kubernetes/kubernetes/pull/108045), [@hakman](https://github.com/hakman)) +- The `client.authentication.k8s.io/v1alpha1` ExecCredential has been removed. If you are using a client-go credential plugin that relies on the v1alpha1 API please contact the distributor of your plugin for instructions on how to migrate to the v1 API. ([#108616](https://github.com/kubernetes/kubernetes/pull/108616), [@margocrawf](https://github.com/margocrawf)) +- The `node.k8s.io/v1alpha1` RuntimeClass API is no longer served. Use the `node.k8s.io/v1` API version, available since v1.20 ([#103061](https://github.com/kubernetes/kubernetes/pull/103061), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) +- The cluster addon for dashboard was removed. To install dashboard, see [here](https://github.com/kubernetes/dashboard/blob/master/docs/user/README.md). ([#107481](https://github.com/kubernetes/kubernetes/pull/107481), [@shu-mutou](https://github.com/shu-mutou)) +- The in-tree Azure plugin has been deprecated. The Azure kubelogin plugin serves as an out-of-tree replacement via the kubectl/client-go credential plugin mechanism. Users will now see a warning in the logs regarding this deprecation. ([#107904](https://github.com/kubernetes/kubernetes/pull/107904), [@sabbey37](https://github.com/sabbey37)) +- The insecure address flags `--address` and `--port` in kube-controller-manager have had no effect since v1.20 and are removed in v1.24. ([#106860](https://github.com/kubernetes/kubernetes/pull/106860), [@knight42](https://github.com/knight42)) +- The metadata.clusterName field is deprecated. This field has always been unwritable and always blank, but its presence is confusing, so we will remove it next release. Out of an abundance of caution, this release we have merely changed the name in the go struct to ensure any accidental client uses are found before complete removal. ([#108717](https://github.com/kubernetes/kubernetes/pull/108717), [@lavalamp](https://github.com/lavalamp)) +- VSphere releases less than 7.0u2 are deprecated as of v1.24. Please consider upgrading vSphere to 7.0u2 or above. vSphere CSI Driver requires minimum vSphere 7.0u2. + + General Support for vSphere 6.7 will end on October 15, 2022. vSphere 6.7 Update 3 is deprecated in Kubernetes v1.24. Customers are recommended to upgrade vSphere (both ESXi and vCenter) to 7.0u2 or above. vSphere CSI Driver 2.2.3 and higher supports CSI Migration. + + Support for these deprecations will be available till October 15, 2022. ([#109089](https://github.com/kubernetes/kubernetes/pull/109089), [@deepakkinni](https://github.com/deepakkinni)) + +### API Change + +- Add 2 new options for kube-proxy running in winkernel mode. `--forward-healthcheck-vip`, if specified as true, health check traffic whose destination is service VIP will be forwarded to kube-proxy's healthcheck service. `--root-hnsendpoint-name` specifies the name of the hns endpoint for the root network namespace. This option enables the pass-through load balancers like Google's GCLB to correctly health check the backend services. Without this change, the health check packets is dropped, and Windows node will be considered to be unhealthy by those load balancers. ([#99287](https://github.com/kubernetes/kubernetes/pull/99287), [@anfernee](https://github.com/anfernee)) +- Added CEL runtime cost calculation into CustomerResource validation. CustomerResource validation will fail if runtime cost exceeds the budget. ([#108482](https://github.com/kubernetes/kubernetes/pull/108482), [@cici37](https://github.com/cici37)) +- Added a new metric `webhook_fail_open_count` to monitor webhooks that fail to open. ([#107171](https://github.com/kubernetes/kubernetes/pull/107171), [@ltagliamonte-dd](https://github.com/ltagliamonte-dd)) +- Adds a new Status subresource in Network Policy objects ([#107963](https://github.com/kubernetes/kubernetes/pull/107963), [@rikatz](https://github.com/rikatz)) +- Adds support for `InterfaceNamePrefix` and `BridgeInterface` as arguments to `--detect-local-mode` option and also introduces a new optional `--pod-interface-name-prefix` and `--pod-bridge-interface` flags to kube-proxy. ([#95400](https://github.com/kubernetes/kubernetes/pull/95400), [@tssurya](https://github.com/tssurya)) +- CEL CRD validation expressions may now reference existing object state using the identifier `oldSelf`. ([#108073](https://github.com/kubernetes/kubernetes/pull/108073), [@benluddy](https://github.com/benluddy)) +- CRD deep copies should no longer contain shallow copies of `JSONSchemaProps.XValidations`. ([#107956](https://github.com/kubernetes/kubernetes/pull/107956), [@benluddy](https://github.com/benluddy)) +- CRD writes will generate validation errors if a CEL validation rule references the identifier `oldSelf` on a part of the schema that does not support it. ([#108013](https://github.com/kubernetes/kubernetes/pull/108013), [@benluddy](https://github.com/benluddy)) +- CSIStorageCapacity.storage.k8s.io: The v1beta1 version of this API is deprecated in favor of v1, and will be removed in v1.27. If a CSI driver supports storage capacity tracking, then it must get deployed with a release of external-provisioner that supports the v1 API. ([#108445](https://github.com/kubernetes/kubernetes/pull/108445), [@pohly](https://github.com/pohly)) +- Custom resource requests with `fieldValidation=Strict` consistently require `apiVersion` and `kind`, matching non-strict requests ([#109019](https://github.com/kubernetes/kubernetes/pull/109019), [@liggitt](https://github.com/liggitt)) +- Feature of `DefaultPodTopologySpread` is graduated to GA ([#108278](https://github.com/kubernetes/kubernetes/pull/108278), [@kerthcet](https://github.com/kerthcet)) +- Feature of `NonPreemptingPriority` is graduated to GA ([#107432](https://github.com/kubernetes/kubernetes/pull/107432), [@denkensk](https://github.com/denkensk)) +- Feature of `PodOverhead` is graduated to GA ([#108441](https://github.com/kubernetes/kubernetes/pull/108441), [@pacoxu](https://github.com/pacoxu)) +- Fixed OpenAPI serialization of the x-kubernetes-validations field ([#107970](https://github.com/kubernetes/kubernetes/pull/107970), [@liggitt](https://github.com/liggitt)) +- Fixed failed flushing logs in defer function when kubelet cmd exit 1. ([#104774](https://github.com/kubernetes/kubernetes/pull/104774), [@kerthcet](https://github.com/kerthcet)) +- Fixes a regression in v1beta1 PodDisruptionBudget handling of `strategic merge patch`-type API requests for the `selector` field. Prior to 1.21, these requests would merge `matchLabels` content and replace `matchExpressions` content. In 1.21, patch requests touching the `selector` field started replacing the entire selector. This is consistent with server-side apply and the v1 PodDisruptionBudget behavior, but should not have been changed for v1beta1. ([#108138](https://github.com/kubernetes/kubernetes/pull/108138), [@liggitt](https://github.com/liggitt)) +- Improve kubectl's user help commands readability ([#104736](https://github.com/kubernetes/kubernetes/pull/104736), [@lauchokyip](https://github.com/lauchokyip)) +- Indexed Jobs graduated to stable. ([#107395](https://github.com/kubernetes/kubernetes/pull/107395), [@alculquicondor](https://github.com/alculquicondor)) +- Introduce a v1alpha1 networking API for ClusterCIDRConfig ([#108290](https://github.com/kubernetes/kubernetes/pull/108290), [@sarveshr7](https://github.com/sarveshr7)) +- Introduction of a new "sync_proxy_rules_no_local_endpoints_total" proxy metric. This metric represents the number of services with no internal endpoints. The "traffic_policy" label will contain both "internal" or "external". ([#108930](https://github.com/kubernetes/kubernetes/pull/108930), [@MaxRenaud](https://github.com/MaxRenaud)) +- JobReadyPods graduates to Beta and it's enabled by default. ([#107476](https://github.com/kubernetes/kubernetes/pull/107476), [@alculquicondor](https://github.com/alculquicondor)) +- Kube-apiserver: `--audit-log-version` and `--audit-webhook-version` now only support the default value of `audit.k8s.io/v1`. The v1alpha1 and v1beta1 audit log versions, deprecated since 1.13, have been removed. ([#108092](https://github.com/kubernetes/kubernetes/pull/108092), [@carlory](https://github.com/carlory)) +- Kube-apiserver: the `metadata.selfLink` field can no longer be populated by kube-apiserver; it was deprecated in 1.16 and has not been populated by default since 1.20+. ([#107527](https://github.com/kubernetes/kubernetes/pull/107527), [@wojtek-t](https://github.com/wojtek-t)) +- Kubelet external Credential Provider feature is moved to Beta. Credential Provider Plugin and Credential Provider Config API's updated from v1alpha1 to v1beta1 with no API changes. ([#108847](https://github.com/kubernetes/kubernetes/pull/108847), [@adisky](https://github.com/adisky)) +- Make STS available replicas optional again. ([#109241](https://github.com/kubernetes/kubernetes/pull/109241), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- MaxUnavailable for StatefulSets, allows faster RollingUpdate by taking down more than 1 pod at a time. The number of pods you want to take down during a RollingUpdate is configurable using maxUnavailable parameter. ([#82162](https://github.com/kubernetes/kubernetes/pull/82162), [@krmayankk](https://github.com/krmayankk)) +- Non-graceful node shutdown handling is enabled for stateful workload failovers ([#108486](https://github.com/kubernetes/kubernetes/pull/108486), [@sonasingh46](https://github.com/sonasingh46)) +- Omit enum declarations from the static openapi file captured at https://git.k8s.io/kubernetes/api/openapi-spec. This file is used to generate API clients, and use of enums in those generated clients (rather than strings) can break forward compatibility with additional future values in those fields. See https://issue.k8s.io/109177 for details. ([#109178](https://github.com/kubernetes/kubernetes/pull/109178), [@liggitt](https://github.com/liggitt)) +- OpenAPI V3 is turned on by default ([#109031](https://github.com/kubernetes/kubernetes/pull/109031), [@Jefftree](https://github.com/Jefftree)) +- Pod affinity namespace selector and cross-namespace quota graduated to GA. The feature gate `PodAffinityNamespaceSelector` is locked and will be removed in 1.26. ([#108136](https://github.com/kubernetes/kubernetes/pull/108136), [@ahg-g](https://github.com/ahg-g)) +- Promote IdentifyPodOS feature to beta. ([#107859](https://github.com/kubernetes/kubernetes/pull/107859), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- Remove a v1alpha1 networking API for ClusterCIDRConfig ([#109436](https://github.com/kubernetes/kubernetes/pull/109436), [@JamesLaverack](https://github.com/JamesLaverack)) +- Renamed metrics `evictions_number` to `evictions_total` and mark it as stable. The original `evictions_number` metrics name is marked as "Deprecated" and has been removed in kubernetes 1.23 . ([#106366](https://github.com/kubernetes/kubernetes/pull/106366), [@cyclinder](https://github.com/cyclinder)) +- Skip x-kubernetes-validations rules if having fundamental error against the OpenAPIv3 schema. ([#108859](https://github.com/kubernetes/kubernetes/pull/108859), [@cici37](https://github.com/cici37)) +- Support for gRPC probes is now in beta. GRPCContainerProbe feature gate is enabled by default. ([#108522](https://github.com/kubernetes/kubernetes/pull/108522), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) +- Suspend job to GA. The feature gate `SuspendJob` is locked and will be removed in 1.26. ([#108129](https://github.com/kubernetes/kubernetes/pull/108129), [@ahg-g](https://github.com/ahg-g)) +- The AnyVolumeDataSource feature is now beta, and the feature gate is enabled by default. In order to provide user feedback on PVCs with data sources, deployers must install the VolumePopulators CRD and the data-source-validator controller. ([#108736](https://github.com/kubernetes/kubernetes/pull/108736), [@bswartz](https://github.com/bswartz)) +- The CertificateSigningRequest `spec.expirationSeconds` API field has graduated to GA. The `CSRDuration` feature gate for the field is now unconditionally enabled and will be removed in 1.26. ([#108782](https://github.com/kubernetes/kubernetes/pull/108782), [@cfryanr](https://github.com/cfryanr)) +- The `ServerSideFieldValidation` feature has graduated to beta and is now enabled by default. Kubectl 1.24 and newer will use server-side validation instead of client-side validation when writing to API servers with the feature enabled. ([#108889](https://github.com/kubernetes/kubernetes/pull/108889), [@kevindelgado](https://github.com/kevindelgado)) +- The `ServiceLBNodePortControl` feature has graduated to GA. The feature gate will be removed in 1.26. ([#107027](https://github.com/kubernetes/kubernetes/pull/107027), [@uablrek](https://github.com/uablrek)) +- The deprecated kube-controller-manager flag '--deployment-controller-sync-period' has been removed, it is not used by the deployment controller. ([#107178](https://github.com/kubernetes/kubernetes/pull/107178), [@SataQiu](https://github.com/SataQiu)) +- The feature `DynamicKubeletConfig` has been removed from the kubelet. ([#106932](https://github.com/kubernetes/kubernetes/pull/106932), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) +- The infrastructure for contextual logging is complete (feature gate implemented, JSON backend ready). ([#108995](https://github.com/kubernetes/kubernetes/pull/108995), [@pohly](https://github.com/pohly)) +- This adds an optional `timeZone` field as part of the CronJob spec to support running cron jobs in a specific time zone. ([#108032](https://github.com/kubernetes/kubernetes/pull/108032), [@deejross](https://github.com/deejross)) +- Updated the default API priority-and-fairness config to avoid endpoint/configmaps operations from controller-manager to all match leader-election priority level. ([#106725](https://github.com/kubernetes/kubernetes/pull/106725), [@wojtek-t](https://github.com/wojtek-t)) +- `topologySpreadConstraints` includes `minDomains` field to limit the minimum number of topology domains. ([#107674](https://github.com/kubernetes/kubernetes/pull/107674), [@sanposhiho](https://github.com/sanposhiho)) + +### Feature + +- A new Priority and Fairness metric 'apiserver_flowcontrol_work_estimate_seats_samples' has been added that tracks the estimated seats associated with a request. ([#106628](https://github.com/kubernetes/kubernetes/pull/106628), [@tkashem](https://github.com/tkashem)) +- Add a deprecated cmd flag for the time interval between flushing pods from unschedulable queue to active queue or backoff queue. ([#108017](https://github.com/kubernetes/kubernetes/pull/108017), [@denkensk](https://github.com/denkensk)) +- Add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state to kubelet ([#105585](https://github.com/kubernetes/kubernetes/pull/105585), [@fengzixu](https://github.com/fengzixu)) +- Add the metric `container_oom_events_total` to kubelet's cAdvisor metric endpoint. ([#108004](https://github.com/kubernetes/kubernetes/pull/108004), [@jonkerj](https://github.com/jonkerj)) +- Added `SetTransform` to `SharedInformer` to allow users to transform objects before they are stored. ([#107507](https://github.com/kubernetes/kubernetes/pull/107507), [@alexzielenski](https://github.com/alexzielenski)) +- Added a `proxy-url` flag into `kubectl config set-cluster`. ([#105566](https://github.com/kubernetes/kubernetes/pull/105566), [@ardaguclu](https://github.com/ardaguclu)) +- Added a metric for measuring end-to-end volume mount timing. ([#107006](https://github.com/kubernetes/kubernetes/pull/107006), [@gnufied](https://github.com/gnufied)) +- Added a new Priority and Fairness metric `apiserver_flowcontrol_request_dispatch_no_accommodation_total` to track the number of times a request dispatch attempt results in a no-accommodation status due to lack of available seats. ([#106629](https://github.com/kubernetes/kubernetes/pull/106629), [@tkashem](https://github.com/tkashem)) +- Added a path `/header?key=` to `agnhost netexec` allowing one to view what the header value is of the incoming request. + + Ex: + + ```$ curl -H "X-Forwarded-For: something" 172.17.0.2:8080/header?key=X-Forwarded-For + something``` ([#107796](https://github.com/kubernetes/kubernetes/pull/107796), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) +- Added completion for `kubectl config set-context`. ([#106739](https://github.com/kubernetes/kubernetes/pull/106739), [@kebe7jun](https://github.com/kebe7jun)) +- Added field `add_ambient_capabilities` to the Capabilities message in the CRI-API. ([#104620](https://github.com/kubernetes/kubernetes/pull/104620), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) +- Added label selector flag to all `kubectl rollout` commands. ([#99758](https://github.com/kubernetes/kubernetes/pull/99758), [@aramperes](https://github.com/aramperes)) +- Added more message for no PodSandbox container. ([#107116](https://github.com/kubernetes/kubernetes/pull/107116), [@yxxhero](https://github.com/yxxhero)) +- Added prune flag into `diff` command to simulate `apply --prune`. ([#105164](https://github.com/kubernetes/kubernetes/pull/105164), [@ardaguclu](https://github.com/ardaguclu)) +- Added support for `btrfs` resizing ([#108561](https://github.com/kubernetes/kubernetes/pull/108561), [@RomanBednar](https://github.com/RomanBednar)) +- Added support for kubectl commands (`kubectl exec` and `kubectl port-forward`) via a SOCKS5 proxy. ([#105632](https://github.com/kubernetes/kubernetes/pull/105632), [@xens](https://github.com/xens)) +- Adds `OpenAPIV3SchemaInterface` to `DiscoveryClient` and its variants for fetching OpenAPI v3 schema documents. ([#108992](https://github.com/kubernetes/kubernetes/pull/108992), [@alexzielenski](https://github.com/alexzielenski)) +- Allow kubectl to manage resources by filename patterns without the shell expanding it first ([#102265](https://github.com/kubernetes/kubernetes/pull/102265), [@danielrodriguez](https://github.com/danielrodriguez)) +- An alpha flag `--subresource` is added to get, patch, edit replace kubectl commands to fetch and update status and scale subresources. ([#99556](https://github.com/kubernetes/kubernetes/pull/99556), [@nikhita](https://github.com/nikhita)) +- Apiextensions_openapi_v3_regeneration_count metric (alpha) will be emitted for OpenAPI V3. ([#109128](https://github.com/kubernetes/kubernetes/pull/109128), [@Jefftree](https://github.com/Jefftree)) +- Apply ProxyTerminatingEndpoints to all traffic policies (external, internal, cluster, local). ([#108691](https://github.com/kubernetes/kubernetes/pull/108691), [@andrewsykim](https://github.com/andrewsykim)) +- CEL regex patterns in x-kubernetes-valiation rules are compiled when CRDs are created/updated if the pattern is provided as a string constant in the expression. Any regex compile errors are reported as a CRD create/update validation error. ([#108617](https://github.com/kubernetes/kubernetes/pull/108617), [@jpbetz](https://github.com/jpbetz)) +- CRD `x-kubernetes-validations` rules now support the CEL functions: `isSorted`, `sum`, `min`, `max`, `indexOf`, `lastIndexOf`, `find` and `findAll`. ([#108312](https://github.com/kubernetes/kubernetes/pull/108312), [@jpbetz](https://github.com/jpbetz)) +- Changes the kubectl `--validate` flag from a bool to a string that accepts the values {true, strict, warn, false, ignore} + - true/strict - perform validation and error the request on any invalid fields in the ojbect. It will attempt to perform server-side validation if it is enabled on the apiserver, otherwise it will fall back to client-side validation. + - warn - perform server-side validation and warn on any invalid fields (but ultimately let the request succeed by dropping any invalid fields from the object). If validation is not available on the server, perform no validation. + - false/ignore - perform no validation, silently dropping invalid fields from the object. ([#108350](https://github.com/kubernetes/kubernetes/pull/108350), [@kevindelgado](https://github.com/kevindelgado)) +- Client-go metrics: change bucket distribution for `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` from [0.001, 0.002, 0.004, 0.008, 0.016, 0.032, 0.064, 0.128, 0.256, 0.512] to [0.005, 0.025, 0.1, 0.25, 0.5, 1.0, 2.0, 4.0, 8.0, 15.0, 30.0, 60.0}] ([#106911](https://github.com/kubernetes/kubernetes/pull/106911), [@aojea](https://github.com/aojea)) +- Client-go: add new histogram metric to record the size of the requests and responses. ([#108296](https://github.com/kubernetes/kubernetes/pull/108296), [@aojea](https://github.com/aojea)) +- CycleState is now optimized for "write once and read many times". ([#108724](https://github.com/kubernetes/kubernetes/pull/108724), [@sanposhiho](https://github.com/sanposhiho)) +- Enabled beta feature HonorPVReclaimPolicy by default. ([#109035](https://github.com/kubernetes/kubernetes/pull/109035), [@deepakkinni](https://github.com/deepakkinni)) +- Env var for additional cli flags used in the csi-proxy binary when a Windows nodepool is created with `kube-up.sh` ([#107806](https://github.com/kubernetes/kubernetes/pull/107806), [@mauriciopoppe](https://github.com/mauriciopoppe)) +- Feature of `PreferNominatedNode` is graduated to GA. ([#106619](https://github.com/kubernetes/kubernetes/pull/106619), [@chendave](https://github.com/chendave)) +- In text format, log messages that previously used quoting to prevent multi-line output (for example, text="some \"quotation\", a\nline break") will now be printed with more readable multi-line output without the escape sequences. ([#107103](https://github.com/kubernetes/kubernetes/pull/107103), [@pohly](https://github.com/pohly)) +- Increase default value of discovery cache TTL for kubectl to 6 hours. ([#107141](https://github.com/kubernetes/kubernetes/pull/107141), [@mk46](https://github.com/mk46)) +- Introduce policy to allow the HPA to consume the `external.metrics.k8s.io` API group. ([#104244](https://github.com/kubernetes/kubernetes/pull/104244), [@dgrisonnet](https://github.com/dgrisonnet)) +- Kube-apiserver: Subresources such as `status` and `scale` now support tabular output content types. ([#103516](https://github.com/kubernetes/kubernetes/pull/103516), [@ykakarap](https://github.com/ykakarap)) +- Kube-apiserver: when merging lists, Server Side Apply now prefers the order of the submitted request instead of the existing persisted object. ([#107565](https://github.com/kubernetes/kubernetes/pull/107565), [@jiahuif](https://github.com/jiahuif)) +- Kubeadm: added support for dry running `kubeadm reset`. The new flag `kubeadm reset --dry-run` is similar to the existing flag for `kubeadm init/join/upgrade` and allows you to see what changes would be applied. ([#107512](https://github.com/kubernetes/kubernetes/pull/107512), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: added the flag `--experimental-initial-corrupt-check` to etcd static Pod manifests to ensure etcd member data consistency ([#109074](https://github.com/kubernetes/kubernetes/pull/109074), [@neolit123](https://github.com/neolit123)) +- Kubeadm: better surface errors during `kubeadm upgrade` when waiting for the kubelet to restart static pods on control plane nodes ([#108315](https://github.com/kubernetes/kubernetes/pull/108315), [@Monokaix](https://github.com/Monokaix)) +- Kubeadm: improve the strict parsing of user YAML/JSON configuration files. Next to printing warnings for unknown and duplicate fields (current state), also print warnings for fields with incorrect case sensitivity - e.g. `controlPlaneEndpoint` (valid), `ControlPlaneEndpoint` (invalid). Instead of only printing warnings during `init` and `join` also print warnings when downloading the ClusterConfiguration, KubeletConfiguration or KubeProxyConfiguration objects from the cluster. This can be useful if the user has patched these objects in their respective ConfigMaps with mistakes. ([#107725](https://github.com/kubernetes/kubernetes/pull/107725), [@neolit123](https://github.com/neolit123)) +- Kubectl now supports shell completion for the <type>/<name> format for specifying resources. + kubectl now provides shell completion for container names following the `--container/-c` flag of the `exec` command. + kubectl's shell completion now suggests resource types for commands that only apply to pods. ([#108493](https://github.com/kubernetes/kubernetes/pull/108493), [@marckhouzam](https://github.com/marckhouzam)) +- Kubelet: add `kubelet_volume_metric_collection_duration_seconds` metrics for volume disk usage calculation duration ([#107201](https://github.com/kubernetes/kubernetes/pull/107201), [@pacoxu](https://github.com/pacoxu)) +- Kubelet: the following dockershim related flags are also removed along with dockershim `--experimental-dockershim-root-directory`, `--docker-endpoint`, `--image-pull-progress-deadline`, `--network-plugin`, `--cni-conf-dir`, `--cni-bin-dir`, `--cni-cache-dir`, `--network-plugin-mtu`. ([#106907](https://github.com/kubernetes/kubernetes/pull/106907), [@cyclinder](https://github.com/cyclinder)) +- Kubernetes 1.24 bumped version of golang it is compiled with to go1.18, which introduced significant changes to its garbage collection algorithm. As a result, we observed an increase in memory usage for kube-apiserver in larger an heavily loaded clusters up to ~25% (with the benefit of API call latencies drop by up to 10x on 99th percentiles). If the memory increase is not acceptable for you you can mitigate by setting GOGC env variable (for our tests using GOGC=63 brings memory usage back to original value, although the exact value may depend on usage patterns on your cluster). ([#108870](https://github.com/kubernetes/kubernetes/pull/108870), [@dims](https://github.com/dims)) +- Kubernetes 1.24 is built with go1.18, which will no longer validate certificates signed with a SHA-1 hash algorithm by default. See https://golang.org/doc/go1.18#sha1 for more details. If you are using certificates like this in admission or conversion ([#109024](https://github.com/kubernetes/kubernetes/pull/109024), [@stlaz](https://github.com/stlaz)) +- Kubernetes in now built with go1.18rc1 ([#107105](https://github.com/kubernetes/kubernetes/pull/107105), [@justaugustus](https://github.com/justaugustus)) +- Kubernetes is now built with Golang 1.17.4 ([#106833](https://github.com/kubernetes/kubernetes/pull/106833), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with Golang 1.17.5. ([#106956](https://github.com/kubernetes/kubernetes/pull/106956), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with Golang 1.17.6. ([#107612](https://github.com/kubernetes/kubernetes/pull/107612), [@palnabarun](https://github.com/palnabarun)) +- Kubernetes is now built with Golang 1.17.7 ([#108091](https://github.com/kubernetes/kubernetes/pull/108091), [@xmudrii](https://github.com/xmudrii)) +- Kubernetes is now built with Golang 1.18.1 ([#109461](https://github.com/kubernetes/kubernetes/pull/109461), [@cpanato](https://github.com/cpanato)) +- Leader Migration is now GA. All new configuration files onwards should use version v1. ([#109072](https://github.com/kubernetes/kubernetes/pull/109072), [@jiahuif](https://github.com/jiahuif)) +- Mark AzureDisk CSI migration as GA ([#107681](https://github.com/kubernetes/kubernetes/pull/107681), [@andyzhangx](https://github.com/andyzhangx)) +- Move volume expansion feature to GA ([#108929](https://github.com/kubernetes/kubernetes/pull/108929), [@gnufied](https://github.com/gnufied)) +- Moving MixedProtocolLBService from alpha to beta ([#109213](https://github.com/kubernetes/kubernetes/pull/109213), [@bridgetkromhout](https://github.com/bridgetkromhout)) +- New "field_validation_request_duration_seconds" metric, measures how long requests take, indicating the value of the fieldValidation query parameter and whether or not server-side field validation is enabled on the apiserver ([#109120](https://github.com/kubernetes/kubernetes/pull/109120), [@kevindelgado](https://github.com/kevindelgado)) +- New feature gate, ServiceIPStaticSubrange, to enable the new strategy in the Service IP allocators, so the IP range is subdivided and dynamic allocated ClusterIP addresses for Services are allocated preferently from the upper range. ([#106792](https://github.com/kubernetes/kubernetes/pull/106792), [@aojea](https://github.com/aojea)) +- No ([#108432](https://github.com/kubernetes/kubernetes/pull/108432), [@iXinqi](https://github.com/iXinqi)) [SIG Testing and Windows] +- OpenAPI definitions served by kube-apiserver now include enum types by default. ([#108898](https://github.com/kubernetes/kubernetes/pull/108898), [@jiahuif](https://github.com/jiahuif)) +- OpenStack Cinder CSI migration is now GA and switched on by default, Cinder CSI driver must be installed on clusters on OpenStack for Cinder volumes to work (has been since v1.21). ([#107462](https://github.com/kubernetes/kubernetes/pull/107462), [@dims](https://github.com/dims)) +- PreFilter extension in the scheduler framework now returns not only status but also PreFilterResult ([#108648](https://github.com/kubernetes/kubernetes/pull/108648), [@ahg-g](https://github.com/ahg-g)) +- Promoted graceful shutdown based on pod priority to beta ([#107986](https://github.com/kubernetes/kubernetes/pull/107986), [@wzshiming](https://github.com/wzshiming)) +- Removed feature gate `SetHostnameAsFQDN`. ([#108038](https://github.com/kubernetes/kubernetes/pull/108038), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Removed kube-scheduler insecure flags. You can use `--bind-address` and `--secure-port` instead. ([#106865](https://github.com/kubernetes/kubernetes/pull/106865), [@jonyhy96](https://github.com/jonyhy96)) +- Removed the `ImmutableEphemeralVolumes` feature gate. ([#107152](https://github.com/kubernetes/kubernetes/pull/107152), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Set `PodMaxUnschedulableQDuration` as 5 min. ([#108761](https://github.com/kubernetes/kubernetes/pull/108761), [@denkensk](https://github.com/denkensk)) +- Support in-tree PV deletion protection finalizer. ([#108400](https://github.com/kubernetes/kubernetes/pull/108400), [@deepakkinni](https://github.com/deepakkinni)) +- The `.spec.loadBalancerClass` field for Services is now generally available. ([#107979](https://github.com/kubernetes/kubernetes/pull/107979), [@XudongLiuHarold](https://github.com/XudongLiuHarold)) +- The `NamespaceDefaultLabelName` feature gate, GA since v1.22, is now removed. ([#106838](https://github.com/kubernetes/kubernetes/pull/106838), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- The `kubectl logs` will now warn and default to the first container in a pod. This new behavior brings it in line with `kubectl exec`. ([#105964](https://github.com/kubernetes/kubernetes/pull/105964), [@kidlj](https://github.com/kidlj)) +- The `v1` version of `LeaderMigrationConfiguration` supports only `leases` API for leader election. To use formerly supported mechanisms, please continue using `v1beta1`. ([#108016](https://github.com/kubernetes/kubernetes/pull/108016), [@jiahuif](https://github.com/jiahuif)) +- The kubelet now creates an iptables chain named `KUBE-IPTABLES-HINT` in + the `mangle` table. Containerized components that need to modify iptables + rules in the host network namespace can use the existence of this chain + to more-reliably determine whether the system is using iptables-legacy or + iptables-nft. ([#109059](https://github.com/kubernetes/kubernetes/pull/109059), [@danwinship](https://github.com/danwinship)) +- The output of `kubectl describe ingress` now includes an IngressClass name if available. ([#107921](https://github.com/kubernetes/kubernetes/pull/107921), [@mpuckett159](https://github.com/mpuckett159)) +- The scheduler prints info logs when the extender returned an error. (`--v>5`) ([#107974](https://github.com/kubernetes/kubernetes/pull/107974), [@sanposhiho](https://github.com/sanposhiho)) +- The script `cluster/gce/gci/configure.sh` now supports downloading `crictl` on ARM64 nodes ([#108034](https://github.com/kubernetes/kubernetes/pull/108034), [@tstapler](https://github.com/tstapler)) +- Turn on `CSIMigrationAzureFile` by default on 1.24 ([#105070](https://github.com/kubernetes/kubernetes/pull/105070), [@andyzhangx](https://github.com/andyzhangx)) +- Update the k8s.io/system-validators library to v1.7.0 ([#108988](https://github.com/kubernetes/kubernetes/pull/108988), [@neolit123](https://github.com/neolit123)) +- Updated golang.org/x/net to v0.0.0-20211209124913-491a49abca63. ([#106949](https://github.com/kubernetes/kubernetes/pull/106949), [@cpanato](https://github.com/cpanato)) +- Updates `kubectl kustomize` and `kubectl apply -k` to Kustomize v4.5.4 ([#108994](https://github.com/kubernetes/kubernetes/pull/108994), [@KnVerey](https://github.com/KnVerey)) +- When invoked with `-list-images`, the `e2e.test` binary now also lists the images that might be needed for storage tests. ([#108458](https://github.com/kubernetes/kubernetes/pull/108458), [@pohly](https://github.com/pohly)) +- `kubectl config delete-user` now supports completion ([#107142](https://github.com/kubernetes/kubernetes/pull/107142), [@dimbleby](https://github.com/dimbleby)) +- `kubectl create token` can now be used to request a service account token, and permission to request service account tokens is added to the `edit` and `admin` RBAC roles ([#107880](https://github.com/kubernetes/kubernetes/pull/107880), [@liggitt](https://github.com/liggitt)) +- `kubectl version` now includes information on the embedded version of Kustomize ([#108817](https://github.com/kubernetes/kubernetes/pull/108817), [@KnVerey](https://github.com/KnVerey)) + +### Bug or Regression + +- A node IP provided to kublet via `--node-ip` will now be preferred for when determining the node's primary IP and using the external cloud provider (CCM). ([#107750](https://github.com/kubernetes/kubernetes/pull/107750), [@stephenfin](https://github.com/stephenfin)) +- A static pod that is rapidly updated was failing to start until the Kubelet was restarted. ([#107900](https://github.com/kubernetes/kubernetes/pull/107900), [@smarterclayton](https://github.com/smarterclayton)) +- Add one metrics(`kubelet_volume_stats_health_abnormal`) of volume health state to kubelet ([#108758](https://github.com/kubernetes/kubernetes/pull/108758), [@fengzixu](https://github.com/fengzixu)) +- Added a new label `type` to `apiserver_flowcontrol_request_execution_seconds` metric - it has the following values: - 'regular': indicates that it is a non long running request - 'watch': indicates that it is a watch request. ([#105517](https://github.com/kubernetes/kubernetes/pull/105517), [@tkashem](https://github.com/tkashem)) +- Added a test to guarantee that conformance clusters require at least 2 untainted nodes. ([#106313](https://github.com/kubernetes/kubernetes/pull/106313), [@aojea](https://github.com/aojea)) +- Adds PV deletion protection finalizer only when PV reclaimPolicy is Delete for dynamically provisioned volumes. ([#109205](https://github.com/kubernetes/kubernetes/pull/109205), [@deepakkinni](https://github.com/deepakkinni)) +- Allowed attached volumes to be mounted quicker by skipping exponential backoff when checking for reported-in-use volumes. ([#106853](https://github.com/kubernetes/kubernetes/pull/106853), [@gnufied](https://github.com/gnufied)) +- Alowed useful inclusion of `-args $prog_args` in KUBE_TEST_ARGS, when doing `make test-integration`. ([#107516](https://github.com/kubernetes/kubernetes/pull/107516), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) +- An inefficient lock in EndpointSlice controller metrics cache has been reworked. Network programming latency may be significantly reduced in certain scenarios, especially in clusters with a large number of Services. ([#107091](https://github.com/kubernetes/kubernetes/pull/107091), [@robscott](https://github.com/robscott)) +- Apiserver will now reject connection attempts to `0.0.0.0/::` when handling a proxy subresource request. ([#107402](https://github.com/kubernetes/kubernetes/pull/107402), [@anguslees](https://github.com/anguslees)) +- Bug: client-go clientset was not defaulting to the user agent, and was using the default golang agent for all the requests. ([#108772](https://github.com/kubernetes/kubernetes/pull/108772), [@aojea](https://github.com/aojea)) +- Bump `sigs.k8s.io/apiserver-network-proxy/konnectivity-client@v0.0.30` to fix a goroutine leak in kube-apiserver when using egress selctor with the gRPC mode. ([#108437](https://github.com/kubernetes/kubernetes/pull/108437), [@andrewsykim](https://github.com/andrewsykim)) +- CEL validation failure returns object type instead of object. ([#107090](https://github.com/kubernetes/kubernetes/pull/107090), [@cici37](https://github.com/cici37)) +- CRI-API: IPs returned by `PodSandboxNetworkStatus`` are ignored by the kubelet for host-network pods. ([#106715](https://github.com/kubernetes/kubernetes/pull/106715), [@aojea](https://github.com/aojea)) +- Call `NodeExpand` on all nodes in case of RWX volumes ([#108693](https://github.com/kubernetes/kubernetes/pull/108693), [@gnufied](https://github.com/gnufied)) +- Changed node staging path for CSI driver to use a PV agnostic path. Nodes must be drained before updating the kubelet with this change. ([#107065](https://github.com/kubernetes/kubernetes/pull/107065), [@saikat-royc](https://github.com/saikat-royc)) +- Client-go: fixed the paged list calls with `ResourceVersionMatch` set would fail once paging is kicked in. ([#107311](https://github.com/kubernetes/kubernetes/pull/107311), [@fasaxc](https://github.com/fasaxc)) +- Correct event registration for multiple scheduler plugins; this fixes a potential significant delay in re-queueing unschedulable pods. ([#109442](https://github.com/kubernetes/kubernetes/pull/109442), [@ahg-g](https://github.com/ahg-g)) +- Etcd: Update to v3.5.3 ([#109471](https://github.com/kubernetes/kubernetes/pull/109471), [@justaugustus](https://github.com/justaugustus)) +- Existing InTree AzureFile PVs which don't have a secret namespace defined will now work properly after enabling CSI migration - the namespace will be obtained from ClaimRef. ([#108000](https://github.com/kubernetes/kubernetes/pull/108000), [@RomanBednar](https://github.com/RomanBednar)) +- Failure to start a container cannot accidentally result in the pod being considered "Succeeded" in the presence of deletion. ([#107845](https://github.com/kubernetes/kubernetes/pull/107845), [@smarterclayton](https://github.com/smarterclayton)) +- Fix a race in the timeout handler that could lead to kube-apiserver crashes ([#108455](https://github.com/kubernetes/kubernetes/pull/108455), [@Argh4k](https://github.com/Argh4k)) +- Fix container creation errors for pods with cpu requests bigger than 256 cpus ([#106570](https://github.com/kubernetes/kubernetes/pull/106570), [@odinuge](https://github.com/odinuge)) +- Fix issue where the job controller might not remove the job tracking finalizer from pods when deleting a job, or when the pod is orphan ([#108752](https://github.com/kubernetes/kubernetes/pull/108752), [@alculquicondor](https://github.com/alculquicondor)) +- Fix libct/cg/fs2: fixed GetStats for unsupported hugetlb error on Raspbian Bullseye ([#106912](https://github.com/kubernetes/kubernetes/pull/106912), [@Letme](https://github.com/Letme)) +- Fix the bug that the outdated services may be sent to the cloud provider ([#107631](https://github.com/kubernetes/kubernetes/pull/107631), [@lzhecheng](https://github.com/lzhecheng)) +- Fix the overestimated cost of delegated API requests in kube-apiserver API priority & fairness ([#109188](https://github.com/kubernetes/kubernetes/pull/109188), [@wojtek-t](https://github.com/wojtek-t)) +- Fix to allow `fsGroup` to be applied for CSI Inline Volumes ([#108662](https://github.com/kubernetes/kubernetes/pull/108662), [@dobsonj](https://github.com/dobsonj)) +- Fixed CSI migration of Azure Disk in-tree StorageClasses with topology requirements in Azure regions that do not have availability zones. ([#109154](https://github.com/kubernetes/kubernetes/pull/109154), [@jsafrane](https://github.com/jsafrane)) +- Fixed `--retries` functionality for negative values in `kubectl cp` ([#108748](https://github.com/kubernetes/kubernetes/pull/108748), [@atiratree](https://github.com/atiratree)) +- Fixed `azureDisk` parameter lowercase translation issue. ([#107429](https://github.com/kubernetes/kubernetes/pull/107429), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed `azureFile` `volumeID` collision issue in CSI migration. ([#107575](https://github.com/kubernetes/kubernetes/pull/107575), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed a bug in attachdetach controller that didn't properly handle kube-apiserver errors leading to stuck attachments/detachments. ([#108167](https://github.com/kubernetes/kubernetes/pull/108167), [@jfremy](https://github.com/jfremy)) +- Fixed a bug that a pod's `.status.nominatedNodeName` is not cleared properly, and thus over-occupied system resources. ([#106816](https://github.com/kubernetes/kubernetes/pull/106816), [@Huang-Wei](https://github.com/Huang-Wei)) +- Fixed a bug that caused credentials in an exec plugin to override the static certificates set in a kubeconfig. ([#107410](https://github.com/kubernetes/kubernetes/pull/107410), [@margocrawf](https://github.com/margocrawf)) +- Fixed a bug that could cause panic when a `/healthz` request times out. ([#107034](https://github.com/kubernetes/kubernetes/pull/107034), [@benluddy](https://github.com/benluddy)) +- Fixed a bug that out-of-tree plugin is misplaced when using scheduler v1beta3 config ([#108613](https://github.com/kubernetes/kubernetes/pull/108613), [@Huang-Wei](https://github.com/Huang-Wei)) +- Fixed a bug where a partial `EndpointSlice` update could cause node name information to be dropped from endpoints that were not updated. ([#108198](https://github.com/kubernetes/kubernetes/pull/108198), [@liggitt](https://github.com/liggitt)) +- Fixed a bug where unwanted fields were being returned from a `create --dry-run`: uid and, if generateName was used, name. ([#107088](https://github.com/kubernetes/kubernetes/pull/107088), [@joejulian](https://github.com/joejulian)) +- Fixed a bug where vSphere client connections where not being closed during testing. Leaked vSphere client sessions were causing resource exhaustion during automated testing. ([#107337](https://github.com/kubernetes/kubernetes/pull/107337), [@derek-pryor](https://github.com/derek-pryor)) +- Fixed a panic when using invalid output format in `kubectl create secret` command. ([#107221](https://github.com/kubernetes/kubernetes/pull/107221), [@rikatz](https://github.com/rikatz)) +- Fixed a rare race condition handling requests that timeout. ([#107452](https://github.com/kubernetes/kubernetes/pull/107452), [@liggitt](https://github.com/liggitt)) +- Fixed a regression in 1.23 that incorrectly pruned data from array items of a custom resource that set `x-kubernetes-preserve-unknown-fields: true`. ([#107688](https://github.com/kubernetes/kubernetes/pull/107688), [@liggitt](https://github.com/liggitt)) +- Fixed a regression in 1.23 where update requests to previously persisted `Service` objects that have not been modified since 1.19 can be rejected with an incorrect `spec.clusterIPs: Required value` error. ([#107847](https://github.com/kubernetes/kubernetes/pull/107847), [@thockin](https://github.com/thockin)) +- Fixed a regression that could incorrectly reject pods with `OutOfCpu` errors if they were rapidly scheduled after other pods were reported as complete in the API. The Kubelet now waits to report the phase of a pod as terminal in the API until all running containers are guaranteed to have stopped and no new containers can be started. Short-lived pods may take slightly longer (~1s) to report Succeeded or Failed after this change. ([#108366](https://github.com/kubernetes/kubernetes/pull/108366), [@smarterclayton](https://github.com/smarterclayton)) +- Fixed bug in `TopologyManager` for ensuring aligned allocations on machines with more than 2 NUMA nodes ([#108052](https://github.com/kubernetes/kubernetes/pull/108052), [@klueska](https://github.com/klueska)) +- Fixed bug in error messaging for basic-auth and ssh secret validations. ([#106179](https://github.com/kubernetes/kubernetes/pull/106179), [@vivek-koppuru](https://github.com/vivek-koppuru)) +- Fixed detaching CSI volumes from nodes when a CSI driver name has prefix "csi-". ([#107025](https://github.com/kubernetes/kubernetes/pull/107025), [@jsafrane](https://github.com/jsafrane)) +- Fixed duplicate port opening in kube-proxy when `--nodeport-addresses` is empty. ([#107413](https://github.com/kubernetes/kubernetes/pull/107413), [@tnqn](https://github.com/tnqn)) +- Fixed handling of objects with invalid selectors. ([#107559](https://github.com/kubernetes/kubernetes/pull/107559), [@liggitt](https://github.com/liggitt)) +- Fixed indexer bug that resulted in incorrect index updates if number of index values for a given object was changing during update ([#109137](https://github.com/kubernetes/kubernetes/pull/109137), [@wojtek-t](https://github.com/wojtek-t)) +- Fixed kubectl bug where bash completions don't work if `--context` flag is specified with a value that contains a colon. ([#107439](https://github.com/kubernetes/kubernetes/pull/107439), [@brianpursley](https://github.com/brianpursley)) +- Fixed performance regression in JSON logging caused by syncing stdout every time error was logged. ([#107035](https://github.com/kubernetes/kubernetes/pull/107035), [@serathius](https://github.com/serathius)) +- Fixed regression in CPUManager that it will release exclusive CPUs in app containers inherited from init containers when the init containers were removed. ([#104837](https://github.com/kubernetes/kubernetes/pull/104837), [@eggiter](https://github.com/eggiter)) +- Fixed static pod add and removes restarts in certain cases. ([#107695](https://github.com/kubernetes/kubernetes/pull/107695), [@rphillips](https://github.com/rphillips)) +- Fixed: deleted a non-existent Azure disk issue. ([#107406](https://github.com/kubernetes/kubernetes/pull/107406), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed: do not return early in the node informer when there is no change of the topology label. ([#108149](https://github.com/kubernetes/kubernetes/pull/108149), [@nilo19](https://github.com/nilo19)) +- Fixed: removed outdated ipv4 route when the corresponding node is deleted. ([#106164](https://github.com/kubernetes/kubernetes/pull/106164), [@nilo19](https://github.com/nilo19)) +- Fixes bug in CronJob Controller V2 where it would lose track of jobs upon job template labels change. ([#107997](https://github.com/kubernetes/kubernetes/pull/107997), [@d-honeybadger](https://github.com/d-honeybadger)) +- If drainer has nil for Ctx or Client it will error with `RunCordonOrUncordon`. ([#105297](https://github.com/kubernetes/kubernetes/pull/105297), [@jackfrancis](https://github.com/jackfrancis)) +- Improved handling of unmount failures when device may be in-use by another container/process. ([#107789](https://github.com/kubernetes/kubernetes/pull/107789), [@gnufied](https://github.com/gnufied)) +- Improved logging when volume times out waiting for attach/detach. ([#108628](https://github.com/kubernetes/kubernetes/pull/108628), [@RomanBednar](https://github.com/RomanBednar)) +- Improved the rounding of `PodTopologySpread` scores to offer better scoring when spreading a low number of pods. ([#107384](https://github.com/kubernetes/kubernetes/pull/107384), [@sanposhiho](https://github.com/sanposhiho)) +- Increase Azure ACR credential provider timeout ([#108209](https://github.com/kubernetes/kubernetes/pull/108209), [@andyzhangx](https://github.com/andyzhangx)) +- Kube-apiserver: Server Side Apply merge order is reverted to match v1.22 behavior until http://issue.k8s.io/104641 is resolved. ([#106660](https://github.com/kubernetes/kubernetes/pull/106660), [@liggitt](https://github.com/liggitt)) +- Kube-apiserver: ensures the namespace of objects sent to admission webhooks matches the request namespace. Previously, objects without a namespace set would have the request namespace populated after mutating admission, and objects with a namespace that did not match the request namespace would be rejected after admission. ([#94637](https://github.com/kubernetes/kubernetes/pull/94637), [@liggitt](https://github.com/liggitt)) +- Kube-apiserver: removed `apf_fd` from server logs which could contain data identifying the requesting user ([#108631](https://github.com/kubernetes/kubernetes/pull/108631), [@jupblb](https://github.com/jupblb)) +- Kube-proxy in iptables mode now only logs the full iptables input at `-v=9` rather than `-v=5`. ([#108224](https://github.com/kubernetes/kubernetes/pull/108224), [@danwinship](https://github.com/danwinship)) +- Kube-proxy will no longer hold service node ports open on the node. Users are still advised not to run any listener on node ports range used by kube-proxy. ([#108496](https://github.com/kubernetes/kubernetes/pull/108496), [@khenidak](https://github.com/khenidak)) +- Kubeadm: allow the `certs check-expiration` command to not require the existence of the cluster CA key (ca.key file) when checking the expiration of managed certificates in kubeconfig files. ([#106854](https://github.com/kubernetes/kubernetes/pull/106854), [@neolit123](https://github.com/neolit123)) +- Kubeadm: during execution of the `certs check-expiration` command, treat the etcd CA as external if there is a missing etcd CA key file (etcd/ca.key) and perform the proper validation on certificates signed by the etcd CA. Additionally, make sure that the CA for all entries in the output table is included - for both certificates on disk and in kubeconfig files. ([#106891](https://github.com/kubernetes/kubernetes/pull/106891), [@neolit123](https://github.com/neolit123)) +- Kubeadm: fixed a bug related to a warning printed if the `KubeletConfiguration` `resolvConf` field value does not match `/run/systemd/resolve/resolv.conf` ([#107785](https://github.com/kubernetes/kubernetes/pull/107785), [@chendave](https://github.com/chendave)) +- Kubeadm: fixed a bug when using `kubeadm init --dry-run` with certificate authority files (`ca.key` / `ca.crt`) present in `/etc/kubernetes/pki`) ([#108410](https://github.com/kubernetes/kubernetes/pull/108410), [@Haleygo](https://github.com/Haleygo)) +- Kubeadm: fixed a bug where Windows nodes fail to join an IPv6 cluster due to preflight errors ([#108769](https://github.com/kubernetes/kubernetes/pull/108769), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: fixed the bug that `kubeadm certs generate-csr` command does not remove duplicated SANs ([#107982](https://github.com/kubernetes/kubernetes/pull/107982), [@SataQiu](https://github.com/SataQiu)) +- Kubelet now checks "NoExecute" taint/toleration before accepting pods, except for static pods. ([#101218](https://github.com/kubernetes/kubernetes/pull/101218), [@gjkim42](https://github.com/gjkim42)) +- Metrics Server image bumped to v0.5.2 ([#106492](https://github.com/kubernetes/kubernetes/pull/106492), [@serathius](https://github.com/serathius)) +- Modified command line errors (for example, `kubectl list` -> `unknown command`) that were printed as log message with escaped line breaks instead of a multi-line plain text, making the error hard to read. ([#107044](https://github.com/kubernetes/kubernetes/pull/107044), [@pohly](https://github.com/pohly)) +- Modified log messages that were logged with `"v":0` in JSON output although they were debug messages with a higher verbosity. ([#106978](https://github.com/kubernetes/kubernetes/pull/106978), [@pohly](https://github.com/pohly)) +- No ([#107769](https://github.com/kubernetes/kubernetes/pull/107769), [@liurupeng](https://github.com/liurupeng)) [SIG Cloud Provider and Windows] +- NodeRestriction admission: nodes are now allowed to update PersistentVolumeClaim status fields `resizeStatus` and `allocatedResources` when the `RecoverVolumeExpansionFailure` feature is enabled. ([#107686](https://github.com/kubernetes/kubernetes/pull/107686), [@gnufied](https://github.com/gnufied)) +- Only extend token lifetimes when `--service-account-extend-token-expiration` is true and the requested token audiences are empty or exactly match all values for `--api-audiences`. ([#105954](https://github.com/kubernetes/kubernetes/pull/105954), [@jyotimahapatra](https://github.com/jyotimahapatra)) +- Prevent kube-scheduler from nominating a Pod that was already scheduled to a node ([#109245](https://github.com/kubernetes/kubernetes/pull/109245), [@alculquicondor](https://github.com/alculquicondor)) +- Prevent unnecessary `Endpoints` and `EndpointSlice` updates caused by `Pod ResourceVersion` change ([#108078](https://github.com/kubernetes/kubernetes/pull/108078), [@tnqn](https://github.com/tnqn)) +- Print `<default>` as the value in case kubectl describe ingress shows `default-backend:80` when no default backend is present ([#108506](https://github.com/kubernetes/kubernetes/pull/108506), [@jlsong01](https://github.com/jlsong01)) +- Publishing kube-proxy metrics for Windows kernel-mode ([#106581](https://github.com/kubernetes/kubernetes/pull/106581), [@knabben](https://github.com/knabben)) +- Re-adds response status and headers on verbose kubectl responses ([#108505](https://github.com/kubernetes/kubernetes/pull/108505), [@rikatz](https://github.com/rikatz)) +- Record requests rejected with 429 in the apiserver_request_total metric ([#108927](https://github.com/kubernetes/kubernetes/pull/108927), [@wojtek-t](https://github.com/wojtek-t)) +- Removed validation if AppArmor profiles are loaded on the local node. This should be handled by the container runtime. ([#97966](https://github.com/kubernetes/kubernetes/pull/97966), [@saschagrunert](https://github.com/saschagrunert)) +- Replace the url label of `rest_client_request_duration_seconds` and `rest_client_rate_limiter_duration_seconds` metrics with a host label to prevent cardinality explosions and keep only the useful information. This is a breaking change required for security reasons. ([#106539](https://github.com/kubernetes/kubernetes/pull/106539), [@dgrisonnet](https://github.com/dgrisonnet)) +- Restored `NumPDBViolations` info of nodes, when `HTTPExtender ProcessPreemption`. This info will be used in subsequent filtering steps - `pickOneNodeForPreemption` ([#105853](https://github.com/kubernetes/kubernetes/pull/105853), [@caden2016](https://github.com/caden2016)) +- Reverted graceful node shutdown to match 1.21 behavior of setting pods that have not yet successfully completed to "Failed" phase if the GracefulNodeShutdown feature is enabled in kubelet. The GracefulNodeShutdown feature is beta and must be explicitly configured via kubelet config to be enabled in 1.21+. This changes 1.22 and 1.23 behavior on node shutdown to match 1.21. If you do not want pods to be marked terminated on node shutdown in 1.22 and 1.23, disable the GracefulNodeShutdown feature. ([#106901](https://github.com/kubernetes/kubernetes/pull/106901), [@bobbypage](https://github.com/bobbypage)) +- Reverts the CRI API version surfaced by dockershim to v1alpha2 ([#106803](https://github.com/kubernetes/kubernetes/pull/106803), [@saschagrunert](https://github.com/saschagrunert)) +- Services with "internalTrafficPolicy: Local" now behave more like + "externalTrafficPolicy: Local". Also, "internalTrafficPolicy: Local, + externalTrafficPolicy: Cluster" is now implemented correctly. ([#106497](https://github.com/kubernetes/kubernetes/pull/106497), [@danwinship](https://github.com/danwinship)) +- Sets JobTrackingWithFinalizers, a beta feature, as disabled by default, due to unresolved bug https://github.com/kubernetes/kubernetes/issues/109485 ([#109487](https://github.com/kubernetes/kubernetes/pull/109487), [@alculquicondor](https://github.com/alculquicondor)) +- Skip re-allocate logic if pod is already removed to avoid panic ([#108831](https://github.com/kubernetes/kubernetes/pull/108831), [@waynepeking348](https://github.com/waynepeking348)) +- The Service field `spec.internalTrafficPolicy` is no longer defaulted for Services when the type is `ExternalName`. The field is also dropped on read when the Service type is `ExternalName`. ([#104846](https://github.com/kubernetes/kubernetes/pull/104846), [@andrewsykim](https://github.com/andrewsykim)) +- The `ServerSideFieldValidation` feature has been reverted to alpha for 1.24. ([#109271](https://github.com/kubernetes/kubernetes/pull/109271), [@liggitt](https://github.com/liggitt)) +- The `TopologyAwareHints` feature gate is now enabled by default. This will allow users to opt-in to Topology Aware Hints by setting the `service.kubernetes.io/topology-aware-hints` on a Service. This will not affect any Services without that annotation set. ([#108747](https://github.com/kubernetes/kubernetes/pull/108747), [@robscott](https://github.com/robscott)) +- The deprecated flag `--really-crash-for-testing` was removed. ([#101719](https://github.com/kubernetes/kubernetes/pull/101719), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) +- The kubelet no longer forcefully closes active connections on heartbeat failures, using the HTTP2 health check mechanism to detect broken connections. Users can force the previous behavior of the kubelet by setting the environment variable DISABLE_HTTP2. ([#108107](https://github.com/kubernetes/kubernetes/pull/108107), [@aojea](https://github.com/aojea)) +- This code change fixes the bug that UDP services would trigger unnecessary LoadBalancer updates. The root cause is that a field not working for non-TCP protocols is considered. + ref: https://github.com/kubernetes-sigs/cloud-provider-azure/pull/1090 ([#107981](https://github.com/kubernetes/kubernetes/pull/107981), [@lzhecheng](https://github.com/lzhecheng)) +- Topology translation of in-tree vSphere volume to vSphere CSI. ([#108611](https://github.com/kubernetes/kubernetes/pull/108611), [@divyenpatel](https://github.com/divyenpatel)) +- Updating kubelet permissions check for Windows nodes to see if process is elevated instead of checking if process owner is in Administrators group ([#108146](https://github.com/kubernetes/kubernetes/pull/108146), [@marosset](https://github.com/marosset)) +- `apiserver`, if configured to reconcile the `kubernetes.default` service endpoints, checks if the configured Service IP range matches the apiserver public address IP family, and fails to start if not. ([#106721](https://github.com/kubernetes/kubernetes/pull/106721), [@aojea](https://github.com/aojea)) +- `kubectl version` now fails when given extra arguments. ([#107967](https://github.com/kubernetes/kubernetes/pull/107967), [@jlsong01](https://github.com/jlsong01)) + +### Other (Cleanup or Flake) + +- '`build/dependencies.yaml`: remove the dependency on Docker. With the dockershim removal, core Kubernetes no longer + has to track the latest validated version of Docker.' ([#107607](https://github.com/kubernetes/kubernetes/pull/107607), [@neolit123](https://github.com/neolit123)) +- API server's deprecated `--experimental-encryption-provider-config` flag is now removed. Adapt your machinery to use the `--encryption-provider-config` flag that is available since v1.13. ([#108423](https://github.com/kubernetes/kubernetes/pull/108423), [@ialidzhikov](https://github.com/ialidzhikov)) +- API server's deprecated `--target-ram-mb` flag is now removed. ([#108457](https://github.com/kubernetes/kubernetes/pull/108457), [@ialidzhikov](https://github.com/ialidzhikov)) +- Added PreemptionPolicy in PriorityClass describe ([#108701](https://github.com/kubernetes/kubernetes/pull/108701), [@denkensk](https://github.com/denkensk)) +- Added an e2e test to verify that the cluster is not vulnerable to CVE-2021-29923 when using Services with IPs with leading zeros, note that this test is a necessary but not sufficient condition, all the components in the clusters that consume IPs addresses from the APIs MUST interpret them as decimal or discard them. ([#107552](https://github.com/kubernetes/kubernetes/pull/107552), [@aojea](https://github.com/aojea)) +- Added an example for the `kubectl plugin list` command. ([#106600](https://github.com/kubernetes/kubernetes/pull/106600), [@bergerhoffer](https://github.com/bergerhoffer)) +- Added details about preemption in the event for scheduling failed. ([#107775](https://github.com/kubernetes/kubernetes/pull/107775), [@denkensk](https://github.com/denkensk)) +- Allow KUBE_TEST_REPO_LIST to be a remote url ([#108429](https://github.com/kubernetes/kubernetes/pull/108429), [@dims](https://github.com/dims)) +- Client-go: if resetting the body fails before a retry, an error is now surfaced to the user. ([#109050](https://github.com/kubernetes/kubernetes/pull/109050), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) +- Deprecate apiserver_dropped_requests_total metric. The same data can be read from apiserver_request_terminations_total metric. ([#109018](https://github.com/kubernetes/kubernetes/pull/109018), [@wojtek-t](https://github.com/wojtek-t)) +- Deprecated types in `k8s.io/apimachinery/util/clock`. Please use `k8s.io/utils/clock` instead. ([#106850](https://github.com/kubernetes/kubernetes/pull/106850), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) +- E2e tests wait for `kube-root-ca.crt` to be populated in namespaces for use with projected service account tokens, reducing delays starting those test pods and errors in the logs. ([#107763](https://github.com/kubernetes/kubernetes/pull/107763), [@smarterclayton](https://github.com/smarterclayton)) +- Endpoints and EndpointSlice controllers no longer populate [resourceVersion of targetRef](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-reference/#ObjectReference) in Endpoints and EndpointSlices ([#108450](https://github.com/kubernetes/kubernetes/pull/108450), [@tnqn](https://github.com/tnqn)) +- Fixed default config flags for `NewDefaultKubectlCommand`. ([#107131](https://github.com/kubernetes/kubernetes/pull/107131), [@jonnylangefeld](https://github.com/jonnylangefeld)) +- Fixed documentation typo in cloud-provider. ([#106445](https://github.com/kubernetes/kubernetes/pull/106445), [@majst01](https://github.com/majst01)) +- Fixed spelling of implemented in pkg/proxy/apis/config/types.go line 206 ([#106453](https://github.com/kubernetes/kubernetes/pull/106453), [@davidleitw](https://github.com/davidleitw)) +- Improve error message when applying CRDs before the CRD exists in a cluster ([#107363](https://github.com/kubernetes/kubernetes/pull/107363), [@eddiezane](https://github.com/eddiezane)) +- Improved algorithm for selecting `best` non-preferred hint in the TopologyManager ([#108154](https://github.com/kubernetes/kubernetes/pull/108154), [@klueska](https://github.com/klueska)) +- Kube-proxy doesn't set the sysctl `net.ipv4.conf.all.route_localnet=1` if no IPv4 loopback address is selected by the `nodePortAddresses` configuration parameter. ([#107684](https://github.com/kubernetes/kubernetes/pull/107684), [@aojea](https://github.com/aojea)) +- Kubeadm: all warning messages are printed to stderr instead of stdout. ([#107467](https://github.com/kubernetes/kubernetes/pull/107467), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: handled the removal of dockershim related flags for new kubeadm clusters. If kubelet <1.24 is on the host, kubeadm >=1.24 can continue using the built-in dockershim in the kubelet if the user passes the `{Init|Join}Configuration.nodeRegistration.criSocket` value in the kubeadm configuration to be equal to `unix:///var/run/dockershim.sock` on Unix or `npipe:////./pipe/dockershim` on Windows. If kubelet version >=1.24 is on the host, kubeadm >=1.24 will treat all container runtimes as "remote" using the kubelet flags `--container-runtime=remote --container-runtime-endpoint=scheme://some/path`. The special management for kubelet <1.24 will be removed in kubeadm 1.25. ([#106973](https://github.com/kubernetes/kubernetes/pull/106973), [@neolit123](https://github.com/neolit123)) +- Kubeadm: make sure that `kubeadm init/join` always use a URL scheme (unix:// on Linux and npipe:// on Windows) when passing a value to the `--container-runtime-endpoint` kubelet flag. This flag's value is taken from the kubeadm configuration `criSocket` field or the `--cri-socket` CLI flag. Automatically add a missing URL scheme to the user configuration in memory, but warn them that they should also update their configuration on disk manually. During `kubeadm upgrade apply/node` mutate the `/var/lib/kubelet/kubeadm-flags.env` file on disk and the `kubeadm.alpha.kubernetes.io/cri-socket` annotation Node object if needed. These automatic actions are temporary and will be removed in a future release. In the future the kubelet may not support CRI endpoints without an URL scheme. ([#107295](https://github.com/kubernetes/kubernetes/pull/107295), [@neolit123](https://github.com/neolit123)) +- Kubeadm: remove the `IPv6DualStack` feature gate. The feature has been GA and locked to enabled since 1.23. ([#106648](https://github.com/kubernetes/kubernetes/pull/106648), [@calvin0327](https://github.com/calvin0327)) +- Kubeadm: removed the deprecated `output/v1alpha1` API used for machine readable output by some kubeadm commands. In 1.23 kubeadm started using the newer version `output/v1alpha2` for the same purpose. ([#107468](https://github.com/kubernetes/kubernetes/pull/107468), [@neolit123](https://github.com/neolit123)) +- Kubeadm: removed the restriction that the `ca.crt` can only contain one certificate. If there is more than one certificate in the `ca.crt` file, kubeadm will pick the first one by default. ([#107327](https://github.com/kubernetes/kubernetes/pull/107327), [@SataQiu](https://github.com/SataQiu)) +- Kubectl stack traces now only print at verbose `-v=99` and not `-v=6` ([#108053](https://github.com/kubernetes/kubernetes/pull/108053), [@eddiezane](https://github.com/eddiezane)) +- Kubectl: restored `--dry-run`, `--dry-run=true`, and `--dry-run=false` for compatibility with pre-1.23 invocations. ([#107003](https://github.com/kubernetes/kubernetes/pull/107003), [@julianvmodesto](https://github.com/julianvmodesto)) +- Kubelet config validation error messages are updated. ([#105360](https://github.com/kubernetes/kubernetes/pull/105360), [@shuheiktgw](https://github.com/shuheiktgw)) +- Kubernetes e2e framework will use the url `invalid.registry.k8s.io/invalid` instead `invalid.com/invalid` for test that use an invalid registry. ([#107455](https://github.com/kubernetes/kubernetes/pull/107455), [@aojea](https://github.com/aojea)) +- Marked kubelet `--container-runtime-endpoint` and `--image-service-endpoint` CLI flags as stable. ([#106954](https://github.com/kubernetes/kubernetes/pull/106954), [@saschagrunert](https://github.com/saschagrunert)) +- Migrate `volume/csi/csi-client.go` logs to structured logging. ([#99441](https://github.com/kubernetes/kubernetes/pull/99441), [@CKchen0726](https://github.com/CKchen0726)) +- Migrate statefulset files to structured logging ([#106109](https://github.com/kubernetes/kubernetes/pull/106109), [@h4ghhh](https://github.com/h4ghhh)) +- Refactor kubelet command line for enabling features and "drop `RuntimeClass` feature gate" if present. Note that this feature has been on by default since 1.14 and was GA'ed in 1.20. ([#106882](https://github.com/kubernetes/kubernetes/pull/106882), [@cyclinder](https://github.com/cyclinder)) +- Remove deprecated `--serviceaccount`, `--hostport`, `--requests` and `--limits` from kubectl run. ([#108820](https://github.com/kubernetes/kubernetes/pull/108820), [@mozillazg](https://github.com/mozillazg)) +- Remove support for `node-expansion` between `node-stage` and `node-publish` ([#108614](https://github.com/kubernetes/kubernetes/pull/108614), [@gnufied](https://github.com/gnufied)) +- Removed deprecated `generator` and `container-port` flags ([#106824](https://github.com/kubernetes/kubernetes/pull/106824), [@lauchokyip](https://github.com/lauchokyip)) +- Removed kubelet `--non-masquerade-cidr` deprecated CLI flag ([#107096](https://github.com/kubernetes/kubernetes/pull/107096), [@hakman](https://github.com/hakman)) +- Rename unschedulableQ to unschedulablePods ([#108919](https://github.com/kubernetes/kubernetes/pull/108919), [@denkensk](https://github.com/denkensk)) +- SPDY transport in client-go will no longer follow redirects. ([#108531](https://github.com/kubernetes/kubernetes/pull/108531), [@tallclair](https://github.com/tallclair)) +- ServerResources was deprecated in February 2019 (https://github.com/kubernetes/kubernetes/commit/618050e) and now it's being removed and ServerGroupsAndResources is suggested to be used instead ([#107180](https://github.com/kubernetes/kubernetes/pull/107180), [@ardaguclu](https://github.com/ardaguclu)) +- The API server's deprecated `--deserialization-cache-size` flag is now removed. ([#108448](https://github.com/kubernetes/kubernetes/pull/108448), [@ialidzhikov](https://github.com/ialidzhikov)) +- The `--container-runtime` kubelet flag is deprecated and will be removed in future releases. ([#107094](https://github.com/kubernetes/kubernetes/pull/107094), [@adisky](https://github.com/adisky)) +- The `WarningHeaders` feature gate that is GA since v1.22 is unconditionally enabled, and can no longer be specified via the `--feature-gates` argument. ([#108394](https://github.com/kubernetes/kubernetes/pull/108394), [@ialidzhikov](https://github.com/ialidzhikov)) +- The `e2e.test` binary supports a new `--kubelet-root` parameter to override the default `/var/lib/kubelet` path. CSI storage tests use this. ([#108253](https://github.com/kubernetes/kubernetes/pull/108253), [@pohly](https://github.com/pohly)) +- The fluentd-elasticsearch addon is no longer included in the cluster directory. It is available from https://github.com/kubernetes-sigs/instrumentation-addons/tree/master/fluentd-elasticsearch. ([#107553](https://github.com/kubernetes/kubernetes/pull/107553), [@liggitt](https://github.com/liggitt)) +- The scheduler framework option `runAllFilters` is removed. ([#108829](https://github.com/kubernetes/kubernetes/pull/108829), [@kerthcet](https://github.com/kerthcet)) +- Updated cri-tools to [v1.23.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.23.0). ([#107604](https://github.com/kubernetes/kubernetes/pull/107604), [@saschagrunert](https://github.com/saschagrunert)) +- Updated runc to 1.1.0 and updated cadvisor to 0.44.0 ([#109029](https://github.com/kubernetes/kubernetes/pull/109029), [@ehashman](https://github.com/ehashman)) +- Updated runc to 1.1.1 ([#109104](https://github.com/kubernetes/kubernetes/pull/109104), [@kolyshkin](https://github.com/kolyshkin)) +- Updated the error message to not use the `--max-resource-write-bytes` & `--json-patch-max-copy-bytes` string. ([#106875](https://github.com/kubernetes/kubernetes/pull/106875), [@warmchang](https://github.com/warmchang)) +- Users who look at iptables dumps will see some changes in the naming and structure of rules. ([#109060](https://github.com/kubernetes/kubernetes/pull/109060), [@thockin](https://github.com/thockin)) +- Windows Pause no longer has support for SAC releases 1903, 1909, 2004. Windows image support is now Ltcs 2019 (1809), 20H2, LTSC 2022 ([#107056](https://github.com/kubernetes/kubernetes/pull/107056), [@jsturtevant](https://github.com/jsturtevant)) +- [k8s.io/utils/clock]: IntervalClock is now deprecated in favour of SimpleIntervalClock ([#108059](https://github.com/kubernetes/kubernetes/pull/108059), [@RaghavRoy145](https://github.com/RaghavRoy145)) +- `kube-addon-manager` image version is bumped to 9.1.6 ([#108341](https://github.com/kubernetes/kubernetes/pull/108341), [@zshihang](https://github.com/zshihang)) +- Add SourceVolumeMode field to VolumeSnapshotContents. Documentation for this alpha feature is pending. ([#665](https://github.com/kubernetes-csi/external-snapshotter/pull/665), [@RaunakShah](https://github.com/RaunakShah)) +- Update snapshotter module to v6 and client module to v5. Documentation for this alpha feature is pending. ([#670],(https://github.com/kubernetes-csi/external-snapshotter/pull/670), [@RaunakShah](https://github.com/RaunakShah)) + +### Uncategorized + +- Deprecate kubectl version long output, will be replaced with kubectl version ` --short`. Users requiring full output should use `--output=yaml|json` instead. ([#108987](https://github.com/kubernetes/kubernetes/pull/108987), [@soltysh](https://github.com/soltysh)) diff --git a/releases/release-1.24/release-notes/sessions/maps-1643816881.json b/releases/release-1.24/release-notes/sessions/maps-1643816881.json index 89a7a6d3b47..e5ab6ad5e08 100644 --- a/releases/release-1.24/release-notes/sessions/maps-1643816881.json +++ b/releases/release-1.24/release-notes/sessions/maps-1643816881.json @@ -1,79 +1,79 @@ -{ - "mail": "lucasdwyer@pm.me", - "name": "AuraSinis", - "date": 1643816881, - "prs": [ - { - "nr": 106833, - "hash": "375006070b1902b5c31a336aa4dc86f4dc7373d7" - }, - { - "nr": 106600, - "hash": "5704d3fd79e7cc8f93117b31f13eaa071dc2964a" - }, - { - "nr": 106581, - "hash": "3fbd7550d56374bc6ffed7738dee69a560cdc60e" - }, - { - "nr": 106447, - "hash": "a88aa731752810e1205d850ba2f0aec1c1c2e59d" - }, - { - "nr": 101719, - "hash": "e9bc9a1c2bb1fb0d482e03e18c856a26e771d31b" - }, - { - "nr": 106584, - "hash": "dbd05615e88aaee1d8ba97e32f8b614238ee02e3" - }, - { - "nr": 106322, - "hash": "7e0b686c73a4e98daddaf22acd1ba6cd1caa352a" - }, - { - "nr": 105360, - "hash": "5b7aae2ad5d927124b8d9ab734028ea4e08a61d3" - }, - { - "nr": 106803, - "hash": "0bedb1c734917f0d73fc184c11b8d5c688cc776d" - }, - { - "nr": 106878, - "hash": "9f582e09f84b09ad45630110cef740a503f3c2fb" - }, - { - "nr": 106838, - "hash": "833fcca313e4ad60d727d419239f6d1843bde036" - }, - { - "nr": 106588, - "hash": "7e533938e1825c4fa4f59bb75128fc2e7efe84a2" - }, - { - "nr": 106492, - "hash": "e1adeff3148a2715769fcc095f9f317bee5dc274" - }, - { - "nr": 106179, - "hash": "0c0b614c099c06d834216e477fe9a637ab8052a2" - }, - { - "nr": 106153, - "hash": "08041bac2bd8044a6fea7a9755c933baffd3a8d7" - }, - { - "nr": 97252, - "hash": "10b37a5b10c898e7deff3735a0a0ac9b08dc273b" - }, - { - "nr": 106854, - "hash": "07a7f8b368e8bf70356a7f23adc8de97ce37041c" - }, - { - "nr": 106660, - "hash": "08ee49d093aac386f9b35907680cf1bf32ef910b" - } - ] +{ + "mail": "lucasdwyer@pm.me", + "name": "AuraSinis", + "date": 1643816881, + "prs": [ + { + "nr": 106833, + "hash": "375006070b1902b5c31a336aa4dc86f4dc7373d7" + }, + { + "nr": 106600, + "hash": "5704d3fd79e7cc8f93117b31f13eaa071dc2964a" + }, + { + "nr": 106581, + "hash": "3fbd7550d56374bc6ffed7738dee69a560cdc60e" + }, + { + "nr": 106447, + "hash": "a88aa731752810e1205d850ba2f0aec1c1c2e59d" + }, + { + "nr": 101719, + "hash": "e9bc9a1c2bb1fb0d482e03e18c856a26e771d31b" + }, + { + "nr": 106584, + "hash": "dbd05615e88aaee1d8ba97e32f8b614238ee02e3" + }, + { + "nr": 106322, + "hash": "7e0b686c73a4e98daddaf22acd1ba6cd1caa352a" + }, + { + "nr": 105360, + "hash": "5b7aae2ad5d927124b8d9ab734028ea4e08a61d3" + }, + { + "nr": 106803, + "hash": "0bedb1c734917f0d73fc184c11b8d5c688cc776d" + }, + { + "nr": 106878, + "hash": "9f582e09f84b09ad45630110cef740a503f3c2fb" + }, + { + "nr": 106838, + "hash": "833fcca313e4ad60d727d419239f6d1843bde036" + }, + { + "nr": 106588, + "hash": "7e533938e1825c4fa4f59bb75128fc2e7efe84a2" + }, + { + "nr": 106492, + "hash": "e1adeff3148a2715769fcc095f9f317bee5dc274" + }, + { + "nr": 106179, + "hash": "0c0b614c099c06d834216e477fe9a637ab8052a2" + }, + { + "nr": 106153, + "hash": "08041bac2bd8044a6fea7a9755c933baffd3a8d7" + }, + { + "nr": 97252, + "hash": "10b37a5b10c898e7deff3735a0a0ac9b08dc273b" + }, + { + "nr": 106854, + "hash": "07a7f8b368e8bf70356a7f23adc8de97ce37041c" + }, + { + "nr": 106660, + "hash": "08ee49d093aac386f9b35907680cf1bf32ef910b" + } + ] } \ No newline at end of file diff --git a/releases/release-1.24/release-notes/sessions/maps-1644303140.json b/releases/release-1.24/release-notes/sessions/maps-1644303140.json index 1e73fe62bb3..3dddf04c4e2 100644 --- a/releases/release-1.24/release-notes/sessions/maps-1644303140.json +++ b/releases/release-1.24/release-notes/sessions/maps-1644303140.json @@ -1,435 +1,435 @@ -{ - "mail": "parulsahoo5jan@gmail.com", - "name": "parul5sahoo", - "date": 1644303140, - "prs": [ - { - "nr": 106949, - "hash": "5c6d07649e74477fdb6ed1cb1f6882059380796d" - }, - { - "nr": 107612, - "hash": "98585f3f01e967c0da89277eab9fa15abb4a0953" - }, - { - "nr": 107512, - "hash": "fc10d56132a2cab1eac311a9a21ce9c9aefc466c" - }, - { - "nr": 104837, - "hash": "6cf6cba72b52d2008cd21234484aff8840cb8369" - }, - { - "nr": 107688, - "hash": "e378ab26a1d9f77f5e303d9b88c69db61c8a4a74" - }, - { - "nr": 107171, - "hash": "c68d3e87c1ef39e16e7c14cb14b1ce8580b6cef0" - }, - { - "nr": 107311, - "hash": "99bf81759725c4d6a52279d15ed35b34f6f8051c" - }, - { - "nr": 107027, - "hash": "178d9c350497d95c5d1512731cec402e3f53b521" - }, - { - "nr": 106313, - "hash": "dd3429f8aa87c4a6dc24cf0b4927658b25a39fe1" - }, - { - "nr": 107796, - "hash": "a471f274e71c5fb31c03a0fb3ce87960a51528d7" - }, - { - "nr": 107402, - "hash": "4b21655a61388bb6da8a93c76df7033a803deca2" - }, - { - "nr": 105566, - "hash": "6feb389bfb647c73f818851308fd7a4105468e54" - }, - { - "nr": 106628, - "hash": "b603b8c6c4d7938b1724c8a54d4522a0316a24c6" - }, - { - "nr": 107559, - "hash": "4d94d7025c943d2f863445251b891f454e98fac8" - }, - { - "nr": 107575, - "hash": "6ca4b8d7ea83dbe87a05ac100a5da055b0c226bf" - }, - { - "nr": 107439, - "hash": "4063e0d0525cbf4bd159c9a8de1c15807ae85b62" - }, - { - "nr": 107429, - "hash": "ed24426582238be4835bd90221a8a5b17c6c7a41" - }, - { - "nr": 107094, - "hash": "4fd5f8305be1f2f064c712b626804c51a83c1f23" - }, - { - "nr": 107006, - "hash": "07fa303f31637b5118ea378a0e6b19aa85c9abdb" - }, - { - "nr": 105964, - "hash": "534e48eabc128637fe6ea6554f9b983d14cf6bd8" - }, - { - "nr": 107775, - "hash": "2fae9312e3ec1a52bd1a16706758ed2e75352b86" - }, - { - "nr": 106648, - "hash": "2c069c8671364d8bf5a3e7caa93b2bd101d51216" - }, - { - "nr": 106366, - "hash": "d7cceb6bf15c99fb2aedd324b401ba895c643166" - }, - { - "nr": 107116, - "hash": "dcdf7b08b88a5dd1d5466aad18428c7eff09973d" - }, - { - "nr": 107009, - "hash": "9b42b2a81926a572a1b0c9bd0f94312604e454e4" - }, - { - "nr": 106956, - "hash": "eae00b11ce96ea92e8e7739a113bb511316c3a40" - }, - { - "nr": 107507, - "hash": "47ca4f6417a9c68cb78c6af9aa8b7c9c39a69a87" - }, - { - "nr": 106973, - "hash": "366f605d136db35842f7415f48b0aae80dd5c8bd" - }, - { - "nr": 107003, - "hash": "2b482ec610dd5f6d33eb831b3d14a356f7689d67" - }, - { - "nr": 105954, - "hash": "ab2e2fbe2fc81ebc719feb2529884a664f7eb32d" - }, - { - "nr": 106629, - "hash": "6250120ab2eaa8b1137069aa1d05e8b239d1950c" - }, - { - "nr": 99441, - "hash": "f5cfe709364140f55b46cbf1807bfb1de7027283" - }, - { - "nr": 107235, - "hash": "fe214820c0b95da56f4ab3ca69d450d7c051b56e" - }, - { - "nr": 107847, - "hash": "1c37ae1be61e080b48d7f36ab8c3db8345a9527f" - }, - { - "nr": 106203, - "hash": "c030076974f0967cc1b860f406b1a215ce0c9d7e" - }, - { - "nr": 106644, - "hash": "38b998a1b2e73f75f6d2bb63770ca6ac5e6c2e2c" - }, - { - "nr": 107384, - "hash": "bb02eb90df8a111fa2d6e7341de741316e38606b" - }, - { - "nr": 106882, - "hash": "3c97baa5011246e5ff1ae2ffb6c1b0bd3cf51be5" - }, - { - "nr": 107588, - "hash": "98b747ecfe9f3b3a4bf3610b95bd23082e1512b2" - }, - { - "nr": 105632, - "hash": "809b32df538ac1cd788de6da2c148b46f804f77d" - }, - { - "nr": 107686, - "hash": "25fecc1209e6c2bc01342b466132d75b5f5658e5" - }, - { - "nr": 104846, - "hash": "9be9eaa7e7f351fe03055fcaadfccb4d9eafa64d" - }, - { - "nr": 107025, - "hash": "2f7dad0cb42efb13792d8eaa1eaac301cc83255d" - }, - { - "nr": 107406, - "hash": "e316aece97b3f2c3060563af09819932f8a4bd31" - }, - { - "nr": 107295, - "hash": "175ba9471ebe416e49c995b819d01037ab9cf4cf" - }, - { - "nr": 107604, - "hash": "84a23eff5211269704fd196767a3e63f0d6ad39e" - }, - { - "nr": 107468, - "hash": "f3352e02205e2bcfa3892547daacadb44aaf1cff" - }, - { - "nr": 107152, - "hash": "03836d34f325e802ba03d61c29138edddcefd026" - }, - { - "nr": 106725, - "hash": "6c3c9d831a738281080249283c0644463f4ec48c" - }, - { - "nr": 104143, - "hash": "768ea65e4880833dd85973d54d9ee4b8be098281" - }, - { - "nr": 107789, - "hash": "076133e454c3c93ddd4326c3bf9ad7cfdcb38ab0" - }, - { - "nr": 107034, - "hash": "8ff6a6ab3875f65ac1a3cdeb384ee0845d0592ce" - }, - { - "nr": 106853, - "hash": "3a193cb9a3eb990db05d451d5f77fd87b6e31165" - }, - { - "nr": 106954, - "hash": "0e5786df9361bae3e96b930acaa366968b0c8167" - }, - { - "nr": 105164, - "hash": "78f74ac9b81d1437a06ba919e8984231018f58d5" - }, - { - "nr": 105517, - "hash": "468a7f7e4338ad597cecb9e514f7e09f241f1967" - }, - { - "nr": 107753, - "hash": "c6c4762b217450f70ac3cb5fc8e34c29d73db232" - }, - { - "nr": 107554, - "hash": "588bee36fd41c9c202d8d08d1f4f7151f3491b8c" - }, - { - "nr": 106164, - "hash": "e40fbf27754242f8d7c2edd092f6c9df80f792a1" - }, - { - "nr": 97966, - "hash": "aa80b30cdafc2879bf85bb860b7477615fd55dd2" - }, - { - "nr": 106859, - "hash": "b77276240179069acf234b2ed53c561a208b523f" - }, - { - "nr": 107695, - "hash": "170d34e7564705ec199cbf507a00c30b2b93ee05" - }, - { - "nr": 107516, - "hash": "b0818ef2c2d974e5453b64172c3ad47998686460" - }, - { - "nr": 106978, - "hash": "11cef8e652432a463db48fc6d47559fe9dbaf089" - }, - { - "nr": 105853, - "hash": "9c50d1d3f89faff3d326a158cef8cc5076cf8421" - }, - { - "nr": 107327, - "hash": "3cf953ab58a83c799b3056519841d52e74892886" - }, - { - "nr": 107035, - "hash": "5a6d3d8b6c82d7158afadf4cfbc782b8c9ecc2e0" - }, - { - "nr": 104620, - "hash": "5a2c1d55864ac0240cb09626e7672eb5a3c83085" - }, - { - "nr": 107065, - "hash": "c63134923d4fa9ee1c6a6726f86a1106ec5335e1" - }, - { - "nr": 106875, - "hash": "d42c77f2dbeb871769ec4d0e71cd089a44899e0d" - }, - { - "nr": 107091, - "hash": "dacd04c9963ac0473bb9b1c03438161dc1e2b7ad" - }, - { - "nr": 107769, - "hash": "e03aec4f26d7a3fc55626caa8284acb0d3468258" - }, - { - "nr": 107317, - "hash": "c0b9d125ad5a23c21e20a9044807f7de541e6364" - }, - { - "nr": 107565, - "hash": "dd4f2189e80fbbb95cb9f694e428d38214d78d8e" - }, - { - "nr": 107467, - "hash": "50505694588cbaf502d607a8844e779ef3f19db7" - }, - { - "nr": 107221, - "hash": "1ff46daae9ee9969e7ac5f905ba3a60231ef1db3" - }, - { - "nr": 106907, - "hash": "d2f9b28485565f12acf9c593e71ca67b0c28d74b" - }, - { - "nr": 107044, - "hash": "f6e4727bb8db38d4d1e3879c7c9cda72a905ae7a" - }, - { - "nr": 107452, - "hash": "4c77f6134efbc0de4d26ddde746d32dedf378021" - }, - { - "nr": 106739, - "hash": "7b5ffceb1c3ab654538eb55e7be00816261af161" - }, - { - "nr": 106891, - "hash": "485787257e91e124ff8f364197e4edec0a910964" - }, - { - "nr": 107462, - "hash": "6633e91014107066e286391b35fa584d0ddc0cf8" - }, - { - "nr": 107553, - "hash": "0de5ed7e96b4c65eef28d46ab93f0ce744eb376d" - }, - { - "nr": 106453, - "hash": "816c2cb3aac666fdfdaddaccfce41d1c6907601c" - }, - { - "nr": 104774, - "hash": "d32aa8937eb5659fd68c05eec81a27281e06c53c" - }, - { - "nr": 107013, - "hash": "2e1cc8f1c1e08a58098602b10438ca64c883681d" - }, - { - "nr": 106932, - "hash": "e92cb930f4e89936cf9d737324f071f55e786029" - }, - { - "nr": 99758, - "hash": "1822b46d9544e9201c5c8436eb651ef23a2f3937" - }, - { - "nr": 107088, - "hash": "84eb2e43f75e9a99761098960ebf6777cb9c5ada" - }, - { - "nr": 107207, - "hash": "f22ed248f635cfc42ae3758f1a7134f3cac56925" - }, - { - "nr": 106445, - "hash": "b4dfb9783e1392be2585ac7e470580528496e8dc" - }, - { - "nr": 106901, - "hash": "7e980daaf8c84893abe66637b507c10867c64b47" - }, - { - "nr": 107763, - "hash": "5ba985a198de9eddb5ff449a283a57095fa42487" - }, - { - "nr": 107337, - "hash": "44844344f0dabadceaa7a000633d97527dc3a805" - }, - { - "nr": 106912, - "hash": "d64dff74636a32a595cecbe99702e621e7cfc853" - }, - { - "nr": 106865, - "hash": "ead4fe8dc9df03d1cea35e9fa71a5f3e624b2f49" - }, - { - "nr": 106816, - "hash": "3a3e86fdb8ecc9844a1b218f3db622a3f4dd0193" - }, - { - "nr": 106721, - "hash": "09ccc9d5396592f92038c52ffcfb53477d09b84e" - }, - { - "nr": 106850, - "hash": "48549cec05c7ae469e0c1e16a764e94724226585" - }, - { - "nr": 107603, - "hash": "89a57afd361035c3ae0cadd616ef4ac19448e4a4" - }, - { - "nr": 107455, - "hash": "44c125de4e0af1aabd96b834f02478a3f1e962c4" - }, - { - "nr": 107413, - "hash": "d50a9e52a89042fb271ab3fd9530513589bb897b" - }, - { - "nr": 106619, - "hash": "318e82f06a262cdc55a74641ceccfeaeee3b4dcb" - }, - { - "nr": 107103, - "hash": "82ace534ea0fcf5ae1e1608ba5773ccdd3945d35" - }, - { - "nr": 107131, - "hash": "29e4bce5738d5fd190ac950b20bb5a2df9cf7078" - }, - { - "nr": 106860, - "hash": "9720aa7f12ef09b2f3490735e0e62e0e468bcd29" - }, - { - "nr": 107607, - "hash": "951e0019eceaa6131816f32ff0ccb69fd7cbf2c3" - } - ] +{ + "mail": "parulsahoo5jan@gmail.com", + "name": "parul5sahoo", + "date": 1644303140, + "prs": [ + { + "nr": 106949, + "hash": "5c6d07649e74477fdb6ed1cb1f6882059380796d" + }, + { + "nr": 107612, + "hash": "98585f3f01e967c0da89277eab9fa15abb4a0953" + }, + { + "nr": 107512, + "hash": "fc10d56132a2cab1eac311a9a21ce9c9aefc466c" + }, + { + "nr": 104837, + "hash": "6cf6cba72b52d2008cd21234484aff8840cb8369" + }, + { + "nr": 107688, + "hash": "e378ab26a1d9f77f5e303d9b88c69db61c8a4a74" + }, + { + "nr": 107171, + "hash": "c68d3e87c1ef39e16e7c14cb14b1ce8580b6cef0" + }, + { + "nr": 107311, + "hash": "99bf81759725c4d6a52279d15ed35b34f6f8051c" + }, + { + "nr": 107027, + "hash": "178d9c350497d95c5d1512731cec402e3f53b521" + }, + { + "nr": 106313, + "hash": "dd3429f8aa87c4a6dc24cf0b4927658b25a39fe1" + }, + { + "nr": 107796, + "hash": "a471f274e71c5fb31c03a0fb3ce87960a51528d7" + }, + { + "nr": 107402, + "hash": "4b21655a61388bb6da8a93c76df7033a803deca2" + }, + { + "nr": 105566, + "hash": "6feb389bfb647c73f818851308fd7a4105468e54" + }, + { + "nr": 106628, + "hash": "b603b8c6c4d7938b1724c8a54d4522a0316a24c6" + }, + { + "nr": 107559, + "hash": "4d94d7025c943d2f863445251b891f454e98fac8" + }, + { + "nr": 107575, + "hash": "6ca4b8d7ea83dbe87a05ac100a5da055b0c226bf" + }, + { + "nr": 107439, + "hash": "4063e0d0525cbf4bd159c9a8de1c15807ae85b62" + }, + { + "nr": 107429, + "hash": "ed24426582238be4835bd90221a8a5b17c6c7a41" + }, + { + "nr": 107094, + "hash": "4fd5f8305be1f2f064c712b626804c51a83c1f23" + }, + { + "nr": 107006, + "hash": "07fa303f31637b5118ea378a0e6b19aa85c9abdb" + }, + { + "nr": 105964, + "hash": "534e48eabc128637fe6ea6554f9b983d14cf6bd8" + }, + { + "nr": 107775, + "hash": "2fae9312e3ec1a52bd1a16706758ed2e75352b86" + }, + { + "nr": 106648, + "hash": "2c069c8671364d8bf5a3e7caa93b2bd101d51216" + }, + { + "nr": 106366, + "hash": "d7cceb6bf15c99fb2aedd324b401ba895c643166" + }, + { + "nr": 107116, + "hash": "dcdf7b08b88a5dd1d5466aad18428c7eff09973d" + }, + { + "nr": 107009, + "hash": "9b42b2a81926a572a1b0c9bd0f94312604e454e4" + }, + { + "nr": 106956, + "hash": "eae00b11ce96ea92e8e7739a113bb511316c3a40" + }, + { + "nr": 107507, + "hash": "47ca4f6417a9c68cb78c6af9aa8b7c9c39a69a87" + }, + { + "nr": 106973, + "hash": "366f605d136db35842f7415f48b0aae80dd5c8bd" + }, + { + "nr": 107003, + "hash": "2b482ec610dd5f6d33eb831b3d14a356f7689d67" + }, + { + "nr": 105954, + "hash": "ab2e2fbe2fc81ebc719feb2529884a664f7eb32d" + }, + { + "nr": 106629, + "hash": "6250120ab2eaa8b1137069aa1d05e8b239d1950c" + }, + { + "nr": 99441, + "hash": "f5cfe709364140f55b46cbf1807bfb1de7027283" + }, + { + "nr": 107235, + "hash": "fe214820c0b95da56f4ab3ca69d450d7c051b56e" + }, + { + "nr": 107847, + "hash": "1c37ae1be61e080b48d7f36ab8c3db8345a9527f" + }, + { + "nr": 106203, + "hash": "c030076974f0967cc1b860f406b1a215ce0c9d7e" + }, + { + "nr": 106644, + "hash": "38b998a1b2e73f75f6d2bb63770ca6ac5e6c2e2c" + }, + { + "nr": 107384, + "hash": "bb02eb90df8a111fa2d6e7341de741316e38606b" + }, + { + "nr": 106882, + "hash": "3c97baa5011246e5ff1ae2ffb6c1b0bd3cf51be5" + }, + { + "nr": 107588, + "hash": "98b747ecfe9f3b3a4bf3610b95bd23082e1512b2" + }, + { + "nr": 105632, + "hash": "809b32df538ac1cd788de6da2c148b46f804f77d" + }, + { + "nr": 107686, + "hash": "25fecc1209e6c2bc01342b466132d75b5f5658e5" + }, + { + "nr": 104846, + "hash": "9be9eaa7e7f351fe03055fcaadfccb4d9eafa64d" + }, + { + "nr": 107025, + "hash": "2f7dad0cb42efb13792d8eaa1eaac301cc83255d" + }, + { + "nr": 107406, + "hash": "e316aece97b3f2c3060563af09819932f8a4bd31" + }, + { + "nr": 107295, + "hash": "175ba9471ebe416e49c995b819d01037ab9cf4cf" + }, + { + "nr": 107604, + "hash": "84a23eff5211269704fd196767a3e63f0d6ad39e" + }, + { + "nr": 107468, + "hash": "f3352e02205e2bcfa3892547daacadb44aaf1cff" + }, + { + "nr": 107152, + "hash": "03836d34f325e802ba03d61c29138edddcefd026" + }, + { + "nr": 106725, + "hash": "6c3c9d831a738281080249283c0644463f4ec48c" + }, + { + "nr": 104143, + "hash": "768ea65e4880833dd85973d54d9ee4b8be098281" + }, + { + "nr": 107789, + "hash": "076133e454c3c93ddd4326c3bf9ad7cfdcb38ab0" + }, + { + "nr": 107034, + "hash": "8ff6a6ab3875f65ac1a3cdeb384ee0845d0592ce" + }, + { + "nr": 106853, + "hash": "3a193cb9a3eb990db05d451d5f77fd87b6e31165" + }, + { + "nr": 106954, + "hash": "0e5786df9361bae3e96b930acaa366968b0c8167" + }, + { + "nr": 105164, + "hash": "78f74ac9b81d1437a06ba919e8984231018f58d5" + }, + { + "nr": 105517, + "hash": "468a7f7e4338ad597cecb9e514f7e09f241f1967" + }, + { + "nr": 107753, + "hash": "c6c4762b217450f70ac3cb5fc8e34c29d73db232" + }, + { + "nr": 107554, + "hash": "588bee36fd41c9c202d8d08d1f4f7151f3491b8c" + }, + { + "nr": 106164, + "hash": "e40fbf27754242f8d7c2edd092f6c9df80f792a1" + }, + { + "nr": 97966, + "hash": "aa80b30cdafc2879bf85bb860b7477615fd55dd2" + }, + { + "nr": 106859, + "hash": "b77276240179069acf234b2ed53c561a208b523f" + }, + { + "nr": 107695, + "hash": "170d34e7564705ec199cbf507a00c30b2b93ee05" + }, + { + "nr": 107516, + "hash": "b0818ef2c2d974e5453b64172c3ad47998686460" + }, + { + "nr": 106978, + "hash": "11cef8e652432a463db48fc6d47559fe9dbaf089" + }, + { + "nr": 105853, + "hash": "9c50d1d3f89faff3d326a158cef8cc5076cf8421" + }, + { + "nr": 107327, + "hash": "3cf953ab58a83c799b3056519841d52e74892886" + }, + { + "nr": 107035, + "hash": "5a6d3d8b6c82d7158afadf4cfbc782b8c9ecc2e0" + }, + { + "nr": 104620, + "hash": "5a2c1d55864ac0240cb09626e7672eb5a3c83085" + }, + { + "nr": 107065, + "hash": "c63134923d4fa9ee1c6a6726f86a1106ec5335e1" + }, + { + "nr": 106875, + "hash": "d42c77f2dbeb871769ec4d0e71cd089a44899e0d" + }, + { + "nr": 107091, + "hash": "dacd04c9963ac0473bb9b1c03438161dc1e2b7ad" + }, + { + "nr": 107769, + "hash": "e03aec4f26d7a3fc55626caa8284acb0d3468258" + }, + { + "nr": 107317, + "hash": "c0b9d125ad5a23c21e20a9044807f7de541e6364" + }, + { + "nr": 107565, + "hash": "dd4f2189e80fbbb95cb9f694e428d38214d78d8e" + }, + { + "nr": 107467, + "hash": "50505694588cbaf502d607a8844e779ef3f19db7" + }, + { + "nr": 107221, + "hash": "1ff46daae9ee9969e7ac5f905ba3a60231ef1db3" + }, + { + "nr": 106907, + "hash": "d2f9b28485565f12acf9c593e71ca67b0c28d74b" + }, + { + "nr": 107044, + "hash": "f6e4727bb8db38d4d1e3879c7c9cda72a905ae7a" + }, + { + "nr": 107452, + "hash": "4c77f6134efbc0de4d26ddde746d32dedf378021" + }, + { + "nr": 106739, + "hash": "7b5ffceb1c3ab654538eb55e7be00816261af161" + }, + { + "nr": 106891, + "hash": "485787257e91e124ff8f364197e4edec0a910964" + }, + { + "nr": 107462, + "hash": "6633e91014107066e286391b35fa584d0ddc0cf8" + }, + { + "nr": 107553, + "hash": "0de5ed7e96b4c65eef28d46ab93f0ce744eb376d" + }, + { + "nr": 106453, + "hash": "816c2cb3aac666fdfdaddaccfce41d1c6907601c" + }, + { + "nr": 104774, + "hash": "d32aa8937eb5659fd68c05eec81a27281e06c53c" + }, + { + "nr": 107013, + "hash": "2e1cc8f1c1e08a58098602b10438ca64c883681d" + }, + { + "nr": 106932, + "hash": "e92cb930f4e89936cf9d737324f071f55e786029" + }, + { + "nr": 99758, + "hash": "1822b46d9544e9201c5c8436eb651ef23a2f3937" + }, + { + "nr": 107088, + "hash": "84eb2e43f75e9a99761098960ebf6777cb9c5ada" + }, + { + "nr": 107207, + "hash": "f22ed248f635cfc42ae3758f1a7134f3cac56925" + }, + { + "nr": 106445, + "hash": "b4dfb9783e1392be2585ac7e470580528496e8dc" + }, + { + "nr": 106901, + "hash": "7e980daaf8c84893abe66637b507c10867c64b47" + }, + { + "nr": 107763, + "hash": "5ba985a198de9eddb5ff449a283a57095fa42487" + }, + { + "nr": 107337, + "hash": "44844344f0dabadceaa7a000633d97527dc3a805" + }, + { + "nr": 106912, + "hash": "d64dff74636a32a595cecbe99702e621e7cfc853" + }, + { + "nr": 106865, + "hash": "ead4fe8dc9df03d1cea35e9fa71a5f3e624b2f49" + }, + { + "nr": 106816, + "hash": "3a3e86fdb8ecc9844a1b218f3db622a3f4dd0193" + }, + { + "nr": 106721, + "hash": "09ccc9d5396592f92038c52ffcfb53477d09b84e" + }, + { + "nr": 106850, + "hash": "48549cec05c7ae469e0c1e16a764e94724226585" + }, + { + "nr": 107603, + "hash": "89a57afd361035c3ae0cadd616ef4ac19448e4a4" + }, + { + "nr": 107455, + "hash": "44c125de4e0af1aabd96b834f02478a3f1e962c4" + }, + { + "nr": 107413, + "hash": "d50a9e52a89042fb271ab3fd9530513589bb897b" + }, + { + "nr": 106619, + "hash": "318e82f06a262cdc55a74641ceccfeaeee3b4dcb" + }, + { + "nr": 107103, + "hash": "82ace534ea0fcf5ae1e1608ba5773ccdd3945d35" + }, + { + "nr": 107131, + "hash": "29e4bce5738d5fd190ac950b20bb5a2df9cf7078" + }, + { + "nr": 106860, + "hash": "9720aa7f12ef09b2f3490735e0e62e0e468bcd29" + }, + { + "nr": 107607, + "hash": "951e0019eceaa6131816f32ff0ccb69fd7cbf2c3" + } + ] } \ No newline at end of file diff --git a/releases/release-1.24/release-notes/sessions/maps-1645585977.json b/releases/release-1.24/release-notes/sessions/maps-1645585977.json index d85722f7847..b7dbe8a97fa 100644 --- a/releases/release-1.24/release-notes/sessions/maps-1645585977.json +++ b/releases/release-1.24/release-notes/sessions/maps-1645585977.json @@ -1,115 +1,115 @@ -{ - "mail": "csantana23@gmail.com", - "name": "Carlos Santana", - "date": 1645585977, - "prs": [ - { - "nr": 107142, - "hash": "05c1f9d805fb280ba58b630d45ca990a61fa20be" - }, - { - "nr": 107900, - "hash": "2d562a80c456dae86acf56bf03e3e5a18f9b2bac" - }, - { - "nr": 108038, - "hash": "4eac2234eae1e22f8b872d696f2a5a54c99bfc63" - }, - { - "nr": 108020, - "hash": "e3da8cb979d8a86872ed53bfa627d5c403f448dc" - }, - { - "nr": 107880, - "hash": "e5e88e3249c7d5339ecb69424a55ccbc8733f36a" - }, - { - "nr": 107924, - "hash": "0bf0f79518e827551971fbd812d6802045b88a4f" - }, - { - "nr": 108059, - "hash": "7da0163146061248b2e62a02306cc0ea2994d41b" - }, - { - "nr": 105297, - "hash": "092ae68267c622f2b1e480f74926b25ce7da3d66" - }, - { - "nr": 107552, - "hash": "d67b8211562b5de1f10188af2a6dad877363a1f7" - }, - { - "nr": 107785, - "hash": "58359912a04607b3b06caebbe26477f4e2ae1ee8" - }, - { - "nr": 107982, - "hash": "57a3bdc9ee1cfeb9857b77fc64944866ee9b2276" - }, - { - "nr": 107956, - "hash": "0becf98bb8d3f0287a5053bf9cdd0a43fd183ea9" - }, - { - "nr": 108027, - "hash": "9d7e1e59f822788489d44f823ef0beeb9d83d3fe" - }, - { - "nr": 108053, - "hash": "47f16449f3f77667d935afde350e19aa7a9a0da1" - }, - { - "nr": 107432, - "hash": "87f9206bb5799b8fead2da9142c6814b3783c15c" - }, - { - "nr": 108062, - "hash": "1074de4b0cc8d359c68ccdf43c6eee305dd396d4" - }, - { - "nr": 101028, - "hash": "c23bd2a858c7f32a4c6a473a4651adb4eb5a03cc" - }, - { - "nr": 107970, - "hash": "9d128208b5c2ac0b528ac18d58d30852bc478b5c" - }, - { - "nr": 108052, - "hash": "a74c2231ff5addbbcde1038c5da00bb911d1f6ae" - }, - { - "nr": 107096, - "hash": "2120baf5ff6d0248872dcd2ead68c96f8a2b8437" - }, - { - "nr": 108091, - "hash": "3b194d607aebf7c2fdfe1ddccd02361d77469b86" - }, - { - "nr": 107481, - "hash": "08d9d01c2e012b951e74eb309583d535fe01336c" - }, - { - "nr": 106715, - "hash": "5829d390165c87520425ffdda5773c97dfb435f7" - }, - { - "nr": 107921, - "hash": "56c11777f9bd08ea562d22973ef046706311c824" - }, - { - "nr": 107974, - "hash": "04807374e46011dcdba5f4dd5185721ed4577f89" - }, - { - "nr": 107904, - "hash": "adc4982e5ef1893d1d4ab3414625111c1d1e6bf1" - }, - { - "nr": 107527, - "hash": "4a9a21c3b78293d9930ecb5172552d99a972b2fb" - } - ] +{ + "mail": "csantana23@gmail.com", + "name": "Carlos Santana", + "date": 1645585977, + "prs": [ + { + "nr": 107142, + "hash": "05c1f9d805fb280ba58b630d45ca990a61fa20be" + }, + { + "nr": 107900, + "hash": "2d562a80c456dae86acf56bf03e3e5a18f9b2bac" + }, + { + "nr": 108038, + "hash": "4eac2234eae1e22f8b872d696f2a5a54c99bfc63" + }, + { + "nr": 108020, + "hash": "e3da8cb979d8a86872ed53bfa627d5c403f448dc" + }, + { + "nr": 107880, + "hash": "e5e88e3249c7d5339ecb69424a55ccbc8733f36a" + }, + { + "nr": 107924, + "hash": "0bf0f79518e827551971fbd812d6802045b88a4f" + }, + { + "nr": 108059, + "hash": "7da0163146061248b2e62a02306cc0ea2994d41b" + }, + { + "nr": 105297, + "hash": "092ae68267c622f2b1e480f74926b25ce7da3d66" + }, + { + "nr": 107552, + "hash": "d67b8211562b5de1f10188af2a6dad877363a1f7" + }, + { + "nr": 107785, + "hash": "58359912a04607b3b06caebbe26477f4e2ae1ee8" + }, + { + "nr": 107982, + "hash": "57a3bdc9ee1cfeb9857b77fc64944866ee9b2276" + }, + { + "nr": 107956, + "hash": "0becf98bb8d3f0287a5053bf9cdd0a43fd183ea9" + }, + { + "nr": 108027, + "hash": "9d7e1e59f822788489d44f823ef0beeb9d83d3fe" + }, + { + "nr": 108053, + "hash": "47f16449f3f77667d935afde350e19aa7a9a0da1" + }, + { + "nr": 107432, + "hash": "87f9206bb5799b8fead2da9142c6814b3783c15c" + }, + { + "nr": 108062, + "hash": "1074de4b0cc8d359c68ccdf43c6eee305dd396d4" + }, + { + "nr": 101028, + "hash": "c23bd2a858c7f32a4c6a473a4651adb4eb5a03cc" + }, + { + "nr": 107970, + "hash": "9d128208b5c2ac0b528ac18d58d30852bc478b5c" + }, + { + "nr": 108052, + "hash": "a74c2231ff5addbbcde1038c5da00bb911d1f6ae" + }, + { + "nr": 107096, + "hash": "2120baf5ff6d0248872dcd2ead68c96f8a2b8437" + }, + { + "nr": 108091, + "hash": "3b194d607aebf7c2fdfe1ddccd02361d77469b86" + }, + { + "nr": 107481, + "hash": "08d9d01c2e012b951e74eb309583d535fe01336c" + }, + { + "nr": 106715, + "hash": "5829d390165c87520425ffdda5773c97dfb435f7" + }, + { + "nr": 107921, + "hash": "56c11777f9bd08ea562d22973ef046706311c824" + }, + { + "nr": 107974, + "hash": "04807374e46011dcdba5f4dd5185721ed4577f89" + }, + { + "nr": 107904, + "hash": "adc4982e5ef1893d1d4ab3414625111c1d1e6bf1" + }, + { + "nr": 107527, + "hash": "4a9a21c3b78293d9930ecb5172552d99a972b2fb" + } + ] } \ No newline at end of file diff --git a/releases/release-1.24/release-notes/sessions/maps-1649348752.json b/releases/release-1.24/release-notes/sessions/maps-1649348752.json index a835633ec5e..751d028befd 100644 --- a/releases/release-1.24/release-notes/sessions/maps-1649348752.json +++ b/releases/release-1.24/release-notes/sessions/maps-1649348752.json @@ -1,347 +1,347 @@ -{ - "mail": "francois@remazing.eu", - "name": "Francois LP", - "date": 1649348752, - "prs": [ - { - "nr": 108410, - "hash": "5a780475f391cbc3e347ccaaebbea34b4b44333a" - }, - { - "nr": 108154, - "hash": "2526a37a187701b757003153ed370c7e4ffeb9f0" - }, - { - "nr": 108198, - "hash": "9dc256dd11dc979c393b118354a2c9e935bdaf77" - }, - { - "nr": 108614, - "hash": "2e0df86e5519c988a3e0148683da3d870e5e4a1e" - }, - { - "nr": 108092, - "hash": "dfd9ad6fd56e5330e979e7bf50b11db5fe373287" - }, - { - "nr": 108129, - "hash": "7d519405535cf379e5e92857661d7e467f45a3b7" - }, - { - "nr": 108034, - "hash": "8ec45ef3c9ed670b3fce239af5b9879f0ea188fc" - }, - { - "nr": 99292, - "hash": "e976a55bc99f659eb3f21268cb2500f0d0829d14" - }, - { - "nr": 100424, - "hash": "f200278232aab9fd102c3eb8edcf8f73f2533433" - }, - { - "nr": 108224, - "hash": "373f805ad63352de0ab22556316f7494e86550a1" - }, - { - "nr": 108761, - "hash": "f00375dd87e640a13d63ce7cdbf6ea1b073ef7bc" - }, - { - "nr": 108423, - "hash": "11f360c0e193e0771a67f96897d0e8543112bf59" - }, - { - "nr": 104244, - "hash": "3457161a8362d0a3d10cb7d6a086bee02e49199b" - }, - { - "nr": 108078, - "hash": "a1089648ee584e9cd220f962ecb16df69f4c54e0" - }, - { - "nr": 108772, - "hash": "d6412095c63ee58bdc9285eba6e2690a270c0304" - }, - { - "nr": 108437, - "hash": "4dacd365b0ec4c90f907a86194ffdbd2be5585c6" - }, - { - "nr": 107131, - "hash": "f2ebca2072eab682886d1a3dd7a97aa86cbd7f95" - }, - { - "nr": 107056, - "hash": "13e10a72894a4c29572391578c59e83a16bfc24b" - }, - { - "nr": 108631, - "hash": "03f72c5e1992b513c5e93769ca018e912236c038" - }, - { - "nr": 103061, - "hash": "5f23481e1d8aeebfbe9ed3a86be743f044a95f54" - }, - { - "nr": 108782, - "hash": "501e3df523d357bfe0d316af0126a7042b78215f" - }, - { - "nr": 105585, - "hash": "26228a77f86a64e8b827b6d8bfdcb1583e40d1cf" - }, - { - "nr": 108315, - "hash": "8cc6457513de79120b64d480e51f58806e9fd0d3" - }, - { - "nr": 108496, - "hash": "7d3bbeb33cd3be3425781bd385a1d87698dea4aa" - }, - { - "nr": 108450, - "hash": "06a0e340b29272fd1adacc58843ccd1a17347e4c" - }, - { - "nr": 108769, - "hash": "c6002cc086ecc9331f06e53dd945d64ddd9fefdf" - }, - { - "nr": 108278, - "hash": "e92a24e11288dd4782af0b443659c8c2f359488a" - }, - { - "nr": 107997, - "hash": "16d4fbf1000c35e686a15f9151ba24fd43c9ca0f" - }, - { - "nr": 107806, - "hash": "539e49ff323cac7d3ab245ea4124b2a01f46ebd8" - }, - { - "nr": 108448, - "hash": "a97a308383e4226e43e1cd2cf32e4cb6344669f8" - }, - { - "nr": 108253, - "hash": "5070c2810f3b30f7b745d8991895a65cf052a868" - }, - { - "nr": 108004, - "hash": "46d7cd09ad87683d5c9a2b7878f55d3ddc232cd4" - }, - { - "nr": 99287, - "hash": "33bab30290eded2e555672dd933d3c1a075739a5" - }, - { - "nr": 108611, - "hash": "8f28b70becded9c968233b95ddf8b77d0a05dc62" - }, - { - "nr": 107201, - "hash": "30e2feb08f9840247c75d5154415e10f44b63a41" - }, - { - "nr": 108506, - "hash": "d7ffff27d49b9b54c4d327c5ed01ff09f371a81c" - }, - { - "nr": 108458, - "hash": "7b58db84583cd56ce15fb6211223952a5438011c" - }, - { - "nr": 94637, - "hash": "bce4f32a846ce4aa55a17830a2f5bdedfe12d699" - }, - { - "nr": 108107, - "hash": "8d7949c9e3089c1be7f8685584a488971c6eea08" - }, - { - "nr": 107410, - "hash": "a3a1a46fd2fcd09ccb81fe73ae76ce0b6663608b" - }, - { - "nr": 108613, - "hash": "19bae4aa3baeb7d7215bf12f95341911356418c3" - }, - { - "nr": 108482, - "hash": "2f3cf47178975809e791d7e6a8b541c91eaf5de9" - }, - { - "nr": 108138, - "hash": "a13c6427d61ada2d8b1e7cdbb710954e853a70c1" - }, - { - "nr": 108045, - "hash": "08e3904f4673709695d71f02c85c6340dba32f3a" - }, - { - "nr": 107105, - "hash": "f28c6e48aa7a5290923723c5cdb2362334b7d4c3" - }, - { - "nr": 107684, - "hash": "7a1de6c82eb4e37639c6a6b6d0abdfd4db7ced70" - }, - { - "nr": 108829, - "hash": "9359aaa6a149888e5419dc2442340a10526be100" - }, - { - "nr": 106539, - "hash": "bbf413dc13b0e5ab1f918fbe5492b35613001e7f" - }, - { - "nr": 107744, - "hash": "5deca8fd775454b543d23777d7b43c1debcf8bb0" - }, - { - "nr": 107141, - "hash": "c2d8a5c611d5564f5c35b70e7e8fe7d5233c7583" - }, - { - "nr": 108309, - "hash": "17ec450522b4f349a087330864a1bb36e23f3dac" - }, - { - "nr": 108136, - "hash": "9abfc58c42059cf0be5941e386423fa6cc3c54c2" - }, - { - "nr": 108366, - "hash": "c5dcf6416e66c7f0006d0d3be3dfa112604cd284" - }, - { - "nr": 108628, - "hash": "7cffc97f37d1631e6d67d955eea0f28cbd238e02" - }, - { - "nr": 108400, - "hash": "e292edcaf8d83483e18337024b75481507f2afb9" - }, - { - "nr": 108457, - "hash": "c96de2e72aec7f41edfebaaca8aebb280b6f96ac" - }, - { - "nr": 108616, - "hash": "6342b28a3d03bf2ef5896bfff35b2d33a4378e91" - }, - { - "nr": 108441, - "hash": "dd0e040943a2d7436385b6128a5e05260147bb22" - }, - { - "nr": 108648, - "hash": "db61014990863afbb824294ad3631d302eb7203f" - }, - { - "nr": 107674, - "hash": "fe5ded0dba9ef62f612103d18fae2c6226773422" - }, - { - "nr": 107363, - "hash": "19602188e9ceb6e7e4693c589e8185c873750aa3" - }, - { - "nr": 108432, - "hash": "7bf2287182447c5c880829a964d900258a7d851a" - }, - { - "nr": 108000, - "hash": "a025c42ae8105eaa0386ba711e8b990cda611ee6" - }, - { - "nr": 108341, - "hash": "c6ee659407963c13727a802838d77764f4bef38e" - }, - { - "nr": 106911, - "hash": "4299a6e4b57e4cc6ca34f2f6a35879374dc750e8" - }, - { - "nr": 108149, - "hash": "ae808d80832ae716e6da9964cca96d06798b88be" - }, - { - "nr": 106830, - "hash": "11095e91c79dc0e51e215b76ab78f2c1e3c14d51" - }, - { - "nr": 107725, - "hash": "e264d793c40b63a12b74933f7953452ea7348812" - }, - { - "nr": 107533, - "hash": "6f85f843918add2288661aef2ce2827fcef0be1e" - }, - { - "nr": 105070, - "hash": "427d695e0d52fdd9034f26bb7d3a3980dbcc2294" - }, - { - "nr": 107981, - "hash": "3b4740ff342ff568ea0bf8aeaa3354ad29789362" - }, - { - "nr": 108747, - "hash": "dccc1e8b1277206d6174e3a69895829555e42f92" - }, - { - "nr": 108209, - "hash": "76b75149e66a5705f535765917e6d2d6399a538d" - }, - { - "nr": 108662, - "hash": "77fc157587cd184d072b0089854bfcddc3bfde52" - }, - { - "nr": 107979, - "hash": "1e045dad001a3d4312876038cb65c8bc4510e7ac" - }, - { - "nr": 108013, - "hash": "5962bba023d9a51ad4fc1338ebc4f7d47ba91571" - }, - { - "nr": 108312, - "hash": "6cc8eb3abd2eac0609c93a33fa1b5b8e838e5bf7" - }, - { - "nr": 108296, - "hash": "9084d21983720d40002d3709a0688f2289b10391" - }, - { - "nr": 104732, - "hash": "7e6320e57256bda664d0264ce52839461c938f4c" - }, - { - "nr": 108167, - "hash": "9ddc987e8088bcb2fb2bd9e0909801752ad11d39" - }, - { - "nr": 107967, - "hash": "ebb28896b7bb9d0a318bb044e077b6d8b38a4e4c" - }, - { - "nr": 108561, - "hash": "1fc6cb9dcea6ab3f833fab4b8af1b91368161fc5" - }, - { - "nr": 108017, - "hash": "d58694e8fe82544098c0cd88438d07612eba2bbb" - }, - { - "nr": 108394, - "hash": "78b1915534f9621ae360b02a88836e53c884a0a7" - }, - { - "nr": 106570, - "hash": "cb39f1d1e2be01495c3c0e1ba877d8298506128d" - } - ] +{ + "mail": "francois@remazing.eu", + "name": "Francois LP", + "date": 1649348752, + "prs": [ + { + "nr": 108410, + "hash": "5a780475f391cbc3e347ccaaebbea34b4b44333a" + }, + { + "nr": 108154, + "hash": "2526a37a187701b757003153ed370c7e4ffeb9f0" + }, + { + "nr": 108198, + "hash": "9dc256dd11dc979c393b118354a2c9e935bdaf77" + }, + { + "nr": 108614, + "hash": "2e0df86e5519c988a3e0148683da3d870e5e4a1e" + }, + { + "nr": 108092, + "hash": "dfd9ad6fd56e5330e979e7bf50b11db5fe373287" + }, + { + "nr": 108129, + "hash": "7d519405535cf379e5e92857661d7e467f45a3b7" + }, + { + "nr": 108034, + "hash": "8ec45ef3c9ed670b3fce239af5b9879f0ea188fc" + }, + { + "nr": 99292, + "hash": "e976a55bc99f659eb3f21268cb2500f0d0829d14" + }, + { + "nr": 100424, + "hash": "f200278232aab9fd102c3eb8edcf8f73f2533433" + }, + { + "nr": 108224, + "hash": "373f805ad63352de0ab22556316f7494e86550a1" + }, + { + "nr": 108761, + "hash": "f00375dd87e640a13d63ce7cdbf6ea1b073ef7bc" + }, + { + "nr": 108423, + "hash": "11f360c0e193e0771a67f96897d0e8543112bf59" + }, + { + "nr": 104244, + "hash": "3457161a8362d0a3d10cb7d6a086bee02e49199b" + }, + { + "nr": 108078, + "hash": "a1089648ee584e9cd220f962ecb16df69f4c54e0" + }, + { + "nr": 108772, + "hash": "d6412095c63ee58bdc9285eba6e2690a270c0304" + }, + { + "nr": 108437, + "hash": "4dacd365b0ec4c90f907a86194ffdbd2be5585c6" + }, + { + "nr": 107131, + "hash": "f2ebca2072eab682886d1a3dd7a97aa86cbd7f95" + }, + { + "nr": 107056, + "hash": "13e10a72894a4c29572391578c59e83a16bfc24b" + }, + { + "nr": 108631, + "hash": "03f72c5e1992b513c5e93769ca018e912236c038" + }, + { + "nr": 103061, + "hash": "5f23481e1d8aeebfbe9ed3a86be743f044a95f54" + }, + { + "nr": 108782, + "hash": "501e3df523d357bfe0d316af0126a7042b78215f" + }, + { + "nr": 105585, + "hash": "26228a77f86a64e8b827b6d8bfdcb1583e40d1cf" + }, + { + "nr": 108315, + "hash": "8cc6457513de79120b64d480e51f58806e9fd0d3" + }, + { + "nr": 108496, + "hash": "7d3bbeb33cd3be3425781bd385a1d87698dea4aa" + }, + { + "nr": 108450, + "hash": "06a0e340b29272fd1adacc58843ccd1a17347e4c" + }, + { + "nr": 108769, + "hash": "c6002cc086ecc9331f06e53dd945d64ddd9fefdf" + }, + { + "nr": 108278, + "hash": "e92a24e11288dd4782af0b443659c8c2f359488a" + }, + { + "nr": 107997, + "hash": "16d4fbf1000c35e686a15f9151ba24fd43c9ca0f" + }, + { + "nr": 107806, + "hash": "539e49ff323cac7d3ab245ea4124b2a01f46ebd8" + }, + { + "nr": 108448, + "hash": "a97a308383e4226e43e1cd2cf32e4cb6344669f8" + }, + { + "nr": 108253, + "hash": "5070c2810f3b30f7b745d8991895a65cf052a868" + }, + { + "nr": 108004, + "hash": "46d7cd09ad87683d5c9a2b7878f55d3ddc232cd4" + }, + { + "nr": 99287, + "hash": "33bab30290eded2e555672dd933d3c1a075739a5" + }, + { + "nr": 108611, + "hash": "8f28b70becded9c968233b95ddf8b77d0a05dc62" + }, + { + "nr": 107201, + "hash": "30e2feb08f9840247c75d5154415e10f44b63a41" + }, + { + "nr": 108506, + "hash": "d7ffff27d49b9b54c4d327c5ed01ff09f371a81c" + }, + { + "nr": 108458, + "hash": "7b58db84583cd56ce15fb6211223952a5438011c" + }, + { + "nr": 94637, + "hash": "bce4f32a846ce4aa55a17830a2f5bdedfe12d699" + }, + { + "nr": 108107, + "hash": "8d7949c9e3089c1be7f8685584a488971c6eea08" + }, + { + "nr": 107410, + "hash": "a3a1a46fd2fcd09ccb81fe73ae76ce0b6663608b" + }, + { + "nr": 108613, + "hash": "19bae4aa3baeb7d7215bf12f95341911356418c3" + }, + { + "nr": 108482, + "hash": "2f3cf47178975809e791d7e6a8b541c91eaf5de9" + }, + { + "nr": 108138, + "hash": "a13c6427d61ada2d8b1e7cdbb710954e853a70c1" + }, + { + "nr": 108045, + "hash": "08e3904f4673709695d71f02c85c6340dba32f3a" + }, + { + "nr": 107105, + "hash": "f28c6e48aa7a5290923723c5cdb2362334b7d4c3" + }, + { + "nr": 107684, + "hash": "7a1de6c82eb4e37639c6a6b6d0abdfd4db7ced70" + }, + { + "nr": 108829, + "hash": "9359aaa6a149888e5419dc2442340a10526be100" + }, + { + "nr": 106539, + "hash": "bbf413dc13b0e5ab1f918fbe5492b35613001e7f" + }, + { + "nr": 107744, + "hash": "5deca8fd775454b543d23777d7b43c1debcf8bb0" + }, + { + "nr": 107141, + "hash": "c2d8a5c611d5564f5c35b70e7e8fe7d5233c7583" + }, + { + "nr": 108309, + "hash": "17ec450522b4f349a087330864a1bb36e23f3dac" + }, + { + "nr": 108136, + "hash": "9abfc58c42059cf0be5941e386423fa6cc3c54c2" + }, + { + "nr": 108366, + "hash": "c5dcf6416e66c7f0006d0d3be3dfa112604cd284" + }, + { + "nr": 108628, + "hash": "7cffc97f37d1631e6d67d955eea0f28cbd238e02" + }, + { + "nr": 108400, + "hash": "e292edcaf8d83483e18337024b75481507f2afb9" + }, + { + "nr": 108457, + "hash": "c96de2e72aec7f41edfebaaca8aebb280b6f96ac" + }, + { + "nr": 108616, + "hash": "6342b28a3d03bf2ef5896bfff35b2d33a4378e91" + }, + { + "nr": 108441, + "hash": "dd0e040943a2d7436385b6128a5e05260147bb22" + }, + { + "nr": 108648, + "hash": "db61014990863afbb824294ad3631d302eb7203f" + }, + { + "nr": 107674, + "hash": "fe5ded0dba9ef62f612103d18fae2c6226773422" + }, + { + "nr": 107363, + "hash": "19602188e9ceb6e7e4693c589e8185c873750aa3" + }, + { + "nr": 108432, + "hash": "7bf2287182447c5c880829a964d900258a7d851a" + }, + { + "nr": 108000, + "hash": "a025c42ae8105eaa0386ba711e8b990cda611ee6" + }, + { + "nr": 108341, + "hash": "c6ee659407963c13727a802838d77764f4bef38e" + }, + { + "nr": 106911, + "hash": "4299a6e4b57e4cc6ca34f2f6a35879374dc750e8" + }, + { + "nr": 108149, + "hash": "ae808d80832ae716e6da9964cca96d06798b88be" + }, + { + "nr": 106830, + "hash": "11095e91c79dc0e51e215b76ab78f2c1e3c14d51" + }, + { + "nr": 107725, + "hash": "e264d793c40b63a12b74933f7953452ea7348812" + }, + { + "nr": 107533, + "hash": "6f85f843918add2288661aef2ce2827fcef0be1e" + }, + { + "nr": 105070, + "hash": "427d695e0d52fdd9034f26bb7d3a3980dbcc2294" + }, + { + "nr": 107981, + "hash": "3b4740ff342ff568ea0bf8aeaa3354ad29789362" + }, + { + "nr": 108747, + "hash": "dccc1e8b1277206d6174e3a69895829555e42f92" + }, + { + "nr": 108209, + "hash": "76b75149e66a5705f535765917e6d2d6399a538d" + }, + { + "nr": 108662, + "hash": "77fc157587cd184d072b0089854bfcddc3bfde52" + }, + { + "nr": 107979, + "hash": "1e045dad001a3d4312876038cb65c8bc4510e7ac" + }, + { + "nr": 108013, + "hash": "5962bba023d9a51ad4fc1338ebc4f7d47ba91571" + }, + { + "nr": 108312, + "hash": "6cc8eb3abd2eac0609c93a33fa1b5b8e838e5bf7" + }, + { + "nr": 108296, + "hash": "9084d21983720d40002d3709a0688f2289b10391" + }, + { + "nr": 104732, + "hash": "7e6320e57256bda664d0264ce52839461c938f4c" + }, + { + "nr": 108167, + "hash": "9ddc987e8088bcb2fb2bd9e0909801752ad11d39" + }, + { + "nr": 107967, + "hash": "ebb28896b7bb9d0a318bb044e077b6d8b38a4e4c" + }, + { + "nr": 108561, + "hash": "1fc6cb9dcea6ab3f833fab4b8af1b91368161fc5" + }, + { + "nr": 108017, + "hash": "d58694e8fe82544098c0cd88438d07612eba2bbb" + }, + { + "nr": 108394, + "hash": "78b1915534f9621ae360b02a88836e53c884a0a7" + }, + { + "nr": 106570, + "hash": "cb39f1d1e2be01495c3c0e1ba877d8298506128d" + } + ] } \ No newline at end of file diff --git a/releases/release-1.24/release-notes/sessions/maps-1651081940.json b/releases/release-1.24/release-notes/sessions/maps-1651081940.json index 37bf237f6ea..bc06333be93 100644 --- a/releases/release-1.24/release-notes/sessions/maps-1651081940.json +++ b/releases/release-1.24/release-notes/sessions/maps-1651081940.json @@ -1,1251 +1,1251 @@ -{ - "mail": "lucasdwyer@pm.me", - "name": "Lucas Dwyer", - "date": 1651081940, - "prs": [ - { - "nr": 108458, - "hash": "7b58db84583cd56ce15fb6211223952a5438011c" - }, - { - "nr": 107575, - "hash": "6ca4b8d7ea83dbe87a05ac100a5da055b0c226bf" - }, - { - "nr": 107753, - "hash": "c6c4762b217450f70ac3cb5fc8e34c29d73db232" - }, - { - "nr": 105853, - "hash": "9c50d1d3f89faff3d326a158cef8cc5076cf8421" - }, - { - "nr": 106721, - "hash": "09ccc9d5396592f92038c52ffcfb53477d09b84e" - }, - { - "nr": 108859, - "hash": "98670fab1c4a4c6938f2819ceaeddcd1a8efa4c8" - }, - { - "nr": 99292, - "hash": "e976a55bc99f659eb3f21268cb2500f0d0829d14" - }, - { - "nr": 108701, - "hash": "19cae837fef5bb710ea8debbc5c8936e3be282e1" - }, - { - "nr": 106447, - "hash": "a88aa731752810e1205d850ba2f0aec1c1c2e59d" - }, - { - "nr": 108691, - "hash": "3c672915a427815948627b34d006a086e60a6d12" - }, - { - "nr": 108987, - "hash": "d54ef151d9e8be67526439a1a0e5535389facdca" - }, - { - "nr": 108209, - "hash": "76b75149e66a5705f535765917e6d2d6399a538d" - }, - { - "nr": 108138, - "hash": "a13c6427d61ada2d8b1e7cdbb710954e853a70c1" - }, - { - "nr": 107152, - "hash": "03836d34f325e802ba03d61c29138edddcefd026" - }, - { - "nr": 108820, - "hash": "f30776308b949ddc143153b05fd5f0569d67ca68" - }, - { - "nr": 108312, - "hash": "6cc8eb3abd2eac0609c93a33fa1b5b8e838e5bf7" - }, - { - "nr": 108092, - "hash": "dfd9ad6fd56e5330e979e7bf50b11db5fe373287" - }, - { - "nr": 108457, - "hash": "c96de2e72aec7f41edfebaaca8aebb280b6f96ac" - }, - { - "nr": 108017, - "hash": "d58694e8fe82544098c0cd88438d07612eba2bbb" - }, - { - "nr": 107552, - "hash": "d67b8211562b5de1f10188af2a6dad877363a1f7" - }, - { - "nr": 105360, - "hash": "5b7aae2ad5d927124b8d9ab734028ea4e08a61d3" - }, - { - "nr": 108350, - "hash": "cd427ef6827b70a2573e76394a5402e3e24eb294" - }, - { - "nr": 107986, - "hash": "2184929fba2f1f814229758c3669ef264eb8dff2" - }, - { - "nr": 107395, - "hash": "d82af6cfca8f106ba314a0f23c8d078f6b6facbc" - }, - { - "nr": 107311, - "hash": "99bf81759725c4d6a52279d15ed35b34f6f8051c" - }, - { - "nr": 108423, - "hash": "11f360c0e193e0771a67f96897d0e8543112bf59" - }, - { - "nr": 107970, - "hash": "9d128208b5c2ac0b528ac18d58d30852bc478b5c" - }, - { - "nr": 106715, - "hash": "5829d390165c87520425ffdda5773c97dfb435f7" - }, - { - "nr": 106956, - "hash": "eae00b11ce96ea92e8e7739a113bb511316c3a40" - }, - { - "nr": 106153, - "hash": "08041bac2bd8044a6fea7a9755c933baffd3a8d7" - }, - { - "nr": 109074, - "hash": "1c82d10c363f5ad6373d4ce8307d3554391e8cca" - }, - { - "nr": 108847, - "hash": "1568fb881112fbd3cfe6f0fc18d0ed25c884b522" - }, - { - "nr": 108000, - "hash": "a025c42ae8105eaa0386ba711e8b990cda611ee6" - }, - { - "nr": 107789, - "hash": "076133e454c3c93ddd4326c3bf9ad7cfdcb38ab0" - }, - { - "nr": 108496, - "hash": "7d3bbeb33cd3be3425781bd385a1d87698dea4aa" - }, - { - "nr": 108107, - "hash": "8d7949c9e3089c1be7f8685584a488971c6eea08" - }, - { - "nr": 107775, - "hash": "2fae9312e3ec1a52bd1a16706758ed2e75352b86" - }, - { - "nr": 107413, - "hash": "d50a9e52a89042fb271ab3fd9530513589bb897b" - }, - { - "nr": 106882, - "hash": "3c97baa5011246e5ff1ae2ffb6c1b0bd3cf51be5" - }, - { - "nr": 107327, - "hash": "3cf953ab58a83c799b3056519841d52e74892886" - }, - { - "nr": 108455, - "hash": "c0d72e802760981513c67017c86341b6c36acf87" - }, - { - "nr": 108053, - "hash": "47f16449f3f77667d935afde350e19aa7a9a0da1" - }, - { - "nr": 108309, - "hash": "17ec450522b4f349a087330864a1bb36e23f3dac" - }, - { - "nr": 106954, - "hash": "0e5786df9361bae3e96b930acaa366968b0c8167" - }, - { - "nr": 108505, - "hash": "6c8d2cabe77e7e1c0a6e0dfa6e174504e8dac4f8" - }, - { - "nr": 108482, - "hash": "2f3cf47178975809e791d7e6a8b541c91eaf5de9" - }, - { - "nr": 107974, - "hash": "04807374e46011dcdba5f4dd5185721ed4577f89" - }, - { - "nr": 107034, - "hash": "8ff6a6ab3875f65ac1a3cdeb384ee0845d0592ce" - }, - { - "nr": 106619, - "hash": "318e82f06a262cdc55a74641ceccfeaeee3b4dcb" - }, - { - "nr": 108613, - "hash": "19bae4aa3baeb7d7215bf12f95341911356418c3" - }, - { - "nr": 107997, - "hash": "16d4fbf1000c35e686a15f9151ba24fd43c9ca0f" - }, - { - "nr": 107507, - "hash": "47ca4f6417a9c68cb78c6af9aa8b7c9c39a69a87" - }, - { - "nr": 107207, - "hash": "f22ed248f635cfc42ae3758f1a7134f3cac56925" - }, - { - "nr": 108506, - "hash": "d7ffff27d49b9b54c4d327c5ed01ff09f371a81c" - }, - { - "nr": 108410, - "hash": "5a780475f391cbc3e347ccaaebbea34b4b44333a" - }, - { - "nr": 107688, - "hash": "e378ab26a1d9f77f5e303d9b88c69db61c8a4a74" - }, - { - "nr": 106853, - "hash": "3a193cb9a3eb990db05d451d5f77fd87b6e31165" - }, - { - "nr": 107131, - "hash": "f2ebca2072eab682886d1a3dd7a97aa86cbd7f95" - }, - { - "nr": 105164, - "hash": "78f74ac9b81d1437a06ba919e8984231018f58d5" - }, - { - "nr": 108693, - "hash": "4eb648fc7f0c23c0b2610cb3bf4640e6ac69f51a" - }, - { - "nr": 108522, - "hash": "9e058bb4fbfa714ae2fa8cf6719d1313714b74fb" - }, - { - "nr": 107684, - "hash": "7a1de6c82eb4e37639c6a6b6d0abdfd4db7ced70" - }, - { - "nr": 106629, - "hash": "6250120ab2eaa8b1137069aa1d05e8b239d1950c" - }, - { - "nr": 107455, - "hash": "44c125de4e0af1aabd96b834f02478a3f1e962c4" - }, - { - "nr": 109120, - "hash": "2d262e826bff316a48f9282dcb4ed6aedb2a26ab" - }, - { - "nr": 104244, - "hash": "3457161a8362d0a3d10cb7d6a086bee02e49199b" - }, - { - "nr": 107859, - "hash": "feda546a58d89f010562c9c3adda38fae33430e4" - }, - { - "nr": 107439, - "hash": "4063e0d0525cbf4bd159c9a8de1c15807ae85b62" - }, - { - "nr": 108614, - "hash": "2e0df86e5519c988a3e0148683da3d870e5e4a1e" - }, - { - "nr": 106875, - "hash": "d42c77f2dbeb871769ec4d0e71cd089a44899e0d" - }, - { - "nr": 106850, - "hash": "48549cec05c7ae469e0c1e16a764e94724226585" - }, - { - "nr": 106891, - "hash": "485787257e91e124ff8f364197e4edec0a910964" - }, - { - "nr": 108898, - "hash": "d07e6b409e2a42d2ec151b635f0661bc595a3d9c" - }, - { - "nr": 108752, - "hash": "59cecaf17d82c3d9160e98926abdd0c76e433846" - }, - { - "nr": 107088, - "hash": "84eb2e43f75e9a99761098960ebf6777cb9c5ada" - }, - { - "nr": 107044, - "hash": "f6e4727bb8db38d4d1e3879c7c9cda72a905ae7a" - }, - { - "nr": 106860, - "hash": "9720aa7f12ef09b2f3490735e0e62e0e468bcd29" - }, - { - "nr": 106492, - "hash": "e1adeff3148a2715769fcc095f9f317bee5dc274" - }, - { - "nr": 104736, - "hash": "dceeed5c6cad4390499c80fe9b83cb7fa796a245" - }, - { - "nr": 108817, - "hash": "591c60fbf7fc3ff79a0320fcf5a5d5a720fb7599" - }, - { - "nr": 99287, - "hash": "33bab30290eded2e555672dd933d3c1a075739a5" - }, - { - "nr": 108611, - "hash": "8f28b70becded9c968233b95ddf8b77d0a05dc62" - }, - { - "nr": 108038, - "hash": "4eac2234eae1e22f8b872d696f2a5a54c99bfc63" - }, - { - "nr": 107900, - "hash": "2d562a80c456dae86acf56bf03e3e5a18f9b2bac" - }, - { - "nr": 107559, - "hash": "4d94d7025c943d2f863445251b891f454e98fac8" - }, - { - "nr": 99441, - "hash": "f5cfe709364140f55b46cbf1807bfb1de7027283" - }, - { - "nr": 103516, - "hash": "12cd3e62ff6eb4d96c8d8fd67e6115e45d016695" - }, - { - "nr": 108224, - "hash": "373f805ad63352de0ab22556316f7494e86550a1" - }, - { - "nr": 106539, - "hash": "bbf413dc13b0e5ab1f918fbe5492b35613001e7f" - }, - { - "nr": 107452, - "hash": "4c77f6134efbc0de4d26ddde746d32dedf378021" - }, - { - "nr": 107221, - "hash": "1ff46daae9ee9969e7ac5f905ba3a60231ef1db3" - }, - { - "nr": 108889, - "hash": "f9c520e87b9fbf43d89c14fa4a951d23dbbb1274" - }, - { - "nr": 108078, - "hash": "a1089648ee584e9cd220f962ecb16df69f4c54e0" - }, - { - "nr": 107094, - "hash": "4fd5f8305be1f2f064c712b626804c51a83c1f23" - }, - { - "nr": 107171, - "hash": "c68d3e87c1ef39e16e7c14cb14b1ce8580b6cef0" - }, - { - "nr": 107091, - "hash": "dacd04c9963ac0473bb9b1c03438161dc1e2b7ad" - }, - { - "nr": 105517, - "hash": "468a7f7e4338ad597cecb9e514f7e09f241f1967" - }, - { - "nr": 108992, - "hash": "35610841f6e2cad95837b7a324e327390d0edb13" - }, - { - "nr": 106932, - "hash": "e92cb930f4e89936cf9d737324f071f55e786029" - }, - { - "nr": 107432, - "hash": "87f9206bb5799b8fead2da9142c6814b3783c15c" - }, - { - "nr": 97966, - "hash": "aa80b30cdafc2879bf85bb860b7477615fd55dd2" - }, - { - "nr": 108493, - "hash": "916f3cc399b4d0c2ff4c1918d2d0e791c31d00d1" - }, - { - "nr": 105070, - "hash": "427d695e0d52fdd9034f26bb7d3a3980dbcc2294" - }, - { - "nr": 109029, - "hash": "3c5619123c5992c97753ed44f326c627cd716a74" - }, - { - "nr": 108929, - "hash": "478aca211d02025e68e8d6d0e30766156d86de32" - }, - { - "nr": 106907, - "hash": "d2f9b28485565f12acf9c593e71ca67b0c28d74b" - }, - { - "nr": 107785, - "hash": "58359912a04607b3b06caebbe26477f4e2ae1ee8" - }, - { - "nr": 107769, - "hash": "e03aec4f26d7a3fc55626caa8284acb0d3468258" - }, - { - "nr": 107763, - "hash": "5ba985a198de9eddb5ff449a283a57095fa42487" - }, - { - "nr": 104620, - "hash": "5a2c1d55864ac0240cb09626e7672eb5a3c83085" - }, - { - "nr": 108432, - "hash": "7bf2287182447c5c880829a964d900258a7d851a" - }, - { - "nr": 101028, - "hash": "c23bd2a858c7f32a4c6a473a4651adb4eb5a03cc" - }, - { - "nr": 106865, - "hash": "ead4fe8dc9df03d1cea35e9fa71a5f3e624b2f49" - }, - { - "nr": 108253, - "hash": "5070c2810f3b30f7b745d8991895a65cf052a868" - }, - { - "nr": 107533, - "hash": "6f85f843918add2288661aef2ce2827fcef0be1e" - }, - { - "nr": 106949, - "hash": "5c6d07649e74477fdb6ed1cb1f6882059380796d" - }, - { - "nr": 107750, - "hash": "4feb5c95614b6bd9debdcdf3f5d186c82c7c05d9" - }, - { - "nr": 108617, - "hash": "6cfe683111fad09b2c2cd7c03f217fde6e5d1bcc" - }, - { - "nr": 99556, - "hash": "fd3cb6fa8f6da116481b8d43612f9260a5fc22c2" - }, - { - "nr": 107845, - "hash": "5610c8d782794882910579139bf87f466b3deabc" - }, - { - "nr": 108782, - "hash": "501e3df523d357bfe0d316af0126a7042b78215f" - }, - { - "nr": 108772, - "hash": "d6412095c63ee58bdc9285eba6e2690a270c0304" - }, - { - "nr": 108450, - "hash": "06a0e340b29272fd1adacc58843ccd1a17347e4c" - }, - { - "nr": 108059, - "hash": "7da0163146061248b2e62a02306cc0ea2994d41b" - }, - { - "nr": 108736, - "hash": "73ba0c4c4f09b9872cf3f1b4f7694f3e7d217c25" - }, - { - "nr": 106792, - "hash": "f728dbc05529b8eed0a3dff35d97c2a8560f50a0" - }, - { - "nr": 107527, - "hash": "4a9a21c3b78293d9930ecb5172552d99a972b2fb" - }, - { - "nr": 107695, - "hash": "170d34e7564705ec199cbf507a00c30b2b93ee05" - }, - { - "nr": 105632, - "hash": "809b32df538ac1cd788de6da2c148b46f804f77d" - }, - { - "nr": 95400, - "hash": "fc3b89bcded5161cbc8acacf947708d86e7fa799" - }, - { - "nr": 108919, - "hash": "52d715fc1a58c9d5b7965261e715aa7f24b446fb" - }, - { - "nr": 108965, - "hash": "04ef8fb9526affae7eadb0445fb2cbc3728d9e1b" - }, - { - "nr": 108198, - "hash": "9dc256dd11dc979c393b118354a2c9e935bdaf77" - }, - { - "nr": 107512, - "hash": "fc10d56132a2cab1eac311a9a21ce9c9aefc466c" - }, - { - "nr": 107467, - "hash": "50505694588cbaf502d607a8844e779ef3f19db7" - }, - { - "nr": 101719, - "hash": "e9bc9a1c2bb1fb0d482e03e18c856a26e771d31b" - }, - { - "nr": 109137, - "hash": "73dab293870f6b737ca7d56c0704d1d1498ea16a" - }, - { - "nr": 109018, - "hash": "631ee7d0d2bc9dc6a54cb7913dbf3c690dc14e40" - }, - { - "nr": 108052, - "hash": "a74c2231ff5addbbcde1038c5da00bb911d1f6ae" - }, - { - "nr": 107796, - "hash": "a471f274e71c5fb31c03a0fb3ce87960a51528d7" - }, - { - "nr": 107612, - "hash": "98585f3f01e967c0da89277eab9fa15abb4a0953" - }, - { - "nr": 107406, - "hash": "e316aece97b3f2c3060563af09819932f8a4bd31" - }, - { - "nr": 105566, - "hash": "6feb389bfb647c73f818851308fd7a4105468e54" - }, - { - "nr": 106973, - "hash": "366f605d136db35842f7415f48b0aae80dd5c8bd" - }, - { - "nr": 108154, - "hash": "2526a37a187701b757003153ed370c7e4ffeb9f0" - }, - { - "nr": 107201, - "hash": "30e2feb08f9840247c75d5154415e10f44b63a41" - }, - { - "nr": 108445, - "hash": "a9de799f9c298f6b70ed2176919d8f766c24d50e" - }, - { - "nr": 108761, - "hash": "f00375dd87e640a13d63ce7cdbf6ea1b073ef7bc" - }, - { - "nr": 107604, - "hash": "84a23eff5211269704fd196767a3e63f0d6ad39e" - }, - { - "nr": 106313, - "hash": "dd3429f8aa87c4a6dc24cf0b4927658b25a39fe1" - }, - { - "nr": 108994, - "hash": "9a4607257f51bffccf47e5e0e48b71abb91ce76b" - }, - { - "nr": 106109, - "hash": "ac260ad37530edcca582b6168e0976a467f0ec4e" - }, - { - "nr": 108034, - "hash": "8ec45ef3c9ed670b3fce239af5b9879f0ea188fc" - }, - { - "nr": 108091, - "hash": "3b194d607aebf7c2fdfe1ddccd02361d77469b86" - }, - { - "nr": 82162, - "hash": "c3b3e17e3b61d733271fe1b423d0ac0c161fe2d9" - }, - { - "nr": 108429, - "hash": "776d4de6c2233325a18e2db228f1e6236c45524a" - }, - { - "nr": 107847, - "hash": "1c37ae1be61e080b48d7f36ab8c3db8345a9527f" - }, - { - "nr": 107402, - "hash": "4b21655a61388bb6da8a93c76df7033a803deca2" - }, - { - "nr": 107013, - "hash": "2e1cc8f1c1e08a58098602b10438ca64c883681d" - }, - { - "nr": 106833, - "hash": "375006070b1902b5c31a336aa4dc86f4dc7373d7" - }, - { - "nr": 108486, - "hash": "24c541c036f49f9dd5d3103a7d98cae5232b60f2" - }, - { - "nr": 108870, - "hash": "4f925a2fed2a6bc6004becb08c00e2fafe6ed8b5" - }, - { - "nr": 108616, - "hash": "6342b28a3d03bf2ef5896bfff35b2d33a4378e91" - }, - { - "nr": 103061, - "hash": "5f23481e1d8aeebfbe9ed3a86be743f044a95f54" - }, - { - "nr": 108045, - "hash": "08e3904f4673709695d71f02c85c6340dba32f3a" - }, - { - "nr": 107025, - "hash": "2f7dad0cb42efb13792d8eaa1eaac301cc83255d" - }, - { - "nr": 108146, - "hash": "a7340f07f2d2c3d6655eea538b8595da10305569" - }, - { - "nr": 107180, - "hash": "e1dac619c21e10183a7967998d1f4bfed25af860" - }, - { - "nr": 108366, - "hash": "c5dcf6416e66c7f0006d0d3be3dfa112604cd284" - }, - { - "nr": 106912, - "hash": "d64dff74636a32a595cecbe99702e621e7cfc853" - }, - { - "nr": 108829, - "hash": "9359aaa6a149888e5419dc2442340a10526be100" - }, - { - "nr": 108448, - "hash": "a97a308383e4226e43e1cd2cf32e4cb6344669f8" - }, - { - "nr": 108341, - "hash": "c6ee659407963c13727a802838d77764f4bef38e" - }, - { - "nr": 106838, - "hash": "833fcca313e4ad60d727d419239f6d1843bde036" - }, - { - "nr": 109072, - "hash": "c0b5378629d381f77e3faa64d4452a481dddd26a" - }, - { - "nr": 108073, - "hash": "18545d889c674914aa360552f3f45bcdd9b7c7fa" - }, - { - "nr": 107363, - "hash": "19602188e9ceb6e7e4693c589e8185c873750aa3" - }, - { - "nr": 106164, - "hash": "e40fbf27754242f8d7c2edd092f6c9df80f792a1" - }, - { - "nr": 104774, - "hash": "d32aa8937eb5659fd68c05eec81a27281e06c53c" - }, - { - "nr": 106366, - "hash": "d7cceb6bf15c99fb2aedd324b401ba895c643166" - }, - { - "nr": 106600, - "hash": "5704d3fd79e7cc8f93117b31f13eaa071dc2964a" - }, - { - "nr": 109089, - "hash": "f22049c2719f66ee295bce65f58fabfe82bf47c3" - }, - { - "nr": 108662, - "hash": "77fc157587cd184d072b0089854bfcddc3bfde52" - }, - { - "nr": 108628, - "hash": "7cffc97f37d1631e6d67d955eea0f28cbd238e02" - }, - { - "nr": 108020, - "hash": "e3da8cb979d8a86872ed53bfa627d5c403f448dc" - }, - { - "nr": 107921, - "hash": "56c11777f9bd08ea562d22973ef046706311c824" - }, - { - "nr": 107982, - "hash": "57a3bdc9ee1cfeb9857b77fc64944866ee9b2276" - }, - { - "nr": 106648, - "hash": "2c069c8671364d8bf5a3e7caa93b2bd101d51216" - }, - { - "nr": 108758, - "hash": "4ab2b72c94c0b2cd5d91a8444df95d5d9b0b0c47" - }, - { - "nr": 108988, - "hash": "9cd07a526cf5366b92b9652c4912d73384071b07" - }, - { - "nr": 107468, - "hash": "f3352e02205e2bcfa3892547daacadb44aaf1cff" - }, - { - "nr": 105964, - "hash": "534e48eabc128637fe6ea6554f9b983d14cf6bd8" - }, - { - "nr": 107880, - "hash": "e5e88e3249c7d5339ecb69424a55ccbc8733f36a" - }, - { - "nr": 107096, - "hash": "2120baf5ff6d0248872dcd2ead68c96f8a2b8437" - }, - { - "nr": 107674, - "hash": "fe5ded0dba9ef62f612103d18fae2c6226773422" - }, - { - "nr": 106203, - "hash": "c030076974f0967cc1b860f406b1a215ce0c9d7e" - }, - { - "nr": 107295, - "hash": "175ba9471ebe416e49c995b819d01037ab9cf4cf" - }, - { - "nr": 108290, - "hash": "0c61bccc784146a0b028736ed2a6cd5621c864ef" - }, - { - "nr": 109031, - "hash": "c7e9975bc83e0d0d7e85531ca055419c0c8c62ec" - }, - { - "nr": 108400, - "hash": "e292edcaf8d83483e18337024b75481507f2afb9" - }, - { - "nr": 108296, - "hash": "9084d21983720d40002d3709a0688f2289b10391" - }, - { - "nr": 108129, - "hash": "7d519405535cf379e5e92857661d7e467f45a3b7" - }, - { - "nr": 107924, - "hash": "0bf0f79518e827551971fbd812d6802045b88a4f" - }, - { - "nr": 107476, - "hash": "b0dbd5b3603baaefd1d438e8ca476539d1c6e7ec" - }, - { - "nr": 108531, - "hash": "47f9e3814b14b981f35203e4afc3500248bb300e" - }, - { - "nr": 108437, - "hash": "4dacd365b0ec4c90f907a86194ffdbd2be5585c6" - }, - { - "nr": 107904, - "hash": "adc4982e5ef1893d1d4ab3414625111c1d1e6bf1" - }, - { - "nr": 107317, - "hash": "c0b9d125ad5a23c21e20a9044807f7de541e6364" - }, - { - "nr": 108953, - "hash": "e28dd1671bc6214064fa57139194ff1f238bb4fe" - }, - { - "nr": 107963, - "hash": "9293b1c5d85b6474a9b2e92db6fb73a25d17c842" - }, - { - "nr": 108167, - "hash": "9ddc987e8088bcb2fb2bd9e0909801752ad11d39" - }, - { - "nr": 107481, - "hash": "08d9d01c2e012b951e74eb309583d535fe01336c" - }, - { - "nr": 107065, - "hash": "c63134923d4fa9ee1c6a6726f86a1106ec5335e1" - }, - { - "nr": 106725, - "hash": "6c3c9d831a738281080249283c0644463f4ec48c" - }, - { - "nr": 104143, - "hash": "768ea65e4880833dd85973d54d9ee4b8be098281" - }, - { - "nr": 106628, - "hash": "b603b8c6c4d7938b1724c8a54d4522a0316a24c6" - }, - { - "nr": 108724, - "hash": "8229be8cde68526fc37644bea9b79c51d0f2553c" - }, - { - "nr": 108927, - "hash": "26ce3db8eb9ad5212f162b816825ca81f5b26ec6" - }, - { - "nr": 102265, - "hash": "96e4a39107bcc13dd62c93ec1fe2e4ca3d9a8c86" - }, - { - "nr": 109035, - "hash": "c9e22beaba23df2fd23cc6972fa9f1f93fe7ba29" - }, - { - "nr": 107725, - "hash": "e264d793c40b63a12b74933f7953452ea7348812" - }, - { - "nr": 106584, - "hash": "dbd05615e88aaee1d8ba97e32f8b614238ee02e3" - }, - { - "nr": 109104, - "hash": "f89936789ccbecb058e4b99d58f3a24bca01eca8" - }, - { - "nr": 107681, - "hash": "f0ab1f1eac0807b55ea42d17f5b621da41278c33" - }, - { - "nr": 107607, - "hash": "951e0019eceaa6131816f32ff0ccb69fd7cbf2c3" - }, - { - "nr": 107009, - "hash": "9b42b2a81926a572a1b0c9bd0f94312604e454e4" - }, - { - "nr": 107235, - "hash": "fe214820c0b95da56f4ab3ca69d450d7c051b56e" - }, - { - "nr": 107103, - "hash": "82ace534ea0fcf5ae1e1608ba5773ccdd3945d35" - }, - { - "nr": 106588, - "hash": "7e533938e1825c4fa4f59bb75128fc2e7efe84a2" - }, - { - "nr": 106830, - "hash": "11095e91c79dc0e51e215b76ab78f2c1e3c14d51" - }, - { - "nr": 108278, - "hash": "e92a24e11288dd4782af0b443659c8c2f359488a" - }, - { - "nr": 108561, - "hash": "1fc6cb9dcea6ab3f833fab4b8af1b91368161fc5" - }, - { - "nr": 107806, - "hash": "539e49ff323cac7d3ab245ea4124b2a01f46ebd8" - }, - { - "nr": 108027, - "hash": "9d7e1e59f822788489d44f823ef0beeb9d83d3fe" - }, - { - "nr": 106497, - "hash": "484c0611659a957164a1abe9f0748be9116f4743" - }, - { - "nr": 100424, - "hash": "f200278232aab9fd102c3eb8edcf8f73f2533433" - }, - { - "nr": 107105, - "hash": "f28c6e48aa7a5290923723c5cdb2362334b7d4c3" - }, - { - "nr": 106978, - "hash": "11cef8e652432a463db48fc6d47559fe9dbaf089" - }, - { - "nr": 107116, - "hash": "dcdf7b08b88a5dd1d5466aad18428c7eff09973d" - }, - { - "nr": 107035, - "hash": "5a6d3d8b6c82d7158afadf4cfbc782b8c9ecc2e0" - }, - { - "nr": 109019, - "hash": "81c70d392abeab3d2b9116ad77f7785e686dfb6b" - }, - { - "nr": 107410, - "hash": "a3a1a46fd2fcd09ccb81fe73ae76ce0b6663608b" - }, - { - "nr": 107337, - "hash": "44844344f0dabadceaa7a000633d97527dc3a805" - }, - { - "nr": 108032, - "hash": "3ddc1101414aee4177cee037d0c1e3f4f0e3da2c" - }, - { - "nr": 107429, - "hash": "ed24426582238be4835bd90221a8a5b17c6c7a41" - }, - { - "nr": 109024, - "hash": "2b06d0544a420ba93855d003090ec58baae699ef" - }, - { - "nr": 108648, - "hash": "db61014990863afbb824294ad3631d302eb7203f" - }, - { - "nr": 107006, - "hash": "07fa303f31637b5118ea378a0e6b19aa85c9abdb" - }, - { - "nr": 108831, - "hash": "cbdcc56f730bd5ad1ac859e71babe02698f2a78b" - }, - { - "nr": 107056, - "hash": "13e10a72894a4c29572391578c59e83a16bfc24b" - }, - { - "nr": 99758, - "hash": "1822b46d9544e9201c5c8436eb651ef23a2f3937" - }, - { - "nr": 106901, - "hash": "7e980daaf8c84893abe66637b507c10867c64b47" - }, - { - "nr": 108748, - "hash": "c1930a6087790da0c2a5d5c976f347abcbbe955b" - }, - { - "nr": 108013, - "hash": "5962bba023d9a51ad4fc1338ebc4f7d47ba91571" - }, - { - "nr": 108062, - "hash": "1074de4b0cc8d359c68ccdf43c6eee305dd396d4" - }, - { - "nr": 107027, - "hash": "178d9c350497d95c5d1512731cec402e3f53b521" - }, - { - "nr": 106570, - "hash": "cb39f1d1e2be01495c3c0e1ba877d8298506128d" - }, - { - "nr": 106739, - "hash": "7b5ffceb1c3ab654538eb55e7be00816261af161" - }, - { - "nr": 106322, - "hash": "7e0b686c73a4e98daddaf22acd1ba6cd1caa352a" - }, - { - "nr": 106824, - "hash": "6cc5030968e1e19b0e49b246941d25b33286b7fa" - }, - { - "nr": 107979, - "hash": "1e045dad001a3d4312876038cb65c8bc4510e7ac" - }, - { - "nr": 105297, - "hash": "092ae68267c622f2b1e480f74926b25ce7da3d66" - }, - { - "nr": 107686, - "hash": "25fecc1209e6c2bc01342b466132d75b5f5658e5" - }, - { - "nr": 97252, - "hash": "10b37a5b10c898e7deff3735a0a0ac9b08dc273b" - }, - { - "nr": 106660, - "hash": "08ee49d093aac386f9b35907680cf1bf32ef910b" - }, - { - "nr": 107090, - "hash": "bb5ebe4fae799da8a913585869a1409532506360" - }, - { - "nr": 108394, - "hash": "78b1915534f9621ae360b02a88836e53c884a0a7" - }, - { - "nr": 106854, - "hash": "07a7f8b368e8bf70356a7f23adc8de97ce37041c" - }, - { - "nr": 101218, - "hash": "348df4b99f2fc856f7a1e3af1935fb9b2f2eceea" - }, - { - "nr": 107603, - "hash": "89a57afd361035c3ae0cadd616ef4ac19448e4a4" - }, - { - "nr": 107744, - "hash": "5deca8fd775454b543d23777d7b43c1debcf8bb0" - }, - { - "nr": 94637, - "hash": "bce4f32a846ce4aa55a17830a2f5bdedfe12d699" - }, - { - "nr": 106859, - "hash": "b77276240179069acf234b2ed53c561a208b523f" - }, - { - "nr": 109128, - "hash": "a96559cbe8959f4713f44dc9df7403c87e5089ba" - }, - { - "nr": 108769, - "hash": "c6002cc086ecc9331f06e53dd945d64ddd9fefdf" - }, - { - "nr": 107967, - "hash": "ebb28896b7bb9d0a318bb044e077b6d8b38a4e4c" - }, - { - "nr": 106911, - "hash": "4299a6e4b57e4cc6ca34f2f6a35879374dc750e8" - }, - { - "nr": 107516, - "hash": "b0818ef2c2d974e5453b64172c3ad47998686460" - }, - { - "nr": 107003, - "hash": "2b482ec610dd5f6d33eb831b3d14a356f7689d67" - }, - { - "nr": 106878, - "hash": "9f582e09f84b09ad45630110cef740a503f3c2fb" - }, - { - "nr": 106803, - "hash": "0bedb1c734917f0d73fc184c11b8d5c688cc776d" - }, - { - "nr": 105585, - "hash": "26228a77f86a64e8b827b6d8bfdcb1583e40d1cf" - }, - { - "nr": 108631, - "hash": "03f72c5e1992b513c5e93769ca018e912236c038" - }, - { - "nr": 106644, - "hash": "38b998a1b2e73f75f6d2bb63770ca6ac5e6c2e2c" - }, - { - "nr": 106581, - "hash": "3fbd7550d56374bc6ffed7738dee69a560cdc60e" - }, - { - "nr": 108004, - "hash": "46d7cd09ad87683d5c9a2b7878f55d3ddc232cd4" - }, - { - "nr": 105954, - "hash": "ab2e2fbe2fc81ebc719feb2529884a664f7eb32d" - }, - { - "nr": 107462, - "hash": "6633e91014107066e286391b35fa584d0ddc0cf8" - }, - { - "nr": 106453, - "hash": "816c2cb3aac666fdfdaddaccfce41d1c6907601c" - }, - { - "nr": 106179, - "hash": "0c0b614c099c06d834216e477fe9a637ab8052a2" - }, - { - "nr": 108717, - "hash": "a33a816bc8fa8573c186bc87b670ae5379a51570" - }, - { - "nr": 108136, - "hash": "9abfc58c42059cf0be5941e386423fa6cc3c54c2" - }, - { - "nr": 107142, - "hash": "05c1f9d805fb280ba58b630d45ca990a61fa20be" - }, - { - "nr": 107553, - "hash": "0de5ed7e96b4c65eef28d46ab93f0ce744eb376d" - }, - { - "nr": 106816, - "hash": "3a3e86fdb8ecc9844a1b218f3db622a3f4dd0193" - }, - { - "nr": 108995, - "hash": "259652583d1f90a2e9568f0ea5c6b901823926a2" - }, - { - "nr": 108441, - "hash": "dd0e040943a2d7436385b6128a5e05260147bb22" - }, - { - "nr": 107141, - "hash": "c2d8a5c611d5564f5c35b70e7e8fe7d5233c7583" - }, - { - "nr": 108315, - "hash": "8cc6457513de79120b64d480e51f58806e9fd0d3" - }, - { - "nr": 104732, - "hash": "7e6320e57256bda664d0264ce52839461c938f4c" - }, - { - "nr": 108149, - "hash": "ae808d80832ae716e6da9964cca96d06798b88be" - }, - { - "nr": 107554, - "hash": "588bee36fd41c9c202d8d08d1f4f7151f3491b8c" - }, - { - "nr": 106445, - "hash": "b4dfb9783e1392be2585ac7e470580528496e8dc" - }, - { - "nr": 109059, - "hash": "de793283e6cdb6e5904fa50e31d4cb6144b1a3c9" - }, - { - "nr": 108747, - "hash": "dccc1e8b1277206d6174e3a69895829555e42f92" - }, - { - "nr": 104837, - "hash": "6cf6cba72b52d2008cd21234484aff8840cb8369" - }, - { - "nr": 107565, - "hash": "dd4f2189e80fbbb95cb9f694e428d38214d78d8e" - }, - { - "nr": 107384, - "hash": "bb02eb90df8a111fa2d6e7341de741316e38606b" - }, - { - "nr": 104846, - "hash": "9be9eaa7e7f351fe03055fcaadfccb4d9eafa64d" - }, - { - "nr": 107981, - "hash": "3b4740ff342ff568ea0bf8aeaa3354ad29789362" - }, - { - "nr": 107956, - "hash": "0becf98bb8d3f0287a5053bf9cdd0a43fd183ea9" - } - ] +{ + "mail": "lucasdwyer@pm.me", + "name": "Lucas Dwyer", + "date": 1651081940, + "prs": [ + { + "nr": 108458, + "hash": "7b58db84583cd56ce15fb6211223952a5438011c" + }, + { + "nr": 107575, + "hash": "6ca4b8d7ea83dbe87a05ac100a5da055b0c226bf" + }, + { + "nr": 107753, + "hash": "c6c4762b217450f70ac3cb5fc8e34c29d73db232" + }, + { + "nr": 105853, + "hash": "9c50d1d3f89faff3d326a158cef8cc5076cf8421" + }, + { + "nr": 106721, + "hash": "09ccc9d5396592f92038c52ffcfb53477d09b84e" + }, + { + "nr": 108859, + "hash": "98670fab1c4a4c6938f2819ceaeddcd1a8efa4c8" + }, + { + "nr": 99292, + "hash": "e976a55bc99f659eb3f21268cb2500f0d0829d14" + }, + { + "nr": 108701, + "hash": "19cae837fef5bb710ea8debbc5c8936e3be282e1" + }, + { + "nr": 106447, + "hash": "a88aa731752810e1205d850ba2f0aec1c1c2e59d" + }, + { + "nr": 108691, + "hash": "3c672915a427815948627b34d006a086e60a6d12" + }, + { + "nr": 108987, + "hash": "d54ef151d9e8be67526439a1a0e5535389facdca" + }, + { + "nr": 108209, + "hash": "76b75149e66a5705f535765917e6d2d6399a538d" + }, + { + "nr": 108138, + "hash": "a13c6427d61ada2d8b1e7cdbb710954e853a70c1" + }, + { + "nr": 107152, + "hash": "03836d34f325e802ba03d61c29138edddcefd026" + }, + { + "nr": 108820, + "hash": "f30776308b949ddc143153b05fd5f0569d67ca68" + }, + { + "nr": 108312, + "hash": "6cc8eb3abd2eac0609c93a33fa1b5b8e838e5bf7" + }, + { + "nr": 108092, + "hash": "dfd9ad6fd56e5330e979e7bf50b11db5fe373287" + }, + { + "nr": 108457, + "hash": "c96de2e72aec7f41edfebaaca8aebb280b6f96ac" + }, + { + "nr": 108017, + "hash": "d58694e8fe82544098c0cd88438d07612eba2bbb" + }, + { + "nr": 107552, + "hash": "d67b8211562b5de1f10188af2a6dad877363a1f7" + }, + { + "nr": 105360, + "hash": "5b7aae2ad5d927124b8d9ab734028ea4e08a61d3" + }, + { + "nr": 108350, + "hash": "cd427ef6827b70a2573e76394a5402e3e24eb294" + }, + { + "nr": 107986, + "hash": "2184929fba2f1f814229758c3669ef264eb8dff2" + }, + { + "nr": 107395, + "hash": "d82af6cfca8f106ba314a0f23c8d078f6b6facbc" + }, + { + "nr": 107311, + "hash": "99bf81759725c4d6a52279d15ed35b34f6f8051c" + }, + { + "nr": 108423, + "hash": "11f360c0e193e0771a67f96897d0e8543112bf59" + }, + { + "nr": 107970, + "hash": "9d128208b5c2ac0b528ac18d58d30852bc478b5c" + }, + { + "nr": 106715, + "hash": "5829d390165c87520425ffdda5773c97dfb435f7" + }, + { + "nr": 106956, + "hash": "eae00b11ce96ea92e8e7739a113bb511316c3a40" + }, + { + "nr": 106153, + "hash": "08041bac2bd8044a6fea7a9755c933baffd3a8d7" + }, + { + "nr": 109074, + "hash": "1c82d10c363f5ad6373d4ce8307d3554391e8cca" + }, + { + "nr": 108847, + "hash": "1568fb881112fbd3cfe6f0fc18d0ed25c884b522" + }, + { + "nr": 108000, + "hash": "a025c42ae8105eaa0386ba711e8b990cda611ee6" + }, + { + "nr": 107789, + "hash": "076133e454c3c93ddd4326c3bf9ad7cfdcb38ab0" + }, + { + "nr": 108496, + "hash": "7d3bbeb33cd3be3425781bd385a1d87698dea4aa" + }, + { + "nr": 108107, + "hash": "8d7949c9e3089c1be7f8685584a488971c6eea08" + }, + { + "nr": 107775, + "hash": "2fae9312e3ec1a52bd1a16706758ed2e75352b86" + }, + { + "nr": 107413, + "hash": "d50a9e52a89042fb271ab3fd9530513589bb897b" + }, + { + "nr": 106882, + "hash": "3c97baa5011246e5ff1ae2ffb6c1b0bd3cf51be5" + }, + { + "nr": 107327, + "hash": "3cf953ab58a83c799b3056519841d52e74892886" + }, + { + "nr": 108455, + "hash": "c0d72e802760981513c67017c86341b6c36acf87" + }, + { + "nr": 108053, + "hash": "47f16449f3f77667d935afde350e19aa7a9a0da1" + }, + { + "nr": 108309, + "hash": "17ec450522b4f349a087330864a1bb36e23f3dac" + }, + { + "nr": 106954, + "hash": "0e5786df9361bae3e96b930acaa366968b0c8167" + }, + { + "nr": 108505, + "hash": "6c8d2cabe77e7e1c0a6e0dfa6e174504e8dac4f8" + }, + { + "nr": 108482, + "hash": "2f3cf47178975809e791d7e6a8b541c91eaf5de9" + }, + { + "nr": 107974, + "hash": "04807374e46011dcdba5f4dd5185721ed4577f89" + }, + { + "nr": 107034, + "hash": "8ff6a6ab3875f65ac1a3cdeb384ee0845d0592ce" + }, + { + "nr": 106619, + "hash": "318e82f06a262cdc55a74641ceccfeaeee3b4dcb" + }, + { + "nr": 108613, + "hash": "19bae4aa3baeb7d7215bf12f95341911356418c3" + }, + { + "nr": 107997, + "hash": "16d4fbf1000c35e686a15f9151ba24fd43c9ca0f" + }, + { + "nr": 107507, + "hash": "47ca4f6417a9c68cb78c6af9aa8b7c9c39a69a87" + }, + { + "nr": 107207, + "hash": "f22ed248f635cfc42ae3758f1a7134f3cac56925" + }, + { + "nr": 108506, + "hash": "d7ffff27d49b9b54c4d327c5ed01ff09f371a81c" + }, + { + "nr": 108410, + "hash": "5a780475f391cbc3e347ccaaebbea34b4b44333a" + }, + { + "nr": 107688, + "hash": "e378ab26a1d9f77f5e303d9b88c69db61c8a4a74" + }, + { + "nr": 106853, + "hash": "3a193cb9a3eb990db05d451d5f77fd87b6e31165" + }, + { + "nr": 107131, + "hash": "f2ebca2072eab682886d1a3dd7a97aa86cbd7f95" + }, + { + "nr": 105164, + "hash": "78f74ac9b81d1437a06ba919e8984231018f58d5" + }, + { + "nr": 108693, + "hash": "4eb648fc7f0c23c0b2610cb3bf4640e6ac69f51a" + }, + { + "nr": 108522, + "hash": "9e058bb4fbfa714ae2fa8cf6719d1313714b74fb" + }, + { + "nr": 107684, + "hash": "7a1de6c82eb4e37639c6a6b6d0abdfd4db7ced70" + }, + { + "nr": 106629, + "hash": "6250120ab2eaa8b1137069aa1d05e8b239d1950c" + }, + { + "nr": 107455, + "hash": "44c125de4e0af1aabd96b834f02478a3f1e962c4" + }, + { + "nr": 109120, + "hash": "2d262e826bff316a48f9282dcb4ed6aedb2a26ab" + }, + { + "nr": 104244, + "hash": "3457161a8362d0a3d10cb7d6a086bee02e49199b" + }, + { + "nr": 107859, + "hash": "feda546a58d89f010562c9c3adda38fae33430e4" + }, + { + "nr": 107439, + "hash": "4063e0d0525cbf4bd159c9a8de1c15807ae85b62" + }, + { + "nr": 108614, + "hash": "2e0df86e5519c988a3e0148683da3d870e5e4a1e" + }, + { + "nr": 106875, + "hash": "d42c77f2dbeb871769ec4d0e71cd089a44899e0d" + }, + { + "nr": 106850, + "hash": "48549cec05c7ae469e0c1e16a764e94724226585" + }, + { + "nr": 106891, + "hash": "485787257e91e124ff8f364197e4edec0a910964" + }, + { + "nr": 108898, + "hash": "d07e6b409e2a42d2ec151b635f0661bc595a3d9c" + }, + { + "nr": 108752, + "hash": "59cecaf17d82c3d9160e98926abdd0c76e433846" + }, + { + "nr": 107088, + "hash": "84eb2e43f75e9a99761098960ebf6777cb9c5ada" + }, + { + "nr": 107044, + "hash": "f6e4727bb8db38d4d1e3879c7c9cda72a905ae7a" + }, + { + "nr": 106860, + "hash": "9720aa7f12ef09b2f3490735e0e62e0e468bcd29" + }, + { + "nr": 106492, + "hash": "e1adeff3148a2715769fcc095f9f317bee5dc274" + }, + { + "nr": 104736, + "hash": "dceeed5c6cad4390499c80fe9b83cb7fa796a245" + }, + { + "nr": 108817, + "hash": "591c60fbf7fc3ff79a0320fcf5a5d5a720fb7599" + }, + { + "nr": 99287, + "hash": "33bab30290eded2e555672dd933d3c1a075739a5" + }, + { + "nr": 108611, + "hash": "8f28b70becded9c968233b95ddf8b77d0a05dc62" + }, + { + "nr": 108038, + "hash": "4eac2234eae1e22f8b872d696f2a5a54c99bfc63" + }, + { + "nr": 107900, + "hash": "2d562a80c456dae86acf56bf03e3e5a18f9b2bac" + }, + { + "nr": 107559, + "hash": "4d94d7025c943d2f863445251b891f454e98fac8" + }, + { + "nr": 99441, + "hash": "f5cfe709364140f55b46cbf1807bfb1de7027283" + }, + { + "nr": 103516, + "hash": "12cd3e62ff6eb4d96c8d8fd67e6115e45d016695" + }, + { + "nr": 108224, + "hash": "373f805ad63352de0ab22556316f7494e86550a1" + }, + { + "nr": 106539, + "hash": "bbf413dc13b0e5ab1f918fbe5492b35613001e7f" + }, + { + "nr": 107452, + "hash": "4c77f6134efbc0de4d26ddde746d32dedf378021" + }, + { + "nr": 107221, + "hash": "1ff46daae9ee9969e7ac5f905ba3a60231ef1db3" + }, + { + "nr": 108889, + "hash": "f9c520e87b9fbf43d89c14fa4a951d23dbbb1274" + }, + { + "nr": 108078, + "hash": "a1089648ee584e9cd220f962ecb16df69f4c54e0" + }, + { + "nr": 107094, + "hash": "4fd5f8305be1f2f064c712b626804c51a83c1f23" + }, + { + "nr": 107171, + "hash": "c68d3e87c1ef39e16e7c14cb14b1ce8580b6cef0" + }, + { + "nr": 107091, + "hash": "dacd04c9963ac0473bb9b1c03438161dc1e2b7ad" + }, + { + "nr": 105517, + "hash": "468a7f7e4338ad597cecb9e514f7e09f241f1967" + }, + { + "nr": 108992, + "hash": "35610841f6e2cad95837b7a324e327390d0edb13" + }, + { + "nr": 106932, + "hash": "e92cb930f4e89936cf9d737324f071f55e786029" + }, + { + "nr": 107432, + "hash": "87f9206bb5799b8fead2da9142c6814b3783c15c" + }, + { + "nr": 97966, + "hash": "aa80b30cdafc2879bf85bb860b7477615fd55dd2" + }, + { + "nr": 108493, + "hash": "916f3cc399b4d0c2ff4c1918d2d0e791c31d00d1" + }, + { + "nr": 105070, + "hash": "427d695e0d52fdd9034f26bb7d3a3980dbcc2294" + }, + { + "nr": 109029, + "hash": "3c5619123c5992c97753ed44f326c627cd716a74" + }, + { + "nr": 108929, + "hash": "478aca211d02025e68e8d6d0e30766156d86de32" + }, + { + "nr": 106907, + "hash": "d2f9b28485565f12acf9c593e71ca67b0c28d74b" + }, + { + "nr": 107785, + "hash": "58359912a04607b3b06caebbe26477f4e2ae1ee8" + }, + { + "nr": 107769, + "hash": "e03aec4f26d7a3fc55626caa8284acb0d3468258" + }, + { + "nr": 107763, + "hash": "5ba985a198de9eddb5ff449a283a57095fa42487" + }, + { + "nr": 104620, + "hash": "5a2c1d55864ac0240cb09626e7672eb5a3c83085" + }, + { + "nr": 108432, + "hash": "7bf2287182447c5c880829a964d900258a7d851a" + }, + { + "nr": 101028, + "hash": "c23bd2a858c7f32a4c6a473a4651adb4eb5a03cc" + }, + { + "nr": 106865, + "hash": "ead4fe8dc9df03d1cea35e9fa71a5f3e624b2f49" + }, + { + "nr": 108253, + "hash": "5070c2810f3b30f7b745d8991895a65cf052a868" + }, + { + "nr": 107533, + "hash": "6f85f843918add2288661aef2ce2827fcef0be1e" + }, + { + "nr": 106949, + "hash": "5c6d07649e74477fdb6ed1cb1f6882059380796d" + }, + { + "nr": 107750, + "hash": "4feb5c95614b6bd9debdcdf3f5d186c82c7c05d9" + }, + { + "nr": 108617, + "hash": "6cfe683111fad09b2c2cd7c03f217fde6e5d1bcc" + }, + { + "nr": 99556, + "hash": "fd3cb6fa8f6da116481b8d43612f9260a5fc22c2" + }, + { + "nr": 107845, + "hash": "5610c8d782794882910579139bf87f466b3deabc" + }, + { + "nr": 108782, + "hash": "501e3df523d357bfe0d316af0126a7042b78215f" + }, + { + "nr": 108772, + "hash": "d6412095c63ee58bdc9285eba6e2690a270c0304" + }, + { + "nr": 108450, + "hash": "06a0e340b29272fd1adacc58843ccd1a17347e4c" + }, + { + "nr": 108059, + "hash": "7da0163146061248b2e62a02306cc0ea2994d41b" + }, + { + "nr": 108736, + "hash": "73ba0c4c4f09b9872cf3f1b4f7694f3e7d217c25" + }, + { + "nr": 106792, + "hash": "f728dbc05529b8eed0a3dff35d97c2a8560f50a0" + }, + { + "nr": 107527, + "hash": "4a9a21c3b78293d9930ecb5172552d99a972b2fb" + }, + { + "nr": 107695, + "hash": "170d34e7564705ec199cbf507a00c30b2b93ee05" + }, + { + "nr": 105632, + "hash": "809b32df538ac1cd788de6da2c148b46f804f77d" + }, + { + "nr": 95400, + "hash": "fc3b89bcded5161cbc8acacf947708d86e7fa799" + }, + { + "nr": 108919, + "hash": "52d715fc1a58c9d5b7965261e715aa7f24b446fb" + }, + { + "nr": 108965, + "hash": "04ef8fb9526affae7eadb0445fb2cbc3728d9e1b" + }, + { + "nr": 108198, + "hash": "9dc256dd11dc979c393b118354a2c9e935bdaf77" + }, + { + "nr": 107512, + "hash": "fc10d56132a2cab1eac311a9a21ce9c9aefc466c" + }, + { + "nr": 107467, + "hash": "50505694588cbaf502d607a8844e779ef3f19db7" + }, + { + "nr": 101719, + "hash": "e9bc9a1c2bb1fb0d482e03e18c856a26e771d31b" + }, + { + "nr": 109137, + "hash": "73dab293870f6b737ca7d56c0704d1d1498ea16a" + }, + { + "nr": 109018, + "hash": "631ee7d0d2bc9dc6a54cb7913dbf3c690dc14e40" + }, + { + "nr": 108052, + "hash": "a74c2231ff5addbbcde1038c5da00bb911d1f6ae" + }, + { + "nr": 107796, + "hash": "a471f274e71c5fb31c03a0fb3ce87960a51528d7" + }, + { + "nr": 107612, + "hash": "98585f3f01e967c0da89277eab9fa15abb4a0953" + }, + { + "nr": 107406, + "hash": "e316aece97b3f2c3060563af09819932f8a4bd31" + }, + { + "nr": 105566, + "hash": "6feb389bfb647c73f818851308fd7a4105468e54" + }, + { + "nr": 106973, + "hash": "366f605d136db35842f7415f48b0aae80dd5c8bd" + }, + { + "nr": 108154, + "hash": "2526a37a187701b757003153ed370c7e4ffeb9f0" + }, + { + "nr": 107201, + "hash": "30e2feb08f9840247c75d5154415e10f44b63a41" + }, + { + "nr": 108445, + "hash": "a9de799f9c298f6b70ed2176919d8f766c24d50e" + }, + { + "nr": 108761, + "hash": "f00375dd87e640a13d63ce7cdbf6ea1b073ef7bc" + }, + { + "nr": 107604, + "hash": "84a23eff5211269704fd196767a3e63f0d6ad39e" + }, + { + "nr": 106313, + "hash": "dd3429f8aa87c4a6dc24cf0b4927658b25a39fe1" + }, + { + "nr": 108994, + "hash": "9a4607257f51bffccf47e5e0e48b71abb91ce76b" + }, + { + "nr": 106109, + "hash": "ac260ad37530edcca582b6168e0976a467f0ec4e" + }, + { + "nr": 108034, + "hash": "8ec45ef3c9ed670b3fce239af5b9879f0ea188fc" + }, + { + "nr": 108091, + "hash": "3b194d607aebf7c2fdfe1ddccd02361d77469b86" + }, + { + "nr": 82162, + "hash": "c3b3e17e3b61d733271fe1b423d0ac0c161fe2d9" + }, + { + "nr": 108429, + "hash": "776d4de6c2233325a18e2db228f1e6236c45524a" + }, + { + "nr": 107847, + "hash": "1c37ae1be61e080b48d7f36ab8c3db8345a9527f" + }, + { + "nr": 107402, + "hash": "4b21655a61388bb6da8a93c76df7033a803deca2" + }, + { + "nr": 107013, + "hash": "2e1cc8f1c1e08a58098602b10438ca64c883681d" + }, + { + "nr": 106833, + "hash": "375006070b1902b5c31a336aa4dc86f4dc7373d7" + }, + { + "nr": 108486, + "hash": "24c541c036f49f9dd5d3103a7d98cae5232b60f2" + }, + { + "nr": 108870, + "hash": "4f925a2fed2a6bc6004becb08c00e2fafe6ed8b5" + }, + { + "nr": 108616, + "hash": "6342b28a3d03bf2ef5896bfff35b2d33a4378e91" + }, + { + "nr": 103061, + "hash": "5f23481e1d8aeebfbe9ed3a86be743f044a95f54" + }, + { + "nr": 108045, + "hash": "08e3904f4673709695d71f02c85c6340dba32f3a" + }, + { + "nr": 107025, + "hash": "2f7dad0cb42efb13792d8eaa1eaac301cc83255d" + }, + { + "nr": 108146, + "hash": "a7340f07f2d2c3d6655eea538b8595da10305569" + }, + { + "nr": 107180, + "hash": "e1dac619c21e10183a7967998d1f4bfed25af860" + }, + { + "nr": 108366, + "hash": "c5dcf6416e66c7f0006d0d3be3dfa112604cd284" + }, + { + "nr": 106912, + "hash": "d64dff74636a32a595cecbe99702e621e7cfc853" + }, + { + "nr": 108829, + "hash": "9359aaa6a149888e5419dc2442340a10526be100" + }, + { + "nr": 108448, + "hash": "a97a308383e4226e43e1cd2cf32e4cb6344669f8" + }, + { + "nr": 108341, + "hash": "c6ee659407963c13727a802838d77764f4bef38e" + }, + { + "nr": 106838, + "hash": "833fcca313e4ad60d727d419239f6d1843bde036" + }, + { + "nr": 109072, + "hash": "c0b5378629d381f77e3faa64d4452a481dddd26a" + }, + { + "nr": 108073, + "hash": "18545d889c674914aa360552f3f45bcdd9b7c7fa" + }, + { + "nr": 107363, + "hash": "19602188e9ceb6e7e4693c589e8185c873750aa3" + }, + { + "nr": 106164, + "hash": "e40fbf27754242f8d7c2edd092f6c9df80f792a1" + }, + { + "nr": 104774, + "hash": "d32aa8937eb5659fd68c05eec81a27281e06c53c" + }, + { + "nr": 106366, + "hash": "d7cceb6bf15c99fb2aedd324b401ba895c643166" + }, + { + "nr": 106600, + "hash": "5704d3fd79e7cc8f93117b31f13eaa071dc2964a" + }, + { + "nr": 109089, + "hash": "f22049c2719f66ee295bce65f58fabfe82bf47c3" + }, + { + "nr": 108662, + "hash": "77fc157587cd184d072b0089854bfcddc3bfde52" + }, + { + "nr": 108628, + "hash": "7cffc97f37d1631e6d67d955eea0f28cbd238e02" + }, + { + "nr": 108020, + "hash": "e3da8cb979d8a86872ed53bfa627d5c403f448dc" + }, + { + "nr": 107921, + "hash": "56c11777f9bd08ea562d22973ef046706311c824" + }, + { + "nr": 107982, + "hash": "57a3bdc9ee1cfeb9857b77fc64944866ee9b2276" + }, + { + "nr": 106648, + "hash": "2c069c8671364d8bf5a3e7caa93b2bd101d51216" + }, + { + "nr": 108758, + "hash": "4ab2b72c94c0b2cd5d91a8444df95d5d9b0b0c47" + }, + { + "nr": 108988, + "hash": "9cd07a526cf5366b92b9652c4912d73384071b07" + }, + { + "nr": 107468, + "hash": "f3352e02205e2bcfa3892547daacadb44aaf1cff" + }, + { + "nr": 105964, + "hash": "534e48eabc128637fe6ea6554f9b983d14cf6bd8" + }, + { + "nr": 107880, + "hash": "e5e88e3249c7d5339ecb69424a55ccbc8733f36a" + }, + { + "nr": 107096, + "hash": "2120baf5ff6d0248872dcd2ead68c96f8a2b8437" + }, + { + "nr": 107674, + "hash": "fe5ded0dba9ef62f612103d18fae2c6226773422" + }, + { + "nr": 106203, + "hash": "c030076974f0967cc1b860f406b1a215ce0c9d7e" + }, + { + "nr": 107295, + "hash": "175ba9471ebe416e49c995b819d01037ab9cf4cf" + }, + { + "nr": 108290, + "hash": "0c61bccc784146a0b028736ed2a6cd5621c864ef" + }, + { + "nr": 109031, + "hash": "c7e9975bc83e0d0d7e85531ca055419c0c8c62ec" + }, + { + "nr": 108400, + "hash": "e292edcaf8d83483e18337024b75481507f2afb9" + }, + { + "nr": 108296, + "hash": "9084d21983720d40002d3709a0688f2289b10391" + }, + { + "nr": 108129, + "hash": "7d519405535cf379e5e92857661d7e467f45a3b7" + }, + { + "nr": 107924, + "hash": "0bf0f79518e827551971fbd812d6802045b88a4f" + }, + { + "nr": 107476, + "hash": "b0dbd5b3603baaefd1d438e8ca476539d1c6e7ec" + }, + { + "nr": 108531, + "hash": "47f9e3814b14b981f35203e4afc3500248bb300e" + }, + { + "nr": 108437, + "hash": "4dacd365b0ec4c90f907a86194ffdbd2be5585c6" + }, + { + "nr": 107904, + "hash": "adc4982e5ef1893d1d4ab3414625111c1d1e6bf1" + }, + { + "nr": 107317, + "hash": "c0b9d125ad5a23c21e20a9044807f7de541e6364" + }, + { + "nr": 108953, + "hash": "e28dd1671bc6214064fa57139194ff1f238bb4fe" + }, + { + "nr": 107963, + "hash": "9293b1c5d85b6474a9b2e92db6fb73a25d17c842" + }, + { + "nr": 108167, + "hash": "9ddc987e8088bcb2fb2bd9e0909801752ad11d39" + }, + { + "nr": 107481, + "hash": "08d9d01c2e012b951e74eb309583d535fe01336c" + }, + { + "nr": 107065, + "hash": "c63134923d4fa9ee1c6a6726f86a1106ec5335e1" + }, + { + "nr": 106725, + "hash": "6c3c9d831a738281080249283c0644463f4ec48c" + }, + { + "nr": 104143, + "hash": "768ea65e4880833dd85973d54d9ee4b8be098281" + }, + { + "nr": 106628, + "hash": "b603b8c6c4d7938b1724c8a54d4522a0316a24c6" + }, + { + "nr": 108724, + "hash": "8229be8cde68526fc37644bea9b79c51d0f2553c" + }, + { + "nr": 108927, + "hash": "26ce3db8eb9ad5212f162b816825ca81f5b26ec6" + }, + { + "nr": 102265, + "hash": "96e4a39107bcc13dd62c93ec1fe2e4ca3d9a8c86" + }, + { + "nr": 109035, + "hash": "c9e22beaba23df2fd23cc6972fa9f1f93fe7ba29" + }, + { + "nr": 107725, + "hash": "e264d793c40b63a12b74933f7953452ea7348812" + }, + { + "nr": 106584, + "hash": "dbd05615e88aaee1d8ba97e32f8b614238ee02e3" + }, + { + "nr": 109104, + "hash": "f89936789ccbecb058e4b99d58f3a24bca01eca8" + }, + { + "nr": 107681, + "hash": "f0ab1f1eac0807b55ea42d17f5b621da41278c33" + }, + { + "nr": 107607, + "hash": "951e0019eceaa6131816f32ff0ccb69fd7cbf2c3" + }, + { + "nr": 107009, + "hash": "9b42b2a81926a572a1b0c9bd0f94312604e454e4" + }, + { + "nr": 107235, + "hash": "fe214820c0b95da56f4ab3ca69d450d7c051b56e" + }, + { + "nr": 107103, + "hash": "82ace534ea0fcf5ae1e1608ba5773ccdd3945d35" + }, + { + "nr": 106588, + "hash": "7e533938e1825c4fa4f59bb75128fc2e7efe84a2" + }, + { + "nr": 106830, + "hash": "11095e91c79dc0e51e215b76ab78f2c1e3c14d51" + }, + { + "nr": 108278, + "hash": "e92a24e11288dd4782af0b443659c8c2f359488a" + }, + { + "nr": 108561, + "hash": "1fc6cb9dcea6ab3f833fab4b8af1b91368161fc5" + }, + { + "nr": 107806, + "hash": "539e49ff323cac7d3ab245ea4124b2a01f46ebd8" + }, + { + "nr": 108027, + "hash": "9d7e1e59f822788489d44f823ef0beeb9d83d3fe" + }, + { + "nr": 106497, + "hash": "484c0611659a957164a1abe9f0748be9116f4743" + }, + { + "nr": 100424, + "hash": "f200278232aab9fd102c3eb8edcf8f73f2533433" + }, + { + "nr": 107105, + "hash": "f28c6e48aa7a5290923723c5cdb2362334b7d4c3" + }, + { + "nr": 106978, + "hash": "11cef8e652432a463db48fc6d47559fe9dbaf089" + }, + { + "nr": 107116, + "hash": "dcdf7b08b88a5dd1d5466aad18428c7eff09973d" + }, + { + "nr": 107035, + "hash": "5a6d3d8b6c82d7158afadf4cfbc782b8c9ecc2e0" + }, + { + "nr": 109019, + "hash": "81c70d392abeab3d2b9116ad77f7785e686dfb6b" + }, + { + "nr": 107410, + "hash": "a3a1a46fd2fcd09ccb81fe73ae76ce0b6663608b" + }, + { + "nr": 107337, + "hash": "44844344f0dabadceaa7a000633d97527dc3a805" + }, + { + "nr": 108032, + "hash": "3ddc1101414aee4177cee037d0c1e3f4f0e3da2c" + }, + { + "nr": 107429, + "hash": "ed24426582238be4835bd90221a8a5b17c6c7a41" + }, + { + "nr": 109024, + "hash": "2b06d0544a420ba93855d003090ec58baae699ef" + }, + { + "nr": 108648, + "hash": "db61014990863afbb824294ad3631d302eb7203f" + }, + { + "nr": 107006, + "hash": "07fa303f31637b5118ea378a0e6b19aa85c9abdb" + }, + { + "nr": 108831, + "hash": "cbdcc56f730bd5ad1ac859e71babe02698f2a78b" + }, + { + "nr": 107056, + "hash": "13e10a72894a4c29572391578c59e83a16bfc24b" + }, + { + "nr": 99758, + "hash": "1822b46d9544e9201c5c8436eb651ef23a2f3937" + }, + { + "nr": 106901, + "hash": "7e980daaf8c84893abe66637b507c10867c64b47" + }, + { + "nr": 108748, + "hash": "c1930a6087790da0c2a5d5c976f347abcbbe955b" + }, + { + "nr": 108013, + "hash": "5962bba023d9a51ad4fc1338ebc4f7d47ba91571" + }, + { + "nr": 108062, + "hash": "1074de4b0cc8d359c68ccdf43c6eee305dd396d4" + }, + { + "nr": 107027, + "hash": "178d9c350497d95c5d1512731cec402e3f53b521" + }, + { + "nr": 106570, + "hash": "cb39f1d1e2be01495c3c0e1ba877d8298506128d" + }, + { + "nr": 106739, + "hash": "7b5ffceb1c3ab654538eb55e7be00816261af161" + }, + { + "nr": 106322, + "hash": "7e0b686c73a4e98daddaf22acd1ba6cd1caa352a" + }, + { + "nr": 106824, + "hash": "6cc5030968e1e19b0e49b246941d25b33286b7fa" + }, + { + "nr": 107979, + "hash": "1e045dad001a3d4312876038cb65c8bc4510e7ac" + }, + { + "nr": 105297, + "hash": "092ae68267c622f2b1e480f74926b25ce7da3d66" + }, + { + "nr": 107686, + "hash": "25fecc1209e6c2bc01342b466132d75b5f5658e5" + }, + { + "nr": 97252, + "hash": "10b37a5b10c898e7deff3735a0a0ac9b08dc273b" + }, + { + "nr": 106660, + "hash": "08ee49d093aac386f9b35907680cf1bf32ef910b" + }, + { + "nr": 107090, + "hash": "bb5ebe4fae799da8a913585869a1409532506360" + }, + { + "nr": 108394, + "hash": "78b1915534f9621ae360b02a88836e53c884a0a7" + }, + { + "nr": 106854, + "hash": "07a7f8b368e8bf70356a7f23adc8de97ce37041c" + }, + { + "nr": 101218, + "hash": "348df4b99f2fc856f7a1e3af1935fb9b2f2eceea" + }, + { + "nr": 107603, + "hash": "89a57afd361035c3ae0cadd616ef4ac19448e4a4" + }, + { + "nr": 107744, + "hash": "5deca8fd775454b543d23777d7b43c1debcf8bb0" + }, + { + "nr": 94637, + "hash": "bce4f32a846ce4aa55a17830a2f5bdedfe12d699" + }, + { + "nr": 106859, + "hash": "b77276240179069acf234b2ed53c561a208b523f" + }, + { + "nr": 109128, + "hash": "a96559cbe8959f4713f44dc9df7403c87e5089ba" + }, + { + "nr": 108769, + "hash": "c6002cc086ecc9331f06e53dd945d64ddd9fefdf" + }, + { + "nr": 107967, + "hash": "ebb28896b7bb9d0a318bb044e077b6d8b38a4e4c" + }, + { + "nr": 106911, + "hash": "4299a6e4b57e4cc6ca34f2f6a35879374dc750e8" + }, + { + "nr": 107516, + "hash": "b0818ef2c2d974e5453b64172c3ad47998686460" + }, + { + "nr": 107003, + "hash": "2b482ec610dd5f6d33eb831b3d14a356f7689d67" + }, + { + "nr": 106878, + "hash": "9f582e09f84b09ad45630110cef740a503f3c2fb" + }, + { + "nr": 106803, + "hash": "0bedb1c734917f0d73fc184c11b8d5c688cc776d" + }, + { + "nr": 105585, + "hash": "26228a77f86a64e8b827b6d8bfdcb1583e40d1cf" + }, + { + "nr": 108631, + "hash": "03f72c5e1992b513c5e93769ca018e912236c038" + }, + { + "nr": 106644, + "hash": "38b998a1b2e73f75f6d2bb63770ca6ac5e6c2e2c" + }, + { + "nr": 106581, + "hash": "3fbd7550d56374bc6ffed7738dee69a560cdc60e" + }, + { + "nr": 108004, + "hash": "46d7cd09ad87683d5c9a2b7878f55d3ddc232cd4" + }, + { + "nr": 105954, + "hash": "ab2e2fbe2fc81ebc719feb2529884a664f7eb32d" + }, + { + "nr": 107462, + "hash": "6633e91014107066e286391b35fa584d0ddc0cf8" + }, + { + "nr": 106453, + "hash": "816c2cb3aac666fdfdaddaccfce41d1c6907601c" + }, + { + "nr": 106179, + "hash": "0c0b614c099c06d834216e477fe9a637ab8052a2" + }, + { + "nr": 108717, + "hash": "a33a816bc8fa8573c186bc87b670ae5379a51570" + }, + { + "nr": 108136, + "hash": "9abfc58c42059cf0be5941e386423fa6cc3c54c2" + }, + { + "nr": 107142, + "hash": "05c1f9d805fb280ba58b630d45ca990a61fa20be" + }, + { + "nr": 107553, + "hash": "0de5ed7e96b4c65eef28d46ab93f0ce744eb376d" + }, + { + "nr": 106816, + "hash": "3a3e86fdb8ecc9844a1b218f3db622a3f4dd0193" + }, + { + "nr": 108995, + "hash": "259652583d1f90a2e9568f0ea5c6b901823926a2" + }, + { + "nr": 108441, + "hash": "dd0e040943a2d7436385b6128a5e05260147bb22" + }, + { + "nr": 107141, + "hash": "c2d8a5c611d5564f5c35b70e7e8fe7d5233c7583" + }, + { + "nr": 108315, + "hash": "8cc6457513de79120b64d480e51f58806e9fd0d3" + }, + { + "nr": 104732, + "hash": "7e6320e57256bda664d0264ce52839461c938f4c" + }, + { + "nr": 108149, + "hash": "ae808d80832ae716e6da9964cca96d06798b88be" + }, + { + "nr": 107554, + "hash": "588bee36fd41c9c202d8d08d1f4f7151f3491b8c" + }, + { + "nr": 106445, + "hash": "b4dfb9783e1392be2585ac7e470580528496e8dc" + }, + { + "nr": 109059, + "hash": "de793283e6cdb6e5904fa50e31d4cb6144b1a3c9" + }, + { + "nr": 108747, + "hash": "dccc1e8b1277206d6174e3a69895829555e42f92" + }, + { + "nr": 104837, + "hash": "6cf6cba72b52d2008cd21234484aff8840cb8369" + }, + { + "nr": 107565, + "hash": "dd4f2189e80fbbb95cb9f694e428d38214d78d8e" + }, + { + "nr": 107384, + "hash": "bb02eb90df8a111fa2d6e7341de741316e38606b" + }, + { + "nr": 104846, + "hash": "9be9eaa7e7f351fe03055fcaadfccb4d9eafa64d" + }, + { + "nr": 107981, + "hash": "3b4740ff342ff568ea0bf8aeaa3354ad29789362" + }, + { + "nr": 107956, + "hash": "0becf98bb8d3f0287a5053bf9cdd0a43fd183ea9" + } + ] } \ No newline at end of file diff --git a/releases/release-1.24/release-notes/sessions/maps-1651169858.json b/releases/release-1.24/release-notes/sessions/maps-1651169858.json index 56b1154156e..ac3569cabf4 100644 --- a/releases/release-1.24/release-notes/sessions/maps-1651169858.json +++ b/releases/release-1.24/release-notes/sessions/maps-1651169858.json @@ -1,111 +1,111 @@ -{ - "mail": "lucasdwyer@pm.me", - "name": "Lucas Dwyer", - "date": 1651169858, - "prs": [ - { - "nr": 109487, - "hash": "938f6ab6d1b381d0e43891847a65fc623792ec19" - }, - { - "nr": 109188, - "hash": "ca09ffd4357ff9bdee9e04f384f6433cc3daff0d" - }, - { - "nr": 107845, - "hash": "3bf26a5d886fe84e6c9111349c04ea232afaab96" - }, - { - "nr": 107035, - "hash": "2a09dc9c066c85dcbcc3db33de1dacbce8143f67" - }, - { - "nr": 109436, - "hash": "d767f69c66ebd3c8d1c4dd525267d03914948efe" - }, - { - "nr": 107091, - "hash": "f488faf3f1449a2d7934786435637901b9b94202" - }, - { - "nr": 108752, - "hash": "a1f2681ce15c71d31c1d6571cd866d96ac2724ae" - }, - { - "nr": 109442, - "hash": "fa60389cedc47377129b000e47d98e3b75b2e1eb" - }, - { - "nr": 106164, - "hash": "0e78612293c41db83ea6ed8b07b9e5fd02f06659" - }, - { - "nr": 109213, - "hash": "ecd40aa62b487a9940a5df3c2188024db200cc11" - }, - { - "nr": 109271, - "hash": "b7b060cf2865ce0cb34eda86e9d196e0fd84c2ba" - }, - { - "nr": 108631, - "hash": "f10d77a032a17ba6bbdd93ae43ef58da6fa9c55d" - }, - { - "nr": 109050, - "hash": "d4e2aa588ae73db27393cb2e007b86068cfbacf0" - }, - { - "nr": 109154, - "hash": "8d9b774ab1c562cd385d46d7de59837e84492dde" - }, - { - "nr": 109241, - "hash": "9e9db90b68f65dfef868f9b305e91b213c630572" - }, - { - "nr": 109178, - "hash": "635ea5892f3abb443ad7c926b3363ee3b4c2e84b" - }, - { - "nr": 109471, - "hash": "09361dd3d4cb79b3a294d2030b6451e4ddcc14ec" - }, - { - "nr": 109461, - "hash": "a9f1deb8578f2ae13453b7ce76c6751f3a15b82c" - }, - { - "nr": 109205, - "hash": "257a52d34a5b4adbdb9cb54121d9e7cd8431fe85" - }, - { - "nr": 107631, - "hash": "1d5ec170756dc778828a5145bcbb3eff3062ea44" - }, - { - "nr": 108149, - "hash": "c63a162c0f54650f332079c0757f6d4dc5a811c1" - }, - { - "nr": 109060, - "hash": "874b9dd485ffc5e74024714b4ec8d1b0ac29d2e7" - }, - { - "nr": 107178, - "hash": "2c92e1e86375a635e0dd811d7e03c26885581f31" - }, - { - "nr": 108016, - "hash": "662c1c9086d3d43e1ee8c2c709704a0a61401d7e" - }, - { - "nr": 109245, - "hash": "5e714263b5e64f58cc4d5295d09c8c06636df6a9" - }, - { - "nr": 108930, - "hash": "ff5bb464f82a33d946b8860ca73f7d3256c17330" - } - ] +{ + "mail": "lucasdwyer@pm.me", + "name": "Lucas Dwyer", + "date": 1651169858, + "prs": [ + { + "nr": 109487, + "hash": "938f6ab6d1b381d0e43891847a65fc623792ec19" + }, + { + "nr": 109188, + "hash": "ca09ffd4357ff9bdee9e04f384f6433cc3daff0d" + }, + { + "nr": 107845, + "hash": "3bf26a5d886fe84e6c9111349c04ea232afaab96" + }, + { + "nr": 107035, + "hash": "2a09dc9c066c85dcbcc3db33de1dacbce8143f67" + }, + { + "nr": 109436, + "hash": "d767f69c66ebd3c8d1c4dd525267d03914948efe" + }, + { + "nr": 107091, + "hash": "f488faf3f1449a2d7934786435637901b9b94202" + }, + { + "nr": 108752, + "hash": "a1f2681ce15c71d31c1d6571cd866d96ac2724ae" + }, + { + "nr": 109442, + "hash": "fa60389cedc47377129b000e47d98e3b75b2e1eb" + }, + { + "nr": 106164, + "hash": "0e78612293c41db83ea6ed8b07b9e5fd02f06659" + }, + { + "nr": 109213, + "hash": "ecd40aa62b487a9940a5df3c2188024db200cc11" + }, + { + "nr": 109271, + "hash": "b7b060cf2865ce0cb34eda86e9d196e0fd84c2ba" + }, + { + "nr": 108631, + "hash": "f10d77a032a17ba6bbdd93ae43ef58da6fa9c55d" + }, + { + "nr": 109050, + "hash": "d4e2aa588ae73db27393cb2e007b86068cfbacf0" + }, + { + "nr": 109154, + "hash": "8d9b774ab1c562cd385d46d7de59837e84492dde" + }, + { + "nr": 109241, + "hash": "9e9db90b68f65dfef868f9b305e91b213c630572" + }, + { + "nr": 109178, + "hash": "635ea5892f3abb443ad7c926b3363ee3b4c2e84b" + }, + { + "nr": 109471, + "hash": "09361dd3d4cb79b3a294d2030b6451e4ddcc14ec" + }, + { + "nr": 109461, + "hash": "a9f1deb8578f2ae13453b7ce76c6751f3a15b82c" + }, + { + "nr": 109205, + "hash": "257a52d34a5b4adbdb9cb54121d9e7cd8431fe85" + }, + { + "nr": 107631, + "hash": "1d5ec170756dc778828a5145bcbb3eff3062ea44" + }, + { + "nr": 108149, + "hash": "c63a162c0f54650f332079c0757f6d4dc5a811c1" + }, + { + "nr": 109060, + "hash": "874b9dd485ffc5e74024714b4ec8d1b0ac29d2e7" + }, + { + "nr": 107178, + "hash": "2c92e1e86375a635e0dd811d7e03c26885581f31" + }, + { + "nr": 108016, + "hash": "662c1c9086d3d43e1ee8c2c709704a0a61401d7e" + }, + { + "nr": 109245, + "hash": "5e714263b5e64f58cc4d5295d09c8c06636df6a9" + }, + { + "nr": 108930, + "hash": "ff5bb464f82a33d946b8860ca73f7d3256c17330" + } + ] } \ No newline at end of file diff --git a/releases/release-1.24/release-team.md b/releases/release-1.24/release-team.md index 9dcf67844a7..976c7dea0e8 100644 --- a/releases/release-1.24/release-team.md +++ b/releases/release-1.24/release-team.md @@ -1,17 +1,17 @@ -# Kubernetes 1.24 Release Team - -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|----------|----------------------------------|----------------------------------------| -| Lead | James Laverack ([@JamesLaverack](https://github.com/JamesLaverack) / Slack: `@james.laverack`) | Jesse Butler ([@jlbutler](https://github.com/jlbutler) / Slack: `@Jesse Butler`), Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`), Cici Huang ([@cici37](https://github.com/cici37) / Slack: `@cici37`), Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkorbi`) | -| Enhancements | Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`) | Ryler Hockenbury ([@rhockenbury](https://github.com/rhockenbury) / Slack: `@rhockenbury`), Hossein Salahi ([@encodeflush](https://github.com/encodeflush) / Slack: `@hsalahi`), Jiahui Feng ([@jiahuif](https://github.com/jiahuif) / Slack: `@jiahuif`), Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack: `@psaggu`) | -| CI Signal | Leonard Vincent Simon Pahlke ([@leonardpahlke](https://github.com/leonardpahlke) / Slack: `@leonardpahlke`) | Christoph Voigt ([@voigt](https://github.com/voigt) / Slack: `@Christoph Voigt`), Laura Lorenz ([@lauralorenz](https://github.com/lauralorenz) / Slack: `@Laura Lorenz`), Shuhei Kitagawa ([@shuheiktgw](https://github.com/shuheiktgw) / Slack: `@Shuhei Kitagawa`), Nivedita Prasad ([@nivedita-coder](https://github.com/nivedita-coder) / Slack: `@Nivedita Prasad` ) | -| Bug Triage | Jyoti Mahapatra ([@jyotimahapatra](https://github.com/jyotimahapatra) / Slack: `@Jyoti Mahapatra`) | Dipto Chakrabarty ([@DiptoChakrabarty](https://github.com/DiptoChakrabarty) / Slack: `@Dipto`), Heba Elayoty ([@helayoty](https://github.com/helayoty) / Slack: `@helayoty`), Igor Andriushchenko ([@doshyt](https://github.com/doshyt) / Slack: `@Igor Andriushchenko`), Ritu Panjwani ([@ritpanjw](https://github.com/ritpanjw) / Slack: `@ritpanjw`) | -| Docs | Nate Waddington ([@nate-double-u](https://github.com/nate-double-u) / Slack: `@nate-double-u`) | Chris Negus ([@chrisnegus](https://github.com/chrisnegus) / Slack: `@Chris Negus`), Edidiong Asikpo ([@didicodes](https://github.com/didicodes) / Slack: `@Didicodes`), Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@Meha Bhalodiya`), Victor Palade ([@pi-victor](https://github.com/pi-victor) / Slack: `@pi-victor` ) | -| Release Notes | Lucas Dwyer ([@AuraSinis](https://github.com/AuraSinis) / Slack: `@Lucas Dwyer`) | Parul Sahoo ([@parul5sahoo](https://github.com/parul5sahoo) / Slack: `@parul_sahoo`), Arsh Sharma ([@RinkiyaKeDad](https://github.com/RinkiyaKeDad) / Slack: `@arsh`), François Le Pape ([@Lp-Francois](https://github.com/Lp-Francois) / Slack: `@François LP`), Carlos Santana ([@csantanapr](https://github.com/csantanapr) / Slack: `@csantanapr`) | -| Communications | Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@mickey`) | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`), Saul O'Driscoll ([@s04](https://github.com/s04) / Slack: `@saulodriscoll`), Debabrata Panigrahi ([@Debanitrkl](https://github.com/Debanitrkl) / Slack: `@deba`), Parthvi Vala ([@valaparthvi](https://github.com/valaparthvi) / Slack: `@valaparthvi`) | -| Emeritus Adviser | Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@Joseph`) | | -| Branch Manager | Nabarun Pal ([@palnabarun](https://github.com/palnabarun) / Slack: `@palnabarun`) | Jim Angel ([@jimangel](https://github.com/jimangel) / Slack: `@jimangel`) | - -Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.24, once the 1.24 release cycle concludes. +# Kubernetes 1.24 Release Team + +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|----------|----------------------------------|----------------------------------------| +| Lead | James Laverack ([@JamesLaverack](https://github.com/JamesLaverack) / Slack: `@james.laverack`) | Jesse Butler ([@jlbutler](https://github.com/jlbutler) / Slack: `@Jesse Butler`), Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`), Cici Huang ([@cici37](https://github.com/cici37) / Slack: `@cici37`), Max Körbächer ([@mkorbi](https://github.com/mkorbi) / Slack: `@mkorbi`) | +| Enhancements | Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`) | Ryler Hockenbury ([@rhockenbury](https://github.com/rhockenbury) / Slack: `@rhockenbury`), Hossein Salahi ([@encodeflush](https://github.com/encodeflush) / Slack: `@hsalahi`), Jiahui Feng ([@jiahuif](https://github.com/jiahuif) / Slack: `@jiahuif`), Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack: `@psaggu`) | +| CI Signal | Leonard Vincent Simon Pahlke ([@leonardpahlke](https://github.com/leonardpahlke) / Slack: `@leonardpahlke`) | Christoph Voigt ([@voigt](https://github.com/voigt) / Slack: `@Christoph Voigt`), Laura Lorenz ([@lauralorenz](https://github.com/lauralorenz) / Slack: `@Laura Lorenz`), Shuhei Kitagawa ([@shuheiktgw](https://github.com/shuheiktgw) / Slack: `@Shuhei Kitagawa`), Nivedita Prasad ([@nivedita-coder](https://github.com/nivedita-coder) / Slack: `@Nivedita Prasad` ) | +| Bug Triage | Jyoti Mahapatra ([@jyotimahapatra](https://github.com/jyotimahapatra) / Slack: `@Jyoti Mahapatra`) | Dipto Chakrabarty ([@DiptoChakrabarty](https://github.com/DiptoChakrabarty) / Slack: `@Dipto`), Heba Elayoty ([@helayoty](https://github.com/helayoty) / Slack: `@helayoty`), Igor Andriushchenko ([@doshyt](https://github.com/doshyt) / Slack: `@Igor Andriushchenko`), Ritu Panjwani ([@ritpanjw](https://github.com/ritpanjw) / Slack: `@ritpanjw`) | +| Docs | Nate Waddington ([@nate-double-u](https://github.com/nate-double-u) / Slack: `@nate-double-u`) | Chris Negus ([@chrisnegus](https://github.com/chrisnegus) / Slack: `@Chris Negus`), Edidiong Asikpo ([@didicodes](https://github.com/didicodes) / Slack: `@Didicodes`), Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@Meha Bhalodiya`), Victor Palade ([@pi-victor](https://github.com/pi-victor) / Slack: `@pi-victor` ) | +| Release Notes | Lucas Dwyer ([@AuraSinis](https://github.com/AuraSinis) / Slack: `@Lucas Dwyer`) | Parul Sahoo ([@parul5sahoo](https://github.com/parul5sahoo) / Slack: `@parul_sahoo`), Arsh Sharma ([@RinkiyaKeDad](https://github.com/RinkiyaKeDad) / Slack: `@arsh`), François Le Pape ([@Lp-Francois](https://github.com/Lp-Francois) / Slack: `@François LP`), Carlos Santana ([@csantanapr](https://github.com/csantanapr) / Slack: `@csantanapr`) | +| Communications | Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@mickey`) | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`), Saul O'Driscoll ([@s04](https://github.com/s04) / Slack: `@saulodriscoll`), Debabrata Panigrahi ([@Debanitrkl](https://github.com/Debanitrkl) / Slack: `@deba`), Parthvi Vala ([@valaparthvi](https://github.com/valaparthvi) / Slack: `@valaparthvi`) | +| Emeritus Adviser | Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@Joseph`) | | +| Branch Manager | Nabarun Pal ([@palnabarun](https://github.com/palnabarun) / Slack: `@palnabarun`) | Jim Angel ([@jimangel](https://github.com/jimangel) / Slack: `@jimangel`) | + +Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.24, once the 1.24 release cycle concludes. diff --git a/releases/release-1.25/README.md b/releases/release-1.25/README.md index 1e33cf2bfd1..2ae26c9b9b7 100644 --- a/releases/release-1.25/README.md +++ b/releases/release-1.25/README.md @@ -1,125 +1,125 @@ ---- -title: "Kubernetes 1.25 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.25: Combiner - -<p align="center"> - <img src="./logo/main-logo.png" height="500" alt="Kubernetes 1.25 Release Logo" /> -</p> - -Kubernetes 1.25 is named *Combiner*, to the combined force capable of changing the world! - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.25/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.25/release-team.md) -* [Meeting Minutes](http://bit.ly/k8s125-releasemtg) (members of [release-team@] receive meeting invites) -* [v1.25 Release Calendar][k8s125-calendar] -* Contact: [#sig-release] on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail -* [Internal Contact Info] (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Sheet](https://bit.ly/k8s125-enhancements) -* [Feature blog Tracking Sheet](http://bit.ly/k8s125-feature-blog) -* [Bug Triage Tracking Sheet](https://bit.ly/k8s125-bug-triage-tracking) -* [CI Signal Project Board & Issue Tracking](https://github.com/orgs/kubernetes/projects/68) -* [Retrospective Document][Retrospective Document] -* [kubernetes/sig-release v1.25 milestone](https://github.com/kubernetes/kubernetes/milestone/58) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## Summary - -The 1.25 release cycle is as follows: - -- **Monday 23rd May 2022**: Week 1 — Release cycle begins -- **Thursday 16th June 2022**: Week 4 — [Production Readiness Soft Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) -- **01:00 UTC Friday 24th June 2022** / **18:00 PDT Thursday 23rd June 2022** : Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **Wednesday 27th July 2022**: Week 10 — [Release Retrospective][Retrospective Document] part 1 -- **01:00 UTC Wednesday 3rd August 2022** / **02:00 BST Wednesday 3rd August 2022** / **18:00 PDT Tuesday 2nd August 2022**: Week 11 — [Code Freeze](../release_phases.md#code-freeze) -- **01:00 UTC Wednesday 10th August 2022** / **02:00 BST Wednesday 10th August 2022** / **18:00 PDT Tuesday 9th August 2022**: Week 12 — [Test Freeze](../release_phases.md#test-freeze) -- **Tuesday 16th August 2022**: Week 13 — Docs must be completed and reviewed -- **Tuesday 23rd August 2022**: Week 14 — Kubernetes v1.25.0 released -- **TBC**: Week 16 — [Release Retrospective][Retrospective Document] part 2 - -## Timeline - -| **What** | **Who** | **When** | **Week** | **CI Signal** | -|---------------------------------------------------------------|---|-----------------------------------------------------------------------------------------------------------------|----------|---| -| KubeCon EU | | May 16-20 2022 | week 0 | | -| Start of Release Cycle | Lead | Monday 23rd May 2022 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Monday 23rd May 2022 | week 1 | | -| Schedule finalized | Lead | Friday 27th May 2022 | week 1 | | -| Team finalized | Lead | Friday 27th May 2022 | week 1 | | -| Start Release Notes Draft | Release Notes Lead | Tuesday 7th June 2022 | week 3 | | -| 1.25.0-alpha.1 released | Branch Manager | Wednesday 15th June 2022 | Week 4 | | -| Production Readiness Soft Freeze | Enhancements Lead | Thursday 16th June 2022 | week 4 | | -| **Begin [Enhancements Freeze]** | Enhancements Lead | 01:00 UTC Friday 24th June 2022 / 18:00 PDT Thursday 23rd June 2022 | week 5 | [master-blocking], [master-informing] | -| 1.25.0-alpha.2 released | Branch Manager | Tuesday 28th June 2022 | Week 6 | | -| Begin Friday APAC-friendly meetings | Lead | Friday 8th July 2022 | Week 7 | | -| 1.25.0-alpha.3 released | Branch Manager | Tuesday 19th July 2022 | Week 9 | | -| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 25th July 2022 | week 10 | [1.25-blocking], [master-blocking], [master-informing] | -| **Call for [Exceptions][Exception]** | Lead | Monday 25th July 2022 | week 10 | | -| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Monday 25th July 2022 | week 10 | | -| **Begin Feature blog freeze** | Comms Lead | 01:00 UTC Wednesday 27th July 2022 / 18:00 PDT Tuesday 26th July 2022 | week 10 | | -| Release retrospective part 1 | Community | 17:00 UTC Wednesday 27th July 2022 / 10:00 PDT Wednesday 27th July 2022 | week 10 | | -| Burndown Meetings daily | Lead | Monday 1st August 2022 | week 11 | | -| **Begin [Code Freeze]** | Branch Manager | 01:00 UTC Wednesday 3rd August 2022 / 02:00 BST Wednesday 3rd August 2022 / 18:00 PDT Tuesday 2nd August 2022 | week 11 | | -| 1.25.0-beta.0 released | Branch Manager | Thursday 4th August 2022 | week 11 | | -| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 4th August 2022 | week 11 | | -| Deprecations and Removals blog published | Comms | Thursday 4th August 2022 | week 11 | | -| **[Test Freeze]** | Branch Manager | 01:00 UTC Wednesday 10th August 2022 / 02:00 BST Wednesday 10th August 2022 / 18:00 PDT Tuesday 9th August 2022 | week 12 | | -| Docs deadline — PRs ready for review | Docs Lead | Tuesday 9th August 2022 | week 12 | | -| 1.25.0-rc.0 released | Branch Manager | Tuesday 9th August 2022 | week 12 | | -| release-1.25 branch created | Branch Manager | Tuesday 9th August 2022 | week 12 | | -| release-1.25 jobs created | Branch Manager | Tuesday 9th August 2022 | week 12 || -| Start final draft of Release Notes | Release Notes Lead | Tuesday 9th August 2022 | week 12 | | -| Release blog ready to review | Comms / Docs | 01:00 UTC Wednesday 10th August 2022 / 02:00 BST Wednesday 10th August 2022 / 18:00 PDT Tuesday 9th August 2022 | week 12 | | -| Major Themes complete | Release Notes Lead | Tuesday 16th August 2022 | week 13 | | -| Docs complete — All PRs reviewed and ready to merge | Docs Lead | Tuesday 16th August 2022 | week 13 | | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Tuesday 16th August 2022 | week 13 | | -| 1.25.0-rc.1 released | Branch Manager | Tuesday 16th August 2022 | week 13 | | -| Release Notes complete — reviewed & merged to `k/k` | Release Notes Lead | 01:00 UTC Friday 19th August 2022 / 02:00 BST Friday 19th August 2022 / 18:00 PDT Thursday 18th August 2022 | week 13 | | -| **v1.25.0 released** | Branch Manager | Tuesday 23rd August 2022 | week 14 | | -| Release blog published | Comms | Tuesday 23rd August 2022 | week 14 | | -| **[Thaw]** | Branch Manager | Tuesday 23rd August 2022 | week 14 | | -| Release retrospective part 2 (**Time TBC**) | Community | TBC | week 15 | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[k8s125-calendar]: https://bit.ly/k8s-release-cal -[Internal Contact Info]: https://bit.ly/k8s125-contacts -[Retrospective Document]: https://bit.ly/k8s125-retro - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Thaw]: ../release_phases.md#thaw -[Test Freeze]: ../release_phases.md#test-freeze - -[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.25-blocking]: https://testgrid.k8s.io/sig-release-1.25-blocking#Summary - -[exception requests]: ../EXCEPTIONS.md -[release phases document]: ../release_phases.md +--- +title: "Kubernetes 1.25 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.25: Combiner + +<p align="center"> + <img src="./logo/main-logo.png" height="500" alt="Kubernetes 1.25 Release Logo" /> +</p> + +Kubernetes 1.25 is named *Combiner*, to the combined force capable of changing the world! + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.25/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.25/release-team.md) +* [Meeting Minutes](http://bit.ly/k8s125-releasemtg) (members of [release-team@] receive meeting invites) +* [v1.25 Release Calendar][k8s125-calendar] +* Contact: [#sig-release] on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail +* [Internal Contact Info] (accessible only to members of [release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Sheet](https://bit.ly/k8s125-enhancements) +* [Feature blog Tracking Sheet](http://bit.ly/k8s125-feature-blog) +* [Bug Triage Tracking Sheet](https://bit.ly/k8s125-bug-triage-tracking) +* [CI Signal Project Board & Issue Tracking](https://github.com/orgs/kubernetes/projects/68) +* [Retrospective Document][Retrospective Document] +* [kubernetes/sig-release v1.25 milestone](https://github.com/kubernetes/kubernetes/milestone/58) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## Summary + +The 1.25 release cycle is as follows: + +- **Monday 23rd May 2022**: Week 1 — Release cycle begins +- **Thursday 16th June 2022**: Week 4 — [Production Readiness Soft Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) +- **01:00 UTC Friday 24th June 2022** / **18:00 PDT Thursday 23rd June 2022** : Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **Wednesday 27th July 2022**: Week 10 — [Release Retrospective][Retrospective Document] part 1 +- **01:00 UTC Wednesday 3rd August 2022** / **02:00 BST Wednesday 3rd August 2022** / **18:00 PDT Tuesday 2nd August 2022**: Week 11 — [Code Freeze](../release_phases.md#code-freeze) +- **01:00 UTC Wednesday 10th August 2022** / **02:00 BST Wednesday 10th August 2022** / **18:00 PDT Tuesday 9th August 2022**: Week 12 — [Test Freeze](../release_phases.md#test-freeze) +- **Tuesday 16th August 2022**: Week 13 — Docs must be completed and reviewed +- **Tuesday 23rd August 2022**: Week 14 — Kubernetes v1.25.0 released +- **TBC**: Week 16 — [Release Retrospective][Retrospective Document] part 2 + +## Timeline + +| **What** | **Who** | **When** | **Week** | **CI Signal** | +|---------------------------------------------------------------|---|-----------------------------------------------------------------------------------------------------------------|----------|---| +| KubeCon EU | | May 16-20 2022 | week 0 | | +| Start of Release Cycle | Lead | Monday 23rd May 2022 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Monday 23rd May 2022 | week 1 | | +| Schedule finalized | Lead | Friday 27th May 2022 | week 1 | | +| Team finalized | Lead | Friday 27th May 2022 | week 1 | | +| Start Release Notes Draft | Release Notes Lead | Tuesday 7th June 2022 | week 3 | | +| 1.25.0-alpha.1 released | Branch Manager | Wednesday 15th June 2022 | Week 4 | | +| Production Readiness Soft Freeze | Enhancements Lead | Thursday 16th June 2022 | week 4 | | +| **Begin [Enhancements Freeze]** | Enhancements Lead | 01:00 UTC Friday 24th June 2022 / 18:00 PDT Thursday 23rd June 2022 | week 5 | [master-blocking], [master-informing] | +| 1.25.0-alpha.2 released | Branch Manager | Tuesday 28th June 2022 | Week 6 | | +| Begin Friday APAC-friendly meetings | Lead | Friday 8th July 2022 | Week 7 | | +| 1.25.0-alpha.3 released | Branch Manager | Tuesday 19th July 2022 | Week 9 | | +| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 25th July 2022 | week 10 | [1.25-blocking], [master-blocking], [master-informing] | +| **Call for [Exceptions][Exception]** | Lead | Monday 25th July 2022 | week 10 | | +| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Monday 25th July 2022 | week 10 | | +| **Begin Feature blog freeze** | Comms Lead | 01:00 UTC Wednesday 27th July 2022 / 18:00 PDT Tuesday 26th July 2022 | week 10 | | +| Release retrospective part 1 | Community | 17:00 UTC Wednesday 27th July 2022 / 10:00 PDT Wednesday 27th July 2022 | week 10 | | +| Burndown Meetings daily | Lead | Monday 1st August 2022 | week 11 | | +| **Begin [Code Freeze]** | Branch Manager | 01:00 UTC Wednesday 3rd August 2022 / 02:00 BST Wednesday 3rd August 2022 / 18:00 PDT Tuesday 2nd August 2022 | week 11 | | +| 1.25.0-beta.0 released | Branch Manager | Thursday 4th August 2022 | week 11 | | +| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 4th August 2022 | week 11 | | +| Deprecations and Removals blog published | Comms | Thursday 4th August 2022 | week 11 | | +| **[Test Freeze]** | Branch Manager | 01:00 UTC Wednesday 10th August 2022 / 02:00 BST Wednesday 10th August 2022 / 18:00 PDT Tuesday 9th August 2022 | week 12 | | +| Docs deadline — PRs ready for review | Docs Lead | Tuesday 9th August 2022 | week 12 | | +| 1.25.0-rc.0 released | Branch Manager | Tuesday 9th August 2022 | week 12 | | +| release-1.25 branch created | Branch Manager | Tuesday 9th August 2022 | week 12 | | +| release-1.25 jobs created | Branch Manager | Tuesday 9th August 2022 | week 12 || +| Start final draft of Release Notes | Release Notes Lead | Tuesday 9th August 2022 | week 12 | | +| Release blog ready to review | Comms / Docs | 01:00 UTC Wednesday 10th August 2022 / 02:00 BST Wednesday 10th August 2022 / 18:00 PDT Tuesday 9th August 2022 | week 12 | | +| Major Themes complete | Release Notes Lead | Tuesday 16th August 2022 | week 13 | | +| Docs complete — All PRs reviewed and ready to merge | Docs Lead | Tuesday 16th August 2022 | week 13 | | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Tuesday 16th August 2022 | week 13 | | +| 1.25.0-rc.1 released | Branch Manager | Tuesday 16th August 2022 | week 13 | | +| Release Notes complete — reviewed & merged to `k/k` | Release Notes Lead | 01:00 UTC Friday 19th August 2022 / 02:00 BST Friday 19th August 2022 / 18:00 PDT Thursday 18th August 2022 | week 13 | | +| **v1.25.0 released** | Branch Manager | Tuesday 23rd August 2022 | week 14 | | +| Release blog published | Comms | Tuesday 23rd August 2022 | week 14 | | +| **[Thaw]** | Branch Manager | Tuesday 23rd August 2022 | week 14 | | +| Release retrospective part 2 (**Time TBC**) | Community | TBC | week 15 | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[k8s125-calendar]: https://bit.ly/k8s-release-cal +[Internal Contact Info]: https://bit.ly/k8s125-contacts +[Retrospective Document]: https://bit.ly/k8s125-retro + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Thaw]: ../release_phases.md#thaw +[Test Freeze]: ../release_phases.md#test-freeze + +[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.25-blocking]: https://testgrid.k8s.io/sig-release-1.25-blocking#Summary + +[exception requests]: ../EXCEPTIONS.md +[release phases document]: ../release_phases.md diff --git a/releases/release-1.25/exceptions.yaml b/releases/release-1.25/exceptions.yaml index eeeb06f434b..4dce70e0020 100644 --- a/releases/release-1.25/exceptions.yaml +++ b/releases/release-1.25/exceptions.yaml @@ -1,138 +1,138 @@ -# Exception requests in 1.25 -# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release -# Release Team Lead: Cici Huang ([@cici37](https://github.com/cici37)) -# Release Team Shadows: Xander Grzywinski ([@Xander](https://github.com/salaxander) -# / Grace Nguyen([@Grace Nguyen](https://github.com/gracenng) -# / Leonard Vincent Simon Pahlke ([@leonardpahlke](https://github.com/leonardpahlke) -# / Jesse Butler ([@Jesse Butler](https://github.com/jlbutler) - -# Enhancements Freeze Exceptions requested in 1.25 - -enhancementFreeze: -- name: "Add configurable grace period to probes" - issue: 2238 - date_requested: 2022-06-27 - date_reviewed: 2022-06-27 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/FExKoavieAM" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/3408" - status: "approved" - - -# Code Freeze Exceptions requested in 1.25 - -codeFreeze: -- name: "Deprecate GlusterFS in-tree driver in 1.25 release" - issue: 3346 - date_requested: 2022-07-29 - date_reviewed: 2022-08-01 - thread: "https://groups.google.com/a/kubernetes.io/g/release-team/c/7fDmeHqVcrs" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/111485" - status: "approved" - -- name: "In-place Update of Pod Resources" - issue: 1287 - date_requested: 2022-07-30 - date_reviewed: 2021-08-03 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/ztEx9R1M7qo" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/102884" - status: "denied" - -- name: "Retriable and non-retriable Pod failures for Jobs" - issue: 3329 - date_requested: 2022-08-01 - date_reviewed: 2022-08-02 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/EBdL_-Jhv_s" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/110959" - - "https://github.com/kubernetes/kubernetes/pull/111475" - - "https://github.com/kubernetes/kubernetes/pull/111113" - status: "approved" - -- name: "Retriable and non-retriable Pod failures for Jobs" - issue: 2133 - date_requested: 2022-08-02 - date_reviewed: 2022-08-02 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/QLSFDAaeU2I/m/4BXw9UysAwAJ" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/111616" - - "https://github.com/kubernetes/enhancements/pull/111495" - status: "denied" - -- name: "Add support for user namespaces" - issue: 127 - date_requested: 2022-08-02 - date_reviewed: 2022-08-04 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/ASWlhA-tIxE" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/111090" - status: "approved" - -- name: "Kubelet Evented PLEG for Better Performance" - issue: 3386 - date_requested: 2022-08-03 - date_reviewed: 2022-08-04 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/sbazcyEswtw/m/XUxSokyNAgAJ" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/111642" - - "https://github.com/kubernetes/enhancements/pull/111384" - status: "denied" - -- name: "Enhanced NodeIPAM to support Discontiguous Cluster CIDR" - issue: 2593 - date_requested: 2022-08-03 - date_reviewed: 2022-08-04 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/U8etwqKzy64" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/111123" - - "https://github.com/kubernetes/kubernetes/pull/109090" - status: "approved" - -- name: "SELinux volume relabeling using mounts" - issue: 1710 - date_requested: 2022-08-03 - date_reviewed: 2022-08-03 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/8ZSzWqZDr7U" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/108744" - - "https://github.com/kubernetes/kubernetes/pull/108692" - status: "approved" - -- name: "KMS v2" - issue: 3299 - date_requested: 2022-08-03 - date_reviewed: 2022-08-03 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/Mr4UI69F2cQ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/111126" - status: "approved" - -- name: "Add webhook hosting capability to CCM framework." - issue: 2699 - date_requested: 2022-08-03 - date_reviewed: 2022-08-04 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/j7h4NKkwJ2o" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/108838" - status: "denied" - -- name: "cAdvisor-less, CRI-full Container and Pod Stats" - issue: 2371 - date_requested: 2022-08-03 - date_reviewed: 2022-08-04 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/h0m6Ah7d1f0" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/3439" - - "https://github.com/kubernetes/kubernetes/pull/110754" - status: "denied" - -- name: "CSI Inline Volume Support" - issue: 596 - date_requested: 2022-08-05 - date_reviewed: 2022-08-05 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/3kmMHPHXrgk/m/md41QANHAQAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/111258" - status: "approved" +# Exception requests in 1.25 +# Google Group: https://groups.google.com/forum/#!forum/kubernetes-sig-release +# Release Team Lead: Cici Huang ([@cici37](https://github.com/cici37)) +# Release Team Shadows: Xander Grzywinski ([@Xander](https://github.com/salaxander) +# / Grace Nguyen([@Grace Nguyen](https://github.com/gracenng) +# / Leonard Vincent Simon Pahlke ([@leonardpahlke](https://github.com/leonardpahlke) +# / Jesse Butler ([@Jesse Butler](https://github.com/jlbutler) + +# Enhancements Freeze Exceptions requested in 1.25 + +enhancementFreeze: +- name: "Add configurable grace period to probes" + issue: 2238 + date_requested: 2022-06-27 + date_reviewed: 2022-06-27 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/FExKoavieAM" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/3408" + status: "approved" + + +# Code Freeze Exceptions requested in 1.25 + +codeFreeze: +- name: "Deprecate GlusterFS in-tree driver in 1.25 release" + issue: 3346 + date_requested: 2022-07-29 + date_reviewed: 2022-08-01 + thread: "https://groups.google.com/a/kubernetes.io/g/release-team/c/7fDmeHqVcrs" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/111485" + status: "approved" + +- name: "In-place Update of Pod Resources" + issue: 1287 + date_requested: 2022-07-30 + date_reviewed: 2021-08-03 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/ztEx9R1M7qo" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/102884" + status: "denied" + +- name: "Retriable and non-retriable Pod failures for Jobs" + issue: 3329 + date_requested: 2022-08-01 + date_reviewed: 2022-08-02 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/EBdL_-Jhv_s" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/110959" + - "https://github.com/kubernetes/kubernetes/pull/111475" + - "https://github.com/kubernetes/kubernetes/pull/111113" + status: "approved" + +- name: "Retriable and non-retriable Pod failures for Jobs" + issue: 2133 + date_requested: 2022-08-02 + date_reviewed: 2022-08-02 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/QLSFDAaeU2I/m/4BXw9UysAwAJ" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/111616" + - "https://github.com/kubernetes/enhancements/pull/111495" + status: "denied" + +- name: "Add support for user namespaces" + issue: 127 + date_requested: 2022-08-02 + date_reviewed: 2022-08-04 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/ASWlhA-tIxE" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/111090" + status: "approved" + +- name: "Kubelet Evented PLEG for Better Performance" + issue: 3386 + date_requested: 2022-08-03 + date_reviewed: 2022-08-04 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/sbazcyEswtw/m/XUxSokyNAgAJ" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/111642" + - "https://github.com/kubernetes/enhancements/pull/111384" + status: "denied" + +- name: "Enhanced NodeIPAM to support Discontiguous Cluster CIDR" + issue: 2593 + date_requested: 2022-08-03 + date_reviewed: 2022-08-04 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/U8etwqKzy64" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/111123" + - "https://github.com/kubernetes/kubernetes/pull/109090" + status: "approved" + +- name: "SELinux volume relabeling using mounts" + issue: 1710 + date_requested: 2022-08-03 + date_reviewed: 2022-08-03 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/8ZSzWqZDr7U" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/108744" + - "https://github.com/kubernetes/kubernetes/pull/108692" + status: "approved" + +- name: "KMS v2" + issue: 3299 + date_requested: 2022-08-03 + date_reviewed: 2022-08-03 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/Mr4UI69F2cQ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/111126" + status: "approved" + +- name: "Add webhook hosting capability to CCM framework." + issue: 2699 + date_requested: 2022-08-03 + date_reviewed: 2022-08-04 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/j7h4NKkwJ2o" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/108838" + status: "denied" + +- name: "cAdvisor-less, CRI-full Container and Pod Stats" + issue: 2371 + date_requested: 2022-08-03 + date_reviewed: 2022-08-04 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/h0m6Ah7d1f0" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/3439" + - "https://github.com/kubernetes/kubernetes/pull/110754" + status: "denied" + +- name: "CSI Inline Volume Support" + issue: 596 + date_requested: 2022-08-05 + date_reviewed: 2022-08-05 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/3kmMHPHXrgk/m/md41QANHAQAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/111258" + status: "approved" diff --git a/releases/release-1.25/logo/README.md b/releases/release-1.25/logo/README.md index 5c3f84d31d4..77ab61d9ecc 100644 --- a/releases/release-1.25/logo/README.md +++ b/releases/release-1.25/logo/README.md @@ -1,12 +1,12 @@ -# Combiner Release Logo - -The Kubernetes project itself is made up of many, many individual components that, when combined, take the form of the project you see today. It is also built and maintained by many individuals, all of them with different skills, experiences, histories, and interests, who join forces not just as the release team but as the many SIGs that support the project and the community year-round. - -With this release we wish to honor the collaborative, open spirit that takes us from isolated developers, writers, and users spread around the globe to a combined force capable of changing the world. Kubernetes v1.25 includes a staggering 40 enhancements, none of which would exist without the incredible power we have when we work together. - -Inspired by our release lead's son, Albert Song, Kubernetes v1.25 is named for each and every one of you, no matter how you choose to contribute your unique power to the combined force that becomes Kubernetes. - - -Two versions of the logo are provided: the main logo and a small logo. The small logo is intended for use at 128×128 pixels, such as a Slack react. All other uses should use the main logo. - +# Combiner Release Logo + +The Kubernetes project itself is made up of many, many individual components that, when combined, take the form of the project you see today. It is also built and maintained by many individuals, all of them with different skills, experiences, histories, and interests, who join forces not just as the release team but as the many SIGs that support the project and the community year-round. + +With this release we wish to honor the collaborative, open spirit that takes us from isolated developers, writers, and users spread around the globe to a combined force capable of changing the world. Kubernetes v1.25 includes a staggering 40 enhancements, none of which would exist without the incredible power we have when we work together. + +Inspired by our release lead's son, Albert Song, Kubernetes v1.25 is named for each and every one of you, no matter how you choose to contribute your unique power to the combined force that becomes Kubernetes. + + +Two versions of the logo are provided: the main logo and a small logo. The small logo is intended for use at 128×128 pixels, such as a Slack react. All other uses should use the main logo. + Both are provided in PNG format. \ No newline at end of file diff --git a/releases/release-1.25/release-notes/maps/pr-101882-map.yaml b/releases/release-1.25/release-notes/maps/pr-101882-map.yaml index c69d318144c..5d050b27b86 100644 --- a/releases/release-1.25/release-notes/maps/pr-101882-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-101882-map.yaml @@ -1,3 +1,3 @@ -pr: 101882 -releasenote: - text: 'Kubelet: wait for node allocatable ephemeral-storage data.' +pr: 101882 +releasenote: + text: 'Kubelet: wait for node allocatable ephemeral-storage data.' diff --git a/releases/release-1.25/release-notes/maps/pr-103523-map.yaml b/releases/release-1.25/release-notes/maps/pr-103523-map.yaml index eb012a64be1..a727d349c27 100644 --- a/releases/release-1.25/release-notes/maps/pr-103523-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-103523-map.yaml @@ -1,4 +1,4 @@ -pr: 103523 -releasenote: - text: | - `CSIMigrationvSphere` feature is now enabled by default. +pr: 103523 +releasenote: + text: | + `CSIMigrationvSphere` feature is now enabled by default. diff --git a/releases/release-1.25/release-notes/maps/pr-104484-map.yaml b/releases/release-1.25/release-notes/maps/pr-104484-map.yaml index 15d7be8ef62..d0b900a7659 100644 --- a/releases/release-1.25/release-notes/maps/pr-104484-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-104484-map.yaml @@ -1,3 +1,3 @@ -pr: 104484 -releasenote: - text: Added container probe duration metrics. +pr: 104484 +releasenote: + text: Added container probe duration metrics. diff --git a/releases/release-1.25/release-notes/maps/pr-105100-map.yaml b/releases/release-1.25/release-notes/maps/pr-105100-map.yaml index b29948a1874..403a0d5f94d 100644 --- a/releases/release-1.25/release-notes/maps/pr-105100-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-105100-map.yaml @@ -1,3 +1,3 @@ -pr: 105100 -releasenote: - text: Added sum feature to `kubectl top pod` +pr: 105100 +releasenote: + text: Added sum feature to `kubectl top pod` diff --git a/releases/release-1.25/release-notes/maps/pr-105797-map.yaml b/releases/release-1.25/release-notes/maps/pr-105797-map.yaml index 7d541bdc67d..356075f38f0 100644 --- a/releases/release-1.25/release-notes/maps/pr-105797-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-105797-map.yaml @@ -1,5 +1,5 @@ -pr: 105797 -releasenote: - text: The Go API for logging configuration in `k8s.io/component-base` was moved - to `k8s.io/component-base/logs/api/v1`. The configuration file format and command - line flags are the same as before. +pr: 105797 +releasenote: + text: The Go API for logging configuration in `k8s.io/component-base` was moved + to `k8s.io/component-base/logs/api/v1`. The configuration file format and command + line flags are the same as before. diff --git a/releases/release-1.25/release-notes/maps/pr-105919-map.yaml b/releases/release-1.25/release-notes/maps/pr-105919-map.yaml index 9c2534af9d4..5341387cd31 100644 --- a/releases/release-1.25/release-notes/maps/pr-105919-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-105919-map.yaml @@ -1,9 +1,9 @@ -pr: 105919 -releasenote: - text: 'As of v1.25, the PodSecurity `restricted` level no longer requires pods that - set .spec.os.name="windows" to also set Linux-specific securityContext fields. - If a 1.25+ cluster has unsupported [out-of-skew](https://kubernetes.io/releases/version-skew-policy/#kubelet) - nodes prior to v1.23 and wants to ensure namespaces enforcing the `restricted` - policy continue to require Linux-specific securityContext fields on all pods, - ensure a version of the `restricted` prior to v1.25 is selected by labeling the - namespace (for example, `pod-security.kubernetes.io/enforce-version: v1.24`)' +pr: 105919 +releasenote: + text: 'As of v1.25, the PodSecurity `restricted` level no longer requires pods that + set .spec.os.name="windows" to also set Linux-specific securityContext fields. + If a 1.25+ cluster has unsupported [out-of-skew](https://kubernetes.io/releases/version-skew-policy/#kubelet) + nodes prior to v1.23 and wants to ensure namespaces enforcing the `restricted` + policy continue to require Linux-specific securityContext fields on all pods, + ensure a version of the `restricted` prior to v1.25 is selected by labeling the + namespace (for example, `pod-security.kubernetes.io/enforce-version: v1.24`)' diff --git a/releases/release-1.25/release-notes/maps/pr-105936-map.yaml b/releases/release-1.25/release-notes/maps/pr-105936-map.yaml index 571556f981c..1ef13645aa3 100644 --- a/releases/release-1.25/release-notes/maps/pr-105936-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-105936-map.yaml @@ -1,3 +1,3 @@ -pr: 105936 -releasenote: - text: Do not raise an error when setting a label with the same value, ignore it. +pr: 105936 +releasenote: + text: Do not raise an error when setting a label with the same value, ignore it. diff --git a/releases/release-1.25/release-notes/maps/pr-105963-map.yaml b/releases/release-1.25/release-notes/maps/pr-105963-map.yaml index c948c854070..13e43a4323d 100644 --- a/releases/release-1.25/release-notes/maps/pr-105963-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-105963-map.yaml @@ -1,7 +1,7 @@ -pr: 105963 -releasenote: - text: This release added support for `NodeExpandSecret` for CSI driver client which - enables the CSI drivers to make use of this secret while performing node expansion - operation based on the user request. Previously there was no secret provided - as part of the `nodeexpansion` call, thus CSI drivers did not make use of the same - while expanding the volume at the node side. +pr: 105963 +releasenote: + text: This release added support for `NodeExpandSecret` for CSI driver client which + enables the CSI drivers to make use of this secret while performing node expansion + operation based on the user request. Previously there was no secret provided + as part of the `nodeexpansion` call, thus CSI drivers did not make use of the same + while expanding the volume at the node side. diff --git a/releases/release-1.25/release-notes/maps/pr-107329-map.yaml b/releases/release-1.25/release-notes/maps/pr-107329-map.yaml index b51dc9aa75f..672c3fd0451 100644 --- a/releases/release-1.25/release-notes/maps/pr-107329-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-107329-map.yaml @@ -1,3 +1,3 @@ -pr: 107329 -releasenote: - text: Promoted LocalStorageCapacityIsolationFSQuotaMonitoring to beta. +pr: 107329 +releasenote: + text: Promoted LocalStorageCapacityIsolationFSQuotaMonitoring to beta. diff --git a/releases/release-1.25/release-notes/maps/pr-107490-map.yaml b/releases/release-1.25/release-notes/maps/pr-107490-map.yaml index 2eb2f6f6fa7..486752f9f31 100644 --- a/releases/release-1.25/release-notes/maps/pr-107490-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-107490-map.yaml @@ -1,3 +1,3 @@ -pr: 107490 -releasenote: - text: 'kubelet: added log for volume metric collection taking too long' +pr: 107490 +releasenote: + text: 'kubelet: added log for volume metric collection taking too long' diff --git a/releases/release-1.25/release-notes/maps/pr-107787-map.yaml b/releases/release-1.25/release-notes/maps/pr-107787-map.yaml index 46f0dacc860..8c315822b78 100644 --- a/releases/release-1.25/release-notes/maps/pr-107787-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-107787-map.yaml @@ -1,3 +1,3 @@ -pr: 107787 -releasenote: - text: Fixed bug where CSI migration doesn't count inline volumes for attach limit. +pr: 107787 +releasenote: + text: Fixed bug where CSI migration doesn't count inline volumes for attach limit. diff --git a/releases/release-1.25/release-notes/maps/pr-108414-map.yaml b/releases/release-1.25/release-notes/maps/pr-108414-map.yaml index 57fc0ed88ca..b34a2905309 100644 --- a/releases/release-1.25/release-notes/maps/pr-108414-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-108414-map.yaml @@ -1,5 +1,5 @@ -pr: 108414 -releasenote: - text: 'kube-apiserver: Get, GetList and Watch requests that should be served by - the apiserver cacher during shutdown will be rejected to avoid a deadlock situation - leaving requests hanging.' +pr: 108414 +releasenote: + text: 'kube-apiserver: Get, GetList and Watch requests that should be served by + the apiserver cacher during shutdown will be rejected to avoid a deadlock situation + leaving requests hanging.' diff --git a/releases/release-1.25/release-notes/maps/pr-108447-map.yaml b/releases/release-1.25/release-notes/maps/pr-108447-map.yaml index ac89e4eca3c..7a8ac558c50 100644 --- a/releases/release-1.25/release-notes/maps/pr-108447-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-108447-map.yaml @@ -1,4 +1,4 @@ -pr: 108447 -releasenote: - text: 'Kubeadm: support experimental JSON/YAML output for `kubeadm upgrade plan` - with the `--output` flag.' +pr: 108447 +releasenote: + text: 'Kubeadm: support experimental JSON/YAML output for `kubeadm upgrade plan` + with the `--output` flag.' diff --git a/releases/release-1.25/release-notes/maps/pr-108476-map.yaml b/releases/release-1.25/release-notes/maps/pr-108476-map.yaml index 815b4131143..9faf707aca0 100644 --- a/releases/release-1.25/release-notes/maps/pr-108476-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-108476-map.yaml @@ -1,5 +1,5 @@ -pr: 108476 -releasenote: - text: The kube-controller-manager's deprecated `--experimental-cluster-signing-duration` - flag is now removed. Adapt your machinery to use the `--cluster-signing-duration` - flag that is available since v1.19. +pr: 108476 +releasenote: + text: The kube-controller-manager's deprecated `--experimental-cluster-signing-duration` + flag is now removed. Adapt your machinery to use the `--cluster-signing-duration` + flag that is available since v1.19. diff --git a/releases/release-1.25/release-notes/maps/pr-108492-map.yaml b/releases/release-1.25/release-notes/maps/pr-108492-map.yaml index 945c9386fce..4f21e404dc2 100644 --- a/releases/release-1.25/release-notes/maps/pr-108492-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-108492-map.yaml @@ -1,3 +1,3 @@ -pr: 108492 -releasenote: - text: Add `NodeInclusionPolicy` to `TopologySpreadConstraints` in PodSpec. +pr: 108492 +releasenote: + text: Add `NodeInclusionPolicy` to `TopologySpreadConstraints` in PodSpec. diff --git a/releases/release-1.25/release-notes/maps/pr-108541-map.yaml b/releases/release-1.25/release-notes/maps/pr-108541-map.yaml index 4a50c365403..5b7ba19e2f7 100644 --- a/releases/release-1.25/release-notes/maps/pr-108541-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-108541-map.yaml @@ -1,3 +1,3 @@ -pr: 108541 -releasenote: - text: Feature gate `ProbeTerminationGracePeriod` is enabled by default. +pr: 108541 +releasenote: + text: Feature gate `ProbeTerminationGracePeriod` is enabled by default. diff --git a/releases/release-1.25/release-notes/maps/pr-108554-map.yaml b/releases/release-1.25/release-notes/maps/pr-108554-map.yaml index 8bb43dad08c..4e4a2427e8f 100644 --- a/releases/release-1.25/release-notes/maps/pr-108554-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-108554-map.yaml @@ -1,3 +1,3 @@ -pr: 108554 -releasenote: - text: Added a deprecated warning for node beta label usage in PV/SC/RC and CSI Storage Capacity. +pr: 108554 +releasenote: + text: Added a deprecated warning for node beta label usage in PV/SC/RC and CSI Storage Capacity. diff --git a/releases/release-1.25/release-notes/maps/pr-108624-map.yaml b/releases/release-1.25/release-notes/maps/pr-108624-map.yaml index 777f7c5c6f6..e70bde6d317 100644 --- a/releases/release-1.25/release-notes/maps/pr-108624-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-108624-map.yaml @@ -1,4 +1,4 @@ -pr: 108624 -releasenote: - text: API server's deprecated `--service-account-api-audiences` flag was removed. Use - `--api-audiences` instead. +pr: 108624 +releasenote: + text: API server's deprecated `--service-account-api-audiences` flag was removed. Use + `--api-audiences` instead. diff --git a/releases/release-1.25/release-notes/maps/pr-108777-map.yaml b/releases/release-1.25/release-notes/maps/pr-108777-map.yaml index d40a23c8746..e9fb12ae5c6 100644 --- a/releases/release-1.25/release-notes/maps/pr-108777-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-108777-map.yaml @@ -1,3 +1,3 @@ -pr: 108777 -releasenote: - text: 'kubectl: support multiple resources for kubectl rollout status.' +pr: 108777 +releasenote: + text: 'kubectl: support multiple resources for kubectl rollout status.' diff --git a/releases/release-1.25/release-notes/maps/pr-109070-map.yaml b/releases/release-1.25/release-notes/maps/pr-109070-map.yaml index b0bc2b349c9..ba00b867d17 100644 --- a/releases/release-1.25/release-notes/maps/pr-109070-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109070-map.yaml @@ -1,3 +1,3 @@ -pr: 109070 -releasenote: - text: Shell completion is now provided for the "--subresource" flag. +pr: 109070 +releasenote: + text: Shell completion is now provided for the "--subresource" flag. diff --git a/releases/release-1.25/release-notes/maps/pr-109090-map.yaml b/releases/release-1.25/release-notes/maps/pr-109090-map.yaml index 3120050f56a..17f472fdaa9 100644 --- a/releases/release-1.25/release-notes/maps/pr-109090-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109090-map.yaml @@ -1,6 +1,6 @@ -pr: 109090 -releasenote: - text: |- - Introduced NodeIPAM support for multiple ClusterCIDRs ([#2593](https://github.com/kubernetes/enhancements/issues/2593)) as an alpha feature. - Set feature gate `MultiCIDRRangeAllocator=true`, determines whether the `MultiCIDRRangeAllocator` controller can be used, while the kube-controller-manager flag below will pick the active controller. - Enabled the `MultiCIDRRangeAllocator` by setting `--cidr-allocator-type=MultiCIDRRangeAllocator` flag in kube-controller-manager. +pr: 109090 +releasenote: + text: |- + Introduced NodeIPAM support for multiple ClusterCIDRs ([#2593](https://github.com/kubernetes/enhancements/issues/2593)) as an alpha feature. + Set feature gate `MultiCIDRRangeAllocator=true`, determines whether the `MultiCIDRRangeAllocator` controller can be used, while the kube-controller-manager flag below will pick the active controller. + Enabled the `MultiCIDRRangeAllocator` by setting `--cidr-allocator-type=MultiCIDRRangeAllocator` flag in kube-controller-manager. diff --git a/releases/release-1.25/release-notes/maps/pr-109124-map.yaml b/releases/release-1.25/release-notes/maps/pr-109124-map.yaml index f255ed50e31..8092792d283 100644 --- a/releases/release-1.25/release-notes/maps/pr-109124-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109124-map.yaml @@ -1,3 +1,3 @@ -pr: 109124 -releasenote: - text: Reduced duration to sync proxy rules on Windows `kube-proxy` when using `kernelspace` mode. +pr: 109124 +releasenote: + text: Reduced duration to sync proxy rules on Windows `kube-proxy` when using `kernelspace` mode. diff --git a/releases/release-1.25/release-notes/maps/pr-109141-map.yaml b/releases/release-1.25/release-notes/maps/pr-109141-map.yaml index b2b0f336adb..f3a13e1d1ec 100644 --- a/releases/release-1.25/release-notes/maps/pr-109141-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109141-map.yaml @@ -1,3 +1,3 @@ -pr: 109141 -releasenote: - text: Default burst limit for the discovery client set to 300. +pr: 109141 +releasenote: + text: Default burst limit for the discovery client set to 300. diff --git a/releases/release-1.25/release-notes/maps/pr-109217-map.yaml b/releases/release-1.25/release-notes/maps/pr-109217-map.yaml index a26ad361af1..40a09963391 100644 --- a/releases/release-1.25/release-notes/maps/pr-109217-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109217-map.yaml @@ -1,5 +1,5 @@ -pr: 109217 -releasenote: - text: Faster mount detection for linux kernel 5.10+ using openat2 speeding up pod - churn rates. On Kernel versions less 5.10, it will fallback to using the original - way of detecting mount points i.e by parsing /proc/mounts. +pr: 109217 +releasenote: + text: Faster mount detection for linux kernel 5.10+ using openat2 speeding up pod + churn rates. On Kernel versions less 5.10, it will fallback to using the original + way of detecting mount points i.e by parsing /proc/mounts. diff --git a/releases/release-1.25/release-notes/maps/pr-109250-map.yaml b/releases/release-1.25/release-notes/maps/pr-109250-map.yaml index 336d38a1385..9673e7dd787 100644 --- a/releases/release-1.25/release-notes/maps/pr-109250-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109250-map.yaml @@ -1,3 +1,3 @@ -pr: 109250 -releasenote: - text: Fixed scheduling of **CronJob** with `@every X` schedules. +pr: 109250 +releasenote: + text: Fixed scheduling of **CronJob** with `@every X` schedules. diff --git a/releases/release-1.25/release-notes/maps/pr-109251-map.yaml b/releases/release-1.25/release-notes/maps/pr-109251-map.yaml index 1e1a639d9d6..89e4eb9c323 100644 --- a/releases/release-1.25/release-notes/maps/pr-109251-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109251-map.yaml @@ -1,6 +1,6 @@ -pr: 109251 -releasenote: - text: | - `MaxUnavailable` for `StatefulSets`, allows faster `RollingUpdate` by taking down more than 1 pod at a time. - The number of pods you want to take down during a `RollingUpdate` is configurable using `maxUnavailable` parameter. - +pr: 109251 +releasenote: + text: | + `MaxUnavailable` for `StatefulSets`, allows faster `RollingUpdate` by taking down more than 1 pod at a time. + The number of pods you want to take down during a `RollingUpdate` is configurable using `maxUnavailable` parameter. + diff --git a/releases/release-1.25/release-notes/maps/pr-109254-map.yaml b/releases/release-1.25/release-notes/maps/pr-109254-map.yaml index 84b39150deb..7a971a6dc14 100644 --- a/releases/release-1.25/release-notes/maps/pr-109254-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109254-map.yaml @@ -1,3 +1,3 @@ -pr: 109254 -releasenote: - text: Removed deprecated kubectl.kubernetes.io/default-logs-container support +pr: 109254 +releasenote: + text: Removed deprecated kubectl.kubernetes.io/default-logs-container support diff --git a/releases/release-1.25/release-notes/maps/pr-109263-map.yaml b/releases/release-1.25/release-notes/maps/pr-109263-map.yaml index 1238ca07af8..d948489949b 100644 --- a/releases/release-1.25/release-notes/maps/pr-109263-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109263-map.yaml @@ -1,4 +1,4 @@ -pr: 109263 -releasenote: - text: 'kubelet: added validation for labels provided with --node-labels. Malformed - labels will result in errors.' +pr: 109263 +releasenote: + text: 'kubelet: added validation for labels provided with --node-labels. Malformed + labels will result in errors.' diff --git a/releases/release-1.25/release-notes/maps/pr-109268-map.yaml b/releases/release-1.25/release-notes/maps/pr-109268-map.yaml index 0aeee48b475..5ff82aa590f 100644 --- a/releases/release-1.25/release-notes/maps/pr-109268-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109268-map.yaml @@ -1,4 +1,4 @@ -pr: 109268 -releasenote: - text: Fixed strict server-side field validation treating `metadata` fields as unknown - fields. +pr: 109268 +releasenote: + text: Fixed strict server-side field validation treating `metadata` fields as unknown + fields. diff --git a/releases/release-1.25/release-notes/maps/pr-109388-map.yaml b/releases/release-1.25/release-notes/maps/pr-109388-map.yaml index c9eabee5038..100f8c7f281 100644 --- a/releases/release-1.25/release-notes/maps/pr-109388-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109388-map.yaml @@ -1,4 +1,4 @@ -pr: 109388 -releasenote: - text: kubelet's deprecated `--experimental-kernel-memcg-notification` flag is now - removed. Use `--kernel-memcg-notification` instead. +pr: 109388 +releasenote: + text: kubelet's deprecated `--experimental-kernel-memcg-notification` flag is now + removed. Use `--kernel-memcg-notification` instead. diff --git a/releases/release-1.25/release-notes/maps/pr-109435-map.yaml b/releases/release-1.25/release-notes/maps/pr-109435-map.yaml index 70eddbe31f9..ef9f8f0b7a0 100644 --- a/releases/release-1.25/release-notes/maps/pr-109435-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109435-map.yaml @@ -1,7 +1,7 @@ -pr: 109435 -releasenote: - text: 'Feature gates that graduated to GA in 1.23 or earlier and were unconditionally - enabled have been removed: CSIServiceAccountToken, ConfigurableFSGroupPolicy, - EndpointSlice, EndpointSliceNodeName, EndpointSliceProxying, GenericEphemeralVolume, - IPv6DualStack, IngressClassNamespacedParams, StorageObjectInUseProtection, TTLAfterFinished, - VolumeSubpath, WindowsEndpointSliceProxying.' +pr: 109435 +releasenote: + text: 'Feature gates that graduated to GA in 1.23 or earlier and were unconditionally + enabled have been removed: CSIServiceAccountToken, ConfigurableFSGroupPolicy, + EndpointSlice, EndpointSliceNodeName, EndpointSliceProxying, GenericEphemeralVolume, + IPv6DualStack, IngressClassNamespacedParams, StorageObjectInUseProtection, TTLAfterFinished, + VolumeSubpath, WindowsEndpointSliceProxying.' diff --git a/releases/release-1.25/release-notes/maps/pr-109443-map.yaml b/releases/release-1.25/release-notes/maps/pr-109443-map.yaml index 396d9546c55..5977a7713a9 100644 --- a/releases/release-1.25/release-notes/maps/pr-109443-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109443-map.yaml @@ -1,3 +1,3 @@ -pr: 109443 -releasenote: - text: Added the `Apply` and `ApplyStatus` methods to the dynamic `ResourceInterface` +pr: 109443 +releasenote: + text: Added the `Apply` and `ApplyStatus` methods to the dynamic `ResourceInterface` diff --git a/releases/release-1.25/release-notes/maps/pr-109464-map.yaml b/releases/release-1.25/release-notes/maps/pr-109464-map.yaml index 53b7cf74f4f..ce681d5e9a6 100644 --- a/releases/release-1.25/release-notes/maps/pr-109464-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109464-map.yaml @@ -1,3 +1,3 @@ -pr: 109464 -releasenote: - text: Kubernetes binaries are now built-in `module` mode instead of `GOPATH` mode. +pr: 109464 +releasenote: + text: Kubernetes binaries are now built-in `module` mode instead of `GOPATH` mode. diff --git a/releases/release-1.25/release-notes/maps/pr-109479-map.yaml b/releases/release-1.25/release-notes/maps/pr-109479-map.yaml index 92f582d6627..1efee0486f8 100644 --- a/releases/release-1.25/release-notes/maps/pr-109479-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109479-map.yaml @@ -1,4 +1,4 @@ -pr: 109479 -releasenote: - text: New `KUBECACHEDIR` environment variable was introduced to override default - discovery cache directory which is `$HOME/.kube/cache`. +pr: 109479 +releasenote: + text: New `KUBECACHEDIR` environment variable was introduced to override default + discovery cache directory which is `$HOME/.kube/cache`. diff --git a/releases/release-1.25/release-notes/maps/pr-109486-map.yaml b/releases/release-1.25/release-notes/maps/pr-109486-map.yaml index 54dec6068fe..bff66010c82 100644 --- a/releases/release-1.25/release-notes/maps/pr-109486-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109486-map.yaml @@ -1,7 +1,7 @@ -pr: 109486 -releasenote: - text: |- - Fixed `JobTrackingWithFinalizers` that: - - was declaring a job finished before counting all the created pods in the status - - was leaving pods with finalizers, blocking pod and job deletions - `JobTrackingWithFinalizers` is still disabled by default. +pr: 109486 +releasenote: + text: |- + Fixed `JobTrackingWithFinalizers` that: + - was declaring a job finished before counting all the created pods in the status + - was leaving pods with finalizers, blocking pod and job deletions + `JobTrackingWithFinalizers` is still disabled by default. diff --git a/releases/release-1.25/release-notes/maps/pr-109510-map.yaml b/releases/release-1.25/release-notes/maps/pr-109510-map.yaml index 1ea61c58051..793399fe440 100644 --- a/releases/release-1.25/release-notes/maps/pr-109510-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109510-map.yaml @@ -1,6 +1,6 @@ -pr: 109510 -releasenote: - text: Added the latest GCE pinhole firewall feature, which introduces `destination-ranges` - in the ingress `firewall-rules`. It restricts access to the backend IPs by allowing - traffic through `ILB` or `NetLB` only. This change does **NOT** change the existing - `ILB` or `NetLB` behavior. +pr: 109510 +releasenote: + text: Added the latest GCE pinhole firewall feature, which introduces `destination-ranges` + in the ingress `firewall-rules`. It restricts access to the backend IPs by allowing + traffic through `ILB` or `NetLB` only. This change does **NOT** change the existing + `ILB` or `NetLB` behavior. diff --git a/releases/release-1.25/release-notes/maps/pr-109541-map.yaml b/releases/release-1.25/release-notes/maps/pr-109541-map.yaml index 62cdbbc33f9..91730b9ad56 100644 --- a/releases/release-1.25/release-notes/maps/pr-109541-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109541-map.yaml @@ -1,5 +1,5 @@ -pr: 109541 -releasenote: - text: In-tree GCE PD test cases no longer run in Kubernetes testing harness anymore - (side effect of switching on CSI migration in 1.22). Please switch on the environment - variable `ENABLE_STORAGE_GCE_PD_DRIVER` to `yes` if you need to run these tests. +pr: 109541 +releasenote: + text: In-tree GCE PD test cases no longer run in Kubernetes testing harness anymore + (side effect of switching on CSI migration in 1.22). Please switch on the environment + variable `ENABLE_STORAGE_GCE_PD_DRIVER` to `yes` if you need to run these tests. diff --git a/releases/release-1.25/release-notes/maps/pr-109563-map.yaml b/releases/release-1.25/release-notes/maps/pr-109563-map.yaml index bca9c11d2a1..1b646d4faab 100644 --- a/releases/release-1.25/release-notes/maps/pr-109563-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109563-map.yaml @@ -1,4 +1,4 @@ -pr: 109563 -releasenote: - text: The TopologySpreadConstraints will be shown in describe command for pods, - deployments, daemonsets, etc. +pr: 109563 +releasenote: + text: The TopologySpreadConstraints will be shown in describe command for pods, + deployments, daemonsets, etc. diff --git a/releases/release-1.25/release-notes/maps/pr-109579-map.yaml b/releases/release-1.25/release-notes/maps/pr-109579-map.yaml index 1ff69fc4256..cdfc9164964 100644 --- a/releases/release-1.25/release-notes/maps/pr-109579-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109579-map.yaml @@ -1,3 +1,3 @@ -pr: 109579 -releasenote: - text: Renamed `apiserver_watch_cache_watch_cache_initializations_total` to `apiserver_watch_cache_initializations_total` +pr: 109579 +releasenote: + text: Renamed `apiserver_watch_cache_watch_cache_initializations_total` to `apiserver_watch_cache_initializations_total` diff --git a/releases/release-1.25/release-notes/maps/pr-109601-map.yaml b/releases/release-1.25/release-notes/maps/pr-109601-map.yaml index 985827a0944..23e6300f51d 100644 --- a/releases/release-1.25/release-notes/maps/pr-109601-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109601-map.yaml @@ -1,4 +1,4 @@ -pr: 109601 -releasenote: - text: Fixed a bug which could have allowed an improperly annotated LoadBalancer - service to become active. +pr: 109601 +releasenote: + text: Fixed a bug which could have allowed an improperly annotated LoadBalancer + service to become active. diff --git a/releases/release-1.25/release-notes/maps/pr-109602-map.yaml b/releases/release-1.25/release-notes/maps/pr-109602-map.yaml index b05725e4408..eae0eddec19 100644 --- a/releases/release-1.25/release-notes/maps/pr-109602-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109602-map.yaml @@ -1,4 +1,4 @@ -pr: 109602 -releasenote: - text: The `metadata.clusterName` field is completely removed. This should not have - any user-visible impact. +pr: 109602 +releasenote: + text: The `metadata.clusterName` field is completely removed. This should not have + any user-visible impact. diff --git a/releases/release-1.25/release-notes/maps/pr-109612-map.yaml b/releases/release-1.25/release-notes/maps/pr-109612-map.yaml index da9d58c7f64..91f588cce74 100644 --- a/releases/release-1.25/release-notes/maps/pr-109612-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109612-map.yaml @@ -1,4 +1,4 @@ -pr: 109612 -releasenote: - text: 'Kube-controller-manager: Removed flags `deleting-pods-qps`, `deleting-pods-burst`, and - `register-retry-count`.' +pr: 109612 +releasenote: + text: 'Kube-controller-manager: Removed flags `deleting-pods-qps`, `deleting-pods-burst`, and + `register-retry-count`.' diff --git a/releases/release-1.25/release-notes/maps/pr-109624-map.yaml b/releases/release-1.25/release-notes/maps/pr-109624-map.yaml index 94524b44f82..8ddf4fae7e4 100644 --- a/releases/release-1.25/release-notes/maps/pr-109624-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109624-map.yaml @@ -1,3 +1,3 @@ -pr: 109624 -releasenote: - text: EndpointSlices marked for deletion are now ignored during reconciliation. +pr: 109624 +releasenote: + text: EndpointSlices marked for deletion are now ignored during reconciliation. diff --git a/releases/release-1.25/release-notes/maps/pr-109658-map.yaml b/releases/release-1.25/release-notes/maps/pr-109658-map.yaml index f34ab0d2d40..cabf43ab0b0 100644 --- a/releases/release-1.25/release-notes/maps/pr-109658-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109658-map.yaml @@ -1,4 +1,4 @@ -pr: 109658 -releasenote: - text: Updated to cAdvisor v0.44.1 to fix an issue where metrics generated by kubelet - for pod network stats were empty in some cases. +pr: 109658 +releasenote: + text: Updated to cAdvisor v0.44.1 to fix an issue where metrics generated by kubelet + for pod network stats were empty in some cases. diff --git a/releases/release-1.25/release-notes/maps/pr-109680-map.yaml b/releases/release-1.25/release-notes/maps/pr-109680-map.yaml index 7c809ab7099..128831e9e22 100644 --- a/releases/release-1.25/release-notes/maps/pr-109680-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109680-map.yaml @@ -1,5 +1,5 @@ -pr: 109680 -releasenote: - text: |- - Return a warning when applying a `pod-security.kubernetes.io` label to a PodSecurity-exempted namespace. - Stop including the `pod-security.kubernetes.io/exempt=namespace` audit annotation on namespace requests. +pr: 109680 +releasenote: + text: |- + Return a warning when applying a `pod-security.kubernetes.io` label to a PodSecurity-exempted namespace. + Stop including the `pod-security.kubernetes.io/exempt=namespace` audit annotation on namespace requests. diff --git a/releases/release-1.25/release-notes/maps/pr-109706-map.yaml b/releases/release-1.25/release-notes/maps/pr-109706-map.yaml index cdbeca03f32..05fbf4253cf 100644 --- a/releases/release-1.25/release-notes/maps/pr-109706-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109706-map.yaml @@ -1,10 +1,10 @@ -pr: 109706 -releasenote: - text: Reduced the number of cloud API calls and service downtime caused by excessive - re-configurations of cluster LBs with externalTrafficPolicy=Local when node readiness - changes (https://github.com/kubernetes/kubernetes/issues/111539). The service - controller (in cloud-controller-manager) will avoid resyncing nodes which are - transitioning between `Ready` / `NotReady` (only for for ETP=Local Services). The - LBs used for these services will solely rely on the health check probe defined - by the `healthCheckNodePort` to determine if a particular node is to be used for - traffic load balancing. +pr: 109706 +releasenote: + text: Reduced the number of cloud API calls and service downtime caused by excessive + re-configurations of cluster LBs with externalTrafficPolicy=Local when node readiness + changes (https://github.com/kubernetes/kubernetes/issues/111539). The service + controller (in cloud-controller-manager) will avoid resyncing nodes which are + transitioning between `Ready` / `NotReady` (only for for ETP=Local Services). The + LBs used for these services will solely rely on the health check probe defined + by the `healthCheckNodePort` to determine if a particular node is to be used for + traffic load balancing. diff --git a/releases/release-1.25/release-notes/maps/pr-109709-map.yaml b/releases/release-1.25/release-notes/maps/pr-109709-map.yaml index aa40dfd0cc1..4c66065002d 100644 --- a/releases/release-1.25/release-notes/maps/pr-109709-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109709-map.yaml @@ -1,4 +1,4 @@ -pr: 109709 -releasenote: - text: When using the OpenStack legacy cloud provider, kubelet and KCM will ignore - unknown configuration directives rather than failing to start. +pr: 109709 +releasenote: + text: When using the OpenStack legacy cloud provider, kubelet and KCM will ignore + unknown configuration directives rather than failing to start. diff --git a/releases/release-1.25/release-notes/maps/pr-109721-map.yaml b/releases/release-1.25/release-notes/maps/pr-109721-map.yaml index c1229b415dc..08c2705b167 100644 --- a/releases/release-1.25/release-notes/maps/pr-109721-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109721-map.yaml @@ -1,3 +1,3 @@ -pr: 109721 -releasenote: - text: Fixed `NeedResize` build failure on Windows. +pr: 109721 +releasenote: + text: Fixed `NeedResize` build failure on Windows. diff --git a/releases/release-1.25/release-notes/maps/pr-109752-map.yaml b/releases/release-1.25/release-notes/maps/pr-109752-map.yaml index 20706dcc158..a457c8e6677 100644 --- a/releases/release-1.25/release-notes/maps/pr-109752-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109752-map.yaml @@ -1,3 +1,3 @@ -pr: 109752 -releasenote: - text: Deleted the `apimachinery/clock` package. Please use `k8s.io/utils/clock` package instead. +pr: 109752 +releasenote: + text: Deleted the `apimachinery/clock` package. Please use `k8s.io/utils/clock` package instead. diff --git a/releases/release-1.25/release-notes/maps/pr-109764-map.yaml b/releases/release-1.25/release-notes/maps/pr-109764-map.yaml index 648e47181e8..0ae3ed825ed 100644 --- a/releases/release-1.25/release-notes/maps/pr-109764-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109764-map.yaml @@ -1,3 +1,3 @@ -pr: 109764 -releasenote: - text: Changed PV framework delete timeout to 5 minutes as documented. +pr: 109764 +releasenote: + text: Changed PV framework delete timeout to 5 minutes as documented. diff --git a/releases/release-1.25/release-notes/maps/pr-109773-map.yaml b/releases/release-1.25/release-notes/maps/pr-109773-map.yaml index de2261942ca..f07edbdd953 100644 --- a/releases/release-1.25/release-notes/maps/pr-109773-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109773-map.yaml @@ -1,3 +1,3 @@ -pr: 109773 -releasenote: - text: Add missing powershell option to kubectl completion command short description. +pr: 109773 +releasenote: + text: Add missing powershell option to kubectl completion command short description. diff --git a/releases/release-1.25/release-notes/maps/pr-109782-map.yaml b/releases/release-1.25/release-notes/maps/pr-109782-map.yaml index 21fe1c56685..854e3295bfc 100644 --- a/releases/release-1.25/release-notes/maps/pr-109782-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109782-map.yaml @@ -1,4 +1,4 @@ -pr: 109782 -releasenote: - text: The kube-proxy `sync_proxy_rules_no_endpoints_total` metric now only counts - local-traffic-policy services which have remote endpoints but not local endpoints. +pr: 109782 +releasenote: + text: The kube-proxy `sync_proxy_rules_no_endpoints_total` metric now only counts + local-traffic-policy services which have remote endpoints but not local endpoints. diff --git a/releases/release-1.25/release-notes/maps/pr-109798-map.yaml b/releases/release-1.25/release-notes/maps/pr-109798-map.yaml index 93692f0fce1..b1483c528c2 100644 --- a/releases/release-1.25/release-notes/maps/pr-109798-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109798-map.yaml @@ -1,6 +1,6 @@ -pr: 109798 -releasenote: - text: The beta `PodSecurityPolicy` admission plugin, deprecated since 1.21, is removed. - Follow the instructions at https://kubernetes.io/docs/tasks/configure-pod-container/migrate-from-psp/ - to migrate to the built-in PodSecurity admission plugin (or to another third-party policy - webhook) prior to upgrading to v1.25. +pr: 109798 +releasenote: + text: The beta `PodSecurityPolicy` admission plugin, deprecated since 1.21, is removed. + Follow the instructions at https://kubernetes.io/docs/tasks/configure-pod-container/migrate-from-psp/ + to migrate to the built-in PodSecurity admission plugin (or to another third-party policy + webhook) prior to upgrading to v1.25. diff --git a/releases/release-1.25/release-notes/maps/pr-109813-map.yaml b/releases/release-1.25/release-notes/maps/pr-109813-map.yaml index e5630f1bad6..89552de5803 100644 --- a/releases/release-1.25/release-notes/maps/pr-109813-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109813-map.yaml @@ -1,3 +1,3 @@ -pr: 109813 -releasenote: - text: Updated cri-tools to [v1.24.2(https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.24.2). +pr: 109813 +releasenote: + text: Updated cri-tools to [v1.24.2(https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.24.2). diff --git a/releases/release-1.25/release-notes/maps/pr-109819-map.yaml b/releases/release-1.25/release-notes/maps/pr-109819-map.yaml index 78c4ab7c682..e59e8b9092a 100644 --- a/releases/release-1.25/release-notes/maps/pr-109819-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109819-map.yaml @@ -1,10 +1,10 @@ -pr: 109819 -releasenote: - text: Support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` - and `container.seccomp.security.alpha.kubernetes.io`, deprecated since v1.19, - was partially removed. Kubelets no longer support the annotations, use of the - annotations in static pods is no longer supported, and the seccomp annotations - are no longer auto-populated when pods with seccomp fields are created. Auto-population - of the seccomp fields from the annotations is planned to be removed in 1.27. Pods should - use the corresponding pod or container `securityContext.seccompProfile` field - instead. +pr: 109819 +releasenote: + text: Support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` + and `container.seccomp.security.alpha.kubernetes.io`, deprecated since v1.19, + was partially removed. Kubelets no longer support the annotations, use of the + annotations in static pods is no longer supported, and the seccomp annotations + are no longer auto-populated when pods with seccomp fields are created. Auto-population + of the seccomp fields from the annotations is planned to be removed in 1.27. Pods should + use the corresponding pod or container `securityContext.seccompProfile` field + instead. diff --git a/releases/release-1.25/release-notes/maps/pr-109826-map.yaml b/releases/release-1.25/release-notes/maps/pr-109826-map.yaml index 2522337be5d..714a756b56d 100644 --- a/releases/release-1.25/release-notes/maps/pr-109826-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109826-map.yaml @@ -1,4 +1,4 @@ -pr: 109826 -releasenote: - text: Fixed a bug involving Services of type `LoadBalancer` with multiple IPs and a - `LoadBalancerSourceRanges` that overlaps the node IP. +pr: 109826 +releasenote: + text: Fixed a bug involving Services of type `LoadBalancer` with multiple IPs and a + `LoadBalancerSourceRanges` that overlaps the node IP. diff --git a/releases/release-1.25/release-notes/maps/pr-109840-map.yaml b/releases/release-1.25/release-notes/maps/pr-109840-map.yaml index 4c871ef8b45..b02ef6c40e8 100644 --- a/releases/release-1.25/release-notes/maps/pr-109840-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109840-map.yaml @@ -1,5 +1,5 @@ -pr: 109840 -releasenote: - text: 'kubeadm: only taint control plane nodes when the legacy "master" taint is - present. This avoids the bug where "kubeadm upgrade" will re-taint a control plane node - with the new "control plane" taint even if the user explicitly untainted the node.' +pr: 109840 +releasenote: + text: 'kubeadm: only taint control plane nodes when the legacy "master" taint is + present. This avoids the bug where "kubeadm upgrade" will re-taint a control plane node + with the new "control plane" taint even if the user explicitly untainted the node.' diff --git a/releases/release-1.25/release-notes/maps/pr-109928-map.yaml b/releases/release-1.25/release-notes/maps/pr-109928-map.yaml index a7de63685e7..24f65e8cd2c 100644 --- a/releases/release-1.25/release-notes/maps/pr-109928-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109928-map.yaml @@ -1,4 +1,4 @@ -pr: 109928 -releasenote: - text: Fixed the bug that a `ServiceIPStaticSubrange` enabled cluster assigns duplicate - IP addresses when the dynamic block is exhausted. +pr: 109928 +releasenote: + text: Fixed the bug that a `ServiceIPStaticSubrange` enabled cluster assigns duplicate + IP addresses when the dynamic block is exhausted. diff --git a/releases/release-1.25/release-notes/maps/pr-109938-map.yaml b/releases/release-1.25/release-notes/maps/pr-109938-map.yaml index 844dae71ebb..204f3ff6289 100644 --- a/releases/release-1.25/release-notes/maps/pr-109938-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109938-map.yaml @@ -1,10 +1,10 @@ -pr: 109938 -releasenote: - text: There is a new OCI image registry (`registry.k8s.io`) that can be used to - pull Kubernetes images. The old registry (`k8s.gcr.io`) will continue to be supported - for the foreseeable future, but the new name should perform better because it - frontends equivalent mirrors in other clouds. Please point your clusters to the - new registry going forward. \n\nAdmission/Policy integrations that have an allowlist - of registries need to include `registry.k8s.io` alongside `k8s.gcr.io`.\nAir-gapped - environments and image garbage-collection configurations will need to update to - pre-pull and preserve required images under `registry.k8s.io` as well as `k8s.gcr.io`. +pr: 109938 +releasenote: + text: There is a new OCI image registry (`registry.k8s.io`) that can be used to + pull Kubernetes images. The old registry (`k8s.gcr.io`) will continue to be supported + for the foreseeable future, but the new name should perform better because it + frontends equivalent mirrors in other clouds. Please point your clusters to the + new registry going forward. \n\nAdmission/Policy integrations that have an allowlist + of registries need to include `registry.k8s.io` alongside `k8s.gcr.io`.\nAir-gapped + environments and image garbage-collection configurations will need to update to + pre-pull and preserve required images under `registry.k8s.io` as well as `k8s.gcr.io`. diff --git a/releases/release-1.25/release-notes/maps/pr-109995-map.yaml b/releases/release-1.25/release-notes/maps/pr-109995-map.yaml index 352c49009a5..532064ee151 100644 --- a/releases/release-1.25/release-notes/maps/pr-109995-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-109995-map.yaml @@ -1,6 +1,6 @@ -pr: 109995 -releasenote: - text: 'Kubeadm: added support for the flag `--print-manifest` to the addon phases - `kube-proxy` and `coredns` of `kubeadm init phase addon`. If this flag is `usedkubeadm` - will not apply a given addon and instead print to the terminal the API objects - that will be applied.' +pr: 109995 +releasenote: + text: 'Kubeadm: added support for the flag `--print-manifest` to the addon phases + `kube-proxy` and `coredns` of `kubeadm init phase addon`. If this flag is `usedkubeadm` + will not apply a given addon and instead print to the terminal the API objects + that will be applied.' diff --git a/releases/release-1.25/release-notes/maps/pr-110007-map.yaml b/releases/release-1.25/release-notes/maps/pr-110007-map.yaml index 7d9eb1345aa..ae459e12407 100644 --- a/releases/release-1.25/release-notes/maps/pr-110007-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110007-map.yaml @@ -1,3 +1,3 @@ -pr: 110007 -releasenote: - text: Added new flags into alpha events such as --output, --types, --no-headers. +pr: 110007 +releasenote: + text: Added new flags into alpha events such as --output, --types, --no-headers. diff --git a/releases/release-1.25/release-notes/maps/pr-110013-map.yaml b/releases/release-1.25/release-notes/maps/pr-110013-map.yaml index 77e2f367f33..deeb0e6ddbe 100644 --- a/releases/release-1.25/release-notes/maps/pr-110013-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110013-map.yaml @@ -1,4 +1,4 @@ -pr: 110013 -releasenote: - text: The `gcp` and `azure` auth plugins have been removed from client-go and kubectl. - See https://github.com/Azure/kubelogin and https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke +pr: 110013 +releasenote: + text: The `gcp` and `azure` auth plugins have been removed from client-go and kubectl. + See https://github.com/Azure/kubelogin and https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke diff --git a/releases/release-1.25/release-notes/maps/pr-110027-map.yaml b/releases/release-1.25/release-notes/maps/pr-110027-map.yaml index 6baa161b45c..dd32ffdfb52 100644 --- a/releases/release-1.25/release-notes/maps/pr-110027-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110027-map.yaml @@ -1,3 +1,3 @@ -pr: 110027 -releasenote: - text: Fix the bug that reported incorrect metrics for the cluster IP allocator. +pr: 110027 +releasenote: + text: Fix the bug that reported incorrect metrics for the cluster IP allocator. diff --git a/releases/release-1.25/release-notes/maps/pr-110043-map.yaml b/releases/release-1.25/release-notes/maps/pr-110043-map.yaml index 3533bf64ade..07abd53d800 100644 --- a/releases/release-1.25/release-notes/maps/pr-110043-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110043-map.yaml @@ -1,3 +1,3 @@ -pr: 110043 -releasenote: - text: Kubernetes is now built with Golang 1.18.2. +pr: 110043 +releasenote: + text: Kubernetes is now built with Golang 1.18.2. diff --git a/releases/release-1.25/release-notes/maps/pr-110058-map.yaml b/releases/release-1.25/release-notes/maps/pr-110058-map.yaml index 2a05b9c173f..8be891b86e3 100644 --- a/releases/release-1.25/release-notes/maps/pr-110058-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110058-map.yaml @@ -1,4 +1,4 @@ -pr: 110058 -releasenote: - text: ManagedFields time is correctly updated when the value of a managed field - is modified. +pr: 110058 +releasenote: + text: ManagedFields time is correctly updated when the value of a managed field + is modified. diff --git a/releases/release-1.25/release-notes/maps/pr-110072-map.yaml b/releases/release-1.25/release-notes/maps/pr-110072-map.yaml index 2d4d9516de1..ea67be9e8c2 100644 --- a/releases/release-1.25/release-notes/maps/pr-110072-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110072-map.yaml @@ -1,6 +1,6 @@ -pr: 110072 -releasenote: - text: 'Kubeadm: modified the etcd static Pod `liveness` and `readiness` probes to use - a new etcd `v3.5.3+` HTTP(s) health check endpoint `/health?serializable=true` that - allows to track the health of individual etcd members and not fail all members - if a single member is not healthy in the etcd cluster.' +pr: 110072 +releasenote: + text: 'Kubeadm: modified the etcd static Pod `liveness` and `readiness` probes to use + a new etcd `v3.5.3+` HTTP(s) health check endpoint `/health?serializable=true` that + allows to track the health of individual etcd members and not fail all members + if a single member is not healthy in the etcd cluster.' diff --git a/releases/release-1.25/release-notes/maps/pr-110075-map.yaml b/releases/release-1.25/release-notes/maps/pr-110075-map.yaml index 443c45c3d39..4abb43c91f0 100644 --- a/releases/release-1.25/release-notes/maps/pr-110075-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110075-map.yaml @@ -1,4 +1,4 @@ -pr: 110075 -releasenote: - text: 'Kubelet: added retry of checking Unix domain sockets on Windows nodes for the - plugin registration mechanism.' +pr: 110075 +releasenote: + text: 'Kubelet: added retry of checking Unix domain sockets on Windows nodes for the + plugin registration mechanism.' diff --git a/releases/release-1.25/release-notes/maps/pr-110076-map.yaml b/releases/release-1.25/release-notes/maps/pr-110076-map.yaml index 31fa194eafa..f0442c961e5 100644 --- a/releases/release-1.25/release-notes/maps/pr-110076-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110076-map.yaml @@ -1,4 +1,4 @@ -pr: 110076 -releasenote: - text: Informer/reflector callers can now catch and unwrap specific API errors by - type. +pr: 110076 +releasenote: + text: Informer/reflector callers can now catch and unwrap specific API errors by + type. diff --git a/releases/release-1.25/release-notes/maps/pr-110095-map.yaml b/releases/release-1.25/release-notes/maps/pr-110095-map.yaml index feec6eaf7f0..677a8baf007 100644 --- a/releases/release-1.25/release-notes/maps/pr-110095-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110095-map.yaml @@ -1,5 +1,5 @@ -pr: 110095 -releasenote: - text: 'kubeadm: stop applying the `node-role.kubernetes.io/master:NoSchedule` taint - to control plane nodes for new clusters. Remove the taint from existing control - plane nodes during "kubeadm upgrade apply"' +pr: 110095 +releasenote: + text: 'kubeadm: stop applying the `node-role.kubernetes.io/master:NoSchedule` taint + to control plane nodes for new clusters. Remove the taint from existing control + plane nodes during "kubeadm upgrade apply"' diff --git a/releases/release-1.25/release-notes/maps/pr-110134-map.yaml b/releases/release-1.25/release-notes/maps/pr-110134-map.yaml index 939dc3cb185..c2e2a8f1d7d 100644 --- a/releases/release-1.25/release-notes/maps/pr-110134-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110134-map.yaml @@ -1,5 +1,5 @@ -pr: 110134 -releasenote: - text: 'Kubeadm: now sets the host `OS` environment variables when executing `crictl` during - image pulls. This fixed a bug where `*PROXY` environment variables did not affect - `crictl` internet connectivity.' +pr: 110134 +releasenote: + text: 'Kubeadm: now sets the host `OS` environment variables when executing `crictl` during + image pulls. This fixed a bug where `*PROXY` environment variables did not affect + `crictl` internet connectivity.' diff --git a/releases/release-1.25/release-notes/maps/pr-110140-map.yaml b/releases/release-1.25/release-notes/maps/pr-110140-map.yaml index 6785618ac4e..d323562b779 100644 --- a/releases/release-1.25/release-notes/maps/pr-110140-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110140-map.yaml @@ -1,4 +1,4 @@ -pr: 110140 -releasenote: - text: Fixed an issue on Windows nodes where `HostProcess` containers may not be - created as expected. +pr: 110140 +releasenote: + text: Fixed an issue on Windows nodes where `HostProcess` containers may not be + created as expected. diff --git a/releases/release-1.25/release-notes/maps/pr-110145-map.yaml b/releases/release-1.25/release-notes/maps/pr-110145-map.yaml index 0bfb4f860c0..954b5d09a5b 100644 --- a/releases/release-1.25/release-notes/maps/pr-110145-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110145-map.yaml @@ -1,3 +1,3 @@ -pr: 110145 -releasenote: - text: 'Apiserver: fixed audit of loading more than one webhooks.' +pr: 110145 +releasenote: + text: 'Apiserver: fixed audit of loading more than one webhooks.' diff --git a/releases/release-1.25/release-notes/maps/pr-110164-map.yaml b/releases/release-1.25/release-notes/maps/pr-110164-map.yaml index 78f476462f3..0d2ee2fc6d2 100644 --- a/releases/release-1.25/release-notes/maps/pr-110164-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110164-map.yaml @@ -1,5 +1,5 @@ -pr: 110164 -releasenote: - text: |- - The `priority_level_request_utilization` metric histogram is adjusted so that for the cases where `phase=waiting` the denominator is the cumulative capacity of all of the priority level's queues. - The `read_vs_write_current_requests` metric histogram is adjusted, in the case of using API Priority and Fairness instead of max-in-flight, to divide by the relevant limit: sum of queue capacities for waiting requests, sum of seat limits for executing requests. +pr: 110164 +releasenote: + text: |- + The `priority_level_request_utilization` metric histogram is adjusted so that for the cases where `phase=waiting` the denominator is the cumulative capacity of all of the priority level's queues. + The `read_vs_write_current_requests` metric histogram is adjusted, in the case of using API Priority and Fairness instead of max-in-flight, to divide by the relevant limit: sum of queue capacities for waiting requests, sum of seat limits for executing requests. diff --git a/releases/release-1.25/release-notes/maps/pr-110179-map.yaml b/releases/release-1.25/release-notes/maps/pr-110179-map.yaml index f465c76f49a..31d4270fb31 100644 --- a/releases/release-1.25/release-notes/maps/pr-110179-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110179-map.yaml @@ -1,9 +1,9 @@ -pr: 110179 -releasenote: - text: |- - OpenAPI will no longer duplicate these schemas: - - `io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions_v2` - - `io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta_v2` - - `io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference_v2` - - `io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails_v2` - - `io.k8s.apimachinery.pkg.apis.meta.v1.Status_v2` +pr: 110179 +releasenote: + text: |- + OpenAPI will no longer duplicate these schemas: + - `io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions_v2` + - `io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta_v2` + - `io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference_v2` + - `io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails_v2` + - `io.k8s.apimachinery.pkg.apis.meta.v1.Status_v2` diff --git a/releases/release-1.25/release-notes/maps/pr-110191-map.yaml b/releases/release-1.25/release-notes/maps/pr-110191-map.yaml index 637191e837c..3c6ab50bc21 100644 --- a/releases/release-1.25/release-notes/maps/pr-110191-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110191-map.yaml @@ -1,3 +1,3 @@ -pr: 110191 -releasenote: - text: Pods now post their `readiness` during termination. +pr: 110191 +releasenote: + text: Pods now post their `readiness` during termination. diff --git a/releases/release-1.25/release-notes/maps/pr-110201-map.yaml b/releases/release-1.25/release-notes/maps/pr-110201-map.yaml index 31fe5ff18e0..6b0443bdb4c 100644 --- a/releases/release-1.25/release-notes/maps/pr-110201-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110201-map.yaml @@ -1,3 +1,3 @@ -pr: 110201 -releasenote: - text: Added KMS `v2alpha1` API. +pr: 110201 +releasenote: + text: Added KMS `v2alpha1` API. diff --git a/releases/release-1.25/release-notes/maps/pr-110214-map.yaml b/releases/release-1.25/release-notes/maps/pr-110214-map.yaml index 96249dc3f58..5651cc4dce1 100644 --- a/releases/release-1.25/release-notes/maps/pr-110214-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110214-map.yaml @@ -1,4 +1,4 @@ -pr: 110214 -releasenote: - text: 'E2e tests: fixed bug in the e2e image `agnhost:2.38` which hangs instead of exiting - if a `SIGTERM` signal is received and the `shutdown-delay` option is `0`.' +pr: 110214 +releasenote: + text: 'E2e tests: fixed bug in the e2e image `agnhost:2.38` which hangs instead of exiting + if a `SIGTERM` signal is received and the `shutdown-delay` option is `0`.' diff --git a/releases/release-1.25/release-notes/maps/pr-110255-map.yaml b/releases/release-1.25/release-notes/maps/pr-110255-map.yaml index 5e4f965fbcd..7d5f28439a6 100644 --- a/releases/release-1.25/release-notes/maps/pr-110255-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110255-map.yaml @@ -1,7 +1,7 @@ -pr: 110255 -releasenote: - text: The pod phase lifecycle guarantees that terminal Pods, those whose states - are `Unready` or `Succeeded`, can not regress and will have all container stopped. - Hence, terminal Pods will never be reachable and should not publish their IP addresses - on the `Endpoints` or `EndpointSlices`, independently of the Service `TolerateUnready` - option. +pr: 110255 +releasenote: + text: The pod phase lifecycle guarantees that terminal Pods, those whose states + are `Unready` or `Succeeded`, can not regress and will have all container stopped. + Hence, terminal Pods will never be reachable and should not publish their IP addresses + on the `Endpoints` or `EndpointSlices`, independently of the Service `TolerateUnready` + option. diff --git a/releases/release-1.25/release-notes/maps/pr-110256-map.yaml b/releases/release-1.25/release-notes/maps/pr-110256-map.yaml index cfca17647e1..d44716af5ef 100644 --- a/releases/release-1.25/release-notes/maps/pr-110256-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110256-map.yaml @@ -1,5 +1,5 @@ -pr: 110256 -releasenote: - text: Fixed a kubelet issue that could result in invalid pod status updates to be - sent to the api-server where pods would be reported in a terminal phase but also - report a ready condition of true in some cases. +pr: 110256 +releasenote: + text: Fixed a kubelet issue that could result in invalid pod status updates to be + sent to the api-server where pods would be reported in a terminal phase but also + report a ready condition of true in some cases. diff --git a/releases/release-1.25/release-notes/maps/pr-110292-map.yaml b/releases/release-1.25/release-notes/maps/pr-110292-map.yaml index 06d05c492fc..d5fec10e0aa 100644 --- a/releases/release-1.25/release-notes/maps/pr-110292-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110292-map.yaml @@ -1,3 +1,3 @@ -pr: 110292 -releasenote: - text: A change of a failed job condition status to `False` does not result in duplicate conditions. +pr: 110292 +releasenote: + text: A change of a failed job condition status to `False` does not result in duplicate conditions. diff --git a/releases/release-1.25/release-notes/maps/pr-110294-map.yaml b/releases/release-1.25/release-notes/maps/pr-110294-map.yaml index 2a7e70b667c..49ebe862747 100644 --- a/releases/release-1.25/release-notes/maps/pr-110294-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110294-map.yaml @@ -1,4 +1,4 @@ -pr: 110294 -releasenote: - text: Fix bug that prevented the job controller from enforcing activeDeadlineSeconds - when set. +pr: 110294 +releasenote: + text: Fix bug that prevented the job controller from enforcing activeDeadlineSeconds + when set. diff --git a/releases/release-1.25/release-notes/maps/pr-110310-map.yaml b/releases/release-1.25/release-notes/maps/pr-110310-map.yaml index d955c2cff78..ffde7d56998 100644 --- a/releases/release-1.25/release-notes/maps/pr-110310-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110310-map.yaml @@ -1,5 +1,5 @@ -pr: 110310 -releasenote: - text: | - `apiserver_longrunning_gauge` was removed from the codebase. Please use `apiserver_longrunning_requests` - instead. +pr: 110310 +releasenote: + text: | + `apiserver_longrunning_gauge` was removed from the codebase. Please use `apiserver_longrunning_requests` + instead. diff --git a/releases/release-1.25/release-notes/maps/pr-110326-map.yaml b/releases/release-1.25/release-notes/maps/pr-110326-map.yaml index 78593169876..3acd2891946 100644 --- a/releases/release-1.25/release-notes/maps/pr-110326-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110326-map.yaml @@ -1,4 +1,4 @@ -pr: 110326 -releasenote: - text: Added error message "dry-run can not be used when --force is set" when dry-run - and force flags are set in replace command. +pr: 110326 +releasenote: + text: Added error message "dry-run can not be used when --force is set" when dry-run + and force flags are set in replace command. diff --git a/releases/release-1.25/release-notes/maps/pr-110327-map.yaml b/releases/release-1.25/release-notes/maps/pr-110327-map.yaml index 28d4345cca8..ee156bb6029 100644 --- a/releases/release-1.25/release-notes/maps/pr-110327-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110327-map.yaml @@ -1,9 +1,9 @@ -pr: 110327 -releasenote: - text: 'Kubeadm: graduated the kubeadm specific feature gate `UnversionedKubeletConfigMap` - to GA and locked it to `true` by default. The kubelet related ConfigMap and RBAC - rules are now locked to have a simplified naming `*kubelet-config` instead of - the legacy naming `*kubelet-config-x.yy`, where `x.yy` was the version of the - control plane. If you have previously used the old naming format with `UnversionedKubeletConfigMap=false`, - you must manually copy the config map from `kube-system/kubelet-config-x.yy` to - `kube-system/kubelet-config` before upgrading to `v1.25`.' +pr: 110327 +releasenote: + text: 'Kubeadm: graduated the kubeadm specific feature gate `UnversionedKubeletConfigMap` + to GA and locked it to `true` by default. The kubelet related ConfigMap and RBAC + rules are now locked to have a simplified naming `*kubelet-config` instead of + the legacy naming `*kubelet-config-x.yy`, where `x.yy` was the version of the + control plane. If you have previously used the old naming format with `UnversionedKubeletConfigMap=false`, + you must manually copy the config map from `kube-system/kubelet-config-x.yy` to + `kube-system/kubelet-config` before upgrading to `v1.25`.' diff --git a/releases/release-1.25/release-notes/maps/pr-110334-map.yaml b/releases/release-1.25/release-notes/maps/pr-110334-map.yaml index 48ef8c35116..393b5acccb9 100644 --- a/releases/release-1.25/release-notes/maps/pr-110334-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110334-map.yaml @@ -1,11 +1,11 @@ -pr: 110334 -releasenote: - text: |- - In "large" clusters, kube-proxy in iptables mode will now sometimes - leave unused rules in iptables for a while (up to `--iptables-sync-period`) - before deleting them. This improves performance by not requiring it to - check for stale rules on every sync. (In smaller clusters, it will still - remove unused rules immediately once they are no longer used.) - - (The threshold for "large" used here is currently "1000 endpoints" but - this is subject to change.) +pr: 110334 +releasenote: + text: |- + In "large" clusters, kube-proxy in iptables mode will now sometimes + leave unused rules in iptables for a while (up to `--iptables-sync-period`) + before deleting them. This improves performance by not requiring it to + check for stale rules on every sync. (In smaller clusters, it will still + remove unused rules immediately once they are no longer used.) + + (The threshold for "large" used here is currently "1000 endpoints" but + this is subject to change.) diff --git a/releases/release-1.25/release-notes/maps/pr-110337-map.yaml b/releases/release-1.25/release-notes/maps/pr-110337-map.yaml index b77a0d6378f..e2ef63cf527 100644 --- a/releases/release-1.25/release-notes/maps/pr-110337-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110337-map.yaml @@ -1,6 +1,6 @@ -pr: 110337 -releasenote: - text: '`apiserver_dropped_requests` is dropped from this release since `apiserver_request_total` - can now be used to track dropped requests. `etcd_object_counts` is also removed - in favor of `apiserver_storage_objects`. `apiserver_registered_watchers` is also - removed in favor of `apiserver_longrunning_requests`.' +pr: 110337 +releasenote: + text: '`apiserver_dropped_requests` is dropped from this release since `apiserver_request_total` + can now be used to track dropped requests. `etcd_object_counts` is also removed + in favor of `apiserver_storage_objects`. `apiserver_registered_watchers` is also + removed in favor of `apiserver_longrunning_requests`.' diff --git a/releases/release-1.25/release-notes/maps/pr-110343-map.yaml b/releases/release-1.25/release-notes/maps/pr-110343-map.yaml index 5c2e93d8a8e..2a8e59ebb10 100644 --- a/releases/release-1.25/release-notes/maps/pr-110343-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110343-map.yaml @@ -1,6 +1,6 @@ -pr: 110343 -releasenote: - text: 'kubeadm: during "upgrade apply/diff/node", in case the `ClusterConfiguration.imageRepository` - stored in the "kubeadm-config" `ConfigMap` contains the legacy "k8s.gcr.io" repository, - modify it to the new default "registry.k8s.io". Reflect the change in the in-cluster - `ConfigMap` only during "upgrade apply".' +pr: 110343 +releasenote: + text: 'kubeadm: during "upgrade apply/diff/node", in case the `ClusterConfiguration.imageRepository` + stored in the "kubeadm-config" `ConfigMap` contains the legacy "k8s.gcr.io" repository, + modify it to the new default "registry.k8s.io". Reflect the change in the in-cluster + `ConfigMap` only during "upgrade apply".' diff --git a/releases/release-1.25/release-notes/maps/pr-110371-map.yaml b/releases/release-1.25/release-notes/maps/pr-110371-map.yaml index f39c185e805..4fe09b0edb0 100644 --- a/releases/release-1.25/release-notes/maps/pr-110371-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110371-map.yaml @@ -1,3 +1,3 @@ -pr: 110371 -releasenote: - text: Upgraded Azure/go-autorest/autorest to v0.11.27. +pr: 110371 +releasenote: + text: Upgraded Azure/go-autorest/autorest to v0.11.27. diff --git a/releases/release-1.25/release-notes/maps/pr-110379-map.yaml b/releases/release-1.25/release-notes/maps/pr-110379-map.yaml index ec71b37004f..26e64820323 100644 --- a/releases/release-1.25/release-notes/maps/pr-110379-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110379-map.yaml @@ -1,5 +1,5 @@ -pr: 110379 -releasenote: - text: Updated base image for Windows pause container images to one built on Windows - machines to address limitations of building Windows container images on Linux - machines. +pr: 110379 +releasenote: + text: Updated base image for Windows pause container images to one built on Windows + machines to address limitations of building Windows container images on Linux + machines. diff --git a/releases/release-1.25/release-notes/maps/pr-110405-map.yaml b/releases/release-1.25/release-notes/maps/pr-110405-map.yaml index e80889a856f..ab671b623b2 100644 --- a/releases/release-1.25/release-notes/maps/pr-110405-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110405-map.yaml @@ -1,9 +1,9 @@ -pr: 110405 -releasenote: - text: 'Kubeadm: enhanced the "patches" functionality to be able to patch kubelet - config files containing `v1beta1.KubeletConfiguration`. The new patch target is - called `kubeletconfiguration` (e.g. patch file `kubeletconfiguration+json.json`).This - makes it possible to apply node specific KubeletConfiguration options during `init`, - `join` and `upgrade`, while the main `KubeletConfiguration` that is passed to `init` - as part of the `--config` file can still act as the global stored in the cluster - `KubeletConfiguration`.' +pr: 110405 +releasenote: + text: 'Kubeadm: enhanced the "patches" functionality to be able to patch kubelet + config files containing `v1beta1.KubeletConfiguration`. The new patch target is + called `kubeletconfiguration` (e.g. patch file `kubeletconfiguration+json.json`).This + makes it possible to apply node specific KubeletConfiguration options during `init`, + `join` and `upgrade`, while the main `KubeletConfiguration` that is passed to `init` + as part of the `--config` file can still act as the global stored in the cluster + `KubeletConfiguration`.' diff --git a/releases/release-1.25/release-notes/maps/pr-110410-map.yaml b/releases/release-1.25/release-notes/maps/pr-110410-map.yaml index 2b1c836be83..3b9353d32e0 100644 --- a/releases/release-1.25/release-notes/maps/pr-110410-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110410-map.yaml @@ -1,4 +1,4 @@ -pr: 110410 -releasenote: - text: Feature gate `CSIMigration` was locked to enabled. `CSIMigration` is GA now. - The feature gate will be removed in `v1.27`. +pr: 110410 +releasenote: + text: Feature gate `CSIMigration` was locked to enabled. `CSIMigration` is GA now. + The feature gate will be removed in `v1.27`. diff --git a/releases/release-1.25/release-notes/maps/pr-110411-map.yaml b/releases/release-1.25/release-notes/maps/pr-110411-map.yaml index f14a9dd21a4..b9403c441db 100644 --- a/releases/release-1.25/release-notes/maps/pr-110411-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110411-map.yaml @@ -1,3 +1,3 @@ -pr: 110411 -releasenote: - text: Promoted the `CSIMigrationPortworx` feature gate to Beta. +pr: 110411 +releasenote: + text: Promoted the `CSIMigrationPortworx` feature gate to Beta. diff --git a/releases/release-1.25/release-notes/maps/pr-110419-map.yaml b/releases/release-1.25/release-notes/maps/pr-110419-map.yaml index a1a384d2acf..c50b1e0d078 100644 --- a/releases/release-1.25/release-notes/maps/pr-110419-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110419-map.yaml @@ -1,3 +1,3 @@ -pr: 110419 -releasenote: - text: Graduated `ServiceIPStaticSubrange` feature to Beta (disabled by default). +pr: 110419 +releasenote: + text: Graduated `ServiceIPStaticSubrange` feature to Beta (disabled by default). diff --git a/releases/release-1.25/release-notes/maps/pr-110425-map.yaml b/releases/release-1.25/release-notes/maps/pr-110425-map.yaml index dda007b4fe3..68184c0c6bc 100644 --- a/releases/release-1.25/release-notes/maps/pr-110425-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110425-map.yaml @@ -1,4 +1,4 @@ -pr: 110425 -releasenote: - text: 'Client-go: fixed an error in the fake client when creating API requests are submitted - to subresources like `pods/eviction`.' +pr: 110425 +releasenote: + text: 'Client-go: fixed an error in the fake client when creating API requests are submitted + to subresources like `pods/eviction`.' diff --git a/releases/release-1.25/release-notes/maps/pr-110459-map.yaml b/releases/release-1.25/release-notes/maps/pr-110459-map.yaml index 05bfb817327..eae89fdc8fb 100644 --- a/releases/release-1.25/release-notes/maps/pr-110459-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110459-map.yaml @@ -1,4 +1,4 @@ -pr: 110459 -releasenote: - text: The `PodSecurity` admission plugin has graduated to GA and is enabled by default. - The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1`. +pr: 110459 +releasenote: + text: The `PodSecurity` admission plugin has graduated to GA and is enabled by default. + The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1`. diff --git a/releases/release-1.25/release-notes/maps/pr-110488-map.yaml b/releases/release-1.25/release-notes/maps/pr-110488-map.yaml index 8f231c667e8..5d33b197c6f 100644 --- a/releases/release-1.25/release-notes/maps/pr-110488-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110488-map.yaml @@ -1,3 +1,3 @@ -pr: 110488 -releasenote: - text: kube-up now includes CoreDNS version v1.9.3. +pr: 110488 +releasenote: + text: kube-up now includes CoreDNS version v1.9.3. diff --git a/releases/release-1.25/release-notes/maps/pr-110489-map.yaml b/releases/release-1.25/release-notes/maps/pr-110489-map.yaml index c129f13e3a8..38d55025255 100644 --- a/releases/release-1.25/release-notes/maps/pr-110489-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110489-map.yaml @@ -1,3 +1,3 @@ -pr: 110489 -releasenote: - text: 'kubeadm: Update CoreDNS to v1.9.3.' +pr: 110489 +releasenote: + text: 'kubeadm: Update CoreDNS to v1.9.3.' diff --git a/releases/release-1.25/release-notes/maps/pr-110491-map.yaml b/releases/release-1.25/release-notes/maps/pr-110491-map.yaml index 6f407c7a49c..f2433bfe8e4 100644 --- a/releases/release-1.25/release-notes/maps/pr-110491-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110491-map.yaml @@ -1,3 +1,3 @@ -pr: 110491 -releasenote: - text: Lock CSIMigrationAzureDisk feature gate to default. +pr: 110491 +releasenote: + text: Lock CSIMigrationAzureDisk feature gate to default. diff --git a/releases/release-1.25/release-notes/maps/pr-110495-map.yaml b/releases/release-1.25/release-notes/maps/pr-110495-map.yaml index f0c2ba475ae..0553abf79de 100644 --- a/releases/release-1.25/release-notes/maps/pr-110495-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110495-map.yaml @@ -1,4 +1,4 @@ -pr: 110495 -releasenote: - text: Changed ownership semantics of PersistentVolume's spec.claimRef from `atomic` - to `granular`. +pr: 110495 +releasenote: + text: Changed ownership semantics of PersistentVolume's spec.claimRef from `atomic` + to `granular`. diff --git a/releases/release-1.25/release-notes/maps/pr-110496-map.yaml b/releases/release-1.25/release-notes/maps/pr-110496-map.yaml index 4a933b284fa..36d1a2d5909 100644 --- a/releases/release-1.25/release-notes/maps/pr-110496-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110496-map.yaml @@ -1,3 +1,3 @@ -pr: 110496 -releasenote: - text: 'Fixed error "dbus: connection closed by user" after dbus daemon restarts.' +pr: 110496 +releasenote: + text: 'Fixed error "dbus: connection closed by user" after dbus daemon restarts.' diff --git a/releases/release-1.25/release-notes/maps/pr-110523-map.yaml b/releases/release-1.25/release-notes/maps/pr-110523-map.yaml index e43ab98723a..53b03644dab 100644 --- a/releases/release-1.25/release-notes/maps/pr-110523-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110523-map.yaml @@ -1,3 +1,3 @@ -pr: 110523 -releasenote: - text: Fixed image pull failure when `IMDS` is unavailable in kubelet startup. +pr: 110523 +releasenote: + text: Fixed image pull failure when `IMDS` is unavailable in kubelet startup. diff --git a/releases/release-1.25/release-notes/maps/pr-110534-map.yaml b/releases/release-1.25/release-notes/maps/pr-110534-map.yaml index b177b00a5e8..1ca84956d4c 100644 --- a/releases/release-1.25/release-notes/maps/pr-110534-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110534-map.yaml @@ -1,4 +1,4 @@ -pr: 110534 -releasenote: - text: "Kube-Scheduler ComponentConfig is graduated to GA, `kubescheduler.config.k8s.io/v1` - is available now. \nPlugin `SelectorSpread` is removed in v1." +pr: 110534 +releasenote: + text: "Kube-Scheduler ComponentConfig is graduated to GA, `kubescheduler.config.k8s.io/v1` + is available now. \nPlugin `SelectorSpread` is removed in v1." diff --git a/releases/release-1.25/release-notes/maps/pr-110553-map.yaml b/releases/release-1.25/release-notes/maps/pr-110553-map.yaml index 55d97b734c7..19188520bc3 100644 --- a/releases/release-1.25/release-notes/maps/pr-110553-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110553-map.yaml @@ -1,5 +1,5 @@ -pr: 110553 -releasenote: - text: 'Kubeadm: Added support for additional authentication strategies in `kubeadm - join` with discovery/kubeconfig file: client-go authentication plugins (`exec`), - `tokenFile`, and `authProvider.`' +pr: 110553 +releasenote: + text: 'Kubeadm: Added support for additional authentication strategies in `kubeadm + join` with discovery/kubeconfig file: client-go authentication plugins (`exec`), + `tokenFile`, and `authProvider.`' diff --git a/releases/release-1.25/release-notes/maps/pr-110558-map.yaml b/releases/release-1.25/release-notes/maps/pr-110558-map.yaml index 8cc12dad164..a0cbfbf0a11 100644 --- a/releases/release-1.25/release-notes/maps/pr-110558-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110558-map.yaml @@ -1,7 +1,7 @@ -pr: 110558 -releasenote: - text: |- - Updated debian-base, debian-iptables, and setcap images: - - debian-base:bullseye-v1.3.0 - - debian-iptables:bullseye-v1.4.0 - - setcap:bullseye-v1.3.0 +pr: 110558 +releasenote: + text: |- + Updated debian-base, debian-iptables, and setcap images: + - debian-base:bullseye-v1.3.0 + - debian-iptables:bullseye-v1.4.0 + - setcap:bullseye-v1.3.0 diff --git a/releases/release-1.25/release-notes/maps/pr-110593-map.yaml b/releases/release-1.25/release-notes/maps/pr-110593-map.yaml index 575ea52de22..c574b6c04af 100644 --- a/releases/release-1.25/release-notes/maps/pr-110593-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110593-map.yaml @@ -1,3 +1,3 @@ -pr: 110593 -releasenote: - text: 'Kubeadm: the preferred pod anti-affinity for CoreDNS is now enabled by default.' +pr: 110593 +releasenote: + text: 'Kubeadm: the preferred pod anti-affinity for CoreDNS is now enabled by default.' diff --git a/releases/release-1.25/release-notes/maps/pr-110639-map.yaml b/releases/release-1.25/release-notes/maps/pr-110639-map.yaml index e1387a6bdd3..3e6772aefb8 100644 --- a/releases/release-1.25/release-notes/maps/pr-110639-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110639-map.yaml @@ -1,9 +1,9 @@ -pr: 110639 -releasenote: - text: EndpointSlices with Pod referencing Nodes that don't exist couldn't be created - or updated. The behavior on the EndpointSlice controller has been modified to update - the EndpointSlice without the Pods that reference non-existing Nodes and keep - retrying until all Pods reference existing Nodes. However, if `service.Spec.PublishNotReadyAddresses` - is set, all the Pods are published without retrying. Fixed EndpointSlices metrics - to reflect correctly the number of desired EndpointSlices when no endpoints are - present. +pr: 110639 +releasenote: + text: EndpointSlices with Pod referencing Nodes that don't exist couldn't be created + or updated. The behavior on the EndpointSlice controller has been modified to update + the EndpointSlice without the Pods that reference non-existing Nodes and keep + retrying until all Pods reference existing Nodes. However, if `service.Spec.PublishNotReadyAddresses` + is set, all the Pods are published without retrying. Fixed EndpointSlices metrics + to reflect correctly the number of desired EndpointSlices when no endpoints are + present. diff --git a/releases/release-1.25/release-notes/maps/pr-110648-map.yaml b/releases/release-1.25/release-notes/maps/pr-110648-map.yaml index c256769a69b..b9e971af1ff 100644 --- a/releases/release-1.25/release-notes/maps/pr-110648-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110648-map.yaml @@ -1,3 +1,3 @@ -pr: 110648 -releasenote: - text: Fixed s.RuntimeCgroups error condition and Fixed possible wrong log print. +pr: 110648 +releasenote: + text: Fixed s.RuntimeCgroups error condition and Fixed possible wrong log print. diff --git a/releases/release-1.25/release-notes/maps/pr-110652-map.yaml b/releases/release-1.25/release-notes/maps/pr-110652-map.yaml index 07db0401852..52f0768e06b 100644 --- a/releases/release-1.25/release-notes/maps/pr-110652-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110652-map.yaml @@ -1,4 +1,4 @@ -pr: 110652 -releasenote: - text: Fixed a bug in `kubectl` that caused the wrong result length when using `--chunk-size` and - `--selector` together. +pr: 110652 +releasenote: + text: Fixed a bug in `kubectl` that caused the wrong result length when using `--chunk-size` and + `--selector` together. diff --git a/releases/release-1.25/release-notes/maps/pr-110656-map.yaml b/releases/release-1.25/release-notes/maps/pr-110656-map.yaml index b26a1cfbaf5..2a314d03700 100644 --- a/releases/release-1.25/release-notes/maps/pr-110656-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110656-map.yaml @@ -1,3 +1,3 @@ -pr: 110656 -releasenote: - text: 'Kubeadm: Fixed duplicate `unix://` prefix in node annotation.' +pr: 110656 +releasenote: + text: 'Kubeadm: Fixed duplicate `unix://` prefix in node annotation.' diff --git a/releases/release-1.25/release-notes/maps/pr-110668-map.yaml b/releases/release-1.25/release-notes/maps/pr-110668-map.yaml index 3bee9b14c26..14b4958d2bf 100644 --- a/releases/release-1.25/release-notes/maps/pr-110668-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110668-map.yaml @@ -1,3 +1,3 @@ -pr: 110668 -releasenote: - text: Removed unused flags from `kubectl run` command. +pr: 110668 +releasenote: + text: Removed unused flags from `kubectl run` command. diff --git a/releases/release-1.25/release-notes/maps/pr-110670-map.yaml b/releases/release-1.25/release-notes/maps/pr-110670-map.yaml index 2c7cdded23e..d5fefb61815 100644 --- a/releases/release-1.25/release-notes/maps/pr-110670-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110670-map.yaml @@ -1,4 +1,4 @@ -pr: 110670 -releasenote: - text: Unmounted volumes correctly for reconstructed volumes even if mount operation - fails after kubelet restart. +pr: 110670 +releasenote: + text: Unmounted volumes correctly for reconstructed volumes even if mount operation + fails after kubelet restart. diff --git a/releases/release-1.25/release-notes/maps/pr-110688-map.yaml b/releases/release-1.25/release-notes/maps/pr-110688-map.yaml index 4cca3fbe7fa..0e81e46ac43 100644 --- a/releases/release-1.25/release-notes/maps/pr-110688-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110688-map.yaml @@ -1,3 +1,3 @@ -pr: 110688 -releasenote: - text: Fixed mounting of iSCSI volumes over IPv6 networks. +pr: 110688 +releasenote: + text: Fixed mounting of iSCSI volumes over IPv6 networks. diff --git a/releases/release-1.25/release-notes/maps/pr-110691-map.yaml b/releases/release-1.25/release-notes/maps/pr-110691-map.yaml index 7af16886233..151a39a397f 100644 --- a/releases/release-1.25/release-notes/maps/pr-110691-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110691-map.yaml @@ -1,3 +1,3 @@ -pr: 110691 -releasenote: - text: Run kubelet, when there is an error exit, print the error log. +pr: 110691 +releasenote: + text: Run kubelet, when there is an error exit, print the error log. diff --git a/releases/release-1.25/release-notes/maps/pr-110703-map.yaml b/releases/release-1.25/release-notes/maps/pr-110703-map.yaml index b55153b57c7..994525cf126 100644 --- a/releases/release-1.25/release-notes/maps/pr-110703-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110703-map.yaml @@ -1,3 +1,3 @@ -pr: 110703 -releasenote: - text: The beta feature `ServiceIPStaticSubrange` is now enabled by default. +pr: 110703 +releasenote: + text: The beta feature `ServiceIPStaticSubrange` is now enabled by default. diff --git a/releases/release-1.25/release-notes/maps/pr-110709-map.yaml b/releases/release-1.25/release-notes/maps/pr-110709-map.yaml index 7efaf885a1d..7caf4d86dcc 100644 --- a/releases/release-1.25/release-notes/maps/pr-110709-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110709-map.yaml @@ -1,4 +1,4 @@ -pr: 110709 -releasenote: - text: The commands `kubeadm certs renew` and `kubeadm certs check-expiration` now honor the - `cert-dir` flag on a running Kubernetes cluster. +pr: 110709 +releasenote: + text: The commands `kubeadm certs renew` and `kubeadm certs check-expiration` now honor the + `cert-dir` flag on a running Kubernetes cluster. diff --git a/releases/release-1.25/release-notes/maps/pr-110719-map.yaml b/releases/release-1.25/release-notes/maps/pr-110719-map.yaml index 52ed4fca545..c052ef60329 100644 --- a/releases/release-1.25/release-notes/maps/pr-110719-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110719-map.yaml @@ -1,4 +1,4 @@ -pr: 110719 -releasenote: - text: FibreChannel volume plugin may match the wrong device and wrong associated - devicemapper parent. This may cause a disater that pods attach wrong disks. +pr: 110719 +releasenote: + text: FibreChannel volume plugin may match the wrong device and wrong associated + devicemapper parent. This may cause a disater that pods attach wrong disks. diff --git a/releases/release-1.25/release-notes/maps/pr-110721-map.yaml b/releases/release-1.25/release-notes/maps/pr-110721-map.yaml index c566957edc6..e4d4f962fe9 100644 --- a/releases/release-1.25/release-notes/maps/pr-110721-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110721-map.yaml @@ -1,5 +1,5 @@ -pr: 110721 -releasenote: - text: Volumes are no longer detached from healthy nodes after 6 minutes timeout. 6 - minute force-detach timeout is used only for unhealthy nodes (`node.status.conditions["Ready"]!= - true`). +pr: 110721 +releasenote: + text: Volumes are no longer detached from healthy nodes after 6 minutes timeout. 6 + minute force-detach timeout is used only for unhealthy nodes (`node.status.conditions["Ready"]!= + true`). diff --git a/releases/release-1.25/release-notes/maps/pr-110728-map.yaml b/releases/release-1.25/release-notes/maps/pr-110728-map.yaml index 021cbf39574..15d93159bc2 100644 --- a/releases/release-1.25/release-notes/maps/pr-110728-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110728-map.yaml @@ -1,3 +1,3 @@ -pr: 110728 -releasenote: - text: 'Kubelet: Silenced flag output on errors.' +pr: 110728 +releasenote: + text: 'Kubelet: Silenced flag output on errors.' diff --git a/releases/release-1.25/release-notes/maps/pr-110748-map.yaml b/releases/release-1.25/release-notes/maps/pr-110748-map.yaml index 37db4923b04..031721cf022 100644 --- a/releases/release-1.25/release-notes/maps/pr-110748-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110748-map.yaml @@ -1,3 +1,3 @@ -pr: 110748 -releasenote: - text: Removed branch `release-1.20` from prom bot due to EOL. +pr: 110748 +releasenote: + text: Removed branch `release-1.20` from prom bot due to EOL. diff --git a/releases/release-1.25/release-notes/maps/pr-110764-map.yaml b/releases/release-1.25/release-notes/maps/pr-110764-map.yaml index f77151cde6d..9b6270d8fd2 100644 --- a/releases/release-1.25/release-notes/maps/pr-110764-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110764-map.yaml @@ -1,3 +1,3 @@ -pr: 110764 -releasenote: - text: Improved `kubectl run` and `kubectl debug` error messages upon attaching failures. +pr: 110764 +releasenote: + text: Improved `kubectl run` and `kubectl debug` error messages upon attaching failures. diff --git a/releases/release-1.25/release-notes/maps/pr-110791-map.yaml b/releases/release-1.25/release-notes/maps/pr-110791-map.yaml index 5a05cdfb98a..5599634c132 100644 --- a/releases/release-1.25/release-notes/maps/pr-110791-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110791-map.yaml @@ -1,4 +1,4 @@ -pr: 110791 -releasenote: - text: 'kubeadm: a bug was fixed due to which configurable `KubernetesVersion` was - not being respected during kubeadm join.' +pr: 110791 +releasenote: + text: 'kubeadm: a bug was fixed due to which configurable `KubernetesVersion` was + not being respected during kubeadm join.' diff --git a/releases/release-1.25/release-notes/maps/pr-110868-map.yaml b/releases/release-1.25/release-notes/maps/pr-110868-map.yaml index 6dded46c629..6de1d063e3c 100644 --- a/releases/release-1.25/release-notes/maps/pr-110868-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110868-map.yaml @@ -1,10 +1,10 @@ -pr: 110868 -releasenote: - text: |- - The `endPort` field in Network Policy is now promoted to GA - - Network Policy providers that support `endPort` field now can use it to specify a range of ports to apply a Network Policy. - - Previously, each Network Policy could only target a single port. - - Please be aware that `endPort` field MUST BE SUPPORTED by the Network Policy provider. In case your provider does not support `endPort` and this field is specified in a Network Policy, the Network Policy will be created covering only the port field (single port). +pr: 110868 +releasenote: + text: |- + The `endPort` field in Network Policy is now promoted to GA + + Network Policy providers that support `endPort` field now can use it to specify a range of ports to apply a Network Policy. + + Previously, each Network Policy could only target a single port. + + Please be aware that `endPort` field MUST BE SUPPORTED by the Network Policy provider. In case your provider does not support `endPort` and this field is specified in a Network Policy, the Network Policy will be created covering only the port field (single port). diff --git a/releases/release-1.25/release-notes/maps/pr-110914-map.yaml b/releases/release-1.25/release-notes/maps/pr-110914-map.yaml index d65d025b02d..32fd3bb1119 100644 --- a/releases/release-1.25/release-notes/maps/pr-110914-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110914-map.yaml @@ -1,3 +1,3 @@ -pr: 110914 -releasenote: - text: '`pod.Spec.RuntimeClassName` field is now available in kubectl describe command.' +pr: 110914 +releasenote: + text: '`pod.Spec.RuntimeClassName` field is now available in kubectl describe command.' diff --git a/releases/release-1.25/release-notes/maps/pr-110940-map.yaml b/releases/release-1.25/release-notes/maps/pr-110940-map.yaml index 99966454f2d..b583a1321be 100644 --- a/releases/release-1.25/release-notes/maps/pr-110940-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110940-map.yaml @@ -1,4 +1,4 @@ -pr: 110940 -releasenote: - text: The kubelet no longer supports collecting accelerator metrics through cAdvisor. - The feature gate `DisableAcceleratorUsageMetrics` is now GA and cannot be disabled. +pr: 110940 +releasenote: + text: The kubelet no longer supports collecting accelerator metrics through cAdvisor. + The feature gate `DisableAcceleratorUsageMetrics` is now GA and cannot be disabled. diff --git a/releases/release-1.25/release-notes/maps/pr-110948-map.yaml b/releases/release-1.25/release-notes/maps/pr-110948-map.yaml index adb24b4a826..8f17c724244 100644 --- a/releases/release-1.25/release-notes/maps/pr-110948-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110948-map.yaml @@ -1,4 +1,4 @@ -pr: 110948 -releasenote: - text: | - ` JobTrackingWithFinalizers` enabled by default. This feature allows to keep track of the Job progress without relying on Pods staying in the apiserver. +pr: 110948 +releasenote: + text: | + ` JobTrackingWithFinalizers` enabled by default. This feature allows to keep track of the Job progress without relying on Pods staying in the apiserver. diff --git a/releases/release-1.25/release-notes/maps/pr-110957-map.yaml b/releases/release-1.25/release-notes/maps/pr-110957-map.yaml index 8298f93c828..d74b3e5f233 100644 --- a/releases/release-1.25/release-notes/maps/pr-110957-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110957-map.yaml @@ -1,3 +1,3 @@ -pr: 110957 -releasenote: - text: Windows winkernel kube-proxy no longer supports Windows HNS v1 APIs. +pr: 110957 +releasenote: + text: Windows winkernel kube-proxy no longer supports Windows HNS v1 APIs. diff --git a/releases/release-1.25/release-notes/maps/pr-110959-map.yaml b/releases/release-1.25/release-notes/maps/pr-110959-map.yaml index 7515eb33578..1f53e8bbde6 100644 --- a/releases/release-1.25/release-notes/maps/pr-110959-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-110959-map.yaml @@ -1,8 +1,8 @@ -pr: 110959 -releasenote: - text: |- - Introduction of the `DisruptionTarget` pod condition type. Its `reason` field indicates the reason for pod termination: - - PreemptionByKubeScheduler (Pod preempted by kube-scheduler) - - DeletionByTaintManager (Pod deleted by taint manager due to NoExecute taint) - - EvictionByEvictionAPI (Pod evicted by Eviction API) - - DeletionByPodGC (an orphaned Pod deleted by PodGC) +pr: 110959 +releasenote: + text: |- + Introduction of the `DisruptionTarget` pod condition type. Its `reason` field indicates the reason for pod termination: + - PreemptionByKubeScheduler (Pod preempted by kube-scheduler) + - DeletionByTaintManager (Pod deleted by taint manager due to NoExecute taint) + - EvictionByEvictionAPI (Pod evicted by Eviction API) + - DeletionByPodGC (an orphaned Pod deleted by PodGC) diff --git a/releases/release-1.25/release-notes/maps/pr-111009-map.yaml b/releases/release-1.25/release-notes/maps/pr-111009-map.yaml index eb2aeebc7f1..3efedf0d614 100644 --- a/releases/release-1.25/release-notes/maps/pr-111009-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111009-map.yaml @@ -1,4 +1,4 @@ -pr: 111009 -releasenote: - text: UserName check for 'ContainerAdministrator' is now case-insensitive if runAsNonRoot - is set to true on Windows. +pr: 111009 +releasenote: + text: UserName check for 'ContainerAdministrator' is now case-insensitive if runAsNonRoot + is set to true on Windows. diff --git a/releases/release-1.25/release-notes/maps/pr-111026-map.yaml b/releases/release-1.25/release-notes/maps/pr-111026-map.yaml index 5e46af69289..6b766e5d2ab 100644 --- a/releases/release-1.25/release-notes/maps/pr-111026-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111026-map.yaml @@ -1,4 +1,4 @@ -pr: 111026 -releasenote: - text: A bug was fixed where a job sync was not retried in case of a transient ResourceQuota - conflict. +pr: 111026 +releasenote: + text: A bug was fixed where a job sync was not retried in case of a transient ResourceQuota + conflict. diff --git a/releases/release-1.25/release-notes/maps/pr-111033-map.yaml b/releases/release-1.25/release-notes/maps/pr-111033-map.yaml index c34228ff358..46560071938 100644 --- a/releases/release-1.25/release-notes/maps/pr-111033-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111033-map.yaml @@ -1,3 +1,3 @@ -pr: 111033 -releasenote: - text: Metric `running_managed_controllers` is enabled for Cloud Node Lifecycle controller. +pr: 111033 +releasenote: + text: Metric `running_managed_controllers` is enabled for Cloud Node Lifecycle controller. diff --git a/releases/release-1.25/release-notes/maps/pr-111060-map.yaml b/releases/release-1.25/release-notes/maps/pr-111060-map.yaml index 44737d76968..3eb213486bb 100644 --- a/releases/release-1.25/release-notes/maps/pr-111060-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111060-map.yaml @@ -1,4 +1,4 @@ -pr: 111060 -releasenote: - text: For Linux, `kube-proxy` uses a new “distroless” container image, instead of - an image based on Debian. +pr: 111060 +releasenote: + text: For Linux, `kube-proxy` uses a new “distroless” container image, instead of + an image based on Debian. diff --git a/releases/release-1.25/release-notes/maps/pr-111061-map.yaml b/releases/release-1.25/release-notes/maps/pr-111061-map.yaml index ebfc0c9ef0a..e6b4f4f549b 100644 --- a/releases/release-1.25/release-notes/maps/pr-111061-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111061-map.yaml @@ -1,3 +1,3 @@ -pr: 111061 -releasenote: - text: Made usage of key encipherment optional in API validation. +pr: 111061 +releasenote: + text: Made usage of key encipherment optional in API validation. diff --git a/releases/release-1.25/release-notes/maps/pr-111090-map.yaml b/releases/release-1.25/release-notes/maps/pr-111090-map.yaml index c5c5090d034..8dcda92a49c 100644 --- a/releases/release-1.25/release-notes/maps/pr-111090-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111090-map.yaml @@ -1,4 +1,4 @@ -pr: 111090 -releasenote: - text: 'Added alpha support for user namespaces in pods phase 1 (KEP 127, feature - gate: UserNamespacesStatelessPodsSupport)' +pr: 111090 +releasenote: + text: 'Added alpha support for user namespaces in pods phase 1 (KEP 127, feature + gate: UserNamespacesStatelessPodsSupport)' diff --git a/releases/release-1.25/release-notes/maps/pr-111113-map.yaml b/releases/release-1.25/release-notes/maps/pr-111113-map.yaml index e36e82579bd..ae39bfb6882 100644 --- a/releases/release-1.25/release-notes/maps/pr-111113-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111113-map.yaml @@ -1,4 +1,4 @@ -pr: 111113 -releasenote: - text: Introduced support for handling pod failures with respect to the configured - pod failure policy rules. +pr: 111113 +releasenote: + text: Introduced support for handling pod failures with respect to the configured + pod failure policy rules. diff --git a/releases/release-1.25/release-notes/maps/pr-111119-map.yaml b/releases/release-1.25/release-notes/maps/pr-111119-map.yaml index 4c7b09297ba..83b242396d1 100644 --- a/releases/release-1.25/release-notes/maps/pr-111119-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111119-map.yaml @@ -1,4 +1,4 @@ -pr: 111119 -releasenote: - text: Encrypted data with DEK using AES-GCM instead of AES-CBC for kms data encryption. - No user action required. Reads with AES-GCM and AES-CBC will continue to be allowed. +pr: 111119 +releasenote: + text: Encrypted data with DEK using AES-GCM instead of AES-CBC for kms data encryption. + No user action required. Reads with AES-GCM and AES-CBC will continue to be allowed. diff --git a/releases/release-1.25/release-notes/maps/pr-111126-map.yaml b/releases/release-1.25/release-notes/maps/pr-111126-map.yaml index 263f4083acd..23c54bd96e7 100644 --- a/releases/release-1.25/release-notes/maps/pr-111126-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111126-map.yaml @@ -1,3 +1,3 @@ -pr: 111126 -releasenote: - text: Added KMS v2alpha1 support. +pr: 111126 +releasenote: + text: Added KMS v2alpha1 support. diff --git a/releases/release-1.25/release-notes/maps/pr-111186-map.yaml b/releases/release-1.25/release-notes/maps/pr-111186-map.yaml index 319162a7c07..54bb52633a3 100644 --- a/releases/release-1.25/release-notes/maps/pr-111186-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111186-map.yaml @@ -1,4 +1,4 @@ -pr: 111186 -releasenote: - text: Fixed the GCE firewall update when the destination IPs are changing so that - firewalls reflect the IP updates of the LBs. +pr: 111186 +releasenote: + text: Fixed the GCE firewall update when the destination IPs are changing so that + firewalls reflect the IP updates of the LBs. diff --git a/releases/release-1.25/release-notes/maps/pr-111192-map.yaml b/releases/release-1.25/release-notes/maps/pr-111192-map.yaml index ba426f9bcc5..de8625e335e 100644 --- a/releases/release-1.25/release-notes/maps/pr-111192-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111192-map.yaml @@ -1,3 +1,3 @@ -pr: 111192 -releasenote: - text: Added Service Account field in the output of `kubectl describe pod` command. +pr: 111192 +releasenote: + text: Added Service Account field in the output of `kubectl describe pod` command. diff --git a/releases/release-1.25/release-notes/maps/pr-111194-map.yaml b/releases/release-1.25/release-notes/maps/pr-111194-map.yaml index 3e9a25bb095..c72c7b47630 100644 --- a/releases/release-1.25/release-notes/maps/pr-111194-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111194-map.yaml @@ -1,6 +1,6 @@ -pr: 111194 -releasenote: - text: Promoted DaemonSet MaxSurge to GA. This means `--feature-gates=DaemonSetUpdateSurge=true` - are not needed on kube-apiserver and kube-controller-manager binaries and they'll - be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation - . +pr: 111194 +releasenote: + text: Promoted DaemonSet MaxSurge to GA. This means `--feature-gates=DaemonSetUpdateSurge=true` + are not needed on kube-apiserver and kube-controller-manager binaries and they'll + be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation + . diff --git a/releases/release-1.25/release-notes/maps/pr-111206-map.yaml b/releases/release-1.25/release-notes/maps/pr-111206-map.yaml index ff3639e6c64..f86db39c1e4 100644 --- a/releases/release-1.25/release-notes/maps/pr-111206-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111206-map.yaml @@ -1,4 +1,4 @@ -pr: 111206 -releasenote: - text: 'scheduler: included supported ScoringStrategyType list in error message for - NodeResourcesFit plugin' +pr: 111206 +releasenote: + text: 'scheduler: included supported ScoringStrategyType list in error message for + NodeResourcesFit plugin' diff --git a/releases/release-1.25/release-notes/maps/pr-111229-map.yaml b/releases/release-1.25/release-notes/maps/pr-111229-map.yaml index f744350d0fd..15aa2932394 100644 --- a/releases/release-1.25/release-notes/maps/pr-111229-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111229-map.yaml @@ -1,5 +1,5 @@ -pr: 111229 -releasenote: - text: The Pod `spec.podOS` field is promoted to GA. The `IdentifyPodOS` feature - gate unconditionally enabled, and will no longer be accepted as a `--feature-gates` - parameter in 1.27. +pr: 111229 +releasenote: + text: The Pod `spec.podOS` field is promoted to GA. The `IdentifyPodOS` feature + gate unconditionally enabled, and will no longer be accepted as a `--feature-gates` + parameter in 1.27. diff --git a/releases/release-1.25/release-notes/maps/pr-111254-map.yaml b/releases/release-1.25/release-notes/maps/pr-111254-map.yaml index 6a23f0923c7..03ae402192e 100644 --- a/releases/release-1.25/release-notes/maps/pr-111254-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111254-map.yaml @@ -1,4 +1,4 @@ -pr: 111254 -releasenote: - text: For v1.25, Kubernetes will be using golang 1.19, In this PR the version is updated to 1.19rc2 - as GA is not yet available. +pr: 111254 +releasenote: + text: For v1.25, Kubernetes will be using golang 1.19, In this PR the version is updated to 1.19rc2 + as GA is not yet available. diff --git a/releases/release-1.25/release-notes/maps/pr-111255-map.yaml b/releases/release-1.25/release-notes/maps/pr-111255-map.yaml index b7984552fa5..4e83a12e060 100644 --- a/releases/release-1.25/release-notes/maps/pr-111255-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111255-map.yaml @@ -1,5 +1,5 @@ -pr: 111255 -releasenote: - text: vSphere releases less than 7.0u2 are not supported for in-tree vSphere volume as - of Kubernetes v1.25. Please consider upgrading vSphere (both ESXi and vCenter) to - 7.0u2 or above. +pr: 111255 +releasenote: + text: vSphere releases less than 7.0u2 are not supported for in-tree vSphere volume as + of Kubernetes v1.25. Please consider upgrading vSphere (both ESXi and vCenter) to + 7.0u2 or above. diff --git a/releases/release-1.25/release-notes/maps/pr-111258-map.yaml b/releases/release-1.25/release-notes/maps/pr-111258-map.yaml index ac35f160268..cca31c36cb5 100644 --- a/releases/release-1.25/release-notes/maps/pr-111258-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111258-map.yaml @@ -1,3 +1,3 @@ -pr: 111258 -releasenote: - text: The `CSIInlineVolume` feature has moved from beta to GA. +pr: 111258 +releasenote: + text: The `CSIInlineVolume` feature has moved from beta to GA. diff --git a/releases/release-1.25/release-notes/maps/pr-111278-map.yaml b/releases/release-1.25/release-notes/maps/pr-111278-map.yaml index 5ce69b1da65..0df95619e92 100644 --- a/releases/release-1.25/release-notes/maps/pr-111278-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111278-map.yaml @@ -1,4 +1,4 @@ -pr: 111278 -releasenote: - text: Added a new `align-by-socket` policy option to cpu manager `static` policy. When - enabled CPU's to be aligned at socket boundary rather than NUMA boundary. +pr: 111278 +releasenote: + text: Added a new `align-by-socket` policy option to cpu manager `static` policy. When + enabled CPU's to be aligned at socket boundary rather than NUMA boundary. diff --git a/releases/release-1.25/release-notes/maps/pr-111301-map.yaml b/releases/release-1.25/release-notes/maps/pr-111301-map.yaml index 3ec0f1c3bc0..e981a668d8c 100644 --- a/releases/release-1.25/release-notes/maps/pr-111301-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111301-map.yaml @@ -1,4 +1,4 @@ -pr: 111301 -releasenote: - text: | - `CSIMigrationGCE` upgraded to GA and locked to true. +pr: 111301 +releasenote: + text: | + `CSIMigrationGCE` upgraded to GA and locked to true. diff --git a/releases/release-1.25/release-notes/maps/pr-111319-map.yaml b/releases/release-1.25/release-notes/maps/pr-111319-map.yaml index ea4fa18f68e..c13eb4c691c 100644 --- a/releases/release-1.25/release-notes/maps/pr-111319-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111319-map.yaml @@ -1,5 +1,5 @@ -pr: 111319 -releasenote: - text: The `kubectl diff` changed to ignore managed fields by default, and a new - --show-managed-fields flag has been added to allow you to include managed fields - in the diff. +pr: 111319 +releasenote: + text: The `kubectl diff` changed to ignore managed fields by default, and a new + --show-managed-fields flag has been added to allow you to include managed fields + in the diff. diff --git a/releases/release-1.25/release-notes/maps/pr-111358-map.yaml b/releases/release-1.25/release-notes/maps/pr-111358-map.yaml index b4a49abd3aa..01f5345ad6d 100644 --- a/releases/release-1.25/release-notes/maps/pr-111358-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111358-map.yaml @@ -1,3 +1,3 @@ -pr: 111358 -releasenote: - text: Introduced PodHasNetwork condition for pods. +pr: 111358 +releasenote: + text: Introduced PodHasNetwork condition for pods. diff --git a/releases/release-1.25/release-notes/maps/pr-111383-map.yaml b/releases/release-1.25/release-notes/maps/pr-111383-map.yaml index ca22b5b22f2..4cca1d2eb02 100644 --- a/releases/release-1.25/release-notes/maps/pr-111383-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111383-map.yaml @@ -1,5 +1,5 @@ -pr: 111383 -releasenote: - text: 'kubeadm: enabled the --experimental-watch-progress-notify-interval flag for - etcd and set it to 5s. The flag specifies an interval at which etcd sends watch - data to the kube-apiserver.' +pr: 111383 +releasenote: + text: 'kubeadm: enabled the --experimental-watch-progress-notify-interval flag for + etcd and set it to 5s. The flag specifies an interval at which etcd sends watch + data to the kube-apiserver.' diff --git a/releases/release-1.25/release-notes/maps/pr-111399-map.yaml b/releases/release-1.25/release-notes/maps/pr-111399-map.yaml index c8276f03131..707daab8828 100644 --- a/releases/release-1.25/release-notes/maps/pr-111399-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111399-map.yaml @@ -1,4 +1,4 @@ -pr: 111399 -releasenote: - text: The new flag `etcd-ready-timeout` has been added. It configures a timeout - of an additional etcd check performed as part of readyz check. +pr: 111399 +releasenote: + text: The new flag `etcd-ready-timeout` has been added. It configures a timeout + of an additional etcd check performed as part of readyz check. diff --git a/releases/release-1.25/release-notes/maps/pr-111402-map.yaml b/releases/release-1.25/release-notes/maps/pr-111402-map.yaml index c1f291f64b8..7fff6e9e56f 100644 --- a/releases/release-1.25/release-notes/maps/pr-111402-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111402-map.yaml @@ -1,8 +1,8 @@ -pr: 111402 -releasenote: - text: '[Ephemeral Containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) - are now generally available (GA). The `EphemeralContainers` feature gate is always - enabled and should be removed from `--feature-gates` flag on the kube-apiserver - and the kubelet command lines. The `EphemeralContainers` feature gate is [deprecated - and scheduled for removal](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation) in - a future release.' +pr: 111402 +releasenote: + text: '[Ephemeral Containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) + are now generally available (GA). The `EphemeralContainers` feature gate is always + enabled and should be removed from `--feature-gates` flag on the kube-apiserver + and the kubelet command lines. The `EphemeralContainers` feature gate is [deprecated + and scheduled for removal](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation) in + a future release.' diff --git a/releases/release-1.25/release-notes/maps/pr-111406-map.yaml b/releases/release-1.25/release-notes/maps/pr-111406-map.yaml index 4d89f8fe4d7..2b0fc90dd20 100644 --- a/releases/release-1.25/release-notes/maps/pr-111406-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111406-map.yaml @@ -1,3 +1,3 @@ -pr: 111406 -releasenote: - text: Updated max azure data disk count map with new VM types. +pr: 111406 +releasenote: + text: Updated max azure data disk count map with new VM types. diff --git a/releases/release-1.25/release-notes/maps/pr-111411-map.yaml b/releases/release-1.25/release-notes/maps/pr-111411-map.yaml index 449e2cf45b4..2fbd95081b2 100644 --- a/releases/release-1.25/release-notes/maps/pr-111411-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111411-map.yaml @@ -1,6 +1,6 @@ -pr: 111411 -releasenote: - text: The command line flag `enable-taint-manager` for kube-controller-manager is - deprecated and will be removed in 1.26. The feature that it supports, taint based - eviction, is enabled by default and will continue to be implicitly enabled when - the flag is removed. +pr: 111411 +releasenote: + text: The command line flag `enable-taint-manager` for kube-controller-manager is + deprecated and will be removed in 1.26. The feature that it supports, taint based + eviction, is enabled by default and will continue to be implicitly enabled when + the flag is removed. diff --git a/releases/release-1.25/release-notes/maps/pr-111435-map.yaml b/releases/release-1.25/release-notes/maps/pr-111435-map.yaml index 6f1ff56e418..6c2cea6e642 100644 --- a/releases/release-1.25/release-notes/maps/pr-111435-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111435-map.yaml @@ -1,3 +1,3 @@ -pr: 111435 -releasenote: - text: Promoted CronJob's TimeZone support to beta. +pr: 111435 +releasenote: + text: Promoted CronJob's TimeZone support to beta. diff --git a/releases/release-1.25/release-notes/maps/pr-111439-map.yaml b/releases/release-1.25/release-notes/maps/pr-111439-map.yaml index 57843bc2611..0335c3c45d3 100644 --- a/releases/release-1.25/release-notes/maps/pr-111439-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111439-map.yaml @@ -1,3 +1,3 @@ -pr: 111439 -releasenote: - text: Windows kubelet plugin Watcher now working as intended. +pr: 111439 +releasenote: + text: Windows kubelet plugin Watcher now working as intended. diff --git a/releases/release-1.25/release-notes/maps/pr-111441-map.yaml b/releases/release-1.25/release-notes/maps/pr-111441-map.yaml index aea38493e3c..f4b423cefb5 100644 --- a/releases/release-1.25/release-notes/maps/pr-111441-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111441-map.yaml @@ -1,3 +1,3 @@ -pr: 111441 -releasenote: - text: The PodTopologySpread is respected after rolling upgrades. +pr: 111441 +releasenote: + text: The PodTopologySpread is respected after rolling upgrades. diff --git a/releases/release-1.25/release-notes/maps/pr-111462-map.yaml b/releases/release-1.25/release-notes/maps/pr-111462-map.yaml index 87a5a1894d7..8cac49cb99a 100644 --- a/releases/release-1.25/release-notes/maps/pr-111462-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111462-map.yaml @@ -1,4 +1,4 @@ -pr: 111462 -releasenote: - text: Metric `running_managed_controllers` is enabled for Route,Service and Cloud - Node controllers in KCM and CCM. +pr: 111462 +releasenote: + text: Metric `running_managed_controllers` is enabled for Route,Service and Cloud + Node controllers in KCM and CCM. diff --git a/releases/release-1.25/release-notes/maps/pr-111466-map.yaml b/releases/release-1.25/release-notes/maps/pr-111466-map.yaml index 3d9fa936c15..4f2e37a7053 100644 --- a/releases/release-1.25/release-notes/maps/pr-111466-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111466-map.yaml @@ -1,4 +1,4 @@ -pr: 111466 -releasenote: - text: Metric `running_managed_controllers` is enabled for Node IPAM controller in - KCM. +pr: 111466 +releasenote: + text: Metric `running_managed_controllers` is enabled for Node IPAM controller in + KCM. diff --git a/releases/release-1.25/release-notes/maps/pr-111467-map.yaml b/releases/release-1.25/release-notes/maps/pr-111467-map.yaml index 90f9d699b18..fbea408371e 100644 --- a/releases/release-1.25/release-notes/maps/pr-111467-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111467-map.yaml @@ -1,5 +1,5 @@ -pr: 111467 -releasenote: - text: PersistentVolumeClaim objects are no longer left with storage class set to - `nil` forever, but will be updated retroactively once any StorageClass is set - or created as default. +pr: 111467 +releasenote: + text: PersistentVolumeClaim objects are no longer left with storage class set to + `nil` forever, but will be updated retroactively once any StorageClass is set + or created as default. diff --git a/releases/release-1.25/release-notes/maps/pr-111472-map.yaml b/releases/release-1.25/release-notes/maps/pr-111472-map.yaml index a7a9db21467..57285bcf59a 100644 --- a/releases/release-1.25/release-notes/maps/pr-111472-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111472-map.yaml @@ -1,4 +1,4 @@ -pr: 111472 -releasenote: - text: The namespace editors and admins can now create leases.coordination.k8s.io - and should use this type for leaderelection instead of configmaps. +pr: 111472 +releasenote: + text: The namespace editors and admins can now create leases.coordination.k8s.io + and should use this type for leaderelection instead of configmaps. diff --git a/releases/release-1.25/release-notes/maps/pr-111475-map.yaml b/releases/release-1.25/release-notes/maps/pr-111475-map.yaml index 8a2f870ad99..5922d53421e 100644 --- a/releases/release-1.25/release-notes/maps/pr-111475-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111475-map.yaml @@ -1,4 +1,4 @@ -pr: 111475 -releasenote: - text: If a Pod has a DisruptionTarget condition with status=True for more than 2 - minutes without getting a DeletionTimestamp, the control plane resets it to status=False. +pr: 111475 +releasenote: + text: If a Pod has a DisruptionTarget condition with status=True for more than 2 + minutes without getting a DeletionTimestamp, the control plane resets it to status=False. diff --git a/releases/release-1.25/release-notes/maps/pr-111479-map.yaml b/releases/release-1.25/release-notes/maps/pr-111479-map.yaml index aceaa82494a..5df61928b2c 100644 --- a/releases/release-1.25/release-notes/maps/pr-111479-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111479-map.yaml @@ -1,4 +1,4 @@ -pr: 111479 -releasenote: - text: | - `CSIMigrationAWS` upgraded to GA and locked to true. +pr: 111479 +releasenote: + text: | + `CSIMigrationAWS` upgraded to GA and locked to true. diff --git a/releases/release-1.25/release-notes/maps/pr-111481-map.yaml b/releases/release-1.25/release-notes/maps/pr-111481-map.yaml index d0f675b5e5e..34079f6b1dd 100644 --- a/releases/release-1.25/release-notes/maps/pr-111481-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111481-map.yaml @@ -1,4 +1,4 @@ -pr: 111481 -releasenote: - text: Added e2e test flag to specify which volume drivers should be installed. This deprecated - the ENABLE_STORAGE_GCE_PD_DRIVER environment variable. +pr: 111481 +releasenote: + text: Added e2e test flag to specify which volume drivers should be installed. This deprecated + the ENABLE_STORAGE_GCE_PD_DRIVER environment variable. diff --git a/releases/release-1.25/release-notes/maps/pr-111485-map.yaml b/releases/release-1.25/release-notes/maps/pr-111485-map.yaml index 1774bc1b75e..c3eb4b61eef 100644 --- a/releases/release-1.25/release-notes/maps/pr-111485-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111485-map.yaml @@ -1,4 +1,4 @@ -pr: 111485 -releasenote: - text: GlusterFS provisioner (`kubernetes.io/glusterfs`) has been deprecated in this - release. +pr: 111485 +releasenote: + text: GlusterFS provisioner (`kubernetes.io/glusterfs`) has been deprecated in this + release. diff --git a/releases/release-1.25/release-notes/maps/pr-111513-map.yaml b/releases/release-1.25/release-notes/maps/pr-111513-map.yaml index 438203f0d24..3c5fc4e20b0 100644 --- a/releases/release-1.25/release-notes/maps/pr-111513-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111513-map.yaml @@ -1,6 +1,6 @@ -pr: 111513 -releasenote: - text: Local Storage Capacity Isolation feature is GA in 1.25 release. For systems - (rootless) that cannot check root file system, please use kubelet config --local-storage-capacity-isolation=false - to disable this feature. Once disabled, pod cannot set local ephemeral storage - request/limit, and emptyDir sizeLimit niether. +pr: 111513 +releasenote: + text: Local Storage Capacity Isolation feature is GA in 1.25 release. For systems + (rootless) that cannot check root file system, please use kubelet config --local-storage-capacity-isolation=false + to disable this feature. Once disabled, pod cannot set local ephemeral storage + request/limit, and emptyDir sizeLimit niether. diff --git a/releases/release-1.25/release-notes/maps/pr-111524-map.yaml b/releases/release-1.25/release-notes/maps/pr-111524-map.yaml index d8d9aa2b484..1423bb52224 100644 --- a/releases/release-1.25/release-notes/maps/pr-111524-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111524-map.yaml @@ -1,4 +1,4 @@ -pr: 111524 -releasenote: - text: Graduated `CustomResourceValidationExpressions` to `beta`. The `CustomResourceValidationExpressions` - feature gate is now enabled by default. +pr: 111524 +releasenote: + text: Graduated `CustomResourceValidationExpressions` to `beta`. The `CustomResourceValidationExpressions` + feature gate is now enabled by default. diff --git a/releases/release-1.25/release-notes/maps/pr-111547-map.yaml b/releases/release-1.25/release-notes/maps/pr-111547-map.yaml index 0084a0becb3..9469fa49f33 100644 --- a/releases/release-1.25/release-notes/maps/pr-111547-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111547-map.yaml @@ -1,3 +1,3 @@ -pr: 111547 -releasenote: - text: The kube-scheduler ComponentConfig v1beta2 is deprecated in v1.25. +pr: 111547 +releasenote: + text: The kube-scheduler ComponentConfig v1beta2 is deprecated in v1.25. diff --git a/releases/release-1.25/release-notes/maps/pr-111557-map.yaml b/releases/release-1.25/release-notes/maps/pr-111557-map.yaml index 8ca6027919c..c797fe592bb 100644 --- a/releases/release-1.25/release-notes/maps/pr-111557-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111557-map.yaml @@ -1,4 +1,4 @@ -pr: 111557 -releasenote: - text: Fixed performance issue when creating large objects using SSA with fully unspecified - schemas ( preserveUnknownFields ). +pr: 111557 +releasenote: + text: Fixed performance issue when creating large objects using SSA with fully unspecified + schemas ( preserveUnknownFields ). diff --git a/releases/release-1.25/release-notes/maps/pr-111606-map.yaml b/releases/release-1.25/release-notes/maps/pr-111606-map.yaml index b1ecde7a45c..cae178e2ece 100644 --- a/releases/release-1.25/release-notes/maps/pr-111606-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111606-map.yaml @@ -1,5 +1,5 @@ -pr: 111606 -releasenote: - text: |- - Upgraded functionality of `kubectl kustomize` as described at - https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.5.7. +pr: 111606 +releasenote: + text: |- + Upgraded functionality of `kubectl kustomize` as described at + https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.5.7. diff --git a/releases/release-1.25/release-notes/maps/pr-111618-map.yaml b/releases/release-1.25/release-notes/maps/pr-111618-map.yaml index be4e0b730c4..4804f89d20f 100644 --- a/releases/release-1.25/release-notes/maps/pr-111618-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111618-map.yaml @@ -1,3 +1,3 @@ -pr: 111618 -releasenote: - text: The intree volume plugin flocker support was completely removed from Kubernetes. +pr: 111618 +releasenote: + text: The intree volume plugin flocker support was completely removed from Kubernetes. diff --git a/releases/release-1.25/release-notes/maps/pr-111619-map.yaml b/releases/release-1.25/release-notes/maps/pr-111619-map.yaml index 115281933ce..5425f0f6121 100644 --- a/releases/release-1.25/release-notes/maps/pr-111619-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111619-map.yaml @@ -1,4 +1,4 @@ -pr: 111619 -releasenote: - text: The intree volume plugin quobyte support has been completely removed from - Kubernetes. +pr: 111619 +releasenote: + text: The intree volume plugin quobyte support has been completely removed from + Kubernetes. diff --git a/releases/release-1.25/release-notes/maps/pr-111620-map.yaml b/releases/release-1.25/release-notes/maps/pr-111620-map.yaml index b5c52aff641..85d48a0fd38 100644 --- a/releases/release-1.25/release-notes/maps/pr-111620-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111620-map.yaml @@ -1,4 +1,4 @@ -pr: 111620 -releasenote: - text: The intree volume plugin storageos support has been completely removed from - Kubernetes. +pr: 111620 +releasenote: + text: The intree volume plugin storageos support has been completely removed from + Kubernetes. diff --git a/releases/release-1.25/release-notes/maps/pr-111633-map.yaml b/releases/release-1.25/release-notes/maps/pr-111633-map.yaml index f52fa56ed22..71ee18b5a1b 100644 --- a/releases/release-1.25/release-notes/maps/pr-111633-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111633-map.yaml @@ -1,5 +1,5 @@ -pr: 111633 -releasenote: - text: 'ginkgo: when e2e tests are invoked through ginkgo-e2e.sh, the default now - is to use color escape sequences only when connected to a terminal. `GINKGO_NO_COLOR=y/n` - can be used to override that default.' +pr: 111633 +releasenote: + text: 'ginkgo: when e2e tests are invoked through ginkgo-e2e.sh, the default now + is to use color escape sequences only when connected to a terminal. `GINKGO_NO_COLOR=y/n` + can be used to override that default.' diff --git a/releases/release-1.25/release-notes/maps/pr-111645-map.yaml b/releases/release-1.25/release-notes/maps/pr-111645-map.yaml index e462c29c780..6a2e0235772 100644 --- a/releases/release-1.25/release-notes/maps/pr-111645-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111645-map.yaml @@ -1,5 +1,5 @@ -pr: 111645 -releasenote: - text: |- - Extended ContainerStatus CRI API to allow runtime response with container resource requests and limits that are in effect. - - UpdateContainerResources CRI API now supports both Linux and Windows. +pr: 111645 +releasenote: + text: |- + Extended ContainerStatus CRI API to allow runtime response with container resource requests and limits that are in effect. + - UpdateContainerResources CRI API now supports both Linux and Windows. diff --git a/releases/release-1.25/release-notes/maps/pr-111646-map.yaml b/releases/release-1.25/release-notes/maps/pr-111646-map.yaml index 4c48a002f15..afdcd872a3e 100644 --- a/releases/release-1.25/release-notes/maps/pr-111646-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111646-map.yaml @@ -1,4 +1,4 @@ -pr: 111646 -releasenote: - text: Fixed JobTrackingWithFinalizers when a pod succeeds after the job is considered - failed, which led to API conflicts that blocked finishing the job. +pr: 111646 +releasenote: + text: Fixed JobTrackingWithFinalizers when a pod succeeds after the job is considered + failed, which led to API conflicts that blocked finishing the job. diff --git a/releases/release-1.25/release-notes/maps/pr-111647-map.yaml b/releases/release-1.25/release-notes/maps/pr-111647-map.yaml index de5da75b36b..10a2a2c8f97 100644 --- a/releases/release-1.25/release-notes/maps/pr-111647-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111647-map.yaml @@ -1,3 +1,3 @@ -pr: 111647 -releasenote: - text: Updated cAdvisor to v0.45.0. +pr: 111647 +releasenote: + text: Updated cAdvisor to v0.45.0. diff --git a/releases/release-1.25/release-notes/maps/pr-111679-map.yaml b/releases/release-1.25/release-notes/maps/pr-111679-map.yaml index a4fbbca08bd..ab149875050 100644 --- a/releases/release-1.25/release-notes/maps/pr-111679-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111679-map.yaml @@ -1,3 +1,3 @@ -pr: 111679 -releasenote: - text: Kubernetes is now built with go 1.19.0. +pr: 111679 +releasenote: + text: Kubernetes is now built with go 1.19.0. diff --git a/releases/release-1.25/release-notes/maps/pr-111691-map.yaml b/releases/release-1.25/release-notes/maps/pr-111691-map.yaml index 3b36e4a05c6..1f62e46bfff 100644 --- a/releases/release-1.25/release-notes/maps/pr-111691-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111691-map.yaml @@ -1,4 +1,4 @@ -pr: 111691 -releasenote: - text: 'Removed the recently re-introduced schedulability predicate ([#109706](https://github.com/kubernetes/kubernetes/pull/109706)) - as to not have unschedulable nodes removed from load balancers back-end pools.' +pr: 111691 +releasenote: + text: 'Removed the recently re-introduced schedulability predicate ([#109706](https://github.com/kubernetes/kubernetes/pull/109706)) + as to not have unschedulable nodes removed from load balancers back-end pools.' diff --git a/releases/release-1.25/release-notes/maps/pr-111721-map.yaml b/releases/release-1.25/release-notes/maps/pr-111721-map.yaml index 6c229673d57..a1b05e2b38d 100644 --- a/releases/release-1.25/release-notes/maps/pr-111721-map.yaml +++ b/releases/release-1.25/release-notes/maps/pr-111721-map.yaml @@ -1,3 +1,3 @@ -pr: 111721 -releasenote: - text: Fixed memory leak in the job controller related to `JobTrackingWithFinalizers`. +pr: 111721 +releasenote: + text: Fixed memory leak in the job controller related to `JobTrackingWithFinalizers`. diff --git a/releases/release-1.25/release-notes/release-notes-draft.json b/releases/release-1.25/release-notes/release-notes-draft.json index 33651d1b207..dd349ee2252 100644 --- a/releases/release-1.25/release-notes/release-notes-draft.json +++ b/releases/release-1.25/release-notes/release-notes-draft.json @@ -1,5289 +1,5289 @@ -{ - "101882": { - "commit": "9a160ac5fbbda72b4f0ae5fd6e48e8c73810fcba", - "text": "Kubelet: wait for node allocatable ephemeral-storage data.", - "markdown": "Kubelet: wait for node allocatable ephemeral-storage data. ([#101882](https://github.com/kubernetes/kubernetes/pull/101882), [@jackfrancis](https://github.com/jackfrancis))", - "author": "jackfrancis", - "author_url": "https://github.com/jackfrancis", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/101882", - "pr_number": 101882, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true - }, - "103523": { - "commit": "ec849f4d51e05120b9ce2637a52c1d19eeb7a7b4", - "text": "`CSIMigrationvSphere` feature is now enabled by default.\n", - "markdown": "`CSIMigrationvSphere` feature is now enabled by default.\n ([#103523](https://github.com/kubernetes/kubernetes/pull/103523), [@divyenpatel](https://github.com/divyenpatel))", - "author": "divyenpatel", - "author_url": "https://github.com/divyenpatel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103523", - "pr_number": 103523, - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "104484": { - "commit": "126c07604d2ab96ff0cfe3d671bd63d578d4e63d", - "text": "Added container probe duration metrics.", - "markdown": "Added container probe duration metrics. ([#104484](https://github.com/kubernetes/kubernetes/pull/104484), [@jackfrancis](https://github.com/jackfrancis))", - "author": "jackfrancis", - "author_url": "https://github.com/jackfrancis", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104484", - "pr_number": 104484, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "104907": { - "commit": "a655368390b1294a1901d0504fd8c3e2f10ee34d", - "text": "Added a new feature gate `CheckpointRestore` to enable support to checkpoint containers. If enabled it is possible to checkpoint a container using the newly kubelet API (/checkpoint/{podNamespace}/{podName}/{containerName}).", - "markdown": "Added a new feature gate `CheckpointRestore` to enable support to checkpoint containers. If enabled it is possible to checkpoint a container using the newly kubelet API (/checkpoint/{podNamespace}/{podName}/{containerName}). ([#104907](https://github.com/kubernetes/kubernetes/pull/104907), [@adrianreber](https://github.com/adrianreber)) [SIG Node and Testing]", - "author": "adrianreber", - "author_url": "https://github.com/adrianreber", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/104907", - "pr_number": 104907, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "105100": { - "commit": "0401cc2762b65de5b1bd2e61ed77a1a4a359b80b", - "text": "Added sum feature to `kubectl top pod`", - "markdown": "Added sum feature to `kubectl top pod` ([#105100](https://github.com/kubernetes/kubernetes/pull/105100), [@lauchokyip](https://github.com/lauchokyip))", - "author": "lauchokyip", - "author_url": "https://github.com/lauchokyip", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105100", - "pr_number": 105100, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "105126": { - "commit": "d40bc18461f0f1ab2275128cb49c12c11ef8a7dc", - "text": "No", - "markdown": "No ([#105126](https://github.com/kubernetes/kubernetes/pull/105126), [@sallyom](https://github.com/sallyom)) [SIG API Machinery, Apps, Architecture, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Release, Scheduling, Storage and Testing]", - "author": "sallyom", - "author_url": "https://github.com/sallyom", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105126", - "pr_number": 105126, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "release-eng", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "apps", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "105797": { - "commit": "26348b767d63c237e3469eee89edbfdf1f04cefe", - "text": "The Go API for logging configuration in `k8s.io/component-base` was moved to `k8s.io/component-base/logs/api/v1`. The configuration file format and command line flags are the same as before.", - "markdown": "The Go API for logging configuration in `k8s.io/component-base` was moved to `k8s.io/component-base/logs/api/v1`. The configuration file format and command line flags are the same as before. ([#105797](https://github.com/kubernetes/kubernetes/pull/105797), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105797", - "pr_number": 105797, - "areas": [ - "test", - "kubelet", - "apiserver", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "cluster-lifecycle", - "instrumentation", - "testing", - "architecture" - ], - "duplicate": true, - "duplicate_kind": true - }, - "105919": { - "commit": "ec905a46119ca56f69d488ad246b60c38ea1b80a", - "text": "As of v1.25, the PodSecurity `restricted` level no longer requires pods that set .spec.os.name=\"windows\" to also set Linux-specific securityContext fields. If a 1.25+ cluster has unsupported [out-of-skew](https://kubernetes.io/releases/version-skew-policy/#kubelet) nodes prior to v1.23 and wants to ensure namespaces enforcing the `restricted` policy continue to require Linux-specific securityContext fields on all pods, ensure a version of the `restricted` prior to v1.25 is selected by labeling the namespace (for example, `pod-security.kubernetes.io/enforce-version: v1.24`)", - "markdown": "As of v1.25, the PodSecurity `restricted` level no longer requires pods that set .spec.os.name=\"windows\" to also set Linux-specific securityContext fields. If a 1.25+ cluster has unsupported [out-of-skew](https://kubernetes.io/releases/version-skew-policy/#kubelet) nodes prior to v1.23 and wants to ensure namespaces enforcing the `restricted` policy continue to require Linux-specific securityContext fields on all pods, ensure a version of the `restricted` prior to v1.25 is selected by labeling the namespace (for example, `pod-security.kubernetes.io/enforce-version: v1.24`) ([#105919](https://github.com/kubernetes/kubernetes/pull/105919), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3303", - "type": "KEP" - }, - { - "description": "[Other doc]", - "url": "https://kubernetes.io/docs/concepts/security/pod-security-standards/", - "type": "official" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105919", - "pr_number": 105919, - "areas": [ - "test" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "windows", - "testing" - ], - "duplicate": true - }, - "105936": { - "commit": "10eb7092f854c71122c03752465e868bce23c0b6", - "text": "Do not raise an error when setting a label with the same value, ignore it.", - "markdown": "Do not raise an error when setting a label with the same value, ignore it. ([#105936](https://github.com/kubernetes/kubernetes/pull/105936), [@zigarn](https://github.com/zigarn))", - "author": "zigarn", - "author_url": "https://github.com/zigarn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105936", - "pr_number": 105936, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "105963": { - "commit": "1aec0c81b1b283827480f9c40c5a7107b9986aa8", - "text": "This release added support for `NodeExpandSecret` for CSI driver client which enables the CSI drivers to make use of this secret while performing node expansion operation based on the user request. Previously there was no secret provided as part of the `nodeexpansion` call, thus CSI drivers did not make use of the same while expanding the volume at the node side.", - "markdown": "This release added support for `NodeExpandSecret` for CSI driver client which enables the CSI drivers to make use of this secret while performing node expansion operation based on the user request. Previously there was no secret provided as part of the `nodeexpansion` call, thus CSI drivers did not make use of the same while expanding the volume at the node side. ([#105963](https://github.com/kubernetes/kubernetes/pull/105963), [@zhucan](https://github.com/zhucan))", - "author": "zhucan", - "author_url": "https://github.com/zhucan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105963", - "pr_number": 105963, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "106834": { - "commit": "b3057e7ccc186819058c229b8066edaf75fd9bec", - "text": "Pod SecurityContext and PodSecurityPolicy supports slash as sysctl separator.", - "markdown": "Pod SecurityContext and PodSecurityPolicy supports slash as sysctl separator. ([#106834](https://github.com/kubernetes/kubernetes/pull/106834), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Apps, Architecture, Auth, Node, Security and Testing]", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/106834", - "pr_number": 106834, - "areas": [ - "test", - "kubelet", - "conformance" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "auth", - "apps", - "testing", - "architecture", - "security" - ], - "feature": true, - "duplicate": true - }, - "107329": { - "commit": "95ed6820ea21a9240d8e4632a15121c4fe39cadf", - "text": "Promoted LocalStorageCapacityIsolationFSQuotaMonitoring to beta.", - "markdown": "Promoted LocalStorageCapacityIsolationFSQuotaMonitoring to beta. ([#107329](https://github.com/kubernetes/kubernetes/pull/107329), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107329", - "pr_number": 107329, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "107490": { - "commit": "cc69f8f65def3874e46941c3df0393db0e29b058", - "text": "kubelet: added log for volume metric collection taking too long", - "markdown": "Kubelet: added log for volume metric collection taking too long ([#107490](https://github.com/kubernetes/kubernetes/pull/107490), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107490", - "pr_number": 107490, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true - }, - "107787": { - "commit": "8aaea8e24c1b87dbd606801f3c3f1e51ee4da44e", - "text": "Fixed bug where CSI migration doesn't count inline volumes for attach limit.", - "markdown": "Fixed bug where CSI migration doesn't count inline volumes for attach limit. ([#107787](https://github.com/kubernetes/kubernetes/pull/107787), [@Jiawei0227](https://github.com/Jiawei0227))", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107787", - "pr_number": 107787, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "storage" - ], - "duplicate": true - }, - "108115": { - "commit": "3688442c75d9a936b20ea4c894d2317b99f6778d", - "text": "Fix a bug where CRI implementations that use cAdvisor stats provider (CRI-O) don't evict pods when their logs exceed ephemeral storage limit.", - "markdown": "Fix a bug where CRI implementations that use cAdvisor stats provider (CRI-O) don't evict pods when their logs exceed ephemeral storage limit. ([#108115](https://github.com/kubernetes/kubernetes/pull/108115), [@haircommander](https://github.com/haircommander)) [SIG Node]", - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108115", - "pr_number": 108115, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "108414": { - "commit": "999b1bbe92947fca9e1fab67349ad11d3c46d328", - "text": "kube-apiserver: Get, GetList and Watch requests that should be served by the apiserver cacher during shutdown will be rejected to avoid a deadlock situation leaving requests hanging.", - "markdown": "Kube-apiserver: Get, GetList and Watch requests that should be served by the apiserver cacher during shutdown will be rejected to avoid a deadlock situation leaving requests hanging. ([#108414](https://github.com/kubernetes/kubernetes/pull/108414), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108414", - "pr_number": 108414, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "108447": { - "commit": "9169f168417d83ebbb753e7965d665081e27fb01", - "text": "Kubeadm: support experimental JSON/YAML output for `kubeadm upgrade plan` with the `--output` flag.", - "markdown": "Kubeadm: support experimental JSON/YAML output for `kubeadm upgrade plan` with the `--output` flag. ([#108447](https://github.com/kubernetes/kubernetes/pull/108447), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108447", - "pr_number": 108447, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "108476": { - "commit": "2d1f12942fb4d7de153f9f8f7fb0960f16e77e1e", - "text": "The kube-controller-manager's deprecated `--experimental-cluster-signing-duration` flag is now removed. Adapt your machinery to use the `--cluster-signing-duration` flag that is available since v1.19.", - "markdown": "The kube-controller-manager's deprecated `--experimental-cluster-signing-duration` flag is now removed. Adapt your machinery to use the `--cluster-signing-duration` flag that is available since v1.19. ([#108476](https://github.com/kubernetes/kubernetes/pull/108476), [@ialidzhikov](https://github.com/ialidzhikov))", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108476", - "pr_number": 108476, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth" - ] - }, - "108492": { - "commit": "cc6619857027c634918a6d2cca9bab072c46f71f", - "text": "Add `NodeInclusionPolicy` to `TopologySpreadConstraints` in PodSpec.", - "markdown": "Add `NodeInclusionPolicy` to `TopologySpreadConstraints` in PodSpec. ([#108492](https://github.com/kubernetes/kubernetes/pull/108492), [@kerthcet](https://github.com/kerthcet))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3094", - "type": "KEP" - } - ], - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108492", - "pr_number": 108492, - "areas": [ - "test", - "kubelet", - "apiserver", - "provider/gcp", - "code-generation", - "ipvs", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108541": { - "commit": "8594df1aff9efde5f7e152b331093527eb9cf46a", - "text": "Feature gate `ProbeTerminationGracePeriod` is enabled by default.", - "markdown": "Feature gate `ProbeTerminationGracePeriod` is enabled by default. ([#108541](https://github.com/kubernetes/kubernetes/pull/108541), [@kerthcet](https://github.com/kerthcet))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2238", - "type": "KEP" - } - ], - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108541", - "pr_number": 108541, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "108554": { - "commit": "9ef16e7908e022d21c9bc02ca076662cbc7a6d4b", - "text": "Added a deprecated warning for node beta label usage in PV/SC/RC and CSI Storage Capacity.", - "markdown": "Added a deprecated warning for node beta label usage in PV/SC/RC and CSI Storage Capacity. ([#108554](https://github.com/kubernetes/kubernetes/pull/108554), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108554", - "pr_number": 108554, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "storage", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "108624": { - "commit": "3051cb2ba11a1bc581ecd83c74dae27bd00202f2", - "text": "API server's deprecated `--service-account-api-audiences` flag was removed. Use `--api-audiences` instead.", - "markdown": "API server's deprecated `--service-account-api-audiences` flag was removed. Use `--api-audiences` instead. ([#108624](https://github.com/kubernetes/kubernetes/pull/108624), [@ialidzhikov](https://github.com/ialidzhikov))", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108624", - "pr_number": 108624, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "auth" - ], - "duplicate_kind": true, - "action_required": true - }, - "108654": { - "commit": "8a437e171c42a0567e63419e2ae91a2196440aee", - "text": "NONE", - "markdown": "NONE ([#108654](https://github.com/kubernetes/kubernetes/pull/108654), [@Shubham82](https://github.com/Shubham82)) [SIG CLI]", - "author": "Shubham82", - "author_url": "https://github.com/Shubham82", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108654", - "pr_number": 108654, - "areas": [ - "kubectl" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cli" - ], - "do_not_publish": true - }, - "108727": { - "commit": "03a46ac94b145ea59701329f2facb31b7fa6e903", - "text": "Fix a bug where metrics are not recorded during Preemption(PostFilter).", - "markdown": "Fix a bug where metrics are not recorded during Preemption(PostFilter). ([#108727](https://github.com/kubernetes/kubernetes/pull/108727), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108727", - "pr_number": 108727, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "108746": { - "commit": "b215a8949a9b13f21d991f93d8d53633898578c1", - "text": "Panics while calling validating admission webhook are caught and honor the fail open or fail closed setting.", - "markdown": "Panics while calling validating admission webhook are caught and honor the fail open or fail closed setting. ([#108746](https://github.com/kubernetes/kubernetes/pull/108746), [@deads2k](https://github.com/deads2k)) [SIG API Machinery]", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108746", - "pr_number": 108746, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "108777": { - "commit": "47bb8c6d0cb088016e62b6de172ff0594c596d23", - "text": "kubectl: support multiple resources for kubectl rollout status.", - "markdown": "Kubectl: support multiple resources for kubectl rollout status. ([#108777](https://github.com/kubernetes/kubernetes/pull/108777), [@pjo256](https://github.com/pjo256))", - "author": "pjo256", - "author_url": "https://github.com/pjo256", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108777", - "pr_number": 108777, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "108797": { - "commit": "cae22d8b8a78985f438c232357aa2b6c60d83f9b", - "text": "Deprecated beta APIs scheduled for removal in 1.25 are no longer served. See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-25 for more information.", - "markdown": "Deprecated beta APIs scheduled for removal in 1.25 are no longer served. See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-25 for more information. ([#108797](https://github.com/kubernetes/kubernetes/pull/108797), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Instrumentation and Testing]", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108797", - "pr_number": 108797, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "duplicate": true, - "action_required": true - }, - "108997": { - "commit": "1f90b7980b983436634b903300bdfb02b64d66a6", - "text": "Fix for volume reconstruction of CSI ephemeral volumes", - "markdown": "Fix for volume reconstruction of CSI ephemeral volumes ([#108997](https://github.com/kubernetes/kubernetes/pull/108997), [@dobsonj](https://github.com/dobsonj)) [SIG Node, Storage and Testing]", - "author": "dobsonj", - "author_url": "https://github.com/dobsonj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108997", - "pr_number": 108997, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node", - "testing" - ], - "duplicate": true - }, - "109070": { - "commit": "9a73536ff2d15cf3329a492c6d7dc7b48018eeb0", - "text": "Shell completion is now provided for the \"--subresource\" flag.", - "markdown": "Shell completion is now provided for the \"--subresource\" flag. ([#109070](https://github.com/kubernetes/kubernetes/pull/109070), [@marckhouzam](https://github.com/marckhouzam))", - "author": "marckhouzam", - "author_url": "https://github.com/marckhouzam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109070", - "pr_number": 109070, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "109090": { - "commit": "759785ea147bc13945d521eaba4a6592cbc0675f", - "text": "Introduced NodeIPAM support for multiple ClusterCIDRs ([#2593](https://github.com/kubernetes/enhancements/issues/2593)) as an alpha feature.\nSet feature gate `MultiCIDRRangeAllocator=true`, determines whether the `MultiCIDRRangeAllocator` controller can be used, while the kube-controller-manager flag below will pick the active controller.\nEnabled the `MultiCIDRRangeAllocator` by setting `--cidr-allocator-type=MultiCIDRRangeAllocator` flag in kube-controller-manager.", - "markdown": "Introduced NodeIPAM support for multiple ClusterCIDRs ([#2593](https://github.com/kubernetes/enhancements/issues/2593)) as an alpha feature.\n Set feature gate `MultiCIDRRangeAllocator=true`, determines whether the `MultiCIDRRangeAllocator` controller can be used, while the kube-controller-manager flag below will pick the active controller.\n Enabled the `MultiCIDRRangeAllocator` by setting `--cidr-allocator-type=MultiCIDRRangeAllocator` flag in kube-controller-manager. ([#109090](https://github.com/kubernetes/kubernetes/pull/109090), [@sarveshr7](https://github.com/sarveshr7))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2593", - "type": "KEP" - } - ], - "author": "sarveshr7", - "author_url": "https://github.com/sarveshr7", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109090", - "pr_number": 109090, - "areas": [ - "test", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "109101": { - "commit": "2d9d7287c11f04e067dd9b776716bd3725d8034f", - "text": "None", - "markdown": "None ([#109101](https://github.com/kubernetes/kubernetes/pull/109101), [@Shubham82](https://github.com/Shubham82)) [SIG CLI]", - "author": "Shubham82", - "author_url": "https://github.com/Shubham82", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109101", - "pr_number": 109101, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug", - "documentation" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "109111": { - "commit": "4569e646ef161c0262d433aed324fec97a525572", - "text": "End-to-end testing has been migrated from Ginkgo v1 to v2.\n\nWhen running test/e2e via the Ginkgo CLI, the v2 CLI must be used and `-timeout=24h` (or some other, suitable value) must be passed because the default timeout was reduced from 24h to 1h. When running it via `go test`, the corresponding `-args` parameter is `-ginkgo.timeout=24h`. To build the CLI in the Kubernetes repo, use `make all WHAT=github.com/onsi/ginkgo/v2/ginkgo`.\nGinkgo V2 doesn't accept go test's `-parallel` flags to parallelize Ginkgo specs, please switch to use `ginkgo -p` or `ginkgo -procs=N` instead.", - "markdown": "End-to-end testing has been migrated from Ginkgo v1 to v2.\n \n When running test/e2e via the Ginkgo CLI, the v2 CLI must be used and `-timeout=24h` (or some other, suitable value) must be passed because the default timeout was reduced from 24h to 1h. When running it via `go test`, the corresponding `-args` parameter is `-ginkgo.timeout=24h`. To build the CLI in the Kubernetes repo, use `make all WHAT=github.com/onsi/ginkgo/v2/ginkgo`.\n Ginkgo V2 doesn't accept go test's `-parallel` flags to parallelize Ginkgo specs, please switch to use `ginkgo -p` or `ginkgo -procs=N` instead. ([#109111](https://github.com/kubernetes/kubernetes/pull/109111), [@chendave](https://github.com/chendave)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling, Storage, Testing and Windows]", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109111", - "pr_number": 109111, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "kubeadm", - "conformance", - "code-generation", - "e2e-test-framework", - "dependency", - "network-policy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "autoscaling", - "auth", - "apps", - "windows", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "109124": { - "commit": "889e60ab33b4861e1c089b5d0cade8fe9272a8d4", - "text": "Reduced duration to sync proxy rules on Windows `kube-proxy` when using `kernelspace` mode.", - "markdown": "Reduced duration to sync proxy rules on Windows `kube-proxy` when using `kernelspace` mode. ([#109124](https://github.com/kubernetes/kubernetes/pull/109124), [@daschott](https://github.com/daschott))", - "author": "daschott", - "author_url": "https://github.com/daschott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109124", - "pr_number": 109124, - "areas": [ - "release-eng" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows", - "release" - ], - "duplicate": true - }, - "109141": { - "commit": "5ac563c507cd75c9382a2a23a3c8e3452138a021", - "text": "Default burst limit for the discovery client set to 300.", - "markdown": "Default burst limit for the discovery client set to 300. ([#109141](https://github.com/kubernetes/kubernetes/pull/109141), [@ulucinar](https://github.com/ulucinar))", - "author": "ulucinar", - "author_url": "https://github.com/ulucinar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109141", - "pr_number": 109141, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cli" - ], - "duplicate": true - }, - "109175": { - "commit": "abe06b3df562849d0076bdd968262a458b71d3c9", - "text": "For resources built into an apiserver, the server now logs at `-v=3` whether it is using watch caching.", - "markdown": "For resources built into an apiserver, the server now logs at `-v=3` whether it is using watch caching. ([#109175](https://github.com/kubernetes/kubernetes/pull/109175), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109175", - "pr_number": 109175, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "109217": { - "commit": "c27e82604e9a99c7d17768a63f21c740d89d9fed", - "text": "Faster mount detection for linux kernel 5.10+ using openat2 speeding up pod churn rates. On Kernel versions less 5.10, it will fallback to using the original way of detecting mount points i.e by parsing /proc/mounts.", - "markdown": "Faster mount detection for linux kernel 5.10+ using openat2 speeding up pod churn rates. On Kernel versions less 5.10, it will fallback to using the original way of detecting mount points i.e by parsing /proc/mounts. ([#109217](https://github.com/kubernetes/kubernetes/pull/109217), [@manugupt1](https://github.com/manugupt1))", - "author": "manugupt1", - "author_url": "https://github.com/manugupt1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109217", - "pr_number": 109217, - "areas": [ - "cloudprovider", - "dependency" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "storage", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "109250": { - "commit": "6269784cd0bceeacbb133f5125a9818342ea7d6c", - "text": "Fixed scheduling of **CronJob** with `@every X` schedules.", - "markdown": "Fixed scheduling of **CronJob** with `@every X` schedules. ([#109250](https://github.com/kubernetes/kubernetes/pull/109250), [@d-honeybadger](https://github.com/d-honeybadger))", - "author": "d-honeybadger", - "author_url": "https://github.com/d-honeybadger", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109250", - "pr_number": 109250, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "109251": { - "commit": "7061876169716feefbcafb41a37e33f3d7b51822", - "text": "`MaxUnavailable` for `StatefulSets`, allows faster `RollingUpdate` by taking down more than 1 pod at a time. \nThe number of pods you want to take down during a `RollingUpdate` is configurable using `maxUnavailable` parameter.\n", - "markdown": "`MaxUnavailable` for `StatefulSets`, allows faster `RollingUpdate` by taking down more than 1 pod at a time. \n The number of pods you want to take down during a `RollingUpdate` is configurable using `maxUnavailable` parameter.\n ([#109251](https://github.com/kubernetes/kubernetes/pull/109251), [@krmayankk](https://github.com/krmayankk))", - "author": "krmayankk", - "author_url": "https://github.com/krmayankk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109251", - "pr_number": 109251, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "cli" - ], - "feature": true, - "duplicate": true - }, - "109254": { - "commit": "6b64c51fac61521fdfaf2f3f5c80f30ce9536832", - "text": "Removed deprecated kubectl.kubernetes.io/default-logs-container support", - "markdown": "Removed deprecated kubectl.kubernetes.io/default-logs-container support ([#109254](https://github.com/kubernetes/kubernetes/pull/109254), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/2227-kubectl-default-container", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109254", - "pr_number": 109254, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "109263": { - "commit": "451c00cc70a6d3a7062950b3969d3d9bb694fafa", - "text": "kubelet: added validation for labels provided with --node-labels. Malformed labels will result in errors.", - "markdown": "Kubelet: added validation for labels provided with --node-labels. Malformed labels will result in errors. ([#109263](https://github.com/kubernetes/kubernetes/pull/109263), [@FeLvi-zzz](https://github.com/FeLvi-zzz))", - "author": "FeLvi-zzz", - "author_url": "https://github.com/FeLvi-zzz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109263", - "pr_number": 109263, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "109268": { - "commit": "6b988c516e79b7c1b0b2dddae99f1472f8300617", - "text": "Fixed strict server-side field validation treating `metadata` fields as unknown fields.", - "markdown": "Fixed strict server-side field validation treating `metadata` fields as unknown fields. ([#109268](https://github.com/kubernetes/kubernetes/pull/109268), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109268", - "pr_number": 109268, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "109388": { - "commit": "70dca66271d2fd26d77992de8380477849becb67", - "text": "kubelet's deprecated `--experimental-kernel-memcg-notification` flag is now removed. Use `--kernel-memcg-notification` instead.", - "markdown": "Kubelet's deprecated `--experimental-kernel-memcg-notification` flag is now removed. Use `--kernel-memcg-notification` instead. ([#109388](https://github.com/kubernetes/kubernetes/pull/109388), [@ialidzhikov](https://github.com/ialidzhikov))", - "author": "ialidzhikov", - "author_url": "https://github.com/ialidzhikov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109388", - "pr_number": 109388, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "109435": { - "commit": "0bd2847019899b38656723f4cf8f0289e6186b43", - "text": "Feature gates that graduated to GA in 1.23 or earlier and were unconditionally enabled have been removed: CSIServiceAccountToken, ConfigurableFSGroupPolicy, EndpointSlice, EndpointSliceNodeName, EndpointSliceProxying, GenericEphemeralVolume, IPv6DualStack, IngressClassNamespacedParams, StorageObjectInUseProtection, TTLAfterFinished, VolumeSubpath, WindowsEndpointSliceProxying.", - "markdown": "Feature gates that graduated to GA in 1.23 or earlier and were unconditionally enabled have been removed: CSIServiceAccountToken, ConfigurableFSGroupPolicy, EndpointSlice, EndpointSliceNodeName, EndpointSliceProxying, GenericEphemeralVolume, IPv6DualStack, IngressClassNamespacedParams, StorageObjectInUseProtection, TTLAfterFinished, VolumeSubpath, WindowsEndpointSliceProxying. ([#109435](https://github.com/kubernetes/kubernetes/pull/109435), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109435", - "pr_number": 109435, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "109441": { - "commit": "d9fa563550079bcc5c404bca4f274d7fe10187f7", - "text": "Kubernetes now correctly handles \"search .\" in the host's resolv.conf file by preserving the \".\" entry in the \"resolv.conf\" that the kubelet writes to pods.", - "markdown": "Kubernetes now correctly handles \"search .\" in the host's resolv.conf file by preserving the \".\" entry in the \"resolv.conf\" that the kubelet writes to pods. ([#109441](https://github.com/kubernetes/kubernetes/pull/109441), [@Miciah](https://github.com/Miciah)) [SIG Network and Node]", - "author": "Miciah", - "author_url": "https://github.com/Miciah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109441", - "pr_number": 109441, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true - }, - "109443": { - "commit": "e8ef77514b5e2fe6a7c602f9663c2ef179387ea4", - "text": "Added the `Apply` and `ApplyStatus` methods to the dynamic `ResourceInterface`", - "markdown": "Added the `Apply` and `ApplyStatus` methods to the dynamic `ResourceInterface` ([#109443](https://github.com/kubernetes/kubernetes/pull/109443), [@kevindelgado](https://github.com/kevindelgado))", - "author": "kevindelgado", - "author_url": "https://github.com/kevindelgado", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109443", - "pr_number": 109443, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "109464": { - "commit": "5e9a6a256e9ed7834dfcf5f4a30be015130df6e9", - "text": "Kubernetes binaries are now built-in `module` mode instead of `GOPATH` mode.", - "markdown": "Kubernetes binaries are now built-in `module` mode instead of `GOPATH` mode. ([#109464](https://github.com/kubernetes/kubernetes/pull/109464), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109464", - "pr_number": 109464, - "areas": [ - "test", - "conformance" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing", - "architecture" - ], - "duplicate": true - }, - "109479": { - "commit": "b2ed6ca64f55452cdb4063d62920dddccd4344f7", - "text": "New `KUBECACHEDIR` environment variable was introduced to override default discovery cache directory which is `$HOME/.kube/cache`.", - "markdown": "New `KUBECACHEDIR` environment variable was introduced to override default discovery cache directory which is `$HOME/.kube/cache`. ([#109479](https://github.com/kubernetes/kubernetes/pull/109479), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109479", - "pr_number": 109479, - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "109486": { - "commit": "63a618a815de4d6adfe5908e1e1c5d36a20bf9f4", - "text": "Fixed `JobTrackingWithFinalizers` that:\n- was declaring a job finished before counting all the created pods in the status\n- was leaving pods with finalizers, blocking pod and job deletions\n `JobTrackingWithFinalizers` is still disabled by default.", - "markdown": "Fixed `JobTrackingWithFinalizers` that:\n - was declaring a job finished before counting all the created pods in the status\n - was leaving pods with finalizers, blocking pod and job deletions\n `JobTrackingWithFinalizers` is still disabled by default. ([#109486](https://github.com/kubernetes/kubernetes/pull/109486), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109486", - "pr_number": 109486, - "areas": [ - "test", - "batch" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "109510": { - "commit": "487512bb563ad8cfb70f1763bce07e754073d759", - "text": "Added the latest GCE pinhole firewall feature, which introduces `destination-ranges` in the ingress `firewall-rules`. It restricts access to the backend IPs by allowing traffic through `ILB` or `NetLB` only. This change does **NOT** change the existing `ILB` or `NetLB` behavior.", - "markdown": "Added the latest GCE pinhole firewall feature, which introduces `destination-ranges` in the ingress `firewall-rules`. It restricts access to the backend IPs by allowing traffic through `ILB` or `NetLB` only. This change does **NOT** change the existing `ILB` or `NetLB` behavior. ([#109510](https://github.com/kubernetes/kubernetes/pull/109510), [@sugangli](https://github.com/sugangli))", - "author": "sugangli", - "author_url": "https://github.com/sugangli", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109510", - "pr_number": 109510, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "109541": { - "commit": "f0791b50143856177878e21bb44beb5e3e36cc78", - "text": "In-tree GCE PD test cases no longer run in Kubernetes testing harness anymore (side effect of switching on CSI migration in 1.22). Please switch on the environment variable `ENABLE_STORAGE_GCE_PD_DRIVER` to `yes` if you need to run these tests.", - "markdown": "In-tree GCE PD test cases no longer run in Kubernetes testing harness anymore (side effect of switching on CSI migration in 1.22). Please switch on the environment variable `ENABLE_STORAGE_GCE_PD_DRIVER` to `yes` if you need to run these tests. ([#109541](https://github.com/kubernetes/kubernetes/pull/109541), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109541", - "pr_number": 109541, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "cleanup", - "failing-test" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "109563": { - "commit": "b1e130fe83156783153538b6d79821c2fdaa85bb", - "text": "The TopologySpreadConstraints will be shown in describe command for pods, deployments, daemonsets, etc.", - "markdown": "The TopologySpreadConstraints will be shown in describe command for pods, deployments, daemonsets, etc. ([#109563](https://github.com/kubernetes/kubernetes/pull/109563), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109563", - "pr_number": 109563, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "duplicate_kind": true - }, - "109579": { - "commit": "8dd45ba46ce8febd9825237a87e06f000e4ab2e2", - "text": "Renamed `apiserver_watch_cache_watch_cache_initializations_total` to `apiserver_watch_cache_initializations_total`", - "markdown": "Renamed `apiserver_watch_cache_watch_cache_initializations_total` to `apiserver_watch_cache_initializations_total` ([#109579](https://github.com/kubernetes/kubernetes/pull/109579), [@logicalhan](https://github.com/logicalhan))", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109579", - "pr_number": 109579, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "109601": { - "commit": "914406da5139437a0cd677d55e004d45d784f8ce", - "text": "Fixed a bug which could have allowed an improperly annotated LoadBalancer service to become active.", - "markdown": "Fixed a bug which could have allowed an improperly annotated LoadBalancer service to become active. ([#109601](https://github.com/kubernetes/kubernetes/pull/109601), [@mdbooth](https://github.com/mdbooth))", - "author": "mdbooth", - "author_url": "https://github.com/mdbooth", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109601", - "pr_number": 109601, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "cloud-provider" - ], - "duplicate": true - }, - "109602": { - "commit": "7af5a7bfc51d0455d8b2322ae9e72ed66fb1b8f9", - "text": "The `metadata.clusterName` field is completely removed. This should not have any user-visible impact.", - "markdown": "The `metadata.clusterName` field is completely removed. This should not have any user-visible impact. ([#109602](https://github.com/kubernetes/kubernetes/pull/109602), [@lavalamp](https://github.com/lavalamp))", - "author": "lavalamp", - "author_url": "https://github.com/lavalamp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109602", - "pr_number": 109602, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "testing" - ], - "duplicate": true - }, - "109612": { - "commit": "7adb7c1d060ee047a724d1d73d0e465532aa2785", - "text": "Kube-controller-manager: Removed flags `deleting-pods-qps`, `deleting-pods-burst`, and `register-retry-count`.", - "markdown": "Kube-controller-manager: Removed flags `deleting-pods-qps`, `deleting-pods-burst`, and `register-retry-count`. ([#109612](https://github.com/kubernetes/kubernetes/pull/109612), [@pandaamanda](https://github.com/pandaamanda))", - "author": "pandaamanda", - "author_url": "https://github.com/pandaamanda", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109612", - "pr_number": 109612, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change", - "deprecation" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "109624": { - "commit": "e8d6b76f8b1ae7b49d1dd9ac5c65afb24a18c7be", - "text": "EndpointSlices marked for deletion are now ignored during reconciliation.", - "markdown": "EndpointSlices marked for deletion are now ignored during reconciliation. ([#109624](https://github.com/kubernetes/kubernetes/pull/109624), [@aryan9600](https://github.com/aryan9600))", - "author": "aryan9600", - "author_url": "https://github.com/aryan9600", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109624", - "pr_number": 109624, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "109658": { - "commit": "a83cc51a19d1b5f2b2d3fb75574b04f587ec0054", - "text": "Updated to cAdvisor v0.44.1 to fix an issue where metrics generated by kubelet for pod network stats were empty in some cases.", - "markdown": "Updated to cAdvisor v0.44.1 to fix an issue where metrics generated by kubelet for pod network stats were empty in some cases. ([#109658](https://github.com/kubernetes/kubernetes/pull/109658), [@bobbypage](https://github.com/bobbypage))", - "author": "bobbypage", - "author_url": "https://github.com/bobbypage", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109658", - "pr_number": 109658, - "areas": [ - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "109676": { - "commit": "7ac06e11e89540094bd8a39f93e3634a2db44ad0", - "text": "On compatible systems, a mounter's Unmount implementation is changed to not return an error when the specified target can be detected as not a mount point. On Linux, the behavior of detecting a mount point depends on `umount` command is validated when the mounter is created. Additionally, mount point checks will be skipped in CleanupMountPoint/CleanupMountWithForce if the mounter's Unmount having the changed behavior of not returning error when target is not a mount point.", - "markdown": "On compatible systems, a mounter's Unmount implementation is changed to not return an error when the specified target can be detected as not a mount point. On Linux, the behavior of detecting a mount point depends on `umount` command is validated when the mounter is created. Additionally, mount point checks will be skipped in CleanupMountPoint/CleanupMountWithForce if the mounter's Unmount having the changed behavior of not returning error when target is not a mount point. ([#109676](https://github.com/kubernetes/kubernetes/pull/109676), [@cartermckinnon](https://github.com/cartermckinnon)) [SIG Storage]", - "author": "cartermckinnon", - "author_url": "https://github.com/cartermckinnon", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109676", - "pr_number": 109676, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "storage" - ], - "duplicate_kind": true - }, - "109680": { - "commit": "eb88daeeae4a53a20579620e1791e30416517223", - "text": "Return a warning when applying a `pod-security.kubernetes.io` label to a PodSecurity-exempted namespace.\nStop including the `pod-security.kubernetes.io/exempt=namespace` audit annotation on namespace requests.", - "markdown": "Return a warning when applying a `pod-security.kubernetes.io` label to a PodSecurity-exempted namespace.\n Stop including the `pod-security.kubernetes.io/exempt=namespace` audit annotation on namespace requests. ([#109680](https://github.com/kubernetes/kubernetes/pull/109680), [@tallclair](https://github.com/tallclair))", - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109680", - "pr_number": 109680, - "kinds": [ - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true - }, - "109706": { - "commit": "aee13fc3dee0ee3e9183e7ddb8c84f77b886aa1f", - "text": "Reduced the number of cloud API calls and service downtime caused by excessive re-configurations of cluster LBs with externalTrafficPolicy=Local when node readiness changes (https://github.com/kubernetes/kubernetes/issues/111539). The service controller (in cloud-controller-manager) will avoid resyncing nodes which are transitioning between `Ready` / `NotReady` (only for for ETP=Local Services). The LBs used for these services will solely rely on the health check probe defined by the `healthCheckNodePort` to determine if a particular node is to be used for traffic load balancing.", - "markdown": "Reduced the number of cloud API calls and service downtime caused by excessive re-configurations of cluster LBs with externalTrafficPolicy=Local when node readiness changes (https://github.com/kubernetes/kubernetes/issues/111539). The service controller (in cloud-controller-manager) will avoid resyncing nodes which are transitioning between `Ready` / `NotReady` (only for for ETP=Local Services). The LBs used for these services will solely rely on the health check probe defined by the `healthCheckNodePort` to determine if a particular node is to be used for traffic load balancing. ([#109706](https://github.com/kubernetes/kubernetes/pull/109706), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109706", - "pr_number": 109706, - "areas": [ - "test", - "cloudprovider", - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "api-machinery", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "109709": { - "commit": "b578d616061a6c1710d1506e25e7690df000cbc9", - "text": "When using the OpenStack legacy cloud provider, kubelet and KCM will ignore unknown configuration directives rather than failing to start.", - "markdown": "When using the OpenStack legacy cloud provider, kubelet and KCM will ignore unknown configuration directives rather than failing to start. ([#109709](https://github.com/kubernetes/kubernetes/pull/109709), [@mdbooth](https://github.com/mdbooth))", - "author": "mdbooth", - "author_url": "https://github.com/mdbooth", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109709", - "pr_number": 109709, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "109721": { - "commit": "70d470e6aa2b541f6d93d4c05246537978f4b0df", - "text": "Fixed `NeedResize` build failure on Windows.", - "markdown": "Fixed `NeedResize` build failure on Windows. ([#109721](https://github.com/kubernetes/kubernetes/pull/109721), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109721", - "pr_number": 109721, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "109752": { - "commit": "b07ee3654732128f8de93b54b0c4a56ffb91fa95", - "text": "Deleted the `apimachinery/clock` package. Please use `k8s.io/utils/clock` package instead.", - "markdown": "Deleted the `apimachinery/clock` package. Please use `k8s.io/utils/clock` package instead. ([#109752](https://github.com/kubernetes/kubernetes/pull/109752), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", - "author": "MadhavJivrajani", - "author_url": "https://github.com/MadhavJivrajani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109752", - "pr_number": 109752, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "109764": { - "commit": "77c37da7fc589df3f09194298ef928c88f6f12c2", - "text": "Changed PV framework delete timeout to 5 minutes as documented.", - "markdown": "Changed PV framework delete timeout to 5 minutes as documented. ([#109764](https://github.com/kubernetes/kubernetes/pull/109764), [@saikat-royc](https://github.com/saikat-royc))", - "author": "saikat-royc", - "author_url": "https://github.com/saikat-royc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109764", - "pr_number": 109764, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true - }, - "109773": { - "commit": "35940b707c4e640c174a392c29db188e11c2b0ee", - "text": "Add missing powershell option to kubectl completion command short description.", - "markdown": "Add missing powershell option to kubectl completion command short description. ([#109773](https://github.com/kubernetes/kubernetes/pull/109773), [@danielhelfand](https://github.com/danielhelfand))", - "author": "danielhelfand", - "author_url": "https://github.com/danielhelfand", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109773", - "pr_number": 109773, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "109782": { - "commit": "50e1f70027585eb76fdd1b26e42b37424b204f8d", - "text": "The kube-proxy `sync_proxy_rules_no_endpoints_total` metric now only counts local-traffic-policy services which have remote endpoints but not local endpoints.", - "markdown": "The kube-proxy `sync_proxy_rules_no_endpoints_total` metric now only counts local-traffic-policy services which have remote endpoints but not local endpoints. ([#109782](https://github.com/kubernetes/kubernetes/pull/109782), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109782", - "pr_number": 109782, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "109794": { - "commit": "21149f1b68edab5f1faf3f79ec6373efc941c9c1", - "text": "The node annotation alpha.kubernetes.io/provided-node-ip is no longer set ONLY when `--cloud-provider=external`. Now, it is set on kubelet startup if the `--cloud-provider` flag is set at all, including the deprecated in-tree providers.", - "markdown": "The node annotation alpha.kubernetes.io/provided-node-ip is no longer set ONLY when `--cloud-provider=external`. Now, it is set on kubelet startup if the `--cloud-provider` flag is set at all, including the deprecated in-tree providers. ([#109794](https://github.com/kubernetes/kubernetes/pull/109794), [@mdbooth](https://github.com/mdbooth)) [SIG Network and Node]", - "author": "mdbooth", - "author_url": "https://github.com/mdbooth", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109794", - "pr_number": 109794, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true - }, - "109798": { - "commit": "99de67958dc4434fedaa0cf57da1e280b51c7036", - "text": "The beta `PodSecurityPolicy` admission plugin, deprecated since 1.21, is removed. Follow the instructions at https://kubernetes.io/docs/tasks/configure-pod-container/migrate-from-psp/ to migrate to the built-in PodSecurity admission plugin (or to another third-party policy webhook) prior to upgrading to v1.25.", - "markdown": "The beta `PodSecurityPolicy` admission plugin, deprecated since 1.21, is removed. Follow the instructions at https://kubernetes.io/docs/tasks/configure-pod-container/migrate-from-psp/ to migrate to the built-in PodSecurity admission plugin (or to another third-party policy webhook) prior to upgrading to v1.25. ([#109798](https://github.com/kubernetes/kubernetes/pull/109798), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109798", - "pr_number": 109798, - "areas": [ - "test", - "kubelet", - "apiserver", - "provider/gcp", - "e2e-test-framework" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "auth", - "apps", - "instrumentation", - "testing", - "cloud-provider", - "security" - ], - "duplicate": true, - "duplicate_kind": true - }, - "109809": { - "commit": "a6943ad863ee33466248641158ac87df0cfd80b4", - "text": "NONE", - "markdown": "NONE ([#109809](https://github.com/kubernetes/kubernetes/pull/109809), [@areller](https://github.com/areller)) [SIG Apps]", - "author": "areller", - "author_url": "https://github.com/areller", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109809", - "pr_number": 109809, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "do_not_publish": true - }, - "109813": { - "commit": "8d5518d4269666f33c6323710449b8ff4a002e2c", - "text": "Updated cri-tools to [v1.24.2(https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.24.2).", - "markdown": "Updated cri-tools to [v1.24.2(https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.24.2). ([#109813](https://github.com/kubernetes/kubernetes/pull/109813), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109813", - "pr_number": 109813, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "release", - "cloud-provider" - ], - "duplicate": true - }, - "109819": { - "commit": "37b100bea69b72a32fcd001743202583ef5d2ae8", - "text": "Support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io`, deprecated since v1.19, was partially removed. Kubelets no longer support the annotations, use of the annotations in static pods is no longer supported, and the seccomp annotations are no longer auto-populated when pods with seccomp fields are created. Auto-population of the seccomp fields from the annotations is planned to be removed in 1.27. Pods should use the corresponding pod or container `securityContext.seccompProfile` field instead.", - "markdown": "Support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io`, deprecated since v1.19, was partially removed. Kubelets no longer support the annotations, use of the annotations in static pods is no longer supported, and the seccomp annotations are no longer auto-populated when pods with seccomp fields are created. Auto-population of the seccomp fields from the annotations is planned to be removed in 1.27. Pods should use the corresponding pod or container `securityContext.seccompProfile` field instead. ([#109819](https://github.com/kubernetes/kubernetes/pull/109819), [@saschagrunert](https://github.com/saschagrunert))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/135", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109819", - "pr_number": 109819, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "deprecation" - ], - "sigs": [ - "node", - "auth", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "109826": { - "commit": "2b3508e0f10ac3c2c2cc0818ea081261c1256cfe", - "text": "Fixed a bug involving Services of type `LoadBalancer` with multiple IPs and a `LoadBalancerSourceRanges` that overlaps the node IP.", - "markdown": "Fixed a bug involving Services of type `LoadBalancer` with multiple IPs and a `LoadBalancerSourceRanges` that overlaps the node IP. ([#109826](https://github.com/kubernetes/kubernetes/pull/109826), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109826", - "pr_number": 109826, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "109840": { - "commit": "7141b6d58dff2b55449c616181319c9e9946b4c2", - "text": "kubeadm: only taint control plane nodes when the legacy \"master\" taint is present. This avoids the bug where \"kubeadm upgrade\" will re-taint a control plane node with the new \"control plane\" taint even if the user explicitly untainted the node.", - "markdown": "Kubeadm: only taint control plane nodes when the legacy \"master\" taint is present. This avoids the bug where \"kubeadm upgrade\" will re-taint a control plane node with the new \"control plane\" taint even if the user explicitly untainted the node. ([#109840](https://github.com/kubernetes/kubernetes/pull/109840), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109840", - "pr_number": 109840, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "109880": { - "commit": "bbdcce6a9e579ab60357d53bfb7c3fc0e1f74cb4", - "text": "Fix spurious kube-apiserver log warnings related to openapi v3 merging when creating or modifying CustomResourceDefinition objects", - "markdown": "Fix spurious kube-apiserver log warnings related to openapi v3 merging when creating or modifying CustomResourceDefinition objects ([#109880](https://github.com/kubernetes/kubernetes/pull/109880), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery and Testing]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109880", - "pr_number": 109880, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "109928": { - "commit": "aa4150cc44f1961fe21f8ae19b807b59d602a496", - "text": "Fixed the bug that a `ServiceIPStaticSubrange` enabled cluster assigns duplicate IP addresses when the dynamic block is exhausted.", - "markdown": "Fixed the bug that a `ServiceIPStaticSubrange` enabled cluster assigns duplicate IP addresses when the dynamic block is exhausted. ([#109928](https://github.com/kubernetes/kubernetes/pull/109928), [@tksm](https://github.com/tksm))", - "author": "tksm", - "author_url": "https://github.com/tksm", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109928", - "pr_number": 109928, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "109938": { - "commit": "78fb1fa9a282fb70f5f2884d174c11947214d51b", - "text": "There is a new OCI image registry (`registry.k8s.io`) that can be used to pull Kubernetes images. The old registry (`k8s.gcr.io`) will continue to be supported for the foreseeable future, but the new name should perform better because it frontends equivalent mirrors in other clouds. Please point your clusters to the new registry going forward. \\n\\nAdmission/Policy integrations that have an allowlist of registries need to include `registry.k8s.io` alongside `k8s.gcr.io`.\\nAir-gapped environments and image garbage-collection configurations will need to update to pre-pull and preserve required images under `registry.k8s.io` as well as `k8s.gcr.io`.", - "markdown": "There is a new OCI image registry (`registry.k8s.io`) that can be used to pull Kubernetes images. The old registry (`k8s.gcr.io`) will continue to be supported for the foreseeable future, but the new name should perform better because it frontends equivalent mirrors in other clouds. Please point your clusters to the new registry going forward. \\n\\nAdmission/Policy integrations that have an allowlist of registries need to include `registry.k8s.io` alongside `k8s.gcr.io`.\\nAir-gapped environments and image garbage-collection configurations will need to update to pre-pull and preserve required images under `registry.k8s.io` as well as `k8s.gcr.io`. ([#109938](https://github.com/kubernetes/kubernetes/pull/109938), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109938", - "pr_number": 109938, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "provider/gcp", - "release-eng", - "kubeadm", - "conformance", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "scalability", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider", - "k8s-infra" - ], - "duplicate": true, - "action_required": true - }, - "109969": { - "commit": "2d6534cde925ea16f28755a758c96d621b5fa7d6", - "text": "Fix a data race in authentication between AuthenticatedGroupAdder and cached token authenticator.", - "markdown": "Fix a data race in authentication between AuthenticatedGroupAdder and cached token authenticator. ([#109969](https://github.com/kubernetes/kubernetes/pull/109969), [@sttts](https://github.com/sttts)) [SIG API Machinery and Auth]", - "author": "sttts", - "author_url": "https://github.com/sttts", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109969", - "pr_number": 109969, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true - }, - "109987": { - "commit": "344185089155f1413d7121814ac8a1a6b218e0de", - "text": "Allow expansion of ephemeral volumes", - "markdown": "Allow expansion of ephemeral volumes ([#109987](https://github.com/kubernetes/kubernetes/pull/109987), [@gnufied](https://github.com/gnufied)) [SIG Node and Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109987", - "pr_number": 109987, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true - }, - "109995": { - "commit": "0985c476e3db8a5f9532eb4be5cd8adc6f94deef", - "text": "Kubeadm: added support for the flag `--print-manifest` to the addon phases `kube-proxy` and `coredns` of `kubeadm init phase addon`. If this flag is `usedkubeadm` will not apply a given addon and instead print to the terminal the API objects that will be applied.", - "markdown": "Kubeadm: added support for the flag `--print-manifest` to the addon phases `kube-proxy` and `coredns` of `kubeadm init phase addon`. If this flag is `usedkubeadm` will not apply a given addon and instead print to the terminal the API objects that will be applied. ([#109995](https://github.com/kubernetes/kubernetes/pull/109995), [@wangyysde](https://github.com/wangyysde))", - "author": "wangyysde", - "author_url": "https://github.com/wangyysde", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109995", - "pr_number": 109995, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "110007": { - "commit": "5856e835736cfe751ed67b7299fb0b21fe89154d", - "text": "Added new flags into alpha events such as --output, --types, --no-headers.", - "markdown": "Added new flags into alpha events such as --output, --types, --no-headers. ([#110007](https://github.com/kubernetes/kubernetes/pull/110007), [@ardaguclu](https://github.com/ardaguclu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1440", - "type": "KEP" - } - ], - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110007", - "pr_number": 110007, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "110009": { - "commit": "0e567664ed3f9eb6c1f41e87f35886188fe5bd96", - "text": "Fix incorrectly report scope for request_duration_seconds and request_slo_duration_seconds metrics for POST custom resources API calls.", - "markdown": "Fix incorrectly report scope for request_duration_seconds and request_slo_duration_seconds metrics for POST custom resources API calls. ([#110009](https://github.com/kubernetes/kubernetes/pull/110009), [@azylinski](https://github.com/azylinski)) [SIG Instrumentation]", - "author": "azylinski", - "author_url": "https://github.com/azylinski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110009", - "pr_number": 110009, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "instrumentation" - ] - }, - "110013": { - "commit": "2d08104ee3beb5c13db088d40cc22ec053512cea", - "text": "The `gcp` and `azure` auth plugins have been removed from client-go and kubectl. See https://github.com/Azure/kubelogin and https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke", - "markdown": "The `gcp` and `azure` auth plugins have been removed from client-go and kubectl. See https://github.com/Azure/kubelogin and https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke ([#110013](https://github.com/kubernetes/kubernetes/pull/110013), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110013", - "pr_number": 110013, - "areas": [ - "apiserver", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "duplicate_kind": true - }, - "110022": { - "commit": "9d85e18ec0dc09f681650d04d65e3db5237bef96", - "text": "kubeadm: perform additional dockershim cleanup. Treat all container runtimes as remote by using the flag \"--container-runtime=remote\", given dockershim was removed in 1.24 and given kubeadm 1.25 supports a kubelet version of 1.24 and 1.25. The flag \"--network-plugin\" will no longer be used for new clusters. Stop cleaning up the following dockershim related directories on \"kubeadm reset\": \"/var/lib/dockershim\", \"/var/runkubernetes\", \"/var/lib/cni\"", - "markdown": "Kubeadm: perform additional dockershim cleanup. Treat all container runtimes as remote by using the flag \"--container-runtime=remote\", given dockershim was removed in 1.24 and given kubeadm 1.25 supports a kubelet version of 1.24 and 1.25. The flag \"--network-plugin\" will no longer be used for new clusters. Stop cleaning up the following dockershim related directories on \"kubeadm reset\": \"/var/lib/dockershim\", \"/var/runkubernetes\", \"/var/lib/cni\" ([#110022](https://github.com/kubernetes/kubernetes/pull/110022), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110022", - "pr_number": 110022, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "110027": { - "commit": "68fc207cd971336d0942cdb7c1d697284ad60eaf", - "text": "Fix the bug that reported incorrect metrics for the cluster IP allocator.", - "markdown": "Fix the bug that reported incorrect metrics for the cluster IP allocator. ([#110027](https://github.com/kubernetes/kubernetes/pull/110027), [@tksm](https://github.com/tksm))", - "author": "tksm", - "author_url": "https://github.com/tksm", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110027", - "pr_number": 110027, - "kinds": [ - "bug" - ], - "sigs": [ - "instrumentation" - ] - }, - "110033": { - "commit": "b7b824bb9e01edfb39411b8c139eab592af0d667", - "text": "etcd: Update to v3.5.4", - "markdown": "Etcd: Update to v3.5.4 ([#110033](https://github.com/kubernetes/kubernetes/pull/110033), [@mk46](https://github.com/mk46)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing]", - "author": "mk46", - "author_url": "https://github.com/mk46", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110033", - "pr_number": 110033, - "areas": [ - "test", - "provider/gcp", - "kubeadm", - "e2e-test-framework" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "testing", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "110043": { - "commit": "28ab02df19148f8b07e40df7eadbb615672640af", - "text": "Kubernetes is now built with Golang 1.18.2.", - "markdown": "Kubernetes is now built with Golang 1.18.2. ([#110043](https://github.com/kubernetes/kubernetes/pull/110043), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110043", - "pr_number": 110043, - "areas": [ - "test", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "110058": { - "commit": "31a10245d67544b6718f569a1442b1de97a91e7d", - "text": "ManagedFields time is correctly updated when the value of a managed field is modified.", - "markdown": "ManagedFields time is correctly updated when the value of a managed field is modified. ([#110058](https://github.com/kubernetes/kubernetes/pull/110058), [@glebiller](https://github.com/glebiller))", - "author": "glebiller", - "author_url": "https://github.com/glebiller", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110058", - "pr_number": 110058, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "110072": { - "commit": "92263ee0dd2588978dd2d99a952a1d463e3a88a3", - "text": "Kubeadm: modified the etcd static Pod `liveness` and `readiness` probes to use a new etcd `v3.5.3+` HTTP(s) health check endpoint `/health?serializable=true` that allows to track the health of individual etcd members and not fail all members if a single member is not healthy in the etcd cluster.", - "markdown": "Kubeadm: modified the etcd static Pod `liveness` and `readiness` probes to use a new etcd `v3.5.3+` HTTP(s) health check endpoint `/health?serializable=true` that allows to track the health of individual etcd members and not fail all members if a single member is not healthy in the etcd cluster. ([#110072](https://github.com/kubernetes/kubernetes/pull/110072), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110072", - "pr_number": 110072, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "110075": { - "commit": "b19d50d68e84c213c8db056a82414defd3a73af2", - "text": "Kubelet: added retry of checking Unix domain sockets on Windows nodes for the plugin registration mechanism.", - "markdown": "Kubelet: added retry of checking Unix domain sockets on Windows nodes for the plugin registration mechanism. ([#110075](https://github.com/kubernetes/kubernetes/pull/110075), [@luckerby](https://github.com/luckerby))", - "author": "luckerby", - "author_url": "https://github.com/luckerby", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110075", - "pr_number": 110075, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true - }, - "110076": { - "commit": "f0c47dc91628978ff21d417630037e839102621e", - "text": "Informer/reflector callers can now catch and unwrap specific API errors by type.", - "markdown": "Informer/reflector callers can now catch and unwrap specific API errors by type. ([#110076](https://github.com/kubernetes/kubernetes/pull/110076), [@karlkfi](https://github.com/karlkfi))", - "author": "karlkfi", - "author_url": "https://github.com/karlkfi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110076", - "pr_number": 110076, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "110095": { - "commit": "84c8afeba39ec9ebbb231c67daf9862077299e01", - "text": "kubeadm: stop applying the `node-role.kubernetes.io/master:NoSchedule` taint to control plane nodes for new clusters. Remove the taint from existing control plane nodes during \"kubeadm upgrade apply\"", - "markdown": "Kubeadm: stop applying the `node-role.kubernetes.io/master:NoSchedule` taint to control plane nodes for new clusters. Remove the taint from existing control plane nodes during \"kubeadm upgrade apply\" ([#110095](https://github.com/kubernetes/kubernetes/pull/110095), [@neolit123](https://github.com/neolit123))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2067", - "type": "KEP" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110095", - "pr_number": 110095, - "areas": [ - "test", - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "110104": { - "commit": "22d018cf76d4b73ce455b9d6a02892db8c84319a", - "text": "Some apiserver metrics were changed, as follows.\n- `priority_level_seat_count_samples` is replaced with `priority_level_seat_utilization`, which samples every nanosecond rather than every millisecond; the old metric conveyed utilization despite its name.\n- `priority_level_seat_count_watermarks` is removed.\n- `priority_level_request_count_samples` is replaced with `priority_level_request_utilization`, which samples every nanosecond rather than every millisecond; the old metric conveyed utilization despite its name.\n- `priority_level_request_count_watermarks` is removed.\n- `read_vs_write_request_count_samples` is replaced with `read_vs_write_current_requests`, which samples every nanosecond rather than every second; the new metric, like the old one, measures utilization when the max-in-flight filter is used and number of requests when the API Priority and Fairness filter is used.\n- `read_vs_write_request_count_watermarks` is removed.", - "markdown": "Some apiserver metrics were changed, as follows.\n - `priority_level_seat_count_samples` is replaced with `priority_level_seat_utilization`, which samples every nanosecond rather than every millisecond; the old metric conveyed utilization despite its name.\n - `priority_level_seat_count_watermarks` is removed.\n - `priority_level_request_count_samples` is replaced with `priority_level_request_utilization`, which samples every nanosecond rather than every millisecond; the old metric conveyed utilization despite its name.\n - `priority_level_request_count_watermarks` is removed.\n - `read_vs_write_request_count_samples` is replaced with `read_vs_write_current_requests`, which samples every nanosecond rather than every second; the new metric, like the old one, measures utilization when the max-in-flight filter is used and number of requests when the API Priority and Fairness filter is used.\n - `read_vs_write_request_count_watermarks` is removed. ([#110104](https://github.com/kubernetes/kubernetes/pull/110104), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery, Instrumentation and Testing]", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110104", - "pr_number": 110104, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "110134": { - "commit": "e34f51e9b222045abfdefd967ecb4ac2ac07c631", - "text": "Kubeadm: now sets the host `OS` environment variables when executing `crictl` during image pulls. This fixed a bug where `*PROXY` environment variables did not affect `crictl` internet connectivity.", - "markdown": "Kubeadm: now sets the host `OS` environment variables when executing `crictl` during image pulls. This fixed a bug where `*PROXY` environment variables did not affect `crictl` internet connectivity. ([#110134](https://github.com/kubernetes/kubernetes/pull/110134), [@mk46](https://github.com/mk46))", - "author": "mk46", - "author_url": "https://github.com/mk46", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110134", - "pr_number": 110134, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "110140": { - "commit": "10bea49c12d3eac87860ca3afe3d69a5b245ae33", - "text": "Fixed an issue on Windows nodes where `HostProcess` containers may not be created as expected.", - "markdown": "Fixed an issue on Windows nodes where `HostProcess` containers may not be created as expected. ([#110140](https://github.com/kubernetes/kubernetes/pull/110140), [@marosset](https://github.com/marosset))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/1981-windows-privileged-container-support", - "type": "KEP" - } - ], - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110140", - "pr_number": 110140, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true - }, - "110145": { - "commit": "4f851ebffbc8b601ce99d9fd444928443091c7d5", - "text": "Apiserver: fixed audit of loading more than one webhooks.", - "markdown": "Apiserver: fixed audit of loading more than one webhooks. ([#110145](https://github.com/kubernetes/kubernetes/pull/110145), [@sxllwx](https://github.com/sxllwx))", - "author": "sxllwx", - "author_url": "https://github.com/sxllwx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110145", - "pr_number": 110145, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true - }, - "110164": { - "commit": "d48c0677712f76f1b1832d7f95625ff5994eeae4", - "text": "The `priority_level_request_utilization` metric histogram is adjusted so that for the cases where `phase=waiting` the denominator is the cumulative capacity of all of the priority level's queues.\n The `read_vs_write_current_requests` metric histogram is adjusted, in the case of using API Priority and Fairness instead of max-in-flight, to divide by the relevant limit: sum of queue capacities for waiting requests, sum of seat limits for executing requests.", - "markdown": "The `priority_level_request_utilization` metric histogram is adjusted so that for the cases where `phase=waiting` the denominator is the cumulative capacity of all of the priority level's queues.\n The `read_vs_write_current_requests` metric histogram is adjusted, in the case of using API Priority and Fairness instead of max-in-flight, to divide by the relevant limit: sum of queue capacities for waiting requests, sum of seat limits for executing requests. ([#110164](https://github.com/kubernetes/kubernetes/pull/110164), [@MikeSpreitzer](https://github.com/MikeSpreitzer))", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110164", - "pr_number": 110164, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "110178": { - "commit": "eeb12bb3af3361c9ac652be071c3b9cf49aa5e58", - "text": "Graduated ServerSideFieldValidation to `beta`. Schema validation is performed server-side and requests will receive warnings for any invalid/unknown fields by default.", - "markdown": "Graduated ServerSideFieldValidation to `beta`. Schema validation is performed server-side and requests will receive warnings for any invalid/unknown fields by default. ([#110178](https://github.com/kubernetes/kubernetes/pull/110178), [@kevindelgado](https://github.com/kevindelgado)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Storage and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/2885", - "type": "KEP" - } - ], - "author": "kevindelgado", - "author_url": "https://github.com/kevindelgado", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110178", - "pr_number": 110178, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "110179": { - "commit": "c0642b749ea3c29f415e3d2d7bacc164db231655", - "text": "OpenAPI will no longer duplicate these schemas:\n- `io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions_v2`\n- `io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta_v2`\n- `io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference_v2`\n- `io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails_v2`\n- `io.k8s.apimachinery.pkg.apis.meta.v1.Status_v2`", - "markdown": "OpenAPI will no longer duplicate these schemas:\n - `io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions_v2`\n - `io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta_v2`\n - `io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference_v2`\n - `io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails_v2`\n - `io.k8s.apimachinery.pkg.apis.meta.v1.Status_v2` ([#110179](https://github.com/kubernetes/kubernetes/pull/110179), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110179", - "pr_number": 110179, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "110183": { - "commit": "40543b77b5a72fcd59214ab41f2101657640bd37", - "text": "NONE", - "markdown": "NONE ([#110183](https://github.com/kubernetes/kubernetes/pull/110183), [@lokichoggio](https://github.com/lokichoggio)) [SIG Apps and Autoscaling]", - "author": "lokichoggio", - "author_url": "https://github.com/lokichoggio", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110183", - "pr_number": 110183, - "kinds": [ - "documentation", - "cleanup" - ], - "sigs": [ - "autoscaling", - "apps" - ], - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "110191": { - "commit": "79cef12276522232edb444f4493226466664327a", - "text": "Pods now post their `readiness` during termination.", - "markdown": "Pods now post their `readiness` during termination. ([#110191](https://github.com/kubernetes/kubernetes/pull/110191), [@rphillips](https://github.com/rphillips))", - "author": "rphillips", - "author_url": "https://github.com/rphillips", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110191", - "pr_number": 110191, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "110201": { - "commit": "1d22329de8309d5892fc8fb9b5f9ff16a23b666a", - "text": "Added KMS `v2alpha1` API.", - "markdown": "Added KMS `v2alpha1` API. ([#110201](https://github.com/kubernetes/kubernetes/pull/110201), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3302", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110201", - "pr_number": 110201, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true - }, - "110214": { - "commit": "1e7fa3478ed9de606b761be4f70be4ca60e6e697", - "text": "E2e tests: fixed bug in the e2e image `agnhost:2.38` which hangs instead of exiting if a `SIGTERM` signal is received and the `shutdown-delay` option is `0`.", - "markdown": "E2e tests: fixed bug in the e2e image `agnhost:2.38` which hangs instead of exiting if a `SIGTERM` signal is received and the `shutdown-delay` option is `0`. ([#110214](https://github.com/kubernetes/kubernetes/pull/110214), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110214", - "pr_number": 110214, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "flake", - "failing-test", - "regression" - ], - "sigs": [ - "testing" - ], - "duplicate_kind": true - }, - "110255": { - "commit": "8b6dd065d7f9b688fe565a2398065a23721a259b", - "text": "The pod phase lifecycle guarantees that terminal Pods, those whose states are `Unready` or `Succeeded`, can not regress and will have all container stopped. Hence, terminal Pods will never be reachable and should not publish their IP addresses on the `Endpoints` or `EndpointSlices`, independently of the Service `TolerateUnready` option.", - "markdown": "The pod phase lifecycle guarantees that terminal Pods, those whose states are `Unready` or `Succeeded`, can not regress and will have all container stopped. Hence, terminal Pods will never be reachable and should not publish their IP addresses on the `Endpoints` or `EndpointSlices`, independently of the Service `TolerateUnready` option. ([#110255](https://github.com/kubernetes/kubernetes/pull/110255), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110255", - "pr_number": 110255, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node", - "apps", - "testing" - ], - "duplicate": true - }, - "110256": { - "commit": "226323178e23b4c476001266beab1e2f116b3879", - "text": "Fixed a kubelet issue that could result in invalid pod status updates to be sent to the api-server where pods would be reported in a terminal phase but also report a ready condition of true in some cases.", - "markdown": "Fixed a kubelet issue that could result in invalid pod status updates to be sent to the api-server where pods would be reported in a terminal phase but also report a ready condition of true in some cases. ([#110256](https://github.com/kubernetes/kubernetes/pull/110256), [@bobbypage](https://github.com/bobbypage))", - "author": "bobbypage", - "author_url": "https://github.com/bobbypage", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110256", - "pr_number": 110256, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "110292": { - "commit": "6cd258f9f548a5e50e8cc7f0662a1882ce2672d0", - "text": "A change of a failed job condition status to `False` does not result in duplicate conditions.", - "markdown": "A change of a failed job condition status to `False` does not result in duplicate conditions. ([#110292](https://github.com/kubernetes/kubernetes/pull/110292), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110292", - "pr_number": 110292, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "110294": { - "commit": "03b18bf1387d2726950c433aed25bfaf9324bbb3", - "text": "Fix bug that prevented the job controller from enforcing activeDeadlineSeconds when set.", - "markdown": "Fix bug that prevented the job controller from enforcing activeDeadlineSeconds when set. ([#110294](https://github.com/kubernetes/kubernetes/pull/110294), [@harshanarayana](https://github.com/harshanarayana))", - "author": "harshanarayana", - "author_url": "https://github.com/harshanarayana", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110294", - "pr_number": 110294, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "110310": { - "commit": "5219122d0ccd3615f7a36e30189b8aa2910341de", - "text": "`apiserver_longrunning_gauge` was removed from the codebase. Please use `apiserver_longrunning_requests`\ninstead.\n", - "markdown": "`apiserver_longrunning_gauge` was removed from the codebase. Please use `apiserver_longrunning_requests`\n instead.\n ([#110310](https://github.com/kubernetes/kubernetes/pull/110310), [@logicalhan](https://github.com/logicalhan))", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110310", - "pr_number": 110310, - "areas": [ - "apiserver", - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "110326": { - "commit": "ebcc5834f996a6265519dfd5b38fb0d53f6a62ad", - "text": "Added error message \"dry-run can not be used when --force is set\" when dry-run and force flags are set in replace command.", - "markdown": "Added error message \"dry-run can not be used when --force is set\" when dry-run and force flags are set in replace command. ([#110326](https://github.com/kubernetes/kubernetes/pull/110326), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110326", - "pr_number": 110326, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "110327": { - "commit": "9fad5c981aca336a3a48dba9320e0495ce8f59f8", - "text": "Kubeadm: graduated the kubeadm specific feature gate `UnversionedKubeletConfigMap` to GA and locked it to `true` by default. The kubelet related ConfigMap and RBAC rules are now locked to have a simplified naming `*kubelet-config` instead of the legacy naming `*kubelet-config-x.yy`, where `x.yy` was the version of the control plane. If you have previously used the old naming format with `UnversionedKubeletConfigMap=false`, you must manually copy the config map from `kube-system/kubelet-config-x.yy` to `kube-system/kubelet-config` before upgrading to `v1.25`.", - "markdown": "Kubeadm: graduated the kubeadm specific feature gate `UnversionedKubeletConfigMap` to GA and locked it to `true` by default. The kubelet related ConfigMap and RBAC rules are now locked to have a simplified naming `*kubelet-config` instead of the legacy naming `*kubelet-config-x.yy`, where `x.yy` was the version of the control plane. If you have previously used the old naming format with `UnversionedKubeletConfigMap=false`, you must manually copy the config map from `kube-system/kubelet-config-x.yy` to `kube-system/kubelet-config` before upgrading to `v1.25`. ([#110327](https://github.com/kubernetes/kubernetes/pull/110327), [@neolit123](https://github.com/neolit123))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2915", - "type": "KEP" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110327", - "pr_number": 110327, - "areas": [ - "test", - "kubeadm" - ], - "kinds": [ - "cleanup", - "feature", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "110333": { - "commit": "d9eb7c4c6c7b69aaf4ad87ea88f831c90c2d9f81", - "text": "No action required; No API/CLI changed; Add new Windows Image Support", - "markdown": "No action required; No API/CLI changed; Add new Windows Image Support ([#110333](https://github.com/kubernetes/kubernetes/pull/110333), [@liurupeng](https://github.com/liurupeng)) [SIG Cloud Provider and Windows]", - "author": "liurupeng", - "author_url": "https://github.com/liurupeng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110333", - "pr_number": 110333, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "windows", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "110334": { - "commit": "f045fb688f6d6476dc008cfc8f07190abfcd8289", - "text": "In \"large\" clusters, kube-proxy in iptables mode will now sometimes\nleave unused rules in iptables for a while (up to `--iptables-sync-period`)\nbefore deleting them. This improves performance by not requiring it to\ncheck for stale rules on every sync. (In smaller clusters, it will still\nremove unused rules immediately once they are no longer used.)\n\n(The threshold for \"large\" used here is currently \"1000 endpoints\" but\nthis is subject to change.)", - "markdown": "In \"large\" clusters, kube-proxy in iptables mode will now sometimes\n leave unused rules in iptables for a while (up to `--iptables-sync-period`)\n before deleting them. This improves performance by not requiring it to\n check for stale rules on every sync. (In smaller clusters, it will still\n remove unused rules immediately once they are no longer used.)\n \n (The threshold for \"large\" used here is currently \"1000 endpoints\" but\n this is subject to change.) ([#110334](https://github.com/kubernetes/kubernetes/pull/110334), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110334", - "pr_number": 110334, - "areas": [ - "ipvs" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "duplicate_kind": true - }, - "110337": { - "commit": "e66a016b73b0a7f67185a18706d5d9b71cab1e34", - "text": "`apiserver_dropped_requests` is dropped from this release since `apiserver_request_total` can now be used to track dropped requests. `etcd_object_counts` is also removed in favor of `apiserver_storage_objects`. `apiserver_registered_watchers` is also removed in favor of `apiserver_longrunning_requests`.", - "markdown": "`apiserver_dropped_requests` is dropped from this release since `apiserver_request_total` can now be used to track dropped requests. `etcd_object_counts` is also removed in favor of `apiserver_storage_objects`. `apiserver_registered_watchers` is also removed in favor of `apiserver_longrunning_requests`. ([#110337](https://github.com/kubernetes/kubernetes/pull/110337), [@logicalhan](https://github.com/logicalhan))", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110337", - "pr_number": 110337, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "110343": { - "commit": "da813852d0d4d89de03358d587822cf149318b62", - "text": "kubeadm: during \"upgrade apply/diff/node\", in case the `ClusterConfiguration.imageRepository` stored in the \"kubeadm-config\" `ConfigMap` contains the legacy \"k8s.gcr.io\" repository, modify it to the new default \"registry.k8s.io\". Reflect the change in the in-cluster `ConfigMap` only during \"upgrade apply\".", - "markdown": "Kubeadm: during \"upgrade apply/diff/node\", in case the `ClusterConfiguration.imageRepository` stored in the \"kubeadm-config\" `ConfigMap` contains the legacy \"k8s.gcr.io\" repository, modify it to the new default \"registry.k8s.io\". Reflect the change in the in-cluster `ConfigMap` only during \"upgrade apply\". ([#110343](https://github.com/kubernetes/kubernetes/pull/110343), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110343", - "pr_number": 110343, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "110371": { - "commit": "59644ff7bd476caff6b06543581a3efc377b045a", - "text": "Upgraded Azure/go-autorest/autorest to v0.11.27.", - "markdown": "Upgraded Azure/go-autorest/autorest to v0.11.27. ([#110371](https://github.com/kubernetes/kubernetes/pull/110371), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110371", - "pr_number": 110371, - "areas": [ - "cloudprovider", - "provider/azure", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "110372": { - "commit": "fa258263d023dfbd85dc9a61558d9a7236ee0758", - "text": "NONE", - "markdown": "NONE ([#110372](https://github.com/kubernetes/kubernetes/pull/110372), [@lokichoggio](https://github.com/lokichoggio)) [SIG Scheduling]", - "author": "lokichoggio", - "author_url": "https://github.com/lokichoggio", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110372", - "pr_number": 110372, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "110379": { - "commit": "7de86ff1989429f58aabbf844557557228785db9", - "text": "Updated base image for Windows pause container images to one built on Windows machines to address limitations of building Windows container images on Linux machines.", - "markdown": "Updated base image for Windows pause container images to one built on Windows machines to address limitations of building Windows container images on Linux machines. ([#110379](https://github.com/kubernetes/kubernetes/pull/110379), [@marosset](https://github.com/marosset))", - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110379", - "pr_number": 110379, - "kinds": [ - "feature" - ], - "sigs": [ - "windows" - ], - "feature": true - }, - "110388": { - "commit": "bd1c9c1c5b397fd0d5224c4f93af88e5fbc39df2", - "text": "the `minDomains` field in Pod Topology Spread is graduated to beta", - "markdown": "The `minDomains` field in Pod Topology Spread is graduated to beta ([#110388](https://github.com/kubernetes/kubernetes/pull/110388), [@sanposhiho](https://github.com/sanposhiho)) [SIG API Machinery and Apps]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3022", - "type": "KEP" - } - ], - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110388", - "pr_number": 110388, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "110394": { - "commit": "b6fb5a2878a4d44bc73edfd30bec82c907f3d230", - "text": "No", - "markdown": "No ([#110394](https://github.com/kubernetes/kubernetes/pull/110394), [@Abirdcfly](https://github.com/Abirdcfly)) [SIG CLI]", - "author": "Abirdcfly", - "author_url": "https://github.com/Abirdcfly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110394", - "pr_number": 110394, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "do_not_publish": true - }, - "110405": { - "commit": "cd4b8ed07036a08e04ee91a1354643cead321364", - "text": "Kubeadm: enhanced the \"patches\" functionality to be able to patch kubelet config files containing `v1beta1.KubeletConfiguration`. The new patch target is called `kubeletconfiguration` (e.g. patch file `kubeletconfiguration+json.json`).This makes it possible to apply node specific KubeletConfiguration options during `init`, `join` and `upgrade`, while the main `KubeletConfiguration` that is passed to `init` as part of the `--config` file can still act as the global stored in the cluster `KubeletConfiguration`.", - "markdown": "Kubeadm: enhanced the \"patches\" functionality to be able to patch kubelet config files containing `v1beta1.KubeletConfiguration`. The new patch target is called `kubeletconfiguration` (e.g. patch file `kubeletconfiguration+json.json`).This makes it possible to apply node specific KubeletConfiguration options during `init`, `join` and `upgrade`, while the main `KubeletConfiguration` that is passed to `init` as part of the `--config` file can still act as the global stored in the cluster `KubeletConfiguration`. ([#110405](https://github.com/kubernetes/kubernetes/pull/110405), [@neolit123](https://github.com/neolit123))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1739", - "type": "KEP" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110405", - "pr_number": 110405, - "areas": [ - "test", - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle", - "testing" - ], - "feature": true, - "duplicate": true - }, - "110408": { - "commit": "bb7b0b6a91e9f365025d496cb267817e777c872b", - "text": "Fix printing resources with int64 fields", - "markdown": "Fix printing resources with int64 fields ([#110408](https://github.com/kubernetes/kubernetes/pull/110408), [@tkashem](https://github.com/tkashem)) [SIG API Machinery]", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110408", - "pr_number": 110408, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "110410": { - "commit": "18b5efceda2643b7175fbf712e8978d382077f9b", - "text": "Feature gate `CSIMigration` was locked to enabled. `CSIMigration` is GA now. The feature gate will be removed in `v1.27`.", - "markdown": "Feature gate `CSIMigration` was locked to enabled. `CSIMigration` is GA now. The feature gate will be removed in `v1.27`. ([#110410](https://github.com/kubernetes/kubernetes/pull/110410), [@Jiawei0227](https://github.com/Jiawei0227))", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110410", - "pr_number": 110410, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "110411": { - "commit": "4df3f2b9f090594c3355477cda8787e5357e2b67", - "text": "Promoted the `CSIMigrationPortworx` feature gate to Beta.", - "markdown": "Promoted the `CSIMigrationPortworx` feature gate to Beta. ([#110411](https://github.com/kubernetes/kubernetes/pull/110411), [@trierra](https://github.com/trierra))", - "documentation": [ - { - "description": "[KEP]: [", - "url": "https://github.com/kubernetes/enhancements/issues/2589]", - "type": "KEP" - } - ], - "author": "trierra", - "author_url": "https://github.com/trierra", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110411", - "pr_number": 110411, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true - }, - "110419": { - "commit": "163aab43d7d1a279dfa4a261202a8f424933e7dd", - "text": "Graduated `ServiceIPStaticSubrange` feature to Beta (disabled by default).", - "markdown": "Graduated `ServiceIPStaticSubrange` feature to Beta (disabled by default). ([#110419](https://github.com/kubernetes/kubernetes/pull/110419), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110419", - "pr_number": 110419, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "110421": { - "commit": "81e6625c88b8c04aebff35ae9ffb9a90fc5ef232", - "text": "Kubernetes is now built with Golang 1.18.3", - "markdown": "Kubernetes is now built with Golang 1.18.3 ([#110421](https://github.com/kubernetes/kubernetes/pull/110421), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110421", - "pr_number": 110421, - "areas": [ - "test", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "110425": { - "commit": "1d811065345bfe9f3be7f6757a9938c1760180c7", - "text": "Client-go: fixed an error in the fake client when creating API requests are submitted to subresources like `pods/eviction`.", - "markdown": "Client-go: fixed an error in the fake client when creating API requests are submitted to subresources like `pods/eviction`. ([#110425](https://github.com/kubernetes/kubernetes/pull/110425), [@LY-today](https://github.com/LY-today))", - "author": "LY-today", - "author_url": "https://github.com/LY-today", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110425", - "pr_number": 110425, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "110459": { - "commit": "4b024fc4eeb4a3eeb831e7fddec52b83d0b072df", - "text": "The `PodSecurity` admission plugin has graduated to GA and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1`.", - "markdown": "The `PodSecurity` admission plugin has graduated to GA and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1`. ([#110459](https://github.com/kubernetes/kubernetes/pull/110459), [@wangyysde](https://github.com/wangyysde))", - "documentation": [ - { - "description": "[KEP]: [", - "url": "https://github.com/kubernetes/enhancements/pull/3310](https://github.com/kubernetes/enhancements/pull/3310)", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/security/pod-security-admission/", - "type": "official" - } - ], - "author": "wangyysde", - "author_url": "https://github.com/wangyysde", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110459", - "pr_number": 110459, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "110488": { - "commit": "7c127b33dafc530f7ca0c165ddb47db86eb45880", - "text": "kube-up now includes CoreDNS version v1.9.3.", - "markdown": "Kube-up now includes CoreDNS version v1.9.3. ([#110488](https://github.com/kubernetes/kubernetes/pull/110488), [@mzaian](https://github.com/mzaian))", - "author": "mzaian", - "author_url": "https://github.com/mzaian", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110488", - "pr_number": 110488, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "110489": { - "commit": "f15b0d1bd7493dfcc109fd064e952899b94a2bb1", - "text": "kubeadm: Update CoreDNS to v1.9.3.", - "markdown": "Kubeadm: Update CoreDNS to v1.9.3. ([#110489](https://github.com/kubernetes/kubernetes/pull/110489), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110489", - "pr_number": 110489, - "areas": [ - "kubeadm", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "110491": { - "commit": "5f40fb05cbeed2f45949c2dd19c6003f8ef79925", - "text": "Lock CSIMigrationAzureDisk feature gate to default.", - "markdown": "Lock CSIMigrationAzureDisk feature gate to default. ([#110491](https://github.com/kubernetes/kubernetes/pull/110491), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110491", - "pr_number": 110491, - "areas": [ - "provider/azure" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "110495": { - "commit": "a0e702763e01d246ce13a5d7608407204094748a", - "text": "Changed ownership semantics of PersistentVolume's spec.claimRef from `atomic` to `granular`.", - "markdown": "Changed ownership semantics of PersistentVolume's spec.claimRef from `atomic` to `granular`. ([#110495](https://github.com/kubernetes/kubernetes/pull/110495), [@alexzielenski](https://github.com/alexzielenski))", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110495", - "pr_number": 110495, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug", - "api-change", - "regression" - ], - "sigs": [ - "api-machinery", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "110496": { - "commit": "272386c9b66c52cc150c33063686993f92d8bd0c", - "text": "Fixed error \"dbus: connection closed by user\" after dbus daemon restarts.", - "markdown": "Fixed error \"dbus: connection closed by user\" after dbus daemon restarts. ([#110496](https://github.com/kubernetes/kubernetes/pull/110496), [@kolyshkin](https://github.com/kolyshkin))", - "author": "kolyshkin", - "author_url": "https://github.com/kolyshkin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110496", - "pr_number": 110496, - "areas": [ - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "110506": { - "commit": "4e17f88b7e394b74dbfddf7e930ad3a4065307cf", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#110506](https://github.com/kubernetes/kubernetes/pull/110506), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Node]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110506", - "pr_number": 110506, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "110523": { - "commit": "f92152da72bf2de312a54c77ef234e94dabf61c8", - "text": "Fixed image pull failure when `IMDS` is unavailable in kubelet startup.", - "markdown": "Fixed image pull failure when `IMDS` is unavailable in kubelet startup. ([#110523](https://github.com/kubernetes/kubernetes/pull/110523), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110523", - "pr_number": 110523, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "110534": { - "commit": "442548a0648165570449955d719147148a6840c3", - "text": "Kube-Scheduler ComponentConfig is graduated to GA, `kubescheduler.config.k8s.io/v1` is available now. \nPlugin `SelectorSpread` is removed in v1.", - "markdown": "Kube-Scheduler ComponentConfig is graduated to GA, `kubescheduler.config.k8s.io/v1` is available now. \n Plugin `SelectorSpread` is removed in v1. ([#110534](https://github.com/kubernetes/kubernetes/pull/110534), [@kerthcet](https://github.com/kerthcet))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/785", - "type": "KEP" - } - ], - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110534", - "pr_number": 110534, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "110538": { - "commit": "15beb41423dce376f96b3fc8bf87d37f0f64f0f8", - "text": "Optimization of kubectl Chinese translation", - "markdown": "Optimization of kubectl Chinese translation ([#110538](https://github.com/kubernetes/kubernetes/pull/110538), [@hwdef](https://github.com/hwdef)) [SIG CLI]", - "author": "hwdef", - "author_url": "https://github.com/hwdef", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110538", - "pr_number": 110538, - "areas": [ - "kubectl" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cli" - ] - }, - "110553": { - "commit": "4a542609aa0f087aec0d575c6b2845d38335d453", - "text": "Kubeadm: Added support for additional authentication strategies in `kubeadm join` with discovery/kubeconfig file: client-go authentication plugins (`exec`), `tokenFile`, and `authProvider.`", - "markdown": "Kubeadm: Added support for additional authentication strategies in `kubeadm join` with discovery/kubeconfig file: client-go authentication plugins (`exec`), `tokenFile`, and `authProvider.` ([#110553](https://github.com/kubernetes/kubernetes/pull/110553), [@tallaxes](https://github.com/tallaxes))", - "author": "tallaxes", - "author_url": "https://github.com/tallaxes", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110553", - "pr_number": 110553, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "110558": { - "commit": "700fea3d4264ff435e6bfc6147ee0f8d4b8d7d41", - "text": "Updated debian-base, debian-iptables, and setcap images:\n- debian-base:bullseye-v1.3.0\n- debian-iptables:bullseye-v1.4.0\n- setcap:bullseye-v1.3.0", - "markdown": "Updated debian-base, debian-iptables, and setcap images:\n - debian-base:bullseye-v1.3.0\n - debian-iptables:bullseye-v1.4.0\n - setcap:bullseye-v1.3.0 ([#110558](https://github.com/kubernetes/kubernetes/pull/110558), [@wespanther](https://github.com/wespanther))", - "author": "wespanther", - "author_url": "https://github.com/wespanther", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110558", - "pr_number": 110558, - "areas": [ - "test", - "security", - "release-eng", - "conformance", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "110564": { - "commit": "00ea892a0f1ab24e255524469648258c87775983", - "text": "Make PodSpec.Ports' description clearer on how this information is only informational and how it can be incorrect.", - "markdown": "Make PodSpec.Ports' description clearer on how this information is only informational and how it can be incorrect. ([#110564](https://github.com/kubernetes/kubernetes/pull/110564), [@j4m3s-s](https://github.com/j4m3s-s)) [SIG API Machinery, Network and Node]", - "author": "j4m3s-s", - "author_url": "https://github.com/j4m3s-s", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110564", - "pr_number": 110564, - "areas": [ - "code-generation" - ], - "kinds": [ - "documentation", - "api-change" - ], - "sigs": [ - "network", - "node", - "api-machinery" - ], - "duplicate": true, - "duplicate_kind": true - }, - "110593": { - "commit": "e9702cfc1bce5d92fae707de3c5c57b8e952d53c", - "text": "Kubeadm: the preferred pod anti-affinity for CoreDNS is now enabled by default.", - "markdown": "Kubeadm: the preferred pod anti-affinity for CoreDNS is now enabled by default. ([#110593](https://github.com/kubernetes/kubernetes/pull/110593), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110593", - "pr_number": 110593, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "110639": { - "commit": "ae3537120badd8989a15798c7a65358f93ae3f56", - "text": "EndpointSlices with Pod referencing Nodes that don't exist couldn't be created or updated. The behavior on the EndpointSlice controller has been modified to update the EndpointSlice without the Pods that reference non-existing Nodes and keep retrying until all Pods reference existing Nodes. However, if `service.Spec.PublishNotReadyAddresses` is set, all the Pods are published without retrying. Fixed EndpointSlices metrics to reflect correctly the number of desired EndpointSlices when no endpoints are present.", - "markdown": "EndpointSlices with Pod referencing Nodes that don't exist couldn't be created or updated. The behavior on the EndpointSlice controller has been modified to update the EndpointSlice without the Pods that reference non-existing Nodes and keep retrying until all Pods reference existing Nodes. However, if `service.Spec.PublishNotReadyAddresses` is set, all the Pods are published without retrying. Fixed EndpointSlices metrics to reflect correctly the number of desired EndpointSlices when no endpoints are present. ([#110639](https://github.com/kubernetes/kubernetes/pull/110639), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110639", - "pr_number": 110639, - "kinds": [ - "bug", - "documentation", - "cleanup" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "110648": { - "commit": "e6a60c3b4d941da805d7e5548ffd462e5babc74d", - "text": "Fixed s.RuntimeCgroups error condition and Fixed possible wrong log print.", - "markdown": "Fixed s.RuntimeCgroups error condition and Fixed possible wrong log print. ([#110648](https://github.com/kubernetes/kubernetes/pull/110648), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110648", - "pr_number": 110648, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "110652": { - "commit": "dee37aacc1e2e98b25a2cd39dbbabb1c99d442f3", - "text": "Fixed a bug in `kubectl` that caused the wrong result length when using `--chunk-size` and `--selector` together.", - "markdown": "Fixed a bug in `kubectl` that caused the wrong result length when using `--chunk-size` and `--selector` together. ([#110652](https://github.com/kubernetes/kubernetes/pull/110652), [@Abirdcfly](https://github.com/Abirdcfly))", - "author": "Abirdcfly", - "author_url": "https://github.com/Abirdcfly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110652", - "pr_number": 110652, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "110656": { - "commit": "34b412535129447f3ce1478fc9334aa7f0a4ee5d", - "text": "Kubeadm: Fixed duplicate `unix://` prefix in node annotation.", - "markdown": "Kubeadm: Fixed duplicate `unix://` prefix in node annotation. ([#110656](https://github.com/kubernetes/kubernetes/pull/110656), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110656", - "pr_number": 110656, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "110663": { - "commit": "b52705ae3edd5fa3ed5af472ab223c0a31111314", - "text": "For scheduler plugin developers: the scheduler framework's shared PodInformer is now initialized with empty indexers. This enables scheduler plugins to add their extra indexers. Note that only non-conflict indexers are allowed to be added.", - "markdown": "For scheduler plugin developers: the scheduler framework's shared PodInformer is now initialized with empty indexers. This enables scheduler plugins to add their extra indexers. Note that only non-conflict indexers are allowed to be added. ([#110663](https://github.com/kubernetes/kubernetes/pull/110663), [@fromanirh](https://github.com/fromanirh)) [SIG Scheduling]", - "author": "fromanirh", - "author_url": "https://github.com/fromanirh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110663", - "pr_number": 110663, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "110668": { - "commit": "d9e7f25a804fcc3a75b0d65a4e7af2fae1ab4999", - "text": "Removed unused flags from `kubectl run` command.", - "markdown": "Removed unused flags from `kubectl run` command. ([#110668](https://github.com/kubernetes/kubernetes/pull/110668), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110668", - "pr_number": 110668, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true - }, - "110670": { - "commit": "9ad4c5c0a09489976f0e3cba792705016555fbbc", - "text": "Unmounted volumes correctly for reconstructed volumes even if mount operation fails after kubelet restart.", - "markdown": "Unmounted volumes correctly for reconstructed volumes even if mount operation fails after kubelet restart. ([#110670](https://github.com/kubernetes/kubernetes/pull/110670), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110670", - "pr_number": 110670, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true - }, - "110688": { - "commit": "c396744a6a3aef38a16a3a1c3d9dac9f6dc93a9e", - "text": "Fixed mounting of iSCSI volumes over IPv6 networks.", - "markdown": "Fixed mounting of iSCSI volumes over IPv6 networks. ([#110688](https://github.com/kubernetes/kubernetes/pull/110688), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110688", - "pr_number": 110688, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "110691": { - "commit": "fe1d3fe6376f580368dce57d062cddb91276ffe2", - "text": "Run kubelet, when there is an error exit, print the error log.", - "markdown": "Run kubelet, when there is an error exit, print the error log. ([#110691](https://github.com/kubernetes/kubernetes/pull/110691), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110691", - "pr_number": 110691, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "110703": { - "commit": "666ee0886f44138a461f19ebe398ae21c7fea11f", - "text": "The beta feature `ServiceIPStaticSubrange` is now enabled by default.", - "markdown": "The beta feature `ServiceIPStaticSubrange` is now enabled by default. ([#110703](https://github.com/kubernetes/kubernetes/pull/110703), [@aojea](https://github.com/aojea))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/3070-reserved-service-ip-range", - "type": "KEP" - }, - { - "description": "[Blog]", - "url": "https://kubernetes.io/blog/2022/05/23/service-ip-dynamic-and-static-allocation/", - "type": "external" - } - ], - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110703", - "pr_number": 110703, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "110706": { - "commit": "5b92e46b2238b4d84358451013e634361084ff7d", - "text": "[aws] Fixed a bug which reduces the number of unnecessary calls to STS in the event of assume role failures in the legacy cloud provider", - "markdown": "[aws] Fixed a bug which reduces the number of unnecessary calls to STS in the event of assume role failures in the legacy cloud provider ([#110706](https://github.com/kubernetes/kubernetes/pull/110706), [@prateekgogia](https://github.com/prateekgogia)) [SIG Cloud Provider]", - "author": "prateekgogia", - "author_url": "https://github.com/prateekgogia", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110706", - "pr_number": 110706, - "areas": [ - "cloudprovider", - "provider/aws" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "110709": { - "commit": "07dfdf085956c19825364b5d6bb9637183f96ce4", - "text": "The commands `kubeadm certs renew` and `kubeadm certs check-expiration` now honor the `cert-dir` flag on a running Kubernetes cluster.", - "markdown": "The commands `kubeadm certs renew` and `kubeadm certs check-expiration` now honor the `cert-dir` flag on a running Kubernetes cluster. ([#110709](https://github.com/kubernetes/kubernetes/pull/110709), [@chendave](https://github.com/chendave))", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110709", - "pr_number": 110709, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "110719": { - "commit": "7a9268d83a7b3cb7d1aaa68a6ba06a38ea33e44d", - "text": "FibreChannel volume plugin may match the wrong device and wrong associated devicemapper parent. This may cause a disater that pods attach wrong disks.", - "markdown": "FibreChannel volume plugin may match the wrong device and wrong associated devicemapper parent. This may cause a disater that pods attach wrong disks. ([#110719](https://github.com/kubernetes/kubernetes/pull/110719), [@xakdwch](https://github.com/xakdwch))", - "author": "xakdwch", - "author_url": "https://github.com/xakdwch", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110719", - "pr_number": 110719, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "110721": { - "commit": "aefb71d7ef964aa3d8044b5dcc789e3faa9972ff", - "text": "Volumes are no longer detached from healthy nodes after 6 minutes timeout. 6 minute force-detach timeout is used only for unhealthy nodes (`node.status.conditions[\"Ready\"]!= true`).", - "markdown": "Volumes are no longer detached from healthy nodes after 6 minutes timeout. 6 minute force-detach timeout is used only for unhealthy nodes (`node.status.conditions[\"Ready\"]!= true`). ([#110721](https://github.com/kubernetes/kubernetes/pull/110721), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110721", - "pr_number": 110721, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "110728": { - "commit": "c6b0652b89ad64e8d86d47fc2e4089e281732ede", - "text": "Kubelet: Silenced flag output on errors.", - "markdown": "Kubelet: Silenced flag output on errors. ([#110728](https://github.com/kubernetes/kubernetes/pull/110728), [@howardjohn](https://github.com/howardjohn))", - "author": "howardjohn", - "author_url": "https://github.com/howardjohn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110728", - "pr_number": 110728, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "110744": { - "commit": "8b0221708cc8844f563f2893d5ad07f767b4bde6", - "text": "kubeadm: make sure the etcd static pod startup probe uses /health?serializable=false while the liveness probe uses /health?serializable=true\u0026exclude=NOSPACE. The NOSPACE exclusion would allow administrators to address space issues one member at a time.", - "markdown": "Kubeadm: make sure the etcd static pod startup probe uses /health?serializable=false while the liveness probe uses /health?serializable=true\u0026exclude=NOSPACE. The NOSPACE exclusion would allow administrators to address space issues one member at a time. ([#110744](https://github.com/kubernetes/kubernetes/pull/110744), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110744", - "pr_number": 110744, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "110748": { - "commit": "d6547d26eb84f3ad077a9bbeaae8e709504676bb", - "text": "Removed branch `release-1.20` from prom bot due to EOL.", - "markdown": "Removed branch `release-1.20` from prom bot due to EOL. ([#110748](https://github.com/kubernetes/kubernetes/pull/110748), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110748", - "pr_number": 110748, - "areas": [ - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "release" - ] - }, - "110756": { - "commit": "42fec42586c4411f649bf766fe65059602ee6499", - "text": "NONE", - "markdown": "NONE ([#110756](https://github.com/kubernetes/kubernetes/pull/110756), [@lokichoggio](https://github.com/lokichoggio)) [SIG Network]", - "author": "lokichoggio", - "author_url": "https://github.com/lokichoggio", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110756", - "pr_number": 110756, - "kinds": [ - "documentation", - "cleanup" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "110762": { - "commit": "8af2c502019a954be652232955319030a75e2aba", - "text": "kube-proxy: The \"userspace\" proxy-mode is deprecated on Linux and Windows, despite being the default on Windows. As of v1.26, the default mode for Windows will change to 'kernelspace'.", - "markdown": "Kube-proxy: The \"userspace\" proxy-mode is deprecated on Linux and Windows, despite being the default on Windows. As of v1.26, the default mode for Windows will change to 'kernelspace'. ([#110762](https://github.com/kubernetes/kubernetes/pull/110762), [@pandaamanda](https://github.com/pandaamanda)) [SIG Network]", - "author": "pandaamanda", - "author_url": "https://github.com/pandaamanda", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110762", - "pr_number": 110762, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "110764": { - "commit": "411ecc3b6296d095050ed641c6880d78bbcedc39", - "text": "Improved `kubectl run` and `kubectl debug` error messages upon attaching failures.", - "markdown": "Improved `kubectl run` and `kubectl debug` error messages upon attaching failures. ([#110764](https://github.com/kubernetes/kubernetes/pull/110764), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110764", - "pr_number": 110764, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "110791": { - "commit": "fa16bf8e121e9a9ce0a8b92d96a39c986152c484", - "text": "kubeadm: a bug was fixed due to which configurable `KubernetesVersion` was not being respected during kubeadm join.", - "markdown": "Kubeadm: a bug was fixed due to which configurable `KubernetesVersion` was not being respected during kubeadm join. ([#110791](https://github.com/kubernetes/kubernetes/pull/110791), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110791", - "pr_number": 110791, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "110805": { - "commit": "2b657a0f3b3effdc5ec535830d61737d9a10b728", - "text": "Graduated SeccompDefault to `beta`. The Kubelet feature gate is now enabled by default and the configuration/CLI flag still defaults to `false`.", - "markdown": "Graduated SeccompDefault to `beta`. The Kubelet feature gate is now enabled by default and the configuration/CLI flag still defaults to `false`. ([#110805](https://github.com/kubernetes/kubernetes/pull/110805), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/2413", - "type": "KEP" - }, - { - "description": "Docs", - "url": "https://kubernetes.io/docs/tutorials/security/seccomp/#enable-the-use-of-runtimedefault-as-the-default-seccomp-profile-for-all-workloads", - "type": "official" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110805", - "pr_number": 110805, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "110813": { - "commit": "ff20035ef8d305e5bec3866670b515d0c5c6a1c0", - "text": "If the parent directory of the file specified in the `--audit-log-path` argument does not exist, Kubernetes now creates it.", - "markdown": "If the parent directory of the file specified in the `--audit-log-path` argument does not exist, Kubernetes now creates it. ([#110813](https://github.com/kubernetes/kubernetes/pull/110813), [@vpnachev](https://github.com/vpnachev)) [SIG Auth]", - "author": "vpnachev", - "author_url": "https://github.com/vpnachev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110813", - "pr_number": 110813, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "auth" - ] - }, - "110837": { - "commit": "dafa55be106730eaacb740e20b999b84848c6ac5", - "text": "kubeadm: support retry mechanism for removing container in reset phase", - "markdown": "Kubeadm: support retry mechanism for removing container in reset phase ([#110837](https://github.com/kubernetes/kubernetes/pull/110837), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110837", - "pr_number": 110837, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "110851": { - "commit": "8cecf183a659784b240d430e22b828b8e32c1c37", - "text": "Use checksums instead of fsyncs to ensure discovery cache integrity", - "markdown": "Use checksums instead of fsyncs to ensure discovery cache integrity ([#110851](https://github.com/kubernetes/kubernetes/pull/110851), [@negz](https://github.com/negz)) [SIG API Machinery]", - "author": "negz", - "author_url": "https://github.com/negz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110851", - "pr_number": 110851, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "110868": { - "commit": "bd2776e0c930ab149d8c0656e83f979fb017ce0a", - "text": "The `endPort` field in Network Policy is now promoted to GA\n\nNetwork Policy providers that support `endPort` field now can use it to specify a range of ports to apply a Network Policy.\n\nPreviously, each Network Policy could only target a single port.\n\nPlease be aware that `endPort` field MUST BE SUPPORTED by the Network Policy provider. In case your provider does not support `endPort` and this field is specified in a Network Policy, the Network Policy will be created covering only the port field (single port).", - "markdown": "The `endPort` field in Network Policy is now promoted to GA\n \n Network Policy providers that support `endPort` field now can use it to specify a range of ports to apply a Network Policy.\n \n Previously, each Network Policy could only target a single port.\n \n Please be aware that `endPort` field MUST BE SUPPORTED by the Network Policy provider. In case your provider does not support `endPort` and this field is specified in a Network Policy, the Network Policy will be created covering only the port field (single port). ([#110868](https://github.com/kubernetes/kubernetes/pull/110868), [@rikatz](https://github.com/rikatz))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2079-network-policy-port-range", - "type": "KEP" - } - ], - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110868", - "pr_number": 110868, - "areas": [ - "test", - "code-generation", - "network-policy" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "110880": { - "commit": "63822660f0f214c2512aa3613c17d3cd31500a26", - "text": "When metrics are counted, discard the wrong container StartTime metrics", - "markdown": "When metrics are counted, discard the wrong container StartTime metrics ([#110880](https://github.com/kubernetes/kubernetes/pull/110880), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Instrumentation and Node]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110880", - "pr_number": 110880, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "instrumentation" - ], - "duplicate": true - }, - "110896": { - "commit": "e5f4f8d71b4847711150789289edcd1d7a04fb45", - "text": "Promote StatefulSet minReadySeconds to GA. This means `--feature-gates=StatefulSetMinReadySeconds=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation", - "markdown": "Promote StatefulSet minReadySeconds to GA. This means `--feature-gates=StatefulSetMinReadySeconds=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation ([#110896](https://github.com/kubernetes/kubernetes/pull/110896), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG API Machinery, Apps and Testing]", - "documentation": [ - { - "description": "[KEP]: \u003clink\u003e", - "url": "https://github.com/kubernetes/enhancements/pull/3354", - "type": "KEP" - }, - { - "description": "[Usage]: Promote StatefulSet minReadySeconds to GA. This means `--feature-gates=StatefulSetMinReadySeconds=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at", - "url": "https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation", - "type": "official" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#minimum-ready-seconds", - "type": "official" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110896", - "pr_number": 110896, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "duplicate": true - }, - "110914": { - "commit": "bbd2f8fa09d4b759caf4ccd860bdbe7077a4ae73", - "text": "`pod.Spec.RuntimeClassName` field is now available in kubectl describe command.", - "markdown": "`pod.Spec.RuntimeClassName` field is now available in kubectl describe command. ([#110914](https://github.com/kubernetes/kubernetes/pull/110914), [@yeahdongcn](https://github.com/yeahdongcn))", - "author": "yeahdongcn", - "author_url": "https://github.com/yeahdongcn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110914", - "pr_number": 110914, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "110940": { - "commit": "dd54a044eae232208ce9f3f0a45bf8872ac9f2e6", - "text": "The kubelet no longer supports collecting accelerator metrics through cAdvisor. The feature gate `DisableAcceleratorUsageMetrics` is now GA and cannot be disabled.", - "markdown": "The kubelet no longer supports collecting accelerator metrics through cAdvisor. The feature gate `DisableAcceleratorUsageMetrics` is now GA and cannot be disabled. ([#110940](https://github.com/kubernetes/kubernetes/pull/110940), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110940", - "pr_number": 110940, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "110948": { - "commit": "6b6558a4639b556f2723dea8df62bcaa7f9846ed", - "text": "` JobTrackingWithFinalizers` enabled by default. This feature allows to keep track of the Job progress without relying on Pods staying in the apiserver.\n", - "markdown": "` JobTrackingWithFinalizers` enabled by default. This feature allows to keep track of the Job progress without relying on Pods staying in the apiserver.\n ([#110948](https://github.com/kubernetes/kubernetes/pull/110948), [@alculquicondor](https://github.com/alculquicondor))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://git.k8s.io/enhancements/keps/sig-apps/2307-job-tracking-without-lingering-pods", - "type": "external" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#job-tracking-with-finalizers", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110948", - "pr_number": 110948, - "areas": [ - "batch" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "110950": { - "commit": "ce583e0338a335aa4ae47ac89eefe159e75a1019", - "text": "Do not report terminated container metrics", - "markdown": "Do not report terminated container metrics ([#110950](https://github.com/kubernetes/kubernetes/pull/110950), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Node]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110950", - "pr_number": 110950, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "110957": { - "commit": "7d72ccf9a80e799a09dbcd5dab39dd00c9840aad", - "text": "Windows winkernel kube-proxy no longer supports Windows HNS v1 APIs.", - "markdown": "Windows winkernel kube-proxy no longer supports Windows HNS v1 APIs. ([#110957](https://github.com/kubernetes/kubernetes/pull/110957), [@papagalu](https://github.com/papagalu))", - "author": "papagalu", - "author_url": "https://github.com/papagalu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110957", - "pr_number": 110957, - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true, - "duplicate_kind": true - }, - "110959": { - "commit": "fa202f14837bf398db53780efbfa6579c84ab2e0", - "text": "Introduction of the `DisruptionTarget` pod condition type. Its `reason` field indicates the reason for pod termination:\n- PreemptionByKubeScheduler (Pod preempted by kube-scheduler)\n- DeletionByTaintManager (Pod deleted by taint manager due to NoExecute taint)\n- EvictionByEvictionAPI (Pod evicted by Eviction API)\n- DeletionByPodGC (an orphaned Pod deleted by PodGC)", - "markdown": "Introduction of the `DisruptionTarget` pod condition type. Its `reason` field indicates the reason for pod termination:\n - PreemptionByKubeScheduler (Pod preempted by kube-scheduler)\n - DeletionByTaintManager (Pod deleted by taint manager due to NoExecute taint)\n - EvictionByEvictionAPI (Pod evicted by Eviction API)\n - DeletionByPodGC (an orphaned Pod deleted by PodGC) ([#110959](https://github.com/kubernetes/kubernetes/pull/110959), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110959", - "pr_number": 110959, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "node", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "110974": { - "commit": "59842a5f0afa653a3137777b60a127b32b737056", - "text": "In the event that more than one IngressClass is designated \"default\", the DefaultIngressClass admission controller will choose one rather than fail.", - "markdown": "In the event that more than one IngressClass is designated \"default\", the DefaultIngressClass admission controller will choose one rather than fail. ([#110974](https://github.com/kubernetes/kubernetes/pull/110974), [@kidddddddddddddddddddddd](https://github.com/kidddddddddddddddddddddd)) [SIG Network]", - "author": "kidddddddddddddddddddddd", - "author_url": "https://github.com/kidddddddddddddddddddddd", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110974", - "pr_number": 110974, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "111009": { - "commit": "73b3be3082ab51c3f4b621e8009aa146e518a4b5", - "text": "UserName check for 'ContainerAdministrator' is now case-insensitive if runAsNonRoot is set to true on Windows.", - "markdown": "UserName check for 'ContainerAdministrator' is now case-insensitive if runAsNonRoot is set to true on Windows. ([#111009](https://github.com/kubernetes/kubernetes/pull/111009), [@marosset](https://github.com/marosset))", - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111009", - "pr_number": 111009, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows", - "testing" - ], - "duplicate": true - }, - "111017": { - "commit": "44e403f5bbc71eb5f577da6ac8a2e29875ac1d28", - "text": "kubeadm: respect user specified image repository when using Kubernetes ci version", - "markdown": "Kubeadm: respect user specified image repository when using Kubernetes ci version ([#111017](https://github.com/kubernetes/kubernetes/pull/111017), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111017", - "pr_number": 111017, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "111026": { - "commit": "eba254b4ee0525a365c44493490c79588b68e802", - "text": "A bug was fixed where a job sync was not retried in case of a transient ResourceQuota conflict.", - "markdown": "A bug was fixed where a job sync was not retried in case of a transient ResourceQuota conflict. ([#111026](https://github.com/kubernetes/kubernetes/pull/111026), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111026", - "pr_number": 111026, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "111033": { - "commit": "4995562a772e89ff54ccffe63d9f02c8be41a873", - "text": "Metric `running_managed_controllers` is enabled for Cloud Node Lifecycle controller.", - "markdown": "Metric `running_managed_controllers` is enabled for Cloud Node Lifecycle controller. ([#111033](https://github.com/kubernetes/kubernetes/pull/111033), [@jprzychodzen](https://github.com/jprzychodzen))", - "author": "jprzychodzen", - "author_url": "https://github.com/jprzychodzen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111033", - "pr_number": 111033, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "apps", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "111048": { - "commit": "b0d57695353c88c57f65d981ea7f0b2059002183", - "text": "bug fix in test/e2e/framework Framework.RecordFlakeIfError", - "markdown": "Bug fix in test/e2e/framework Framework.RecordFlakeIfError ([#111048](https://github.com/kubernetes/kubernetes/pull/111048), [@alingse](https://github.com/alingse)) [SIG Testing]", - "author": "alingse", - "author_url": "https://github.com/alingse", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111048", - "pr_number": 111048, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "testing" - ] - }, - "111060": { - "commit": "57e4c38ed6c2c93237e4ed7920cb76cd882c8a47", - "text": "For Linux, `kube-proxy` uses a new “distroless” container image, instead of an image based on Debian.", - "markdown": "For Linux, `kube-proxy` uses a new “distroless” container image, instead of an image based on Debian. ([#111060](https://github.com/kubernetes/kubernetes/pull/111060), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111060", - "pr_number": 111060, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "testing", - "release" - ], - "duplicate": true - }, - "111061": { - "commit": "cb41d5002ccde5f457989f157dd9e047e5bacdb6", - "text": "Made usage of key encipherment optional in API validation.", - "markdown": "Made usage of key encipherment optional in API validation. ([#111061](https://github.com/kubernetes/kubernetes/pull/111061), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111061", - "pr_number": 111061, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "auth", - "apps" - ], - "duplicate": true - }, - "111065": { - "commit": "5d7fdf1f12a2040f3f333b0e63250781a3094af1", - "text": "ginkgo.Measure has been deprecated in Ginkgo V2, switch to use gomega/gmeasure instead", - "markdown": "Ginkgo.Measure has been deprecated in Ginkgo V2, switch to use gomega/gmeasure instead ([#111065](https://github.com/kubernetes/kubernetes/pull/111065), [@chendave](https://github.com/chendave)) [SIG Autoscaling and Testing]", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111065", - "pr_number": 111065, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "autoscaling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "111090": { - "commit": "4b6134b6dc497f48916d4b1667d4c9a461aaa36a", - "text": "Added alpha support for user namespaces in pods phase 1 (KEP 127, feature gate: UserNamespacesStatelessPodsSupport)", - "markdown": "Added alpha support for user namespaces in pods phase 1 (KEP 127, feature gate: UserNamespacesStatelessPodsSupport) ([#111090](https://github.com/kubernetes/kubernetes/pull/111090), [@rata](https://github.com/rata))", - "documentation": [ - { - "description": "-[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/127-user-namespaces#design-details", - "type": "KEP" - } - ], - "author": "rata", - "author_url": "https://github.com/rata", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111090", - "pr_number": 111090, - "areas": [ - "test", - "kubelet", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "storage", - "node", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "111113": { - "commit": "eefcf6aa801c5db48b564d0464470d623b8bfb79", - "text": "Introduced support for handling pod failures with respect to the configured pod failure policy rules.", - "markdown": "Introduced support for handling pod failures with respect to the configured pod failure policy rules. ([#111113](https://github.com/kubernetes/kubernetes/pull/111113), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111113", - "pr_number": 111113, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "111119": { - "commit": "cdc60112a676010dbc0ba5650732386e2dedebd0", - "text": "Encrypted data with DEK using AES-GCM instead of AES-CBC for kms data encryption. No user action required. Reads with AES-GCM and AES-CBC will continue to be allowed.", - "markdown": "Encrypted data with DEK using AES-GCM instead of AES-CBC for kms data encryption. No user action required. Reads with AES-GCM and AES-CBC will continue to be allowed. ([#111119](https://github.com/kubernetes/kubernetes/pull/111119), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "url": "https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/", - "type": "official" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111119", - "pr_number": 111119, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "111126": { - "commit": "0a2ae7ab3a0083122be4ad0fc6aca9a702279e90", - "text": "Added KMS v2alpha1 support.", - "markdown": "Added KMS v2alpha1 support. ([#111126](https://github.com/kubernetes/kubernetes/pull/111126), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111126", - "pr_number": 111126, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "111141": { - "commit": "f2395bbd4af07ca23d0b33f6b70fe04f52c2c129", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#111141](https://github.com/kubernetes/kubernetes/pull/111141), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Instrumentation and Node]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111141", - "pr_number": 111141, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "instrumentation" - ], - "duplicate": true, - "do_not_publish": true - }, - "111186": { - "commit": "42786afae01328b9110a0e35c2cd7f31415373ca", - "text": "Fixed the GCE firewall update when the destination IPs are changing so that firewalls reflect the IP updates of the LBs.", - "markdown": "Fixed the GCE firewall update when the destination IPs are changing so that firewalls reflect the IP updates of the LBs. ([#111186](https://github.com/kubernetes/kubernetes/pull/111186), [@sugangli](https://github.com/sugangli))", - "author": "sugangli", - "author_url": "https://github.com/sugangli", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111186", - "pr_number": 111186, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "111192": { - "commit": "9a8b4ab2402655162d1b51dbb7f228c6fe690949", - "text": "Added Service Account field in the output of `kubectl describe pod` command.", - "markdown": "Added Service Account field in the output of `kubectl describe pod` command. ([#111192](https://github.com/kubernetes/kubernetes/pull/111192), [@aufarg](https://github.com/aufarg))", - "author": "aufarg", - "author_url": "https://github.com/aufarg", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111192", - "pr_number": 111192, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "111194": { - "commit": "7156c96e5d8f4fe58a36000ff53af7e21743f49b", - "text": "Promoted DaemonSet MaxSurge to GA. This means `--feature-gates=DaemonSetUpdateSurge=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation .", - "markdown": "Promoted DaemonSet MaxSurge to GA. This means `--feature-gates=DaemonSetUpdateSurge=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation . ([#111194](https://github.com/kubernetes/kubernetes/pull/111194), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1591", - "type": "KEP" - }, - { - "description": "[Usage]: Promote DaemonSet MaxSurge to GA. This means `--feature-gates=DaemonSetUpdateSurge=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at", - "url": "https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation", - "type": "official" - }, - { - "description": "[Other doc]", - "url": "https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/daemon-set-v1/#DaemonSetSpec", - "type": "official" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111194", - "pr_number": 111194, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "duplicate_kind": true - }, - "111206": { - "commit": "2ae27c89baa8caf2ce30d32c1dc79b89b4473a8b", - "text": "scheduler: included supported ScoringStrategyType list in error message for NodeResourcesFit plugin", - "markdown": "Scheduler: included supported ScoringStrategyType list in error message for NodeResourcesFit plugin ([#111206](https://github.com/kubernetes/kubernetes/pull/111206), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111206", - "pr_number": 111206, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true - }, - "111229": { - "commit": "4885f4d75020621e8d77c367fc073fe01a538ec4", - "text": "The Pod `spec.podOS` field is promoted to GA. The `IdentifyPodOS` feature gate unconditionally enabled, and will no longer be accepted as a `--feature-gates` parameter in 1.27.", - "markdown": "The Pod `spec.podOS` field is promoted to GA. The `IdentifyPodOS` feature gate unconditionally enabled, and will no longer be accepted as a `--feature-gates` parameter in 1.27. ([#111229](https://github.com/kubernetes/kubernetes/pull/111229), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-windows/2802-identify-windows-pods-apiserver-admission/README.md", - "type": "KEP" - }, - { - "description": "[Usage]: Promote PodOS field to GA. This means `--feature-gates=IdentifyPodOS=true` is not needed on kube-apiserver binary and they'll be removed soon following the policy at", - "url": "https://kubernetes.io/docs/reference/using-api/deprecation-policy", - "type": "official" - }, - { - "description": "[Other doc]", - "url": "https://kubernetes.io/docs/concepts/windows/user-guide/#taints-and-tolerations", - "type": "official" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111229", - "pr_number": 111229, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "windows" - ], - "duplicate": true - }, - "111254": { - "commit": "3ffdfbe286ebcea5d75617da6accaf67f815e0cf", - "text": "For v1.25, Kubernetes will be using golang 1.19, In this PR the version is updated to 1.19rc2 as GA is not yet available.", - "markdown": "For v1.25, Kubernetes will be using golang 1.19, In this PR the version is updated to 1.19rc2 as GA is not yet available. ([#111254](https://github.com/kubernetes/kubernetes/pull/111254), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111254", - "pr_number": 111254, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "release-eng", - "kubeadm", - "conformance", - "code-generation", - "ipvs", - "e2e-test-framework", - "network-policy" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "network", - "scheduling", - "storage", - "node", - "cluster-lifecycle", - "autoscaling", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "111255": { - "commit": "1fe71e7f1bf6ab8941c410699bedbee8e1baf9ee", - "text": "vSphere releases less than 7.0u2 are not supported for in-tree vSphere volume as of Kubernetes v1.25. Please consider upgrading vSphere (both ESXi and vCenter) to 7.0u2 or above.", - "markdown": "VSphere releases less than 7.0u2 are not supported for in-tree vSphere volume as of Kubernetes v1.25. Please consider upgrading vSphere (both ESXi and vCenter) to 7.0u2 or above. ([#111255](https://github.com/kubernetes/kubernetes/pull/111255), [@divyenpatel](https://github.com/divyenpatel))", - "author": "divyenpatel", - "author_url": "https://github.com/divyenpatel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111255", - "pr_number": 111255, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "documentation", - "cleanup", - "deprecation" - ], - "sigs": [ - "cloud-provider" - ], - "duplicate_kind": true, - "action_required": true - }, - "111258": { - "commit": "64ed9145452d2d1d324d2437566f1ea1ce76f226", - "text": "The `CSIInlineVolume` feature has moved from beta to GA.", - "markdown": "The `CSIInlineVolume` feature has moved from beta to GA. ([#111258](https://github.com/kubernetes/kubernetes/pull/111258), [@dobsonj](https://github.com/dobsonj))", - "author": "dobsonj", - "author_url": "https://github.com/dobsonj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111258", - "pr_number": 111258, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "api-machinery", - "auth", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "111278": { - "commit": "9fb1f67af784c0f6490a1ed35caf70c4368c9846", - "text": "Added a new `align-by-socket` policy option to cpu manager `static` policy. When enabled CPU's to be aligned at socket boundary rather than NUMA boundary.", - "markdown": "Added a new `align-by-socket` policy option to cpu manager `static` policy. When enabled CPU's to be aligned at socket boundary rather than NUMA boundary. ([#111278](https://github.com/kubernetes/kubernetes/pull/111278), [@arpitsardhana](https://github.com/arpitsardhana))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3327-align-by-socket", - "type": "KEP" - } - ], - "author": "arpitsardhana", - "author_url": "https://github.com/arpitsardhana", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111278", - "pr_number": 111278, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "111301": { - "commit": "369a465fae0fb08f6064f59e746beb8d40d9bc16", - "text": "`CSIMigrationGCE` upgraded to GA and locked to true.\n", - "markdown": "`CSIMigrationGCE` upgraded to GA and locked to true.\n ([#111301](https://github.com/kubernetes/kubernetes/pull/111301), [@mattcary](https://github.com/mattcary))", - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111301", - "pr_number": 111301, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "apps" - ], - "feature": true, - "duplicate": true - }, - "111319": { - "commit": "1df7b3bed37ce8ee949df3906a4745db910110a8", - "text": "The `kubectl diff` changed to ignore managed fields by default, and a new --show-managed-fields flag has been added to allow you to include managed fields in the diff.", - "markdown": "The `kubectl diff` changed to ignore managed fields by default, and a new --show-managed-fields flag has been added to allow you to include managed fields in the diff. ([#111319](https://github.com/kubernetes/kubernetes/pull/111319), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111319", - "pr_number": 111319, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "111358": { - "commit": "2e1a4da8df800f3477638c38b24490a61398721f", - "text": "Introduced PodHasNetwork condition for pods.", - "markdown": "Introduced PodHasNetwork condition for pods. ([#111358](https://github.com/kubernetes/kubernetes/pull/111358), [@ddebroy](https://github.com/ddebroy))", - "author": "ddebroy", - "author_url": "https://github.com/ddebroy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111358", - "pr_number": 111358, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "111383": { - "commit": "bc974c8ab99fa53dc1dd0894f400efd76e5f8042", - "text": "kubeadm: enabled the --experimental-watch-progress-notify-interval flag for etcd and set it to 5s. The flag specifies an interval at which etcd sends watch data to the kube-apiserver.", - "markdown": "Kubeadm: enabled the --experimental-watch-progress-notify-interval flag for etcd and set it to 5s. The flag specifies an interval at which etcd sends watch data to the kube-apiserver. ([#111383](https://github.com/kubernetes/kubernetes/pull/111383), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111383", - "pr_number": 111383, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "111399": { - "commit": "610b7839a0bc2f9bafaca92930f8dd740f0ab46c", - "text": "The new flag `etcd-ready-timeout` has been added. It configures a timeout of an additional etcd check performed as part of readyz check.", - "markdown": "The new flag `etcd-ready-timeout` has been added. It configures a timeout of an additional etcd check performed as part of readyz check. ([#111399](https://github.com/kubernetes/kubernetes/pull/111399), [@Argh4k](https://github.com/Argh4k))", - "author": "Argh4k", - "author_url": "https://github.com/Argh4k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111399", - "pr_number": 111399, - "areas": [ - "apiserver", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "111402": { - "commit": "cf2800b812807a14b11087a87f0656c4f4d132a3", - "text": "[Ephemeral Containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) are now generally available (GA). The `EphemeralContainers` feature gate is always enabled and should be removed from `--feature-gates` flag on the kube-apiserver and the kubelet command lines. The `EphemeralContainers` feature gate is [deprecated and scheduled for removal](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation) in a future release.", - "markdown": "[Ephemeral Containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) are now generally available (GA). The `EphemeralContainers` feature gate is always enabled and should be removed from `--feature-gates` flag on the kube-apiserver and the kubelet command lines. The `EphemeralContainers` feature gate is [deprecated and scheduled for removal](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation) in a future release. ([#111402](https://github.com/kubernetes/kubernetes/pull/111402), [@verb](https://github.com/verb))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://features.k8s.io/277", - "type": "external" - } - ], - "author": "verb", - "author_url": "https://github.com/verb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111402", - "pr_number": 111402, - "areas": [ - "test", - "kubelet", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "111406": { - "commit": "12b22ede41617726f57ebbde09ef1979de45aafe", - "text": "Updated max azure data disk count map with new VM types.", - "markdown": "Updated max azure data disk count map with new VM types. ([#111406](https://github.com/kubernetes/kubernetes/pull/111406), [@bennerv](https://github.com/bennerv))", - "author": "bennerv", - "author_url": "https://github.com/bennerv", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111406", - "pr_number": 111406, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "cloud-provider" - ], - "duplicate": true - }, - "111411": { - "commit": "d46742b38760a1697aec56b84a3755ac7d505315", - "text": "The command line flag `enable-taint-manager` for kube-controller-manager is deprecated and will be removed in 1.26. The feature that it supports, taint based eviction, is enabled by default and will continue to be implicitly enabled when the flag is removed.", - "markdown": "The command line flag `enable-taint-manager` for kube-controller-manager is deprecated and will be removed in 1.26. The feature that it supports, taint based eviction, is enabled by default and will continue to be implicitly enabled when the flag is removed. ([#111411](https://github.com/kubernetes/kubernetes/pull/111411), [@alculquicondor](https://github.com/alculquicondor))", - "documentation": [ - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/#taint-based-evictions", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111411", - "pr_number": 111411, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "111418": { - "commit": "d838a8647b0ada3f52fc33a53b9319d46d9c3ef1", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#111418](https://github.com/kubernetes/kubernetes/pull/111418), [@muyangren2](https://github.com/muyangren2)) [SIG Node]", - "author": "muyangren2", - "author_url": "https://github.com/muyangren2", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111418", - "pr_number": 111418, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "111419": { - "commit": "a4a22a25622bf426308995d99d4f708396bbde6c", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#111419](https://github.com/kubernetes/kubernetes/pull/111419), [@muyangren2](https://github.com/muyangren2)) [SIG Architecture and Instrumentation]", - "author": "muyangren2", - "author_url": "https://github.com/muyangren2", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111419", - "pr_number": 111419, - "kinds": [ - "cleanup" - ], - "sigs": [ - "instrumentation", - "architecture" - ], - "duplicate": true, - "do_not_publish": true - }, - "111435": { - "commit": "6fbeacdf73a1fcf52bc33c2422ce847eb4220bcf", - "text": "Promoted CronJob's TimeZone support to beta.", - "markdown": "Promoted CronJob's TimeZone support to beta. ([#111435](https://github.com/kubernetes/kubernetes/pull/111435), [@soltysh](https://github.com/soltysh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3140", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111435", - "pr_number": 111435, - "areas": [ - "test", - "batch", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "111439": { - "commit": "25cdaccf0d407c8c8d3e5d3440be6e7ecbaa32b6", - "text": "Windows kubelet plugin Watcher now working as intended.", - "markdown": "Windows kubelet plugin Watcher now working as intended. ([#111439](https://github.com/kubernetes/kubernetes/pull/111439), [@claudiubelu](https://github.com/claudiubelu))", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111439", - "pr_number": 111439, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows", - "testing" - ], - "duplicate": true - }, - "111441": { - "commit": "3902a534197b3e4b7ca7a026f5027cfe0a3cc3aa", - "text": "The PodTopologySpread is respected after rolling upgrades.", - "markdown": "The PodTopologySpread is respected after rolling upgrades. ([#111441](https://github.com/kubernetes/kubernetes/pull/111441), [@denkensk](https://github.com/denkensk))", - "author": "denkensk", - "author_url": "https://github.com/denkensk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111441", - "pr_number": 111441, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "111462": { - "commit": "1de16be28f90e4e91c9daa4669511bdcce017433", - "text": "Metric `running_managed_controllers` is enabled for Route,Service and Cloud Node controllers in KCM and CCM.", - "markdown": "Metric `running_managed_controllers` is enabled for Route,Service and Cloud Node controllers in KCM and CCM. ([#111462](https://github.com/kubernetes/kubernetes/pull/111462), [@jprzychodzen](https://github.com/jprzychodzen))", - "author": "jprzychodzen", - "author_url": "https://github.com/jprzychodzen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111462", - "pr_number": 111462, - "areas": [ - "test", - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "111466": { - "commit": "4b5ee802e847a3ea8243946aeae588906bd6f79f", - "text": "Metric `running_managed_controllers` is enabled for Node IPAM controller in KCM.", - "markdown": "Metric `running_managed_controllers` is enabled for Node IPAM controller in KCM. ([#111466](https://github.com/kubernetes/kubernetes/pull/111466), [@jprzychodzen](https://github.com/jprzychodzen))", - "author": "jprzychodzen", - "author_url": "https://github.com/jprzychodzen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111466", - "pr_number": 111466, - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "apps", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "111467": { - "commit": "90f9a52db6de21cafebb91a7f47b7386f37289e0", - "text": "PersistentVolumeClaim objects are no longer left with storage class set to `nil` forever, but will be updated retroactively once any StorageClass is set or created as default.", - "markdown": "PersistentVolumeClaim objects are no longer left with storage class set to `nil` forever, but will be updated retroactively once any StorageClass is set or created as default. ([#111467](https://github.com/kubernetes/kubernetes/pull/111467), [@RomanBednar](https://github.com/RomanBednar))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3337/commits/c6d69a727ebf56681a7d615c4f6234e4de86a5ec#diff-54da445e206aec7fe7962396edc49ec525ba1d3034aa800fd3a4e93d28a739e7", - "type": "KEP" - } - ], - "author": "RomanBednar", - "author_url": "https://github.com/RomanBednar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111467", - "pr_number": 111467, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "111472": { - "commit": "bdd2e476959070b1698ba91c2f6e0cf3688338fd", - "text": "The namespace editors and admins can now create leases.coordination.k8s.io and should use this type for leaderelection instead of configmaps.", - "markdown": "The namespace editors and admins can now create leases.coordination.k8s.io and should use this type for leaderelection instead of configmaps. ([#111472](https://github.com/kubernetes/kubernetes/pull/111472), [@deads2k](https://github.com/deads2k))", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111472", - "pr_number": 111472, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true - }, - "111475": { - "commit": "bc4c4930ff18dce320bd33f645ff4f3accc72018", - "text": "If a Pod has a DisruptionTarget condition with status=True for more than 2 minutes without getting a DeletionTimestamp, the control plane resets it to status=False.", - "markdown": "If a Pod has a DisruptionTarget condition with status=True for more than 2 minutes without getting a DeletionTimestamp, the control plane resets it to status=False. ([#111475](https://github.com/kubernetes/kubernetes/pull/111475), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111475", - "pr_number": 111475, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "111479": { - "commit": "1e18ff5b37674bc5abfc6438be563f275390a486", - "text": "`CSIMigrationAWS` upgraded to GA and locked to true.\n", - "markdown": "`CSIMigrationAWS` upgraded to GA and locked to true.\n ([#111479](https://github.com/kubernetes/kubernetes/pull/111479), [@wongma7](https://github.com/wongma7))", - "author": "wongma7", - "author_url": "https://github.com/wongma7", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111479", - "pr_number": 111479, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "apps" - ], - "feature": true, - "duplicate": true - }, - "111481": { - "commit": "9e6d456f05628560d108a610aa3b568daf0e957b", - "text": "Added e2e test flag to specify which volume drivers should be installed. This deprecated the ENABLE_STORAGE_GCE_PD_DRIVER environment variable.", - "markdown": "Added e2e test flag to specify which volume drivers should be installed. This deprecated the ENABLE_STORAGE_GCE_PD_DRIVER environment variable. ([#111481](https://github.com/kubernetes/kubernetes/pull/111481), [@mattcary](https://github.com/mattcary))", - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111481", - "pr_number": 111481, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true - }, - "111485": { - "commit": "3dc51872f070dc7fe2276d15263adec24931ea1f", - "text": "GlusterFS provisioner (`kubernetes.io/glusterfs`) has been deprecated in this release.", - "markdown": "GlusterFS provisioner (`kubernetes.io/glusterfs`) has been deprecated in this release. ([#111485](https://github.com/kubernetes/kubernetes/pull/111485), [@humblec](https://github.com/humblec))", - "author": "humblec", - "author_url": "https://github.com/humblec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111485", - "pr_number": 111485, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "111486": { - "commit": "bddb4ec08ee76c98a04cc857d346fd80d44abd8f", - "text": "NONE", - "markdown": "NONE ([#111486](https://github.com/kubernetes/kubernetes/pull/111486), [@peizhouyu](https://github.com/peizhouyu)) [SIG CLI]", - "author": "peizhouyu", - "author_url": "https://github.com/peizhouyu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111486", - "pr_number": 111486, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "do_not_publish": true - }, - "111492": { - "commit": "ebad8c70c251c877125bdf0f351e650cca5c457a", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#111492](https://github.com/kubernetes/kubernetes/pull/111492), [@muyangren2](https://github.com/muyangren2)) [SIG Cluster Lifecycle]", - "author": "muyangren2", - "author_url": "https://github.com/muyangren2", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111492", - "pr_number": 111492, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "111502": { - "commit": "3a650c5c56228d0cb9089fc5563bc2e3ff6a5af3", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#111502](https://github.com/kubernetes/kubernetes/pull/111502), [@muyangren2](https://github.com/muyangren2)) [SIG Cluster Lifecycle]", - "author": "muyangren2", - "author_url": "https://github.com/muyangren2", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111502", - "pr_number": 111502, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "111513": { - "commit": "442574f3a7321ff0f34dec9bae67f28651dbabd2", - "text": "Local Storage Capacity Isolation feature is GA in 1.25 release. For systems (rootless) that cannot check root file system, please use kubelet config --local-storage-capacity-isolation=false to disable this feature. Once disabled, pod cannot set local ephemeral storage request/limit, and emptyDir sizeLimit niether.", - "markdown": "Local Storage Capacity Isolation feature is GA in 1.25 release. For systems (rootless) that cannot check root file system, please use kubelet config --local-storage-capacity-isolation=false to disable this feature. Once disabled, pod cannot set local ephemeral storage request/limit, and emptyDir sizeLimit niether. ([#111513](https://github.com/kubernetes/kubernetes/pull/111513), [@jingxu97](https://github.com/jingxu97))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3422", - "type": "KEP" - } - ], - "author": "jingxu97", - "author_url": "https://github.com/jingxu97", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111513", - "pr_number": 111513, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "scalability", - "scheduling", - "node", - "api-machinery" - ], - "duplicate": true - }, - "111524": { - "commit": "762f39e2db0e55c4613e1f7945b3cb093df558e6", - "text": "Graduated `CustomResourceValidationExpressions` to `beta`. The `CustomResourceValidationExpressions` feature gate is now enabled by default.", - "markdown": "Graduated `CustomResourceValidationExpressions` to `beta`. The `CustomResourceValidationExpressions` feature gate is now enabled by default. ([#111524](https://github.com/kubernetes/kubernetes/pull/111524), [@cici37](https://github.com/cici37))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/2876-crd-validation-expression-language/README.md", - "type": "KEP" - } - ], - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111524", - "pr_number": 111524, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "111547": { - "commit": "96439a0c3c2af50e3a1eef9b84197601bcfff946", - "text": "The kube-scheduler ComponentConfig v1beta2 is deprecated in v1.25.", - "markdown": "The kube-scheduler ComponentConfig v1beta2 is deprecated in v1.25. ([#111547](https://github.com/kubernetes/kubernetes/pull/111547), [@kerthcet](https://github.com/kerthcet))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/785", - "type": "KEP" - } - ], - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111547", - "pr_number": 111547, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "111557": { - "commit": "22eab136f6c85f83e56ff71ec6346ffd7cc5e977", - "text": "Fixed performance issue when creating large objects using SSA with fully unspecified schemas ( preserveUnknownFields ).", - "markdown": "Fixed performance issue when creating large objects using SSA with fully unspecified schemas ( preserveUnknownFields ). ([#111557](https://github.com/kubernetes/kubernetes/pull/111557), [@alexzielenski](https://github.com/alexzielenski))", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111557", - "pr_number": 111557, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "111596": { - "commit": "e539bb5a50061afd0166afd5c4fa52466222640b", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#111596](https://github.com/kubernetes/kubernetes/pull/111596), [@muyangren2](https://github.com/muyangren2)) [SIG Cluster Lifecycle]", - "author": "muyangren2", - "author_url": "https://github.com/muyangren2", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111596", - "pr_number": 111596, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "111606": { - "commit": "83c3c37a879c6d14cce2465161f88d3c6881de8b", - "text": "Upgraded functionality of `kubectl kustomize` as described at\nhttps://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.5.7.", - "markdown": "Upgraded functionality of `kubectl kustomize` as described at\n https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.5.7. ([#111606](https://github.com/kubernetes/kubernetes/pull/111606), [@natasha41575](https://github.com/natasha41575))", - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111606", - "pr_number": 111606, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "111618": { - "commit": "70dcb0f1297e0a7b183720cfacece73c57ee1afc", - "text": "The intree volume plugin flocker support was completely removed from Kubernetes.", - "markdown": "The intree volume plugin flocker support was completely removed from Kubernetes. ([#111618](https://github.com/kubernetes/kubernetes/pull/111618), [@Jiawei0227](https://github.com/Jiawei0227))", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111618", - "pr_number": 111618, - "areas": [ - "kubelet", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scalability", - "storage", - "node", - "api-machinery" - ], - "duplicate": true, - "action_required": true - }, - "111619": { - "commit": "0d46dc1f467f67cba79708311193a719c2124d22", - "text": "The intree volume plugin quobyte support has been completely removed from Kubernetes.", - "markdown": "The intree volume plugin quobyte support has been completely removed from Kubernetes. ([#111619](https://github.com/kubernetes/kubernetes/pull/111619), [@Jiawei0227](https://github.com/Jiawei0227))", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111619", - "pr_number": 111619, - "areas": [ - "kubelet", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scalability", - "storage", - "node", - "api-machinery" - ], - "duplicate": true, - "action_required": true - }, - "111620": { - "commit": "d4795e4beced59cf4f698de487b738df18e22adf", - "text": "The intree volume plugin storageos support has been completely removed from Kubernetes.", - "markdown": "The intree volume plugin storageos support has been completely removed from Kubernetes. ([#111620](https://github.com/kubernetes/kubernetes/pull/111620), [@Jiawei0227](https://github.com/Jiawei0227))", - "author": "Jiawei0227", - "author_url": "https://github.com/Jiawei0227", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111620", - "pr_number": 111620, - "areas": [ - "kubelet", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scalability", - "storage", - "node", - "api-machinery" - ], - "duplicate": true, - "action_required": true - }, - "111623": { - "commit": "7bcd739851440699743d5c3928507364c2aadba8", - "text": "\"NONE", - "markdown": "\"NONE ([#111623](https://github.com/kubernetes/kubernetes/pull/111623), [@muyangren2](https://github.com/muyangren2)) [SIG Cluster Lifecycle]", - "author": "muyangren2", - "author_url": "https://github.com/muyangren2", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111623", - "pr_number": 111623, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "111633": { - "commit": "448e48b8a6b4608688a71f6fe35914ed94df3031", - "text": "ginkgo: when e2e tests are invoked through ginkgo-e2e.sh, the default now is to use color escape sequences only when connected to a terminal. `GINKGO_NO_COLOR=y/n` can be used to override that default.", - "markdown": "Ginkgo: when e2e tests are invoked through ginkgo-e2e.sh, the default now is to use color escape sequences only when connected to a terminal. `GINKGO_NO_COLOR=y/n` can be used to override that default. ([#111633](https://github.com/kubernetes/kubernetes/pull/111633), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111633", - "pr_number": 111633, - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - }, - "111645": { - "commit": "aea9f9887d08922378b9e7da0e81a46e733f2995", - "text": "Extended ContainerStatus CRI API to allow runtime response with container resource requests and limits that are in effect.\n- UpdateContainerResources CRI API now supports both Linux and Windows.", - "markdown": "Extended ContainerStatus CRI API to allow runtime response with container resource requests and limits that are in effect.\n - UpdateContainerResources CRI API now supports both Linux and Windows. ([#111645](https://github.com/kubernetes/kubernetes/pull/111645), [@vinaykul](https://github.com/vinaykul))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "vinaykul", - "author_url": "https://github.com/vinaykul", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111645", - "pr_number": 111645, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true - }, - "111646": { - "commit": "182e0989ecd3b4307e29815c8dd9527aea10f15e", - "text": "Fixed JobTrackingWithFinalizers when a pod succeeds after the job is considered failed, which led to API conflicts that blocked finishing the job.", - "markdown": "Fixed JobTrackingWithFinalizers when a pod succeeds after the job is considered failed, which led to API conflicts that blocked finishing the job. ([#111646](https://github.com/kubernetes/kubernetes/pull/111646), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111646", - "pr_number": 111646, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "111647": { - "commit": "d6a3a68afce1525dc31a2a8e73a2bc5903120eb9", - "text": "Updated cAdvisor to v0.45.0.", - "markdown": "Updated cAdvisor to v0.45.0. ([#111647](https://github.com/kubernetes/kubernetes/pull/111647), [@bobbypage](https://github.com/bobbypage))", - "author": "bobbypage", - "author_url": "https://github.com/bobbypage", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111647", - "pr_number": 111647, - "areas": [ - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "111679": { - "commit": "305ad47627d7cc67d90389f5f8c27c37ebe4bf3a", - "text": "Kubernetes is now built with go 1.19.0.", - "markdown": "Kubernetes is now built with go 1.19.0. ([#111679](https://github.com/kubernetes/kubernetes/pull/111679), [@puerco](https://github.com/puerco))", - "author": "puerco", - "author_url": "https://github.com/puerco", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111679", - "pr_number": 111679, - "areas": [ - "test", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "111691": { - "commit": "d0c92aedbab1bd448a5271496689ae2a3f11debd", - "text": "Removed the recently re-introduced schedulability predicate ([#109706](https://github.com/kubernetes/kubernetes/pull/109706)) as to not have unschedulable nodes removed from load balancers back-end pools.", - "markdown": "Removed the recently re-introduced schedulability predicate ([#109706](https://github.com/kubernetes/kubernetes/pull/109706)) as to not have unschedulable nodes removed from load balancers back-end pools. ([#111691](https://github.com/kubernetes/kubernetes/pull/111691), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111691", - "pr_number": 111691, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "111721": { - "commit": "137439194d8e27f34081218a7e8cfb1e31e74a69", - "text": "Fixed memory leak in the job controller related to `JobTrackingWithFinalizers`.", - "markdown": "Fixed memory leak in the job controller related to `JobTrackingWithFinalizers`. ([#111721](https://github.com/kubernetes/kubernetes/pull/111721), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111721", - "pr_number": 111721, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "99685": { - "commit": "ea7c57b2ee5be6a853421ebbca409b2b0fd3b1ee", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#99685](https://github.com/kubernetes/kubernetes/pull/99685), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG CLI, Node, Storage and Testing]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/99685", - "pr_number": 99685, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "node", - "cli", - "testing" - ], - "duplicate": true, - "do_not_publish": true - } +{ + "101882": { + "commit": "9a160ac5fbbda72b4f0ae5fd6e48e8c73810fcba", + "text": "Kubelet: wait for node allocatable ephemeral-storage data.", + "markdown": "Kubelet: wait for node allocatable ephemeral-storage data. ([#101882](https://github.com/kubernetes/kubernetes/pull/101882), [@jackfrancis](https://github.com/jackfrancis))", + "author": "jackfrancis", + "author_url": "https://github.com/jackfrancis", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/101882", + "pr_number": 101882, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true + }, + "103523": { + "commit": "ec849f4d51e05120b9ce2637a52c1d19eeb7a7b4", + "text": "`CSIMigrationvSphere` feature is now enabled by default.\n", + "markdown": "`CSIMigrationvSphere` feature is now enabled by default.\n ([#103523](https://github.com/kubernetes/kubernetes/pull/103523), [@divyenpatel](https://github.com/divyenpatel))", + "author": "divyenpatel", + "author_url": "https://github.com/divyenpatel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103523", + "pr_number": 103523, + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "104484": { + "commit": "126c07604d2ab96ff0cfe3d671bd63d578d4e63d", + "text": "Added container probe duration metrics.", + "markdown": "Added container probe duration metrics. ([#104484](https://github.com/kubernetes/kubernetes/pull/104484), [@jackfrancis](https://github.com/jackfrancis))", + "author": "jackfrancis", + "author_url": "https://github.com/jackfrancis", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104484", + "pr_number": 104484, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "104907": { + "commit": "a655368390b1294a1901d0504fd8c3e2f10ee34d", + "text": "Added a new feature gate `CheckpointRestore` to enable support to checkpoint containers. If enabled it is possible to checkpoint a container using the newly kubelet API (/checkpoint/{podNamespace}/{podName}/{containerName}).", + "markdown": "Added a new feature gate `CheckpointRestore` to enable support to checkpoint containers. If enabled it is possible to checkpoint a container using the newly kubelet API (/checkpoint/{podNamespace}/{podName}/{containerName}). ([#104907](https://github.com/kubernetes/kubernetes/pull/104907), [@adrianreber](https://github.com/adrianreber)) [SIG Node and Testing]", + "author": "adrianreber", + "author_url": "https://github.com/adrianreber", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/104907", + "pr_number": 104907, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "105100": { + "commit": "0401cc2762b65de5b1bd2e61ed77a1a4a359b80b", + "text": "Added sum feature to `kubectl top pod`", + "markdown": "Added sum feature to `kubectl top pod` ([#105100](https://github.com/kubernetes/kubernetes/pull/105100), [@lauchokyip](https://github.com/lauchokyip))", + "author": "lauchokyip", + "author_url": "https://github.com/lauchokyip", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105100", + "pr_number": 105100, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "105126": { + "commit": "d40bc18461f0f1ab2275128cb49c12c11ef8a7dc", + "text": "No", + "markdown": "No ([#105126](https://github.com/kubernetes/kubernetes/pull/105126), [@sallyom](https://github.com/sallyom)) [SIG API Machinery, Apps, Architecture, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Release, Scheduling, Storage and Testing]", + "author": "sallyom", + "author_url": "https://github.com/sallyom", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105126", + "pr_number": 105126, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "release-eng", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "apps", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "105797": { + "commit": "26348b767d63c237e3469eee89edbfdf1f04cefe", + "text": "The Go API for logging configuration in `k8s.io/component-base` was moved to `k8s.io/component-base/logs/api/v1`. The configuration file format and command line flags are the same as before.", + "markdown": "The Go API for logging configuration in `k8s.io/component-base` was moved to `k8s.io/component-base/logs/api/v1`. The configuration file format and command line flags are the same as before. ([#105797](https://github.com/kubernetes/kubernetes/pull/105797), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105797", + "pr_number": 105797, + "areas": [ + "test", + "kubelet", + "apiserver", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "cluster-lifecycle", + "instrumentation", + "testing", + "architecture" + ], + "duplicate": true, + "duplicate_kind": true + }, + "105919": { + "commit": "ec905a46119ca56f69d488ad246b60c38ea1b80a", + "text": "As of v1.25, the PodSecurity `restricted` level no longer requires pods that set .spec.os.name=\"windows\" to also set Linux-specific securityContext fields. If a 1.25+ cluster has unsupported [out-of-skew](https://kubernetes.io/releases/version-skew-policy/#kubelet) nodes prior to v1.23 and wants to ensure namespaces enforcing the `restricted` policy continue to require Linux-specific securityContext fields on all pods, ensure a version of the `restricted` prior to v1.25 is selected by labeling the namespace (for example, `pod-security.kubernetes.io/enforce-version: v1.24`)", + "markdown": "As of v1.25, the PodSecurity `restricted` level no longer requires pods that set .spec.os.name=\"windows\" to also set Linux-specific securityContext fields. If a 1.25+ cluster has unsupported [out-of-skew](https://kubernetes.io/releases/version-skew-policy/#kubelet) nodes prior to v1.23 and wants to ensure namespaces enforcing the `restricted` policy continue to require Linux-specific securityContext fields on all pods, ensure a version of the `restricted` prior to v1.25 is selected by labeling the namespace (for example, `pod-security.kubernetes.io/enforce-version: v1.24`) ([#105919](https://github.com/kubernetes/kubernetes/pull/105919), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3303", + "type": "KEP" + }, + { + "description": "[Other doc]", + "url": "https://kubernetes.io/docs/concepts/security/pod-security-standards/", + "type": "official" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105919", + "pr_number": 105919, + "areas": [ + "test" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "windows", + "testing" + ], + "duplicate": true + }, + "105936": { + "commit": "10eb7092f854c71122c03752465e868bce23c0b6", + "text": "Do not raise an error when setting a label with the same value, ignore it.", + "markdown": "Do not raise an error when setting a label with the same value, ignore it. ([#105936](https://github.com/kubernetes/kubernetes/pull/105936), [@zigarn](https://github.com/zigarn))", + "author": "zigarn", + "author_url": "https://github.com/zigarn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105936", + "pr_number": 105936, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "105963": { + "commit": "1aec0c81b1b283827480f9c40c5a7107b9986aa8", + "text": "This release added support for `NodeExpandSecret` for CSI driver client which enables the CSI drivers to make use of this secret while performing node expansion operation based on the user request. Previously there was no secret provided as part of the `nodeexpansion` call, thus CSI drivers did not make use of the same while expanding the volume at the node side.", + "markdown": "This release added support for `NodeExpandSecret` for CSI driver client which enables the CSI drivers to make use of this secret while performing node expansion operation based on the user request. Previously there was no secret provided as part of the `nodeexpansion` call, thus CSI drivers did not make use of the same while expanding the volume at the node side. ([#105963](https://github.com/kubernetes/kubernetes/pull/105963), [@zhucan](https://github.com/zhucan))", + "author": "zhucan", + "author_url": "https://github.com/zhucan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105963", + "pr_number": 105963, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "106834": { + "commit": "b3057e7ccc186819058c229b8066edaf75fd9bec", + "text": "Pod SecurityContext and PodSecurityPolicy supports slash as sysctl separator.", + "markdown": "Pod SecurityContext and PodSecurityPolicy supports slash as sysctl separator. ([#106834](https://github.com/kubernetes/kubernetes/pull/106834), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Apps, Architecture, Auth, Node, Security and Testing]", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/106834", + "pr_number": 106834, + "areas": [ + "test", + "kubelet", + "conformance" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "auth", + "apps", + "testing", + "architecture", + "security" + ], + "feature": true, + "duplicate": true + }, + "107329": { + "commit": "95ed6820ea21a9240d8e4632a15121c4fe39cadf", + "text": "Promoted LocalStorageCapacityIsolationFSQuotaMonitoring to beta.", + "markdown": "Promoted LocalStorageCapacityIsolationFSQuotaMonitoring to beta. ([#107329](https://github.com/kubernetes/kubernetes/pull/107329), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107329", + "pr_number": 107329, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "107490": { + "commit": "cc69f8f65def3874e46941c3df0393db0e29b058", + "text": "kubelet: added log for volume metric collection taking too long", + "markdown": "Kubelet: added log for volume metric collection taking too long ([#107490](https://github.com/kubernetes/kubernetes/pull/107490), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107490", + "pr_number": 107490, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true + }, + "107787": { + "commit": "8aaea8e24c1b87dbd606801f3c3f1e51ee4da44e", + "text": "Fixed bug where CSI migration doesn't count inline volumes for attach limit.", + "markdown": "Fixed bug where CSI migration doesn't count inline volumes for attach limit. ([#107787](https://github.com/kubernetes/kubernetes/pull/107787), [@Jiawei0227](https://github.com/Jiawei0227))", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107787", + "pr_number": 107787, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "storage" + ], + "duplicate": true + }, + "108115": { + "commit": "3688442c75d9a936b20ea4c894d2317b99f6778d", + "text": "Fix a bug where CRI implementations that use cAdvisor stats provider (CRI-O) don't evict pods when their logs exceed ephemeral storage limit.", + "markdown": "Fix a bug where CRI implementations that use cAdvisor stats provider (CRI-O) don't evict pods when their logs exceed ephemeral storage limit. ([#108115](https://github.com/kubernetes/kubernetes/pull/108115), [@haircommander](https://github.com/haircommander)) [SIG Node]", + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108115", + "pr_number": 108115, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "108414": { + "commit": "999b1bbe92947fca9e1fab67349ad11d3c46d328", + "text": "kube-apiserver: Get, GetList and Watch requests that should be served by the apiserver cacher during shutdown will be rejected to avoid a deadlock situation leaving requests hanging.", + "markdown": "Kube-apiserver: Get, GetList and Watch requests that should be served by the apiserver cacher during shutdown will be rejected to avoid a deadlock situation leaving requests hanging. ([#108414](https://github.com/kubernetes/kubernetes/pull/108414), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108414", + "pr_number": 108414, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "108447": { + "commit": "9169f168417d83ebbb753e7965d665081e27fb01", + "text": "Kubeadm: support experimental JSON/YAML output for `kubeadm upgrade plan` with the `--output` flag.", + "markdown": "Kubeadm: support experimental JSON/YAML output for `kubeadm upgrade plan` with the `--output` flag. ([#108447](https://github.com/kubernetes/kubernetes/pull/108447), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108447", + "pr_number": 108447, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "108476": { + "commit": "2d1f12942fb4d7de153f9f8f7fb0960f16e77e1e", + "text": "The kube-controller-manager's deprecated `--experimental-cluster-signing-duration` flag is now removed. Adapt your machinery to use the `--cluster-signing-duration` flag that is available since v1.19.", + "markdown": "The kube-controller-manager's deprecated `--experimental-cluster-signing-duration` flag is now removed. Adapt your machinery to use the `--cluster-signing-duration` flag that is available since v1.19. ([#108476](https://github.com/kubernetes/kubernetes/pull/108476), [@ialidzhikov](https://github.com/ialidzhikov))", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108476", + "pr_number": 108476, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth" + ] + }, + "108492": { + "commit": "cc6619857027c634918a6d2cca9bab072c46f71f", + "text": "Add `NodeInclusionPolicy` to `TopologySpreadConstraints` in PodSpec.", + "markdown": "Add `NodeInclusionPolicy` to `TopologySpreadConstraints` in PodSpec. ([#108492](https://github.com/kubernetes/kubernetes/pull/108492), [@kerthcet](https://github.com/kerthcet))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3094", + "type": "KEP" + } + ], + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108492", + "pr_number": 108492, + "areas": [ + "test", + "kubelet", + "apiserver", + "provider/gcp", + "code-generation", + "ipvs", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108541": { + "commit": "8594df1aff9efde5f7e152b331093527eb9cf46a", + "text": "Feature gate `ProbeTerminationGracePeriod` is enabled by default.", + "markdown": "Feature gate `ProbeTerminationGracePeriod` is enabled by default. ([#108541](https://github.com/kubernetes/kubernetes/pull/108541), [@kerthcet](https://github.com/kerthcet))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2238", + "type": "KEP" + } + ], + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108541", + "pr_number": 108541, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "108554": { + "commit": "9ef16e7908e022d21c9bc02ca076662cbc7a6d4b", + "text": "Added a deprecated warning for node beta label usage in PV/SC/RC and CSI Storage Capacity.", + "markdown": "Added a deprecated warning for node beta label usage in PV/SC/RC and CSI Storage Capacity. ([#108554](https://github.com/kubernetes/kubernetes/pull/108554), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108554", + "pr_number": 108554, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "storage", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "108624": { + "commit": "3051cb2ba11a1bc581ecd83c74dae27bd00202f2", + "text": "API server's deprecated `--service-account-api-audiences` flag was removed. Use `--api-audiences` instead.", + "markdown": "API server's deprecated `--service-account-api-audiences` flag was removed. Use `--api-audiences` instead. ([#108624](https://github.com/kubernetes/kubernetes/pull/108624), [@ialidzhikov](https://github.com/ialidzhikov))", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108624", + "pr_number": 108624, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "auth" + ], + "duplicate_kind": true, + "action_required": true + }, + "108654": { + "commit": "8a437e171c42a0567e63419e2ae91a2196440aee", + "text": "NONE", + "markdown": "NONE ([#108654](https://github.com/kubernetes/kubernetes/pull/108654), [@Shubham82](https://github.com/Shubham82)) [SIG CLI]", + "author": "Shubham82", + "author_url": "https://github.com/Shubham82", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108654", + "pr_number": 108654, + "areas": [ + "kubectl" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cli" + ], + "do_not_publish": true + }, + "108727": { + "commit": "03a46ac94b145ea59701329f2facb31b7fa6e903", + "text": "Fix a bug where metrics are not recorded during Preemption(PostFilter).", + "markdown": "Fix a bug where metrics are not recorded during Preemption(PostFilter). ([#108727](https://github.com/kubernetes/kubernetes/pull/108727), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108727", + "pr_number": 108727, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "108746": { + "commit": "b215a8949a9b13f21d991f93d8d53633898578c1", + "text": "Panics while calling validating admission webhook are caught and honor the fail open or fail closed setting.", + "markdown": "Panics while calling validating admission webhook are caught and honor the fail open or fail closed setting. ([#108746](https://github.com/kubernetes/kubernetes/pull/108746), [@deads2k](https://github.com/deads2k)) [SIG API Machinery]", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108746", + "pr_number": 108746, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "108777": { + "commit": "47bb8c6d0cb088016e62b6de172ff0594c596d23", + "text": "kubectl: support multiple resources for kubectl rollout status.", + "markdown": "Kubectl: support multiple resources for kubectl rollout status. ([#108777](https://github.com/kubernetes/kubernetes/pull/108777), [@pjo256](https://github.com/pjo256))", + "author": "pjo256", + "author_url": "https://github.com/pjo256", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108777", + "pr_number": 108777, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "108797": { + "commit": "cae22d8b8a78985f438c232357aa2b6c60d83f9b", + "text": "Deprecated beta APIs scheduled for removal in 1.25 are no longer served. See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-25 for more information.", + "markdown": "Deprecated beta APIs scheduled for removal in 1.25 are no longer served. See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-25 for more information. ([#108797](https://github.com/kubernetes/kubernetes/pull/108797), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Instrumentation and Testing]", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108797", + "pr_number": 108797, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "duplicate": true, + "action_required": true + }, + "108997": { + "commit": "1f90b7980b983436634b903300bdfb02b64d66a6", + "text": "Fix for volume reconstruction of CSI ephemeral volumes", + "markdown": "Fix for volume reconstruction of CSI ephemeral volumes ([#108997](https://github.com/kubernetes/kubernetes/pull/108997), [@dobsonj](https://github.com/dobsonj)) [SIG Node, Storage and Testing]", + "author": "dobsonj", + "author_url": "https://github.com/dobsonj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108997", + "pr_number": 108997, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node", + "testing" + ], + "duplicate": true + }, + "109070": { + "commit": "9a73536ff2d15cf3329a492c6d7dc7b48018eeb0", + "text": "Shell completion is now provided for the \"--subresource\" flag.", + "markdown": "Shell completion is now provided for the \"--subresource\" flag. ([#109070](https://github.com/kubernetes/kubernetes/pull/109070), [@marckhouzam](https://github.com/marckhouzam))", + "author": "marckhouzam", + "author_url": "https://github.com/marckhouzam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109070", + "pr_number": 109070, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "109090": { + "commit": "759785ea147bc13945d521eaba4a6592cbc0675f", + "text": "Introduced NodeIPAM support for multiple ClusterCIDRs ([#2593](https://github.com/kubernetes/enhancements/issues/2593)) as an alpha feature.\nSet feature gate `MultiCIDRRangeAllocator=true`, determines whether the `MultiCIDRRangeAllocator` controller can be used, while the kube-controller-manager flag below will pick the active controller.\nEnabled the `MultiCIDRRangeAllocator` by setting `--cidr-allocator-type=MultiCIDRRangeAllocator` flag in kube-controller-manager.", + "markdown": "Introduced NodeIPAM support for multiple ClusterCIDRs ([#2593](https://github.com/kubernetes/enhancements/issues/2593)) as an alpha feature.\n Set feature gate `MultiCIDRRangeAllocator=true`, determines whether the `MultiCIDRRangeAllocator` controller can be used, while the kube-controller-manager flag below will pick the active controller.\n Enabled the `MultiCIDRRangeAllocator` by setting `--cidr-allocator-type=MultiCIDRRangeAllocator` flag in kube-controller-manager. ([#109090](https://github.com/kubernetes/kubernetes/pull/109090), [@sarveshr7](https://github.com/sarveshr7))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2593", + "type": "KEP" + } + ], + "author": "sarveshr7", + "author_url": "https://github.com/sarveshr7", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109090", + "pr_number": 109090, + "areas": [ + "test", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "109101": { + "commit": "2d9d7287c11f04e067dd9b776716bd3725d8034f", + "text": "None", + "markdown": "None ([#109101](https://github.com/kubernetes/kubernetes/pull/109101), [@Shubham82](https://github.com/Shubham82)) [SIG CLI]", + "author": "Shubham82", + "author_url": "https://github.com/Shubham82", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109101", + "pr_number": 109101, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug", + "documentation" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "109111": { + "commit": "4569e646ef161c0262d433aed324fec97a525572", + "text": "End-to-end testing has been migrated from Ginkgo v1 to v2.\n\nWhen running test/e2e via the Ginkgo CLI, the v2 CLI must be used and `-timeout=24h` (or some other, suitable value) must be passed because the default timeout was reduced from 24h to 1h. When running it via `go test`, the corresponding `-args` parameter is `-ginkgo.timeout=24h`. To build the CLI in the Kubernetes repo, use `make all WHAT=github.com/onsi/ginkgo/v2/ginkgo`.\nGinkgo V2 doesn't accept go test's `-parallel` flags to parallelize Ginkgo specs, please switch to use `ginkgo -p` or `ginkgo -procs=N` instead.", + "markdown": "End-to-end testing has been migrated from Ginkgo v1 to v2.\n \n When running test/e2e via the Ginkgo CLI, the v2 CLI must be used and `-timeout=24h` (or some other, suitable value) must be passed because the default timeout was reduced from 24h to 1h. When running it via `go test`, the corresponding `-args` parameter is `-ginkgo.timeout=24h`. To build the CLI in the Kubernetes repo, use `make all WHAT=github.com/onsi/ginkgo/v2/ginkgo`.\n Ginkgo V2 doesn't accept go test's `-parallel` flags to parallelize Ginkgo specs, please switch to use `ginkgo -p` or `ginkgo -procs=N` instead. ([#109111](https://github.com/kubernetes/kubernetes/pull/109111), [@chendave](https://github.com/chendave)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling, Storage, Testing and Windows]", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109111", + "pr_number": 109111, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "kubeadm", + "conformance", + "code-generation", + "e2e-test-framework", + "dependency", + "network-policy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "autoscaling", + "auth", + "apps", + "windows", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "109124": { + "commit": "889e60ab33b4861e1c089b5d0cade8fe9272a8d4", + "text": "Reduced duration to sync proxy rules on Windows `kube-proxy` when using `kernelspace` mode.", + "markdown": "Reduced duration to sync proxy rules on Windows `kube-proxy` when using `kernelspace` mode. ([#109124](https://github.com/kubernetes/kubernetes/pull/109124), [@daschott](https://github.com/daschott))", + "author": "daschott", + "author_url": "https://github.com/daschott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109124", + "pr_number": 109124, + "areas": [ + "release-eng" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows", + "release" + ], + "duplicate": true + }, + "109141": { + "commit": "5ac563c507cd75c9382a2a23a3c8e3452138a021", + "text": "Default burst limit for the discovery client set to 300.", + "markdown": "Default burst limit for the discovery client set to 300. ([#109141](https://github.com/kubernetes/kubernetes/pull/109141), [@ulucinar](https://github.com/ulucinar))", + "author": "ulucinar", + "author_url": "https://github.com/ulucinar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109141", + "pr_number": 109141, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cli" + ], + "duplicate": true + }, + "109175": { + "commit": "abe06b3df562849d0076bdd968262a458b71d3c9", + "text": "For resources built into an apiserver, the server now logs at `-v=3` whether it is using watch caching.", + "markdown": "For resources built into an apiserver, the server now logs at `-v=3` whether it is using watch caching. ([#109175](https://github.com/kubernetes/kubernetes/pull/109175), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109175", + "pr_number": 109175, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "109217": { + "commit": "c27e82604e9a99c7d17768a63f21c740d89d9fed", + "text": "Faster mount detection for linux kernel 5.10+ using openat2 speeding up pod churn rates. On Kernel versions less 5.10, it will fallback to using the original way of detecting mount points i.e by parsing /proc/mounts.", + "markdown": "Faster mount detection for linux kernel 5.10+ using openat2 speeding up pod churn rates. On Kernel versions less 5.10, it will fallback to using the original way of detecting mount points i.e by parsing /proc/mounts. ([#109217](https://github.com/kubernetes/kubernetes/pull/109217), [@manugupt1](https://github.com/manugupt1))", + "author": "manugupt1", + "author_url": "https://github.com/manugupt1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109217", + "pr_number": 109217, + "areas": [ + "cloudprovider", + "dependency" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "storage", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "109250": { + "commit": "6269784cd0bceeacbb133f5125a9818342ea7d6c", + "text": "Fixed scheduling of **CronJob** with `@every X` schedules.", + "markdown": "Fixed scheduling of **CronJob** with `@every X` schedules. ([#109250](https://github.com/kubernetes/kubernetes/pull/109250), [@d-honeybadger](https://github.com/d-honeybadger))", + "author": "d-honeybadger", + "author_url": "https://github.com/d-honeybadger", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109250", + "pr_number": 109250, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "109251": { + "commit": "7061876169716feefbcafb41a37e33f3d7b51822", + "text": "`MaxUnavailable` for `StatefulSets`, allows faster `RollingUpdate` by taking down more than 1 pod at a time. \nThe number of pods you want to take down during a `RollingUpdate` is configurable using `maxUnavailable` parameter.\n", + "markdown": "`MaxUnavailable` for `StatefulSets`, allows faster `RollingUpdate` by taking down more than 1 pod at a time. \n The number of pods you want to take down during a `RollingUpdate` is configurable using `maxUnavailable` parameter.\n ([#109251](https://github.com/kubernetes/kubernetes/pull/109251), [@krmayankk](https://github.com/krmayankk))", + "author": "krmayankk", + "author_url": "https://github.com/krmayankk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109251", + "pr_number": 109251, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "cli" + ], + "feature": true, + "duplicate": true + }, + "109254": { + "commit": "6b64c51fac61521fdfaf2f3f5c80f30ce9536832", + "text": "Removed deprecated kubectl.kubernetes.io/default-logs-container support", + "markdown": "Removed deprecated kubectl.kubernetes.io/default-logs-container support ([#109254](https://github.com/kubernetes/kubernetes/pull/109254), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/2227-kubectl-default-container", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109254", + "pr_number": 109254, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "109263": { + "commit": "451c00cc70a6d3a7062950b3969d3d9bb694fafa", + "text": "kubelet: added validation for labels provided with --node-labels. Malformed labels will result in errors.", + "markdown": "Kubelet: added validation for labels provided with --node-labels. Malformed labels will result in errors. ([#109263](https://github.com/kubernetes/kubernetes/pull/109263), [@FeLvi-zzz](https://github.com/FeLvi-zzz))", + "author": "FeLvi-zzz", + "author_url": "https://github.com/FeLvi-zzz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109263", + "pr_number": 109263, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "109268": { + "commit": "6b988c516e79b7c1b0b2dddae99f1472f8300617", + "text": "Fixed strict server-side field validation treating `metadata` fields as unknown fields.", + "markdown": "Fixed strict server-side field validation treating `metadata` fields as unknown fields. ([#109268](https://github.com/kubernetes/kubernetes/pull/109268), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109268", + "pr_number": 109268, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "109388": { + "commit": "70dca66271d2fd26d77992de8380477849becb67", + "text": "kubelet's deprecated `--experimental-kernel-memcg-notification` flag is now removed. Use `--kernel-memcg-notification` instead.", + "markdown": "Kubelet's deprecated `--experimental-kernel-memcg-notification` flag is now removed. Use `--kernel-memcg-notification` instead. ([#109388](https://github.com/kubernetes/kubernetes/pull/109388), [@ialidzhikov](https://github.com/ialidzhikov))", + "author": "ialidzhikov", + "author_url": "https://github.com/ialidzhikov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109388", + "pr_number": 109388, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "109435": { + "commit": "0bd2847019899b38656723f4cf8f0289e6186b43", + "text": "Feature gates that graduated to GA in 1.23 or earlier and were unconditionally enabled have been removed: CSIServiceAccountToken, ConfigurableFSGroupPolicy, EndpointSlice, EndpointSliceNodeName, EndpointSliceProxying, GenericEphemeralVolume, IPv6DualStack, IngressClassNamespacedParams, StorageObjectInUseProtection, TTLAfterFinished, VolumeSubpath, WindowsEndpointSliceProxying.", + "markdown": "Feature gates that graduated to GA in 1.23 or earlier and were unconditionally enabled have been removed: CSIServiceAccountToken, ConfigurableFSGroupPolicy, EndpointSlice, EndpointSliceNodeName, EndpointSliceProxying, GenericEphemeralVolume, IPv6DualStack, IngressClassNamespacedParams, StorageObjectInUseProtection, TTLAfterFinished, VolumeSubpath, WindowsEndpointSliceProxying. ([#109435](https://github.com/kubernetes/kubernetes/pull/109435), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109435", + "pr_number": 109435, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "109441": { + "commit": "d9fa563550079bcc5c404bca4f274d7fe10187f7", + "text": "Kubernetes now correctly handles \"search .\" in the host's resolv.conf file by preserving the \".\" entry in the \"resolv.conf\" that the kubelet writes to pods.", + "markdown": "Kubernetes now correctly handles \"search .\" in the host's resolv.conf file by preserving the \".\" entry in the \"resolv.conf\" that the kubelet writes to pods. ([#109441](https://github.com/kubernetes/kubernetes/pull/109441), [@Miciah](https://github.com/Miciah)) [SIG Network and Node]", + "author": "Miciah", + "author_url": "https://github.com/Miciah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109441", + "pr_number": 109441, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true + }, + "109443": { + "commit": "e8ef77514b5e2fe6a7c602f9663c2ef179387ea4", + "text": "Added the `Apply` and `ApplyStatus` methods to the dynamic `ResourceInterface`", + "markdown": "Added the `Apply` and `ApplyStatus` methods to the dynamic `ResourceInterface` ([#109443](https://github.com/kubernetes/kubernetes/pull/109443), [@kevindelgado](https://github.com/kevindelgado))", + "author": "kevindelgado", + "author_url": "https://github.com/kevindelgado", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109443", + "pr_number": 109443, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "109464": { + "commit": "5e9a6a256e9ed7834dfcf5f4a30be015130df6e9", + "text": "Kubernetes binaries are now built-in `module` mode instead of `GOPATH` mode.", + "markdown": "Kubernetes binaries are now built-in `module` mode instead of `GOPATH` mode. ([#109464](https://github.com/kubernetes/kubernetes/pull/109464), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109464", + "pr_number": 109464, + "areas": [ + "test", + "conformance" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing", + "architecture" + ], + "duplicate": true + }, + "109479": { + "commit": "b2ed6ca64f55452cdb4063d62920dddccd4344f7", + "text": "New `KUBECACHEDIR` environment variable was introduced to override default discovery cache directory which is `$HOME/.kube/cache`.", + "markdown": "New `KUBECACHEDIR` environment variable was introduced to override default discovery cache directory which is `$HOME/.kube/cache`. ([#109479](https://github.com/kubernetes/kubernetes/pull/109479), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109479", + "pr_number": 109479, + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "109486": { + "commit": "63a618a815de4d6adfe5908e1e1c5d36a20bf9f4", + "text": "Fixed `JobTrackingWithFinalizers` that:\n- was declaring a job finished before counting all the created pods in the status\n- was leaving pods with finalizers, blocking pod and job deletions\n `JobTrackingWithFinalizers` is still disabled by default.", + "markdown": "Fixed `JobTrackingWithFinalizers` that:\n - was declaring a job finished before counting all the created pods in the status\n - was leaving pods with finalizers, blocking pod and job deletions\n `JobTrackingWithFinalizers` is still disabled by default. ([#109486](https://github.com/kubernetes/kubernetes/pull/109486), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109486", + "pr_number": 109486, + "areas": [ + "test", + "batch" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "109510": { + "commit": "487512bb563ad8cfb70f1763bce07e754073d759", + "text": "Added the latest GCE pinhole firewall feature, which introduces `destination-ranges` in the ingress `firewall-rules`. It restricts access to the backend IPs by allowing traffic through `ILB` or `NetLB` only. This change does **NOT** change the existing `ILB` or `NetLB` behavior.", + "markdown": "Added the latest GCE pinhole firewall feature, which introduces `destination-ranges` in the ingress `firewall-rules`. It restricts access to the backend IPs by allowing traffic through `ILB` or `NetLB` only. This change does **NOT** change the existing `ILB` or `NetLB` behavior. ([#109510](https://github.com/kubernetes/kubernetes/pull/109510), [@sugangli](https://github.com/sugangli))", + "author": "sugangli", + "author_url": "https://github.com/sugangli", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109510", + "pr_number": 109510, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "109541": { + "commit": "f0791b50143856177878e21bb44beb5e3e36cc78", + "text": "In-tree GCE PD test cases no longer run in Kubernetes testing harness anymore (side effect of switching on CSI migration in 1.22). Please switch on the environment variable `ENABLE_STORAGE_GCE_PD_DRIVER` to `yes` if you need to run these tests.", + "markdown": "In-tree GCE PD test cases no longer run in Kubernetes testing harness anymore (side effect of switching on CSI migration in 1.22). Please switch on the environment variable `ENABLE_STORAGE_GCE_PD_DRIVER` to `yes` if you need to run these tests. ([#109541](https://github.com/kubernetes/kubernetes/pull/109541), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109541", + "pr_number": 109541, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "cleanup", + "failing-test" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "109563": { + "commit": "b1e130fe83156783153538b6d79821c2fdaa85bb", + "text": "The TopologySpreadConstraints will be shown in describe command for pods, deployments, daemonsets, etc.", + "markdown": "The TopologySpreadConstraints will be shown in describe command for pods, deployments, daemonsets, etc. ([#109563](https://github.com/kubernetes/kubernetes/pull/109563), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109563", + "pr_number": 109563, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "duplicate_kind": true + }, + "109579": { + "commit": "8dd45ba46ce8febd9825237a87e06f000e4ab2e2", + "text": "Renamed `apiserver_watch_cache_watch_cache_initializations_total` to `apiserver_watch_cache_initializations_total`", + "markdown": "Renamed `apiserver_watch_cache_watch_cache_initializations_total` to `apiserver_watch_cache_initializations_total` ([#109579](https://github.com/kubernetes/kubernetes/pull/109579), [@logicalhan](https://github.com/logicalhan))", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109579", + "pr_number": 109579, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "109601": { + "commit": "914406da5139437a0cd677d55e004d45d784f8ce", + "text": "Fixed a bug which could have allowed an improperly annotated LoadBalancer service to become active.", + "markdown": "Fixed a bug which could have allowed an improperly annotated LoadBalancer service to become active. ([#109601](https://github.com/kubernetes/kubernetes/pull/109601), [@mdbooth](https://github.com/mdbooth))", + "author": "mdbooth", + "author_url": "https://github.com/mdbooth", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109601", + "pr_number": 109601, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "cloud-provider" + ], + "duplicate": true + }, + "109602": { + "commit": "7af5a7bfc51d0455d8b2322ae9e72ed66fb1b8f9", + "text": "The `metadata.clusterName` field is completely removed. This should not have any user-visible impact.", + "markdown": "The `metadata.clusterName` field is completely removed. This should not have any user-visible impact. ([#109602](https://github.com/kubernetes/kubernetes/pull/109602), [@lavalamp](https://github.com/lavalamp))", + "author": "lavalamp", + "author_url": "https://github.com/lavalamp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109602", + "pr_number": 109602, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "testing" + ], + "duplicate": true + }, + "109612": { + "commit": "7adb7c1d060ee047a724d1d73d0e465532aa2785", + "text": "Kube-controller-manager: Removed flags `deleting-pods-qps`, `deleting-pods-burst`, and `register-retry-count`.", + "markdown": "Kube-controller-manager: Removed flags `deleting-pods-qps`, `deleting-pods-burst`, and `register-retry-count`. ([#109612](https://github.com/kubernetes/kubernetes/pull/109612), [@pandaamanda](https://github.com/pandaamanda))", + "author": "pandaamanda", + "author_url": "https://github.com/pandaamanda", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109612", + "pr_number": 109612, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change", + "deprecation" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "109624": { + "commit": "e8d6b76f8b1ae7b49d1dd9ac5c65afb24a18c7be", + "text": "EndpointSlices marked for deletion are now ignored during reconciliation.", + "markdown": "EndpointSlices marked for deletion are now ignored during reconciliation. ([#109624](https://github.com/kubernetes/kubernetes/pull/109624), [@aryan9600](https://github.com/aryan9600))", + "author": "aryan9600", + "author_url": "https://github.com/aryan9600", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109624", + "pr_number": 109624, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "109658": { + "commit": "a83cc51a19d1b5f2b2d3fb75574b04f587ec0054", + "text": "Updated to cAdvisor v0.44.1 to fix an issue where metrics generated by kubelet for pod network stats were empty in some cases.", + "markdown": "Updated to cAdvisor v0.44.1 to fix an issue where metrics generated by kubelet for pod network stats were empty in some cases. ([#109658](https://github.com/kubernetes/kubernetes/pull/109658), [@bobbypage](https://github.com/bobbypage))", + "author": "bobbypage", + "author_url": "https://github.com/bobbypage", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109658", + "pr_number": 109658, + "areas": [ + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "109676": { + "commit": "7ac06e11e89540094bd8a39f93e3634a2db44ad0", + "text": "On compatible systems, a mounter's Unmount implementation is changed to not return an error when the specified target can be detected as not a mount point. On Linux, the behavior of detecting a mount point depends on `umount` command is validated when the mounter is created. Additionally, mount point checks will be skipped in CleanupMountPoint/CleanupMountWithForce if the mounter's Unmount having the changed behavior of not returning error when target is not a mount point.", + "markdown": "On compatible systems, a mounter's Unmount implementation is changed to not return an error when the specified target can be detected as not a mount point. On Linux, the behavior of detecting a mount point depends on `umount` command is validated when the mounter is created. Additionally, mount point checks will be skipped in CleanupMountPoint/CleanupMountWithForce if the mounter's Unmount having the changed behavior of not returning error when target is not a mount point. ([#109676](https://github.com/kubernetes/kubernetes/pull/109676), [@cartermckinnon](https://github.com/cartermckinnon)) [SIG Storage]", + "author": "cartermckinnon", + "author_url": "https://github.com/cartermckinnon", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109676", + "pr_number": 109676, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "storage" + ], + "duplicate_kind": true + }, + "109680": { + "commit": "eb88daeeae4a53a20579620e1791e30416517223", + "text": "Return a warning when applying a `pod-security.kubernetes.io` label to a PodSecurity-exempted namespace.\nStop including the `pod-security.kubernetes.io/exempt=namespace` audit annotation on namespace requests.", + "markdown": "Return a warning when applying a `pod-security.kubernetes.io` label to a PodSecurity-exempted namespace.\n Stop including the `pod-security.kubernetes.io/exempt=namespace` audit annotation on namespace requests. ([#109680](https://github.com/kubernetes/kubernetes/pull/109680), [@tallclair](https://github.com/tallclair))", + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109680", + "pr_number": 109680, + "kinds": [ + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true + }, + "109706": { + "commit": "aee13fc3dee0ee3e9183e7ddb8c84f77b886aa1f", + "text": "Reduced the number of cloud API calls and service downtime caused by excessive re-configurations of cluster LBs with externalTrafficPolicy=Local when node readiness changes (https://github.com/kubernetes/kubernetes/issues/111539). The service controller (in cloud-controller-manager) will avoid resyncing nodes which are transitioning between `Ready` / `NotReady` (only for for ETP=Local Services). The LBs used for these services will solely rely on the health check probe defined by the `healthCheckNodePort` to determine if a particular node is to be used for traffic load balancing.", + "markdown": "Reduced the number of cloud API calls and service downtime caused by excessive re-configurations of cluster LBs with externalTrafficPolicy=Local when node readiness changes (https://github.com/kubernetes/kubernetes/issues/111539). The service controller (in cloud-controller-manager) will avoid resyncing nodes which are transitioning between `Ready` / `NotReady` (only for for ETP=Local Services). The LBs used for these services will solely rely on the health check probe defined by the `healthCheckNodePort` to determine if a particular node is to be used for traffic load balancing. ([#109706](https://github.com/kubernetes/kubernetes/pull/109706), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109706", + "pr_number": 109706, + "areas": [ + "test", + "cloudprovider", + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "api-machinery", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "109709": { + "commit": "b578d616061a6c1710d1506e25e7690df000cbc9", + "text": "When using the OpenStack legacy cloud provider, kubelet and KCM will ignore unknown configuration directives rather than failing to start.", + "markdown": "When using the OpenStack legacy cloud provider, kubelet and KCM will ignore unknown configuration directives rather than failing to start. ([#109709](https://github.com/kubernetes/kubernetes/pull/109709), [@mdbooth](https://github.com/mdbooth))", + "author": "mdbooth", + "author_url": "https://github.com/mdbooth", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109709", + "pr_number": 109709, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "109721": { + "commit": "70d470e6aa2b541f6d93d4c05246537978f4b0df", + "text": "Fixed `NeedResize` build failure on Windows.", + "markdown": "Fixed `NeedResize` build failure on Windows. ([#109721](https://github.com/kubernetes/kubernetes/pull/109721), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109721", + "pr_number": 109721, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "109752": { + "commit": "b07ee3654732128f8de93b54b0c4a56ffb91fa95", + "text": "Deleted the `apimachinery/clock` package. Please use `k8s.io/utils/clock` package instead.", + "markdown": "Deleted the `apimachinery/clock` package. Please use `k8s.io/utils/clock` package instead. ([#109752](https://github.com/kubernetes/kubernetes/pull/109752), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", + "author": "MadhavJivrajani", + "author_url": "https://github.com/MadhavJivrajani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109752", + "pr_number": 109752, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "109764": { + "commit": "77c37da7fc589df3f09194298ef928c88f6f12c2", + "text": "Changed PV framework delete timeout to 5 minutes as documented.", + "markdown": "Changed PV framework delete timeout to 5 minutes as documented. ([#109764](https://github.com/kubernetes/kubernetes/pull/109764), [@saikat-royc](https://github.com/saikat-royc))", + "author": "saikat-royc", + "author_url": "https://github.com/saikat-royc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109764", + "pr_number": 109764, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true + }, + "109773": { + "commit": "35940b707c4e640c174a392c29db188e11c2b0ee", + "text": "Add missing powershell option to kubectl completion command short description.", + "markdown": "Add missing powershell option to kubectl completion command short description. ([#109773](https://github.com/kubernetes/kubernetes/pull/109773), [@danielhelfand](https://github.com/danielhelfand))", + "author": "danielhelfand", + "author_url": "https://github.com/danielhelfand", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109773", + "pr_number": 109773, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "109782": { + "commit": "50e1f70027585eb76fdd1b26e42b37424b204f8d", + "text": "The kube-proxy `sync_proxy_rules_no_endpoints_total` metric now only counts local-traffic-policy services which have remote endpoints but not local endpoints.", + "markdown": "The kube-proxy `sync_proxy_rules_no_endpoints_total` metric now only counts local-traffic-policy services which have remote endpoints but not local endpoints. ([#109782](https://github.com/kubernetes/kubernetes/pull/109782), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109782", + "pr_number": 109782, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "109794": { + "commit": "21149f1b68edab5f1faf3f79ec6373efc941c9c1", + "text": "The node annotation alpha.kubernetes.io/provided-node-ip is no longer set ONLY when `--cloud-provider=external`. Now, it is set on kubelet startup if the `--cloud-provider` flag is set at all, including the deprecated in-tree providers.", + "markdown": "The node annotation alpha.kubernetes.io/provided-node-ip is no longer set ONLY when `--cloud-provider=external`. Now, it is set on kubelet startup if the `--cloud-provider` flag is set at all, including the deprecated in-tree providers. ([#109794](https://github.com/kubernetes/kubernetes/pull/109794), [@mdbooth](https://github.com/mdbooth)) [SIG Network and Node]", + "author": "mdbooth", + "author_url": "https://github.com/mdbooth", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109794", + "pr_number": 109794, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true + }, + "109798": { + "commit": "99de67958dc4434fedaa0cf57da1e280b51c7036", + "text": "The beta `PodSecurityPolicy` admission plugin, deprecated since 1.21, is removed. Follow the instructions at https://kubernetes.io/docs/tasks/configure-pod-container/migrate-from-psp/ to migrate to the built-in PodSecurity admission plugin (or to another third-party policy webhook) prior to upgrading to v1.25.", + "markdown": "The beta `PodSecurityPolicy` admission plugin, deprecated since 1.21, is removed. Follow the instructions at https://kubernetes.io/docs/tasks/configure-pod-container/migrate-from-psp/ to migrate to the built-in PodSecurity admission plugin (or to another third-party policy webhook) prior to upgrading to v1.25. ([#109798](https://github.com/kubernetes/kubernetes/pull/109798), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109798", + "pr_number": 109798, + "areas": [ + "test", + "kubelet", + "apiserver", + "provider/gcp", + "e2e-test-framework" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "auth", + "apps", + "instrumentation", + "testing", + "cloud-provider", + "security" + ], + "duplicate": true, + "duplicate_kind": true + }, + "109809": { + "commit": "a6943ad863ee33466248641158ac87df0cfd80b4", + "text": "NONE", + "markdown": "NONE ([#109809](https://github.com/kubernetes/kubernetes/pull/109809), [@areller](https://github.com/areller)) [SIG Apps]", + "author": "areller", + "author_url": "https://github.com/areller", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109809", + "pr_number": 109809, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "do_not_publish": true + }, + "109813": { + "commit": "8d5518d4269666f33c6323710449b8ff4a002e2c", + "text": "Updated cri-tools to [v1.24.2(https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.24.2).", + "markdown": "Updated cri-tools to [v1.24.2(https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.24.2). ([#109813](https://github.com/kubernetes/kubernetes/pull/109813), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109813", + "pr_number": 109813, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "release", + "cloud-provider" + ], + "duplicate": true + }, + "109819": { + "commit": "37b100bea69b72a32fcd001743202583ef5d2ae8", + "text": "Support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io`, deprecated since v1.19, was partially removed. Kubelets no longer support the annotations, use of the annotations in static pods is no longer supported, and the seccomp annotations are no longer auto-populated when pods with seccomp fields are created. Auto-population of the seccomp fields from the annotations is planned to be removed in 1.27. Pods should use the corresponding pod or container `securityContext.seccompProfile` field instead.", + "markdown": "Support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io`, deprecated since v1.19, was partially removed. Kubelets no longer support the annotations, use of the annotations in static pods is no longer supported, and the seccomp annotations are no longer auto-populated when pods with seccomp fields are created. Auto-population of the seccomp fields from the annotations is planned to be removed in 1.27. Pods should use the corresponding pod or container `securityContext.seccompProfile` field instead. ([#109819](https://github.com/kubernetes/kubernetes/pull/109819), [@saschagrunert](https://github.com/saschagrunert))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/135", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109819", + "pr_number": 109819, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "deprecation" + ], + "sigs": [ + "node", + "auth", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "109826": { + "commit": "2b3508e0f10ac3c2c2cc0818ea081261c1256cfe", + "text": "Fixed a bug involving Services of type `LoadBalancer` with multiple IPs and a `LoadBalancerSourceRanges` that overlaps the node IP.", + "markdown": "Fixed a bug involving Services of type `LoadBalancer` with multiple IPs and a `LoadBalancerSourceRanges` that overlaps the node IP. ([#109826](https://github.com/kubernetes/kubernetes/pull/109826), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109826", + "pr_number": 109826, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "109840": { + "commit": "7141b6d58dff2b55449c616181319c9e9946b4c2", + "text": "kubeadm: only taint control plane nodes when the legacy \"master\" taint is present. This avoids the bug where \"kubeadm upgrade\" will re-taint a control plane node with the new \"control plane\" taint even if the user explicitly untainted the node.", + "markdown": "Kubeadm: only taint control plane nodes when the legacy \"master\" taint is present. This avoids the bug where \"kubeadm upgrade\" will re-taint a control plane node with the new \"control plane\" taint even if the user explicitly untainted the node. ([#109840](https://github.com/kubernetes/kubernetes/pull/109840), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109840", + "pr_number": 109840, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "109880": { + "commit": "bbdcce6a9e579ab60357d53bfb7c3fc0e1f74cb4", + "text": "Fix spurious kube-apiserver log warnings related to openapi v3 merging when creating or modifying CustomResourceDefinition objects", + "markdown": "Fix spurious kube-apiserver log warnings related to openapi v3 merging when creating or modifying CustomResourceDefinition objects ([#109880](https://github.com/kubernetes/kubernetes/pull/109880), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery and Testing]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109880", + "pr_number": 109880, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "109928": { + "commit": "aa4150cc44f1961fe21f8ae19b807b59d602a496", + "text": "Fixed the bug that a `ServiceIPStaticSubrange` enabled cluster assigns duplicate IP addresses when the dynamic block is exhausted.", + "markdown": "Fixed the bug that a `ServiceIPStaticSubrange` enabled cluster assigns duplicate IP addresses when the dynamic block is exhausted. ([#109928](https://github.com/kubernetes/kubernetes/pull/109928), [@tksm](https://github.com/tksm))", + "author": "tksm", + "author_url": "https://github.com/tksm", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109928", + "pr_number": 109928, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "109938": { + "commit": "78fb1fa9a282fb70f5f2884d174c11947214d51b", + "text": "There is a new OCI image registry (`registry.k8s.io`) that can be used to pull Kubernetes images. The old registry (`k8s.gcr.io`) will continue to be supported for the foreseeable future, but the new name should perform better because it frontends equivalent mirrors in other clouds. Please point your clusters to the new registry going forward. \\n\\nAdmission/Policy integrations that have an allowlist of registries need to include `registry.k8s.io` alongside `k8s.gcr.io`.\\nAir-gapped environments and image garbage-collection configurations will need to update to pre-pull and preserve required images under `registry.k8s.io` as well as `k8s.gcr.io`.", + "markdown": "There is a new OCI image registry (`registry.k8s.io`) that can be used to pull Kubernetes images. The old registry (`k8s.gcr.io`) will continue to be supported for the foreseeable future, but the new name should perform better because it frontends equivalent mirrors in other clouds. Please point your clusters to the new registry going forward. \\n\\nAdmission/Policy integrations that have an allowlist of registries need to include `registry.k8s.io` alongside `k8s.gcr.io`.\\nAir-gapped environments and image garbage-collection configurations will need to update to pre-pull and preserve required images under `registry.k8s.io` as well as `k8s.gcr.io`. ([#109938](https://github.com/kubernetes/kubernetes/pull/109938), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109938", + "pr_number": 109938, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "provider/gcp", + "release-eng", + "kubeadm", + "conformance", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "scalability", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider", + "k8s-infra" + ], + "duplicate": true, + "action_required": true + }, + "109969": { + "commit": "2d6534cde925ea16f28755a758c96d621b5fa7d6", + "text": "Fix a data race in authentication between AuthenticatedGroupAdder and cached token authenticator.", + "markdown": "Fix a data race in authentication between AuthenticatedGroupAdder and cached token authenticator. ([#109969](https://github.com/kubernetes/kubernetes/pull/109969), [@sttts](https://github.com/sttts)) [SIG API Machinery and Auth]", + "author": "sttts", + "author_url": "https://github.com/sttts", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109969", + "pr_number": 109969, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true + }, + "109987": { + "commit": "344185089155f1413d7121814ac8a1a6b218e0de", + "text": "Allow expansion of ephemeral volumes", + "markdown": "Allow expansion of ephemeral volumes ([#109987](https://github.com/kubernetes/kubernetes/pull/109987), [@gnufied](https://github.com/gnufied)) [SIG Node and Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109987", + "pr_number": 109987, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true + }, + "109995": { + "commit": "0985c476e3db8a5f9532eb4be5cd8adc6f94deef", + "text": "Kubeadm: added support for the flag `--print-manifest` to the addon phases `kube-proxy` and `coredns` of `kubeadm init phase addon`. If this flag is `usedkubeadm` will not apply a given addon and instead print to the terminal the API objects that will be applied.", + "markdown": "Kubeadm: added support for the flag `--print-manifest` to the addon phases `kube-proxy` and `coredns` of `kubeadm init phase addon`. If this flag is `usedkubeadm` will not apply a given addon and instead print to the terminal the API objects that will be applied. ([#109995](https://github.com/kubernetes/kubernetes/pull/109995), [@wangyysde](https://github.com/wangyysde))", + "author": "wangyysde", + "author_url": "https://github.com/wangyysde", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109995", + "pr_number": 109995, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "110007": { + "commit": "5856e835736cfe751ed67b7299fb0b21fe89154d", + "text": "Added new flags into alpha events such as --output, --types, --no-headers.", + "markdown": "Added new flags into alpha events such as --output, --types, --no-headers. ([#110007](https://github.com/kubernetes/kubernetes/pull/110007), [@ardaguclu](https://github.com/ardaguclu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1440", + "type": "KEP" + } + ], + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110007", + "pr_number": 110007, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "110009": { + "commit": "0e567664ed3f9eb6c1f41e87f35886188fe5bd96", + "text": "Fix incorrectly report scope for request_duration_seconds and request_slo_duration_seconds metrics for POST custom resources API calls.", + "markdown": "Fix incorrectly report scope for request_duration_seconds and request_slo_duration_seconds metrics for POST custom resources API calls. ([#110009](https://github.com/kubernetes/kubernetes/pull/110009), [@azylinski](https://github.com/azylinski)) [SIG Instrumentation]", + "author": "azylinski", + "author_url": "https://github.com/azylinski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110009", + "pr_number": 110009, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "instrumentation" + ] + }, + "110013": { + "commit": "2d08104ee3beb5c13db088d40cc22ec053512cea", + "text": "The `gcp` and `azure` auth plugins have been removed from client-go and kubectl. See https://github.com/Azure/kubelogin and https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke", + "markdown": "The `gcp` and `azure` auth plugins have been removed from client-go and kubectl. See https://github.com/Azure/kubelogin and https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke ([#110013](https://github.com/kubernetes/kubernetes/pull/110013), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110013", + "pr_number": 110013, + "areas": [ + "apiserver", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "duplicate_kind": true + }, + "110022": { + "commit": "9d85e18ec0dc09f681650d04d65e3db5237bef96", + "text": "kubeadm: perform additional dockershim cleanup. Treat all container runtimes as remote by using the flag \"--container-runtime=remote\", given dockershim was removed in 1.24 and given kubeadm 1.25 supports a kubelet version of 1.24 and 1.25. The flag \"--network-plugin\" will no longer be used for new clusters. Stop cleaning up the following dockershim related directories on \"kubeadm reset\": \"/var/lib/dockershim\", \"/var/runkubernetes\", \"/var/lib/cni\"", + "markdown": "Kubeadm: perform additional dockershim cleanup. Treat all container runtimes as remote by using the flag \"--container-runtime=remote\", given dockershim was removed in 1.24 and given kubeadm 1.25 supports a kubelet version of 1.24 and 1.25. The flag \"--network-plugin\" will no longer be used for new clusters. Stop cleaning up the following dockershim related directories on \"kubeadm reset\": \"/var/lib/dockershim\", \"/var/runkubernetes\", \"/var/lib/cni\" ([#110022](https://github.com/kubernetes/kubernetes/pull/110022), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110022", + "pr_number": 110022, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "110027": { + "commit": "68fc207cd971336d0942cdb7c1d697284ad60eaf", + "text": "Fix the bug that reported incorrect metrics for the cluster IP allocator.", + "markdown": "Fix the bug that reported incorrect metrics for the cluster IP allocator. ([#110027](https://github.com/kubernetes/kubernetes/pull/110027), [@tksm](https://github.com/tksm))", + "author": "tksm", + "author_url": "https://github.com/tksm", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110027", + "pr_number": 110027, + "kinds": [ + "bug" + ], + "sigs": [ + "instrumentation" + ] + }, + "110033": { + "commit": "b7b824bb9e01edfb39411b8c139eab592af0d667", + "text": "etcd: Update to v3.5.4", + "markdown": "Etcd: Update to v3.5.4 ([#110033](https://github.com/kubernetes/kubernetes/pull/110033), [@mk46](https://github.com/mk46)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing]", + "author": "mk46", + "author_url": "https://github.com/mk46", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110033", + "pr_number": 110033, + "areas": [ + "test", + "provider/gcp", + "kubeadm", + "e2e-test-framework" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "testing", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "110043": { + "commit": "28ab02df19148f8b07e40df7eadbb615672640af", + "text": "Kubernetes is now built with Golang 1.18.2.", + "markdown": "Kubernetes is now built with Golang 1.18.2. ([#110043](https://github.com/kubernetes/kubernetes/pull/110043), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110043", + "pr_number": 110043, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "110058": { + "commit": "31a10245d67544b6718f569a1442b1de97a91e7d", + "text": "ManagedFields time is correctly updated when the value of a managed field is modified.", + "markdown": "ManagedFields time is correctly updated when the value of a managed field is modified. ([#110058](https://github.com/kubernetes/kubernetes/pull/110058), [@glebiller](https://github.com/glebiller))", + "author": "glebiller", + "author_url": "https://github.com/glebiller", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110058", + "pr_number": 110058, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "110072": { + "commit": "92263ee0dd2588978dd2d99a952a1d463e3a88a3", + "text": "Kubeadm: modified the etcd static Pod `liveness` and `readiness` probes to use a new etcd `v3.5.3+` HTTP(s) health check endpoint `/health?serializable=true` that allows to track the health of individual etcd members and not fail all members if a single member is not healthy in the etcd cluster.", + "markdown": "Kubeadm: modified the etcd static Pod `liveness` and `readiness` probes to use a new etcd `v3.5.3+` HTTP(s) health check endpoint `/health?serializable=true` that allows to track the health of individual etcd members and not fail all members if a single member is not healthy in the etcd cluster. ([#110072](https://github.com/kubernetes/kubernetes/pull/110072), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110072", + "pr_number": 110072, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "110075": { + "commit": "b19d50d68e84c213c8db056a82414defd3a73af2", + "text": "Kubelet: added retry of checking Unix domain sockets on Windows nodes for the plugin registration mechanism.", + "markdown": "Kubelet: added retry of checking Unix domain sockets on Windows nodes for the plugin registration mechanism. ([#110075](https://github.com/kubernetes/kubernetes/pull/110075), [@luckerby](https://github.com/luckerby))", + "author": "luckerby", + "author_url": "https://github.com/luckerby", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110075", + "pr_number": 110075, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true + }, + "110076": { + "commit": "f0c47dc91628978ff21d417630037e839102621e", + "text": "Informer/reflector callers can now catch and unwrap specific API errors by type.", + "markdown": "Informer/reflector callers can now catch and unwrap specific API errors by type. ([#110076](https://github.com/kubernetes/kubernetes/pull/110076), [@karlkfi](https://github.com/karlkfi))", + "author": "karlkfi", + "author_url": "https://github.com/karlkfi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110076", + "pr_number": 110076, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "110095": { + "commit": "84c8afeba39ec9ebbb231c67daf9862077299e01", + "text": "kubeadm: stop applying the `node-role.kubernetes.io/master:NoSchedule` taint to control plane nodes for new clusters. Remove the taint from existing control plane nodes during \"kubeadm upgrade apply\"", + "markdown": "Kubeadm: stop applying the `node-role.kubernetes.io/master:NoSchedule` taint to control plane nodes for new clusters. Remove the taint from existing control plane nodes during \"kubeadm upgrade apply\" ([#110095](https://github.com/kubernetes/kubernetes/pull/110095), [@neolit123](https://github.com/neolit123))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2067", + "type": "KEP" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110095", + "pr_number": 110095, + "areas": [ + "test", + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "110104": { + "commit": "22d018cf76d4b73ce455b9d6a02892db8c84319a", + "text": "Some apiserver metrics were changed, as follows.\n- `priority_level_seat_count_samples` is replaced with `priority_level_seat_utilization`, which samples every nanosecond rather than every millisecond; the old metric conveyed utilization despite its name.\n- `priority_level_seat_count_watermarks` is removed.\n- `priority_level_request_count_samples` is replaced with `priority_level_request_utilization`, which samples every nanosecond rather than every millisecond; the old metric conveyed utilization despite its name.\n- `priority_level_request_count_watermarks` is removed.\n- `read_vs_write_request_count_samples` is replaced with `read_vs_write_current_requests`, which samples every nanosecond rather than every second; the new metric, like the old one, measures utilization when the max-in-flight filter is used and number of requests when the API Priority and Fairness filter is used.\n- `read_vs_write_request_count_watermarks` is removed.", + "markdown": "Some apiserver metrics were changed, as follows.\n - `priority_level_seat_count_samples` is replaced with `priority_level_seat_utilization`, which samples every nanosecond rather than every millisecond; the old metric conveyed utilization despite its name.\n - `priority_level_seat_count_watermarks` is removed.\n - `priority_level_request_count_samples` is replaced with `priority_level_request_utilization`, which samples every nanosecond rather than every millisecond; the old metric conveyed utilization despite its name.\n - `priority_level_request_count_watermarks` is removed.\n - `read_vs_write_request_count_samples` is replaced with `read_vs_write_current_requests`, which samples every nanosecond rather than every second; the new metric, like the old one, measures utilization when the max-in-flight filter is used and number of requests when the API Priority and Fairness filter is used.\n - `read_vs_write_request_count_watermarks` is removed. ([#110104](https://github.com/kubernetes/kubernetes/pull/110104), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery, Instrumentation and Testing]", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110104", + "pr_number": 110104, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "110134": { + "commit": "e34f51e9b222045abfdefd967ecb4ac2ac07c631", + "text": "Kubeadm: now sets the host `OS` environment variables when executing `crictl` during image pulls. This fixed a bug where `*PROXY` environment variables did not affect `crictl` internet connectivity.", + "markdown": "Kubeadm: now sets the host `OS` environment variables when executing `crictl` during image pulls. This fixed a bug where `*PROXY` environment variables did not affect `crictl` internet connectivity. ([#110134](https://github.com/kubernetes/kubernetes/pull/110134), [@mk46](https://github.com/mk46))", + "author": "mk46", + "author_url": "https://github.com/mk46", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110134", + "pr_number": 110134, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "110140": { + "commit": "10bea49c12d3eac87860ca3afe3d69a5b245ae33", + "text": "Fixed an issue on Windows nodes where `HostProcess` containers may not be created as expected.", + "markdown": "Fixed an issue on Windows nodes where `HostProcess` containers may not be created as expected. ([#110140](https://github.com/kubernetes/kubernetes/pull/110140), [@marosset](https://github.com/marosset))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/1981-windows-privileged-container-support", + "type": "KEP" + } + ], + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110140", + "pr_number": 110140, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true + }, + "110145": { + "commit": "4f851ebffbc8b601ce99d9fd444928443091c7d5", + "text": "Apiserver: fixed audit of loading more than one webhooks.", + "markdown": "Apiserver: fixed audit of loading more than one webhooks. ([#110145](https://github.com/kubernetes/kubernetes/pull/110145), [@sxllwx](https://github.com/sxllwx))", + "author": "sxllwx", + "author_url": "https://github.com/sxllwx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110145", + "pr_number": 110145, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true + }, + "110164": { + "commit": "d48c0677712f76f1b1832d7f95625ff5994eeae4", + "text": "The `priority_level_request_utilization` metric histogram is adjusted so that for the cases where `phase=waiting` the denominator is the cumulative capacity of all of the priority level's queues.\n The `read_vs_write_current_requests` metric histogram is adjusted, in the case of using API Priority and Fairness instead of max-in-flight, to divide by the relevant limit: sum of queue capacities for waiting requests, sum of seat limits for executing requests.", + "markdown": "The `priority_level_request_utilization` metric histogram is adjusted so that for the cases where `phase=waiting` the denominator is the cumulative capacity of all of the priority level's queues.\n The `read_vs_write_current_requests` metric histogram is adjusted, in the case of using API Priority and Fairness instead of max-in-flight, to divide by the relevant limit: sum of queue capacities for waiting requests, sum of seat limits for executing requests. ([#110164](https://github.com/kubernetes/kubernetes/pull/110164), [@MikeSpreitzer](https://github.com/MikeSpreitzer))", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110164", + "pr_number": 110164, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "110178": { + "commit": "eeb12bb3af3361c9ac652be071c3b9cf49aa5e58", + "text": "Graduated ServerSideFieldValidation to `beta`. Schema validation is performed server-side and requests will receive warnings for any invalid/unknown fields by default.", + "markdown": "Graduated ServerSideFieldValidation to `beta`. Schema validation is performed server-side and requests will receive warnings for any invalid/unknown fields by default. ([#110178](https://github.com/kubernetes/kubernetes/pull/110178), [@kevindelgado](https://github.com/kevindelgado)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Storage and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/2885", + "type": "KEP" + } + ], + "author": "kevindelgado", + "author_url": "https://github.com/kevindelgado", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110178", + "pr_number": 110178, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "110179": { + "commit": "c0642b749ea3c29f415e3d2d7bacc164db231655", + "text": "OpenAPI will no longer duplicate these schemas:\n- `io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions_v2`\n- `io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta_v2`\n- `io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference_v2`\n- `io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails_v2`\n- `io.k8s.apimachinery.pkg.apis.meta.v1.Status_v2`", + "markdown": "OpenAPI will no longer duplicate these schemas:\n - `io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions_v2`\n - `io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta_v2`\n - `io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference_v2`\n - `io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails_v2`\n - `io.k8s.apimachinery.pkg.apis.meta.v1.Status_v2` ([#110179](https://github.com/kubernetes/kubernetes/pull/110179), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110179", + "pr_number": 110179, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "110183": { + "commit": "40543b77b5a72fcd59214ab41f2101657640bd37", + "text": "NONE", + "markdown": "NONE ([#110183](https://github.com/kubernetes/kubernetes/pull/110183), [@lokichoggio](https://github.com/lokichoggio)) [SIG Apps and Autoscaling]", + "author": "lokichoggio", + "author_url": "https://github.com/lokichoggio", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110183", + "pr_number": 110183, + "kinds": [ + "documentation", + "cleanup" + ], + "sigs": [ + "autoscaling", + "apps" + ], + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "110191": { + "commit": "79cef12276522232edb444f4493226466664327a", + "text": "Pods now post their `readiness` during termination.", + "markdown": "Pods now post their `readiness` during termination. ([#110191](https://github.com/kubernetes/kubernetes/pull/110191), [@rphillips](https://github.com/rphillips))", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110191", + "pr_number": 110191, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "110201": { + "commit": "1d22329de8309d5892fc8fb9b5f9ff16a23b666a", + "text": "Added KMS `v2alpha1` API.", + "markdown": "Added KMS `v2alpha1` API. ([#110201](https://github.com/kubernetes/kubernetes/pull/110201), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3302", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110201", + "pr_number": 110201, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true + }, + "110214": { + "commit": "1e7fa3478ed9de606b761be4f70be4ca60e6e697", + "text": "E2e tests: fixed bug in the e2e image `agnhost:2.38` which hangs instead of exiting if a `SIGTERM` signal is received and the `shutdown-delay` option is `0`.", + "markdown": "E2e tests: fixed bug in the e2e image `agnhost:2.38` which hangs instead of exiting if a `SIGTERM` signal is received and the `shutdown-delay` option is `0`. ([#110214](https://github.com/kubernetes/kubernetes/pull/110214), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110214", + "pr_number": 110214, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "flake", + "failing-test", + "regression" + ], + "sigs": [ + "testing" + ], + "duplicate_kind": true + }, + "110255": { + "commit": "8b6dd065d7f9b688fe565a2398065a23721a259b", + "text": "The pod phase lifecycle guarantees that terminal Pods, those whose states are `Unready` or `Succeeded`, can not regress and will have all container stopped. Hence, terminal Pods will never be reachable and should not publish their IP addresses on the `Endpoints` or `EndpointSlices`, independently of the Service `TolerateUnready` option.", + "markdown": "The pod phase lifecycle guarantees that terminal Pods, those whose states are `Unready` or `Succeeded`, can not regress and will have all container stopped. Hence, terminal Pods will never be reachable and should not publish their IP addresses on the `Endpoints` or `EndpointSlices`, independently of the Service `TolerateUnready` option. ([#110255](https://github.com/kubernetes/kubernetes/pull/110255), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110255", + "pr_number": 110255, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node", + "apps", + "testing" + ], + "duplicate": true + }, + "110256": { + "commit": "226323178e23b4c476001266beab1e2f116b3879", + "text": "Fixed a kubelet issue that could result in invalid pod status updates to be sent to the api-server where pods would be reported in a terminal phase but also report a ready condition of true in some cases.", + "markdown": "Fixed a kubelet issue that could result in invalid pod status updates to be sent to the api-server where pods would be reported in a terminal phase but also report a ready condition of true in some cases. ([#110256](https://github.com/kubernetes/kubernetes/pull/110256), [@bobbypage](https://github.com/bobbypage))", + "author": "bobbypage", + "author_url": "https://github.com/bobbypage", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110256", + "pr_number": 110256, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "110292": { + "commit": "6cd258f9f548a5e50e8cc7f0662a1882ce2672d0", + "text": "A change of a failed job condition status to `False` does not result in duplicate conditions.", + "markdown": "A change of a failed job condition status to `False` does not result in duplicate conditions. ([#110292](https://github.com/kubernetes/kubernetes/pull/110292), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110292", + "pr_number": 110292, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "110294": { + "commit": "03b18bf1387d2726950c433aed25bfaf9324bbb3", + "text": "Fix bug that prevented the job controller from enforcing activeDeadlineSeconds when set.", + "markdown": "Fix bug that prevented the job controller from enforcing activeDeadlineSeconds when set. ([#110294](https://github.com/kubernetes/kubernetes/pull/110294), [@harshanarayana](https://github.com/harshanarayana))", + "author": "harshanarayana", + "author_url": "https://github.com/harshanarayana", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110294", + "pr_number": 110294, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "110310": { + "commit": "5219122d0ccd3615f7a36e30189b8aa2910341de", + "text": "`apiserver_longrunning_gauge` was removed from the codebase. Please use `apiserver_longrunning_requests`\ninstead.\n", + "markdown": "`apiserver_longrunning_gauge` was removed from the codebase. Please use `apiserver_longrunning_requests`\n instead.\n ([#110310](https://github.com/kubernetes/kubernetes/pull/110310), [@logicalhan](https://github.com/logicalhan))", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110310", + "pr_number": 110310, + "areas": [ + "apiserver", + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "110326": { + "commit": "ebcc5834f996a6265519dfd5b38fb0d53f6a62ad", + "text": "Added error message \"dry-run can not be used when --force is set\" when dry-run and force flags are set in replace command.", + "markdown": "Added error message \"dry-run can not be used when --force is set\" when dry-run and force flags are set in replace command. ([#110326](https://github.com/kubernetes/kubernetes/pull/110326), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110326", + "pr_number": 110326, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "110327": { + "commit": "9fad5c981aca336a3a48dba9320e0495ce8f59f8", + "text": "Kubeadm: graduated the kubeadm specific feature gate `UnversionedKubeletConfigMap` to GA and locked it to `true` by default. The kubelet related ConfigMap and RBAC rules are now locked to have a simplified naming `*kubelet-config` instead of the legacy naming `*kubelet-config-x.yy`, where `x.yy` was the version of the control plane. If you have previously used the old naming format with `UnversionedKubeletConfigMap=false`, you must manually copy the config map from `kube-system/kubelet-config-x.yy` to `kube-system/kubelet-config` before upgrading to `v1.25`.", + "markdown": "Kubeadm: graduated the kubeadm specific feature gate `UnversionedKubeletConfigMap` to GA and locked it to `true` by default. The kubelet related ConfigMap and RBAC rules are now locked to have a simplified naming `*kubelet-config` instead of the legacy naming `*kubelet-config-x.yy`, where `x.yy` was the version of the control plane. If you have previously used the old naming format with `UnversionedKubeletConfigMap=false`, you must manually copy the config map from `kube-system/kubelet-config-x.yy` to `kube-system/kubelet-config` before upgrading to `v1.25`. ([#110327](https://github.com/kubernetes/kubernetes/pull/110327), [@neolit123](https://github.com/neolit123))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2915", + "type": "KEP" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110327", + "pr_number": 110327, + "areas": [ + "test", + "kubeadm" + ], + "kinds": [ + "cleanup", + "feature", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "110333": { + "commit": "d9eb7c4c6c7b69aaf4ad87ea88f831c90c2d9f81", + "text": "No action required; No API/CLI changed; Add new Windows Image Support", + "markdown": "No action required; No API/CLI changed; Add new Windows Image Support ([#110333](https://github.com/kubernetes/kubernetes/pull/110333), [@liurupeng](https://github.com/liurupeng)) [SIG Cloud Provider and Windows]", + "author": "liurupeng", + "author_url": "https://github.com/liurupeng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110333", + "pr_number": 110333, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "windows", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "110334": { + "commit": "f045fb688f6d6476dc008cfc8f07190abfcd8289", + "text": "In \"large\" clusters, kube-proxy in iptables mode will now sometimes\nleave unused rules in iptables for a while (up to `--iptables-sync-period`)\nbefore deleting them. This improves performance by not requiring it to\ncheck for stale rules on every sync. (In smaller clusters, it will still\nremove unused rules immediately once they are no longer used.)\n\n(The threshold for \"large\" used here is currently \"1000 endpoints\" but\nthis is subject to change.)", + "markdown": "In \"large\" clusters, kube-proxy in iptables mode will now sometimes\n leave unused rules in iptables for a while (up to `--iptables-sync-period`)\n before deleting them. This improves performance by not requiring it to\n check for stale rules on every sync. (In smaller clusters, it will still\n remove unused rules immediately once they are no longer used.)\n \n (The threshold for \"large\" used here is currently \"1000 endpoints\" but\n this is subject to change.) ([#110334](https://github.com/kubernetes/kubernetes/pull/110334), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110334", + "pr_number": 110334, + "areas": [ + "ipvs" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "duplicate_kind": true + }, + "110337": { + "commit": "e66a016b73b0a7f67185a18706d5d9b71cab1e34", + "text": "`apiserver_dropped_requests` is dropped from this release since `apiserver_request_total` can now be used to track dropped requests. `etcd_object_counts` is also removed in favor of `apiserver_storage_objects`. `apiserver_registered_watchers` is also removed in favor of `apiserver_longrunning_requests`.", + "markdown": "`apiserver_dropped_requests` is dropped from this release since `apiserver_request_total` can now be used to track dropped requests. `etcd_object_counts` is also removed in favor of `apiserver_storage_objects`. `apiserver_registered_watchers` is also removed in favor of `apiserver_longrunning_requests`. ([#110337](https://github.com/kubernetes/kubernetes/pull/110337), [@logicalhan](https://github.com/logicalhan))", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110337", + "pr_number": 110337, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "110343": { + "commit": "da813852d0d4d89de03358d587822cf149318b62", + "text": "kubeadm: during \"upgrade apply/diff/node\", in case the `ClusterConfiguration.imageRepository` stored in the \"kubeadm-config\" `ConfigMap` contains the legacy \"k8s.gcr.io\" repository, modify it to the new default \"registry.k8s.io\". Reflect the change in the in-cluster `ConfigMap` only during \"upgrade apply\".", + "markdown": "Kubeadm: during \"upgrade apply/diff/node\", in case the `ClusterConfiguration.imageRepository` stored in the \"kubeadm-config\" `ConfigMap` contains the legacy \"k8s.gcr.io\" repository, modify it to the new default \"registry.k8s.io\". Reflect the change in the in-cluster `ConfigMap` only during \"upgrade apply\". ([#110343](https://github.com/kubernetes/kubernetes/pull/110343), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110343", + "pr_number": 110343, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "110371": { + "commit": "59644ff7bd476caff6b06543581a3efc377b045a", + "text": "Upgraded Azure/go-autorest/autorest to v0.11.27.", + "markdown": "Upgraded Azure/go-autorest/autorest to v0.11.27. ([#110371](https://github.com/kubernetes/kubernetes/pull/110371), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110371", + "pr_number": 110371, + "areas": [ + "cloudprovider", + "provider/azure", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "110372": { + "commit": "fa258263d023dfbd85dc9a61558d9a7236ee0758", + "text": "NONE", + "markdown": "NONE ([#110372](https://github.com/kubernetes/kubernetes/pull/110372), [@lokichoggio](https://github.com/lokichoggio)) [SIG Scheduling]", + "author": "lokichoggio", + "author_url": "https://github.com/lokichoggio", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110372", + "pr_number": 110372, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "110379": { + "commit": "7de86ff1989429f58aabbf844557557228785db9", + "text": "Updated base image for Windows pause container images to one built on Windows machines to address limitations of building Windows container images on Linux machines.", + "markdown": "Updated base image for Windows pause container images to one built on Windows machines to address limitations of building Windows container images on Linux machines. ([#110379](https://github.com/kubernetes/kubernetes/pull/110379), [@marosset](https://github.com/marosset))", + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110379", + "pr_number": 110379, + "kinds": [ + "feature" + ], + "sigs": [ + "windows" + ], + "feature": true + }, + "110388": { + "commit": "bd1c9c1c5b397fd0d5224c4f93af88e5fbc39df2", + "text": "the `minDomains` field in Pod Topology Spread is graduated to beta", + "markdown": "The `minDomains` field in Pod Topology Spread is graduated to beta ([#110388](https://github.com/kubernetes/kubernetes/pull/110388), [@sanposhiho](https://github.com/sanposhiho)) [SIG API Machinery and Apps]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3022", + "type": "KEP" + } + ], + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110388", + "pr_number": 110388, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "110394": { + "commit": "b6fb5a2878a4d44bc73edfd30bec82c907f3d230", + "text": "No", + "markdown": "No ([#110394](https://github.com/kubernetes/kubernetes/pull/110394), [@Abirdcfly](https://github.com/Abirdcfly)) [SIG CLI]", + "author": "Abirdcfly", + "author_url": "https://github.com/Abirdcfly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110394", + "pr_number": 110394, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "do_not_publish": true + }, + "110405": { + "commit": "cd4b8ed07036a08e04ee91a1354643cead321364", + "text": "Kubeadm: enhanced the \"patches\" functionality to be able to patch kubelet config files containing `v1beta1.KubeletConfiguration`. The new patch target is called `kubeletconfiguration` (e.g. patch file `kubeletconfiguration+json.json`).This makes it possible to apply node specific KubeletConfiguration options during `init`, `join` and `upgrade`, while the main `KubeletConfiguration` that is passed to `init` as part of the `--config` file can still act as the global stored in the cluster `KubeletConfiguration`.", + "markdown": "Kubeadm: enhanced the \"patches\" functionality to be able to patch kubelet config files containing `v1beta1.KubeletConfiguration`. The new patch target is called `kubeletconfiguration` (e.g. patch file `kubeletconfiguration+json.json`).This makes it possible to apply node specific KubeletConfiguration options during `init`, `join` and `upgrade`, while the main `KubeletConfiguration` that is passed to `init` as part of the `--config` file can still act as the global stored in the cluster `KubeletConfiguration`. ([#110405](https://github.com/kubernetes/kubernetes/pull/110405), [@neolit123](https://github.com/neolit123))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1739", + "type": "KEP" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110405", + "pr_number": 110405, + "areas": [ + "test", + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle", + "testing" + ], + "feature": true, + "duplicate": true + }, + "110408": { + "commit": "bb7b0b6a91e9f365025d496cb267817e777c872b", + "text": "Fix printing resources with int64 fields", + "markdown": "Fix printing resources with int64 fields ([#110408](https://github.com/kubernetes/kubernetes/pull/110408), [@tkashem](https://github.com/tkashem)) [SIG API Machinery]", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110408", + "pr_number": 110408, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "110410": { + "commit": "18b5efceda2643b7175fbf712e8978d382077f9b", + "text": "Feature gate `CSIMigration` was locked to enabled. `CSIMigration` is GA now. The feature gate will be removed in `v1.27`.", + "markdown": "Feature gate `CSIMigration` was locked to enabled. `CSIMigration` is GA now. The feature gate will be removed in `v1.27`. ([#110410](https://github.com/kubernetes/kubernetes/pull/110410), [@Jiawei0227](https://github.com/Jiawei0227))", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110410", + "pr_number": 110410, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "110411": { + "commit": "4df3f2b9f090594c3355477cda8787e5357e2b67", + "text": "Promoted the `CSIMigrationPortworx` feature gate to Beta.", + "markdown": "Promoted the `CSIMigrationPortworx` feature gate to Beta. ([#110411](https://github.com/kubernetes/kubernetes/pull/110411), [@trierra](https://github.com/trierra))", + "documentation": [ + { + "description": "[KEP]: [", + "url": "https://github.com/kubernetes/enhancements/issues/2589]", + "type": "KEP" + } + ], + "author": "trierra", + "author_url": "https://github.com/trierra", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110411", + "pr_number": 110411, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true + }, + "110419": { + "commit": "163aab43d7d1a279dfa4a261202a8f424933e7dd", + "text": "Graduated `ServiceIPStaticSubrange` feature to Beta (disabled by default).", + "markdown": "Graduated `ServiceIPStaticSubrange` feature to Beta (disabled by default). ([#110419](https://github.com/kubernetes/kubernetes/pull/110419), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110419", + "pr_number": 110419, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "110421": { + "commit": "81e6625c88b8c04aebff35ae9ffb9a90fc5ef232", + "text": "Kubernetes is now built with Golang 1.18.3", + "markdown": "Kubernetes is now built with Golang 1.18.3 ([#110421](https://github.com/kubernetes/kubernetes/pull/110421), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110421", + "pr_number": 110421, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "110425": { + "commit": "1d811065345bfe9f3be7f6757a9938c1760180c7", + "text": "Client-go: fixed an error in the fake client when creating API requests are submitted to subresources like `pods/eviction`.", + "markdown": "Client-go: fixed an error in the fake client when creating API requests are submitted to subresources like `pods/eviction`. ([#110425](https://github.com/kubernetes/kubernetes/pull/110425), [@LY-today](https://github.com/LY-today))", + "author": "LY-today", + "author_url": "https://github.com/LY-today", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110425", + "pr_number": 110425, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "110459": { + "commit": "4b024fc4eeb4a3eeb831e7fddec52b83d0b072df", + "text": "The `PodSecurity` admission plugin has graduated to GA and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1`.", + "markdown": "The `PodSecurity` admission plugin has graduated to GA and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1`. ([#110459](https://github.com/kubernetes/kubernetes/pull/110459), [@wangyysde](https://github.com/wangyysde))", + "documentation": [ + { + "description": "[KEP]: [", + "url": "https://github.com/kubernetes/enhancements/pull/3310](https://github.com/kubernetes/enhancements/pull/3310)", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/security/pod-security-admission/", + "type": "official" + } + ], + "author": "wangyysde", + "author_url": "https://github.com/wangyysde", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110459", + "pr_number": 110459, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "110488": { + "commit": "7c127b33dafc530f7ca0c165ddb47db86eb45880", + "text": "kube-up now includes CoreDNS version v1.9.3.", + "markdown": "Kube-up now includes CoreDNS version v1.9.3. ([#110488](https://github.com/kubernetes/kubernetes/pull/110488), [@mzaian](https://github.com/mzaian))", + "author": "mzaian", + "author_url": "https://github.com/mzaian", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110488", + "pr_number": 110488, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "110489": { + "commit": "f15b0d1bd7493dfcc109fd064e952899b94a2bb1", + "text": "kubeadm: Update CoreDNS to v1.9.3.", + "markdown": "Kubeadm: Update CoreDNS to v1.9.3. ([#110489](https://github.com/kubernetes/kubernetes/pull/110489), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110489", + "pr_number": 110489, + "areas": [ + "kubeadm", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "110491": { + "commit": "5f40fb05cbeed2f45949c2dd19c6003f8ef79925", + "text": "Lock CSIMigrationAzureDisk feature gate to default.", + "markdown": "Lock CSIMigrationAzureDisk feature gate to default. ([#110491](https://github.com/kubernetes/kubernetes/pull/110491), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110491", + "pr_number": 110491, + "areas": [ + "provider/azure" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "110495": { + "commit": "a0e702763e01d246ce13a5d7608407204094748a", + "text": "Changed ownership semantics of PersistentVolume's spec.claimRef from `atomic` to `granular`.", + "markdown": "Changed ownership semantics of PersistentVolume's spec.claimRef from `atomic` to `granular`. ([#110495](https://github.com/kubernetes/kubernetes/pull/110495), [@alexzielenski](https://github.com/alexzielenski))", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110495", + "pr_number": 110495, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug", + "api-change", + "regression" + ], + "sigs": [ + "api-machinery", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "110496": { + "commit": "272386c9b66c52cc150c33063686993f92d8bd0c", + "text": "Fixed error \"dbus: connection closed by user\" after dbus daemon restarts.", + "markdown": "Fixed error \"dbus: connection closed by user\" after dbus daemon restarts. ([#110496](https://github.com/kubernetes/kubernetes/pull/110496), [@kolyshkin](https://github.com/kolyshkin))", + "author": "kolyshkin", + "author_url": "https://github.com/kolyshkin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110496", + "pr_number": 110496, + "areas": [ + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "110506": { + "commit": "4e17f88b7e394b74dbfddf7e930ad3a4065307cf", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#110506](https://github.com/kubernetes/kubernetes/pull/110506), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Node]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110506", + "pr_number": 110506, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "110523": { + "commit": "f92152da72bf2de312a54c77ef234e94dabf61c8", + "text": "Fixed image pull failure when `IMDS` is unavailable in kubelet startup.", + "markdown": "Fixed image pull failure when `IMDS` is unavailable in kubelet startup. ([#110523](https://github.com/kubernetes/kubernetes/pull/110523), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110523", + "pr_number": 110523, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "110534": { + "commit": "442548a0648165570449955d719147148a6840c3", + "text": "Kube-Scheduler ComponentConfig is graduated to GA, `kubescheduler.config.k8s.io/v1` is available now. \nPlugin `SelectorSpread` is removed in v1.", + "markdown": "Kube-Scheduler ComponentConfig is graduated to GA, `kubescheduler.config.k8s.io/v1` is available now. \n Plugin `SelectorSpread` is removed in v1. ([#110534](https://github.com/kubernetes/kubernetes/pull/110534), [@kerthcet](https://github.com/kerthcet))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/785", + "type": "KEP" + } + ], + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110534", + "pr_number": 110534, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "110538": { + "commit": "15beb41423dce376f96b3fc8bf87d37f0f64f0f8", + "text": "Optimization of kubectl Chinese translation", + "markdown": "Optimization of kubectl Chinese translation ([#110538](https://github.com/kubernetes/kubernetes/pull/110538), [@hwdef](https://github.com/hwdef)) [SIG CLI]", + "author": "hwdef", + "author_url": "https://github.com/hwdef", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110538", + "pr_number": 110538, + "areas": [ + "kubectl" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cli" + ] + }, + "110553": { + "commit": "4a542609aa0f087aec0d575c6b2845d38335d453", + "text": "Kubeadm: Added support for additional authentication strategies in `kubeadm join` with discovery/kubeconfig file: client-go authentication plugins (`exec`), `tokenFile`, and `authProvider.`", + "markdown": "Kubeadm: Added support for additional authentication strategies in `kubeadm join` with discovery/kubeconfig file: client-go authentication plugins (`exec`), `tokenFile`, and `authProvider.` ([#110553](https://github.com/kubernetes/kubernetes/pull/110553), [@tallaxes](https://github.com/tallaxes))", + "author": "tallaxes", + "author_url": "https://github.com/tallaxes", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110553", + "pr_number": 110553, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "110558": { + "commit": "700fea3d4264ff435e6bfc6147ee0f8d4b8d7d41", + "text": "Updated debian-base, debian-iptables, and setcap images:\n- debian-base:bullseye-v1.3.0\n- debian-iptables:bullseye-v1.4.0\n- setcap:bullseye-v1.3.0", + "markdown": "Updated debian-base, debian-iptables, and setcap images:\n - debian-base:bullseye-v1.3.0\n - debian-iptables:bullseye-v1.4.0\n - setcap:bullseye-v1.3.0 ([#110558](https://github.com/kubernetes/kubernetes/pull/110558), [@wespanther](https://github.com/wespanther))", + "author": "wespanther", + "author_url": "https://github.com/wespanther", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110558", + "pr_number": 110558, + "areas": [ + "test", + "security", + "release-eng", + "conformance", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "110564": { + "commit": "00ea892a0f1ab24e255524469648258c87775983", + "text": "Make PodSpec.Ports' description clearer on how this information is only informational and how it can be incorrect.", + "markdown": "Make PodSpec.Ports' description clearer on how this information is only informational and how it can be incorrect. ([#110564](https://github.com/kubernetes/kubernetes/pull/110564), [@j4m3s-s](https://github.com/j4m3s-s)) [SIG API Machinery, Network and Node]", + "author": "j4m3s-s", + "author_url": "https://github.com/j4m3s-s", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110564", + "pr_number": 110564, + "areas": [ + "code-generation" + ], + "kinds": [ + "documentation", + "api-change" + ], + "sigs": [ + "network", + "node", + "api-machinery" + ], + "duplicate": true, + "duplicate_kind": true + }, + "110593": { + "commit": "e9702cfc1bce5d92fae707de3c5c57b8e952d53c", + "text": "Kubeadm: the preferred pod anti-affinity for CoreDNS is now enabled by default.", + "markdown": "Kubeadm: the preferred pod anti-affinity for CoreDNS is now enabled by default. ([#110593](https://github.com/kubernetes/kubernetes/pull/110593), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110593", + "pr_number": 110593, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "110639": { + "commit": "ae3537120badd8989a15798c7a65358f93ae3f56", + "text": "EndpointSlices with Pod referencing Nodes that don't exist couldn't be created or updated. The behavior on the EndpointSlice controller has been modified to update the EndpointSlice without the Pods that reference non-existing Nodes and keep retrying until all Pods reference existing Nodes. However, if `service.Spec.PublishNotReadyAddresses` is set, all the Pods are published without retrying. Fixed EndpointSlices metrics to reflect correctly the number of desired EndpointSlices when no endpoints are present.", + "markdown": "EndpointSlices with Pod referencing Nodes that don't exist couldn't be created or updated. The behavior on the EndpointSlice controller has been modified to update the EndpointSlice without the Pods that reference non-existing Nodes and keep retrying until all Pods reference existing Nodes. However, if `service.Spec.PublishNotReadyAddresses` is set, all the Pods are published without retrying. Fixed EndpointSlices metrics to reflect correctly the number of desired EndpointSlices when no endpoints are present. ([#110639](https://github.com/kubernetes/kubernetes/pull/110639), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110639", + "pr_number": 110639, + "kinds": [ + "bug", + "documentation", + "cleanup" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "110648": { + "commit": "e6a60c3b4d941da805d7e5548ffd462e5babc74d", + "text": "Fixed s.RuntimeCgroups error condition and Fixed possible wrong log print.", + "markdown": "Fixed s.RuntimeCgroups error condition and Fixed possible wrong log print. ([#110648](https://github.com/kubernetes/kubernetes/pull/110648), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110648", + "pr_number": 110648, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "110652": { + "commit": "dee37aacc1e2e98b25a2cd39dbbabb1c99d442f3", + "text": "Fixed a bug in `kubectl` that caused the wrong result length when using `--chunk-size` and `--selector` together.", + "markdown": "Fixed a bug in `kubectl` that caused the wrong result length when using `--chunk-size` and `--selector` together. ([#110652](https://github.com/kubernetes/kubernetes/pull/110652), [@Abirdcfly](https://github.com/Abirdcfly))", + "author": "Abirdcfly", + "author_url": "https://github.com/Abirdcfly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110652", + "pr_number": 110652, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "110656": { + "commit": "34b412535129447f3ce1478fc9334aa7f0a4ee5d", + "text": "Kubeadm: Fixed duplicate `unix://` prefix in node annotation.", + "markdown": "Kubeadm: Fixed duplicate `unix://` prefix in node annotation. ([#110656](https://github.com/kubernetes/kubernetes/pull/110656), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110656", + "pr_number": 110656, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "110663": { + "commit": "b52705ae3edd5fa3ed5af472ab223c0a31111314", + "text": "For scheduler plugin developers: the scheduler framework's shared PodInformer is now initialized with empty indexers. This enables scheduler plugins to add their extra indexers. Note that only non-conflict indexers are allowed to be added.", + "markdown": "For scheduler plugin developers: the scheduler framework's shared PodInformer is now initialized with empty indexers. This enables scheduler plugins to add their extra indexers. Note that only non-conflict indexers are allowed to be added. ([#110663](https://github.com/kubernetes/kubernetes/pull/110663), [@fromanirh](https://github.com/fromanirh)) [SIG Scheduling]", + "author": "fromanirh", + "author_url": "https://github.com/fromanirh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110663", + "pr_number": 110663, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "110668": { + "commit": "d9e7f25a804fcc3a75b0d65a4e7af2fae1ab4999", + "text": "Removed unused flags from `kubectl run` command.", + "markdown": "Removed unused flags from `kubectl run` command. ([#110668](https://github.com/kubernetes/kubernetes/pull/110668), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110668", + "pr_number": 110668, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true + }, + "110670": { + "commit": "9ad4c5c0a09489976f0e3cba792705016555fbbc", + "text": "Unmounted volumes correctly for reconstructed volumes even if mount operation fails after kubelet restart.", + "markdown": "Unmounted volumes correctly for reconstructed volumes even if mount operation fails after kubelet restart. ([#110670](https://github.com/kubernetes/kubernetes/pull/110670), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110670", + "pr_number": 110670, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true + }, + "110688": { + "commit": "c396744a6a3aef38a16a3a1c3d9dac9f6dc93a9e", + "text": "Fixed mounting of iSCSI volumes over IPv6 networks.", + "markdown": "Fixed mounting of iSCSI volumes over IPv6 networks. ([#110688](https://github.com/kubernetes/kubernetes/pull/110688), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110688", + "pr_number": 110688, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "110691": { + "commit": "fe1d3fe6376f580368dce57d062cddb91276ffe2", + "text": "Run kubelet, when there is an error exit, print the error log.", + "markdown": "Run kubelet, when there is an error exit, print the error log. ([#110691](https://github.com/kubernetes/kubernetes/pull/110691), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110691", + "pr_number": 110691, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "110703": { + "commit": "666ee0886f44138a461f19ebe398ae21c7fea11f", + "text": "The beta feature `ServiceIPStaticSubrange` is now enabled by default.", + "markdown": "The beta feature `ServiceIPStaticSubrange` is now enabled by default. ([#110703](https://github.com/kubernetes/kubernetes/pull/110703), [@aojea](https://github.com/aojea))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/3070-reserved-service-ip-range", + "type": "KEP" + }, + { + "description": "[Blog]", + "url": "https://kubernetes.io/blog/2022/05/23/service-ip-dynamic-and-static-allocation/", + "type": "external" + } + ], + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110703", + "pr_number": 110703, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "110706": { + "commit": "5b92e46b2238b4d84358451013e634361084ff7d", + "text": "[aws] Fixed a bug which reduces the number of unnecessary calls to STS in the event of assume role failures in the legacy cloud provider", + "markdown": "[aws] Fixed a bug which reduces the number of unnecessary calls to STS in the event of assume role failures in the legacy cloud provider ([#110706](https://github.com/kubernetes/kubernetes/pull/110706), [@prateekgogia](https://github.com/prateekgogia)) [SIG Cloud Provider]", + "author": "prateekgogia", + "author_url": "https://github.com/prateekgogia", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110706", + "pr_number": 110706, + "areas": [ + "cloudprovider", + "provider/aws" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "110709": { + "commit": "07dfdf085956c19825364b5d6bb9637183f96ce4", + "text": "The commands `kubeadm certs renew` and `kubeadm certs check-expiration` now honor the `cert-dir` flag on a running Kubernetes cluster.", + "markdown": "The commands `kubeadm certs renew` and `kubeadm certs check-expiration` now honor the `cert-dir` flag on a running Kubernetes cluster. ([#110709](https://github.com/kubernetes/kubernetes/pull/110709), [@chendave](https://github.com/chendave))", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110709", + "pr_number": 110709, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "110719": { + "commit": "7a9268d83a7b3cb7d1aaa68a6ba06a38ea33e44d", + "text": "FibreChannel volume plugin may match the wrong device and wrong associated devicemapper parent. This may cause a disater that pods attach wrong disks.", + "markdown": "FibreChannel volume plugin may match the wrong device and wrong associated devicemapper parent. This may cause a disater that pods attach wrong disks. ([#110719](https://github.com/kubernetes/kubernetes/pull/110719), [@xakdwch](https://github.com/xakdwch))", + "author": "xakdwch", + "author_url": "https://github.com/xakdwch", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110719", + "pr_number": 110719, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "110721": { + "commit": "aefb71d7ef964aa3d8044b5dcc789e3faa9972ff", + "text": "Volumes are no longer detached from healthy nodes after 6 minutes timeout. 6 minute force-detach timeout is used only for unhealthy nodes (`node.status.conditions[\"Ready\"]!= true`).", + "markdown": "Volumes are no longer detached from healthy nodes after 6 minutes timeout. 6 minute force-detach timeout is used only for unhealthy nodes (`node.status.conditions[\"Ready\"]!= true`). ([#110721](https://github.com/kubernetes/kubernetes/pull/110721), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110721", + "pr_number": 110721, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "110728": { + "commit": "c6b0652b89ad64e8d86d47fc2e4089e281732ede", + "text": "Kubelet: Silenced flag output on errors.", + "markdown": "Kubelet: Silenced flag output on errors. ([#110728](https://github.com/kubernetes/kubernetes/pull/110728), [@howardjohn](https://github.com/howardjohn))", + "author": "howardjohn", + "author_url": "https://github.com/howardjohn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110728", + "pr_number": 110728, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "110744": { + "commit": "8b0221708cc8844f563f2893d5ad07f767b4bde6", + "text": "kubeadm: make sure the etcd static pod startup probe uses /health?serializable=false while the liveness probe uses /health?serializable=true\u0026exclude=NOSPACE. The NOSPACE exclusion would allow administrators to address space issues one member at a time.", + "markdown": "Kubeadm: make sure the etcd static pod startup probe uses /health?serializable=false while the liveness probe uses /health?serializable=true\u0026exclude=NOSPACE. The NOSPACE exclusion would allow administrators to address space issues one member at a time. ([#110744](https://github.com/kubernetes/kubernetes/pull/110744), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110744", + "pr_number": 110744, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "110748": { + "commit": "d6547d26eb84f3ad077a9bbeaae8e709504676bb", + "text": "Removed branch `release-1.20` from prom bot due to EOL.", + "markdown": "Removed branch `release-1.20` from prom bot due to EOL. ([#110748](https://github.com/kubernetes/kubernetes/pull/110748), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110748", + "pr_number": 110748, + "areas": [ + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "release" + ] + }, + "110756": { + "commit": "42fec42586c4411f649bf766fe65059602ee6499", + "text": "NONE", + "markdown": "NONE ([#110756](https://github.com/kubernetes/kubernetes/pull/110756), [@lokichoggio](https://github.com/lokichoggio)) [SIG Network]", + "author": "lokichoggio", + "author_url": "https://github.com/lokichoggio", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110756", + "pr_number": 110756, + "kinds": [ + "documentation", + "cleanup" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "110762": { + "commit": "8af2c502019a954be652232955319030a75e2aba", + "text": "kube-proxy: The \"userspace\" proxy-mode is deprecated on Linux and Windows, despite being the default on Windows. As of v1.26, the default mode for Windows will change to 'kernelspace'.", + "markdown": "Kube-proxy: The \"userspace\" proxy-mode is deprecated on Linux and Windows, despite being the default on Windows. As of v1.26, the default mode for Windows will change to 'kernelspace'. ([#110762](https://github.com/kubernetes/kubernetes/pull/110762), [@pandaamanda](https://github.com/pandaamanda)) [SIG Network]", + "author": "pandaamanda", + "author_url": "https://github.com/pandaamanda", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110762", + "pr_number": 110762, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "110764": { + "commit": "411ecc3b6296d095050ed641c6880d78bbcedc39", + "text": "Improved `kubectl run` and `kubectl debug` error messages upon attaching failures.", + "markdown": "Improved `kubectl run` and `kubectl debug` error messages upon attaching failures. ([#110764](https://github.com/kubernetes/kubernetes/pull/110764), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110764", + "pr_number": 110764, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "110791": { + "commit": "fa16bf8e121e9a9ce0a8b92d96a39c986152c484", + "text": "kubeadm: a bug was fixed due to which configurable `KubernetesVersion` was not being respected during kubeadm join.", + "markdown": "Kubeadm: a bug was fixed due to which configurable `KubernetesVersion` was not being respected during kubeadm join. ([#110791](https://github.com/kubernetes/kubernetes/pull/110791), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110791", + "pr_number": 110791, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "110805": { + "commit": "2b657a0f3b3effdc5ec535830d61737d9a10b728", + "text": "Graduated SeccompDefault to `beta`. The Kubelet feature gate is now enabled by default and the configuration/CLI flag still defaults to `false`.", + "markdown": "Graduated SeccompDefault to `beta`. The Kubelet feature gate is now enabled by default and the configuration/CLI flag still defaults to `false`. ([#110805](https://github.com/kubernetes/kubernetes/pull/110805), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/2413", + "type": "KEP" + }, + { + "description": "Docs", + "url": "https://kubernetes.io/docs/tutorials/security/seccomp/#enable-the-use-of-runtimedefault-as-the-default-seccomp-profile-for-all-workloads", + "type": "official" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110805", + "pr_number": 110805, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "110813": { + "commit": "ff20035ef8d305e5bec3866670b515d0c5c6a1c0", + "text": "If the parent directory of the file specified in the `--audit-log-path` argument does not exist, Kubernetes now creates it.", + "markdown": "If the parent directory of the file specified in the `--audit-log-path` argument does not exist, Kubernetes now creates it. ([#110813](https://github.com/kubernetes/kubernetes/pull/110813), [@vpnachev](https://github.com/vpnachev)) [SIG Auth]", + "author": "vpnachev", + "author_url": "https://github.com/vpnachev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110813", + "pr_number": 110813, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "auth" + ] + }, + "110837": { + "commit": "dafa55be106730eaacb740e20b999b84848c6ac5", + "text": "kubeadm: support retry mechanism for removing container in reset phase", + "markdown": "Kubeadm: support retry mechanism for removing container in reset phase ([#110837](https://github.com/kubernetes/kubernetes/pull/110837), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110837", + "pr_number": 110837, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "110851": { + "commit": "8cecf183a659784b240d430e22b828b8e32c1c37", + "text": "Use checksums instead of fsyncs to ensure discovery cache integrity", + "markdown": "Use checksums instead of fsyncs to ensure discovery cache integrity ([#110851](https://github.com/kubernetes/kubernetes/pull/110851), [@negz](https://github.com/negz)) [SIG API Machinery]", + "author": "negz", + "author_url": "https://github.com/negz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110851", + "pr_number": 110851, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "110868": { + "commit": "bd2776e0c930ab149d8c0656e83f979fb017ce0a", + "text": "The `endPort` field in Network Policy is now promoted to GA\n\nNetwork Policy providers that support `endPort` field now can use it to specify a range of ports to apply a Network Policy.\n\nPreviously, each Network Policy could only target a single port.\n\nPlease be aware that `endPort` field MUST BE SUPPORTED by the Network Policy provider. In case your provider does not support `endPort` and this field is specified in a Network Policy, the Network Policy will be created covering only the port field (single port).", + "markdown": "The `endPort` field in Network Policy is now promoted to GA\n \n Network Policy providers that support `endPort` field now can use it to specify a range of ports to apply a Network Policy.\n \n Previously, each Network Policy could only target a single port.\n \n Please be aware that `endPort` field MUST BE SUPPORTED by the Network Policy provider. In case your provider does not support `endPort` and this field is specified in a Network Policy, the Network Policy will be created covering only the port field (single port). ([#110868](https://github.com/kubernetes/kubernetes/pull/110868), [@rikatz](https://github.com/rikatz))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2079-network-policy-port-range", + "type": "KEP" + } + ], + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110868", + "pr_number": 110868, + "areas": [ + "test", + "code-generation", + "network-policy" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "110880": { + "commit": "63822660f0f214c2512aa3613c17d3cd31500a26", + "text": "When metrics are counted, discard the wrong container StartTime metrics", + "markdown": "When metrics are counted, discard the wrong container StartTime metrics ([#110880](https://github.com/kubernetes/kubernetes/pull/110880), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Instrumentation and Node]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110880", + "pr_number": 110880, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "instrumentation" + ], + "duplicate": true + }, + "110896": { + "commit": "e5f4f8d71b4847711150789289edcd1d7a04fb45", + "text": "Promote StatefulSet minReadySeconds to GA. This means `--feature-gates=StatefulSetMinReadySeconds=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation", + "markdown": "Promote StatefulSet minReadySeconds to GA. This means `--feature-gates=StatefulSetMinReadySeconds=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation ([#110896](https://github.com/kubernetes/kubernetes/pull/110896), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG API Machinery, Apps and Testing]", + "documentation": [ + { + "description": "[KEP]: \u003clink\u003e", + "url": "https://github.com/kubernetes/enhancements/pull/3354", + "type": "KEP" + }, + { + "description": "[Usage]: Promote StatefulSet minReadySeconds to GA. This means `--feature-gates=StatefulSetMinReadySeconds=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at", + "url": "https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation", + "type": "official" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#minimum-ready-seconds", + "type": "official" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110896", + "pr_number": 110896, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "duplicate": true + }, + "110914": { + "commit": "bbd2f8fa09d4b759caf4ccd860bdbe7077a4ae73", + "text": "`pod.Spec.RuntimeClassName` field is now available in kubectl describe command.", + "markdown": "`pod.Spec.RuntimeClassName` field is now available in kubectl describe command. ([#110914](https://github.com/kubernetes/kubernetes/pull/110914), [@yeahdongcn](https://github.com/yeahdongcn))", + "author": "yeahdongcn", + "author_url": "https://github.com/yeahdongcn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110914", + "pr_number": 110914, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "110940": { + "commit": "dd54a044eae232208ce9f3f0a45bf8872ac9f2e6", + "text": "The kubelet no longer supports collecting accelerator metrics through cAdvisor. The feature gate `DisableAcceleratorUsageMetrics` is now GA and cannot be disabled.", + "markdown": "The kubelet no longer supports collecting accelerator metrics through cAdvisor. The feature gate `DisableAcceleratorUsageMetrics` is now GA and cannot be disabled. ([#110940](https://github.com/kubernetes/kubernetes/pull/110940), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110940", + "pr_number": 110940, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "110948": { + "commit": "6b6558a4639b556f2723dea8df62bcaa7f9846ed", + "text": "` JobTrackingWithFinalizers` enabled by default. This feature allows to keep track of the Job progress without relying on Pods staying in the apiserver.\n", + "markdown": "` JobTrackingWithFinalizers` enabled by default. This feature allows to keep track of the Job progress without relying on Pods staying in the apiserver.\n ([#110948](https://github.com/kubernetes/kubernetes/pull/110948), [@alculquicondor](https://github.com/alculquicondor))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://git.k8s.io/enhancements/keps/sig-apps/2307-job-tracking-without-lingering-pods", + "type": "external" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#job-tracking-with-finalizers", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110948", + "pr_number": 110948, + "areas": [ + "batch" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "110950": { + "commit": "ce583e0338a335aa4ae47ac89eefe159e75a1019", + "text": "Do not report terminated container metrics", + "markdown": "Do not report terminated container metrics ([#110950](https://github.com/kubernetes/kubernetes/pull/110950), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Node]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110950", + "pr_number": 110950, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "110957": { + "commit": "7d72ccf9a80e799a09dbcd5dab39dd00c9840aad", + "text": "Windows winkernel kube-proxy no longer supports Windows HNS v1 APIs.", + "markdown": "Windows winkernel kube-proxy no longer supports Windows HNS v1 APIs. ([#110957](https://github.com/kubernetes/kubernetes/pull/110957), [@papagalu](https://github.com/papagalu))", + "author": "papagalu", + "author_url": "https://github.com/papagalu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110957", + "pr_number": 110957, + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true, + "duplicate_kind": true + }, + "110959": { + "commit": "fa202f14837bf398db53780efbfa6579c84ab2e0", + "text": "Introduction of the `DisruptionTarget` pod condition type. Its `reason` field indicates the reason for pod termination:\n- PreemptionByKubeScheduler (Pod preempted by kube-scheduler)\n- DeletionByTaintManager (Pod deleted by taint manager due to NoExecute taint)\n- EvictionByEvictionAPI (Pod evicted by Eviction API)\n- DeletionByPodGC (an orphaned Pod deleted by PodGC)", + "markdown": "Introduction of the `DisruptionTarget` pod condition type. Its `reason` field indicates the reason for pod termination:\n - PreemptionByKubeScheduler (Pod preempted by kube-scheduler)\n - DeletionByTaintManager (Pod deleted by taint manager due to NoExecute taint)\n - EvictionByEvictionAPI (Pod evicted by Eviction API)\n - DeletionByPodGC (an orphaned Pod deleted by PodGC) ([#110959](https://github.com/kubernetes/kubernetes/pull/110959), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110959", + "pr_number": 110959, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "node", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "110974": { + "commit": "59842a5f0afa653a3137777b60a127b32b737056", + "text": "In the event that more than one IngressClass is designated \"default\", the DefaultIngressClass admission controller will choose one rather than fail.", + "markdown": "In the event that more than one IngressClass is designated \"default\", the DefaultIngressClass admission controller will choose one rather than fail. ([#110974](https://github.com/kubernetes/kubernetes/pull/110974), [@kidddddddddddddddddddddd](https://github.com/kidddddddddddddddddddddd)) [SIG Network]", + "author": "kidddddddddddddddddddddd", + "author_url": "https://github.com/kidddddddddddddddddddddd", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110974", + "pr_number": 110974, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "111009": { + "commit": "73b3be3082ab51c3f4b621e8009aa146e518a4b5", + "text": "UserName check for 'ContainerAdministrator' is now case-insensitive if runAsNonRoot is set to true on Windows.", + "markdown": "UserName check for 'ContainerAdministrator' is now case-insensitive if runAsNonRoot is set to true on Windows. ([#111009](https://github.com/kubernetes/kubernetes/pull/111009), [@marosset](https://github.com/marosset))", + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111009", + "pr_number": 111009, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows", + "testing" + ], + "duplicate": true + }, + "111017": { + "commit": "44e403f5bbc71eb5f577da6ac8a2e29875ac1d28", + "text": "kubeadm: respect user specified image repository when using Kubernetes ci version", + "markdown": "Kubeadm: respect user specified image repository when using Kubernetes ci version ([#111017](https://github.com/kubernetes/kubernetes/pull/111017), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111017", + "pr_number": 111017, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "111026": { + "commit": "eba254b4ee0525a365c44493490c79588b68e802", + "text": "A bug was fixed where a job sync was not retried in case of a transient ResourceQuota conflict.", + "markdown": "A bug was fixed where a job sync was not retried in case of a transient ResourceQuota conflict. ([#111026](https://github.com/kubernetes/kubernetes/pull/111026), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111026", + "pr_number": 111026, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "111033": { + "commit": "4995562a772e89ff54ccffe63d9f02c8be41a873", + "text": "Metric `running_managed_controllers` is enabled for Cloud Node Lifecycle controller.", + "markdown": "Metric `running_managed_controllers` is enabled for Cloud Node Lifecycle controller. ([#111033](https://github.com/kubernetes/kubernetes/pull/111033), [@jprzychodzen](https://github.com/jprzychodzen))", + "author": "jprzychodzen", + "author_url": "https://github.com/jprzychodzen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111033", + "pr_number": 111033, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "apps", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "111048": { + "commit": "b0d57695353c88c57f65d981ea7f0b2059002183", + "text": "bug fix in test/e2e/framework Framework.RecordFlakeIfError", + "markdown": "Bug fix in test/e2e/framework Framework.RecordFlakeIfError ([#111048](https://github.com/kubernetes/kubernetes/pull/111048), [@alingse](https://github.com/alingse)) [SIG Testing]", + "author": "alingse", + "author_url": "https://github.com/alingse", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111048", + "pr_number": 111048, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "testing" + ] + }, + "111060": { + "commit": "57e4c38ed6c2c93237e4ed7920cb76cd882c8a47", + "text": "For Linux, `kube-proxy` uses a new “distroless” container image, instead of an image based on Debian.", + "markdown": "For Linux, `kube-proxy` uses a new “distroless” container image, instead of an image based on Debian. ([#111060](https://github.com/kubernetes/kubernetes/pull/111060), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111060", + "pr_number": 111060, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "testing", + "release" + ], + "duplicate": true + }, + "111061": { + "commit": "cb41d5002ccde5f457989f157dd9e047e5bacdb6", + "text": "Made usage of key encipherment optional in API validation.", + "markdown": "Made usage of key encipherment optional in API validation. ([#111061](https://github.com/kubernetes/kubernetes/pull/111061), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111061", + "pr_number": 111061, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "auth", + "apps" + ], + "duplicate": true + }, + "111065": { + "commit": "5d7fdf1f12a2040f3f333b0e63250781a3094af1", + "text": "ginkgo.Measure has been deprecated in Ginkgo V2, switch to use gomega/gmeasure instead", + "markdown": "Ginkgo.Measure has been deprecated in Ginkgo V2, switch to use gomega/gmeasure instead ([#111065](https://github.com/kubernetes/kubernetes/pull/111065), [@chendave](https://github.com/chendave)) [SIG Autoscaling and Testing]", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111065", + "pr_number": 111065, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "autoscaling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "111090": { + "commit": "4b6134b6dc497f48916d4b1667d4c9a461aaa36a", + "text": "Added alpha support for user namespaces in pods phase 1 (KEP 127, feature gate: UserNamespacesStatelessPodsSupport)", + "markdown": "Added alpha support for user namespaces in pods phase 1 (KEP 127, feature gate: UserNamespacesStatelessPodsSupport) ([#111090](https://github.com/kubernetes/kubernetes/pull/111090), [@rata](https://github.com/rata))", + "documentation": [ + { + "description": "-[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/127-user-namespaces#design-details", + "type": "KEP" + } + ], + "author": "rata", + "author_url": "https://github.com/rata", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111090", + "pr_number": 111090, + "areas": [ + "test", + "kubelet", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "storage", + "node", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "111113": { + "commit": "eefcf6aa801c5db48b564d0464470d623b8bfb79", + "text": "Introduced support for handling pod failures with respect to the configured pod failure policy rules.", + "markdown": "Introduced support for handling pod failures with respect to the configured pod failure policy rules. ([#111113](https://github.com/kubernetes/kubernetes/pull/111113), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111113", + "pr_number": 111113, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "111119": { + "commit": "cdc60112a676010dbc0ba5650732386e2dedebd0", + "text": "Encrypted data with DEK using AES-GCM instead of AES-CBC for kms data encryption. No user action required. Reads with AES-GCM and AES-CBC will continue to be allowed.", + "markdown": "Encrypted data with DEK using AES-GCM instead of AES-CBC for kms data encryption. No user action required. Reads with AES-GCM and AES-CBC will continue to be allowed. ([#111119](https://github.com/kubernetes/kubernetes/pull/111119), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "url": "https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/", + "type": "official" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111119", + "pr_number": 111119, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "111126": { + "commit": "0a2ae7ab3a0083122be4ad0fc6aca9a702279e90", + "text": "Added KMS v2alpha1 support.", + "markdown": "Added KMS v2alpha1 support. ([#111126](https://github.com/kubernetes/kubernetes/pull/111126), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111126", + "pr_number": 111126, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "111141": { + "commit": "f2395bbd4af07ca23d0b33f6b70fe04f52c2c129", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#111141](https://github.com/kubernetes/kubernetes/pull/111141), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Instrumentation and Node]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111141", + "pr_number": 111141, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "instrumentation" + ], + "duplicate": true, + "do_not_publish": true + }, + "111186": { + "commit": "42786afae01328b9110a0e35c2cd7f31415373ca", + "text": "Fixed the GCE firewall update when the destination IPs are changing so that firewalls reflect the IP updates of the LBs.", + "markdown": "Fixed the GCE firewall update when the destination IPs are changing so that firewalls reflect the IP updates of the LBs. ([#111186](https://github.com/kubernetes/kubernetes/pull/111186), [@sugangli](https://github.com/sugangli))", + "author": "sugangli", + "author_url": "https://github.com/sugangli", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111186", + "pr_number": 111186, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "111192": { + "commit": "9a8b4ab2402655162d1b51dbb7f228c6fe690949", + "text": "Added Service Account field in the output of `kubectl describe pod` command.", + "markdown": "Added Service Account field in the output of `kubectl describe pod` command. ([#111192](https://github.com/kubernetes/kubernetes/pull/111192), [@aufarg](https://github.com/aufarg))", + "author": "aufarg", + "author_url": "https://github.com/aufarg", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111192", + "pr_number": 111192, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "111194": { + "commit": "7156c96e5d8f4fe58a36000ff53af7e21743f49b", + "text": "Promoted DaemonSet MaxSurge to GA. This means `--feature-gates=DaemonSetUpdateSurge=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation .", + "markdown": "Promoted DaemonSet MaxSurge to GA. This means `--feature-gates=DaemonSetUpdateSurge=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation . ([#111194](https://github.com/kubernetes/kubernetes/pull/111194), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1591", + "type": "KEP" + }, + { + "description": "[Usage]: Promote DaemonSet MaxSurge to GA. This means `--feature-gates=DaemonSetUpdateSurge=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at", + "url": "https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation", + "type": "official" + }, + { + "description": "[Other doc]", + "url": "https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/daemon-set-v1/#DaemonSetSpec", + "type": "official" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111194", + "pr_number": 111194, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "duplicate_kind": true + }, + "111206": { + "commit": "2ae27c89baa8caf2ce30d32c1dc79b89b4473a8b", + "text": "scheduler: included supported ScoringStrategyType list in error message for NodeResourcesFit plugin", + "markdown": "Scheduler: included supported ScoringStrategyType list in error message for NodeResourcesFit plugin ([#111206](https://github.com/kubernetes/kubernetes/pull/111206), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111206", + "pr_number": 111206, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true + }, + "111229": { + "commit": "4885f4d75020621e8d77c367fc073fe01a538ec4", + "text": "The Pod `spec.podOS` field is promoted to GA. The `IdentifyPodOS` feature gate unconditionally enabled, and will no longer be accepted as a `--feature-gates` parameter in 1.27.", + "markdown": "The Pod `spec.podOS` field is promoted to GA. The `IdentifyPodOS` feature gate unconditionally enabled, and will no longer be accepted as a `--feature-gates` parameter in 1.27. ([#111229](https://github.com/kubernetes/kubernetes/pull/111229), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-windows/2802-identify-windows-pods-apiserver-admission/README.md", + "type": "KEP" + }, + { + "description": "[Usage]: Promote PodOS field to GA. This means `--feature-gates=IdentifyPodOS=true` is not needed on kube-apiserver binary and they'll be removed soon following the policy at", + "url": "https://kubernetes.io/docs/reference/using-api/deprecation-policy", + "type": "official" + }, + { + "description": "[Other doc]", + "url": "https://kubernetes.io/docs/concepts/windows/user-guide/#taints-and-tolerations", + "type": "official" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111229", + "pr_number": 111229, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "windows" + ], + "duplicate": true + }, + "111254": { + "commit": "3ffdfbe286ebcea5d75617da6accaf67f815e0cf", + "text": "For v1.25, Kubernetes will be using golang 1.19, In this PR the version is updated to 1.19rc2 as GA is not yet available.", + "markdown": "For v1.25, Kubernetes will be using golang 1.19, In this PR the version is updated to 1.19rc2 as GA is not yet available. ([#111254](https://github.com/kubernetes/kubernetes/pull/111254), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111254", + "pr_number": 111254, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "release-eng", + "kubeadm", + "conformance", + "code-generation", + "ipvs", + "e2e-test-framework", + "network-policy" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "network", + "scheduling", + "storage", + "node", + "cluster-lifecycle", + "autoscaling", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "111255": { + "commit": "1fe71e7f1bf6ab8941c410699bedbee8e1baf9ee", + "text": "vSphere releases less than 7.0u2 are not supported for in-tree vSphere volume as of Kubernetes v1.25. Please consider upgrading vSphere (both ESXi and vCenter) to 7.0u2 or above.", + "markdown": "VSphere releases less than 7.0u2 are not supported for in-tree vSphere volume as of Kubernetes v1.25. Please consider upgrading vSphere (both ESXi and vCenter) to 7.0u2 or above. ([#111255](https://github.com/kubernetes/kubernetes/pull/111255), [@divyenpatel](https://github.com/divyenpatel))", + "author": "divyenpatel", + "author_url": "https://github.com/divyenpatel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111255", + "pr_number": 111255, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "documentation", + "cleanup", + "deprecation" + ], + "sigs": [ + "cloud-provider" + ], + "duplicate_kind": true, + "action_required": true + }, + "111258": { + "commit": "64ed9145452d2d1d324d2437566f1ea1ce76f226", + "text": "The `CSIInlineVolume` feature has moved from beta to GA.", + "markdown": "The `CSIInlineVolume` feature has moved from beta to GA. ([#111258](https://github.com/kubernetes/kubernetes/pull/111258), [@dobsonj](https://github.com/dobsonj))", + "author": "dobsonj", + "author_url": "https://github.com/dobsonj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111258", + "pr_number": 111258, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "api-machinery", + "auth", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "111278": { + "commit": "9fb1f67af784c0f6490a1ed35caf70c4368c9846", + "text": "Added a new `align-by-socket` policy option to cpu manager `static` policy. When enabled CPU's to be aligned at socket boundary rather than NUMA boundary.", + "markdown": "Added a new `align-by-socket` policy option to cpu manager `static` policy. When enabled CPU's to be aligned at socket boundary rather than NUMA boundary. ([#111278](https://github.com/kubernetes/kubernetes/pull/111278), [@arpitsardhana](https://github.com/arpitsardhana))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3327-align-by-socket", + "type": "KEP" + } + ], + "author": "arpitsardhana", + "author_url": "https://github.com/arpitsardhana", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111278", + "pr_number": 111278, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "111301": { + "commit": "369a465fae0fb08f6064f59e746beb8d40d9bc16", + "text": "`CSIMigrationGCE` upgraded to GA and locked to true.\n", + "markdown": "`CSIMigrationGCE` upgraded to GA and locked to true.\n ([#111301](https://github.com/kubernetes/kubernetes/pull/111301), [@mattcary](https://github.com/mattcary))", + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111301", + "pr_number": 111301, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "apps" + ], + "feature": true, + "duplicate": true + }, + "111319": { + "commit": "1df7b3bed37ce8ee949df3906a4745db910110a8", + "text": "The `kubectl diff` changed to ignore managed fields by default, and a new --show-managed-fields flag has been added to allow you to include managed fields in the diff.", + "markdown": "The `kubectl diff` changed to ignore managed fields by default, and a new --show-managed-fields flag has been added to allow you to include managed fields in the diff. ([#111319](https://github.com/kubernetes/kubernetes/pull/111319), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111319", + "pr_number": 111319, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "111358": { + "commit": "2e1a4da8df800f3477638c38b24490a61398721f", + "text": "Introduced PodHasNetwork condition for pods.", + "markdown": "Introduced PodHasNetwork condition for pods. ([#111358](https://github.com/kubernetes/kubernetes/pull/111358), [@ddebroy](https://github.com/ddebroy))", + "author": "ddebroy", + "author_url": "https://github.com/ddebroy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111358", + "pr_number": 111358, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "111383": { + "commit": "bc974c8ab99fa53dc1dd0894f400efd76e5f8042", + "text": "kubeadm: enabled the --experimental-watch-progress-notify-interval flag for etcd and set it to 5s. The flag specifies an interval at which etcd sends watch data to the kube-apiserver.", + "markdown": "Kubeadm: enabled the --experimental-watch-progress-notify-interval flag for etcd and set it to 5s. The flag specifies an interval at which etcd sends watch data to the kube-apiserver. ([#111383](https://github.com/kubernetes/kubernetes/pull/111383), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111383", + "pr_number": 111383, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "111399": { + "commit": "610b7839a0bc2f9bafaca92930f8dd740f0ab46c", + "text": "The new flag `etcd-ready-timeout` has been added. It configures a timeout of an additional etcd check performed as part of readyz check.", + "markdown": "The new flag `etcd-ready-timeout` has been added. It configures a timeout of an additional etcd check performed as part of readyz check. ([#111399](https://github.com/kubernetes/kubernetes/pull/111399), [@Argh4k](https://github.com/Argh4k))", + "author": "Argh4k", + "author_url": "https://github.com/Argh4k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111399", + "pr_number": 111399, + "areas": [ + "apiserver", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "111402": { + "commit": "cf2800b812807a14b11087a87f0656c4f4d132a3", + "text": "[Ephemeral Containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) are now generally available (GA). The `EphemeralContainers` feature gate is always enabled and should be removed from `--feature-gates` flag on the kube-apiserver and the kubelet command lines. The `EphemeralContainers` feature gate is [deprecated and scheduled for removal](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation) in a future release.", + "markdown": "[Ephemeral Containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) are now generally available (GA). The `EphemeralContainers` feature gate is always enabled and should be removed from `--feature-gates` flag on the kube-apiserver and the kubelet command lines. The `EphemeralContainers` feature gate is [deprecated and scheduled for removal](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation) in a future release. ([#111402](https://github.com/kubernetes/kubernetes/pull/111402), [@verb](https://github.com/verb))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://features.k8s.io/277", + "type": "external" + } + ], + "author": "verb", + "author_url": "https://github.com/verb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111402", + "pr_number": 111402, + "areas": [ + "test", + "kubelet", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "111406": { + "commit": "12b22ede41617726f57ebbde09ef1979de45aafe", + "text": "Updated max azure data disk count map with new VM types.", + "markdown": "Updated max azure data disk count map with new VM types. ([#111406](https://github.com/kubernetes/kubernetes/pull/111406), [@bennerv](https://github.com/bennerv))", + "author": "bennerv", + "author_url": "https://github.com/bennerv", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111406", + "pr_number": 111406, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "cloud-provider" + ], + "duplicate": true + }, + "111411": { + "commit": "d46742b38760a1697aec56b84a3755ac7d505315", + "text": "The command line flag `enable-taint-manager` for kube-controller-manager is deprecated and will be removed in 1.26. The feature that it supports, taint based eviction, is enabled by default and will continue to be implicitly enabled when the flag is removed.", + "markdown": "The command line flag `enable-taint-manager` for kube-controller-manager is deprecated and will be removed in 1.26. The feature that it supports, taint based eviction, is enabled by default and will continue to be implicitly enabled when the flag is removed. ([#111411](https://github.com/kubernetes/kubernetes/pull/111411), [@alculquicondor](https://github.com/alculquicondor))", + "documentation": [ + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/#taint-based-evictions", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111411", + "pr_number": 111411, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "111418": { + "commit": "d838a8647b0ada3f52fc33a53b9319d46d9c3ef1", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#111418](https://github.com/kubernetes/kubernetes/pull/111418), [@muyangren2](https://github.com/muyangren2)) [SIG Node]", + "author": "muyangren2", + "author_url": "https://github.com/muyangren2", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111418", + "pr_number": 111418, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "111419": { + "commit": "a4a22a25622bf426308995d99d4f708396bbde6c", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#111419](https://github.com/kubernetes/kubernetes/pull/111419), [@muyangren2](https://github.com/muyangren2)) [SIG Architecture and Instrumentation]", + "author": "muyangren2", + "author_url": "https://github.com/muyangren2", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111419", + "pr_number": 111419, + "kinds": [ + "cleanup" + ], + "sigs": [ + "instrumentation", + "architecture" + ], + "duplicate": true, + "do_not_publish": true + }, + "111435": { + "commit": "6fbeacdf73a1fcf52bc33c2422ce847eb4220bcf", + "text": "Promoted CronJob's TimeZone support to beta.", + "markdown": "Promoted CronJob's TimeZone support to beta. ([#111435](https://github.com/kubernetes/kubernetes/pull/111435), [@soltysh](https://github.com/soltysh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3140", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111435", + "pr_number": 111435, + "areas": [ + "test", + "batch", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "111439": { + "commit": "25cdaccf0d407c8c8d3e5d3440be6e7ecbaa32b6", + "text": "Windows kubelet plugin Watcher now working as intended.", + "markdown": "Windows kubelet plugin Watcher now working as intended. ([#111439](https://github.com/kubernetes/kubernetes/pull/111439), [@claudiubelu](https://github.com/claudiubelu))", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111439", + "pr_number": 111439, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows", + "testing" + ], + "duplicate": true + }, + "111441": { + "commit": "3902a534197b3e4b7ca7a026f5027cfe0a3cc3aa", + "text": "The PodTopologySpread is respected after rolling upgrades.", + "markdown": "The PodTopologySpread is respected after rolling upgrades. ([#111441](https://github.com/kubernetes/kubernetes/pull/111441), [@denkensk](https://github.com/denkensk))", + "author": "denkensk", + "author_url": "https://github.com/denkensk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111441", + "pr_number": 111441, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "111462": { + "commit": "1de16be28f90e4e91c9daa4669511bdcce017433", + "text": "Metric `running_managed_controllers` is enabled for Route,Service and Cloud Node controllers in KCM and CCM.", + "markdown": "Metric `running_managed_controllers` is enabled for Route,Service and Cloud Node controllers in KCM and CCM. ([#111462](https://github.com/kubernetes/kubernetes/pull/111462), [@jprzychodzen](https://github.com/jprzychodzen))", + "author": "jprzychodzen", + "author_url": "https://github.com/jprzychodzen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111462", + "pr_number": 111462, + "areas": [ + "test", + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "111466": { + "commit": "4b5ee802e847a3ea8243946aeae588906bd6f79f", + "text": "Metric `running_managed_controllers` is enabled for Node IPAM controller in KCM.", + "markdown": "Metric `running_managed_controllers` is enabled for Node IPAM controller in KCM. ([#111466](https://github.com/kubernetes/kubernetes/pull/111466), [@jprzychodzen](https://github.com/jprzychodzen))", + "author": "jprzychodzen", + "author_url": "https://github.com/jprzychodzen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111466", + "pr_number": 111466, + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "apps", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "111467": { + "commit": "90f9a52db6de21cafebb91a7f47b7386f37289e0", + "text": "PersistentVolumeClaim objects are no longer left with storage class set to `nil` forever, but will be updated retroactively once any StorageClass is set or created as default.", + "markdown": "PersistentVolumeClaim objects are no longer left with storage class set to `nil` forever, but will be updated retroactively once any StorageClass is set or created as default. ([#111467](https://github.com/kubernetes/kubernetes/pull/111467), [@RomanBednar](https://github.com/RomanBednar))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3337/commits/c6d69a727ebf56681a7d615c4f6234e4de86a5ec#diff-54da445e206aec7fe7962396edc49ec525ba1d3034aa800fd3a4e93d28a739e7", + "type": "KEP" + } + ], + "author": "RomanBednar", + "author_url": "https://github.com/RomanBednar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111467", + "pr_number": 111467, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "111472": { + "commit": "bdd2e476959070b1698ba91c2f6e0cf3688338fd", + "text": "The namespace editors and admins can now create leases.coordination.k8s.io and should use this type for leaderelection instead of configmaps.", + "markdown": "The namespace editors and admins can now create leases.coordination.k8s.io and should use this type for leaderelection instead of configmaps. ([#111472](https://github.com/kubernetes/kubernetes/pull/111472), [@deads2k](https://github.com/deads2k))", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111472", + "pr_number": 111472, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true + }, + "111475": { + "commit": "bc4c4930ff18dce320bd33f645ff4f3accc72018", + "text": "If a Pod has a DisruptionTarget condition with status=True for more than 2 minutes without getting a DeletionTimestamp, the control plane resets it to status=False.", + "markdown": "If a Pod has a DisruptionTarget condition with status=True for more than 2 minutes without getting a DeletionTimestamp, the control plane resets it to status=False. ([#111475](https://github.com/kubernetes/kubernetes/pull/111475), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111475", + "pr_number": 111475, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "111479": { + "commit": "1e18ff5b37674bc5abfc6438be563f275390a486", + "text": "`CSIMigrationAWS` upgraded to GA and locked to true.\n", + "markdown": "`CSIMigrationAWS` upgraded to GA and locked to true.\n ([#111479](https://github.com/kubernetes/kubernetes/pull/111479), [@wongma7](https://github.com/wongma7))", + "author": "wongma7", + "author_url": "https://github.com/wongma7", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111479", + "pr_number": 111479, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "apps" + ], + "feature": true, + "duplicate": true + }, + "111481": { + "commit": "9e6d456f05628560d108a610aa3b568daf0e957b", + "text": "Added e2e test flag to specify which volume drivers should be installed. This deprecated the ENABLE_STORAGE_GCE_PD_DRIVER environment variable.", + "markdown": "Added e2e test flag to specify which volume drivers should be installed. This deprecated the ENABLE_STORAGE_GCE_PD_DRIVER environment variable. ([#111481](https://github.com/kubernetes/kubernetes/pull/111481), [@mattcary](https://github.com/mattcary))", + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111481", + "pr_number": 111481, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true + }, + "111485": { + "commit": "3dc51872f070dc7fe2276d15263adec24931ea1f", + "text": "GlusterFS provisioner (`kubernetes.io/glusterfs`) has been deprecated in this release.", + "markdown": "GlusterFS provisioner (`kubernetes.io/glusterfs`) has been deprecated in this release. ([#111485](https://github.com/kubernetes/kubernetes/pull/111485), [@humblec](https://github.com/humblec))", + "author": "humblec", + "author_url": "https://github.com/humblec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111485", + "pr_number": 111485, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "111486": { + "commit": "bddb4ec08ee76c98a04cc857d346fd80d44abd8f", + "text": "NONE", + "markdown": "NONE ([#111486](https://github.com/kubernetes/kubernetes/pull/111486), [@peizhouyu](https://github.com/peizhouyu)) [SIG CLI]", + "author": "peizhouyu", + "author_url": "https://github.com/peizhouyu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111486", + "pr_number": 111486, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "do_not_publish": true + }, + "111492": { + "commit": "ebad8c70c251c877125bdf0f351e650cca5c457a", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#111492](https://github.com/kubernetes/kubernetes/pull/111492), [@muyangren2](https://github.com/muyangren2)) [SIG Cluster Lifecycle]", + "author": "muyangren2", + "author_url": "https://github.com/muyangren2", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111492", + "pr_number": 111492, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "111502": { + "commit": "3a650c5c56228d0cb9089fc5563bc2e3ff6a5af3", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#111502](https://github.com/kubernetes/kubernetes/pull/111502), [@muyangren2](https://github.com/muyangren2)) [SIG Cluster Lifecycle]", + "author": "muyangren2", + "author_url": "https://github.com/muyangren2", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111502", + "pr_number": 111502, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "111513": { + "commit": "442574f3a7321ff0f34dec9bae67f28651dbabd2", + "text": "Local Storage Capacity Isolation feature is GA in 1.25 release. For systems (rootless) that cannot check root file system, please use kubelet config --local-storage-capacity-isolation=false to disable this feature. Once disabled, pod cannot set local ephemeral storage request/limit, and emptyDir sizeLimit niether.", + "markdown": "Local Storage Capacity Isolation feature is GA in 1.25 release. For systems (rootless) that cannot check root file system, please use kubelet config --local-storage-capacity-isolation=false to disable this feature. Once disabled, pod cannot set local ephemeral storage request/limit, and emptyDir sizeLimit niether. ([#111513](https://github.com/kubernetes/kubernetes/pull/111513), [@jingxu97](https://github.com/jingxu97))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3422", + "type": "KEP" + } + ], + "author": "jingxu97", + "author_url": "https://github.com/jingxu97", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111513", + "pr_number": 111513, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "scalability", + "scheduling", + "node", + "api-machinery" + ], + "duplicate": true + }, + "111524": { + "commit": "762f39e2db0e55c4613e1f7945b3cb093df558e6", + "text": "Graduated `CustomResourceValidationExpressions` to `beta`. The `CustomResourceValidationExpressions` feature gate is now enabled by default.", + "markdown": "Graduated `CustomResourceValidationExpressions` to `beta`. The `CustomResourceValidationExpressions` feature gate is now enabled by default. ([#111524](https://github.com/kubernetes/kubernetes/pull/111524), [@cici37](https://github.com/cici37))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/2876-crd-validation-expression-language/README.md", + "type": "KEP" + } + ], + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111524", + "pr_number": 111524, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "111547": { + "commit": "96439a0c3c2af50e3a1eef9b84197601bcfff946", + "text": "The kube-scheduler ComponentConfig v1beta2 is deprecated in v1.25.", + "markdown": "The kube-scheduler ComponentConfig v1beta2 is deprecated in v1.25. ([#111547](https://github.com/kubernetes/kubernetes/pull/111547), [@kerthcet](https://github.com/kerthcet))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/785", + "type": "KEP" + } + ], + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111547", + "pr_number": 111547, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "111557": { + "commit": "22eab136f6c85f83e56ff71ec6346ffd7cc5e977", + "text": "Fixed performance issue when creating large objects using SSA with fully unspecified schemas ( preserveUnknownFields ).", + "markdown": "Fixed performance issue when creating large objects using SSA with fully unspecified schemas ( preserveUnknownFields ). ([#111557](https://github.com/kubernetes/kubernetes/pull/111557), [@alexzielenski](https://github.com/alexzielenski))", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111557", + "pr_number": 111557, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "111596": { + "commit": "e539bb5a50061afd0166afd5c4fa52466222640b", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#111596](https://github.com/kubernetes/kubernetes/pull/111596), [@muyangren2](https://github.com/muyangren2)) [SIG Cluster Lifecycle]", + "author": "muyangren2", + "author_url": "https://github.com/muyangren2", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111596", + "pr_number": 111596, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "111606": { + "commit": "83c3c37a879c6d14cce2465161f88d3c6881de8b", + "text": "Upgraded functionality of `kubectl kustomize` as described at\nhttps://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.5.7.", + "markdown": "Upgraded functionality of `kubectl kustomize` as described at\n https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.5.7. ([#111606](https://github.com/kubernetes/kubernetes/pull/111606), [@natasha41575](https://github.com/natasha41575))", + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111606", + "pr_number": 111606, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "111618": { + "commit": "70dcb0f1297e0a7b183720cfacece73c57ee1afc", + "text": "The intree volume plugin flocker support was completely removed from Kubernetes.", + "markdown": "The intree volume plugin flocker support was completely removed from Kubernetes. ([#111618](https://github.com/kubernetes/kubernetes/pull/111618), [@Jiawei0227](https://github.com/Jiawei0227))", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111618", + "pr_number": 111618, + "areas": [ + "kubelet", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scalability", + "storage", + "node", + "api-machinery" + ], + "duplicate": true, + "action_required": true + }, + "111619": { + "commit": "0d46dc1f467f67cba79708311193a719c2124d22", + "text": "The intree volume plugin quobyte support has been completely removed from Kubernetes.", + "markdown": "The intree volume plugin quobyte support has been completely removed from Kubernetes. ([#111619](https://github.com/kubernetes/kubernetes/pull/111619), [@Jiawei0227](https://github.com/Jiawei0227))", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111619", + "pr_number": 111619, + "areas": [ + "kubelet", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scalability", + "storage", + "node", + "api-machinery" + ], + "duplicate": true, + "action_required": true + }, + "111620": { + "commit": "d4795e4beced59cf4f698de487b738df18e22adf", + "text": "The intree volume plugin storageos support has been completely removed from Kubernetes.", + "markdown": "The intree volume plugin storageos support has been completely removed from Kubernetes. ([#111620](https://github.com/kubernetes/kubernetes/pull/111620), [@Jiawei0227](https://github.com/Jiawei0227))", + "author": "Jiawei0227", + "author_url": "https://github.com/Jiawei0227", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111620", + "pr_number": 111620, + "areas": [ + "kubelet", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scalability", + "storage", + "node", + "api-machinery" + ], + "duplicate": true, + "action_required": true + }, + "111623": { + "commit": "7bcd739851440699743d5c3928507364c2aadba8", + "text": "\"NONE", + "markdown": "\"NONE ([#111623](https://github.com/kubernetes/kubernetes/pull/111623), [@muyangren2](https://github.com/muyangren2)) [SIG Cluster Lifecycle]", + "author": "muyangren2", + "author_url": "https://github.com/muyangren2", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111623", + "pr_number": 111623, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "111633": { + "commit": "448e48b8a6b4608688a71f6fe35914ed94df3031", + "text": "ginkgo: when e2e tests are invoked through ginkgo-e2e.sh, the default now is to use color escape sequences only when connected to a terminal. `GINKGO_NO_COLOR=y/n` can be used to override that default.", + "markdown": "Ginkgo: when e2e tests are invoked through ginkgo-e2e.sh, the default now is to use color escape sequences only when connected to a terminal. `GINKGO_NO_COLOR=y/n` can be used to override that default. ([#111633](https://github.com/kubernetes/kubernetes/pull/111633), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111633", + "pr_number": 111633, + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + }, + "111645": { + "commit": "aea9f9887d08922378b9e7da0e81a46e733f2995", + "text": "Extended ContainerStatus CRI API to allow runtime response with container resource requests and limits that are in effect.\n- UpdateContainerResources CRI API now supports both Linux and Windows.", + "markdown": "Extended ContainerStatus CRI API to allow runtime response with container resource requests and limits that are in effect.\n - UpdateContainerResources CRI API now supports both Linux and Windows. ([#111645](https://github.com/kubernetes/kubernetes/pull/111645), [@vinaykul](https://github.com/vinaykul))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "vinaykul", + "author_url": "https://github.com/vinaykul", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111645", + "pr_number": 111645, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true + }, + "111646": { + "commit": "182e0989ecd3b4307e29815c8dd9527aea10f15e", + "text": "Fixed JobTrackingWithFinalizers when a pod succeeds after the job is considered failed, which led to API conflicts that blocked finishing the job.", + "markdown": "Fixed JobTrackingWithFinalizers when a pod succeeds after the job is considered failed, which led to API conflicts that blocked finishing the job. ([#111646](https://github.com/kubernetes/kubernetes/pull/111646), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111646", + "pr_number": 111646, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "111647": { + "commit": "d6a3a68afce1525dc31a2a8e73a2bc5903120eb9", + "text": "Updated cAdvisor to v0.45.0.", + "markdown": "Updated cAdvisor to v0.45.0. ([#111647](https://github.com/kubernetes/kubernetes/pull/111647), [@bobbypage](https://github.com/bobbypage))", + "author": "bobbypage", + "author_url": "https://github.com/bobbypage", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111647", + "pr_number": 111647, + "areas": [ + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "111679": { + "commit": "305ad47627d7cc67d90389f5f8c27c37ebe4bf3a", + "text": "Kubernetes is now built with go 1.19.0.", + "markdown": "Kubernetes is now built with go 1.19.0. ([#111679](https://github.com/kubernetes/kubernetes/pull/111679), [@puerco](https://github.com/puerco))", + "author": "puerco", + "author_url": "https://github.com/puerco", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111679", + "pr_number": 111679, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "111691": { + "commit": "d0c92aedbab1bd448a5271496689ae2a3f11debd", + "text": "Removed the recently re-introduced schedulability predicate ([#109706](https://github.com/kubernetes/kubernetes/pull/109706)) as to not have unschedulable nodes removed from load balancers back-end pools.", + "markdown": "Removed the recently re-introduced schedulability predicate ([#109706](https://github.com/kubernetes/kubernetes/pull/109706)) as to not have unschedulable nodes removed from load balancers back-end pools. ([#111691](https://github.com/kubernetes/kubernetes/pull/111691), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111691", + "pr_number": 111691, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "111721": { + "commit": "137439194d8e27f34081218a7e8cfb1e31e74a69", + "text": "Fixed memory leak in the job controller related to `JobTrackingWithFinalizers`.", + "markdown": "Fixed memory leak in the job controller related to `JobTrackingWithFinalizers`. ([#111721](https://github.com/kubernetes/kubernetes/pull/111721), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111721", + "pr_number": 111721, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "99685": { + "commit": "ea7c57b2ee5be6a853421ebbca409b2b0fd3b1ee", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#99685](https://github.com/kubernetes/kubernetes/pull/99685), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG CLI, Node, Storage and Testing]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/99685", + "pr_number": 99685, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "node", + "cli", + "testing" + ], + "duplicate": true, + "do_not_publish": true + } } \ No newline at end of file diff --git a/releases/release-1.25/release-notes/release-notes-draft.md b/releases/release-1.25/release-notes/release-notes-draft.md index d1a81b4ce54..c23f1c44afc 100644 --- a/releases/release-1.25/release-notes/release-notes-draft.md +++ b/releases/release-1.25/release-notes/release-notes-draft.md @@ -1,361 +1,361 @@ -## What's New (Major Themes) - -### PodSecurityPolicy is Removed, Pod Security Admission graduates to Stable - -PodSecurityPolicy was initially [deprecated in v1.21](/blog/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/), and with the release of v1.25, it has been removed. The updates required to improve its usability would have introduced breaking changes, so it became necessary to remove it in favor of a more friendly replacement. That replacement is [Pod Security Admission](/docs/concepts/security/pod-security-admission/), which graduates to Stable with this release. If you are currently relying on PodSecurityPolicy, please follow the instructions for [migration to Pod Security Admission](/docs/tasks/configure-pod-container/migrate-from-psp/). - -### Ephemeral Containers Graduate to Stable - -[Ephemeral Containers](/docs/concepts/workloads/pods/ephemeral-containers/) are containers that exist for only a limited time within an existing pod. This is particularly useful for troubleshooting when you need to examine another container but cannot use `kubectl exec` because that container has crashed or its image lacks debugging utilities. Ephemeral containers graduated to Beta in Kubernetes v1.23, and with this release, the feature graduates to Stable. - -### Support for cgroups v2 Graduates to Stable - -It has been more than two years since the Linux kernel cgroups v2 API was declared stable. With some distributions now defaulting to this API, Kubernetes must support it to continue operating on those distributions. cgroups v2 offers several improvements over cgroups v1, for more information see the [cgroups v2](https://kubernetes.io/docs/concepts/architecture/cgroups/) documentation. While cgroups v1 will continue to be supported, this enhancement puts Kubernetes to be ready for eventual deprecation and replacement in favor of v2. - - -### Windows support improved - -- [Performance dashboards](http://perf-dash.k8s.io/#/?jobname=soak-tests-capz-windows-2019) added support for Windows -- [Unit tests](https://github.com/kubernetes/kubernetes/issues/51540) added support for Windows -- [Conformance tests](https://github.com/kubernetes/kubernetes/pull/108592) added support for Windows -- New repository created for [Windows Operational Readiness](https://github.com/kubernetes-sigs/windows-operational-readiness) - -### Moved container registry service from k8s.gcr.io to registry.k8s.io - -[Moving container registry from k8s.gcr.io to registry.k8s.io](https://github.com/kubernetes/kubernetes/pull/109938) got merged. For more details, see the [wiki page](https://github.com/kubernetes/k8s.io/wiki/New-Registry-url-for-Kubernetes-\(registry.k8s.io\)), [announcement](https://groups.google.com/a/kubernetes.io/g/dev/c/DYZYNQ_A6_c/m/oD9_Q8Q9AAAJ) was sent to the kubernetes development mailing list. - -### Promoted SeccompDefault to Beta - -SeccompDefault promoted to beta, see the tutorial [Restrict a Container's Syscalls with seccomp](https://kubernetes.io/docs/tutorials/security/seccomp/#enable-the-use-of-runtimedefault-as-the-default-seccomp-profile-for-all-workloads) for more details. - -### Promoted endPort in Network Policy to Stable - -Promoted `endPort` in [Network Policy](https://kubernetes.io/docs/concepts/services-networking/network-policies/#targeting-a-range-of-ports) to GA. Network Policy providers that support `endPort` field now can use it to specify a range of ports to apply a Network Policy. Previously, each Network Policy could only target a single port. - -Please be aware that `endPort` field **MUST BE SUPPORTED** by the Network Policy provider. If your provider does not support `endPort`, and this field is specified in a Network Policy, the Network Policy will be created covering only the port field (single port). - -### Promoted Local Ephemeral Storage Capacity Isolation to Stable -The [Local Ephemeral Storage Capacity Isolation](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/361-local-ephemeral-storage-isolation) feature moved to GA. This was introduced as alpha in 1.8, moved to beta in 1.10, and it is now a stable feature. It provides support for capacity isolation of local ephemeral storage between pods, such as `EmptyDir`, so that a pod can be hard limited in its consumption of shared resources by evicting Pods if its consumption of local ephemeral storage exceeds that limit. - -### Promoted core CSI Migration to Stable - -[CSI Migration](https://kubernetes.io/blog/2021/12/10/storage-in-tree-to-csi-migration-status-update/#quick-recap-what-is-csi-migration-and-why-migrate) is an ongoing effort that SIG Storage has been working on for a few releases. The goal is to move in-tree volume plugins to out-of-tree CSI drivers and eventually remove the in-tree volume plugins. The [core CSI Migration](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/625-csi-migration) feature moved to GA. CSI Migration for GCE PD and AWS EBS also moved to GA. CSI Migration for vSphere remains in beta (but is on by default). CSI Migration for Portworx moved to Beta (but is off-by-default). - - -### Promoted CSI Ephemeral Volume to Stable - -The [CSI Ephemeral Volume](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/596-csi-inline-volumes) feature allows CSI volumes to be specified directly in the pod specification for ephemeral use cases. They can be used to inject arbitrary states, such as configuration, secrets, identity, variables or similar information, directly inside pods using a mounted volume. This was initially introduced in 1.15 as an alpha feature, and it moved to GA. This feature is used by some CSI drivers such as the [secret-store CSI driver](https://github.com/kubernetes-sigs/secrets-store-csi-driver). - -### Promoted CRD Validation Expression Language to Beta - -[CRD Validation Expression Language](https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/2876-crd-validation-expression-language/README.mdv) is promoted to beta, which makes it possible to declare how custom resources are validated using the [Common Expression Language (CEL)](https://github.com/google/cel-spec). Please see the [validation rules](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#validation-rules) guide. - -### Promoted Server Side Unknown Field Validation to Beta - -Promoted the `ServerSideFieldValidation` feature gate to beta (on by default). This allows optionally triggering schema validation on the API server that errors when unknown fields are detected. This allows the removal of client-side validation from kubectl while maintaining the same core functionality of erroring out on requests that contain unknown or invalid fields. - - -### Introduced KMS v2 - -Introduce KMS v2alpha1 API to add performance, rotation, and observability improvements. Encrypt data at rest (ie Kubernetes `Secrets`) with DEK using AES-GCM instead of AES-CBC for kms data encryption. No user action is required. Reads with AES-GCM and AES-CBC will continue to be allowed. See the guide [Using a KMS provider for data encryption](https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/) for more information. - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- Deprecated beta APIs scheduled for removal in 1.25 are no longer served. See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-25 for more information. ([#108797](https://github.com/kubernetes/kubernetes/pull/108797), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Instrumentation and Testing] - - Encrypted data with DEK using AES-GCM instead of AES-CBC for kms data encryption. No user action required. Reads with AES-GCM and AES-CBC will continue to be allowed. ([#111119](https://github.com/kubernetes/kubernetes/pull/111119), [@aramase](https://github.com/aramase)) - - End-to-end testing has been migrated from Ginkgo v1 to v2. - - When running test/e2e via the Ginkgo CLI, the v2 CLI must be used and `-timeout=24h` (or some other, suitable value) must be passed because the default timeout was reduced from 24h to 1h. When running it via `go test`, the corresponding `-args` parameter is `-ginkgo.timeout=24h`. To build the CLI in the Kubernetes repo, use `make all WHAT=github.com/onsi/ginkgo/v2/ginkgo`. - Ginkgo V2 doesn't accept go test's `-parallel` flags to parallelize Ginkgo specs, please switch to use `ginkgo -p` or `ginkgo -procs=N` instead. ([#109111](https://github.com/kubernetes/kubernetes/pull/109111), [@chendave](https://github.com/chendave)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling, Storage, Testing and Windows] - - No action required; No API/CLI changed; Add new Windows Image Support ([#110333](https://github.com/kubernetes/kubernetes/pull/110333), [@liurupeng](https://github.com/liurupeng)) [SIG Cloud Provider and Windows] - - The intree volume plugin flocker support was completely removed from Kubernetes. ([#111618](https://github.com/kubernetes/kubernetes/pull/111618), [@Jiawei0227](https://github.com/Jiawei0227)) - - The intree volume plugin quobyte support has been completely removed from Kubernetes. ([#111619](https://github.com/kubernetes/kubernetes/pull/111619), [@Jiawei0227](https://github.com/Jiawei0227)) - - The intree volume plugin storageos support has been completely removed from Kubernetes. ([#111620](https://github.com/kubernetes/kubernetes/pull/111620), [@Jiawei0227](https://github.com/Jiawei0227)) - - There is a new OCI image registry (`registry.k8s.io`) that can be used to pull Kubernetes images. The old registry (`k8s.gcr.io`) will continue to be supported for the foreseeable future, but the new name should perform better because it frontends equivalent mirrors in other clouds. Please point your clusters to the new registry going forward. \n\nAdmission/Policy integrations that have an allowlist of registries need to include `registry.k8s.io` alongside `k8s.gcr.io`.\nAir-gapped environments and image garbage-collection configurations will need to update to pre-pull and preserve required images under `registry.k8s.io` as well as `k8s.gcr.io`. ([#109938](https://github.com/kubernetes/kubernetes/pull/109938), [@dims](https://github.com/dims)) - -## Changes by Kind - -### Deprecation - -- API server's deprecated `--service-account-api-audiences` flag was removed. Use `--api-audiences` instead. ([#108624](https://github.com/kubernetes/kubernetes/pull/108624), [@ialidzhikov](https://github.com/ialidzhikov)) -- Ginkgo.Measure has been deprecated in Ginkgo V2, switch to use gomega/gmeasure instead ([#111065](https://github.com/kubernetes/kubernetes/pull/111065), [@chendave](https://github.com/chendave)) [SIG Autoscaling and Testing] -- Kube-controller-manager: Removed flags `deleting-pods-qps`, `deleting-pods-burst`, and `register-retry-count`. ([#109612](https://github.com/kubernetes/kubernetes/pull/109612), [@pandaamanda](https://github.com/pandaamanda)) -- Kubeadm: during "upgrade apply/diff/node", in case the `ClusterConfiguration.imageRepository` stored in the "kubeadm-config" `ConfigMap` contains the legacy "k8s.gcr.io" repository, modify it to the new default "registry.k8s.io". Reflect the change in the in-cluster `ConfigMap` only during "upgrade apply". ([#110343](https://github.com/kubernetes/kubernetes/pull/110343), [@neolit123](https://github.com/neolit123)) -- Kubeadm: graduated the kubeadm specific feature gate `UnversionedKubeletConfigMap` to GA and locked it to `true` by default. The kubelet related ConfigMap and RBAC rules are now locked to have a simplified naming `*kubelet-config` instead of the legacy naming `*kubelet-config-x.yy`, where `x.yy` was the version of the control plane. If you have previously used the old naming format with `UnversionedKubeletConfigMap=false`, you must manually copy the config map from `kube-system/kubelet-config-x.yy` to `kube-system/kubelet-config` before upgrading to `v1.25`. ([#110327](https://github.com/kubernetes/kubernetes/pull/110327), [@neolit123](https://github.com/neolit123)) -- Kubeadm: stop applying the `node-role.kubernetes.io/master:NoSchedule` taint to control plane nodes for new clusters. Remove the taint from existing control plane nodes during "kubeadm upgrade apply" ([#110095](https://github.com/kubernetes/kubernetes/pull/110095), [@neolit123](https://github.com/neolit123)) -- Support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io`, deprecated since v1.19, was partially removed. Kubelets no longer support the annotations, use of the annotations in static pods is no longer supported, and the seccomp annotations are no longer auto-populated when pods with seccomp fields are created. Auto-population of the seccomp fields from the annotations is planned to be removed in 1.27. Pods should use the corresponding pod or container `securityContext.seccompProfile` field instead. ([#109819](https://github.com/kubernetes/kubernetes/pull/109819), [@saschagrunert](https://github.com/saschagrunert)) -- The `gcp` and `azure` auth plugins have been removed from client-go and kubectl. See https://github.com/Azure/kubelogin and https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke ([#110013](https://github.com/kubernetes/kubernetes/pull/110013), [@enj](https://github.com/enj)) -- The beta `PodSecurityPolicy` admission plugin, deprecated since 1.21, is removed. Follow the instructions at https://kubernetes.io/docs/tasks/configure-pod-container/migrate-from-psp/ to migrate to the built-in PodSecurity admission plugin (or to another third-party policy webhook) prior to upgrading to v1.25. ([#109798](https://github.com/kubernetes/kubernetes/pull/109798), [@liggitt](https://github.com/liggitt)) -- VSphere releases less than 7.0u2 are not supported for in-tree vSphere volume as of Kubernetes v1.25. Please consider upgrading vSphere (both ESXi and vCenter) to 7.0u2 or above. ([#111255](https://github.com/kubernetes/kubernetes/pull/111255), [@divyenpatel](https://github.com/divyenpatel)) -- Windows winkernel kube-proxy no longer supports Windows HNS v1 APIs. ([#110957](https://github.com/kubernetes/kubernetes/pull/110957), [@papagalu](https://github.com/papagalu)) - -### API Change - -- Add `NodeInclusionPolicy` to `TopologySpreadConstraints` in PodSpec. ([#108492](https://github.com/kubernetes/kubernetes/pull/108492), [@kerthcet](https://github.com/kerthcet)) -- Added KMS v2alpha1 support. ([#111126](https://github.com/kubernetes/kubernetes/pull/111126), [@aramase](https://github.com/aramase)) -- Added a deprecated warning for node beta label usage in PV/SC/RC and CSI Storage Capacity. ([#108554](https://github.com/kubernetes/kubernetes/pull/108554), [@pacoxu](https://github.com/pacoxu)) -- Added a new feature gate `CheckpointRestore` to enable support to checkpoint containers. If enabled it is possible to checkpoint a container using the newly kubelet API (/checkpoint/{podNamespace}/{podName}/{containerName}). ([#104907](https://github.com/kubernetes/kubernetes/pull/104907), [@adrianreber](https://github.com/adrianreber)) [SIG Node and Testing] -- Added alpha support for user namespaces in pods phase 1 (KEP 127, feature gate: UserNamespacesStatelessPodsSupport) ([#111090](https://github.com/kubernetes/kubernetes/pull/111090), [@rata](https://github.com/rata)) -- As of v1.25, the PodSecurity `restricted` level no longer requires pods that set .spec.os.name="windows" to also set Linux-specific securityContext fields. If a 1.25+ cluster has unsupported [out-of-skew](https://kubernetes.io/releases/version-skew-policy/#kubelet) nodes prior to v1.23 and wants to ensure namespaces enforcing the `restricted` policy continue to require Linux-specific securityContext fields on all pods, ensure a version of the `restricted` prior to v1.25 is selected by labeling the namespace (for example, `pod-security.kubernetes.io/enforce-version: v1.24`) ([#105919](https://github.com/kubernetes/kubernetes/pull/105919), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- Changed ownership semantics of PersistentVolume's spec.claimRef from `atomic` to `granular`. ([#110495](https://github.com/kubernetes/kubernetes/pull/110495), [@alexzielenski](https://github.com/alexzielenski)) -- Extended ContainerStatus CRI API to allow runtime response with container resource requests and limits that are in effect. - - UpdateContainerResources CRI API now supports both Linux and Windows. ([#111645](https://github.com/kubernetes/kubernetes/pull/111645), [@vinaykul](https://github.com/vinaykul)) -- For v1.25, Kubernetes will be using Golang 1.19, In this PR the version is updated to 1.19rc2 as GA is not yet available. ([#111254](https://github.com/kubernetes/kubernetes/pull/111254), [@dims](https://github.com/dims)) -- Introduced NodeIPAM support for multiple ClusterCIDRs ([#2593](https://github.com/kubernetes/enhancements/issues/2593)) as an alpha feature. - Set feature gate `MultiCIDRRangeAllocator=true`, determines whether the `MultiCIDRRangeAllocator` controller can be used, while the kube-controller-manager flag below will pick the active controller. - Enabled the `MultiCIDRRangeAllocator` by setting `--cidr-allocator-type=MultiCIDRRangeAllocator` flag in kube-controller-manager. ([#109090](https://github.com/kubernetes/kubernetes/pull/109090), [@sarveshr7](https://github.com/sarveshr7)) -- Introduced PodHasNetwork condition for pods. ([#111358](https://github.com/kubernetes/kubernetes/pull/111358), [@ddebroy](https://github.com/ddebroy)) -- Introduced support for handling pod failures with respect to the configured pod failure policy rules. ([#111113](https://github.com/kubernetes/kubernetes/pull/111113), [@mimowo](https://github.com/mimowo)) -- Introduction of the `DisruptionTarget` pod condition type. Its `reason` field indicates the reason for pod termination: - - PreemptionByKubeScheduler (Pod preempted by kube-scheduler) - - DeletionByTaintManager (Pod deleted by taint manager due to NoExecute taint) - - EvictionByEvictionAPI (Pod evicted by Eviction API) - - DeletionByPodGC (an orphaned Pod deleted by PodGC) ([#110959](https://github.com/kubernetes/kubernetes/pull/110959), [@mimowo](https://github.com/mimowo)) -- Kube-Scheduler ComponentConfig is graduated to GA, `kubescheduler.config.k8s.io/v1` is available now. - Plugin `SelectorSpread` is removed in v1. ([#110534](https://github.com/kubernetes/kubernetes/pull/110534), [@kerthcet](https://github.com/kerthcet)) -- Local Storage Capacity Isolation feature is GA in 1.25 release. For systems (rootless) that cannot check root file system, please use kubelet config --local-storage-capacity-isolation=false to disable this feature. Once disabled, pod cannot set local ephemeral storage request/limit, and emptyDir sizeLimit niether. ([#111513](https://github.com/kubernetes/kubernetes/pull/111513), [@jingxu97](https://github.com/jingxu97)) -- Make PodSpec.Ports' description clearer on how this information is only informational and how it can be incorrect. ([#110564](https://github.com/kubernetes/kubernetes/pull/110564), [@j4m3s-s](https://github.com/j4m3s-s)) [SIG API Machinery, Network and Node] -- On compatible systems, a mounter's Unmount implementation is changed to not return an error when the specified target can be detected as not a mount point. On Linux, the behavior of detecting a mount point depends on `umount` command is validated when the mounter is created. Additionally, mount point checks will be skipped in CleanupMountPoint/CleanupMountWithForce if the mounter's Unmount having the changed behavior of not returning error when target is not a mount point. ([#109676](https://github.com/kubernetes/kubernetes/pull/109676), [@cartermckinnon](https://github.com/cartermckinnon)) [SIG Storage] -- PersistentVolumeClaim objects are no longer left with storage class set to `nil` forever, but will be updated retroactively once any StorageClass is set or created as default. ([#111467](https://github.com/kubernetes/kubernetes/pull/111467), [@RomanBednar](https://github.com/RomanBednar)) -- Promote StatefulSet minReadySeconds to GA. This means `--feature-gates=StatefulSetMinReadySeconds=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation ([#110896](https://github.com/kubernetes/kubernetes/pull/110896), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG API Machinery, Apps and Testing] -- Promoted CronJob's TimeZone support to beta. ([#111435](https://github.com/kubernetes/kubernetes/pull/111435), [@soltysh](https://github.com/soltysh)) -- Promoted DaemonSet MaxSurge to GA. This means `--feature-gates=DaemonSetUpdateSurge=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation . ([#111194](https://github.com/kubernetes/kubernetes/pull/111194), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- Scheduler: included supported ScoringStrategyType list in error message for NodeResourcesFit plugin ([#111206](https://github.com/kubernetes/kubernetes/pull/111206), [@SataQiu](https://github.com/SataQiu)) -- The Go API for logging configuration in `k8s.io/component-base` was moved to `k8s.io/component-base/logs/api/v1`. The configuration file format and command line flags are the same as before. ([#105797](https://github.com/kubernetes/kubernetes/pull/105797), [@pohly](https://github.com/pohly)) -- The Pod `spec.podOS` field is promoted to GA. The `IdentifyPodOS` feature gate unconditionally enabled, and will no longer be accepted as a `--feature-gates` parameter in 1.27. ([#111229](https://github.com/kubernetes/kubernetes/pull/111229), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) -- The PodTopologySpread is respected after rolling upgrades. ([#111441](https://github.com/kubernetes/kubernetes/pull/111441), [@denkensk](https://github.com/denkensk)) -- The `CSIInlineVolume` feature has moved from beta to GA. ([#111258](https://github.com/kubernetes/kubernetes/pull/111258), [@dobsonj](https://github.com/dobsonj)) -- The `PodSecurity` admission plugin has graduated to GA and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1`. ([#110459](https://github.com/kubernetes/kubernetes/pull/110459), [@wangyysde](https://github.com/wangyysde)) -- The `endPort` field in Network Policy is now promoted to GA - - Network Policy providers that support `endPort` field now can use it to specify a range of ports to apply a Network Policy. - - Previously, each Network Policy could only target a single port. - - Please be aware that `endPort` field MUST BE SUPPORTED by the Network Policy provider. In case your provider does not support `endPort` and this field is specified in a Network Policy, the Network Policy will be created covering only the port field (single port). ([#110868](https://github.com/kubernetes/kubernetes/pull/110868), [@rikatz](https://github.com/rikatz)) -- The `metadata.clusterName` field is completely removed. This should not have any user-visible impact. ([#109602](https://github.com/kubernetes/kubernetes/pull/109602), [@lavalamp](https://github.com/lavalamp)) -- The `minDomains` field in Pod Topology Spread is graduated to beta ([#110388](https://github.com/kubernetes/kubernetes/pull/110388), [@sanposhiho](https://github.com/sanposhiho)) [SIG API Machinery and Apps] -- The command line flag `enable-taint-manager` for kube-controller-manager is deprecated and will be removed in 1.26. The feature that it supports, taint based eviction, is enabled by default and will continue to be implicitly enabled when the flag is removed. ([#111411](https://github.com/kubernetes/kubernetes/pull/111411), [@alculquicondor](https://github.com/alculquicondor)) -- This release added support for `NodeExpandSecret` for CSI driver client which enables the CSI drivers to make use of this secret while performing node expansion operation based on the user request. Previously there was no secret provided as part of the `nodeexpansion` call, thus CSI drivers did not make use of the same while expanding the volume at the node side. ([#105963](https://github.com/kubernetes/kubernetes/pull/105963), [@zhucan](https://github.com/zhucan)) -- [Ephemeral Containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) are now generally available (GA). The `EphemeralContainers` feature gate is always enabled and should be removed from `--feature-gates` flag on the kube-apiserver and the kubelet command lines. The `EphemeralContainers` feature gate is [deprecated and scheduled for removal](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation) in a future release. ([#111402](https://github.com/kubernetes/kubernetes/pull/111402), [@verb](https://github.com/verb)) - -### Feature - -- Added KMS `v2alpha1` API. ([#110201](https://github.com/kubernetes/kubernetes/pull/110201), [@aramase](https://github.com/aramase)) -- Added Service Account field in the output of `kubectl describe pod` command. ([#111192](https://github.com/kubernetes/kubernetes/pull/111192), [@aufarg](https://github.com/aufarg)) -- Added a new `align-by-socket` policy option to cpu manager `static` policy. When enabled CPU's to be aligned at socket boundary rather than NUMA boundary. ([#111278](https://github.com/kubernetes/kubernetes/pull/111278), [@arpitsardhana](https://github.com/arpitsardhana)) -- Added container probe duration metrics. ([#104484](https://github.com/kubernetes/kubernetes/pull/104484), [@jackfrancis](https://github.com/jackfrancis)) -- Added new flags into alpha events such as --output, --types, --no-headers. ([#110007](https://github.com/kubernetes/kubernetes/pull/110007), [@ardaguclu](https://github.com/ardaguclu)) -- Added sum feature to `kubectl top pod` ([#105100](https://github.com/kubernetes/kubernetes/pull/105100), [@lauchokyip](https://github.com/lauchokyip)) -- Added the `Apply` and `ApplyStatus` methods to the dynamic `ResourceInterface` ([#109443](https://github.com/kubernetes/kubernetes/pull/109443), [@kevindelgado](https://github.com/kevindelgado)) -- Feature gate `CSIMigration` was locked to enabled. `CSIMigration` is GA now. The feature gate will be removed in `v1.27`. ([#110410](https://github.com/kubernetes/kubernetes/pull/110410), [@Jiawei0227](https://github.com/Jiawei0227)) -- Feature gate `ProbeTerminationGracePeriod` is enabled by default. ([#108541](https://github.com/kubernetes/kubernetes/pull/108541), [@kerthcet](https://github.com/kerthcet)) -- Ginkgo: when e2e tests are invoked through ginkgo-e2e.sh, the default now is to use color escape sequences only when connected to a terminal. `GINKGO_NO_COLOR=y/n` can be used to override that default. ([#111633](https://github.com/kubernetes/kubernetes/pull/111633), [@pohly](https://github.com/pohly)) -- Graduated SeccompDefault to `beta`. The Kubelet feature gate is now enabled by default and the configuration/CLI flag still defaults to `false`. ([#110805](https://github.com/kubernetes/kubernetes/pull/110805), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing] -- Graduated ServerSideFieldValidation to `beta`. Schema validation is performed server-side and requests will receive warnings for any invalid/unknown fields by default. ([#110178](https://github.com/kubernetes/kubernetes/pull/110178), [@kevindelgado](https://github.com/kevindelgado)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Storage and Testing] -- Graduated `CustomResourceValidationExpressions` to `beta`. The `CustomResourceValidationExpressions` feature gate is now enabled by default. ([#111524](https://github.com/kubernetes/kubernetes/pull/111524), [@cici37](https://github.com/cici37)) -- Graduated `ServiceIPStaticSubrange` feature to Beta (disabled by default). ([#110419](https://github.com/kubernetes/kubernetes/pull/110419), [@aojea](https://github.com/aojea)) -- If a Pod has a DisruptionTarget condition with status=True for more than 2 minutes without getting a DeletionTimestamp, the control plane resets it to status=False. ([#111475](https://github.com/kubernetes/kubernetes/pull/111475), [@alculquicondor](https://github.com/alculquicondor)) -- In "large" clusters, kube-proxy in iptables mode will now sometimes - leave unused rules in iptables for a while (up to `--iptables-sync-period`) - before deleting them. This improves performance by not requiring it to - check for stale rules on every sync. (In smaller clusters, it will still - remove unused rules immediately once they are no longer used.) - - (The threshold for "large" used here is currently "1000 endpoints" but - this is subject to change.) ([#110334](https://github.com/kubernetes/kubernetes/pull/110334), [@danwinship](https://github.com/danwinship)) -- Kube-up now includes CoreDNS version v1.9.3. ([#110488](https://github.com/kubernetes/kubernetes/pull/110488), [@mzaian](https://github.com/mzaian)) -- Kubeadm: Added support for additional authentication strategies in `kubeadm join` with discovery/kubeconfig file: client-go authentication plugins (`exec`), `tokenFile`, and `authProvider.` ([#110553](https://github.com/kubernetes/kubernetes/pull/110553), [@tallaxes](https://github.com/tallaxes)) -- Kubeadm: Update CoreDNS to v1.9.3. ([#110489](https://github.com/kubernetes/kubernetes/pull/110489), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: added support for the flag `--print-manifest` to the addon phases `kube-proxy` and `coredns` of `kubeadm init phase addon`. If this flag is `usedkubeadm` will not apply a given addon and instead print to the terminal the API objects that will be applied. ([#109995](https://github.com/kubernetes/kubernetes/pull/109995), [@wangyysde](https://github.com/wangyysde)) -- Kubeadm: enhanced the "patches" functionality to be able to patch kubelet config files containing `v1beta1.KubeletConfiguration`. The new patch target is called `kubeletconfiguration` (e.g. patch file `kubeletconfiguration+json.json`).This makes it possible to apply node specific KubeletConfiguration options during `init`, `join` and `upgrade`, while the main `KubeletConfiguration` that is passed to `init` as part of the `--config` file can still act as the global stored in the cluster `KubeletConfiguration`. ([#110405](https://github.com/kubernetes/kubernetes/pull/110405), [@neolit123](https://github.com/neolit123)) -- Kubeadm: make sure the etcd static pod startup probe uses /health?serializable=false while the liveness probe uses /health?serializable=true&exclude=NOSPACE. The NOSPACE exclusion would allow administrators to address space issues one member at a time. ([#110744](https://github.com/kubernetes/kubernetes/pull/110744), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: modified the etcd static Pod `liveness` and `readiness` probes to use a new etcd `v3.5.3+` HTTP(s) health check endpoint `/health?serializable=true` that allows to track the health of individual etcd members and not fail all members if a single member is not healthy in the etcd cluster. ([#110072](https://github.com/kubernetes/kubernetes/pull/110072), [@neolit123](https://github.com/neolit123)) -- Kubeadm: support experimental JSON/YAML output for `kubeadm upgrade plan` with the `--output` flag. ([#108447](https://github.com/kubernetes/kubernetes/pull/108447), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: the preferred pod anti-affinity for CoreDNS is now enabled by default. ([#110593](https://github.com/kubernetes/kubernetes/pull/110593), [@SataQiu](https://github.com/SataQiu)) -- Kubectl: support multiple resources for kubectl rollout status. ([#108777](https://github.com/kubernetes/kubernetes/pull/108777), [@pjo256](https://github.com/pjo256)) -- Kubernetes is now built with Golang 1.18.2. ([#110043](https://github.com/kubernetes/kubernetes/pull/110043), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with Golang 1.18.3 ([#110421](https://github.com/kubernetes/kubernetes/pull/110421), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- Kubernetes is now built with Golang 1.19.0. ([#111679](https://github.com/kubernetes/kubernetes/pull/111679), [@puerco](https://github.com/puerco)) -- Lock CSIMigrationAzureDisk feature gate to default. ([#110491](https://github.com/kubernetes/kubernetes/pull/110491), [@andyzhangx](https://github.com/andyzhangx)) -- Metric `running_managed_controllers` is enabled for Cloud Node Lifecycle controller. ([#111033](https://github.com/kubernetes/kubernetes/pull/111033), [@jprzychodzen](https://github.com/jprzychodzen)) -- Metric `running_managed_controllers` is enabled for Node IPAM controller in KCM. ([#111466](https://github.com/kubernetes/kubernetes/pull/111466), [@jprzychodzen](https://github.com/jprzychodzen)) -- Metric `running_managed_controllers` is enabled for Route,Service and Cloud Node controllers in KCM and CCM. ([#111462](https://github.com/kubernetes/kubernetes/pull/111462), [@jprzychodzen](https://github.com/jprzychodzen)) -- New `KUBECACHEDIR` environment variable was introduced to override default discovery cache directory which is `$HOME/.kube/cache`. ([#109479](https://github.com/kubernetes/kubernetes/pull/109479), [@ardaguclu](https://github.com/ardaguclu)) -- Pod SecurityContext and PodSecurityPolicy supports slash as sysctl separator. ([#106834](https://github.com/kubernetes/kubernetes/pull/106834), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Apps, Architecture, Auth, Node, Security and Testing] -- Promoted LocalStorageCapacityIsolationFSQuotaMonitoring to beta. ([#107329](https://github.com/kubernetes/kubernetes/pull/107329), [@pacoxu](https://github.com/pacoxu)) -- Promoted the `CSIMigrationPortworx` feature gate to Beta. ([#110411](https://github.com/kubernetes/kubernetes/pull/110411), [@trierra](https://github.com/trierra)) -- Return a warning when applying a `pod-security.kubernetes.io` label to a PodSecurity-exempted namespace. - Stop including the `pod-security.kubernetes.io/exempt=namespace` audit annotation on namespace requests. ([#109680](https://github.com/kubernetes/kubernetes/pull/109680), [@tallclair](https://github.com/tallclair)) -- The new flag `etcd-ready-timeout` has been added. It configures a timeout of an additional etcd check performed as part of readyz check. ([#111399](https://github.com/kubernetes/kubernetes/pull/111399), [@Argh4k](https://github.com/Argh4k)) -- The TopologySpreadConstraints will be shown in describe command for pods, deployments, daemonsets, etc. ([#109563](https://github.com/kubernetes/kubernetes/pull/109563), [@ardaguclu](https://github.com/ardaguclu)) -- The `kubectl diff` changed to ignore managed fields by default, and a new --show-managed-fields flag has been added to allow you to include managed fields in the diff. ([#111319](https://github.com/kubernetes/kubernetes/pull/111319), [@brianpursley](https://github.com/brianpursley)) -- The beta feature `ServiceIPStaticSubrange` is now enabled by default. ([#110703](https://github.com/kubernetes/kubernetes/pull/110703), [@aojea](https://github.com/aojea)) -- Updated base image for Windows pause container images to one built on Windows machines to address limitations of building Windows container images on Linux machines. ([#110379](https://github.com/kubernetes/kubernetes/pull/110379), [@marosset](https://github.com/marosset)) -- Updated cAdvisor to v0.45.0. ([#111647](https://github.com/kubernetes/kubernetes/pull/111647), [@bobbypage](https://github.com/bobbypage)) -- Updated debian-base, debian-iptables, and setcap images: - - debian-base:bullseye-v1.3.0 - - debian-iptables:bullseye-v1.4.0 - - setcap:bullseye-v1.3.0 ([#110558](https://github.com/kubernetes/kubernetes/pull/110558), [@wespanther](https://github.com/wespanther)) -- When using the OpenStack legacy cloud provider, kubelet and KCM will ignore unknown configuration directives rather than failing to start. ([#109709](https://github.com/kubernetes/kubernetes/pull/109709), [@mdbooth](https://github.com/mdbooth)) -- ` JobTrackingWithFinalizers` enabled by default. This feature allows to keep track of the Job progress without relying on Pods staying in the apiserver. - ([#110948](https://github.com/kubernetes/kubernetes/pull/110948), [@alculquicondor](https://github.com/alculquicondor)) -- `CSIMigrationAWS` upgraded to GA and locked to true. - ([#111479](https://github.com/kubernetes/kubernetes/pull/111479), [@wongma7](https://github.com/wongma7)) -- `CSIMigrationGCE` upgraded to GA and locked to true. - ([#111301](https://github.com/kubernetes/kubernetes/pull/111301), [@mattcary](https://github.com/mattcary)) -- `CSIMigrationvSphere` feature is now enabled by default. - ([#103523](https://github.com/kubernetes/kubernetes/pull/103523), [@divyenpatel](https://github.com/divyenpatel)) -- `MaxUnavailable` for `StatefulSets`, allows faster `RollingUpdate` by taking down more than 1 pod at a time. - The number of pods you want to take down during a `RollingUpdate` is configurable using `maxUnavailable` parameter. - ([#109251](https://github.com/kubernetes/kubernetes/pull/109251), [@krmayankk](https://github.com/krmayankk)) -- The `gcp` and `azure` auth plugins have been restored to client-go and kubectl until https://issue.k8s.io/111911 is resolved in supported kubectl minor versions. ([#111918](https://github.com/kubernetes/kubernetes/pull/111918), [@liggitt](https://github.com/liggitt)) - -### Documentation - -- EndpointSlices with Pod referencing Nodes that don't exist couldn't be created or updated. The behavior on the EndpointSlice controller has been modified to update the EndpointSlice without the Pods that reference non-existing Nodes and keep retrying until all Pods reference existing Nodes. However, if `service.Spec.PublishNotReadyAddresses` is set, all the Pods are published without retrying. Fixed EndpointSlices metrics to reflect correctly the number of desired EndpointSlices when no endpoints are present. ([#110639](https://github.com/kubernetes/kubernetes/pull/110639), [@aojea](https://github.com/aojea)) -- Optimization of kubectl Chinese translation ([#110538](https://github.com/kubernetes/kubernetes/pull/110538), [@hwdef](https://github.com/hwdef)) [SIG CLI] - -### Failing Test - -- E2e tests: fixed bug in the e2e image `agnhost:2.38` which hangs instead of exiting if a `SIGTERM` signal is received and the `shutdown-delay` option is `0`. ([#110214](https://github.com/kubernetes/kubernetes/pull/110214), [@aojea](https://github.com/aojea)) -- In-tree GCE PD test cases no longer run in Kubernetes testing harness anymore (side effect of switching on CSI migration in 1.22). Please switch on the environment variable `ENABLE_STORAGE_GCE_PD_DRIVER` to `yes` if you need to run these tests. ([#109541](https://github.com/kubernetes/kubernetes/pull/109541), [@dims](https://github.com/dims)) - -### Bug or Regression - -- A bug was fixed where a job sync was not retried in case of a transient ResourceQuota conflict. ([#111026](https://github.com/kubernetes/kubernetes/pull/111026), [@alculquicondor](https://github.com/alculquicondor)) -- A change of a failed job condition status to `False` does not result in duplicate conditions. ([#110292](https://github.com/kubernetes/kubernetes/pull/110292), [@mimowo](https://github.com/mimowo)) -- Added error message "dry-run can not be used when --force is set" when dry-run and force flags are set in replace command. ([#110326](https://github.com/kubernetes/kubernetes/pull/110326), [@ardaguclu](https://github.com/ardaguclu)) -- Added the latest GCE pinhole firewall feature, which introduces `destination-ranges` in the ingress `firewall-rules`. It restricts access to the backend IPs by allowing traffic through `ILB` or `NetLB` only. This change does **NOT** change the existing `ILB` or `NetLB` behavior. ([#109510](https://github.com/kubernetes/kubernetes/pull/109510), [@sugangli](https://github.com/sugangli)) -- Allow expansion of ephemeral volumes ([#109987](https://github.com/kubernetes/kubernetes/pull/109987), [@gnufied](https://github.com/gnufied)) [SIG Node and Storage] -- Apiserver: fixed audit of loading more than one webhooks. ([#110145](https://github.com/kubernetes/kubernetes/pull/110145), [@sxllwx](https://github.com/sxllwx)) -- Bug fix in test/e2e/framework Framework.RecordFlakeIfError ([#111048](https://github.com/kubernetes/kubernetes/pull/111048), [@alingse](https://github.com/alingse)) [SIG Testing] -- Client-go: fixed an error in the fake client when creating API requests are submitted to subresources like `pods/eviction`. ([#110425](https://github.com/kubernetes/kubernetes/pull/110425), [@LY-today](https://github.com/LY-today)) -- Do not raise an error when setting a label with the same value, ignore it. ([#105936](https://github.com/kubernetes/kubernetes/pull/105936), [@zigarn](https://github.com/zigarn)) -- Do not report terminated container metrics ([#110950](https://github.com/kubernetes/kubernetes/pull/110950), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Node] -- EndpointSlices marked for deletion are now ignored during reconciliation. ([#109624](https://github.com/kubernetes/kubernetes/pull/109624), [@aryan9600](https://github.com/aryan9600)) -- Etcd: Update to v3.5.4 ([#110033](https://github.com/kubernetes/kubernetes/pull/110033), [@mk46](https://github.com/mk46)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing] -- Faster mount detection for linux kernel 5.10+ using openat2 speeding up pod churn rates. On Kernel versions less 5.10, it will fallback to using the original way of detecting mount points i.e by parsing /proc/mounts. ([#109217](https://github.com/kubernetes/kubernetes/pull/109217), [@manugupt1](https://github.com/manugupt1)) -- FibreChannel volume plugin may match the wrong device and wrong associated devicemapper parent. This may cause a disater that pods attach wrong disks. ([#110719](https://github.com/kubernetes/kubernetes/pull/110719), [@xakdwch](https://github.com/xakdwch)) -- Fix a bug where CRI implementations that use cAdvisor stats provider (CRI-O) don't evict pods when their logs exceed ephemeral storage limit. ([#108115](https://github.com/kubernetes/kubernetes/pull/108115), [@haircommander](https://github.com/haircommander)) [SIG Node] -- Fix a bug where metrics are not recorded during Preemption(PostFilter). ([#108727](https://github.com/kubernetes/kubernetes/pull/108727), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] -- Fix a data race in authentication between AuthenticatedGroupAdder and cached token authenticator. ([#109969](https://github.com/kubernetes/kubernetes/pull/109969), [@sttts](https://github.com/sttts)) [SIG API Machinery and Auth] -- Fix bug that prevented the job controller from enforcing activeDeadlineSeconds when set. ([#110294](https://github.com/kubernetes/kubernetes/pull/110294), [@harshanarayana](https://github.com/harshanarayana)) -- Fix for volume reconstruction of CSI ephemeral volumes ([#108997](https://github.com/kubernetes/kubernetes/pull/108997), [@dobsonj](https://github.com/dobsonj)) [SIG Node, Storage and Testing] -- Fix incorrectly report scope for request_duration_seconds and request_slo_duration_seconds metrics for POST custom resources API calls. ([#110009](https://github.com/kubernetes/kubernetes/pull/110009), [@azylinski](https://github.com/azylinski)) [SIG Instrumentation] -- Fix printing resources with int64 fields ([#110408](https://github.com/kubernetes/kubernetes/pull/110408), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] -- Fix spurious kube-apiserver log warnings related to openapi v3 merging when creating or modifying CustomResourceDefinition objects ([#109880](https://github.com/kubernetes/kubernetes/pull/109880), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery and Testing] -- Fix the bug that reported incorrect metrics for the cluster IP allocator. ([#110027](https://github.com/kubernetes/kubernetes/pull/110027), [@tksm](https://github.com/tksm)) -- Fixed JobTrackingWithFinalizers when a pod succeeds after the job is considered failed, which led to API conflicts that blocked finishing the job. ([#111646](https://github.com/kubernetes/kubernetes/pull/111646), [@alculquicondor](https://github.com/alculquicondor)) -- Fixed `JobTrackingWithFinalizers` that: - - was declaring a job finished before counting all the created pods in the status - - was leaving pods with finalizers, blocking pod and job deletions - `JobTrackingWithFinalizers` is still disabled by default. ([#109486](https://github.com/kubernetes/kubernetes/pull/109486), [@alculquicondor](https://github.com/alculquicondor)) -- Fixed `NeedResize` build failure on Windows. ([#109721](https://github.com/kubernetes/kubernetes/pull/109721), [@andyzhangx](https://github.com/andyzhangx)) -- Fixed a bug in `kubectl` that caused the wrong result length when using `--chunk-size` and `--selector` together. ([#110652](https://github.com/kubernetes/kubernetes/pull/110652), [@Abirdcfly](https://github.com/Abirdcfly)) -- Fixed a bug involving Services of type `LoadBalancer` with multiple IPs and a `LoadBalancerSourceRanges` that overlaps the node IP. ([#109826](https://github.com/kubernetes/kubernetes/pull/109826), [@danwinship](https://github.com/danwinship)) -- Fixed a bug which could have allowed an improperly annotated LoadBalancer service to become active. ([#109601](https://github.com/kubernetes/kubernetes/pull/109601), [@mdbooth](https://github.com/mdbooth)) -- Fixed a kubelet issue that could result in invalid pod status updates to be sent to the api-server where pods would be reported in a terminal phase but also report a ready condition of true in some cases. ([#110256](https://github.com/kubernetes/kubernetes/pull/110256), [@bobbypage](https://github.com/bobbypage)) -- Fixed an issue on Windows nodes where `HostProcess` containers may not be created as expected. ([#110140](https://github.com/kubernetes/kubernetes/pull/110140), [@marosset](https://github.com/marosset)) -- Fixed bug where CSI migration doesn't count inline volumes for attach limit. ([#107787](https://github.com/kubernetes/kubernetes/pull/107787), [@Jiawei0227](https://github.com/Jiawei0227)) -- Fixed error "dbus: connection closed by user" after dbus daemon restarts. ([#110496](https://github.com/kubernetes/kubernetes/pull/110496), [@kolyshkin](https://github.com/kolyshkin)) -- Fixed image pull failure when `IMDS` is unavailable in kubelet startup. ([#110523](https://github.com/kubernetes/kubernetes/pull/110523), [@andyzhangx](https://github.com/andyzhangx)) -- Fixed memory leak in the job controller related to `JobTrackingWithFinalizers`. ([#111721](https://github.com/kubernetes/kubernetes/pull/111721), [@alculquicondor](https://github.com/alculquicondor)) -- Fixed mounting of iSCSI volumes over IPv6 networks. ([#110688](https://github.com/kubernetes/kubernetes/pull/110688), [@jsafrane](https://github.com/jsafrane)) -- Fixed performance issue when creating large objects using SSA with fully unspecified schemas ( preserveUnknownFields ). ([#111557](https://github.com/kubernetes/kubernetes/pull/111557), [@alexzielenski](https://github.com/alexzielenski)) -- Fixed s.RuntimeCgroups error condition and Fixed possible wrong log print. ([#110648](https://github.com/kubernetes/kubernetes/pull/110648), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) -- Fixed scheduling of **CronJob** with `@every X` schedules. ([#109250](https://github.com/kubernetes/kubernetes/pull/109250), [@d-honeybadger](https://github.com/d-honeybadger)) -- Fixed strict server-side field validation treating `metadata` fields as unknown fields. ([#109268](https://github.com/kubernetes/kubernetes/pull/109268), [@liggitt](https://github.com/liggitt)) -- Fixed the GCE firewall update when the destination IPs are changing so that firewalls reflect the IP updates of the LBs. ([#111186](https://github.com/kubernetes/kubernetes/pull/111186), [@sugangli](https://github.com/sugangli)) -- Fixed the bug that a `ServiceIPStaticSubrange` enabled cluster assigns duplicate IP addresses when the dynamic block is exhausted. ([#109928](https://github.com/kubernetes/kubernetes/pull/109928), [@tksm](https://github.com/tksm)) -- For scheduler plugin developers: the scheduler framework's shared PodInformer is now initialized with empty indexers. This enables scheduler plugins to add their extra indexers. Note that only non-conflict indexers are allowed to be added. ([#110663](https://github.com/kubernetes/kubernetes/pull/110663), [@fromanirh](https://github.com/fromanirh)) [SIG Scheduling] -- If the parent directory of the file specified in the `--audit-log-path` argument does not exist, Kubernetes now creates it. ([#110813](https://github.com/kubernetes/kubernetes/pull/110813), [@vpnachev](https://github.com/vpnachev)) [SIG Auth] -- Informer/reflector callers can now catch and unwrap specific API errors by type. ([#110076](https://github.com/kubernetes/kubernetes/pull/110076), [@karlkfi](https://github.com/karlkfi)) -- Kube-apiserver: Get, GetList and Watch requests that should be served by the apiserver cacher during shutdown will be rejected to avoid a deadlock situation leaving requests hanging. ([#108414](https://github.com/kubernetes/kubernetes/pull/108414), [@aojea](https://github.com/aojea)) -- Kubeadm: Fixed duplicate `unix://` prefix in node annotation. ([#110656](https://github.com/kubernetes/kubernetes/pull/110656), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: a bug was fixed due to which configurable `KubernetesVersion` was not being respected during kubeadm join. ([#110791](https://github.com/kubernetes/kubernetes/pull/110791), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: enabled the --experimental-watch-progress-notify-interval flag for etcd and set it to 5s. The flag specifies an interval at which etcd sends watch data to the kube-apiserver. ([#111383](https://github.com/kubernetes/kubernetes/pull/111383), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Kubeadm: now sets the host `OS` environment variables when executing `crictl` during image pulls. This fixed a bug where `*PROXY` environment variables did not affect `crictl` internet connectivity. ([#110134](https://github.com/kubernetes/kubernetes/pull/110134), [@mk46](https://github.com/mk46)) -- Kubeadm: only taint control plane nodes when the legacy "master" taint is present. This avoids the bug where "kubeadm upgrade" will re-taint a control plane node with the new "control plane" taint even if the user explicitly untainted the node. ([#109840](https://github.com/kubernetes/kubernetes/pull/109840), [@neolit123](https://github.com/neolit123)) -- Kubeadm: respect user specified image repository when using Kubernetes ci version ([#111017](https://github.com/kubernetes/kubernetes/pull/111017), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubeadm: support retry mechanism for removing container in reset phase ([#110837](https://github.com/kubernetes/kubernetes/pull/110837), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- Kubelet: added log for volume metric collection taking too long ([#107490](https://github.com/kubernetes/kubernetes/pull/107490), [@pacoxu](https://github.com/pacoxu)) -- Kubelet: added retry of checking Unix domain sockets on Windows nodes for the plugin registration mechanism. ([#110075](https://github.com/kubernetes/kubernetes/pull/110075), [@luckerby](https://github.com/luckerby)) -- Kubelet: added validation for labels provided with --node-labels. Malformed labels will result in errors. ([#109263](https://github.com/kubernetes/kubernetes/pull/109263), [@FeLvi-zzz](https://github.com/FeLvi-zzz)) -- Kubelet: wait for node allocatable ephemeral-storage data. ([#101882](https://github.com/kubernetes/kubernetes/pull/101882), [@jackfrancis](https://github.com/jackfrancis)) -- Kubernetes now correctly handles "search ." in the host's resolv.conf file by preserving the "." entry in the "resolv.conf" that the kubelet writes to pods. ([#109441](https://github.com/kubernetes/kubernetes/pull/109441), [@Miciah](https://github.com/Miciah)) [SIG Network and Node] -- Made usage of key encipherment optional in API validation. ([#111061](https://github.com/kubernetes/kubernetes/pull/111061), [@pacoxu](https://github.com/pacoxu)) -- ManagedFields time is correctly updated when the value of a managed field is modified. ([#110058](https://github.com/kubernetes/kubernetes/pull/110058), [@glebiller](https://github.com/glebiller)) -- OpenAPI will no longer duplicate these schemas: - - `io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions_v2` - - `io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta_v2` - - `io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference_v2` - - `io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails_v2` - - `io.k8s.apimachinery.pkg.apis.meta.v1.Status_v2` ([#110179](https://github.com/kubernetes/kubernetes/pull/110179), [@Jefftree](https://github.com/Jefftree)) -- Panics while calling validating admission webhook are caught and honor the fail open or fail closed setting. ([#108746](https://github.com/kubernetes/kubernetes/pull/108746), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] -- Pods now post their `readiness` during termination. ([#110191](https://github.com/kubernetes/kubernetes/pull/110191), [@rphillips](https://github.com/rphillips)) -- Reduced duration to sync proxy rules on Windows `kube-proxy` when using `kernelspace` mode. ([#109124](https://github.com/kubernetes/kubernetes/pull/109124), [@daschott](https://github.com/daschott)) -- Reduced the number of cloud API calls and service downtime caused by excessive re-configurations of cluster LBs with externalTrafficPolicy=Local when node readiness changes (https://github.com/kubernetes/kubernetes/issues/111539). The service controller (in cloud-controller-manager) will avoid resyncing nodes which are transitioning between `Ready` / `NotReady` (only for for ETP=Local Services). The LBs used for these services will solely rely on the health check probe defined by the `healthCheckNodePort` to determine if a particular node is to be used for traffic load balancing. ([#109706](https://github.com/kubernetes/kubernetes/pull/109706), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) -- Removed the recently re-introduced schedulability predicate ([#109706](https://github.com/kubernetes/kubernetes/pull/109706)) as to not have unschedulable nodes removed from load balancers back-end pools. ([#111691](https://github.com/kubernetes/kubernetes/pull/111691), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) -- Removed unused flags from `kubectl run` command. ([#110668](https://github.com/kubernetes/kubernetes/pull/110668), [@brianpursley](https://github.com/brianpursley)) -- Run kubelet, when there is an error exit, print the error log. ([#110691](https://github.com/kubernetes/kubernetes/pull/110691), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) -- The `priority_level_request_utilization` metric histogram is adjusted so that for the cases where `phase=waiting` the denominator is the cumulative capacity of all of the priority level's queues. - The `read_vs_write_current_requests` metric histogram is adjusted, in the case of using API Priority and Fairness instead of max-in-flight, to divide by the relevant limit: sum of queue capacities for waiting requests, sum of seat limits for executing requests. ([#110164](https://github.com/kubernetes/kubernetes/pull/110164), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) -- The commands `kubeadm certs renew` and `kubeadm certs check-expiration` now honor the `cert-dir` flag on a running Kubernetes cluster. ([#110709](https://github.com/kubernetes/kubernetes/pull/110709), [@chendave](https://github.com/chendave)) -- The kube-proxy `sync_proxy_rules_no_endpoints_total` metric now only counts local-traffic-policy services which have remote endpoints but not local endpoints. ([#109782](https://github.com/kubernetes/kubernetes/pull/109782), [@danwinship](https://github.com/danwinship)) -- The namespace editors and admins can now create leases.coordination.k8s.io and should use this type for leaderelection instead of configmaps. ([#111472](https://github.com/kubernetes/kubernetes/pull/111472), [@deads2k](https://github.com/deads2k)) -- The node annotation alpha.kubernetes.io/provided-node-ip is no longer set ONLY when `--cloud-provider=external`. Now, it is set on kubelet startup if the `--cloud-provider` flag is set at all, including the deprecated in-tree providers. ([#109794](https://github.com/kubernetes/kubernetes/pull/109794), [@mdbooth](https://github.com/mdbooth)) [SIG Network and Node] -- The pod phase lifecycle guarantees that terminal Pods, those whose states are `Unready` or `Succeeded`, can not regress and will have all container stopped. Hence, terminal Pods will never be reachable and should not publish their IP addresses on the `Endpoints` or `EndpointSlices`, independently of the Service `TolerateUnready` option. ([#110255](https://github.com/kubernetes/kubernetes/pull/110255), [@robscott](https://github.com/robscott)) -- Unmounted volumes correctly for reconstructed volumes even if mount operation fails after kubelet restart. ([#110670](https://github.com/kubernetes/kubernetes/pull/110670), [@gnufied](https://github.com/gnufied)) -- Updated max azure data disk count map with new VM types. ([#111406](https://github.com/kubernetes/kubernetes/pull/111406), [@bennerv](https://github.com/bennerv)) -- Updated to cAdvisor v0.44.1 to fix an issue where metrics generated by kubelet for pod network stats were empty in some cases. ([#109658](https://github.com/kubernetes/kubernetes/pull/109658), [@bobbypage](https://github.com/bobbypage)) -- Upgraded Azure/go-autorest/autorest to v0.11.27. ([#110371](https://github.com/kubernetes/kubernetes/pull/110371), [@andyzhangx](https://github.com/andyzhangx)) -- Upgraded functionality of `kubectl kustomize` as described at - https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.5.7. ([#111606](https://github.com/kubernetes/kubernetes/pull/111606), [@natasha41575](https://github.com/natasha41575)) -- Use checksums instead of fsyncs to ensure discovery cache integrity ([#110851](https://github.com/kubernetes/kubernetes/pull/110851), [@negz](https://github.com/negz)) [SIG API Machinery] -- UserName check for 'ContainerAdministrator' is now case-insensitive if runAsNonRoot is set to true on Windows. ([#111009](https://github.com/kubernetes/kubernetes/pull/111009), [@marosset](https://github.com/marosset)) -- Volumes are no longer detached from healthy nodes after 6 minutes timeout. 6 minute force-detach timeout is used only for unhealthy nodes (`node.status.conditions["Ready"]!= true`). ([#110721](https://github.com/kubernetes/kubernetes/pull/110721), [@jsafrane](https://github.com/jsafrane)) -- When metrics are counted, discard the wrong container StartTime metrics ([#110880](https://github.com/kubernetes/kubernetes/pull/110880), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Instrumentation and Node] -- Windows kubelet plugin Watcher now working as intended. ([#111439](https://github.com/kubernetes/kubernetes/pull/111439), [@claudiubelu](https://github.com/claudiubelu)) -- [aws] Fixed a bug which reduces the number of unnecessary calls to STS in the event of assume role failures in the legacy cloud provider ([#110706](https://github.com/kubernetes/kubernetes/pull/110706), [@prateekgogia](https://github.com/prateekgogia)) [SIG Cloud Provider] -- `pod.Spec.RuntimeClassName` field is now available in kubectl describe command. ([#110914](https://github.com/kubernetes/kubernetes/pull/110914), [@yeahdongcn](https://github.com/yeahdongcn)) - -### Other (Cleanup or Flake) - -- Add missing powershell option to kubectl completion command short description. ([#109773](https://github.com/kubernetes/kubernetes/pull/109773), [@danielhelfand](https://github.com/danielhelfand)) -- Added e2e test flag to specify which volume drivers should be installed. This deprecated the ENABLE_STORAGE_GCE_PD_DRIVER environment variable. ([#111481](https://github.com/kubernetes/kubernetes/pull/111481), [@mattcary](https://github.com/mattcary)) -- Changed PV framework delete timeout to 5 minutes as documented. ([#109764](https://github.com/kubernetes/kubernetes/pull/109764), [@saikat-royc](https://github.com/saikat-royc)) -- Default burst limit for the discovery client set to 300. ([#109141](https://github.com/kubernetes/kubernetes/pull/109141), [@ulucinar](https://github.com/ulucinar)) -- Deleted the `apimachinery/clock` package. Please use `k8s.io/utils/clock` package instead. ([#109752](https://github.com/kubernetes/kubernetes/pull/109752), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) -- Feature gates that graduated to GA in 1.23 or earlier and were unconditionally enabled have been removed: CSIServiceAccountToken, ConfigurableFSGroupPolicy, EndpointSlice, EndpointSliceNodeName, EndpointSliceProxying, GenericEphemeralVolume, IPv6DualStack, IngressClassNamespacedParams, StorageObjectInUseProtection, TTLAfterFinished, VolumeSubpath, WindowsEndpointSliceProxying. ([#109435](https://github.com/kubernetes/kubernetes/pull/109435), [@pohly](https://github.com/pohly)) -- For Linux, `kube-proxy` uses a new “distroless” container image, instead of an image based on Debian. ([#111060](https://github.com/kubernetes/kubernetes/pull/111060), [@aojea](https://github.com/aojea)) -- For resources built into an apiserver, the server now logs at `-v=3` whether it is using watch caching. ([#109175](https://github.com/kubernetes/kubernetes/pull/109175), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] -- GlusterFS provisioner (`kubernetes.io/glusterfs`) has been deprecated in this release. ([#111485](https://github.com/kubernetes/kubernetes/pull/111485), [@humblec](https://github.com/humblec)) -- Improved `kubectl run` and `kubectl debug` error messages upon attaching failures. ([#110764](https://github.com/kubernetes/kubernetes/pull/110764), [@soltysh](https://github.com/soltysh)) -- In the event that more than one IngressClass is designated "default", the DefaultIngressClass admission controller will choose one rather than fail. ([#110974](https://github.com/kubernetes/kubernetes/pull/110974), [@kidddddddddddddddddddddd](https://github.com/kidddddddddddddddddddddd)) [SIG Network] -- Kube-proxy: The "userspace" proxy-mode is deprecated on Linux and Windows, despite being the default on Windows. As of v1.26, the default mode for Windows will change to 'kernelspace'. ([#110762](https://github.com/kubernetes/kubernetes/pull/110762), [@pandaamanda](https://github.com/pandaamanda)) [SIG Network] -- Kubeadm: perform additional dockershim cleanup. Treat all container runtimes as remote by using the flag "--container-runtime=remote", given dockershim was removed in 1.24 and given kubeadm 1.25 supports a kubelet version of 1.24 and 1.25. The flag "--network-plugin" will no longer be used for new clusters. Stop cleaning up the following dockershim related directories on "kubeadm reset": "/var/lib/dockershim", "/var/runkubernetes", "/var/lib/cni" ([#110022](https://github.com/kubernetes/kubernetes/pull/110022), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubelet's deprecated `--experimental-kernel-memcg-notification` flag is now removed. Use `--kernel-memcg-notification` instead. ([#109388](https://github.com/kubernetes/kubernetes/pull/109388), [@ialidzhikov](https://github.com/ialidzhikov)) -- Kubelet: Silenced flag output on errors. ([#110728](https://github.com/kubernetes/kubernetes/pull/110728), [@howardjohn](https://github.com/howardjohn)) -- Kubernetes binaries are now built-in `module` mode instead of `GOPATH` mode. ([#109464](https://github.com/kubernetes/kubernetes/pull/109464), [@liggitt](https://github.com/liggitt)) -- Removed branch `release-1.20` from prom bot due to EOL. ([#110748](https://github.com/kubernetes/kubernetes/pull/110748), [@cpanato](https://github.com/cpanato)) -- Removed deprecated kubectl.kubernetes.io/default-logs-container support ([#109254](https://github.com/kubernetes/kubernetes/pull/109254), [@pacoxu](https://github.com/pacoxu)) -- Renamed `apiserver_watch_cache_watch_cache_initializations_total` to `apiserver_watch_cache_initializations_total` ([#109579](https://github.com/kubernetes/kubernetes/pull/109579), [@logicalhan](https://github.com/logicalhan)) -- Shell completion is now provided for the "--subresource" flag. ([#109070](https://github.com/kubernetes/kubernetes/pull/109070), [@marckhouzam](https://github.com/marckhouzam)) -- Some apiserver metrics were changed, as follows. - - `priority_level_seat_count_samples` is replaced with `priority_level_seat_utilization`, which samples every nanosecond rather than every millisecond; the old metric conveyed utilization despite its name. - - `priority_level_seat_count_watermarks` is removed. - - `priority_level_request_count_samples` is replaced with `priority_level_request_utilization`, which samples every nanosecond rather than every millisecond; the old metric conveyed utilization despite its name. - - `priority_level_request_count_watermarks` is removed. - - `read_vs_write_request_count_samples` is replaced with `read_vs_write_current_requests`, which samples every nanosecond rather than every second; the new metric, like the old one, measures utilization when the max-in-flight filter is used and number of requests when the API Priority and Fairness filter is used. - - `read_vs_write_request_count_watermarks` is removed. ([#110104](https://github.com/kubernetes/kubernetes/pull/110104), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery, Instrumentation and Testing] -- The kube-controller-manager's deprecated `--experimental-cluster-signing-duration` flag is now removed. Adapt your machinery to use the `--cluster-signing-duration` flag that is available since v1.19. ([#108476](https://github.com/kubernetes/kubernetes/pull/108476), [@ialidzhikov](https://github.com/ialidzhikov)) -- The kube-scheduler ComponentConfig v1beta2 is deprecated in v1.25. ([#111547](https://github.com/kubernetes/kubernetes/pull/111547), [@kerthcet](https://github.com/kerthcet)) -- The kubelet no longer supports collecting accelerator metrics through cAdvisor. The feature gate `DisableAcceleratorUsageMetrics` is now GA and cannot be disabled. ([#110940](https://github.com/kubernetes/kubernetes/pull/110940), [@pacoxu](https://github.com/pacoxu)) -- Updated cri-tools to [v1.24.2(https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.24.2). ([#109813](https://github.com/kubernetes/kubernetes/pull/109813), [@saschagrunert](https://github.com/saschagrunert)) -- `apiserver_dropped_requests` is dropped from this release since `apiserver_request_total` can now be used to track dropped requests. `etcd_object_counts` is also removed in favor of `apiserver_storage_objects`. `apiserver_registered_watchers` is also removed in favor of `apiserver_longrunning_requests`. ([#110337](https://github.com/kubernetes/kubernetes/pull/110337), [@logicalhan](https://github.com/logicalhan)) -- `apiserver_longrunning_gauge` was removed from the codebase. Please use `apiserver_longrunning_requests` - instead. - ([#110310](https://github.com/kubernetes/kubernetes/pull/110310), [@logicalhan](https://github.com/logicalhan)) +## What's New (Major Themes) + +### PodSecurityPolicy is Removed, Pod Security Admission graduates to Stable + +PodSecurityPolicy was initially [deprecated in v1.21](/blog/2021/04/06/podsecuritypolicy-deprecation-past-present-and-future/), and with the release of v1.25, it has been removed. The updates required to improve its usability would have introduced breaking changes, so it became necessary to remove it in favor of a more friendly replacement. That replacement is [Pod Security Admission](/docs/concepts/security/pod-security-admission/), which graduates to Stable with this release. If you are currently relying on PodSecurityPolicy, please follow the instructions for [migration to Pod Security Admission](/docs/tasks/configure-pod-container/migrate-from-psp/). + +### Ephemeral Containers Graduate to Stable + +[Ephemeral Containers](/docs/concepts/workloads/pods/ephemeral-containers/) are containers that exist for only a limited time within an existing pod. This is particularly useful for troubleshooting when you need to examine another container but cannot use `kubectl exec` because that container has crashed or its image lacks debugging utilities. Ephemeral containers graduated to Beta in Kubernetes v1.23, and with this release, the feature graduates to Stable. + +### Support for cgroups v2 Graduates to Stable + +It has been more than two years since the Linux kernel cgroups v2 API was declared stable. With some distributions now defaulting to this API, Kubernetes must support it to continue operating on those distributions. cgroups v2 offers several improvements over cgroups v1, for more information see the [cgroups v2](https://kubernetes.io/docs/concepts/architecture/cgroups/) documentation. While cgroups v1 will continue to be supported, this enhancement puts Kubernetes to be ready for eventual deprecation and replacement in favor of v2. + + +### Windows support improved + +- [Performance dashboards](http://perf-dash.k8s.io/#/?jobname=soak-tests-capz-windows-2019) added support for Windows +- [Unit tests](https://github.com/kubernetes/kubernetes/issues/51540) added support for Windows +- [Conformance tests](https://github.com/kubernetes/kubernetes/pull/108592) added support for Windows +- New repository created for [Windows Operational Readiness](https://github.com/kubernetes-sigs/windows-operational-readiness) + +### Moved container registry service from k8s.gcr.io to registry.k8s.io + +[Moving container registry from k8s.gcr.io to registry.k8s.io](https://github.com/kubernetes/kubernetes/pull/109938) got merged. For more details, see the [wiki page](https://github.com/kubernetes/k8s.io/wiki/New-Registry-url-for-Kubernetes-\(registry.k8s.io\)), [announcement](https://groups.google.com/a/kubernetes.io/g/dev/c/DYZYNQ_A6_c/m/oD9_Q8Q9AAAJ) was sent to the kubernetes development mailing list. + +### Promoted SeccompDefault to Beta + +SeccompDefault promoted to beta, see the tutorial [Restrict a Container's Syscalls with seccomp](https://kubernetes.io/docs/tutorials/security/seccomp/#enable-the-use-of-runtimedefault-as-the-default-seccomp-profile-for-all-workloads) for more details. + +### Promoted endPort in Network Policy to Stable + +Promoted `endPort` in [Network Policy](https://kubernetes.io/docs/concepts/services-networking/network-policies/#targeting-a-range-of-ports) to GA. Network Policy providers that support `endPort` field now can use it to specify a range of ports to apply a Network Policy. Previously, each Network Policy could only target a single port. + +Please be aware that `endPort` field **MUST BE SUPPORTED** by the Network Policy provider. If your provider does not support `endPort`, and this field is specified in a Network Policy, the Network Policy will be created covering only the port field (single port). + +### Promoted Local Ephemeral Storage Capacity Isolation to Stable +The [Local Ephemeral Storage Capacity Isolation](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/361-local-ephemeral-storage-isolation) feature moved to GA. This was introduced as alpha in 1.8, moved to beta in 1.10, and it is now a stable feature. It provides support for capacity isolation of local ephemeral storage between pods, such as `EmptyDir`, so that a pod can be hard limited in its consumption of shared resources by evicting Pods if its consumption of local ephemeral storage exceeds that limit. + +### Promoted core CSI Migration to Stable + +[CSI Migration](https://kubernetes.io/blog/2021/12/10/storage-in-tree-to-csi-migration-status-update/#quick-recap-what-is-csi-migration-and-why-migrate) is an ongoing effort that SIG Storage has been working on for a few releases. The goal is to move in-tree volume plugins to out-of-tree CSI drivers and eventually remove the in-tree volume plugins. The [core CSI Migration](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/625-csi-migration) feature moved to GA. CSI Migration for GCE PD and AWS EBS also moved to GA. CSI Migration for vSphere remains in beta (but is on by default). CSI Migration for Portworx moved to Beta (but is off-by-default). + + +### Promoted CSI Ephemeral Volume to Stable + +The [CSI Ephemeral Volume](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/596-csi-inline-volumes) feature allows CSI volumes to be specified directly in the pod specification for ephemeral use cases. They can be used to inject arbitrary states, such as configuration, secrets, identity, variables or similar information, directly inside pods using a mounted volume. This was initially introduced in 1.15 as an alpha feature, and it moved to GA. This feature is used by some CSI drivers such as the [secret-store CSI driver](https://github.com/kubernetes-sigs/secrets-store-csi-driver). + +### Promoted CRD Validation Expression Language to Beta + +[CRD Validation Expression Language](https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/2876-crd-validation-expression-language/README.mdv) is promoted to beta, which makes it possible to declare how custom resources are validated using the [Common Expression Language (CEL)](https://github.com/google/cel-spec). Please see the [validation rules](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#validation-rules) guide. + +### Promoted Server Side Unknown Field Validation to Beta + +Promoted the `ServerSideFieldValidation` feature gate to beta (on by default). This allows optionally triggering schema validation on the API server that errors when unknown fields are detected. This allows the removal of client-side validation from kubectl while maintaining the same core functionality of erroring out on requests that contain unknown or invalid fields. + + +### Introduced KMS v2 + +Introduce KMS v2alpha1 API to add performance, rotation, and observability improvements. Encrypt data at rest (ie Kubernetes `Secrets`) with DEK using AES-GCM instead of AES-CBC for kms data encryption. No user action is required. Reads with AES-GCM and AES-CBC will continue to be allowed. See the guide [Using a KMS provider for data encryption](https://kubernetes.io/docs/tasks/administer-cluster/kms-provider/) for more information. + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- Deprecated beta APIs scheduled for removal in 1.25 are no longer served. See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-25 for more information. ([#108797](https://github.com/kubernetes/kubernetes/pull/108797), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Instrumentation and Testing] + - Encrypted data with DEK using AES-GCM instead of AES-CBC for kms data encryption. No user action required. Reads with AES-GCM and AES-CBC will continue to be allowed. ([#111119](https://github.com/kubernetes/kubernetes/pull/111119), [@aramase](https://github.com/aramase)) + - End-to-end testing has been migrated from Ginkgo v1 to v2. + + When running test/e2e via the Ginkgo CLI, the v2 CLI must be used and `-timeout=24h` (or some other, suitable value) must be passed because the default timeout was reduced from 24h to 1h. When running it via `go test`, the corresponding `-args` parameter is `-ginkgo.timeout=24h`. To build the CLI in the Kubernetes repo, use `make all WHAT=github.com/onsi/ginkgo/v2/ginkgo`. + Ginkgo V2 doesn't accept go test's `-parallel` flags to parallelize Ginkgo specs, please switch to use `ginkgo -p` or `ginkgo -procs=N` instead. ([#109111](https://github.com/kubernetes/kubernetes/pull/109111), [@chendave](https://github.com/chendave)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling, Storage, Testing and Windows] + - No action required; No API/CLI changed; Add new Windows Image Support ([#110333](https://github.com/kubernetes/kubernetes/pull/110333), [@liurupeng](https://github.com/liurupeng)) [SIG Cloud Provider and Windows] + - The intree volume plugin flocker support was completely removed from Kubernetes. ([#111618](https://github.com/kubernetes/kubernetes/pull/111618), [@Jiawei0227](https://github.com/Jiawei0227)) + - The intree volume plugin quobyte support has been completely removed from Kubernetes. ([#111619](https://github.com/kubernetes/kubernetes/pull/111619), [@Jiawei0227](https://github.com/Jiawei0227)) + - The intree volume plugin storageos support has been completely removed from Kubernetes. ([#111620](https://github.com/kubernetes/kubernetes/pull/111620), [@Jiawei0227](https://github.com/Jiawei0227)) + - There is a new OCI image registry (`registry.k8s.io`) that can be used to pull Kubernetes images. The old registry (`k8s.gcr.io`) will continue to be supported for the foreseeable future, but the new name should perform better because it frontends equivalent mirrors in other clouds. Please point your clusters to the new registry going forward. \n\nAdmission/Policy integrations that have an allowlist of registries need to include `registry.k8s.io` alongside `k8s.gcr.io`.\nAir-gapped environments and image garbage-collection configurations will need to update to pre-pull and preserve required images under `registry.k8s.io` as well as `k8s.gcr.io`. ([#109938](https://github.com/kubernetes/kubernetes/pull/109938), [@dims](https://github.com/dims)) + +## Changes by Kind + +### Deprecation + +- API server's deprecated `--service-account-api-audiences` flag was removed. Use `--api-audiences` instead. ([#108624](https://github.com/kubernetes/kubernetes/pull/108624), [@ialidzhikov](https://github.com/ialidzhikov)) +- Ginkgo.Measure has been deprecated in Ginkgo V2, switch to use gomega/gmeasure instead ([#111065](https://github.com/kubernetes/kubernetes/pull/111065), [@chendave](https://github.com/chendave)) [SIG Autoscaling and Testing] +- Kube-controller-manager: Removed flags `deleting-pods-qps`, `deleting-pods-burst`, and `register-retry-count`. ([#109612](https://github.com/kubernetes/kubernetes/pull/109612), [@pandaamanda](https://github.com/pandaamanda)) +- Kubeadm: during "upgrade apply/diff/node", in case the `ClusterConfiguration.imageRepository` stored in the "kubeadm-config" `ConfigMap` contains the legacy "k8s.gcr.io" repository, modify it to the new default "registry.k8s.io". Reflect the change in the in-cluster `ConfigMap` only during "upgrade apply". ([#110343](https://github.com/kubernetes/kubernetes/pull/110343), [@neolit123](https://github.com/neolit123)) +- Kubeadm: graduated the kubeadm specific feature gate `UnversionedKubeletConfigMap` to GA and locked it to `true` by default. The kubelet related ConfigMap and RBAC rules are now locked to have a simplified naming `*kubelet-config` instead of the legacy naming `*kubelet-config-x.yy`, where `x.yy` was the version of the control plane. If you have previously used the old naming format with `UnversionedKubeletConfigMap=false`, you must manually copy the config map from `kube-system/kubelet-config-x.yy` to `kube-system/kubelet-config` before upgrading to `v1.25`. ([#110327](https://github.com/kubernetes/kubernetes/pull/110327), [@neolit123](https://github.com/neolit123)) +- Kubeadm: stop applying the `node-role.kubernetes.io/master:NoSchedule` taint to control plane nodes for new clusters. Remove the taint from existing control plane nodes during "kubeadm upgrade apply" ([#110095](https://github.com/kubernetes/kubernetes/pull/110095), [@neolit123](https://github.com/neolit123)) +- Support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io`, deprecated since v1.19, was partially removed. Kubelets no longer support the annotations, use of the annotations in static pods is no longer supported, and the seccomp annotations are no longer auto-populated when pods with seccomp fields are created. Auto-population of the seccomp fields from the annotations is planned to be removed in 1.27. Pods should use the corresponding pod or container `securityContext.seccompProfile` field instead. ([#109819](https://github.com/kubernetes/kubernetes/pull/109819), [@saschagrunert](https://github.com/saschagrunert)) +- The `gcp` and `azure` auth plugins have been removed from client-go and kubectl. See https://github.com/Azure/kubelogin and https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke ([#110013](https://github.com/kubernetes/kubernetes/pull/110013), [@enj](https://github.com/enj)) +- The beta `PodSecurityPolicy` admission plugin, deprecated since 1.21, is removed. Follow the instructions at https://kubernetes.io/docs/tasks/configure-pod-container/migrate-from-psp/ to migrate to the built-in PodSecurity admission plugin (or to another third-party policy webhook) prior to upgrading to v1.25. ([#109798](https://github.com/kubernetes/kubernetes/pull/109798), [@liggitt](https://github.com/liggitt)) +- VSphere releases less than 7.0u2 are not supported for in-tree vSphere volume as of Kubernetes v1.25. Please consider upgrading vSphere (both ESXi and vCenter) to 7.0u2 or above. ([#111255](https://github.com/kubernetes/kubernetes/pull/111255), [@divyenpatel](https://github.com/divyenpatel)) +- Windows winkernel kube-proxy no longer supports Windows HNS v1 APIs. ([#110957](https://github.com/kubernetes/kubernetes/pull/110957), [@papagalu](https://github.com/papagalu)) + +### API Change + +- Add `NodeInclusionPolicy` to `TopologySpreadConstraints` in PodSpec. ([#108492](https://github.com/kubernetes/kubernetes/pull/108492), [@kerthcet](https://github.com/kerthcet)) +- Added KMS v2alpha1 support. ([#111126](https://github.com/kubernetes/kubernetes/pull/111126), [@aramase](https://github.com/aramase)) +- Added a deprecated warning for node beta label usage in PV/SC/RC and CSI Storage Capacity. ([#108554](https://github.com/kubernetes/kubernetes/pull/108554), [@pacoxu](https://github.com/pacoxu)) +- Added a new feature gate `CheckpointRestore` to enable support to checkpoint containers. If enabled it is possible to checkpoint a container using the newly kubelet API (/checkpoint/{podNamespace}/{podName}/{containerName}). ([#104907](https://github.com/kubernetes/kubernetes/pull/104907), [@adrianreber](https://github.com/adrianreber)) [SIG Node and Testing] +- Added alpha support for user namespaces in pods phase 1 (KEP 127, feature gate: UserNamespacesStatelessPodsSupport) ([#111090](https://github.com/kubernetes/kubernetes/pull/111090), [@rata](https://github.com/rata)) +- As of v1.25, the PodSecurity `restricted` level no longer requires pods that set .spec.os.name="windows" to also set Linux-specific securityContext fields. If a 1.25+ cluster has unsupported [out-of-skew](https://kubernetes.io/releases/version-skew-policy/#kubelet) nodes prior to v1.23 and wants to ensure namespaces enforcing the `restricted` policy continue to require Linux-specific securityContext fields on all pods, ensure a version of the `restricted` prior to v1.25 is selected by labeling the namespace (for example, `pod-security.kubernetes.io/enforce-version: v1.24`) ([#105919](https://github.com/kubernetes/kubernetes/pull/105919), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- Changed ownership semantics of PersistentVolume's spec.claimRef from `atomic` to `granular`. ([#110495](https://github.com/kubernetes/kubernetes/pull/110495), [@alexzielenski](https://github.com/alexzielenski)) +- Extended ContainerStatus CRI API to allow runtime response with container resource requests and limits that are in effect. + - UpdateContainerResources CRI API now supports both Linux and Windows. ([#111645](https://github.com/kubernetes/kubernetes/pull/111645), [@vinaykul](https://github.com/vinaykul)) +- For v1.25, Kubernetes will be using Golang 1.19, In this PR the version is updated to 1.19rc2 as GA is not yet available. ([#111254](https://github.com/kubernetes/kubernetes/pull/111254), [@dims](https://github.com/dims)) +- Introduced NodeIPAM support for multiple ClusterCIDRs ([#2593](https://github.com/kubernetes/enhancements/issues/2593)) as an alpha feature. + Set feature gate `MultiCIDRRangeAllocator=true`, determines whether the `MultiCIDRRangeAllocator` controller can be used, while the kube-controller-manager flag below will pick the active controller. + Enabled the `MultiCIDRRangeAllocator` by setting `--cidr-allocator-type=MultiCIDRRangeAllocator` flag in kube-controller-manager. ([#109090](https://github.com/kubernetes/kubernetes/pull/109090), [@sarveshr7](https://github.com/sarveshr7)) +- Introduced PodHasNetwork condition for pods. ([#111358](https://github.com/kubernetes/kubernetes/pull/111358), [@ddebroy](https://github.com/ddebroy)) +- Introduced support for handling pod failures with respect to the configured pod failure policy rules. ([#111113](https://github.com/kubernetes/kubernetes/pull/111113), [@mimowo](https://github.com/mimowo)) +- Introduction of the `DisruptionTarget` pod condition type. Its `reason` field indicates the reason for pod termination: + - PreemptionByKubeScheduler (Pod preempted by kube-scheduler) + - DeletionByTaintManager (Pod deleted by taint manager due to NoExecute taint) + - EvictionByEvictionAPI (Pod evicted by Eviction API) + - DeletionByPodGC (an orphaned Pod deleted by PodGC) ([#110959](https://github.com/kubernetes/kubernetes/pull/110959), [@mimowo](https://github.com/mimowo)) +- Kube-Scheduler ComponentConfig is graduated to GA, `kubescheduler.config.k8s.io/v1` is available now. + Plugin `SelectorSpread` is removed in v1. ([#110534](https://github.com/kubernetes/kubernetes/pull/110534), [@kerthcet](https://github.com/kerthcet)) +- Local Storage Capacity Isolation feature is GA in 1.25 release. For systems (rootless) that cannot check root file system, please use kubelet config --local-storage-capacity-isolation=false to disable this feature. Once disabled, pod cannot set local ephemeral storage request/limit, and emptyDir sizeLimit niether. ([#111513](https://github.com/kubernetes/kubernetes/pull/111513), [@jingxu97](https://github.com/jingxu97)) +- Make PodSpec.Ports' description clearer on how this information is only informational and how it can be incorrect. ([#110564](https://github.com/kubernetes/kubernetes/pull/110564), [@j4m3s-s](https://github.com/j4m3s-s)) [SIG API Machinery, Network and Node] +- On compatible systems, a mounter's Unmount implementation is changed to not return an error when the specified target can be detected as not a mount point. On Linux, the behavior of detecting a mount point depends on `umount` command is validated when the mounter is created. Additionally, mount point checks will be skipped in CleanupMountPoint/CleanupMountWithForce if the mounter's Unmount having the changed behavior of not returning error when target is not a mount point. ([#109676](https://github.com/kubernetes/kubernetes/pull/109676), [@cartermckinnon](https://github.com/cartermckinnon)) [SIG Storage] +- PersistentVolumeClaim objects are no longer left with storage class set to `nil` forever, but will be updated retroactively once any StorageClass is set or created as default. ([#111467](https://github.com/kubernetes/kubernetes/pull/111467), [@RomanBednar](https://github.com/RomanBednar)) +- Promote StatefulSet minReadySeconds to GA. This means `--feature-gates=StatefulSetMinReadySeconds=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation ([#110896](https://github.com/kubernetes/kubernetes/pull/110896), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG API Machinery, Apps and Testing] +- Promoted CronJob's TimeZone support to beta. ([#111435](https://github.com/kubernetes/kubernetes/pull/111435), [@soltysh](https://github.com/soltysh)) +- Promoted DaemonSet MaxSurge to GA. This means `--feature-gates=DaemonSetUpdateSurge=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation . ([#111194](https://github.com/kubernetes/kubernetes/pull/111194), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- Scheduler: included supported ScoringStrategyType list in error message for NodeResourcesFit plugin ([#111206](https://github.com/kubernetes/kubernetes/pull/111206), [@SataQiu](https://github.com/SataQiu)) +- The Go API for logging configuration in `k8s.io/component-base` was moved to `k8s.io/component-base/logs/api/v1`. The configuration file format and command line flags are the same as before. ([#105797](https://github.com/kubernetes/kubernetes/pull/105797), [@pohly](https://github.com/pohly)) +- The Pod `spec.podOS` field is promoted to GA. The `IdentifyPodOS` feature gate unconditionally enabled, and will no longer be accepted as a `--feature-gates` parameter in 1.27. ([#111229](https://github.com/kubernetes/kubernetes/pull/111229), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) +- The PodTopologySpread is respected after rolling upgrades. ([#111441](https://github.com/kubernetes/kubernetes/pull/111441), [@denkensk](https://github.com/denkensk)) +- The `CSIInlineVolume` feature has moved from beta to GA. ([#111258](https://github.com/kubernetes/kubernetes/pull/111258), [@dobsonj](https://github.com/dobsonj)) +- The `PodSecurity` admission plugin has graduated to GA and is enabled by default. The admission configuration version has been promoted to `pod-security.admission.config.k8s.io/v1`. ([#110459](https://github.com/kubernetes/kubernetes/pull/110459), [@wangyysde](https://github.com/wangyysde)) +- The `endPort` field in Network Policy is now promoted to GA + + Network Policy providers that support `endPort` field now can use it to specify a range of ports to apply a Network Policy. + + Previously, each Network Policy could only target a single port. + + Please be aware that `endPort` field MUST BE SUPPORTED by the Network Policy provider. In case your provider does not support `endPort` and this field is specified in a Network Policy, the Network Policy will be created covering only the port field (single port). ([#110868](https://github.com/kubernetes/kubernetes/pull/110868), [@rikatz](https://github.com/rikatz)) +- The `metadata.clusterName` field is completely removed. This should not have any user-visible impact. ([#109602](https://github.com/kubernetes/kubernetes/pull/109602), [@lavalamp](https://github.com/lavalamp)) +- The `minDomains` field in Pod Topology Spread is graduated to beta ([#110388](https://github.com/kubernetes/kubernetes/pull/110388), [@sanposhiho](https://github.com/sanposhiho)) [SIG API Machinery and Apps] +- The command line flag `enable-taint-manager` for kube-controller-manager is deprecated and will be removed in 1.26. The feature that it supports, taint based eviction, is enabled by default and will continue to be implicitly enabled when the flag is removed. ([#111411](https://github.com/kubernetes/kubernetes/pull/111411), [@alculquicondor](https://github.com/alculquicondor)) +- This release added support for `NodeExpandSecret` for CSI driver client which enables the CSI drivers to make use of this secret while performing node expansion operation based on the user request. Previously there was no secret provided as part of the `nodeexpansion` call, thus CSI drivers did not make use of the same while expanding the volume at the node side. ([#105963](https://github.com/kubernetes/kubernetes/pull/105963), [@zhucan](https://github.com/zhucan)) +- [Ephemeral Containers](https://kubernetes.io/docs/concepts/workloads/pods/ephemeral-containers/) are now generally available (GA). The `EphemeralContainers` feature gate is always enabled and should be removed from `--feature-gates` flag on the kube-apiserver and the kubelet command lines. The `EphemeralContainers` feature gate is [deprecated and scheduled for removal](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation) in a future release. ([#111402](https://github.com/kubernetes/kubernetes/pull/111402), [@verb](https://github.com/verb)) + +### Feature + +- Added KMS `v2alpha1` API. ([#110201](https://github.com/kubernetes/kubernetes/pull/110201), [@aramase](https://github.com/aramase)) +- Added Service Account field in the output of `kubectl describe pod` command. ([#111192](https://github.com/kubernetes/kubernetes/pull/111192), [@aufarg](https://github.com/aufarg)) +- Added a new `align-by-socket` policy option to cpu manager `static` policy. When enabled CPU's to be aligned at socket boundary rather than NUMA boundary. ([#111278](https://github.com/kubernetes/kubernetes/pull/111278), [@arpitsardhana](https://github.com/arpitsardhana)) +- Added container probe duration metrics. ([#104484](https://github.com/kubernetes/kubernetes/pull/104484), [@jackfrancis](https://github.com/jackfrancis)) +- Added new flags into alpha events such as --output, --types, --no-headers. ([#110007](https://github.com/kubernetes/kubernetes/pull/110007), [@ardaguclu](https://github.com/ardaguclu)) +- Added sum feature to `kubectl top pod` ([#105100](https://github.com/kubernetes/kubernetes/pull/105100), [@lauchokyip](https://github.com/lauchokyip)) +- Added the `Apply` and `ApplyStatus` methods to the dynamic `ResourceInterface` ([#109443](https://github.com/kubernetes/kubernetes/pull/109443), [@kevindelgado](https://github.com/kevindelgado)) +- Feature gate `CSIMigration` was locked to enabled. `CSIMigration` is GA now. The feature gate will be removed in `v1.27`. ([#110410](https://github.com/kubernetes/kubernetes/pull/110410), [@Jiawei0227](https://github.com/Jiawei0227)) +- Feature gate `ProbeTerminationGracePeriod` is enabled by default. ([#108541](https://github.com/kubernetes/kubernetes/pull/108541), [@kerthcet](https://github.com/kerthcet)) +- Ginkgo: when e2e tests are invoked through ginkgo-e2e.sh, the default now is to use color escape sequences only when connected to a terminal. `GINKGO_NO_COLOR=y/n` can be used to override that default. ([#111633](https://github.com/kubernetes/kubernetes/pull/111633), [@pohly](https://github.com/pohly)) +- Graduated SeccompDefault to `beta`. The Kubelet feature gate is now enabled by default and the configuration/CLI flag still defaults to `false`. ([#110805](https://github.com/kubernetes/kubernetes/pull/110805), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing] +- Graduated ServerSideFieldValidation to `beta`. Schema validation is performed server-side and requests will receive warnings for any invalid/unknown fields by default. ([#110178](https://github.com/kubernetes/kubernetes/pull/110178), [@kevindelgado](https://github.com/kevindelgado)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Storage and Testing] +- Graduated `CustomResourceValidationExpressions` to `beta`. The `CustomResourceValidationExpressions` feature gate is now enabled by default. ([#111524](https://github.com/kubernetes/kubernetes/pull/111524), [@cici37](https://github.com/cici37)) +- Graduated `ServiceIPStaticSubrange` feature to Beta (disabled by default). ([#110419](https://github.com/kubernetes/kubernetes/pull/110419), [@aojea](https://github.com/aojea)) +- If a Pod has a DisruptionTarget condition with status=True for more than 2 minutes without getting a DeletionTimestamp, the control plane resets it to status=False. ([#111475](https://github.com/kubernetes/kubernetes/pull/111475), [@alculquicondor](https://github.com/alculquicondor)) +- In "large" clusters, kube-proxy in iptables mode will now sometimes + leave unused rules in iptables for a while (up to `--iptables-sync-period`) + before deleting them. This improves performance by not requiring it to + check for stale rules on every sync. (In smaller clusters, it will still + remove unused rules immediately once they are no longer used.) + + (The threshold for "large" used here is currently "1000 endpoints" but + this is subject to change.) ([#110334](https://github.com/kubernetes/kubernetes/pull/110334), [@danwinship](https://github.com/danwinship)) +- Kube-up now includes CoreDNS version v1.9.3. ([#110488](https://github.com/kubernetes/kubernetes/pull/110488), [@mzaian](https://github.com/mzaian)) +- Kubeadm: Added support for additional authentication strategies in `kubeadm join` with discovery/kubeconfig file: client-go authentication plugins (`exec`), `tokenFile`, and `authProvider.` ([#110553](https://github.com/kubernetes/kubernetes/pull/110553), [@tallaxes](https://github.com/tallaxes)) +- Kubeadm: Update CoreDNS to v1.9.3. ([#110489](https://github.com/kubernetes/kubernetes/pull/110489), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: added support for the flag `--print-manifest` to the addon phases `kube-proxy` and `coredns` of `kubeadm init phase addon`. If this flag is `usedkubeadm` will not apply a given addon and instead print to the terminal the API objects that will be applied. ([#109995](https://github.com/kubernetes/kubernetes/pull/109995), [@wangyysde](https://github.com/wangyysde)) +- Kubeadm: enhanced the "patches" functionality to be able to patch kubelet config files containing `v1beta1.KubeletConfiguration`. The new patch target is called `kubeletconfiguration` (e.g. patch file `kubeletconfiguration+json.json`).This makes it possible to apply node specific KubeletConfiguration options during `init`, `join` and `upgrade`, while the main `KubeletConfiguration` that is passed to `init` as part of the `--config` file can still act as the global stored in the cluster `KubeletConfiguration`. ([#110405](https://github.com/kubernetes/kubernetes/pull/110405), [@neolit123](https://github.com/neolit123)) +- Kubeadm: make sure the etcd static pod startup probe uses /health?serializable=false while the liveness probe uses /health?serializable=true&exclude=NOSPACE. The NOSPACE exclusion would allow administrators to address space issues one member at a time. ([#110744](https://github.com/kubernetes/kubernetes/pull/110744), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: modified the etcd static Pod `liveness` and `readiness` probes to use a new etcd `v3.5.3+` HTTP(s) health check endpoint `/health?serializable=true` that allows to track the health of individual etcd members and not fail all members if a single member is not healthy in the etcd cluster. ([#110072](https://github.com/kubernetes/kubernetes/pull/110072), [@neolit123](https://github.com/neolit123)) +- Kubeadm: support experimental JSON/YAML output for `kubeadm upgrade plan` with the `--output` flag. ([#108447](https://github.com/kubernetes/kubernetes/pull/108447), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: the preferred pod anti-affinity for CoreDNS is now enabled by default. ([#110593](https://github.com/kubernetes/kubernetes/pull/110593), [@SataQiu](https://github.com/SataQiu)) +- Kubectl: support multiple resources for kubectl rollout status. ([#108777](https://github.com/kubernetes/kubernetes/pull/108777), [@pjo256](https://github.com/pjo256)) +- Kubernetes is now built with Golang 1.18.2. ([#110043](https://github.com/kubernetes/kubernetes/pull/110043), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with Golang 1.18.3 ([#110421](https://github.com/kubernetes/kubernetes/pull/110421), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- Kubernetes is now built with Golang 1.19.0. ([#111679](https://github.com/kubernetes/kubernetes/pull/111679), [@puerco](https://github.com/puerco)) +- Lock CSIMigrationAzureDisk feature gate to default. ([#110491](https://github.com/kubernetes/kubernetes/pull/110491), [@andyzhangx](https://github.com/andyzhangx)) +- Metric `running_managed_controllers` is enabled for Cloud Node Lifecycle controller. ([#111033](https://github.com/kubernetes/kubernetes/pull/111033), [@jprzychodzen](https://github.com/jprzychodzen)) +- Metric `running_managed_controllers` is enabled for Node IPAM controller in KCM. ([#111466](https://github.com/kubernetes/kubernetes/pull/111466), [@jprzychodzen](https://github.com/jprzychodzen)) +- Metric `running_managed_controllers` is enabled for Route,Service and Cloud Node controllers in KCM and CCM. ([#111462](https://github.com/kubernetes/kubernetes/pull/111462), [@jprzychodzen](https://github.com/jprzychodzen)) +- New `KUBECACHEDIR` environment variable was introduced to override default discovery cache directory which is `$HOME/.kube/cache`. ([#109479](https://github.com/kubernetes/kubernetes/pull/109479), [@ardaguclu](https://github.com/ardaguclu)) +- Pod SecurityContext and PodSecurityPolicy supports slash as sysctl separator. ([#106834](https://github.com/kubernetes/kubernetes/pull/106834), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Apps, Architecture, Auth, Node, Security and Testing] +- Promoted LocalStorageCapacityIsolationFSQuotaMonitoring to beta. ([#107329](https://github.com/kubernetes/kubernetes/pull/107329), [@pacoxu](https://github.com/pacoxu)) +- Promoted the `CSIMigrationPortworx` feature gate to Beta. ([#110411](https://github.com/kubernetes/kubernetes/pull/110411), [@trierra](https://github.com/trierra)) +- Return a warning when applying a `pod-security.kubernetes.io` label to a PodSecurity-exempted namespace. + Stop including the `pod-security.kubernetes.io/exempt=namespace` audit annotation on namespace requests. ([#109680](https://github.com/kubernetes/kubernetes/pull/109680), [@tallclair](https://github.com/tallclair)) +- The new flag `etcd-ready-timeout` has been added. It configures a timeout of an additional etcd check performed as part of readyz check. ([#111399](https://github.com/kubernetes/kubernetes/pull/111399), [@Argh4k](https://github.com/Argh4k)) +- The TopologySpreadConstraints will be shown in describe command for pods, deployments, daemonsets, etc. ([#109563](https://github.com/kubernetes/kubernetes/pull/109563), [@ardaguclu](https://github.com/ardaguclu)) +- The `kubectl diff` changed to ignore managed fields by default, and a new --show-managed-fields flag has been added to allow you to include managed fields in the diff. ([#111319](https://github.com/kubernetes/kubernetes/pull/111319), [@brianpursley](https://github.com/brianpursley)) +- The beta feature `ServiceIPStaticSubrange` is now enabled by default. ([#110703](https://github.com/kubernetes/kubernetes/pull/110703), [@aojea](https://github.com/aojea)) +- Updated base image for Windows pause container images to one built on Windows machines to address limitations of building Windows container images on Linux machines. ([#110379](https://github.com/kubernetes/kubernetes/pull/110379), [@marosset](https://github.com/marosset)) +- Updated cAdvisor to v0.45.0. ([#111647](https://github.com/kubernetes/kubernetes/pull/111647), [@bobbypage](https://github.com/bobbypage)) +- Updated debian-base, debian-iptables, and setcap images: + - debian-base:bullseye-v1.3.0 + - debian-iptables:bullseye-v1.4.0 + - setcap:bullseye-v1.3.0 ([#110558](https://github.com/kubernetes/kubernetes/pull/110558), [@wespanther](https://github.com/wespanther)) +- When using the OpenStack legacy cloud provider, kubelet and KCM will ignore unknown configuration directives rather than failing to start. ([#109709](https://github.com/kubernetes/kubernetes/pull/109709), [@mdbooth](https://github.com/mdbooth)) +- ` JobTrackingWithFinalizers` enabled by default. This feature allows to keep track of the Job progress without relying on Pods staying in the apiserver. + ([#110948](https://github.com/kubernetes/kubernetes/pull/110948), [@alculquicondor](https://github.com/alculquicondor)) +- `CSIMigrationAWS` upgraded to GA and locked to true. + ([#111479](https://github.com/kubernetes/kubernetes/pull/111479), [@wongma7](https://github.com/wongma7)) +- `CSIMigrationGCE` upgraded to GA and locked to true. + ([#111301](https://github.com/kubernetes/kubernetes/pull/111301), [@mattcary](https://github.com/mattcary)) +- `CSIMigrationvSphere` feature is now enabled by default. + ([#103523](https://github.com/kubernetes/kubernetes/pull/103523), [@divyenpatel](https://github.com/divyenpatel)) +- `MaxUnavailable` for `StatefulSets`, allows faster `RollingUpdate` by taking down more than 1 pod at a time. + The number of pods you want to take down during a `RollingUpdate` is configurable using `maxUnavailable` parameter. + ([#109251](https://github.com/kubernetes/kubernetes/pull/109251), [@krmayankk](https://github.com/krmayankk)) +- The `gcp` and `azure` auth plugins have been restored to client-go and kubectl until https://issue.k8s.io/111911 is resolved in supported kubectl minor versions. ([#111918](https://github.com/kubernetes/kubernetes/pull/111918), [@liggitt](https://github.com/liggitt)) + +### Documentation + +- EndpointSlices with Pod referencing Nodes that don't exist couldn't be created or updated. The behavior on the EndpointSlice controller has been modified to update the EndpointSlice without the Pods that reference non-existing Nodes and keep retrying until all Pods reference existing Nodes. However, if `service.Spec.PublishNotReadyAddresses` is set, all the Pods are published without retrying. Fixed EndpointSlices metrics to reflect correctly the number of desired EndpointSlices when no endpoints are present. ([#110639](https://github.com/kubernetes/kubernetes/pull/110639), [@aojea](https://github.com/aojea)) +- Optimization of kubectl Chinese translation ([#110538](https://github.com/kubernetes/kubernetes/pull/110538), [@hwdef](https://github.com/hwdef)) [SIG CLI] + +### Failing Test + +- E2e tests: fixed bug in the e2e image `agnhost:2.38` which hangs instead of exiting if a `SIGTERM` signal is received and the `shutdown-delay` option is `0`. ([#110214](https://github.com/kubernetes/kubernetes/pull/110214), [@aojea](https://github.com/aojea)) +- In-tree GCE PD test cases no longer run in Kubernetes testing harness anymore (side effect of switching on CSI migration in 1.22). Please switch on the environment variable `ENABLE_STORAGE_GCE_PD_DRIVER` to `yes` if you need to run these tests. ([#109541](https://github.com/kubernetes/kubernetes/pull/109541), [@dims](https://github.com/dims)) + +### Bug or Regression + +- A bug was fixed where a job sync was not retried in case of a transient ResourceQuota conflict. ([#111026](https://github.com/kubernetes/kubernetes/pull/111026), [@alculquicondor](https://github.com/alculquicondor)) +- A change of a failed job condition status to `False` does not result in duplicate conditions. ([#110292](https://github.com/kubernetes/kubernetes/pull/110292), [@mimowo](https://github.com/mimowo)) +- Added error message "dry-run can not be used when --force is set" when dry-run and force flags are set in replace command. ([#110326](https://github.com/kubernetes/kubernetes/pull/110326), [@ardaguclu](https://github.com/ardaguclu)) +- Added the latest GCE pinhole firewall feature, which introduces `destination-ranges` in the ingress `firewall-rules`. It restricts access to the backend IPs by allowing traffic through `ILB` or `NetLB` only. This change does **NOT** change the existing `ILB` or `NetLB` behavior. ([#109510](https://github.com/kubernetes/kubernetes/pull/109510), [@sugangli](https://github.com/sugangli)) +- Allow expansion of ephemeral volumes ([#109987](https://github.com/kubernetes/kubernetes/pull/109987), [@gnufied](https://github.com/gnufied)) [SIG Node and Storage] +- Apiserver: fixed audit of loading more than one webhooks. ([#110145](https://github.com/kubernetes/kubernetes/pull/110145), [@sxllwx](https://github.com/sxllwx)) +- Bug fix in test/e2e/framework Framework.RecordFlakeIfError ([#111048](https://github.com/kubernetes/kubernetes/pull/111048), [@alingse](https://github.com/alingse)) [SIG Testing] +- Client-go: fixed an error in the fake client when creating API requests are submitted to subresources like `pods/eviction`. ([#110425](https://github.com/kubernetes/kubernetes/pull/110425), [@LY-today](https://github.com/LY-today)) +- Do not raise an error when setting a label with the same value, ignore it. ([#105936](https://github.com/kubernetes/kubernetes/pull/105936), [@zigarn](https://github.com/zigarn)) +- Do not report terminated container metrics ([#110950](https://github.com/kubernetes/kubernetes/pull/110950), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Node] +- EndpointSlices marked for deletion are now ignored during reconciliation. ([#109624](https://github.com/kubernetes/kubernetes/pull/109624), [@aryan9600](https://github.com/aryan9600)) +- Etcd: Update to v3.5.4 ([#110033](https://github.com/kubernetes/kubernetes/pull/110033), [@mk46](https://github.com/mk46)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing] +- Faster mount detection for linux kernel 5.10+ using openat2 speeding up pod churn rates. On Kernel versions less 5.10, it will fallback to using the original way of detecting mount points i.e by parsing /proc/mounts. ([#109217](https://github.com/kubernetes/kubernetes/pull/109217), [@manugupt1](https://github.com/manugupt1)) +- FibreChannel volume plugin may match the wrong device and wrong associated devicemapper parent. This may cause a disater that pods attach wrong disks. ([#110719](https://github.com/kubernetes/kubernetes/pull/110719), [@xakdwch](https://github.com/xakdwch)) +- Fix a bug where CRI implementations that use cAdvisor stats provider (CRI-O) don't evict pods when their logs exceed ephemeral storage limit. ([#108115](https://github.com/kubernetes/kubernetes/pull/108115), [@haircommander](https://github.com/haircommander)) [SIG Node] +- Fix a bug where metrics are not recorded during Preemption(PostFilter). ([#108727](https://github.com/kubernetes/kubernetes/pull/108727), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] +- Fix a data race in authentication between AuthenticatedGroupAdder and cached token authenticator. ([#109969](https://github.com/kubernetes/kubernetes/pull/109969), [@sttts](https://github.com/sttts)) [SIG API Machinery and Auth] +- Fix bug that prevented the job controller from enforcing activeDeadlineSeconds when set. ([#110294](https://github.com/kubernetes/kubernetes/pull/110294), [@harshanarayana](https://github.com/harshanarayana)) +- Fix for volume reconstruction of CSI ephemeral volumes ([#108997](https://github.com/kubernetes/kubernetes/pull/108997), [@dobsonj](https://github.com/dobsonj)) [SIG Node, Storage and Testing] +- Fix incorrectly report scope for request_duration_seconds and request_slo_duration_seconds metrics for POST custom resources API calls. ([#110009](https://github.com/kubernetes/kubernetes/pull/110009), [@azylinski](https://github.com/azylinski)) [SIG Instrumentation] +- Fix printing resources with int64 fields ([#110408](https://github.com/kubernetes/kubernetes/pull/110408), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] +- Fix spurious kube-apiserver log warnings related to openapi v3 merging when creating or modifying CustomResourceDefinition objects ([#109880](https://github.com/kubernetes/kubernetes/pull/109880), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery and Testing] +- Fix the bug that reported incorrect metrics for the cluster IP allocator. ([#110027](https://github.com/kubernetes/kubernetes/pull/110027), [@tksm](https://github.com/tksm)) +- Fixed JobTrackingWithFinalizers when a pod succeeds after the job is considered failed, which led to API conflicts that blocked finishing the job. ([#111646](https://github.com/kubernetes/kubernetes/pull/111646), [@alculquicondor](https://github.com/alculquicondor)) +- Fixed `JobTrackingWithFinalizers` that: + - was declaring a job finished before counting all the created pods in the status + - was leaving pods with finalizers, blocking pod and job deletions + `JobTrackingWithFinalizers` is still disabled by default. ([#109486](https://github.com/kubernetes/kubernetes/pull/109486), [@alculquicondor](https://github.com/alculquicondor)) +- Fixed `NeedResize` build failure on Windows. ([#109721](https://github.com/kubernetes/kubernetes/pull/109721), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed a bug in `kubectl` that caused the wrong result length when using `--chunk-size` and `--selector` together. ([#110652](https://github.com/kubernetes/kubernetes/pull/110652), [@Abirdcfly](https://github.com/Abirdcfly)) +- Fixed a bug involving Services of type `LoadBalancer` with multiple IPs and a `LoadBalancerSourceRanges` that overlaps the node IP. ([#109826](https://github.com/kubernetes/kubernetes/pull/109826), [@danwinship](https://github.com/danwinship)) +- Fixed a bug which could have allowed an improperly annotated LoadBalancer service to become active. ([#109601](https://github.com/kubernetes/kubernetes/pull/109601), [@mdbooth](https://github.com/mdbooth)) +- Fixed a kubelet issue that could result in invalid pod status updates to be sent to the api-server where pods would be reported in a terminal phase but also report a ready condition of true in some cases. ([#110256](https://github.com/kubernetes/kubernetes/pull/110256), [@bobbypage](https://github.com/bobbypage)) +- Fixed an issue on Windows nodes where `HostProcess` containers may not be created as expected. ([#110140](https://github.com/kubernetes/kubernetes/pull/110140), [@marosset](https://github.com/marosset)) +- Fixed bug where CSI migration doesn't count inline volumes for attach limit. ([#107787](https://github.com/kubernetes/kubernetes/pull/107787), [@Jiawei0227](https://github.com/Jiawei0227)) +- Fixed error "dbus: connection closed by user" after dbus daemon restarts. ([#110496](https://github.com/kubernetes/kubernetes/pull/110496), [@kolyshkin](https://github.com/kolyshkin)) +- Fixed image pull failure when `IMDS` is unavailable in kubelet startup. ([#110523](https://github.com/kubernetes/kubernetes/pull/110523), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed memory leak in the job controller related to `JobTrackingWithFinalizers`. ([#111721](https://github.com/kubernetes/kubernetes/pull/111721), [@alculquicondor](https://github.com/alculquicondor)) +- Fixed mounting of iSCSI volumes over IPv6 networks. ([#110688](https://github.com/kubernetes/kubernetes/pull/110688), [@jsafrane](https://github.com/jsafrane)) +- Fixed performance issue when creating large objects using SSA with fully unspecified schemas ( preserveUnknownFields ). ([#111557](https://github.com/kubernetes/kubernetes/pull/111557), [@alexzielenski](https://github.com/alexzielenski)) +- Fixed s.RuntimeCgroups error condition and Fixed possible wrong log print. ([#110648](https://github.com/kubernetes/kubernetes/pull/110648), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) +- Fixed scheduling of **CronJob** with `@every X` schedules. ([#109250](https://github.com/kubernetes/kubernetes/pull/109250), [@d-honeybadger](https://github.com/d-honeybadger)) +- Fixed strict server-side field validation treating `metadata` fields as unknown fields. ([#109268](https://github.com/kubernetes/kubernetes/pull/109268), [@liggitt](https://github.com/liggitt)) +- Fixed the GCE firewall update when the destination IPs are changing so that firewalls reflect the IP updates of the LBs. ([#111186](https://github.com/kubernetes/kubernetes/pull/111186), [@sugangli](https://github.com/sugangli)) +- Fixed the bug that a `ServiceIPStaticSubrange` enabled cluster assigns duplicate IP addresses when the dynamic block is exhausted. ([#109928](https://github.com/kubernetes/kubernetes/pull/109928), [@tksm](https://github.com/tksm)) +- For scheduler plugin developers: the scheduler framework's shared PodInformer is now initialized with empty indexers. This enables scheduler plugins to add their extra indexers. Note that only non-conflict indexers are allowed to be added. ([#110663](https://github.com/kubernetes/kubernetes/pull/110663), [@fromanirh](https://github.com/fromanirh)) [SIG Scheduling] +- If the parent directory of the file specified in the `--audit-log-path` argument does not exist, Kubernetes now creates it. ([#110813](https://github.com/kubernetes/kubernetes/pull/110813), [@vpnachev](https://github.com/vpnachev)) [SIG Auth] +- Informer/reflector callers can now catch and unwrap specific API errors by type. ([#110076](https://github.com/kubernetes/kubernetes/pull/110076), [@karlkfi](https://github.com/karlkfi)) +- Kube-apiserver: Get, GetList and Watch requests that should be served by the apiserver cacher during shutdown will be rejected to avoid a deadlock situation leaving requests hanging. ([#108414](https://github.com/kubernetes/kubernetes/pull/108414), [@aojea](https://github.com/aojea)) +- Kubeadm: Fixed duplicate `unix://` prefix in node annotation. ([#110656](https://github.com/kubernetes/kubernetes/pull/110656), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: a bug was fixed due to which configurable `KubernetesVersion` was not being respected during kubeadm join. ([#110791](https://github.com/kubernetes/kubernetes/pull/110791), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: enabled the --experimental-watch-progress-notify-interval flag for etcd and set it to 5s. The flag specifies an interval at which etcd sends watch data to the kube-apiserver. ([#111383](https://github.com/kubernetes/kubernetes/pull/111383), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Kubeadm: now sets the host `OS` environment variables when executing `crictl` during image pulls. This fixed a bug where `*PROXY` environment variables did not affect `crictl` internet connectivity. ([#110134](https://github.com/kubernetes/kubernetes/pull/110134), [@mk46](https://github.com/mk46)) +- Kubeadm: only taint control plane nodes when the legacy "master" taint is present. This avoids the bug where "kubeadm upgrade" will re-taint a control plane node with the new "control plane" taint even if the user explicitly untainted the node. ([#109840](https://github.com/kubernetes/kubernetes/pull/109840), [@neolit123](https://github.com/neolit123)) +- Kubeadm: respect user specified image repository when using Kubernetes ci version ([#111017](https://github.com/kubernetes/kubernetes/pull/111017), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubeadm: support retry mechanism for removing container in reset phase ([#110837](https://github.com/kubernetes/kubernetes/pull/110837), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- Kubelet: added log for volume metric collection taking too long ([#107490](https://github.com/kubernetes/kubernetes/pull/107490), [@pacoxu](https://github.com/pacoxu)) +- Kubelet: added retry of checking Unix domain sockets on Windows nodes for the plugin registration mechanism. ([#110075](https://github.com/kubernetes/kubernetes/pull/110075), [@luckerby](https://github.com/luckerby)) +- Kubelet: added validation for labels provided with --node-labels. Malformed labels will result in errors. ([#109263](https://github.com/kubernetes/kubernetes/pull/109263), [@FeLvi-zzz](https://github.com/FeLvi-zzz)) +- Kubelet: wait for node allocatable ephemeral-storage data. ([#101882](https://github.com/kubernetes/kubernetes/pull/101882), [@jackfrancis](https://github.com/jackfrancis)) +- Kubernetes now correctly handles "search ." in the host's resolv.conf file by preserving the "." entry in the "resolv.conf" that the kubelet writes to pods. ([#109441](https://github.com/kubernetes/kubernetes/pull/109441), [@Miciah](https://github.com/Miciah)) [SIG Network and Node] +- Made usage of key encipherment optional in API validation. ([#111061](https://github.com/kubernetes/kubernetes/pull/111061), [@pacoxu](https://github.com/pacoxu)) +- ManagedFields time is correctly updated when the value of a managed field is modified. ([#110058](https://github.com/kubernetes/kubernetes/pull/110058), [@glebiller](https://github.com/glebiller)) +- OpenAPI will no longer duplicate these schemas: + - `io.k8s.apimachinery.pkg.apis.meta.v1.DeleteOptions_v2` + - `io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta_v2` + - `io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference_v2` + - `io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails_v2` + - `io.k8s.apimachinery.pkg.apis.meta.v1.Status_v2` ([#110179](https://github.com/kubernetes/kubernetes/pull/110179), [@Jefftree](https://github.com/Jefftree)) +- Panics while calling validating admission webhook are caught and honor the fail open or fail closed setting. ([#108746](https://github.com/kubernetes/kubernetes/pull/108746), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] +- Pods now post their `readiness` during termination. ([#110191](https://github.com/kubernetes/kubernetes/pull/110191), [@rphillips](https://github.com/rphillips)) +- Reduced duration to sync proxy rules on Windows `kube-proxy` when using `kernelspace` mode. ([#109124](https://github.com/kubernetes/kubernetes/pull/109124), [@daschott](https://github.com/daschott)) +- Reduced the number of cloud API calls and service downtime caused by excessive re-configurations of cluster LBs with externalTrafficPolicy=Local when node readiness changes (https://github.com/kubernetes/kubernetes/issues/111539). The service controller (in cloud-controller-manager) will avoid resyncing nodes which are transitioning between `Ready` / `NotReady` (only for for ETP=Local Services). The LBs used for these services will solely rely on the health check probe defined by the `healthCheckNodePort` to determine if a particular node is to be used for traffic load balancing. ([#109706](https://github.com/kubernetes/kubernetes/pull/109706), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) +- Removed the recently re-introduced schedulability predicate ([#109706](https://github.com/kubernetes/kubernetes/pull/109706)) as to not have unschedulable nodes removed from load balancers back-end pools. ([#111691](https://github.com/kubernetes/kubernetes/pull/111691), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) +- Removed unused flags from `kubectl run` command. ([#110668](https://github.com/kubernetes/kubernetes/pull/110668), [@brianpursley](https://github.com/brianpursley)) +- Run kubelet, when there is an error exit, print the error log. ([#110691](https://github.com/kubernetes/kubernetes/pull/110691), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) +- The `priority_level_request_utilization` metric histogram is adjusted so that for the cases where `phase=waiting` the denominator is the cumulative capacity of all of the priority level's queues. + The `read_vs_write_current_requests` metric histogram is adjusted, in the case of using API Priority and Fairness instead of max-in-flight, to divide by the relevant limit: sum of queue capacities for waiting requests, sum of seat limits for executing requests. ([#110164](https://github.com/kubernetes/kubernetes/pull/110164), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) +- The commands `kubeadm certs renew` and `kubeadm certs check-expiration` now honor the `cert-dir` flag on a running Kubernetes cluster. ([#110709](https://github.com/kubernetes/kubernetes/pull/110709), [@chendave](https://github.com/chendave)) +- The kube-proxy `sync_proxy_rules_no_endpoints_total` metric now only counts local-traffic-policy services which have remote endpoints but not local endpoints. ([#109782](https://github.com/kubernetes/kubernetes/pull/109782), [@danwinship](https://github.com/danwinship)) +- The namespace editors and admins can now create leases.coordination.k8s.io and should use this type for leaderelection instead of configmaps. ([#111472](https://github.com/kubernetes/kubernetes/pull/111472), [@deads2k](https://github.com/deads2k)) +- The node annotation alpha.kubernetes.io/provided-node-ip is no longer set ONLY when `--cloud-provider=external`. Now, it is set on kubelet startup if the `--cloud-provider` flag is set at all, including the deprecated in-tree providers. ([#109794](https://github.com/kubernetes/kubernetes/pull/109794), [@mdbooth](https://github.com/mdbooth)) [SIG Network and Node] +- The pod phase lifecycle guarantees that terminal Pods, those whose states are `Unready` or `Succeeded`, can not regress and will have all container stopped. Hence, terminal Pods will never be reachable and should not publish their IP addresses on the `Endpoints` or `EndpointSlices`, independently of the Service `TolerateUnready` option. ([#110255](https://github.com/kubernetes/kubernetes/pull/110255), [@robscott](https://github.com/robscott)) +- Unmounted volumes correctly for reconstructed volumes even if mount operation fails after kubelet restart. ([#110670](https://github.com/kubernetes/kubernetes/pull/110670), [@gnufied](https://github.com/gnufied)) +- Updated max azure data disk count map with new VM types. ([#111406](https://github.com/kubernetes/kubernetes/pull/111406), [@bennerv](https://github.com/bennerv)) +- Updated to cAdvisor v0.44.1 to fix an issue where metrics generated by kubelet for pod network stats were empty in some cases. ([#109658](https://github.com/kubernetes/kubernetes/pull/109658), [@bobbypage](https://github.com/bobbypage)) +- Upgraded Azure/go-autorest/autorest to v0.11.27. ([#110371](https://github.com/kubernetes/kubernetes/pull/110371), [@andyzhangx](https://github.com/andyzhangx)) +- Upgraded functionality of `kubectl kustomize` as described at + https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv4.5.7. ([#111606](https://github.com/kubernetes/kubernetes/pull/111606), [@natasha41575](https://github.com/natasha41575)) +- Use checksums instead of fsyncs to ensure discovery cache integrity ([#110851](https://github.com/kubernetes/kubernetes/pull/110851), [@negz](https://github.com/negz)) [SIG API Machinery] +- UserName check for 'ContainerAdministrator' is now case-insensitive if runAsNonRoot is set to true on Windows. ([#111009](https://github.com/kubernetes/kubernetes/pull/111009), [@marosset](https://github.com/marosset)) +- Volumes are no longer detached from healthy nodes after 6 minutes timeout. 6 minute force-detach timeout is used only for unhealthy nodes (`node.status.conditions["Ready"]!= true`). ([#110721](https://github.com/kubernetes/kubernetes/pull/110721), [@jsafrane](https://github.com/jsafrane)) +- When metrics are counted, discard the wrong container StartTime metrics ([#110880](https://github.com/kubernetes/kubernetes/pull/110880), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Instrumentation and Node] +- Windows kubelet plugin Watcher now working as intended. ([#111439](https://github.com/kubernetes/kubernetes/pull/111439), [@claudiubelu](https://github.com/claudiubelu)) +- [aws] Fixed a bug which reduces the number of unnecessary calls to STS in the event of assume role failures in the legacy cloud provider ([#110706](https://github.com/kubernetes/kubernetes/pull/110706), [@prateekgogia](https://github.com/prateekgogia)) [SIG Cloud Provider] +- `pod.Spec.RuntimeClassName` field is now available in kubectl describe command. ([#110914](https://github.com/kubernetes/kubernetes/pull/110914), [@yeahdongcn](https://github.com/yeahdongcn)) + +### Other (Cleanup or Flake) + +- Add missing powershell option to kubectl completion command short description. ([#109773](https://github.com/kubernetes/kubernetes/pull/109773), [@danielhelfand](https://github.com/danielhelfand)) +- Added e2e test flag to specify which volume drivers should be installed. This deprecated the ENABLE_STORAGE_GCE_PD_DRIVER environment variable. ([#111481](https://github.com/kubernetes/kubernetes/pull/111481), [@mattcary](https://github.com/mattcary)) +- Changed PV framework delete timeout to 5 minutes as documented. ([#109764](https://github.com/kubernetes/kubernetes/pull/109764), [@saikat-royc](https://github.com/saikat-royc)) +- Default burst limit for the discovery client set to 300. ([#109141](https://github.com/kubernetes/kubernetes/pull/109141), [@ulucinar](https://github.com/ulucinar)) +- Deleted the `apimachinery/clock` package. Please use `k8s.io/utils/clock` package instead. ([#109752](https://github.com/kubernetes/kubernetes/pull/109752), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) +- Feature gates that graduated to GA in 1.23 or earlier and were unconditionally enabled have been removed: CSIServiceAccountToken, ConfigurableFSGroupPolicy, EndpointSlice, EndpointSliceNodeName, EndpointSliceProxying, GenericEphemeralVolume, IPv6DualStack, IngressClassNamespacedParams, StorageObjectInUseProtection, TTLAfterFinished, VolumeSubpath, WindowsEndpointSliceProxying. ([#109435](https://github.com/kubernetes/kubernetes/pull/109435), [@pohly](https://github.com/pohly)) +- For Linux, `kube-proxy` uses a new “distroless” container image, instead of an image based on Debian. ([#111060](https://github.com/kubernetes/kubernetes/pull/111060), [@aojea](https://github.com/aojea)) +- For resources built into an apiserver, the server now logs at `-v=3` whether it is using watch caching. ([#109175](https://github.com/kubernetes/kubernetes/pull/109175), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] +- GlusterFS provisioner (`kubernetes.io/glusterfs`) has been deprecated in this release. ([#111485](https://github.com/kubernetes/kubernetes/pull/111485), [@humblec](https://github.com/humblec)) +- Improved `kubectl run` and `kubectl debug` error messages upon attaching failures. ([#110764](https://github.com/kubernetes/kubernetes/pull/110764), [@soltysh](https://github.com/soltysh)) +- In the event that more than one IngressClass is designated "default", the DefaultIngressClass admission controller will choose one rather than fail. ([#110974](https://github.com/kubernetes/kubernetes/pull/110974), [@kidddddddddddddddddddddd](https://github.com/kidddddddddddddddddddddd)) [SIG Network] +- Kube-proxy: The "userspace" proxy-mode is deprecated on Linux and Windows, despite being the default on Windows. As of v1.26, the default mode for Windows will change to 'kernelspace'. ([#110762](https://github.com/kubernetes/kubernetes/pull/110762), [@pandaamanda](https://github.com/pandaamanda)) [SIG Network] +- Kubeadm: perform additional dockershim cleanup. Treat all container runtimes as remote by using the flag "--container-runtime=remote", given dockershim was removed in 1.24 and given kubeadm 1.25 supports a kubelet version of 1.24 and 1.25. The flag "--network-plugin" will no longer be used for new clusters. Stop cleaning up the following dockershim related directories on "kubeadm reset": "/var/lib/dockershim", "/var/runkubernetes", "/var/lib/cni" ([#110022](https://github.com/kubernetes/kubernetes/pull/110022), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubelet's deprecated `--experimental-kernel-memcg-notification` flag is now removed. Use `--kernel-memcg-notification` instead. ([#109388](https://github.com/kubernetes/kubernetes/pull/109388), [@ialidzhikov](https://github.com/ialidzhikov)) +- Kubelet: Silenced flag output on errors. ([#110728](https://github.com/kubernetes/kubernetes/pull/110728), [@howardjohn](https://github.com/howardjohn)) +- Kubernetes binaries are now built-in `module` mode instead of `GOPATH` mode. ([#109464](https://github.com/kubernetes/kubernetes/pull/109464), [@liggitt](https://github.com/liggitt)) +- Removed branch `release-1.20` from prom bot due to EOL. ([#110748](https://github.com/kubernetes/kubernetes/pull/110748), [@cpanato](https://github.com/cpanato)) +- Removed deprecated kubectl.kubernetes.io/default-logs-container support ([#109254](https://github.com/kubernetes/kubernetes/pull/109254), [@pacoxu](https://github.com/pacoxu)) +- Renamed `apiserver_watch_cache_watch_cache_initializations_total` to `apiserver_watch_cache_initializations_total` ([#109579](https://github.com/kubernetes/kubernetes/pull/109579), [@logicalhan](https://github.com/logicalhan)) +- Shell completion is now provided for the "--subresource" flag. ([#109070](https://github.com/kubernetes/kubernetes/pull/109070), [@marckhouzam](https://github.com/marckhouzam)) +- Some apiserver metrics were changed, as follows. + - `priority_level_seat_count_samples` is replaced with `priority_level_seat_utilization`, which samples every nanosecond rather than every millisecond; the old metric conveyed utilization despite its name. + - `priority_level_seat_count_watermarks` is removed. + - `priority_level_request_count_samples` is replaced with `priority_level_request_utilization`, which samples every nanosecond rather than every millisecond; the old metric conveyed utilization despite its name. + - `priority_level_request_count_watermarks` is removed. + - `read_vs_write_request_count_samples` is replaced with `read_vs_write_current_requests`, which samples every nanosecond rather than every second; the new metric, like the old one, measures utilization when the max-in-flight filter is used and number of requests when the API Priority and Fairness filter is used. + - `read_vs_write_request_count_watermarks` is removed. ([#110104](https://github.com/kubernetes/kubernetes/pull/110104), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery, Instrumentation and Testing] +- The kube-controller-manager's deprecated `--experimental-cluster-signing-duration` flag is now removed. Adapt your machinery to use the `--cluster-signing-duration` flag that is available since v1.19. ([#108476](https://github.com/kubernetes/kubernetes/pull/108476), [@ialidzhikov](https://github.com/ialidzhikov)) +- The kube-scheduler ComponentConfig v1beta2 is deprecated in v1.25. ([#111547](https://github.com/kubernetes/kubernetes/pull/111547), [@kerthcet](https://github.com/kerthcet)) +- The kubelet no longer supports collecting accelerator metrics through cAdvisor. The feature gate `DisableAcceleratorUsageMetrics` is now GA and cannot be disabled. ([#110940](https://github.com/kubernetes/kubernetes/pull/110940), [@pacoxu](https://github.com/pacoxu)) +- Updated cri-tools to [v1.24.2(https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.24.2). ([#109813](https://github.com/kubernetes/kubernetes/pull/109813), [@saschagrunert](https://github.com/saschagrunert)) +- `apiserver_dropped_requests` is dropped from this release since `apiserver_request_total` can now be used to track dropped requests. `etcd_object_counts` is also removed in favor of `apiserver_storage_objects`. `apiserver_registered_watchers` is also removed in favor of `apiserver_longrunning_requests`. ([#110337](https://github.com/kubernetes/kubernetes/pull/110337), [@logicalhan](https://github.com/logicalhan)) +- `apiserver_longrunning_gauge` was removed from the codebase. Please use `apiserver_longrunning_requests` + instead. + ([#110310](https://github.com/kubernetes/kubernetes/pull/110310), [@logicalhan](https://github.com/logicalhan)) diff --git a/releases/release-1.25/release-notes/sessions/maps-1655405536.json b/releases/release-1.25/release-notes/sessions/maps-1655405536.json index 61591b7b626..3008a82de07 100644 --- a/releases/release-1.25/release-notes/sessions/maps-1655405536.json +++ b/releases/release-1.25/release-notes/sessions/maps-1655405536.json @@ -1,19 +1,19 @@ -{ - "mail": "csantana23@gmail.com", - "name": "Carlos Santana", - "date": 1655405536, - "prs": [ - { - "nr": 110489, - "hash": "7e75e492a64134a22d7595e2f3924937be8c18bc" - }, - { - "nr": 110292, - "hash": "fe9a184661f7747b30a6a67f219feb5910b34eaa" - }, - { - "nr": 110255, - "hash": "f36cb8f452bfd74496dffc1e0ffb1284b101dd3d" - } - ] +{ + "mail": "csantana23@gmail.com", + "name": "Carlos Santana", + "date": 1655405536, + "prs": [ + { + "nr": 110489, + "hash": "7e75e492a64134a22d7595e2f3924937be8c18bc" + }, + { + "nr": 110292, + "hash": "fe9a184661f7747b30a6a67f219feb5910b34eaa" + }, + { + "nr": 110255, + "hash": "f36cb8f452bfd74496dffc1e0ffb1284b101dd3d" + } + ] } \ No newline at end of file diff --git a/releases/release-1.25/release-notes/sessions/maps-1655499865.json b/releases/release-1.25/release-notes/sessions/maps-1655499865.json index a4b1987d3fa..d2be5984be5 100644 --- a/releases/release-1.25/release-notes/sessions/maps-1655499865.json +++ b/releases/release-1.25/release-notes/sessions/maps-1655499865.json @@ -1,23 +1,23 @@ -{ - "mail": "rodomar@outlook.com", - "name": "Rodolfo Martínez Vega", - "date": 1655499865, - "prs": [ - { - "nr": 109764, - "hash": "cb2d78ee57690a37058c80c67f109ffafd11a9fc" - }, - { - "nr": 110343, - "hash": "e667499920276de9931399166025123053efff08" - }, - { - "nr": 110095, - "hash": "cf86e8439a01e4c3540295f78ec7191db2b7674a" - }, - { - "nr": 108492, - "hash": "384b5cd7db391b45b978e28b7c6423169f5bef1a" - } - ] +{ + "mail": "rodomar@outlook.com", + "name": "Rodolfo Martínez Vega", + "date": 1655499865, + "prs": [ + { + "nr": 109764, + "hash": "cb2d78ee57690a37058c80c67f109ffafd11a9fc" + }, + { + "nr": 110343, + "hash": "e667499920276de9931399166025123053efff08" + }, + { + "nr": 110095, + "hash": "cf86e8439a01e4c3540295f78ec7191db2b7674a" + }, + { + "nr": 108492, + "hash": "384b5cd7db391b45b978e28b7c6423169f5bef1a" + } + ] } \ No newline at end of file diff --git a/releases/release-1.25/release-notes/sessions/maps-1655765007.json b/releases/release-1.25/release-notes/sessions/maps-1655765007.json index 4f33f0ea293..d8b687b377d 100644 --- a/releases/release-1.25/release-notes/sessions/maps-1655765007.json +++ b/releases/release-1.25/release-notes/sessions/maps-1655765007.json @@ -1,135 +1,135 @@ -{ - "mail": "drani@vmware.com", - "name": "Divya Rani", - "date": 1655765007, - "prs": [ - { - "nr": 110294, - "hash": "64e9f586d7ba52be5bf9ec0acc8f26f9801e3150" - }, - { - "nr": 109880, - "hash": "811571e8af49748e171107cf42f149509b150f35" - }, - { - "nr": 109277, - "hash": "d2becb5432de506802b9223e12c2e5d10e8ba66c" - }, - { - "nr": 110333, - "hash": "e9380d20533d7075abc7aa55625d8d4f206155b4" - }, - { - "nr": 110421, - "hash": "2b389bd453ea1cf57bdb221547a932acb1f0d6a6" - }, - { - "nr": 110076, - "hash": "e848d53f40f856c36b52908c8e130ebe9cebf295" - }, - { - "nr": 108115, - "hash": "5667cedbcf26c18b6dc074fcb75b1510ae98e032" - }, - { - "nr": 109175, - "hash": "c9b3036b9af43d158a07ce33113cdf8bdd4bd02a" - }, - { - "nr": 110337, - "hash": "783b05c3dc689512c8c0fdd95d71bd3946d30229" - }, - { - "nr": 105100, - "hash": "11a34c47244f77d3ec228c27cb29284bc381fac5" - }, - { - "nr": 109388, - "hash": "7609c01d3b89ee4d45daf1de5979554f00f56eab" - }, - { - "nr": 108746, - "hash": "e064d0aa9656e180c56df69df89f5f8a5186c91c" - }, - { - "nr": 108797, - "hash": "44a87327df535199c54561e788d7fffde180fe5e" - }, - { - "nr": 109443, - "hash": "ccdb3f5ea000d895e9e26a41aa3e0a1aa3aad345" - }, - { - "nr": 109101, - "hash": "3396e4ca1699923b127de014e4e6342159bd701b" - }, - { - "nr": 110379, - "hash": "3ce89a9bc602c31a177c1fef4800b7597508171e" - }, - { - "nr": 110033, - "hash": "7ac43a255aee2f3e1efe6b2c4b886b74f0063cae" - }, - { - "nr": 109441, - "hash": "2b76451ee611248785c4a2e7d313c06a5303006b" - }, - { - "nr": 109254, - "hash": "09a9fe0903dafcac4f955bf65b4933bd397d66ba" - }, - { - "nr": 109624, - "hash": "bd8242f6e27e8f7cfe61a085afb44516cc121e73" - }, - { - "nr": 110408, - "hash": "0e4e5502d6a60726a3e05311776cdb46c50d0033" - }, - { - "nr": 110191, - "hash": "58c789387d8aef276c694be52e171be7822393cc" - }, - { - "nr": 108997, - "hash": "f732a270cb694e61d5ee084d24939fe398c43440" - }, - { - "nr": 110134, - "hash": "87b105b1623904ecdd416884123ead7304d82043" - }, - { - "nr": 110009, - "hash": "cd7c951d60cf61ead21a3651aa18914e89005ebe" - }, - { - "nr": 109579, - "hash": "c5da300666359d8095f8b1d0a1bf77645c9a59ab" - }, - { - "nr": 110310, - "hash": "f6fa17dc58cf300acbdf1f9f2afa70500f59c335" - }, - { - "nr": 108727, - "hash": "340b07fada3b35e410191908ebccd039ff6ff382" - }, - { - "nr": 109813, - "hash": "118f57ffe557ef8d4dc0aa71d532b2783f59cb2d" - }, - { - "nr": 109987, - "hash": "34a10cecd17e75361b20e434261e95e579e9ab29" - }, - { - "nr": 110022, - "hash": "b5bb649b7fd7df073c2a1cb60bd4f33dad55229d" - }, - { - "nr": 109969, - "hash": "47f5e218fa4ab5ddeb1c2ab778cfb9a5300542a4" - } - ] +{ + "mail": "drani@vmware.com", + "name": "Divya Rani", + "date": 1655765007, + "prs": [ + { + "nr": 110294, + "hash": "64e9f586d7ba52be5bf9ec0acc8f26f9801e3150" + }, + { + "nr": 109880, + "hash": "811571e8af49748e171107cf42f149509b150f35" + }, + { + "nr": 109277, + "hash": "d2becb5432de506802b9223e12c2e5d10e8ba66c" + }, + { + "nr": 110333, + "hash": "e9380d20533d7075abc7aa55625d8d4f206155b4" + }, + { + "nr": 110421, + "hash": "2b389bd453ea1cf57bdb221547a932acb1f0d6a6" + }, + { + "nr": 110076, + "hash": "e848d53f40f856c36b52908c8e130ebe9cebf295" + }, + { + "nr": 108115, + "hash": "5667cedbcf26c18b6dc074fcb75b1510ae98e032" + }, + { + "nr": 109175, + "hash": "c9b3036b9af43d158a07ce33113cdf8bdd4bd02a" + }, + { + "nr": 110337, + "hash": "783b05c3dc689512c8c0fdd95d71bd3946d30229" + }, + { + "nr": 105100, + "hash": "11a34c47244f77d3ec228c27cb29284bc381fac5" + }, + { + "nr": 109388, + "hash": "7609c01d3b89ee4d45daf1de5979554f00f56eab" + }, + { + "nr": 108746, + "hash": "e064d0aa9656e180c56df69df89f5f8a5186c91c" + }, + { + "nr": 108797, + "hash": "44a87327df535199c54561e788d7fffde180fe5e" + }, + { + "nr": 109443, + "hash": "ccdb3f5ea000d895e9e26a41aa3e0a1aa3aad345" + }, + { + "nr": 109101, + "hash": "3396e4ca1699923b127de014e4e6342159bd701b" + }, + { + "nr": 110379, + "hash": "3ce89a9bc602c31a177c1fef4800b7597508171e" + }, + { + "nr": 110033, + "hash": "7ac43a255aee2f3e1efe6b2c4b886b74f0063cae" + }, + { + "nr": 109441, + "hash": "2b76451ee611248785c4a2e7d313c06a5303006b" + }, + { + "nr": 109254, + "hash": "09a9fe0903dafcac4f955bf65b4933bd397d66ba" + }, + { + "nr": 109624, + "hash": "bd8242f6e27e8f7cfe61a085afb44516cc121e73" + }, + { + "nr": 110408, + "hash": "0e4e5502d6a60726a3e05311776cdb46c50d0033" + }, + { + "nr": 110191, + "hash": "58c789387d8aef276c694be52e171be7822393cc" + }, + { + "nr": 108997, + "hash": "f732a270cb694e61d5ee084d24939fe398c43440" + }, + { + "nr": 110134, + "hash": "87b105b1623904ecdd416884123ead7304d82043" + }, + { + "nr": 110009, + "hash": "cd7c951d60cf61ead21a3651aa18914e89005ebe" + }, + { + "nr": 109579, + "hash": "c5da300666359d8095f8b1d0a1bf77645c9a59ab" + }, + { + "nr": 110310, + "hash": "f6fa17dc58cf300acbdf1f9f2afa70500f59c335" + }, + { + "nr": 108727, + "hash": "340b07fada3b35e410191908ebccd039ff6ff382" + }, + { + "nr": 109813, + "hash": "118f57ffe557ef8d4dc0aa71d532b2783f59cb2d" + }, + { + "nr": 109987, + "hash": "34a10cecd17e75361b20e434261e95e579e9ab29" + }, + { + "nr": 110022, + "hash": "b5bb649b7fd7df073c2a1cb60bd4f33dad55229d" + }, + { + "nr": 109969, + "hash": "47f5e218fa4ab5ddeb1c2ab778cfb9a5300542a4" + } + ] } \ No newline at end of file diff --git a/releases/release-1.25/release-notes/sessions/maps-1656055065.json b/releases/release-1.25/release-notes/sessions/maps-1656055065.json index d6d49d0bdaa..8864c099010 100644 --- a/releases/release-1.25/release-notes/sessions/maps-1656055065.json +++ b/releases/release-1.25/release-notes/sessions/maps-1656055065.json @@ -1,103 +1,103 @@ -{ - "mail": "diptochuck123@gmail.com", - "name": "DiptoChakrabarty", - "date": 1656055065, - "prs": [ - { - "nr": 109773, - "hash": "b38b95f050fc5f9871f963d31f13bb7750c61645" - }, - { - "nr": 110027, - "hash": "b07197057d3d7d9fb2d1f8b917539eb088b47254" - }, - { - "nr": 109680, - "hash": "2d0b2b5041be7e68b9ddce02505cb9a5fd0d3735" - }, - { - "nr": 110013, - "hash": "7d88d70ed6e494de8277906c83c8b06b66b73bbd" - }, - { - "nr": 110491, - "hash": "f2101661cf085df97a8e538391d8056e1176d029" - }, - { - "nr": 109809, - "hash": "d606f38b54867114912d713fe5caabd5832debba" - }, - { - "nr": 110183, - "hash": "674328132bb4d4be3d2f54706e8a2073272e940f" - }, - { - "nr": 110058, - "hash": "ba4425538d3135e8eb2b1089ba8cb8b5304fb002" - }, - { - "nr": 108414, - "hash": "b9b35a45a14a723e9ffb799c177ccf4a4f078b18" - }, - { - "nr": 99685, - "hash": "6ba95782efdb9f460634361d9f8cbd861dc31f94" - }, - { - "nr": 110488, - "hash": "3bd9d0c1f8acf32b2ea8246e3298f0b066fd98aa" - }, - { - "nr": 109709, - "hash": "4fcb88d91e8aaaf611af8325e9055c86761b729d" - }, - { - "nr": 109782, - "hash": "a5588d2b559044a3d2fbb0c3881c297b0ac1e360" - }, - { - "nr": 109563, - "hash": "fcc77574a0d40f5c74d0d4f43e7b3e405f86f8ee" - }, - { - "nr": 110371, - "hash": "6f997094021775b0a8ecb7450f39ab6f53c67b49" - }, - { - "nr": 109435, - "hash": "60ef99c5ff2a23fd506c8e31f8ccf850860abda2" - }, - { - "nr": 109798, - "hash": "19d2fa374a0d02c347a92b298ef560980ad4e4c8" - }, - { - "nr": 110394, - "hash": "797ee218231ffbda03e1df568bd74d24f5945aff" - }, - { - "nr": 108777, - "hash": "8c0d8ed6033703432d32be8acd2f42f809e41c63" - }, - { - "nr": 109840, - "hash": "f32af0edc3ee11bae620fa04ec57b630d94105f9" - }, - { - "nr": 108476, - "hash": "021523536e49bd3dd4fd55ecf4fd919ccdddd7f1" - }, - { - "nr": 109658, - "hash": "bdc005ba5e687db27c1d6143c316e364f31433c7" - }, - { - "nr": 109602, - "hash": "a06e82027667a24b7253d79cbf6ee29192ee169b" - }, - { - "nr": 105936, - "hash": "97602a2bc9e0e4c2fd8172fd446abe0e188591a7" - } - ] +{ + "mail": "diptochuck123@gmail.com", + "name": "DiptoChakrabarty", + "date": 1656055065, + "prs": [ + { + "nr": 109773, + "hash": "b38b95f050fc5f9871f963d31f13bb7750c61645" + }, + { + "nr": 110027, + "hash": "b07197057d3d7d9fb2d1f8b917539eb088b47254" + }, + { + "nr": 109680, + "hash": "2d0b2b5041be7e68b9ddce02505cb9a5fd0d3735" + }, + { + "nr": 110013, + "hash": "7d88d70ed6e494de8277906c83c8b06b66b73bbd" + }, + { + "nr": 110491, + "hash": "f2101661cf085df97a8e538391d8056e1176d029" + }, + { + "nr": 109809, + "hash": "d606f38b54867114912d713fe5caabd5832debba" + }, + { + "nr": 110183, + "hash": "674328132bb4d4be3d2f54706e8a2073272e940f" + }, + { + "nr": 110058, + "hash": "ba4425538d3135e8eb2b1089ba8cb8b5304fb002" + }, + { + "nr": 108414, + "hash": "b9b35a45a14a723e9ffb799c177ccf4a4f078b18" + }, + { + "nr": 99685, + "hash": "6ba95782efdb9f460634361d9f8cbd861dc31f94" + }, + { + "nr": 110488, + "hash": "3bd9d0c1f8acf32b2ea8246e3298f0b066fd98aa" + }, + { + "nr": 109709, + "hash": "4fcb88d91e8aaaf611af8325e9055c86761b729d" + }, + { + "nr": 109782, + "hash": "a5588d2b559044a3d2fbb0c3881c297b0ac1e360" + }, + { + "nr": 109563, + "hash": "fcc77574a0d40f5c74d0d4f43e7b3e405f86f8ee" + }, + { + "nr": 110371, + "hash": "6f997094021775b0a8ecb7450f39ab6f53c67b49" + }, + { + "nr": 109435, + "hash": "60ef99c5ff2a23fd506c8e31f8ccf850860abda2" + }, + { + "nr": 109798, + "hash": "19d2fa374a0d02c347a92b298ef560980ad4e4c8" + }, + { + "nr": 110394, + "hash": "797ee218231ffbda03e1df568bd74d24f5945aff" + }, + { + "nr": 108777, + "hash": "8c0d8ed6033703432d32be8acd2f42f809e41c63" + }, + { + "nr": 109840, + "hash": "f32af0edc3ee11bae620fa04ec57b630d94105f9" + }, + { + "nr": 108476, + "hash": "021523536e49bd3dd4fd55ecf4fd919ccdddd7f1" + }, + { + "nr": 109658, + "hash": "bdc005ba5e687db27c1d6143c316e364f31433c7" + }, + { + "nr": 109602, + "hash": "a06e82027667a24b7253d79cbf6ee29192ee169b" + }, + { + "nr": 105936, + "hash": "97602a2bc9e0e4c2fd8172fd446abe0e188591a7" + } + ] } \ No newline at end of file diff --git a/releases/release-1.25/release-notes/sessions/maps-1657118430.json b/releases/release-1.25/release-notes/sessions/maps-1657118430.json index c89f5d5ef2c..b831ac35dca 100644 --- a/releases/release-1.25/release-notes/sessions/maps-1657118430.json +++ b/releases/release-1.25/release-notes/sessions/maps-1657118430.json @@ -1,243 +1,243 @@ -{ - "mail": "diptochuck123@gmail.com", - "name": "DiptoChakrabarty", - "date": 1657118430, - "prs": [ - { - "nr": 109928, - "hash": "d9fc3d4052a331b1c1674268ba3d7ce403c39972" - }, - { - "nr": 109826, - "hash": "065a67adde747615f0b686edf6f3d4462d712b30" - }, - { - "nr": 110459, - "hash": "31438cc2a2000c3603b8332868b2a7ee45024815" - }, - { - "nr": 110214, - "hash": "167d74d01bc4fb9baf3f48888fe137b12f309e6a" - }, - { - "nr": 108654, - "hash": "f798972d6a95be0861229402634e706d760886e5" - }, - { - "nr": 110072, - "hash": "30ba2f61ada0dc355c32af7d88d98423631331c4" - }, - { - "nr": 110405, - "hash": "b0afadd229d9633d94b8539069820dd02193900a" - }, - { - "nr": 110496, - "hash": "1e0da9735ac6169b44bad6a8378277aea41ad44f" - }, - { - "nr": 107787, - "hash": "759f084049857d73e7b5bb68ba7ca88135115abf" - }, - { - "nr": 110179, - "hash": "b7bc28fd13a24f4a8061cb70ee3aa1a4b0e5b6bd" - }, - { - "nr": 110656, - "hash": "1bb92aa3d19f7380618a8d5d3b2466b6fb13a78f" - }, - { - "nr": 110709, - "hash": "8605c693648bba9be1ed5c4c652d994eaaeee6c9" - }, - { - "nr": 110593, - "hash": "cc912643c57ab0b0a934a7196a6f473ff3e80a92" - }, - { - "nr": 110558, - "hash": "deb6f52129ae96e4f866493c616020a1135bb015" - }, - { - "nr": 109251, - "hash": "d63c895e3e9d81fbc1735fb5f5a11f8add91c6eb" - }, - { - "nr": 105963, - "hash": "fedce10eaad36d4ceaf0973d5ff3adb3a3ef1406" - }, - { - "nr": 110075, - "hash": "f8523be9a1c3e745a5e3195bf0470ce23032c2a7" - }, - { - "nr": 110425, - "hash": "e054a02ca59546f83447f4a33b5e9c519a21dacc" - }, - { - "nr": 110728, - "hash": "25c4119b04772b927a0c1803488ae8a7137207f9" - }, - { - "nr": 109268, - "hash": "39fc1c92fadc00d73664ed3a233f4d547dbd5851" - }, - { - "nr": 110410, - "hash": "1bded0622cb73f86a54e866835fa1a117a5aaf52" - }, - { - "nr": 110419, - "hash": "189cf4c9d10ff6cee9aaf6620c243a53c40d0cef" - }, - { - "nr": 110134, - "hash": "38c22a16a078a4e9b1a2d638e273f0c0bcdb5d2d" - }, - { - "nr": 110553, - "hash": "7306fee98d724370ddc8fc0f5a94430476ab21bb" - }, - { - "nr": 109938, - "hash": "15c858007597723602e3930bf42984b9b11b9b7d" - }, - { - "nr": 109995, - "hash": "a4c41fd7b3a020f237a63e966cbfbf9176988e25" - }, - { - "nr": 109464, - "hash": "19507dec53c5f36717812e04e2a7d732e60484c6" - }, - { - "nr": 110748, - "hash": "d73fe9136068ed2d5af9864088d7569c58d00ab0" - }, - { - "nr": 109124, - "hash": "3686a52111ba2d37f430e1a89678be4af990d2af" - }, - { - "nr": 110201, - "hash": "f706ca1bd9ac755cccc8adb15e1788c79adafaf5" - }, - { - "nr": 110191, - "hash": "f465cf0513882bba61d42761410e09235ddfdf13" - }, - { - "nr": 110327, - "hash": "95384c80f34176380ef85a8e13c08c1c263ae567" - }, - { - "nr": 105797, - "hash": "86767588d5bbedb91e70b874d027196ba40f8860" - }, - { - "nr": 110372, - "hash": "fbd32640f0db262651f778c7741410a4ba0d5a14" - }, - { - "nr": 110310, - "hash": "8541e27a2208a46dc3caac69563c89f46ca36f04" - }, - { - "nr": 110506, - "hash": "4d5c8b8e591f42897e4cb942267066e398954b3d" - }, - { - "nr": 110523, - "hash": "c0c9e2822d3d33acf335a2ab230eb641e5e67d67" - }, - { - "nr": 110764, - "hash": "a22c729828c8de46c7f8f8ca02dcbb6b51d0c4f4" - }, - { - "nr": 110256, - "hash": "837da9e0c21cb46478d58e5e67b56fda036e851b" - }, - { - "nr": 110140, - "hash": "91982e0de91369ea89c603d549580fd1babc4fd1" - }, - { - "nr": 110379, - "hash": "bcf57a016e1de5c30b5a066b2acd8e655950e10c" - }, - { - "nr": 110145, - "hash": "70df6dffb50d558a7ec8a82aea055cc7ffd89610" - }, - { - "nr": 109250, - "hash": "ca87a1dda6f657ae7c912c27e95ce19c8b5bbb2d" - }, - { - "nr": 110043, - "hash": "3c180764db9c5a54a81485a9ee401321a58cc77e" - }, - { - "nr": 101882, - "hash": "a5944a94ff306789da228a4b8964ff1eeeb1af7d" - }, - { - "nr": 110411, - "hash": "aeee528be7021317c6f9241c8244100900950295" - }, - { - "nr": 109541, - "hash": "97d7a4e1a9cf881acc8bb2a4c799d2e58a9fc3c6" - }, - { - "nr": 110668, - "hash": "eea136e0a34dfa22576cfbb5373db913dab8b532" - }, - { - "nr": 110639, - "hash": "43b274ce4d783f779edb71bb53532038b0206fb4" - }, - { - "nr": 109721, - "hash": "de249d7429063618c5b26efc399a3eb1bcb0e927" - }, - { - "nr": 110721, - "hash": "bf3a945b81298bae37885b8fcfd3360292c038b0" - }, - { - "nr": 108447, - "hash": "35ba9eb56737e667d27c0169f93fd55cb5a55092" - }, - { - "nr": 109612, - "hash": "e2bd84308b681169a8d37ed798c51597596b2ad7" - }, - { - "nr": 110756, - "hash": "5c96500271f7968aed1e4fb15d087c8e4c8f8835" - }, - { - "nr": 109752, - "hash": "7655c6ec63f3721f52f9781a3b63164aacc0e507" - }, - { - "nr": 109486, - "hash": "0f239cfa115cf2b1c25792a8c249aa9c97a2672d" - }, - { - "nr": 109510, - "hash": "2bcc4791a6c6ff0e8feb7e4083cb6f7732416544" - }, - { - "nr": 110652, - "hash": "392feecc12bc4161282aee68f08c3ee38a5ad3fa" - }, - { - "nr": 110719, - "hash": "7dfcc754098617a50e51d1d114ed6f4f3f220e10" - } - ] +{ + "mail": "diptochuck123@gmail.com", + "name": "DiptoChakrabarty", + "date": 1657118430, + "prs": [ + { + "nr": 109928, + "hash": "d9fc3d4052a331b1c1674268ba3d7ce403c39972" + }, + { + "nr": 109826, + "hash": "065a67adde747615f0b686edf6f3d4462d712b30" + }, + { + "nr": 110459, + "hash": "31438cc2a2000c3603b8332868b2a7ee45024815" + }, + { + "nr": 110214, + "hash": "167d74d01bc4fb9baf3f48888fe137b12f309e6a" + }, + { + "nr": 108654, + "hash": "f798972d6a95be0861229402634e706d760886e5" + }, + { + "nr": 110072, + "hash": "30ba2f61ada0dc355c32af7d88d98423631331c4" + }, + { + "nr": 110405, + "hash": "b0afadd229d9633d94b8539069820dd02193900a" + }, + { + "nr": 110496, + "hash": "1e0da9735ac6169b44bad6a8378277aea41ad44f" + }, + { + "nr": 107787, + "hash": "759f084049857d73e7b5bb68ba7ca88135115abf" + }, + { + "nr": 110179, + "hash": "b7bc28fd13a24f4a8061cb70ee3aa1a4b0e5b6bd" + }, + { + "nr": 110656, + "hash": "1bb92aa3d19f7380618a8d5d3b2466b6fb13a78f" + }, + { + "nr": 110709, + "hash": "8605c693648bba9be1ed5c4c652d994eaaeee6c9" + }, + { + "nr": 110593, + "hash": "cc912643c57ab0b0a934a7196a6f473ff3e80a92" + }, + { + "nr": 110558, + "hash": "deb6f52129ae96e4f866493c616020a1135bb015" + }, + { + "nr": 109251, + "hash": "d63c895e3e9d81fbc1735fb5f5a11f8add91c6eb" + }, + { + "nr": 105963, + "hash": "fedce10eaad36d4ceaf0973d5ff3adb3a3ef1406" + }, + { + "nr": 110075, + "hash": "f8523be9a1c3e745a5e3195bf0470ce23032c2a7" + }, + { + "nr": 110425, + "hash": "e054a02ca59546f83447f4a33b5e9c519a21dacc" + }, + { + "nr": 110728, + "hash": "25c4119b04772b927a0c1803488ae8a7137207f9" + }, + { + "nr": 109268, + "hash": "39fc1c92fadc00d73664ed3a233f4d547dbd5851" + }, + { + "nr": 110410, + "hash": "1bded0622cb73f86a54e866835fa1a117a5aaf52" + }, + { + "nr": 110419, + "hash": "189cf4c9d10ff6cee9aaf6620c243a53c40d0cef" + }, + { + "nr": 110134, + "hash": "38c22a16a078a4e9b1a2d638e273f0c0bcdb5d2d" + }, + { + "nr": 110553, + "hash": "7306fee98d724370ddc8fc0f5a94430476ab21bb" + }, + { + "nr": 109938, + "hash": "15c858007597723602e3930bf42984b9b11b9b7d" + }, + { + "nr": 109995, + "hash": "a4c41fd7b3a020f237a63e966cbfbf9176988e25" + }, + { + "nr": 109464, + "hash": "19507dec53c5f36717812e04e2a7d732e60484c6" + }, + { + "nr": 110748, + "hash": "d73fe9136068ed2d5af9864088d7569c58d00ab0" + }, + { + "nr": 109124, + "hash": "3686a52111ba2d37f430e1a89678be4af990d2af" + }, + { + "nr": 110201, + "hash": "f706ca1bd9ac755cccc8adb15e1788c79adafaf5" + }, + { + "nr": 110191, + "hash": "f465cf0513882bba61d42761410e09235ddfdf13" + }, + { + "nr": 110327, + "hash": "95384c80f34176380ef85a8e13c08c1c263ae567" + }, + { + "nr": 105797, + "hash": "86767588d5bbedb91e70b874d027196ba40f8860" + }, + { + "nr": 110372, + "hash": "fbd32640f0db262651f778c7741410a4ba0d5a14" + }, + { + "nr": 110310, + "hash": "8541e27a2208a46dc3caac69563c89f46ca36f04" + }, + { + "nr": 110506, + "hash": "4d5c8b8e591f42897e4cb942267066e398954b3d" + }, + { + "nr": 110523, + "hash": "c0c9e2822d3d33acf335a2ab230eb641e5e67d67" + }, + { + "nr": 110764, + "hash": "a22c729828c8de46c7f8f8ca02dcbb6b51d0c4f4" + }, + { + "nr": 110256, + "hash": "837da9e0c21cb46478d58e5e67b56fda036e851b" + }, + { + "nr": 110140, + "hash": "91982e0de91369ea89c603d549580fd1babc4fd1" + }, + { + "nr": 110379, + "hash": "bcf57a016e1de5c30b5a066b2acd8e655950e10c" + }, + { + "nr": 110145, + "hash": "70df6dffb50d558a7ec8a82aea055cc7ffd89610" + }, + { + "nr": 109250, + "hash": "ca87a1dda6f657ae7c912c27e95ce19c8b5bbb2d" + }, + { + "nr": 110043, + "hash": "3c180764db9c5a54a81485a9ee401321a58cc77e" + }, + { + "nr": 101882, + "hash": "a5944a94ff306789da228a4b8964ff1eeeb1af7d" + }, + { + "nr": 110411, + "hash": "aeee528be7021317c6f9241c8244100900950295" + }, + { + "nr": 109541, + "hash": "97d7a4e1a9cf881acc8bb2a4c799d2e58a9fc3c6" + }, + { + "nr": 110668, + "hash": "eea136e0a34dfa22576cfbb5373db913dab8b532" + }, + { + "nr": 110639, + "hash": "43b274ce4d783f779edb71bb53532038b0206fb4" + }, + { + "nr": 109721, + "hash": "de249d7429063618c5b26efc399a3eb1bcb0e927" + }, + { + "nr": 110721, + "hash": "bf3a945b81298bae37885b8fcfd3360292c038b0" + }, + { + "nr": 108447, + "hash": "35ba9eb56737e667d27c0169f93fd55cb5a55092" + }, + { + "nr": 109612, + "hash": "e2bd84308b681169a8d37ed798c51597596b2ad7" + }, + { + "nr": 110756, + "hash": "5c96500271f7968aed1e4fb15d087c8e4c8f8835" + }, + { + "nr": 109752, + "hash": "7655c6ec63f3721f52f9781a3b63164aacc0e507" + }, + { + "nr": 109486, + "hash": "0f239cfa115cf2b1c25792a8c249aa9c97a2672d" + }, + { + "nr": 109510, + "hash": "2bcc4791a6c6ff0e8feb7e4083cb6f7732416544" + }, + { + "nr": 110652, + "hash": "392feecc12bc4161282aee68f08c3ee38a5ad3fa" + }, + { + "nr": 110719, + "hash": "7dfcc754098617a50e51d1d114ed6f4f3f220e10" + } + ] } \ No newline at end of file diff --git a/releases/release-1.25/release-notes/sessions/maps-1658855812.json b/releases/release-1.25/release-notes/sessions/maps-1658855812.json index 30f8679f6b3..677382b307b 100644 --- a/releases/release-1.25/release-notes/sessions/maps-1658855812.json +++ b/releases/release-1.25/release-notes/sessions/maps-1658855812.json @@ -1,243 +1,243 @@ -{ - "mail": "drani@vmware.com", - "name": "Divya", - "date": 1658855812, - "prs": [ - { - "nr": 110140, - "hash": "84e081468e7d6c315ff3ee0cdba8dac3cd30aac5" - }, - { - "nr": 110805, - "hash": "f5a03fb91cc9e91796aa1da3a9072cc798af073d" - }, - { - "nr": 110179, - "hash": "04b1c9994c2559517e4bf04672be7bb6b43de497" - }, - { - "nr": 110326, - "hash": "b1b2e0c7c7669e2d9a6373c3ca220f29853e1574" - }, - { - "nr": 111141, - "hash": "fb55a8ec0a563b2fba3998d1151d4a97f5b67a48" - }, - { - "nr": 110310, - "hash": "f6fa17dc58cf300acbdf1f9f2afa70500f59c335" - }, - { - "nr": 111026, - "hash": "0dfb4e530bac6e859c451b40a4a8d37c28ed80b0" - }, - { - "nr": 110948, - "hash": "38c7befbf0d296b7c061d03bfdbb6be51d8ab433" - }, - { - "nr": 110691, - "hash": "3d02178d8e4557a8d3b1ac9610fee29919e150ca" - }, - { - "nr": 110703, - "hash": "f3932662bcd22d722857b198aeff25584ce97623" - }, - { - "nr": 110914, - "hash": "ab401ac0350fedaea7727156b6e40391d23dc9d8" - }, - { - "nr": 109764, - "hash": "ebf08816dd73f3f8f9cf7a21a57f8eddfa3ed621" - }, - { - "nr": 110791, - "hash": "9d53fd10ef20c5f61acac4601d32d931a7a0db4d" - }, - { - "nr": 110371, - "hash": "d65adfad0c9a4228ba5f3ea3886e3ac4c3cd67af" - }, - { - "nr": 105797, - "hash": "e7bdfc849a9ebee6be71765b6376ff9f03567970" - }, - { - "nr": 110868, - "hash": "e8340fecc115ecb752070498b9712ddbe3203ef9" - }, - { - "nr": 110762, - "hash": "0dc13925932fd50c54c086e7a34e6ec45489aec9" - }, - { - "nr": 110410, - "hash": "bf750621f3e35b2b70987ccc35d1aba1e6022560" - }, - { - "nr": 110343, - "hash": "e5bdf155f7ea99aedddab9b72854beed637288e1" - }, - { - "nr": 109602, - "hash": "805016bf94028e265a5807170697c17bd2cf873b" - }, - { - "nr": 109794, - "hash": "dc0aedb0b528340f2e90e49adca117c037aedf0b" - }, - { - "nr": 110292, - "hash": "addd7bfb401ed5c474130ab4d9c449abf67de1cc" - }, - { - "nr": 110974, - "hash": "0ba6a827f5efb8af80217824dc6b7c2423fb8440" - }, - { - "nr": 109479, - "hash": "16d4e1e2c5218328fd4d56d19dd465d3b6518171" - }, - { - "nr": 104907, - "hash": "6b04891e45363ab2647d392ac458d07a890ce6fc" - }, - { - "nr": 111229, - "hash": "3c732ed0a351be30c87f9036dfec2f6b36a49ba3" - }, - { - "nr": 110043, - "hash": "749a3c9eedcb00d28c8890d9f63353b95548c38e" - }, - { - "nr": 110880, - "hash": "85564628151180573686a114d3935984bf4242d6" - }, - { - "nr": 110419, - "hash": "c86b65ab0cfbd16f1119fca04e1c4086643ff379" - }, - { - "nr": 108414, - "hash": "7ce36305943b87fdc5d5269ceff9d09efe02b70a" - }, - { - "nr": 110564, - "hash": "71c535eb9480d254651e0c389e505375bdde227c" - }, - { - "nr": 110104, - "hash": "d811b2647b5751b5f1c1cf5fcc0760132d145181" - }, - { - "nr": 110744, - "hash": "50d3d1ffb9536009b1daa25d49c714874e23944b" - }, - { - "nr": 110957, - "hash": "ccf3c3c4ad46e40a432d2e843ba600bb758e8773" - }, - { - "nr": 110706, - "hash": "76a46816935da8f4a86152fa6a961d22d059de4c" - }, - { - "nr": 110255, - "hash": "48f7c9dac6567152de84bb7ba2de7417947f4b13" - }, - { - "nr": 110178, - "hash": "7e82b2fb8b5729730406f5d94ba7dfd8e1e40c38" - }, - { - "nr": 111017, - "hash": "03d5a4586c419522ee2c10bd298e0e24b1dfcd1b" - }, - { - "nr": 111065, - "hash": "cf075a5994223073103faaffba55861d9a4b33a0" - }, - { - "nr": 110896, - "hash": "3e4ded93ef3751413fc787d4c8ac6c54f14ee990" - }, - { - "nr": 109840, - "hash": "977a8874afe5dddfae2b0bf5853a79d8cef139c6" - }, - { - "nr": 111194, - "hash": "c031492b5ebdace048d001e22916f4a36259c950" - }, - { - "nr": 110950, - "hash": "2437203955e304ba4c8f1ed04f3e46e69a6cc2fa" - }, - { - "nr": 110813, - "hash": "21c927a2996849d1e3dac857ade32e5c07623360" - }, - { - "nr": 109624, - "hash": "74ed44945b9cd158e1a9f305d5e3aacfa93c2e40" - }, - { - "nr": 110837, - "hash": "6379b3fc6959aed30a364cf0e7746f9b5bf7fb1a" - }, - { - "nr": 103523, - "hash": "bdae6a537025049f80bf3476e6a8b7b593a94dc7" - }, - { - "nr": 109938, - "hash": "90c5ce8f9dbb9b94db0f002b5235f7704fea8d45" - }, - { - "nr": 109676, - "hash": "664abbcc8de72822ffecbb8d6f793ed5279dd228" - }, - { - "nr": 110334, - "hash": "ac43e71e170b40f8c6182ae8457f2e675b5d829f" - }, - { - "nr": 109510, - "hash": "658e16d5078dd3601c1562be839dff65eb46716f" - }, - { - "nr": 110388, - "hash": "098eaffad62a844930a2b37359eb30cc4a5d3cf8" - }, - { - "nr": 106834, - "hash": "8646e0566c508788aabad9f3ac371618b3506491" - }, - { - "nr": 110538, - "hash": "81dd9af9e5e658f70ec053e9237f79f2e3450027" - }, - { - "nr": 109813, - "hash": "88c5f66bb7eb8d37a2589b55297c5139754bf20d" - }, - { - "nr": 111048, - "hash": "eb9be271dc61e09fc6608dae010863c541ce7b27" - }, - { - "nr": 109111, - "hash": "d1a0e84d6709aaa75000d347bd8d84188ce514b6" - }, - { - "nr": 110663, - "hash": "381bcb48b3dfa56305f23e491caf8b04b5b6bd09" - }, - { - "nr": 111186, - "hash": "ae5fa6340f72d441b9b7c7036922b35728c780ca" - } - ] +{ + "mail": "drani@vmware.com", + "name": "Divya", + "date": 1658855812, + "prs": [ + { + "nr": 110140, + "hash": "84e081468e7d6c315ff3ee0cdba8dac3cd30aac5" + }, + { + "nr": 110805, + "hash": "f5a03fb91cc9e91796aa1da3a9072cc798af073d" + }, + { + "nr": 110179, + "hash": "04b1c9994c2559517e4bf04672be7bb6b43de497" + }, + { + "nr": 110326, + "hash": "b1b2e0c7c7669e2d9a6373c3ca220f29853e1574" + }, + { + "nr": 111141, + "hash": "fb55a8ec0a563b2fba3998d1151d4a97f5b67a48" + }, + { + "nr": 110310, + "hash": "f6fa17dc58cf300acbdf1f9f2afa70500f59c335" + }, + { + "nr": 111026, + "hash": "0dfb4e530bac6e859c451b40a4a8d37c28ed80b0" + }, + { + "nr": 110948, + "hash": "38c7befbf0d296b7c061d03bfdbb6be51d8ab433" + }, + { + "nr": 110691, + "hash": "3d02178d8e4557a8d3b1ac9610fee29919e150ca" + }, + { + "nr": 110703, + "hash": "f3932662bcd22d722857b198aeff25584ce97623" + }, + { + "nr": 110914, + "hash": "ab401ac0350fedaea7727156b6e40391d23dc9d8" + }, + { + "nr": 109764, + "hash": "ebf08816dd73f3f8f9cf7a21a57f8eddfa3ed621" + }, + { + "nr": 110791, + "hash": "9d53fd10ef20c5f61acac4601d32d931a7a0db4d" + }, + { + "nr": 110371, + "hash": "d65adfad0c9a4228ba5f3ea3886e3ac4c3cd67af" + }, + { + "nr": 105797, + "hash": "e7bdfc849a9ebee6be71765b6376ff9f03567970" + }, + { + "nr": 110868, + "hash": "e8340fecc115ecb752070498b9712ddbe3203ef9" + }, + { + "nr": 110762, + "hash": "0dc13925932fd50c54c086e7a34e6ec45489aec9" + }, + { + "nr": 110410, + "hash": "bf750621f3e35b2b70987ccc35d1aba1e6022560" + }, + { + "nr": 110343, + "hash": "e5bdf155f7ea99aedddab9b72854beed637288e1" + }, + { + "nr": 109602, + "hash": "805016bf94028e265a5807170697c17bd2cf873b" + }, + { + "nr": 109794, + "hash": "dc0aedb0b528340f2e90e49adca117c037aedf0b" + }, + { + "nr": 110292, + "hash": "addd7bfb401ed5c474130ab4d9c449abf67de1cc" + }, + { + "nr": 110974, + "hash": "0ba6a827f5efb8af80217824dc6b7c2423fb8440" + }, + { + "nr": 109479, + "hash": "16d4e1e2c5218328fd4d56d19dd465d3b6518171" + }, + { + "nr": 104907, + "hash": "6b04891e45363ab2647d392ac458d07a890ce6fc" + }, + { + "nr": 111229, + "hash": "3c732ed0a351be30c87f9036dfec2f6b36a49ba3" + }, + { + "nr": 110043, + "hash": "749a3c9eedcb00d28c8890d9f63353b95548c38e" + }, + { + "nr": 110880, + "hash": "85564628151180573686a114d3935984bf4242d6" + }, + { + "nr": 110419, + "hash": "c86b65ab0cfbd16f1119fca04e1c4086643ff379" + }, + { + "nr": 108414, + "hash": "7ce36305943b87fdc5d5269ceff9d09efe02b70a" + }, + { + "nr": 110564, + "hash": "71c535eb9480d254651e0c389e505375bdde227c" + }, + { + "nr": 110104, + "hash": "d811b2647b5751b5f1c1cf5fcc0760132d145181" + }, + { + "nr": 110744, + "hash": "50d3d1ffb9536009b1daa25d49c714874e23944b" + }, + { + "nr": 110957, + "hash": "ccf3c3c4ad46e40a432d2e843ba600bb758e8773" + }, + { + "nr": 110706, + "hash": "76a46816935da8f4a86152fa6a961d22d059de4c" + }, + { + "nr": 110255, + "hash": "48f7c9dac6567152de84bb7ba2de7417947f4b13" + }, + { + "nr": 110178, + "hash": "7e82b2fb8b5729730406f5d94ba7dfd8e1e40c38" + }, + { + "nr": 111017, + "hash": "03d5a4586c419522ee2c10bd298e0e24b1dfcd1b" + }, + { + "nr": 111065, + "hash": "cf075a5994223073103faaffba55861d9a4b33a0" + }, + { + "nr": 110896, + "hash": "3e4ded93ef3751413fc787d4c8ac6c54f14ee990" + }, + { + "nr": 109840, + "hash": "977a8874afe5dddfae2b0bf5853a79d8cef139c6" + }, + { + "nr": 111194, + "hash": "c031492b5ebdace048d001e22916f4a36259c950" + }, + { + "nr": 110950, + "hash": "2437203955e304ba4c8f1ed04f3e46e69a6cc2fa" + }, + { + "nr": 110813, + "hash": "21c927a2996849d1e3dac857ade32e5c07623360" + }, + { + "nr": 109624, + "hash": "74ed44945b9cd158e1a9f305d5e3aacfa93c2e40" + }, + { + "nr": 110837, + "hash": "6379b3fc6959aed30a364cf0e7746f9b5bf7fb1a" + }, + { + "nr": 103523, + "hash": "bdae6a537025049f80bf3476e6a8b7b593a94dc7" + }, + { + "nr": 109938, + "hash": "90c5ce8f9dbb9b94db0f002b5235f7704fea8d45" + }, + { + "nr": 109676, + "hash": "664abbcc8de72822ffecbb8d6f793ed5279dd228" + }, + { + "nr": 110334, + "hash": "ac43e71e170b40f8c6182ae8457f2e675b5d829f" + }, + { + "nr": 109510, + "hash": "658e16d5078dd3601c1562be839dff65eb46716f" + }, + { + "nr": 110388, + "hash": "098eaffad62a844930a2b37359eb30cc4a5d3cf8" + }, + { + "nr": 106834, + "hash": "8646e0566c508788aabad9f3ac371618b3506491" + }, + { + "nr": 110538, + "hash": "81dd9af9e5e658f70ec053e9237f79f2e3450027" + }, + { + "nr": 109813, + "hash": "88c5f66bb7eb8d37a2589b55297c5139754bf20d" + }, + { + "nr": 111048, + "hash": "eb9be271dc61e09fc6608dae010863c541ce7b27" + }, + { + "nr": 109111, + "hash": "d1a0e84d6709aaa75000d347bd8d84188ce514b6" + }, + { + "nr": 110663, + "hash": "381bcb48b3dfa56305f23e491caf8b04b5b6bd09" + }, + { + "nr": 111186, + "hash": "ae5fa6340f72d441b9b7c7036922b35728c780ca" + } + ] } \ No newline at end of file diff --git a/releases/release-1.25/release-notes/sessions/maps-1660059324.json b/releases/release-1.25/release-notes/sessions/maps-1660059324.json index 82562664fbf..500bce6f0f1 100644 --- a/releases/release-1.25/release-notes/sessions/maps-1660059324.json +++ b/releases/release-1.25/release-notes/sessions/maps-1660059324.json @@ -1,431 +1,431 @@ -{ - "mail": "diptochuck123@gmail.com", - "name": "DiptoChakrabarty", - "date": 1660059324, - "prs": [ - { - "nr": 110688, - "hash": "0243830ec43dae3e8ab649b9a68fb6b695f7dc02" - }, - { - "nr": 111466, - "hash": "583a05e075b4ebfa5f4b049261483a030d20ca94" - }, - { - "nr": 111406, - "hash": "9fef35633531f3e8b9888cfa5974e377729a00d3" - }, - { - "nr": 110334, - "hash": "379f948f633067e6d60d1def142f06cd0bc95dec" - }, - { - "nr": 111301, - "hash": "a06716dd38d27b4104d87ef44977d640aa388030" - }, - { - "nr": 110534, - "hash": "fea86ca16b19ef716b61bc94fd37921d8958e7f2" - }, - { - "nr": 111060, - "hash": "f8e9283598fdf87fada2e31f347c25ab9435ca03" - }, - { - "nr": 110914, - "hash": "1d8df89e6f58e932973a527f2e873d0d03cb320e" - }, - { - "nr": 110419, - "hash": "189cf4c9d10ff6cee9aaf6620c243a53c40d0cef" - }, - { - "nr": 111090, - "hash": "20e91f4a4d354540389c0fde93802681aab7db9f" - }, - { - "nr": 111126, - "hash": "073317bc731ce20583b81aa26e4365b155356271" - }, - { - "nr": 111513, - "hash": "65cd5d0744b584374f35c5fe6ff4b24da3e6246d" - }, - { - "nr": 107329, - "hash": "0da459c97b9ebeb0f3b892b777d64a84e304b748" - }, - { - "nr": 111319, - "hash": "299ee1c69faea3d1bbef68d5864ed97411bd911d" - }, - { - "nr": 110868, - "hash": "53b15f05c5c44f05c9fe2d7a823d5c97d0e3acf2" - }, - { - "nr": 110959, - "hash": "d5feb0eb507baf3dc655b233fd47feeefee5d805" - }, - { - "nr": 111418, - "hash": "534b72a0ff90f1d1ec1dedc1d6f60f9212ec00b3" - }, - { - "nr": 111419, - "hash": "038a07187b5bf58d93e88191d5b92bfeb5c85fa2" - }, - { - "nr": 111033, - "hash": "5b5f41591ab76f384f5bce9dc5dc057b30136d4d" - }, - { - "nr": 111402, - "hash": "22815d54ebf76ed3461c82eb2a1a321a0aabbf2f" - }, - { - "nr": 109938, - "hash": "15c858007597723602e3930bf42984b9b11b9b7d" - }, - { - "nr": 111606, - "hash": "cfbef6275ba436c390043637415720b8f288a2e6" - }, - { - "nr": 111557, - "hash": "0ae61f115ffe0b1d45181fe8d0da1a2c4659921f" - }, - { - "nr": 110255, - "hash": "f36cb8f452bfd74496dffc1e0ffb1284b101dd3d" - }, - { - "nr": 109840, - "hash": "f32af0edc3ee11bae620fa04ec57b630d94105f9" - }, - { - "nr": 110948, - "hash": "b179193756b10d1e61fd33a52e7aa98832ad4626" - }, - { - "nr": 111596, - "hash": "559e723dea8af80d4b38fc1d42ddd1d107f67be2" - }, - { - "nr": 105797, - "hash": "86767588d5bbedb91e70b874d027196ba40f8860" - }, - { - "nr": 111439, - "hash": "f08ef4c9c9f87979480df93c6eb0f021c23a2fba" - }, - { - "nr": 109070, - "hash": "68edcf1f7569aecc5980d52f8743c97463181858" - }, - { - "nr": 111467, - "hash": "0ccaebf9683a7598de233d96fefd815d0263b44e" - }, - { - "nr": 111619, - "hash": "9b5de1bfd11d8adfcf4d9728cb90f1070bf127fc" - }, - { - "nr": 111475, - "hash": "3e6371f61832730bf9a3e1bb4bcc6fcfd099f48b" - }, - { - "nr": 111492, - "hash": "242897b706442da92527b0d7c82275aa12367ddf" - }, - { - "nr": 107490, - "hash": "1cc6ed4ea5892f5629c5479968b542af39c81db1" - }, - { - "nr": 111194, - "hash": "84296f542565b55bfcce177c8cf01325999b213b" - }, - { - "nr": 111485, - "hash": "cce1bc8f5212815a506cddf7ec1cecc2613e9a49" - }, - { - "nr": 110957, - "hash": "dd5aca42842f31b79c6ca9ca4ea003dc5850c8cc" - }, - { - "nr": 109602, - "hash": "a06e82027667a24b7253d79cbf6ee29192ee169b" - }, - { - "nr": 111462, - "hash": "e264c188327110be5963fdc74e52b5427db4d1f3" - }, - { - "nr": 111399, - "hash": "9041b88595e527841d55077d82fced57fc9fdf5a" - }, - { - "nr": 110292, - "hash": "fe9a184661f7747b30a6a67f219feb5910b34eaa" - }, - { - "nr": 111647, - "hash": "58470a4b3de53c2a8a7c26573f01bd4d5799ea55" - }, - { - "nr": 111645, - "hash": "fcd588bc4d6ee809124f1a5ab662aa9ac5680341" - }, - { - "nr": 109764, - "hash": "cb2d78ee57690a37058c80c67f109ffafd11a9fc" - }, - { - "nr": 111623, - "hash": "3180cb26c47e3d5d591ff3b0d7a04cf2ec23613f" - }, - { - "nr": 110940, - "hash": "31961bcffdbf324176fe761e1ca59f9bfe85f369" - }, - { - "nr": 111472, - "hash": "d34e64ac94898abd88de9018e89c6409d8039cb2" - }, - { - "nr": 111479, - "hash": "7ea715f5810af656a7cd2e9db5f14c72d4c5fbb1" - }, - { - "nr": 111507, - "hash": "8f25e0a6486b59f5c457ec0344c0d22eefe05e1e" - }, - { - "nr": 110043, - "hash": "3c180764db9c5a54a81485a9ee401321a58cc77e" - }, - { - "nr": 111278, - "hash": "88a70a5b3430c0a4b9c2f25d2d21ef989d050dea" - }, - { - "nr": 111119, - "hash": "6ba5b4ad325eb7ebf08f88d66c68d9f60e53da48" - }, - { - "nr": 109601, - "hash": "48f2bb4c0ddfab8f87fa462545fe392fa8d5cefe" - }, - { - "nr": 110140, - "hash": "91982e0de91369ea89c603d549580fd1babc4fd1" - }, - { - "nr": 110179, - "hash": "b7bc28fd13a24f4a8061cb70ee3aa1a4b0e5b6bd" - }, - { - "nr": 111502, - "hash": "8d5565f2d2d6b8b214d81f7fe35199796a341e0a" - }, - { - "nr": 111633, - "hash": "941111d0017d868da2544e2ce0d165466bbaf58c" - }, - { - "nr": 110326, - "hash": "7976050d1b5eb96589a951c184731a9212d54e61" - }, - { - "nr": 110691, - "hash": "5706f0cdfcda896c6030bca6ddf43b08df8beb23" - }, - { - "nr": 108541, - "hash": "91376ee7ed430c7fd8840281ae993a406f494ba3" - }, - { - "nr": 105919, - "hash": "c1c2c1c47b8bfc4cd0d2763d19ab37be5046069a" - }, - { - "nr": 109141, - "hash": "f748ae7acf622b0446d39b551e5a11bd3194afcc" - }, - { - "nr": 111229, - "hash": "b25ee75580f8a2857da3d9c9994f2de8ec9c689a" - }, - { - "nr": 110343, - "hash": "e667499920276de9931399166025123053efff08" - }, - { - "nr": 110648, - "hash": "cd6b5d42650c24e02c97a53448b7f91b6d005819" - }, - { - "nr": 111618, - "hash": "44f56671b7e6c8baca1183f753a6ebded4724297" - }, - { - "nr": 109819, - "hash": "58fdf5529b33352017f8d3e5a807aad3205f7653" - }, - { - "nr": 111646, - "hash": "931f1a20c5af05a19b257dee76ecf170e0f618c2" - }, - { - "nr": 111358, - "hash": "59a00de443a0632b87361621d0a5bd35633910eb" - }, - { - "nr": 111255, - "hash": "71e036a07c71bc6a65640e7c5975f7542260128f" - }, - { - "nr": 111254, - "hash": "4e4949ea851ac07effb6247bba42e86506581f07" - }, - { - "nr": 111679, - "hash": "ed3e1ac1ce1d5f2f954f8060de6d3c73426201b4" - }, - { - "nr": 111547, - "hash": "886c7a57ff8834a7cafa524f16bf37c5b233f9b8" - }, - { - "nr": 111206, - "hash": "a3e378bfa6b7dda4233cc80912d2a3c778988ccb" - }, - { - "nr": 109479, - "hash": "e0cebf3d6799f98cb953dbf0ebb588201d3b91ad" - }, - { - "nr": 111061, - "hash": "163bf5e50c6b5f52d676cdb144f3a0c9d55de73b" - }, - { - "nr": 111435, - "hash": "15eed5c320be6c30a2c30d0e49d05f013740ed9e" - }, - { - "nr": 111009, - "hash": "45962a192b898fdc96030f176cf0b018facdc254" - }, - { - "nr": 110411, - "hash": "5d6cc8ec11198cd36afccd372195c39d14b04bf5" - }, - { - "nr": 110371, - "hash": "6f997094021775b0a8ecb7450f39ab6f53c67b49" - }, - { - "nr": 111481, - "hash": "e2ffa59a76a8f7b825ff0b4efd5d97985d0bb91c" - }, - { - "nr": 110007, - "hash": "02292faf1e51bb6768139fc45b40b6789b721d05" - }, - { - "nr": 111411, - "hash": "febbcd378fdc2b01b9a22c5ce0a269abb72c2263" - }, - { - "nr": 111620, - "hash": "5533ab54fed01bd673c3a88411f065fdb6324f27" - }, - { - "nr": 111524, - "hash": "0066b8944517dd19c8c1d38b065ae1451f2c82e6" - }, - { - "nr": 111186, - "hash": "ea8652fc5212b2fe1de3b20bd01645210a3f3f5a" - }, - { - "nr": 105126, - "hash": "8986ed3ce79370c9645251cc33de116db6f4528f" - }, - { - "nr": 108624, - "hash": "7cb405ab66447c4f0d0307d86ce24781b0edbb51" - }, - { - "nr": 110164, - "hash": "9f31ed9f57c4e716544050221f24c74004dd98ab" - }, - { - "nr": 109706, - "hash": "ca155c63a1dcea656511032834a45dda114036d1" - }, - { - "nr": 110495, - "hash": "fa58133a2af91441d69a6ea2c562de2030009e43" - }, - { - "nr": 111192, - "hash": "7bb455cc5ba2dff041931ee9d60f2a6edf88f02a" - }, - { - "nr": 110410, - "hash": "1bded0622cb73f86a54e866835fa1a117a5aaf52" - }, - { - "nr": 108414, - "hash": "b9b35a45a14a723e9ffb799c177ccf4a4f078b18" - }, - { - "nr": 111441, - "hash": "4e2ff67c484e8234124f9995c2ec289019e127f9" - }, - { - "nr": 109217, - "hash": "4fb2a54a818c28b12c096cb0c4626e610efc9d0c" - }, - { - "nr": 109624, - "hash": "bd8242f6e27e8f7cfe61a085afb44516cc121e73" - }, - { - "nr": 110670, - "hash": "74f693eee4a8ac56dd5ae5ca3304410bac020e2c" - }, - { - "nr": 110310, - "hash": "8541e27a2208a46dc3caac69563c89f46ca36f04" - }, - { - "nr": 111486, - "hash": "3ac7620db3780a14864d484435f9fb353bdc621a" - }, - { - "nr": 109813, - "hash": "118f57ffe557ef8d4dc0aa71d532b2783f59cb2d" - }, - { - "nr": 111383, - "hash": "7f03ba5b28f27a995a1c63fdbb9cb74ac5769fbe" - }, - { - "nr": 109510, - "hash": "2bcc4791a6c6ff0e8feb7e4083cb6f7732416544" - }, - { - "nr": 109263, - "hash": "014d7f333409fcae9057566e2c97059742370677" - }, - { - "nr": 104484, - "hash": "838b9dd0737cef6334f0c1869f88699d6c8c5b23" - } - ] +{ + "mail": "diptochuck123@gmail.com", + "name": "DiptoChakrabarty", + "date": 1660059324, + "prs": [ + { + "nr": 110688, + "hash": "0243830ec43dae3e8ab649b9a68fb6b695f7dc02" + }, + { + "nr": 111466, + "hash": "583a05e075b4ebfa5f4b049261483a030d20ca94" + }, + { + "nr": 111406, + "hash": "9fef35633531f3e8b9888cfa5974e377729a00d3" + }, + { + "nr": 110334, + "hash": "379f948f633067e6d60d1def142f06cd0bc95dec" + }, + { + "nr": 111301, + "hash": "a06716dd38d27b4104d87ef44977d640aa388030" + }, + { + "nr": 110534, + "hash": "fea86ca16b19ef716b61bc94fd37921d8958e7f2" + }, + { + "nr": 111060, + "hash": "f8e9283598fdf87fada2e31f347c25ab9435ca03" + }, + { + "nr": 110914, + "hash": "1d8df89e6f58e932973a527f2e873d0d03cb320e" + }, + { + "nr": 110419, + "hash": "189cf4c9d10ff6cee9aaf6620c243a53c40d0cef" + }, + { + "nr": 111090, + "hash": "20e91f4a4d354540389c0fde93802681aab7db9f" + }, + { + "nr": 111126, + "hash": "073317bc731ce20583b81aa26e4365b155356271" + }, + { + "nr": 111513, + "hash": "65cd5d0744b584374f35c5fe6ff4b24da3e6246d" + }, + { + "nr": 107329, + "hash": "0da459c97b9ebeb0f3b892b777d64a84e304b748" + }, + { + "nr": 111319, + "hash": "299ee1c69faea3d1bbef68d5864ed97411bd911d" + }, + { + "nr": 110868, + "hash": "53b15f05c5c44f05c9fe2d7a823d5c97d0e3acf2" + }, + { + "nr": 110959, + "hash": "d5feb0eb507baf3dc655b233fd47feeefee5d805" + }, + { + "nr": 111418, + "hash": "534b72a0ff90f1d1ec1dedc1d6f60f9212ec00b3" + }, + { + "nr": 111419, + "hash": "038a07187b5bf58d93e88191d5b92bfeb5c85fa2" + }, + { + "nr": 111033, + "hash": "5b5f41591ab76f384f5bce9dc5dc057b30136d4d" + }, + { + "nr": 111402, + "hash": "22815d54ebf76ed3461c82eb2a1a321a0aabbf2f" + }, + { + "nr": 109938, + "hash": "15c858007597723602e3930bf42984b9b11b9b7d" + }, + { + "nr": 111606, + "hash": "cfbef6275ba436c390043637415720b8f288a2e6" + }, + { + "nr": 111557, + "hash": "0ae61f115ffe0b1d45181fe8d0da1a2c4659921f" + }, + { + "nr": 110255, + "hash": "f36cb8f452bfd74496dffc1e0ffb1284b101dd3d" + }, + { + "nr": 109840, + "hash": "f32af0edc3ee11bae620fa04ec57b630d94105f9" + }, + { + "nr": 110948, + "hash": "b179193756b10d1e61fd33a52e7aa98832ad4626" + }, + { + "nr": 111596, + "hash": "559e723dea8af80d4b38fc1d42ddd1d107f67be2" + }, + { + "nr": 105797, + "hash": "86767588d5bbedb91e70b874d027196ba40f8860" + }, + { + "nr": 111439, + "hash": "f08ef4c9c9f87979480df93c6eb0f021c23a2fba" + }, + { + "nr": 109070, + "hash": "68edcf1f7569aecc5980d52f8743c97463181858" + }, + { + "nr": 111467, + "hash": "0ccaebf9683a7598de233d96fefd815d0263b44e" + }, + { + "nr": 111619, + "hash": "9b5de1bfd11d8adfcf4d9728cb90f1070bf127fc" + }, + { + "nr": 111475, + "hash": "3e6371f61832730bf9a3e1bb4bcc6fcfd099f48b" + }, + { + "nr": 111492, + "hash": "242897b706442da92527b0d7c82275aa12367ddf" + }, + { + "nr": 107490, + "hash": "1cc6ed4ea5892f5629c5479968b542af39c81db1" + }, + { + "nr": 111194, + "hash": "84296f542565b55bfcce177c8cf01325999b213b" + }, + { + "nr": 111485, + "hash": "cce1bc8f5212815a506cddf7ec1cecc2613e9a49" + }, + { + "nr": 110957, + "hash": "dd5aca42842f31b79c6ca9ca4ea003dc5850c8cc" + }, + { + "nr": 109602, + "hash": "a06e82027667a24b7253d79cbf6ee29192ee169b" + }, + { + "nr": 111462, + "hash": "e264c188327110be5963fdc74e52b5427db4d1f3" + }, + { + "nr": 111399, + "hash": "9041b88595e527841d55077d82fced57fc9fdf5a" + }, + { + "nr": 110292, + "hash": "fe9a184661f7747b30a6a67f219feb5910b34eaa" + }, + { + "nr": 111647, + "hash": "58470a4b3de53c2a8a7c26573f01bd4d5799ea55" + }, + { + "nr": 111645, + "hash": "fcd588bc4d6ee809124f1a5ab662aa9ac5680341" + }, + { + "nr": 109764, + "hash": "cb2d78ee57690a37058c80c67f109ffafd11a9fc" + }, + { + "nr": 111623, + "hash": "3180cb26c47e3d5d591ff3b0d7a04cf2ec23613f" + }, + { + "nr": 110940, + "hash": "31961bcffdbf324176fe761e1ca59f9bfe85f369" + }, + { + "nr": 111472, + "hash": "d34e64ac94898abd88de9018e89c6409d8039cb2" + }, + { + "nr": 111479, + "hash": "7ea715f5810af656a7cd2e9db5f14c72d4c5fbb1" + }, + { + "nr": 111507, + "hash": "8f25e0a6486b59f5c457ec0344c0d22eefe05e1e" + }, + { + "nr": 110043, + "hash": "3c180764db9c5a54a81485a9ee401321a58cc77e" + }, + { + "nr": 111278, + "hash": "88a70a5b3430c0a4b9c2f25d2d21ef989d050dea" + }, + { + "nr": 111119, + "hash": "6ba5b4ad325eb7ebf08f88d66c68d9f60e53da48" + }, + { + "nr": 109601, + "hash": "48f2bb4c0ddfab8f87fa462545fe392fa8d5cefe" + }, + { + "nr": 110140, + "hash": "91982e0de91369ea89c603d549580fd1babc4fd1" + }, + { + "nr": 110179, + "hash": "b7bc28fd13a24f4a8061cb70ee3aa1a4b0e5b6bd" + }, + { + "nr": 111502, + "hash": "8d5565f2d2d6b8b214d81f7fe35199796a341e0a" + }, + { + "nr": 111633, + "hash": "941111d0017d868da2544e2ce0d165466bbaf58c" + }, + { + "nr": 110326, + "hash": "7976050d1b5eb96589a951c184731a9212d54e61" + }, + { + "nr": 110691, + "hash": "5706f0cdfcda896c6030bca6ddf43b08df8beb23" + }, + { + "nr": 108541, + "hash": "91376ee7ed430c7fd8840281ae993a406f494ba3" + }, + { + "nr": 105919, + "hash": "c1c2c1c47b8bfc4cd0d2763d19ab37be5046069a" + }, + { + "nr": 109141, + "hash": "f748ae7acf622b0446d39b551e5a11bd3194afcc" + }, + { + "nr": 111229, + "hash": "b25ee75580f8a2857da3d9c9994f2de8ec9c689a" + }, + { + "nr": 110343, + "hash": "e667499920276de9931399166025123053efff08" + }, + { + "nr": 110648, + "hash": "cd6b5d42650c24e02c97a53448b7f91b6d005819" + }, + { + "nr": 111618, + "hash": "44f56671b7e6c8baca1183f753a6ebded4724297" + }, + { + "nr": 109819, + "hash": "58fdf5529b33352017f8d3e5a807aad3205f7653" + }, + { + "nr": 111646, + "hash": "931f1a20c5af05a19b257dee76ecf170e0f618c2" + }, + { + "nr": 111358, + "hash": "59a00de443a0632b87361621d0a5bd35633910eb" + }, + { + "nr": 111255, + "hash": "71e036a07c71bc6a65640e7c5975f7542260128f" + }, + { + "nr": 111254, + "hash": "4e4949ea851ac07effb6247bba42e86506581f07" + }, + { + "nr": 111679, + "hash": "ed3e1ac1ce1d5f2f954f8060de6d3c73426201b4" + }, + { + "nr": 111547, + "hash": "886c7a57ff8834a7cafa524f16bf37c5b233f9b8" + }, + { + "nr": 111206, + "hash": "a3e378bfa6b7dda4233cc80912d2a3c778988ccb" + }, + { + "nr": 109479, + "hash": "e0cebf3d6799f98cb953dbf0ebb588201d3b91ad" + }, + { + "nr": 111061, + "hash": "163bf5e50c6b5f52d676cdb144f3a0c9d55de73b" + }, + { + "nr": 111435, + "hash": "15eed5c320be6c30a2c30d0e49d05f013740ed9e" + }, + { + "nr": 111009, + "hash": "45962a192b898fdc96030f176cf0b018facdc254" + }, + { + "nr": 110411, + "hash": "5d6cc8ec11198cd36afccd372195c39d14b04bf5" + }, + { + "nr": 110371, + "hash": "6f997094021775b0a8ecb7450f39ab6f53c67b49" + }, + { + "nr": 111481, + "hash": "e2ffa59a76a8f7b825ff0b4efd5d97985d0bb91c" + }, + { + "nr": 110007, + "hash": "02292faf1e51bb6768139fc45b40b6789b721d05" + }, + { + "nr": 111411, + "hash": "febbcd378fdc2b01b9a22c5ce0a269abb72c2263" + }, + { + "nr": 111620, + "hash": "5533ab54fed01bd673c3a88411f065fdb6324f27" + }, + { + "nr": 111524, + "hash": "0066b8944517dd19c8c1d38b065ae1451f2c82e6" + }, + { + "nr": 111186, + "hash": "ea8652fc5212b2fe1de3b20bd01645210a3f3f5a" + }, + { + "nr": 105126, + "hash": "8986ed3ce79370c9645251cc33de116db6f4528f" + }, + { + "nr": 108624, + "hash": "7cb405ab66447c4f0d0307d86ce24781b0edbb51" + }, + { + "nr": 110164, + "hash": "9f31ed9f57c4e716544050221f24c74004dd98ab" + }, + { + "nr": 109706, + "hash": "ca155c63a1dcea656511032834a45dda114036d1" + }, + { + "nr": 110495, + "hash": "fa58133a2af91441d69a6ea2c562de2030009e43" + }, + { + "nr": 111192, + "hash": "7bb455cc5ba2dff041931ee9d60f2a6edf88f02a" + }, + { + "nr": 110410, + "hash": "1bded0622cb73f86a54e866835fa1a117a5aaf52" + }, + { + "nr": 108414, + "hash": "b9b35a45a14a723e9ffb799c177ccf4a4f078b18" + }, + { + "nr": 111441, + "hash": "4e2ff67c484e8234124f9995c2ec289019e127f9" + }, + { + "nr": 109217, + "hash": "4fb2a54a818c28b12c096cb0c4626e610efc9d0c" + }, + { + "nr": 109624, + "hash": "bd8242f6e27e8f7cfe61a085afb44516cc121e73" + }, + { + "nr": 110670, + "hash": "74f693eee4a8ac56dd5ae5ca3304410bac020e2c" + }, + { + "nr": 110310, + "hash": "8541e27a2208a46dc3caac69563c89f46ca36f04" + }, + { + "nr": 111486, + "hash": "3ac7620db3780a14864d484435f9fb353bdc621a" + }, + { + "nr": 109813, + "hash": "118f57ffe557ef8d4dc0aa71d532b2783f59cb2d" + }, + { + "nr": 111383, + "hash": "7f03ba5b28f27a995a1c63fdbb9cb74ac5769fbe" + }, + { + "nr": 109510, + "hash": "2bcc4791a6c6ff0e8feb7e4083cb6f7732416544" + }, + { + "nr": 109263, + "hash": "014d7f333409fcae9057566e2c97059742370677" + }, + { + "nr": 104484, + "hash": "838b9dd0737cef6334f0c1869f88699d6c8c5b23" + } + ] } \ No newline at end of file diff --git a/releases/release-1.25/release-notes/sessions/maps-1660239162.json b/releases/release-1.25/release-notes/sessions/maps-1660239162.json index 9817ab48325..8a933518623 100644 --- a/releases/release-1.25/release-notes/sessions/maps-1660239162.json +++ b/releases/release-1.25/release-notes/sessions/maps-1660239162.json @@ -1,35 +1,35 @@ -{ - "mail": "rodomar@outlook.com", - "name": "Rodolfo Martínez Vega", - "date": 1660239162, - "prs": [ - { - "nr": 111061, - "hash": "2a4b99eb160bbe930fc9ce3afc446921b1268439" - }, - { - "nr": 109090, - "hash": "8436f0d8bbd2c4276ac56624d971ec2049e8bb4c" - }, - { - "nr": 111258, - "hash": "50541b1f92ac4e30698aa1c5ea1b20866f6d7261" - }, - { - "nr": 111721, - "hash": "7edd0c9dd82132aae80712c48bc981e4381e8d37" - }, - { - "nr": 111691, - "hash": "05f8f82ab448907819819f9ac2910e156114c8e3" - }, - { - "nr": 108554, - "hash": "0b3b1b6f49abc483e5e48ab4599d3534b7af6b5d" - }, - { - "nr": 111113, - "hash": "5089b04ab68d7cba28548ea19aff024976385fde" - } - ] +{ + "mail": "rodomar@outlook.com", + "name": "Rodolfo Martínez Vega", + "date": 1660239162, + "prs": [ + { + "nr": 111061, + "hash": "2a4b99eb160bbe930fc9ce3afc446921b1268439" + }, + { + "nr": 109090, + "hash": "8436f0d8bbd2c4276ac56624d971ec2049e8bb4c" + }, + { + "nr": 111258, + "hash": "50541b1f92ac4e30698aa1c5ea1b20866f6d7261" + }, + { + "nr": 111721, + "hash": "7edd0c9dd82132aae80712c48bc981e4381e8d37" + }, + { + "nr": 111691, + "hash": "05f8f82ab448907819819f9ac2910e156114c8e3" + }, + { + "nr": 108554, + "hash": "0b3b1b6f49abc483e5e48ab4599d3534b7af6b5d" + }, + { + "nr": 111113, + "hash": "5089b04ab68d7cba28548ea19aff024976385fde" + } + ] } \ No newline at end of file diff --git a/releases/release-1.25/release-notes/sessions/maps-1660876102.json b/releases/release-1.25/release-notes/sessions/maps-1660876102.json index fee44236fe0..e22f4ad76b2 100644 --- a/releases/release-1.25/release-notes/sessions/maps-1660876102.json +++ b/releases/release-1.25/release-notes/sessions/maps-1660876102.json @@ -1,11 +1,11 @@ -{ - "mail": "senthilx@amazon.com", - "name": "Senthil Kumaran", - "date": 1660876102, - "prs": [ - { - "nr": 110851, - "hash": "841f101cd9f38edd5ad744ea1f68def0de4870f5" - } - ] +{ + "mail": "senthilx@amazon.com", + "name": "Senthil Kumaran", + "date": 1660876102, + "prs": [ + { + "nr": 110851, + "hash": "841f101cd9f38edd5ad744ea1f68def0de4870f5" + } + ] } \ No newline at end of file diff --git a/releases/release-1.25/release-team.md b/releases/release-1.25/release-team.md index dd47f826406..c4382834962 100644 --- a/releases/release-1.25/release-team.md +++ b/releases/release-1.25/release-team.md @@ -1,17 +1,17 @@ -# Kubernetes 1.25 Release Team - -| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|----------|----------------------------------|----------------------------------------| -| Lead | Cici Huang ([@cici37](https://github.com/cici37) / Slack: `@cici37`) | Jesse Butler ([@jlbutler](https://github.com/jlbutler) / Slack: `@Jesse Butler`), Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`), Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`), Leonard Vincent Simon Pahlke ([@leonardpahlke](https://github.com/leonardpahlke) / Slack: `@leonardpahlke`) | -| Enhancements | Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack: `@psaggu`) | Ryler Hockenbury ([@rhockenbury](https://github.com/rhockenbury) / Slack: `@rhockenbury`), Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@Mark Rossetti`), Jason Braganza ([@jasonbraganza](https://github.com/jasonbraganza) / Slack: `@Jason`), Parul Sahoo ([@parul5sahoo](https://github.com/parul5sahoo) / Slack: `@parul_sahoo`), Atharva Shinde ([@Atharva-Shinde](https://github.com/Atharva-Shinde) / Slack: `@Atharva Shinde`) | -| CI Signal | Arsh Sharma ([@RinkiyaKeDad](https://github.com/RinkiyaKeDad) / Slack: `@arsh`) | Nivedita Prasad ([@Nivedita-coder](https://github.com/Nivedita-coder) / Slack: `@Nivedita Prasad`), Jyoti Mahapatra ([@jyotimahapatra](https://github.com/jyotimahapatra) / Slack: `@Jyoti Mahapatra`), Shuhei Kitagawa ([@shuheiktgw](https://github.com/shuheiktgw) / Slack: `@Shuhei Kitagawa`), Noam Gur ([@gnoam](https://github.com/gnoam) / Slack: `@noam`) | -| Bug Triage | Heba Elayoty ([@helayoty](https://github.com/helayoty) / Slack: `@helayoty`) |Harshita Sao ([@harshitasao](https://github.com/harshitasao) / Slack: `@harshitasao`), Hosam Kamel ([@hkamel](https://github.com/hkamel) / Slack: `@hkamel`), Hossein Salahi ([@encodeflush](https://github.com/encodeflush) / Slack: `@hsalahi`), Marky Jackson ([@markyjackson-taulia](https://github.com/markyjackson-taulia) / Slack: `@markyjackson`), Justin Chizer ([@Justin-chizer](https://github.com/justin-chizer) / Slack: `@justin chizer`) | -| Docs | Kristin Martin ([@kcmartin](https://github.com/kcmartin) / Slack: `@kcmartin`) | Edidiong Asikpo ([@didicodes](https://github.com/didicodes) / Slack: `@Didicodes`), Cat Chu ([@cathchu](https://github.com/cathchu) / Slack: `@cathchu`), Seth McCombs ([@sethmccombs](https://github.com/sethmccombs) / Slack: `@sethmccombs`), Carolina Valencia ([@krol3](https://github.com/krol3) / Slack: `@krol`) | -| Release Notes | Carlos Santana ([@csantanapr](https://github.com/csantanapr) / Slack: `@csantanapr`) | Senthil Kumaran ([@orsenthil](https://github.com/orsenthil) / Slack: `Senthil Kumaran`), Divya Rani ([@Divya063](https://github.com/Divya063) / Slack: `Divya`), Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `ramrodo`), Dipto Chakrabarty ([@DiptoChakrabarty](https://github.com/DiptoChakrabarty) / Slack: `Dipto`)| -| Communications | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`) | Debabrata Panigrahi ([@Debanitrkl](https://github.com/Debanitrkl) / Slack: `@deba`), Ana Margarita Medina ([@AnaMMedina21](https://github.com/AnaMMedina21) / Slack: `@Ana Margarita Medina`), Garima Negi ([@Garima-Negi](https://github.com/Garima-Negi) / Slack: `@garima negi`), Frederico Serrano Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsm` ) | -| Emeritus Adviser | Rey Lejano ([@reylejano](https://github.com/reylejano)) / Slack: `@rlejano` | | -| Branch Manager | Verónica López ([@Verolop](https://github.com/Verolop)) / Slack: `@veronica` | Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard)) / Slack: `@jerickar`, Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@Joseph`) | - -Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.25, once the 1.25 release cycle concludes. +# Kubernetes 1.25 Release Team + +| **Role** | **Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|----------|----------------------------------|----------------------------------------| +| Lead | Cici Huang ([@cici37](https://github.com/cici37) / Slack: `@cici37`) | Jesse Butler ([@jlbutler](https://github.com/jlbutler) / Slack: `@Jesse Butler`), Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`), Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`), Leonard Vincent Simon Pahlke ([@leonardpahlke](https://github.com/leonardpahlke) / Slack: `@leonardpahlke`) | +| Enhancements | Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack: `@psaggu`) | Ryler Hockenbury ([@rhockenbury](https://github.com/rhockenbury) / Slack: `@rhockenbury`), Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@Mark Rossetti`), Jason Braganza ([@jasonbraganza](https://github.com/jasonbraganza) / Slack: `@Jason`), Parul Sahoo ([@parul5sahoo](https://github.com/parul5sahoo) / Slack: `@parul_sahoo`), Atharva Shinde ([@Atharva-Shinde](https://github.com/Atharva-Shinde) / Slack: `@Atharva Shinde`) | +| CI Signal | Arsh Sharma ([@RinkiyaKeDad](https://github.com/RinkiyaKeDad) / Slack: `@arsh`) | Nivedita Prasad ([@Nivedita-coder](https://github.com/Nivedita-coder) / Slack: `@Nivedita Prasad`), Jyoti Mahapatra ([@jyotimahapatra](https://github.com/jyotimahapatra) / Slack: `@Jyoti Mahapatra`), Shuhei Kitagawa ([@shuheiktgw](https://github.com/shuheiktgw) / Slack: `@Shuhei Kitagawa`), Noam Gur ([@gnoam](https://github.com/gnoam) / Slack: `@noam`) | +| Bug Triage | Heba Elayoty ([@helayoty](https://github.com/helayoty) / Slack: `@helayoty`) |Harshita Sao ([@harshitasao](https://github.com/harshitasao) / Slack: `@harshitasao`), Hosam Kamel ([@hkamel](https://github.com/hkamel) / Slack: `@hkamel`), Hossein Salahi ([@encodeflush](https://github.com/encodeflush) / Slack: `@hsalahi`), Marky Jackson ([@markyjackson-taulia](https://github.com/markyjackson-taulia) / Slack: `@markyjackson`), Justin Chizer ([@Justin-chizer](https://github.com/justin-chizer) / Slack: `@justin chizer`) | +| Docs | Kristin Martin ([@kcmartin](https://github.com/kcmartin) / Slack: `@kcmartin`) | Edidiong Asikpo ([@didicodes](https://github.com/didicodes) / Slack: `@Didicodes`), Cat Chu ([@cathchu](https://github.com/cathchu) / Slack: `@cathchu`), Seth McCombs ([@sethmccombs](https://github.com/sethmccombs) / Slack: `@sethmccombs`), Carolina Valencia ([@krol3](https://github.com/krol3) / Slack: `@krol`) | +| Release Notes | Carlos Santana ([@csantanapr](https://github.com/csantanapr) / Slack: `@csantanapr`) | Senthil Kumaran ([@orsenthil](https://github.com/orsenthil) / Slack: `Senthil Kumaran`), Divya Rani ([@Divya063](https://github.com/Divya063) / Slack: `Divya`), Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `ramrodo`), Dipto Chakrabarty ([@DiptoChakrabarty](https://github.com/DiptoChakrabarty) / Slack: `Dipto`)| +| Communications | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`) | Debabrata Panigrahi ([@Debanitrkl](https://github.com/Debanitrkl) / Slack: `@deba`), Ana Margarita Medina ([@AnaMMedina21](https://github.com/AnaMMedina21) / Slack: `@Ana Margarita Medina`), Garima Negi ([@Garima-Negi](https://github.com/Garima-Negi) / Slack: `@garima negi`), Frederico Serrano Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsm` ) | +| Emeritus Adviser | Rey Lejano ([@reylejano](https://github.com/reylejano)) / Slack: `@rlejano` | | +| Branch Manager | Verónica López ([@Verolop](https://github.com/Verolop)) / Slack: `@veronica` | Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard)) / Slack: `@jerickar`, Joseph Sandoval ([@jrsapi](https://github.com/jrsapi) / Slack: `@Joseph`) | + +Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.25, once the 1.25 release cycle concludes. diff --git a/releases/release-1.26/README.md b/releases/release-1.26/README.md index 0454328c380..531d66ede0b 100644 --- a/releases/release-1.26/README.md +++ b/releases/release-1.26/README.md @@ -1,135 +1,135 @@ ---- -title: "Kubernetes 1.26 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.26: Electrifying - -<p align="center"> - <img src="./logo/Electrifying_Logo.png" height="500" alt="Kubernetes 1.26 Release Logo" /> -</p> - -Kubernetes 1.26 is named *Electrifying* to raise awareness that Kubernetes orchestrates huge systems that consume a lot of energy and this is simply a problem. *Electrifying* also represents the increased automation we use in the release team and the fact that this community is simply electrifying. - -<p align="center"> - <img src="./logo/electrifying-wallpaper.png" alt="Kubernetes 1.26 Release Wallpaper" /> -</p> - -There is also a **live wallpaper** version for download see [link](https://drive.google.com/file/d/1nI3MnQv_fIX8X6ssVQTpU313y8B1FfyZ/view?usp=sharing). - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.26/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.26/release-team.md) -* [Meeting Minutes](http://bit.ly/k8s126-releasemtg) (members of [release-team@] receive meeting invites) -* [v1.26 Release Calendar][k8s126-calendar] -* Contact: [#sig-release] on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail -* [Internal Contact Info] (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Sheet](https://bit.ly/k8s126-enhancements) -* [Feature blog Tracking Board](https://github.com/orgs/kubernetes/projects/98/views/11) -* [Bug Triage Tracking Sheet](https://bit.ly/k8s126-bug-triage-tracking) -* [CI Signal Project Board & Issue Tracking](https://github.com/orgs/kubernetes/projects/68) -* [Retrospective Document][Retrospective Document] -* [kubernetes/sig-release v1.26 milestone](https://github.com/kubernetes/kubernetes/milestone/59) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## Major release cycle events - -The 1.26 release cycle is as follows: - -- **Monday 5th September 2022**: Week 1 — Release cycle begins -- **Thursday 29th September 2022**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) -- **[01:00 UTC Friday 7th October 2022 / 18:00 PDT Thursday 6th October 2022](https://everytimezone.com/s/3a6f71b0)**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **Monday 24th - Friday 28th October 2022**: Week 8 - [KubeCon NA](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/) -- **[17:00 UTC Wednesday 2nd November 2022 / 10:00 PDT Wednesday 2nd November 2022](https://everytimezone.com/s/bb5725f4)**: Week 10 — [Release Retrospective][Retrospective Document] Part 1 - Midcycle -- **[01:00 UTC Wednesday 9th November 2022 / 17:00 PDT Tuesday 8th November 2022](https://everytimezone.com/s/d3187dcc)**: Week 10 — [Code Freeze](../release_phases.md#code-freeze) -- **[01:00 UTC Wednesday 16th November 2022 / 17:00 PDT Tuesday 15th November 2022](https://everytimezone.com/s/dc1d29cb)**: Week 11 — [Test Freeze](../release_phases.md#test-freeze) -- **Tuesday 29th November 2022**: Week 13 — Docs must be completed and reviewed -- **Friday 9th December 2022**: Week 14 — Kubernetes v1.26.0 released -- **Tuesday 13th December**: Week 15 — [Release Retrospective][Retrospective Document] Part 2 -- **Wednesday 14th December**: Week 15 — [Release Retrospective][Retrospective Document] Part 3 (Note: Only if items get spill over from Retro Part 2, we will have Part 3) - -## Timeline - -| **What** | **Who** | **When** | **Week** | **CI Signal** | -|---------------------------------------------------------------|---|-----------------------------------------------------------------------------------------------------------------|----------|---| -| Start of Release Cycle | Lead | Monday 5th September 2022 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Monday 5th September 2022 | week 1 | | -| Schedule finalized | Lead | Friday 9th September 2022 | week 1 | | -| Team finalized | Lead | Friday 9th September 2022 | week 1 | | -| 1.26.0-alpha.1 released | Branch Manager | Tuesday 20th September 2022 | Week 3 | | -| Start Release Notes Draft | Release Notes Lead | Tuesday 20th September 2022 | week 3 | | -| Production Readiness Freeze | Enhancements Lead | Thursday 29th September 2022 | week 4 | | -| **Begin [Enhancements Freeze]** | Enhancements Lead | [01:00 UTC Friday 7th October 2022 / 18:00 PDT Thursday 6th October 2022](https://everytimezone.com/s/3a6f71b0) | week 5 | [master-blocking], [master-informing] | -| 1.26.0-alpha.2 released | Branch Manager | Tuesday 11th October 2022 | Week 6 | | -| Begin Friday APAC-friendly meetings | Lead | Friday 21th October 2022 | Week 7 | | -| KubeCon NA | | October 24-28 2022 | week 8 | | -| 1.26.0-alpha.3 released | Branch Manager | Tuesday 1st November 2022 | week 9 | [1.26-blocking], [master-blocking], [master-informing] | -| **Call for [Exceptions][Exception]** | Lead | Monday 31st October 2022 | week 9 | | -| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Monday 31st October 2022 | week 9 | | -| **Begin Feature blog freeze** | Comms Lead | [01:00 UTC Wednesday 2nd November 2022 / 18:00 PDT Tuesday 1st November 2022](https://everytimezone.com/s/09b6c7c8) | week 9 | | -| Release retrospective part 1 | Community | [17:00 UTC Wednesday 2nd November 2022 / 10:00 PDT Wednesday 2nd November 2022](https://everytimezone.com/s/bb5725f4) | week 9 | | -| **Begin [Code Freeze]** | Branch Manager | [01:00 UTC Wednesday 9th November 2022 / 17:00 PDT Tuesday 8th November 2022](https://everytimezone.com/s/d3187dcc) | week 10 | | -| 1.26.0-beta.0 released | Branch Manager | Thursday 10th November 2022 | week 10 | | -| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 10th November 2022 | week 10 | | -| Deprecations and Removals blog published | Comms | Thursday 10th November 2022 | week 10 | | -| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 14th November 2022 | Week 11 | | -| **[Test Freeze]** | Branch Manager | [01:00 UTC Wednesday 16th November 2022 / 17:00 PDT Tuesday 15th November 2022](https://everytimezone.com/s/dc1d29cb) | week 11 | | -| Docs deadline — PRs ready for review | Docs Lead | Tuesday 15th November 2022 | Week 11 | | -| 1.26.0-rc.0 released | Branch Manager | Tuesday 15th November 2022 | week 11 | | -| release-1.26 branch created | Branch Manager | Tuesday 15th November 2022 | week 11 | | -| release-1.26 jobs created | Branch Manager | Tuesday 15th November 2022 | week 11 | | -| Major Themes deadline | Comms | Tuesday 15th November 2022 | week 11 | | -| Start final draft of Release Notes | Release Notes Lead | Tuesday 15th November 2022 | week 11 | | -| Release blog ready to review | Comms / Docs | [01:00 UTC Wednesday 16th November 2022 / 17:00 PDT Tuesday 15th November 2022](https://everytimezone.com/s/dc1d29cb) | week 11 | | -| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 21st November 2022 | week 12 | | -| Major Themes complete | Release Notes Lead | Tuesday 29th November 2022 | week 13 | | -| Docs complete — All PRs reviewed and ready to merge | Docs Lead | Tuesday 29th November 2022 | week 13 | | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Tuesday 29th November 2022 | week 13 | | -| 1.26.0-rc.1 released | Branch Manager | Tuesday 29th November 2022 | week 13 | | -| Release Notes complete — reviewed & merged to `k/k` | Release Notes Lead | Thursday 8th December | week 14 | | -| **v1.26.0 released** | Branch Manager | Friday 9th December 2022 | week 14 | | -| Release blog published | Comms | Friday 9th December 2022 | week 14 | | -| **[Thaw]** | Branch Manager | Friday 9th December 2022 | week 14 | | -| Release retrospective Part 2 | Community | [17:00 UTC / 09:00 PDT Tuesday 13th December](https://everytimezone.com/s/5ec45da4) | week 15 | | -| Release retrospective part 3 (Note: Only if items get spill over from Retro Part 2, we will have Part 3) | Community | [17:00 UTC / 09:00 PDT Wednesday 14th December](https://everytimezone.com/s/1cba3371) | week 15 | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[k8s126-calendar]: https://bit.ly/k8s-release-cal -[Internal Contact Info]: https://bit.ly/k8s126-contacts -[Retrospective Document]: https://bit.ly/k8s126-retro - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Thaw]: ../release_phases.md#thaw -[Test Freeze]: ../release_phases.md#test-freeze - -[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.26-blocking]: https://testgrid.k8s.io/sig-release-1.26-blocking#Summary - -[exception requests]: ../EXCEPTIONS.md -[release phases document]: ../release_phases.md +--- +title: "Kubernetes 1.26 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.26: Electrifying + +<p align="center"> + <img src="./logo/Electrifying_Logo.png" height="500" alt="Kubernetes 1.26 Release Logo" /> +</p> + +Kubernetes 1.26 is named *Electrifying* to raise awareness that Kubernetes orchestrates huge systems that consume a lot of energy and this is simply a problem. *Electrifying* also represents the increased automation we use in the release team and the fact that this community is simply electrifying. + +<p align="center"> + <img src="./logo/electrifying-wallpaper.png" alt="Kubernetes 1.26 Release Wallpaper" /> +</p> + +There is also a **live wallpaper** version for download see [link](https://drive.google.com/file/d/1nI3MnQv_fIX8X6ssVQTpU313y8B1FfyZ/view?usp=sharing). + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.26/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.26/release-team.md) +* [Meeting Minutes](http://bit.ly/k8s126-releasemtg) (members of [release-team@] receive meeting invites) +* [v1.26 Release Calendar][k8s126-calendar] +* Contact: [#sig-release] on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail +* [Internal Contact Info] (accessible only to members of [release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Sheet](https://bit.ly/k8s126-enhancements) +* [Feature blog Tracking Board](https://github.com/orgs/kubernetes/projects/98/views/11) +* [Bug Triage Tracking Sheet](https://bit.ly/k8s126-bug-triage-tracking) +* [CI Signal Project Board & Issue Tracking](https://github.com/orgs/kubernetes/projects/68) +* [Retrospective Document][Retrospective Document] +* [kubernetes/sig-release v1.26 milestone](https://github.com/kubernetes/kubernetes/milestone/59) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## Major release cycle events + +The 1.26 release cycle is as follows: + +- **Monday 5th September 2022**: Week 1 — Release cycle begins +- **Thursday 29th September 2022**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) +- **[01:00 UTC Friday 7th October 2022 / 18:00 PDT Thursday 6th October 2022](https://everytimezone.com/s/3a6f71b0)**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **Monday 24th - Friday 28th October 2022**: Week 8 - [KubeCon NA](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/) +- **[17:00 UTC Wednesday 2nd November 2022 / 10:00 PDT Wednesday 2nd November 2022](https://everytimezone.com/s/bb5725f4)**: Week 10 — [Release Retrospective][Retrospective Document] Part 1 - Midcycle +- **[01:00 UTC Wednesday 9th November 2022 / 17:00 PDT Tuesday 8th November 2022](https://everytimezone.com/s/d3187dcc)**: Week 10 — [Code Freeze](../release_phases.md#code-freeze) +- **[01:00 UTC Wednesday 16th November 2022 / 17:00 PDT Tuesday 15th November 2022](https://everytimezone.com/s/dc1d29cb)**: Week 11 — [Test Freeze](../release_phases.md#test-freeze) +- **Tuesday 29th November 2022**: Week 13 — Docs must be completed and reviewed +- **Friday 9th December 2022**: Week 14 — Kubernetes v1.26.0 released +- **Tuesday 13th December**: Week 15 — [Release Retrospective][Retrospective Document] Part 2 +- **Wednesday 14th December**: Week 15 — [Release Retrospective][Retrospective Document] Part 3 (Note: Only if items get spill over from Retro Part 2, we will have Part 3) + +## Timeline + +| **What** | **Who** | **When** | **Week** | **CI Signal** | +|---------------------------------------------------------------|---|-----------------------------------------------------------------------------------------------------------------|----------|---| +| Start of Release Cycle | Lead | Monday 5th September 2022 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Monday 5th September 2022 | week 1 | | +| Schedule finalized | Lead | Friday 9th September 2022 | week 1 | | +| Team finalized | Lead | Friday 9th September 2022 | week 1 | | +| 1.26.0-alpha.1 released | Branch Manager | Tuesday 20th September 2022 | Week 3 | | +| Start Release Notes Draft | Release Notes Lead | Tuesday 20th September 2022 | week 3 | | +| Production Readiness Freeze | Enhancements Lead | Thursday 29th September 2022 | week 4 | | +| **Begin [Enhancements Freeze]** | Enhancements Lead | [01:00 UTC Friday 7th October 2022 / 18:00 PDT Thursday 6th October 2022](https://everytimezone.com/s/3a6f71b0) | week 5 | [master-blocking], [master-informing] | +| 1.26.0-alpha.2 released | Branch Manager | Tuesday 11th October 2022 | Week 6 | | +| Begin Friday APAC-friendly meetings | Lead | Friday 21th October 2022 | Week 7 | | +| KubeCon NA | | October 24-28 2022 | week 8 | | +| 1.26.0-alpha.3 released | Branch Manager | Tuesday 1st November 2022 | week 9 | [1.26-blocking], [master-blocking], [master-informing] | +| **Call for [Exceptions][Exception]** | Lead | Monday 31st October 2022 | week 9 | | +| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Monday 31st October 2022 | week 9 | | +| **Begin Feature blog freeze** | Comms Lead | [01:00 UTC Wednesday 2nd November 2022 / 18:00 PDT Tuesday 1st November 2022](https://everytimezone.com/s/09b6c7c8) | week 9 | | +| Release retrospective part 1 | Community | [17:00 UTC Wednesday 2nd November 2022 / 10:00 PDT Wednesday 2nd November 2022](https://everytimezone.com/s/bb5725f4) | week 9 | | +| **Begin [Code Freeze]** | Branch Manager | [01:00 UTC Wednesday 9th November 2022 / 17:00 PDT Tuesday 8th November 2022](https://everytimezone.com/s/d3187dcc) | week 10 | | +| 1.26.0-beta.0 released | Branch Manager | Thursday 10th November 2022 | week 10 | | +| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 10th November 2022 | week 10 | | +| Deprecations and Removals blog published | Comms | Thursday 10th November 2022 | week 10 | | +| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 14th November 2022 | Week 11 | | +| **[Test Freeze]** | Branch Manager | [01:00 UTC Wednesday 16th November 2022 / 17:00 PDT Tuesday 15th November 2022](https://everytimezone.com/s/dc1d29cb) | week 11 | | +| Docs deadline — PRs ready for review | Docs Lead | Tuesday 15th November 2022 | Week 11 | | +| 1.26.0-rc.0 released | Branch Manager | Tuesday 15th November 2022 | week 11 | | +| release-1.26 branch created | Branch Manager | Tuesday 15th November 2022 | week 11 | | +| release-1.26 jobs created | Branch Manager | Tuesday 15th November 2022 | week 11 | | +| Major Themes deadline | Comms | Tuesday 15th November 2022 | week 11 | | +| Start final draft of Release Notes | Release Notes Lead | Tuesday 15th November 2022 | week 11 | | +| Release blog ready to review | Comms / Docs | [01:00 UTC Wednesday 16th November 2022 / 17:00 PDT Tuesday 15th November 2022](https://everytimezone.com/s/dc1d29cb) | week 11 | | +| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 21st November 2022 | week 12 | | +| Major Themes complete | Release Notes Lead | Tuesday 29th November 2022 | week 13 | | +| Docs complete — All PRs reviewed and ready to merge | Docs Lead | Tuesday 29th November 2022 | week 13 | | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Tuesday 29th November 2022 | week 13 | | +| 1.26.0-rc.1 released | Branch Manager | Tuesday 29th November 2022 | week 13 | | +| Release Notes complete — reviewed & merged to `k/k` | Release Notes Lead | Thursday 8th December | week 14 | | +| **v1.26.0 released** | Branch Manager | Friday 9th December 2022 | week 14 | | +| Release blog published | Comms | Friday 9th December 2022 | week 14 | | +| **[Thaw]** | Branch Manager | Friday 9th December 2022 | week 14 | | +| Release retrospective Part 2 | Community | [17:00 UTC / 09:00 PDT Tuesday 13th December](https://everytimezone.com/s/5ec45da4) | week 15 | | +| Release retrospective part 3 (Note: Only if items get spill over from Retro Part 2, we will have Part 3) | Community | [17:00 UTC / 09:00 PDT Wednesday 14th December](https://everytimezone.com/s/1cba3371) | week 15 | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[k8s126-calendar]: https://bit.ly/k8s-release-cal +[Internal Contact Info]: https://bit.ly/k8s126-contacts +[Retrospective Document]: https://bit.ly/k8s126-retro + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Thaw]: ../release_phases.md#thaw +[Test Freeze]: ../release_phases.md#test-freeze + +[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.26-blocking]: https://testgrid.k8s.io/sig-release-1.26-blocking#Summary + +[exception requests]: ../EXCEPTIONS.md +[release phases document]: ../release_phases.md diff --git a/releases/release-1.26/exceptions.yaml b/releases/release-1.26/exceptions.yaml index 67f760ccfed..fb02d711e57 100644 --- a/releases/release-1.26/exceptions.yaml +++ b/releases/release-1.26/exceptions.yaml @@ -1,126 +1,126 @@ -# Exception requests in 1.26 -# Google Group: https://groups.google.com/g/kubernetes-sig-release -# Release Team Lead: Leonard Vincent Simon Pahlke ([@leonardpahlke](https://github.com/leonardpahlke)) -# Release Team Shadows: Grace Nguyen ([@gracenng](https://github.com/gracenng)) -# / Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove)) -# / Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929)) -# / Nate Waddington ([@nate-double-u](https://github.com/nate-double-u)) - -# Enhancements Freeze Exceptions requested in 1.26 - -enhancementFreeze: - -- name: "CCM Webhook Framework" - issue: 2699 - date_requested: 2022-10-07 - date_reviewed: 2022-10-10 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/Uw3SpvyfGh0" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/108838" - status: "approved" - -- name: "Subsecond Probes" - issue: 3066 - date_requested: 2022-10-07 - date_reviewed: 2022-10-12 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/P9Uzf3oQaX8" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/3067" - status: "denied" - -- name: "Add AppArmor support" - issue: 24 - date_requested: 2022-10-09 - date_reviewed: 2022-10-11 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/ziUKliRqNFM" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/3298" - status: "approved" - -- name: "Dynamic Kubelet Configuration" - issue: 281 - date_requested: 2022-10-10 - date_reviewed: 2022-10-10 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/mSgvETUVYn0" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/112643" - status: "approved" - -# Code Freeze Exceptions requested in 1.26 - -codeFreeze: - -- name: "Retriable and non-retriable Pod failures for Jobs" - issue: 3329 - date_requested: 2022-11-04 - date_reviewed: 2022-11-08 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/tZPjSWW_g30" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/112360" - - "https://github.com/kubernetes/kubernetes/pull/113360" - status: "approved" - -- name: "Pod Healthy Policy for PDBs" - issue: 3017 - date_requested: 2022-11-07 - date_reviewed: 2022-11-09 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/MbFd5YEqwOM" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/113375" - - "https://github.com/kubernetes/kubernetes/pull/113376" - status: "approved" - -- name: "StatefulSet Slice" - issue: 3335 - date_requested: 2022-11-08 - date_reviewed: 2022-11-09 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/pwb__uKXWjA" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/112744" - status: "approved" - -- name: "StatefulSet Autodelete PVC" - issue: 1847 - date_requested: 2022-11-08 - date_reviewed: 2022-11-09 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/pFlz9WF40BA" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/111300" - status: "approved" - -- name: "Introduce APIs to support CrossNamespaceSourceProvisioning" - issue: 3294 - date_requested: 2022-11-09 - date_reviewed: 2022-11-10 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/-9r-bul0GsM" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/113186" - status: "approved" - -- name: "Kubectl Events" - issue: 1440 - date_requested: 2022-11-09 - date_reviewed: 2022-11-10 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/4HZgxMk51P8" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/113819" - status: "approved" - -- name: "Dynamic Resource Allocation" - issue: 3063 - date_requested: 2022-11-09 - date_reviewed: 2022-11-10 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/BMxDP2BdJSA" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/111023" - status: "approved" - -- name: "In-Place Update of Pod Resources" - issue: 1287 - date_requested: 2022-11-06 - date_reviewed: 2022-11-08 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/2KikW5O1WyI" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/111946" - - "https://github.com/kubernetes/kubernetes/pull/102884" - status: "approved" +# Exception requests in 1.26 +# Google Group: https://groups.google.com/g/kubernetes-sig-release +# Release Team Lead: Leonard Vincent Simon Pahlke ([@leonardpahlke](https://github.com/leonardpahlke)) +# Release Team Shadows: Grace Nguyen ([@gracenng](https://github.com/gracenng)) +# / Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove)) +# / Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929)) +# / Nate Waddington ([@nate-double-u](https://github.com/nate-double-u)) + +# Enhancements Freeze Exceptions requested in 1.26 + +enhancementFreeze: + +- name: "CCM Webhook Framework" + issue: 2699 + date_requested: 2022-10-07 + date_reviewed: 2022-10-10 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/Uw3SpvyfGh0" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/108838" + status: "approved" + +- name: "Subsecond Probes" + issue: 3066 + date_requested: 2022-10-07 + date_reviewed: 2022-10-12 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/P9Uzf3oQaX8" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/3067" + status: "denied" + +- name: "Add AppArmor support" + issue: 24 + date_requested: 2022-10-09 + date_reviewed: 2022-10-11 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/ziUKliRqNFM" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/3298" + status: "approved" + +- name: "Dynamic Kubelet Configuration" + issue: 281 + date_requested: 2022-10-10 + date_reviewed: 2022-10-10 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/mSgvETUVYn0" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/112643" + status: "approved" + +# Code Freeze Exceptions requested in 1.26 + +codeFreeze: + +- name: "Retriable and non-retriable Pod failures for Jobs" + issue: 3329 + date_requested: 2022-11-04 + date_reviewed: 2022-11-08 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/tZPjSWW_g30" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/112360" + - "https://github.com/kubernetes/kubernetes/pull/113360" + status: "approved" + +- name: "Pod Healthy Policy for PDBs" + issue: 3017 + date_requested: 2022-11-07 + date_reviewed: 2022-11-09 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/MbFd5YEqwOM" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/113375" + - "https://github.com/kubernetes/kubernetes/pull/113376" + status: "approved" + +- name: "StatefulSet Slice" + issue: 3335 + date_requested: 2022-11-08 + date_reviewed: 2022-11-09 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/pwb__uKXWjA" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/112744" + status: "approved" + +- name: "StatefulSet Autodelete PVC" + issue: 1847 + date_requested: 2022-11-08 + date_reviewed: 2022-11-09 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/pFlz9WF40BA" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/111300" + status: "approved" + +- name: "Introduce APIs to support CrossNamespaceSourceProvisioning" + issue: 3294 + date_requested: 2022-11-09 + date_reviewed: 2022-11-10 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/-9r-bul0GsM" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/113186" + status: "approved" + +- name: "Kubectl Events" + issue: 1440 + date_requested: 2022-11-09 + date_reviewed: 2022-11-10 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/4HZgxMk51P8" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/113819" + status: "approved" + +- name: "Dynamic Resource Allocation" + issue: 3063 + date_requested: 2022-11-09 + date_reviewed: 2022-11-10 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/BMxDP2BdJSA" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/111023" + status: "approved" + +- name: "In-Place Update of Pod Resources" + issue: 1287 + date_requested: 2022-11-06 + date_reviewed: 2022-11-08 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/2KikW5O1WyI" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/111946" + - "https://github.com/kubernetes/kubernetes/pull/102884" + status: "approved" diff --git a/releases/release-1.26/release-notes/maps/pr-103177-map.yaml b/releases/release-1.26/release-notes/maps/pr-103177-map.yaml index 05998e206dd..05a86596735 100644 --- a/releases/release-1.26/release-notes/maps/pr-103177-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-103177-map.yaml @@ -1,4 +1,4 @@ -pr: 103177 -releasenote: - text: Added a method `StreamWithContext` to `remotecommand.Executor` to support - cancelable SPDY executor stream. +pr: 103177 +releasenote: + text: Added a method `StreamWithContext` to `remotecommand.Executor` to support + cancelable SPDY executor stream. diff --git a/releases/release-1.26/release-notes/maps/pr-105867-map.yaml b/releases/release-1.26/release-notes/maps/pr-105867-map.yaml index 3cb9ce78ac8..ed050711253 100644 --- a/releases/release-1.26/release-notes/maps/pr-105867-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-105867-map.yaml @@ -1,4 +1,4 @@ -pr: 105867 -releasenote: - text: Shell completion now shows plugin names when appropriate. Furthermore, shell - completion will work for plugins that provide such support. +pr: 105867 +releasenote: + text: Shell completion now shows plugin names when appropriate. Furthermore, shell + completion will work for plugins that provide such support. diff --git a/releases/release-1.26/release-notes/maps/pr-108250-map.yaml b/releases/release-1.26/release-notes/maps/pr-108250-map.yaml index cd20509e59d..970e73b205d 100644 --- a/releases/release-1.26/release-notes/maps/pr-108250-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-108250-map.yaml @@ -1,5 +1,5 @@ -pr: 108250 -releasenote: - text: 'Added a `kube-proxy` flag (`--iptables-localhost-nodeports`, default true) - to allow disabling `NodePort` services on loopback addresses. Note: this only applies - to iptables mode and ipv4.' +pr: 108250 +releasenote: + text: 'Added a `kube-proxy` flag (`--iptables-localhost-nodeports`, default true) + to allow disabling `NodePort` services on loopback addresses. Note: this only applies + to iptables mode and ipv4.' diff --git a/releases/release-1.26/release-notes/maps/pr-108501-map.yaml b/releases/release-1.26/release-notes/maps/pr-108501-map.yaml index 7d0186e8ced..9282de9ce68 100644 --- a/releases/release-1.26/release-notes/maps/pr-108501-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-108501-map.yaml @@ -1,4 +1,4 @@ -pr: 108501 -releasenote: - text: Enabled `kube-controller-manager` to support '--concurrent-horizontal-pod-autoscaler-syncs' - flag to set the number of horizontal pod autoscaler controller workers. +pr: 108501 +releasenote: + text: Enabled `kube-controller-manager` to support '--concurrent-horizontal-pod-autoscaler-syncs' + flag to set the number of horizontal pod autoscaler controller workers. diff --git a/releases/release-1.26/release-notes/maps/pr-108832-map.yaml b/releases/release-1.26/release-notes/maps/pr-108832-map.yaml index 1d540df95ba..d2c088910b4 100644 --- a/releases/release-1.26/release-notes/maps/pr-108832-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-108832-map.yaml @@ -1,5 +1,5 @@ -pr: 108832 -releasenote: - text: Fixed relative CPU priority for pods where containers explicitly request zero - cpu by giving the lowest priority instead of falling back to the cpu limit to - avoid possible cpu starvation of other pods. +pr: 108832 +releasenote: + text: Fixed relative CPU priority for pods where containers explicitly request zero + cpu by giving the lowest priority instead of falling back to the cpu limit to + avoid possible cpu starvation of other pods. diff --git a/releases/release-1.26/release-notes/maps/pr-109189-map.yaml b/releases/release-1.26/release-notes/maps/pr-109189-map.yaml index 42e48593306..00204ee11e4 100644 --- a/releases/release-1.26/release-notes/maps/pr-109189-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-109189-map.yaml @@ -1,4 +1,4 @@ -pr: 109189 -releasenote: - text: '`kubectl config view` now automatically redacts any secret fields marked - with a `datapolicy` tag.' +pr: 109189 +releasenote: + text: '`kubectl config view` now automatically redacts any secret fields marked + with a `datapolicy` tag.' diff --git a/releases/release-1.26/release-notes/maps/pr-109505-map.yaml b/releases/release-1.26/release-notes/maps/pr-109505-map.yaml index 7e0e85747a8..8f456505e94 100644 --- a/releases/release-1.26/release-notes/maps/pr-109505-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-109505-map.yaml @@ -1,4 +1,4 @@ -pr: 109505 -releasenote: - text: Removed raising an error when setting an annotation with the same value, - just ignore it. +pr: 109505 +releasenote: + text: Removed raising an error when setting an annotation with the same value, + just ignore it. diff --git a/releases/release-1.26/release-notes/maps/pr-109525-map.yaml b/releases/release-1.26/release-notes/maps/pr-109525-map.yaml index 0fcbd5d1fc5..19a3bd9eb6b 100644 --- a/releases/release-1.26/release-notes/maps/pr-109525-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-109525-map.yaml @@ -1,4 +1,4 @@ -pr: 109525 -releasenote: - text: | - `kubectl wait` command with `jsonpath` flag will wait for target path until timeout. +pr: 109525 +releasenote: + text: | + `kubectl wait` command with `jsonpath` flag will wait for target path until timeout. diff --git a/releases/release-1.26/release-notes/maps/pr-110268-map.yaml b/releases/release-1.26/release-notes/maps/pr-110268-map.yaml index cfc8301b570..494d4d0c97c 100644 --- a/releases/release-1.26/release-notes/maps/pr-110268-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-110268-map.yaml @@ -1,5 +1,5 @@ -pr: 110268 -releasenote: - text: |- - 'The iptables kube-proxy backend now process service/endpoint changes - more efficiently in very large clusters.' +pr: 110268 +releasenote: + text: |- + 'The iptables kube-proxy backend now process service/endpoint changes + more efficiently in very large clusters.' diff --git a/releases/release-1.26/release-notes/maps/pr-110559-map.yaml b/releases/release-1.26/release-notes/maps/pr-110559-map.yaml index 213a0cde7cd..411651c8c0b 100644 --- a/releases/release-1.26/release-notes/maps/pr-110559-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-110559-map.yaml @@ -1,4 +1,4 @@ -pr: 110559 -releasenote: - text: If more than one StorageClass is designated as default (via the "storageclass.kubernetes.io/is-default-class" - annotation), choose the newest one instead of throwing an error.' +pr: 110559 +releasenote: + text: If more than one StorageClass is designated as default (via the "storageclass.kubernetes.io/is-default-class" + annotation), choose the newest one instead of throwing an error.' diff --git a/releases/release-1.26/release-notes/maps/pr-110618-map.yaml b/releases/release-1.26/release-notes/maps/pr-110618-map.yaml index 5eec4a65e93..061a8edee4f 100644 --- a/releases/release-1.26/release-notes/maps/pr-110618-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-110618-map.yaml @@ -1,4 +1,4 @@ -pr: 110618 -releasenote: - text: Dropped support for the Container Runtime Interface (CRI) version `v1alpha2`, - which means that container runtimes just have to implement `v1`. +pr: 110618 +releasenote: + text: Dropped support for the Container Runtime Interface (CRI) version `v1alpha2`, + which means that container runtimes just have to implement `v1`. diff --git a/releases/release-1.26/release-notes/maps/pr-110907-map.yaml b/releases/release-1.26/release-notes/maps/pr-110907-map.yaml index 399f4489ad7..ccb449a7625 100644 --- a/releases/release-1.26/release-notes/maps/pr-110907-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-110907-map.yaml @@ -1,6 +1,6 @@ -pr: 110907 -releasenote: - text: | - '`kubectl apply`: Added a warning that "`kubectl apply` will no longer prune - non-namespaced resources by default when used with the --namespace flag in - a future release".' +pr: 110907 +releasenote: + text: | + '`kubectl apply`: Added a warning that "`kubectl apply` will no longer prune + non-namespaced resources by default when used with the --namespace flag in + a future release".' diff --git a/releases/release-1.26/release-notes/maps/pr-111023-map.yaml b/releases/release-1.26/release-notes/maps/pr-111023-map.yaml index 8656b54504f..466f2c6e9f2 100644 --- a/releases/release-1.26/release-notes/maps/pr-111023-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111023-map.yaml @@ -1,8 +1,8 @@ -pr: 111023 -releasenote: - text: |- - 'Added a `ResourceClaim` API (in the `resource.k8s.io/v1alpha1` API group and - behind the `DynamicResourceAllocation` feature gate). - The new API is now more flexible than the existing Device Plugins feature of Kubernetes because it - allows Pods to request (claim) special kinds of resources, which can be available at node level, cluster - level, or following any other model you implement.' +pr: 111023 +releasenote: + text: |- + 'Added a `ResourceClaim` API (in the `resource.k8s.io/v1alpha1` API group and + behind the `DynamicResourceAllocation` feature gate). + The new API is now more flexible than the existing Device Plugins feature of Kubernetes because it + allows Pods to request (claim) special kinds of resources, which can be available at node level, cluster + level, or following any other model you implement.' diff --git a/releases/release-1.26/release-notes/maps/pr-111093-map.yaml b/releases/release-1.26/release-notes/maps/pr-111093-map.yaml index c033e7eacaf..5c1eb773c00 100644 --- a/releases/release-1.26/release-notes/maps/pr-111093-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111093-map.yaml @@ -1,4 +1,4 @@ -pr: 111093 -releasenote: - text: Fixed bug in `kubectl rollout history` where only the latest revision was - displayed when a specific revision was requested and an output format was specified. +pr: 111093 +releasenote: + text: Fixed bug in `kubectl rollout history` where only the latest revision was + displayed when a specific revision was requested and an output format was specified. diff --git a/releases/release-1.26/release-notes/maps/pr-111277-map.yaml b/releases/release-1.26/release-notes/maps/pr-111277-map.yaml index 34d0b29161f..d0ed14fbe9b 100644 --- a/releases/release-1.26/release-notes/maps/pr-111277-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111277-map.yaml @@ -1,4 +1,4 @@ -pr: 111277 -releasenote: - text: 'kubeadm: when a sub command is needed but not provided for a kubeadm command, - print a help screen instead of showing a short message.' +pr: 111277 +releasenote: + text: 'kubeadm: when a sub command is needed but not provided for a kubeadm command, + print a help screen instead of showing a short message.' diff --git a/releases/release-1.26/release-notes/maps/pr-111344-map.yaml b/releases/release-1.26/release-notes/maps/pr-111344-map.yaml index c1d882b2dec..4e2380aee46 100644 --- a/releases/release-1.26/release-notes/maps/pr-111344-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111344-map.yaml @@ -1,4 +1,4 @@ -pr: 111344 -releasenote: - text: Updated `kube-proxy` to restart in case it detects that the Node assigned - `pod.Spec.PodCIDRs` have changed. +pr: 111344 +releasenote: + text: Updated `kube-proxy` to restart in case it detects that the Node assigned + `pod.Spec.PodCIDRs` have changed. diff --git a/releases/release-1.26/release-notes/maps/pr-111384-map.yaml b/releases/release-1.26/release-notes/maps/pr-111384-map.yaml index 9c3b56d5c66..91e92cc02a8 100644 --- a/releases/release-1.26/release-notes/maps/pr-111384-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111384-map.yaml @@ -1,3 +1,3 @@ -pr: 111384 -releasenote: - text: Added support for Evented PLEG feature gate. +pr: 111384 +releasenote: + text: Added support for Evented PLEG feature gate. diff --git a/releases/release-1.26/release-notes/maps/pr-111512-map.yaml b/releases/release-1.26/release-notes/maps/pr-111512-map.yaml index f8a365d88f3..03341e5f5da 100644 --- a/releases/release-1.26/release-notes/maps/pr-111512-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111512-map.yaml @@ -1,6 +1,6 @@ -pr: 111512 -releasenote: - text: 'kubeadm: added `show-join-command` as a new separate phase at the end of - `kubeadm init`. You can skip printing the join information by using `kubeadm init - --skip-phases=show-join-command`. Executing only this phase on demand will throw - an error because the phase needs dependencies such as bootstrap tokens to be pre-populated.' +pr: 111512 +releasenote: + text: 'kubeadm: added `show-join-command` as a new separate phase at the end of + `kubeadm init`. You can skip printing the join information by using `kubeadm init + --skip-phases=show-join-command`. Executing only this phase on demand will throw + an error because the phase needs dependencies such as bootstrap tokens to be pre-populated.' diff --git a/releases/release-1.26/release-notes/maps/pr-111571-map.yaml b/releases/release-1.26/release-notes/maps/pr-111571-map.yaml index 868f8106b7e..e9bb165077d 100644 --- a/releases/release-1.26/release-notes/maps/pr-111571-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111571-map.yaml @@ -1,4 +1,4 @@ -pr: 111571 -releasenote: - text: Fixed bug where dry run message was not printed when running `kubectl label` - with `--dry-run` flag. +pr: 111571 +releasenote: + text: Fixed bug where dry run message was not printed when running `kubectl label` + with `--dry-run` flag. diff --git a/releases/release-1.26/release-notes/maps/pr-111616-map.yaml b/releases/release-1.26/release-notes/maps/pr-111616-map.yaml index d2134794239..df3a8aa0a43 100644 --- a/releases/release-1.26/release-notes/maps/pr-111616-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111616-map.yaml @@ -1,5 +1,5 @@ -pr: 111616 -releasenote: - text: Kubelet external Credential Provider feature is moved to GA. Credential Provider - Plugin and Credential Provider Config APIs updated from `v1beta1` to `v1` with - no API changes. +pr: 111616 +releasenote: + text: Kubelet external Credential Provider feature is moved to GA. Credential Provider + Plugin and Credential Provider Config APIs updated from `v1beta1` to `v1` with + no API changes. diff --git a/releases/release-1.26/release-notes/maps/pr-111752-map.yaml b/releases/release-1.26/release-notes/maps/pr-111752-map.yaml index c8a8490e94e..b92ce9ecafb 100644 --- a/releases/release-1.26/release-notes/maps/pr-111752-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111752-map.yaml @@ -1,4 +1,4 @@ -pr: 111752 -releasenote: - text: Reverted regression that prevented `client-go` latency metrics to be reported - with a template URL to avoid label cardinality. +pr: 111752 +releasenote: + text: Reverted regression that prevented `client-go` latency metrics to be reported + with a template URL to avoid label cardinality. diff --git a/releases/release-1.26/release-notes/maps/pr-111783-map.yaml b/releases/release-1.26/release-notes/maps/pr-111783-map.yaml index a2b5aded0be..e24eda37d87 100644 --- a/releases/release-1.26/release-notes/maps/pr-111783-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111783-map.yaml @@ -1,4 +1,4 @@ -pr: 111783 -releasenote: - text: 'kubeadm: tried to load CA cert from external CertificateAuthority file when - CertificateAuthorityData is empty for existing kubeconfig.' +pr: 111783 +releasenote: + text: 'kubeadm: tried to load CA cert from external CertificateAuthority file when + CertificateAuthorityData is empty for existing kubeconfig.' diff --git a/releases/release-1.26/release-notes/maps/pr-111807-map.yaml b/releases/release-1.26/release-notes/maps/pr-111807-map.yaml index a88cf9a4ff3..7a5e4d6a713 100644 --- a/releases/release-1.26/release-notes/maps/pr-111807-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111807-map.yaml @@ -1,6 +1,6 @@ -pr: 111807 -releasenote: - text: Log messages and metrics for the watch cache are now keyed by `<resource>.<group>` - instead of `go` struct type. This means e.g. that `*v1.Pod` becomes `pods`. Additionally, - resources that come from `CustomResourceDefinitions` are displayed as the correct - resource and group, instead of `*unstructured.Unstructured`. +pr: 111807 +releasenote: + text: Log messages and metrics for the watch cache are now keyed by `<resource>.<group>` + instead of `go` struct type. This means e.g. that `*v1.Pod` becomes `pods`. Additionally, + resources that come from `CustomResourceDefinitions` are displayed as the correct + resource and group, instead of `*unstructured.Unstructured`. diff --git a/releases/release-1.26/release-notes/maps/pr-111808-map.yaml b/releases/release-1.26/release-notes/maps/pr-111808-map.yaml index 8a6bb5475e8..671641fb3f1 100644 --- a/releases/release-1.26/release-notes/maps/pr-111808-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111808-map.yaml @@ -1,4 +1,4 @@ -pr: 111808 -releasenote: - text: The errors in `k8s.io/apimachinery/pkg/api/meta` now support for the `stdlibs` - `errors.Is` matching, including when wrapped. +pr: 111808 +releasenote: + text: The errors in `k8s.io/apimachinery/pkg/api/meta` now support for the `stdlibs` + `errors.Is` matching, including when wrapped. diff --git a/releases/release-1.26/release-notes/maps/pr-111809-map.yaml b/releases/release-1.26/release-notes/maps/pr-111809-map.yaml index 16414e58e59..6e95304ab25 100644 --- a/releases/release-1.26/release-notes/maps/pr-111809-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111809-map.yaml @@ -1,4 +1,4 @@ -pr: 111809 -releasenote: - text: Scheduler now retries updating a pod's status on `ServiceUnavailable` and - `InternalError` errors, in addition to `net.ConnectionRefused` error. +pr: 111809 +releasenote: + text: Scheduler now retries updating a pod's status on `ServiceUnavailable` and + `InternalError` errors, in addition to `net.ConnectionRefused` error. diff --git a/releases/release-1.26/release-notes/maps/pr-111866-map.yaml b/releases/release-1.26/release-notes/maps/pr-111866-map.yaml index 2d0aeb89a0e..1cb95b36f78 100644 --- a/releases/release-1.26/release-notes/maps/pr-111866-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111866-map.yaml @@ -1,4 +1,4 @@ -pr: 111866 -releasenote: - text: In 'kube-apiserver`,`x-kubernetes-list-type` validation is now enforced when - updating status of custom resources.' +pr: 111866 +releasenote: + text: In 'kube-apiserver`,`x-kubernetes-list-type` validation is now enforced when + updating status of custom resources.' diff --git a/releases/release-1.26/release-notes/maps/pr-111910-map.yaml b/releases/release-1.26/release-notes/maps/pr-111910-map.yaml index 10000399f1f..8f9fc296ad9 100644 --- a/releases/release-1.26/release-notes/maps/pr-111910-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111910-map.yaml @@ -1,33 +1,33 @@ -pr: 111910 -releasenote: - text: |- - Added new Golang runtime-related metrics to Kubernetes components: - - go_gc_cycles_automatic_gc_cycles_total - - go_gc_cycles_forced_gc_cycles_total - - go_gc_cycles_total_gc_cycles_total - - go_gc_heap_allocs_by_size_bytes - - go_gc_heap_allocs_bytes_total - - go_gc_heap_allocs_objects_total - - go_gc_heap_frees_by_size_bytes - - go_gc_heap_frees_bytes_total - - go_gc_heap_frees_objects_total - - go_gc_heap_goal_bytes - - go_gc_heap_objects_objects - - go_gc_heap_tiny_allocs_objects_total - - go_gc_pauses_seconds - - go_memory_classes_heap_free_bytes - - go_memory_classes_heap_objects_bytes - - go_memory_classes_heap_released_bytes - - go_memory_classes_heap_stacks_bytes - - go_memory_classes_heap_unused_bytes - - go_memory_classes_metadata_mcache_free_bytes - - go_memory_classes_metadata_mcache_inuse_bytes - - go_memory_classes_metadata_mspan_free_bytes - - go_memory_classes_metadata_mspan_inuse_bytes - - go_memory_classes_metadata_other_bytes - - go_memory_classes_os_stacks_bytes - - go_memory_classes_other_bytes - - go_memory_classes_profiling_buckets_bytes - - go_memory_classes_total_bytes - - go_sched_goroutines_goroutines - - go_sched_latencies_seconds +pr: 111910 +releasenote: + text: |- + Added new Golang runtime-related metrics to Kubernetes components: + - go_gc_cycles_automatic_gc_cycles_total + - go_gc_cycles_forced_gc_cycles_total + - go_gc_cycles_total_gc_cycles_total + - go_gc_heap_allocs_by_size_bytes + - go_gc_heap_allocs_bytes_total + - go_gc_heap_allocs_objects_total + - go_gc_heap_frees_by_size_bytes + - go_gc_heap_frees_bytes_total + - go_gc_heap_frees_objects_total + - go_gc_heap_goal_bytes + - go_gc_heap_objects_objects + - go_gc_heap_tiny_allocs_objects_total + - go_gc_pauses_seconds + - go_memory_classes_heap_free_bytes + - go_memory_classes_heap_objects_bytes + - go_memory_classes_heap_released_bytes + - go_memory_classes_heap_stacks_bytes + - go_memory_classes_heap_unused_bytes + - go_memory_classes_metadata_mcache_free_bytes + - go_memory_classes_metadata_mcache_inuse_bytes + - go_memory_classes_metadata_mspan_free_bytes + - go_memory_classes_metadata_mspan_inuse_bytes + - go_memory_classes_metadata_other_bytes + - go_memory_classes_os_stacks_bytes + - go_memory_classes_other_bytes + - go_memory_classes_profiling_buckets_bytes + - go_memory_classes_total_bytes + - go_sched_goroutines_goroutines + - go_sched_latencies_seconds diff --git a/releases/release-1.26/release-notes/maps/pr-111930-map.yaml b/releases/release-1.26/release-notes/maps/pr-111930-map.yaml index c0f9706200f..a27cf9b604c 100644 --- a/releases/release-1.26/release-notes/maps/pr-111930-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111930-map.yaml @@ -1,3 +1,3 @@ -pr: 111930 -releasenote: - text: Added the metric `pod_start_sli_duration_seconds` to kubelet. +pr: 111930 +releasenote: + text: Added the metric `pod_start_sli_duration_seconds` to kubelet. diff --git a/releases/release-1.26/release-notes/maps/pr-111936-map.yaml b/releases/release-1.26/release-notes/maps/pr-111936-map.yaml index f0afc5a412b..340301ee594 100644 --- a/releases/release-1.26/release-notes/maps/pr-111936-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111936-map.yaml @@ -1,6 +1,6 @@ -pr: 111936 -releasenote: - 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. +pr: 111936 +releasenote: + 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. diff --git a/releases/release-1.26/release-notes/maps/pr-111973-map.yaml b/releases/release-1.26/release-notes/maps/pr-111973-map.yaml index af27f09ad01..bef4ba305dd 100644 --- a/releases/release-1.26/release-notes/maps/pr-111973-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111973-map.yaml @@ -1,5 +1,5 @@ -pr: 111973 -releasenote: - text: Deprecated beta APIs scheduled for removal in `v1.26` are no longer served. - See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-26 for - more information. +pr: 111973 +releasenote: + text: Deprecated beta APIs scheduled for removal in `v1.26` are no longer served. + See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-26 for + more information. diff --git a/releases/release-1.26/release-notes/maps/pr-111998-map.yaml b/releases/release-1.26/release-notes/maps/pr-111998-map.yaml index c8c6bb0813a..759de7ab60c 100644 --- a/releases/release-1.26/release-notes/maps/pr-111998-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111998-map.yaml @@ -1,7 +1,7 @@ -pr: 111998 -releasenote: - text: 'e2e: tests can now register callbacks with `ginkgo.BeforeEach`, `ginkgo.AfterEach` - or `ginkgo.DeferCleanup` directly after creating a framework instance and are - guaranteed that their code is called after the framework is initialized and before - it gets cleaned up. `ginkgo.DeferCleanup` replaces `f.AddAfterEach` and `AddCleanupAction` - which got removed to simplify the framework.' +pr: 111998 +releasenote: + text: 'e2e: tests can now register callbacks with `ginkgo.BeforeEach`, `ginkgo.AfterEach` + or `ginkgo.DeferCleanup` directly after creating a framework instance and are + guaranteed that their code is called after the framework is initialized and before + it gets cleaned up. `ginkgo.DeferCleanup` replaces `f.AddAfterEach` and `AddCleanupAction` + which got removed to simplify the framework.' diff --git a/releases/release-1.26/release-notes/maps/pr-111999-map.yaml b/releases/release-1.26/release-notes/maps/pr-111999-map.yaml index d2ed116e955..4a88560a5d3 100644 --- a/releases/release-1.26/release-notes/maps/pr-111999-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-111999-map.yaml @@ -1,4 +1,4 @@ -pr: 111999 -releasenote: - text: Pod failed in scheduling due to expected error will be updated with the reason - of `SchedulerError` rather than `Unschedulable`. +pr: 111999 +releasenote: + text: Pod failed in scheduling due to expected error will be updated with the reason + of `SchedulerError` rather than `Unschedulable`. diff --git a/releases/release-1.26/release-notes/maps/pr-112000-map.yaml b/releases/release-1.26/release-notes/maps/pr-112000-map.yaml index 7af9ba64988..e9c218d40a4 100644 --- a/releases/release-1.26/release-notes/maps/pr-112000-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112000-map.yaml @@ -1,5 +1,5 @@ -pr: 112000 -releasenote: - text: 'kubeadm: removed the usage of the `--container-runtime=remote` flag for the - kubelet during kubeadm init/join/upgrade. The flag value `remote` had been the - only possible value since `dockershim` was removed from the kubelet.' +pr: 112000 +releasenote: + text: 'kubeadm: removed the usage of the `--container-runtime=remote` flag for the + kubelet during kubeadm init/join/upgrade. The flag value `remote` had been the + only possible value since `dockershim` was removed from the kubelet.' diff --git a/releases/release-1.26/release-notes/maps/pr-112008-map.yaml b/releases/release-1.26/release-notes/maps/pr-112008-map.yaml index 12d2d90bcb8..742f2e0ee98 100644 --- a/releases/release-1.26/release-notes/maps/pr-112008-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112008-map.yaml @@ -1,7 +1,7 @@ -pr: 112008 -releasenote: - text: 'kubeadm: removed the toleration for the `node-role.kubernetes.io/master` - taint from the CoreDNS deployment of `kubeadm`. With the 1.25 release of kubeadm - the taint `node-role.kubernetes.io/master` is no longer applied to control plane - nodes and the toleration for it can be removed with the release of 1.26. You can - also perform the same toleration removal from your own addon manifests.' +pr: 112008 +releasenote: + text: 'kubeadm: removed the toleration for the `node-role.kubernetes.io/master` + taint from the CoreDNS deployment of `kubeadm`. With the 1.25 release of kubeadm + the taint `node-role.kubernetes.io/master` is no longer applied to control plane + nodes and the toleration for it can be removed with the release of 1.26. You can + also perform the same toleration removal from your own addon manifests.' diff --git a/releases/release-1.26/release-notes/maps/pr-112011-map.yaml b/releases/release-1.26/release-notes/maps/pr-112011-map.yaml index 7c30526021d..e742781d564 100644 --- a/releases/release-1.26/release-notes/maps/pr-112011-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112011-map.yaml @@ -1,7 +1,7 @@ -pr: 112011 -releasenote: - text: | - 'Added selector validation to `HorizontalPodAutoscaler`: when multiple HPAs - select the same set of Pods, scaling now will be disabled for those HPAs with - the reason `AmbiguousSelector`. This change also covers a case when multiple HPAs - point to the same deployment.' +pr: 112011 +releasenote: + text: | + 'Added selector validation to `HorizontalPodAutoscaler`: when multiple HPAs + select the same set of Pods, scaling now will be disabled for those HPAs with + the reason `AmbiguousSelector`. This change also covers a case when multiple HPAs + point to the same deployment.' diff --git a/releases/release-1.26/release-notes/maps/pr-112015-map.yaml b/releases/release-1.26/release-notes/maps/pr-112015-map.yaml index b2a594a8441..fb461bb5764 100644 --- a/releases/release-1.26/release-notes/maps/pr-112015-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112015-map.yaml @@ -1,4 +1,4 @@ -pr: 112015 -releasenote: - text: '`GlusterFS` in-tree storage driver which was deprecated in kubernetes 1.25 - release is now removed entirely in 1.26.' +pr: 112015 +releasenote: + text: '`GlusterFS` in-tree storage driver which was deprecated in kubernetes 1.25 + release is now removed entirely in 1.26.' diff --git a/releases/release-1.26/release-notes/maps/pr-112017-map.yaml b/releases/release-1.26/release-notes/maps/pr-112017-map.yaml index 18d8838d408..6cf3b46714f 100644 --- a/releases/release-1.26/release-notes/maps/pr-112017-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112017-map.yaml @@ -1,5 +1,5 @@ -pr: 112017 -releasenote: - text: Fixed an ephemeral port exhaustion bug caused by improper connection management - that occurred when a large number of objects were handled by `kubectl` while exec - auth was in use. +pr: 112017 +releasenote: + text: Fixed an ephemeral port exhaustion bug caused by improper connection management + that occurred when a large number of objects were handled by `kubectl` while exec + auth was in use. diff --git a/releases/release-1.26/release-notes/maps/pr-112026-map.yaml b/releases/release-1.26/release-notes/maps/pr-112026-map.yaml index e52ba6c1365..4c25ab56416 100644 --- a/releases/release-1.26/release-notes/maps/pr-112026-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112026-map.yaml @@ -1,3 +1,3 @@ -pr: 112026 -releasenote: - text: updated the system-validators library to v1.8.0 +pr: 112026 +releasenote: + text: updated the system-validators library to v1.8.0 diff --git a/releases/release-1.26/release-notes/maps/pr-112042-map.yaml b/releases/release-1.26/release-notes/maps/pr-112042-map.yaml index e32c78cabea..7d17d94af6f 100644 --- a/releases/release-1.26/release-notes/maps/pr-112042-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112042-map.yaml @@ -1,5 +1,5 @@ -pr: 112042 -releasenote: - text: The metrics `etcd_request_duration_seconds` and `etcd_bookmark_counts` now - differentiate by group resource instead of object type, allowing unique entries - per `CustomResourceDefinition`, instead of grouping them all under `*unstructured.Unstructured`. +pr: 112042 +releasenote: + text: The metrics `etcd_request_duration_seconds` and `etcd_bookmark_counts` now + differentiate by group resource instead of object type, allowing unique entries + per `CustomResourceDefinition`, instead of grouping them all under `*unstructured.Unstructured`. diff --git a/releases/release-1.26/release-notes/maps/pr-112043-map.yaml b/releases/release-1.26/release-notes/maps/pr-112043-map.yaml index c96924c794d..84a978cb5b5 100644 --- a/releases/release-1.26/release-notes/maps/pr-112043-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112043-map.yaml @@ -1,9 +1,9 @@ -pr: 112043 -releasenote: - text: Refactored `test/e2e/framework` so that the core framework is smaller. Optional - functionality like resource monitoring, log size monitoring, metrics gathering - and debug information dumping must be imported by specific e2e test suites. Init - packages are provided which can be imported to re-enable the functionality that - traditionally was in the core framework. If you have code that no longer compiles - because of this PR, you can use the script [from a commit message](https://github.com/kubernetes/kubernetes/pull/112043/commits/dfdf88d4faafa6fd39988832ea0ef6d668f490e9) - to update that code. +pr: 112043 +releasenote: + text: Refactored `test/e2e/framework` so that the core framework is smaller. Optional + functionality like resource monitoring, log size monitoring, metrics gathering + and debug information dumping must be imported by specific e2e test suites. Init + packages are provided which can be imported to re-enable the functionality that + traditionally was in the core framework. If you have code that no longer compiles + because of this PR, you can use the script [from a commit message](https://github.com/kubernetes/kubernetes/pull/112043/commits/dfdf88d4faafa6fd39988832ea0ef6d668f490e9) + to update that code. diff --git a/releases/release-1.26/release-notes/maps/pr-112046-map.yaml b/releases/release-1.26/release-notes/maps/pr-112046-map.yaml index 45a2de064c4..ed45816c4b8 100644 --- a/releases/release-1.26/release-notes/maps/pr-112046-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112046-map.yaml @@ -1,6 +1,6 @@ -pr: 112046 -releasenote: - text: apiserver `/healthz/etcd` endpoint rate limits the number of forwarded health - check requests to the etcd backends, answering with the last known state if the - rate limit is exceeded. The rate limit is based on 1/2 of the timeout configured, - with no burst allowed. +pr: 112046 +releasenote: + text: apiserver `/healthz/etcd` endpoint rate limits the number of forwarded health + check requests to the etcd backends, answering with the last known state if the + rate limit is exceeded. The rate limit is based on 1/2 of the timeout configured, + with no burst allowed. diff --git a/releases/release-1.26/release-notes/maps/pr-112058-map.yaml b/releases/release-1.26/release-notes/maps/pr-112058-map.yaml index 94d210bc677..0c1468de969 100644 --- a/releases/release-1.26/release-notes/maps/pr-112058-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112058-map.yaml @@ -1,3 +1,3 @@ -pr: 112058 -releasenote: - text: Updated `cri-tools` to [v1.25.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.25.0). +pr: 112058 +releasenote: + text: Updated `cri-tools` to [v1.25.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.25.0). diff --git a/releases/release-1.26/release-notes/maps/pr-112076-map.yaml b/releases/release-1.26/release-notes/maps/pr-112076-map.yaml index d9b0bc2ca83..49bb26c922f 100644 --- a/releases/release-1.26/release-notes/maps/pr-112076-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112076-map.yaml @@ -1,3 +1,3 @@ -pr: 112076 -releasenote: - text: Moved `LocalStorageCapacityIsolationFSQuotaMonitoring` back to Alpha. +pr: 112076 +releasenote: + text: Moved `LocalStorageCapacityIsolationFSQuotaMonitoring` back to Alpha. diff --git a/releases/release-1.26/release-notes/maps/pr-112123-map.yaml b/releases/release-1.26/release-notes/maps/pr-112123-map.yaml index 212b0cd48a2..a1ace929d33 100644 --- a/releases/release-1.26/release-notes/maps/pr-112123-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112123-map.yaml @@ -1,4 +1,4 @@ -pr: 112123 -releasenote: - text: Clarified the CFS quota as 100ms in the code comments and set the minimum - `cpuCFSQuotaPeriod` to 1ms to match Linux kernel expectations. +pr: 112123 +releasenote: + text: Clarified the CFS quota as 100ms in the code comments and set the minimum + `cpuCFSQuotaPeriod` to 1ms to match Linux kernel expectations. diff --git a/releases/release-1.26/release-notes/maps/pr-112127-map.yaml b/releases/release-1.26/release-notes/maps/pr-112127-map.yaml index e992c59c37e..a74dc5d9031 100644 --- a/releases/release-1.26/release-notes/maps/pr-112127-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112127-map.yaml @@ -1,3 +1,3 @@ -pr: 112127 -releasenote: - text: Fixed `DaemonSet` to update the status even if it fails to create a pod. +pr: 112127 +releasenote: + text: Fixed `DaemonSet` to update the status even if it fails to create a pod. diff --git a/releases/release-1.26/release-notes/maps/pr-112133-map.yaml b/releases/release-1.26/release-notes/maps/pr-112133-map.yaml index 4c08b8f9032..7c6a69b860a 100644 --- a/releases/release-1.26/release-notes/maps/pr-112133-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112133-map.yaml @@ -1,6 +1,6 @@ -pr: 112133 -releasenote: - text: | - In `kube-proxy`: The "userspace" proxy mode (deprecated for over a year) is no - longer supported on either Linux or Windows. Users should use "iptables" or "ipvs" - on Linux, or "kernelspace" on Windows. +pr: 112133 +releasenote: + text: | + In `kube-proxy`: The "userspace" proxy mode (deprecated for over a year) is no + longer supported on either Linux or Windows. Users should use "iptables" or "ipvs" + on Linux, or "kernelspace" on Windows. diff --git a/releases/release-1.26/release-notes/maps/pr-112150-map.yaml b/releases/release-1.26/release-notes/maps/pr-112150-map.yaml index 051cdf9f6ab..e8ab3108cd1 100644 --- a/releases/release-1.26/release-notes/maps/pr-112150-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112150-map.yaml @@ -1,3 +1,3 @@ -pr: 112150 -releasenote: - text: Improved `kubectl` display of invalid request errors returned by the API server. +pr: 112150 +releasenote: + text: Improved `kubectl` display of invalid request errors returned by the API server. diff --git a/releases/release-1.26/release-notes/maps/pr-112157-map.yaml b/releases/release-1.26/release-notes/maps/pr-112157-map.yaml index d7cf115e513..0c0d91b37d8 100644 --- a/releases/release-1.26/release-notes/maps/pr-112157-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112157-map.yaml @@ -1,3 +1,3 @@ -pr: 112157 -releasenote: - text: Avoided propagating hosts `search .` into containers in `/etc/resolv.conf`. +pr: 112157 +releasenote: + text: Avoided propagating hosts `search .` into containers in `/etc/resolv.conf`. diff --git a/releases/release-1.26/release-notes/maps/pr-112163-map.yaml b/releases/release-1.26/release-notes/maps/pr-112163-map.yaml index 8b2ccee8f29..c38d3ad638f 100644 --- a/releases/release-1.26/release-notes/maps/pr-112163-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112163-map.yaml @@ -1,3 +1,3 @@ -pr: 112163 -releasenote: - text: Graduate `ServiceIPStaticSubrange` feature to GA. +pr: 112163 +releasenote: + text: Graduate `ServiceIPStaticSubrange` feature to GA. diff --git a/releases/release-1.26/release-notes/maps/pr-112172-map.yaml b/releases/release-1.26/release-notes/maps/pr-112172-map.yaml index 03772c172e0..985321e6579 100644 --- a/releases/release-1.26/release-notes/maps/pr-112172-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112172-map.yaml @@ -1,4 +1,4 @@ -pr: 112172 -releasenote: - text: 'kubeadm: added the "--cleanup-tmp-dir" flag for `kubeadm reset`. It will - cleanup the contents of `/etc/kubernetes/tmp`. The flag is off by default.' +pr: 112172 +releasenote: + text: 'kubeadm: added the "--cleanup-tmp-dir" flag for `kubeadm reset`. It will + cleanup the contents of `/etc/kubernetes/tmp`. The flag is off by default.' diff --git a/releases/release-1.26/release-notes/maps/pr-112181-map.yaml b/releases/release-1.26/release-notes/maps/pr-112181-map.yaml index 6c87839e621..b76eeb81cae 100644 --- a/releases/release-1.26/release-notes/maps/pr-112181-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112181-map.yaml @@ -1,4 +1,4 @@ -pr: 112181 -releasenote: - text: callers using `DelegatingAuthenticationOptions` can now use `DisableAnonymous` - to disable Anonymous authentication. +pr: 112181 +releasenote: + text: callers using `DelegatingAuthenticationOptions` can now use `DisableAnonymous` + to disable Anonymous authentication. diff --git a/releases/release-1.26/release-notes/maps/pr-112183-map.yaml b/releases/release-1.26/release-notes/maps/pr-112183-map.yaml index 8cc02b8e35f..700444959dd 100644 --- a/releases/release-1.26/release-notes/maps/pr-112183-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112183-map.yaml @@ -1,4 +1,4 @@ -pr: 112183 -releasenote: - text: Fixed spurious `field is immutable` errors validating updates to Event API - objects via the `events.k8s.io/v1` API. +pr: 112183 +releasenote: + text: Fixed spurious `field is immutable` errors validating updates to Event API + objects via the `events.k8s.io/v1` API. diff --git a/releases/release-1.26/release-notes/maps/pr-112195-map.yaml b/releases/release-1.26/release-notes/maps/pr-112195-map.yaml index e79bea3ad17..242f272ba8f 100644 --- a/releases/release-1.26/release-notes/maps/pr-112195-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112195-map.yaml @@ -1,3 +1,3 @@ -pr: 112195 -releasenote: - text: Fixed race condition in GCE between containerized mounter setup in the kubelet. +pr: 112195 +releasenote: + text: Fixed race condition in GCE between containerized mounter setup in the kubelet. diff --git a/releases/release-1.26/release-notes/maps/pr-112200-map.yaml b/releases/release-1.26/release-notes/maps/pr-112200-map.yaml index 9e6d4cb33d0..9a3348fdc92 100644 --- a/releases/release-1.26/release-notes/maps/pr-112200-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112200-map.yaml @@ -1,4 +1,4 @@ -pr: 112200 -releasenote: - text: | - In 'client-go` `SharedInformerFactory` will now support waiting for goroutines during shutdown. +pr: 112200 +releasenote: + text: | + In 'client-go` `SharedInformerFactory` will now support waiting for goroutines during shutdown. diff --git a/releases/release-1.26/release-notes/maps/pr-112243-map.yaml b/releases/release-1.26/release-notes/maps/pr-112243-map.yaml index cb101b05d4b..cfbc9a90cce 100644 --- a/releases/release-1.26/release-notes/maps/pr-112243-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112243-map.yaml @@ -1,4 +1,4 @@ -pr: 112243 -releasenote: - text: Added back unused flags on `kubectl run` command, which did not go through - the required deprecation period before being removed. +pr: 112243 +releasenote: + text: Added back unused flags on `kubectl run` command, which did not go through + the required deprecation period before being removed. diff --git a/releases/release-1.26/release-notes/maps/pr-112261-map.yaml b/releases/release-1.26/release-notes/maps/pr-112261-map.yaml index 0e1326d9d4a..c8b38177bd7 100644 --- a/releases/release-1.26/release-notes/maps/pr-112261-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112261-map.yaml @@ -1,5 +1,5 @@ -pr: 112261 -releasenote: - text: 'Deprecated the following kubectl run flags, which are ignored if set: `--cascade`, - `--filename`, `--force`, `--grace-period`, `--kustomize`, `--recursive`, `--timeout`, - `--wait`.' +pr: 112261 +releasenote: + text: 'Deprecated the following kubectl run flags, which are ignored if set: `--cascade`, + `--filename`, `--force`, `--grace-period`, `--kustomize`, `--recursive`, `--timeout`, + `--wait`.' diff --git a/releases/release-1.26/release-notes/maps/pr-112267-map.yaml b/releases/release-1.26/release-notes/maps/pr-112267-map.yaml index e93d09084ff..b680b5e1062 100644 --- a/releases/release-1.26/release-notes/maps/pr-112267-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112267-map.yaml @@ -1,4 +1,4 @@ -pr: 112267 -releasenote: - text: Updated creation of `LoadBalancer` services, for there to be fewer AWS security - group rules in most cases. +pr: 112267 +releasenote: + text: Updated creation of `LoadBalancer` services, for there to be fewer AWS security + group rules in most cases. diff --git a/releases/release-1.26/release-notes/maps/pr-112299-map.yaml b/releases/release-1.26/release-notes/maps/pr-112299-map.yaml index 2fc17d7db48..7ca565e020d 100644 --- a/releases/release-1.26/release-notes/maps/pr-112299-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112299-map.yaml @@ -1,6 +1,6 @@ -pr: 112299 -releasenote: - text: 'kube-apiserver: `gzip` compression switched from level 4 to level 1 to improve - large list call latencies in exchange for higher network bandwidth usage (10-50% - higher). This increases the headroom before very large unpaged list calls exceed - request timeout limits.' +pr: 112299 +releasenote: + text: 'kube-apiserver: `gzip` compression switched from level 4 to level 1 to improve + large list call latencies in exchange for higher network bandwidth usage (10-50% + higher). This increases the headroom before very large unpaged list calls exceed + request timeout limits.' diff --git a/releases/release-1.26/release-notes/maps/pr-112306-map.yaml b/releases/release-1.26/release-notes/maps/pr-112306-map.yaml index d8b7c854a1d..5b969235120 100644 --- a/releases/release-1.26/release-notes/maps/pr-112306-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112306-map.yaml @@ -1,6 +1,6 @@ -pr: 112306 -releasenote: - text: |- - Introduce `v1beta3` for Priority and Fairness with the following changes to the API spec: - - rename 'assuredConcurrencyShares' (located under `spec.limited') to 'nominalConcurrencyShares'. - - apply strategic merge patch annotations to 'Conditions' of flowschemas and `prioritylevelconfigurations`. +pr: 112306 +releasenote: + text: |- + Introduce `v1beta3` for Priority and Fairness with the following changes to the API spec: + - rename 'assuredConcurrencyShares' (located under `spec.limited') to 'nominalConcurrencyShares'. + - apply strategic merge patch annotations to 'Conditions' of flowschemas and `prioritylevelconfigurations`. diff --git a/releases/release-1.26/release-notes/maps/pr-112309-map.yaml b/releases/release-1.26/release-notes/maps/pr-112309-map.yaml index 2f2e01d7850..01be56330f9 100644 --- a/releases/release-1.26/release-notes/maps/pr-112309-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112309-map.yaml @@ -1,7 +1,7 @@ -pr: 112309 -releasenote: - text: A new `DisableCompression` field (default = `false`) has been added to - kubeconfig under cluster info. When set to `true`, clients using the kubeconfig - opt out of response compression for all requests to the apiserver. This can - help improve list call latencies significantly when client-server network - bandwidth is ample (>30MB/s) or if the server is CPU-constrained. +pr: 112309 +releasenote: + text: A new `DisableCompression` field (default = `false`) has been added to + kubeconfig under cluster info. When set to `true`, clients using the kubeconfig + opt out of response compression for all requests to the apiserver. This can + help improve list call latencies significantly when client-server network + bandwidth is ample (>30MB/s) or if the server is CPU-constrained. diff --git a/releases/release-1.26/release-notes/maps/pr-112341-map.yaml b/releases/release-1.26/release-notes/maps/pr-112341-map.yaml index 74d9b13cf88..bf1f68787df 100644 --- a/releases/release-1.26/release-notes/maps/pr-112341-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112341-map.yaml @@ -1,6 +1,6 @@ -pr: 112341 -releasenote: - text: The `gcp` and `azure` auth plugins have been removed from `client-go` and - `kubectl`. See [kubelogin](https://github.com/Azure/kubelogin) and [Kubectl Auth - Changes in GKE](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) - for details about the cloud-specific replacements. +pr: 112341 +releasenote: + text: The `gcp` and `azure` auth plugins have been removed from `client-go` and + `kubectl`. See [kubelogin](https://github.com/Azure/kubelogin) and [Kubectl Auth + Changes in GKE](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) + for details about the cloud-specific replacements. diff --git a/releases/release-1.26/release-notes/maps/pr-112353-map.yaml b/releases/release-1.26/release-notes/maps/pr-112353-map.yaml index 8065de304c2..92e0f30b749 100644 --- a/releases/release-1.26/release-notes/maps/pr-112353-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112353-map.yaml @@ -1,4 +1,4 @@ -pr: 112353 -releasenote: - text: Increased the maximum backoff delay of the endpointslice controller to match - the expected sequence of delays when syncing Services. +pr: 112353 +releasenote: + text: Increased the maximum backoff delay of the endpointslice controller to match + the expected sequence of delays when syncing Services. diff --git a/releases/release-1.26/release-notes/maps/pr-112357-map.yaml b/releases/release-1.26/release-notes/maps/pr-112357-map.yaml index 3bdeae909f7..535af98cc2d 100644 --- a/releases/release-1.26/release-notes/maps/pr-112357-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112357-map.yaml @@ -1,4 +1,4 @@ -pr: 112357 -releasenote: - text: 'kube-scheduler: added taints filtering logic consistent with `TaintToleration` - plugin for `PodTopologySpread` plugin.' +pr: 112357 +releasenote: + text: 'kube-scheduler: added taints filtering logic consistent with `TaintToleration` + plugin for `PodTopologySpread` plugin.' diff --git a/releases/release-1.26/release-notes/maps/pr-112360-map.yaml b/releases/release-1.26/release-notes/maps/pr-112360-map.yaml index ba4ead43fc1..a0b74885647 100644 --- a/releases/release-1.26/release-notes/maps/pr-112360-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112360-map.yaml @@ -1,5 +1,5 @@ -pr: 112360 -releasenote: - text: |- - 'kubelet: Added the following Pod failure conditions: - - `DisruptionTarget` (graceful node shutdown, node pressure eviction)' +pr: 112360 +releasenote: + text: |- + 'kubelet: Added the following Pod failure conditions: + - `DisruptionTarget` (graceful node shutdown, node pressure eviction)' diff --git a/releases/release-1.26/release-notes/maps/pr-112374-map.yaml b/releases/release-1.26/release-notes/maps/pr-112374-map.yaml index b10a4e219db..d40e4605132 100644 --- a/releases/release-1.26/release-notes/maps/pr-112374-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112374-map.yaml @@ -1,4 +1,4 @@ -pr: 112374 -releasenote: - text: Logs of requests that were timed out by a timeout handler no longer contain - a `statusStack` and `logging error output` fields. +pr: 112374 +releasenote: + text: Logs of requests that were timed out by a timeout handler no longer contain + a `statusStack` and `logging error output` fields. diff --git a/releases/release-1.26/release-notes/maps/pr-112386-map.yaml b/releases/release-1.26/release-notes/maps/pr-112386-map.yaml index 267022caa0a..038b220d6fa 100644 --- a/releases/release-1.26/release-notes/maps/pr-112386-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112386-map.yaml @@ -1,5 +1,5 @@ -pr: 112386 -releasenote: - text: | - `CSRDuration` feature gate that graduated to GA in 1.24 and is unconditionally - enabled now removed in v1.26. +pr: 112386 +releasenote: + text: | + `CSRDuration` feature gate that graduated to GA in 1.24 and is unconditionally + enabled now removed in v1.26. diff --git a/releases/release-1.26/release-notes/maps/pr-112403-map.yaml b/releases/release-1.26/release-notes/maps/pr-112403-map.yaml index b8e2f02ffc5..edce13650ba 100644 --- a/releases/release-1.26/release-notes/maps/pr-112403-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112403-map.yaml @@ -1,6 +1,6 @@ -pr: 112403 -releasenote: - 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 change modified that behavior to ensure - it is only called once per volume per node. +pr: 112403 +releasenote: + 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 change modified that behavior to ensure + it is only called once per volume per node. diff --git a/releases/release-1.26/release-notes/maps/pr-112427-map.yaml b/releases/release-1.26/release-notes/maps/pr-112427-map.yaml index 498353104b9..365f1de770d 100644 --- a/releases/release-1.26/release-notes/maps/pr-112427-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112427-map.yaml @@ -1,3 +1,3 @@ -pr: 112427 -releasenote: - text: Allowed `Label` section in vSphere e2e cloud provider configuration. +pr: 112427 +releasenote: + text: Allowed `Label` section in vSphere e2e cloud provider configuration. diff --git a/releases/release-1.26/release-notes/maps/pr-112489-map.yaml b/releases/release-1.26/release-notes/maps/pr-112489-map.yaml index 5d08e7edad5..3fce908960e 100644 --- a/releases/release-1.26/release-notes/maps/pr-112489-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112489-map.yaml @@ -1,3 +1,3 @@ -pr: 112489 -releasenote: - text: 'etcd: Updated to v3.5.5.' +pr: 112489 +releasenote: + text: 'etcd: Updated to v3.5.5.' diff --git a/releases/release-1.26/release-notes/maps/pr-112507-map.yaml b/releases/release-1.26/release-notes/maps/pr-112507-map.yaml index 824e60532d9..97eda998eb5 100644 --- a/releases/release-1.26/release-notes/maps/pr-112507-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112507-map.yaml @@ -1,4 +1,4 @@ -pr: 112507 -releasenote: - text: Correct the calculating error in `podTopologySpread` plugin to avoid unexpected - scheduling results. +pr: 112507 +releasenote: + text: Correct the calculating error in `podTopologySpread` plugin to avoid unexpected + scheduling results. diff --git a/releases/release-1.26/release-notes/maps/pr-112508-map.yaml b/releases/release-1.26/release-notes/maps/pr-112508-map.yaml index 23b21300581..5275e1c7ad8 100644 --- a/releases/release-1.26/release-notes/maps/pr-112508-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112508-map.yaml @@ -1,3 +1,3 @@ -pr: 112508 -releasenote: - text: Added support for RSA and ECDSA format keys in preflight check on `kubeadm`. +pr: 112508 +releasenote: + text: Added support for RSA and ECDSA format keys in preflight check on `kubeadm`. diff --git a/releases/release-1.26/release-notes/maps/pr-112518-map.yaml b/releases/release-1.26/release-notes/maps/pr-112518-map.yaml index 4d542425d4a..02414e06673 100644 --- a/releases/release-1.26/release-notes/maps/pr-112518-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112518-map.yaml @@ -1,4 +1,4 @@ -pr: 112518 -releasenote: - text: fixed code to ensure that pods running on nodes tainted with `NoExecute` continue - to run when the `PodDisruptionConditions` feature gate is enabled. +pr: 112518 +releasenote: + text: fixed code to ensure that pods running on nodes tainted with `NoExecute` continue + to run when the `PodDisruptionConditions` feature gate is enabled. diff --git a/releases/release-1.26/release-notes/maps/pr-112521-map.yaml b/releases/release-1.26/release-notes/maps/pr-112521-map.yaml index da3dc8d4af2..8ab6683a940 100644 --- a/releases/release-1.26/release-notes/maps/pr-112521-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112521-map.yaml @@ -1,5 +1,5 @@ -pr: 112521 -releasenote: - text: Add `percentageOfNodesToScore` as a scheduler profile level parameter to API - version `v1`. When a profile `percentageOfNodesToScore` is set, it will override - global `percentageOfNodesToScore`. +pr: 112521 +releasenote: + text: Add `percentageOfNodesToScore` as a scheduler profile level parameter to API + version `v1`. When a profile `percentageOfNodesToScore` is set, it will override + global `percentageOfNodesToScore`. diff --git a/releases/release-1.26/release-notes/maps/pr-112526-map.yaml b/releases/release-1.26/release-notes/maps/pr-112526-map.yaml index e0a1d9aaddf..8060fc71481 100644 --- a/releases/release-1.26/release-notes/maps/pr-112526-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112526-map.yaml @@ -1,4 +1,4 @@ -pr: 112526 -releasenote: - text: 'kube-apiserver: resolved a regression that treated `304 Not Modified` responses - from aggregated API servers as internal errors.' +pr: 112526 +releasenote: + text: 'kube-apiserver: resolved a regression that treated `304 Not Modified` responses + from aggregated API servers as internal errors.' diff --git a/releases/release-1.26/release-notes/maps/pr-112542-map.yaml b/releases/release-1.26/release-notes/maps/pr-112542-map.yaml index 723c599cd58..abeab48bf16 100644 --- a/releases/release-1.26/release-notes/maps/pr-112542-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112542-map.yaml @@ -1,4 +1,4 @@ -pr: 112542 -releasenote: - text: Added validation for the `--container-runtime-endpoint` flag of kubelet to - be non-empty. +pr: 112542 +releasenote: + text: Added validation for the `--container-runtime-endpoint` flag of kubelet to + be non-empty. diff --git a/releases/release-1.26/release-notes/maps/pr-112545-map.yaml b/releases/release-1.26/release-notes/maps/pr-112545-map.yaml index 627e0cf45e3..09ad67bf5af 100644 --- a/releases/release-1.26/release-notes/maps/pr-112545-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112545-map.yaml @@ -1,4 +1,4 @@ -pr: 112545 -releasenote: - text: API Server tracing root span name for opentelemetry is changed from `KubernetesAPI` - to `HTTP GET`. +pr: 112545 +releasenote: + text: API Server tracing root span name for opentelemetry is changed from `KubernetesAPI` + to `HTTP GET`. diff --git a/releases/release-1.26/release-notes/maps/pr-112553-map.yaml b/releases/release-1.26/release-notes/maps/pr-112553-map.yaml index b9ade981030..0e2013dbdfb 100644 --- a/releases/release-1.26/release-notes/maps/pr-112553-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112553-map.yaml @@ -1,4 +1,4 @@ -pr: 112553 -releasenote: - text: | - `kubectl` now escapes terminal special characters in output. This fixes CVE-2021-25743. +pr: 112553 +releasenote: + text: | + `kubectl` now escapes terminal special characters in output. This fixes CVE-2021-25743. diff --git a/releases/release-1.26/release-notes/maps/pr-112556-map.yaml b/releases/release-1.26/release-notes/maps/pr-112556-map.yaml index 04294f3b695..ee021aa2aeb 100644 --- a/releases/release-1.26/release-notes/maps/pr-112556-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112556-map.yaml @@ -1,4 +1,4 @@ -pr: 112556 -releasenote: - text: Changed error message when resource is not supported by given patch type in - `kubectl patch`. +pr: 112556 +releasenote: + text: Changed error message when resource is not supported by given patch type in + `kubectl patch`. diff --git a/releases/release-1.26/release-notes/maps/pr-112557-map.yaml b/releases/release-1.26/release-notes/maps/pr-112557-map.yaml index 7f8a145b92e..9867820ccf0 100644 --- a/releases/release-1.26/release-notes/maps/pr-112557-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112557-map.yaml @@ -1,4 +1,4 @@ -pr: 112557 -releasenote: - text: Fixed list cost estimation in Priority and Fairness for list requests with - `metadata.name` specified. +pr: 112557 +releasenote: + text: Fixed list cost estimation in Priority and Fairness for list requests with + `metadata.name` specified. diff --git a/releases/release-1.26/release-notes/maps/pr-112567-map.yaml b/releases/release-1.26/release-notes/maps/pr-112567-map.yaml index 1897ee7880c..cb70b1f3cb1 100644 --- a/releases/release-1.26/release-notes/maps/pr-112567-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112567-map.yaml @@ -1,5 +1,5 @@ -pr: 112567 -releasenote: - text: 'kube-scheduler: the `DefaultPodTopologySpread`, `NonPreemptingPriority`, - `PodAffinityNamespaceSelector` and `PreferNominatedNode` feature gates that graduated - to GA in v1.24 and were unconditionally enabled have been removed in v1.26.' +pr: 112567 +releasenote: + text: 'kube-scheduler: the `DefaultPodTopologySpread`, `NonPreemptingPriority`, + `PodAffinityNamespaceSelector` and `PreferNominatedNode` feature gates that graduated + to GA in v1.24 and were unconditionally enabled have been removed in v1.26.' diff --git a/releases/release-1.26/release-notes/maps/pr-112571-map.yaml b/releases/release-1.26/release-notes/maps/pr-112571-map.yaml index c6117d89882..528bc890687 100644 --- a/releases/release-1.26/release-notes/maps/pr-112571-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112571-map.yaml @@ -1,3 +1,3 @@ -pr: 112571 -releasenote: - text: Nested `MountPoints` are now grouped correctly on all cases. +pr: 112571 +releasenote: + text: Nested `MountPoints` are now grouped correctly on all cases. diff --git a/releases/release-1.26/release-notes/maps/pr-112577-map.yaml b/releases/release-1.26/release-notes/maps/pr-112577-map.yaml index cc520a24362..f56efbc5194 100644 --- a/releases/release-1.26/release-notes/maps/pr-112577-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112577-map.yaml @@ -1,4 +1,4 @@ -pr: 112577 -releasenote: - text: Removed feature gates `ServiceLoadBalancerClass` and `ServiceLBNodePortControl`. - These feature gates were enabled (and locked) since `v1.24`. +pr: 112577 +releasenote: + text: Removed feature gates `ServiceLoadBalancerClass` and `ServiceLBNodePortControl`. + These feature gates were enabled (and locked) since `v1.24`. diff --git a/releases/release-1.26/release-notes/maps/pr-112579-map.yaml b/releases/release-1.26/release-notes/maps/pr-112579-map.yaml index 9be57271e0b..cc8d7865c57 100644 --- a/releases/release-1.26/release-notes/maps/pr-112579-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112579-map.yaml @@ -1,3 +1,3 @@ -pr: 112579 -releasenote: - text: Removed `PodOverhead` feature gate as the feature is in GA since `v1.24`. +pr: 112579 +releasenote: + text: Removed `PodOverhead` feature gate as the feature is in GA since `v1.24`. diff --git a/releases/release-1.26/release-notes/maps/pr-112580-map.yaml b/releases/release-1.26/release-notes/maps/pr-112580-map.yaml index 22c3381808d..d8ee68c0135 100644 --- a/releases/release-1.26/release-notes/maps/pr-112580-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112580-map.yaml @@ -1,6 +1,6 @@ -pr: 112580 -releasenote: - text: Added `--disable-compression` flag to `kubectl` (default = false). When true, - it opts out of response compression for all requests to the `apiserver`. This - can help improve list call latencies significantly when client-server network - bandwidth is ample (>30MB/s) or if the server is CPU-constrained. +pr: 112580 +releasenote: + text: Added `--disable-compression` flag to `kubectl` (default = false). When true, + it opts out of response compression for all requests to the `apiserver`. This + can help improve list call latencies significantly when client-server network + bandwidth is ample (>30MB/s) or if the server is CPU-constrained. diff --git a/releases/release-1.26/release-notes/maps/pr-112589-map.yaml b/releases/release-1.26/release-notes/maps/pr-112589-map.yaml index 231ea9b9c86..2c212db8238 100644 --- a/releases/release-1.26/release-notes/maps/pr-112589-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112589-map.yaml @@ -1,4 +1,4 @@ -pr: 112589 -releasenote: - text: The `IndexedJob` and `SuspendJob` feature gates that graduated to GA in 1.24 - and were unconditionally enabled have been removed in v1.26. +pr: 112589 +releasenote: + text: The `IndexedJob` and `SuspendJob` feature gates that graduated to GA in 1.24 + and were unconditionally enabled have been removed in v1.26. diff --git a/releases/release-1.26/release-notes/maps/pr-112607-map.yaml b/releases/release-1.26/release-notes/maps/pr-112607-map.yaml index 1ecf26efa9d..c25e8b1c963 100644 --- a/releases/release-1.26/release-notes/maps/pr-112607-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112607-map.yaml @@ -1,3 +1,3 @@ -pr: 112607 -releasenote: - text: volume mount cleanup now considers only plugin directory and not the entire kubelet root +pr: 112607 +releasenote: + text: volume mount cleanup now considers only plugin directory and not the entire kubelet root diff --git a/releases/release-1.26/release-notes/maps/pr-112643-map.yaml b/releases/release-1.26/release-notes/maps/pr-112643-map.yaml index aca674019c0..c5b3a9342cc 100644 --- a/releases/release-1.26/release-notes/maps/pr-112643-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112643-map.yaml @@ -1,6 +1,6 @@ -pr: 112643 -releasenote: - text: | - `DynamicKubeletConfig` feature gate has been removed from the API server. - Dynamic kubelet reconfiguration now can't be used even when older nodes are still - attempting to rely on it. This is aligned with the Kubernetes version skew policy. +pr: 112643 +releasenote: + text: | + `DynamicKubeletConfig` feature gate has been removed from the API server. + Dynamic kubelet reconfiguration now can't be used even when older nodes are still + attempting to rely on it. This is aligned with the Kubernetes version skew policy. diff --git a/releases/release-1.26/release-notes/maps/pr-112650-map.yaml b/releases/release-1.26/release-notes/maps/pr-112650-map.yaml index 4105467226b..6997b90f28b 100644 --- a/releases/release-1.26/release-notes/maps/pr-112650-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112650-map.yaml @@ -1,3 +1,3 @@ -pr: 112650 -releasenote: - text: 'kubelet: fixed log spam from kubelet_getters.go `Path does not exist`.' +pr: 112650 +releasenote: + text: 'kubelet: fixed log spam from kubelet_getters.go `Path does not exist`.' diff --git a/releases/release-1.26/release-notes/maps/pr-112652-map.yaml b/releases/release-1.26/release-notes/maps/pr-112652-map.yaml index 88bf8bef172..6eeac1a7640 100644 --- a/releases/release-1.26/release-notes/maps/pr-112652-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112652-map.yaml @@ -1,4 +1,4 @@ -pr: 112652 -releasenote: - text: Added a `kubernetes_feature_enabled` metric which will tell you if a feature - is enabled. +pr: 112652 +releasenote: + text: Added a `kubernetes_feature_enabled` metric which will tell you if a feature + is enabled. diff --git a/releases/release-1.26/release-notes/maps/pr-112679-map.yaml b/releases/release-1.26/release-notes/maps/pr-112679-map.yaml index 09141246cf4..8ec023cbf50 100644 --- a/releases/release-1.26/release-notes/maps/pr-112679-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112679-map.yaml @@ -1,5 +1,5 @@ -pr: 112679 -releasenote: - text: Deprecated the `apiserver_request_slo_duration_seconds` metric for v1.27 in - favor of `apiserver_request_sli_duration_seconds` for naming consistency purposes - with other SLI-specific metrics and to avoid any confusion between SLOs and SLIs. +pr: 112679 +releasenote: + text: Deprecated the `apiserver_request_slo_duration_seconds` metric for v1.27 in + favor of `apiserver_request_sli_duration_seconds` for naming consistency purposes + with other SLI-specific metrics and to avoid any confusion between SLOs and SLIs. diff --git a/releases/release-1.26/release-notes/maps/pr-112690-map.yaml b/releases/release-1.26/release-notes/maps/pr-112690-map.yaml index 946a85d152f..9f411acdac9 100644 --- a/releases/release-1.26/release-notes/maps/pr-112690-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112690-map.yaml @@ -1,4 +1,4 @@ -pr: 112690 -releasenote: - text: Added `kubernetes_feature_enabled` metric series to track whether each active - feature gate is enabled. +pr: 112690 +releasenote: + text: Added `kubernetes_feature_enabled` metric series to track whether each active + feature gate is enabled. diff --git a/releases/release-1.26/release-notes/maps/pr-112693-map.yaml b/releases/release-1.26/release-notes/maps/pr-112693-map.yaml index ec607fe4673..a5df2492c73 100644 --- a/releases/release-1.26/release-notes/maps/pr-112693-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112693-map.yaml @@ -1,3 +1,3 @@ -pr: 112693 -releasenote: - text: Bump `golang.org/x/net` to `v0.1.1-0.20221027164007-c63010009c80`. +pr: 112693 +releasenote: + text: Bump `golang.org/x/net` to `v0.1.1-0.20221027164007-c63010009c80`. diff --git a/releases/release-1.26/release-notes/maps/pr-112696-map.yaml b/releases/release-1.26/release-notes/maps/pr-112696-map.yaml index 7d2ad8033d6..10eeaaea0fa 100644 --- a/releases/release-1.26/release-notes/maps/pr-112696-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112696-map.yaml @@ -1,3 +1,3 @@ -pr: 112696 -releasenote: - text: Fixed Admission controllers that caused unnecessary significant load on `apiserver'. +pr: 112696 +releasenote: + text: Fixed Admission controllers that caused unnecessary significant load on `apiserver'. diff --git a/releases/release-1.26/release-notes/maps/pr-112700-map.yaml b/releases/release-1.26/release-notes/maps/pr-112700-map.yaml index 293acc2782e..712ff34d8c9 100644 --- a/releases/release-1.26/release-notes/maps/pr-112700-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112700-map.yaml @@ -1,3 +1,3 @@ -pr: 112700 -releasenote: - text: 'kubectl: fixed a bug where `kubectl convert` did not pick the right API version' +pr: 112700 +releasenote: + text: 'kubectl: fixed a bug where `kubectl convert` did not pick the right API version' diff --git a/releases/release-1.26/release-notes/maps/pr-112731-map.yaml b/releases/release-1.26/release-notes/maps/pr-112731-map.yaml index 3243cf36e91..cc38fe735cd 100644 --- a/releases/release-1.26/release-notes/maps/pr-112731-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112731-map.yaml @@ -1,3 +1,3 @@ -pr: 112731 -releasenote: - text: Switched kubectl to use `github.com/russross/blackfriday/v2` +pr: 112731 +releasenote: + text: Switched kubectl to use `github.com/russross/blackfriday/v2` diff --git a/releases/release-1.26/release-notes/maps/pr-112732-map.yaml b/releases/release-1.26/release-notes/maps/pr-112732-map.yaml index bcd62914199..a5bbe716dbf 100644 --- a/releases/release-1.26/release-notes/maps/pr-112732-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112732-map.yaml @@ -1,3 +1,3 @@ -pr: 112732 -releasenote: - text: 'kubeadm: now supports image repository format validation.' +pr: 112732 +releasenote: + text: 'kubeadm: now supports image repository format validation.' diff --git a/releases/release-1.26/release-notes/maps/pr-112741-map.yaml b/releases/release-1.26/release-notes/maps/pr-112741-map.yaml index 0657fe568f2..ccf06695b38 100644 --- a/releases/release-1.26/release-notes/maps/pr-112741-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112741-map.yaml @@ -1,3 +1,3 @@ -pr: 112741 -releasenote: - text: Exposed health check SLI metrics on `metrics/slis` for apiserver. +pr: 112741 +releasenote: + text: Exposed health check SLI metrics on `metrics/slis` for apiserver. diff --git a/releases/release-1.26/release-notes/maps/pr-112744-map.yaml b/releases/release-1.26/release-notes/maps/pr-112744-map.yaml index 22c36787ae2..5667386d268 100644 --- a/releases/release-1.26/release-notes/maps/pr-112744-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112744-map.yaml @@ -1,4 +1,4 @@ -pr: 112744 -releasenote: - text: Added a feature that allows a `StatefulSet` to start numbering replicas from - an arbitrary non-negative ordinal, using the `.spec.ordinals.start` field. +pr: 112744 +releasenote: + text: Added a feature that allows a `StatefulSet` to start numbering replicas from + an arbitrary non-negative ordinal, using the `.spec.ordinals.start` field. diff --git a/releases/release-1.26/release-notes/maps/pr-112748-map.yaml b/releases/release-1.26/release-notes/maps/pr-112748-map.yaml index be56274751f..11eb8c30b4a 100644 --- a/releases/release-1.26/release-notes/maps/pr-112748-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112748-map.yaml @@ -1,4 +1,4 @@ -pr: 112748 -releasenote: - text: Locked `ServerSideApply` feature gate to true with the feature already being - GA. +pr: 112748 +releasenote: + text: Locked `ServerSideApply` feature gate to true with the feature already being + GA. diff --git a/releases/release-1.26/release-notes/maps/pr-112751-map.yaml b/releases/release-1.26/release-notes/maps/pr-112751-map.yaml index 7d5ce02e308..91125c9f4fa 100644 --- a/releases/release-1.26/release-notes/maps/pr-112751-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112751-map.yaml @@ -1,4 +1,4 @@ -pr: 112751 -releasenote: - text: 'kubeadm: fixed a bug when performing validation on `ClusterConfiguration` - networking fields.' +pr: 112751 +releasenote: + text: 'kubeadm: fixed a bug when performing validation on `ClusterConfiguration` + networking fields.' diff --git a/releases/release-1.26/release-notes/maps/pr-112797-map.yaml b/releases/release-1.26/release-notes/maps/pr-112797-map.yaml index 36fff061664..a93d5fb4c08 100644 --- a/releases/release-1.26/release-notes/maps/pr-112797-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112797-map.yaml @@ -1,4 +1,4 @@ -pr: 112797 -releasenote: - text: 'kube-apiserver: the unused `--master-service-namespace` flag was deprecated - and will be removed in v1.27.' +pr: 112797 +releasenote: + text: 'kube-apiserver: the unused `--master-service-namespace` flag was deprecated + and will be removed in v1.27.' diff --git a/releases/release-1.26/release-notes/maps/pr-112837-map.yaml b/releases/release-1.26/release-notes/maps/pr-112837-map.yaml index 69374bfdb0f..e848facc441 100644 --- a/releases/release-1.26/release-notes/maps/pr-112837-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112837-map.yaml @@ -1,4 +1,4 @@ -pr: 112837 -releasenote: - text: Fixed an issue in `winkernel` proxier that causes proxy rules to leak anytime - service backends are modified. +pr: 112837 +releasenote: + text: Fixed an issue in `winkernel` proxier that causes proxy rules to leak anytime + service backends are modified. diff --git a/releases/release-1.26/release-notes/maps/pr-112838-map.yaml b/releases/release-1.26/release-notes/maps/pr-112838-map.yaml index 15c255e1ebe..c1e024a83a4 100644 --- a/releases/release-1.26/release-notes/maps/pr-112838-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112838-map.yaml @@ -1,4 +1,4 @@ -pr: 112838 -releasenote: - text: The `LegacyServiceAccountTokenNoAutoGeneration` feature gate was promoted - to GA. +pr: 112838 +releasenote: + text: The `LegacyServiceAccountTokenNoAutoGeneration` feature gate was promoted + to GA. diff --git a/releases/release-1.26/release-notes/maps/pr-112855-map.yaml b/releases/release-1.26/release-notes/maps/pr-112855-map.yaml index b2b5d6cc839..2b3c3ec0762 100644 --- a/releases/release-1.26/release-notes/maps/pr-112855-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112855-map.yaml @@ -1,3 +1,3 @@ -pr: 112855 -releasenote: - text: Added kubelet metrics to track the cpumanager cpu allocation and pinning. +pr: 112855 +releasenote: + text: Added kubelet metrics to track the cpumanager cpu allocation and pinning. diff --git a/releases/release-1.26/release-notes/maps/pr-112895-map.yaml b/releases/release-1.26/release-notes/maps/pr-112895-map.yaml index a037adcd4ca..e028ae44804 100644 --- a/releases/release-1.26/release-notes/maps/pr-112895-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112895-map.yaml @@ -1,3 +1,3 @@ -pr: 112895 -releasenote: - text: Moved `MixedProtocolLBService` from beta to GA. +pr: 112895 +releasenote: + text: Moved `MixedProtocolLBService` from beta to GA. diff --git a/releases/release-1.26/release-notes/maps/pr-112905-map.yaml b/releases/release-1.26/release-notes/maps/pr-112905-map.yaml index 24719faf324..fcb4e7636ab 100644 --- a/releases/release-1.26/release-notes/maps/pr-112905-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112905-map.yaml @@ -1,6 +1,6 @@ -pr: 112905 -releasenote: - text: For `kubectl`, `--server-side` now migrates ownership of all fields used by - client-side-apply to the specified `--fieldmanager`. This prevents fields previously - specified using kubectl from being able to live outside of server-side-apply's - management and become undeleteable. +pr: 112905 +releasenote: + text: For `kubectl`, `--server-side` now migrates ownership of all fields used by + client-side-apply to the specified `--fieldmanager`. This prevents fields previously + specified using kubectl from being able to live outside of server-side-apply's + management and become undeleteable. diff --git a/releases/release-1.26/release-notes/maps/pr-112907-map.yaml b/releases/release-1.26/release-notes/maps/pr-112907-map.yaml index bb3e7e57a18..0883c5ebf3d 100644 --- a/releases/release-1.26/release-notes/maps/pr-112907-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112907-map.yaml @@ -1,5 +1,5 @@ -pr: 112907 -releasenote: - text: | - '`registered_metric_total` will now report the number of metrics broken down by - stability level and deprecated version.' +pr: 112907 +releasenote: + text: | + '`registered_metric_total` will now report the number of metrics broken down by + stability level and deprecated version.' diff --git a/releases/release-1.26/release-notes/maps/pr-112914-map.yaml b/releases/release-1.26/release-notes/maps/pr-112914-map.yaml index c05cb12ee1c..f8f7a299c0e 100644 --- a/releases/release-1.26/release-notes/maps/pr-112914-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112914-map.yaml @@ -1,6 +1,6 @@ -pr: 112914 -releasenote: - text: Added a `--topology-manager-policy-options` flag to the kubelet to support - fine tuning the topology manager policies. The first policy option, `prefer-closest-numa-nodes`, - allows these policies to favor sets of NUMA nodes with shorter distance between - nodes when making admission decisions. +pr: 112914 +releasenote: + text: Added a `--topology-manager-policy-options` flag to the kubelet to support + fine tuning the topology manager policies. The first policy option, `prefer-closest-numa-nodes`, + allows these policies to favor sets of NUMA nodes with shorter distance between + nodes when making admission decisions. diff --git a/releases/release-1.26/release-notes/maps/pr-112924-map.yaml b/releases/release-1.26/release-notes/maps/pr-112924-map.yaml index c2644a1557e..32ccd004fef 100644 --- a/releases/release-1.26/release-notes/maps/pr-112924-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112924-map.yaml @@ -1,3 +1,3 @@ -pr: 112924 -releasenote: - text: Removing Windows Server, Version 20H2 flavors from various container images. +pr: 112924 +releasenote: + text: Removing Windows Server, Version 20H2 flavors from various container images. diff --git a/releases/release-1.26/release-notes/maps/pr-112939-map.yaml b/releases/release-1.26/release-notes/maps/pr-112939-map.yaml index c58217834ca..98ab45099d4 100644 --- a/releases/release-1.26/release-notes/maps/pr-112939-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112939-map.yaml @@ -1,3 +1,3 @@ -pr: 112939 -releasenote: - text: Changed `preemption_victims` metric bucket from `LinearBuckets` to `ExponentialBuckets`. +pr: 112939 +releasenote: + text: Changed `preemption_victims` metric bucket from `LinearBuckets` to `ExponentialBuckets`. diff --git a/releases/release-1.26/release-notes/maps/pr-112948-map.yaml b/releases/release-1.26/release-notes/maps/pr-112948-map.yaml index 86807c05007..5cf9fc5b824 100644 --- a/releases/release-1.26/release-notes/maps/pr-112948-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112948-map.yaml @@ -1,3 +1,3 @@ -pr: 112948 -releasenote: - text: Fixed the occasional double-counting of the `job_finished_total` metric. +pr: 112948 +releasenote: + text: Fixed the occasional double-counting of the `job_finished_total` metric. diff --git a/releases/release-1.26/release-notes/maps/pr-112961-map.yaml b/releases/release-1.26/release-notes/maps/pr-112961-map.yaml index 71a83ff4975..c5437003097 100644 --- a/releases/release-1.26/release-notes/maps/pr-112961-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112961-map.yaml @@ -1,3 +1,3 @@ -pr: 112961 -releasenote: - text: Added alpha support for `WindowsHostNetworking` feature. +pr: 112961 +releasenote: + text: Added alpha support for `WindowsHostNetworking` feature. diff --git a/releases/release-1.26/release-notes/maps/pr-112978-map.yaml b/releases/release-1.26/release-notes/maps/pr-112978-map.yaml index e3c5de6d325..d32165c70cd 100644 --- a/releases/release-1.26/release-notes/maps/pr-112978-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112978-map.yaml @@ -1,4 +1,4 @@ -pr: 112978 -releasenote: - text: When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes - available on kube-controller-manager, allowing you to scrape health check metrics. +pr: 112978 +releasenote: + text: When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes + available on kube-controller-manager, allowing you to scrape health check metrics. diff --git a/releases/release-1.26/release-notes/maps/pr-112979-map.yaml b/releases/release-1.26/release-notes/maps/pr-112979-map.yaml index 9b49af52951..41571bc8bb0 100644 --- a/releases/release-1.26/release-notes/maps/pr-112979-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112979-map.yaml @@ -1,4 +1,4 @@ -pr: 112979 -releasenote: - text: Fixed issue where the APIServer would panic on startup if an egress selector - without a controlplane configuration is specified when using APIServerTracing. +pr: 112979 +releasenote: + text: Fixed issue where the APIServer would panic on startup if an egress selector + without a controlplane configuration is specified when using APIServerTracing. diff --git a/releases/release-1.26/release-notes/maps/pr-112980-map.yaml b/releases/release-1.26/release-notes/maps/pr-112980-map.yaml index fc01fad7a04..c13d577b5af 100644 --- a/releases/release-1.26/release-notes/maps/pr-112980-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112980-map.yaml @@ -1,3 +1,3 @@ -pr: 112980 -releasenote: - text: Graduated Kubelet Device Manager to GA. +pr: 112980 +releasenote: + text: Graduated Kubelet Device Manager to GA. diff --git a/releases/release-1.26/release-notes/maps/pr-112989-map.yaml b/releases/release-1.26/release-notes/maps/pr-112989-map.yaml index bbac0eb7bfc..94fe9992108 100644 --- a/releases/release-1.26/release-notes/maps/pr-112989-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-112989-map.yaml @@ -1,3 +1,3 @@ -pr: 112989 -releasenote: - text: Updates `golang.org/x/text`` to `v0.3.8`` to fix CVE-2022-32149 +pr: 112989 +releasenote: + text: Updates `golang.org/x/text`` to `v0.3.8`` to fix CVE-2022-32149 diff --git a/releases/release-1.26/release-notes/maps/pr-113005-map.yaml b/releases/release-1.26/release-notes/maps/pr-113005-map.yaml index 1a0afd54a06..0b516e344b2 100644 --- a/releases/release-1.26/release-notes/maps/pr-113005-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113005-map.yaml @@ -1,4 +1,4 @@ -pr: 113005 -releasenote: - text: In `kubeadm`, command `kubeadm join phase control-plane-prepare certs` now - supports to run with `dry-run` mode on it's own. +pr: 113005 +releasenote: + text: In `kubeadm`, command `kubeadm join phase control-plane-prepare certs` now + supports to run with `dry-run` mode on it's own. diff --git a/releases/release-1.26/release-notes/maps/pr-113008-map.yaml b/releases/release-1.26/release-notes/maps/pr-113008-map.yaml index 1d5f1ac7e76..bc03fba66a6 100644 --- a/releases/release-1.26/release-notes/maps/pr-113008-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113008-map.yaml @@ -1,6 +1,6 @@ -pr: 113008 -releasenote: - text: |- - 'Promoted `cronjob_job_creation_skew` metric to stable to follow the cronjob v2 controller, - the following metrics had their name updated to match metrics API guidelines: - - `cronjob_job_creation_skew_duration_seconds` -> `job_creation_skew_duration_seconds`.' +pr: 113008 +releasenote: + text: |- + 'Promoted `cronjob_job_creation_skew` metric to stable to follow the cronjob v2 controller, + the following metrics had their name updated to match metrics API guidelines: + - `cronjob_job_creation_skew_duration_seconds` -> `job_creation_skew_duration_seconds`.' diff --git a/releases/release-1.26/release-notes/maps/pr-113010-map.yaml b/releases/release-1.26/release-notes/maps/pr-113010-map.yaml index 5da01c13ad8..9721771e810 100644 --- a/releases/release-1.26/release-notes/maps/pr-113010-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113010-map.yaml @@ -1,6 +1,6 @@ -pr: 113010 -releasenote: - text: |- - 'Promoted job-related metrics to stable to follow IndexedJobs GA. The following metrics have their name updated to match metrics API guidelines: - - `job_sync_total` -> `job_syncs_total` - - `job_finished_total` -> `jobs_finished_total`' +pr: 113010 +releasenote: + text: |- + 'Promoted job-related metrics to stable to follow IndexedJobs GA. The following metrics have their name updated to match metrics API guidelines: + - `job_sync_total` -> `job_syncs_total` + - `job_finished_total` -> `jobs_finished_total`' diff --git a/releases/release-1.26/release-notes/maps/pr-113015-map.yaml b/releases/release-1.26/release-notes/maps/pr-113015-map.yaml index 89cbed5f7c2..bf8c3004fe0 100644 --- a/releases/release-1.26/release-notes/maps/pr-113015-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113015-map.yaml @@ -1,4 +1,4 @@ -pr: 113015 -releasenote: - text: In `kube-apiserver`, custom resources can now be specified in the `--encryption-provider-config` - file and can be encrypted in etcd. +pr: 113015 +releasenote: + text: In `kube-apiserver`, custom resources can now be specified in the `--encryption-provider-config` + file and can be encrypted in etcd. diff --git a/releases/release-1.26/release-notes/maps/pr-113018-map.yaml b/releases/release-1.26/release-notes/maps/pr-113018-map.yaml index 5f492ec3b8f..4a717b61c70 100644 --- a/releases/release-1.26/release-notes/maps/pr-113018-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113018-map.yaml @@ -1,3 +1,3 @@ -pr: 113018 -releasenote: - text: Graduated Kubelet CPU Manager to GA. +pr: 113018 +releasenote: + text: Graduated Kubelet CPU Manager to GA. diff --git a/releases/release-1.26/release-notes/maps/pr-113021-map.yaml b/releases/release-1.26/release-notes/maps/pr-113021-map.yaml index 57df8d5d07a..f0951d9da59 100644 --- a/releases/release-1.26/release-notes/maps/pr-113021-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113021-map.yaml @@ -1,3 +1,3 @@ -pr: 113021 -releasenote: - text: 'kubelet: Fixed a startup crash in devicemanager.' +pr: 113021 +releasenote: + text: 'kubelet: Fixed a startup crash in devicemanager.' diff --git a/releases/release-1.26/release-notes/maps/pr-113026-map.yaml b/releases/release-1.26/release-notes/maps/pr-113026-map.yaml index 9871e652c89..41ae6c81099 100644 --- a/releases/release-1.26/release-notes/maps/pr-113026-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113026-map.yaml @@ -1,4 +1,4 @@ -pr: 113026 -releasenote: - text: When `ComponentSLIs` feature gate is enabled, `/metrics/slis` becomes available - on kube-scheduler, allowing you to scrape health check metrics. +pr: 113026 +releasenote: + text: When `ComponentSLIs` feature gate is enabled, `/metrics/slis` becomes available + on kube-scheduler, allowing you to scrape health check metrics. diff --git a/releases/release-1.26/release-notes/maps/pr-113041-map.yaml b/releases/release-1.26/release-notes/maps/pr-113041-map.yaml index f20298a219b..9503493edd9 100644 --- a/releases/release-1.26/release-notes/maps/pr-113041-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113041-map.yaml @@ -1,4 +1,4 @@ -pr: 113041 -releasenote: - text: Fixed a bug where the kubelet choose the wrong container by its name when - running `kubectl exec`. +pr: 113041 +releasenote: + text: Fixed a bug where the kubelet choose the wrong container by its name when + running `kubectl exec`. diff --git a/releases/release-1.26/release-notes/maps/pr-113057-map.yaml b/releases/release-1.26/release-notes/maps/pr-113057-map.yaml index 87a607a7aad..8d078c04952 100644 --- a/releases/release-1.26/release-notes/maps/pr-113057-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113057-map.yaml @@ -1,4 +1,4 @@ -pr: 113057 -releasenote: - text: When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes - available on `kube-proxy` allowing you to scrape health check metrics. +pr: 113057 +releasenote: + text: When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes + available on `kube-proxy` allowing you to scrape health check metrics. diff --git a/releases/release-1.26/release-notes/maps/pr-113113-map.yaml b/releases/release-1.26/release-notes/maps/pr-113113-map.yaml index ddcc362e28e..0375b3d07ca 100644 --- a/releases/release-1.26/release-notes/maps/pr-113113-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113113-map.yaml @@ -1,4 +1,4 @@ -pr: 113113 -releasenote: - text: "The time duration of a failed or unschedulable scheduling attempt will be - longer, it \nnow includes the time duration of the unreserve operation." +pr: 113113 +releasenote: + text: "The time duration of a failed or unschedulable scheduling attempt will be + longer, it \nnow includes the time duration of the unreserve operation." diff --git a/releases/release-1.26/release-notes/maps/pr-113116-map.yaml b/releases/release-1.26/release-notes/maps/pr-113116-map.yaml index 7ad12fb248a..cbe48636619 100644 --- a/releases/release-1.26/release-notes/maps/pr-113116-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113116-map.yaml @@ -1,5 +1,5 @@ -pr: 113116 -releasenote: - text: Added a `--prune-allowlist` flag that can be used with `kubectl apply --prune`. - This flag now replaces and functions the same as the `--prune-whitelist` flag, - which has been deprecated. +pr: 113116 +releasenote: + text: Added a `--prune-allowlist` flag that can be used with `kubectl apply --prune`. + This flag now replaces and functions the same as the `--prune-whitelist` flag, + which has been deprecated. diff --git a/releases/release-1.26/release-notes/maps/pr-113133-map.yaml b/releases/release-1.26/release-notes/maps/pr-113133-map.yaml index 01bb619ab69..6c082b10c7b 100644 --- a/releases/release-1.26/release-notes/maps/pr-113133-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113133-map.yaml @@ -1,4 +1,4 @@ -pr: 113133 -releasenote: - text: 'kube-apiserver: `DELETECOLLECTION API` requests are now recorded in metrics - with the correct verb.' +pr: 113133 +releasenote: + text: 'kube-apiserver: `DELETECOLLECTION API` requests are now recorded in metrics + with the correct verb.' diff --git a/releases/release-1.26/release-notes/maps/pr-113160-map.yaml b/releases/release-1.26/release-notes/maps/pr-113160-map.yaml index bcc584d78a1..c7429b39b00 100644 --- a/releases/release-1.26/release-notes/maps/pr-113160-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113160-map.yaml @@ -1,3 +1,3 @@ -pr: 113160 -releasenote: - text: Azure File CSI migration is now GA. +pr: 113160 +releasenote: + text: Azure File CSI migration is now GA. diff --git a/releases/release-1.26/release-notes/maps/pr-113171-map.yaml b/releases/release-1.26/release-notes/maps/pr-113171-map.yaml index 391d79b59d4..9e0c8d0bd48 100644 --- a/releases/release-1.26/release-notes/maps/pr-113171-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113171-map.yaml @@ -1,4 +1,4 @@ -pr: 113171 -releasenote: - text: Aggregated discovery will be alpha and can be toggled with the `AggregatedDiscoveryEndpoint` - feature flag. +pr: 113171 +releasenote: + text: Aggregated discovery will be alpha and can be toggled with the `AggregatedDiscoveryEndpoint` + feature flag. diff --git a/releases/release-1.26/release-notes/maps/pr-113176-map.yaml b/releases/release-1.26/release-notes/maps/pr-113176-map.yaml index 31bb34c26bf..a584b8b94b1 100644 --- a/releases/release-1.26/release-notes/maps/pr-113176-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113176-map.yaml @@ -1,5 +1,5 @@ -pr: 113176 -releasenote: - text: Added new metric `job_controller_terminated_pods_tracking_finalizer` which - can be used to monitor whether the job controller is removing Pod finalizers from - terminated Pods after accounting them in Job status. +pr: 113176 +releasenote: + text: Added new metric `job_controller_terminated_pods_tracking_finalizer` which + can be used to monitor whether the job controller is removing Pod finalizers from + terminated Pods after accounting them in Job status. diff --git a/releases/release-1.26/release-notes/maps/pr-113186-map.yaml b/releases/release-1.26/release-notes/maps/pr-113186-map.yaml index 4487eb106c5..99e9a343572 100644 --- a/releases/release-1.26/release-notes/maps/pr-113186-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113186-map.yaml @@ -1,4 +1,4 @@ -pr: 113186 -releasenote: - text: Added a new namespace alpha field to `DataSourceRef` field in `PersistentVolumeClaim` - API. +pr: 113186 +releasenote: + text: Added a new namespace alpha field to `DataSourceRef` field in `PersistentVolumeClaim` + API. diff --git a/releases/release-1.26/release-notes/maps/pr-113206-map.yaml b/releases/release-1.26/release-notes/maps/pr-113206-map.yaml index 105af1ae879..b0a05047683 100644 --- a/releases/release-1.26/release-notes/maps/pr-113206-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113206-map.yaml @@ -1,4 +1,4 @@ -pr: 113206 -releasenote: - text: Fixed cost estimation of token creation request for service account in Priority - and Fairness. +pr: 113206 +releasenote: + text: Fixed cost estimation of token creation request for service account in Priority + and Fairness. diff --git a/releases/release-1.26/release-notes/maps/pr-113212-map.yaml b/releases/release-1.26/release-notes/maps/pr-113212-map.yaml index 7b0258a0308..a0d1410739a 100644 --- a/releases/release-1.26/release-notes/maps/pr-113212-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113212-map.yaml @@ -1,3 +1,3 @@ -pr: 113212 -releasenote: - text: The `e2e.test` binary no longer emits JSON structs to document progress. +pr: 113212 +releasenote: + text: The `e2e.test` binary no longer emits JSON structs to document progress. diff --git a/releases/release-1.26/release-notes/maps/pr-113217-map.yaml b/releases/release-1.26/release-notes/maps/pr-113217-map.yaml index 2e4fc8f62d7..d25044edf47 100644 --- a/releases/release-1.26/release-notes/maps/pr-113217-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113217-map.yaml @@ -1,4 +1,4 @@ -pr: 113217 -releasenote: - text: API Server tracing now includes the latency of authorization, priorityandfairness, - impersonation, audit, and authentication filters. +pr: 113217 +releasenote: + text: API Server tracing now includes the latency of authorization, priorityandfairness, + impersonation, audit, and authentication filters. diff --git a/releases/release-1.26/release-notes/maps/pr-113225-map.yaml b/releases/release-1.26/release-notes/maps/pr-113225-map.yaml index d7348ff94d6..62368e7a6a2 100644 --- a/releases/release-1.26/release-notes/maps/pr-113225-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113225-map.yaml @@ -1,4 +1,4 @@ -pr: 113225 -releasenote: - text: | - '`DelegateFSGroupToCSIDriver` feature is GA.' +pr: 113225 +releasenote: + text: | + '`DelegateFSGroupToCSIDriver` feature is GA.' diff --git a/releases/release-1.26/release-notes/maps/pr-113274-map.yaml b/releases/release-1.26/release-notes/maps/pr-113274-map.yaml index 278fb5a7be0..f3b5112b709 100644 --- a/releases/release-1.26/release-notes/maps/pr-113274-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113274-map.yaml @@ -1,4 +1,4 @@ -pr: 113274 -releasenote: - text: New Pod API field `.spec.schedulingGates` was introduced to enable users to - control when to mark a Pod as scheduling ready. +pr: 113274 +releasenote: + text: New Pod API field `.spec.schedulingGates` was introduced to enable users to + control when to mark a Pod as scheduling ready. diff --git a/releases/release-1.26/release-notes/maps/pr-113275-map.yaml b/releases/release-1.26/release-notes/maps/pr-113275-map.yaml index 8aa0da90a2d..3bfe7c272e0 100644 --- a/releases/release-1.26/release-notes/maps/pr-113275-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113275-map.yaml @@ -1,5 +1,5 @@ -pr: 113275 -releasenote: - text: | - 'A new `preEnqueue` extension point was added to scheduler's component config - `v1beta2/v1beta3/v1`.' +pr: 113275 +releasenote: + text: | + 'A new `preEnqueue` extension point was added to scheduler's component config + `v1beta2/v1beta3/v1`.' diff --git a/releases/release-1.26/release-notes/maps/pr-113291-map.yaml b/releases/release-1.26/release-notes/maps/pr-113291-map.yaml index b6c8141df6c..81faf4ca773 100644 --- a/releases/release-1.26/release-notes/maps/pr-113291-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113291-map.yaml @@ -1,4 +1,4 @@ -pr: 113291 -releasenote: - text: Fixed the `PodAndContainerStatsFromCRI` feature, instead of supplementing - with stats from cAdvisor. +pr: 113291 +releasenote: + text: Fixed the `PodAndContainerStatsFromCRI` feature, instead of supplementing + with stats from cAdvisor. diff --git a/releases/release-1.26/release-notes/maps/pr-113307-map.yaml b/releases/release-1.26/release-notes/maps/pr-113307-map.yaml index 27075dfbd3d..ca33f2ae57d 100644 --- a/releases/release-1.26/release-notes/maps/pr-113307-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113307-map.yaml @@ -1,4 +1,4 @@ -pr: 113307 -releasenote: - text: Updated the Lease identity naming format for the `APIServerIdentity` feature - to use a persistent name. +pr: 113307 +releasenote: + text: Updated the Lease identity naming format for the `APIServerIdentity` feature + to use a persistent name. diff --git a/releases/release-1.26/release-notes/maps/pr-113314-map.yaml b/releases/release-1.26/release-notes/maps/pr-113314-map.yaml index d2a6716ab85..89e8ddd1516 100644 --- a/releases/release-1.26/release-notes/maps/pr-113314-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113314-map.yaml @@ -1,6 +1,6 @@ -pr: 113314 -releasenote: - text: 'Introduced `v1alpha1` API for validating admission policies, enabling extensible - admission control via CEL expressions (KEP 3488: CEL for Admission Control). - To use, enable the `ValidatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` - API via `--runtime-config`.' +pr: 113314 +releasenote: + text: 'Introduced `v1alpha1` API for validating admission policies, enabling extensible + admission control via CEL expressions (KEP 3488: CEL for Admission Control). + To use, enable the `ValidatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` + API via `--runtime-config`.' diff --git a/releases/release-1.26/release-notes/maps/pr-113323-map.yaml b/releases/release-1.26/release-notes/maps/pr-113323-map.yaml index 04ee9fa4060..636def97fad 100644 --- a/releases/release-1.26/release-notes/maps/pr-113323-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113323-map.yaml @@ -1,6 +1,6 @@ -pr: 113323 -releasenote: - text: Metrics for `RetroactiveDefaultStorageClass` feature are now available. To - see an attempt count for updating PVC retroactively with a default StorageClass - see `retroactive_storageclass_total` metric and for total numer of errors see - `retroactive_storageclass_errors_total`. +pr: 113323 +releasenote: + text: Metrics for `RetroactiveDefaultStorageClass` feature are now available. To + see an attempt count for updating PVC retroactively with a default StorageClass + see `retroactive_storageclass_total` metric and for total numer of errors see + `retroactive_storageclass_errors_total`. diff --git a/releases/release-1.26/release-notes/maps/pr-113329-map.yaml b/releases/release-1.26/release-notes/maps/pr-113329-map.yaml index 03b642498a5..0da7cfaccdb 100644 --- a/releases/release-1.26/release-notes/maps/pr-113329-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113329-map.yaml @@ -1,4 +1,4 @@ -pr: 113329 -releasenote: - text: | - '`RetroactiveDefaultStorageClass` feature is now beta.' +pr: 113329 +releasenote: + text: | + '`RetroactiveDefaultStorageClass` feature is now beta.' diff --git a/releases/release-1.26/release-notes/maps/pr-113336-map.yaml b/releases/release-1.26/release-notes/maps/pr-113336-map.yaml index 91638c8aa65..65efa00f7d3 100644 --- a/releases/release-1.26/release-notes/maps/pr-113336-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113336-map.yaml @@ -1,6 +1,6 @@ -pr: 113336 -releasenote: - text: | - '`CSIMigrationvSphere` was upgraded to GA and locked to true. Do not upgrade to K8s - 1.26 if you need Windows, or XFS, or raw block support until vSphere CSI Driver - adds support for them in a version post v2.7.x.' +pr: 113336 +releasenote: + text: | + '`CSIMigrationvSphere` was upgraded to GA and locked to true. Do not upgrade to K8s + 1.26 if you need Windows, or XFS, or raw block support until vSphere CSI Driver + adds support for them in a version post v2.7.x.' diff --git a/releases/release-1.26/release-notes/maps/pr-113340-map.yaml b/releases/release-1.26/release-notes/maps/pr-113340-map.yaml index d15390ead26..e8d7faa0985 100644 --- a/releases/release-1.26/release-notes/maps/pr-113340-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113340-map.yaml @@ -1,4 +1,4 @@ -pr: 113340 -releasenote: - text: If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` now becomes - available on cloud-controller-manager allowing you to scrape health check metrics. +pr: 113340 +releasenote: + text: If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` now becomes + available on cloud-controller-manager allowing you to scrape health check metrics. diff --git a/releases/release-1.26/release-notes/maps/pr-113351-map.yaml b/releases/release-1.26/release-notes/maps/pr-113351-map.yaml index d69c3ec0efc..e262d3cbdea 100644 --- a/releases/release-1.26/release-notes/maps/pr-113351-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113351-map.yaml @@ -1,4 +1,4 @@ -pr: 113351 -releasenote: - text: The `EndpointSliceTerminatingCondition` feature gate was graduated to GA. - The gate is now locked and will be removed in v1.28. +pr: 113351 +releasenote: + text: The `EndpointSliceTerminatingCondition` feature gate was graduated to GA. + The gate is now locked and will be removed in v1.28. diff --git a/releases/release-1.26/release-notes/maps/pr-113360-map.yaml b/releases/release-1.26/release-notes/maps/pr-113360-map.yaml index 3fa5188d28f..ec5f2e83eb1 100644 --- a/releases/release-1.26/release-notes/maps/pr-113360-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113360-map.yaml @@ -1,4 +1,4 @@ -pr: 113360 -releasenote: - text: Enabled the "Retriable and non-retriable pod failures for jobs" feature into - beta. +pr: 113360 +releasenote: + text: Enabled the "Retriable and non-retriable pod failures for jobs" feature into + beta. diff --git a/releases/release-1.26/release-notes/maps/pr-113363-map.yaml b/releases/release-1.26/release-notes/maps/pr-113363-map.yaml index 0524656455f..2d7298960fb 100644 --- a/releases/release-1.26/release-notes/maps/pr-113363-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113363-map.yaml @@ -1,6 +1,6 @@ -pr: 113363 -releasenote: - text: The `ProxyTerminatingEndpoints` feature is now Beta and enabled by default. - When enabled, kube-proxy will attempt to route traffic to terminating pods when - the traffic policy is `Local` and there are only terminating pods remaining on - a node. +pr: 113363 +releasenote: + text: The `ProxyTerminatingEndpoints` feature is now Beta and enabled by default. + When enabled, kube-proxy will attempt to route traffic to terminating pods when + the traffic policy is `Local` and there are only terminating pods remaining on + a node. diff --git a/releases/release-1.26/release-notes/maps/pr-113369-map.yaml b/releases/release-1.26/release-notes/maps/pr-113369-map.yaml index c3f41b8a9fc..f7ebb7ce69b 100644 --- a/releases/release-1.26/release-notes/maps/pr-113369-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113369-map.yaml @@ -1,4 +1,4 @@ -pr: 113369 -releasenote: - text: The `ResourceVersion` returned in objects from delete responses is now consistent - with the `ResourceVersion` contained in the delete watch event. +pr: 113369 +releasenote: + text: The `ResourceVersion` returned in objects from delete responses is now consistent + with the `ResourceVersion` contained in the delete watch event. diff --git a/releases/release-1.26/release-notes/maps/pr-113375-map.yaml b/releases/release-1.26/release-notes/maps/pr-113375-map.yaml index f0b5d237b34..73c0781edd9 100644 --- a/releases/release-1.26/release-notes/maps/pr-113375-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113375-map.yaml @@ -1,8 +1,8 @@ -pr: 113375 -releasenote: - text: | - '`PodDisruptionBudget` now adds an alpha `spec.unhealthyPodEvictionPolicy` field. - When the `PDBUnhealthyPodEvictionPolicy` feature-gate is enabled in `kube-apiserver`, - setting this field to `"AlwaysAllow"` allows pods to be evicted if they do not - have a ready condition, regardless of whether the PodDisruptionBudget is currently - healthy.' +pr: 113375 +releasenote: + text: | + '`PodDisruptionBudget` now adds an alpha `spec.unhealthyPodEvictionPolicy` field. + When the `PDBUnhealthyPodEvictionPolicy` feature-gate is enabled in `kube-apiserver`, + setting this field to `"AlwaysAllow"` allows pods to be evicted if they do not + have a ready condition, regardless of whether the PodDisruptionBudget is currently + healthy.' diff --git a/releases/release-1.26/release-notes/maps/pr-113448-map.yaml b/releases/release-1.26/release-notes/maps/pr-113448-map.yaml index f35cba73cf1..16e28356f7f 100644 --- a/releases/release-1.26/release-notes/maps/pr-113448-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113448-map.yaml @@ -1,4 +1,4 @@ -pr: 113448 -releasenote: - text: 'kubeadm: removed the `UnversionedKubeletConfigMap` feature gate. The feature - has been GA and locked to enabled since `v1.25`.' +pr: 113448 +releasenote: + text: 'kubeadm: removed the `UnversionedKubeletConfigMap` feature gate. The feature + has been GA and locked to enabled since `v1.25`.' diff --git a/releases/release-1.26/release-notes/maps/pr-113476-map.yaml b/releases/release-1.26/release-notes/maps/pr-113476-map.yaml index 4a6ca3c20d2..9749cf5a531 100644 --- a/releases/release-1.26/release-notes/maps/pr-113476-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113476-map.yaml @@ -1,3 +1,3 @@ -pr: 113476 -releasenote: - text: Promoting `WindowsHostProcessContainers` to stable. +pr: 113476 +releasenote: + text: Promoting `WindowsHostProcessContainers` to stable. diff --git a/releases/release-1.26/release-notes/maps/pr-113481-map.yaml b/releases/release-1.26/release-notes/maps/pr-113481-map.yaml index 6a22374b829..9593249dbc7 100644 --- a/releases/release-1.26/release-notes/maps/pr-113481-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113481-map.yaml @@ -1,3 +1,3 @@ -pr: 113481 -releasenote: - text: Pod logs using `--timestamps` are not broken up with timestamps anymore. +pr: 113481 +releasenote: + text: Pod logs using `--timestamps` are not broken up with timestamps anymore. diff --git a/releases/release-1.26/release-notes/maps/pr-113485-map.yaml b/releases/release-1.26/release-notes/maps/pr-113485-map.yaml index ad31799a729..8c22951abbd 100644 --- a/releases/release-1.26/release-notes/maps/pr-113485-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113485-map.yaml @@ -1,20 +1,20 @@ -pr: 113485 -releasenote: - text: |- - 'Priority and Fairness has introduced a new feature called _borrowing_ that allows an API priority level - to borrow a number of seats from other priority level(s). As a cluster operator, you can enable borrowing - for a certain priority level configuration object via the two newly introduced fields `lendablePercent`, and - `borrowingLimitPercent` located under the `.spec.limited` field of the designated priority level. - This change added the following metrics: - - `apiserver_flowcontrol_nominal_limit_seats`: Nominal number of execution seats configured for each priority level - - `apiserver_flowcontrol_lower_limit_seats`: Configured lower bound on number of execution seats available to each priority level - - `apiserver_flowcontrol_upper_limit_seats`: Configured upper bound on number of execution seats available to each priority level - - `apiserver_flowcontrol_demand_seats`: Observations, at the end of every nanosecond, of (the number of seats each priority level could use) / (nominal number of seats for that level) - - `apiserver_flowcontrol_demand_seats_high_watermark`: High watermark, over last adjustment period, of demand_seats - - `apiserver_flowcontrol_demand_seats_average`: Time-weighted average, over last adjustment period, of demand_seats - - `apiserver_flowcontrol_demand_seats_stdev`: Time-weighted standard deviation, over last adjustment period, of demand_seats - - `apiserver_flowcontrol_demand_seats_smoothed`: Smoothed seat demands - - `apiserver_flowcontrol_target_seats`: Seat allocation targets - - `apiserver_flowcontrol_seat_fair_frac`: Fair fraction of server's concurrency to allocate to each priority level that can use it - - `apiserver_flowcontrol_current_limit_seats`: current derived number of execution seats available to each priority level - The possibility of borrowing means that the old metric `apiserver_flowcontrol_request_concurrency_limit` can no longer mean both the configured concurrency limit and the enforced concurrency limit. Henceforth it means the configured concurrency limit.' +pr: 113485 +releasenote: + text: |- + 'Priority and Fairness has introduced a new feature called _borrowing_ that allows an API priority level + to borrow a number of seats from other priority level(s). As a cluster operator, you can enable borrowing + for a certain priority level configuration object via the two newly introduced fields `lendablePercent`, and + `borrowingLimitPercent` located under the `.spec.limited` field of the designated priority level. + This change added the following metrics: + - `apiserver_flowcontrol_nominal_limit_seats`: Nominal number of execution seats configured for each priority level + - `apiserver_flowcontrol_lower_limit_seats`: Configured lower bound on number of execution seats available to each priority level + - `apiserver_flowcontrol_upper_limit_seats`: Configured upper bound on number of execution seats available to each priority level + - `apiserver_flowcontrol_demand_seats`: Observations, at the end of every nanosecond, of (the number of seats each priority level could use) / (nominal number of seats for that level) + - `apiserver_flowcontrol_demand_seats_high_watermark`: High watermark, over last adjustment period, of demand_seats + - `apiserver_flowcontrol_demand_seats_average`: Time-weighted average, over last adjustment period, of demand_seats + - `apiserver_flowcontrol_demand_seats_stdev`: Time-weighted standard deviation, over last adjustment period, of demand_seats + - `apiserver_flowcontrol_demand_seats_smoothed`: Smoothed seat demands + - `apiserver_flowcontrol_target_seats`: Seat allocation targets + - `apiserver_flowcontrol_seat_fair_frac`: Fair fraction of server's concurrency to allocate to each priority level that can use it + - `apiserver_flowcontrol_current_limit_seats`: current derived number of execution seats available to each priority level + The possibility of borrowing means that the old metric `apiserver_flowcontrol_request_concurrency_limit` can no longer mean both the configured concurrency limit and the enforced concurrency limit. Henceforth it means the configured concurrency limit.' diff --git a/releases/release-1.26/release-notes/maps/pr-113491-map.yaml b/releases/release-1.26/release-notes/maps/pr-113491-map.yaml index b221dbf8c21..6502d389fc3 100644 --- a/releases/release-1.26/release-notes/maps/pr-113491-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113491-map.yaml @@ -1,5 +1,5 @@ -pr: 113491 -releasenote: - text: | - 'Pod Security admission: the pod-security `warn` level will now default to - the `enforce` level.' +pr: 113491 +releasenote: + text: | + 'Pod Security admission: the pod-security `warn` level will now default to + the `enforce` level.' diff --git a/releases/release-1.26/release-notes/maps/pr-113496-map.yaml b/releases/release-1.26/release-notes/maps/pr-113496-map.yaml index 06ff5e5927a..612ff6a01cf 100644 --- a/releases/release-1.26/release-notes/maps/pr-113496-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113496-map.yaml @@ -1,3 +1,3 @@ -pr: 113496 -releasenote: - text: Graduated `ServiceInternalTrafficPolicy` feature to GA. +pr: 113496 +releasenote: + text: Graduated `ServiceInternalTrafficPolicy` feature to GA. diff --git a/releases/release-1.26/release-notes/maps/pr-113500-map.yaml b/releases/release-1.26/release-notes/maps/pr-113500-map.yaml index 1a0d2053d26..5655c731c70 100644 --- a/releases/release-1.26/release-notes/maps/pr-113500-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113500-map.yaml @@ -1,4 +1,4 @@ -pr: 113500 -releasenote: - text: | - '`NodeInclusionPolicy` in `podTopologySpread` plugin is now enabled by default.' +pr: 113500 +releasenote: + text: | + '`NodeInclusionPolicy` in `podTopologySpread` plugin is now enabled by default.' diff --git a/releases/release-1.26/release-notes/maps/pr-113501-map.yaml b/releases/release-1.26/release-notes/maps/pr-113501-map.yaml index 4eeb63d4d50..6649dd674ac 100644 --- a/releases/release-1.26/release-notes/maps/pr-113501-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113501-map.yaml @@ -1,3 +1,3 @@ -pr: 113501 -releasenote: - text: 'kubelet: fixed nil pointer in reflector start for standalone mode.' +pr: 113501 +releasenote: + text: 'kubelet: fixed nil pointer in reflector start for standalone mode.' diff --git a/releases/release-1.26/release-notes/maps/pr-113510-map.yaml b/releases/release-1.26/release-notes/maps/pr-113510-map.yaml index 8f5c7790233..4f5c78b2716 100644 --- a/releases/release-1.26/release-notes/maps/pr-113510-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113510-map.yaml @@ -1,9 +1,9 @@ -pr: 113510 -releasenote: - text: |- - 'Graduated `JobTrackingWithFinalizers` to stable. - Jobs created before the feature was enabled are still tracked without finalizers. - Jobs tracked with finalizers have the annotation batch.kubernetes.io/job-tracking. - If the annotation is present and the user attempts to remove it, the control plane adds it back. - The annotation `batch.kubernetes.io/job-tracking` is now deprecated. - The control plane will ignore it and stop adding it for new Jobs in v1.27.' +pr: 113510 +releasenote: + text: |- + 'Graduated `JobTrackingWithFinalizers` to stable. + Jobs created before the feature was enabled are still tracked without finalizers. + Jobs tracked with finalizers have the annotation batch.kubernetes.io/job-tracking. + If the annotation is present and the user attempts to remove it, the control plane adds it back. + The annotation `batch.kubernetes.io/job-tracking` is now deprecated. + The control plane will ignore it and stop adding it for new Jobs in v1.27.' diff --git a/releases/release-1.26/release-notes/maps/pr-113511-map.yaml b/releases/release-1.26/release-notes/maps/pr-113511-map.yaml index 44a27cb52d5..389c37b0ccd 100644 --- a/releases/release-1.26/release-notes/maps/pr-113511-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113511-map.yaml @@ -1,4 +1,4 @@ -pr: 113511 -releasenote: - text: | - '`NodeOutOfServiceVolumeDetach` is now beta.' +pr: 113511 +releasenote: + text: | + '`NodeOutOfServiceVolumeDetach` is now beta.' diff --git a/releases/release-1.26/release-notes/maps/pr-113521-map.yaml b/releases/release-1.26/release-notes/maps/pr-113521-map.yaml index 420d57efcbd..4950865ea67 100644 --- a/releases/release-1.26/release-notes/maps/pr-113521-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113521-map.yaml @@ -1,3 +1,3 @@ -pr: 113521 -releasenote: - text: Resolved an issue that caused winkernel proxier to treat stale VIPs as valid. +pr: 113521 +releasenote: + text: Resolved an issue that caused winkernel proxier to treat stale VIPs as valid. diff --git a/releases/release-1.26/release-notes/maps/pr-113529-map.yaml b/releases/release-1.26/release-notes/maps/pr-113529-map.yaml index bd57ad1e22f..fcc4d85ef05 100644 --- a/releases/release-1.26/release-notes/maps/pr-113529-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113529-map.yaml @@ -1,7 +1,7 @@ -pr: 113529 -releasenote: - text: A new API server flag `--encryption-provider-config-automatic-reload` was - added to control when the encryption config should be automatically reloaded without - needing to restart the server. All KMS plugins are now merged into a single healthz - check at `/healthz/kms-providers` when reload is enabled, or when only KMS v2 - plugins are used. +pr: 113529 +releasenote: + text: A new API server flag `--encryption-provider-config-automatic-reload` was + added to control when the encryption config should be automatically reloaded without + needing to restart the server. All KMS plugins are now merged into a single healthz + check at `/healthz/kms-providers` when reload is enabled, or when only KMS v2 + plugins are used. diff --git a/releases/release-1.26/release-notes/maps/pr-113544-map.yaml b/releases/release-1.26/release-notes/maps/pr-113544-map.yaml index be78d682849..52c0e3c67d5 100644 --- a/releases/release-1.26/release-notes/maps/pr-113544-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113544-map.yaml @@ -1,3 +1,3 @@ -pr: 113544 -releasenote: - text: Added publishing events when enabling/disabling `TopologyAwareHints`. +pr: 113544 +releasenote: + text: Added publishing events when enabling/disabling `TopologyAwareHints`. diff --git a/releases/release-1.26/release-notes/maps/pr-113550-map.yaml b/releases/release-1.26/release-notes/maps/pr-113550-map.yaml index cdbea8018f0..4e74a045916 100644 --- a/releases/release-1.26/release-notes/maps/pr-113550-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113550-map.yaml @@ -1,3 +1,3 @@ -pr: 113550 -releasenote: - text: Kubernetes is now built with Go `1.19.3`. +pr: 113550 +releasenote: + text: Kubernetes is now built with Go `1.19.3`. diff --git a/releases/release-1.26/release-notes/maps/pr-113580-map.yaml b/releases/release-1.26/release-notes/maps/pr-113580-map.yaml index 48a5e46eec6..1d1f1205f5c 100644 --- a/releases/release-1.26/release-notes/maps/pr-113580-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113580-map.yaml @@ -1,4 +1,4 @@ -pr: 113580 -releasenote: - text: Fixed that disruption controller used to change the status of a stale disruption - condition after 2 min when the `PodDisruptionConditions` feature gate is enabled. +pr: 113580 +releasenote: + text: Fixed that disruption controller used to change the status of a stale disruption + condition after 2 min when the `PodDisruptionConditions` feature gate is enabled. diff --git a/releases/release-1.26/release-notes/maps/pr-113596-map.yaml b/releases/release-1.26/release-notes/maps/pr-113596-map.yaml index f55ded69050..46a513f717e 100644 --- a/releases/release-1.26/release-notes/maps/pr-113596-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113596-map.yaml @@ -1,5 +1,5 @@ -pr: 113596 -releasenote: - text: Added reconstruction of SELinux mount context after kubelet restart. Feature - `SELinuxMountReadWriteOncePod` is now fully implemented and kubelet does not lose - its cache of SELinux contexts after kubelet process restart. +pr: 113596 +releasenote: + text: Added reconstruction of SELinux mount context after kubelet restart. Feature + `SELinuxMountReadWriteOncePod` is now fully implemented and kubelet does not lose + its cache of SELinux contexts after kubelet process restart. diff --git a/releases/release-1.26/release-notes/maps/pr-113609-map.yaml b/releases/release-1.26/release-notes/maps/pr-113609-map.yaml index 8bda7fc9d89..8deee2e4f17 100644 --- a/releases/release-1.26/release-notes/maps/pr-113609-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113609-map.yaml @@ -1,4 +1,4 @@ -pr: 113609 -releasenote: - text: Added alpha support for returning container and pod metrics from CRI, instead - of cAdvsior. +pr: 113609 +releasenote: + text: Added alpha support for returning container and pod metrics from CRI, instead + of cAdvsior. diff --git a/releases/release-1.26/release-notes/maps/pr-113629-map.yaml b/releases/release-1.26/release-notes/maps/pr-113629-map.yaml index ea377121758..cd952e3e4ca 100644 --- a/releases/release-1.26/release-notes/maps/pr-113629-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113629-map.yaml @@ -1,7 +1,7 @@ -pr: 113629 -releasenote: - text: | - 'Promoted the `APIServerIdentity` feature to Beta. By default, each `kube-apiserver` - will now create a Lease in the `kube-system` namespace. These lease objects can - be used to identify the number of active API servers in the cluster, and may also - be used for future features such as the Storage Version API.' +pr: 113629 +releasenote: + text: | + 'Promoted the `APIServerIdentity` feature to Beta. By default, each `kube-apiserver` + will now create a Lease in the `kube-system` namespace. These lease objects can + be used to identify the number of active API servers in the cluster, and may also + be used for future features such as the Storage Version API.' diff --git a/releases/release-1.26/release-notes/maps/pr-113636-map.yaml b/releases/release-1.26/release-notes/maps/pr-113636-map.yaml index 9b94de4ca16..616c8099f2d 100644 --- a/releases/release-1.26/release-notes/maps/pr-113636-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113636-map.yaml @@ -1,3 +1,3 @@ -pr: 113636 -releasenote: - text: kubectl shell completions for the bash shell now include descriptions. +pr: 113636 +releasenote: + text: kubectl shell completions for the bash shell now include descriptions. diff --git a/releases/release-1.26/release-notes/maps/pr-113697-map.yaml b/releases/release-1.26/release-notes/maps/pr-113697-map.yaml index 62d9d8481bb..c5387295a02 100644 --- a/releases/release-1.26/release-notes/maps/pr-113697-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113697-map.yaml @@ -1,6 +1,6 @@ -pr: 113697 -releasenote: - text: 'KMS: added validation for duplicate kms config name when auto reload is enabled. - If you enabled automatic reload of encryption configuration with API server flag - `--encryption-provider-config-automatic-reload`, ensure all the KMS provider names - (v1 and v2) in the encryption configuration are unique.' +pr: 113697 +releasenote: + text: 'KMS: added validation for duplicate kms config name when auto reload is enabled. + If you enabled automatic reload of encryption configuration with API server flag + `--encryption-provider-config-automatic-reload`, ensure all the KMS provider names + (v1 and v2) in the encryption configuration are unique.' diff --git a/releases/release-1.26/release-notes/maps/pr-113699-map.yaml b/releases/release-1.26/release-notes/maps/pr-113699-map.yaml index 1850f96aec5..4194a3dd16e 100644 --- a/releases/release-1.26/release-notes/maps/pr-113699-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113699-map.yaml @@ -1,7 +1,7 @@ -pr: 113699 -releasenote: - text: | - '`metav1.LabelSelectors` specified in API objects are now validated to ensure - they do not contain invalid label values that will error at time of use. Existing - invalid objects can be updated, but new objects are required to contain valid - label selectors.' +pr: 113699 +releasenote: + text: | + '`metav1.LabelSelectors` specified in API objects are now validated to ensure + they do not contain invalid label values that will error at time of use. Existing + invalid objects can be updated, but new objects are required to contain valid + label selectors.' diff --git a/releases/release-1.26/release-notes/maps/pr-113710-map.yaml b/releases/release-1.26/release-notes/maps/pr-113710-map.yaml index 3c1313d58da..ff8bfec2ee3 100644 --- a/releases/release-1.26/release-notes/maps/pr-113710-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113710-map.yaml @@ -1,4 +1,4 @@ -pr: 113710 -releasenote: - text: CLI flag `pod-eviction-timeout` is deprecated and will be removed together - with `enable-taint-manager` in `v1.27`. +pr: 113710 +releasenote: + text: CLI flag `pod-eviction-timeout` is deprecated and will be removed together + with `enable-taint-manager` in `v1.27`. diff --git a/releases/release-1.26/release-notes/maps/pr-113711-map.yaml b/releases/release-1.26/release-notes/maps/pr-113711-map.yaml index 1ad2dfbfa01..6a8fdc8febe 100644 --- a/releases/release-1.26/release-notes/maps/pr-113711-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113711-map.yaml @@ -1,3 +1,3 @@ -pr: 113711 -releasenote: - text: 'apiserver: used the correct error when logging errors updating managedFields.' +pr: 113711 +releasenote: + text: 'apiserver: used the correct error when logging errors updating managedFields.' diff --git a/releases/release-1.26/release-notes/maps/pr-113719-map.yaml b/releases/release-1.26/release-notes/maps/pr-113719-map.yaml index 7a47de468fc..cb0ee52fcd5 100644 --- a/releases/release-1.26/release-notes/maps/pr-113719-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113719-map.yaml @@ -1,3 +1,3 @@ -pr: 113719 -releasenote: - text: bumped `runc` to `v1.1.4`. +pr: 113719 +releasenote: + text: bumped `runc` to `v1.1.4`. diff --git a/releases/release-1.26/release-notes/maps/pr-113735-map.yaml b/releases/release-1.26/release-notes/maps/pr-113735-map.yaml index 7abc0d46126..79ad623e182 100644 --- a/releases/release-1.26/release-notes/maps/pr-113735-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113735-map.yaml @@ -1,3 +1,3 @@ -pr: 113735 -releasenote: - text: Renamed the feature gate for CEL in Admission Control to `ValidatingAdmissionPolicy`. +pr: 113735 +releasenote: + text: Renamed the feature gate for CEL in Admission Control to `ValidatingAdmissionPolicy`. diff --git a/releases/release-1.26/release-notes/maps/pr-113754-map.yaml b/releases/release-1.26/release-notes/maps/pr-113754-map.yaml index 924f5d36a9d..d83a57379f8 100644 --- a/releases/release-1.26/release-notes/maps/pr-113754-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113754-map.yaml @@ -1,5 +1,5 @@ -pr: 113754 -releasenote: - text: | - '`kubelet_kubelet_credential_provider_plugin_duration` was renamed to `kubelet_credential_provider_plugin_duration` - and `kubelet_kubelet_credential_provider_plugin_errors` was renamed to `kubelet_credential_provider_plugin_errors`.' +pr: 113754 +releasenote: + text: | + '`kubelet_kubelet_credential_provider_plugin_duration` was renamed to `kubelet_credential_provider_plugin_duration` + and `kubelet_kubelet_credential_provider_plugin_errors` was renamed to `kubelet_credential_provider_plugin_errors`.' diff --git a/releases/release-1.26/release-notes/maps/pr-113769-map.yaml b/releases/release-1.26/release-notes/maps/pr-113769-map.yaml index 438f170d913..85a2eba3078 100644 --- a/releases/release-1.26/release-notes/maps/pr-113769-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113769-map.yaml @@ -1,3 +1,3 @@ -pr: 113769 -releasenote: - text: Updated `cAdvisor` to `v0.46.0`. +pr: 113769 +releasenote: + text: Updated `cAdvisor` to `v0.46.0`. diff --git a/releases/release-1.26/release-notes/maps/pr-113819-map.yaml b/releases/release-1.26/release-notes/maps/pr-113819-map.yaml index cd3157403cd..fdf9a0bec0a 100644 --- a/releases/release-1.26/release-notes/maps/pr-113819-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113819-map.yaml @@ -1,3 +1,3 @@ -pr: 113819 -releasenote: - text: Promoted `kubectl alpha events` to `kubectl events`. +pr: 113819 +releasenote: + text: Promoted `kubectl alpha events` to `kubectl events`. diff --git a/releases/release-1.26/release-notes/maps/pr-113856-map.yaml b/releases/release-1.26/release-notes/maps/pr-113856-map.yaml index df459086bae..c8363287d59 100644 --- a/releases/release-1.26/release-notes/maps/pr-113856-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-113856-map.yaml @@ -1,4 +1,4 @@ -pr: 113856 -releasenote: - text: 'Known issue: Job field `.spec.podFailurePolicy.rules[*].onExitCode` might - be ignored if the Pod is deleted before it terminates.' +pr: 113856 +releasenote: + text: 'Known issue: Job field `.spec.podFailurePolicy.rules[*].onExitCode` might + be ignored if the Pod is deleted before it terminates.' diff --git a/releases/release-1.26/release-notes/maps/pr-67782-map.yaml b/releases/release-1.26/release-notes/maps/pr-67782-map.yaml index 32629d5c35f..3c171e673ad 100644 --- a/releases/release-1.26/release-notes/maps/pr-67782-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-67782-map.yaml @@ -1,4 +1,4 @@ -pr: 67782 -releasenote: - text: The in-tree cloud provider for OpenStack (and the cinder volume provider) - has been removed. Please use the external cloud provider and csi driver from [cloud-provider-openstack](https://github.com/kubernetes/cloud-provider-openstack) instead. +pr: 67782 +releasenote: + text: The in-tree cloud provider for OpenStack (and the cinder volume provider) + has been removed. Please use the external cloud provider and csi driver from [cloud-provider-openstack](https://github.com/kubernetes/cloud-provider-openstack) instead. diff --git a/releases/release-1.26/release-notes/maps/pr-86139-map.yaml b/releases/release-1.26/release-notes/maps/pr-86139-map.yaml index 95a2306f3b7..ca9f456fe7d 100644 --- a/releases/release-1.26/release-notes/maps/pr-86139-map.yaml +++ b/releases/release-1.26/release-notes/maps/pr-86139-map.yaml @@ -1,14 +1,14 @@ -pr: 86139 -releasenote: - text: | - 'Container `preStop` and `postStart` lifecycle handlers using `httpGet` now - honor the specified `scheme` and `headers` fields. This enables setting custom - headers and changing the scheme to `HTTPS`, consistent with container - startup/readiness/liveness probe capabilities. Lifecycle handlers configured - with `scheme: HTTPS` that encounter errors indicating the endpoint is actually - using HTTP fall back to making the request over HTTP for compatibility with - previous releases. When this happens, a `LifecycleHTTPFallback` event is recorded - in the namespace of the pod and a `kubelet_lifecycle_handler_http_fallbacks_total` - metric in the kubelet is incremented. Cluster administrators can opt out of the - expanded lifecycle handler capabilities by setting - `--feature-gates=ConsistentHTTPGetHandlers=false` in `kubelet`.' +pr: 86139 +releasenote: + text: | + 'Container `preStop` and `postStart` lifecycle handlers using `httpGet` now + honor the specified `scheme` and `headers` fields. This enables setting custom + headers and changing the scheme to `HTTPS`, consistent with container + startup/readiness/liveness probe capabilities. Lifecycle handlers configured + with `scheme: HTTPS` that encounter errors indicating the endpoint is actually + using HTTP fall back to making the request over HTTP for compatibility with + previous releases. When this happens, a `LifecycleHTTPFallback` event is recorded + in the namespace of the pod and a `kubelet_lifecycle_handler_http_fallbacks_total` + metric in the kubelet is incremented. Cluster administrators can opt out of the + expanded lifecycle handler capabilities by setting + `--feature-gates=ConsistentHTTPGetHandlers=false` in `kubelet`.' diff --git a/releases/release-1.26/release-notes/release-notes-draft.json b/releases/release-1.26/release-notes/release-notes-draft.json index e9bff7e0061..57291c3574b 100644 --- a/releases/release-1.26/release-notes/release-notes-draft.json +++ b/releases/release-1.26/release-notes/release-notes-draft.json @@ -1,5181 +1,5181 @@ -{ - "103177": { - "commit": "3cf75a2f760b8093f7c97f26b4b2b059f3777bec", - "text": "Added a method `StreamWithContext` to `remotecommand.Executor` to support cancelable SPDY executor stream.", - "markdown": "Added a method `StreamWithContext` to `remotecommand.Executor` to support cancelable SPDY executor stream. ([#103177](https://github.com/kubernetes/kubernetes/pull/103177), [@arkbriar](https://github.com/arkbriar))", - "author": "arkbriar", - "author_url": "https://github.com/arkbriar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/103177", - "pr_number": 103177, - "areas": [ - "test", - "kubelet", - "kubectl", - "e2e-test-framework" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "105867": { - "commit": "797536fc76854a856bc1d1156c2355705af461ca", - "text": "Shell completion now shows plugin names when appropriate. Furthermore, shell completion will work for plugins that provide such support.", - "markdown": "Shell completion now shows plugin names when appropriate. Furthermore, shell completion will work for plugins that provide such support. ([#105867](https://github.com/kubernetes/kubernetes/pull/105867), [@marckhouzam](https://github.com/marckhouzam))", - "author": "marckhouzam", - "author_url": "https://github.com/marckhouzam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/105867", - "pr_number": 105867, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "107896": { - "commit": "00532e305a3958ec08ce4453d9f234c4a0fbbbf8", - "text": "A new `pod_status_sync_duration_seconds` histogram is reported at alpha metrics stability that estimates how long the Kubelet takes to write a pod status change once it is detected.", - "markdown": "A new `pod_status_sync_duration_seconds` histogram is reported at alpha metrics stability that estimates how long the Kubelet takes to write a pod status change once it is detected. ([#107896](https://github.com/kubernetes/kubernetes/pull/107896), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps, Architecture, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling, Storage and Testing]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107896", - "pr_number": 107896, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "conformance", - "code-generation", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "scheduling", - "storage", - "node", - "cluster-lifecycle", - "apps", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "108250": { - "commit": "d86c013b0da0db4c0790270c4739c79d01ce1593", - "text": "Added a `kube-proxy` flag (`--iptables-localhost-nodeports`, default true) to allow disabling `NodePort` services on loopback addresses. Note: this only applies to iptables mode and ipv4.", - "markdown": "Added a `kube-proxy` flag (`--iptables-localhost-nodeports`, default true) to allow disabling `NodePort` services on loopback addresses. Note: this only applies to iptables mode and ipv4. ([#108250](https://github.com/kubernetes/kubernetes/pull/108250), [@cyclinder](https://github.com/cyclinder))", - "author": "cyclinder", - "author_url": "https://github.com/cyclinder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108250", - "pr_number": 108250, - "areas": [ - "test", - "kubelet", - "cloudprovider", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "scalability", - "storage", - "node", - "api-machinery", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108501": { - "commit": "85643c0f93064ad9f9bcd9303972d8308734d269", - "text": "Enabled `kube-controller-manager` to support '--concurrent-horizontal-pod-autoscaler-syncs' flag to set the number of horizontal pod autoscaler controller workers.", - "markdown": "Enabled `kube-controller-manager` to support '--concurrent-horizontal-pod-autoscaler-syncs' flag to set the number of horizontal pod autoscaler controller workers. ([#108501](https://github.com/kubernetes/kubernetes/pull/108501), [@zroubalik](https://github.com/zroubalik))", - "author": "zroubalik", - "author_url": "https://github.com/zroubalik", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108501", - "pr_number": 108501, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "autoscaling", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "108832": { - "commit": "17dd76f5d49848e0bcb057035cda7946b578584f", - "text": "Fixed relative CPU priority for pods where containers explicitly request zero cpu by giving the lowest priority instead of falling back to the cpu limit to avoid possible cpu starvation of other pods.", - "markdown": "Fixed relative CPU priority for pods where containers explicitly request zero cpu by giving the lowest priority instead of falling back to the cpu limit to avoid possible cpu starvation of other pods. ([#108832](https://github.com/kubernetes/kubernetes/pull/108832), [@waynepeking348](https://github.com/waynepeking348))", - "author": "waynepeking348", - "author_url": "https://github.com/waynepeking348", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108832", - "pr_number": 108832, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "108858": { - "commit": "c5242edd929fc40f97d3f6ee3e8874ac1b297087", - "text": "When the alpha `LegacyServiceAccountTokenTracking` feature gate is enabled, secret-based service account tokens will have a `kubernetes.io/legacy-token-last-used` applied to them containing the date they were last used.", - "markdown": "When the alpha `LegacyServiceAccountTokenTracking` feature gate is enabled, secret-based service account tokens will have a `kubernetes.io/legacy-token-last-used` applied to them containing the date they were last used. ([#108858](https://github.com/kubernetes/kubernetes/pull/108858), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth and Testing]", - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108858", - "pr_number": 108858, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "109189": { - "commit": "e721272d10dd6c4d85ff613182ba0eaddcec9272", - "text": "`kubectl config view` now automatically redacts any secret fields marked with a `datapolicy` tag.", - "markdown": "`kubectl config view` now automatically redacts any secret fields marked with a `datapolicy` tag. ([#109189](https://github.com/kubernetes/kubernetes/pull/109189), [@mpuckett159](https://github.com/mpuckett159))", - "author": "mpuckett159", - "author_url": "https://github.com/mpuckett159", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109189", - "pr_number": 109189, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "109505": { - "commit": "d96e052d981537ae9d2376ee6ac73f3ae6817f69", - "text": "Removed raising an error when setting an annotation with the same value, just ignore it.", - "markdown": "Removed raising an error when setting an annotation with the same value, just ignore it. ([#109505](https://github.com/kubernetes/kubernetes/pull/109505), [@zigarn](https://github.com/zigarn))", - "author": "zigarn", - "author_url": "https://github.com/zigarn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109505", - "pr_number": 109505, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "109525": { - "commit": "526650fc137b2e68267182b1b5116aa566be51e5", - "text": "`kubectl wait` command with `jsonpath` flag will wait for target path until timeout.\n", - "markdown": "`kubectl wait` command with `jsonpath` flag will wait for target path until timeout.\n ([#109525](https://github.com/kubernetes/kubernetes/pull/109525), [@jonyhy96](https://github.com/jonyhy96))", - "author": "jonyhy96", - "author_url": "https://github.com/jonyhy96", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109525", - "pr_number": 109525, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "110268": { - "commit": "3edbebe3488ccb085826d7a3a6d225101ff11ee6", - "text": "'The iptables kube-proxy backend now process service/endpoint changes\nmore efficiently in very large clusters.'", - "markdown": "'The iptables kube-proxy backend now process service/endpoint changes\n more efficiently in very large clusters.' ([#110268](https://github.com/kubernetes/kubernetes/pull/110268), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110268", - "pr_number": 110268, - "areas": [ - "ipvs" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "110498": { - "commit": "cf4d2cc545f62fcfd748a084dff7744f9402bf57", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#110498](https://github.com/kubernetes/kubernetes/pull/110498), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Release]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110498", - "pr_number": 110498, - "areas": [ - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "release" - ], - "do_not_publish": true - }, - "110559": { - "commit": "962235c86a1a934fc759be1d3fd3a764fa2efa18", - "text": "If more than one StorageClass is designated as default (via the \"storageclass.kubernetes.io/is-default-class\" annotation), choose the newest one instead of throwing an error.'", - "markdown": "If more than one StorageClass is designated as default (via the \"storageclass.kubernetes.io/is-default-class\" annotation), choose the newest one instead of throwing an error.' ([#110559](https://github.com/kubernetes/kubernetes/pull/110559), [@danishprakash](https://github.com/danishprakash))", - "author": "danishprakash", - "author_url": "https://github.com/danishprakash", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110559", - "pr_number": 110559, - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "apps" - ], - "feature": true, - "duplicate": true - }, - "110618": { - "commit": "4086b45af3761d59cb82af6ee427d2d6557c1cbc", - "text": "Dropped support for the Container Runtime Interface (CRI) version `v1alpha2`, which means that container runtimes just have to implement `v1`.", - "markdown": "Dropped support for the Container Runtime Interface (CRI) version `v1alpha2`, which means that container runtimes just have to implement `v1`. ([#110618](https://github.com/kubernetes/kubernetes/pull/110618), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110618", - "pr_number": 110618, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "security" - ], - "duplicate": true - }, - "110695": { - "commit": "5ade6c833fdde89618791b130bd2e9cad9519842", - "text": "NONE", - "markdown": "NONE ([#110695](https://github.com/kubernetes/kubernetes/pull/110695), [@lokichoggio](https://github.com/lokichoggio)) [SIG Apps and Autoscaling]", - "author": "lokichoggio", - "author_url": "https://github.com/lokichoggio", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110695", - "pr_number": 110695, - "kinds": [ - "cleanup" - ], - "sigs": [ - "autoscaling", - "apps" - ], - "duplicate": true, - "do_not_publish": true - }, - "110907": { - "commit": "20a9f7786aa4ee0b6e1619c7974ea4562d2b2500", - "text": "'`kubectl apply`: Added a warning that \"`kubectl apply` will no longer prune\nnon-namespaced resources by default when used with the --namespace flag in\na future release\".'\n", - "markdown": "'`kubectl apply`: Added a warning that \"`kubectl apply` will no longer prune\n non-namespaced resources by default when used with the --namespace flag in\n a future release\".'\n ([#110907](https://github.com/kubernetes/kubernetes/pull/110907), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110907", - "pr_number": 110907, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "110972": { - "commit": "891cbede96ab4b64c48edf25f8bbd331d8731622", - "text": "Kubeadm will cleanup the stale data on best effort basis. Stale data will be removed when each reset phase are executed, default etcd data directory will be cleanup when the `remove-etcd-member` phase are executed.", - "markdown": "Kubeadm will cleanup the stale data on best effort basis. Stale data will be removed when each reset phase are executed, default etcd data directory will be cleanup when the `remove-etcd-member` phase are executed. ([#110972](https://github.com/kubernetes/kubernetes/pull/110972), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle]", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110972", - "pr_number": 110972, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "111023": { - "commit": "d1c0171aed848900daa07212370c991c19c318b1", - "text": "'Added a `ResourceClaim` API (in the `resource.k8s.io/v1alpha1` API group and\nbehind the `DynamicResourceAllocation` feature gate).\nThe new API is now more flexible than the existing Device Plugins feature of Kubernetes because it\nallows Pods to request (claim) special kinds of resources, which can be available at node level, cluster\nlevel, or following any other model you implement.'", - "markdown": "'Added a `ResourceClaim` API (in the `resource.k8s.io/v1alpha1` API group and\n behind the `DynamicResourceAllocation` feature gate).\n The new API is now more flexible than the existing Device Plugins feature of Kubernetes because it\n allows Pods to request (claim) special kinds of resources, which can be available at node level, cluster\n level, or following any other model you implement.' ([#111023](https://github.com/kubernetes/kubernetes/pull/111023), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111023", - "pr_number": 111023, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "code-generation", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "111093": { - "commit": "8674ce53ff15e1dd9a375c182029cca8ecdb4a37", - "text": "Fixed bug in `kubectl rollout history` where only the latest revision was displayed when a specific revision was requested and an output format was specified.", - "markdown": "Fixed bug in `kubectl rollout history` where only the latest revision was displayed when a specific revision was requested and an output format was specified. ([#111093](https://github.com/kubernetes/kubernetes/pull/111093), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111093", - "pr_number": 111093, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "111096": { - "commit": "afbce897a9c7956fd3219b64abacf46fa5d3e6aa", - "text": "Added categories column to the `kubectl api-resources` command's wide output (`-o wide`).\nAdded `--categories` flag to the `kubectl api-resources` command, which can be used to filter the output to show only resources belonging to one or more categories.", - "markdown": "Added categories column to the `kubectl api-resources` command's wide output (`-o wide`).\n Added `--categories` flag to the `kubectl api-resources` command, which can be used to filter the output to show only resources belonging to one or more categories. ([#111096](https://github.com/kubernetes/kubernetes/pull/111096), [@brianpursley](https://github.com/brianpursley)) [SIG CLI]", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111096", - "pr_number": 111096, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "duplicate_kind": true - }, - "111277": { - "commit": "2b2be7fa6b69c7591a31475fc4fb1dcff362a128", - "text": "kubeadm: when a sub command is needed but not provided for a kubeadm command, print a help screen instead of showing a short message.", - "markdown": "Kubeadm: when a sub command is needed but not provided for a kubeadm command, print a help screen instead of showing a short message. ([#111277](https://github.com/kubernetes/kubernetes/pull/111277), [@chymy](https://github.com/chymy))", - "author": "chymy", - "author_url": "https://github.com/chymy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111277", - "pr_number": 111277, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "111333": { - "commit": "4e8b11d4411cefbe1a32cf9e54810d9e0bd7378e", - "text": "Add auth API to get self subject attributes (new selfsubjectreviews API is added). \nThe corresponding command for kubctl is provided - `kubectl auth whoami`.", - "markdown": "Add auth API to get self subject attributes (new selfsubjectreviews API is added). \n The corresponding command for kubctl is provided - `kubectl auth whoami`. ([#111333](https://github.com/kubernetes/kubernetes/pull/111333), [@nabokihms](https://github.com/nabokihms)) [SIG API Machinery, Auth, CLI and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3325", - "type": "KEP" - }, - { - "description": "[Docs]", - "url": "https://github.com/kubernetes/website/pull/35385", - "type": "external" - }, - { - "description": "[e2e]", - "url": "https://github.com/kubernetes/test-infra/pull/26999", - "type": "external" - } - ], - "author": "nabokihms", - "author_url": "https://github.com/nabokihms", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111333", - "pr_number": 111333, - "areas": [ - "test", - "apiserver", - "kubectl", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "111344": { - "commit": "5cb9622347d73a5d9715c9423aaf94cc0e4a5a40", - "text": "Updated `kube-proxy` to restart in case it detects that the Node assigned `pod.Spec.PodCIDRs` have changed.", - "markdown": "Updated `kube-proxy` to restart in case it detects that the Node assigned `pod.Spec.PodCIDRs` have changed. ([#111344](https://github.com/kubernetes/kubernetes/pull/111344), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111344", - "pr_number": 111344, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "111379": { - "commit": "9efbe6eb9b648bfdf95ccf228175ff57f7ba8f43", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#111379](https://github.com/kubernetes/kubernetes/pull/111379), [@muyangren2](https://github.com/muyangren2)) [SIG Network]", - "author": "muyangren2", - "author_url": "https://github.com/muyangren2", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111379", - "pr_number": 111379, - "areas": [ - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "111381": { - "commit": "178f246bbc9e4b6bd56ef0605e94bb51dbe6d27a", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#111381](https://github.com/kubernetes/kubernetes/pull/111381), [@muyangren2](https://github.com/muyangren2)) [SIG Storage]", - "author": "muyangren2", - "author_url": "https://github.com/muyangren2", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111381", - "pr_number": 111381, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ], - "do_not_publish": true - }, - "111384": { - "commit": "114594e1d265a90820683acd2ed2783513aac4c3", - "text": "Added support for Evented PLEG feature gate.", - "markdown": "Added support for Evented PLEG feature gate. ([#111384](https://github.com/kubernetes/kubernetes/pull/111384), [@harche](https://github.com/harche))", - "author": "harche", - "author_url": "https://github.com/harche", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111384", - "pr_number": 111384, - "areas": [ - "test", - "kubelet", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "111420": { - "commit": "b077a9ad87f7219782f12f6247447dad1197be33", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#111420](https://github.com/kubernetes/kubernetes/pull/111420), [@muyangren2](https://github.com/muyangren2)) [SIG Cloud Provider]", - "author": "muyangren2", - "author_url": "https://github.com/muyangren2", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111420", - "pr_number": 111420, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "do_not_publish": true - }, - "111458": { - "commit": "8206c9d458e321d7ad22ea9fc2e21a890790fc09", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#111458](https://github.com/kubernetes/kubernetes/pull/111458), [@muyangren2](https://github.com/muyangren2)) [SIG Cluster Lifecycle]", - "author": "muyangren2", - "author_url": "https://github.com/muyangren2", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111458", - "pr_number": 111458, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "111512": { - "commit": "065a761547fcb6cb4944abac1541c8a0b76a5fe1", - "text": "kubeadm: added `show-join-command` as a new separate phase at the end of `kubeadm init`. You can skip printing the join information by using `kubeadm init --skip-phases=show-join-command`. Executing only this phase on demand will throw an error because the phase needs dependencies such as bootstrap tokens to be pre-populated.", - "markdown": "Kubeadm: added `show-join-command` as a new separate phase at the end of `kubeadm init`. You can skip printing the join information by using `kubeadm init --skip-phases=show-join-command`. Executing only this phase on demand will throw an error because the phase needs dependencies such as bootstrap tokens to be pre-populated. ([#111512](https://github.com/kubernetes/kubernetes/pull/111512), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111512", - "pr_number": 111512, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "111520": { - "commit": "08aac4f0acbfb7ca2da2ced281fe694ddd29a4d7", - "text": "[kubelet] Change default `cpuCFSQuotaPeriod` value with enabled `cpuCFSQuotaPeriod` flag from 100ms to 100µs to match the Linux CFS and k8s defaults. `cpuCFSQuotaPeriod` of 100ms now requires `customCPUCFSQuotaPeriod` flag to be set to work.", - "markdown": "[kubelet] Change default `cpuCFSQuotaPeriod` value with enabled `cpuCFSQuotaPeriod` flag from 100ms to 100µs to match the Linux CFS and k8s defaults. `cpuCFSQuotaPeriod` of 100ms now requires `customCPUCFSQuotaPeriod` flag to be set to work. ([#111520](https://github.com/kubernetes/kubernetes/pull/111520), [@paskal](https://github.com/paskal)) [SIG API Machinery and Node]", - "author": "paskal", - "author_url": "https://github.com/paskal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111520", - "pr_number": 111520, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "documentation", - "api-change" - ], - "sigs": [ - "node", - "api-machinery" - ], - "duplicate": true, - "duplicate_kind": true - }, - "111533": { - "commit": "0d7e51b2e806543c245c70829510258c8a907c7c", - "text": "NoneNone", - "markdown": "NoneNone ([#111533](https://github.com/kubernetes/kubernetes/pull/111533), [@zhoumingcheng](https://github.com/zhoumingcheng)) [SIG CLI]", - "author": "zhoumingcheng", - "author_url": "https://github.com/zhoumingcheng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111533", - "pr_number": 111533, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "111554": { - "commit": "2b5475b3fa5fefdb784f9b04bef3fab666ef19d7", - "text": "Clarified the default CFS quota period as being 100µs and not 100ms.", - "markdown": "Clarified the default CFS quota period as being 100µs and not 100ms. ([#111554](https://github.com/kubernetes/kubernetes/pull/111554), [@paskal](https://github.com/paskal)) [SIG Node]", - "author": "paskal", - "author_url": "https://github.com/paskal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111554", - "pr_number": 111554, - "areas": [ - "kubelet" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "node" - ] - }, - "111571": { - "commit": "61a7a805eb392b8b705372ec68eb4b8ceaed96ea", - "text": "Fixed bug where dry run message was not printed when running `kubectl label` with `--dry-run` flag.", - "markdown": "Fixed bug where dry run message was not printed when running `kubectl label` with `--dry-run` flag. ([#111571](https://github.com/kubernetes/kubernetes/pull/111571), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111571", - "pr_number": 111571, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "111616": { - "commit": "6f579d3cebe91825dd7dc4c9f9e1474939735bc9", - "text": "Kubelet external Credential Provider feature is moved to GA. Credential Provider Plugin and Credential Provider Config APIs updated from `v1beta1` to `v1` with no API changes.", - "markdown": "Kubelet external Credential Provider feature is moved to GA. Credential Provider Plugin and Credential Provider Config APIs updated from `v1beta1` to `v1` with no API changes. ([#111616](https://github.com/kubernetes/kubernetes/pull/111616), [@ndixita](https://github.com/ndixita))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2133-kubelet-credential-providers", - "type": "KEP" - } - ], - "author": "ndixita", - "author_url": "https://github.com/ndixita", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111616", - "pr_number": 111616, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "testing" - ], - "duplicate": true - }, - "111708": { - "commit": "f6f44bff9099d8ae8bead38e6ffc1794bded4162", - "text": "release-note", - "markdown": "Release-note ([#111708](https://github.com/kubernetes/kubernetes/pull/111708), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Apps, Instrumentation and Network]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111708", - "pr_number": 111708, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "apps", - "instrumentation" - ], - "duplicate": true - }, - "111726": { - "commit": "15a5136c26928e105e5db041f44451e659a84b3a", - "text": "Scheduler dumper now exposes a summary to indicate the number of pending pods in each internal queue.", - "markdown": "Scheduler dumper now exposes a summary to indicate the number of pending pods in each internal queue. ([#111726](https://github.com/kubernetes/kubernetes/pull/111726), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing]", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111726", - "pr_number": 111726, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true - }, - "111752": { - "commit": "dfd10d3133669d7c30b28edcf1024bafda1df766", - "text": "Reverted regression that prevented `client-go` latency metrics to be reported with a template URL to avoid label cardinality.", - "markdown": "Reverted regression that prevented `client-go` latency metrics to be reported with a template URL to avoid label cardinality. ([#111752](https://github.com/kubernetes/kubernetes/pull/111752), [@aanm](https://github.com/aanm))", - "author": "aanm", - "author_url": "https://github.com/aanm", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111752", - "pr_number": 111752, - "kinds": [ - "bug", - "cleanup", - "api-change", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "111758": { - "commit": "0ac97849851fe140c15d654ccee12c4546f0dcff", - "text": "component-base: make the validation logic about LeaderElectionConfiguration consistent between component-base and client-go", - "markdown": "Component-base: make the validation logic about LeaderElectionConfiguration consistent between component-base and client-go ([#111758](https://github.com/kubernetes/kubernetes/pull/111758), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery and Scheduling]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111758", - "pr_number": 111758, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "scheduling", - "api-machinery" - ], - "duplicate": true, - "duplicate_kind": true - }, - "111783": { - "commit": "17e03f858e399d9c460f44fefab4ddfaa82b63e8", - "text": "kubeadm: tried to load CA cert from external CertificateAuthority file when CertificateAuthorityData is empty for existing kubeconfig.", - "markdown": "Kubeadm: tried to load CA cert from external CertificateAuthority file when CertificateAuthorityData is empty for existing kubeconfig. ([#111783](https://github.com/kubernetes/kubernetes/pull/111783), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111783", - "pr_number": 111783, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "111806": { - "commit": "da112dda68b7b323737742fb24844775a1356722", - "text": "kube-proxy no longer falls back from ipvs mode to iptables mode if you ask it to do ipvs but the system is not correctly configured. Instead, it will just exit with an error.", - "markdown": "Kube-proxy no longer falls back from ipvs mode to iptables mode if you ask it to do ipvs but the system is not correctly configured. Instead, it will just exit with an error. ([#111806](https://github.com/kubernetes/kubernetes/pull/111806), [@danwinship](https://github.com/danwinship)) [SIG Network]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111806", - "pr_number": 111806, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "111807": { - "commit": "2b4e85024cbfacc25df9e62c1190804355c6d8fd", - "text": "Log messages and metrics for the watch cache are now keyed by `\u003cresource\u003e.\u003cgroup\u003e` instead of `go` struct type. This means e.g. that `*v1.Pod` becomes `pods`. Additionally, resources that come from `CustomResourceDefinitions` are displayed as the correct resource and group, instead of `*unstructured.Unstructured`.", - "markdown": "Log messages and metrics for the watch cache are now keyed by `\u003cresource\u003e.\u003cgroup\u003e` instead of `go` struct type. This means e.g. that `*v1.Pod` becomes `pods`. Additionally, resources that come from `CustomResourceDefinitions` are displayed as the correct resource and group, instead of `*unstructured.Unstructured`. ([#111807](https://github.com/kubernetes/kubernetes/pull/111807), [@ncdc](https://github.com/ncdc))", - "author": "ncdc", - "author_url": "https://github.com/ncdc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111807", - "pr_number": 111807, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "111808": { - "commit": "33bf984f590031beb69807e355128235ccb6e5c3", - "text": "The errors in `k8s.io/apimachinery/pkg/api/meta` now support for the `stdlibs` `errors.Is` matching, including when wrapped.", - "markdown": "The errors in `k8s.io/apimachinery/pkg/api/meta` now support for the `stdlibs` `errors.Is` matching, including when wrapped. ([#111808](https://github.com/kubernetes/kubernetes/pull/111808), [@alvaroaleman](https://github.com/alvaroaleman))", - "author": "alvaroaleman", - "author_url": "https://github.com/alvaroaleman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111808", - "pr_number": 111808, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "111809": { - "commit": "626ff5c0c0269dfeb3f0a565237ab57d2ec9619f", - "text": "Scheduler now retries updating a pod's status on `ServiceUnavailable` and `InternalError` errors, in addition to `net.ConnectionRefused` error.", - "markdown": "Scheduler now retries updating a pod's status on `ServiceUnavailable` and `InternalError` errors, in addition to `net.ConnectionRefused` error. ([#111809](https://github.com/kubernetes/kubernetes/pull/111809), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111809", - "pr_number": 111809, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "111866": { - "commit": "dc0dfdd109b4f88495b49d4335e194720021ae3d", - "text": "In 'kube-apiserver`,`x-kubernetes-list-type` validation is now enforced when updating status of custom resources.'", - "markdown": "In 'kube-apiserver`,`x-kubernetes-list-type` validation is now enforced when updating status of custom resources.' ([#111866](https://github.com/kubernetes/kubernetes/pull/111866), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111866", - "pr_number": 111866, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "111879": { - "commit": "886da71e7588c198dcb9a6c7cccfedb478110e57", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#111879](https://github.com/kubernetes/kubernetes/pull/111879), [@sanwishe](https://github.com/sanwishe)) [SIG API Machinery]", - "author": "sanwishe", - "author_url": "https://github.com/sanwishe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111879", - "pr_number": 111879, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "111910": { - "commit": "bf2e850b3a90bc941587a74b53a9dd47aca4fb66", - "text": "Added new Golang runtime-related metrics to Kubernetes components:\n- go_gc_cycles_automatic_gc_cycles_total\n- go_gc_cycles_forced_gc_cycles_total\n- go_gc_cycles_total_gc_cycles_total\n- go_gc_heap_allocs_by_size_bytes\n- go_gc_heap_allocs_bytes_total\n- go_gc_heap_allocs_objects_total\n- go_gc_heap_frees_by_size_bytes\n- go_gc_heap_frees_bytes_total\n- go_gc_heap_frees_objects_total\n- go_gc_heap_goal_bytes\n- go_gc_heap_objects_objects\n- go_gc_heap_tiny_allocs_objects_total\n- go_gc_pauses_seconds\n- go_memory_classes_heap_free_bytes\n- go_memory_classes_heap_objects_bytes\n- go_memory_classes_heap_released_bytes\n- go_memory_classes_heap_stacks_bytes\n- go_memory_classes_heap_unused_bytes\n- go_memory_classes_metadata_mcache_free_bytes\n- go_memory_classes_metadata_mcache_inuse_bytes\n- go_memory_classes_metadata_mspan_free_bytes\n- go_memory_classes_metadata_mspan_inuse_bytes\n- go_memory_classes_metadata_other_bytes\n- go_memory_classes_os_stacks_bytes\n- go_memory_classes_other_bytes\n- go_memory_classes_profiling_buckets_bytes\n- go_memory_classes_total_bytes\n- go_sched_goroutines_goroutines\n- go_sched_latencies_seconds", - "markdown": "Added new Golang runtime-related metrics to Kubernetes components:\n - go_gc_cycles_automatic_gc_cycles_total\n - go_gc_cycles_forced_gc_cycles_total\n - go_gc_cycles_total_gc_cycles_total\n - go_gc_heap_allocs_by_size_bytes\n - go_gc_heap_allocs_bytes_total\n - go_gc_heap_allocs_objects_total\n - go_gc_heap_frees_by_size_bytes\n - go_gc_heap_frees_bytes_total\n - go_gc_heap_frees_objects_total\n - go_gc_heap_goal_bytes\n - go_gc_heap_objects_objects\n - go_gc_heap_tiny_allocs_objects_total\n - go_gc_pauses_seconds\n - go_memory_classes_heap_free_bytes\n - go_memory_classes_heap_objects_bytes\n - go_memory_classes_heap_released_bytes\n - go_memory_classes_heap_stacks_bytes\n - go_memory_classes_heap_unused_bytes\n - go_memory_classes_metadata_mcache_free_bytes\n - go_memory_classes_metadata_mcache_inuse_bytes\n - go_memory_classes_metadata_mspan_free_bytes\n - go_memory_classes_metadata_mspan_inuse_bytes\n - go_memory_classes_metadata_other_bytes\n - go_memory_classes_os_stacks_bytes\n - go_memory_classes_other_bytes\n - go_memory_classes_profiling_buckets_bytes\n - go_memory_classes_total_bytes\n - go_sched_goroutines_goroutines\n - go_sched_latencies_seconds ([#111910](https://github.com/kubernetes/kubernetes/pull/111910), [@tosi3k](https://github.com/tosi3k))", - "author": "tosi3k", - "author_url": "https://github.com/tosi3k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111910", - "pr_number": 111910, - "areas": [ - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "111930": { - "commit": "1bf4af4584234741ed7ffeea5eda3ec1127aa335", - "text": "Added the metric `pod_start_sli_duration_seconds` to kubelet.", - "markdown": "Added the metric `pod_start_sli_duration_seconds` to kubelet. ([#111930](https://github.com/kubernetes/kubernetes/pull/111930), [@azylinski](https://github.com/azylinski))", - "author": "azylinski", - "author_url": "https://github.com/azylinski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111930", - "pr_number": 111930, - "areas": [ - "test", - "kubelet", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "111936": { - "commit": "673895dc5519f5b1fba386d7573f0a452faf7635", - "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))", - "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 - }, - "111973": { - "commit": "26842bb0c8fcf89885798a2ebd9a97cd104e78bf", - "text": "Deprecated beta APIs scheduled for removal in `v1.26` are no longer served. See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-26 for more information.", - "markdown": "Deprecated beta APIs scheduled for removal in `v1.26` are no longer served. See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-26 for more information. ([#111973](https://github.com/kubernetes/kubernetes/pull/111973), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111973", - "pr_number": 111973, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "action_required": true - }, - "111998": { - "commit": "d9f21e55df4cd95f5e6c9ea1d7109a2a767920fb", - "text": "e2e: tests can now register callbacks with `ginkgo.BeforeEach`, `ginkgo.AfterEach` or `ginkgo.DeferCleanup` directly after creating a framework instance and are guaranteed that their code is called after the framework is initialized and before it gets cleaned up. `ginkgo.DeferCleanup` replaces `f.AddAfterEach` and `AddCleanupAction` which got removed to simplify the framework.", - "markdown": "E2e: tests can now register callbacks with `ginkgo.BeforeEach`, `ginkgo.AfterEach` or `ginkgo.DeferCleanup` directly after creating a framework instance and are guaranteed that their code is called after the framework is initialized and before it gets cleaned up. `ginkgo.DeferCleanup` replaces `f.AddAfterEach` and `AddCleanupAction` which got removed to simplify the framework. ([#111998](https://github.com/kubernetes/kubernetes/pull/111998), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111998", - "pr_number": 111998, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true - }, - "111999": { - "commit": "04f8a5c41a0e8716543415238098aa3d3054ab67", - "text": "Pod failed in scheduling due to expected error will be updated with the reason of `SchedulerError` rather than `Unschedulable`.", - "markdown": "Pod failed in scheduling due to expected error will be updated with the reason of `SchedulerError` rather than `Unschedulable`. ([#111999](https://github.com/kubernetes/kubernetes/pull/111999), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111999", - "pr_number": 111999, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true - }, - "112000": { - "commit": "b87a436aed9a4e708666b3656beac3a93dd3f762", - "text": "kubeadm: removed the usage of the `--container-runtime=remote` flag for the kubelet during kubeadm init/join/upgrade. The flag value `remote` had been the only possible value since `dockershim` was removed from the kubelet.", - "markdown": "Kubeadm: removed the usage of the `--container-runtime=remote` flag for the kubelet during kubeadm init/join/upgrade. The flag value `remote` had been the only possible value since `dockershim` was removed from the kubelet. ([#112000](https://github.com/kubernetes/kubernetes/pull/112000), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112000", - "pr_number": 112000, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "112003": { - "commit": "3ac752e4a0a365b658b185d88bde7f4c620a96e9", - "text": "The `goroutines` metric is newly added in the scheduler. \nIt replaces `scheduler_goroutines` metric and it counts the number of goroutine in more places than `scheduler_goroutine` does.", - "markdown": "The `goroutines` metric is newly added in the scheduler. \n It replaces `scheduler_goroutines` metric and it counts the number of goroutine in more places than `scheduler_goroutine` does. ([#112003](https://github.com/kubernetes/kubernetes/pull/112003), [@sanposhiho](https://github.com/sanposhiho)) [SIG Instrumentation and Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112003", - "pr_number": 112003, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "112008": { - "commit": "50097acf156f8942d01301619603c61765dbf646", - "text": "kubeadm: removed the toleration for the `node-role.kubernetes.io/master` taint from the CoreDNS deployment of `kubeadm`. With the 1.25 release of kubeadm the taint `node-role.kubernetes.io/master` is no longer applied to control plane nodes and the toleration for it can be removed with the release of 1.26. You can also perform the same toleration removal from your own addon manifests.", - "markdown": "Kubeadm: removed the toleration for the `node-role.kubernetes.io/master` taint from the CoreDNS deployment of `kubeadm`. With the 1.25 release of kubeadm the taint `node-role.kubernetes.io/master` is no longer applied to control plane nodes and the toleration for it can be removed with the release of 1.26. You can also perform the same toleration removal from your own addon manifests. ([#112008](https://github.com/kubernetes/kubernetes/pull/112008), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112008", - "pr_number": 112008, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "112011": { - "commit": "c519bc02e83d22c517a3063b24d0ced7934ca927", - "text": "'Added selector validation to `HorizontalPodAutoscaler`: when multiple HPAs\nselect the same set of Pods, scaling now will be disabled for those HPAs with\nthe reason `AmbiguousSelector`. This change also covers a case when multiple HPAs\npoint to the same deployment.'\n", - "markdown": "'Added selector validation to `HorizontalPodAutoscaler`: when multiple HPAs\n select the same set of Pods, scaling now will be disabled for those HPAs with\n the reason `AmbiguousSelector`. This change also covers a case when multiple HPAs\n point to the same deployment.'\n ([#112011](https://github.com/kubernetes/kubernetes/pull/112011), [@pbeschetnov](https://github.com/pbeschetnov))", - "author": "pbeschetnov", - "author_url": "https://github.com/pbeschetnov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112011", - "pr_number": 112011, - "kinds": [ - "feature" - ], - "sigs": [ - "autoscaling", - "apps" - ], - "feature": true, - "duplicate": true - }, - "112015": { - "commit": "ee94dce5b179923e362356a62738fa1de06c62b6", - "text": "`GlusterFS` in-tree storage driver which was deprecated in kubernetes 1.25 release is now removed entirely in 1.26.", - "markdown": "`GlusterFS` in-tree storage driver which was deprecated in kubernetes 1.25 release is now removed entirely in 1.26. ([#112015](https://github.com/kubernetes/kubernetes/pull/112015), [@humblec](https://github.com/humblec))", - "author": "humblec", - "author_url": "https://github.com/humblec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112015", - "pr_number": 112015, - "areas": [ - "test", - "kubelet", - "provider/gcp", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scalability", - "storage", - "node", - "api-machinery", - "instrumentation", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "112017": { - "commit": "082da2f04e413932615bcc32cba83959e7d043f7", - "text": "Fixed an ephemeral port exhaustion bug caused by improper connection management that occurred when a large number of objects were handled by `kubectl` while exec auth was in use.", - "markdown": "Fixed an ephemeral port exhaustion bug caused by improper connection management that occurred when a large number of objects were handled by `kubectl` while exec auth was in use. ([#112017](https://github.com/kubernetes/kubernetes/pull/112017), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112017", - "pr_number": 112017, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true - }, - "112026": { - "commit": "76277917b9b98bfac79d0e25fe8f45dfc5bec145", - "text": "updated the system-validators library to v1.8.0", - "markdown": "Updated the system-validators library to v1.8.0 ([#112026](https://github.com/kubernetes/kubernetes/pull/112026), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112026", - "pr_number": 112026, - "areas": [ - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "112042": { - "commit": "a14fc3d7a201514d7796616c113c75863629a997", - "text": "The metrics `etcd_request_duration_seconds` and `etcd_bookmark_counts` now differentiate by group resource instead of object type, allowing unique entries per `CustomResourceDefinition`, instead of grouping them all under `*unstructured.Unstructured`.", - "markdown": "The metrics `etcd_request_duration_seconds` and `etcd_bookmark_counts` now differentiate by group resource instead of object type, allowing unique entries per `CustomResourceDefinition`, instead of grouping them all under `*unstructured.Unstructured`. ([#112042](https://github.com/kubernetes/kubernetes/pull/112042), [@ncdc](https://github.com/ncdc))", - "author": "ncdc", - "author_url": "https://github.com/ncdc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112042", - "pr_number": 112042, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "112043": { - "commit": "2eda22a653307ba2d466a9dd49373133abefa682", - "text": "Refactored `test/e2e/framework` so that the core framework is smaller. Optional functionality like resource monitoring, log size monitoring, metrics gathering and debug information dumping must be imported by specific e2e test suites. Init packages are provided which can be imported to re-enable the functionality that traditionally was in the core framework. If you have code that no longer compiles because of this PR, you can use the script [from a commit message](https://github.com/kubernetes/kubernetes/pull/112043/commits/dfdf88d4faafa6fd39988832ea0ef6d668f490e9) to update that code.", - "markdown": "Refactored `test/e2e/framework` so that the core framework is smaller. Optional functionality like resource monitoring, log size monitoring, metrics gathering and debug information dumping must be imported by specific e2e test suites. Init packages are provided which can be imported to re-enable the functionality that traditionally was in the core framework. If you have code that no longer compiles because of this PR, you can use the script [from a commit message](https://github.com/kubernetes/kubernetes/pull/112043/commits/dfdf88d4faafa6fd39988832ea0ef6d668f490e9) to update that code. ([#112043](https://github.com/kubernetes/kubernetes/pull/112043), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112043", - "pr_number": 112043, - "areas": [ - "test", - "kubeadm", - "conformance", - "e2e-test-framework", - "network-policy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "autoscaling", - "auth", - "apps", - "windows", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "112046": { - "commit": "0f37b3120643580f632ca12d3e174e7ec447948c", - "text": "apiserver `/healthz/etcd` endpoint rate limits the number of forwarded health check requests to the etcd backends, answering with the last known state if the rate limit is exceeded. The rate limit is based on 1/2 of the timeout configured, with no burst allowed.", - "markdown": "Apiserver `/healthz/etcd` endpoint rate limits the number of forwarded health check requests to the etcd backends, answering with the last known state if the rate limit is exceeded. The rate limit is based on 1/2 of the timeout configured, with no burst allowed. ([#112046](https://github.com/kubernetes/kubernetes/pull/112046), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112046", - "pr_number": 112046, - "areas": [ - "apiserver", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "112058": { - "commit": "ac868b17d638a427ca3f9510aa5ab9b6731a6e48", - "text": "Updated `cri-tools` to [v1.25.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.25.0).", - "markdown": "Updated `cri-tools` to [v1.25.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.25.0). ([#112058](https://github.com/kubernetes/kubernetes/pull/112058), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112058", - "pr_number": 112058, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "release", - "cloud-provider" - ], - "duplicate": true - }, - "112076": { - "commit": "569b14ceecfc7aa4bc5d6d22c258cbcb8c29a938", - "text": "Moved `LocalStorageCapacityIsolationFSQuotaMonitoring` back to Alpha.", - "markdown": "Moved `LocalStorageCapacityIsolationFSQuotaMonitoring` back to Alpha. ([#112076](https://github.com/kubernetes/kubernetes/pull/112076), [@rphillips](https://github.com/rphillips))", - "author": "rphillips", - "author_url": "https://github.com/rphillips", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112076", - "pr_number": 112076, - "areas": [ - "test" - ], - "kinds": [ - "regression" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "112120": { - "commit": "6dbec8e25592d47fc8a8269c86d4b5fa838d320b", - "text": "Legacy klog flags are no longer available. Only `-v` and `-vmodule` are still supported.", - "markdown": "Legacy klog flags are no longer available. Only `-v` and `-vmodule` are still supported. ([#112120](https://github.com/kubernetes/kubernetes/pull/112120), [@pohly](https://github.com/pohly)) [SIG Architecture, CLI, Instrumentation, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2845", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components/README.md#user-stories", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112120", - "pr_number": 112120, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "node", - "cli", - "instrumentation", - "testing", - "architecture" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112123": { - "commit": "74469ca4c5cf30fc15826d6682d31ea2819c9cf2", - "text": "Clarified the CFS quota as 100ms in the code comments and set the minimum `cpuCFSQuotaPeriod` to 1ms to match Linux kernel expectations.", - "markdown": "Clarified the CFS quota as 100ms in the code comments and set the minimum `cpuCFSQuotaPeriod` to 1ms to match Linux kernel expectations. ([#112123](https://github.com/kubernetes/kubernetes/pull/112123), [@paskal](https://github.com/paskal))", - "author": "paskal", - "author_url": "https://github.com/paskal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112123", - "pr_number": 112123, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "bug", - "documentation", - "api-change" - ], - "sigs": [ - "node", - "api-machinery" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112127": { - "commit": "b4f42864f58f6feac250b2dd32f99b992c8ed184", - "text": "Fixed `DaemonSet` to update the status even if it fails to create a pod.", - "markdown": "Fixed `DaemonSet` to update the status even if it fails to create a pod. ([#112127](https://github.com/kubernetes/kubernetes/pull/112127), [@gjkim42](https://github.com/gjkim42))", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112127", - "pr_number": 112127, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "112133": { - "commit": "6705015101d9572157325ddf237ff65c5efb3cef", - "text": "In `kube-proxy`: The \"userspace\" proxy mode (deprecated for over a year) is no\nlonger supported on either Linux or Windows. Users should use \"iptables\" or \"ipvs\"\non Linux, or \"kernelspace\" on Windows.\n", - "markdown": "In `kube-proxy`: The \"userspace\" proxy mode (deprecated for over a year) is no\n longer supported on either Linux or Windows. Users should use \"iptables\" or \"ipvs\"\n on Linux, or \"kernelspace\" on Windows.\n ([#112133](https://github.com/kubernetes/kubernetes/pull/112133), [@knabben](https://github.com/knabben))", - "author": "knabben", - "author_url": "https://github.com/knabben", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112133", - "pr_number": 112133, - "areas": [ - "test", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "network", - "scalability", - "api-machinery", - "windows", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112150": { - "commit": "2779326af88a76ed020457feb1ea7e4906941337", - "text": "Improved `kubectl` display of invalid request errors returned by the API server.", - "markdown": "Improved `kubectl` display of invalid request errors returned by the API server. ([#112150](https://github.com/kubernetes/kubernetes/pull/112150), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112150", - "pr_number": 112150, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true - }, - "112157": { - "commit": "ca09ed0fe2c245a0df4f533aa29f7b48a8672cff", - "text": "Avoided propagating hosts `search .` into containers in `/etc/resolv.conf`.", - "markdown": "Avoided propagating hosts `search .` into containers in `/etc/resolv.conf`. ([#112157](https://github.com/kubernetes/kubernetes/pull/112157), [@dghubble](https://github.com/dghubble))", - "author": "dghubble", - "author_url": "https://github.com/dghubble", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112157", - "pr_number": 112157, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112163": { - "commit": "d754183866fab256c77d3a677d523587b20ba12c", - "text": "Graduate `ServiceIPStaticSubrange` feature to GA.", - "markdown": "Graduate `ServiceIPStaticSubrange` feature to GA. ([#112163](https://github.com/kubernetes/kubernetes/pull/112163), [@aojea](https://github.com/aojea))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3070", - "type": "KEP" - }, - { - "description": "[Blog]", - "url": "https://kubernetes.io/blog/2022/05/23/service-ip-dynamic-and-static-allocation/", - "type": "external" - } - ], - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112163", - "pr_number": 112163, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "112172": { - "commit": "1913c6be3580da23109493b2bc52b119ee70941e", - "text": "kubeadm: added the \"--cleanup-tmp-dir\" flag for `kubeadm reset`. It will cleanup the contents of `/etc/kubernetes/tmp`. The flag is off by default.", - "markdown": "Kubeadm: added the \"--cleanup-tmp-dir\" flag for `kubeadm reset`. It will cleanup the contents of `/etc/kubernetes/tmp`. The flag is off by default. ([#112172](https://github.com/kubernetes/kubernetes/pull/112172), [@chendave](https://github.com/chendave))", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112172", - "pr_number": 112172, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "112181": { - "commit": "23790ec7fa8fd3c5b18edd85bc12ba4d76f50e1f", - "text": "callers using `DelegatingAuthenticationOptions` can now use `DisableAnonymous` to disable Anonymous authentication.", - "markdown": "Callers using `DelegatingAuthenticationOptions` can now use `DisableAnonymous` to disable Anonymous authentication. ([#112181](https://github.com/kubernetes/kubernetes/pull/112181), [@xueqzhan](https://github.com/xueqzhan))", - "author": "xueqzhan", - "author_url": "https://github.com/xueqzhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112181", - "pr_number": 112181, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true - }, - "112183": { - "commit": "475e6d638d11866978d4ed30edf0bf4cdcaa2f56", - "text": "Fixed spurious `field is immutable` errors validating updates to Event API objects via the `events.k8s.io/v1` API.", - "markdown": "Fixed spurious `field is immutable` errors validating updates to Event API objects via the `events.k8s.io/v1` API. ([#112183](https://github.com/kubernetes/kubernetes/pull/112183), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112183", - "pr_number": 112183, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "112184": { - "commit": "5bcdc82911abb0411943898a6252f4f1eeb4d99f", - "text": "Kubelet now cleans up the Node's cloud node IP annotation correctly if you\nstop using `--node-ip`. (In particular, this fixes the problem where people who\nwere unnecessarily using `--node-ip` with an external cloud provider in 1.23,\nand then running into problems with 1.24, could not fix the problem by just\nremoving the unnecessary `--node-ip` from the kubelet arguments, because\nthat wouldn't remove the annotation that caused the problems.)", - "markdown": "Kubelet now cleans up the Node's cloud node IP annotation correctly if you\n stop using `--node-ip`. (In particular, this fixes the problem where people who\n were unnecessarily using `--node-ip` with an external cloud provider in 1.23,\n and then running into problems with 1.24, could not fix the problem by just\n removing the unnecessary `--node-ip` from the kubelet arguments, because\n that wouldn't remove the annotation that caused the problems.) ([#112184](https://github.com/kubernetes/kubernetes/pull/112184), [@danwinship](https://github.com/danwinship)) [SIG Network and Node]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112184", - "pr_number": 112184, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true - }, - "112193": { - "commit": "a7936658baba02e3ee73324ffe670559f03c188a", - "text": "kube-apiserver: redirect responses are no longer returned from backends by default. Set `--aggregator-reject-forwarding-redirect=false` to continue forwarding redirect responses.", - "markdown": "Kube-apiserver: redirect responses are no longer returned from backends by default. Set `--aggregator-reject-forwarding-redirect=false` to continue forwarding redirect responses. ([#112193](https://github.com/kubernetes/kubernetes/pull/112193), [@jindijamie](https://github.com/jindijamie)) [SIG API Machinery and Testing]", - "author": "jindijamie", - "author_url": "https://github.com/jindijamie", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112193", - "pr_number": 112193, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "112195": { - "commit": "a304fdd8671873d80ba8a0579298d0b5aaa2d91e", - "text": "Fixed race condition in GCE between containerized mounter setup in the kubelet.", - "markdown": "Fixed race condition in GCE between containerized mounter setup in the kubelet. ([#112195](https://github.com/kubernetes/kubernetes/pull/112195), [@mattcary](https://github.com/mattcary))", - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112195", - "pr_number": 112195, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "cloud-provider" - ], - "duplicate": true - }, - "112200": { - "commit": "084a412e03816ef3ea57da928ae8fd332d17ab59", - "text": "In 'client-go` `SharedInformerFactory` will now support waiting for goroutines during shutdown.\n", - "markdown": "In 'client-go` `SharedInformerFactory` will now support waiting for goroutines during shutdown.\n ([#112200](https://github.com/kubernetes/kubernetes/pull/112200), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112200", - "pr_number": 112200, - "areas": [ - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "112243": { - "commit": "67bde9a1023d1805e33d698b28aa6fad991dfb39", - "text": "Added back unused flags on `kubectl run` command, which did not go through the required deprecation period before being removed.", - "markdown": "Added back unused flags on `kubectl run` command, which did not go through the required deprecation period before being removed. ([#112243](https://github.com/kubernetes/kubernetes/pull/112243), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112243", - "pr_number": 112243, - "areas": [ - "kubectl" - ], - "kinds": [ - "regression" - ], - "sigs": [ - "cli" - ] - }, - "112257": { - "commit": "3d3820bba3d46c859714a04c4e2f3ae25c8549ff", - "text": "Kube scheduler Component Config release version v1beta3 is deprecated in v1.26 and will be removed in v1.29, \nalso v1beta2 will be removed in v1.28.", - "markdown": "Kube scheduler Component Config release version v1beta3 is deprecated in v1.26 and will be removed in v1.29, \n also v1beta2 will be removed in v1.28. ([#112257](https://github.com/kubernetes/kubernetes/pull/112257), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling]", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112257", - "pr_number": 112257, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "112261": { - "commit": "3e8c848cfce00a9ac80a0b2a44dbc671891a33ef", - "text": "Deprecated the following kubectl run flags, which are ignored if set: `--cascade`, `--filename`, `--force`, `--grace-period`, `--kustomize`, `--recursive`, `--timeout`, `--wait`.", - "markdown": "Deprecated the following kubectl run flags, which are ignored if set: `--cascade`, `--filename`, `--force`, `--grace-period`, `--kustomize`, `--recursive`, `--timeout`, `--wait`. ([#112261](https://github.com/kubernetes/kubernetes/pull/112261), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112261", - "pr_number": 112261, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "112267": { - "commit": "9cd6331f9584dae9db803e01249c87c7697711de", - "text": "Updated creation of `LoadBalancer` services, for there to be fewer AWS security group rules in most cases.", - "markdown": "Updated creation of `LoadBalancer` services, for there to be fewer AWS security group rules in most cases. ([#112267](https://github.com/kubernetes/kubernetes/pull/112267), [@sjenning](https://github.com/sjenning))", - "author": "sjenning", - "author_url": "https://github.com/sjenning", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112267", - "pr_number": 112267, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "112287": { - "commit": "0e54bd294237e8fc3e0f60f3195353f7c25e8a4c", - "text": "Kubernetes is now built with Go 1.19.1", - "markdown": "Kubernetes is now built with Go 1.19.1 ([#112287](https://github.com/kubernetes/kubernetes/pull/112287), [@palnabarun](https://github.com/palnabarun)) [SIG Release and Testing]", - "author": "palnabarun", - "author_url": "https://github.com/palnabarun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112287", - "pr_number": 112287, - "areas": [ - "test", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "112299": { - "commit": "8287e21228e9b1c945d031581e2fc63920f46d56", - "text": "kube-apiserver: `gzip` compression switched from level 4 to level 1 to improve large list call latencies in exchange for higher network bandwidth usage (10-50% higher). This increases the headroom before very large unpaged list calls exceed request timeout limits.", - "markdown": "Kube-apiserver: `gzip` compression switched from level 4 to level 1 to improve large list call latencies in exchange for higher network bandwidth usage (10-50% higher). This increases the headroom before very large unpaged list calls exceed request timeout limits. ([#112299](https://github.com/kubernetes/kubernetes/pull/112299), [@shyamjvs](https://github.com/shyamjvs))", - "documentation": [ - { - "description": "Detailed doc showing why this change is safe and useful", - "url": "https://docs.google.com/document/d/1rMlYKOVyujboAEG2epxSYdx7eyevC7dypkD_kUlBxn4", - "type": "external" - } - ], - "author": "shyamjvs", - "author_url": "https://github.com/shyamjvs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112299", - "pr_number": 112299, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "112306": { - "commit": "9720af2ba3f0d792c873bfa6e4d54e60736fb7a0", - "text": "Introduce `v1beta3` for Priority and Fairness with the following changes to the API spec:\n- rename 'assuredConcurrencyShares' (located under `spec.limited') to 'nominalConcurrencyShares'.\n- apply strategic merge patch annotations to 'Conditions' of flowschemas and `prioritylevelconfigurations`.", - "markdown": "Introduce `v1beta3` for Priority and Fairness with the following changes to the API spec:\n - rename 'assuredConcurrencyShares' (located under `spec.limited') to 'nominalConcurrencyShares'.\n - apply strategic merge patch annotations to 'Conditions' of flowschemas and `prioritylevelconfigurations`. ([#112306](https://github.com/kubernetes/kubernetes/pull/112306), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112306", - "pr_number": 112306, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "112309": { - "commit": "ed520f3cac2243cd5f66967e2c590caf1e98b9e2", - "text": "A new `DisableCompression` field (default = `false`) has been added to kubeconfig under cluster info. When set to `true`, clients using the kubeconfig opt out of response compression for all requests to the apiserver. This can help improve list call latencies significantly when client-server network bandwidth is ample (\u003e30MB/s) or if the server is CPU-constrained.", - "markdown": "A new `DisableCompression` field (default = `false`) has been added to kubeconfig under cluster info. When set to `true`, clients using the kubeconfig opt out of response compression for all requests to the apiserver. This can help improve list call latencies significantly when client-server network bandwidth is ample (\u003e30MB/s) or if the server is CPU-constrained. ([#112309](https://github.com/kubernetes/kubernetes/pull/112309), [@shyamjvs](https://github.com/shyamjvs))", - "author": "shyamjvs", - "author_url": "https://github.com/shyamjvs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112309", - "pr_number": 112309, - "areas": [ - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true - }, - "112341": { - "commit": "d569886a234cb65cb1ec777b7ab2e5b9a35d7145", - "text": "The `gcp` and `azure` auth plugins have been removed from `client-go` and `kubectl`. See [kubelogin](https://github.com/Azure/kubelogin) and [Kubectl Auth Changes in GKE](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) for details about the cloud-specific replacements.", - "markdown": "The `gcp` and `azure` auth plugins have been removed from `client-go` and `kubectl`. See [kubelogin](https://github.com/Azure/kubelogin) and [Kubectl Auth Changes in GKE](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) for details about the cloud-specific replacements. ([#112341](https://github.com/kubernetes/kubernetes/pull/112341), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112341", - "pr_number": 112341, - "areas": [ - "apiserver", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112353": { - "commit": "c7d47e4c94b2e424f5fc7c9cd0f906d6c19fc94c", - "text": "Increased the maximum backoff delay of the endpointslice controller to match the expected sequence of delays when syncing Services.", - "markdown": "Increased the maximum backoff delay of the endpointslice controller to match the expected sequence of delays when syncing Services. ([#112353](https://github.com/kubernetes/kubernetes/pull/112353), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112353", - "pr_number": 112353, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "112357": { - "commit": "3e5e5cc7ee8331c4b8ee41291eef36ff67c3a911", - "text": "kube-scheduler: added taints filtering logic consistent with `TaintToleration` plugin for `PodTopologySpread` plugin.", - "markdown": "Kube-scheduler: added taints filtering logic consistent with `TaintToleration` plugin for `PodTopologySpread` plugin. ([#112357](https://github.com/kubernetes/kubernetes/pull/112357), [@SataQiu](https://github.com/SataQiu))", - "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 - }, - "112360": { - "commit": "47952e0917a26408ac0bdd450d09b0557e2294b7", - "text": "'kubelet: Added the following Pod failure conditions:\n- `DisruptionTarget` (graceful node shutdown, node pressure eviction)'", - "markdown": "'kubelet: Added the following Pod failure conditions:\n - `DisruptionTarget` (graceful node shutdown, node pressure eviction)' ([#112360](https://github.com/kubernetes/kubernetes/pull/112360), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112360", - "pr_number": 112360, - "areas": [ - "test", - "kubelet", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "112374": { - "commit": "8fb8bb4e9ae2d2cb2b7cdb4c79c73be344fdc164", - "text": "Logs of requests that were timed out by a timeout handler no longer contain a `statusStack` and `logging error output` fields.", - "markdown": "Logs of requests that were timed out by a timeout handler no longer contain a `statusStack` and `logging error output` fields. ([#112374](https://github.com/kubernetes/kubernetes/pull/112374), [@Argh4k](https://github.com/Argh4k))", - "author": "Argh4k", - "author_url": "https://github.com/Argh4k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112374", - "pr_number": 112374, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "112386": { - "commit": "72f96d9c722961ddd27911a7dde2e464f9e44198", - "text": "`CSRDuration` feature gate that graduated to GA in 1.24 and is unconditionally\nenabled now removed in v1.26.\n", - "markdown": "`CSRDuration` feature gate that graduated to GA in 1.24 and is unconditionally\n enabled now removed in v1.26.\n ([#112386](https://github.com/kubernetes/kubernetes/pull/112386), [@Shubham82](https://github.com/Shubham82))", - "author": "Shubham82", - "author_url": "https://github.com/Shubham82", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112386", - "pr_number": 112386, - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true, - "duplicate_kind": true - }, - "112403": { - "commit": "ea4c28c7f86372b82aa8a8a15c9cbdf07098c49a", - "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 change modified that behavior to ensure 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 change modified that behavior to ensure it is only called once per volume per node. ([#112403](https://github.com/kubernetes/kubernetes/pull/112403), [@akankshakumari393](https://github.com/akankshakumari393))", - "author": "akankshakumari393", - "author_url": "https://github.com/akankshakumari393", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112403", - "pr_number": 112403, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "112414": { - "commit": "4276ed36282405d026d8072e0ebed4f1da49070d", - "text": "kubelet: when there are multi option lines in /etc/resolv.conf, merge all options into one line in a pod with the `Default` DNS policy.", - "markdown": "Kubelet: when there are multi option lines in /etc/resolv.conf, merge all options into one line in a pod with the `Default` DNS policy. ([#112414](https://github.com/kubernetes/kubernetes/pull/112414), [@pacoxu](https://github.com/pacoxu)) [SIG Network and Node]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112414", - "pr_number": 112414, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true - }, - "112427": { - "commit": "148476eff1c9d48d513e725918601a7e85c69792", - "text": "Allowed `Label` section in vSphere e2e cloud provider configuration.", - "markdown": "Allowed `Label` section in vSphere e2e cloud provider configuration. ([#112427](https://github.com/kubernetes/kubernetes/pull/112427), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112427", - "pr_number": 112427, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true - }, - "112437": { - "commit": "21dfce2d7daa13e616107179acc11c05f20ecce1", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#112437](https://github.com/kubernetes/kubernetes/pull/112437), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Network]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112437", - "pr_number": 112437, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "112489": { - "commit": "06fd0a07286faaef2008fd97c888debe0ca1d74a", - "text": "etcd: Updated to v3.5.5.", - "markdown": "Etcd: Updated to v3.5.5. ([#112489](https://github.com/kubernetes/kubernetes/pull/112489), [@dims](https://github.com/dims))", - "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", - "cluster-lifecycle", - "testing", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112507": { - "commit": "4fb2cf4b4b3dc0d1f14a4300939d4efe38db8fbc", - "text": "Correct the calculating error in `podTopologySpread` plugin to avoid unexpected scheduling results.", - "markdown": "Correct the calculating error in `podTopologySpread` plugin to avoid unexpected scheduling results. ([#112507](https://github.com/kubernetes/kubernetes/pull/112507), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112507", - "pr_number": 112507, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "112508": { - "commit": "cccfc0989b6f26226bac8ef90a8663928a3a8ad0", - "text": "Added support for RSA and ECDSA format keys in preflight check on `kubeadm`.", - "markdown": "Added support for RSA and ECDSA format keys in preflight check on `kubeadm`. ([#112508](https://github.com/kubernetes/kubernetes/pull/112508), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112508", - "pr_number": 112508, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "112518": { - "commit": "8f269d6df2a57544b73d5ca35e04451373ef334c", - "text": "fixed code to ensure that pods running on nodes tainted with `NoExecute` continue to run when the `PodDisruptionConditions` feature gate is enabled.", - "markdown": "Fixed code to ensure that pods running on nodes tainted with `NoExecute` continue to run when the `PodDisruptionConditions` feature gate is enabled. ([#112518](https://github.com/kubernetes/kubernetes/pull/112518), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112518", - "pr_number": 112518, - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "apps" - ], - "duplicate": true - }, - "112521": { - "commit": "521fbd7e6a8eee04d1f641477fe7d87f2dbe3ed0", - "text": "Add `percentageOfNodesToScore` as a scheduler profile level parameter to API version `v1`. When a profile `percentageOfNodesToScore` is set, it will override global `percentageOfNodesToScore`.", - "markdown": "Add `percentageOfNodesToScore` as a scheduler profile level parameter to API version `v1`. When a profile `percentageOfNodesToScore` is set, it will override global `percentageOfNodesToScore`. ([#112521](https://github.com/kubernetes/kubernetes/pull/112521), [@yuanchen8911](https://github.com/yuanchen8911))", - "author": "yuanchen8911", - "author_url": "https://github.com/yuanchen8911", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112521", - "pr_number": 112521, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "112526": { - "commit": "4ff13696417446ffc8e3d42103bc5f7b4f6f56e0", - "text": "kube-apiserver: resolved a regression that treated `304 Not Modified` responses from aggregated API servers as internal errors.", - "markdown": "Kube-apiserver: resolved a regression that treated `304 Not Modified` responses from aggregated API servers as internal errors. ([#112526](https://github.com/kubernetes/kubernetes/pull/112526), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112526", - "pr_number": 112526, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "112542": { - "commit": "02109414e8816ceefce775e8b627d67cad6ced85", - "text": "Added validation for the `--container-runtime-endpoint` flag of kubelet to be non-empty.", - "markdown": "Added validation for the `--container-runtime-endpoint` flag of kubelet to be non-empty. ([#112542](https://github.com/kubernetes/kubernetes/pull/112542), [@astraw99](https://github.com/astraw99))", - "author": "astraw99", - "author_url": "https://github.com/astraw99", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112542", - "pr_number": 112542, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "112545": { - "commit": "6820a383be4a1bbb5cd526eb3aeb9e6ade351498", - "text": "API Server tracing root span name for opentelemetry is changed from `KubernetesAPI` to `HTTP GET`.", - "markdown": "API Server tracing root span name for opentelemetry is changed from `KubernetesAPI` to `HTTP GET`. ([#112545](https://github.com/kubernetes/kubernetes/pull/112545), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112545", - "pr_number": 112545, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "112553": { - "commit": "dad0e937c0f76344363eb691b2668490ffef8537", - "text": "`kubectl` now escapes terminal special characters in output. This fixes CVE-2021-25743.\n", - "markdown": "`kubectl` now escapes terminal special characters in output. This fixes CVE-2021-25743.\n ([#112553](https://github.com/kubernetes/kubernetes/pull/112553), [@dgl](https://github.com/dgl))", - "author": "dgl", - "author_url": "https://github.com/dgl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112553", - "pr_number": 112553, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "security" - ], - "duplicate": true - }, - "112556": { - "commit": "6ee3cbd931fd106dfd5b5f654cdf9c33435e557e", - "text": "Changed error message when resource is not supported by given patch type in `kubectl patch`.", - "markdown": "Changed error message when resource is not supported by given patch type in `kubectl patch`. ([#112556](https://github.com/kubernetes/kubernetes/pull/112556), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112556", - "pr_number": 112556, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "112557": { - "commit": "497e0dfd33b180fcc3855aad794d87f0e429c82c", - "text": "Fixed list cost estimation in Priority and Fairness for list requests with `metadata.name` specified.", - "markdown": "Fixed 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))", - "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" - ] - }, - "112567": { - "commit": "04ee339c7a4d36b4037ce3635993e2a9e395ebf3", - "text": "kube-scheduler: the `DefaultPodTopologySpread`, `NonPreemptingPriority`, `PodAffinityNamespaceSelector` and `PreferNominatedNode` feature gates that graduated to GA in v1.24 and were unconditionally enabled have been removed in v1.26.", - "markdown": "Kube-scheduler: the `DefaultPodTopologySpread`, `NonPreemptingPriority`, `PodAffinityNamespaceSelector` and `PreferNominatedNode` feature gates that graduated to GA in v1.24 and were unconditionally enabled have been removed in v1.26. ([#112567](https://github.com/kubernetes/kubernetes/pull/112567), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112567", - "pr_number": 112567, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "112571": { - "commit": "b6d89e756a706c8179f2829d612e1b24e68e9374", - "text": "Nested `MountPoints` are now grouped correctly on all cases.", - "markdown": "Nested `MountPoints` are now grouped correctly on all cases. ([#112571](https://github.com/kubernetes/kubernetes/pull/112571), [@claudiubelu](https://github.com/claudiubelu))", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112571", - "pr_number": 112571, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "windows" - ], - "duplicate": true - }, - "112577": { - "commit": "de693b5e2d165081ef52dda83cd3aa3398f263b0", - "text": "Removed feature gates `ServiceLoadBalancerClass` and `ServiceLBNodePortControl`. These feature gates were enabled (and locked) since `v1.24`.", - "markdown": "Removed feature gates `ServiceLoadBalancerClass` and `ServiceLBNodePortControl`. These feature gates were enabled (and locked) since `v1.24`. ([#112577](https://github.com/kubernetes/kubernetes/pull/112577), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112577", - "pr_number": 112577, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "112579": { - "commit": "5ce4f98a76b6c87d0c652564cb7e7fb2dacd8c20", - "text": "Removed `PodOverhead` feature gate as the feature is in GA since `v1.24`.", - "markdown": "Removed `PodOverhead` feature gate as the feature is in GA since `v1.24`. ([#112579](https://github.com/kubernetes/kubernetes/pull/112579), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112579", - "pr_number": 112579, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "node" - ], - "duplicate": true - }, - "112580": { - "commit": "b8e740f2e551531b22684e4cf6cd57da11203b3d", - "text": "Added `--disable-compression` flag to `kubectl` (default = false). When true, it opts out of response compression for all requests to the `apiserver`. This can help improve list call latencies significantly when client-server network bandwidth is ample (\u003e30MB/s) or if the server is CPU-constrained.", - "markdown": "Added `--disable-compression` flag to `kubectl` (default = false). When true, it opts out of response compression for all requests to the `apiserver`. This can help improve list call latencies significantly when client-server network bandwidth is ample (\u003e30MB/s) or if the server is CPU-constrained. ([#112580](https://github.com/kubernetes/kubernetes/pull/112580), [@shyamjvs](https://github.com/shyamjvs))", - "author": "shyamjvs", - "author_url": "https://github.com/shyamjvs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112580", - "pr_number": 112580, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "112589": { - "commit": "9c9b29032f76e39b0e36200c88fe2f127389a9fe", - "text": "The `IndexedJob` and `SuspendJob` feature gates that graduated to GA in 1.24 and were unconditionally enabled have been removed in v1.26.", - "markdown": "The `IndexedJob` and `SuspendJob` feature gates that graduated to GA in 1.24 and were unconditionally enabled have been removed in v1.26. ([#112589](https://github.com/kubernetes/kubernetes/pull/112589), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112589", - "pr_number": 112589, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ] - }, - "112607": { - "commit": "91a9ce28ac2486c50222aeeec1f76e664155d769", - "text": "volume mount cleanup now considers only plugin directory and not the entire kubelet root", - "markdown": "Volume mount cleanup now considers only plugin directory and not the entire kubelet root ([#112607](https://github.com/kubernetes/kubernetes/pull/112607), [@mattcary](https://github.com/mattcary))", - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112607", - "pr_number": 112607, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "112631": { - "commit": "ad64f9c4dc1b8b06da44df765b12de90f072a93a", - "text": "Reworded log message upon image garbage collection failure to be more clear.", - "markdown": "Reworded log message upon image garbage collection failure to be more clear. ([#112631](https://github.com/kubernetes/kubernetes/pull/112631), [@tzneal](https://github.com/tzneal)) [SIG Node]", - "author": "tzneal", - "author_url": "https://github.com/tzneal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112631", - "pr_number": 112631, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "112643": { - "commit": "525280d285c4bb4970e571a1e13a601befd75434", - "text": "`DynamicKubeletConfig` feature gate has been removed from the API server.\nDynamic kubelet reconfiguration now can't be used even when older nodes are still\nattempting to rely on it. This is aligned with the Kubernetes version skew policy.\n", - "markdown": "`DynamicKubeletConfig` feature gate has been removed from the API server.\n Dynamic kubelet reconfiguration now can't be used even when older nodes are still\n attempting to rely on it. This is aligned with the Kubernetes version skew policy.\n ([#112643](https://github.com/kubernetes/kubernetes/pull/112643), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112643", - "pr_number": 112643, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112644": { - "commit": "5579ddea8addfca5b4a632409bdbf4aa1af2d419", - "text": "The pod admission error message was improved for usability.", - "markdown": "The pod admission error message was improved for usability. ([#112644](https://github.com/kubernetes/kubernetes/pull/112644), [@vitorfhc](https://github.com/vitorfhc)) [SIG Node]", - "author": "vitorfhc", - "author_url": "https://github.com/vitorfhc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112644", - "pr_number": 112644, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "112650": { - "commit": "cdbb15c80288947ab670e2419e22992e037f9361", - "text": "kubelet: fixed log spam from kubelet_getters.go `Path does not exist`.", - "markdown": "Kubelet: fixed log spam from kubelet_getters.go `Path does not exist`. ([#112650](https://github.com/kubernetes/kubernetes/pull/112650), [@rphillips](https://github.com/rphillips))", - "author": "rphillips", - "author_url": "https://github.com/rphillips", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112650", - "pr_number": 112650, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "112652": { - "commit": "8631b2cdf952f7039f2dadf74a7d4d6e0e3c75b2", - "text": "Added a `kubernetes_feature_enabled` metric which will tell you if a feature is enabled.", - "markdown": "Added a `kubernetes_feature_enabled` metric which will tell you if a feature is enabled. ([#112652](https://github.com/kubernetes/kubernetes/pull/112652), [@logicalhan](https://github.com/logicalhan))", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112652", - "pr_number": 112652, - "kinds": [ - "cleanup" - ], - "sigs": [ - "instrumentation", - "architecture" - ], - "duplicate": true - }, - "112671": { - "commit": "7f129f1c9af62cc3cd4f6b754dacdf5932f39d5c", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#112671](https://github.com/kubernetes/kubernetes/pull/112671), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Instrumentation and Scalability]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112671", - "pr_number": 112671, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scalability", - "instrumentation" - ], - "duplicate": true, - "do_not_publish": true - }, - "112672": { - "commit": "0094662cbbca3d3f3e2e4fbb6ee4eb65f26d197a", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#112672](https://github.com/kubernetes/kubernetes/pull/112672), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Instrumentation]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112672", - "pr_number": 112672, - "kinds": [ - "cleanup" - ], - "sigs": [ - "instrumentation" - ], - "do_not_publish": true - }, - "112679": { - "commit": "7752c3a8e0fbf59739f40526b2235347ff78000e", - "text": "Deprecated the `apiserver_request_slo_duration_seconds` metric for v1.27 in favor of `apiserver_request_sli_duration_seconds` for naming consistency purposes with other SLI-specific metrics and to avoid any confusion between SLOs and SLIs.", - "markdown": "Deprecated the `apiserver_request_slo_duration_seconds` metric for v1.27 in favor of `apiserver_request_sli_duration_seconds` for naming consistency purposes with other SLI-specific metrics and to avoid any confusion between SLOs and SLIs. ([#112679](https://github.com/kubernetes/kubernetes/pull/112679), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112679", - "pr_number": 112679, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112690": { - "commit": "d2ae6fbeb10fe3c68f631b59a266e729688058a9", - "text": "Added `kubernetes_feature_enabled` metric series to track whether each active feature gate is enabled.", - "markdown": "Added `kubernetes_feature_enabled` metric series to track whether each active feature gate is enabled. ([#112690](https://github.com/kubernetes/kubernetes/pull/112690), [@logicalhan](https://github.com/logicalhan))", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112690", - "pr_number": 112690, - "areas": [ - "kubelet", - "apiserver", - "dependency" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "network", - "scheduling", - "node", - "api-machinery", - "cluster-lifecycle", - "instrumentation", - "architecture" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112693": { - "commit": "6cb473b6c4f1239d411e0a50a1cdf9c4c092c42a", - "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))", - "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": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider", - "security" - ], - "duplicate": true - }, - "112696": { - "commit": "b932a3ac374d72c188b76bde70008cb58ddf3a68", - "text": "Fixed Admission controllers that caused unnecessary significant load on `apiserver'.", - "markdown": "Fixed Admission controllers that caused unnecessary significant load on `apiserver'. ([#112696](https://github.com/kubernetes/kubernetes/pull/112696), [@aimuz](https://github.com/aimuz))", - "author": "aimuz", - "author_url": "https://github.com/aimuz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112696", - "pr_number": 112696, - "kinds": [ - "bug" - ], - "sigs": [ - "scalability" - ] - }, - "112700": { - "commit": "0207f7ae8627335cf5684fea40f5fcc5e2691a99", - "text": "kubectl: fixed a bug where `kubectl convert` did not pick the right API version", - "markdown": "Kubectl: fixed a bug where `kubectl convert` did not pick the right API version ([#112700](https://github.com/kubernetes/kubernetes/pull/112700), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112700", - "pr_number": 112700, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "112731": { - "commit": "8d1ba6a0861d4c11336d2a9895c3800d9fc795c4", - "text": "Switched kubectl to use `github.com/russross/blackfriday/v2`", - "markdown": "Switched kubectl to use `github.com/russross/blackfriday/v2` ([#112731](https://github.com/kubernetes/kubernetes/pull/112731), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112731", - "pr_number": 112731, - "areas": [ - "kubectl", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "112732": { - "commit": "edd677694374fb8284b9ddd04caf0698eaf00de5", - "text": "kubeadm: now supports image repository format validation.", - "markdown": "Kubeadm: now supports image repository format validation. ([#112732](https://github.com/kubernetes/kubernetes/pull/112732), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112732", - "pr_number": 112732, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "112741": { - "commit": "e11f23eb9712c9b4bebf8dd85dcb04441b4fb705", - "text": "Exposed health check SLI metrics on `metrics/slis` for apiserver.", - "markdown": "Exposed health check SLI metrics on `metrics/slis` for apiserver. ([#112741](https://github.com/kubernetes/kubernetes/pull/112741), [@logicalhan](https://github.com/logicalhan))", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112741", - "pr_number": 112741, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "112744": { - "commit": "ff19efdf9bd2d1f4abece3229f1e36c1d58b96df", - "text": "Added a feature that allows a `StatefulSet` to start numbering replicas from an arbitrary non-negative ordinal, using the `.spec.ordinals.start` field.", - "markdown": "Added a feature that allows a `StatefulSet` to start numbering replicas from an arbitrary non-negative ordinal, using the `.spec.ordinals.start` field. ([#112744](https://github.com/kubernetes/kubernetes/pull/112744), [@pwschuurman](https://github.com/pwschuurman))", - "author": "pwschuurman", - "author_url": "https://github.com/pwschuurman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112744", - "pr_number": 112744, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "112748": { - "commit": "97d37c29552790384b0a8b8f6f05648f28e07c55", - "text": "Locked `ServerSideApply` feature gate to true with the feature already being GA.", - "markdown": "Locked `ServerSideApply` feature gate to true with the feature already being GA. ([#112748](https://github.com/kubernetes/kubernetes/pull/112748), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112748", - "pr_number": 112748, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "112751": { - "commit": "e450d35bb303042830a8ebfaad2010908df61208", - "text": "kubeadm: fixed a bug when performing validation on `ClusterConfiguration` networking fields.", - "markdown": "Kubeadm: fixed a bug when performing validation on `ClusterConfiguration` networking fields. ([#112751](https://github.com/kubernetes/kubernetes/pull/112751), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112751", - "pr_number": 112751, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "112772": { - "commit": "7c64250cd07172f10d6bafa763d336fe01a8f6b0", - "text": "kube-apiserver: redirects from backend API servers are no longer followed when checking availability with requests to `/apis/$group/$version`", - "markdown": "Kube-apiserver: redirects from backend API servers are no longer followed when checking availability with requests to `/apis/$group/$version` ([#112772](https://github.com/kubernetes/kubernetes/pull/112772), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112772", - "pr_number": 112772, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "112785": { - "commit": "71ca3dad894c417b823de24b6d6d1ee411ef3dec", - "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. ([#112785](https://github.com/kubernetes/kubernetes/pull/112785), [@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/112785", - "pr_number": 112785, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "cloud-provider" - ], - "duplicate": true - }, - "112792": { - "commit": "b4eec3c2ad8d0645a10b4e911738627b7ecb2809", - "text": "Added a new feature gate `CelValidatingAdmissionExtensibility` to enable expression validation for Admission Control.", - "markdown": "Added a new feature gate `CelValidatingAdmissionExtensibility` to enable expression validation for Admission Control. ([#112792](https://github.com/kubernetes/kubernetes/pull/112792), [@cici37](https://github.com/cici37)) [SIG API Machinery]", - "documentation": [ - { - "description": "[KEP]", - "url": "http://kep.k8s.io/3488", - "type": "external" - } - ], - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112792", - "pr_number": 112792, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "112797": { - "commit": "8ddbd892f24d895bd49563ddaa7614ef3c21f53f", - "text": "kube-apiserver: the unused `--master-service-namespace` flag was deprecated and will be removed in v1.27.", - "markdown": "Kube-apiserver: the unused `--master-service-namespace` flag was deprecated and will be removed in v1.27. ([#112797](https://github.com/kubernetes/kubernetes/pull/112797), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112797", - "pr_number": 112797, - "areas": [ - "apiserver" - ], - "kinds": [ - "deprecation" - ], - "sigs": [ - "api-machinery" - ] - }, - "112806": { - "commit": "c1602669a667a82b585389b3a70d44cf360b1389", - "text": "Service session affinity timeout tests are no longer required for Kubernetes network plugin conformance due to variations in existing implementations. New conformance tests will be developed to better express conformance in future releases.", - "markdown": "Service session affinity timeout tests are no longer required for Kubernetes network plugin conformance due to variations in existing implementations. New conformance tests will be developed to better express conformance in future releases. ([#112806](https://github.com/kubernetes/kubernetes/pull/112806), [@dcbw](https://github.com/dcbw)) [SIG Architecture, Network and Testing]", - "author": "dcbw", - "author_url": "https://github.com/dcbw", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112806", - "pr_number": 112806, - "areas": [ - "test", - "conformance" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "testing", - "architecture" - ], - "duplicate": true - }, - "112824": { - "commit": "0ef0fa0e821fa6c64fb02b4a774d3b0fd38e466e", - "text": "The ExpandedDNSConfig feature has graduated to beta and is enabled by default. Note that this feature requires container runtime support.", - "markdown": "The ExpandedDNSConfig feature has graduated to beta and is enabled by default. Note that this feature requires container runtime support. ([#112824](https://github.com/kubernetes/kubernetes/pull/112824), [@gjkim42](https://github.com/gjkim42)) [SIG Network and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2595-expanded-dns-config", - "type": "KEP" - } - ], - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112824", - "pr_number": 112824, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "testing" - ], - "feature": true, - "duplicate": true - }, - "112837": { - "commit": "3ef7784b75e0005d96f1d64d55b822f346f85fb5", - "text": "Fixed an issue in `winkernel` proxier that causes proxy rules to leak anytime service backends are modified.", - "markdown": "Fixed an issue in `winkernel` proxier that causes proxy rules to leak anytime service backends are modified. ([#112837](https://github.com/kubernetes/kubernetes/pull/112837), [@daschott](https://github.com/daschott))", - "author": "daschott", - "author_url": "https://github.com/daschott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112837", - "pr_number": 112837, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112838": { - "commit": "32ea818d21c64bc0f9ab65b131d763e0c4401f79", - "text": "The `LegacyServiceAccountTokenNoAutoGeneration` feature gate was promoted to GA.", - "markdown": "The `LegacyServiceAccountTokenNoAutoGeneration` feature gate was promoted to GA. ([#112838](https://github.com/kubernetes/kubernetes/pull/112838), [@zshihang](https://github.com/zshihang))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/2799-reduction-of-secret-based-service-account-token", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112838", - "pr_number": 112838, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "112855": { - "commit": "d0e86111ef91615f3a17f860a2e9e6aa0c6a259a", - "text": "Added kubelet metrics to track the cpumanager cpu allocation and pinning.", - "markdown": "Added kubelet metrics to track the cpumanager cpu allocation and pinning. ([#112855](https://github.com/kubernetes/kubernetes/pull/112855), [@ffromani](https://github.com/ffromani))", - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112855", - "pr_number": 112855, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "112884": { - "commit": "e11e226b23c0213021a6678002132ad102d488e7", - "text": "Introduce `ComponentSLIs` alpha feature-gate for component SLIs metrics endpoint.", - "markdown": "Introduce `ComponentSLIs` alpha feature-gate for component SLIs metrics endpoint. ([#112884](https://github.com/kubernetes/kubernetes/pull/112884), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery]", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112884", - "pr_number": 112884, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "112895": { - "commit": "c98aef484d59dd92bb8bfc2cf02d4bc7c10f93c9", - "text": "Moved `MixedProtocolLBService` from beta to GA.", - "markdown": "Moved `MixedProtocolLBService` from beta to GA. ([#112895](https://github.com/kubernetes/kubernetes/pull/112895), [@janosi](https://github.com/janosi))", - "author": "janosi", - "author_url": "https://github.com/janosi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112895", - "pr_number": 112895, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "112900": { - "commit": "8836d51e4331920883dd1a0e57c89bbdb64aa31e", - "text": "Kubernetes is now built with Go 1.19.2", - "markdown": "Kubernetes is now built with Go 1.19.2 ([#112900](https://github.com/kubernetes/kubernetes/pull/112900), [@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/112900", - "pr_number": 112900, - "areas": [ - "test", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "112905": { - "commit": "2f837dc113ba35f84e7012a6d1b06b075b349353", - "text": "For `kubectl`, `--server-side` now migrates ownership of all fields used by client-side-apply to the specified `--fieldmanager`. This prevents fields previously specified using kubectl from being able to live outside of server-side-apply's management and become undeleteable.", - "markdown": "For `kubectl`, `--server-side` now migrates ownership of all fields used by client-side-apply to the specified `--fieldmanager`. This prevents fields previously specified using kubectl from being able to live outside of server-side-apply's management and become undeleteable. ([#112905](https://github.com/kubernetes/kubernetes/pull/112905), [@alexzielenski](https://github.com/alexzielenski))", - "documentation": [ - { - "description": "[Discussion]", - "url": "https://github.com/kubernetes/enhancements/pull/3518#discussion_r984724392", - "type": "KEP" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112905", - "pr_number": 112905, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cli", - "testing" - ], - "duplicate": true - }, - "112907": { - "commit": "609bf91c95bdaae1034dbee7ba82e41875915e32", - "text": "'`registered_metric_total` will now report the number of metrics broken down by\nstability level and deprecated version.'\n", - "markdown": "'`registered_metric_total` will now report the number of metrics broken down by\n stability level and deprecated version.'\n ([#112907](https://github.com/kubernetes/kubernetes/pull/112907), [@logicalhan](https://github.com/logicalhan))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3466", - "type": "external" - } - ], - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112907", - "pr_number": 112907, - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "112914": { - "commit": "243ba086e7f4cb73ea32bdd25d635d06cda26085", - "text": "Added a `--topology-manager-policy-options` flag to the kubelet to support fine tuning the topology manager policies. The first policy option, `prefer-closest-numa-nodes`, allows these policies to favor sets of NUMA nodes with shorter distance between nodes when making admission decisions.", - "markdown": "Added a `--topology-manager-policy-options` flag to the kubelet to support fine tuning the topology manager policies. The first policy option, `prefer-closest-numa-nodes`, allows these policies to favor sets of NUMA nodes with shorter distance between nodes when making admission decisions. ([#112914](https://github.com/kubernetes/kubernetes/pull/112914), [@PiotrProkop](https://github.com/PiotrProkop))", - "author": "PiotrProkop", - "author_url": "https://github.com/PiotrProkop", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112914", - "pr_number": 112914, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "112924": { - "commit": "b60176972182bc2a459e019bc039dfcffa2ff868", - "text": "Removing Windows Server, Version 20H2 flavors from various container images.", - "markdown": "Removing Windows Server, Version 20H2 flavors from various container images. ([#112924](https://github.com/kubernetes/kubernetes/pull/112924), [@marosset](https://github.com/marosset))", - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112924", - "pr_number": 112924, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "windows", - "testing" - ], - "duplicate": true - }, - "112939": { - "commit": "040d7aaafa7c0ec8509b2405e70df2c1b7b350af", - "text": "Changed `preemption_victims` metric bucket from `LinearBuckets` to `ExponentialBuckets`.", - "markdown": "Changed `preemption_victims` metric bucket from `LinearBuckets` to `ExponentialBuckets`. ([#112939](https://github.com/kubernetes/kubernetes/pull/112939), [@lengrongfu](https://github.com/lengrongfu))", - "author": "lengrongfu", - "author_url": "https://github.com/lengrongfu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112939", - "pr_number": 112939, - "areas": [ - "stable-metrics" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "112945": { - "commit": "5301d921505971504867f88db9597c6d8e3e1957", - "text": "kubeadm: sub-phases are now able to support the dry-run mode, e.g. kubeadm reset phase cleanup-node --dry-run", - "markdown": "Kubeadm: sub-phases are now able to support the dry-run mode, e.g. kubeadm reset phase cleanup-node --dry-run ([#112945](https://github.com/kubernetes/kubernetes/pull/112945), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle]", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112945", - "pr_number": 112945, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "112948": { - "commit": "9bedff1147837118e1892c262992ccef42ea4041", - "text": "Fixed the occasional double-counting of the `job_finished_total` metric.", - "markdown": "Fixed the occasional double-counting of the `job_finished_total` metric. ([#112948](https://github.com/kubernetes/kubernetes/pull/112948), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112948", - "pr_number": 112948, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "instrumentation", - "testing", - "architecture" - ], - "duplicate": true - }, - "112961": { - "commit": "2ef00038d331e781799939c50ebebcfd283d85b1", - "text": "Added alpha support for `WindowsHostNetworking` feature.", - "markdown": "Added alpha support for `WindowsHostNetworking` feature. ([#112961](https://github.com/kubernetes/kubernetes/pull/112961), [@marosset](https://github.com/marosset))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/3503-host-network-support-for-windows-pods", - "type": "KEP" - } - ], - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112961", - "pr_number": 112961, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "windows" - ], - "feature": true, - "duplicate": true - }, - "112978": { - "commit": "335fd41484a86bcd4d213924871eb1cabc6c6244", - "text": "When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on kube-controller-manager, allowing you to scrape health check metrics.", - "markdown": "When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on kube-controller-manager, allowing you to scrape health check metrics. ([#112978](https://github.com/kubernetes/kubernetes/pull/112978), [@logicalhan](https://github.com/logicalhan))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3466", - "type": "external" - } - ], - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112978", - "pr_number": 112978, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "112979": { - "commit": "859ada198f51a73d2ce48fafdf7ab9153e653f3b", - "text": "Fixed issue where the APIServer would panic on startup if an egress selector without a controlplane configuration is specified when using APIServerTracing.", - "markdown": "Fixed issue where the APIServer would panic on startup if an egress selector without a controlplane configuration is specified when using APIServerTracing. ([#112979](https://github.com/kubernetes/kubernetes/pull/112979), [@dashpole](https://github.com/dashpole))", - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112979", - "pr_number": 112979, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "112980": { - "commit": "25dc4c4f320ecb75b936220c1c66741bce4b9014", - "text": "Graduated Kubelet Device Manager to GA.", - "markdown": "Graduated Kubelet Device Manager to GA. ([#112980](https://github.com/kubernetes/kubernetes/pull/112980), [@swatisehgal](https://github.com/swatisehgal))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3574", - "type": "KEP" - } - ], - "author": "swatisehgal", - "author_url": "https://github.com/swatisehgal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112980", - "pr_number": 112980, - "areas": [ - "kubelet", - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "112989": { - "commit": "054d86feb42b67bb13608d9aa9a7c986750da753", - "text": "Updates `golang.org/x/text`` to `v0.3.8`` to fix CVE-2022-32149", - "markdown": "Updates `golang.org/x/text`` to `v0.3.8`` to fix CVE-2022-32149 ([#112989](https://github.com/kubernetes/kubernetes/pull/112989), [@ameukam](https://github.com/ameukam))", - "author": "ameukam", - "author_url": "https://github.com/ameukam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112989", - "pr_number": 112989, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "113005": { - "commit": "3b8cfefaee7bd10487db8e1a53b372496bb32d95", - "text": "In `kubeadm`, command `kubeadm join phase control-plane-prepare certs` now supports to run with `dry-run` mode on it's own.", - "markdown": "In `kubeadm`, command `kubeadm join phase control-plane-prepare certs` now supports to run with `dry-run` mode on it's own. ([#113005](https://github.com/kubernetes/kubernetes/pull/113005), [@chendave](https://github.com/chendave))", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113005", - "pr_number": 113005, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "113008": { - "commit": "ead17f3dc806d54b1fa2dc6e7a95180b4b90460b", - "text": "'Promoted `cronjob_job_creation_skew` metric to stable to follow the cronjob v2 controller,\nthe following metrics had their name updated to match metrics API guidelines:\n - `cronjob_job_creation_skew_duration_seconds` -\u003e `job_creation_skew_duration_seconds`.'", - "markdown": "'Promoted `cronjob_job_creation_skew` metric to stable to follow the cronjob v2 controller,\n the following metrics had their name updated to match metrics API guidelines:\n - `cronjob_job_creation_skew_duration_seconds` -\u003e `job_creation_skew_duration_seconds`.' ([#113008](https://github.com/kubernetes/kubernetes/pull/113008), [@soltysh](https://github.com/soltysh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/19", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113008", - "pr_number": 113008, - "areas": [ - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "instrumentation" - ], - "duplicate": true - }, - "113010": { - "commit": "aef9a37df93b7207d7aac9fe4b8e19b6129f8c7a", - "text": "'Promoted job-related metrics to stable to follow IndexedJobs GA. The following metrics have their name updated to match metrics API guidelines:\n- `job_sync_total` -\u003e `job_syncs_total`\n- `job_finished_total` -\u003e `jobs_finished_total`'", - "markdown": "'Promoted job-related metrics to stable to follow IndexedJobs GA. The following metrics have their name updated to match metrics API guidelines:\n - `job_sync_total` -\u003e `job_syncs_total`\n - `job_finished_total` -\u003e `jobs_finished_total`' ([#113010](https://github.com/kubernetes/kubernetes/pull/113010), [@soltysh](https://github.com/soltysh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2214", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113010", - "pr_number": 113010, - "areas": [ - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "instrumentation" - ], - "duplicate": true - }, - "113015": { - "commit": "52f5816b8b9ed030dd1ebc4baefc6527f74254ed", - "text": "In `kube-apiserver`, custom resources can now be specified in the `--encryption-provider-config` file and can be encrypted in etcd.", - "markdown": "In `kube-apiserver`, custom resources can now be specified in the `--encryption-provider-config` file and can be encrypted in etcd. ([#113015](https://github.com/kubernetes/kubernetes/pull/113015), [@ritazh](https://github.com/ritazh))", - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113015", - "pr_number": 113015, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true - }, - "113018": { - "commit": "433787d25ba51755bb913eb6a33d1b37e6444aeb", - "text": "Graduated Kubelet CPU Manager to GA.", - "markdown": "Graduated Kubelet CPU Manager to GA. ([#113018](https://github.com/kubernetes/kubernetes/pull/113018), [@ffromani](https://github.com/ffromani))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3570", - "type": "KEP" - } - ], - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113018", - "pr_number": 113018, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113021": { - "commit": "1a41cb898547683b73a6f91b6d731d439c84f48a", - "text": "kubelet: Fixed a startup crash in devicemanager.", - "markdown": "Kubelet: Fixed a startup crash in devicemanager. ([#113021](https://github.com/kubernetes/kubernetes/pull/113021), [@rphillips](https://github.com/rphillips))", - "author": "rphillips", - "author_url": "https://github.com/rphillips", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113021", - "pr_number": 113021, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "113026": { - "commit": "52b47dac4fe26644a91f44191ff7052b73c3afd7", - "text": "When `ComponentSLIs` feature gate is enabled, `/metrics/slis` becomes available on kube-scheduler, allowing you to scrape health check metrics.", - "markdown": "When `ComponentSLIs` feature gate is enabled, `/metrics/slis` becomes available on kube-scheduler, allowing you to scrape health check metrics. ([#113026](https://github.com/kubernetes/kubernetes/pull/113026), [@Richabanker](https://github.com/Richabanker))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3466", - "type": "external" - } - ], - "author": "Richabanker", - "author_url": "https://github.com/Richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113026", - "pr_number": 113026, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "113030": { - "commit": "a497c56c33aca254e69513fcd46c0c76c8fadcab", - "text": "If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on kubelet, allowing you to scrape health check metrics.", - "markdown": "If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on kubelet, allowing you to scrape health check metrics. ([#113030](https://github.com/kubernetes/kubernetes/pull/113030), [@Richabanker](https://github.com/Richabanker)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3466", - "type": "external" - } - ], - "author": "Richabanker", - "author_url": "https://github.com/Richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113030", - "pr_number": 113030, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "113041": { - "commit": "843ad71cac98bcfff9f367a8ad90246cbc57d71c", - "text": "Fixed a bug where the kubelet choose the wrong container by its name when running `kubectl exec`.", - "markdown": "Fixed a bug where the kubelet choose the wrong container by its name when running `kubectl exec`. ([#113041](https://github.com/kubernetes/kubernetes/pull/113041), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113041", - "pr_number": 113041, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "113057": { - "commit": "b6e8dfec61c4080f9db8667cec11ba6f4a3bf4bf", - "text": "When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on `kube-proxy` allowing you to scrape health check metrics.", - "markdown": "When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on `kube-proxy` allowing you to scrape health check metrics. ([#113057](https://github.com/kubernetes/kubernetes/pull/113057), [@Richabanker](https://github.com/Richabanker))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3466", - "type": "external" - } - ], - "author": "Richabanker", - "author_url": "https://github.com/Richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113057", - "pr_number": 113057, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "113113": { - "commit": "2b6abb1b333737edbd8e44015de4e2867b6118c9", - "text": "The time duration of a failed or unschedulable scheduling attempt will be longer, it \nnow includes the time duration of the unreserve operation.", - "markdown": "The time duration of a failed or unschedulable scheduling attempt will be longer, it \n now includes the time duration of the unreserve operation. ([#113113](https://github.com/kubernetes/kubernetes/pull/113113), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113113", - "pr_number": 113113, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "113116": { - "commit": "bbbb79712cb6b0a72b2695f21a95ad7bb4cc45e6", - "text": "Added a `--prune-allowlist` flag that can be used with `kubectl apply --prune`. This flag now replaces and functions the same as the `--prune-whitelist` flag, which has been deprecated.", - "markdown": "Added a `--prune-allowlist` flag that can be used with `kubectl apply --prune`. This flag now replaces and functions the same as the `--prune-whitelist` flag, which has been deprecated. ([#113116](https://github.com/kubernetes/kubernetes/pull/113116), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113116", - "pr_number": 113116, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "113133": { - "commit": "615929ed889e7bf921798142ecdef9f87832da43", - "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))", - "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" - ] - }, - "113146": { - "commit": "b0cbf71f5c443460679052ca0cf4800e9d61ab5b", - "text": "Adds alpha --output plaintext protected by environment variable `KUBECTL_EXPLAIN_OPENAPIV3`", - "markdown": "Adds alpha --output plaintext protected by environment variable `KUBECTL_EXPLAIN_OPENAPIV3` ([#113146](https://github.com/kubernetes/kubernetes/pull/113146), [@alexzielenski](https://github.com/alexzielenski)) [SIG CLI]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3515-kubectl-explain-openapiv3", - "type": "KEP" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113146", - "pr_number": 113146, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "113160": { - "commit": "7cd98dec08cbe3ac1ed7d5238bb179760103795d", - "text": "Azure File CSI migration is now GA.", - "markdown": "Azure File CSI migration is now GA. ([#113160](https://github.com/kubernetes/kubernetes/pull/113160), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113160", - "pr_number": 113160, - "areas": [ - "provider/azure" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "113171": { - "commit": "8058e8eff8ba8541ddd48cd54bbb19a3fce62c09", - "text": "Aggregated discovery will be alpha and can be toggled with the `AggregatedDiscoveryEndpoint` feature flag.", - "markdown": "Aggregated discovery will be alpha and can be toggled with the `AggregatedDiscoveryEndpoint` feature flag. ([#113171](https://github.com/kubernetes/kubernetes/pull/113171), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113171", - "pr_number": 113171, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "kubeadm", - "conformance", - "code-generation", - "ipvs", - "e2e-test-framework", - "dependency", - "stable-metrics" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "scalability", - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "autoscaling", - "auth", - "apps", - "cli", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113172": { - "commit": "ae6dc598bd23c29480ce5ec426b75954dbd1b65b", - "text": "API Server Tracing now includes a variety of new spans and span events.", - "markdown": "API Server Tracing now includes a variety of new spans and span events. ([#113172](https://github.com/kubernetes/kubernetes/pull/113172), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Architecture, Auth, Instrumentation, Network, Node and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/1954332075e9df9b51e1b04eecbb22537308f102/keps/sig-instrumentation/647-apiserver-tracing", - "type": "KEP" - } - ], - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113172", - "pr_number": 113172, - "areas": [ - "kubelet", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "scheduling", - "node", - "api-machinery", - "auth", - "instrumentation", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "113176": { - "commit": "2313e2b8256000b3012d7bb4df2ecdf5fcf09604", - "text": "Added new metric `job_controller_terminated_pods_tracking_finalizer` which can be used to monitor whether the job controller is removing Pod finalizers from terminated Pods after accounting them in Job status.", - "markdown": "Added new metric `job_controller_terminated_pods_tracking_finalizer` which can be used to monitor whether the job controller is removing Pod finalizers from terminated Pods after accounting them in Job status. ([#113176](https://github.com/kubernetes/kubernetes/pull/113176), [@alculquicondor](https://github.com/alculquicondor))", - "documentation": [ - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#job-tracking-with-finalizers", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113176", - "pr_number": 113176, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113186": { - "commit": "d94261e904c90578e913c42c4d2a0fc8cb30937f", - "text": "Added a new namespace alpha field to `DataSourceRef` field in `PersistentVolumeClaim` API.", - "markdown": "Added a new namespace alpha field to `DataSourceRef` field in `PersistentVolumeClaim` API. ([#113186](https://github.com/kubernetes/kubernetes/pull/113186), [@ttakahashi21](https://github.com/ttakahashi21))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/3294-provision-volumes-from-cross-namespace-snapshots", - "type": "KEP" - } - ], - "author": "ttakahashi21", - "author_url": "https://github.com/ttakahashi21", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113186", - "pr_number": 113186, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113198": { - "commit": "3df170d1c49ed8a75df0a87ca4ba335cfa600145", - "text": "STEP: expect not showing any WARNING message 10/19/22 21:20:25.015\nOct 19 21:20:25.015: INFO: Running '/home/prow/go/src/k8s.io/kubernetes/_output/bin/kubectl --server=https://[::1]:34867 --kubeconfig=/root/.kube/kind-test-config --namespace=kubectl-6045 alpha events --types=WARNING --for=pod/e2e-test-httpd-pod'\nOct 19 21:20:25.114: INFO: stderr: \"\"\nOct 19 21:20:25.114: INFO: stdout: \"LAST SEEN TYPE REASON OBJECT MESSAGE\\n27s (x2 over 29s) Warning FailedMount Pod/e2e-test-httpd-pod MountVolume.SetUp failed for volume \\\"kube-api-access-9gvsx\\\" : failed to sync configmap cache: timed out waiting for the condition\\n\"\nOct 19 21:20:25.114: FAIL: unexpected WARNING event fired", - "markdown": "STEP: expect not showing any WARNING message 10/19/22 21:20:25.015\n Oct 19 21:20:25.015: INFO: Running '/home/prow/go/src/k8s.io/kubernetes/_output/bin/kubectl --server=https://[::1]:34867 --kubeconfig=/root/.kube/kind-test-config --namespace=kubectl-6045 alpha events --types=WARNING --for=pod/e2e-test-httpd-pod'\n Oct 19 21:20:25.114: INFO: stderr: \"\"\n Oct 19 21:20:25.114: INFO: stdout: \"LAST SEEN TYPE REASON OBJECT MESSAGE\\n27s (x2 over 29s) Warning FailedMount Pod/e2e-test-httpd-pod MountVolume.SetUp failed for volume \\\"kube-api-access-9gvsx\\\" : failed to sync configmap cache: timed out waiting for the condition\\n\"\n Oct 19 21:20:25.114: FAIL: unexpected WARNING event fired ([#113198](https://github.com/kubernetes/kubernetes/pull/113198), [@pacoxu](https://github.com/pacoxu)) [SIG CLI and Testing]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113198", - "pr_number": 113198, - "areas": [ - "test" - ], - "kinds": [ - "flake" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "113206": { - "commit": "b7f5de17aeef93481f32a4cb804a72cd9ed9c8f3", - "text": "Fixed cost estimation of token creation request for service account in Priority and Fairness.", - "markdown": "Fixed cost estimation of token creation request for service account in Priority and Fairness. ([#113206](https://github.com/kubernetes/kubernetes/pull/113206), [@marseel](https://github.com/marseel))", - "author": "marseel", - "author_url": "https://github.com/marseel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113206", - "pr_number": 113206, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "113212": { - "commit": "dbb3b4f340d11ccc87a05a70af1c2f327b5f4815", - "text": "The `e2e.test` binary no longer emits JSON structs to document progress.", - "markdown": "The `e2e.test` binary no longer emits JSON structs to document progress. ([#113212](https://github.com/kubernetes/kubernetes/pull/113212), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113212", - "pr_number": 113212, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ] - }, - "113217": { - "commit": "f522df5b49e3165f228fc6e3fd03df76c738bb72", - "text": "API Server tracing now includes the latency of authorization, priorityandfairness, impersonation, audit, and authentication filters.", - "markdown": "API Server tracing now includes the latency of authorization, priorityandfairness, impersonation, audit, and authentication filters. ([#113217](https://github.com/kubernetes/kubernetes/pull/113217), [@dashpole](https://github.com/dashpole))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/bddca24910fb349e2eb0ac1c822c77f0f32fe9c6/keps/sig-instrumentation/647-apiserver-tracing/README.md", - "type": "KEP" - } - ], - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113217", - "pr_number": 113217, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "113225": { - "commit": "d3601a0f0625503993539809b1ef9f59c709a237", - "text": "'`DelegateFSGroupToCSIDriver` feature is GA.'\n", - "markdown": "'`DelegateFSGroupToCSIDriver` feature is GA.'\n ([#113225](https://github.com/kubernetes/kubernetes/pull/113225), [@bertinatto](https://github.com/bertinatto))", - "author": "bertinatto", - "author_url": "https://github.com/bertinatto", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113225", - "pr_number": 113225, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "113274": { - "commit": "8c77820759cc28a5d82e9a68f3d335d1a27f4466", - "text": "New Pod API field `.spec.schedulingGates` was introduced to enable users to control when to mark a Pod as scheduling ready.", - "markdown": "New Pod API field `.spec.schedulingGates` was introduced to enable users to control when to mark a Pod as scheduling ready. ([#113274](https://github.com/kubernetes/kubernetes/pull/113274), [@Huang-Wei](https://github.com/Huang-Wei))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3521-pod-scheduling-readiness", - "type": "KEP" - } - ], - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113274", - "pr_number": 113274, - "areas": [ - "test", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113275": { - "commit": "95bd687a284f63535cbf48b0696d8ae57c9929ef", - "text": "'A new `preEnqueue` extension point was added to scheduler's component config\n`v1beta2/v1beta3/v1`.'\n", - "markdown": "'A new `preEnqueue` extension point was added to scheduler's component config\n `v1beta2/v1beta3/v1`.'\n ([#113275](https://github.com/kubernetes/kubernetes/pull/113275), [@Huang-Wei](https://github.com/Huang-Wei))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3521-pod-scheduling-readiness", - "type": "KEP" - } - ], - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113275", - "pr_number": 113275, - "areas": [ - "test", - "code-generation", - "e2e-test-framework", - "stable-metrics" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113291": { - "commit": "f328d3dc3d6d7b19045635372f2f7fabd385435e", - "text": "Fixed the `PodAndContainerStatsFromCRI` feature, instead of supplementing with stats from cAdvisor.", - "markdown": "Fixed the `PodAndContainerStatsFromCRI` feature, instead of supplementing with stats from cAdvisor. ([#113291](https://github.com/kubernetes/kubernetes/pull/113291), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2371-cri-pod-container-stats#current-fulfiller-of-metrics-endpoints--future-proposal", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113291", - "pr_number": 113291, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "instrumentation" - ], - "duplicate": true - }, - "113304": { - "commit": "3c9928e4f87c1d023e595292e6139cbd8dfedd5c", - "text": "The `kube-scheduler` and `kube-controller-manager` now use server side apply to set conditions related to pod disruption.", - "markdown": "The `kube-scheduler` and `kube-controller-manager` now use server side apply to set conditions related to pod disruption. ([#113304](https://github.com/kubernetes/kubernetes/pull/113304), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113304", - "pr_number": 113304, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "scheduling", - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "113307": { - "commit": "c8a3657bde08fde0240cba2e8579b160e95bc459", - "text": "Updated the Lease identity naming format for the `APIServerIdentity` feature to use a persistent name.", - "markdown": "Updated the Lease identity naming format for the `APIServerIdentity` feature to use a persistent name. ([#113307](https://github.com/kubernetes/kubernetes/pull/113307), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113307", - "pr_number": 113307, - "areas": [ - "test", - "kubelet", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113310": { - "commit": "19ab5b69108172a1c1725a23fdf4e30eba4ff629", - "text": "The metric `etcd_db_total_size_in_bytes` is renamed to `apiserver_storage_db_total_size_in_bytes`.", - "markdown": "The metric `etcd_db_total_size_in_bytes` is renamed to `apiserver_storage_db_total_size_in_bytes`. ([#113310](https://github.com/kubernetes/kubernetes/pull/113310), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery]", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113310", - "pr_number": 113310, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "113314": { - "commit": "595ea324113580ae61f4a15ab3e5b22303a195cf", - "text": "Introduced `v1alpha1` API for validating admission policies, enabling extensible admission control via CEL expressions (KEP 3488: CEL for Admission Control). To use, enable the `ValidatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` API via `--runtime-config`.", - "markdown": "Introduced `v1alpha1` API for validating admission policies, enabling extensible admission control via CEL expressions (KEP 3488: CEL for Admission Control). To use, enable the `ValidatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` API via `--runtime-config`. ([#113314](https://github.com/kubernetes/kubernetes/pull/113314), [@cici37](https://github.com/cici37))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3488-cel-admission-control", - "type": "KEP" - } - ], - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113314", - "pr_number": 113314, - "areas": [ - "test", - "apiserver", - "cloudprovider", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113323": { - "commit": "ca03736670550056e74b1241790286e1d8a574f2", - "text": "Metrics for `RetroactiveDefaultStorageClass` feature are now available. To see an attempt count for updating PVC retroactively with a default StorageClass see `retroactive_storageclass_total` metric and for total numer of errors see `retroactive_storageclass_errors_total`.", - "markdown": "Metrics for `RetroactiveDefaultStorageClass` feature are now available. To see an attempt count for updating PVC retroactively with a default StorageClass see `retroactive_storageclass_total` metric and for total numer of errors see `retroactive_storageclass_errors_total`. ([#113323](https://github.com/kubernetes/kubernetes/pull/113323), [@RomanBednar](https://github.com/RomanBednar))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3333", - "type": "KEP" - } - ], - "author": "RomanBednar", - "author_url": "https://github.com/RomanBednar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113323", - "pr_number": 113323, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "113324": { - "commit": "3628532311d9e4cd2cf269dd2a7591f5e3387fb0", - "text": "Extend the job `job_finished_total metric by new `reason` label and introduce a new job metric to count pod failures\nhandled by pod failure policy with respect to the action applied.", - "markdown": "Extend the job `job_finished_total metric by new `reason` label and introduce a new job metric to count pod failures\n handled by pod failure policy with respect to the action applied. ([#113324](https://github.com/kubernetes/kubernetes/pull/113324), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113324", - "pr_number": 113324, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113329": { - "commit": "06ba3835321b85419a2d444a7ac5e8847ba6ec79", - "text": "'`RetroactiveDefaultStorageClass` feature is now beta.'\n", - "markdown": "'`RetroactiveDefaultStorageClass` feature is now beta.'\n ([#113329](https://github.com/kubernetes/kubernetes/pull/113329), [@RomanBednar](https://github.com/RomanBednar))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3333", - "type": "KEP" - } - ], - "author": "RomanBednar", - "author_url": "https://github.com/RomanBednar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113329", - "pr_number": 113329, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113336": { - "commit": "ee640d775637bcb740f6af8f7f0ee03ef853b643", - "text": "'`CSIMigrationvSphere` was upgraded to GA and locked to true. Do not upgrade to K8s\n1.26 if you need Windows, or XFS, or raw block support until vSphere CSI Driver\nadds support for them in a version post v2.7.x.'\n", - "markdown": "'`CSIMigrationvSphere` was upgraded to GA and locked to true. Do not upgrade to K8s\n 1.26 if you need Windows, or XFS, or raw block support until vSphere CSI Driver\n adds support for them in a version post v2.7.x.'\n ([#113336](https://github.com/kubernetes/kubernetes/pull/113336), [@divyenpatel](https://github.com/divyenpatel))", - "author": "divyenpatel", - "author_url": "https://github.com/divyenpatel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113336", - "pr_number": 113336, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true - }, - "113340": { - "commit": "83fe3aae4b6dbde92c6b130ee059a28814300f52", - "text": "If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` now becomes available on cloud-controller-manager allowing you to scrape health check metrics.", - "markdown": "If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` now becomes available on cloud-controller-manager allowing you to scrape health check metrics. ([#113340](https://github.com/kubernetes/kubernetes/pull/113340), [@Richabanker](https://github.com/Richabanker))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3466", - "type": "external" - } - ], - "author": "Richabanker", - "author_url": "https://github.com/Richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113340", - "pr_number": 113340, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "113351": { - "commit": "b20ddbd75acf7e917bd1462688ff2f91edaf4052", - "text": "The `EndpointSliceTerminatingCondition` feature gate was graduated to GA. The gate is now locked and will be removed in v1.28.", - "markdown": "The `EndpointSliceTerminatingCondition` feature gate was graduated to GA. The gate is now locked and will be removed in v1.28. ([#113351](https://github.com/kubernetes/kubernetes/pull/113351), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113351", - "pr_number": 113351, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113360": { - "commit": "7e0e0c8ec3a6f68db0a9c259836a9ad8792fa67b", - "text": "Enabled the \"Retriable and non-retriable pod failures for jobs\" feature into beta.", - "markdown": "Enabled the \"Retriable and non-retriable pod failures for jobs\" feature into beta. ([#113360](https://github.com/kubernetes/kubernetes/pull/113360), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113360", - "pr_number": 113360, - "areas": [ - "test", - "kubelet", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "node", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113363": { - "commit": "fccd8b12d0ef817406fde33be8cc1b6b2f5ab718", - "text": "The `ProxyTerminatingEndpoints` feature is now Beta and enabled by default. When enabled, kube-proxy will attempt to route traffic to terminating pods when the traffic policy is `Local` and there are only terminating pods remaining on a node.", - "markdown": "The `ProxyTerminatingEndpoints` feature is now Beta and enabled by default. When enabled, kube-proxy will attempt to route traffic to terminating pods when the traffic policy is `Local` and there are only terminating pods remaining on a node. ([#113363](https://github.com/kubernetes/kubernetes/pull/113363), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113363", - "pr_number": 113363, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "113369": { - "commit": "421213b7a17b4d2753b3a00b7332a4bec3aba127", - "text": "The `ResourceVersion` returned in objects from delete responses is now consistent with the `ResourceVersion` contained in the delete watch event.", - "markdown": "The `ResourceVersion` returned in objects from delete responses is now consistent with the `ResourceVersion` contained in the delete watch event. ([#113369](https://github.com/kubernetes/kubernetes/pull/113369), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113369", - "pr_number": 113369, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "113375": { - "commit": "cc704f97784c3359db4690b97201ebfe6b481869", - "text": "'`PodDisruptionBudget` now adds an alpha `spec.unhealthyPodEvictionPolicy` field.\nWhen the `PDBUnhealthyPodEvictionPolicy` feature-gate is enabled in `kube-apiserver`,\nsetting this field to `\"AlwaysAllow\"` allows pods to be evicted if they do not\nhave a ready condition, regardless of whether the PodDisruptionBudget is currently\nhealthy.'\n", - "markdown": "'`PodDisruptionBudget` now adds an alpha `spec.unhealthyPodEvictionPolicy` field.\n When the `PDBUnhealthyPodEvictionPolicy` feature-gate is enabled in `kube-apiserver`,\n setting this field to `\"AlwaysAllow\"` allows pods to be evicted if they do not\n have a ready condition, regardless of whether the PodDisruptionBudget is currently\n healthy.'\n ([#113375](https://github.com/kubernetes/kubernetes/pull/113375), [@atiratree](https://github.com/atiratree))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3017-pod-healthy-policy-for-pdb", - "type": "KEP" - } - ], - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113375", - "pr_number": 113375, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113448": { - "commit": "ac59b03214807ef0319c052a02693f077ee88083", - "text": "kubeadm: removed the `UnversionedKubeletConfigMap` feature gate. The feature has been GA and locked to enabled since `v1.25`.", - "markdown": "Kubeadm: removed the `UnversionedKubeletConfigMap` feature gate. The feature has been GA and locked to enabled since `v1.25`. ([#113448](https://github.com/kubernetes/kubernetes/pull/113448), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/2915", - "type": "external" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113448", - "pr_number": 113448, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "113476": { - "commit": "9bbd0fbdb2bf7d9f6b21e268357316fa7c556f83", - "text": "Promoting `WindowsHostProcessContainers` to stable.", - "markdown": "Promoting `WindowsHostProcessContainers` to stable. ([#113476](https://github.com/kubernetes/kubernetes/pull/113476), [@marosset](https://github.com/marosset))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/1981-windows-privileged-container-support", - "type": "KEP" - } - ], - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113476", - "pr_number": 113476, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "apps", - "windows", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113481": { - "commit": "5899432f92d27a6acb9198336a7abcad51311c39", - "text": "Pod logs using `--timestamps` are not broken up with timestamps anymore.", - "markdown": "Pod logs using `--timestamps` are not broken up with timestamps anymore. ([#113481](https://github.com/kubernetes/kubernetes/pull/113481), [@rphillips](https://github.com/rphillips))", - "author": "rphillips", - "author_url": "https://github.com/rphillips", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113481", - "pr_number": 113481, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "113485": { - "commit": "1193a9abcbd6c6ce6fc7d4ce38872f1933ef5159", - "text": "'Priority and Fairness has introduced a new feature called _borrowing_ that allows an API priority level\nto borrow a number of seats from other priority level(s). As a cluster operator, you can enable borrowing\nfor a certain priority level configuration object via the two newly introduced fields `lendablePercent`, and\n`borrowingLimitPercent` located under the `.spec.limited` field of the designated priority level.\nThis change added the following metrics:\n- `apiserver_flowcontrol_nominal_limit_seats`: Nominal number of execution seats configured for each priority level\n- `apiserver_flowcontrol_lower_limit_seats`: Configured lower bound on number of execution seats available to each priority level\n- `apiserver_flowcontrol_upper_limit_seats`: Configured upper bound on number of execution seats available to each priority level\n- `apiserver_flowcontrol_demand_seats`: Observations, at the end of every nanosecond, of (the number of seats each priority level could use) / (nominal number of seats for that level)\n- `apiserver_flowcontrol_demand_seats_high_watermark`: High watermark, over last adjustment period, of demand_seats\n- `apiserver_flowcontrol_demand_seats_average`: Time-weighted average, over last adjustment period, of demand_seats\n- `apiserver_flowcontrol_demand_seats_stdev`: Time-weighted standard deviation, over last adjustment period, of demand_seats\n- `apiserver_flowcontrol_demand_seats_smoothed`: Smoothed seat demands\n- `apiserver_flowcontrol_target_seats`: Seat allocation targets\n- `apiserver_flowcontrol_seat_fair_frac`: Fair fraction of server's concurrency to allocate to each priority level that can use it\n- `apiserver_flowcontrol_current_limit_seats`: current derived number of execution seats available to each priority level\nThe possibility of borrowing means that the old metric `apiserver_flowcontrol_request_concurrency_limit` can no longer mean both the configured concurrency limit and the enforced concurrency limit. Henceforth it means the configured concurrency limit.'", - "markdown": "'Priority and Fairness has introduced a new feature called _borrowing_ that allows an API priority level\n to borrow a number of seats from other priority level(s). As a cluster operator, you can enable borrowing\n for a certain priority level configuration object via the two newly introduced fields `lendablePercent`, and\n `borrowingLimitPercent` located under the `.spec.limited` field of the designated priority level.\n This change added the following metrics:\n - `apiserver_flowcontrol_nominal_limit_seats`: Nominal number of execution seats configured for each priority level\n - `apiserver_flowcontrol_lower_limit_seats`: Configured lower bound on number of execution seats available to each priority level\n - `apiserver_flowcontrol_upper_limit_seats`: Configured upper bound on number of execution seats available to each priority level\n - `apiserver_flowcontrol_demand_seats`: Observations, at the end of every nanosecond, of (the number of seats each priority level could use) / (nominal number of seats for that level)\n - `apiserver_flowcontrol_demand_seats_high_watermark`: High watermark, over last adjustment period, of demand_seats\n - `apiserver_flowcontrol_demand_seats_average`: Time-weighted average, over last adjustment period, of demand_seats\n - `apiserver_flowcontrol_demand_seats_stdev`: Time-weighted standard deviation, over last adjustment period, of demand_seats\n - `apiserver_flowcontrol_demand_seats_smoothed`: Smoothed seat demands\n - `apiserver_flowcontrol_target_seats`: Seat allocation targets\n - `apiserver_flowcontrol_seat_fair_frac`: Fair fraction of server's concurrency to allocate to each priority level that can use it\n - `apiserver_flowcontrol_current_limit_seats`: current derived number of execution seats available to each priority level\n The possibility of borrowing means that the old metric `apiserver_flowcontrol_request_concurrency_limit` can no longer mean both the configured concurrency limit and the enforced concurrency limit. Henceforth it means the configured concurrency limit.' ([#113485](https://github.com/kubernetes/kubernetes/pull/113485), [@MikeSpreitzer](https://github.com/MikeSpreitzer))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1040-priority-and-fairness#dispatching", - "type": "KEP" - } - ], - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113485", - "pr_number": 113485, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113491": { - "commit": "3efd107eb235d06feee95f80e461319d1dda7793", - "text": "'Pod Security admission: the pod-security `warn` level will now default to\nthe `enforce` level.'\n", - "markdown": "'Pod Security admission: the pod-security `warn` level will now default to\n the `enforce` level.'\n ([#113491](https://github.com/kubernetes/kubernetes/pull/113491), [@tallclair](https://github.com/tallclair))", - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113491", - "pr_number": 113491, - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "security" - ], - "feature": true, - "duplicate": true - }, - "113496": { - "commit": "7a465163694131e6d66fe95a7e91f2f8235306bf", - "text": "Graduated `ServiceInternalTrafficPolicy` feature to GA.", - "markdown": "Graduated `ServiceInternalTrafficPolicy` feature to GA. ([#113496](https://github.com/kubernetes/kubernetes/pull/113496), [@avoltz](https://github.com/avoltz))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2086", - "type": "KEP" - } - ], - "author": "avoltz", - "author_url": "https://github.com/avoltz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113496", - "pr_number": 113496, - "areas": [ - "ipvs" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113500": { - "commit": "c326b2713f0d2d836209409bf4387d8e9e84af76", - "text": "'`NodeInclusionPolicy` in `podTopologySpread` plugin is now enabled by default.'\n", - "markdown": "'`NodeInclusionPolicy` in `podTopologySpread` plugin is now enabled by default.'\n ([#113500](https://github.com/kubernetes/kubernetes/pull/113500), [@kerthcet](https://github.com/kerthcet))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/3094", - "type": "KEP" - } - ], - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113500", - "pr_number": 113500, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113501": { - "commit": "70263d55b281878121684337c0a7f205dabba5ec", - "text": "kubelet: fixed nil pointer in reflector start for standalone mode.", - "markdown": "Kubelet: fixed nil pointer in reflector start for standalone mode. ([#113501](https://github.com/kubernetes/kubernetes/pull/113501), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113501", - "pr_number": 113501, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "113510": { - "commit": "ac95e5b701dff7acc994dcdf5192264e7f6fe02a", - "text": "'Graduated `JobTrackingWithFinalizers` to stable.\nJobs created before the feature was enabled are still tracked without finalizers.\nJobs tracked with finalizers have the annotation batch.kubernetes.io/job-tracking.\nIf the annotation is present and the user attempts to remove it, the control plane adds it back.\nThe annotation `batch.kubernetes.io/job-tracking` is now deprecated.\nThe control plane will ignore it and stop adding it for new Jobs in v1.27.'", - "markdown": "'Graduated `JobTrackingWithFinalizers` to stable.\n Jobs created before the feature was enabled are still tracked without finalizers.\n Jobs tracked with finalizers have the annotation batch.kubernetes.io/job-tracking.\n If the annotation is present and the user attempts to remove it, the control plane adds it back.\n The annotation `batch.kubernetes.io/job-tracking` is now deprecated.\n The control plane will ignore it and stop adding it for new Jobs in v1.27.' ([#113510](https://github.com/kubernetes/kubernetes/pull/113510), [@alculquicondor](https://github.com/alculquicondor))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/a4b5f5c8e9aa857f9bf1f7df2a9a8b9ee660ed1e/keps/sig-apps/2307-job-tracking-without-lingering-pods#beta---ga-graduation", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#job-tracking-with-finalizers", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113510", - "pr_number": 113510, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113511": { - "commit": "d62cc3dc6d5c07fea79eafd866ac7e1217000ea8", - "text": "'`NodeOutOfServiceVolumeDetach` is now beta.'\n", - "markdown": "'`NodeOutOfServiceVolumeDetach` is now beta.'\n ([#113511](https://github.com/kubernetes/kubernetes/pull/113511), [@xing-yang](https://github.com/xing-yang))", - "author": "xing-yang", - "author_url": "https://github.com/xing-yang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113511", - "pr_number": 113511, - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node" - ], - "feature": true, - "duplicate": true - }, - "113519": { - "commit": "38bcc0c1537cdd0bf2e26968cf10f34002fc7db1", - "text": "Adds metrics `force_delete_pods_total` and `force_delete_pod_errors_total` in the Pod GC Controller.", - "markdown": "Adds metrics `force_delete_pods_total` and `force_delete_pod_errors_total` in the Pod GC Controller. ([#113519](https://github.com/kubernetes/kubernetes/pull/113519), [@xing-yang](https://github.com/xing-yang)) [SIG Apps]", - "author": "xing-yang", - "author_url": "https://github.com/xing-yang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113519", - "pr_number": 113519, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "113521": { - "commit": "b60b0c74c91a2dc12436503f63d1a3b266eb02d4", - "text": "Resolved an issue that caused winkernel proxier to treat stale VIPs as valid.", - "markdown": "Resolved an issue that caused winkernel proxier to treat stale VIPs as valid. ([#113521](https://github.com/kubernetes/kubernetes/pull/113521), [@daschott](https://github.com/daschott))", - "author": "daschott", - "author_url": "https://github.com/daschott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113521", - "pr_number": 113521, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true - }, - "113529": { - "commit": "b1dd1cd2f177ecf228cbbfb0db9327a276098be8", - "text": "A new API server flag `--encryption-provider-config-automatic-reload` was added to control when the encryption config should be automatically reloaded without needing to restart the server. All KMS plugins are now merged into a single healthz check at `/healthz/kms-providers` when reload is enabled, or when only KMS v2 plugins are used.", - "markdown": "A new API server flag `--encryption-provider-config-automatic-reload` was added to control when the encryption config should be automatically reloaded without needing to restart the server. All KMS plugins are now merged into a single healthz check at `/healthz/kms-providers` when reload is enabled, or when only KMS v2 plugins are used. ([#113529](https://github.com/kubernetes/kubernetes/pull/113529), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113529", - "pr_number": 113529, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true - }, - "113544": { - "commit": "0e530f44af57643f37ec87e22780becaf1567822", - "text": "Added publishing events when enabling/disabling `TopologyAwareHints`.", - "markdown": "Added publishing events when enabling/disabling `TopologyAwareHints`. ([#113544](https://github.com/kubernetes/kubernetes/pull/113544), [@LiorLieberman](https://github.com/LiorLieberman))", - "author": "LiorLieberman", - "author_url": "https://github.com/LiorLieberman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113544", - "pr_number": 113544, - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "apps" - ], - "feature": true, - "duplicate": true - }, - "113550": { - "commit": "2acad1b8c4b5f9a4991885ef34de1dc771139628", - "text": "Kubernetes is now built with Go `1.19.3`.", - "markdown": "Kubernetes is now built with Go `1.19.3`. ([#113550](https://github.com/kubernetes/kubernetes/pull/113550), [@xmudrii](https://github.com/xmudrii))", - "author": "xmudrii", - "author_url": "https://github.com/xmudrii", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113550", - "pr_number": 113550, - "areas": [ - "test", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "113580": { - "commit": "208b2b7ca9f211c0d4a8df903bfb65fd6065d527", - "text": "Fixed that disruption controller used to change the status of a stale disruption condition after 2 min when the `PodDisruptionConditions` feature gate is enabled.", - "markdown": "Fixed that disruption controller used to change the status of a stale disruption condition after 2 min when the `PodDisruptionConditions` feature gate is enabled. ([#113580](https://github.com/kubernetes/kubernetes/pull/113580), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113580", - "pr_number": 113580, - "kinds": [ - "bug" - ], - "sigs": [ - "auth" - ] - }, - "113596": { - "commit": "da735b541514f65ab4e693a28a3637fad7a288b3", - "text": "Added reconstruction of SELinux mount context after kubelet restart. Feature `SELinuxMountReadWriteOncePod` is now fully implemented and kubelet does not lose its cache of SELinux contexts after kubelet process restart.", - "markdown": "Added reconstruction of SELinux mount context after kubelet restart. Feature `SELinuxMountReadWriteOncePod` is now fully implemented and kubelet does not lose its cache of SELinux contexts after kubelet process restart. ([#113596](https://github.com/kubernetes/kubernetes/pull/113596), [@jsafrane](https://github.com/jsafrane))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling", - "type": "KEP" - } - ], - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113596", - "pr_number": 113596, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113609": { - "commit": "b4040b3b863737674a492f8fd415eff8503ba0b4", - "text": "Added alpha support for returning container and pod metrics from CRI, instead of cAdvsior.", - "markdown": "Added alpha support for returning container and pod metrics from CRI, instead of cAdvsior. ([#113609](https://github.com/kubernetes/kubernetes/pull/113609), [@haircommander](https://github.com/haircommander))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2371", - "type": "KEP" - } - ], - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113609", - "pr_number": 113609, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "instrumentation", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "113629": { - "commit": "3a99a5954d6497b4238d011cec4d33422d3957a0", - "text": "'Promoted the `APIServerIdentity` feature to Beta. By default, each `kube-apiserver`\nwill now create a Lease in the `kube-system` namespace. These lease objects can\nbe used to identify the number of active API servers in the cluster, and may also\nbe used for future features such as the Storage Version API.'\n", - "markdown": "'Promoted the `APIServerIdentity` feature to Beta. By default, each `kube-apiserver`\n will now create a Lease in the `kube-system` namespace. These lease objects can\n be used to identify the number of active API servers in the cluster, and may also\n be used for future features such as the Storage Version API.'\n ([#113629](https://github.com/kubernetes/kubernetes/pull/113629), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113629", - "pr_number": 113629, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113636": { - "commit": "56a0823730b9c4dafe06a18bd8de027b40d1971c", - "text": "kubectl shell completions for the bash shell now include descriptions.", - "markdown": "Kubectl shell completions for the bash shell now include descriptions. ([#113636](https://github.com/kubernetes/kubernetes/pull/113636), [@marckhouzam](https://github.com/marckhouzam))", - "author": "marckhouzam", - "author_url": "https://github.com/marckhouzam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113636", - "pr_number": 113636, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "113697": { - "commit": "a236e4ca6f3860a5acbbfc62bb3fdd88ac7e2757", - "text": "KMS: added validation for duplicate kms config name when auto reload is enabled. If you enabled automatic reload of encryption configuration with API server flag `--encryption-provider-config-automatic-reload`, ensure all the KMS provider names (v1 and v2) in the encryption configuration are unique.", - "markdown": "KMS: added validation for duplicate kms config name when auto reload is enabled. If you enabled automatic reload of encryption configuration with API server flag `--encryption-provider-config-automatic-reload`, ensure all the KMS provider names (v1 and v2) in the encryption configuration are unique. ([#113697](https://github.com/kubernetes/kubernetes/pull/113697), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113697", - "pr_number": 113697, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "duplicate_kind": true - }, - "113699": { - "commit": "f2c89045f45fc9d03ac49ba7e31c92933c739d20", - "text": "'`metav1.LabelSelectors` specified in API objects are now validated to ensure\nthey do not contain invalid label values that will error at time of use. Existing\ninvalid objects can be updated, but new objects are required to contain valid\nlabel selectors.'\n", - "markdown": "'`metav1.LabelSelectors` specified in API objects are now validated to ensure\n they do not contain invalid label values that will error at time of use. Existing\n invalid objects can be updated, but new objects are required to contain valid\n label selectors.'\n ([#113699](https://github.com/kubernetes/kubernetes/pull/113699), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113699", - "pr_number": 113699, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "network", - "storage", - "api-machinery", - "auth", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "113710": { - "commit": "e2b9fd760ddb3ab3215e71739b6845629ab533c0", - "text": "CLI flag `pod-eviction-timeout` is deprecated and will be removed together with `enable-taint-manager` in `v1.27`.", - "markdown": "CLI flag `pod-eviction-timeout` is deprecated and will be removed together with `enable-taint-manager` in `v1.27`. ([#113710](https://github.com/kubernetes/kubernetes/pull/113710), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113710", - "pr_number": 113710, - "kinds": [ - "feature", - "deprecation" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113711": { - "commit": "429f1527a7ac94e5280cb41931e74ac52d7a3fb1", - "text": "apiserver: used the correct error when logging errors updating managedFields.", - "markdown": "Apiserver: used the correct error when logging errors updating managedFields. ([#113711](https://github.com/kubernetes/kubernetes/pull/113711), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113711", - "pr_number": 113711, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "113719": { - "commit": "e21438fca5f5e6988091bf0b39be51fcc19cfd8b", - "text": "bumped `runc` to `v1.1.4`.", - "markdown": "Bumped `runc` to `v1.1.4`. ([#113719](https://github.com/kubernetes/kubernetes/pull/113719), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113719", - "pr_number": 113719, - "areas": [ - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "113735": { - "commit": "72a25b17726b3059982dcc740fb8d05ec0c24f95", - "text": "Renamed the feature gate for CEL in Admission Control to `ValidatingAdmissionPolicy`.", - "markdown": "Renamed the feature gate for CEL in Admission Control to `ValidatingAdmissionPolicy`. ([#113735](https://github.com/kubernetes/kubernetes/pull/113735), [@cici37](https://github.com/cici37))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3488-cel-admission-control", - "type": "KEP" - } - ], - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113735", - "pr_number": 113735, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "113749": { - "commit": "c61c3fc492424bfcfabf132650c2bc4404ef2727", - "text": "NOTE", - "markdown": "NOTE ([#113749](https://github.com/kubernetes/kubernetes/pull/113749), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113749", - "pr_number": 113749, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "113754": { - "commit": "e9ef6ee8b363b4e9b2d2d852ecc436d9bfdbd189", - "text": "'`kubelet_kubelet_credential_provider_plugin_duration` was renamed to `kubelet_credential_provider_plugin_duration`\nand `kubelet_kubelet_credential_provider_plugin_errors` was renamed to `kubelet_credential_provider_plugin_errors`.'\n", - "markdown": "'`kubelet_kubelet_credential_provider_plugin_duration` was renamed to `kubelet_credential_provider_plugin_duration`\n and `kubelet_kubelet_credential_provider_plugin_errors` was renamed to `kubelet_credential_provider_plugin_errors`.'\n ([#113754](https://github.com/kubernetes/kubernetes/pull/113754), [@logicalhan](https://github.com/logicalhan))", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113754", - "pr_number": 113754, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "instrumentation" - ], - "duplicate": true - }, - "113769": { - "commit": "37e73b419e455db34f5fe3e8d815418680ab23df", - "text": "Updated `cAdvisor` to `v0.46.0`.", - "markdown": "Updated `cAdvisor` to `v0.46.0`. ([#113769](https://github.com/kubernetes/kubernetes/pull/113769), [@bobbypage](https://github.com/bobbypage))", - "author": "bobbypage", - "author_url": "https://github.com/bobbypage", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113769", - "pr_number": 113769, - "areas": [ - "kubectl", - "cloudprovider", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "cli", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "113819": { - "commit": "763f68ef77ec0745d0f0772f381bc7af6001121a", - "text": "Promoted `kubectl alpha events` to `kubectl events`.", - "markdown": "Promoted `kubectl alpha events` to `kubectl events`. ([#113819](https://github.com/kubernetes/kubernetes/pull/113819), [@soltysh](https://github.com/soltysh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1440", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113819", - "pr_number": 113819, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113856": { - "commit": "af7cc0a60fa01138d56d9f46eee5cd06d01d20f1", - "text": "Known issue: Job field `.spec.podFailurePolicy.rules[*].onExitCode` might be ignored if the Pod is deleted before it terminates.", - "markdown": "Known issue: Job field `.spec.podFailurePolicy.rules[*].onExitCode` might be ignored if the Pod is deleted before it terminates. ([#113856](https://github.com/kubernetes/kubernetes/pull/113856), [@alculquicondor](https://github.com/alculquicondor))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/e3f3faeb899e5739db4bbbd60a56715f6a4e8b45/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113856", - "pr_number": 113856, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "67782": { - "commit": "07bca2d7919c192435949c53f81acff58d6f39eb", - "text": "The in-tree cloud provider for OpenStack (and the cinder volume provider) has been removed. Please use the external cloud provider and csi driver from [cloud-provider-openstack](https://github.com/kubernetes/cloud-provider-openstack) instead.", - "markdown": "The in-tree cloud provider for OpenStack (and the cinder volume provider) has been removed. Please use the external cloud provider and csi driver from [cloud-provider-openstack](https://github.com/kubernetes/cloud-provider-openstack) instead. ([#67782](https://github.com/kubernetes/kubernetes/pull/67782), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/67782", - "pr_number": 67782, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "provider/openstack", - "release-eng", - "kubeadm", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "release", - "cloud-provider" - ], - "duplicate": true - }, - "86139": { - "commit": "ad26b315f230ab0b1ce0ed3afed3f9569bff8457", - "text": "'Container `preStop` and `postStart` lifecycle handlers using `httpGet` now\nhonor the specified `scheme` and `headers` fields. This enables setting custom\nheaders and changing the scheme to `HTTPS`, consistent with container\nstartup/readiness/liveness probe capabilities. Lifecycle handlers configured\nwith `scheme: HTTPS` that encounter errors indicating the endpoint is actually\nusing HTTP fall back to making the request over HTTP for compatibility with\nprevious releases. When this happens, a `LifecycleHTTPFallback` event is recorded\nin the namespace of the pod and a `kubelet_lifecycle_handler_http_fallbacks_total`\nmetric in the kubelet is incremented. Cluster administrators can opt out of the\nexpanded lifecycle handler capabilities by setting\n`--feature-gates=ConsistentHTTPGetHandlers=false` in `kubelet`.'\n", - "markdown": "'Container `preStop` and `postStart` lifecycle handlers using `httpGet` now\n honor the specified `scheme` and `headers` fields. This enables setting custom\n headers and changing the scheme to `HTTPS`, consistent with container\n startup/readiness/liveness probe capabilities. Lifecycle handlers configured\n with `scheme: HTTPS` that encounter errors indicating the endpoint is actually\n using HTTP fall back to making the request over HTTP for compatibility with\n previous releases. When this happens, a `LifecycleHTTPFallback` event is recorded\n in the namespace of the pod and a `kubelet_lifecycle_handler_http_fallbacks_total`\n metric in the kubelet is incremented. Cluster administrators can opt out of the\n expanded lifecycle handler capabilities by setting\n `--feature-gates=ConsistentHTTPGetHandlers=false` in `kubelet`.'\n ([#86139](https://github.com/kubernetes/kubernetes/pull/86139), [@jasimmons](https://github.com/jasimmons))", - "author": "jasimmons", - "author_url": "https://github.com/jasimmons", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/86139", - "pr_number": 86139, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "conformance", - "ipvs", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "network", - "scheduling", - "storage", - "node", - "api-machinery", - "autoscaling", - "contributor-experience", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "release", - "architecture" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true - } +{ + "103177": { + "commit": "3cf75a2f760b8093f7c97f26b4b2b059f3777bec", + "text": "Added a method `StreamWithContext` to `remotecommand.Executor` to support cancelable SPDY executor stream.", + "markdown": "Added a method `StreamWithContext` to `remotecommand.Executor` to support cancelable SPDY executor stream. ([#103177](https://github.com/kubernetes/kubernetes/pull/103177), [@arkbriar](https://github.com/arkbriar))", + "author": "arkbriar", + "author_url": "https://github.com/arkbriar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/103177", + "pr_number": 103177, + "areas": [ + "test", + "kubelet", + "kubectl", + "e2e-test-framework" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "105867": { + "commit": "797536fc76854a856bc1d1156c2355705af461ca", + "text": "Shell completion now shows plugin names when appropriate. Furthermore, shell completion will work for plugins that provide such support.", + "markdown": "Shell completion now shows plugin names when appropriate. Furthermore, shell completion will work for plugins that provide such support. ([#105867](https://github.com/kubernetes/kubernetes/pull/105867), [@marckhouzam](https://github.com/marckhouzam))", + "author": "marckhouzam", + "author_url": "https://github.com/marckhouzam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/105867", + "pr_number": 105867, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "107896": { + "commit": "00532e305a3958ec08ce4453d9f234c4a0fbbbf8", + "text": "A new `pod_status_sync_duration_seconds` histogram is reported at alpha metrics stability that estimates how long the Kubelet takes to write a pod status change once it is detected.", + "markdown": "A new `pod_status_sync_duration_seconds` histogram is reported at alpha metrics stability that estimates how long the Kubelet takes to write a pod status change once it is detected. ([#107896](https://github.com/kubernetes/kubernetes/pull/107896), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps, Architecture, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling, Storage and Testing]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107896", + "pr_number": 107896, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "conformance", + "code-generation", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "scheduling", + "storage", + "node", + "cluster-lifecycle", + "apps", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "108250": { + "commit": "d86c013b0da0db4c0790270c4739c79d01ce1593", + "text": "Added a `kube-proxy` flag (`--iptables-localhost-nodeports`, default true) to allow disabling `NodePort` services on loopback addresses. Note: this only applies to iptables mode and ipv4.", + "markdown": "Added a `kube-proxy` flag (`--iptables-localhost-nodeports`, default true) to allow disabling `NodePort` services on loopback addresses. Note: this only applies to iptables mode and ipv4. ([#108250](https://github.com/kubernetes/kubernetes/pull/108250), [@cyclinder](https://github.com/cyclinder))", + "author": "cyclinder", + "author_url": "https://github.com/cyclinder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108250", + "pr_number": 108250, + "areas": [ + "test", + "kubelet", + "cloudprovider", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "scalability", + "storage", + "node", + "api-machinery", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108501": { + "commit": "85643c0f93064ad9f9bcd9303972d8308734d269", + "text": "Enabled `kube-controller-manager` to support '--concurrent-horizontal-pod-autoscaler-syncs' flag to set the number of horizontal pod autoscaler controller workers.", + "markdown": "Enabled `kube-controller-manager` to support '--concurrent-horizontal-pod-autoscaler-syncs' flag to set the number of horizontal pod autoscaler controller workers. ([#108501](https://github.com/kubernetes/kubernetes/pull/108501), [@zroubalik](https://github.com/zroubalik))", + "author": "zroubalik", + "author_url": "https://github.com/zroubalik", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108501", + "pr_number": 108501, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "autoscaling", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "108832": { + "commit": "17dd76f5d49848e0bcb057035cda7946b578584f", + "text": "Fixed relative CPU priority for pods where containers explicitly request zero cpu by giving the lowest priority instead of falling back to the cpu limit to avoid possible cpu starvation of other pods.", + "markdown": "Fixed relative CPU priority for pods where containers explicitly request zero cpu by giving the lowest priority instead of falling back to the cpu limit to avoid possible cpu starvation of other pods. ([#108832](https://github.com/kubernetes/kubernetes/pull/108832), [@waynepeking348](https://github.com/waynepeking348))", + "author": "waynepeking348", + "author_url": "https://github.com/waynepeking348", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108832", + "pr_number": 108832, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "108858": { + "commit": "c5242edd929fc40f97d3f6ee3e8874ac1b297087", + "text": "When the alpha `LegacyServiceAccountTokenTracking` feature gate is enabled, secret-based service account tokens will have a `kubernetes.io/legacy-token-last-used` applied to them containing the date they were last used.", + "markdown": "When the alpha `LegacyServiceAccountTokenTracking` feature gate is enabled, secret-based service account tokens will have a `kubernetes.io/legacy-token-last-used` applied to them containing the date they were last used. ([#108858](https://github.com/kubernetes/kubernetes/pull/108858), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth and Testing]", + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108858", + "pr_number": 108858, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "109189": { + "commit": "e721272d10dd6c4d85ff613182ba0eaddcec9272", + "text": "`kubectl config view` now automatically redacts any secret fields marked with a `datapolicy` tag.", + "markdown": "`kubectl config view` now automatically redacts any secret fields marked with a `datapolicy` tag. ([#109189](https://github.com/kubernetes/kubernetes/pull/109189), [@mpuckett159](https://github.com/mpuckett159))", + "author": "mpuckett159", + "author_url": "https://github.com/mpuckett159", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109189", + "pr_number": 109189, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "109505": { + "commit": "d96e052d981537ae9d2376ee6ac73f3ae6817f69", + "text": "Removed raising an error when setting an annotation with the same value, just ignore it.", + "markdown": "Removed raising an error when setting an annotation with the same value, just ignore it. ([#109505](https://github.com/kubernetes/kubernetes/pull/109505), [@zigarn](https://github.com/zigarn))", + "author": "zigarn", + "author_url": "https://github.com/zigarn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109505", + "pr_number": 109505, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "109525": { + "commit": "526650fc137b2e68267182b1b5116aa566be51e5", + "text": "`kubectl wait` command with `jsonpath` flag will wait for target path until timeout.\n", + "markdown": "`kubectl wait` command with `jsonpath` flag will wait for target path until timeout.\n ([#109525](https://github.com/kubernetes/kubernetes/pull/109525), [@jonyhy96](https://github.com/jonyhy96))", + "author": "jonyhy96", + "author_url": "https://github.com/jonyhy96", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109525", + "pr_number": 109525, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "110268": { + "commit": "3edbebe3488ccb085826d7a3a6d225101ff11ee6", + "text": "'The iptables kube-proxy backend now process service/endpoint changes\nmore efficiently in very large clusters.'", + "markdown": "'The iptables kube-proxy backend now process service/endpoint changes\n more efficiently in very large clusters.' ([#110268](https://github.com/kubernetes/kubernetes/pull/110268), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110268", + "pr_number": 110268, + "areas": [ + "ipvs" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "110498": { + "commit": "cf4d2cc545f62fcfd748a084dff7744f9402bf57", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#110498](https://github.com/kubernetes/kubernetes/pull/110498), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Release]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110498", + "pr_number": 110498, + "areas": [ + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "release" + ], + "do_not_publish": true + }, + "110559": { + "commit": "962235c86a1a934fc759be1d3fd3a764fa2efa18", + "text": "If more than one StorageClass is designated as default (via the \"storageclass.kubernetes.io/is-default-class\" annotation), choose the newest one instead of throwing an error.'", + "markdown": "If more than one StorageClass is designated as default (via the \"storageclass.kubernetes.io/is-default-class\" annotation), choose the newest one instead of throwing an error.' ([#110559](https://github.com/kubernetes/kubernetes/pull/110559), [@danishprakash](https://github.com/danishprakash))", + "author": "danishprakash", + "author_url": "https://github.com/danishprakash", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110559", + "pr_number": 110559, + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "apps" + ], + "feature": true, + "duplicate": true + }, + "110618": { + "commit": "4086b45af3761d59cb82af6ee427d2d6557c1cbc", + "text": "Dropped support for the Container Runtime Interface (CRI) version `v1alpha2`, which means that container runtimes just have to implement `v1`.", + "markdown": "Dropped support for the Container Runtime Interface (CRI) version `v1alpha2`, which means that container runtimes just have to implement `v1`. ([#110618](https://github.com/kubernetes/kubernetes/pull/110618), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110618", + "pr_number": 110618, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "security" + ], + "duplicate": true + }, + "110695": { + "commit": "5ade6c833fdde89618791b130bd2e9cad9519842", + "text": "NONE", + "markdown": "NONE ([#110695](https://github.com/kubernetes/kubernetes/pull/110695), [@lokichoggio](https://github.com/lokichoggio)) [SIG Apps and Autoscaling]", + "author": "lokichoggio", + "author_url": "https://github.com/lokichoggio", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110695", + "pr_number": 110695, + "kinds": [ + "cleanup" + ], + "sigs": [ + "autoscaling", + "apps" + ], + "duplicate": true, + "do_not_publish": true + }, + "110907": { + "commit": "20a9f7786aa4ee0b6e1619c7974ea4562d2b2500", + "text": "'`kubectl apply`: Added a warning that \"`kubectl apply` will no longer prune\nnon-namespaced resources by default when used with the --namespace flag in\na future release\".'\n", + "markdown": "'`kubectl apply`: Added a warning that \"`kubectl apply` will no longer prune\n non-namespaced resources by default when used with the --namespace flag in\n a future release\".'\n ([#110907](https://github.com/kubernetes/kubernetes/pull/110907), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110907", + "pr_number": 110907, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "110972": { + "commit": "891cbede96ab4b64c48edf25f8bbd331d8731622", + "text": "Kubeadm will cleanup the stale data on best effort basis. Stale data will be removed when each reset phase are executed, default etcd data directory will be cleanup when the `remove-etcd-member` phase are executed.", + "markdown": "Kubeadm will cleanup the stale data on best effort basis. Stale data will be removed when each reset phase are executed, default etcd data directory will be cleanup when the `remove-etcd-member` phase are executed. ([#110972](https://github.com/kubernetes/kubernetes/pull/110972), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle]", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110972", + "pr_number": 110972, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "111023": { + "commit": "d1c0171aed848900daa07212370c991c19c318b1", + "text": "'Added a `ResourceClaim` API (in the `resource.k8s.io/v1alpha1` API group and\nbehind the `DynamicResourceAllocation` feature gate).\nThe new API is now more flexible than the existing Device Plugins feature of Kubernetes because it\nallows Pods to request (claim) special kinds of resources, which can be available at node level, cluster\nlevel, or following any other model you implement.'", + "markdown": "'Added a `ResourceClaim` API (in the `resource.k8s.io/v1alpha1` API group and\n behind the `DynamicResourceAllocation` feature gate).\n The new API is now more flexible than the existing Device Plugins feature of Kubernetes because it\n allows Pods to request (claim) special kinds of resources, which can be available at node level, cluster\n level, or following any other model you implement.' ([#111023](https://github.com/kubernetes/kubernetes/pull/111023), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111023", + "pr_number": 111023, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "code-generation", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "111093": { + "commit": "8674ce53ff15e1dd9a375c182029cca8ecdb4a37", + "text": "Fixed bug in `kubectl rollout history` where only the latest revision was displayed when a specific revision was requested and an output format was specified.", + "markdown": "Fixed bug in `kubectl rollout history` where only the latest revision was displayed when a specific revision was requested and an output format was specified. ([#111093](https://github.com/kubernetes/kubernetes/pull/111093), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111093", + "pr_number": 111093, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "111096": { + "commit": "afbce897a9c7956fd3219b64abacf46fa5d3e6aa", + "text": "Added categories column to the `kubectl api-resources` command's wide output (`-o wide`).\nAdded `--categories` flag to the `kubectl api-resources` command, which can be used to filter the output to show only resources belonging to one or more categories.", + "markdown": "Added categories column to the `kubectl api-resources` command's wide output (`-o wide`).\n Added `--categories` flag to the `kubectl api-resources` command, which can be used to filter the output to show only resources belonging to one or more categories. ([#111096](https://github.com/kubernetes/kubernetes/pull/111096), [@brianpursley](https://github.com/brianpursley)) [SIG CLI]", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111096", + "pr_number": 111096, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "duplicate_kind": true + }, + "111277": { + "commit": "2b2be7fa6b69c7591a31475fc4fb1dcff362a128", + "text": "kubeadm: when a sub command is needed but not provided for a kubeadm command, print a help screen instead of showing a short message.", + "markdown": "Kubeadm: when a sub command is needed but not provided for a kubeadm command, print a help screen instead of showing a short message. ([#111277](https://github.com/kubernetes/kubernetes/pull/111277), [@chymy](https://github.com/chymy))", + "author": "chymy", + "author_url": "https://github.com/chymy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111277", + "pr_number": 111277, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "111333": { + "commit": "4e8b11d4411cefbe1a32cf9e54810d9e0bd7378e", + "text": "Add auth API to get self subject attributes (new selfsubjectreviews API is added). \nThe corresponding command for kubctl is provided - `kubectl auth whoami`.", + "markdown": "Add auth API to get self subject attributes (new selfsubjectreviews API is added). \n The corresponding command for kubctl is provided - `kubectl auth whoami`. ([#111333](https://github.com/kubernetes/kubernetes/pull/111333), [@nabokihms](https://github.com/nabokihms)) [SIG API Machinery, Auth, CLI and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3325", + "type": "KEP" + }, + { + "description": "[Docs]", + "url": "https://github.com/kubernetes/website/pull/35385", + "type": "external" + }, + { + "description": "[e2e]", + "url": "https://github.com/kubernetes/test-infra/pull/26999", + "type": "external" + } + ], + "author": "nabokihms", + "author_url": "https://github.com/nabokihms", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111333", + "pr_number": 111333, + "areas": [ + "test", + "apiserver", + "kubectl", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "111344": { + "commit": "5cb9622347d73a5d9715c9423aaf94cc0e4a5a40", + "text": "Updated `kube-proxy` to restart in case it detects that the Node assigned `pod.Spec.PodCIDRs` have changed.", + "markdown": "Updated `kube-proxy` to restart in case it detects that the Node assigned `pod.Spec.PodCIDRs` have changed. ([#111344](https://github.com/kubernetes/kubernetes/pull/111344), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111344", + "pr_number": 111344, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "111379": { + "commit": "9efbe6eb9b648bfdf95ccf228175ff57f7ba8f43", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#111379](https://github.com/kubernetes/kubernetes/pull/111379), [@muyangren2](https://github.com/muyangren2)) [SIG Network]", + "author": "muyangren2", + "author_url": "https://github.com/muyangren2", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111379", + "pr_number": 111379, + "areas": [ + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "111381": { + "commit": "178f246bbc9e4b6bd56ef0605e94bb51dbe6d27a", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#111381](https://github.com/kubernetes/kubernetes/pull/111381), [@muyangren2](https://github.com/muyangren2)) [SIG Storage]", + "author": "muyangren2", + "author_url": "https://github.com/muyangren2", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111381", + "pr_number": 111381, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ], + "do_not_publish": true + }, + "111384": { + "commit": "114594e1d265a90820683acd2ed2783513aac4c3", + "text": "Added support for Evented PLEG feature gate.", + "markdown": "Added support for Evented PLEG feature gate. ([#111384](https://github.com/kubernetes/kubernetes/pull/111384), [@harche](https://github.com/harche))", + "author": "harche", + "author_url": "https://github.com/harche", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111384", + "pr_number": 111384, + "areas": [ + "test", + "kubelet", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "111420": { + "commit": "b077a9ad87f7219782f12f6247447dad1197be33", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#111420](https://github.com/kubernetes/kubernetes/pull/111420), [@muyangren2](https://github.com/muyangren2)) [SIG Cloud Provider]", + "author": "muyangren2", + "author_url": "https://github.com/muyangren2", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111420", + "pr_number": 111420, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "do_not_publish": true + }, + "111458": { + "commit": "8206c9d458e321d7ad22ea9fc2e21a890790fc09", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#111458](https://github.com/kubernetes/kubernetes/pull/111458), [@muyangren2](https://github.com/muyangren2)) [SIG Cluster Lifecycle]", + "author": "muyangren2", + "author_url": "https://github.com/muyangren2", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111458", + "pr_number": 111458, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "111512": { + "commit": "065a761547fcb6cb4944abac1541c8a0b76a5fe1", + "text": "kubeadm: added `show-join-command` as a new separate phase at the end of `kubeadm init`. You can skip printing the join information by using `kubeadm init --skip-phases=show-join-command`. Executing only this phase on demand will throw an error because the phase needs dependencies such as bootstrap tokens to be pre-populated.", + "markdown": "Kubeadm: added `show-join-command` as a new separate phase at the end of `kubeadm init`. You can skip printing the join information by using `kubeadm init --skip-phases=show-join-command`. Executing only this phase on demand will throw an error because the phase needs dependencies such as bootstrap tokens to be pre-populated. ([#111512](https://github.com/kubernetes/kubernetes/pull/111512), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111512", + "pr_number": 111512, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "111520": { + "commit": "08aac4f0acbfb7ca2da2ced281fe694ddd29a4d7", + "text": "[kubelet] Change default `cpuCFSQuotaPeriod` value with enabled `cpuCFSQuotaPeriod` flag from 100ms to 100µs to match the Linux CFS and k8s defaults. `cpuCFSQuotaPeriod` of 100ms now requires `customCPUCFSQuotaPeriod` flag to be set to work.", + "markdown": "[kubelet] Change default `cpuCFSQuotaPeriod` value with enabled `cpuCFSQuotaPeriod` flag from 100ms to 100µs to match the Linux CFS and k8s defaults. `cpuCFSQuotaPeriod` of 100ms now requires `customCPUCFSQuotaPeriod` flag to be set to work. ([#111520](https://github.com/kubernetes/kubernetes/pull/111520), [@paskal](https://github.com/paskal)) [SIG API Machinery and Node]", + "author": "paskal", + "author_url": "https://github.com/paskal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111520", + "pr_number": 111520, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "documentation", + "api-change" + ], + "sigs": [ + "node", + "api-machinery" + ], + "duplicate": true, + "duplicate_kind": true + }, + "111533": { + "commit": "0d7e51b2e806543c245c70829510258c8a907c7c", + "text": "NoneNone", + "markdown": "NoneNone ([#111533](https://github.com/kubernetes/kubernetes/pull/111533), [@zhoumingcheng](https://github.com/zhoumingcheng)) [SIG CLI]", + "author": "zhoumingcheng", + "author_url": "https://github.com/zhoumingcheng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111533", + "pr_number": 111533, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "111554": { + "commit": "2b5475b3fa5fefdb784f9b04bef3fab666ef19d7", + "text": "Clarified the default CFS quota period as being 100µs and not 100ms.", + "markdown": "Clarified the default CFS quota period as being 100µs and not 100ms. ([#111554](https://github.com/kubernetes/kubernetes/pull/111554), [@paskal](https://github.com/paskal)) [SIG Node]", + "author": "paskal", + "author_url": "https://github.com/paskal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111554", + "pr_number": 111554, + "areas": [ + "kubelet" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "node" + ] + }, + "111571": { + "commit": "61a7a805eb392b8b705372ec68eb4b8ceaed96ea", + "text": "Fixed bug where dry run message was not printed when running `kubectl label` with `--dry-run` flag.", + "markdown": "Fixed bug where dry run message was not printed when running `kubectl label` with `--dry-run` flag. ([#111571](https://github.com/kubernetes/kubernetes/pull/111571), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111571", + "pr_number": 111571, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "111616": { + "commit": "6f579d3cebe91825dd7dc4c9f9e1474939735bc9", + "text": "Kubelet external Credential Provider feature is moved to GA. Credential Provider Plugin and Credential Provider Config APIs updated from `v1beta1` to `v1` with no API changes.", + "markdown": "Kubelet external Credential Provider feature is moved to GA. Credential Provider Plugin and Credential Provider Config APIs updated from `v1beta1` to `v1` with no API changes. ([#111616](https://github.com/kubernetes/kubernetes/pull/111616), [@ndixita](https://github.com/ndixita))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2133-kubelet-credential-providers", + "type": "KEP" + } + ], + "author": "ndixita", + "author_url": "https://github.com/ndixita", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111616", + "pr_number": 111616, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "testing" + ], + "duplicate": true + }, + "111708": { + "commit": "f6f44bff9099d8ae8bead38e6ffc1794bded4162", + "text": "release-note", + "markdown": "Release-note ([#111708](https://github.com/kubernetes/kubernetes/pull/111708), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Apps, Instrumentation and Network]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111708", + "pr_number": 111708, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "apps", + "instrumentation" + ], + "duplicate": true + }, + "111726": { + "commit": "15a5136c26928e105e5db041f44451e659a84b3a", + "text": "Scheduler dumper now exposes a summary to indicate the number of pending pods in each internal queue.", + "markdown": "Scheduler dumper now exposes a summary to indicate the number of pending pods in each internal queue. ([#111726](https://github.com/kubernetes/kubernetes/pull/111726), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing]", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111726", + "pr_number": 111726, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true + }, + "111752": { + "commit": "dfd10d3133669d7c30b28edcf1024bafda1df766", + "text": "Reverted regression that prevented `client-go` latency metrics to be reported with a template URL to avoid label cardinality.", + "markdown": "Reverted regression that prevented `client-go` latency metrics to be reported with a template URL to avoid label cardinality. ([#111752](https://github.com/kubernetes/kubernetes/pull/111752), [@aanm](https://github.com/aanm))", + "author": "aanm", + "author_url": "https://github.com/aanm", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111752", + "pr_number": 111752, + "kinds": [ + "bug", + "cleanup", + "api-change", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "111758": { + "commit": "0ac97849851fe140c15d654ccee12c4546f0dcff", + "text": "component-base: make the validation logic about LeaderElectionConfiguration consistent between component-base and client-go", + "markdown": "Component-base: make the validation logic about LeaderElectionConfiguration consistent between component-base and client-go ([#111758](https://github.com/kubernetes/kubernetes/pull/111758), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery and Scheduling]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111758", + "pr_number": 111758, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "scheduling", + "api-machinery" + ], + "duplicate": true, + "duplicate_kind": true + }, + "111783": { + "commit": "17e03f858e399d9c460f44fefab4ddfaa82b63e8", + "text": "kubeadm: tried to load CA cert from external CertificateAuthority file when CertificateAuthorityData is empty for existing kubeconfig.", + "markdown": "Kubeadm: tried to load CA cert from external CertificateAuthority file when CertificateAuthorityData is empty for existing kubeconfig. ([#111783](https://github.com/kubernetes/kubernetes/pull/111783), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111783", + "pr_number": 111783, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "111806": { + "commit": "da112dda68b7b323737742fb24844775a1356722", + "text": "kube-proxy no longer falls back from ipvs mode to iptables mode if you ask it to do ipvs but the system is not correctly configured. Instead, it will just exit with an error.", + "markdown": "Kube-proxy no longer falls back from ipvs mode to iptables mode if you ask it to do ipvs but the system is not correctly configured. Instead, it will just exit with an error. ([#111806](https://github.com/kubernetes/kubernetes/pull/111806), [@danwinship](https://github.com/danwinship)) [SIG Network]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111806", + "pr_number": 111806, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "111807": { + "commit": "2b4e85024cbfacc25df9e62c1190804355c6d8fd", + "text": "Log messages and metrics for the watch cache are now keyed by `\u003cresource\u003e.\u003cgroup\u003e` instead of `go` struct type. This means e.g. that `*v1.Pod` becomes `pods`. Additionally, resources that come from `CustomResourceDefinitions` are displayed as the correct resource and group, instead of `*unstructured.Unstructured`.", + "markdown": "Log messages and metrics for the watch cache are now keyed by `\u003cresource\u003e.\u003cgroup\u003e` instead of `go` struct type. This means e.g. that `*v1.Pod` becomes `pods`. Additionally, resources that come from `CustomResourceDefinitions` are displayed as the correct resource and group, instead of `*unstructured.Unstructured`. ([#111807](https://github.com/kubernetes/kubernetes/pull/111807), [@ncdc](https://github.com/ncdc))", + "author": "ncdc", + "author_url": "https://github.com/ncdc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111807", + "pr_number": 111807, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "111808": { + "commit": "33bf984f590031beb69807e355128235ccb6e5c3", + "text": "The errors in `k8s.io/apimachinery/pkg/api/meta` now support for the `stdlibs` `errors.Is` matching, including when wrapped.", + "markdown": "The errors in `k8s.io/apimachinery/pkg/api/meta` now support for the `stdlibs` `errors.Is` matching, including when wrapped. ([#111808](https://github.com/kubernetes/kubernetes/pull/111808), [@alvaroaleman](https://github.com/alvaroaleman))", + "author": "alvaroaleman", + "author_url": "https://github.com/alvaroaleman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111808", + "pr_number": 111808, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "111809": { + "commit": "626ff5c0c0269dfeb3f0a565237ab57d2ec9619f", + "text": "Scheduler now retries updating a pod's status on `ServiceUnavailable` and `InternalError` errors, in addition to `net.ConnectionRefused` error.", + "markdown": "Scheduler now retries updating a pod's status on `ServiceUnavailable` and `InternalError` errors, in addition to `net.ConnectionRefused` error. ([#111809](https://github.com/kubernetes/kubernetes/pull/111809), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111809", + "pr_number": 111809, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "111866": { + "commit": "dc0dfdd109b4f88495b49d4335e194720021ae3d", + "text": "In 'kube-apiserver`,`x-kubernetes-list-type` validation is now enforced when updating status of custom resources.'", + "markdown": "In 'kube-apiserver`,`x-kubernetes-list-type` validation is now enforced when updating status of custom resources.' ([#111866](https://github.com/kubernetes/kubernetes/pull/111866), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111866", + "pr_number": 111866, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "111879": { + "commit": "886da71e7588c198dcb9a6c7cccfedb478110e57", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#111879](https://github.com/kubernetes/kubernetes/pull/111879), [@sanwishe](https://github.com/sanwishe)) [SIG API Machinery]", + "author": "sanwishe", + "author_url": "https://github.com/sanwishe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111879", + "pr_number": 111879, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "111910": { + "commit": "bf2e850b3a90bc941587a74b53a9dd47aca4fb66", + "text": "Added new Golang runtime-related metrics to Kubernetes components:\n- go_gc_cycles_automatic_gc_cycles_total\n- go_gc_cycles_forced_gc_cycles_total\n- go_gc_cycles_total_gc_cycles_total\n- go_gc_heap_allocs_by_size_bytes\n- go_gc_heap_allocs_bytes_total\n- go_gc_heap_allocs_objects_total\n- go_gc_heap_frees_by_size_bytes\n- go_gc_heap_frees_bytes_total\n- go_gc_heap_frees_objects_total\n- go_gc_heap_goal_bytes\n- go_gc_heap_objects_objects\n- go_gc_heap_tiny_allocs_objects_total\n- go_gc_pauses_seconds\n- go_memory_classes_heap_free_bytes\n- go_memory_classes_heap_objects_bytes\n- go_memory_classes_heap_released_bytes\n- go_memory_classes_heap_stacks_bytes\n- go_memory_classes_heap_unused_bytes\n- go_memory_classes_metadata_mcache_free_bytes\n- go_memory_classes_metadata_mcache_inuse_bytes\n- go_memory_classes_metadata_mspan_free_bytes\n- go_memory_classes_metadata_mspan_inuse_bytes\n- go_memory_classes_metadata_other_bytes\n- go_memory_classes_os_stacks_bytes\n- go_memory_classes_other_bytes\n- go_memory_classes_profiling_buckets_bytes\n- go_memory_classes_total_bytes\n- go_sched_goroutines_goroutines\n- go_sched_latencies_seconds", + "markdown": "Added new Golang runtime-related metrics to Kubernetes components:\n - go_gc_cycles_automatic_gc_cycles_total\n - go_gc_cycles_forced_gc_cycles_total\n - go_gc_cycles_total_gc_cycles_total\n - go_gc_heap_allocs_by_size_bytes\n - go_gc_heap_allocs_bytes_total\n - go_gc_heap_allocs_objects_total\n - go_gc_heap_frees_by_size_bytes\n - go_gc_heap_frees_bytes_total\n - go_gc_heap_frees_objects_total\n - go_gc_heap_goal_bytes\n - go_gc_heap_objects_objects\n - go_gc_heap_tiny_allocs_objects_total\n - go_gc_pauses_seconds\n - go_memory_classes_heap_free_bytes\n - go_memory_classes_heap_objects_bytes\n - go_memory_classes_heap_released_bytes\n - go_memory_classes_heap_stacks_bytes\n - go_memory_classes_heap_unused_bytes\n - go_memory_classes_metadata_mcache_free_bytes\n - go_memory_classes_metadata_mcache_inuse_bytes\n - go_memory_classes_metadata_mspan_free_bytes\n - go_memory_classes_metadata_mspan_inuse_bytes\n - go_memory_classes_metadata_other_bytes\n - go_memory_classes_os_stacks_bytes\n - go_memory_classes_other_bytes\n - go_memory_classes_profiling_buckets_bytes\n - go_memory_classes_total_bytes\n - go_sched_goroutines_goroutines\n - go_sched_latencies_seconds ([#111910](https://github.com/kubernetes/kubernetes/pull/111910), [@tosi3k](https://github.com/tosi3k))", + "author": "tosi3k", + "author_url": "https://github.com/tosi3k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111910", + "pr_number": 111910, + "areas": [ + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "111930": { + "commit": "1bf4af4584234741ed7ffeea5eda3ec1127aa335", + "text": "Added the metric `pod_start_sli_duration_seconds` to kubelet.", + "markdown": "Added the metric `pod_start_sli_duration_seconds` to kubelet. ([#111930](https://github.com/kubernetes/kubernetes/pull/111930), [@azylinski](https://github.com/azylinski))", + "author": "azylinski", + "author_url": "https://github.com/azylinski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111930", + "pr_number": 111930, + "areas": [ + "test", + "kubelet", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "111936": { + "commit": "673895dc5519f5b1fba386d7573f0a452faf7635", + "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))", + "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 + }, + "111973": { + "commit": "26842bb0c8fcf89885798a2ebd9a97cd104e78bf", + "text": "Deprecated beta APIs scheduled for removal in `v1.26` are no longer served. See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-26 for more information.", + "markdown": "Deprecated beta APIs scheduled for removal in `v1.26` are no longer served. See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-26 for more information. ([#111973](https://github.com/kubernetes/kubernetes/pull/111973), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111973", + "pr_number": 111973, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "action_required": true + }, + "111998": { + "commit": "d9f21e55df4cd95f5e6c9ea1d7109a2a767920fb", + "text": "e2e: tests can now register callbacks with `ginkgo.BeforeEach`, `ginkgo.AfterEach` or `ginkgo.DeferCleanup` directly after creating a framework instance and are guaranteed that their code is called after the framework is initialized and before it gets cleaned up. `ginkgo.DeferCleanup` replaces `f.AddAfterEach` and `AddCleanupAction` which got removed to simplify the framework.", + "markdown": "E2e: tests can now register callbacks with `ginkgo.BeforeEach`, `ginkgo.AfterEach` or `ginkgo.DeferCleanup` directly after creating a framework instance and are guaranteed that their code is called after the framework is initialized and before it gets cleaned up. `ginkgo.DeferCleanup` replaces `f.AddAfterEach` and `AddCleanupAction` which got removed to simplify the framework. ([#111998](https://github.com/kubernetes/kubernetes/pull/111998), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111998", + "pr_number": 111998, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true + }, + "111999": { + "commit": "04f8a5c41a0e8716543415238098aa3d3054ab67", + "text": "Pod failed in scheduling due to expected error will be updated with the reason of `SchedulerError` rather than `Unschedulable`.", + "markdown": "Pod failed in scheduling due to expected error will be updated with the reason of `SchedulerError` rather than `Unschedulable`. ([#111999](https://github.com/kubernetes/kubernetes/pull/111999), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111999", + "pr_number": 111999, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true + }, + "112000": { + "commit": "b87a436aed9a4e708666b3656beac3a93dd3f762", + "text": "kubeadm: removed the usage of the `--container-runtime=remote` flag for the kubelet during kubeadm init/join/upgrade. The flag value `remote` had been the only possible value since `dockershim` was removed from the kubelet.", + "markdown": "Kubeadm: removed the usage of the `--container-runtime=remote` flag for the kubelet during kubeadm init/join/upgrade. The flag value `remote` had been the only possible value since `dockershim` was removed from the kubelet. ([#112000](https://github.com/kubernetes/kubernetes/pull/112000), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112000", + "pr_number": 112000, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "112003": { + "commit": "3ac752e4a0a365b658b185d88bde7f4c620a96e9", + "text": "The `goroutines` metric is newly added in the scheduler. \nIt replaces `scheduler_goroutines` metric and it counts the number of goroutine in more places than `scheduler_goroutine` does.", + "markdown": "The `goroutines` metric is newly added in the scheduler. \n It replaces `scheduler_goroutines` metric and it counts the number of goroutine in more places than `scheduler_goroutine` does. ([#112003](https://github.com/kubernetes/kubernetes/pull/112003), [@sanposhiho](https://github.com/sanposhiho)) [SIG Instrumentation and Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112003", + "pr_number": 112003, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "112008": { + "commit": "50097acf156f8942d01301619603c61765dbf646", + "text": "kubeadm: removed the toleration for the `node-role.kubernetes.io/master` taint from the CoreDNS deployment of `kubeadm`. With the 1.25 release of kubeadm the taint `node-role.kubernetes.io/master` is no longer applied to control plane nodes and the toleration for it can be removed with the release of 1.26. You can also perform the same toleration removal from your own addon manifests.", + "markdown": "Kubeadm: removed the toleration for the `node-role.kubernetes.io/master` taint from the CoreDNS deployment of `kubeadm`. With the 1.25 release of kubeadm the taint `node-role.kubernetes.io/master` is no longer applied to control plane nodes and the toleration for it can be removed with the release of 1.26. You can also perform the same toleration removal from your own addon manifests. ([#112008](https://github.com/kubernetes/kubernetes/pull/112008), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112008", + "pr_number": 112008, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "112011": { + "commit": "c519bc02e83d22c517a3063b24d0ced7934ca927", + "text": "'Added selector validation to `HorizontalPodAutoscaler`: when multiple HPAs\nselect the same set of Pods, scaling now will be disabled for those HPAs with\nthe reason `AmbiguousSelector`. This change also covers a case when multiple HPAs\npoint to the same deployment.'\n", + "markdown": "'Added selector validation to `HorizontalPodAutoscaler`: when multiple HPAs\n select the same set of Pods, scaling now will be disabled for those HPAs with\n the reason `AmbiguousSelector`. This change also covers a case when multiple HPAs\n point to the same deployment.'\n ([#112011](https://github.com/kubernetes/kubernetes/pull/112011), [@pbeschetnov](https://github.com/pbeschetnov))", + "author": "pbeschetnov", + "author_url": "https://github.com/pbeschetnov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112011", + "pr_number": 112011, + "kinds": [ + "feature" + ], + "sigs": [ + "autoscaling", + "apps" + ], + "feature": true, + "duplicate": true + }, + "112015": { + "commit": "ee94dce5b179923e362356a62738fa1de06c62b6", + "text": "`GlusterFS` in-tree storage driver which was deprecated in kubernetes 1.25 release is now removed entirely in 1.26.", + "markdown": "`GlusterFS` in-tree storage driver which was deprecated in kubernetes 1.25 release is now removed entirely in 1.26. ([#112015](https://github.com/kubernetes/kubernetes/pull/112015), [@humblec](https://github.com/humblec))", + "author": "humblec", + "author_url": "https://github.com/humblec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112015", + "pr_number": 112015, + "areas": [ + "test", + "kubelet", + "provider/gcp", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scalability", + "storage", + "node", + "api-machinery", + "instrumentation", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "112017": { + "commit": "082da2f04e413932615bcc32cba83959e7d043f7", + "text": "Fixed an ephemeral port exhaustion bug caused by improper connection management that occurred when a large number of objects were handled by `kubectl` while exec auth was in use.", + "markdown": "Fixed an ephemeral port exhaustion bug caused by improper connection management that occurred when a large number of objects were handled by `kubectl` while exec auth was in use. ([#112017](https://github.com/kubernetes/kubernetes/pull/112017), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112017", + "pr_number": 112017, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true + }, + "112026": { + "commit": "76277917b9b98bfac79d0e25fe8f45dfc5bec145", + "text": "updated the system-validators library to v1.8.0", + "markdown": "Updated the system-validators library to v1.8.0 ([#112026](https://github.com/kubernetes/kubernetes/pull/112026), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112026", + "pr_number": 112026, + "areas": [ + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "112042": { + "commit": "a14fc3d7a201514d7796616c113c75863629a997", + "text": "The metrics `etcd_request_duration_seconds` and `etcd_bookmark_counts` now differentiate by group resource instead of object type, allowing unique entries per `CustomResourceDefinition`, instead of grouping them all under `*unstructured.Unstructured`.", + "markdown": "The metrics `etcd_request_duration_seconds` and `etcd_bookmark_counts` now differentiate by group resource instead of object type, allowing unique entries per `CustomResourceDefinition`, instead of grouping them all under `*unstructured.Unstructured`. ([#112042](https://github.com/kubernetes/kubernetes/pull/112042), [@ncdc](https://github.com/ncdc))", + "author": "ncdc", + "author_url": "https://github.com/ncdc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112042", + "pr_number": 112042, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "112043": { + "commit": "2eda22a653307ba2d466a9dd49373133abefa682", + "text": "Refactored `test/e2e/framework` so that the core framework is smaller. Optional functionality like resource monitoring, log size monitoring, metrics gathering and debug information dumping must be imported by specific e2e test suites. Init packages are provided which can be imported to re-enable the functionality that traditionally was in the core framework. If you have code that no longer compiles because of this PR, you can use the script [from a commit message](https://github.com/kubernetes/kubernetes/pull/112043/commits/dfdf88d4faafa6fd39988832ea0ef6d668f490e9) to update that code.", + "markdown": "Refactored `test/e2e/framework` so that the core framework is smaller. Optional functionality like resource monitoring, log size monitoring, metrics gathering and debug information dumping must be imported by specific e2e test suites. Init packages are provided which can be imported to re-enable the functionality that traditionally was in the core framework. If you have code that no longer compiles because of this PR, you can use the script [from a commit message](https://github.com/kubernetes/kubernetes/pull/112043/commits/dfdf88d4faafa6fd39988832ea0ef6d668f490e9) to update that code. ([#112043](https://github.com/kubernetes/kubernetes/pull/112043), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112043", + "pr_number": 112043, + "areas": [ + "test", + "kubeadm", + "conformance", + "e2e-test-framework", + "network-policy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "autoscaling", + "auth", + "apps", + "windows", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "112046": { + "commit": "0f37b3120643580f632ca12d3e174e7ec447948c", + "text": "apiserver `/healthz/etcd` endpoint rate limits the number of forwarded health check requests to the etcd backends, answering with the last known state if the rate limit is exceeded. The rate limit is based on 1/2 of the timeout configured, with no burst allowed.", + "markdown": "Apiserver `/healthz/etcd` endpoint rate limits the number of forwarded health check requests to the etcd backends, answering with the last known state if the rate limit is exceeded. The rate limit is based on 1/2 of the timeout configured, with no burst allowed. ([#112046](https://github.com/kubernetes/kubernetes/pull/112046), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112046", + "pr_number": 112046, + "areas": [ + "apiserver", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "112058": { + "commit": "ac868b17d638a427ca3f9510aa5ab9b6731a6e48", + "text": "Updated `cri-tools` to [v1.25.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.25.0).", + "markdown": "Updated `cri-tools` to [v1.25.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.25.0). ([#112058](https://github.com/kubernetes/kubernetes/pull/112058), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112058", + "pr_number": 112058, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "release", + "cloud-provider" + ], + "duplicate": true + }, + "112076": { + "commit": "569b14ceecfc7aa4bc5d6d22c258cbcb8c29a938", + "text": "Moved `LocalStorageCapacityIsolationFSQuotaMonitoring` back to Alpha.", + "markdown": "Moved `LocalStorageCapacityIsolationFSQuotaMonitoring` back to Alpha. ([#112076](https://github.com/kubernetes/kubernetes/pull/112076), [@rphillips](https://github.com/rphillips))", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112076", + "pr_number": 112076, + "areas": [ + "test" + ], + "kinds": [ + "regression" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "112120": { + "commit": "6dbec8e25592d47fc8a8269c86d4b5fa838d320b", + "text": "Legacy klog flags are no longer available. Only `-v` and `-vmodule` are still supported.", + "markdown": "Legacy klog flags are no longer available. Only `-v` and `-vmodule` are still supported. ([#112120](https://github.com/kubernetes/kubernetes/pull/112120), [@pohly](https://github.com/pohly)) [SIG Architecture, CLI, Instrumentation, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2845", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/2845-deprecate-klog-specific-flags-in-k8s-components/README.md#user-stories", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112120", + "pr_number": 112120, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "node", + "cli", + "instrumentation", + "testing", + "architecture" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112123": { + "commit": "74469ca4c5cf30fc15826d6682d31ea2819c9cf2", + "text": "Clarified the CFS quota as 100ms in the code comments and set the minimum `cpuCFSQuotaPeriod` to 1ms to match Linux kernel expectations.", + "markdown": "Clarified the CFS quota as 100ms in the code comments and set the minimum `cpuCFSQuotaPeriod` to 1ms to match Linux kernel expectations. ([#112123](https://github.com/kubernetes/kubernetes/pull/112123), [@paskal](https://github.com/paskal))", + "author": "paskal", + "author_url": "https://github.com/paskal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112123", + "pr_number": 112123, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "bug", + "documentation", + "api-change" + ], + "sigs": [ + "node", + "api-machinery" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112127": { + "commit": "b4f42864f58f6feac250b2dd32f99b992c8ed184", + "text": "Fixed `DaemonSet` to update the status even if it fails to create a pod.", + "markdown": "Fixed `DaemonSet` to update the status even if it fails to create a pod. ([#112127](https://github.com/kubernetes/kubernetes/pull/112127), [@gjkim42](https://github.com/gjkim42))", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112127", + "pr_number": 112127, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "112133": { + "commit": "6705015101d9572157325ddf237ff65c5efb3cef", + "text": "In `kube-proxy`: The \"userspace\" proxy mode (deprecated for over a year) is no\nlonger supported on either Linux or Windows. Users should use \"iptables\" or \"ipvs\"\non Linux, or \"kernelspace\" on Windows.\n", + "markdown": "In `kube-proxy`: The \"userspace\" proxy mode (deprecated for over a year) is no\n longer supported on either Linux or Windows. Users should use \"iptables\" or \"ipvs\"\n on Linux, or \"kernelspace\" on Windows.\n ([#112133](https://github.com/kubernetes/kubernetes/pull/112133), [@knabben](https://github.com/knabben))", + "author": "knabben", + "author_url": "https://github.com/knabben", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112133", + "pr_number": 112133, + "areas": [ + "test", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "network", + "scalability", + "api-machinery", + "windows", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112150": { + "commit": "2779326af88a76ed020457feb1ea7e4906941337", + "text": "Improved `kubectl` display of invalid request errors returned by the API server.", + "markdown": "Improved `kubectl` display of invalid request errors returned by the API server. ([#112150](https://github.com/kubernetes/kubernetes/pull/112150), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112150", + "pr_number": 112150, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true + }, + "112157": { + "commit": "ca09ed0fe2c245a0df4f533aa29f7b48a8672cff", + "text": "Avoided propagating hosts `search .` into containers in `/etc/resolv.conf`.", + "markdown": "Avoided propagating hosts `search .` into containers in `/etc/resolv.conf`. ([#112157](https://github.com/kubernetes/kubernetes/pull/112157), [@dghubble](https://github.com/dghubble))", + "author": "dghubble", + "author_url": "https://github.com/dghubble", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112157", + "pr_number": 112157, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112163": { + "commit": "d754183866fab256c77d3a677d523587b20ba12c", + "text": "Graduate `ServiceIPStaticSubrange` feature to GA.", + "markdown": "Graduate `ServiceIPStaticSubrange` feature to GA. ([#112163](https://github.com/kubernetes/kubernetes/pull/112163), [@aojea](https://github.com/aojea))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3070", + "type": "KEP" + }, + { + "description": "[Blog]", + "url": "https://kubernetes.io/blog/2022/05/23/service-ip-dynamic-and-static-allocation/", + "type": "external" + } + ], + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112163", + "pr_number": 112163, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "112172": { + "commit": "1913c6be3580da23109493b2bc52b119ee70941e", + "text": "kubeadm: added the \"--cleanup-tmp-dir\" flag for `kubeadm reset`. It will cleanup the contents of `/etc/kubernetes/tmp`. The flag is off by default.", + "markdown": "Kubeadm: added the \"--cleanup-tmp-dir\" flag for `kubeadm reset`. It will cleanup the contents of `/etc/kubernetes/tmp`. The flag is off by default. ([#112172](https://github.com/kubernetes/kubernetes/pull/112172), [@chendave](https://github.com/chendave))", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112172", + "pr_number": 112172, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "112181": { + "commit": "23790ec7fa8fd3c5b18edd85bc12ba4d76f50e1f", + "text": "callers using `DelegatingAuthenticationOptions` can now use `DisableAnonymous` to disable Anonymous authentication.", + "markdown": "Callers using `DelegatingAuthenticationOptions` can now use `DisableAnonymous` to disable Anonymous authentication. ([#112181](https://github.com/kubernetes/kubernetes/pull/112181), [@xueqzhan](https://github.com/xueqzhan))", + "author": "xueqzhan", + "author_url": "https://github.com/xueqzhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112181", + "pr_number": 112181, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true + }, + "112183": { + "commit": "475e6d638d11866978d4ed30edf0bf4cdcaa2f56", + "text": "Fixed spurious `field is immutable` errors validating updates to Event API objects via the `events.k8s.io/v1` API.", + "markdown": "Fixed spurious `field is immutable` errors validating updates to Event API objects via the `events.k8s.io/v1` API. ([#112183](https://github.com/kubernetes/kubernetes/pull/112183), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112183", + "pr_number": 112183, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "112184": { + "commit": "5bcdc82911abb0411943898a6252f4f1eeb4d99f", + "text": "Kubelet now cleans up the Node's cloud node IP annotation correctly if you\nstop using `--node-ip`. (In particular, this fixes the problem where people who\nwere unnecessarily using `--node-ip` with an external cloud provider in 1.23,\nand then running into problems with 1.24, could not fix the problem by just\nremoving the unnecessary `--node-ip` from the kubelet arguments, because\nthat wouldn't remove the annotation that caused the problems.)", + "markdown": "Kubelet now cleans up the Node's cloud node IP annotation correctly if you\n stop using `--node-ip`. (In particular, this fixes the problem where people who\n were unnecessarily using `--node-ip` with an external cloud provider in 1.23,\n and then running into problems with 1.24, could not fix the problem by just\n removing the unnecessary `--node-ip` from the kubelet arguments, because\n that wouldn't remove the annotation that caused the problems.) ([#112184](https://github.com/kubernetes/kubernetes/pull/112184), [@danwinship](https://github.com/danwinship)) [SIG Network and Node]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112184", + "pr_number": 112184, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true + }, + "112193": { + "commit": "a7936658baba02e3ee73324ffe670559f03c188a", + "text": "kube-apiserver: redirect responses are no longer returned from backends by default. Set `--aggregator-reject-forwarding-redirect=false` to continue forwarding redirect responses.", + "markdown": "Kube-apiserver: redirect responses are no longer returned from backends by default. Set `--aggregator-reject-forwarding-redirect=false` to continue forwarding redirect responses. ([#112193](https://github.com/kubernetes/kubernetes/pull/112193), [@jindijamie](https://github.com/jindijamie)) [SIG API Machinery and Testing]", + "author": "jindijamie", + "author_url": "https://github.com/jindijamie", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112193", + "pr_number": 112193, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "112195": { + "commit": "a304fdd8671873d80ba8a0579298d0b5aaa2d91e", + "text": "Fixed race condition in GCE between containerized mounter setup in the kubelet.", + "markdown": "Fixed race condition in GCE between containerized mounter setup in the kubelet. ([#112195](https://github.com/kubernetes/kubernetes/pull/112195), [@mattcary](https://github.com/mattcary))", + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112195", + "pr_number": 112195, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "cloud-provider" + ], + "duplicate": true + }, + "112200": { + "commit": "084a412e03816ef3ea57da928ae8fd332d17ab59", + "text": "In 'client-go` `SharedInformerFactory` will now support waiting for goroutines during shutdown.\n", + "markdown": "In 'client-go` `SharedInformerFactory` will now support waiting for goroutines during shutdown.\n ([#112200](https://github.com/kubernetes/kubernetes/pull/112200), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112200", + "pr_number": 112200, + "areas": [ + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "112243": { + "commit": "67bde9a1023d1805e33d698b28aa6fad991dfb39", + "text": "Added back unused flags on `kubectl run` command, which did not go through the required deprecation period before being removed.", + "markdown": "Added back unused flags on `kubectl run` command, which did not go through the required deprecation period before being removed. ([#112243](https://github.com/kubernetes/kubernetes/pull/112243), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112243", + "pr_number": 112243, + "areas": [ + "kubectl" + ], + "kinds": [ + "regression" + ], + "sigs": [ + "cli" + ] + }, + "112257": { + "commit": "3d3820bba3d46c859714a04c4e2f3ae25c8549ff", + "text": "Kube scheduler Component Config release version v1beta3 is deprecated in v1.26 and will be removed in v1.29, \nalso v1beta2 will be removed in v1.28.", + "markdown": "Kube scheduler Component Config release version v1beta3 is deprecated in v1.26 and will be removed in v1.29, \n also v1beta2 will be removed in v1.28. ([#112257](https://github.com/kubernetes/kubernetes/pull/112257), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling]", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112257", + "pr_number": 112257, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "112261": { + "commit": "3e8c848cfce00a9ac80a0b2a44dbc671891a33ef", + "text": "Deprecated the following kubectl run flags, which are ignored if set: `--cascade`, `--filename`, `--force`, `--grace-period`, `--kustomize`, `--recursive`, `--timeout`, `--wait`.", + "markdown": "Deprecated the following kubectl run flags, which are ignored if set: `--cascade`, `--filename`, `--force`, `--grace-period`, `--kustomize`, `--recursive`, `--timeout`, `--wait`. ([#112261](https://github.com/kubernetes/kubernetes/pull/112261), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112261", + "pr_number": 112261, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "112267": { + "commit": "9cd6331f9584dae9db803e01249c87c7697711de", + "text": "Updated creation of `LoadBalancer` services, for there to be fewer AWS security group rules in most cases.", + "markdown": "Updated creation of `LoadBalancer` services, for there to be fewer AWS security group rules in most cases. ([#112267](https://github.com/kubernetes/kubernetes/pull/112267), [@sjenning](https://github.com/sjenning))", + "author": "sjenning", + "author_url": "https://github.com/sjenning", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112267", + "pr_number": 112267, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "112287": { + "commit": "0e54bd294237e8fc3e0f60f3195353f7c25e8a4c", + "text": "Kubernetes is now built with Go 1.19.1", + "markdown": "Kubernetes is now built with Go 1.19.1 ([#112287](https://github.com/kubernetes/kubernetes/pull/112287), [@palnabarun](https://github.com/palnabarun)) [SIG Release and Testing]", + "author": "palnabarun", + "author_url": "https://github.com/palnabarun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112287", + "pr_number": 112287, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "112299": { + "commit": "8287e21228e9b1c945d031581e2fc63920f46d56", + "text": "kube-apiserver: `gzip` compression switched from level 4 to level 1 to improve large list call latencies in exchange for higher network bandwidth usage (10-50% higher). This increases the headroom before very large unpaged list calls exceed request timeout limits.", + "markdown": "Kube-apiserver: `gzip` compression switched from level 4 to level 1 to improve large list call latencies in exchange for higher network bandwidth usage (10-50% higher). This increases the headroom before very large unpaged list calls exceed request timeout limits. ([#112299](https://github.com/kubernetes/kubernetes/pull/112299), [@shyamjvs](https://github.com/shyamjvs))", + "documentation": [ + { + "description": "Detailed doc showing why this change is safe and useful", + "url": "https://docs.google.com/document/d/1rMlYKOVyujboAEG2epxSYdx7eyevC7dypkD_kUlBxn4", + "type": "external" + } + ], + "author": "shyamjvs", + "author_url": "https://github.com/shyamjvs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112299", + "pr_number": 112299, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "112306": { + "commit": "9720af2ba3f0d792c873bfa6e4d54e60736fb7a0", + "text": "Introduce `v1beta3` for Priority and Fairness with the following changes to the API spec:\n- rename 'assuredConcurrencyShares' (located under `spec.limited') to 'nominalConcurrencyShares'.\n- apply strategic merge patch annotations to 'Conditions' of flowschemas and `prioritylevelconfigurations`.", + "markdown": "Introduce `v1beta3` for Priority and Fairness with the following changes to the API spec:\n - rename 'assuredConcurrencyShares' (located under `spec.limited') to 'nominalConcurrencyShares'.\n - apply strategic merge patch annotations to 'Conditions' of flowschemas and `prioritylevelconfigurations`. ([#112306](https://github.com/kubernetes/kubernetes/pull/112306), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112306", + "pr_number": 112306, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "112309": { + "commit": "ed520f3cac2243cd5f66967e2c590caf1e98b9e2", + "text": "A new `DisableCompression` field (default = `false`) has been added to kubeconfig under cluster info. When set to `true`, clients using the kubeconfig opt out of response compression for all requests to the apiserver. This can help improve list call latencies significantly when client-server network bandwidth is ample (\u003e30MB/s) or if the server is CPU-constrained.", + "markdown": "A new `DisableCompression` field (default = `false`) has been added to kubeconfig under cluster info. When set to `true`, clients using the kubeconfig opt out of response compression for all requests to the apiserver. This can help improve list call latencies significantly when client-server network bandwidth is ample (\u003e30MB/s) or if the server is CPU-constrained. ([#112309](https://github.com/kubernetes/kubernetes/pull/112309), [@shyamjvs](https://github.com/shyamjvs))", + "author": "shyamjvs", + "author_url": "https://github.com/shyamjvs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112309", + "pr_number": 112309, + "areas": [ + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true + }, + "112341": { + "commit": "d569886a234cb65cb1ec777b7ab2e5b9a35d7145", + "text": "The `gcp` and `azure` auth plugins have been removed from `client-go` and `kubectl`. See [kubelogin](https://github.com/Azure/kubelogin) and [Kubectl Auth Changes in GKE](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) for details about the cloud-specific replacements.", + "markdown": "The `gcp` and `azure` auth plugins have been removed from `client-go` and `kubectl`. See [kubelogin](https://github.com/Azure/kubelogin) and [Kubectl Auth Changes in GKE](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) for details about the cloud-specific replacements. ([#112341](https://github.com/kubernetes/kubernetes/pull/112341), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112341", + "pr_number": 112341, + "areas": [ + "apiserver", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112353": { + "commit": "c7d47e4c94b2e424f5fc7c9cd0f906d6c19fc94c", + "text": "Increased the maximum backoff delay of the endpointslice controller to match the expected sequence of delays when syncing Services.", + "markdown": "Increased the maximum backoff delay of the endpointslice controller to match the expected sequence of delays when syncing Services. ([#112353](https://github.com/kubernetes/kubernetes/pull/112353), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112353", + "pr_number": 112353, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "112357": { + "commit": "3e5e5cc7ee8331c4b8ee41291eef36ff67c3a911", + "text": "kube-scheduler: added taints filtering logic consistent with `TaintToleration` plugin for `PodTopologySpread` plugin.", + "markdown": "Kube-scheduler: added taints filtering logic consistent with `TaintToleration` plugin for `PodTopologySpread` plugin. ([#112357](https://github.com/kubernetes/kubernetes/pull/112357), [@SataQiu](https://github.com/SataQiu))", + "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 + }, + "112360": { + "commit": "47952e0917a26408ac0bdd450d09b0557e2294b7", + "text": "'kubelet: Added the following Pod failure conditions:\n- `DisruptionTarget` (graceful node shutdown, node pressure eviction)'", + "markdown": "'kubelet: Added the following Pod failure conditions:\n - `DisruptionTarget` (graceful node shutdown, node pressure eviction)' ([#112360](https://github.com/kubernetes/kubernetes/pull/112360), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112360", + "pr_number": 112360, + "areas": [ + "test", + "kubelet", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "112374": { + "commit": "8fb8bb4e9ae2d2cb2b7cdb4c79c73be344fdc164", + "text": "Logs of requests that were timed out by a timeout handler no longer contain a `statusStack` and `logging error output` fields.", + "markdown": "Logs of requests that were timed out by a timeout handler no longer contain a `statusStack` and `logging error output` fields. ([#112374](https://github.com/kubernetes/kubernetes/pull/112374), [@Argh4k](https://github.com/Argh4k))", + "author": "Argh4k", + "author_url": "https://github.com/Argh4k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112374", + "pr_number": 112374, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "112386": { + "commit": "72f96d9c722961ddd27911a7dde2e464f9e44198", + "text": "`CSRDuration` feature gate that graduated to GA in 1.24 and is unconditionally\nenabled now removed in v1.26.\n", + "markdown": "`CSRDuration` feature gate that graduated to GA in 1.24 and is unconditionally\n enabled now removed in v1.26.\n ([#112386](https://github.com/kubernetes/kubernetes/pull/112386), [@Shubham82](https://github.com/Shubham82))", + "author": "Shubham82", + "author_url": "https://github.com/Shubham82", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112386", + "pr_number": 112386, + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true, + "duplicate_kind": true + }, + "112403": { + "commit": "ea4c28c7f86372b82aa8a8a15c9cbdf07098c49a", + "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 change modified that behavior to ensure 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 change modified that behavior to ensure it is only called once per volume per node. ([#112403](https://github.com/kubernetes/kubernetes/pull/112403), [@akankshakumari393](https://github.com/akankshakumari393))", + "author": "akankshakumari393", + "author_url": "https://github.com/akankshakumari393", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112403", + "pr_number": 112403, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "112414": { + "commit": "4276ed36282405d026d8072e0ebed4f1da49070d", + "text": "kubelet: when there are multi option lines in /etc/resolv.conf, merge all options into one line in a pod with the `Default` DNS policy.", + "markdown": "Kubelet: when there are multi option lines in /etc/resolv.conf, merge all options into one line in a pod with the `Default` DNS policy. ([#112414](https://github.com/kubernetes/kubernetes/pull/112414), [@pacoxu](https://github.com/pacoxu)) [SIG Network and Node]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112414", + "pr_number": 112414, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true + }, + "112427": { + "commit": "148476eff1c9d48d513e725918601a7e85c69792", + "text": "Allowed `Label` section in vSphere e2e cloud provider configuration.", + "markdown": "Allowed `Label` section in vSphere e2e cloud provider configuration. ([#112427](https://github.com/kubernetes/kubernetes/pull/112427), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112427", + "pr_number": 112427, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true + }, + "112437": { + "commit": "21dfce2d7daa13e616107179acc11c05f20ecce1", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#112437](https://github.com/kubernetes/kubernetes/pull/112437), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Network]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112437", + "pr_number": 112437, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "112489": { + "commit": "06fd0a07286faaef2008fd97c888debe0ca1d74a", + "text": "etcd: Updated to v3.5.5.", + "markdown": "Etcd: Updated to v3.5.5. ([#112489](https://github.com/kubernetes/kubernetes/pull/112489), [@dims](https://github.com/dims))", + "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", + "cluster-lifecycle", + "testing", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112507": { + "commit": "4fb2cf4b4b3dc0d1f14a4300939d4efe38db8fbc", + "text": "Correct the calculating error in `podTopologySpread` plugin to avoid unexpected scheduling results.", + "markdown": "Correct the calculating error in `podTopologySpread` plugin to avoid unexpected scheduling results. ([#112507](https://github.com/kubernetes/kubernetes/pull/112507), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112507", + "pr_number": 112507, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "112508": { + "commit": "cccfc0989b6f26226bac8ef90a8663928a3a8ad0", + "text": "Added support for RSA and ECDSA format keys in preflight check on `kubeadm`.", + "markdown": "Added support for RSA and ECDSA format keys in preflight check on `kubeadm`. ([#112508](https://github.com/kubernetes/kubernetes/pull/112508), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112508", + "pr_number": 112508, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "112518": { + "commit": "8f269d6df2a57544b73d5ca35e04451373ef334c", + "text": "fixed code to ensure that pods running on nodes tainted with `NoExecute` continue to run when the `PodDisruptionConditions` feature gate is enabled.", + "markdown": "Fixed code to ensure that pods running on nodes tainted with `NoExecute` continue to run when the `PodDisruptionConditions` feature gate is enabled. ([#112518](https://github.com/kubernetes/kubernetes/pull/112518), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112518", + "pr_number": 112518, + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "apps" + ], + "duplicate": true + }, + "112521": { + "commit": "521fbd7e6a8eee04d1f641477fe7d87f2dbe3ed0", + "text": "Add `percentageOfNodesToScore` as a scheduler profile level parameter to API version `v1`. When a profile `percentageOfNodesToScore` is set, it will override global `percentageOfNodesToScore`.", + "markdown": "Add `percentageOfNodesToScore` as a scheduler profile level parameter to API version `v1`. When a profile `percentageOfNodesToScore` is set, it will override global `percentageOfNodesToScore`. ([#112521](https://github.com/kubernetes/kubernetes/pull/112521), [@yuanchen8911](https://github.com/yuanchen8911))", + "author": "yuanchen8911", + "author_url": "https://github.com/yuanchen8911", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112521", + "pr_number": 112521, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "112526": { + "commit": "4ff13696417446ffc8e3d42103bc5f7b4f6f56e0", + "text": "kube-apiserver: resolved a regression that treated `304 Not Modified` responses from aggregated API servers as internal errors.", + "markdown": "Kube-apiserver: resolved a regression that treated `304 Not Modified` responses from aggregated API servers as internal errors. ([#112526](https://github.com/kubernetes/kubernetes/pull/112526), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112526", + "pr_number": 112526, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "112542": { + "commit": "02109414e8816ceefce775e8b627d67cad6ced85", + "text": "Added validation for the `--container-runtime-endpoint` flag of kubelet to be non-empty.", + "markdown": "Added validation for the `--container-runtime-endpoint` flag of kubelet to be non-empty. ([#112542](https://github.com/kubernetes/kubernetes/pull/112542), [@astraw99](https://github.com/astraw99))", + "author": "astraw99", + "author_url": "https://github.com/astraw99", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112542", + "pr_number": 112542, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "112545": { + "commit": "6820a383be4a1bbb5cd526eb3aeb9e6ade351498", + "text": "API Server tracing root span name for opentelemetry is changed from `KubernetesAPI` to `HTTP GET`.", + "markdown": "API Server tracing root span name for opentelemetry is changed from `KubernetesAPI` to `HTTP GET`. ([#112545](https://github.com/kubernetes/kubernetes/pull/112545), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112545", + "pr_number": 112545, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "112553": { + "commit": "dad0e937c0f76344363eb691b2668490ffef8537", + "text": "`kubectl` now escapes terminal special characters in output. This fixes CVE-2021-25743.\n", + "markdown": "`kubectl` now escapes terminal special characters in output. This fixes CVE-2021-25743.\n ([#112553](https://github.com/kubernetes/kubernetes/pull/112553), [@dgl](https://github.com/dgl))", + "author": "dgl", + "author_url": "https://github.com/dgl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112553", + "pr_number": 112553, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "security" + ], + "duplicate": true + }, + "112556": { + "commit": "6ee3cbd931fd106dfd5b5f654cdf9c33435e557e", + "text": "Changed error message when resource is not supported by given patch type in `kubectl patch`.", + "markdown": "Changed error message when resource is not supported by given patch type in `kubectl patch`. ([#112556](https://github.com/kubernetes/kubernetes/pull/112556), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112556", + "pr_number": 112556, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "112557": { + "commit": "497e0dfd33b180fcc3855aad794d87f0e429c82c", + "text": "Fixed list cost estimation in Priority and Fairness for list requests with `metadata.name` specified.", + "markdown": "Fixed 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))", + "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" + ] + }, + "112567": { + "commit": "04ee339c7a4d36b4037ce3635993e2a9e395ebf3", + "text": "kube-scheduler: the `DefaultPodTopologySpread`, `NonPreemptingPriority`, `PodAffinityNamespaceSelector` and `PreferNominatedNode` feature gates that graduated to GA in v1.24 and were unconditionally enabled have been removed in v1.26.", + "markdown": "Kube-scheduler: the `DefaultPodTopologySpread`, `NonPreemptingPriority`, `PodAffinityNamespaceSelector` and `PreferNominatedNode` feature gates that graduated to GA in v1.24 and were unconditionally enabled have been removed in v1.26. ([#112567](https://github.com/kubernetes/kubernetes/pull/112567), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112567", + "pr_number": 112567, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "112571": { + "commit": "b6d89e756a706c8179f2829d612e1b24e68e9374", + "text": "Nested `MountPoints` are now grouped correctly on all cases.", + "markdown": "Nested `MountPoints` are now grouped correctly on all cases. ([#112571](https://github.com/kubernetes/kubernetes/pull/112571), [@claudiubelu](https://github.com/claudiubelu))", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112571", + "pr_number": 112571, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "windows" + ], + "duplicate": true + }, + "112577": { + "commit": "de693b5e2d165081ef52dda83cd3aa3398f263b0", + "text": "Removed feature gates `ServiceLoadBalancerClass` and `ServiceLBNodePortControl`. These feature gates were enabled (and locked) since `v1.24`.", + "markdown": "Removed feature gates `ServiceLoadBalancerClass` and `ServiceLBNodePortControl`. These feature gates were enabled (and locked) since `v1.24`. ([#112577](https://github.com/kubernetes/kubernetes/pull/112577), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112577", + "pr_number": 112577, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "112579": { + "commit": "5ce4f98a76b6c87d0c652564cb7e7fb2dacd8c20", + "text": "Removed `PodOverhead` feature gate as the feature is in GA since `v1.24`.", + "markdown": "Removed `PodOverhead` feature gate as the feature is in GA since `v1.24`. ([#112579](https://github.com/kubernetes/kubernetes/pull/112579), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112579", + "pr_number": 112579, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "node" + ], + "duplicate": true + }, + "112580": { + "commit": "b8e740f2e551531b22684e4cf6cd57da11203b3d", + "text": "Added `--disable-compression` flag to `kubectl` (default = false). When true, it opts out of response compression for all requests to the `apiserver`. This can help improve list call latencies significantly when client-server network bandwidth is ample (\u003e30MB/s) or if the server is CPU-constrained.", + "markdown": "Added `--disable-compression` flag to `kubectl` (default = false). When true, it opts out of response compression for all requests to the `apiserver`. This can help improve list call latencies significantly when client-server network bandwidth is ample (\u003e30MB/s) or if the server is CPU-constrained. ([#112580](https://github.com/kubernetes/kubernetes/pull/112580), [@shyamjvs](https://github.com/shyamjvs))", + "author": "shyamjvs", + "author_url": "https://github.com/shyamjvs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112580", + "pr_number": 112580, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "112589": { + "commit": "9c9b29032f76e39b0e36200c88fe2f127389a9fe", + "text": "The `IndexedJob` and `SuspendJob` feature gates that graduated to GA in 1.24 and were unconditionally enabled have been removed in v1.26.", + "markdown": "The `IndexedJob` and `SuspendJob` feature gates that graduated to GA in 1.24 and were unconditionally enabled have been removed in v1.26. ([#112589](https://github.com/kubernetes/kubernetes/pull/112589), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112589", + "pr_number": 112589, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ] + }, + "112607": { + "commit": "91a9ce28ac2486c50222aeeec1f76e664155d769", + "text": "volume mount cleanup now considers only plugin directory and not the entire kubelet root", + "markdown": "Volume mount cleanup now considers only plugin directory and not the entire kubelet root ([#112607](https://github.com/kubernetes/kubernetes/pull/112607), [@mattcary](https://github.com/mattcary))", + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112607", + "pr_number": 112607, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "112631": { + "commit": "ad64f9c4dc1b8b06da44df765b12de90f072a93a", + "text": "Reworded log message upon image garbage collection failure to be more clear.", + "markdown": "Reworded log message upon image garbage collection failure to be more clear. ([#112631](https://github.com/kubernetes/kubernetes/pull/112631), [@tzneal](https://github.com/tzneal)) [SIG Node]", + "author": "tzneal", + "author_url": "https://github.com/tzneal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112631", + "pr_number": 112631, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "112643": { + "commit": "525280d285c4bb4970e571a1e13a601befd75434", + "text": "`DynamicKubeletConfig` feature gate has been removed from the API server.\nDynamic kubelet reconfiguration now can't be used even when older nodes are still\nattempting to rely on it. This is aligned with the Kubernetes version skew policy.\n", + "markdown": "`DynamicKubeletConfig` feature gate has been removed from the API server.\n Dynamic kubelet reconfiguration now can't be used even when older nodes are still\n attempting to rely on it. This is aligned with the Kubernetes version skew policy.\n ([#112643](https://github.com/kubernetes/kubernetes/pull/112643), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112643", + "pr_number": 112643, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112644": { + "commit": "5579ddea8addfca5b4a632409bdbf4aa1af2d419", + "text": "The pod admission error message was improved for usability.", + "markdown": "The pod admission error message was improved for usability. ([#112644](https://github.com/kubernetes/kubernetes/pull/112644), [@vitorfhc](https://github.com/vitorfhc)) [SIG Node]", + "author": "vitorfhc", + "author_url": "https://github.com/vitorfhc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112644", + "pr_number": 112644, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "112650": { + "commit": "cdbb15c80288947ab670e2419e22992e037f9361", + "text": "kubelet: fixed log spam from kubelet_getters.go `Path does not exist`.", + "markdown": "Kubelet: fixed log spam from kubelet_getters.go `Path does not exist`. ([#112650](https://github.com/kubernetes/kubernetes/pull/112650), [@rphillips](https://github.com/rphillips))", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112650", + "pr_number": 112650, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "112652": { + "commit": "8631b2cdf952f7039f2dadf74a7d4d6e0e3c75b2", + "text": "Added a `kubernetes_feature_enabled` metric which will tell you if a feature is enabled.", + "markdown": "Added a `kubernetes_feature_enabled` metric which will tell you if a feature is enabled. ([#112652](https://github.com/kubernetes/kubernetes/pull/112652), [@logicalhan](https://github.com/logicalhan))", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112652", + "pr_number": 112652, + "kinds": [ + "cleanup" + ], + "sigs": [ + "instrumentation", + "architecture" + ], + "duplicate": true + }, + "112671": { + "commit": "7f129f1c9af62cc3cd4f6b754dacdf5932f39d5c", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#112671](https://github.com/kubernetes/kubernetes/pull/112671), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Instrumentation and Scalability]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112671", + "pr_number": 112671, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scalability", + "instrumentation" + ], + "duplicate": true, + "do_not_publish": true + }, + "112672": { + "commit": "0094662cbbca3d3f3e2e4fbb6ee4eb65f26d197a", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#112672](https://github.com/kubernetes/kubernetes/pull/112672), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Instrumentation]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112672", + "pr_number": 112672, + "kinds": [ + "cleanup" + ], + "sigs": [ + "instrumentation" + ], + "do_not_publish": true + }, + "112679": { + "commit": "7752c3a8e0fbf59739f40526b2235347ff78000e", + "text": "Deprecated the `apiserver_request_slo_duration_seconds` metric for v1.27 in favor of `apiserver_request_sli_duration_seconds` for naming consistency purposes with other SLI-specific metrics and to avoid any confusion between SLOs and SLIs.", + "markdown": "Deprecated the `apiserver_request_slo_duration_seconds` metric for v1.27 in favor of `apiserver_request_sli_duration_seconds` for naming consistency purposes with other SLI-specific metrics and to avoid any confusion between SLOs and SLIs. ([#112679](https://github.com/kubernetes/kubernetes/pull/112679), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112679", + "pr_number": 112679, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112690": { + "commit": "d2ae6fbeb10fe3c68f631b59a266e729688058a9", + "text": "Added `kubernetes_feature_enabled` metric series to track whether each active feature gate is enabled.", + "markdown": "Added `kubernetes_feature_enabled` metric series to track whether each active feature gate is enabled. ([#112690](https://github.com/kubernetes/kubernetes/pull/112690), [@logicalhan](https://github.com/logicalhan))", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112690", + "pr_number": 112690, + "areas": [ + "kubelet", + "apiserver", + "dependency" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "network", + "scheduling", + "node", + "api-machinery", + "cluster-lifecycle", + "instrumentation", + "architecture" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112693": { + "commit": "6cb473b6c4f1239d411e0a50a1cdf9c4c092c42a", + "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))", + "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": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider", + "security" + ], + "duplicate": true + }, + "112696": { + "commit": "b932a3ac374d72c188b76bde70008cb58ddf3a68", + "text": "Fixed Admission controllers that caused unnecessary significant load on `apiserver'.", + "markdown": "Fixed Admission controllers that caused unnecessary significant load on `apiserver'. ([#112696](https://github.com/kubernetes/kubernetes/pull/112696), [@aimuz](https://github.com/aimuz))", + "author": "aimuz", + "author_url": "https://github.com/aimuz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112696", + "pr_number": 112696, + "kinds": [ + "bug" + ], + "sigs": [ + "scalability" + ] + }, + "112700": { + "commit": "0207f7ae8627335cf5684fea40f5fcc5e2691a99", + "text": "kubectl: fixed a bug where `kubectl convert` did not pick the right API version", + "markdown": "Kubectl: fixed a bug where `kubectl convert` did not pick the right API version ([#112700](https://github.com/kubernetes/kubernetes/pull/112700), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112700", + "pr_number": 112700, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "112731": { + "commit": "8d1ba6a0861d4c11336d2a9895c3800d9fc795c4", + "text": "Switched kubectl to use `github.com/russross/blackfriday/v2`", + "markdown": "Switched kubectl to use `github.com/russross/blackfriday/v2` ([#112731](https://github.com/kubernetes/kubernetes/pull/112731), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112731", + "pr_number": 112731, + "areas": [ + "kubectl", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "112732": { + "commit": "edd677694374fb8284b9ddd04caf0698eaf00de5", + "text": "kubeadm: now supports image repository format validation.", + "markdown": "Kubeadm: now supports image repository format validation. ([#112732](https://github.com/kubernetes/kubernetes/pull/112732), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112732", + "pr_number": 112732, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "112741": { + "commit": "e11f23eb9712c9b4bebf8dd85dcb04441b4fb705", + "text": "Exposed health check SLI metrics on `metrics/slis` for apiserver.", + "markdown": "Exposed health check SLI metrics on `metrics/slis` for apiserver. ([#112741](https://github.com/kubernetes/kubernetes/pull/112741), [@logicalhan](https://github.com/logicalhan))", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112741", + "pr_number": 112741, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "112744": { + "commit": "ff19efdf9bd2d1f4abece3229f1e36c1d58b96df", + "text": "Added a feature that allows a `StatefulSet` to start numbering replicas from an arbitrary non-negative ordinal, using the `.spec.ordinals.start` field.", + "markdown": "Added a feature that allows a `StatefulSet` to start numbering replicas from an arbitrary non-negative ordinal, using the `.spec.ordinals.start` field. ([#112744](https://github.com/kubernetes/kubernetes/pull/112744), [@pwschuurman](https://github.com/pwschuurman))", + "author": "pwschuurman", + "author_url": "https://github.com/pwschuurman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112744", + "pr_number": 112744, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "112748": { + "commit": "97d37c29552790384b0a8b8f6f05648f28e07c55", + "text": "Locked `ServerSideApply` feature gate to true with the feature already being GA.", + "markdown": "Locked `ServerSideApply` feature gate to true with the feature already being GA. ([#112748](https://github.com/kubernetes/kubernetes/pull/112748), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112748", + "pr_number": 112748, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "112751": { + "commit": "e450d35bb303042830a8ebfaad2010908df61208", + "text": "kubeadm: fixed a bug when performing validation on `ClusterConfiguration` networking fields.", + "markdown": "Kubeadm: fixed a bug when performing validation on `ClusterConfiguration` networking fields. ([#112751](https://github.com/kubernetes/kubernetes/pull/112751), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112751", + "pr_number": 112751, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "112772": { + "commit": "7c64250cd07172f10d6bafa763d336fe01a8f6b0", + "text": "kube-apiserver: redirects from backend API servers are no longer followed when checking availability with requests to `/apis/$group/$version`", + "markdown": "Kube-apiserver: redirects from backend API servers are no longer followed when checking availability with requests to `/apis/$group/$version` ([#112772](https://github.com/kubernetes/kubernetes/pull/112772), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112772", + "pr_number": 112772, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "112785": { + "commit": "71ca3dad894c417b823de24b6d6d1ee411ef3dec", + "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. ([#112785](https://github.com/kubernetes/kubernetes/pull/112785), [@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/112785", + "pr_number": 112785, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "cloud-provider" + ], + "duplicate": true + }, + "112792": { + "commit": "b4eec3c2ad8d0645a10b4e911738627b7ecb2809", + "text": "Added a new feature gate `CelValidatingAdmissionExtensibility` to enable expression validation for Admission Control.", + "markdown": "Added a new feature gate `CelValidatingAdmissionExtensibility` to enable expression validation for Admission Control. ([#112792](https://github.com/kubernetes/kubernetes/pull/112792), [@cici37](https://github.com/cici37)) [SIG API Machinery]", + "documentation": [ + { + "description": "[KEP]", + "url": "http://kep.k8s.io/3488", + "type": "external" + } + ], + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112792", + "pr_number": 112792, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "112797": { + "commit": "8ddbd892f24d895bd49563ddaa7614ef3c21f53f", + "text": "kube-apiserver: the unused `--master-service-namespace` flag was deprecated and will be removed in v1.27.", + "markdown": "Kube-apiserver: the unused `--master-service-namespace` flag was deprecated and will be removed in v1.27. ([#112797](https://github.com/kubernetes/kubernetes/pull/112797), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112797", + "pr_number": 112797, + "areas": [ + "apiserver" + ], + "kinds": [ + "deprecation" + ], + "sigs": [ + "api-machinery" + ] + }, + "112806": { + "commit": "c1602669a667a82b585389b3a70d44cf360b1389", + "text": "Service session affinity timeout tests are no longer required for Kubernetes network plugin conformance due to variations in existing implementations. New conformance tests will be developed to better express conformance in future releases.", + "markdown": "Service session affinity timeout tests are no longer required for Kubernetes network plugin conformance due to variations in existing implementations. New conformance tests will be developed to better express conformance in future releases. ([#112806](https://github.com/kubernetes/kubernetes/pull/112806), [@dcbw](https://github.com/dcbw)) [SIG Architecture, Network and Testing]", + "author": "dcbw", + "author_url": "https://github.com/dcbw", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112806", + "pr_number": 112806, + "areas": [ + "test", + "conformance" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "testing", + "architecture" + ], + "duplicate": true + }, + "112824": { + "commit": "0ef0fa0e821fa6c64fb02b4a774d3b0fd38e466e", + "text": "The ExpandedDNSConfig feature has graduated to beta and is enabled by default. Note that this feature requires container runtime support.", + "markdown": "The ExpandedDNSConfig feature has graduated to beta and is enabled by default. Note that this feature requires container runtime support. ([#112824](https://github.com/kubernetes/kubernetes/pull/112824), [@gjkim42](https://github.com/gjkim42)) [SIG Network and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2595-expanded-dns-config", + "type": "KEP" + } + ], + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112824", + "pr_number": 112824, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "testing" + ], + "feature": true, + "duplicate": true + }, + "112837": { + "commit": "3ef7784b75e0005d96f1d64d55b822f346f85fb5", + "text": "Fixed an issue in `winkernel` proxier that causes proxy rules to leak anytime service backends are modified.", + "markdown": "Fixed an issue in `winkernel` proxier that causes proxy rules to leak anytime service backends are modified. ([#112837](https://github.com/kubernetes/kubernetes/pull/112837), [@daschott](https://github.com/daschott))", + "author": "daschott", + "author_url": "https://github.com/daschott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112837", + "pr_number": 112837, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112838": { + "commit": "32ea818d21c64bc0f9ab65b131d763e0c4401f79", + "text": "The `LegacyServiceAccountTokenNoAutoGeneration` feature gate was promoted to GA.", + "markdown": "The `LegacyServiceAccountTokenNoAutoGeneration` feature gate was promoted to GA. ([#112838](https://github.com/kubernetes/kubernetes/pull/112838), [@zshihang](https://github.com/zshihang))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/2799-reduction-of-secret-based-service-account-token", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112838", + "pr_number": 112838, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "112855": { + "commit": "d0e86111ef91615f3a17f860a2e9e6aa0c6a259a", + "text": "Added kubelet metrics to track the cpumanager cpu allocation and pinning.", + "markdown": "Added kubelet metrics to track the cpumanager cpu allocation and pinning. ([#112855](https://github.com/kubernetes/kubernetes/pull/112855), [@ffromani](https://github.com/ffromani))", + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112855", + "pr_number": 112855, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "112884": { + "commit": "e11e226b23c0213021a6678002132ad102d488e7", + "text": "Introduce `ComponentSLIs` alpha feature-gate for component SLIs metrics endpoint.", + "markdown": "Introduce `ComponentSLIs` alpha feature-gate for component SLIs metrics endpoint. ([#112884](https://github.com/kubernetes/kubernetes/pull/112884), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery]", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112884", + "pr_number": 112884, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "112895": { + "commit": "c98aef484d59dd92bb8bfc2cf02d4bc7c10f93c9", + "text": "Moved `MixedProtocolLBService` from beta to GA.", + "markdown": "Moved `MixedProtocolLBService` from beta to GA. ([#112895](https://github.com/kubernetes/kubernetes/pull/112895), [@janosi](https://github.com/janosi))", + "author": "janosi", + "author_url": "https://github.com/janosi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112895", + "pr_number": 112895, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "112900": { + "commit": "8836d51e4331920883dd1a0e57c89bbdb64aa31e", + "text": "Kubernetes is now built with Go 1.19.2", + "markdown": "Kubernetes is now built with Go 1.19.2 ([#112900](https://github.com/kubernetes/kubernetes/pull/112900), [@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/112900", + "pr_number": 112900, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "112905": { + "commit": "2f837dc113ba35f84e7012a6d1b06b075b349353", + "text": "For `kubectl`, `--server-side` now migrates ownership of all fields used by client-side-apply to the specified `--fieldmanager`. This prevents fields previously specified using kubectl from being able to live outside of server-side-apply's management and become undeleteable.", + "markdown": "For `kubectl`, `--server-side` now migrates ownership of all fields used by client-side-apply to the specified `--fieldmanager`. This prevents fields previously specified using kubectl from being able to live outside of server-side-apply's management and become undeleteable. ([#112905](https://github.com/kubernetes/kubernetes/pull/112905), [@alexzielenski](https://github.com/alexzielenski))", + "documentation": [ + { + "description": "[Discussion]", + "url": "https://github.com/kubernetes/enhancements/pull/3518#discussion_r984724392", + "type": "KEP" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112905", + "pr_number": 112905, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cli", + "testing" + ], + "duplicate": true + }, + "112907": { + "commit": "609bf91c95bdaae1034dbee7ba82e41875915e32", + "text": "'`registered_metric_total` will now report the number of metrics broken down by\nstability level and deprecated version.'\n", + "markdown": "'`registered_metric_total` will now report the number of metrics broken down by\n stability level and deprecated version.'\n ([#112907](https://github.com/kubernetes/kubernetes/pull/112907), [@logicalhan](https://github.com/logicalhan))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3466", + "type": "external" + } + ], + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112907", + "pr_number": 112907, + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "112914": { + "commit": "243ba086e7f4cb73ea32bdd25d635d06cda26085", + "text": "Added a `--topology-manager-policy-options` flag to the kubelet to support fine tuning the topology manager policies. The first policy option, `prefer-closest-numa-nodes`, allows these policies to favor sets of NUMA nodes with shorter distance between nodes when making admission decisions.", + "markdown": "Added a `--topology-manager-policy-options` flag to the kubelet to support fine tuning the topology manager policies. The first policy option, `prefer-closest-numa-nodes`, allows these policies to favor sets of NUMA nodes with shorter distance between nodes when making admission decisions. ([#112914](https://github.com/kubernetes/kubernetes/pull/112914), [@PiotrProkop](https://github.com/PiotrProkop))", + "author": "PiotrProkop", + "author_url": "https://github.com/PiotrProkop", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112914", + "pr_number": 112914, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "112924": { + "commit": "b60176972182bc2a459e019bc039dfcffa2ff868", + "text": "Removing Windows Server, Version 20H2 flavors from various container images.", + "markdown": "Removing Windows Server, Version 20H2 flavors from various container images. ([#112924](https://github.com/kubernetes/kubernetes/pull/112924), [@marosset](https://github.com/marosset))", + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112924", + "pr_number": 112924, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "windows", + "testing" + ], + "duplicate": true + }, + "112939": { + "commit": "040d7aaafa7c0ec8509b2405e70df2c1b7b350af", + "text": "Changed `preemption_victims` metric bucket from `LinearBuckets` to `ExponentialBuckets`.", + "markdown": "Changed `preemption_victims` metric bucket from `LinearBuckets` to `ExponentialBuckets`. ([#112939](https://github.com/kubernetes/kubernetes/pull/112939), [@lengrongfu](https://github.com/lengrongfu))", + "author": "lengrongfu", + "author_url": "https://github.com/lengrongfu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112939", + "pr_number": 112939, + "areas": [ + "stable-metrics" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "112945": { + "commit": "5301d921505971504867f88db9597c6d8e3e1957", + "text": "kubeadm: sub-phases are now able to support the dry-run mode, e.g. kubeadm reset phase cleanup-node --dry-run", + "markdown": "Kubeadm: sub-phases are now able to support the dry-run mode, e.g. kubeadm reset phase cleanup-node --dry-run ([#112945](https://github.com/kubernetes/kubernetes/pull/112945), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle]", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112945", + "pr_number": 112945, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "112948": { + "commit": "9bedff1147837118e1892c262992ccef42ea4041", + "text": "Fixed the occasional double-counting of the `job_finished_total` metric.", + "markdown": "Fixed the occasional double-counting of the `job_finished_total` metric. ([#112948](https://github.com/kubernetes/kubernetes/pull/112948), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112948", + "pr_number": 112948, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "instrumentation", + "testing", + "architecture" + ], + "duplicate": true + }, + "112961": { + "commit": "2ef00038d331e781799939c50ebebcfd283d85b1", + "text": "Added alpha support for `WindowsHostNetworking` feature.", + "markdown": "Added alpha support for `WindowsHostNetworking` feature. ([#112961](https://github.com/kubernetes/kubernetes/pull/112961), [@marosset](https://github.com/marosset))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/3503-host-network-support-for-windows-pods", + "type": "KEP" + } + ], + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112961", + "pr_number": 112961, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "windows" + ], + "feature": true, + "duplicate": true + }, + "112978": { + "commit": "335fd41484a86bcd4d213924871eb1cabc6c6244", + "text": "When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on kube-controller-manager, allowing you to scrape health check metrics.", + "markdown": "When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on kube-controller-manager, allowing you to scrape health check metrics. ([#112978](https://github.com/kubernetes/kubernetes/pull/112978), [@logicalhan](https://github.com/logicalhan))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3466", + "type": "external" + } + ], + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112978", + "pr_number": 112978, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "112979": { + "commit": "859ada198f51a73d2ce48fafdf7ab9153e653f3b", + "text": "Fixed issue where the APIServer would panic on startup if an egress selector without a controlplane configuration is specified when using APIServerTracing.", + "markdown": "Fixed issue where the APIServer would panic on startup if an egress selector without a controlplane configuration is specified when using APIServerTracing. ([#112979](https://github.com/kubernetes/kubernetes/pull/112979), [@dashpole](https://github.com/dashpole))", + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112979", + "pr_number": 112979, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "112980": { + "commit": "25dc4c4f320ecb75b936220c1c66741bce4b9014", + "text": "Graduated Kubelet Device Manager to GA.", + "markdown": "Graduated Kubelet Device Manager to GA. ([#112980](https://github.com/kubernetes/kubernetes/pull/112980), [@swatisehgal](https://github.com/swatisehgal))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3574", + "type": "KEP" + } + ], + "author": "swatisehgal", + "author_url": "https://github.com/swatisehgal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112980", + "pr_number": 112980, + "areas": [ + "kubelet", + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "112989": { + "commit": "054d86feb42b67bb13608d9aa9a7c986750da753", + "text": "Updates `golang.org/x/text`` to `v0.3.8`` to fix CVE-2022-32149", + "markdown": "Updates `golang.org/x/text`` to `v0.3.8`` to fix CVE-2022-32149 ([#112989](https://github.com/kubernetes/kubernetes/pull/112989), [@ameukam](https://github.com/ameukam))", + "author": "ameukam", + "author_url": "https://github.com/ameukam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112989", + "pr_number": 112989, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "113005": { + "commit": "3b8cfefaee7bd10487db8e1a53b372496bb32d95", + "text": "In `kubeadm`, command `kubeadm join phase control-plane-prepare certs` now supports to run with `dry-run` mode on it's own.", + "markdown": "In `kubeadm`, command `kubeadm join phase control-plane-prepare certs` now supports to run with `dry-run` mode on it's own. ([#113005](https://github.com/kubernetes/kubernetes/pull/113005), [@chendave](https://github.com/chendave))", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113005", + "pr_number": 113005, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "113008": { + "commit": "ead17f3dc806d54b1fa2dc6e7a95180b4b90460b", + "text": "'Promoted `cronjob_job_creation_skew` metric to stable to follow the cronjob v2 controller,\nthe following metrics had their name updated to match metrics API guidelines:\n - `cronjob_job_creation_skew_duration_seconds` -\u003e `job_creation_skew_duration_seconds`.'", + "markdown": "'Promoted `cronjob_job_creation_skew` metric to stable to follow the cronjob v2 controller,\n the following metrics had their name updated to match metrics API guidelines:\n - `cronjob_job_creation_skew_duration_seconds` -\u003e `job_creation_skew_duration_seconds`.' ([#113008](https://github.com/kubernetes/kubernetes/pull/113008), [@soltysh](https://github.com/soltysh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/19", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113008", + "pr_number": 113008, + "areas": [ + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "instrumentation" + ], + "duplicate": true + }, + "113010": { + "commit": "aef9a37df93b7207d7aac9fe4b8e19b6129f8c7a", + "text": "'Promoted job-related metrics to stable to follow IndexedJobs GA. The following metrics have their name updated to match metrics API guidelines:\n- `job_sync_total` -\u003e `job_syncs_total`\n- `job_finished_total` -\u003e `jobs_finished_total`'", + "markdown": "'Promoted job-related metrics to stable to follow IndexedJobs GA. The following metrics have their name updated to match metrics API guidelines:\n - `job_sync_total` -\u003e `job_syncs_total`\n - `job_finished_total` -\u003e `jobs_finished_total`' ([#113010](https://github.com/kubernetes/kubernetes/pull/113010), [@soltysh](https://github.com/soltysh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2214", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113010", + "pr_number": 113010, + "areas": [ + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "instrumentation" + ], + "duplicate": true + }, + "113015": { + "commit": "52f5816b8b9ed030dd1ebc4baefc6527f74254ed", + "text": "In `kube-apiserver`, custom resources can now be specified in the `--encryption-provider-config` file and can be encrypted in etcd.", + "markdown": "In `kube-apiserver`, custom resources can now be specified in the `--encryption-provider-config` file and can be encrypted in etcd. ([#113015](https://github.com/kubernetes/kubernetes/pull/113015), [@ritazh](https://github.com/ritazh))", + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113015", + "pr_number": 113015, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true + }, + "113018": { + "commit": "433787d25ba51755bb913eb6a33d1b37e6444aeb", + "text": "Graduated Kubelet CPU Manager to GA.", + "markdown": "Graduated Kubelet CPU Manager to GA. ([#113018](https://github.com/kubernetes/kubernetes/pull/113018), [@ffromani](https://github.com/ffromani))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3570", + "type": "KEP" + } + ], + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113018", + "pr_number": 113018, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113021": { + "commit": "1a41cb898547683b73a6f91b6d731d439c84f48a", + "text": "kubelet: Fixed a startup crash in devicemanager.", + "markdown": "Kubelet: Fixed a startup crash in devicemanager. ([#113021](https://github.com/kubernetes/kubernetes/pull/113021), [@rphillips](https://github.com/rphillips))", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113021", + "pr_number": 113021, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "113026": { + "commit": "52b47dac4fe26644a91f44191ff7052b73c3afd7", + "text": "When `ComponentSLIs` feature gate is enabled, `/metrics/slis` becomes available on kube-scheduler, allowing you to scrape health check metrics.", + "markdown": "When `ComponentSLIs` feature gate is enabled, `/metrics/slis` becomes available on kube-scheduler, allowing you to scrape health check metrics. ([#113026](https://github.com/kubernetes/kubernetes/pull/113026), [@Richabanker](https://github.com/Richabanker))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3466", + "type": "external" + } + ], + "author": "Richabanker", + "author_url": "https://github.com/Richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113026", + "pr_number": 113026, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "113030": { + "commit": "a497c56c33aca254e69513fcd46c0c76c8fadcab", + "text": "If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on kubelet, allowing you to scrape health check metrics.", + "markdown": "If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on kubelet, allowing you to scrape health check metrics. ([#113030](https://github.com/kubernetes/kubernetes/pull/113030), [@Richabanker](https://github.com/Richabanker)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3466", + "type": "external" + } + ], + "author": "Richabanker", + "author_url": "https://github.com/Richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113030", + "pr_number": 113030, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "113041": { + "commit": "843ad71cac98bcfff9f367a8ad90246cbc57d71c", + "text": "Fixed a bug where the kubelet choose the wrong container by its name when running `kubectl exec`.", + "markdown": "Fixed a bug where the kubelet choose the wrong container by its name when running `kubectl exec`. ([#113041](https://github.com/kubernetes/kubernetes/pull/113041), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113041", + "pr_number": 113041, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "113057": { + "commit": "b6e8dfec61c4080f9db8667cec11ba6f4a3bf4bf", + "text": "When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on `kube-proxy` allowing you to scrape health check metrics.", + "markdown": "When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on `kube-proxy` allowing you to scrape health check metrics. ([#113057](https://github.com/kubernetes/kubernetes/pull/113057), [@Richabanker](https://github.com/Richabanker))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3466", + "type": "external" + } + ], + "author": "Richabanker", + "author_url": "https://github.com/Richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113057", + "pr_number": 113057, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "113113": { + "commit": "2b6abb1b333737edbd8e44015de4e2867b6118c9", + "text": "The time duration of a failed or unschedulable scheduling attempt will be longer, it \nnow includes the time duration of the unreserve operation.", + "markdown": "The time duration of a failed or unschedulable scheduling attempt will be longer, it \n now includes the time duration of the unreserve operation. ([#113113](https://github.com/kubernetes/kubernetes/pull/113113), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113113", + "pr_number": 113113, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "113116": { + "commit": "bbbb79712cb6b0a72b2695f21a95ad7bb4cc45e6", + "text": "Added a `--prune-allowlist` flag that can be used with `kubectl apply --prune`. This flag now replaces and functions the same as the `--prune-whitelist` flag, which has been deprecated.", + "markdown": "Added a `--prune-allowlist` flag that can be used with `kubectl apply --prune`. This flag now replaces and functions the same as the `--prune-whitelist` flag, which has been deprecated. ([#113116](https://github.com/kubernetes/kubernetes/pull/113116), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113116", + "pr_number": 113116, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "113133": { + "commit": "615929ed889e7bf921798142ecdef9f87832da43", + "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))", + "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" + ] + }, + "113146": { + "commit": "b0cbf71f5c443460679052ca0cf4800e9d61ab5b", + "text": "Adds alpha --output plaintext protected by environment variable `KUBECTL_EXPLAIN_OPENAPIV3`", + "markdown": "Adds alpha --output plaintext protected by environment variable `KUBECTL_EXPLAIN_OPENAPIV3` ([#113146](https://github.com/kubernetes/kubernetes/pull/113146), [@alexzielenski](https://github.com/alexzielenski)) [SIG CLI]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3515-kubectl-explain-openapiv3", + "type": "KEP" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113146", + "pr_number": 113146, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "113160": { + "commit": "7cd98dec08cbe3ac1ed7d5238bb179760103795d", + "text": "Azure File CSI migration is now GA.", + "markdown": "Azure File CSI migration is now GA. ([#113160](https://github.com/kubernetes/kubernetes/pull/113160), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113160", + "pr_number": 113160, + "areas": [ + "provider/azure" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "113171": { + "commit": "8058e8eff8ba8541ddd48cd54bbb19a3fce62c09", + "text": "Aggregated discovery will be alpha and can be toggled with the `AggregatedDiscoveryEndpoint` feature flag.", + "markdown": "Aggregated discovery will be alpha and can be toggled with the `AggregatedDiscoveryEndpoint` feature flag. ([#113171](https://github.com/kubernetes/kubernetes/pull/113171), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113171", + "pr_number": 113171, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "kubeadm", + "conformance", + "code-generation", + "ipvs", + "e2e-test-framework", + "dependency", + "stable-metrics" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "scalability", + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "autoscaling", + "auth", + "apps", + "cli", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113172": { + "commit": "ae6dc598bd23c29480ce5ec426b75954dbd1b65b", + "text": "API Server Tracing now includes a variety of new spans and span events.", + "markdown": "API Server Tracing now includes a variety of new spans and span events. ([#113172](https://github.com/kubernetes/kubernetes/pull/113172), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Architecture, Auth, Instrumentation, Network, Node and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/1954332075e9df9b51e1b04eecbb22537308f102/keps/sig-instrumentation/647-apiserver-tracing", + "type": "KEP" + } + ], + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113172", + "pr_number": 113172, + "areas": [ + "kubelet", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "scheduling", + "node", + "api-machinery", + "auth", + "instrumentation", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "113176": { + "commit": "2313e2b8256000b3012d7bb4df2ecdf5fcf09604", + "text": "Added new metric `job_controller_terminated_pods_tracking_finalizer` which can be used to monitor whether the job controller is removing Pod finalizers from terminated Pods after accounting them in Job status.", + "markdown": "Added new metric `job_controller_terminated_pods_tracking_finalizer` which can be used to monitor whether the job controller is removing Pod finalizers from terminated Pods after accounting them in Job status. ([#113176](https://github.com/kubernetes/kubernetes/pull/113176), [@alculquicondor](https://github.com/alculquicondor))", + "documentation": [ + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#job-tracking-with-finalizers", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113176", + "pr_number": 113176, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113186": { + "commit": "d94261e904c90578e913c42c4d2a0fc8cb30937f", + "text": "Added a new namespace alpha field to `DataSourceRef` field in `PersistentVolumeClaim` API.", + "markdown": "Added a new namespace alpha field to `DataSourceRef` field in `PersistentVolumeClaim` API. ([#113186](https://github.com/kubernetes/kubernetes/pull/113186), [@ttakahashi21](https://github.com/ttakahashi21))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/3294-provision-volumes-from-cross-namespace-snapshots", + "type": "KEP" + } + ], + "author": "ttakahashi21", + "author_url": "https://github.com/ttakahashi21", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113186", + "pr_number": 113186, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113198": { + "commit": "3df170d1c49ed8a75df0a87ca4ba335cfa600145", + "text": "STEP: expect not showing any WARNING message 10/19/22 21:20:25.015\nOct 19 21:20:25.015: INFO: Running '/home/prow/go/src/k8s.io/kubernetes/_output/bin/kubectl --server=https://[::1]:34867 --kubeconfig=/root/.kube/kind-test-config --namespace=kubectl-6045 alpha events --types=WARNING --for=pod/e2e-test-httpd-pod'\nOct 19 21:20:25.114: INFO: stderr: \"\"\nOct 19 21:20:25.114: INFO: stdout: \"LAST SEEN TYPE REASON OBJECT MESSAGE\\n27s (x2 over 29s) Warning FailedMount Pod/e2e-test-httpd-pod MountVolume.SetUp failed for volume \\\"kube-api-access-9gvsx\\\" : failed to sync configmap cache: timed out waiting for the condition\\n\"\nOct 19 21:20:25.114: FAIL: unexpected WARNING event fired", + "markdown": "STEP: expect not showing any WARNING message 10/19/22 21:20:25.015\n Oct 19 21:20:25.015: INFO: Running '/home/prow/go/src/k8s.io/kubernetes/_output/bin/kubectl --server=https://[::1]:34867 --kubeconfig=/root/.kube/kind-test-config --namespace=kubectl-6045 alpha events --types=WARNING --for=pod/e2e-test-httpd-pod'\n Oct 19 21:20:25.114: INFO: stderr: \"\"\n Oct 19 21:20:25.114: INFO: stdout: \"LAST SEEN TYPE REASON OBJECT MESSAGE\\n27s (x2 over 29s) Warning FailedMount Pod/e2e-test-httpd-pod MountVolume.SetUp failed for volume \\\"kube-api-access-9gvsx\\\" : failed to sync configmap cache: timed out waiting for the condition\\n\"\n Oct 19 21:20:25.114: FAIL: unexpected WARNING event fired ([#113198](https://github.com/kubernetes/kubernetes/pull/113198), [@pacoxu](https://github.com/pacoxu)) [SIG CLI and Testing]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113198", + "pr_number": 113198, + "areas": [ + "test" + ], + "kinds": [ + "flake" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "113206": { + "commit": "b7f5de17aeef93481f32a4cb804a72cd9ed9c8f3", + "text": "Fixed cost estimation of token creation request for service account in Priority and Fairness.", + "markdown": "Fixed cost estimation of token creation request for service account in Priority and Fairness. ([#113206](https://github.com/kubernetes/kubernetes/pull/113206), [@marseel](https://github.com/marseel))", + "author": "marseel", + "author_url": "https://github.com/marseel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113206", + "pr_number": 113206, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "113212": { + "commit": "dbb3b4f340d11ccc87a05a70af1c2f327b5f4815", + "text": "The `e2e.test` binary no longer emits JSON structs to document progress.", + "markdown": "The `e2e.test` binary no longer emits JSON structs to document progress. ([#113212](https://github.com/kubernetes/kubernetes/pull/113212), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113212", + "pr_number": 113212, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ] + }, + "113217": { + "commit": "f522df5b49e3165f228fc6e3fd03df76c738bb72", + "text": "API Server tracing now includes the latency of authorization, priorityandfairness, impersonation, audit, and authentication filters.", + "markdown": "API Server tracing now includes the latency of authorization, priorityandfairness, impersonation, audit, and authentication filters. ([#113217](https://github.com/kubernetes/kubernetes/pull/113217), [@dashpole](https://github.com/dashpole))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/bddca24910fb349e2eb0ac1c822c77f0f32fe9c6/keps/sig-instrumentation/647-apiserver-tracing/README.md", + "type": "KEP" + } + ], + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113217", + "pr_number": 113217, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "113225": { + "commit": "d3601a0f0625503993539809b1ef9f59c709a237", + "text": "'`DelegateFSGroupToCSIDriver` feature is GA.'\n", + "markdown": "'`DelegateFSGroupToCSIDriver` feature is GA.'\n ([#113225](https://github.com/kubernetes/kubernetes/pull/113225), [@bertinatto](https://github.com/bertinatto))", + "author": "bertinatto", + "author_url": "https://github.com/bertinatto", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113225", + "pr_number": 113225, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "113274": { + "commit": "8c77820759cc28a5d82e9a68f3d335d1a27f4466", + "text": "New Pod API field `.spec.schedulingGates` was introduced to enable users to control when to mark a Pod as scheduling ready.", + "markdown": "New Pod API field `.spec.schedulingGates` was introduced to enable users to control when to mark a Pod as scheduling ready. ([#113274](https://github.com/kubernetes/kubernetes/pull/113274), [@Huang-Wei](https://github.com/Huang-Wei))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3521-pod-scheduling-readiness", + "type": "KEP" + } + ], + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113274", + "pr_number": 113274, + "areas": [ + "test", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113275": { + "commit": "95bd687a284f63535cbf48b0696d8ae57c9929ef", + "text": "'A new `preEnqueue` extension point was added to scheduler's component config\n`v1beta2/v1beta3/v1`.'\n", + "markdown": "'A new `preEnqueue` extension point was added to scheduler's component config\n `v1beta2/v1beta3/v1`.'\n ([#113275](https://github.com/kubernetes/kubernetes/pull/113275), [@Huang-Wei](https://github.com/Huang-Wei))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3521-pod-scheduling-readiness", + "type": "KEP" + } + ], + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113275", + "pr_number": 113275, + "areas": [ + "test", + "code-generation", + "e2e-test-framework", + "stable-metrics" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113291": { + "commit": "f328d3dc3d6d7b19045635372f2f7fabd385435e", + "text": "Fixed the `PodAndContainerStatsFromCRI` feature, instead of supplementing with stats from cAdvisor.", + "markdown": "Fixed the `PodAndContainerStatsFromCRI` feature, instead of supplementing with stats from cAdvisor. ([#113291](https://github.com/kubernetes/kubernetes/pull/113291), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2371-cri-pod-container-stats#current-fulfiller-of-metrics-endpoints--future-proposal", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113291", + "pr_number": 113291, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "instrumentation" + ], + "duplicate": true + }, + "113304": { + "commit": "3c9928e4f87c1d023e595292e6139cbd8dfedd5c", + "text": "The `kube-scheduler` and `kube-controller-manager` now use server side apply to set conditions related to pod disruption.", + "markdown": "The `kube-scheduler` and `kube-controller-manager` now use server side apply to set conditions related to pod disruption. ([#113304](https://github.com/kubernetes/kubernetes/pull/113304), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113304", + "pr_number": 113304, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "scheduling", + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "113307": { + "commit": "c8a3657bde08fde0240cba2e8579b160e95bc459", + "text": "Updated the Lease identity naming format for the `APIServerIdentity` feature to use a persistent name.", + "markdown": "Updated the Lease identity naming format for the `APIServerIdentity` feature to use a persistent name. ([#113307](https://github.com/kubernetes/kubernetes/pull/113307), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113307", + "pr_number": 113307, + "areas": [ + "test", + "kubelet", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113310": { + "commit": "19ab5b69108172a1c1725a23fdf4e30eba4ff629", + "text": "The metric `etcd_db_total_size_in_bytes` is renamed to `apiserver_storage_db_total_size_in_bytes`.", + "markdown": "The metric `etcd_db_total_size_in_bytes` is renamed to `apiserver_storage_db_total_size_in_bytes`. ([#113310](https://github.com/kubernetes/kubernetes/pull/113310), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery]", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113310", + "pr_number": 113310, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "113314": { + "commit": "595ea324113580ae61f4a15ab3e5b22303a195cf", + "text": "Introduced `v1alpha1` API for validating admission policies, enabling extensible admission control via CEL expressions (KEP 3488: CEL for Admission Control). To use, enable the `ValidatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` API via `--runtime-config`.", + "markdown": "Introduced `v1alpha1` API for validating admission policies, enabling extensible admission control via CEL expressions (KEP 3488: CEL for Admission Control). To use, enable the `ValidatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` API via `--runtime-config`. ([#113314](https://github.com/kubernetes/kubernetes/pull/113314), [@cici37](https://github.com/cici37))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3488-cel-admission-control", + "type": "KEP" + } + ], + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113314", + "pr_number": 113314, + "areas": [ + "test", + "apiserver", + "cloudprovider", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113323": { + "commit": "ca03736670550056e74b1241790286e1d8a574f2", + "text": "Metrics for `RetroactiveDefaultStorageClass` feature are now available. To see an attempt count for updating PVC retroactively with a default StorageClass see `retroactive_storageclass_total` metric and for total numer of errors see `retroactive_storageclass_errors_total`.", + "markdown": "Metrics for `RetroactiveDefaultStorageClass` feature are now available. To see an attempt count for updating PVC retroactively with a default StorageClass see `retroactive_storageclass_total` metric and for total numer of errors see `retroactive_storageclass_errors_total`. ([#113323](https://github.com/kubernetes/kubernetes/pull/113323), [@RomanBednar](https://github.com/RomanBednar))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3333", + "type": "KEP" + } + ], + "author": "RomanBednar", + "author_url": "https://github.com/RomanBednar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113323", + "pr_number": 113323, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "113324": { + "commit": "3628532311d9e4cd2cf269dd2a7591f5e3387fb0", + "text": "Extend the job `job_finished_total metric by new `reason` label and introduce a new job metric to count pod failures\nhandled by pod failure policy with respect to the action applied.", + "markdown": "Extend the job `job_finished_total metric by new `reason` label and introduce a new job metric to count pod failures\n handled by pod failure policy with respect to the action applied. ([#113324](https://github.com/kubernetes/kubernetes/pull/113324), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113324", + "pr_number": 113324, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113329": { + "commit": "06ba3835321b85419a2d444a7ac5e8847ba6ec79", + "text": "'`RetroactiveDefaultStorageClass` feature is now beta.'\n", + "markdown": "'`RetroactiveDefaultStorageClass` feature is now beta.'\n ([#113329](https://github.com/kubernetes/kubernetes/pull/113329), [@RomanBednar](https://github.com/RomanBednar))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3333", + "type": "KEP" + } + ], + "author": "RomanBednar", + "author_url": "https://github.com/RomanBednar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113329", + "pr_number": 113329, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113336": { + "commit": "ee640d775637bcb740f6af8f7f0ee03ef853b643", + "text": "'`CSIMigrationvSphere` was upgraded to GA and locked to true. Do not upgrade to K8s\n1.26 if you need Windows, or XFS, or raw block support until vSphere CSI Driver\nadds support for them in a version post v2.7.x.'\n", + "markdown": "'`CSIMigrationvSphere` was upgraded to GA and locked to true. Do not upgrade to K8s\n 1.26 if you need Windows, or XFS, or raw block support until vSphere CSI Driver\n adds support for them in a version post v2.7.x.'\n ([#113336](https://github.com/kubernetes/kubernetes/pull/113336), [@divyenpatel](https://github.com/divyenpatel))", + "author": "divyenpatel", + "author_url": "https://github.com/divyenpatel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113336", + "pr_number": 113336, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true + }, + "113340": { + "commit": "83fe3aae4b6dbde92c6b130ee059a28814300f52", + "text": "If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` now becomes available on cloud-controller-manager allowing you to scrape health check metrics.", + "markdown": "If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` now becomes available on cloud-controller-manager allowing you to scrape health check metrics. ([#113340](https://github.com/kubernetes/kubernetes/pull/113340), [@Richabanker](https://github.com/Richabanker))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3466", + "type": "external" + } + ], + "author": "Richabanker", + "author_url": "https://github.com/Richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113340", + "pr_number": 113340, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "113351": { + "commit": "b20ddbd75acf7e917bd1462688ff2f91edaf4052", + "text": "The `EndpointSliceTerminatingCondition` feature gate was graduated to GA. The gate is now locked and will be removed in v1.28.", + "markdown": "The `EndpointSliceTerminatingCondition` feature gate was graduated to GA. The gate is now locked and will be removed in v1.28. ([#113351](https://github.com/kubernetes/kubernetes/pull/113351), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113351", + "pr_number": 113351, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113360": { + "commit": "7e0e0c8ec3a6f68db0a9c259836a9ad8792fa67b", + "text": "Enabled the \"Retriable and non-retriable pod failures for jobs\" feature into beta.", + "markdown": "Enabled the \"Retriable and non-retriable pod failures for jobs\" feature into beta. ([#113360](https://github.com/kubernetes/kubernetes/pull/113360), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113360", + "pr_number": 113360, + "areas": [ + "test", + "kubelet", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "node", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113363": { + "commit": "fccd8b12d0ef817406fde33be8cc1b6b2f5ab718", + "text": "The `ProxyTerminatingEndpoints` feature is now Beta and enabled by default. When enabled, kube-proxy will attempt to route traffic to terminating pods when the traffic policy is `Local` and there are only terminating pods remaining on a node.", + "markdown": "The `ProxyTerminatingEndpoints` feature is now Beta and enabled by default. When enabled, kube-proxy will attempt to route traffic to terminating pods when the traffic policy is `Local` and there are only terminating pods remaining on a node. ([#113363](https://github.com/kubernetes/kubernetes/pull/113363), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113363", + "pr_number": 113363, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "113369": { + "commit": "421213b7a17b4d2753b3a00b7332a4bec3aba127", + "text": "The `ResourceVersion` returned in objects from delete responses is now consistent with the `ResourceVersion` contained in the delete watch event.", + "markdown": "The `ResourceVersion` returned in objects from delete responses is now consistent with the `ResourceVersion` contained in the delete watch event. ([#113369](https://github.com/kubernetes/kubernetes/pull/113369), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113369", + "pr_number": 113369, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "113375": { + "commit": "cc704f97784c3359db4690b97201ebfe6b481869", + "text": "'`PodDisruptionBudget` now adds an alpha `spec.unhealthyPodEvictionPolicy` field.\nWhen the `PDBUnhealthyPodEvictionPolicy` feature-gate is enabled in `kube-apiserver`,\nsetting this field to `\"AlwaysAllow\"` allows pods to be evicted if they do not\nhave a ready condition, regardless of whether the PodDisruptionBudget is currently\nhealthy.'\n", + "markdown": "'`PodDisruptionBudget` now adds an alpha `spec.unhealthyPodEvictionPolicy` field.\n When the `PDBUnhealthyPodEvictionPolicy` feature-gate is enabled in `kube-apiserver`,\n setting this field to `\"AlwaysAllow\"` allows pods to be evicted if they do not\n have a ready condition, regardless of whether the PodDisruptionBudget is currently\n healthy.'\n ([#113375](https://github.com/kubernetes/kubernetes/pull/113375), [@atiratree](https://github.com/atiratree))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3017-pod-healthy-policy-for-pdb", + "type": "KEP" + } + ], + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113375", + "pr_number": 113375, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113448": { + "commit": "ac59b03214807ef0319c052a02693f077ee88083", + "text": "kubeadm: removed the `UnversionedKubeletConfigMap` feature gate. The feature has been GA and locked to enabled since `v1.25`.", + "markdown": "Kubeadm: removed the `UnversionedKubeletConfigMap` feature gate. The feature has been GA and locked to enabled since `v1.25`. ([#113448](https://github.com/kubernetes/kubernetes/pull/113448), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/2915", + "type": "external" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113448", + "pr_number": 113448, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "113476": { + "commit": "9bbd0fbdb2bf7d9f6b21e268357316fa7c556f83", + "text": "Promoting `WindowsHostProcessContainers` to stable.", + "markdown": "Promoting `WindowsHostProcessContainers` to stable. ([#113476](https://github.com/kubernetes/kubernetes/pull/113476), [@marosset](https://github.com/marosset))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/1981-windows-privileged-container-support", + "type": "KEP" + } + ], + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113476", + "pr_number": 113476, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "apps", + "windows", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113481": { + "commit": "5899432f92d27a6acb9198336a7abcad51311c39", + "text": "Pod logs using `--timestamps` are not broken up with timestamps anymore.", + "markdown": "Pod logs using `--timestamps` are not broken up with timestamps anymore. ([#113481](https://github.com/kubernetes/kubernetes/pull/113481), [@rphillips](https://github.com/rphillips))", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113481", + "pr_number": 113481, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "113485": { + "commit": "1193a9abcbd6c6ce6fc7d4ce38872f1933ef5159", + "text": "'Priority and Fairness has introduced a new feature called _borrowing_ that allows an API priority level\nto borrow a number of seats from other priority level(s). As a cluster operator, you can enable borrowing\nfor a certain priority level configuration object via the two newly introduced fields `lendablePercent`, and\n`borrowingLimitPercent` located under the `.spec.limited` field of the designated priority level.\nThis change added the following metrics:\n- `apiserver_flowcontrol_nominal_limit_seats`: Nominal number of execution seats configured for each priority level\n- `apiserver_flowcontrol_lower_limit_seats`: Configured lower bound on number of execution seats available to each priority level\n- `apiserver_flowcontrol_upper_limit_seats`: Configured upper bound on number of execution seats available to each priority level\n- `apiserver_flowcontrol_demand_seats`: Observations, at the end of every nanosecond, of (the number of seats each priority level could use) / (nominal number of seats for that level)\n- `apiserver_flowcontrol_demand_seats_high_watermark`: High watermark, over last adjustment period, of demand_seats\n- `apiserver_flowcontrol_demand_seats_average`: Time-weighted average, over last adjustment period, of demand_seats\n- `apiserver_flowcontrol_demand_seats_stdev`: Time-weighted standard deviation, over last adjustment period, of demand_seats\n- `apiserver_flowcontrol_demand_seats_smoothed`: Smoothed seat demands\n- `apiserver_flowcontrol_target_seats`: Seat allocation targets\n- `apiserver_flowcontrol_seat_fair_frac`: Fair fraction of server's concurrency to allocate to each priority level that can use it\n- `apiserver_flowcontrol_current_limit_seats`: current derived number of execution seats available to each priority level\nThe possibility of borrowing means that the old metric `apiserver_flowcontrol_request_concurrency_limit` can no longer mean both the configured concurrency limit and the enforced concurrency limit. Henceforth it means the configured concurrency limit.'", + "markdown": "'Priority and Fairness has introduced a new feature called _borrowing_ that allows an API priority level\n to borrow a number of seats from other priority level(s). As a cluster operator, you can enable borrowing\n for a certain priority level configuration object via the two newly introduced fields `lendablePercent`, and\n `borrowingLimitPercent` located under the `.spec.limited` field of the designated priority level.\n This change added the following metrics:\n - `apiserver_flowcontrol_nominal_limit_seats`: Nominal number of execution seats configured for each priority level\n - `apiserver_flowcontrol_lower_limit_seats`: Configured lower bound on number of execution seats available to each priority level\n - `apiserver_flowcontrol_upper_limit_seats`: Configured upper bound on number of execution seats available to each priority level\n - `apiserver_flowcontrol_demand_seats`: Observations, at the end of every nanosecond, of (the number of seats each priority level could use) / (nominal number of seats for that level)\n - `apiserver_flowcontrol_demand_seats_high_watermark`: High watermark, over last adjustment period, of demand_seats\n - `apiserver_flowcontrol_demand_seats_average`: Time-weighted average, over last adjustment period, of demand_seats\n - `apiserver_flowcontrol_demand_seats_stdev`: Time-weighted standard deviation, over last adjustment period, of demand_seats\n - `apiserver_flowcontrol_demand_seats_smoothed`: Smoothed seat demands\n - `apiserver_flowcontrol_target_seats`: Seat allocation targets\n - `apiserver_flowcontrol_seat_fair_frac`: Fair fraction of server's concurrency to allocate to each priority level that can use it\n - `apiserver_flowcontrol_current_limit_seats`: current derived number of execution seats available to each priority level\n The possibility of borrowing means that the old metric `apiserver_flowcontrol_request_concurrency_limit` can no longer mean both the configured concurrency limit and the enforced concurrency limit. Henceforth it means the configured concurrency limit.' ([#113485](https://github.com/kubernetes/kubernetes/pull/113485), [@MikeSpreitzer](https://github.com/MikeSpreitzer))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1040-priority-and-fairness#dispatching", + "type": "KEP" + } + ], + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113485", + "pr_number": 113485, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113491": { + "commit": "3efd107eb235d06feee95f80e461319d1dda7793", + "text": "'Pod Security admission: the pod-security `warn` level will now default to\nthe `enforce` level.'\n", + "markdown": "'Pod Security admission: the pod-security `warn` level will now default to\n the `enforce` level.'\n ([#113491](https://github.com/kubernetes/kubernetes/pull/113491), [@tallclair](https://github.com/tallclair))", + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113491", + "pr_number": 113491, + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "security" + ], + "feature": true, + "duplicate": true + }, + "113496": { + "commit": "7a465163694131e6d66fe95a7e91f2f8235306bf", + "text": "Graduated `ServiceInternalTrafficPolicy` feature to GA.", + "markdown": "Graduated `ServiceInternalTrafficPolicy` feature to GA. ([#113496](https://github.com/kubernetes/kubernetes/pull/113496), [@avoltz](https://github.com/avoltz))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2086", + "type": "KEP" + } + ], + "author": "avoltz", + "author_url": "https://github.com/avoltz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113496", + "pr_number": 113496, + "areas": [ + "ipvs" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113500": { + "commit": "c326b2713f0d2d836209409bf4387d8e9e84af76", + "text": "'`NodeInclusionPolicy` in `podTopologySpread` plugin is now enabled by default.'\n", + "markdown": "'`NodeInclusionPolicy` in `podTopologySpread` plugin is now enabled by default.'\n ([#113500](https://github.com/kubernetes/kubernetes/pull/113500), [@kerthcet](https://github.com/kerthcet))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/3094", + "type": "KEP" + } + ], + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113500", + "pr_number": 113500, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113501": { + "commit": "70263d55b281878121684337c0a7f205dabba5ec", + "text": "kubelet: fixed nil pointer in reflector start for standalone mode.", + "markdown": "Kubelet: fixed nil pointer in reflector start for standalone mode. ([#113501](https://github.com/kubernetes/kubernetes/pull/113501), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113501", + "pr_number": 113501, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "113510": { + "commit": "ac95e5b701dff7acc994dcdf5192264e7f6fe02a", + "text": "'Graduated `JobTrackingWithFinalizers` to stable.\nJobs created before the feature was enabled are still tracked without finalizers.\nJobs tracked with finalizers have the annotation batch.kubernetes.io/job-tracking.\nIf the annotation is present and the user attempts to remove it, the control plane adds it back.\nThe annotation `batch.kubernetes.io/job-tracking` is now deprecated.\nThe control plane will ignore it and stop adding it for new Jobs in v1.27.'", + "markdown": "'Graduated `JobTrackingWithFinalizers` to stable.\n Jobs created before the feature was enabled are still tracked without finalizers.\n Jobs tracked with finalizers have the annotation batch.kubernetes.io/job-tracking.\n If the annotation is present and the user attempts to remove it, the control plane adds it back.\n The annotation `batch.kubernetes.io/job-tracking` is now deprecated.\n The control plane will ignore it and stop adding it for new Jobs in v1.27.' ([#113510](https://github.com/kubernetes/kubernetes/pull/113510), [@alculquicondor](https://github.com/alculquicondor))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/a4b5f5c8e9aa857f9bf1f7df2a9a8b9ee660ed1e/keps/sig-apps/2307-job-tracking-without-lingering-pods#beta---ga-graduation", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#job-tracking-with-finalizers", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113510", + "pr_number": 113510, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113511": { + "commit": "d62cc3dc6d5c07fea79eafd866ac7e1217000ea8", + "text": "'`NodeOutOfServiceVolumeDetach` is now beta.'\n", + "markdown": "'`NodeOutOfServiceVolumeDetach` is now beta.'\n ([#113511](https://github.com/kubernetes/kubernetes/pull/113511), [@xing-yang](https://github.com/xing-yang))", + "author": "xing-yang", + "author_url": "https://github.com/xing-yang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113511", + "pr_number": 113511, + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node" + ], + "feature": true, + "duplicate": true + }, + "113519": { + "commit": "38bcc0c1537cdd0bf2e26968cf10f34002fc7db1", + "text": "Adds metrics `force_delete_pods_total` and `force_delete_pod_errors_total` in the Pod GC Controller.", + "markdown": "Adds metrics `force_delete_pods_total` and `force_delete_pod_errors_total` in the Pod GC Controller. ([#113519](https://github.com/kubernetes/kubernetes/pull/113519), [@xing-yang](https://github.com/xing-yang)) [SIG Apps]", + "author": "xing-yang", + "author_url": "https://github.com/xing-yang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113519", + "pr_number": 113519, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "113521": { + "commit": "b60b0c74c91a2dc12436503f63d1a3b266eb02d4", + "text": "Resolved an issue that caused winkernel proxier to treat stale VIPs as valid.", + "markdown": "Resolved an issue that caused winkernel proxier to treat stale VIPs as valid. ([#113521](https://github.com/kubernetes/kubernetes/pull/113521), [@daschott](https://github.com/daschott))", + "author": "daschott", + "author_url": "https://github.com/daschott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113521", + "pr_number": 113521, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true + }, + "113529": { + "commit": "b1dd1cd2f177ecf228cbbfb0db9327a276098be8", + "text": "A new API server flag `--encryption-provider-config-automatic-reload` was added to control when the encryption config should be automatically reloaded without needing to restart the server. All KMS plugins are now merged into a single healthz check at `/healthz/kms-providers` when reload is enabled, or when only KMS v2 plugins are used.", + "markdown": "A new API server flag `--encryption-provider-config-automatic-reload` was added to control when the encryption config should be automatically reloaded without needing to restart the server. All KMS plugins are now merged into a single healthz check at `/healthz/kms-providers` when reload is enabled, or when only KMS v2 plugins are used. ([#113529](https://github.com/kubernetes/kubernetes/pull/113529), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113529", + "pr_number": 113529, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true + }, + "113544": { + "commit": "0e530f44af57643f37ec87e22780becaf1567822", + "text": "Added publishing events when enabling/disabling `TopologyAwareHints`.", + "markdown": "Added publishing events when enabling/disabling `TopologyAwareHints`. ([#113544](https://github.com/kubernetes/kubernetes/pull/113544), [@LiorLieberman](https://github.com/LiorLieberman))", + "author": "LiorLieberman", + "author_url": "https://github.com/LiorLieberman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113544", + "pr_number": 113544, + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "apps" + ], + "feature": true, + "duplicate": true + }, + "113550": { + "commit": "2acad1b8c4b5f9a4991885ef34de1dc771139628", + "text": "Kubernetes is now built with Go `1.19.3`.", + "markdown": "Kubernetes is now built with Go `1.19.3`. ([#113550](https://github.com/kubernetes/kubernetes/pull/113550), [@xmudrii](https://github.com/xmudrii))", + "author": "xmudrii", + "author_url": "https://github.com/xmudrii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113550", + "pr_number": 113550, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "113580": { + "commit": "208b2b7ca9f211c0d4a8df903bfb65fd6065d527", + "text": "Fixed that disruption controller used to change the status of a stale disruption condition after 2 min when the `PodDisruptionConditions` feature gate is enabled.", + "markdown": "Fixed that disruption controller used to change the status of a stale disruption condition after 2 min when the `PodDisruptionConditions` feature gate is enabled. ([#113580](https://github.com/kubernetes/kubernetes/pull/113580), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113580", + "pr_number": 113580, + "kinds": [ + "bug" + ], + "sigs": [ + "auth" + ] + }, + "113596": { + "commit": "da735b541514f65ab4e693a28a3637fad7a288b3", + "text": "Added reconstruction of SELinux mount context after kubelet restart. Feature `SELinuxMountReadWriteOncePod` is now fully implemented and kubelet does not lose its cache of SELinux contexts after kubelet process restart.", + "markdown": "Added reconstruction of SELinux mount context after kubelet restart. Feature `SELinuxMountReadWriteOncePod` is now fully implemented and kubelet does not lose its cache of SELinux contexts after kubelet process restart. ([#113596](https://github.com/kubernetes/kubernetes/pull/113596), [@jsafrane](https://github.com/jsafrane))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling", + "type": "KEP" + } + ], + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113596", + "pr_number": 113596, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113609": { + "commit": "b4040b3b863737674a492f8fd415eff8503ba0b4", + "text": "Added alpha support for returning container and pod metrics from CRI, instead of cAdvsior.", + "markdown": "Added alpha support for returning container and pod metrics from CRI, instead of cAdvsior. ([#113609](https://github.com/kubernetes/kubernetes/pull/113609), [@haircommander](https://github.com/haircommander))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2371", + "type": "KEP" + } + ], + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113609", + "pr_number": 113609, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "instrumentation", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "113629": { + "commit": "3a99a5954d6497b4238d011cec4d33422d3957a0", + "text": "'Promoted the `APIServerIdentity` feature to Beta. By default, each `kube-apiserver`\nwill now create a Lease in the `kube-system` namespace. These lease objects can\nbe used to identify the number of active API servers in the cluster, and may also\nbe used for future features such as the Storage Version API.'\n", + "markdown": "'Promoted the `APIServerIdentity` feature to Beta. By default, each `kube-apiserver`\n will now create a Lease in the `kube-system` namespace. These lease objects can\n be used to identify the number of active API servers in the cluster, and may also\n be used for future features such as the Storage Version API.'\n ([#113629](https://github.com/kubernetes/kubernetes/pull/113629), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113629", + "pr_number": 113629, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113636": { + "commit": "56a0823730b9c4dafe06a18bd8de027b40d1971c", + "text": "kubectl shell completions for the bash shell now include descriptions.", + "markdown": "Kubectl shell completions for the bash shell now include descriptions. ([#113636](https://github.com/kubernetes/kubernetes/pull/113636), [@marckhouzam](https://github.com/marckhouzam))", + "author": "marckhouzam", + "author_url": "https://github.com/marckhouzam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113636", + "pr_number": 113636, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "113697": { + "commit": "a236e4ca6f3860a5acbbfc62bb3fdd88ac7e2757", + "text": "KMS: added validation for duplicate kms config name when auto reload is enabled. If you enabled automatic reload of encryption configuration with API server flag `--encryption-provider-config-automatic-reload`, ensure all the KMS provider names (v1 and v2) in the encryption configuration are unique.", + "markdown": "KMS: added validation for duplicate kms config name when auto reload is enabled. If you enabled automatic reload of encryption configuration with API server flag `--encryption-provider-config-automatic-reload`, ensure all the KMS provider names (v1 and v2) in the encryption configuration are unique. ([#113697](https://github.com/kubernetes/kubernetes/pull/113697), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113697", + "pr_number": 113697, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "duplicate_kind": true + }, + "113699": { + "commit": "f2c89045f45fc9d03ac49ba7e31c92933c739d20", + "text": "'`metav1.LabelSelectors` specified in API objects are now validated to ensure\nthey do not contain invalid label values that will error at time of use. Existing\ninvalid objects can be updated, but new objects are required to contain valid\nlabel selectors.'\n", + "markdown": "'`metav1.LabelSelectors` specified in API objects are now validated to ensure\n they do not contain invalid label values that will error at time of use. Existing\n invalid objects can be updated, but new objects are required to contain valid\n label selectors.'\n ([#113699](https://github.com/kubernetes/kubernetes/pull/113699), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113699", + "pr_number": 113699, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "network", + "storage", + "api-machinery", + "auth", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "113710": { + "commit": "e2b9fd760ddb3ab3215e71739b6845629ab533c0", + "text": "CLI flag `pod-eviction-timeout` is deprecated and will be removed together with `enable-taint-manager` in `v1.27`.", + "markdown": "CLI flag `pod-eviction-timeout` is deprecated and will be removed together with `enable-taint-manager` in `v1.27`. ([#113710](https://github.com/kubernetes/kubernetes/pull/113710), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113710", + "pr_number": 113710, + "kinds": [ + "feature", + "deprecation" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113711": { + "commit": "429f1527a7ac94e5280cb41931e74ac52d7a3fb1", + "text": "apiserver: used the correct error when logging errors updating managedFields.", + "markdown": "Apiserver: used the correct error when logging errors updating managedFields. ([#113711](https://github.com/kubernetes/kubernetes/pull/113711), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113711", + "pr_number": 113711, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "113719": { + "commit": "e21438fca5f5e6988091bf0b39be51fcc19cfd8b", + "text": "bumped `runc` to `v1.1.4`.", + "markdown": "Bumped `runc` to `v1.1.4`. ([#113719](https://github.com/kubernetes/kubernetes/pull/113719), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113719", + "pr_number": 113719, + "areas": [ + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "113735": { + "commit": "72a25b17726b3059982dcc740fb8d05ec0c24f95", + "text": "Renamed the feature gate for CEL in Admission Control to `ValidatingAdmissionPolicy`.", + "markdown": "Renamed the feature gate for CEL in Admission Control to `ValidatingAdmissionPolicy`. ([#113735](https://github.com/kubernetes/kubernetes/pull/113735), [@cici37](https://github.com/cici37))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3488-cel-admission-control", + "type": "KEP" + } + ], + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113735", + "pr_number": 113735, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "113749": { + "commit": "c61c3fc492424bfcfabf132650c2bc4404ef2727", + "text": "NOTE", + "markdown": "NOTE ([#113749](https://github.com/kubernetes/kubernetes/pull/113749), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113749", + "pr_number": 113749, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "113754": { + "commit": "e9ef6ee8b363b4e9b2d2d852ecc436d9bfdbd189", + "text": "'`kubelet_kubelet_credential_provider_plugin_duration` was renamed to `kubelet_credential_provider_plugin_duration`\nand `kubelet_kubelet_credential_provider_plugin_errors` was renamed to `kubelet_credential_provider_plugin_errors`.'\n", + "markdown": "'`kubelet_kubelet_credential_provider_plugin_duration` was renamed to `kubelet_credential_provider_plugin_duration`\n and `kubelet_kubelet_credential_provider_plugin_errors` was renamed to `kubelet_credential_provider_plugin_errors`.'\n ([#113754](https://github.com/kubernetes/kubernetes/pull/113754), [@logicalhan](https://github.com/logicalhan))", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113754", + "pr_number": 113754, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "instrumentation" + ], + "duplicate": true + }, + "113769": { + "commit": "37e73b419e455db34f5fe3e8d815418680ab23df", + "text": "Updated `cAdvisor` to `v0.46.0`.", + "markdown": "Updated `cAdvisor` to `v0.46.0`. ([#113769](https://github.com/kubernetes/kubernetes/pull/113769), [@bobbypage](https://github.com/bobbypage))", + "author": "bobbypage", + "author_url": "https://github.com/bobbypage", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113769", + "pr_number": 113769, + "areas": [ + "kubectl", + "cloudprovider", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "cli", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "113819": { + "commit": "763f68ef77ec0745d0f0772f381bc7af6001121a", + "text": "Promoted `kubectl alpha events` to `kubectl events`.", + "markdown": "Promoted `kubectl alpha events` to `kubectl events`. ([#113819](https://github.com/kubernetes/kubernetes/pull/113819), [@soltysh](https://github.com/soltysh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1440", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113819", + "pr_number": 113819, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113856": { + "commit": "af7cc0a60fa01138d56d9f46eee5cd06d01d20f1", + "text": "Known issue: Job field `.spec.podFailurePolicy.rules[*].onExitCode` might be ignored if the Pod is deleted before it terminates.", + "markdown": "Known issue: Job field `.spec.podFailurePolicy.rules[*].onExitCode` might be ignored if the Pod is deleted before it terminates. ([#113856](https://github.com/kubernetes/kubernetes/pull/113856), [@alculquicondor](https://github.com/alculquicondor))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/e3f3faeb899e5739db4bbbd60a56715f6a4e8b45/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113856", + "pr_number": 113856, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "67782": { + "commit": "07bca2d7919c192435949c53f81acff58d6f39eb", + "text": "The in-tree cloud provider for OpenStack (and the cinder volume provider) has been removed. Please use the external cloud provider and csi driver from [cloud-provider-openstack](https://github.com/kubernetes/cloud-provider-openstack) instead.", + "markdown": "The in-tree cloud provider for OpenStack (and the cinder volume provider) has been removed. Please use the external cloud provider and csi driver from [cloud-provider-openstack](https://github.com/kubernetes/cloud-provider-openstack) instead. ([#67782](https://github.com/kubernetes/kubernetes/pull/67782), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/67782", + "pr_number": 67782, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "provider/openstack", + "release-eng", + "kubeadm", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "release", + "cloud-provider" + ], + "duplicate": true + }, + "86139": { + "commit": "ad26b315f230ab0b1ce0ed3afed3f9569bff8457", + "text": "'Container `preStop` and `postStart` lifecycle handlers using `httpGet` now\nhonor the specified `scheme` and `headers` fields. This enables setting custom\nheaders and changing the scheme to `HTTPS`, consistent with container\nstartup/readiness/liveness probe capabilities. Lifecycle handlers configured\nwith `scheme: HTTPS` that encounter errors indicating the endpoint is actually\nusing HTTP fall back to making the request over HTTP for compatibility with\nprevious releases. When this happens, a `LifecycleHTTPFallback` event is recorded\nin the namespace of the pod and a `kubelet_lifecycle_handler_http_fallbacks_total`\nmetric in the kubelet is incremented. Cluster administrators can opt out of the\nexpanded lifecycle handler capabilities by setting\n`--feature-gates=ConsistentHTTPGetHandlers=false` in `kubelet`.'\n", + "markdown": "'Container `preStop` and `postStart` lifecycle handlers using `httpGet` now\n honor the specified `scheme` and `headers` fields. This enables setting custom\n headers and changing the scheme to `HTTPS`, consistent with container\n startup/readiness/liveness probe capabilities. Lifecycle handlers configured\n with `scheme: HTTPS` that encounter errors indicating the endpoint is actually\n using HTTP fall back to making the request over HTTP for compatibility with\n previous releases. When this happens, a `LifecycleHTTPFallback` event is recorded\n in the namespace of the pod and a `kubelet_lifecycle_handler_http_fallbacks_total`\n metric in the kubelet is incremented. Cluster administrators can opt out of the\n expanded lifecycle handler capabilities by setting\n `--feature-gates=ConsistentHTTPGetHandlers=false` in `kubelet`.'\n ([#86139](https://github.com/kubernetes/kubernetes/pull/86139), [@jasimmons](https://github.com/jasimmons))", + "author": "jasimmons", + "author_url": "https://github.com/jasimmons", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/86139", + "pr_number": 86139, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "conformance", + "ipvs", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "network", + "scheduling", + "storage", + "node", + "api-machinery", + "autoscaling", + "contributor-experience", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "release", + "architecture" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true + } } \ No newline at end of file diff --git a/releases/release-1.26/release-notes/release-notes-draft.md b/releases/release-1.26/release-notes/release-notes-draft.md index 1342c9e69a0..c70774e79e0 100644 --- a/releases/release-1.26/release-notes/release-notes-draft.md +++ b/releases/release-1.26/release-notes/release-notes-draft.md @@ -1,372 +1,372 @@ -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- Deprecated beta APIs scheduled for removal in `v1.26` are no longer served. See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-26 for more information. ([#111973](https://github.com/kubernetes/kubernetes/pull/111973), [@liggitt](https://github.com/liggitt)) - -## Changes by Kind - -### Deprecation - -- CLI flag `pod-eviction-timeout` is deprecated and will be removed together with `enable-taint-manager` in `v1.27`. ([#113710](https://github.com/kubernetes/kubernetes/pull/113710), [@kerthcet](https://github.com/kerthcet)) -- Kube-apiserver: the unused `--master-service-namespace` flag was deprecated and will be removed in v1.27. ([#112797](https://github.com/kubernetes/kubernetes/pull/112797), [@SataQiu](https://github.com/SataQiu)) -- The `gcp` and `azure` auth plugins have been removed from `client-go` and `kubectl`. See [kubelogin](https://github.com/Azure/kubelogin) and [Kubectl Auth Changes in GKE](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) for details about the cloud-specific replacements. ([#112341](https://github.com/kubernetes/kubernetes/pull/112341), [@enj](https://github.com/enj)) - -### API Change - -- 'A new `preEnqueue` extension point was added to scheduler's component config - `v1beta2/v1beta3/v1`.' - ([#113275](https://github.com/kubernetes/kubernetes/pull/113275), [@Huang-Wei](https://github.com/Huang-Wei)) -- 'Added a `ResourceClaim` API (in the `resource.k8s.io/v1alpha1` API group and - behind the `DynamicResourceAllocation` feature gate). - The new API is now more flexible than the existing Device Plugins feature of Kubernetes because it - allows Pods to request (claim) special kinds of resources, which can be available at node level, cluster - level, or following any other model you implement.' ([#111023](https://github.com/kubernetes/kubernetes/pull/111023), [@pohly](https://github.com/pohly)) -- 'Container `preStop` and `postStart` lifecycle handlers using `httpGet` now - honor the specified `scheme` and `headers` fields. This enables setting custom - headers and changing the scheme to `HTTPS`, consistent with container - startup/readiness/liveness probe capabilities. Lifecycle handlers configured - with `scheme: HTTPS` that encounter errors indicating the endpoint is actually - using HTTP fall back to making the request over HTTP for compatibility with - previous releases. When this happens, a `LifecycleHTTPFallback` event is recorded - in the namespace of the pod and a `kubelet_lifecycle_handler_http_fallbacks_total` - metric in the kubelet is incremented. Cluster administrators can opt out of the - expanded lifecycle handler capabilities by setting - `--feature-gates=ConsistentHTTPGetHandlers=false` in `kubelet`.' - ([#86139](https://github.com/kubernetes/kubernetes/pull/86139), [@jasimmons](https://github.com/jasimmons)) -- 'Graduated `JobTrackingWithFinalizers` to stable. - Jobs created before the feature was enabled are still tracked without finalizers. - Jobs tracked with finalizers have the annotation batch.kubernetes.io/job-tracking. - If the annotation is present and the user attempts to remove it, the control plane adds it back. - The annotation `batch.kubernetes.io/job-tracking` is now deprecated. - The control plane will ignore it and stop adding it for new Jobs in v1.27.' ([#113510](https://github.com/kubernetes/kubernetes/pull/113510), [@alculquicondor](https://github.com/alculquicondor)) -- 'Priority and Fairness has introduced a new feature called _borrowing_ that allows an API priority level - to borrow a number of seats from other priority level(s). As a cluster operator, you can enable borrowing - for a certain priority level configuration object via the two newly introduced fields `lendablePercent`, and - `borrowingLimitPercent` located under the `.spec.limited` field of the designated priority level. - This change added the following metrics: - - `apiserver_flowcontrol_nominal_limit_seats`: Nominal number of execution seats configured for each priority level - - `apiserver_flowcontrol_lower_limit_seats`: Configured lower bound on number of execution seats available to each priority level - - `apiserver_flowcontrol_upper_limit_seats`: Configured upper bound on number of execution seats available to each priority level - - `apiserver_flowcontrol_demand_seats`: Observations, at the end of every nanosecond, of (the number of seats each priority level could use) / (nominal number of seats for that level) - - `apiserver_flowcontrol_demand_seats_high_watermark`: High watermark, over last adjustment period, of demand_seats - - `apiserver_flowcontrol_demand_seats_average`: Time-weighted average, over last adjustment period, of demand_seats - - `apiserver_flowcontrol_demand_seats_stdev`: Time-weighted standard deviation, over last adjustment period, of demand_seats - - `apiserver_flowcontrol_demand_seats_smoothed`: Smoothed seat demands - - `apiserver_flowcontrol_target_seats`: Seat allocation targets - - `apiserver_flowcontrol_seat_fair_frac`: Fair fraction of server's concurrency to allocate to each priority level that can use it - - `apiserver_flowcontrol_current_limit_seats`: current derived number of execution seats available to each priority level - The possibility of borrowing means that the old metric `apiserver_flowcontrol_request_concurrency_limit` can no longer mean both the configured concurrency limit and the enforced concurrency limit. Henceforth it means the configured concurrency limit.' ([#113485](https://github.com/kubernetes/kubernetes/pull/113485), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) -- '`NodeInclusionPolicy` in `podTopologySpread` plugin is now enabled by default.' - ([#113500](https://github.com/kubernetes/kubernetes/pull/113500), [@kerthcet](https://github.com/kerthcet)) -- '`PodDisruptionBudget` now adds an alpha `spec.unhealthyPodEvictionPolicy` field. - When the `PDBUnhealthyPodEvictionPolicy` feature-gate is enabled in `kube-apiserver`, - setting this field to `"AlwaysAllow"` allows pods to be evicted if they do not - have a ready condition, regardless of whether the PodDisruptionBudget is currently - healthy.' - ([#113375](https://github.com/kubernetes/kubernetes/pull/113375), [@atiratree](https://github.com/atiratree)) -- '`metav1.LabelSelectors` specified in API objects are now validated to ensure - they do not contain invalid label values that will error at time of use. Existing - invalid objects can be updated, but new objects are required to contain valid - label selectors.' - ([#113699](https://github.com/kubernetes/kubernetes/pull/113699), [@liggitt](https://github.com/liggitt)) -- 'kubelet: Added the following Pod failure conditions: - - `DisruptionTarget` (graceful node shutdown, node pressure eviction)' ([#112360](https://github.com/kubernetes/kubernetes/pull/112360), [@mimowo](https://github.com/mimowo)) -- Add `percentageOfNodesToScore` as a scheduler profile level parameter to API version `v1`. When a profile `percentageOfNodesToScore` is set, it will override global `percentageOfNodesToScore`. ([#112521](https://github.com/kubernetes/kubernetes/pull/112521), [@yuanchen8911](https://github.com/yuanchen8911)) -- Add auth API to get self subject attributes (new selfsubjectreviews API is added). - The corresponding command for kubctl is provided - `kubectl auth whoami`. ([#111333](https://github.com/kubernetes/kubernetes/pull/111333), [@nabokihms](https://github.com/nabokihms)) [SIG API Machinery, Auth, CLI and Testing] -- Added `kubernetes_feature_enabled` metric series to track whether each active feature gate is enabled. ([#112690](https://github.com/kubernetes/kubernetes/pull/112690), [@logicalhan](https://github.com/logicalhan)) -- Added a `--topology-manager-policy-options` flag to the kubelet to support fine tuning the topology manager policies. The first policy option, `prefer-closest-numa-nodes`, allows these policies to favor sets of NUMA nodes with shorter distance between nodes when making admission decisions. ([#112914](https://github.com/kubernetes/kubernetes/pull/112914), [@PiotrProkop](https://github.com/PiotrProkop)) -- Added a `kube-proxy` flag (`--iptables-localhost-nodeports`, default true) to allow disabling `NodePort` services on loopback addresses. Note: this only applies to iptables mode and ipv4. ([#108250](https://github.com/kubernetes/kubernetes/pull/108250), [@cyclinder](https://github.com/cyclinder)) -- Added a feature that allows a `StatefulSet` to start numbering replicas from an arbitrary non-negative ordinal, using the `.spec.ordinals.start` field. ([#112744](https://github.com/kubernetes/kubernetes/pull/112744), [@pwschuurman](https://github.com/pwschuurman)) -- Added a new namespace alpha field to `DataSourceRef` field in `PersistentVolumeClaim` API. ([#113186](https://github.com/kubernetes/kubernetes/pull/113186), [@ttakahashi21](https://github.com/ttakahashi21)) -- Aggregated discovery will be alpha and can be toggled with the `AggregatedDiscoveryEndpoint` feature flag. ([#113171](https://github.com/kubernetes/kubernetes/pull/113171), [@Jefftree](https://github.com/Jefftree)) -- Clarified the CFS quota as 100ms in the code comments and set the minimum `cpuCFSQuotaPeriod` to 1ms to match Linux kernel expectations. ([#112123](https://github.com/kubernetes/kubernetes/pull/112123), [@paskal](https://github.com/paskal)) -- Component-base: make the validation logic about LeaderElectionConfiguration consistent between component-base and client-go ([#111758](https://github.com/kubernetes/kubernetes/pull/111758), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery and Scheduling] -- Deprecated the `apiserver_request_slo_duration_seconds` metric for v1.27 in favor of `apiserver_request_sli_duration_seconds` for naming consistency purposes with other SLI-specific metrics and to avoid any confusion between SLOs and SLIs. ([#112679](https://github.com/kubernetes/kubernetes/pull/112679), [@dgrisonnet](https://github.com/dgrisonnet)) -- Enabled `kube-controller-manager` to support '--concurrent-horizontal-pod-autoscaler-syncs' flag to set the number of horizontal pod autoscaler controller workers. ([#108501](https://github.com/kubernetes/kubernetes/pull/108501), [@zroubalik](https://github.com/zroubalik)) -- Enabled the "Retriable and non-retriable pod failures for jobs" feature into beta. ([#113360](https://github.com/kubernetes/kubernetes/pull/113360), [@mimowo](https://github.com/mimowo)) -- Fixed spurious `field is immutable` errors validating updates to Event API objects via the `events.k8s.io/v1` API. ([#112183](https://github.com/kubernetes/kubernetes/pull/112183), [@liggitt](https://github.com/liggitt)) -- Graduated `ServiceInternalTrafficPolicy` feature to GA. ([#113496](https://github.com/kubernetes/kubernetes/pull/113496), [@avoltz](https://github.com/avoltz)) -- In `kube-proxy`: The "userspace" proxy mode (deprecated for over a year) is no - longer supported on either Linux or Windows. Users should use "iptables" or "ipvs" - on Linux, or "kernelspace" on Windows. - ([#112133](https://github.com/kubernetes/kubernetes/pull/112133), [@knabben](https://github.com/knabben)) -- Introduce `v1beta3` for Priority and Fairness with the following changes to the API spec: - - rename 'assuredConcurrencyShares' (located under `spec.limited') to 'nominalConcurrencyShares'. - - apply strategic merge patch annotations to 'Conditions' of flowschemas and `prioritylevelconfigurations`. ([#112306](https://github.com/kubernetes/kubernetes/pull/112306), [@tkashem](https://github.com/tkashem)) -- Introduced `v1alpha1` API for validating admission policies, enabling extensible admission control via CEL expressions (KEP 3488: CEL for Admission Control). To use, enable the `ValidatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` API via `--runtime-config`. ([#113314](https://github.com/kubernetes/kubernetes/pull/113314), [@cici37](https://github.com/cici37)) -- KMS: added validation for duplicate kms config name when auto reload is enabled. If you enabled automatic reload of encryption configuration with API server flag `--encryption-provider-config-automatic-reload`, ensure all the KMS provider names (v1 and v2) in the encryption configuration are unique. ([#113697](https://github.com/kubernetes/kubernetes/pull/113697), [@aramase](https://github.com/aramase)) -- Kubelet external Credential Provider feature is moved to GA. Credential Provider Plugin and Credential Provider Config APIs updated from `v1beta1` to `v1` with no API changes. ([#111616](https://github.com/kubernetes/kubernetes/pull/111616), [@ndixita](https://github.com/ndixita)) -- Legacy klog flags are no longer available. Only `-v` and `-vmodule` are still supported. ([#112120](https://github.com/kubernetes/kubernetes/pull/112120), [@pohly](https://github.com/pohly)) [SIG Architecture, CLI, Instrumentation, Node and Testing] -- Moved `MixedProtocolLBService` from beta to GA. ([#112895](https://github.com/kubernetes/kubernetes/pull/112895), [@janosi](https://github.com/janosi)) -- New Pod API field `.spec.schedulingGates` was introduced to enable users to control when to mark a Pod as scheduling ready. ([#113274](https://github.com/kubernetes/kubernetes/pull/113274), [@Huang-Wei](https://github.com/Huang-Wei)) -- 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)) -- Removed feature gates `ServiceLoadBalancerClass` and `ServiceLBNodePortControl`. These feature gates were enabled (and locked) since `v1.24`. ([#112577](https://github.com/kubernetes/kubernetes/pull/112577), [@andrewsykim](https://github.com/andrewsykim)) -- Reverted regression that prevented `client-go` latency metrics to be reported with a template URL to avoid label cardinality. ([#111752](https://github.com/kubernetes/kubernetes/pull/111752), [@aanm](https://github.com/aanm)) -- The `EndpointSliceTerminatingCondition` feature gate was graduated to GA. The gate is now locked and will be removed in v1.28. ([#113351](https://github.com/kubernetes/kubernetes/pull/113351), [@andrewsykim](https://github.com/andrewsykim)) -- [kubelet] Change default `cpuCFSQuotaPeriod` value with enabled `cpuCFSQuotaPeriod` flag from 100ms to 100µs to match the Linux CFS and k8s defaults. `cpuCFSQuotaPeriod` of 100ms now requires `customCPUCFSQuotaPeriod` flag to be set to work. ([#111520](https://github.com/kubernetes/kubernetes/pull/111520), [@paskal](https://github.com/paskal)) [SIG API Machinery and Node] -- `DynamicKubeletConfig` feature gate has been removed from the API server. - Dynamic kubelet reconfiguration now can't be used even when older nodes are still - attempting to rely on it. This is aligned with the Kubernetes version skew policy. - ([#112643](https://github.com/kubernetes/kubernetes/pull/112643), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) -- `kubectl wait` command with `jsonpath` flag will wait for target path until timeout. - ([#109525](https://github.com/kubernetes/kubernetes/pull/109525), [@jonyhy96](https://github.com/jonyhy96)) - -### Feature - -- 'Added selector validation to `HorizontalPodAutoscaler`: when multiple HPAs - select the same set of Pods, scaling now will be disabled for those HPAs with - the reason `AmbiguousSelector`. This change also covers a case when multiple HPAs - point to the same deployment.' - ([#112011](https://github.com/kubernetes/kubernetes/pull/112011), [@pbeschetnov](https://github.com/pbeschetnov)) -- 'Pod Security admission: the pod-security `warn` level will now default to - the `enforce` level.' - ([#113491](https://github.com/kubernetes/kubernetes/pull/113491), [@tallclair](https://github.com/tallclair)) -- 'Promoted the `APIServerIdentity` feature to Beta. By default, each `kube-apiserver` - will now create a Lease in the `kube-system` namespace. These lease objects can - be used to identify the number of active API servers in the cluster, and may also - be used for future features such as the Storage Version API.' - ([#113629](https://github.com/kubernetes/kubernetes/pull/113629), [@andrewsykim](https://github.com/andrewsykim)) -- 'The iptables kube-proxy backend now process service/endpoint changes - more efficiently in very large clusters.' ([#110268](https://github.com/kubernetes/kubernetes/pull/110268), [@danwinship](https://github.com/danwinship)) -- '`CSIMigrationvSphere` was upgraded to GA and locked to true. Do not upgrade to K8s - 1.26 if you need Windows, or XFS, or raw block support until vSphere CSI Driver - adds support for them in a version post v2.7.x.' - ([#113336](https://github.com/kubernetes/kubernetes/pull/113336), [@divyenpatel](https://github.com/divyenpatel)) -- '`DelegateFSGroupToCSIDriver` feature is GA.' - ([#113225](https://github.com/kubernetes/kubernetes/pull/113225), [@bertinatto](https://github.com/bertinatto)) -- '`NodeOutOfServiceVolumeDetach` is now beta.' - ([#113511](https://github.com/kubernetes/kubernetes/pull/113511), [@xing-yang](https://github.com/xing-yang)) -- '`RetroactiveDefaultStorageClass` feature is now beta.' - ([#113329](https://github.com/kubernetes/kubernetes/pull/113329), [@RomanBednar](https://github.com/RomanBednar)) -- '`registered_metric_total` will now report the number of metrics broken down by - stability level and deprecated version.' - ([#112907](https://github.com/kubernetes/kubernetes/pull/112907), [@logicalhan](https://github.com/logicalhan)) -- A new `DisableCompression` field (default = `false`) has been added to kubeconfig under cluster info. When set to `true`, clients using the kubeconfig opt out of response compression for all requests to the apiserver. This can help improve list call latencies significantly when client-server network bandwidth is ample (>30MB/s) or if the server is CPU-constrained. ([#112309](https://github.com/kubernetes/kubernetes/pull/112309), [@shyamjvs](https://github.com/shyamjvs)) -- A new `pod_status_sync_duration_seconds` histogram is reported at alpha metrics stability that estimates how long the Kubelet takes to write a pod status change once it is detected. ([#107896](https://github.com/kubernetes/kubernetes/pull/107896), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps, Architecture, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling, Storage and Testing] -- API Server Tracing now includes a variety of new spans and span events. ([#113172](https://github.com/kubernetes/kubernetes/pull/113172), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Architecture, Auth, Instrumentation, Network, Node and Scheduling] -- API Server tracing now includes the latency of authorization, priorityandfairness, impersonation, audit, and authentication filters. ([#113217](https://github.com/kubernetes/kubernetes/pull/113217), [@dashpole](https://github.com/dashpole)) -- API Server tracing root span name for opentelemetry is changed from `KubernetesAPI` to `HTTP GET`. ([#112545](https://github.com/kubernetes/kubernetes/pull/112545), [@dims](https://github.com/dims)) -- Added `--disable-compression` flag to `kubectl` (default = false). When true, it opts out of response compression for all requests to the `apiserver`. This can help improve list call latencies significantly when client-server network bandwidth is ample (>30MB/s) or if the server is CPU-constrained. ([#112580](https://github.com/kubernetes/kubernetes/pull/112580), [@shyamjvs](https://github.com/shyamjvs)) -- Added a method `StreamWithContext` to `remotecommand.Executor` to support cancelable SPDY executor stream. ([#103177](https://github.com/kubernetes/kubernetes/pull/103177), [@arkbriar](https://github.com/arkbriar)) -- Added a new feature gate `CelValidatingAdmissionExtensibility` to enable expression validation for Admission Control. ([#112792](https://github.com/kubernetes/kubernetes/pull/112792), [@cici37](https://github.com/cici37)) [SIG API Machinery] -- Added alpha support for `WindowsHostNetworking` feature. ([#112961](https://github.com/kubernetes/kubernetes/pull/112961), [@marosset](https://github.com/marosset)) -- Added alpha support for returning container and pod metrics from CRI, instead of cAdvsior. ([#113609](https://github.com/kubernetes/kubernetes/pull/113609), [@haircommander](https://github.com/haircommander)) -- Added categories column to the `kubectl api-resources` command's wide output (`-o wide`). - Added `--categories` flag to the `kubectl api-resources` command, which can be used to filter the output to show only resources belonging to one or more categories. ([#111096](https://github.com/kubernetes/kubernetes/pull/111096), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] -- Added kubelet metrics to track the cpumanager cpu allocation and pinning. ([#112855](https://github.com/kubernetes/kubernetes/pull/112855), [@ffromani](https://github.com/ffromani)) -- Added new Golang runtime-related metrics to Kubernetes components: - - go_gc_cycles_automatic_gc_cycles_total - - go_gc_cycles_forced_gc_cycles_total - - go_gc_cycles_total_gc_cycles_total - - go_gc_heap_allocs_by_size_bytes - - go_gc_heap_allocs_bytes_total - - go_gc_heap_allocs_objects_total - - go_gc_heap_frees_by_size_bytes - - go_gc_heap_frees_bytes_total - - go_gc_heap_frees_objects_total - - go_gc_heap_goal_bytes - - go_gc_heap_objects_objects - - go_gc_heap_tiny_allocs_objects_total - - go_gc_pauses_seconds - - go_memory_classes_heap_free_bytes - - go_memory_classes_heap_objects_bytes - - go_memory_classes_heap_released_bytes - - go_memory_classes_heap_stacks_bytes - - go_memory_classes_heap_unused_bytes - - go_memory_classes_metadata_mcache_free_bytes - - go_memory_classes_metadata_mcache_inuse_bytes - - go_memory_classes_metadata_mspan_free_bytes - - go_memory_classes_metadata_mspan_inuse_bytes - - go_memory_classes_metadata_other_bytes - - go_memory_classes_os_stacks_bytes - - go_memory_classes_other_bytes - - go_memory_classes_profiling_buckets_bytes - - go_memory_classes_total_bytes - - go_sched_goroutines_goroutines - - go_sched_latencies_seconds ([#111910](https://github.com/kubernetes/kubernetes/pull/111910), [@tosi3k](https://github.com/tosi3k)) -- Added new metric `job_controller_terminated_pods_tracking_finalizer` which can be used to monitor whether the job controller is removing Pod finalizers from terminated Pods after accounting them in Job status. ([#113176](https://github.com/kubernetes/kubernetes/pull/113176), [@alculquicondor](https://github.com/alculquicondor)) -- Added publishing events when enabling/disabling `TopologyAwareHints`. ([#113544](https://github.com/kubernetes/kubernetes/pull/113544), [@LiorLieberman](https://github.com/LiorLieberman)) -- Added reconstruction of SELinux mount context after kubelet restart. Feature `SELinuxMountReadWriteOncePod` is now fully implemented and kubelet does not lose its cache of SELinux contexts after kubelet process restart. ([#113596](https://github.com/kubernetes/kubernetes/pull/113596), [@jsafrane](https://github.com/jsafrane)) -- Added support for Evented PLEG feature gate. ([#111384](https://github.com/kubernetes/kubernetes/pull/111384), [@harche](https://github.com/harche)) -- Added the metric `pod_start_sli_duration_seconds` to kubelet. ([#111930](https://github.com/kubernetes/kubernetes/pull/111930), [@azylinski](https://github.com/azylinski)) -- Added validation for the `--container-runtime-endpoint` flag of kubelet to be non-empty. ([#112542](https://github.com/kubernetes/kubernetes/pull/112542), [@astraw99](https://github.com/astraw99)) -- Adds alpha --output plaintext protected by environment variable `KUBECTL_EXPLAIN_OPENAPIV3` ([#113146](https://github.com/kubernetes/kubernetes/pull/113146), [@alexzielenski](https://github.com/alexzielenski)) [SIG CLI] -- Adds metrics `force_delete_pods_total` and `force_delete_pod_errors_total` in the Pod GC Controller. ([#113519](https://github.com/kubernetes/kubernetes/pull/113519), [@xing-yang](https://github.com/xing-yang)) [SIG Apps] -- Azure File CSI migration is now GA. ([#113160](https://github.com/kubernetes/kubernetes/pull/113160), [@andyzhangx](https://github.com/andyzhangx)) -- Changed `preemption_victims` metric bucket from `LinearBuckets` to `ExponentialBuckets`. ([#112939](https://github.com/kubernetes/kubernetes/pull/112939), [@lengrongfu](https://github.com/lengrongfu)) -- Exposed health check SLI metrics on `metrics/slis` for apiserver. ([#112741](https://github.com/kubernetes/kubernetes/pull/112741), [@logicalhan](https://github.com/logicalhan)) -- Extend the job `job_finished_total metric by new `reason` label and introduce a new job metric to count pod failures - handled by pod failure policy with respect to the action applied. ([#113324](https://github.com/kubernetes/kubernetes/pull/113324), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing] -- Graduate `ServiceIPStaticSubrange` feature to GA. ([#112163](https://github.com/kubernetes/kubernetes/pull/112163), [@aojea](https://github.com/aojea)) -- Graduated Kubelet CPU Manager to GA. ([#113018](https://github.com/kubernetes/kubernetes/pull/113018), [@ffromani](https://github.com/ffromani)) -- Graduated Kubelet Device Manager to GA. ([#112980](https://github.com/kubernetes/kubernetes/pull/112980), [@swatisehgal](https://github.com/swatisehgal)) -- If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on kubelet, allowing you to scrape health check metrics. ([#113030](https://github.com/kubernetes/kubernetes/pull/113030), [@Richabanker](https://github.com/Richabanker)) [SIG Node] -- If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` now becomes available on cloud-controller-manager allowing you to scrape health check metrics. ([#113340](https://github.com/kubernetes/kubernetes/pull/113340), [@Richabanker](https://github.com/Richabanker)) -- If more than one StorageClass is designated as default (via the "storageclass.kubernetes.io/is-default-class" annotation), choose the newest one instead of throwing an error.' ([#110559](https://github.com/kubernetes/kubernetes/pull/110559), [@danishprakash](https://github.com/danishprakash)) -- In 'client-go` `SharedInformerFactory` will now support waiting for goroutines during shutdown. - ([#112200](https://github.com/kubernetes/kubernetes/pull/112200), [@pohly](https://github.com/pohly)) -- In `kubeadm`, command `kubeadm join phase control-plane-prepare certs` now supports to run with `dry-run` mode on it's own. ([#113005](https://github.com/kubernetes/kubernetes/pull/113005), [@chendave](https://github.com/chendave)) -- Kube-apiserver: `gzip` compression switched from level 4 to level 1 to improve large list call latencies in exchange for higher network bandwidth usage (10-50% higher). This increases the headroom before very large unpaged list calls exceed request timeout limits. ([#112299](https://github.com/kubernetes/kubernetes/pull/112299), [@shyamjvs](https://github.com/shyamjvs)) -- Kubeadm: added `show-join-command` as a new separate phase at the end of `kubeadm init`. You can skip printing the join information by using `kubeadm init --skip-phases=show-join-command`. Executing only this phase on demand will throw an error because the phase needs dependencies such as bootstrap tokens to be pre-populated. ([#111512](https://github.com/kubernetes/kubernetes/pull/111512), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: added the "--cleanup-tmp-dir" flag for `kubeadm reset`. It will cleanup the contents of `/etc/kubernetes/tmp`. The flag is off by default. ([#112172](https://github.com/kubernetes/kubernetes/pull/112172), [@chendave](https://github.com/chendave)) -- Kubeadm: now supports image repository format validation. ([#112732](https://github.com/kubernetes/kubernetes/pull/112732), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: sub-phases are now able to support the dry-run mode, e.g. kubeadm reset phase cleanup-node --dry-run ([#112945](https://github.com/kubernetes/kubernetes/pull/112945), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle] -- Kubeadm: tried to load CA cert from external CertificateAuthority file when CertificateAuthorityData is empty for existing kubeconfig. ([#111783](https://github.com/kubernetes/kubernetes/pull/111783), [@SataQiu](https://github.com/SataQiu)) -- Kubectl shell completions for the bash shell now include descriptions. ([#113636](https://github.com/kubernetes/kubernetes/pull/113636), [@marckhouzam](https://github.com/marckhouzam)) -- Kubernetes is now built with Go 1.19.1 ([#112287](https://github.com/kubernetes/kubernetes/pull/112287), [@palnabarun](https://github.com/palnabarun)) [SIG Release and Testing] -- Kubernetes is now built with Go 1.19.2 ([#112900](https://github.com/kubernetes/kubernetes/pull/112900), [@xmudrii](https://github.com/xmudrii)) [SIG Release and Testing] -- Kubernetes is now built with Go `1.19.3`. ([#113550](https://github.com/kubernetes/kubernetes/pull/113550), [@xmudrii](https://github.com/xmudrii)) -- Logs of requests that were timed out by a timeout handler no longer contain a `statusStack` and `logging error output` fields. ([#112374](https://github.com/kubernetes/kubernetes/pull/112374), [@Argh4k](https://github.com/Argh4k)) -- Metrics for `RetroactiveDefaultStorageClass` feature are now available. To see an attempt count for updating PVC retroactively with a default StorageClass see `retroactive_storageclass_total` metric and for total numer of errors see `retroactive_storageclass_errors_total`. ([#113323](https://github.com/kubernetes/kubernetes/pull/113323), [@RomanBednar](https://github.com/RomanBednar)) -- Promoted `kubectl alpha events` to `kubectl events`. ([#113819](https://github.com/kubernetes/kubernetes/pull/113819), [@soltysh](https://github.com/soltysh)) -- Promoting `WindowsHostProcessContainers` to stable. ([#113476](https://github.com/kubernetes/kubernetes/pull/113476), [@marosset](https://github.com/marosset)) -- Scheduler now retries updating a pod's status on `ServiceUnavailable` and `InternalError` errors, in addition to `net.ConnectionRefused` error. ([#111809](https://github.com/kubernetes/kubernetes/pull/111809), [@Huang-Wei](https://github.com/Huang-Wei)) -- Shell completion now shows plugin names when appropriate. Furthermore, shell completion will work for plugins that provide such support. ([#105867](https://github.com/kubernetes/kubernetes/pull/105867), [@marckhouzam](https://github.com/marckhouzam)) -- Switched kubectl to use `github.com/russross/blackfriday/v2` ([#112731](https://github.com/kubernetes/kubernetes/pull/112731), [@pacoxu](https://github.com/pacoxu)) -- The ExpandedDNSConfig feature has graduated to beta and is enabled by default. Note that this feature requires container runtime support. ([#112824](https://github.com/kubernetes/kubernetes/pull/112824), [@gjkim42](https://github.com/gjkim42)) [SIG Network and Testing] -- The `LegacyServiceAccountTokenNoAutoGeneration` feature gate was promoted to GA. ([#112838](https://github.com/kubernetes/kubernetes/pull/112838), [@zshihang](https://github.com/zshihang)) -- The `ProxyTerminatingEndpoints` feature is now Beta and enabled by default. When enabled, kube-proxy will attempt to route traffic to terminating pods when the traffic policy is `Local` and there are only terminating pods remaining on a node. ([#113363](https://github.com/kubernetes/kubernetes/pull/113363), [@andrewsykim](https://github.com/andrewsykim)) -- The `goroutines` metric is newly added in the scheduler. - It replaces `scheduler_goroutines` metric and it counts the number of goroutine in more places than `scheduler_goroutine` does. ([#112003](https://github.com/kubernetes/kubernetes/pull/112003), [@sanposhiho](https://github.com/sanposhiho)) [SIG Instrumentation and Scheduling] -- Updated `cAdvisor` to `v0.46.0`. ([#113769](https://github.com/kubernetes/kubernetes/pull/113769), [@bobbypage](https://github.com/bobbypage)) -- Updated the Lease identity naming format for the `APIServerIdentity` feature to use a persistent name. ([#113307](https://github.com/kubernetes/kubernetes/pull/113307), [@andrewsykim](https://github.com/andrewsykim)) -- When `ComponentSLIs` feature gate is enabled, `/metrics/slis` becomes available on kube-scheduler, allowing you to scrape health check metrics. ([#113026](https://github.com/kubernetes/kubernetes/pull/113026), [@Richabanker](https://github.com/Richabanker)) -- When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on `kube-proxy` allowing you to scrape health check metrics. ([#113057](https://github.com/kubernetes/kubernetes/pull/113057), [@Richabanker](https://github.com/Richabanker)) -- When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on kube-controller-manager, allowing you to scrape health check metrics. ([#112978](https://github.com/kubernetes/kubernetes/pull/112978), [@logicalhan](https://github.com/logicalhan)) -- When the alpha `LegacyServiceAccountTokenTracking` feature gate is enabled, secret-based service account tokens will have a `kubernetes.io/legacy-token-last-used` applied to them containing the date they were last used. ([#108858](https://github.com/kubernetes/kubernetes/pull/108858), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth and Testing] -- `CSRDuration` feature gate that graduated to GA in 1.24 and is unconditionally - enabled now removed in v1.26. - ([#112386](https://github.com/kubernetes/kubernetes/pull/112386), [@Shubham82](https://github.com/Shubham82)) -- `kubectl config view` now automatically redacts any secret fields marked with a `datapolicy` tag. ([#109189](https://github.com/kubernetes/kubernetes/pull/109189), [@mpuckett159](https://github.com/mpuckett159)) - -### Documentation - -- Clarified the default CFS quota period as being 100µs and not 100ms. ([#111554](https://github.com/kubernetes/kubernetes/pull/111554), [@paskal](https://github.com/paskal)) [SIG Node] - -### Bug or Regression - -- '`kubectl apply`: Added a warning that "`kubectl apply` will no longer prune - non-namespaced resources by default when used with the --namespace flag in - a future release".' - ([#110907](https://github.com/kubernetes/kubernetes/pull/110907), [@pacoxu](https://github.com/pacoxu)) -- Added back unused flags on `kubectl run` command, which did not go through the required deprecation period before being removed. ([#112243](https://github.com/kubernetes/kubernetes/pull/112243), [@brianpursley](https://github.com/brianpursley)) -- Added support for RSA and ECDSA format keys in preflight check on `kubeadm`. ([#112508](https://github.com/kubernetes/kubernetes/pull/112508), [@SataQiu](https://github.com/SataQiu)) -- Allowed `Label` section in vSphere e2e cloud provider configuration. ([#112427](https://github.com/kubernetes/kubernetes/pull/112427), [@gnufied](https://github.com/gnufied)) -- Apiserver `/healthz/etcd` endpoint rate limits the number of forwarded health check requests to the etcd backends, answering with the last known state if the rate limit is exceeded. The rate limit is based on 1/2 of the timeout configured, with no burst allowed. ([#112046](https://github.com/kubernetes/kubernetes/pull/112046), [@aojea](https://github.com/aojea)) -- Apiserver: used the correct error when logging errors updating managedFields. ([#113711](https://github.com/kubernetes/kubernetes/pull/113711), [@andrewsykim](https://github.com/andrewsykim)) -- Avoided propagating hosts `search .` into containers in `/etc/resolv.conf`. ([#112157](https://github.com/kubernetes/kubernetes/pull/112157), [@dghubble](https://github.com/dghubble)) -- 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)) -- Bumped `runc` to `v1.1.4`. ([#113719](https://github.com/kubernetes/kubernetes/pull/113719), [@pacoxu](https://github.com/pacoxu)) -- Callers using `DelegatingAuthenticationOptions` can now use `DisableAnonymous` to disable Anonymous authentication. ([#112181](https://github.com/kubernetes/kubernetes/pull/112181), [@xueqzhan](https://github.com/xueqzhan)) -- Changed error message when resource is not supported by given patch type in `kubectl patch`. ([#112556](https://github.com/kubernetes/kubernetes/pull/112556), [@ardaguclu](https://github.com/ardaguclu)) -- Correct the calculating error in `podTopologySpread` plugin to avoid unexpected scheduling results. ([#112507](https://github.com/kubernetes/kubernetes/pull/112507), [@kerthcet](https://github.com/kerthcet)) -- Etcd: Updated to v3.5.5. ([#112489](https://github.com/kubernetes/kubernetes/pull/112489), [@dims](https://github.com/dims)) -- Fixed Admission controllers that caused unnecessary significant load on `apiserver'. ([#112696](https://github.com/kubernetes/kubernetes/pull/112696), [@aimuz](https://github.com/aimuz)) -- Fixed `DaemonSet` to update the status even if it fails to create a pod. ([#112127](https://github.com/kubernetes/kubernetes/pull/112127), [@gjkim42](https://github.com/gjkim42)) -- Fixed a bug where a change in the `appProtocol` for a Service did not trigger a load balancer update. ([#112785](https://github.com/kubernetes/kubernetes/pull/112785), [@MartinForReal](https://github.com/MartinForReal)) [SIG Cloud Provider and Network] -- Fixed a bug where the kubelet choose the wrong container by its name when running `kubectl exec`. ([#113041](https://github.com/kubernetes/kubernetes/pull/113041), [@saschagrunert](https://github.com/saschagrunert)) -- Fixed an ephemeral port exhaustion bug caused by improper connection management that occurred when a large number of objects were handled by `kubectl` while exec auth was in use. ([#112017](https://github.com/kubernetes/kubernetes/pull/112017), [@enj](https://github.com/enj)) -- Fixed an issue in `winkernel` proxier that causes proxy rules to leak anytime service backends are modified. ([#112837](https://github.com/kubernetes/kubernetes/pull/112837), [@daschott](https://github.com/daschott)) -- Fixed bug in `kubectl rollout history` where only the latest revision was displayed when a specific revision was requested and an output format was specified. ([#111093](https://github.com/kubernetes/kubernetes/pull/111093), [@brianpursley](https://github.com/brianpursley)) -- Fixed bug where dry run message was not printed when running `kubectl label` with `--dry-run` flag. ([#111571](https://github.com/kubernetes/kubernetes/pull/111571), [@brianpursley](https://github.com/brianpursley)) -- Fixed code to ensure that pods running on nodes tainted with `NoExecute` continue to run when the `PodDisruptionConditions` feature gate is enabled. ([#112518](https://github.com/kubernetes/kubernetes/pull/112518), [@mimowo](https://github.com/mimowo)) -- Fixed cost estimation of token creation request for service account in Priority and Fairness. ([#113206](https://github.com/kubernetes/kubernetes/pull/113206), [@marseel](https://github.com/marseel)) -- Fixed issue where the APIServer would panic on startup if an egress selector without a controlplane configuration is specified when using APIServerTracing. ([#112979](https://github.com/kubernetes/kubernetes/pull/112979), [@dashpole](https://github.com/dashpole)) -- Fixed 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)) -- Fixed race condition in GCE between containerized mounter setup in the kubelet. ([#112195](https://github.com/kubernetes/kubernetes/pull/112195), [@mattcary](https://github.com/mattcary)) -- Fixed relative CPU priority for pods where containers explicitly request zero cpu by giving the lowest priority instead of falling back to the cpu limit to avoid possible cpu starvation of other pods. ([#108832](https://github.com/kubernetes/kubernetes/pull/108832), [@waynepeking348](https://github.com/waynepeking348)) -- Fixed that disruption controller used to change the status of a stale disruption condition after 2 min when the `PodDisruptionConditions` feature gate is enabled. ([#113580](https://github.com/kubernetes/kubernetes/pull/113580), [@mimowo](https://github.com/mimowo)) -- Fixed the `PodAndContainerStatsFromCRI` feature, instead of supplementing with stats from cAdvisor. ([#113291](https://github.com/kubernetes/kubernetes/pull/113291), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Fixed the occasional double-counting of the `job_finished_total` metric. ([#112948](https://github.com/kubernetes/kubernetes/pull/112948), [@mimowo](https://github.com/mimowo)) -- For `kubectl`, `--server-side` now migrates ownership of all fields used by client-side-apply to the specified `--fieldmanager`. This prevents fields previously specified using kubectl from being able to live outside of server-side-apply's management and become undeleteable. ([#112905](https://github.com/kubernetes/kubernetes/pull/112905), [@alexzielenski](https://github.com/alexzielenski)) -- 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 change modified that behavior to ensure it is only called once per volume per node. ([#112403](https://github.com/kubernetes/kubernetes/pull/112403), [@akankshakumari393](https://github.com/akankshakumari393)) -- Improved `kubectl` display of invalid request errors returned by the API server. ([#112150](https://github.com/kubernetes/kubernetes/pull/112150), [@liggitt](https://github.com/liggitt)) -- In 'kube-apiserver`,`x-kubernetes-list-type` validation is now enforced when updating status of custom resources.' ([#111866](https://github.com/kubernetes/kubernetes/pull/111866), [@pacoxu](https://github.com/pacoxu)) -- In `kube-apiserver`, custom resources can now be specified in the `--encryption-provider-config` file and can be encrypted in etcd. ([#113015](https://github.com/kubernetes/kubernetes/pull/113015), [@ritazh](https://github.com/ritazh)) -- Increased the maximum backoff delay of the endpointslice controller to match the expected sequence of delays when syncing Services. ([#112353](https://github.com/kubernetes/kubernetes/pull/112353), [@dgrisonnet](https://github.com/dgrisonnet)) -- Known issue: Job field `.spec.podFailurePolicy.rules[*].onExitCode` might be ignored if the Pod is deleted before it terminates. ([#113856](https://github.com/kubernetes/kubernetes/pull/113856), [@alculquicondor](https://github.com/alculquicondor)) -- 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)) -- Kube-apiserver: redirect responses are no longer returned from backends by default. Set `--aggregator-reject-forwarding-redirect=false` to continue forwarding redirect responses. ([#112193](https://github.com/kubernetes/kubernetes/pull/112193), [@jindijamie](https://github.com/jindijamie)) [SIG API Machinery and Testing] -- Kube-apiserver: redirects from backend API servers are no longer followed when checking availability with requests to `/apis/$group/$version` ([#112772](https://github.com/kubernetes/kubernetes/pull/112772), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] -- Kube-apiserver: resolved a regression that treated `304 Not Modified` responses from aggregated API servers as internal errors. ([#112526](https://github.com/kubernetes/kubernetes/pull/112526), [@liggitt](https://github.com/liggitt)) -- Kube-proxy no longer falls back from ipvs mode to iptables mode if you ask it to do ipvs but the system is not correctly configured. Instead, it will just exit with an error. ([#111806](https://github.com/kubernetes/kubernetes/pull/111806), [@danwinship](https://github.com/danwinship)) [SIG Network] -- Kube-scheduler: added taints filtering logic consistent with `TaintToleration` plugin for `PodTopologySpread` plugin. ([#112357](https://github.com/kubernetes/kubernetes/pull/112357), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm will cleanup the stale data on best effort basis. Stale data will be removed when each reset phase are executed, default etcd data directory will be cleanup when the `remove-etcd-member` phase are executed. ([#110972](https://github.com/kubernetes/kubernetes/pull/110972), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle] -- Kubeadm: fixed a bug when performing validation on `ClusterConfiguration` networking fields. ([#112751](https://github.com/kubernetes/kubernetes/pull/112751), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: when a sub command is needed but not provided for a kubeadm command, print a help screen instead of showing a short message. ([#111277](https://github.com/kubernetes/kubernetes/pull/111277), [@chymy](https://github.com/chymy)) -- Kubectl: fixed a bug where `kubectl convert` did not pick the right API version ([#112700](https://github.com/kubernetes/kubernetes/pull/112700), [@SataQiu](https://github.com/SataQiu)) -- Kubelet now cleans up the Node's cloud node IP annotation correctly if you - stop using `--node-ip`. (In particular, this fixes the problem where people who - were unnecessarily using `--node-ip` with an external cloud provider in 1.23, - and then running into problems with 1.24, could not fix the problem by just - removing the unnecessary `--node-ip` from the kubelet arguments, because - that wouldn't remove the annotation that caused the problems.) ([#112184](https://github.com/kubernetes/kubernetes/pull/112184), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] -- Kubelet: Fixed a startup crash in devicemanager. ([#113021](https://github.com/kubernetes/kubernetes/pull/113021), [@rphillips](https://github.com/rphillips)) -- Kubelet: fixed log spam from kubelet_getters.go `Path does not exist`. ([#112650](https://github.com/kubernetes/kubernetes/pull/112650), [@rphillips](https://github.com/rphillips)) -- Kubelet: fixed nil pointer in reflector start for standalone mode. ([#113501](https://github.com/kubernetes/kubernetes/pull/113501), [@pacoxu](https://github.com/pacoxu)) -- Kubelet: when there are multi option lines in /etc/resolv.conf, merge all options into one line in a pod with the `Default` DNS policy. ([#112414](https://github.com/kubernetes/kubernetes/pull/112414), [@pacoxu](https://github.com/pacoxu)) [SIG Network and Node] -- Log messages and metrics for the watch cache are now keyed by `<resource>.<group>` instead of `go` struct type. This means e.g. that `*v1.Pod` becomes `pods`. Additionally, resources that come from `CustomResourceDefinitions` are displayed as the correct resource and group, instead of `*unstructured.Unstructured`. ([#111807](https://github.com/kubernetes/kubernetes/pull/111807), [@ncdc](https://github.com/ncdc)) -- Moved `LocalStorageCapacityIsolationFSQuotaMonitoring` back to Alpha. ([#112076](https://github.com/kubernetes/kubernetes/pull/112076), [@rphillips](https://github.com/rphillips)) -- NOTE ([#113749](https://github.com/kubernetes/kubernetes/pull/113749), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery] -- Nested `MountPoints` are now grouped correctly on all cases. ([#112571](https://github.com/kubernetes/kubernetes/pull/112571), [@claudiubelu](https://github.com/claudiubelu)) -- Pod failed in scheduling due to expected error will be updated with the reason of `SchedulerError` rather than `Unschedulable`. ([#111999](https://github.com/kubernetes/kubernetes/pull/111999), [@kerthcet](https://github.com/kerthcet)) -- Pod logs using `--timestamps` are not broken up with timestamps anymore. ([#113481](https://github.com/kubernetes/kubernetes/pull/113481), [@rphillips](https://github.com/rphillips)) -- Removed raising an error when setting an annotation with the same value, just ignore it. ([#109505](https://github.com/kubernetes/kubernetes/pull/109505), [@zigarn](https://github.com/zigarn)) -- Resolved an issue that caused winkernel proxier to treat stale VIPs as valid. ([#113521](https://github.com/kubernetes/kubernetes/pull/113521), [@daschott](https://github.com/daschott)) -- The `ResourceVersion` returned in objects from delete responses is now consistent with the `ResourceVersion` contained in the delete watch event. ([#113369](https://github.com/kubernetes/kubernetes/pull/113369), [@wojtek-t](https://github.com/wojtek-t)) -- The `kube-scheduler` and `kube-controller-manager` now use server side apply to set conditions related to pod disruption. ([#113304](https://github.com/kubernetes/kubernetes/pull/113304), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps and Scheduling] -- The errors in `k8s.io/apimachinery/pkg/api/meta` now support for the `stdlibs` `errors.Is` matching, including when wrapped. ([#111808](https://github.com/kubernetes/kubernetes/pull/111808), [@alvaroaleman](https://github.com/alvaroaleman)) -- The metrics `etcd_request_duration_seconds` and `etcd_bookmark_counts` now differentiate by group resource instead of object type, allowing unique entries per `CustomResourceDefinition`, instead of grouping them all under `*unstructured.Unstructured`. ([#112042](https://github.com/kubernetes/kubernetes/pull/112042), [@ncdc](https://github.com/ncdc)) -- The pod admission error message was improved for usability. ([#112644](https://github.com/kubernetes/kubernetes/pull/112644), [@vitorfhc](https://github.com/vitorfhc)) [SIG Node] -- The time duration of a failed or unschedulable scheduling attempt will be longer, it - now includes the time duration of the unreserve operation. ([#113113](https://github.com/kubernetes/kubernetes/pull/113113), [@kerthcet](https://github.com/kerthcet)) -- Updated `kube-proxy` to restart in case it detects that the Node assigned `pod.Spec.PodCIDRs` have changed. ([#111344](https://github.com/kubernetes/kubernetes/pull/111344), [@aojea](https://github.com/aojea)) -- Updated creation of `LoadBalancer` services, for there to be fewer AWS security group rules in most cases. ([#112267](https://github.com/kubernetes/kubernetes/pull/112267), [@sjenning](https://github.com/sjenning)) -- Updated the system-validators library to v1.8.0 ([#112026](https://github.com/kubernetes/kubernetes/pull/112026), [@pacoxu](https://github.com/pacoxu)) -- Updates `golang.org/x/text`` to `v0.3.8`` to fix CVE-2022-32149 ([#112989](https://github.com/kubernetes/kubernetes/pull/112989), [@ameukam](https://github.com/ameukam)) -- Volume mount cleanup now considers only plugin directory and not the entire kubelet root ([#112607](https://github.com/kubernetes/kubernetes/pull/112607), [@mattcary](https://github.com/mattcary)) -- `kubectl` now escapes terminal special characters in output. This fixes CVE-2021-25743. - ([#112553](https://github.com/kubernetes/kubernetes/pull/112553), [@dgl](https://github.com/dgl)) - -### Other (Cleanup or Flake) - -- 'Promoted `cronjob_job_creation_skew` metric to stable to follow the cronjob v2 controller, - the following metrics had their name updated to match metrics API guidelines: - - `cronjob_job_creation_skew_duration_seconds` -> `job_creation_skew_duration_seconds`.' ([#113008](https://github.com/kubernetes/kubernetes/pull/113008), [@soltysh](https://github.com/soltysh)) -- 'Promoted job-related metrics to stable to follow IndexedJobs GA. The following metrics have their name updated to match metrics API guidelines: - - `job_sync_total` -> `job_syncs_total` - - `job_finished_total` -> `jobs_finished_total`' ([#113010](https://github.com/kubernetes/kubernetes/pull/113010), [@soltysh](https://github.com/soltysh)) -- '`kubelet_kubelet_credential_provider_plugin_duration` was renamed to `kubelet_credential_provider_plugin_duration` - and `kubelet_kubelet_credential_provider_plugin_errors` was renamed to `kubelet_credential_provider_plugin_errors`.' - ([#113754](https://github.com/kubernetes/kubernetes/pull/113754), [@logicalhan](https://github.com/logicalhan)) -- A new API server flag `--encryption-provider-config-automatic-reload` was added to control when the encryption config should be automatically reloaded without needing to restart the server. All KMS plugins are now merged into a single healthz check at `/healthz/kms-providers` when reload is enabled, or when only KMS v2 plugins are used. ([#113529](https://github.com/kubernetes/kubernetes/pull/113529), [@enj](https://github.com/enj)) -- Added a `--prune-allowlist` flag that can be used with `kubectl apply --prune`. This flag now replaces and functions the same as the `--prune-whitelist` flag, which has been deprecated. ([#113116](https://github.com/kubernetes/kubernetes/pull/113116), [@brianpursley](https://github.com/brianpursley)) -- Added a `kubernetes_feature_enabled` metric which will tell you if a feature is enabled. ([#112652](https://github.com/kubernetes/kubernetes/pull/112652), [@logicalhan](https://github.com/logicalhan)) -- Deprecated the following kubectl run flags, which are ignored if set: `--cascade`, `--filename`, `--force`, `--grace-period`, `--kustomize`, `--recursive`, `--timeout`, `--wait`. ([#112261](https://github.com/kubernetes/kubernetes/pull/112261), [@brianpursley](https://github.com/brianpursley)) -- Dropped support for the Container Runtime Interface (CRI) version `v1alpha2`, which means that container runtimes just have to implement `v1`. ([#110618](https://github.com/kubernetes/kubernetes/pull/110618), [@saschagrunert](https://github.com/saschagrunert)) -- E2e: tests can now register callbacks with `ginkgo.BeforeEach`, `ginkgo.AfterEach` or `ginkgo.DeferCleanup` directly after creating a framework instance and are guaranteed that their code is called after the framework is initialized and before it gets cleaned up. `ginkgo.DeferCleanup` replaces `f.AddAfterEach` and `AddCleanupAction` which got removed to simplify the framework. ([#111998](https://github.com/kubernetes/kubernetes/pull/111998), [@pohly](https://github.com/pohly)) -- Introduce `ComponentSLIs` alpha feature-gate for component SLIs metrics endpoint. ([#112884](https://github.com/kubernetes/kubernetes/pull/112884), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery] -- Kube scheduler Component Config release version v1beta3 is deprecated in v1.26 and will be removed in v1.29, - also v1beta2 will be removed in v1.28. ([#112257](https://github.com/kubernetes/kubernetes/pull/112257), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling] -- Kube-scheduler: the `DefaultPodTopologySpread`, `NonPreemptingPriority`, `PodAffinityNamespaceSelector` and `PreferNominatedNode` feature gates that graduated to GA in v1.24 and were unconditionally enabled have been removed in v1.26. ([#112567](https://github.com/kubernetes/kubernetes/pull/112567), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: removed the `UnversionedKubeletConfigMap` feature gate. The feature has been GA and locked to enabled since `v1.25`. ([#113448](https://github.com/kubernetes/kubernetes/pull/113448), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: removed the toleration for the `node-role.kubernetes.io/master` taint from the CoreDNS deployment of `kubeadm`. With the 1.25 release of kubeadm the taint `node-role.kubernetes.io/master` is no longer applied to control plane nodes and the toleration for it can be removed with the release of 1.26. You can also perform the same toleration removal from your own addon manifests. ([#112008](https://github.com/kubernetes/kubernetes/pull/112008), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: removed the usage of the `--container-runtime=remote` flag for the kubelet during kubeadm init/join/upgrade. The flag value `remote` had been the only possible value since `dockershim` was removed from the kubelet. ([#112000](https://github.com/kubernetes/kubernetes/pull/112000), [@pacoxu](https://github.com/pacoxu)) -- Locked `ServerSideApply` feature gate to true with the feature already being GA. ([#112748](https://github.com/kubernetes/kubernetes/pull/112748), [@wojtek-t](https://github.com/wojtek-t)) -- NoneNone ([#111533](https://github.com/kubernetes/kubernetes/pull/111533), [@zhoumingcheng](https://github.com/zhoumingcheng)) [SIG CLI] -- Refactored `test/e2e/framework` so that the core framework is smaller. Optional functionality like resource monitoring, log size monitoring, metrics gathering and debug information dumping must be imported by specific e2e test suites. Init packages are provided which can be imported to re-enable the functionality that traditionally was in the core framework. If you have code that no longer compiles because of this PR, you can use the script [from a commit message](https://github.com/kubernetes/kubernetes/pull/112043/commits/dfdf88d4faafa6fd39988832ea0ef6d668f490e9) to update that code. ([#112043](https://github.com/kubernetes/kubernetes/pull/112043), [@pohly](https://github.com/pohly)) -- Release-note ([#111708](https://github.com/kubernetes/kubernetes/pull/111708), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Apps, Instrumentation and Network] -- Removed `PodOverhead` feature gate as the feature is in GA since `v1.24`. ([#112579](https://github.com/kubernetes/kubernetes/pull/112579), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) -- Removing Windows Server, Version 20H2 flavors from various container images. ([#112924](https://github.com/kubernetes/kubernetes/pull/112924), [@marosset](https://github.com/marosset)) -- Renamed the feature gate for CEL in Admission Control to `ValidatingAdmissionPolicy`. ([#113735](https://github.com/kubernetes/kubernetes/pull/113735), [@cici37](https://github.com/cici37)) -- Reworded log message upon image garbage collection failure to be more clear. ([#112631](https://github.com/kubernetes/kubernetes/pull/112631), [@tzneal](https://github.com/tzneal)) [SIG Node] -- Scheduler dumper now exposes a summary to indicate the number of pending pods in each internal queue. ([#111726](https://github.com/kubernetes/kubernetes/pull/111726), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] -- Service session affinity timeout tests are no longer required for Kubernetes network plugin conformance due to variations in existing implementations. New conformance tests will be developed to better express conformance in future releases. ([#112806](https://github.com/kubernetes/kubernetes/pull/112806), [@dcbw](https://github.com/dcbw)) [SIG Architecture, Network and Testing] -- The `IndexedJob` and `SuspendJob` feature gates that graduated to GA in 1.24 and were unconditionally enabled have been removed in v1.26. ([#112589](https://github.com/kubernetes/kubernetes/pull/112589), [@SataQiu](https://github.com/SataQiu)) -- The `e2e.test` binary no longer emits JSON structs to document progress. ([#113212](https://github.com/kubernetes/kubernetes/pull/113212), [@pohly](https://github.com/pohly)) -- The in-tree cloud provider for OpenStack (and the cinder volume provider) has been removed. Please use the external cloud provider and csi driver from [cloud-provider-openstack](https://github.com/kubernetes/cloud-provider-openstack) instead. ([#67782](https://github.com/kubernetes/kubernetes/pull/67782), [@dims](https://github.com/dims)) -- The metric `etcd_db_total_size_in_bytes` is renamed to `apiserver_storage_db_total_size_in_bytes`. ([#113310](https://github.com/kubernetes/kubernetes/pull/113310), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery] -- Updated `cri-tools` to [v1.25.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.25.0). ([#112058](https://github.com/kubernetes/kubernetes/pull/112058), [@saschagrunert](https://github.com/saschagrunert)) +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- Deprecated beta APIs scheduled for removal in `v1.26` are no longer served. See https://kubernetes.io/docs/reference/using-api/deprecation-guide/#v1-26 for more information. ([#111973](https://github.com/kubernetes/kubernetes/pull/111973), [@liggitt](https://github.com/liggitt)) + +## Changes by Kind + +### Deprecation + +- CLI flag `pod-eviction-timeout` is deprecated and will be removed together with `enable-taint-manager` in `v1.27`. ([#113710](https://github.com/kubernetes/kubernetes/pull/113710), [@kerthcet](https://github.com/kerthcet)) +- Kube-apiserver: the unused `--master-service-namespace` flag was deprecated and will be removed in v1.27. ([#112797](https://github.com/kubernetes/kubernetes/pull/112797), [@SataQiu](https://github.com/SataQiu)) +- The `gcp` and `azure` auth plugins have been removed from `client-go` and `kubectl`. See [kubelogin](https://github.com/Azure/kubelogin) and [Kubectl Auth Changes in GKE](https://cloud.google.com/blog/products/containers-kubernetes/kubectl-auth-changes-in-gke) for details about the cloud-specific replacements. ([#112341](https://github.com/kubernetes/kubernetes/pull/112341), [@enj](https://github.com/enj)) + +### API Change + +- 'A new `preEnqueue` extension point was added to scheduler's component config + `v1beta2/v1beta3/v1`.' + ([#113275](https://github.com/kubernetes/kubernetes/pull/113275), [@Huang-Wei](https://github.com/Huang-Wei)) +- 'Added a `ResourceClaim` API (in the `resource.k8s.io/v1alpha1` API group and + behind the `DynamicResourceAllocation` feature gate). + The new API is now more flexible than the existing Device Plugins feature of Kubernetes because it + allows Pods to request (claim) special kinds of resources, which can be available at node level, cluster + level, or following any other model you implement.' ([#111023](https://github.com/kubernetes/kubernetes/pull/111023), [@pohly](https://github.com/pohly)) +- 'Container `preStop` and `postStart` lifecycle handlers using `httpGet` now + honor the specified `scheme` and `headers` fields. This enables setting custom + headers and changing the scheme to `HTTPS`, consistent with container + startup/readiness/liveness probe capabilities. Lifecycle handlers configured + with `scheme: HTTPS` that encounter errors indicating the endpoint is actually + using HTTP fall back to making the request over HTTP for compatibility with + previous releases. When this happens, a `LifecycleHTTPFallback` event is recorded + in the namespace of the pod and a `kubelet_lifecycle_handler_http_fallbacks_total` + metric in the kubelet is incremented. Cluster administrators can opt out of the + expanded lifecycle handler capabilities by setting + `--feature-gates=ConsistentHTTPGetHandlers=false` in `kubelet`.' + ([#86139](https://github.com/kubernetes/kubernetes/pull/86139), [@jasimmons](https://github.com/jasimmons)) +- 'Graduated `JobTrackingWithFinalizers` to stable. + Jobs created before the feature was enabled are still tracked without finalizers. + Jobs tracked with finalizers have the annotation batch.kubernetes.io/job-tracking. + If the annotation is present and the user attempts to remove it, the control plane adds it back. + The annotation `batch.kubernetes.io/job-tracking` is now deprecated. + The control plane will ignore it and stop adding it for new Jobs in v1.27.' ([#113510](https://github.com/kubernetes/kubernetes/pull/113510), [@alculquicondor](https://github.com/alculquicondor)) +- 'Priority and Fairness has introduced a new feature called _borrowing_ that allows an API priority level + to borrow a number of seats from other priority level(s). As a cluster operator, you can enable borrowing + for a certain priority level configuration object via the two newly introduced fields `lendablePercent`, and + `borrowingLimitPercent` located under the `.spec.limited` field of the designated priority level. + This change added the following metrics: + - `apiserver_flowcontrol_nominal_limit_seats`: Nominal number of execution seats configured for each priority level + - `apiserver_flowcontrol_lower_limit_seats`: Configured lower bound on number of execution seats available to each priority level + - `apiserver_flowcontrol_upper_limit_seats`: Configured upper bound on number of execution seats available to each priority level + - `apiserver_flowcontrol_demand_seats`: Observations, at the end of every nanosecond, of (the number of seats each priority level could use) / (nominal number of seats for that level) + - `apiserver_flowcontrol_demand_seats_high_watermark`: High watermark, over last adjustment period, of demand_seats + - `apiserver_flowcontrol_demand_seats_average`: Time-weighted average, over last adjustment period, of demand_seats + - `apiserver_flowcontrol_demand_seats_stdev`: Time-weighted standard deviation, over last adjustment period, of demand_seats + - `apiserver_flowcontrol_demand_seats_smoothed`: Smoothed seat demands + - `apiserver_flowcontrol_target_seats`: Seat allocation targets + - `apiserver_flowcontrol_seat_fair_frac`: Fair fraction of server's concurrency to allocate to each priority level that can use it + - `apiserver_flowcontrol_current_limit_seats`: current derived number of execution seats available to each priority level + The possibility of borrowing means that the old metric `apiserver_flowcontrol_request_concurrency_limit` can no longer mean both the configured concurrency limit and the enforced concurrency limit. Henceforth it means the configured concurrency limit.' ([#113485](https://github.com/kubernetes/kubernetes/pull/113485), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) +- '`NodeInclusionPolicy` in `podTopologySpread` plugin is now enabled by default.' + ([#113500](https://github.com/kubernetes/kubernetes/pull/113500), [@kerthcet](https://github.com/kerthcet)) +- '`PodDisruptionBudget` now adds an alpha `spec.unhealthyPodEvictionPolicy` field. + When the `PDBUnhealthyPodEvictionPolicy` feature-gate is enabled in `kube-apiserver`, + setting this field to `"AlwaysAllow"` allows pods to be evicted if they do not + have a ready condition, regardless of whether the PodDisruptionBudget is currently + healthy.' + ([#113375](https://github.com/kubernetes/kubernetes/pull/113375), [@atiratree](https://github.com/atiratree)) +- '`metav1.LabelSelectors` specified in API objects are now validated to ensure + they do not contain invalid label values that will error at time of use. Existing + invalid objects can be updated, but new objects are required to contain valid + label selectors.' + ([#113699](https://github.com/kubernetes/kubernetes/pull/113699), [@liggitt](https://github.com/liggitt)) +- 'kubelet: Added the following Pod failure conditions: + - `DisruptionTarget` (graceful node shutdown, node pressure eviction)' ([#112360](https://github.com/kubernetes/kubernetes/pull/112360), [@mimowo](https://github.com/mimowo)) +- Add `percentageOfNodesToScore` as a scheduler profile level parameter to API version `v1`. When a profile `percentageOfNodesToScore` is set, it will override global `percentageOfNodesToScore`. ([#112521](https://github.com/kubernetes/kubernetes/pull/112521), [@yuanchen8911](https://github.com/yuanchen8911)) +- Add auth API to get self subject attributes (new selfsubjectreviews API is added). + The corresponding command for kubctl is provided - `kubectl auth whoami`. ([#111333](https://github.com/kubernetes/kubernetes/pull/111333), [@nabokihms](https://github.com/nabokihms)) [SIG API Machinery, Auth, CLI and Testing] +- Added `kubernetes_feature_enabled` metric series to track whether each active feature gate is enabled. ([#112690](https://github.com/kubernetes/kubernetes/pull/112690), [@logicalhan](https://github.com/logicalhan)) +- Added a `--topology-manager-policy-options` flag to the kubelet to support fine tuning the topology manager policies. The first policy option, `prefer-closest-numa-nodes`, allows these policies to favor sets of NUMA nodes with shorter distance between nodes when making admission decisions. ([#112914](https://github.com/kubernetes/kubernetes/pull/112914), [@PiotrProkop](https://github.com/PiotrProkop)) +- Added a `kube-proxy` flag (`--iptables-localhost-nodeports`, default true) to allow disabling `NodePort` services on loopback addresses. Note: this only applies to iptables mode and ipv4. ([#108250](https://github.com/kubernetes/kubernetes/pull/108250), [@cyclinder](https://github.com/cyclinder)) +- Added a feature that allows a `StatefulSet` to start numbering replicas from an arbitrary non-negative ordinal, using the `.spec.ordinals.start` field. ([#112744](https://github.com/kubernetes/kubernetes/pull/112744), [@pwschuurman](https://github.com/pwschuurman)) +- Added a new namespace alpha field to `DataSourceRef` field in `PersistentVolumeClaim` API. ([#113186](https://github.com/kubernetes/kubernetes/pull/113186), [@ttakahashi21](https://github.com/ttakahashi21)) +- Aggregated discovery will be alpha and can be toggled with the `AggregatedDiscoveryEndpoint` feature flag. ([#113171](https://github.com/kubernetes/kubernetes/pull/113171), [@Jefftree](https://github.com/Jefftree)) +- Clarified the CFS quota as 100ms in the code comments and set the minimum `cpuCFSQuotaPeriod` to 1ms to match Linux kernel expectations. ([#112123](https://github.com/kubernetes/kubernetes/pull/112123), [@paskal](https://github.com/paskal)) +- Component-base: make the validation logic about LeaderElectionConfiguration consistent between component-base and client-go ([#111758](https://github.com/kubernetes/kubernetes/pull/111758), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery and Scheduling] +- Deprecated the `apiserver_request_slo_duration_seconds` metric for v1.27 in favor of `apiserver_request_sli_duration_seconds` for naming consistency purposes with other SLI-specific metrics and to avoid any confusion between SLOs and SLIs. ([#112679](https://github.com/kubernetes/kubernetes/pull/112679), [@dgrisonnet](https://github.com/dgrisonnet)) +- Enabled `kube-controller-manager` to support '--concurrent-horizontal-pod-autoscaler-syncs' flag to set the number of horizontal pod autoscaler controller workers. ([#108501](https://github.com/kubernetes/kubernetes/pull/108501), [@zroubalik](https://github.com/zroubalik)) +- Enabled the "Retriable and non-retriable pod failures for jobs" feature into beta. ([#113360](https://github.com/kubernetes/kubernetes/pull/113360), [@mimowo](https://github.com/mimowo)) +- Fixed spurious `field is immutable` errors validating updates to Event API objects via the `events.k8s.io/v1` API. ([#112183](https://github.com/kubernetes/kubernetes/pull/112183), [@liggitt](https://github.com/liggitt)) +- Graduated `ServiceInternalTrafficPolicy` feature to GA. ([#113496](https://github.com/kubernetes/kubernetes/pull/113496), [@avoltz](https://github.com/avoltz)) +- In `kube-proxy`: The "userspace" proxy mode (deprecated for over a year) is no + longer supported on either Linux or Windows. Users should use "iptables" or "ipvs" + on Linux, or "kernelspace" on Windows. + ([#112133](https://github.com/kubernetes/kubernetes/pull/112133), [@knabben](https://github.com/knabben)) +- Introduce `v1beta3` for Priority and Fairness with the following changes to the API spec: + - rename 'assuredConcurrencyShares' (located under `spec.limited') to 'nominalConcurrencyShares'. + - apply strategic merge patch annotations to 'Conditions' of flowschemas and `prioritylevelconfigurations`. ([#112306](https://github.com/kubernetes/kubernetes/pull/112306), [@tkashem](https://github.com/tkashem)) +- Introduced `v1alpha1` API for validating admission policies, enabling extensible admission control via CEL expressions (KEP 3488: CEL for Admission Control). To use, enable the `ValidatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` API via `--runtime-config`. ([#113314](https://github.com/kubernetes/kubernetes/pull/113314), [@cici37](https://github.com/cici37)) +- KMS: added validation for duplicate kms config name when auto reload is enabled. If you enabled automatic reload of encryption configuration with API server flag `--encryption-provider-config-automatic-reload`, ensure all the KMS provider names (v1 and v2) in the encryption configuration are unique. ([#113697](https://github.com/kubernetes/kubernetes/pull/113697), [@aramase](https://github.com/aramase)) +- Kubelet external Credential Provider feature is moved to GA. Credential Provider Plugin and Credential Provider Config APIs updated from `v1beta1` to `v1` with no API changes. ([#111616](https://github.com/kubernetes/kubernetes/pull/111616), [@ndixita](https://github.com/ndixita)) +- Legacy klog flags are no longer available. Only `-v` and `-vmodule` are still supported. ([#112120](https://github.com/kubernetes/kubernetes/pull/112120), [@pohly](https://github.com/pohly)) [SIG Architecture, CLI, Instrumentation, Node and Testing] +- Moved `MixedProtocolLBService` from beta to GA. ([#112895](https://github.com/kubernetes/kubernetes/pull/112895), [@janosi](https://github.com/janosi)) +- New Pod API field `.spec.schedulingGates` was introduced to enable users to control when to mark a Pod as scheduling ready. ([#113274](https://github.com/kubernetes/kubernetes/pull/113274), [@Huang-Wei](https://github.com/Huang-Wei)) +- 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)) +- Removed feature gates `ServiceLoadBalancerClass` and `ServiceLBNodePortControl`. These feature gates were enabled (and locked) since `v1.24`. ([#112577](https://github.com/kubernetes/kubernetes/pull/112577), [@andrewsykim](https://github.com/andrewsykim)) +- Reverted regression that prevented `client-go` latency metrics to be reported with a template URL to avoid label cardinality. ([#111752](https://github.com/kubernetes/kubernetes/pull/111752), [@aanm](https://github.com/aanm)) +- The `EndpointSliceTerminatingCondition` feature gate was graduated to GA. The gate is now locked and will be removed in v1.28. ([#113351](https://github.com/kubernetes/kubernetes/pull/113351), [@andrewsykim](https://github.com/andrewsykim)) +- [kubelet] Change default `cpuCFSQuotaPeriod` value with enabled `cpuCFSQuotaPeriod` flag from 100ms to 100µs to match the Linux CFS and k8s defaults. `cpuCFSQuotaPeriod` of 100ms now requires `customCPUCFSQuotaPeriod` flag to be set to work. ([#111520](https://github.com/kubernetes/kubernetes/pull/111520), [@paskal](https://github.com/paskal)) [SIG API Machinery and Node] +- `DynamicKubeletConfig` feature gate has been removed from the API server. + Dynamic kubelet reconfiguration now can't be used even when older nodes are still + attempting to rely on it. This is aligned with the Kubernetes version skew policy. + ([#112643](https://github.com/kubernetes/kubernetes/pull/112643), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) +- `kubectl wait` command with `jsonpath` flag will wait for target path until timeout. + ([#109525](https://github.com/kubernetes/kubernetes/pull/109525), [@jonyhy96](https://github.com/jonyhy96)) + +### Feature + +- 'Added selector validation to `HorizontalPodAutoscaler`: when multiple HPAs + select the same set of Pods, scaling now will be disabled for those HPAs with + the reason `AmbiguousSelector`. This change also covers a case when multiple HPAs + point to the same deployment.' + ([#112011](https://github.com/kubernetes/kubernetes/pull/112011), [@pbeschetnov](https://github.com/pbeschetnov)) +- 'Pod Security admission: the pod-security `warn` level will now default to + the `enforce` level.' + ([#113491](https://github.com/kubernetes/kubernetes/pull/113491), [@tallclair](https://github.com/tallclair)) +- 'Promoted the `APIServerIdentity` feature to Beta. By default, each `kube-apiserver` + will now create a Lease in the `kube-system` namespace. These lease objects can + be used to identify the number of active API servers in the cluster, and may also + be used for future features such as the Storage Version API.' + ([#113629](https://github.com/kubernetes/kubernetes/pull/113629), [@andrewsykim](https://github.com/andrewsykim)) +- 'The iptables kube-proxy backend now process service/endpoint changes + more efficiently in very large clusters.' ([#110268](https://github.com/kubernetes/kubernetes/pull/110268), [@danwinship](https://github.com/danwinship)) +- '`CSIMigrationvSphere` was upgraded to GA and locked to true. Do not upgrade to K8s + 1.26 if you need Windows, or XFS, or raw block support until vSphere CSI Driver + adds support for them in a version post v2.7.x.' + ([#113336](https://github.com/kubernetes/kubernetes/pull/113336), [@divyenpatel](https://github.com/divyenpatel)) +- '`DelegateFSGroupToCSIDriver` feature is GA.' + ([#113225](https://github.com/kubernetes/kubernetes/pull/113225), [@bertinatto](https://github.com/bertinatto)) +- '`NodeOutOfServiceVolumeDetach` is now beta.' + ([#113511](https://github.com/kubernetes/kubernetes/pull/113511), [@xing-yang](https://github.com/xing-yang)) +- '`RetroactiveDefaultStorageClass` feature is now beta.' + ([#113329](https://github.com/kubernetes/kubernetes/pull/113329), [@RomanBednar](https://github.com/RomanBednar)) +- '`registered_metric_total` will now report the number of metrics broken down by + stability level and deprecated version.' + ([#112907](https://github.com/kubernetes/kubernetes/pull/112907), [@logicalhan](https://github.com/logicalhan)) +- A new `DisableCompression` field (default = `false`) has been added to kubeconfig under cluster info. When set to `true`, clients using the kubeconfig opt out of response compression for all requests to the apiserver. This can help improve list call latencies significantly when client-server network bandwidth is ample (>30MB/s) or if the server is CPU-constrained. ([#112309](https://github.com/kubernetes/kubernetes/pull/112309), [@shyamjvs](https://github.com/shyamjvs)) +- A new `pod_status_sync_duration_seconds` histogram is reported at alpha metrics stability that estimates how long the Kubelet takes to write a pod status change once it is detected. ([#107896](https://github.com/kubernetes/kubernetes/pull/107896), [@smarterclayton](https://github.com/smarterclayton)) [SIG Apps, Architecture, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling, Storage and Testing] +- API Server Tracing now includes a variety of new spans and span events. ([#113172](https://github.com/kubernetes/kubernetes/pull/113172), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Architecture, Auth, Instrumentation, Network, Node and Scheduling] +- API Server tracing now includes the latency of authorization, priorityandfairness, impersonation, audit, and authentication filters. ([#113217](https://github.com/kubernetes/kubernetes/pull/113217), [@dashpole](https://github.com/dashpole)) +- API Server tracing root span name for opentelemetry is changed from `KubernetesAPI` to `HTTP GET`. ([#112545](https://github.com/kubernetes/kubernetes/pull/112545), [@dims](https://github.com/dims)) +- Added `--disable-compression` flag to `kubectl` (default = false). When true, it opts out of response compression for all requests to the `apiserver`. This can help improve list call latencies significantly when client-server network bandwidth is ample (>30MB/s) or if the server is CPU-constrained. ([#112580](https://github.com/kubernetes/kubernetes/pull/112580), [@shyamjvs](https://github.com/shyamjvs)) +- Added a method `StreamWithContext` to `remotecommand.Executor` to support cancelable SPDY executor stream. ([#103177](https://github.com/kubernetes/kubernetes/pull/103177), [@arkbriar](https://github.com/arkbriar)) +- Added a new feature gate `CelValidatingAdmissionExtensibility` to enable expression validation for Admission Control. ([#112792](https://github.com/kubernetes/kubernetes/pull/112792), [@cici37](https://github.com/cici37)) [SIG API Machinery] +- Added alpha support for `WindowsHostNetworking` feature. ([#112961](https://github.com/kubernetes/kubernetes/pull/112961), [@marosset](https://github.com/marosset)) +- Added alpha support for returning container and pod metrics from CRI, instead of cAdvsior. ([#113609](https://github.com/kubernetes/kubernetes/pull/113609), [@haircommander](https://github.com/haircommander)) +- Added categories column to the `kubectl api-resources` command's wide output (`-o wide`). + Added `--categories` flag to the `kubectl api-resources` command, which can be used to filter the output to show only resources belonging to one or more categories. ([#111096](https://github.com/kubernetes/kubernetes/pull/111096), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] +- Added kubelet metrics to track the cpumanager cpu allocation and pinning. ([#112855](https://github.com/kubernetes/kubernetes/pull/112855), [@ffromani](https://github.com/ffromani)) +- Added new Golang runtime-related metrics to Kubernetes components: + - go_gc_cycles_automatic_gc_cycles_total + - go_gc_cycles_forced_gc_cycles_total + - go_gc_cycles_total_gc_cycles_total + - go_gc_heap_allocs_by_size_bytes + - go_gc_heap_allocs_bytes_total + - go_gc_heap_allocs_objects_total + - go_gc_heap_frees_by_size_bytes + - go_gc_heap_frees_bytes_total + - go_gc_heap_frees_objects_total + - go_gc_heap_goal_bytes + - go_gc_heap_objects_objects + - go_gc_heap_tiny_allocs_objects_total + - go_gc_pauses_seconds + - go_memory_classes_heap_free_bytes + - go_memory_classes_heap_objects_bytes + - go_memory_classes_heap_released_bytes + - go_memory_classes_heap_stacks_bytes + - go_memory_classes_heap_unused_bytes + - go_memory_classes_metadata_mcache_free_bytes + - go_memory_classes_metadata_mcache_inuse_bytes + - go_memory_classes_metadata_mspan_free_bytes + - go_memory_classes_metadata_mspan_inuse_bytes + - go_memory_classes_metadata_other_bytes + - go_memory_classes_os_stacks_bytes + - go_memory_classes_other_bytes + - go_memory_classes_profiling_buckets_bytes + - go_memory_classes_total_bytes + - go_sched_goroutines_goroutines + - go_sched_latencies_seconds ([#111910](https://github.com/kubernetes/kubernetes/pull/111910), [@tosi3k](https://github.com/tosi3k)) +- Added new metric `job_controller_terminated_pods_tracking_finalizer` which can be used to monitor whether the job controller is removing Pod finalizers from terminated Pods after accounting them in Job status. ([#113176](https://github.com/kubernetes/kubernetes/pull/113176), [@alculquicondor](https://github.com/alculquicondor)) +- Added publishing events when enabling/disabling `TopologyAwareHints`. ([#113544](https://github.com/kubernetes/kubernetes/pull/113544), [@LiorLieberman](https://github.com/LiorLieberman)) +- Added reconstruction of SELinux mount context after kubelet restart. Feature `SELinuxMountReadWriteOncePod` is now fully implemented and kubelet does not lose its cache of SELinux contexts after kubelet process restart. ([#113596](https://github.com/kubernetes/kubernetes/pull/113596), [@jsafrane](https://github.com/jsafrane)) +- Added support for Evented PLEG feature gate. ([#111384](https://github.com/kubernetes/kubernetes/pull/111384), [@harche](https://github.com/harche)) +- Added the metric `pod_start_sli_duration_seconds` to kubelet. ([#111930](https://github.com/kubernetes/kubernetes/pull/111930), [@azylinski](https://github.com/azylinski)) +- Added validation for the `--container-runtime-endpoint` flag of kubelet to be non-empty. ([#112542](https://github.com/kubernetes/kubernetes/pull/112542), [@astraw99](https://github.com/astraw99)) +- Adds alpha --output plaintext protected by environment variable `KUBECTL_EXPLAIN_OPENAPIV3` ([#113146](https://github.com/kubernetes/kubernetes/pull/113146), [@alexzielenski](https://github.com/alexzielenski)) [SIG CLI] +- Adds metrics `force_delete_pods_total` and `force_delete_pod_errors_total` in the Pod GC Controller. ([#113519](https://github.com/kubernetes/kubernetes/pull/113519), [@xing-yang](https://github.com/xing-yang)) [SIG Apps] +- Azure File CSI migration is now GA. ([#113160](https://github.com/kubernetes/kubernetes/pull/113160), [@andyzhangx](https://github.com/andyzhangx)) +- Changed `preemption_victims` metric bucket from `LinearBuckets` to `ExponentialBuckets`. ([#112939](https://github.com/kubernetes/kubernetes/pull/112939), [@lengrongfu](https://github.com/lengrongfu)) +- Exposed health check SLI metrics on `metrics/slis` for apiserver. ([#112741](https://github.com/kubernetes/kubernetes/pull/112741), [@logicalhan](https://github.com/logicalhan)) +- Extend the job `job_finished_total metric by new `reason` label and introduce a new job metric to count pod failures + handled by pod failure policy with respect to the action applied. ([#113324](https://github.com/kubernetes/kubernetes/pull/113324), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing] +- Graduate `ServiceIPStaticSubrange` feature to GA. ([#112163](https://github.com/kubernetes/kubernetes/pull/112163), [@aojea](https://github.com/aojea)) +- Graduated Kubelet CPU Manager to GA. ([#113018](https://github.com/kubernetes/kubernetes/pull/113018), [@ffromani](https://github.com/ffromani)) +- Graduated Kubelet Device Manager to GA. ([#112980](https://github.com/kubernetes/kubernetes/pull/112980), [@swatisehgal](https://github.com/swatisehgal)) +- If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on kubelet, allowing you to scrape health check metrics. ([#113030](https://github.com/kubernetes/kubernetes/pull/113030), [@Richabanker](https://github.com/Richabanker)) [SIG Node] +- If `ComponentSLIs` feature gate is enabled, then `/metrics/slis` now becomes available on cloud-controller-manager allowing you to scrape health check metrics. ([#113340](https://github.com/kubernetes/kubernetes/pull/113340), [@Richabanker](https://github.com/Richabanker)) +- If more than one StorageClass is designated as default (via the "storageclass.kubernetes.io/is-default-class" annotation), choose the newest one instead of throwing an error.' ([#110559](https://github.com/kubernetes/kubernetes/pull/110559), [@danishprakash](https://github.com/danishprakash)) +- In 'client-go` `SharedInformerFactory` will now support waiting for goroutines during shutdown. + ([#112200](https://github.com/kubernetes/kubernetes/pull/112200), [@pohly](https://github.com/pohly)) +- In `kubeadm`, command `kubeadm join phase control-plane-prepare certs` now supports to run with `dry-run` mode on it's own. ([#113005](https://github.com/kubernetes/kubernetes/pull/113005), [@chendave](https://github.com/chendave)) +- Kube-apiserver: `gzip` compression switched from level 4 to level 1 to improve large list call latencies in exchange for higher network bandwidth usage (10-50% higher). This increases the headroom before very large unpaged list calls exceed request timeout limits. ([#112299](https://github.com/kubernetes/kubernetes/pull/112299), [@shyamjvs](https://github.com/shyamjvs)) +- Kubeadm: added `show-join-command` as a new separate phase at the end of `kubeadm init`. You can skip printing the join information by using `kubeadm init --skip-phases=show-join-command`. Executing only this phase on demand will throw an error because the phase needs dependencies such as bootstrap tokens to be pre-populated. ([#111512](https://github.com/kubernetes/kubernetes/pull/111512), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: added the "--cleanup-tmp-dir" flag for `kubeadm reset`. It will cleanup the contents of `/etc/kubernetes/tmp`. The flag is off by default. ([#112172](https://github.com/kubernetes/kubernetes/pull/112172), [@chendave](https://github.com/chendave)) +- Kubeadm: now supports image repository format validation. ([#112732](https://github.com/kubernetes/kubernetes/pull/112732), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: sub-phases are now able to support the dry-run mode, e.g. kubeadm reset phase cleanup-node --dry-run ([#112945](https://github.com/kubernetes/kubernetes/pull/112945), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle] +- Kubeadm: tried to load CA cert from external CertificateAuthority file when CertificateAuthorityData is empty for existing kubeconfig. ([#111783](https://github.com/kubernetes/kubernetes/pull/111783), [@SataQiu](https://github.com/SataQiu)) +- Kubectl shell completions for the bash shell now include descriptions. ([#113636](https://github.com/kubernetes/kubernetes/pull/113636), [@marckhouzam](https://github.com/marckhouzam)) +- Kubernetes is now built with Go 1.19.1 ([#112287](https://github.com/kubernetes/kubernetes/pull/112287), [@palnabarun](https://github.com/palnabarun)) [SIG Release and Testing] +- Kubernetes is now built with Go 1.19.2 ([#112900](https://github.com/kubernetes/kubernetes/pull/112900), [@xmudrii](https://github.com/xmudrii)) [SIG Release and Testing] +- Kubernetes is now built with Go `1.19.3`. ([#113550](https://github.com/kubernetes/kubernetes/pull/113550), [@xmudrii](https://github.com/xmudrii)) +- Logs of requests that were timed out by a timeout handler no longer contain a `statusStack` and `logging error output` fields. ([#112374](https://github.com/kubernetes/kubernetes/pull/112374), [@Argh4k](https://github.com/Argh4k)) +- Metrics for `RetroactiveDefaultStorageClass` feature are now available. To see an attempt count for updating PVC retroactively with a default StorageClass see `retroactive_storageclass_total` metric and for total numer of errors see `retroactive_storageclass_errors_total`. ([#113323](https://github.com/kubernetes/kubernetes/pull/113323), [@RomanBednar](https://github.com/RomanBednar)) +- Promoted `kubectl alpha events` to `kubectl events`. ([#113819](https://github.com/kubernetes/kubernetes/pull/113819), [@soltysh](https://github.com/soltysh)) +- Promoting `WindowsHostProcessContainers` to stable. ([#113476](https://github.com/kubernetes/kubernetes/pull/113476), [@marosset](https://github.com/marosset)) +- Scheduler now retries updating a pod's status on `ServiceUnavailable` and `InternalError` errors, in addition to `net.ConnectionRefused` error. ([#111809](https://github.com/kubernetes/kubernetes/pull/111809), [@Huang-Wei](https://github.com/Huang-Wei)) +- Shell completion now shows plugin names when appropriate. Furthermore, shell completion will work for plugins that provide such support. ([#105867](https://github.com/kubernetes/kubernetes/pull/105867), [@marckhouzam](https://github.com/marckhouzam)) +- Switched kubectl to use `github.com/russross/blackfriday/v2` ([#112731](https://github.com/kubernetes/kubernetes/pull/112731), [@pacoxu](https://github.com/pacoxu)) +- The ExpandedDNSConfig feature has graduated to beta and is enabled by default. Note that this feature requires container runtime support. ([#112824](https://github.com/kubernetes/kubernetes/pull/112824), [@gjkim42](https://github.com/gjkim42)) [SIG Network and Testing] +- The `LegacyServiceAccountTokenNoAutoGeneration` feature gate was promoted to GA. ([#112838](https://github.com/kubernetes/kubernetes/pull/112838), [@zshihang](https://github.com/zshihang)) +- The `ProxyTerminatingEndpoints` feature is now Beta and enabled by default. When enabled, kube-proxy will attempt to route traffic to terminating pods when the traffic policy is `Local` and there are only terminating pods remaining on a node. ([#113363](https://github.com/kubernetes/kubernetes/pull/113363), [@andrewsykim](https://github.com/andrewsykim)) +- The `goroutines` metric is newly added in the scheduler. + It replaces `scheduler_goroutines` metric and it counts the number of goroutine in more places than `scheduler_goroutine` does. ([#112003](https://github.com/kubernetes/kubernetes/pull/112003), [@sanposhiho](https://github.com/sanposhiho)) [SIG Instrumentation and Scheduling] +- Updated `cAdvisor` to `v0.46.0`. ([#113769](https://github.com/kubernetes/kubernetes/pull/113769), [@bobbypage](https://github.com/bobbypage)) +- Updated the Lease identity naming format for the `APIServerIdentity` feature to use a persistent name. ([#113307](https://github.com/kubernetes/kubernetes/pull/113307), [@andrewsykim](https://github.com/andrewsykim)) +- When `ComponentSLIs` feature gate is enabled, `/metrics/slis` becomes available on kube-scheduler, allowing you to scrape health check metrics. ([#113026](https://github.com/kubernetes/kubernetes/pull/113026), [@Richabanker](https://github.com/Richabanker)) +- When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on `kube-proxy` allowing you to scrape health check metrics. ([#113057](https://github.com/kubernetes/kubernetes/pull/113057), [@Richabanker](https://github.com/Richabanker)) +- When `ComponentSLIs` feature gate is enabled, then `/metrics/slis` becomes available on kube-controller-manager, allowing you to scrape health check metrics. ([#112978](https://github.com/kubernetes/kubernetes/pull/112978), [@logicalhan](https://github.com/logicalhan)) +- When the alpha `LegacyServiceAccountTokenTracking` feature gate is enabled, secret-based service account tokens will have a `kubernetes.io/legacy-token-last-used` applied to them containing the date they were last used. ([#108858](https://github.com/kubernetes/kubernetes/pull/108858), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth and Testing] +- `CSRDuration` feature gate that graduated to GA in 1.24 and is unconditionally + enabled now removed in v1.26. + ([#112386](https://github.com/kubernetes/kubernetes/pull/112386), [@Shubham82](https://github.com/Shubham82)) +- `kubectl config view` now automatically redacts any secret fields marked with a `datapolicy` tag. ([#109189](https://github.com/kubernetes/kubernetes/pull/109189), [@mpuckett159](https://github.com/mpuckett159)) + +### Documentation + +- Clarified the default CFS quota period as being 100µs and not 100ms. ([#111554](https://github.com/kubernetes/kubernetes/pull/111554), [@paskal](https://github.com/paskal)) [SIG Node] + +### Bug or Regression + +- '`kubectl apply`: Added a warning that "`kubectl apply` will no longer prune + non-namespaced resources by default when used with the --namespace flag in + a future release".' + ([#110907](https://github.com/kubernetes/kubernetes/pull/110907), [@pacoxu](https://github.com/pacoxu)) +- Added back unused flags on `kubectl run` command, which did not go through the required deprecation period before being removed. ([#112243](https://github.com/kubernetes/kubernetes/pull/112243), [@brianpursley](https://github.com/brianpursley)) +- Added support for RSA and ECDSA format keys in preflight check on `kubeadm`. ([#112508](https://github.com/kubernetes/kubernetes/pull/112508), [@SataQiu](https://github.com/SataQiu)) +- Allowed `Label` section in vSphere e2e cloud provider configuration. ([#112427](https://github.com/kubernetes/kubernetes/pull/112427), [@gnufied](https://github.com/gnufied)) +- Apiserver `/healthz/etcd` endpoint rate limits the number of forwarded health check requests to the etcd backends, answering with the last known state if the rate limit is exceeded. The rate limit is based on 1/2 of the timeout configured, with no burst allowed. ([#112046](https://github.com/kubernetes/kubernetes/pull/112046), [@aojea](https://github.com/aojea)) +- Apiserver: used the correct error when logging errors updating managedFields. ([#113711](https://github.com/kubernetes/kubernetes/pull/113711), [@andrewsykim](https://github.com/andrewsykim)) +- Avoided propagating hosts `search .` into containers in `/etc/resolv.conf`. ([#112157](https://github.com/kubernetes/kubernetes/pull/112157), [@dghubble](https://github.com/dghubble)) +- 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)) +- Bumped `runc` to `v1.1.4`. ([#113719](https://github.com/kubernetes/kubernetes/pull/113719), [@pacoxu](https://github.com/pacoxu)) +- Callers using `DelegatingAuthenticationOptions` can now use `DisableAnonymous` to disable Anonymous authentication. ([#112181](https://github.com/kubernetes/kubernetes/pull/112181), [@xueqzhan](https://github.com/xueqzhan)) +- Changed error message when resource is not supported by given patch type in `kubectl patch`. ([#112556](https://github.com/kubernetes/kubernetes/pull/112556), [@ardaguclu](https://github.com/ardaguclu)) +- Correct the calculating error in `podTopologySpread` plugin to avoid unexpected scheduling results. ([#112507](https://github.com/kubernetes/kubernetes/pull/112507), [@kerthcet](https://github.com/kerthcet)) +- Etcd: Updated to v3.5.5. ([#112489](https://github.com/kubernetes/kubernetes/pull/112489), [@dims](https://github.com/dims)) +- Fixed Admission controllers that caused unnecessary significant load on `apiserver'. ([#112696](https://github.com/kubernetes/kubernetes/pull/112696), [@aimuz](https://github.com/aimuz)) +- Fixed `DaemonSet` to update the status even if it fails to create a pod. ([#112127](https://github.com/kubernetes/kubernetes/pull/112127), [@gjkim42](https://github.com/gjkim42)) +- Fixed a bug where a change in the `appProtocol` for a Service did not trigger a load balancer update. ([#112785](https://github.com/kubernetes/kubernetes/pull/112785), [@MartinForReal](https://github.com/MartinForReal)) [SIG Cloud Provider and Network] +- Fixed a bug where the kubelet choose the wrong container by its name when running `kubectl exec`. ([#113041](https://github.com/kubernetes/kubernetes/pull/113041), [@saschagrunert](https://github.com/saschagrunert)) +- Fixed an ephemeral port exhaustion bug caused by improper connection management that occurred when a large number of objects were handled by `kubectl` while exec auth was in use. ([#112017](https://github.com/kubernetes/kubernetes/pull/112017), [@enj](https://github.com/enj)) +- Fixed an issue in `winkernel` proxier that causes proxy rules to leak anytime service backends are modified. ([#112837](https://github.com/kubernetes/kubernetes/pull/112837), [@daschott](https://github.com/daschott)) +- Fixed bug in `kubectl rollout history` where only the latest revision was displayed when a specific revision was requested and an output format was specified. ([#111093](https://github.com/kubernetes/kubernetes/pull/111093), [@brianpursley](https://github.com/brianpursley)) +- Fixed bug where dry run message was not printed when running `kubectl label` with `--dry-run` flag. ([#111571](https://github.com/kubernetes/kubernetes/pull/111571), [@brianpursley](https://github.com/brianpursley)) +- Fixed code to ensure that pods running on nodes tainted with `NoExecute` continue to run when the `PodDisruptionConditions` feature gate is enabled. ([#112518](https://github.com/kubernetes/kubernetes/pull/112518), [@mimowo](https://github.com/mimowo)) +- Fixed cost estimation of token creation request for service account in Priority and Fairness. ([#113206](https://github.com/kubernetes/kubernetes/pull/113206), [@marseel](https://github.com/marseel)) +- Fixed issue where the APIServer would panic on startup if an egress selector without a controlplane configuration is specified when using APIServerTracing. ([#112979](https://github.com/kubernetes/kubernetes/pull/112979), [@dashpole](https://github.com/dashpole)) +- Fixed 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)) +- Fixed race condition in GCE between containerized mounter setup in the kubelet. ([#112195](https://github.com/kubernetes/kubernetes/pull/112195), [@mattcary](https://github.com/mattcary)) +- Fixed relative CPU priority for pods where containers explicitly request zero cpu by giving the lowest priority instead of falling back to the cpu limit to avoid possible cpu starvation of other pods. ([#108832](https://github.com/kubernetes/kubernetes/pull/108832), [@waynepeking348](https://github.com/waynepeking348)) +- Fixed that disruption controller used to change the status of a stale disruption condition after 2 min when the `PodDisruptionConditions` feature gate is enabled. ([#113580](https://github.com/kubernetes/kubernetes/pull/113580), [@mimowo](https://github.com/mimowo)) +- Fixed the `PodAndContainerStatsFromCRI` feature, instead of supplementing with stats from cAdvisor. ([#113291](https://github.com/kubernetes/kubernetes/pull/113291), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Fixed the occasional double-counting of the `job_finished_total` metric. ([#112948](https://github.com/kubernetes/kubernetes/pull/112948), [@mimowo](https://github.com/mimowo)) +- For `kubectl`, `--server-side` now migrates ownership of all fields used by client-side-apply to the specified `--fieldmanager`. This prevents fields previously specified using kubectl from being able to live outside of server-side-apply's management and become undeleteable. ([#112905](https://github.com/kubernetes/kubernetes/pull/112905), [@alexzielenski](https://github.com/alexzielenski)) +- 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 change modified that behavior to ensure it is only called once per volume per node. ([#112403](https://github.com/kubernetes/kubernetes/pull/112403), [@akankshakumari393](https://github.com/akankshakumari393)) +- Improved `kubectl` display of invalid request errors returned by the API server. ([#112150](https://github.com/kubernetes/kubernetes/pull/112150), [@liggitt](https://github.com/liggitt)) +- In 'kube-apiserver`,`x-kubernetes-list-type` validation is now enforced when updating status of custom resources.' ([#111866](https://github.com/kubernetes/kubernetes/pull/111866), [@pacoxu](https://github.com/pacoxu)) +- In `kube-apiserver`, custom resources can now be specified in the `--encryption-provider-config` file and can be encrypted in etcd. ([#113015](https://github.com/kubernetes/kubernetes/pull/113015), [@ritazh](https://github.com/ritazh)) +- Increased the maximum backoff delay of the endpointslice controller to match the expected sequence of delays when syncing Services. ([#112353](https://github.com/kubernetes/kubernetes/pull/112353), [@dgrisonnet](https://github.com/dgrisonnet)) +- Known issue: Job field `.spec.podFailurePolicy.rules[*].onExitCode` might be ignored if the Pod is deleted before it terminates. ([#113856](https://github.com/kubernetes/kubernetes/pull/113856), [@alculquicondor](https://github.com/alculquicondor)) +- 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)) +- Kube-apiserver: redirect responses are no longer returned from backends by default. Set `--aggregator-reject-forwarding-redirect=false` to continue forwarding redirect responses. ([#112193](https://github.com/kubernetes/kubernetes/pull/112193), [@jindijamie](https://github.com/jindijamie)) [SIG API Machinery and Testing] +- Kube-apiserver: redirects from backend API servers are no longer followed when checking availability with requests to `/apis/$group/$version` ([#112772](https://github.com/kubernetes/kubernetes/pull/112772), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Testing] +- Kube-apiserver: resolved a regression that treated `304 Not Modified` responses from aggregated API servers as internal errors. ([#112526](https://github.com/kubernetes/kubernetes/pull/112526), [@liggitt](https://github.com/liggitt)) +- Kube-proxy no longer falls back from ipvs mode to iptables mode if you ask it to do ipvs but the system is not correctly configured. Instead, it will just exit with an error. ([#111806](https://github.com/kubernetes/kubernetes/pull/111806), [@danwinship](https://github.com/danwinship)) [SIG Network] +- Kube-scheduler: added taints filtering logic consistent with `TaintToleration` plugin for `PodTopologySpread` plugin. ([#112357](https://github.com/kubernetes/kubernetes/pull/112357), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm will cleanup the stale data on best effort basis. Stale data will be removed when each reset phase are executed, default etcd data directory will be cleanup when the `remove-etcd-member` phase are executed. ([#110972](https://github.com/kubernetes/kubernetes/pull/110972), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle] +- Kubeadm: fixed a bug when performing validation on `ClusterConfiguration` networking fields. ([#112751](https://github.com/kubernetes/kubernetes/pull/112751), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: when a sub command is needed but not provided for a kubeadm command, print a help screen instead of showing a short message. ([#111277](https://github.com/kubernetes/kubernetes/pull/111277), [@chymy](https://github.com/chymy)) +- Kubectl: fixed a bug where `kubectl convert` did not pick the right API version ([#112700](https://github.com/kubernetes/kubernetes/pull/112700), [@SataQiu](https://github.com/SataQiu)) +- Kubelet now cleans up the Node's cloud node IP annotation correctly if you + stop using `--node-ip`. (In particular, this fixes the problem where people who + were unnecessarily using `--node-ip` with an external cloud provider in 1.23, + and then running into problems with 1.24, could not fix the problem by just + removing the unnecessary `--node-ip` from the kubelet arguments, because + that wouldn't remove the annotation that caused the problems.) ([#112184](https://github.com/kubernetes/kubernetes/pull/112184), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] +- Kubelet: Fixed a startup crash in devicemanager. ([#113021](https://github.com/kubernetes/kubernetes/pull/113021), [@rphillips](https://github.com/rphillips)) +- Kubelet: fixed log spam from kubelet_getters.go `Path does not exist`. ([#112650](https://github.com/kubernetes/kubernetes/pull/112650), [@rphillips](https://github.com/rphillips)) +- Kubelet: fixed nil pointer in reflector start for standalone mode. ([#113501](https://github.com/kubernetes/kubernetes/pull/113501), [@pacoxu](https://github.com/pacoxu)) +- Kubelet: when there are multi option lines in /etc/resolv.conf, merge all options into one line in a pod with the `Default` DNS policy. ([#112414](https://github.com/kubernetes/kubernetes/pull/112414), [@pacoxu](https://github.com/pacoxu)) [SIG Network and Node] +- Log messages and metrics for the watch cache are now keyed by `<resource>.<group>` instead of `go` struct type. This means e.g. that `*v1.Pod` becomes `pods`. Additionally, resources that come from `CustomResourceDefinitions` are displayed as the correct resource and group, instead of `*unstructured.Unstructured`. ([#111807](https://github.com/kubernetes/kubernetes/pull/111807), [@ncdc](https://github.com/ncdc)) +- Moved `LocalStorageCapacityIsolationFSQuotaMonitoring` back to Alpha. ([#112076](https://github.com/kubernetes/kubernetes/pull/112076), [@rphillips](https://github.com/rphillips)) +- NOTE ([#113749](https://github.com/kubernetes/kubernetes/pull/113749), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery] +- Nested `MountPoints` are now grouped correctly on all cases. ([#112571](https://github.com/kubernetes/kubernetes/pull/112571), [@claudiubelu](https://github.com/claudiubelu)) +- Pod failed in scheduling due to expected error will be updated with the reason of `SchedulerError` rather than `Unschedulable`. ([#111999](https://github.com/kubernetes/kubernetes/pull/111999), [@kerthcet](https://github.com/kerthcet)) +- Pod logs using `--timestamps` are not broken up with timestamps anymore. ([#113481](https://github.com/kubernetes/kubernetes/pull/113481), [@rphillips](https://github.com/rphillips)) +- Removed raising an error when setting an annotation with the same value, just ignore it. ([#109505](https://github.com/kubernetes/kubernetes/pull/109505), [@zigarn](https://github.com/zigarn)) +- Resolved an issue that caused winkernel proxier to treat stale VIPs as valid. ([#113521](https://github.com/kubernetes/kubernetes/pull/113521), [@daschott](https://github.com/daschott)) +- The `ResourceVersion` returned in objects from delete responses is now consistent with the `ResourceVersion` contained in the delete watch event. ([#113369](https://github.com/kubernetes/kubernetes/pull/113369), [@wojtek-t](https://github.com/wojtek-t)) +- The `kube-scheduler` and `kube-controller-manager` now use server side apply to set conditions related to pod disruption. ([#113304](https://github.com/kubernetes/kubernetes/pull/113304), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps and Scheduling] +- The errors in `k8s.io/apimachinery/pkg/api/meta` now support for the `stdlibs` `errors.Is` matching, including when wrapped. ([#111808](https://github.com/kubernetes/kubernetes/pull/111808), [@alvaroaleman](https://github.com/alvaroaleman)) +- The metrics `etcd_request_duration_seconds` and `etcd_bookmark_counts` now differentiate by group resource instead of object type, allowing unique entries per `CustomResourceDefinition`, instead of grouping them all under `*unstructured.Unstructured`. ([#112042](https://github.com/kubernetes/kubernetes/pull/112042), [@ncdc](https://github.com/ncdc)) +- The pod admission error message was improved for usability. ([#112644](https://github.com/kubernetes/kubernetes/pull/112644), [@vitorfhc](https://github.com/vitorfhc)) [SIG Node] +- The time duration of a failed or unschedulable scheduling attempt will be longer, it + now includes the time duration of the unreserve operation. ([#113113](https://github.com/kubernetes/kubernetes/pull/113113), [@kerthcet](https://github.com/kerthcet)) +- Updated `kube-proxy` to restart in case it detects that the Node assigned `pod.Spec.PodCIDRs` have changed. ([#111344](https://github.com/kubernetes/kubernetes/pull/111344), [@aojea](https://github.com/aojea)) +- Updated creation of `LoadBalancer` services, for there to be fewer AWS security group rules in most cases. ([#112267](https://github.com/kubernetes/kubernetes/pull/112267), [@sjenning](https://github.com/sjenning)) +- Updated the system-validators library to v1.8.0 ([#112026](https://github.com/kubernetes/kubernetes/pull/112026), [@pacoxu](https://github.com/pacoxu)) +- Updates `golang.org/x/text`` to `v0.3.8`` to fix CVE-2022-32149 ([#112989](https://github.com/kubernetes/kubernetes/pull/112989), [@ameukam](https://github.com/ameukam)) +- Volume mount cleanup now considers only plugin directory and not the entire kubelet root ([#112607](https://github.com/kubernetes/kubernetes/pull/112607), [@mattcary](https://github.com/mattcary)) +- `kubectl` now escapes terminal special characters in output. This fixes CVE-2021-25743. + ([#112553](https://github.com/kubernetes/kubernetes/pull/112553), [@dgl](https://github.com/dgl)) + +### Other (Cleanup or Flake) + +- 'Promoted `cronjob_job_creation_skew` metric to stable to follow the cronjob v2 controller, + the following metrics had their name updated to match metrics API guidelines: + - `cronjob_job_creation_skew_duration_seconds` -> `job_creation_skew_duration_seconds`.' ([#113008](https://github.com/kubernetes/kubernetes/pull/113008), [@soltysh](https://github.com/soltysh)) +- 'Promoted job-related metrics to stable to follow IndexedJobs GA. The following metrics have their name updated to match metrics API guidelines: + - `job_sync_total` -> `job_syncs_total` + - `job_finished_total` -> `jobs_finished_total`' ([#113010](https://github.com/kubernetes/kubernetes/pull/113010), [@soltysh](https://github.com/soltysh)) +- '`kubelet_kubelet_credential_provider_plugin_duration` was renamed to `kubelet_credential_provider_plugin_duration` + and `kubelet_kubelet_credential_provider_plugin_errors` was renamed to `kubelet_credential_provider_plugin_errors`.' + ([#113754](https://github.com/kubernetes/kubernetes/pull/113754), [@logicalhan](https://github.com/logicalhan)) +- A new API server flag `--encryption-provider-config-automatic-reload` was added to control when the encryption config should be automatically reloaded without needing to restart the server. All KMS plugins are now merged into a single healthz check at `/healthz/kms-providers` when reload is enabled, or when only KMS v2 plugins are used. ([#113529](https://github.com/kubernetes/kubernetes/pull/113529), [@enj](https://github.com/enj)) +- Added a `--prune-allowlist` flag that can be used with `kubectl apply --prune`. This flag now replaces and functions the same as the `--prune-whitelist` flag, which has been deprecated. ([#113116](https://github.com/kubernetes/kubernetes/pull/113116), [@brianpursley](https://github.com/brianpursley)) +- Added a `kubernetes_feature_enabled` metric which will tell you if a feature is enabled. ([#112652](https://github.com/kubernetes/kubernetes/pull/112652), [@logicalhan](https://github.com/logicalhan)) +- Deprecated the following kubectl run flags, which are ignored if set: `--cascade`, `--filename`, `--force`, `--grace-period`, `--kustomize`, `--recursive`, `--timeout`, `--wait`. ([#112261](https://github.com/kubernetes/kubernetes/pull/112261), [@brianpursley](https://github.com/brianpursley)) +- Dropped support for the Container Runtime Interface (CRI) version `v1alpha2`, which means that container runtimes just have to implement `v1`. ([#110618](https://github.com/kubernetes/kubernetes/pull/110618), [@saschagrunert](https://github.com/saschagrunert)) +- E2e: tests can now register callbacks with `ginkgo.BeforeEach`, `ginkgo.AfterEach` or `ginkgo.DeferCleanup` directly after creating a framework instance and are guaranteed that their code is called after the framework is initialized and before it gets cleaned up. `ginkgo.DeferCleanup` replaces `f.AddAfterEach` and `AddCleanupAction` which got removed to simplify the framework. ([#111998](https://github.com/kubernetes/kubernetes/pull/111998), [@pohly](https://github.com/pohly)) +- Introduce `ComponentSLIs` alpha feature-gate for component SLIs metrics endpoint. ([#112884](https://github.com/kubernetes/kubernetes/pull/112884), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery] +- Kube scheduler Component Config release version v1beta3 is deprecated in v1.26 and will be removed in v1.29, + also v1beta2 will be removed in v1.28. ([#112257](https://github.com/kubernetes/kubernetes/pull/112257), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling] +- Kube-scheduler: the `DefaultPodTopologySpread`, `NonPreemptingPriority`, `PodAffinityNamespaceSelector` and `PreferNominatedNode` feature gates that graduated to GA in v1.24 and were unconditionally enabled have been removed in v1.26. ([#112567](https://github.com/kubernetes/kubernetes/pull/112567), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: removed the `UnversionedKubeletConfigMap` feature gate. The feature has been GA and locked to enabled since `v1.25`. ([#113448](https://github.com/kubernetes/kubernetes/pull/113448), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: removed the toleration for the `node-role.kubernetes.io/master` taint from the CoreDNS deployment of `kubeadm`. With the 1.25 release of kubeadm the taint `node-role.kubernetes.io/master` is no longer applied to control plane nodes and the toleration for it can be removed with the release of 1.26. You can also perform the same toleration removal from your own addon manifests. ([#112008](https://github.com/kubernetes/kubernetes/pull/112008), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: removed the usage of the `--container-runtime=remote` flag for the kubelet during kubeadm init/join/upgrade. The flag value `remote` had been the only possible value since `dockershim` was removed from the kubelet. ([#112000](https://github.com/kubernetes/kubernetes/pull/112000), [@pacoxu](https://github.com/pacoxu)) +- Locked `ServerSideApply` feature gate to true with the feature already being GA. ([#112748](https://github.com/kubernetes/kubernetes/pull/112748), [@wojtek-t](https://github.com/wojtek-t)) +- NoneNone ([#111533](https://github.com/kubernetes/kubernetes/pull/111533), [@zhoumingcheng](https://github.com/zhoumingcheng)) [SIG CLI] +- Refactored `test/e2e/framework` so that the core framework is smaller. Optional functionality like resource monitoring, log size monitoring, metrics gathering and debug information dumping must be imported by specific e2e test suites. Init packages are provided which can be imported to re-enable the functionality that traditionally was in the core framework. If you have code that no longer compiles because of this PR, you can use the script [from a commit message](https://github.com/kubernetes/kubernetes/pull/112043/commits/dfdf88d4faafa6fd39988832ea0ef6d668f490e9) to update that code. ([#112043](https://github.com/kubernetes/kubernetes/pull/112043), [@pohly](https://github.com/pohly)) +- Release-note ([#111708](https://github.com/kubernetes/kubernetes/pull/111708), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Apps, Instrumentation and Network] +- Removed `PodOverhead` feature gate as the feature is in GA since `v1.24`. ([#112579](https://github.com/kubernetes/kubernetes/pull/112579), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) +- Removing Windows Server, Version 20H2 flavors from various container images. ([#112924](https://github.com/kubernetes/kubernetes/pull/112924), [@marosset](https://github.com/marosset)) +- Renamed the feature gate for CEL in Admission Control to `ValidatingAdmissionPolicy`. ([#113735](https://github.com/kubernetes/kubernetes/pull/113735), [@cici37](https://github.com/cici37)) +- Reworded log message upon image garbage collection failure to be more clear. ([#112631](https://github.com/kubernetes/kubernetes/pull/112631), [@tzneal](https://github.com/tzneal)) [SIG Node] +- Scheduler dumper now exposes a summary to indicate the number of pending pods in each internal queue. ([#111726](https://github.com/kubernetes/kubernetes/pull/111726), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG Scheduling and Testing] +- Service session affinity timeout tests are no longer required for Kubernetes network plugin conformance due to variations in existing implementations. New conformance tests will be developed to better express conformance in future releases. ([#112806](https://github.com/kubernetes/kubernetes/pull/112806), [@dcbw](https://github.com/dcbw)) [SIG Architecture, Network and Testing] +- The `IndexedJob` and `SuspendJob` feature gates that graduated to GA in 1.24 and were unconditionally enabled have been removed in v1.26. ([#112589](https://github.com/kubernetes/kubernetes/pull/112589), [@SataQiu](https://github.com/SataQiu)) +- The `e2e.test` binary no longer emits JSON structs to document progress. ([#113212](https://github.com/kubernetes/kubernetes/pull/113212), [@pohly](https://github.com/pohly)) +- The in-tree cloud provider for OpenStack (and the cinder volume provider) has been removed. Please use the external cloud provider and csi driver from [cloud-provider-openstack](https://github.com/kubernetes/cloud-provider-openstack) instead. ([#67782](https://github.com/kubernetes/kubernetes/pull/67782), [@dims](https://github.com/dims)) +- The metric `etcd_db_total_size_in_bytes` is renamed to `apiserver_storage_db_total_size_in_bytes`. ([#113310](https://github.com/kubernetes/kubernetes/pull/113310), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery] +- Updated `cri-tools` to [v1.25.0](https://github.com/kubernetes-sigs/cri-tools/releases/tag/v1.25.0). ([#112058](https://github.com/kubernetes/kubernetes/pull/112058), [@saschagrunert](https://github.com/saschagrunert)) - `GlusterFS` in-tree storage driver which was deprecated in kubernetes 1.25 release is now removed entirely in 1.26. ([#112015](https://github.com/kubernetes/kubernetes/pull/112015), [@humblec](https://github.com/humblec)) \ No newline at end of file diff --git a/releases/release-1.26/release-notes/sessions/maps-1663864374.json b/releases/release-1.26/release-notes/sessions/maps-1663864374.json index 9e0ce150e19..a3b8a400079 100644 --- a/releases/release-1.26/release-notes/sessions/maps-1663864374.json +++ b/releases/release-1.26/release-notes/sessions/maps-1663864374.json @@ -1,19 +1,19 @@ -{ - "mail": "rodomar@outlook.com", - "name": "Rodolfo Martínez Vega", - "date": 1663864374, - "prs": [ - { - "nr": 112526, - "hash": "6a379206ecb59226d5032d9c8826fa0f8b93f272" - }, - { - "nr": 112046, - "hash": "2fd5c7e2afd8f868da8372210638447456941ae8" - }, - { - "nr": 112309, - "hash": "541f764475f32f904f1a9df84b9aab356e220920" - } - ] +{ + "mail": "rodomar@outlook.com", + "name": "Rodolfo Martínez Vega", + "date": 1663864374, + "prs": [ + { + "nr": 112526, + "hash": "6a379206ecb59226d5032d9c8826fa0f8b93f272" + }, + { + "nr": 112046, + "hash": "2fd5c7e2afd8f868da8372210638447456941ae8" + }, + { + "nr": 112309, + "hash": "541f764475f32f904f1a9df84b9aab356e220920" + } + ] } \ No newline at end of file diff --git a/releases/release-1.26/release-notes/sessions/maps-1663929908.json b/releases/release-1.26/release-notes/sessions/maps-1663929908.json index 273150e71e9..ba26a547e84 100644 --- a/releases/release-1.26/release-notes/sessions/maps-1663929908.json +++ b/releases/release-1.26/release-notes/sessions/maps-1663929908.json @@ -1,95 +1,95 @@ -{ - "mail": "harshnar@cisco.com", - "name": "Harsha Narayana", - "date": 1663929908, - "prs": [ - { - "nr": 111520, - "hash": "612b4e4065fef1ccdce165d85625458f3f2b5e59" - }, - { - "nr": 111936, - "hash": "014578c546e82e6be22332f452309d6fded5c211" - }, - { - "nr": 112150, - "hash": "3fe8917c341e9bed85015b490f8099f5fd489756" - }, - { - "nr": 112076, - "hash": "64e3f5b4b31ab3b01cb90fb6ae8fa29b60fe7273" - }, - { - "nr": 111554, - "hash": "507d49a10fdfedb0700769d7000657508491fe56" - }, - { - "nr": 111381, - "hash": "53e828e9e3b9fd6c714caa4a9af519c29963a04b" - }, - { - "nr": 112403, - "hash": "9c066d4a6692eadc5d2d343c0b256e80c9f187bd" - }, - { - "nr": 111808, - "hash": "9ad29a69ba7d514a996f01de5341eac9e7829d6c" - }, - { - "nr": 112526, - "hash": "6a379206ecb59226d5032d9c8826fa0f8b93f272" - }, - { - "nr": 112341, - "hash": "069f758e35330f2071cc2166d31ba88fb4848545" - }, - { - "nr": 112181, - "hash": "21e4f352b45793d5dca16140365330587713ab84" - }, - { - "nr": 112193, - "hash": "bedc6e38eaf314d1021ae221edfb5fe167488a84" - }, - { - "nr": 112243, - "hash": "db2f2f53d8df30b267630725fe0ea20fc949fd65" - }, - { - "nr": 112008, - "hash": "a87d43c01cabe348bfbeba4358582efbe7ac5222" - }, - { - "nr": 112556, - "hash": "0ee2c4dd493f00c7e02c08d7d2eeee2851ac86e0" - }, - { - "nr": 112015, - "hash": "e202b5a0dc84065e64cbf7a3f1bd72a6a0623b46" - }, - { - "nr": 112123, - "hash": "e19a221601689ef0d5eb413b54314196cacd800e" - }, - { - "nr": 111998, - "hash": "7b5b8bb826284c9a3030c9dc4a0028ef41d74341" - }, - { - "nr": 112567, - "hash": "60110529660b16ba93023f34efe29fb99b87301a" - }, - { - "nr": 112017, - "hash": "339ea3f6882d23dde31efd8ce340a97eedb6771a" - }, - { - "nr": 112172, - "hash": "c24e556e4e38eea3cc303c390b18ee9b84e649f1" - }, - { - "nr": 112557, - "hash": "06326c7cf0c47bc318bfb441069ab049a5504589" - } - ] +{ + "mail": "harshnar@cisco.com", + "name": "Harsha Narayana", + "date": 1663929908, + "prs": [ + { + "nr": 111520, + "hash": "612b4e4065fef1ccdce165d85625458f3f2b5e59" + }, + { + "nr": 111936, + "hash": "014578c546e82e6be22332f452309d6fded5c211" + }, + { + "nr": 112150, + "hash": "3fe8917c341e9bed85015b490f8099f5fd489756" + }, + { + "nr": 112076, + "hash": "64e3f5b4b31ab3b01cb90fb6ae8fa29b60fe7273" + }, + { + "nr": 111554, + "hash": "507d49a10fdfedb0700769d7000657508491fe56" + }, + { + "nr": 111381, + "hash": "53e828e9e3b9fd6c714caa4a9af519c29963a04b" + }, + { + "nr": 112403, + "hash": "9c066d4a6692eadc5d2d343c0b256e80c9f187bd" + }, + { + "nr": 111808, + "hash": "9ad29a69ba7d514a996f01de5341eac9e7829d6c" + }, + { + "nr": 112526, + "hash": "6a379206ecb59226d5032d9c8826fa0f8b93f272" + }, + { + "nr": 112341, + "hash": "069f758e35330f2071cc2166d31ba88fb4848545" + }, + { + "nr": 112181, + "hash": "21e4f352b45793d5dca16140365330587713ab84" + }, + { + "nr": 112193, + "hash": "bedc6e38eaf314d1021ae221edfb5fe167488a84" + }, + { + "nr": 112243, + "hash": "db2f2f53d8df30b267630725fe0ea20fc949fd65" + }, + { + "nr": 112008, + "hash": "a87d43c01cabe348bfbeba4358582efbe7ac5222" + }, + { + "nr": 112556, + "hash": "0ee2c4dd493f00c7e02c08d7d2eeee2851ac86e0" + }, + { + "nr": 112015, + "hash": "e202b5a0dc84065e64cbf7a3f1bd72a6a0623b46" + }, + { + "nr": 112123, + "hash": "e19a221601689ef0d5eb413b54314196cacd800e" + }, + { + "nr": 111998, + "hash": "7b5b8bb826284c9a3030c9dc4a0028ef41d74341" + }, + { + "nr": 112567, + "hash": "60110529660b16ba93023f34efe29fb99b87301a" + }, + { + "nr": 112017, + "hash": "339ea3f6882d23dde31efd8ce340a97eedb6771a" + }, + { + "nr": 112172, + "hash": "c24e556e4e38eea3cc303c390b18ee9b84e649f1" + }, + { + "nr": 112557, + "hash": "06326c7cf0c47bc318bfb441069ab049a5504589" + } + ] } \ No newline at end of file diff --git a/releases/release-1.26/release-notes/sessions/maps-1665672047.json b/releases/release-1.26/release-notes/sessions/maps-1665672047.json index c10b301fee2..9665a653340 100644 --- a/releases/release-1.26/release-notes/sessions/maps-1665672047.json +++ b/releases/release-1.26/release-notes/sessions/maps-1665672047.json @@ -1,183 +1,183 @@ -{ - "mail": "harshnar@cisco.com", - "name": "Harsha Narayana", - "date": 1665672047, - "prs": [ - { - "nr": 112672, - "hash": "7e6f496ca4d2c6bd721c8f5e953ebde585a838db" - }, - { - "nr": 112652, - "hash": "a17ec4205bbb939ad2f69af4d561d3bed1ba791c" - }, - { - "nr": 112489, - "hash": "ba62ba8120d74e958090b1cc95fd37eef8d4af76" - }, - { - "nr": 112299, - "hash": "6caa8aeecfdef5b9237bfb73636982136292b45d" - }, - { - "nr": 112650, - "hash": "810a2b5c888899c1340021787fd0edf7f1db5a83" - }, - { - "nr": 112000, - "hash": "65f73372dfc600bae3a7e3ad327345a2ba7a794b" - }, - { - "nr": 112797, - "hash": "ebfc640d2fc4b87934c65ebc81c4c175f5c49989" - }, - { - "nr": 112518, - "hash": "ce4ce7ccbf9a9d5760e0f8cc025de12483eea518" - }, - { - "nr": 112589, - "hash": "a5cadf36a29456bb23eb4091ebcf288526f78b93" - }, - { - "nr": 111277, - "hash": "599773a19ebf1b4c5a062d4876ef9de825144a6a" - }, - { - "nr": 111999, - "hash": "efc322aaa43fdf83a0d21159b51dfe5245f85d04" - }, - { - "nr": 111806, - "hash": "09def59f6ff76979df2bd15c2d7d897ea2f0ad5f" - }, - { - "nr": 111726, - "hash": "f60759470fa6026aa1a12488d930355968ba8246" - }, - { - "nr": 112353, - "hash": "6961ea53d47044d0d7b80ecb7b3543b8ac699165" - }, - { - "nr": 112884, - "hash": "b0208c464e0210adad0966084e38e43bf5a34748" - }, - { - "nr": 112837, - "hash": "d28e92a6e88e14454fb35a12aeef45727eeb6987" - }, - { - "nr": 112631, - "hash": "d0c11d45ded3fe5edd7ffea2c96044b0d9af870c" - }, - { - "nr": 112414, - "hash": "dceca9566995874fc953265b69721a9c65592b02" - }, - { - "nr": 112120, - "hash": "0d3cc07e4bb6820d88a7a2cbf07b4bc51b299eca" - }, - { - "nr": 112357, - "hash": "acd25a38f859b1ef3af0b928b95de01f542fce6b" - }, - { - "nr": 112437, - "hash": "b10b485f5b31932d3841496799c4e87e84fddda3" - }, - { - "nr": 112042, - "hash": "14c4fa68ac5d2347e88d81674f399a1e463ce47c" - }, - { - "nr": 112751, - "hash": "d241f624158fdab5c892153663b72cef607a1409" - }, - { - "nr": 110972, - "hash": "2deb02cc35ecd1473692bbef5892d33aa4ef1861" - }, - { - "nr": 111093, - "hash": "3cc54a62ba0934cc4fdfa6776bfc35d8029f92e0" - }, - { - "nr": 112900, - "hash": "12071c0bf25688bdb19e5e12de8ebc527dfb8187" - }, - { - "nr": 112184, - "hash": "8d12bd2aa1497b02c395e614b51286b118b02ded" - }, - { - "nr": 112741, - "hash": "fbe4de64d240d0b421964ae337f681aec227c37b" - }, - { - "nr": 111533, - "hash": "bbb1140d77449f6f08102c3619bba0be395a941c" - }, - { - "nr": 112195, - "hash": "3f8e6c12d10012dd557210f9d49d285a61e8b51d" - }, - { - "nr": 112542, - "hash": "8d780c5ba9e12269299c13544ccb952b1143a736" - }, - { - "nr": 107896, - "hash": "f89562c7d244244109da4dbae4cde0a13bc306de" - }, - { - "nr": 112748, - "hash": "cc20ce5517dc4b786a7a001f8777423d53a4d480" - }, - { - "nr": 112607, - "hash": "6d7e3e6dffe8ec59cbf3d76811126444f13bc814" - }, - { - "nr": 112545, - "hash": "a0dcd500f15c09b15767b9a0e21674a4ef58852a" - }, - { - "nr": 111333, - "hash": "46ddb7a5ada6c8f611eef33cbe1617f61c99d0f9" - }, - { - "nr": 110695, - "hash": "2c9ea2ee8a67453e07b0082afd58cc54410800b9" - }, - { - "nr": 112026, - "hash": "df8011c8e75082f1f4de768f467904803e76a886" - }, - { - "nr": 111458, - "hash": "70177dbc3d82804e2758931b5508d2060472ca10" - }, - { - "nr": 111752, - "hash": "adf20db99cac5b8bddc9d575b83712b926829f7d" - }, - { - "nr": 111379, - "hash": "5a1fde6f4a57817ce9d968055a88f0017c5812cf" - }, - { - "nr": 112732, - "hash": "793a062c057d593d78a19e79930194277df016f5" - }, - { - "nr": 112003, - "hash": "6450f5e63c6bb6a921f7193597aace2148e30f96" - }, - { - "nr": 112257, - "hash": "8ca2a2d836fd203a69d4585fba839864e619f485" - } - ] +{ + "mail": "harshnar@cisco.com", + "name": "Harsha Narayana", + "date": 1665672047, + "prs": [ + { + "nr": 112672, + "hash": "7e6f496ca4d2c6bd721c8f5e953ebde585a838db" + }, + { + "nr": 112652, + "hash": "a17ec4205bbb939ad2f69af4d561d3bed1ba791c" + }, + { + "nr": 112489, + "hash": "ba62ba8120d74e958090b1cc95fd37eef8d4af76" + }, + { + "nr": 112299, + "hash": "6caa8aeecfdef5b9237bfb73636982136292b45d" + }, + { + "nr": 112650, + "hash": "810a2b5c888899c1340021787fd0edf7f1db5a83" + }, + { + "nr": 112000, + "hash": "65f73372dfc600bae3a7e3ad327345a2ba7a794b" + }, + { + "nr": 112797, + "hash": "ebfc640d2fc4b87934c65ebc81c4c175f5c49989" + }, + { + "nr": 112518, + "hash": "ce4ce7ccbf9a9d5760e0f8cc025de12483eea518" + }, + { + "nr": 112589, + "hash": "a5cadf36a29456bb23eb4091ebcf288526f78b93" + }, + { + "nr": 111277, + "hash": "599773a19ebf1b4c5a062d4876ef9de825144a6a" + }, + { + "nr": 111999, + "hash": "efc322aaa43fdf83a0d21159b51dfe5245f85d04" + }, + { + "nr": 111806, + "hash": "09def59f6ff76979df2bd15c2d7d897ea2f0ad5f" + }, + { + "nr": 111726, + "hash": "f60759470fa6026aa1a12488d930355968ba8246" + }, + { + "nr": 112353, + "hash": "6961ea53d47044d0d7b80ecb7b3543b8ac699165" + }, + { + "nr": 112884, + "hash": "b0208c464e0210adad0966084e38e43bf5a34748" + }, + { + "nr": 112837, + "hash": "d28e92a6e88e14454fb35a12aeef45727eeb6987" + }, + { + "nr": 112631, + "hash": "d0c11d45ded3fe5edd7ffea2c96044b0d9af870c" + }, + { + "nr": 112414, + "hash": "dceca9566995874fc953265b69721a9c65592b02" + }, + { + "nr": 112120, + "hash": "0d3cc07e4bb6820d88a7a2cbf07b4bc51b299eca" + }, + { + "nr": 112357, + "hash": "acd25a38f859b1ef3af0b928b95de01f542fce6b" + }, + { + "nr": 112437, + "hash": "b10b485f5b31932d3841496799c4e87e84fddda3" + }, + { + "nr": 112042, + "hash": "14c4fa68ac5d2347e88d81674f399a1e463ce47c" + }, + { + "nr": 112751, + "hash": "d241f624158fdab5c892153663b72cef607a1409" + }, + { + "nr": 110972, + "hash": "2deb02cc35ecd1473692bbef5892d33aa4ef1861" + }, + { + "nr": 111093, + "hash": "3cc54a62ba0934cc4fdfa6776bfc35d8029f92e0" + }, + { + "nr": 112900, + "hash": "12071c0bf25688bdb19e5e12de8ebc527dfb8187" + }, + { + "nr": 112184, + "hash": "8d12bd2aa1497b02c395e614b51286b118b02ded" + }, + { + "nr": 112741, + "hash": "fbe4de64d240d0b421964ae337f681aec227c37b" + }, + { + "nr": 111533, + "hash": "bbb1140d77449f6f08102c3619bba0be395a941c" + }, + { + "nr": 112195, + "hash": "3f8e6c12d10012dd557210f9d49d285a61e8b51d" + }, + { + "nr": 112542, + "hash": "8d780c5ba9e12269299c13544ccb952b1143a736" + }, + { + "nr": 107896, + "hash": "f89562c7d244244109da4dbae4cde0a13bc306de" + }, + { + "nr": 112748, + "hash": "cc20ce5517dc4b786a7a001f8777423d53a4d480" + }, + { + "nr": 112607, + "hash": "6d7e3e6dffe8ec59cbf3d76811126444f13bc814" + }, + { + "nr": 112545, + "hash": "a0dcd500f15c09b15767b9a0e21674a4ef58852a" + }, + { + "nr": 111333, + "hash": "46ddb7a5ada6c8f611eef33cbe1617f61c99d0f9" + }, + { + "nr": 110695, + "hash": "2c9ea2ee8a67453e07b0082afd58cc54410800b9" + }, + { + "nr": 112026, + "hash": "df8011c8e75082f1f4de768f467904803e76a886" + }, + { + "nr": 111458, + "hash": "70177dbc3d82804e2758931b5508d2060472ca10" + }, + { + "nr": 111752, + "hash": "adf20db99cac5b8bddc9d575b83712b926829f7d" + }, + { + "nr": 111379, + "hash": "5a1fde6f4a57817ce9d968055a88f0017c5812cf" + }, + { + "nr": 112732, + "hash": "793a062c057d593d78a19e79930194277df016f5" + }, + { + "nr": 112003, + "hash": "6450f5e63c6bb6a921f7193597aace2148e30f96" + }, + { + "nr": 112257, + "hash": "8ca2a2d836fd203a69d4585fba839864e619f485" + } + ] } \ No newline at end of file diff --git a/releases/release-1.26/release-notes/sessions/maps-1666211958.json b/releases/release-1.26/release-notes/sessions/maps-1666211958.json index ae8ca93c9f5..3943363cf57 100644 --- a/releases/release-1.26/release-notes/sessions/maps-1666211958.json +++ b/releases/release-1.26/release-notes/sessions/maps-1666211958.json @@ -1,47 +1,47 @@ -{ - "mail": "ii.sayantani.ii@gmail.com", - "name": "sayantani11", - "date": 1666211958, - "prs": [ - { - "nr": 111420, - "hash": "0ba606f2bc91ff6cb5f13dfd0a222b72efa23b5f" - }, - { - "nr": 111910, - "hash": "7bfd87c45a64530550cba1afac9c08045be43e54" - }, - { - "nr": 67782, - "hash": "5ed75368696fb4034300ab0ecc356ef9d68b09af" - }, - { - "nr": 108832, - "hash": "b93863ae74ee0391763bd51859ef6f8e0ab4d28b" - }, - { - "nr": 111708, - "hash": "f895174955ec1792a003b20b3b728a40ffd51eba" - }, - { - "nr": 112427, - "hash": "19988abd84b96da094e30508e52dbf641f7355b5" - }, - { - "nr": 112386, - "hash": "11c1fa119b2b6e34d18a9d1239b3cc92005e6bcc" - }, - { - "nr": 112157, - "hash": "11552850e3f04cf35f1d4db852b24ee4a2e35d49" - }, - { - "nr": 111783, - "hash": "71037c319b4dcf4bcc6942ffca81b596e57532c1" - }, - { - "nr": 111758, - "hash": "684f4c42cd6741e90d7e927343cb16d93e0422b1" - } - ] +{ + "mail": "ii.sayantani.ii@gmail.com", + "name": "sayantani11", + "date": 1666211958, + "prs": [ + { + "nr": 111420, + "hash": "0ba606f2bc91ff6cb5f13dfd0a222b72efa23b5f" + }, + { + "nr": 111910, + "hash": "7bfd87c45a64530550cba1afac9c08045be43e54" + }, + { + "nr": 67782, + "hash": "5ed75368696fb4034300ab0ecc356ef9d68b09af" + }, + { + "nr": 108832, + "hash": "b93863ae74ee0391763bd51859ef6f8e0ab4d28b" + }, + { + "nr": 111708, + "hash": "f895174955ec1792a003b20b3b728a40ffd51eba" + }, + { + "nr": 112427, + "hash": "19988abd84b96da094e30508e52dbf641f7355b5" + }, + { + "nr": 112386, + "hash": "11c1fa119b2b6e34d18a9d1239b3cc92005e6bcc" + }, + { + "nr": 112157, + "hash": "11552850e3f04cf35f1d4db852b24ee4a2e35d49" + }, + { + "nr": 111783, + "hash": "71037c319b4dcf4bcc6942ffca81b596e57532c1" + }, + { + "nr": 111758, + "hash": "684f4c42cd6741e90d7e927343cb16d93e0422b1" + } + ] } \ No newline at end of file diff --git a/releases/release-1.26/release-notes/sessions/maps-1668162889.json b/releases/release-1.26/release-notes/sessions/maps-1668162889.json index 279ea17c1d5..181a8bbaf66 100644 --- a/releases/release-1.26/release-notes/sessions/maps-1668162889.json +++ b/releases/release-1.26/release-notes/sessions/maps-1668162889.json @@ -1,23 +1,23 @@ -{ - "mail": "laxmikantpandhare@gmail.com", - "name": "laxmikantbpandhare", - "date": 1668162889, - "prs": [ - { - "nr": 113146, - "hash": "92106ff42c17b0789b86a273c7708994faeb82db" - }, - { - "nr": 113519, - "hash": "18b8f8622a08ccc2ca6dd806ccc37b6f2b029432" - }, - { - "nr": 111908, - "hash": "cc5c53fbfba604677344fb955682c82a6c78f4ff" - }, - { - "nr": 112556, - "hash": "0ee2c4dd493f00c7e02c08d7d2eeee2851ac86e0" - } - ] +{ + "mail": "laxmikantpandhare@gmail.com", + "name": "laxmikantbpandhare", + "date": 1668162889, + "prs": [ + { + "nr": 113146, + "hash": "92106ff42c17b0789b86a273c7708994faeb82db" + }, + { + "nr": 113519, + "hash": "18b8f8622a08ccc2ca6dd806ccc37b6f2b029432" + }, + { + "nr": 111908, + "hash": "cc5c53fbfba604677344fb955682c82a6c78f4ff" + }, + { + "nr": 112556, + "hash": "0ee2c4dd493f00c7e02c08d7d2eeee2851ac86e0" + } + ] } \ No newline at end of file diff --git a/releases/release-1.26/release-notes/sessions/maps-1668289772.json b/releases/release-1.26/release-notes/sessions/maps-1668289772.json index a1e8fe0e97e..a61dfdb247b 100644 --- a/releases/release-1.26/release-notes/sessions/maps-1668289772.json +++ b/releases/release-1.26/release-notes/sessions/maps-1668289772.json @@ -1,299 +1,299 @@ -{ - "mail": "AnaMMedina21@gmail.com", - "name": "Ana Medina", - "date": 1668289772, - "prs": [ - { - "nr": 112855, - "hash": "4f596eb0790f0875b75abae071d74351d70de95d" - }, - { - "nr": 112731, - "hash": "cbe4c75fcc2ded17eec28904d0e45518913df6b3" - }, - { - "nr": 113041, - "hash": "8c3b0c3f1e66d3073bf4518b774d89433c7583d6" - }, - { - "nr": 113026, - "hash": "c95ea377b817b348a6de263de399b39084b730c7" - }, - { - "nr": 112806, - "hash": "11d0cd061aec0ad0c83662ee4eabad642bfe3c3a" - }, - { - "nr": 110559, - "hash": "0ac061214562572a7507856e222829ec6015b425" - }, - { - "nr": 112979, - "hash": "0b2b121aeac2a754976a8c8e86e9bc1b9e071ed5" - }, - { - "nr": 112907, - "hash": "b0233e910ec3bfbaae148481bfa0402b69cbed0e" - }, - { - "nr": 112200, - "hash": "3ff1860253f99cf2d727862fe84bdaedccd0fdfd" - }, - { - "nr": 108501, - "hash": "ad79ab92cef1a9da362bfef4e5a5081002970953" - }, - { - "nr": 112133, - "hash": "699d23a601fd908cb5b098bf2eb2578336236b7f" - }, - { - "nr": 111807, - "hash": "142cf38c1eee5ed2a477462d9eba99bbfce39588" - }, - { - "nr": 105867, - "hash": "8ed2d0a056df6b5c7b425eae32c7fee00c4223f3" - }, - { - "nr": 112521, - "hash": "0e9df5bb37065e3a8d2d2da83094cbd2d459e067" - }, - { - "nr": 112374, - "hash": "698078a44b9437f70da96364d83f667f92e4242d" - }, - { - "nr": 110498, - "hash": "feaf6c5eaefa6847978ab7bc79c7224bd605c1dc" - }, - { - "nr": 112643, - "hash": "4b580cc8484af4acb1d235a73d097b0af7768feb" - }, - { - "nr": 111866, - "hash": "270aa918ffdce1cb506f2b4a1761483f62e3c3de" - }, - { - "nr": 112287, - "hash": "cbef334beb78db3cbbb1c33465132d7e8f1f803f" - }, - { - "nr": 112183, - "hash": "dfdea30ac30feae7a1e3ee0c631b00548cd7ac3c" - }, - { - "nr": 113015, - "hash": "337ffb53a57b757c90c76c587c025ff662acabd5" - }, - { - "nr": 112824, - "hash": "c25c0b4d83b823fe97d70a5708fd27830233be1e" - }, - { - "nr": 112508, - "hash": "8bf59582a6bc9a3ac6ba885a67aba6d504089bec" - }, - { - "nr": 113113, - "hash": "6ed17219539852b1f073cec9a848dc98c433de20" - }, - { - "nr": 112671, - "hash": "686001ac8fc24dad28995ad92ec6a3ea838fab2d" - }, - { - "nr": 111973, - "hash": "deb72a28c58436e6e079aa2c103485603c30986c" - }, - { - "nr": 113304, - "hash": "aa1f8b97731b33126821518694def3d621b7b8ec" - }, - { - "nr": 113005, - "hash": "866bdc848267a544732b6d2d95f7463c5e7ec7e1" - }, - { - "nr": 111571, - "hash": "25e630fb230bf93faefcd6ea46557864a48c69a8" - }, - { - "nr": 113324, - "hash": "8934fa3a1f3019641e9ec2433a60ba9e5ff3f5a0" - }, - { - "nr": 113323, - "hash": "43b288750a75e79339b4c9bec5a475d543206803" - }, - { - "nr": 113133, - "hash": "49266c484c48aa64f59564c591467b9cbc789fca" - }, - { - "nr": 112989, - "hash": "4fe122590c79ec525f89b85256d614e1993ceb9e" - }, - { - "nr": 86139, - "hash": "4a8a99c9e0e9823a497ff463b7b546ae32fb9ddc" - }, - { - "nr": 112700, - "hash": "eb1b2361099d7f1e5481e815c49d2b069f7c19b9" - }, - { - "nr": 112785, - "hash": "c67a8c920636094b3ea43ab8d409075b83a8e8b5" - }, - { - "nr": 113030, - "hash": "6d9af65d1048cc608fe8108dc996560d0fa7b9fe" - }, - { - "nr": 108858, - "hash": "ae9f9d892ffae057986a700fad6171b0ee13cf3e" - }, - { - "nr": 112924, - "hash": "dadb9f1ba69bc879891920b5931d1e6076be49c7" - }, - { - "nr": 111809, - "hash": "3cc6ad56efb2179e3319c7c254bc85d6414457c0" - }, - { - "nr": 113172, - "hash": "eaf990484b0019ab185884ee57acbde2d823618d" - }, - { - "nr": 112163, - "hash": "1fd7c6dbe3bcdaa634b1239916256081d32b3b8e" - }, - { - "nr": 111096, - "hash": "e0a3971cf853b92be25473ae67cccd35608032c5" - }, - { - "nr": 113198, - "hash": "1c6931a33c8443707fe2145576844e569605042e" - }, - { - "nr": 112553, - "hash": "0d748a25fb39a3ef16a1fbbdf9d11d0c2975b4e5" - }, - { - "nr": 112948, - "hash": "61d32c9dda26b0f10f48cf19dfcb2a81bbee0b7c" - }, - { - "nr": 112267, - "hash": "4535f26f795a0613b026f585227747b9874a9f91" - }, - { - "nr": 112792, - "hash": "16900450f2b3b03f00eb757b7fedb3d1747df6e0" - }, - { - "nr": 112644, - "hash": "600b3b53b4b7dcba0bd387bf50e3f29ca627a348" - }, - { - "nr": 112507, - "hash": "a02ce699eec7e2f445625a4a8b38372cf67c6c28" - }, - { - "nr": 111616, - "hash": "5b5ab92ce7f35f6650b44dcf2c4a82dccdbe21b6" - }, - { - "nr": 112043, - "hash": "d29e82a9f553f44db8f1454da086e37a19906dc0" - }, - { - "nr": 112306, - "hash": "d7fe8a8efddda3d793bb2b35ad45fe9f1a61fb27" - }, - { - "nr": 111512, - "hash": "b914ff8cee281ebd724d4d58339c7041fdaee942" - }, - { - "nr": 113057, - "hash": "f3fbfa6c17db3f7d33337c0025a356c9068c4dfd" - }, - { - "nr": 112772, - "hash": "403295169b876849109b8a98d128a25e4c6509dd" - }, - { - "nr": 112577, - "hash": "f6fe0b64f03be403887e58dfe0ae6e5a7de9ed26" - }, - { - "nr": 112696, - "hash": "e394ba401e5949d18477e8ab782f2ff381e02cd9" - }, - { - "nr": 113176, - "hash": "ee503a024f4c1a4220bb22e67cf9c4a3c69a1549" - }, - { - "nr": 112939, - "hash": "863d3e99eec01ef47c68fea14ec8e5b88b1450fd" - }, - { - "nr": 112571, - "hash": "237433ad995df6178e420aa5a7f8a4653e7eeda7" - }, - { - "nr": 112690, - "hash": "f1d56c97c0353d4acc3a098daed341ebe312f129" - }, - { - "nr": 113448, - "hash": "d07e35f0eb206cd43e3d1c21de3ef8384908ac14" - }, - { - "nr": 112693, - "hash": "5db77ed0daf0015e95cf799b9f0e7cfe592af103" - }, - { - "nr": 112058, - "hash": "91cc55d351c13e06c62b73025f97de5c61d5ac26" - }, - { - "nr": 109525, - "hash": "225c8b767e7adfb0ea14f5655383b63ebfd28a65" - }, - { - "nr": 113310, - "hash": "6c9a0618ef6c3dd53bd6c899dcb8a701efb1853c" - }, - { - "nr": 111344, - "hash": "7366c2d480abe1ee2dff9092a28aa1302215b969" - }, - { - "nr": 112978, - "hash": "073aaeee84d3aebfb81f15209c0725675c73b1a7" - }, - { - "nr": 112945, - "hash": "336b69a662935f4d570d8673f71907024133c2c5" - }, - { - "nr": 113212, - "hash": "b887f054568b0fdaa14ffbbcaa064db37224935e" - }, - { - "nr": 112579, - "hash": "b7828d286893d9aca8e55a84a0f244b77949cd24" - }, - { - "nr": 112580, - "hash": "414c0f16ae62c84e62a549aa2cda7537d405dea0" - } - ] +{ + "mail": "AnaMMedina21@gmail.com", + "name": "Ana Medina", + "date": 1668289772, + "prs": [ + { + "nr": 112855, + "hash": "4f596eb0790f0875b75abae071d74351d70de95d" + }, + { + "nr": 112731, + "hash": "cbe4c75fcc2ded17eec28904d0e45518913df6b3" + }, + { + "nr": 113041, + "hash": "8c3b0c3f1e66d3073bf4518b774d89433c7583d6" + }, + { + "nr": 113026, + "hash": "c95ea377b817b348a6de263de399b39084b730c7" + }, + { + "nr": 112806, + "hash": "11d0cd061aec0ad0c83662ee4eabad642bfe3c3a" + }, + { + "nr": 110559, + "hash": "0ac061214562572a7507856e222829ec6015b425" + }, + { + "nr": 112979, + "hash": "0b2b121aeac2a754976a8c8e86e9bc1b9e071ed5" + }, + { + "nr": 112907, + "hash": "b0233e910ec3bfbaae148481bfa0402b69cbed0e" + }, + { + "nr": 112200, + "hash": "3ff1860253f99cf2d727862fe84bdaedccd0fdfd" + }, + { + "nr": 108501, + "hash": "ad79ab92cef1a9da362bfef4e5a5081002970953" + }, + { + "nr": 112133, + "hash": "699d23a601fd908cb5b098bf2eb2578336236b7f" + }, + { + "nr": 111807, + "hash": "142cf38c1eee5ed2a477462d9eba99bbfce39588" + }, + { + "nr": 105867, + "hash": "8ed2d0a056df6b5c7b425eae32c7fee00c4223f3" + }, + { + "nr": 112521, + "hash": "0e9df5bb37065e3a8d2d2da83094cbd2d459e067" + }, + { + "nr": 112374, + "hash": "698078a44b9437f70da96364d83f667f92e4242d" + }, + { + "nr": 110498, + "hash": "feaf6c5eaefa6847978ab7bc79c7224bd605c1dc" + }, + { + "nr": 112643, + "hash": "4b580cc8484af4acb1d235a73d097b0af7768feb" + }, + { + "nr": 111866, + "hash": "270aa918ffdce1cb506f2b4a1761483f62e3c3de" + }, + { + "nr": 112287, + "hash": "cbef334beb78db3cbbb1c33465132d7e8f1f803f" + }, + { + "nr": 112183, + "hash": "dfdea30ac30feae7a1e3ee0c631b00548cd7ac3c" + }, + { + "nr": 113015, + "hash": "337ffb53a57b757c90c76c587c025ff662acabd5" + }, + { + "nr": 112824, + "hash": "c25c0b4d83b823fe97d70a5708fd27830233be1e" + }, + { + "nr": 112508, + "hash": "8bf59582a6bc9a3ac6ba885a67aba6d504089bec" + }, + { + "nr": 113113, + "hash": "6ed17219539852b1f073cec9a848dc98c433de20" + }, + { + "nr": 112671, + "hash": "686001ac8fc24dad28995ad92ec6a3ea838fab2d" + }, + { + "nr": 111973, + "hash": "deb72a28c58436e6e079aa2c103485603c30986c" + }, + { + "nr": 113304, + "hash": "aa1f8b97731b33126821518694def3d621b7b8ec" + }, + { + "nr": 113005, + "hash": "866bdc848267a544732b6d2d95f7463c5e7ec7e1" + }, + { + "nr": 111571, + "hash": "25e630fb230bf93faefcd6ea46557864a48c69a8" + }, + { + "nr": 113324, + "hash": "8934fa3a1f3019641e9ec2433a60ba9e5ff3f5a0" + }, + { + "nr": 113323, + "hash": "43b288750a75e79339b4c9bec5a475d543206803" + }, + { + "nr": 113133, + "hash": "49266c484c48aa64f59564c591467b9cbc789fca" + }, + { + "nr": 112989, + "hash": "4fe122590c79ec525f89b85256d614e1993ceb9e" + }, + { + "nr": 86139, + "hash": "4a8a99c9e0e9823a497ff463b7b546ae32fb9ddc" + }, + { + "nr": 112700, + "hash": "eb1b2361099d7f1e5481e815c49d2b069f7c19b9" + }, + { + "nr": 112785, + "hash": "c67a8c920636094b3ea43ab8d409075b83a8e8b5" + }, + { + "nr": 113030, + "hash": "6d9af65d1048cc608fe8108dc996560d0fa7b9fe" + }, + { + "nr": 108858, + "hash": "ae9f9d892ffae057986a700fad6171b0ee13cf3e" + }, + { + "nr": 112924, + "hash": "dadb9f1ba69bc879891920b5931d1e6076be49c7" + }, + { + "nr": 111809, + "hash": "3cc6ad56efb2179e3319c7c254bc85d6414457c0" + }, + { + "nr": 113172, + "hash": "eaf990484b0019ab185884ee57acbde2d823618d" + }, + { + "nr": 112163, + "hash": "1fd7c6dbe3bcdaa634b1239916256081d32b3b8e" + }, + { + "nr": 111096, + "hash": "e0a3971cf853b92be25473ae67cccd35608032c5" + }, + { + "nr": 113198, + "hash": "1c6931a33c8443707fe2145576844e569605042e" + }, + { + "nr": 112553, + "hash": "0d748a25fb39a3ef16a1fbbdf9d11d0c2975b4e5" + }, + { + "nr": 112948, + "hash": "61d32c9dda26b0f10f48cf19dfcb2a81bbee0b7c" + }, + { + "nr": 112267, + "hash": "4535f26f795a0613b026f585227747b9874a9f91" + }, + { + "nr": 112792, + "hash": "16900450f2b3b03f00eb757b7fedb3d1747df6e0" + }, + { + "nr": 112644, + "hash": "600b3b53b4b7dcba0bd387bf50e3f29ca627a348" + }, + { + "nr": 112507, + "hash": "a02ce699eec7e2f445625a4a8b38372cf67c6c28" + }, + { + "nr": 111616, + "hash": "5b5ab92ce7f35f6650b44dcf2c4a82dccdbe21b6" + }, + { + "nr": 112043, + "hash": "d29e82a9f553f44db8f1454da086e37a19906dc0" + }, + { + "nr": 112306, + "hash": "d7fe8a8efddda3d793bb2b35ad45fe9f1a61fb27" + }, + { + "nr": 111512, + "hash": "b914ff8cee281ebd724d4d58339c7041fdaee942" + }, + { + "nr": 113057, + "hash": "f3fbfa6c17db3f7d33337c0025a356c9068c4dfd" + }, + { + "nr": 112772, + "hash": "403295169b876849109b8a98d128a25e4c6509dd" + }, + { + "nr": 112577, + "hash": "f6fe0b64f03be403887e58dfe0ae6e5a7de9ed26" + }, + { + "nr": 112696, + "hash": "e394ba401e5949d18477e8ab782f2ff381e02cd9" + }, + { + "nr": 113176, + "hash": "ee503a024f4c1a4220bb22e67cf9c4a3c69a1549" + }, + { + "nr": 112939, + "hash": "863d3e99eec01ef47c68fea14ec8e5b88b1450fd" + }, + { + "nr": 112571, + "hash": "237433ad995df6178e420aa5a7f8a4653e7eeda7" + }, + { + "nr": 112690, + "hash": "f1d56c97c0353d4acc3a098daed341ebe312f129" + }, + { + "nr": 113448, + "hash": "d07e35f0eb206cd43e3d1c21de3ef8384908ac14" + }, + { + "nr": 112693, + "hash": "5db77ed0daf0015e95cf799b9f0e7cfe592af103" + }, + { + "nr": 112058, + "hash": "91cc55d351c13e06c62b73025f97de5c61d5ac26" + }, + { + "nr": 109525, + "hash": "225c8b767e7adfb0ea14f5655383b63ebfd28a65" + }, + { + "nr": 113310, + "hash": "6c9a0618ef6c3dd53bd6c899dcb8a701efb1853c" + }, + { + "nr": 111344, + "hash": "7366c2d480abe1ee2dff9092a28aa1302215b969" + }, + { + "nr": 112978, + "hash": "073aaeee84d3aebfb81f15209c0725675c73b1a7" + }, + { + "nr": 112945, + "hash": "336b69a662935f4d570d8673f71907024133c2c5" + }, + { + "nr": 113212, + "hash": "b887f054568b0fdaa14ffbbcaa064db37224935e" + }, + { + "nr": 112579, + "hash": "b7828d286893d9aca8e55a84a0f244b77949cd24" + }, + { + "nr": 112580, + "hash": "414c0f16ae62c84e62a549aa2cda7537d405dea0" + } + ] } \ No newline at end of file diff --git a/releases/release-1.26/release-notes/sessions/maps-1669239784.json b/releases/release-1.26/release-notes/sessions/maps-1669239784.json index bb0ab498232..b26b2806617 100644 --- a/releases/release-1.26/release-notes/sessions/maps-1669239784.json +++ b/releases/release-1.26/release-notes/sessions/maps-1669239784.json @@ -1,315 +1,315 @@ -{ - "mail": "rodomar@outlook.com", - "name": "Rodolfo Martínez Vega", - "date": 1669239784, - "prs": [ - { - "nr": 113369, - "hash": "354b12adabe255f91e7b7f0f6a869247c042ab5f" - }, - { - "nr": 113360, - "hash": "8acc9eb521c72ff650c47fa782846893cf35c1d2" - }, - { - "nr": 113710, - "hash": "376ddbedd5ad020c6999fd4ccd93fefcc38da5a7" - }, - { - "nr": 113274, - "hash": "afa4a3c3a86dd616593081414b1b4fc2433bc08f" - }, - { - "nr": 113225, - "hash": "e0d9ed88b9115f664e5fc96bcccf860687413066" - }, - { - "nr": 113171, - "hash": "7fa1fcf1afbac0b8292a2b35dc6463f6110ce4fc" - }, - { - "nr": 113160, - "hash": "8a5a9c9ecd2f33d479d4074a89b0964a11b191a2" - }, - { - "nr": 113329, - "hash": "ab59cd79eda8291675ea385d4e8d1acde317ec77" - }, - { - "nr": 113206, - "hash": "037406745352d85ae6a411a86bbdddc96757c557" - }, - { - "nr": 109189, - "hash": "6ba5e5e80a956453dd799a30bdbfa1d7a35685f4" - }, - { - "nr": 113275, - "hash": "eb4d1b8a2bd5242a485a194751ff1f7b7be1f9a8" - }, - { - "nr": 113008, - "hash": "94eb0adfcce10ac35788c2ce581fb849db61d3d0" - }, - { - "nr": 113186, - "hash": "e5a99b19bc624ff0d75c4465a2ffc8c17102b617" - }, - { - "nr": 113749, - "hash": "b81a37ab2fcb49b6d99986c2cfba7d1039ea0f0b" - }, - { - "nr": 113485, - "hash": "324f14a6d322de2278a352d73b32b71443b6794e" - }, - { - "nr": 111879, - "hash": "d1c1ca77a147ee691a9d17eac425db9239b17810" - }, - { - "nr": 113629, - "hash": "aee3355f7ceec77f7853a63318553fcddec379cc" - }, - { - "nr": 112011, - "hash": "8e35da9e8aca96c0f0daeccab65ab1fa0b719d8a" - }, - { - "nr": 112980, - "hash": "fe3f9da541c051922efc082737fab0691d25d0bd" - }, - { - "nr": 113501, - "hash": "0818fb248042ef2ec63a08de200c909d3c8f9ff4" - }, - { - "nr": 112360, - "hash": "b6fd0edbaabf635087f954c08c9b1a8bada85c75" - }, - { - "nr": 111930, - "hash": "02d67cb924c6769079632c0baae66cd8112ec5a7" - }, - { - "nr": 112895, - "hash": "b15ad0969083d7dc31f6597905a1f3d1c591b01f" - }, - { - "nr": 113609, - "hash": "c5e05181dbbfd2428f209d4351ed9f5fcf16171b" - }, - { - "nr": 113491, - "hash": "6a9587739ad8ce08d55468417d8edfdbd5a3ed3b" - }, - { - "nr": 108250, - "hash": "79195ea8cb61e8aa444f167cded8695fc62637a9" - }, - { - "nr": 113856, - "hash": "e9bc045dcf534768f364f2ae45511883c8069be8" - }, - { - "nr": 113521, - "hash": "d0a5d229be388e970c32a2694db412c805031cc2" - }, - { - "nr": 111023, - "hash": "730c836c7073f7401703d063c739679ab0b3ae36" - }, - { - "nr": 112679, - "hash": "292eb0e244bc5359aad6341609d2eb58ed7021b9" - }, - { - "nr": 113476, - "hash": "9ddc50c84de91be87b0c1bb61a77c511fb1b0478" - }, - { - "nr": 112914, - "hash": "8d4b7055ece36e333bcf7b0b45b7f3eb66007a3a" - }, - { - "nr": 110268, - "hash": "88146ea0be6e5dfce12d16d9f548bb9a5df987bb" - }, - { - "nr": 113596, - "hash": "d65d20d46b42c214f9324758bdd2ba716806582c" - }, - { - "nr": 113496, - "hash": "44aff93495f44456365bd81f79e2fe6049171edc" - }, - { - "nr": 109505, - "hash": "18e51dd61136ea9eaa19c2fae404f3c4b8f63a54" - }, - { - "nr": 113217, - "hash": "0e849ceb70dc3da35d163f7d8f15237fa2d39efc" - }, - { - "nr": 113819, - "hash": "310c3836a20fd14acce2a800c32cf74f8a54fa46" - }, - { - "nr": 113351, - "hash": "e72841a7ab17b3a79bc34efd221e746f9c796cc7" - }, - { - "nr": 113550, - "hash": "8345b6dd8cdf9604877c964889b05cf863335786" - }, - { - "nr": 113340, - "hash": "65c3856cf4446c8b34d78ed74950c4600c33b611" - }, - { - "nr": 113010, - "hash": "a64e06132bc156dc5f9639df20cf6036aba62563" - }, - { - "nr": 113711, - "hash": "bfb215c74944992de3de6fcc968ba654992a660c" - }, - { - "nr": 113544, - "hash": "0f6b89da35a747eadea124fc8f4c93cede5a3e33" - }, - { - "nr": 113636, - "hash": "404a94a2618bda6cd3f97b30ecc557ea5f6f8b62" - }, - { - "nr": 113021, - "hash": "a16bc465c00b928887f4e25f225583c9525bae4c" - }, - { - "nr": 113116, - "hash": "e6e31370f41b5ce8c3bfcbb6b2c4deb3e52ee34e" - }, - { - "nr": 113511, - "hash": "9d4d8819051c6a61bbf39a7f0e6c1517ba402956" - }, - { - "nr": 113363, - "hash": "b7a908ec4e2b5ef7f8b07080916de81c9e4f0b13" - }, - { - "nr": 112838, - "hash": "7fef34a1909b9ad35b34c4c17fc28cc5f9693ce5" - }, - { - "nr": 112261, - "hash": "3fb73437bbdd45a336cf01150eb0de4e519347c3" - }, - { - "nr": 113015, - "hash": "f9fa0305f98a6d08304085dae624c72d54121cd8" - }, - { - "nr": 110618, - "hash": "e3fc69d1c64156462486e5e62d782ddee747a50e" - }, - { - "nr": 113699, - "hash": "8e6b3dd32a1f08cbaf59f400d81625378665f947" - }, - { - "nr": 113510, - "hash": "ebb6b1b4d2957bdaa6f7d520fcad001e8e525d33" - }, - { - "nr": 103177, - "hash": "1ae95a6b28d09642722d970fa6235b29f5231293" - }, - { - "nr": 113735, - "hash": "56ec5a3bb8caa2d68e10f7cfdca2aa7e6b66c491" - }, - { - "nr": 113754, - "hash": "3e76ecb90d290e122a30d02a1c7af626ecdc2119" - }, - { - "nr": 113291, - "hash": "17d0648af9a65d3af6681abc0e05f72320a0fedd" - }, - { - "nr": 110907, - "hash": "644f7b6b8bb9c3610d3499dd419db32566e794bb" - }, - { - "nr": 113314, - "hash": "06a96009f1b611cadad3b9436826376c57022566" - }, - { - "nr": 113018, - "hash": "82cac6d50c2edcbb1c80b0ad3a909fbe32a8d7ee" - }, - { - "nr": 113529, - "hash": "0ba1c03b1b6a737cb9f76656421a06904baacfe4" - }, - { - "nr": 113769, - "hash": "a1429257a7dd9813c89f2457417bbe135685bdfe" - }, - { - "nr": 113719, - "hash": "c7f59b8987a23f813f383513e6ac5557cc39b886" - }, - { - "nr": 113307, - "hash": "22dd991b8d7d92599d43d87b9b981c1763c7ba0d" - }, - { - "nr": 111384, - "hash": "1202817c76d78c6f3b952033d9a13806fcceb2c8" - }, - { - "nr": 113500, - "hash": "5b696c327b82168486adc0f9694f3da149bcd1c6" - }, - { - "nr": 112744, - "hash": "87dd0ba455ba9d7508c01a9e73a76886ec303423" - }, - { - "nr": 112961, - "hash": "6ed4d60a442602c4fc144581804eeb0ed57562df" - }, - { - "nr": 113375, - "hash": "8dbd55edba646b73cf613b9ad090ceaacde06683" - }, - { - "nr": 113336, - "hash": "ac4165e1e396b4a2b3428daad09fdbb79f6bc623" - }, - { - "nr": 113580, - "hash": "7d015fdfe3ca24a71efe8a017c8ab09df46251b4" - }, - { - "nr": 113481, - "hash": "b5036e72c927732a791651972eb000152c3993e2" - }, - { - "nr": 112905, - "hash": "3b2f568f54470c6e0f14e6bad357d770f4582f7e" - }, - { - "nr": 113697, - "hash": "ad129317000595aa0c1bef20e9e3e5e9ea9bb1c0" - }, - { - "nr": 112127, - "hash": "94b5247f54cce4a76eaf2357fcfa033cfba6d3dd" - } - ] +{ + "mail": "rodomar@outlook.com", + "name": "Rodolfo Martínez Vega", + "date": 1669239784, + "prs": [ + { + "nr": 113369, + "hash": "354b12adabe255f91e7b7f0f6a869247c042ab5f" + }, + { + "nr": 113360, + "hash": "8acc9eb521c72ff650c47fa782846893cf35c1d2" + }, + { + "nr": 113710, + "hash": "376ddbedd5ad020c6999fd4ccd93fefcc38da5a7" + }, + { + "nr": 113274, + "hash": "afa4a3c3a86dd616593081414b1b4fc2433bc08f" + }, + { + "nr": 113225, + "hash": "e0d9ed88b9115f664e5fc96bcccf860687413066" + }, + { + "nr": 113171, + "hash": "7fa1fcf1afbac0b8292a2b35dc6463f6110ce4fc" + }, + { + "nr": 113160, + "hash": "8a5a9c9ecd2f33d479d4074a89b0964a11b191a2" + }, + { + "nr": 113329, + "hash": "ab59cd79eda8291675ea385d4e8d1acde317ec77" + }, + { + "nr": 113206, + "hash": "037406745352d85ae6a411a86bbdddc96757c557" + }, + { + "nr": 109189, + "hash": "6ba5e5e80a956453dd799a30bdbfa1d7a35685f4" + }, + { + "nr": 113275, + "hash": "eb4d1b8a2bd5242a485a194751ff1f7b7be1f9a8" + }, + { + "nr": 113008, + "hash": "94eb0adfcce10ac35788c2ce581fb849db61d3d0" + }, + { + "nr": 113186, + "hash": "e5a99b19bc624ff0d75c4465a2ffc8c17102b617" + }, + { + "nr": 113749, + "hash": "b81a37ab2fcb49b6d99986c2cfba7d1039ea0f0b" + }, + { + "nr": 113485, + "hash": "324f14a6d322de2278a352d73b32b71443b6794e" + }, + { + "nr": 111879, + "hash": "d1c1ca77a147ee691a9d17eac425db9239b17810" + }, + { + "nr": 113629, + "hash": "aee3355f7ceec77f7853a63318553fcddec379cc" + }, + { + "nr": 112011, + "hash": "8e35da9e8aca96c0f0daeccab65ab1fa0b719d8a" + }, + { + "nr": 112980, + "hash": "fe3f9da541c051922efc082737fab0691d25d0bd" + }, + { + "nr": 113501, + "hash": "0818fb248042ef2ec63a08de200c909d3c8f9ff4" + }, + { + "nr": 112360, + "hash": "b6fd0edbaabf635087f954c08c9b1a8bada85c75" + }, + { + "nr": 111930, + "hash": "02d67cb924c6769079632c0baae66cd8112ec5a7" + }, + { + "nr": 112895, + "hash": "b15ad0969083d7dc31f6597905a1f3d1c591b01f" + }, + { + "nr": 113609, + "hash": "c5e05181dbbfd2428f209d4351ed9f5fcf16171b" + }, + { + "nr": 113491, + "hash": "6a9587739ad8ce08d55468417d8edfdbd5a3ed3b" + }, + { + "nr": 108250, + "hash": "79195ea8cb61e8aa444f167cded8695fc62637a9" + }, + { + "nr": 113856, + "hash": "e9bc045dcf534768f364f2ae45511883c8069be8" + }, + { + "nr": 113521, + "hash": "d0a5d229be388e970c32a2694db412c805031cc2" + }, + { + "nr": 111023, + "hash": "730c836c7073f7401703d063c739679ab0b3ae36" + }, + { + "nr": 112679, + "hash": "292eb0e244bc5359aad6341609d2eb58ed7021b9" + }, + { + "nr": 113476, + "hash": "9ddc50c84de91be87b0c1bb61a77c511fb1b0478" + }, + { + "nr": 112914, + "hash": "8d4b7055ece36e333bcf7b0b45b7f3eb66007a3a" + }, + { + "nr": 110268, + "hash": "88146ea0be6e5dfce12d16d9f548bb9a5df987bb" + }, + { + "nr": 113596, + "hash": "d65d20d46b42c214f9324758bdd2ba716806582c" + }, + { + "nr": 113496, + "hash": "44aff93495f44456365bd81f79e2fe6049171edc" + }, + { + "nr": 109505, + "hash": "18e51dd61136ea9eaa19c2fae404f3c4b8f63a54" + }, + { + "nr": 113217, + "hash": "0e849ceb70dc3da35d163f7d8f15237fa2d39efc" + }, + { + "nr": 113819, + "hash": "310c3836a20fd14acce2a800c32cf74f8a54fa46" + }, + { + "nr": 113351, + "hash": "e72841a7ab17b3a79bc34efd221e746f9c796cc7" + }, + { + "nr": 113550, + "hash": "8345b6dd8cdf9604877c964889b05cf863335786" + }, + { + "nr": 113340, + "hash": "65c3856cf4446c8b34d78ed74950c4600c33b611" + }, + { + "nr": 113010, + "hash": "a64e06132bc156dc5f9639df20cf6036aba62563" + }, + { + "nr": 113711, + "hash": "bfb215c74944992de3de6fcc968ba654992a660c" + }, + { + "nr": 113544, + "hash": "0f6b89da35a747eadea124fc8f4c93cede5a3e33" + }, + { + "nr": 113636, + "hash": "404a94a2618bda6cd3f97b30ecc557ea5f6f8b62" + }, + { + "nr": 113021, + "hash": "a16bc465c00b928887f4e25f225583c9525bae4c" + }, + { + "nr": 113116, + "hash": "e6e31370f41b5ce8c3bfcbb6b2c4deb3e52ee34e" + }, + { + "nr": 113511, + "hash": "9d4d8819051c6a61bbf39a7f0e6c1517ba402956" + }, + { + "nr": 113363, + "hash": "b7a908ec4e2b5ef7f8b07080916de81c9e4f0b13" + }, + { + "nr": 112838, + "hash": "7fef34a1909b9ad35b34c4c17fc28cc5f9693ce5" + }, + { + "nr": 112261, + "hash": "3fb73437bbdd45a336cf01150eb0de4e519347c3" + }, + { + "nr": 113015, + "hash": "f9fa0305f98a6d08304085dae624c72d54121cd8" + }, + { + "nr": 110618, + "hash": "e3fc69d1c64156462486e5e62d782ddee747a50e" + }, + { + "nr": 113699, + "hash": "8e6b3dd32a1f08cbaf59f400d81625378665f947" + }, + { + "nr": 113510, + "hash": "ebb6b1b4d2957bdaa6f7d520fcad001e8e525d33" + }, + { + "nr": 103177, + "hash": "1ae95a6b28d09642722d970fa6235b29f5231293" + }, + { + "nr": 113735, + "hash": "56ec5a3bb8caa2d68e10f7cfdca2aa7e6b66c491" + }, + { + "nr": 113754, + "hash": "3e76ecb90d290e122a30d02a1c7af626ecdc2119" + }, + { + "nr": 113291, + "hash": "17d0648af9a65d3af6681abc0e05f72320a0fedd" + }, + { + "nr": 110907, + "hash": "644f7b6b8bb9c3610d3499dd419db32566e794bb" + }, + { + "nr": 113314, + "hash": "06a96009f1b611cadad3b9436826376c57022566" + }, + { + "nr": 113018, + "hash": "82cac6d50c2edcbb1c80b0ad3a909fbe32a8d7ee" + }, + { + "nr": 113529, + "hash": "0ba1c03b1b6a737cb9f76656421a06904baacfe4" + }, + { + "nr": 113769, + "hash": "a1429257a7dd9813c89f2457417bbe135685bdfe" + }, + { + "nr": 113719, + "hash": "c7f59b8987a23f813f383513e6ac5557cc39b886" + }, + { + "nr": 113307, + "hash": "22dd991b8d7d92599d43d87b9b981c1763c7ba0d" + }, + { + "nr": 111384, + "hash": "1202817c76d78c6f3b952033d9a13806fcceb2c8" + }, + { + "nr": 113500, + "hash": "5b696c327b82168486adc0f9694f3da149bcd1c6" + }, + { + "nr": 112744, + "hash": "87dd0ba455ba9d7508c01a9e73a76886ec303423" + }, + { + "nr": 112961, + "hash": "6ed4d60a442602c4fc144581804eeb0ed57562df" + }, + { + "nr": 113375, + "hash": "8dbd55edba646b73cf613b9ad090ceaacde06683" + }, + { + "nr": 113336, + "hash": "ac4165e1e396b4a2b3428daad09fdbb79f6bc623" + }, + { + "nr": 113580, + "hash": "7d015fdfe3ca24a71efe8a017c8ab09df46251b4" + }, + { + "nr": 113481, + "hash": "b5036e72c927732a791651972eb000152c3993e2" + }, + { + "nr": 112905, + "hash": "3b2f568f54470c6e0f14e6bad357d770f4582f7e" + }, + { + "nr": 113697, + "hash": "ad129317000595aa0c1bef20e9e3e5e9ea9bb1c0" + }, + { + "nr": 112127, + "hash": "94b5247f54cce4a76eaf2357fcfa033cfba6d3dd" + } + ] } \ No newline at end of file diff --git a/releases/release-1.26/release-notes/sessions/maps-1670569599.json b/releases/release-1.26/release-notes/sessions/maps-1670569599.json index 93ef97e1dcd..5f3754f5fef 100644 --- a/releases/release-1.26/release-notes/sessions/maps-1670569599.json +++ b/releases/release-1.26/release-notes/sessions/maps-1670569599.json @@ -1,19 +1,19 @@ -{ - "mail": "rodomar@outlook.com", - "name": "Rodolfo Martínez Vega", - "date": 1670569599, - "prs": [ - { - "nr": 113186, - "hash": "fc19d06537b2e9c4446614a38b589dda9fd75059" - }, - { - "nr": 86139, - "hash": "8dbce6a925a4199379817bd54f707a5c0e54ca60" - }, - { - "nr": 112133, - "hash": "19e22334aba1a04085958bcd129ea728551b03b4" - } - ] +{ + "mail": "rodomar@outlook.com", + "name": "Rodolfo Martínez Vega", + "date": 1670569599, + "prs": [ + { + "nr": 113186, + "hash": "fc19d06537b2e9c4446614a38b589dda9fd75059" + }, + { + "nr": 86139, + "hash": "8dbce6a925a4199379817bd54f707a5c0e54ca60" + }, + { + "nr": 112133, + "hash": "19e22334aba1a04085958bcd129ea728551b03b4" + } + ] } \ No newline at end of file diff --git a/releases/release-1.26/release-notes/sessions/maps-1673999876.json b/releases/release-1.26/release-notes/sessions/maps-1673999876.json index e41ae5cf402..7641a12453f 100644 --- a/releases/release-1.26/release-notes/sessions/maps-1673999876.json +++ b/releases/release-1.26/release-notes/sessions/maps-1673999876.json @@ -1,19 +1,19 @@ -{ - "mail": "rodomar@outlook.com", - "name": "Rodolfo Martínez Vega", - "date": 1673999876, - "prs": [ - { - "nr": 112855, - "hash": "8cc5592f053e9ebaef40e9c91c8734496befd0d3" - }, - { - "nr": 113018, - "hash": "a47d887e7bb606251fa54c5aba86b8bd1e115497" - }, - { - "nr": 112058, - "hash": "b94b8cd53516997e84b2898d61cb1c1704e26efe" - } - ] +{ + "mail": "rodomar@outlook.com", + "name": "Rodolfo Martínez Vega", + "date": 1673999876, + "prs": [ + { + "nr": 112855, + "hash": "8cc5592f053e9ebaef40e9c91c8734496befd0d3" + }, + { + "nr": 113018, + "hash": "a47d887e7bb606251fa54c5aba86b8bd1e115497" + }, + { + "nr": 112058, + "hash": "b94b8cd53516997e84b2898d61cb1c1704e26efe" + } + ] } \ No newline at end of file diff --git a/releases/release-1.26/release-team.md b/releases/release-1.26/release-team.md index f2e8ea6098e..749b45f721a 100644 --- a/releases/release-1.26/release-team.md +++ b/releases/release-1.26/release-team.md @@ -1,17 +1,17 @@ -# Kubernetes 1.26 Release Team - -| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|----------|----------------------------------|----------------------------------------| -| Release Team Lead | Leonard Vincent Simon Pahlke ([@leonardpahlke](https://github.com/leonardpahlke) / Slack: `@leonardpahlke`) | Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`), Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`), Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack: `@psaggu`), Nate Waddington ([@nate-double-u](https://github.com/nate-double-u) / Slack: `@nate-double-u`) | -| Enhancements | Ryler Hockenbury ([@rhockenbury](https://github.com/rhockenbury) / Slack: `@rhockenbury`) | Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@Mark Rossetti`), Parul Sahoo ([@parul5sahoo](https://github.com/parul5sahoo) / Slack: `@parul_sahoo`), Atharva Shinde ([@Atharva-Shinde](https://github.com/Atharva-Shinde) / Slack: `@Atharva Shinde`), Ruheena Ansari ([@ruheenaansari34](https://github.com/ruheenaansari34) / Slack: `@Ruheena Ansari`) | -| CI Signal | Nivedita Prasad ([@Nivedita-coder](https://github.com/Nivedita-coder) / Slack: `@Nivedita Prasad`) | Shuhei Kitagawa ([@shuheiktgw](https://github.com/shuheiktgw) / Slack: `Shuhei Kitagawa`), Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `Meha Bhalodiya`), Naman Lakhwani ([@Namanl2001](https://github.com/Namanl2001) / Slack: `Naman Lakhwani`), Bhawana Haritwal ([@bharitwal](https://github.com/bharitwal) / Slack: `Bhawana Haritwal`) | -| Bug Triage | Hossein Salahi ([@hosseinsalahi](https://github.com/hosseinsalahi) / Slack: `@hosseinsalahi`) | Subhasmita Swain ([@subhasmitasw](https://github.com/subhasmitasw) / Slack: `@subhasmita`), Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos) / Slack: `@neoaggelos`), Hesham Abouelmagd ([@heshamaboelmagd](https://github.com/heshamaboelmagd) / Slack: `@Hesham Abo El-Magd`), Cailyn Edwards ([@cailynse](https://github.com/cailynse) / Slack: `@cailyn_codes`), Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`) | -| Docs | Carolina Valencia ([@krol3](https://github.com/krol3) / Slack: `@krol`) | Cat Chu ([@cathchu](https://github.com/cathchu) / Slack: `@cathchu`), Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@mickey`), Jackline Mutua ([@katmutua](https://github.com/katmutua) / Slack: `@jacklinem`), Rishit Dagli ([@Rishit-dagli](https://github.com/Rishit-dagli) / Slack: `@Rishit Dagli`) | -| Release Notes | Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `ramrodo`) | Harsha Narayana ([@harshanarayana](https://github.com/harshanarayana) / Slack: `@Harsha Narayana`), Ana Margarita Medina ([@AnaMMedina21](https://github.com/AnaMMedina21) / Slack: `@Ana Margarita Medina`), Laxmikant Bhaskar Pandhare ([@laxmikantbpandhare](https://github.com/laxmikantbpandhare) / Slack: `@laxmikantbpandhare`), Sayantani Saha ([@sayantani11](https://github.com/sayantani11) / Slack: `@sayantani`) | -| Communications | Frederico Serrano Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsm` ) | Harshita Sao ([@harshitasao](https://github.com/harshitasao) / Slack: `@Harshita Sao`), Brad McCoy ([@bradmccoydev](https://github.com/bradmccoydev) / Slack: `@Brad McCoy`), David Espejo ([@davidmirror](https://github.com/davidmirror-ops) / Slack:`@David Espejo`), Debabrata Panigrahi ([@Debanitrkl](https://github.com/Debanitrkl) / Slack: `@Deba`) | -| Emeritus Adviser | Nabarun Pal ([@palnabarun](https://github.com/palnabarun)) / Slack: `@palnabarun` | | -| Branch Manager | Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard)) / Slack: `@jerickar` | Cici Huang ([@cici37](https://github.com/cici37) / Slack: `@cici37`), Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`) | - -Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.26, once the 1.26 release cycle concludes. +# Kubernetes 1.26 Release Team + +| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|----------|----------------------------------|----------------------------------------| +| Release Team Lead | Leonard Vincent Simon Pahlke ([@leonardpahlke](https://github.com/leonardpahlke) / Slack: `@leonardpahlke`) | Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`), Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`), Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack: `@psaggu`), Nate Waddington ([@nate-double-u](https://github.com/nate-double-u) / Slack: `@nate-double-u`) | +| Enhancements | Ryler Hockenbury ([@rhockenbury](https://github.com/rhockenbury) / Slack: `@rhockenbury`) | Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@Mark Rossetti`), Parul Sahoo ([@parul5sahoo](https://github.com/parul5sahoo) / Slack: `@parul_sahoo`), Atharva Shinde ([@Atharva-Shinde](https://github.com/Atharva-Shinde) / Slack: `@Atharva Shinde`), Ruheena Ansari ([@ruheenaansari34](https://github.com/ruheenaansari34) / Slack: `@Ruheena Ansari`) | +| CI Signal | Nivedita Prasad ([@Nivedita-coder](https://github.com/Nivedita-coder) / Slack: `@Nivedita Prasad`) | Shuhei Kitagawa ([@shuheiktgw](https://github.com/shuheiktgw) / Slack: `Shuhei Kitagawa`), Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `Meha Bhalodiya`), Naman Lakhwani ([@Namanl2001](https://github.com/Namanl2001) / Slack: `Naman Lakhwani`), Bhawana Haritwal ([@bharitwal](https://github.com/bharitwal) / Slack: `Bhawana Haritwal`) | +| Bug Triage | Hossein Salahi ([@hosseinsalahi](https://github.com/hosseinsalahi) / Slack: `@hosseinsalahi`) | Subhasmita Swain ([@subhasmitasw](https://github.com/subhasmitasw) / Slack: `@subhasmita`), Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos) / Slack: `@neoaggelos`), Hesham Abouelmagd ([@heshamaboelmagd](https://github.com/heshamaboelmagd) / Slack: `@Hesham Abo El-Magd`), Cailyn Edwards ([@cailynse](https://github.com/cailynse) / Slack: `@cailyn_codes`), Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`) | +| Docs | Carolina Valencia ([@krol3](https://github.com/krol3) / Slack: `@krol`) | Cat Chu ([@cathchu](https://github.com/cathchu) / Slack: `@cathchu`), Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@mickey`), Jackline Mutua ([@katmutua](https://github.com/katmutua) / Slack: `@jacklinem`), Rishit Dagli ([@Rishit-dagli](https://github.com/Rishit-dagli) / Slack: `@Rishit Dagli`) | +| Release Notes | Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `ramrodo`) | Harsha Narayana ([@harshanarayana](https://github.com/harshanarayana) / Slack: `@Harsha Narayana`), Ana Margarita Medina ([@AnaMMedina21](https://github.com/AnaMMedina21) / Slack: `@Ana Margarita Medina`), Laxmikant Bhaskar Pandhare ([@laxmikantbpandhare](https://github.com/laxmikantbpandhare) / Slack: `@laxmikantbpandhare`), Sayantani Saha ([@sayantani11](https://github.com/sayantani11) / Slack: `@sayantani`) | +| Communications | Frederico Serrano Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsm` ) | Harshita Sao ([@harshitasao](https://github.com/harshitasao) / Slack: `@Harshita Sao`), Brad McCoy ([@bradmccoydev](https://github.com/bradmccoydev) / Slack: `@Brad McCoy`), David Espejo ([@davidmirror](https://github.com/davidmirror-ops) / Slack:`@David Espejo`), Debabrata Panigrahi ([@Debanitrkl](https://github.com/Debanitrkl) / Slack: `@Deba`) | +| Emeritus Adviser | Nabarun Pal ([@palnabarun](https://github.com/palnabarun)) / Slack: `@palnabarun` | | +| Branch Manager | Jeremy Rickard ([@jeremyrickard](https://github.com/jeremyrickard)) / Slack: `@jerickar` | Cici Huang ([@cici37](https://github.com/cici37) / Slack: `@cici37`), Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`) | + +Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.26, once the 1.26 release cycle concludes. diff --git a/releases/release-1.27/README.md b/releases/release-1.27/README.md index 146f8226a0a..23e05244d16 100644 --- a/releases/release-1.27/README.md +++ b/releases/release-1.27/README.md @@ -1,117 +1,117 @@ ---- -title: "Kubernetes 1.27 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.27 - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.27/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.27/release-team.md) -* [Meeting Minutes](https://bit.ly/k8s127-releasemtg) (members of [release-team@] receive meeting invites) -* [v1.27 Release Calendar][k8s127-calendar] -* Contact: [#sig-release] on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail -* [Internal Contact Info] (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Board](https://bit.ly/k8s127-enhancements) -* [Feature blog Tracking Board](#) -* [Bug Triage Tracking Board](https://bit.ly/k8s127-bug-triage-tracking) -* [CI Signal Project Board & Issue Tracking](#) -* [Retrospective Document](https://bit.ly/k8s127-retro) -* [kubernetes/sig-release v1.27 milestone](https://github.com/kubernetes/kubernetes/milestone/60) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## Summary - -The 1.27 release cycle is as follows: - -- **Monday 9th January 2023**: Week 1 — Release cycle begins -- **Thursday 2nd February 2023**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) -- **[01:00 UTC Friday 10th February 2023 / 18:00 PDT Thursday 9th February 2023](https://everytimezone.com/s/cc15bd3a)**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **[01:00 UTC Wednesday 15th March 2023 / 17:00 PDT Tuesday 14th March 2023](https://everytimezone.com/s/c4971746)**: Week 10 — [Code Freeze](../release_phases.md#code-freeze) -- **[01:00 UTC Wednesday 22nd March 2023 / 17:00 PDT Tuesday 21st March 2023](https://everytimezone.com/s/5d64ada0)**: Week 11 — [Test Freeze](../release_phases.md#test-freeze) -- **Tuesday 4th April 2023**: Week 13 — Docs must be completed and reviewed -- **Tuesday 11th April 2023**: Week 14 — Kubernetes v1.27.0 released -- **Monday 17th April 2023**: Week 15 - [KubeCon EU](https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/) - -## Timeline - -| **What** | **Who** | **When** | **Week** | **CI Signal** | -|---------------------------------------------------------------|---|-----------------------------------------------------------------------------------------------------------------|----------|---| -| Start of Release Cycle | Lead | Monday 9th January 2023 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Monday 9th January 2023 | week 1 | | -| Schedule finalized | Lead | Friday 13th January 2023 | week 1 | | -| Team finalized | Lead | Friday 13th January 2023 | week 1 | | -| 1.27.0-alpha.1 released | Branch Manager | Tuesday 24th January 2023 | Week 3 | | -| Start Release Notes Draft | Release Notes Lead | Tuesday 24th January 2023 | week 3 | | -| Production Readiness Freeze | Enhancements Lead | Thursday 2nd February 2023 | week 4 | | -| **Begin [Enhancements Freeze]** | Enhancements Lead | [01:00 UTC Friday 10th February 2023 / 18:00 PDT Thursday 9th February 2023](https://everytimezone.com/s/cc15bd3a) | week 5 | [master-blocking], [master-informing] | -| 1.27.0-alpha.2 released | Branch Manager | Tuesday 14th February 2023 | Week 6 | | -| Begin Friday APAC-friendly meetings | Lead | Friday 24th February 2023 | Week 7 | | -| 1.27.0-alpha.3 released | Branch Manager | Thursday 2nd March 2023 | week 8 | [1.27-blocking], [master-blocking], [master-informing] | -| **Call for [Exceptions][Exception]** | Lead | Monday 6th March 2023 | week 9 | | -| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Monday 6th March 2023 | week 9 | | -| **Begin Feature blog freeze** | Comms Lead | [01:00 UTC Wednesday 8th March 2023 / 18:00 PDT Tuesday 7th March 2023](https://everytimezone.com/s/5b8f4c26) | week 9 | | -| **Begin [Code Freeze]** | Branch Manager | [01:00 UTC Wednesday 15th March 2023 / 17:00 PDT Tuesday 14th March 2023](https://everytimezone.com/s/c4971746) | week 10 | | -| 1.27.0-beta.0 released | Branch Manager | Thursday 16th March 2023 | week 10 | | -| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 16th March 2023 | week 10 | | -| Deprecations and Removals blog published | Comms | Thursday 16th March 2023 | week 10 | | -| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 20th March 2023 | Week 11 | | -| **[Test Freeze]** | Branch Manager | [01:00 UTC Wednesday 22nd March 2023 / 17:00 PDT Tuesday 21st March 2023](https://everytimezone.com/s/5d64ada0) | week 11 | | -| Docs deadline — PRs ready for review | Docs Lead | Tuesday 21st March 2023 | Week 11 | | -| 1.27.0-rc.0 released | Branch Manager | Tuesday 21st March 2023 | week 11 | | -| release-1.27 branch created | Branch Manager | Tuesday 21st March 2023 | week 11 | | -| release-1.27 jobs created | Branch Manager | Tuesday 21st March 2023 | week 11 | | -| Major Themes deadline | Comms | Tuesday 21st March 2023 | week 11 | | -| Start final draft of Release Notes | Release Notes Lead | Tuesday 21st March 2023 | week 11 | | -| Release blog ready to review | Comms / Docs | [01:00 UTC Wednesday 22nd March 2023 / 17:00 PDT Tuesday 21st March 2023](https://everytimezone.com/s/5d64ada0) | week 11 | | -| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 27th March 2023 | week 12 | | -| Major Themes complete | Release Notes Lead | Tuesday 4th April 2023 | week 13 | | -| Docs complete — All PRs reviewed and ready to merge | Docs Lead | Tuesday 4th April 2023 | week 13 | | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Tuesday 4th April 2023 | week 13 | | -| 1.27.0-rc.1 released | Branch Manager | Thursday 6th April 2023 | week 13 | | -| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Release Notes Lead | Tuesday 11th April 2023 | week 14 | | -| **v1.27.0 released** | Branch Manager | Tuesday 11th April 2023 | week 14 | | -| Release blog published | Comms | Tueday 11th April 2023 | week 14 | | -| **[Thaw]** | Branch Manager | Tuesday 11th April 2023 | week 14 | | -| [KubeCon EU](https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/) | | April 17-21 2023 | week 15 | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[k8s127-calendar]: https://bit.ly/k8s-release-cal -[Internal Contact Info]: https://bit.ly/k8s127-contacts -[Retrospective Document]: https://bit.ly/k8s127-retro - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Thaw]: ../release_phases.md#thaw -[Test Freeze]: ../release_phases.md#test-freeze - -[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.27-blocking]: https://testgrid.k8s.io/sig-release-1.27-blocking#Summary - -[exception requests]: ../EXCEPTIONS.md -[release phases document]: ../release_phases.md +--- +title: "Kubernetes 1.27 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.27 + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.27/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.27/release-team.md) +* [Meeting Minutes](https://bit.ly/k8s127-releasemtg) (members of [release-team@] receive meeting invites) +* [v1.27 Release Calendar][k8s127-calendar] +* Contact: [#sig-release] on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail +* [Internal Contact Info] (accessible only to members of [release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Board](https://bit.ly/k8s127-enhancements) +* [Feature blog Tracking Board](#) +* [Bug Triage Tracking Board](https://bit.ly/k8s127-bug-triage-tracking) +* [CI Signal Project Board & Issue Tracking](#) +* [Retrospective Document](https://bit.ly/k8s127-retro) +* [kubernetes/sig-release v1.27 milestone](https://github.com/kubernetes/kubernetes/milestone/60) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## Summary + +The 1.27 release cycle is as follows: + +- **Monday 9th January 2023**: Week 1 — Release cycle begins +- **Thursday 2nd February 2023**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) +- **[01:00 UTC Friday 10th February 2023 / 18:00 PDT Thursday 9th February 2023](https://everytimezone.com/s/cc15bd3a)**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **[01:00 UTC Wednesday 15th March 2023 / 17:00 PDT Tuesday 14th March 2023](https://everytimezone.com/s/c4971746)**: Week 10 — [Code Freeze](../release_phases.md#code-freeze) +- **[01:00 UTC Wednesday 22nd March 2023 / 17:00 PDT Tuesday 21st March 2023](https://everytimezone.com/s/5d64ada0)**: Week 11 — [Test Freeze](../release_phases.md#test-freeze) +- **Tuesday 4th April 2023**: Week 13 — Docs must be completed and reviewed +- **Tuesday 11th April 2023**: Week 14 — Kubernetes v1.27.0 released +- **Monday 17th April 2023**: Week 15 - [KubeCon EU](https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/) + +## Timeline + +| **What** | **Who** | **When** | **Week** | **CI Signal** | +|---------------------------------------------------------------|---|-----------------------------------------------------------------------------------------------------------------|----------|---| +| Start of Release Cycle | Lead | Monday 9th January 2023 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Monday 9th January 2023 | week 1 | | +| Schedule finalized | Lead | Friday 13th January 2023 | week 1 | | +| Team finalized | Lead | Friday 13th January 2023 | week 1 | | +| 1.27.0-alpha.1 released | Branch Manager | Tuesday 24th January 2023 | Week 3 | | +| Start Release Notes Draft | Release Notes Lead | Tuesday 24th January 2023 | week 3 | | +| Production Readiness Freeze | Enhancements Lead | Thursday 2nd February 2023 | week 4 | | +| **Begin [Enhancements Freeze]** | Enhancements Lead | [01:00 UTC Friday 10th February 2023 / 18:00 PDT Thursday 9th February 2023](https://everytimezone.com/s/cc15bd3a) | week 5 | [master-blocking], [master-informing] | +| 1.27.0-alpha.2 released | Branch Manager | Tuesday 14th February 2023 | Week 6 | | +| Begin Friday APAC-friendly meetings | Lead | Friday 24th February 2023 | Week 7 | | +| 1.27.0-alpha.3 released | Branch Manager | Thursday 2nd March 2023 | week 8 | [1.27-blocking], [master-blocking], [master-informing] | +| **Call for [Exceptions][Exception]** | Lead | Monday 6th March 2023 | week 9 | | +| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Monday 6th March 2023 | week 9 | | +| **Begin Feature blog freeze** | Comms Lead | [01:00 UTC Wednesday 8th March 2023 / 18:00 PDT Tuesday 7th March 2023](https://everytimezone.com/s/5b8f4c26) | week 9 | | +| **Begin [Code Freeze]** | Branch Manager | [01:00 UTC Wednesday 15th March 2023 / 17:00 PDT Tuesday 14th March 2023](https://everytimezone.com/s/c4971746) | week 10 | | +| 1.27.0-beta.0 released | Branch Manager | Thursday 16th March 2023 | week 10 | | +| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 16th March 2023 | week 10 | | +| Deprecations and Removals blog published | Comms | Thursday 16th March 2023 | week 10 | | +| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 20th March 2023 | Week 11 | | +| **[Test Freeze]** | Branch Manager | [01:00 UTC Wednesday 22nd March 2023 / 17:00 PDT Tuesday 21st March 2023](https://everytimezone.com/s/5d64ada0) | week 11 | | +| Docs deadline — PRs ready for review | Docs Lead | Tuesday 21st March 2023 | Week 11 | | +| 1.27.0-rc.0 released | Branch Manager | Tuesday 21st March 2023 | week 11 | | +| release-1.27 branch created | Branch Manager | Tuesday 21st March 2023 | week 11 | | +| release-1.27 jobs created | Branch Manager | Tuesday 21st March 2023 | week 11 | | +| Major Themes deadline | Comms | Tuesday 21st March 2023 | week 11 | | +| Start final draft of Release Notes | Release Notes Lead | Tuesday 21st March 2023 | week 11 | | +| Release blog ready to review | Comms / Docs | [01:00 UTC Wednesday 22nd March 2023 / 17:00 PDT Tuesday 21st March 2023](https://everytimezone.com/s/5d64ada0) | week 11 | | +| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 27th March 2023 | week 12 | | +| Major Themes complete | Release Notes Lead | Tuesday 4th April 2023 | week 13 | | +| Docs complete — All PRs reviewed and ready to merge | Docs Lead | Tuesday 4th April 2023 | week 13 | | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Tuesday 4th April 2023 | week 13 | | +| 1.27.0-rc.1 released | Branch Manager | Thursday 6th April 2023 | week 13 | | +| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Release Notes Lead | Tuesday 11th April 2023 | week 14 | | +| **v1.27.0 released** | Branch Manager | Tuesday 11th April 2023 | week 14 | | +| Release blog published | Comms | Tueday 11th April 2023 | week 14 | | +| **[Thaw]** | Branch Manager | Tuesday 11th April 2023 | week 14 | | +| [KubeCon EU](https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/) | | April 17-21 2023 | week 15 | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[k8s127-calendar]: https://bit.ly/k8s-release-cal +[Internal Contact Info]: https://bit.ly/k8s127-contacts +[Retrospective Document]: https://bit.ly/k8s127-retro + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Thaw]: ../release_phases.md#thaw +[Test Freeze]: ../release_phases.md#test-freeze + +[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.27-blocking]: https://testgrid.k8s.io/sig-release-1.27-blocking#Summary + +[exception requests]: ../EXCEPTIONS.md +[release phases document]: ../release_phases.md diff --git a/releases/release-1.27/exceptions.yaml b/releases/release-1.27/exceptions.yaml index de82f251a4d..3ae8990aec9 100644 --- a/releases/release-1.27/exceptions.yaml +++ b/releases/release-1.27/exceptions.yaml @@ -1,78 +1,78 @@ -# Exception requests in 1.27 -# Google Group: https://groups.google.com/g/kubernetes-sig-release -# Release Team Lead: Xander Grzywinski ([@salaxander](https://github.com/salaxander)) -# Release Team Shadows : Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove)) -# / Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929)) -# / Heba Elayoty ([@helayoty](https://github.com/helayoty)) -# / Hossein Salahi ([@hosseinsalahi](https://github.com/hosseinsalahi)) - -# Enhancements Freeze Exceptions requested in 1.27 -enhancementFreeze: - -# None! - -# Code Freeze Exceptions requested in 1.27 - -codeFreeze: - -- name: "Retriable and non-retriable Pod failures for Jobs" - issue: 3329 - date_requested: 2023-03-13 - date_reviewed: 2023-03-13 - thread: "https://groups.google.com/u/0/g/kubernetes-sig-release/c/8hY9EZRQjNk" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/115331" - status: "approved" - -- name: "In-place Update of Pod Resources" - issue: 1287 - date_requested: 2023-03-14 - date_reviewed: 2023-03-14 - thread: "https://groups.google.com/u/0/g/kubernetes-sig-release/c/TAwJ6IijEoI" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/116504" - - "https://github.com/kubernetes/kubernetes/pull/116119" - - "https://github.com/kubernetes/kubernetes/pull/116628" - - "https://github.com/kubernetes/kubernetes/pull/116631" - - "https://github.com/kubernetes/kubernetes/pull/116575" - status: "approved" - -- name: "cloud dual-stack node IPs" - issue: 3705 - date_requested: 2023-03-15 - date_reviewed: 2023-03-15 - thread: "https://groups.google.com/u/0/g/kubernetes-sig-release/c/EJxmkws_SQ8" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/116305" - status: "approved" - -- name: "AdmissionWebhookMatchConditions" - issue: 3716 - date_requested: 2023-03-14 - date_reviewed: 2023-03-14 - thread: "https://groups.google.com/u/0/g/kubernetes-sig-release/c/N2kwnN0kFBA" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/116261" - - "https://github.com/kubernetes/kubernetes/pull/116350" - status: "approved" - - -- name: "CELValidatingAdmission" - issue: 3488 - date_requested: 2023-03-14 - date_reviewed: 2023-03-14 - thread: "https://groups.google.com/u/0/g/kubernetes-sig-release/c/N2kwnN0kFBA" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/116261" - - "https://github.com/kubernetes/kubernetes/pull/116350" - status: "approved" - - -- name: "ClusterTrustBundles" - issue: 3257 - date_requested: 2023-03-16 - date_reviewed: 2023-03-16 - thread: "https://groups.google.com/u/0/g/kubernetes-sig-release/c/kkA4F4LvMrM" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/113218" - status: "approved" +# Exception requests in 1.27 +# Google Group: https://groups.google.com/g/kubernetes-sig-release +# Release Team Lead: Xander Grzywinski ([@salaxander](https://github.com/salaxander)) +# Release Team Shadows : Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove)) +# / Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929)) +# / Heba Elayoty ([@helayoty](https://github.com/helayoty)) +# / Hossein Salahi ([@hosseinsalahi](https://github.com/hosseinsalahi)) + +# Enhancements Freeze Exceptions requested in 1.27 +enhancementFreeze: + +# None! + +# Code Freeze Exceptions requested in 1.27 + +codeFreeze: + +- name: "Retriable and non-retriable Pod failures for Jobs" + issue: 3329 + date_requested: 2023-03-13 + date_reviewed: 2023-03-13 + thread: "https://groups.google.com/u/0/g/kubernetes-sig-release/c/8hY9EZRQjNk" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/115331" + status: "approved" + +- name: "In-place Update of Pod Resources" + issue: 1287 + date_requested: 2023-03-14 + date_reviewed: 2023-03-14 + thread: "https://groups.google.com/u/0/g/kubernetes-sig-release/c/TAwJ6IijEoI" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/116504" + - "https://github.com/kubernetes/kubernetes/pull/116119" + - "https://github.com/kubernetes/kubernetes/pull/116628" + - "https://github.com/kubernetes/kubernetes/pull/116631" + - "https://github.com/kubernetes/kubernetes/pull/116575" + status: "approved" + +- name: "cloud dual-stack node IPs" + issue: 3705 + date_requested: 2023-03-15 + date_reviewed: 2023-03-15 + thread: "https://groups.google.com/u/0/g/kubernetes-sig-release/c/EJxmkws_SQ8" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/116305" + status: "approved" + +- name: "AdmissionWebhookMatchConditions" + issue: 3716 + date_requested: 2023-03-14 + date_reviewed: 2023-03-14 + thread: "https://groups.google.com/u/0/g/kubernetes-sig-release/c/N2kwnN0kFBA" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/116261" + - "https://github.com/kubernetes/kubernetes/pull/116350" + status: "approved" + + +- name: "CELValidatingAdmission" + issue: 3488 + date_requested: 2023-03-14 + date_reviewed: 2023-03-14 + thread: "https://groups.google.com/u/0/g/kubernetes-sig-release/c/N2kwnN0kFBA" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/116261" + - "https://github.com/kubernetes/kubernetes/pull/116350" + status: "approved" + + +- name: "ClusterTrustBundles" + issue: 3257 + date_requested: 2023-03-16 + date_reviewed: 2023-03-16 + thread: "https://groups.google.com/u/0/g/kubernetes-sig-release/c/kkA4F4LvMrM" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/113218" + status: "approved" diff --git a/releases/release-1.27/release-notes/maps/pr-102884-map.yaml b/releases/release-1.27/release-notes/maps/pr-102884-map.yaml index 43aadc1a619..a12f82694b4 100644 --- a/releases/release-1.27/release-notes/maps/pr-102884-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-102884-map.yaml @@ -1,9 +1,9 @@ -pr: 102884 -releasenote: - text: |- - `PodSpec.Container.Resources` became mutable for CPU and memory resource types. - - `PodSpec.Container.ResizePolicy` (new object) gives users control over how their containers are resized. - - `PodStatus.Resize` status describes the state of a requested Pod resize. - - `PodStatus.ResourcesAllocated` describes node resources allocated to Pod. - - `PodStatus.Resources` describes node resources applied to running containers by CRI. - - `UpdateContainerResources` CRI API now supports both Linux and Windows. +pr: 102884 +releasenote: + text: |- + `PodSpec.Container.Resources` became mutable for CPU and memory resource types. + - `PodSpec.Container.ResizePolicy` (new object) gives users control over how their containers are resized. + - `PodStatus.Resize` status describes the state of a requested Pod resize. + - `PodStatus.ResourcesAllocated` describes node resources allocated to Pod. + - `PodStatus.Resources` describes node resources applied to running containers by CRI. + - `UpdateContainerResources` CRI API now supports both Linux and Windows. diff --git a/releases/release-1.27/release-notes/maps/pr-108095-map.yaml b/releases/release-1.27/release-notes/maps/pr-108095-map.yaml index 9544bdae899..867dc3a7a06 100644 --- a/releases/release-1.27/release-notes/maps/pr-108095-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-108095-map.yaml @@ -1,3 +1,3 @@ -pr: 108095 -releasenote: - text: Fixed Route controller to update routes when NodeIP changes +pr: 108095 +releasenote: + text: Fixed Route controller to update routes when NodeIP changes diff --git a/releases/release-1.27/release-notes/maps/pr-108396-map.yaml b/releases/release-1.27/release-notes/maps/pr-108396-map.yaml index deff9392ef6..574ed370168 100644 --- a/releases/release-1.27/release-notes/maps/pr-108396-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-108396-map.yaml @@ -1,5 +1,5 @@ -pr: 108396 -releasenote: - text: "A new client side metric `rest_client_request_retries_total` has been added - that tracks the number of retries sent to the server, partitioned by status - code, verb and host" +pr: 108396 +releasenote: + text: "A new client side metric `rest_client_request_retries_total` has been added + that tracks the number of retries sent to the server, partitioned by status + code, verb and host" diff --git a/releases/release-1.27/release-notes/maps/pr-108838-map.yaml b/releases/release-1.27/release-notes/maps/pr-108838-map.yaml index 30f5b4e974f..68e00b8659f 100644 --- a/releases/release-1.27/release-notes/maps/pr-108838-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-108838-map.yaml @@ -1,3 +1,3 @@ -pr: 108838 -releasenote: - text: Added the ability to host webhooks in the cloud controller manager. +pr: 108838 +releasenote: + text: Added the ability to host webhooks in the cloud controller manager. diff --git a/releases/release-1.27/release-notes/maps/pr-108984-map.yaml b/releases/release-1.27/release-notes/maps/pr-108984-map.yaml index a32c2f6502e..53d4de0b486 100644 --- a/releases/release-1.27/release-notes/maps/pr-108984-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-108984-map.yaml @@ -1,3 +1,3 @@ -pr: 108984 -releasenote: - text: Added logging-format option to CCMs based on `k8s.io/cloud-provider` +pr: 108984 +releasenote: + text: Added logging-format option to CCMs based on `k8s.io/cloud-provider` diff --git a/releases/release-1.27/release-notes/maps/pr-109877-map.yaml b/releases/release-1.27/release-notes/maps/pr-109877-map.yaml index a180773b225..9702f827577 100644 --- a/releases/release-1.27/release-notes/maps/pr-109877-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-109877-map.yaml @@ -1,5 +1,5 @@ -pr: 109877 -releasenote: - text: |- - scheduler volumebinding: leveraged `PreFilterResult` to reduce down to only - eligible node(s) for pod with bound claim(s) to local `PersistentVolume(s)` +pr: 109877 +releasenote: + text: |- + scheduler volumebinding: leveraged `PreFilterResult` to reduce down to only + eligible node(s) for pod with bound claim(s) to local `PersistentVolume(s)` diff --git a/releases/release-1.27/release-notes/maps/pr-110566-map.yaml b/releases/release-1.27/release-notes/maps/pr-110566-map.yaml index eeae3f29170..33590d6f572 100644 --- a/releases/release-1.27/release-notes/maps/pr-110566-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-110566-map.yaml @@ -1,4 +1,4 @@ -pr: 110566 -releasenote: - text: 'Setting the Kubelet config option `--resolv-conf=Host` on Windows will - now result in Kubelet applying the Pod DNS Policies as intended.' +pr: 110566 +releasenote: + text: 'Setting the Kubelet config option `--resolv-conf=Host` on Windows will + now result in Kubelet applying the Pod DNS Policies as intended.' diff --git a/releases/release-1.27/release-notes/maps/pr-110723-map.yaml b/releases/release-1.27/release-notes/maps/pr-110723-map.yaml index 8c3d069a125..64f56faa97f 100644 --- a/releases/release-1.27/release-notes/maps/pr-110723-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-110723-map.yaml @@ -1,3 +1,3 @@ -pr: 110723 -releasenote: - text: Fixed incorrect log information in the `iptables` utility. +pr: 110723 +releasenote: + text: Fixed incorrect log information in the `iptables` utility. diff --git a/releases/release-1.27/release-notes/maps/pr-110960-map.yaml b/releases/release-1.27/release-notes/maps/pr-110960-map.yaml index 961399de341..fe80a8cf9ca 100644 --- a/releases/release-1.27/release-notes/maps/pr-110960-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-110960-map.yaml @@ -1,6 +1,6 @@ -pr: 110960 -releasenote: - text: |- - Implemented API streaming for the `watch-cache` - - When `sendInitialEvents` `ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic "Bookmark" after which the server continues streaming events. +pr: 110960 +releasenote: + text: |- + Implemented API streaming for the `watch-cache` + + When `sendInitialEvents` `ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic "Bookmark" after which the server continues streaming events. diff --git a/releases/release-1.27/release-notes/maps/pr-111207-map.yaml b/releases/release-1.27/release-notes/maps/pr-111207-map.yaml index e50f5f06576..a809bdd7e04 100644 --- a/releases/release-1.27/release-notes/maps/pr-111207-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-111207-map.yaml @@ -1,3 +1,3 @@ -pr: 111207 -releasenote: - text: NONE +pr: 111207 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-111372-map.yaml b/releases/release-1.27/release-notes/maps/pr-111372-map.yaml index 9c4770d3ace..738e399f9fd 100644 --- a/releases/release-1.27/release-notes/maps/pr-111372-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-111372-map.yaml @@ -1,3 +1,3 @@ -pr: 111372 -releasenote: - text: NONE +pr: 111372 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-111453-map.yaml b/releases/release-1.27/release-notes/maps/pr-111453-map.yaml index 9e054ccaa2b..5519aadf8ef 100644 --- a/releases/release-1.27/release-notes/maps/pr-111453-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-111453-map.yaml @@ -1,4 +1,4 @@ -pr: 111453 -releasenote: - text: Added new -f flag into debug command to be used passing pod or node files - instead explicit names. +pr: 111453 +releasenote: + text: Added new -f flag into debug command to be used passing pod or node files + instead explicit names. diff --git a/releases/release-1.27/release-notes/maps/pr-111634-map.yaml b/releases/release-1.27/release-notes/maps/pr-111634-map.yaml index 97240544962..4cc6633df9b 100644 --- a/releases/release-1.27/release-notes/maps/pr-111634-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-111634-map.yaml @@ -1,3 +1,3 @@ -pr: 111634 -releasenote: - text: NONE +pr: 111634 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-111658-map.yaml b/releases/release-1.27/release-notes/maps/pr-111658-map.yaml index fbcca5c789a..3924be19234 100644 --- a/releases/release-1.27/release-notes/maps/pr-111658-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-111658-map.yaml @@ -1,7 +1,7 @@ -pr: 111658 -releasenote: - text: |- - Expanded the partial fix for https://github.com/kubernetes/kubernetes/issues/111539 - which was already started in https://github.com/kubernetes/kubernetes/pull/109706 - Specifically, we will now reduce the amount of syncs for `ETP=local` services even - further in the CCM and avoid re-configuring LBs to an even greater extent. +pr: 111658 +releasenote: + text: |- + Expanded the partial fix for https://github.com/kubernetes/kubernetes/issues/111539 + which was already started in https://github.com/kubernetes/kubernetes/pull/109706 + Specifically, we will now reduce the amount of syncs for `ETP=local` services even + further in the CCM and avoid re-configuring LBs to an even greater extent. diff --git a/releases/release-1.27/release-notes/maps/pr-111660-map.yaml b/releases/release-1.27/release-notes/maps/pr-111660-map.yaml index a4b31035dea..3b3a2d30909 100644 --- a/releases/release-1.27/release-notes/maps/pr-111660-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-111660-map.yaml @@ -1,4 +1,4 @@ -pr: 111660 -releasenote: - text: Relaxed API validation for usage `key encipherment` and `kubelet` uses requested - usages accordingly +pr: 111660 +releasenote: + text: Relaxed API validation for usage `key encipherment` and `kubelet` uses requested + usages accordingly diff --git a/releases/release-1.27/release-notes/maps/pr-111683-map.yaml b/releases/release-1.27/release-notes/maps/pr-111683-map.yaml index 48e966e63d8..89b826289dc 100644 --- a/releases/release-1.27/release-notes/maps/pr-111683-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-111683-map.yaml @@ -1,3 +1,3 @@ -pr: 111683 -releasenote: - text: NONE +pr: 111683 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-111802-map.yaml b/releases/release-1.27/release-notes/maps/pr-111802-map.yaml index db435a205c9..fe18b53778e 100644 --- a/releases/release-1.27/release-notes/maps/pr-111802-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-111802-map.yaml @@ -1,5 +1,5 @@ -pr: 111802 -releasenote: - text: '`LabelSelectors` specified in `topologySpreadConstraints` were validated - to ensure that pods are scheduled as expected. Existing pods with invalid `LabelSelectors` - could be updated, but new pods were required to specify valid `LabelSelectors`.' +pr: 111802 +releasenote: + text: '`LabelSelectors` specified in `topologySpreadConstraints` were validated + to ensure that pods are scheduled as expected. Existing pods with invalid `LabelSelectors` + could be updated, but new pods were required to specify valid `LabelSelectors`.' diff --git a/releases/release-1.27/release-notes/maps/pr-111982-map.yaml b/releases/release-1.27/release-notes/maps/pr-111982-map.yaml index 1a4277d6a3c..cf3e12ce530 100644 --- a/releases/release-1.27/release-notes/maps/pr-111982-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-111982-map.yaml @@ -1,3 +1,3 @@ -pr: 111982 -releasenote: - text: None +pr: 111982 +releasenote: + text: None diff --git a/releases/release-1.27/release-notes/maps/pr-111988-map.yaml b/releases/release-1.27/release-notes/maps/pr-111988-map.yaml index 7950c8b0776..355ecd6e7cd 100644 --- a/releases/release-1.27/release-notes/maps/pr-111988-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-111988-map.yaml @@ -1,3 +1,3 @@ -pr: 111988 -releasenote: - text: NONE +pr: 111988 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-112021-map.yaml b/releases/release-1.27/release-notes/maps/pr-112021-map.yaml index 86a2f111ddf..5f8b2e4e51b 100644 --- a/releases/release-1.27/release-notes/maps/pr-112021-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-112021-map.yaml @@ -1,3 +1,3 @@ -pr: 112021 -releasenote: - text: Fixed `SELinux` label for host path volumes created by host path provisioner +pr: 112021 +releasenote: + text: Fixed `SELinux` label for host path volumes created by host path provisioner diff --git a/releases/release-1.27/release-notes/maps/pr-112136-map.yaml b/releases/release-1.27/release-notes/maps/pr-112136-map.yaml index f7f6279f947..818973e00b5 100644 --- a/releases/release-1.27/release-notes/maps/pr-112136-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-112136-map.yaml @@ -1,5 +1,5 @@ -pr: 112136 -releasenote: - text: |- - `kubelet`: migrated `--container-runtime-endpoint` and `--image-service-endpoint` - to kubelet config +pr: 112136 +releasenote: + text: |- + `kubelet`: migrated `--container-runtime-endpoint` and `--image-service-endpoint` + to kubelet config diff --git a/releases/release-1.27/release-notes/maps/pr-112260-map.yaml b/releases/release-1.27/release-notes/maps/pr-112260-map.yaml index 61801efd3b5..22e8f8425fd 100644 --- a/releases/release-1.27/release-notes/maps/pr-112260-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-112260-map.yaml @@ -1,4 +1,4 @@ -pr: 112260 -releasenote: - text: node `ipam` controller now exposes metrics `cidrset_cidrs_max_total` and `multicidrset_cidrs_max_total` - with information about the max number of CIDRs that can be allocated. +pr: 112260 +releasenote: + text: node `ipam` controller now exposes metrics `cidrset_cidrs_max_total` and `multicidrset_cidrs_max_total` + with information about the max number of CIDRs that can be allocated. diff --git a/releases/release-1.27/release-notes/maps/pr-112334-map.yaml b/releases/release-1.27/release-notes/maps/pr-112334-map.yaml index b073ac65172..885b8937bfa 100644 --- a/releases/release-1.27/release-notes/maps/pr-112334-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-112334-map.yaml @@ -1,4 +1,4 @@ -pr: 112334 -releasenote: - text: Updated the Event series starting count when emitting isomorphic events from - 1 to 2. +pr: 112334 +releasenote: + text: Updated the Event series starting count when emitting isomorphic events from + 1 to 2. diff --git a/releases/release-1.27/release-notes/maps/pr-112365-map.yaml b/releases/release-1.27/release-notes/maps/pr-112365-map.yaml index 785fca35a14..659a93c5f35 100644 --- a/releases/release-1.27/release-notes/maps/pr-112365-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-112365-map.yaml @@ -1,4 +1,4 @@ -pr: 112365 -releasenote: - text: Fixed a bug where `events/v1` `Events` with similar event type and reporting - instance were not aggregated by `client-go`. +pr: 112365 +releasenote: + text: Fixed a bug where `events/v1` `Events` with similar event type and reporting + instance were not aggregated by `client-go`. diff --git a/releases/release-1.27/release-notes/maps/pr-112393-map.yaml b/releases/release-1.27/release-notes/maps/pr-112393-map.yaml index 277fb9a725f..0a254ce2dd1 100644 --- a/releases/release-1.27/release-notes/maps/pr-112393-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-112393-map.yaml @@ -1,5 +1,5 @@ -pr: 112393 -releasenote: - text: 'Two changes to the `/debug/api_priority_and_fairness/dump_priority_levels` - endpoint of API Priority and Fairness: added total number of dispatched, timed-out, - rejected and cancelled requests; output now sorted by `PriorityLevelName`.' +pr: 112393 +releasenote: + text: 'Two changes to the `/debug/api_priority_and_fairness/dump_priority_levels` + endpoint of API Priority and Fairness: added total number of dispatched, timed-out, + rejected and cancelled requests; output now sorted by `PriorityLevelName`.' diff --git a/releases/release-1.27/release-notes/maps/pr-112624-map.yaml b/releases/release-1.27/release-notes/maps/pr-112624-map.yaml index 8aef503c7db..70b7a289ee4 100644 --- a/releases/release-1.27/release-notes/maps/pr-112624-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-112624-map.yaml @@ -1,4 +1,4 @@ -pr: 112624 -releasenote: - text: 'kubelet`: fixed a bug in `kubelet` that stopped rendering the `ConfigMaps` - when `fsquota` monitoring is enabled' +pr: 112624 +releasenote: + text: 'kubelet`: fixed a bug in `kubelet` that stopped rendering the `ConfigMaps` + when `fsquota` monitoring is enabled' diff --git a/releases/release-1.27/release-notes/maps/pr-112670-map.yaml b/releases/release-1.27/release-notes/maps/pr-112670-map.yaml index 6f3e9cb04a5..9ae9348fbcb 100644 --- a/releases/release-1.27/release-notes/maps/pr-112670-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-112670-map.yaml @@ -1,5 +1,5 @@ -pr: 112670 -releasenote: - text: 'Migrated `pkg/controller/nodeipam/ipam/cloud_cidr_allocator.go, pkg/controller/nodeipam/ipam/multi_cidr_range_allocator.go - pkg/controller/nodeipam/ipam/range_allocator.go pkg/controller/nodelifecycle/node_lifecycle_controller.go` - to structured logging' +pr: 112670 +releasenote: + text: 'Migrated `pkg/controller/nodeipam/ipam/cloud_cidr_allocator.go, pkg/controller/nodeipam/ipam/multi_cidr_range_allocator.go + pkg/controller/nodeipam/ipam/range_allocator.go pkg/controller/nodelifecycle/node_lifecycle_controller.go` + to structured logging' diff --git a/releases/release-1.27/release-notes/maps/pr-112925-map.yaml b/releases/release-1.27/release-notes/maps/pr-112925-map.yaml index 63fd339be60..8226d3f166e 100644 --- a/releases/release-1.27/release-notes/maps/pr-112925-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-112925-map.yaml @@ -1,4 +1,4 @@ -pr: 112925 -releasenote: - text: Error message for Pods with requests exceeding limits will have a limit value - printed. +pr: 112925 +releasenote: + text: Error message for Pods with requests exceeding limits will have a limit value + printed. diff --git a/releases/release-1.27/release-notes/maps/pr-112977-map.yaml b/releases/release-1.27/release-notes/maps/pr-112977-map.yaml index 49df4e04956..6527585b393 100644 --- a/releases/release-1.27/release-notes/maps/pr-112977-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-112977-map.yaml @@ -1,4 +1,4 @@ -pr: 112977 -releasenote: - text: Documented the reason field in CRI API to ensure it equals `OOMKilled` for the - containers terminated by OOM killer +pr: 112977 +releasenote: + text: Documented the reason field in CRI API to ensure it equals `OOMKilled` for the + containers terminated by OOM killer diff --git a/releases/release-1.27/release-notes/maps/pr-113040-map.yaml b/releases/release-1.27/release-notes/maps/pr-113040-map.yaml index e41b60f391a..d101d779ea2 100644 --- a/releases/release-1.27/release-notes/maps/pr-113040-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113040-map.yaml @@ -1,4 +1,4 @@ -pr: 113040 -releasenote: - text: Changed the error message of `kubectl rollout restart` when subsequent `kubectl - rollout restart` commands are executed within a second +pr: 113040 +releasenote: + text: Changed the error message of `kubectl rollout restart` when subsequent `kubectl + rollout restart` commands are executed within a second diff --git a/releases/release-1.27/release-notes/maps/pr-113121-map.yaml b/releases/release-1.27/release-notes/maps/pr-113121-map.yaml index b87fc31e35a..8ee05e7827b 100644 --- a/releases/release-1.27/release-notes/maps/pr-113121-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113121-map.yaml @@ -1,4 +1,4 @@ -pr: 113121 -releasenote: - text: '`cacheSize` field in `EncryptionConfiguration` is not supported for KMSv2 - provider' +pr: 113121 +releasenote: + text: '`cacheSize` field in `EncryptionConfiguration` is not supported for KMSv2 + provider' diff --git a/releases/release-1.27/release-notes/maps/pr-113267-map.yaml b/releases/release-1.27/release-notes/maps/pr-113267-map.yaml index 260bb20909a..4a2239af9a9 100644 --- a/releases/release-1.27/release-notes/maps/pr-113267-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113267-map.yaml @@ -1,3 +1,3 @@ -pr: 113267 -releasenote: - text: Removed unused rule for `nodes/spec` from `ClusterRole` `system:kubelet-api-admin` +pr: 113267 +releasenote: + text: Removed unused rule for `nodes/spec` from `ClusterRole` `system:kubelet-api-admin` diff --git a/releases/release-1.27/release-notes/maps/pr-113284-map.yaml b/releases/release-1.27/release-notes/maps/pr-113284-map.yaml index f6e8ef68ee8..56b23dc42fc 100644 --- a/releases/release-1.27/release-notes/maps/pr-113284-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113284-map.yaml @@ -1,4 +1,4 @@ -pr: 113284 -releasenote: - text: kubectl will now display `SeccompProfile` for pods, containers and ephemeral - containers, if values were set. +pr: 113284 +releasenote: + text: kubectl will now display `SeccompProfile` for pods, containers and ephemeral + containers, if values were set. diff --git a/releases/release-1.27/release-notes/maps/pr-113318-map.yaml b/releases/release-1.27/release-notes/maps/pr-113318-map.yaml index fc1b980c171..fc6eed1c16f 100644 --- a/releases/release-1.27/release-notes/maps/pr-113318-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113318-map.yaml @@ -1,4 +1,4 @@ -pr: 113318 -releasenote: - text: 'kubeadm: added the experimental (alpha) feature gate `EtcdLearnerMode` that - allows etcd members to be joined as learner and only then promoted as voting members' +pr: 113318 +releasenote: + text: 'kubeadm: added the experimental (alpha) feature gate `EtcdLearnerMode` that + allows etcd members to be joined as learner and only then promoted as voting members' diff --git a/releases/release-1.27/release-notes/maps/pr-113428-map.yaml b/releases/release-1.27/release-notes/maps/pr-113428-map.yaml index ed40cc49ed4..d4f2d49c2f0 100644 --- a/releases/release-1.27/release-notes/maps/pr-113428-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113428-map.yaml @@ -1,3 +1,3 @@ -pr: 113428 -releasenote: - text: NONE +pr: 113428 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-113443-map.yaml b/releases/release-1.27/release-notes/maps/pr-113443-map.yaml index 2cbb93d6ad2..828ce736b2f 100644 --- a/releases/release-1.27/release-notes/maps/pr-113443-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113443-map.yaml @@ -1,4 +1,4 @@ -pr: 113443 -releasenote: - text: Migrated the namespace controller (within `kube-controller-manager`) to support - [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). +pr: 113443 +releasenote: + text: Migrated the namespace controller (within `kube-controller-manager`) to support + [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). diff --git a/releases/release-1.27/release-notes/maps/pr-113471-map.yaml b/releases/release-1.27/release-notes/maps/pr-113471-map.yaml index fdc07d74fa4..4abfb18dd19 100644 --- a/releases/release-1.27/release-notes/maps/pr-113471-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113471-map.yaml @@ -1,4 +1,4 @@ -pr: 113471 -releasenote: - text: 'Migrated the Kubernetes object garbage collector (within `kube-controller-manager`) - to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).' +pr: 113471 +releasenote: + text: 'Migrated the Kubernetes object garbage collector (within `kube-controller-manager`) + to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).' diff --git a/releases/release-1.27/release-notes/maps/pr-113525-map.yaml b/releases/release-1.27/release-notes/maps/pr-113525-map.yaml index 11dc7289cab..7ad0dab3556 100644 --- a/releases/release-1.27/release-notes/maps/pr-113525-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113525-map.yaml @@ -1,4 +1,4 @@ -pr: 113525 -releasenote: - text: Migrated the `Deployment` controller (within `kube-controller-manager`) to - use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) +pr: 113525 +releasenote: + text: Migrated the `Deployment` controller (within `kube-controller-manager`) to + use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) diff --git a/releases/release-1.27/release-notes/maps/pr-113534-map.yaml b/releases/release-1.27/release-notes/maps/pr-113534-map.yaml index 999dd348211..70566af483a 100644 --- a/releases/release-1.27/release-notes/maps/pr-113534-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113534-map.yaml @@ -1,4 +1,4 @@ -pr: 113534 -releasenote: - text: The `ControllerManagerLeaderMigration` feature, GA since `1.24`, is now unconditionally - enabled and the feature gate option has been removed. +pr: 113534 +releasenote: + text: The `ControllerManagerLeaderMigration` feature, GA since `1.24`, is now unconditionally + enabled and the feature gate option has been removed. diff --git a/releases/release-1.27/release-notes/maps/pr-113581-map.yaml b/releases/release-1.27/release-notes/maps/pr-113581-map.yaml index 394fdd97911..889a28a68b5 100644 --- a/releases/release-1.27/release-notes/maps/pr-113581-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113581-map.yaml @@ -1,4 +1,4 @@ -pr: 113581 -releasenote: - text: '`Secret` of `kubernetes.io/tls` type now verifies that the private key matches - the cert' +pr: 113581 +releasenote: + text: '`Secret` of `kubernetes.io/tls` type now verifies that the private key matches + the cert' diff --git a/releases/release-1.27/release-notes/maps/pr-113584-map.yaml b/releases/release-1.27/release-notes/maps/pr-113584-map.yaml index f9d9f0235e1..6070f7c60b8 100644 --- a/releases/release-1.27/release-notes/maps/pr-113584-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113584-map.yaml @@ -1,6 +1,6 @@ -pr: 113584 -releasenote: - text: |- - Migrated the volume attach/detach controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). - Migrated the `PersistentVolumeClaim` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). - Migrated the `PersistentVolume` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). +pr: 113584 +releasenote: + text: |- + Migrated the volume attach/detach controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). + Migrated the `PersistentVolumeClaim` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). + Migrated the `PersistentVolume` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). diff --git a/releases/release-1.27/release-notes/maps/pr-113622-map.yaml b/releases/release-1.27/release-notes/maps/pr-113622-map.yaml index 4ce225dcc15..c084a41c7de 100644 --- a/releases/release-1.27/release-notes/maps/pr-113622-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113622-map.yaml @@ -1,4 +1,4 @@ -pr: 113622 -releasenote: - text: Migrated the `DaemonSet` controller (within `kube-controller-manager`) to - use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) +pr: 113622 +releasenote: + text: Migrated the `DaemonSet` controller (within `kube-controller-manager`) to + use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) diff --git a/releases/release-1.27/release-notes/maps/pr-113742-map.yaml b/releases/release-1.27/release-notes/maps/pr-113742-map.yaml index de867818728..ce36846f210 100644 --- a/releases/release-1.27/release-notes/maps/pr-113742-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113742-map.yaml @@ -1,5 +1,5 @@ -pr: 113742 -releasenote: - text: 'Fixed issue in `Winkernel` Proxier - Unexpected active TCP connection drops - while horizontally scaling the endpoints for a LoadBalancer Service with Internal - Traffic Policy: `Local`' +pr: 113742 +releasenote: + text: 'Fixed issue in `Winkernel` Proxier - Unexpected active TCP connection drops + while horizontally scaling the endpoints for a LoadBalancer Service with Internal + Traffic Policy: `Local`' diff --git a/releases/release-1.27/release-notes/maps/pr-113776-map.yaml b/releases/release-1.27/release-notes/maps/pr-113776-map.yaml index f763164d033..8813cb3f7c3 100644 --- a/releases/release-1.27/release-notes/maps/pr-113776-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113776-map.yaml @@ -1,4 +1,4 @@ -pr: 113776 -releasenote: - text: Fixed issue with `Winkernel Proxier` - No ingress load balancer rules with - endpoints to support load balancing when all the endpoints are terminating. +pr: 113776 +releasenote: + text: Fixed issue with `Winkernel Proxier` - No ingress load balancer rules with + endpoints to support load balancing when all the endpoints are terminating. diff --git a/releases/release-1.27/release-notes/maps/pr-113787-map.yaml b/releases/release-1.27/release-notes/maps/pr-113787-map.yaml index de142730f45..1af74f3ac5b 100644 --- a/releases/release-1.27/release-notes/maps/pr-113787-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113787-map.yaml @@ -1,3 +1,3 @@ -pr: 113787 -releasenote: - text: Fixed `DaemonSet` to update the status even if it fails to create a pod. +pr: 113787 +releasenote: + text: Fixed `DaemonSet` to update the status even if it fails to create a pod. diff --git a/releases/release-1.27/release-notes/maps/pr-113794-map.yaml b/releases/release-1.27/release-notes/maps/pr-113794-map.yaml index 753cd839cdc..082b96188ca 100644 --- a/releases/release-1.27/release-notes/maps/pr-113794-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113794-map.yaml @@ -1,3 +1,3 @@ -pr: 113794 -releasenote: - text: None +pr: 113794 +releasenote: + text: None diff --git a/releases/release-1.27/release-notes/maps/pr-113795-map.yaml b/releases/release-1.27/release-notes/maps/pr-113795-map.yaml index fb52d4e610b..9a42453d3b4 100644 --- a/releases/release-1.27/release-notes/maps/pr-113795-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113795-map.yaml @@ -1,3 +1,3 @@ -pr: 113795 -releasenote: - text: NONE +pr: 113795 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-113834-map.yaml b/releases/release-1.27/release-notes/maps/pr-113834-map.yaml index 5574537332e..7efbe27736f 100644 --- a/releases/release-1.27/release-notes/maps/pr-113834-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113834-map.yaml @@ -1,3 +1,3 @@ -pr: 113834 -releasenote: - text: '`statefulset` status will now be consistent on API errors' +pr: 113834 +releasenote: + text: '`statefulset` status will now be consistent on API errors' diff --git a/releases/release-1.27/release-notes/maps/pr-113840-map.yaml b/releases/release-1.27/release-notes/maps/pr-113840-map.yaml index 486dcc335a5..f879b338194 100644 --- a/releases/release-1.27/release-notes/maps/pr-113840-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113840-map.yaml @@ -1,4 +1,4 @@ -pr: 113840 -releasenote: - text: 'Migrated the StatefulSet controller (within `kube-controller-manager`) to - use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging)' +pr: 113840 +releasenote: + text: 'Migrated the StatefulSet controller (within `kube-controller-manager`) to + use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging)' diff --git a/releases/release-1.27/release-notes/maps/pr-113910-map.yaml b/releases/release-1.27/release-notes/maps/pr-113910-map.yaml index ac93402f849..a7301541d91 100644 --- a/releases/release-1.27/release-notes/maps/pr-113910-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113910-map.yaml @@ -1,6 +1,6 @@ -pr: 113910 -releasenote: - text: 'Migrated the `ClusterRole` aggregation controller (within `kube-controller-manager`) - to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).' - - +pr: 113910 +releasenote: + text: 'Migrated the `ClusterRole` aggregation controller (within `kube-controller-manager`) + to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).' + + diff --git a/releases/release-1.27/release-notes/maps/pr-113916-map.yaml b/releases/release-1.27/release-notes/maps/pr-113916-map.yaml index 9610e9dffb3..c024bc6866d 100644 --- a/releases/release-1.27/release-notes/maps/pr-113916-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113916-map.yaml @@ -1,4 +1,4 @@ -pr: 113916 -releasenote: - text: Migrated the “TTL after finished” controller (within `kube-controller-manager`)to - use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). +pr: 113916 +releasenote: + text: Migrated the “TTL after finished” controller (within `kube-controller-manager`)to + use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). diff --git a/releases/release-1.27/release-notes/maps/pr-113933-map.yaml b/releases/release-1.27/release-notes/maps/pr-113933-map.yaml index 19ce180dd71..dd6a5369320 100644 --- a/releases/release-1.27/release-notes/maps/pr-113933-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113933-map.yaml @@ -1,5 +1,5 @@ -pr: 113933 -releasenote: - text: 'client-go: fixed potential data races retrying requests using a custom `io.Reader` - body; with this fix, only requests with no body or with `string` / `[]byte` / - `runtime.Object` bodies can be retried' +pr: 113933 +releasenote: + text: 'client-go: fixed potential data races retrying requests using a custom `io.Reader` + body; with this fix, only requests with no body or with `string` / `[]byte` / + `runtime.Object` bodies can be retried' diff --git a/releases/release-1.27/release-notes/maps/pr-113942-map.yaml b/releases/release-1.27/release-notes/maps/pr-113942-map.yaml index d341afee582..40dd47a2082 100644 --- a/releases/release-1.27/release-notes/maps/pr-113942-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113942-map.yaml @@ -1,5 +1,5 @@ -pr: 113942 -releasenote: - text: 'The following feature gates for volume expansion GA features have now been - removed and must no longer be referenced in `--feature-gates` flags: `ExpandCSIVolumes`, - `ExpandInUsePersistentVolumes`, `ExpandPersistentVolumes`' +pr: 113942 +releasenote: + text: 'The following feature gates for volume expansion GA features have now been + removed and must no longer be referenced in `--feature-gates` flags: `ExpandCSIVolumes`, + `ExpandInUsePersistentVolumes`, `ExpandPersistentVolumes`' diff --git a/releases/release-1.27/release-notes/maps/pr-113943-map.yaml b/releases/release-1.27/release-notes/maps/pr-113943-map.yaml index a26c3bbe06c..21ae346934d 100644 --- a/releases/release-1.27/release-notes/maps/pr-113943-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113943-map.yaml @@ -1,3 +1,3 @@ -pr: 113943 -releasenote: - text: NONE +pr: 113943 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-113985-map.yaml b/releases/release-1.27/release-notes/maps/pr-113985-map.yaml index e4e7ad67337..5ead19b7c5e 100644 --- a/releases/release-1.27/release-notes/maps/pr-113985-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113985-map.yaml @@ -1,6 +1,6 @@ -pr: 113985 -releasenote: - text: Shared informers now correctly propagate whether they are synced or not. Individual - informer handlers may now check if they are synced or not (new `HasSynced` method). - Library support is added to assist controllers in tracking whether their own work - is completed for items in the initial list (`AsyncTracker`). +pr: 113985 +releasenote: + text: Shared informers now correctly propagate whether they are synced or not. Individual + informer handlers may now check if they are synced or not (new `HasSynced` method). + Library support is added to assist controllers in tracking whether their own work + is completed for items in the initial list (`AsyncTracker`). diff --git a/releases/release-1.27/release-notes/maps/pr-113986-map.yaml b/releases/release-1.27/release-notes/maps/pr-113986-map.yaml index bbe6fc9565f..349b4e7c296 100644 --- a/releases/release-1.27/release-notes/maps/pr-113986-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113986-map.yaml @@ -1,4 +1,4 @@ -pr: 113986 -releasenote: - text: '`StorageVersionGC` (within `kube-controller-manager`) to use [contextual - logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).' +pr: 113986 +releasenote: + text: '`StorageVersionGC` (within `kube-controller-manager`) to use [contextual + logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).' diff --git a/releases/release-1.27/release-notes/maps/pr-113998-map.yaml b/releases/release-1.27/release-notes/maps/pr-113998-map.yaml index 57500e6c4de..c6129b77cbd 100644 --- a/releases/release-1.27/release-notes/maps/pr-113998-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-113998-map.yaml @@ -1,3 +1,3 @@ -pr: 113998 -releasenote: - text: '`kubeadm`: now respects user provided `kubeconfig` during discovery process' +pr: 113998 +releasenote: + text: '`kubeadm`: now respects user provided `kubeconfig` during discovery process' diff --git a/releases/release-1.27/release-notes/maps/pr-114015-map.yaml b/releases/release-1.27/release-notes/maps/pr-114015-map.yaml index 7efc1797618..fb2e347b092 100644 --- a/releases/release-1.27/release-notes/maps/pr-114015-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114015-map.yaml @@ -1,3 +1,3 @@ -pr: 114015 -releasenote: - text: NONE +pr: 114015 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114033-map.yaml b/releases/release-1.27/release-notes/maps/pr-114033-map.yaml index e5d996ba52f..cd07fd149b3 100644 --- a/releases/release-1.27/release-notes/maps/pr-114033-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114033-map.yaml @@ -1,3 +1,3 @@ -pr: 114033 -releasenote: - text: NONE +pr: 114033 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114051-map.yaml b/releases/release-1.27/release-notes/maps/pr-114051-map.yaml index e921a2f18a9..a3a1291ec1c 100644 --- a/releases/release-1.27/release-notes/maps/pr-114051-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114051-map.yaml @@ -1,3 +1,3 @@ -pr: 114051 -releasenote: - text: Added scheduler preemption support for pods using `ReadWriteOncePod` PVCs +pr: 114051 +releasenote: + text: Added scheduler preemption support for pods using `ReadWriteOncePod` PVCs diff --git a/releases/release-1.27/release-notes/maps/pr-114055-map.yaml b/releases/release-1.27/release-notes/maps/pr-114055-map.yaml index f6623e1dcfa..84d653c356c 100644 --- a/releases/release-1.27/release-notes/maps/pr-114055-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114055-map.yaml @@ -1,4 +1,4 @@ -pr: 114055 -releasenote: - text: Kubernetes components that perform leader election now only support using - `Leases` for this. +pr: 114055 +releasenote: + text: Kubernetes components that perform leader election now only support using + `Leases` for this. diff --git a/releases/release-1.27/release-notes/maps/pr-114065-map.yaml b/releases/release-1.27/release-notes/maps/pr-114065-map.yaml index 18a8121878c..d0442bb4981 100644 --- a/releases/release-1.27/release-notes/maps/pr-114065-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114065-map.yaml @@ -1,3 +1,3 @@ -pr: 114065 -releasenote: - text: NONE +pr: 114065 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114086-map.yaml b/releases/release-1.27/release-notes/maps/pr-114086-map.yaml index 307eaf9a99e..0a299126e14 100644 --- a/releases/release-1.27/release-notes/maps/pr-114086-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114086-map.yaml @@ -1,4 +1,4 @@ -pr: 114086 -releasenote: - text: If a user attempts to add an ephemeral container to a static pod, they will - now get a visible validation error. +pr: 114086 +releasenote: + text: If a user attempts to add an ephemeral container to a static pod, they will + now get a visible validation error. diff --git a/releases/release-1.27/release-notes/maps/pr-114116-map.yaml b/releases/release-1.27/release-notes/maps/pr-114116-map.yaml index ed4e8de6457..eb801815707 100644 --- a/releases/release-1.27/release-notes/maps/pr-114116-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114116-map.yaml @@ -1,4 +1,4 @@ -pr: 114116 -releasenote: - text: Fixed `StatefulSetAutoDeletePVC` feature when `OwnerReferencesPermissionEnforcement` - admission plugin is enabled. +pr: 114116 +releasenote: + text: Fixed `StatefulSetAutoDeletePVC` feature when `OwnerReferencesPermissionEnforcement` + admission plugin is enabled. diff --git a/releases/release-1.27/release-notes/maps/pr-114125-map.yaml b/releases/release-1.27/release-notes/maps/pr-114125-map.yaml index ec1e2f7250e..6eccf5f2bc2 100644 --- a/releases/release-1.27/release-notes/maps/pr-114125-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114125-map.yaml @@ -1,7 +1,7 @@ -pr: 114125 -releasenote: - text: |- - Scheduler no longer runs the plugin's `Filter` method when its `PreFilter` method returned a Skip status. - In other words, your `PreFilter`/`Filter` plugin can return a Skip status in `PreFilter` if the plugin does nothing in Filter for that Pod. - Scheduler skips `NodeAffinity` Filter plugin when `NodeAffinity` Filter plugin has nothing to do with a Pod. - It may affect some metrics values related to the `NodeAffinity` Filter plugin. +pr: 114125 +releasenote: + text: |- + Scheduler no longer runs the plugin's `Filter` method when its `PreFilter` method returned a Skip status. + In other words, your `PreFilter`/`Filter` plugin can return a Skip status in `PreFilter` if the plugin does nothing in Filter for that Pod. + Scheduler skips `NodeAffinity` Filter plugin when `NodeAffinity` Filter plugin has nothing to do with a Pod. + It may affect some metrics values related to the `NodeAffinity` Filter plugin. diff --git a/releases/release-1.27/release-notes/maps/pr-114155-map.yaml b/releases/release-1.27/release-notes/maps/pr-114155-map.yaml index 61f03318084..09e0b6fc2d2 100644 --- a/releases/release-1.27/release-notes/maps/pr-114155-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114155-map.yaml @@ -1,4 +1,4 @@ -pr: 114155 -releasenote: - text: fixed a bug on the `EndpointSlice` mirroring controller that generated multiple - slices in some cases for custom endpoints in non canonical format. +pr: 114155 +releasenote: + text: fixed a bug on the `EndpointSlice` mirroring controller that generated multiple + slices in some cases for custom endpoints in non canonical format. diff --git a/releases/release-1.27/release-notes/maps/pr-114172-map.yaml b/releases/release-1.27/release-notes/maps/pr-114172-map.yaml index 91349c837eb..b0e4ab3cc12 100644 --- a/releases/release-1.27/release-notes/maps/pr-114172-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114172-map.yaml @@ -1,7 +1,7 @@ -pr: 114172 -releasenote: - text: |- - `StatefulSet` names must be DNS labels, rather than subdomains. Any `StatefulSet` - which took advantage of subdomain validation (by having dots in the name) can't - possibly have worked, because we eventually set `pod.spec.hostname` from the `StatefulSetName`, - and that is validated as a DNS label. +pr: 114172 +releasenote: + text: |- + `StatefulSet` names must be DNS labels, rather than subdomains. Any `StatefulSet` + which took advantage of subdomain validation (by having dots in the name) can't + possibly have worked, because we eventually set `pod.spec.hostname` from the `StatefulSetName`, + and that is validated as a DNS label. diff --git a/releases/release-1.27/release-notes/maps/pr-114176-map.yaml b/releases/release-1.27/release-notes/maps/pr-114176-map.yaml index 70225eac020..be7e0197af4 100644 --- a/releases/release-1.27/release-notes/maps/pr-114176-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114176-map.yaml @@ -1,4 +1,4 @@ -pr: 114176 -releasenote: - text: 'kubeadm: improved retries when updating node information, in case `kube-apiserver` - is temporarily unavailable' +pr: 114176 +releasenote: + text: 'kubeadm: improved retries when updating node information, in case `kube-apiserver` + is temporarily unavailable' diff --git a/releases/release-1.27/release-notes/maps/pr-114226-map.yaml b/releases/release-1.27/release-notes/maps/pr-114226-map.yaml index 6e4556e22c3..5b56a4eff45 100644 --- a/releases/release-1.27/release-notes/maps/pr-114226-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114226-map.yaml @@ -1,4 +1,4 @@ -pr: 114226 -releasenote: - text: Made `apiextensions-apiserver` binary linking static (also affects the deb - and rpm packages). +pr: 114226 +releasenote: + text: Made `apiextensions-apiserver` binary linking static (also affects the deb + and rpm packages). diff --git a/releases/release-1.27/release-notes/maps/pr-114227-map.yaml b/releases/release-1.27/release-notes/maps/pr-114227-map.yaml index cdc7f47207b..a8536bbfb01 100644 --- a/releases/release-1.27/release-notes/maps/pr-114227-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114227-map.yaml @@ -1,4 +1,4 @@ -pr: 114227 -releasenote: - text: Made `kube-aggregator` binary linking static (also affects the deb and rpm - packages). +pr: 114227 +releasenote: + text: Made `kube-aggregator` binary linking static (also affects the deb and rpm + packages). diff --git a/releases/release-1.27/release-notes/maps/pr-114228-map.yaml b/releases/release-1.27/release-notes/maps/pr-114228-map.yaml index daf8bcca7d0..40bf41e7c05 100644 --- a/releases/release-1.27/release-notes/maps/pr-114228-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114228-map.yaml @@ -1,4 +1,4 @@ -pr: 114228 -releasenote: - text: Made `kubectl-convert` binary linking static (also affects the deb and rpm - packages). +pr: 114228 +releasenote: + text: Made `kubectl-convert` binary linking static (also affects the deb and rpm + packages). diff --git a/releases/release-1.27/release-notes/maps/pr-114231-map.yaml b/releases/release-1.27/release-notes/maps/pr-114231-map.yaml index ae75823ad2a..23acaa29b0c 100644 --- a/releases/release-1.27/release-notes/maps/pr-114231-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114231-map.yaml @@ -1,4 +1,4 @@ -pr: 114231 -releasenote: - text: Fixed issue on Windows when calculating cpu limits on nodes with more than - 64 logical processors +pr: 114231 +releasenote: + text: Fixed issue on Windows when calculating cpu limits on nodes with more than + 64 logical processors diff --git a/releases/release-1.27/release-notes/maps/pr-114236-map.yaml b/releases/release-1.27/release-notes/maps/pr-114236-map.yaml index def9b9e7c34..4df58dd2a0f 100644 --- a/releases/release-1.27/release-notes/maps/pr-114236-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114236-map.yaml @@ -1,3 +1,3 @@ -pr: 114236 -releasenote: - text: Fixed a data race when emitting similar Events consecutively +pr: 114236 +releasenote: + text: Fixed a data race when emitting similar Events consecutively diff --git a/releases/release-1.27/release-notes/maps/pr-114237-map.yaml b/releases/release-1.27/release-notes/maps/pr-114237-map.yaml index aa7332df012..08b2614dc23 100644 --- a/releases/release-1.27/release-notes/maps/pr-114237-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114237-map.yaml @@ -1,4 +1,4 @@ -pr: 114237 -releasenote: - text: Fixed a bug where when emitting similar Events consecutively, some were rejected - by the apiserver. +pr: 114237 +releasenote: + text: Fixed a bug where when emitting similar Events consecutively, some were rejected + by the apiserver. diff --git a/releases/release-1.27/release-notes/maps/pr-114246-map.yaml b/releases/release-1.27/release-notes/maps/pr-114246-map.yaml index 6b63770df13..f8c09ce7a9e 100644 --- a/releases/release-1.27/release-notes/maps/pr-114246-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114246-map.yaml @@ -1,4 +1,4 @@ -pr: 114246 -releasenote: - text: Made mounter interface exportable by making `CanSafelySkipMountPointCheck` - exportable function +pr: 114246 +releasenote: + text: Made mounter interface exportable by making `CanSafelySkipMountPointCheck` + exportable function diff --git a/releases/release-1.27/release-notes/maps/pr-114249-map.yaml b/releases/release-1.27/release-notes/maps/pr-114249-map.yaml index 46f5bccd045..d646115d022 100644 --- a/releases/release-1.27/release-notes/maps/pr-114249-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114249-map.yaml @@ -1,4 +1,4 @@ -pr: 114249 -releasenote: - text: Changed the error message to `cannot exec into multiple objects at a time` - when file passed to `kubectl exec` contains multiple resources +pr: 114249 +releasenote: + text: Changed the error message to `cannot exec into multiple objects at a time` + when file passed to `kubectl exec` contains multiple resources diff --git a/releases/release-1.27/release-notes/maps/pr-114252-map.yaml b/releases/release-1.27/release-notes/maps/pr-114252-map.yaml index 5e34c5de6ff..a47784fc825 100644 --- a/releases/release-1.27/release-notes/maps/pr-114252-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114252-map.yaml @@ -1,4 +1,4 @@ -pr: 114252 -releasenote: - text: Added (dry run) and (server dry run) suffixes to `kubectl scale` command when - `dry-run` is passed +pr: 114252 +releasenote: + text: Added (dry run) and (server dry run) suffixes to `kubectl scale` command when + `dry-run` is passed diff --git a/releases/release-1.27/release-notes/maps/pr-114279-map.yaml b/releases/release-1.27/release-notes/maps/pr-114279-map.yaml index 26c9cdae9af..a462dc67927 100644 --- a/releases/release-1.27/release-notes/maps/pr-114279-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114279-map.yaml @@ -1,3 +1,3 @@ -pr: 114279 -releasenote: - text: kube-up now includes `CoreDNS` version `v1.9.3` +pr: 114279 +releasenote: + text: kube-up now includes `CoreDNS` version `v1.9.3` diff --git a/releases/release-1.27/release-notes/maps/pr-114350-map.yaml b/releases/release-1.27/release-notes/maps/pr-114350-map.yaml index 01faa5f1285..bd57540f33b 100644 --- a/releases/release-1.27/release-notes/maps/pr-114350-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114350-map.yaml @@ -1,3 +1,3 @@ -pr: 114350 -releasenote: - text: Deflaked a preemption test that may patch Nodes incorrectly. +pr: 114350 +releasenote: + text: Deflaked a preemption test that may patch Nodes incorrectly. diff --git a/releases/release-1.27/release-notes/maps/pr-114355-map.yaml b/releases/release-1.27/release-notes/maps/pr-114355-map.yaml index 0d0af57cc27..c82fdd26191 100644 --- a/releases/release-1.27/release-notes/maps/pr-114355-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114355-map.yaml @@ -1,3 +1,3 @@ -pr: 114355 -releasenote: - text: NONE +pr: 114355 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114357-map.yaml b/releases/release-1.27/release-notes/maps/pr-114357-map.yaml index 9cfdd806668..e09b3df7fa3 100644 --- a/releases/release-1.27/release-notes/maps/pr-114357-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114357-map.yaml @@ -1,3 +1,3 @@ -pr: 114357 -releasenote: - text: NONE +pr: 114357 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114393-map.yaml b/releases/release-1.27/release-notes/maps/pr-114393-map.yaml index 20880b2f4e2..226bd4383f5 100644 --- a/releases/release-1.27/release-notes/maps/pr-114393-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114393-map.yaml @@ -1,9 +1,9 @@ -pr: 114393 -releasenote: - text: |- - Added new option to the `InterPodAffinity` scheduler plugin to ignore existing - pods` preferred inter-pod affinities if the incoming pod has no preferred inter-pod - affinities. This option can be used as an optimization for higher scheduling throughput - (at the cost of an occasional pod being scheduled non-optimally/violating existing - pods preferred inter-pod affinities). To enable this scheduler option, set the - `InterPodAffinity` scheduler plugin arg `ignorePreferredTermsOfExistingPods: true` +pr: 114393 +releasenote: + text: |- + Added new option to the `InterPodAffinity` scheduler plugin to ignore existing + pods` preferred inter-pod affinities if the incoming pod has no preferred inter-pod + affinities. This option can be used as an optimization for higher scheduling throughput + (at the cost of an occasional pod being scheduled non-optimally/violating existing + pods preferred inter-pod affinities). To enable this scheduler option, set the + `InterPodAffinity` scheduler plugin arg `ignorePreferredTermsOfExistingPods: true` diff --git a/releases/release-1.27/release-notes/maps/pr-114397-map.yaml b/releases/release-1.27/release-notes/maps/pr-114397-map.yaml index f044e966c69..a708c44b4eb 100644 --- a/releases/release-1.27/release-notes/maps/pr-114397-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114397-map.yaml @@ -1,3 +1,3 @@ -pr: 114397 -releasenote: - text: NONE +pr: 114397 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114407-map.yaml b/releases/release-1.27/release-notes/maps/pr-114407-map.yaml index 902f1d0c1c7..78624d9bea7 100644 --- a/releases/release-1.27/release-notes/maps/pr-114407-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114407-map.yaml @@ -1,4 +1,4 @@ -pr: 114407 -releasenote: - text: 'Optimized `LoadBalancer` creation with the help of attribute Internal Traffic - Policy: `Local`' +pr: 114407 +releasenote: + text: 'Optimized `LoadBalancer` creation with the help of attribute Internal Traffic + Policy: `Local`' diff --git a/releases/release-1.27/release-notes/maps/pr-114412-map.yaml b/releases/release-1.27/release-notes/maps/pr-114412-map.yaml index b6a5e05b892..5159b4077a9 100644 --- a/releases/release-1.27/release-notes/maps/pr-114412-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114412-map.yaml @@ -1,4 +1,4 @@ -pr: 114412 -releasenote: - text: Added warnings about workload resources (Pods, ReplicaSets, Deployments, Jobs, - CronJobs, or ReplicationControllers) whose names are not valid DNS labels. +pr: 114412 +releasenote: + text: Added warnings about workload resources (Pods, ReplicaSets, Deployments, Jobs, + CronJobs, or ReplicationControllers) whose names are not valid DNS labels. diff --git a/releases/release-1.27/release-notes/maps/pr-114414-map.yaml b/releases/release-1.27/release-notes/maps/pr-114414-map.yaml index e15f90f7b11..04fb51a0385 100644 --- a/releases/release-1.27/release-notes/maps/pr-114414-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114414-map.yaml @@ -1,3 +1,3 @@ -pr: 114414 -releasenote: - text: NONE +pr: 114414 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114417-map.yaml b/releases/release-1.27/release-notes/maps/pr-114417-map.yaml index d64de58e11a..68b6ecdeebd 100644 --- a/releases/release-1.27/release-notes/maps/pr-114417-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114417-map.yaml @@ -1,4 +1,4 @@ -pr: 114417 -releasenote: - text: total test spec is now available by `ProgressReporter`, it will be reported - before test suite got executed. +pr: 114417 +releasenote: + text: total test spec is now available by `ProgressReporter`, it will be reported + before test suite got executed. diff --git a/releases/release-1.27/release-notes/maps/pr-114418-map.yaml b/releases/release-1.27/release-notes/maps/pr-114418-map.yaml index b809a300d51..99d87f8b3bd 100644 --- a/releases/release-1.27/release-notes/maps/pr-114418-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114418-map.yaml @@ -1,7 +1,7 @@ -pr: 114418 -releasenote: - text: Added new feature gate `ServiceNodePortStaticSubrange`, to enable the new - strategy in the `NodePort` Service port allocators, so the node port range is - subdivided and dynamic allocated `NodePort` port for Services are allocated - preferentially from the upper range. +pr: 114418 +releasenote: + text: Added new feature gate `ServiceNodePortStaticSubrange`, to enable the new + strategy in the `NodePort` Service port allocators, so the node port range is + subdivided and dynamic allocated `NodePort` port for Services are allocated + preferentially from the upper range. \ No newline at end of file diff --git a/releases/release-1.27/release-notes/maps/pr-114426-map.yaml b/releases/release-1.27/release-notes/maps/pr-114426-map.yaml index c1152d7014e..685a368d62e 100644 --- a/releases/release-1.27/release-notes/maps/pr-114426-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114426-map.yaml @@ -1,3 +1,3 @@ -pr: 114426 -releasenote: - text: NONE +pr: 114426 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114434-map.yaml b/releases/release-1.27/release-notes/maps/pr-114434-map.yaml index 89697726ee5..e9eea3991f1 100644 --- a/releases/release-1.27/release-notes/maps/pr-114434-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114434-map.yaml @@ -1,4 +1,4 @@ -pr: 114434 -releasenote: - text: |- - `client-go`: `sharedInformerFactory` now waits for goroutines during shutdown for metadatainformer and dynamicinformer. +pr: 114434 +releasenote: + text: |- + `client-go`: `sharedInformerFactory` now waits for goroutines during shutdown for metadatainformer and dynamicinformer. diff --git a/releases/release-1.27/release-notes/maps/pr-114445-map.yaml b/releases/release-1.27/release-notes/maps/pr-114445-map.yaml index 3b7554c2b9b..96137cc97bf 100644 --- a/releases/release-1.27/release-notes/maps/pr-114445-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114445-map.yaml @@ -1,5 +1,5 @@ -pr: 114445 -releasenote: - text: |- - `MinDomainsInPodTopologySpread` feature gate is enabled by default as a - Beta feature in 1.27. +pr: 114445 +releasenote: + text: |- + `MinDomainsInPodTopologySpread` feature gate is enabled by default as a + Beta feature in 1.27. diff --git a/releases/release-1.27/release-notes/maps/pr-114446-map.yaml b/releases/release-1.27/release-notes/maps/pr-114446-map.yaml index 560a42347de..ea8dec2cf0b 100644 --- a/releases/release-1.27/release-notes/maps/pr-114446-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114446-map.yaml @@ -1,3 +1,3 @@ -pr: 114446 -releasenote: - text: Removed flag `master-service-namespace` from `api-server` arguments +pr: 114446 +releasenote: + text: Removed flag `master-service-namespace` from `api-server` arguments diff --git a/releases/release-1.27/release-notes/maps/pr-114455-map.yaml b/releases/release-1.27/release-notes/maps/pr-114455-map.yaml index 431a16afd29..37503d48dff 100644 --- a/releases/release-1.27/release-notes/maps/pr-114455-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114455-map.yaml @@ -1,4 +1,4 @@ -pr: 114455 -releasenote: - text: 'kubeadm: fixed the bug where `kubeadm` always does CRI detection even if - it is not required by a phase subcommand' +pr: 114455 +releasenote: + text: 'kubeadm: fixed the bug where `kubeadm` always does CRI detection even if + it is not required by a phase subcommand' diff --git a/releases/release-1.27/release-notes/maps/pr-114459-map.yaml b/releases/release-1.27/release-notes/maps/pr-114459-map.yaml index 11cbf7e839b..329c4ba8e29 100644 --- a/releases/release-1.27/release-notes/maps/pr-114459-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114459-map.yaml @@ -1,4 +1,4 @@ -pr: 114459 -releasenote: - text: Fixed stuck apiserver if an aggregated apiservice returned `304 Not Modified` - for aggregated discovery information +pr: 114459 +releasenote: + text: Fixed stuck apiserver if an aggregated apiservice returned `304 Not Modified` + for aggregated discovery information diff --git a/releases/release-1.27/release-notes/maps/pr-114460-map.yaml b/releases/release-1.27/release-notes/maps/pr-114460-map.yaml index c114dddd983..440922c7af9 100644 --- a/releases/release-1.27/release-notes/maps/pr-114460-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114460-map.yaml @@ -1,5 +1,5 @@ -pr: 114460 -releasenote: - text: |- - `kubectl port-forward` now exits with exit code 1 when remote connection is - lost +pr: 114460 +releasenote: + text: |- + `kubectl port-forward` now exits with exit code 1 when remote connection is + lost diff --git a/releases/release-1.27/release-notes/maps/pr-114464-map.yaml b/releases/release-1.27/release-notes/maps/pr-114464-map.yaml index 708600d87f8..eb9c45c6da0 100644 --- a/releases/release-1.27/release-notes/maps/pr-114464-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114464-map.yaml @@ -1,6 +1,6 @@ -pr: 114464 -releasenote: - text: Fixed file permission issues that happened during update of `Secret`/`ConfigMap`/`projected - volume` when `fsGroup` is used. The problem caused a race condition where application - gets intermittent permission denied error when reading files that were just updated, - before the correct permissions were applied. +pr: 114464 +releasenote: + text: Fixed file permission issues that happened during update of `Secret`/`ConfigMap`/`projected + volume` when `fsGroup` is used. The problem caused a race condition where application + gets intermittent permission denied error when reading files that were just updated, + before the correct permissions were applied. diff --git a/releases/release-1.27/release-notes/maps/pr-114472-map.yaml b/releases/release-1.27/release-notes/maps/pr-114472-map.yaml index f567ad28c2f..daacabe4022 100644 --- a/releases/release-1.27/release-notes/maps/pr-114472-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114472-map.yaml @@ -1,7 +1,7 @@ -pr: 114472 -releasenote: - text: |- - `Kubelet` no longer creates certain legacy iptables rules by default. - It is possible that this will cause problems with some third-party components - that improperly depended on those rules. If this affects you, you can run - `kubelet` with `--feature-gates=IPTablesOwnershipCleanup=false`, but a bug should also be filed against the third-party component. +pr: 114472 +releasenote: + text: |- + `Kubelet` no longer creates certain legacy iptables rules by default. + It is possible that this will cause problems with some third-party components + that improperly depended on those rules. If this affects you, you can run + `kubelet` with `--feature-gates=IPTablesOwnershipCleanup=false`, but a bug should also be filed against the third-party component. diff --git a/releases/release-1.27/release-notes/maps/pr-114490-map.yaml b/releases/release-1.27/release-notes/maps/pr-114490-map.yaml index 768af88be02..d5825b0019f 100644 --- a/releases/release-1.27/release-notes/maps/pr-114490-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114490-map.yaml @@ -1,4 +1,4 @@ -pr: 114490 -releasenote: - text: Changed docs for `--contention-profiling` flag to reflect it performed block - profiling +pr: 114490 +releasenote: + text: Changed docs for `--contention-profiling` flag to reflect it performed block + profiling diff --git a/releases/release-1.27/release-notes/maps/pr-114494-map.yaml b/releases/release-1.27/release-notes/maps/pr-114494-map.yaml index c6905f1ea3c..198ae088030 100644 --- a/releases/release-1.27/release-notes/maps/pr-114494-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114494-map.yaml @@ -1,3 +1,3 @@ -pr: 114494 -releasenote: - text: The `ReadWriteOncePod` feature gate has been graduated to beta. +pr: 114494 +releasenote: + text: The `ReadWriteOncePod` feature gate has been graduated to beta. diff --git a/releases/release-1.27/release-notes/maps/pr-114497-map.yaml b/releases/release-1.27/release-notes/maps/pr-114497-map.yaml index fdf757f484f..10a92521746 100644 --- a/releases/release-1.27/release-notes/maps/pr-114497-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114497-map.yaml @@ -1,6 +1,6 @@ -pr: 114497 -releasenote: - text: |- - Introduced new metrics removing the redundant subsystem in kube-apiserver pod logs metrics and deprecate the original ones: - - kube_apiserver_pod_logs_pods_logs_backend_tls_failure_total becomes kube_apiserver_pod_logs_backend_tls_failure_total - - kube_apiserver_pod_logs_pods_logs_insecure_backend_total becomes kube_apiserver_pod_logs_insecure_backend_total +pr: 114497 +releasenote: + text: |- + Introduced new metrics removing the redundant subsystem in kube-apiserver pod logs metrics and deprecate the original ones: + - kube_apiserver_pod_logs_pods_logs_backend_tls_failure_total becomes kube_apiserver_pod_logs_backend_tls_failure_total + - kube_apiserver_pod_logs_pods_logs_insecure_backend_total becomes kube_apiserver_pod_logs_insecure_backend_total diff --git a/releases/release-1.27/release-notes/maps/pr-114498-map.yaml b/releases/release-1.27/release-notes/maps/pr-114498-map.yaml index d24e0726c9f..861e7cb0992 100644 --- a/releases/release-1.27/release-notes/maps/pr-114498-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114498-map.yaml @@ -1,3 +1,3 @@ -pr: 114498 -releasenote: - text: NONE +pr: 114498 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114505-map.yaml b/releases/release-1.27/release-notes/maps/pr-114505-map.yaml index 4fa465ead5c..5512364fb55 100644 --- a/releases/release-1.27/release-notes/maps/pr-114505-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114505-map.yaml @@ -1,6 +1,6 @@ -pr: 114505 -releasenote: - text: |- - Added warnings to the Services API. Kubernetes now warns for Services in the case of: - - IPv4 addresses with leading zeros - - IPv6 address in non-canonical format (RFC 5952) +pr: 114505 +releasenote: + text: |- + Added warnings to the Services API. Kubernetes now warns for Services in the case of: + - IPv4 addresses with leading zeros + - IPv6 address in non-canonical format (RFC 5952) diff --git a/releases/release-1.27/release-notes/maps/pr-114516-map.yaml b/releases/release-1.27/release-notes/maps/pr-114516-map.yaml index c5c8812f3b5..c1f63fa5540 100644 --- a/releases/release-1.27/release-notes/maps/pr-114516-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114516-map.yaml @@ -1,6 +1,6 @@ -pr: 114516 -releasenote: - text: Fixed an issue where failed pods associated with a job with `parallelism = - 1` are recreated by the job controller honoring exponential backoff delay again. - However, for jobs with `parallelism > 1`, pods might be created without exponential - backoff delay. +pr: 114516 +releasenote: + text: Fixed an issue where failed pods associated with a job with `parallelism = + 1` are recreated by the job controller honoring exponential backoff delay again. + However, for jobs with `parallelism > 1`, pods might be created without exponential + backoff delay. diff --git a/releases/release-1.27/release-notes/maps/pr-114518-map.yaml b/releases/release-1.27/release-notes/maps/pr-114518-map.yaml index 4ba726999cf..1ce33d541d3 100644 --- a/releases/release-1.27/release-notes/maps/pr-114518-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114518-map.yaml @@ -1,3 +1,3 @@ -pr: 114518 -releasenote: - text: Fixed a regression that the scheduler always goes through all Filter plugins. +pr: 114518 +releasenote: + text: Fixed a regression that the scheduler always goes through all Filter plugins. diff --git a/releases/release-1.27/release-notes/maps/pr-114540-map.yaml b/releases/release-1.27/release-notes/maps/pr-114540-map.yaml index b460abb40f9..a1266b0760f 100644 --- a/releases/release-1.27/release-notes/maps/pr-114540-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114540-map.yaml @@ -1,5 +1,5 @@ -pr: 114540 -releasenote: - text: |- - kubeadm: removed the deprecated `v1beta2` API. kubeadm 1.26's `config migrate` - command can be used to migrate a `v1beta2` configuration file to `v1beta3` +pr: 114540 +releasenote: + text: |- + kubeadm: removed the deprecated `v1beta2` API. kubeadm 1.26's `config migrate` + command can be used to migrate a `v1beta2` configuration file to `v1beta3` diff --git a/releases/release-1.27/release-notes/maps/pr-114570-map.yaml b/releases/release-1.27/release-notes/maps/pr-114570-map.yaml index 4bbd2794e6d..23bd83abff6 100644 --- a/releases/release-1.27/release-notes/maps/pr-114570-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114570-map.yaml @@ -1,3 +1,3 @@ -pr: 114570 -releasenote: - text: NONE +pr: 114570 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114584-map.yaml b/releases/release-1.27/release-notes/maps/pr-114584-map.yaml index 3a23a645604..41055b96f59 100644 --- a/releases/release-1.27/release-notes/maps/pr-114584-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114584-map.yaml @@ -1,3 +1,3 @@ -pr: 114584 -releasenote: - text: Describing the CRs will now hide `.metadata.managedFields` +pr: 114584 +releasenote: + text: Describing the CRs will now hide `.metadata.managedFields` diff --git a/releases/release-1.27/release-notes/maps/pr-114585-map.yaml b/releases/release-1.27/release-notes/maps/pr-114585-map.yaml index abb3ed53172..892681656e0 100644 --- a/releases/release-1.27/release-notes/maps/pr-114585-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114585-map.yaml @@ -1,5 +1,5 @@ -pr: 114585 -releasenote: - text: The list-type of the alpha `resourceClaims` field introduced to `Pods` in - `1.26.0` was modified from `set` to `map`, resolving an incompatibility with use - of this schema in `CustomResourceDefinitions` and with server-side apply. +pr: 114585 +releasenote: + text: The list-type of the alpha `resourceClaims` field introduced to `Pods` in + `1.26.0` was modified from `set` to `map`, resolving an incompatibility with use + of this schema in `CustomResourceDefinitions` and with server-side apply. diff --git a/releases/release-1.27/release-notes/maps/pr-114596-map.yaml b/releases/release-1.27/release-notes/maps/pr-114596-map.yaml index df41cf600c5..bd75e22b66c 100644 --- a/releases/release-1.27/release-notes/maps/pr-114596-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114596-map.yaml @@ -1,5 +1,5 @@ -pr: 114596 -releasenote: - text: |- - `kube-controller-manager` will not run nodeipam controller when allocator type - is `CloudAllocator` and the cloud provider is not enabled. +pr: 114596 +releasenote: + text: |- + `kube-controller-manager` will not run nodeipam controller when allocator type + is `CloudAllocator` and the cloud provider is not enabled. diff --git a/releases/release-1.27/release-notes/maps/pr-114598-map.yaml b/releases/release-1.27/release-notes/maps/pr-114598-map.yaml index f4fdafc3f88..814919df528 100644 --- a/releases/release-1.27/release-notes/maps/pr-114598-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114598-map.yaml @@ -1,3 +1,3 @@ -pr: 114598 -releasenote: - text: NONE +pr: 114598 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114605-map.yaml b/releases/release-1.27/release-notes/maps/pr-114605-map.yaml index 261eae48d21..95c75923cb7 100644 --- a/releases/release-1.27/release-notes/maps/pr-114605-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114605-map.yaml @@ -1,4 +1,4 @@ -pr: 114605 -releasenote: - text: Fixed the problem `Pod` terminating stuck because of trying to umount not - actual mounted dir. +pr: 114605 +releasenote: + text: Fixed the problem `Pod` terminating stuck because of trying to umount not + actual mounted dir. diff --git a/releases/release-1.27/release-notes/maps/pr-114609-map.yaml b/releases/release-1.27/release-notes/maps/pr-114609-map.yaml index 2f981ee497e..dfeb37feca7 100644 --- a/releases/release-1.27/release-notes/maps/pr-114609-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114609-map.yaml @@ -1,5 +1,5 @@ -pr: 114609 -releasenote: - text: |- - Enabled usage of `kube-proxy`, `kube-scheduler` and `kubelet` HTTP APIs for changing the logging - verbosity at runtime for JSON output. +pr: 114609 +releasenote: + text: |- + Enabled usage of `kube-proxy`, `kube-scheduler` and `kubelet` HTTP APIs for changing the logging + verbosity at runtime for JSON output. diff --git a/releases/release-1.27/release-notes/maps/pr-114623-map.yaml b/releases/release-1.27/release-notes/maps/pr-114623-map.yaml index 05a19a6b947..f46b0bfd12e 100644 --- a/releases/release-1.27/release-notes/maps/pr-114623-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114623-map.yaml @@ -1,5 +1,5 @@ -pr: 114623 -releasenote: - text: |- - A terminating pod on a node that is not caused by preemption no longer prevents `kube-scheduler` from preempting pods on that node - - Rename `PreemptionByKubeScheduler` to `PreemptionByScheduler` +pr: 114623 +releasenote: + text: |- + A terminating pod on a node that is not caused by preemption no longer prevents `kube-scheduler` from preempting pods on that node + - Rename `PreemptionByKubeScheduler` to `PreemptionByScheduler` diff --git a/releases/release-1.27/release-notes/maps/pr-114630-map.yaml b/releases/release-1.27/release-notes/maps/pr-114630-map.yaml index 969ab891752..c370293d875 100644 --- a/releases/release-1.27/release-notes/maps/pr-114630-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114630-map.yaml @@ -1,3 +1,3 @@ -pr: 114630 -releasenote: - text: NONE +pr: 114630 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114647-map.yaml b/releases/release-1.27/release-notes/maps/pr-114647-map.yaml index fd5e35034f6..dae44b5f4d6 100644 --- a/releases/release-1.27/release-notes/maps/pr-114647-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114647-map.yaml @@ -1,4 +1,4 @@ -pr: 114647 -releasenote: - text: The job controller now ignores the annotation `batch.kubernetes.io/job-tracking`. - The progress of all jobs is tracked using pod finalizers. +pr: 114647 +releasenote: + text: The job controller now ignores the annotation `batch.kubernetes.io/job-tracking`. + The progress of all jobs is tracked using pod finalizers. diff --git a/releases/release-1.27/release-notes/maps/pr-114669-map.yaml b/releases/release-1.27/release-notes/maps/pr-114669-map.yaml index 0b4bb73b3f5..8032be51c74 100644 --- a/releases/release-1.27/release-notes/maps/pr-114669-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114669-map.yaml @@ -1,5 +1,5 @@ -pr: 114669 -releasenote: - text: |- - `kube-proxy` with `--proxy-mode=ipvs` can be used with statically linked kernels. - The reseved IPv4 range `TEST-NET-2` in `rfc5737` MUST NOT be used for `ClusterIP` or `loadBalancerIP` since address `198.51.100.0` is used for probing. +pr: 114669 +releasenote: + text: |- + `kube-proxy` with `--proxy-mode=ipvs` can be used with statically linked kernels. + The reseved IPv4 range `TEST-NET-2` in `rfc5737` MUST NOT be used for `ClusterIP` or `loadBalancerIP` since address `198.51.100.0` is used for probing. diff --git a/releases/release-1.27/release-notes/maps/pr-114694-map.yaml b/releases/release-1.27/release-notes/maps/pr-114694-map.yaml index 374a79b638f..e04c10cae43 100644 --- a/releases/release-1.27/release-notes/maps/pr-114694-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114694-map.yaml @@ -1,3 +1,3 @@ -pr: 114694 -releasenote: - text: None +pr: 114694 +releasenote: + text: None diff --git a/releases/release-1.27/release-notes/maps/pr-114699-map.yaml b/releases/release-1.27/release-notes/maps/pr-114699-map.yaml index bbdccf133be..1f58e3e5fe5 100644 --- a/releases/release-1.27/release-notes/maps/pr-114699-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114699-map.yaml @@ -1,4 +1,4 @@ -pr: 114699 -releasenote: - text: "scheduling cycle now terminates immediately when any scheduler plugin returns - an \n`unschedulableAndUnresolvable` status in `PostFilter`." +pr: 114699 +releasenote: + text: "scheduling cycle now terminates immediately when any scheduler plugin returns + an \n`unschedulableAndUnresolvable` status in `PostFilter`." diff --git a/releases/release-1.27/release-notes/maps/pr-114701-map.yaml b/releases/release-1.27/release-notes/maps/pr-114701-map.yaml index 611b7cfdf44..750f8fa145e 100644 --- a/releases/release-1.27/release-notes/maps/pr-114701-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114701-map.yaml @@ -1,3 +1,3 @@ -pr: 114701 -releasenote: - text: NONE +pr: 114701 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114731-map.yaml b/releases/release-1.27/release-notes/maps/pr-114731-map.yaml index 6c165da3908..6ce58b8e9c2 100644 --- a/releases/release-1.27/release-notes/maps/pr-114731-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114731-map.yaml @@ -1,4 +1,4 @@ -pr: 114731 -releasenote: - text: '`k8s.io/component-base/logs` now also supports adding command line flags - to a `flag.FlagSet`.' +pr: 114731 +releasenote: + text: '`k8s.io/component-base/logs` now also supports adding command line flags + to a `flag.FlagSet`.' diff --git a/releases/release-1.27/release-notes/maps/pr-114736-map.yaml b/releases/release-1.27/release-notes/maps/pr-114736-map.yaml index efd2955255e..1802acd458d 100644 --- a/releases/release-1.27/release-notes/maps/pr-114736-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114736-map.yaml @@ -1,3 +1,3 @@ -pr: 114736 -releasenote: - text: '`tryUnmount` now respects `mounter.withSafeNotMountedBehavior`' +pr: 114736 +releasenote: + text: '`tryUnmount` now respects `mounter.withSafeNotMountedBehavior`' diff --git a/releases/release-1.27/release-notes/maps/pr-114740-map.yaml b/releases/release-1.27/release-notes/maps/pr-114740-map.yaml index dfe4e34bc34..4caf26bb18d 100644 --- a/releases/release-1.27/release-notes/maps/pr-114740-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114740-map.yaml @@ -1,4 +1,4 @@ -pr: 114740 -releasenote: - text: Improved misleading message, in case of no metrics received for the `HPA` - controlled pods. +pr: 114740 +releasenote: + text: Improved misleading message, in case of no metrics received for the `HPA` + controlled pods. diff --git a/releases/release-1.27/release-notes/maps/pr-114770-map.yaml b/releases/release-1.27/release-notes/maps/pr-114770-map.yaml index 1ad6da36362..00fbfaf481e 100644 --- a/releases/release-1.27/release-notes/maps/pr-114770-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114770-map.yaml @@ -1,5 +1,5 @@ -pr: 114770 -releasenote: - text: Fixed clearing of rate-limiter for the queue of checks for cleaning stale - pod disruption conditions. The bug could result in the PDB synchronization updates - firing too often or the pod disruption cleanups taking too long to happen. +pr: 114770 +releasenote: + text: Fixed clearing of rate-limiter for the queue of checks for cleaning stale + pod disruption conditions. The bug could result in the PDB synchronization updates + firing too often or the pod disruption cleanups taking too long to happen. diff --git a/releases/release-1.27/release-notes/maps/pr-114776-map.yaml b/releases/release-1.27/release-notes/maps/pr-114776-map.yaml index f96028e595c..9633f1d882d 100644 --- a/releases/release-1.27/release-notes/maps/pr-114776-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114776-map.yaml @@ -1,3 +1,3 @@ -pr: 114776 -releasenote: - text: Fixed CSI `PersistentVolumes` to allow Secrets names longer than 63 characters. +pr: 114776 +releasenote: + text: Fixed CSI `PersistentVolumes` to allow Secrets names longer than 63 characters. diff --git a/releases/release-1.27/release-notes/maps/pr-114814-map.yaml b/releases/release-1.27/release-notes/maps/pr-114814-map.yaml index fd6e809f5d1..c97cdbedf23 100644 --- a/releases/release-1.27/release-notes/maps/pr-114814-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114814-map.yaml @@ -1,3 +1,3 @@ -pr: 114814 -releasenote: - text: '`Service` of type `ExternalName` do not create an `Endpoint` anymore.' +pr: 114814 +releasenote: + text: '`Service` of type `ExternalName` do not create an `Endpoint` anymore.' diff --git a/releases/release-1.27/release-notes/maps/pr-114857-map.yaml b/releases/release-1.27/release-notes/maps/pr-114857-map.yaml index 72c49049023..dddbe912583 100644 --- a/releases/release-1.27/release-notes/maps/pr-114857-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114857-map.yaml @@ -1,6 +1,6 @@ -pr: 114857 -releasenote: - text: 'Fixed bug in CRD Validation Rules (beta) and `ValidatingAdmissionPolicy` - (alpha) where all admission requests could result in `internal error: runtime - error: index out of range [3] with length 3 evaluating rule: <rule name>` under - certain circumstances.' +pr: 114857 +releasenote: + text: 'Fixed bug in CRD Validation Rules (beta) and `ValidatingAdmissionPolicy` + (alpha) where all admission requests could result in `internal error: runtime + error: index out of range [3] with length 3 evaluating rule: <rule name>` under + certain circumstances.' diff --git a/releases/release-1.27/release-notes/maps/pr-114863-map.yaml b/releases/release-1.27/release-notes/maps/pr-114863-map.yaml index 47551304a36..55d1f9059cf 100644 --- a/releases/release-1.27/release-notes/maps/pr-114863-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114863-map.yaml @@ -1,4 +1,4 @@ -pr: 114863 -releasenote: - text: 'kubectl: enabled usage of label selector for filtering out resources when - pruning for kubectl diff' +pr: 114863 +releasenote: + text: 'kubectl: enabled usage of label selector for filtering out resources when + pruning for kubectl diff' diff --git a/releases/release-1.27/release-notes/maps/pr-114869-map.yaml b/releases/release-1.27/release-notes/maps/pr-114869-map.yaml index 3ccad5a458c..38b57c9b90f 100644 --- a/releases/release-1.27/release-notes/maps/pr-114869-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114869-map.yaml @@ -1,4 +1,4 @@ -pr: 114869 -releasenote: - text: Fixed panic validating custom resource definition schemas that set `multipleOf` - to 0 +pr: 114869 +releasenote: + text: Fixed panic validating custom resource definition schemas that set `multipleOf` + to 0 diff --git a/releases/release-1.27/release-notes/maps/pr-114871-map.yaml b/releases/release-1.27/release-notes/maps/pr-114871-map.yaml index 6e3be35e81e..599ed5af653 100644 --- a/releases/release-1.27/release-notes/maps/pr-114871-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114871-map.yaml @@ -1,4 +1,4 @@ -pr: 114871 -releasenote: - text: Migrated the `ReplicaSet` controller (within `kube-controller-manager`) to - use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). +pr: 114871 +releasenote: + text: Migrated the `ReplicaSet` controller (within `kube-controller-manager`) to + use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). diff --git a/releases/release-1.27/release-notes/maps/pr-114872-map.yaml b/releases/release-1.27/release-notes/maps/pr-114872-map.yaml index 00ed94aba43..03f26bbcd3c 100644 --- a/releases/release-1.27/release-notes/maps/pr-114872-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114872-map.yaml @@ -1,3 +1,3 @@ -pr: 114872 -releasenote: - text: '`client-go`: fixed the wait time for trying to acquire the leader lease' +pr: 114872 +releasenote: + text: '`client-go`: fixed the wait time for trying to acquire the leader lease' diff --git a/releases/release-1.27/release-notes/maps/pr-114878-map.yaml b/releases/release-1.27/release-notes/maps/pr-114878-map.yaml index cc1e3fc4a7d..4e53db066c0 100644 --- a/releases/release-1.27/release-notes/maps/pr-114878-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114878-map.yaml @@ -1,5 +1,5 @@ -pr: 114878 -releasenote: - text: 'IPVS: Any ipvs scheduler can now be configured. If a un-usable scheduler - is configured `kube-proxy` will re-start and the logs must be checked (same as - before but different log printouts).' +pr: 114878 +releasenote: + text: 'IPVS: Any ipvs scheduler can now be configured. If a un-usable scheduler + is configured `kube-proxy` will re-start and the logs must be checked (same as + before but different log printouts).' diff --git a/releases/release-1.27/release-notes/maps/pr-114883-map.yaml b/releases/release-1.27/release-notes/maps/pr-114883-map.yaml index 67744ffb79a..27cbcc7bd40 100644 --- a/releases/release-1.27/release-notes/maps/pr-114883-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114883-map.yaml @@ -1,3 +1,3 @@ -pr: 114883 -releasenote: - text: Updated `cAdvisor` to `v0.47.0` +pr: 114883 +releasenote: + text: Updated `cAdvisor` to `v0.47.0` diff --git a/releases/release-1.27/release-notes/maps/pr-114886-map.yaml b/releases/release-1.27/release-notes/maps/pr-114886-map.yaml index 5cb37c15a71..d1e13efcbca 100644 --- a/releases/release-1.27/release-notes/maps/pr-114886-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114886-map.yaml @@ -1,3 +1,3 @@ -pr: 114886 -releasenote: - text: '`kubectl` now uses `HorizontalPodAutoscaler` `v2` by default.' +pr: 114886 +releasenote: + text: '`kubectl` now uses `HorizontalPodAutoscaler` `v2` by default.' diff --git a/releases/release-1.27/release-notes/maps/pr-114889-map.yaml b/releases/release-1.27/release-notes/maps/pr-114889-map.yaml index a6b7fc4b8fc..c21c68c131b 100644 --- a/releases/release-1.27/release-notes/maps/pr-114889-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114889-map.yaml @@ -1,5 +1,5 @@ -pr: 114889 -releasenote: - text: |- - Scheduler now skips `InterPodAffinity` Filter plugin when `InterPodAffinity` Filter plugin has nothing to do with a Pod. - It may affect some metrics values related to the `InterPodAffinity` Filter plugin. +pr: 114889 +releasenote: + text: |- + Scheduler now skips `InterPodAffinity` Filter plugin when `InterPodAffinity` Filter plugin has nothing to do with a Pod. + It may affect some metrics values related to the `InterPodAffinity` Filter plugin. diff --git a/releases/release-1.27/release-notes/maps/pr-114914-map.yaml b/releases/release-1.27/release-notes/maps/pr-114914-map.yaml index 413e895d123..5f6e679fe05 100644 --- a/releases/release-1.27/release-notes/maps/pr-114914-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114914-map.yaml @@ -1,3 +1,3 @@ -pr: 114914 -releasenote: - text: messages of `DisruptionTarget` condition now excludes preemptor pod metadata +pr: 114914 +releasenote: + text: messages of `DisruptionTarget` condition now excludes preemptor pod metadata diff --git a/releases/release-1.27/release-notes/maps/pr-114920-map.yaml b/releases/release-1.27/release-notes/maps/pr-114920-map.yaml index f7daa96e79e..c0f15b32d54 100644 --- a/releases/release-1.27/release-notes/maps/pr-114920-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114920-map.yaml @@ -1,3 +1,3 @@ -pr: 114920 -releasenote: - text: Applied configurations can be generated for types with `non-builtin` map fields +pr: 114920 +releasenote: + text: Applied configurations can be generated for types with `non-builtin` map fields diff --git a/releases/release-1.27/release-notes/maps/pr-114923-map.yaml b/releases/release-1.27/release-notes/maps/pr-114923-map.yaml index 1877cb761b5..08b61f363a5 100644 --- a/releases/release-1.27/release-notes/maps/pr-114923-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114923-map.yaml @@ -1,3 +1,3 @@ -pr: 114923 -releasenote: - text: Excluded preemptor pod metadata in the event message +pr: 114923 +releasenote: + text: Excluded preemptor pod metadata in the event message diff --git a/releases/release-1.27/release-notes/maps/pr-114930-map.yaml b/releases/release-1.27/release-notes/maps/pr-114930-map.yaml index 480e0479aba..727ccbb15d6 100644 --- a/releases/release-1.27/release-notes/maps/pr-114930-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114930-map.yaml @@ -1,5 +1,5 @@ -pr: 114930 -releasenote: - text: |- - Pods owned by a Job now uses the labels `batch.kubernetes.io/job-name` and `batch.kubernetes.io/controller-uid`. - The legacy labels `job-name` and `controller-uid` are still added for compatibility. +pr: 114930 +releasenote: + text: |- + Pods owned by a Job now uses the labels `batch.kubernetes.io/job-name` and `batch.kubernetes.io/controller-uid`. + The legacy labels `job-name` and `controller-uid` are still added for compatibility. diff --git a/releases/release-1.27/release-notes/maps/pr-114947-map.yaml b/releases/release-1.27/release-notes/maps/pr-114947-map.yaml index 600023451cb..72137065287 100644 --- a/releases/release-1.27/release-notes/maps/pr-114947-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114947-map.yaml @@ -1,7 +1,7 @@ -pr: 114947 -releasenote: - text: support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` - and `container.seccomp.security.alpha.kubernetes.io` were deprecated since v1.19, - now have been completely removed. The seccomp fields are no longer auto-populated - when pods with seccomp annotations are created. Pods should use the corresponding - pod or container `securityContext.seccompProfile` field instead. +pr: 114947 +releasenote: + text: support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` + and `container.seccomp.security.alpha.kubernetes.io` were deprecated since v1.19, + now have been completely removed. The seccomp fields are no longer auto-populated + when pods with seccomp annotations are created. Pods should use the corresponding + pod or container `securityContext.seccompProfile` field instead. diff --git a/releases/release-1.27/release-notes/maps/pr-114953-map.yaml b/releases/release-1.27/release-notes/maps/pr-114953-map.yaml index 61afccf2f4c..adebed65d03 100644 --- a/releases/release-1.27/release-notes/maps/pr-114953-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114953-map.yaml @@ -1,4 +1,4 @@ -pr: 114953 -releasenote: - text: The `CSIMigrationAzureFile` feature gate (for the feature which graduated - to GA in v1.26) is now unconditionally enabled and will be removed in v1.28. +pr: 114953 +releasenote: + text: The `CSIMigrationAzureFile` feature gate (for the feature which graduated + to GA in v1.26) is now unconditionally enabled and will be removed in v1.28. diff --git a/releases/release-1.27/release-notes/maps/pr-114980-map.yaml b/releases/release-1.27/release-notes/maps/pr-114980-map.yaml index fae7b6b8874..896b8afb71e 100644 --- a/releases/release-1.27/release-notes/maps/pr-114980-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114980-map.yaml @@ -1,3 +1,3 @@ -pr: 114980 -releasenote: - text: Removed scheduler names from preemption event messages. +pr: 114980 +releasenote: + text: Removed scheduler names from preemption event messages. diff --git a/releases/release-1.27/release-notes/maps/pr-114981-map.yaml b/releases/release-1.27/release-notes/maps/pr-114981-map.yaml index a1de22b3e6c..bc8741d9850 100644 --- a/releases/release-1.27/release-notes/maps/pr-114981-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114981-map.yaml @@ -1,3 +1,3 @@ -pr: 114981 -releasenote: - text: NONE +pr: 114981 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-114987-map.yaml b/releases/release-1.27/release-notes/maps/pr-114987-map.yaml index 69efd45a35d..222cbc48b49 100644 --- a/releases/release-1.27/release-notes/maps/pr-114987-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114987-map.yaml @@ -1,4 +1,4 @@ -pr: 114987 -releasenote: - text: Added the `applyconfiguration` generator to the code-generator script that generates - server-side apply configuration and client APIs +pr: 114987 +releasenote: + text: Added the `applyconfiguration` generator to the code-generator script that generates + server-side apply configuration and client APIs diff --git a/releases/release-1.27/release-notes/maps/pr-114997-map.yaml b/releases/release-1.27/release-notes/maps/pr-114997-map.yaml index e84cc64f90c..1230d1110b7 100644 --- a/releases/release-1.27/release-notes/maps/pr-114997-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-114997-map.yaml @@ -1,4 +1,4 @@ -pr: 114997 -releasenote: - text: '`/metrics/slis` is now available for control plane components allowing you - to scrape health check metrics.' +pr: 114997 +releasenote: + text: '`/metrics/slis` is now available for control plane components allowing you + to scrape health check metrics.' diff --git a/releases/release-1.27/release-notes/maps/pr-115010-map.yaml b/releases/release-1.27/release-notes/maps/pr-115010-map.yaml index 90be3893ffa..c0bb0ab5a8f 100644 --- a/releases/release-1.27/release-notes/maps/pr-115010-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115010-map.yaml @@ -1,3 +1,3 @@ -pr: 115010 -releasenote: - text: Kubernetes is now built with Go `1.19.5` +pr: 115010 +releasenote: + text: Kubernetes is now built with Go `1.19.5` diff --git a/releases/release-1.27/release-notes/maps/pr-115017-map.yaml b/releases/release-1.27/release-notes/maps/pr-115017-map.yaml index 0152c125ccb..52ee34a9d0c 100644 --- a/releases/release-1.27/release-notes/maps/pr-115017-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115017-map.yaml @@ -1,3 +1,3 @@ -pr: 115017 -releasenote: - text: Made tmp dir configurable and dynamic at `local-up-cluster.sh` +pr: 115017 +releasenote: + text: Made tmp dir configurable and dynamic at `local-up-cluster.sh` diff --git a/releases/release-1.27/release-notes/maps/pr-115038-map.yaml b/releases/release-1.27/release-notes/maps/pr-115038-map.yaml index 1fca195ec57..08635aa70e9 100644 --- a/releases/release-1.27/release-notes/maps/pr-115038-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115038-map.yaml @@ -1,4 +1,4 @@ -pr: 115038 -releasenote: - text: 'kubeadm: fixed an etcd learner-mode bug by preparing an etcd static pod manifest - before promoting' +pr: 115038 +releasenote: + text: 'kubeadm: fixed an etcd learner-mode bug by preparing an etcd static pod manifest + before promoting' diff --git a/releases/release-1.27/release-notes/maps/pr-115046-map.yaml b/releases/release-1.27/release-notes/maps/pr-115046-map.yaml index 1bf78c63c3c..5c0ceb282a9 100644 --- a/releases/release-1.27/release-notes/maps/pr-115046-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115046-map.yaml @@ -1,3 +1,3 @@ -pr: 115046 -releasenote: - text: 'kubectl: added e2e test for default container annotation' +pr: 115046 +releasenote: + text: 'kubectl: added e2e test for default container annotation' diff --git a/releases/release-1.27/release-notes/maps/pr-115049-map.yaml b/releases/release-1.27/release-notes/maps/pr-115049-map.yaml index 98ebfbe8db7..1f6f617a1c7 100644 --- a/releases/release-1.27/release-notes/maps/pr-115049-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115049-map.yaml @@ -1,3 +1,3 @@ -pr: 115049 -releasenote: - text: Migrated controller helper functions to use contextual logging. +pr: 115049 +releasenote: + text: Migrated controller helper functions to use contextual logging. diff --git a/releases/release-1.27/release-notes/maps/pr-115056-map.yaml b/releases/release-1.27/release-notes/maps/pr-115056-map.yaml index 9a7cf22a486..ad35bfd3c69 100644 --- a/releases/release-1.27/release-notes/maps/pr-115056-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115056-map.yaml @@ -1,4 +1,4 @@ -pr: 115056 -releasenote: - text: '`PodGC` for pods which are in terminal phase now do not add the `DisruptionTarget` - condition.' +pr: 115056 +releasenote: + text: '`PodGC` for pods which are in terminal phase now do not add the `DisruptionTarget` + condition.' diff --git a/releases/release-1.27/release-notes/maps/pr-115068-map.yaml b/releases/release-1.27/release-notes/maps/pr-115068-map.yaml index 5700f6d6648..13413e99260 100644 --- a/releases/release-1.27/release-notes/maps/pr-115068-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115068-map.yaml @@ -1,3 +1,3 @@ -pr: 115068 -releasenote: - text: Reverted `UpdateOrCreateToken` get secrets err handling optimization +pr: 115068 +releasenote: + text: Reverted `UpdateOrCreateToken` get secrets err handling optimization diff --git a/releases/release-1.27/release-notes/maps/pr-115079-map.yaml b/releases/release-1.27/release-notes/maps/pr-115079-map.yaml index dba0568c6c3..e1966b22d34 100644 --- a/releases/release-1.27/release-notes/maps/pr-115079-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115079-map.yaml @@ -1,3 +1,3 @@ -pr: 115079 -releasenote: - text: NONE +pr: 115079 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-115082-map.yaml b/releases/release-1.27/release-notes/maps/pr-115082-map.yaml index 36346635299..85e5b9e2346 100644 --- a/releases/release-1.27/release-notes/maps/pr-115082-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115082-map.yaml @@ -1,5 +1,5 @@ -pr: 115082 -releasenote: - text: 'New plugin_evaluation_total is added to the scheduler.This metric counts - how many times the specific plugin affects the scheduling result. The metric does - not get incremented when the plugin has nothing to do with an incoming Pod.' +pr: 115082 +releasenote: + text: 'New plugin_evaluation_total is added to the scheduler.This metric counts + how many times the specific plugin affects the scheduling result. The metric does + not get incremented when the plugin has nothing to do with an incoming Pod.' diff --git a/releases/release-1.27/release-notes/maps/pr-115093-map.yaml b/releases/release-1.27/release-notes/maps/pr-115093-map.yaml index d78475b31ac..450b2639137 100644 --- a/releases/release-1.27/release-notes/maps/pr-115093-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115093-map.yaml @@ -1,4 +1,4 @@ -pr: 115093 -releasenote: - text: Fixed bug in reflector that couldn't recover from `Too large resource version` - errors with API servers before 1.17.0. +pr: 115093 +releasenote: + text: Fixed bug in reflector that couldn't recover from `Too large resource version` + errors with API servers before 1.17.0. diff --git a/releases/release-1.27/release-notes/maps/pr-115096-map.yaml b/releases/release-1.27/release-notes/maps/pr-115096-map.yaml index 32fec15670e..fffe35eeb2d 100644 --- a/releases/release-1.27/release-notes/maps/pr-115096-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115096-map.yaml @@ -1,4 +1,4 @@ -pr: 115096 -releasenote: - text: '`cacher`: If `ResourceVersion` is unset, the watch is now served from the underlying - storage as documented.' +pr: 115096 +releasenote: + text: '`cacher`: If `ResourceVersion` is unset, the watch is now served from the underlying + storage as documented.' diff --git a/releases/release-1.27/release-notes/maps/pr-115102-map.yaml b/releases/release-1.27/release-notes/maps/pr-115102-map.yaml index 0561377b419..0853197efd0 100644 --- a/releases/release-1.27/release-notes/maps/pr-115102-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115102-map.yaml @@ -1,4 +1,4 @@ -pr: 115102 -releasenote: - text: kubelet startup now fails CRI connection if service or image endpoint is throwing - any error +pr: 115102 +releasenote: + text: kubelet startup now fails CRI connection if service or image endpoint is throwing + any error diff --git a/releases/release-1.27/release-notes/maps/pr-115113-map.yaml b/releases/release-1.27/release-notes/maps/pr-115113-map.yaml index 4eb8d90ed82..c1a6de99072 100644 --- a/releases/release-1.27/release-notes/maps/pr-115113-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115113-map.yaml @@ -1,6 +1,6 @@ -pr: 115113 -releasenote: - text: Callers of `wait.ExponentialBackoffWithContext` now must pass a `ConditionWithContextFunc` - to be consistent with the signature and avoid creating a duplicate context. If - your condition does not need a context you can use the `ConditionFunc.WithContext()` - helper to ignore the context, or use `ExponentialBackoff` directly. +pr: 115113 +releasenote: + text: Callers of `wait.ExponentialBackoffWithContext` now must pass a `ConditionWithContextFunc` + to be consistent with the signature and avoid creating a duplicate context. If + your condition does not need a context you can use the `ConditionFunc.WithContext()` + helper to ignore the context, or use `ExponentialBackoff` directly. diff --git a/releases/release-1.27/release-notes/maps/pr-115116-map.yaml b/releases/release-1.27/release-notes/maps/pr-115116-map.yaml index f64eaa2a3aa..4cd363b2a22 100644 --- a/releases/release-1.27/release-notes/maps/pr-115116-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115116-map.yaml @@ -1,5 +1,5 @@ -pr: 115116 -releasenote: - text: The `WaitFor` and `WaitForWithContext` functions in the wait package have - now been marked private. Callers should use the equivalent `Poll*` method with - a zero duration interval. +pr: 115116 +releasenote: + text: The `WaitFor` and `WaitForWithContext` functions in the wait package have + now been marked private. Callers should use the equivalent `Poll*` method with + a zero duration interval. diff --git a/releases/release-1.27/release-notes/maps/pr-115123-map.yaml b/releases/release-1.27/release-notes/maps/pr-115123-map.yaml index 30768e8cf63..794cb9ec777 100644 --- a/releases/release-1.27/release-notes/maps/pr-115123-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115123-map.yaml @@ -1,3 +1,3 @@ -pr: 115123 -releasenote: - text: Updated `KMSv2` to beta +pr: 115123 +releasenote: + text: Updated `KMSv2` to beta diff --git a/releases/release-1.27/release-notes/maps/pr-115137-map.yaml b/releases/release-1.27/release-notes/maps/pr-115137-map.yaml index adabcdb430b..197a101ecb1 100644 --- a/releases/release-1.27/release-notes/maps/pr-115137-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115137-map.yaml @@ -1,4 +1,4 @@ -pr: 115137 -releasenote: - text: Added `kubelet` Topology Manager metrics to track admission requests processed - and occured admission errors. +pr: 115137 +releasenote: + text: Added `kubelet` Topology Manager metrics to track admission requests processed + and occured admission errors. diff --git a/releases/release-1.27/release-notes/maps/pr-115138-map.yaml b/releases/release-1.27/release-notes/maps/pr-115138-map.yaml index 60ecfb2f38c..90d6ba3fffb 100644 --- a/releases/release-1.27/release-notes/maps/pr-115138-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115138-map.yaml @@ -1,7 +1,7 @@ -pr: 115138 -releasenote: - text: |- - A new feature was enabled to improve the performance of the iptables mode of `kube-proxy` in large clusters. No action was required, however: - - 1. If you experienced problems with Services not syncing to iptables correctly, you can disable the feature by passing `--feature-gates=MinimizeIPTablesRestore=false` to kube-proxy (and file a bug if this fixes it). (This might also be detected by seeing the value of kube-proxy's `sync_proxy_rules_iptables_partial_restore_failures_total` metric rising.) - 2. If you were previously overriding the kube-proxy configuration for performance reasons, this may no longer be necessary. See https://kubernetes.io/docs/reference/networking/virtual-ips/#optimizing-iptables-mode-performance. +pr: 115138 +releasenote: + text: |- + A new feature was enabled to improve the performance of the iptables mode of `kube-proxy` in large clusters. No action was required, however: + + 1. If you experienced problems with Services not syncing to iptables correctly, you can disable the feature by passing `--feature-gates=MinimizeIPTablesRestore=false` to kube-proxy (and file a bug if this fixes it). (This might also be detected by seeing the value of kube-proxy's `sync_proxy_rules_iptables_partial_restore_failures_total` metric rising.) + 2. If you were previously overriding the kube-proxy configuration for performance reasons, this may no longer be necessary. See https://kubernetes.io/docs/reference/networking/virtual-ips/#optimizing-iptables-mode-performance. diff --git a/releases/release-1.27/release-notes/maps/pr-115140-map.yaml b/releases/release-1.27/release-notes/maps/pr-115140-map.yaml index dfd8d031cd0..66a0822e3b3 100644 --- a/releases/release-1.27/release-notes/maps/pr-115140-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115140-map.yaml @@ -1,5 +1,5 @@ -pr: 115140 -releasenote: - text: |- - `wait.ContextForChannel()` now implements the context.Context interface and - does not return a cancellation function. +pr: 115140 +releasenote: + text: |- + `wait.ContextForChannel()` now implements the context.Context interface and + does not return a cancellation function. diff --git a/releases/release-1.27/release-notes/maps/pr-115143-map.yaml b/releases/release-1.27/release-notes/maps/pr-115143-map.yaml index f4d133f0ca0..c3560d82544 100644 --- a/releases/release-1.27/release-notes/maps/pr-115143-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115143-map.yaml @@ -1,7 +1,7 @@ -pr: 115143 -releasenote: - text: |- - Kubelet TCP and HTTP probes are now more effective using networking resources: - conntrack entries, sockets. This is achieved by reducing the `TIME-WAIT` state - of the connection to 1 second, instead of the defaults 60 seconds. This allows - kubelet to free the socket, and free conntrack entry and ephemeral port associated. +pr: 115143 +releasenote: + text: |- + Kubelet TCP and HTTP probes are now more effective using networking resources: + conntrack entries, sockets. This is achieved by reducing the `TIME-WAIT` state + of the connection to 1 second, instead of the defaults 60 seconds. This allows + kubelet to free the socket, and free conntrack entry and ephemeral port associated. diff --git a/releases/release-1.27/release-notes/maps/pr-115149-map.yaml b/releases/release-1.27/release-notes/maps/pr-115149-map.yaml index 9ff79cfc867..c558388805e 100644 --- a/releases/release-1.27/release-notes/maps/pr-115149-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115149-map.yaml @@ -1,5 +1,5 @@ -pr: 115149 -releasenote: - text: Encryption of API Server at rest configuration now allows the use of wildcards - in the list of resources. For example, *.* can be used to encrypt all resources, - including all current and future custom resources. +pr: 115149 +releasenote: + text: Encryption of API Server at rest configuration now allows the use of wildcards + in the list of resources. For example, *.* can be used to encrypt all resources, + including all current and future custom resources. diff --git a/releases/release-1.27/release-notes/maps/pr-115179-map.yaml b/releases/release-1.27/release-notes/maps/pr-115179-map.yaml index 992288e8ed0..cd18ec9aec1 100644 --- a/releases/release-1.27/release-notes/maps/pr-115179-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115179-map.yaml @@ -1,3 +1,3 @@ -pr: 115179 -releasenote: - text: Fixed nil pointer error in `NodeVolumeLimits` csi logging +pr: 115179 +releasenote: + text: Fixed nil pointer error in `NodeVolumeLimits` csi logging diff --git a/releases/release-1.27/release-notes/maps/pr-115204-map.yaml b/releases/release-1.27/release-notes/maps/pr-115204-map.yaml index 2d0419e483c..c982e325898 100644 --- a/releases/release-1.27/release-notes/maps/pr-115204-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115204-map.yaml @@ -1,7 +1,7 @@ -pr: 115204 -releasenote: - text: '[KCCM - service controller]: enabled connection draining for terminating - pods upon node downscale by the cluster autoscaler. This is done by not reacting - to the taint used by the cluster autoscaler to indicate that the node is going - away soon, thus keeping the node referenced by the load balancer until the VM - has been completely deleted.' +pr: 115204 +releasenote: + text: '[KCCM - service controller]: enabled connection draining for terminating + pods upon node downscale by the cluster autoscaler. This is done by not reacting + to the taint used by the cluster autoscaler to indicate that the node is going + away soon, thus keeping the node referenced by the load balancer until the VM + has been completely deleted.' diff --git a/releases/release-1.27/release-notes/maps/pr-115207-map.yaml b/releases/release-1.27/release-notes/maps/pr-115207-map.yaml index dae94e09308..e23993b23f9 100644 --- a/releases/release-1.27/release-notes/maps/pr-115207-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115207-map.yaml @@ -1,3 +1,3 @@ -pr: 115207 -releasenote: - text: None +pr: 115207 +releasenote: + text: None diff --git a/releases/release-1.27/release-notes/maps/pr-115209-map.yaml b/releases/release-1.27/release-notes/maps/pr-115209-map.yaml index 43765ff18a0..5e88039685a 100644 --- a/releases/release-1.27/release-notes/maps/pr-115209-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115209-map.yaml @@ -1,6 +1,6 @@ -pr: 115209 -releasenote: - text: |- - Removed the following deprecated metrics: - - node_collector_evictions_number replaced by node_collector_evictions_total - - scheduler_e2e_scheduling_duration_seconds replaced by scheduler_scheduling_attempt_duration_seconds +pr: 115209 +releasenote: + text: |- + Removed the following deprecated metrics: + - node_collector_evictions_number replaced by node_collector_evictions_total + - scheduler_e2e_scheduling_duration_seconds replaced by scheduler_scheduling_attempt_duration_seconds diff --git a/releases/release-1.27/release-notes/maps/pr-115233-map.yaml b/releases/release-1.27/release-notes/maps/pr-115233-map.yaml index 87172945a44..3aeb82a0bd1 100644 --- a/releases/release-1.27/release-notes/maps/pr-115233-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115233-map.yaml @@ -1,5 +1,5 @@ -pr: 115233 -releasenote: - text: |- - `kube-proxy` now accepts the `ContextualLogging`, `LoggingAlphaOptions`, - `LoggingBetaOptions` +pr: 115233 +releasenote: + text: |- + `kube-proxy` now accepts the `ContextualLogging`, `LoggingAlphaOptions`, + `LoggingBetaOptions` diff --git a/releases/release-1.27/release-notes/maps/pr-115254-map.yaml b/releases/release-1.27/release-notes/maps/pr-115254-map.yaml index bc35cd1cdea..a373e17364d 100644 --- a/releases/release-1.27/release-notes/maps/pr-115254-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115254-map.yaml @@ -1,3 +1,3 @@ -pr: 115254 -releasenote: - text: NONE +pr: 115254 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-115260-map.yaml b/releases/release-1.27/release-notes/maps/pr-115260-map.yaml index 0837a3a837c..0f61f88d9e3 100644 --- a/releases/release-1.27/release-notes/maps/pr-115260-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115260-map.yaml @@ -1,3 +1,3 @@ -pr: 115260 -releasenote: - text: Enabled the `StatefulSetStartOrdinal` feature gate in beta +pr: 115260 +releasenote: + text: Enabled the `StatefulSetStartOrdinal` feature gate in beta diff --git a/releases/release-1.27/release-notes/maps/pr-115268-map.yaml b/releases/release-1.27/release-notes/maps/pr-115268-map.yaml index 6be3ec6d5af..789b7a3baf1 100644 --- a/releases/release-1.27/release-notes/maps/pr-115268-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115268-map.yaml @@ -1,6 +1,6 @@ -pr: 115268 -releasenote: - text: Added `NewVolumeManagerReconstruction` feature gate and enabled it by default - to enable updated discovery of mounted volumes during kubelet startup. Please - watch for kubelet getting stuck at startup and / or not unmounting volumes from - deleted Pods and report any issues in this area. +pr: 115268 +releasenote: + text: Added `NewVolumeManagerReconstruction` feature gate and enabled it by default + to enable updated discovery of mounted volumes during kubelet startup. Please + watch for kubelet getting stuck at startup and / or not unmounting volumes from + deleted Pods and report any issues in this area. diff --git a/releases/release-1.27/release-notes/maps/pr-115277-map.yaml b/releases/release-1.27/release-notes/maps/pr-115277-map.yaml index aacc7ac6370..0ec5a409125 100644 --- a/releases/release-1.27/release-notes/maps/pr-115277-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115277-map.yaml @@ -1,3 +1,3 @@ -pr: 115277 -releasenote: - text: Performance improvements in `klog` +pr: 115277 +releasenote: + text: Performance improvements in `klog` diff --git a/releases/release-1.27/release-notes/maps/pr-115283-map.yaml b/releases/release-1.27/release-notes/maps/pr-115283-map.yaml index 9e8d8579611..9876d75068e 100644 --- a/releases/release-1.27/release-notes/maps/pr-115283-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115283-map.yaml @@ -1,3 +1,3 @@ -pr: 115283 -releasenote: - text: None +pr: 115283 +releasenote: + text: None diff --git a/releases/release-1.27/release-notes/maps/pr-115310-map.yaml b/releases/release-1.27/release-notes/maps/pr-115310-map.yaml index 6c458f819bd..c11220c30e4 100644 --- a/releases/release-1.27/release-notes/maps/pr-115310-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115310-map.yaml @@ -1,3 +1,3 @@ -pr: 115310 -releasenote: - text: '`etcd`: Updated to `v3.5.7`' +pr: 115310 +releasenote: + text: '`etcd`: Updated to `v3.5.7`' diff --git a/releases/release-1.27/release-notes/maps/pr-115322-map.yaml b/releases/release-1.27/release-notes/maps/pr-115322-map.yaml index 24f562adb6a..562bf037398 100644 --- a/releases/release-1.27/release-notes/maps/pr-115322-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115322-map.yaml @@ -1,5 +1,5 @@ -pr: 115322 -releasenote: - text: Fixed a bug that caused the `apiserver` to panic when trying to allocate a Service - with a dynamic `ClusterIP` and was configured with Service CIDRs with a /28 mask - for IPv4 and a /124 mask for IPv6 +pr: 115322 +releasenote: + text: Fixed a bug that caused the `apiserver` to panic when trying to allocate a Service + with a dynamic `ClusterIP` and was configured with Service CIDRs with a /28 mask + for IPv4 and a /124 mask for IPv6 diff --git a/releases/release-1.27/release-notes/maps/pr-115336-map.yaml b/releases/release-1.27/release-notes/maps/pr-115336-map.yaml index ac925c9f751..00e648a890c 100644 --- a/releases/release-1.27/release-notes/maps/pr-115336-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115336-map.yaml @@ -1,3 +1,3 @@ -pr: 115336 -releasenote: - text: None +pr: 115336 +releasenote: + text: None diff --git a/releases/release-1.27/release-notes/maps/pr-115341-map.yaml b/releases/release-1.27/release-notes/maps/pr-115341-map.yaml index 1aec44bc170..c39f36955c1 100644 --- a/releases/release-1.27/release-notes/maps/pr-115341-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115341-map.yaml @@ -1,3 +1,3 @@ -pr: 115341 -releasenote: - text: Fixed the regression that introduced 34s timeout for DELETECOLLECTION calls +pr: 115341 +releasenote: + text: Fixed the regression that introduced 34s timeout for DELETECOLLECTION calls diff --git a/releases/release-1.27/release-notes/maps/pr-115346-map.yaml b/releases/release-1.27/release-notes/maps/pr-115346-map.yaml index ad4287e4729..25992711ee0 100644 --- a/releases/release-1.27/release-notes/maps/pr-115346-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115346-map.yaml @@ -1,4 +1,4 @@ -pr: 115346 -releasenote: - text: |- - `node_stage_path` is now set whenever available for expansion during mount +pr: 115346 +releasenote: + text: |- + `node_stage_path` is now set whenever available for expansion during mount diff --git a/releases/release-1.27/release-notes/maps/pr-115349-map.yaml b/releases/release-1.27/release-notes/maps/pr-115349-map.yaml index 774b763e6f2..8485cffc528 100644 --- a/releases/release-1.27/release-notes/maps/pr-115349-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115349-map.yaml @@ -1,5 +1,5 @@ -pr: 115349 -releasenote: - text: The bug which caused the status of Indexed Jobs to only update when new indexes - were completed was fixed. Now, completed indexes are updated even if the `.status.completedIndexes` - values are outside the `[0, .spec.completions> range`. +pr: 115349 +releasenote: + text: The bug which caused the status of Indexed Jobs to only update when new indexes + were completed was fixed. Now, completed indexes are updated even if the `.status.completedIndexes` + values are outside the `[0, .spec.completions> range`. diff --git a/releases/release-1.27/release-notes/maps/pr-115354-map.yaml b/releases/release-1.27/release-notes/maps/pr-115354-map.yaml index 2991ab95c9d..a89f111ac4f 100644 --- a/releases/release-1.27/release-notes/maps/pr-115354-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115354-map.yaml @@ -1,6 +1,6 @@ -pr: 115354 -releasenote: - text: 'A fix in the `resource.k8s.io/v1alpha1/ResourceClaim` API avoids harmless - (?) ".status.reservedFor: element 0: associative list without keys has an element - that''s a map type" errors in the apiserver. Validation now rejects the incorrect - reuse of the same UID in different entries.' +pr: 115354 +releasenote: + text: 'A fix in the `resource.k8s.io/v1alpha1/ResourceClaim` API avoids harmless + (?) ".status.reservedFor: element 0: associative list without keys has an element + that''s a map type" errors in the apiserver. Validation now rejects the incorrect + reuse of the same UID in different entries.' diff --git a/releases/release-1.27/release-notes/maps/pr-115371-map.yaml b/releases/release-1.27/release-notes/maps/pr-115371-map.yaml index b9881fa010c..76d78907e34 100644 --- a/releases/release-1.27/release-notes/maps/pr-115371-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115371-map.yaml @@ -1,4 +1,4 @@ -pr: 115371 -releasenote: - text: 'kubelet: changed `MemoryThrottlingFactor` default value to `0.9` and formulas - to calculate `memory.high`' +pr: 115371 +releasenote: + text: 'kubelet: changed `MemoryThrottlingFactor` default value to `0.9` and formulas + to calculate `memory.high`' diff --git a/releases/release-1.27/release-notes/maps/pr-115384-map.yaml b/releases/release-1.27/release-notes/maps/pr-115384-map.yaml index aef27ba936a..469dcee7028 100644 --- a/releases/release-1.27/release-notes/maps/pr-115384-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115384-map.yaml @@ -1,3 +1,3 @@ -pr: 115384 -releasenote: - text: None +pr: 115384 +releasenote: + text: None diff --git a/releases/release-1.27/release-notes/maps/pr-115391-map.yaml b/releases/release-1.27/release-notes/maps/pr-115391-map.yaml index c698c7284eb..111b7a67561 100644 --- a/releases/release-1.27/release-notes/maps/pr-115391-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115391-map.yaml @@ -1,5 +1,5 @@ -pr: 115391 -releasenote: - text: PersistentVolume API objects which set NodeAffinities using beta Kubernetes - labels for OS, architecture, zone, region, and instance type may now be modified - to use the stable Kubernetes labels. +pr: 115391 +releasenote: + text: PersistentVolume API objects which set NodeAffinities using beta Kubernetes + labels for OS, architecture, zone, region, and instance type may now be modified + to use the stable Kubernetes labels. diff --git a/releases/release-1.27/release-notes/maps/pr-115402-map.yaml b/releases/release-1.27/release-notes/maps/pr-115402-map.yaml index c9db1079c39..8ea1d2a697f 100644 --- a/releases/release-1.27/release-notes/maps/pr-115402-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115402-map.yaml @@ -1,6 +1,6 @@ -pr: 115402 -releasenote: - text: |- - Introduced API for streaming. - - Added `SendInitialEvents` field to the `ListOptions`. When the new option is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic "Bookmark" after which the server continues streaming events. +pr: 115402 +releasenote: + text: |- + Introduced API for streaming. + + Added `SendInitialEvents` field to the `ListOptions`. When the new option is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic "Bookmark" after which the server continues streaming events. diff --git a/releases/release-1.27/release-notes/maps/pr-115412-map.yaml b/releases/release-1.27/release-notes/maps/pr-115412-map.yaml index c8d48818ee4..537fc282b41 100644 --- a/releases/release-1.27/release-notes/maps/pr-115412-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115412-map.yaml @@ -1,3 +1,3 @@ -pr: 115412 -releasenote: - text: None +pr: 115412 +releasenote: + text: None diff --git a/releases/release-1.27/release-notes/maps/pr-115420-map.yaml b/releases/release-1.27/release-notes/maps/pr-115420-map.yaml index fb3a23785b6..01652677506 100644 --- a/releases/release-1.27/release-notes/maps/pr-115420-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115420-map.yaml @@ -1,5 +1,5 @@ -pr: 115420 -releasenote: - text: File content check for IPV4 is now enabled by default, and the check of IPV4 - or IPV6 is done for `kubeadm init` or `kubeadm join` only in case the user intends - to create a cluster to support that kind of IP address family +pr: 115420 +releasenote: + text: File content check for IPV4 is now enabled by default, and the check of IPV4 + or IPV6 is done for `kubeadm init` or `kubeadm join` only in case the user intends + to create a cluster to support that kind of IP address family diff --git a/releases/release-1.27/release-notes/maps/pr-115434-map.yaml b/releases/release-1.27/release-notes/maps/pr-115434-map.yaml index feec33cab83..c37684eb538 100644 --- a/releases/release-1.27/release-notes/maps/pr-115434-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115434-map.yaml @@ -1,3 +1,3 @@ -pr: 115434 -releasenote: - text: Updated API reference for Requests, specifying they must not exceed limits +pr: 115434 +releasenote: + text: Updated API reference for Requests, specifying they must not exceed limits diff --git a/releases/release-1.27/release-notes/maps/pr-115447-map.yaml b/releases/release-1.27/release-notes/maps/pr-115447-map.yaml index 6d7228d4883..67a4ca2ec85 100644 --- a/releases/release-1.27/release-notes/maps/pr-115447-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115447-map.yaml @@ -1,4 +1,4 @@ -pr: 115447 -releasenote: - text: Ingress with `ingressClass` annotation and `IngressClassName` both set can - be created now. +pr: 115447 +releasenote: + text: Ingress with `ingressClass` annotation and `IngressClassName` both set can + be created now. diff --git a/releases/release-1.27/release-notes/maps/pr-115451-map.yaml b/releases/release-1.27/release-notes/maps/pr-115451-map.yaml index a5005330386..003b1cc8ae7 100644 --- a/releases/release-1.27/release-notes/maps/pr-115451-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115451-map.yaml @@ -1,3 +1,3 @@ -pr: 115451 -releasenote: - text: Added e2e test to node expand volume with secret +pr: 115451 +releasenote: + text: Added e2e test to node expand volume with secret diff --git a/releases/release-1.27/release-notes/maps/pr-115454-map.yaml b/releases/release-1.27/release-notes/maps/pr-115454-map.yaml index a2d11779839..de4bb6b6f92 100644 --- a/releases/release-1.27/release-notes/maps/pr-115454-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115454-map.yaml @@ -1,3 +1,3 @@ -pr: 115454 -releasenote: - text: Promoted pod resource `limit/request` metrics to stable. +pr: 115454 +releasenote: + text: Promoted pod resource `limit/request` metrics to stable. diff --git a/releases/release-1.27/release-notes/maps/pr-115464-map.yaml b/releases/release-1.27/release-notes/maps/pr-115464-map.yaml index f34c51b6550..9a6875bb67e 100644 --- a/releases/release-1.27/release-notes/maps/pr-115464-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115464-map.yaml @@ -1,5 +1,5 @@ -pr: 115464 -releasenote: - text: |- - Fixed an issue where a CSI migrated volume may be prematurely detached when the CSI driver is not running on the node. - If CSI migration is enabled on the node, even the csi-driver is not up and ready, we will still add this volume to DSW. +pr: 115464 +releasenote: + text: |- + Fixed an issue where a CSI migrated volume may be prematurely detached when the CSI driver is not running on the node. + If CSI migration is enabled on the node, even the csi-driver is not up and ready, we will still add this volume to DSW. diff --git a/releases/release-1.27/release-notes/maps/pr-115480-map.yaml b/releases/release-1.27/release-notes/maps/pr-115480-map.yaml index 678e0c9a4c3..230fed49d82 100644 --- a/releases/release-1.27/release-notes/maps/pr-115480-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115480-map.yaml @@ -1,4 +1,4 @@ -pr: 115480 -releasenote: - text: Added `--output plaintext-openapiv2` argument to kubectl explain to use old - openapiv2 `explain` implementation. +pr: 115480 +releasenote: + text: Added `--output plaintext-openapiv2` argument to kubectl explain to use old + openapiv2 `explain` implementation. diff --git a/releases/release-1.27/release-notes/maps/pr-115503-map.yaml b/releases/release-1.27/release-notes/maps/pr-115503-map.yaml index b6a32ccdb9f..e6bcf33e4a3 100644 --- a/releases/release-1.27/release-notes/maps/pr-115503-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115503-map.yaml @@ -1,4 +1,4 @@ -pr: 115503 -releasenote: - text: 'Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing - when service was configured with `ipFamilyPolicy`: `RequireDualStack`' +pr: 115503 +releasenote: + text: 'Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing + when service was configured with `ipFamilyPolicy`: `RequireDualStack`' diff --git a/releases/release-1.27/release-notes/maps/pr-115569-map.yaml b/releases/release-1.27/release-notes/maps/pr-115569-map.yaml index 72b35510445..78d2814b720 100644 --- a/releases/release-1.27/release-notes/maps/pr-115569-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115569-map.yaml @@ -1,3 +1,3 @@ -pr: 115569 -releasenote: - text: '`nodeName` being set along with non-empty `schedulingGates` is now enforced.' +pr: 115569 +releasenote: + text: '`nodeName` being set along with non-empty `schedulingGates` is now enforced.' diff --git a/releases/release-1.27/release-notes/maps/pr-115575-map.yaml b/releases/release-1.27/release-notes/maps/pr-115575-map.yaml index e1ee7a3c6e9..ef37d64e655 100644 --- a/releases/release-1.27/release-notes/maps/pr-115575-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115575-map.yaml @@ -1,4 +1,4 @@ -pr: 115575 -releasenote: - text: '`kubeadm`: fixed a bug where the uploaded kubelet configuration in `kube-system/kubelet-config` - `ConfigMap` does not respect user patch' +pr: 115575 +releasenote: + text: '`kubeadm`: fixed a bug where the uploaded kubelet configuration in `kube-system/kubelet-config` + `ConfigMap` does not respect user patch' diff --git a/releases/release-1.27/release-notes/maps/pr-115577-map.yaml b/releases/release-1.27/release-notes/maps/pr-115577-map.yaml index 2f753e593c1..3c8ba8cc2b5 100644 --- a/releases/release-1.27/release-notes/maps/pr-115577-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115577-map.yaml @@ -1,4 +1,4 @@ -pr: 115577 -releasenote: - text: 'Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing - when service was configured with `ipFamilyPolicy`: `RequireDualStack`' +pr: 115577 +releasenote: + text: 'Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing + when service was configured with `ipFamilyPolicy`: `RequireDualStack`' diff --git a/releases/release-1.27/release-notes/maps/pr-115590-map.yaml b/releases/release-1.27/release-notes/maps/pr-115590-map.yaml index 62b651e6144..7d977eafef2 100644 --- a/releases/release-1.27/release-notes/maps/pr-115590-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115590-map.yaml @@ -1,4 +1,4 @@ -pr: 115590 -releasenote: - text: Added kubelet Topology Manager metric to measure topology manager admission - latency. +pr: 115590 +releasenote: + text: Added kubelet Topology Manager metric to measure topology manager admission + latency. diff --git a/releases/release-1.27/release-notes/maps/pr-115603-map.yaml b/releases/release-1.27/release-notes/maps/pr-115603-map.yaml index 9d76eafe466..bb01f7ebb4b 100644 --- a/releases/release-1.27/release-notes/maps/pr-115603-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115603-map.yaml @@ -1,3 +1,3 @@ -pr: 115603 -releasenote: - text: Upgraded `coredns` to `v1.10.1` +pr: 115603 +releasenote: + text: Upgraded `coredns` to `v1.10.1` diff --git a/releases/release-1.27/release-notes/maps/pr-115606-map.yaml b/releases/release-1.27/release-notes/maps/pr-115606-map.yaml index 3b50c6d0449..2fbed1417f5 100644 --- a/releases/release-1.27/release-notes/maps/pr-115606-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115606-map.yaml @@ -1,4 +1,4 @@ -pr: 115606 -releasenote: - text: Pods which have an invalid negative `spec.terminationGracePeriodSeconds` value - will now be treated as having a `terminationGracePeriodSeconds` of `1` +pr: 115606 +releasenote: + text: Pods which have an invalid negative `spec.terminationGracePeriodSeconds` value + will now be treated as having a `terminationGracePeriodSeconds` of `1` diff --git a/releases/release-1.27/release-notes/maps/pr-115610-map.yaml b/releases/release-1.27/release-notes/maps/pr-115610-map.yaml index 457e8721604..be7fc9c8725 100644 --- a/releases/release-1.27/release-notes/maps/pr-115610-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115610-map.yaml @@ -1,4 +1,4 @@ -pr: 115610 -releasenote: - text: '`kubeadm`: now shows a warning message when detecting that the sandbox image - of the container runtime is inconsistent with that used by kubeadm' +pr: 115610 +releasenote: + text: '`kubeadm`: now shows a warning message when detecting that the sandbox image + of the container runtime is inconsistent with that used by kubeadm' diff --git a/releases/release-1.27/release-notes/maps/pr-115620-map.yaml b/releases/release-1.27/release-notes/maps/pr-115620-map.yaml index 2c93e4e345f..8c24333c3d3 100644 --- a/releases/release-1.27/release-notes/maps/pr-115620-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115620-map.yaml @@ -1,5 +1,5 @@ -pr: 115620 -releasenote: - text: Fixed missing delete events on informer re-lists to ensure all delete events - were correctly emitted and using the latest known object state, so that all event - handlers and stores always reflect the actual apiserver state as best as possible +pr: 115620 +releasenote: + text: Fixed missing delete events on informer re-lists to ensure all delete events + were correctly emitted and using the latest known object state, so that all event + handlers and stores always reflect the actual apiserver state as best as possible diff --git a/releases/release-1.27/release-notes/maps/pr-115621-map.yaml b/releases/release-1.27/release-notes/maps/pr-115621-map.yaml index dff7f5330b9..28065ac7838 100644 --- a/releases/release-1.27/release-notes/maps/pr-115621-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115621-map.yaml @@ -1,4 +1,4 @@ -pr: 115621 -releasenote: - text: Graduated the `CSINodeExpandSecret` feature to Beta. This feature facilitates - passing secrets to CSI driver as part of Node Expansion CSI operation. +pr: 115621 +releasenote: + text: Graduated the `CSINodeExpandSecret` feature to Beta. This feature facilitates + passing secrets to CSI driver as part of Node Expansion CSI operation. diff --git a/releases/release-1.27/release-notes/maps/pr-115652-map.yaml b/releases/release-1.27/release-notes/maps/pr-115652-map.yaml index f2759d940ec..be3ce7ec254 100644 --- a/releases/release-1.27/release-notes/maps/pr-115652-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115652-map.yaml @@ -1,5 +1,5 @@ -pr: 115652 -releasenote: - text: The Scheduler did not run the plugin Score method when its PreScore method - returned a Skip status. In other words, the PreScore/Score plugin could return - a Skip status in PreScore if the plugin did nothing in Score for that Pod. +pr: 115652 +releasenote: + text: The Scheduler did not run the plugin Score method when its PreScore method + returned a Skip status. In other words, the PreScore/Score plugin could return + a Skip status in PreScore if the plugin did nothing in Score for that Pod. diff --git a/releases/release-1.27/release-notes/maps/pr-115655-map.yaml b/releases/release-1.27/release-notes/maps/pr-115655-map.yaml index 527ca5ead0b..3a113621ffc 100644 --- a/releases/release-1.27/release-notes/maps/pr-115655-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115655-map.yaml @@ -1,5 +1,5 @@ -pr: 115655 -releasenote: - text: |- - `NodeResourceFit` and `NodeResourcesBalancedAllocation` implement the `PreScore` - extension point for a more performant calculation. +pr: 115655 +releasenote: + text: |- + `NodeResourceFit` and `NodeResourcesBalancedAllocation` implement the `PreScore` + extension point for a more performant calculation. diff --git a/releases/release-1.27/release-notes/maps/pr-115668-map.yaml b/releases/release-1.27/release-notes/maps/pr-115668-map.yaml index 4869e388ea9..ea99eb13b86 100644 --- a/releases/release-1.27/release-notes/maps/pr-115668-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115668-map.yaml @@ -1,5 +1,5 @@ -pr: 115668 -releasenote: - text: |- - `ValidatingAdmissionPolicy` now provides a status field that contains results of type checking the validation expression. - The type checking is fully informational, and the behavior of the policy is unchanged. +pr: 115668 +releasenote: + text: |- + `ValidatingAdmissionPolicy` now provides a status field that contains results of type checking the validation expression. + The type checking is fully informational, and the behavior of the policy is unchanged. diff --git a/releases/release-1.27/release-notes/maps/pr-115690-map.yaml b/releases/release-1.27/release-notes/maps/pr-115690-map.yaml index f886ca80ff1..0bf633b89f4 100644 --- a/releases/release-1.27/release-notes/maps/pr-115690-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115690-map.yaml @@ -1,3 +1,3 @@ -pr: 115690 -releasenote: - text: None +pr: 115690 +releasenote: + text: None diff --git a/releases/release-1.27/release-notes/maps/pr-115709-map.yaml b/releases/release-1.27/release-notes/maps/pr-115709-map.yaml index 7e663e957bd..cd97d5f6693 100644 --- a/releases/release-1.27/release-notes/maps/pr-115709-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115709-map.yaml @@ -1,3 +1,3 @@ -pr: 115709 -releasenote: - text: None +pr: 115709 +releasenote: + text: None diff --git a/releases/release-1.27/release-notes/maps/pr-115739-map.yaml b/releases/release-1.27/release-notes/maps/pr-115739-map.yaml index 606173c79ca..e698cadc265 100644 --- a/releases/release-1.27/release-notes/maps/pr-115739-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115739-map.yaml @@ -1,3 +1,3 @@ -pr: 115739 -releasenote: - text: None +pr: 115739 +releasenote: + text: None diff --git a/releases/release-1.27/release-notes/maps/pr-115747-map.yaml b/releases/release-1.27/release-notes/maps/pr-115747-map.yaml index 4a2a1cad6ce..adb4172340f 100644 --- a/releases/release-1.27/release-notes/maps/pr-115747-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115747-map.yaml @@ -1,8 +1,8 @@ -pr: 115747 -releasenote: - text: |- - Added CEL runtime cost calculation into ValidatingAdmissionPolicy, matching the evaluation cost - restrictions that already apply to CustomResourceDefinition. - If rule evaluation uses more compute than the limit, the API server aborts the evaluation and the - admission check that was being performed is aborted; the `failurePolicy` for the ValidatingAdmissionPolicy - determines the outcome. +pr: 115747 +releasenote: + text: |- + Added CEL runtime cost calculation into ValidatingAdmissionPolicy, matching the evaluation cost + restrictions that already apply to CustomResourceDefinition. + If rule evaluation uses more compute than the limit, the API server aborts the evaluation and the + admission check that was being performed is aborted; the `failurePolicy` for the ValidatingAdmissionPolicy + determines the outcome. diff --git a/releases/release-1.27/release-notes/maps/pr-115750-map.yaml b/releases/release-1.27/release-notes/maps/pr-115750-map.yaml index 76fa15c0f36..800a569e942 100644 --- a/releases/release-1.27/release-notes/maps/pr-115750-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115750-map.yaml @@ -1,4 +1,4 @@ -pr: 115750 -releasenote: - text: Graduated `KubeletTracing` to beta, which means that the feature gate is now - enabled by default. +pr: 115750 +releasenote: + text: Graduated `KubeletTracing` to beta, which means that the feature gate is now + enabled by default. diff --git a/releases/release-1.27/release-notes/maps/pr-115758-map.yaml b/releases/release-1.27/release-notes/maps/pr-115758-map.yaml index 1d4ecf7b5c9..3f44f923bc1 100644 --- a/releases/release-1.27/release-notes/maps/pr-115758-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115758-map.yaml @@ -1,3 +1,3 @@ -pr: 115758 -releasenote: - text: NONE +pr: 115758 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-115769-map.yaml b/releases/release-1.27/release-notes/maps/pr-115769-map.yaml index a547e648f0e..f5614dff333 100644 --- a/releases/release-1.27/release-notes/maps/pr-115769-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115769-map.yaml @@ -1,4 +1,4 @@ -pr: 115769 -releasenote: - text: Fixed the problem Pod terminating stuck because of trying to umount not actual - mounted dir. +pr: 115769 +releasenote: + text: Fixed the problem Pod terminating stuck because of trying to umount not actual + mounted dir. diff --git a/releases/release-1.27/release-notes/maps/pr-115770-map.yaml b/releases/release-1.27/release-notes/maps/pr-115770-map.yaml index 0089abb3072..76e7a427f6e 100644 --- a/releases/release-1.27/release-notes/maps/pr-115770-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115770-map.yaml @@ -1,4 +1,4 @@ -pr: 115770 -releasenote: - text: Discovery document will correctly return the resources for aggregated apiservers - that do not implement aggregated disovery +pr: 115770 +releasenote: + text: Discovery document will correctly return the resources for aggregated apiservers + that do not implement aggregated disovery diff --git a/releases/release-1.27/release-notes/maps/pr-115786-map.yaml b/releases/release-1.27/release-notes/maps/pr-115786-map.yaml index 94701dda414..7d7e0658664 100644 --- a/releases/release-1.27/release-notes/maps/pr-115786-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115786-map.yaml @@ -1,3 +1,3 @@ -pr: 115786 -releasenote: - text: '`golang.org/x/net` updated to `v0.7.0` to fix CVE-2022-41723' +pr: 115786 +releasenote: + text: '`golang.org/x/net` updated to `v0.7.0` to fix CVE-2022-41723' diff --git a/releases/release-1.27/release-notes/maps/pr-115800-map.yaml b/releases/release-1.27/release-notes/maps/pr-115800-map.yaml index 679b30c0e0d..81860b6ecdf 100644 --- a/releases/release-1.27/release-notes/maps/pr-115800-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115800-map.yaml @@ -1,3 +1,3 @@ -pr: 115800 -releasenote: - text: NONE +pr: 115800 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-115815-map.yaml b/releases/release-1.27/release-notes/maps/pr-115815-map.yaml index bdaf70146c8..fbc37ea8586 100644 --- a/releases/release-1.27/release-notes/maps/pr-115815-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115815-map.yaml @@ -1,3 +1,3 @@ -pr: 115815 -releasenote: - text: '`PodSchedulingReadiness` is graduated to beta.' +pr: 115815 +releasenote: + text: '`PodSchedulingReadiness` is graduated to beta.' diff --git a/releases/release-1.27/release-notes/maps/pr-115840-map.yaml b/releases/release-1.27/release-notes/maps/pr-115840-map.yaml index c09131c5ccb..4ed041768f1 100644 --- a/releases/release-1.27/release-notes/maps/pr-115840-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115840-map.yaml @@ -1,3 +1,3 @@ -pr: 115840 -releasenote: - text: Remove deprecated `--enable-taint-manager` and `--pod-eviction-timeout` CLI +pr: 115840 +releasenote: + text: Remove deprecated `--enable-taint-manager` and `--pod-eviction-timeout` CLI diff --git a/releases/release-1.27/release-notes/maps/pr-115856-map.yaml b/releases/release-1.27/release-notes/maps/pr-115856-map.yaml index 71fe7658b8f..91416ed1730 100644 --- a/releases/release-1.27/release-notes/maps/pr-115856-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115856-map.yaml @@ -1,3 +1,3 @@ -pr: 115856 -releasenote: - text: NONE +pr: 115856 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-115879-map.yaml b/releases/release-1.27/release-notes/maps/pr-115879-map.yaml index 146601b2ca9..e11bb54b6e4 100644 --- a/releases/release-1.27/release-notes/maps/pr-115879-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115879-map.yaml @@ -1,4 +1,4 @@ -pr: 115879 -releasenote: - text: The `SecurityContextDeny` admission plugin is going deprecated and will be - removed in future versions. +pr: 115879 +releasenote: + text: The `SecurityContextDeny` admission plugin is going deprecated and will be + removed in future versions. diff --git a/releases/release-1.27/release-notes/maps/pr-115893-map.yaml b/releases/release-1.27/release-notes/maps/pr-115893-map.yaml index 1ff0aee9dfe..ef654c8431b 100644 --- a/releases/release-1.27/release-notes/maps/pr-115893-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115893-map.yaml @@ -1,3 +1,3 @@ -pr: 115893 -releasenote: - text: Upgraded `go-jose` to `v2.6.0` +pr: 115893 +releasenote: + text: Upgraded `go-jose` to `v2.6.0` diff --git a/releases/release-1.27/release-notes/maps/pr-115904-map.yaml b/releases/release-1.27/release-notes/maps/pr-115904-map.yaml index 5825e35eb78..7f032a2ebc4 100644 --- a/releases/release-1.27/release-notes/maps/pr-115904-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115904-map.yaml @@ -1,3 +1,3 @@ -pr: 115904 -releasenote: - text: Promoted `CronJobTimeZone` feature to GA +pr: 115904 +releasenote: + text: Promoted `CronJobTimeZone` feature to GA diff --git a/releases/release-1.27/release-notes/maps/pr-115919-map.yaml b/releases/release-1.27/release-notes/maps/pr-115919-map.yaml index dbbac4163fd..bef15004a98 100644 --- a/releases/release-1.27/release-notes/maps/pr-115919-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115919-map.yaml @@ -1,5 +1,5 @@ -pr: 115919 -releasenote: - text: Fixed an issue with Winkernel Proxier - ClusterIP Loadbalancers missing if - the `ExternalTrafficPolicy` is set to Local and the available endpoints are all - `remoteEndpoints`. +pr: 115919 +releasenote: + text: Fixed an issue with Winkernel Proxier - ClusterIP Loadbalancers missing if + the `ExternalTrafficPolicy` is set to Local and the available endpoints are all + `remoteEndpoints`. diff --git a/releases/release-1.27/release-notes/maps/pr-115928-map.yaml b/releases/release-1.27/release-notes/maps/pr-115928-map.yaml index 94565638ce5..0febf175849 100644 --- a/releases/release-1.27/release-notes/maps/pr-115928-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115928-map.yaml @@ -1,4 +1,4 @@ -pr: 115928 -releasenote: - text: '`volumes`: `resource.claims` is now cleared for PVC specs during create or - update of a pod spec with inline PVC template or of a PVC because it has no effect.' +pr: 115928 +releasenote: + text: '`volumes`: `resource.claims` is now cleared for PVC specs during create or + update of a pod spec with inline PVC template or of a PVC because it has no effect.' diff --git a/releases/release-1.27/release-notes/maps/pr-115967-map.yaml b/releases/release-1.27/release-notes/maps/pr-115967-map.yaml index 6db84a9c96e..48a2ea4e9f8 100644 --- a/releases/release-1.27/release-notes/maps/pr-115967-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115967-map.yaml @@ -1,4 +1,4 @@ -pr: 115967 -releasenote: - text: Graduated CRI Events driven Pod LifeCycle Event Generator (Evented PLEG) to - Beta +pr: 115967 +releasenote: + text: Graduated CRI Events driven Pod LifeCycle Event Generator (Evented PLEG) to + Beta diff --git a/releases/release-1.27/release-notes/maps/pr-115969-map.yaml b/releases/release-1.27/release-notes/maps/pr-115969-map.yaml index d9ae9eff031..0d2a19729af 100644 --- a/releases/release-1.27/release-notes/maps/pr-115969-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115969-map.yaml @@ -1,3 +1,3 @@ -pr: 115969 -releasenote: - text: Added `messageExpression` field to `ValidationRule`. +pr: 115969 +releasenote: + text: Added `messageExpression` field to `ValidationRule`. diff --git a/releases/release-1.27/release-notes/maps/pr-115973-map.yaml b/releases/release-1.27/release-notes/maps/pr-115973-map.yaml index d0bdcc7e078..52c022377f0 100644 --- a/releases/release-1.27/release-notes/maps/pr-115973-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-115973-map.yaml @@ -1,5 +1,5 @@ -pr: 115973 -releasenote: - text: |- - Added `auditAnnotations` to `ValidatingAdmissionPolicy`, enabling CEL to be used to add audit annotations to request audit events. - Added `validationActions` to `ValidatingAdmissionPolicyBinding`, enabling validation failures to be handled by any combination of the warn, audit and deny enforcement actions. +pr: 115973 +releasenote: + text: |- + Added `auditAnnotations` to `ValidatingAdmissionPolicy`, enabling CEL to be used to add audit annotations to request audit events. + Added `validationActions` to `ValidatingAdmissionPolicyBinding`, enabling validation failures to be handled by any combination of the warn, audit and deny enforcement actions. diff --git a/releases/release-1.27/release-notes/maps/pr-116010-map.yaml b/releases/release-1.27/release-notes/maps/pr-116010-map.yaml index d47258c75ca..d13e6d66ae6 100644 --- a/releases/release-1.27/release-notes/maps/pr-116010-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116010-map.yaml @@ -1,5 +1,5 @@ -pr: 116010 -releasenote: - text: 'HPA controller starts to expose metrics from the kube-controller-manager.\n- - `reconciliations_total`: Number of reconciliation of HPA controller. \n- `reconciliation_duration_seconds`: - The time(seconds) that the HPA controller takes to reconcile once.' +pr: 116010 +releasenote: + text: 'HPA controller starts to expose metrics from the kube-controller-manager.\n- + `reconciliations_total`: Number of reconciliation of HPA controller. \n- `reconciliation_duration_seconds`: + The time(seconds) that the HPA controller takes to reconcile once.' diff --git a/releases/release-1.27/release-notes/maps/pr-116015-map.yaml b/releases/release-1.27/release-notes/maps/pr-116015-map.yaml index 4ca933b90d6..11e5761f5fb 100644 --- a/releases/release-1.27/release-notes/maps/pr-116015-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116015-map.yaml @@ -1,3 +1,3 @@ -pr: 116015 -releasenote: - text: 'kubelet: the deprecated `--master-service-namespace` flag is removed in v1.27' +pr: 116015 +releasenote: + text: 'kubelet: the deprecated `--master-service-namespace` flag is removed in v1.27' diff --git a/releases/release-1.27/release-notes/maps/pr-116018-map.yaml b/releases/release-1.27/release-notes/maps/pr-116018-map.yaml index 4abaeef9905..5088ae83557 100644 --- a/releases/release-1.27/release-notes/maps/pr-116018-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116018-map.yaml @@ -1,4 +1,4 @@ -pr: 116018 -releasenote: - text: Fixed a log line in scheduler that inaccurately implies that volume binding - has finalized +pr: 116018 +releasenote: + text: Fixed a log line in scheduler that inaccurately implies that volume binding + has finalized diff --git a/releases/release-1.27/release-notes/maps/pr-116033-map.yaml b/releases/release-1.27/release-notes/maps/pr-116033-map.yaml index 2b45b5db1f0..939133472e2 100644 --- a/releases/release-1.27/release-notes/maps/pr-116033-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116033-map.yaml @@ -1,3 +1,3 @@ -pr: 116033 -releasenote: - text: NONE +pr: 116033 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-116043-map.yaml b/releases/release-1.27/release-notes/maps/pr-116043-map.yaml index 1ebba1b0cb0..d1142c442f6 100644 --- a/releases/release-1.27/release-notes/maps/pr-116043-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116043-map.yaml @@ -1,5 +1,5 @@ -pr: 116043 -releasenote: - text: 'From now on, the HPA controller will return an error for the container resource - metrics when the feature gate `HPAContainerMetrics` is disabled. As a result, - HPA with a container resource metric performs no scale-down and performs only.' +pr: 116043 +releasenote: + text: 'From now on, the HPA controller will return an error for the container resource + metrics when the feature gate `HPAContainerMetrics` is disabled. As a result, + HPA with a container resource metric performs no scale-down and performs only.' diff --git a/releases/release-1.27/release-notes/maps/pr-116046-map.yaml b/releases/release-1.27/release-notes/maps/pr-116046-map.yaml index 258f6bbbc5e..191c8cadeb7 100644 --- a/releases/release-1.27/release-notes/maps/pr-116046-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116046-map.yaml @@ -1,3 +1,3 @@ -pr: 116046 -releasenote: - text: Graduated the container resource metrics feature on `HPA` to beta. +pr: 116046 +releasenote: + text: Graduated the container resource metrics feature on `HPA` to beta. diff --git a/releases/release-1.27/release-notes/maps/pr-116066-map.yaml b/releases/release-1.27/release-notes/maps/pr-116066-map.yaml index c825a6748ce..a86a8955ec1 100644 --- a/releases/release-1.27/release-notes/maps/pr-116066-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116066-map.yaml @@ -1,3 +1,3 @@ -pr: 116066 -releasenote: - text: NONE +pr: 116066 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-116074-map.yaml b/releases/release-1.27/release-notes/maps/pr-116074-map.yaml index 022600c28f4..b646516503f 100644 --- a/releases/release-1.27/release-notes/maps/pr-116074-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116074-map.yaml @@ -1,4 +1,4 @@ -pr: 116074 -releasenote: - text: 'kubeadm`: modified `--config` flag from required to optional for `kubeadm - kubeconfig user` command' +pr: 116074 +releasenote: + text: 'kubeadm`: modified `--config` flag from required to optional for `kubeadm + kubeconfig user` command' diff --git a/releases/release-1.27/release-notes/maps/pr-116093-map.yaml b/releases/release-1.27/release-notes/maps/pr-116093-map.yaml index 77a768284ed..eb96841b20c 100644 --- a/releases/release-1.27/release-notes/maps/pr-116093-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116093-map.yaml @@ -1,3 +1,3 @@ -pr: 116093 -releasenote: - text: Graduated `Kubelet Topology Manager` to GA. +pr: 116093 +releasenote: + text: Graduated `Kubelet Topology Manager` to GA. diff --git a/releases/release-1.27/release-notes/maps/pr-116108-map.yaml b/releases/release-1.27/release-notes/maps/pr-116108-map.yaml index 887d58b9e91..484f3439592 100644 --- a/releases/release-1.27/release-notes/maps/pr-116108-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116108-map.yaml @@ -1,3 +1,3 @@ -pr: 116108 -releasenote: - text: Promote aggregated discovery endpoint to beta and it will be enabled by default +pr: 116108 +releasenote: + text: Promote aggregated discovery endpoint to beta and it will be enabled by default diff --git a/releases/release-1.27/release-notes/maps/pr-116119-map.yaml b/releases/release-1.27/release-notes/maps/pr-116119-map.yaml index c90eb12fb5c..ae2a6818112 100644 --- a/releases/release-1.27/release-notes/maps/pr-116119-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116119-map.yaml @@ -1,3 +1,3 @@ -pr: 116119 -releasenote: - text: 'None' +pr: 116119 +releasenote: + text: 'None' diff --git a/releases/release-1.27/release-notes/maps/pr-116121-map.yaml b/releases/release-1.27/release-notes/maps/pr-116121-map.yaml index 6dff91d87ed..d1fbbc16151 100644 --- a/releases/release-1.27/release-notes/maps/pr-116121-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116121-map.yaml @@ -1,3 +1,3 @@ -pr: 116121 -releasenote: - text: Bump default API QPS limits for Kubelet. +pr: 116121 +releasenote: + text: Bump default API QPS limits for Kubelet. diff --git a/releases/release-1.27/release-notes/maps/pr-116144-map.yaml b/releases/release-1.27/release-notes/maps/pr-116144-map.yaml index 19eed668839..88bd9c92682 100644 --- a/releases/release-1.27/release-notes/maps/pr-116144-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116144-map.yaml @@ -1,5 +1,5 @@ -pr: 116144 -releasenote: - text: |- - `APIServerTracing` feature gate is now enabled by default. Tracing in the API - Server is still disabled by default, and requires a config file to enable. +pr: 116144 +releasenote: + text: |- + `APIServerTracing` feature gate is now enabled by default. Tracing in the API + Server is still disabled by default, and requires a config file to enable. diff --git a/releases/release-1.27/release-notes/maps/pr-116155-map.yaml b/releases/release-1.27/release-notes/maps/pr-116155-map.yaml index b02858ae7e2..7ad85b7f615 100644 --- a/releases/release-1.27/release-notes/maps/pr-116155-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116155-map.yaml @@ -1,5 +1,5 @@ -pr: 116155 -releasenote: - text: The API server now re-uses data encryption keys while the kms v2 plugin key - ID is stable. Data encryption keys are still randomly generated on server start - but an atomic counter is used to prevent nonce collisions. +pr: 116155 +releasenote: + text: The API server now re-uses data encryption keys while the kms v2 plugin key + ID is stable. Data encryption keys are still randomly generated on server start + but an atomic counter is used to prevent nonce collisions. diff --git a/releases/release-1.27/release-notes/maps/pr-116161-map.yaml b/releases/release-1.27/release-notes/maps/pr-116161-map.yaml index cb4619a43a4..f055d4b291d 100644 --- a/releases/release-1.27/release-notes/maps/pr-116161-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116161-map.yaml @@ -1,4 +1,4 @@ -pr: 116161 -releasenote: - text: Relaxed API validation to allow pod node selector to be mutable for gated - pods (additions only, no deletions or mutations). +pr: 116161 +releasenote: + text: Relaxed API validation to allow pod node selector to be mutable for gated + pods (additions only, no deletions or mutations). diff --git a/releases/release-1.27/release-notes/maps/pr-116167-map.yaml b/releases/release-1.27/release-notes/maps/pr-116167-map.yaml index 9c39dd7d602..1498aead19e 100644 --- a/releases/release-1.27/release-notes/maps/pr-116167-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116167-map.yaml @@ -1,3 +1,3 @@ -pr: 116167 -releasenote: - text: When GCing pods, `kube-controller-manager` will delete Evicted pods first. +pr: 116167 +releasenote: + text: When GCing pods, `kube-controller-manager` will delete Evicted pods first. diff --git a/releases/release-1.27/release-notes/maps/pr-116171-map.yaml b/releases/release-1.27/release-notes/maps/pr-116171-map.yaml index d2e42d18f03..0f9d709f65a 100644 --- a/releases/release-1.27/release-notes/maps/pr-116171-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116171-map.yaml @@ -1,3 +1,3 @@ -pr: 116171 -releasenote: - text: 'None' +pr: 116171 +releasenote: + text: 'None' diff --git a/releases/release-1.27/release-notes/maps/pr-116172-map.yaml b/releases/release-1.27/release-notes/maps/pr-116172-map.yaml index 8223824ab79..40118c6aa49 100644 --- a/releases/release-1.27/release-notes/maps/pr-116172-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116172-map.yaml @@ -1,5 +1,5 @@ -pr: 116172 -releasenote: - text: Fixed a rare race condition in `kube-apiserver` that could lead to missing - events when a watch API request was created at the same time `kube-apiserver` - was re-initializing its internal watch. +pr: 116172 +releasenote: + text: Fixed a rare race condition in `kube-apiserver` that could lead to missing + events when a watch API request was created at the same time `kube-apiserver` + was re-initializing its internal watch. diff --git a/releases/release-1.27/release-notes/maps/pr-116201-map.yaml b/releases/release-1.27/release-notes/maps/pr-116201-map.yaml index 5864a6437e4..644b2bdaa1b 100644 --- a/releases/release-1.27/release-notes/maps/pr-116201-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116201-map.yaml @@ -1,4 +1,4 @@ -pr: 116201 -releasenote: - text: The scheduler's metric `plugin_execution_duration_seconds` now records `PreEnqueue` - plugins execution seconds. +pr: 116201 +releasenote: + text: The scheduler's metric `plugin_execution_duration_seconds` now records `PreEnqueue` + plugins execution seconds. diff --git a/releases/release-1.27/release-notes/maps/pr-116205-map.yaml b/releases/release-1.27/release-notes/maps/pr-116205-map.yaml index 6500e894b9d..9063411f679 100644 --- a/releases/release-1.27/release-notes/maps/pr-116205-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116205-map.yaml @@ -1,14 +1,14 @@ -pr: 116205 -releasenote: - text: Since Kubernetes v1.5, `kubectl apply` has had an alpha-stage `--prune` flag - to support deleting previously applied objects that have been removed from the - input manifest. This feature has remained in alpha ever since due to performance - and correctness issues inherent in its design. This PR exposes a second, independent - pruning alpha powered by a new standard named `ApplySets`. An `ApplySet` is a - server-side object (by default, a Secret; ConfigMaps are also allowed) that kubectl - can use to accurately and efficiently track set membership across `apply` operations. - The format used for `ApplySet` is set out in [KEP 3659](https://github.com/kubernetes/enhancements/issues/3659) - as a low-level specification. Other tools in the ecosystem can also build on - this specification for improved interoperability. To try the ApplySet-based pruning - alpha, set `KUBECTL_APPLYSET=true` and use the flags `--prune --applyset=secret-name` - with `kubectl apply`. +pr: 116205 +releasenote: + text: Since Kubernetes v1.5, `kubectl apply` has had an alpha-stage `--prune` flag + to support deleting previously applied objects that have been removed from the + input manifest. This feature has remained in alpha ever since due to performance + and correctness issues inherent in its design. This PR exposes a second, independent + pruning alpha powered by a new standard named `ApplySets`. An `ApplySet` is a + server-side object (by default, a Secret; ConfigMaps are also allowed) that kubectl + can use to accurately and efficiently track set membership across `apply` operations. + The format used for `ApplySet` is set out in [KEP 3659](https://github.com/kubernetes/enhancements/issues/3659) + as a low-level specification. Other tools in the ecosystem can also build on + this specification for improved interoperability. To try the ApplySet-based pruning + alpha, set `KUBECTL_APPLYSET=true` and use the flags `--prune --applyset=secret-name` + with `kubectl apply`. diff --git a/releases/release-1.27/release-notes/maps/pr-116219-map.yaml b/releases/release-1.27/release-notes/maps/pr-116219-map.yaml index 46cf79da88f..a4065732314 100644 --- a/releases/release-1.27/release-notes/maps/pr-116219-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116219-map.yaml @@ -1,4 +1,4 @@ -pr: 116219 -releasenote: - text: '`kube-controller-manager`: fixed a bug that the `kubeconfig` field of `kubecontrollermanager.config.k8s.io` - configuration is not populated correctly' +pr: 116219 +releasenote: + text: '`kube-controller-manager`: fixed a bug that the `kubeconfig` field of `kubecontrollermanager.config.k8s.io` + configuration is not populated correctly' diff --git a/releases/release-1.27/release-notes/maps/pr-116233-map.yaml b/releases/release-1.27/release-notes/maps/pr-116233-map.yaml index ba5bdcfaf98..e0e5d8f5b30 100644 --- a/releases/release-1.27/release-notes/maps/pr-116233-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116233-map.yaml @@ -1,5 +1,5 @@ -pr: 116233 -releasenote: - text: gRPC probes are now a GA feature. `GRPCContainerProbe` feature gate was locked - to default value and will be removed in v1.29. If you were setting this feature - gate explicitly, please remove it now. +pr: 116233 +releasenote: + text: gRPC probes are now a GA feature. `GRPCContainerProbe` feature gate was locked + to default value and will be removed in v1.29. If you were setting this feature + gate explicitly, please remove it now. diff --git a/releases/release-1.27/release-notes/maps/pr-116235-map.yaml b/releases/release-1.27/release-notes/maps/pr-116235-map.yaml index 0f97eee1b63..ede20d77022 100644 --- a/releases/release-1.27/release-notes/maps/pr-116235-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116235-map.yaml @@ -1,3 +1,3 @@ -pr: 116235 -releasenote: - text: 'Promoted `OpenAPIV3` to GA' +pr: 116235 +releasenote: + text: 'Promoted `OpenAPIV3` to GA' diff --git a/releases/release-1.27/release-notes/maps/pr-116255-map.yaml b/releases/release-1.27/release-notes/maps/pr-116255-map.yaml index 60526870018..31c6b081f6d 100644 --- a/releases/release-1.27/release-notes/maps/pr-116255-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116255-map.yaml @@ -1,7 +1,7 @@ -pr: 116255 -releasenote: - text: |- - 'The `IPv6DualStack` feature gate for external cloud providers was removed. - (The feature became GA in 1.23 and the gate was removed for all other - components several releases ago.) If you were still manually - enabling it you must stop now.' +pr: 116255 +releasenote: + text: |- + 'The `IPv6DualStack` feature gate for external cloud providers was removed. + (The feature became GA in 1.23 and the gate was removed for all other + components several releases ago.) If you were still manually + enabling it you must stop now.' diff --git a/releases/release-1.27/release-notes/maps/pr-116287-map.yaml b/releases/release-1.27/release-notes/maps/pr-116287-map.yaml index c80e8d106a8..8488fc3cbbc 100644 --- a/releases/release-1.27/release-notes/maps/pr-116287-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116287-map.yaml @@ -1,3 +1,3 @@ -pr: 116287 -releasenote: - text: NONE +pr: 116287 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-116291-map.yaml b/releases/release-1.27/release-notes/maps/pr-116291-map.yaml index 8eb627b055f..3e530add45b 100644 --- a/releases/release-1.27/release-notes/maps/pr-116291-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116291-map.yaml @@ -1,3 +1,3 @@ -pr: 116291 -releasenote: - text: 'Graduated `matchLabelKeys` in `podTopologySpread` to Beta' +pr: 116291 +releasenote: + text: 'Graduated `matchLabelKeys` in `podTopologySpread` to Beta' diff --git a/releases/release-1.27/release-notes/maps/pr-116293-map.yaml b/releases/release-1.27/release-notes/maps/pr-116293-map.yaml index 06d7842d673..1d14c2bd014 100644 --- a/releases/release-1.27/release-notes/maps/pr-116293-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116293-map.yaml @@ -1,5 +1,5 @@ -pr: 116293 -releasenote: - text: Enable external plugins can be used as subcommands for kubectl create command - if subcommand does not exist as builtin only when KUBECTL_ENABLE_CMD_SHADOW environment - variable is exported. +pr: 116293 +releasenote: + text: Enable external plugins can be used as subcommands for kubectl create command + if subcommand does not exist as builtin only when KUBECTL_ENABLE_CMD_SHADOW environment + variable is exported. diff --git a/releases/release-1.27/release-notes/maps/pr-116299-map.yaml b/releases/release-1.27/release-notes/maps/pr-116299-map.yaml index da5acb6c472..71badd8a39c 100644 --- a/releases/release-1.27/release-notes/maps/pr-116299-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116299-map.yaml @@ -1,8 +1,8 @@ -pr: 116299 -releasenote: - text: |- - `resource.k8s.io/v1alpha1` was replaced with `resource.k8s.io/v1alpha2`. Before - upgrading a cluster, all objects in resource.k8s.io/v1alpha1 (ResourceClaim, ResourceClaimTemplate, - ResourceClass, PodScheduling) must be deleted. The changes are internal, so - YAML files which create pods and resource claims don't need changes except for - the newer `apiVersion`. +pr: 116299 +releasenote: + text: |- + `resource.k8s.io/v1alpha1` was replaced with `resource.k8s.io/v1alpha2`. Before + upgrading a cluster, all objects in resource.k8s.io/v1alpha1 (ResourceClaim, ResourceClaimTemplate, + ResourceClass, PodScheduling) must be deleted. The changes are internal, so + YAML files which create pods and resource claims don't need changes except for + the newer `apiVersion`. diff --git a/releases/release-1.27/release-notes/maps/pr-116301-map.yaml b/releases/release-1.27/release-notes/maps/pr-116301-map.yaml index 14a04aa7971..3c4f51664d4 100644 --- a/releases/release-1.27/release-notes/maps/pr-116301-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116301-map.yaml @@ -1,3 +1,3 @@ -pr: 116301 -releasenote: - text: Removed Azure disk in-tree storage plugin +pr: 116301 +releasenote: + text: Removed Azure disk in-tree storage plugin diff --git a/releases/release-1.27/release-notes/maps/pr-116332-map.yaml b/releases/release-1.27/release-notes/maps/pr-116332-map.yaml index e90f9a516fc..da11ff51ee8 100644 --- a/releases/release-1.27/release-notes/maps/pr-116332-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116332-map.yaml @@ -1,5 +1,5 @@ -pr: 116332 -releasenote: - text: 'Introduced a breaking change to the `resource.k8s.io` API in its `AllocationResult` - struct. This change allows a kubelet plugin for the `DynamicResourceAllocation` - feature to service allocations from multiple resource driver controllers.' +pr: 116332 +releasenote: + text: 'Introduced a breaking change to the `resource.k8s.io` API in its `AllocationResult` + struct. This change allows a kubelet plugin for the `DynamicResourceAllocation` + feature to service allocations from multiple resource driver controllers.' diff --git a/releases/release-1.27/release-notes/maps/pr-116350-map.yaml b/releases/release-1.27/release-notes/maps/pr-116350-map.yaml index 11de615db3a..da6e1e9095a 100644 --- a/releases/release-1.27/release-notes/maps/pr-116350-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116350-map.yaml @@ -1,4 +1,4 @@ -pr: 116350 -releasenote: - text: Added matchConditions field to ValidatingAdmissionPolicy and enabled support - for CEL based custom match criteria. +pr: 116350 +releasenote: + text: Added matchConditions field to ValidatingAdmissionPolicy and enabled support + for CEL based custom match criteria. diff --git a/releases/release-1.27/release-notes/maps/pr-116351-map.yaml b/releases/release-1.27/release-notes/maps/pr-116351-map.yaml index 2d6e8fb1363..5b042f4d660 100644 --- a/releases/release-1.27/release-notes/maps/pr-116351-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116351-map.yaml @@ -1,3 +1,3 @@ -pr: 116351 -releasenote: - text: NONE +pr: 116351 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-116353-map.yaml b/releases/release-1.27/release-notes/maps/pr-116353-map.yaml index 45f005455b4..e64f7e208e7 100644 --- a/releases/release-1.27/release-notes/maps/pr-116353-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116353-map.yaml @@ -1,6 +1,6 @@ -pr: 116353 -releasenote: - text: '[alpha: kubectl apply --prune --applyset] Enabled certain custom resources - (CRs) to be used as `ApplySet` parent objects. To enable this for a given CR, - apply the label `applyset.kubernetes.io/is-parent-type: true` to the CustomResourceDefinition - (CRD) that defines it.' +pr: 116353 +releasenote: + text: '[alpha: kubectl apply --prune --applyset] Enabled certain custom resources + (CRs) to be used as `ApplySet` parent objects. To enable this for a given CR, + apply the label `applyset.kubernetes.io/is-parent-type: true` to the CustomResourceDefinition + (CRD) that defines it.' diff --git a/releases/release-1.27/release-notes/maps/pr-116420-map.yaml b/releases/release-1.27/release-notes/maps/pr-116420-map.yaml index 5f726c36efb..a747be9b910 100644 --- a/releases/release-1.27/release-notes/maps/pr-116420-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116420-map.yaml @@ -1,4 +1,4 @@ -pr: 116420 -releasenote: - text: Updated `kube-apiserver` SLO/SLI latency metrics to exclude priority & fairness - queue wait times +pr: 116420 +releasenote: + text: Updated `kube-apiserver` SLO/SLI latency metrics to exclude priority & fairness + queue wait times diff --git a/releases/release-1.27/release-notes/maps/pr-116425-map.yaml b/releases/release-1.27/release-notes/maps/pr-116425-map.yaml index a77f8580d1f..84f6f5158a8 100644 --- a/releases/release-1.27/release-notes/maps/pr-116425-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116425-map.yaml @@ -1,3 +1,3 @@ -pr: 116425 -releasenote: - text: '`SELinuxMountReadWriteOncePod` graduated to Beta.' +pr: 116425 +releasenote: + text: '`SELinuxMountReadWriteOncePod` graduated to Beta.' diff --git a/releases/release-1.27/release-notes/maps/pr-116436-map.yaml b/releases/release-1.27/release-notes/maps/pr-116436-map.yaml index 59e76be8659..4e3065d6722 100644 --- a/releases/release-1.27/release-notes/maps/pr-116436-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116436-map.yaml @@ -1,4 +1,4 @@ -pr: 116436 -releasenote: - text: Fixed incorrect watch events when a watch is initialized simultanously with - a reinitializing watchcache. +pr: 116436 +releasenote: + text: Fixed incorrect watch events when a watch is initialized simultanously with + a reinitializing watchcache. diff --git a/releases/release-1.27/release-notes/maps/pr-116450-map.yaml b/releases/release-1.27/release-notes/maps/pr-116450-map.yaml index 5590f9a1bd4..26cb5349dc2 100644 --- a/releases/release-1.27/release-notes/maps/pr-116450-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116450-map.yaml @@ -1,3 +1,3 @@ -pr: 116450 -releasenote: - text: NONE +pr: 116450 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-116500-map.yaml b/releases/release-1.27/release-notes/maps/pr-116500-map.yaml index 2baca38708e..8324a4bd905 100644 --- a/releases/release-1.27/release-notes/maps/pr-116500-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116500-map.yaml @@ -1,3 +1,3 @@ -pr: 116500 -releasenote: - text: NONE +pr: 116500 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-116501-map.yaml b/releases/release-1.27/release-notes/maps/pr-116501-map.yaml index 0aa53fcba42..2d362375000 100644 --- a/releases/release-1.27/release-notes/maps/pr-116501-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116501-map.yaml @@ -1,3 +1,3 @@ -pr: 116501 -releasenote: - text: '`StatefulSetAutoDeletePVC` feature gate promoted to beta.' +pr: 116501 +releasenote: + text: '`StatefulSetAutoDeletePVC` feature gate promoted to beta.' diff --git a/releases/release-1.27/release-notes/maps/pr-116510-map.yaml b/releases/release-1.27/release-notes/maps/pr-116510-map.yaml index da4a3358c2d..fbe26a20ee0 100644 --- a/releases/release-1.27/release-notes/maps/pr-116510-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116510-map.yaml @@ -1,3 +1,3 @@ -pr: 116510 -releasenote: - text: Promoted `whoami` kubectl command. +pr: 116510 +releasenote: + text: Promoted `whoami` kubectl command. diff --git a/releases/release-1.27/release-notes/maps/pr-116529-map.yaml b/releases/release-1.27/release-notes/maps/pr-116529-map.yaml index a8b6d513d8a..dd8a3597eb0 100644 --- a/releases/release-1.27/release-notes/maps/pr-116529-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116529-map.yaml @@ -1,3 +1,3 @@ -pr: 116529 -releasenote: - text: Migrated the main kube-controller-manager binary to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). +pr: 116529 +releasenote: + text: Migrated the main kube-controller-manager binary to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). diff --git a/releases/release-1.27/release-notes/maps/pr-116533-map.yaml b/releases/release-1.27/release-notes/maps/pr-116533-map.yaml index eca691866c4..476de40eccb 100644 --- a/releases/release-1.27/release-notes/maps/pr-116533-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116533-map.yaml @@ -1,3 +1,3 @@ -pr: 116533 -releasenote: - text: NONE +pr: 116533 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-116535-map.yaml b/releases/release-1.27/release-notes/maps/pr-116535-map.yaml index 38654e7b6d2..12c5ba6eab4 100644 --- a/releases/release-1.27/release-notes/maps/pr-116535-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116535-map.yaml @@ -1,3 +1,3 @@ -pr: 116535 -releasenote: - text: forbid to set matchLabelKeys when labelSelector is not set in topologySpreadConstraints +pr: 116535 +releasenote: + text: forbid to set matchLabelKeys when labelSelector is not set in topologySpreadConstraints diff --git a/releases/release-1.27/release-notes/maps/pr-116550-map.yaml b/releases/release-1.27/release-notes/maps/pr-116550-map.yaml index f1b3f3c5749..165da97cedc 100644 --- a/releases/release-1.27/release-notes/maps/pr-116550-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116550-map.yaml @@ -1,5 +1,5 @@ -pr: 116550 -releasenote: - text: |- - Fixed a regression in the pod binding subresource to honor the `metadata.uid` precondition. - This allows kube-scheduler to ensure it is assigns node names to the same instances of pods it made scheduling decisions for. +pr: 116550 +releasenote: + text: |- + Fixed a regression in the pod binding subresource to honor the `metadata.uid` precondition. + This allows kube-scheduler to ensure it is assigns node names to the same instances of pods it made scheduling decisions for. diff --git a/releases/release-1.27/release-notes/maps/pr-116554-map.yaml b/releases/release-1.27/release-notes/maps/pr-116554-map.yaml index 9d85f142b0b..18feeb34b9b 100644 --- a/releases/release-1.27/release-notes/maps/pr-116554-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116554-map.yaml @@ -1,6 +1,6 @@ -pr: 116554 -releasenote: - text: |- - Fixed two regressions introduced by the `PodDisruptionConditions` feature (on by default in 1.26): - - pod eviction API calls returned spurious precondition errors and required a second evict API call to succeed - - dry-run eviction API calls persisted a DisruptionTarget condition into the pod being evicted +pr: 116554 +releasenote: + text: |- + Fixed two regressions introduced by the `PodDisruptionConditions` feature (on by default in 1.26): + - pod eviction API calls returned spurious precondition errors and required a second evict API call to succeed + - dry-run eviction API calls persisted a DisruptionTarget condition into the pod being evicted diff --git a/releases/release-1.27/release-notes/maps/pr-116558-map.yaml b/releases/release-1.27/release-notes/maps/pr-116558-map.yaml index b42aa346ce6..9ae299e643c 100644 --- a/releases/release-1.27/release-notes/maps/pr-116558-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116558-map.yaml @@ -1,4 +1,4 @@ -pr: 116558 -releasenote: - text: Removed support for the `v1alpha1` kubeletplugin API of `DynamicResourceManagement`. - All plugins must be updated to `v1alpha2` in order to function properly. +pr: 116558 +releasenote: + text: Removed support for the `v1alpha1` kubeletplugin API of `DynamicResourceManagement`. + All plugins must be updated to `v1alpha2` in order to function properly. diff --git a/releases/release-1.27/release-notes/maps/pr-116576-map.yaml b/releases/release-1.27/release-notes/maps/pr-116576-map.yaml index 58d5ed46518..d0ba8b0d0d4 100644 --- a/releases/release-1.27/release-notes/maps/pr-116576-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116576-map.yaml @@ -1,5 +1,5 @@ -pr: 116576 -releasenote: - text: 'api: validation of a `PodSpec` now rejects invalid `ResourceClaim` and `ResourceClaimTemplate` - names. For a pod, the name generated for the `ResourceClaim` when using a template - also must be valid.' +pr: 116576 +releasenote: + text: 'api: validation of a `PodSpec` now rejects invalid `ResourceClaim` and `ResourceClaimTemplate` + names. For a pod, the name generated for the `ResourceClaim` when using a template + also must be valid.' diff --git a/releases/release-1.27/release-notes/maps/pr-116590-map.yaml b/releases/release-1.27/release-notes/maps/pr-116590-map.yaml index 39d932ab720..68b43e21b29 100644 --- a/releases/release-1.27/release-notes/maps/pr-116590-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116590-map.yaml @@ -1,3 +1,3 @@ -pr: 116590 -releasenote: - text: Added e2e tests for kubectl `--subresource` for beta graduation +pr: 116590 +releasenote: + text: Added e2e tests for kubectl `--subresource` for beta graduation diff --git a/releases/release-1.27/release-notes/maps/pr-116595-map.yaml b/releases/release-1.27/release-notes/maps/pr-116595-map.yaml index 030d3c3180c..46ac0fee249 100644 --- a/releases/release-1.27/release-notes/maps/pr-116595-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116595-map.yaml @@ -1,3 +1,3 @@ -pr: 116595 -releasenote: - text: Changed kubectl `--subresource` flag to beta +pr: 116595 +releasenote: + text: Changed kubectl `--subresource` flag to beta diff --git a/releases/release-1.27/release-notes/maps/pr-116607-map.yaml b/releases/release-1.27/release-notes/maps/pr-116607-map.yaml index 110c3162505..a66f739d2e3 100644 --- a/releases/release-1.27/release-notes/maps/pr-116607-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116607-map.yaml @@ -1,4 +1,4 @@ -pr: 116607 -releasenote: - text: '`kube-scheduler`: Optimized implementation of null `labelSelector` in topology - spreading.' +pr: 116607 +releasenote: + text: '`kube-scheduler`: Optimized implementation of null `labelSelector` in topology + spreading.' diff --git a/releases/release-1.27/release-notes/maps/pr-116610-map.yaml b/releases/release-1.27/release-notes/maps/pr-116610-map.yaml index a2e7829c33f..d216e56dd89 100644 --- a/releases/release-1.27/release-notes/maps/pr-116610-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116610-map.yaml @@ -1,3 +1,3 @@ -pr: 116610 -releasenote: - text: Locked `CSIMigrationvSphere` feature gate. +pr: 116610 +releasenote: + text: Locked `CSIMigrationvSphere` feature gate. diff --git a/releases/release-1.27/release-notes/maps/pr-116612-map.yaml b/releases/release-1.27/release-notes/maps/pr-116612-map.yaml index 2c37c0d18fb..97850ebe620 100644 --- a/releases/release-1.27/release-notes/maps/pr-116612-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116612-map.yaml @@ -1,6 +1,6 @@ -pr: 116612 -releasenote: - text: 'Added validation to ensure that if `service.kubernetes.io/topology-aware-hints` - and `service.kubernetes.io/topology-mode` annotations are both set, they are set - to the same value.Also Added deprecation warning if `service.kubernetes.io/topology-aware-hints` - annotation is used.' +pr: 116612 +releasenote: + text: 'Added validation to ensure that if `service.kubernetes.io/topology-aware-hints` + and `service.kubernetes.io/topology-mode` annotations are both set, they are set + to the same value.Also Added deprecation warning if `service.kubernetes.io/topology-aware-hints` + annotation is used.' diff --git a/releases/release-1.27/release-notes/maps/pr-116621-map.yaml b/releases/release-1.27/release-notes/maps/pr-116621-map.yaml index 4ee108731b8..d20fe34ed86 100644 --- a/releases/release-1.27/release-notes/maps/pr-116621-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116621-map.yaml @@ -1,3 +1,3 @@ -pr: 116621 -releasenote: - text: NONE +pr: 116621 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-116684-map.yaml b/releases/release-1.27/release-notes/maps/pr-116684-map.yaml index 7b93b6837d1..e581e054deb 100644 --- a/releases/release-1.27/release-notes/maps/pr-116684-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116684-map.yaml @@ -1,3 +1,3 @@ -pr: 116684 -releasenote: - text: NONE +pr: 116684 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-116702-map.yaml b/releases/release-1.27/release-notes/maps/pr-116702-map.yaml index 577419c7cf6..66fe7ec43f2 100644 --- a/releases/release-1.27/release-notes/maps/pr-116702-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116702-map.yaml @@ -1,3 +1,3 @@ -pr: 116702 -releasenote: - text: NONE +pr: 116702 +releasenote: + text: NONE diff --git a/releases/release-1.27/release-notes/maps/pr-116770-map.yaml b/releases/release-1.27/release-notes/maps/pr-116770-map.yaml index 2d4a39d7bb2..4842f7bf105 100644 --- a/releases/release-1.27/release-notes/maps/pr-116770-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-116770-map.yaml @@ -1,5 +1,5 @@ -pr: 116770 -releasenote: - text: Fixed bug in beta aggregated discovery endpoint which caused CRD discovery - information to be temporarily missing when an Aggregated APIService with the same - GroupVersion is deleted (and vice versa). +pr: 116770 +releasenote: + text: Fixed bug in beta aggregated discovery endpoint which caused CRD discovery + information to be temporarily missing when an Aggregated APIService with the same + GroupVersion is deleted (and vice versa). diff --git a/releases/release-1.27/release-notes/maps/pr-96120-map.yaml b/releases/release-1.27/release-notes/maps/pr-96120-map.yaml index d2c78582b59..1db6b48416b 100644 --- a/releases/release-1.27/release-notes/maps/pr-96120-map.yaml +++ b/releases/release-1.27/release-notes/maps/pr-96120-map.yaml @@ -1,5 +1,5 @@ -pr: 96120 -releasenote: - text: Adds feature gate `NodeLogQuery` which provides cluster administrators with - a streaming view of logs using kubectl without them having to implement a client - side reader or logging into the node. +pr: 96120 +releasenote: + text: Adds feature gate `NodeLogQuery` which provides cluster administrators with + a streaming view of logs using kubectl without them having to implement a client + side reader or logging into the node. diff --git a/releases/release-1.27/release-notes/release-notes-draft.json b/releases/release-1.27/release-notes/release-notes-draft.json index 0b22dce218f..fda87a97df7 100644 --- a/releases/release-1.27/release-notes/release-notes-draft.json +++ b/releases/release-1.27/release-notes/release-notes-draft.json @@ -1,8807 +1,8807 @@ -{ - "102884": { - "commit": "b9fd1802ba0aec68508b4e9eec00819008a79370", - "text": "`PodSpec.Container.Resources` became mutable for CPU and memory resource types.\n- `PodSpec.Container.ResizePolicy` (new object) gives users control over how their containers are resized.\n- `PodStatus.Resize` status describes the state of a requested Pod resize.\n- `PodStatus.ResourcesAllocated` describes node resources allocated to Pod.\n- `PodStatus.Resources` describes node resources applied to running containers by CRI.\n- `UpdateContainerResources` CRI API now supports both Linux and Windows.", - "markdown": "`PodSpec.Container.Resources` became mutable for CPU and memory resource types.\n - `PodSpec.Container.ResizePolicy` (new object) gives users control over how their containers are resized.\n - `PodStatus.Resize` status describes the state of a requested Pod resize.\n - `PodStatus.ResourcesAllocated` describes node resources allocated to Pod.\n - `PodStatus.Resources` describes node resources applied to running containers by CRI.\n - `UpdateContainerResources` CRI API now supports both Linux and Windows. ([#102884](https://github.com/kubernetes/kubernetes/pull/102884), [@vinaykul](https://github.com/vinaykul))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "vinaykul", - "author_url": "https://github.com/vinaykul", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/102884", - "pr_number": 102884, - "areas": [ - "test", - "kubelet", - "apiserver", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "107124": { - "commit": "8c97443b7b5269e3e96ce31e82e0744219917252", - "text": "The change affects the following CLI command:\n\nkubectl create rolebinding -h", - "markdown": "The change affects the following CLI command:\n \n kubectl create rolebinding -h ([#107124](https://github.com/kubernetes/kubernetes/pull/107124), [@ptux](https://github.com/ptux)) [SIG CLI]", - "author": "ptux", - "author_url": "https://github.com/ptux", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107124", - "pr_number": 107124, - "areas": [ - "kubectl" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cli" - ] - }, - "107826": { - "commit": "5469b170fe8717cb9fae8f12498cd1afd5586891", - "text": "The `wait.Poll*` and `wait.ExponentialBackoff*` functions have been deprecated and will be removed in a future release. Callers should switch to using `wait.PollUntilContextCancel`, `wait.PollUntilContextTimeout`, or `wait.ExponentialBackoffWithContext` as appropriate.\n\n`PollWithContext(Cancel|Deadline)` will no longer return `ErrWaitTimeout` - use the `Interrupted(error) bool` helper to replace checks for `err == ErrWaitTimeout`, or compare specifically to context errors as needed. A future release will make the `ErrWaitTimeout` error private and callers must use `Interrupted()` instead. If you are returning `ErrWaitTimeout` from your own methods, switch to creating a location specific `cause err` and pass it to the new method `wait.ErrorInterrupted(cause) error` which will ensure `Interrupted()` returns true for your loop. \n\nThe `wait.NewExponentialBackoffManager` and `wait.NewJitteringBackoffManager` functions have been marked as deprecated. Callers should switch to using the `Backoff{...}.DelayWithReset(clock, resetInterval)` method and must set the `Steps` field when using `Factor`. As a short term change, callers may use the `Timer()` method on the `BackoffManager` until the backoff managers are deprecated and removed. Please see the godoc of the deprecated functions for examples of how to replace usage of this function.", - "markdown": "The `wait.Poll*` and `wait.ExponentialBackoff*` functions have been deprecated and will be removed in a future release. Callers should switch to using `wait.PollUntilContextCancel`, `wait.PollUntilContextTimeout`, or `wait.ExponentialBackoffWithContext` as appropriate.\n \n `PollWithContext(Cancel|Deadline)` will no longer return `ErrWaitTimeout` - use the `Interrupted(error) bool` helper to replace checks for `err == ErrWaitTimeout`, or compare specifically to context errors as needed. A future release will make the `ErrWaitTimeout` error private and callers must use `Interrupted()` instead. If you are returning `ErrWaitTimeout` from your own methods, switch to creating a location specific `cause err` and pass it to the new method `wait.ErrorInterrupted(cause) error` which will ensure `Interrupted()` returns true for your loop. \n \n The `wait.NewExponentialBackoffManager` and `wait.NewJitteringBackoffManager` functions have been marked as deprecated. Callers should switch to using the `Backoff{...}.DelayWithReset(clock, resetInterval)` method and must set the `Steps` field when using `Factor`. As a short term change, callers may use the `Timer()` method on the `BackoffManager` until the backoff managers are deprecated and removed. Please see the godoc of the deprecated functions for examples of how to replace usage of this function. ([#107826](https://github.com/kubernetes/kubernetes/pull/107826), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Auth, Cloud Provider, Storage and Testing]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/107826", - "pr_number": 107826, - "areas": [ - "test", - "apiserver", - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "api-machinery", - "auth", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "108095": { - "commit": "33e9242843982054e4943eb327ef1e2a21d9247e", - "text": "Fixed Route controller to update routes when NodeIP changes", - "markdown": "Fixed Route controller to update routes when NodeIP changes ([#108095](https://github.com/kubernetes/kubernetes/pull/108095), [@lzhecheng](https://github.com/lzhecheng))", - "author": "lzhecheng", - "author_url": "https://github.com/lzhecheng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108095", - "pr_number": 108095, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "cloud-provider" - ], - "duplicate": true - }, - "108396": { - "commit": "2ab3151936f1df6b3ffb4d49bf9dc90218264545", - "text": "A new client side metric `rest_client_request_retries_total` has been added that tracks the number of retries sent to the server, partitioned by status code, verb and host", - "markdown": "A new client side metric `rest_client_request_retries_total` has been added that tracks the number of retries sent to the server, partitioned by status code, verb and host ([#108396](https://github.com/kubernetes/kubernetes/pull/108396), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108396", - "pr_number": 108396, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "108838": { - "commit": "c072cae4d0a5c4fcee7a8f1ee2bbbabf2f9504e9", - "text": "Added the ability to host webhooks in the cloud controller manager.", - "markdown": "Added the ability to host webhooks in the cloud controller manager. ([#108838](https://github.com/kubernetes/kubernetes/pull/108838), [@nckturner](https://github.com/nckturner))", - "documentation": [ - { - "description": "[KEP]: [KEP-2699](", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cloud-provider/2699-add-webhook-hosting-to-ccm)", - "type": "KEP" - } - ], - "author": "nckturner", - "author_url": "https://github.com/nckturner", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108838", - "pr_number": 108838, - "areas": [ - "test", - "cloudprovider", - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "108984": { - "commit": "31d6d9a275f574fc72c4993fcac5f2e0e2879574", - "text": "Added logging-format option to CCMs based on `k8s.io/cloud-provider`", - "markdown": "Added logging-format option to CCMs based on `k8s.io/cloud-provider` ([#108984](https://github.com/kubernetes/kubernetes/pull/108984), [@LittleFox94](https://github.com/LittleFox94))", - "author": "LittleFox94", - "author_url": "https://github.com/LittleFox94", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/108984", - "pr_number": 108984, - "areas": [ - "cloudprovider", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "109877": { - "commit": "c2b5457dfab44cb9ebf136be1d19e2f3dee05bc2", - "text": "scheduler volumebinding: leveraged `PreFilterResult` to reduce down to only\neligible node(s) for pod with bound claim(s) to local `PersistentVolume(s)`", - "markdown": "Scheduler volumebinding: leveraged `PreFilterResult` to reduce down to only\n eligible node(s) for pod with bound claim(s) to local `PersistentVolume(s)` ([#109877](https://github.com/kubernetes/kubernetes/pull/109877), [@yibozhuang](https://github.com/yibozhuang))", - "author": "yibozhuang", - "author_url": "https://github.com/yibozhuang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109877", - "pr_number": 109877, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true - }, - "110566": { - "commit": "37937bb2279092ebff22eee80c64423f1f0923b2", - "text": "Setting the Kubelet config option `--resolv-conf=Host` on Windows will now result in Kubelet applying the Pod DNS Policies as intended.", - "markdown": "Setting the Kubelet config option `--resolv-conf=Host` on Windows will now result in Kubelet applying the Pod DNS Policies as intended. ([#110566](https://github.com/kubernetes/kubernetes/pull/110566), [@claudiubelu](https://github.com/claudiubelu))", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110566", - "pr_number": 110566, - "areas": [ - "kubelet" - ], - "kinds": [ - "failing-test" - ], - "sigs": [ - "network", - "node", - "windows", - "testing" - ], - "duplicate": true - }, - "110723": { - "commit": "112a7a590c58de8ead9b35aa27d09861fc3daf66", - "text": "Fixed incorrect log information in the `iptables` utility.", - "markdown": "Fixed incorrect log information in the `iptables` utility. ([#110723](https://github.com/kubernetes/kubernetes/pull/110723), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110723", - "pr_number": 110723, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "110772": { - "commit": "90c3232de77aa0dd09b948ffdd27c575688fba8a", - "text": "Introduces new alpha functionality to the reflector, allowing user to enable API streaming.\n\nTo activate this feature, users can set the `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environmental variable.\nIt is important to note that the server must support streaming for this feature to function properly.\nIf streaming is not supported by the server, the reflector will revert to the previous method\nof obtaining data through LIST/WATCH semantics.", - "markdown": "Introduces new alpha functionality to the reflector, allowing user to enable API streaming.\n \n To activate this feature, users can set the `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environmental variable.\n It is important to note that the server must support streaming for this feature to function properly.\n If streaming is not supported by the server, the reflector will revert to the previous method\n of obtaining data through LIST/WATCH semantics. ([#110772](https://github.com/kubernetes/kubernetes/pull/110772), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3157-watch-list", - "type": "KEP" - } - ], - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110772", - "pr_number": 110772, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery" - ] - }, - "110864": { - "commit": "34537c1a1d098321d5a5ed1ee0f1591a22d20b77", - "text": "Windows CPU usage node stats are now correctly calculated for nodes with multiple Processor Groups.", - "markdown": "Windows CPU usage node stats are now correctly calculated for nodes with multiple Processor Groups. ([#110864](https://github.com/kubernetes/kubernetes/pull/110864), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Testing and Windows]", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110864", - "pr_number": 110864, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows", - "testing" - ], - "duplicate": true - }, - "110960": { - "commit": "0ad676fca8308fed5bc682cf8315a62b717d6d1d", - "text": "Implemented API streaming for the `watch-cache`\n\nWhen `sendInitialEvents` `ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic \"Bookmark\" after which the server continues streaming events.", - "markdown": "Implemented API streaming for the `watch-cache`\n \n When `sendInitialEvents` `ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic \"Bookmark\" after which the server continues streaming events. ([#110960](https://github.com/kubernetes/kubernetes/pull/110960), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3157-watch-list", - "type": "KEP" - } - ], - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110960", - "pr_number": 110960, - "areas": [ - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery" - ] - }, - "111178": { - "commit": "7f7bf68c7c86b7dedaf4758bd0fb1fd612d085e8", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#111178](https://github.com/kubernetes/kubernetes/pull/111178), [@lucming](https://github.com/lucming)) [SIG Apps, Network and Testing]", - "author": "lucming", - "author_url": "https://github.com/lucming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111178", - "pr_number": 111178, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "apps", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "111207": { - "commit": "5fe12aae1169b7862e34eda56be603fe954b5630", - "text": "NONE", - "markdown": "NONE ([#111207](https://github.com/kubernetes/kubernetes/pull/111207), [@lucming](https://github.com/lucming))", - "author": "lucming", - "author_url": "https://github.com/lucming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111207", - "pr_number": 111207, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ], - "do_not_publish": true - }, - "111372": { - "commit": "7529178924a997708fa1ad93b32d00326cc27fb0", - "text": "NONE", - "markdown": "NONE ([#111372](https://github.com/kubernetes/kubernetes/pull/111372), [@HeavenTonight](https://github.com/HeavenTonight))", - "author": "HeavenTonight", - "author_url": "https://github.com/HeavenTonight", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111372", - "pr_number": 111372, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "windows", - "testing", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true - }, - "111453": { - "commit": "70dde8d746a07392d945dde32dd7e3b12ca9a043", - "text": "Added new -f flag into debug command to be used passing pod or node files instead explicit names.", - "markdown": "Added new -f flag into debug command to be used passing pod or node files instead explicit names. ([#111453](https://github.com/kubernetes/kubernetes/pull/111453), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111453", - "pr_number": 111453, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "111583": { - "commit": "99a85a00413989221dcbb85fe6f2edc5e6174a19", - "text": "NONE", - "markdown": "NONE ([#111583](https://github.com/kubernetes/kubernetes/pull/111583), [@arrowfeng](https://github.com/arrowfeng)) [SIG Node]", - "author": "arrowfeng", - "author_url": "https://github.com/arrowfeng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111583", - "pr_number": 111583, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "111634": { - "commit": "33d9543ceb09a9aff54940d639da23c6102d2fcc", - "text": "NONE", - "markdown": "NONE ([#111634](https://github.com/kubernetes/kubernetes/pull/111634), [@KunWuLuan](https://github.com/KunWuLuan))", - "author": "KunWuLuan", - "author_url": "https://github.com/KunWuLuan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111634", - "pr_number": 111634, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "documentation" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "111658": { - "commit": "87a40ae6702b64c4c7b74b873742388882df2a82", - "text": "Expanded the partial fix for https://github.com/kubernetes/kubernetes/issues/111539\nwhich was already started in https://github.com/kubernetes/kubernetes/pull/109706\nSpecifically, we will now reduce the amount of syncs for `ETP=local` services even\nfurther in the CCM and avoid re-configuring LBs to an even greater extent.", - "markdown": "Expanded the partial fix for https://github.com/kubernetes/kubernetes/issues/111539\n which was already started in https://github.com/kubernetes/kubernetes/pull/109706\n Specifically, we will now reduce the amount of syncs for `ETP=local` services even\n further in the CCM and avoid re-configuring LBs to an even greater extent. ([#111658](https://github.com/kubernetes/kubernetes/pull/111658), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111658", - "pr_number": 111658, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "cloud-provider" - ], - "duplicate": true - }, - "111660": { - "commit": "492637878f0b26fa126f2025af2ee5c1f1fd5867", - "text": "Relaxed API validation for usage `key encipherment` and `kubelet` uses requested usages accordingly", - "markdown": "Relaxed API validation for usage `key encipherment` and `kubelet` uses requested usages accordingly ([#111660](https://github.com/kubernetes/kubernetes/pull/111660), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111660", - "pr_number": 111660, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "apps" - ], - "duplicate": true - }, - "111661": { - "commit": "86bf570711ed1ef6e94f5fbb006b07760683a901", - "text": "Fixes #115825. Kube-proxy will now include the `healthz` state in its response to the LB HC as to avoid indicating to the LB that it should use the node in question when Kube-proxy is not healthy.", - "markdown": "Fixes #115825. Kube-proxy will now include the `healthz` state in its response to the LB HC as to avoid indicating to the LB that it should use the node in question when Kube-proxy is not healthy. ([#111661](https://github.com/kubernetes/kubernetes/pull/111661), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Network]", - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111661", - "pr_number": 111661, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "111683": { - "commit": "4557c694ef42da6c63f42ac4c81bea5716b471b7", - "text": "NONE", - "markdown": "NONE ([#111683](https://github.com/kubernetes/kubernetes/pull/111683), [@lucming](https://github.com/lucming))", - "author": "lucming", - "author_url": "https://github.com/lucming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111683", - "pr_number": 111683, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ], - "do_not_publish": true - }, - "111802": { - "commit": "cb03415326258c32433345945867b9fdf8748c28", - "text": "`LabelSelectors` specified in `topologySpreadConstraints` were validated to ensure that pods are scheduled as expected. Existing pods with invalid `LabelSelectors` could be updated, but new pods were required to specify valid `LabelSelectors`.", - "markdown": "`LabelSelectors` specified in `topologySpreadConstraints` were validated to ensure that pods are scheduled as expected. Existing pods with invalid `LabelSelectors` could be updated, but new pods were required to specify valid `LabelSelectors`. ([#111802](https://github.com/kubernetes/kubernetes/pull/111802), [@maaoBit](https://github.com/maaoBit))", - "author": "maaoBit", - "author_url": "https://github.com/maaoBit", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111802", - "pr_number": 111802, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "111982": { - "commit": "5071c4f57e135cc3f63b4a6e68a3919506e9b2cb", - "text": "None", - "markdown": "None ([#111982](https://github.com/kubernetes/kubernetes/pull/111982), [@cvvz](https://github.com/cvvz))", - "author": "cvvz", - "author_url": "https://github.com/cvvz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111982", - "pr_number": 111982, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true, - "do_not_publish": true - }, - "111988": { - "commit": "ad62f30673573e3d81ea8c92b7edb6d549d2f653", - "text": "NONE", - "markdown": "NONE ([#111988](https://github.com/kubernetes/kubernetes/pull/111988), [@kkkkun](https://github.com/kkkkun))", - "author": "kkkkun", - "author_url": "https://github.com/kkkkun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/111988", - "pr_number": 111988, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "do_not_publish": true - }, - "112021": { - "commit": "0b05897c303a4bbdba37a31cc48f31ed6576d038", - "text": "Fixed `SELinux` label for host path volumes created by host path provisioner", - "markdown": "Fixed `SELinux` label for host path volumes created by host path provisioner ([#112021](https://github.com/kubernetes/kubernetes/pull/112021), [@mrunalp](https://github.com/mrunalp))", - "author": "mrunalp", - "author_url": "https://github.com/mrunalp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112021", - "pr_number": 112021, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true - }, - "112136": { - "commit": "b532f2b3e74f8ce1aa27d80b29303094b8e229f9", - "text": "`kubelet`: migrated `--container-runtime-endpoint` and `--image-service-endpoint`\nto kubelet config", - "markdown": "`kubelet`: migrated `--container-runtime-endpoint` and `--image-service-endpoint`\n to kubelet config ([#112136](https://github.com/kubernetes/kubernetes/pull/112136), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112136", - "pr_number": 112136, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scalability", - "node", - "api-machinery" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "112260": { - "commit": "63a01a54655c372f3c61c03e674d41098097a734", - "text": "node `ipam` controller now exposes metrics `cidrset_cidrs_max_total` and `multicidrset_cidrs_max_total` with information about the max number of CIDRs that can be allocated.", - "markdown": "Node `ipam` controller now exposes metrics `cidrset_cidrs_max_total` and `multicidrset_cidrs_max_total` with information about the max number of CIDRs that can be allocated. ([#112260](https://github.com/kubernetes/kubernetes/pull/112260), [@aryan9600](https://github.com/aryan9600))", - "author": "aryan9600", - "author_url": "https://github.com/aryan9600", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112260", - "pr_number": 112260, - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "apps", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "112334": { - "commit": "689fc37dd2f92ca61f4f2405186cb7e097be3ab1", - "text": "Updated the Event series starting count when emitting isomorphic events from 1 to 2.", - "markdown": "Updated the Event series starting count when emitting isomorphic events from 1 to 2. ([#112334](https://github.com/kubernetes/kubernetes/pull/112334), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112334", - "pr_number": 112334, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "112365": { - "commit": "f56c79398e3c58b4f5a9c7e6a1f4d64248ef1b83", - "text": "Fixed a bug where `events/v1` `Events` with similar event type and reporting instance were not aggregated by `client-go`.", - "markdown": "Fixed a bug where `events/v1` `Events` with similar event type and reporting instance were not aggregated by `client-go`. ([#112365](https://github.com/kubernetes/kubernetes/pull/112365), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112365", - "pr_number": 112365, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112393": { - "commit": "e55f2a9b54e0f6bd9ed12e50752d7d2545ab0cab", - "text": "Two changes to the `/debug/api_priority_and_fairness/dump_priority_levels` endpoint of API Priority and Fairness: added total number of dispatched, timed-out, rejected and cancelled requests; output now sorted by `PriorityLevelName`.", - "markdown": "Two changes to the `/debug/api_priority_and_fairness/dump_priority_levels` endpoint of API Priority and Fairness: added total number of dispatched, timed-out, rejected and cancelled requests; output now sorted by `PriorityLevelName`. ([#112393](https://github.com/kubernetes/kubernetes/pull/112393), [@borgerli](https://github.com/borgerli))", - "author": "borgerli", - "author_url": "https://github.com/borgerli", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112393", - "pr_number": 112393, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "112624": { - "commit": "58dec1fa4e52de75cb0c58b0c6ead8481c3ed25b", - "text": "kubelet`: fixed a bug in `kubelet` that stopped rendering the `ConfigMaps` when `fsquota` monitoring is enabled", - "markdown": "Kubelet`: fixed a bug in `kubelet` that stopped rendering the `ConfigMaps` when `fsquota` monitoring is enabled ([#112624](https://github.com/kubernetes/kubernetes/pull/112624), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112624", - "pr_number": 112624, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112661": { - "commit": "571adf6e84439a5fab1ab09b6e0ceb1c2f8d2153", - "text": "Improved FormatMap: Improves performance by about 4x, or nearly 2x in the worst case", - "markdown": "Improved FormatMap: Improves performance by about 4x, or nearly 2x in the worst case ([#112661](https://github.com/kubernetes/kubernetes/pull/112661), [@aimuz](https://github.com/aimuz)) [SIG Node]", - "author": "aimuz", - "author_url": "https://github.com/aimuz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112661", - "pr_number": 112661, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "112670": { - "commit": "37326f7cea750f6b48c61649d59af9183694d4a4", - "text": "Migrated `pkg/controller/nodeipam/ipam/cloud_cidr_allocator.go, pkg/controller/nodeipam/ipam/multi_cidr_range_allocator.go pkg/controller/nodeipam/ipam/range_allocator.go pkg/controller/nodelifecycle/node_lifecycle_controller.go` to structured logging", - "markdown": "Migrated `pkg/controller/nodeipam/ipam/cloud_cidr_allocator.go, pkg/controller/nodeipam/ipam/multi_cidr_range_allocator.go pkg/controller/nodeipam/ipam/range_allocator.go pkg/controller/nodelifecycle/node_lifecycle_controller.go` to structured logging ([#112670](https://github.com/kubernetes/kubernetes/pull/112670), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112670", - "pr_number": 112670, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "api-machinery", - "apps", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "112719": { - "commit": "575616cc72dbfdd070ead81ec29c0d4f00226487", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#112719](https://github.com/kubernetes/kubernetes/pull/112719), [@cvvz](https://github.com/cvvz)) [SIG Node and Storage]", - "author": "cvvz", - "author_url": "https://github.com/cvvz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112719", - "pr_number": 112719, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true, - "do_not_publish": true - }, - "112809": { - "commit": "d529048a3e7b97a29e271d358330d96a8128485b", - "text": "kube-apiserver: regular expressions specified with the `--cors-allowed-origins` option are now validated to match the entire `hostname` inside the `Origin` header of the request and \nmust contain '^' or the '//' prefix to anchor to the start, and '$' or the port separator ':' to anchor to \nthe end.", - "markdown": "Kube-apiserver: regular expressions specified with the `--cors-allowed-origins` option are now validated to match the entire `hostname` inside the `Origin` header of the request and \n must contain '^' or the '//' prefix to anchor to the start, and '$' or the port separator ':' to anchor to \n the end. ([#112809](https://github.com/kubernetes/kubernetes/pull/112809), [@tkashem](https://github.com/tkashem)) [SIG API Machinery]", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112809", - "pr_number": 112809, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "112817": { - "commit": "b78af4c5c698c76637d18eebc5adf16016baa57a", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#112817](https://github.com/kubernetes/kubernetes/pull/112817), [@iamNoah1](https://github.com/iamNoah1)) [SIG CLI]", - "author": "iamNoah1", - "author_url": "https://github.com/iamNoah1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112817", - "pr_number": 112817, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "do_not_publish": true - }, - "112925": { - "commit": "7913e135a5955014c544b17b56f0676c110b3770", - "text": "Error message for Pods with requests exceeding limits will have a limit value printed.", - "markdown": "Error message for Pods with requests exceeding limits will have a limit value printed. ([#112925](https://github.com/kubernetes/kubernetes/pull/112925), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112925", - "pr_number": 112925, - "kinds": [ - "documentation", - "cleanup" - ], - "sigs": [ - "node", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "112977": { - "commit": "2d88d2d993b36c231fdc7537212685544469c517", - "text": "Documented the reason field in CRI API to ensure it equals `OOMKilled` for the containers terminated by OOM killer", - "markdown": "Documented the reason field in CRI API to ensure it equals `OOMKilled` for the containers terminated by OOM killer ([#112977](https://github.com/kubernetes/kubernetes/pull/112977), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112977", - "pr_number": 112977, - "areas": [ - "kubelet" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "node" - ] - }, - "113040": { - "commit": "178f4e24616f3a092ade595334d861432da888dd", - "text": "Changed the error message of `kubectl rollout restart` when subsequent `kubectl rollout restart` commands are executed within a second", - "markdown": "Changed the error message of `kubectl rollout restart` when subsequent `kubectl rollout restart` commands are executed within a second ([#113040](https://github.com/kubernetes/kubernetes/pull/113040), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113040", - "pr_number": 113040, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "113083": { - "commit": "d19aaa7c8551a249de942a70cb3000fcdd6ecb62", - "text": "When describing deployments, `OldReplicaSets` now always shows all replicasets controlled the deployment, not just those that still have replicas available.", - "markdown": "When describing deployments, `OldReplicaSets` now always shows all replicasets controlled the deployment, not just those that still have replicas available. ([#113083](https://github.com/kubernetes/kubernetes/pull/113083), [@llorllale](https://github.com/llorllale)) [SIG CLI]", - "author": "llorllale", - "author_url": "https://github.com/llorllale", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113083", - "pr_number": 113083, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "113104": { - "commit": "fc7b25cf720b607908868a3f7b6ef13ac9202a5c", - "text": "Flag `--concurrent-node-syncs` has been added to cloud node controller which defines how many workers in parallel will be initialising and synchronising nodes.", - "markdown": "Flag `--concurrent-node-syncs` has been added to cloud node controller which defines how many workers in parallel will be initialising and synchronising nodes. ([#113104](https://github.com/kubernetes/kubernetes/pull/113104), [@pawbana](https://github.com/pawbana)) [SIG API Machinery, Cloud Provider and Scalability]", - "author": "pawbana", - "author_url": "https://github.com/pawbana", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113104", - "pr_number": 113104, - "areas": [ - "cloudprovider", - "code-generation" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scalability", - "api-machinery", - "cloud-provider" - ], - "duplicate": true - }, - "113121": { - "commit": "fab126d7f380b36525974ed69621195eb06e0d7e", - "text": "`cacheSize` field in `EncryptionConfiguration` is not supported for KMSv2 provider", - "markdown": "`cacheSize` field in `EncryptionConfiguration` is not supported for KMSv2 provider ([#113121](https://github.com/kubernetes/kubernetes/pull/113121), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113121", - "pr_number": 113121, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113145": { - "commit": "45b96eae989efef9380fadc1e46957dc6174f351", - "text": "Force deleted pods may fail to terminate until the kubelet is restarted when the container runtime returns an error during termination. We have strengthened testing for runtime failures and now perform a more rigorous reconciliation to ensure static pods (especially those that use fixed UIDs) are restarted. As a side effect of these changes static pods will be restarted with lower latency than before (2s vs 4s, on average) and rapid updates to pod configuration should take effect sooner.\n\nA new metric `kubelet_known_pods` has been added at ALPHA stability to report the number of pods a Kubelet is tracking in a number of internal states. Operators may use the metrics to track an excess of pods in the orphaned state that may not be completing.", - "markdown": "Force deleted pods may fail to terminate until the kubelet is restarted when the container runtime returns an error during termination. We have strengthened testing for runtime failures and now perform a more rigorous reconciliation to ensure static pods (especially those that use fixed UIDs) are restarted. As a side effect of these changes static pods will be restarted with lower latency than before (2s vs 4s, on average) and rapid updates to pod configuration should take effect sooner.\n \n A new metric `kubelet_known_pods` has been added at ALPHA stability to report the number of pods a Kubelet is tracking in a number of internal states. Operators may use the metrics to track an excess of pods in the orphaned state that may not be completing. ([#113145](https://github.com/kubernetes/kubernetes/pull/113145), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Auth, Cloud Provider, Node and Testing]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113145", - "pr_number": 113145, - "areas": [ - "test", - "kubelet", - "apiserver", - "cloudprovider", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "113218": { - "commit": "a34e37c9963af5944435b736882bfcd1e81f7e09", - "text": "Added a new alpha API: ClusterTrustBundle (`certificates.k8s.io/v1alpha1`).\nA ClusterTrustBundle may be used to distribute [X.509](https://www.itu.int/rec/T-REC-X.509) trust anchors to workloads within the cluster.", - "markdown": "Added a new alpha API: ClusterTrustBundle (`certificates.k8s.io/v1alpha1`).\n A ClusterTrustBundle may be used to distribute [X.509](https://www.itu.int/rec/T-REC-X.509) trust anchors to workloads within the cluster. ([#113218](https://github.com/kubernetes/kubernetes/pull/113218), [@ahmedtd](https://github.com/ahmedtd)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/bddca24910fb349e2eb0ac1c822c77f0f32fe9c6/keps/sig-auth/3257-trust-anchor-sets", - "type": "KEP" - } - ], - "author": "ahmedtd", - "author_url": "https://github.com/ahmedtd", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113218", - "pr_number": 113218, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113267": { - "commit": "da8a78ebd285969c001947e0346cdbd3cadd722d", - "text": "Removed unused rule for `nodes/spec` from `ClusterRole` `system:kubelet-api-admin`", - "markdown": "Removed unused rule for `nodes/spec` from `ClusterRole` `system:kubelet-api-admin` ([#113267](https://github.com/kubernetes/kubernetes/pull/113267), [@hoskeri](https://github.com/hoskeri))", - "author": "hoskeri", - "author_url": "https://github.com/hoskeri", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113267", - "pr_number": 113267, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "cloud-provider" - ], - "duplicate": true - }, - "113270": { - "commit": "9f0b4919531a87f762a85fd5d04d85bab9557636", - "text": "PVCs will automatically be recreated if they are missing for a pending Pod.", - "markdown": "PVCs will automatically be recreated if they are missing for a pending Pod. ([#113270](https://github.com/kubernetes/kubernetes/pull/113270), [@rrangith](https://github.com/rrangith)) [SIG Apps and Testing]", - "author": "rrangith", - "author_url": "https://github.com/rrangith", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113270", - "pr_number": 113270, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "113284": { - "commit": "6d81a2c30dd5e88d92335f4b1088f2d19775e3f7", - "text": "kubectl will now display `SeccompProfile` for pods, containers and ephemeral containers, if values were set.", - "markdown": "Kubectl will now display `SeccompProfile` for pods, containers and ephemeral containers, if values were set. ([#113284](https://github.com/kubernetes/kubernetes/pull/113284), [@williamyeh](https://github.com/williamyeh))", - "author": "williamyeh", - "author_url": "https://github.com/williamyeh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113284", - "pr_number": 113284, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "security" - ], - "feature": true, - "duplicate": true - }, - "113315": { - "commit": "71ec5ed81df288a8bd4c1c6a89df404d30ed0cd3", - "text": "Migrated the ResourceQuota controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the ResourceQuota controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113315](https://github.com/kubernetes/kubernetes/pull/113315), [@ncdc](https://github.com/ncdc)) [SIG API Machinery, Apps and Testing]", - "author": "ncdc", - "author_url": "https://github.com/ncdc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113315", - "pr_number": 113315, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113318": { - "commit": "fdafd50085768e76f4cd5de113e559c715c73527", - "text": "kubeadm: added the experimental (alpha) feature gate `EtcdLearnerMode` that allows etcd members to be joined as learner and only then promoted as voting members", - "markdown": "Kubeadm: added the experimental (alpha) feature gate `EtcdLearnerMode` that allows etcd members to be joined as learner and only then promoted as voting members ([#113318](https://github.com/kubernetes/kubernetes/pull/113318), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3614", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113318", - "pr_number": 113318, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "113428": { - "commit": "3489796d5cb5e8d90f98443579ff4ff0d741cea9", - "text": "NONE", - "markdown": "NONE ([#113428](https://github.com/kubernetes/kubernetes/pull/113428), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113428", - "pr_number": 113428, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113443": { - "commit": "185cd95b9cc1d4254c42f11c90adbc97c1f6e26c", - "text": "Migrated the namespace controller (within `kube-controller-manager`) to support [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the namespace controller (within `kube-controller-manager`) to support [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113443](https://github.com/kubernetes/kubernetes/pull/113443), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113443", - "pr_number": 113443, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113464": { - "commit": "16bc942a6b1d8052b3720ce20d51cfa08d29a4dd", - "text": "Migrated the bootstrap signer controller and the token cleaner controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the bootstrap signer controller and the token cleaner controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113464](https://github.com/kubernetes/kubernetes/pull/113464), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Apps and Instrumentation]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113464", - "pr_number": 113464, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "113471": { - "commit": "cb00077cd3a58d542275a30c974d31b2c57f9ccc", - "text": "Migrated the Kubernetes object garbage collector (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the Kubernetes object garbage collector (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113471](https://github.com/kubernetes/kubernetes/pull/113471), [@ncdc](https://github.com/ncdc))", - "author": "ncdc", - "author_url": "https://github.com/ncdc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113471", - "pr_number": 113471, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "duplicate": true - }, - "113525": { - "commit": "492a08c91625709ad323e98b6ade381339721819", - "text": "Migrated the `Deployment` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging)", - "markdown": "Migrated the `Deployment` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) ([#113525](https://github.com/kubernetes/kubernetes/pull/113525), [@249043822](https://github.com/249043822))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "249043822", - "author_url": "https://github.com/249043822", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113525", - "pr_number": 113525, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113534": { - "commit": "200220ccefad096c5d539037c5bd663feb1210e7", - "text": "The `ControllerManagerLeaderMigration` feature, GA since `1.24`, is now unconditionally enabled and the feature gate option has been removed.", - "markdown": "The `ControllerManagerLeaderMigration` feature, GA since `1.24`, is now unconditionally enabled and the feature gate option has been removed. ([#113534](https://github.com/kubernetes/kubernetes/pull/113534), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2436", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113534", - "pr_number": 113534, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "duplicate": true - }, - "113581": { - "commit": "ac889a0251365952aade1bc2ee42b56dc57eb42a", - "text": "`Secret` of `kubernetes.io/tls` type now verifies that the private key matches the cert", - "markdown": "`Secret` of `kubernetes.io/tls` type now verifies that the private key matches the cert ([#113581](https://github.com/kubernetes/kubernetes/pull/113581), [@aimuz](https://github.com/aimuz))", - "author": "aimuz", - "author_url": "https://github.com/aimuz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113581", - "pr_number": 113581, - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "duplicate_kind": true - }, - "113584": { - "commit": "49649c89ea8fa0c7f81103f735b089ed5537aa37", - "text": "Migrated the volume attach/detach controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).\nMigrated the `PersistentVolumeClaim` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).\nMigrated the `PersistentVolume` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the volume attach/detach controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).\n Migrated the `PersistentVolumeClaim` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).\n Migrated the `PersistentVolume` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113584](https://github.com/kubernetes/kubernetes/pull/113584), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113584", - "pr_number": 113584, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113622": { - "commit": "f769c66aa84e94eb425677c439f7b0e66809d3c4", - "text": "Migrated the `DaemonSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging)", - "markdown": "Migrated the `DaemonSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) ([#113622](https://github.com/kubernetes/kubernetes/pull/113622), [@249043822](https://github.com/249043822))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "249043822", - "author_url": "https://github.com/249043822", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113622", - "pr_number": 113622, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113742": { - "commit": "0e19bbb91644885a6db38a77ea3d697730269802", - "text": "Fixed issue in `Winkernel` Proxier - Unexpected active TCP connection drops while horizontally scaling the endpoints for a LoadBalancer Service with Internal Traffic Policy: `Local`", - "markdown": "Fixed issue in `Winkernel` Proxier - Unexpected active TCP connection drops while horizontally scaling the endpoints for a LoadBalancer Service with Internal Traffic Policy: `Local` ([#113742](https://github.com/kubernetes/kubernetes/pull/113742), [@princepereira](https://github.com/princepereira))", - "author": "princepereira", - "author_url": "https://github.com/princepereira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113742", - "pr_number": 113742, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true - }, - "113776": { - "commit": "5b54d48357aab86d1ec258abe0100d89f3b30d70", - "text": "Fixed issue with `Winkernel Proxier` - No ingress load balancer rules with endpoints to support load balancing when all the endpoints are terminating.", - "markdown": "Fixed issue with `Winkernel Proxier` - No ingress load balancer rules with endpoints to support load balancing when all the endpoints are terminating. ([#113776](https://github.com/kubernetes/kubernetes/pull/113776), [@princepereira](https://github.com/princepereira))", - "author": "princepereira", - "author_url": "https://github.com/princepereira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113776", - "pr_number": 113776, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows", - "testing" - ], - "duplicate": true - }, - "113787": { - "commit": "45f14a93f1869ab7634b7fe874e0d5d2cbe52486", - "text": "Fixed `DaemonSet` to update the status even if it fails to create a pod.", - "markdown": "Fixed `DaemonSet` to update the status even if it fails to create a pod. ([#113787](https://github.com/kubernetes/kubernetes/pull/113787), [@gjkim42](https://github.com/gjkim42))", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113787", - "pr_number": 113787, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "113794": { - "commit": "2c37b470b3f1623c0241a48fe80dc8301ad23b0b", - "text": "None", - "markdown": "None ([#113794](https://github.com/kubernetes/kubernetes/pull/113794), [@littlejiancc](https://github.com/littlejiancc))", - "author": "littlejiancc", - "author_url": "https://github.com/littlejiancc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113794", - "pr_number": 113794, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ], - "do_not_publish": true - }, - "113795": { - "commit": "e6bc66922755d8eaca004cbfa334865c87ef5311", - "text": "NONE", - "markdown": "NONE ([#113795](https://github.com/kubernetes/kubernetes/pull/113795), [@DangerOnTheRanger](https://github.com/DangerOnTheRanger))", - "author": "DangerOnTheRanger", - "author_url": "https://github.com/DangerOnTheRanger", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113795", - "pr_number": 113795, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true, - "do_not_publish": true - }, - "113834": { - "commit": "d1c715a9823250651e5392e6e96b4772a1594485", - "text": "`statefulset` status will now be consistent on API errors", - "markdown": "`statefulset` status will now be consistent on API errors ([#113834](https://github.com/kubernetes/kubernetes/pull/113834), [@atiratree](https://github.com/atiratree))", - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113834", - "pr_number": 113834, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "113840": { - "commit": "f90643435ef606afbd156490933b200479c34e2d", - "text": "Migrated the StatefulSet controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging)", - "markdown": "Migrated the StatefulSet controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) ([#113840](https://github.com/kubernetes/kubernetes/pull/113840), [@249043822](https://github.com/249043822))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "249043822", - "author_url": "https://github.com/249043822", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113840", - "pr_number": 113840, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113879": { - "commit": "1af56548af167d836eff33a5f57552fa417cbc0b", - "text": "Migrated the “sample-controller” controller to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the “sample-controller” controller to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113879](https://github.com/kubernetes/kubernetes/pull/113879), [@pchan](https://github.com/pchan)) [SIG API Machinery and Instrumentation]", - "author": "pchan", - "author_url": "https://github.com/pchan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113879", - "pr_number": 113879, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "113910": { - "commit": "c88b61f5536466d3826c96b9f9f38970572143b5", - "text": "Migrated the `ClusterRole` aggregation controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the `ClusterRole` aggregation controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113910](https://github.com/kubernetes/kubernetes/pull/113910), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113910", - "pr_number": 113910, - "areas": [ - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "113916": { - "commit": "471b392f43e8fdcbbff14f4494ac278af2d0194c", - "text": "Migrated the “TTL after finished” controller (within `kube-controller-manager`)to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the “TTL after finished” controller (within `kube-controller-manager`)to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113916](https://github.com/kubernetes/kubernetes/pull/113916), [@songxiao-wang87](https://github.com/songxiao-wang87))", - "author": "songxiao-wang87", - "author_url": "https://github.com/songxiao-wang87", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113916", - "pr_number": 113916, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113933": { - "commit": "8d2fbfc5a9635bc3247d7f739f8a057962049aca", - "text": "client-go: fixed potential data races retrying requests using a custom `io.Reader` body; with this fix, only requests with no body or with `string` / `[]byte` / `runtime.Object` bodies can be retried", - "markdown": "Client-go: fixed potential data races retrying requests using a custom `io.Reader` body; with this fix, only requests with no body or with `string` / `[]byte` / `runtime.Object` bodies can be retried ([#113933](https://github.com/kubernetes/kubernetes/pull/113933), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113933", - "pr_number": 113933, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "113942": { - "commit": "3d3a1807138313aa3079bd257f721236aec4f0a4", - "text": "The following feature gates for volume expansion GA features have now been removed and must no longer be referenced in `--feature-gates` flags: `ExpandCSIVolumes`, `ExpandInUsePersistentVolumes`, `ExpandPersistentVolumes`", - "markdown": "The following feature gates for volume expansion GA features have now been removed and must no longer be referenced in `--feature-gates` flags: `ExpandCSIVolumes`, `ExpandInUsePersistentVolumes`, `ExpandPersistentVolumes` ([#113942](https://github.com/kubernetes/kubernetes/pull/113942), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113942", - "pr_number": 113942, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "113943": { - "commit": "ee8e76c6eaee46efc181eb8f70f1e9d710521281", - "text": "NONE", - "markdown": "NONE ([#113943](https://github.com/kubernetes/kubernetes/pull/113943), [@Octopusjust](https://github.com/Octopusjust))", - "author": "Octopusjust", - "author_url": "https://github.com/Octopusjust", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113943", - "pr_number": 113943, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "113985": { - "commit": "843b40aeb421347ae00f206ea879bc1e1ae2912d", - "text": "Shared informers now correctly propagate whether they are synced or not. Individual informer handlers may now check if they are synced or not (new `HasSynced` method). Library support is added to assist controllers in tracking whether their own work is completed for items in the initial list (`AsyncTracker`).", - "markdown": "Shared informers now correctly propagate whether they are synced or not. Individual informer handlers may now check if they are synced or not (new `HasSynced` method). Library support is added to assist controllers in tracking whether their own work is completed for items in the initial list (`AsyncTracker`). ([#113985](https://github.com/kubernetes/kubernetes/pull/113985), [@lavalamp](https://github.com/lavalamp))", - "author": "lavalamp", - "author_url": "https://github.com/lavalamp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113985", - "pr_number": 113985, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node", - "api-machinery", - "auth", - "apps", - "testing" - ], - "duplicate": true - }, - "113986": { - "commit": "4aaa4df840949fa533555bfa7c1b01e3463255ba", - "text": "`StorageVersionGC` (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "`StorageVersionGC` (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113986](https://github.com/kubernetes/kubernetes/pull/113986), [@songxiao-wang87](https://github.com/songxiao-wang87))", - "author": "songxiao-wang87", - "author_url": "https://github.com/songxiao-wang87", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113986", - "pr_number": 113986, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "113998": { - "commit": "2e6d3393f745a74c805b74fe9536ac6a14a2ea33", - "text": "`kubeadm`: now respects user provided `kubeconfig` during discovery process", - "markdown": "`kubeadm`: now respects user provided `kubeconfig` during discovery process ([#113998](https://github.com/kubernetes/kubernetes/pull/113998), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113998", - "pr_number": 113998, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "114015": { - "commit": "f1f2d51891c422913180fe09859b88d15e0c2268", - "text": "NONE", - "markdown": "NONE ([#114015](https://github.com/kubernetes/kubernetes/pull/114015), [@my-git9](https://github.com/my-git9))", - "author": "my-git9", - "author_url": "https://github.com/my-git9", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114015", - "pr_number": 114015, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "114017": { - "commit": "a3ad4d7623a28ad06e2eb9db03ece490e7a427b6", - "text": "kubelet: remove deprecated flag `--container-runtime`", - "markdown": "Kubelet: remove deprecated flag `--container-runtime` ([#114017](https://github.com/kubernetes/kubernetes/pull/114017), [@calvin0327](https://github.com/calvin0327)) [SIG Cloud Provider and Node]", - "author": "calvin0327", - "author_url": "https://github.com/calvin0327", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114017", - "pr_number": 114017, - "areas": [ - "kubelet", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "cloud-provider" - ], - "duplicate": true - }, - "114033": { - "commit": "92ffe945928345ce5a16bb2274e4a43ba628158d", - "text": "NONE", - "markdown": "NONE ([#114033](https://github.com/kubernetes/kubernetes/pull/114033), [@Octopusjust](https://github.com/Octopusjust))", - "author": "Octopusjust", - "author_url": "https://github.com/Octopusjust", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114033", - "pr_number": 114033, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ], - "do_not_publish": true - }, - "114051": { - "commit": "b8b18ecd85c0c36730cd3361ea41fb6681b1a70c", - "text": "Added scheduler preemption support for pods using `ReadWriteOncePod` PVCs", - "markdown": "Added scheduler preemption support for pods using `ReadWriteOncePod` PVCs ([#114051](https://github.com/kubernetes/kubernetes/pull/114051), [@chrishenzie](https://github.com/chrishenzie))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2485-read-write-once-pod-pv-access-mode", - "type": "KEP" - } - ], - "author": "chrishenzie", - "author_url": "https://github.com/chrishenzie", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114051", - "pr_number": 114051, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true - }, - "114055": { - "commit": "eeaddd17c1ad3e71a2de05e76b2305ebdab39ee4", - "text": "Kubernetes components that perform leader election now only support using `Leases` for this.", - "markdown": "Kubernetes components that perform leader election now only support using `Leases` for this. ([#114055](https://github.com/kubernetes/kubernetes/pull/114055), [@aimuz](https://github.com/aimuz))", - "author": "aimuz", - "author_url": "https://github.com/aimuz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114055", - "pr_number": 114055, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling", - "api-machinery", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "114065": { - "commit": "2d08117e9eaffeeb936f59d8e74403807bb1827a", - "text": "NONE", - "markdown": "NONE ([#114065](https://github.com/kubernetes/kubernetes/pull/114065), [@ruquanzhao](https://github.com/ruquanzhao))", - "author": "ruquanzhao", - "author_url": "https://github.com/ruquanzhao", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114065", - "pr_number": 114065, - "areas": [ - "code-generation" - ], - "kinds": [ - "documentation", - "cleanup", - "api-change" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "114086": { - "commit": "696701b9fd984a0ba41a45aa582f228c0f88542d", - "text": "If a user attempts to add an ephemeral container to a static pod, they will now get a visible validation error.", - "markdown": "If a user attempts to add an ephemeral container to a static pod, they will now get a visible validation error. ([#114086](https://github.com/kubernetes/kubernetes/pull/114086), [@xmcqueen](https://github.com/xmcqueen))", - "author": "xmcqueen", - "author_url": "https://github.com/xmcqueen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114086", - "pr_number": 114086, - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "apps" - ], - "duplicate": true - }, - "114116": { - "commit": "6edb35d63ea8b7b903fa063ca6c9515819cd100d", - "text": "Fixed `StatefulSetAutoDeletePVC` feature when `OwnerReferencesPermissionEnforcement` admission plugin is enabled.", - "markdown": "Fixed `StatefulSetAutoDeletePVC` feature when `OwnerReferencesPermissionEnforcement` admission plugin is enabled. ([#114116](https://github.com/kubernetes/kubernetes/pull/114116), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114116", - "pr_number": 114116, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "auth", - "apps" - ], - "duplicate": true - }, - "114125": { - "commit": "c549b59983e114a872b0df18d74c1d217f3f62bd", - "text": "Scheduler no longer runs the plugin's `Filter` method when its `PreFilter` method returned a Skip status.\nIn other words, your `PreFilter`/`Filter` plugin can return a Skip status in `PreFilter` if the plugin does nothing in Filter for that Pod.\nScheduler skips `NodeAffinity` Filter plugin when `NodeAffinity` Filter plugin has nothing to do with a Pod.\nIt may affect some metrics values related to the `NodeAffinity` Filter plugin.", - "markdown": "Scheduler no longer runs the plugin's `Filter` method when its `PreFilter` method returned a Skip status.\n In other words, your `PreFilter`/`Filter` plugin can return a Skip status in `PreFilter` if the plugin does nothing in Filter for that Pod.\n Scheduler skips `NodeAffinity` Filter plugin when `NodeAffinity` Filter plugin has nothing to do with a Pod.\n It may affect some metrics values related to the `NodeAffinity` Filter plugin. ([#114125](https://github.com/kubernetes/kubernetes/pull/114125), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114125", - "pr_number": 114125, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true - }, - "114155": { - "commit": "2118bc8aec32bad526cf089c291d46a458914cbb", - "text": "fixed a bug on the `EndpointSlice` mirroring controller that generated multiple slices in some cases for custom endpoints in non canonical format.", - "markdown": "Fixed a bug on the `EndpointSlice` mirroring controller that generated multiple slices in some cases for custom endpoints in non canonical format. ([#114155](https://github.com/kubernetes/kubernetes/pull/114155), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114155", - "pr_number": 114155, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps", - "testing" - ], - "duplicate": true - }, - "114158": { - "commit": "84cb936e5d76588ab897c599f450d5aabbbccb41", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#114158](https://github.com/kubernetes/kubernetes/pull/114158), [@Octopusjust](https://github.com/Octopusjust)) [SIG Cloud Provider]", - "author": "Octopusjust", - "author_url": "https://github.com/Octopusjust", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114158", - "pr_number": 114158, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "do_not_publish": true - }, - "114172": { - "commit": "db53463d4faa3b2cede1f7b6e4402157510256ab", - "text": "`StatefulSet` names must be DNS labels, rather than subdomains. Any `StatefulSet`\nwhich took advantage of subdomain validation (by having dots in the name) can't\npossibly have worked, because we eventually set `pod.spec.hostname` from the `StatefulSetName`,\nand that is validated as a DNS label.", - "markdown": "`StatefulSet` names must be DNS labels, rather than subdomains. Any `StatefulSet`\n which took advantage of subdomain validation (by having dots in the name) can't\n possibly have worked, because we eventually set `pod.spec.hostname` from the `StatefulSetName`,\n and that is validated as a DNS label. ([#114172](https://github.com/kubernetes/kubernetes/pull/114172), [@thockin](https://github.com/thockin))", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114172", - "pr_number": 114172, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "114176": { - "commit": "9e3e47f56a7bcb9f650b5133944c78851b9b4af3", - "text": "kubeadm: improved retries when updating node information, in case `kube-apiserver` is temporarily unavailable", - "markdown": "Kubeadm: improved retries when updating node information, in case `kube-apiserver` is temporarily unavailable ([#114176](https://github.com/kubernetes/kubernetes/pull/114176), [@QuantumEnergyE](https://github.com/QuantumEnergyE))", - "author": "QuantumEnergyE", - "author_url": "https://github.com/QuantumEnergyE", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114176", - "pr_number": 114176, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "114178": { - "commit": "767de11f88a6a65a6f91ca772ff65f4f50af14ea", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#114178](https://github.com/kubernetes/kubernetes/pull/114178), [@Octopusjust](https://github.com/Octopusjust)) [SIG Network and Node]", - "author": "Octopusjust", - "author_url": "https://github.com/Octopusjust", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114178", - "pr_number": 114178, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true, - "do_not_publish": true - }, - "114191": { - "commit": "472612ccc62ef4b281773516adc9cbc367805e74", - "text": "Profiling can now be served on a unix-domain socket by using the `--profiling-path` option (when profiling is enabled) for security purposes.", - "markdown": "Profiling can now be served on a unix-domain socket by using the `--profiling-path` option (when profiling is enabled) for security purposes. ([#114191](https://github.com/kubernetes/kubernetes/pull/114191), [@apelisse](https://github.com/apelisse)) [SIG API Machinery]", - "author": "apelisse", - "author_url": "https://github.com/apelisse", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114191", - "pr_number": 114191, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "114226": { - "commit": "06619135e0668a059b06b8bd588def5aa9c12e03", - "text": "Made `apiextensions-apiserver` binary linking static (also affects the deb and rpm packages).", - "markdown": "Made `apiextensions-apiserver` binary linking static (also affects the deb and rpm packages). ([#114226](https://github.com/kubernetes/kubernetes/pull/114226), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114226", - "pr_number": 114226, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "release" - ], - "feature": true, - "duplicate": true - }, - "114227": { - "commit": "5452109c9d9eaa62907e1476811c383fe80b1129", - "text": "Made `kube-aggregator` binary linking static (also affects the deb and rpm packages).", - "markdown": "Made `kube-aggregator` binary linking static (also affects the deb and rpm packages). ([#114227](https://github.com/kubernetes/kubernetes/pull/114227), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114227", - "pr_number": 114227, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "release" - ], - "feature": true, - "duplicate": true - }, - "114228": { - "commit": "73849a8d28d786525d2f83fb7694757a35386608", - "text": "Made `kubectl-convert` binary linking static (also affects the deb and rpm packages).", - "markdown": "Made `kubectl-convert` binary linking static (also affects the deb and rpm packages). ([#114228](https://github.com/kubernetes/kubernetes/pull/114228), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114228", - "pr_number": 114228, - "kinds": [ - "feature" - ], - "sigs": [ - "release" - ], - "feature": true - }, - "114231": { - "commit": "727b5a4b47cd76fe858d4df7c9fea79b122dbe7f", - "text": "Fixed issue on Windows when calculating cpu limits on nodes with more than 64 logical processors", - "markdown": "Fixed issue on Windows when calculating cpu limits on nodes with more than 64 logical processors ([#114231](https://github.com/kubernetes/kubernetes/pull/114231), [@mweibel](https://github.com/mweibel))", - "author": "mweibel", - "author_url": "https://github.com/mweibel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114231", - "pr_number": 114231, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true - }, - "114236": { - "commit": "ca858e0c961db6ef8b22ecc3e257a02757261ea1", - "text": "Fixed a data race when emitting similar Events consecutively", - "markdown": "Fixed a data race when emitting similar Events consecutively ([#114236](https://github.com/kubernetes/kubernetes/pull/114236), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114236", - "pr_number": 114236, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "114237": { - "commit": "2b6c8420a245583d5055e9b4b8ed2b648c42529d", - "text": "Fixed a bug where when emitting similar Events consecutively, some were rejected by the apiserver.", - "markdown": "Fixed a bug where when emitting similar Events consecutively, some were rejected by the apiserver. ([#114237](https://github.com/kubernetes/kubernetes/pull/114237), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114237", - "pr_number": 114237, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "114246": { - "commit": "c2e55fb066e74ef8efa63b653ba67b3b61e086de", - "text": "Made mounter interface exportable by making `CanSafelySkipMountPointCheck` exportable function", - "markdown": "Made mounter interface exportable by making `CanSafelySkipMountPointCheck` exportable function ([#114246](https://github.com/kubernetes/kubernetes/pull/114246), [@mxpv](https://github.com/mxpv))", - "author": "mxpv", - "author_url": "https://github.com/mxpv", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114246", - "pr_number": 114246, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ], - "do_not_publish": true - }, - "114249": { - "commit": "9f85f6d1f108457d3e140bd08f4ddf670b2fc687", - "text": "Changed the error message to `cannot exec into multiple objects at a time` when file passed to `kubectl exec` contains multiple resources", - "markdown": "Changed the error message to `cannot exec into multiple objects at a time` when file passed to `kubectl exec` contains multiple resources ([#114249](https://github.com/kubernetes/kubernetes/pull/114249), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114249", - "pr_number": 114249, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "114252": { - "commit": "9758911fd5e778f7686b2602d2e0d88ad061d24b", - "text": "Added (dry run) and (server dry run) suffixes to `kubectl scale` command when `dry-run` is passed", - "markdown": "Added (dry run) and (server dry run) suffixes to `kubectl scale` command when `dry-run` is passed ([#114252](https://github.com/kubernetes/kubernetes/pull/114252), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114252", - "pr_number": 114252, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "114279": { - "commit": "d2ed6d355e2e483675331715f76cf666243042ae", - "text": "kube-up now includes `CoreDNS` version `v1.9.3`", - "markdown": "Kube-up now includes `CoreDNS` version `v1.9.3` ([#114279](https://github.com/kubernetes/kubernetes/pull/114279), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114279", - "pr_number": 114279, - "areas": [ - "provider/gcp", - "kubeadm", - "dependency" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cluster-lifecycle", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "114280": { - "commit": "d35da348c60a3c7505419741f2546ff8b0e38454", - "text": "Added \"general\", \"baseline\", and \"restricted\" debugging profiles for kubectl debug.", - "markdown": "Added \"general\", \"baseline\", and \"restricted\" debugging profiles for kubectl debug. ([#114280](https://github.com/kubernetes/kubernetes/pull/114280), [@sding3](https://github.com/sding3)) [SIG CLI]", - "author": "sding3", - "author_url": "https://github.com/sding3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114280", - "pr_number": 114280, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "114338": { - "commit": "f380944261fb704006a0b378224b31bd73e27494", - "text": "kubeadm: explicitly set `priority` for static pods with `priorityClassName: system-node-critical`", - "markdown": "Kubeadm: explicitly set `priority` for static pods with `priorityClassName: system-node-critical` ([#114338](https://github.com/kubernetes/kubernetes/pull/114338), [@champtar](https://github.com/champtar)) [SIG Cluster Lifecycle]", - "author": "champtar", - "author_url": "https://github.com/champtar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114338", - "pr_number": 114338, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "114350": { - "commit": "a40111cdd0ba5010321130f76013b6e7add767a3", - "text": "Deflaked a preemption test that may patch Nodes incorrectly.", - "markdown": "Deflaked a preemption test that may patch Nodes incorrectly. ([#114350](https://github.com/kubernetes/kubernetes/pull/114350), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114350", - "pr_number": 114350, - "areas": [ - "test" - ], - "kinds": [ - "flake", - "failing-test" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "114355": { - "commit": "b30a6a3fc51715c8368281b09ecc6d29b1566069", - "text": "NONE", - "markdown": "NONE ([#114355](https://github.com/kubernetes/kubernetes/pull/114355), [@dengyufeng2206](https://github.com/dengyufeng2206))", - "author": "dengyufeng2206", - "author_url": "https://github.com/dengyufeng2206", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114355", - "pr_number": 114355, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "114357": { - "commit": "f6564d33ba5d3125024275dac8e702d2ed97b615", - "text": "NONE", - "markdown": "NONE ([#114357](https://github.com/kubernetes/kubernetes/pull/114357), [@dengyufeng2206](https://github.com/dengyufeng2206))", - "author": "dengyufeng2206", - "author_url": "https://github.com/dengyufeng2206", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114357", - "pr_number": 114357, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scalability", - "node", - "auth" - ], - "duplicate": true, - "do_not_publish": true - }, - "114360": { - "commit": "53906cbe89773cc7be1aec0b08703c04a15dc209", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#114360](https://github.com/kubernetes/kubernetes/pull/114360), [@dengyufeng2206](https://github.com/dengyufeng2206)) [SIG Network]", - "author": "dengyufeng2206", - "author_url": "https://github.com/dengyufeng2206", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114360", - "pr_number": 114360, - "areas": [ - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "114364": { - "commit": "5437d493da9435c9a32b244cd8bb12faf88075ae", - "text": "Dynamic Resource Allocation framework can be used for network devices", - "markdown": "Dynamic Resource Allocation framework can be used for network devices ([#114364](https://github.com/kubernetes/kubernetes/pull/114364), [@bart0sh](https://github.com/bart0sh)) [SIG Node]", - "author": "bart0sh", - "author_url": "https://github.com/bart0sh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114364", - "pr_number": 114364, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "114376": { - "commit": "dfb976e25a6687a2c4ff7d374e3f01006d65df66", - "text": "kube-apiserver: errors decoding objects in etcd are now recorded in an `apiserver_storage_decode_errors_total` counter metric", - "markdown": "Kube-apiserver: errors decoding objects in etcd are now recorded in an `apiserver_storage_decode_errors_total` counter metric ([#114376](https://github.com/kubernetes/kubernetes/pull/114376), [@baomingwang](https://github.com/baomingwang)) [SIG API Machinery and Instrumentation]", - "author": "baomingwang", - "author_url": "https://github.com/baomingwang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114376", - "pr_number": 114376, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "114393": { - "commit": "3a8e2e399b2bb8786d86fbfcbe6434a9774dcd08", - "text": "Added new option to the `InterPodAffinity` scheduler plugin to ignore existing\npods` preferred inter-pod affinities if the incoming pod has no preferred inter-pod\naffinities. This option can be used as an optimization for higher scheduling throughput\n(at the cost of an occasional pod being scheduled non-optimally/violating existing\npods preferred inter-pod affinities). To enable this scheduler option, set the\n`InterPodAffinity` scheduler plugin arg `ignorePreferredTermsOfExistingPods: true`", - "markdown": "Added new option to the `InterPodAffinity` scheduler plugin to ignore existing\n pods` preferred inter-pod affinities if the incoming pod has no preferred inter-pod\n affinities. This option can be used as an optimization for higher scheduling throughput\n (at the cost of an occasional pod being scheduled non-optimally/violating existing\n pods preferred inter-pod affinities). To enable this scheduler option, set the\n `InterPodAffinity` scheduler plugin arg `ignorePreferredTermsOfExistingPods: true` ([#114393](https://github.com/kubernetes/kubernetes/pull/114393), [@danielvegamyhre](https://github.com/danielvegamyhre))", - "author": "danielvegamyhre", - "author_url": "https://github.com/danielvegamyhre", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114393", - "pr_number": 114393, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "scheduling", - "api-machinery" - ], - "duplicate": true - }, - "114397": { - "commit": "8745423a7abb8f648cd73462b70928c4da560309", - "text": "NONE", - "markdown": "NONE ([#114397](https://github.com/kubernetes/kubernetes/pull/114397), [@my-git9](https://github.com/my-git9))", - "author": "my-git9", - "author_url": "https://github.com/my-git9", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114397", - "pr_number": 114397, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "114407": { - "commit": "c9fb0c114db7f3c24506ccc40aae099bd5afdce5", - "text": "Optimized `LoadBalancer` creation with the help of attribute Internal Traffic Policy: `Local`", - "markdown": "Optimized `LoadBalancer` creation with the help of attribute Internal Traffic Policy: `Local` ([#114407](https://github.com/kubernetes/kubernetes/pull/114407), [@princepereira](https://github.com/princepereira))", - "author": "princepereira", - "author_url": "https://github.com/princepereira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114407", - "pr_number": 114407, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "114410": { - "commit": "2baa25027e28794372afe0e7ee688b417a4821a3", - "text": "The feature gates `CSIInlineVolume`, `CSIMigration`, `DaemonSetUpdateSurge`, `EphemeralContainers`, `IdentifyPodOS`, `LocalStorageCapacityIsolation`, `NetworkPolicyEndPort` and `StatefulSetMinReadySeconds` that graduated to GA in v1.25 and were unconditionally enabled have been removed in v1.27", - "markdown": "The feature gates `CSIInlineVolume`, `CSIMigration`, `DaemonSetUpdateSurge`, `EphemeralContainers`, `IdentifyPodOS`, `LocalStorageCapacityIsolation`, `NetworkPolicyEndPort` and `StatefulSetMinReadySeconds` that graduated to GA in v1.25 and were unconditionally enabled have been removed in v1.27 ([#114410](https://github.com/kubernetes/kubernetes/pull/114410), [@SataQiu](https://github.com/SataQiu)) [SIG Node]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114410", - "pr_number": 114410, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "114412": { - "commit": "2f2021e208d42885e04afc3685e246584c44bff0", - "text": "Added warnings about workload resources (Pods, ReplicaSets, Deployments, Jobs, CronJobs, or ReplicationControllers) whose names are not valid DNS labels.", - "markdown": "Added warnings about workload resources (Pods, ReplicaSets, Deployments, Jobs, CronJobs, or ReplicationControllers) whose names are not valid DNS labels. ([#114412](https://github.com/kubernetes/kubernetes/pull/114412), [@thockin](https://github.com/thockin))", - "documentation": [ - { - "description": "Creating Pods, ReplicaSets, Deployments, Jobs, CronJobs, or ReplicationControllers whose `metadata.name` field is *nota valid [DNS label](", - "url": "https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names) will now get [API warnings](https://blog.k8s.io/2020/09/03/warnings/). All previously valid names and API operations are still allowed these are only warnings.", - "type": "official" - }, - { - "description": "For example, naming a Deployment `foo.bar` (a DNS subdomain) now returns a warning, whereas `foobar` or `foo-bar` (DNS labels) do not. For backwards compatibility, the Kubernetes API for these resources allows the `metadata.name` field to be a [DNS subdomain](", - "url": "https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names). DNS labels are a subset of DNS subdomains. All DNS label names are valid DNS subdomain names, but using a DNS subdomain that is not _also_ a valid DNS label (e.g. a name which includes dots) can produce unexpected behaviors when used as a pod's hostname.", - "type": "official" - }, - { - "description": "See [Object Names and IDs](", - "url": "https://k8s.io/docs/concepts/overview/working-with-objects/names/) for more information.", - "type": "external" - } - ], - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114412", - "pr_number": 114412, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "114414": { - "commit": "5943f50dfa1e5fd254123ccc7b935d26e5395618", - "text": "NONE", - "markdown": "NONE ([#114414](https://github.com/kubernetes/kubernetes/pull/114414), [@my-git9](https://github.com/my-git9))", - "author": "my-git9", - "author_url": "https://github.com/my-git9", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114414", - "pr_number": 114414, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "114417": { - "commit": "5b241820b7ce05d35f098244a63ac1d9572ad9c8", - "text": "total test spec is now available by `ProgressReporter`, it will be reported before test suite got executed.", - "markdown": "Total test spec is now available by `ProgressReporter`, it will be reported before test suite got executed. ([#114417](https://github.com/kubernetes/kubernetes/pull/114417), [@chendave](https://github.com/chendave))", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114417", - "pr_number": 114417, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "114418": { - "commit": "5bb7326c3643f52a7b615e6f63911add4bbcab3b", - "text": "Added new feature gate `ServiceNodePortStaticSubrange`, to enable the new strategy in the `NodePort` Service port allocators, so the node port range is subdivided and dynamic allocated `NodePort` port for Services are allocated preferentially from the upper range.", - "markdown": "Added new feature gate `ServiceNodePortStaticSubrange`, to enable the new strategy in the `NodePort` Service port allocators, so the node port range is subdivided and dynamic allocated `NodePort` port for Services are allocated preferentially from the upper range. ([#114418](https://github.com/kubernetes/kubernetes/pull/114418), [@xuzhenglun](https://github.com/xuzhenglun))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3682", - "type": "KEP" - } - ], - "author": "xuzhenglun", - "author_url": "https://github.com/xuzhenglun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114418", - "pr_number": 114418, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "114426": { - "commit": "78fe7c0dbc418e8692b08da055beb13302ef2efb", - "text": "NONE", - "markdown": "NONE ([#114426](https://github.com/kubernetes/kubernetes/pull/114426), [@my-git9](https://github.com/my-git9))", - "author": "my-git9", - "author_url": "https://github.com/my-git9", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114426", - "pr_number": 114426, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "114434": { - "commit": "b99fe0d5b9896dd3fe9a2c1bc3b399a18ad080d2", - "text": "`client-go`: `sharedInformerFactory` now waits for goroutines during shutdown for metadatainformer and dynamicinformer.", - "markdown": "`client-go`: `sharedInformerFactory` now waits for goroutines during shutdown for metadatainformer and dynamicinformer. ([#114434](https://github.com/kubernetes/kubernetes/pull/114434), [@howardjohn](https://github.com/howardjohn))", - "author": "howardjohn", - "author_url": "https://github.com/howardjohn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114434", - "pr_number": 114434, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "114445": { - "commit": "e2d407c1d20f0cccc550888d1fc01319c591eadf", - "text": "`MinDomainsInPodTopologySpread` feature gate is enabled by default as a\nBeta feature in 1.27.", - "markdown": "`MinDomainsInPodTopologySpread` feature gate is enabled by default as a\n Beta feature in 1.27. ([#114445](https://github.com/kubernetes/kubernetes/pull/114445), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3022-min-domains-in-pod-topology-spread", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114445", - "pr_number": 114445, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "114446": { - "commit": "20c17da14210fbc0e144e0f2ed38a3bf9e98b633", - "text": "Removed flag `master-service-namespace` from `api-server` arguments", - "markdown": "Removed flag `master-service-namespace` from `api-server` arguments ([#114446](https://github.com/kubernetes/kubernetes/pull/114446), [@lengrongfu](https://github.com/lengrongfu))", - "author": "lengrongfu", - "author_url": "https://github.com/lengrongfu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114446", - "pr_number": 114446, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "114455": { - "commit": "03bfbdd8aa04739a5d99bdefeb9fcf379ffb970d", - "text": "kubeadm: fixed the bug where `kubeadm` always does CRI detection even if it is not required by a phase subcommand", - "markdown": "Kubeadm: fixed the bug where `kubeadm` always does CRI detection even if it is not required by a phase subcommand ([#114455](https://github.com/kubernetes/kubernetes/pull/114455), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114455", - "pr_number": 114455, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "114459": { - "commit": "25efa7701a509eed3623d9a3db5f0e22aeef8f3b", - "text": "Fixed stuck apiserver if an aggregated apiservice returned `304 Not Modified` for aggregated discovery information", - "markdown": "Fixed stuck apiserver if an aggregated apiservice returned `304 Not Modified` for aggregated discovery information ([#114459](https://github.com/kubernetes/kubernetes/pull/114459), [@alexzielenski](https://github.com/alexzielenski))", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114459", - "pr_number": 114459, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "114460": { - "commit": "61cdb86814489624dd5a169526797e186a118e66", - "text": "`kubectl port-forward` now exits with exit code 1 when remote connection is\nlost", - "markdown": "`kubectl port-forward` now exits with exit code 1 when remote connection is\n lost ([#114460](https://github.com/kubernetes/kubernetes/pull/114460), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114460", - "pr_number": 114460, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "114464": { - "commit": "685d639cb5f04c9c388866efc8b39dec80e15856", - "text": "Fixed file permission issues that happened during update of `Secret`/`ConfigMap`/`projected volume` when `fsGroup` is used. The problem caused a race condition where application gets intermittent permission denied error when reading files that were just updated, before the correct permissions were applied.", - "markdown": "Fixed file permission issues that happened during update of `Secret`/`ConfigMap`/`projected volume` when `fsGroup` is used. The problem caused a race condition where application gets intermittent permission denied error when reading files that were just updated, before the correct permissions were applied. ([#114464](https://github.com/kubernetes/kubernetes/pull/114464), [@tsaarni](https://github.com/tsaarni))", - "author": "tsaarni", - "author_url": "https://github.com/tsaarni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114464", - "pr_number": 114464, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "114472": { - "commit": "119dc95369150964d76149208ff6d0f0542798bf", - "text": "`Kubelet` no longer creates certain legacy iptables rules by default.\nIt is possible that this will cause problems with some third-party components\nthat improperly depended on those rules. If this affects you, you can run\n`kubelet` with `--feature-gates=IPTablesOwnershipCleanup=false`, but a bug should also be filed against the third-party component.", - "markdown": "`Kubelet` no longer creates certain legacy iptables rules by default.\n It is possible that this will cause problems with some third-party components\n that improperly depended on those rules. If this affects you, you can run\n `kubelet` with `--feature-gates=IPTablesOwnershipCleanup=false`, but a bug should also be filed against the third-party component. ([#114472](https://github.com/kubernetes/kubernetes/pull/114472), [@danwinship](https://github.com/danwinship))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3178", - "type": "KEP" - }, - { - "description": "[Other doc]", - "url": "https://kubernetes.io/blog/2022/09/07/iptables-chains-not-api/", - "type": "external" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114472", - "pr_number": 114472, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "114490": { - "commit": "a94a35293b03ca4902ec84a42278f853e3268541", - "text": "Changed docs for `--contention-profiling` flag to reflect it performed block profiling", - "markdown": "Changed docs for `--contention-profiling` flag to reflect it performed block profiling ([#114490](https://github.com/kubernetes/kubernetes/pull/114490), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", - "author": "MadhavJivrajani", - "author_url": "https://github.com/MadhavJivrajani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114490", - "pr_number": 114490, - "areas": [ - "kubelet", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "docs", - "cloud-provider" - ], - "duplicate": true - }, - "114494": { - "commit": "390ddafe9e55ea4082807aaaa95a7d9b06fd3342", - "text": "The `ReadWriteOncePod` feature gate has been graduated to beta.", - "markdown": "The `ReadWriteOncePod` feature gate has been graduated to beta. ([#114494](https://github.com/kubernetes/kubernetes/pull/114494), [@chrishenzie](https://github.com/chrishenzie))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2485", - "type": "KEP" - } - ], - "author": "chrishenzie", - "author_url": "https://github.com/chrishenzie", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114494", - "pr_number": 114494, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true - }, - "114497": { - "commit": "94e30facdbe4d21234a07da0b7998b4b8a3b1414", - "text": "Introduced new metrics removing the redundant subsystem in kube-apiserver pod logs metrics and deprecate the original ones:\n- kube_apiserver_pod_logs_pods_logs_backend_tls_failure_total becomes kube_apiserver_pod_logs_backend_tls_failure_total\n- kube_apiserver_pod_logs_pods_logs_insecure_backend_total becomes kube_apiserver_pod_logs_insecure_backend_total", - "markdown": "Introduced new metrics removing the redundant subsystem in kube-apiserver pod logs metrics and deprecate the original ones:\n - kube_apiserver_pod_logs_pods_logs_backend_tls_failure_total becomes kube_apiserver_pod_logs_backend_tls_failure_total\n - kube_apiserver_pod_logs_pods_logs_insecure_backend_total becomes kube_apiserver_pod_logs_insecure_backend_total ([#114497](https://github.com/kubernetes/kubernetes/pull/114497), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114497", - "pr_number": 114497, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "114498": { - "commit": "10802e9be1ae76d837254dcde43747151a2833bb", - "text": "NONE", - "markdown": "NONE ([#114498](https://github.com/kubernetes/kubernetes/pull/114498), [@runzhliu](https://github.com/runzhliu))", - "author": "runzhliu", - "author_url": "https://github.com/runzhliu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114498", - "pr_number": 114498, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "114502": { - "commit": "cf14b50b0d2215f039a6c1109445f01a7a222c21", - "text": "Kubernetes is now built with go 1.20", - "markdown": "Kubernetes is now built with go 1.20 ([#114502](https://github.com/kubernetes/kubernetes/pull/114502), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114502", - "pr_number": 114502, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "114505": { - "commit": "038d983769320608b82a6a7840477a340b30b3fe", - "text": "Added warnings to the Services API. Kubernetes now warns for Services in the case of:\n- IPv4 addresses with leading zeros\n- IPv6 address in non-canonical format (RFC 5952)", - "markdown": "Added warnings to the Services API. Kubernetes now warns for Services in the case of:\n - IPv4 addresses with leading zeros\n - IPv6 address in non-canonical format (RFC 5952) ([#114505](https://github.com/kubernetes/kubernetes/pull/114505), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114505", - "pr_number": 114505, - "kinds": [ - "bug", - "documentation", - "cleanup", - "api-change", - "deprecation" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "114516": { - "commit": "c0c386b9c9c0eb798e8ec8d37fb0b2dd6e4554d7", - "text": "Fixed an issue where failed pods associated with a job with `parallelism = 1` are recreated by the job controller honoring exponential backoff delay again. However, for jobs with `parallelism \u003e 1`, pods might be created without exponential backoff delay.", - "markdown": "Fixed an issue where failed pods associated with a job with `parallelism = 1` are recreated by the job controller honoring exponential backoff delay again. However, for jobs with `parallelism \u003e 1`, pods might be created without exponential backoff delay. ([#114516](https://github.com/kubernetes/kubernetes/pull/114516), [@nikhita](https://github.com/nikhita))", - "author": "nikhita", - "author_url": "https://github.com/nikhita", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114516", - "pr_number": 114516, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "114518": { - "commit": "3f6738b8e6c7f3412ec700c757ae22460cf73e1b", - "text": "Fixed a regression that the scheduler always goes through all Filter plugins.", - "markdown": "Fixed a regression that the scheduler always goes through all Filter plugins. ([#114518](https://github.com/kubernetes/kubernetes/pull/114518), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114518", - "pr_number": 114518, - "kinds": [ - "regression" - ], - "sigs": [ - "scheduling" - ] - }, - "114523": { - "commit": "4b2b4e19ccee49b30b85273ded885caf5b93e21c", - "text": "Graduated the `LegacyServiceAccountTokenTracking` feature gate to Beta. The usage of auto-generated secret-based service account token now produces warnings by default, and relevant Secrets are labeled with a last-used timestamp (label key `kubernetes.io/legacy-token-last-used`).", - "markdown": "Graduated the `LegacyServiceAccountTokenTracking` feature gate to Beta. The usage of auto-generated secret-based service account token now produces warnings by default, and relevant Secrets are labeled with a last-used timestamp (label key `kubernetes.io/legacy-token-last-used`). ([#114523](https://github.com/kubernetes/kubernetes/pull/114523), [@zshihang](https://github.com/zshihang)) [SIG API Machinery and Auth]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/2799-reduction-of-secret-based-service-account-token", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114523", - "pr_number": 114523, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true - }, - "114540": { - "commit": "4a98fa253613db1590b44bdd1eda55a17aeba7d8", - "text": "kubeadm: removed the deprecated `v1beta2` API. kubeadm 1.26's `config migrate`\ncommand can be used to migrate a `v1beta2` configuration file to `v1beta3`", - "markdown": "Kubeadm: removed the deprecated `v1beta2` API. kubeadm 1.26's `config migrate`\n command can be used to migrate a `v1beta2` configuration file to `v1beta3` ([#114540](https://github.com/kubernetes/kubernetes/pull/114540), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114540", - "pr_number": 114540, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "114570": { - "commit": "8fcad2ea7e5bd185133a96dd7a3ed23c7f56b035", - "text": "NONE", - "markdown": "NONE ([#114570](https://github.com/kubernetes/kubernetes/pull/114570), [@dengyufeng2206](https://github.com/dengyufeng2206))", - "author": "dengyufeng2206", - "author_url": "https://github.com/dengyufeng2206", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114570", - "pr_number": 114570, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "114572": { - "commit": "68eea2468c58b7bd24ec871686795983b7a41ffd", - "text": "Dec 16 09:28:34 n198-252-054 kubelet[2509137]: fatal error: concurrent map iteration and map write\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: goroutine 207 [running]:\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).generateDeviceTopologyHints.func1({0x52e4410, 0xc00363f620})\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/devicemanager/topology_hints.go:163 +0xe7\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask.IterateBitMasks.func1({0xc000a4b858?, 0x77f0930?, 0xc00025d800?}, {0xc00363f618?, 0x0?, 0x416d57?}, 0xc001919158?)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/bitmask/bitmask.go:211 +0xa3\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask.IterateBitMasks.func1({0xc000a4b850, 0x2, 0x2}, {0x77f0930?, 0x0, 0x0}, 0x1)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/bitmask/bitmask.go:215 +0xcc\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask.IterateBitMasks({0xc000a4b850, 0x2, 0x2}, 0x41232a0?)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/bitmask/bitmask.go:220 +0x90\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).generateDeviceTopologyHints(0x4126d20?, {0xc001493f80?, 0xc001493f80?}, 0x14?, 0xa?, 0xc001493f80?)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/devicemanager/topology_hints.go:160 +0xdc\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).GetTopologyHints(0xc000180f00, 0xc001229680, 0xc0023471e0)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/devicemanager/topology_hints.go:80 +0xb36\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*containerScope).accumulateProvidersHints(0xc00025d800?, 0xc002347340?, 0xc0023471e0)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/scope_container.go:75 +0xcd\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*containerScope).calculateAffinity(0xc000a45630, 0xc002347340?, 0xc00025d800?)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/scope_container.go:83 +0x33\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*containerScope).Admit(0xc000a45630, 0xc001229680)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/scope_container.go:53 +0x33b\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*manager).Admit(0xc000227340, 0xc0030ed5c0)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/topology_manager.go:213 +0xaa\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).canAdmitPod(0xc0002ca400, {0xc001287080, 0xc, 0x16}, 0xc001229680)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2085 +0x143\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).HandlePodAdditions(0xc0002ca400, {0xc0013a8710?, 0x1, 0x1})\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2363 +0x1e5\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).syncLoopIteration(0xc0002ca400, {0x52c7f28, 0xc000132000}, 0xc000fccc00, {0x52d1660, 0xc0002ca400?}, 0xc000f6f8c0, 0xc000f6f920, 0xc000fcd680)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2204 +0xb73\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).syncLoop(0xc0002ca400, {0x52c7f28, 0xc000132000}, 0xc000ff6790?, {0x52d1660, 0xc0002ca400})\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2147 +0x312\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).Run(0xc0002ca400, 0x0?)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:1558 +0x729\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: created by k8s.io/kubernetes/cmd/kubelet/app.startKubelet\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: cmd/kubelet/app/server.go:1193 +0xb8", - "markdown": "Dec 16 09:28:34 n198-252-054 kubelet[2509137]: fatal error: concurrent map iteration and map write\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: goroutine 207 [running]:\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).generateDeviceTopologyHints.func1({0x52e4410, 0xc00363f620})\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/devicemanager/topology_hints.go:163 +0xe7\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask.IterateBitMasks.func1({0xc000a4b858?, 0x77f0930?, 0xc00025d800?}, {0xc00363f618?, 0x0?, 0x416d57?}, 0xc001919158?)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/bitmask/bitmask.go:211 +0xa3\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask.IterateBitMasks.func1({0xc000a4b850, 0x2, 0x2}, {0x77f0930?, 0x0, 0x0}, 0x1)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/bitmask/bitmask.go:215 +0xcc\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask.IterateBitMasks({0xc000a4b850, 0x2, 0x2}, 0x41232a0?)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/bitmask/bitmask.go:220 +0x90\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).generateDeviceTopologyHints(0x4126d20?, {0xc001493f80?, 0xc001493f80?}, 0x14?, 0xa?, 0xc001493f80?)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/devicemanager/topology_hints.go:160 +0xdc\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).GetTopologyHints(0xc000180f00, 0xc001229680, 0xc0023471e0)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/devicemanager/topology_hints.go:80 +0xb36\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*containerScope).accumulateProvidersHints(0xc00025d800?, 0xc002347340?, 0xc0023471e0)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/scope_container.go:75 +0xcd\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*containerScope).calculateAffinity(0xc000a45630, 0xc002347340?, 0xc00025d800?)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/scope_container.go:83 +0x33\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*containerScope).Admit(0xc000a45630, 0xc001229680)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/scope_container.go:53 +0x33b\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*manager).Admit(0xc000227340, 0xc0030ed5c0)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/topology_manager.go:213 +0xaa\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).canAdmitPod(0xc0002ca400, {0xc001287080, 0xc, 0x16}, 0xc001229680)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2085 +0x143\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).HandlePodAdditions(0xc0002ca400, {0xc0013a8710?, 0x1, 0x1})\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2363 +0x1e5\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).syncLoopIteration(0xc0002ca400, {0x52c7f28, 0xc000132000}, 0xc000fccc00, {0x52d1660, 0xc0002ca400?}, 0xc000f6f8c0, 0xc000f6f920, 0xc000fcd680)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2204 +0xb73\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).syncLoop(0xc0002ca400, {0x52c7f28, 0xc000132000}, 0xc000ff6790?, {0x52d1660, 0xc0002ca400})\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2147 +0x312\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).Run(0xc0002ca400, 0x0?)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:1558 +0x729\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: created by k8s.io/kubernetes/cmd/kubelet/app.startKubelet\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: cmd/kubelet/app/server.go:1193 +0xb8 ([#114572](https://github.com/kubernetes/kubernetes/pull/114572), [@huyinhou](https://github.com/huyinhou)) [SIG Node]", - "author": "huyinhou", - "author_url": "https://github.com/huyinhou", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114572", - "pr_number": 114572, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "114584": { - "commit": "eb34f69562bcfd5eda02ccc62dca098113df3c24", - "text": "Describing the CRs will now hide `.metadata.managedFields`", - "markdown": "Describing the CRs will now hide `.metadata.managedFields` ([#114584](https://github.com/kubernetes/kubernetes/pull/114584), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114584", - "pr_number": 114584, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true - }, - "114585": { - "commit": "5882479457ac2554f70fc4678aa86eca8c49ae8b", - "text": "The list-type of the alpha `resourceClaims` field introduced to `Pods` in `1.26.0` was modified from `set` to `map`, resolving an incompatibility with use of this schema in `CustomResourceDefinitions` and with server-side apply.", - "markdown": "The list-type of the alpha `resourceClaims` field introduced to `Pods` in `1.26.0` was modified from `set` to `map`, resolving an incompatibility with use of this schema in `CustomResourceDefinitions` and with server-side apply. ([#114585](https://github.com/kubernetes/kubernetes/pull/114585), [@JoelSpeed](https://github.com/JoelSpeed))", - "author": "JoelSpeed", - "author_url": "https://github.com/JoelSpeed", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114585", - "pr_number": 114585, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "114586": { - "commit": "46f3821bf4ce0e839a698b7f95f1ee9b08e198cf", - "text": "Renamed API server identity Lease labels to use the key `apiserver.kubernetes.io/identity`", - "markdown": "Renamed API server identity Lease labels to use the key `apiserver.kubernetes.io/identity` ([#114586](https://github.com/kubernetes/kubernetes/pull/114586), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery, Apps, Cloud Provider and Testing]", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114586", - "pr_number": 114586, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "114596": { - "commit": "6e65c98681af49a97c95d2c7711f5df3af578943", - "text": "`kube-controller-manager` will not run nodeipam controller when allocator type\nis `CloudAllocator` and the cloud provider is not enabled.", - "markdown": "`kube-controller-manager` will not run nodeipam controller when allocator type\n is `CloudAllocator` and the cloud provider is not enabled. ([#114596](https://github.com/kubernetes/kubernetes/pull/114596), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114596", - "pr_number": 114596, - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "114598": { - "commit": "a772691165313bf320fb0c198476132ea65befde", - "text": "NONE", - "markdown": "NONE ([#114598](https://github.com/kubernetes/kubernetes/pull/114598), [@kunkunhaohao](https://github.com/kunkunhaohao))", - "author": "kunkunhaohao", - "author_url": "https://github.com/kunkunhaohao", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114598", - "pr_number": 114598, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "114602": { - "commit": "e218e0ede4eef31027adb6c868b3b6099b25f02b", - "text": "NONE", - "markdown": "NONE ([#114602](https://github.com/kubernetes/kubernetes/pull/114602), [@Shubham82](https://github.com/Shubham82)) [SIG Release]", - "author": "Shubham82", - "author_url": "https://github.com/Shubham82", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114602", - "pr_number": 114602, - "areas": [ - "release-eng" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "release" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "114605": { - "commit": "a94caec59c9a33bf2861fcf0b93b6429bdef0d54", - "text": "Fixed the problem `Pod` terminating stuck because of trying to umount not actual mounted dir.", - "markdown": "Fixed the problem `Pod` terminating stuck because of trying to umount not actual mounted dir. ([#114605](https://github.com/kubernetes/kubernetes/pull/114605), [@mochizuki875](https://github.com/mochizuki875))", - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114605", - "pr_number": 114605, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true, - "do_not_publish": true - }, - "114609": { - "commit": "92f0818cf2ee9e40b16b76ad5125dd3490d3ec52", - "text": "Enabled usage of `kube-proxy`, `kube-scheduler` and `kubelet` HTTP APIs for changing the logging\n verbosity at runtime for JSON output.", - "markdown": "Enabled usage of `kube-proxy`, `kube-scheduler` and `kubelet` HTTP APIs for changing the logging\n verbosity at runtime for JSON output. ([#114609](https://github.com/kubernetes/kubernetes/pull/114609), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114609", - "pr_number": 114609, - "areas": [ - "test", - "apiserver", - "cloudprovider" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "114623": { - "commit": "bd43394467d93a5431cd6fff41231c144ec11e54", - "text": "A terminating pod on a node that is not caused by preemption no longer prevents `kube-scheduler` from preempting pods on that node\n- Rename `PreemptionByKubeScheduler` to `PreemptionByScheduler`", - "markdown": "A terminating pod on a node that is not caused by preemption no longer prevents `kube-scheduler` from preempting pods on that node\n - Rename `PreemptionByKubeScheduler` to `PreemptionByScheduler` ([#114623](https://github.com/kubernetes/kubernetes/pull/114623), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114623", - "pr_number": 114623, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "duplicate_kind": true - }, - "114625": { - "commit": "04e7021d064e1af5f388b66623117e3a98f78da4", - "text": "[E2E] Pods spawned by E2E tests can now pull images from the private registry using the new --e2e-docker-config-file flag", - "markdown": "[E2E] Pods spawned by E2E tests can now pull images from the private registry using the new --e2e-docker-config-file flag ([#114625](https://github.com/kubernetes/kubernetes/pull/114625), [@Divya063](https://github.com/Divya063)) [SIG Node and Testing]", - "author": "Divya063", - "author_url": "https://github.com/Divya063", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114625", - "pr_number": 114625, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "114630": { - "commit": "7a507e342b29e6ea1d6d217cc66b2c0bd1b87460", - "text": "NONE", - "markdown": "NONE ([#114630](https://github.com/kubernetes/kubernetes/pull/114630), [@thdrnsdk](https://github.com/thdrnsdk))", - "author": "thdrnsdk", - "author_url": "https://github.com/thdrnsdk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114630", - "pr_number": 114630, - "areas": [ - "release-eng" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "release" - ], - "do_not_publish": true - }, - "114647": { - "commit": "457341c3d408097025af5a9b6f5917439c0debdd", - "text": "The job controller now ignores the annotation `batch.kubernetes.io/job-tracking`. The progress of all jobs is tracked using pod finalizers.", - "markdown": "The job controller now ignores the annotation `batch.kubernetes.io/job-tracking`. The progress of all jobs is tracked using pod finalizers. ([#114647](https://github.com/kubernetes/kubernetes/pull/114647), [@kannon92](https://github.com/kannon92))", - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114647", - "pr_number": 114647, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "114669": { - "commit": "68b96575a25ad106cd969783e5dda4fdf26db35c", - "text": "`kube-proxy` with `--proxy-mode=ipvs` can be used with statically linked kernels.\nThe reseved IPv4 range `TEST-NET-2` in `rfc5737` MUST NOT be used for `ClusterIP` or `loadBalancerIP` since address `198.51.100.0` is used for probing.", - "markdown": "`kube-proxy` with `--proxy-mode=ipvs` can be used with statically linked kernels.\n The reseved IPv4 range `TEST-NET-2` in `rfc5737` MUST NOT be used for `ClusterIP` or `loadBalancerIP` since address `198.51.100.0` is used for probing. ([#114669](https://github.com/kubernetes/kubernetes/pull/114669), [@uablrek](https://github.com/uablrek))", - "author": "uablrek", - "author_url": "https://github.com/uablrek", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114669", - "pr_number": 114669, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "114680": { - "commit": "eff6b9f648267d9c1386eb9bad7b1fe0c72b41a5", - "text": "k8s.io/component-base/logs: usage of the pflag values in a normal Go flag set led to panics when printing the help message", - "markdown": "K8s.io/component-base/logs: usage of the pflag values in a normal Go flag set led to panics when printing the help message ([#114680](https://github.com/kubernetes/kubernetes/pull/114680), [@pohly](https://github.com/pohly)) [SIG Instrumentation]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114680", - "pr_number": 114680, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "instrumentation" - ], - "duplicate_kind": true - }, - "114687": { - "commit": "d9ed2ff4b04d0d41b5913d4d93dddf5a6525e83e", - "text": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", - "markdown": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#114687](https://github.com/kubernetes/kubernetes/pull/114687), [@freddie400](https://github.com/freddie400)) [SIG API Machinery, Apps, Autoscaling, Cluster Lifecycle and Instrumentation]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "freddie400", - "author_url": "https://github.com/freddie400", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114687", - "pr_number": 114687, - "areas": [ - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "autoscaling", - "apps", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "114694": { - "commit": "201caf28b270d73c31b4f1f358548b1be608446c", - "text": "None", - "markdown": "None ([#114694](https://github.com/kubernetes/kubernetes/pull/114694), [@yanggangtony](https://github.com/yanggangtony))", - "author": "yanggangtony", - "author_url": "https://github.com/yanggangtony", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114694", - "pr_number": 114694, - "areas": [ - "release-eng" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "release" - ], - "do_not_publish": true - }, - "114695": { - "commit": "8e20effbb7b99c9c5caad4b8f947ca645bbaf21b", - "text": "kubelet config file will be backed up to `/etc/kubernetes/tmp/` folder with `kubeadm-kubelet-config` append with a random suffix as the filename", - "markdown": "Kubelet config file will be backed up to `/etc/kubernetes/tmp/` folder with `kubeadm-kubelet-config` append with a random suffix as the filename ([#114695](https://github.com/kubernetes/kubernetes/pull/114695), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle]", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114695", - "pr_number": 114695, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "114699": { - "commit": "8dd70a16ad080f167ba34b84d845a58422d8e51c", - "text": "scheduling cycle now terminates immediately when any scheduler plugin returns an \n`unschedulableAndUnresolvable` status in `PostFilter`.", - "markdown": "Scheduling cycle now terminates immediately when any scheduler plugin returns an \n `unschedulableAndUnresolvable` status in `PostFilter`. ([#114699](https://github.com/kubernetes/kubernetes/pull/114699), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114699", - "pr_number": 114699, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true - }, - "114701": { - "commit": "aa49f001bcea0c5e8474aee06e46c2d376843e06", - "text": "NONE", - "markdown": "NONE ([#114701](https://github.com/kubernetes/kubernetes/pull/114701), [@goushicui](https://github.com/goushicui))", - "author": "goushicui", - "author_url": "https://github.com/goushicui", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114701", - "pr_number": 114701, - "areas": [ - "kubelet" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "114731": { - "commit": "d29e3bd7aa4978f10a01b9dfdebb2a647634f8fe", - "text": "`k8s.io/component-base/logs` now also supports adding command line flags to a `flag.FlagSet`.", - "markdown": "`k8s.io/component-base/logs` now also supports adding command line flags to a `flag.FlagSet`. ([#114731](https://github.com/kubernetes/kubernetes/pull/114731), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114731", - "pr_number": 114731, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "architecture" - ], - "feature": true, - "duplicate_kind": true - }, - "114734": { - "commit": "ba0dbdbd11b063aca97121b6436141b37f5a1ec0", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#114734](https://github.com/kubernetes/kubernetes/pull/114734), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Network]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114734", - "pr_number": 114734, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "114736": { - "commit": "4e70155dbdfde4f66beb8e429a6b002b0741dfc2", - "text": "`tryUnmount` now respects `mounter.withSafeNotMountedBehavior`", - "markdown": "`tryUnmount` now respects `mounter.withSafeNotMountedBehavior` ([#114736](https://github.com/kubernetes/kubernetes/pull/114736), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114736", - "pr_number": 114736, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "114740": { - "commit": "00aae4c10c204d258e62a96f30970e9b91b29149", - "text": "Improved misleading message, in case of no metrics received for the `HPA` controlled pods.", - "markdown": "Improved misleading message, in case of no metrics received for the `HPA` controlled pods. ([#114740](https://github.com/kubernetes/kubernetes/pull/114740), [@kushagra98](https://github.com/kushagra98))", - "author": "kushagra98", - "author_url": "https://github.com/kushagra98", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114740", - "pr_number": 114740, - "kinds": [ - "cleanup" - ], - "sigs": [ - "autoscaling", - "apps" - ], - "duplicate": true - }, - "114768": { - "commit": "c84c8add70281c1620819fbc9805d57265bd2ae1", - "text": "The job controller back-off logic is now decoupled from workqueue. In case of parallelism \u003e 1, if there are multiple new failures in a reconciliation cycle, all the failures are taken into account to compute the back-off. Previously, the back-off kicked in for all types of failures; with this change, only pod failures are taken into account. If the back-off limits exceeds, the job is marked as failed immediately; before this change, the job is marked as failed in the next back-off.", - "markdown": "The job controller back-off logic is now decoupled from workqueue. In case of parallelism \u003e 1, if there are multiple new failures in a reconciliation cycle, all the failures are taken into account to compute the back-off. Previously, the back-off kicked in for all types of failures; with this change, only pod failures are taken into account. If the back-off limits exceeds, the job is marked as failed immediately; before this change, the job is marked as failed in the next back-off. ([#114768](https://github.com/kubernetes/kubernetes/pull/114768), [@sathyanarays](https://github.com/sathyanarays)) [SIG Apps and Testing]", - "author": "sathyanarays", - "author_url": "https://github.com/sathyanarays", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114768", - "pr_number": 114768, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "114770": { - "commit": "e535bd8d24f105081e126e0291b7ae09f559e327", - "text": "Fixed clearing of rate-limiter for the queue of checks for cleaning stale pod disruption conditions. The bug could result in the PDB synchronization updates firing too often or the pod disruption cleanups taking too long to happen.", - "markdown": "Fixed clearing of rate-limiter for the queue of checks for cleaning stale pod disruption conditions. The bug could result in the PDB synchronization updates firing too often or the pod disruption cleanups taking too long to happen. ([#114770](https://github.com/kubernetes/kubernetes/pull/114770), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114770", - "pr_number": 114770, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "114773": { - "commit": "280473ebc4e45f9001f5f9789c318ff7329bc5f0", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#114773](https://github.com/kubernetes/kubernetes/pull/114773), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Network]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114773", - "pr_number": 114773, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "114774": { - "commit": "0b2e54123f233d87c3a132c94d62d0e551bf60ba", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#114774](https://github.com/kubernetes/kubernetes/pull/114774), [@kkkkun](https://github.com/kkkkun)) [SIG API Machinery]", - "author": "kkkkun", - "author_url": "https://github.com/kkkkun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114774", - "pr_number": 114774, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "114776": { - "commit": "bdaa6bb617d776882034cd8e9db2b97d3a4b9fe4", - "text": "Fixed CSI `PersistentVolumes` to allow Secrets names longer than 63 characters.", - "markdown": "Fixed CSI `PersistentVolumes` to allow Secrets names longer than 63 characters. ([#114776](https://github.com/kubernetes/kubernetes/pull/114776), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114776", - "pr_number": 114776, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "114794": { - "commit": "cc9cc4d3eaec45206f353216a1c3ff6edaf07d30", - "text": "kube-apiserver: removed N^2 behavior loading webhook configurations.", - "markdown": "Kube-apiserver: removed N^2 behavior loading webhook configurations. ([#114794](https://github.com/kubernetes/kubernetes/pull/114794), [@lavalamp](https://github.com/lavalamp)) [SIG API Machinery, Architecture, CLI, Cloud Provider and Node]", - "author": "lavalamp", - "author_url": "https://github.com/lavalamp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114794", - "pr_number": 114794, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node", - "api-machinery", - "cli", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "114802": { - "commit": "6f6c468168b837cc884622f5657b4e17a093b758", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#114802](https://github.com/kubernetes/kubernetes/pull/114802), [@moshe010](https://github.com/moshe010)) [SIG Node]", - "author": "moshe010", - "author_url": "https://github.com/moshe010", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114802", - "pr_number": 114802, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "114814": { - "commit": "6adf60fdf4fd0428cc7f101fbbb608cd02d99cf5", - "text": "`Service` of type `ExternalName` do not create an `Endpoint` anymore.", - "markdown": "`Service` of type `ExternalName` do not create an `Endpoint` anymore. ([#114814](https://github.com/kubernetes/kubernetes/pull/114814), [@panslava](https://github.com/panslava))", - "author": "panslava", - "author_url": "https://github.com/panslava", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114814", - "pr_number": 114814, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps", - "testing" - ], - "duplicate": true - }, - "114857": { - "commit": "1af8278647d7d80aea152269baafaf278beb5cb3", - "text": "Fixed bug in CRD Validation Rules (beta) and `ValidatingAdmissionPolicy` (alpha) where all admission requests could result in `internal error: runtime error: index out of range [3] with length 3 evaluating rule: \u003crule name\u003e` under certain circumstances.", - "markdown": "Fixed bug in CRD Validation Rules (beta) and `ValidatingAdmissionPolicy` (alpha) where all admission requests could result in `internal error: runtime error: index out of range [3] with length 3 evaluating rule: \u003crule name\u003e` under certain circumstances. ([#114857](https://github.com/kubernetes/kubernetes/pull/114857), [@jpbetz](https://github.com/jpbetz))", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114857", - "pr_number": 114857, - "areas": [ - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider" - ], - "duplicate": true - }, - "114863": { - "commit": "3742d14998fc41dd8c086e8d44cf6b50023c831e", - "text": "kubectl: enabled usage of label selector for filtering out resources when pruning for kubectl diff", - "markdown": "Kubectl: enabled usage of label selector for filtering out resources when pruning for kubectl diff ([#114863](https://github.com/kubernetes/kubernetes/pull/114863), [@danlenar](https://github.com/danlenar))", - "author": "danlenar", - "author_url": "https://github.com/danlenar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114863", - "pr_number": 114863, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "114869": { - "commit": "0e49c542d7a73dd056f8f32f33939207dd009b14", - "text": "Fixed panic validating custom resource definition schemas that set `multipleOf` to 0", - "markdown": "Fixed panic validating custom resource definition schemas that set `multipleOf` to 0 ([#114869](https://github.com/kubernetes/kubernetes/pull/114869), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114869", - "pr_number": 114869, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "114871": { - "commit": "8f45b64c93563ef682f24d1f6300679d03d946f1", - "text": "Migrated the `ReplicaSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the `ReplicaSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#114871](https://github.com/kubernetes/kubernetes/pull/114871), [@Namanl2001](https://github.com/Namanl2001))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "Namanl2001", - "author_url": "https://github.com/Namanl2001", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114871", - "pr_number": 114871, - "areas": [ - "test", - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "114872": { - "commit": "6e213e7390b60c6db85210f322a213768cefb172", - "text": "`client-go`: fixed the wait time for trying to acquire the leader lease", - "markdown": "`client-go`: fixed the wait time for trying to acquire the leader lease ([#114872](https://github.com/kubernetes/kubernetes/pull/114872), [@Iceber](https://github.com/Iceber))", - "author": "Iceber", - "author_url": "https://github.com/Iceber", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114872", - "pr_number": 114872, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "114878": { - "commit": "5e9fc39d17fbc636605ac69e4c487a261fbc0f67", - "text": "IPVS: Any ipvs scheduler can now be configured. If a un-usable scheduler is configured `kube-proxy` will re-start and the logs must be checked (same as before but different log printouts).", - "markdown": "IPVS: Any ipvs scheduler can now be configured. If a un-usable scheduler is configured `kube-proxy` will re-start and the logs must be checked (same as before but different log printouts). ([#114878](https://github.com/kubernetes/kubernetes/pull/114878), [@uablrek](https://github.com/uablrek))", - "author": "uablrek", - "author_url": "https://github.com/uablrek", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114878", - "pr_number": 114878, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "114883": { - "commit": "3e049c5e689f0b811329e0e3d23ac2007076d1e9", - "text": "Updated `cAdvisor` to `v0.47.0`", - "markdown": "Updated `cAdvisor` to `v0.47.0` ([#114883](https://github.com/kubernetes/kubernetes/pull/114883), [@bobbypage](https://github.com/bobbypage))", - "author": "bobbypage", - "author_url": "https://github.com/bobbypage", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114883", - "pr_number": 114883, - "areas": [ - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "114886": { - "commit": "1b95370225f1971c9e13beee24129d3191b0b3a8", - "text": "`kubectl` now uses `HorizontalPodAutoscaler` `v2` by default.", - "markdown": "`kubectl` now uses `HorizontalPodAutoscaler` `v2` by default. ([#114886](https://github.com/kubernetes/kubernetes/pull/114886), [@a7i](https://github.com/a7i))", - "author": "a7i", - "author_url": "https://github.com/a7i", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114886", - "pr_number": 114886, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "114889": { - "commit": "7b1b8d57340e686d013ee7a4180e04b4b16d4606", - "text": "Scheduler now skips `InterPodAffinity` Filter plugin when `InterPodAffinity` Filter plugin has nothing to do with a Pod.\nIt may affect some metrics values related to the `InterPodAffinity` Filter plugin.", - "markdown": "Scheduler now skips `InterPodAffinity` Filter plugin when `InterPodAffinity` Filter plugin has nothing to do with a Pod.\n It may affect some metrics values related to the `InterPodAffinity` Filter plugin. ([#114889](https://github.com/kubernetes/kubernetes/pull/114889), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114889", - "pr_number": 114889, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true - }, - "114904": { - "commit": "898143a96ad6eb1d5dc213b2b3f2e7a8a204652d", - "text": "kubelet: fix recording issue when pulling image did finish", - "markdown": "Kubelet: fix recording issue when pulling image did finish ([#114904](https://github.com/kubernetes/kubernetes/pull/114904), [@TommyStarK](https://github.com/TommyStarK)) [SIG Node]", - "author": "TommyStarK", - "author_url": "https://github.com/TommyStarK", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114904", - "pr_number": 114904, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "114914": { - "commit": "eb7fd7f51c166591adbc52eacef3ce1e4d17bf04", - "text": "messages of `DisruptionTarget` condition now excludes preemptor pod metadata", - "markdown": "Messages of `DisruptionTarget` condition now excludes preemptor pod metadata ([#114914](https://github.com/kubernetes/kubernetes/pull/114914), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114914", - "pr_number": 114914, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true - }, - "114918": { - "commit": "b6f9a65558f16aa948477ce334830e545a5a2280", - "text": "Migrated the service-account controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the service-account controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#114918](https://github.com/kubernetes/kubernetes/pull/114918), [@Namanl2001](https://github.com/Namanl2001)) [SIG API Machinery, Apps, Auth, Instrumentation and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "Namanl2001", - "author_url": "https://github.com/Namanl2001", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114918", - "pr_number": 114918, - "areas": [ - "test", - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "114920": { - "commit": "79886690d48a5b4cd106cb3827851f601821ab65", - "text": "Applied configurations can be generated for types with `non-builtin` map fields", - "markdown": "Applied configurations can be generated for types with `non-builtin` map fields ([#114920](https://github.com/kubernetes/kubernetes/pull/114920), [@astefanutti](https://github.com/astefanutti))", - "author": "astefanutti", - "author_url": "https://github.com/astefanutti", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114920", - "pr_number": 114920, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "114923": { - "commit": "1e3946ce9dcb745771b03845d4afd97caa7c7737", - "text": "Excluded preemptor pod metadata in the event message", - "markdown": "Excluded preemptor pod metadata in the event message ([#114923](https://github.com/kubernetes/kubernetes/pull/114923), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114923", - "pr_number": 114923, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "114930": { - "commit": "f3aebc85b90c7c6ef6b034b3a910cfba27a65951", - "text": "Pods owned by a Job now uses the labels `batch.kubernetes.io/job-name` and `batch.kubernetes.io/controller-uid`.\nThe legacy labels `job-name` and `controller-uid` are still added for compatibility.", - "markdown": "Pods owned by a Job now uses the labels `batch.kubernetes.io/job-name` and `batch.kubernetes.io/controller-uid`.\n The legacy labels `job-name` and `controller-uid` are still added for compatibility. ([#114930](https://github.com/kubernetes/kubernetes/pull/114930), [@kannon92](https://github.com/kannon92))", - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114930", - "pr_number": 114930, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "114947": { - "commit": "6ce055d62d8608842db18901c948c6982c74a164", - "text": "support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io` were deprecated since v1.19, now have been completely removed. The seccomp fields are no longer auto-populated when pods with seccomp annotations are created. Pods should use the corresponding pod or container `securityContext.seccompProfile` field instead.", - "markdown": "Support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io` were deprecated since v1.19, now have been completely removed. The seccomp fields are no longer auto-populated when pods with seccomp annotations are created. Pods should use the corresponding pod or container `securityContext.seccompProfile` field instead. ([#114947](https://github.com/kubernetes/kubernetes/pull/114947), [@saschagrunert](https://github.com/saschagrunert))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/135", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114947", - "pr_number": 114947, - "kinds": [ - "deprecation" - ] - }, - "114953": { - "commit": "50a0bc8de1953eaedfb8a08b88a72dd2c224470e", - "text": "The `CSIMigrationAzureFile` feature gate (for the feature which graduated to GA in v1.26) is now unconditionally enabled and will be removed in v1.28.", - "markdown": "The `CSIMigrationAzureFile` feature gate (for the feature which graduated to GA in v1.26) is now unconditionally enabled and will be removed in v1.28. ([#114953](https://github.com/kubernetes/kubernetes/pull/114953), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114953", - "pr_number": 114953, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "114980": { - "commit": "14c2d7b39b2446642d42350d237c5f0dc7a95867", - "text": "Removed scheduler names from preemption event messages.", - "markdown": "Removed scheduler names from preemption event messages. ([#114980](https://github.com/kubernetes/kubernetes/pull/114980), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114980", - "pr_number": 114980, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true - }, - "114981": { - "commit": "765f2ef7c7106b5f14bcda2639404d9e3c511f46", - "text": "NONE", - "markdown": "NONE ([#114981](https://github.com/kubernetes/kubernetes/pull/114981), [@adisky](https://github.com/adisky))", - "author": "adisky", - "author_url": "https://github.com/adisky", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114981", - "pr_number": 114981, - "areas": [ - "test" - ], - "kinds": [ - "failing-test" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "114987": { - "commit": "5ad9e418791de9820f4287bd57ea3594b884c0eb", - "text": "Added the `applyconfiguration` generator to the code-generator script that generates server-side apply configuration and client APIs", - "markdown": "Added the `applyconfiguration` generator to the code-generator script that generates server-side apply configuration and client APIs ([#114987](https://github.com/kubernetes/kubernetes/pull/114987), [@astefanutti](https://github.com/astefanutti))", - "author": "astefanutti", - "author_url": "https://github.com/astefanutti", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114987", - "pr_number": 114987, - "areas": [ - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "114997": { - "commit": "1f02f43ec6910cbcd46222b16a2f3965458e5e45", - "text": "`/metrics/slis` is now available for control plane components allowing you to scrape health check metrics.", - "markdown": "`/metrics/slis` is now available for control plane components allowing you to scrape health check metrics. ([#114997](https://github.com/kubernetes/kubernetes/pull/114997), [@Richabanker](https://github.com/Richabanker))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3466", - "type": "external" - } - ], - "author": "Richabanker", - "author_url": "https://github.com/Richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114997", - "pr_number": 114997, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "release-eng", - "kubeadm", - "conformance", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "autoscaling", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115010": { - "commit": "0ff0d0b94e49396724b790aa073d62e6152e1cad", - "text": "Kubernetes is now built with Go `1.19.5`", - "markdown": "Kubernetes is now built with Go `1.19.5` ([#115010](https://github.com/kubernetes/kubernetes/pull/115010), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115010", - "pr_number": 115010, - "areas": [ - "test", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "115017": { - "commit": "035271d89bb03d6b983cabc930036c1706ef45a5", - "text": "Made tmp dir configurable and dynamic at `local-up-cluster.sh`", - "markdown": "Made tmp dir configurable and dynamic at `local-up-cluster.sh` ([#115017](https://github.com/kubernetes/kubernetes/pull/115017), [@mhmxs](https://github.com/mhmxs))", - "author": "mhmxs", - "author_url": "https://github.com/mhmxs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115017", - "pr_number": 115017, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "115038": { - "commit": "561a35f3582abb25da76d31c7c2abc4277054b04", - "text": "kubeadm: fixed an etcd learner-mode bug by preparing an etcd static pod manifest before promoting", - "markdown": "Kubeadm: fixed an etcd learner-mode bug by preparing an etcd static pod manifest before promoting ([#115038](https://github.com/kubernetes/kubernetes/pull/115038), [@tobiasgiese](https://github.com/tobiasgiese))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3614", - "type": "KEP" - } - ], - "author": "tobiasgiese", - "author_url": "https://github.com/tobiasgiese", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115038", - "pr_number": 115038, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "115046": { - "commit": "62d7937b2e81752d922f6690dfff565c4a6ae8ce", - "text": "kubectl: added e2e test for default container annotation", - "markdown": "Kubectl: added e2e test for default container annotation ([#115046](https://github.com/kubernetes/kubernetes/pull/115046), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115046", - "pr_number": 115046, - "areas": [ - "test", - "conformance" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cli", - "testing", - "architecture" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115049": { - "commit": "d1aa73312c5e41166f1b92d556c7d0d30af239ab", - "text": "Migrated controller helper functions to use contextual logging.", - "markdown": "Migrated controller helper functions to use contextual logging. ([#115049](https://github.com/kubernetes/kubernetes/pull/115049), [@fatsheep9146](https://github.com/fatsheep9146))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "fatsheep9146", - "author_url": "https://github.com/fatsheep9146", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115049", - "pr_number": 115049, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "115056": { - "commit": "ed8cad1e80d096257921908a52ac69cf1f41a098", - "text": "`PodGC` for pods which are in terminal phase now do not add the `DisruptionTarget` condition.", - "markdown": "`PodGC` for pods which are in terminal phase now do not add the `DisruptionTarget` condition. ([#115056](https://github.com/kubernetes/kubernetes/pull/115056), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115056", - "pr_number": 115056, - "areas": [ - "test" - ], - "kinds": [ - "regression" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "115068": { - "commit": "fd885b751d157b036540310e5174e15b615592ac", - "text": "Reverted `UpdateOrCreateToken` get secrets err handling optimization", - "markdown": "Reverted `UpdateOrCreateToken` get secrets err handling optimization ([#115068](https://github.com/kubernetes/kubernetes/pull/115068), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115068", - "pr_number": 115068, - "areas": [ - "kubeadm" - ], - "kinds": [ - "regression" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "115074": { - "commit": "7b01daba714514aef68d501dc181cec946732481", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#115074](https://github.com/kubernetes/kubernetes/pull/115074), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Apps and Network]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115074", - "pr_number": 115074, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true, - "do_not_publish": true - }, - "115075": { - "commit": "f44d561c1f8c327bdf2ff3bff175bd10d161454c", - "text": "Added a new IPAddress object kind\n- Added a new ClusterIP allocator. The new allocator removes previous Service CIDR block size limitations for IPv4, and limits IPv6 size to a /64", - "markdown": "Added a new IPAddress object kind\n - Added a new ClusterIP allocator. The new allocator removes previous Service CIDR block size limitations for IPv4, and limits IPv6 size to a /64 ([#115075](https://github.com/kubernetes/kubernetes/pull/115075), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Auth, CLI, Cluster Lifecycle, Network and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/1880-multiple-service-cidrs", - "type": "KEP" - } - ], - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115075", - "pr_number": 115075, - "areas": [ - "test", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "bug", - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "cluster-lifecycle", - "auth", - "apps", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115079": { - "commit": "3613ed04b68156957f58635ecee8746e7fcf2a28", - "text": "NONE", - "markdown": "NONE ([#115079](https://github.com/kubernetes/kubernetes/pull/115079), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115079", - "pr_number": 115079, - "areas": [ - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true - }, - "115082": { - "commit": "283c26f91a42b3ae3e2a8bc8d89cf52d8072ed86", - "text": "New plugin_evaluation_total is added to the scheduler.This metric counts how many times the specific plugin affects the scheduling result. The metric does not get incremented when the plugin has nothing to do with an incoming Pod.", - "markdown": "New plugin_evaluation_total is added to the scheduler.This metric counts how many times the specific plugin affects the scheduling result. The metric does not get incremented when the plugin has nothing to do with an incoming Pod. ([#115082](https://github.com/kubernetes/kubernetes/pull/115082), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115082", - "pr_number": 115082, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "115093": { - "commit": "d3f881f7508ec3bd8aa83712038bdcf5f4703396", - "text": "Fixed bug in reflector that couldn't recover from `Too large resource version` errors with API servers before 1.17.0.", - "markdown": "Fixed bug in reflector that couldn't recover from `Too large resource version` errors with API servers before 1.17.0. ([#115093](https://github.com/kubernetes/kubernetes/pull/115093), [@xuzhenglun](https://github.com/xuzhenglun))", - "author": "xuzhenglun", - "author_url": "https://github.com/xuzhenglun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115093", - "pr_number": 115093, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "115096": { - "commit": "70f337c0d5303078a325c63216345ae84475aa69", - "text": "`cacher`: If `ResourceVersion` is unset, the watch is now served from the underlying storage as documented.", - "markdown": "`cacher`: If `ResourceVersion` is unset, the watch is now served from the underlying storage as documented. ([#115096](https://github.com/kubernetes/kubernetes/pull/115096), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", - "author": "MadhavJivrajani", - "author_url": "https://github.com/MadhavJivrajani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115096", - "pr_number": 115096, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "115102": { - "commit": "a12dd4189e88621b6632fab788e49401e6e7a358", - "text": "kubelet startup now fails CRI connection if service or image endpoint is throwing any error", - "markdown": "Kubelet startup now fails CRI connection if service or image endpoint is throwing any error ([#115102](https://github.com/kubernetes/kubernetes/pull/115102), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115102", - "pr_number": 115102, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "115113": { - "commit": "b0ed87078e4042c12e456c8427dee0fb947a724c", - "text": "Callers of `wait.ExponentialBackoffWithContext` now must pass a `ConditionWithContextFunc` to be consistent with the signature and avoid creating a duplicate context. If your condition does not need a context you can use the `ConditionFunc.WithContext()` helper to ignore the context, or use `ExponentialBackoff` directly.", - "markdown": "Callers of `wait.ExponentialBackoffWithContext` now must pass a `ConditionWithContextFunc` to be consistent with the signature and avoid creating a duplicate context. If your condition does not need a context you can use the `ConditionFunc.WithContext()` helper to ignore the context, or use `ExponentialBackoff` directly. ([#115113](https://github.com/kubernetes/kubernetes/pull/115113), [@smarterclayton](https://github.com/smarterclayton))", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115113", - "pr_number": 115113, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "api-machinery", - "testing" - ], - "duplicate": true - }, - "115116": { - "commit": "b01afdca664103006a31c936fc935dac948e480e", - "text": "The `WaitFor` and `WaitForWithContext` functions in the wait package have now been marked private. Callers should use the equivalent `Poll*` method with a zero duration interval.", - "markdown": "The `WaitFor` and `WaitForWithContext` functions in the wait package have now been marked private. Callers should use the equivalent `Poll*` method with a zero duration interval. ([#115116](https://github.com/kubernetes/kubernetes/pull/115116), [@smarterclayton](https://github.com/smarterclayton))", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115116", - "pr_number": 115116, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "115123": { - "commit": "15040e1c860f057c74d6f30b609d52e3ae7a5775", - "text": "Updated `KMSv2` to beta", - "markdown": "Updated `KMSv2` to beta ([#115123](https://github.com/kubernetes/kubernetes/pull/115123), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115123", - "pr_number": 115123, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115137": { - "commit": "4df945853e31678f7ac87e43d3328497a3490d35", - "text": "Added `kubelet` Topology Manager metrics to track admission requests processed and occured admission errors.", - "markdown": "Added `kubelet` Topology Manager metrics to track admission requests processed and occured admission errors. ([#115137](https://github.com/kubernetes/kubernetes/pull/115137), [@swatisehgal](https://github.com/swatisehgal))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/pull/3745", - "type": "KEP" - } - ], - "author": "swatisehgal", - "author_url": "https://github.com/swatisehgal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115137", - "pr_number": 115137, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "115138": { - "commit": "423f62d69a2d5417225f4f31bca800f675d3702e", - "text": "A new feature was enabled to improve the performance of the iptables mode of `kube-proxy` in large clusters. No action was required, however:\n\n1. If you experienced problems with Services not syncing to iptables correctly, you can disable the feature by passing `--feature-gates=MinimizeIPTablesRestore=false` to kube-proxy (and file a bug if this fixes it). (This might also be detected by seeing the value of kube-proxy's `sync_proxy_rules_iptables_partial_restore_failures_total` metric rising.)\n2. If you were previously overriding the kube-proxy configuration for performance reasons, this may no longer be necessary. See https://kubernetes.io/docs/reference/networking/virtual-ips/#optimizing-iptables-mode-performance.", - "markdown": "A new feature was enabled to improve the performance of the iptables mode of `kube-proxy` in large clusters. No action was required, however:\n \n 1. If you experienced problems with Services not syncing to iptables correctly, you can disable the feature by passing `--feature-gates=MinimizeIPTablesRestore=false` to kube-proxy (and file a bug if this fixes it). (This might also be detected by seeing the value of kube-proxy's `sync_proxy_rules_iptables_partial_restore_failures_total` metric rising.)\n 2. If you were previously overriding the kube-proxy configuration for performance reasons, this may no longer be necessary. See https://kubernetes.io/docs/reference/networking/virtual-ips/#optimizing-iptables-mode-performance. ([#115138](https://github.com/kubernetes/kubernetes/pull/115138), [@danwinship](https://github.com/danwinship))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3453", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115138", - "pr_number": 115138, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "115140": { - "commit": "8bee5dca1d94625aad8a321d3ed4d1dbeeeb0a62", - "text": "`wait.ContextForChannel()` now implements the context.Context interface and\ndoes not return a cancellation function.", - "markdown": "`wait.ContextForChannel()` now implements the context.Context interface and\n does not return a cancellation function. ([#115140](https://github.com/kubernetes/kubernetes/pull/115140), [@smarterclayton](https://github.com/smarterclayton))", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115140", - "pr_number": 115140, - "areas": [ - "apiserver", - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "duplicate": true - }, - "115143": { - "commit": "1e3cc23b9ff94daa1ab98266ad137eaa7fde998c", - "text": "Kubelet TCP and HTTP probes are now more effective using networking resources:\nconntrack entries, sockets. This is achieved by reducing the `TIME-WAIT` state\nof the connection to 1 second, instead of the defaults 60 seconds. This allows\nkubelet to free the socket, and free conntrack entry and ephemeral port associated.", - "markdown": "Kubelet TCP and HTTP probes are now more effective using networking resources:\n conntrack entries, sockets. This is achieved by reducing the `TIME-WAIT` state\n of the connection to 1 second, instead of the defaults 60 seconds. This allows\n kubelet to free the socket, and free conntrack entry and ephemeral port associated. ([#115143](https://github.com/kubernetes/kubernetes/pull/115143), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115143", - "pr_number": 115143, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "cleanup", - "feature" - ], - "sigs": [ - "network", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115149": { - "commit": "30ee6914c54269c5898582c984a3f21f9c6710e9", - "text": "Encryption of API Server at rest configuration now allows the use of wildcards in the list of resources. For example, *.* can be used to encrypt all resources, including all current and future custom resources.", - "markdown": "Encryption of API Server at rest configuration now allows the use of wildcards in the list of resources. For example, *.* can be used to encrypt all resources, including all current and future custom resources. ([#115149](https://github.com/kubernetes/kubernetes/pull/115149), [@nilekhc](https://github.com/nilekhc))", - "author": "nilekhc", - "author_url": "https://github.com/nilekhc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115149", - "pr_number": 115149, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115163": { - "commit": "cc68c06f9cb6c70cbb840a8d7b9ca49eb223cb3f", - "text": "The `AdvancedAuditing` feature gate was locked to _true_ in v1.27, and will be removed completely in v1.28", - "markdown": "The `AdvancedAuditing` feature gate was locked to _true_ in v1.27, and will be removed completely in v1.28 ([#115163](https://github.com/kubernetes/kubernetes/pull/115163), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115163", - "pr_number": 115163, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "115179": { - "commit": "97ab147537f6999249c241e0896245bd961c32ae", - "text": "Fixed nil pointer error in `NodeVolumeLimits` csi logging", - "markdown": "Fixed nil pointer error in `NodeVolumeLimits` csi logging ([#115179](https://github.com/kubernetes/kubernetes/pull/115179), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu))", - "author": "sunnylovestiramisu", - "author_url": "https://github.com/sunnylovestiramisu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115179", - "pr_number": 115179, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true - }, - "115204": { - "commit": "4b7bd457c496897d336bea6e9d65012a124c97ff", - "text": "[KCCM - service controller]: enabled connection draining for terminating pods upon node downscale by the cluster autoscaler. This is done by not reacting to the taint used by the cluster autoscaler to indicate that the node is going away soon, thus keeping the node referenced by the load balancer until the VM has been completely deleted.", - "markdown": "[KCCM - service controller]: enabled connection draining for terminating pods upon node downscale by the cluster autoscaler. This is done by not reacting to the taint used by the cluster autoscaler to indicate that the node is going away soon, thus keeping the node referenced by the load balancer until the VM has been completely deleted. ([#115204](https://github.com/kubernetes/kubernetes/pull/115204), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115204", - "pr_number": 115204, - "areas": [ - "cloudprovider", - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "api-machinery", - "instrumentation", - "cloud-provider" - ], - "duplicate": true - }, - "115207": { - "commit": "d9c371a2c4fd07b45a3e1c5954ae781d5794ae2b", - "text": "None", - "markdown": "None ([#115207](https://github.com/kubernetes/kubernetes/pull/115207), [@daman1807](https://github.com/daman1807))", - "author": "daman1807", - "author_url": "https://github.com/daman1807", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115207", - "pr_number": 115207, - "areas": [ - "test", - "network-policy" - ], - "kinds": [ - "flake" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "115209": { - "commit": "781daea7b24dd855100ddbc5def68e5435797114", - "text": "Removed the following deprecated metrics:\n- node_collector_evictions_number replaced by node_collector_evictions_total\n- scheduler_e2e_scheduling_duration_seconds replaced by scheduler_scheduling_attempt_duration_seconds", - "markdown": "Removed the following deprecated metrics:\n - node_collector_evictions_number replaced by node_collector_evictions_total\n - scheduler_e2e_scheduling_duration_seconds replaced by scheduler_scheduling_attempt_duration_seconds ([#115209](https://github.com/kubernetes/kubernetes/pull/115209), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115209", - "pr_number": 115209, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "apps" - ], - "duplicate": true - }, - "115220": { - "commit": "af9f7a4d90a9562687893b4794c7109d9a05f33e", - "text": "kubelet: a \"maxParallelImagePulls\" field can now be specified in the kubelet configuration file to control how many image pulls the kubelet can perform in parallel.", - "markdown": "Kubelet: a \"maxParallelImagePulls\" field can now be specified in the kubelet configuration file to control how many image pulls the kubelet can perform in parallel. ([#115220](https://github.com/kubernetes/kubernetes/pull/115220), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) [SIG API Machinery, Node and Scalability]", - "author": "ruiwen-zhao", - "author_url": "https://github.com/ruiwen-zhao", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115220", - "pr_number": 115220, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scalability", - "node", - "api-machinery" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115233": { - "commit": "aa5f462f5b67db3b7b3c2686c405ad61b2a40a2d", - "text": "`kube-proxy` now accepts the `ContextualLogging`, `LoggingAlphaOptions`,\n`LoggingBetaOptions`", - "markdown": "`kube-proxy` now accepts the `ContextualLogging`, `LoggingAlphaOptions`,\n `LoggingBetaOptions` ([#115233](https://github.com/kubernetes/kubernetes/pull/115233), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115233", - "pr_number": 115233, - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "115236": { - "commit": "35f3fc59c1f29eebc8ff8705ecc3d4db7c4cbbc6", - "text": "API validation relaxed allowing Indexed Jobs to be scaled up/down by changing parallelism and completions in tandem, such that parallelism == completions.", - "markdown": "API validation relaxed allowing Indexed Jobs to be scaled up/down by changing parallelism and completions in tandem, such that parallelism == completions. ([#115236](https://github.com/kubernetes/kubernetes/pull/115236), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3724", - "type": "KEP" - } - ], - "author": "danielvegamyhre", - "author_url": "https://github.com/danielvegamyhre", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115236", - "pr_number": 115236, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "115254": { - "commit": "bec431642ef7f5975f49d4a2b47089cf58d47075", - "text": "NONE", - "markdown": "NONE ([#115254](https://github.com/kubernetes/kubernetes/pull/115254), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115254", - "pr_number": 115254, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "testing" - ], - "do_not_publish": true - }, - "115260": { - "commit": "8fbfbd96532598caf0faa294b3dcea7a22c4b0aa", - "text": "Enabled the `StatefulSetStartOrdinal` feature gate in beta", - "markdown": "Enabled the `StatefulSetStartOrdinal` feature gate in beta ([#115260](https://github.com/kubernetes/kubernetes/pull/115260), [@pwschuurman](https://github.com/pwschuurman))", - "author": "pwschuurman", - "author_url": "https://github.com/pwschuurman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115260", - "pr_number": 115260, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115268": { - "commit": "2c8f63f693d75059f03c5335394883c3349c39ce", - "text": "Added `NewVolumeManagerReconstruction` feature gate and enabled it by default to enable updated discovery of mounted volumes during kubelet startup. Please watch for kubelet getting stuck at startup and / or not unmounting volumes from deleted Pods and report any issues in this area.", - "markdown": "Added `NewVolumeManagerReconstruction` feature gate and enabled it by default to enable updated discovery of mounted volumes during kubelet startup. Please watch for kubelet getting stuck at startup and / or not unmounting volumes from deleted Pods and report any issues in this area. ([#115268](https://github.com/kubernetes/kubernetes/pull/115268), [@jsafrane](https://github.com/jsafrane))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3763", - "type": "KEP" - } - ], - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115268", - "pr_number": 115268, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node" - ], - "feature": true, - "duplicate": true - }, - "115277": { - "commit": "51dedff4f3efd407ebf47de11d0db521274471a3", - "text": "Performance improvements in `klog`", - "markdown": "Performance improvements in `klog` ([#115277](https://github.com/kubernetes/kubernetes/pull/115277), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115277", - "pr_number": 115277, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "115283": { - "commit": "703361f381d4a1eaa7dc87ff3b7c12c84f3878a4", - "text": "None", - "markdown": "None ([#115283](https://github.com/kubernetes/kubernetes/pull/115283), [@daman1807](https://github.com/daman1807))", - "author": "daman1807", - "author_url": "https://github.com/daman1807", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115283", - "pr_number": 115283, - "areas": [ - "test", - "network-policy" - ], - "kinds": [ - "cleanup", - "flake" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "115310": { - "commit": "8e642d3d0deab20a153c740b7af727a10aabf88b", - "text": "`etcd`: Updated to `v3.5.7`", - "markdown": "`etcd`: Updated to `v3.5.7` ([#115310](https://github.com/kubernetes/kubernetes/pull/115310), [@mzaian](https://github.com/mzaian))", - "author": "mzaian", - "author_url": "https://github.com/mzaian", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115310", - "pr_number": 115310, - "areas": [ - "test", - "provider/gcp", - "release-eng", - "kubeadm", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "115315": { - "commit": "22b88dea360b0aae4ecaa57142718386b3cbd40d", - "text": "The Kubernetes API server now correctly detects and closes existing TLS connections when its client certificate file for kubelet authentication has been rotated.", - "markdown": "The Kubernetes API server now correctly detects and closes existing TLS connections when its client certificate file for kubelet authentication has been rotated. ([#115315](https://github.com/kubernetes/kubernetes/pull/115315), [@enj](https://github.com/enj)) [SIG API Machinery, Auth, Node and Testing]", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115315", - "pr_number": 115315, - "areas": [ - "test", - "kubelet", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "testing" - ], - "duplicate": true - }, - "115321": { - "commit": "6f22d1f1abc61224c848e40cc8336e92908e0c3c", - "text": "GRPC probes now set a linger option of 1s to improve the TIME-WAIT state.", - "markdown": "GRPC probes now set a linger option of 1s to improve the TIME-WAIT state. ([#115321](https://github.com/kubernetes/kubernetes/pull/115321), [@rphillips](https://github.com/rphillips)) [SIG Network and Node]", - "author": "rphillips", - "author_url": "https://github.com/rphillips", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115321", - "pr_number": 115321, - "kinds": [ - "bug", - "cleanup", - "feature" - ], - "sigs": [ - "network", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115322": { - "commit": "3d6c7efc23011ee7c5a301e9ca340efd33456f60", - "text": "Fixed a bug that caused the `apiserver` to panic when trying to allocate a Service with a dynamic `ClusterIP` and was configured with Service CIDRs with a /28 mask for IPv4 and a /124 mask for IPv6", - "markdown": "Fixed a bug that caused the `apiserver` to panic when trying to allocate a Service with a dynamic `ClusterIP` and was configured with Service CIDRs with a /28 mask for IPv4 and a /124 mask for IPv6 ([#115322](https://github.com/kubernetes/kubernetes/pull/115322), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115322", - "pr_number": 115322, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "testing" - ], - "duplicate_kind": true - }, - "115331": { - "commit": "e1c2af399a930b1e97fa354492d6f33755831f90", - "text": "Give terminal phase correctly to all pods that will not be restarted. \n\nIn particular, assign Failed phase to pods which are deleted while pending. Also, assign a terminal \nphase (Succeeded or Failed, depending on the exit statuses of the pod containers) to pods which\nare deleted while running.\n\nThis fixes the issue for jobs using pod failure policy (with JobPodFailurePolicy and PodDisruptionConditions \nfeature gates enabled) that their pods could get stuck in the pending phase when deleted.\n\nUsers who maintain controllers which relied on the fact that pods with RestartPolicy=Always\nnever enter the Succeeded phase may need to adapt their controllers. This is because as a consequence of \nthe change pods which use RestartPolicy=Always may end up in the Succeeded phase in two scenarios: pod \ndeletion and graceful node shutdown.", - "markdown": "Give terminal phase correctly to all pods that will not be restarted. \n \n In particular, assign Failed phase to pods which are deleted while pending. Also, assign a terminal \n phase (Succeeded or Failed, depending on the exit statuses of the pod containers) to pods which\n are deleted while running.\n \n This fixes the issue for jobs using pod failure policy (with JobPodFailurePolicy and PodDisruptionConditions \n feature gates enabled) that their pods could get stuck in the pending phase when deleted.\n \n Users who maintain controllers which relied on the fact that pods with RestartPolicy=Always\n never enter the Succeeded phase may need to adapt their controllers. This is because as a consequence of \n the change pods which use RestartPolicy=Always may end up in the Succeeded phase in two scenarios: pod \n deletion and graceful node shutdown. ([#115331](https://github.com/kubernetes/kubernetes/pull/115331), [@mimowo](https://github.com/mimowo)) [SIG Cloud Provider, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115331", - "pr_number": 115331, - "areas": [ - "test", - "kubelet", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "115332": { - "commit": "637bd6616573a28c9e0610db9ae0807a66fcaab3", - "text": "Migrated the ttlafterfinished controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the ttlafterfinished controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#115332](https://github.com/kubernetes/kubernetes/pull/115332), [@obaranov1](https://github.com/obaranov1)) [SIG Apps]", - "author": "obaranov1", - "author_url": "https://github.com/obaranov1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115332", - "pr_number": 115332, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ] - }, - "115336": { - "commit": "5a2dd64801f0f9887047b6d0f618d88532d4a32d", - "text": "None", - "markdown": "None ([#115336](https://github.com/kubernetes/kubernetes/pull/115336), [@mzaian](https://github.com/mzaian))", - "author": "mzaian", - "author_url": "https://github.com/mzaian", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115336", - "pr_number": 115336, - "areas": [ - "release-eng" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "115341": { - "commit": "c9e281df23d66ff1f886b301f15147ab3f6e0074", - "text": "Fixed the regression that introduced 34s timeout for DELETECOLLECTION calls", - "markdown": "Fixed the regression that introduced 34s timeout for DELETECOLLECTION calls ([#115341](https://github.com/kubernetes/kubernetes/pull/115341), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115341", - "pr_number": 115341, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "115346": { - "commit": "f9a3fd2810ed4cba159b8d106ca7362c0b528c3a", - "text": "`node_stage_path` is now set whenever available for expansion during mount", - "markdown": "`node_stage_path` is now set whenever available for expansion during mount ([#115346](https://github.com/kubernetes/kubernetes/pull/115346), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115346", - "pr_number": 115346, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true - }, - "115349": { - "commit": "bd63a912d6f602103e39fbbec8e1499a95cba631", - "text": "The bug which caused the status of Indexed Jobs to only update when new indexes were completed was fixed. Now, completed indexes are updated even if the `.status.completedIndexes` values are outside the `[0, .spec.completions\u003e range`.", - "markdown": "The bug which caused the status of Indexed Jobs to only update when new indexes were completed was fixed. Now, completed indexes are updated even if the `.status.completedIndexes` values are outside the `[0, .spec.completions\u003e range`. ([#115349](https://github.com/kubernetes/kubernetes/pull/115349), [@danielvegamyhre](https://github.com/danielvegamyhre))", - "author": "danielvegamyhre", - "author_url": "https://github.com/danielvegamyhre", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115349", - "pr_number": 115349, - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "duplicate_kind": true - }, - "115354": { - "commit": "c829397f7a1fa956766f6479a8ca454b6937feda", - "text": "A fix in the `resource.k8s.io/v1alpha1/ResourceClaim` API avoids harmless (?) \".status.reservedFor: element 0: associative list without keys has an element that's a map type\" errors in the apiserver. Validation now rejects the incorrect reuse of the same UID in different entries.", - "markdown": "A fix in the `resource.k8s.io/v1alpha1/ResourceClaim` API avoids harmless (?) \".status.reservedFor: element 0: associative list without keys has an element that's a map type\" errors in the apiserver. Validation now rejects the incorrect reuse of the same UID in different entries. ([#115354](https://github.com/kubernetes/kubernetes/pull/115354), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115354", - "pr_number": 115354, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "115363": { - "commit": "894cfdfeb4a09083849f9193f7c36360e61509eb", - "text": "The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to beta and is enabled by default. On servers with the feature enabled, this field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted.", - "markdown": "The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to beta and is enabled by default. On servers with the feature enabled, this field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted. ([#115363](https://github.com/kubernetes/kubernetes/pull/115363), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Apps, Auth and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3017-pod-healthy-policy-for-pdb", - "type": "KEP" - } - ], - "author": "ravisantoshgudimetla", - "author_url": "https://github.com/ravisantoshgudimetla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115363", - "pr_number": 115363, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "node", - "auth", - "apps" - ], - "duplicate": true - }, - "115371": { - "commit": "625b8be09ea78a4e13fcee79c426c268b21d7161", - "text": "kubelet: changed `MemoryThrottlingFactor` default value to `0.9` and formulas to calculate `memory.high`", - "markdown": "Kubelet: changed `MemoryThrottlingFactor` default value to `0.9` and formulas to calculate `memory.high` ([#115371](https://github.com/kubernetes/kubernetes/pull/115371), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2570-memory-qos", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115371", - "pr_number": 115371, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115374": { - "commit": "715e95708465132b7a8d57d416b9137788eafd3b", - "text": "kubelet allows pods to use the `net.ipv4.ip_local_reserved_ports` sysctl by default and the minimal kernel version is 3.16; Pod Security admission allows this sysctl in v1.27+ versions of the baseline and restricted policies.", - "markdown": "Kubelet allows pods to use the `net.ipv4.ip_local_reserved_ports` sysctl by default and the minimal kernel version is 3.16; Pod Security admission allows this sysctl in v1.27+ versions of the baseline and restricted policies. ([#115374](https://github.com/kubernetes/kubernetes/pull/115374), [@pacoxu](https://github.com/pacoxu)) [SIG Auth, Network and Node]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115374", - "pr_number": 115374, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "node", - "auth" - ], - "feature": true, - "duplicate": true - }, - "115377": { - "commit": "9812eefd4392b3209a35fcf25b2103e6072854f9", - "text": "The go version defined in `.go-version` is now fetched when invoking test, build, and code generation targets if the current go version does not match it. Set $FORCE_HOST_GO=y while testing or building to skip this behavior, or set $GO_VERSION to override the selected go version.", - "markdown": "The go version defined in `.go-version` is now fetched when invoking test, build, and code generation targets if the current go version does not match it. Set $FORCE_HOST_GO=y while testing or building to skip this behavior, or set $GO_VERSION to override the selected go version. ([#115377](https://github.com/kubernetes/kubernetes/pull/115377), [@liggitt](https://github.com/liggitt)) [SIG Testing]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115377", - "pr_number": 115377, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - }, - "115379": { - "commit": "6eb008620cd0ee3501326ee003d47fbaf1fa5b52", - "text": "The mount-utils mounter now provides an option to limit the number of concurrent format operations.", - "markdown": "The mount-utils mounter now provides an option to limit the number of concurrent format operations. ([#115379](https://github.com/kubernetes/kubernetes/pull/115379), [@artemvmin](https://github.com/artemvmin)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node and Storage]", - "author": "artemvmin", - "author_url": "https://github.com/artemvmin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115379", - "pr_number": 115379, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "kubeadm", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "115384": { - "commit": "8f55d34507f82287c6c581f8d724a5fded5114a7", - "text": "None", - "markdown": "None ([#115384](https://github.com/kubernetes/kubernetes/pull/115384), [@sourcelliu](https://github.com/sourcelliu))", - "author": "sourcelliu", - "author_url": "https://github.com/sourcelliu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115384", - "pr_number": 115384, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "115391": { - "commit": "b4305fcf6306828ce99cae19a0b8155aabc2aa93", - "text": "PersistentVolume API objects which set NodeAffinities using beta Kubernetes labels for OS, architecture, zone, region, and instance type may now be modified to use the stable Kubernetes labels.", - "markdown": "PersistentVolume API objects which set NodeAffinities using beta Kubernetes labels for OS, architecture, zone, region, and instance type may now be modified to use the stable Kubernetes labels. ([#115391](https://github.com/kubernetes/kubernetes/pull/115391), [@haoruan](https://github.com/haoruan))", - "author": "haoruan", - "author_url": "https://github.com/haoruan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115391", - "pr_number": 115391, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "apps" - ], - "duplicate": true - }, - "115394": { - "commit": "292450717cb76e0c480fa5883d18fe1245176d63", - "text": "apiserver_storage_transformation_operations_total metric has been updated to include labels transformer_prefix and status.", - "markdown": "Apiserver_storage_transformation_operations_total metric has been updated to include labels transformer_prefix and status. ([#115394](https://github.com/kubernetes/kubernetes/pull/115394), [@ritazh](https://github.com/ritazh)) [SIG API Machinery, Auth, Instrumentation and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", - "type": "KEP" - } - ], - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115394", - "pr_number": 115394, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "115402": { - "commit": "762fa1268651206b9262a0c880a884984028bdf4", - "text": "Introduced API for streaming.\n\nAdded `SendInitialEvents` field to the `ListOptions`. When the new option is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic \"Bookmark\" after which the server continues streaming events.", - "markdown": "Introduced API for streaming.\n \n Added `SendInitialEvents` field to the `ListOptions`. When the new option is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic \"Bookmark\" after which the server continues streaming events. ([#115402](https://github.com/kubernetes/kubernetes/pull/115402), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3157-watch-list", - "type": "KEP" - } - ], - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115402", - "pr_number": 115402, - "areas": [ - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "115412": { - "commit": "0ed74145fb00626ce0e900812a54ca3de5406f2e", - "text": "None", - "markdown": "None ([#115412](https://github.com/kubernetes/kubernetes/pull/115412), [@maxsmythe](https://github.com/maxsmythe))", - "author": "maxsmythe", - "author_url": "https://github.com/maxsmythe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115412", - "pr_number": 115412, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "115420": { - "commit": "70c129fea52c922f474b9d8524436e9152673506", - "text": "File content check for IPV4 is now enabled by default, and the check of IPV4 or IPV6 is done for `kubeadm init` or `kubeadm join` only in case the user intends to create a cluster to support that kind of IP address family", - "markdown": "File content check for IPV4 is now enabled by default, and the check of IPV4 or IPV6 is done for `kubeadm init` or `kubeadm join` only in case the user intends to create a cluster to support that kind of IP address family ([#115420](https://github.com/kubernetes/kubernetes/pull/115420), [@chendave](https://github.com/chendave))", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115420", - "pr_number": 115420, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "cluster-lifecycle" - ], - "duplicate": true - }, - "115433": { - "commit": "812d55d230ea02a7bfe3e3b0705fab7503782dfa", - "text": "Updated: Redefine AppProtocol field description and add new standard values", - "markdown": "Updated: Redefine AppProtocol field description and add new standard values ([#115433](https://github.com/kubernetes/kubernetes/pull/115433), [@LiorLieberman](https://github.com/LiorLieberman)) [SIG API Machinery, Apps and Network]", - "author": "LiorLieberman", - "author_url": "https://github.com/LiorLieberman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115433", - "pr_number": 115433, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115434": { - "commit": "0ebf9a3a1be6d0757b1d60b860ed226e2d4d1abc", - "text": "Updated API reference for Requests, specifying they must not exceed limits", - "markdown": "Updated API reference for Requests, specifying they must not exceed limits ([#115434](https://github.com/kubernetes/kubernetes/pull/115434), [@ehashman](https://github.com/ehashman))", - "author": "ehashman", - "author_url": "https://github.com/ehashman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115434", - "pr_number": 115434, - "areas": [ - "code-generation" - ], - "kinds": [ - "documentation", - "cleanup", - "api-change" - ], - "sigs": [ - "node", - "docs", - "architecture" - ], - "duplicate": true, - "duplicate_kind": true - }, - "115447": { - "commit": "8decaf3ae7f410ab3f3774f3895b9f3124b8a4c6", - "text": "Ingress with `ingressClass` annotation and `IngressClassName` both set can be created now.", - "markdown": "Ingress with `ingressClass` annotation and `IngressClassName` both set can be created now. ([#115447](https://github.com/kubernetes/kubernetes/pull/115447), [@AxeZhan](https://github.com/AxeZhan))", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115447", - "pr_number": 115447, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "115451": { - "commit": "499a03d88bf416cb7540ff29f7249f5ed0c92ef8", - "text": "Added e2e test to node expand volume with secret", - "markdown": "Added e2e test to node expand volume with secret ([#115451](https://github.com/kubernetes/kubernetes/pull/115451), [@zhucan](https://github.com/zhucan))", - "author": "zhucan", - "author_url": "https://github.com/zhucan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115451", - "pr_number": 115451, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "testing" - ], - "feature": true, - "duplicate": true - }, - "115454": { - "commit": "95c65ca3a09333baa7e420dbabfcc39c4bfd77fe", - "text": "Promoted pod resource `limit/request` metrics to stable.", - "markdown": "Promoted pod resource `limit/request` metrics to stable. ([#115454](https://github.com/kubernetes/kubernetes/pull/115454), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115454", - "pr_number": 115454, - "areas": [ - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "duplicate": true - }, - "115464": { - "commit": "49babf218a0cd4907f8197c33464dd5f7874df0e", - "text": "Fixed an issue where a CSI migrated volume may be prematurely detached when the CSI driver is not running on the node.\nIf CSI migration is enabled on the node, even the csi-driver is not up and ready, we will still add this volume to DSW.", - "markdown": "Fixed an issue where a CSI migrated volume may be prematurely detached when the CSI driver is not running on the node.\n If CSI migration is enabled on the node, even the csi-driver is not up and ready, we will still add this volume to DSW. ([#115464](https://github.com/kubernetes/kubernetes/pull/115464), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu))", - "author": "sunnylovestiramisu", - "author_url": "https://github.com/sunnylovestiramisu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115464", - "pr_number": 115464, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "apps" - ], - "duplicate": true - }, - "115480": { - "commit": "beacb8d7afc427eac491c59e9370be7b16b9f318", - "text": "Added `--output plaintext-openapiv2` argument to kubectl explain to use old openapiv2 `explain` implementation.", - "markdown": "Added `--output plaintext-openapiv2` argument to kubectl explain to use old openapiv2 `explain` implementation. ([#115480](https://github.com/kubernetes/kubernetes/pull/115480), [@alexzielenski](https://github.com/alexzielenski))", - "documentation": [ - { - "description": "[KEP] 3515 OpenAPI v3 for kubectl explain", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3515-kubectl-explain-openapiv3", - "type": "KEP" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115480", - "pr_number": 115480, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "auth", - "cli", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "115503": { - "commit": "7a55b76f28eddbbb7abf69038d4bd5abab833b4f", - "text": "Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing when service was configured with `ipFamilyPolicy`: `RequireDualStack`", - "markdown": "Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing when service was configured with `ipFamilyPolicy`: `RequireDualStack` ([#115503](https://github.com/kubernetes/kubernetes/pull/115503), [@princepereira](https://github.com/princepereira))", - "author": "princepereira", - "author_url": "https://github.com/princepereira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115503", - "pr_number": 115503, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true - }, - "115514": { - "commit": "b0171f77f68427813efbb478c0ba89f48322d34a", - "text": "k8s.io/client-go/tools/record.EventBroadcaster: after Shutdown() is called, the broadcaster now gives up immediately after a failure to write an event to a sink. Previously it tried multiple times for 12 seconds in a goroutine.", - "markdown": "K8s.io/client-go/tools/record.EventBroadcaster: after Shutdown() is called, the broadcaster now gives up immediately after a failure to write an event to a sink. Previously it tried multiple times for 12 seconds in a goroutine. ([#115514](https://github.com/kubernetes/kubernetes/pull/115514), [@pohly](https://github.com/pohly)) [SIG API Machinery]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115514", - "pr_number": 115514, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "115569": { - "commit": "9b09d0600a69a2eb36b0d136465ccc3c179dacdb", - "text": "`nodeName` being set along with non-empty `schedulingGates` is now enforced.", - "markdown": "`nodeName` being set along with non-empty `schedulingGates` is now enforced. ([#115569](https://github.com/kubernetes/kubernetes/pull/115569), [@Huang-Wei](https://github.com/Huang-Wei))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3521-pod-scheduling-readiness", - "type": "KEP" - } - ], - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115569", - "pr_number": 115569, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "apps" - ], - "duplicate": true - }, - "115575": { - "commit": "8e31885e3649fbf74500383eb399db970b8516fd", - "text": "`kubeadm`: fixed a bug where the uploaded kubelet configuration in `kube-system/kubelet-config` `ConfigMap` does not respect user patch", - "markdown": "`kubeadm`: fixed a bug where the uploaded kubelet configuration in `kube-system/kubelet-config` `ConfigMap` does not respect user patch ([#115575](https://github.com/kubernetes/kubernetes/pull/115575), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115575", - "pr_number": 115575, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "115577": { - "commit": "e4c8802407fbaffad126685280e72145d89b125e", - "text": "Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing when service was configured with `ipFamilyPolicy`: `RequireDualStack`", - "markdown": "Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing when service was configured with `ipFamilyPolicy`: `RequireDualStack` ([#115577](https://github.com/kubernetes/kubernetes/pull/115577), [@princepereira](https://github.com/princepereira))", - "author": "princepereira", - "author_url": "https://github.com/princepereira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115577", - "pr_number": 115577, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true - }, - "115590": { - "commit": "e18fa74551bc695014bf9da2d1eb14d2050db181", - "text": "Added kubelet Topology Manager metric to measure topology manager admission latency.", - "markdown": "Added kubelet Topology Manager metric to measure topology manager admission latency. ([#115590](https://github.com/kubernetes/kubernetes/pull/115590), [@swatisehgal](https://github.com/swatisehgal))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/pull/3745", - "type": "KEP" - } - ], - "author": "swatisehgal", - "author_url": "https://github.com/swatisehgal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115590", - "pr_number": 115590, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "115603": { - "commit": "4f76e4a0fd8688a1add065dc9796973dc280fce0", - "text": "Upgraded `coredns` to `v1.10.1`", - "markdown": "Upgraded `coredns` to `v1.10.1` ([#115603](https://github.com/kubernetes/kubernetes/pull/115603), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115603", - "pr_number": 115603, - "areas": [ - "provider/gcp", - "kubeadm", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle", - "cloud-provider" - ], - "duplicate": true - }, - "115606": { - "commit": "aa98f6f4daa0bd6ce3931015069fe525836cbd43", - "text": "Pods which have an invalid negative `spec.terminationGracePeriodSeconds` value will now be treated as having a `terminationGracePeriodSeconds` of `1`", - "markdown": "Pods which have an invalid negative `spec.terminationGracePeriodSeconds` value will now be treated as having a `terminationGracePeriodSeconds` of `1` ([#115606](https://github.com/kubernetes/kubernetes/pull/115606), [@wzshiming](https://github.com/wzshiming))", - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115606", - "pr_number": 115606, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "115610": { - "commit": "f545ff3ba8c963e4a2a384c28d8cb918f2ffd06f", - "text": "`kubeadm`: now shows a warning message when detecting that the sandbox image of the container runtime is inconsistent with that used by kubeadm", - "markdown": "`kubeadm`: now shows a warning message when detecting that the sandbox image of the container runtime is inconsistent with that used by kubeadm ([#115610](https://github.com/kubernetes/kubernetes/pull/115610), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115610", - "pr_number": 115610, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "115620": { - "commit": "814faade7fa3916478df963cfc6e34042e79ce89", - "text": "Fixed missing delete events on informer re-lists to ensure all delete events were correctly emitted and using the latest known object state, so that all event handlers and stores always reflect the actual apiserver state as best as possible", - "markdown": "Fixed missing delete events on informer re-lists to ensure all delete events were correctly emitted and using the latest known object state, so that all event handlers and stores always reflect the actual apiserver state as best as possible ([#115620](https://github.com/kubernetes/kubernetes/pull/115620), [@odinuge](https://github.com/odinuge))", - "author": "odinuge", - "author_url": "https://github.com/odinuge", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115620", - "pr_number": 115620, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "115621": { - "commit": "da209484929560072bb766afd6103c93a09bd3e6", - "text": "Graduated the `CSINodeExpandSecret` feature to Beta. This feature facilitates passing secrets to CSI driver as part of Node Expansion CSI operation.", - "markdown": "Graduated the `CSINodeExpandSecret` feature to Beta. This feature facilitates passing secrets to CSI driver as part of Node Expansion CSI operation. ([#115621](https://github.com/kubernetes/kubernetes/pull/115621), [@humblec](https://github.com/humblec))", - "author": "humblec", - "author_url": "https://github.com/humblec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115621", - "pr_number": 115621, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true - }, - "115630": { - "commit": "2e3c5003b96aef29e87ee24c9086ff7f06cb8886", - "text": "Changed metrics for aggregated discovery to publish new time series (alpha).", - "markdown": "Changed metrics for aggregated discovery to publish new time series (alpha). ([#115630](https://github.com/kubernetes/kubernetes/pull/115630), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery and Testing]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115630", - "pr_number": 115630, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "115634": { - "commit": "94424ba808e145140f4ab0a0d508a488480e1b96", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#115634](https://github.com/kubernetes/kubernetes/pull/115634), [@ameukam](https://github.com/ameukam)) [SIG Cloud Provider]", - "author": "ameukam", - "author_url": "https://github.com/ameukam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115634", - "pr_number": 115634, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "do_not_publish": true - }, - "115649": { - "commit": "0698d9eb829ff0ef10d0a7e5fb525d330d332fb4", - "text": "Added apiserver_envelope_encryption_kms_operations_latency_seconds metric to measure the KMSv2 grpc calls latency.", - "markdown": "Added apiserver_envelope_encryption_kms_operations_latency_seconds metric to measure the KMSv2 grpc calls latency. ([#115649](https://github.com/kubernetes/kubernetes/pull/115649), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115649", - "pr_number": 115649, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "115652": { - "commit": "f5a69ffda93f18368b6a20a7d07ab65b6d91e8f7", - "text": "The Scheduler did not run the plugin Score method when its PreScore method returned a Skip status. In other words, the PreScore/Score plugin could return a Skip status in PreScore if the plugin did nothing in Score for that Pod.", - "markdown": "The Scheduler did not run the plugin Score method when its PreScore method returned a Skip status. In other words, the PreScore/Score plugin could return a Skip status in PreScore if the plugin did nothing in Score for that Pod. ([#115652](https://github.com/kubernetes/kubernetes/pull/115652), [@AxeZhan](https://github.com/AxeZhan))", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115652", - "pr_number": 115652, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "115655": { - "commit": "be080584c632b031583310dd090424b06aa4f498", - "text": "`NodeResourceFit` and `NodeResourcesBalancedAllocation` implement the `PreScore`\nextension point for a more performant calculation.", - "markdown": "`NodeResourceFit` and `NodeResourcesBalancedAllocation` implement the `PreScore`\n extension point for a more performant calculation. ([#115655](https://github.com/kubernetes/kubernetes/pull/115655), [@tangwz](https://github.com/tangwz))", - "author": "tangwz", - "author_url": "https://github.com/tangwz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115655", - "pr_number": 115655, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "duplicate_kind": true - }, - "115668": { - "commit": "152876a3eb9c6211c48bb159c87e2bf834e4eedc", - "text": "`ValidatingAdmissionPolicy` now provides a status field that contains results of type checking the validation expression.\nThe type checking is fully informational, and the behavior of the policy is unchanged.", - "markdown": "`ValidatingAdmissionPolicy` now provides a status field that contains results of type checking the validation expression.\n The type checking is fully informational, and the behavior of the policy is unchanged. ([#115668](https://github.com/kubernetes/kubernetes/pull/115668), [@jiahuif](https://github.com/jiahuif))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3488-cel-admission-control", - "type": "KEP" - } - ], - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115668", - "pr_number": 115668, - "areas": [ - "test", - "apiserver", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115678": { - "commit": "0424a530a4d07d12a4f38bb978d705fcf4505e21", - "text": "e2e framework: added `--report-complete-ginkgo` and `--report-complete-junit` parameters. They work like `ginkgo --json-report \u003creport dir\u003e/ginkgo/report.json --junit-report \u003creport dir\u003e/ginkgo/report.xml`.", - "markdown": "E2e framework: added `--report-complete-ginkgo` and `--report-complete-junit` parameters. They work like `ginkgo --json-report \u003creport dir\u003e/ginkgo/report.json --junit-report \u003creport dir\u003e/ginkgo/report.xml`. ([#115678](https://github.com/kubernetes/kubernetes/pull/115678), [@pohly](https://github.com/pohly)) [SIG Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115678", - "pr_number": 115678, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ] - }, - "115690": { - "commit": "e818649c10f29bc80b874889a448da4023918330", - "text": "None", - "markdown": "None ([#115690](https://github.com/kubernetes/kubernetes/pull/115690), [@tzneal](https://github.com/tzneal))", - "author": "tzneal", - "author_url": "https://github.com/tzneal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115690", - "pr_number": 115690, - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ], - "do_not_publish": true - }, - "115693": { - "commit": "20c3a007f55b8f05ad31650494f90941ea15370f", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#115693](https://github.com/kubernetes/kubernetes/pull/115693), [@bobbypage](https://github.com/bobbypage)) [SIG Node and Testing]", - "author": "bobbypage", - "author_url": "https://github.com/bobbypage", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115693", - "pr_number": 115693, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "115709": { - "commit": "a0878eb7159cee412b2bb193b4fba00ac857f3ab", - "text": "None", - "markdown": "None ([#115709](https://github.com/kubernetes/kubernetes/pull/115709), [@yoongon](https://github.com/yoongon))", - "author": "yoongon", - "author_url": "https://github.com/yoongon", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115709", - "pr_number": 115709, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "115712": { - "commit": "6a5c88b9dd0a0e9ef0115d1bbcb196284777832b", - "text": "Added \"netadmin\" debugging profiles for kubectl debug.", - "markdown": "Added \"netadmin\" debugging profiles for kubectl debug. ([#115712](https://github.com/kubernetes/kubernetes/pull/115712), [@wedaly](https://github.com/wedaly)) [SIG CLI]", - "author": "wedaly", - "author_url": "https://github.com/wedaly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115712", - "pr_number": 115712, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "115719": { - "commit": "9e356a41321cd29fa33f15607317824a697f436c", - "text": "Graduated seccomp profile defaulting to GA.\n\nSet the kubelet `--seccomp-default` flag or `seccompDefault` kubelet configuration field to `true` to make pods on that node default to using the `RuntimeDefault` seccomp profile.\n\nEnabling seccomp for your workload can have a negative performance impact depending on the kernel and container runtime version in use.\n\nGuidance for identifying and mitigating those issues is outlined in the Kubernetes [seccomp tutorial](https://k8s.io/docs/tutorials/security/seccomp).", - "markdown": "Graduated seccomp profile defaulting to GA.\n \n Set the kubelet `--seccomp-default` flag or `seccompDefault` kubelet configuration field to `true` to make pods on that node default to using the `RuntimeDefault` seccomp profile.\n \n Enabling seccomp for your workload can have a negative performance impact depending on the kernel and container runtime version in use.\n \n Guidance for identifying and mitigating those issues is outlined in the Kubernetes [seccomp tutorial](https://k8s.io/docs/tutorials/security/seccomp). ([#115719](https://github.com/kubernetes/kubernetes/pull/115719), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Node, Storage and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/05f81b8/keps/sig-node/2413-seccomp-by-default", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115719", - "pr_number": 115719, - "areas": [ - "test", - "kubelet", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115721": { - "commit": "07e7e72c071a33ad38755a5d20c3f4b88f78d722", - "text": "The `DownwardAPIHugePages` kubelet feature graduated to stable / GA.", - "markdown": "The `DownwardAPIHugePages` kubelet feature graduated to stable / GA. ([#115721](https://github.com/kubernetes/kubernetes/pull/115721), [@saschagrunert](https://github.com/saschagrunert)) [SIG Apps and Node]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/blob/b5b3585/keps/sig-node/2053-downward-api-hugepages/README.md", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115721", - "pr_number": 115721, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115739": { - "commit": "731238fb416a2ae73b39063acdf0c6326555a045", - "text": "None", - "markdown": "None ([#115739](https://github.com/kubernetes/kubernetes/pull/115739), [@heyste](https://github.com/heyste))", - "author": "heyste", - "author_url": "https://github.com/heyste", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115739", - "pr_number": 115739, - "areas": [ - "conformance" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "architecture" - ], - "duplicate": true, - "do_not_publish": true - }, - "115742": { - "commit": "bb6c6fad2c19b3e31ef0e00d0b7e05c624fe5d88", - "text": "linux/arm will not ship in Kubernetes 1.27 as we are running into issues with building artifacts using golang 1.20.2 (please see issue #116492)", - "markdown": "Linux/arm will not ship in Kubernetes 1.27 as we are running into issues with building artifacts using golang 1.20.2 (please see issue #116492) ([#115742](https://github.com/kubernetes/kubernetes/pull/115742), [@dims](https://github.com/dims)) [SIG Architecture, Release and Testing]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115742", - "pr_number": 115742, - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing", - "release", - "architecture" - ], - "duplicate": true - }, - "115747": { - "commit": "8c61473f1ce7734bd9399c55d0b057b1f21f97d6", - "text": "Added CEL runtime cost calculation into ValidatingAdmissionPolicy, matching the evaluation cost\nrestrictions that already apply to CustomResourceDefinition.\nIf rule evaluation uses more compute than the limit, the API server aborts the evaluation and the\nadmission check that was being performed is aborted; the `failurePolicy` for the ValidatingAdmissionPolicy\ndetermines the outcome.", - "markdown": "Added CEL runtime cost calculation into ValidatingAdmissionPolicy, matching the evaluation cost\n restrictions that already apply to CustomResourceDefinition.\n If rule evaluation uses more compute than the limit, the API server aborts the evaluation and the\n admission check that was being performed is aborted; the `failurePolicy` for the ValidatingAdmissionPolicy\n determines the outcome. ([#115747](https://github.com/kubernetes/kubernetes/pull/115747), [@cici37](https://github.com/cici37))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3488", - "type": "KEP" - } - ], - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115747", - "pr_number": 115747, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "115750": { - "commit": "1586138519f972a68f597c496d9bace740158681", - "text": "Graduated `KubeletTracing` to beta, which means that the feature gate is now enabled by default.", - "markdown": "Graduated `KubeletTracing` to beta, which means that the feature gate is now enabled by default. ([#115750](https://github.com/kubernetes/kubernetes/pull/115750), [@saschagrunert](https://github.com/saschagrunert))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/2831", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115750", - "pr_number": 115750, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115758": { - "commit": "b8688048f8d3cca513ae36b2eb6e15f457a18df3", - "text": "NONE", - "markdown": "NONE ([#115758](https://github.com/kubernetes/kubernetes/pull/115758), [@sourcelliu](https://github.com/sourcelliu))", - "author": "sourcelliu", - "author_url": "https://github.com/sourcelliu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115758", - "pr_number": 115758, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "115769": { - "commit": "713ded736824d669d9fae9ac4a29b1ec18d66446", - "text": "Fixed the problem Pod terminating stuck because of trying to umount not actual mounted dir.", - "markdown": "Fixed the problem Pod terminating stuck because of trying to umount not actual mounted dir. ([#115769](https://github.com/kubernetes/kubernetes/pull/115769), [@mochizuki875](https://github.com/mochizuki875))", - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115769", - "pr_number": 115769, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true - }, - "115770": { - "commit": "1bafca3099bc5c0aa0711de175bcd32167ad2147", - "text": "Discovery document will correctly return the resources for aggregated apiservers that do not implement aggregated disovery", - "markdown": "Discovery document will correctly return the resources for aggregated apiservers that do not implement aggregated disovery ([#115770](https://github.com/kubernetes/kubernetes/pull/115770), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115770", - "pr_number": 115770, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "115786": { - "commit": "b3d8ac8496a23d65a907f9333d906bcd5463764e", - "text": "`golang.org/x/net` updated to `v0.7.0` to fix CVE-2022-41723", - "markdown": "`golang.org/x/net` updated to `v0.7.0` to fix CVE-2022-41723 ([#115786](https://github.com/kubernetes/kubernetes/pull/115786), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115786", - "pr_number": 115786, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "115800": { - "commit": "d6fe718e19881399fbb65f693c0c0f29f8f63861", - "text": "NONE", - "markdown": "NONE ([#115800](https://github.com/kubernetes/kubernetes/pull/115800), [@shogohida](https://github.com/shogohida))", - "author": "shogohida", - "author_url": "https://github.com/shogohida", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115800", - "pr_number": 115800, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "do_not_publish": true - }, - "115802": { - "commit": "a25834cb5a16bbd6a9295aeb5d1621aa8a4cd407", - "text": "`apiserver_admission_webhook_admission_duration_seconds` buckets have been expanded, 25s is now the largest bucket size to match the webhook default timeout.", - "markdown": "`apiserver_admission_webhook_admission_duration_seconds` buckets have been expanded, 25s is now the largest bucket size to match the webhook default timeout. ([#115802](https://github.com/kubernetes/kubernetes/pull/115802), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery and Instrumentation]", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115802", - "pr_number": 115802, - "areas": [ - "apiserver", - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "115815": { - "commit": "06b6644fcf49661d55f7df0311e2692b8d449ab4", - "text": "`PodSchedulingReadiness` is graduated to beta.", - "markdown": "`PodSchedulingReadiness` is graduated to beta. ([#115815](https://github.com/kubernetes/kubernetes/pull/115815), [@Huang-Wei](https://github.com/Huang-Wei))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3521-pod-scheduling-readiness", - "type": "KEP" - } - ], - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115815", - "pr_number": 115815, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115821": { - "commit": "bce513a2b824e595c4414a05bc8ee60fa7afe0a0", - "text": "The Pod API field `.spec.schedulingGates[*].name` now requires qualified names (like `example.com/mygate`), matching validation for names of `.spec.readinessGates[*].name`. Any uses of the alpha scheduling gate feature prior to 1.27 that do not match that validation must be renamed or deleted before upgrading to 1.27.", - "markdown": "The Pod API field `.spec.schedulingGates[*].name` now requires qualified names (like `example.com/mygate`), matching validation for names of `.spec.readinessGates[*].name`. Any uses of the alpha scheduling gate feature prior to 1.27 that do not match that validation must be renamed or deleted before upgrading to 1.27. ([#115821](https://github.com/kubernetes/kubernetes/pull/115821), [@lianghao208](https://github.com/lianghao208)) [SIG Apps and Scheduling]", - "author": "lianghao208", - "author_url": "https://github.com/lianghao208", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115821", - "pr_number": 115821, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "apps" - ], - "feature": true, - "duplicate": true - }, - "115828": { - "commit": "5c09c9de297558fdd092c009a4eccc96dffcb713", - "text": "Kubernetes is now built with go 1.20.1", - "markdown": "Kubernetes is now built with go 1.20.1 ([#115828](https://github.com/kubernetes/kubernetes/pull/115828), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115828", - "pr_number": 115828, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "115840": { - "commit": "a0b1bee7c5214af37f04b555ee59a7c81ec0699b", - "text": "Remove deprecated `--enable-taint-manager` and `--pod-eviction-timeout` CLI", - "markdown": "Remove deprecated `--enable-taint-manager` and `--pod-eviction-timeout` CLI ([#115840](https://github.com/kubernetes/kubernetes/pull/115840), [@atosatto](https://github.com/atosatto))", - "author": "atosatto", - "author_url": "https://github.com/atosatto", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115840", - "pr_number": 115840, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115846": { - "commit": "33c1a542fbfeeeceb5d2e7a862d1b76f4bfe047d", - "text": "Added apiserver_envelope_encryption_invalid_key_id_from_status_total to measure number of times an invalid keyID is returned by the Status RPC call.", - "markdown": "Added apiserver_envelope_encryption_invalid_key_id_from_status_total to measure number of times an invalid keyID is returned by the Status RPC call. ([#115846](https://github.com/kubernetes/kubernetes/pull/115846), [@ritazh](https://github.com/ritazh)) [SIG API Machinery and Auth]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", - "type": "KEP" - } - ], - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115846", - "pr_number": 115846, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true - }, - "115847": { - "commit": "28fa3cbbf180fbd77d364cf845f86d21d54da728", - "text": "Extended the kubelet's PodResources API to include resources allocated in `ResourceClaims` via `DynamicResourceAllocation`. Additionally, added a new `Get()` method to query a specific pod for its resources.", - "markdown": "Extended the kubelet's PodResources API to include resources allocated in `ResourceClaims` via `DynamicResourceAllocation`. Additionally, added a new `Get()` method to query a specific pod for its resources. ([#115847](https://github.com/kubernetes/kubernetes/pull/115847), [@moshe010](https://github.com/moshe010)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3738", - "type": "KEP" - } - ], - "author": "moshe010", - "author_url": "https://github.com/moshe010", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115847", - "pr_number": 115847, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true - }, - "115856": { - "commit": "da87af638f84b0272dcf521fbe7831876cf78900", - "text": "NONE", - "markdown": "NONE ([#115856](https://github.com/kubernetes/kubernetes/pull/115856), [@lanycrost](https://github.com/lanycrost))", - "author": "lanycrost", - "author_url": "https://github.com/lanycrost", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115856", - "pr_number": 115856, - "areas": [ - "test", - "apiserver", - "kubectl", - "release-eng", - "conformance", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "api-machinery", - "autoscaling", - "auth", - "apps", - "cli", - "testing", - "release", - "architecture" - ], - "duplicate": true, - "do_not_publish": true - }, - "115861": { - "commit": "6fd488a4e6ac6771916b3c37da6ed8cd9827c303", - "text": "When an unsupported PodDisruptionBudget configuration is found, an event and log will be emitted to inform users of the misconfiguration.", - "markdown": "When an unsupported PodDisruptionBudget configuration is found, an event and log will be emitted to inform users of the misconfiguration. ([#115861](https://github.com/kubernetes/kubernetes/pull/115861), [@JayKayy](https://github.com/JayKayy)) [SIG Apps]", - "author": "JayKayy", - "author_url": "https://github.com/JayKayy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115861", - "pr_number": 115861, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "115863": { - "commit": "b6582ffcd5ad83c0195afc0959976ea2eb1936a4", - "text": "Fixed panic in vSphere e2e tests.", - "markdown": "Fixed panic in vSphere e2e tests. ([#115863](https://github.com/kubernetes/kubernetes/pull/115863), [@jsafrane](https://github.com/jsafrane)) [SIG Storage and Testing]", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115863", - "pr_number": 115863, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "115879": { - "commit": "9c5eebaf3f9c713184a3fdf4d61d12d247c60777", - "text": "The `SecurityContextDeny` admission plugin is going deprecated and will be removed in future versions.", - "markdown": "The `SecurityContextDeny` admission plugin is going deprecated and will be removed in future versions. ([#115879](https://github.com/kubernetes/kubernetes/pull/115879), [@mtardy](https://github.com/mtardy))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3785", - "type": "KEP" - }, - { - "description": "[Other doc]", - "url": "https://k8s.io/docs/reference/access-authn-authz/admission-controllers/#securitycontextdeny", - "type": "external" - }, - { - "description": "[Issue]", - "url": "https://github.com/kubernetes/kubernetes/issues/111516", - "type": "external" - } - ], - "author": "mtardy", - "author_url": "https://github.com/mtardy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115879", - "pr_number": 115879, - "kinds": [ - "deprecation" - ], - "sigs": [ - "auth" - ] - }, - "115893": { - "commit": "d788d436c98e26cde800b5dee3c7aa492bc18550", - "text": "Upgraded `go-jose` to `v2.6.0`", - "markdown": "Upgraded `go-jose` to `v2.6.0` ([#115893](https://github.com/kubernetes/kubernetes/pull/115893), [@mgoltzsche](https://github.com/mgoltzsche))", - "author": "mgoltzsche", - "author_url": "https://github.com/mgoltzsche", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115893", - "pr_number": 115893, - "areas": [ - "test", - "apiserver", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "auth", - "testing" - ], - "duplicate": true - }, - "115904": { - "commit": "2225ee5dd307e3a1d4a00b0a7ceae27c0500e005", - "text": "Promoted `CronJobTimeZone` feature to GA", - "markdown": "Promoted `CronJobTimeZone` feature to GA ([#115904](https://github.com/kubernetes/kubernetes/pull/115904), [@soltysh](https://github.com/soltysh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3140", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115904", - "pr_number": 115904, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115905": { - "commit": "5a2922474c3eec800d634097e8ec9884fd07fbc1", - "text": "Updated distroless iptables to use released image `registry.k8s.io/distroless-iptables:v0.2.1`", - "markdown": "Updated distroless iptables to use released image `registry.k8s.io/distroless-iptables:v0.2.1` ([#115905](https://github.com/kubernetes/kubernetes/pull/115905), [@cpanato](https://github.com/cpanato)) [SIG Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115905", - "pr_number": 115905, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true, - "duplicate_kind": true - }, - "115907": { - "commit": "a34f8423a7051cdf2183863f4037bd7a44c9ad6d", - "text": "Fixed an EndpointSlice Controller hashing bug that could cause EndpointSlices to incorrectly handle Pods with duplicate IP addresses. For example this could happen when a new Pod reused an IP that was also assigned to a Pod in a completed state.", - "markdown": "Fixed an EndpointSlice Controller hashing bug that could cause EndpointSlices to incorrectly handle Pods with duplicate IP addresses. For example this could happen when a new Pod reused an IP that was also assigned to a Pod in a completed state. ([#115907](https://github.com/kubernetes/kubernetes/pull/115907), [@qinqon](https://github.com/qinqon)) [SIG Apps and Network]", - "author": "qinqon", - "author_url": "https://github.com/qinqon", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115907", - "pr_number": 115907, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "115919": { - "commit": "39a99710bcd784a89d423c27ce6371109e37c7ea", - "text": "Fixed an issue with Winkernel Proxier - ClusterIP Loadbalancers missing if the `ExternalTrafficPolicy` is set to Local and the available endpoints are all `remoteEndpoints`.", - "markdown": "Fixed an issue with Winkernel Proxier - ClusterIP Loadbalancers missing if the `ExternalTrafficPolicy` is set to Local and the available endpoints are all `remoteEndpoints`. ([#115919](https://github.com/kubernetes/kubernetes/pull/115919), [@princepereira](https://github.com/princepereira))", - "author": "princepereira", - "author_url": "https://github.com/princepereira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115919", - "pr_number": 115919, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true - }, - "115928": { - "commit": "cfb32121c12d7cb20adcdfa5360661207287c9b1", - "text": "`volumes`: `resource.claims` is now cleared for PVC specs during create or update of a pod spec with inline PVC template or of a PVC because it has no effect.", - "markdown": "`volumes`: `resource.claims` is now cleared for PVC specs during create or update of a pod spec with inline PVC template or of a PVC because it has no effect. ([#115928](https://github.com/kubernetes/kubernetes/pull/115928), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115928", - "pr_number": 115928, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "storage", - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "115940": { - "commit": "e519921666b760b782b46a29179997ab97671068", - "text": "Pod template `schedulingGates` are now mutable for Jobs that are suspended and have never been started", - "markdown": "Pod template `schedulingGates` are now mutable for Jobs that are suspended and have never been started ([#115940](https://github.com/kubernetes/kubernetes/pull/115940), [@ahg-g](https://github.com/ahg-g)) [SIG Apps]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/2926-job-mutable-scheduling-directives", - "type": "KEP" - } - ], - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115940", - "pr_number": 115940, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "115944": { - "commit": "0753f0285150d0dcee8a4ea0a4a601ba1e76859e", - "text": "Added a [warning](https://k8s.io/blog/2020/09/03/warnings/) response when handling requests that set the deprecated `spec.externalID` field for a Node.", - "markdown": "Added a [warning](https://k8s.io/blog/2020/09/03/warnings/) response when handling requests that set the deprecated `spec.externalID` field for a Node. ([#115944](https://github.com/kubernetes/kubernetes/pull/115944), [@SataQiu](https://github.com/SataQiu)) [SIG Node]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115944", - "pr_number": 115944, - "kinds": [ - "deprecation" - ], - "sigs": [ - "node" - ] - }, - "115965": { - "commit": "44909771d969eeb3948cb377093d0906d6a2f400", - "text": "Added metrics for volume reconstruction during kubelet startup.", - "markdown": "Added metrics for volume reconstruction during kubelet startup. ([#115965](https://github.com/kubernetes/kubernetes/pull/115965), [@jsafrane](https://github.com/jsafrane)) [SIG Node and Storage]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/3756-volume-reconstruction/README.md", - "type": "KEP" - } - ], - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115965", - "pr_number": 115965, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node" - ], - "feature": true, - "duplicate": true - }, - "115966": { - "commit": "bfc23bbf1967a069a4dfcbed9166c03fe42f6fe5", - "text": "GCE does not support LoadBalancer Services with ports with different protocols (TCP and UDP)", - "markdown": "GCE does not support LoadBalancer Services with ports with different protocols (TCP and UDP) ([#115966](https://github.com/kubernetes/kubernetes/pull/115966), [@aojea](https://github.com/aojea)) [SIG Apps and Cloud Provider]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115966", - "pr_number": 115966, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug", - "cleanup", - "api-change" - ], - "sigs": [ - "apps", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "115967": { - "commit": "c6f3007071d3212417ddab088adc5cc2e388b167", - "text": "Graduated CRI Events driven Pod LifeCycle Event Generator (Evented PLEG) to Beta", - "markdown": "Graduated CRI Events driven Pod LifeCycle Event Generator (Evented PLEG) to Beta ([#115967](https://github.com/kubernetes/kubernetes/pull/115967), [@harche](https://github.com/harche))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3386", - "type": "KEP" - } - ], - "author": "harche", - "author_url": "https://github.com/harche", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115967", - "pr_number": 115967, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "115969": { - "commit": "16d2d55bc06158124a41f3ee8cf567e63ddd9d21", - "text": "Added `messageExpression` field to `ValidationRule`.", - "markdown": "Added `messageExpression` field to `ValidationRule`. ([#115969](https://github.com/kubernetes/kubernetes/pull/115969), [@DangerOnTheRanger](https://github.com/DangerOnTheRanger))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3747", - "type": "KEP" - } - ], - "author": "DangerOnTheRanger", - "author_url": "https://github.com/DangerOnTheRanger", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115969", - "pr_number": 115969, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115973": { - "commit": "04675428bbfc9bf7ba4c9e1abfc427b6228069d9", - "text": "Added `auditAnnotations` to `ValidatingAdmissionPolicy`, enabling CEL to be used to add audit annotations to request audit events.\nAdded `validationActions` to `ValidatingAdmissionPolicyBinding`, enabling validation failures to be handled by any combination of the warn, audit and deny enforcement actions.", - "markdown": "Added `auditAnnotations` to `ValidatingAdmissionPolicy`, enabling CEL to be used to add audit annotations to request audit events.\n Added `validationActions` to `ValidatingAdmissionPolicyBinding`, enabling validation failures to be handled by any combination of the warn, audit and deny enforcement actions. ([#115973](https://github.com/kubernetes/kubernetes/pull/115973), [@jpbetz](https://github.com/jpbetz))", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115973", - "pr_number": 115973, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116010": { - "commit": "b49b34c03a2005a490469bc74b52b94248e83a21", - "text": "HPA controller starts to expose metrics from the kube-controller-manager.\\n- `reconciliations_total`: Number of reconciliation of HPA controller. \\n- `reconciliation_duration_seconds`: The time(seconds) that the HPA controller takes to reconcile once.", - "markdown": "HPA controller starts to expose metrics from the kube-controller-manager.\\n- `reconciliations_total`: Number of reconciliation of HPA controller. \\n- `reconciliation_duration_seconds`: The time(seconds) that the HPA controller takes to reconcile once. ([#116010](https://github.com/kubernetes/kubernetes/pull/116010), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116010", - "pr_number": 116010, - "kinds": [ - "feature" - ], - "sigs": [ - "autoscaling", - "apps", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "116015": { - "commit": "e57d9683230273c989b9686fe166e55c8eb99fcd", - "text": "kubelet: the deprecated `--master-service-namespace` flag is removed in v1.27", - "markdown": "Kubelet: the deprecated `--master-service-namespace` flag is removed in v1.27 ([#116015](https://github.com/kubernetes/kubernetes/pull/116015), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116015", - "pr_number": 116015, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "116018": { - "commit": "ad523879944879449275669bfc13b06aadc06e94", - "text": "Fixed a log line in scheduler that inaccurately implies that volume binding has finalized", - "markdown": "Fixed a log line in scheduler that inaccurately implies that volume binding has finalized ([#116018](https://github.com/kubernetes/kubernetes/pull/116018), [@TommyStarK](https://github.com/TommyStarK))", - "author": "TommyStarK", - "author_url": "https://github.com/TommyStarK", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116018", - "pr_number": 116018, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "storage" - ], - "duplicate": true - }, - "116033": { - "commit": "8cd421163050d6416357d9f6cf860495b067682d", - "text": "NONE", - "markdown": "NONE ([#116033](https://github.com/kubernetes/kubernetes/pull/116033), [@chengjoey](https://github.com/chengjoey))", - "author": "chengjoey", - "author_url": "https://github.com/chengjoey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116033", - "pr_number": 116033, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "do_not_publish": true - }, - "116043": { - "commit": "02a654a635b912f6ca788ae793cf14c975016117", - "text": "From now on, the HPA controller will return an error for the container resource metrics when the feature gate `HPAContainerMetrics` is disabled. As a result, HPA with a container resource metric performs no scale-down and performs only.", - "markdown": "From now on, the HPA controller will return an error for the container resource metrics when the feature gate `HPAContainerMetrics` is disabled. As a result, HPA with a container resource metric performs no scale-down and performs only. ([#116043](https://github.com/kubernetes/kubernetes/pull/116043), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116043", - "pr_number": 116043, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "autoscaling", - "apps" - ], - "duplicate": true - }, - "116046": { - "commit": "d3a7b5920fc4a443c6e48c98478d1eecf8478246", - "text": "Graduated the container resource metrics feature on `HPA` to beta.", - "markdown": "Graduated the container resource metrics feature on `HPA` to beta. ([#116046](https://github.com/kubernetes/kubernetes/pull/116046), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116046", - "pr_number": 116046, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "autoscaling" - ], - "feature": true, - "duplicate_kind": true - }, - "116054": { - "commit": "64259b43b8e5b7c086bf2b74743dc7e73ebe37e3", - "text": "Added authorization check support to the CEL expressions of ValidatingAdmissionPolicy via a `authorizer`\nvariable with expressions. The new variable provides a builder that allows expressions such `authorizer.group('').resource('pods').check('create').allowed()`.", - "markdown": "Added authorization check support to the CEL expressions of ValidatingAdmissionPolicy via a `authorizer`\n variable with expressions. The new variable provides a builder that allows expressions such `authorizer.group('').resource('pods').check('create').allowed()`. ([#116054](https://github.com/kubernetes/kubernetes/pull/116054), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116054", - "pr_number": 116054, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116066": { - "commit": "9d7db7088263c89410aa9b6ef4c5c2043de4b6b0", - "text": "NONE", - "markdown": "NONE ([#116066](https://github.com/kubernetes/kubernetes/pull/116066), [@yoongon](https://github.com/yoongon))", - "author": "yoongon", - "author_url": "https://github.com/yoongon", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116066", - "pr_number": 116066, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "116074": { - "commit": "911631a6e030a24aeb526c425f498334e743b32b", - "text": "kubeadm`: modified `--config` flag from required to optional for `kubeadm kubeconfig user` command", - "markdown": "Kubeadm`: modified `--config` flag from required to optional for `kubeadm kubeconfig user` command ([#116074](https://github.com/kubernetes/kubernetes/pull/116074), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116074", - "pr_number": 116074, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "116089": { - "commit": "5157158d3d86cbe1c03c28171b2428183ee00009", - "text": "Fixed a bug where Kubernetes would apply a default StorageClass to a PersistentVolumeClaim,\neven when the deprecated annotation `volume.beta.kubernetes.io/storage-class` was set.", - "markdown": "Fixed a bug where Kubernetes would apply a default StorageClass to a PersistentVolumeClaim,\n even when the deprecated annotation `volume.beta.kubernetes.io/storage-class` was set. ([#116089](https://github.com/kubernetes/kubernetes/pull/116089), [@cvvz](https://github.com/cvvz)) [SIG Apps and Storage]", - "author": "cvvz", - "author_url": "https://github.com/cvvz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116089", - "pr_number": 116089, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "storage", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "116093": { - "commit": "8d5c96fed213dbaffe2139321f505781889cbb9d", - "text": "Graduated `Kubelet Topology Manager` to GA.", - "markdown": "Graduated `Kubelet Topology Manager` to GA. ([#116093](https://github.com/kubernetes/kubernetes/pull/116093), [@swatisehgal](https://github.com/swatisehgal))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/pull/3745", - "type": "KEP" - } - ], - "author": "swatisehgal", - "author_url": "https://github.com/swatisehgal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116093", - "pr_number": 116093, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116102": { - "commit": "aad305051934350e8f51d57a852a0ba390f97757", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#116102](https://github.com/kubernetes/kubernetes/pull/116102), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps]", - "author": "danielvegamyhre", - "author_url": "https://github.com/danielvegamyhre", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116102", - "pr_number": 116102, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ], - "do_not_publish": true - }, - "116108": { - "commit": "d8fe8454157cfcc79dba292e67c6919be36b6266", - "text": "Promote aggregated discovery endpoint to beta and it will be enabled by default", - "markdown": "Promote aggregated discovery endpoint to beta and it will be enabled by default ([#116108](https://github.com/kubernetes/kubernetes/pull/116108), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116108", - "pr_number": 116108, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "116116": { - "commit": "6e202d6fdb197ad1fd98b6bb8e6388b2a023a6d4", - "text": "The `JobMutableNodeSchedulingDirectives` feature gate has graduated to GA.", - "markdown": "The `JobMutableNodeSchedulingDirectives` feature gate has graduated to GA. ([#116116](https://github.com/kubernetes/kubernetes/pull/116116), [@ahg-g](https://github.com/ahg-g)) [SIG Apps, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/2926-job-mutable-scheduling-directives", - "type": "KEP" - } - ], - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116116", - "pr_number": 116116, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "116119": { - "commit": "9053b5dc2c8e0b977e759b9f076d1a52bafabbb7", - "text": "None", - "markdown": "None ([#116119](https://github.com/kubernetes/kubernetes/pull/116119), [@vinaykul](https://github.com/vinaykul))", - "author": "vinaykul", - "author_url": "https://github.com/vinaykul", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116119", - "pr_number": 116119, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "node", - "api-machinery", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "116121": { - "commit": "fe6a51ed4c013e6b5cdb90f9cced8e1381fc0310", - "text": "Bump default API QPS limits for Kubelet.", - "markdown": "Bump default API QPS limits for Kubelet. ([#116121](https://github.com/kubernetes/kubernetes/pull/116121), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116121", - "pr_number": 116121, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116144": { - "commit": "548e856b5820bb19a08f48211bad6d010b77de10", - "text": "`APIServerTracing` feature gate is now enabled by default. Tracing in the API\nServer is still disabled by default, and requires a config file to enable.", - "markdown": "`APIServerTracing` feature gate is now enabled by default. Tracing in the API\n Server is still disabled by default, and requires a config file to enable. ([#116144](https://github.com/kubernetes/kubernetes/pull/116144), [@dashpole](https://github.com/dashpole))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/bddca24910fb349e2eb0ac1c822c77f0f32fe9c6/keps/sig-instrumentation/647-apiserver-tracing/README.md", - "type": "KEP" - } - ], - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116144", - "pr_number": 116144, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116155": { - "commit": "4950f519039918c5f247a4cec7cf5b824bb16c92", - "text": "The API server now re-uses data encryption keys while the kms v2 plugin key ID is stable. Data encryption keys are still randomly generated on server start but an atomic counter is used to prevent nonce collisions.", - "markdown": "The API server now re-uses data encryption keys while the kms v2 plugin key ID is stable. Data encryption keys are still randomly generated on server start but an atomic counter is used to prevent nonce collisions. ([#116155](https://github.com/kubernetes/kubernetes/pull/116155), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116155", - "pr_number": 116155, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116161": { - "commit": "0010333bdd882e50dabfa6caebed805f89554fbb", - "text": "Relaxed API validation to allow pod node selector to be mutable for gated pods (additions only, no deletions or mutations).", - "markdown": "Relaxed API validation to allow pod node selector to be mutable for gated pods (additions only, no deletions or mutations). ([#116161](https://github.com/kubernetes/kubernetes/pull/116161), [@danielvegamyhre](https://github.com/danielvegamyhre))", - "documentation": [ - { - "description": "[KEP](", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3838-pod-mutable-scheduling-directives)", - "type": "KEP" - } - ], - "author": "danielvegamyhre", - "author_url": "https://github.com/danielvegamyhre", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116161", - "pr_number": 116161, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116167": { - "commit": "e28b191581195f237d21c0efff19b453f7dc3016", - "text": "When GCing pods, `kube-controller-manager` will delete Evicted pods first.", - "markdown": "When GCing pods, `kube-controller-manager` will delete Evicted pods first. ([#116167](https://github.com/kubernetes/kubernetes/pull/116167), [@borgerli](https://github.com/borgerli))", - "author": "borgerli", - "author_url": "https://github.com/borgerli", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116167", - "pr_number": 116167, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "116171": { - "commit": "d446bebca8008ff8ba8906c76647c0ae40dbb6f0", - "text": "None", - "markdown": "None ([#116171](https://github.com/kubernetes/kubernetes/pull/116171), [@daman1807](https://github.com/daman1807))", - "author": "daman1807", - "author_url": "https://github.com/daman1807", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116171", - "pr_number": 116171, - "areas": [ - "ipvs" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "116172": { - "commit": "856d6d9caaae7793795b87c7ffdef1a6f7f7c113", - "text": "Fixed a rare race condition in `kube-apiserver` that could lead to missing events when a watch API request was created at the same time `kube-apiserver` was re-initializing its internal watch.", - "markdown": "Fixed a rare race condition in `kube-apiserver` that could lead to missing events when a watch API request was created at the same time `kube-apiserver` was re-initializing its internal watch. ([#116172](https://github.com/kubernetes/kubernetes/pull/116172), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116172", - "pr_number": 116172, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "116201": { - "commit": "a32050e6cbe600f55854d86dc951479963d6033f", - "text": "The scheduler's metric `plugin_execution_duration_seconds` now records `PreEnqueue` plugins execution seconds.", - "markdown": "The scheduler's metric `plugin_execution_duration_seconds` now records `PreEnqueue` plugins execution seconds. ([#116201](https://github.com/kubernetes/kubernetes/pull/116201), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116201", - "pr_number": 116201, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "116205": { - "commit": "4fbfe11b89c3a2151f6b778bf404a668f35a63bb", - "text": "Since Kubernetes v1.5, `kubectl apply` has had an alpha-stage `--prune` flag to support deleting previously applied objects that have been removed from the input manifest. This feature has remained in alpha ever since due to performance and correctness issues inherent in its design. This PR exposes a second, independent pruning alpha powered by a new standard named `ApplySets`. An `ApplySet` is a server-side object (by default, a Secret; ConfigMaps are also allowed) that kubectl can use to accurately and efficiently track set membership across `apply` operations. The format used for `ApplySet` is set out in [KEP 3659](https://github.com/kubernetes/enhancements/issues/3659) as a low-level specification. Other tools in the ecosystem can also build on this specification for improved interoperability. To try the ApplySet-based pruning alpha, set `KUBECTL_APPLYSET=true` and use the flags `--prune --applyset=secret-name` with `kubectl apply`.", - "markdown": "Since Kubernetes v1.5, `kubectl apply` has had an alpha-stage `--prune` flag to support deleting previously applied objects that have been removed from the input manifest. This feature has remained in alpha ever since due to performance and correctness issues inherent in its design. This PR exposes a second, independent pruning alpha powered by a new standard named `ApplySets`. An `ApplySet` is a server-side object (by default, a Secret; ConfigMaps are also allowed) that kubectl can use to accurately and efficiently track set membership across `apply` operations. The format used for `ApplySet` is set out in [KEP 3659](https://github.com/kubernetes/enhancements/issues/3659) as a low-level specification. Other tools in the ecosystem can also build on this specification for improved interoperability. To try the ApplySet-based pruning alpha, set `KUBECTL_APPLYSET=true` and use the flags `--prune --applyset=secret-name` with `kubectl apply`. ([#116205](https://github.com/kubernetes/kubernetes/pull/116205), [@justinsb](https://github.com/justinsb))", - "author": "justinsb", - "author_url": "https://github.com/justinsb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116205", - "pr_number": 116205, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "116219": { - "commit": "4401af2c3ef213a3b3d9b45e3fc33273f36c6f11", - "text": "`kube-controller-manager`: fixed a bug that the `kubeconfig` field of `kubecontrollermanager.config.k8s.io` configuration is not populated correctly", - "markdown": "`kube-controller-manager`: fixed a bug that the `kubeconfig` field of `kubecontrollermanager.config.k8s.io` configuration is not populated correctly ([#116219](https://github.com/kubernetes/kubernetes/pull/116219), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116219", - "pr_number": 116219, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "duplicate": true - }, - "116233": { - "commit": "6260796b632375efc1950cf5f3d5a95cc760238e", - "text": "gRPC probes are now a GA feature. `GRPCContainerProbe` feature gate was locked to default value and will be removed in v1.29. If you were setting this feature gate explicitly, please remove it now.", - "markdown": "GRPC probes are now a GA feature. `GRPCContainerProbe` feature gate was locked to default value and will be removed in v1.29. If you were setting this feature gate explicitly, please remove it now. ([#116233](https://github.com/kubernetes/kubernetes/pull/116233), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116233", - "pr_number": 116233, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116235": { - "commit": "4a896644de963d87bd863efc4e3ebd9984161e8d", - "text": "Promoted `OpenAPIV3` to GA", - "markdown": "Promoted `OpenAPIV3` to GA ([#116235](https://github.com/kubernetes/kubernetes/pull/116235), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116235", - "pr_number": 116235, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "116255": { - "commit": "ff27ccfabc778b46d42b746466c1004f922ccda4", - "text": "'The `IPv6DualStack` feature gate for external cloud providers was removed.\n(The feature became GA in 1.23 and the gate was removed for all other\ncomponents several releases ago.) If you were still manually\nenabling it you must stop now.'", - "markdown": "'The `IPv6DualStack` feature gate for external cloud providers was removed.\n (The feature became GA in 1.23 and the gate was removed for all other\n components several releases ago.) If you were still manually\n enabling it you must stop now.' ([#116255](https://github.com/kubernetes/kubernetes/pull/116255), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116255", - "pr_number": 116255, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "api-machinery", - "cloud-provider" - ], - "duplicate": true, - "action_required": true - }, - "116261": { - "commit": "5e5b3029f3bbfc93c3569f07ad300a5c6057fc58", - "text": "Added the `MatchConditions` field to `ValidatingWebhookConfiguration` and `MutatingWebhookConfiguration` for the v1beta and v1 apis. \n\nThe `AdmissionWebhookMatchConditions` featuregate is now in Alpha", - "markdown": "Added the `MatchConditions` field to `ValidatingWebhookConfiguration` and `MutatingWebhookConfiguration` for the v1beta and v1 apis. \n \n The `AdmissionWebhookMatchConditions` featuregate is now in Alpha ([#116261](https://github.com/kubernetes/kubernetes/pull/116261), [@ivelichkovich](https://github.com/ivelichkovich)) [SIG API Machinery and Testing]", - "documentation": [ - { - "description": "[\u003clink\u003e](", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3716-admission-webhook-match-conditions)", - "type": "KEP" - } - ], - "author": "ivelichkovich", - "author_url": "https://github.com/ivelichkovich", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116261", - "pr_number": 116261, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116274": { - "commit": "c1431af4f83b2b06a581f23806ee12a0663fed3b", - "text": "Promoted `SelfSubjectReview` to Beta", - "markdown": "Promoted `SelfSubjectReview` to Beta ([#116274](https://github.com/kubernetes/kubernetes/pull/116274), [@nabokihms](https://github.com/nabokihms)) [SIG API Machinery, Auth, CLI and Testing]", - "author": "nabokihms", - "author_url": "https://github.com/nabokihms", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116274", - "pr_number": 116274, - "areas": [ - "test", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116287": { - "commit": "89d1a7971ea55c2f495d78edf106dfe43d8ca144", - "text": "NONE", - "markdown": "NONE ([#116287](https://github.com/kubernetes/kubernetes/pull/116287), [@csDengh](https://github.com/csDengh))", - "author": "csDengh", - "author_url": "https://github.com/csDengh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116287", - "pr_number": 116287, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "116291": { - "commit": "7a4c4eaae7a7295d5969734446bc4077d9fe848f", - "text": "Graduated `matchLabelKeys` in `podTopologySpread` to Beta", - "markdown": "Graduated `matchLabelKeys` in `podTopologySpread` to Beta ([#116291](https://github.com/kubernetes/kubernetes/pull/116291), [@denkensk](https://github.com/denkensk))", - "author": "denkensk", - "author_url": "https://github.com/denkensk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116291", - "pr_number": 116291, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "116293": { - "commit": "a901bb630b5a353898c1b35df582a7faeef160a0", - "text": "Enable external plugins can be used as subcommands for kubectl create command if subcommand does not exist as builtin only when KUBECTL_ENABLE_CMD_SHADOW environment variable is exported.", - "markdown": "Enable external plugins can be used as subcommands for kubectl create command if subcommand does not exist as builtin only when KUBECTL_ENABLE_CMD_SHADOW environment variable is exported. ([#116293](https://github.com/kubernetes/kubernetes/pull/116293), [@ardaguclu](https://github.com/ardaguclu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3638-kubectl-plugin-subcommands", - "type": "KEP" - } - ], - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116293", - "pr_number": 116293, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "116299": { - "commit": "0e06be57a65792ad5744b5ddf6abe95dd20ac773", - "text": "`resource.k8s.io/v1alpha1` was replaced with `resource.k8s.io/v1alpha2`. Before\nupgrading a cluster, all objects in resource.k8s.io/v1alpha1 (ResourceClaim, ResourceClaimTemplate,\nResourceClass, PodScheduling) must be deleted. The changes are internal, so\nYAML files which create pods and resource claims don't need changes except for\nthe newer `apiVersion`.", - "markdown": "`resource.k8s.io/v1alpha1` was replaced with `resource.k8s.io/v1alpha2`. Before\n upgrading a cluster, all objects in resource.k8s.io/v1alpha1 (ResourceClaim, ResourceClaimTemplate,\n ResourceClass, PodScheduling) must be deleted. The changes are internal, so\n YAML files which create pods and resource claims don't need changes except for\n the newer `apiVersion`. ([#116299](https://github.com/kubernetes/kubernetes/pull/116299), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116299", - "pr_number": 116299, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "apps", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "116301": { - "commit": "3106a5c553e0682f33e1d6c1af34e333d157c1d6", - "text": "Removed Azure disk in-tree storage plugin", - "markdown": "Removed Azure disk in-tree storage plugin ([#116301](https://github.com/kubernetes/kubernetes/pull/116301), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116301", - "pr_number": 116301, - "areas": [ - "test", - "kubelet", - "provider/azure", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "api-machinery", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "116305": { - "commit": "a4302915c9d4d70b5e8769a125fa2dee946bbdfb", - "text": "By enabling the alpha `CloudNodeIPs` feature gate in kubelet and the cloud\nprovider, you can now specify a dual-stack `--node-ip` value (when using an\nexternal cloud provider that supports that functionality).", - "markdown": "By enabling the alpha `CloudNodeIPs` feature gate in kubelet and the cloud\n provider, you can now specify a dual-stack `--node-ip` value (when using an\n external cloud provider that supports that functionality). ([#116305](https://github.com/kubernetes/kubernetes/pull/116305), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Cloud Provider, Network and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3705", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116305", - "pr_number": 116305, - "areas": [ - "kubelet", - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "node", - "api-machinery", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "116320": { - "commit": "83334ccaa1aebfd0089968c22fca5d9ee5ffb56e", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\nNone\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n None\n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#116320](https://github.com/kubernetes/kubernetes/pull/116320), [@wangchen615](https://github.com/wangchen615)) [SIG Node, Scheduling and Testing]", - "author": "wangchen615", - "author_url": "https://github.com/wangchen615", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116320", - "pr_number": 116320, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "node", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "116326": { - "commit": "51471fa350b2db25554663324e140f1b49b6aaaa", - "text": "HPA controller exposes the following metrics from the kube-controller-manager.\n- `metric_computation_duration_seconds`: Number of metric computations. \n- `metric_computation_total`: The time(seconds) that the HPA controller takes to calculate one metric.", - "markdown": "HPA controller exposes the following metrics from the kube-controller-manager.\n - `metric_computation_duration_seconds`: Number of metric computations. \n - `metric_computation_total`: The time(seconds) that the HPA controller takes to calculate one metric. ([#116326](https://github.com/kubernetes/kubernetes/pull/116326), [@sanposhiho](https://github.com/sanposhiho)) [SIG Apps, Autoscaling and Instrumentation]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116326", - "pr_number": 116326, - "kinds": [ - "feature" - ], - "sigs": [ - "autoscaling", - "apps", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "116329": { - "commit": "03ff890ef47a7dd0d207f09bda963d5d970a7535", - "text": "Removed AWS kubelet credential provider. Please use the external kubelet credential provider binary named `ecr-credential-provider` instead.", - "markdown": "Removed AWS kubelet credential provider. Please use the external kubelet credential provider binary named `ecr-credential-provider` instead. ([#116329](https://github.com/kubernetes/kubernetes/pull/116329), [@dims](https://github.com/dims)) [SIG Node, Storage and Testing]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116329", - "pr_number": 116329, - "areas": [ - "test", - "kubelet", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "node", - "testing" - ], - "duplicate": true - }, - "116332": { - "commit": "ae36991498282514da3fe771b0dd9de66b991c86", - "text": "Introduced a breaking change to the `resource.k8s.io` API in its `AllocationResult` struct. This change allows a kubelet plugin for the `DynamicResourceAllocation` feature to service allocations from multiple resource driver controllers.", - "markdown": "Introduced a breaking change to the `resource.k8s.io` API in its `AllocationResult` struct. This change allows a kubelet plugin for the `DynamicResourceAllocation` feature to service allocations from multiple resource driver controllers. ([#116332](https://github.com/kubernetes/kubernetes/pull/116332), [@klueska](https://github.com/klueska))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3802", - "type": "KEP" - } - ], - "author": "klueska", - "author_url": "https://github.com/klueska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116332", - "pr_number": 116332, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "apps", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "116342": { - "commit": "8b413d224a9422a1163f3779055a1aad21794813", - "text": "Unlocked the `CSIMigrationvSphere` feature gate.\nThe change allow users to continue using the in-tree vSphere driver,pending a vSphere\nCSI driver release that has with GA support for Windows, XFS, and raw block access.", - "markdown": "Unlocked the `CSIMigrationvSphere` feature gate.\n The change allow users to continue using the in-tree vSphere driver,pending a vSphere\n CSI driver release that has with GA support for Windows, XFS, and raw block access. ([#116342](https://github.com/kubernetes/kubernetes/pull/116342), [@msau42](https://github.com/msau42)) [SIG Storage]", - "author": "msau42", - "author_url": "https://github.com/msau42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116342", - "pr_number": 116342, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true - }, - "116350": { - "commit": "e5fd204c33e90a7e8f5a0ee70242f1296a5ec7af", - "text": "Added matchConditions field to ValidatingAdmissionPolicy and enabled support for CEL based custom match criteria.", - "markdown": "Added matchConditions field to ValidatingAdmissionPolicy and enabled support for CEL based custom match criteria. ([#116350](https://github.com/kubernetes/kubernetes/pull/116350), [@maxsmythe](https://github.com/maxsmythe))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/e80ad39a21e6f1be90e2d514fb33df34fd496814/keps/sig-api-machinery/3488-cel-admission-control#match-conditions", - "type": "KEP" - } - ], - "author": "maxsmythe", - "author_url": "https://github.com/maxsmythe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116350", - "pr_number": 116350, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116351": { - "commit": "2bd69db8d7b71740aee7dd80a173133743b3dd9b", - "text": "NONE", - "markdown": "NONE ([#116351](https://github.com/kubernetes/kubernetes/pull/116351), [@vinaykul](https://github.com/vinaykul))", - "author": "vinaykul", - "author_url": "https://github.com/vinaykul", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116351", - "pr_number": 116351, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "116353": { - "commit": "480a0c2c3601a54be0679f078c819ba6f887553f", - "text": "[alpha: kubectl apply --prune --applyset] Enabled certain custom resources (CRs) to be used as `ApplySet` parent objects. To enable this for a given CR, apply the label `applyset.kubernetes.io/is-parent-type: true` to the CustomResourceDefinition (CRD) that defines it.", - "markdown": "[alpha: kubectl apply --prune --applyset] Enabled certain custom resources (CRs) to be used as `ApplySet` parent objects. To enable this for a given CR, apply the label `applyset.kubernetes.io/is-parent-type: true` to the CustomResourceDefinition (CRD) that defines it. ([#116353](https://github.com/kubernetes/kubernetes/pull/116353), [@KnVerey](https://github.com/KnVerey))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/42a4b1c8a18780cf1d5c2460113d59b246002548/keps/sig-cli/3659-kubectl-apply-prune", - "type": "KEP" - } - ], - "author": "KnVerey", - "author_url": "https://github.com/KnVerey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116353", - "pr_number": 116353, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "116377": { - "commit": "6a111bebe2a609589c560ef1ce5431e3f04ac945", - "text": "By enabling the `UserNamespacesStatelessPodsSupport` feature gate in kubelet, you can now run a stateless pod in a separate user namespace", - "markdown": "By enabling the `UserNamespacesStatelessPodsSupport` feature gate in kubelet, you can now run a stateless pod in a separate user namespace ([#116377](https://github.com/kubernetes/kubernetes/pull/116377), [@giuseppe](https://github.com/giuseppe)) [SIG Apps, Node and Storage]", - "author": "giuseppe", - "author_url": "https://github.com/giuseppe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116377", - "pr_number": 116377, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "apps" - ], - "feature": true, - "duplicate": true - }, - "116390": { - "commit": "900278dd415baf686a4964ce0c9b60782996c95c", - "text": "Switched kubectl explain to use OpenAPIV3 information published by the server. OpenAPIV2 backend can still be used with the `--output plaintext-openapiv2` argument", - "markdown": "Switched kubectl explain to use OpenAPIV3 information published by the server. OpenAPIV2 backend can still be used with the `--output plaintext-openapiv2` argument ([#116390](https://github.com/kubernetes/kubernetes/pull/116390), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery, CLI and Testing]", - "documentation": [ - { - "description": "[KEP] 3515 OpenAPI v3 for kubectl explain", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3515-kubectl-explain-openapiv3", - "type": "KEP" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116390", - "pr_number": 116390, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "116395": { - "commit": "8b3d529523338b82d6ea8972a9b14f7c3d5339ad", - "text": "Fixed data race in `kube-scheduler` when preemption races with a Pod update.", - "markdown": "Fixed data race in `kube-scheduler` when preemption races with a Pod update. ([#116395](https://github.com/kubernetes/kubernetes/pull/116395), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling]", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116395", - "pr_number": 116395, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "116397": { - "commit": "6b3e2b7873f8518b95f5b09fa04f5f316669c7b2", - "text": "Added `messageExpression` to `ValidatingAdmissionPolicy`, to set custom failure message via CEL expression.", - "markdown": "Added `messageExpression` to `ValidatingAdmissionPolicy`, to set custom failure message via CEL expression. ([#116397](https://github.com/kubernetes/kubernetes/pull/116397), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery]", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116397", - "pr_number": 116397, - "areas": [ - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery" - ] - }, - "116404": { - "commit": "f02da82e3664671ee33658a8699c731e51d47168", - "text": "Kubernetes is now built with go 1.20.2", - "markdown": "Kubernetes is now built with go 1.20.2 ([#116404](https://github.com/kubernetes/kubernetes/pull/116404), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116404", - "pr_number": 116404, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "116420": { - "commit": "ee18f602523e11a80823a659bed8f70f98a12914", - "text": "Updated `kube-apiserver` SLO/SLI latency metrics to exclude priority \u0026 fairness queue wait times", - "markdown": "Updated `kube-apiserver` SLO/SLI latency metrics to exclude priority \u0026 fairness queue wait times ([#116420](https://github.com/kubernetes/kubernetes/pull/116420), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116420", - "pr_number": 116420, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "116425": { - "commit": "f7bcff44cd7bd1ac71d5607cdd0ceea061051417", - "text": "`SELinuxMountReadWriteOncePod` graduated to Beta.", - "markdown": "`SELinuxMountReadWriteOncePod` graduated to Beta. ([#116425](https://github.com/kubernetes/kubernetes/pull/116425), [@jsafrane](https://github.com/jsafrane))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling", - "type": "KEP" - } - ], - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116425", - "pr_number": 116425, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116428": { - "commit": "c67953a2d0255c8c4f5e315b93f28ab599c428e5", - "text": "Fixed performance regression in scheduler caused by frequent metric lookup on critical code path.", - "markdown": "Fixed performance regression in scheduler caused by frequent metric lookup on critical code path. ([#116428](https://github.com/kubernetes/kubernetes/pull/116428), [@mborsz](https://github.com/mborsz)) [SIG Scheduling]", - "author": "mborsz", - "author_url": "https://github.com/mborsz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116428", - "pr_number": 116428, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true - }, - "116436": { - "commit": "36b29b38bb3f38db3439bdf568cad1f856998b0a", - "text": "Fixed incorrect watch events when a watch is initialized simultanously with a reinitializing watchcache.", - "markdown": "Fixed incorrect watch events when a watch is initialized simultanously with a reinitializing watchcache. ([#116436](https://github.com/kubernetes/kubernetes/pull/116436), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116436", - "pr_number": 116436, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "116450": { - "commit": "3c6e419cc3e364e0fce874e6c51ca058f1b9daab", - "text": "NONE", - "markdown": "NONE ([#116450](https://github.com/kubernetes/kubernetes/pull/116450), [@vinaykul](https://github.com/vinaykul))", - "author": "vinaykul", - "author_url": "https://github.com/vinaykul", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116450", - "pr_number": 116450, - "areas": [ - "test", - "kubelet", - "release-eng", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "apps", - "testing", - "release" - ], - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "116459": { - "commit": "204a9a1f1716bfc9bbeec9335df9055dad1ea0e4", - "text": "Added basic Denial Of Service prevention for the the node-local kubelet `podresource` API", - "markdown": "Added basic Denial Of Service prevention for the the node-local kubelet `podresource` API ([#116459](https://github.com/kubernetes/kubernetes/pull/116459), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/606-compute-device-assignment/README.md", - "type": "KEP" - } - ], - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116459", - "pr_number": 116459, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "116500": { - "commit": "ead7d66ee12656cfb7c633dd42a87f8d9cfaa469", - "text": "NONE", - "markdown": "NONE ([#116500](https://github.com/kubernetes/kubernetes/pull/116500), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116500", - "pr_number": 116500, - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ], - "do_not_publish": true - }, - "116501": { - "commit": "cd56332d060b8844c8940e2e984e4a82165ae9d2", - "text": "`StatefulSetAutoDeletePVC` feature gate promoted to beta.", - "markdown": "`StatefulSetAutoDeletePVC` feature gate promoted to beta. ([#116501](https://github.com/kubernetes/kubernetes/pull/116501), [@mattcary](https://github.com/mattcary))", - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116501", - "pr_number": 116501, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116509": { - "commit": "f944743953e55073e14eaf1db8f15f57a3e04a4e", - "text": "Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.2`\n- Updated setcap to use released image `registry.k8s.io/build-image/setcap:bullseye-v1.4.2`", - "markdown": "Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.2`\n - Updated setcap to use released image `registry.k8s.io/build-image/setcap:bullseye-v1.4.2` ([#116509](https://github.com/kubernetes/kubernetes/pull/116509), [@cpanato](https://github.com/cpanato)) [SIG Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116509", - "pr_number": 116509, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - }, - "116510": { - "commit": "4a7ba056911dd822917b00ecc4b6fa77e721bbd5", - "text": "Promoted `whoami` kubectl command.", - "markdown": "Promoted `whoami` kubectl command. ([#116510](https://github.com/kubernetes/kubernetes/pull/116510), [@nabokihms](https://github.com/nabokihms))", - "author": "nabokihms", - "author_url": "https://github.com/nabokihms", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116510", - "pr_number": 116510, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "cli" - ], - "feature": true, - "duplicate": true - }, - "116522": { - "commit": "c0ef73222f96b866138ce3c9e8f910a0a4cbfdfe", - "text": "New `service.kubernetes.io/topology-mode` annotation has been introduced as a replacement for the `service.kubernetes.io/topology-aware-hints` annotation.\n- `service.kubernetes.io/topology-aware-hints` annotation has been deprecated.\n- kube-proxy now accepts any value that is not \"disabled\" for these annotations, enabling custom implementation-specific and/or future built-in heuristics to be used.", - "markdown": "New `service.kubernetes.io/topology-mode` annotation has been introduced as a replacement for the `service.kubernetes.io/topology-aware-hints` annotation.\n - `service.kubernetes.io/topology-aware-hints` annotation has been deprecated.\n - kube-proxy now accepts any value that is not \"disabled\" for these annotations, enabling custom implementation-specific and/or future built-in heuristics to be used. ([#116522](https://github.com/kubernetes/kubernetes/pull/116522), [@robscott](https://github.com/robscott)) [SIG Apps, Network and Testing]", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116522", - "pr_number": 116522, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116523": { - "commit": "3b1fc60d8010dd8b53e97ba80e4710dbb430beee", - "text": "storage.k8s.io/v1beta1 API version of CSIStorageCapacity will no longer be served", - "markdown": "Storage.k8s.io/v1beta1 API version of CSIStorageCapacity will no longer be served ([#116523](https://github.com/kubernetes/kubernetes/pull/116523), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116523", - "pr_number": 116523, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "116529": { - "commit": "27e23bad7d595f64519de70f1a82539d14327a28", - "text": "Migrated the main kube-controller-manager binary to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the main kube-controller-manager binary to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116529](https://github.com/kubernetes/kubernetes/pull/116529), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116529", - "pr_number": 116529, - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "apps" - ], - "feature": true, - "duplicate": true - }, - "116533": { - "commit": "ab5100893a78c154ac4f9c22255507cf523debb0", - "text": "NONE", - "markdown": "NONE ([#116533](https://github.com/kubernetes/kubernetes/pull/116533), [@ameukam](https://github.com/ameukam))", - "author": "ameukam", - "author_url": "https://github.com/ameukam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116533", - "pr_number": 116533, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "k8s-infra" - ], - "duplicate": true, - "do_not_publish": true - }, - "116535": { - "commit": "f2e1a67c05b25c1031fd26eee479001a13bde2c9", - "text": "forbid to set matchLabelKeys when labelSelector is not set in topologySpreadConstraints", - "markdown": "Forbid to set matchLabelKeys when labelSelector is not set in topologySpreadConstraints ([#116535](https://github.com/kubernetes/kubernetes/pull/116535), [@denkensk](https://github.com/denkensk))", - "author": "denkensk", - "author_url": "https://github.com/denkensk", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116535", - "pr_number": 116535, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "scheduling", - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "116546": { - "commit": "34acfb877ad151918db586245f21e832121675e2", - "text": "Potentially breaking change - Updating the polling interval for Windows stats collection from 1 second to 10 seconds", - "markdown": "Potentially breaking change - Updating the polling interval for Windows stats collection from 1 second to 10 seconds ([#116546](https://github.com/kubernetes/kubernetes/pull/116546), [@marosset](https://github.com/marosset)) [SIG Node and Windows]", - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116546", - "pr_number": 116546, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true - }, - "116550": { - "commit": "15894cfc85cab64df081bb753b8ccf32a243da68", - "text": "Fixed a regression in the pod binding subresource to honor the `metadata.uid` precondition.\nThis allows kube-scheduler to ensure it is assigns node names to the same instances of pods it made scheduling decisions for.", - "markdown": "Fixed a regression in the pod binding subresource to honor the `metadata.uid` precondition.\n This allows kube-scheduler to ensure it is assigns node names to the same instances of pods it made scheduling decisions for. ([#116550](https://github.com/kubernetes/kubernetes/pull/116550), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116550", - "pr_number": 116550, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "116551": { - "commit": "fa5253976c4c03dee6eab03b93cfc3fa2c841e59", - "text": "make test-e2e-node PARALLELISM=1 FOCUS=\"StandaloneMode\" \\\nTEST_ARGS='\\\n --kubelet-flags=\"--fail-swap-on=false\" \\\n --standalone-mode=true \\\n'", - "markdown": "Make test-e2e-node PARALLELISM=1 FOCUS=\"StandaloneMode\" \\\n TEST_ARGS='\\\n --kubelet-flags=\"--fail-swap-on=false\" \\\n --standalone-mode=true \\\n ' ([#116551](https://github.com/kubernetes/kubernetes/pull/116551), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node and Testing]", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116551", - "pr_number": 116551, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "do_not_publish": true - }, - "116554": { - "commit": "fe91bc257b505eb6057eb50b9c550a7c63e9fb91", - "text": "Fixed two regressions introduced by the `PodDisruptionConditions` feature (on by default in 1.26):\n- pod eviction API calls returned spurious precondition errors and required a second evict API call to succeed\n- dry-run eviction API calls persisted a DisruptionTarget condition into the pod being evicted", - "markdown": "Fixed two regressions introduced by the `PodDisruptionConditions` feature (on by default in 1.26):\n - pod eviction API calls returned spurious precondition errors and required a second evict API call to succeed\n - dry-run eviction API calls persisted a DisruptionTarget condition into the pod being evicted ([#116554](https://github.com/kubernetes/kubernetes/pull/116554), [@atiratree](https://github.com/atiratree))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/issues/3329", - "type": "KEP" - } - ], - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116554", - "pr_number": 116554, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "116556": { - "commit": "fbfc887a097b2f7cddd065deacbff03abf0bfef6", - "text": "API: resource.k8s.io/v1alpha1.PodScheduling was renamed to resource.k8s.io/v1alpha2.PodSchedulingContext.", - "markdown": "API: resource.k8s.io/v1alpha1.PodScheduling was renamed to resource.k8s.io/v1alpha2.PodSchedulingContext. ([#116556](https://github.com/kubernetes/kubernetes/pull/116556), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116556", - "pr_number": 116556, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "auth", - "apps", - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "116558": { - "commit": "815b1bf0d8f9775ff9b180a2faab928814c4ff81", - "text": "Removed support for the `v1alpha1` kubeletplugin API of `DynamicResourceManagement`. All plugins must be updated to `v1alpha2` in order to function properly.", - "markdown": "Removed support for the `v1alpha1` kubeletplugin API of `DynamicResourceManagement`. All plugins must be updated to `v1alpha2` in order to function properly. ([#116558](https://github.com/kubernetes/kubernetes/pull/116558), [@klueska](https://github.com/klueska))", - "author": "klueska", - "author_url": "https://github.com/klueska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116558", - "pr_number": 116558, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "apps", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "116571": { - "commit": "e660a1702b4955402d629ce518d66b9de1fb1b09", - "text": "Migrated the defaultbinder scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the defaultbinder scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116571](https://github.com/kubernetes/kubernetes/pull/116571), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116571", - "pr_number": 116571, - "areas": [ - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "116576": { - "commit": "f315a4669a5b7a29328e2e98401ebd559d620b60", - "text": "api: validation of a `PodSpec` now rejects invalid `ResourceClaim` and `ResourceClaimTemplate` names. For a pod, the name generated for the `ResourceClaim` when using a template also must be valid.", - "markdown": "Api: validation of a `PodSpec` now rejects invalid `ResourceClaim` and `ResourceClaimTemplate` names. For a pod, the name generated for the `ResourceClaim` when using a template also must be valid. ([#116576](https://github.com/kubernetes/kubernetes/pull/116576), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116576", - "pr_number": 116576, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "116590": { - "commit": "abb632866172ef68baa983afe678f0a4888d8077", - "text": "Added e2e tests for kubectl `--subresource` for beta graduation", - "markdown": "Added e2e tests for kubectl `--subresource` for beta graduation ([#116590](https://github.com/kubernetes/kubernetes/pull/116590), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/2590-kubectl-subresource", - "type": "KEP" - } - ], - "author": "MadhavJivrajani", - "author_url": "https://github.com/MadhavJivrajani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116590", - "pr_number": 116590, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "116595": { - "commit": "9c2d28f7d55a5210d02b9a3c7dc6449b9e125340", - "text": "Changed kubectl `--subresource` flag to beta", - "markdown": "Changed kubectl `--subresource` flag to beta ([#116595](https://github.com/kubernetes/kubernetes/pull/116595), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/2590-kubectl-subresource", - "type": "KEP" - } - ], - "author": "MadhavJivrajani", - "author_url": "https://github.com/MadhavJivrajani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116595", - "pr_number": 116595, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "116598": { - "commit": "6df64241d03cdf0c26137fceda3c39cb9775178c", - "text": "Upgrades functionality of `kubectl kustomize` as described at\nhttps://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.0 and https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.1. \n\nThis is a new major release of kustomize, so there are a few backwards-incompatible changes, most of which are rare use cases, bug fixes with side effects, or things that have been deprecated for multiple releases already:\n\n- https://github.com/kubernetes-sigs/kustomize/pull/4911: Drop support for a very old, legacy style of patches. patches used to be allowed to be used as an alias for patchesStrategicMerge in kustomize v3. You now have to use patchesStrategicMerge explicitly, or update to the new syntax supported by patches. See examples in the PR description of https://github.com/kubernetes-sigs/kustomize/pull/4911.\n- https://github.com/kubernetes-sigs/kustomize/issues/4731: Remove a potential build-time side-effect in ConfigMapGenerator and SecretGenerator, which loaded values from the local environment under some circumstances, breaking kustomize build's side-effect-free promise. While this behavior was never intended, we deprecated it and are announcing it as a breaking change since it existed for a long time. See also the Eschewed Features documentation.\n- https://github.com/kubernetes-sigs/kustomize/pull/4985: If you previously included .git in an AWS or Azure URL, we will no longer automatically remove that suffix. You may need to add an extra / to replace the .git for the URL to properly resolve.\n- https://github.com/kubernetes-sigs/kustomize/pull/4954: Drop support for using gh: as a host (e.g. gh:kubernetes-sigs/kustomize). We were unable to find any usage of or basis for this and believe it may have been targeting a custom gitconfig shorthand syntax.", - "markdown": "Upgrades functionality of `kubectl kustomize` as described at\n https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.0 and https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.1. \n \n This is a new major release of kustomize, so there are a few backwards-incompatible changes, most of which are rare use cases, bug fixes with side effects, or things that have been deprecated for multiple releases already:\n \n - https://github.com/kubernetes-sigs/kustomize/pull/4911: Drop support for a very old, legacy style of patches. patches used to be allowed to be used as an alias for patchesStrategicMerge in kustomize v3. You now have to use patchesStrategicMerge explicitly, or update to the new syntax supported by patches. See examples in the PR description of https://github.com/kubernetes-sigs/kustomize/pull/4911.\n - https://github.com/kubernetes-sigs/kustomize/issues/4731: Remove a potential build-time side-effect in ConfigMapGenerator and SecretGenerator, which loaded values from the local environment under some circumstances, breaking kustomize build's side-effect-free promise. While this behavior was never intended, we deprecated it and are announcing it as a breaking change since it existed for a long time. See also the Eschewed Features documentation.\n - https://github.com/kubernetes-sigs/kustomize/pull/4985: If you previously included .git in an AWS or Azure URL, we will no longer automatically remove that suffix. You may need to add an extra / to replace the .git for the URL to properly resolve.\n - https://github.com/kubernetes-sigs/kustomize/pull/4954: Drop support for using gh: as a host (e.g. gh:kubernetes-sigs/kustomize). We were unable to find any usage of or basis for this and believe it may have been targeting a custom gitconfig shorthand syntax. ([#116598](https://github.com/kubernetes/kubernetes/pull/116598), [@natasha41575](https://github.com/natasha41575)) [SIG CLI]", - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116598", - "pr_number": 116598, - "areas": [ - "kubectl", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "116607": { - "commit": "0e8eae6e35a15c89da85c814b31c7118a49941a4", - "text": "`kube-scheduler`: Optimized implementation of null `labelSelector` in topology spreading.", - "markdown": "`kube-scheduler`: Optimized implementation of null `labelSelector` in topology spreading. ([#116607](https://github.com/kubernetes/kubernetes/pull/116607), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116607", - "pr_number": 116607, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "116610": { - "commit": "e8acfc45ba0d4fcea4615c6af86155092224dac3", - "text": "Locked `CSIMigrationvSphere` feature gate.", - "markdown": "Locked `CSIMigrationvSphere` feature gate. ([#116610](https://github.com/kubernetes/kubernetes/pull/116610), [@xing-yang](https://github.com/xing-yang))", - "author": "xing-yang", - "author_url": "https://github.com/xing-yang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116610", - "pr_number": 116610, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true - }, - "116612": { - "commit": "39c01ded6a4147998c25e141be802db5cc6ca119", - "text": "Added validation to ensure that if `service.kubernetes.io/topology-aware-hints` and `service.kubernetes.io/topology-mode` annotations are both set, they are set to the same value.Also Added deprecation warning if `service.kubernetes.io/topology-aware-hints` annotation is used.", - "markdown": "Added validation to ensure that if `service.kubernetes.io/topology-aware-hints` and `service.kubernetes.io/topology-mode` annotations are both set, they are set to the same value.Also Added deprecation warning if `service.kubernetes.io/topology-aware-hints` annotation is used. ([#116612](https://github.com/kubernetes/kubernetes/pull/116612), [@robscott](https://github.com/robscott))", - "author": "robscott", - "author_url": "https://github.com/robscott", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116612", - "pr_number": 116612, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116621": { - "commit": "74123a734123d7197ce55d061e9422a4f87f7b20", - "text": "NONE", - "markdown": "NONE ([#116621](https://github.com/kubernetes/kubernetes/pull/116621), [@moshe010](https://github.com/moshe010))", - "author": "moshe010", - "author_url": "https://github.com/moshe010", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116621", - "pr_number": 116621, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "116631": { - "commit": "742316ee2136b24b9edb0bb0d5bf69a6bad6f364", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#116631](https://github.com/kubernetes/kubernetes/pull/116631), [@bobbypage](https://github.com/bobbypage)) [SIG Node and Testing]", - "author": "bobbypage", - "author_url": "https://github.com/bobbypage", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116631", - "pr_number": 116631, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "do_not_publish": true - }, - "116684": { - "commit": "c14e0983fbdfa51ef61bbadf4c364f3a63aa8b75", - "text": "NONE", - "markdown": "NONE ([#116684](https://github.com/kubernetes/kubernetes/pull/116684), [@vinaykul](https://github.com/vinaykul))", - "author": "vinaykul", - "author_url": "https://github.com/vinaykul", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116684", - "pr_number": 116684, - "areas": [ - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "apps", - "release" - ], - "duplicate": true, - "do_not_publish": true - }, - "116702": { - "commit": "c7cc7886e2f60a0710487bd2300c3b7399f19769", - "text": "NONE", - "markdown": "NONE ([#116702](https://github.com/kubernetes/kubernetes/pull/116702), [@vinaykul](https://github.com/vinaykul))", - "author": "vinaykul", - "author_url": "https://github.com/vinaykul", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116702", - "pr_number": 116702, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "116770": { - "commit": "8dd3807f4df05abae4a440e0b21750e30bcdd1d3", - "text": "Fixed bug in beta aggregated discovery endpoint which caused CRD discovery information to be temporarily missing when an Aggregated APIService with the same GroupVersion is deleted (and vice versa).", - "markdown": "Fixed bug in beta aggregated discovery endpoint which caused CRD discovery information to be temporarily missing when an Aggregated APIService with the same GroupVersion is deleted (and vice versa). ([#116770](https://github.com/kubernetes/kubernetes/pull/116770), [@alexzielenski](https://github.com/alexzielenski))", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116770", - "pr_number": 116770, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "116866": { - "commit": "d73b3a696a4357a126f04eacedf51ea76ac22290", - "text": "remove `kubernetes.io/grpc` standard appProtocol", - "markdown": "Remove `kubernetes.io/grpc` standard appProtocol ([#116866](https://github.com/kubernetes/kubernetes/pull/116866), [@LiorLieberman](https://github.com/LiorLieberman)) [SIG API Machinery and Apps]", - "author": "LiorLieberman", - "author_url": "https://github.com/LiorLieberman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116866", - "pr_number": 116866, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "96120": { - "commit": "89a9c0c8bbe2715e597e044cd92f52978d51491b", - "text": "Adds feature gate `NodeLogQuery` which provides cluster administrators with a streaming view of logs using kubectl without them having to implement a client side reader or logging into the node.", - "markdown": "Adds feature gate `NodeLogQuery` which provides cluster administrators with a streaming view of logs using kubectl without them having to implement a client side reader or logging into the node. ([#96120](https://github.com/kubernetes/kubernetes/pull/96120), [@LorbusChris](https://github.com/LorbusChris))", - "author": "LorbusChris", - "author_url": "https://github.com/LorbusChris", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/96120", - "pr_number": 96120, - "areas": [ - "test", - "kubelet", - "kubectl", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "apps", - "windows", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116877": { - "commit": "f393e7da7fd201d96f8471a1769594bef47fba90", - "text": "The encryption response from KMS v2 plugins is now validated earlier at DEK generation time instead of waiting until an encryption is performed.", - "markdown": "The encryption response from KMS v2 plugins is now validated earlier at DEK generation time instead of waiting until an encryption is performed. ([#116877](https://github.com/kubernetes/kubernetes/pull/116877), [@enj](https://github.com/enj)) [SIG API Machinery and Auth]", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116877", - "pr_number": 116877, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true - }, - "117073": { - "commit": "e7e7532a054d2795c51a87543ed4e02691b10985", - "text": "Recreate DaemonSet pods completed with Succeeded phase", - "markdown": "Recreate DaemonSet pods completed with Succeeded phase ([#117073](https://github.com/kubernetes/kubernetes/pull/117073), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117073", - "pr_number": 117073, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "117125": { - "commit": "20fc8a939c3394bd31edd06a893b75d1c312e27c", - "text": "Kubernetes is now built with Go 1.20.3", - "markdown": "Kubernetes is now built with Go 1.20.3 ([#117125](https://github.com/kubernetes/kubernetes/pull/117125), [@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/117125", - "pr_number": 117125, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "117126": { - "commit": "b19c362bf52b0121f75e113485d119412ba6715c", - "text": "Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.3`", - "markdown": "Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.3` ([#117126](https://github.com/kubernetes/kubernetes/pull/117126), [@xmudrii](https://github.com/xmudrii)) [SIG Testing]", - "author": "xmudrii", - "author_url": "https://github.com/xmudrii", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117126", - "pr_number": 117126, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - } +{ + "102884": { + "commit": "b9fd1802ba0aec68508b4e9eec00819008a79370", + "text": "`PodSpec.Container.Resources` became mutable for CPU and memory resource types.\n- `PodSpec.Container.ResizePolicy` (new object) gives users control over how their containers are resized.\n- `PodStatus.Resize` status describes the state of a requested Pod resize.\n- `PodStatus.ResourcesAllocated` describes node resources allocated to Pod.\n- `PodStatus.Resources` describes node resources applied to running containers by CRI.\n- `UpdateContainerResources` CRI API now supports both Linux and Windows.", + "markdown": "`PodSpec.Container.Resources` became mutable for CPU and memory resource types.\n - `PodSpec.Container.ResizePolicy` (new object) gives users control over how their containers are resized.\n - `PodStatus.Resize` status describes the state of a requested Pod resize.\n - `PodStatus.ResourcesAllocated` describes node resources allocated to Pod.\n - `PodStatus.Resources` describes node resources applied to running containers by CRI.\n - `UpdateContainerResources` CRI API now supports both Linux and Windows. ([#102884](https://github.com/kubernetes/kubernetes/pull/102884), [@vinaykul](https://github.com/vinaykul))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "vinaykul", + "author_url": "https://github.com/vinaykul", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/102884", + "pr_number": 102884, + "areas": [ + "test", + "kubelet", + "apiserver", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "107124": { + "commit": "8c97443b7b5269e3e96ce31e82e0744219917252", + "text": "The change affects the following CLI command:\n\nkubectl create rolebinding -h", + "markdown": "The change affects the following CLI command:\n \n kubectl create rolebinding -h ([#107124](https://github.com/kubernetes/kubernetes/pull/107124), [@ptux](https://github.com/ptux)) [SIG CLI]", + "author": "ptux", + "author_url": "https://github.com/ptux", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107124", + "pr_number": 107124, + "areas": [ + "kubectl" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cli" + ] + }, + "107826": { + "commit": "5469b170fe8717cb9fae8f12498cd1afd5586891", + "text": "The `wait.Poll*` and `wait.ExponentialBackoff*` functions have been deprecated and will be removed in a future release. Callers should switch to using `wait.PollUntilContextCancel`, `wait.PollUntilContextTimeout`, or `wait.ExponentialBackoffWithContext` as appropriate.\n\n`PollWithContext(Cancel|Deadline)` will no longer return `ErrWaitTimeout` - use the `Interrupted(error) bool` helper to replace checks for `err == ErrWaitTimeout`, or compare specifically to context errors as needed. A future release will make the `ErrWaitTimeout` error private and callers must use `Interrupted()` instead. If you are returning `ErrWaitTimeout` from your own methods, switch to creating a location specific `cause err` and pass it to the new method `wait.ErrorInterrupted(cause) error` which will ensure `Interrupted()` returns true for your loop. \n\nThe `wait.NewExponentialBackoffManager` and `wait.NewJitteringBackoffManager` functions have been marked as deprecated. Callers should switch to using the `Backoff{...}.DelayWithReset(clock, resetInterval)` method and must set the `Steps` field when using `Factor`. As a short term change, callers may use the `Timer()` method on the `BackoffManager` until the backoff managers are deprecated and removed. Please see the godoc of the deprecated functions for examples of how to replace usage of this function.", + "markdown": "The `wait.Poll*` and `wait.ExponentialBackoff*` functions have been deprecated and will be removed in a future release. Callers should switch to using `wait.PollUntilContextCancel`, `wait.PollUntilContextTimeout`, or `wait.ExponentialBackoffWithContext` as appropriate.\n \n `PollWithContext(Cancel|Deadline)` will no longer return `ErrWaitTimeout` - use the `Interrupted(error) bool` helper to replace checks for `err == ErrWaitTimeout`, or compare specifically to context errors as needed. A future release will make the `ErrWaitTimeout` error private and callers must use `Interrupted()` instead. If you are returning `ErrWaitTimeout` from your own methods, switch to creating a location specific `cause err` and pass it to the new method `wait.ErrorInterrupted(cause) error` which will ensure `Interrupted()` returns true for your loop. \n \n The `wait.NewExponentialBackoffManager` and `wait.NewJitteringBackoffManager` functions have been marked as deprecated. Callers should switch to using the `Backoff{...}.DelayWithReset(clock, resetInterval)` method and must set the `Steps` field when using `Factor`. As a short term change, callers may use the `Timer()` method on the `BackoffManager` until the backoff managers are deprecated and removed. Please see the godoc of the deprecated functions for examples of how to replace usage of this function. ([#107826](https://github.com/kubernetes/kubernetes/pull/107826), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Auth, Cloud Provider, Storage and Testing]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/107826", + "pr_number": 107826, + "areas": [ + "test", + "apiserver", + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "api-machinery", + "auth", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "108095": { + "commit": "33e9242843982054e4943eb327ef1e2a21d9247e", + "text": "Fixed Route controller to update routes when NodeIP changes", + "markdown": "Fixed Route controller to update routes when NodeIP changes ([#108095](https://github.com/kubernetes/kubernetes/pull/108095), [@lzhecheng](https://github.com/lzhecheng))", + "author": "lzhecheng", + "author_url": "https://github.com/lzhecheng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108095", + "pr_number": 108095, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "cloud-provider" + ], + "duplicate": true + }, + "108396": { + "commit": "2ab3151936f1df6b3ffb4d49bf9dc90218264545", + "text": "A new client side metric `rest_client_request_retries_total` has been added that tracks the number of retries sent to the server, partitioned by status code, verb and host", + "markdown": "A new client side metric `rest_client_request_retries_total` has been added that tracks the number of retries sent to the server, partitioned by status code, verb and host ([#108396](https://github.com/kubernetes/kubernetes/pull/108396), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108396", + "pr_number": 108396, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "108838": { + "commit": "c072cae4d0a5c4fcee7a8f1ee2bbbabf2f9504e9", + "text": "Added the ability to host webhooks in the cloud controller manager.", + "markdown": "Added the ability to host webhooks in the cloud controller manager. ([#108838](https://github.com/kubernetes/kubernetes/pull/108838), [@nckturner](https://github.com/nckturner))", + "documentation": [ + { + "description": "[KEP]: [KEP-2699](", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cloud-provider/2699-add-webhook-hosting-to-ccm)", + "type": "KEP" + } + ], + "author": "nckturner", + "author_url": "https://github.com/nckturner", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108838", + "pr_number": 108838, + "areas": [ + "test", + "cloudprovider", + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "108984": { + "commit": "31d6d9a275f574fc72c4993fcac5f2e0e2879574", + "text": "Added logging-format option to CCMs based on `k8s.io/cloud-provider`", + "markdown": "Added logging-format option to CCMs based on `k8s.io/cloud-provider` ([#108984](https://github.com/kubernetes/kubernetes/pull/108984), [@LittleFox94](https://github.com/LittleFox94))", + "author": "LittleFox94", + "author_url": "https://github.com/LittleFox94", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/108984", + "pr_number": 108984, + "areas": [ + "cloudprovider", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "109877": { + "commit": "c2b5457dfab44cb9ebf136be1d19e2f3dee05bc2", + "text": "scheduler volumebinding: leveraged `PreFilterResult` to reduce down to only\neligible node(s) for pod with bound claim(s) to local `PersistentVolume(s)`", + "markdown": "Scheduler volumebinding: leveraged `PreFilterResult` to reduce down to only\n eligible node(s) for pod with bound claim(s) to local `PersistentVolume(s)` ([#109877](https://github.com/kubernetes/kubernetes/pull/109877), [@yibozhuang](https://github.com/yibozhuang))", + "author": "yibozhuang", + "author_url": "https://github.com/yibozhuang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109877", + "pr_number": 109877, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true + }, + "110566": { + "commit": "37937bb2279092ebff22eee80c64423f1f0923b2", + "text": "Setting the Kubelet config option `--resolv-conf=Host` on Windows will now result in Kubelet applying the Pod DNS Policies as intended.", + "markdown": "Setting the Kubelet config option `--resolv-conf=Host` on Windows will now result in Kubelet applying the Pod DNS Policies as intended. ([#110566](https://github.com/kubernetes/kubernetes/pull/110566), [@claudiubelu](https://github.com/claudiubelu))", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110566", + "pr_number": 110566, + "areas": [ + "kubelet" + ], + "kinds": [ + "failing-test" + ], + "sigs": [ + "network", + "node", + "windows", + "testing" + ], + "duplicate": true + }, + "110723": { + "commit": "112a7a590c58de8ead9b35aa27d09861fc3daf66", + "text": "Fixed incorrect log information in the `iptables` utility.", + "markdown": "Fixed incorrect log information in the `iptables` utility. ([#110723](https://github.com/kubernetes/kubernetes/pull/110723), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110723", + "pr_number": 110723, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "110772": { + "commit": "90c3232de77aa0dd09b948ffdd27c575688fba8a", + "text": "Introduces new alpha functionality to the reflector, allowing user to enable API streaming.\n\nTo activate this feature, users can set the `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environmental variable.\nIt is important to note that the server must support streaming for this feature to function properly.\nIf streaming is not supported by the server, the reflector will revert to the previous method\nof obtaining data through LIST/WATCH semantics.", + "markdown": "Introduces new alpha functionality to the reflector, allowing user to enable API streaming.\n \n To activate this feature, users can set the `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environmental variable.\n It is important to note that the server must support streaming for this feature to function properly.\n If streaming is not supported by the server, the reflector will revert to the previous method\n of obtaining data through LIST/WATCH semantics. ([#110772](https://github.com/kubernetes/kubernetes/pull/110772), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3157-watch-list", + "type": "KEP" + } + ], + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110772", + "pr_number": 110772, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery" + ] + }, + "110864": { + "commit": "34537c1a1d098321d5a5ed1ee0f1591a22d20b77", + "text": "Windows CPU usage node stats are now correctly calculated for nodes with multiple Processor Groups.", + "markdown": "Windows CPU usage node stats are now correctly calculated for nodes with multiple Processor Groups. ([#110864](https://github.com/kubernetes/kubernetes/pull/110864), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Testing and Windows]", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110864", + "pr_number": 110864, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows", + "testing" + ], + "duplicate": true + }, + "110960": { + "commit": "0ad676fca8308fed5bc682cf8315a62b717d6d1d", + "text": "Implemented API streaming for the `watch-cache`\n\nWhen `sendInitialEvents` `ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic \"Bookmark\" after which the server continues streaming events.", + "markdown": "Implemented API streaming for the `watch-cache`\n \n When `sendInitialEvents` `ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic \"Bookmark\" after which the server continues streaming events. ([#110960](https://github.com/kubernetes/kubernetes/pull/110960), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3157-watch-list", + "type": "KEP" + } + ], + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110960", + "pr_number": 110960, + "areas": [ + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery" + ] + }, + "111178": { + "commit": "7f7bf68c7c86b7dedaf4758bd0fb1fd612d085e8", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#111178](https://github.com/kubernetes/kubernetes/pull/111178), [@lucming](https://github.com/lucming)) [SIG Apps, Network and Testing]", + "author": "lucming", + "author_url": "https://github.com/lucming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111178", + "pr_number": 111178, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "apps", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "111207": { + "commit": "5fe12aae1169b7862e34eda56be603fe954b5630", + "text": "NONE", + "markdown": "NONE ([#111207](https://github.com/kubernetes/kubernetes/pull/111207), [@lucming](https://github.com/lucming))", + "author": "lucming", + "author_url": "https://github.com/lucming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111207", + "pr_number": 111207, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ], + "do_not_publish": true + }, + "111372": { + "commit": "7529178924a997708fa1ad93b32d00326cc27fb0", + "text": "NONE", + "markdown": "NONE ([#111372](https://github.com/kubernetes/kubernetes/pull/111372), [@HeavenTonight](https://github.com/HeavenTonight))", + "author": "HeavenTonight", + "author_url": "https://github.com/HeavenTonight", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111372", + "pr_number": 111372, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "windows", + "testing", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true + }, + "111453": { + "commit": "70dde8d746a07392d945dde32dd7e3b12ca9a043", + "text": "Added new -f flag into debug command to be used passing pod or node files instead explicit names.", + "markdown": "Added new -f flag into debug command to be used passing pod or node files instead explicit names. ([#111453](https://github.com/kubernetes/kubernetes/pull/111453), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111453", + "pr_number": 111453, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "111583": { + "commit": "99a85a00413989221dcbb85fe6f2edc5e6174a19", + "text": "NONE", + "markdown": "NONE ([#111583](https://github.com/kubernetes/kubernetes/pull/111583), [@arrowfeng](https://github.com/arrowfeng)) [SIG Node]", + "author": "arrowfeng", + "author_url": "https://github.com/arrowfeng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111583", + "pr_number": 111583, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "111634": { + "commit": "33d9543ceb09a9aff54940d639da23c6102d2fcc", + "text": "NONE", + "markdown": "NONE ([#111634](https://github.com/kubernetes/kubernetes/pull/111634), [@KunWuLuan](https://github.com/KunWuLuan))", + "author": "KunWuLuan", + "author_url": "https://github.com/KunWuLuan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111634", + "pr_number": 111634, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "documentation" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "111658": { + "commit": "87a40ae6702b64c4c7b74b873742388882df2a82", + "text": "Expanded the partial fix for https://github.com/kubernetes/kubernetes/issues/111539\nwhich was already started in https://github.com/kubernetes/kubernetes/pull/109706\nSpecifically, we will now reduce the amount of syncs for `ETP=local` services even\nfurther in the CCM and avoid re-configuring LBs to an even greater extent.", + "markdown": "Expanded the partial fix for https://github.com/kubernetes/kubernetes/issues/111539\n which was already started in https://github.com/kubernetes/kubernetes/pull/109706\n Specifically, we will now reduce the amount of syncs for `ETP=local` services even\n further in the CCM and avoid re-configuring LBs to an even greater extent. ([#111658](https://github.com/kubernetes/kubernetes/pull/111658), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111658", + "pr_number": 111658, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "cloud-provider" + ], + "duplicate": true + }, + "111660": { + "commit": "492637878f0b26fa126f2025af2ee5c1f1fd5867", + "text": "Relaxed API validation for usage `key encipherment` and `kubelet` uses requested usages accordingly", + "markdown": "Relaxed API validation for usage `key encipherment` and `kubelet` uses requested usages accordingly ([#111660](https://github.com/kubernetes/kubernetes/pull/111660), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111660", + "pr_number": 111660, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "apps" + ], + "duplicate": true + }, + "111661": { + "commit": "86bf570711ed1ef6e94f5fbb006b07760683a901", + "text": "Fixes #115825. Kube-proxy will now include the `healthz` state in its response to the LB HC as to avoid indicating to the LB that it should use the node in question when Kube-proxy is not healthy.", + "markdown": "Fixes #115825. Kube-proxy will now include the `healthz` state in its response to the LB HC as to avoid indicating to the LB that it should use the node in question when Kube-proxy is not healthy. ([#111661](https://github.com/kubernetes/kubernetes/pull/111661), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Network]", + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111661", + "pr_number": 111661, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "111683": { + "commit": "4557c694ef42da6c63f42ac4c81bea5716b471b7", + "text": "NONE", + "markdown": "NONE ([#111683](https://github.com/kubernetes/kubernetes/pull/111683), [@lucming](https://github.com/lucming))", + "author": "lucming", + "author_url": "https://github.com/lucming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111683", + "pr_number": 111683, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ], + "do_not_publish": true + }, + "111802": { + "commit": "cb03415326258c32433345945867b9fdf8748c28", + "text": "`LabelSelectors` specified in `topologySpreadConstraints` were validated to ensure that pods are scheduled as expected. Existing pods with invalid `LabelSelectors` could be updated, but new pods were required to specify valid `LabelSelectors`.", + "markdown": "`LabelSelectors` specified in `topologySpreadConstraints` were validated to ensure that pods are scheduled as expected. Existing pods with invalid `LabelSelectors` could be updated, but new pods were required to specify valid `LabelSelectors`. ([#111802](https://github.com/kubernetes/kubernetes/pull/111802), [@maaoBit](https://github.com/maaoBit))", + "author": "maaoBit", + "author_url": "https://github.com/maaoBit", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111802", + "pr_number": 111802, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "111982": { + "commit": "5071c4f57e135cc3f63b4a6e68a3919506e9b2cb", + "text": "None", + "markdown": "None ([#111982](https://github.com/kubernetes/kubernetes/pull/111982), [@cvvz](https://github.com/cvvz))", + "author": "cvvz", + "author_url": "https://github.com/cvvz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111982", + "pr_number": 111982, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true, + "do_not_publish": true + }, + "111988": { + "commit": "ad62f30673573e3d81ea8c92b7edb6d549d2f653", + "text": "NONE", + "markdown": "NONE ([#111988](https://github.com/kubernetes/kubernetes/pull/111988), [@kkkkun](https://github.com/kkkkun))", + "author": "kkkkun", + "author_url": "https://github.com/kkkkun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111988", + "pr_number": 111988, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "do_not_publish": true + }, + "112021": { + "commit": "0b05897c303a4bbdba37a31cc48f31ed6576d038", + "text": "Fixed `SELinux` label for host path volumes created by host path provisioner", + "markdown": "Fixed `SELinux` label for host path volumes created by host path provisioner ([#112021](https://github.com/kubernetes/kubernetes/pull/112021), [@mrunalp](https://github.com/mrunalp))", + "author": "mrunalp", + "author_url": "https://github.com/mrunalp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112021", + "pr_number": 112021, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true + }, + "112136": { + "commit": "b532f2b3e74f8ce1aa27d80b29303094b8e229f9", + "text": "`kubelet`: migrated `--container-runtime-endpoint` and `--image-service-endpoint`\nto kubelet config", + "markdown": "`kubelet`: migrated `--container-runtime-endpoint` and `--image-service-endpoint`\n to kubelet config ([#112136](https://github.com/kubernetes/kubernetes/pull/112136), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112136", + "pr_number": 112136, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scalability", + "node", + "api-machinery" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "112260": { + "commit": "63a01a54655c372f3c61c03e674d41098097a734", + "text": "node `ipam` controller now exposes metrics `cidrset_cidrs_max_total` and `multicidrset_cidrs_max_total` with information about the max number of CIDRs that can be allocated.", + "markdown": "Node `ipam` controller now exposes metrics `cidrset_cidrs_max_total` and `multicidrset_cidrs_max_total` with information about the max number of CIDRs that can be allocated. ([#112260](https://github.com/kubernetes/kubernetes/pull/112260), [@aryan9600](https://github.com/aryan9600))", + "author": "aryan9600", + "author_url": "https://github.com/aryan9600", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112260", + "pr_number": 112260, + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "apps", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "112334": { + "commit": "689fc37dd2f92ca61f4f2405186cb7e097be3ab1", + "text": "Updated the Event series starting count when emitting isomorphic events from 1 to 2.", + "markdown": "Updated the Event series starting count when emitting isomorphic events from 1 to 2. ([#112334](https://github.com/kubernetes/kubernetes/pull/112334), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112334", + "pr_number": 112334, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "112365": { + "commit": "f56c79398e3c58b4f5a9c7e6a1f4d64248ef1b83", + "text": "Fixed a bug where `events/v1` `Events` with similar event type and reporting instance were not aggregated by `client-go`.", + "markdown": "Fixed a bug where `events/v1` `Events` with similar event type and reporting instance were not aggregated by `client-go`. ([#112365](https://github.com/kubernetes/kubernetes/pull/112365), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112365", + "pr_number": 112365, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112393": { + "commit": "e55f2a9b54e0f6bd9ed12e50752d7d2545ab0cab", + "text": "Two changes to the `/debug/api_priority_and_fairness/dump_priority_levels` endpoint of API Priority and Fairness: added total number of dispatched, timed-out, rejected and cancelled requests; output now sorted by `PriorityLevelName`.", + "markdown": "Two changes to the `/debug/api_priority_and_fairness/dump_priority_levels` endpoint of API Priority and Fairness: added total number of dispatched, timed-out, rejected and cancelled requests; output now sorted by `PriorityLevelName`. ([#112393](https://github.com/kubernetes/kubernetes/pull/112393), [@borgerli](https://github.com/borgerli))", + "author": "borgerli", + "author_url": "https://github.com/borgerli", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112393", + "pr_number": 112393, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "112624": { + "commit": "58dec1fa4e52de75cb0c58b0c6ead8481c3ed25b", + "text": "kubelet`: fixed a bug in `kubelet` that stopped rendering the `ConfigMaps` when `fsquota` monitoring is enabled", + "markdown": "Kubelet`: fixed a bug in `kubelet` that stopped rendering the `ConfigMaps` when `fsquota` monitoring is enabled ([#112624](https://github.com/kubernetes/kubernetes/pull/112624), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112624", + "pr_number": 112624, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112661": { + "commit": "571adf6e84439a5fab1ab09b6e0ceb1c2f8d2153", + "text": "Improved FormatMap: Improves performance by about 4x, or nearly 2x in the worst case", + "markdown": "Improved FormatMap: Improves performance by about 4x, or nearly 2x in the worst case ([#112661](https://github.com/kubernetes/kubernetes/pull/112661), [@aimuz](https://github.com/aimuz)) [SIG Node]", + "author": "aimuz", + "author_url": "https://github.com/aimuz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112661", + "pr_number": 112661, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "112670": { + "commit": "37326f7cea750f6b48c61649d59af9183694d4a4", + "text": "Migrated `pkg/controller/nodeipam/ipam/cloud_cidr_allocator.go, pkg/controller/nodeipam/ipam/multi_cidr_range_allocator.go pkg/controller/nodeipam/ipam/range_allocator.go pkg/controller/nodelifecycle/node_lifecycle_controller.go` to structured logging", + "markdown": "Migrated `pkg/controller/nodeipam/ipam/cloud_cidr_allocator.go, pkg/controller/nodeipam/ipam/multi_cidr_range_allocator.go pkg/controller/nodeipam/ipam/range_allocator.go pkg/controller/nodelifecycle/node_lifecycle_controller.go` to structured logging ([#112670](https://github.com/kubernetes/kubernetes/pull/112670), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112670", + "pr_number": 112670, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "api-machinery", + "apps", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "112719": { + "commit": "575616cc72dbfdd070ead81ec29c0d4f00226487", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#112719](https://github.com/kubernetes/kubernetes/pull/112719), [@cvvz](https://github.com/cvvz)) [SIG Node and Storage]", + "author": "cvvz", + "author_url": "https://github.com/cvvz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112719", + "pr_number": 112719, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true, + "do_not_publish": true + }, + "112809": { + "commit": "d529048a3e7b97a29e271d358330d96a8128485b", + "text": "kube-apiserver: regular expressions specified with the `--cors-allowed-origins` option are now validated to match the entire `hostname` inside the `Origin` header of the request and \nmust contain '^' or the '//' prefix to anchor to the start, and '$' or the port separator ':' to anchor to \nthe end.", + "markdown": "Kube-apiserver: regular expressions specified with the `--cors-allowed-origins` option are now validated to match the entire `hostname` inside the `Origin` header of the request and \n must contain '^' or the '//' prefix to anchor to the start, and '$' or the port separator ':' to anchor to \n the end. ([#112809](https://github.com/kubernetes/kubernetes/pull/112809), [@tkashem](https://github.com/tkashem)) [SIG API Machinery]", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112809", + "pr_number": 112809, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "112817": { + "commit": "b78af4c5c698c76637d18eebc5adf16016baa57a", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#112817](https://github.com/kubernetes/kubernetes/pull/112817), [@iamNoah1](https://github.com/iamNoah1)) [SIG CLI]", + "author": "iamNoah1", + "author_url": "https://github.com/iamNoah1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112817", + "pr_number": 112817, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "do_not_publish": true + }, + "112925": { + "commit": "7913e135a5955014c544b17b56f0676c110b3770", + "text": "Error message for Pods with requests exceeding limits will have a limit value printed.", + "markdown": "Error message for Pods with requests exceeding limits will have a limit value printed. ([#112925](https://github.com/kubernetes/kubernetes/pull/112925), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112925", + "pr_number": 112925, + "kinds": [ + "documentation", + "cleanup" + ], + "sigs": [ + "node", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "112977": { + "commit": "2d88d2d993b36c231fdc7537212685544469c517", + "text": "Documented the reason field in CRI API to ensure it equals `OOMKilled` for the containers terminated by OOM killer", + "markdown": "Documented the reason field in CRI API to ensure it equals `OOMKilled` for the containers terminated by OOM killer ([#112977](https://github.com/kubernetes/kubernetes/pull/112977), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112977", + "pr_number": 112977, + "areas": [ + "kubelet" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "node" + ] + }, + "113040": { + "commit": "178f4e24616f3a092ade595334d861432da888dd", + "text": "Changed the error message of `kubectl rollout restart` when subsequent `kubectl rollout restart` commands are executed within a second", + "markdown": "Changed the error message of `kubectl rollout restart` when subsequent `kubectl rollout restart` commands are executed within a second ([#113040](https://github.com/kubernetes/kubernetes/pull/113040), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113040", + "pr_number": 113040, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "113083": { + "commit": "d19aaa7c8551a249de942a70cb3000fcdd6ecb62", + "text": "When describing deployments, `OldReplicaSets` now always shows all replicasets controlled the deployment, not just those that still have replicas available.", + "markdown": "When describing deployments, `OldReplicaSets` now always shows all replicasets controlled the deployment, not just those that still have replicas available. ([#113083](https://github.com/kubernetes/kubernetes/pull/113083), [@llorllale](https://github.com/llorllale)) [SIG CLI]", + "author": "llorllale", + "author_url": "https://github.com/llorllale", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113083", + "pr_number": 113083, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "113104": { + "commit": "fc7b25cf720b607908868a3f7b6ef13ac9202a5c", + "text": "Flag `--concurrent-node-syncs` has been added to cloud node controller which defines how many workers in parallel will be initialising and synchronising nodes.", + "markdown": "Flag `--concurrent-node-syncs` has been added to cloud node controller which defines how many workers in parallel will be initialising and synchronising nodes. ([#113104](https://github.com/kubernetes/kubernetes/pull/113104), [@pawbana](https://github.com/pawbana)) [SIG API Machinery, Cloud Provider and Scalability]", + "author": "pawbana", + "author_url": "https://github.com/pawbana", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113104", + "pr_number": 113104, + "areas": [ + "cloudprovider", + "code-generation" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scalability", + "api-machinery", + "cloud-provider" + ], + "duplicate": true + }, + "113121": { + "commit": "fab126d7f380b36525974ed69621195eb06e0d7e", + "text": "`cacheSize` field in `EncryptionConfiguration` is not supported for KMSv2 provider", + "markdown": "`cacheSize` field in `EncryptionConfiguration` is not supported for KMSv2 provider ([#113121](https://github.com/kubernetes/kubernetes/pull/113121), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113121", + "pr_number": 113121, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113145": { + "commit": "45b96eae989efef9380fadc1e46957dc6174f351", + "text": "Force deleted pods may fail to terminate until the kubelet is restarted when the container runtime returns an error during termination. We have strengthened testing for runtime failures and now perform a more rigorous reconciliation to ensure static pods (especially those that use fixed UIDs) are restarted. As a side effect of these changes static pods will be restarted with lower latency than before (2s vs 4s, on average) and rapid updates to pod configuration should take effect sooner.\n\nA new metric `kubelet_known_pods` has been added at ALPHA stability to report the number of pods a Kubelet is tracking in a number of internal states. Operators may use the metrics to track an excess of pods in the orphaned state that may not be completing.", + "markdown": "Force deleted pods may fail to terminate until the kubelet is restarted when the container runtime returns an error during termination. We have strengthened testing for runtime failures and now perform a more rigorous reconciliation to ensure static pods (especially those that use fixed UIDs) are restarted. As a side effect of these changes static pods will be restarted with lower latency than before (2s vs 4s, on average) and rapid updates to pod configuration should take effect sooner.\n \n A new metric `kubelet_known_pods` has been added at ALPHA stability to report the number of pods a Kubelet is tracking in a number of internal states. Operators may use the metrics to track an excess of pods in the orphaned state that may not be completing. ([#113145](https://github.com/kubernetes/kubernetes/pull/113145), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Auth, Cloud Provider, Node and Testing]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113145", + "pr_number": 113145, + "areas": [ + "test", + "kubelet", + "apiserver", + "cloudprovider", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "113218": { + "commit": "a34e37c9963af5944435b736882bfcd1e81f7e09", + "text": "Added a new alpha API: ClusterTrustBundle (`certificates.k8s.io/v1alpha1`).\nA ClusterTrustBundle may be used to distribute [X.509](https://www.itu.int/rec/T-REC-X.509) trust anchors to workloads within the cluster.", + "markdown": "Added a new alpha API: ClusterTrustBundle (`certificates.k8s.io/v1alpha1`).\n A ClusterTrustBundle may be used to distribute [X.509](https://www.itu.int/rec/T-REC-X.509) trust anchors to workloads within the cluster. ([#113218](https://github.com/kubernetes/kubernetes/pull/113218), [@ahmedtd](https://github.com/ahmedtd)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/bddca24910fb349e2eb0ac1c822c77f0f32fe9c6/keps/sig-auth/3257-trust-anchor-sets", + "type": "KEP" + } + ], + "author": "ahmedtd", + "author_url": "https://github.com/ahmedtd", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113218", + "pr_number": 113218, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113267": { + "commit": "da8a78ebd285969c001947e0346cdbd3cadd722d", + "text": "Removed unused rule for `nodes/spec` from `ClusterRole` `system:kubelet-api-admin`", + "markdown": "Removed unused rule for `nodes/spec` from `ClusterRole` `system:kubelet-api-admin` ([#113267](https://github.com/kubernetes/kubernetes/pull/113267), [@hoskeri](https://github.com/hoskeri))", + "author": "hoskeri", + "author_url": "https://github.com/hoskeri", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113267", + "pr_number": 113267, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "cloud-provider" + ], + "duplicate": true + }, + "113270": { + "commit": "9f0b4919531a87f762a85fd5d04d85bab9557636", + "text": "PVCs will automatically be recreated if they are missing for a pending Pod.", + "markdown": "PVCs will automatically be recreated if they are missing for a pending Pod. ([#113270](https://github.com/kubernetes/kubernetes/pull/113270), [@rrangith](https://github.com/rrangith)) [SIG Apps and Testing]", + "author": "rrangith", + "author_url": "https://github.com/rrangith", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113270", + "pr_number": 113270, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "113284": { + "commit": "6d81a2c30dd5e88d92335f4b1088f2d19775e3f7", + "text": "kubectl will now display `SeccompProfile` for pods, containers and ephemeral containers, if values were set.", + "markdown": "Kubectl will now display `SeccompProfile` for pods, containers and ephemeral containers, if values were set. ([#113284](https://github.com/kubernetes/kubernetes/pull/113284), [@williamyeh](https://github.com/williamyeh))", + "author": "williamyeh", + "author_url": "https://github.com/williamyeh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113284", + "pr_number": 113284, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "security" + ], + "feature": true, + "duplicate": true + }, + "113315": { + "commit": "71ec5ed81df288a8bd4c1c6a89df404d30ed0cd3", + "text": "Migrated the ResourceQuota controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the ResourceQuota controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113315](https://github.com/kubernetes/kubernetes/pull/113315), [@ncdc](https://github.com/ncdc)) [SIG API Machinery, Apps and Testing]", + "author": "ncdc", + "author_url": "https://github.com/ncdc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113315", + "pr_number": 113315, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113318": { + "commit": "fdafd50085768e76f4cd5de113e559c715c73527", + "text": "kubeadm: added the experimental (alpha) feature gate `EtcdLearnerMode` that allows etcd members to be joined as learner and only then promoted as voting members", + "markdown": "Kubeadm: added the experimental (alpha) feature gate `EtcdLearnerMode` that allows etcd members to be joined as learner and only then promoted as voting members ([#113318](https://github.com/kubernetes/kubernetes/pull/113318), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3614", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113318", + "pr_number": 113318, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "113428": { + "commit": "3489796d5cb5e8d90f98443579ff4ff0d741cea9", + "text": "NONE", + "markdown": "NONE ([#113428](https://github.com/kubernetes/kubernetes/pull/113428), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113428", + "pr_number": 113428, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113443": { + "commit": "185cd95b9cc1d4254c42f11c90adbc97c1f6e26c", + "text": "Migrated the namespace controller (within `kube-controller-manager`) to support [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the namespace controller (within `kube-controller-manager`) to support [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113443](https://github.com/kubernetes/kubernetes/pull/113443), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113443", + "pr_number": 113443, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113464": { + "commit": "16bc942a6b1d8052b3720ce20d51cfa08d29a4dd", + "text": "Migrated the bootstrap signer controller and the token cleaner controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the bootstrap signer controller and the token cleaner controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113464](https://github.com/kubernetes/kubernetes/pull/113464), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Apps and Instrumentation]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113464", + "pr_number": 113464, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "113471": { + "commit": "cb00077cd3a58d542275a30c974d31b2c57f9ccc", + "text": "Migrated the Kubernetes object garbage collector (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the Kubernetes object garbage collector (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113471](https://github.com/kubernetes/kubernetes/pull/113471), [@ncdc](https://github.com/ncdc))", + "author": "ncdc", + "author_url": "https://github.com/ncdc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113471", + "pr_number": 113471, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "duplicate": true + }, + "113525": { + "commit": "492a08c91625709ad323e98b6ade381339721819", + "text": "Migrated the `Deployment` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging)", + "markdown": "Migrated the `Deployment` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) ([#113525](https://github.com/kubernetes/kubernetes/pull/113525), [@249043822](https://github.com/249043822))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "249043822", + "author_url": "https://github.com/249043822", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113525", + "pr_number": 113525, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113534": { + "commit": "200220ccefad096c5d539037c5bd663feb1210e7", + "text": "The `ControllerManagerLeaderMigration` feature, GA since `1.24`, is now unconditionally enabled and the feature gate option has been removed.", + "markdown": "The `ControllerManagerLeaderMigration` feature, GA since `1.24`, is now unconditionally enabled and the feature gate option has been removed. ([#113534](https://github.com/kubernetes/kubernetes/pull/113534), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2436", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113534", + "pr_number": 113534, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "duplicate": true + }, + "113581": { + "commit": "ac889a0251365952aade1bc2ee42b56dc57eb42a", + "text": "`Secret` of `kubernetes.io/tls` type now verifies that the private key matches the cert", + "markdown": "`Secret` of `kubernetes.io/tls` type now verifies that the private key matches the cert ([#113581](https://github.com/kubernetes/kubernetes/pull/113581), [@aimuz](https://github.com/aimuz))", + "author": "aimuz", + "author_url": "https://github.com/aimuz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113581", + "pr_number": 113581, + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "duplicate_kind": true + }, + "113584": { + "commit": "49649c89ea8fa0c7f81103f735b089ed5537aa37", + "text": "Migrated the volume attach/detach controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).\nMigrated the `PersistentVolumeClaim` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).\nMigrated the `PersistentVolume` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the volume attach/detach controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).\n Migrated the `PersistentVolumeClaim` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).\n Migrated the `PersistentVolume` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113584](https://github.com/kubernetes/kubernetes/pull/113584), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113584", + "pr_number": 113584, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113622": { + "commit": "f769c66aa84e94eb425677c439f7b0e66809d3c4", + "text": "Migrated the `DaemonSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging)", + "markdown": "Migrated the `DaemonSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) ([#113622](https://github.com/kubernetes/kubernetes/pull/113622), [@249043822](https://github.com/249043822))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "249043822", + "author_url": "https://github.com/249043822", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113622", + "pr_number": 113622, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113742": { + "commit": "0e19bbb91644885a6db38a77ea3d697730269802", + "text": "Fixed issue in `Winkernel` Proxier - Unexpected active TCP connection drops while horizontally scaling the endpoints for a LoadBalancer Service with Internal Traffic Policy: `Local`", + "markdown": "Fixed issue in `Winkernel` Proxier - Unexpected active TCP connection drops while horizontally scaling the endpoints for a LoadBalancer Service with Internal Traffic Policy: `Local` ([#113742](https://github.com/kubernetes/kubernetes/pull/113742), [@princepereira](https://github.com/princepereira))", + "author": "princepereira", + "author_url": "https://github.com/princepereira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113742", + "pr_number": 113742, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true + }, + "113776": { + "commit": "5b54d48357aab86d1ec258abe0100d89f3b30d70", + "text": "Fixed issue with `Winkernel Proxier` - No ingress load balancer rules with endpoints to support load balancing when all the endpoints are terminating.", + "markdown": "Fixed issue with `Winkernel Proxier` - No ingress load balancer rules with endpoints to support load balancing when all the endpoints are terminating. ([#113776](https://github.com/kubernetes/kubernetes/pull/113776), [@princepereira](https://github.com/princepereira))", + "author": "princepereira", + "author_url": "https://github.com/princepereira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113776", + "pr_number": 113776, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows", + "testing" + ], + "duplicate": true + }, + "113787": { + "commit": "45f14a93f1869ab7634b7fe874e0d5d2cbe52486", + "text": "Fixed `DaemonSet` to update the status even if it fails to create a pod.", + "markdown": "Fixed `DaemonSet` to update the status even if it fails to create a pod. ([#113787](https://github.com/kubernetes/kubernetes/pull/113787), [@gjkim42](https://github.com/gjkim42))", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113787", + "pr_number": 113787, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "113794": { + "commit": "2c37b470b3f1623c0241a48fe80dc8301ad23b0b", + "text": "None", + "markdown": "None ([#113794](https://github.com/kubernetes/kubernetes/pull/113794), [@littlejiancc](https://github.com/littlejiancc))", + "author": "littlejiancc", + "author_url": "https://github.com/littlejiancc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113794", + "pr_number": 113794, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ], + "do_not_publish": true + }, + "113795": { + "commit": "e6bc66922755d8eaca004cbfa334865c87ef5311", + "text": "NONE", + "markdown": "NONE ([#113795](https://github.com/kubernetes/kubernetes/pull/113795), [@DangerOnTheRanger](https://github.com/DangerOnTheRanger))", + "author": "DangerOnTheRanger", + "author_url": "https://github.com/DangerOnTheRanger", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113795", + "pr_number": 113795, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true, + "do_not_publish": true + }, + "113834": { + "commit": "d1c715a9823250651e5392e6e96b4772a1594485", + "text": "`statefulset` status will now be consistent on API errors", + "markdown": "`statefulset` status will now be consistent on API errors ([#113834](https://github.com/kubernetes/kubernetes/pull/113834), [@atiratree](https://github.com/atiratree))", + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113834", + "pr_number": 113834, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "113840": { + "commit": "f90643435ef606afbd156490933b200479c34e2d", + "text": "Migrated the StatefulSet controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging)", + "markdown": "Migrated the StatefulSet controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) ([#113840](https://github.com/kubernetes/kubernetes/pull/113840), [@249043822](https://github.com/249043822))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "249043822", + "author_url": "https://github.com/249043822", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113840", + "pr_number": 113840, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113879": { + "commit": "1af56548af167d836eff33a5f57552fa417cbc0b", + "text": "Migrated the “sample-controller” controller to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the “sample-controller” controller to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113879](https://github.com/kubernetes/kubernetes/pull/113879), [@pchan](https://github.com/pchan)) [SIG API Machinery and Instrumentation]", + "author": "pchan", + "author_url": "https://github.com/pchan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113879", + "pr_number": 113879, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "113910": { + "commit": "c88b61f5536466d3826c96b9f9f38970572143b5", + "text": "Migrated the `ClusterRole` aggregation controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the `ClusterRole` aggregation controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113910](https://github.com/kubernetes/kubernetes/pull/113910), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113910", + "pr_number": 113910, + "areas": [ + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "113916": { + "commit": "471b392f43e8fdcbbff14f4494ac278af2d0194c", + "text": "Migrated the “TTL after finished” controller (within `kube-controller-manager`)to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the “TTL after finished” controller (within `kube-controller-manager`)to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113916](https://github.com/kubernetes/kubernetes/pull/113916), [@songxiao-wang87](https://github.com/songxiao-wang87))", + "author": "songxiao-wang87", + "author_url": "https://github.com/songxiao-wang87", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113916", + "pr_number": 113916, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113933": { + "commit": "8d2fbfc5a9635bc3247d7f739f8a057962049aca", + "text": "client-go: fixed potential data races retrying requests using a custom `io.Reader` body; with this fix, only requests with no body or with `string` / `[]byte` / `runtime.Object` bodies can be retried", + "markdown": "Client-go: fixed potential data races retrying requests using a custom `io.Reader` body; with this fix, only requests with no body or with `string` / `[]byte` / `runtime.Object` bodies can be retried ([#113933](https://github.com/kubernetes/kubernetes/pull/113933), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113933", + "pr_number": 113933, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "113942": { + "commit": "3d3a1807138313aa3079bd257f721236aec4f0a4", + "text": "The following feature gates for volume expansion GA features have now been removed and must no longer be referenced in `--feature-gates` flags: `ExpandCSIVolumes`, `ExpandInUsePersistentVolumes`, `ExpandPersistentVolumes`", + "markdown": "The following feature gates for volume expansion GA features have now been removed and must no longer be referenced in `--feature-gates` flags: `ExpandCSIVolumes`, `ExpandInUsePersistentVolumes`, `ExpandPersistentVolumes` ([#113942](https://github.com/kubernetes/kubernetes/pull/113942), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113942", + "pr_number": 113942, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "113943": { + "commit": "ee8e76c6eaee46efc181eb8f70f1e9d710521281", + "text": "NONE", + "markdown": "NONE ([#113943](https://github.com/kubernetes/kubernetes/pull/113943), [@Octopusjust](https://github.com/Octopusjust))", + "author": "Octopusjust", + "author_url": "https://github.com/Octopusjust", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113943", + "pr_number": 113943, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "113985": { + "commit": "843b40aeb421347ae00f206ea879bc1e1ae2912d", + "text": "Shared informers now correctly propagate whether they are synced or not. Individual informer handlers may now check if they are synced or not (new `HasSynced` method). Library support is added to assist controllers in tracking whether their own work is completed for items in the initial list (`AsyncTracker`).", + "markdown": "Shared informers now correctly propagate whether they are synced or not. Individual informer handlers may now check if they are synced or not (new `HasSynced` method). Library support is added to assist controllers in tracking whether their own work is completed for items in the initial list (`AsyncTracker`). ([#113985](https://github.com/kubernetes/kubernetes/pull/113985), [@lavalamp](https://github.com/lavalamp))", + "author": "lavalamp", + "author_url": "https://github.com/lavalamp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113985", + "pr_number": 113985, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node", + "api-machinery", + "auth", + "apps", + "testing" + ], + "duplicate": true + }, + "113986": { + "commit": "4aaa4df840949fa533555bfa7c1b01e3463255ba", + "text": "`StorageVersionGC` (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "`StorageVersionGC` (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113986](https://github.com/kubernetes/kubernetes/pull/113986), [@songxiao-wang87](https://github.com/songxiao-wang87))", + "author": "songxiao-wang87", + "author_url": "https://github.com/songxiao-wang87", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113986", + "pr_number": 113986, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "113998": { + "commit": "2e6d3393f745a74c805b74fe9536ac6a14a2ea33", + "text": "`kubeadm`: now respects user provided `kubeconfig` during discovery process", + "markdown": "`kubeadm`: now respects user provided `kubeconfig` during discovery process ([#113998](https://github.com/kubernetes/kubernetes/pull/113998), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113998", + "pr_number": 113998, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "114015": { + "commit": "f1f2d51891c422913180fe09859b88d15e0c2268", + "text": "NONE", + "markdown": "NONE ([#114015](https://github.com/kubernetes/kubernetes/pull/114015), [@my-git9](https://github.com/my-git9))", + "author": "my-git9", + "author_url": "https://github.com/my-git9", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114015", + "pr_number": 114015, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "114017": { + "commit": "a3ad4d7623a28ad06e2eb9db03ece490e7a427b6", + "text": "kubelet: remove deprecated flag `--container-runtime`", + "markdown": "Kubelet: remove deprecated flag `--container-runtime` ([#114017](https://github.com/kubernetes/kubernetes/pull/114017), [@calvin0327](https://github.com/calvin0327)) [SIG Cloud Provider and Node]", + "author": "calvin0327", + "author_url": "https://github.com/calvin0327", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114017", + "pr_number": 114017, + "areas": [ + "kubelet", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "cloud-provider" + ], + "duplicate": true + }, + "114033": { + "commit": "92ffe945928345ce5a16bb2274e4a43ba628158d", + "text": "NONE", + "markdown": "NONE ([#114033](https://github.com/kubernetes/kubernetes/pull/114033), [@Octopusjust](https://github.com/Octopusjust))", + "author": "Octopusjust", + "author_url": "https://github.com/Octopusjust", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114033", + "pr_number": 114033, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ], + "do_not_publish": true + }, + "114051": { + "commit": "b8b18ecd85c0c36730cd3361ea41fb6681b1a70c", + "text": "Added scheduler preemption support for pods using `ReadWriteOncePod` PVCs", + "markdown": "Added scheduler preemption support for pods using `ReadWriteOncePod` PVCs ([#114051](https://github.com/kubernetes/kubernetes/pull/114051), [@chrishenzie](https://github.com/chrishenzie))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2485-read-write-once-pod-pv-access-mode", + "type": "KEP" + } + ], + "author": "chrishenzie", + "author_url": "https://github.com/chrishenzie", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114051", + "pr_number": 114051, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true + }, + "114055": { + "commit": "eeaddd17c1ad3e71a2de05e76b2305ebdab39ee4", + "text": "Kubernetes components that perform leader election now only support using `Leases` for this.", + "markdown": "Kubernetes components that perform leader election now only support using `Leases` for this. ([#114055](https://github.com/kubernetes/kubernetes/pull/114055), [@aimuz](https://github.com/aimuz))", + "author": "aimuz", + "author_url": "https://github.com/aimuz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114055", + "pr_number": 114055, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling", + "api-machinery", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "114065": { + "commit": "2d08117e9eaffeeb936f59d8e74403807bb1827a", + "text": "NONE", + "markdown": "NONE ([#114065](https://github.com/kubernetes/kubernetes/pull/114065), [@ruquanzhao](https://github.com/ruquanzhao))", + "author": "ruquanzhao", + "author_url": "https://github.com/ruquanzhao", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114065", + "pr_number": 114065, + "areas": [ + "code-generation" + ], + "kinds": [ + "documentation", + "cleanup", + "api-change" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "114086": { + "commit": "696701b9fd984a0ba41a45aa582f228c0f88542d", + "text": "If a user attempts to add an ephemeral container to a static pod, they will now get a visible validation error.", + "markdown": "If a user attempts to add an ephemeral container to a static pod, they will now get a visible validation error. ([#114086](https://github.com/kubernetes/kubernetes/pull/114086), [@xmcqueen](https://github.com/xmcqueen))", + "author": "xmcqueen", + "author_url": "https://github.com/xmcqueen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114086", + "pr_number": 114086, + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "apps" + ], + "duplicate": true + }, + "114116": { + "commit": "6edb35d63ea8b7b903fa063ca6c9515819cd100d", + "text": "Fixed `StatefulSetAutoDeletePVC` feature when `OwnerReferencesPermissionEnforcement` admission plugin is enabled.", + "markdown": "Fixed `StatefulSetAutoDeletePVC` feature when `OwnerReferencesPermissionEnforcement` admission plugin is enabled. ([#114116](https://github.com/kubernetes/kubernetes/pull/114116), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114116", + "pr_number": 114116, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "auth", + "apps" + ], + "duplicate": true + }, + "114125": { + "commit": "c549b59983e114a872b0df18d74c1d217f3f62bd", + "text": "Scheduler no longer runs the plugin's `Filter` method when its `PreFilter` method returned a Skip status.\nIn other words, your `PreFilter`/`Filter` plugin can return a Skip status in `PreFilter` if the plugin does nothing in Filter for that Pod.\nScheduler skips `NodeAffinity` Filter plugin when `NodeAffinity` Filter plugin has nothing to do with a Pod.\nIt may affect some metrics values related to the `NodeAffinity` Filter plugin.", + "markdown": "Scheduler no longer runs the plugin's `Filter` method when its `PreFilter` method returned a Skip status.\n In other words, your `PreFilter`/`Filter` plugin can return a Skip status in `PreFilter` if the plugin does nothing in Filter for that Pod.\n Scheduler skips `NodeAffinity` Filter plugin when `NodeAffinity` Filter plugin has nothing to do with a Pod.\n It may affect some metrics values related to the `NodeAffinity` Filter plugin. ([#114125](https://github.com/kubernetes/kubernetes/pull/114125), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114125", + "pr_number": 114125, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true + }, + "114155": { + "commit": "2118bc8aec32bad526cf089c291d46a458914cbb", + "text": "fixed a bug on the `EndpointSlice` mirroring controller that generated multiple slices in some cases for custom endpoints in non canonical format.", + "markdown": "Fixed a bug on the `EndpointSlice` mirroring controller that generated multiple slices in some cases for custom endpoints in non canonical format. ([#114155](https://github.com/kubernetes/kubernetes/pull/114155), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114155", + "pr_number": 114155, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps", + "testing" + ], + "duplicate": true + }, + "114158": { + "commit": "84cb936e5d76588ab897c599f450d5aabbbccb41", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#114158](https://github.com/kubernetes/kubernetes/pull/114158), [@Octopusjust](https://github.com/Octopusjust)) [SIG Cloud Provider]", + "author": "Octopusjust", + "author_url": "https://github.com/Octopusjust", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114158", + "pr_number": 114158, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "do_not_publish": true + }, + "114172": { + "commit": "db53463d4faa3b2cede1f7b6e4402157510256ab", + "text": "`StatefulSet` names must be DNS labels, rather than subdomains. Any `StatefulSet`\nwhich took advantage of subdomain validation (by having dots in the name) can't\npossibly have worked, because we eventually set `pod.spec.hostname` from the `StatefulSetName`,\nand that is validated as a DNS label.", + "markdown": "`StatefulSet` names must be DNS labels, rather than subdomains. Any `StatefulSet`\n which took advantage of subdomain validation (by having dots in the name) can't\n possibly have worked, because we eventually set `pod.spec.hostname` from the `StatefulSetName`,\n and that is validated as a DNS label. ([#114172](https://github.com/kubernetes/kubernetes/pull/114172), [@thockin](https://github.com/thockin))", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114172", + "pr_number": 114172, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "114176": { + "commit": "9e3e47f56a7bcb9f650b5133944c78851b9b4af3", + "text": "kubeadm: improved retries when updating node information, in case `kube-apiserver` is temporarily unavailable", + "markdown": "Kubeadm: improved retries when updating node information, in case `kube-apiserver` is temporarily unavailable ([#114176](https://github.com/kubernetes/kubernetes/pull/114176), [@QuantumEnergyE](https://github.com/QuantumEnergyE))", + "author": "QuantumEnergyE", + "author_url": "https://github.com/QuantumEnergyE", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114176", + "pr_number": 114176, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "114178": { + "commit": "767de11f88a6a65a6f91ca772ff65f4f50af14ea", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#114178](https://github.com/kubernetes/kubernetes/pull/114178), [@Octopusjust](https://github.com/Octopusjust)) [SIG Network and Node]", + "author": "Octopusjust", + "author_url": "https://github.com/Octopusjust", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114178", + "pr_number": 114178, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true, + "do_not_publish": true + }, + "114191": { + "commit": "472612ccc62ef4b281773516adc9cbc367805e74", + "text": "Profiling can now be served on a unix-domain socket by using the `--profiling-path` option (when profiling is enabled) for security purposes.", + "markdown": "Profiling can now be served on a unix-domain socket by using the `--profiling-path` option (when profiling is enabled) for security purposes. ([#114191](https://github.com/kubernetes/kubernetes/pull/114191), [@apelisse](https://github.com/apelisse)) [SIG API Machinery]", + "author": "apelisse", + "author_url": "https://github.com/apelisse", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114191", + "pr_number": 114191, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "114226": { + "commit": "06619135e0668a059b06b8bd588def5aa9c12e03", + "text": "Made `apiextensions-apiserver` binary linking static (also affects the deb and rpm packages).", + "markdown": "Made `apiextensions-apiserver` binary linking static (also affects the deb and rpm packages). ([#114226](https://github.com/kubernetes/kubernetes/pull/114226), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114226", + "pr_number": 114226, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "release" + ], + "feature": true, + "duplicate": true + }, + "114227": { + "commit": "5452109c9d9eaa62907e1476811c383fe80b1129", + "text": "Made `kube-aggregator` binary linking static (also affects the deb and rpm packages).", + "markdown": "Made `kube-aggregator` binary linking static (also affects the deb and rpm packages). ([#114227](https://github.com/kubernetes/kubernetes/pull/114227), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114227", + "pr_number": 114227, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "release" + ], + "feature": true, + "duplicate": true + }, + "114228": { + "commit": "73849a8d28d786525d2f83fb7694757a35386608", + "text": "Made `kubectl-convert` binary linking static (also affects the deb and rpm packages).", + "markdown": "Made `kubectl-convert` binary linking static (also affects the deb and rpm packages). ([#114228](https://github.com/kubernetes/kubernetes/pull/114228), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114228", + "pr_number": 114228, + "kinds": [ + "feature" + ], + "sigs": [ + "release" + ], + "feature": true + }, + "114231": { + "commit": "727b5a4b47cd76fe858d4df7c9fea79b122dbe7f", + "text": "Fixed issue on Windows when calculating cpu limits on nodes with more than 64 logical processors", + "markdown": "Fixed issue on Windows when calculating cpu limits on nodes with more than 64 logical processors ([#114231](https://github.com/kubernetes/kubernetes/pull/114231), [@mweibel](https://github.com/mweibel))", + "author": "mweibel", + "author_url": "https://github.com/mweibel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114231", + "pr_number": 114231, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true + }, + "114236": { + "commit": "ca858e0c961db6ef8b22ecc3e257a02757261ea1", + "text": "Fixed a data race when emitting similar Events consecutively", + "markdown": "Fixed a data race when emitting similar Events consecutively ([#114236](https://github.com/kubernetes/kubernetes/pull/114236), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114236", + "pr_number": 114236, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "114237": { + "commit": "2b6c8420a245583d5055e9b4b8ed2b648c42529d", + "text": "Fixed a bug where when emitting similar Events consecutively, some were rejected by the apiserver.", + "markdown": "Fixed a bug where when emitting similar Events consecutively, some were rejected by the apiserver. ([#114237](https://github.com/kubernetes/kubernetes/pull/114237), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114237", + "pr_number": 114237, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "114246": { + "commit": "c2e55fb066e74ef8efa63b653ba67b3b61e086de", + "text": "Made mounter interface exportable by making `CanSafelySkipMountPointCheck` exportable function", + "markdown": "Made mounter interface exportable by making `CanSafelySkipMountPointCheck` exportable function ([#114246](https://github.com/kubernetes/kubernetes/pull/114246), [@mxpv](https://github.com/mxpv))", + "author": "mxpv", + "author_url": "https://github.com/mxpv", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114246", + "pr_number": 114246, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ], + "do_not_publish": true + }, + "114249": { + "commit": "9f85f6d1f108457d3e140bd08f4ddf670b2fc687", + "text": "Changed the error message to `cannot exec into multiple objects at a time` when file passed to `kubectl exec` contains multiple resources", + "markdown": "Changed the error message to `cannot exec into multiple objects at a time` when file passed to `kubectl exec` contains multiple resources ([#114249](https://github.com/kubernetes/kubernetes/pull/114249), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114249", + "pr_number": 114249, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "114252": { + "commit": "9758911fd5e778f7686b2602d2e0d88ad061d24b", + "text": "Added (dry run) and (server dry run) suffixes to `kubectl scale` command when `dry-run` is passed", + "markdown": "Added (dry run) and (server dry run) suffixes to `kubectl scale` command when `dry-run` is passed ([#114252](https://github.com/kubernetes/kubernetes/pull/114252), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114252", + "pr_number": 114252, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "114279": { + "commit": "d2ed6d355e2e483675331715f76cf666243042ae", + "text": "kube-up now includes `CoreDNS` version `v1.9.3`", + "markdown": "Kube-up now includes `CoreDNS` version `v1.9.3` ([#114279](https://github.com/kubernetes/kubernetes/pull/114279), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114279", + "pr_number": 114279, + "areas": [ + "provider/gcp", + "kubeadm", + "dependency" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cluster-lifecycle", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "114280": { + "commit": "d35da348c60a3c7505419741f2546ff8b0e38454", + "text": "Added \"general\", \"baseline\", and \"restricted\" debugging profiles for kubectl debug.", + "markdown": "Added \"general\", \"baseline\", and \"restricted\" debugging profiles for kubectl debug. ([#114280](https://github.com/kubernetes/kubernetes/pull/114280), [@sding3](https://github.com/sding3)) [SIG CLI]", + "author": "sding3", + "author_url": "https://github.com/sding3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114280", + "pr_number": 114280, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "114338": { + "commit": "f380944261fb704006a0b378224b31bd73e27494", + "text": "kubeadm: explicitly set `priority` for static pods with `priorityClassName: system-node-critical`", + "markdown": "Kubeadm: explicitly set `priority` for static pods with `priorityClassName: system-node-critical` ([#114338](https://github.com/kubernetes/kubernetes/pull/114338), [@champtar](https://github.com/champtar)) [SIG Cluster Lifecycle]", + "author": "champtar", + "author_url": "https://github.com/champtar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114338", + "pr_number": 114338, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "114350": { + "commit": "a40111cdd0ba5010321130f76013b6e7add767a3", + "text": "Deflaked a preemption test that may patch Nodes incorrectly.", + "markdown": "Deflaked a preemption test that may patch Nodes incorrectly. ([#114350](https://github.com/kubernetes/kubernetes/pull/114350), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114350", + "pr_number": 114350, + "areas": [ + "test" + ], + "kinds": [ + "flake", + "failing-test" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "114355": { + "commit": "b30a6a3fc51715c8368281b09ecc6d29b1566069", + "text": "NONE", + "markdown": "NONE ([#114355](https://github.com/kubernetes/kubernetes/pull/114355), [@dengyufeng2206](https://github.com/dengyufeng2206))", + "author": "dengyufeng2206", + "author_url": "https://github.com/dengyufeng2206", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114355", + "pr_number": 114355, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "114357": { + "commit": "f6564d33ba5d3125024275dac8e702d2ed97b615", + "text": "NONE", + "markdown": "NONE ([#114357](https://github.com/kubernetes/kubernetes/pull/114357), [@dengyufeng2206](https://github.com/dengyufeng2206))", + "author": "dengyufeng2206", + "author_url": "https://github.com/dengyufeng2206", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114357", + "pr_number": 114357, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scalability", + "node", + "auth" + ], + "duplicate": true, + "do_not_publish": true + }, + "114360": { + "commit": "53906cbe89773cc7be1aec0b08703c04a15dc209", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#114360](https://github.com/kubernetes/kubernetes/pull/114360), [@dengyufeng2206](https://github.com/dengyufeng2206)) [SIG Network]", + "author": "dengyufeng2206", + "author_url": "https://github.com/dengyufeng2206", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114360", + "pr_number": 114360, + "areas": [ + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "114364": { + "commit": "5437d493da9435c9a32b244cd8bb12faf88075ae", + "text": "Dynamic Resource Allocation framework can be used for network devices", + "markdown": "Dynamic Resource Allocation framework can be used for network devices ([#114364](https://github.com/kubernetes/kubernetes/pull/114364), [@bart0sh](https://github.com/bart0sh)) [SIG Node]", + "author": "bart0sh", + "author_url": "https://github.com/bart0sh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114364", + "pr_number": 114364, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "114376": { + "commit": "dfb976e25a6687a2c4ff7d374e3f01006d65df66", + "text": "kube-apiserver: errors decoding objects in etcd are now recorded in an `apiserver_storage_decode_errors_total` counter metric", + "markdown": "Kube-apiserver: errors decoding objects in etcd are now recorded in an `apiserver_storage_decode_errors_total` counter metric ([#114376](https://github.com/kubernetes/kubernetes/pull/114376), [@baomingwang](https://github.com/baomingwang)) [SIG API Machinery and Instrumentation]", + "author": "baomingwang", + "author_url": "https://github.com/baomingwang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114376", + "pr_number": 114376, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "114393": { + "commit": "3a8e2e399b2bb8786d86fbfcbe6434a9774dcd08", + "text": "Added new option to the `InterPodAffinity` scheduler plugin to ignore existing\npods` preferred inter-pod affinities if the incoming pod has no preferred inter-pod\naffinities. This option can be used as an optimization for higher scheduling throughput\n(at the cost of an occasional pod being scheduled non-optimally/violating existing\npods preferred inter-pod affinities). To enable this scheduler option, set the\n`InterPodAffinity` scheduler plugin arg `ignorePreferredTermsOfExistingPods: true`", + "markdown": "Added new option to the `InterPodAffinity` scheduler plugin to ignore existing\n pods` preferred inter-pod affinities if the incoming pod has no preferred inter-pod\n affinities. This option can be used as an optimization for higher scheduling throughput\n (at the cost of an occasional pod being scheduled non-optimally/violating existing\n pods preferred inter-pod affinities). To enable this scheduler option, set the\n `InterPodAffinity` scheduler plugin arg `ignorePreferredTermsOfExistingPods: true` ([#114393](https://github.com/kubernetes/kubernetes/pull/114393), [@danielvegamyhre](https://github.com/danielvegamyhre))", + "author": "danielvegamyhre", + "author_url": "https://github.com/danielvegamyhre", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114393", + "pr_number": 114393, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "scheduling", + "api-machinery" + ], + "duplicate": true + }, + "114397": { + "commit": "8745423a7abb8f648cd73462b70928c4da560309", + "text": "NONE", + "markdown": "NONE ([#114397](https://github.com/kubernetes/kubernetes/pull/114397), [@my-git9](https://github.com/my-git9))", + "author": "my-git9", + "author_url": "https://github.com/my-git9", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114397", + "pr_number": 114397, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "114407": { + "commit": "c9fb0c114db7f3c24506ccc40aae099bd5afdce5", + "text": "Optimized `LoadBalancer` creation with the help of attribute Internal Traffic Policy: `Local`", + "markdown": "Optimized `LoadBalancer` creation with the help of attribute Internal Traffic Policy: `Local` ([#114407](https://github.com/kubernetes/kubernetes/pull/114407), [@princepereira](https://github.com/princepereira))", + "author": "princepereira", + "author_url": "https://github.com/princepereira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114407", + "pr_number": 114407, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "114410": { + "commit": "2baa25027e28794372afe0e7ee688b417a4821a3", + "text": "The feature gates `CSIInlineVolume`, `CSIMigration`, `DaemonSetUpdateSurge`, `EphemeralContainers`, `IdentifyPodOS`, `LocalStorageCapacityIsolation`, `NetworkPolicyEndPort` and `StatefulSetMinReadySeconds` that graduated to GA in v1.25 and were unconditionally enabled have been removed in v1.27", + "markdown": "The feature gates `CSIInlineVolume`, `CSIMigration`, `DaemonSetUpdateSurge`, `EphemeralContainers`, `IdentifyPodOS`, `LocalStorageCapacityIsolation`, `NetworkPolicyEndPort` and `StatefulSetMinReadySeconds` that graduated to GA in v1.25 and were unconditionally enabled have been removed in v1.27 ([#114410](https://github.com/kubernetes/kubernetes/pull/114410), [@SataQiu](https://github.com/SataQiu)) [SIG Node]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114410", + "pr_number": 114410, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "114412": { + "commit": "2f2021e208d42885e04afc3685e246584c44bff0", + "text": "Added warnings about workload resources (Pods, ReplicaSets, Deployments, Jobs, CronJobs, or ReplicationControllers) whose names are not valid DNS labels.", + "markdown": "Added warnings about workload resources (Pods, ReplicaSets, Deployments, Jobs, CronJobs, or ReplicationControllers) whose names are not valid DNS labels. ([#114412](https://github.com/kubernetes/kubernetes/pull/114412), [@thockin](https://github.com/thockin))", + "documentation": [ + { + "description": "Creating Pods, ReplicaSets, Deployments, Jobs, CronJobs, or ReplicationControllers whose `metadata.name` field is *nota valid [DNS label](", + "url": "https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-label-names) will now get [API warnings](https://blog.k8s.io/2020/09/03/warnings/). All previously valid names and API operations are still allowed these are only warnings.", + "type": "official" + }, + { + "description": "For example, naming a Deployment `foo.bar` (a DNS subdomain) now returns a warning, whereas `foobar` or `foo-bar` (DNS labels) do not. For backwards compatibility, the Kubernetes API for these resources allows the `metadata.name` field to be a [DNS subdomain](", + "url": "https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#dns-subdomain-names). DNS labels are a subset of DNS subdomains. All DNS label names are valid DNS subdomain names, but using a DNS subdomain that is not _also_ a valid DNS label (e.g. a name which includes dots) can produce unexpected behaviors when used as a pod's hostname.", + "type": "official" + }, + { + "description": "See [Object Names and IDs](", + "url": "https://k8s.io/docs/concepts/overview/working-with-objects/names/) for more information.", + "type": "external" + } + ], + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114412", + "pr_number": 114412, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "114414": { + "commit": "5943f50dfa1e5fd254123ccc7b935d26e5395618", + "text": "NONE", + "markdown": "NONE ([#114414](https://github.com/kubernetes/kubernetes/pull/114414), [@my-git9](https://github.com/my-git9))", + "author": "my-git9", + "author_url": "https://github.com/my-git9", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114414", + "pr_number": 114414, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "114417": { + "commit": "5b241820b7ce05d35f098244a63ac1d9572ad9c8", + "text": "total test spec is now available by `ProgressReporter`, it will be reported before test suite got executed.", + "markdown": "Total test spec is now available by `ProgressReporter`, it will be reported before test suite got executed. ([#114417](https://github.com/kubernetes/kubernetes/pull/114417), [@chendave](https://github.com/chendave))", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114417", + "pr_number": 114417, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "114418": { + "commit": "5bb7326c3643f52a7b615e6f63911add4bbcab3b", + "text": "Added new feature gate `ServiceNodePortStaticSubrange`, to enable the new strategy in the `NodePort` Service port allocators, so the node port range is subdivided and dynamic allocated `NodePort` port for Services are allocated preferentially from the upper range.", + "markdown": "Added new feature gate `ServiceNodePortStaticSubrange`, to enable the new strategy in the `NodePort` Service port allocators, so the node port range is subdivided and dynamic allocated `NodePort` port for Services are allocated preferentially from the upper range. ([#114418](https://github.com/kubernetes/kubernetes/pull/114418), [@xuzhenglun](https://github.com/xuzhenglun))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3682", + "type": "KEP" + } + ], + "author": "xuzhenglun", + "author_url": "https://github.com/xuzhenglun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114418", + "pr_number": 114418, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "114426": { + "commit": "78fe7c0dbc418e8692b08da055beb13302ef2efb", + "text": "NONE", + "markdown": "NONE ([#114426](https://github.com/kubernetes/kubernetes/pull/114426), [@my-git9](https://github.com/my-git9))", + "author": "my-git9", + "author_url": "https://github.com/my-git9", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114426", + "pr_number": 114426, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "114434": { + "commit": "b99fe0d5b9896dd3fe9a2c1bc3b399a18ad080d2", + "text": "`client-go`: `sharedInformerFactory` now waits for goroutines during shutdown for metadatainformer and dynamicinformer.", + "markdown": "`client-go`: `sharedInformerFactory` now waits for goroutines during shutdown for metadatainformer and dynamicinformer. ([#114434](https://github.com/kubernetes/kubernetes/pull/114434), [@howardjohn](https://github.com/howardjohn))", + "author": "howardjohn", + "author_url": "https://github.com/howardjohn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114434", + "pr_number": 114434, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "114445": { + "commit": "e2d407c1d20f0cccc550888d1fc01319c591eadf", + "text": "`MinDomainsInPodTopologySpread` feature gate is enabled by default as a\nBeta feature in 1.27.", + "markdown": "`MinDomainsInPodTopologySpread` feature gate is enabled by default as a\n Beta feature in 1.27. ([#114445](https://github.com/kubernetes/kubernetes/pull/114445), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3022-min-domains-in-pod-topology-spread", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114445", + "pr_number": 114445, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "114446": { + "commit": "20c17da14210fbc0e144e0f2ed38a3bf9e98b633", + "text": "Removed flag `master-service-namespace` from `api-server` arguments", + "markdown": "Removed flag `master-service-namespace` from `api-server` arguments ([#114446](https://github.com/kubernetes/kubernetes/pull/114446), [@lengrongfu](https://github.com/lengrongfu))", + "author": "lengrongfu", + "author_url": "https://github.com/lengrongfu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114446", + "pr_number": 114446, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "114455": { + "commit": "03bfbdd8aa04739a5d99bdefeb9fcf379ffb970d", + "text": "kubeadm: fixed the bug where `kubeadm` always does CRI detection even if it is not required by a phase subcommand", + "markdown": "Kubeadm: fixed the bug where `kubeadm` always does CRI detection even if it is not required by a phase subcommand ([#114455](https://github.com/kubernetes/kubernetes/pull/114455), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114455", + "pr_number": 114455, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "114459": { + "commit": "25efa7701a509eed3623d9a3db5f0e22aeef8f3b", + "text": "Fixed stuck apiserver if an aggregated apiservice returned `304 Not Modified` for aggregated discovery information", + "markdown": "Fixed stuck apiserver if an aggregated apiservice returned `304 Not Modified` for aggregated discovery information ([#114459](https://github.com/kubernetes/kubernetes/pull/114459), [@alexzielenski](https://github.com/alexzielenski))", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114459", + "pr_number": 114459, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "114460": { + "commit": "61cdb86814489624dd5a169526797e186a118e66", + "text": "`kubectl port-forward` now exits with exit code 1 when remote connection is\nlost", + "markdown": "`kubectl port-forward` now exits with exit code 1 when remote connection is\n lost ([#114460](https://github.com/kubernetes/kubernetes/pull/114460), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114460", + "pr_number": 114460, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "114464": { + "commit": "685d639cb5f04c9c388866efc8b39dec80e15856", + "text": "Fixed file permission issues that happened during update of `Secret`/`ConfigMap`/`projected volume` when `fsGroup` is used. The problem caused a race condition where application gets intermittent permission denied error when reading files that were just updated, before the correct permissions were applied.", + "markdown": "Fixed file permission issues that happened during update of `Secret`/`ConfigMap`/`projected volume` when `fsGroup` is used. The problem caused a race condition where application gets intermittent permission denied error when reading files that were just updated, before the correct permissions were applied. ([#114464](https://github.com/kubernetes/kubernetes/pull/114464), [@tsaarni](https://github.com/tsaarni))", + "author": "tsaarni", + "author_url": "https://github.com/tsaarni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114464", + "pr_number": 114464, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "114472": { + "commit": "119dc95369150964d76149208ff6d0f0542798bf", + "text": "`Kubelet` no longer creates certain legacy iptables rules by default.\nIt is possible that this will cause problems with some third-party components\nthat improperly depended on those rules. If this affects you, you can run\n`kubelet` with `--feature-gates=IPTablesOwnershipCleanup=false`, but a bug should also be filed against the third-party component.", + "markdown": "`Kubelet` no longer creates certain legacy iptables rules by default.\n It is possible that this will cause problems with some third-party components\n that improperly depended on those rules. If this affects you, you can run\n `kubelet` with `--feature-gates=IPTablesOwnershipCleanup=false`, but a bug should also be filed against the third-party component. ([#114472](https://github.com/kubernetes/kubernetes/pull/114472), [@danwinship](https://github.com/danwinship))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3178", + "type": "KEP" + }, + { + "description": "[Other doc]", + "url": "https://kubernetes.io/blog/2022/09/07/iptables-chains-not-api/", + "type": "external" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114472", + "pr_number": 114472, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "114490": { + "commit": "a94a35293b03ca4902ec84a42278f853e3268541", + "text": "Changed docs for `--contention-profiling` flag to reflect it performed block profiling", + "markdown": "Changed docs for `--contention-profiling` flag to reflect it performed block profiling ([#114490](https://github.com/kubernetes/kubernetes/pull/114490), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", + "author": "MadhavJivrajani", + "author_url": "https://github.com/MadhavJivrajani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114490", + "pr_number": 114490, + "areas": [ + "kubelet", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "docs", + "cloud-provider" + ], + "duplicate": true + }, + "114494": { + "commit": "390ddafe9e55ea4082807aaaa95a7d9b06fd3342", + "text": "The `ReadWriteOncePod` feature gate has been graduated to beta.", + "markdown": "The `ReadWriteOncePod` feature gate has been graduated to beta. ([#114494](https://github.com/kubernetes/kubernetes/pull/114494), [@chrishenzie](https://github.com/chrishenzie))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2485", + "type": "KEP" + } + ], + "author": "chrishenzie", + "author_url": "https://github.com/chrishenzie", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114494", + "pr_number": 114494, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true + }, + "114497": { + "commit": "94e30facdbe4d21234a07da0b7998b4b8a3b1414", + "text": "Introduced new metrics removing the redundant subsystem in kube-apiserver pod logs metrics and deprecate the original ones:\n- kube_apiserver_pod_logs_pods_logs_backend_tls_failure_total becomes kube_apiserver_pod_logs_backend_tls_failure_total\n- kube_apiserver_pod_logs_pods_logs_insecure_backend_total becomes kube_apiserver_pod_logs_insecure_backend_total", + "markdown": "Introduced new metrics removing the redundant subsystem in kube-apiserver pod logs metrics and deprecate the original ones:\n - kube_apiserver_pod_logs_pods_logs_backend_tls_failure_total becomes kube_apiserver_pod_logs_backend_tls_failure_total\n - kube_apiserver_pod_logs_pods_logs_insecure_backend_total becomes kube_apiserver_pod_logs_insecure_backend_total ([#114497](https://github.com/kubernetes/kubernetes/pull/114497), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114497", + "pr_number": 114497, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "114498": { + "commit": "10802e9be1ae76d837254dcde43747151a2833bb", + "text": "NONE", + "markdown": "NONE ([#114498](https://github.com/kubernetes/kubernetes/pull/114498), [@runzhliu](https://github.com/runzhliu))", + "author": "runzhliu", + "author_url": "https://github.com/runzhliu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114498", + "pr_number": 114498, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "114502": { + "commit": "cf14b50b0d2215f039a6c1109445f01a7a222c21", + "text": "Kubernetes is now built with go 1.20", + "markdown": "Kubernetes is now built with go 1.20 ([#114502](https://github.com/kubernetes/kubernetes/pull/114502), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114502", + "pr_number": 114502, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "114505": { + "commit": "038d983769320608b82a6a7840477a340b30b3fe", + "text": "Added warnings to the Services API. Kubernetes now warns for Services in the case of:\n- IPv4 addresses with leading zeros\n- IPv6 address in non-canonical format (RFC 5952)", + "markdown": "Added warnings to the Services API. Kubernetes now warns for Services in the case of:\n - IPv4 addresses with leading zeros\n - IPv6 address in non-canonical format (RFC 5952) ([#114505](https://github.com/kubernetes/kubernetes/pull/114505), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114505", + "pr_number": 114505, + "kinds": [ + "bug", + "documentation", + "cleanup", + "api-change", + "deprecation" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "114516": { + "commit": "c0c386b9c9c0eb798e8ec8d37fb0b2dd6e4554d7", + "text": "Fixed an issue where failed pods associated with a job with `parallelism = 1` are recreated by the job controller honoring exponential backoff delay again. However, for jobs with `parallelism \u003e 1`, pods might be created without exponential backoff delay.", + "markdown": "Fixed an issue where failed pods associated with a job with `parallelism = 1` are recreated by the job controller honoring exponential backoff delay again. However, for jobs with `parallelism \u003e 1`, pods might be created without exponential backoff delay. ([#114516](https://github.com/kubernetes/kubernetes/pull/114516), [@nikhita](https://github.com/nikhita))", + "author": "nikhita", + "author_url": "https://github.com/nikhita", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114516", + "pr_number": 114516, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "114518": { + "commit": "3f6738b8e6c7f3412ec700c757ae22460cf73e1b", + "text": "Fixed a regression that the scheduler always goes through all Filter plugins.", + "markdown": "Fixed a regression that the scheduler always goes through all Filter plugins. ([#114518](https://github.com/kubernetes/kubernetes/pull/114518), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114518", + "pr_number": 114518, + "kinds": [ + "regression" + ], + "sigs": [ + "scheduling" + ] + }, + "114523": { + "commit": "4b2b4e19ccee49b30b85273ded885caf5b93e21c", + "text": "Graduated the `LegacyServiceAccountTokenTracking` feature gate to Beta. The usage of auto-generated secret-based service account token now produces warnings by default, and relevant Secrets are labeled with a last-used timestamp (label key `kubernetes.io/legacy-token-last-used`).", + "markdown": "Graduated the `LegacyServiceAccountTokenTracking` feature gate to Beta. The usage of auto-generated secret-based service account token now produces warnings by default, and relevant Secrets are labeled with a last-used timestamp (label key `kubernetes.io/legacy-token-last-used`). ([#114523](https://github.com/kubernetes/kubernetes/pull/114523), [@zshihang](https://github.com/zshihang)) [SIG API Machinery and Auth]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/2799-reduction-of-secret-based-service-account-token", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114523", + "pr_number": 114523, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true + }, + "114540": { + "commit": "4a98fa253613db1590b44bdd1eda55a17aeba7d8", + "text": "kubeadm: removed the deprecated `v1beta2` API. kubeadm 1.26's `config migrate`\ncommand can be used to migrate a `v1beta2` configuration file to `v1beta3`", + "markdown": "Kubeadm: removed the deprecated `v1beta2` API. kubeadm 1.26's `config migrate`\n command can be used to migrate a `v1beta2` configuration file to `v1beta3` ([#114540](https://github.com/kubernetes/kubernetes/pull/114540), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114540", + "pr_number": 114540, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "114570": { + "commit": "8fcad2ea7e5bd185133a96dd7a3ed23c7f56b035", + "text": "NONE", + "markdown": "NONE ([#114570](https://github.com/kubernetes/kubernetes/pull/114570), [@dengyufeng2206](https://github.com/dengyufeng2206))", + "author": "dengyufeng2206", + "author_url": "https://github.com/dengyufeng2206", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114570", + "pr_number": 114570, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "114572": { + "commit": "68eea2468c58b7bd24ec871686795983b7a41ffd", + "text": "Dec 16 09:28:34 n198-252-054 kubelet[2509137]: fatal error: concurrent map iteration and map write\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: goroutine 207 [running]:\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).generateDeviceTopologyHints.func1({0x52e4410, 0xc00363f620})\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/devicemanager/topology_hints.go:163 +0xe7\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask.IterateBitMasks.func1({0xc000a4b858?, 0x77f0930?, 0xc00025d800?}, {0xc00363f618?, 0x0?, 0x416d57?}, 0xc001919158?)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/bitmask/bitmask.go:211 +0xa3\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask.IterateBitMasks.func1({0xc000a4b850, 0x2, 0x2}, {0x77f0930?, 0x0, 0x0}, 0x1)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/bitmask/bitmask.go:215 +0xcc\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask.IterateBitMasks({0xc000a4b850, 0x2, 0x2}, 0x41232a0?)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/bitmask/bitmask.go:220 +0x90\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).generateDeviceTopologyHints(0x4126d20?, {0xc001493f80?, 0xc001493f80?}, 0x14?, 0xa?, 0xc001493f80?)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/devicemanager/topology_hints.go:160 +0xdc\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).GetTopologyHints(0xc000180f00, 0xc001229680, 0xc0023471e0)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/devicemanager/topology_hints.go:80 +0xb36\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*containerScope).accumulateProvidersHints(0xc00025d800?, 0xc002347340?, 0xc0023471e0)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/scope_container.go:75 +0xcd\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*containerScope).calculateAffinity(0xc000a45630, 0xc002347340?, 0xc00025d800?)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/scope_container.go:83 +0x33\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*containerScope).Admit(0xc000a45630, 0xc001229680)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/scope_container.go:53 +0x33b\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*manager).Admit(0xc000227340, 0xc0030ed5c0)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/topology_manager.go:213 +0xaa\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).canAdmitPod(0xc0002ca400, {0xc001287080, 0xc, 0x16}, 0xc001229680)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2085 +0x143\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).HandlePodAdditions(0xc0002ca400, {0xc0013a8710?, 0x1, 0x1})\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2363 +0x1e5\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).syncLoopIteration(0xc0002ca400, {0x52c7f28, 0xc000132000}, 0xc000fccc00, {0x52d1660, 0xc0002ca400?}, 0xc000f6f8c0, 0xc000f6f920, 0xc000fcd680)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2204 +0xb73\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).syncLoop(0xc0002ca400, {0x52c7f28, 0xc000132000}, 0xc000ff6790?, {0x52d1660, 0xc0002ca400})\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2147 +0x312\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).Run(0xc0002ca400, 0x0?)\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:1558 +0x729\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: created by k8s.io/kubernetes/cmd/kubelet/app.startKubelet\nDec 16 09:28:34 n198-252-054 kubelet[2509137]: cmd/kubelet/app/server.go:1193 +0xb8", + "markdown": "Dec 16 09:28:34 n198-252-054 kubelet[2509137]: fatal error: concurrent map iteration and map write\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: goroutine 207 [running]:\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).generateDeviceTopologyHints.func1({0x52e4410, 0xc00363f620})\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/devicemanager/topology_hints.go:163 +0xe7\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask.IterateBitMasks.func1({0xc000a4b858?, 0x77f0930?, 0xc00025d800?}, {0xc00363f618?, 0x0?, 0x416d57?}, 0xc001919158?)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/bitmask/bitmask.go:211 +0xa3\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask.IterateBitMasks.func1({0xc000a4b850, 0x2, 0x2}, {0x77f0930?, 0x0, 0x0}, 0x1)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/bitmask/bitmask.go:215 +0xcc\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager/bitmask.IterateBitMasks({0xc000a4b850, 0x2, 0x2}, 0x41232a0?)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/bitmask/bitmask.go:220 +0x90\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).generateDeviceTopologyHints(0x4126d20?, {0xc001493f80?, 0xc001493f80?}, 0x14?, 0xa?, 0xc001493f80?)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/devicemanager/topology_hints.go:160 +0xdc\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/devicemanager.(*ManagerImpl).GetTopologyHints(0xc000180f00, 0xc001229680, 0xc0023471e0)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/devicemanager/topology_hints.go:80 +0xb36\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*containerScope).accumulateProvidersHints(0xc00025d800?, 0xc002347340?, 0xc0023471e0)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/scope_container.go:75 +0xcd\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*containerScope).calculateAffinity(0xc000a45630, 0xc002347340?, 0xc00025d800?)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/scope_container.go:83 +0x33\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*containerScope).Admit(0xc000a45630, 0xc001229680)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/scope_container.go:53 +0x33b\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet/cm/topologymanager.(*manager).Admit(0xc000227340, 0xc0030ed5c0)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/cm/topologymanager/topology_manager.go:213 +0xaa\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).canAdmitPod(0xc0002ca400, {0xc001287080, 0xc, 0x16}, 0xc001229680)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2085 +0x143\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).HandlePodAdditions(0xc0002ca400, {0xc0013a8710?, 0x1, 0x1})\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2363 +0x1e5\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).syncLoopIteration(0xc0002ca400, {0x52c7f28, 0xc000132000}, 0xc000fccc00, {0x52d1660, 0xc0002ca400?}, 0xc000f6f8c0, 0xc000f6f920, 0xc000fcd680)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2204 +0xb73\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).syncLoop(0xc0002ca400, {0x52c7f28, 0xc000132000}, 0xc000ff6790?, {0x52d1660, 0xc0002ca400})\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:2147 +0x312\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: k8s.io/kubernetes/pkg/kubelet.(*Kubelet).Run(0xc0002ca400, 0x0?)\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: pkg/kubelet/kubelet.go:1558 +0x729\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: created by k8s.io/kubernetes/cmd/kubelet/app.startKubelet\n Dec 16 09:28:34 n198-252-054 kubelet[2509137]: cmd/kubelet/app/server.go:1193 +0xb8 ([#114572](https://github.com/kubernetes/kubernetes/pull/114572), [@huyinhou](https://github.com/huyinhou)) [SIG Node]", + "author": "huyinhou", + "author_url": "https://github.com/huyinhou", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114572", + "pr_number": 114572, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "114584": { + "commit": "eb34f69562bcfd5eda02ccc62dca098113df3c24", + "text": "Describing the CRs will now hide `.metadata.managedFields`", + "markdown": "Describing the CRs will now hide `.metadata.managedFields` ([#114584](https://github.com/kubernetes/kubernetes/pull/114584), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114584", + "pr_number": 114584, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true + }, + "114585": { + "commit": "5882479457ac2554f70fc4678aa86eca8c49ae8b", + "text": "The list-type of the alpha `resourceClaims` field introduced to `Pods` in `1.26.0` was modified from `set` to `map`, resolving an incompatibility with use of this schema in `CustomResourceDefinitions` and with server-side apply.", + "markdown": "The list-type of the alpha `resourceClaims` field introduced to `Pods` in `1.26.0` was modified from `set` to `map`, resolving an incompatibility with use of this schema in `CustomResourceDefinitions` and with server-side apply. ([#114585](https://github.com/kubernetes/kubernetes/pull/114585), [@JoelSpeed](https://github.com/JoelSpeed))", + "author": "JoelSpeed", + "author_url": "https://github.com/JoelSpeed", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114585", + "pr_number": 114585, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "114586": { + "commit": "46f3821bf4ce0e839a698b7f95f1ee9b08e198cf", + "text": "Renamed API server identity Lease labels to use the key `apiserver.kubernetes.io/identity`", + "markdown": "Renamed API server identity Lease labels to use the key `apiserver.kubernetes.io/identity` ([#114586](https://github.com/kubernetes/kubernetes/pull/114586), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery, Apps, Cloud Provider and Testing]", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114586", + "pr_number": 114586, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "114596": { + "commit": "6e65c98681af49a97c95d2c7711f5df3af578943", + "text": "`kube-controller-manager` will not run nodeipam controller when allocator type\nis `CloudAllocator` and the cloud provider is not enabled.", + "markdown": "`kube-controller-manager` will not run nodeipam controller when allocator type\n is `CloudAllocator` and the cloud provider is not enabled. ([#114596](https://github.com/kubernetes/kubernetes/pull/114596), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114596", + "pr_number": 114596, + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "114598": { + "commit": "a772691165313bf320fb0c198476132ea65befde", + "text": "NONE", + "markdown": "NONE ([#114598](https://github.com/kubernetes/kubernetes/pull/114598), [@kunkunhaohao](https://github.com/kunkunhaohao))", + "author": "kunkunhaohao", + "author_url": "https://github.com/kunkunhaohao", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114598", + "pr_number": 114598, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "114602": { + "commit": "e218e0ede4eef31027adb6c868b3b6099b25f02b", + "text": "NONE", + "markdown": "NONE ([#114602](https://github.com/kubernetes/kubernetes/pull/114602), [@Shubham82](https://github.com/Shubham82)) [SIG Release]", + "author": "Shubham82", + "author_url": "https://github.com/Shubham82", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114602", + "pr_number": 114602, + "areas": [ + "release-eng" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "release" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "114605": { + "commit": "a94caec59c9a33bf2861fcf0b93b6429bdef0d54", + "text": "Fixed the problem `Pod` terminating stuck because of trying to umount not actual mounted dir.", + "markdown": "Fixed the problem `Pod` terminating stuck because of trying to umount not actual mounted dir. ([#114605](https://github.com/kubernetes/kubernetes/pull/114605), [@mochizuki875](https://github.com/mochizuki875))", + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114605", + "pr_number": 114605, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true, + "do_not_publish": true + }, + "114609": { + "commit": "92f0818cf2ee9e40b16b76ad5125dd3490d3ec52", + "text": "Enabled usage of `kube-proxy`, `kube-scheduler` and `kubelet` HTTP APIs for changing the logging\n verbosity at runtime for JSON output.", + "markdown": "Enabled usage of `kube-proxy`, `kube-scheduler` and `kubelet` HTTP APIs for changing the logging\n verbosity at runtime for JSON output. ([#114609](https://github.com/kubernetes/kubernetes/pull/114609), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114609", + "pr_number": 114609, + "areas": [ + "test", + "apiserver", + "cloudprovider" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "114623": { + "commit": "bd43394467d93a5431cd6fff41231c144ec11e54", + "text": "A terminating pod on a node that is not caused by preemption no longer prevents `kube-scheduler` from preempting pods on that node\n- Rename `PreemptionByKubeScheduler` to `PreemptionByScheduler`", + "markdown": "A terminating pod on a node that is not caused by preemption no longer prevents `kube-scheduler` from preempting pods on that node\n - Rename `PreemptionByKubeScheduler` to `PreemptionByScheduler` ([#114623](https://github.com/kubernetes/kubernetes/pull/114623), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114623", + "pr_number": 114623, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "duplicate_kind": true + }, + "114625": { + "commit": "04e7021d064e1af5f388b66623117e3a98f78da4", + "text": "[E2E] Pods spawned by E2E tests can now pull images from the private registry using the new --e2e-docker-config-file flag", + "markdown": "[E2E] Pods spawned by E2E tests can now pull images from the private registry using the new --e2e-docker-config-file flag ([#114625](https://github.com/kubernetes/kubernetes/pull/114625), [@Divya063](https://github.com/Divya063)) [SIG Node and Testing]", + "author": "Divya063", + "author_url": "https://github.com/Divya063", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114625", + "pr_number": 114625, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "114630": { + "commit": "7a507e342b29e6ea1d6d217cc66b2c0bd1b87460", + "text": "NONE", + "markdown": "NONE ([#114630](https://github.com/kubernetes/kubernetes/pull/114630), [@thdrnsdk](https://github.com/thdrnsdk))", + "author": "thdrnsdk", + "author_url": "https://github.com/thdrnsdk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114630", + "pr_number": 114630, + "areas": [ + "release-eng" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "release" + ], + "do_not_publish": true + }, + "114647": { + "commit": "457341c3d408097025af5a9b6f5917439c0debdd", + "text": "The job controller now ignores the annotation `batch.kubernetes.io/job-tracking`. The progress of all jobs is tracked using pod finalizers.", + "markdown": "The job controller now ignores the annotation `batch.kubernetes.io/job-tracking`. The progress of all jobs is tracked using pod finalizers. ([#114647](https://github.com/kubernetes/kubernetes/pull/114647), [@kannon92](https://github.com/kannon92))", + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114647", + "pr_number": 114647, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "114669": { + "commit": "68b96575a25ad106cd969783e5dda4fdf26db35c", + "text": "`kube-proxy` with `--proxy-mode=ipvs` can be used with statically linked kernels.\nThe reseved IPv4 range `TEST-NET-2` in `rfc5737` MUST NOT be used for `ClusterIP` or `loadBalancerIP` since address `198.51.100.0` is used for probing.", + "markdown": "`kube-proxy` with `--proxy-mode=ipvs` can be used with statically linked kernels.\n The reseved IPv4 range `TEST-NET-2` in `rfc5737` MUST NOT be used for `ClusterIP` or `loadBalancerIP` since address `198.51.100.0` is used for probing. ([#114669](https://github.com/kubernetes/kubernetes/pull/114669), [@uablrek](https://github.com/uablrek))", + "author": "uablrek", + "author_url": "https://github.com/uablrek", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114669", + "pr_number": 114669, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "114680": { + "commit": "eff6b9f648267d9c1386eb9bad7b1fe0c72b41a5", + "text": "k8s.io/component-base/logs: usage of the pflag values in a normal Go flag set led to panics when printing the help message", + "markdown": "K8s.io/component-base/logs: usage of the pflag values in a normal Go flag set led to panics when printing the help message ([#114680](https://github.com/kubernetes/kubernetes/pull/114680), [@pohly](https://github.com/pohly)) [SIG Instrumentation]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114680", + "pr_number": 114680, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "instrumentation" + ], + "duplicate_kind": true + }, + "114687": { + "commit": "d9ed2ff4b04d0d41b5913d4d93dddf5a6525e83e", + "text": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", + "markdown": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#114687](https://github.com/kubernetes/kubernetes/pull/114687), [@freddie400](https://github.com/freddie400)) [SIG API Machinery, Apps, Autoscaling, Cluster Lifecycle and Instrumentation]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "freddie400", + "author_url": "https://github.com/freddie400", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114687", + "pr_number": 114687, + "areas": [ + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "autoscaling", + "apps", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "114694": { + "commit": "201caf28b270d73c31b4f1f358548b1be608446c", + "text": "None", + "markdown": "None ([#114694](https://github.com/kubernetes/kubernetes/pull/114694), [@yanggangtony](https://github.com/yanggangtony))", + "author": "yanggangtony", + "author_url": "https://github.com/yanggangtony", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114694", + "pr_number": 114694, + "areas": [ + "release-eng" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "release" + ], + "do_not_publish": true + }, + "114695": { + "commit": "8e20effbb7b99c9c5caad4b8f947ca645bbaf21b", + "text": "kubelet config file will be backed up to `/etc/kubernetes/tmp/` folder with `kubeadm-kubelet-config` append with a random suffix as the filename", + "markdown": "Kubelet config file will be backed up to `/etc/kubernetes/tmp/` folder with `kubeadm-kubelet-config` append with a random suffix as the filename ([#114695](https://github.com/kubernetes/kubernetes/pull/114695), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle]", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114695", + "pr_number": 114695, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "114699": { + "commit": "8dd70a16ad080f167ba34b84d845a58422d8e51c", + "text": "scheduling cycle now terminates immediately when any scheduler plugin returns an \n`unschedulableAndUnresolvable` status in `PostFilter`.", + "markdown": "Scheduling cycle now terminates immediately when any scheduler plugin returns an \n `unschedulableAndUnresolvable` status in `PostFilter`. ([#114699](https://github.com/kubernetes/kubernetes/pull/114699), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114699", + "pr_number": 114699, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true + }, + "114701": { + "commit": "aa49f001bcea0c5e8474aee06e46c2d376843e06", + "text": "NONE", + "markdown": "NONE ([#114701](https://github.com/kubernetes/kubernetes/pull/114701), [@goushicui](https://github.com/goushicui))", + "author": "goushicui", + "author_url": "https://github.com/goushicui", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114701", + "pr_number": 114701, + "areas": [ + "kubelet" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "114731": { + "commit": "d29e3bd7aa4978f10a01b9dfdebb2a647634f8fe", + "text": "`k8s.io/component-base/logs` now also supports adding command line flags to a `flag.FlagSet`.", + "markdown": "`k8s.io/component-base/logs` now also supports adding command line flags to a `flag.FlagSet`. ([#114731](https://github.com/kubernetes/kubernetes/pull/114731), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114731", + "pr_number": 114731, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "architecture" + ], + "feature": true, + "duplicate_kind": true + }, + "114734": { + "commit": "ba0dbdbd11b063aca97121b6436141b37f5a1ec0", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#114734](https://github.com/kubernetes/kubernetes/pull/114734), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Network]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114734", + "pr_number": 114734, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "114736": { + "commit": "4e70155dbdfde4f66beb8e429a6b002b0741dfc2", + "text": "`tryUnmount` now respects `mounter.withSafeNotMountedBehavior`", + "markdown": "`tryUnmount` now respects `mounter.withSafeNotMountedBehavior` ([#114736](https://github.com/kubernetes/kubernetes/pull/114736), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114736", + "pr_number": 114736, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "114740": { + "commit": "00aae4c10c204d258e62a96f30970e9b91b29149", + "text": "Improved misleading message, in case of no metrics received for the `HPA` controlled pods.", + "markdown": "Improved misleading message, in case of no metrics received for the `HPA` controlled pods. ([#114740](https://github.com/kubernetes/kubernetes/pull/114740), [@kushagra98](https://github.com/kushagra98))", + "author": "kushagra98", + "author_url": "https://github.com/kushagra98", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114740", + "pr_number": 114740, + "kinds": [ + "cleanup" + ], + "sigs": [ + "autoscaling", + "apps" + ], + "duplicate": true + }, + "114768": { + "commit": "c84c8add70281c1620819fbc9805d57265bd2ae1", + "text": "The job controller back-off logic is now decoupled from workqueue. In case of parallelism \u003e 1, if there are multiple new failures in a reconciliation cycle, all the failures are taken into account to compute the back-off. Previously, the back-off kicked in for all types of failures; with this change, only pod failures are taken into account. If the back-off limits exceeds, the job is marked as failed immediately; before this change, the job is marked as failed in the next back-off.", + "markdown": "The job controller back-off logic is now decoupled from workqueue. In case of parallelism \u003e 1, if there are multiple new failures in a reconciliation cycle, all the failures are taken into account to compute the back-off. Previously, the back-off kicked in for all types of failures; with this change, only pod failures are taken into account. If the back-off limits exceeds, the job is marked as failed immediately; before this change, the job is marked as failed in the next back-off. ([#114768](https://github.com/kubernetes/kubernetes/pull/114768), [@sathyanarays](https://github.com/sathyanarays)) [SIG Apps and Testing]", + "author": "sathyanarays", + "author_url": "https://github.com/sathyanarays", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114768", + "pr_number": 114768, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "114770": { + "commit": "e535bd8d24f105081e126e0291b7ae09f559e327", + "text": "Fixed clearing of rate-limiter for the queue of checks for cleaning stale pod disruption conditions. The bug could result in the PDB synchronization updates firing too often or the pod disruption cleanups taking too long to happen.", + "markdown": "Fixed clearing of rate-limiter for the queue of checks for cleaning stale pod disruption conditions. The bug could result in the PDB synchronization updates firing too often or the pod disruption cleanups taking too long to happen. ([#114770](https://github.com/kubernetes/kubernetes/pull/114770), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114770", + "pr_number": 114770, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "114773": { + "commit": "280473ebc4e45f9001f5f9789c318ff7329bc5f0", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#114773](https://github.com/kubernetes/kubernetes/pull/114773), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Network]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114773", + "pr_number": 114773, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "114774": { + "commit": "0b2e54123f233d87c3a132c94d62d0e551bf60ba", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#114774](https://github.com/kubernetes/kubernetes/pull/114774), [@kkkkun](https://github.com/kkkkun)) [SIG API Machinery]", + "author": "kkkkun", + "author_url": "https://github.com/kkkkun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114774", + "pr_number": 114774, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "114776": { + "commit": "bdaa6bb617d776882034cd8e9db2b97d3a4b9fe4", + "text": "Fixed CSI `PersistentVolumes` to allow Secrets names longer than 63 characters.", + "markdown": "Fixed CSI `PersistentVolumes` to allow Secrets names longer than 63 characters. ([#114776](https://github.com/kubernetes/kubernetes/pull/114776), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114776", + "pr_number": 114776, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "114794": { + "commit": "cc9cc4d3eaec45206f353216a1c3ff6edaf07d30", + "text": "kube-apiserver: removed N^2 behavior loading webhook configurations.", + "markdown": "Kube-apiserver: removed N^2 behavior loading webhook configurations. ([#114794](https://github.com/kubernetes/kubernetes/pull/114794), [@lavalamp](https://github.com/lavalamp)) [SIG API Machinery, Architecture, CLI, Cloud Provider and Node]", + "author": "lavalamp", + "author_url": "https://github.com/lavalamp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114794", + "pr_number": 114794, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node", + "api-machinery", + "cli", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "114802": { + "commit": "6f6c468168b837cc884622f5657b4e17a093b758", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#114802](https://github.com/kubernetes/kubernetes/pull/114802), [@moshe010](https://github.com/moshe010)) [SIG Node]", + "author": "moshe010", + "author_url": "https://github.com/moshe010", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114802", + "pr_number": 114802, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "114814": { + "commit": "6adf60fdf4fd0428cc7f101fbbb608cd02d99cf5", + "text": "`Service` of type `ExternalName` do not create an `Endpoint` anymore.", + "markdown": "`Service` of type `ExternalName` do not create an `Endpoint` anymore. ([#114814](https://github.com/kubernetes/kubernetes/pull/114814), [@panslava](https://github.com/panslava))", + "author": "panslava", + "author_url": "https://github.com/panslava", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114814", + "pr_number": 114814, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps", + "testing" + ], + "duplicate": true + }, + "114857": { + "commit": "1af8278647d7d80aea152269baafaf278beb5cb3", + "text": "Fixed bug in CRD Validation Rules (beta) and `ValidatingAdmissionPolicy` (alpha) where all admission requests could result in `internal error: runtime error: index out of range [3] with length 3 evaluating rule: \u003crule name\u003e` under certain circumstances.", + "markdown": "Fixed bug in CRD Validation Rules (beta) and `ValidatingAdmissionPolicy` (alpha) where all admission requests could result in `internal error: runtime error: index out of range [3] with length 3 evaluating rule: \u003crule name\u003e` under certain circumstances. ([#114857](https://github.com/kubernetes/kubernetes/pull/114857), [@jpbetz](https://github.com/jpbetz))", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114857", + "pr_number": 114857, + "areas": [ + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider" + ], + "duplicate": true + }, + "114863": { + "commit": "3742d14998fc41dd8c086e8d44cf6b50023c831e", + "text": "kubectl: enabled usage of label selector for filtering out resources when pruning for kubectl diff", + "markdown": "Kubectl: enabled usage of label selector for filtering out resources when pruning for kubectl diff ([#114863](https://github.com/kubernetes/kubernetes/pull/114863), [@danlenar](https://github.com/danlenar))", + "author": "danlenar", + "author_url": "https://github.com/danlenar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114863", + "pr_number": 114863, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "114869": { + "commit": "0e49c542d7a73dd056f8f32f33939207dd009b14", + "text": "Fixed panic validating custom resource definition schemas that set `multipleOf` to 0", + "markdown": "Fixed panic validating custom resource definition schemas that set `multipleOf` to 0 ([#114869](https://github.com/kubernetes/kubernetes/pull/114869), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114869", + "pr_number": 114869, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "114871": { + "commit": "8f45b64c93563ef682f24d1f6300679d03d946f1", + "text": "Migrated the `ReplicaSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the `ReplicaSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#114871](https://github.com/kubernetes/kubernetes/pull/114871), [@Namanl2001](https://github.com/Namanl2001))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "Namanl2001", + "author_url": "https://github.com/Namanl2001", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114871", + "pr_number": 114871, + "areas": [ + "test", + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "114872": { + "commit": "6e213e7390b60c6db85210f322a213768cefb172", + "text": "`client-go`: fixed the wait time for trying to acquire the leader lease", + "markdown": "`client-go`: fixed the wait time for trying to acquire the leader lease ([#114872](https://github.com/kubernetes/kubernetes/pull/114872), [@Iceber](https://github.com/Iceber))", + "author": "Iceber", + "author_url": "https://github.com/Iceber", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114872", + "pr_number": 114872, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "114878": { + "commit": "5e9fc39d17fbc636605ac69e4c487a261fbc0f67", + "text": "IPVS: Any ipvs scheduler can now be configured. If a un-usable scheduler is configured `kube-proxy` will re-start and the logs must be checked (same as before but different log printouts).", + "markdown": "IPVS: Any ipvs scheduler can now be configured. If a un-usable scheduler is configured `kube-proxy` will re-start and the logs must be checked (same as before but different log printouts). ([#114878](https://github.com/kubernetes/kubernetes/pull/114878), [@uablrek](https://github.com/uablrek))", + "author": "uablrek", + "author_url": "https://github.com/uablrek", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114878", + "pr_number": 114878, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "114883": { + "commit": "3e049c5e689f0b811329e0e3d23ac2007076d1e9", + "text": "Updated `cAdvisor` to `v0.47.0`", + "markdown": "Updated `cAdvisor` to `v0.47.0` ([#114883](https://github.com/kubernetes/kubernetes/pull/114883), [@bobbypage](https://github.com/bobbypage))", + "author": "bobbypage", + "author_url": "https://github.com/bobbypage", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114883", + "pr_number": 114883, + "areas": [ + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "114886": { + "commit": "1b95370225f1971c9e13beee24129d3191b0b3a8", + "text": "`kubectl` now uses `HorizontalPodAutoscaler` `v2` by default.", + "markdown": "`kubectl` now uses `HorizontalPodAutoscaler` `v2` by default. ([#114886](https://github.com/kubernetes/kubernetes/pull/114886), [@a7i](https://github.com/a7i))", + "author": "a7i", + "author_url": "https://github.com/a7i", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114886", + "pr_number": 114886, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "114889": { + "commit": "7b1b8d57340e686d013ee7a4180e04b4b16d4606", + "text": "Scheduler now skips `InterPodAffinity` Filter plugin when `InterPodAffinity` Filter plugin has nothing to do with a Pod.\nIt may affect some metrics values related to the `InterPodAffinity` Filter plugin.", + "markdown": "Scheduler now skips `InterPodAffinity` Filter plugin when `InterPodAffinity` Filter plugin has nothing to do with a Pod.\n It may affect some metrics values related to the `InterPodAffinity` Filter plugin. ([#114889](https://github.com/kubernetes/kubernetes/pull/114889), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114889", + "pr_number": 114889, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true + }, + "114904": { + "commit": "898143a96ad6eb1d5dc213b2b3f2e7a8a204652d", + "text": "kubelet: fix recording issue when pulling image did finish", + "markdown": "Kubelet: fix recording issue when pulling image did finish ([#114904](https://github.com/kubernetes/kubernetes/pull/114904), [@TommyStarK](https://github.com/TommyStarK)) [SIG Node]", + "author": "TommyStarK", + "author_url": "https://github.com/TommyStarK", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114904", + "pr_number": 114904, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "114914": { + "commit": "eb7fd7f51c166591adbc52eacef3ce1e4d17bf04", + "text": "messages of `DisruptionTarget` condition now excludes preemptor pod metadata", + "markdown": "Messages of `DisruptionTarget` condition now excludes preemptor pod metadata ([#114914](https://github.com/kubernetes/kubernetes/pull/114914), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114914", + "pr_number": 114914, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true + }, + "114918": { + "commit": "b6f9a65558f16aa948477ce334830e545a5a2280", + "text": "Migrated the service-account controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the service-account controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#114918](https://github.com/kubernetes/kubernetes/pull/114918), [@Namanl2001](https://github.com/Namanl2001)) [SIG API Machinery, Apps, Auth, Instrumentation and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "Namanl2001", + "author_url": "https://github.com/Namanl2001", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114918", + "pr_number": 114918, + "areas": [ + "test", + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "114920": { + "commit": "79886690d48a5b4cd106cb3827851f601821ab65", + "text": "Applied configurations can be generated for types with `non-builtin` map fields", + "markdown": "Applied configurations can be generated for types with `non-builtin` map fields ([#114920](https://github.com/kubernetes/kubernetes/pull/114920), [@astefanutti](https://github.com/astefanutti))", + "author": "astefanutti", + "author_url": "https://github.com/astefanutti", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114920", + "pr_number": 114920, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "114923": { + "commit": "1e3946ce9dcb745771b03845d4afd97caa7c7737", + "text": "Excluded preemptor pod metadata in the event message", + "markdown": "Excluded preemptor pod metadata in the event message ([#114923](https://github.com/kubernetes/kubernetes/pull/114923), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114923", + "pr_number": 114923, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "114930": { + "commit": "f3aebc85b90c7c6ef6b034b3a910cfba27a65951", + "text": "Pods owned by a Job now uses the labels `batch.kubernetes.io/job-name` and `batch.kubernetes.io/controller-uid`.\nThe legacy labels `job-name` and `controller-uid` are still added for compatibility.", + "markdown": "Pods owned by a Job now uses the labels `batch.kubernetes.io/job-name` and `batch.kubernetes.io/controller-uid`.\n The legacy labels `job-name` and `controller-uid` are still added for compatibility. ([#114930](https://github.com/kubernetes/kubernetes/pull/114930), [@kannon92](https://github.com/kannon92))", + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114930", + "pr_number": 114930, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "114947": { + "commit": "6ce055d62d8608842db18901c948c6982c74a164", + "text": "support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io` were deprecated since v1.19, now have been completely removed. The seccomp fields are no longer auto-populated when pods with seccomp annotations are created. Pods should use the corresponding pod or container `securityContext.seccompProfile` field instead.", + "markdown": "Support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io` were deprecated since v1.19, now have been completely removed. The seccomp fields are no longer auto-populated when pods with seccomp annotations are created. Pods should use the corresponding pod or container `securityContext.seccompProfile` field instead. ([#114947](https://github.com/kubernetes/kubernetes/pull/114947), [@saschagrunert](https://github.com/saschagrunert))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/135", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114947", + "pr_number": 114947, + "kinds": [ + "deprecation" + ] + }, + "114953": { + "commit": "50a0bc8de1953eaedfb8a08b88a72dd2c224470e", + "text": "The `CSIMigrationAzureFile` feature gate (for the feature which graduated to GA in v1.26) is now unconditionally enabled and will be removed in v1.28.", + "markdown": "The `CSIMigrationAzureFile` feature gate (for the feature which graduated to GA in v1.26) is now unconditionally enabled and will be removed in v1.28. ([#114953](https://github.com/kubernetes/kubernetes/pull/114953), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114953", + "pr_number": 114953, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "114980": { + "commit": "14c2d7b39b2446642d42350d237c5f0dc7a95867", + "text": "Removed scheduler names from preemption event messages.", + "markdown": "Removed scheduler names from preemption event messages. ([#114980](https://github.com/kubernetes/kubernetes/pull/114980), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114980", + "pr_number": 114980, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true + }, + "114981": { + "commit": "765f2ef7c7106b5f14bcda2639404d9e3c511f46", + "text": "NONE", + "markdown": "NONE ([#114981](https://github.com/kubernetes/kubernetes/pull/114981), [@adisky](https://github.com/adisky))", + "author": "adisky", + "author_url": "https://github.com/adisky", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114981", + "pr_number": 114981, + "areas": [ + "test" + ], + "kinds": [ + "failing-test" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "114987": { + "commit": "5ad9e418791de9820f4287bd57ea3594b884c0eb", + "text": "Added the `applyconfiguration` generator to the code-generator script that generates server-side apply configuration and client APIs", + "markdown": "Added the `applyconfiguration` generator to the code-generator script that generates server-side apply configuration and client APIs ([#114987](https://github.com/kubernetes/kubernetes/pull/114987), [@astefanutti](https://github.com/astefanutti))", + "author": "astefanutti", + "author_url": "https://github.com/astefanutti", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114987", + "pr_number": 114987, + "areas": [ + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "114997": { + "commit": "1f02f43ec6910cbcd46222b16a2f3965458e5e45", + "text": "`/metrics/slis` is now available for control plane components allowing you to scrape health check metrics.", + "markdown": "`/metrics/slis` is now available for control plane components allowing you to scrape health check metrics. ([#114997](https://github.com/kubernetes/kubernetes/pull/114997), [@Richabanker](https://github.com/Richabanker))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3466", + "type": "external" + } + ], + "author": "Richabanker", + "author_url": "https://github.com/Richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114997", + "pr_number": 114997, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "release-eng", + "kubeadm", + "conformance", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "autoscaling", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115010": { + "commit": "0ff0d0b94e49396724b790aa073d62e6152e1cad", + "text": "Kubernetes is now built with Go `1.19.5`", + "markdown": "Kubernetes is now built with Go `1.19.5` ([#115010](https://github.com/kubernetes/kubernetes/pull/115010), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115010", + "pr_number": 115010, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "115017": { + "commit": "035271d89bb03d6b983cabc930036c1706ef45a5", + "text": "Made tmp dir configurable and dynamic at `local-up-cluster.sh`", + "markdown": "Made tmp dir configurable and dynamic at `local-up-cluster.sh` ([#115017](https://github.com/kubernetes/kubernetes/pull/115017), [@mhmxs](https://github.com/mhmxs))", + "author": "mhmxs", + "author_url": "https://github.com/mhmxs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115017", + "pr_number": 115017, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "115038": { + "commit": "561a35f3582abb25da76d31c7c2abc4277054b04", + "text": "kubeadm: fixed an etcd learner-mode bug by preparing an etcd static pod manifest before promoting", + "markdown": "Kubeadm: fixed an etcd learner-mode bug by preparing an etcd static pod manifest before promoting ([#115038](https://github.com/kubernetes/kubernetes/pull/115038), [@tobiasgiese](https://github.com/tobiasgiese))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3614", + "type": "KEP" + } + ], + "author": "tobiasgiese", + "author_url": "https://github.com/tobiasgiese", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115038", + "pr_number": 115038, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "115046": { + "commit": "62d7937b2e81752d922f6690dfff565c4a6ae8ce", + "text": "kubectl: added e2e test for default container annotation", + "markdown": "Kubectl: added e2e test for default container annotation ([#115046](https://github.com/kubernetes/kubernetes/pull/115046), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/2227-kubectl-default-container/README.md", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115046", + "pr_number": 115046, + "areas": [ + "test", + "conformance" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cli", + "testing", + "architecture" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115049": { + "commit": "d1aa73312c5e41166f1b92d556c7d0d30af239ab", + "text": "Migrated controller helper functions to use contextual logging.", + "markdown": "Migrated controller helper functions to use contextual logging. ([#115049](https://github.com/kubernetes/kubernetes/pull/115049), [@fatsheep9146](https://github.com/fatsheep9146))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "fatsheep9146", + "author_url": "https://github.com/fatsheep9146", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115049", + "pr_number": 115049, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "115056": { + "commit": "ed8cad1e80d096257921908a52ac69cf1f41a098", + "text": "`PodGC` for pods which are in terminal phase now do not add the `DisruptionTarget` condition.", + "markdown": "`PodGC` for pods which are in terminal phase now do not add the `DisruptionTarget` condition. ([#115056](https://github.com/kubernetes/kubernetes/pull/115056), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115056", + "pr_number": 115056, + "areas": [ + "test" + ], + "kinds": [ + "regression" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "115068": { + "commit": "fd885b751d157b036540310e5174e15b615592ac", + "text": "Reverted `UpdateOrCreateToken` get secrets err handling optimization", + "markdown": "Reverted `UpdateOrCreateToken` get secrets err handling optimization ([#115068](https://github.com/kubernetes/kubernetes/pull/115068), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115068", + "pr_number": 115068, + "areas": [ + "kubeadm" + ], + "kinds": [ + "regression" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "115074": { + "commit": "7b01daba714514aef68d501dc181cec946732481", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#115074](https://github.com/kubernetes/kubernetes/pull/115074), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Apps and Network]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115074", + "pr_number": 115074, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true, + "do_not_publish": true + }, + "115075": { + "commit": "f44d561c1f8c327bdf2ff3bff175bd10d161454c", + "text": "Added a new IPAddress object kind\n- Added a new ClusterIP allocator. The new allocator removes previous Service CIDR block size limitations for IPv4, and limits IPv6 size to a /64", + "markdown": "Added a new IPAddress object kind\n - Added a new ClusterIP allocator. The new allocator removes previous Service CIDR block size limitations for IPv4, and limits IPv6 size to a /64 ([#115075](https://github.com/kubernetes/kubernetes/pull/115075), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Auth, CLI, Cluster Lifecycle, Network and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/1880-multiple-service-cidrs", + "type": "KEP" + } + ], + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115075", + "pr_number": 115075, + "areas": [ + "test", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "bug", + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "cluster-lifecycle", + "auth", + "apps", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115079": { + "commit": "3613ed04b68156957f58635ecee8746e7fcf2a28", + "text": "NONE", + "markdown": "NONE ([#115079](https://github.com/kubernetes/kubernetes/pull/115079), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115079", + "pr_number": 115079, + "areas": [ + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true + }, + "115082": { + "commit": "283c26f91a42b3ae3e2a8bc8d89cf52d8072ed86", + "text": "New plugin_evaluation_total is added to the scheduler.This metric counts how many times the specific plugin affects the scheduling result. The metric does not get incremented when the plugin has nothing to do with an incoming Pod.", + "markdown": "New plugin_evaluation_total is added to the scheduler.This metric counts how many times the specific plugin affects the scheduling result. The metric does not get incremented when the plugin has nothing to do with an incoming Pod. ([#115082](https://github.com/kubernetes/kubernetes/pull/115082), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115082", + "pr_number": 115082, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "115093": { + "commit": "d3f881f7508ec3bd8aa83712038bdcf5f4703396", + "text": "Fixed bug in reflector that couldn't recover from `Too large resource version` errors with API servers before 1.17.0.", + "markdown": "Fixed bug in reflector that couldn't recover from `Too large resource version` errors with API servers before 1.17.0. ([#115093](https://github.com/kubernetes/kubernetes/pull/115093), [@xuzhenglun](https://github.com/xuzhenglun))", + "author": "xuzhenglun", + "author_url": "https://github.com/xuzhenglun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115093", + "pr_number": 115093, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "115096": { + "commit": "70f337c0d5303078a325c63216345ae84475aa69", + "text": "`cacher`: If `ResourceVersion` is unset, the watch is now served from the underlying storage as documented.", + "markdown": "`cacher`: If `ResourceVersion` is unset, the watch is now served from the underlying storage as documented. ([#115096](https://github.com/kubernetes/kubernetes/pull/115096), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", + "author": "MadhavJivrajani", + "author_url": "https://github.com/MadhavJivrajani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115096", + "pr_number": 115096, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "115102": { + "commit": "a12dd4189e88621b6632fab788e49401e6e7a358", + "text": "kubelet startup now fails CRI connection if service or image endpoint is throwing any error", + "markdown": "Kubelet startup now fails CRI connection if service or image endpoint is throwing any error ([#115102](https://github.com/kubernetes/kubernetes/pull/115102), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115102", + "pr_number": 115102, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "115113": { + "commit": "b0ed87078e4042c12e456c8427dee0fb947a724c", + "text": "Callers of `wait.ExponentialBackoffWithContext` now must pass a `ConditionWithContextFunc` to be consistent with the signature and avoid creating a duplicate context. If your condition does not need a context you can use the `ConditionFunc.WithContext()` helper to ignore the context, or use `ExponentialBackoff` directly.", + "markdown": "Callers of `wait.ExponentialBackoffWithContext` now must pass a `ConditionWithContextFunc` to be consistent with the signature and avoid creating a duplicate context. If your condition does not need a context you can use the `ConditionFunc.WithContext()` helper to ignore the context, or use `ExponentialBackoff` directly. ([#115113](https://github.com/kubernetes/kubernetes/pull/115113), [@smarterclayton](https://github.com/smarterclayton))", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115113", + "pr_number": 115113, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "api-machinery", + "testing" + ], + "duplicate": true + }, + "115116": { + "commit": "b01afdca664103006a31c936fc935dac948e480e", + "text": "The `WaitFor` and `WaitForWithContext` functions in the wait package have now been marked private. Callers should use the equivalent `Poll*` method with a zero duration interval.", + "markdown": "The `WaitFor` and `WaitForWithContext` functions in the wait package have now been marked private. Callers should use the equivalent `Poll*` method with a zero duration interval. ([#115116](https://github.com/kubernetes/kubernetes/pull/115116), [@smarterclayton](https://github.com/smarterclayton))", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115116", + "pr_number": 115116, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "115123": { + "commit": "15040e1c860f057c74d6f30b609d52e3ae7a5775", + "text": "Updated `KMSv2` to beta", + "markdown": "Updated `KMSv2` to beta ([#115123](https://github.com/kubernetes/kubernetes/pull/115123), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115123", + "pr_number": 115123, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115137": { + "commit": "4df945853e31678f7ac87e43d3328497a3490d35", + "text": "Added `kubelet` Topology Manager metrics to track admission requests processed and occured admission errors.", + "markdown": "Added `kubelet` Topology Manager metrics to track admission requests processed and occured admission errors. ([#115137](https://github.com/kubernetes/kubernetes/pull/115137), [@swatisehgal](https://github.com/swatisehgal))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/pull/3745", + "type": "KEP" + } + ], + "author": "swatisehgal", + "author_url": "https://github.com/swatisehgal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115137", + "pr_number": 115137, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "115138": { + "commit": "423f62d69a2d5417225f4f31bca800f675d3702e", + "text": "A new feature was enabled to improve the performance of the iptables mode of `kube-proxy` in large clusters. No action was required, however:\n\n1. If you experienced problems with Services not syncing to iptables correctly, you can disable the feature by passing `--feature-gates=MinimizeIPTablesRestore=false` to kube-proxy (and file a bug if this fixes it). (This might also be detected by seeing the value of kube-proxy's `sync_proxy_rules_iptables_partial_restore_failures_total` metric rising.)\n2. If you were previously overriding the kube-proxy configuration for performance reasons, this may no longer be necessary. See https://kubernetes.io/docs/reference/networking/virtual-ips/#optimizing-iptables-mode-performance.", + "markdown": "A new feature was enabled to improve the performance of the iptables mode of `kube-proxy` in large clusters. No action was required, however:\n \n 1. If you experienced problems with Services not syncing to iptables correctly, you can disable the feature by passing `--feature-gates=MinimizeIPTablesRestore=false` to kube-proxy (and file a bug if this fixes it). (This might also be detected by seeing the value of kube-proxy's `sync_proxy_rules_iptables_partial_restore_failures_total` metric rising.)\n 2. If you were previously overriding the kube-proxy configuration for performance reasons, this may no longer be necessary. See https://kubernetes.io/docs/reference/networking/virtual-ips/#optimizing-iptables-mode-performance. ([#115138](https://github.com/kubernetes/kubernetes/pull/115138), [@danwinship](https://github.com/danwinship))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3453", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115138", + "pr_number": 115138, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "115140": { + "commit": "8bee5dca1d94625aad8a321d3ed4d1dbeeeb0a62", + "text": "`wait.ContextForChannel()` now implements the context.Context interface and\ndoes not return a cancellation function.", + "markdown": "`wait.ContextForChannel()` now implements the context.Context interface and\n does not return a cancellation function. ([#115140](https://github.com/kubernetes/kubernetes/pull/115140), [@smarterclayton](https://github.com/smarterclayton))", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115140", + "pr_number": 115140, + "areas": [ + "apiserver", + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "duplicate": true + }, + "115143": { + "commit": "1e3cc23b9ff94daa1ab98266ad137eaa7fde998c", + "text": "Kubelet TCP and HTTP probes are now more effective using networking resources:\nconntrack entries, sockets. This is achieved by reducing the `TIME-WAIT` state\nof the connection to 1 second, instead of the defaults 60 seconds. This allows\nkubelet to free the socket, and free conntrack entry and ephemeral port associated.", + "markdown": "Kubelet TCP and HTTP probes are now more effective using networking resources:\n conntrack entries, sockets. This is achieved by reducing the `TIME-WAIT` state\n of the connection to 1 second, instead of the defaults 60 seconds. This allows\n kubelet to free the socket, and free conntrack entry and ephemeral port associated. ([#115143](https://github.com/kubernetes/kubernetes/pull/115143), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115143", + "pr_number": 115143, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "cleanup", + "feature" + ], + "sigs": [ + "network", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115149": { + "commit": "30ee6914c54269c5898582c984a3f21f9c6710e9", + "text": "Encryption of API Server at rest configuration now allows the use of wildcards in the list of resources. For example, *.* can be used to encrypt all resources, including all current and future custom resources.", + "markdown": "Encryption of API Server at rest configuration now allows the use of wildcards in the list of resources. For example, *.* can be used to encrypt all resources, including all current and future custom resources. ([#115149](https://github.com/kubernetes/kubernetes/pull/115149), [@nilekhc](https://github.com/nilekhc))", + "author": "nilekhc", + "author_url": "https://github.com/nilekhc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115149", + "pr_number": 115149, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115163": { + "commit": "cc68c06f9cb6c70cbb840a8d7b9ca49eb223cb3f", + "text": "The `AdvancedAuditing` feature gate was locked to _true_ in v1.27, and will be removed completely in v1.28", + "markdown": "The `AdvancedAuditing` feature gate was locked to _true_ in v1.27, and will be removed completely in v1.28 ([#115163](https://github.com/kubernetes/kubernetes/pull/115163), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115163", + "pr_number": 115163, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "115179": { + "commit": "97ab147537f6999249c241e0896245bd961c32ae", + "text": "Fixed nil pointer error in `NodeVolumeLimits` csi logging", + "markdown": "Fixed nil pointer error in `NodeVolumeLimits` csi logging ([#115179](https://github.com/kubernetes/kubernetes/pull/115179), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu))", + "author": "sunnylovestiramisu", + "author_url": "https://github.com/sunnylovestiramisu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115179", + "pr_number": 115179, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true + }, + "115204": { + "commit": "4b7bd457c496897d336bea6e9d65012a124c97ff", + "text": "[KCCM - service controller]: enabled connection draining for terminating pods upon node downscale by the cluster autoscaler. This is done by not reacting to the taint used by the cluster autoscaler to indicate that the node is going away soon, thus keeping the node referenced by the load balancer until the VM has been completely deleted.", + "markdown": "[KCCM - service controller]: enabled connection draining for terminating pods upon node downscale by the cluster autoscaler. This is done by not reacting to the taint used by the cluster autoscaler to indicate that the node is going away soon, thus keeping the node referenced by the load balancer until the VM has been completely deleted. ([#115204](https://github.com/kubernetes/kubernetes/pull/115204), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115204", + "pr_number": 115204, + "areas": [ + "cloudprovider", + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "api-machinery", + "instrumentation", + "cloud-provider" + ], + "duplicate": true + }, + "115207": { + "commit": "d9c371a2c4fd07b45a3e1c5954ae781d5794ae2b", + "text": "None", + "markdown": "None ([#115207](https://github.com/kubernetes/kubernetes/pull/115207), [@daman1807](https://github.com/daman1807))", + "author": "daman1807", + "author_url": "https://github.com/daman1807", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115207", + "pr_number": 115207, + "areas": [ + "test", + "network-policy" + ], + "kinds": [ + "flake" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "115209": { + "commit": "781daea7b24dd855100ddbc5def68e5435797114", + "text": "Removed the following deprecated metrics:\n- node_collector_evictions_number replaced by node_collector_evictions_total\n- scheduler_e2e_scheduling_duration_seconds replaced by scheduler_scheduling_attempt_duration_seconds", + "markdown": "Removed the following deprecated metrics:\n - node_collector_evictions_number replaced by node_collector_evictions_total\n - scheduler_e2e_scheduling_duration_seconds replaced by scheduler_scheduling_attempt_duration_seconds ([#115209](https://github.com/kubernetes/kubernetes/pull/115209), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115209", + "pr_number": 115209, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "apps" + ], + "duplicate": true + }, + "115220": { + "commit": "af9f7a4d90a9562687893b4794c7109d9a05f33e", + "text": "kubelet: a \"maxParallelImagePulls\" field can now be specified in the kubelet configuration file to control how many image pulls the kubelet can perform in parallel.", + "markdown": "Kubelet: a \"maxParallelImagePulls\" field can now be specified in the kubelet configuration file to control how many image pulls the kubelet can perform in parallel. ([#115220](https://github.com/kubernetes/kubernetes/pull/115220), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) [SIG API Machinery, Node and Scalability]", + "author": "ruiwen-zhao", + "author_url": "https://github.com/ruiwen-zhao", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115220", + "pr_number": 115220, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scalability", + "node", + "api-machinery" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115233": { + "commit": "aa5f462f5b67db3b7b3c2686c405ad61b2a40a2d", + "text": "`kube-proxy` now accepts the `ContextualLogging`, `LoggingAlphaOptions`,\n`LoggingBetaOptions`", + "markdown": "`kube-proxy` now accepts the `ContextualLogging`, `LoggingAlphaOptions`,\n `LoggingBetaOptions` ([#115233](https://github.com/kubernetes/kubernetes/pull/115233), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115233", + "pr_number": 115233, + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "115236": { + "commit": "35f3fc59c1f29eebc8ff8705ecc3d4db7c4cbbc6", + "text": "API validation relaxed allowing Indexed Jobs to be scaled up/down by changing parallelism and completions in tandem, such that parallelism == completions.", + "markdown": "API validation relaxed allowing Indexed Jobs to be scaled up/down by changing parallelism and completions in tandem, such that parallelism == completions. ([#115236](https://github.com/kubernetes/kubernetes/pull/115236), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3724", + "type": "KEP" + } + ], + "author": "danielvegamyhre", + "author_url": "https://github.com/danielvegamyhre", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115236", + "pr_number": 115236, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "115254": { + "commit": "bec431642ef7f5975f49d4a2b47089cf58d47075", + "text": "NONE", + "markdown": "NONE ([#115254](https://github.com/kubernetes/kubernetes/pull/115254), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115254", + "pr_number": 115254, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "testing" + ], + "do_not_publish": true + }, + "115260": { + "commit": "8fbfbd96532598caf0faa294b3dcea7a22c4b0aa", + "text": "Enabled the `StatefulSetStartOrdinal` feature gate in beta", + "markdown": "Enabled the `StatefulSetStartOrdinal` feature gate in beta ([#115260](https://github.com/kubernetes/kubernetes/pull/115260), [@pwschuurman](https://github.com/pwschuurman))", + "author": "pwschuurman", + "author_url": "https://github.com/pwschuurman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115260", + "pr_number": 115260, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115268": { + "commit": "2c8f63f693d75059f03c5335394883c3349c39ce", + "text": "Added `NewVolumeManagerReconstruction` feature gate and enabled it by default to enable updated discovery of mounted volumes during kubelet startup. Please watch for kubelet getting stuck at startup and / or not unmounting volumes from deleted Pods and report any issues in this area.", + "markdown": "Added `NewVolumeManagerReconstruction` feature gate and enabled it by default to enable updated discovery of mounted volumes during kubelet startup. Please watch for kubelet getting stuck at startup and / or not unmounting volumes from deleted Pods and report any issues in this area. ([#115268](https://github.com/kubernetes/kubernetes/pull/115268), [@jsafrane](https://github.com/jsafrane))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3763", + "type": "KEP" + } + ], + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115268", + "pr_number": 115268, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node" + ], + "feature": true, + "duplicate": true + }, + "115277": { + "commit": "51dedff4f3efd407ebf47de11d0db521274471a3", + "text": "Performance improvements in `klog`", + "markdown": "Performance improvements in `klog` ([#115277](https://github.com/kubernetes/kubernetes/pull/115277), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115277", + "pr_number": 115277, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "115283": { + "commit": "703361f381d4a1eaa7dc87ff3b7c12c84f3878a4", + "text": "None", + "markdown": "None ([#115283](https://github.com/kubernetes/kubernetes/pull/115283), [@daman1807](https://github.com/daman1807))", + "author": "daman1807", + "author_url": "https://github.com/daman1807", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115283", + "pr_number": 115283, + "areas": [ + "test", + "network-policy" + ], + "kinds": [ + "cleanup", + "flake" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "115310": { + "commit": "8e642d3d0deab20a153c740b7af727a10aabf88b", + "text": "`etcd`: Updated to `v3.5.7`", + "markdown": "`etcd`: Updated to `v3.5.7` ([#115310](https://github.com/kubernetes/kubernetes/pull/115310), [@mzaian](https://github.com/mzaian))", + "author": "mzaian", + "author_url": "https://github.com/mzaian", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115310", + "pr_number": 115310, + "areas": [ + "test", + "provider/gcp", + "release-eng", + "kubeadm", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "115315": { + "commit": "22b88dea360b0aae4ecaa57142718386b3cbd40d", + "text": "The Kubernetes API server now correctly detects and closes existing TLS connections when its client certificate file for kubelet authentication has been rotated.", + "markdown": "The Kubernetes API server now correctly detects and closes existing TLS connections when its client certificate file for kubelet authentication has been rotated. ([#115315](https://github.com/kubernetes/kubernetes/pull/115315), [@enj](https://github.com/enj)) [SIG API Machinery, Auth, Node and Testing]", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115315", + "pr_number": 115315, + "areas": [ + "test", + "kubelet", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "testing" + ], + "duplicate": true + }, + "115321": { + "commit": "6f22d1f1abc61224c848e40cc8336e92908e0c3c", + "text": "GRPC probes now set a linger option of 1s to improve the TIME-WAIT state.", + "markdown": "GRPC probes now set a linger option of 1s to improve the TIME-WAIT state. ([#115321](https://github.com/kubernetes/kubernetes/pull/115321), [@rphillips](https://github.com/rphillips)) [SIG Network and Node]", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115321", + "pr_number": 115321, + "kinds": [ + "bug", + "cleanup", + "feature" + ], + "sigs": [ + "network", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115322": { + "commit": "3d6c7efc23011ee7c5a301e9ca340efd33456f60", + "text": "Fixed a bug that caused the `apiserver` to panic when trying to allocate a Service with a dynamic `ClusterIP` and was configured with Service CIDRs with a /28 mask for IPv4 and a /124 mask for IPv6", + "markdown": "Fixed a bug that caused the `apiserver` to panic when trying to allocate a Service with a dynamic `ClusterIP` and was configured with Service CIDRs with a /28 mask for IPv4 and a /124 mask for IPv6 ([#115322](https://github.com/kubernetes/kubernetes/pull/115322), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115322", + "pr_number": 115322, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "testing" + ], + "duplicate_kind": true + }, + "115331": { + "commit": "e1c2af399a930b1e97fa354492d6f33755831f90", + "text": "Give terminal phase correctly to all pods that will not be restarted. \n\nIn particular, assign Failed phase to pods which are deleted while pending. Also, assign a terminal \nphase (Succeeded or Failed, depending on the exit statuses of the pod containers) to pods which\nare deleted while running.\n\nThis fixes the issue for jobs using pod failure policy (with JobPodFailurePolicy and PodDisruptionConditions \nfeature gates enabled) that their pods could get stuck in the pending phase when deleted.\n\nUsers who maintain controllers which relied on the fact that pods with RestartPolicy=Always\nnever enter the Succeeded phase may need to adapt their controllers. This is because as a consequence of \nthe change pods which use RestartPolicy=Always may end up in the Succeeded phase in two scenarios: pod \ndeletion and graceful node shutdown.", + "markdown": "Give terminal phase correctly to all pods that will not be restarted. \n \n In particular, assign Failed phase to pods which are deleted while pending. Also, assign a terminal \n phase (Succeeded or Failed, depending on the exit statuses of the pod containers) to pods which\n are deleted while running.\n \n This fixes the issue for jobs using pod failure policy (with JobPodFailurePolicy and PodDisruptionConditions \n feature gates enabled) that their pods could get stuck in the pending phase when deleted.\n \n Users who maintain controllers which relied on the fact that pods with RestartPolicy=Always\n never enter the Succeeded phase may need to adapt their controllers. This is because as a consequence of \n the change pods which use RestartPolicy=Always may end up in the Succeeded phase in two scenarios: pod \n deletion and graceful node shutdown. ([#115331](https://github.com/kubernetes/kubernetes/pull/115331), [@mimowo](https://github.com/mimowo)) [SIG Cloud Provider, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115331", + "pr_number": 115331, + "areas": [ + "test", + "kubelet", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "115332": { + "commit": "637bd6616573a28c9e0610db9ae0807a66fcaab3", + "text": "Migrated the ttlafterfinished controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the ttlafterfinished controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#115332](https://github.com/kubernetes/kubernetes/pull/115332), [@obaranov1](https://github.com/obaranov1)) [SIG Apps]", + "author": "obaranov1", + "author_url": "https://github.com/obaranov1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115332", + "pr_number": 115332, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ] + }, + "115336": { + "commit": "5a2dd64801f0f9887047b6d0f618d88532d4a32d", + "text": "None", + "markdown": "None ([#115336](https://github.com/kubernetes/kubernetes/pull/115336), [@mzaian](https://github.com/mzaian))", + "author": "mzaian", + "author_url": "https://github.com/mzaian", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115336", + "pr_number": 115336, + "areas": [ + "release-eng" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "115341": { + "commit": "c9e281df23d66ff1f886b301f15147ab3f6e0074", + "text": "Fixed the regression that introduced 34s timeout for DELETECOLLECTION calls", + "markdown": "Fixed the regression that introduced 34s timeout for DELETECOLLECTION calls ([#115341](https://github.com/kubernetes/kubernetes/pull/115341), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115341", + "pr_number": 115341, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "115346": { + "commit": "f9a3fd2810ed4cba159b8d106ca7362c0b528c3a", + "text": "`node_stage_path` is now set whenever available for expansion during mount", + "markdown": "`node_stage_path` is now set whenever available for expansion during mount ([#115346](https://github.com/kubernetes/kubernetes/pull/115346), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115346", + "pr_number": 115346, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true + }, + "115349": { + "commit": "bd63a912d6f602103e39fbbec8e1499a95cba631", + "text": "The bug which caused the status of Indexed Jobs to only update when new indexes were completed was fixed. Now, completed indexes are updated even if the `.status.completedIndexes` values are outside the `[0, .spec.completions\u003e range`.", + "markdown": "The bug which caused the status of Indexed Jobs to only update when new indexes were completed was fixed. Now, completed indexes are updated even if the `.status.completedIndexes` values are outside the `[0, .spec.completions\u003e range`. ([#115349](https://github.com/kubernetes/kubernetes/pull/115349), [@danielvegamyhre](https://github.com/danielvegamyhre))", + "author": "danielvegamyhre", + "author_url": "https://github.com/danielvegamyhre", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115349", + "pr_number": 115349, + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "duplicate_kind": true + }, + "115354": { + "commit": "c829397f7a1fa956766f6479a8ca454b6937feda", + "text": "A fix in the `resource.k8s.io/v1alpha1/ResourceClaim` API avoids harmless (?) \".status.reservedFor: element 0: associative list without keys has an element that's a map type\" errors in the apiserver. Validation now rejects the incorrect reuse of the same UID in different entries.", + "markdown": "A fix in the `resource.k8s.io/v1alpha1/ResourceClaim` API avoids harmless (?) \".status.reservedFor: element 0: associative list without keys has an element that's a map type\" errors in the apiserver. Validation now rejects the incorrect reuse of the same UID in different entries. ([#115354](https://github.com/kubernetes/kubernetes/pull/115354), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115354", + "pr_number": 115354, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "115363": { + "commit": "894cfdfeb4a09083849f9193f7c36360e61509eb", + "text": "The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to beta and is enabled by default. On servers with the feature enabled, this field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted.", + "markdown": "The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to beta and is enabled by default. On servers with the feature enabled, this field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted. ([#115363](https://github.com/kubernetes/kubernetes/pull/115363), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Apps, Auth and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3017-pod-healthy-policy-for-pdb", + "type": "KEP" + } + ], + "author": "ravisantoshgudimetla", + "author_url": "https://github.com/ravisantoshgudimetla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115363", + "pr_number": 115363, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "node", + "auth", + "apps" + ], + "duplicate": true + }, + "115371": { + "commit": "625b8be09ea78a4e13fcee79c426c268b21d7161", + "text": "kubelet: changed `MemoryThrottlingFactor` default value to `0.9` and formulas to calculate `memory.high`", + "markdown": "Kubelet: changed `MemoryThrottlingFactor` default value to `0.9` and formulas to calculate `memory.high` ([#115371](https://github.com/kubernetes/kubernetes/pull/115371), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2570-memory-qos", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115371", + "pr_number": 115371, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115374": { + "commit": "715e95708465132b7a8d57d416b9137788eafd3b", + "text": "kubelet allows pods to use the `net.ipv4.ip_local_reserved_ports` sysctl by default and the minimal kernel version is 3.16; Pod Security admission allows this sysctl in v1.27+ versions of the baseline and restricted policies.", + "markdown": "Kubelet allows pods to use the `net.ipv4.ip_local_reserved_ports` sysctl by default and the minimal kernel version is 3.16; Pod Security admission allows this sysctl in v1.27+ versions of the baseline and restricted policies. ([#115374](https://github.com/kubernetes/kubernetes/pull/115374), [@pacoxu](https://github.com/pacoxu)) [SIG Auth, Network and Node]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115374", + "pr_number": 115374, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "node", + "auth" + ], + "feature": true, + "duplicate": true + }, + "115377": { + "commit": "9812eefd4392b3209a35fcf25b2103e6072854f9", + "text": "The go version defined in `.go-version` is now fetched when invoking test, build, and code generation targets if the current go version does not match it. Set $FORCE_HOST_GO=y while testing or building to skip this behavior, or set $GO_VERSION to override the selected go version.", + "markdown": "The go version defined in `.go-version` is now fetched when invoking test, build, and code generation targets if the current go version does not match it. Set $FORCE_HOST_GO=y while testing or building to skip this behavior, or set $GO_VERSION to override the selected go version. ([#115377](https://github.com/kubernetes/kubernetes/pull/115377), [@liggitt](https://github.com/liggitt)) [SIG Testing]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115377", + "pr_number": 115377, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + }, + "115379": { + "commit": "6eb008620cd0ee3501326ee003d47fbaf1fa5b52", + "text": "The mount-utils mounter now provides an option to limit the number of concurrent format operations.", + "markdown": "The mount-utils mounter now provides an option to limit the number of concurrent format operations. ([#115379](https://github.com/kubernetes/kubernetes/pull/115379), [@artemvmin](https://github.com/artemvmin)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node and Storage]", + "author": "artemvmin", + "author_url": "https://github.com/artemvmin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115379", + "pr_number": 115379, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "kubeadm", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "115384": { + "commit": "8f55d34507f82287c6c581f8d724a5fded5114a7", + "text": "None", + "markdown": "None ([#115384](https://github.com/kubernetes/kubernetes/pull/115384), [@sourcelliu](https://github.com/sourcelliu))", + "author": "sourcelliu", + "author_url": "https://github.com/sourcelliu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115384", + "pr_number": 115384, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "115391": { + "commit": "b4305fcf6306828ce99cae19a0b8155aabc2aa93", + "text": "PersistentVolume API objects which set NodeAffinities using beta Kubernetes labels for OS, architecture, zone, region, and instance type may now be modified to use the stable Kubernetes labels.", + "markdown": "PersistentVolume API objects which set NodeAffinities using beta Kubernetes labels for OS, architecture, zone, region, and instance type may now be modified to use the stable Kubernetes labels. ([#115391](https://github.com/kubernetes/kubernetes/pull/115391), [@haoruan](https://github.com/haoruan))", + "author": "haoruan", + "author_url": "https://github.com/haoruan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115391", + "pr_number": 115391, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "apps" + ], + "duplicate": true + }, + "115394": { + "commit": "292450717cb76e0c480fa5883d18fe1245176d63", + "text": "apiserver_storage_transformation_operations_total metric has been updated to include labels transformer_prefix and status.", + "markdown": "Apiserver_storage_transformation_operations_total metric has been updated to include labels transformer_prefix and status. ([#115394](https://github.com/kubernetes/kubernetes/pull/115394), [@ritazh](https://github.com/ritazh)) [SIG API Machinery, Auth, Instrumentation and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", + "type": "KEP" + } + ], + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115394", + "pr_number": 115394, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "115402": { + "commit": "762fa1268651206b9262a0c880a884984028bdf4", + "text": "Introduced API for streaming.\n\nAdded `SendInitialEvents` field to the `ListOptions`. When the new option is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic \"Bookmark\" after which the server continues streaming events.", + "markdown": "Introduced API for streaming.\n \n Added `SendInitialEvents` field to the `ListOptions`. When the new option is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic \"Bookmark\" after which the server continues streaming events. ([#115402](https://github.com/kubernetes/kubernetes/pull/115402), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3157-watch-list", + "type": "KEP" + } + ], + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115402", + "pr_number": 115402, + "areas": [ + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "115412": { + "commit": "0ed74145fb00626ce0e900812a54ca3de5406f2e", + "text": "None", + "markdown": "None ([#115412](https://github.com/kubernetes/kubernetes/pull/115412), [@maxsmythe](https://github.com/maxsmythe))", + "author": "maxsmythe", + "author_url": "https://github.com/maxsmythe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115412", + "pr_number": 115412, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "115420": { + "commit": "70c129fea52c922f474b9d8524436e9152673506", + "text": "File content check for IPV4 is now enabled by default, and the check of IPV4 or IPV6 is done for `kubeadm init` or `kubeadm join` only in case the user intends to create a cluster to support that kind of IP address family", + "markdown": "File content check for IPV4 is now enabled by default, and the check of IPV4 or IPV6 is done for `kubeadm init` or `kubeadm join` only in case the user intends to create a cluster to support that kind of IP address family ([#115420](https://github.com/kubernetes/kubernetes/pull/115420), [@chendave](https://github.com/chendave))", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115420", + "pr_number": 115420, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "cluster-lifecycle" + ], + "duplicate": true + }, + "115433": { + "commit": "812d55d230ea02a7bfe3e3b0705fab7503782dfa", + "text": "Updated: Redefine AppProtocol field description and add new standard values", + "markdown": "Updated: Redefine AppProtocol field description and add new standard values ([#115433](https://github.com/kubernetes/kubernetes/pull/115433), [@LiorLieberman](https://github.com/LiorLieberman)) [SIG API Machinery, Apps and Network]", + "author": "LiorLieberman", + "author_url": "https://github.com/LiorLieberman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115433", + "pr_number": 115433, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115434": { + "commit": "0ebf9a3a1be6d0757b1d60b860ed226e2d4d1abc", + "text": "Updated API reference for Requests, specifying they must not exceed limits", + "markdown": "Updated API reference for Requests, specifying they must not exceed limits ([#115434](https://github.com/kubernetes/kubernetes/pull/115434), [@ehashman](https://github.com/ehashman))", + "author": "ehashman", + "author_url": "https://github.com/ehashman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115434", + "pr_number": 115434, + "areas": [ + "code-generation" + ], + "kinds": [ + "documentation", + "cleanup", + "api-change" + ], + "sigs": [ + "node", + "docs", + "architecture" + ], + "duplicate": true, + "duplicate_kind": true + }, + "115447": { + "commit": "8decaf3ae7f410ab3f3774f3895b9f3124b8a4c6", + "text": "Ingress with `ingressClass` annotation and `IngressClassName` both set can be created now.", + "markdown": "Ingress with `ingressClass` annotation and `IngressClassName` both set can be created now. ([#115447](https://github.com/kubernetes/kubernetes/pull/115447), [@AxeZhan](https://github.com/AxeZhan))", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115447", + "pr_number": 115447, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "115451": { + "commit": "499a03d88bf416cb7540ff29f7249f5ed0c92ef8", + "text": "Added e2e test to node expand volume with secret", + "markdown": "Added e2e test to node expand volume with secret ([#115451](https://github.com/kubernetes/kubernetes/pull/115451), [@zhucan](https://github.com/zhucan))", + "author": "zhucan", + "author_url": "https://github.com/zhucan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115451", + "pr_number": 115451, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "testing" + ], + "feature": true, + "duplicate": true + }, + "115454": { + "commit": "95c65ca3a09333baa7e420dbabfcc39c4bfd77fe", + "text": "Promoted pod resource `limit/request` metrics to stable.", + "markdown": "Promoted pod resource `limit/request` metrics to stable. ([#115454](https://github.com/kubernetes/kubernetes/pull/115454), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115454", + "pr_number": 115454, + "areas": [ + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "duplicate": true + }, + "115464": { + "commit": "49babf218a0cd4907f8197c33464dd5f7874df0e", + "text": "Fixed an issue where a CSI migrated volume may be prematurely detached when the CSI driver is not running on the node.\nIf CSI migration is enabled on the node, even the csi-driver is not up and ready, we will still add this volume to DSW.", + "markdown": "Fixed an issue where a CSI migrated volume may be prematurely detached when the CSI driver is not running on the node.\n If CSI migration is enabled on the node, even the csi-driver is not up and ready, we will still add this volume to DSW. ([#115464](https://github.com/kubernetes/kubernetes/pull/115464), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu))", + "author": "sunnylovestiramisu", + "author_url": "https://github.com/sunnylovestiramisu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115464", + "pr_number": 115464, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "apps" + ], + "duplicate": true + }, + "115480": { + "commit": "beacb8d7afc427eac491c59e9370be7b16b9f318", + "text": "Added `--output plaintext-openapiv2` argument to kubectl explain to use old openapiv2 `explain` implementation.", + "markdown": "Added `--output plaintext-openapiv2` argument to kubectl explain to use old openapiv2 `explain` implementation. ([#115480](https://github.com/kubernetes/kubernetes/pull/115480), [@alexzielenski](https://github.com/alexzielenski))", + "documentation": [ + { + "description": "[KEP] 3515 OpenAPI v3 for kubectl explain", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3515-kubectl-explain-openapiv3", + "type": "KEP" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115480", + "pr_number": 115480, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "auth", + "cli", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "115503": { + "commit": "7a55b76f28eddbbb7abf69038d4bd5abab833b4f", + "text": "Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing when service was configured with `ipFamilyPolicy`: `RequireDualStack`", + "markdown": "Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing when service was configured with `ipFamilyPolicy`: `RequireDualStack` ([#115503](https://github.com/kubernetes/kubernetes/pull/115503), [@princepereira](https://github.com/princepereira))", + "author": "princepereira", + "author_url": "https://github.com/princepereira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115503", + "pr_number": 115503, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true + }, + "115514": { + "commit": "b0171f77f68427813efbb478c0ba89f48322d34a", + "text": "k8s.io/client-go/tools/record.EventBroadcaster: after Shutdown() is called, the broadcaster now gives up immediately after a failure to write an event to a sink. Previously it tried multiple times for 12 seconds in a goroutine.", + "markdown": "K8s.io/client-go/tools/record.EventBroadcaster: after Shutdown() is called, the broadcaster now gives up immediately after a failure to write an event to a sink. Previously it tried multiple times for 12 seconds in a goroutine. ([#115514](https://github.com/kubernetes/kubernetes/pull/115514), [@pohly](https://github.com/pohly)) [SIG API Machinery]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115514", + "pr_number": 115514, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "115569": { + "commit": "9b09d0600a69a2eb36b0d136465ccc3c179dacdb", + "text": "`nodeName` being set along with non-empty `schedulingGates` is now enforced.", + "markdown": "`nodeName` being set along with non-empty `schedulingGates` is now enforced. ([#115569](https://github.com/kubernetes/kubernetes/pull/115569), [@Huang-Wei](https://github.com/Huang-Wei))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3521-pod-scheduling-readiness", + "type": "KEP" + } + ], + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115569", + "pr_number": 115569, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "apps" + ], + "duplicate": true + }, + "115575": { + "commit": "8e31885e3649fbf74500383eb399db970b8516fd", + "text": "`kubeadm`: fixed a bug where the uploaded kubelet configuration in `kube-system/kubelet-config` `ConfigMap` does not respect user patch", + "markdown": "`kubeadm`: fixed a bug where the uploaded kubelet configuration in `kube-system/kubelet-config` `ConfigMap` does not respect user patch ([#115575](https://github.com/kubernetes/kubernetes/pull/115575), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115575", + "pr_number": 115575, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "115577": { + "commit": "e4c8802407fbaffad126685280e72145d89b125e", + "text": "Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing when service was configured with `ipFamilyPolicy`: `RequireDualStack`", + "markdown": "Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing when service was configured with `ipFamilyPolicy`: `RequireDualStack` ([#115577](https://github.com/kubernetes/kubernetes/pull/115577), [@princepereira](https://github.com/princepereira))", + "author": "princepereira", + "author_url": "https://github.com/princepereira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115577", + "pr_number": 115577, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true + }, + "115590": { + "commit": "e18fa74551bc695014bf9da2d1eb14d2050db181", + "text": "Added kubelet Topology Manager metric to measure topology manager admission latency.", + "markdown": "Added kubelet Topology Manager metric to measure topology manager admission latency. ([#115590](https://github.com/kubernetes/kubernetes/pull/115590), [@swatisehgal](https://github.com/swatisehgal))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/pull/3745", + "type": "KEP" + } + ], + "author": "swatisehgal", + "author_url": "https://github.com/swatisehgal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115590", + "pr_number": 115590, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "115603": { + "commit": "4f76e4a0fd8688a1add065dc9796973dc280fce0", + "text": "Upgraded `coredns` to `v1.10.1`", + "markdown": "Upgraded `coredns` to `v1.10.1` ([#115603](https://github.com/kubernetes/kubernetes/pull/115603), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115603", + "pr_number": 115603, + "areas": [ + "provider/gcp", + "kubeadm", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle", + "cloud-provider" + ], + "duplicate": true + }, + "115606": { + "commit": "aa98f6f4daa0bd6ce3931015069fe525836cbd43", + "text": "Pods which have an invalid negative `spec.terminationGracePeriodSeconds` value will now be treated as having a `terminationGracePeriodSeconds` of `1`", + "markdown": "Pods which have an invalid negative `spec.terminationGracePeriodSeconds` value will now be treated as having a `terminationGracePeriodSeconds` of `1` ([#115606](https://github.com/kubernetes/kubernetes/pull/115606), [@wzshiming](https://github.com/wzshiming))", + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115606", + "pr_number": 115606, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "115610": { + "commit": "f545ff3ba8c963e4a2a384c28d8cb918f2ffd06f", + "text": "`kubeadm`: now shows a warning message when detecting that the sandbox image of the container runtime is inconsistent with that used by kubeadm", + "markdown": "`kubeadm`: now shows a warning message when detecting that the sandbox image of the container runtime is inconsistent with that used by kubeadm ([#115610](https://github.com/kubernetes/kubernetes/pull/115610), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115610", + "pr_number": 115610, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "115620": { + "commit": "814faade7fa3916478df963cfc6e34042e79ce89", + "text": "Fixed missing delete events on informer re-lists to ensure all delete events were correctly emitted and using the latest known object state, so that all event handlers and stores always reflect the actual apiserver state as best as possible", + "markdown": "Fixed missing delete events on informer re-lists to ensure all delete events were correctly emitted and using the latest known object state, so that all event handlers and stores always reflect the actual apiserver state as best as possible ([#115620](https://github.com/kubernetes/kubernetes/pull/115620), [@odinuge](https://github.com/odinuge))", + "author": "odinuge", + "author_url": "https://github.com/odinuge", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115620", + "pr_number": 115620, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "115621": { + "commit": "da209484929560072bb766afd6103c93a09bd3e6", + "text": "Graduated the `CSINodeExpandSecret` feature to Beta. This feature facilitates passing secrets to CSI driver as part of Node Expansion CSI operation.", + "markdown": "Graduated the `CSINodeExpandSecret` feature to Beta. This feature facilitates passing secrets to CSI driver as part of Node Expansion CSI operation. ([#115621](https://github.com/kubernetes/kubernetes/pull/115621), [@humblec](https://github.com/humblec))", + "author": "humblec", + "author_url": "https://github.com/humblec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115621", + "pr_number": 115621, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true + }, + "115630": { + "commit": "2e3c5003b96aef29e87ee24c9086ff7f06cb8886", + "text": "Changed metrics for aggregated discovery to publish new time series (alpha).", + "markdown": "Changed metrics for aggregated discovery to publish new time series (alpha). ([#115630](https://github.com/kubernetes/kubernetes/pull/115630), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery and Testing]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115630", + "pr_number": 115630, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "115634": { + "commit": "94424ba808e145140f4ab0a0d508a488480e1b96", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#115634](https://github.com/kubernetes/kubernetes/pull/115634), [@ameukam](https://github.com/ameukam)) [SIG Cloud Provider]", + "author": "ameukam", + "author_url": "https://github.com/ameukam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115634", + "pr_number": 115634, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "do_not_publish": true + }, + "115649": { + "commit": "0698d9eb829ff0ef10d0a7e5fb525d330d332fb4", + "text": "Added apiserver_envelope_encryption_kms_operations_latency_seconds metric to measure the KMSv2 grpc calls latency.", + "markdown": "Added apiserver_envelope_encryption_kms_operations_latency_seconds metric to measure the KMSv2 grpc calls latency. ([#115649](https://github.com/kubernetes/kubernetes/pull/115649), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115649", + "pr_number": 115649, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "115652": { + "commit": "f5a69ffda93f18368b6a20a7d07ab65b6d91e8f7", + "text": "The Scheduler did not run the plugin Score method when its PreScore method returned a Skip status. In other words, the PreScore/Score plugin could return a Skip status in PreScore if the plugin did nothing in Score for that Pod.", + "markdown": "The Scheduler did not run the plugin Score method when its PreScore method returned a Skip status. In other words, the PreScore/Score plugin could return a Skip status in PreScore if the plugin did nothing in Score for that Pod. ([#115652](https://github.com/kubernetes/kubernetes/pull/115652), [@AxeZhan](https://github.com/AxeZhan))", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115652", + "pr_number": 115652, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "115655": { + "commit": "be080584c632b031583310dd090424b06aa4f498", + "text": "`NodeResourceFit` and `NodeResourcesBalancedAllocation` implement the `PreScore`\nextension point for a more performant calculation.", + "markdown": "`NodeResourceFit` and `NodeResourcesBalancedAllocation` implement the `PreScore`\n extension point for a more performant calculation. ([#115655](https://github.com/kubernetes/kubernetes/pull/115655), [@tangwz](https://github.com/tangwz))", + "author": "tangwz", + "author_url": "https://github.com/tangwz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115655", + "pr_number": 115655, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "duplicate_kind": true + }, + "115668": { + "commit": "152876a3eb9c6211c48bb159c87e2bf834e4eedc", + "text": "`ValidatingAdmissionPolicy` now provides a status field that contains results of type checking the validation expression.\nThe type checking is fully informational, and the behavior of the policy is unchanged.", + "markdown": "`ValidatingAdmissionPolicy` now provides a status field that contains results of type checking the validation expression.\n The type checking is fully informational, and the behavior of the policy is unchanged. ([#115668](https://github.com/kubernetes/kubernetes/pull/115668), [@jiahuif](https://github.com/jiahuif))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3488-cel-admission-control", + "type": "KEP" + } + ], + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115668", + "pr_number": 115668, + "areas": [ + "test", + "apiserver", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115678": { + "commit": "0424a530a4d07d12a4f38bb978d705fcf4505e21", + "text": "e2e framework: added `--report-complete-ginkgo` and `--report-complete-junit` parameters. They work like `ginkgo --json-report \u003creport dir\u003e/ginkgo/report.json --junit-report \u003creport dir\u003e/ginkgo/report.xml`.", + "markdown": "E2e framework: added `--report-complete-ginkgo` and `--report-complete-junit` parameters. They work like `ginkgo --json-report \u003creport dir\u003e/ginkgo/report.json --junit-report \u003creport dir\u003e/ginkgo/report.xml`. ([#115678](https://github.com/kubernetes/kubernetes/pull/115678), [@pohly](https://github.com/pohly)) [SIG Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115678", + "pr_number": 115678, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ] + }, + "115690": { + "commit": "e818649c10f29bc80b874889a448da4023918330", + "text": "None", + "markdown": "None ([#115690](https://github.com/kubernetes/kubernetes/pull/115690), [@tzneal](https://github.com/tzneal))", + "author": "tzneal", + "author_url": "https://github.com/tzneal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115690", + "pr_number": 115690, + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ], + "do_not_publish": true + }, + "115693": { + "commit": "20c3a007f55b8f05ad31650494f90941ea15370f", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#115693](https://github.com/kubernetes/kubernetes/pull/115693), [@bobbypage](https://github.com/bobbypage)) [SIG Node and Testing]", + "author": "bobbypage", + "author_url": "https://github.com/bobbypage", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115693", + "pr_number": 115693, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "115709": { + "commit": "a0878eb7159cee412b2bb193b4fba00ac857f3ab", + "text": "None", + "markdown": "None ([#115709](https://github.com/kubernetes/kubernetes/pull/115709), [@yoongon](https://github.com/yoongon))", + "author": "yoongon", + "author_url": "https://github.com/yoongon", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115709", + "pr_number": 115709, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "115712": { + "commit": "6a5c88b9dd0a0e9ef0115d1bbcb196284777832b", + "text": "Added \"netadmin\" debugging profiles for kubectl debug.", + "markdown": "Added \"netadmin\" debugging profiles for kubectl debug. ([#115712](https://github.com/kubernetes/kubernetes/pull/115712), [@wedaly](https://github.com/wedaly)) [SIG CLI]", + "author": "wedaly", + "author_url": "https://github.com/wedaly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115712", + "pr_number": 115712, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "115719": { + "commit": "9e356a41321cd29fa33f15607317824a697f436c", + "text": "Graduated seccomp profile defaulting to GA.\n\nSet the kubelet `--seccomp-default` flag or `seccompDefault` kubelet configuration field to `true` to make pods on that node default to using the `RuntimeDefault` seccomp profile.\n\nEnabling seccomp for your workload can have a negative performance impact depending on the kernel and container runtime version in use.\n\nGuidance for identifying and mitigating those issues is outlined in the Kubernetes [seccomp tutorial](https://k8s.io/docs/tutorials/security/seccomp).", + "markdown": "Graduated seccomp profile defaulting to GA.\n \n Set the kubelet `--seccomp-default` flag or `seccompDefault` kubelet configuration field to `true` to make pods on that node default to using the `RuntimeDefault` seccomp profile.\n \n Enabling seccomp for your workload can have a negative performance impact depending on the kernel and container runtime version in use.\n \n Guidance for identifying and mitigating those issues is outlined in the Kubernetes [seccomp tutorial](https://k8s.io/docs/tutorials/security/seccomp). ([#115719](https://github.com/kubernetes/kubernetes/pull/115719), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Node, Storage and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/05f81b8/keps/sig-node/2413-seccomp-by-default", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115719", + "pr_number": 115719, + "areas": [ + "test", + "kubelet", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115721": { + "commit": "07e7e72c071a33ad38755a5d20c3f4b88f78d722", + "text": "The `DownwardAPIHugePages` kubelet feature graduated to stable / GA.", + "markdown": "The `DownwardAPIHugePages` kubelet feature graduated to stable / GA. ([#115721](https://github.com/kubernetes/kubernetes/pull/115721), [@saschagrunert](https://github.com/saschagrunert)) [SIG Apps and Node]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/blob/b5b3585/keps/sig-node/2053-downward-api-hugepages/README.md", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115721", + "pr_number": 115721, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115739": { + "commit": "731238fb416a2ae73b39063acdf0c6326555a045", + "text": "None", + "markdown": "None ([#115739](https://github.com/kubernetes/kubernetes/pull/115739), [@heyste](https://github.com/heyste))", + "author": "heyste", + "author_url": "https://github.com/heyste", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115739", + "pr_number": 115739, + "areas": [ + "conformance" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "architecture" + ], + "duplicate": true, + "do_not_publish": true + }, + "115742": { + "commit": "bb6c6fad2c19b3e31ef0e00d0b7e05c624fe5d88", + "text": "linux/arm will not ship in Kubernetes 1.27 as we are running into issues with building artifacts using golang 1.20.2 (please see issue #116492)", + "markdown": "Linux/arm will not ship in Kubernetes 1.27 as we are running into issues with building artifacts using golang 1.20.2 (please see issue #116492) ([#115742](https://github.com/kubernetes/kubernetes/pull/115742), [@dims](https://github.com/dims)) [SIG Architecture, Release and Testing]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115742", + "pr_number": 115742, + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing", + "release", + "architecture" + ], + "duplicate": true + }, + "115747": { + "commit": "8c61473f1ce7734bd9399c55d0b057b1f21f97d6", + "text": "Added CEL runtime cost calculation into ValidatingAdmissionPolicy, matching the evaluation cost\nrestrictions that already apply to CustomResourceDefinition.\nIf rule evaluation uses more compute than the limit, the API server aborts the evaluation and the\nadmission check that was being performed is aborted; the `failurePolicy` for the ValidatingAdmissionPolicy\ndetermines the outcome.", + "markdown": "Added CEL runtime cost calculation into ValidatingAdmissionPolicy, matching the evaluation cost\n restrictions that already apply to CustomResourceDefinition.\n If rule evaluation uses more compute than the limit, the API server aborts the evaluation and the\n admission check that was being performed is aborted; the `failurePolicy` for the ValidatingAdmissionPolicy\n determines the outcome. ([#115747](https://github.com/kubernetes/kubernetes/pull/115747), [@cici37](https://github.com/cici37))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3488", + "type": "KEP" + } + ], + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115747", + "pr_number": 115747, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "115750": { + "commit": "1586138519f972a68f597c496d9bace740158681", + "text": "Graduated `KubeletTracing` to beta, which means that the feature gate is now enabled by default.", + "markdown": "Graduated `KubeletTracing` to beta, which means that the feature gate is now enabled by default. ([#115750](https://github.com/kubernetes/kubernetes/pull/115750), [@saschagrunert](https://github.com/saschagrunert))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/2831", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115750", + "pr_number": 115750, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115758": { + "commit": "b8688048f8d3cca513ae36b2eb6e15f457a18df3", + "text": "NONE", + "markdown": "NONE ([#115758](https://github.com/kubernetes/kubernetes/pull/115758), [@sourcelliu](https://github.com/sourcelliu))", + "author": "sourcelliu", + "author_url": "https://github.com/sourcelliu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115758", + "pr_number": 115758, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "115769": { + "commit": "713ded736824d669d9fae9ac4a29b1ec18d66446", + "text": "Fixed the problem Pod terminating stuck because of trying to umount not actual mounted dir.", + "markdown": "Fixed the problem Pod terminating stuck because of trying to umount not actual mounted dir. ([#115769](https://github.com/kubernetes/kubernetes/pull/115769), [@mochizuki875](https://github.com/mochizuki875))", + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115769", + "pr_number": 115769, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true + }, + "115770": { + "commit": "1bafca3099bc5c0aa0711de175bcd32167ad2147", + "text": "Discovery document will correctly return the resources for aggregated apiservers that do not implement aggregated disovery", + "markdown": "Discovery document will correctly return the resources for aggregated apiservers that do not implement aggregated disovery ([#115770](https://github.com/kubernetes/kubernetes/pull/115770), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115770", + "pr_number": 115770, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "115786": { + "commit": "b3d8ac8496a23d65a907f9333d906bcd5463764e", + "text": "`golang.org/x/net` updated to `v0.7.0` to fix CVE-2022-41723", + "markdown": "`golang.org/x/net` updated to `v0.7.0` to fix CVE-2022-41723 ([#115786](https://github.com/kubernetes/kubernetes/pull/115786), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115786", + "pr_number": 115786, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "115800": { + "commit": "d6fe718e19881399fbb65f693c0c0f29f8f63861", + "text": "NONE", + "markdown": "NONE ([#115800](https://github.com/kubernetes/kubernetes/pull/115800), [@shogohida](https://github.com/shogohida))", + "author": "shogohida", + "author_url": "https://github.com/shogohida", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115800", + "pr_number": 115800, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "do_not_publish": true + }, + "115802": { + "commit": "a25834cb5a16bbd6a9295aeb5d1621aa8a4cd407", + "text": "`apiserver_admission_webhook_admission_duration_seconds` buckets have been expanded, 25s is now the largest bucket size to match the webhook default timeout.", + "markdown": "`apiserver_admission_webhook_admission_duration_seconds` buckets have been expanded, 25s is now the largest bucket size to match the webhook default timeout. ([#115802](https://github.com/kubernetes/kubernetes/pull/115802), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery and Instrumentation]", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115802", + "pr_number": 115802, + "areas": [ + "apiserver", + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "115815": { + "commit": "06b6644fcf49661d55f7df0311e2692b8d449ab4", + "text": "`PodSchedulingReadiness` is graduated to beta.", + "markdown": "`PodSchedulingReadiness` is graduated to beta. ([#115815](https://github.com/kubernetes/kubernetes/pull/115815), [@Huang-Wei](https://github.com/Huang-Wei))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3521-pod-scheduling-readiness", + "type": "KEP" + } + ], + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115815", + "pr_number": 115815, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115821": { + "commit": "bce513a2b824e595c4414a05bc8ee60fa7afe0a0", + "text": "The Pod API field `.spec.schedulingGates[*].name` now requires qualified names (like `example.com/mygate`), matching validation for names of `.spec.readinessGates[*].name`. Any uses of the alpha scheduling gate feature prior to 1.27 that do not match that validation must be renamed or deleted before upgrading to 1.27.", + "markdown": "The Pod API field `.spec.schedulingGates[*].name` now requires qualified names (like `example.com/mygate`), matching validation for names of `.spec.readinessGates[*].name`. Any uses of the alpha scheduling gate feature prior to 1.27 that do not match that validation must be renamed or deleted before upgrading to 1.27. ([#115821](https://github.com/kubernetes/kubernetes/pull/115821), [@lianghao208](https://github.com/lianghao208)) [SIG Apps and Scheduling]", + "author": "lianghao208", + "author_url": "https://github.com/lianghao208", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115821", + "pr_number": 115821, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "apps" + ], + "feature": true, + "duplicate": true + }, + "115828": { + "commit": "5c09c9de297558fdd092c009a4eccc96dffcb713", + "text": "Kubernetes is now built with go 1.20.1", + "markdown": "Kubernetes is now built with go 1.20.1 ([#115828](https://github.com/kubernetes/kubernetes/pull/115828), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115828", + "pr_number": 115828, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "115840": { + "commit": "a0b1bee7c5214af37f04b555ee59a7c81ec0699b", + "text": "Remove deprecated `--enable-taint-manager` and `--pod-eviction-timeout` CLI", + "markdown": "Remove deprecated `--enable-taint-manager` and `--pod-eviction-timeout` CLI ([#115840](https://github.com/kubernetes/kubernetes/pull/115840), [@atosatto](https://github.com/atosatto))", + "author": "atosatto", + "author_url": "https://github.com/atosatto", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115840", + "pr_number": 115840, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115846": { + "commit": "33c1a542fbfeeeceb5d2e7a862d1b76f4bfe047d", + "text": "Added apiserver_envelope_encryption_invalid_key_id_from_status_total to measure number of times an invalid keyID is returned by the Status RPC call.", + "markdown": "Added apiserver_envelope_encryption_invalid_key_id_from_status_total to measure number of times an invalid keyID is returned by the Status RPC call. ([#115846](https://github.com/kubernetes/kubernetes/pull/115846), [@ritazh](https://github.com/ritazh)) [SIG API Machinery and Auth]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", + "type": "KEP" + } + ], + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115846", + "pr_number": 115846, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true + }, + "115847": { + "commit": "28fa3cbbf180fbd77d364cf845f86d21d54da728", + "text": "Extended the kubelet's PodResources API to include resources allocated in `ResourceClaims` via `DynamicResourceAllocation`. Additionally, added a new `Get()` method to query a specific pod for its resources.", + "markdown": "Extended the kubelet's PodResources API to include resources allocated in `ResourceClaims` via `DynamicResourceAllocation`. Additionally, added a new `Get()` method to query a specific pod for its resources. ([#115847](https://github.com/kubernetes/kubernetes/pull/115847), [@moshe010](https://github.com/moshe010)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3738", + "type": "KEP" + } + ], + "author": "moshe010", + "author_url": "https://github.com/moshe010", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115847", + "pr_number": 115847, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true + }, + "115856": { + "commit": "da87af638f84b0272dcf521fbe7831876cf78900", + "text": "NONE", + "markdown": "NONE ([#115856](https://github.com/kubernetes/kubernetes/pull/115856), [@lanycrost](https://github.com/lanycrost))", + "author": "lanycrost", + "author_url": "https://github.com/lanycrost", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115856", + "pr_number": 115856, + "areas": [ + "test", + "apiserver", + "kubectl", + "release-eng", + "conformance", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "api-machinery", + "autoscaling", + "auth", + "apps", + "cli", + "testing", + "release", + "architecture" + ], + "duplicate": true, + "do_not_publish": true + }, + "115861": { + "commit": "6fd488a4e6ac6771916b3c37da6ed8cd9827c303", + "text": "When an unsupported PodDisruptionBudget configuration is found, an event and log will be emitted to inform users of the misconfiguration.", + "markdown": "When an unsupported PodDisruptionBudget configuration is found, an event and log will be emitted to inform users of the misconfiguration. ([#115861](https://github.com/kubernetes/kubernetes/pull/115861), [@JayKayy](https://github.com/JayKayy)) [SIG Apps]", + "author": "JayKayy", + "author_url": "https://github.com/JayKayy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115861", + "pr_number": 115861, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "115863": { + "commit": "b6582ffcd5ad83c0195afc0959976ea2eb1936a4", + "text": "Fixed panic in vSphere e2e tests.", + "markdown": "Fixed panic in vSphere e2e tests. ([#115863](https://github.com/kubernetes/kubernetes/pull/115863), [@jsafrane](https://github.com/jsafrane)) [SIG Storage and Testing]", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115863", + "pr_number": 115863, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "115879": { + "commit": "9c5eebaf3f9c713184a3fdf4d61d12d247c60777", + "text": "The `SecurityContextDeny` admission plugin is going deprecated and will be removed in future versions.", + "markdown": "The `SecurityContextDeny` admission plugin is going deprecated and will be removed in future versions. ([#115879](https://github.com/kubernetes/kubernetes/pull/115879), [@mtardy](https://github.com/mtardy))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3785", + "type": "KEP" + }, + { + "description": "[Other doc]", + "url": "https://k8s.io/docs/reference/access-authn-authz/admission-controllers/#securitycontextdeny", + "type": "external" + }, + { + "description": "[Issue]", + "url": "https://github.com/kubernetes/kubernetes/issues/111516", + "type": "external" + } + ], + "author": "mtardy", + "author_url": "https://github.com/mtardy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115879", + "pr_number": 115879, + "kinds": [ + "deprecation" + ], + "sigs": [ + "auth" + ] + }, + "115893": { + "commit": "d788d436c98e26cde800b5dee3c7aa492bc18550", + "text": "Upgraded `go-jose` to `v2.6.0`", + "markdown": "Upgraded `go-jose` to `v2.6.0` ([#115893](https://github.com/kubernetes/kubernetes/pull/115893), [@mgoltzsche](https://github.com/mgoltzsche))", + "author": "mgoltzsche", + "author_url": "https://github.com/mgoltzsche", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115893", + "pr_number": 115893, + "areas": [ + "test", + "apiserver", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "auth", + "testing" + ], + "duplicate": true + }, + "115904": { + "commit": "2225ee5dd307e3a1d4a00b0a7ceae27c0500e005", + "text": "Promoted `CronJobTimeZone` feature to GA", + "markdown": "Promoted `CronJobTimeZone` feature to GA ([#115904](https://github.com/kubernetes/kubernetes/pull/115904), [@soltysh](https://github.com/soltysh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3140", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115904", + "pr_number": 115904, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115905": { + "commit": "5a2922474c3eec800d634097e8ec9884fd07fbc1", + "text": "Updated distroless iptables to use released image `registry.k8s.io/distroless-iptables:v0.2.1`", + "markdown": "Updated distroless iptables to use released image `registry.k8s.io/distroless-iptables:v0.2.1` ([#115905](https://github.com/kubernetes/kubernetes/pull/115905), [@cpanato](https://github.com/cpanato)) [SIG Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115905", + "pr_number": 115905, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true, + "duplicate_kind": true + }, + "115907": { + "commit": "a34f8423a7051cdf2183863f4037bd7a44c9ad6d", + "text": "Fixed an EndpointSlice Controller hashing bug that could cause EndpointSlices to incorrectly handle Pods with duplicate IP addresses. For example this could happen when a new Pod reused an IP that was also assigned to a Pod in a completed state.", + "markdown": "Fixed an EndpointSlice Controller hashing bug that could cause EndpointSlices to incorrectly handle Pods with duplicate IP addresses. For example this could happen when a new Pod reused an IP that was also assigned to a Pod in a completed state. ([#115907](https://github.com/kubernetes/kubernetes/pull/115907), [@qinqon](https://github.com/qinqon)) [SIG Apps and Network]", + "author": "qinqon", + "author_url": "https://github.com/qinqon", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115907", + "pr_number": 115907, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "115919": { + "commit": "39a99710bcd784a89d423c27ce6371109e37c7ea", + "text": "Fixed an issue with Winkernel Proxier - ClusterIP Loadbalancers missing if the `ExternalTrafficPolicy` is set to Local and the available endpoints are all `remoteEndpoints`.", + "markdown": "Fixed an issue with Winkernel Proxier - ClusterIP Loadbalancers missing if the `ExternalTrafficPolicy` is set to Local and the available endpoints are all `remoteEndpoints`. ([#115919](https://github.com/kubernetes/kubernetes/pull/115919), [@princepereira](https://github.com/princepereira))", + "author": "princepereira", + "author_url": "https://github.com/princepereira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115919", + "pr_number": 115919, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true + }, + "115928": { + "commit": "cfb32121c12d7cb20adcdfa5360661207287c9b1", + "text": "`volumes`: `resource.claims` is now cleared for PVC specs during create or update of a pod spec with inline PVC template or of a PVC because it has no effect.", + "markdown": "`volumes`: `resource.claims` is now cleared for PVC specs during create or update of a pod spec with inline PVC template or of a PVC because it has no effect. ([#115928](https://github.com/kubernetes/kubernetes/pull/115928), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115928", + "pr_number": 115928, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "storage", + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "115940": { + "commit": "e519921666b760b782b46a29179997ab97671068", + "text": "Pod template `schedulingGates` are now mutable for Jobs that are suspended and have never been started", + "markdown": "Pod template `schedulingGates` are now mutable for Jobs that are suspended and have never been started ([#115940](https://github.com/kubernetes/kubernetes/pull/115940), [@ahg-g](https://github.com/ahg-g)) [SIG Apps]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/2926-job-mutable-scheduling-directives", + "type": "KEP" + } + ], + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115940", + "pr_number": 115940, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "115944": { + "commit": "0753f0285150d0dcee8a4ea0a4a601ba1e76859e", + "text": "Added a [warning](https://k8s.io/blog/2020/09/03/warnings/) response when handling requests that set the deprecated `spec.externalID` field for a Node.", + "markdown": "Added a [warning](https://k8s.io/blog/2020/09/03/warnings/) response when handling requests that set the deprecated `spec.externalID` field for a Node. ([#115944](https://github.com/kubernetes/kubernetes/pull/115944), [@SataQiu](https://github.com/SataQiu)) [SIG Node]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115944", + "pr_number": 115944, + "kinds": [ + "deprecation" + ], + "sigs": [ + "node" + ] + }, + "115965": { + "commit": "44909771d969eeb3948cb377093d0906d6a2f400", + "text": "Added metrics for volume reconstruction during kubelet startup.", + "markdown": "Added metrics for volume reconstruction during kubelet startup. ([#115965](https://github.com/kubernetes/kubernetes/pull/115965), [@jsafrane](https://github.com/jsafrane)) [SIG Node and Storage]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/3756-volume-reconstruction/README.md", + "type": "KEP" + } + ], + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115965", + "pr_number": 115965, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node" + ], + "feature": true, + "duplicate": true + }, + "115966": { + "commit": "bfc23bbf1967a069a4dfcbed9166c03fe42f6fe5", + "text": "GCE does not support LoadBalancer Services with ports with different protocols (TCP and UDP)", + "markdown": "GCE does not support LoadBalancer Services with ports with different protocols (TCP and UDP) ([#115966](https://github.com/kubernetes/kubernetes/pull/115966), [@aojea](https://github.com/aojea)) [SIG Apps and Cloud Provider]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115966", + "pr_number": 115966, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug", + "cleanup", + "api-change" + ], + "sigs": [ + "apps", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "115967": { + "commit": "c6f3007071d3212417ddab088adc5cc2e388b167", + "text": "Graduated CRI Events driven Pod LifeCycle Event Generator (Evented PLEG) to Beta", + "markdown": "Graduated CRI Events driven Pod LifeCycle Event Generator (Evented PLEG) to Beta ([#115967](https://github.com/kubernetes/kubernetes/pull/115967), [@harche](https://github.com/harche))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3386", + "type": "KEP" + } + ], + "author": "harche", + "author_url": "https://github.com/harche", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115967", + "pr_number": 115967, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "115969": { + "commit": "16d2d55bc06158124a41f3ee8cf567e63ddd9d21", + "text": "Added `messageExpression` field to `ValidationRule`.", + "markdown": "Added `messageExpression` field to `ValidationRule`. ([#115969](https://github.com/kubernetes/kubernetes/pull/115969), [@DangerOnTheRanger](https://github.com/DangerOnTheRanger))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3747", + "type": "KEP" + } + ], + "author": "DangerOnTheRanger", + "author_url": "https://github.com/DangerOnTheRanger", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115969", + "pr_number": 115969, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115973": { + "commit": "04675428bbfc9bf7ba4c9e1abfc427b6228069d9", + "text": "Added `auditAnnotations` to `ValidatingAdmissionPolicy`, enabling CEL to be used to add audit annotations to request audit events.\nAdded `validationActions` to `ValidatingAdmissionPolicyBinding`, enabling validation failures to be handled by any combination of the warn, audit and deny enforcement actions.", + "markdown": "Added `auditAnnotations` to `ValidatingAdmissionPolicy`, enabling CEL to be used to add audit annotations to request audit events.\n Added `validationActions` to `ValidatingAdmissionPolicyBinding`, enabling validation failures to be handled by any combination of the warn, audit and deny enforcement actions. ([#115973](https://github.com/kubernetes/kubernetes/pull/115973), [@jpbetz](https://github.com/jpbetz))", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115973", + "pr_number": 115973, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116010": { + "commit": "b49b34c03a2005a490469bc74b52b94248e83a21", + "text": "HPA controller starts to expose metrics from the kube-controller-manager.\\n- `reconciliations_total`: Number of reconciliation of HPA controller. \\n- `reconciliation_duration_seconds`: The time(seconds) that the HPA controller takes to reconcile once.", + "markdown": "HPA controller starts to expose metrics from the kube-controller-manager.\\n- `reconciliations_total`: Number of reconciliation of HPA controller. \\n- `reconciliation_duration_seconds`: The time(seconds) that the HPA controller takes to reconcile once. ([#116010](https://github.com/kubernetes/kubernetes/pull/116010), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116010", + "pr_number": 116010, + "kinds": [ + "feature" + ], + "sigs": [ + "autoscaling", + "apps", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "116015": { + "commit": "e57d9683230273c989b9686fe166e55c8eb99fcd", + "text": "kubelet: the deprecated `--master-service-namespace` flag is removed in v1.27", + "markdown": "Kubelet: the deprecated `--master-service-namespace` flag is removed in v1.27 ([#116015](https://github.com/kubernetes/kubernetes/pull/116015), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116015", + "pr_number": 116015, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "116018": { + "commit": "ad523879944879449275669bfc13b06aadc06e94", + "text": "Fixed a log line in scheduler that inaccurately implies that volume binding has finalized", + "markdown": "Fixed a log line in scheduler that inaccurately implies that volume binding has finalized ([#116018](https://github.com/kubernetes/kubernetes/pull/116018), [@TommyStarK](https://github.com/TommyStarK))", + "author": "TommyStarK", + "author_url": "https://github.com/TommyStarK", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116018", + "pr_number": 116018, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "storage" + ], + "duplicate": true + }, + "116033": { + "commit": "8cd421163050d6416357d9f6cf860495b067682d", + "text": "NONE", + "markdown": "NONE ([#116033](https://github.com/kubernetes/kubernetes/pull/116033), [@chengjoey](https://github.com/chengjoey))", + "author": "chengjoey", + "author_url": "https://github.com/chengjoey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116033", + "pr_number": 116033, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "do_not_publish": true + }, + "116043": { + "commit": "02a654a635b912f6ca788ae793cf14c975016117", + "text": "From now on, the HPA controller will return an error for the container resource metrics when the feature gate `HPAContainerMetrics` is disabled. As a result, HPA with a container resource metric performs no scale-down and performs only.", + "markdown": "From now on, the HPA controller will return an error for the container resource metrics when the feature gate `HPAContainerMetrics` is disabled. As a result, HPA with a container resource metric performs no scale-down and performs only. ([#116043](https://github.com/kubernetes/kubernetes/pull/116043), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116043", + "pr_number": 116043, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "autoscaling", + "apps" + ], + "duplicate": true + }, + "116046": { + "commit": "d3a7b5920fc4a443c6e48c98478d1eecf8478246", + "text": "Graduated the container resource metrics feature on `HPA` to beta.", + "markdown": "Graduated the container resource metrics feature on `HPA` to beta. ([#116046](https://github.com/kubernetes/kubernetes/pull/116046), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116046", + "pr_number": 116046, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "autoscaling" + ], + "feature": true, + "duplicate_kind": true + }, + "116054": { + "commit": "64259b43b8e5b7c086bf2b74743dc7e73ebe37e3", + "text": "Added authorization check support to the CEL expressions of ValidatingAdmissionPolicy via a `authorizer`\nvariable with expressions. The new variable provides a builder that allows expressions such `authorizer.group('').resource('pods').check('create').allowed()`.", + "markdown": "Added authorization check support to the CEL expressions of ValidatingAdmissionPolicy via a `authorizer`\n variable with expressions. The new variable provides a builder that allows expressions such `authorizer.group('').resource('pods').check('create').allowed()`. ([#116054](https://github.com/kubernetes/kubernetes/pull/116054), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116054", + "pr_number": 116054, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116066": { + "commit": "9d7db7088263c89410aa9b6ef4c5c2043de4b6b0", + "text": "NONE", + "markdown": "NONE ([#116066](https://github.com/kubernetes/kubernetes/pull/116066), [@yoongon](https://github.com/yoongon))", + "author": "yoongon", + "author_url": "https://github.com/yoongon", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116066", + "pr_number": 116066, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "116074": { + "commit": "911631a6e030a24aeb526c425f498334e743b32b", + "text": "kubeadm`: modified `--config` flag from required to optional for `kubeadm kubeconfig user` command", + "markdown": "Kubeadm`: modified `--config` flag from required to optional for `kubeadm kubeconfig user` command ([#116074](https://github.com/kubernetes/kubernetes/pull/116074), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116074", + "pr_number": 116074, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "116089": { + "commit": "5157158d3d86cbe1c03c28171b2428183ee00009", + "text": "Fixed a bug where Kubernetes would apply a default StorageClass to a PersistentVolumeClaim,\neven when the deprecated annotation `volume.beta.kubernetes.io/storage-class` was set.", + "markdown": "Fixed a bug where Kubernetes would apply a default StorageClass to a PersistentVolumeClaim,\n even when the deprecated annotation `volume.beta.kubernetes.io/storage-class` was set. ([#116089](https://github.com/kubernetes/kubernetes/pull/116089), [@cvvz](https://github.com/cvvz)) [SIG Apps and Storage]", + "author": "cvvz", + "author_url": "https://github.com/cvvz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116089", + "pr_number": 116089, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "storage", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "116093": { + "commit": "8d5c96fed213dbaffe2139321f505781889cbb9d", + "text": "Graduated `Kubelet Topology Manager` to GA.", + "markdown": "Graduated `Kubelet Topology Manager` to GA. ([#116093](https://github.com/kubernetes/kubernetes/pull/116093), [@swatisehgal](https://github.com/swatisehgal))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/pull/3745", + "type": "KEP" + } + ], + "author": "swatisehgal", + "author_url": "https://github.com/swatisehgal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116093", + "pr_number": 116093, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116102": { + "commit": "aad305051934350e8f51d57a852a0ba390f97757", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#116102](https://github.com/kubernetes/kubernetes/pull/116102), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps]", + "author": "danielvegamyhre", + "author_url": "https://github.com/danielvegamyhre", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116102", + "pr_number": 116102, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ], + "do_not_publish": true + }, + "116108": { + "commit": "d8fe8454157cfcc79dba292e67c6919be36b6266", + "text": "Promote aggregated discovery endpoint to beta and it will be enabled by default", + "markdown": "Promote aggregated discovery endpoint to beta and it will be enabled by default ([#116108](https://github.com/kubernetes/kubernetes/pull/116108), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116108", + "pr_number": 116108, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "116116": { + "commit": "6e202d6fdb197ad1fd98b6bb8e6388b2a023a6d4", + "text": "The `JobMutableNodeSchedulingDirectives` feature gate has graduated to GA.", + "markdown": "The `JobMutableNodeSchedulingDirectives` feature gate has graduated to GA. ([#116116](https://github.com/kubernetes/kubernetes/pull/116116), [@ahg-g](https://github.com/ahg-g)) [SIG Apps, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/2926-job-mutable-scheduling-directives", + "type": "KEP" + } + ], + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116116", + "pr_number": 116116, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "116119": { + "commit": "9053b5dc2c8e0b977e759b9f076d1a52bafabbb7", + "text": "None", + "markdown": "None ([#116119](https://github.com/kubernetes/kubernetes/pull/116119), [@vinaykul](https://github.com/vinaykul))", + "author": "vinaykul", + "author_url": "https://github.com/vinaykul", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116119", + "pr_number": 116119, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "node", + "api-machinery", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "116121": { + "commit": "fe6a51ed4c013e6b5cdb90f9cced8e1381fc0310", + "text": "Bump default API QPS limits for Kubelet.", + "markdown": "Bump default API QPS limits for Kubelet. ([#116121](https://github.com/kubernetes/kubernetes/pull/116121), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116121", + "pr_number": 116121, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116144": { + "commit": "548e856b5820bb19a08f48211bad6d010b77de10", + "text": "`APIServerTracing` feature gate is now enabled by default. Tracing in the API\nServer is still disabled by default, and requires a config file to enable.", + "markdown": "`APIServerTracing` feature gate is now enabled by default. Tracing in the API\n Server is still disabled by default, and requires a config file to enable. ([#116144](https://github.com/kubernetes/kubernetes/pull/116144), [@dashpole](https://github.com/dashpole))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/bddca24910fb349e2eb0ac1c822c77f0f32fe9c6/keps/sig-instrumentation/647-apiserver-tracing/README.md", + "type": "KEP" + } + ], + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116144", + "pr_number": 116144, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116155": { + "commit": "4950f519039918c5f247a4cec7cf5b824bb16c92", + "text": "The API server now re-uses data encryption keys while the kms v2 plugin key ID is stable. Data encryption keys are still randomly generated on server start but an atomic counter is used to prevent nonce collisions.", + "markdown": "The API server now re-uses data encryption keys while the kms v2 plugin key ID is stable. Data encryption keys are still randomly generated on server start but an atomic counter is used to prevent nonce collisions. ([#116155](https://github.com/kubernetes/kubernetes/pull/116155), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116155", + "pr_number": 116155, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116161": { + "commit": "0010333bdd882e50dabfa6caebed805f89554fbb", + "text": "Relaxed API validation to allow pod node selector to be mutable for gated pods (additions only, no deletions or mutations).", + "markdown": "Relaxed API validation to allow pod node selector to be mutable for gated pods (additions only, no deletions or mutations). ([#116161](https://github.com/kubernetes/kubernetes/pull/116161), [@danielvegamyhre](https://github.com/danielvegamyhre))", + "documentation": [ + { + "description": "[KEP](", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3838-pod-mutable-scheduling-directives)", + "type": "KEP" + } + ], + "author": "danielvegamyhre", + "author_url": "https://github.com/danielvegamyhre", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116161", + "pr_number": 116161, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116167": { + "commit": "e28b191581195f237d21c0efff19b453f7dc3016", + "text": "When GCing pods, `kube-controller-manager` will delete Evicted pods first.", + "markdown": "When GCing pods, `kube-controller-manager` will delete Evicted pods first. ([#116167](https://github.com/kubernetes/kubernetes/pull/116167), [@borgerli](https://github.com/borgerli))", + "author": "borgerli", + "author_url": "https://github.com/borgerli", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116167", + "pr_number": 116167, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "116171": { + "commit": "d446bebca8008ff8ba8906c76647c0ae40dbb6f0", + "text": "None", + "markdown": "None ([#116171](https://github.com/kubernetes/kubernetes/pull/116171), [@daman1807](https://github.com/daman1807))", + "author": "daman1807", + "author_url": "https://github.com/daman1807", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116171", + "pr_number": 116171, + "areas": [ + "ipvs" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "116172": { + "commit": "856d6d9caaae7793795b87c7ffdef1a6f7f7c113", + "text": "Fixed a rare race condition in `kube-apiserver` that could lead to missing events when a watch API request was created at the same time `kube-apiserver` was re-initializing its internal watch.", + "markdown": "Fixed a rare race condition in `kube-apiserver` that could lead to missing events when a watch API request was created at the same time `kube-apiserver` was re-initializing its internal watch. ([#116172](https://github.com/kubernetes/kubernetes/pull/116172), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116172", + "pr_number": 116172, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "116201": { + "commit": "a32050e6cbe600f55854d86dc951479963d6033f", + "text": "The scheduler's metric `plugin_execution_duration_seconds` now records `PreEnqueue` plugins execution seconds.", + "markdown": "The scheduler's metric `plugin_execution_duration_seconds` now records `PreEnqueue` plugins execution seconds. ([#116201](https://github.com/kubernetes/kubernetes/pull/116201), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116201", + "pr_number": 116201, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "116205": { + "commit": "4fbfe11b89c3a2151f6b778bf404a668f35a63bb", + "text": "Since Kubernetes v1.5, `kubectl apply` has had an alpha-stage `--prune` flag to support deleting previously applied objects that have been removed from the input manifest. This feature has remained in alpha ever since due to performance and correctness issues inherent in its design. This PR exposes a second, independent pruning alpha powered by a new standard named `ApplySets`. An `ApplySet` is a server-side object (by default, a Secret; ConfigMaps are also allowed) that kubectl can use to accurately and efficiently track set membership across `apply` operations. The format used for `ApplySet` is set out in [KEP 3659](https://github.com/kubernetes/enhancements/issues/3659) as a low-level specification. Other tools in the ecosystem can also build on this specification for improved interoperability. To try the ApplySet-based pruning alpha, set `KUBECTL_APPLYSET=true` and use the flags `--prune --applyset=secret-name` with `kubectl apply`.", + "markdown": "Since Kubernetes v1.5, `kubectl apply` has had an alpha-stage `--prune` flag to support deleting previously applied objects that have been removed from the input manifest. This feature has remained in alpha ever since due to performance and correctness issues inherent in its design. This PR exposes a second, independent pruning alpha powered by a new standard named `ApplySets`. An `ApplySet` is a server-side object (by default, a Secret; ConfigMaps are also allowed) that kubectl can use to accurately and efficiently track set membership across `apply` operations. The format used for `ApplySet` is set out in [KEP 3659](https://github.com/kubernetes/enhancements/issues/3659) as a low-level specification. Other tools in the ecosystem can also build on this specification for improved interoperability. To try the ApplySet-based pruning alpha, set `KUBECTL_APPLYSET=true` and use the flags `--prune --applyset=secret-name` with `kubectl apply`. ([#116205](https://github.com/kubernetes/kubernetes/pull/116205), [@justinsb](https://github.com/justinsb))", + "author": "justinsb", + "author_url": "https://github.com/justinsb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116205", + "pr_number": 116205, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "116219": { + "commit": "4401af2c3ef213a3b3d9b45e3fc33273f36c6f11", + "text": "`kube-controller-manager`: fixed a bug that the `kubeconfig` field of `kubecontrollermanager.config.k8s.io` configuration is not populated correctly", + "markdown": "`kube-controller-manager`: fixed a bug that the `kubeconfig` field of `kubecontrollermanager.config.k8s.io` configuration is not populated correctly ([#116219](https://github.com/kubernetes/kubernetes/pull/116219), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116219", + "pr_number": 116219, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "duplicate": true + }, + "116233": { + "commit": "6260796b632375efc1950cf5f3d5a95cc760238e", + "text": "gRPC probes are now a GA feature. `GRPCContainerProbe` feature gate was locked to default value and will be removed in v1.29. If you were setting this feature gate explicitly, please remove it now.", + "markdown": "GRPC probes are now a GA feature. `GRPCContainerProbe` feature gate was locked to default value and will be removed in v1.29. If you were setting this feature gate explicitly, please remove it now. ([#116233](https://github.com/kubernetes/kubernetes/pull/116233), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116233", + "pr_number": 116233, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116235": { + "commit": "4a896644de963d87bd863efc4e3ebd9984161e8d", + "text": "Promoted `OpenAPIV3` to GA", + "markdown": "Promoted `OpenAPIV3` to GA ([#116235](https://github.com/kubernetes/kubernetes/pull/116235), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116235", + "pr_number": 116235, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "116255": { + "commit": "ff27ccfabc778b46d42b746466c1004f922ccda4", + "text": "'The `IPv6DualStack` feature gate for external cloud providers was removed.\n(The feature became GA in 1.23 and the gate was removed for all other\ncomponents several releases ago.) If you were still manually\nenabling it you must stop now.'", + "markdown": "'The `IPv6DualStack` feature gate for external cloud providers was removed.\n (The feature became GA in 1.23 and the gate was removed for all other\n components several releases ago.) If you were still manually\n enabling it you must stop now.' ([#116255](https://github.com/kubernetes/kubernetes/pull/116255), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116255", + "pr_number": 116255, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "api-machinery", + "cloud-provider" + ], + "duplicate": true, + "action_required": true + }, + "116261": { + "commit": "5e5b3029f3bbfc93c3569f07ad300a5c6057fc58", + "text": "Added the `MatchConditions` field to `ValidatingWebhookConfiguration` and `MutatingWebhookConfiguration` for the v1beta and v1 apis. \n\nThe `AdmissionWebhookMatchConditions` featuregate is now in Alpha", + "markdown": "Added the `MatchConditions` field to `ValidatingWebhookConfiguration` and `MutatingWebhookConfiguration` for the v1beta and v1 apis. \n \n The `AdmissionWebhookMatchConditions` featuregate is now in Alpha ([#116261](https://github.com/kubernetes/kubernetes/pull/116261), [@ivelichkovich](https://github.com/ivelichkovich)) [SIG API Machinery and Testing]", + "documentation": [ + { + "description": "[\u003clink\u003e](", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3716-admission-webhook-match-conditions)", + "type": "KEP" + } + ], + "author": "ivelichkovich", + "author_url": "https://github.com/ivelichkovich", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116261", + "pr_number": 116261, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116274": { + "commit": "c1431af4f83b2b06a581f23806ee12a0663fed3b", + "text": "Promoted `SelfSubjectReview` to Beta", + "markdown": "Promoted `SelfSubjectReview` to Beta ([#116274](https://github.com/kubernetes/kubernetes/pull/116274), [@nabokihms](https://github.com/nabokihms)) [SIG API Machinery, Auth, CLI and Testing]", + "author": "nabokihms", + "author_url": "https://github.com/nabokihms", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116274", + "pr_number": 116274, + "areas": [ + "test", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116287": { + "commit": "89d1a7971ea55c2f495d78edf106dfe43d8ca144", + "text": "NONE", + "markdown": "NONE ([#116287](https://github.com/kubernetes/kubernetes/pull/116287), [@csDengh](https://github.com/csDengh))", + "author": "csDengh", + "author_url": "https://github.com/csDengh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116287", + "pr_number": 116287, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "116291": { + "commit": "7a4c4eaae7a7295d5969734446bc4077d9fe848f", + "text": "Graduated `matchLabelKeys` in `podTopologySpread` to Beta", + "markdown": "Graduated `matchLabelKeys` in `podTopologySpread` to Beta ([#116291](https://github.com/kubernetes/kubernetes/pull/116291), [@denkensk](https://github.com/denkensk))", + "author": "denkensk", + "author_url": "https://github.com/denkensk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116291", + "pr_number": 116291, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "116293": { + "commit": "a901bb630b5a353898c1b35df582a7faeef160a0", + "text": "Enable external plugins can be used as subcommands for kubectl create command if subcommand does not exist as builtin only when KUBECTL_ENABLE_CMD_SHADOW environment variable is exported.", + "markdown": "Enable external plugins can be used as subcommands for kubectl create command if subcommand does not exist as builtin only when KUBECTL_ENABLE_CMD_SHADOW environment variable is exported. ([#116293](https://github.com/kubernetes/kubernetes/pull/116293), [@ardaguclu](https://github.com/ardaguclu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3638-kubectl-plugin-subcommands", + "type": "KEP" + } + ], + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116293", + "pr_number": 116293, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "116299": { + "commit": "0e06be57a65792ad5744b5ddf6abe95dd20ac773", + "text": "`resource.k8s.io/v1alpha1` was replaced with `resource.k8s.io/v1alpha2`. Before\nupgrading a cluster, all objects in resource.k8s.io/v1alpha1 (ResourceClaim, ResourceClaimTemplate,\nResourceClass, PodScheduling) must be deleted. The changes are internal, so\nYAML files which create pods and resource claims don't need changes except for\nthe newer `apiVersion`.", + "markdown": "`resource.k8s.io/v1alpha1` was replaced with `resource.k8s.io/v1alpha2`. Before\n upgrading a cluster, all objects in resource.k8s.io/v1alpha1 (ResourceClaim, ResourceClaimTemplate,\n ResourceClass, PodScheduling) must be deleted. The changes are internal, so\n YAML files which create pods and resource claims don't need changes except for\n the newer `apiVersion`. ([#116299](https://github.com/kubernetes/kubernetes/pull/116299), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116299", + "pr_number": 116299, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "apps", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "116301": { + "commit": "3106a5c553e0682f33e1d6c1af34e333d157c1d6", + "text": "Removed Azure disk in-tree storage plugin", + "markdown": "Removed Azure disk in-tree storage plugin ([#116301](https://github.com/kubernetes/kubernetes/pull/116301), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116301", + "pr_number": 116301, + "areas": [ + "test", + "kubelet", + "provider/azure", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "api-machinery", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "116305": { + "commit": "a4302915c9d4d70b5e8769a125fa2dee946bbdfb", + "text": "By enabling the alpha `CloudNodeIPs` feature gate in kubelet and the cloud\nprovider, you can now specify a dual-stack `--node-ip` value (when using an\nexternal cloud provider that supports that functionality).", + "markdown": "By enabling the alpha `CloudNodeIPs` feature gate in kubelet and the cloud\n provider, you can now specify a dual-stack `--node-ip` value (when using an\n external cloud provider that supports that functionality). ([#116305](https://github.com/kubernetes/kubernetes/pull/116305), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Cloud Provider, Network and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3705", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116305", + "pr_number": 116305, + "areas": [ + "kubelet", + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "node", + "api-machinery", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "116320": { + "commit": "83334ccaa1aebfd0089968c22fca5d9ee5ffb56e", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\nNone\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n None\n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#116320](https://github.com/kubernetes/kubernetes/pull/116320), [@wangchen615](https://github.com/wangchen615)) [SIG Node, Scheduling and Testing]", + "author": "wangchen615", + "author_url": "https://github.com/wangchen615", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116320", + "pr_number": 116320, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "node", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "116326": { + "commit": "51471fa350b2db25554663324e140f1b49b6aaaa", + "text": "HPA controller exposes the following metrics from the kube-controller-manager.\n- `metric_computation_duration_seconds`: Number of metric computations. \n- `metric_computation_total`: The time(seconds) that the HPA controller takes to calculate one metric.", + "markdown": "HPA controller exposes the following metrics from the kube-controller-manager.\n - `metric_computation_duration_seconds`: Number of metric computations. \n - `metric_computation_total`: The time(seconds) that the HPA controller takes to calculate one metric. ([#116326](https://github.com/kubernetes/kubernetes/pull/116326), [@sanposhiho](https://github.com/sanposhiho)) [SIG Apps, Autoscaling and Instrumentation]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116326", + "pr_number": 116326, + "kinds": [ + "feature" + ], + "sigs": [ + "autoscaling", + "apps", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "116329": { + "commit": "03ff890ef47a7dd0d207f09bda963d5d970a7535", + "text": "Removed AWS kubelet credential provider. Please use the external kubelet credential provider binary named `ecr-credential-provider` instead.", + "markdown": "Removed AWS kubelet credential provider. Please use the external kubelet credential provider binary named `ecr-credential-provider` instead. ([#116329](https://github.com/kubernetes/kubernetes/pull/116329), [@dims](https://github.com/dims)) [SIG Node, Storage and Testing]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116329", + "pr_number": 116329, + "areas": [ + "test", + "kubelet", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "node", + "testing" + ], + "duplicate": true + }, + "116332": { + "commit": "ae36991498282514da3fe771b0dd9de66b991c86", + "text": "Introduced a breaking change to the `resource.k8s.io` API in its `AllocationResult` struct. This change allows a kubelet plugin for the `DynamicResourceAllocation` feature to service allocations from multiple resource driver controllers.", + "markdown": "Introduced a breaking change to the `resource.k8s.io` API in its `AllocationResult` struct. This change allows a kubelet plugin for the `DynamicResourceAllocation` feature to service allocations from multiple resource driver controllers. ([#116332](https://github.com/kubernetes/kubernetes/pull/116332), [@klueska](https://github.com/klueska))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3802", + "type": "KEP" + } + ], + "author": "klueska", + "author_url": "https://github.com/klueska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116332", + "pr_number": 116332, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "apps", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "116342": { + "commit": "8b413d224a9422a1163f3779055a1aad21794813", + "text": "Unlocked the `CSIMigrationvSphere` feature gate.\nThe change allow users to continue using the in-tree vSphere driver,pending a vSphere\nCSI driver release that has with GA support for Windows, XFS, and raw block access.", + "markdown": "Unlocked the `CSIMigrationvSphere` feature gate.\n The change allow users to continue using the in-tree vSphere driver,pending a vSphere\n CSI driver release that has with GA support for Windows, XFS, and raw block access. ([#116342](https://github.com/kubernetes/kubernetes/pull/116342), [@msau42](https://github.com/msau42)) [SIG Storage]", + "author": "msau42", + "author_url": "https://github.com/msau42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116342", + "pr_number": 116342, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true + }, + "116350": { + "commit": "e5fd204c33e90a7e8f5a0ee70242f1296a5ec7af", + "text": "Added matchConditions field to ValidatingAdmissionPolicy and enabled support for CEL based custom match criteria.", + "markdown": "Added matchConditions field to ValidatingAdmissionPolicy and enabled support for CEL based custom match criteria. ([#116350](https://github.com/kubernetes/kubernetes/pull/116350), [@maxsmythe](https://github.com/maxsmythe))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/e80ad39a21e6f1be90e2d514fb33df34fd496814/keps/sig-api-machinery/3488-cel-admission-control#match-conditions", + "type": "KEP" + } + ], + "author": "maxsmythe", + "author_url": "https://github.com/maxsmythe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116350", + "pr_number": 116350, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116351": { + "commit": "2bd69db8d7b71740aee7dd80a173133743b3dd9b", + "text": "NONE", + "markdown": "NONE ([#116351](https://github.com/kubernetes/kubernetes/pull/116351), [@vinaykul](https://github.com/vinaykul))", + "author": "vinaykul", + "author_url": "https://github.com/vinaykul", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116351", + "pr_number": 116351, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "116353": { + "commit": "480a0c2c3601a54be0679f078c819ba6f887553f", + "text": "[alpha: kubectl apply --prune --applyset] Enabled certain custom resources (CRs) to be used as `ApplySet` parent objects. To enable this for a given CR, apply the label `applyset.kubernetes.io/is-parent-type: true` to the CustomResourceDefinition (CRD) that defines it.", + "markdown": "[alpha: kubectl apply --prune --applyset] Enabled certain custom resources (CRs) to be used as `ApplySet` parent objects. To enable this for a given CR, apply the label `applyset.kubernetes.io/is-parent-type: true` to the CustomResourceDefinition (CRD) that defines it. ([#116353](https://github.com/kubernetes/kubernetes/pull/116353), [@KnVerey](https://github.com/KnVerey))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/42a4b1c8a18780cf1d5c2460113d59b246002548/keps/sig-cli/3659-kubectl-apply-prune", + "type": "KEP" + } + ], + "author": "KnVerey", + "author_url": "https://github.com/KnVerey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116353", + "pr_number": 116353, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "116377": { + "commit": "6a111bebe2a609589c560ef1ce5431e3f04ac945", + "text": "By enabling the `UserNamespacesStatelessPodsSupport` feature gate in kubelet, you can now run a stateless pod in a separate user namespace", + "markdown": "By enabling the `UserNamespacesStatelessPodsSupport` feature gate in kubelet, you can now run a stateless pod in a separate user namespace ([#116377](https://github.com/kubernetes/kubernetes/pull/116377), [@giuseppe](https://github.com/giuseppe)) [SIG Apps, Node and Storage]", + "author": "giuseppe", + "author_url": "https://github.com/giuseppe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116377", + "pr_number": 116377, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "apps" + ], + "feature": true, + "duplicate": true + }, + "116390": { + "commit": "900278dd415baf686a4964ce0c9b60782996c95c", + "text": "Switched kubectl explain to use OpenAPIV3 information published by the server. OpenAPIV2 backend can still be used with the `--output plaintext-openapiv2` argument", + "markdown": "Switched kubectl explain to use OpenAPIV3 information published by the server. OpenAPIV2 backend can still be used with the `--output plaintext-openapiv2` argument ([#116390](https://github.com/kubernetes/kubernetes/pull/116390), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery, CLI and Testing]", + "documentation": [ + { + "description": "[KEP] 3515 OpenAPI v3 for kubectl explain", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3515-kubectl-explain-openapiv3", + "type": "KEP" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116390", + "pr_number": 116390, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "116395": { + "commit": "8b3d529523338b82d6ea8972a9b14f7c3d5339ad", + "text": "Fixed data race in `kube-scheduler` when preemption races with a Pod update.", + "markdown": "Fixed data race in `kube-scheduler` when preemption races with a Pod update. ([#116395](https://github.com/kubernetes/kubernetes/pull/116395), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling]", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116395", + "pr_number": 116395, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "116397": { + "commit": "6b3e2b7873f8518b95f5b09fa04f5f316669c7b2", + "text": "Added `messageExpression` to `ValidatingAdmissionPolicy`, to set custom failure message via CEL expression.", + "markdown": "Added `messageExpression` to `ValidatingAdmissionPolicy`, to set custom failure message via CEL expression. ([#116397](https://github.com/kubernetes/kubernetes/pull/116397), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery]", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116397", + "pr_number": 116397, + "areas": [ + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery" + ] + }, + "116404": { + "commit": "f02da82e3664671ee33658a8699c731e51d47168", + "text": "Kubernetes is now built with go 1.20.2", + "markdown": "Kubernetes is now built with go 1.20.2 ([#116404](https://github.com/kubernetes/kubernetes/pull/116404), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116404", + "pr_number": 116404, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "116420": { + "commit": "ee18f602523e11a80823a659bed8f70f98a12914", + "text": "Updated `kube-apiserver` SLO/SLI latency metrics to exclude priority \u0026 fairness queue wait times", + "markdown": "Updated `kube-apiserver` SLO/SLI latency metrics to exclude priority \u0026 fairness queue wait times ([#116420](https://github.com/kubernetes/kubernetes/pull/116420), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116420", + "pr_number": 116420, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "116425": { + "commit": "f7bcff44cd7bd1ac71d5607cdd0ceea061051417", + "text": "`SELinuxMountReadWriteOncePod` graduated to Beta.", + "markdown": "`SELinuxMountReadWriteOncePod` graduated to Beta. ([#116425](https://github.com/kubernetes/kubernetes/pull/116425), [@jsafrane](https://github.com/jsafrane))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling", + "type": "KEP" + } + ], + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116425", + "pr_number": 116425, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116428": { + "commit": "c67953a2d0255c8c4f5e315b93f28ab599c428e5", + "text": "Fixed performance regression in scheduler caused by frequent metric lookup on critical code path.", + "markdown": "Fixed performance regression in scheduler caused by frequent metric lookup on critical code path. ([#116428](https://github.com/kubernetes/kubernetes/pull/116428), [@mborsz](https://github.com/mborsz)) [SIG Scheduling]", + "author": "mborsz", + "author_url": "https://github.com/mborsz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116428", + "pr_number": 116428, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true + }, + "116436": { + "commit": "36b29b38bb3f38db3439bdf568cad1f856998b0a", + "text": "Fixed incorrect watch events when a watch is initialized simultanously with a reinitializing watchcache.", + "markdown": "Fixed incorrect watch events when a watch is initialized simultanously with a reinitializing watchcache. ([#116436](https://github.com/kubernetes/kubernetes/pull/116436), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116436", + "pr_number": 116436, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "116450": { + "commit": "3c6e419cc3e364e0fce874e6c51ca058f1b9daab", + "text": "NONE", + "markdown": "NONE ([#116450](https://github.com/kubernetes/kubernetes/pull/116450), [@vinaykul](https://github.com/vinaykul))", + "author": "vinaykul", + "author_url": "https://github.com/vinaykul", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116450", + "pr_number": 116450, + "areas": [ + "test", + "kubelet", + "release-eng", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "apps", + "testing", + "release" + ], + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "116459": { + "commit": "204a9a1f1716bfc9bbeec9335df9055dad1ea0e4", + "text": "Added basic Denial Of Service prevention for the the node-local kubelet `podresource` API", + "markdown": "Added basic Denial Of Service prevention for the the node-local kubelet `podresource` API ([#116459](https://github.com/kubernetes/kubernetes/pull/116459), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/606-compute-device-assignment/README.md", + "type": "KEP" + } + ], + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116459", + "pr_number": 116459, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "116500": { + "commit": "ead7d66ee12656cfb7c633dd42a87f8d9cfaa469", + "text": "NONE", + "markdown": "NONE ([#116500](https://github.com/kubernetes/kubernetes/pull/116500), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116500", + "pr_number": 116500, + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ], + "do_not_publish": true + }, + "116501": { + "commit": "cd56332d060b8844c8940e2e984e4a82165ae9d2", + "text": "`StatefulSetAutoDeletePVC` feature gate promoted to beta.", + "markdown": "`StatefulSetAutoDeletePVC` feature gate promoted to beta. ([#116501](https://github.com/kubernetes/kubernetes/pull/116501), [@mattcary](https://github.com/mattcary))", + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116501", + "pr_number": 116501, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116509": { + "commit": "f944743953e55073e14eaf1db8f15f57a3e04a4e", + "text": "Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.2`\n- Updated setcap to use released image `registry.k8s.io/build-image/setcap:bullseye-v1.4.2`", + "markdown": "Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.2`\n - Updated setcap to use released image `registry.k8s.io/build-image/setcap:bullseye-v1.4.2` ([#116509](https://github.com/kubernetes/kubernetes/pull/116509), [@cpanato](https://github.com/cpanato)) [SIG Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116509", + "pr_number": 116509, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + }, + "116510": { + "commit": "4a7ba056911dd822917b00ecc4b6fa77e721bbd5", + "text": "Promoted `whoami` kubectl command.", + "markdown": "Promoted `whoami` kubectl command. ([#116510](https://github.com/kubernetes/kubernetes/pull/116510), [@nabokihms](https://github.com/nabokihms))", + "author": "nabokihms", + "author_url": "https://github.com/nabokihms", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116510", + "pr_number": 116510, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "cli" + ], + "feature": true, + "duplicate": true + }, + "116522": { + "commit": "c0ef73222f96b866138ce3c9e8f910a0a4cbfdfe", + "text": "New `service.kubernetes.io/topology-mode` annotation has been introduced as a replacement for the `service.kubernetes.io/topology-aware-hints` annotation.\n- `service.kubernetes.io/topology-aware-hints` annotation has been deprecated.\n- kube-proxy now accepts any value that is not \"disabled\" for these annotations, enabling custom implementation-specific and/or future built-in heuristics to be used.", + "markdown": "New `service.kubernetes.io/topology-mode` annotation has been introduced as a replacement for the `service.kubernetes.io/topology-aware-hints` annotation.\n - `service.kubernetes.io/topology-aware-hints` annotation has been deprecated.\n - kube-proxy now accepts any value that is not \"disabled\" for these annotations, enabling custom implementation-specific and/or future built-in heuristics to be used. ([#116522](https://github.com/kubernetes/kubernetes/pull/116522), [@robscott](https://github.com/robscott)) [SIG Apps, Network and Testing]", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116522", + "pr_number": 116522, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116523": { + "commit": "3b1fc60d8010dd8b53e97ba80e4710dbb430beee", + "text": "storage.k8s.io/v1beta1 API version of CSIStorageCapacity will no longer be served", + "markdown": "Storage.k8s.io/v1beta1 API version of CSIStorageCapacity will no longer be served ([#116523](https://github.com/kubernetes/kubernetes/pull/116523), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116523", + "pr_number": 116523, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "116529": { + "commit": "27e23bad7d595f64519de70f1a82539d14327a28", + "text": "Migrated the main kube-controller-manager binary to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the main kube-controller-manager binary to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116529](https://github.com/kubernetes/kubernetes/pull/116529), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116529", + "pr_number": 116529, + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "apps" + ], + "feature": true, + "duplicate": true + }, + "116533": { + "commit": "ab5100893a78c154ac4f9c22255507cf523debb0", + "text": "NONE", + "markdown": "NONE ([#116533](https://github.com/kubernetes/kubernetes/pull/116533), [@ameukam](https://github.com/ameukam))", + "author": "ameukam", + "author_url": "https://github.com/ameukam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116533", + "pr_number": 116533, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "k8s-infra" + ], + "duplicate": true, + "do_not_publish": true + }, + "116535": { + "commit": "f2e1a67c05b25c1031fd26eee479001a13bde2c9", + "text": "forbid to set matchLabelKeys when labelSelector is not set in topologySpreadConstraints", + "markdown": "Forbid to set matchLabelKeys when labelSelector is not set in topologySpreadConstraints ([#116535](https://github.com/kubernetes/kubernetes/pull/116535), [@denkensk](https://github.com/denkensk))", + "author": "denkensk", + "author_url": "https://github.com/denkensk", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116535", + "pr_number": 116535, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "scheduling", + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "116546": { + "commit": "34acfb877ad151918db586245f21e832121675e2", + "text": "Potentially breaking change - Updating the polling interval for Windows stats collection from 1 second to 10 seconds", + "markdown": "Potentially breaking change - Updating the polling interval for Windows stats collection from 1 second to 10 seconds ([#116546](https://github.com/kubernetes/kubernetes/pull/116546), [@marosset](https://github.com/marosset)) [SIG Node and Windows]", + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116546", + "pr_number": 116546, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true + }, + "116550": { + "commit": "15894cfc85cab64df081bb753b8ccf32a243da68", + "text": "Fixed a regression in the pod binding subresource to honor the `metadata.uid` precondition.\nThis allows kube-scheduler to ensure it is assigns node names to the same instances of pods it made scheduling decisions for.", + "markdown": "Fixed a regression in the pod binding subresource to honor the `metadata.uid` precondition.\n This allows kube-scheduler to ensure it is assigns node names to the same instances of pods it made scheduling decisions for. ([#116550](https://github.com/kubernetes/kubernetes/pull/116550), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116550", + "pr_number": 116550, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "116551": { + "commit": "fa5253976c4c03dee6eab03b93cfc3fa2c841e59", + "text": "make test-e2e-node PARALLELISM=1 FOCUS=\"StandaloneMode\" \\\nTEST_ARGS='\\\n --kubelet-flags=\"--fail-swap-on=false\" \\\n --standalone-mode=true \\\n'", + "markdown": "Make test-e2e-node PARALLELISM=1 FOCUS=\"StandaloneMode\" \\\n TEST_ARGS='\\\n --kubelet-flags=\"--fail-swap-on=false\" \\\n --standalone-mode=true \\\n ' ([#116551](https://github.com/kubernetes/kubernetes/pull/116551), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node and Testing]", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116551", + "pr_number": 116551, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "do_not_publish": true + }, + "116554": { + "commit": "fe91bc257b505eb6057eb50b9c550a7c63e9fb91", + "text": "Fixed two regressions introduced by the `PodDisruptionConditions` feature (on by default in 1.26):\n- pod eviction API calls returned spurious precondition errors and required a second evict API call to succeed\n- dry-run eviction API calls persisted a DisruptionTarget condition into the pod being evicted", + "markdown": "Fixed two regressions introduced by the `PodDisruptionConditions` feature (on by default in 1.26):\n - pod eviction API calls returned spurious precondition errors and required a second evict API call to succeed\n - dry-run eviction API calls persisted a DisruptionTarget condition into the pod being evicted ([#116554](https://github.com/kubernetes/kubernetes/pull/116554), [@atiratree](https://github.com/atiratree))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/issues/3329", + "type": "KEP" + } + ], + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116554", + "pr_number": 116554, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "116556": { + "commit": "fbfc887a097b2f7cddd065deacbff03abf0bfef6", + "text": "API: resource.k8s.io/v1alpha1.PodScheduling was renamed to resource.k8s.io/v1alpha2.PodSchedulingContext.", + "markdown": "API: resource.k8s.io/v1alpha1.PodScheduling was renamed to resource.k8s.io/v1alpha2.PodSchedulingContext. ([#116556](https://github.com/kubernetes/kubernetes/pull/116556), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116556", + "pr_number": 116556, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "auth", + "apps", + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "116558": { + "commit": "815b1bf0d8f9775ff9b180a2faab928814c4ff81", + "text": "Removed support for the `v1alpha1` kubeletplugin API of `DynamicResourceManagement`. All plugins must be updated to `v1alpha2` in order to function properly.", + "markdown": "Removed support for the `v1alpha1` kubeletplugin API of `DynamicResourceManagement`. All plugins must be updated to `v1alpha2` in order to function properly. ([#116558](https://github.com/kubernetes/kubernetes/pull/116558), [@klueska](https://github.com/klueska))", + "author": "klueska", + "author_url": "https://github.com/klueska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116558", + "pr_number": 116558, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "apps", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "116571": { + "commit": "e660a1702b4955402d629ce518d66b9de1fb1b09", + "text": "Migrated the defaultbinder scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the defaultbinder scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116571](https://github.com/kubernetes/kubernetes/pull/116571), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116571", + "pr_number": 116571, + "areas": [ + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "116576": { + "commit": "f315a4669a5b7a29328e2e98401ebd559d620b60", + "text": "api: validation of a `PodSpec` now rejects invalid `ResourceClaim` and `ResourceClaimTemplate` names. For a pod, the name generated for the `ResourceClaim` when using a template also must be valid.", + "markdown": "Api: validation of a `PodSpec` now rejects invalid `ResourceClaim` and `ResourceClaimTemplate` names. For a pod, the name generated for the `ResourceClaim` when using a template also must be valid. ([#116576](https://github.com/kubernetes/kubernetes/pull/116576), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116576", + "pr_number": 116576, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "116590": { + "commit": "abb632866172ef68baa983afe678f0a4888d8077", + "text": "Added e2e tests for kubectl `--subresource` for beta graduation", + "markdown": "Added e2e tests for kubectl `--subresource` for beta graduation ([#116590](https://github.com/kubernetes/kubernetes/pull/116590), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/2590-kubectl-subresource", + "type": "KEP" + } + ], + "author": "MadhavJivrajani", + "author_url": "https://github.com/MadhavJivrajani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116590", + "pr_number": 116590, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "116595": { + "commit": "9c2d28f7d55a5210d02b9a3c7dc6449b9e125340", + "text": "Changed kubectl `--subresource` flag to beta", + "markdown": "Changed kubectl `--subresource` flag to beta ([#116595](https://github.com/kubernetes/kubernetes/pull/116595), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/2590-kubectl-subresource", + "type": "KEP" + } + ], + "author": "MadhavJivrajani", + "author_url": "https://github.com/MadhavJivrajani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116595", + "pr_number": 116595, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "116598": { + "commit": "6df64241d03cdf0c26137fceda3c39cb9775178c", + "text": "Upgrades functionality of `kubectl kustomize` as described at\nhttps://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.0 and https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.1. \n\nThis is a new major release of kustomize, so there are a few backwards-incompatible changes, most of which are rare use cases, bug fixes with side effects, or things that have been deprecated for multiple releases already:\n\n- https://github.com/kubernetes-sigs/kustomize/pull/4911: Drop support for a very old, legacy style of patches. patches used to be allowed to be used as an alias for patchesStrategicMerge in kustomize v3. You now have to use patchesStrategicMerge explicitly, or update to the new syntax supported by patches. See examples in the PR description of https://github.com/kubernetes-sigs/kustomize/pull/4911.\n- https://github.com/kubernetes-sigs/kustomize/issues/4731: Remove a potential build-time side-effect in ConfigMapGenerator and SecretGenerator, which loaded values from the local environment under some circumstances, breaking kustomize build's side-effect-free promise. While this behavior was never intended, we deprecated it and are announcing it as a breaking change since it existed for a long time. See also the Eschewed Features documentation.\n- https://github.com/kubernetes-sigs/kustomize/pull/4985: If you previously included .git in an AWS or Azure URL, we will no longer automatically remove that suffix. You may need to add an extra / to replace the .git for the URL to properly resolve.\n- https://github.com/kubernetes-sigs/kustomize/pull/4954: Drop support for using gh: as a host (e.g. gh:kubernetes-sigs/kustomize). We were unable to find any usage of or basis for this and believe it may have been targeting a custom gitconfig shorthand syntax.", + "markdown": "Upgrades functionality of `kubectl kustomize` as described at\n https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.0 and https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.1. \n \n This is a new major release of kustomize, so there are a few backwards-incompatible changes, most of which are rare use cases, bug fixes with side effects, or things that have been deprecated for multiple releases already:\n \n - https://github.com/kubernetes-sigs/kustomize/pull/4911: Drop support for a very old, legacy style of patches. patches used to be allowed to be used as an alias for patchesStrategicMerge in kustomize v3. You now have to use patchesStrategicMerge explicitly, or update to the new syntax supported by patches. See examples in the PR description of https://github.com/kubernetes-sigs/kustomize/pull/4911.\n - https://github.com/kubernetes-sigs/kustomize/issues/4731: Remove a potential build-time side-effect in ConfigMapGenerator and SecretGenerator, which loaded values from the local environment under some circumstances, breaking kustomize build's side-effect-free promise. While this behavior was never intended, we deprecated it and are announcing it as a breaking change since it existed for a long time. See also the Eschewed Features documentation.\n - https://github.com/kubernetes-sigs/kustomize/pull/4985: If you previously included .git in an AWS or Azure URL, we will no longer automatically remove that suffix. You may need to add an extra / to replace the .git for the URL to properly resolve.\n - https://github.com/kubernetes-sigs/kustomize/pull/4954: Drop support for using gh: as a host (e.g. gh:kubernetes-sigs/kustomize). We were unable to find any usage of or basis for this and believe it may have been targeting a custom gitconfig shorthand syntax. ([#116598](https://github.com/kubernetes/kubernetes/pull/116598), [@natasha41575](https://github.com/natasha41575)) [SIG CLI]", + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116598", + "pr_number": 116598, + "areas": [ + "kubectl", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "116607": { + "commit": "0e8eae6e35a15c89da85c814b31c7118a49941a4", + "text": "`kube-scheduler`: Optimized implementation of null `labelSelector` in topology spreading.", + "markdown": "`kube-scheduler`: Optimized implementation of null `labelSelector` in topology spreading. ([#116607](https://github.com/kubernetes/kubernetes/pull/116607), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116607", + "pr_number": 116607, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "116610": { + "commit": "e8acfc45ba0d4fcea4615c6af86155092224dac3", + "text": "Locked `CSIMigrationvSphere` feature gate.", + "markdown": "Locked `CSIMigrationvSphere` feature gate. ([#116610](https://github.com/kubernetes/kubernetes/pull/116610), [@xing-yang](https://github.com/xing-yang))", + "author": "xing-yang", + "author_url": "https://github.com/xing-yang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116610", + "pr_number": 116610, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true + }, + "116612": { + "commit": "39c01ded6a4147998c25e141be802db5cc6ca119", + "text": "Added validation to ensure that if `service.kubernetes.io/topology-aware-hints` and `service.kubernetes.io/topology-mode` annotations are both set, they are set to the same value.Also Added deprecation warning if `service.kubernetes.io/topology-aware-hints` annotation is used.", + "markdown": "Added validation to ensure that if `service.kubernetes.io/topology-aware-hints` and `service.kubernetes.io/topology-mode` annotations are both set, they are set to the same value.Also Added deprecation warning if `service.kubernetes.io/topology-aware-hints` annotation is used. ([#116612](https://github.com/kubernetes/kubernetes/pull/116612), [@robscott](https://github.com/robscott))", + "author": "robscott", + "author_url": "https://github.com/robscott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116612", + "pr_number": 116612, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116621": { + "commit": "74123a734123d7197ce55d061e9422a4f87f7b20", + "text": "NONE", + "markdown": "NONE ([#116621](https://github.com/kubernetes/kubernetes/pull/116621), [@moshe010](https://github.com/moshe010))", + "author": "moshe010", + "author_url": "https://github.com/moshe010", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116621", + "pr_number": 116621, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "116631": { + "commit": "742316ee2136b24b9edb0bb0d5bf69a6bad6f364", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#116631](https://github.com/kubernetes/kubernetes/pull/116631), [@bobbypage](https://github.com/bobbypage)) [SIG Node and Testing]", + "author": "bobbypage", + "author_url": "https://github.com/bobbypage", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116631", + "pr_number": 116631, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "do_not_publish": true + }, + "116684": { + "commit": "c14e0983fbdfa51ef61bbadf4c364f3a63aa8b75", + "text": "NONE", + "markdown": "NONE ([#116684](https://github.com/kubernetes/kubernetes/pull/116684), [@vinaykul](https://github.com/vinaykul))", + "author": "vinaykul", + "author_url": "https://github.com/vinaykul", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116684", + "pr_number": 116684, + "areas": [ + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "apps", + "release" + ], + "duplicate": true, + "do_not_publish": true + }, + "116702": { + "commit": "c7cc7886e2f60a0710487bd2300c3b7399f19769", + "text": "NONE", + "markdown": "NONE ([#116702](https://github.com/kubernetes/kubernetes/pull/116702), [@vinaykul](https://github.com/vinaykul))", + "author": "vinaykul", + "author_url": "https://github.com/vinaykul", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116702", + "pr_number": 116702, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "116770": { + "commit": "8dd3807f4df05abae4a440e0b21750e30bcdd1d3", + "text": "Fixed bug in beta aggregated discovery endpoint which caused CRD discovery information to be temporarily missing when an Aggregated APIService with the same GroupVersion is deleted (and vice versa).", + "markdown": "Fixed bug in beta aggregated discovery endpoint which caused CRD discovery information to be temporarily missing when an Aggregated APIService with the same GroupVersion is deleted (and vice versa). ([#116770](https://github.com/kubernetes/kubernetes/pull/116770), [@alexzielenski](https://github.com/alexzielenski))", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116770", + "pr_number": 116770, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "116866": { + "commit": "d73b3a696a4357a126f04eacedf51ea76ac22290", + "text": "remove `kubernetes.io/grpc` standard appProtocol", + "markdown": "Remove `kubernetes.io/grpc` standard appProtocol ([#116866](https://github.com/kubernetes/kubernetes/pull/116866), [@LiorLieberman](https://github.com/LiorLieberman)) [SIG API Machinery and Apps]", + "author": "LiorLieberman", + "author_url": "https://github.com/LiorLieberman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116866", + "pr_number": 116866, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "96120": { + "commit": "89a9c0c8bbe2715e597e044cd92f52978d51491b", + "text": "Adds feature gate `NodeLogQuery` which provides cluster administrators with a streaming view of logs using kubectl without them having to implement a client side reader or logging into the node.", + "markdown": "Adds feature gate `NodeLogQuery` which provides cluster administrators with a streaming view of logs using kubectl without them having to implement a client side reader or logging into the node. ([#96120](https://github.com/kubernetes/kubernetes/pull/96120), [@LorbusChris](https://github.com/LorbusChris))", + "author": "LorbusChris", + "author_url": "https://github.com/LorbusChris", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/96120", + "pr_number": 96120, + "areas": [ + "test", + "kubelet", + "kubectl", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "apps", + "windows", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116877": { + "commit": "f393e7da7fd201d96f8471a1769594bef47fba90", + "text": "The encryption response from KMS v2 plugins is now validated earlier at DEK generation time instead of waiting until an encryption is performed.", + "markdown": "The encryption response from KMS v2 plugins is now validated earlier at DEK generation time instead of waiting until an encryption is performed. ([#116877](https://github.com/kubernetes/kubernetes/pull/116877), [@enj](https://github.com/enj)) [SIG API Machinery and Auth]", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116877", + "pr_number": 116877, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true + }, + "117073": { + "commit": "e7e7532a054d2795c51a87543ed4e02691b10985", + "text": "Recreate DaemonSet pods completed with Succeeded phase", + "markdown": "Recreate DaemonSet pods completed with Succeeded phase ([#117073](https://github.com/kubernetes/kubernetes/pull/117073), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117073", + "pr_number": 117073, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "117125": { + "commit": "20fc8a939c3394bd31edd06a893b75d1c312e27c", + "text": "Kubernetes is now built with Go 1.20.3", + "markdown": "Kubernetes is now built with Go 1.20.3 ([#117125](https://github.com/kubernetes/kubernetes/pull/117125), [@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/117125", + "pr_number": 117125, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "117126": { + "commit": "b19c362bf52b0121f75e113485d119412ba6715c", + "text": "Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.3`", + "markdown": "Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.3` ([#117126](https://github.com/kubernetes/kubernetes/pull/117126), [@xmudrii](https://github.com/xmudrii)) [SIG Testing]", + "author": "xmudrii", + "author_url": "https://github.com/xmudrii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117126", + "pr_number": 117126, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + } } \ No newline at end of file diff --git a/releases/release-1.27/release-notes/release-notes-draft.md b/releases/release-1.27/release-notes/release-notes-draft.md index 752b168be68..2273fbbfee6 100644 --- a/releases/release-1.27/release-notes/release-notes-draft.md +++ b/releases/release-1.27/release-notes/release-notes-draft.md @@ -1,482 +1,482 @@ -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- 'The `IPv6DualStack` feature gate for external cloud providers was removed. - (The feature became GA in 1.23 and the gate was removed for all other - components several releases ago.) If you were still manually - enabling it you must stop now.' ([#116255](https://github.com/kubernetes/kubernetes/pull/116255), [@danwinship](https://github.com/danwinship)) - - Give terminal phase correctly to all pods that will not be restarted. - - In particular, assign Failed phase to pods which are deleted while pending. Also, assign a terminal - phase (Succeeded or Failed, depending on the exit statuses of the pod containers) to pods which - are deleted while running. - - This fixes the issue for jobs using pod failure policy (with JobPodFailurePolicy and PodDisruptionConditions - feature gates enabled) that their pods could get stuck in the pending phase when deleted. - - Users who maintain controllers which relied on the fact that pods with RestartPolicy=Always - never enter the Succeeded phase may need to adapt their controllers. This is because as a consequence of - the change pods which use RestartPolicy=Always may end up in the Succeeded phase in two scenarios: pod - deletion and graceful node shutdown. ([#115331](https://github.com/kubernetes/kubernetes/pull/115331), [@mimowo](https://github.com/mimowo)) [SIG Cloud Provider, Node and Testing] - -## Changes by Kind - -### Deprecation - -- Added a [warning](https://k8s.io/blog/2020/09/03/warnings/) response when handling requests that set the deprecated `spec.externalID` field for a Node. ([#115944](https://github.com/kubernetes/kubernetes/pull/115944), [@SataQiu](https://github.com/SataQiu)) [SIG Node] -- Added warnings to the Services API. Kubernetes now warns for Services in the case of: - - IPv4 addresses with leading zeros - - IPv6 address in non-canonical format (RFC 5952) ([#114505](https://github.com/kubernetes/kubernetes/pull/114505), [@aojea](https://github.com/aojea)) -- Support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io` were deprecated since v1.19, now have been completely removed. The seccomp fields are no longer auto-populated when pods with seccomp annotations are created. Pods should use the corresponding pod or container `securityContext.seccompProfile` field instead. ([#114947](https://github.com/kubernetes/kubernetes/pull/114947), [@saschagrunert](https://github.com/saschagrunert)) -- The `SecurityContextDeny` admission plugin is going deprecated and will be removed in future versions. ([#115879](https://github.com/kubernetes/kubernetes/pull/115879), [@mtardy](https://github.com/mtardy)) - -### API Change - -- A fix in the `resource.k8s.io/v1alpha1/ResourceClaim` API avoids harmless (?) ".status.reservedFor: element 0: associative list without keys has an element that's a map type" errors in the apiserver. Validation now rejects the incorrect reuse of the same UID in different entries. ([#115354](https://github.com/kubernetes/kubernetes/pull/115354), [@pohly](https://github.com/pohly)) -- A terminating pod on a node that is not caused by preemption no longer prevents `kube-scheduler` from preempting pods on that node - - Rename `PreemptionByKubeScheduler` to `PreemptionByScheduler` ([#114623](https://github.com/kubernetes/kubernetes/pull/114623), [@Huang-Wei](https://github.com/Huang-Wei)) -- API: resource.k8s.io/v1alpha1.PodScheduling was renamed to resource.k8s.io/v1alpha2.PodSchedulingContext. ([#116556](https://github.com/kubernetes/kubernetes/pull/116556), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Node, Scheduling and Testing] -- Added CEL runtime cost calculation into ValidatingAdmissionPolicy, matching the evaluation cost - restrictions that already apply to CustomResourceDefinition. - If rule evaluation uses more compute than the limit, the API server aborts the evaluation and the - admission check that was being performed is aborted; the `failurePolicy` for the ValidatingAdmissionPolicy - determines the outcome. ([#115747](https://github.com/kubernetes/kubernetes/pull/115747), [@cici37](https://github.com/cici37)) -- Added `auditAnnotations` to `ValidatingAdmissionPolicy`, enabling CEL to be used to add audit annotations to request audit events. - Added `validationActions` to `ValidatingAdmissionPolicyBinding`, enabling validation failures to be handled by any combination of the warn, audit and deny enforcement actions. ([#115973](https://github.com/kubernetes/kubernetes/pull/115973), [@jpbetz](https://github.com/jpbetz)) -- Added `messageExpression` field to `ValidationRule`. ([#115969](https://github.com/kubernetes/kubernetes/pull/115969), [@DangerOnTheRanger](https://github.com/DangerOnTheRanger)) -- Added `messageExpression` to `ValidatingAdmissionPolicy`, to set custom failure message via CEL expression. ([#116397](https://github.com/kubernetes/kubernetes/pull/116397), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery] -- Added a new IPAddress object kind - - Added a new ClusterIP allocator. The new allocator removes previous Service CIDR block size limitations for IPv4, and limits IPv6 size to a /64 ([#115075](https://github.com/kubernetes/kubernetes/pull/115075), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Auth, CLI, Cluster Lifecycle, Network and Testing] -- Added a new alpha API: ClusterTrustBundle (`certificates.k8s.io/v1alpha1`). - A ClusterTrustBundle may be used to distribute [X.509](https://www.itu.int/rec/T-REC-X.509) trust anchors to workloads within the cluster. ([#113218](https://github.com/kubernetes/kubernetes/pull/113218), [@ahmedtd](https://github.com/ahmedtd)) [SIG API Machinery, Auth and Testing] -- Added authorization check support to the CEL expressions of ValidatingAdmissionPolicy via a `authorizer` - variable with expressions. The new variable provides a builder that allows expressions such `authorizer.group('').resource('pods').check('create').allowed()`. ([#116054](https://github.com/kubernetes/kubernetes/pull/116054), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing] -- Added matchConditions field to ValidatingAdmissionPolicy and enabled support for CEL based custom match criteria. ([#116350](https://github.com/kubernetes/kubernetes/pull/116350), [@maxsmythe](https://github.com/maxsmythe)) -- Added new option to the `InterPodAffinity` scheduler plugin to ignore existing - pods` preferred inter-pod affinities if the incoming pod has no preferred inter-pod - affinities. This option can be used as an optimization for higher scheduling throughput - (at the cost of an occasional pod being scheduled non-optimally/violating existing - pods preferred inter-pod affinities). To enable this scheduler option, set the - `InterPodAffinity` scheduler plugin arg `ignorePreferredTermsOfExistingPods: true` ([#114393](https://github.com/kubernetes/kubernetes/pull/114393), [@danielvegamyhre](https://github.com/danielvegamyhre)) -- Added the `MatchConditions` field to `ValidatingWebhookConfiguration` and `MutatingWebhookConfiguration` for the v1beta and v1 apis. - - The `AdmissionWebhookMatchConditions` featuregate is now in Alpha ([#116261](https://github.com/kubernetes/kubernetes/pull/116261), [@ivelichkovich](https://github.com/ivelichkovich)) [SIG API Machinery and Testing] -- Added validation to ensure that if `service.kubernetes.io/topology-aware-hints` and `service.kubernetes.io/topology-mode` annotations are both set, they are set to the same value.Also Added deprecation warning if `service.kubernetes.io/topology-aware-hints` annotation is used. ([#116612](https://github.com/kubernetes/kubernetes/pull/116612), [@robscott](https://github.com/robscott)) -- Added warnings about workload resources (Pods, ReplicaSets, Deployments, Jobs, CronJobs, or ReplicationControllers) whose names are not valid DNS labels. ([#114412](https://github.com/kubernetes/kubernetes/pull/114412), [@thockin](https://github.com/thockin)) -- Adds feature gate `NodeLogQuery` which provides cluster administrators with a streaming view of logs using kubectl without them having to implement a client side reader or logging into the node. ([#96120](https://github.com/kubernetes/kubernetes/pull/96120), [@LorbusChris](https://github.com/LorbusChris)) -- Api: validation of a `PodSpec` now rejects invalid `ResourceClaim` and `ResourceClaimTemplate` names. For a pod, the name generated for the `ResourceClaim` when using a template also must be valid. ([#116576](https://github.com/kubernetes/kubernetes/pull/116576), [@pohly](https://github.com/pohly)) -- Bump default API QPS limits for Kubelet. ([#116121](https://github.com/kubernetes/kubernetes/pull/116121), [@wojtek-t](https://github.com/wojtek-t)) -- Enabled the `StatefulSetStartOrdinal` feature gate in beta ([#115260](https://github.com/kubernetes/kubernetes/pull/115260), [@pwschuurman](https://github.com/pwschuurman)) -- Enabled usage of `kube-proxy`, `kube-scheduler` and `kubelet` HTTP APIs for changing the logging - verbosity at runtime for JSON output. ([#114609](https://github.com/kubernetes/kubernetes/pull/114609), [@pohly](https://github.com/pohly)) -- Encryption of API Server at rest configuration now allows the use of wildcards in the list of resources. For example, *.* can be used to encrypt all resources, including all current and future custom resources. ([#115149](https://github.com/kubernetes/kubernetes/pull/115149), [@nilekhc](https://github.com/nilekhc)) -- Extended the kubelet's PodResources API to include resources allocated in `ResourceClaims` via `DynamicResourceAllocation`. Additionally, added a new `Get()` method to query a specific pod for its resources. ([#115847](https://github.com/kubernetes/kubernetes/pull/115847), [@moshe010](https://github.com/moshe010)) [SIG Node] -- Forbid to set matchLabelKeys when labelSelector is not set in topologySpreadConstraints ([#116535](https://github.com/kubernetes/kubernetes/pull/116535), [@denkensk](https://github.com/denkensk)) -- GCE does not support LoadBalancer Services with ports with different protocols (TCP and UDP) ([#115966](https://github.com/kubernetes/kubernetes/pull/115966), [@aojea](https://github.com/aojea)) [SIG Apps and Cloud Provider] -- GRPC probes are now a GA feature. `GRPCContainerProbe` feature gate was locked to default value and will be removed in v1.29. If you were setting this feature gate explicitly, please remove it now. ([#116233](https://github.com/kubernetes/kubernetes/pull/116233), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) -- Graduated `Kubelet Topology Manager` to GA. ([#116093](https://github.com/kubernetes/kubernetes/pull/116093), [@swatisehgal](https://github.com/swatisehgal)) -- Graduated `KubeletTracing` to beta, which means that the feature gate is now enabled by default. ([#115750](https://github.com/kubernetes/kubernetes/pull/115750), [@saschagrunert](https://github.com/saschagrunert)) -- Graduated seccomp profile defaulting to GA. - - Set the kubelet `--seccomp-default` flag or `seccompDefault` kubelet configuration field to `true` to make pods on that node default to using the `RuntimeDefault` seccomp profile. - - Enabling seccomp for your workload can have a negative performance impact depending on the kernel and container runtime version in use. - - Guidance for identifying and mitigating those issues is outlined in the Kubernetes [seccomp tutorial](https://k8s.io/docs/tutorials/security/seccomp). ([#115719](https://github.com/kubernetes/kubernetes/pull/115719), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Node, Storage and Testing] -- Graduated the container resource metrics feature on `HPA` to beta. ([#116046](https://github.com/kubernetes/kubernetes/pull/116046), [@sanposhiho](https://github.com/sanposhiho)) -- Implemented API streaming for the `watch-cache` - - When `sendInitialEvents` `ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic "Bookmark" after which the server continues streaming events. ([#110960](https://github.com/kubernetes/kubernetes/pull/110960), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Introduced API for streaming. - - Added `SendInitialEvents` field to the `ListOptions`. When the new option is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic "Bookmark" after which the server continues streaming events. ([#115402](https://github.com/kubernetes/kubernetes/pull/115402), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Introduced a breaking change to the `resource.k8s.io` API in its `AllocationResult` struct. This change allows a kubelet plugin for the `DynamicResourceAllocation` feature to service allocations from multiple resource driver controllers. ([#116332](https://github.com/kubernetes/kubernetes/pull/116332), [@klueska](https://github.com/klueska)) -- Introduces new alpha functionality to the reflector, allowing user to enable API streaming. - - To activate this feature, users can set the `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environmental variable. - It is important to note that the server must support streaming for this feature to function properly. - If streaming is not supported by the server, the reflector will revert to the previous method - of obtaining data through LIST/WATCH semantics. ([#110772](https://github.com/kubernetes/kubernetes/pull/110772), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] -- K8s.io/client-go/tools/record.EventBroadcaster: after Shutdown() is called, the broadcaster now gives up immediately after a failure to write an event to a sink. Previously it tried multiple times for 12 seconds in a goroutine. ([#115514](https://github.com/kubernetes/kubernetes/pull/115514), [@pohly](https://github.com/pohly)) [SIG API Machinery] -- K8s.io/component-base/logs: usage of the pflag values in a normal Go flag set led to panics when printing the help message ([#114680](https://github.com/kubernetes/kubernetes/pull/114680), [@pohly](https://github.com/pohly)) [SIG Instrumentation] -- Kubeadm: explicitly set `priority` for static pods with `priorityClassName: system-node-critical` ([#114338](https://github.com/kubernetes/kubernetes/pull/114338), [@champtar](https://github.com/champtar)) [SIG Cluster Lifecycle] -- Kubelet: a "maxParallelImagePulls" field can now be specified in the kubelet configuration file to control how many image pulls the kubelet can perform in parallel. ([#115220](https://github.com/kubernetes/kubernetes/pull/115220), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) [SIG API Machinery, Node and Scalability] -- Kubelet: changed `MemoryThrottlingFactor` default value to `0.9` and formulas to calculate `memory.high` ([#115371](https://github.com/kubernetes/kubernetes/pull/115371), [@pacoxu](https://github.com/pacoxu)) -- Kubernetes components that perform leader election now only support using `Leases` for this. ([#114055](https://github.com/kubernetes/kubernetes/pull/114055), [@aimuz](https://github.com/aimuz)) -- Migrated the `DaemonSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) ([#113622](https://github.com/kubernetes/kubernetes/pull/113622), [@249043822](https://github.com/249043822)) -- New `service.kubernetes.io/topology-mode` annotation has been introduced as a replacement for the `service.kubernetes.io/topology-aware-hints` annotation. - - `service.kubernetes.io/topology-aware-hints` annotation has been deprecated. - - kube-proxy now accepts any value that is not "disabled" for these annotations, enabling custom implementation-specific and/or future built-in heuristics to be used. ([#116522](https://github.com/kubernetes/kubernetes/pull/116522), [@robscott](https://github.com/robscott)) [SIG Apps, Network and Testing] -- Pods owned by a Job now uses the labels `batch.kubernetes.io/job-name` and `batch.kubernetes.io/controller-uid`. - The legacy labels `job-name` and `controller-uid` are still added for compatibility. ([#114930](https://github.com/kubernetes/kubernetes/pull/114930), [@kannon92](https://github.com/kannon92)) -- Promoted `CronJobTimeZone` feature to GA ([#115904](https://github.com/kubernetes/kubernetes/pull/115904), [@soltysh](https://github.com/soltysh)) -- Promoted `SelfSubjectReview` to Beta ([#116274](https://github.com/kubernetes/kubernetes/pull/116274), [@nabokihms](https://github.com/nabokihms)) [SIG API Machinery, Auth, CLI and Testing] -- Relaxed API validation to allow pod node selector to be mutable for gated pods (additions only, no deletions or mutations). ([#116161](https://github.com/kubernetes/kubernetes/pull/116161), [@danielvegamyhre](https://github.com/danielvegamyhre)) -- Remove `kubernetes.io/grpc` standard appProtocol ([#116866](https://github.com/kubernetes/kubernetes/pull/116866), [@LiorLieberman](https://github.com/LiorLieberman)) [SIG API Machinery and Apps] -- Remove deprecated `--enable-taint-manager` and `--pod-eviction-timeout` CLI ([#115840](https://github.com/kubernetes/kubernetes/pull/115840), [@atosatto](https://github.com/atosatto)) -- Removed support for the `v1alpha1` kubeletplugin API of `DynamicResourceManagement`. All plugins must be updated to `v1alpha2` in order to function properly. ([#116558](https://github.com/kubernetes/kubernetes/pull/116558), [@klueska](https://github.com/klueska)) -- The API server now re-uses data encryption keys while the kms v2 plugin key ID is stable. Data encryption keys are still randomly generated on server start but an atomic counter is used to prevent nonce collisions. ([#116155](https://github.com/kubernetes/kubernetes/pull/116155), [@enj](https://github.com/enj)) -- The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to beta and is enabled by default. On servers with the feature enabled, this field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted. ([#115363](https://github.com/kubernetes/kubernetes/pull/115363), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Apps, Auth and Node] -- The `DownwardAPIHugePages` kubelet feature graduated to stable / GA. ([#115721](https://github.com/kubernetes/kubernetes/pull/115721), [@saschagrunert](https://github.com/saschagrunert)) [SIG Apps and Node] -- The following feature gates for volume expansion GA features have now been removed and must no longer be referenced in `--feature-gates` flags: `ExpandCSIVolumes`, `ExpandInUsePersistentVolumes`, `ExpandPersistentVolumes` ([#113942](https://github.com/kubernetes/kubernetes/pull/113942), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- The list-type of the alpha `resourceClaims` field introduced to `Pods` in `1.26.0` was modified from `set` to `map`, resolving an incompatibility with use of this schema in `CustomResourceDefinitions` and with server-side apply. ([#114585](https://github.com/kubernetes/kubernetes/pull/114585), [@JoelSpeed](https://github.com/JoelSpeed)) -- Updated API reference for Requests, specifying they must not exceed limits ([#115434](https://github.com/kubernetes/kubernetes/pull/115434), [@ehashman](https://github.com/ehashman)) -- Updated `KMSv2` to beta ([#115123](https://github.com/kubernetes/kubernetes/pull/115123), [@aramase](https://github.com/aramase)) -- Updated: Redefine AppProtocol field description and add new standard values ([#115433](https://github.com/kubernetes/kubernetes/pull/115433), [@LiorLieberman](https://github.com/LiorLieberman)) [SIG API Machinery, Apps and Network] -- `/metrics/slis` is now available for control plane components allowing you to scrape health check metrics. ([#114997](https://github.com/kubernetes/kubernetes/pull/114997), [@Richabanker](https://github.com/Richabanker)) -- `APIServerTracing` feature gate is now enabled by default. Tracing in the API - Server is still disabled by default, and requires a config file to enable. ([#116144](https://github.com/kubernetes/kubernetes/pull/116144), [@dashpole](https://github.com/dashpole)) -- `NodeResourceFit` and `NodeResourcesBalancedAllocation` implement the `PreScore` - extension point for a more performant calculation. ([#115655](https://github.com/kubernetes/kubernetes/pull/115655), [@tangwz](https://github.com/tangwz)) -- `PodSchedulingReadiness` is graduated to beta. ([#115815](https://github.com/kubernetes/kubernetes/pull/115815), [@Huang-Wei](https://github.com/Huang-Wei)) -- `PodSpec.Container.Resources` became mutable for CPU and memory resource types. - - `PodSpec.Container.ResizePolicy` (new object) gives users control over how their containers are resized. - - `PodStatus.Resize` status describes the state of a requested Pod resize. - - `PodStatus.ResourcesAllocated` describes node resources allocated to Pod. - - `PodStatus.Resources` describes node resources applied to running containers by CRI. - - `UpdateContainerResources` CRI API now supports both Linux and Windows. ([#102884](https://github.com/kubernetes/kubernetes/pull/102884), [@vinaykul](https://github.com/vinaykul)) -- `SELinuxMountReadWriteOncePod` graduated to Beta. ([#116425](https://github.com/kubernetes/kubernetes/pull/116425), [@jsafrane](https://github.com/jsafrane)) -- `StatefulSetAutoDeletePVC` feature gate promoted to beta. ([#116501](https://github.com/kubernetes/kubernetes/pull/116501), [@mattcary](https://github.com/mattcary)) -- `StatefulSet` names must be DNS labels, rather than subdomains. Any `StatefulSet` - which took advantage of subdomain validation (by having dots in the name) can't - possibly have worked, because we eventually set `pod.spec.hostname` from the `StatefulSetName`, - and that is validated as a DNS label. ([#114172](https://github.com/kubernetes/kubernetes/pull/114172), [@thockin](https://github.com/thockin)) -- `ValidatingAdmissionPolicy` now provides a status field that contains results of type checking the validation expression. - The type checking is fully informational, and the behavior of the policy is unchanged. ([#115668](https://github.com/kubernetes/kubernetes/pull/115668), [@jiahuif](https://github.com/jiahuif)) -- `cacheSize` field in `EncryptionConfiguration` is not supported for KMSv2 provider ([#113121](https://github.com/kubernetes/kubernetes/pull/113121), [@aramase](https://github.com/aramase)) -- `k8s.io/component-base/logs` now also supports adding command line flags to a `flag.FlagSet`. ([#114731](https://github.com/kubernetes/kubernetes/pull/114731), [@pohly](https://github.com/pohly)) -- `kubelet`: migrated `--container-runtime-endpoint` and `--image-service-endpoint` - to kubelet config ([#112136](https://github.com/kubernetes/kubernetes/pull/112136), [@pacoxu](https://github.com/pacoxu)) -- `resource.k8s.io/v1alpha1` was replaced with `resource.k8s.io/v1alpha2`. Before - upgrading a cluster, all objects in resource.k8s.io/v1alpha1 (ResourceClaim, ResourceClaimTemplate, - ResourceClass, PodScheduling) must be deleted. The changes are internal, so - YAML files which create pods and resource claims don't need changes except for - the newer `apiVersion`. ([#116299](https://github.com/kubernetes/kubernetes/pull/116299), [@pohly](https://github.com/pohly)) -- `volumes`: `resource.claims` is now cleared for PVC specs during create or update of a pod spec with inline PVC template or of a PVC because it has no effect. ([#115928](https://github.com/kubernetes/kubernetes/pull/115928), [@pohly](https://github.com/pohly)) - -### Feature - -- A new client side metric `rest_client_request_retries_total` has been added that tracks the number of retries sent to the server, partitioned by status code, verb and host ([#108396](https://github.com/kubernetes/kubernetes/pull/108396), [@tkashem](https://github.com/tkashem)) -- A new feature was enabled to improve the performance of the iptables mode of `kube-proxy` in large clusters. No action was required, however: - - 1. If you experienced problems with Services not syncing to iptables correctly, you can disable the feature by passing `--feature-gates=MinimizeIPTablesRestore=false` to kube-proxy (and file a bug if this fixes it). (This might also be detected by seeing the value of kube-proxy's `sync_proxy_rules_iptables_partial_restore_failures_total` metric rising.) - 2. If you were previously overriding the kube-proxy configuration for performance reasons, this may no longer be necessary. See https://kubernetes.io/docs/reference/networking/virtual-ips/#optimizing-iptables-mode-performance. ([#115138](https://github.com/kubernetes/kubernetes/pull/115138), [@danwinship](https://github.com/danwinship)) -- API validation relaxed allowing Indexed Jobs to be scaled up/down by changing parallelism and completions in tandem, such that parallelism == completions. ([#115236](https://github.com/kubernetes/kubernetes/pull/115236), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps and Testing] -- Added "general", "baseline", and "restricted" debugging profiles for kubectl debug. ([#114280](https://github.com/kubernetes/kubernetes/pull/114280), [@sding3](https://github.com/sding3)) [SIG CLI] -- Added "netadmin" debugging profiles for kubectl debug. ([#115712](https://github.com/kubernetes/kubernetes/pull/115712), [@wedaly](https://github.com/wedaly)) [SIG CLI] -- Added `--output plaintext-openapiv2` argument to kubectl explain to use old openapiv2 `explain` implementation. ([#115480](https://github.com/kubernetes/kubernetes/pull/115480), [@alexzielenski](https://github.com/alexzielenski)) -- Added `NewVolumeManagerReconstruction` feature gate and enabled it by default to enable updated discovery of mounted volumes during kubelet startup. Please watch for kubelet getting stuck at startup and / or not unmounting volumes from deleted Pods and report any issues in this area. ([#115268](https://github.com/kubernetes/kubernetes/pull/115268), [@jsafrane](https://github.com/jsafrane)) -- Added `kubelet` Topology Manager metrics to track admission requests processed and occured admission errors. ([#115137](https://github.com/kubernetes/kubernetes/pull/115137), [@swatisehgal](https://github.com/swatisehgal)) -- Added apiserver_envelope_encryption_invalid_key_id_from_status_total to measure number of times an invalid keyID is returned by the Status RPC call. ([#115846](https://github.com/kubernetes/kubernetes/pull/115846), [@ritazh](https://github.com/ritazh)) [SIG API Machinery and Auth] -- Added apiserver_envelope_encryption_kms_operations_latency_seconds metric to measure the KMSv2 grpc calls latency. ([#115649](https://github.com/kubernetes/kubernetes/pull/115649), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] -- Added e2e test to node expand volume with secret ([#115451](https://github.com/kubernetes/kubernetes/pull/115451), [@zhucan](https://github.com/zhucan)) -- Added e2e tests for kubectl `--subresource` for beta graduation ([#116590](https://github.com/kubernetes/kubernetes/pull/116590), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) -- Added kubelet Topology Manager metric to measure topology manager admission latency. ([#115590](https://github.com/kubernetes/kubernetes/pull/115590), [@swatisehgal](https://github.com/swatisehgal)) -- Added logging-format option to CCMs based on `k8s.io/cloud-provider` ([#108984](https://github.com/kubernetes/kubernetes/pull/108984), [@LittleFox94](https://github.com/LittleFox94)) -- Added metrics for volume reconstruction during kubelet startup. ([#115965](https://github.com/kubernetes/kubernetes/pull/115965), [@jsafrane](https://github.com/jsafrane)) [SIG Node and Storage] -- Added new -f flag into debug command to be used passing pod or node files instead explicit names. ([#111453](https://github.com/kubernetes/kubernetes/pull/111453), [@ardaguclu](https://github.com/ardaguclu)) -- Added new feature gate `ServiceNodePortStaticSubrange`, to enable the new strategy in the `NodePort` Service port allocators, so the node port range is subdivided and dynamic allocated `NodePort` port for Services are allocated preferentially from the upper range. ([#114418](https://github.com/kubernetes/kubernetes/pull/114418), [@xuzhenglun](https://github.com/xuzhenglun)) -- Added scheduler preemption support for pods using `ReadWriteOncePod` PVCs ([#114051](https://github.com/kubernetes/kubernetes/pull/114051), [@chrishenzie](https://github.com/chrishenzie)) -- Added the `applyconfiguration` generator to the code-generator script that generates server-side apply configuration and client APIs ([#114987](https://github.com/kubernetes/kubernetes/pull/114987), [@astefanutti](https://github.com/astefanutti)) -- Added the ability to host webhooks in the cloud controller manager. ([#108838](https://github.com/kubernetes/kubernetes/pull/108838), [@nckturner](https://github.com/nckturner)) -- Apiserver_storage_transformation_operations_total metric has been updated to include labels transformer_prefix and status. ([#115394](https://github.com/kubernetes/kubernetes/pull/115394), [@ritazh](https://github.com/ritazh)) [SIG API Machinery, Auth, Instrumentation and Testing] -- By enabling the `UserNamespacesStatelessPodsSupport` feature gate in kubelet, you can now run a stateless pod in a separate user namespace ([#116377](https://github.com/kubernetes/kubernetes/pull/116377), [@giuseppe](https://github.com/giuseppe)) [SIG Apps, Node and Storage] -- By enabling the alpha `CloudNodeIPs` feature gate in kubelet and the cloud - provider, you can now specify a dual-stack `--node-ip` value (when using an - external cloud provider that supports that functionality). ([#116305](https://github.com/kubernetes/kubernetes/pull/116305), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Cloud Provider, Network and Node] -- Changed kubectl `--subresource` flag to beta ([#116595](https://github.com/kubernetes/kubernetes/pull/116595), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) -- Changed metrics for aggregated discovery to publish new time series (alpha). ([#115630](https://github.com/kubernetes/kubernetes/pull/115630), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery and Testing] -- Dynamic Resource Allocation framework can be used for network devices ([#114364](https://github.com/kubernetes/kubernetes/pull/114364), [@bart0sh](https://github.com/bart0sh)) [SIG Node] -- Enable external plugins can be used as subcommands for kubectl create command if subcommand does not exist as builtin only when KUBECTL_ENABLE_CMD_SHADOW environment variable is exported. ([#116293](https://github.com/kubernetes/kubernetes/pull/116293), [@ardaguclu](https://github.com/ardaguclu)) -- GRPC probes now set a linger option of 1s to improve the TIME-WAIT state. ([#115321](https://github.com/kubernetes/kubernetes/pull/115321), [@rphillips](https://github.com/rphillips)) [SIG Network and Node] -- Graduated CRI Events driven Pod LifeCycle Event Generator (Evented PLEG) to Beta ([#115967](https://github.com/kubernetes/kubernetes/pull/115967), [@harche](https://github.com/harche)) -- Graduated `matchLabelKeys` in `podTopologySpread` to Beta ([#116291](https://github.com/kubernetes/kubernetes/pull/116291), [@denkensk](https://github.com/denkensk)) -- Graduated the `CSINodeExpandSecret` feature to Beta. This feature facilitates passing secrets to CSI driver as part of Node Expansion CSI operation. ([#115621](https://github.com/kubernetes/kubernetes/pull/115621), [@humblec](https://github.com/humblec)) -- Graduated the `LegacyServiceAccountTokenTracking` feature gate to Beta. The usage of auto-generated secret-based service account token now produces warnings by default, and relevant Secrets are labeled with a last-used timestamp (label key `kubernetes.io/legacy-token-last-used`). ([#114523](https://github.com/kubernetes/kubernetes/pull/114523), [@zshihang](https://github.com/zshihang)) [SIG API Machinery and Auth] -- HPA controller exposes the following metrics from the kube-controller-manager. - - `metric_computation_duration_seconds`: Number of metric computations. - - `metric_computation_total`: The time(seconds) that the HPA controller takes to calculate one metric. ([#116326](https://github.com/kubernetes/kubernetes/pull/116326), [@sanposhiho](https://github.com/sanposhiho)) [SIG Apps, Autoscaling and Instrumentation] -- HPA controller starts to expose metrics from the kube-controller-manager.\n- `reconciliations_total`: Number of reconciliation of HPA controller. \n- `reconciliation_duration_seconds`: The time(seconds) that the HPA controller takes to reconcile once. ([#116010](https://github.com/kubernetes/kubernetes/pull/116010), [@sanposhiho](https://github.com/sanposhiho)) -- Kube-up now includes `CoreDNS` version `v1.9.3` ([#114279](https://github.com/kubernetes/kubernetes/pull/114279), [@pacoxu](https://github.com/pacoxu)) -- Kubeadm: added the experimental (alpha) feature gate `EtcdLearnerMode` that allows etcd members to be joined as learner and only then promoted as voting members ([#113318](https://github.com/kubernetes/kubernetes/pull/113318), [@pacoxu](https://github.com/pacoxu)) -- Kubectl will now display `SeccompProfile` for pods, containers and ephemeral containers, if values were set. ([#113284](https://github.com/kubernetes/kubernetes/pull/113284), [@williamyeh](https://github.com/williamyeh)) -- Kubectl: added e2e test for default container annotation ([#115046](https://github.com/kubernetes/kubernetes/pull/115046), [@pacoxu](https://github.com/pacoxu)) -- Kubelet TCP and HTTP probes are now more effective using networking resources: - conntrack entries, sockets. This is achieved by reducing the `TIME-WAIT` state - of the connection to 1 second, instead of the defaults 60 seconds. This allows - kubelet to free the socket, and free conntrack entry and ephemeral port associated. ([#115143](https://github.com/kubernetes/kubernetes/pull/115143), [@aojea](https://github.com/aojea)) -- Kubelet allows pods to use the `net.ipv4.ip_local_reserved_ports` sysctl by default and the minimal kernel version is 3.16; Pod Security admission allows this sysctl in v1.27+ versions of the baseline and restricted policies. ([#115374](https://github.com/kubernetes/kubernetes/pull/115374), [@pacoxu](https://github.com/pacoxu)) [SIG Auth, Network and Node] -- Kubelet config file will be backed up to `/etc/kubernetes/tmp/` folder with `kubeadm-kubelet-config` append with a random suffix as the filename ([#114695](https://github.com/kubernetes/kubernetes/pull/114695), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle] -- Kubernetes is now built with Go `1.19.5` ([#115010](https://github.com/kubernetes/kubernetes/pull/115010), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with go 1.20 ([#114502](https://github.com/kubernetes/kubernetes/pull/114502), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- Kubernetes is now built with go 1.20.1 ([#115828](https://github.com/kubernetes/kubernetes/pull/115828), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- Kubernetes is now built with go 1.20.2 ([#116404](https://github.com/kubernetes/kubernetes/pull/116404), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- Locked `CSIMigrationvSphere` feature gate. ([#116610](https://github.com/kubernetes/kubernetes/pull/116610), [@xing-yang](https://github.com/xing-yang)) -- Made `apiextensions-apiserver` binary linking static (also affects the deb and rpm packages). ([#114226](https://github.com/kubernetes/kubernetes/pull/114226), [@saschagrunert](https://github.com/saschagrunert)) -- Made `kube-aggregator` binary linking static (also affects the deb and rpm packages). ([#114227](https://github.com/kubernetes/kubernetes/pull/114227), [@saschagrunert](https://github.com/saschagrunert)) -- Made `kubectl-convert` binary linking static (also affects the deb and rpm packages). ([#114228](https://github.com/kubernetes/kubernetes/pull/114228), [@saschagrunert](https://github.com/saschagrunert)) -- Migrated controller helper functions to use contextual logging. ([#115049](https://github.com/kubernetes/kubernetes/pull/115049), [@fatsheep9146](https://github.com/fatsheep9146)) -- Migrated the ResourceQuota controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113315](https://github.com/kubernetes/kubernetes/pull/113315), [@ncdc](https://github.com/ncdc)) [SIG API Machinery, Apps and Testing] -- Migrated the StatefulSet controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) ([#113840](https://github.com/kubernetes/kubernetes/pull/113840), [@249043822](https://github.com/249043822)) -- Migrated the `ClusterRole` aggregation controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113910](https://github.com/kubernetes/kubernetes/pull/113910), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Migrated the `Deployment` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) ([#113525](https://github.com/kubernetes/kubernetes/pull/113525), [@249043822](https://github.com/249043822)) -- Migrated the `ReplicaSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#114871](https://github.com/kubernetes/kubernetes/pull/114871), [@Namanl2001](https://github.com/Namanl2001)) -- Migrated the bootstrap signer controller and the token cleaner controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113464](https://github.com/kubernetes/kubernetes/pull/113464), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Apps and Instrumentation] -- Migrated the defaultbinder scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116571](https://github.com/kubernetes/kubernetes/pull/116571), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling] -- Migrated the main kube-controller-manager binary to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116529](https://github.com/kubernetes/kubernetes/pull/116529), [@pohly](https://github.com/pohly)) -- Migrated the namespace controller (within `kube-controller-manager`) to support [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113443](https://github.com/kubernetes/kubernetes/pull/113443), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) -- Migrated the service-account controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#114918](https://github.com/kubernetes/kubernetes/pull/114918), [@Namanl2001](https://github.com/Namanl2001)) [SIG API Machinery, Apps, Auth, Instrumentation and Testing] -- Migrated the volume attach/detach controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). - Migrated the `PersistentVolumeClaim` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). - Migrated the `PersistentVolume` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113584](https://github.com/kubernetes/kubernetes/pull/113584), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) -- Migrated the “TTL after finished” controller (within `kube-controller-manager`)to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113916](https://github.com/kubernetes/kubernetes/pull/113916), [@songxiao-wang87](https://github.com/songxiao-wang87)) -- NONE ([#113428](https://github.com/kubernetes/kubernetes/pull/113428), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- New plugin_evaluation_total is added to the scheduler.This metric counts how many times the specific plugin affects the scheduling result. The metric does not get incremented when the plugin has nothing to do with an incoming Pod. ([#115082](https://github.com/kubernetes/kubernetes/pull/115082), [@sanposhiho](https://github.com/sanposhiho)) -- Node `ipam` controller now exposes metrics `cidrset_cidrs_max_total` and `multicidrset_cidrs_max_total` with information about the max number of CIDRs that can be allocated. ([#112260](https://github.com/kubernetes/kubernetes/pull/112260), [@aryan9600](https://github.com/aryan9600)) -- Performance improvements in `klog` ([#115277](https://github.com/kubernetes/kubernetes/pull/115277), [@pohly](https://github.com/pohly)) -- Pod template `schedulingGates` are now mutable for Jobs that are suspended and have never been started ([#115940](https://github.com/kubernetes/kubernetes/pull/115940), [@ahg-g](https://github.com/ahg-g)) [SIG Apps] -- Pods which have an invalid negative `spec.terminationGracePeriodSeconds` value will now be treated as having a `terminationGracePeriodSeconds` of `1` ([#115606](https://github.com/kubernetes/kubernetes/pull/115606), [@wzshiming](https://github.com/wzshiming)) -- Profiling can now be served on a unix-domain socket by using the `--profiling-path` option (when profiling is enabled) for security purposes. ([#114191](https://github.com/kubernetes/kubernetes/pull/114191), [@apelisse](https://github.com/apelisse)) [SIG API Machinery] -- Promote aggregated discovery endpoint to beta and it will be enabled by default ([#116108](https://github.com/kubernetes/kubernetes/pull/116108), [@Jefftree](https://github.com/Jefftree)) -- Promoted `OpenAPIV3` to GA ([#116235](https://github.com/kubernetes/kubernetes/pull/116235), [@Jefftree](https://github.com/Jefftree)) -- Promoted `whoami` kubectl command. ([#116510](https://github.com/kubernetes/kubernetes/pull/116510), [@nabokihms](https://github.com/nabokihms)) -- Scheduler no longer runs the plugin's `Filter` method when its `PreFilter` method returned a Skip status. - In other words, your `PreFilter`/`Filter` plugin can return a Skip status in `PreFilter` if the plugin does nothing in Filter for that Pod. - Scheduler skips `NodeAffinity` Filter plugin when `NodeAffinity` Filter plugin has nothing to do with a Pod. - It may affect some metrics values related to the `NodeAffinity` Filter plugin. ([#114125](https://github.com/kubernetes/kubernetes/pull/114125), [@sanposhiho](https://github.com/sanposhiho)) -- Scheduler now skips `InterPodAffinity` Filter plugin when `InterPodAffinity` Filter plugin has nothing to do with a Pod. - It may affect some metrics values related to the `InterPodAffinity` Filter plugin. ([#114889](https://github.com/kubernetes/kubernetes/pull/114889), [@sanposhiho](https://github.com/sanposhiho)) -- Scheduler volumebinding: leveraged `PreFilterResult` to reduce down to only - eligible node(s) for pod with bound claim(s) to local `PersistentVolume(s)` ([#109877](https://github.com/kubernetes/kubernetes/pull/109877), [@yibozhuang](https://github.com/yibozhuang)) -- Scheduling cycle now terminates immediately when any scheduler plugin returns an - `unschedulableAndUnresolvable` status in `PostFilter`. ([#114699](https://github.com/kubernetes/kubernetes/pull/114699), [@kerthcet](https://github.com/kerthcet)) -- Since Kubernetes v1.5, `kubectl apply` has had an alpha-stage `--prune` flag to support deleting previously applied objects that have been removed from the input manifest. This feature has remained in alpha ever since due to performance and correctness issues inherent in its design. This PR exposes a second, independent pruning alpha powered by a new standard named `ApplySets`. An `ApplySet` is a server-side object (by default, a Secret; ConfigMaps are also allowed) that kubectl can use to accurately and efficiently track set membership across `apply` operations. The format used for `ApplySet` is set out in [KEP 3659](https://github.com/kubernetes/enhancements/issues/3659) as a low-level specification. Other tools in the ecosystem can also build on this specification for improved interoperability. To try the ApplySet-based pruning alpha, set `KUBECTL_APPLYSET=true` and use the flags `--prune --applyset=secret-name` with `kubectl apply`. ([#116205](https://github.com/kubernetes/kubernetes/pull/116205), [@justinsb](https://github.com/justinsb)) -- Switched kubectl explain to use OpenAPIV3 information published by the server. OpenAPIV2 backend can still be used with the `--output plaintext-openapiv2` argument ([#116390](https://github.com/kubernetes/kubernetes/pull/116390), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery, CLI and Testing] -- The Pod API field `.spec.schedulingGates[*].name` now requires qualified names (like `example.com/mygate`), matching validation for names of `.spec.readinessGates[*].name`. Any uses of the alpha scheduling gate feature prior to 1.27 that do not match that validation must be renamed or deleted before upgrading to 1.27. ([#115821](https://github.com/kubernetes/kubernetes/pull/115821), [@lianghao208](https://github.com/lianghao208)) [SIG Apps and Scheduling] -- The Scheduler did not run the plugin Score method when its PreScore method returned a Skip status. In other words, the PreScore/Score plugin could return a Skip status in PreScore if the plugin did nothing in Score for that Pod. ([#115652](https://github.com/kubernetes/kubernetes/pull/115652), [@AxeZhan](https://github.com/AxeZhan)) -- The `AdvancedAuditing` feature gate was locked to _true_ in v1.27, and will be removed completely in v1.28 ([#115163](https://github.com/kubernetes/kubernetes/pull/115163), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery] -- The `JobMutableNodeSchedulingDirectives` feature gate has graduated to GA. ([#116116](https://github.com/kubernetes/kubernetes/pull/116116), [@ahg-g](https://github.com/ahg-g)) [SIG Apps, Scheduling and Testing] -- The `ReadWriteOncePod` feature gate has been graduated to beta. ([#114494](https://github.com/kubernetes/kubernetes/pull/114494), [@chrishenzie](https://github.com/chrishenzie)) -- The bug which caused the status of Indexed Jobs to only update when new indexes were completed was fixed. Now, completed indexes are updated even if the `.status.completedIndexes` values are outside the `[0, .spec.completions> range`. ([#115349](https://github.com/kubernetes/kubernetes/pull/115349), [@danielvegamyhre](https://github.com/danielvegamyhre)) -- The go version defined in `.go-version` is now fetched when invoking test, build, and code generation targets if the current go version does not match it. Set $FORCE_HOST_GO=y while testing or building to skip this behavior, or set $GO_VERSION to override the selected go version. ([#115377](https://github.com/kubernetes/kubernetes/pull/115377), [@liggitt](https://github.com/liggitt)) [SIG Testing] -- The job controller back-off logic is now decoupled from workqueue. In case of parallelism > 1, if there are multiple new failures in a reconciliation cycle, all the failures are taken into account to compute the back-off. Previously, the back-off kicked in for all types of failures; with this change, only pod failures are taken into account. If the back-off limits exceeds, the job is marked as failed immediately; before this change, the job is marked as failed in the next back-off. ([#114768](https://github.com/kubernetes/kubernetes/pull/114768), [@sathyanarays](https://github.com/sathyanarays)) [SIG Apps and Testing] -- The mount-utils mounter now provides an option to limit the number of concurrent format operations. ([#115379](https://github.com/kubernetes/kubernetes/pull/115379), [@artemvmin](https://github.com/artemvmin)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node and Storage] -- The scheduler's metric `plugin_execution_duration_seconds` now records `PreEnqueue` plugins execution seconds. ([#116201](https://github.com/kubernetes/kubernetes/pull/116201), [@sanposhiho](https://github.com/sanposhiho)) -- Two changes to the `/debug/api_priority_and_fairness/dump_priority_levels` endpoint of API Priority and Fairness: added total number of dispatched, timed-out, rejected and cancelled requests; output now sorted by `PriorityLevelName`. ([#112393](https://github.com/kubernetes/kubernetes/pull/112393), [@borgerli](https://github.com/borgerli)) -- Unlocked the `CSIMigrationvSphere` feature gate. - The change allow users to continue using the in-tree vSphere driver,pending a vSphere - CSI driver release that has with GA support for Windows, XFS, and raw block access. ([#116342](https://github.com/kubernetes/kubernetes/pull/116342), [@msau42](https://github.com/msau42)) [SIG Storage] -- Updated `cAdvisor` to `v0.47.0` ([#114883](https://github.com/kubernetes/kubernetes/pull/114883), [@bobbypage](https://github.com/bobbypage)) -- Updated `kube-apiserver` SLO/SLI latency metrics to exclude priority & fairness queue wait times ([#116420](https://github.com/kubernetes/kubernetes/pull/116420), [@andrewsykim](https://github.com/andrewsykim)) -- Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.2` - - Updated setcap to use released image `registry.k8s.io/build-image/setcap:bullseye-v1.4.2` ([#116509](https://github.com/kubernetes/kubernetes/pull/116509), [@cpanato](https://github.com/cpanato)) [SIG Testing] -- Updated distroless iptables to use released image `registry.k8s.io/distroless-iptables:v0.2.1` ([#115905](https://github.com/kubernetes/kubernetes/pull/115905), [@cpanato](https://github.com/cpanato)) [SIG Testing] -- Upgrades functionality of `kubectl kustomize` as described at - https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.0 and https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.1. - - This is a new major release of kustomize, so there are a few backwards-incompatible changes, most of which are rare use cases, bug fixes with side effects, or things that have been deprecated for multiple releases already: - - - https://github.com/kubernetes-sigs/kustomize/pull/4911: Drop support for a very old, legacy style of patches. patches used to be allowed to be used as an alias for patchesStrategicMerge in kustomize v3. You now have to use patchesStrategicMerge explicitly, or update to the new syntax supported by patches. See examples in the PR description of https://github.com/kubernetes-sigs/kustomize/pull/4911. - - https://github.com/kubernetes-sigs/kustomize/issues/4731: Remove a potential build-time side-effect in ConfigMapGenerator and SecretGenerator, which loaded values from the local environment under some circumstances, breaking kustomize build's side-effect-free promise. While this behavior was never intended, we deprecated it and are announcing it as a breaking change since it existed for a long time. See also the Eschewed Features documentation. - - https://github.com/kubernetes-sigs/kustomize/pull/4985: If you previously included .git in an AWS or Azure URL, we will no longer automatically remove that suffix. You may need to add an extra / to replace the .git for the URL to properly resolve. - - https://github.com/kubernetes-sigs/kustomize/pull/4954: Drop support for using gh: as a host (e.g. gh:kubernetes-sigs/kustomize). We were unable to find any usage of or basis for this and believe it may have been targeting a custom gitconfig shorthand syntax. ([#116598](https://github.com/kubernetes/kubernetes/pull/116598), [@natasha41575](https://github.com/natasha41575)) [SIG CLI] -- When an unsupported PodDisruptionBudget configuration is found, an event and log will be emitted to inform users of the misconfiguration. ([#115861](https://github.com/kubernetes/kubernetes/pull/115861), [@JayKayy](https://github.com/JayKayy)) [SIG Apps] -- [E2E] Pods spawned by E2E tests can now pull images from the private registry using the new --e2e-docker-config-file flag ([#114625](https://github.com/kubernetes/kubernetes/pull/114625), [@Divya063](https://github.com/Divya063)) [SIG Node and Testing] -- [alpha: kubectl apply --prune --applyset] Enabled certain custom resources (CRs) to be used as `ApplySet` parent objects. To enable this for a given CR, apply the label `applyset.kubernetes.io/is-parent-type: true` to the CustomResourceDefinition (CRD) that defines it. ([#116353](https://github.com/kubernetes/kubernetes/pull/116353), [@KnVerey](https://github.com/KnVerey)) -- `Kubelet` no longer creates certain legacy iptables rules by default. - It is possible that this will cause problems with some third-party components - that improperly depended on those rules. If this affects you, you can run - `kubelet` with `--feature-gates=IPTablesOwnershipCleanup=false`, but a bug should also be filed against the third-party component. ([#114472](https://github.com/kubernetes/kubernetes/pull/114472), [@danwinship](https://github.com/danwinship)) -- `MinDomainsInPodTopologySpread` feature gate is enabled by default as a - Beta feature in 1.27. ([#114445](https://github.com/kubernetes/kubernetes/pull/114445), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- `Secret` of `kubernetes.io/tls` type now verifies that the private key matches the cert ([#113581](https://github.com/kubernetes/kubernetes/pull/113581), [@aimuz](https://github.com/aimuz)) -- `StorageVersionGC` (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113986](https://github.com/kubernetes/kubernetes/pull/113986), [@songxiao-wang87](https://github.com/songxiao-wang87)) -- `client-go`: `sharedInformerFactory` now waits for goroutines during shutdown for metadatainformer and dynamicinformer. ([#114434](https://github.com/kubernetes/kubernetes/pull/114434), [@howardjohn](https://github.com/howardjohn)) -- `kube-proxy` now accepts the `ContextualLogging`, `LoggingAlphaOptions`, - `LoggingBetaOptions` ([#115233](https://github.com/kubernetes/kubernetes/pull/115233), [@pohly](https://github.com/pohly)) -- `kube-scheduler`: Optimized implementation of null `labelSelector` in topology spreading. ([#116607](https://github.com/kubernetes/kubernetes/pull/116607), [@alculquicondor](https://github.com/alculquicondor)) -- `kubeadm`: now shows a warning message when detecting that the sandbox image of the container runtime is inconsistent with that used by kubeadm ([#115610](https://github.com/kubernetes/kubernetes/pull/115610), [@SataQiu](https://github.com/SataQiu)) -- `kubectl` now uses `HorizontalPodAutoscaler` `v2` by default. ([#114886](https://github.com/kubernetes/kubernetes/pull/114886), [@a7i](https://github.com/a7i)) -- Kubernetes is now built with Go 1.20.3 ([#117125](https://github.com/kubernetes/kubernetes/pull/117125), [@xmudrii](https://github.com/xmudrii)) [SIG Release and Testing] -- Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.3` ([#117126](https://github.com/kubernetes/kubernetes/pull/117126), [@xmudrii](https://github.com/xmudrii)) [SIG Testing] - -### Documentation - -- Documented the reason field in CRI API to ensure it equals `OOMKilled` for the containers terminated by OOM killer ([#112977](https://github.com/kubernetes/kubernetes/pull/112977), [@mimowo](https://github.com/mimowo)) -- Error message for Pods with requests exceeding limits will have a limit value printed. ([#112925](https://github.com/kubernetes/kubernetes/pull/112925), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) -- The change affects the following CLI command: - - kubectl create rolebinding -h ([#107124](https://github.com/kubernetes/kubernetes/pull/107124), [@ptux](https://github.com/ptux)) [SIG CLI] - -### Failing Test - -- Deflaked a preemption test that may patch Nodes incorrectly. ([#114350](https://github.com/kubernetes/kubernetes/pull/114350), [@Huang-Wei](https://github.com/Huang-Wei)) -- Fixed panic in vSphere e2e tests. ([#115863](https://github.com/kubernetes/kubernetes/pull/115863), [@jsafrane](https://github.com/jsafrane)) [SIG Storage and Testing] -- Setting the Kubelet config option `--resolv-conf=Host` on Windows will now result in Kubelet applying the Pod DNS Policies as intended. ([#110566](https://github.com/kubernetes/kubernetes/pull/110566), [@claudiubelu](https://github.com/claudiubelu)) - -### Bug or Regression - -- Added (dry run) and (server dry run) suffixes to `kubectl scale` command when `dry-run` is passed ([#114252](https://github.com/kubernetes/kubernetes/pull/114252), [@ardaguclu](https://github.com/ardaguclu)) -- Applied configurations can be generated for types with `non-builtin` map fields ([#114920](https://github.com/kubernetes/kubernetes/pull/114920), [@astefanutti](https://github.com/astefanutti)) -- Changed the error message of `kubectl rollout restart` when subsequent `kubectl rollout restart` commands are executed within a second ([#113040](https://github.com/kubernetes/kubernetes/pull/113040), [@ardaguclu](https://github.com/ardaguclu)) -- Changed the error message to `cannot exec into multiple objects at a time` when file passed to `kubectl exec` contains multiple resources ([#114249](https://github.com/kubernetes/kubernetes/pull/114249), [@ardaguclu](https://github.com/ardaguclu)) -- Client-go: fixed potential data races retrying requests using a custom `io.Reader` body; with this fix, only requests with no body or with `string` / `[]byte` / `runtime.Object` bodies can be retried ([#113933](https://github.com/kubernetes/kubernetes/pull/113933), [@liggitt](https://github.com/liggitt)) -- Describing the CRs will now hide `.metadata.managedFields` ([#114584](https://github.com/kubernetes/kubernetes/pull/114584), [@soltysh](https://github.com/soltysh)) -- Discovery document will correctly return the resources for aggregated apiservers that do not implement aggregated disovery ([#115770](https://github.com/kubernetes/kubernetes/pull/115770), [@Jefftree](https://github.com/Jefftree)) -- Excluded preemptor pod metadata in the event message ([#114923](https://github.com/kubernetes/kubernetes/pull/114923), [@mimowo](https://github.com/mimowo)) -- Expanded the partial fix for https://github.com/kubernetes/kubernetes/issues/111539 - which was already started in https://github.com/kubernetes/kubernetes/pull/109706 - Specifically, we will now reduce the amount of syncs for `ETP=local` services even - further in the CCM and avoid re-configuring LBs to an even greater extent. ([#111658](https://github.com/kubernetes/kubernetes/pull/111658), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) -- File content check for IPV4 is now enabled by default, and the check of IPV4 or IPV6 is done for `kubeadm init` or `kubeadm join` only in case the user intends to create a cluster to support that kind of IP address family ([#115420](https://github.com/kubernetes/kubernetes/pull/115420), [@chendave](https://github.com/chendave)) -- Fixed CSI `PersistentVolumes` to allow Secrets names longer than 63 characters. ([#114776](https://github.com/kubernetes/kubernetes/pull/114776), [@jsafrane](https://github.com/jsafrane)) -- Fixed Route controller to update routes when NodeIP changes ([#108095](https://github.com/kubernetes/kubernetes/pull/108095), [@lzhecheng](https://github.com/lzhecheng)) -- Fixed `DaemonSet` to update the status even if it fails to create a pod. ([#113787](https://github.com/kubernetes/kubernetes/pull/113787), [@gjkim42](https://github.com/gjkim42)) -- Fixed `SELinux` label for host path volumes created by host path provisioner ([#112021](https://github.com/kubernetes/kubernetes/pull/112021), [@mrunalp](https://github.com/mrunalp)) -- Fixed `StatefulSetAutoDeletePVC` feature when `OwnerReferencesPermissionEnforcement` admission plugin is enabled. ([#114116](https://github.com/kubernetes/kubernetes/pull/114116), [@jsafrane](https://github.com/jsafrane)) -- Fixed a bug on the `EndpointSlice` mirroring controller that generated multiple slices in some cases for custom endpoints in non canonical format. ([#114155](https://github.com/kubernetes/kubernetes/pull/114155), [@aojea](https://github.com/aojea)) -- Fixed a bug that caused the `apiserver` to panic when trying to allocate a Service with a dynamic `ClusterIP` and was configured with Service CIDRs with a /28 mask for IPv4 and a /124 mask for IPv6 ([#115322](https://github.com/kubernetes/kubernetes/pull/115322), [@aojea](https://github.com/aojea)) -- Fixed a bug where Kubernetes would apply a default StorageClass to a PersistentVolumeClaim, - even when the deprecated annotation `volume.beta.kubernetes.io/storage-class` was set. ([#116089](https://github.com/kubernetes/kubernetes/pull/116089), [@cvvz](https://github.com/cvvz)) [SIG Apps and Storage] -- Fixed a bug where `events/v1` `Events` with similar event type and reporting instance were not aggregated by `client-go`. ([#112365](https://github.com/kubernetes/kubernetes/pull/112365), [@dgrisonnet](https://github.com/dgrisonnet)) -- Fixed a bug where when emitting similar Events consecutively, some were rejected by the apiserver. ([#114237](https://github.com/kubernetes/kubernetes/pull/114237), [@dgrisonnet](https://github.com/dgrisonnet)) -- Fixed a data race when emitting similar Events consecutively ([#114236](https://github.com/kubernetes/kubernetes/pull/114236), [@dgrisonnet](https://github.com/dgrisonnet)) -- Fixed a log line in scheduler that inaccurately implies that volume binding has finalized ([#116018](https://github.com/kubernetes/kubernetes/pull/116018), [@TommyStarK](https://github.com/TommyStarK)) -- Fixed a rare race condition in `kube-apiserver` that could lead to missing events when a watch API request was created at the same time `kube-apiserver` was re-initializing its internal watch. ([#116172](https://github.com/kubernetes/kubernetes/pull/116172), [@wojtek-t](https://github.com/wojtek-t)) -- Fixed a regression in the pod binding subresource to honor the `metadata.uid` precondition. - This allows kube-scheduler to ensure it is assigns node names to the same instances of pods it made scheduling decisions for. ([#116550](https://github.com/kubernetes/kubernetes/pull/116550), [@alculquicondor](https://github.com/alculquicondor)) -- Fixed a regression that the scheduler always goes through all Filter plugins. ([#114518](https://github.com/kubernetes/kubernetes/pull/114518), [@Huang-Wei](https://github.com/Huang-Wei)) -- Fixed an EndpointSlice Controller hashing bug that could cause EndpointSlices to incorrectly handle Pods with duplicate IP addresses. For example this could happen when a new Pod reused an IP that was also assigned to a Pod in a completed state. ([#115907](https://github.com/kubernetes/kubernetes/pull/115907), [@qinqon](https://github.com/qinqon)) [SIG Apps and Network] -- Fixed an issue where a CSI migrated volume may be prematurely detached when the CSI driver is not running on the node. - If CSI migration is enabled on the node, even the csi-driver is not up and ready, we will still add this volume to DSW. ([#115464](https://github.com/kubernetes/kubernetes/pull/115464), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu)) -- Fixed an issue where failed pods associated with a job with `parallelism = 1` are recreated by the job controller honoring exponential backoff delay again. However, for jobs with `parallelism > 1`, pods might be created without exponential backoff delay. ([#114516](https://github.com/kubernetes/kubernetes/pull/114516), [@nikhita](https://github.com/nikhita)) -- Fixed an issue with Winkernel Proxier - ClusterIP Loadbalancers missing if the `ExternalTrafficPolicy` is set to Local and the available endpoints are all `remoteEndpoints`. ([#115919](https://github.com/kubernetes/kubernetes/pull/115919), [@princepereira](https://github.com/princepereira)) -- Fixed bug in CRD Validation Rules (beta) and `ValidatingAdmissionPolicy` (alpha) where all admission requests could result in `internal error: runtime error: index out of range [3] with length 3 evaluating rule: <rule name>` under certain circumstances. ([#114857](https://github.com/kubernetes/kubernetes/pull/114857), [@jpbetz](https://github.com/jpbetz)) -- Fixed bug in beta aggregated discovery endpoint which caused CRD discovery information to be temporarily missing when an Aggregated APIService with the same GroupVersion is deleted (and vice versa). ([#116770](https://github.com/kubernetes/kubernetes/pull/116770), [@alexzielenski](https://github.com/alexzielenski)) -- Fixed bug in reflector that couldn't recover from `Too large resource version` errors with API servers before 1.17.0. ([#115093](https://github.com/kubernetes/kubernetes/pull/115093), [@xuzhenglun](https://github.com/xuzhenglun)) -- Fixed clearing of rate-limiter for the queue of checks for cleaning stale pod disruption conditions. The bug could result in the PDB synchronization updates firing too often or the pod disruption cleanups taking too long to happen. ([#114770](https://github.com/kubernetes/kubernetes/pull/114770), [@mimowo](https://github.com/mimowo)) -- Fixed data race in `kube-scheduler` when preemption races with a Pod update. ([#116395](https://github.com/kubernetes/kubernetes/pull/116395), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] -- Fixed file permission issues that happened during update of `Secret`/`ConfigMap`/`projected volume` when `fsGroup` is used. The problem caused a race condition where application gets intermittent permission denied error when reading files that were just updated, before the correct permissions were applied. ([#114464](https://github.com/kubernetes/kubernetes/pull/114464), [@tsaarni](https://github.com/tsaarni)) -- Fixed incorrect watch events when a watch is initialized simultanously with a reinitializing watchcache. ([#116436](https://github.com/kubernetes/kubernetes/pull/116436), [@wojtek-t](https://github.com/wojtek-t)) -- Fixed issue in `Winkernel` Proxier - Unexpected active TCP connection drops while horizontally scaling the endpoints for a LoadBalancer Service with Internal Traffic Policy: `Local` ([#113742](https://github.com/kubernetes/kubernetes/pull/113742), [@princepereira](https://github.com/princepereira)) -- Fixed issue on Windows when calculating cpu limits on nodes with more than 64 logical processors ([#114231](https://github.com/kubernetes/kubernetes/pull/114231), [@mweibel](https://github.com/mweibel)) -- Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing when service was configured with `ipFamilyPolicy`: `RequireDualStack` ([#115503](https://github.com/kubernetes/kubernetes/pull/115503), [@princepereira](https://github.com/princepereira)) -- Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing when service was configured with `ipFamilyPolicy`: `RequireDualStack` ([#115577](https://github.com/kubernetes/kubernetes/pull/115577), [@princepereira](https://github.com/princepereira)) -- Fixed issue with `Winkernel Proxier` - No ingress load balancer rules with endpoints to support load balancing when all the endpoints are terminating. ([#113776](https://github.com/kubernetes/kubernetes/pull/113776), [@princepereira](https://github.com/princepereira)) -- Fixed missing delete events on informer re-lists to ensure all delete events were correctly emitted and using the latest known object state, so that all event handlers and stores always reflect the actual apiserver state as best as possible ([#115620](https://github.com/kubernetes/kubernetes/pull/115620), [@odinuge](https://github.com/odinuge)) -- Fixed nil pointer error in `NodeVolumeLimits` csi logging ([#115179](https://github.com/kubernetes/kubernetes/pull/115179), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu)) -- Fixed panic validating custom resource definition schemas that set `multipleOf` to 0 ([#114869](https://github.com/kubernetes/kubernetes/pull/114869), [@liggitt](https://github.com/liggitt)) -- Fixed performance regression in scheduler caused by frequent metric lookup on critical code path. ([#116428](https://github.com/kubernetes/kubernetes/pull/116428), [@mborsz](https://github.com/mborsz)) [SIG Scheduling] -- Fixed stuck apiserver if an aggregated apiservice returned `304 Not Modified` for aggregated discovery information ([#114459](https://github.com/kubernetes/kubernetes/pull/114459), [@alexzielenski](https://github.com/alexzielenski)) -- Fixed the problem Pod terminating stuck because of trying to umount not actual mounted dir. ([#115769](https://github.com/kubernetes/kubernetes/pull/115769), [@mochizuki875](https://github.com/mochizuki875)) -- Fixed the regression that introduced 34s timeout for DELETECOLLECTION calls ([#115341](https://github.com/kubernetes/kubernetes/pull/115341), [@tkashem](https://github.com/tkashem)) -- Fixed two regressions introduced by the `PodDisruptionConditions` feature (on by default in 1.26): - - pod eviction API calls returned spurious precondition errors and required a second evict API call to succeed - - dry-run eviction API calls persisted a DisruptionTarget condition into the pod being evicted ([#116554](https://github.com/kubernetes/kubernetes/pull/116554), [@atiratree](https://github.com/atiratree)) -- Fixes #115825. Kube-proxy will now include the `healthz` state in its response to the LB HC as to avoid indicating to the LB that it should use the node in question when Kube-proxy is not healthy. ([#111661](https://github.com/kubernetes/kubernetes/pull/111661), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Network] -- Flag `--concurrent-node-syncs` has been added to cloud node controller which defines how many workers in parallel will be initialising and synchronising nodes. ([#113104](https://github.com/kubernetes/kubernetes/pull/113104), [@pawbana](https://github.com/pawbana)) [SIG API Machinery, Cloud Provider and Scalability] -- Force deleted pods may fail to terminate until the kubelet is restarted when the container runtime returns an error during termination. We have strengthened testing for runtime failures and now perform a more rigorous reconciliation to ensure static pods (especially those that use fixed UIDs) are restarted. As a side effect of these changes static pods will be restarted with lower latency than before (2s vs 4s, on average) and rapid updates to pod configuration should take effect sooner. - - A new metric `kubelet_known_pods` has been added at ALPHA stability to report the number of pods a Kubelet is tracking in a number of internal states. Operators may use the metrics to track an excess of pods in the orphaned state that may not be completing. ([#113145](https://github.com/kubernetes/kubernetes/pull/113145), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Auth, Cloud Provider, Node and Testing] -- From now on, the HPA controller will return an error for the container resource metrics when the feature gate `HPAContainerMetrics` is disabled. As a result, HPA with a container resource metric performs no scale-down and performs only. ([#116043](https://github.com/kubernetes/kubernetes/pull/116043), [@sanposhiho](https://github.com/sanposhiho)) -- IPVS: Any ipvs scheduler can now be configured. If a un-usable scheduler is configured `kube-proxy` will re-start and the logs must be checked (same as before but different log printouts). ([#114878](https://github.com/kubernetes/kubernetes/pull/114878), [@uablrek](https://github.com/uablrek)) -- If a user attempts to add an ephemeral container to a static pod, they will now get a visible validation error. ([#114086](https://github.com/kubernetes/kubernetes/pull/114086), [@xmcqueen](https://github.com/xmcqueen)) -- Ingress with `ingressClass` annotation and `IngressClassName` both set can be created now. ([#115447](https://github.com/kubernetes/kubernetes/pull/115447), [@AxeZhan](https://github.com/AxeZhan)) -- Kube-apiserver: errors decoding objects in etcd are now recorded in an `apiserver_storage_decode_errors_total` counter metric ([#114376](https://github.com/kubernetes/kubernetes/pull/114376), [@baomingwang](https://github.com/baomingwang)) [SIG API Machinery and Instrumentation] -- Kube-apiserver: regular expressions specified with the `--cors-allowed-origins` option are now validated to match the entire `hostname` inside the `Origin` header of the request and - must contain '^' or the '//' prefix to anchor to the start, and '$' or the port separator ':' to anchor to - the end. ([#112809](https://github.com/kubernetes/kubernetes/pull/112809), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] -- Kube-apiserver: removed N^2 behavior loading webhook configurations. ([#114794](https://github.com/kubernetes/kubernetes/pull/114794), [@lavalamp](https://github.com/lavalamp)) [SIG API Machinery, Architecture, CLI, Cloud Provider and Node] -- Kubeadm: fixed an etcd learner-mode bug by preparing an etcd static pod manifest before promoting ([#115038](https://github.com/kubernetes/kubernetes/pull/115038), [@tobiasgiese](https://github.com/tobiasgiese)) -- Kubeadm: fixed the bug where `kubeadm` always does CRI detection even if it is not required by a phase subcommand ([#114455](https://github.com/kubernetes/kubernetes/pull/114455), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: improved retries when updating node information, in case `kube-apiserver` is temporarily unavailable ([#114176](https://github.com/kubernetes/kubernetes/pull/114176), [@QuantumEnergyE](https://github.com/QuantumEnergyE)) -- Kubeadm`: modified `--config` flag from required to optional for `kubeadm kubeconfig user` command ([#116074](https://github.com/kubernetes/kubernetes/pull/116074), [@SataQiu](https://github.com/SataQiu)) -- Kubectl: enabled usage of label selector for filtering out resources when pruning for kubectl diff ([#114863](https://github.com/kubernetes/kubernetes/pull/114863), [@danlenar](https://github.com/danlenar)) -- Kubelet startup now fails CRI connection if service or image endpoint is throwing any error ([#115102](https://github.com/kubernetes/kubernetes/pull/115102), [@saschagrunert](https://github.com/saschagrunert)) -- Kubelet: fix recording issue when pulling image did finish ([#114904](https://github.com/kubernetes/kubernetes/pull/114904), [@TommyStarK](https://github.com/TommyStarK)) [SIG Node] -- Kubelet`: fixed a bug in `kubelet` that stopped rendering the `ConfigMaps` when `fsquota` monitoring is enabled ([#112624](https://github.com/kubernetes/kubernetes/pull/112624), [@pacoxu](https://github.com/pacoxu)) -- Messages of `DisruptionTarget` condition now excludes preemptor pod metadata ([#114914](https://github.com/kubernetes/kubernetes/pull/114914), [@mimowo](https://github.com/mimowo)) -- Optimized `LoadBalancer` creation with the help of attribute Internal Traffic Policy: `Local` ([#114407](https://github.com/kubernetes/kubernetes/pull/114407), [@princepereira](https://github.com/princepereira)) -- PVCs will automatically be recreated if they are missing for a pending Pod. ([#113270](https://github.com/kubernetes/kubernetes/pull/113270), [@rrangith](https://github.com/rrangith)) [SIG Apps and Testing] -- PersistentVolume API objects which set NodeAffinities using beta Kubernetes labels for OS, architecture, zone, region, and instance type may now be modified to use the stable Kubernetes labels. ([#115391](https://github.com/kubernetes/kubernetes/pull/115391), [@haoruan](https://github.com/haoruan)) -- Potentially breaking change - Updating the polling interval for Windows stats collection from 1 second to 10 seconds ([#116546](https://github.com/kubernetes/kubernetes/pull/116546), [@marosset](https://github.com/marosset)) [SIG Node and Windows] -- Relaxed API validation for usage `key encipherment` and `kubelet` uses requested usages accordingly ([#111660](https://github.com/kubernetes/kubernetes/pull/111660), [@pacoxu](https://github.com/pacoxu)) -- Removed scheduler names from preemption event messages. ([#114980](https://github.com/kubernetes/kubernetes/pull/114980), [@mimowo](https://github.com/mimowo)) -- Shared informers now correctly propagate whether they are synced or not. Individual informer handlers may now check if they are synced or not (new `HasSynced` method). Library support is added to assist controllers in tracking whether their own work is completed for items in the initial list (`AsyncTracker`). ([#113985](https://github.com/kubernetes/kubernetes/pull/113985), [@lavalamp](https://github.com/lavalamp)) -- The Kubernetes API server now correctly detects and closes existing TLS connections when its client certificate file for kubelet authentication has been rotated. ([#115315](https://github.com/kubernetes/kubernetes/pull/115315), [@enj](https://github.com/enj)) [SIG API Machinery, Auth, Node and Testing] -- Total test spec is now available by `ProgressReporter`, it will be reported before test suite got executed. ([#114417](https://github.com/kubernetes/kubernetes/pull/114417), [@chendave](https://github.com/chendave)) -- Updated the Event series starting count when emitting isomorphic events from 1 to 2. ([#112334](https://github.com/kubernetes/kubernetes/pull/112334), [@dgrisonnet](https://github.com/dgrisonnet)) -- When GCing pods, `kube-controller-manager` will delete Evicted pods first. ([#116167](https://github.com/kubernetes/kubernetes/pull/116167), [@borgerli](https://github.com/borgerli)) -- When describing deployments, `OldReplicaSets` now always shows all replicasets controlled the deployment, not just those that still have replicas available. ([#113083](https://github.com/kubernetes/kubernetes/pull/113083), [@llorllale](https://github.com/llorllale)) [SIG CLI] -- Windows CPU usage node stats are now correctly calculated for nodes with multiple Processor Groups. ([#110864](https://github.com/kubernetes/kubernetes/pull/110864), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Testing and Windows] -- `LabelSelectors` specified in `topologySpreadConstraints` were validated to ensure that pods are scheduled as expected. Existing pods with invalid `LabelSelectors` could be updated, but new pods were required to specify valid `LabelSelectors`. ([#111802](https://github.com/kubernetes/kubernetes/pull/111802), [@maaoBit](https://github.com/maaoBit)) -- `PodGC` for pods which are in terminal phase now do not add the `DisruptionTarget` condition. ([#115056](https://github.com/kubernetes/kubernetes/pull/115056), [@mimowo](https://github.com/mimowo)) -- `Service` of type `ExternalName` do not create an `Endpoint` anymore. ([#114814](https://github.com/kubernetes/kubernetes/pull/114814), [@panslava](https://github.com/panslava)) -- `cacher`: If `ResourceVersion` is unset, the watch is now served from the underlying storage as documented. ([#115096](https://github.com/kubernetes/kubernetes/pull/115096), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) -- `client-go`: fixed the wait time for trying to acquire the leader lease ([#114872](https://github.com/kubernetes/kubernetes/pull/114872), [@Iceber](https://github.com/Iceber)) -- `etcd`: Updated to `v3.5.7` ([#115310](https://github.com/kubernetes/kubernetes/pull/115310), [@mzaian](https://github.com/mzaian)) -- `golang.org/x/net` updated to `v0.7.0` to fix CVE-2022-41723 ([#115786](https://github.com/kubernetes/kubernetes/pull/115786), [@liggitt](https://github.com/liggitt)) -- `kube-controller-manager` will not run nodeipam controller when allocator type - is `CloudAllocator` and the cloud provider is not enabled. ([#114596](https://github.com/kubernetes/kubernetes/pull/114596), [@andrewsykim](https://github.com/andrewsykim)) -- `kube-controller-manager`: fixed a bug that the `kubeconfig` field of `kubecontrollermanager.config.k8s.io` configuration is not populated correctly ([#116219](https://github.com/kubernetes/kubernetes/pull/116219), [@SataQiu](https://github.com/SataQiu)) -- `kube-proxy` with `--proxy-mode=ipvs` can be used with statically linked kernels. - The reseved IPv4 range `TEST-NET-2` in `rfc5737` MUST NOT be used for `ClusterIP` or `loadBalancerIP` since address `198.51.100.0` is used for probing. ([#114669](https://github.com/kubernetes/kubernetes/pull/114669), [@uablrek](https://github.com/uablrek)) -- `kubeadm`: fixed a bug where the uploaded kubelet configuration in `kube-system/kubelet-config` `ConfigMap` does not respect user patch ([#115575](https://github.com/kubernetes/kubernetes/pull/115575), [@SataQiu](https://github.com/SataQiu)) -- `kubeadm`: now respects user provided `kubeconfig` during discovery process ([#113998](https://github.com/kubernetes/kubernetes/pull/113998), [@SataQiu](https://github.com/SataQiu)) -- `kubectl port-forward` now exits with exit code 1 when remote connection is - lost ([#114460](https://github.com/kubernetes/kubernetes/pull/114460), [@brianpursley](https://github.com/brianpursley)) -- `nodeName` being set along with non-empty `schedulingGates` is now enforced. ([#115569](https://github.com/kubernetes/kubernetes/pull/115569), [@Huang-Wei](https://github.com/Huang-Wei)) -- `node_stage_path` is now set whenever available for expansion during mount ([#115346](https://github.com/kubernetes/kubernetes/pull/115346), [@gnufied](https://github.com/gnufied)) -- `statefulset` status will now be consistent on API errors ([#113834](https://github.com/kubernetes/kubernetes/pull/113834), [@atiratree](https://github.com/atiratree)) -- `tryUnmount` now respects `mounter.withSafeNotMountedBehavior` ([#114736](https://github.com/kubernetes/kubernetes/pull/114736), [@andyzhangx](https://github.com/andyzhangx)) -- The encryption response from KMS v2 plugins is now validated earlier at DEK generation time instead of waiting until an encryption is performed. ([#116877](https://github.com/kubernetes/kubernetes/pull/116877), [@enj](https://github.com/enj)) [SIG API Machinery and Auth] -- Recreate DaemonSet pods completed with Succeeded phase ([#117073](https://github.com/kubernetes/kubernetes/pull/117073), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing] - - -### Other (Cleanup or Flake) - -- Added basic Denial Of Service prevention for the the node-local kubelet `podresource` API ([#116459](https://github.com/kubernetes/kubernetes/pull/116459), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] -- Callers of `wait.ExponentialBackoffWithContext` now must pass a `ConditionWithContextFunc` to be consistent with the signature and avoid creating a duplicate context. If your condition does not need a context you can use the `ConditionFunc.WithContext()` helper to ignore the context, or use `ExponentialBackoff` directly. ([#115113](https://github.com/kubernetes/kubernetes/pull/115113), [@smarterclayton](https://github.com/smarterclayton)) -- Changed docs for `--contention-profiling` flag to reflect it performed block profiling ([#114490](https://github.com/kubernetes/kubernetes/pull/114490), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) -- E2e framework: added `--report-complete-ginkgo` and `--report-complete-junit` parameters. They work like `ginkgo --json-report <report dir>/ginkgo/report.json --junit-report <report dir>/ginkgo/report.xml`. ([#115678](https://github.com/kubernetes/kubernetes/pull/115678), [@pohly](https://github.com/pohly)) [SIG Testing] -- Fixed incorrect log information in the `iptables` utility. ([#110723](https://github.com/kubernetes/kubernetes/pull/110723), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) -- Improved FormatMap: Improves performance by about 4x, or nearly 2x in the worst case ([#112661](https://github.com/kubernetes/kubernetes/pull/112661), [@aimuz](https://github.com/aimuz)) [SIG Node] -- Improved misleading message, in case of no metrics received for the `HPA` controlled pods. ([#114740](https://github.com/kubernetes/kubernetes/pull/114740), [@kushagra98](https://github.com/kushagra98)) -- Introduced new metrics removing the redundant subsystem in kube-apiserver pod logs metrics and deprecate the original ones: - - kube_apiserver_pod_logs_pods_logs_backend_tls_failure_total becomes kube_apiserver_pod_logs_backend_tls_failure_total - - kube_apiserver_pod_logs_pods_logs_insecure_backend_total becomes kube_apiserver_pod_logs_insecure_backend_total ([#114497](https://github.com/kubernetes/kubernetes/pull/114497), [@dgrisonnet](https://github.com/dgrisonnet)) -- Kubeadm: removed the deprecated `v1beta2` API. kubeadm 1.26's `config migrate` - command can be used to migrate a `v1beta2` configuration file to `v1beta3` ([#114540](https://github.com/kubernetes/kubernetes/pull/114540), [@pacoxu](https://github.com/pacoxu)) -- Kubelet: remove deprecated flag `--container-runtime` ([#114017](https://github.com/kubernetes/kubernetes/pull/114017), [@calvin0327](https://github.com/calvin0327)) [SIG Cloud Provider and Node] -- Kubelet: the deprecated `--master-service-namespace` flag is removed in v1.27 ([#116015](https://github.com/kubernetes/kubernetes/pull/116015), [@SataQiu](https://github.com/SataQiu)) -- Linux/arm will not ship in Kubernetes 1.27 as we are running into issues with building artifacts using golang 1.20.2 (please see issue #116492) ([#115742](https://github.com/kubernetes/kubernetes/pull/115742), [@dims](https://github.com/dims)) [SIG Architecture, Release and Testing] -- Migrated `pkg/controller/nodeipam/ipam/cloud_cidr_allocator.go, pkg/controller/nodeipam/ipam/multi_cidr_range_allocator.go pkg/controller/nodeipam/ipam/range_allocator.go pkg/controller/nodelifecycle/node_lifecycle_controller.go` to structured logging ([#112670](https://github.com/kubernetes/kubernetes/pull/112670), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) -- Migrated the Kubernetes object garbage collector (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113471](https://github.com/kubernetes/kubernetes/pull/113471), [@ncdc](https://github.com/ncdc)) -- Migrated the ttlafterfinished controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#115332](https://github.com/kubernetes/kubernetes/pull/115332), [@obaranov1](https://github.com/obaranov1)) [SIG Apps] -- Migrated the “sample-controller” controller to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113879](https://github.com/kubernetes/kubernetes/pull/113879), [@pchan](https://github.com/pchan)) [SIG API Machinery and Instrumentation] -- Promoted pod resource `limit/request` metrics to stable. ([#115454](https://github.com/kubernetes/kubernetes/pull/115454), [@dgrisonnet](https://github.com/dgrisonnet)) -- Removed AWS kubelet credential provider. Please use the external kubelet credential provider binary named `ecr-credential-provider` instead. ([#116329](https://github.com/kubernetes/kubernetes/pull/116329), [@dims](https://github.com/dims)) [SIG Node, Storage and Testing] -- Removed Azure disk in-tree storage plugin ([#116301](https://github.com/kubernetes/kubernetes/pull/116301), [@andyzhangx](https://github.com/andyzhangx)) -- Removed flag `master-service-namespace` from `api-server` arguments ([#114446](https://github.com/kubernetes/kubernetes/pull/114446), [@lengrongfu](https://github.com/lengrongfu)) -- Removed the following deprecated metrics: - - node_collector_evictions_number replaced by node_collector_evictions_total - - scheduler_e2e_scheduling_duration_seconds replaced by scheduler_scheduling_attempt_duration_seconds ([#115209](https://github.com/kubernetes/kubernetes/pull/115209), [@dgrisonnet](https://github.com/dgrisonnet)) -- Removed unused rule for `nodes/spec` from `ClusterRole` `system:kubelet-api-admin` ([#113267](https://github.com/kubernetes/kubernetes/pull/113267), [@hoskeri](https://github.com/hoskeri)) -- Renamed API server identity Lease labels to use the key `apiserver.kubernetes.io/identity` ([#114586](https://github.com/kubernetes/kubernetes/pull/114586), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery, Apps, Cloud Provider and Testing] -- Storage.k8s.io/v1beta1 API version of CSIStorageCapacity will no longer be served ([#116523](https://github.com/kubernetes/kubernetes/pull/116523), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery] -- The `CSIMigrationAzureFile` feature gate (for the feature which graduated to GA in v1.26) is now unconditionally enabled and will be removed in v1.28. ([#114953](https://github.com/kubernetes/kubernetes/pull/114953), [@enj](https://github.com/enj)) -- The `ControllerManagerLeaderMigration` feature, GA since `1.24`, is now unconditionally enabled and the feature gate option has been removed. ([#113534](https://github.com/kubernetes/kubernetes/pull/113534), [@pacoxu](https://github.com/pacoxu)) -- The `WaitFor` and `WaitForWithContext` functions in the wait package have now been marked private. Callers should use the equivalent `Poll*` method with a zero duration interval. ([#115116](https://github.com/kubernetes/kubernetes/pull/115116), [@smarterclayton](https://github.com/smarterclayton)) -- The `wait.Poll*` and `wait.ExponentialBackoff*` functions have been deprecated and will be removed in a future release. Callers should switch to using `wait.PollUntilContextCancel`, `wait.PollUntilContextTimeout`, or `wait.ExponentialBackoffWithContext` as appropriate. - - `PollWithContext(Cancel|Deadline)` will no longer return `ErrWaitTimeout` - use the `Interrupted(error) bool` helper to replace checks for `err == ErrWaitTimeout`, or compare specifically to context errors as needed. A future release will make the `ErrWaitTimeout` error private and callers must use `Interrupted()` instead. If you are returning `ErrWaitTimeout` from your own methods, switch to creating a location specific `cause err` and pass it to the new method `wait.ErrorInterrupted(cause) error` which will ensure `Interrupted()` returns true for your loop. - - The `wait.NewExponentialBackoffManager` and `wait.NewJitteringBackoffManager` functions have been marked as deprecated. Callers should switch to using the `Backoff{...}.DelayWithReset(clock, resetInterval)` method and must set the `Steps` field when using `Factor`. As a short term change, callers may use the `Timer()` method on the `BackoffManager` until the backoff managers are deprecated and removed. Please see the godoc of the deprecated functions for examples of how to replace usage of this function. ([#107826](https://github.com/kubernetes/kubernetes/pull/107826), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Auth, Cloud Provider, Storage and Testing] -- The feature gates `CSIInlineVolume`, `CSIMigration`, `DaemonSetUpdateSurge`, `EphemeralContainers`, `IdentifyPodOS`, `LocalStorageCapacityIsolation`, `NetworkPolicyEndPort` and `StatefulSetMinReadySeconds` that graduated to GA in v1.25 and were unconditionally enabled have been removed in v1.27 ([#114410](https://github.com/kubernetes/kubernetes/pull/114410), [@SataQiu](https://github.com/SataQiu)) [SIG Node] -- Upgraded `coredns` to `v1.10.1` ([#115603](https://github.com/kubernetes/kubernetes/pull/115603), [@pacoxu](https://github.com/pacoxu)) -- Upgraded `go-jose` to `v2.6.0` ([#115893](https://github.com/kubernetes/kubernetes/pull/115893), [@mgoltzsche](https://github.com/mgoltzsche)) -- [KCCM - service controller]: enabled connection draining for terminating pods upon node downscale by the cluster autoscaler. This is done by not reacting to the taint used by the cluster autoscaler to indicate that the node is going away soon, thus keeping the node referenced by the load balancer until the VM has been completely deleted. ([#115204](https://github.com/kubernetes/kubernetes/pull/115204), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) -- `apiserver_admission_webhook_admission_duration_seconds` buckets have been expanded, 25s is now the largest bucket size to match the webhook default timeout. ([#115802](https://github.com/kubernetes/kubernetes/pull/115802), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery and Instrumentation] -- `wait.ContextForChannel()` now implements the context.Context interface and +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- 'The `IPv6DualStack` feature gate for external cloud providers was removed. + (The feature became GA in 1.23 and the gate was removed for all other + components several releases ago.) If you were still manually + enabling it you must stop now.' ([#116255](https://github.com/kubernetes/kubernetes/pull/116255), [@danwinship](https://github.com/danwinship)) + - Give terminal phase correctly to all pods that will not be restarted. + + In particular, assign Failed phase to pods which are deleted while pending. Also, assign a terminal + phase (Succeeded or Failed, depending on the exit statuses of the pod containers) to pods which + are deleted while running. + + This fixes the issue for jobs using pod failure policy (with JobPodFailurePolicy and PodDisruptionConditions + feature gates enabled) that their pods could get stuck in the pending phase when deleted. + + Users who maintain controllers which relied on the fact that pods with RestartPolicy=Always + never enter the Succeeded phase may need to adapt their controllers. This is because as a consequence of + the change pods which use RestartPolicy=Always may end up in the Succeeded phase in two scenarios: pod + deletion and graceful node shutdown. ([#115331](https://github.com/kubernetes/kubernetes/pull/115331), [@mimowo](https://github.com/mimowo)) [SIG Cloud Provider, Node and Testing] + +## Changes by Kind + +### Deprecation + +- Added a [warning](https://k8s.io/blog/2020/09/03/warnings/) response when handling requests that set the deprecated `spec.externalID` field for a Node. ([#115944](https://github.com/kubernetes/kubernetes/pull/115944), [@SataQiu](https://github.com/SataQiu)) [SIG Node] +- Added warnings to the Services API. Kubernetes now warns for Services in the case of: + - IPv4 addresses with leading zeros + - IPv6 address in non-canonical format (RFC 5952) ([#114505](https://github.com/kubernetes/kubernetes/pull/114505), [@aojea](https://github.com/aojea)) +- Support for the alpha seccomp annotations `seccomp.security.alpha.kubernetes.io/pod` and `container.seccomp.security.alpha.kubernetes.io` were deprecated since v1.19, now have been completely removed. The seccomp fields are no longer auto-populated when pods with seccomp annotations are created. Pods should use the corresponding pod or container `securityContext.seccompProfile` field instead. ([#114947](https://github.com/kubernetes/kubernetes/pull/114947), [@saschagrunert](https://github.com/saschagrunert)) +- The `SecurityContextDeny` admission plugin is going deprecated and will be removed in future versions. ([#115879](https://github.com/kubernetes/kubernetes/pull/115879), [@mtardy](https://github.com/mtardy)) + +### API Change + +- A fix in the `resource.k8s.io/v1alpha1/ResourceClaim` API avoids harmless (?) ".status.reservedFor: element 0: associative list without keys has an element that's a map type" errors in the apiserver. Validation now rejects the incorrect reuse of the same UID in different entries. ([#115354](https://github.com/kubernetes/kubernetes/pull/115354), [@pohly](https://github.com/pohly)) +- A terminating pod on a node that is not caused by preemption no longer prevents `kube-scheduler` from preempting pods on that node + - Rename `PreemptionByKubeScheduler` to `PreemptionByScheduler` ([#114623](https://github.com/kubernetes/kubernetes/pull/114623), [@Huang-Wei](https://github.com/Huang-Wei)) +- API: resource.k8s.io/v1alpha1.PodScheduling was renamed to resource.k8s.io/v1alpha2.PodSchedulingContext. ([#116556](https://github.com/kubernetes/kubernetes/pull/116556), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Node, Scheduling and Testing] +- Added CEL runtime cost calculation into ValidatingAdmissionPolicy, matching the evaluation cost + restrictions that already apply to CustomResourceDefinition. + If rule evaluation uses more compute than the limit, the API server aborts the evaluation and the + admission check that was being performed is aborted; the `failurePolicy` for the ValidatingAdmissionPolicy + determines the outcome. ([#115747](https://github.com/kubernetes/kubernetes/pull/115747), [@cici37](https://github.com/cici37)) +- Added `auditAnnotations` to `ValidatingAdmissionPolicy`, enabling CEL to be used to add audit annotations to request audit events. + Added `validationActions` to `ValidatingAdmissionPolicyBinding`, enabling validation failures to be handled by any combination of the warn, audit and deny enforcement actions. ([#115973](https://github.com/kubernetes/kubernetes/pull/115973), [@jpbetz](https://github.com/jpbetz)) +- Added `messageExpression` field to `ValidationRule`. ([#115969](https://github.com/kubernetes/kubernetes/pull/115969), [@DangerOnTheRanger](https://github.com/DangerOnTheRanger)) +- Added `messageExpression` to `ValidatingAdmissionPolicy`, to set custom failure message via CEL expression. ([#116397](https://github.com/kubernetes/kubernetes/pull/116397), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery] +- Added a new IPAddress object kind + - Added a new ClusterIP allocator. The new allocator removes previous Service CIDR block size limitations for IPv4, and limits IPv6 size to a /64 ([#115075](https://github.com/kubernetes/kubernetes/pull/115075), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Auth, CLI, Cluster Lifecycle, Network and Testing] +- Added a new alpha API: ClusterTrustBundle (`certificates.k8s.io/v1alpha1`). + A ClusterTrustBundle may be used to distribute [X.509](https://www.itu.int/rec/T-REC-X.509) trust anchors to workloads within the cluster. ([#113218](https://github.com/kubernetes/kubernetes/pull/113218), [@ahmedtd](https://github.com/ahmedtd)) [SIG API Machinery, Auth and Testing] +- Added authorization check support to the CEL expressions of ValidatingAdmissionPolicy via a `authorizer` + variable with expressions. The new variable provides a builder that allows expressions such `authorizer.group('').resource('pods').check('create').allowed()`. ([#116054](https://github.com/kubernetes/kubernetes/pull/116054), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing] +- Added matchConditions field to ValidatingAdmissionPolicy and enabled support for CEL based custom match criteria. ([#116350](https://github.com/kubernetes/kubernetes/pull/116350), [@maxsmythe](https://github.com/maxsmythe)) +- Added new option to the `InterPodAffinity` scheduler plugin to ignore existing + pods` preferred inter-pod affinities if the incoming pod has no preferred inter-pod + affinities. This option can be used as an optimization for higher scheduling throughput + (at the cost of an occasional pod being scheduled non-optimally/violating existing + pods preferred inter-pod affinities). To enable this scheduler option, set the + `InterPodAffinity` scheduler plugin arg `ignorePreferredTermsOfExistingPods: true` ([#114393](https://github.com/kubernetes/kubernetes/pull/114393), [@danielvegamyhre](https://github.com/danielvegamyhre)) +- Added the `MatchConditions` field to `ValidatingWebhookConfiguration` and `MutatingWebhookConfiguration` for the v1beta and v1 apis. + + The `AdmissionWebhookMatchConditions` featuregate is now in Alpha ([#116261](https://github.com/kubernetes/kubernetes/pull/116261), [@ivelichkovich](https://github.com/ivelichkovich)) [SIG API Machinery and Testing] +- Added validation to ensure that if `service.kubernetes.io/topology-aware-hints` and `service.kubernetes.io/topology-mode` annotations are both set, they are set to the same value.Also Added deprecation warning if `service.kubernetes.io/topology-aware-hints` annotation is used. ([#116612](https://github.com/kubernetes/kubernetes/pull/116612), [@robscott](https://github.com/robscott)) +- Added warnings about workload resources (Pods, ReplicaSets, Deployments, Jobs, CronJobs, or ReplicationControllers) whose names are not valid DNS labels. ([#114412](https://github.com/kubernetes/kubernetes/pull/114412), [@thockin](https://github.com/thockin)) +- Adds feature gate `NodeLogQuery` which provides cluster administrators with a streaming view of logs using kubectl without them having to implement a client side reader or logging into the node. ([#96120](https://github.com/kubernetes/kubernetes/pull/96120), [@LorbusChris](https://github.com/LorbusChris)) +- Api: validation of a `PodSpec` now rejects invalid `ResourceClaim` and `ResourceClaimTemplate` names. For a pod, the name generated for the `ResourceClaim` when using a template also must be valid. ([#116576](https://github.com/kubernetes/kubernetes/pull/116576), [@pohly](https://github.com/pohly)) +- Bump default API QPS limits for Kubelet. ([#116121](https://github.com/kubernetes/kubernetes/pull/116121), [@wojtek-t](https://github.com/wojtek-t)) +- Enabled the `StatefulSetStartOrdinal` feature gate in beta ([#115260](https://github.com/kubernetes/kubernetes/pull/115260), [@pwschuurman](https://github.com/pwschuurman)) +- Enabled usage of `kube-proxy`, `kube-scheduler` and `kubelet` HTTP APIs for changing the logging + verbosity at runtime for JSON output. ([#114609](https://github.com/kubernetes/kubernetes/pull/114609), [@pohly](https://github.com/pohly)) +- Encryption of API Server at rest configuration now allows the use of wildcards in the list of resources. For example, *.* can be used to encrypt all resources, including all current and future custom resources. ([#115149](https://github.com/kubernetes/kubernetes/pull/115149), [@nilekhc](https://github.com/nilekhc)) +- Extended the kubelet's PodResources API to include resources allocated in `ResourceClaims` via `DynamicResourceAllocation`. Additionally, added a new `Get()` method to query a specific pod for its resources. ([#115847](https://github.com/kubernetes/kubernetes/pull/115847), [@moshe010](https://github.com/moshe010)) [SIG Node] +- Forbid to set matchLabelKeys when labelSelector is not set in topologySpreadConstraints ([#116535](https://github.com/kubernetes/kubernetes/pull/116535), [@denkensk](https://github.com/denkensk)) +- GCE does not support LoadBalancer Services with ports with different protocols (TCP and UDP) ([#115966](https://github.com/kubernetes/kubernetes/pull/115966), [@aojea](https://github.com/aojea)) [SIG Apps and Cloud Provider] +- GRPC probes are now a GA feature. `GRPCContainerProbe` feature gate was locked to default value and will be removed in v1.29. If you were setting this feature gate explicitly, please remove it now. ([#116233](https://github.com/kubernetes/kubernetes/pull/116233), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) +- Graduated `Kubelet Topology Manager` to GA. ([#116093](https://github.com/kubernetes/kubernetes/pull/116093), [@swatisehgal](https://github.com/swatisehgal)) +- Graduated `KubeletTracing` to beta, which means that the feature gate is now enabled by default. ([#115750](https://github.com/kubernetes/kubernetes/pull/115750), [@saschagrunert](https://github.com/saschagrunert)) +- Graduated seccomp profile defaulting to GA. + + Set the kubelet `--seccomp-default` flag or `seccompDefault` kubelet configuration field to `true` to make pods on that node default to using the `RuntimeDefault` seccomp profile. + + Enabling seccomp for your workload can have a negative performance impact depending on the kernel and container runtime version in use. + + Guidance for identifying and mitigating those issues is outlined in the Kubernetes [seccomp tutorial](https://k8s.io/docs/tutorials/security/seccomp). ([#115719](https://github.com/kubernetes/kubernetes/pull/115719), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Node, Storage and Testing] +- Graduated the container resource metrics feature on `HPA` to beta. ([#116046](https://github.com/kubernetes/kubernetes/pull/116046), [@sanposhiho](https://github.com/sanposhiho)) +- Implemented API streaming for the `watch-cache` + + When `sendInitialEvents` `ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic "Bookmark" after which the server continues streaming events. ([#110960](https://github.com/kubernetes/kubernetes/pull/110960), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Introduced API for streaming. + + Added `SendInitialEvents` field to the `ListOptions`. When the new option is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic "Bookmark" after which the server continues streaming events. ([#115402](https://github.com/kubernetes/kubernetes/pull/115402), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Introduced a breaking change to the `resource.k8s.io` API in its `AllocationResult` struct. This change allows a kubelet plugin for the `DynamicResourceAllocation` feature to service allocations from multiple resource driver controllers. ([#116332](https://github.com/kubernetes/kubernetes/pull/116332), [@klueska](https://github.com/klueska)) +- Introduces new alpha functionality to the reflector, allowing user to enable API streaming. + + To activate this feature, users can set the `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environmental variable. + It is important to note that the server must support streaming for this feature to function properly. + If streaming is not supported by the server, the reflector will revert to the previous method + of obtaining data through LIST/WATCH semantics. ([#110772](https://github.com/kubernetes/kubernetes/pull/110772), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] +- K8s.io/client-go/tools/record.EventBroadcaster: after Shutdown() is called, the broadcaster now gives up immediately after a failure to write an event to a sink. Previously it tried multiple times for 12 seconds in a goroutine. ([#115514](https://github.com/kubernetes/kubernetes/pull/115514), [@pohly](https://github.com/pohly)) [SIG API Machinery] +- K8s.io/component-base/logs: usage of the pflag values in a normal Go flag set led to panics when printing the help message ([#114680](https://github.com/kubernetes/kubernetes/pull/114680), [@pohly](https://github.com/pohly)) [SIG Instrumentation] +- Kubeadm: explicitly set `priority` for static pods with `priorityClassName: system-node-critical` ([#114338](https://github.com/kubernetes/kubernetes/pull/114338), [@champtar](https://github.com/champtar)) [SIG Cluster Lifecycle] +- Kubelet: a "maxParallelImagePulls" field can now be specified in the kubelet configuration file to control how many image pulls the kubelet can perform in parallel. ([#115220](https://github.com/kubernetes/kubernetes/pull/115220), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) [SIG API Machinery, Node and Scalability] +- Kubelet: changed `MemoryThrottlingFactor` default value to `0.9` and formulas to calculate `memory.high` ([#115371](https://github.com/kubernetes/kubernetes/pull/115371), [@pacoxu](https://github.com/pacoxu)) +- Kubernetes components that perform leader election now only support using `Leases` for this. ([#114055](https://github.com/kubernetes/kubernetes/pull/114055), [@aimuz](https://github.com/aimuz)) +- Migrated the `DaemonSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) ([#113622](https://github.com/kubernetes/kubernetes/pull/113622), [@249043822](https://github.com/249043822)) +- New `service.kubernetes.io/topology-mode` annotation has been introduced as a replacement for the `service.kubernetes.io/topology-aware-hints` annotation. + - `service.kubernetes.io/topology-aware-hints` annotation has been deprecated. + - kube-proxy now accepts any value that is not "disabled" for these annotations, enabling custom implementation-specific and/or future built-in heuristics to be used. ([#116522](https://github.com/kubernetes/kubernetes/pull/116522), [@robscott](https://github.com/robscott)) [SIG Apps, Network and Testing] +- Pods owned by a Job now uses the labels `batch.kubernetes.io/job-name` and `batch.kubernetes.io/controller-uid`. + The legacy labels `job-name` and `controller-uid` are still added for compatibility. ([#114930](https://github.com/kubernetes/kubernetes/pull/114930), [@kannon92](https://github.com/kannon92)) +- Promoted `CronJobTimeZone` feature to GA ([#115904](https://github.com/kubernetes/kubernetes/pull/115904), [@soltysh](https://github.com/soltysh)) +- Promoted `SelfSubjectReview` to Beta ([#116274](https://github.com/kubernetes/kubernetes/pull/116274), [@nabokihms](https://github.com/nabokihms)) [SIG API Machinery, Auth, CLI and Testing] +- Relaxed API validation to allow pod node selector to be mutable for gated pods (additions only, no deletions or mutations). ([#116161](https://github.com/kubernetes/kubernetes/pull/116161), [@danielvegamyhre](https://github.com/danielvegamyhre)) +- Remove `kubernetes.io/grpc` standard appProtocol ([#116866](https://github.com/kubernetes/kubernetes/pull/116866), [@LiorLieberman](https://github.com/LiorLieberman)) [SIG API Machinery and Apps] +- Remove deprecated `--enable-taint-manager` and `--pod-eviction-timeout` CLI ([#115840](https://github.com/kubernetes/kubernetes/pull/115840), [@atosatto](https://github.com/atosatto)) +- Removed support for the `v1alpha1` kubeletplugin API of `DynamicResourceManagement`. All plugins must be updated to `v1alpha2` in order to function properly. ([#116558](https://github.com/kubernetes/kubernetes/pull/116558), [@klueska](https://github.com/klueska)) +- The API server now re-uses data encryption keys while the kms v2 plugin key ID is stable. Data encryption keys are still randomly generated on server start but an atomic counter is used to prevent nonce collisions. ([#116155](https://github.com/kubernetes/kubernetes/pull/116155), [@enj](https://github.com/enj)) +- The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to beta and is enabled by default. On servers with the feature enabled, this field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted. ([#115363](https://github.com/kubernetes/kubernetes/pull/115363), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) [SIG Apps, Auth and Node] +- The `DownwardAPIHugePages` kubelet feature graduated to stable / GA. ([#115721](https://github.com/kubernetes/kubernetes/pull/115721), [@saschagrunert](https://github.com/saschagrunert)) [SIG Apps and Node] +- The following feature gates for volume expansion GA features have now been removed and must no longer be referenced in `--feature-gates` flags: `ExpandCSIVolumes`, `ExpandInUsePersistentVolumes`, `ExpandPersistentVolumes` ([#113942](https://github.com/kubernetes/kubernetes/pull/113942), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- The list-type of the alpha `resourceClaims` field introduced to `Pods` in `1.26.0` was modified from `set` to `map`, resolving an incompatibility with use of this schema in `CustomResourceDefinitions` and with server-side apply. ([#114585](https://github.com/kubernetes/kubernetes/pull/114585), [@JoelSpeed](https://github.com/JoelSpeed)) +- Updated API reference for Requests, specifying they must not exceed limits ([#115434](https://github.com/kubernetes/kubernetes/pull/115434), [@ehashman](https://github.com/ehashman)) +- Updated `KMSv2` to beta ([#115123](https://github.com/kubernetes/kubernetes/pull/115123), [@aramase](https://github.com/aramase)) +- Updated: Redefine AppProtocol field description and add new standard values ([#115433](https://github.com/kubernetes/kubernetes/pull/115433), [@LiorLieberman](https://github.com/LiorLieberman)) [SIG API Machinery, Apps and Network] +- `/metrics/slis` is now available for control plane components allowing you to scrape health check metrics. ([#114997](https://github.com/kubernetes/kubernetes/pull/114997), [@Richabanker](https://github.com/Richabanker)) +- `APIServerTracing` feature gate is now enabled by default. Tracing in the API + Server is still disabled by default, and requires a config file to enable. ([#116144](https://github.com/kubernetes/kubernetes/pull/116144), [@dashpole](https://github.com/dashpole)) +- `NodeResourceFit` and `NodeResourcesBalancedAllocation` implement the `PreScore` + extension point for a more performant calculation. ([#115655](https://github.com/kubernetes/kubernetes/pull/115655), [@tangwz](https://github.com/tangwz)) +- `PodSchedulingReadiness` is graduated to beta. ([#115815](https://github.com/kubernetes/kubernetes/pull/115815), [@Huang-Wei](https://github.com/Huang-Wei)) +- `PodSpec.Container.Resources` became mutable for CPU and memory resource types. + - `PodSpec.Container.ResizePolicy` (new object) gives users control over how their containers are resized. + - `PodStatus.Resize` status describes the state of a requested Pod resize. + - `PodStatus.ResourcesAllocated` describes node resources allocated to Pod. + - `PodStatus.Resources` describes node resources applied to running containers by CRI. + - `UpdateContainerResources` CRI API now supports both Linux and Windows. ([#102884](https://github.com/kubernetes/kubernetes/pull/102884), [@vinaykul](https://github.com/vinaykul)) +- `SELinuxMountReadWriteOncePod` graduated to Beta. ([#116425](https://github.com/kubernetes/kubernetes/pull/116425), [@jsafrane](https://github.com/jsafrane)) +- `StatefulSetAutoDeletePVC` feature gate promoted to beta. ([#116501](https://github.com/kubernetes/kubernetes/pull/116501), [@mattcary](https://github.com/mattcary)) +- `StatefulSet` names must be DNS labels, rather than subdomains. Any `StatefulSet` + which took advantage of subdomain validation (by having dots in the name) can't + possibly have worked, because we eventually set `pod.spec.hostname` from the `StatefulSetName`, + and that is validated as a DNS label. ([#114172](https://github.com/kubernetes/kubernetes/pull/114172), [@thockin](https://github.com/thockin)) +- `ValidatingAdmissionPolicy` now provides a status field that contains results of type checking the validation expression. + The type checking is fully informational, and the behavior of the policy is unchanged. ([#115668](https://github.com/kubernetes/kubernetes/pull/115668), [@jiahuif](https://github.com/jiahuif)) +- `cacheSize` field in `EncryptionConfiguration` is not supported for KMSv2 provider ([#113121](https://github.com/kubernetes/kubernetes/pull/113121), [@aramase](https://github.com/aramase)) +- `k8s.io/component-base/logs` now also supports adding command line flags to a `flag.FlagSet`. ([#114731](https://github.com/kubernetes/kubernetes/pull/114731), [@pohly](https://github.com/pohly)) +- `kubelet`: migrated `--container-runtime-endpoint` and `--image-service-endpoint` + to kubelet config ([#112136](https://github.com/kubernetes/kubernetes/pull/112136), [@pacoxu](https://github.com/pacoxu)) +- `resource.k8s.io/v1alpha1` was replaced with `resource.k8s.io/v1alpha2`. Before + upgrading a cluster, all objects in resource.k8s.io/v1alpha1 (ResourceClaim, ResourceClaimTemplate, + ResourceClass, PodScheduling) must be deleted. The changes are internal, so + YAML files which create pods and resource claims don't need changes except for + the newer `apiVersion`. ([#116299](https://github.com/kubernetes/kubernetes/pull/116299), [@pohly](https://github.com/pohly)) +- `volumes`: `resource.claims` is now cleared for PVC specs during create or update of a pod spec with inline PVC template or of a PVC because it has no effect. ([#115928](https://github.com/kubernetes/kubernetes/pull/115928), [@pohly](https://github.com/pohly)) + +### Feature + +- A new client side metric `rest_client_request_retries_total` has been added that tracks the number of retries sent to the server, partitioned by status code, verb and host ([#108396](https://github.com/kubernetes/kubernetes/pull/108396), [@tkashem](https://github.com/tkashem)) +- A new feature was enabled to improve the performance of the iptables mode of `kube-proxy` in large clusters. No action was required, however: + + 1. If you experienced problems with Services not syncing to iptables correctly, you can disable the feature by passing `--feature-gates=MinimizeIPTablesRestore=false` to kube-proxy (and file a bug if this fixes it). (This might also be detected by seeing the value of kube-proxy's `sync_proxy_rules_iptables_partial_restore_failures_total` metric rising.) + 2. If you were previously overriding the kube-proxy configuration for performance reasons, this may no longer be necessary. See https://kubernetes.io/docs/reference/networking/virtual-ips/#optimizing-iptables-mode-performance. ([#115138](https://github.com/kubernetes/kubernetes/pull/115138), [@danwinship](https://github.com/danwinship)) +- API validation relaxed allowing Indexed Jobs to be scaled up/down by changing parallelism and completions in tandem, such that parallelism == completions. ([#115236](https://github.com/kubernetes/kubernetes/pull/115236), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps and Testing] +- Added "general", "baseline", and "restricted" debugging profiles for kubectl debug. ([#114280](https://github.com/kubernetes/kubernetes/pull/114280), [@sding3](https://github.com/sding3)) [SIG CLI] +- Added "netadmin" debugging profiles for kubectl debug. ([#115712](https://github.com/kubernetes/kubernetes/pull/115712), [@wedaly](https://github.com/wedaly)) [SIG CLI] +- Added `--output plaintext-openapiv2` argument to kubectl explain to use old openapiv2 `explain` implementation. ([#115480](https://github.com/kubernetes/kubernetes/pull/115480), [@alexzielenski](https://github.com/alexzielenski)) +- Added `NewVolumeManagerReconstruction` feature gate and enabled it by default to enable updated discovery of mounted volumes during kubelet startup. Please watch for kubelet getting stuck at startup and / or not unmounting volumes from deleted Pods and report any issues in this area. ([#115268](https://github.com/kubernetes/kubernetes/pull/115268), [@jsafrane](https://github.com/jsafrane)) +- Added `kubelet` Topology Manager metrics to track admission requests processed and occured admission errors. ([#115137](https://github.com/kubernetes/kubernetes/pull/115137), [@swatisehgal](https://github.com/swatisehgal)) +- Added apiserver_envelope_encryption_invalid_key_id_from_status_total to measure number of times an invalid keyID is returned by the Status RPC call. ([#115846](https://github.com/kubernetes/kubernetes/pull/115846), [@ritazh](https://github.com/ritazh)) [SIG API Machinery and Auth] +- Added apiserver_envelope_encryption_kms_operations_latency_seconds metric to measure the KMSv2 grpc calls latency. ([#115649](https://github.com/kubernetes/kubernetes/pull/115649), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] +- Added e2e test to node expand volume with secret ([#115451](https://github.com/kubernetes/kubernetes/pull/115451), [@zhucan](https://github.com/zhucan)) +- Added e2e tests for kubectl `--subresource` for beta graduation ([#116590](https://github.com/kubernetes/kubernetes/pull/116590), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) +- Added kubelet Topology Manager metric to measure topology manager admission latency. ([#115590](https://github.com/kubernetes/kubernetes/pull/115590), [@swatisehgal](https://github.com/swatisehgal)) +- Added logging-format option to CCMs based on `k8s.io/cloud-provider` ([#108984](https://github.com/kubernetes/kubernetes/pull/108984), [@LittleFox94](https://github.com/LittleFox94)) +- Added metrics for volume reconstruction during kubelet startup. ([#115965](https://github.com/kubernetes/kubernetes/pull/115965), [@jsafrane](https://github.com/jsafrane)) [SIG Node and Storage] +- Added new -f flag into debug command to be used passing pod or node files instead explicit names. ([#111453](https://github.com/kubernetes/kubernetes/pull/111453), [@ardaguclu](https://github.com/ardaguclu)) +- Added new feature gate `ServiceNodePortStaticSubrange`, to enable the new strategy in the `NodePort` Service port allocators, so the node port range is subdivided and dynamic allocated `NodePort` port for Services are allocated preferentially from the upper range. ([#114418](https://github.com/kubernetes/kubernetes/pull/114418), [@xuzhenglun](https://github.com/xuzhenglun)) +- Added scheduler preemption support for pods using `ReadWriteOncePod` PVCs ([#114051](https://github.com/kubernetes/kubernetes/pull/114051), [@chrishenzie](https://github.com/chrishenzie)) +- Added the `applyconfiguration` generator to the code-generator script that generates server-side apply configuration and client APIs ([#114987](https://github.com/kubernetes/kubernetes/pull/114987), [@astefanutti](https://github.com/astefanutti)) +- Added the ability to host webhooks in the cloud controller manager. ([#108838](https://github.com/kubernetes/kubernetes/pull/108838), [@nckturner](https://github.com/nckturner)) +- Apiserver_storage_transformation_operations_total metric has been updated to include labels transformer_prefix and status. ([#115394](https://github.com/kubernetes/kubernetes/pull/115394), [@ritazh](https://github.com/ritazh)) [SIG API Machinery, Auth, Instrumentation and Testing] +- By enabling the `UserNamespacesStatelessPodsSupport` feature gate in kubelet, you can now run a stateless pod in a separate user namespace ([#116377](https://github.com/kubernetes/kubernetes/pull/116377), [@giuseppe](https://github.com/giuseppe)) [SIG Apps, Node and Storage] +- By enabling the alpha `CloudNodeIPs` feature gate in kubelet and the cloud + provider, you can now specify a dual-stack `--node-ip` value (when using an + external cloud provider that supports that functionality). ([#116305](https://github.com/kubernetes/kubernetes/pull/116305), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Cloud Provider, Network and Node] +- Changed kubectl `--subresource` flag to beta ([#116595](https://github.com/kubernetes/kubernetes/pull/116595), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) +- Changed metrics for aggregated discovery to publish new time series (alpha). ([#115630](https://github.com/kubernetes/kubernetes/pull/115630), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery and Testing] +- Dynamic Resource Allocation framework can be used for network devices ([#114364](https://github.com/kubernetes/kubernetes/pull/114364), [@bart0sh](https://github.com/bart0sh)) [SIG Node] +- Enable external plugins can be used as subcommands for kubectl create command if subcommand does not exist as builtin only when KUBECTL_ENABLE_CMD_SHADOW environment variable is exported. ([#116293](https://github.com/kubernetes/kubernetes/pull/116293), [@ardaguclu](https://github.com/ardaguclu)) +- GRPC probes now set a linger option of 1s to improve the TIME-WAIT state. ([#115321](https://github.com/kubernetes/kubernetes/pull/115321), [@rphillips](https://github.com/rphillips)) [SIG Network and Node] +- Graduated CRI Events driven Pod LifeCycle Event Generator (Evented PLEG) to Beta ([#115967](https://github.com/kubernetes/kubernetes/pull/115967), [@harche](https://github.com/harche)) +- Graduated `matchLabelKeys` in `podTopologySpread` to Beta ([#116291](https://github.com/kubernetes/kubernetes/pull/116291), [@denkensk](https://github.com/denkensk)) +- Graduated the `CSINodeExpandSecret` feature to Beta. This feature facilitates passing secrets to CSI driver as part of Node Expansion CSI operation. ([#115621](https://github.com/kubernetes/kubernetes/pull/115621), [@humblec](https://github.com/humblec)) +- Graduated the `LegacyServiceAccountTokenTracking` feature gate to Beta. The usage of auto-generated secret-based service account token now produces warnings by default, and relevant Secrets are labeled with a last-used timestamp (label key `kubernetes.io/legacy-token-last-used`). ([#114523](https://github.com/kubernetes/kubernetes/pull/114523), [@zshihang](https://github.com/zshihang)) [SIG API Machinery and Auth] +- HPA controller exposes the following metrics from the kube-controller-manager. + - `metric_computation_duration_seconds`: Number of metric computations. + - `metric_computation_total`: The time(seconds) that the HPA controller takes to calculate one metric. ([#116326](https://github.com/kubernetes/kubernetes/pull/116326), [@sanposhiho](https://github.com/sanposhiho)) [SIG Apps, Autoscaling and Instrumentation] +- HPA controller starts to expose metrics from the kube-controller-manager.\n- `reconciliations_total`: Number of reconciliation of HPA controller. \n- `reconciliation_duration_seconds`: The time(seconds) that the HPA controller takes to reconcile once. ([#116010](https://github.com/kubernetes/kubernetes/pull/116010), [@sanposhiho](https://github.com/sanposhiho)) +- Kube-up now includes `CoreDNS` version `v1.9.3` ([#114279](https://github.com/kubernetes/kubernetes/pull/114279), [@pacoxu](https://github.com/pacoxu)) +- Kubeadm: added the experimental (alpha) feature gate `EtcdLearnerMode` that allows etcd members to be joined as learner and only then promoted as voting members ([#113318](https://github.com/kubernetes/kubernetes/pull/113318), [@pacoxu](https://github.com/pacoxu)) +- Kubectl will now display `SeccompProfile` for pods, containers and ephemeral containers, if values were set. ([#113284](https://github.com/kubernetes/kubernetes/pull/113284), [@williamyeh](https://github.com/williamyeh)) +- Kubectl: added e2e test for default container annotation ([#115046](https://github.com/kubernetes/kubernetes/pull/115046), [@pacoxu](https://github.com/pacoxu)) +- Kubelet TCP and HTTP probes are now more effective using networking resources: + conntrack entries, sockets. This is achieved by reducing the `TIME-WAIT` state + of the connection to 1 second, instead of the defaults 60 seconds. This allows + kubelet to free the socket, and free conntrack entry and ephemeral port associated. ([#115143](https://github.com/kubernetes/kubernetes/pull/115143), [@aojea](https://github.com/aojea)) +- Kubelet allows pods to use the `net.ipv4.ip_local_reserved_ports` sysctl by default and the minimal kernel version is 3.16; Pod Security admission allows this sysctl in v1.27+ versions of the baseline and restricted policies. ([#115374](https://github.com/kubernetes/kubernetes/pull/115374), [@pacoxu](https://github.com/pacoxu)) [SIG Auth, Network and Node] +- Kubelet config file will be backed up to `/etc/kubernetes/tmp/` folder with `kubeadm-kubelet-config` append with a random suffix as the filename ([#114695](https://github.com/kubernetes/kubernetes/pull/114695), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle] +- Kubernetes is now built with Go `1.19.5` ([#115010](https://github.com/kubernetes/kubernetes/pull/115010), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with go 1.20 ([#114502](https://github.com/kubernetes/kubernetes/pull/114502), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- Kubernetes is now built with go 1.20.1 ([#115828](https://github.com/kubernetes/kubernetes/pull/115828), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- Kubernetes is now built with go 1.20.2 ([#116404](https://github.com/kubernetes/kubernetes/pull/116404), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- Locked `CSIMigrationvSphere` feature gate. ([#116610](https://github.com/kubernetes/kubernetes/pull/116610), [@xing-yang](https://github.com/xing-yang)) +- Made `apiextensions-apiserver` binary linking static (also affects the deb and rpm packages). ([#114226](https://github.com/kubernetes/kubernetes/pull/114226), [@saschagrunert](https://github.com/saschagrunert)) +- Made `kube-aggregator` binary linking static (also affects the deb and rpm packages). ([#114227](https://github.com/kubernetes/kubernetes/pull/114227), [@saschagrunert](https://github.com/saschagrunert)) +- Made `kubectl-convert` binary linking static (also affects the deb and rpm packages). ([#114228](https://github.com/kubernetes/kubernetes/pull/114228), [@saschagrunert](https://github.com/saschagrunert)) +- Migrated controller helper functions to use contextual logging. ([#115049](https://github.com/kubernetes/kubernetes/pull/115049), [@fatsheep9146](https://github.com/fatsheep9146)) +- Migrated the ResourceQuota controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113315](https://github.com/kubernetes/kubernetes/pull/113315), [@ncdc](https://github.com/ncdc)) [SIG API Machinery, Apps and Testing] +- Migrated the StatefulSet controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) ([#113840](https://github.com/kubernetes/kubernetes/pull/113840), [@249043822](https://github.com/249043822)) +- Migrated the `ClusterRole` aggregation controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113910](https://github.com/kubernetes/kubernetes/pull/113910), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Migrated the `Deployment` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) ([#113525](https://github.com/kubernetes/kubernetes/pull/113525), [@249043822](https://github.com/249043822)) +- Migrated the `ReplicaSet` controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#114871](https://github.com/kubernetes/kubernetes/pull/114871), [@Namanl2001](https://github.com/Namanl2001)) +- Migrated the bootstrap signer controller and the token cleaner controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113464](https://github.com/kubernetes/kubernetes/pull/113464), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Apps and Instrumentation] +- Migrated the defaultbinder scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116571](https://github.com/kubernetes/kubernetes/pull/116571), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling] +- Migrated the main kube-controller-manager binary to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116529](https://github.com/kubernetes/kubernetes/pull/116529), [@pohly](https://github.com/pohly)) +- Migrated the namespace controller (within `kube-controller-manager`) to support [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113443](https://github.com/kubernetes/kubernetes/pull/113443), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) +- Migrated the service-account controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#114918](https://github.com/kubernetes/kubernetes/pull/114918), [@Namanl2001](https://github.com/Namanl2001)) [SIG API Machinery, Apps, Auth, Instrumentation and Testing] +- Migrated the volume attach/detach controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). + Migrated the `PersistentVolumeClaim` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). + Migrated the `PersistentVolume` protection controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113584](https://github.com/kubernetes/kubernetes/pull/113584), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) +- Migrated the “TTL after finished” controller (within `kube-controller-manager`)to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113916](https://github.com/kubernetes/kubernetes/pull/113916), [@songxiao-wang87](https://github.com/songxiao-wang87)) +- NONE ([#113428](https://github.com/kubernetes/kubernetes/pull/113428), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- New plugin_evaluation_total is added to the scheduler.This metric counts how many times the specific plugin affects the scheduling result. The metric does not get incremented when the plugin has nothing to do with an incoming Pod. ([#115082](https://github.com/kubernetes/kubernetes/pull/115082), [@sanposhiho](https://github.com/sanposhiho)) +- Node `ipam` controller now exposes metrics `cidrset_cidrs_max_total` and `multicidrset_cidrs_max_total` with information about the max number of CIDRs that can be allocated. ([#112260](https://github.com/kubernetes/kubernetes/pull/112260), [@aryan9600](https://github.com/aryan9600)) +- Performance improvements in `klog` ([#115277](https://github.com/kubernetes/kubernetes/pull/115277), [@pohly](https://github.com/pohly)) +- Pod template `schedulingGates` are now mutable for Jobs that are suspended and have never been started ([#115940](https://github.com/kubernetes/kubernetes/pull/115940), [@ahg-g](https://github.com/ahg-g)) [SIG Apps] +- Pods which have an invalid negative `spec.terminationGracePeriodSeconds` value will now be treated as having a `terminationGracePeriodSeconds` of `1` ([#115606](https://github.com/kubernetes/kubernetes/pull/115606), [@wzshiming](https://github.com/wzshiming)) +- Profiling can now be served on a unix-domain socket by using the `--profiling-path` option (when profiling is enabled) for security purposes. ([#114191](https://github.com/kubernetes/kubernetes/pull/114191), [@apelisse](https://github.com/apelisse)) [SIG API Machinery] +- Promote aggregated discovery endpoint to beta and it will be enabled by default ([#116108](https://github.com/kubernetes/kubernetes/pull/116108), [@Jefftree](https://github.com/Jefftree)) +- Promoted `OpenAPIV3` to GA ([#116235](https://github.com/kubernetes/kubernetes/pull/116235), [@Jefftree](https://github.com/Jefftree)) +- Promoted `whoami` kubectl command. ([#116510](https://github.com/kubernetes/kubernetes/pull/116510), [@nabokihms](https://github.com/nabokihms)) +- Scheduler no longer runs the plugin's `Filter` method when its `PreFilter` method returned a Skip status. + In other words, your `PreFilter`/`Filter` plugin can return a Skip status in `PreFilter` if the plugin does nothing in Filter for that Pod. + Scheduler skips `NodeAffinity` Filter plugin when `NodeAffinity` Filter plugin has nothing to do with a Pod. + It may affect some metrics values related to the `NodeAffinity` Filter plugin. ([#114125](https://github.com/kubernetes/kubernetes/pull/114125), [@sanposhiho](https://github.com/sanposhiho)) +- Scheduler now skips `InterPodAffinity` Filter plugin when `InterPodAffinity` Filter plugin has nothing to do with a Pod. + It may affect some metrics values related to the `InterPodAffinity` Filter plugin. ([#114889](https://github.com/kubernetes/kubernetes/pull/114889), [@sanposhiho](https://github.com/sanposhiho)) +- Scheduler volumebinding: leveraged `PreFilterResult` to reduce down to only + eligible node(s) for pod with bound claim(s) to local `PersistentVolume(s)` ([#109877](https://github.com/kubernetes/kubernetes/pull/109877), [@yibozhuang](https://github.com/yibozhuang)) +- Scheduling cycle now terminates immediately when any scheduler plugin returns an + `unschedulableAndUnresolvable` status in `PostFilter`. ([#114699](https://github.com/kubernetes/kubernetes/pull/114699), [@kerthcet](https://github.com/kerthcet)) +- Since Kubernetes v1.5, `kubectl apply` has had an alpha-stage `--prune` flag to support deleting previously applied objects that have been removed from the input manifest. This feature has remained in alpha ever since due to performance and correctness issues inherent in its design. This PR exposes a second, independent pruning alpha powered by a new standard named `ApplySets`. An `ApplySet` is a server-side object (by default, a Secret; ConfigMaps are also allowed) that kubectl can use to accurately and efficiently track set membership across `apply` operations. The format used for `ApplySet` is set out in [KEP 3659](https://github.com/kubernetes/enhancements/issues/3659) as a low-level specification. Other tools in the ecosystem can also build on this specification for improved interoperability. To try the ApplySet-based pruning alpha, set `KUBECTL_APPLYSET=true` and use the flags `--prune --applyset=secret-name` with `kubectl apply`. ([#116205](https://github.com/kubernetes/kubernetes/pull/116205), [@justinsb](https://github.com/justinsb)) +- Switched kubectl explain to use OpenAPIV3 information published by the server. OpenAPIV2 backend can still be used with the `--output plaintext-openapiv2` argument ([#116390](https://github.com/kubernetes/kubernetes/pull/116390), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery, CLI and Testing] +- The Pod API field `.spec.schedulingGates[*].name` now requires qualified names (like `example.com/mygate`), matching validation for names of `.spec.readinessGates[*].name`. Any uses of the alpha scheduling gate feature prior to 1.27 that do not match that validation must be renamed or deleted before upgrading to 1.27. ([#115821](https://github.com/kubernetes/kubernetes/pull/115821), [@lianghao208](https://github.com/lianghao208)) [SIG Apps and Scheduling] +- The Scheduler did not run the plugin Score method when its PreScore method returned a Skip status. In other words, the PreScore/Score plugin could return a Skip status in PreScore if the plugin did nothing in Score for that Pod. ([#115652](https://github.com/kubernetes/kubernetes/pull/115652), [@AxeZhan](https://github.com/AxeZhan)) +- The `AdvancedAuditing` feature gate was locked to _true_ in v1.27, and will be removed completely in v1.28 ([#115163](https://github.com/kubernetes/kubernetes/pull/115163), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery] +- The `JobMutableNodeSchedulingDirectives` feature gate has graduated to GA. ([#116116](https://github.com/kubernetes/kubernetes/pull/116116), [@ahg-g](https://github.com/ahg-g)) [SIG Apps, Scheduling and Testing] +- The `ReadWriteOncePod` feature gate has been graduated to beta. ([#114494](https://github.com/kubernetes/kubernetes/pull/114494), [@chrishenzie](https://github.com/chrishenzie)) +- The bug which caused the status of Indexed Jobs to only update when new indexes were completed was fixed. Now, completed indexes are updated even if the `.status.completedIndexes` values are outside the `[0, .spec.completions> range`. ([#115349](https://github.com/kubernetes/kubernetes/pull/115349), [@danielvegamyhre](https://github.com/danielvegamyhre)) +- The go version defined in `.go-version` is now fetched when invoking test, build, and code generation targets if the current go version does not match it. Set $FORCE_HOST_GO=y while testing or building to skip this behavior, or set $GO_VERSION to override the selected go version. ([#115377](https://github.com/kubernetes/kubernetes/pull/115377), [@liggitt](https://github.com/liggitt)) [SIG Testing] +- The job controller back-off logic is now decoupled from workqueue. In case of parallelism > 1, if there are multiple new failures in a reconciliation cycle, all the failures are taken into account to compute the back-off. Previously, the back-off kicked in for all types of failures; with this change, only pod failures are taken into account. If the back-off limits exceeds, the job is marked as failed immediately; before this change, the job is marked as failed in the next back-off. ([#114768](https://github.com/kubernetes/kubernetes/pull/114768), [@sathyanarays](https://github.com/sathyanarays)) [SIG Apps and Testing] +- The mount-utils mounter now provides an option to limit the number of concurrent format operations. ([#115379](https://github.com/kubernetes/kubernetes/pull/115379), [@artemvmin](https://github.com/artemvmin)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node and Storage] +- The scheduler's metric `plugin_execution_duration_seconds` now records `PreEnqueue` plugins execution seconds. ([#116201](https://github.com/kubernetes/kubernetes/pull/116201), [@sanposhiho](https://github.com/sanposhiho)) +- Two changes to the `/debug/api_priority_and_fairness/dump_priority_levels` endpoint of API Priority and Fairness: added total number of dispatched, timed-out, rejected and cancelled requests; output now sorted by `PriorityLevelName`. ([#112393](https://github.com/kubernetes/kubernetes/pull/112393), [@borgerli](https://github.com/borgerli)) +- Unlocked the `CSIMigrationvSphere` feature gate. + The change allow users to continue using the in-tree vSphere driver,pending a vSphere + CSI driver release that has with GA support for Windows, XFS, and raw block access. ([#116342](https://github.com/kubernetes/kubernetes/pull/116342), [@msau42](https://github.com/msau42)) [SIG Storage] +- Updated `cAdvisor` to `v0.47.0` ([#114883](https://github.com/kubernetes/kubernetes/pull/114883), [@bobbypage](https://github.com/bobbypage)) +- Updated `kube-apiserver` SLO/SLI latency metrics to exclude priority & fairness queue wait times ([#116420](https://github.com/kubernetes/kubernetes/pull/116420), [@andrewsykim](https://github.com/andrewsykim)) +- Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.2` + - Updated setcap to use released image `registry.k8s.io/build-image/setcap:bullseye-v1.4.2` ([#116509](https://github.com/kubernetes/kubernetes/pull/116509), [@cpanato](https://github.com/cpanato)) [SIG Testing] +- Updated distroless iptables to use released image `registry.k8s.io/distroless-iptables:v0.2.1` ([#115905](https://github.com/kubernetes/kubernetes/pull/115905), [@cpanato](https://github.com/cpanato)) [SIG Testing] +- Upgrades functionality of `kubectl kustomize` as described at + https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.0 and https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.0.1. + + This is a new major release of kustomize, so there are a few backwards-incompatible changes, most of which are rare use cases, bug fixes with side effects, or things that have been deprecated for multiple releases already: + + - https://github.com/kubernetes-sigs/kustomize/pull/4911: Drop support for a very old, legacy style of patches. patches used to be allowed to be used as an alias for patchesStrategicMerge in kustomize v3. You now have to use patchesStrategicMerge explicitly, or update to the new syntax supported by patches. See examples in the PR description of https://github.com/kubernetes-sigs/kustomize/pull/4911. + - https://github.com/kubernetes-sigs/kustomize/issues/4731: Remove a potential build-time side-effect in ConfigMapGenerator and SecretGenerator, which loaded values from the local environment under some circumstances, breaking kustomize build's side-effect-free promise. While this behavior was never intended, we deprecated it and are announcing it as a breaking change since it existed for a long time. See also the Eschewed Features documentation. + - https://github.com/kubernetes-sigs/kustomize/pull/4985: If you previously included .git in an AWS or Azure URL, we will no longer automatically remove that suffix. You may need to add an extra / to replace the .git for the URL to properly resolve. + - https://github.com/kubernetes-sigs/kustomize/pull/4954: Drop support for using gh: as a host (e.g. gh:kubernetes-sigs/kustomize). We were unable to find any usage of or basis for this and believe it may have been targeting a custom gitconfig shorthand syntax. ([#116598](https://github.com/kubernetes/kubernetes/pull/116598), [@natasha41575](https://github.com/natasha41575)) [SIG CLI] +- When an unsupported PodDisruptionBudget configuration is found, an event and log will be emitted to inform users of the misconfiguration. ([#115861](https://github.com/kubernetes/kubernetes/pull/115861), [@JayKayy](https://github.com/JayKayy)) [SIG Apps] +- [E2E] Pods spawned by E2E tests can now pull images from the private registry using the new --e2e-docker-config-file flag ([#114625](https://github.com/kubernetes/kubernetes/pull/114625), [@Divya063](https://github.com/Divya063)) [SIG Node and Testing] +- [alpha: kubectl apply --prune --applyset] Enabled certain custom resources (CRs) to be used as `ApplySet` parent objects. To enable this for a given CR, apply the label `applyset.kubernetes.io/is-parent-type: true` to the CustomResourceDefinition (CRD) that defines it. ([#116353](https://github.com/kubernetes/kubernetes/pull/116353), [@KnVerey](https://github.com/KnVerey)) +- `Kubelet` no longer creates certain legacy iptables rules by default. + It is possible that this will cause problems with some third-party components + that improperly depended on those rules. If this affects you, you can run + `kubelet` with `--feature-gates=IPTablesOwnershipCleanup=false`, but a bug should also be filed against the third-party component. ([#114472](https://github.com/kubernetes/kubernetes/pull/114472), [@danwinship](https://github.com/danwinship)) +- `MinDomainsInPodTopologySpread` feature gate is enabled by default as a + Beta feature in 1.27. ([#114445](https://github.com/kubernetes/kubernetes/pull/114445), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- `Secret` of `kubernetes.io/tls` type now verifies that the private key matches the cert ([#113581](https://github.com/kubernetes/kubernetes/pull/113581), [@aimuz](https://github.com/aimuz)) +- `StorageVersionGC` (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113986](https://github.com/kubernetes/kubernetes/pull/113986), [@songxiao-wang87](https://github.com/songxiao-wang87)) +- `client-go`: `sharedInformerFactory` now waits for goroutines during shutdown for metadatainformer and dynamicinformer. ([#114434](https://github.com/kubernetes/kubernetes/pull/114434), [@howardjohn](https://github.com/howardjohn)) +- `kube-proxy` now accepts the `ContextualLogging`, `LoggingAlphaOptions`, + `LoggingBetaOptions` ([#115233](https://github.com/kubernetes/kubernetes/pull/115233), [@pohly](https://github.com/pohly)) +- `kube-scheduler`: Optimized implementation of null `labelSelector` in topology spreading. ([#116607](https://github.com/kubernetes/kubernetes/pull/116607), [@alculquicondor](https://github.com/alculquicondor)) +- `kubeadm`: now shows a warning message when detecting that the sandbox image of the container runtime is inconsistent with that used by kubeadm ([#115610](https://github.com/kubernetes/kubernetes/pull/115610), [@SataQiu](https://github.com/SataQiu)) +- `kubectl` now uses `HorizontalPodAutoscaler` `v2` by default. ([#114886](https://github.com/kubernetes/kubernetes/pull/114886), [@a7i](https://github.com/a7i)) +- Kubernetes is now built with Go 1.20.3 ([#117125](https://github.com/kubernetes/kubernetes/pull/117125), [@xmudrii](https://github.com/xmudrii)) [SIG Release and Testing] +- Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.3` ([#117126](https://github.com/kubernetes/kubernetes/pull/117126), [@xmudrii](https://github.com/xmudrii)) [SIG Testing] + +### Documentation + +- Documented the reason field in CRI API to ensure it equals `OOMKilled` for the containers terminated by OOM killer ([#112977](https://github.com/kubernetes/kubernetes/pull/112977), [@mimowo](https://github.com/mimowo)) +- Error message for Pods with requests exceeding limits will have a limit value printed. ([#112925](https://github.com/kubernetes/kubernetes/pull/112925), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) +- The change affects the following CLI command: + + kubectl create rolebinding -h ([#107124](https://github.com/kubernetes/kubernetes/pull/107124), [@ptux](https://github.com/ptux)) [SIG CLI] + +### Failing Test + +- Deflaked a preemption test that may patch Nodes incorrectly. ([#114350](https://github.com/kubernetes/kubernetes/pull/114350), [@Huang-Wei](https://github.com/Huang-Wei)) +- Fixed panic in vSphere e2e tests. ([#115863](https://github.com/kubernetes/kubernetes/pull/115863), [@jsafrane](https://github.com/jsafrane)) [SIG Storage and Testing] +- Setting the Kubelet config option `--resolv-conf=Host` on Windows will now result in Kubelet applying the Pod DNS Policies as intended. ([#110566](https://github.com/kubernetes/kubernetes/pull/110566), [@claudiubelu](https://github.com/claudiubelu)) + +### Bug or Regression + +- Added (dry run) and (server dry run) suffixes to `kubectl scale` command when `dry-run` is passed ([#114252](https://github.com/kubernetes/kubernetes/pull/114252), [@ardaguclu](https://github.com/ardaguclu)) +- Applied configurations can be generated for types with `non-builtin` map fields ([#114920](https://github.com/kubernetes/kubernetes/pull/114920), [@astefanutti](https://github.com/astefanutti)) +- Changed the error message of `kubectl rollout restart` when subsequent `kubectl rollout restart` commands are executed within a second ([#113040](https://github.com/kubernetes/kubernetes/pull/113040), [@ardaguclu](https://github.com/ardaguclu)) +- Changed the error message to `cannot exec into multiple objects at a time` when file passed to `kubectl exec` contains multiple resources ([#114249](https://github.com/kubernetes/kubernetes/pull/114249), [@ardaguclu](https://github.com/ardaguclu)) +- Client-go: fixed potential data races retrying requests using a custom `io.Reader` body; with this fix, only requests with no body or with `string` / `[]byte` / `runtime.Object` bodies can be retried ([#113933](https://github.com/kubernetes/kubernetes/pull/113933), [@liggitt](https://github.com/liggitt)) +- Describing the CRs will now hide `.metadata.managedFields` ([#114584](https://github.com/kubernetes/kubernetes/pull/114584), [@soltysh](https://github.com/soltysh)) +- Discovery document will correctly return the resources for aggregated apiservers that do not implement aggregated disovery ([#115770](https://github.com/kubernetes/kubernetes/pull/115770), [@Jefftree](https://github.com/Jefftree)) +- Excluded preemptor pod metadata in the event message ([#114923](https://github.com/kubernetes/kubernetes/pull/114923), [@mimowo](https://github.com/mimowo)) +- Expanded the partial fix for https://github.com/kubernetes/kubernetes/issues/111539 + which was already started in https://github.com/kubernetes/kubernetes/pull/109706 + Specifically, we will now reduce the amount of syncs for `ETP=local` services even + further in the CCM and avoid re-configuring LBs to an even greater extent. ([#111658](https://github.com/kubernetes/kubernetes/pull/111658), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) +- File content check for IPV4 is now enabled by default, and the check of IPV4 or IPV6 is done for `kubeadm init` or `kubeadm join` only in case the user intends to create a cluster to support that kind of IP address family ([#115420](https://github.com/kubernetes/kubernetes/pull/115420), [@chendave](https://github.com/chendave)) +- Fixed CSI `PersistentVolumes` to allow Secrets names longer than 63 characters. ([#114776](https://github.com/kubernetes/kubernetes/pull/114776), [@jsafrane](https://github.com/jsafrane)) +- Fixed Route controller to update routes when NodeIP changes ([#108095](https://github.com/kubernetes/kubernetes/pull/108095), [@lzhecheng](https://github.com/lzhecheng)) +- Fixed `DaemonSet` to update the status even if it fails to create a pod. ([#113787](https://github.com/kubernetes/kubernetes/pull/113787), [@gjkim42](https://github.com/gjkim42)) +- Fixed `SELinux` label for host path volumes created by host path provisioner ([#112021](https://github.com/kubernetes/kubernetes/pull/112021), [@mrunalp](https://github.com/mrunalp)) +- Fixed `StatefulSetAutoDeletePVC` feature when `OwnerReferencesPermissionEnforcement` admission plugin is enabled. ([#114116](https://github.com/kubernetes/kubernetes/pull/114116), [@jsafrane](https://github.com/jsafrane)) +- Fixed a bug on the `EndpointSlice` mirroring controller that generated multiple slices in some cases for custom endpoints in non canonical format. ([#114155](https://github.com/kubernetes/kubernetes/pull/114155), [@aojea](https://github.com/aojea)) +- Fixed a bug that caused the `apiserver` to panic when trying to allocate a Service with a dynamic `ClusterIP` and was configured with Service CIDRs with a /28 mask for IPv4 and a /124 mask for IPv6 ([#115322](https://github.com/kubernetes/kubernetes/pull/115322), [@aojea](https://github.com/aojea)) +- Fixed a bug where Kubernetes would apply a default StorageClass to a PersistentVolumeClaim, + even when the deprecated annotation `volume.beta.kubernetes.io/storage-class` was set. ([#116089](https://github.com/kubernetes/kubernetes/pull/116089), [@cvvz](https://github.com/cvvz)) [SIG Apps and Storage] +- Fixed a bug where `events/v1` `Events` with similar event type and reporting instance were not aggregated by `client-go`. ([#112365](https://github.com/kubernetes/kubernetes/pull/112365), [@dgrisonnet](https://github.com/dgrisonnet)) +- Fixed a bug where when emitting similar Events consecutively, some were rejected by the apiserver. ([#114237](https://github.com/kubernetes/kubernetes/pull/114237), [@dgrisonnet](https://github.com/dgrisonnet)) +- Fixed a data race when emitting similar Events consecutively ([#114236](https://github.com/kubernetes/kubernetes/pull/114236), [@dgrisonnet](https://github.com/dgrisonnet)) +- Fixed a log line in scheduler that inaccurately implies that volume binding has finalized ([#116018](https://github.com/kubernetes/kubernetes/pull/116018), [@TommyStarK](https://github.com/TommyStarK)) +- Fixed a rare race condition in `kube-apiserver` that could lead to missing events when a watch API request was created at the same time `kube-apiserver` was re-initializing its internal watch. ([#116172](https://github.com/kubernetes/kubernetes/pull/116172), [@wojtek-t](https://github.com/wojtek-t)) +- Fixed a regression in the pod binding subresource to honor the `metadata.uid` precondition. + This allows kube-scheduler to ensure it is assigns node names to the same instances of pods it made scheduling decisions for. ([#116550](https://github.com/kubernetes/kubernetes/pull/116550), [@alculquicondor](https://github.com/alculquicondor)) +- Fixed a regression that the scheduler always goes through all Filter plugins. ([#114518](https://github.com/kubernetes/kubernetes/pull/114518), [@Huang-Wei](https://github.com/Huang-Wei)) +- Fixed an EndpointSlice Controller hashing bug that could cause EndpointSlices to incorrectly handle Pods with duplicate IP addresses. For example this could happen when a new Pod reused an IP that was also assigned to a Pod in a completed state. ([#115907](https://github.com/kubernetes/kubernetes/pull/115907), [@qinqon](https://github.com/qinqon)) [SIG Apps and Network] +- Fixed an issue where a CSI migrated volume may be prematurely detached when the CSI driver is not running on the node. + If CSI migration is enabled on the node, even the csi-driver is not up and ready, we will still add this volume to DSW. ([#115464](https://github.com/kubernetes/kubernetes/pull/115464), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu)) +- Fixed an issue where failed pods associated with a job with `parallelism = 1` are recreated by the job controller honoring exponential backoff delay again. However, for jobs with `parallelism > 1`, pods might be created without exponential backoff delay. ([#114516](https://github.com/kubernetes/kubernetes/pull/114516), [@nikhita](https://github.com/nikhita)) +- Fixed an issue with Winkernel Proxier - ClusterIP Loadbalancers missing if the `ExternalTrafficPolicy` is set to Local and the available endpoints are all `remoteEndpoints`. ([#115919](https://github.com/kubernetes/kubernetes/pull/115919), [@princepereira](https://github.com/princepereira)) +- Fixed bug in CRD Validation Rules (beta) and `ValidatingAdmissionPolicy` (alpha) where all admission requests could result in `internal error: runtime error: index out of range [3] with length 3 evaluating rule: <rule name>` under certain circumstances. ([#114857](https://github.com/kubernetes/kubernetes/pull/114857), [@jpbetz](https://github.com/jpbetz)) +- Fixed bug in beta aggregated discovery endpoint which caused CRD discovery information to be temporarily missing when an Aggregated APIService with the same GroupVersion is deleted (and vice versa). ([#116770](https://github.com/kubernetes/kubernetes/pull/116770), [@alexzielenski](https://github.com/alexzielenski)) +- Fixed bug in reflector that couldn't recover from `Too large resource version` errors with API servers before 1.17.0. ([#115093](https://github.com/kubernetes/kubernetes/pull/115093), [@xuzhenglun](https://github.com/xuzhenglun)) +- Fixed clearing of rate-limiter for the queue of checks for cleaning stale pod disruption conditions. The bug could result in the PDB synchronization updates firing too often or the pod disruption cleanups taking too long to happen. ([#114770](https://github.com/kubernetes/kubernetes/pull/114770), [@mimowo](https://github.com/mimowo)) +- Fixed data race in `kube-scheduler` when preemption races with a Pod update. ([#116395](https://github.com/kubernetes/kubernetes/pull/116395), [@alculquicondor](https://github.com/alculquicondor)) [SIG Scheduling] +- Fixed file permission issues that happened during update of `Secret`/`ConfigMap`/`projected volume` when `fsGroup` is used. The problem caused a race condition where application gets intermittent permission denied error when reading files that were just updated, before the correct permissions were applied. ([#114464](https://github.com/kubernetes/kubernetes/pull/114464), [@tsaarni](https://github.com/tsaarni)) +- Fixed incorrect watch events when a watch is initialized simultanously with a reinitializing watchcache. ([#116436](https://github.com/kubernetes/kubernetes/pull/116436), [@wojtek-t](https://github.com/wojtek-t)) +- Fixed issue in `Winkernel` Proxier - Unexpected active TCP connection drops while horizontally scaling the endpoints for a LoadBalancer Service with Internal Traffic Policy: `Local` ([#113742](https://github.com/kubernetes/kubernetes/pull/113742), [@princepereira](https://github.com/princepereira)) +- Fixed issue on Windows when calculating cpu limits on nodes with more than 64 logical processors ([#114231](https://github.com/kubernetes/kubernetes/pull/114231), [@mweibel](https://github.com/mweibel)) +- Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing when service was configured with `ipFamilyPolicy`: `RequireDualStack` ([#115503](https://github.com/kubernetes/kubernetes/pull/115503), [@princepereira](https://github.com/princepereira)) +- Fixed issue with Winkernel Proxier - IPV6 load balancer policies were missing when service was configured with `ipFamilyPolicy`: `RequireDualStack` ([#115577](https://github.com/kubernetes/kubernetes/pull/115577), [@princepereira](https://github.com/princepereira)) +- Fixed issue with `Winkernel Proxier` - No ingress load balancer rules with endpoints to support load balancing when all the endpoints are terminating. ([#113776](https://github.com/kubernetes/kubernetes/pull/113776), [@princepereira](https://github.com/princepereira)) +- Fixed missing delete events on informer re-lists to ensure all delete events were correctly emitted and using the latest known object state, so that all event handlers and stores always reflect the actual apiserver state as best as possible ([#115620](https://github.com/kubernetes/kubernetes/pull/115620), [@odinuge](https://github.com/odinuge)) +- Fixed nil pointer error in `NodeVolumeLimits` csi logging ([#115179](https://github.com/kubernetes/kubernetes/pull/115179), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu)) +- Fixed panic validating custom resource definition schemas that set `multipleOf` to 0 ([#114869](https://github.com/kubernetes/kubernetes/pull/114869), [@liggitt](https://github.com/liggitt)) +- Fixed performance regression in scheduler caused by frequent metric lookup on critical code path. ([#116428](https://github.com/kubernetes/kubernetes/pull/116428), [@mborsz](https://github.com/mborsz)) [SIG Scheduling] +- Fixed stuck apiserver if an aggregated apiservice returned `304 Not Modified` for aggregated discovery information ([#114459](https://github.com/kubernetes/kubernetes/pull/114459), [@alexzielenski](https://github.com/alexzielenski)) +- Fixed the problem Pod terminating stuck because of trying to umount not actual mounted dir. ([#115769](https://github.com/kubernetes/kubernetes/pull/115769), [@mochizuki875](https://github.com/mochizuki875)) +- Fixed the regression that introduced 34s timeout for DELETECOLLECTION calls ([#115341](https://github.com/kubernetes/kubernetes/pull/115341), [@tkashem](https://github.com/tkashem)) +- Fixed two regressions introduced by the `PodDisruptionConditions` feature (on by default in 1.26): + - pod eviction API calls returned spurious precondition errors and required a second evict API call to succeed + - dry-run eviction API calls persisted a DisruptionTarget condition into the pod being evicted ([#116554](https://github.com/kubernetes/kubernetes/pull/116554), [@atiratree](https://github.com/atiratree)) +- Fixes #115825. Kube-proxy will now include the `healthz` state in its response to the LB HC as to avoid indicating to the LB that it should use the node in question when Kube-proxy is not healthy. ([#111661](https://github.com/kubernetes/kubernetes/pull/111661), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Network] +- Flag `--concurrent-node-syncs` has been added to cloud node controller which defines how many workers in parallel will be initialising and synchronising nodes. ([#113104](https://github.com/kubernetes/kubernetes/pull/113104), [@pawbana](https://github.com/pawbana)) [SIG API Machinery, Cloud Provider and Scalability] +- Force deleted pods may fail to terminate until the kubelet is restarted when the container runtime returns an error during termination. We have strengthened testing for runtime failures and now perform a more rigorous reconciliation to ensure static pods (especially those that use fixed UIDs) are restarted. As a side effect of these changes static pods will be restarted with lower latency than before (2s vs 4s, on average) and rapid updates to pod configuration should take effect sooner. + + A new metric `kubelet_known_pods` has been added at ALPHA stability to report the number of pods a Kubelet is tracking in a number of internal states. Operators may use the metrics to track an excess of pods in the orphaned state that may not be completing. ([#113145](https://github.com/kubernetes/kubernetes/pull/113145), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Auth, Cloud Provider, Node and Testing] +- From now on, the HPA controller will return an error for the container resource metrics when the feature gate `HPAContainerMetrics` is disabled. As a result, HPA with a container resource metric performs no scale-down and performs only. ([#116043](https://github.com/kubernetes/kubernetes/pull/116043), [@sanposhiho](https://github.com/sanposhiho)) +- IPVS: Any ipvs scheduler can now be configured. If a un-usable scheduler is configured `kube-proxy` will re-start and the logs must be checked (same as before but different log printouts). ([#114878](https://github.com/kubernetes/kubernetes/pull/114878), [@uablrek](https://github.com/uablrek)) +- If a user attempts to add an ephemeral container to a static pod, they will now get a visible validation error. ([#114086](https://github.com/kubernetes/kubernetes/pull/114086), [@xmcqueen](https://github.com/xmcqueen)) +- Ingress with `ingressClass` annotation and `IngressClassName` both set can be created now. ([#115447](https://github.com/kubernetes/kubernetes/pull/115447), [@AxeZhan](https://github.com/AxeZhan)) +- Kube-apiserver: errors decoding objects in etcd are now recorded in an `apiserver_storage_decode_errors_total` counter metric ([#114376](https://github.com/kubernetes/kubernetes/pull/114376), [@baomingwang](https://github.com/baomingwang)) [SIG API Machinery and Instrumentation] +- Kube-apiserver: regular expressions specified with the `--cors-allowed-origins` option are now validated to match the entire `hostname` inside the `Origin` header of the request and + must contain '^' or the '//' prefix to anchor to the start, and '$' or the port separator ':' to anchor to + the end. ([#112809](https://github.com/kubernetes/kubernetes/pull/112809), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] +- Kube-apiserver: removed N^2 behavior loading webhook configurations. ([#114794](https://github.com/kubernetes/kubernetes/pull/114794), [@lavalamp](https://github.com/lavalamp)) [SIG API Machinery, Architecture, CLI, Cloud Provider and Node] +- Kubeadm: fixed an etcd learner-mode bug by preparing an etcd static pod manifest before promoting ([#115038](https://github.com/kubernetes/kubernetes/pull/115038), [@tobiasgiese](https://github.com/tobiasgiese)) +- Kubeadm: fixed the bug where `kubeadm` always does CRI detection even if it is not required by a phase subcommand ([#114455](https://github.com/kubernetes/kubernetes/pull/114455), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: improved retries when updating node information, in case `kube-apiserver` is temporarily unavailable ([#114176](https://github.com/kubernetes/kubernetes/pull/114176), [@QuantumEnergyE](https://github.com/QuantumEnergyE)) +- Kubeadm`: modified `--config` flag from required to optional for `kubeadm kubeconfig user` command ([#116074](https://github.com/kubernetes/kubernetes/pull/116074), [@SataQiu](https://github.com/SataQiu)) +- Kubectl: enabled usage of label selector for filtering out resources when pruning for kubectl diff ([#114863](https://github.com/kubernetes/kubernetes/pull/114863), [@danlenar](https://github.com/danlenar)) +- Kubelet startup now fails CRI connection if service or image endpoint is throwing any error ([#115102](https://github.com/kubernetes/kubernetes/pull/115102), [@saschagrunert](https://github.com/saschagrunert)) +- Kubelet: fix recording issue when pulling image did finish ([#114904](https://github.com/kubernetes/kubernetes/pull/114904), [@TommyStarK](https://github.com/TommyStarK)) [SIG Node] +- Kubelet`: fixed a bug in `kubelet` that stopped rendering the `ConfigMaps` when `fsquota` monitoring is enabled ([#112624](https://github.com/kubernetes/kubernetes/pull/112624), [@pacoxu](https://github.com/pacoxu)) +- Messages of `DisruptionTarget` condition now excludes preemptor pod metadata ([#114914](https://github.com/kubernetes/kubernetes/pull/114914), [@mimowo](https://github.com/mimowo)) +- Optimized `LoadBalancer` creation with the help of attribute Internal Traffic Policy: `Local` ([#114407](https://github.com/kubernetes/kubernetes/pull/114407), [@princepereira](https://github.com/princepereira)) +- PVCs will automatically be recreated if they are missing for a pending Pod. ([#113270](https://github.com/kubernetes/kubernetes/pull/113270), [@rrangith](https://github.com/rrangith)) [SIG Apps and Testing] +- PersistentVolume API objects which set NodeAffinities using beta Kubernetes labels for OS, architecture, zone, region, and instance type may now be modified to use the stable Kubernetes labels. ([#115391](https://github.com/kubernetes/kubernetes/pull/115391), [@haoruan](https://github.com/haoruan)) +- Potentially breaking change - Updating the polling interval for Windows stats collection from 1 second to 10 seconds ([#116546](https://github.com/kubernetes/kubernetes/pull/116546), [@marosset](https://github.com/marosset)) [SIG Node and Windows] +- Relaxed API validation for usage `key encipherment` and `kubelet` uses requested usages accordingly ([#111660](https://github.com/kubernetes/kubernetes/pull/111660), [@pacoxu](https://github.com/pacoxu)) +- Removed scheduler names from preemption event messages. ([#114980](https://github.com/kubernetes/kubernetes/pull/114980), [@mimowo](https://github.com/mimowo)) +- Shared informers now correctly propagate whether they are synced or not. Individual informer handlers may now check if they are synced or not (new `HasSynced` method). Library support is added to assist controllers in tracking whether their own work is completed for items in the initial list (`AsyncTracker`). ([#113985](https://github.com/kubernetes/kubernetes/pull/113985), [@lavalamp](https://github.com/lavalamp)) +- The Kubernetes API server now correctly detects and closes existing TLS connections when its client certificate file for kubelet authentication has been rotated. ([#115315](https://github.com/kubernetes/kubernetes/pull/115315), [@enj](https://github.com/enj)) [SIG API Machinery, Auth, Node and Testing] +- Total test spec is now available by `ProgressReporter`, it will be reported before test suite got executed. ([#114417](https://github.com/kubernetes/kubernetes/pull/114417), [@chendave](https://github.com/chendave)) +- Updated the Event series starting count when emitting isomorphic events from 1 to 2. ([#112334](https://github.com/kubernetes/kubernetes/pull/112334), [@dgrisonnet](https://github.com/dgrisonnet)) +- When GCing pods, `kube-controller-manager` will delete Evicted pods first. ([#116167](https://github.com/kubernetes/kubernetes/pull/116167), [@borgerli](https://github.com/borgerli)) +- When describing deployments, `OldReplicaSets` now always shows all replicasets controlled the deployment, not just those that still have replicas available. ([#113083](https://github.com/kubernetes/kubernetes/pull/113083), [@llorllale](https://github.com/llorllale)) [SIG CLI] +- Windows CPU usage node stats are now correctly calculated for nodes with multiple Processor Groups. ([#110864](https://github.com/kubernetes/kubernetes/pull/110864), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Testing and Windows] +- `LabelSelectors` specified in `topologySpreadConstraints` were validated to ensure that pods are scheduled as expected. Existing pods with invalid `LabelSelectors` could be updated, but new pods were required to specify valid `LabelSelectors`. ([#111802](https://github.com/kubernetes/kubernetes/pull/111802), [@maaoBit](https://github.com/maaoBit)) +- `PodGC` for pods which are in terminal phase now do not add the `DisruptionTarget` condition. ([#115056](https://github.com/kubernetes/kubernetes/pull/115056), [@mimowo](https://github.com/mimowo)) +- `Service` of type `ExternalName` do not create an `Endpoint` anymore. ([#114814](https://github.com/kubernetes/kubernetes/pull/114814), [@panslava](https://github.com/panslava)) +- `cacher`: If `ResourceVersion` is unset, the watch is now served from the underlying storage as documented. ([#115096](https://github.com/kubernetes/kubernetes/pull/115096), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) +- `client-go`: fixed the wait time for trying to acquire the leader lease ([#114872](https://github.com/kubernetes/kubernetes/pull/114872), [@Iceber](https://github.com/Iceber)) +- `etcd`: Updated to `v3.5.7` ([#115310](https://github.com/kubernetes/kubernetes/pull/115310), [@mzaian](https://github.com/mzaian)) +- `golang.org/x/net` updated to `v0.7.0` to fix CVE-2022-41723 ([#115786](https://github.com/kubernetes/kubernetes/pull/115786), [@liggitt](https://github.com/liggitt)) +- `kube-controller-manager` will not run nodeipam controller when allocator type + is `CloudAllocator` and the cloud provider is not enabled. ([#114596](https://github.com/kubernetes/kubernetes/pull/114596), [@andrewsykim](https://github.com/andrewsykim)) +- `kube-controller-manager`: fixed a bug that the `kubeconfig` field of `kubecontrollermanager.config.k8s.io` configuration is not populated correctly ([#116219](https://github.com/kubernetes/kubernetes/pull/116219), [@SataQiu](https://github.com/SataQiu)) +- `kube-proxy` with `--proxy-mode=ipvs` can be used with statically linked kernels. + The reseved IPv4 range `TEST-NET-2` in `rfc5737` MUST NOT be used for `ClusterIP` or `loadBalancerIP` since address `198.51.100.0` is used for probing. ([#114669](https://github.com/kubernetes/kubernetes/pull/114669), [@uablrek](https://github.com/uablrek)) +- `kubeadm`: fixed a bug where the uploaded kubelet configuration in `kube-system/kubelet-config` `ConfigMap` does not respect user patch ([#115575](https://github.com/kubernetes/kubernetes/pull/115575), [@SataQiu](https://github.com/SataQiu)) +- `kubeadm`: now respects user provided `kubeconfig` during discovery process ([#113998](https://github.com/kubernetes/kubernetes/pull/113998), [@SataQiu](https://github.com/SataQiu)) +- `kubectl port-forward` now exits with exit code 1 when remote connection is + lost ([#114460](https://github.com/kubernetes/kubernetes/pull/114460), [@brianpursley](https://github.com/brianpursley)) +- `nodeName` being set along with non-empty `schedulingGates` is now enforced. ([#115569](https://github.com/kubernetes/kubernetes/pull/115569), [@Huang-Wei](https://github.com/Huang-Wei)) +- `node_stage_path` is now set whenever available for expansion during mount ([#115346](https://github.com/kubernetes/kubernetes/pull/115346), [@gnufied](https://github.com/gnufied)) +- `statefulset` status will now be consistent on API errors ([#113834](https://github.com/kubernetes/kubernetes/pull/113834), [@atiratree](https://github.com/atiratree)) +- `tryUnmount` now respects `mounter.withSafeNotMountedBehavior` ([#114736](https://github.com/kubernetes/kubernetes/pull/114736), [@andyzhangx](https://github.com/andyzhangx)) +- The encryption response from KMS v2 plugins is now validated earlier at DEK generation time instead of waiting until an encryption is performed. ([#116877](https://github.com/kubernetes/kubernetes/pull/116877), [@enj](https://github.com/enj)) [SIG API Machinery and Auth] +- Recreate DaemonSet pods completed with Succeeded phase ([#117073](https://github.com/kubernetes/kubernetes/pull/117073), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing] + + +### Other (Cleanup or Flake) + +- Added basic Denial Of Service prevention for the the node-local kubelet `podresource` API ([#116459](https://github.com/kubernetes/kubernetes/pull/116459), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] +- Callers of `wait.ExponentialBackoffWithContext` now must pass a `ConditionWithContextFunc` to be consistent with the signature and avoid creating a duplicate context. If your condition does not need a context you can use the `ConditionFunc.WithContext()` helper to ignore the context, or use `ExponentialBackoff` directly. ([#115113](https://github.com/kubernetes/kubernetes/pull/115113), [@smarterclayton](https://github.com/smarterclayton)) +- Changed docs for `--contention-profiling` flag to reflect it performed block profiling ([#114490](https://github.com/kubernetes/kubernetes/pull/114490), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) +- E2e framework: added `--report-complete-ginkgo` and `--report-complete-junit` parameters. They work like `ginkgo --json-report <report dir>/ginkgo/report.json --junit-report <report dir>/ginkgo/report.xml`. ([#115678](https://github.com/kubernetes/kubernetes/pull/115678), [@pohly](https://github.com/pohly)) [SIG Testing] +- Fixed incorrect log information in the `iptables` utility. ([#110723](https://github.com/kubernetes/kubernetes/pull/110723), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) +- Improved FormatMap: Improves performance by about 4x, or nearly 2x in the worst case ([#112661](https://github.com/kubernetes/kubernetes/pull/112661), [@aimuz](https://github.com/aimuz)) [SIG Node] +- Improved misleading message, in case of no metrics received for the `HPA` controlled pods. ([#114740](https://github.com/kubernetes/kubernetes/pull/114740), [@kushagra98](https://github.com/kushagra98)) +- Introduced new metrics removing the redundant subsystem in kube-apiserver pod logs metrics and deprecate the original ones: + - kube_apiserver_pod_logs_pods_logs_backend_tls_failure_total becomes kube_apiserver_pod_logs_backend_tls_failure_total + - kube_apiserver_pod_logs_pods_logs_insecure_backend_total becomes kube_apiserver_pod_logs_insecure_backend_total ([#114497](https://github.com/kubernetes/kubernetes/pull/114497), [@dgrisonnet](https://github.com/dgrisonnet)) +- Kubeadm: removed the deprecated `v1beta2` API. kubeadm 1.26's `config migrate` + command can be used to migrate a `v1beta2` configuration file to `v1beta3` ([#114540](https://github.com/kubernetes/kubernetes/pull/114540), [@pacoxu](https://github.com/pacoxu)) +- Kubelet: remove deprecated flag `--container-runtime` ([#114017](https://github.com/kubernetes/kubernetes/pull/114017), [@calvin0327](https://github.com/calvin0327)) [SIG Cloud Provider and Node] +- Kubelet: the deprecated `--master-service-namespace` flag is removed in v1.27 ([#116015](https://github.com/kubernetes/kubernetes/pull/116015), [@SataQiu](https://github.com/SataQiu)) +- Linux/arm will not ship in Kubernetes 1.27 as we are running into issues with building artifacts using golang 1.20.2 (please see issue #116492) ([#115742](https://github.com/kubernetes/kubernetes/pull/115742), [@dims](https://github.com/dims)) [SIG Architecture, Release and Testing] +- Migrated `pkg/controller/nodeipam/ipam/cloud_cidr_allocator.go, pkg/controller/nodeipam/ipam/multi_cidr_range_allocator.go pkg/controller/nodeipam/ipam/range_allocator.go pkg/controller/nodelifecycle/node_lifecycle_controller.go` to structured logging ([#112670](https://github.com/kubernetes/kubernetes/pull/112670), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) +- Migrated the Kubernetes object garbage collector (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113471](https://github.com/kubernetes/kubernetes/pull/113471), [@ncdc](https://github.com/ncdc)) +- Migrated the ttlafterfinished controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#115332](https://github.com/kubernetes/kubernetes/pull/115332), [@obaranov1](https://github.com/obaranov1)) [SIG Apps] +- Migrated the “sample-controller” controller to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113879](https://github.com/kubernetes/kubernetes/pull/113879), [@pchan](https://github.com/pchan)) [SIG API Machinery and Instrumentation] +- Promoted pod resource `limit/request` metrics to stable. ([#115454](https://github.com/kubernetes/kubernetes/pull/115454), [@dgrisonnet](https://github.com/dgrisonnet)) +- Removed AWS kubelet credential provider. Please use the external kubelet credential provider binary named `ecr-credential-provider` instead. ([#116329](https://github.com/kubernetes/kubernetes/pull/116329), [@dims](https://github.com/dims)) [SIG Node, Storage and Testing] +- Removed Azure disk in-tree storage plugin ([#116301](https://github.com/kubernetes/kubernetes/pull/116301), [@andyzhangx](https://github.com/andyzhangx)) +- Removed flag `master-service-namespace` from `api-server` arguments ([#114446](https://github.com/kubernetes/kubernetes/pull/114446), [@lengrongfu](https://github.com/lengrongfu)) +- Removed the following deprecated metrics: + - node_collector_evictions_number replaced by node_collector_evictions_total + - scheduler_e2e_scheduling_duration_seconds replaced by scheduler_scheduling_attempt_duration_seconds ([#115209](https://github.com/kubernetes/kubernetes/pull/115209), [@dgrisonnet](https://github.com/dgrisonnet)) +- Removed unused rule for `nodes/spec` from `ClusterRole` `system:kubelet-api-admin` ([#113267](https://github.com/kubernetes/kubernetes/pull/113267), [@hoskeri](https://github.com/hoskeri)) +- Renamed API server identity Lease labels to use the key `apiserver.kubernetes.io/identity` ([#114586](https://github.com/kubernetes/kubernetes/pull/114586), [@andrewsykim](https://github.com/andrewsykim)) [SIG API Machinery, Apps, Cloud Provider and Testing] +- Storage.k8s.io/v1beta1 API version of CSIStorageCapacity will no longer be served ([#116523](https://github.com/kubernetes/kubernetes/pull/116523), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery] +- The `CSIMigrationAzureFile` feature gate (for the feature which graduated to GA in v1.26) is now unconditionally enabled and will be removed in v1.28. ([#114953](https://github.com/kubernetes/kubernetes/pull/114953), [@enj](https://github.com/enj)) +- The `ControllerManagerLeaderMigration` feature, GA since `1.24`, is now unconditionally enabled and the feature gate option has been removed. ([#113534](https://github.com/kubernetes/kubernetes/pull/113534), [@pacoxu](https://github.com/pacoxu)) +- The `WaitFor` and `WaitForWithContext` functions in the wait package have now been marked private. Callers should use the equivalent `Poll*` method with a zero duration interval. ([#115116](https://github.com/kubernetes/kubernetes/pull/115116), [@smarterclayton](https://github.com/smarterclayton)) +- The `wait.Poll*` and `wait.ExponentialBackoff*` functions have been deprecated and will be removed in a future release. Callers should switch to using `wait.PollUntilContextCancel`, `wait.PollUntilContextTimeout`, or `wait.ExponentialBackoffWithContext` as appropriate. + + `PollWithContext(Cancel|Deadline)` will no longer return `ErrWaitTimeout` - use the `Interrupted(error) bool` helper to replace checks for `err == ErrWaitTimeout`, or compare specifically to context errors as needed. A future release will make the `ErrWaitTimeout` error private and callers must use `Interrupted()` instead. If you are returning `ErrWaitTimeout` from your own methods, switch to creating a location specific `cause err` and pass it to the new method `wait.ErrorInterrupted(cause) error` which will ensure `Interrupted()` returns true for your loop. + + The `wait.NewExponentialBackoffManager` and `wait.NewJitteringBackoffManager` functions have been marked as deprecated. Callers should switch to using the `Backoff{...}.DelayWithReset(clock, resetInterval)` method and must set the `Steps` field when using `Factor`. As a short term change, callers may use the `Timer()` method on the `BackoffManager` until the backoff managers are deprecated and removed. Please see the godoc of the deprecated functions for examples of how to replace usage of this function. ([#107826](https://github.com/kubernetes/kubernetes/pull/107826), [@smarterclayton](https://github.com/smarterclayton)) [SIG API Machinery, Auth, Cloud Provider, Storage and Testing] +- The feature gates `CSIInlineVolume`, `CSIMigration`, `DaemonSetUpdateSurge`, `EphemeralContainers`, `IdentifyPodOS`, `LocalStorageCapacityIsolation`, `NetworkPolicyEndPort` and `StatefulSetMinReadySeconds` that graduated to GA in v1.25 and were unconditionally enabled have been removed in v1.27 ([#114410](https://github.com/kubernetes/kubernetes/pull/114410), [@SataQiu](https://github.com/SataQiu)) [SIG Node] +- Upgraded `coredns` to `v1.10.1` ([#115603](https://github.com/kubernetes/kubernetes/pull/115603), [@pacoxu](https://github.com/pacoxu)) +- Upgraded `go-jose` to `v2.6.0` ([#115893](https://github.com/kubernetes/kubernetes/pull/115893), [@mgoltzsche](https://github.com/mgoltzsche)) +- [KCCM - service controller]: enabled connection draining for terminating pods upon node downscale by the cluster autoscaler. This is done by not reacting to the taint used by the cluster autoscaler to indicate that the node is going away soon, thus keeping the node referenced by the load balancer until the VM has been completely deleted. ([#115204](https://github.com/kubernetes/kubernetes/pull/115204), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) +- `apiserver_admission_webhook_admission_duration_seconds` buckets have been expanded, 25s is now the largest bucket size to match the webhook default timeout. ([#115802](https://github.com/kubernetes/kubernetes/pull/115802), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery and Instrumentation] +- `wait.ContextForChannel()` now implements the context.Context interface and does not return a cancellation function. ([#115140](https://github.com/kubernetes/kubernetes/pull/115140), [@smarterclayton](https://github.com/smarterclayton)) \ No newline at end of file diff --git a/releases/release-1.27/release-notes/sessions/maps-1674623486.json b/releases/release-1.27/release-notes/sessions/maps-1674623486.json index 53a453fdf78..a1ef958ba6f 100644 --- a/releases/release-1.27/release-notes/sessions/maps-1674623486.json +++ b/releases/release-1.27/release-notes/sessions/maps-1674623486.json @@ -1,519 +1,519 @@ -{ - "mail": "harshnar@cisco.com", - "name": "Harsha Narayana", - "date": 1674623486, - "prs": [ - { - "nr": 115207, - "hash": "af3c8125ee7ba064c6411de857e318cde818bdb5" - }, - { - "nr": 114863, - "hash": "bc4c5ab9caef7f7e3c121439d6775d43d78aab2d" - }, - { - "nr": 114923, - "hash": "716855993254a9aa33bd03297e05ad467f274749" - }, - { - "nr": 114252, - "hash": "0a93eb47eb7ab6301ad4207da7f60ab6f7367626" - }, - { - "nr": 113267, - "hash": "faa3424af480c8b7f79e28fcb58e86c20ad94ab0" - }, - { - "nr": 114609, - "hash": "095586d448f08b776933d6cdb4e5cd043c392b0d" - }, - { - "nr": 114699, - "hash": "d427efe3c6b5faa638f9db12d6cab2fba36a6ad7" - }, - { - "nr": 114464, - "hash": "2f0bb996754f86478192c6b16072231467cb27d5" - }, - { - "nr": 114033, - "hash": "eeb24f805c670db3425b36cab55bb81a4f35e91e" - }, - { - "nr": 108095, - "hash": "20bd594caf2796288fff01c593b08e3fe4868ace" - }, - { - "nr": 114446, - "hash": "b5227fe3278e21f827ce97b1e834585c835d9915" - }, - { - "nr": 111660, - "hash": "4f008fdf7e5ef785bf0716d53b2be61002227774" - }, - { - "nr": 114602, - "hash": "596066888708cd05896d0170738c325ce2a76c04" - }, - { - "nr": 115068, - "hash": "7680ec7f3ad1b12354cc4b1080beb7e197725dfe" - }, - { - "nr": 114407, - "hash": "5f727b36a7b34fe94d7a16aa41ec76fc73d18cfd" - }, - { - "nr": 114228, - "hash": "d80173178300703079d7ccf81d1354792cc210ee" - }, - { - "nr": 112021, - "hash": "815da517e4e673370c7d03df28a55aff0269a892" - }, - { - "nr": 114455, - "hash": "ec1431cca7f5b58619b0a99556187955103e9950" - }, - { - "nr": 113742, - "hash": "7f730aae9d520ab743fcbd9a86a9f70fa825cefa" - }, - { - "nr": 115113, - "hash": "a2d6670f46386f699515fc5d83c3a739f09d772d" - }, - { - "nr": 115046, - "hash": "f6f51b3519cca95dbbc436a7042da29be79d37cb" - }, - { - "nr": 114417, - "hash": "e03be16f0010bafbd7aaf86275dd75cbe6da83cf" - }, - { - "nr": 114623, - "hash": "0a2c7c47cd8fba5c894fdeb2a9b469e730e57bc2" - }, - { - "nr": 114236, - "hash": "82b3d748c6e020881332e0b7b2da1c1f00f7a6dd" - }, - { - "nr": 114445, - "hash": "0802ccdec0865a56a647265d778bea14dfd5d6c1" - }, - { - "nr": 114414, - "hash": "d80d920af6845ab8f88777d8c50d07ec437b2bda" - }, - { - "nr": 114231, - "hash": "a2f4e420111c8ba1a18fde992b9f78fccf4751db" - }, - { - "nr": 114125, - "hash": "52f9efc6a981d16025bba6186757f29581bdc080" - }, - { - "nr": 114246, - "hash": "d788dc56a42732732aeafc27d7666ee9a812804f" - }, - { - "nr": 111988, - "hash": "b4910b6f44d7ec4d61d13cd524bc72c16ac786ac" - }, - { - "nr": 113834, - "hash": "47bee26aded9e9493ab5f9a68882cc46d2ee9596" - }, - { - "nr": 113933, - "hash": "e18b327c435a25891d1047068426f3dc20cc631e" - }, - { - "nr": 114540, - "hash": "791d91400b4b7fb2b5b609495a6482adc86af16f" - }, - { - "nr": 110723, - "hash": "2fe79e7e31cd558f0b7bff14c1d40593e75158c2" - }, - { - "nr": 111178, - "hash": "6d7cbc636af97399b3cd5a02414b88a2240cbf87" - }, - { - "nr": 109877, - "hash": "70a0507c3966ba6687fa38b82bbdb66dba129495" - }, - { - "nr": 114178, - "hash": "fc738bfdee7ba96690480f0917ebd17a16e6cdf2" - }, - { - "nr": 114158, - "hash": "9074dc4779e0d06ca819bbaa91713d617f621055" - }, - { - "nr": 113284, - "hash": "c9e0c15a3916e13fd5d66e6bbdcdd02309f5b830" - }, - { - "nr": 114878, - "hash": "0c96b76d8ed74b2f5f163b55cd996b454f118a71" - }, - { - "nr": 114669, - "hash": "59987d4ae3a8a99519ffd87aebd31800fa92c026" - }, - { - "nr": 111802, - "hash": "203c537708ef0882afe78747b5310bfceac42d9e" - }, - { - "nr": 113943, - "hash": "45780c63adeb35db17c56eccadd1fe16ddc5bc15" - }, - { - "nr": 113040, - "hash": "93f4c7b71065f99f7b94ad407c764144f1014a89" - }, - { - "nr": 114279, - "hash": "9bf4674152b44019b730e652e52b819d0b4545e0" - }, - { - "nr": 114176, - "hash": "c2ceceac9d6a9a5794a3b88de81505a3ea273cf7" - }, - { - "nr": 114680, - "hash": "bec81f6a22c3fadf13ce30ba8d1dd0cf67574392" - }, - { - "nr": 114647, - "hash": "7b4ebb66a2cc66141dc8a72d5a43003cd4d931ab" - }, - { - "nr": 114570, - "hash": "a0779349e38e2d3ac2c303e1d3256b445ca71812" - }, - { - "nr": 113985, - "hash": "58ed9b4db422f9aaa32c38d0ac7e87edc60e125b" - }, - { - "nr": 114355, - "hash": "c14a60556f81654899ca18130e64e95ce17914a3" - }, - { - "nr": 114172, - "hash": "f45770ba66ae1c6853339d9edd77c58687c90b70" - }, - { - "nr": 115143, - "hash": "03cb3b55e6056e60e0f64b9aa4bccf6ab215a5c3" - }, - { - "nr": 114773, - "hash": "5832c4553346a5a3716555eb00c006c9e9d190ad" - }, - { - "nr": 114774, - "hash": "f585b4c04bbd552ba46727153693b63e08c3dc5c" - }, - { - "nr": 114740, - "hash": "ec5c04291e7beb8879aa3bdb35fa725e254874f3" - }, - { - "nr": 111207, - "hash": "0779b374bcec298e49dec688e0943ce591f33658" - }, - { - "nr": 115233, - "hash": "540a0ca1a641c52439754b2eebcfae070379e73a" - }, - { - "nr": 114586, - "hash": "001ea095d217ee2755ffdb2c808e1cea0575629a" - }, - { - "nr": 114393, - "hash": "b1af7cb5c8a7b634ed13b2e442598c5bec3642b4" - }, - { - "nr": 113083, - "hash": "494d89ebcd7af5a342bacf1774b0728e15fc8d46" - }, - { - "nr": 114055, - "hash": "a36c6d1d41ff202fdec7a0e099293f4ecd2b154d" - }, - { - "nr": 114981, - "hash": "044b171a5d73e28a34621240e0fe7756c4ac6fa8" - }, - { - "nr": 115163, - "hash": "b57504051a5e1f06f981f9207a0778f93656a4bf" - }, - { - "nr": 114953, - "hash": "d5a09801eeeb7c5831fb089dfe5c7c2027183bc2" - }, - { - "nr": 114237, - "hash": "681a356c931d2c68ee2e136f942ea95c1a5cccae" - }, - { - "nr": 115056, - "hash": "8a214b9dce152a02ebd212537b1510d1527340e3" - }, - { - "nr": 114869, - "hash": "8baa90640798c818f4def4140ef88790aada8701" - }, - { - "nr": 114770, - "hash": "37fce76d667e1f3f9bb1845ad996be27820cbfc8" - }, - { - "nr": 115102, - "hash": "60431f17f117032ee89f64ef0d6d1e6c82a2eaaa" - }, - { - "nr": 114523, - "hash": "1e9f58ec4ac1814bda12676c3bb25ccdad666db1" - }, - { - "nr": 114883, - "hash": "2ccfe0ce0398509c60eb962f9a5978729c6488ac" - }, - { - "nr": 114630, - "hash": "bc9ba2ebcfcb30333b0f0868afe95691a41179d0" - }, - { - "nr": 114116, - "hash": "a7b71b62431c50b505399b82f40b1c1bfeb49011" - }, - { - "nr": 114794, - "hash": "91053f29dffe10588c490944f9e48308e4dc23a2" - }, - { - "nr": 114350, - "hash": "4e7fcfb025d75354c9d5442869439c7d98c3ecc8" - }, - { - "nr": 114889, - "hash": "0a8af3aef52896e790997c45ea656dbc1fe75da7" - }, - { - "nr": 114980, - "hash": "bad5a6347b01f05d33baba8cdbcfde121b1ba456" - }, - { - "nr": 113318, - "hash": "9b63c829259e4c5c3f985243817c3959939d3d30" - }, - { - "nr": 114459, - "hash": "e401db6993d1a8835407664241ff4d354f08f0da" - }, - { - "nr": 115140, - "hash": "a2e9a3483c79bb4a9d39595c843acba670d83166" - }, - { - "nr": 114814, - "hash": "9409ec91ef93b04b4b2adc9e09f550c043281857" - }, - { - "nr": 115116, - "hash": "b99bd77bf6cf49bfd338285f9e15a864f52a8768" - }, - { - "nr": 114460, - "hash": "5d6a28a8700501380071909bcd35f144106dba3e" - }, - { - "nr": 114734, - "hash": "565ca1d37657f38e9670f57736273f6edd7ddb22" - }, - { - "nr": 114249, - "hash": "fa0401b491f8e7ec636fcb0e7a87d2c8f8055a73" - }, - { - "nr": 115017, - "hash": "9727e920a68605f557e0446e39cc4384cbb4e94e" - }, - { - "nr": 115079, - "hash": "22c00c5205130912f4d8f438f47effb0fcb0cdda" - }, - { - "nr": 113581, - "hash": "2cc84e6f2292a68171a8a33375d8686814dc0fff" - }, - { - "nr": 114914, - "hash": "5a390c9308d75abf381b4329114aa3fbc22f623a" - }, - { - "nr": 114857, - "hash": "697de899fd718a5c3c044e7f5771c31366b01a60" - }, - { - "nr": 114584, - "hash": "514696b003488b7b347b98b9d72d7e59e73ae164" - }, - { - "nr": 114518, - "hash": "0fa8c784a5c928dc028577ee7dba1749a5c8b5b8" - }, - { - "nr": 114155, - "hash": "2f138e05dc5b477a5e6421439d302868af287273" - }, - { - "nr": 112260, - "hash": "700f695fe64773e6c207e756fc21dc2c302c3a73" - }, - { - "nr": 111683, - "hash": "85745566003cd27b7df59839ec1f707ea5f27d39" - }, - { - "nr": 115093, - "hash": "f20150ac26e266a5622a584f44790d46242faa39" - }, - { - "nr": 115074, - "hash": "216e162f7d75c952bd3d3e3e486e728afc0c0db4" - }, - { - "nr": 112136, - "hash": "0f8b55b85637cdba5cd0ec9e66862a68bb4878b8" - }, - { - "nr": 113787, - "hash": "ec4c5f514a492a63a389248637781d80416b68a2" - }, - { - "nr": 114505, - "hash": "4169686a99d43cfb88892dfe8c62370aa1880b37" - }, - { - "nr": 115010, - "hash": "5cc3b59ebc0853d61726854e626970536105f94e" - }, - { - "nr": 113776, - "hash": "95248a407fb03efdf6442b89d936886dede5b3f9" - }, - { - "nr": 114776, - "hash": "89883d2565e28753619889d0b31fc3061d55cdc6" - }, - { - "nr": 114886, - "hash": "7b590a5aa4e173a8c85fa4d6ba2d0ebb0b996cdf" - }, - { - "nr": 114516, - "hash": "28b8f914d192c64197fe5cfacfb7388f68d25bf3" - }, - { - "nr": 114947, - "hash": "b5452d4b81d7b9072bf1198681bdd8e462b7ac52" - }, - { - "nr": 112365, - "hash": "5e02c5eae221987e93031283557d9bd04e0323aa" - }, - { - "nr": 114736, - "hash": "e30484e90b1e1d10b367c5e9195d9d83a5cd9bce" - }, - { - "nr": 113942, - "hash": "ccfb3c6b3d67b9c733e159daa5248d647a981fa8" - }, - { - "nr": 112817, - "hash": "596508cd69acaccedb588dd1d8b09d16f0945aa5" - }, - { - "nr": 111583, - "hash": "c902ec263e82d7d039c484b591e3eeb8a0599910" - }, - { - "nr": 115254, - "hash": "4dc61ad9d6b214f2e387fc1078184d9d832318a7" - }, - { - "nr": 114596, - "hash": "4461db1edbae75167f89ef507672fb9ba8dd242c" - }, - { - "nr": 113795, - "hash": "3fb6c8789cde8f92b6b6e6cda6df26a9f7b1cd70" - }, - { - "nr": 112925, - "hash": "5708c04a14ce7d1ebbeb507f25d8d8d39616b2bf" - }, - { - "nr": 114065, - "hash": "5b6dccaa366bf90b5429163095658c1b28c7465e" - }, - { - "nr": 114412, - "hash": "eeac95f164f65fe7748ee7cd0b281f2c303df88e" - }, - { - "nr": 114191, - "hash": "3f3bd10a2135e82ca346f9a7933b1f776b8e0543" - }, - { - "nr": 114360, - "hash": "fcd8173ac63206ccfa3faea7c562d915c9f28145" - }, - { - "nr": 114410, - "hash": "3fc1e92e0b66d10e1e870a1af6f3ce23281e002d" - }, - { - "nr": 113998, - "hash": "b70630285166b4b38275ab54340d59f913b82647" - }, - { - "nr": 114802, - "hash": "dbf49246ac3f0d3112be48f7753a0acac2f6d650" - }, - { - "nr": 114585, - "hash": "1d754f6028408e3afe7d95517a1ca4b931af0bbd" - }, - { - "nr": 114338, - "hash": "6cf461a25fd2f5f951e384b22683abb856f43a98" - }, - { - "nr": 114015, - "hash": "288fdc7586a26e027d5bc6c4cb1a305682d57ba2" - }, - { - "nr": 114086, - "hash": "a2592c1bc5b203296a1f3646d327a167f3d14a66" - }, - { - "nr": 112719, - "hash": "ae628219727b1b81d189d649a70fd048a2cb787a" - } - ] +{ + "mail": "harshnar@cisco.com", + "name": "Harsha Narayana", + "date": 1674623486, + "prs": [ + { + "nr": 115207, + "hash": "af3c8125ee7ba064c6411de857e318cde818bdb5" + }, + { + "nr": 114863, + "hash": "bc4c5ab9caef7f7e3c121439d6775d43d78aab2d" + }, + { + "nr": 114923, + "hash": "716855993254a9aa33bd03297e05ad467f274749" + }, + { + "nr": 114252, + "hash": "0a93eb47eb7ab6301ad4207da7f60ab6f7367626" + }, + { + "nr": 113267, + "hash": "faa3424af480c8b7f79e28fcb58e86c20ad94ab0" + }, + { + "nr": 114609, + "hash": "095586d448f08b776933d6cdb4e5cd043c392b0d" + }, + { + "nr": 114699, + "hash": "d427efe3c6b5faa638f9db12d6cab2fba36a6ad7" + }, + { + "nr": 114464, + "hash": "2f0bb996754f86478192c6b16072231467cb27d5" + }, + { + "nr": 114033, + "hash": "eeb24f805c670db3425b36cab55bb81a4f35e91e" + }, + { + "nr": 108095, + "hash": "20bd594caf2796288fff01c593b08e3fe4868ace" + }, + { + "nr": 114446, + "hash": "b5227fe3278e21f827ce97b1e834585c835d9915" + }, + { + "nr": 111660, + "hash": "4f008fdf7e5ef785bf0716d53b2be61002227774" + }, + { + "nr": 114602, + "hash": "596066888708cd05896d0170738c325ce2a76c04" + }, + { + "nr": 115068, + "hash": "7680ec7f3ad1b12354cc4b1080beb7e197725dfe" + }, + { + "nr": 114407, + "hash": "5f727b36a7b34fe94d7a16aa41ec76fc73d18cfd" + }, + { + "nr": 114228, + "hash": "d80173178300703079d7ccf81d1354792cc210ee" + }, + { + "nr": 112021, + "hash": "815da517e4e673370c7d03df28a55aff0269a892" + }, + { + "nr": 114455, + "hash": "ec1431cca7f5b58619b0a99556187955103e9950" + }, + { + "nr": 113742, + "hash": "7f730aae9d520ab743fcbd9a86a9f70fa825cefa" + }, + { + "nr": 115113, + "hash": "a2d6670f46386f699515fc5d83c3a739f09d772d" + }, + { + "nr": 115046, + "hash": "f6f51b3519cca95dbbc436a7042da29be79d37cb" + }, + { + "nr": 114417, + "hash": "e03be16f0010bafbd7aaf86275dd75cbe6da83cf" + }, + { + "nr": 114623, + "hash": "0a2c7c47cd8fba5c894fdeb2a9b469e730e57bc2" + }, + { + "nr": 114236, + "hash": "82b3d748c6e020881332e0b7b2da1c1f00f7a6dd" + }, + { + "nr": 114445, + "hash": "0802ccdec0865a56a647265d778bea14dfd5d6c1" + }, + { + "nr": 114414, + "hash": "d80d920af6845ab8f88777d8c50d07ec437b2bda" + }, + { + "nr": 114231, + "hash": "a2f4e420111c8ba1a18fde992b9f78fccf4751db" + }, + { + "nr": 114125, + "hash": "52f9efc6a981d16025bba6186757f29581bdc080" + }, + { + "nr": 114246, + "hash": "d788dc56a42732732aeafc27d7666ee9a812804f" + }, + { + "nr": 111988, + "hash": "b4910b6f44d7ec4d61d13cd524bc72c16ac786ac" + }, + { + "nr": 113834, + "hash": "47bee26aded9e9493ab5f9a68882cc46d2ee9596" + }, + { + "nr": 113933, + "hash": "e18b327c435a25891d1047068426f3dc20cc631e" + }, + { + "nr": 114540, + "hash": "791d91400b4b7fb2b5b609495a6482adc86af16f" + }, + { + "nr": 110723, + "hash": "2fe79e7e31cd558f0b7bff14c1d40593e75158c2" + }, + { + "nr": 111178, + "hash": "6d7cbc636af97399b3cd5a02414b88a2240cbf87" + }, + { + "nr": 109877, + "hash": "70a0507c3966ba6687fa38b82bbdb66dba129495" + }, + { + "nr": 114178, + "hash": "fc738bfdee7ba96690480f0917ebd17a16e6cdf2" + }, + { + "nr": 114158, + "hash": "9074dc4779e0d06ca819bbaa91713d617f621055" + }, + { + "nr": 113284, + "hash": "c9e0c15a3916e13fd5d66e6bbdcdd02309f5b830" + }, + { + "nr": 114878, + "hash": "0c96b76d8ed74b2f5f163b55cd996b454f118a71" + }, + { + "nr": 114669, + "hash": "59987d4ae3a8a99519ffd87aebd31800fa92c026" + }, + { + "nr": 111802, + "hash": "203c537708ef0882afe78747b5310bfceac42d9e" + }, + { + "nr": 113943, + "hash": "45780c63adeb35db17c56eccadd1fe16ddc5bc15" + }, + { + "nr": 113040, + "hash": "93f4c7b71065f99f7b94ad407c764144f1014a89" + }, + { + "nr": 114279, + "hash": "9bf4674152b44019b730e652e52b819d0b4545e0" + }, + { + "nr": 114176, + "hash": "c2ceceac9d6a9a5794a3b88de81505a3ea273cf7" + }, + { + "nr": 114680, + "hash": "bec81f6a22c3fadf13ce30ba8d1dd0cf67574392" + }, + { + "nr": 114647, + "hash": "7b4ebb66a2cc66141dc8a72d5a43003cd4d931ab" + }, + { + "nr": 114570, + "hash": "a0779349e38e2d3ac2c303e1d3256b445ca71812" + }, + { + "nr": 113985, + "hash": "58ed9b4db422f9aaa32c38d0ac7e87edc60e125b" + }, + { + "nr": 114355, + "hash": "c14a60556f81654899ca18130e64e95ce17914a3" + }, + { + "nr": 114172, + "hash": "f45770ba66ae1c6853339d9edd77c58687c90b70" + }, + { + "nr": 115143, + "hash": "03cb3b55e6056e60e0f64b9aa4bccf6ab215a5c3" + }, + { + "nr": 114773, + "hash": "5832c4553346a5a3716555eb00c006c9e9d190ad" + }, + { + "nr": 114774, + "hash": "f585b4c04bbd552ba46727153693b63e08c3dc5c" + }, + { + "nr": 114740, + "hash": "ec5c04291e7beb8879aa3bdb35fa725e254874f3" + }, + { + "nr": 111207, + "hash": "0779b374bcec298e49dec688e0943ce591f33658" + }, + { + "nr": 115233, + "hash": "540a0ca1a641c52439754b2eebcfae070379e73a" + }, + { + "nr": 114586, + "hash": "001ea095d217ee2755ffdb2c808e1cea0575629a" + }, + { + "nr": 114393, + "hash": "b1af7cb5c8a7b634ed13b2e442598c5bec3642b4" + }, + { + "nr": 113083, + "hash": "494d89ebcd7af5a342bacf1774b0728e15fc8d46" + }, + { + "nr": 114055, + "hash": "a36c6d1d41ff202fdec7a0e099293f4ecd2b154d" + }, + { + "nr": 114981, + "hash": "044b171a5d73e28a34621240e0fe7756c4ac6fa8" + }, + { + "nr": 115163, + "hash": "b57504051a5e1f06f981f9207a0778f93656a4bf" + }, + { + "nr": 114953, + "hash": "d5a09801eeeb7c5831fb089dfe5c7c2027183bc2" + }, + { + "nr": 114237, + "hash": "681a356c931d2c68ee2e136f942ea95c1a5cccae" + }, + { + "nr": 115056, + "hash": "8a214b9dce152a02ebd212537b1510d1527340e3" + }, + { + "nr": 114869, + "hash": "8baa90640798c818f4def4140ef88790aada8701" + }, + { + "nr": 114770, + "hash": "37fce76d667e1f3f9bb1845ad996be27820cbfc8" + }, + { + "nr": 115102, + "hash": "60431f17f117032ee89f64ef0d6d1e6c82a2eaaa" + }, + { + "nr": 114523, + "hash": "1e9f58ec4ac1814bda12676c3bb25ccdad666db1" + }, + { + "nr": 114883, + "hash": "2ccfe0ce0398509c60eb962f9a5978729c6488ac" + }, + { + "nr": 114630, + "hash": "bc9ba2ebcfcb30333b0f0868afe95691a41179d0" + }, + { + "nr": 114116, + "hash": "a7b71b62431c50b505399b82f40b1c1bfeb49011" + }, + { + "nr": 114794, + "hash": "91053f29dffe10588c490944f9e48308e4dc23a2" + }, + { + "nr": 114350, + "hash": "4e7fcfb025d75354c9d5442869439c7d98c3ecc8" + }, + { + "nr": 114889, + "hash": "0a8af3aef52896e790997c45ea656dbc1fe75da7" + }, + { + "nr": 114980, + "hash": "bad5a6347b01f05d33baba8cdbcfde121b1ba456" + }, + { + "nr": 113318, + "hash": "9b63c829259e4c5c3f985243817c3959939d3d30" + }, + { + "nr": 114459, + "hash": "e401db6993d1a8835407664241ff4d354f08f0da" + }, + { + "nr": 115140, + "hash": "a2e9a3483c79bb4a9d39595c843acba670d83166" + }, + { + "nr": 114814, + "hash": "9409ec91ef93b04b4b2adc9e09f550c043281857" + }, + { + "nr": 115116, + "hash": "b99bd77bf6cf49bfd338285f9e15a864f52a8768" + }, + { + "nr": 114460, + "hash": "5d6a28a8700501380071909bcd35f144106dba3e" + }, + { + "nr": 114734, + "hash": "565ca1d37657f38e9670f57736273f6edd7ddb22" + }, + { + "nr": 114249, + "hash": "fa0401b491f8e7ec636fcb0e7a87d2c8f8055a73" + }, + { + "nr": 115017, + "hash": "9727e920a68605f557e0446e39cc4384cbb4e94e" + }, + { + "nr": 115079, + "hash": "22c00c5205130912f4d8f438f47effb0fcb0cdda" + }, + { + "nr": 113581, + "hash": "2cc84e6f2292a68171a8a33375d8686814dc0fff" + }, + { + "nr": 114914, + "hash": "5a390c9308d75abf381b4329114aa3fbc22f623a" + }, + { + "nr": 114857, + "hash": "697de899fd718a5c3c044e7f5771c31366b01a60" + }, + { + "nr": 114584, + "hash": "514696b003488b7b347b98b9d72d7e59e73ae164" + }, + { + "nr": 114518, + "hash": "0fa8c784a5c928dc028577ee7dba1749a5c8b5b8" + }, + { + "nr": 114155, + "hash": "2f138e05dc5b477a5e6421439d302868af287273" + }, + { + "nr": 112260, + "hash": "700f695fe64773e6c207e756fc21dc2c302c3a73" + }, + { + "nr": 111683, + "hash": "85745566003cd27b7df59839ec1f707ea5f27d39" + }, + { + "nr": 115093, + "hash": "f20150ac26e266a5622a584f44790d46242faa39" + }, + { + "nr": 115074, + "hash": "216e162f7d75c952bd3d3e3e486e728afc0c0db4" + }, + { + "nr": 112136, + "hash": "0f8b55b85637cdba5cd0ec9e66862a68bb4878b8" + }, + { + "nr": 113787, + "hash": "ec4c5f514a492a63a389248637781d80416b68a2" + }, + { + "nr": 114505, + "hash": "4169686a99d43cfb88892dfe8c62370aa1880b37" + }, + { + "nr": 115010, + "hash": "5cc3b59ebc0853d61726854e626970536105f94e" + }, + { + "nr": 113776, + "hash": "95248a407fb03efdf6442b89d936886dede5b3f9" + }, + { + "nr": 114776, + "hash": "89883d2565e28753619889d0b31fc3061d55cdc6" + }, + { + "nr": 114886, + "hash": "7b590a5aa4e173a8c85fa4d6ba2d0ebb0b996cdf" + }, + { + "nr": 114516, + "hash": "28b8f914d192c64197fe5cfacfb7388f68d25bf3" + }, + { + "nr": 114947, + "hash": "b5452d4b81d7b9072bf1198681bdd8e462b7ac52" + }, + { + "nr": 112365, + "hash": "5e02c5eae221987e93031283557d9bd04e0323aa" + }, + { + "nr": 114736, + "hash": "e30484e90b1e1d10b367c5e9195d9d83a5cd9bce" + }, + { + "nr": 113942, + "hash": "ccfb3c6b3d67b9c733e159daa5248d647a981fa8" + }, + { + "nr": 112817, + "hash": "596508cd69acaccedb588dd1d8b09d16f0945aa5" + }, + { + "nr": 111583, + "hash": "c902ec263e82d7d039c484b591e3eeb8a0599910" + }, + { + "nr": 115254, + "hash": "4dc61ad9d6b214f2e387fc1078184d9d832318a7" + }, + { + "nr": 114596, + "hash": "4461db1edbae75167f89ef507672fb9ba8dd242c" + }, + { + "nr": 113795, + "hash": "3fb6c8789cde8f92b6b6e6cda6df26a9f7b1cd70" + }, + { + "nr": 112925, + "hash": "5708c04a14ce7d1ebbeb507f25d8d8d39616b2bf" + }, + { + "nr": 114065, + "hash": "5b6dccaa366bf90b5429163095658c1b28c7465e" + }, + { + "nr": 114412, + "hash": "eeac95f164f65fe7748ee7cd0b281f2c303df88e" + }, + { + "nr": 114191, + "hash": "3f3bd10a2135e82ca346f9a7933b1f776b8e0543" + }, + { + "nr": 114360, + "hash": "fcd8173ac63206ccfa3faea7c562d915c9f28145" + }, + { + "nr": 114410, + "hash": "3fc1e92e0b66d10e1e870a1af6f3ce23281e002d" + }, + { + "nr": 113998, + "hash": "b70630285166b4b38275ab54340d59f913b82647" + }, + { + "nr": 114802, + "hash": "dbf49246ac3f0d3112be48f7753a0acac2f6d650" + }, + { + "nr": 114585, + "hash": "1d754f6028408e3afe7d95517a1ca4b931af0bbd" + }, + { + "nr": 114338, + "hash": "6cf461a25fd2f5f951e384b22683abb856f43a98" + }, + { + "nr": 114015, + "hash": "288fdc7586a26e027d5bc6c4cb1a305682d57ba2" + }, + { + "nr": 114086, + "hash": "a2592c1bc5b203296a1f3646d327a167f3d14a66" + }, + { + "nr": 112719, + "hash": "ae628219727b1b81d189d649a70fd048a2cb787a" + } + ] } \ No newline at end of file diff --git a/releases/release-1.27/release-notes/sessions/maps-1676748443.json b/releases/release-1.27/release-notes/sessions/maps-1676748443.json index e0cb4d86618..eab3fb0880a 100644 --- a/releases/release-1.27/release-notes/sessions/maps-1676748443.json +++ b/releases/release-1.27/release-notes/sessions/maps-1676748443.json @@ -1,247 +1,247 @@ -{ - "mail": "sanchita.mishra1718@gmail.com", - "name": "sanchita-07", - "date": 1676748443, - "prs": [ - { - "nr": 115384, - "hash": "0215f0898230b469951f5dc1e5f63044532901b5" - }, - { - "nr": 115464, - "hash": "a5ffa122ea2ee5bcf8f45c93b80529e1f321910e" - }, - { - "nr": 114472, - "hash": "f83823e425062ad9f72b12c0a9256331e16c49cd" - }, - { - "nr": 115434, - "hash": "f2ebb46a4bcb48fcc962d770cfe7073685001148" - }, - { - "nr": 108984, - "hash": "9c4acb366b879a44883983077e9ca1ae806352b3" - }, - { - "nr": 112809, - "hash": "f31716254a4e4e15ae6ae119c7364e03060e1c99" - }, - { - "nr": 114516, - "hash": "22c09a175e27daa36c0256b08f5f5e6da9b864f3" - }, - { - "nr": 114987, - "hash": "34d14f4d0c0da9f5cc89f0cb597a4c57535b12da" - }, - { - "nr": 115137, - "hash": "66673f80ba2fbc5cbe043bf0079a300caee4d146" - }, - { - "nr": 115336, - "hash": "d49257cfdd2f9738ce5a198c94a2c8f175830769" - }, - { - "nr": 111453, - "hash": "039db2fe033c610f6680c553435ff707ddc694a2" - }, - { - "nr": 115454, - "hash": "89ee52765a5e69d1eeae4213ef7242df670171f7" - }, - { - "nr": 115349, - "hash": "1c982879cb13915d8222d63694afbcbd3fc12be1" - }, - { - "nr": 115569, - "hash": "6cf561f87fc48e6798155da1a6ad7bcb00d1875b" - }, - { - "nr": 113104, - "hash": "10ad94a2864c5246c2ddba0e44753680a7e6ec20" - }, - { - "nr": 115503, - "hash": "acb3dfe633710648161c8a51010e4ef1a01350e1" - }, - { - "nr": 115346, - "hash": "2bc9607fb69deef804609b0e3546872075bc35c0" - }, - { - "nr": 115315, - "hash": "00bc92bde636e6f13d28e08627e2a172d3070b53" - }, - { - "nr": 115577, - "hash": "371c149a44128c63f85e3a733788afed86fc6a34" - }, - { - "nr": 115377, - "hash": "ee48a5dac6699ca2969177b0e19f19982f3e92e5" - }, - { - "nr": 114231, - "hash": "a4de9f3ddc8647d9e56707cdc7328e84e123251d" - }, - { - "nr": 115678, - "hash": "ec22882ac2224d3ce24f3dd79849636e34814805" - }, - { - "nr": 113794, - "hash": "a4211817d6f2e39f4a637032b21bfb8c04cae205" - }, - { - "nr": 115379, - "hash": "16032e052eb805b0f8a82ee254813caad6bea085" - }, - { - "nr": 114280, - "hash": "8a73275401aaca0fb28156ee3b82ae5f03eac2e2" - }, - { - "nr": 115322, - "hash": "71ec2364c97bda82a3d8de1665482669d4896e3b" - }, - { - "nr": 115283, - "hash": "fd282b66067439d801a0ae9c9e67aa974d5da19a" - }, - { - "nr": 115652, - "hash": "5d88200217681afa088c957aee8a566ee78e30d9" - }, - { - "nr": 115179, - "hash": "40394b4adf04fe694b04d4ba31a6885ac00d34a6" - }, - { - "nr": 115321, - "hash": "0a240c2b759b91bcc474374dd560e5bfbb8740c8" - }, - { - "nr": 114376, - "hash": "1f60fa7e0f93107021ec2fb5a5b730c5e456242c" - }, - { - "nr": 112624, - "hash": "0ac8cad59b8dec58a0366de0141e1c49315d1da6" - }, - { - "nr": 113315, - "hash": "05d0fa3b3afe986a259df5f18845a1db115689a0" - }, - { - "nr": 115341, - "hash": "dea553f7fe6ef3d969c9941dda1faec66a6af2b6" - }, - { - "nr": 114490, - "hash": "bc87e190839861db94391034c103d11e14a3a88f" - }, - { - "nr": 114695, - "hash": "7cb94b421898655dbee47e5df298b7f933cdd8b3" - }, - { - "nr": 115412, - "hash": "53174237c3635bd4d9a77b0ff55d6200944304f2" - }, - { - "nr": 115690, - "hash": "047a94357d3829805ab3b73bc884476fef42a6c5" - }, - { - "nr": 114459, - "hash": "25f4985f720d010bfd1fbe09617b756b8662504b" - }, - { - "nr": 114364, - "hash": "85f899ee3c5b0f29a07b43eab3a0f7664cde01d9" - }, - { - "nr": 113534, - "hash": "f40a3fe8680f69c8f128fefb84b6061a0ec6f43f" - }, - { - "nr": 114694, - "hash": "2a1e26883a4b28000beee0e02255c62f78ea7af7" - }, - { - "nr": 111982, - "hash": "81ee47fc2ef108f56a046ebe70bd68eb9b2ba600" - }, - { - "nr": 115649, - "hash": "06a41475526c02ffdc8b255594240be27cd8af77" - }, - { - "nr": 108396, - "hash": "9495c4e111e2748c1faca275d93723e01bfde6e5" - }, - { - "nr": 115038, - "hash": "d43f77133a2edd955becbc93ab6256487e31c6a4" - }, - { - "nr": 115354, - "hash": "8ceb73d6b8d5098f829d6d6658c41fca5a14ccb8" - }, - { - "nr": 114731, - "hash": "a7996767b310b1064f6acf165d74680619a9b8d4" - }, - { - "nr": 115739, - "hash": "41bbad1405f37ce0468679d23b02b7ddbc4f4aef" - }, - { - "nr": 114920, - "hash": "42132e9b2548d7977270a40c93497fde9a0092dc" - }, - { - "nr": 114997, - "hash": "06c2a8f7a015746f193cc8a70a386e72563b7d63" - }, - { - "nr": 115514, - "hash": "8d2646c0219dbba2b0f8e15b9682733b1fb55729" - }, - { - "nr": 114605, - "hash": "14276b82a1a701b85378f25e6e981b4222e47cf0" - }, - { - "nr": 115310, - "hash": "5ba85be2af6ba8e45d4b43f0a060ddd709c52430" - }, - { - "nr": 114418, - "hash": "d909322111dad8002f2b07b9dacc51bc34b0a674" - }, - { - "nr": 113121, - "hash": "10316c12980812e5f001425bf26cd996338a715a" - }, - { - "nr": 115709, - "hash": "896383e07d6af954a697515c3f8d29970ab2e46d" - }, - { - "nr": 114051, - "hash": "0926e045ff70d2d1e4243eb31783d0641f210065" - }, - { - "nr": 114502, - "hash": "2ed36fdd31d28ef35e394805b6791acda41b4ef5" - }, - { - "nr": 115138, - "hash": "f2b54deae798155955a0a45ab0825051d2afbb5e" - } - ] +{ + "mail": "sanchita.mishra1718@gmail.com", + "name": "sanchita-07", + "date": 1676748443, + "prs": [ + { + "nr": 115384, + "hash": "0215f0898230b469951f5dc1e5f63044532901b5" + }, + { + "nr": 115464, + "hash": "a5ffa122ea2ee5bcf8f45c93b80529e1f321910e" + }, + { + "nr": 114472, + "hash": "f83823e425062ad9f72b12c0a9256331e16c49cd" + }, + { + "nr": 115434, + "hash": "f2ebb46a4bcb48fcc962d770cfe7073685001148" + }, + { + "nr": 108984, + "hash": "9c4acb366b879a44883983077e9ca1ae806352b3" + }, + { + "nr": 112809, + "hash": "f31716254a4e4e15ae6ae119c7364e03060e1c99" + }, + { + "nr": 114516, + "hash": "22c09a175e27daa36c0256b08f5f5e6da9b864f3" + }, + { + "nr": 114987, + "hash": "34d14f4d0c0da9f5cc89f0cb597a4c57535b12da" + }, + { + "nr": 115137, + "hash": "66673f80ba2fbc5cbe043bf0079a300caee4d146" + }, + { + "nr": 115336, + "hash": "d49257cfdd2f9738ce5a198c94a2c8f175830769" + }, + { + "nr": 111453, + "hash": "039db2fe033c610f6680c553435ff707ddc694a2" + }, + { + "nr": 115454, + "hash": "89ee52765a5e69d1eeae4213ef7242df670171f7" + }, + { + "nr": 115349, + "hash": "1c982879cb13915d8222d63694afbcbd3fc12be1" + }, + { + "nr": 115569, + "hash": "6cf561f87fc48e6798155da1a6ad7bcb00d1875b" + }, + { + "nr": 113104, + "hash": "10ad94a2864c5246c2ddba0e44753680a7e6ec20" + }, + { + "nr": 115503, + "hash": "acb3dfe633710648161c8a51010e4ef1a01350e1" + }, + { + "nr": 115346, + "hash": "2bc9607fb69deef804609b0e3546872075bc35c0" + }, + { + "nr": 115315, + "hash": "00bc92bde636e6f13d28e08627e2a172d3070b53" + }, + { + "nr": 115577, + "hash": "371c149a44128c63f85e3a733788afed86fc6a34" + }, + { + "nr": 115377, + "hash": "ee48a5dac6699ca2969177b0e19f19982f3e92e5" + }, + { + "nr": 114231, + "hash": "a4de9f3ddc8647d9e56707cdc7328e84e123251d" + }, + { + "nr": 115678, + "hash": "ec22882ac2224d3ce24f3dd79849636e34814805" + }, + { + "nr": 113794, + "hash": "a4211817d6f2e39f4a637032b21bfb8c04cae205" + }, + { + "nr": 115379, + "hash": "16032e052eb805b0f8a82ee254813caad6bea085" + }, + { + "nr": 114280, + "hash": "8a73275401aaca0fb28156ee3b82ae5f03eac2e2" + }, + { + "nr": 115322, + "hash": "71ec2364c97bda82a3d8de1665482669d4896e3b" + }, + { + "nr": 115283, + "hash": "fd282b66067439d801a0ae9c9e67aa974d5da19a" + }, + { + "nr": 115652, + "hash": "5d88200217681afa088c957aee8a566ee78e30d9" + }, + { + "nr": 115179, + "hash": "40394b4adf04fe694b04d4ba31a6885ac00d34a6" + }, + { + "nr": 115321, + "hash": "0a240c2b759b91bcc474374dd560e5bfbb8740c8" + }, + { + "nr": 114376, + "hash": "1f60fa7e0f93107021ec2fb5a5b730c5e456242c" + }, + { + "nr": 112624, + "hash": "0ac8cad59b8dec58a0366de0141e1c49315d1da6" + }, + { + "nr": 113315, + "hash": "05d0fa3b3afe986a259df5f18845a1db115689a0" + }, + { + "nr": 115341, + "hash": "dea553f7fe6ef3d969c9941dda1faec66a6af2b6" + }, + { + "nr": 114490, + "hash": "bc87e190839861db94391034c103d11e14a3a88f" + }, + { + "nr": 114695, + "hash": "7cb94b421898655dbee47e5df298b7f933cdd8b3" + }, + { + "nr": 115412, + "hash": "53174237c3635bd4d9a77b0ff55d6200944304f2" + }, + { + "nr": 115690, + "hash": "047a94357d3829805ab3b73bc884476fef42a6c5" + }, + { + "nr": 114459, + "hash": "25f4985f720d010bfd1fbe09617b756b8662504b" + }, + { + "nr": 114364, + "hash": "85f899ee3c5b0f29a07b43eab3a0f7664cde01d9" + }, + { + "nr": 113534, + "hash": "f40a3fe8680f69c8f128fefb84b6061a0ec6f43f" + }, + { + "nr": 114694, + "hash": "2a1e26883a4b28000beee0e02255c62f78ea7af7" + }, + { + "nr": 111982, + "hash": "81ee47fc2ef108f56a046ebe70bd68eb9b2ba600" + }, + { + "nr": 115649, + "hash": "06a41475526c02ffdc8b255594240be27cd8af77" + }, + { + "nr": 108396, + "hash": "9495c4e111e2748c1faca275d93723e01bfde6e5" + }, + { + "nr": 115038, + "hash": "d43f77133a2edd955becbc93ab6256487e31c6a4" + }, + { + "nr": 115354, + "hash": "8ceb73d6b8d5098f829d6d6658c41fca5a14ccb8" + }, + { + "nr": 114731, + "hash": "a7996767b310b1064f6acf165d74680619a9b8d4" + }, + { + "nr": 115739, + "hash": "41bbad1405f37ce0468679d23b02b7ddbc4f4aef" + }, + { + "nr": 114920, + "hash": "42132e9b2548d7977270a40c93497fde9a0092dc" + }, + { + "nr": 114997, + "hash": "06c2a8f7a015746f193cc8a70a386e72563b7d63" + }, + { + "nr": 115514, + "hash": "8d2646c0219dbba2b0f8e15b9682733b1fb55729" + }, + { + "nr": 114605, + "hash": "14276b82a1a701b85378f25e6e981b4222e47cf0" + }, + { + "nr": 115310, + "hash": "5ba85be2af6ba8e45d4b43f0a060ddd709c52430" + }, + { + "nr": 114418, + "hash": "d909322111dad8002f2b07b9dacc51bc34b0a674" + }, + { + "nr": 113121, + "hash": "10316c12980812e5f001425bf26cd996338a715a" + }, + { + "nr": 115709, + "hash": "896383e07d6af954a697515c3f8d29970ab2e46d" + }, + { + "nr": 114051, + "hash": "0926e045ff70d2d1e4243eb31783d0641f210065" + }, + { + "nr": 114502, + "hash": "2ed36fdd31d28ef35e394805b6791acda41b4ef5" + }, + { + "nr": 115138, + "hash": "f2b54deae798155955a0a45ab0825051d2afbb5e" + } + ] } \ No newline at end of file diff --git a/releases/release-1.27/release-notes/sessions/maps-1677855845.json b/releases/release-1.27/release-notes/sessions/maps-1677855845.json index f89031d1056..7b99214d064 100644 --- a/releases/release-1.27/release-notes/sessions/maps-1677855845.json +++ b/releases/release-1.27/release-notes/sessions/maps-1677855845.json @@ -1,947 +1,947 @@ -{ - "mail": "richard.j.sadowski@gmail.com", - "name": "rsadowsk", - "date": 1677855845, - "prs": [ - { - "nr": 115652, - "hash": "5d88200217681afa088c957aee8a566ee78e30d9" - }, - { - "nr": 115349, - "hash": "1c982879cb13915d8222d63694afbcbd3fc12be1" - }, - { - "nr": 115907, - "hash": "395e846800674dcce0e0d4a9923978937f790026" - }, - { - "nr": 115944, - "hash": "5300176e904945126dc0f966009916aadfe5496a" - }, - { - "nr": 115138, - "hash": "f2b54deae798155955a0a45ab0825051d2afbb5e" - }, - { - "nr": 115207, - "hash": "af3c8125ee7ba064c6411de857e318cde818bdb5" - }, - { - "nr": 114460, - "hash": "5d6a28a8700501380071909bcd35f144106dba3e" - }, - { - "nr": 115102, - "hash": "60431f17f117032ee89f64ef0d6d1e6c82a2eaaa" - }, - { - "nr": 114494, - "hash": "68165f3f70c314e20d3d25226c1490c1304f4dec" - }, - { - "nr": 116116, - "hash": "8116ef839a88139484053bad9cde980c3f6d1668" - }, - { - "nr": 111802, - "hash": "203c537708ef0882afe78747b5310bfceac42d9e" - }, - { - "nr": 115220, - "hash": "3fe4cbc34ee4a8d01d3c4e7df0e1bd606b3cf503" - }, - { - "nr": 112393, - "hash": "2e1921bc09bb6f5c2d1bc680b77388fe6a858195" - }, - { - "nr": 115322, - "hash": "71ec2364c97bda82a3d8de1665482669d4896e3b" - }, - { - "nr": 114953, - "hash": "d5a09801eeeb7c5831fb089dfe5c7c2027183bc2" - }, - { - "nr": 115786, - "hash": "3b7a8a47e0f00a6bd2d5a7b76d97020fd8d4643a" - }, - { - "nr": 108396, - "hash": "9495c4e111e2748c1faca275d93723e01bfde6e5" - }, - { - "nr": 114680, - "hash": "bec81f6a22c3fadf13ce30ba8d1dd0cf67574392" - }, - { - "nr": 114914, - "hash": "5a390c9308d75abf381b4329114aa3fbc22f623a" - }, - { - "nr": 113795, - "hash": "3fb6c8789cde8f92b6b6e6cda6df26a9f7b1cd70" - }, - { - "nr": 111207, - "hash": "0779b374bcec298e49dec688e0943ce591f33658" - }, - { - "nr": 115721, - "hash": "f604372f298c55b598108292906858a9be5e3a3e" - }, - { - "nr": 112925, - "hash": "5708c04a14ce7d1ebbeb507f25d8d8d39616b2bf" - }, - { - "nr": 114776, - "hash": "89883d2565e28753619889d0b31fc3061d55cdc6" - }, - { - "nr": 114505, - "hash": "4169686a99d43cfb88892dfe8c62370aa1880b37" - }, - { - "nr": 114191, - "hash": "3f3bd10a2135e82ca346f9a7933b1f776b8e0543" - }, - { - "nr": 115863, - "hash": "13dfad2dca3ca45797dd907d44f8648ad91049d8" - }, - { - "nr": 115341, - "hash": "b7dee9765110d79aff4309d699b7d45bafc41cd9" - }, - { - "nr": 115569, - "hash": "6cf561f87fc48e6798155da1a6ad7bcb00d1875b" - }, - { - "nr": 114172, - "hash": "f45770ba66ae1c6853339d9edd77c58687c90b70" - }, - { - "nr": 115709, - "hash": "896383e07d6af954a697515c3f8d29970ab2e46d" - }, - { - "nr": 114376, - "hash": "1f60fa7e0f93107021ec2fb5a5b730c5e456242c" - }, - { - "nr": 114814, - "hash": "9409ec91ef93b04b4b2adc9e09f550c043281857" - }, - { - "nr": 114794, - "hash": "91053f29dffe10588c490944f9e48308e4dc23a2" - }, - { - "nr": 102884, - "hash": "1622a6346c83ae91072491347d21d0fc13330b3b" - }, - { - "nr": 115846, - "hash": "90dcb9f7287310d238662112e867b21d50297c9f" - }, - { - "nr": 115096, - "hash": "3892fcb18e98bbdd67ecf07c1cc46e8b5513af0e" - }, - { - "nr": 115800, - "hash": "ae86414b724fcfe3c2a79ddc12de60a9748b797d" - }, - { - "nr": 115610, - "hash": "c9ff499819bbfe203c3b3cb531e957e6e01411b4" - }, - { - "nr": 115233, - "hash": "540a0ca1a641c52439754b2eebcfae070379e73a" - }, - { - "nr": 114417, - "hash": "e03be16f0010bafbd7aaf86275dd75cbe6da83cf" - }, - { - "nr": 115116, - "hash": "b99bd77bf6cf49bfd338285f9e15a864f52a8768" - }, - { - "nr": 114065, - "hash": "5b6dccaa366bf90b5429163095658c1b28c7465e" - }, - { - "nr": 114279, - "hash": "9bf4674152b44019b730e652e52b819d0b4545e0" - }, - { - "nr": 114015, - "hash": "288fdc7586a26e027d5bc6c4cb1a305682d57ba2" - }, - { - "nr": 110960, - "hash": "d8becec220dc842674da129c319909855e6c739a" - }, - { - "nr": 114051, - "hash": "0926e045ff70d2d1e4243eb31783d0641f210065" - }, - { - "nr": 113794, - "hash": "a4211817d6f2e39f4a637032b21bfb8c04cae205" - }, - { - "nr": 115038, - "hash": "d43f77133a2edd955becbc93ab6256487e31c6a4" - }, - { - "nr": 115434, - "hash": "f2ebb46a4bcb48fcc962d770cfe7073685001148" - }, - { - "nr": 114647, - "hash": "7b4ebb66a2cc66141dc8a72d5a43003cd4d931ab" - }, - { - "nr": 115940, - "hash": "7760a95e41950f7e6b36ec87e366f7cf31d27829" - }, - { - "nr": 115363, - "hash": "a2d840c85c54be1be9585e26f9c54da695631b54" - }, - { - "nr": 115163, - "hash": "b57504051a5e1f06f981f9207a0778f93656a4bf" - }, - { - "nr": 114586, - "hash": "001ea095d217ee2755ffdb2c808e1cea0575629a" - }, - { - "nr": 113267, - "hash": "faa3424af480c8b7f79e28fcb58e86c20ad94ab0" - }, - { - "nr": 114886, - "hash": "7b590a5aa4e173a8c85fa4d6ba2d0ebb0b996cdf" - }, - { - "nr": 114947, - "hash": "b5452d4b81d7b9072bf1198681bdd8e462b7ac52" - }, - { - "nr": 111660, - "hash": "4f008fdf7e5ef785bf0716d53b2be61002227774" - }, - { - "nr": 115412, - "hash": "53174237c3635bd4d9a77b0ff55d6200944304f2" - }, - { - "nr": 115137, - "hash": "66673f80ba2fbc5cbe043bf0079a300caee4d146" - }, - { - "nr": 114418, - "hash": "d909322111dad8002f2b07b9dacc51bc34b0a674" - }, - { - "nr": 114883, - "hash": "2ccfe0ce0398509c60eb962f9a5978729c6488ac" - }, - { - "nr": 114570, - "hash": "a0779349e38e2d3ac2c303e1d3256b445ca71812" - }, - { - "nr": 114033, - "hash": "eeb24f805c670db3425b36cab55bb81a4f35e91e" - }, - { - "nr": 114889, - "hash": "0a8af3aef52896e790997c45ea656dbc1fe75da7" - }, - { - "nr": 114237, - "hash": "681a356c931d2c68ee2e136f942ea95c1a5cccae" - }, - { - "nr": 114518, - "hash": "0fa8c784a5c928dc028577ee7dba1749a5c8b5b8" - }, - { - "nr": 114055, - "hash": "a36c6d1d41ff202fdec7a0e099293f4ecd2b154d" - }, - { - "nr": 114694, - "hash": "2a1e26883a4b28000beee0e02255c62f78ea7af7" - }, - { - "nr": 114412, - "hash": "eeac95f164f65fe7748ee7cd0b281f2c303df88e" - }, - { - "nr": 114625, - "hash": "470b06bcd2152aab5318941679baf86216b7ebce" - }, - { - "nr": 115074, - "hash": "216e162f7d75c952bd3d3e3e486e728afc0c0db4" - }, - { - "nr": 114669, - "hash": "59987d4ae3a8a99519ffd87aebd31800fa92c026" - }, - { - "nr": 112661, - "hash": "0a4ca99f6df696b6856ffba020ddfa7896c3a95c" - }, - { - "nr": 115905, - "hash": "17ce9195bb992fd6f28967b834b270e8dc7a1129" - }, - { - "nr": 115802, - "hash": "0450e221efc7e9607159a5df047b4cd217496183" - }, - { - "nr": 115394, - "hash": "f8d7d06df067227d20def744412dfb896b26e101" - }, - { - "nr": 115321, - "hash": "0a240c2b759b91bcc474374dd560e5bfbb8740c8" - }, - { - "nr": 114355, - "hash": "c14a60556f81654899ca18130e64e95ce17914a3" - }, - { - "nr": 115620, - "hash": "5bf9e3bd7e4413e6f062eb55c40c509aa0fc19fc" - }, - { - "nr": 114863, - "hash": "bc4c5ab9caef7f7e3c121439d6775d43d78aab2d" - }, - { - "nr": 115928, - "hash": "da0cc0d8983e2fc48f63a42e26f571fd5a58ffd5" - }, - { - "nr": 115606, - "hash": "cd978284e676b40a96d11b36dd5ff4e7e8da5ab1" - }, - { - "nr": 115712, - "hash": "3ee1296533b1bda3bfe184beb627ff00330c583c" - }, - { - "nr": 114602, - "hash": "596066888708cd05896d0170738c325ce2a76c04" - }, - { - "nr": 116089, - "hash": "8810ebd105b36a35f8ea6d0fde0bac757a3bc0ff" - }, - { - "nr": 115739, - "hash": "41bbad1405f37ce0468679d23b02b7ddbc4f4aef" - }, - { - "nr": 114695, - "hash": "7cb94b421898655dbee47e5df298b7f933cdd8b3" - }, - { - "nr": 115254, - "hash": "4dc61ad9d6b214f2e387fc1078184d9d832318a7" - }, - { - "nr": 115068, - "hash": "7680ec7f3ad1b12354cc4b1080beb7e197725dfe" - }, - { - "nr": 111988, - "hash": "b4910b6f44d7ec4d61d13cd524bc72c16ac786ac" - }, - { - "nr": 114350, - "hash": "4e7fcfb025d75354c9d5442869439c7d98c3ecc8" - }, - { - "nr": 115828, - "hash": "004e0f3b970ef02269f735bfe0c5850c099a20af" - }, - { - "nr": 114393, - "hash": "b1af7cb5c8a7b634ed13b2e442598c5bec3642b4" - }, - { - "nr": 114980, - "hash": "bad5a6347b01f05d33baba8cdbcfde121b1ba456" - }, - { - "nr": 114699, - "hash": "d427efe3c6b5faa638f9db12d6cab2fba36a6ad7" - }, - { - "nr": 113581, - "hash": "2cc84e6f2292a68171a8a33375d8686814dc0fff" - }, - { - "nr": 114630, - "hash": "bc9ba2ebcfcb30333b0f0868afe95691a41179d0" - }, - { - "nr": 115758, - "hash": "0b610a81fb0915b8d3a2b921f8b339a76019a001" - }, - { - "nr": 114770, - "hash": "37fce76d667e1f3f9bb1845ad996be27820cbfc8" - }, - { - "nr": 113985, - "hash": "58ed9b4db422f9aaa32c38d0ac7e87edc60e125b" - }, - { - "nr": 114502, - "hash": "2ed36fdd31d28ef35e394805b6791acda41b4ef5" - }, - { - "nr": 115056, - "hash": "8a214b9dce152a02ebd212537b1510d1527340e3" - }, - { - "nr": 114464, - "hash": "2f0bb996754f86478192c6b16072231467cb27d5" - }, - { - "nr": 113933, - "hash": "e18b327c435a25891d1047068426f3dc20cc631e" - }, - { - "nr": 115420, - "hash": "0af4779635d5e0c8af354529eeee106ba539d54a" - }, - { - "nr": 115770, - "hash": "6b5fec00d3213d3bdf2dff9277caa41ee3a0407f" - }, - { - "nr": 111453, - "hash": "039db2fe033c610f6680c553435ff707ddc694a2" - }, - { - "nr": 113104, - "hash": "e09eea7c832d1148029bad1edf8ed2ba769e13e8" - }, - { - "nr": 114731, - "hash": "a7996767b310b1064f6acf165d74680619a9b8d4" - }, - { - "nr": 112260, - "hash": "700f695fe64773e6c207e756fc21dc2c302c3a73" - }, - { - "nr": 114472, - "hash": "f83823e425062ad9f72b12c0a9256331e16c49cd" - }, - { - "nr": 115113, - "hash": "a2d6670f46386f699515fc5d83c3a739f09d772d" - }, - { - "nr": 115093, - "hash": "f20150ac26e266a5622a584f44790d46242faa39" - }, - { - "nr": 115079, - "hash": "22c00c5205130912f4d8f438f47effb0fcb0cdda" - }, - { - "nr": 114623, - "hash": "0a2c7c47cd8fba5c894fdeb2a9b469e730e57bc2" - }, - { - "nr": 113998, - "hash": "b70630285166b4b38275ab54340d59f913b82647" - }, - { - "nr": 114987, - "hash": "34d14f4d0c0da9f5cc89f0cb597a4c57535b12da" - }, - { - "nr": 113534, - "hash": "f40a3fe8680f69c8f128fefb84b6061a0ec6f43f" - }, - { - "nr": 115336, - "hash": "d49257cfdd2f9738ce5a198c94a2c8f175830769" - }, - { - "nr": 114236, - "hash": "82b3d748c6e020881332e0b7b2da1c1f00f7a6dd" - }, - { - "nr": 114596, - "hash": "4461db1edbae75167f89ef507672fb9ba8dd242c" - }, - { - "nr": 114338, - "hash": "6cf461a25fd2f5f951e384b22683abb856f43a98" - }, - { - "nr": 115402, - "hash": "1426bf931fd1ec08d5d5d3bf501ccb9d2f157ad1" - }, - { - "nr": 115283, - "hash": "fd282b66067439d801a0ae9c9e67aa974d5da19a" - }, - { - "nr": 114981, - "hash": "044b171a5d73e28a34621240e0fe7756c4ac6fa8" - }, - { - "nr": 115690, - "hash": "047a94357d3829805ab3b73bc884476fef42a6c5" - }, - { - "nr": 114280, - "hash": "8a73275401aaca0fb28156ee3b82ae5f03eac2e2" - }, - { - "nr": 115379, - "hash": "16032e052eb805b0f8a82ee254813caad6bea085" - }, - { - "nr": 114736, - "hash": "e30484e90b1e1d10b367c5e9195d9d83a5cd9bce" - }, - { - "nr": 115815, - "hash": "a5b0e13c000077946ccec9a064c88e7363acc61b" - }, - { - "nr": 115649, - "hash": "06a41475526c02ffdc8b255594240be27cd8af77" - }, - { - "nr": 114246, - "hash": "d788dc56a42732732aeafc27d7666ee9a812804f" - }, - { - "nr": 113943, - "hash": "45780c63adeb35db17c56eccadd1fe16ddc5bc15" - }, - { - "nr": 114923, - "hash": "716855993254a9aa33bd03297e05ad467f274749" - }, - { - "nr": 114584, - "hash": "514696b003488b7b347b98b9d72d7e59e73ae164" - }, - { - "nr": 111683, - "hash": "85745566003cd27b7df59839ec1f707ea5f27d39" - }, - { - "nr": 108095, - "hash": "20bd594caf2796288fff01c593b08e3fe4868ace" - }, - { - "nr": 116033, - "hash": "22e5dc2e9f8cceac13a39c423fc2410875fb535c" - }, - { - "nr": 114414, - "hash": "d80d920af6845ab8f88777d8c50d07ec437b2bda" - }, - { - "nr": 114178, - "hash": "fc738bfdee7ba96690480f0917ebd17a16e6cdf2" - }, - { - "nr": 111583, - "hash": "c902ec263e82d7d039c484b591e3eeb8a0599910" - }, - { - "nr": 114802, - "hash": "dbf49246ac3f0d3112be48f7753a0acac2f6d650" - }, - { - "nr": 114734, - "hash": "565ca1d37657f38e9670f57736273f6edd7ddb22" - }, - { - "nr": 113776, - "hash": "95248a407fb03efdf6442b89d936886dede5b3f9" - }, - { - "nr": 114228, - "hash": "d80173178300703079d7ccf81d1354792cc210ee" - }, - { - "nr": 111178, - "hash": "6d7cbc636af97399b3cd5a02414b88a2240cbf87" - }, - { - "nr": 111982, - "hash": "81ee47fc2ef108f56a046ebe70bd68eb9b2ba600" - }, - { - "nr": 114605, - "hash": "14276b82a1a701b85378f25e6e981b4222e47cf0" - }, - { - "nr": 113121, - "hash": "10316c12980812e5f001425bf26cd996338a715a" - }, - { - "nr": 115143, - "hash": "03cb3b55e6056e60e0f64b9aa4bccf6ab215a5c3" - }, - { - "nr": 114125, - "hash": "52f9efc6a981d16025bba6186757f29581bdc080" - }, - { - "nr": 113834, - "hash": "47bee26aded9e9493ab5f9a68882cc46d2ee9596" - }, - { - "nr": 115719, - "hash": "03d03d37edeb9ca7e2060b18eb3242e89c5ced19" - }, - { - "nr": 114086, - "hash": "a2592c1bc5b203296a1f3646d327a167f3d14a66" - }, - { - "nr": 114516, - "hash": "22c09a175e27daa36c0256b08f5f5e6da9b864f3" - }, - { - "nr": 112365, - "hash": "5e02c5eae221987e93031283557d9bd04e0323aa" - }, - { - "nr": 114773, - "hash": "5832c4553346a5a3716555eb00c006c9e9d190ad" - }, - { - "nr": 114774, - "hash": "f585b4c04bbd552ba46727153693b63e08c3dc5c" - }, - { - "nr": 116018, - "hash": "0a3963ec8b624227c439fb4f5c3097343cdce290" - }, - { - "nr": 115919, - "hash": "d0cd3cd3b5f0a4d82a1ad03232b577db246e4827" - }, - { - "nr": 115346, - "hash": "2bc9607fb69deef804609b0e3546872075bc35c0" - }, - { - "nr": 114231, - "hash": "a4de9f3ddc8647d9e56707cdc7328e84e123251d" - }, - { - "nr": 114740, - "hash": "ec5c04291e7beb8879aa3bdb35fa725e254874f3" - }, - { - "nr": 113040, - "hash": "93f4c7b71065f99f7b94ad407c764144f1014a89" - }, - { - "nr": 115893, - "hash": "27d127d9e8a3093d48603784970ca718f392a41c" - }, - { - "nr": 115017, - "hash": "9727e920a68605f557e0446e39cc4384cbb4e94e" - }, - { - "nr": 114445, - "hash": "0802ccdec0865a56a647265d778bea14dfd5d6c1" - }, - { - "nr": 115634, - "hash": "04c7842f19016381ee0197bf68569cc542c7141d" - }, - { - "nr": 115010, - "hash": "5cc3b59ebc0853d61726854e626970536105f94e" - }, - { - "nr": 115464, - "hash": "a5ffa122ea2ee5bcf8f45c93b80529e1f321910e" - }, - { - "nr": 114407, - "hash": "5f727b36a7b34fe94d7a16aa41ec76fc73d18cfd" - }, - { - "nr": 115277, - "hash": "8ac131d11389336d0cc53b6b42debdd7da2bdeeb" - }, - { - "nr": 115236, - "hash": "4c02572818618d471f38e4be5063bd7b2936f887" - }, - { - "nr": 114176, - "hash": "c2ceceac9d6a9a5794a3b88de81505a3ea273cf7" - }, - { - "nr": 114687, - "hash": "55fe23debf67b591eebc19b6a662895ef03b6ca9" - }, - { - "nr": 112021, - "hash": "815da517e4e673370c7d03df28a55aff0269a892" - }, - { - "nr": 114455, - "hash": "ec1431cca7f5b58619b0a99556187955103e9950" - }, - { - "nr": 114249, - "hash": "fa0401b491f8e7ec636fcb0e7a87d2c8f8055a73" - }, - { - "nr": 115377, - "hash": "ee48a5dac6699ca2969177b0e19f19982f3e92e5" - }, - { - "nr": 113083, - "hash": "494d89ebcd7af5a342bacf1774b0728e15fc8d46" - }, - { - "nr": 113284, - "hash": "c9e0c15a3916e13fd5d66e6bbdcdd02309f5b830" - }, - { - "nr": 114490, - "hash": "bc87e190839861db94391034c103d11e14a3a88f" - }, - { - "nr": 110723, - "hash": "2fe79e7e31cd558f0b7bff14c1d40593e75158c2" - }, - { - "nr": 113942, - "hash": "ccfb3c6b3d67b9c733e159daa5248d647a981fa8" - }, - { - "nr": 116102, - "hash": "6bd5f4b80a0294f714d50c480f00b81c35caea39" - }, - { - "nr": 115454, - "hash": "89ee52765a5e69d1eeae4213ef7242df670171f7" - }, - { - "nr": 115577, - "hash": "371c149a44128c63f85e3a733788afed86fc6a34" - }, - { - "nr": 115354, - "hash": "8ceb73d6b8d5098f829d6d6658c41fca5a14ccb8" - }, - { - "nr": 114585, - "hash": "1d754f6028408e3afe7d95517a1ca4b931af0bbd" - }, - { - "nr": 114360, - "hash": "fcd8173ac63206ccfa3faea7c562d915c9f28145" - }, - { - "nr": 114872, - "hash": "ff0253c09476f149460c53522bfbdf90d828f145" - }, - { - "nr": 114364, - "hash": "85f899ee3c5b0f29a07b43eab3a0f7664cde01d9" - }, - { - "nr": 112809, - "hash": "f31716254a4e4e15ae6ae119c7364e03060e1c99" - }, - { - "nr": 114540, - "hash": "791d91400b4b7fb2b5b609495a6482adc86af16f" - }, - { - "nr": 114857, - "hash": "697de899fd718a5c3c044e7f5771c31366b01a60" - }, - { - "nr": 114920, - "hash": "42132e9b2548d7977270a40c93497fde9a0092dc" - }, - { - "nr": 115315, - "hash": "00bc92bde636e6f13d28e08627e2a172d3070b53" - }, - { - "nr": 108984, - "hash": "9c4acb366b879a44883983077e9ca1ae806352b3" - }, - { - "nr": 112817, - "hash": "596508cd69acaccedb588dd1d8b09d16f0945aa5" - }, - { - "nr": 115678, - "hash": "ec22882ac2224d3ce24f3dd79849636e34814805" - }, - { - "nr": 115514, - "hash": "8d2646c0219dbba2b0f8e15b9682733b1fb55729" - }, - { - "nr": 114523, - "hash": "1e9f58ec4ac1814bda12676c3bb25ccdad666db1" - }, - { - "nr": 114116, - "hash": "a7b71b62431c50b505399b82f40b1c1bfeb49011" - }, - { - "nr": 115503, - "hash": "acb3dfe633710648161c8a51010e4ef1a01350e1" - }, - { - "nr": 115140, - "hash": "a2e9a3483c79bb4a9d39595c843acba670d83166" - }, - { - "nr": 114155, - "hash": "2f138e05dc5b477a5e6421439d302868af287273" - }, - { - "nr": 113315, - "hash": "05d0fa3b3afe986a259df5f18845a1db115689a0" - }, - { - "nr": 114878, - "hash": "0c96b76d8ed74b2f5f163b55cd996b454f118a71" - }, - { - "nr": 112719, - "hash": "ae628219727b1b81d189d649a70fd048a2cb787a" - }, - { - "nr": 113787, - "hash": "ec4c5f514a492a63a389248637781d80416b68a2" - }, - { - "nr": 115310, - "hash": "5ba85be2af6ba8e45d4b43f0a060ddd709c52430" - }, - { - "nr": 114997, - "hash": "06c2a8f7a015746f193cc8a70a386e72563b7d63" - }, - { - "nr": 114869, - "hash": "8baa90640798c818f4def4140ef88790aada8701" - }, - { - "nr": 114252, - "hash": "0a93eb47eb7ab6301ad4207da7f60ab6f7367626" - }, - { - "nr": 114158, - "hash": "9074dc4779e0d06ca819bbaa91713d617f621055" - }, - { - "nr": 116074, - "hash": "d82347231a68fbf91fbc2de35b3a2398eef1ae19" - }, - { - "nr": 112977, - "hash": "d24f50a834381f4f2b2d8cb2f62b62387ca0e245" - }, - { - "nr": 115821, - "hash": "b438384ec72ad9294440c4e3ea30dd144416be47" - }, - { - "nr": 114609, - "hash": "095586d448f08b776933d6cdb4e5cd043c392b0d" - }, - { - "nr": 114410, - "hash": "3fc1e92e0b66d10e1e870a1af6f3ce23281e002d" - }, - { - "nr": 114459, - "hash": "25f4985f720d010bfd1fbe09617b756b8662504b" - }, - { - "nr": 115590, - "hash": "62299348e7d6a820945a65729b78cb842e1d345f" - }, - { - "nr": 112624, - "hash": "0ac8cad59b8dec58a0366de0141e1c49315d1da6" - }, - { - "nr": 115179, - "hash": "40394b4adf04fe694b04d4ba31a6885ac00d34a6" - }, - { - "nr": 115046, - "hash": "f6f51b3519cca95dbbc436a7042da29be79d37cb" - }, - { - "nr": 112136, - "hash": "0f8b55b85637cdba5cd0ec9e66862a68bb4878b8" - }, - { - "nr": 113318, - "hash": "9b63c829259e4c5c3f985243817c3959939d3d30" - }, - { - "nr": 114434, - "hash": "c0c41f76d6fa7cb59e1eb9e634150a90da14bf22" - }, - { - "nr": 114446, - "hash": "b5227fe3278e21f827ce97b1e834585c835d9915" - }, - { - "nr": 109877, - "hash": "70a0507c3966ba6687fa38b82bbdb66dba129495" - }, - { - "nr": 113742, - "hash": "7f730aae9d520ab743fcbd9a86a9f70fa825cefa" - }, - { - "nr": 115575, - "hash": "a06626b22588696f80cb81976d75ca46ccffd91a" - }, - { - "nr": 115384, - "hash": "0215f0898230b469951f5dc1e5f63044532901b5" - } - ] +{ + "mail": "richard.j.sadowski@gmail.com", + "name": "rsadowsk", + "date": 1677855845, + "prs": [ + { + "nr": 115652, + "hash": "5d88200217681afa088c957aee8a566ee78e30d9" + }, + { + "nr": 115349, + "hash": "1c982879cb13915d8222d63694afbcbd3fc12be1" + }, + { + "nr": 115907, + "hash": "395e846800674dcce0e0d4a9923978937f790026" + }, + { + "nr": 115944, + "hash": "5300176e904945126dc0f966009916aadfe5496a" + }, + { + "nr": 115138, + "hash": "f2b54deae798155955a0a45ab0825051d2afbb5e" + }, + { + "nr": 115207, + "hash": "af3c8125ee7ba064c6411de857e318cde818bdb5" + }, + { + "nr": 114460, + "hash": "5d6a28a8700501380071909bcd35f144106dba3e" + }, + { + "nr": 115102, + "hash": "60431f17f117032ee89f64ef0d6d1e6c82a2eaaa" + }, + { + "nr": 114494, + "hash": "68165f3f70c314e20d3d25226c1490c1304f4dec" + }, + { + "nr": 116116, + "hash": "8116ef839a88139484053bad9cde980c3f6d1668" + }, + { + "nr": 111802, + "hash": "203c537708ef0882afe78747b5310bfceac42d9e" + }, + { + "nr": 115220, + "hash": "3fe4cbc34ee4a8d01d3c4e7df0e1bd606b3cf503" + }, + { + "nr": 112393, + "hash": "2e1921bc09bb6f5c2d1bc680b77388fe6a858195" + }, + { + "nr": 115322, + "hash": "71ec2364c97bda82a3d8de1665482669d4896e3b" + }, + { + "nr": 114953, + "hash": "d5a09801eeeb7c5831fb089dfe5c7c2027183bc2" + }, + { + "nr": 115786, + "hash": "3b7a8a47e0f00a6bd2d5a7b76d97020fd8d4643a" + }, + { + "nr": 108396, + "hash": "9495c4e111e2748c1faca275d93723e01bfde6e5" + }, + { + "nr": 114680, + "hash": "bec81f6a22c3fadf13ce30ba8d1dd0cf67574392" + }, + { + "nr": 114914, + "hash": "5a390c9308d75abf381b4329114aa3fbc22f623a" + }, + { + "nr": 113795, + "hash": "3fb6c8789cde8f92b6b6e6cda6df26a9f7b1cd70" + }, + { + "nr": 111207, + "hash": "0779b374bcec298e49dec688e0943ce591f33658" + }, + { + "nr": 115721, + "hash": "f604372f298c55b598108292906858a9be5e3a3e" + }, + { + "nr": 112925, + "hash": "5708c04a14ce7d1ebbeb507f25d8d8d39616b2bf" + }, + { + "nr": 114776, + "hash": "89883d2565e28753619889d0b31fc3061d55cdc6" + }, + { + "nr": 114505, + "hash": "4169686a99d43cfb88892dfe8c62370aa1880b37" + }, + { + "nr": 114191, + "hash": "3f3bd10a2135e82ca346f9a7933b1f776b8e0543" + }, + { + "nr": 115863, + "hash": "13dfad2dca3ca45797dd907d44f8648ad91049d8" + }, + { + "nr": 115341, + "hash": "b7dee9765110d79aff4309d699b7d45bafc41cd9" + }, + { + "nr": 115569, + "hash": "6cf561f87fc48e6798155da1a6ad7bcb00d1875b" + }, + { + "nr": 114172, + "hash": "f45770ba66ae1c6853339d9edd77c58687c90b70" + }, + { + "nr": 115709, + "hash": "896383e07d6af954a697515c3f8d29970ab2e46d" + }, + { + "nr": 114376, + "hash": "1f60fa7e0f93107021ec2fb5a5b730c5e456242c" + }, + { + "nr": 114814, + "hash": "9409ec91ef93b04b4b2adc9e09f550c043281857" + }, + { + "nr": 114794, + "hash": "91053f29dffe10588c490944f9e48308e4dc23a2" + }, + { + "nr": 102884, + "hash": "1622a6346c83ae91072491347d21d0fc13330b3b" + }, + { + "nr": 115846, + "hash": "90dcb9f7287310d238662112e867b21d50297c9f" + }, + { + "nr": 115096, + "hash": "3892fcb18e98bbdd67ecf07c1cc46e8b5513af0e" + }, + { + "nr": 115800, + "hash": "ae86414b724fcfe3c2a79ddc12de60a9748b797d" + }, + { + "nr": 115610, + "hash": "c9ff499819bbfe203c3b3cb531e957e6e01411b4" + }, + { + "nr": 115233, + "hash": "540a0ca1a641c52439754b2eebcfae070379e73a" + }, + { + "nr": 114417, + "hash": "e03be16f0010bafbd7aaf86275dd75cbe6da83cf" + }, + { + "nr": 115116, + "hash": "b99bd77bf6cf49bfd338285f9e15a864f52a8768" + }, + { + "nr": 114065, + "hash": "5b6dccaa366bf90b5429163095658c1b28c7465e" + }, + { + "nr": 114279, + "hash": "9bf4674152b44019b730e652e52b819d0b4545e0" + }, + { + "nr": 114015, + "hash": "288fdc7586a26e027d5bc6c4cb1a305682d57ba2" + }, + { + "nr": 110960, + "hash": "d8becec220dc842674da129c319909855e6c739a" + }, + { + "nr": 114051, + "hash": "0926e045ff70d2d1e4243eb31783d0641f210065" + }, + { + "nr": 113794, + "hash": "a4211817d6f2e39f4a637032b21bfb8c04cae205" + }, + { + "nr": 115038, + "hash": "d43f77133a2edd955becbc93ab6256487e31c6a4" + }, + { + "nr": 115434, + "hash": "f2ebb46a4bcb48fcc962d770cfe7073685001148" + }, + { + "nr": 114647, + "hash": "7b4ebb66a2cc66141dc8a72d5a43003cd4d931ab" + }, + { + "nr": 115940, + "hash": "7760a95e41950f7e6b36ec87e366f7cf31d27829" + }, + { + "nr": 115363, + "hash": "a2d840c85c54be1be9585e26f9c54da695631b54" + }, + { + "nr": 115163, + "hash": "b57504051a5e1f06f981f9207a0778f93656a4bf" + }, + { + "nr": 114586, + "hash": "001ea095d217ee2755ffdb2c808e1cea0575629a" + }, + { + "nr": 113267, + "hash": "faa3424af480c8b7f79e28fcb58e86c20ad94ab0" + }, + { + "nr": 114886, + "hash": "7b590a5aa4e173a8c85fa4d6ba2d0ebb0b996cdf" + }, + { + "nr": 114947, + "hash": "b5452d4b81d7b9072bf1198681bdd8e462b7ac52" + }, + { + "nr": 111660, + "hash": "4f008fdf7e5ef785bf0716d53b2be61002227774" + }, + { + "nr": 115412, + "hash": "53174237c3635bd4d9a77b0ff55d6200944304f2" + }, + { + "nr": 115137, + "hash": "66673f80ba2fbc5cbe043bf0079a300caee4d146" + }, + { + "nr": 114418, + "hash": "d909322111dad8002f2b07b9dacc51bc34b0a674" + }, + { + "nr": 114883, + "hash": "2ccfe0ce0398509c60eb962f9a5978729c6488ac" + }, + { + "nr": 114570, + "hash": "a0779349e38e2d3ac2c303e1d3256b445ca71812" + }, + { + "nr": 114033, + "hash": "eeb24f805c670db3425b36cab55bb81a4f35e91e" + }, + { + "nr": 114889, + "hash": "0a8af3aef52896e790997c45ea656dbc1fe75da7" + }, + { + "nr": 114237, + "hash": "681a356c931d2c68ee2e136f942ea95c1a5cccae" + }, + { + "nr": 114518, + "hash": "0fa8c784a5c928dc028577ee7dba1749a5c8b5b8" + }, + { + "nr": 114055, + "hash": "a36c6d1d41ff202fdec7a0e099293f4ecd2b154d" + }, + { + "nr": 114694, + "hash": "2a1e26883a4b28000beee0e02255c62f78ea7af7" + }, + { + "nr": 114412, + "hash": "eeac95f164f65fe7748ee7cd0b281f2c303df88e" + }, + { + "nr": 114625, + "hash": "470b06bcd2152aab5318941679baf86216b7ebce" + }, + { + "nr": 115074, + "hash": "216e162f7d75c952bd3d3e3e486e728afc0c0db4" + }, + { + "nr": 114669, + "hash": "59987d4ae3a8a99519ffd87aebd31800fa92c026" + }, + { + "nr": 112661, + "hash": "0a4ca99f6df696b6856ffba020ddfa7896c3a95c" + }, + { + "nr": 115905, + "hash": "17ce9195bb992fd6f28967b834b270e8dc7a1129" + }, + { + "nr": 115802, + "hash": "0450e221efc7e9607159a5df047b4cd217496183" + }, + { + "nr": 115394, + "hash": "f8d7d06df067227d20def744412dfb896b26e101" + }, + { + "nr": 115321, + "hash": "0a240c2b759b91bcc474374dd560e5bfbb8740c8" + }, + { + "nr": 114355, + "hash": "c14a60556f81654899ca18130e64e95ce17914a3" + }, + { + "nr": 115620, + "hash": "5bf9e3bd7e4413e6f062eb55c40c509aa0fc19fc" + }, + { + "nr": 114863, + "hash": "bc4c5ab9caef7f7e3c121439d6775d43d78aab2d" + }, + { + "nr": 115928, + "hash": "da0cc0d8983e2fc48f63a42e26f571fd5a58ffd5" + }, + { + "nr": 115606, + "hash": "cd978284e676b40a96d11b36dd5ff4e7e8da5ab1" + }, + { + "nr": 115712, + "hash": "3ee1296533b1bda3bfe184beb627ff00330c583c" + }, + { + "nr": 114602, + "hash": "596066888708cd05896d0170738c325ce2a76c04" + }, + { + "nr": 116089, + "hash": "8810ebd105b36a35f8ea6d0fde0bac757a3bc0ff" + }, + { + "nr": 115739, + "hash": "41bbad1405f37ce0468679d23b02b7ddbc4f4aef" + }, + { + "nr": 114695, + "hash": "7cb94b421898655dbee47e5df298b7f933cdd8b3" + }, + { + "nr": 115254, + "hash": "4dc61ad9d6b214f2e387fc1078184d9d832318a7" + }, + { + "nr": 115068, + "hash": "7680ec7f3ad1b12354cc4b1080beb7e197725dfe" + }, + { + "nr": 111988, + "hash": "b4910b6f44d7ec4d61d13cd524bc72c16ac786ac" + }, + { + "nr": 114350, + "hash": "4e7fcfb025d75354c9d5442869439c7d98c3ecc8" + }, + { + "nr": 115828, + "hash": "004e0f3b970ef02269f735bfe0c5850c099a20af" + }, + { + "nr": 114393, + "hash": "b1af7cb5c8a7b634ed13b2e442598c5bec3642b4" + }, + { + "nr": 114980, + "hash": "bad5a6347b01f05d33baba8cdbcfde121b1ba456" + }, + { + "nr": 114699, + "hash": "d427efe3c6b5faa638f9db12d6cab2fba36a6ad7" + }, + { + "nr": 113581, + "hash": "2cc84e6f2292a68171a8a33375d8686814dc0fff" + }, + { + "nr": 114630, + "hash": "bc9ba2ebcfcb30333b0f0868afe95691a41179d0" + }, + { + "nr": 115758, + "hash": "0b610a81fb0915b8d3a2b921f8b339a76019a001" + }, + { + "nr": 114770, + "hash": "37fce76d667e1f3f9bb1845ad996be27820cbfc8" + }, + { + "nr": 113985, + "hash": "58ed9b4db422f9aaa32c38d0ac7e87edc60e125b" + }, + { + "nr": 114502, + "hash": "2ed36fdd31d28ef35e394805b6791acda41b4ef5" + }, + { + "nr": 115056, + "hash": "8a214b9dce152a02ebd212537b1510d1527340e3" + }, + { + "nr": 114464, + "hash": "2f0bb996754f86478192c6b16072231467cb27d5" + }, + { + "nr": 113933, + "hash": "e18b327c435a25891d1047068426f3dc20cc631e" + }, + { + "nr": 115420, + "hash": "0af4779635d5e0c8af354529eeee106ba539d54a" + }, + { + "nr": 115770, + "hash": "6b5fec00d3213d3bdf2dff9277caa41ee3a0407f" + }, + { + "nr": 111453, + "hash": "039db2fe033c610f6680c553435ff707ddc694a2" + }, + { + "nr": 113104, + "hash": "e09eea7c832d1148029bad1edf8ed2ba769e13e8" + }, + { + "nr": 114731, + "hash": "a7996767b310b1064f6acf165d74680619a9b8d4" + }, + { + "nr": 112260, + "hash": "700f695fe64773e6c207e756fc21dc2c302c3a73" + }, + { + "nr": 114472, + "hash": "f83823e425062ad9f72b12c0a9256331e16c49cd" + }, + { + "nr": 115113, + "hash": "a2d6670f46386f699515fc5d83c3a739f09d772d" + }, + { + "nr": 115093, + "hash": "f20150ac26e266a5622a584f44790d46242faa39" + }, + { + "nr": 115079, + "hash": "22c00c5205130912f4d8f438f47effb0fcb0cdda" + }, + { + "nr": 114623, + "hash": "0a2c7c47cd8fba5c894fdeb2a9b469e730e57bc2" + }, + { + "nr": 113998, + "hash": "b70630285166b4b38275ab54340d59f913b82647" + }, + { + "nr": 114987, + "hash": "34d14f4d0c0da9f5cc89f0cb597a4c57535b12da" + }, + { + "nr": 113534, + "hash": "f40a3fe8680f69c8f128fefb84b6061a0ec6f43f" + }, + { + "nr": 115336, + "hash": "d49257cfdd2f9738ce5a198c94a2c8f175830769" + }, + { + "nr": 114236, + "hash": "82b3d748c6e020881332e0b7b2da1c1f00f7a6dd" + }, + { + "nr": 114596, + "hash": "4461db1edbae75167f89ef507672fb9ba8dd242c" + }, + { + "nr": 114338, + "hash": "6cf461a25fd2f5f951e384b22683abb856f43a98" + }, + { + "nr": 115402, + "hash": "1426bf931fd1ec08d5d5d3bf501ccb9d2f157ad1" + }, + { + "nr": 115283, + "hash": "fd282b66067439d801a0ae9c9e67aa974d5da19a" + }, + { + "nr": 114981, + "hash": "044b171a5d73e28a34621240e0fe7756c4ac6fa8" + }, + { + "nr": 115690, + "hash": "047a94357d3829805ab3b73bc884476fef42a6c5" + }, + { + "nr": 114280, + "hash": "8a73275401aaca0fb28156ee3b82ae5f03eac2e2" + }, + { + "nr": 115379, + "hash": "16032e052eb805b0f8a82ee254813caad6bea085" + }, + { + "nr": 114736, + "hash": "e30484e90b1e1d10b367c5e9195d9d83a5cd9bce" + }, + { + "nr": 115815, + "hash": "a5b0e13c000077946ccec9a064c88e7363acc61b" + }, + { + "nr": 115649, + "hash": "06a41475526c02ffdc8b255594240be27cd8af77" + }, + { + "nr": 114246, + "hash": "d788dc56a42732732aeafc27d7666ee9a812804f" + }, + { + "nr": 113943, + "hash": "45780c63adeb35db17c56eccadd1fe16ddc5bc15" + }, + { + "nr": 114923, + "hash": "716855993254a9aa33bd03297e05ad467f274749" + }, + { + "nr": 114584, + "hash": "514696b003488b7b347b98b9d72d7e59e73ae164" + }, + { + "nr": 111683, + "hash": "85745566003cd27b7df59839ec1f707ea5f27d39" + }, + { + "nr": 108095, + "hash": "20bd594caf2796288fff01c593b08e3fe4868ace" + }, + { + "nr": 116033, + "hash": "22e5dc2e9f8cceac13a39c423fc2410875fb535c" + }, + { + "nr": 114414, + "hash": "d80d920af6845ab8f88777d8c50d07ec437b2bda" + }, + { + "nr": 114178, + "hash": "fc738bfdee7ba96690480f0917ebd17a16e6cdf2" + }, + { + "nr": 111583, + "hash": "c902ec263e82d7d039c484b591e3eeb8a0599910" + }, + { + "nr": 114802, + "hash": "dbf49246ac3f0d3112be48f7753a0acac2f6d650" + }, + { + "nr": 114734, + "hash": "565ca1d37657f38e9670f57736273f6edd7ddb22" + }, + { + "nr": 113776, + "hash": "95248a407fb03efdf6442b89d936886dede5b3f9" + }, + { + "nr": 114228, + "hash": "d80173178300703079d7ccf81d1354792cc210ee" + }, + { + "nr": 111178, + "hash": "6d7cbc636af97399b3cd5a02414b88a2240cbf87" + }, + { + "nr": 111982, + "hash": "81ee47fc2ef108f56a046ebe70bd68eb9b2ba600" + }, + { + "nr": 114605, + "hash": "14276b82a1a701b85378f25e6e981b4222e47cf0" + }, + { + "nr": 113121, + "hash": "10316c12980812e5f001425bf26cd996338a715a" + }, + { + "nr": 115143, + "hash": "03cb3b55e6056e60e0f64b9aa4bccf6ab215a5c3" + }, + { + "nr": 114125, + "hash": "52f9efc6a981d16025bba6186757f29581bdc080" + }, + { + "nr": 113834, + "hash": "47bee26aded9e9493ab5f9a68882cc46d2ee9596" + }, + { + "nr": 115719, + "hash": "03d03d37edeb9ca7e2060b18eb3242e89c5ced19" + }, + { + "nr": 114086, + "hash": "a2592c1bc5b203296a1f3646d327a167f3d14a66" + }, + { + "nr": 114516, + "hash": "22c09a175e27daa36c0256b08f5f5e6da9b864f3" + }, + { + "nr": 112365, + "hash": "5e02c5eae221987e93031283557d9bd04e0323aa" + }, + { + "nr": 114773, + "hash": "5832c4553346a5a3716555eb00c006c9e9d190ad" + }, + { + "nr": 114774, + "hash": "f585b4c04bbd552ba46727153693b63e08c3dc5c" + }, + { + "nr": 116018, + "hash": "0a3963ec8b624227c439fb4f5c3097343cdce290" + }, + { + "nr": 115919, + "hash": "d0cd3cd3b5f0a4d82a1ad03232b577db246e4827" + }, + { + "nr": 115346, + "hash": "2bc9607fb69deef804609b0e3546872075bc35c0" + }, + { + "nr": 114231, + "hash": "a4de9f3ddc8647d9e56707cdc7328e84e123251d" + }, + { + "nr": 114740, + "hash": "ec5c04291e7beb8879aa3bdb35fa725e254874f3" + }, + { + "nr": 113040, + "hash": "93f4c7b71065f99f7b94ad407c764144f1014a89" + }, + { + "nr": 115893, + "hash": "27d127d9e8a3093d48603784970ca718f392a41c" + }, + { + "nr": 115017, + "hash": "9727e920a68605f557e0446e39cc4384cbb4e94e" + }, + { + "nr": 114445, + "hash": "0802ccdec0865a56a647265d778bea14dfd5d6c1" + }, + { + "nr": 115634, + "hash": "04c7842f19016381ee0197bf68569cc542c7141d" + }, + { + "nr": 115010, + "hash": "5cc3b59ebc0853d61726854e626970536105f94e" + }, + { + "nr": 115464, + "hash": "a5ffa122ea2ee5bcf8f45c93b80529e1f321910e" + }, + { + "nr": 114407, + "hash": "5f727b36a7b34fe94d7a16aa41ec76fc73d18cfd" + }, + { + "nr": 115277, + "hash": "8ac131d11389336d0cc53b6b42debdd7da2bdeeb" + }, + { + "nr": 115236, + "hash": "4c02572818618d471f38e4be5063bd7b2936f887" + }, + { + "nr": 114176, + "hash": "c2ceceac9d6a9a5794a3b88de81505a3ea273cf7" + }, + { + "nr": 114687, + "hash": "55fe23debf67b591eebc19b6a662895ef03b6ca9" + }, + { + "nr": 112021, + "hash": "815da517e4e673370c7d03df28a55aff0269a892" + }, + { + "nr": 114455, + "hash": "ec1431cca7f5b58619b0a99556187955103e9950" + }, + { + "nr": 114249, + "hash": "fa0401b491f8e7ec636fcb0e7a87d2c8f8055a73" + }, + { + "nr": 115377, + "hash": "ee48a5dac6699ca2969177b0e19f19982f3e92e5" + }, + { + "nr": 113083, + "hash": "494d89ebcd7af5a342bacf1774b0728e15fc8d46" + }, + { + "nr": 113284, + "hash": "c9e0c15a3916e13fd5d66e6bbdcdd02309f5b830" + }, + { + "nr": 114490, + "hash": "bc87e190839861db94391034c103d11e14a3a88f" + }, + { + "nr": 110723, + "hash": "2fe79e7e31cd558f0b7bff14c1d40593e75158c2" + }, + { + "nr": 113942, + "hash": "ccfb3c6b3d67b9c733e159daa5248d647a981fa8" + }, + { + "nr": 116102, + "hash": "6bd5f4b80a0294f714d50c480f00b81c35caea39" + }, + { + "nr": 115454, + "hash": "89ee52765a5e69d1eeae4213ef7242df670171f7" + }, + { + "nr": 115577, + "hash": "371c149a44128c63f85e3a733788afed86fc6a34" + }, + { + "nr": 115354, + "hash": "8ceb73d6b8d5098f829d6d6658c41fca5a14ccb8" + }, + { + "nr": 114585, + "hash": "1d754f6028408e3afe7d95517a1ca4b931af0bbd" + }, + { + "nr": 114360, + "hash": "fcd8173ac63206ccfa3faea7c562d915c9f28145" + }, + { + "nr": 114872, + "hash": "ff0253c09476f149460c53522bfbdf90d828f145" + }, + { + "nr": 114364, + "hash": "85f899ee3c5b0f29a07b43eab3a0f7664cde01d9" + }, + { + "nr": 112809, + "hash": "f31716254a4e4e15ae6ae119c7364e03060e1c99" + }, + { + "nr": 114540, + "hash": "791d91400b4b7fb2b5b609495a6482adc86af16f" + }, + { + "nr": 114857, + "hash": "697de899fd718a5c3c044e7f5771c31366b01a60" + }, + { + "nr": 114920, + "hash": "42132e9b2548d7977270a40c93497fde9a0092dc" + }, + { + "nr": 115315, + "hash": "00bc92bde636e6f13d28e08627e2a172d3070b53" + }, + { + "nr": 108984, + "hash": "9c4acb366b879a44883983077e9ca1ae806352b3" + }, + { + "nr": 112817, + "hash": "596508cd69acaccedb588dd1d8b09d16f0945aa5" + }, + { + "nr": 115678, + "hash": "ec22882ac2224d3ce24f3dd79849636e34814805" + }, + { + "nr": 115514, + "hash": "8d2646c0219dbba2b0f8e15b9682733b1fb55729" + }, + { + "nr": 114523, + "hash": "1e9f58ec4ac1814bda12676c3bb25ccdad666db1" + }, + { + "nr": 114116, + "hash": "a7b71b62431c50b505399b82f40b1c1bfeb49011" + }, + { + "nr": 115503, + "hash": "acb3dfe633710648161c8a51010e4ef1a01350e1" + }, + { + "nr": 115140, + "hash": "a2e9a3483c79bb4a9d39595c843acba670d83166" + }, + { + "nr": 114155, + "hash": "2f138e05dc5b477a5e6421439d302868af287273" + }, + { + "nr": 113315, + "hash": "05d0fa3b3afe986a259df5f18845a1db115689a0" + }, + { + "nr": 114878, + "hash": "0c96b76d8ed74b2f5f163b55cd996b454f118a71" + }, + { + "nr": 112719, + "hash": "ae628219727b1b81d189d649a70fd048a2cb787a" + }, + { + "nr": 113787, + "hash": "ec4c5f514a492a63a389248637781d80416b68a2" + }, + { + "nr": 115310, + "hash": "5ba85be2af6ba8e45d4b43f0a060ddd709c52430" + }, + { + "nr": 114997, + "hash": "06c2a8f7a015746f193cc8a70a386e72563b7d63" + }, + { + "nr": 114869, + "hash": "8baa90640798c818f4def4140ef88790aada8701" + }, + { + "nr": 114252, + "hash": "0a93eb47eb7ab6301ad4207da7f60ab6f7367626" + }, + { + "nr": 114158, + "hash": "9074dc4779e0d06ca819bbaa91713d617f621055" + }, + { + "nr": 116074, + "hash": "d82347231a68fbf91fbc2de35b3a2398eef1ae19" + }, + { + "nr": 112977, + "hash": "d24f50a834381f4f2b2d8cb2f62b62387ca0e245" + }, + { + "nr": 115821, + "hash": "b438384ec72ad9294440c4e3ea30dd144416be47" + }, + { + "nr": 114609, + "hash": "095586d448f08b776933d6cdb4e5cd043c392b0d" + }, + { + "nr": 114410, + "hash": "3fc1e92e0b66d10e1e870a1af6f3ce23281e002d" + }, + { + "nr": 114459, + "hash": "25f4985f720d010bfd1fbe09617b756b8662504b" + }, + { + "nr": 115590, + "hash": "62299348e7d6a820945a65729b78cb842e1d345f" + }, + { + "nr": 112624, + "hash": "0ac8cad59b8dec58a0366de0141e1c49315d1da6" + }, + { + "nr": 115179, + "hash": "40394b4adf04fe694b04d4ba31a6885ac00d34a6" + }, + { + "nr": 115046, + "hash": "f6f51b3519cca95dbbc436a7042da29be79d37cb" + }, + { + "nr": 112136, + "hash": "0f8b55b85637cdba5cd0ec9e66862a68bb4878b8" + }, + { + "nr": 113318, + "hash": "9b63c829259e4c5c3f985243817c3959939d3d30" + }, + { + "nr": 114434, + "hash": "c0c41f76d6fa7cb59e1eb9e634150a90da14bf22" + }, + { + "nr": 114446, + "hash": "b5227fe3278e21f827ce97b1e834585c835d9915" + }, + { + "nr": 109877, + "hash": "70a0507c3966ba6687fa38b82bbdb66dba129495" + }, + { + "nr": 113742, + "hash": "7f730aae9d520ab743fcbd9a86a9f70fa825cefa" + }, + { + "nr": 115575, + "hash": "a06626b22588696f80cb81976d75ca46ccffd91a" + }, + { + "nr": 115384, + "hash": "0215f0898230b469951f5dc1e5f63044532901b5" + } + ] } \ No newline at end of file diff --git a/releases/release-1.27/release-notes/sessions/maps-1680072916.json b/releases/release-1.27/release-notes/sessions/maps-1680072916.json index 23defbb1a9a..5dbc32adfca 100644 --- a/releases/release-1.27/release-notes/sessions/maps-1680072916.json +++ b/releases/release-1.27/release-notes/sessions/maps-1680072916.json @@ -1,195 +1,195 @@ -{ - "mail": "yashraj14700728@gmail.com", - "name": "yrs147", - "date": 1680072916, - "prs": [ - { - "nr": 115652, - "hash": "ccadc19330a48c53160957f0e38c8ca3ad651be6" - }, - { - "nr": 116108, - "hash": "e38d0aeaf0a322e24a0e49060298f7ee8c5358b1" - }, - { - "nr": 116171, - "hash": "0c21b839402b31be6de82f3ddc17b25571b80541" - }, - { - "nr": 116293, - "hash": "b8f1156a829957978c5dbb41d8d7fc41193b7bc6" - }, - { - "nr": 115149, - "hash": "3641ddcdabd8c63aac26664040262e42d757e035" - }, - { - "nr": 113916, - "hash": "b9c12771cf132a14dc7afc124a0c8976681f3550" - }, - { - "nr": 116350, - "hash": "430464f676b63a7b48a32e2cccc1ef225b3a7d95" - }, - { - "nr": 115840, - "hash": "df1b45e70b4fef46a13e3f2a3d71ff312ddb183f" - }, - { - "nr": 116436, - "hash": "4fd3d1c7ed825d624dbf1195cf59b34e6b4550f1" - }, - { - "nr": 116015, - "hash": "fbe6e8b72847e72f71be24013f737eabdfc48fd0" - }, - { - "nr": 116121, - "hash": "104d2a54c70538fd575892ab32556e4a1e228616" - }, - { - "nr": 115049, - "hash": "590408e9fe69f90adc0f3da1f4495921a325d268" - }, - { - "nr": 115082, - "hash": "bf636a37d84addf2ed1f7db4a5d409f0252583d0" - }, - { - "nr": 116612, - "hash": "6df03b76ff20cad0a28b6594cacb1426a0a36806" - }, - { - "nr": 116119, - "hash": "3c7f7eec1bd5dab6b49fa4b59dd2da8ea3d0efe1" - }, - { - "nr": 116529, - "hash": "22c3733a7b6bf1d4add498be37271ee0db1a62d9" - }, - { - "nr": 112670, - "hash": "411ae5be9cb9f797635a93d43074eebcb4709a65" - }, - { - "nr": 113840, - "hash": "3287a7aac3834dd7d4febdac2d69fa24f63c8683" - }, - { - "nr": 116332, - "hash": "fc1acddeb5b544875f89c0e5af6c29f05fa7acad" - }, - { - "nr": 113910, - "hash": "93f9d9b5d323c0b355393af1fe84d0b401cb01a8" - }, - { - "nr": 113471, - "hash": "4a18afde15b6bb7b99197ea7504eea85fbda68e8" - }, - { - "nr": 116235, - "hash": "661b0349c8426670d067b5b0c33f7d8597456edd" - }, - { - "nr": 116010, - "hash": "66dbf2319b518944cad7814a57a99582714f4dff" - }, - { - "nr": 116043, - "hash": "4ba0b4515fd052b5e088185bbc30eee4f0419f37" - }, - { - "nr": 113443, - "hash": "d6504348245d65603d0db9d1e94374da12928340" - }, - { - "nr": 115747, - "hash": "a78c5ef8f4c8e0bcda6e3959926c736431fc7f83" - }, - { - "nr": 108838, - "hash": "329307dd47168c8b8557650761a07b38d271ad9c" - }, - { - "nr": 116320, - "hash": "10ae7ef67b2748cc0f716969190727ce4b5acb7b" - }, - { - "nr": 115391, - "hash": "8d6b7f691c239990029e29d6ad0bf6af600e06a5" - }, - { - "nr": 116631, - "hash": "237d3c82be018c6bc03165fddea8df234da5c561" - }, - { - "nr": 96120, - "hash": "3bef8a9f6f1207b99d088c0605f660fe09e73cde" - }, - { - "nr": 115861, - "hash": "f30661296ccfc9f25b4a53c1c905abc5643cc164" - }, - { - "nr": 114918, - "hash": "95ec538190cee82cd1549857bb83b29fbc60a6c6" - }, - { - "nr": 115693, - "hash": "98ebc79d8664e25ac9991d3a86be6a02ef0892bd" - }, - { - "nr": 113270, - "hash": "c9a0e9f58ae33ff1a8bf6ad1fa22eb804c6c5d71" - }, - { - "nr": 116155, - "hash": "37f263545295c008fea1c9c58c147d9487426cf1" - }, - { - "nr": 113879, - "hash": "7f2810a1971b2ee7f1f31b09d6fa75ec7f2da1ae" - }, - { - "nr": 111661, - "hash": "384aee51eed5d31480168409bd42148188a04ec4" - }, - { - "nr": 115966, - "hash": "6c484402974b955e5b0d6ddec5ee1906ab451184" - }, - { - "nr": 115075, - "hash": "be1d710b495072b3db43ca3e7d1a8ea014358d84" - }, - { - "nr": 116535, - "hash": "492387a2555d81aee3d9609602658d2ffff7dd84" - }, - { - "nr": 114904, - "hash": "934a0d3c06cfe1ab3f4abc0435bb192e95b0e2aa" - }, - { - "nr": 110566, - "hash": "4260975c8b03438d2fe74be20f7727c0b07f46c8" - }, - { - "nr": 116291, - "hash": "1f5e758d8f9e4d24ba18af32923b680269b3e78b" - }, - { - "nr": 116255, - "hash": "b5f2020a2b90bf5c1520017dce5a02c68470d1c8" - }, - { - "nr": 116551, - "hash": "1a246f23a9b3e396c07dd7f934fadda68f1ccc69" - }, - { - "nr": 112334, - "hash": "08797b4b7b065f7de19a8158a0103ca8f4c9fb10" - } - ] +{ + "mail": "yashraj14700728@gmail.com", + "name": "yrs147", + "date": 1680072916, + "prs": [ + { + "nr": 115652, + "hash": "ccadc19330a48c53160957f0e38c8ca3ad651be6" + }, + { + "nr": 116108, + "hash": "e38d0aeaf0a322e24a0e49060298f7ee8c5358b1" + }, + { + "nr": 116171, + "hash": "0c21b839402b31be6de82f3ddc17b25571b80541" + }, + { + "nr": 116293, + "hash": "b8f1156a829957978c5dbb41d8d7fc41193b7bc6" + }, + { + "nr": 115149, + "hash": "3641ddcdabd8c63aac26664040262e42d757e035" + }, + { + "nr": 113916, + "hash": "b9c12771cf132a14dc7afc124a0c8976681f3550" + }, + { + "nr": 116350, + "hash": "430464f676b63a7b48a32e2cccc1ef225b3a7d95" + }, + { + "nr": 115840, + "hash": "df1b45e70b4fef46a13e3f2a3d71ff312ddb183f" + }, + { + "nr": 116436, + "hash": "4fd3d1c7ed825d624dbf1195cf59b34e6b4550f1" + }, + { + "nr": 116015, + "hash": "fbe6e8b72847e72f71be24013f737eabdfc48fd0" + }, + { + "nr": 116121, + "hash": "104d2a54c70538fd575892ab32556e4a1e228616" + }, + { + "nr": 115049, + "hash": "590408e9fe69f90adc0f3da1f4495921a325d268" + }, + { + "nr": 115082, + "hash": "bf636a37d84addf2ed1f7db4a5d409f0252583d0" + }, + { + "nr": 116612, + "hash": "6df03b76ff20cad0a28b6594cacb1426a0a36806" + }, + { + "nr": 116119, + "hash": "3c7f7eec1bd5dab6b49fa4b59dd2da8ea3d0efe1" + }, + { + "nr": 116529, + "hash": "22c3733a7b6bf1d4add498be37271ee0db1a62d9" + }, + { + "nr": 112670, + "hash": "411ae5be9cb9f797635a93d43074eebcb4709a65" + }, + { + "nr": 113840, + "hash": "3287a7aac3834dd7d4febdac2d69fa24f63c8683" + }, + { + "nr": 116332, + "hash": "fc1acddeb5b544875f89c0e5af6c29f05fa7acad" + }, + { + "nr": 113910, + "hash": "93f9d9b5d323c0b355393af1fe84d0b401cb01a8" + }, + { + "nr": 113471, + "hash": "4a18afde15b6bb7b99197ea7504eea85fbda68e8" + }, + { + "nr": 116235, + "hash": "661b0349c8426670d067b5b0c33f7d8597456edd" + }, + { + "nr": 116010, + "hash": "66dbf2319b518944cad7814a57a99582714f4dff" + }, + { + "nr": 116043, + "hash": "4ba0b4515fd052b5e088185bbc30eee4f0419f37" + }, + { + "nr": 113443, + "hash": "d6504348245d65603d0db9d1e94374da12928340" + }, + { + "nr": 115747, + "hash": "a78c5ef8f4c8e0bcda6e3959926c736431fc7f83" + }, + { + "nr": 108838, + "hash": "329307dd47168c8b8557650761a07b38d271ad9c" + }, + { + "nr": 116320, + "hash": "10ae7ef67b2748cc0f716969190727ce4b5acb7b" + }, + { + "nr": 115391, + "hash": "8d6b7f691c239990029e29d6ad0bf6af600e06a5" + }, + { + "nr": 116631, + "hash": "237d3c82be018c6bc03165fddea8df234da5c561" + }, + { + "nr": 96120, + "hash": "3bef8a9f6f1207b99d088c0605f660fe09e73cde" + }, + { + "nr": 115861, + "hash": "f30661296ccfc9f25b4a53c1c905abc5643cc164" + }, + { + "nr": 114918, + "hash": "95ec538190cee82cd1549857bb83b29fbc60a6c6" + }, + { + "nr": 115693, + "hash": "98ebc79d8664e25ac9991d3a86be6a02ef0892bd" + }, + { + "nr": 113270, + "hash": "c9a0e9f58ae33ff1a8bf6ad1fa22eb804c6c5d71" + }, + { + "nr": 116155, + "hash": "37f263545295c008fea1c9c58c147d9487426cf1" + }, + { + "nr": 113879, + "hash": "7f2810a1971b2ee7f1f31b09d6fa75ec7f2da1ae" + }, + { + "nr": 111661, + "hash": "384aee51eed5d31480168409bd42148188a04ec4" + }, + { + "nr": 115966, + "hash": "6c484402974b955e5b0d6ddec5ee1906ab451184" + }, + { + "nr": 115075, + "hash": "be1d710b495072b3db43ca3e7d1a8ea014358d84" + }, + { + "nr": 116535, + "hash": "492387a2555d81aee3d9609602658d2ffff7dd84" + }, + { + "nr": 114904, + "hash": "934a0d3c06cfe1ab3f4abc0435bb192e95b0e2aa" + }, + { + "nr": 110566, + "hash": "4260975c8b03438d2fe74be20f7727c0b07f46c8" + }, + { + "nr": 116291, + "hash": "1f5e758d8f9e4d24ba18af32923b680269b3e78b" + }, + { + "nr": 116255, + "hash": "b5f2020a2b90bf5c1520017dce5a02c68470d1c8" + }, + { + "nr": 116551, + "hash": "1a246f23a9b3e396c07dd7f934fadda68f1ccc69" + }, + { + "nr": 112334, + "hash": "08797b4b7b065f7de19a8158a0103ca8f4c9fb10" + } + ] } \ No newline at end of file diff --git a/releases/release-1.27/release-notes/sessions/maps-1680985901.json b/releases/release-1.27/release-notes/sessions/maps-1680985901.json index 99d7d60747d..48ba845bbed 100644 --- a/releases/release-1.27/release-notes/sessions/maps-1680985901.json +++ b/releases/release-1.27/release-notes/sessions/maps-1680985901.json @@ -1,475 +1,475 @@ -{ - "mail": "sanchita.mishra1718@gmail.com", - "name": "sanchita-07", - "date": 1680985901, - "prs": [ - { - "nr": 116046, - "hash": "66718e84ceb5378f0fbe2507216581fbc86fa257" - }, - { - "nr": 114226, - "hash": "43f3e875bef1217d4e7531a0211a7e0890737814" - }, - { - "nr": 115969, - "hash": "feea5304b81b18e0e4a0c778d180fd2811137f22" - }, - { - "nr": 116274, - "hash": "514c2e9f1069994472135472fc5beab5023e0928" - }, - { - "nr": 116684, - "hash": "ac27819fdf1eb77dc6ec8795ac3f8bb792fe41fc" - }, - { - "nr": 116607, - "hash": "5dba84249f4e42ad6f6197b9b6a4f80e4316ed63" - }, - { - "nr": 115630, - "hash": "da1f113a692bb5632c3b09f37b9873cd708851a6" - }, - { - "nr": 116144, - "hash": "89d7b7120f15e7427a9dd04d4f6778aa6f9cf85f" - }, - { - "nr": 116571, - "hash": "bff3ffd1ff7e45de7b0e474d86c383db3c476adc" - }, - { - "nr": 115904, - "hash": "00638ef1aebfc103a627cd73d875564dd2a41753" - }, - { - "nr": 116301, - "hash": "a703082a2d02c8d694fbbc9aa34aef7ee4dfa1f5" - }, - { - "nr": 116500, - "hash": "dc63c3145f2a26f298390260ae6c77f03219e6d6" - }, - { - "nr": 113525, - "hash": "1a00133fda8a1c834a5886bb9ff76a11373afccc" - }, - { - "nr": 116533, - "hash": "a2aca788639db6b36653e021741157ab74939ee7" - }, - { - "nr": 116428, - "hash": "653485dc27616f9b3782de0925c24663e103a206" - }, - { - "nr": 115856, - "hash": "f51764a26e1006d56a95a80c788771bab030228f" - }, - { - "nr": 114930, - "hash": "43d9f28b5d12c963e1b2c02876846fefd255a325" - }, - { - "nr": 111372, - "hash": "96420f2e3259d0c1862a0b22ba11c542f6952dd7" - }, - { - "nr": 115480, - "hash": "f55a851d0cc8867597f133abe9b9beb52d7ebd04" - }, - { - "nr": 116093, - "hash": "7575f2a83d22358d63d221c41cf0ecf28f7940be" - }, - { - "nr": 116342, - "hash": "e5b205027be7c0a39d3f905f9594e62dcab5c77e" - }, - { - "nr": 116621, - "hash": "5e6663cdf325536feb2e8849c85feb0753a217cd" - }, - { - "nr": 116233, - "hash": "4eb1a7ed2efe18f6ab3775f9def6aecc5d13e075" - }, - { - "nr": 113584, - "hash": "32fc8aa3e20c082042f7b52772d969777fa3876d" - }, - { - "nr": 115123, - "hash": "bdf0878c1ac8e96715f8c914bc1d6e0aabac3b22" - }, - { - "nr": 116558, - "hash": "c22c5f3c6b32ae96887fe1b4f950342a3ded2e56" - }, - { - "nr": 116201, - "hash": "86a73ec13507c9b24fa398b04aa9bcfb702d79df" - }, - { - "nr": 113428, - "hash": "ee7bb6a67eb91d65841acc505e4e8a1593dfb9cd" - }, - { - "nr": 116205, - "hash": "b129c9455ca3f6c2c8c6ef5dba548631a94ebea0" - }, - { - "nr": 114426, - "hash": "553de1894bca62862f443af577e35962a4dc7ce1" - }, - { - "nr": 116219, - "hash": "06b2d527dfb28c0c8427dccb286e0c7777944d7c" - }, - { - "nr": 115973, - "hash": "e38cd425e05e7bfbe0d0c37f0d2ec3dbb9f46984" - }, - { - "nr": 116509, - "hash": "b10979bc4d6ec33e147e093aaa555318d0d7637f" - }, - { - "nr": 114871, - "hash": "6c9ef1687c3b6bbde60235faefb30cfc0d3ff067" - }, - { - "nr": 116390, - "hash": "e272266769cbe514dd69844889ac8056cadb98c7" - }, - { - "nr": 116556, - "hash": "796ca8788d33bb39040e0e962c6675568dc32a29" - }, - { - "nr": 116590, - "hash": "d458112135f59f408b6d603c984caf97786631b8" - }, - { - "nr": 113464, - "hash": "1cf4a7365c2c1f30ec8f905854785dfdc5bd7df8" - }, - { - "nr": 115451, - "hash": "6256a5ec7327032d69bc4f2c52ac3164eb909ac6" - }, - { - "nr": 116770, - "hash": "fa3bd3223a88bf43a270967b61e53a0eba7b7fc4" - }, - { - "nr": 114397, - "hash": "a4fd713d0083196bdebc854b0353951ad81f537e" - }, - { - "nr": 114598, - "hash": "c039f8d2b04d3322cc264eae241034374609810e" - }, - { - "nr": 102884, - "hash": "0980851337c6c3130bcf770c0eeeff4bf166e6d4" - }, - { - "nr": 116554, - "hash": "837e596af018dfbe0546bdded8c5d2879e37c34e" - }, - { - "nr": 114017, - "hash": "2ed8d54d77f6998e5e40afdc19c2dde759de1073" - }, - { - "nr": 115204, - "hash": "0380d6c8f89f207d7cbe4de7c1cd8d727df56815" - }, - { - "nr": 116595, - "hash": "0646487f8bafc1687d002cd2aefb11a3ea3bfbd6" - }, - { - "nr": 114497, - "hash": "6ae89da791acbb0693935d8df68a5bc8125cb7aa" - }, - { - "nr": 111658, - "hash": "fb520e58ee24e1801c0a14fff27b434e8ee0c11c" - }, - { - "nr": 116329, - "hash": "9c608662bd915d82eff325eb3e679670f2b2b919" - }, - { - "nr": 115447, - "hash": "2d9d5585f82ce7ceabe2091c5a96c38589d6b30b" - }, - { - "nr": 116576, - "hash": "ea9b922a86ef4d33f7302de7d11c3b3a95e4d83a" - }, - { - "nr": 116404, - "hash": "fcb6f88554624dbb5db997783089bc8240fb58a7" - }, - { - "nr": 113218, - "hash": "fca29f053e832e6dcd90977f61fefee2d983505c" - }, - { - "nr": 114357, - "hash": "50e7dfea4b870e188d8b83e72950366ff6a10dfe" - }, - { - "nr": 116261, - "hash": "96a9f53b926598cb8aeb18c294dceedea637d9a8" - }, - { - "nr": 116397, - "hash": "01ac8713dbebe8e924152084ea7a8ed0c20ada90" - }, - { - "nr": 116510, - "hash": "40a24de069f72bc7736a22f712584ff82e71526a" - }, - { - "nr": 115967, - "hash": "eacc07e278fc4b573f68098e9321b1576ebcf6b5" - }, - { - "nr": 113622, - "hash": "9f9b9f3c390e5cf5d3e00723a2369571c7835293" - }, - { - "nr": 116610, - "hash": "ff36baeff0880d219f28ae3df14bbb8db661f4a6" - }, - { - "nr": 114863, - "hash": "e81b10cd8283454b3728815ef55a5ee2bb7eebb0" - }, - { - "nr": 116702, - "hash": "aa4aabe020b1cd9f8522e22c232e9d7e99ccbf29" - }, - { - "nr": 115847, - "hash": "0b2ec71b6500764e99dd882d6e376afee3120525" - }, - { - "nr": 110864, - "hash": "f4f590180ea2a9af06223b6cb8492cdf255415da" - }, - { - "nr": 116395, - "hash": "3f97fa7eaa4f4f88fd8747ae865039ac34955639" - }, - { - "nr": 107124, - "hash": "8625403615917ee46e975f24973bfa443cde67fb" - }, - { - "nr": 115965, - "hash": "553d613ffa40028da4691f4d3db5ea5fa7c3af13" - }, - { - "nr": 116167, - "hash": "39ddd63b24f399a14391ede4321c8ab3a427f16c" - }, - { - "nr": 116501, - "hash": "a9c4128911c5a79f087d342ba098c1013311a15d" - }, - { - "nr": 116598, - "hash": "3cdc67c058060107ef35c3151875d7c8468e754f" - }, - { - "nr": 115331, - "hash": "32e5ffa395c98b238f74a8cfdf553b69ab2edc58" - }, - { - "nr": 115879, - "hash": "6a5eaeb87eb1bf7d32f6f1543655b1303d799ebd" - }, - { - "nr": 116866, - "hash": "d9e93e09ca11fc04b6e0d59fd932f55d32e1f35b" - }, - { - "nr": 115371, - "hash": "7d3616992ba98c60d9e6f015499193ccd121e7f8" - }, - { - "nr": 116305, - "hash": "3f0d7a6d04693a2e6fdd511d5248ae3d5d344546" - }, - { - "nr": 115374, - "hash": "5b146b719d90f2f2b30c9323081a7281201145b8" - }, - { - "nr": 116377, - "hash": "b2b25ce9f3ca8d29db089f54ec76b86c48439e47" - }, - { - "nr": 116326, - "hash": "e2d5f5955312b6f578382041e92fa50199a84bc0" - }, - { - "nr": 114768, - "hash": "9d5f16dd33f7e39042e0fece92159cf57474f636" - }, - { - "nr": 115655, - "hash": "55881dc76bf4c03e0e7f3033c4f201d059b660c5" - }, - { - "nr": 114498, - "hash": "d278939cf92dadc2d2bde419f210c95652498076" - }, - { - "nr": 116459, - "hash": "8eed9a9b03352310d8d85d06e417dd71ea463837" - }, - { - "nr": 115209, - "hash": "7b2963b54c14f26418acf4a137ca1a9139a04719" - }, - { - "nr": 116066, - "hash": "115c931a40cf1bf118b6fd5d6c31cfed1c41d541" - }, - { - "nr": 116425, - "hash": "7ae45887ff425471db57a3f14e85aa1ffb6ef518" - }, - { - "nr": 115742, - "hash": "f894ce367e3d505a82b63e0ab68e5b601226469e" - }, - { - "nr": 115260, - "hash": "d435c41c3e420ea0cc828e5585cc6b2a4fee7c8e" - }, - { - "nr": 116450, - "hash": "b792bd3965dc975f3f649bf0662f673a75718036" - }, - { - "nr": 116054, - "hash": "3a1487f0906e7ed047b24bbc9ff667c0347855c3" - }, - { - "nr": 115621, - "hash": "1a6e9a06b1c39b8e62463ab6748ca5326e79ff94" - }, - { - "nr": 114701, - "hash": "2c52bcbb3044107bddd215017869c5443b41b981" - }, - { - "nr": 115268, - "hash": "850dac7576a9d415a884a2bd092d1cb2e1fd57f2" - }, - { - "nr": 116299, - "hash": "ec3da33082912ab1bffdbe3913120d13a3b9bedd" - }, - { - "nr": 115332, - "hash": "c2b1d070bbb83b53bd5e6ae15f14a3435dc2fad3" - }, - { - "nr": 116420, - "hash": "1e21d8eafe93077b3d7181b6ceb90645944e96f3" - }, - { - "nr": 115603, - "hash": "cfff45c4fa43e59cb85f37925be720b31822a629" - }, - { - "nr": 113145, - "hash": "6a7c944fd798bb5a527f2ee1bbb3c909afcfec97" - }, - { - "nr": 116550, - "hash": "fcf50ef4a4bab2a532e18855a376ac3c4dfb1c1f" - }, - { - "nr": 116353, - "hash": "12782eaab9b486637e90705493f30abe5a627159" - }, - { - "nr": 114572, - "hash": "e4b957f4088df36e49b2fb7c30d8a24249e23844" - }, - { - "nr": 116161, - "hash": "9e34028834d72f2f1b7c0bf273326028c6593264" - }, - { - "nr": 114227, - "hash": "59dffbddbd1b49dae5f4d42c487d73a3ba4fb0c5" - }, - { - "nr": 115750, - "hash": "59ef807a895553ddb5bbcb1545aa34fee9dda099" - }, - { - "nr": 110772, - "hash": "32eb11440fbfbf914ada6b138aa1153019273609" - }, - { - "nr": 115769, - "hash": "0aee286cda7990e47ce93c65540a20991068af76" - }, - { - "nr": 116523, - "hash": "60f85b0f124de5e71670ad49b296ce73cea9700e" - }, - { - "nr": 111634, - "hash": "6dd300ca36fbe48031539ac83018866baceec9da" - }, - { - "nr": 107826, - "hash": "d0be5fb7c34f4ea5010c34e74ecc29b17346cfff" - }, - { - "nr": 116522, - "hash": "583b83cedd85ef6928b1464a096ea115c7af3668" - }, - { - "nr": 116546, - "hash": "8a43b5df765b4b6c47a640a94b3e104d06dcb9f6" - }, - { - "nr": 116287, - "hash": "1a492f5411955ab2298d58122a7bf064eb926d3b" - }, - { - "nr": 116172, - "hash": "33227c723fd9c4d3c3a5cf29a2572b29e97e4023" - }, - { - "nr": 116351, - "hash": "4895dcb26ba818032e12ef03f9bb6eed023e0b9b" - }, - { - "nr": 115668, - "hash": "8f2ff2e9b93ca4f731016066f3393f10c0ce1ea0" - }, - { - "nr": 113986, - "hash": "fc55d8e3d1e5d0ceb295d392ea124057eb7948a1" - }, - { - "nr": 115433, - "hash": "a98a5cd94700b4f8176edc45ede2558385e26a29" - } - ] +{ + "mail": "sanchita.mishra1718@gmail.com", + "name": "sanchita-07", + "date": 1680985901, + "prs": [ + { + "nr": 116046, + "hash": "66718e84ceb5378f0fbe2507216581fbc86fa257" + }, + { + "nr": 114226, + "hash": "43f3e875bef1217d4e7531a0211a7e0890737814" + }, + { + "nr": 115969, + "hash": "feea5304b81b18e0e4a0c778d180fd2811137f22" + }, + { + "nr": 116274, + "hash": "514c2e9f1069994472135472fc5beab5023e0928" + }, + { + "nr": 116684, + "hash": "ac27819fdf1eb77dc6ec8795ac3f8bb792fe41fc" + }, + { + "nr": 116607, + "hash": "5dba84249f4e42ad6f6197b9b6a4f80e4316ed63" + }, + { + "nr": 115630, + "hash": "da1f113a692bb5632c3b09f37b9873cd708851a6" + }, + { + "nr": 116144, + "hash": "89d7b7120f15e7427a9dd04d4f6778aa6f9cf85f" + }, + { + "nr": 116571, + "hash": "bff3ffd1ff7e45de7b0e474d86c383db3c476adc" + }, + { + "nr": 115904, + "hash": "00638ef1aebfc103a627cd73d875564dd2a41753" + }, + { + "nr": 116301, + "hash": "a703082a2d02c8d694fbbc9aa34aef7ee4dfa1f5" + }, + { + "nr": 116500, + "hash": "dc63c3145f2a26f298390260ae6c77f03219e6d6" + }, + { + "nr": 113525, + "hash": "1a00133fda8a1c834a5886bb9ff76a11373afccc" + }, + { + "nr": 116533, + "hash": "a2aca788639db6b36653e021741157ab74939ee7" + }, + { + "nr": 116428, + "hash": "653485dc27616f9b3782de0925c24663e103a206" + }, + { + "nr": 115856, + "hash": "f51764a26e1006d56a95a80c788771bab030228f" + }, + { + "nr": 114930, + "hash": "43d9f28b5d12c963e1b2c02876846fefd255a325" + }, + { + "nr": 111372, + "hash": "96420f2e3259d0c1862a0b22ba11c542f6952dd7" + }, + { + "nr": 115480, + "hash": "f55a851d0cc8867597f133abe9b9beb52d7ebd04" + }, + { + "nr": 116093, + "hash": "7575f2a83d22358d63d221c41cf0ecf28f7940be" + }, + { + "nr": 116342, + "hash": "e5b205027be7c0a39d3f905f9594e62dcab5c77e" + }, + { + "nr": 116621, + "hash": "5e6663cdf325536feb2e8849c85feb0753a217cd" + }, + { + "nr": 116233, + "hash": "4eb1a7ed2efe18f6ab3775f9def6aecc5d13e075" + }, + { + "nr": 113584, + "hash": "32fc8aa3e20c082042f7b52772d969777fa3876d" + }, + { + "nr": 115123, + "hash": "bdf0878c1ac8e96715f8c914bc1d6e0aabac3b22" + }, + { + "nr": 116558, + "hash": "c22c5f3c6b32ae96887fe1b4f950342a3ded2e56" + }, + { + "nr": 116201, + "hash": "86a73ec13507c9b24fa398b04aa9bcfb702d79df" + }, + { + "nr": 113428, + "hash": "ee7bb6a67eb91d65841acc505e4e8a1593dfb9cd" + }, + { + "nr": 116205, + "hash": "b129c9455ca3f6c2c8c6ef5dba548631a94ebea0" + }, + { + "nr": 114426, + "hash": "553de1894bca62862f443af577e35962a4dc7ce1" + }, + { + "nr": 116219, + "hash": "06b2d527dfb28c0c8427dccb286e0c7777944d7c" + }, + { + "nr": 115973, + "hash": "e38cd425e05e7bfbe0d0c37f0d2ec3dbb9f46984" + }, + { + "nr": 116509, + "hash": "b10979bc4d6ec33e147e093aaa555318d0d7637f" + }, + { + "nr": 114871, + "hash": "6c9ef1687c3b6bbde60235faefb30cfc0d3ff067" + }, + { + "nr": 116390, + "hash": "e272266769cbe514dd69844889ac8056cadb98c7" + }, + { + "nr": 116556, + "hash": "796ca8788d33bb39040e0e962c6675568dc32a29" + }, + { + "nr": 116590, + "hash": "d458112135f59f408b6d603c984caf97786631b8" + }, + { + "nr": 113464, + "hash": "1cf4a7365c2c1f30ec8f905854785dfdc5bd7df8" + }, + { + "nr": 115451, + "hash": "6256a5ec7327032d69bc4f2c52ac3164eb909ac6" + }, + { + "nr": 116770, + "hash": "fa3bd3223a88bf43a270967b61e53a0eba7b7fc4" + }, + { + "nr": 114397, + "hash": "a4fd713d0083196bdebc854b0353951ad81f537e" + }, + { + "nr": 114598, + "hash": "c039f8d2b04d3322cc264eae241034374609810e" + }, + { + "nr": 102884, + "hash": "0980851337c6c3130bcf770c0eeeff4bf166e6d4" + }, + { + "nr": 116554, + "hash": "837e596af018dfbe0546bdded8c5d2879e37c34e" + }, + { + "nr": 114017, + "hash": "2ed8d54d77f6998e5e40afdc19c2dde759de1073" + }, + { + "nr": 115204, + "hash": "0380d6c8f89f207d7cbe4de7c1cd8d727df56815" + }, + { + "nr": 116595, + "hash": "0646487f8bafc1687d002cd2aefb11a3ea3bfbd6" + }, + { + "nr": 114497, + "hash": "6ae89da791acbb0693935d8df68a5bc8125cb7aa" + }, + { + "nr": 111658, + "hash": "fb520e58ee24e1801c0a14fff27b434e8ee0c11c" + }, + { + "nr": 116329, + "hash": "9c608662bd915d82eff325eb3e679670f2b2b919" + }, + { + "nr": 115447, + "hash": "2d9d5585f82ce7ceabe2091c5a96c38589d6b30b" + }, + { + "nr": 116576, + "hash": "ea9b922a86ef4d33f7302de7d11c3b3a95e4d83a" + }, + { + "nr": 116404, + "hash": "fcb6f88554624dbb5db997783089bc8240fb58a7" + }, + { + "nr": 113218, + "hash": "fca29f053e832e6dcd90977f61fefee2d983505c" + }, + { + "nr": 114357, + "hash": "50e7dfea4b870e188d8b83e72950366ff6a10dfe" + }, + { + "nr": 116261, + "hash": "96a9f53b926598cb8aeb18c294dceedea637d9a8" + }, + { + "nr": 116397, + "hash": "01ac8713dbebe8e924152084ea7a8ed0c20ada90" + }, + { + "nr": 116510, + "hash": "40a24de069f72bc7736a22f712584ff82e71526a" + }, + { + "nr": 115967, + "hash": "eacc07e278fc4b573f68098e9321b1576ebcf6b5" + }, + { + "nr": 113622, + "hash": "9f9b9f3c390e5cf5d3e00723a2369571c7835293" + }, + { + "nr": 116610, + "hash": "ff36baeff0880d219f28ae3df14bbb8db661f4a6" + }, + { + "nr": 114863, + "hash": "e81b10cd8283454b3728815ef55a5ee2bb7eebb0" + }, + { + "nr": 116702, + "hash": "aa4aabe020b1cd9f8522e22c232e9d7e99ccbf29" + }, + { + "nr": 115847, + "hash": "0b2ec71b6500764e99dd882d6e376afee3120525" + }, + { + "nr": 110864, + "hash": "f4f590180ea2a9af06223b6cb8492cdf255415da" + }, + { + "nr": 116395, + "hash": "3f97fa7eaa4f4f88fd8747ae865039ac34955639" + }, + { + "nr": 107124, + "hash": "8625403615917ee46e975f24973bfa443cde67fb" + }, + { + "nr": 115965, + "hash": "553d613ffa40028da4691f4d3db5ea5fa7c3af13" + }, + { + "nr": 116167, + "hash": "39ddd63b24f399a14391ede4321c8ab3a427f16c" + }, + { + "nr": 116501, + "hash": "a9c4128911c5a79f087d342ba098c1013311a15d" + }, + { + "nr": 116598, + "hash": "3cdc67c058060107ef35c3151875d7c8468e754f" + }, + { + "nr": 115331, + "hash": "32e5ffa395c98b238f74a8cfdf553b69ab2edc58" + }, + { + "nr": 115879, + "hash": "6a5eaeb87eb1bf7d32f6f1543655b1303d799ebd" + }, + { + "nr": 116866, + "hash": "d9e93e09ca11fc04b6e0d59fd932f55d32e1f35b" + }, + { + "nr": 115371, + "hash": "7d3616992ba98c60d9e6f015499193ccd121e7f8" + }, + { + "nr": 116305, + "hash": "3f0d7a6d04693a2e6fdd511d5248ae3d5d344546" + }, + { + "nr": 115374, + "hash": "5b146b719d90f2f2b30c9323081a7281201145b8" + }, + { + "nr": 116377, + "hash": "b2b25ce9f3ca8d29db089f54ec76b86c48439e47" + }, + { + "nr": 116326, + "hash": "e2d5f5955312b6f578382041e92fa50199a84bc0" + }, + { + "nr": 114768, + "hash": "9d5f16dd33f7e39042e0fece92159cf57474f636" + }, + { + "nr": 115655, + "hash": "55881dc76bf4c03e0e7f3033c4f201d059b660c5" + }, + { + "nr": 114498, + "hash": "d278939cf92dadc2d2bde419f210c95652498076" + }, + { + "nr": 116459, + "hash": "8eed9a9b03352310d8d85d06e417dd71ea463837" + }, + { + "nr": 115209, + "hash": "7b2963b54c14f26418acf4a137ca1a9139a04719" + }, + { + "nr": 116066, + "hash": "115c931a40cf1bf118b6fd5d6c31cfed1c41d541" + }, + { + "nr": 116425, + "hash": "7ae45887ff425471db57a3f14e85aa1ffb6ef518" + }, + { + "nr": 115742, + "hash": "f894ce367e3d505a82b63e0ab68e5b601226469e" + }, + { + "nr": 115260, + "hash": "d435c41c3e420ea0cc828e5585cc6b2a4fee7c8e" + }, + { + "nr": 116450, + "hash": "b792bd3965dc975f3f649bf0662f673a75718036" + }, + { + "nr": 116054, + "hash": "3a1487f0906e7ed047b24bbc9ff667c0347855c3" + }, + { + "nr": 115621, + "hash": "1a6e9a06b1c39b8e62463ab6748ca5326e79ff94" + }, + { + "nr": 114701, + "hash": "2c52bcbb3044107bddd215017869c5443b41b981" + }, + { + "nr": 115268, + "hash": "850dac7576a9d415a884a2bd092d1cb2e1fd57f2" + }, + { + "nr": 116299, + "hash": "ec3da33082912ab1bffdbe3913120d13a3b9bedd" + }, + { + "nr": 115332, + "hash": "c2b1d070bbb83b53bd5e6ae15f14a3435dc2fad3" + }, + { + "nr": 116420, + "hash": "1e21d8eafe93077b3d7181b6ceb90645944e96f3" + }, + { + "nr": 115603, + "hash": "cfff45c4fa43e59cb85f37925be720b31822a629" + }, + { + "nr": 113145, + "hash": "6a7c944fd798bb5a527f2ee1bbb3c909afcfec97" + }, + { + "nr": 116550, + "hash": "fcf50ef4a4bab2a532e18855a376ac3c4dfb1c1f" + }, + { + "nr": 116353, + "hash": "12782eaab9b486637e90705493f30abe5a627159" + }, + { + "nr": 114572, + "hash": "e4b957f4088df36e49b2fb7c30d8a24249e23844" + }, + { + "nr": 116161, + "hash": "9e34028834d72f2f1b7c0bf273326028c6593264" + }, + { + "nr": 114227, + "hash": "59dffbddbd1b49dae5f4d42c487d73a3ba4fb0c5" + }, + { + "nr": 115750, + "hash": "59ef807a895553ddb5bbcb1545aa34fee9dda099" + }, + { + "nr": 110772, + "hash": "32eb11440fbfbf914ada6b138aa1153019273609" + }, + { + "nr": 115769, + "hash": "0aee286cda7990e47ce93c65540a20991068af76" + }, + { + "nr": 116523, + "hash": "60f85b0f124de5e71670ad49b296ce73cea9700e" + }, + { + "nr": 111634, + "hash": "6dd300ca36fbe48031539ac83018866baceec9da" + }, + { + "nr": 107826, + "hash": "d0be5fb7c34f4ea5010c34e74ecc29b17346cfff" + }, + { + "nr": 116522, + "hash": "583b83cedd85ef6928b1464a096ea115c7af3668" + }, + { + "nr": 116546, + "hash": "8a43b5df765b4b6c47a640a94b3e104d06dcb9f6" + }, + { + "nr": 116287, + "hash": "1a492f5411955ab2298d58122a7bf064eb926d3b" + }, + { + "nr": 116172, + "hash": "33227c723fd9c4d3c3a5cf29a2572b29e97e4023" + }, + { + "nr": 116351, + "hash": "4895dcb26ba818032e12ef03f9bb6eed023e0b9b" + }, + { + "nr": 115668, + "hash": "8f2ff2e9b93ca4f731016066f3393f10c0ce1ea0" + }, + { + "nr": 113986, + "hash": "fc55d8e3d1e5d0ceb295d392ea124057eb7948a1" + }, + { + "nr": 115433, + "hash": "a98a5cd94700b4f8176edc45ede2558385e26a29" + } + ] } \ No newline at end of file diff --git a/releases/release-1.27/release-team.md b/releases/release-1.27/release-team.md index d7ddab56d2d..8789f63f88d 100644 --- a/releases/release-1.27/release-team.md +++ b/releases/release-1.27/release-team.md @@ -1,17 +1,17 @@ -# Kubernetes 1.27 Release Team - -| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|----------|----------------------------------|----------------------------------------| -| Release Team Lead | Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`) | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`), Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack: `@psaggu`), Heba Elayoty ([@helayoty](https://github.com/helayoty) / Slack: `@helayoty`), Hossein Salahi ([@hosseinsalahi](https://github.com/hosseinsalahi) / Slack: `@hosseinsalahi`) | -| Emeritus Adviser | James Laverack ([@jameslaverack](https://github.com/jameslaverack) / Slack: `@james.laverack`) | N/A | -| Enhancements | Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@Mark Rossetti`) | Atharva Shinde ([@Atharva-Shinde](https://github.com/Atharva-Shinde) / Slack: `@Atharva-Shinde`), Frederico Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz`), Sang Woo Bae ([@Shatoboar](https://github.com/Shatoboar) / Slack: `@Sangwoo Bae`), Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova`) | -| Release Notes | Harsha Narayana ([@harshanarayana](https://github.com/harshanarayana) / Slack: `@Harsha Narayana`) | Ana Margarita Medina ([@AnaMMedina21](https://github.com/AnaMMedina21) / Slack: `@Ana Margarita Medina`), Richard Sadowski ([@rjsadow](https://github.com/rjsadow) / Slack: `@Ricky Sadowski`), Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07) / Slack: `@Sanchita Mishra`), Yash Raj Singh ([@yrs147](https://github.com/yrs147) / Slack: `@Yash Raj Singh`) | -| Communications | Harshita Sao ([@harshitasao](https://github.com/harshitasao) / Slack: `@Harshita Sao` ) | Brad McCoy ([@bradmccoydev](https://github.com/bradmccoydev) / Slack: `@Brad McCoy` ), Nancy Chauhan ([@Nancy-Chauhan](https://github.com/Nancy-Chauhan) / Slack: `@Nancy Chauhan` ), Tony Gosselin ([@sfotony](https://github.com/sfotony) / Slack: `@Tony Gosselin` ), João Henri Carrenho Rocha ([@jaehnri](https://github.com/jaehnri) / Slack: `@João Henri` ) -| Bug Triage | Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos) / Slack: `@Angelos Kolaitis`) | Carlos Santana ([@csantanapr](https://github.com/csantanapr) / Slack: `@csantanapr`), Furkat Gofurov ([@furkatgofurov7](https://github.com/furkatgofurov7) / Slack: `@Furkat Gofurov`), Parthvi Vala ([@valaparthvi](https://github.com/valaparthvi) / Slack: `@valaparthvi`), Sowmya Viswanathan ([@sowmyav27](https://github.com/sowmyav27) / Slack: `@viswanathan.sowmya`) | -| CI Signal | Laura Lorenz ([@lauralorenz](https://github.com/lauralorenz) / Slack: `@Laura Lorenz`) | Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav`), Drew Hagen ([@drewhagen](https://github.com/drewhagen) / Slack: `@drewhagen`), Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@Meha Bhalodiya`), Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`)| -| Docs | Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@Mickey`) | Jackline Mutua ([@katmutua](https://github.com/katmutua) / Slack: `@jacklinem`), Lukonde Mwila ([@LukeMwila](https://github.com/LukeMwila) / Slack: `@Lukonde Mwila`), Rishit Dagli ([@Rishit-dagli](https://github.com/Rishit-dagli) / Slack: `@Rishit Dagli`), Tania Duggal ([@taniaduggal](https://github.com/taniaduggal) / Slack: `@Tania Duggal`) | -| Branch Manager | Cici Huang ([@cici37](https://github.com/cici37) / Slack: `@cici37`) | Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`), Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `ramrodo`) | - -Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.27, once the 1.27 release cycle concludes. +# Kubernetes 1.27 Release Team + +| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|----------|----------------------------------|----------------------------------------| +| Release Team Lead | Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`) | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`), Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack: `@psaggu`), Heba Elayoty ([@helayoty](https://github.com/helayoty) / Slack: `@helayoty`), Hossein Salahi ([@hosseinsalahi](https://github.com/hosseinsalahi) / Slack: `@hosseinsalahi`) | +| Emeritus Adviser | James Laverack ([@jameslaverack](https://github.com/jameslaverack) / Slack: `@james.laverack`) | N/A | +| Enhancements | Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@Mark Rossetti`) | Atharva Shinde ([@Atharva-Shinde](https://github.com/Atharva-Shinde) / Slack: `@Atharva-Shinde`), Frederico Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz`), Sang Woo Bae ([@Shatoboar](https://github.com/Shatoboar) / Slack: `@Sangwoo Bae`), Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova`) | +| Release Notes | Harsha Narayana ([@harshanarayana](https://github.com/harshanarayana) / Slack: `@Harsha Narayana`) | Ana Margarita Medina ([@AnaMMedina21](https://github.com/AnaMMedina21) / Slack: `@Ana Margarita Medina`), Richard Sadowski ([@rjsadow](https://github.com/rjsadow) / Slack: `@Ricky Sadowski`), Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07) / Slack: `@Sanchita Mishra`), Yash Raj Singh ([@yrs147](https://github.com/yrs147) / Slack: `@Yash Raj Singh`) | +| Communications | Harshita Sao ([@harshitasao](https://github.com/harshitasao) / Slack: `@Harshita Sao` ) | Brad McCoy ([@bradmccoydev](https://github.com/bradmccoydev) / Slack: `@Brad McCoy` ), Nancy Chauhan ([@Nancy-Chauhan](https://github.com/Nancy-Chauhan) / Slack: `@Nancy Chauhan` ), Tony Gosselin ([@sfotony](https://github.com/sfotony) / Slack: `@Tony Gosselin` ), João Henri Carrenho Rocha ([@jaehnri](https://github.com/jaehnri) / Slack: `@João Henri` ) +| Bug Triage | Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos) / Slack: `@Angelos Kolaitis`) | Carlos Santana ([@csantanapr](https://github.com/csantanapr) / Slack: `@csantanapr`), Furkat Gofurov ([@furkatgofurov7](https://github.com/furkatgofurov7) / Slack: `@Furkat Gofurov`), Parthvi Vala ([@valaparthvi](https://github.com/valaparthvi) / Slack: `@valaparthvi`), Sowmya Viswanathan ([@sowmyav27](https://github.com/sowmyav27) / Slack: `@viswanathan.sowmya`) | +| CI Signal | Laura Lorenz ([@lauralorenz](https://github.com/lauralorenz) / Slack: `@Laura Lorenz`) | Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav`), Drew Hagen ([@drewhagen](https://github.com/drewhagen) / Slack: `@drewhagen`), Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@Meha Bhalodiya`), Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`)| +| Docs | Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@Mickey`) | Jackline Mutua ([@katmutua](https://github.com/katmutua) / Slack: `@jacklinem`), Lukonde Mwila ([@LukeMwila](https://github.com/LukeMwila) / Slack: `@Lukonde Mwila`), Rishit Dagli ([@Rishit-dagli](https://github.com/Rishit-dagli) / Slack: `@Rishit Dagli`), Tania Duggal ([@taniaduggal](https://github.com/taniaduggal) / Slack: `@Tania Duggal`) | +| Branch Manager | Cici Huang ([@cici37](https://github.com/cici37) / Slack: `@cici37`) | Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`), Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `ramrodo`) | + +Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.27, once the 1.27 release cycle concludes. diff --git a/releases/release-1.28/README.md b/releases/release-1.28/README.md index a1f1376d181..fcfa88a0aee 100644 --- a/releases/release-1.28/README.md +++ b/releases/release-1.28/README.md @@ -1,116 +1,116 @@ ---- -title: "Kubernetes 1.28 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.28 - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.28/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.28/release-team.md) -* [Meeting Minutes](https://bit.ly/k8s128-releasemtg) (members of [release-team@] receive meeting invites) -* [v1.28 Release Calendar][k8s128-calendar] -* Contact: [#sig-release] on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail -* [Internal Contact Info] (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Board](https://bit.ly/k8s128-enhancements) -* [Feature blog Tracking Board](#) -* [Bug Triage Tracking Board](https://bit.ly/k8s128-bug-triage-tracking) -* [CI Signal Project Board & Issue Tracking](#) -* [Retrospective Document](https://bit.ly/k8s128-retro) -* [kubernetes/sig-release v1.28 milestone](https://github.com/kubernetes/kubernetes/milestone/61) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## Summary - -The 1.28 release cycle is as follows: - -- **Monday 15th May 2023**: Week 1 — Release cycle begins -- **Thursday 8th June 2023**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) -- **[01:00 UTC Friday 16th June 2023 / 18:00 PDT Thursday 15th June 2023](https://everytimezone.com/s/7babb4d3)(https://everytimezone.com/s/cc15bd3a)**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **[01:00 UTC Wednesday 19th July 2023 / 18:00 PDT Tuesday 18th July 2023](https://everytimezone.com/s/72ee8496)**: Week 10 — [Code Freeze](../release_phases.md#code-freeze) -- **[01:00 UTC Wednesday 26nd July 2023 / 17:00 PDT Tuesday 25th July 2023](https://everytimezone.com/s/92d31472)**: Week 11 — [Test Freeze](../release_phases.md#test-freeze) -- **Tuesday 8th August 2023**: Week 13 — Docs must be completed and reviewed -- **Tuesday 15th August 2023**: Week 14 — Kubernetes v1.28.0 released - -## Timeline - -| **What** | **Who** | **When** | **Week** | **CI Signal** | -|---------------------------------------------------------------|---|-----------------------------------------------------------------------------------------------------------------|----------|---| -| Start of Release Cycle | Lead | Monday 15th May 2023 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Monday 15th May 2023 | week 1 | | -| Schedule finalized | Lead | Friday 19th May 2023 | week 1 | | -| Team finalized | Lead | Friday 19th May 2023 | week 1 | | -| 1.28.0-alpha.1 released | Branch Manager | Tuesday 30th May 2023 | Week 3 | | -| Start Release Notes Draft | Release Notes Lead | Tuesday 30th May 2023 | week 3 | | -| 1.28.0-alpha.2 released | Branch Manager | Thursday 8th June 2023 | Week 4 | | -| Production Readiness Freeze | Enhancements Lead | Thursday 8th June 2023 | week 4 | | -| **Begin [Enhancements Freeze]** | Enhancements Lead | [01:00 UTC Friday 16th June 2023 / 18:00 PDT Thursday 15th June 2023](https://everytimezone.com/s/7babb4d3) | week 5 | [master-blocking], [master-informing] | -| 1.28.0-alpha.3 released | Branch Manager | Tuesday 20th June 2023 | Week 6 | | -| Begin Friday APAC-friendly meetings | Lead | Friday 30th June 2023 | Week 7 | | -| 1.28.0-alpha.4 released | Branch Manager | Thursday 6th July 2023 | week 8 | [1.28-blocking], [master-blocking], [master-informing] | -| **Call for [Exceptions][Exception]** | Lead | Monday 10th July 2023 | week 9 | | -| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Monday 10th July 2023 | week 9 | | -| **Begin Feature blog freeze** | Comms Lead | [01:00 UTC Wednesday 12th July 2023 / 18:00 PDT Tuesday 11th July 2023](https://everytimezone.com/s/9fd4bc29) | week 9 | | -| **Begin [Code Freeze]** | Branch Manager | [01:00 UTC Wednesday 19th July 2023 / 18:00 PDT Tuesday 18th July 2023](https://everytimezone.com/s/72ee8496) | week 10 | | -| 1.28.0-beta.0 released | Branch Manager | Thursday 20th July 2023 | week 10 | | -| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 20th July 2023 | week 10 | | -| Deprecations and Removals blog published | Comms | Thursday 20th July 2023 | week 10 | | -| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 24th July 2023 | Week 11 | | -| **[Test Freeze]** | Branch Manager | [01:00 UTC Wednesday 26nd July 2023 / 17:00 PDT Tuesday 25th July 2023](https://everytimezone.com/s/92d31472) | week 11 | | -| Docs deadline — PRs ready for review | Docs Lead | Tuesday 25th July 2023 | Week 11 | | -| 1.28.0-rc.0 released | Branch Manager | Tuesday 25th July 2023 | week 11 | | -| release-1.28 branch created | Branch Manager | Tuesday 25th July 2023 | week 11 | | -| release-1.28 jobs created | Branch Manager | Tuesday 25th July 2023 | week 11 | | -| Major Themes deadline | Comms | Tuesday 25th July 2023 | week 11 | | -| Start final draft of Release Notes | Release Notes Lead | Tuesday 25th July 2023 | week 11 | | -| Release blog ready to review | Comms / Docs | [01:00 UTC Wednesday 26nd July 2023 / 17:00 PDT Tuesday 25th July 2023](https://everytimezone.com/s/92d31472) | week 11 | | -| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 31st July 2023 | week 12 | | -| Major Themes complete | Release Notes Lead | Tuesday 8th August 2023 | week 13 | | -| Docs complete — All PRs reviewed and ready to merge | Docs Lead | Tuesday 8th August 2023 | week 13 | | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Tuesday 8th August 2023 | week 13 | | -| 1.28.0-rc.1 released | Branch Manager | Thursday 10th August 2023 | week 13 | | -| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Release Notes Lead | Tuesday 15th August 2023 | week 14 | | -| **v1.28.0 released** | Branch Manager | Tuesday 15th August 2023 | week 14 | | -| Release blog published | Comms | Tuesday 15th August 2023 | week 14 | | -| **[Thaw]** | Branch Manager | Tuesday 15th August 2023 | week 14 | | | week 15 | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[k8s128-calendar]: https://bit.ly/k8s-release-cal -[Internal Contact Info]: https://bit.ly/k8s128-contacts -[Retrospective Document]: https://bit.ly/k8s128-retro - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Thaw]: ../release_phases.md#thaw -[Test Freeze]: ../release_phases.md#test-freeze - -[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.28-blocking]: https://testgrid.k8s.io/sig-release-1.28-blocking#Summary - -[exception requests]: ../EXCEPTIONS.md -[release phases document]: ../release_phases.md +--- +title: "Kubernetes 1.28 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.28 + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.28/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.28/release-team.md) +* [Meeting Minutes](https://bit.ly/k8s128-releasemtg) (members of [release-team@] receive meeting invites) +* [v1.28 Release Calendar][k8s128-calendar] +* Contact: [#sig-release] on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail +* [Internal Contact Info] (accessible only to members of [release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Board](https://bit.ly/k8s128-enhancements) +* [Feature blog Tracking Board](#) +* [Bug Triage Tracking Board](https://bit.ly/k8s128-bug-triage-tracking) +* [CI Signal Project Board & Issue Tracking](#) +* [Retrospective Document](https://bit.ly/k8s128-retro) +* [kubernetes/sig-release v1.28 milestone](https://github.com/kubernetes/kubernetes/milestone/61) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## Summary + +The 1.28 release cycle is as follows: + +- **Monday 15th May 2023**: Week 1 — Release cycle begins +- **Thursday 8th June 2023**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) +- **[01:00 UTC Friday 16th June 2023 / 18:00 PDT Thursday 15th June 2023](https://everytimezone.com/s/7babb4d3)(https://everytimezone.com/s/cc15bd3a)**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **[01:00 UTC Wednesday 19th July 2023 / 18:00 PDT Tuesday 18th July 2023](https://everytimezone.com/s/72ee8496)**: Week 10 — [Code Freeze](../release_phases.md#code-freeze) +- **[01:00 UTC Wednesday 26nd July 2023 / 17:00 PDT Tuesday 25th July 2023](https://everytimezone.com/s/92d31472)**: Week 11 — [Test Freeze](../release_phases.md#test-freeze) +- **Tuesday 8th August 2023**: Week 13 — Docs must be completed and reviewed +- **Tuesday 15th August 2023**: Week 14 — Kubernetes v1.28.0 released + +## Timeline + +| **What** | **Who** | **When** | **Week** | **CI Signal** | +|---------------------------------------------------------------|---|-----------------------------------------------------------------------------------------------------------------|----------|---| +| Start of Release Cycle | Lead | Monday 15th May 2023 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Monday 15th May 2023 | week 1 | | +| Schedule finalized | Lead | Friday 19th May 2023 | week 1 | | +| Team finalized | Lead | Friday 19th May 2023 | week 1 | | +| 1.28.0-alpha.1 released | Branch Manager | Tuesday 30th May 2023 | Week 3 | | +| Start Release Notes Draft | Release Notes Lead | Tuesday 30th May 2023 | week 3 | | +| 1.28.0-alpha.2 released | Branch Manager | Thursday 8th June 2023 | Week 4 | | +| Production Readiness Freeze | Enhancements Lead | Thursday 8th June 2023 | week 4 | | +| **Begin [Enhancements Freeze]** | Enhancements Lead | [01:00 UTC Friday 16th June 2023 / 18:00 PDT Thursday 15th June 2023](https://everytimezone.com/s/7babb4d3) | week 5 | [master-blocking], [master-informing] | +| 1.28.0-alpha.3 released | Branch Manager | Tuesday 20th June 2023 | Week 6 | | +| Begin Friday APAC-friendly meetings | Lead | Friday 30th June 2023 | Week 7 | | +| 1.28.0-alpha.4 released | Branch Manager | Thursday 6th July 2023 | week 8 | [1.28-blocking], [master-blocking], [master-informing] | +| **Call for [Exceptions][Exception]** | Lead | Monday 10th July 2023 | week 9 | | +| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Monday 10th July 2023 | week 9 | | +| **Begin Feature blog freeze** | Comms Lead | [01:00 UTC Wednesday 12th July 2023 / 18:00 PDT Tuesday 11th July 2023](https://everytimezone.com/s/9fd4bc29) | week 9 | | +| **Begin [Code Freeze]** | Branch Manager | [01:00 UTC Wednesday 19th July 2023 / 18:00 PDT Tuesday 18th July 2023](https://everytimezone.com/s/72ee8496) | week 10 | | +| 1.28.0-beta.0 released | Branch Manager | Thursday 20th July 2023 | week 10 | | +| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 20th July 2023 | week 10 | | +| Deprecations and Removals blog published | Comms | Thursday 20th July 2023 | week 10 | | +| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 24th July 2023 | Week 11 | | +| **[Test Freeze]** | Branch Manager | [01:00 UTC Wednesday 26nd July 2023 / 17:00 PDT Tuesday 25th July 2023](https://everytimezone.com/s/92d31472) | week 11 | | +| Docs deadline — PRs ready for review | Docs Lead | Tuesday 25th July 2023 | Week 11 | | +| 1.28.0-rc.0 released | Branch Manager | Tuesday 25th July 2023 | week 11 | | +| release-1.28 branch created | Branch Manager | Tuesday 25th July 2023 | week 11 | | +| release-1.28 jobs created | Branch Manager | Tuesday 25th July 2023 | week 11 | | +| Major Themes deadline | Comms | Tuesday 25th July 2023 | week 11 | | +| Start final draft of Release Notes | Release Notes Lead | Tuesday 25th July 2023 | week 11 | | +| Release blog ready to review | Comms / Docs | [01:00 UTC Wednesday 26nd July 2023 / 17:00 PDT Tuesday 25th July 2023](https://everytimezone.com/s/92d31472) | week 11 | | +| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 31st July 2023 | week 12 | | +| Major Themes complete | Release Notes Lead | Tuesday 8th August 2023 | week 13 | | +| Docs complete — All PRs reviewed and ready to merge | Docs Lead | Tuesday 8th August 2023 | week 13 | | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Tuesday 8th August 2023 | week 13 | | +| 1.28.0-rc.1 released | Branch Manager | Thursday 10th August 2023 | week 13 | | +| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Release Notes Lead | Tuesday 15th August 2023 | week 14 | | +| **v1.28.0 released** | Branch Manager | Tuesday 15th August 2023 | week 14 | | +| Release blog published | Comms | Tuesday 15th August 2023 | week 14 | | +| **[Thaw]** | Branch Manager | Tuesday 15th August 2023 | week 14 | | | week 15 | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[k8s128-calendar]: https://bit.ly/k8s-release-cal +[Internal Contact Info]: https://bit.ly/k8s128-contacts +[Retrospective Document]: https://bit.ly/k8s128-retro + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Thaw]: ../release_phases.md#thaw +[Test Freeze]: ../release_phases.md#test-freeze + +[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.28-blocking]: https://testgrid.k8s.io/sig-release-1.28-blocking#Summary + +[exception requests]: ../EXCEPTIONS.md +[release phases document]: ../release_phases.md diff --git a/releases/release-1.28/exceptions.yaml b/releases/release-1.28/exceptions.yaml index 979110c3398..c86e78f1161 100644 --- a/releases/release-1.28/exceptions.yaml +++ b/releases/release-1.28/exceptions.yaml @@ -1,98 +1,98 @@ -# Exception requests in 1.28 -# Google Group: https://groups.google.com/g/kubernetes-sig-release -# Release Team Lead: Grace Nguyen ([@gracenng](https://github.com/gracenng) -# Release Team Shadows : Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos)) -# / Heba Elayoty ([@helayoty](https://github.com/helayoty)) -# / Mark Rossetti ([@marosset](https://github.com/marosset)) -# / Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell)) - -# Enhancements Freeze Exceptions requested in 1.28 -enhancementFreeze: - -- name: "Add CDI devices to device plugin API" - issue: 4009 - date_requested: 2023-06-15 - date_reviewed: 2023-06-15 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/c9VcEVCfqVw" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/4011" - status: "approved" - -- name: "Extend podresources API to report allocatable resources" - issue: 2403 - date_requested: 2023-06-16 - date_reviewed: 2023-06-16 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/4HnMj_RNQBs" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/4045" - status: "approved" - -- name: "CRI image pulling with progress notification" - issue: 3542 - date_requested: 2023-06-20 - date_reviewed: 2023-06-20 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/cbnkrvfTZ1s" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/3547" - status: "denied" - -- name: "Recursive Read-only (RRO) mounts" - issue: 3857 - date_requested: 2023-06-20 - date_reviewed: 2023-06-20 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/hMtxyv_D0TE" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/3858" - status: "denied" - -# Code Freeze Exceptions requested in 1.28 -codeFreeze: - -- name: "KMS v2" - issue: 3299 - date_requested: 2023-07-18 - date_reviewed: 2023-07-19 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/N-mDGmax5Ao" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/118828" - status: "approved" - -- name: "PodReplacementPolicy for Jobs" - issue: 3939 - date_requested: 2023-07-19 - date_reviewed: 2023-07-19 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/8m9_MloKhoI" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/119301" - - "https://github.com/kubernetes/kubernetes/pull/118772" - - "https://github.com/kubernetes/kubernetes/pull/117015" - status: "approved" - -- name: "CEL for Admission Control" - issue: 3488 - date_requested: 2023-07-19 - date_reviewed: 2023-07-19 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/4yBLh6u8daw" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/119215" - - "https://github.com/kubernetes/kubernetes/pull/119109" - - "https://github.com/kubernetes/kubernetes/pull/118644" - status: "approved" - -- name: "Dynamic Cardinality Enforcement" - issue: 2305 - date_requested: 2023-07-19 - date_reviewed: 2023-07-19 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/E8X-L2ZPRQI" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/118299" - status: "approved" - -- name: "PersistentVolume last phase transition time" - issue: 3762 - date_requested: 2023-07-20 - date_reviewed: 2023-07-20 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/gw1a4brRgQw" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/116469" - status: "approved" +# Exception requests in 1.28 +# Google Group: https://groups.google.com/g/kubernetes-sig-release +# Release Team Lead: Grace Nguyen ([@gracenng](https://github.com/gracenng) +# Release Team Shadows : Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos)) +# / Heba Elayoty ([@helayoty](https://github.com/helayoty)) +# / Mark Rossetti ([@marosset](https://github.com/marosset)) +# / Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell)) + +# Enhancements Freeze Exceptions requested in 1.28 +enhancementFreeze: + +- name: "Add CDI devices to device plugin API" + issue: 4009 + date_requested: 2023-06-15 + date_reviewed: 2023-06-15 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/c9VcEVCfqVw" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/4011" + status: "approved" + +- name: "Extend podresources API to report allocatable resources" + issue: 2403 + date_requested: 2023-06-16 + date_reviewed: 2023-06-16 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/4HnMj_RNQBs" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/4045" + status: "approved" + +- name: "CRI image pulling with progress notification" + issue: 3542 + date_requested: 2023-06-20 + date_reviewed: 2023-06-20 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/cbnkrvfTZ1s" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/3547" + status: "denied" + +- name: "Recursive Read-only (RRO) mounts" + issue: 3857 + date_requested: 2023-06-20 + date_reviewed: 2023-06-20 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/hMtxyv_D0TE" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/3858" + status: "denied" + +# Code Freeze Exceptions requested in 1.28 +codeFreeze: + +- name: "KMS v2" + issue: 3299 + date_requested: 2023-07-18 + date_reviewed: 2023-07-19 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/N-mDGmax5Ao" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/118828" + status: "approved" + +- name: "PodReplacementPolicy for Jobs" + issue: 3939 + date_requested: 2023-07-19 + date_reviewed: 2023-07-19 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/8m9_MloKhoI" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/119301" + - "https://github.com/kubernetes/kubernetes/pull/118772" + - "https://github.com/kubernetes/kubernetes/pull/117015" + status: "approved" + +- name: "CEL for Admission Control" + issue: 3488 + date_requested: 2023-07-19 + date_reviewed: 2023-07-19 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/4yBLh6u8daw" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/119215" + - "https://github.com/kubernetes/kubernetes/pull/119109" + - "https://github.com/kubernetes/kubernetes/pull/118644" + status: "approved" + +- name: "Dynamic Cardinality Enforcement" + issue: 2305 + date_requested: 2023-07-19 + date_reviewed: 2023-07-19 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/E8X-L2ZPRQI" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/118299" + status: "approved" + +- name: "PersistentVolume last phase transition time" + issue: 3762 + date_requested: 2023-07-20 + date_reviewed: 2023-07-20 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/gw1a4brRgQw" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/116469" + status: "approved" diff --git a/releases/release-1.28/release-notes/maps/pr-113209-map.yaml b/releases/release-1.28/release-notes/maps/pr-113209-map.yaml index 79bd80a3a93..496b07f0ccd 100644 --- a/releases/release-1.28/release-notes/maps/pr-113209-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-113209-map.yaml @@ -1,4 +1,4 @@ -pr: 113209 -releasenote: - text: |- - `kubelet` will ensure /etc/hosts file is mode 0644 regardless of umask. +pr: 113209 +releasenote: + text: |- + `kubelet` will ensure /etc/hosts file is mode 0644 regardless of umask. diff --git a/releases/release-1.28/release-notes/maps/pr-113245-map.yaml b/releases/release-1.28/release-notes/maps/pr-113245-map.yaml index 543e2ae8566..99590a0eed9 100644 --- a/releases/release-1.28/release-notes/maps/pr-113245-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-113245-map.yaml @@ -1,4 +1,4 @@ -pr: 113245 -releasenote: - text: Added warning for dup ports update/patching in pod's container ports and service - ports. +pr: 113245 +releasenote: + text: Added warning for dup ports update/patching in pod's container ports and service + ports. diff --git a/releases/release-1.28/release-notes/maps/pr-113362-map.yaml b/releases/release-1.28/release-notes/maps/pr-113362-map.yaml index edda88f4c97..ac167aecbf0 100644 --- a/releases/release-1.28/release-notes/maps/pr-113362-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-113362-map.yaml @@ -1,5 +1,5 @@ -pr: 113362 -releasenote: - text: |- - `client-go`: Improved memory use of reflector caches when watching large numbers - of objects which do not change frequently. +pr: 113362 +releasenote: + text: |- + `client-go`: Improved memory use of reflector caches when watching large numbers + of objects which do not change frequently. diff --git a/releases/release-1.28/release-notes/maps/pr-113969-map.yaml b/releases/release-1.28/release-notes/maps/pr-113969-map.yaml index b2f944674cc..b8a848e17d1 100644 --- a/releases/release-1.28/release-notes/maps/pr-113969-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-113969-map.yaml @@ -1,3 +1,3 @@ -pr: 113969 -releasenote: - text: NONE +pr: 113969 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-114307-map.yaml b/releases/release-1.28/release-notes/maps/pr-114307-map.yaml index 5ffd1e43348..e597a8c440f 100644 --- a/releases/release-1.28/release-notes/maps/pr-114307-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-114307-map.yaml @@ -1,3 +1,3 @@ -pr: 114307 -releasenote: - text: Graduated the `ProbeTerminationGracePeriod` feature gate to GA. +pr: 114307 +releasenote: + text: Graduated the `ProbeTerminationGracePeriod` feature gate to GA. diff --git a/releases/release-1.28/release-notes/maps/pr-114606-map.yaml b/releases/release-1.28/release-notes/maps/pr-114606-map.yaml index 144a5c86e35..cce66485c5d 100644 --- a/releases/release-1.28/release-notes/maps/pr-114606-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-114606-map.yaml @@ -1,4 +1,4 @@ -pr: 114606 -releasenote: - text: Fixed a bug that unintentionally overrides custom Accept headers in http (live-/readiness)-probes - if the header is in lowercase. +pr: 114606 +releasenote: + text: Fixed a bug that unintentionally overrides custom Accept headers in http (live-/readiness)-probes + if the header is in lowercase. diff --git a/releases/release-1.28/release-notes/maps/pr-114746-map.yaml b/releases/release-1.28/release-notes/maps/pr-114746-map.yaml index 50c9985e767..43e3db64780 100644 --- a/releases/release-1.28/release-notes/maps/pr-114746-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-114746-map.yaml @@ -1,3 +1,3 @@ -pr: 114746 -releasenote: - text: NONE +pr: 114746 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-114875-map.yaml b/releases/release-1.28/release-notes/maps/pr-114875-map.yaml index cf0e48cb4f6..de9237c9012 100644 --- a/releases/release-1.28/release-notes/maps/pr-114875-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-114875-map.yaml @@ -1,3 +1,3 @@ -pr: 114875 -releasenote: - text: NONE +pr: 114875 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-114909-map.yaml b/releases/release-1.28/release-notes/maps/pr-114909-map.yaml index 3acee42f2c2..86f951a1e39 100644 --- a/releases/release-1.28/release-notes/maps/pr-114909-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-114909-map.yaml @@ -1,4 +1,4 @@ -pr: 114909 -releasenote: - text: |- - `kubectl expose` supports the creation of different protocol services on the same port. +pr: 114909 +releasenote: + text: |- + `kubectl expose` supports the creation of different protocol services on the same port. diff --git a/releases/release-1.28/release-notes/maps/pr-115133-map.yaml b/releases/release-1.28/release-notes/maps/pr-115133-map.yaml index 84c39a08071..95ac872f5d2 100644 --- a/releases/release-1.28/release-notes/maps/pr-115133-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-115133-map.yaml @@ -1,4 +1,4 @@ -pr: 115133 -releasenote: - text: Enabled the `node-local` kubelet podresources API endpoint on windows, alongside - unix. +pr: 115133 +releasenote: + text: Enabled the `node-local` kubelet podresources API endpoint on windows, alongside + unix. diff --git a/releases/release-1.28/release-notes/maps/pr-115357-map.yaml b/releases/release-1.28/release-notes/maps/pr-115357-map.yaml index 787f53832bc..e746a291653 100644 --- a/releases/release-1.28/release-notes/maps/pr-115357-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-115357-map.yaml @@ -1,4 +1,4 @@ -pr: 115357 -releasenote: - text: Allow to monitor client-go DNS resolver latencies via `rest_client_dns_resolution_duration_seconds` - Prometheus metric. +pr: 115357 +releasenote: + text: Allow to monitor client-go DNS resolver latencies via `rest_client_dns_resolution_duration_seconds` + Prometheus metric. diff --git a/releases/release-1.28/release-notes/maps/pr-115554-map.yaml b/releases/release-1.28/release-notes/maps/pr-115554-map.yaml index d5c87acc64f..da09a770fab 100644 --- a/releases/release-1.28/release-notes/maps/pr-115554-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-115554-map.yaml @@ -1,9 +1,9 @@ -pr: 115554 -releasenote: - text: |- - `kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate - is now available as alpha (off by default). When enabled, the `legacy-service-account-token-cleaner` - controller loop removes service account token secrets that have not been used - in the time specified by `--legacy-service-account-token-clean-up-period` (defaulting - to one year), **and are** referenced from the `.secrets` list of a ServiceAccount - object, **and are not** referenced from pods. +pr: 115554 +releasenote: + text: |- + `kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate + is now available as alpha (off by default). When enabled, the `legacy-service-account-token-cleaner` + controller loop removes service account token secrets that have not been used + in the time specified by `--legacy-service-account-token-clean-up-period` (defaulting + to one year), **and are** referenced from the `.secrets` list of a ServiceAccount + object, **and are not** referenced from pods. diff --git a/releases/release-1.28/release-notes/maps/pr-115694-map.yaml b/releases/release-1.28/release-notes/maps/pr-115694-map.yaml index a015fd4bb67..facb397ef83 100644 --- a/releases/release-1.28/release-notes/maps/pr-115694-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-115694-map.yaml @@ -1,3 +1,3 @@ -pr: 115694 -releasenote: - text: Fixed bug where explain was not properly respecting jsonpaths. +pr: 115694 +releasenote: + text: Fixed bug where explain was not properly respecting jsonpaths. diff --git a/releases/release-1.28/release-notes/maps/pr-115813-map.yaml b/releases/release-1.28/release-notes/maps/pr-115813-map.yaml index f83d105f81a..cb4536f3f76 100644 --- a/releases/release-1.28/release-notes/maps/pr-115813-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-115813-map.yaml @@ -1,7 +1,7 @@ -pr: 115813 -releasenote: - text: |- - `kube-controller-manager` and `cloud-controller-manager` have changed the - name of controllers that can be turned on/off that are passed to the `--controllers` - flag (e.g., `pod-garbage-collector-controller`). The old names (eg `podgc`) are - also accepted and aliased to the new names. +pr: 115813 +releasenote: + text: |- + `kube-controller-manager` and `cloud-controller-manager` have changed the + name of controllers that can be turned on/off that are passed to the `--controllers` + flag (e.g., `pod-garbage-collector-controller`). The old names (eg `podgc`) are + also accepted and aliased to the new names. diff --git a/releases/release-1.28/release-notes/maps/pr-115835-map.yaml b/releases/release-1.28/release-notes/maps/pr-115835-map.yaml index 2df738067f9..f8a66ecc5d9 100644 --- a/releases/release-1.28/release-notes/maps/pr-115835-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-115835-map.yaml @@ -1,3 +1,3 @@ -pr: 115835 -releasenote: - text: Fixed the `preStop` hook. This will now block the pod termination grace period. +pr: 115835 +releasenote: + text: Fixed the `preStop` hook. This will now block the pod termination grace period. diff --git a/releases/release-1.28/release-notes/maps/pr-115843-map.yaml b/releases/release-1.28/release-notes/maps/pr-115843-map.yaml index ac8168f5993..2150941807a 100644 --- a/releases/release-1.28/release-notes/maps/pr-115843-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-115843-map.yaml @@ -1,3 +1,3 @@ -pr: 115843 -releasenote: - text: Removed withdrawn feature `NetworkPolicyStatus`. +pr: 115843 +releasenote: + text: Removed withdrawn feature `NetworkPolicyStatus`. diff --git a/releases/release-1.28/release-notes/maps/pr-116104-map.yaml b/releases/release-1.28/release-notes/maps/pr-116104-map.yaml index dd9b9c11fd6..23189e111ce 100644 --- a/releases/release-1.28/release-notes/maps/pr-116104-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116104-map.yaml @@ -1,3 +1,3 @@ -pr: 116104 -releasenote: - text: NONE +pr: 116104 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-116208-map.yaml b/releases/release-1.28/release-notes/maps/pr-116208-map.yaml index ffdb9061a3c..32e4e500e42 100644 --- a/releases/release-1.28/release-notes/maps/pr-116208-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116208-map.yaml @@ -1,4 +1,4 @@ -pr: 116208 -releasenote: - text: The short names `fs` and `plc` were introduced for the resources `flowschemas` - and `prioritylevelconfigurations`, respectively. +pr: 116208 +releasenote: + text: The short names `fs` and `plc` were introduced for the resources `flowschemas` + and `prioritylevelconfigurations`, respectively. diff --git a/releases/release-1.28/release-notes/maps/pr-116327-map.yaml b/releases/release-1.28/release-notes/maps/pr-116327-map.yaml index 3149a1edcc4..c7bec2df958 100644 --- a/releases/release-1.28/release-notes/maps/pr-116327-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116327-map.yaml @@ -1,4 +1,4 @@ -pr: 116327 -releasenote: - text: |- - `kube-apiserver`: Improved memory use when performing GetList on the cache. +pr: 116327 +releasenote: + text: |- + `kube-apiserver`: Improved memory use when performing GetList on the cache. diff --git a/releases/release-1.28/release-notes/maps/pr-116374-map.yaml b/releases/release-1.28/release-notes/maps/pr-116374-map.yaml index 100337065e3..0732c035c7a 100644 --- a/releases/release-1.28/release-notes/maps/pr-116374-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116374-map.yaml @@ -1,3 +1,3 @@ -pr: 116374 -releasenote: - text: NONE +pr: 116374 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-116408-map.yaml b/releases/release-1.28/release-notes/maps/pr-116408-map.yaml index 5782fdaad88..7d04c10dbb6 100644 --- a/releases/release-1.28/release-notes/maps/pr-116408-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116408-map.yaml @@ -1,3 +1,3 @@ -pr: 116408 -releasenote: - text: Kubelet will now skip pod resource checks when the request is zero. +pr: 116408 +releasenote: + text: Kubelet will now skip pod resource checks when the request is zero. diff --git a/releases/release-1.28/release-notes/maps/pr-116469-map.yaml b/releases/release-1.28/release-notes/maps/pr-116469-map.yaml index bf7e6d58b2f..83f35fa7f47 100644 --- a/releases/release-1.28/release-notes/maps/pr-116469-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116469-map.yaml @@ -1,4 +1,4 @@ -pr: 116469 -releasenote: - text: PersistentVolumes have a new `LastPhaseTransitionTime` field which holds a - timestamp of when the volume last transitioned its phase. +pr: 116469 +releasenote: + text: PersistentVolumes have a new `LastPhaseTransitionTime` field which holds a + timestamp of when the volume last transitioned its phase. diff --git a/releases/release-1.28/release-notes/maps/pr-116470-map.yaml b/releases/release-1.28/release-notes/maps/pr-116470-map.yaml index 3923b105402..3748ddc6fc9 100644 --- a/releases/release-1.28/release-notes/maps/pr-116470-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116470-map.yaml @@ -1,3 +1,3 @@ -pr: 116470 -releasenote: - text: '[Kube-proxy]: implemented connection draining for terminating nodes.' +pr: 116470 +releasenote: + text: '[Kube-proxy]: implemented connection draining for terminating nodes.' diff --git a/releases/release-1.28/release-notes/maps/pr-116530-map.yaml b/releases/release-1.28/release-notes/maps/pr-116530-map.yaml index c15b1c82a31..b0fe27941b9 100644 --- a/releases/release-1.28/release-notes/maps/pr-116530-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116530-map.yaml @@ -1,3 +1,3 @@ -pr: 116530 -releasenote: - text: 'kubelet: un-deprecate `--provider-id` flag' +pr: 116530 +releasenote: + text: 'kubelet: un-deprecate `--provider-id` flag' diff --git a/releases/release-1.28/release-notes/maps/pr-116685-map.yaml b/releases/release-1.28/release-notes/maps/pr-116685-map.yaml index 22ccf31552a..562476d3f9c 100644 --- a/releases/release-1.28/release-notes/maps/pr-116685-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116685-map.yaml @@ -1,5 +1,5 @@ -pr: 116685 -releasenote: - text: |- - `kube-apiserver` will now always remove its endpoint from Kubernetes service during - graceful shutdown (even if it's the only/last one). +pr: 116685 +releasenote: + text: |- + `kube-apiserver` will now always remove its endpoint from Kubernetes service during + graceful shutdown (even if it's the only/last one). diff --git a/releases/release-1.28/release-notes/maps/pr-116720-map.yaml b/releases/release-1.28/release-notes/maps/pr-116720-map.yaml index a105d8596b0..99f4aabd787 100644 --- a/releases/release-1.28/release-notes/maps/pr-116720-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116720-map.yaml @@ -1,5 +1,5 @@ -pr: 116720 -releasenote: - text: |- - Changed `kubectl version` default output to be identical to what `kubectl version --short` printed, - and removed `--short` flag entirely. +pr: 116720 +releasenote: + text: |- + Changed `kubectl version` default output to be identical to what `kubectl version --short` printed, + and removed `--short` flag entirely. diff --git a/releases/release-1.28/release-notes/maps/pr-116729-map.yaml b/releases/release-1.28/release-notes/maps/pr-116729-map.yaml index bdc04f4d693..f6ddd6b1e25 100644 --- a/releases/release-1.28/release-notes/maps/pr-116729-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116729-map.yaml @@ -1,4 +1,4 @@ -pr: 116729 -releasenote: - text: Scheduler now waits for handlers to finish syncing before the scheduling cycles - start. +pr: 116729 +releasenote: + text: Scheduler now waits for handlers to finish syncing before the scheduling cycles + start. diff --git a/releases/release-1.28/release-notes/maps/pr-116748-map.yaml b/releases/release-1.28/release-notes/maps/pr-116748-map.yaml index d87e6b1038d..ee14ca33902 100644 --- a/releases/release-1.28/release-notes/maps/pr-116748-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116748-map.yaml @@ -1,3 +1,3 @@ -pr: 116748 -releasenote: - text: Migrated the noderesources scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). +pr: 116748 +releasenote: + text: Migrated the noderesources scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). diff --git a/releases/release-1.28/release-notes/maps/pr-116749-map.yaml b/releases/release-1.28/release-notes/maps/pr-116749-map.yaml index b2344f1de05..065aa084a8a 100644 --- a/releases/release-1.28/release-notes/maps/pr-116749-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116749-map.yaml @@ -1,4 +1,4 @@ -pr: 116749 -releasenote: - text: Added additional validation for endpoint IP configuration while iterating - through queried endpoint list. +pr: 116749 +releasenote: + text: Added additional validation for endpoint IP configuration while iterating + through queried endpoint list. diff --git a/releases/release-1.28/release-notes/maps/pr-116755-map.yaml b/releases/release-1.28/release-notes/maps/pr-116755-map.yaml index 61414a7a771..88387a58e87 100644 --- a/releases/release-1.28/release-notes/maps/pr-116755-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116755-map.yaml @@ -1,3 +1,3 @@ -pr: 116755 -releasenote: - text: Migrated `pkg/controller/endpoint` to contextual logging. +pr: 116755 +releasenote: + text: Migrated `pkg/controller/endpoint` to contextual logging. diff --git a/releases/release-1.28/release-notes/maps/pr-116835-map.yaml b/releases/release-1.28/release-notes/maps/pr-116835-map.yaml index 6b46dfb407d..0abc5677d12 100644 --- a/releases/release-1.28/release-notes/maps/pr-116835-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116835-map.yaml @@ -1,3 +1,3 @@ -pr: 116835 -releasenote: - text: Migrated `pkg/scheduler/framework/preemption` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). +pr: 116835 +releasenote: + text: Migrated `pkg/scheduler/framework/preemption` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). diff --git a/releases/release-1.28/release-notes/maps/pr-116849-map.yaml b/releases/release-1.28/release-notes/maps/pr-116849-map.yaml index 5990d8c611f..9a9799cad4d 100644 --- a/releases/release-1.28/release-notes/maps/pr-116849-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116849-map.yaml @@ -1,3 +1,3 @@ -pr: 116849 -releasenote: - text: Updated the scheduler interface and cache methods to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). +pr: 116849 +releasenote: + text: Updated the scheduler interface and cache methods to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). diff --git a/releases/release-1.28/release-notes/maps/pr-116865-map.yaml b/releases/release-1.28/release-notes/maps/pr-116865-map.yaml index 43fcc8ab255..57829ff8f3a 100644 --- a/releases/release-1.28/release-notes/maps/pr-116865-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116865-map.yaml @@ -1,3 +1,3 @@ -pr: 116865 -releasenote: - text: 'Fixed `creationTimestamp: null` causing unnecessary writes to etcd.' +pr: 116865 +releasenote: + text: 'Fixed `creationTimestamp: null` causing unnecessary writes to etcd.' diff --git a/releases/release-1.28/release-notes/maps/pr-116879-map.yaml b/releases/release-1.28/release-notes/maps/pr-116879-map.yaml index 9352ad96759..cbe86df44b4 100644 --- a/releases/release-1.28/release-notes/maps/pr-116879-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116879-map.yaml @@ -1,6 +1,6 @@ -pr: 116879 -releasenote: - text: '[Dual-stack] Fixed `generateAPIPodStatus()` of kubelet handling Secondary - IP. hostIPs order may not be consistent. If secondary IP is before primary one, - current logic adds primary IP twice into `PodIPs`, which leads to error: "may - specify no more than one IP for each IP family".' +pr: 116879 +releasenote: + text: '[Dual-stack] Fixed `generateAPIPodStatus()` of kubelet handling Secondary + IP. hostIPs order may not be consistent. If secondary IP is before primary one, + current logic adds primary IP twice into `PodIPs`, which leads to error: "may + specify no more than one IP for each IP family".' diff --git a/releases/release-1.28/release-notes/maps/pr-116901-map.yaml b/releases/release-1.28/release-notes/maps/pr-116901-map.yaml index 77e3511bf31..9987658e950 100644 --- a/releases/release-1.28/release-notes/maps/pr-116901-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116901-map.yaml @@ -1,3 +1,3 @@ -pr: 116901 -releasenote: - text: Removed GA'ed feature gate `KubeletCredentialProviders`. +pr: 116901 +releasenote: + text: Removed GA'ed feature gate `KubeletCredentialProviders`. diff --git a/releases/release-1.28/release-notes/maps/pr-116968-map.yaml b/releases/release-1.28/release-notes/maps/pr-116968-map.yaml index c046717656b..252e8afd1a0 100644 --- a/releases/release-1.28/release-notes/maps/pr-116968-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-116968-map.yaml @@ -1,4 +1,4 @@ -pr: 116968 -releasenote: - text: Allows users to specify Kubelet `PodAndContainerStatsFromCRI` feature gate - that will get Windows pod and container stats only from CRI. +pr: 116968 +releasenote: + text: Allows users to specify Kubelet `PodAndContainerStatsFromCRI` feature gate + that will get Windows pod and container stats only from CRI. diff --git a/releases/release-1.28/release-notes/maps/pr-117002-map.yaml b/releases/release-1.28/release-notes/maps/pr-117002-map.yaml index 3355b5e5833..478dd016723 100644 --- a/releases/release-1.28/release-notes/maps/pr-117002-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117002-map.yaml @@ -1,5 +1,5 @@ -pr: 117002 -releasenote: - text: Fixed issue where `kubectl-convert` would fail when encountering resources - that could not be converted to the specified api version. New behavior is to warn - the user of the failed conversions and continue to convert the remaining resources. +pr: 117002 +releasenote: + text: Fixed issue where `kubectl-convert` would fail when encountering resources + that could not be converted to the specified api version. New behavior is to warn + the user of the failed conversions and continue to convert the remaining resources. diff --git a/releases/release-1.28/release-notes/maps/pr-117015-map.yaml b/releases/release-1.28/release-notes/maps/pr-117015-map.yaml index ad4c9390ef0..d0d1fa2f84b 100644 --- a/releases/release-1.28/release-notes/maps/pr-117015-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117015-map.yaml @@ -1,4 +1,4 @@ -pr: 117015 -releasenote: - text: Added the implementation for `PodRecreationPolicy` to wait for the creation - of pods once the existing ones are fully terminated. +pr: 117015 +releasenote: + text: Added the implementation for `PodRecreationPolicy` to wait for the creation + of pods once the existing ones are fully terminated. diff --git a/releases/release-1.28/release-notes/maps/pr-117020-map.yaml b/releases/release-1.28/release-notes/maps/pr-117020-map.yaml index 7f2d4486045..0f7068780c1 100644 --- a/releases/release-1.28/release-notes/maps/pr-117020-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117020-map.yaml @@ -1,4 +1,4 @@ -pr: 117020 -releasenote: - text: Added error handling for seccomp localhost configurations that do not properly - set a `localhostProfile`. +pr: 117020 +releasenote: + text: Added error handling for seccomp localhost configurations that do not properly + set a `localhostProfile`. diff --git a/releases/release-1.28/release-notes/maps/pr-117034-map.yaml b/releases/release-1.28/release-notes/maps/pr-117034-map.yaml index ebc4884cec6..8a4f4d4b16c 100644 --- a/releases/release-1.28/release-notes/maps/pr-117034-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117034-map.yaml @@ -1,5 +1,5 @@ -pr: 117034 -releasenote: - text: |- - `kubectl events --for` will also support fully qualified names such as replicasets.apps, - etc. +pr: 117034 +releasenote: + text: |- + `kubectl events --for` will also support fully qualified names such as replicasets.apps, + etc. diff --git a/releases/release-1.28/release-notes/maps/pr-117055-map.yaml b/releases/release-1.28/release-notes/maps/pr-117055-map.yaml index 825bfcbc856..06ac6d8d1f3 100644 --- a/releases/release-1.28/release-notes/maps/pr-117055-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117055-map.yaml @@ -1,4 +1,4 @@ -pr: 117055 -releasenote: - text: The feature gates `CSIMigrationGCE` is graduated to GA and were unconditionally - enabled have been removed in `v1.25`, and the entire `gcepd` package has been removed. +pr: 117055 +releasenote: + text: The feature gates `CSIMigrationGCE` is graduated to GA and were unconditionally + enabled have been removed in `v1.25`, and the entire `gcepd` package has been removed. diff --git a/releases/release-1.28/release-notes/maps/pr-117079-map.yaml b/releases/release-1.28/release-notes/maps/pr-117079-map.yaml index d6e41138eba..b3ba3492c86 100644 --- a/releases/release-1.28/release-notes/maps/pr-117079-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117079-map.yaml @@ -1,4 +1,4 @@ -pr: 117079 -releasenote: - text: |- - `kubelet`: print sorted volumes message in events. +pr: 117079 +releasenote: + text: |- + `kubelet`: print sorted volumes message in events. diff --git a/releases/release-1.28/release-notes/maps/pr-117102-map.yaml b/releases/release-1.28/release-notes/maps/pr-117102-map.yaml index 3d2b8e172dd..fab7b96ce43 100644 --- a/releases/release-1.28/release-notes/maps/pr-117102-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117102-map.yaml @@ -1,3 +1,3 @@ -pr: 117102 -releasenote: - text: Deprecated `genericclioptions.IOStreams` and used `genericiooptions.IOStreams`. +pr: 117102 +releasenote: + text: Deprecated `genericclioptions.IOStreams` and used `genericiooptions.IOStreams`. diff --git a/releases/release-1.28/release-notes/maps/pr-117108-map.yaml b/releases/release-1.28/release-notes/maps/pr-117108-map.yaml index bf97d5b71c2..c6da45b99d5 100644 --- a/releases/release-1.28/release-notes/maps/pr-117108-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117108-map.yaml @@ -1,6 +1,6 @@ -pr: 117108 -releasenote: - text: |- - `component-base/logs` is now stricter about not applying configurations multiple - times and will return an error when that is attempted. Can be overridden by binaries - which need to do that. +pr: 117108 +releasenote: + text: |- + `component-base/logs` is now stricter about not applying configurations multiple + times and will return an error when that is attempted. Can be overridden by binaries + which need to do that. diff --git a/releases/release-1.28/release-notes/maps/pr-117120-map.yaml b/releases/release-1.28/release-notes/maps/pr-117120-map.yaml index 50cad723ff2..cd73b1dd6f4 100644 --- a/releases/release-1.28/release-notes/maps/pr-117120-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117120-map.yaml @@ -1,3 +1,3 @@ -pr: 117120 -releasenote: - text: Bumped metrics-server to `v0.6.3`. +pr: 117120 +releasenote: + text: Bumped metrics-server to `v0.6.3`. diff --git a/releases/release-1.28/release-notes/maps/pr-117138-map.yaml b/releases/release-1.28/release-notes/maps/pr-117138-map.yaml index 3b14e44247d..69eeacc566e 100644 --- a/releases/release-1.28/release-notes/maps/pr-117138-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117138-map.yaml @@ -1,4 +1,4 @@ -pr: 117138 -releasenote: - text: Added '--concurrent-job-syncs' flag for `kube-controller-manager` to set the - number of job controller workers. +pr: 117138 +releasenote: + text: Added '--concurrent-job-syncs' flag for `kube-controller-manager` to set the + number of job controller workers. diff --git a/releases/release-1.28/release-notes/maps/pr-117211-map.yaml b/releases/release-1.28/release-notes/maps/pr-117211-map.yaml index b0ee918d1c2..5ce550b7be2 100644 --- a/releases/release-1.28/release-notes/maps/pr-117211-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117211-map.yaml @@ -1,5 +1,5 @@ -pr: 117211 -releasenote: - text: |- - `kube-apiserver` added two new metrics `authorization_attempts_total` and `authorization_duration_seconds` - that allow users to monitor requests to authorization webhooks, split by result. +pr: 117211 +releasenote: + text: |- + `kube-apiserver` added two new metrics `authorization_attempts_total` and `authorization_duration_seconds` + that allow users to monitor requests to authorization webhooks, split by result. diff --git a/releases/release-1.28/release-notes/maps/pr-117214-map.yaml b/releases/release-1.28/release-notes/maps/pr-117214-map.yaml index e1fc8fdd0a2..3c20501f228 100644 --- a/releases/release-1.28/release-notes/maps/pr-117214-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117214-map.yaml @@ -1,4 +1,4 @@ -pr: 117214 -releasenote: - text: A `v2-level` info log will be added, which will output the details of the - pod being preempted, including victim and preemptor +pr: 117214 +releasenote: + text: A `v2-level` info log will be added, which will output the details of the + pod being preempted, including victim and preemptor diff --git a/releases/release-1.28/release-notes/maps/pr-117216-map.yaml b/releases/release-1.28/release-notes/maps/pr-117216-map.yaml index 208c55cef9e..9ff0608564b 100644 --- a/releases/release-1.28/release-notes/maps/pr-117216-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117216-map.yaml @@ -1,3 +1,3 @@ -pr: 117216 -releasenote: - text: Allowed Azure Disk e2es to use newer topology labels if available from nodes. +pr: 117216 +releasenote: + text: Allowed Azure Disk e2es to use newer topology labels if available from nodes. diff --git a/releases/release-1.28/release-notes/maps/pr-117237-map.yaml b/releases/release-1.28/release-notes/maps/pr-117237-map.yaml index 320af4856e9..ddb7ea22e64 100644 --- a/releases/release-1.28/release-notes/maps/pr-117237-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117237-map.yaml @@ -1,5 +1,5 @@ -pr: 117237 -releasenote: - text: |- - Removed GA'ed feature gates: `MixedProtocolLBService`, `ServiceInternalTrafficPolicy`, - `ServiceIPStaticSubrange`, and `EndpointSliceTerminatingCondition`. +pr: 117237 +releasenote: + text: |- + Removed GA'ed feature gates: `MixedProtocolLBService`, `ServiceInternalTrafficPolicy`, + `ServiceIPStaticSubrange`, and `EndpointSliceTerminatingCondition`. diff --git a/releases/release-1.28/release-notes/maps/pr-117238-map.yaml b/releases/release-1.28/release-notes/maps/pr-117238-map.yaml index 54eb053c345..e275463793f 100644 --- a/releases/release-1.28/release-notes/maps/pr-117238-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117238-map.yaml @@ -1,4 +1,4 @@ -pr: 117238 -releasenote: - text: Structured logging of `NamespacedName` was inconsistent with `klog.KObj`. - Now both will use lower case field names and namespace is optional. +pr: 117238 +releasenote: + text: Structured logging of `NamespacedName` was inconsistent with `klog.KObj`. + Now both will use lower case field names and namespace is optional. diff --git a/releases/release-1.28/release-notes/maps/pr-117243-map.yaml b/releases/release-1.28/release-notes/maps/pr-117243-map.yaml index b38e6308db8..633375cd81c 100644 --- a/releases/release-1.28/release-notes/maps/pr-117243-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117243-map.yaml @@ -1,3 +1,3 @@ -pr: 117243 -releasenote: - text: Fixed `vSphere` cloud provider not to skip detach volumes from nodes at `kube-controller-startup`. +pr: 117243 +releasenote: + text: Fixed `vSphere` cloud provider not to skip detach volumes from nodes at `kube-controller-startup`. diff --git a/releases/release-1.28/release-notes/maps/pr-117245-map.yaml b/releases/release-1.28/release-notes/maps/pr-117245-map.yaml index 4a1bf41c4f6..d48c5b26bd9 100644 --- a/releases/release-1.28/release-notes/maps/pr-117245-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117245-map.yaml @@ -1,4 +1,4 @@ -pr: 117245 -releasenote: - text: Fixed Topology Aware Hints not working when the `topology.kubernetes.io/zone` - label is added after Node creation. +pr: 117245 +releasenote: + text: Fixed Topology Aware Hints not working when the `topology.kubernetes.io/zone` + label is added after Node creation. diff --git a/releases/release-1.28/release-notes/maps/pr-117275-map.yaml b/releases/release-1.28/release-notes/maps/pr-117275-map.yaml index 830a4f25450..6f97cca1ce1 100644 --- a/releases/release-1.28/release-notes/maps/pr-117275-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117275-map.yaml @@ -1,3 +1,3 @@ -pr: 117275 -releasenote: - text: NONE +pr: 117275 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-117295-map.yaml b/releases/release-1.28/release-notes/maps/pr-117295-map.yaml index 8cdfd53596f..e1f3cb6d558 100644 --- a/releases/release-1.28/release-notes/maps/pr-117295-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117295-map.yaml @@ -1,13 +1,13 @@ -pr: 117295 -releasenote: - text: |- - client-go now exposes two new metrics to monitor the client-go logic that - generate http.Transports for the clients. - - - `rest_client_transport_cache_entries` is a gauge metric - with the number of existin entries in the internal cache - - - `rest_client_transport_create_calls_total` is a counter - that increments each time a new transport is created, storing - the result of the operation needed to generate it: hit, miss - or uncacheable. +pr: 117295 +releasenote: + text: |- + client-go now exposes two new metrics to monitor the client-go logic that + generate http.Transports for the clients. + + - `rest_client_transport_cache_entries` is a gauge metric + with the number of existin entries in the internal cache + + - `rest_client_transport_create_calls_total` is a counter + that increments each time a new transport is created, storing + the result of the operation needed to generate it: hit, miss + or uncacheable. diff --git a/releases/release-1.28/release-notes/maps/pr-117301-map.yaml b/releases/release-1.28/release-notes/maps/pr-117301-map.yaml index 5be2fc390be..7d4d315834f 100644 --- a/releases/release-1.28/release-notes/maps/pr-117301-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117301-map.yaml @@ -1,5 +1,5 @@ -pr: 117301 -releasenote: - text: Fixed a regression in `1.27.0` that resulted in `missing metadata in converted - object` errors when modifying objects for multi-version custom resource definitions - with a conversion strategy of `None`. +pr: 117301 +releasenote: + text: Fixed a regression in `1.27.0` that resulted in `missing metadata in converted + object` errors when modifying objects for multi-version custom resource definitions + with a conversion strategy of `None`. diff --git a/releases/release-1.28/release-notes/maps/pr-117330-map.yaml b/releases/release-1.28/release-notes/maps/pr-117330-map.yaml index 863daccf2fa..9c10de40679 100644 --- a/releases/release-1.28/release-notes/maps/pr-117330-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117330-map.yaml @@ -1,3 +1,3 @@ -pr: 117330 -releasenote: - text: NONE +pr: 117330 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-117335-map.yaml b/releases/release-1.28/release-notes/maps/pr-117335-map.yaml index 53d8c74de5d..3d42921b7af 100644 --- a/releases/release-1.28/release-notes/maps/pr-117335-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117335-map.yaml @@ -1,3 +1,3 @@ -pr: 117335 -releasenote: - text: Updated `etcd` version to `3.5.8`. +pr: 117335 +releasenote: + text: Updated `etcd` version to `3.5.8`. diff --git a/releases/release-1.28/release-notes/maps/pr-117350-map.yaml b/releases/release-1.28/release-notes/maps/pr-117350-map.yaml index f8cdc8829f7..23b4f266a0a 100644 --- a/releases/release-1.28/release-notes/maps/pr-117350-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117350-map.yaml @@ -1,3 +1,3 @@ -pr: 117350 -releasenote: - text: NONE +pr: 117350 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-117352-map.yaml b/releases/release-1.28/release-notes/maps/pr-117352-map.yaml index 262911f6d5c..b9bd3cf4362 100644 --- a/releases/release-1.28/release-notes/maps/pr-117352-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117352-map.yaml @@ -1,3 +1,3 @@ -pr: 117352 -releasenote: - text: NONE +pr: 117352 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-117368-map.yaml b/releases/release-1.28/release-notes/maps/pr-117368-map.yaml index 9a32f2068f1..5606d91b714 100644 --- a/releases/release-1.28/release-notes/maps/pr-117368-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117368-map.yaml @@ -1,3 +1,3 @@ -pr: 117368 -releasenote: - text: Fixed nil pointer in test AfterEach volumeperf.go for sidecar release. +pr: 117368 +releasenote: + text: Fixed nil pointer in test AfterEach volumeperf.go for sidecar release. diff --git a/releases/release-1.28/release-notes/maps/pr-117386-map.yaml b/releases/release-1.28/release-notes/maps/pr-117386-map.yaml index eece90d333b..2b82a50d098 100644 --- a/releases/release-1.28/release-notes/maps/pr-117386-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117386-map.yaml @@ -1,3 +1,3 @@ -pr: 117386 -releasenote: - text: NONE +pr: 117386 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-117391-map.yaml b/releases/release-1.28/release-notes/maps/pr-117391-map.yaml index 696ba34e9cc..023ee0d6770 100644 --- a/releases/release-1.28/release-notes/maps/pr-117391-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117391-map.yaml @@ -1,3 +1,3 @@ -pr: 117391 -releasenote: - text: NONE +pr: 117391 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-117399-map.yaml b/releases/release-1.28/release-notes/maps/pr-117399-map.yaml index 7080f8f5cfd..47aa6cf0e6b 100644 --- a/releases/release-1.28/release-notes/maps/pr-117399-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117399-map.yaml @@ -1,3 +1,3 @@ -pr: 117399 -releasenote: - text: NONE +pr: 117399 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-117408-map.yaml b/releases/release-1.28/release-notes/maps/pr-117408-map.yaml index 4a27cf97060..419a8df5486 100644 --- a/releases/release-1.28/release-notes/maps/pr-117408-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117408-map.yaml @@ -1,3 +1,3 @@ -pr: 117408 -releasenote: - text: NONE +pr: 117408 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-117448-map.yaml b/releases/release-1.28/release-notes/maps/pr-117448-map.yaml index db018a47975..bbac1b96711 100644 --- a/releases/release-1.28/release-notes/maps/pr-117448-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117448-map.yaml @@ -1,4 +1,4 @@ -pr: 117448 -releasenote: - text: External credential provider plugins will now have their standard error output - logged by kubelet upon failures. +pr: 117448 +releasenote: + text: External credential provider plugins will now have their standard error output + logged by kubelet upon failures. diff --git a/releases/release-1.28/release-notes/maps/pr-117495-map.yaml b/releases/release-1.28/release-notes/maps/pr-117495-map.yaml index 8feabc47f99..6a4c4aba531 100644 --- a/releases/release-1.28/release-notes/maps/pr-117495-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117495-map.yaml @@ -1,4 +1,4 @@ -pr: 117495 -releasenote: - text: Fixed a regression in `kubectl` and `client-go` discovery when configured - with a server URL other than the root of a server +pr: 117495 +releasenote: + text: Fixed a regression in `kubectl` and `client-go` discovery when configured + with a server URL other than the root of a server diff --git a/releases/release-1.28/release-notes/maps/pr-117535-map.yaml b/releases/release-1.28/release-notes/maps/pr-117535-map.yaml index 8578cd05b06..f2be04a6bd4 100644 --- a/releases/release-1.28/release-notes/maps/pr-117535-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117535-map.yaml @@ -1,4 +1,4 @@ -pr: 117535 -releasenote: - text: The short names `vwc` and `mwc` were introduced for the resources `validatingwebhookconfigurations` - and `mutatingwebhookconfigurations`. +pr: 117535 +releasenote: + text: The short names `vwc` and `mwc` were introduced for the resources `validatingwebhookconfigurations` + and `mutatingwebhookconfigurations`. diff --git a/releases/release-1.28/release-notes/maps/pr-117543-map.yaml b/releases/release-1.28/release-notes/maps/pr-117543-map.yaml index 70758a8efcf..bd5cc14289b 100644 --- a/releases/release-1.28/release-notes/maps/pr-117543-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117543-map.yaml @@ -1,3 +1,3 @@ -pr: 117543 -releasenote: - text: Fixed restricted debug profile. +pr: 117543 +releasenote: + text: Fixed restricted debug profile. diff --git a/releases/release-1.28/release-notes/maps/pr-117545-map.yaml b/releases/release-1.28/release-notes/maps/pr-117545-map.yaml index 545924aeef6..01c2efa4f66 100644 --- a/releases/release-1.28/release-notes/maps/pr-117545-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117545-map.yaml @@ -1,3 +1,3 @@ -pr: 117545 -releasenote: - text: Updated `cri-tools` to `v1.27.0`. +pr: 117545 +releasenote: + text: Updated `cri-tools` to `v1.27.0`. diff --git a/releases/release-1.28/release-notes/maps/pr-117550-map.yaml b/releases/release-1.28/release-notes/maps/pr-117550-map.yaml index f04ff2d72df..40d29ce3b07 100644 --- a/releases/release-1.28/release-notes/maps/pr-117550-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117550-map.yaml @@ -1,4 +1,4 @@ -pr: 117550 -releasenote: - text: Added '--concurrent-cron-job-syncs' flag for kube-controller-manager to set - the number of workers for cron job controller +pr: 117550 +releasenote: + text: Added '--concurrent-cron-job-syncs' flag for kube-controller-manager to set + the number of workers for cron job controller diff --git a/releases/release-1.28/release-notes/maps/pr-117568-map.yaml b/releases/release-1.28/release-notes/maps/pr-117568-map.yaml index 33cc9379a07..f8720900623 100644 --- a/releases/release-1.28/release-notes/maps/pr-117568-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117568-map.yaml @@ -1,4 +1,4 @@ -pr: 117568 -releasenote: - text: Fixed bug that caused a resource to include patch directives when using strategic - merge patch against a non-existent field. +pr: 117568 +releasenote: + text: Fixed bug that caused a resource to include patch directives when using strategic + merge patch against a non-existent field. diff --git a/releases/release-1.28/release-notes/maps/pr-117586-map.yaml b/releases/release-1.28/release-notes/maps/pr-117586-map.yaml index 2d0df87d454..3e17852cad9 100644 --- a/releases/release-1.28/release-notes/maps/pr-117586-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117586-map.yaml @@ -1,4 +1,4 @@ -pr: 117586 -releasenote: - text: Added `DisruptionTarget` condition to the pod preempted by kubelet to make - room for a critical pod. +pr: 117586 +releasenote: + text: Added `DisruptionTarget` condition to the pod preempted by kubelet to make + room for a critical pod. diff --git a/releases/release-1.28/release-notes/maps/pr-117594-map.yaml b/releases/release-1.28/release-notes/maps/pr-117594-map.yaml index 9cd2b95bf94..60ba74005b8 100644 --- a/releases/release-1.28/release-notes/maps/pr-117594-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117594-map.yaml @@ -1,4 +1,4 @@ -pr: 117594 -releasenote: - text: Fixed performance regression in scheduler caused by frequent metric lookup - on critical code path. +pr: 117594 +releasenote: + text: Fixed performance regression in scheduler caused by frequent metric lookup + on critical code path. diff --git a/releases/release-1.28/release-notes/maps/pr-117633-map.yaml b/releases/release-1.28/release-notes/maps/pr-117633-map.yaml index 581816c1cd1..9673a16b313 100644 --- a/releases/release-1.28/release-notes/maps/pr-117633-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117633-map.yaml @@ -1,3 +1,3 @@ -pr: 117633 -releasenote: - text: Remove tracking annotation from validation and defaulting. +pr: 117633 +releasenote: + text: Remove tracking annotation from validation and defaulting. diff --git a/releases/release-1.28/release-notes/maps/pr-117649-map.yaml b/releases/release-1.28/release-notes/maps/pr-117649-map.yaml index 7ce94d3db55..3340d6611fa 100644 --- a/releases/release-1.28/release-notes/maps/pr-117649-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117649-map.yaml @@ -1,5 +1,5 @@ -pr: 117649 -releasenote: - text: |- - `kube-scheduler` component config (KubeSchedulerConfiguration) `kubescheduler.config.k8s.io/v1beta2` - is removed in `v1.28`. Migrate `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`. +pr: 117649 +releasenote: + text: |- + `kube-scheduler` component config (KubeSchedulerConfiguration) `kubescheduler.config.k8s.io/v1beta2` + is removed in `v1.28`. Migrate `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`. diff --git a/releases/release-1.28/release-notes/maps/pr-117655-map.yaml b/releases/release-1.28/release-notes/maps/pr-117655-map.yaml index 9744e9f4dec..190a65d5e41 100644 --- a/releases/release-1.28/release-notes/maps/pr-117655-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117655-map.yaml @@ -1,3 +1,3 @@ -pr: 117655 -releasenote: - text: Remove GA'ed feature gate `DelegateFSGroupToCSIDriver`. +pr: 117655 +releasenote: + text: Remove GA'ed feature gate `DelegateFSGroupToCSIDriver`. diff --git a/releases/release-1.28/release-notes/maps/pr-117656-map.yaml b/releases/release-1.28/release-notes/maps/pr-117656-map.yaml index ff6ec41420b..6a6d63e4698 100644 --- a/releases/release-1.28/release-notes/maps/pr-117656-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117656-map.yaml @@ -1,3 +1,3 @@ -pr: 117656 -releasenote: - text: Remove GA'ed feature gate `DevicePlugins`. +pr: 117656 +releasenote: + text: Remove GA'ed feature gate `DevicePlugins`. diff --git a/releases/release-1.28/release-notes/maps/pr-117660-map.yaml b/releases/release-1.28/release-notes/maps/pr-117660-map.yaml index a14f658f68c..42948b5e98d 100644 --- a/releases/release-1.28/release-notes/maps/pr-117660-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117660-map.yaml @@ -1,8 +1,8 @@ -pr: 117660 -releasenote: - text: |- - `kubeadm`: introduced a new feature gate `UpgradeAddonsBeforeControlPlane` to - fix a kube-proxy skew policy misalignment. Its default value is `false`. Upgrade - of the CoreDNS and kube-proxy addons will now trigger after all the control plane - instances have been upgraded, unless the fearure gate is set to true. This feature - gate will be removed in a future release. +pr: 117660 +releasenote: + text: |- + `kubeadm`: introduced a new feature gate `UpgradeAddonsBeforeControlPlane` to + fix a kube-proxy skew policy misalignment. Its default value is `false`. Upgrade + of the CoreDNS and kube-proxy addons will now trigger after all the control plane + instances have been upgraded, unless the fearure gate is set to true. This feature + gate will be removed in a future release. diff --git a/releases/release-1.28/release-notes/maps/pr-117683-map.yaml b/releases/release-1.28/release-notes/maps/pr-117683-map.yaml index b21d6df2a5e..fa3f06d012c 100644 --- a/releases/release-1.28/release-notes/maps/pr-117683-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117683-map.yaml @@ -1,5 +1,5 @@ -pr: 117683 -releasenote: - text: |- - The scheduler skips the `PodTopologySpread` Filter plugin if no spread constraints. - It will affect some metrics values related to the `PodTopologySpread` Filter plugin. +pr: 117683 +releasenote: + text: |- + The scheduler skips the `PodTopologySpread` Filter plugin if no spread constraints. + It will affect some metrics values related to the `PodTopologySpread` Filter plugin. diff --git a/releases/release-1.28/release-notes/maps/pr-117687-map.yaml b/releases/release-1.28/release-notes/maps/pr-117687-map.yaml index d785aa2c162..a250c1b8cd0 100644 --- a/releases/release-1.28/release-notes/maps/pr-117687-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117687-map.yaml @@ -1,4 +1,4 @@ -pr: 117687 -releasenote: - text: |- - `klog` text output now uses JSON as encoding for structs, maps and slices. +pr: 117687 +releasenote: + text: |- + `klog` text output now uses JSON as encoding for structs, maps and slices. diff --git a/releases/release-1.28/release-notes/maps/pr-117705-map.yaml b/releases/release-1.28/release-notes/maps/pr-117705-map.yaml index 83e619d57dd..d9650e1f542 100644 --- a/releases/release-1.28/release-notes/maps/pr-117705-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117705-map.yaml @@ -1,3 +1,3 @@ -pr: 117705 -releasenote: - text: Fixed a race condition serving `OpenAPI` content +pr: 117705 +releasenote: + text: Fixed a race condition serving `OpenAPI` content diff --git a/releases/release-1.28/release-notes/maps/pr-117717-map.yaml b/releases/release-1.28/release-notes/maps/pr-117717-map.yaml index ce7065b7067..67efafe3ff3 100644 --- a/releases/release-1.28/release-notes/maps/pr-117717-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117717-map.yaml @@ -1,4 +1,4 @@ -pr: 117717 -releasenote: - text: Allowed container runtimes to use `ErrSignatureValidationFailed` as possible - image pull failure. +pr: 117717 +releasenote: + text: Allowed container runtimes to use `ErrSignatureValidationFailed` as possible + image pull failure. diff --git a/releases/release-1.28/release-notes/maps/pr-117784-map.yaml b/releases/release-1.28/release-notes/maps/pr-117784-map.yaml index c2614844550..65bdb0c893b 100644 --- a/releases/release-1.28/release-notes/maps/pr-117784-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117784-map.yaml @@ -1,3 +1,3 @@ -pr: 117784 -releasenote: - text: NONE +pr: 117784 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-117787-map.yaml b/releases/release-1.28/release-notes/maps/pr-117787-map.yaml index 270a8cf10a8..5eb52ff5e5c 100644 --- a/releases/release-1.28/release-notes/maps/pr-117787-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117787-map.yaml @@ -1,7 +1,7 @@ -pr: 117787 -releasenote: - text: |- - `kube-proxy` in iptables mode will now have separate `sync_full_proxy_rules_duration_seconds`\nand - `sync_partial_proxy_rules_duration_seconds` (in addition to the existing\n`sync_proxy_rules_duration_seconds`), - giving better information about the duration of each \nsync type, rather than - only giving a weighted average of the two sync types together. +pr: 117787 +releasenote: + text: |- + `kube-proxy` in iptables mode will now have separate `sync_full_proxy_rules_duration_seconds`\nand + `sync_partial_proxy_rules_duration_seconds` (in addition to the existing\n`sync_proxy_rules_duration_seconds`), + giving better information about the duration of each \nsync type, rather than + only giving a weighted average of the two sync types together. diff --git a/releases/release-1.28/release-notes/maps/pr-117791-map.yaml b/releases/release-1.28/release-notes/maps/pr-117791-map.yaml index 582835b5ba3..bc099fadd67 100644 --- a/releases/release-1.28/release-notes/maps/pr-117791-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117791-map.yaml @@ -1,3 +1,3 @@ -pr: 117791 -releasenote: - text: NONE +pr: 117791 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-117800-map.yaml b/releases/release-1.28/release-notes/maps/pr-117800-map.yaml index 62f1872fd6b..673e4d41734 100644 --- a/releases/release-1.28/release-notes/maps/pr-117800-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117800-map.yaml @@ -1,3 +1,3 @@ -pr: 117800 -releasenote: - text: 'kube-proxy: added `--logging-format` flag to support structured logging.' +pr: 117800 +releasenote: + text: 'kube-proxy: added `--logging-format` flag to support structured logging.' diff --git a/releases/release-1.28/release-notes/maps/pr-117835-map.yaml b/releases/release-1.28/release-notes/maps/pr-117835-map.yaml index c6e6eb900f9..b852b4cb7db 100644 --- a/releases/release-1.28/release-notes/maps/pr-117835-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117835-map.yaml @@ -1,4 +1,4 @@ -pr: 117835 -releasenote: - text: |- - `kubeadm`: `crictl pull` should use `-i` to set the image service endpoint. +pr: 117835 +releasenote: + text: |- + `kubeadm`: `crictl pull` should use `-i` to set the image service endpoint. diff --git a/releases/release-1.28/release-notes/maps/pr-117861-map.yaml b/releases/release-1.28/release-notes/maps/pr-117861-map.yaml index eab8402ea50..a6ceb7a4106 100644 --- a/releases/release-1.28/release-notes/maps/pr-117861-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117861-map.yaml @@ -1,5 +1,5 @@ -pr: 117861 -releasenote: - text: |- - `kubeadm`: fixed a bug where file copy(backup) could not be executed correctly - on Windows platform during upgrade. +pr: 117861 +releasenote: + text: |- + `kubeadm`: fixed a bug where file copy(backup) could not be executed correctly + on Windows platform during upgrade. diff --git a/releases/release-1.28/release-notes/maps/pr-117865-map.yaml b/releases/release-1.28/release-notes/maps/pr-117865-map.yaml index 155d36f2ff9..3d85f3cad70 100644 --- a/releases/release-1.28/release-notes/maps/pr-117865-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117865-map.yaml @@ -1,3 +1,3 @@ -pr: 117865 -releasenote: - text: Faster `StatefulSet` creation when `Parallel` mode is enabled. +pr: 117865 +releasenote: + text: Faster `StatefulSet` creation when `Parallel` mode is enabled. diff --git a/releases/release-1.28/release-notes/maps/pr-117877-map.yaml b/releases/release-1.28/release-notes/maps/pr-117877-map.yaml index 7d0133d5abd..280b2d8be82 100644 --- a/releases/release-1.28/release-notes/maps/pr-117877-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117877-map.yaml @@ -1,4 +1,4 @@ -pr: 117877 -releasenote: - text: Promoted `ServiceNodePortStaticSubrange` feature gate to beta, and it will be enabled by - default. +pr: 117877 +releasenote: + text: Promoted `ServiceNodePortStaticSubrange` feature gate to beta, and it will be enabled by + default. diff --git a/releases/release-1.28/release-notes/maps/pr-117879-map.yaml b/releases/release-1.28/release-notes/maps/pr-117879-map.yaml index b619a7d266e..01a5fd71ad2 100644 --- a/releases/release-1.28/release-notes/maps/pr-117879-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117879-map.yaml @@ -1,3 +1,3 @@ -pr: 117879 -releasenote: - text: NONE +pr: 117879 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-117913-map.yaml b/releases/release-1.28/release-notes/maps/pr-117913-map.yaml index 805f6291421..688ebe8a47d 100644 --- a/releases/release-1.28/release-notes/maps/pr-117913-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117913-map.yaml @@ -1,3 +1,3 @@ -pr: 117913 -releasenote: - text: NONE +pr: 117913 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-117930-map.yaml b/releases/release-1.28/release-notes/maps/pr-117930-map.yaml index c070cb4fb6f..936a4bd04df 100644 --- a/releases/release-1.28/release-notes/maps/pr-117930-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117930-map.yaml @@ -1,6 +1,6 @@ -pr: 117930 -releasenote: - text: |- - The helping message of commands which have sub-commands is now clearer and more instructive. It will show the full command instead of `kubectl <command> --help ...` - - Changed `kubectl create secret --help` description. There will be a short introduction to the three secret types and clearer guidance on how to use the command. +pr: 117930 +releasenote: + text: |- + The helping message of commands which have sub-commands is now clearer and more instructive. It will show the full command instead of `kubectl <command> --help ...` + + Changed `kubectl create secret --help` description. There will be a short introduction to the three secret types and clearer guidance on how to use the command. diff --git a/releases/release-1.28/release-notes/maps/pr-117984-map.yaml b/releases/release-1.28/release-notes/maps/pr-117984-map.yaml index bc79f6a2d21..f233624d56a 100644 --- a/releases/release-1.28/release-notes/maps/pr-117984-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-117984-map.yaml @@ -1,6 +1,6 @@ -pr: 117984 -releasenote: - text: |- - `kubeadm`: speedup init by 0s or 20s. kubelet-start phase is now after etcd - and control-plane phases, removing a race condition between kubelet looking for - static pod manifests and kubeadm writing them. +pr: 117984 +releasenote: + text: |- + `kubeadm`: speedup init by 0s or 20s. kubelet-start phase is now after etcd + and control-plane phases, removing a race condition between kubelet looking for + static pod manifests and kubeadm writing them. diff --git a/releases/release-1.28/release-notes/maps/pr-118000-map.yaml b/releases/release-1.28/release-notes/maps/pr-118000-map.yaml index 31c3ccb8b79..46da31766a5 100644 --- a/releases/release-1.28/release-notes/maps/pr-118000-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118000-map.yaml @@ -1,3 +1,3 @@ -pr: 118000 -releasenote: - text: NONE +pr: 118000 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-118009-map.yaml b/releases/release-1.28/release-notes/maps/pr-118009-map.yaml index 1f8e26c5d90..d0105c92f1c 100644 --- a/releases/release-1.28/release-notes/maps/pr-118009-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118009-map.yaml @@ -1,3 +1,3 @@ -pr: 118009 -releasenote: - text: Supported `BackoffLimitPerIndex` in Jobs. +pr: 118009 +releasenote: + text: Supported `BackoffLimitPerIndex` in Jobs. diff --git a/releases/release-1.28/release-notes/maps/pr-118013-map.yaml b/releases/release-1.28/release-notes/maps/pr-118013-map.yaml index 160c3398eb1..8068b6f7b5b 100644 --- a/releases/release-1.28/release-notes/maps/pr-118013-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118013-map.yaml @@ -1,8 +1,8 @@ -pr: 118013 -releasenote: - text: |- - `kubeadm`: added a new "kubeadm config validate" command that can be used to - validate any input config file. Use the `--config` flag to pass a config file - to it. See the command `--help` screen for more information. As a result of adding - this new command, enhance the validation capabilities of the existing "kubeadm - config migrate" command. For both commands unknown APIs or fields will throw errors. +pr: 118013 +releasenote: + text: |- + `kubeadm`: added a new "kubeadm config validate" command that can be used to + validate any input config file. Use the `--config` flag to pass a config file + to it. See the command `--help` screen for more information. As a result of adding + this new command, enhance the validation capabilities of the existing "kubeadm + config migrate" command. For both commands unknown APIs or fields will throw errors. diff --git a/releases/release-1.28/release-notes/maps/pr-118018-map.yaml b/releases/release-1.28/release-notes/maps/pr-118018-map.yaml index ca9c01c0cf0..4bee26904a2 100644 --- a/releases/release-1.28/release-notes/maps/pr-118018-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118018-map.yaml @@ -1,4 +1,4 @@ -pr: 118018 -releasenote: - text: The feature gate `CSIStorageCapacity` have been removed and must no longer - be referenced in `--feature-gates` flags. +pr: 118018 +releasenote: + text: The feature gate `CSIStorageCapacity` have been removed and must no longer + be referenced in `--feature-gates` flags. diff --git a/releases/release-1.28/release-notes/maps/pr-118025-map.yaml b/releases/release-1.28/release-notes/maps/pr-118025-map.yaml index 31e77ccec2d..a17a0471619 100644 --- a/releases/release-1.28/release-notes/maps/pr-118025-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118025-map.yaml @@ -1,5 +1,5 @@ -pr: 118025 -releasenote: - text: |- - `plugin_evaluation_total` metric supports prescore/score extension point. - The metric doesn't get incremented when the prescore/score plugin has nothing to do with an incoming pod. +pr: 118025 +releasenote: + text: |- + `plugin_evaluation_total` metric supports prescore/score extension point. + The metric doesn't get incremented when the prescore/score plugin has nothing to do with an incoming pod. diff --git a/releases/release-1.28/release-notes/maps/pr-118029-map.yaml b/releases/release-1.28/release-notes/maps/pr-118029-map.yaml index 00b6f509774..dfb45cb21d8 100644 --- a/releases/release-1.28/release-notes/maps/pr-118029-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118029-map.yaml @@ -1,3 +1,3 @@ -pr: 118029 -releasenote: - text: Code blocks in `kubectl {$COMMAND}--help` will move right by 3 indentation. +pr: 118029 +releasenote: + text: Code blocks in `kubectl {$COMMAND}--help` will move right by 3 indentation. diff --git a/releases/release-1.28/release-notes/maps/pr-118049-map.yaml b/releases/release-1.28/release-notes/maps/pr-118049-map.yaml index e1283546b72..3990fe83cc9 100644 --- a/releases/release-1.28/release-notes/maps/pr-118049-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118049-map.yaml @@ -1,4 +1,4 @@ -pr: 118049 -releasenote: - text: The `pod_scheduling_duration_seconds` metrics won't consider the time when - a pod fails `PreEnqueue` (like being gated). +pr: 118049 +releasenote: + text: The `pod_scheduling_duration_seconds` metrics won't consider the time when + a pod fails `PreEnqueue` (like being gated). diff --git a/releases/release-1.28/release-notes/maps/pr-118055-map.yaml b/releases/release-1.28/release-notes/maps/pr-118055-map.yaml index f0723fff19d..66303223aa7 100644 --- a/releases/release-1.28/release-notes/maps/pr-118055-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118055-map.yaml @@ -1,3 +1,3 @@ -pr: 118055 -releasenote: - text: Exposed `rest.DefaultServerUrlFor` function +pr: 118055 +releasenote: + text: Exposed `rest.DefaultServerUrlFor` function diff --git a/releases/release-1.28/release-notes/maps/pr-118069-map.yaml b/releases/release-1.28/release-notes/maps/pr-118069-map.yaml index 890a6482354..4d708a24f70 100644 --- a/releases/release-1.28/release-notes/maps/pr-118069-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118069-map.yaml @@ -1,5 +1,5 @@ -pr: 118069 -releasenote: - text: |- - `kubeadm:` fixed a bug where the static pod changes detection logic is inconsistent - with kubelet. +pr: 118069 +releasenote: + text: |- + `kubeadm:` fixed a bug where the static pod changes detection logic is inconsistent + with kubelet. diff --git a/releases/release-1.28/release-notes/maps/pr-118102-map.yaml b/releases/release-1.28/release-notes/maps/pr-118102-map.yaml index 28f0751d85b..99d6f21c77a 100644 --- a/releases/release-1.28/release-notes/maps/pr-118102-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118102-map.yaml @@ -1,4 +1,4 @@ -pr: 118102 -releasenote: - text: |- - `RetroactiveDefaultStorageClass` feature made stable and enabled by default. +pr: 118102 +releasenote: + text: |- + `RetroactiveDefaultStorageClass` feature made stable and enabled by default. diff --git a/releases/release-1.28/release-notes/maps/pr-118104-map.yaml b/releases/release-1.28/release-notes/maps/pr-118104-map.yaml index 6f13a4bbb4f..5d927cd677b 100644 --- a/releases/release-1.28/release-notes/maps/pr-118104-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118104-map.yaml @@ -1,4 +1,4 @@ -pr: 118104 -releasenote: - text: Fixed a bug at `kube-apiserver` start where `APIService` objects for custom - resources could be deleted and recreated. +pr: 118104 +releasenote: + text: Fixed a bug at `kube-apiserver` start where `APIService` objects for custom + resources could be deleted and recreated. diff --git a/releases/release-1.28/release-notes/maps/pr-118137-map.yaml b/releases/release-1.28/release-notes/maps/pr-118137-map.yaml index 0d56e67d62a..1b08cc20a62 100644 --- a/releases/release-1.28/release-notes/maps/pr-118137-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118137-map.yaml @@ -1,4 +1,4 @@ -pr: 118137 -releasenote: - text: Added new annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` to - Job objects scheduled from CronJobs. +pr: 118137 +releasenote: + text: Added new annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` to + Job objects scheduled from CronJobs. diff --git a/releases/release-1.28/release-notes/maps/pr-118143-map.yaml b/releases/release-1.28/release-notes/maps/pr-118143-map.yaml index 5d0a3270259..ee42aa18efc 100644 --- a/releases/release-1.28/release-notes/maps/pr-118143-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118143-map.yaml @@ -1,5 +1,5 @@ -pr: 118143 -releasenote: - text: CephFS volume plugin (`kubernetes.io/cephfs`) has been deprecated in this - release and will be removed in a subsequent release. The alternative is to use - the CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes cluster. +pr: 118143 +releasenote: + text: CephFS volume plugin (`kubernetes.io/cephfs`) has been deprecated in this + release and will be removed in a subsequent release. The alternative is to use + the CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes cluster. diff --git a/releases/release-1.28/release-notes/maps/pr-118160-map.yaml b/releases/release-1.28/release-notes/maps/pr-118160-map.yaml index e9d5e5c5fa7..21ce683b9f5 100644 --- a/releases/release-1.28/release-notes/maps/pr-118160-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118160-map.yaml @@ -1,7 +1,7 @@ -pr: 118160 -releasenote: - text: |- - The "value" part in the `wait --for=jsonpath='{expression}'[=value]` is now - optional. If the value is not provided i.e., the command looks like `wait --for=jsonpath='{expression}'` - then the wait condition is interpreted as matched when the expression returns - *any* single JSON value like object or a literal. +pr: 118160 +releasenote: + text: |- + The "value" part in the `wait --for=jsonpath='{expression}'[=value]` is now + optional. If the value is not provided i.e., the command looks like `wait --for=jsonpath='{expression}'` + then the wait condition is interpreted as matched when the expression returns + *any* single JSON value like object or a literal. diff --git a/releases/release-1.28/release-notes/maps/pr-118204-map.yaml b/releases/release-1.28/release-notes/maps/pr-118204-map.yaml index 5a91d6ab0fb..90e899f0818 100644 --- a/releases/release-1.28/release-notes/maps/pr-118204-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118204-map.yaml @@ -1,4 +1,4 @@ -pr: 118204 -releasenote: - text: Shrank the OpenAPI v2 spec by more than 50%, especially for less CPU resource - consumption. +pr: 118204 +releasenote: + text: Shrank the OpenAPI v2 spec by more than 50%, especially for less CPU resource + consumption. diff --git a/releases/release-1.28/release-notes/maps/pr-118212-map.yaml b/releases/release-1.28/release-notes/maps/pr-118212-map.yaml index 3c891e25d5b..92111874568 100644 --- a/releases/release-1.28/release-notes/maps/pr-118212-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118212-map.yaml @@ -1,5 +1,5 @@ -pr: 118212 -releasenote: - text: Reduced CPU and memory consumption of `kube-apiserver` if OpenAPI V2 will - not be accessed by any client. Also improved performance of the apiserver on installation - of many CRDs. +pr: 118212 +releasenote: + text: Reduced CPU and memory consumption of `kube-apiserver` if OpenAPI V2 will + not be accessed by any client. Also improved performance of the apiserver on installation + of many CRDs. diff --git a/releases/release-1.28/release-notes/maps/pr-118228-map.yaml b/releases/release-1.28/release-notes/maps/pr-118228-map.yaml index 828d7a96538..d37b7d6142e 100644 --- a/releases/release-1.28/release-notes/maps/pr-118228-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118228-map.yaml @@ -1,3 +1,3 @@ -pr: 118228 -releasenote: - text: Moved `non-graceful node` shutdown to GA. +pr: 118228 +releasenote: + text: Moved `non-graceful node` shutdown to GA. diff --git a/releases/release-1.28/release-notes/maps/pr-118229-map.yaml b/releases/release-1.28/release-notes/maps/pr-118229-map.yaml index 5cff535d714..0005b7ef197 100644 --- a/releases/release-1.28/release-notes/maps/pr-118229-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118229-map.yaml @@ -1,3 +1,3 @@ -pr: 118229 -releasenote: - text: NONE +pr: 118229 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-118235-map.yaml b/releases/release-1.28/release-notes/maps/pr-118235-map.yaml index be5d1b28d84..aebc57a3f25 100644 --- a/releases/release-1.28/release-notes/maps/pr-118235-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118235-map.yaml @@ -1,3 +1,3 @@ -pr: 118235 -releasenote: - text: NONE +pr: 118235 +releasenote: + text: NONE diff --git a/releases/release-1.28/release-notes/maps/pr-118236-map.yaml b/releases/release-1.28/release-notes/maps/pr-118236-map.yaml index ae8bec7b98b..9c1990c80f9 100644 --- a/releases/release-1.28/release-notes/maps/pr-118236-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118236-map.yaml @@ -1,3 +1,3 @@ -pr: 118236 -releasenote: - text: Removed the deprecated `azureFile` in-tree storage plugin. +pr: 118236 +releasenote: + text: Removed the deprecated `azureFile` in-tree storage plugin. diff --git a/releases/release-1.28/release-notes/maps/pr-118270-map.yaml b/releases/release-1.28/release-notes/maps/pr-118270-map.yaml index 088955cd837..7fc604b7e5e 100644 --- a/releases/release-1.28/release-notes/maps/pr-118270-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118270-map.yaml @@ -1,4 +1,4 @@ -pr: 118270 -releasenote: - text: |- - `kubeadm`: will now throw warnings instead of errors for deprecated feature gates. +pr: 118270 +releasenote: + text: |- + `kubeadm`: will now throw warnings instead of errors for deprecated feature gates. diff --git a/releases/release-1.28/release-notes/maps/pr-118278-map.yaml b/releases/release-1.28/release-notes/maps/pr-118278-map.yaml index 4104b8745b1..f3ede67672f 100644 --- a/releases/release-1.28/release-notes/maps/pr-118278-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118278-map.yaml @@ -1,4 +1,4 @@ -pr: 118278 -releasenote: - text: Updated the comment about the feature-gate level for `PodFailurePolicy` from - alpha to beta +pr: 118278 +releasenote: + text: Updated the comment about the feature-gate level for `PodFailurePolicy` from + alpha to beta diff --git a/releases/release-1.28/release-notes/maps/pr-118303-map.yaml b/releases/release-1.28/release-notes/maps/pr-118303-map.yaml index 116eac4493a..fc46f915ef7 100644 --- a/releases/release-1.28/release-notes/maps/pr-118303-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118303-map.yaml @@ -1,5 +1,5 @@ -pr: 118303 -releasenote: - text: |- - Deprecated support for CSI migration of `Ceph RBD volumes`. Users who were relying on Kubernetes' ability - to migrate to an out-of-tree storage driver should complete that migration before the support for it is removed. +pr: 118303 +releasenote: + text: |- + Deprecated support for CSI migration of `Ceph RBD volumes`. Users who were relying on Kubernetes' ability + to migrate to an out-of-tree storage driver should complete that migration before the support for it is removed. diff --git a/releases/release-1.28/release-notes/maps/pr-118329-map.yaml b/releases/release-1.28/release-notes/maps/pr-118329-map.yaml index db0c8dbcf89..ac30e258c3b 100644 --- a/releases/release-1.28/release-notes/maps/pr-118329-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118329-map.yaml @@ -1,3 +1,3 @@ -pr: 118329 -releasenote: - text: Fixed the alpha `CloudDualStackNodeIPs` feature. +pr: 118329 +releasenote: + text: Fixed the alpha `CloudDualStackNodeIPs` feature. diff --git a/releases/release-1.28/release-notes/maps/pr-118386-map.yaml b/releases/release-1.28/release-notes/maps/pr-118386-map.yaml index 715039c7f3a..8b3510d8fba 100644 --- a/releases/release-1.28/release-notes/maps/pr-118386-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118386-map.yaml @@ -1,3 +1,3 @@ -pr: 118386 -releasenote: - text: Add `ServedVersions` field to `StorageVersion` API. +pr: 118386 +releasenote: + text: Add `ServedVersions` field to `StorageVersion` API. diff --git a/releases/release-1.28/release-notes/maps/pr-118460-map.yaml b/releases/release-1.28/release-notes/maps/pr-118460-map.yaml index 0d2ad80eaa7..36a197a1d8b 100644 --- a/releases/release-1.28/release-notes/maps/pr-118460-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118460-map.yaml @@ -1,5 +1,5 @@ -pr: 118460 -releasenote: - text: Fixed component status calling etcd health endpoint over http which exposed - kubernetes to the risk of complete watch starvation and is inconsistent with other - etcd probing done by `kube-apiserver`. +pr: 118460 +releasenote: + text: Fixed component status calling etcd health endpoint over http which exposed + kubernetes to the risk of complete watch starvation and is inconsistent with other + etcd probing done by `kube-apiserver`. diff --git a/releases/release-1.28/release-notes/maps/pr-118480-map.yaml b/releases/release-1.28/release-notes/maps/pr-118480-map.yaml index 2996bda367d..df1f5ec67e1 100644 --- a/releases/release-1.28/release-notes/maps/pr-118480-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118480-map.yaml @@ -1,4 +1,4 @@ -pr: 118480 -releasenote: - text: '`force_delete_pods_total` and `force_delete_pod_errors_total` metrics count - all pod deletion behaviors.' +pr: 118480 +releasenote: + text: '`force_delete_pods_total` and `force_delete_pod_errors_total` metrics count + all pod deletion behaviors.' diff --git a/releases/release-1.28/release-notes/maps/pr-118497-map.yaml b/releases/release-1.28/release-notes/maps/pr-118497-map.yaml index 629c4d7979b..528131b8a51 100644 --- a/releases/release-1.28/release-notes/maps/pr-118497-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118497-map.yaml @@ -1,3 +1,3 @@ -pr: 118497 -releasenote: - text: Fixed deletion of non-admissible pods that are deleted during Kubelet restart. +pr: 118497 +releasenote: + text: Fixed deletion of non-admissible pods that are deleted during Kubelet restart. diff --git a/releases/release-1.28/release-notes/maps/pr-118499-map.yaml b/releases/release-1.28/release-notes/maps/pr-118499-map.yaml index 1507fbaae4f..6a439585cee 100644 --- a/releases/release-1.28/release-notes/maps/pr-118499-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118499-map.yaml @@ -1,5 +1,5 @@ -pr: 118499 -releasenote: - text: Fix a race condition in `kube-proxy` when using LocalModeNodeCIDR, to avoid - dropping Services traffic if the object node is recreated when `kube-proxy` is - starting. +pr: 118499 +releasenote: + text: Fix a race condition in `kube-proxy` when using LocalModeNodeCIDR, to avoid + dropping Services traffic if the object node is recreated when `kube-proxy` is + starting. diff --git a/releases/release-1.28/release-notes/maps/pr-118507-map.yaml b/releases/release-1.28/release-notes/maps/pr-118507-map.yaml index df13cfd56a6..1d71e2b08c1 100644 --- a/releases/release-1.28/release-notes/maps/pr-118507-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118507-map.yaml @@ -1,3 +1,3 @@ -pr: 118507 -releasenote: - text: Kubernetes is now built with Go `1.20.5` +pr: 118507 +releasenote: + text: Kubernetes is now built with Go `1.20.5` diff --git a/releases/release-1.28/release-notes/maps/pr-118508-map.yaml b/releases/release-1.28/release-notes/maps/pr-118508-map.yaml index 8ba7ff759a8..f446326269f 100644 --- a/releases/release-1.28/release-notes/maps/pr-118508-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118508-map.yaml @@ -1,4 +1,4 @@ -pr: 118508 -releasenote: - text: Added `ConsistentListFromCache` feature gate that allows apiserver to serve - consistent lists from cache. +pr: 118508 +releasenote: + text: Added `ConsistentListFromCache` feature gate that allows apiserver to serve + consistent lists from cache. diff --git a/releases/release-1.28/release-notes/maps/pr-118530-map.yaml b/releases/release-1.28/release-notes/maps/pr-118530-map.yaml index c56c3db64de..cee87763d17 100644 --- a/releases/release-1.28/release-notes/maps/pr-118530-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118530-map.yaml @@ -1,3 +1,3 @@ -pr: 118530 -releasenote: - text: Fixed Cronjob `status.lastSuccessfulTime` not populated by a manually triggered +pr: 118530 +releasenote: + text: Fixed Cronjob `status.lastSuccessfulTime` not populated by a manually triggered diff --git a/releases/release-1.28/release-notes/maps/pr-118552-map.yaml b/releases/release-1.28/release-notes/maps/pr-118552-map.yaml index a0e8e5ecd36..073702f0698 100644 --- a/releases/release-1.28/release-notes/maps/pr-118552-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118552-map.yaml @@ -1,6 +1,6 @@ -pr: 118552 -releasenote: - text: |- - RBD volume plugin (`kubernetes.io/rbd`) has been deprecated in this release - and will be removed in a subsequent release. Alternative is to use RBD CSI driver - (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. +pr: 118552 +releasenote: + text: |- + RBD volume plugin (`kubernetes.io/rbd`) has been deprecated in this release + and will be removed in a subsequent release. Alternative is to use RBD CSI driver + (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. diff --git a/releases/release-1.28/release-notes/maps/pr-118567-map.yaml b/releases/release-1.28/release-notes/maps/pr-118567-map.yaml index b094d4a228a..80b67601402 100644 --- a/releases/release-1.28/release-notes/maps/pr-118567-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118567-map.yaml @@ -1,4 +1,4 @@ -pr: 118567 -releasenote: - text: CI job `ci-kubernetes-node-arm64-ubuntu-serial` will test node e2e on arm64, - `use-dockerized-build` and `target-build-arch` are required to run this job. +pr: 118567 +releasenote: + text: CI job `ci-kubernetes-node-arm64-ubuntu-serial` will test node e2e on arm64, + `use-dockerized-build` and `target-build-arch` are required to run this job. diff --git a/releases/release-1.28/release-notes/maps/pr-118578-map.yaml b/releases/release-1.28/release-notes/maps/pr-118578-map.yaml index 0c003d8fb58..bc412d79492 100644 --- a/releases/release-1.28/release-notes/maps/pr-118578-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118578-map.yaml @@ -1,4 +1,4 @@ -pr: 118578 -releasenote: - text: 'Dynamic Resource Allocation: logged an error and submitted an event when - `Kubelet` failed to prepare dynamic resources.' +pr: 118578 +releasenote: + text: 'Dynamic Resource Allocation: logged an error and submitted an event when + `Kubelet` failed to prepare dynamic resources.' diff --git a/releases/release-1.28/release-notes/maps/pr-118601-map.yaml b/releases/release-1.28/release-notes/maps/pr-118601-map.yaml index e0fcf47707e..1e2196b9b31 100644 --- a/releases/release-1.28/release-notes/maps/pr-118601-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118601-map.yaml @@ -1,6 +1,6 @@ -pr: 118601 -releasenote: - text: |- - Updated kube-apiserver's priority & fairness work estimator such that 'max seats' is MIN(0.15 x nominalCL, nominalCL / handSize) - - This fixes a bug where clients with requests using hand size x max seats greater than the nominal concurrency limit can starve other requests in the same priority level. +pr: 118601 +releasenote: + text: |- + Updated kube-apiserver's priority & fairness work estimator such that 'max seats' is MIN(0.15 x nominalCL, nominalCL / handSize) + + This fixes a bug where clients with requests using hand size x max seats greater than the nominal concurrency limit can starve other requests in the same priority level. diff --git a/releases/release-1.28/release-notes/maps/pr-118608-map.yaml b/releases/release-1.28/release-notes/maps/pr-118608-map.yaml index bdf1a164e70..f98503b9e9d 100644 --- a/releases/release-1.28/release-notes/maps/pr-118608-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118608-map.yaml @@ -1,5 +1,5 @@ -pr: 118608 -releasenote: - text: |- - The scheduler skips the `PodTopologySpread` Score plugin when nothing to do with the Pod. - It will affect some metrics values related to the PodTopologySpread Score plugin. +pr: 118608 +releasenote: + text: |- + The scheduler skips the `PodTopologySpread` Score plugin when nothing to do with the Pod. + It will affect some metrics values related to the PodTopologySpread Score plugin. diff --git a/releases/release-1.28/release-notes/maps/pr-118686-map.yaml b/releases/release-1.28/release-notes/maps/pr-118686-map.yaml index 05a57f07831..5418a27ff78 100644 --- a/releases/release-1.28/release-notes/maps/pr-118686-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118686-map.yaml @@ -1,6 +1,6 @@ -pr: 118686 -releasenote: - text: |- - `wait.PollUntilContextTimeout` function, if immediate is true, the condition - will be invoked before waiting and guarantees that the condition is invoked at - least once, regardless of whether the context has been cancelled. +pr: 118686 +releasenote: + text: |- + `wait.PollUntilContextTimeout` function, if immediate is true, the condition + will be invoked before waiting and guarantees that the condition is invoked at + least once, regardless of whether the context has been cancelled. diff --git a/releases/release-1.28/release-notes/maps/pr-118691-map.yaml b/releases/release-1.28/release-notes/maps/pr-118691-map.yaml index dae183e06ee..c61ee34d54d 100644 --- a/releases/release-1.28/release-notes/maps/pr-118691-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118691-map.yaml @@ -1,4 +1,4 @@ -pr: 118691 -releasenote: - text: Enabled use of pods with volumes and user namespaces. The feature gate was - renamed from `UserNamespacesStatelessPodsSupport` to `UserNamespacesSupport`. +pr: 118691 +releasenote: + text: Enabled use of pods with volumes and user namespaces. The feature gate was + renamed from `UserNamespacesStatelessPodsSupport` to `UserNamespacesSupport`. diff --git a/releases/release-1.28/release-notes/maps/pr-118716-map.yaml b/releases/release-1.28/release-notes/maps/pr-118716-map.yaml index 8c2532279c6..21ceec12150 100644 --- a/releases/release-1.28/release-notes/maps/pr-118716-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118716-map.yaml @@ -1,4 +1,4 @@ -pr: 118716 -releasenote: - text: The Daemonset controller creates replacements for terminal Pods, which can - appear during VM preemptions or when using Pod finalizers. +pr: 118716 +releasenote: + text: The Daemonset controller creates replacements for terminal Pods, which can + appear during VM preemptions or when using Pod finalizers. diff --git a/releases/release-1.28/release-notes/maps/pr-118724-map.yaml b/releases/release-1.28/release-notes/maps/pr-118724-map.yaml index 5bc50c00ecb..18ecb2fb47b 100644 --- a/releases/release-1.28/release-notes/maps/pr-118724-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118724-map.yaml @@ -1,4 +1,4 @@ -pr: 118724 -releasenote: - text: |- - Fixed cronjob controller handling of complex schedules, like `30 6-16/4 * * 1-5`, for example. +pr: 118724 +releasenote: + text: |- + Fixed cronjob controller handling of complex schedules, like `30 6-16/4 * * 1-5`, for example. diff --git a/releases/release-1.28/release-notes/maps/pr-118759-map.yaml b/releases/release-1.28/release-notes/maps/pr-118759-map.yaml index 1572f4906f4..9aa5fa221c4 100644 --- a/releases/release-1.28/release-notes/maps/pr-118759-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118759-map.yaml @@ -1,3 +1,3 @@ -pr: 118759 -releasenote: - text: Reduced delay when processing jobs after a transient API error. +pr: 118759 +releasenote: + text: Reduced delay when processing jobs after a transient API error. diff --git a/releases/release-1.28/release-notes/maps/pr-118763-map.yaml b/releases/release-1.28/release-notes/maps/pr-118763-map.yaml index 0df04dce797..3c076b8e279 100644 --- a/releases/release-1.28/release-notes/maps/pr-118763-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118763-map.yaml @@ -1,5 +1,5 @@ -pr: 118763 -releasenote: - text: |- - The `AdvancedAuditing` feature gate that graduated to GA in `v1.12` (and was unconditionally - enabled) has been removed. +pr: 118763 +releasenote: + text: |- + The `AdvancedAuditing` feature gate that graduated to GA in `v1.12` (and was unconditionally + enabled) has been removed. diff --git a/releases/release-1.28/release-notes/maps/pr-118764-map.yaml b/releases/release-1.28/release-notes/maps/pr-118764-map.yaml index 2a3650c377d..1397c07c04f 100644 --- a/releases/release-1.28/release-notes/maps/pr-118764-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118764-map.yaml @@ -1,15 +1,15 @@ -pr: 118764 -releasenote: - text: |- - Added full cgroup v2 swap support for both `Limited` and `Unlimited` swap. - - When `LimitedSwap` is enabled the swap limit would be automatically calculated for - Burstable QoS pods. For Best-Effort/Guaranteed QoS pods, swap would be disabled. - - Containers with memory requests equal to their memory limits also won't have - swap access, and it is a way to opt-out of swap for a single container. - - The formula for the swap limit for Burstable QoS pods is: - `(<memory-request>/<node-memory-capacity>)*<node-swap-capacity>`. - - Support for `cgroup v1` is removed. +pr: 118764 +releasenote: + text: |- + Added full cgroup v2 swap support for both `Limited` and `Unlimited` swap. + + When `LimitedSwap` is enabled the swap limit would be automatically calculated for + Burstable QoS pods. For Best-Effort/Guaranteed QoS pods, swap would be disabled. + + Containers with memory requests equal to their memory limits also won't have + swap access, and it is a way to opt-out of swap for a single container. + + The formula for the swap limit for Burstable QoS pods is: + `(<memory-request>/<node-memory-capacity>)*<node-swap-capacity>`. + + Support for `cgroup v1` is removed. diff --git a/releases/release-1.28/release-notes/maps/pr-118770-map.yaml b/releases/release-1.28/release-notes/maps/pr-118770-map.yaml index 913f98f1c5d..88fe565bafa 100644 --- a/releases/release-1.28/release-notes/maps/pr-118770-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118770-map.yaml @@ -1,6 +1,6 @@ -pr: 118770 -releasenote: - text: |- - With the `KubeletCgroupDriverFromCRI` feature gate enabled and sufficiently new version of a container - runtime, kubelet automatically detects the cgroup driver config from the container runtime, eliminating - the need to specify the `cgroupDriver` configuration option (or `--cgroup-driver` flag) of kubelet. +pr: 118770 +releasenote: + text: |- + With the `KubeletCgroupDriverFromCRI` feature gate enabled and sufficiently new version of a container + runtime, kubelet automatically detects the cgroup driver config from the container runtime, eliminating + the need to specify the `cgroupDriver` configuration option (or `--cgroup-driver` flag) of kubelet. diff --git a/releases/release-1.28/release-notes/maps/pr-118772-map.yaml b/releases/release-1.28/release-notes/maps/pr-118772-map.yaml index 8c91b00fac5..505dc1f0082 100644 --- a/releases/release-1.28/release-notes/maps/pr-118772-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118772-map.yaml @@ -1,3 +1,3 @@ -pr: 118772 -releasenote: - text: Added handling for pods in podgc for `PodReplacementPolicy` or `PodDisruption`. +pr: 118772 +releasenote: + text: Added handling for pods in podgc for `PodReplacementPolicy` or `PodDisruption`. diff --git a/releases/release-1.28/release-notes/maps/pr-118774-map.yaml b/releases/release-1.28/release-notes/maps/pr-118774-map.yaml index 9fe0871ded3..ec6be471404 100644 --- a/releases/release-1.28/release-notes/maps/pr-118774-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118774-map.yaml @@ -1,3 +1,3 @@ -pr: 118774 -releasenote: - text: Updated cAdvisor to `v0.47.2` and fixed metrics in `cri-o` when a container restarts. +pr: 118774 +releasenote: + text: Updated cAdvisor to `v0.47.2` and fixed metrics in `cri-o` when a container restarts. diff --git a/releases/release-1.28/release-notes/maps/pr-118786-map.yaml b/releases/release-1.28/release-notes/maps/pr-118786-map.yaml index 4ee7a4beba5..53d09d27a53 100644 --- a/releases/release-1.28/release-notes/maps/pr-118786-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118786-map.yaml @@ -1,4 +1,4 @@ -pr: 118786 -releasenote: - text: As in Kubernetes `v1.26` and `v1.27`, resource claims do not get prepared by `kubelet` - when no container uses them. This was changed accidentally in [v1.28.0-alpha.1](https://github.com/kubernetes/kubernetes/releases/tag/v1.28.0-alpha.1). +pr: 118786 +releasenote: + text: As in Kubernetes `v1.26` and `v1.27`, resource claims do not get prepared by `kubelet` + when no container uses them. This was changed accidentally in [v1.28.0-alpha.1](https://github.com/kubernetes/kubernetes/releases/tag/v1.28.0-alpha.1). diff --git a/releases/release-1.28/release-notes/maps/pr-118808-map.yaml b/releases/release-1.28/release-notes/maps/pr-118808-map.yaml index a10e71c4e3d..6922a747104 100644 --- a/releases/release-1.28/release-notes/maps/pr-118808-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118808-map.yaml @@ -1,6 +1,6 @@ -pr: 118808 -releasenote: - text: |- - Revised `OpenAPI v2` fetching for CustomResourceDefinitions. CRDs are now aggregated lazily, - which improves resource usage during installation of many CRDs. As a result, the first request - to fetch the OpenAPI may be slower. +pr: 118808 +releasenote: + text: |- + Revised `OpenAPI v2` fetching for CustomResourceDefinitions. CRDs are now aggregated lazily, + which improves resource usage during installation of many CRDs. As a result, the first request + to fetch the OpenAPI may be slower. diff --git a/releases/release-1.28/release-notes/maps/pr-118810-map.yaml b/releases/release-1.28/release-notes/maps/pr-118810-map.yaml index 4813b0ef9cf..748dd73ce5f 100644 --- a/releases/release-1.28/release-notes/maps/pr-118810-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118810-map.yaml @@ -1,4 +1,4 @@ -pr: 118810 -releasenote: - text: Added `--concurrency` flag to configure the concurrency of `kubectl diff` - execution, defaults to 1 +pr: 118810 +releasenote: + text: Added `--concurrency` flag to configure the concurrency of `kubectl diff` + execution, defaults to 1 diff --git a/releases/release-1.28/release-notes/maps/pr-118812-map.yaml b/releases/release-1.28/release-notes/maps/pr-118812-map.yaml index c3e63720b9f..3516a2ebaab 100644 --- a/releases/release-1.28/release-notes/maps/pr-118812-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118812-map.yaml @@ -1,4 +1,4 @@ -pr: 118812 -releasenote: - text: Replaced `apiserver_storage_db_total_size_in_bytes` with `apiserver_storage_size_bytes` - metric. +pr: 118812 +releasenote: + text: Replaced `apiserver_storage_db_total_size_in_bytes` with `apiserver_storage_size_bytes` + metric. diff --git a/releases/release-1.28/release-notes/maps/pr-118816-map.yaml b/releases/release-1.28/release-notes/maps/pr-118816-map.yaml index f86b7b90ee4..def93fd2a4c 100644 --- a/releases/release-1.28/release-notes/maps/pr-118816-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118816-map.yaml @@ -1,4 +1,4 @@ -pr: 118816 -releasenote: - text: '`TopologyManagerPolicyOptions` feature-flag is promoted to beta and enabled - by default.' +pr: 118816 +releasenote: + text: '`TopologyManagerPolicyOptions` feature-flag is promoted to beta and enabled + by default.' diff --git a/releases/release-1.28/release-notes/maps/pr-118817-map.yaml b/releases/release-1.28/release-notes/maps/pr-118817-map.yaml index 86fcd6f81b0..d7c88378f6f 100644 --- a/releases/release-1.28/release-notes/maps/pr-118817-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118817-map.yaml @@ -1,4 +1,4 @@ -pr: 118817 -releasenote: - text: When a pod is done or not going to run, then `ResourceClaims` for it can be - reused by other pods or deleted. +pr: 118817 +releasenote: + text: When a pod is done or not going to run, then `ResourceClaims` for it can be + reused by other pods or deleted. diff --git a/releases/release-1.28/release-notes/maps/pr-118828-map.yaml b/releases/release-1.28/release-notes/maps/pr-118828-map.yaml index c84d081df29..a7136cd7b32 100644 --- a/releases/release-1.28/release-notes/maps/pr-118828-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118828-map.yaml @@ -1,5 +1,5 @@ -pr: 118828 -releasenote: - text: |- - Changed how KMS v2 encryption at rest can generate data encryption keys. - When you enable the `KMSv2KDF` feature gate (off by default), KMS v2 uses a key derivation function to generate single use data encryption keys from a secret seed combined with some random data. This eliminates the need for a counter based nonce while avoiding nonce collision concerns associated with AES-GCM's 12 byte nonce. +pr: 118828 +releasenote: + text: |- + Changed how KMS v2 encryption at rest can generate data encryption keys. + When you enable the `KMSv2KDF` feature gate (off by default), KMS v2 uses a key derivation function to generate single use data encryption keys from a secret seed combined with some random data. This eliminates the need for a counter based nonce while avoiding nonce collision concerns associated with AES-GCM's 12 byte nonce. diff --git a/releases/release-1.28/release-notes/maps/pr-118842-map.yaml b/releases/release-1.28/release-notes/maps/pr-118842-map.yaml index 0f026d21aad..979364198a7 100644 --- a/releases/release-1.28/release-notes/maps/pr-118842-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118842-map.yaml @@ -1,3 +1,3 @@ -pr: 118842 -releasenote: - text: Use table-driven test for `TestPerPodSchedulingMetrics`. +pr: 118842 +releasenote: + text: Use table-driven test for `TestPerPodSchedulingMetrics`. diff --git a/releases/release-1.28/release-notes/maps/pr-118865-map.yaml b/releases/release-1.28/release-notes/maps/pr-118865-map.yaml index 87cfee90bf4..b5a4a58d773 100644 --- a/releases/release-1.28/release-notes/maps/pr-118865-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118865-map.yaml @@ -1,4 +1,4 @@ -pr: 118865 -releasenote: - text: Added swap to stats to Summary API and Prometheus endpoints (stats/summary - and /metrics/resource). +pr: 118865 +releasenote: + text: Added swap to stats to Summary API and Prometheus endpoints (stats/summary + and /metrics/resource). diff --git a/releases/release-1.28/release-notes/maps/pr-118866-map.yaml b/releases/release-1.28/release-notes/maps/pr-118866-map.yaml index 49b65bbb400..439f29a207e 100644 --- a/releases/release-1.28/release-notes/maps/pr-118866-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118866-map.yaml @@ -1,4 +1,4 @@ -pr: 118866 -releasenote: - text: '`kubeadm`: added the `--allow-experimental-api` flag to "kubeadm config migrate/validate" - commands. It can be used to migrate or validate WIP/experimental APIs in the future.' +pr: 118866 +releasenote: + text: '`kubeadm`: added the `--allow-experimental-api` flag to "kubeadm config migrate/validate" + commands. It can be used to migrate or validate WIP/experimental APIs in the future.' diff --git a/releases/release-1.28/release-notes/maps/pr-118876-map.yaml b/releases/release-1.28/release-notes/maps/pr-118876-map.yaml index df540a8dc0e..022bee4e789 100644 --- a/releases/release-1.28/release-notes/maps/pr-118876-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118876-map.yaml @@ -1,4 +1,4 @@ -pr: 118876 -releasenote: - text: |- - `kubectl explain` should correctly work for all resources. +pr: 118876 +releasenote: + text: |- + `kubectl explain` should correctly work for all resources. diff --git a/releases/release-1.28/release-notes/maps/pr-118879-map.yaml b/releases/release-1.28/release-notes/maps/pr-118879-map.yaml index 8c2cdcbe27d..b9f80170c27 100644 --- a/releases/release-1.28/release-notes/maps/pr-118879-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118879-map.yaml @@ -1,3 +1,3 @@ -pr: 118879 -releasenote: - text: Fixed the discoverability of `apiregistration.k8s.io` in `openapi/v3` +pr: 118879 +releasenote: + text: Fixed the discoverability of `apiregistration.k8s.io` in `openapi/v3` diff --git a/releases/release-1.28/release-notes/maps/pr-118895-map.yaml b/releases/release-1.28/release-notes/maps/pr-118895-map.yaml index 9ea228f2d8e..df82c70b4b5 100644 --- a/releases/release-1.28/release-notes/maps/pr-118895-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118895-map.yaml @@ -1,3 +1,3 @@ -pr: 118895 -releasenote: - text: Added IP mode field to loadbalancer status ingress. +pr: 118895 +releasenote: + text: Added IP mode field to loadbalancer status ingress. diff --git a/releases/release-1.28/release-notes/maps/pr-118915-map.yaml b/releases/release-1.28/release-notes/maps/pr-118915-map.yaml index 728369a4033..3fd62d59f0d 100644 --- a/releases/release-1.28/release-notes/maps/pr-118915-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118915-map.yaml @@ -1,4 +1,4 @@ -pr: 118915 -releasenote: - text: The `NetworkPolicyLegacy` test suite (deprecated in `v1.21`) has now officially - been removed in favor of the new table driven e2e tests. +pr: 118915 +releasenote: + text: The `NetworkPolicyLegacy` test suite (deprecated in `v1.21`) has now officially + been removed in favor of the new table driven e2e tests. diff --git a/releases/release-1.28/release-notes/maps/pr-118922-map.yaml b/releases/release-1.28/release-notes/maps/pr-118922-map.yaml index 04bac5d446f..e5b173261e6 100644 --- a/releases/release-1.28/release-notes/maps/pr-118922-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118922-map.yaml @@ -1,6 +1,6 @@ -pr: 118922 -releasenote: - text: |- - `kubeadm`: generate CA certificates with a start time that is offset 5 - minutes in the past relative to the current system time to workaround cases of - clock desync. +pr: 118922 +releasenote: + text: |- + `kubeadm`: generate CA certificates with a start time that is offset 5 + minutes in the past relative to the current system time to workaround cases of + clock desync. diff --git a/releases/release-1.28/release-notes/maps/pr-118936-map.yaml b/releases/release-1.28/release-notes/maps/pr-118936-map.yaml index a4a177824d4..f8ece9da727 100644 --- a/releases/release-1.28/release-notes/maps/pr-118936-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118936-map.yaml @@ -1,7 +1,7 @@ -pr: 118936 -releasenote: - text: 'Dynamic resource allocation: when a claim uses "wait for first consumer" - allocation (the default), then it will now get deallocated after it was used by - a pod. That ensures that the next pod isn''t affected by previous scheduling decision - and that resources are not kept allocated unless really needed. If keeping a claim - allocated is desired, use "immediate allocation."' +pr: 118936 +releasenote: + text: 'Dynamic resource allocation: when a claim uses "wait for first consumer" + allocation (the default), then it will now get deallocated after it was used by + a pod. That ensures that the next pod isn''t affected by previous scheduling decision + and that resources are not kept allocated unless really needed. If keeping a claim + allocated is desired, use "immediate allocation."' diff --git a/releases/release-1.28/release-notes/maps/pr-118945-map.yaml b/releases/release-1.28/release-notes/maps/pr-118945-map.yaml index e50f9bbbcc6..d0937da59b1 100644 --- a/releases/release-1.28/release-notes/maps/pr-118945-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118945-map.yaml @@ -1,5 +1,5 @@ -pr: 118945 -releasenote: - text: |- - - Updated apiserver metric `request_filter_duration_seconds` to include a 10s, 15s and 30s bucket. - - Updated apiserver metric `request_wait_duration_seconds` to include a 15s bucket. +pr: 118945 +releasenote: + text: |- + - Updated apiserver metric `request_filter_duration_seconds` to include a 10s, 15s and 30s bucket. + - Updated apiserver metric `request_wait_duration_seconds` to include a 15s bucket. diff --git a/releases/release-1.28/release-notes/maps/pr-118953-map.yaml b/releases/release-1.28/release-notes/maps/pr-118953-map.yaml index efceba890d5..f9e0253bc0f 100644 --- a/releases/release-1.28/release-notes/maps/pr-118953-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118953-map.yaml @@ -1,3 +1,3 @@ -pr: 118953 -releasenote: - text: New staging repo has been created for the `EndpointSlice` reconciler. +pr: 118953 +releasenote: + text: New staging repo has been created for the `EndpointSlice` reconciler. diff --git a/releases/release-1.28/release-notes/maps/pr-118973-map.yaml b/releases/release-1.28/release-notes/maps/pr-118973-map.yaml index 5f2942d61a2..19558516924 100644 --- a/releases/release-1.28/release-notes/maps/pr-118973-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118973-map.yaml @@ -1,3 +1,3 @@ -pr: 118973 -releasenote: - text: The `GetAllocatableResources` podresources API endpoint is now GA. +pr: 118973 +releasenote: + text: The `GetAllocatableResources` podresources API endpoint is now GA. diff --git a/releases/release-1.28/release-notes/maps/pr-118986-map.yaml b/releases/release-1.28/release-notes/maps/pr-118986-map.yaml index 808e5b77f1f..24ffb3ebb03 100644 --- a/releases/release-1.28/release-notes/maps/pr-118986-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118986-map.yaml @@ -1,4 +1,4 @@ -pr: 118986 -releasenote: - text: Promoted `kubernetes_healthcheck` and `kubernetes_healthchecks_total` to `BETA` - stability level. +pr: 118986 +releasenote: + text: Promoted `kubernetes_healthcheck` and `kubernetes_healthchecks_total` to `BETA` + stability level. diff --git a/releases/release-1.28/release-notes/maps/pr-118990-map.yaml b/releases/release-1.28/release-notes/maps/pr-118990-map.yaml index 1abff79a537..39ddbd38256 100644 --- a/releases/release-1.28/release-notes/maps/pr-118990-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118990-map.yaml @@ -1,5 +1,5 @@ -pr: 118990 -releasenote: - text: Added new `CRDValidationRatcheting` alpha feature. During a PATCH or UPDATE - Validation Ratcheting discards errors thrown by unchanged portions of the resource - from most OpenAPI schema validations. +pr: 118990 +releasenote: + text: Added new `CRDValidationRatcheting` alpha feature. During a PATCH or UPDATE + Validation Ratcheting discards errors thrown by unchanged portions of the resource + from most OpenAPI schema validations. diff --git a/releases/release-1.28/release-notes/maps/pr-118999-map.yaml b/releases/release-1.28/release-notes/maps/pr-118999-map.yaml index a210e4a10a9..f20c4440d80 100644 --- a/releases/release-1.28/release-notes/maps/pr-118999-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-118999-map.yaml @@ -1,5 +1,5 @@ -pr: 118999 -releasenote: - text: kube-proxy service health returns http header `X-Load-Balancing-Endpoint-Weight` - with number of local endpoints. The same information is still available in response - body JSON `payload.LocalEndpoints`. +pr: 118999 +releasenote: + text: kube-proxy service health returns http header `X-Load-Balancing-Endpoint-Weight` + with number of local endpoints. The same information is still available in response + body JSON `payload.LocalEndpoints`. diff --git a/releases/release-1.28/release-notes/maps/pr-119007-map.yaml b/releases/release-1.28/release-notes/maps/pr-119007-map.yaml index 7a2f24b7979..d3904f3549a 100644 --- a/releases/release-1.28/release-notes/maps/pr-119007-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119007-map.yaml @@ -1,5 +1,5 @@ -pr: 119007 -releasenote: - text: '`KMSv1` is deprecated and will only receive security updates going forward. - Use `KMSv2` instead. In a future release, Set `--feature-gates=KMSv1=true` to - use the deprecated KMSv1 feature.' +pr: 119007 +releasenote: + text: '`KMSv1` is deprecated and will only receive security updates going forward. + Use `KMSv2` instead. In a future release, Set `--feature-gates=KMSv1=true` to + use the deprecated KMSv1 feature.' diff --git a/releases/release-1.28/release-notes/maps/pr-119008-map.yaml b/releases/release-1.28/release-notes/maps/pr-119008-map.yaml index 4a0d6e41e55..c9bd9131536 100644 --- a/releases/release-1.28/release-notes/maps/pr-119008-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119008-map.yaml @@ -1,12 +1,12 @@ -pr: 119008 -releasenote: - text: |- - New Metrics Added for Encryption Configuration Controller - - This release adds new metrics to the Encryption Configuration Controller to help monitor the automatic reloading of encryption configuration. The new metrics include: - - - `apiserver_encryption_config_controller_automatic_reload_failures_total`: Total number of failed automatic reloads of encryption configuration. - - `apiserver_encryption_config_controller_automatic_reload_success_total`: Total number of successful automatic reloads of encryption configuration. - - `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`: Timestamp of the last successful or failed automatic reload of encryption configuration. - - These metrics can be used to monitor the health of the Encryption Configuration Controller and to troubleshoot any issues that may arise during automatic reloading of encryption configuration. +pr: 119008 +releasenote: + text: |- + New Metrics Added for Encryption Configuration Controller + + This release adds new metrics to the Encryption Configuration Controller to help monitor the automatic reloading of encryption configuration. The new metrics include: + + - `apiserver_encryption_config_controller_automatic_reload_failures_total`: Total number of failed automatic reloads of encryption configuration. + - `apiserver_encryption_config_controller_automatic_reload_success_total`: Total number of successful automatic reloads of encryption configuration. + - `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`: Timestamp of the last successful or failed automatic reload of encryption configuration. + + These metrics can be used to monitor the health of the Encryption Configuration Controller and to troubleshoot any issues that may arise during automatic reloading of encryption configuration. diff --git a/releases/release-1.28/release-notes/maps/pr-119012-map.yaml b/releases/release-1.28/release-notes/maps/pr-119012-map.yaml index 1d3fa8c0934..c77edab4af9 100644 --- a/releases/release-1.28/release-notes/maps/pr-119012-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119012-map.yaml @@ -1,4 +1,4 @@ -pr: 119012 -releasenote: - text: 'kubelet: plugins for dynamic resource allocation may use the `v1alpha3` API - instead of v1alpha2 if they want to do prepare/unprepare operations in batches.' +pr: 119012 +releasenote: + text: 'kubelet: plugins for dynamic resource allocation may use the `v1alpha3` API + instead of v1alpha2 if they want to do prepare/unprepare operations in batches.' diff --git a/releases/release-1.28/release-notes/maps/pr-119033-map.yaml b/releases/release-1.28/release-notes/maps/pr-119033-map.yaml index 0a065006a63..870fd98ceda 100644 --- a/releases/release-1.28/release-notes/maps/pr-119033-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119033-map.yaml @@ -1,3 +1,3 @@ -pr: 119033 -releasenote: - text: Bumped kube-dns to `v1.22.23`. +pr: 119033 +releasenote: + text: Bumped kube-dns to `v1.22.23`. diff --git a/releases/release-1.28/release-notes/maps/pr-119078-map.yaml b/releases/release-1.28/release-notes/maps/pr-119078-map.yaml index 55f4d9edf3c..0b32f1cc088 100644 --- a/releases/release-1.28/release-notes/maps/pr-119078-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119078-map.yaml @@ -1,3 +1,3 @@ -pr: 119078 -releasenote: - text: Faster scheduling when `ResourceClaims` are involved. +pr: 119078 +releasenote: + text: Faster scheduling when `ResourceClaims` are involved. diff --git a/releases/release-1.28/release-notes/maps/pr-119095-map.yaml b/releases/release-1.28/release-notes/maps/pr-119095-map.yaml index 74aea7b6f52..e7565ca94a8 100644 --- a/releases/release-1.28/release-notes/maps/pr-119095-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119095-map.yaml @@ -1,3 +1,3 @@ -pr: 119095 -releasenote: - text: Updated debian-base image to `bookworm-v1.0.0`. +pr: 119095 +releasenote: + text: Updated debian-base image to `bookworm-v1.0.0`. diff --git a/releases/release-1.28/release-notes/maps/pr-119110-map.yaml b/releases/release-1.28/release-notes/maps/pr-119110-map.yaml index 52ac1884459..8765010878d 100644 --- a/releases/release-1.28/release-notes/maps/pr-119110-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119110-map.yaml @@ -1,4 +1,4 @@ -pr: 119110 -releasenote: - text: "Promoted the following apiserver flowcontrol metrics to Beta:\n\napiserver_flowcontrol_request_wait_duration_seconds - \napiserver_flowcontrol_current_executing_seats\napiserver_flowcontrol_nominal_limit_seats\napiserver_flowcontrol_rejected_requests_total\napiserver_flowcontrol_dispatched_requests_total\napiserver_flowcontrol_current_inqueue_requests\napiserver_flowcontrol_current_executing_requests" +pr: 119110 +releasenote: + text: "Promoted the following apiserver flowcontrol metrics to Beta:\n\napiserver_flowcontrol_request_wait_duration_seconds + \napiserver_flowcontrol_current_executing_seats\napiserver_flowcontrol_nominal_limit_seats\napiserver_flowcontrol_rejected_requests_total\napiserver_flowcontrol_dispatched_requests_total\napiserver_flowcontrol_current_inqueue_requests\napiserver_flowcontrol_current_executing_requests" diff --git a/releases/release-1.28/release-notes/maps/pr-119159-map.yaml b/releases/release-1.28/release-notes/maps/pr-119159-map.yaml index 7176e9b5bac..0506529a9e7 100644 --- a/releases/release-1.28/release-notes/maps/pr-119159-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119159-map.yaml @@ -1,4 +1,4 @@ -pr: 119159 -releasenote: - text: Declare Job as finished only after removing all Pod finalizers to avoid orphan - Pods. +pr: 119159 +releasenote: + text: Declare Job as finished only after removing all Pod finalizers to avoid orphan + Pods. diff --git a/releases/release-1.28/release-notes/maps/pr-119185-map.yaml b/releases/release-1.28/release-notes/maps/pr-119185-map.yaml index aa0a6b8c9ae..d1ee0a67c2e 100644 --- a/releases/release-1.28/release-notes/maps/pr-119185-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119185-map.yaml @@ -1,4 +1,4 @@ -pr: 119185 -releasenote: - text: Added reason to metric `attachdetach_controller_forced_detaches` in the attach - detach controller. +pr: 119185 +releasenote: + text: Added reason to metric `attachdetach_controller_forced_detaches` in the attach + detach controller. diff --git a/releases/release-1.28/release-notes/maps/pr-119225-map.yaml b/releases/release-1.28/release-notes/maps/pr-119225-map.yaml index 9444490a17c..7af0436fa8e 100644 --- a/releases/release-1.28/release-notes/maps/pr-119225-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119225-map.yaml @@ -1,3 +1,3 @@ -pr: 119225 -releasenote: - text: Bumped cadvisor version to `v0.47.3`. +pr: 119225 +releasenote: + text: Bumped cadvisor version to `v0.47.3`. diff --git a/releases/release-1.28/release-notes/maps/pr-119238-map.yaml b/releases/release-1.28/release-notes/maps/pr-119238-map.yaml index c1f050d3cd5..8f1f143f496 100644 --- a/releases/release-1.28/release-notes/maps/pr-119238-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119238-map.yaml @@ -1,3 +1,3 @@ -pr: 119238 -releasenote: - text: 'CRI: exposed commit memory bytes in container stats specific to Windows' +pr: 119238 +releasenote: + text: 'CRI: exposed commit memory bytes in container stats specific to Windows' diff --git a/releases/release-1.28/release-notes/maps/pr-119247-map.yaml b/releases/release-1.28/release-notes/maps/pr-119247-map.yaml index 37400854db9..c7619cfc61d 100644 --- a/releases/release-1.28/release-notes/maps/pr-119247-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119247-map.yaml @@ -1,3 +1,3 @@ -pr: 119247 -releasenote: - text: Updated `setcap` image to debian bookworm v1.0.0. +pr: 119247 +releasenote: + text: Updated `setcap` image to debian bookworm v1.0.0. diff --git a/releases/release-1.28/release-notes/maps/pr-119286-map.yaml b/releases/release-1.28/release-notes/maps/pr-119286-map.yaml index 757e929e0ce..6c84ab3077a 100644 --- a/releases/release-1.28/release-notes/maps/pr-119286-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119286-map.yaml @@ -1,3 +1,3 @@ -pr: 119286 -releasenote: - text: Removed `KUBECTL_EXPLAIN_OPENAPIV3` which is already redundant. +pr: 119286 +releasenote: + text: Removed `KUBECTL_EXPLAIN_OPENAPIV3` which is already redundant. diff --git a/releases/release-1.28/release-notes/maps/pr-119294-map.yaml b/releases/release-1.28/release-notes/maps/pr-119294-map.yaml index cf4db4d826f..6c6ae328d24 100644 --- a/releases/release-1.28/release-notes/maps/pr-119294-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119294-map.yaml @@ -1,3 +1,3 @@ -pr: 119294 -releasenote: - text: Extended the Job API for alpha version of `BackoffLimitPerIndex`. +pr: 119294 +releasenote: + text: Extended the Job API for alpha version of `BackoffLimitPerIndex`. diff --git a/releases/release-1.28/release-notes/maps/pr-119301-map.yaml b/releases/release-1.28/release-notes/maps/pr-119301-map.yaml index 99fcfcdeb1b..611978c871d 100644 --- a/releases/release-1.28/release-notes/maps/pr-119301-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119301-map.yaml @@ -1,3 +1,3 @@ -pr: 119301 -releasenote: - text: Added `podReplacementPolicy` and terminating field to job api. +pr: 119301 +releasenote: + text: Added `podReplacementPolicy` and terminating field to job api. diff --git a/releases/release-1.28/release-notes/maps/pr-119311-map.yaml b/releases/release-1.28/release-notes/maps/pr-119311-map.yaml index 09f6813e322..62c1f6dfaec 100644 --- a/releases/release-1.28/release-notes/maps/pr-119311-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119311-map.yaml @@ -1,4 +1,4 @@ -pr: 119311 -releasenote: - text: Added `apiserver_admission_match_condition_evaluation_seconds` and `apiserver_admission_match_condition_exclusions_total` - metrics. +pr: 119311 +releasenote: + text: Added `apiserver_admission_match_condition_evaluation_seconds` and `apiserver_admission_match_condition_exclusions_total` + metrics. diff --git a/releases/release-1.28/release-notes/maps/pr-119324-map.yaml b/releases/release-1.28/release-notes/maps/pr-119324-map.yaml index 99f1f747b7c..48d24d76ec8 100644 --- a/releases/release-1.28/release-notes/maps/pr-119324-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119324-map.yaml @@ -1,3 +1,3 @@ -pr: 119324 -releasenote: - text: Kubernetes is now built with Go `1.20.6`. +pr: 119324 +releasenote: + text: Kubernetes is now built with Go `1.20.6`. diff --git a/releases/release-1.28/release-notes/maps/pr-119351-map.yaml b/releases/release-1.28/release-notes/maps/pr-119351-map.yaml index 37994ba1df8..5c1b79fe00b 100644 --- a/releases/release-1.28/release-notes/maps/pr-119351-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119351-map.yaml @@ -1,4 +1,4 @@ -pr: 119351 -releasenote: - text: 'kubeadm: the limitation that the `ignorePreflightErrors` field can not be - set to `all` in kubeadm config file has been removed.' +pr: 119351 +releasenote: + text: 'kubeadm: the limitation that the `ignorePreflightErrors` field can not be + set to `all` in kubeadm config file has been removed.' diff --git a/releases/release-1.28/release-notes/maps/pr-119365-map.yaml b/releases/release-1.28/release-notes/maps/pr-119365-map.yaml index ce1bf35d6ab..dd02194ef21 100644 --- a/releases/release-1.28/release-notes/maps/pr-119365-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119365-map.yaml @@ -1,3 +1,3 @@ -pr: 119365 -releasenote: - text: Bumped `distroless-iptables` to 0.2.6 based on Go 1.20.6. +pr: 119365 +releasenote: + text: Bumped `distroless-iptables` to 0.2.6 based on Go 1.20.6. diff --git a/releases/release-1.28/release-notes/maps/pr-119374-map.yaml b/releases/release-1.28/release-notes/maps/pr-119374-map.yaml index d44e404af2e..c1e62e4e2c0 100644 --- a/releases/release-1.28/release-notes/maps/pr-119374-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119374-map.yaml @@ -1,6 +1,6 @@ -pr: 119374 -releasenote: - text: |- - The `IPTablesOwnershipCleanup` feature (KEP-3178) is now GA; kubelet no longer - creates the `KUBE-MARK-DROP` chain (which has been unused for several releases) - or the `KUBE-MARK-MASQ` chain (which is now only created by kube-proxy). +pr: 119374 +releasenote: + text: |- + The `IPTablesOwnershipCleanup` feature (KEP-3178) is now GA; kubelet no longer + creates the `KUBE-MARK-DROP` chain (which has been unused for several releases) + or the `KUBE-MARK-MASQ` chain (which is now only created by kube-proxy). diff --git a/releases/release-1.28/release-notes/maps/pr-119380-map.yaml b/releases/release-1.28/release-notes/maps/pr-119380-map.yaml index beff19782bb..57b2065e55c 100644 --- a/releases/release-1.28/release-notes/maps/pr-119380-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119380-map.yaml @@ -1,3 +1,3 @@ -pr: 119380 -releasenote: - text: Graduated `AdmissionWebhookMatchCondition` feature to beta. +pr: 119380 +releasenote: + text: Graduated `AdmissionWebhookMatchCondition` feature to beta. diff --git a/releases/release-1.28/release-notes/maps/pr-119390-map.yaml b/releases/release-1.28/release-notes/maps/pr-119390-map.yaml index 66e116e7c8a..b5b8a7b15b2 100644 --- a/releases/release-1.28/release-notes/maps/pr-119390-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119390-map.yaml @@ -1,3 +1,3 @@ -pr: 119390 -releasenote: - text: Implemented alpha support for a drop-in kubelet configuration directory. +pr: 119390 +releasenote: + text: Implemented alpha support for a drop-in kubelet configuration directory. diff --git a/releases/release-1.28/release-notes/maps/pr-119409-map.yaml b/releases/release-1.28/release-notes/maps/pr-119409-map.yaml index d280440653f..cbc63bde566 100644 --- a/releases/release-1.28/release-notes/maps/pr-119409-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119409-map.yaml @@ -1,4 +1,4 @@ -pr: 119409 -releasenote: - text: Promoted the feature gate `ValidtaingAdmissionPolicy` to beta, and it is turned - off by default. +pr: 119409 +releasenote: + text: Promoted the feature gate `ValidtaingAdmissionPolicy` to beta, and it is turned + off by default. diff --git a/releases/release-1.28/release-notes/maps/pr-119422-map.yaml b/releases/release-1.28/release-notes/maps/pr-119422-map.yaml index 8ad95ec50b3..004d09571ba 100644 --- a/releases/release-1.28/release-notes/maps/pr-119422-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119422-map.yaml @@ -1,3 +1,3 @@ -pr: 119422 -releasenote: - text: Switched back to `debian-base` instead of distroless for conformance image. +pr: 119422 +releasenote: + text: Switched back to `debian-base` instead of distroless for conformance image. diff --git a/releases/release-1.28/release-notes/maps/pr-119434-map.yaml b/releases/release-1.28/release-notes/maps/pr-119434-map.yaml index 9c981db749c..0d4088446ef 100644 --- a/releases/release-1.28/release-notes/maps/pr-119434-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-119434-map.yaml @@ -1,4 +1,4 @@ -pr: 119434 -releasenote: - text: Fixed computing backoff delay when using Job pod failure policy, by including - in the backoff delay calculation pod failures ignored from the backoffLimit counter. +pr: 119434 +releasenote: + text: Fixed computing backoff delay when using Job pod failure policy, by including + in the backoff delay calculation pod failures ignored from the backoffLimit counter. diff --git a/releases/release-1.28/release-notes/maps/pr-94021-map.yaml b/releases/release-1.28/release-notes/maps/pr-94021-map.yaml index 684e8545e4e..869131a8871 100644 --- a/releases/release-1.28/release-notes/maps/pr-94021-map.yaml +++ b/releases/release-1.28/release-notes/maps/pr-94021-map.yaml @@ -1,3 +1,3 @@ -pr: 94021 -releasenote: - text: Supported specifying a custom retry period for cloud `load-balancer` operations. +pr: 94021 +releasenote: + text: Supported specifying a custom retry period for cloud `load-balancer` operations. diff --git a/releases/release-1.28/release-notes/release-notes-draft.json b/releases/release-1.28/release-notes/release-notes-draft.json index 83026b2cf1a..1654ffab66b 100644 --- a/releases/release-1.28/release-notes/release-notes-draft.json +++ b/releases/release-1.28/release-notes/release-notes-draft.json @@ -1,7003 +1,7003 @@ -{ - "110472": { - "commit": "312bfa5505adff5ea568f9daf519daba3ef450f5", - "text": "Fixed bug where using the $deleteFromPrimitiveList directive in a strategic merge patch of certain fields would remove the other values from the list instead of the values specified.", - "markdown": "Fixed bug where using the $deleteFromPrimitiveList directive in a strategic merge patch of certain fields would remove the other values from the list instead of the values specified. ([#110472](https://github.com/kubernetes/kubernetes/pull/110472), [@brianpursley](https://github.com/brianpursley)) [SIG API Machinery]", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110472", - "pr_number": 110472, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "110477": { - "commit": "25a25e27a9bcb903ef5a74ae5dd92946d2dbd913", - "text": "Added support for pod `hostNetwork` field selector", - "markdown": "Added support for pod `hostNetwork` field selector ([#110477](https://github.com/kubernetes/kubernetes/pull/110477), [@halfcrazy](https://github.com/halfcrazy)) [SIG Apps and Node]", - "author": "halfcrazy", - "author_url": "https://github.com/halfcrazy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/110477", - "pr_number": 110477, - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "apps" - ], - "feature": true, - "duplicate": true - }, - "113209": { - "commit": "03b2e8418318d774247192f5b0d76543e52c47fd", - "text": "`kubelet` will ensure /etc/hosts file is mode 0644 regardless of umask.", - "markdown": "`kubelet` will ensure /etc/hosts file is mode 0644 regardless of umask. ([#113209](https://github.com/kubernetes/kubernetes/pull/113209), [@luozhiwenn](https://github.com/luozhiwenn))", - "author": "luozhiwenn", - "author_url": "https://github.com/luozhiwenn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113209", - "pr_number": 113209, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "113245": { - "commit": "b908e2710a974c7f8d9460cb45edf741408e1a3a", - "text": "Added warning for dup ports update/patching in pod's container ports and service ports.", - "markdown": "Added warning for dup ports update/patching in pod's container ports and service ports. ([#113245](https://github.com/kubernetes/kubernetes/pull/113245), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113245", - "pr_number": 113245, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "113362": { - "commit": "fe9ef26af5d90de9610153c73f47ce75805ee9d5", - "text": "`client-go`: Improved memory use of reflector caches when watching large numbers\nof objects which do not change frequently.", - "markdown": "`client-go`: Improved memory use of reflector caches when watching large numbers\n of objects which do not change frequently. ([#113362](https://github.com/kubernetes/kubernetes/pull/113362), [@sxllwx](https://github.com/sxllwx))", - "author": "sxllwx", - "author_url": "https://github.com/sxllwx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113362", - "pr_number": 113362, - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery" - ] - }, - "113969": { - "commit": "b35ffd1dcb1e2a745fe7b1337f244efdcdd0cdca", - "text": "NONE", - "markdown": "NONE ([#113969](https://github.com/kubernetes/kubernetes/pull/113969), [@Octopusjust](https://github.com/Octopusjust))", - "author": "Octopusjust", - "author_url": "https://github.com/Octopusjust", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113969", - "pr_number": 113969, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "113994": { - "commit": "28296ba59e179d755ba908e195764141b4ecef2e", - "text": "Migrated the certificate controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the certificate controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113994](https://github.com/kubernetes/kubernetes/pull/113994), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Apps, Auth, Instrumentation and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113994", - "pr_number": 113994, - "areas": [ - "test", - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "114068": { - "commit": "8d494c49d1279350f800bc9addf41c4df9036332", - "text": "The feature gates `DisableAcceleratorUsageMetrics` and `PodSecurity` that graduated to GA and were unconditionally enabled have been removed in v1.28.", - "markdown": "The feature gates `DisableAcceleratorUsageMetrics` and `PodSecurity` that graduated to GA and were unconditionally enabled have been removed in v1.28. ([#114068](https://github.com/kubernetes/kubernetes/pull/114068), [@cyclinder](https://github.com/cyclinder)) [SIG API Machinery, Node, Scheduling and Storage]", - "author": "cyclinder", - "author_url": "https://github.com/cyclinder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114068", - "pr_number": 114068, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "api-machinery" - ], - "duplicate": true - }, - "114307": { - "commit": "a9e40bd7c6609b89bf4eef01f18de062629baf7f", - "text": "Graduated the `ProbeTerminationGracePeriod` feature gate to GA.", - "markdown": "Graduated the `ProbeTerminationGracePeriod` feature gate to GA. ([#114307](https://github.com/kubernetes/kubernetes/pull/114307), [@rphillips](https://github.com/rphillips))", - "author": "rphillips", - "author_url": "https://github.com/rphillips", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114307", - "pr_number": 114307, - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "apps" - ], - "feature": true, - "duplicate": true - }, - "114471": { - "commit": "9c15d75f23402badbc2930aea7bef0ef4901248c", - "text": "Migrated `pod-security-admission` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated `pod-security-admission` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#114471](https://github.com/kubernetes/kubernetes/pull/114471), [@Namanl2001](https://github.com/Namanl2001)) [SIG Apps and Auth]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "Namanl2001", - "author_url": "https://github.com/Namanl2001", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114471", - "pr_number": 114471, - "areas": [ - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "apps" - ], - "feature": true, - "duplicate": true - }, - "114530": { - "commit": "3267dd9d5294893580538e98c1e410f64583c0cd", - "text": "Added a new command line argument `--interactive` to kubectl. The new command line argument lets a user confirm deletion requests per resource interactively.", - "markdown": "Added a new command line argument `--interactive` to kubectl. The new command line argument lets a user confirm deletion requests per resource interactively. ([#114530](https://github.com/kubernetes/kubernetes/pull/114530), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114530", - "pr_number": 114530, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "114606": { - "commit": "70033bf84301d64f079dd7c1ca19b05d57a39bee", - "text": "Fixed a bug that unintentionally overrides custom Accept headers in http (live-/readiness)-probes if the header is in lowercase.", - "markdown": "Fixed a bug that unintentionally overrides custom Accept headers in http (live-/readiness)-probes if the header is in lowercase. ([#114606](https://github.com/kubernetes/kubernetes/pull/114606), [@tuunit](https://github.com/tuunit))", - "author": "tuunit", - "author_url": "https://github.com/tuunit", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114606", - "pr_number": 114606, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true - }, - "114746": { - "commit": "eb78b75a2c349df67ef2080b438e980512da1df8", - "text": "NONE", - "markdown": "NONE ([#114746](https://github.com/kubernetes/kubernetes/pull/114746), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114746", - "pr_number": 114746, - "areas": [ - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "114849": { - "commit": "2e93c65eff5979e21178d9d7117916e49af29838", - "text": "Users will no longer see an error for failed events caused due to terminating namespace.", - "markdown": "Users will no longer see an error for failed events caused due to terminating namespace. ([#114849](https://github.com/kubernetes/kubernetes/pull/114849), [@padlar](https://github.com/padlar)) [SIG API Machinery]", - "author": "padlar", - "author_url": "https://github.com/padlar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114849", - "pr_number": 114849, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "114875": { - "commit": "b63618a7393689cad5143135f6660e8def8c9d25", - "text": "NONE", - "markdown": "NONE ([#114875](https://github.com/kubernetes/kubernetes/pull/114875), [@prrajput1199](https://github.com/prrajput1199))", - "author": "prrajput1199", - "author_url": "https://github.com/prrajput1199", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114875", - "pr_number": 114875, - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture" - ], - "do_not_publish": true - }, - "114909": { - "commit": "2075b20b28848f26637e7249a2647515ff253b43", - "text": "`kubectl expose` supports the creation of different protocol services on the same port.", - "markdown": "`kubectl expose` supports the creation of different protocol services on the same port. ([#114909](https://github.com/kubernetes/kubernetes/pull/114909), [@aimuz](https://github.com/aimuz))", - "author": "aimuz", - "author_url": "https://github.com/aimuz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114909", - "pr_number": 114909, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "115122": { - "commit": "ad72319eced8e800c0ed3b1564c87e343b0b2430", - "text": "// we want to leverage the behavior of the endpoint /auth\ntype TestServer struct {\n\thttpServer *httptest.Server\n\ttokenHandler *MockTokenHandler\n\tjwksHandler *MockJWKsHandler\n\n /* Create handler interface in file test/utils/oidc/handlers.go\n generate its mock implementation and inject it into the server */\n authHandler *MockAuthHandler\n\n\tTearDownFn func()\n}\n\n// Create handler's getter to be able to have access and adjust handler in a calling code\nfunc (ts *TestServer) AuthHandler() *MockAuthHandler {\n\treturn ts.authHandler\n}\n\nfunc BuildAndRunTestServer(t *testing.T, caPath, caKeyPath string) *TestServer { \n... \n // Change auth HTTP handler\n\tmux.HandleFunc(authWebPath, func(writer http.ResponseWriter, request *http.Request) { \n\t\tresult, err := oidcServer.authHandler.Authenticate()\n\t\tif err != nil {\n\t\t\thttp.Error(writer, err.Error(), http.StatusBadRequest)\n\n\t\t\treturn\n\t\t}\n\n\t\twriter.Header().Add(\"Content-Type\", \"application/json\")\n\t\twriter.WriteHeader(http.StatusOK)\n\n\t\terr = json.NewEncoder(writer).Encode(result)\n\t\trequire.NoError(t, err)\n\n\t\treturn \n\t}) \n...", - "markdown": "// we want to leverage the behavior of the endpoint /auth\n type TestServer struct {\n \thttpServer *httptest.Server\n \ttokenHandler *MockTokenHandler\n \tjwksHandler *MockJWKsHandler\n \n /* Create handler interface in file test/utils/oidc/handlers.go\n generate its mock implementation and inject it into the server */\n authHandler *MockAuthHandler\n \n \tTearDownFn func()\n }\n \n // Create handler's getter to be able to have access and adjust handler in a calling code\n func (ts *TestServer) AuthHandler() *MockAuthHandler {\n \treturn ts.authHandler\n }\n \n func BuildAndRunTestServer(t *testing.T, caPath, caKeyPath string) *TestServer { \n ... \n // Change auth HTTP handler\n \tmux.HandleFunc(authWebPath, func(writer http.ResponseWriter, request *http.Request) { \n \t\tresult, err := oidcServer.authHandler.Authenticate()\n \t\tif err != nil {\n \t\t\thttp.Error(writer, err.Error(), http.StatusBadRequest)\n \n \t\t\treturn\n \t\t}\n \n \t\twriter.Header().Add(\"Content-Type\", \"application/json\")\n \t\twriter.WriteHeader(http.StatusOK)\n \n \t\terr = json.NewEncoder(writer).Encode(result)\n \t\trequire.NoError(t, err)\n \n \t\treturn \n \t}) \n ... ([#115122](https://github.com/kubernetes/kubernetes/pull/115122), [@r-erema](https://github.com/r-erema)) [SIG Auth and Testing]", - "author": "r-erema", - "author_url": "https://github.com/r-erema", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115122", - "pr_number": 115122, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "115133": { - "commit": "0c969ad66045a484982cf8b5b183e2509672197f", - "text": "Enabled the `node-local` kubelet podresources API endpoint on windows, alongside unix.", - "markdown": "Enabled the `node-local` kubelet podresources API endpoint on windows, alongside unix. ([#115133](https://github.com/kubernetes/kubernetes/pull/115133), [@ffromani](https://github.com/ffromani))", - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115133", - "pr_number": 115133, - "areas": [ - "test", - "kubelet", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "windows", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "115295": { - "commit": "8f1852bb44ababdc93e3e4f8791b893565995061", - "text": "Migrated the `EndpointSlice` and `EndpointSliceMirroring` controllers (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the `EndpointSlice` and `EndpointSliceMirroring` controllers (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#115295](https://github.com/kubernetes/kubernetes/pull/115295), [@Namanl2001](https://github.com/Namanl2001)) [SIG API Machinery, Apps, Network and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "Namanl2001", - "author_url": "https://github.com/Namanl2001", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115295", - "pr_number": 115295, - "areas": [ - "test", - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "115357": { - "commit": "1c7e87cff27aa009488a9d55342220e223d5c146", - "text": "Allow to monitor client-go DNS resolver latencies via `rest_client_dns_resolution_duration_seconds` Prometheus metric.", - "markdown": "Allow to monitor client-go DNS resolver latencies via `rest_client_dns_resolution_duration_seconds` Prometheus metric. ([#115357](https://github.com/kubernetes/kubernetes/pull/115357), [@mfojtik](https://github.com/mfojtik))", - "author": "mfojtik", - "author_url": "https://github.com/mfojtik", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115357", - "pr_number": 115357, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "115398": { - "commit": "87f3acf7f66787d9cbfad99f5ffdff1475aa9896", - "text": "NodeVolumeLimits implement the `PreFilter` extension point for skipping the Filter phase if the Pod doesn't use volumes with limits.", - "markdown": "NodeVolumeLimits implement the `PreFilter` extension point for skipping the Filter phase if the Pod doesn't use volumes with limits. ([#115398](https://github.com/kubernetes/kubernetes/pull/115398), [@tangwz](https://github.com/tangwz)) [SIG Scheduling]", - "author": "tangwz", - "author_url": "https://github.com/tangwz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115398", - "pr_number": 115398, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "duplicate_kind": true - }, - "115399": { - "commit": "779abe6ebecee5dad6cef99f1dc94eef98fe8684", - "text": "Added a warning that TLS 1.3 ciphers are not configurable.", - "markdown": "Added a warning that TLS 1.3 ciphers are not configurable. ([#115399](https://github.com/kubernetes/kubernetes/pull/115399), [@3u13r](https://github.com/3u13r)) [SIG API Machinery and Node]", - "author": "3u13r", - "author_url": "https://github.com/3u13r", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115399", - "pr_number": 115399, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "documentation", - "api-change" - ], - "sigs": [ - "node", - "api-machinery" - ], - "duplicate": true, - "duplicate_kind": true - }, - "115554": { - "commit": "c35a2775b2719a721a3f4f1fbf8b0e07e423a7bd", - "text": "`kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate\nis now available as alpha (off by default). When enabled, the `legacy-service-account-token-cleaner`\ncontroller loop removes service account token secrets that have not been used\nin the time specified by `--legacy-service-account-token-clean-up-period` (defaulting\nto one year), **and are** referenced from the `.secrets` list of a ServiceAccount\nobject, **and are not** referenced from pods.", - "markdown": "`kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate\n is now available as alpha (off by default). When enabled, the `legacy-service-account-token-cleaner`\n controller loop removes service account token secrets that have not been used\n in the time specified by `--legacy-service-account-token-clean-up-period` (defaulting\n to one year), **and are** referenced from the `.secrets` list of a ServiceAccount\n object, **and are not** referenced from pods. ([#115554](https://github.com/kubernetes/kubernetes/pull/115554), [@yt2985](https://github.com/yt2985))", - "author": "yt2985", - "author_url": "https://github.com/yt2985", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115554", - "pr_number": 115554, - "areas": [ - "test", - "release-eng", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "testing", - "release" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115694": { - "commit": "e1af716860896c2750672cfa0dddb8e41e30f75b", - "text": "Fixed bug where explain was not properly respecting jsonpaths.", - "markdown": "Fixed bug where explain was not properly respecting jsonpaths. ([#115694](https://github.com/kubernetes/kubernetes/pull/115694), [@mpuckett159](https://github.com/mpuckett159))", - "author": "mpuckett159", - "author_url": "https://github.com/mpuckett159", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115694", - "pr_number": 115694, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "115754": { - "commit": "ffb4172ff18ff9edc19adff9c657da81c25aaf92", - "text": "Added new config option `delayCacheUntilActive` to `KubeSchedulerConfiguration` that can provide a tradeoff between memory efficiency and scheduling speed when their leadership is updated in `kube-scheduler`", - "markdown": "Added new config option `delayCacheUntilActive` to `KubeSchedulerConfiguration` that can provide a tradeoff between memory efficiency and scheduling speed when their leadership is updated in `kube-scheduler` ([#115754](https://github.com/kubernetes/kubernetes/pull/115754), [@linxiulei](https://github.com/linxiulei)) [SIG API Machinery and Scheduling]", - "author": "linxiulei", - "author_url": "https://github.com/linxiulei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115754", - "pr_number": 115754, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "115813": { - "commit": "4f6a750bbfa5ef114cf24371a098e91074e0d371", - "text": "`kube-controller-manager` and `cloud-controller-manager` have changed the\nname of controllers that can be turned on/off that are passed to the `--controllers`\nflag (e.g., `pod-garbage-collector-controller`). The old names (eg `podgc`) are\nalso accepted and aliased to the new names.", - "markdown": "`kube-controller-manager` and `cloud-controller-manager` have changed the\n name of controllers that can be turned on/off that are passed to the `--controllers`\n flag (e.g., `pod-garbage-collector-controller`). The old names (eg `podgc`) are\n also accepted and aliased to the new names. ([#115813](https://github.com/kubernetes/kubernetes/pull/115813), [@atiratree](https://github.com/atiratree))", - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115813", - "pr_number": 115813, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "duplicate": true - }, - "115835": { - "commit": "6a79a8a57c0924343fba2ffe9aa6cad19a3e257a", - "text": "Fixed the `preStop` hook. This will now block the pod termination grace period.", - "markdown": "Fixed the `preStop` hook. This will now block the pod termination grace period. ([#115835](https://github.com/kubernetes/kubernetes/pull/115835), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115835", - "pr_number": 115835, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "115843": { - "commit": "d6471d01a43d575351ec505f95a3691c977caccd", - "text": "Removed withdrawn feature `NetworkPolicyStatus`.", - "markdown": "Removed withdrawn feature `NetworkPolicyStatus`. ([#115843](https://github.com/kubernetes/kubernetes/pull/115843), [@rikatz](https://github.com/rikatz))", - "documentation": [ - { - "description": "[KEP](", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2943-networkpolicy-status)", - "type": "KEP" - } - ], - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115843", - "pr_number": 115843, - "areas": [ - "test", - "conformance", - "code-generation", - "network-policy" - ], - "kinds": [ - "cleanup", - "api-change", - "feature", - "deprecation" - ], - "sigs": [ - "network", - "api-machinery", - "apps", - "testing", - "architecture" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116104": { - "commit": "ff4eff24ac4fad5431aa89681717d6c4fe5733a4", - "text": "NONE", - "markdown": "NONE ([#116104](https://github.com/kubernetes/kubernetes/pull/116104), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116104", - "pr_number": 116104, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "116134": { - "commit": "4893c66a48df7281d91236704ae6ca99439a9340", - "text": "fix: After a Node is down and take some time to get back to up again, the mount point of the evicted Pods cannot be cleaned up successfully. (#111933) Meanwhile Kubelet will print the log `Orphaned pod \"xxx\" found, but error not a directory occurred when trying to remove the volumes dir` every 2 seconds. (#105536)", - "markdown": "Fix: After a Node is down and take some time to get back to up again, the mount point of the evicted Pods cannot be cleaned up successfully. (#111933) Meanwhile Kubelet will print the log `Orphaned pod \"xxx\" found, but error not a directory occurred when trying to remove the volumes dir` every 2 seconds. (#105536) ([#116134](https://github.com/kubernetes/kubernetes/pull/116134), [@cvvz](https://github.com/cvvz)) [SIG Node and Storage]", - "author": "cvvz", - "author_url": "https://github.com/cvvz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116134", - "pr_number": 116134, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true - }, - "116138": { - "commit": "de109979a141c668c4f5faf9288f417ee6a23d68", - "text": "fix: the volume is not detached after the pod and PVC objects are deleted.", - "markdown": "Fix: The volume is not detached after the pod and PVC objects are deleted. ([#116138](https://github.com/kubernetes/kubernetes/pull/116138), [@cvvz](https://github.com/cvvz)) [SIG Storage]", - "author": "cvvz", - "author_url": "https://github.com/cvvz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116138", - "pr_number": 116138, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "116208": { - "commit": "3cd81876bdb8f20d90f4224f6f540baec9d65b3a", - "text": "The short names `fs` and `plc` were introduced for the resources `flowschemas` and `prioritylevelconfigurations`, respectively.", - "markdown": "The short names `fs` and `plc` were introduced for the resources `flowschemas` and `prioritylevelconfigurations`, respectively. ([#116208](https://github.com/kubernetes/kubernetes/pull/116208), [@kkkkun](https://github.com/kkkkun))", - "author": "kkkkun", - "author_url": "https://github.com/kkkkun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116208", - "pr_number": 116208, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "do_not_publish": true - }, - "116254": { - "commit": "f55f2785e2bf61a23a2a235b13e7b50899591681", - "text": "kubelet: security of dynamic resource allocation was enhanced by limiting node access to those objects that are needed on the node.", - "markdown": "Kubelet: security of dynamic resource allocation was enhanced by limiting node access to those objects that are needed on the node. ([#116254](https://github.com/kubernetes/kubernetes/pull/116254), [@pohly](https://github.com/pohly)) [SIG Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116254", - "pr_number": 116254, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "116327": { - "commit": "75f17eb38fc8bbcb360d43dffce6e27a7159d43f", - "text": "`kube-apiserver`: Improved memory use when performing `GetList` on the cache.", - "markdown": "`kube-apiserver`: Improved memory use when performing `GetList` on the cache. ([#116327](https://github.com/kubernetes/kubernetes/pull/116327), [@sxllwx](https://github.com/sxllwx))", - "author": "sxllwx", - "author_url": "https://github.com/sxllwx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116327", - "pr_number": 116327, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "116335": { - "commit": "a776bf046286b578bc6259cca7e5bc0d0fb14e59", - "text": "Removed `resizeStatus` enum from `pvc.Status` and replaced with `AllocatedResourceStatus`.", - "markdown": "Removed `resizeStatus` enum from `pvc.Status` and replaced with `AllocatedResourceStatus`. ([#116335](https://github.com/kubernetes/kubernetes/pull/116335), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Apps, Auth, Node, Storage and Testing]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116335", - "pr_number": 116335, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "auth", - "apps", - "testing" - ], - "duplicate": true - }, - "116374": { - "commit": "62d00139e8712e672de29c23f4adfe7cf6039906", - "text": "NONE", - "markdown": "NONE ([#116374](https://github.com/kubernetes/kubernetes/pull/116374), [@sxllwx](https://github.com/sxllwx))", - "author": "sxllwx", - "author_url": "https://github.com/sxllwx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116374", - "pr_number": 116374, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "116376": { - "commit": "1241ddc56774f3a13933557209eb8f1ece9c167d", - "text": "During device plugin allocation, resources requested by the pod can only be allocated if the device plugin has registered itself to kubelet AND healthy devices are present on the node to be allocated. If these conditions are not sattsfied, the pod would fail with `UnexpectedAdmissionError` error.", - "markdown": "During device plugin allocation, resources requested by the pod can only be allocated if the device plugin has registered itself to kubelet AND healthy devices are present on the node to be allocated. If these conditions are not sattsfied, the pod would fail with `UnexpectedAdmissionError` error. ([#116376](https://github.com/kubernetes/kubernetes/pull/116376), [@swatisehgal](https://github.com/swatisehgal)) [SIG Node and Testing]", - "author": "swatisehgal", - "author_url": "https://github.com/swatisehgal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116376", - "pr_number": 116376, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "116408": { - "commit": "94a15929cf13354fdf3747cb266d511154f8c97b", - "text": "Kubelet will now skip pod resource checks when the request is zero.", - "markdown": "Kubelet will now skip pod resource checks when the request is zero. ([#116408](https://github.com/kubernetes/kubernetes/pull/116408), [@ChenLingPeng](https://github.com/ChenLingPeng))", - "author": "ChenLingPeng", - "author_url": "https://github.com/ChenLingPeng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116408", - "pr_number": 116408, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "116429": { - "commit": "0e1409833360adf6b46ca5ae3ba355169d065285", - "text": "The new feature gate \"SidecarContainers\" is now available. This feature introduces sidecar containers, a new type of init container that starts before other containers but remains running for the full duration of the pod's lifecycle and will not block pod termination.", - "markdown": "The new feature gate \"SidecarContainers\" is now available. This feature introduces sidecar containers, a new type of init container that starts before other containers but remains running for the full duration of the pod's lifecycle and will not block pod termination. ([#116429](https://github.com/kubernetes/kubernetes/pull/116429), [@gjkim42](https://github.com/gjkim42)) [SIG API Machinery, Apps, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", - "type": "KEP" - } - ], - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116429", - "pr_number": 116429, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "apps", - "testing" - ], - "duplicate": true - }, - "116443": { - "commit": "6ffca501361adadfb133ec1b8f76a2c2a23836dc", - "text": "In the course of admitting a single request, the ValidatingAdmissionPolicy plugin will perform no more than one authorization check per unique authorizer expression. All evaluations of identical authorizer expressions will produce the same decision.", - "markdown": "In the course of admitting a single request, the ValidatingAdmissionPolicy plugin will perform no more than one authorization check per unique authorizer expression. All evaluations of identical authorizer expressions will produce the same decision. ([#116443](https://github.com/kubernetes/kubernetes/pull/116443), [@benluddy](https://github.com/benluddy)) [SIG API Machinery and Testing]", - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116443", - "pr_number": 116443, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "116469": { - "commit": "f3a070f9c684d9335b6df91ef2f3ce207629882c", - "text": "PersistentVolumes have a new `LastPhaseTransitionTime` field which holds a timestamp of when the volume last transitioned its phase.", - "markdown": "PersistentVolumes have a new `LastPhaseTransitionTime` field which holds a timestamp of when the volume last transitioned its phase. ([#116469](https://github.com/kubernetes/kubernetes/pull/116469), [@RomanBednar](https://github.com/RomanBednar))", - "author": "RomanBednar", - "author_url": "https://github.com/RomanBednar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116469", - "pr_number": 116469, - "areas": [ - "test", - "apiserver", - "release-eng", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "auth", - "apps", - "testing", - "release" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116470": { - "commit": "f34365789d4161f1b47f998bc82250620eed183b", - "text": "[Kube-proxy]: Implemented connection draining for terminating nodes.", - "markdown": "[Kube-proxy]: Implemented connection draining for terminating nodes. ([#116470](https://github.com/kubernetes/kubernetes/pull/116470), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116470", - "pr_number": 116470, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "116482": { - "commit": "2f1db33dd54cbdba52c21c75a53c5387f1cd14ab", - "text": "Setting a mirror pod's phase to Succeeded or Failed can prevent the corresponding static pod from restarting due mutation of a Kubelet cache.", - "markdown": "Setting a mirror pod's phase to Succeeded or Failed can prevent the corresponding static pod from restarting due mutation of a Kubelet cache. ([#116482](https://github.com/kubernetes/kubernetes/pull/116482), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116482", - "pr_number": 116482, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "116506": { - "commit": "b277afdf469c959955a2818b85fb1e4333ba3c11", - "text": "When retrieving event resources, the `reportingController` and `reportingInstance` fields in the event will contain values.", - "markdown": "When retrieving event resources, the `reportingController` and `reportingInstance` fields in the event will contain values. ([#116506](https://github.com/kubernetes/kubernetes/pull/116506), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery and Instrumentation]", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116506", - "pr_number": 116506, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "116525": { - "commit": "cfeb83d56b039ec05eff197e4178c3dd067b1c4b", - "text": "The kubelet podresources endpoint is GA and always enabled.", - "markdown": "The kubelet podresources endpoint is GA and always enabled. ([#116525](https://github.com/kubernetes/kubernetes/pull/116525), [@ffromani](https://github.com/ffromani)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/606", - "type": "KEP" - } - ], - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116525", - "pr_number": 116525, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "116526": { - "commit": "c2efaa79088c554da4df2a07c3067be967aa7d60", - "text": "Updated `Cluster Autosaler` to version 1.26.1.", - "markdown": "Updated `Cluster Autosaler` to version 1.26.1. ([#116526](https://github.com/kubernetes/kubernetes/pull/116526), [@pacoxu](https://github.com/pacoxu)) [SIG Autoscaling and Cloud Provider]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116526", - "pr_number": 116526, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "autoscaling", - "cloud-provider" - ], - "duplicate": true - }, - "116530": { - "commit": "03486cec21579ce77304bb7265ecb90516418301", - "text": "kubelet: un-deprecated `--provider-id` flag.", - "markdown": "Kubelet: un-deprecated `--provider-id` flag. ([#116530](https://github.com/kubernetes/kubernetes/pull/116530), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116530", - "pr_number": 116530, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true - }, - "116635": { - "commit": "4483bf66fe58e9a65a025288179078374fc791b0", - "text": "Migrated the interpodaffinity scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the interpodaffinity scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116635](https://github.com/kubernetes/kubernetes/pull/116635), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116635", - "pr_number": 116635, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "duplicate": true - }, - "116649": { - "commit": "67cc86d00b23b27fb102367d5a9ce64af2f4acce", - "text": "Updated `cri-tools` to `v1.26.1`.", - "markdown": "Updated `cri-tools` to `v1.26.1`. ([#116649](https://github.com/kubernetes/kubernetes/pull/116649), [@saschagrunert](https://github.com/saschagrunert)) [SIG Architecture and Release]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116649", - "pr_number": 116649, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "release", - "architecture" - ], - "duplicate": true - }, - "116672": { - "commit": "3c076e4b7d5b348d4f6d506bcccda5f25c38cc86", - "text": "Added a container image for `kubectl` at `registry.k8s.io/kubectl` across the same architectures as other images (linux/amd64 linux/arm64 linux/s390x linux/ppc64le)", - "markdown": "Added a container image for `kubectl` at `registry.k8s.io/kubectl` across the same architectures as other images (linux/amd64 linux/arm64 linux/s390x linux/ppc64le) ([#116672](https://github.com/kubernetes/kubernetes/pull/116672), [@dims](https://github.com/dims)) [SIG Architecture and Release]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116672", - "pr_number": 116672, - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "116681": { - "commit": "27f5601182382ff5ca5b94bb24e42d479d3a370f", - "text": "Fixed an issue where the API server did not send impersonated UID to authentication webhooks.", - "markdown": "Fixed an issue where the API server did not send impersonated UID to authentication webhooks. ([#116681](https://github.com/kubernetes/kubernetes/pull/116681), [@stlaz](https://github.com/stlaz)) [SIG API Machinery and Auth]", - "author": "stlaz", - "author_url": "https://github.com/stlaz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116681", - "pr_number": 116681, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true - }, - "116685": { - "commit": "f66e1a3386021ab6fc3f4f705a2744f9ffae8d71", - "text": "`kube-apiserver` will now always remove its endpoint from Kubernetes service during\ngraceful shutdown (even if it's the only/last one).", - "markdown": "`kube-apiserver` will now always remove its endpoint from Kubernetes service during\n graceful shutdown (even if it's the only/last one). ([#116685](https://github.com/kubernetes/kubernetes/pull/116685), [@nayihz](https://github.com/nayihz))", - "author": "nayihz", - "author_url": "https://github.com/nayihz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116685", - "pr_number": 116685, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "116690": { - "commit": "d48c883372a1254d083922dd65c09882e59f95b2", - "text": "Updated static pods are restarted 2s faster by correcting a safe but non-optimal ordering bug.", - "markdown": "Updated static pods are restarted 2s faster by correcting a safe but non-optimal ordering bug. ([#116690](https://github.com/kubernetes/kubernetes/pull/116690), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116690", - "pr_number": 116690, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "116720": { - "commit": "80dab4127ba6711bc56426a5394aea481e390a66", - "text": "Changed `kubectl version` default output to be identical to what `kubectl version --short` printed,\nand removed `--short` flag entirely.", - "markdown": "Changed `kubectl version` default output to be identical to what `kubectl version --short` printed,\n and removed `--short` flag entirely. ([#116720](https://github.com/kubernetes/kubernetes/pull/116720), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116720", - "pr_number": 116720, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "116723": { - "commit": "74ad7c397d849cd03566b175ec9068d5c2d06326", - "text": "Marked the feature gate `ExperimentalHostUserNamespaceDefaulting` as deprecated.\nEnabling the feature gate already had no effect; the deprecation allows for removing the feature gate in a future release.", - "markdown": "Marked the feature gate `ExperimentalHostUserNamespaceDefaulting` as deprecated.\n Enabling the feature gate already had no effect; the deprecation allows for removing the feature gate in a future release. ([#116723](https://github.com/kubernetes/kubernetes/pull/116723), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node]", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116723", - "pr_number": 116723, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "116729": { - "commit": "ddbf3575a7f32503c02c1894a1d7dff8c29e766a", - "text": "Scheduler now waits for handlers to finish syncing before the scheduling cycles start.", - "markdown": "Scheduler now waits for handlers to finish syncing before the scheduling cycles start. ([#116729](https://github.com/kubernetes/kubernetes/pull/116729), [@AxeZhan](https://github.com/AxeZhan))", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116729", - "pr_number": 116729, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "116741": { - "commit": "0bb17a88fabfe4d5265b54ca705fcd54dfe5ab14", - "text": "The `ExpandedDNSConfig` feature has graduated to GA. 'ExpandedDNSConfig' feature was locked to default value and will be removed in v1.30. If you were setting this feature gate explicitly, please remove it now.", - "markdown": "The `ExpandedDNSConfig` feature has graduated to GA. 'ExpandedDNSConfig' feature was locked to default value and will be removed in v1.30. If you were setting this feature gate explicitly, please remove it now. ([#116741](https://github.com/kubernetes/kubernetes/pull/116741), [@gjkim42](https://github.com/gjkim42)) [SIG Apps, Network and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2595-expanded-dns-config", - "type": "KEP" - } - ], - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116741", - "pr_number": 116741, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "node", - "apps" - ], - "feature": true, - "duplicate": true - }, - "116748": { - "commit": "a38efaccc0a0bb66a7c1c73630fef012032d85b8", - "text": "Migrated the noderesources scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the noderesources scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116748](https://github.com/kubernetes/kubernetes/pull/116748), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116748", - "pr_number": 116748, - "areas": [ - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "116749": { - "commit": "d107037fbf5039ea4a6c490434d7f99acc8ade2c", - "text": "Added additional validation for endpoint IP configuration while iterating through queried endpoint list.", - "markdown": "Added additional validation for endpoint IP configuration while iterating through queried endpoint list. ([#116749](https://github.com/kubernetes/kubernetes/pull/116749), [@princepereira](https://github.com/princepereira))", - "author": "princepereira", - "author_url": "https://github.com/princepereira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116749", - "pr_number": 116749, - "kinds": [ - "cleanup", - "regression" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true, - "duplicate_kind": true - }, - "116755": { - "commit": "10a12165de5ebb5da1dd73163f790e90b181cd88", - "text": "Migrated `pkg/controller/endpoint` to contextual logging.", - "markdown": "Migrated `pkg/controller/endpoint` to contextual logging. ([#116755](https://github.com/kubernetes/kubernetes/pull/116755), [@my-git9](https://github.com/my-git9))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "my-git9", - "author_url": "https://github.com/my-git9", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116755", - "pr_number": 116755, - "areas": [ - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "apps", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "116797": { - "commit": "b44482a37c9ad8bd15f4f88294f86817fa38160a", - "text": "Migrated the podtopologyspread scheduler plugins to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the podtopologyspread scheduler plugins to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116797](https://github.com/kubernetes/kubernetes/pull/116797), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116797", - "pr_number": 116797, - "areas": [ - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "116829": { - "commit": "53772982be26ccfca8f8a9d3078bdc454b716c25", - "text": "Migrated the volumezone scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the volumezone scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116829](https://github.com/kubernetes/kubernetes/pull/116829), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116829", - "pr_number": 116829, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "duplicate": true - }, - "116835": { - "commit": "5170c25609cd43fcf9242b71852517dedf43a490", - "text": "Migrated `pkg/scheduler/framework/preemption` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated `pkg/scheduler/framework/preemption` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116835](https://github.com/kubernetes/kubernetes/pull/116835), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116835", - "pr_number": 116835, - "areas": [ - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "116842": { - "commit": "58e13496d6737725f3c8429707def0f576772aaa", - "text": "Migrated `pkg/scheduler/framework/runtime` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated `pkg/scheduler/framework/runtime` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116842](https://github.com/kubernetes/kubernetes/pull/116842), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116842", - "pr_number": 116842, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "duplicate": true - }, - "116849": { - "commit": "94d0bd24054d8cdd77f009caa1561d545de8b33a", - "text": "Updated the scheduler interface and cache methods to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Updated the scheduler interface and cache methods to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116849](https://github.com/kubernetes/kubernetes/pull/116849), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116849", - "pr_number": 116849, - "areas": [ - "test", - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "116865": { - "commit": "5f23f835879b514e9bf16809059b38957d20a486", - "text": "Fixed `creationTimestamp: null` causing unnecessary writes to etcd.", - "markdown": "Fixed `creationTimestamp: null` causing unnecessary writes to etcd. ([#116865](https://github.com/kubernetes/kubernetes/pull/116865), [@alexzielenski](https://github.com/alexzielenski))", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116865", - "pr_number": 116865, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "116879": { - "commit": "1e0b4c84cf7a2d28b8725dd95785cac3ef423528", - "text": "[Dual-stack] Fixed `generateAPIPodStatus()` of kubelet handling Secondary IP. hostIPs order may not be consistent. If secondary IP is before primary one, current logic adds primary IP twice into `PodIPs`, which leads to error: \"may specify no more than one IP for each IP family\".", - "markdown": "[Dual-stack] Fixed `generateAPIPodStatus()` of kubelet handling Secondary IP. hostIPs order may not be consistent. If secondary IP is before primary one, current logic adds primary IP twice into `PodIPs`, which leads to error: \"may specify no more than one IP for each IP family\". ([#116879](https://github.com/kubernetes/kubernetes/pull/116879), [@lzhecheng](https://github.com/lzhecheng))", - "author": "lzhecheng", - "author_url": "https://github.com/lzhecheng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116879", - "pr_number": 116879, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "116901": { - "commit": "dd43d864c1ef6721e2a18a8c18f1a11e819361d2", - "text": "Removed GA'ed feature gate `KubeletCredentialProviders`.", - "markdown": "Removed GA'ed feature gate `KubeletCredentialProviders`. ([#116901](https://github.com/kubernetes/kubernetes/pull/116901), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116901", - "pr_number": 116901, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "116910": { - "commit": "47e79b815608c8e2877389b872a31dfd01184148", - "text": "Migrated the Job controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the Job controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116910](https://github.com/kubernetes/kubernetes/pull/116910), [@fatsheep9146](https://github.com/fatsheep9146)) [SIG API Machinery, Apps and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "fatsheep9146", - "author_url": "https://github.com/fatsheep9146", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116910", - "pr_number": 116910, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "116930": { - "commit": "8c1bf4f461fc3036f68a7e1ad628c426cbfad262", - "text": "Migrated controller functions to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated controller functions to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116930](https://github.com/kubernetes/kubernetes/pull/116930), [@fatsheep9146](https://github.com/fatsheep9146)) [SIG API Machinery, Apps, Network, Node, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "fatsheep9146", - "author_url": "https://github.com/fatsheep9146", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116930", - "pr_number": 116930, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "116937": { - "commit": "892ebf2d253b3c8369f61d7b60ceae45863201c6", - "text": "SubjectAccessReview requests sent to webhook authorizers now default `spec.resourceAttributes.version` to `*` if unset.", - "markdown": "SubjectAccessReview requests sent to webhook authorizers now default `spec.resourceAttributes.version` to `*` if unset. ([#116937](https://github.com/kubernetes/kubernetes/pull/116937), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps and Auth]", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116937", - "pr_number": 116937, - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "apps" - ], - "feature": true, - "duplicate": true - }, - "116968": { - "commit": "6b0e66abad0678b184fbc3381d45d3513ffafcc0", - "text": "Allows users to specify Kubelet `PodAndContainerStatsFromCRI` feature gate that will get Windows pod and container stats only from CRI.", - "markdown": "Allows users to specify Kubelet `PodAndContainerStatsFromCRI` feature gate that will get Windows pod and container stats only from CRI. ([#116968](https://github.com/kubernetes/kubernetes/pull/116968), [@mansikulkarni96](https://github.com/mansikulkarni96))", - "author": "mansikulkarni96", - "author_url": "https://github.com/mansikulkarni96", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116968", - "pr_number": 116968, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "windows" - ], - "feature": true, - "duplicate": true, - "do_not_publish": true - }, - "116995": { - "commit": "036807ae35d0e599d6be82f1d9b6efc3282e459a", - "text": "Static pods were taking extra time to be restarted after being updated. Static pods that are waiting to restart were not correctly counted in `kubelet_working_pods`.", - "markdown": "Static pods were taking extra time to be restarted after being updated. Static pods that are waiting to restart were not correctly counted in `kubelet_working_pods`. ([#116995](https://github.com/kubernetes/kubernetes/pull/116995), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116995", - "pr_number": 116995, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "117002": { - "commit": "5da386745af1040681bbfe40bef6fff339fb58f5", - "text": "Fixed issue where `kubectl-convert` would fail when encountering resources that could not be converted to the specified api version. New behavior is to warn the user of the failed conversions and continue to convert the remaining resources.", - "markdown": "Fixed issue where `kubectl-convert` would fail when encountering resources that could not be converted to the specified api version. New behavior is to warn the user of the failed conversions and continue to convert the remaining resources. ([#117002](https://github.com/kubernetes/kubernetes/pull/117002), [@gxwilkerson33](https://github.com/gxwilkerson33))", - "author": "gxwilkerson33", - "author_url": "https://github.com/gxwilkerson33", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117002", - "pr_number": 117002, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "117015": { - "commit": "4e8908d56671c1bae588151d1d2fcbd4fa56b049", - "text": "Added the implementation for `PodRecreationPolicy` to wait for the creation of pods once the existing ones are fully terminated.", - "markdown": "Added the implementation for `PodRecreationPolicy` to wait for the creation of pods once the existing ones are fully terminated. ([#117015](https://github.com/kubernetes/kubernetes/pull/117015), [@kannon92](https://github.com/kannon92))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3939-allow-replacement-when-fully-terminated", - "type": "KEP" - } - ], - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117015", - "pr_number": 117015, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "117019": { - "commit": "53cccbe4f98b9c6086af88954f5c9a77d8e66fc5", - "text": "Kubelet terminates pods correctly upon restart, fixing an issue where pods may have not been fully terminated if the kubelet was restarted during pod termination.", - "markdown": "Kubelet terminates pods correctly upon restart, fixing an issue where pods may have not been fully terminated if the kubelet was restarted during pod termination. ([#117019](https://github.com/kubernetes/kubernetes/pull/117019), [@bobbypage](https://github.com/bobbypage)) [SIG Node and Testing]", - "author": "bobbypage", - "author_url": "https://github.com/bobbypage", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117019", - "pr_number": 117019, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "117020": { - "commit": "e7426a00c38eaab2d6ee5498ae035f42d4dd9893", - "text": "Added error handling for seccomp localhost configurations that do not properly set a `localhostProfile`.", - "markdown": "Added error handling for seccomp localhost configurations that do not properly set a `localhostProfile`. ([#117020](https://github.com/kubernetes/kubernetes/pull/117020), [@cji](https://github.com/cji))", - "author": "cji", - "author_url": "https://github.com/cji", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117020", - "pr_number": 117020, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "node", - "api-machinery" - ], - "duplicate": true, - "duplicate_kind": true - }, - "117022": { - "commit": "8722ab2c8441b7de56e47c9cf2eafabfad17d160", - "text": "Number of errors reported to the metric `storage_operation_duration_seconds_count` for emptyDir decreased significantly because previously one error was reported for each projected volume created.", - "markdown": "Number of errors reported to the metric `storage_operation_duration_seconds_count` for emptyDir decreased significantly because previously one error was reported for each projected volume created. ([#117022](https://github.com/kubernetes/kubernetes/pull/117022), [@mpatlasov](https://github.com/mpatlasov)) [SIG Storage]", - "author": "mpatlasov", - "author_url": "https://github.com/mpatlasov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117022", - "pr_number": 117022, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "117025": { - "commit": "c9180e445caf0d2dafc01a923a5f241cd264fc8c", - "text": "The Kubernetes apiserver now emits a warning message for Pods with a null labelSelector in podAffinity or topologySpreadConstraints. The null labelSelector means \"match none\". Using it in podAffinity or topologySpreadConstraint could lead to unintended behavior.", - "markdown": "The Kubernetes apiserver now emits a warning message for Pods with a null labelSelector in podAffinity or topologySpreadConstraints. The null labelSelector means \"match none\". Using it in podAffinity or topologySpreadConstraint could lead to unintended behavior. ([#117025](https://github.com/kubernetes/kubernetes/pull/117025), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117025", - "pr_number": 117025, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "117034": { - "commit": "a9edbee7088d4b09706f19632565af00c82abb50", - "text": "`kubectl events --for` will also support fully qualified names such as replicasets.apps,\netc.", - "markdown": "`kubectl events --for` will also support fully qualified names such as replicasets.apps,\n etc. ([#117034](https://github.com/kubernetes/kubernetes/pull/117034), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117034", - "pr_number": 117034, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "117036": { - "commit": "2f0c2e50d4224dcb9298a05292a8c997a0c9d11c", - "text": "Show a warning when `volume.beta.kubernetes.io/storage-class` annotation is used in pv or pvc", - "markdown": "Show a warning when `volume.beta.kubernetes.io/storage-class` annotation is used in pv or pvc ([#117036](https://github.com/kubernetes/kubernetes/pull/117036), [@haoruan](https://github.com/haoruan)) [SIG Storage]", - "author": "haoruan", - "author_url": "https://github.com/haoruan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117036", - "pr_number": 117036, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "117055": { - "commit": "52457842d155743f0e3fc57ade87251cca37d375", - "text": "The feature gates `CSIMigrationGCE` is graduated to GA and were unconditionally enabled have been removed in `v1.25`, and the entire `gcepd` package has been removed.", - "markdown": "The feature gates `CSIMigrationGCE` is graduated to GA and were unconditionally enabled have been removed in `v1.25`, and the entire `gcepd` package has been removed. ([#117055](https://github.com/kubernetes/kubernetes/pull/117055), [@cyclinder](https://github.com/cyclinder))", - "author": "cyclinder", - "author_url": "https://github.com/cyclinder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117055", - "pr_number": 117055, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "api-machinery" - ], - "duplicate": true - }, - "117079": { - "commit": "89bfdf02762727506c9801d38b202873793d1106", - "text": "`kubelet`: print sorted volumes message in events.", - "markdown": "`kubelet`: print sorted volumes message in events. ([#117079](https://github.com/kubernetes/kubernetes/pull/117079), [@qingwave](https://github.com/qingwave))", - "author": "qingwave", - "author_url": "https://github.com/qingwave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117079", - "pr_number": 117079, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "117095": { - "commit": "0638be816f623febcc0f17c0dfd5257a6c07cd1c", - "text": "CVE-2023-27561 CVE-2023-25809 CVE-2023-28642: Bump fix runc v1.1.4 -\u003e v1.1.5", - "markdown": "CVE-2023-27561 CVE-2023-25809 CVE-2023-28642: Bump fix runc v1.1.4 -\u003e v1.1.5 ([#117095](https://github.com/kubernetes/kubernetes/pull/117095), [@PushkarJ](https://github.com/PushkarJ)) [SIG Architecture, Node and Security]", - "author": "PushkarJ", - "author_url": "https://github.com/PushkarJ", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117095", - "pr_number": 117095, - "areas": [ - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "architecture", - "security" - ], - "duplicate": true - }, - "117102": { - "commit": "7da3893003eb2e5007a45f38b1276d554125c5b8", - "text": "Deprecated `genericclioptions.IOStreams` and used `genericiooptions.IOStreams`.", - "markdown": "Deprecated `genericclioptions.IOStreams` and used `genericiooptions.IOStreams`. ([#117102](https://github.com/kubernetes/kubernetes/pull/117102), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117102", - "pr_number": 117102, - "areas": [ - "kubectl", - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "cli", - "release" - ], - "duplicate": true - }, - "117108": { - "commit": "e5efa0a5eeea6d6c1c5dfaeb880f6a76afd5ce6f", - "text": "`component-base/logs` is now stricter about not applying configurations multiple\ntimes and will return an error when that is attempted. Can be overridden by binaries\nwhich need to do that.", - "markdown": "`component-base/logs` is now stricter about not applying configurations multiple\n times and will return an error when that is attempted. Can be overridden by binaries\n which need to do that. ([#117108](https://github.com/kubernetes/kubernetes/pull/117108), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117108", - "pr_number": 117108, - "areas": [ - "test", - "apiserver", - "cloudprovider" - ], - "kinds": [ - "bug", - "api-change", - "failing-test" - ], - "sigs": [ - "scheduling", - "api-machinery", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "117120": { - "commit": "02f1f573b909bc88df8a83954c73a2bc4f760536", - "text": "Bumped metrics-server to `v0.6.3`.", - "markdown": "Bumped metrics-server to `v0.6.3`. ([#117120](https://github.com/kubernetes/kubernetes/pull/117120), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117120", - "pr_number": 117120, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "117121": { - "commit": "190e861f0215c27ec4fff9dbf73e6b522d2582b5", - "text": "Set metrics-server's metric-resolution to 15s.", - "markdown": "Set metrics-server's metric-resolution to 15s. ([#117121](https://github.com/kubernetes/kubernetes/pull/117121), [@dgrisonnet](https://github.com/dgrisonnet)) [SIG Cloud Provider and Instrumentation]", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117121", - "pr_number": 117121, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "117138": { - "commit": "5d8c99a6fe184d08766cd54787fe57300ae98f09", - "text": "Added '--concurrent-job-syncs' flag for `kube-controller-manager` to set the number of job controller workers.", - "markdown": "Added '--concurrent-job-syncs' flag for `kube-controller-manager` to set the number of job controller workers. ([#117138](https://github.com/kubernetes/kubernetes/pull/117138), [@tosi3k](https://github.com/tosi3k))", - "author": "tosi3k", - "author_url": "https://github.com/tosi3k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117138", - "pr_number": 117138, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cli" - ], - "feature": true, - "duplicate": true - }, - "117139": { - "commit": "87d8c4ed0ab58c5d19a4f2513fb49b920fdef346", - "text": "Recording timing traces had a race condition. Impact in practice was probably low.", - "markdown": "Recording timing traces had a race condition. Impact in practice was probably low. ([#117139](https://github.com/kubernetes/kubernetes/pull/117139), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node and Storage]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117139", - "pr_number": 117139, - "areas": [ - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "117194": { - "commit": "29c8fb678c0cffffa5aebd021fab475b63bc1333", - "text": "Known issue: fixed that the PreEnqueue plugins aren't executed for Pods proceeding to activeQ through backoffQ.", - "markdown": "Known issue: fixed that the PreEnqueue plugins aren't executed for Pods proceeding to activeQ through backoffQ. ([#117194](https://github.com/kubernetes/kubernetes/pull/117194), [@sanposhiho](https://github.com/sanposhiho)) [SIG Release and Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117194", - "pr_number": 117194, - "areas": [ - "release-eng" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "release" - ], - "duplicate": true - }, - "117211": { - "commit": "7e25f1232a9f89875641431ae011c916f0376c57", - "text": "`kube-apiserver` added two new metrics `authorization_attempts_total` and `authorization_duration_seconds`\nthat allow users to monitor requests to authorization webhooks, split by result.", - "markdown": "`kube-apiserver` added two new metrics `authorization_attempts_total` and `authorization_duration_seconds`\n that allow users to monitor requests to authorization webhooks, split by result. ([#117211](https://github.com/kubernetes/kubernetes/pull/117211), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117211", - "pr_number": 117211, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation" - ], - "duplicate": true - }, - "117214": { - "commit": "af99aa1a5053b11e7c894309f921ceb26855688f", - "text": "A `v2-level` info log will be added, which will output the details of the pod being preempted, including victim and preemptor.", - "markdown": "A `v2-level` info log will be added, which will output the details of the pod being preempted, including victim and preemptor. ([#117214](https://github.com/kubernetes/kubernetes/pull/117214), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117214", - "pr_number": 117214, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "117216": { - "commit": "bd2404355109fd9f7ca6b14188b4c71c597a9f6f", - "text": "Allowed Azure Disk e2es to use newer topology labels if available from nodes.", - "markdown": "Allowed Azure Disk e2es to use newer topology labels if available from nodes. ([#117216](https://github.com/kubernetes/kubernetes/pull/117216), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117216", - "pr_number": 117216, - "areas": [ - "test" - ], - "kinds": [ - "failing-test" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true - }, - "117222": { - "commit": "4f6714ef42dcdb1b35bb2d8581c1ef83d59f02d1", - "text": "Apiserver adds two new metrics `etcd_requests_total` and `etcd_request_errors_total` that allow users to monitor requests to etcd storage, split by operation and resource type.", - "markdown": "Apiserver adds two new metrics `etcd_requests_total` and `etcd_request_errors_total` that allow users to monitor requests to etcd storage, split by operation and resource type. ([#117222](https://github.com/kubernetes/kubernetes/pull/117222), [@iyear](https://github.com/iyear)) [SIG API Machinery]", - "author": "iyear", - "author_url": "https://github.com/iyear", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117222", - "pr_number": 117222, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "117237": { - "commit": "7077491f68cf1320257b6189683ce0b15b8b6edb", - "text": "Removed GA'ed feature gates: `MixedProtocolLBService`, `ServiceInternalTrafficPolicy`,\n`ServiceIPStaticSubrange`, and `EndpointSliceTerminatingCondition`.", - "markdown": "Removed GA'ed feature gates: `MixedProtocolLBService`, `ServiceInternalTrafficPolicy`,\n `ServiceIPStaticSubrange`, and `EndpointSliceTerminatingCondition`. ([#117237](https://github.com/kubernetes/kubernetes/pull/117237), [@yulng](https://github.com/yulng))", - "author": "yulng", - "author_url": "https://github.com/yulng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117237", - "pr_number": 117237, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "117238": { - "commit": "b98659ba629ab402c52f6ccf465ead3c19c73d39", - "text": "Structured logging of `NamespacedName` was inconsistent with `klog.KObj`. Now both will use lower case field names and namespace is optional.", - "markdown": "Structured logging of `NamespacedName` was inconsistent with `klog.KObj`. Now both will use lower case field names and namespace is optional. ([#117238](https://github.com/kubernetes/kubernetes/pull/117238), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117238", - "pr_number": 117238, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "architecture" - ], - "duplicate": true - }, - "117243": { - "commit": "8aa49a7955ebe7198780978c802e58a6c901a61a", - "text": "Fixed `vSphere` cloud provider not to skip detach volumes from nodes at `kube-controller-startup`.", - "markdown": "Fixed `vSphere` cloud provider not to skip detach volumes from nodes at `kube-controller-startup`. ([#117243](https://github.com/kubernetes/kubernetes/pull/117243), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117243", - "pr_number": 117243, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ] - }, - "117245": { - "commit": "9082903f94e285b95f61b9dcf17e5a1ba9ad1e82", - "text": "Fixed Topology Aware Hints not working when the `topology.kubernetes.io/zone` label is added after Node creation.", - "markdown": "Fixed Topology Aware Hints not working when the `topology.kubernetes.io/zone` label is added after Node creation. ([#117245](https://github.com/kubernetes/kubernetes/pull/117245), [@tnqn](https://github.com/tnqn))", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117245", - "pr_number": 117245, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "117249": { - "commit": "5550bd5eacc185fac579a7ac6003c7099f8f9d9f", - "text": "Fixed a data race in TopologyCache when `AddHints` and `SetNodes` are called concurrently.", - "markdown": "Fixed a data race in TopologyCache when `AddHints` and `SetNodes` are called concurrently. ([#117249](https://github.com/kubernetes/kubernetes/pull/117249), [@tnqn](https://github.com/tnqn)) [SIG Apps and Network]", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117249", - "pr_number": 117249, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "117258": { - "commit": "bcacf92741472a7c37fdb55662b6335801bf4de3", - "text": "Fixed a memory leak in the Kubernetes API server that occurs during APIService processing.", - "markdown": "Fixed a memory leak in the Kubernetes API server that occurs during APIService processing. ([#117258](https://github.com/kubernetes/kubernetes/pull/117258), [@enj](https://github.com/enj)) [SIG API Machinery]", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117258", - "pr_number": 117258, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "117262": { - "commit": "7cdf67ebf86a55e3ca105f706d15b3cde259dc52", - "text": "Projects which use k8s.io/code-generator and invoke `generate-groups` or `generate-internal-groups.sh` have a new, simpler script (`kube_codegen.sh`) they can use. The old scripts are deprecated but remain intact.", - "markdown": "Projects which use k8s.io/code-generator and invoke `generate-groups` or `generate-internal-groups.sh` have a new, simpler script (`kube_codegen.sh`) they can use. The old scripts are deprecated but remain intact. ([#117262](https://github.com/kubernetes/kubernetes/pull/117262), [@thockin](https://github.com/thockin)) [SIG API Machinery and Instrumentation]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117262", - "pr_number": 117262, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "117275": { - "commit": "1d27cbc784a5fb79f4a910515fb8609bb745bfb9", - "text": "NONE", - "markdown": "NONE ([#117275](https://github.com/kubernetes/kubernetes/pull/117275), [@akhilerm](https://github.com/akhilerm))", - "author": "akhilerm", - "author_url": "https://github.com/akhilerm", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117275", - "pr_number": 117275, - "areas": [ - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true - }, - "117283": { - "commit": "cb8d9f686775e867fcbc6fccb6a2eac49024ae14", - "text": "Fixed a bug where pv recycler failed to scrub volume with too many files in the directory due to hitting ARG_MAX limit with rm command (#117189).", - "markdown": "Fixed a bug where pv recycler failed to scrub volume with too many files in the directory due to hitting ARG_MAX limit with rm command (#117189). ([#117283](https://github.com/kubernetes/kubernetes/pull/117283), [@defo89](https://github.com/defo89)) [SIG Cloud Provider and Storage]", - "author": "defo89", - "author_url": "https://github.com/defo89", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117283", - "pr_number": 117283, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "cloud-provider" - ], - "duplicate": true - }, - "117295": { - "commit": "64af2d93e5b97e41bb078e2fa81923fda6681154", - "text": "client-go now exposes two new metrics to monitor the client-go logic that\ngenerate http.Transports for the clients.\n\n- `rest_client_transport_cache_entries` is a gauge metric\nwith the number of existin entries in the internal cache\n\n- `rest_client_transport_create_calls_total` is a counter\nthat increments each time a new transport is created, storing\nthe result of the operation needed to generate it: hit, miss\nor uncacheable.", - "markdown": "Client-go now exposes two new metrics to monitor the client-go logic that\n generate http.Transports for the clients.\n \n - `rest_client_transport_cache_entries` is a gauge metric\n with the number of existin entries in the internal cache\n \n - `rest_client_transport_create_calls_total` is a counter\n that increments each time a new transport is created, storing\n the result of the operation needed to generate it: hit, miss\n or uncacheable. ([#117295](https://github.com/kubernetes/kubernetes/pull/117295), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117295", - "pr_number": 117295, - "areas": [ - "test", - "kubelet", - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "node", - "api-machinery", - "instrumentation", - "testing", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "117301": { - "commit": "139a2c54a2a9a3a3daa58723ea86cb66a45d7f48", - "text": "Fixed a regression in `1.27.0` that resulted in `missing metadata in converted object` errors when modifying objects for multi-version custom resource definitions with a conversion strategy of `None`.", - "markdown": "Fixed a regression in `1.27.0` that resulted in `missing metadata in converted object` errors when modifying objects for multi-version custom resource definitions with a conversion strategy of `None`. ([#117301](https://github.com/kubernetes/kubernetes/pull/117301), [@ncdc](https://github.com/ncdc))", - "author": "ncdc", - "author_url": "https://github.com/ncdc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117301", - "pr_number": 117301, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "117330": { - "commit": "d11bdad196b52f27dc3f7e206a556454e28f41dd", - "text": "NONE", - "markdown": "NONE ([#117330](https://github.com/kubernetes/kubernetes/pull/117330), [@akhilerm](https://github.com/akhilerm))", - "author": "akhilerm", - "author_url": "https://github.com/akhilerm", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117330", - "pr_number": 117330, - "areas": [ - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "117335": { - "commit": "626b2db1ca313723f0c39b894af631334ac02acc", - "text": "Updated `etcd` version to `3.5.8`.", - "markdown": "Updated `etcd` version to `3.5.8`. ([#117335](https://github.com/kubernetes/kubernetes/pull/117335), [@kkkkun](https://github.com/kkkkun))", - "author": "kkkkun", - "author_url": "https://github.com/kkkkun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117335", - "pr_number": 117335, - "areas": [ - "test", - "provider/gcp", - "kubeadm", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "117350": { - "commit": "b925ce244638187dbf0f502ecb6e02db149970aa", - "text": "NONE", - "markdown": "NONE ([#117350](https://github.com/kubernetes/kubernetes/pull/117350), [@mohitsharma-in](https://github.com/mohitsharma-in))", - "author": "mohitsharma-in", - "author_url": "https://github.com/mohitsharma-in", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117350", - "pr_number": 117350, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true - }, - "117351": { - "commit": "e0dafe57a3858b798f4137223e7fdc70bd15b617", - "text": "The names of ResourceClaims generated from ResourceClaimTemplate are now generated. The base name is still `\u003cpod\u003e-\u003cclaim name\u003e`, but a random suffix will avoid name collisions.", - "markdown": "The names of ResourceClaims generated from ResourceClaimTemplate are now generated. The base name is still `\u003cpod\u003e-\u003cclaim name\u003e`, but a random suffix will avoid name collisions. ([#117351](https://github.com/kubernetes/kubernetes/pull/117351), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117351", - "pr_number": 117351, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "auth", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "117352": { - "commit": "bda7e8979088614c60ee21fd2602d00786e2ea78", - "text": "NONE", - "markdown": "NONE ([#117352](https://github.com/kubernetes/kubernetes/pull/117352), [@mohitsharma-in](https://github.com/mohitsharma-in))", - "author": "mohitsharma-in", - "author_url": "https://github.com/mohitsharma-in", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117352", - "pr_number": 117352, - "areas": [ - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true - }, - "117368": { - "commit": "3554bcde8730991ec43e620d006899839ddd251d", - "text": "Fixed nil pointer in test AfterEach volumeperf.go for sidecar release.", - "markdown": "Fixed nil pointer in test AfterEach volumeperf.go for sidecar release. ([#117368](https://github.com/kubernetes/kubernetes/pull/117368), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu))", - "author": "sunnylovestiramisu", - "author_url": "https://github.com/sunnylovestiramisu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117368", - "pr_number": 117368, - "areas": [ - "test" - ], - "kinds": [ - "failing-test" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true - }, - "117386": { - "commit": "f8e4d4dd00fbc97c86ebee016ab2fc4dfd833e1d", - "text": "NONE", - "markdown": "NONE ([#117386](https://github.com/kubernetes/kubernetes/pull/117386), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117386", - "pr_number": 117386, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true, - "do_not_publish": true - }, - "117388": { - "commit": "8bba479f03fd27f1a54fcd1e02347c1a5b98b30c", - "text": "[KCCM] service controller: change the cloud controller manager to make `providerID` a predicate when synchronizing nodes. This change allows load balancer integrations to ensure that the `providerID` is set when configuring\nload balancers and targets.", - "markdown": "[KCCM] service controller: change the cloud controller manager to make `providerID` a predicate when synchronizing nodes. This change allows load balancer integrations to ensure that the `providerID` is set when configuring\n load balancers and targets. ([#117388](https://github.com/kubernetes/kubernetes/pull/117388), [@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/117388", - "pr_number": 117388, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "cloud-provider" - ], - "duplicate": true - }, - "117390": { - "commit": "5f22ab3c5f30784b782857f8c3ed20dabae5da6d", - "text": "go version go1.20.1\ngoos: darwin\ngoarch: arm64\npkg: k8s.io/kubernetes/pkg/scheduler/util\n\nbefore:\n\nBenchmark10kPods-8 \t 67680\t 16837 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark10kPods-8 \t 69393\t 16928 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark10kPods-8 \t 68298\t 16942 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark10kPods-8 \t 70198\t 16125 ns/op\t 0 B/op\t 0 allocs/op\n\nBenchmark100kPods-8 \t 2661\t 444173 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2674\t 446439 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2715\t 454089 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2665\t 440868 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2646\t 452669 ns/op\t 0 B/op\t 0 allocs/op\n\nafter:\n\nBenchmark10kPods-8 \t 80383\t 14392 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark10kPods-8 \t 81895\t 14073 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark10kPods-8 \t 78211\t 14602 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark10kPods-8 \t 76614\t 15110 ns/op\t 0 B/op\t 0 allocs/op\n\nBenchmark100kPods-8 \t 2736\t 409138 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2932\t 414789 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2908\t 403114 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2925\t 394417 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2958\t 410171 ns/op\t 0 B/op\t 0 allocs/op", - "markdown": "Go version go1.20.1\n goos: darwin\n goarch: arm64\n pkg: k8s.io/kubernetes/pkg/scheduler/util\n \n before:\n \n Benchmark10kPods-8 \t 67680\t 16837 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark10kPods-8 \t 69393\t 16928 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark10kPods-8 \t 68298\t 16942 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark10kPods-8 \t 70198\t 16125 ns/op\t 0 B/op\t 0 allocs/op\n \n Benchmark100kPods-8 \t 2661\t 444173 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2674\t 446439 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2715\t 454089 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2665\t 440868 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2646\t 452669 ns/op\t 0 B/op\t 0 allocs/op\n \n after:\n \n Benchmark10kPods-8 \t 80383\t 14392 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark10kPods-8 \t 81895\t 14073 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark10kPods-8 \t 78211\t 14602 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark10kPods-8 \t 76614\t 15110 ns/op\t 0 B/op\t 0 allocs/op\n \n Benchmark100kPods-8 \t 2736\t 409138 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2932\t 414789 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2908\t 403114 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2925\t 394417 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2958\t 410171 ns/op\t 0 B/op\t 0 allocs/op ([#117390](https://github.com/kubernetes/kubernetes/pull/117390), [@lowang-bh](https://github.com/lowang-bh)) [SIG Scheduling]", - "author": "lowang-bh", - "author_url": "https://github.com/lowang-bh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117390", - "pr_number": 117390, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "117391": { - "commit": "98cf297e57ee85aea5a5b9a6d23177935063f3d0", - "text": "NONE", - "markdown": "NONE ([#117391](https://github.com/kubernetes/kubernetes/pull/117391), [@cuishuang](https://github.com/cuishuang))", - "author": "cuishuang", - "author_url": "https://github.com/cuishuang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117391", - "pr_number": 117391, - "areas": [ - "apiserver", - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle" - ], - "duplicate": true, - "do_not_publish": true - }, - "117399": { - "commit": "cf89189ca3a3e5d280ba1cb09998c4b88dc1e127", - "text": "NONE", - "markdown": "NONE ([#117399](https://github.com/kubernetes/kubernetes/pull/117399), [@mohitsharma-in](https://github.com/mohitsharma-in))", - "author": "mohitsharma-in", - "author_url": "https://github.com/mohitsharma-in", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117399", - "pr_number": 117399, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true - }, - "117408": { - "commit": "0d41d28ea2184be3a249e3875735d8a1462288cf", - "text": "NONE", - "markdown": "NONE ([#117408](https://github.com/kubernetes/kubernetes/pull/117408), [@cenkalti](https://github.com/cenkalti))", - "author": "cenkalti", - "author_url": "https://github.com/cenkalti", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117408", - "pr_number": 117408, - "areas": [ - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true - }, - "117412": { - "commit": "89462b81282b644487d5d0834e9ff6875c59d635", - "text": "Pod termination will be faster when the pod has a missing volume reference.", - "markdown": "Pod termination will be faster when the pod has a missing volume reference. ([#117412](https://github.com/kubernetes/kubernetes/pull/117412), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node and Testing]", - "author": "smarterclayton", - "author_url": "https://github.com/smarterclayton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117412", - "pr_number": 117412, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "117448": { - "commit": "44e330632342893ac31509793fa11074e2416bb0", - "text": "External credential provider plugins will now have their standard error output logged by kubelet upon failures.", - "markdown": "External credential provider plugins will now have their standard error output logged by kubelet upon failures. ([#117448](https://github.com/kubernetes/kubernetes/pull/117448), [@cartermckinnon](https://github.com/cartermckinnon))", - "author": "cartermckinnon", - "author_url": "https://github.com/cartermckinnon", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117448", - "pr_number": 117448, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "117495": { - "commit": "d94c733ee2bfaedd9a1c45d58fbd56c99403c94d", - "text": "Fixed a regression in `kubectl` and `client-go` discovery when configured with a server URL other than the root of a server", - "markdown": "Fixed a regression in `kubectl` and `client-go` discovery when configured with a server URL other than the root of a server ([#117495](https://github.com/kubernetes/kubernetes/pull/117495), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117495", - "pr_number": 117495, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "117535": { - "commit": "51ffca216c4111b8597a8807919d167b619fc3e4", - "text": "The short names `vwc` and `mwc` were introduced for the resources `validatingwebhookconfigurations` and `mutatingwebhookconfigurations`.", - "markdown": "The short names `vwc` and `mwc` were introduced for the resources `validatingwebhookconfigurations` and `mutatingwebhookconfigurations`. ([#117535](https://github.com/kubernetes/kubernetes/pull/117535), [@hysyeah](https://github.com/hysyeah))", - "author": "hysyeah", - "author_url": "https://github.com/hysyeah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117535", - "pr_number": 117535, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "117543": { - "commit": "0813904404034fd760d8e7e1e3ca5444610a7fa8", - "text": "Fixed restricted debug profile.", - "markdown": "Fixed restricted debug profile. ([#117543](https://github.com/kubernetes/kubernetes/pull/117543), [@mochizuki875](https://github.com/mochizuki875))", - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117543", - "pr_number": 117543, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "117545": { - "commit": "e153766a2a18ec77f3c71fdf0013d465cf5cfef6", - "text": "Updated `cri-tools` to `v1.27.0`.", - "markdown": "Updated `cri-tools` to `v1.27.0`. ([#117545](https://github.com/kubernetes/kubernetes/pull/117545), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117545", - "pr_number": 117545, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "cloud-provider" - ], - "duplicate": true - }, - "117550": { - "commit": "32048b146731e428800d661a67338d1a0c8f50aa", - "text": "Added '--concurrent-cron-job-syncs' flag for `kube-controller-manager` to set the number of workers for cron job controller.", - "markdown": "Added '--concurrent-cron-job-syncs' flag for `kube-controller-manager` to set the number of workers for cron job controller. ([#117550](https://github.com/kubernetes/kubernetes/pull/117550), [@borgerli](https://github.com/borgerli))", - "author": "borgerli", - "author_url": "https://github.com/borgerli", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117550", - "pr_number": 117550, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "117568": { - "commit": "af20b027c6d2cb7b06e2f5f0c5c4564171c50b48", - "text": "Fixed bug that caused a resource to include patch directives when using strategic merge patch against a non-existent field.", - "markdown": "Fixed bug that caused a resource to include patch directives when using strategic merge patch against a non-existent field. ([#117568](https://github.com/kubernetes/kubernetes/pull/117568), [@alexzielenski](https://github.com/alexzielenski))", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117568", - "pr_number": 117568, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "117570": { - "commit": "46852cab7f1a0afce5ec45c294cedd0461311b38", - "text": "Removed `WindowsHostProcessContainers` feature-gate.", - "markdown": "Removed `WindowsHostProcessContainers` feature-gate. ([#117570](https://github.com/kubernetes/kubernetes/pull/117570), [@marosset](https://github.com/marosset)) [SIG API Machinery, Apps, Auth, Node and Windows]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1981", - "type": "KEP" - } - ], - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117570", - "pr_number": 117570, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "apps", - "windows" - ], - "duplicate": true, - "duplicate_kind": true - }, - "117571": { - "commit": "c5c2806e233b9c5ff49ac4ad0c6d734b530771de", - "text": "Resolves a spurious \"Unknown discovery response content-type\" error in client-go discovery requests by tolerating extra content-type parameters in API responses", - "markdown": "Resolves a spurious \"Unknown discovery response content-type\" error in client-go discovery requests by tolerating extra content-type parameters in API responses ([#117571](https://github.com/kubernetes/kubernetes/pull/117571), [@seans3](https://github.com/seans3)) [SIG API Machinery]", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117571", - "pr_number": 117571, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "117586": { - "commit": "8b8dfcad1249ae9f14c900274e6f58e5488f2c3f", - "text": "Added `DisruptionTarget` condition to the pod preempted by kubelet to make room for a critical pod.", - "markdown": "Added `DisruptionTarget` condition to the pod preempted by kubelet to make room for a critical pod. ([#117586](https://github.com/kubernetes/kubernetes/pull/117586), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117586", - "pr_number": 117586, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "117591": { - "commit": "d2dc976247de526850b3d1c0285271a73fc0dff9", - "text": "Graduated the `LegacyServiceAccountTokenTracking` feature gate to GA. The usage of auto-generated secret-based service account token now produces warnings, and relevant Secrets are labeled with a last-used timestamp (label key `kubernetes.io/legacy-token-last-used`).", - "markdown": "Graduated the `LegacyServiceAccountTokenTracking` feature gate to GA. The usage of auto-generated secret-based service account token now produces warnings, and relevant Secrets are labeled with a last-used timestamp (label key `kubernetes.io/legacy-token-last-used`). ([#117591](https://github.com/kubernetes/kubernetes/pull/117591), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/2799-reduction-of-secret-based-service-account-token", - "type": "KEP" - } - ], - "author": "zshihang", - "author_url": "https://github.com/zshihang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117591", - "pr_number": 117591, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "117593": { - "commit": "8ae8e7756075088b7178246457efc6859f192fc4", - "text": "Fixed bug where `listOfStrings.join()` in CEL expressions resulted in an unexpected internal error.", - "markdown": "Fixed bug where `listOfStrings.join()` in CEL expressions resulted in an unexpected internal error. ([#117593](https://github.com/kubernetes/kubernetes/pull/117593), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117593", - "pr_number": 117593, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "117594": { - "commit": "c4f6c4716990e05863b8817d8127b73111438843", - "text": "Fixed performance regression in scheduler caused by frequent metric lookup on critical code path.", - "markdown": "Fixed performance regression in scheduler caused by frequent metric lookup on critical code path. ([#117594](https://github.com/kubernetes/kubernetes/pull/117594), [@tosi3k](https://github.com/tosi3k))", - "author": "tosi3k", - "author_url": "https://github.com/tosi3k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117594", - "pr_number": 117594, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true - }, - "117602": { - "commit": "12d3f5ce1a4095635a4bbe1eec1131c69778f8ca", - "text": "[KCCM] drop filtering nodes for the providerID when syncing load balancers, but have changes to the field trigger a re-sync of load balancers. This should ensure that cloud providers which don't specify providerID, can still use the service controller implementation to provision load balancers.", - "markdown": "[KCCM] drop filtering nodes for the providerID when syncing load balancers, but have changes to the field trigger a re-sync of load balancers. This should ensure that cloud providers which don't specify providerID, can still use the service controller implementation to provision load balancers. ([#117602](https://github.com/kubernetes/kubernetes/pull/117602), [@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/117602", - "pr_number": 117602, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "cloud-provider" - ], - "duplicate": true - }, - "117612": { - "commit": "72afd8558e6fdef1546dd3c2c9bdd2a124062c52", - "text": "Fixed bug to correctly report `ErrRegistryUnavailable` on pulling container images for remote CRI runtimes.", - "markdown": "Fixed bug to correctly report `ErrRegistryUnavailable` on pulling container images for remote CRI runtimes. ([#117612](https://github.com/kubernetes/kubernetes/pull/117612), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117612", - "pr_number": 117612, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "117633": { - "commit": "7add692580fa499b516e944a1389ef07f44a2e35", - "text": "Removed tracking annotation from validation and defaulting.", - "markdown": "Removed tracking annotation from validation and defaulting. ([#117633](https://github.com/kubernetes/kubernetes/pull/117633), [@kannon92](https://github.com/kannon92))", - "documentation": [ - { - "description": "-[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2307-job-tracking-without-lingering-pods#deprecation", - "type": "KEP" - } - ], - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117633", - "pr_number": 117633, - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "117649": { - "commit": "47f1bd9f80139bd086a2f74eae26d388051f12ce", - "text": "`kube-scheduler` component config (KubeSchedulerConfiguration) `kubescheduler.config.k8s.io/v1beta2`\nis removed in `v1.28`. Migrate `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`.", - "markdown": "`kube-scheduler` component config (KubeSchedulerConfiguration) `kubescheduler.config.k8s.io/v1beta2`\n is removed in `v1.28`. Migrate `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`. ([#117649](https://github.com/kubernetes/kubernetes/pull/117649), [@SataQiu](https://github.com/SataQiu))", - "documentation": [ - { - "description": "-[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/785-scheduler-component-config-api", - "type": "KEP" - } - ], - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117649", - "pr_number": 117649, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling", - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "117655": { - "commit": "80c4abd02e6613ffcc3dac3f9b715c5e7ab7a916", - "text": "Removed GA'ed feature gate `DelegateFSGroupToCSIDriver`.", - "markdown": "Removed GA'ed feature gate `DelegateFSGroupToCSIDriver`. ([#117655](https://github.com/kubernetes/kubernetes/pull/117655), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117655", - "pr_number": 117655, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "117656": { - "commit": "509c2c7c8820d5d546ee4c9b02c52ddaf8ad8ab7", - "text": "Removed GA'ed feature gate `DevicePlugins`.", - "markdown": "Removed GA'ed feature gate `DevicePlugins`. ([#117656](https://github.com/kubernetes/kubernetes/pull/117656), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117656", - "pr_number": 117656, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "117660": { - "commit": "bc872028abed2bd5788d0edb5378eaec64b4c103", - "text": "`kubeadm`: introduced a new feature gate `UpgradeAddonsBeforeControlPlane` to\nfix a kube-proxy skew policy misalignment. Its default value is `false`. Upgrade\nof the CoreDNS and kube-proxy addons will now trigger after all the control plane\ninstances have been upgraded, unless the fearure gate is set to true. This feature\ngate will be removed in a future release.", - "markdown": "`kubeadm`: Introduced a new feature gate `UpgradeAddonsBeforeControlPlane` to\n fix a kube-proxy skew policy misalignment. Its default value is `false`. Upgrade\n of the CoreDNS and kube-proxy addons will now trigger after all the control plane\n instances have been upgraded, unless the fearure gate is set to true. This feature\n gate will be removed in a future release. ([#117660](https://github.com/kubernetes/kubernetes/pull/117660), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117660", - "pr_number": 117660, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "117677": { - "commit": "dea1312e03a0d6b7bc73ff21fa243cccea419c76", - "text": "Fixed incorrect calculation for ResourceQuota with PriorityClass as its scope.", - "markdown": "Fixed incorrect calculation for ResourceQuota with PriorityClass as its scope. ([#117677](https://github.com/kubernetes/kubernetes/pull/117677), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG API Machinery]", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117677", - "pr_number": 117677, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "117683": { - "commit": "0d67dd689bbbcc9e27d8678944c7d384615a2ffe", - "text": "The scheduler skips the `PodTopologySpread` Filter plugin if no spread constraints.\nIt will affect some metrics values related to the `PodTopologySpread` Filter plugin.", - "markdown": "The scheduler skips the `PodTopologySpread` Filter plugin if no spread constraints.\n It will affect some metrics values related to the `PodTopologySpread` Filter plugin. ([#117683](https://github.com/kubernetes/kubernetes/pull/117683), [@utam0k](https://github.com/utam0k))", - "author": "utam0k", - "author_url": "https://github.com/utam0k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117683", - "pr_number": 117683, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "117687": { - "commit": "a6825c8542ee1e5e9d570ba1c267458a09287015", - "text": "`klog` text output now uses JSON as encoding for structs, maps and slices.", - "markdown": "`klog` text output now uses JSON as encoding for structs, maps and slices. ([#117687](https://github.com/kubernetes/kubernetes/pull/117687), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117687", - "pr_number": 117687, - "areas": [ - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "storage", - "node", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "117688": { - "commit": "d96993fc1c3538ea20c9e7564a7eb0f4a360510d", - "text": "`--version=v1.X.Y...` can now be used to set the prerelease and buildID portions of the version reported by components", - "markdown": "`--version=v1.X.Y...` can now be used to set the prerelease and buildID portions of the version reported by components ([#117688](https://github.com/kubernetes/kubernetes/pull/117688), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture and Release]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117688", - "pr_number": 117688, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "release", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "117690": { - "commit": "f47d7f3a16a2f34272a1a536d738d7c885d03498", - "text": "2023-04-29T04:50:47.850779535Z stderr F panic: runtime error: invalid memory address or nil pointer dereference\n2023-04-29T04:50:47.850808505Z stderr F [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1c659b0]\n2023-04-29T04:50:47.850814857Z stderr F \n2023-04-29T04:50:47.850821558Z stderr F goroutine 132 [running]:\n2023-04-29T04:50:47.850828198Z stderr F k8s.io/kubernetes/cmd/kube-proxy/app.(*ProxyServer).Run(0xc00084ecb0)\n2023-04-29T04:50:47.850835219Z stderr F \tcmd/kube-proxy/app/server.go:767 +0x1130\n2023-04-29T04:50:47.850841683Z stderr F k8s.io/kubernetes/cmd/kube-proxy/app.(*Options).runLoop.func1()\n2023-04-29T04:50:47.850847097Z stderr F \tcmd/kube-proxy/app/server.go:326 +0x2b\n2023-04-29T04:50:47.850852342Z stderr F created by k8s.io/kubernetes/cmd/kube-proxy/app.(*Options).runLoop\n2023-04-29T04:50:47.850858125Z stderr F \tcmd/kube-proxy/app/server.go:325 +0x70", - "markdown": "2023-04-29T04:50:47.850779535Z stderr F panic: runtime error: invalid memory address or nil pointer dereference\n 2023-04-29T04:50:47.850808505Z stderr F [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1c659b0]\n 2023-04-29T04:50:47.850814857Z stderr F \n 2023-04-29T04:50:47.850821558Z stderr F goroutine 132 [running]:\n 2023-04-29T04:50:47.850828198Z stderr F k8s.io/kubernetes/cmd/kube-proxy/app.(*ProxyServer).Run(0xc00084ecb0)\n 2023-04-29T04:50:47.850835219Z stderr F \tcmd/kube-proxy/app/server.go:767 +0x1130\n 2023-04-29T04:50:47.850841683Z stderr F k8s.io/kubernetes/cmd/kube-proxy/app.(*Options).runLoop.func1()\n 2023-04-29T04:50:47.850847097Z stderr F \tcmd/kube-proxy/app/server.go:326 +0x2b\n 2023-04-29T04:50:47.850852342Z stderr F created by k8s.io/kubernetes/cmd/kube-proxy/app.(*Options).runLoop\n 2023-04-29T04:50:47.850858125Z stderr F \tcmd/kube-proxy/app/server.go:325 +0x70 ([#117690](https://github.com/kubernetes/kubernetes/pull/117690), [@pacoxu](https://github.com/pacoxu)) [SIG Network and Scalability]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117690", - "pr_number": 117690, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "scalability" - ], - "duplicate": true, - "do_not_publish": true - }, - "117696": { - "commit": "21afcd453a13443976e37526ce3e2b0b0072b2ab", - "text": "Pods which set `hostNetwork: true` and declare ports, get the `hostPort` field set automatically. Previously this would happen in the PodTemplate of a Deployment, DaemonSet or other workload API. Now `hostPort` will only be set when an actual Pod is being created. If this presents a problem, setting the feature gate \"DefaultHostNetworkHostPortsInPodTemplates\" to true will revert this behavior. Please file a kubernetes bug if you need to do this.", - "markdown": "Pods which set `hostNetwork: true` and declare ports, get the `hostPort` field set automatically. Previously this would happen in the PodTemplate of a Deployment, DaemonSet or other workload API. Now `hostPort` will only be set when an actual Pod is being created. If this presents a problem, setting the feature gate \"DefaultHostNetworkHostPortsInPodTemplates\" to true will revert this behavior. Please file a kubernetes bug if you need to do this. ([#117696](https://github.com/kubernetes/kubernetes/pull/117696), [@thockin](https://github.com/thockin)) [SIG Apps]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117696", - "pr_number": 117696, - "kinds": [ - "bug", - "cleanup", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "117702": { - "commit": "18d05b646d09b2971dc5400bc288062b0414e8cf", - "text": "Renamed `PodHasNetwork` to `PodReadyToStartContainers`.", - "markdown": "Renamed `PodHasNetwork` to `PodReadyToStartContainers`. ([#117702](https://github.com/kubernetes/kubernetes/pull/117702), [@kannon92](https://github.com/kannon92)) [SIG Node and Testing]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3085-pod-conditions-for-starting-completition-of-sandbox-creation", - "type": "KEP" - } - ], - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117702", - "pr_number": 117702, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "117705": { - "commit": "3f8c4794eadf8aadd8a5bcb0b875bf0af5c2020b", - "text": "Fixed a race condition serving `OpenAPI` content", - "markdown": "Fixed a race condition serving `OpenAPI` content ([#117705](https://github.com/kubernetes/kubernetes/pull/117705), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117705", - "pr_number": 117705, - "areas": [ - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "117713": { - "commit": "78833e1b3385ea3485d38aa46586d39195377ec9", - "text": "The `SelfSubjectReview` API is promoted to `authentication.k8s.io/v1` and the `kubectl auth whoami` command is GA.", - "markdown": "The `SelfSubjectReview` API is promoted to `authentication.k8s.io/v1` and the `kubectl auth whoami` command is GA. ([#117713](https://github.com/kubernetes/kubernetes/pull/117713), [@nabokihms](https://github.com/nabokihms)) [SIG API Machinery, Architecture, Auth, CLI and Testing]", - "author": "nabokihms", - "author_url": "https://github.com/nabokihms", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117713", - "pr_number": 117713, - "areas": [ - "test", - "kubectl", - "conformance", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cli", - "testing", - "architecture" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "117717": { - "commit": "af92da5cb7d936dbd64a3f6266dff4408c755858", - "text": "Allowed container runtimes to use `ErrSignatureValidationFailed` as possible image pull failure.", - "markdown": "Allowed container runtimes to use `ErrSignatureValidationFailed` as possible image pull failure. ([#117717](https://github.com/kubernetes/kubernetes/pull/117717), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117717", - "pr_number": 117717, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "117718": { - "commit": "7dec98cdccf3258a08e0a2979b6b1670ecb16345", - "text": "kube-proxy handles Terminating EndpointSlices conditions and enables zero downtime deployments for Services with ExternalTrafficPolicy=Local author: @andrewsykim", - "markdown": "Kube-proxy handles Terminating EndpointSlices conditions and enables zero downtime deployments for Services with ExternalTrafficPolicy=Local author: @andrewsykim ([#117718](https://github.com/kubernetes/kubernetes/pull/117718), [@aojea](https://github.com/aojea)) [SIG Network, Testing and Windows]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1669", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/blog/2022/12/30/advancements-in-kubernetes-traffic-engineering/", - "type": "external" - }, - { - "description": "[Example1]", - "url": "https://gist.github.com/aojea/84fc66fde269f8aef1a4932d074285db", - "type": "external" - }, - { - "description": "[Example2]", - "url": "https://gist.github.com/aojea/cd72e17b7238114a35cb9c82bf2324cb", - "type": "external" - } - ], - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117718", - "pr_number": 117718, - "areas": [ - "test", - "kube-proxy", - "ipvs" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "windows", - "testing" - ], - "feature": true, - "duplicate": true - }, - "117724": { - "commit": "19aaf0c0e1686f2619104d2c6261cff4916696ac", - "text": "If `kubeadm reset` finds no etcd member ID for the peer it removes during the `remove-etcd-member` phase, it continues immediately to other phases, instead of retrying the phase for up to 3 minutes before continuing.", - "markdown": "If `kubeadm reset` finds no etcd member ID for the peer it removes during the `remove-etcd-member` phase, it continues immediately to other phases, instead of retrying the phase for up to 3 minutes before continuing. ([#117724](https://github.com/kubernetes/kubernetes/pull/117724), [@dlipovetsky](https://github.com/dlipovetsky)) [SIG Cluster Lifecycle]", - "author": "dlipovetsky", - "author_url": "https://github.com/dlipovetsky", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117724", - "pr_number": 117724, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "117727": { - "commit": "e121039461f2bba67f5c4d08d31211aa0716edcf", - "text": "Metric `scheduler_scheduler_goroutines` is removed. Use `scheduler_goroutines` instead.", - "markdown": "Metric `scheduler_scheduler_goroutines` is removed. Use `scheduler_goroutines` instead. ([#117727](https://github.com/kubernetes/kubernetes/pull/117727), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling]", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117727", - "pr_number": 117727, - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "duplicate_kind": true, - "action_required": true - }, - "117740": { - "commit": "66e99b3ff1649fc9bd3d9ef36affa1b16c5e2e21", - "text": "Support for proxying a request to a peer kube-apiserver if the local apiserver is not able to serve it due to version skew or in the case the requested api is disabled on the local apiserver", - "markdown": "Support for proxying a request to a peer kube-apiserver if the local apiserver is not able to serve it due to version skew or in the case the requested api is disabled on the local apiserver ([#117740](https://github.com/kubernetes/kubernetes/pull/117740), [@Richabanker](https://github.com/Richabanker)) [SIG API Machinery, Apps, Auth, Cloud Provider, Network, Node and Testing]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/4020-unknown-version-interoperability-proxy", - "type": "KEP" - } - ], - "author": "Richabanker", - "author_url": "https://github.com/Richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117740", - "pr_number": 117740, - "areas": [ - "test", - "kubelet", - "apiserver", - "cloudprovider", - "provider/gcp" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "network", - "node", - "api-machinery", - "auth", - "apps", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "117744": { - "commit": "af79ecbd4b1a33d640522e6a7c7d5c69d6df0046", - "text": "Kubernetes is now built with Go `1.20.4`.", - "markdown": "Kubernetes is now built with Go `1.20.4`. ([#117744](https://github.com/kubernetes/kubernetes/pull/117744), [@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/117744", - "pr_number": 117744, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "117746": { - "commit": "20578f7daab25642b9d26c3853c37b2f9018f411", - "text": "Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.4`", - "markdown": "Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.4` ([#117746](https://github.com/kubernetes/kubernetes/pull/117746), [@xmudrii](https://github.com/xmudrii)) [SIG Testing]", - "author": "xmudrii", - "author_url": "https://github.com/xmudrii", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117746", - "pr_number": 117746, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - }, - "117751": { - "commit": "fa487b0ddddee0c4883b0bee0de4d97dc9be1a18", - "text": "Reverted NewVolumeManagerReconstruction and SELinuxMountReadWriteOncePod feature gates to disabled by default to resolve a regression of volume reconstruction on kubelet/node restart", - "markdown": "Reverted NewVolumeManagerReconstruction and SELinuxMountReadWriteOncePod feature gates to disabled by default to resolve a regression of volume reconstruction on kubelet/node restart ([#117751](https://github.com/kubernetes/kubernetes/pull/117751), [@liggitt](https://github.com/liggitt)) [SIG Storage]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117751", - "pr_number": 117751, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "storage" - ], - "duplicate_kind": true - }, - "117784": { - "commit": "51cfa6134a2e357c6b30b6c4ad7dba1ce887bc9d", - "text": "NONE", - "markdown": "NONE ([#117784](https://github.com/kubernetes/kubernetes/pull/117784), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117784", - "pr_number": 117784, - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ], - "do_not_publish": true - }, - "117787": { - "commit": "f418411d0f74b5b7a1738f6d79714f96ca3d78d7", - "text": "`kube-proxy` in iptables mode will now have separate `sync_full_proxy_rules_duration_seconds`\\nand\n`sync_partial_proxy_rules_duration_seconds` (in addition to the existing\\n`sync_proxy_rules_duration_seconds`),\ngiving better information about the duration of each \\nsync type, rather than\nonly giving a weighted average of the two sync types together.", - "markdown": "`kube-proxy` in iptables mode will now have separate `sync_full_proxy_rules_duration_seconds`\\nand\n `sync_partial_proxy_rules_duration_seconds` (in addition to the existing\\n`sync_proxy_rules_duration_seconds`),\n giving better information about the duration of each \\nsync type, rather than\n only giving a weighted average of the two sync types together. ([#117787](https://github.com/kubernetes/kubernetes/pull/117787), [@danwinship](https://github.com/danwinship))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3453", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117787", - "pr_number": 117787, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "117791": { - "commit": "e865b30abd0a862697ff1d2526ea8897ee98a523", - "text": "NONE", - "markdown": "NONE ([#117791](https://github.com/kubernetes/kubernetes/pull/117791), [@nnmin-aws](https://github.com/nnmin-aws))", - "author": "nnmin-aws", - "author_url": "https://github.com/nnmin-aws", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117791", - "pr_number": 117791, - "areas": [ - "test", - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "auth", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "117793": { - "commit": "86d786090ac9390d4b724a7294e8bb96825eeefe", - "text": "If using cgroups v2, then the cgroup aware OOM killer will be enabled for container cgroups via `memory.oom.group` . This causes processes within the cgroup to be treated as a unit and killed simultaneously in the event of an OOM kill on any process in the cgroup.", - "markdown": "If using cgroups v2, then the cgroup aware OOM killer will be enabled for container cgroups via `memory.oom.group` . This causes processes within the cgroup to be treated as a unit and killed simultaneously in the event of an OOM kill on any process in the cgroup. ([#117793](https://github.com/kubernetes/kubernetes/pull/117793), [@tzneal](https://github.com/tzneal)) [SIG Apps, Node and Testing]", - "author": "tzneal", - "author_url": "https://github.com/tzneal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117793", - "pr_number": 117793, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "117794": { - "commit": "7aea5a9b25696b043f470660c982199abb6fe3fa", - "text": "The scheduler skips the `InterPodAffinity` Score plugin when nothing to do with the Pod.\nIt will affect some metrics values related to the InterPodAffinity Score plugin.", - "markdown": "The scheduler skips the `InterPodAffinity` Score plugin when nothing to do with the Pod.\n It will affect some metrics values related to the InterPodAffinity Score plugin. ([#117794](https://github.com/kubernetes/kubernetes/pull/117794), [@utam0k](https://github.com/utam0k)) [SIG Scheduling]", - "author": "utam0k", - "author_url": "https://github.com/utam0k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117794", - "pr_number": 117794, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "117800": { - "commit": "d37c62dcbf554400990f4b9eff3236e75721afdc", - "text": "kube-proxy: added `--logging-format` flag to support structured logging.", - "markdown": "Kube-proxy: added `--logging-format` flag to support structured logging. ([#117800](https://github.com/kubernetes/kubernetes/pull/117800), [@cyclinder](https://github.com/cyclinder))", - "author": "cyclinder", - "author_url": "https://github.com/cyclinder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117800", - "pr_number": 117800, - "areas": [ - "kube-proxy", - "apiserver", - "logging", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "instrumentation", - "architecture" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "117802": { - "commit": "6aa68d6a8b48c88348d4acd4e39f864b4634270b", - "text": "Revised the comment about the feature-gate level for `PodFailurePolicy` from alpha to beta.", - "markdown": "Revised the comment about the feature-gate level for `PodFailurePolicy` from alpha to beta. ([#117802](https://github.com/kubernetes/kubernetes/pull/117802), [@kerthcet](https://github.com/kerthcet)) [SIG API Machinery and Apps]", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117802", - "pr_number": 117802, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "117804": { - "commit": "ac07b4612ec30f82f9b248baecd4cf0d714731bb", - "text": "Fixed kubelet startup getting stuck with `NewVolumeManagerReconstruction` feature enabled and a CSI volume present in /var/lib/kubelet/pods.", - "markdown": "Fixed kubelet startup getting stuck with `NewVolumeManagerReconstruction` feature enabled and a CSI volume present in /var/lib/kubelet/pods. ([#117804](https://github.com/kubernetes/kubernetes/pull/117804), [@jsafrane](https://github.com/jsafrane)) [SIG Node and Storage]", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117804", - "pr_number": 117804, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true - }, - "117835": { - "commit": "50ce1345957fafcf8685313419eaf07fbb1724fb", - "text": "`kubeadm`: `crictl pull` should use `-i` to set the image service endpoint.", - "markdown": "`kubeadm`: `crictl pull` should use `-i` to set the image service endpoint. ([#117835](https://github.com/kubernetes/kubernetes/pull/117835), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117835", - "pr_number": 117835, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "117861": { - "commit": "b32941f60d3ba789965bbf32f4f5bf756feab075", - "text": "`kubeadm`: fixed a bug where file copy(backup) could not be executed correctly\non Windows platform during upgrade.", - "markdown": "`kubeadm`: fixed a bug where file copy(backup) could not be executed correctly\n on Windows platform during upgrade. ([#117861](https://github.com/kubernetes/kubernetes/pull/117861), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117861", - "pr_number": 117861, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "117865": { - "commit": "229dd79efde26caba43feb376d0e81e705d38220", - "text": "Faster `StatefulSet` creation when `Parallel` mode is enabled.", - "markdown": "Faster `StatefulSet` creation when `Parallel` mode is enabled. ([#117865](https://github.com/kubernetes/kubernetes/pull/117865), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", - "author": "aleksandra-malinowska", - "author_url": "https://github.com/aleksandra-malinowska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117865", - "pr_number": 117865, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "117870": { - "commit": "decf1e1a9b53a4f4b24bb780d6433e2d5e959d83", - "text": "Fixed a race condition between `Run()` and `SetTransform()` and `SetWatchErrorHandler()` in shared informers.", - "markdown": "Fixed a race condition between `Run()` and `SetTransform()` and `SetWatchErrorHandler()` in shared informers. ([#117870](https://github.com/kubernetes/kubernetes/pull/117870), [@howardjohn](https://github.com/howardjohn)) [SIG API Machinery]", - "author": "howardjohn", - "author_url": "https://github.com/howardjohn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117870", - "pr_number": 117870, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "117877": { - "commit": "18e3f01deda3bc1ea62751553df0b689598de7a7", - "text": "Promoted `ServiceNodePortStaticSubrange` feature gate to beta, and it will be enabled by default.", - "markdown": "Promoted `ServiceNodePortStaticSubrange` feature gate to beta, and it will be enabled by default. ([#117877](https://github.com/kubernetes/kubernetes/pull/117877), [@xuzhenglun](https://github.com/xuzhenglun))", - "author": "xuzhenglun", - "author_url": "https://github.com/xuzhenglun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117877", - "pr_number": 117877, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "117879": { - "commit": "714221dbaab91cf903b004324821560dc4d06fe6", - "text": "NONE", - "markdown": "NONE ([#117879](https://github.com/kubernetes/kubernetes/pull/117879), [@kkkkun](https://github.com/kkkkun))", - "author": "kkkkun", - "author_url": "https://github.com/kkkkun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117879", - "pr_number": 117879, - "areas": [ - "release-eng" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "117884": { - "commit": "a5575425b039bf7c15dfaa9a7acf257fdc4fde3f", - "text": "Fixed issue where there was no response or error from kubectl rollout status when there were no resources of specified kind.", - "markdown": "Fixed issue where there was no response or error from kubectl rollout status when there were no resources of specified kind. ([#117884](https://github.com/kubernetes/kubernetes/pull/117884), [@gxwilkerson33](https://github.com/gxwilkerson33)) [SIG CLI]", - "author": "gxwilkerson33", - "author_url": "https://github.com/gxwilkerson33", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117884", - "pr_number": 117884, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "117897": { - "commit": "06c9a7daee47eca6bbe6f88f8f9201328f07be12", - "text": "The `generate_groups.sh` and `generate_internal_groups.sh` scripts from the `k8s.io/code-generator` repo are deprecated (but still work) in favor of `kube_codegen.sh` in that same repo. Projects which use the old scripts are encouraged to look at adopting the new one.", - "markdown": "The `generate_groups.sh` and `generate_internal_groups.sh` scripts from the `k8s.io/code-generator` repo are deprecated (but still work) in favor of `kube_codegen.sh` in that same repo. Projects which use the old scripts are encouraged to look at adopting the new one. ([#117897](https://github.com/kubernetes/kubernetes/pull/117897), [@thockin](https://github.com/thockin)) [SIG API Machinery]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117897", - "pr_number": 117897, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "117912": { - "commit": "006c0110aaf6e73154b6b2a886c7755d8cac67a3", - "text": "Fixed dra e2e image build on non-amd64 architectures.", - "markdown": "Fixed dra e2e image build on non-amd64 architectures. ([#117912](https://github.com/kubernetes/kubernetes/pull/117912), [@bart0sh](https://github.com/bart0sh)) [SIG Node and Testing]", - "author": "bart0sh", - "author_url": "https://github.com/bart0sh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117912", - "pr_number": 117912, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "117913": { - "commit": "4e12a5f60f9e538bf5aab6318b8cd14d28fb5aca", - "text": "NONE", - "markdown": "NONE ([#117913](https://github.com/kubernetes/kubernetes/pull/117913), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117913", - "pr_number": 117913, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "117919": { - "commit": "f70c26d49510adf0bed1736e12cd48849b33ed6c", - "text": "Removed leading zeros from the etcd member ID in kubeadm log messages.", - "markdown": "Removed leading zeros from the etcd member ID in kubeadm log messages. ([#117919](https://github.com/kubernetes/kubernetes/pull/117919), [@dlipovetsky](https://github.com/dlipovetsky)) [SIG Cluster Lifecycle]", - "author": "dlipovetsky", - "author_url": "https://github.com/dlipovetsky", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117919", - "pr_number": 117919, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "117927": { - "commit": "c3c731890c8b95c4ccf82da3e8420b01ad14cf9e", - "text": "Added a new event `FailedToRetrieveImagePullSecret` which will be generated when a pod references an `ImagePullSecret` that doesn't exist.", - "markdown": "Added a new event `FailedToRetrieveImagePullSecret` which will be generated when a pod references an `ImagePullSecret` that doesn't exist. ([#117927](https://github.com/kubernetes/kubernetes/pull/117927), [@kaisoz](https://github.com/kaisoz)) [SIG Node]", - "author": "kaisoz", - "author_url": "https://github.com/kaisoz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117927", - "pr_number": 117927, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "117930": { - "commit": "82f7cf6010e02700a9589f473af87910b4061924", - "text": "The helping message of commands which have sub-commands is now clearer and more instructive. It will show the full command instead of `kubectl \u003ccommand\u003e --help ...`\n\nChanged `kubectl create secret --help` description. There will be a short introduction to the three secret types and clearer guidance on how to use the command.", - "markdown": "The helping message of commands which have sub-commands is now clearer and more instructive. It will show the full command instead of `kubectl \u003ccommand\u003e --help ...`\n \n Changed `kubectl create secret --help` description. There will be a short introduction to the three secret types and clearer guidance on how to use the command. ([#117930](https://github.com/kubernetes/kubernetes/pull/117930), [@LronDC](https://github.com/LronDC))", - "author": "LronDC", - "author_url": "https://github.com/LronDC", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117930", - "pr_number": 117930, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "117984": { - "commit": "7024beeeeb1f2e4cde93805a137cd7ad92fec466", - "text": "`kubeadm`: speedup init by 0s or 20s. kubelet-start phase is now after etcd\nand control-plane phases, removing a race condition between kubelet looking for\nstatic pod manifests and kubeadm writing them.", - "markdown": "`kubeadm`: speedup init by 0s or 20s. kubelet-start phase is now after etcd\n and control-plane phases, removing a race condition between kubelet looking for\n static pod manifests and kubeadm writing them. ([#117984](https://github.com/kubernetes/kubernetes/pull/117984), [@champtar](https://github.com/champtar))", - "author": "champtar", - "author_url": "https://github.com/champtar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117984", - "pr_number": 117984, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "117999": { - "commit": "54dbb93388a04a3d15d54bd22dfe49f81397a705", - "text": "Updated etcd image to `3.5.9-0`.", - "markdown": "Updated etcd image to `3.5.9-0`. ([#117999](https://github.com/kubernetes/kubernetes/pull/117999), [@kkkkun](https://github.com/kkkkun)) [SIG API Machinery]", - "author": "kkkkun", - "author_url": "https://github.com/kkkkun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117999", - "pr_number": 117999, - "areas": [ - "release-eng" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "118000": { - "commit": "aae20dcb78a9a346121ac4adf4730e97d6ff1a6c", - "text": "NONE", - "markdown": "NONE ([#118000](https://github.com/kubernetes/kubernetes/pull/118000), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118000", - "pr_number": 118000, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "118009": { - "commit": "a15c27661e68695be81d018a1fb81683881f4266", - "text": "Supported `BackoffLimitPerIndex` in Jobs.", - "markdown": "Supported `BackoffLimitPerIndex` in Jobs. ([#118009](https://github.com/kubernetes/kubernetes/pull/118009), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3850-backoff-limits-per-index-for-indexed-jobs", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118009", - "pr_number": 118009, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "118013": { - "commit": "90ed8ba68729b49a0989e5b04536e0d55c6be61b", - "text": "`kubeadm`: added a new \"kubeadm config validate\" command that can be used to\nvalidate any input config file. Use the `--config` flag to pass a config file\nto it. See the command `--help` screen for more information. As a result of adding\nthis new command, enhance the validation capabilities of the existing \"kubeadm\nconfig migrate\" command. For both commands unknown APIs or fields will throw errors.", - "markdown": "`kubeadm`: added a new \"kubeadm config validate\" command that can be used to\n validate any input config file. Use the `--config` flag to pass a config file\n to it. See the command `--help` screen for more information. As a result of adding\n this new command, enhance the validation capabilities of the existing \"kubeadm\n config migrate\" command. For both commands unknown APIs or fields will throw errors. ([#118013](https://github.com/kubernetes/kubernetes/pull/118013), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118013", - "pr_number": 118013, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "118018": { - "commit": "8d491e676ab9e4c84d68e28d727781bd5cc69f89", - "text": "The feature gate `CSIStorageCapacity` have been removed and must no longer be referenced in `--feature-gates` flags.", - "markdown": "The feature gate `CSIStorageCapacity` have been removed and must no longer be referenced in `--feature-gates` flags. ([#118018](https://github.com/kubernetes/kubernetes/pull/118018), [@humblec](https://github.com/humblec))", - "author": "humblec", - "author_url": "https://github.com/humblec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118018", - "pr_number": 118018, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "118025": { - "commit": "293c1b837857c344c17194bf743e846dc355560c", - "text": "`plugin_evaluation_total` metric supports prescore/score extension point.\nThe metric doesn't get incremented when the prescore/score plugin has nothing to do with an incoming pod.", - "markdown": "`plugin_evaluation_total` metric supports prescore/score extension point.\n The metric doesn't get incremented when the prescore/score plugin has nothing to do with an incoming pod. ([#118025](https://github.com/kubernetes/kubernetes/pull/118025), [@AxeZhan](https://github.com/AxeZhan))", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118025", - "pr_number": 118025, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "118029": { - "commit": "0bff705acd8982e34b937116eb2016c9d6e4c4a6", - "text": "Code blocks in `kubectl {$COMMAND}--help` will move right by 3 indentation.", - "markdown": "Code blocks in `kubectl {$COMMAND}--help` will move right by 3 indentation. ([#118029](https://github.com/kubernetes/kubernetes/pull/118029), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118029", - "pr_number": 118029, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "118041": { - "commit": "d6e525877b511a96b1355b7b5999aca0d7104967", - "text": "Added fields `reason` and `fieldPath` into CRD validation rules to allow users to specify reason and field path when validation failed.", - "markdown": "Added fields `reason` and `fieldPath` into CRD validation rules to allow users to specify reason and field path when validation failed. ([#118041](https://github.com/kubernetes/kubernetes/pull/118041), [@cici37](https://github.com/cici37)) [SIG API Machinery]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/2876-crd-validation-expression-language", - "type": "KEP" - } - ], - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118041", - "pr_number": 118041, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "118049": { - "commit": "d0accc3f02e5050920493c08ad759cd0d6d39781", - "text": "The `pod_scheduling_duration_seconds` metrics won't consider the time when a pod fails `PreEnqueue` (like being gated).", - "markdown": "The `pod_scheduling_duration_seconds` metrics won't consider the time when a pod fails `PreEnqueue` (like being gated). ([#118049](https://github.com/kubernetes/kubernetes/pull/118049), [@helayoty](https://github.com/helayoty))", - "author": "helayoty", - "author_url": "https://github.com/helayoty", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118049", - "pr_number": 118049, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "118055": { - "commit": "cc60a9348536a85978946de3001dc6a3737cf516", - "text": "Exposed `rest.DefaultServerUrlFor` function.", - "markdown": "Exposed `rest.DefaultServerUrlFor` function. ([#118055](https://github.com/kubernetes/kubernetes/pull/118055), [@timofurrer](https://github.com/timofurrer))", - "author": "timofurrer", - "author_url": "https://github.com/timofurrer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118055", - "pr_number": 118055, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "118069": { - "commit": "f9d97e08800ee6436b80740f1406c0f5a1dccbbf", - "text": "`kubeadm:` fixed a bug where the static pod changes detection logic is inconsistent\nwith kubelet.", - "markdown": "`kubeadm:` fixed a bug where the static pod changes detection logic is inconsistent\n with kubelet. ([#118069](https://github.com/kubernetes/kubernetes/pull/118069), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118069", - "pr_number": 118069, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "118102": { - "commit": "960830bc660872ff5679f84e676474e3cb536e12", - "text": "`RetroactiveDefaultStorageClass` feature made stable and enabled by default.", - "markdown": "`RetroactiveDefaultStorageClass` feature made stable and enabled by default. ([#118102](https://github.com/kubernetes/kubernetes/pull/118102), [@RomanBednar](https://github.com/RomanBednar))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3333", - "type": "KEP" - }, - { - "description": "[Other doc]", - "url": "https://github.com/kubernetes/enhancements/pull/4021", - "type": "KEP" - }, - { - "description": "[Other doc]", - "url": "https://github.com/kubernetes/website/pull/41206", - "type": "external" - } - ], - "author": "RomanBednar", - "author_url": "https://github.com/RomanBednar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118102", - "pr_number": 118102, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118104": { - "commit": "7ad8303b9602252b18932d34377cd2793595d537", - "text": "Fixed a bug at `kube-apiserver` start where `APIService` objects for custom resources could be deleted and recreated.", - "markdown": "Fixed a bug at `kube-apiserver` start where `APIService` objects for custom resources could be deleted and recreated. ([#118104](https://github.com/kubernetes/kubernetes/pull/118104), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118104", - "pr_number": 118104, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "118115": { - "commit": "de7360d9bc8ee0758e03d072c60e23f91edd2298", - "text": "kube-proxy: removed log warning about not using config file.", - "markdown": "Kube-proxy: removed log warning about not using config file. ([#118115](https://github.com/kubernetes/kubernetes/pull/118115), [@TommyStarK](https://github.com/TommyStarK)) [SIG Network]", - "author": "TommyStarK", - "author_url": "https://github.com/TommyStarK", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118115", - "pr_number": 118115, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "118128": { - "commit": "173a4738035b186f50c5882546155b13bb7f576d", - "text": "kube-controller-manager deprecate `--volume-host-cidr-denylist` and `--volume-host-allow-local-loopback` flags.", - "markdown": "Kube-controller-manager deprecate `--volume-host-cidr-denylist` and `--volume-host-allow-local-loopback` flags. ([#118128](https://github.com/kubernetes/kubernetes/pull/118128), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Network, Node, Storage and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118128", - "pr_number": 118128, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change", - "deprecation" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "118132": { - "commit": "7f2a1e8cd3363b04d970c619daf9f9d5ee5d50c0", - "text": "Improved exponential backoff in Reflector, significantly reducing the load on Kubernetes apiserver in case of throttling of requests.", - "markdown": "Improved exponential backoff in Reflector, significantly reducing the load on Kubernetes apiserver in case of throttling of requests. ([#118132](https://github.com/kubernetes/kubernetes/pull/118132), [@marseel](https://github.com/marseel)) [SIG API Machinery and Scalability]", - "author": "marseel", - "author_url": "https://github.com/marseel", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118132", - "pr_number": 118132, - "kinds": [ - "bug" - ], - "sigs": [ - "scalability", - "api-machinery" - ], - "duplicate": true - }, - "118137": { - "commit": "2fe38f93e53201b0c9e58aa6e3d37b8a61d2ca23", - "text": "Added new annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` to Job objects scheduled from CronJobs.", - "markdown": "Added new annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` to Job objects scheduled from CronJobs. ([#118137](https://github.com/kubernetes/kubernetes/pull/118137), [@helayoty](https://github.com/helayoty))", - "author": "helayoty", - "author_url": "https://github.com/helayoty", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118137", - "pr_number": 118137, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "duplicate_kind": true - }, - "118143": { - "commit": "6b700c398be2ecb92b0b3b8c13444f9d467a8fe7", - "text": "CephFS volume plugin (`kubernetes.io/cephfs`) has been deprecated in this release and will be removed in a subsequent release. The alternative is to use the CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes cluster.", - "markdown": "CephFS volume plugin (`kubernetes.io/cephfs`) has been deprecated in this release and will be removed in a subsequent release. The alternative is to use the CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes cluster. ([#118143](https://github.com/kubernetes/kubernetes/pull/118143), [@humblec](https://github.com/humblec))", - "author": "humblec", - "author_url": "https://github.com/humblec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118143", - "pr_number": 118143, - "kinds": [ - "deprecation" - ], - "sigs": [ - "storage" - ], - "action_required": true - }, - "118160": { - "commit": "00b8a0a95bb942ad5bfc1bc338452cb983746030", - "text": "The \"value\" part in the `wait --for=jsonpath='{expression}'[=value]` is now\noptional. If the value is not provided i.e., the command looks like `wait --for=jsonpath='{expression}'`\nthen the wait condition is interpreted as matched when the expression returns\n*any* single JSON value like object or a literal.", - "markdown": "The \"value\" part in the `wait --for=jsonpath='{expression}'[=value]` is now\n optional. If the value is not provided i.e., the command looks like `wait --for=jsonpath='{expression}'`\n then the wait condition is interpreted as matched when the expression returns\n *any* single JSON value like object or a literal. ([#118160](https://github.com/kubernetes/kubernetes/pull/118160), [@minherz](https://github.com/minherz))", - "author": "minherz", - "author_url": "https://github.com/minherz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118160", - "pr_number": 118160, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118204": { - "commit": "f42ff8687026f8e12fb3d3b0da0760525d8d8ab2", - "text": "Shrank the `OpenAPI v2` spec by more than 50%, especially for less CPU resource consumption.", - "markdown": "Shrank the `OpenAPI v2` spec by more than 50%, especially for less CPU resource consumption. ([#118204](https://github.com/kubernetes/kubernetes/pull/118204), [@sttts](https://github.com/sttts))", - "author": "sttts", - "author_url": "https://github.com/sttts", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118204", - "pr_number": 118204, - "areas": [ - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "118209": { - "commit": "bea27f82d335fa730df50454df007d9bd004dd5a", - "text": "kube-controller-manager: the dynamic resource controller steps in when a pod got created such that the scheduler ignores it (i.e. spec.nodeName is set) and then takes care of triggering delayed resource claim allocation and/or reserving a claim for the pod.", - "markdown": "Kube-controller-manager: the dynamic resource controller steps in when a pod got created such that the scheduler ignores it (i.e. spec.nodeName is set) and then takes care of triggering delayed resource claim allocation and/or reserving a claim for the pod. ([#118209](https://github.com/kubernetes/kubernetes/pull/118209), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node and Testing]", - "documentation": [ - { - "description": "-KEP", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118209", - "pr_number": 118209, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118212": { - "commit": "853e3bd027d1957635946517045d3b46bef842b7", - "text": "Reduced CPU and memory consumption of `kube-apiserver` if OpenAPI V2 will not be accessed by any client. Also improved performance of the apiserver on installation of many CRDs.", - "markdown": "Reduced CPU and memory consumption of `kube-apiserver` if OpenAPI V2 will not be accessed by any client. Also improved performance of the apiserver on installation of many CRDs. ([#118212](https://github.com/kubernetes/kubernetes/pull/118212), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118212", - "pr_number": 118212, - "areas": [ - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "118228": { - "commit": "be2cfc969703120f50fdcfc6fdf3a1ec2a7a9a75", - "text": "Moved `non-graceful node` shutdown to GA.", - "markdown": "Moved `non-graceful node` shutdown to GA. ([#118228](https://github.com/kubernetes/kubernetes/pull/118228), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2268-non-graceful-shutdown", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118228", - "pr_number": 118228, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118229": { - "commit": "e11c5284ad01554b60c29b8d3f6337f2c735e7fb", - "text": "NONE", - "markdown": "NONE ([#118229](https://github.com/kubernetes/kubernetes/pull/118229), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118229", - "pr_number": 118229, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "118235": { - "commit": "6911d3b2b8a498c570d58827277347b2bb8c4100", - "text": "NONE", - "markdown": "NONE ([#118235](https://github.com/kubernetes/kubernetes/pull/118235), [@kkkkun](https://github.com/kkkkun))", - "author": "kkkkun", - "author_url": "https://github.com/kkkkun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118235", - "pr_number": 118235, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "118236": { - "commit": "a6f641b65649053c37302284d3481ec4a8528044", - "text": "Removed the deprecated `azureFile` in-tree storage plugin.", - "markdown": "Removed the deprecated `azureFile` in-tree storage plugin. ([#118236](https://github.com/kubernetes/kubernetes/pull/118236), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118236", - "pr_number": 118236, - "areas": [ - "kubelet", - "provider/azure" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cloud-provider" - ], - "duplicate": true - }, - "118253": { - "commit": "c831a08c8e68b6d07370adb926b4da7420854217", - "text": "Moved `k8s.io/kubernetes/pkg/kubelet/cri/streaming` package to `k8s.io/kubelet/pkg/cri/streaming`.", - "markdown": "Moved `k8s.io/kubernetes/pkg/kubelet/cri/streaming` package to `k8s.io/kubelet/pkg/cri/streaming`. ([#118253](https://github.com/kubernetes/kubernetes/pull/118253), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node, Release and Security]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118253", - "pr_number": 118253, - "areas": [ - "kubelet", - "release-eng", - "dependency", - "code-organization" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "release", - "security" - ], - "duplicate": true - }, - "118254": { - "commit": "bdcf812c95493891f5dd394f281294a648aec6c6", - "text": "A CDIDevice field is included in the Device Plugin's `ContainerAllocateResponse`. This field maps to the CDIDevice field in the CRI protocol.", - "markdown": "A CDIDevice field is included in the Device Plugin's `ContainerAllocateResponse`. This field maps to the CDIDevice field in the CRI protocol. ([#118254](https://github.com/kubernetes/kubernetes/pull/118254), [@elezar](https://github.com/elezar)) [SIG Node and Testing]", - "author": "elezar", - "author_url": "https://github.com/elezar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118254", - "pr_number": 118254, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "118262": { - "commit": "1c9f08a1c5c4199eccc7f7d3d49b32d18553a48e", - "text": "Enhanced clarity in error messaging when waiting for volume creation", - "markdown": "Enhanced clarity in error messaging when waiting for volume creation ([#118262](https://github.com/kubernetes/kubernetes/pull/118262), [@torredil](https://github.com/torredil)) [SIG Apps and Storage]", - "author": "torredil", - "author_url": "https://github.com/torredil", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118262", - "pr_number": 118262, - "kinds": [ - "documentation" - ], - "sigs": [ - "storage", - "apps" - ], - "duplicate": true - }, - "118267": { - "commit": "13172cba5c0e1c6a076dbda4aeebbccaf658c7f1", - "text": "Added namespace access support to the CEL expressions of ValidatingAdmissionPolicy via a `namespaceObject`\nvariable with expressions.", - "markdown": "Added namespace access support to the CEL expressions of ValidatingAdmissionPolicy via a `namespaceObject`\n variable with expressions. ([#118267](https://github.com/kubernetes/kubernetes/pull/118267), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3488", - "type": "KEP" - } - ], - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118267", - "pr_number": 118267, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "118270": { - "commit": "76bad75c1e64e4b6af2c8aa1730b91ddbb0b2035", - "text": "`kubeadm`: will now throw warnings instead of errors for deprecated feature gates.", - "markdown": "`kubeadm`: will now throw warnings instead of errors for deprecated feature gates. ([#118270](https://github.com/kubernetes/kubernetes/pull/118270), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118270", - "pr_number": 118270, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "118278": { - "commit": "1de217b095988a0e76b2ac4f3ebcfcbf4bb5f08e", - "text": "Updated the comment about the feature-gate level for `PodFailurePolicy` from alpha to beta", - "markdown": "Updated the comment about the feature-gate level for `PodFailurePolicy` from alpha to beta ([#118278](https://github.com/kubernetes/kubernetes/pull/118278), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118278", - "pr_number": 118278, - "kinds": [ - "bug", - "documentation", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "118292": { - "commit": "9ede836ea216e9aba0257a600684cf91001f1fae", - "text": "Kube-apiserver adds two new alpha metrics `conversion_webhook_request_total` and `conversion_webhook_duration_seconds` that allow users to monitor requests to CRD conversion webhooks, split by result, and failure_type (In case of failure).", - "markdown": "Kube-apiserver adds two new alpha metrics `conversion_webhook_request_total` and `conversion_webhook_duration_seconds` that allow users to monitor requests to CRD conversion webhooks, split by result, and failure_type (In case of failure). ([#118292](https://github.com/kubernetes/kubernetes/pull/118292), [@cchapla](https://github.com/cchapla)) [SIG API Machinery, Architecture and Instrumentation]", - "author": "cchapla", - "author_url": "https://github.com/cchapla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118292", - "pr_number": 118292, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "architecture" - ], - "duplicate": true - }, - "118303": { - "commit": "7472634bcb969db1d153ee4c7b451f8db5904a1d", - "text": "Deprecated support for CSI migration of `Ceph RBD volumes`. Users who were relying on Kubernetes' ability\nto migrate to an out-of-tree storage driver should complete that migration before the support for it is removed.", - "markdown": "Deprecated support for CSI migration of `Ceph RBD volumes`. Users who were relying on Kubernetes' ability\n to migrate to an out-of-tree storage driver should complete that migration before the support for it is removed. ([#118303](https://github.com/kubernetes/kubernetes/pull/118303), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2923-csi-migration-ceph-rbd", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118303", - "pr_number": 118303, - "kinds": [ - "deprecation" - ], - "sigs": [ - "storage" - ], - "action_required": true - }, - "118329": { - "commit": "9d231f8ce77b4a8413b41130ea130d392ca860c7", - "text": "Fixed the alpha `CloudDualStackNodeIPs` feature.", - "markdown": "Fixed the alpha `CloudDualStackNodeIPs` feature. ([#118329](https://github.com/kubernetes/kubernetes/pull/118329), [@danwinship](https://github.com/danwinship))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3705", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118329", - "pr_number": 118329, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "network", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "118339": { - "commit": "2815a28dfa1924c85f8b7f619851d98f35e61b55", - "text": "Introduce support for CEL optionals (see [CEL spec proposal 246](https://github.com/google/cel-spec/wiki/proposal-246)).\nThis feature will not be fully enabled until a future Kubernetes release (likely to be v1.29), but is added in v1.28 to enable\nsafe rollback on downgrade.", - "markdown": "Introduce support for CEL optionals (see [CEL spec proposal 246](https://github.com/google/cel-spec/wiki/proposal-246)).\n This feature will not be fully enabled until a future Kubernetes release (likely to be v1.29), but is added in v1.28 to enable\n safe rollback on downgrade. ([#118339](https://github.com/kubernetes/kubernetes/pull/118339), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, Cloud Provider and Testing]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118339", - "pr_number": 118339, - "areas": [ - "test", - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "118384": { - "commit": "bd0ac4cba33f40195b4ffab5463f2b5397216400", - "text": "OpenAPI proto deserializations should use `gnostic-models` instead of the gnostic library.", - "markdown": "OpenAPI proto deserializations should use `gnostic-models` instead of the gnostic library. ([#118384](https://github.com/kubernetes/kubernetes/pull/118384), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Node, Storage and Testing]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118384", - "pr_number": 118384, - "areas": [ - "test", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "118386": { - "commit": "cd32adebd9d52ae46827054350c17de085a4eb23", - "text": "Added `ServedVersions` field to `StorageVersion` API.", - "markdown": "Added `ServedVersions` field to `StorageVersion` API. ([#118386](https://github.com/kubernetes/kubernetes/pull/118386), [@Richabanker](https://github.com/Richabanker))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/4020-unknown-version-interoperability-proxy", - "type": "KEP" - } - ], - "author": "Richabanker", - "author_url": "https://github.com/Richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118386", - "pr_number": 118386, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "118413": { - "commit": "43dd3cce7381459adf86a7fa70b9eddc4085688d", - "text": "Compute the backoff delay more accurately for deleted pods", - "markdown": "Compute the backoff delay more accurately for deleted pods ([#118413](https://github.com/kubernetes/kubernetes/pull/118413), [@mimowo](https://github.com/mimowo)) [SIG Apps]", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118413", - "pr_number": 118413, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "118420": { - "commit": "b63700630231803967f85e83ff35d719db511baa", - "text": "ACTION_REQUIRED\nWhen an Indexed Job has a number of completions higher than 10^5 and parallelism higher than 10^4, and a big number of Indexes fail, Kubernetes might not be able to track the termination of the Job. Kubernetes now emits a warning, at Job creation, when the Job manifest exceeds both of these limits.", - "markdown": "ACTION_REQUIRED\n When an Indexed Job has a number of completions higher than 10^5 and parallelism higher than 10^4, and a big number of Indexes fail, Kubernetes might not be able to track the termination of the Job. Kubernetes now emits a warning, at Job creation, when the Job manifest exceeds both of these limits. ([#118420](https://github.com/kubernetes/kubernetes/pull/118420), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps]", - "documentation": [ - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#completion-mode", - "type": "official" - } - ], - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118420", - "pr_number": 118420, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "118460": { - "commit": "3b4496913453aa0a44ee818d5db185df51073ae7", - "text": "Fixed component status calling etcd health endpoint over http which exposed kubernetes to the risk of complete watch starvation and is inconsistent with other etcd probing done by `kube-apiserver`.", - "markdown": "Fixed component status calling etcd health endpoint over http which exposed kubernetes to the risk of complete watch starvation and is inconsistent with other etcd probing done by `kube-apiserver`. ([#118460](https://github.com/kubernetes/kubernetes/pull/118460), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118460", - "pr_number": 118460, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "118470": { - "commit": "a5332a839dd15f4499b5cea9a1dc4ef8eeb172bd", - "text": "Ensure Job status updates are batched by 1s. This fixes an unlikely scenario when a sequence of immediately \ncompleting pods could trigger a sequence of non-batched Job status updates.", - "markdown": "Ensure Job status updates are batched by 1s. This fixes an unlikely scenario when a sequence of immediately \n completing pods could trigger a sequence of non-batched Job status updates. ([#118470](https://github.com/kubernetes/kubernetes/pull/118470), [@mimowo](https://github.com/mimowo)) [SIG Apps]", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118470", - "pr_number": 118470, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "118480": { - "commit": "cd9215915baa00ad5428870c3e4de185ae102fe8", - "text": "`force_delete_pods_total` and `force_delete_pod_errors_total` metrics count all pod deletion behaviors.", - "markdown": "`force_delete_pods_total` and `force_delete_pod_errors_total` metrics count all pod deletion behaviors. ([#118480](https://github.com/kubernetes/kubernetes/pull/118480), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2268", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118480", - "pr_number": 118480, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "118497": { - "commit": "e81c24dfb89fdbab55ae2aaa6ddef14ea5c98b16", - "text": "Fixed deletion of non-admissible pods that are deleted during Kubelet restart.", - "markdown": "Fixed deletion of non-admissible pods that are deleted during Kubelet restart. ([#118497](https://github.com/kubernetes/kubernetes/pull/118497), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118497", - "pr_number": 118497, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "118499": { - "commit": "5a5ebfd88b2899f2116dc858100832f30ac33cf3", - "text": "Fixed a race condition in `kube-proxy` when using LocalModeNodeCIDR, to avoid dropping Services traffic if the object node is recreated when `kube-proxy` is starting.", - "markdown": "Fixed a race condition in `kube-proxy` when using LocalModeNodeCIDR, to avoid dropping Services traffic if the object node is recreated when `kube-proxy` is starting. ([#118499](https://github.com/kubernetes/kubernetes/pull/118499), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118499", - "pr_number": 118499, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "118507": { - "commit": "c042d6956f70566a81bc29c9af6896fefbf89aae", - "text": "Kubernetes is now built with Go `1.20.5`.", - "markdown": "Kubernetes is now built with Go `1.20.5`. ([#118507](https://github.com/kubernetes/kubernetes/pull/118507), [@jeremyrickard](https://github.com/jeremyrickard))", - "author": "jeremyrickard", - "author_url": "https://github.com/jeremyrickard", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118507", - "pr_number": 118507, - "areas": [ - "test", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "release-eng", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "storage", - "node", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "118508": { - "commit": "be13c6a884248c40cb3a50a24a622b4403138444", - "text": "Added `ConsistentListFromCache` feature gate that allows apiserver to serve consistent lists from cache.", - "markdown": "Added `ConsistentListFromCache` feature gate that allows apiserver to serve consistent lists from cache. ([#118508](https://github.com/kubernetes/kubernetes/pull/118508), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118508", - "pr_number": 118508, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118510": { - "commit": "c5100c0d11fb32930dc49fd0a6e2ec3a5aa99d9e", - "text": "e2e framework: the `node-role.kubernetes.io/master` taint has been removed from the default value of `--non-blocking-taints` flag. You may need to set `--non-blocking-taints` explicitly if the cluster to be tested has nodes with the deprecated `node-role.kubernetes.io/master` taint.", - "markdown": "E2e framework: the `node-role.kubernetes.io/master` taint has been removed from the default value of `--non-blocking-taints` flag. You may need to set `--non-blocking-taints` explicitly if the cluster to be tested has nodes with the deprecated `node-role.kubernetes.io/master` taint. ([#118510](https://github.com/kubernetes/kubernetes/pull/118510), [@SataQiu](https://github.com/SataQiu)) [SIG Testing]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118510", - "pr_number": 118510, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ] - }, - "118530": { - "commit": "bca13360215bbd2aad562207dcf0dd8a6a31779f", - "text": "Fixed Cronjob `status.lastSuccessfulTime` not populated by a manually triggered", - "markdown": "Fixed Cronjob `status.lastSuccessfulTime` not populated by a manually triggered ([#118530](https://github.com/kubernetes/kubernetes/pull/118530), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118530", - "pr_number": 118530, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "118540": { - "commit": "4954c7bac4029d2f2e4b305fdba41f81b718aefc", - "text": "ValidatingAdmissionPolicy type checking now correctly handles `authorizer` variable.", - "markdown": "ValidatingAdmissionPolicy type checking now correctly handles `authorizer` variable. ([#118540](https://github.com/kubernetes/kubernetes/pull/118540), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery]", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118540", - "pr_number": 118540, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "118541": { - "commit": "f17e2759f9a3ec6dbd1726bfd149e78a2711f7e0", - "text": "Updated distroless I-tables to use registry.k8s.io/build-image/distroless-iptables:v0.2.5", - "markdown": "Updated distroless I-tables to use registry.k8s.io/build-image/distroless-iptables:v0.2.5 ([#118541](https://github.com/kubernetes/kubernetes/pull/118541), [@jeremyrickard](https://github.com/jeremyrickard)) [SIG Testing]", - "author": "jeremyrickard", - "author_url": "https://github.com/jeremyrickard", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118541", - "pr_number": 118541, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - }, - "118551": { - "commit": "d9714078f821ccae1e2d50ea69c081d73a255f1f", - "text": "Action required for the custom scheduler plugin developers. \nHere's the breaking change in `EnqueueExtension` in the scheduling framework. \nThe `EventsToRegister` in `EnqueueExtension` changed the return value from `ClusterEvent` to `ClusterEventWithHint`. `ClusterEventWithHint` allows each plugin to filter out more useless events via the callback function named `QueueingHintFn`.\nWhen the scheduling queue receives a cluster event, before moving each Pod from unschedulable pod pool to activeQ/backoffQ, it will call QueueingHintFn of plugins that rejected each Pod in the previous scheduling cycle.\nDepending on the value returned from QueueingHintFn, the scheduling queue changes how it queues each Pod:\n- if more than one QueueingHintFn returns QueueImmediately, it queues Pod to activeQ.\n- If no QueueingHintFn returns QueueImmediately and more than one plugin returns QueueAfterBackoff, it queues Pod to backoffQ if Pod is backing off, or to activeQ if Pod's backoff has already finished.\n- If all QueueingHintFn return QueueSkip, it puts this pod back to the unschedulable pod pool\n\nHaving appropriate QueueingHintFn contributes to reducing useless retries and thus improves the overall scheduler's performance.\n\n**How can I migrate?**\n\nFor backward compatibility, nil `QueueingHintFn` is treated as always returning QueueAfterBackoff. \nSo, if you want to just keep the existing behavior, you can register `ClusterEventWithHint` with no `QueueingHintFn` in it. \nBut, registering appropriate `QueueingHintFn` is, of course, better from a scheduling performance perspective.", - "markdown": "Action required for the custom scheduler plugin developers. \n Here's the breaking change in `EnqueueExtension` in the scheduling framework. \n The `EventsToRegister` in `EnqueueExtension` changed the return value from `ClusterEvent` to `ClusterEventWithHint`. `ClusterEventWithHint` allows each plugin to filter out more useless events via the callback function named `QueueingHintFn`.\n When the scheduling queue receives a cluster event, before moving each Pod from unschedulable pod pool to activeQ/backoffQ, it will call QueueingHintFn of plugins that rejected each Pod in the previous scheduling cycle.\n Depending on the value returned from QueueingHintFn, the scheduling queue changes how it queues each Pod:\n - if more than one QueueingHintFn returns QueueImmediately, it queues Pod to activeQ.\n - If no QueueingHintFn returns QueueImmediately and more than one plugin returns QueueAfterBackoff, it queues Pod to backoffQ if Pod is backing off, or to activeQ if Pod's backoff has already finished.\n - If all QueueingHintFn return QueueSkip, it puts this pod back to the unschedulable pod pool\n \n Having appropriate QueueingHintFn contributes to reducing useless retries and thus improves the overall scheduler's performance.\n \n **How can I migrate?**\n \n For backward compatibility, nil `QueueingHintFn` is treated as always returning QueueAfterBackoff. \n So, if you want to just keep the existing behavior, you can register `ClusterEventWithHint` with no `QueueingHintFn` in it. \n But, registering appropriate `QueueingHintFn` is, of course, better from a scheduling performance perspective. ([#118551](https://github.com/kubernetes/kubernetes/pull/118551), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling, Storage and Testing]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118551", - "pr_number": 118551, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "118552": { - "commit": "9d90b76bd687bbf6a913865c537c22e4cf622412", - "text": "RBD volume plugin (`kubernetes.io/rbd`) has been deprecated in this release\nand will be removed in a subsequent release. Alternative is to use RBD CSI driver\n(https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster.", - "markdown": "RBD volume plugin (`kubernetes.io/rbd`) has been deprecated in this release\n and will be removed in a subsequent release. Alternative is to use RBD CSI driver\n (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. ([#118552](https://github.com/kubernetes/kubernetes/pull/118552), [@humblec](https://github.com/humblec))", - "author": "humblec", - "author_url": "https://github.com/humblec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118552", - "pr_number": 118552, - "kinds": [ - "deprecation" - ], - "sigs": [ - "storage" - ], - "action_required": true - }, - "118567": { - "commit": "cdbdb179340896e7ec80fb97170ca94dc8611bb4", - "text": "CI job `ci-kubernetes-node-arm64-ubuntu-serial` will test node e2e on arm64, `use-dockerized-build` and `target-build-arch` are required to run this job.", - "markdown": "CI job `ci-kubernetes-node-arm64-ubuntu-serial` will test node e2e on arm64, `use-dockerized-build` and `target-build-arch` are required to run this job. ([#118567](https://github.com/kubernetes/kubernetes/pull/118567), [@chendave](https://github.com/chendave))", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118567", - "pr_number": 118567, - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "118578": { - "commit": "42141aaf932c464d933ec5f518c59bac95e8068e", - "text": "Dynamic Resource Allocation: logged an error and submitted an event when `Kubelet` failed to prepare dynamic resources.", - "markdown": "Dynamic Resource Allocation: logged an error and submitted an event when `Kubelet` failed to prepare dynamic resources. ([#118578](https://github.com/kubernetes/kubernetes/pull/118578), [@bart0sh](https://github.com/bart0sh))", - "author": "bart0sh", - "author_url": "https://github.com/bart0sh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118578", - "pr_number": 118578, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "118596": { - "commit": "49d7b3f0a0e451f515e17b62a4a08017e46c15c2", - "text": "kubelet: The `--azure-container-registry-config` flag has been deprecated and will be removed in a future release, please use `--image-credential-provider-config` and `--image-credential-provider-bin-dir` to setup acr credential provider instead.", - "markdown": "Kubelet: The `--azure-container-registry-config` flag has been deprecated and will be removed in a future release, please use `--image-credential-provider-config` and `--image-credential-provider-bin-dir` to setup acr credential provider instead. ([#118596](https://github.com/kubernetes/kubernetes/pull/118596), [@SataQiu](https://github.com/SataQiu)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2133-kubelet-credential-providers", - "type": "KEP" - } - ], - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118596", - "pr_number": 118596, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "118601": { - "commit": "f6bcef0fd36f2f8312d8c6f14f17d804dcf97600", - "text": "Updated kube-apiserver's priority \u0026 fairness work estimator such that 'max seats' is MIN(0.15 x nominalCL, nominalCL / handSize)\n\nThis fixes a bug where clients with requests using hand size x max seats greater than the nominal concurrency limit can starve other requests in the same priority level.", - "markdown": "Updated kube-apiserver's priority \u0026 fairness work estimator such that 'max seats' is MIN(0.15 x nominalCL, nominalCL / handSize)\n \n This fixes a bug where clients with requests using hand size x max seats greater than the nominal concurrency limit can starve other requests in the same priority level. ([#118601](https://github.com/kubernetes/kubernetes/pull/118601), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118601", - "pr_number": 118601, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "118608": { - "commit": "c95b16b28076e84867ae0521574303ffc058becf", - "text": "The scheduler skips the `PodTopologySpread` Score plugin when nothing to do with the Pod.\nIt will affect some metrics values related to the PodTopologySpread Score plugin.", - "markdown": "The scheduler skips the `PodTopologySpread` Score plugin when nothing to do with the Pod.\n It will affect some metrics values related to the PodTopologySpread Score plugin. ([#118608](https://github.com/kubernetes/kubernetes/pull/118608), [@utam0k](https://github.com/utam0k))", - "author": "utam0k", - "author_url": "https://github.com/utam0k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118608", - "pr_number": 118608, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "118615": { - "commit": "cef13f11fd71f2eb141e3d6cf9b10b7cddf83db4", - "text": "Made Job controller batching of syncJob invocations enabled unconditionally (it was conditional on JobReadyPods feature before).\nAlso, Job controller's constants for default backoff and maximal backoff are lowered down to 1s (from 10s) and 1min (from 6min), respectively. These constants are used to determine the backoff delay for the next Job controller sync in case of a request failure.", - "markdown": "Made Job controller batching of syncJob invocations enabled unconditionally (it was conditional on JobReadyPods feature before).\n Also, Job controller's constants for default backoff and maximal backoff are lowered down to 1s (from 10s) and 1min (from 6min), respectively. These constants are used to determine the backoff delay for the next Job controller sync in case of a request failure. ([#118615](https://github.com/kubernetes/kubernetes/pull/118615), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118615", - "pr_number": 118615, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "118644": { - "commit": "18f8cb83989ff64beb0c7f47cdd3ad9df7bdbbeb", - "text": "Promoted API groups `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` to `v1beta1`.", - "markdown": "Promoted API groups `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` to `v1beta1`. ([#118644](https://github.com/kubernetes/kubernetes/pull/118644), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery, Apps and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3488", - "type": "KEP" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118644", - "pr_number": 118644, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "118686": { - "commit": "98455a5b42262562cd46728aa24fa5dfa503c796", - "text": "`wait.PollUntilContextTimeout` function, if immediate is true, the condition\nwill be invoked before waiting and guarantees that the condition is invoked at\nleast once, regardless of whether the context has been cancelled.", - "markdown": "`wait.PollUntilContextTimeout` function, if immediate is true, the condition\n will be invoked before waiting and guarantees that the condition is invoked at\n least once, regardless of whether the context has been cancelled. ([#118686](https://github.com/kubernetes/kubernetes/pull/118686), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118686", - "pr_number": 118686, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "118691": { - "commit": "c2b7d25ff81a9a3437847ff246b083bd851954c1", - "text": "Enabled use of pods with volumes and user namespaces. The feature gate was renamed from `UserNamespacesStatelessPodsSupport` to `UserNamespacesSupport`.", - "markdown": "Enabled use of pods with volumes and user namespaces. The feature gate was renamed from `UserNamespacesStatelessPodsSupport` to `UserNamespacesSupport`. ([#118691](https://github.com/kubernetes/kubernetes/pull/118691), [@giuseppe](https://github.com/giuseppe))", - "author": "giuseppe", - "author_url": "https://github.com/giuseppe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118691", - "pr_number": 118691, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118716": { - "commit": "a4519665fe05095f2b2e56d51b2b83b3579b4598", - "text": "The Daemonset controller creates replacements for terminal Pods, which can appear during VM preemptions or when using Pod finalizers.", - "markdown": "The Daemonset controller creates replacements for terminal Pods, which can appear during VM preemptions or when using Pod finalizers. ([#118716](https://github.com/kubernetes/kubernetes/pull/118716), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118716", - "pr_number": 118716, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "apps", - "testing" - ], - "duplicate": true - }, - "118724": { - "commit": "89b1d0ce3e742f8a5aed8cf7f8a8a82710ed0af8", - "text": "Fixed cronjob controller handling of complex schedules, like `30 6-16/4 * * 1-5`, for example.", - "markdown": "Fixed cronjob controller handling of complex schedules, like `30 6-16/4 * * 1-5`, for example. ([#118724](https://github.com/kubernetes/kubernetes/pull/118724), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118724", - "pr_number": 118724, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "118759": { - "commit": "2651e70f57db14fec4dd45c8ccf683ece1262317", - "text": "Reduced delay when processing jobs after a transient API error.", - "markdown": "Reduced delay when processing jobs after a transient API error. ([#118759](https://github.com/kubernetes/kubernetes/pull/118759), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118759", - "pr_number": 118759, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ] - }, - "118763": { - "commit": "5a1c62b9d121e23d411fdc84255521d1dc231bf2", - "text": "The `AdvancedAuditing` feature gate that graduated to GA in `v1.12` (and was unconditionally\nenabled) has been removed.", - "markdown": "The `AdvancedAuditing` feature gate that graduated to GA in `v1.12` (and was unconditionally\n enabled) has been removed. ([#118763](https://github.com/kubernetes/kubernetes/pull/118763), [@Shubham82](https://github.com/Shubham82))", - "author": "Shubham82", - "author_url": "https://github.com/Shubham82", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118763", - "pr_number": 118763, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "118764": { - "commit": "da2fdf8cc32e87b9d35697030fc08beb9379cecc", - "text": "Added full cgroup v2 swap support for both `Limited` and `Unlimited` swap.\n\nWhen `LimitedSwap` is enabled the swap limit would be automatically calculated for\nBurstable QoS pods. For Best-Effort/Guaranteed QoS pods, swap would be disabled.\n\nContainers with memory requests equal to their memory limits also won't have\nswap access, and it is a way to opt-out of swap for a single container.\n\nThe formula for the swap limit for Burstable QoS pods is:\n`(\u003cmemory-request\u003e/\u003cnode-memory-capacity\u003e)*\u003cnode-swap-capacity\u003e`.\n\nSupport for `cgroup v1` is removed.", - "markdown": "Added full cgroup v2 swap support for both `Limited` and `Unlimited` swap.\n \n When `LimitedSwap` is enabled the swap limit would be automatically calculated for\n Burstable QoS pods. For Best-Effort/Guaranteed QoS pods, swap would be disabled.\n \n Containers with memory requests equal to their memory limits also won't have\n swap access, and it is a way to opt-out of swap for a single container.\n \n The formula for the swap limit for Burstable QoS pods is:\n `(\u003cmemory-request\u003e/\u003cnode-memory-capacity\u003e)*\u003cnode-swap-capacity\u003e`.\n \n Support for `cgroup v1` is removed. ([#118764](https://github.com/kubernetes/kubernetes/pull/118764), [@iholder101](https://github.com/iholder101))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/", - "type": "KEP" - }, - { - "description": "As per [KEP2400](", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md#steps-to-calculate-swap-limit), the swap limit is being automatically calculated for Burstable QoS pods. As written in the KEP, the fomula is: `(\u003ccontainer-request\u003e/\u003cnode-memory-capacity\u003e)*\u003cswap-size\u003e)`. On my system, I have approximately 400Gi of total memory and a swap size of approximately 40Gi. Therefore, the swap limit needs to be approximately `(0.5Gi/400Gi)*40Gi == 0.5Gi`.", - "type": "KEP" - } - ], - "author": "iholder101", - "author_url": "https://github.com/iholder101", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118764", - "pr_number": 118764, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118770": { - "commit": "1fef8fd51d1809266114ca8dcf203c6a96b8eb3b", - "text": "With the `KubeletCgroupDriverFromCRI` feature gate enabled and sufficiently new version of a container\nruntime, kubelet automatically detects the cgroup driver config from the container runtime, eliminating\nthe need to specify the `cgroupDriver` configuration option (or `--cgroup-driver` flag) of kubelet.", - "markdown": "With the `KubeletCgroupDriverFromCRI` feature gate enabled and sufficiently new version of a container\n runtime, kubelet automatically detects the cgroup driver config from the container runtime, eliminating\n the need to specify the `cgroupDriver` configuration option (or `--cgroup-driver` flag) of kubelet. ([#118770](https://github.com/kubernetes/kubernetes/pull/118770), [@marquiz](https://github.com/marquiz))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4033-group-driver-detection-over-cri", - "type": "KEP" - } - ], - "author": "marquiz", - "author_url": "https://github.com/marquiz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118770", - "pr_number": 118770, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "118772": { - "commit": "d1d86dafb749241e968cb3f6ea91790b4d6a188c", - "text": "Added handling for pods in podgc for `PodReplacementPolicy` or `PodDisruption`.", - "markdown": "Added handling for pods in podgc for `PodReplacementPolicy` or `PodDisruption`. ([#118772](https://github.com/kubernetes/kubernetes/pull/118772), [@kannon92](https://github.com/kannon92))", - "documentation": [ - { - "description": "[KEP]: [KEP-3939](", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3939-allow-replacement-when-fully-terminated#risks-and-mitigations)", - "type": "KEP" - } - ], - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118772", - "pr_number": 118772, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118774": { - "commit": "b8d4eec43edcf370ffec459bff4e226ae5a90124", - "text": "Updated cAdvisor to `v0.47.2` and fixed metrics in `cri-o` when a container restarts.", - "markdown": "Updated cAdvisor to `v0.47.2` and fixed metrics in `cri-o` when a container restarts. ([#118774](https://github.com/kubernetes/kubernetes/pull/118774), [@harche](https://github.com/harche))", - "author": "harche", - "author_url": "https://github.com/harche", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118774", - "pr_number": 118774, - "areas": [ - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "118782": { - "commit": "2a91bd1dfdd2e293b9ec017ea3a976ecc2ecd545", - "text": "In the API Priority and Fairness feature, priority levels that are exempt from limitation can now be given a nominal and a lendable concurrency and their dispatching borrows from the concurrency limits of the other priority levels. For details see https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1040-priority-and-fairness#dispatching .", - "markdown": "In the API Priority and Fairness feature, priority levels that are exempt from limitation can now be given a nominal and a lendable concurrency and their dispatching borrows from the concurrency limits of the other priority levels. For details see https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1040-priority-and-fairness#dispatching . ([#118782](https://github.com/kubernetes/kubernetes/pull/118782), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1040-priority-and-fairness", - "type": "KEP" - } - ], - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118782", - "pr_number": 118782, - "areas": [ - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "118786": { - "commit": "b3d94ae74f3284b64a32a9fa2d82509c86d22e17", - "text": "As in Kubernetes `v1.26` and `v1.27`, resource claims do not get prepared by `kubelet` when no container uses them. This was changed accidentally in [v1.28.0-alpha.1](https://github.com/kubernetes/kubernetes/releases/tag/v1.28.0-alpha.1).", - "markdown": "As in Kubernetes `v1.26` and `v1.27`, resource claims do not get prepared by `kubelet` when no container uses them. This was changed accidentally in [v1.28.0-alpha.1](https://github.com/kubernetes/kubernetes/releases/tag/v1.28.0-alpha.1). ([#118786](https://github.com/kubernetes/kubernetes/pull/118786), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118786", - "pr_number": 118786, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "118803": { - "commit": "423f4dfc7982136c958fc78e187c911a8896ba1b", - "text": "New CEL Library functions to support Kubernetes Quantities.", - "markdown": "New CEL Library functions to support Kubernetes Quantities. ([#118803](https://github.com/kubernetes/kubernetes/pull/118803), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery]", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118803", - "pr_number": 118803, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "118804": { - "commit": "1d846a12da5b05e9b9e50b30fdaae2ea269822a0", - "text": "CEL authorizer checks no longer raise runtime errors. Calls to \"check\" will always return a decision object and the authorization error (if any) can be accessed within expressions using the new decision methods \"errored\" and \"error\".", - "markdown": "CEL authorizer checks no longer raise runtime errors. Calls to \"check\" will always return a decision object and the authorization error (if any) can be accessed within expressions using the new decision methods \"errored\" and \"error\". ([#118804](https://github.com/kubernetes/kubernetes/pull/118804), [@benluddy](https://github.com/benluddy)) [SIG API Machinery]", - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118804", - "pr_number": 118804, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "118808": { - "commit": "7aa4e089cdb3e7171d7f8f3ecb009b9dcdfbb415", - "text": "Revised `OpenAPI v2` fetching for CustomResourceDefinitions. CRDs are now aggregated lazily,\nwhich improves resource usage during installation of many CRDs. As a result, the first request\nto fetch the OpenAPI may be slower.", - "markdown": "Revised `OpenAPI v2` fetching for CustomResourceDefinitions. CRDs are now aggregated lazily,\n which improves resource usage during installation of many CRDs. As a result, the first request\n to fetch the OpenAPI may be slower. ([#118808](https://github.com/kubernetes/kubernetes/pull/118808), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118808", - "pr_number": 118808, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "118810": { - "commit": "4682f868866913f6da6cf4babcf8ca7bdd7a0f71", - "text": "Added `--concurrency` flag to configure the concurrency of `kubectl diff` execution, defaults to 1.", - "markdown": "Added `--concurrency` flag to configure the concurrency of `kubectl diff` execution, defaults to 1. ([#118810](https://github.com/kubernetes/kubernetes/pull/118810), [@brancz](https://github.com/brancz))", - "author": "brancz", - "author_url": "https://github.com/brancz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118810", - "pr_number": 118810, - "areas": [ - "kubectl", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "118812": { - "commit": "2ec4e14bfa0cec1f22919ea862c45b1501187e20", - "text": "Replaced `apiserver_storage_db_total_size_in_bytes` with `apiserver_storage_size_bytes` metric.", - "markdown": "Replaced `apiserver_storage_db_total_size_in_bytes` with `apiserver_storage_size_bytes` metric. ([#118812](https://github.com/kubernetes/kubernetes/pull/118812), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118812", - "pr_number": 118812, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118816": { - "commit": "cab65e20080e3be29b7fc09905ddd579884fd5c9", - "text": "`TopologyManagerPolicyOptions` feature-flag is promoted to beta and enabled by default.", - "markdown": "`TopologyManagerPolicyOptions` feature-flag is promoted to beta and enabled by default. ([#118816](https://github.com/kubernetes/kubernetes/pull/118816), [@PiotrProkop](https://github.com/PiotrProkop))", - "author": "PiotrProkop", - "author_url": "https://github.com/PiotrProkop", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118816", - "pr_number": 118816, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "118817": { - "commit": "6f9d1d38d88fff8450feb2b7a46b756d9e9cce3f", - "text": "When a pod is done or not going to run, then `ResourceClaims` for it can be reused by other pods or deleted.", - "markdown": "When a pod is done or not going to run, then `ResourceClaims` for it can be reused by other pods or deleted. ([#118817](https://github.com/kubernetes/kubernetes/pull/118817), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118817", - "pr_number": 118817, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118828": { - "commit": "773a6b1e460360538ce4d85a7c0d009efed81836", - "text": "Changed how KMS v2 encryption at rest can generate data encryption keys.\nWhen you enable the `KMSv2KDF` feature gate (off by default), KMS v2 uses a key derivation function to generate single use data encryption keys from a secret seed combined with some random data. This eliminates the need for a counter based nonce while avoiding nonce collision concerns associated with AES-GCM's 12 byte nonce.", - "markdown": "Changed how KMS v2 encryption at rest can generate data encryption keys.\n When you enable the `KMSv2KDF` feature gate (off by default), KMS v2 uses a key derivation function to generate single use data encryption keys from a secret seed combined with some random data. This eliminates the need for a counter based nonce while avoiding nonce collision concerns associated with AES-GCM's 12 byte nonce. ([#118828](https://github.com/kubernetes/kubernetes/pull/118828), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118828", - "pr_number": 118828, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "118842": { - "commit": "02f09d6a61d3c35936b653375a294ecdf3fc778f", - "text": "Use table-driven test for `TestPerPodSchedulingMetrics`.", - "markdown": "Use table-driven test for `TestPerPodSchedulingMetrics`. ([#118842](https://github.com/kubernetes/kubernetes/pull/118842), [@helayoty](https://github.com/helayoty))", - "author": "helayoty", - "author_url": "https://github.com/helayoty", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118842", - "pr_number": 118842, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "118865": { - "commit": "b4d793c4502eb0248bfd58cab65f310182a8847d", - "text": "Added swap to stats to Summary API and Prometheus endpoints (stats/summary and /metrics/resource).", - "markdown": "Added swap to stats to Summary API and Prometheus endpoints (stats/summary and /metrics/resource). ([#118865](https://github.com/kubernetes/kubernetes/pull/118865), [@iholder101](https://github.com/iholder101))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md#beta-1", - "type": "KEP" - } - ], - "author": "iholder101", - "author_url": "https://github.com/iholder101", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118865", - "pr_number": 118865, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118866": { - "commit": "1c32c3bd9f478c38bb166e5b86b22c9312ed67ad", - "text": "`kubeadm`: added the `--allow-experimental-api` flag to \"kubeadm config migrate/validate\" commands. It can be used to migrate or validate WIP/experimental APIs in the future.", - "markdown": "`kubeadm`: added the `--allow-experimental-api` flag to \"kubeadm config migrate/validate\" commands. It can be used to migrate or validate WIP/experimental APIs in the future. ([#118866](https://github.com/kubernetes/kubernetes/pull/118866), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118866", - "pr_number": 118866, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "118876": { - "commit": "e09edf3c1682de505c70de5e71ea16b70c09183b", - "text": "`kubectl explain` should correctly work for all resources.", - "markdown": "`kubectl explain` should correctly work for all resources. ([#118876](https://github.com/kubernetes/kubernetes/pull/118876), [@atiratree](https://github.com/atiratree))", - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118876", - "pr_number": 118876, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true - }, - "118879": { - "commit": "40956a7977deb2fc8018caa477c8a814147eca70", - "text": "Fixed the discoverability of `apiregistration.k8s.io` in `openapi/v3`", - "markdown": "Fixed the discoverability of `apiregistration.k8s.io` in `openapi/v3` ([#118879](https://github.com/kubernetes/kubernetes/pull/118879), [@atiratree](https://github.com/atiratree))", - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118879", - "pr_number": 118879, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "118883": { - "commit": "6f3856f953b1178ff7422d565875b07ee2aa9e06", - "text": "Indexed Job pods now have the pod completion index set as a pod label.", - "markdown": "Indexed Job pods now have the pod completion index set as a pod label. ([#118883](https://github.com/kubernetes/kubernetes/pull/118883), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps]", - "documentation": [ - { - "description": "[KEP](", - "url": "https://github.com/kubernetes/enhancements/pull/4019)", - "type": "KEP" - } - ], - "author": "danielvegamyhre", - "author_url": "https://github.com/danielvegamyhre", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118883", - "pr_number": 118883, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "duplicate_kind": true - }, - "118895": { - "commit": "890a6c8f70d2e0f45b3692d34a6df1ecb6d8335b", - "text": "Added `IP mode` field to loadbalancer status ingress.", - "markdown": "Added `IP mode` field to loadbalancer status ingress. ([#118895](https://github.com/kubernetes/kubernetes/pull/118895), [@RyanAoh](https://github.com/RyanAoh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/1860-kube-proxy-IP-node-binding", - "type": "KEP" - } - ], - "author": "RyanAoh", - "author_url": "https://github.com/RyanAoh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118895", - "pr_number": 118895, - "areas": [ - "test", - "kube-proxy", - "cloudprovider", - "code-generation", - "ipvs" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "apps", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "118915": { - "commit": "8f79a3d91e95345f34c7b1c4250d4495aadbe748", - "text": "The `NetworkPolicyLegacy` test suite (deprecated in `v1.21`) has now officially been removed in favor of the new table driven e2e tests.", - "markdown": "The `NetworkPolicyLegacy` test suite (deprecated in `v1.21`) has now officially been removed in favor of the new table driven e2e tests. ([#118915](https://github.com/kubernetes/kubernetes/pull/118915), [@astoycos](https://github.com/astoycos))", - "author": "astoycos", - "author_url": "https://github.com/astoycos", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118915", - "pr_number": 118915, - "areas": [ - "test", - "network-policy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true - }, - "118922": { - "commit": "4036b6fb41b36d76a6076e4f430f74423efe04f3", - "text": "`kubeadm`: generate CA certificates with a start time that is offset 5\nminutes in the past relative to the current system time to workaround cases of\nclock desync.", - "markdown": "`kubeadm`: generate CA certificates with a start time that is offset 5\n minutes in the past relative to the current system time to workaround cases of\n clock desync. ([#118922](https://github.com/kubernetes/kubernetes/pull/118922), [@champtar](https://github.com/champtar))", - "author": "champtar", - "author_url": "https://github.com/champtar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118922", - "pr_number": 118922, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "auth" - ], - "feature": true, - "duplicate": true - }, - "118936": { - "commit": "ec87834bae787ab6687921d65c3bcfde8a6e01b9", - "text": "Dynamic resource allocation: when a claim uses \"wait for first consumer\" allocation (the default), then it will now get deallocated after it was used by a pod. That ensures that the next pod isn't affected by previous scheduling decision and that resources are not kept allocated unless really needed. If keeping a claim allocated is desired, use \"immediate allocation.\"", - "markdown": "Dynamic resource allocation: when a claim uses \"wait for first consumer\" allocation (the default), then it will now get deallocated after it was used by a pod. That ensures that the next pod isn't affected by previous scheduling decision and that resources are not kept allocated unless really needed. If keeping a claim allocated is desired, use \"immediate allocation.\" ([#118936](https://github.com/kubernetes/kubernetes/pull/118936), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118936", - "pr_number": 118936, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118945": { - "commit": "2ee01fb673213c80cb8afc79c60c32adeadb413c", - "text": "- Updated apiserver metric `request_filter_duration_seconds` to include a 10s, 15s and 30s bucket.\n Updated apiserver metric `request_wait_duration_seconds` to include a 15s bucket.", - "markdown": "- Updated apiserver metric `request_filter_duration_seconds` to include a 10s, 15s and 30s bucket.\n Updated apiserver metric `request_wait_duration_seconds` to include a 15s bucket. ([#118945](https://github.com/kubernetes/kubernetes/pull/118945), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118945", - "pr_number": 118945, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "118953": { - "commit": "5c72df728125530f15a519dacc9c308084dc586b", - "text": "New staging repo has been created for the `EndpointSlice` reconciler.", - "markdown": "New staging repo has been created for the `EndpointSlice` reconciler. ([#118953](https://github.com/kubernetes/kubernetes/pull/118953), [@mskrocki](https://github.com/mskrocki))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/3686/commits/f0e118c01e95b335a2ed8101f0b6a935232d3b8f", - "type": "KEP" - } - ], - "author": "mskrocki", - "author_url": "https://github.com/mskrocki", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118953", - "pr_number": 118953, - "areas": [ - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "apps", - "release" - ], - "feature": true, - "duplicate": true - }, - "118959": { - "commit": "af33d7a5af49cc841f8b58466b59e8dfdfe185ed", - "text": "The metric `apiserver_flowcontrol_request_concurrency_limit` has been deprecated and will be removed in a future release. It is a duplicate of `apiserver_flowcontrol_nominal_limit_seats` (introduced in release 1.26) but has an outdated name and had an outdated HELP string.", - "markdown": "The metric `apiserver_flowcontrol_request_concurrency_limit` has been deprecated and will be removed in a future release. It is a duplicate of `apiserver_flowcontrol_nominal_limit_seats` (introduced in release 1.26) but has an outdated name and had an outdated HELP string. ([#118959](https://github.com/kubernetes/kubernetes/pull/118959), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118959", - "pr_number": 118959, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "118960": { - "commit": "fbb2f89668bd07a96adc8a1f4f0819e769255703", - "text": "The metric `apiserver_flowcontrol_current_executing_seats` has been introduced as a duplicate of `apiserver_flowcontrol_request_concurrency_in_use` because the latter has a confusing name and will be removed in a later release.", - "markdown": "The metric `apiserver_flowcontrol_current_executing_seats` has been introduced as a duplicate of `apiserver_flowcontrol_request_concurrency_in_use` because the latter has a confusing name and will be removed in a later release. ([#118960](https://github.com/kubernetes/kubernetes/pull/118960), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118960", - "pr_number": 118960, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "118973": { - "commit": "92856db662e2850e244c0d12250c57b837afcf66", - "text": "The `GetAllocatableResources` podresources API endpoint is now GA.", - "markdown": "The `GetAllocatableResources` podresources API endpoint is now GA. ([#118973](https://github.com/kubernetes/kubernetes/pull/118973), [@ffromani](https://github.com/ffromani))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/4045", - "type": "KEP" - } - ], - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118973", - "pr_number": 118973, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "118986": { - "commit": "a7360493499e25405d61ce09ecc339b36fe72346", - "text": "Promoted `kubernetes_healthcheck` and `kubernetes_healthchecks_total` to `BETA` stability level.", - "markdown": "Promoted `kubernetes_healthcheck` and `kubernetes_healthchecks_total` to `BETA` stability level. ([#118986](https://github.com/kubernetes/kubernetes/pull/118986), [@logicalhan](https://github.com/logicalhan))", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118986", - "pr_number": 118986, - "areas": [ - "test", - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "instrumentation", - "testing", - "architecture" - ], - "duplicate": true - }, - "118988": { - "commit": "1e21da87b8e70b71f635c72914a15fd4ec0c576c", - "text": "Hashing of KeyID in Logs\n\nThis release adds a feature to hash the `KeyID` values in the logs. The `KeyID` values are sensitive information that should not be exposed in plain text in the logs. By hashing the `KeyID` values, we can protect the confidentiality of the data while still being able to log the necessary information.", - "markdown": "Hashing of KeyID in Logs\n \n This release adds a feature to hash the `KeyID` values in the logs. The `KeyID` values are sensitive information that should not be exposed in plain text in the logs. By hashing the `KeyID` values, we can protect the confidentiality of the data while still being able to log the necessary information. ([#118988](https://github.com/kubernetes/kubernetes/pull/118988), [@nilekhc](https://github.com/nilekhc)) [SIG API Machinery, Auth and Testing]", - "author": "nilekhc", - "author_url": "https://github.com/nilekhc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118988", - "pr_number": 118988, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118990": { - "commit": "c684de526c975e976050c1b570244ad6dba15d58", - "text": "Added new `CRDValidationRatcheting` alpha feature. During a PATCH or UPDATE Validation Ratcheting discards errors thrown by unchanged portions of the resource from most OpenAPI schema validations.", - "markdown": "Added new `CRDValidationRatcheting` alpha feature. During a PATCH or UPDATE Validation Ratcheting discards errors thrown by unchanged portions of the resource from most OpenAPI schema validations. ([#118990](https://github.com/kubernetes/kubernetes/pull/118990), [@alexzielenski](https://github.com/alexzielenski))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4008", - "type": "external" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118990", - "pr_number": 118990, - "areas": [ - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "118999": { - "commit": "2d42274ac75f6c97c3e9c243615a395b81edf9bd", - "text": "kube-proxy service health returns http header `X-Load-Balancing-Endpoint-Weight` with number of local endpoints. The same information is still available in response body JSON `payload.LocalEndpoints`.", - "markdown": "Kube-proxy service health returns http header `X-Load-Balancing-Endpoint-Weight` with number of local endpoints. The same information is still available in response body JSON `payload.LocalEndpoints`. ([#118999](https://github.com/kubernetes/kubernetes/pull/118999), [@cezarygerard](https://github.com/cezarygerard))", - "author": "cezarygerard", - "author_url": "https://github.com/cezarygerard", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118999", - "pr_number": 118999, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "119003": { - "commit": "75889ecec5d30cbe1dcb6636d5334b21b4378e9c", - "text": "Kube-proxy will now warn at startup if the configuration seems inconsistent\nwith respect to IP families. (For example, if you have an IPv4 node IP, but\n`--cluster-cidr` is IPv6.)", - "markdown": "Kube-proxy will now warn at startup if the configuration seems inconsistent\n with respect to IP families. (For example, if you have an IPv4 node IP, but\n `--cluster-cidr` is IPv6.) ([#119003](https://github.com/kubernetes/kubernetes/pull/119003), [@danwinship](https://github.com/danwinship)) [SIG Network]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119003", - "pr_number": 119003, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "119007": { - "commit": "1acdb4ae86e0e43475c31f108a6106b1f5ea5027", - "text": "`KMSv1` is deprecated and will only receive security updates going forward. Use `KMSv2` instead. In a future release, Set `--feature-gates=KMSv1=true` to use the deprecated KMSv1 feature.", - "markdown": "`KMSv1` is deprecated and will only receive security updates going forward. Use `KMSv2` instead. In a future release, Set `--feature-gates=KMSv1=true` to use the deprecated KMSv1 feature. ([#119007](https://github.com/kubernetes/kubernetes/pull/119007), [@aramase](https://github.com/aramase))", - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119007", - "pr_number": 119007, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "api-change", - "deprecation" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "duplicate_kind": true - }, - "119008": { - "commit": "e3bc35bc1bc7b399b564f2c4efc75eb9959e70f7", - "text": "New Metrics Added for Encryption Configuration Controller\n\nThis release adds new metrics to the Encryption Configuration Controller to help monitor the automatic reloading of encryption configuration. The new metrics include:\n\n- `apiserver_encryption_config_controller_automatic_reload_failures_total`: Total number of failed automatic reloads of encryption configuration.\n- `apiserver_encryption_config_controller_automatic_reload_success_total`: Total number of successful automatic reloads of encryption configuration.\n- `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`: Timestamp of the last successful or failed automatic reload of encryption configuration.\n\nThese metrics can be used to monitor the health of the Encryption Configuration Controller and to troubleshoot any issues that may arise during automatic reloading of encryption configuration.", - "markdown": "New Metrics Added for Encryption Configuration Controller\n \n This release adds new metrics to the Encryption Configuration Controller to help monitor the automatic reloading of encryption configuration. The new metrics include:\n \n - `apiserver_encryption_config_controller_automatic_reload_failures_total`: Total number of failed automatic reloads of encryption configuration.\n - `apiserver_encryption_config_controller_automatic_reload_success_total`: Total number of successful automatic reloads of encryption configuration.\n - `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`: Timestamp of the last successful or failed automatic reload of encryption configuration.\n \n These metrics can be used to monitor the health of the Encryption Configuration Controller and to troubleshoot any issues that may arise during automatic reloading of encryption configuration. ([#119008](https://github.com/kubernetes/kubernetes/pull/119008), [@nilekhc](https://github.com/nilekhc))", - "author": "nilekhc", - "author_url": "https://github.com/nilekhc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119008", - "pr_number": 119008, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "119009": { - "commit": "31d662e58e9679ada73208fe63759c06793b013c", - "text": "The apiserver debug endpoint `/debug/api_priority_and_fairness/dump_requests` has been extended to dump executing requests as well as queued ones. A column for StartTime has been added to the returned table, with the queued requests having a StartTime of \"0001-01-01T00:00:00Z\". The executing requests have a RequestIndexInQueue of -1, and the QueueIndex is also -1 for priority levels without queues.", - "markdown": "The apiserver debug endpoint `/debug/api_priority_and_fairness/dump_requests` has been extended to dump executing requests as well as queued ones. A column for StartTime has been added to the returned table, with the queued requests having a StartTime of \"0001-01-01T00:00:00Z\". The executing requests have a RequestIndexInQueue of -1, and the QueueIndex is also -1 for priority levels without queues. ([#119009](https://github.com/kubernetes/kubernetes/pull/119009), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", - "author": "MikeSpreitzer", - "author_url": "https://github.com/MikeSpreitzer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119009", - "pr_number": 119009, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "119012": { - "commit": "047d040ce754c78e17ceb7f55efcdfe8e0151c9c", - "text": "kubelet: plugins for dynamic resource allocation may use the `v1alpha3` API instead of v1alpha2 if they want to do prepare/unprepare operations in batches.", - "markdown": "Kubelet: plugins for dynamic resource allocation may use the `v1alpha3` API instead of v1alpha2 if they want to do prepare/unprepare operations in batches. ([#119012](https://github.com/kubernetes/kubernetes/pull/119012), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119012", - "pr_number": 119012, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "119033": { - "commit": "a864ce77b7a0a2fa66922d93190874812af53d44", - "text": "Bumped kube-dns to `v1.22.23`.", - "markdown": "Bumped kube-dns to `v1.22.23`. ([#119033](https://github.com/kubernetes/kubernetes/pull/119033), [@ty-dc](https://github.com/ty-dc))", - "author": "ty-dc", - "author_url": "https://github.com/ty-dc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119033", - "pr_number": 119033, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "do_not_publish": true - }, - "119078": { - "commit": "529eeb78efb26a3710ebbc65e8b8bfccc8fcafa7", - "text": "Faster scheduling when `ResourceClaims` are involved.", - "markdown": "Faster scheduling when `ResourceClaims` are involved. ([#119078](https://github.com/kubernetes/kubernetes/pull/119078), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119078", - "pr_number": 119078, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "node" - ], - "feature": true, - "duplicate": true - }, - "119095": { - "commit": "d43e6705f1c0a2da36000485d1b40a718f355fae", - "text": "Updated debian-base image to `bookworm-v1.0.0`.", - "markdown": "Updated debian-base image to `bookworm-v1.0.0`. ([#119095](https://github.com/kubernetes/kubernetes/pull/119095), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119095", - "pr_number": 119095, - "areas": [ - "test", - "release-eng", - "conformance" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing", - "release", - "architecture" - ], - "duplicate": true - }, - "119110": { - "commit": "4f60a8d493ab9571eb328b9d98da477a50bc7446", - "text": "Promoted the following apiserver flowcontrol metrics to Beta:\n\n- apiserver_flowcontrol_request_wait_duration_seconds\n- apiserver_flowcontrol_current_executing_seats\n- apiserver_flowcontrol_nominal_limit_seats\n- apiserver_flowcontrol_rejected_requests_total\n- apiserver_flowcontrol_dispatched_requests_total\n- apiserver_flowcontrol_current_inqueue_requests\n- apiserver_flowcontrol_current_executing_requests", - "markdown": "Promoted the following apiserver flowcontrol metrics to Beta:\n \n apiserver_flowcontrol_request_wait_duration_seconds \n - apiserver_flowcontrol_current_executing_seats\n - apiserver_flowcontrol_nominal_limit_seats\n - apiserver_flowcontrol_rejected_requests_total\n - apiserver_flowcontrol_dispatched_requests_total\n - apiserver_flowcontrol_current_inqueue_requests\n - apiserver_flowcontrol_current_executing_requests ([#119110](https://github.com/kubernetes/kubernetes/pull/119110), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119110", - "pr_number": 119110, - "areas": [ - "apiserver", - "stable-metrics" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "119130": { - "commit": "42e1e72105c454b4c8738f0a6133a4a04cc175ba", - "text": "The deprecated flag `--lock-object-namespace` and `--lock-object-name` have been removed from kube-scheduler. Please use `--leader-elect-resource-namespace` and `--leader-elect-resource-name` or ComponentConfig instead to configure those parameters.", - "markdown": "The deprecated flag `--lock-object-namespace` and `--lock-object-name` have been removed from kube-scheduler. Please use `--leader-elect-resource-namespace` and `--leader-elect-resource-name` or ComponentConfig instead to configure those parameters. ([#119130](https://github.com/kubernetes/kubernetes/pull/119130), [@SataQiu](https://github.com/SataQiu)) [SIG Scheduling]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119130", - "pr_number": 119130, - "kinds": [ - "deprecation" - ], - "sigs": [ - "scheduling" - ] - }, - "119140": { - "commit": "ffa4c263219939896052f461fdeb98d63333e8cb", - "text": "The kube-proxy `sync_proxy_rules_iptables_total` metric has now reverted back\nto its pre-1.27 behavior of tracking the total number of iptables rules that\nkube-proxy is responsible for, rather than only counting the number of rules\nthat it re-synced on the last sync. The new `sync_proxy_rules_iptables_last`\nmetric now gives the latter number.", - "markdown": "The kube-proxy `sync_proxy_rules_iptables_total` metric has now reverted back\n to its pre-1.27 behavior of tracking the total number of iptables rules that\n kube-proxy is responsible for, rather than only counting the number of rules\n that it re-synced on the last sync. The new `sync_proxy_rules_iptables_last`\n metric now gives the latter number. ([#119140](https://github.com/kubernetes/kubernetes/pull/119140), [@danwinship](https://github.com/danwinship)) [SIG Network]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/3453-minimize-iptables-restore/README.md", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119140", - "pr_number": 119140, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "119147": { - "commit": "745cfa35bdf7033fe80c9e7439dca9d46259c61e", - "text": "Migrated the disruption controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the disruption controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#119147](https://github.com/kubernetes/kubernetes/pull/119147), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Apps, Instrumentation and Testing]", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119147", - "pr_number": 119147, - "areas": [ - "test", - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "119159": { - "commit": "19a25bac052e9d3bbfe6961867207ef98cfa0f06", - "text": "Declare Job as finished only after removing all Pod finalizers to avoid orphan Pods.", - "markdown": "Declare Job as finished only after removing all Pod finalizers to avoid orphan Pods. ([#119159](https://github.com/kubernetes/kubernetes/pull/119159), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119159", - "pr_number": 119159, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "119185": { - "commit": "986171d388e3b18a3ee2a2ef88683a1fb81d21b9", - "text": "Added reason to metric `attachdetach_controller_forced_detaches` in the attach detach controller.", - "markdown": "Added reason to metric `attachdetach_controller_forced_detaches` in the attach detach controller. ([#119185](https://github.com/kubernetes/kubernetes/pull/119185), [@xing-yang](https://github.com/xing-yang))", - "author": "xing-yang", - "author_url": "https://github.com/xing-yang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119185", - "pr_number": 119185, - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "apps" - ], - "feature": true, - "duplicate": true - }, - "119209": { - "commit": "da8974157faea86d15bb54e01eb946f9c4928e8c", - "text": "A ValidatingAdmissionPolicy now has its `messageExpression` field checked against resolved types.", - "markdown": "A ValidatingAdmissionPolicy now has its `messageExpression` field checked against resolved types. ([#119209](https://github.com/kubernetes/kubernetes/pull/119209), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery]", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119209", - "pr_number": 119209, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "119215": { - "commit": "8a053c700a3abc30717860e0b6a13243a7250743", - "text": "Added a new `namespaceParamRef` field to `admissionregistration.k8s.io/v1alpha1.ValidatingAdmissionPolicy`.", - "markdown": "Added a new `namespaceParamRef` field to `admissionregistration.k8s.io/v1alpha1.ValidatingAdmissionPolicy`. ([#119215](https://github.com/kubernetes/kubernetes/pull/119215), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3488", - "type": "KEP" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119215", - "pr_number": 119215, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "119225": { - "commit": "d45b6ba676b98cd8dcd53c93147eed5ab6c46826", - "text": "Bumped cadvisor version to `v0.47.3`.", - "markdown": "Bumped cadvisor version to `v0.47.3`. ([#119225](https://github.com/kubernetes/kubernetes/pull/119225), [@iholder101](https://github.com/iholder101))", - "author": "iholder101", - "author_url": "https://github.com/iholder101", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119225", - "pr_number": 119225, - "areas": [ - "test", - "dependency" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "119232": { - "commit": "7698fe763976c0f9a9e3a6b338f8654896d72878", - "text": "StatefulSet pods now have the pod index set as a pod label `statefulset.kubernetes.io/pod-index`.", - "markdown": "StatefulSet pods now have the pod index set as a pod label `statefulset.kubernetes.io/pod-index`. ([#119232](https://github.com/kubernetes/kubernetes/pull/119232), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps]", - "documentation": [ - { - "description": "[KEP](", - "url": "https://github.com/kubernetes/enhancements/pull/4019)", - "type": "KEP" - } - ], - "author": "danielvegamyhre", - "author_url": "https://github.com/danielvegamyhre", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119232", - "pr_number": 119232, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "duplicate_kind": true - }, - "119238": { - "commit": "6264fd9dadb26019b6165d3f73e1b12f89d4adfd", - "text": "CRI: exposed commit memory bytes in container stats specific to Windows", - "markdown": "CRI: exposed commit memory bytes in container stats specific to Windows ([#119238](https://github.com/kubernetes/kubernetes/pull/119238), [@kiashok](https://github.com/kiashok))", - "author": "kiashok", - "author_url": "https://github.com/kiashok", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119238", - "pr_number": 119238, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "windows" - ], - "feature": true, - "duplicate": true - }, - "119241": { - "commit": "58b3ae97b7b26d1b4ac6515d9a2ea82dc49bdc79", - "text": "Cloud controller manager's node controller now emits timing metrics for initial `Node` synchronization. These metrics measure the delay between the creation of a new `Node` and the node controller's initial management actions, such as removing the cloud provider taint. These metrics should be consulted when setting cloud controller manager's `--concurrent-node-syncs` flag.", - "markdown": "Cloud controller manager's node controller now emits timing metrics for initial `Node` synchronization. These metrics measure the delay between the creation of a new `Node` and the node controller's initial management actions, such as removing the cloud provider taint. These metrics should be consulted when setting cloud controller manager's `--concurrent-node-syncs` flag. ([#119241](https://github.com/kubernetes/kubernetes/pull/119241), [@cartermckinnon](https://github.com/cartermckinnon)) [SIG Cloud Provider and Instrumentation]", - "author": "cartermckinnon", - "author_url": "https://github.com/cartermckinnon", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119241", - "pr_number": 119241, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "119247": { - "commit": "a8b90c9008609913c3b9b8f5b146e68d9ec8146f", - "text": "Updated `setcap` image to debian bookworm v1.0.0.", - "markdown": "Updated `setcap` image to debian bookworm v1.0.0. ([#119247](https://github.com/kubernetes/kubernetes/pull/119247), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119247", - "pr_number": 119247, - "kinds": [ - "cleanup" - ], - "sigs": [ - "release" - ] - }, - "119250": { - "commit": "406d2dfe619224dcaaf8942e24868a0874e8db03", - "text": "Migrated the podgc controller and some other remaining log calls within `kube-controller-manager` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). `kube-controller-manager` is now converted completely.", - "markdown": "Migrated the podgc controller and some other remaining log calls within `kube-controller-manager` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). `kube-controller-manager` is now converted completely. ([#119250](https://github.com/kubernetes/kubernetes/pull/119250), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Cloud Provider, Instrumentation, Network, Storage and Testing]", - "documentation": [ - { - "description": "-[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3077", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119250", - "pr_number": 119250, - "areas": [ - "test", - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "storage", - "api-machinery", - "apps", - "instrumentation", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "119256": { - "commit": "4575facd23b984c05ed02aac8715cc64b99de148", - "text": "Fixed a bug where `kubectl port-forward`, when used with a Deployment, could connect to a terminating pod even when a running pod is also available.", - "markdown": "Fixed a bug where `kubectl port-forward`, when used with a Deployment, could connect to a terminating pod even when a running pod is also available. ([#119256](https://github.com/kubernetes/kubernetes/pull/119256), [@brianpursley](https://github.com/brianpursley)) [SIG CLI]", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119256", - "pr_number": 119256, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "119264": { - "commit": "1da70b0736054555b62096848f2dc58d9c610e2c", - "text": "registered_metric_total, disabled_metric_total, hidden_metric_total \u0026 kubernetes_feature_enabled are promoted to `BETA` stability.", - "markdown": "Registered_metric_total, disabled_metric_total, hidden_metric_total \u0026 kubernetes_feature_enabled are promoted to `BETA` stability. ([#119264](https://github.com/kubernetes/kubernetes/pull/119264), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Architecture, Cluster Lifecycle and Instrumentation]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3498", - "type": "KEP" - } - ], - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119264", - "pr_number": 119264, - "areas": [ - "stable-metrics" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "instrumentation", - "architecture" - ], - "duplicate": true, - "duplicate_kind": true - }, - "119286": { - "commit": "d39965270effcf6d6daf6c3a672af8d62b943cb8", - "text": "Removed `KUBECTL_EXPLAIN_OPENAPIV3` which is already redundant.", - "markdown": "Removed `KUBECTL_EXPLAIN_OPENAPIV3` which is already redundant. ([#119286](https://github.com/kubernetes/kubernetes/pull/119286), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119286", - "pr_number": 119286, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "119294": { - "commit": "f3f5dd99ac7bdc61c61c3d587575090c3473ab5a", - "text": "Extended the Job API for alpha version of `BackoffLimitPerIndex`.", - "markdown": "Extended the Job API for alpha version of `BackoffLimitPerIndex`. ([#119294](https://github.com/kubernetes/kubernetes/pull/119294), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3850-backoff-limits-per-index-for-indexed-jobs", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119294", - "pr_number": 119294, - "areas": [ - "code-generation" - ], - "kinds": [ - "documentation", - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "119301": { - "commit": "9892b5370450ff0b3d86f67e8e82d1545299c785", - "text": "Added `podReplacementPolicy` and terminating field to job api.", - "markdown": "Added `podReplacementPolicy` and terminating field to job api. ([#119301](https://github.com/kubernetes/kubernetes/pull/119301), [@kannon92](https://github.com/kannon92))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3939-allow-replacement-when-fully-terminated.", - "type": "KEP" - } - ], - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119301", - "pr_number": 119301, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "119311": { - "commit": "d5a653fd8791f25f44109e4626c1b34a7eec4164", - "text": "Added `apiserver_admission_match_condition_evaluation_seconds` and `apiserver_admission_match_condition_exclusions_total` metrics.", - "markdown": "Added `apiserver_admission_match_condition_evaluation_seconds` and `apiserver_admission_match_condition_exclusions_total` metrics. ([#119311](https://github.com/kubernetes/kubernetes/pull/119311), [@ivelichkovich](https://github.com/ivelichkovich))", - "documentation": [ - { - "description": "[KEP-3716]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3716-admission-webhook-match-conditions", - "type": "KEP" - } - ], - "author": "ivelichkovich", - "author_url": "https://github.com/ivelichkovich", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119311", - "pr_number": 119311, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "119324": { - "commit": "5c96e5321e6b4c4875cdbc61c121c27e3e1f189d", - "text": "Kubernetes is now built with Go `1.20.6`.", - "markdown": "Kubernetes is now built with Go `1.20.6`. ([#119324](https://github.com/kubernetes/kubernetes/pull/119324), [@xmudrii](https://github.com/xmudrii))", - "author": "xmudrii", - "author_url": "https://github.com/xmudrii", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119324", - "pr_number": 119324, - "areas": [ - "test", - "cloudprovider", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing", - "release", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "119328": { - "commit": "1b7fffa0a1c620c7c5a5fefd82df47884e60c0c1", - "text": "Added a new feature gate, `SchedulerQueueingHints` (enabled by default).\nThe new feature gate activates a framework for fine-grained filtering of events related to scheduler plugins.\nIn this release, no default scheduling plugins make use of the hinting framework, so you should not expect any behavior changes.", - "markdown": "Added a new feature gate, `SchedulerQueueingHints` (enabled by default).\n The new feature gate activates a framework for fine-grained filtering of events related to scheduler plugins.\n In this release, no default scheduling plugins make use of the hinting framework, so you should not expect any behavior changes. ([#119328](https://github.com/kubernetes/kubernetes/pull/119328), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119328", - "pr_number": 119328, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "119351": { - "commit": "16534deedf1e3f7301b20041fafe15ff7f178904", - "text": "kubeadm: the limitation that the `ignorePreflightErrors` field can not be set to `all` in kubeadm config file has been removed.", - "markdown": "Kubeadm: the limitation that the `ignorePreflightErrors` field can not be set to `all` in kubeadm config file has been removed. ([#119351](https://github.com/kubernetes/kubernetes/pull/119351), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119351", - "pr_number": 119351, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "119365": { - "commit": "9946ea9fd851fb1cd2148b746077d9f89c27e074", - "text": "Bumped `distroless-iptables` to 0.2.6 based on Go 1.20.6.", - "markdown": "Bumped `distroless-iptables` to 0.2.6 based on Go 1.20.6. ([#119365](https://github.com/kubernetes/kubernetes/pull/119365), [@xmudrii](https://github.com/xmudrii))", - "author": "xmudrii", - "author_url": "https://github.com/xmudrii", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119365", - "pr_number": 119365, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - }, - "119374": { - "commit": "ff90c1cc73e5dcebec574e341ee32f11851d050a", - "text": "The `IPTablesOwnershipCleanup` feature (KEP-3178) is now GA; kubelet no longer\ncreates the `KUBE-MARK-DROP` chain (which has been unused for several releases)\nor the `KUBE-MARK-MASQ` chain (which is now only created by kube-proxy).", - "markdown": "The `IPTablesOwnershipCleanup` feature (KEP-3178) is now GA; kubelet no longer\n creates the `KUBE-MARK-DROP` chain (which has been unused for several releases)\n or the `KUBE-MARK-MASQ` chain (which is now only created by kube-proxy). ([#119374](https://github.com/kubernetes/kubernetes/pull/119374), [@danwinship](https://github.com/danwinship))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3178", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119374", - "pr_number": 119374, - "areas": [ - "kubelet", - "kube-proxy", - "code-generation", - "ipvs" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "node", - "api-machinery" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "119380": { - "commit": "704970877e827908fc231d76f545feaa376bb6ed", - "text": "Graduated `AdmissionWebhookMatchCondition` feature to beta.", - "markdown": "Graduated `AdmissionWebhookMatchCondition` feature to beta. ([#119380](https://github.com/kubernetes/kubernetes/pull/119380), [@a-hilaly](https://github.com/a-hilaly))", - "author": "a-hilaly", - "author_url": "https://github.com/a-hilaly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119380", - "pr_number": 119380, - "areas": [ - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "119390": { - "commit": "8c1dc65da905d0c8435659424169846ba2fb2d63", - "text": "Implemented alpha support for a drop-in kubelet configuration directory.", - "markdown": "Implemented alpha support for a drop-in kubelet configuration directory. ([#119390](https://github.com/kubernetes/kubernetes/pull/119390), [@sohankunkerkar](https://github.com/sohankunkerkar))", - "documentation": [ - { - "description": "[KEP-3983](", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/3983-drop-in-configuration/README.md)", - "type": "KEP" - } - ], - "author": "sohankunkerkar", - "author_url": "https://github.com/sohankunkerkar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119390", - "pr_number": 119390, - "areas": [ - "kubelet", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "119409": { - "commit": "b53830590fc2eff8a219d7bc225091878263ebe6", - "text": "Promoted the feature gate `ValidtaingAdmissionPolicy` to beta, and it is turned off by default.", - "markdown": "Promoted the feature gate `ValidtaingAdmissionPolicy` to beta, and it is turned off by default. ([#119409](https://github.com/kubernetes/kubernetes/pull/119409), [@alexzielenski](https://github.com/alexzielenski))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/cici37/enhancements/blob/d83909e5f8683f38ef38dc3276c2d9f667d65290/keps/sig-api-machinery/3488-cel-admission-control/README.md", - "type": "external" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119409", - "pr_number": 119409, - "areas": [ - "test", - "apiserver", - "release-eng", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "auth", - "apps", - "instrumentation", - "testing", - "release" - ], - "duplicate": true, - "duplicate_kind": true - }, - "119422": { - "commit": "4b6c340c1396194135221c88b86314437fc86c6d", - "text": "Switched back to `debian-base` instead of distroless for conformance image.", - "markdown": "Switched back to `debian-base` instead of distroless for conformance image. ([#119422](https://github.com/kubernetes/kubernetes/pull/119422), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119422", - "pr_number": 119422, - "areas": [ - "test", - "conformance" - ], - "kinds": [ - "failing-test" - ], - "sigs": [ - "testing", - "release", - "architecture" - ], - "duplicate": true - }, - "119434": { - "commit": "c7f79bc2683f6cdedf0081aff259474c881ed166", - "text": "Fixed computing backoff delay when using Job pod failure policy, by including in the backoff delay calculation pod failures ignored from the backoffLimit counter.", - "markdown": "Fixed computing backoff delay when using Job pod failure policy, by including in the backoff delay calculation pod failures ignored from the backoffLimit counter. ([#119434](https://github.com/kubernetes/kubernetes/pull/119434), [@mimowo](https://github.com/mimowo))", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119434", - "pr_number": 119434, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "94021": { - "commit": "f51dad586ddc1a02b4fcc4e3974092ad78b630a7", - "text": "Supported specifying a custom retry period for cloud `load-balancer` operations.", - "markdown": "Supported specifying a custom retry period for cloud `load-balancer` operations. ([#94021](https://github.com/kubernetes/kubernetes/pull/94021), [@timoreimann](https://github.com/timoreimann))", - "author": "timoreimann", - "author_url": "https://github.com/timoreimann", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/94021", - "pr_number": 94021, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "cloud-provider" - ], - "feature": true, - "duplicate": true - } +{ + "110472": { + "commit": "312bfa5505adff5ea568f9daf519daba3ef450f5", + "text": "Fixed bug where using the $deleteFromPrimitiveList directive in a strategic merge patch of certain fields would remove the other values from the list instead of the values specified.", + "markdown": "Fixed bug where using the $deleteFromPrimitiveList directive in a strategic merge patch of certain fields would remove the other values from the list instead of the values specified. ([#110472](https://github.com/kubernetes/kubernetes/pull/110472), [@brianpursley](https://github.com/brianpursley)) [SIG API Machinery]", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110472", + "pr_number": 110472, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "110477": { + "commit": "25a25e27a9bcb903ef5a74ae5dd92946d2dbd913", + "text": "Added support for pod `hostNetwork` field selector", + "markdown": "Added support for pod `hostNetwork` field selector ([#110477](https://github.com/kubernetes/kubernetes/pull/110477), [@halfcrazy](https://github.com/halfcrazy)) [SIG Apps and Node]", + "author": "halfcrazy", + "author_url": "https://github.com/halfcrazy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/110477", + "pr_number": 110477, + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "apps" + ], + "feature": true, + "duplicate": true + }, + "113209": { + "commit": "03b2e8418318d774247192f5b0d76543e52c47fd", + "text": "`kubelet` will ensure /etc/hosts file is mode 0644 regardless of umask.", + "markdown": "`kubelet` will ensure /etc/hosts file is mode 0644 regardless of umask. ([#113209](https://github.com/kubernetes/kubernetes/pull/113209), [@luozhiwenn](https://github.com/luozhiwenn))", + "author": "luozhiwenn", + "author_url": "https://github.com/luozhiwenn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113209", + "pr_number": 113209, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "113245": { + "commit": "b908e2710a974c7f8d9460cb45edf741408e1a3a", + "text": "Added warning for dup ports update/patching in pod's container ports and service ports.", + "markdown": "Added warning for dup ports update/patching in pod's container ports and service ports. ([#113245](https://github.com/kubernetes/kubernetes/pull/113245), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113245", + "pr_number": 113245, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "113362": { + "commit": "fe9ef26af5d90de9610153c73f47ce75805ee9d5", + "text": "`client-go`: Improved memory use of reflector caches when watching large numbers\nof objects which do not change frequently.", + "markdown": "`client-go`: Improved memory use of reflector caches when watching large numbers\n of objects which do not change frequently. ([#113362](https://github.com/kubernetes/kubernetes/pull/113362), [@sxllwx](https://github.com/sxllwx))", + "author": "sxllwx", + "author_url": "https://github.com/sxllwx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113362", + "pr_number": 113362, + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery" + ] + }, + "113969": { + "commit": "b35ffd1dcb1e2a745fe7b1337f244efdcdd0cdca", + "text": "NONE", + "markdown": "NONE ([#113969](https://github.com/kubernetes/kubernetes/pull/113969), [@Octopusjust](https://github.com/Octopusjust))", + "author": "Octopusjust", + "author_url": "https://github.com/Octopusjust", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113969", + "pr_number": 113969, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "113994": { + "commit": "28296ba59e179d755ba908e195764141b4ecef2e", + "text": "Migrated the certificate controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the certificate controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113994](https://github.com/kubernetes/kubernetes/pull/113994), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Apps, Auth, Instrumentation and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113994", + "pr_number": 113994, + "areas": [ + "test", + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "114068": { + "commit": "8d494c49d1279350f800bc9addf41c4df9036332", + "text": "The feature gates `DisableAcceleratorUsageMetrics` and `PodSecurity` that graduated to GA and were unconditionally enabled have been removed in v1.28.", + "markdown": "The feature gates `DisableAcceleratorUsageMetrics` and `PodSecurity` that graduated to GA and were unconditionally enabled have been removed in v1.28. ([#114068](https://github.com/kubernetes/kubernetes/pull/114068), [@cyclinder](https://github.com/cyclinder)) [SIG API Machinery, Node, Scheduling and Storage]", + "author": "cyclinder", + "author_url": "https://github.com/cyclinder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114068", + "pr_number": 114068, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "api-machinery" + ], + "duplicate": true + }, + "114307": { + "commit": "a9e40bd7c6609b89bf4eef01f18de062629baf7f", + "text": "Graduated the `ProbeTerminationGracePeriod` feature gate to GA.", + "markdown": "Graduated the `ProbeTerminationGracePeriod` feature gate to GA. ([#114307](https://github.com/kubernetes/kubernetes/pull/114307), [@rphillips](https://github.com/rphillips))", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114307", + "pr_number": 114307, + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "apps" + ], + "feature": true, + "duplicate": true + }, + "114471": { + "commit": "9c15d75f23402badbc2930aea7bef0ef4901248c", + "text": "Migrated `pod-security-admission` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated `pod-security-admission` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#114471](https://github.com/kubernetes/kubernetes/pull/114471), [@Namanl2001](https://github.com/Namanl2001)) [SIG Apps and Auth]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "Namanl2001", + "author_url": "https://github.com/Namanl2001", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114471", + "pr_number": 114471, + "areas": [ + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "apps" + ], + "feature": true, + "duplicate": true + }, + "114530": { + "commit": "3267dd9d5294893580538e98c1e410f64583c0cd", + "text": "Added a new command line argument `--interactive` to kubectl. The new command line argument lets a user confirm deletion requests per resource interactively.", + "markdown": "Added a new command line argument `--interactive` to kubectl. The new command line argument lets a user confirm deletion requests per resource interactively. ([#114530](https://github.com/kubernetes/kubernetes/pull/114530), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114530", + "pr_number": 114530, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "114606": { + "commit": "70033bf84301d64f079dd7c1ca19b05d57a39bee", + "text": "Fixed a bug that unintentionally overrides custom Accept headers in http (live-/readiness)-probes if the header is in lowercase.", + "markdown": "Fixed a bug that unintentionally overrides custom Accept headers in http (live-/readiness)-probes if the header is in lowercase. ([#114606](https://github.com/kubernetes/kubernetes/pull/114606), [@tuunit](https://github.com/tuunit))", + "author": "tuunit", + "author_url": "https://github.com/tuunit", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114606", + "pr_number": 114606, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true + }, + "114746": { + "commit": "eb78b75a2c349df67ef2080b438e980512da1df8", + "text": "NONE", + "markdown": "NONE ([#114746](https://github.com/kubernetes/kubernetes/pull/114746), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114746", + "pr_number": 114746, + "areas": [ + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "114849": { + "commit": "2e93c65eff5979e21178d9d7117916e49af29838", + "text": "Users will no longer see an error for failed events caused due to terminating namespace.", + "markdown": "Users will no longer see an error for failed events caused due to terminating namespace. ([#114849](https://github.com/kubernetes/kubernetes/pull/114849), [@padlar](https://github.com/padlar)) [SIG API Machinery]", + "author": "padlar", + "author_url": "https://github.com/padlar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114849", + "pr_number": 114849, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "114875": { + "commit": "b63618a7393689cad5143135f6660e8def8c9d25", + "text": "NONE", + "markdown": "NONE ([#114875](https://github.com/kubernetes/kubernetes/pull/114875), [@prrajput1199](https://github.com/prrajput1199))", + "author": "prrajput1199", + "author_url": "https://github.com/prrajput1199", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114875", + "pr_number": 114875, + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture" + ], + "do_not_publish": true + }, + "114909": { + "commit": "2075b20b28848f26637e7249a2647515ff253b43", + "text": "`kubectl expose` supports the creation of different protocol services on the same port.", + "markdown": "`kubectl expose` supports the creation of different protocol services on the same port. ([#114909](https://github.com/kubernetes/kubernetes/pull/114909), [@aimuz](https://github.com/aimuz))", + "author": "aimuz", + "author_url": "https://github.com/aimuz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114909", + "pr_number": 114909, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "115122": { + "commit": "ad72319eced8e800c0ed3b1564c87e343b0b2430", + "text": "// we want to leverage the behavior of the endpoint /auth\ntype TestServer struct {\n\thttpServer *httptest.Server\n\ttokenHandler *MockTokenHandler\n\tjwksHandler *MockJWKsHandler\n\n /* Create handler interface in file test/utils/oidc/handlers.go\n generate its mock implementation and inject it into the server */\n authHandler *MockAuthHandler\n\n\tTearDownFn func()\n}\n\n// Create handler's getter to be able to have access and adjust handler in a calling code\nfunc (ts *TestServer) AuthHandler() *MockAuthHandler {\n\treturn ts.authHandler\n}\n\nfunc BuildAndRunTestServer(t *testing.T, caPath, caKeyPath string) *TestServer { \n... \n // Change auth HTTP handler\n\tmux.HandleFunc(authWebPath, func(writer http.ResponseWriter, request *http.Request) { \n\t\tresult, err := oidcServer.authHandler.Authenticate()\n\t\tif err != nil {\n\t\t\thttp.Error(writer, err.Error(), http.StatusBadRequest)\n\n\t\t\treturn\n\t\t}\n\n\t\twriter.Header().Add(\"Content-Type\", \"application/json\")\n\t\twriter.WriteHeader(http.StatusOK)\n\n\t\terr = json.NewEncoder(writer).Encode(result)\n\t\trequire.NoError(t, err)\n\n\t\treturn \n\t}) \n...", + "markdown": "// we want to leverage the behavior of the endpoint /auth\n type TestServer struct {\n \thttpServer *httptest.Server\n \ttokenHandler *MockTokenHandler\n \tjwksHandler *MockJWKsHandler\n \n /* Create handler interface in file test/utils/oidc/handlers.go\n generate its mock implementation and inject it into the server */\n authHandler *MockAuthHandler\n \n \tTearDownFn func()\n }\n \n // Create handler's getter to be able to have access and adjust handler in a calling code\n func (ts *TestServer) AuthHandler() *MockAuthHandler {\n \treturn ts.authHandler\n }\n \n func BuildAndRunTestServer(t *testing.T, caPath, caKeyPath string) *TestServer { \n ... \n // Change auth HTTP handler\n \tmux.HandleFunc(authWebPath, func(writer http.ResponseWriter, request *http.Request) { \n \t\tresult, err := oidcServer.authHandler.Authenticate()\n \t\tif err != nil {\n \t\t\thttp.Error(writer, err.Error(), http.StatusBadRequest)\n \n \t\t\treturn\n \t\t}\n \n \t\twriter.Header().Add(\"Content-Type\", \"application/json\")\n \t\twriter.WriteHeader(http.StatusOK)\n \n \t\terr = json.NewEncoder(writer).Encode(result)\n \t\trequire.NoError(t, err)\n \n \t\treturn \n \t}) \n ... ([#115122](https://github.com/kubernetes/kubernetes/pull/115122), [@r-erema](https://github.com/r-erema)) [SIG Auth and Testing]", + "author": "r-erema", + "author_url": "https://github.com/r-erema", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115122", + "pr_number": 115122, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "115133": { + "commit": "0c969ad66045a484982cf8b5b183e2509672197f", + "text": "Enabled the `node-local` kubelet podresources API endpoint on windows, alongside unix.", + "markdown": "Enabled the `node-local` kubelet podresources API endpoint on windows, alongside unix. ([#115133](https://github.com/kubernetes/kubernetes/pull/115133), [@ffromani](https://github.com/ffromani))", + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115133", + "pr_number": 115133, + "areas": [ + "test", + "kubelet", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "windows", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "115295": { + "commit": "8f1852bb44ababdc93e3e4f8791b893565995061", + "text": "Migrated the `EndpointSlice` and `EndpointSliceMirroring` controllers (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the `EndpointSlice` and `EndpointSliceMirroring` controllers (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#115295](https://github.com/kubernetes/kubernetes/pull/115295), [@Namanl2001](https://github.com/Namanl2001)) [SIG API Machinery, Apps, Network and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "Namanl2001", + "author_url": "https://github.com/Namanl2001", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115295", + "pr_number": 115295, + "areas": [ + "test", + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "115357": { + "commit": "1c7e87cff27aa009488a9d55342220e223d5c146", + "text": "Allow to monitor client-go DNS resolver latencies via `rest_client_dns_resolution_duration_seconds` Prometheus metric.", + "markdown": "Allow to monitor client-go DNS resolver latencies via `rest_client_dns_resolution_duration_seconds` Prometheus metric. ([#115357](https://github.com/kubernetes/kubernetes/pull/115357), [@mfojtik](https://github.com/mfojtik))", + "author": "mfojtik", + "author_url": "https://github.com/mfojtik", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115357", + "pr_number": 115357, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "115398": { + "commit": "87f3acf7f66787d9cbfad99f5ffdff1475aa9896", + "text": "NodeVolumeLimits implement the `PreFilter` extension point for skipping the Filter phase if the Pod doesn't use volumes with limits.", + "markdown": "NodeVolumeLimits implement the `PreFilter` extension point for skipping the Filter phase if the Pod doesn't use volumes with limits. ([#115398](https://github.com/kubernetes/kubernetes/pull/115398), [@tangwz](https://github.com/tangwz)) [SIG Scheduling]", + "author": "tangwz", + "author_url": "https://github.com/tangwz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115398", + "pr_number": 115398, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "duplicate_kind": true + }, + "115399": { + "commit": "779abe6ebecee5dad6cef99f1dc94eef98fe8684", + "text": "Added a warning that TLS 1.3 ciphers are not configurable.", + "markdown": "Added a warning that TLS 1.3 ciphers are not configurable. ([#115399](https://github.com/kubernetes/kubernetes/pull/115399), [@3u13r](https://github.com/3u13r)) [SIG API Machinery and Node]", + "author": "3u13r", + "author_url": "https://github.com/3u13r", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115399", + "pr_number": 115399, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "documentation", + "api-change" + ], + "sigs": [ + "node", + "api-machinery" + ], + "duplicate": true, + "duplicate_kind": true + }, + "115554": { + "commit": "c35a2775b2719a721a3f4f1fbf8b0e07e423a7bd", + "text": "`kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate\nis now available as alpha (off by default). When enabled, the `legacy-service-account-token-cleaner`\ncontroller loop removes service account token secrets that have not been used\nin the time specified by `--legacy-service-account-token-clean-up-period` (defaulting\nto one year), **and are** referenced from the `.secrets` list of a ServiceAccount\nobject, **and are not** referenced from pods.", + "markdown": "`kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate\n is now available as alpha (off by default). When enabled, the `legacy-service-account-token-cleaner`\n controller loop removes service account token secrets that have not been used\n in the time specified by `--legacy-service-account-token-clean-up-period` (defaulting\n to one year), **and are** referenced from the `.secrets` list of a ServiceAccount\n object, **and are not** referenced from pods. ([#115554](https://github.com/kubernetes/kubernetes/pull/115554), [@yt2985](https://github.com/yt2985))", + "author": "yt2985", + "author_url": "https://github.com/yt2985", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115554", + "pr_number": 115554, + "areas": [ + "test", + "release-eng", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "testing", + "release" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115694": { + "commit": "e1af716860896c2750672cfa0dddb8e41e30f75b", + "text": "Fixed bug where explain was not properly respecting jsonpaths.", + "markdown": "Fixed bug where explain was not properly respecting jsonpaths. ([#115694](https://github.com/kubernetes/kubernetes/pull/115694), [@mpuckett159](https://github.com/mpuckett159))", + "author": "mpuckett159", + "author_url": "https://github.com/mpuckett159", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115694", + "pr_number": 115694, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "115754": { + "commit": "ffb4172ff18ff9edc19adff9c657da81c25aaf92", + "text": "Added new config option `delayCacheUntilActive` to `KubeSchedulerConfiguration` that can provide a tradeoff between memory efficiency and scheduling speed when their leadership is updated in `kube-scheduler`", + "markdown": "Added new config option `delayCacheUntilActive` to `KubeSchedulerConfiguration` that can provide a tradeoff between memory efficiency and scheduling speed when their leadership is updated in `kube-scheduler` ([#115754](https://github.com/kubernetes/kubernetes/pull/115754), [@linxiulei](https://github.com/linxiulei)) [SIG API Machinery and Scheduling]", + "author": "linxiulei", + "author_url": "https://github.com/linxiulei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115754", + "pr_number": 115754, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "115813": { + "commit": "4f6a750bbfa5ef114cf24371a098e91074e0d371", + "text": "`kube-controller-manager` and `cloud-controller-manager` have changed the\nname of controllers that can be turned on/off that are passed to the `--controllers`\nflag (e.g., `pod-garbage-collector-controller`). The old names (eg `podgc`) are\nalso accepted and aliased to the new names.", + "markdown": "`kube-controller-manager` and `cloud-controller-manager` have changed the\n name of controllers that can be turned on/off that are passed to the `--controllers`\n flag (e.g., `pod-garbage-collector-controller`). The old names (eg `podgc`) are\n also accepted and aliased to the new names. ([#115813](https://github.com/kubernetes/kubernetes/pull/115813), [@atiratree](https://github.com/atiratree))", + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115813", + "pr_number": 115813, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "duplicate": true + }, + "115835": { + "commit": "6a79a8a57c0924343fba2ffe9aa6cad19a3e257a", + "text": "Fixed the `preStop` hook. This will now block the pod termination grace period.", + "markdown": "Fixed the `preStop` hook. This will now block the pod termination grace period. ([#115835](https://github.com/kubernetes/kubernetes/pull/115835), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115835", + "pr_number": 115835, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "115843": { + "commit": "d6471d01a43d575351ec505f95a3691c977caccd", + "text": "Removed withdrawn feature `NetworkPolicyStatus`.", + "markdown": "Removed withdrawn feature `NetworkPolicyStatus`. ([#115843](https://github.com/kubernetes/kubernetes/pull/115843), [@rikatz](https://github.com/rikatz))", + "documentation": [ + { + "description": "[KEP](", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2943-networkpolicy-status)", + "type": "KEP" + } + ], + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115843", + "pr_number": 115843, + "areas": [ + "test", + "conformance", + "code-generation", + "network-policy" + ], + "kinds": [ + "cleanup", + "api-change", + "feature", + "deprecation" + ], + "sigs": [ + "network", + "api-machinery", + "apps", + "testing", + "architecture" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116104": { + "commit": "ff4eff24ac4fad5431aa89681717d6c4fe5733a4", + "text": "NONE", + "markdown": "NONE ([#116104](https://github.com/kubernetes/kubernetes/pull/116104), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116104", + "pr_number": 116104, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "116134": { + "commit": "4893c66a48df7281d91236704ae6ca99439a9340", + "text": "fix: After a Node is down and take some time to get back to up again, the mount point of the evicted Pods cannot be cleaned up successfully. (#111933) Meanwhile Kubelet will print the log `Orphaned pod \"xxx\" found, but error not a directory occurred when trying to remove the volumes dir` every 2 seconds. (#105536)", + "markdown": "Fix: After a Node is down and take some time to get back to up again, the mount point of the evicted Pods cannot be cleaned up successfully. (#111933) Meanwhile Kubelet will print the log `Orphaned pod \"xxx\" found, but error not a directory occurred when trying to remove the volumes dir` every 2 seconds. (#105536) ([#116134](https://github.com/kubernetes/kubernetes/pull/116134), [@cvvz](https://github.com/cvvz)) [SIG Node and Storage]", + "author": "cvvz", + "author_url": "https://github.com/cvvz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116134", + "pr_number": 116134, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true + }, + "116138": { + "commit": "de109979a141c668c4f5faf9288f417ee6a23d68", + "text": "fix: the volume is not detached after the pod and PVC objects are deleted.", + "markdown": "Fix: The volume is not detached after the pod and PVC objects are deleted. ([#116138](https://github.com/kubernetes/kubernetes/pull/116138), [@cvvz](https://github.com/cvvz)) [SIG Storage]", + "author": "cvvz", + "author_url": "https://github.com/cvvz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116138", + "pr_number": 116138, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "116208": { + "commit": "3cd81876bdb8f20d90f4224f6f540baec9d65b3a", + "text": "The short names `fs` and `plc` were introduced for the resources `flowschemas` and `prioritylevelconfigurations`, respectively.", + "markdown": "The short names `fs` and `plc` were introduced for the resources `flowschemas` and `prioritylevelconfigurations`, respectively. ([#116208](https://github.com/kubernetes/kubernetes/pull/116208), [@kkkkun](https://github.com/kkkkun))", + "author": "kkkkun", + "author_url": "https://github.com/kkkkun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116208", + "pr_number": 116208, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "do_not_publish": true + }, + "116254": { + "commit": "f55f2785e2bf61a23a2a235b13e7b50899591681", + "text": "kubelet: security of dynamic resource allocation was enhanced by limiting node access to those objects that are needed on the node.", + "markdown": "Kubelet: security of dynamic resource allocation was enhanced by limiting node access to those objects that are needed on the node. ([#116254](https://github.com/kubernetes/kubernetes/pull/116254), [@pohly](https://github.com/pohly)) [SIG Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116254", + "pr_number": 116254, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "116327": { + "commit": "75f17eb38fc8bbcb360d43dffce6e27a7159d43f", + "text": "`kube-apiserver`: Improved memory use when performing `GetList` on the cache.", + "markdown": "`kube-apiserver`: Improved memory use when performing `GetList` on the cache. ([#116327](https://github.com/kubernetes/kubernetes/pull/116327), [@sxllwx](https://github.com/sxllwx))", + "author": "sxllwx", + "author_url": "https://github.com/sxllwx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116327", + "pr_number": 116327, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "116335": { + "commit": "a776bf046286b578bc6259cca7e5bc0d0fb14e59", + "text": "Removed `resizeStatus` enum from `pvc.Status` and replaced with `AllocatedResourceStatus`.", + "markdown": "Removed `resizeStatus` enum from `pvc.Status` and replaced with `AllocatedResourceStatus`. ([#116335](https://github.com/kubernetes/kubernetes/pull/116335), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Apps, Auth, Node, Storage and Testing]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116335", + "pr_number": 116335, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "auth", + "apps", + "testing" + ], + "duplicate": true + }, + "116374": { + "commit": "62d00139e8712e672de29c23f4adfe7cf6039906", + "text": "NONE", + "markdown": "NONE ([#116374](https://github.com/kubernetes/kubernetes/pull/116374), [@sxllwx](https://github.com/sxllwx))", + "author": "sxllwx", + "author_url": "https://github.com/sxllwx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116374", + "pr_number": 116374, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "116376": { + "commit": "1241ddc56774f3a13933557209eb8f1ece9c167d", + "text": "During device plugin allocation, resources requested by the pod can only be allocated if the device plugin has registered itself to kubelet AND healthy devices are present on the node to be allocated. If these conditions are not sattsfied, the pod would fail with `UnexpectedAdmissionError` error.", + "markdown": "During device plugin allocation, resources requested by the pod can only be allocated if the device plugin has registered itself to kubelet AND healthy devices are present on the node to be allocated. If these conditions are not sattsfied, the pod would fail with `UnexpectedAdmissionError` error. ([#116376](https://github.com/kubernetes/kubernetes/pull/116376), [@swatisehgal](https://github.com/swatisehgal)) [SIG Node and Testing]", + "author": "swatisehgal", + "author_url": "https://github.com/swatisehgal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116376", + "pr_number": 116376, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "116408": { + "commit": "94a15929cf13354fdf3747cb266d511154f8c97b", + "text": "Kubelet will now skip pod resource checks when the request is zero.", + "markdown": "Kubelet will now skip pod resource checks when the request is zero. ([#116408](https://github.com/kubernetes/kubernetes/pull/116408), [@ChenLingPeng](https://github.com/ChenLingPeng))", + "author": "ChenLingPeng", + "author_url": "https://github.com/ChenLingPeng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116408", + "pr_number": 116408, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "116429": { + "commit": "0e1409833360adf6b46ca5ae3ba355169d065285", + "text": "The new feature gate \"SidecarContainers\" is now available. This feature introduces sidecar containers, a new type of init container that starts before other containers but remains running for the full duration of the pod's lifecycle and will not block pod termination.", + "markdown": "The new feature gate \"SidecarContainers\" is now available. This feature introduces sidecar containers, a new type of init container that starts before other containers but remains running for the full duration of the pod's lifecycle and will not block pod termination. ([#116429](https://github.com/kubernetes/kubernetes/pull/116429), [@gjkim42](https://github.com/gjkim42)) [SIG API Machinery, Apps, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", + "type": "KEP" + } + ], + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116429", + "pr_number": 116429, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "apps", + "testing" + ], + "duplicate": true + }, + "116443": { + "commit": "6ffca501361adadfb133ec1b8f76a2c2a23836dc", + "text": "In the course of admitting a single request, the ValidatingAdmissionPolicy plugin will perform no more than one authorization check per unique authorizer expression. All evaluations of identical authorizer expressions will produce the same decision.", + "markdown": "In the course of admitting a single request, the ValidatingAdmissionPolicy plugin will perform no more than one authorization check per unique authorizer expression. All evaluations of identical authorizer expressions will produce the same decision. ([#116443](https://github.com/kubernetes/kubernetes/pull/116443), [@benluddy](https://github.com/benluddy)) [SIG API Machinery and Testing]", + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116443", + "pr_number": 116443, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "116469": { + "commit": "f3a070f9c684d9335b6df91ef2f3ce207629882c", + "text": "PersistentVolumes have a new `LastPhaseTransitionTime` field which holds a timestamp of when the volume last transitioned its phase.", + "markdown": "PersistentVolumes have a new `LastPhaseTransitionTime` field which holds a timestamp of when the volume last transitioned its phase. ([#116469](https://github.com/kubernetes/kubernetes/pull/116469), [@RomanBednar](https://github.com/RomanBednar))", + "author": "RomanBednar", + "author_url": "https://github.com/RomanBednar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116469", + "pr_number": 116469, + "areas": [ + "test", + "apiserver", + "release-eng", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "auth", + "apps", + "testing", + "release" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116470": { + "commit": "f34365789d4161f1b47f998bc82250620eed183b", + "text": "[Kube-proxy]: Implemented connection draining for terminating nodes.", + "markdown": "[Kube-proxy]: Implemented connection draining for terminating nodes. ([#116470](https://github.com/kubernetes/kubernetes/pull/116470), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116470", + "pr_number": 116470, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "116482": { + "commit": "2f1db33dd54cbdba52c21c75a53c5387f1cd14ab", + "text": "Setting a mirror pod's phase to Succeeded or Failed can prevent the corresponding static pod from restarting due mutation of a Kubelet cache.", + "markdown": "Setting a mirror pod's phase to Succeeded or Failed can prevent the corresponding static pod from restarting due mutation of a Kubelet cache. ([#116482](https://github.com/kubernetes/kubernetes/pull/116482), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116482", + "pr_number": 116482, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "116506": { + "commit": "b277afdf469c959955a2818b85fb1e4333ba3c11", + "text": "When retrieving event resources, the `reportingController` and `reportingInstance` fields in the event will contain values.", + "markdown": "When retrieving event resources, the `reportingController` and `reportingInstance` fields in the event will contain values. ([#116506](https://github.com/kubernetes/kubernetes/pull/116506), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery and Instrumentation]", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116506", + "pr_number": 116506, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "116525": { + "commit": "cfeb83d56b039ec05eff197e4178c3dd067b1c4b", + "text": "The kubelet podresources endpoint is GA and always enabled.", + "markdown": "The kubelet podresources endpoint is GA and always enabled. ([#116525](https://github.com/kubernetes/kubernetes/pull/116525), [@ffromani](https://github.com/ffromani)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/606", + "type": "KEP" + } + ], + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116525", + "pr_number": 116525, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "116526": { + "commit": "c2efaa79088c554da4df2a07c3067be967aa7d60", + "text": "Updated `Cluster Autosaler` to version 1.26.1.", + "markdown": "Updated `Cluster Autosaler` to version 1.26.1. ([#116526](https://github.com/kubernetes/kubernetes/pull/116526), [@pacoxu](https://github.com/pacoxu)) [SIG Autoscaling and Cloud Provider]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116526", + "pr_number": 116526, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "autoscaling", + "cloud-provider" + ], + "duplicate": true + }, + "116530": { + "commit": "03486cec21579ce77304bb7265ecb90516418301", + "text": "kubelet: un-deprecated `--provider-id` flag.", + "markdown": "Kubelet: un-deprecated `--provider-id` flag. ([#116530](https://github.com/kubernetes/kubernetes/pull/116530), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116530", + "pr_number": 116530, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true + }, + "116635": { + "commit": "4483bf66fe58e9a65a025288179078374fc791b0", + "text": "Migrated the interpodaffinity scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the interpodaffinity scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116635](https://github.com/kubernetes/kubernetes/pull/116635), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116635", + "pr_number": 116635, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "duplicate": true + }, + "116649": { + "commit": "67cc86d00b23b27fb102367d5a9ce64af2f4acce", + "text": "Updated `cri-tools` to `v1.26.1`.", + "markdown": "Updated `cri-tools` to `v1.26.1`. ([#116649](https://github.com/kubernetes/kubernetes/pull/116649), [@saschagrunert](https://github.com/saschagrunert)) [SIG Architecture and Release]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116649", + "pr_number": 116649, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "release", + "architecture" + ], + "duplicate": true + }, + "116672": { + "commit": "3c076e4b7d5b348d4f6d506bcccda5f25c38cc86", + "text": "Added a container image for `kubectl` at `registry.k8s.io/kubectl` across the same architectures as other images (linux/amd64 linux/arm64 linux/s390x linux/ppc64le)", + "markdown": "Added a container image for `kubectl` at `registry.k8s.io/kubectl` across the same architectures as other images (linux/amd64 linux/arm64 linux/s390x linux/ppc64le) ([#116672](https://github.com/kubernetes/kubernetes/pull/116672), [@dims](https://github.com/dims)) [SIG Architecture and Release]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116672", + "pr_number": 116672, + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "116681": { + "commit": "27f5601182382ff5ca5b94bb24e42d479d3a370f", + "text": "Fixed an issue where the API server did not send impersonated UID to authentication webhooks.", + "markdown": "Fixed an issue where the API server did not send impersonated UID to authentication webhooks. ([#116681](https://github.com/kubernetes/kubernetes/pull/116681), [@stlaz](https://github.com/stlaz)) [SIG API Machinery and Auth]", + "author": "stlaz", + "author_url": "https://github.com/stlaz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116681", + "pr_number": 116681, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true + }, + "116685": { + "commit": "f66e1a3386021ab6fc3f4f705a2744f9ffae8d71", + "text": "`kube-apiserver` will now always remove its endpoint from Kubernetes service during\ngraceful shutdown (even if it's the only/last one).", + "markdown": "`kube-apiserver` will now always remove its endpoint from Kubernetes service during\n graceful shutdown (even if it's the only/last one). ([#116685](https://github.com/kubernetes/kubernetes/pull/116685), [@nayihz](https://github.com/nayihz))", + "author": "nayihz", + "author_url": "https://github.com/nayihz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116685", + "pr_number": 116685, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "116690": { + "commit": "d48c883372a1254d083922dd65c09882e59f95b2", + "text": "Updated static pods are restarted 2s faster by correcting a safe but non-optimal ordering bug.", + "markdown": "Updated static pods are restarted 2s faster by correcting a safe but non-optimal ordering bug. ([#116690](https://github.com/kubernetes/kubernetes/pull/116690), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116690", + "pr_number": 116690, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "116720": { + "commit": "80dab4127ba6711bc56426a5394aea481e390a66", + "text": "Changed `kubectl version` default output to be identical to what `kubectl version --short` printed,\nand removed `--short` flag entirely.", + "markdown": "Changed `kubectl version` default output to be identical to what `kubectl version --short` printed,\n and removed `--short` flag entirely. ([#116720](https://github.com/kubernetes/kubernetes/pull/116720), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116720", + "pr_number": 116720, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "116723": { + "commit": "74ad7c397d849cd03566b175ec9068d5c2d06326", + "text": "Marked the feature gate `ExperimentalHostUserNamespaceDefaulting` as deprecated.\nEnabling the feature gate already had no effect; the deprecation allows for removing the feature gate in a future release.", + "markdown": "Marked the feature gate `ExperimentalHostUserNamespaceDefaulting` as deprecated.\n Enabling the feature gate already had no effect; the deprecation allows for removing the feature gate in a future release. ([#116723](https://github.com/kubernetes/kubernetes/pull/116723), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node]", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116723", + "pr_number": 116723, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "116729": { + "commit": "ddbf3575a7f32503c02c1894a1d7dff8c29e766a", + "text": "Scheduler now waits for handlers to finish syncing before the scheduling cycles start.", + "markdown": "Scheduler now waits for handlers to finish syncing before the scheduling cycles start. ([#116729](https://github.com/kubernetes/kubernetes/pull/116729), [@AxeZhan](https://github.com/AxeZhan))", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116729", + "pr_number": 116729, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "116741": { + "commit": "0bb17a88fabfe4d5265b54ca705fcd54dfe5ab14", + "text": "The `ExpandedDNSConfig` feature has graduated to GA. 'ExpandedDNSConfig' feature was locked to default value and will be removed in v1.30. If you were setting this feature gate explicitly, please remove it now.", + "markdown": "The `ExpandedDNSConfig` feature has graduated to GA. 'ExpandedDNSConfig' feature was locked to default value and will be removed in v1.30. If you were setting this feature gate explicitly, please remove it now. ([#116741](https://github.com/kubernetes/kubernetes/pull/116741), [@gjkim42](https://github.com/gjkim42)) [SIG Apps, Network and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2595-expanded-dns-config", + "type": "KEP" + } + ], + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116741", + "pr_number": 116741, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "node", + "apps" + ], + "feature": true, + "duplicate": true + }, + "116748": { + "commit": "a38efaccc0a0bb66a7c1c73630fef012032d85b8", + "text": "Migrated the noderesources scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the noderesources scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116748](https://github.com/kubernetes/kubernetes/pull/116748), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116748", + "pr_number": 116748, + "areas": [ + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "116749": { + "commit": "d107037fbf5039ea4a6c490434d7f99acc8ade2c", + "text": "Added additional validation for endpoint IP configuration while iterating through queried endpoint list.", + "markdown": "Added additional validation for endpoint IP configuration while iterating through queried endpoint list. ([#116749](https://github.com/kubernetes/kubernetes/pull/116749), [@princepereira](https://github.com/princepereira))", + "author": "princepereira", + "author_url": "https://github.com/princepereira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116749", + "pr_number": 116749, + "kinds": [ + "cleanup", + "regression" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true, + "duplicate_kind": true + }, + "116755": { + "commit": "10a12165de5ebb5da1dd73163f790e90b181cd88", + "text": "Migrated `pkg/controller/endpoint` to contextual logging.", + "markdown": "Migrated `pkg/controller/endpoint` to contextual logging. ([#116755](https://github.com/kubernetes/kubernetes/pull/116755), [@my-git9](https://github.com/my-git9))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "my-git9", + "author_url": "https://github.com/my-git9", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116755", + "pr_number": 116755, + "areas": [ + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "apps", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "116797": { + "commit": "b44482a37c9ad8bd15f4f88294f86817fa38160a", + "text": "Migrated the podtopologyspread scheduler plugins to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the podtopologyspread scheduler plugins to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116797](https://github.com/kubernetes/kubernetes/pull/116797), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116797", + "pr_number": 116797, + "areas": [ + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "116829": { + "commit": "53772982be26ccfca8f8a9d3078bdc454b716c25", + "text": "Migrated the volumezone scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the volumezone scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116829](https://github.com/kubernetes/kubernetes/pull/116829), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116829", + "pr_number": 116829, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "duplicate": true + }, + "116835": { + "commit": "5170c25609cd43fcf9242b71852517dedf43a490", + "text": "Migrated `pkg/scheduler/framework/preemption` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated `pkg/scheduler/framework/preemption` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116835](https://github.com/kubernetes/kubernetes/pull/116835), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116835", + "pr_number": 116835, + "areas": [ + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "116842": { + "commit": "58e13496d6737725f3c8429707def0f576772aaa", + "text": "Migrated `pkg/scheduler/framework/runtime` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated `pkg/scheduler/framework/runtime` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116842](https://github.com/kubernetes/kubernetes/pull/116842), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116842", + "pr_number": 116842, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "duplicate": true + }, + "116849": { + "commit": "94d0bd24054d8cdd77f009caa1561d545de8b33a", + "text": "Updated the scheduler interface and cache methods to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Updated the scheduler interface and cache methods to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116849](https://github.com/kubernetes/kubernetes/pull/116849), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116849", + "pr_number": 116849, + "areas": [ + "test", + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "116865": { + "commit": "5f23f835879b514e9bf16809059b38957d20a486", + "text": "Fixed `creationTimestamp: null` causing unnecessary writes to etcd.", + "markdown": "Fixed `creationTimestamp: null` causing unnecessary writes to etcd. ([#116865](https://github.com/kubernetes/kubernetes/pull/116865), [@alexzielenski](https://github.com/alexzielenski))", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116865", + "pr_number": 116865, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "116879": { + "commit": "1e0b4c84cf7a2d28b8725dd95785cac3ef423528", + "text": "[Dual-stack] Fixed `generateAPIPodStatus()` of kubelet handling Secondary IP. hostIPs order may not be consistent. If secondary IP is before primary one, current logic adds primary IP twice into `PodIPs`, which leads to error: \"may specify no more than one IP for each IP family\".", + "markdown": "[Dual-stack] Fixed `generateAPIPodStatus()` of kubelet handling Secondary IP. hostIPs order may not be consistent. If secondary IP is before primary one, current logic adds primary IP twice into `PodIPs`, which leads to error: \"may specify no more than one IP for each IP family\". ([#116879](https://github.com/kubernetes/kubernetes/pull/116879), [@lzhecheng](https://github.com/lzhecheng))", + "author": "lzhecheng", + "author_url": "https://github.com/lzhecheng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116879", + "pr_number": 116879, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "116901": { + "commit": "dd43d864c1ef6721e2a18a8c18f1a11e819361d2", + "text": "Removed GA'ed feature gate `KubeletCredentialProviders`.", + "markdown": "Removed GA'ed feature gate `KubeletCredentialProviders`. ([#116901](https://github.com/kubernetes/kubernetes/pull/116901), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116901", + "pr_number": 116901, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "116910": { + "commit": "47e79b815608c8e2877389b872a31dfd01184148", + "text": "Migrated the Job controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the Job controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116910](https://github.com/kubernetes/kubernetes/pull/116910), [@fatsheep9146](https://github.com/fatsheep9146)) [SIG API Machinery, Apps and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "fatsheep9146", + "author_url": "https://github.com/fatsheep9146", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116910", + "pr_number": 116910, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "116930": { + "commit": "8c1bf4f461fc3036f68a7e1ad628c426cbfad262", + "text": "Migrated controller functions to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated controller functions to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116930](https://github.com/kubernetes/kubernetes/pull/116930), [@fatsheep9146](https://github.com/fatsheep9146)) [SIG API Machinery, Apps, Network, Node, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "fatsheep9146", + "author_url": "https://github.com/fatsheep9146", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116930", + "pr_number": 116930, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "116937": { + "commit": "892ebf2d253b3c8369f61d7b60ceae45863201c6", + "text": "SubjectAccessReview requests sent to webhook authorizers now default `spec.resourceAttributes.version` to `*` if unset.", + "markdown": "SubjectAccessReview requests sent to webhook authorizers now default `spec.resourceAttributes.version` to `*` if unset. ([#116937](https://github.com/kubernetes/kubernetes/pull/116937), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps and Auth]", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116937", + "pr_number": 116937, + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "apps" + ], + "feature": true, + "duplicate": true + }, + "116968": { + "commit": "6b0e66abad0678b184fbc3381d45d3513ffafcc0", + "text": "Allows users to specify Kubelet `PodAndContainerStatsFromCRI` feature gate that will get Windows pod and container stats only from CRI.", + "markdown": "Allows users to specify Kubelet `PodAndContainerStatsFromCRI` feature gate that will get Windows pod and container stats only from CRI. ([#116968](https://github.com/kubernetes/kubernetes/pull/116968), [@mansikulkarni96](https://github.com/mansikulkarni96))", + "author": "mansikulkarni96", + "author_url": "https://github.com/mansikulkarni96", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116968", + "pr_number": 116968, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "windows" + ], + "feature": true, + "duplicate": true, + "do_not_publish": true + }, + "116995": { + "commit": "036807ae35d0e599d6be82f1d9b6efc3282e459a", + "text": "Static pods were taking extra time to be restarted after being updated. Static pods that are waiting to restart were not correctly counted in `kubelet_working_pods`.", + "markdown": "Static pods were taking extra time to be restarted after being updated. Static pods that are waiting to restart were not correctly counted in `kubelet_working_pods`. ([#116995](https://github.com/kubernetes/kubernetes/pull/116995), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116995", + "pr_number": 116995, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "117002": { + "commit": "5da386745af1040681bbfe40bef6fff339fb58f5", + "text": "Fixed issue where `kubectl-convert` would fail when encountering resources that could not be converted to the specified api version. New behavior is to warn the user of the failed conversions and continue to convert the remaining resources.", + "markdown": "Fixed issue where `kubectl-convert` would fail when encountering resources that could not be converted to the specified api version. New behavior is to warn the user of the failed conversions and continue to convert the remaining resources. ([#117002](https://github.com/kubernetes/kubernetes/pull/117002), [@gxwilkerson33](https://github.com/gxwilkerson33))", + "author": "gxwilkerson33", + "author_url": "https://github.com/gxwilkerson33", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117002", + "pr_number": 117002, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "117015": { + "commit": "4e8908d56671c1bae588151d1d2fcbd4fa56b049", + "text": "Added the implementation for `PodRecreationPolicy` to wait for the creation of pods once the existing ones are fully terminated.", + "markdown": "Added the implementation for `PodRecreationPolicy` to wait for the creation of pods once the existing ones are fully terminated. ([#117015](https://github.com/kubernetes/kubernetes/pull/117015), [@kannon92](https://github.com/kannon92))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3939-allow-replacement-when-fully-terminated", + "type": "KEP" + } + ], + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117015", + "pr_number": 117015, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "117019": { + "commit": "53cccbe4f98b9c6086af88954f5c9a77d8e66fc5", + "text": "Kubelet terminates pods correctly upon restart, fixing an issue where pods may have not been fully terminated if the kubelet was restarted during pod termination.", + "markdown": "Kubelet terminates pods correctly upon restart, fixing an issue where pods may have not been fully terminated if the kubelet was restarted during pod termination. ([#117019](https://github.com/kubernetes/kubernetes/pull/117019), [@bobbypage](https://github.com/bobbypage)) [SIG Node and Testing]", + "author": "bobbypage", + "author_url": "https://github.com/bobbypage", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117019", + "pr_number": 117019, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "117020": { + "commit": "e7426a00c38eaab2d6ee5498ae035f42d4dd9893", + "text": "Added error handling for seccomp localhost configurations that do not properly set a `localhostProfile`.", + "markdown": "Added error handling for seccomp localhost configurations that do not properly set a `localhostProfile`. ([#117020](https://github.com/kubernetes/kubernetes/pull/117020), [@cji](https://github.com/cji))", + "author": "cji", + "author_url": "https://github.com/cji", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117020", + "pr_number": 117020, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "node", + "api-machinery" + ], + "duplicate": true, + "duplicate_kind": true + }, + "117022": { + "commit": "8722ab2c8441b7de56e47c9cf2eafabfad17d160", + "text": "Number of errors reported to the metric `storage_operation_duration_seconds_count` for emptyDir decreased significantly because previously one error was reported for each projected volume created.", + "markdown": "Number of errors reported to the metric `storage_operation_duration_seconds_count` for emptyDir decreased significantly because previously one error was reported for each projected volume created. ([#117022](https://github.com/kubernetes/kubernetes/pull/117022), [@mpatlasov](https://github.com/mpatlasov)) [SIG Storage]", + "author": "mpatlasov", + "author_url": "https://github.com/mpatlasov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117022", + "pr_number": 117022, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "117025": { + "commit": "c9180e445caf0d2dafc01a923a5f241cd264fc8c", + "text": "The Kubernetes apiserver now emits a warning message for Pods with a null labelSelector in podAffinity or topologySpreadConstraints. The null labelSelector means \"match none\". Using it in podAffinity or topologySpreadConstraint could lead to unintended behavior.", + "markdown": "The Kubernetes apiserver now emits a warning message for Pods with a null labelSelector in podAffinity or topologySpreadConstraints. The null labelSelector means \"match none\". Using it in podAffinity or topologySpreadConstraint could lead to unintended behavior. ([#117025](https://github.com/kubernetes/kubernetes/pull/117025), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117025", + "pr_number": 117025, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "117034": { + "commit": "a9edbee7088d4b09706f19632565af00c82abb50", + "text": "`kubectl events --for` will also support fully qualified names such as replicasets.apps,\netc.", + "markdown": "`kubectl events --for` will also support fully qualified names such as replicasets.apps,\n etc. ([#117034](https://github.com/kubernetes/kubernetes/pull/117034), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117034", + "pr_number": 117034, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "117036": { + "commit": "2f0c2e50d4224dcb9298a05292a8c997a0c9d11c", + "text": "Show a warning when `volume.beta.kubernetes.io/storage-class` annotation is used in pv or pvc", + "markdown": "Show a warning when `volume.beta.kubernetes.io/storage-class` annotation is used in pv or pvc ([#117036](https://github.com/kubernetes/kubernetes/pull/117036), [@haoruan](https://github.com/haoruan)) [SIG Storage]", + "author": "haoruan", + "author_url": "https://github.com/haoruan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117036", + "pr_number": 117036, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "117055": { + "commit": "52457842d155743f0e3fc57ade87251cca37d375", + "text": "The feature gates `CSIMigrationGCE` is graduated to GA and were unconditionally enabled have been removed in `v1.25`, and the entire `gcepd` package has been removed.", + "markdown": "The feature gates `CSIMigrationGCE` is graduated to GA and were unconditionally enabled have been removed in `v1.25`, and the entire `gcepd` package has been removed. ([#117055](https://github.com/kubernetes/kubernetes/pull/117055), [@cyclinder](https://github.com/cyclinder))", + "author": "cyclinder", + "author_url": "https://github.com/cyclinder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117055", + "pr_number": 117055, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "api-machinery" + ], + "duplicate": true + }, + "117079": { + "commit": "89bfdf02762727506c9801d38b202873793d1106", + "text": "`kubelet`: print sorted volumes message in events.", + "markdown": "`kubelet`: print sorted volumes message in events. ([#117079](https://github.com/kubernetes/kubernetes/pull/117079), [@qingwave](https://github.com/qingwave))", + "author": "qingwave", + "author_url": "https://github.com/qingwave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117079", + "pr_number": 117079, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "117095": { + "commit": "0638be816f623febcc0f17c0dfd5257a6c07cd1c", + "text": "CVE-2023-27561 CVE-2023-25809 CVE-2023-28642: Bump fix runc v1.1.4 -\u003e v1.1.5", + "markdown": "CVE-2023-27561 CVE-2023-25809 CVE-2023-28642: Bump fix runc v1.1.4 -\u003e v1.1.5 ([#117095](https://github.com/kubernetes/kubernetes/pull/117095), [@PushkarJ](https://github.com/PushkarJ)) [SIG Architecture, Node and Security]", + "author": "PushkarJ", + "author_url": "https://github.com/PushkarJ", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117095", + "pr_number": 117095, + "areas": [ + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "architecture", + "security" + ], + "duplicate": true + }, + "117102": { + "commit": "7da3893003eb2e5007a45f38b1276d554125c5b8", + "text": "Deprecated `genericclioptions.IOStreams` and used `genericiooptions.IOStreams`.", + "markdown": "Deprecated `genericclioptions.IOStreams` and used `genericiooptions.IOStreams`. ([#117102](https://github.com/kubernetes/kubernetes/pull/117102), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117102", + "pr_number": 117102, + "areas": [ + "kubectl", + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "cli", + "release" + ], + "duplicate": true + }, + "117108": { + "commit": "e5efa0a5eeea6d6c1c5dfaeb880f6a76afd5ce6f", + "text": "`component-base/logs` is now stricter about not applying configurations multiple\ntimes and will return an error when that is attempted. Can be overridden by binaries\nwhich need to do that.", + "markdown": "`component-base/logs` is now stricter about not applying configurations multiple\n times and will return an error when that is attempted. Can be overridden by binaries\n which need to do that. ([#117108](https://github.com/kubernetes/kubernetes/pull/117108), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117108", + "pr_number": 117108, + "areas": [ + "test", + "apiserver", + "cloudprovider" + ], + "kinds": [ + "bug", + "api-change", + "failing-test" + ], + "sigs": [ + "scheduling", + "api-machinery", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "117120": { + "commit": "02f1f573b909bc88df8a83954c73a2bc4f760536", + "text": "Bumped metrics-server to `v0.6.3`.", + "markdown": "Bumped metrics-server to `v0.6.3`. ([#117120](https://github.com/kubernetes/kubernetes/pull/117120), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117120", + "pr_number": 117120, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "117121": { + "commit": "190e861f0215c27ec4fff9dbf73e6b522d2582b5", + "text": "Set metrics-server's metric-resolution to 15s.", + "markdown": "Set metrics-server's metric-resolution to 15s. ([#117121](https://github.com/kubernetes/kubernetes/pull/117121), [@dgrisonnet](https://github.com/dgrisonnet)) [SIG Cloud Provider and Instrumentation]", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117121", + "pr_number": 117121, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "117138": { + "commit": "5d8c99a6fe184d08766cd54787fe57300ae98f09", + "text": "Added '--concurrent-job-syncs' flag for `kube-controller-manager` to set the number of job controller workers.", + "markdown": "Added '--concurrent-job-syncs' flag for `kube-controller-manager` to set the number of job controller workers. ([#117138](https://github.com/kubernetes/kubernetes/pull/117138), [@tosi3k](https://github.com/tosi3k))", + "author": "tosi3k", + "author_url": "https://github.com/tosi3k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117138", + "pr_number": 117138, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cli" + ], + "feature": true, + "duplicate": true + }, + "117139": { + "commit": "87d8c4ed0ab58c5d19a4f2513fb49b920fdef346", + "text": "Recording timing traces had a race condition. Impact in practice was probably low.", + "markdown": "Recording timing traces had a race condition. Impact in practice was probably low. ([#117139](https://github.com/kubernetes/kubernetes/pull/117139), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node and Storage]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117139", + "pr_number": 117139, + "areas": [ + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "117194": { + "commit": "29c8fb678c0cffffa5aebd021fab475b63bc1333", + "text": "Known issue: fixed that the PreEnqueue plugins aren't executed for Pods proceeding to activeQ through backoffQ.", + "markdown": "Known issue: fixed that the PreEnqueue plugins aren't executed for Pods proceeding to activeQ through backoffQ. ([#117194](https://github.com/kubernetes/kubernetes/pull/117194), [@sanposhiho](https://github.com/sanposhiho)) [SIG Release and Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117194", + "pr_number": 117194, + "areas": [ + "release-eng" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "release" + ], + "duplicate": true + }, + "117211": { + "commit": "7e25f1232a9f89875641431ae011c916f0376c57", + "text": "`kube-apiserver` added two new metrics `authorization_attempts_total` and `authorization_duration_seconds`\nthat allow users to monitor requests to authorization webhooks, split by result.", + "markdown": "`kube-apiserver` added two new metrics `authorization_attempts_total` and `authorization_duration_seconds`\n that allow users to monitor requests to authorization webhooks, split by result. ([#117211](https://github.com/kubernetes/kubernetes/pull/117211), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117211", + "pr_number": 117211, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation" + ], + "duplicate": true + }, + "117214": { + "commit": "af99aa1a5053b11e7c894309f921ceb26855688f", + "text": "A `v2-level` info log will be added, which will output the details of the pod being preempted, including victim and preemptor.", + "markdown": "A `v2-level` info log will be added, which will output the details of the pod being preempted, including victim and preemptor. ([#117214](https://github.com/kubernetes/kubernetes/pull/117214), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117214", + "pr_number": 117214, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "117216": { + "commit": "bd2404355109fd9f7ca6b14188b4c71c597a9f6f", + "text": "Allowed Azure Disk e2es to use newer topology labels if available from nodes.", + "markdown": "Allowed Azure Disk e2es to use newer topology labels if available from nodes. ([#117216](https://github.com/kubernetes/kubernetes/pull/117216), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117216", + "pr_number": 117216, + "areas": [ + "test" + ], + "kinds": [ + "failing-test" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true + }, + "117222": { + "commit": "4f6714ef42dcdb1b35bb2d8581c1ef83d59f02d1", + "text": "Apiserver adds two new metrics `etcd_requests_total` and `etcd_request_errors_total` that allow users to monitor requests to etcd storage, split by operation and resource type.", + "markdown": "Apiserver adds two new metrics `etcd_requests_total` and `etcd_request_errors_total` that allow users to monitor requests to etcd storage, split by operation and resource type. ([#117222](https://github.com/kubernetes/kubernetes/pull/117222), [@iyear](https://github.com/iyear)) [SIG API Machinery]", + "author": "iyear", + "author_url": "https://github.com/iyear", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117222", + "pr_number": 117222, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "117237": { + "commit": "7077491f68cf1320257b6189683ce0b15b8b6edb", + "text": "Removed GA'ed feature gates: `MixedProtocolLBService`, `ServiceInternalTrafficPolicy`,\n`ServiceIPStaticSubrange`, and `EndpointSliceTerminatingCondition`.", + "markdown": "Removed GA'ed feature gates: `MixedProtocolLBService`, `ServiceInternalTrafficPolicy`,\n `ServiceIPStaticSubrange`, and `EndpointSliceTerminatingCondition`. ([#117237](https://github.com/kubernetes/kubernetes/pull/117237), [@yulng](https://github.com/yulng))", + "author": "yulng", + "author_url": "https://github.com/yulng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117237", + "pr_number": 117237, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "117238": { + "commit": "b98659ba629ab402c52f6ccf465ead3c19c73d39", + "text": "Structured logging of `NamespacedName` was inconsistent with `klog.KObj`. Now both will use lower case field names and namespace is optional.", + "markdown": "Structured logging of `NamespacedName` was inconsistent with `klog.KObj`. Now both will use lower case field names and namespace is optional. ([#117238](https://github.com/kubernetes/kubernetes/pull/117238), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117238", + "pr_number": 117238, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "architecture" + ], + "duplicate": true + }, + "117243": { + "commit": "8aa49a7955ebe7198780978c802e58a6c901a61a", + "text": "Fixed `vSphere` cloud provider not to skip detach volumes from nodes at `kube-controller-startup`.", + "markdown": "Fixed `vSphere` cloud provider not to skip detach volumes from nodes at `kube-controller-startup`. ([#117243](https://github.com/kubernetes/kubernetes/pull/117243), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117243", + "pr_number": 117243, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ] + }, + "117245": { + "commit": "9082903f94e285b95f61b9dcf17e5a1ba9ad1e82", + "text": "Fixed Topology Aware Hints not working when the `topology.kubernetes.io/zone` label is added after Node creation.", + "markdown": "Fixed Topology Aware Hints not working when the `topology.kubernetes.io/zone` label is added after Node creation. ([#117245](https://github.com/kubernetes/kubernetes/pull/117245), [@tnqn](https://github.com/tnqn))", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117245", + "pr_number": 117245, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "117249": { + "commit": "5550bd5eacc185fac579a7ac6003c7099f8f9d9f", + "text": "Fixed a data race in TopologyCache when `AddHints` and `SetNodes` are called concurrently.", + "markdown": "Fixed a data race in TopologyCache when `AddHints` and `SetNodes` are called concurrently. ([#117249](https://github.com/kubernetes/kubernetes/pull/117249), [@tnqn](https://github.com/tnqn)) [SIG Apps and Network]", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117249", + "pr_number": 117249, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "117258": { + "commit": "bcacf92741472a7c37fdb55662b6335801bf4de3", + "text": "Fixed a memory leak in the Kubernetes API server that occurs during APIService processing.", + "markdown": "Fixed a memory leak in the Kubernetes API server that occurs during APIService processing. ([#117258](https://github.com/kubernetes/kubernetes/pull/117258), [@enj](https://github.com/enj)) [SIG API Machinery]", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117258", + "pr_number": 117258, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "117262": { + "commit": "7cdf67ebf86a55e3ca105f706d15b3cde259dc52", + "text": "Projects which use k8s.io/code-generator and invoke `generate-groups` or `generate-internal-groups.sh` have a new, simpler script (`kube_codegen.sh`) they can use. The old scripts are deprecated but remain intact.", + "markdown": "Projects which use k8s.io/code-generator and invoke `generate-groups` or `generate-internal-groups.sh` have a new, simpler script (`kube_codegen.sh`) they can use. The old scripts are deprecated but remain intact. ([#117262](https://github.com/kubernetes/kubernetes/pull/117262), [@thockin](https://github.com/thockin)) [SIG API Machinery and Instrumentation]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117262", + "pr_number": 117262, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "117275": { + "commit": "1d27cbc784a5fb79f4a910515fb8609bb745bfb9", + "text": "NONE", + "markdown": "NONE ([#117275](https://github.com/kubernetes/kubernetes/pull/117275), [@akhilerm](https://github.com/akhilerm))", + "author": "akhilerm", + "author_url": "https://github.com/akhilerm", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117275", + "pr_number": 117275, + "areas": [ + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true + }, + "117283": { + "commit": "cb8d9f686775e867fcbc6fccb6a2eac49024ae14", + "text": "Fixed a bug where pv recycler failed to scrub volume with too many files in the directory due to hitting ARG_MAX limit with rm command (#117189).", + "markdown": "Fixed a bug where pv recycler failed to scrub volume with too many files in the directory due to hitting ARG_MAX limit with rm command (#117189). ([#117283](https://github.com/kubernetes/kubernetes/pull/117283), [@defo89](https://github.com/defo89)) [SIG Cloud Provider and Storage]", + "author": "defo89", + "author_url": "https://github.com/defo89", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117283", + "pr_number": 117283, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "cloud-provider" + ], + "duplicate": true + }, + "117295": { + "commit": "64af2d93e5b97e41bb078e2fa81923fda6681154", + "text": "client-go now exposes two new metrics to monitor the client-go logic that\ngenerate http.Transports for the clients.\n\n- `rest_client_transport_cache_entries` is a gauge metric\nwith the number of existin entries in the internal cache\n\n- `rest_client_transport_create_calls_total` is a counter\nthat increments each time a new transport is created, storing\nthe result of the operation needed to generate it: hit, miss\nor uncacheable.", + "markdown": "Client-go now exposes two new metrics to monitor the client-go logic that\n generate http.Transports for the clients.\n \n - `rest_client_transport_cache_entries` is a gauge metric\n with the number of existin entries in the internal cache\n \n - `rest_client_transport_create_calls_total` is a counter\n that increments each time a new transport is created, storing\n the result of the operation needed to generate it: hit, miss\n or uncacheable. ([#117295](https://github.com/kubernetes/kubernetes/pull/117295), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117295", + "pr_number": 117295, + "areas": [ + "test", + "kubelet", + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "node", + "api-machinery", + "instrumentation", + "testing", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "117301": { + "commit": "139a2c54a2a9a3a3daa58723ea86cb66a45d7f48", + "text": "Fixed a regression in `1.27.0` that resulted in `missing metadata in converted object` errors when modifying objects for multi-version custom resource definitions with a conversion strategy of `None`.", + "markdown": "Fixed a regression in `1.27.0` that resulted in `missing metadata in converted object` errors when modifying objects for multi-version custom resource definitions with a conversion strategy of `None`. ([#117301](https://github.com/kubernetes/kubernetes/pull/117301), [@ncdc](https://github.com/ncdc))", + "author": "ncdc", + "author_url": "https://github.com/ncdc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117301", + "pr_number": 117301, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "117330": { + "commit": "d11bdad196b52f27dc3f7e206a556454e28f41dd", + "text": "NONE", + "markdown": "NONE ([#117330](https://github.com/kubernetes/kubernetes/pull/117330), [@akhilerm](https://github.com/akhilerm))", + "author": "akhilerm", + "author_url": "https://github.com/akhilerm", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117330", + "pr_number": 117330, + "areas": [ + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "117335": { + "commit": "626b2db1ca313723f0c39b894af631334ac02acc", + "text": "Updated `etcd` version to `3.5.8`.", + "markdown": "Updated `etcd` version to `3.5.8`. ([#117335](https://github.com/kubernetes/kubernetes/pull/117335), [@kkkkun](https://github.com/kkkkun))", + "author": "kkkkun", + "author_url": "https://github.com/kkkkun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117335", + "pr_number": 117335, + "areas": [ + "test", + "provider/gcp", + "kubeadm", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "117350": { + "commit": "b925ce244638187dbf0f502ecb6e02db149970aa", + "text": "NONE", + "markdown": "NONE ([#117350](https://github.com/kubernetes/kubernetes/pull/117350), [@mohitsharma-in](https://github.com/mohitsharma-in))", + "author": "mohitsharma-in", + "author_url": "https://github.com/mohitsharma-in", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117350", + "pr_number": 117350, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true + }, + "117351": { + "commit": "e0dafe57a3858b798f4137223e7fdc70bd15b617", + "text": "The names of ResourceClaims generated from ResourceClaimTemplate are now generated. The base name is still `\u003cpod\u003e-\u003cclaim name\u003e`, but a random suffix will avoid name collisions.", + "markdown": "The names of ResourceClaims generated from ResourceClaimTemplate are now generated. The base name is still `\u003cpod\u003e-\u003cclaim name\u003e`, but a random suffix will avoid name collisions. ([#117351](https://github.com/kubernetes/kubernetes/pull/117351), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117351", + "pr_number": 117351, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "auth", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "117352": { + "commit": "bda7e8979088614c60ee21fd2602d00786e2ea78", + "text": "NONE", + "markdown": "NONE ([#117352](https://github.com/kubernetes/kubernetes/pull/117352), [@mohitsharma-in](https://github.com/mohitsharma-in))", + "author": "mohitsharma-in", + "author_url": "https://github.com/mohitsharma-in", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117352", + "pr_number": 117352, + "areas": [ + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true + }, + "117368": { + "commit": "3554bcde8730991ec43e620d006899839ddd251d", + "text": "Fixed nil pointer in test AfterEach volumeperf.go for sidecar release.", + "markdown": "Fixed nil pointer in test AfterEach volumeperf.go for sidecar release. ([#117368](https://github.com/kubernetes/kubernetes/pull/117368), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu))", + "author": "sunnylovestiramisu", + "author_url": "https://github.com/sunnylovestiramisu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117368", + "pr_number": 117368, + "areas": [ + "test" + ], + "kinds": [ + "failing-test" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true + }, + "117386": { + "commit": "f8e4d4dd00fbc97c86ebee016ab2fc4dfd833e1d", + "text": "NONE", + "markdown": "NONE ([#117386](https://github.com/kubernetes/kubernetes/pull/117386), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117386", + "pr_number": 117386, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true, + "do_not_publish": true + }, + "117388": { + "commit": "8bba479f03fd27f1a54fcd1e02347c1a5b98b30c", + "text": "[KCCM] service controller: change the cloud controller manager to make `providerID` a predicate when synchronizing nodes. This change allows load balancer integrations to ensure that the `providerID` is set when configuring\nload balancers and targets.", + "markdown": "[KCCM] service controller: change the cloud controller manager to make `providerID` a predicate when synchronizing nodes. This change allows load balancer integrations to ensure that the `providerID` is set when configuring\n load balancers and targets. ([#117388](https://github.com/kubernetes/kubernetes/pull/117388), [@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/117388", + "pr_number": 117388, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "cloud-provider" + ], + "duplicate": true + }, + "117390": { + "commit": "5f22ab3c5f30784b782857f8c3ed20dabae5da6d", + "text": "go version go1.20.1\ngoos: darwin\ngoarch: arm64\npkg: k8s.io/kubernetes/pkg/scheduler/util\n\nbefore:\n\nBenchmark10kPods-8 \t 67680\t 16837 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark10kPods-8 \t 69393\t 16928 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark10kPods-8 \t 68298\t 16942 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark10kPods-8 \t 70198\t 16125 ns/op\t 0 B/op\t 0 allocs/op\n\nBenchmark100kPods-8 \t 2661\t 444173 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2674\t 446439 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2715\t 454089 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2665\t 440868 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2646\t 452669 ns/op\t 0 B/op\t 0 allocs/op\n\nafter:\n\nBenchmark10kPods-8 \t 80383\t 14392 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark10kPods-8 \t 81895\t 14073 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark10kPods-8 \t 78211\t 14602 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark10kPods-8 \t 76614\t 15110 ns/op\t 0 B/op\t 0 allocs/op\n\nBenchmark100kPods-8 \t 2736\t 409138 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2932\t 414789 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2908\t 403114 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2925\t 394417 ns/op\t 0 B/op\t 0 allocs/op\nBenchmark100kPods-8 \t 2958\t 410171 ns/op\t 0 B/op\t 0 allocs/op", + "markdown": "Go version go1.20.1\n goos: darwin\n goarch: arm64\n pkg: k8s.io/kubernetes/pkg/scheduler/util\n \n before:\n \n Benchmark10kPods-8 \t 67680\t 16837 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark10kPods-8 \t 69393\t 16928 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark10kPods-8 \t 68298\t 16942 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark10kPods-8 \t 70198\t 16125 ns/op\t 0 B/op\t 0 allocs/op\n \n Benchmark100kPods-8 \t 2661\t 444173 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2674\t 446439 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2715\t 454089 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2665\t 440868 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2646\t 452669 ns/op\t 0 B/op\t 0 allocs/op\n \n after:\n \n Benchmark10kPods-8 \t 80383\t 14392 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark10kPods-8 \t 81895\t 14073 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark10kPods-8 \t 78211\t 14602 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark10kPods-8 \t 76614\t 15110 ns/op\t 0 B/op\t 0 allocs/op\n \n Benchmark100kPods-8 \t 2736\t 409138 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2932\t 414789 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2908\t 403114 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2925\t 394417 ns/op\t 0 B/op\t 0 allocs/op\n Benchmark100kPods-8 \t 2958\t 410171 ns/op\t 0 B/op\t 0 allocs/op ([#117390](https://github.com/kubernetes/kubernetes/pull/117390), [@lowang-bh](https://github.com/lowang-bh)) [SIG Scheduling]", + "author": "lowang-bh", + "author_url": "https://github.com/lowang-bh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117390", + "pr_number": 117390, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "117391": { + "commit": "98cf297e57ee85aea5a5b9a6d23177935063f3d0", + "text": "NONE", + "markdown": "NONE ([#117391](https://github.com/kubernetes/kubernetes/pull/117391), [@cuishuang](https://github.com/cuishuang))", + "author": "cuishuang", + "author_url": "https://github.com/cuishuang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117391", + "pr_number": 117391, + "areas": [ + "apiserver", + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle" + ], + "duplicate": true, + "do_not_publish": true + }, + "117399": { + "commit": "cf89189ca3a3e5d280ba1cb09998c4b88dc1e127", + "text": "NONE", + "markdown": "NONE ([#117399](https://github.com/kubernetes/kubernetes/pull/117399), [@mohitsharma-in](https://github.com/mohitsharma-in))", + "author": "mohitsharma-in", + "author_url": "https://github.com/mohitsharma-in", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117399", + "pr_number": 117399, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true + }, + "117408": { + "commit": "0d41d28ea2184be3a249e3875735d8a1462288cf", + "text": "NONE", + "markdown": "NONE ([#117408](https://github.com/kubernetes/kubernetes/pull/117408), [@cenkalti](https://github.com/cenkalti))", + "author": "cenkalti", + "author_url": "https://github.com/cenkalti", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117408", + "pr_number": 117408, + "areas": [ + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true + }, + "117412": { + "commit": "89462b81282b644487d5d0834e9ff6875c59d635", + "text": "Pod termination will be faster when the pod has a missing volume reference.", + "markdown": "Pod termination will be faster when the pod has a missing volume reference. ([#117412](https://github.com/kubernetes/kubernetes/pull/117412), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node and Testing]", + "author": "smarterclayton", + "author_url": "https://github.com/smarterclayton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117412", + "pr_number": 117412, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "117448": { + "commit": "44e330632342893ac31509793fa11074e2416bb0", + "text": "External credential provider plugins will now have their standard error output logged by kubelet upon failures.", + "markdown": "External credential provider plugins will now have their standard error output logged by kubelet upon failures. ([#117448](https://github.com/kubernetes/kubernetes/pull/117448), [@cartermckinnon](https://github.com/cartermckinnon))", + "author": "cartermckinnon", + "author_url": "https://github.com/cartermckinnon", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117448", + "pr_number": 117448, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "117495": { + "commit": "d94c733ee2bfaedd9a1c45d58fbd56c99403c94d", + "text": "Fixed a regression in `kubectl` and `client-go` discovery when configured with a server URL other than the root of a server", + "markdown": "Fixed a regression in `kubectl` and `client-go` discovery when configured with a server URL other than the root of a server ([#117495](https://github.com/kubernetes/kubernetes/pull/117495), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117495", + "pr_number": 117495, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "117535": { + "commit": "51ffca216c4111b8597a8807919d167b619fc3e4", + "text": "The short names `vwc` and `mwc` were introduced for the resources `validatingwebhookconfigurations` and `mutatingwebhookconfigurations`.", + "markdown": "The short names `vwc` and `mwc` were introduced for the resources `validatingwebhookconfigurations` and `mutatingwebhookconfigurations`. ([#117535](https://github.com/kubernetes/kubernetes/pull/117535), [@hysyeah](https://github.com/hysyeah))", + "author": "hysyeah", + "author_url": "https://github.com/hysyeah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117535", + "pr_number": 117535, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "117543": { + "commit": "0813904404034fd760d8e7e1e3ca5444610a7fa8", + "text": "Fixed restricted debug profile.", + "markdown": "Fixed restricted debug profile. ([#117543](https://github.com/kubernetes/kubernetes/pull/117543), [@mochizuki875](https://github.com/mochizuki875))", + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117543", + "pr_number": 117543, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "117545": { + "commit": "e153766a2a18ec77f3c71fdf0013d465cf5cfef6", + "text": "Updated `cri-tools` to `v1.27.0`.", + "markdown": "Updated `cri-tools` to `v1.27.0`. ([#117545](https://github.com/kubernetes/kubernetes/pull/117545), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117545", + "pr_number": 117545, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "cloud-provider" + ], + "duplicate": true + }, + "117550": { + "commit": "32048b146731e428800d661a67338d1a0c8f50aa", + "text": "Added '--concurrent-cron-job-syncs' flag for `kube-controller-manager` to set the number of workers for cron job controller.", + "markdown": "Added '--concurrent-cron-job-syncs' flag for `kube-controller-manager` to set the number of workers for cron job controller. ([#117550](https://github.com/kubernetes/kubernetes/pull/117550), [@borgerli](https://github.com/borgerli))", + "author": "borgerli", + "author_url": "https://github.com/borgerli", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117550", + "pr_number": 117550, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "117568": { + "commit": "af20b027c6d2cb7b06e2f5f0c5c4564171c50b48", + "text": "Fixed bug that caused a resource to include patch directives when using strategic merge patch against a non-existent field.", + "markdown": "Fixed bug that caused a resource to include patch directives when using strategic merge patch against a non-existent field. ([#117568](https://github.com/kubernetes/kubernetes/pull/117568), [@alexzielenski](https://github.com/alexzielenski))", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117568", + "pr_number": 117568, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "117570": { + "commit": "46852cab7f1a0afce5ec45c294cedd0461311b38", + "text": "Removed `WindowsHostProcessContainers` feature-gate.", + "markdown": "Removed `WindowsHostProcessContainers` feature-gate. ([#117570](https://github.com/kubernetes/kubernetes/pull/117570), [@marosset](https://github.com/marosset)) [SIG API Machinery, Apps, Auth, Node and Windows]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1981", + "type": "KEP" + } + ], + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117570", + "pr_number": 117570, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "apps", + "windows" + ], + "duplicate": true, + "duplicate_kind": true + }, + "117571": { + "commit": "c5c2806e233b9c5ff49ac4ad0c6d734b530771de", + "text": "Resolves a spurious \"Unknown discovery response content-type\" error in client-go discovery requests by tolerating extra content-type parameters in API responses", + "markdown": "Resolves a spurious \"Unknown discovery response content-type\" error in client-go discovery requests by tolerating extra content-type parameters in API responses ([#117571](https://github.com/kubernetes/kubernetes/pull/117571), [@seans3](https://github.com/seans3)) [SIG API Machinery]", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117571", + "pr_number": 117571, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "117586": { + "commit": "8b8dfcad1249ae9f14c900274e6f58e5488f2c3f", + "text": "Added `DisruptionTarget` condition to the pod preempted by kubelet to make room for a critical pod.", + "markdown": "Added `DisruptionTarget` condition to the pod preempted by kubelet to make room for a critical pod. ([#117586](https://github.com/kubernetes/kubernetes/pull/117586), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117586", + "pr_number": 117586, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "117591": { + "commit": "d2dc976247de526850b3d1c0285271a73fc0dff9", + "text": "Graduated the `LegacyServiceAccountTokenTracking` feature gate to GA. The usage of auto-generated secret-based service account token now produces warnings, and relevant Secrets are labeled with a last-used timestamp (label key `kubernetes.io/legacy-token-last-used`).", + "markdown": "Graduated the `LegacyServiceAccountTokenTracking` feature gate to GA. The usage of auto-generated secret-based service account token now produces warnings, and relevant Secrets are labeled with a last-used timestamp (label key `kubernetes.io/legacy-token-last-used`). ([#117591](https://github.com/kubernetes/kubernetes/pull/117591), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/2799-reduction-of-secret-based-service-account-token", + "type": "KEP" + } + ], + "author": "zshihang", + "author_url": "https://github.com/zshihang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117591", + "pr_number": 117591, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "117593": { + "commit": "8ae8e7756075088b7178246457efc6859f192fc4", + "text": "Fixed bug where `listOfStrings.join()` in CEL expressions resulted in an unexpected internal error.", + "markdown": "Fixed bug where `listOfStrings.join()` in CEL expressions resulted in an unexpected internal error. ([#117593](https://github.com/kubernetes/kubernetes/pull/117593), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117593", + "pr_number": 117593, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "117594": { + "commit": "c4f6c4716990e05863b8817d8127b73111438843", + "text": "Fixed performance regression in scheduler caused by frequent metric lookup on critical code path.", + "markdown": "Fixed performance regression in scheduler caused by frequent metric lookup on critical code path. ([#117594](https://github.com/kubernetes/kubernetes/pull/117594), [@tosi3k](https://github.com/tosi3k))", + "author": "tosi3k", + "author_url": "https://github.com/tosi3k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117594", + "pr_number": 117594, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true + }, + "117602": { + "commit": "12d3f5ce1a4095635a4bbe1eec1131c69778f8ca", + "text": "[KCCM] drop filtering nodes for the providerID when syncing load balancers, but have changes to the field trigger a re-sync of load balancers. This should ensure that cloud providers which don't specify providerID, can still use the service controller implementation to provision load balancers.", + "markdown": "[KCCM] drop filtering nodes for the providerID when syncing load balancers, but have changes to the field trigger a re-sync of load balancers. This should ensure that cloud providers which don't specify providerID, can still use the service controller implementation to provision load balancers. ([#117602](https://github.com/kubernetes/kubernetes/pull/117602), [@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/117602", + "pr_number": 117602, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "cloud-provider" + ], + "duplicate": true + }, + "117612": { + "commit": "72afd8558e6fdef1546dd3c2c9bdd2a124062c52", + "text": "Fixed bug to correctly report `ErrRegistryUnavailable` on pulling container images for remote CRI runtimes.", + "markdown": "Fixed bug to correctly report `ErrRegistryUnavailable` on pulling container images for remote CRI runtimes. ([#117612](https://github.com/kubernetes/kubernetes/pull/117612), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117612", + "pr_number": 117612, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "117633": { + "commit": "7add692580fa499b516e944a1389ef07f44a2e35", + "text": "Removed tracking annotation from validation and defaulting.", + "markdown": "Removed tracking annotation from validation and defaulting. ([#117633](https://github.com/kubernetes/kubernetes/pull/117633), [@kannon92](https://github.com/kannon92))", + "documentation": [ + { + "description": "-[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2307-job-tracking-without-lingering-pods#deprecation", + "type": "KEP" + } + ], + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117633", + "pr_number": 117633, + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "117649": { + "commit": "47f1bd9f80139bd086a2f74eae26d388051f12ce", + "text": "`kube-scheduler` component config (KubeSchedulerConfiguration) `kubescheduler.config.k8s.io/v1beta2`\nis removed in `v1.28`. Migrate `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`.", + "markdown": "`kube-scheduler` component config (KubeSchedulerConfiguration) `kubescheduler.config.k8s.io/v1beta2`\n is removed in `v1.28`. Migrate `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`. ([#117649](https://github.com/kubernetes/kubernetes/pull/117649), [@SataQiu](https://github.com/SataQiu))", + "documentation": [ + { + "description": "-[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/785-scheduler-component-config-api", + "type": "KEP" + } + ], + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117649", + "pr_number": 117649, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling", + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "117655": { + "commit": "80c4abd02e6613ffcc3dac3f9b715c5e7ab7a916", + "text": "Removed GA'ed feature gate `DelegateFSGroupToCSIDriver`.", + "markdown": "Removed GA'ed feature gate `DelegateFSGroupToCSIDriver`. ([#117655](https://github.com/kubernetes/kubernetes/pull/117655), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117655", + "pr_number": 117655, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "117656": { + "commit": "509c2c7c8820d5d546ee4c9b02c52ddaf8ad8ab7", + "text": "Removed GA'ed feature gate `DevicePlugins`.", + "markdown": "Removed GA'ed feature gate `DevicePlugins`. ([#117656](https://github.com/kubernetes/kubernetes/pull/117656), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117656", + "pr_number": 117656, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "117660": { + "commit": "bc872028abed2bd5788d0edb5378eaec64b4c103", + "text": "`kubeadm`: introduced a new feature gate `UpgradeAddonsBeforeControlPlane` to\nfix a kube-proxy skew policy misalignment. Its default value is `false`. Upgrade\nof the CoreDNS and kube-proxy addons will now trigger after all the control plane\ninstances have been upgraded, unless the fearure gate is set to true. This feature\ngate will be removed in a future release.", + "markdown": "`kubeadm`: Introduced a new feature gate `UpgradeAddonsBeforeControlPlane` to\n fix a kube-proxy skew policy misalignment. Its default value is `false`. Upgrade\n of the CoreDNS and kube-proxy addons will now trigger after all the control plane\n instances have been upgraded, unless the fearure gate is set to true. This feature\n gate will be removed in a future release. ([#117660](https://github.com/kubernetes/kubernetes/pull/117660), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117660", + "pr_number": 117660, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "117677": { + "commit": "dea1312e03a0d6b7bc73ff21fa243cccea419c76", + "text": "Fixed incorrect calculation for ResourceQuota with PriorityClass as its scope.", + "markdown": "Fixed incorrect calculation for ResourceQuota with PriorityClass as its scope. ([#117677](https://github.com/kubernetes/kubernetes/pull/117677), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG API Machinery]", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117677", + "pr_number": 117677, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "117683": { + "commit": "0d67dd689bbbcc9e27d8678944c7d384615a2ffe", + "text": "The scheduler skips the `PodTopologySpread` Filter plugin if no spread constraints.\nIt will affect some metrics values related to the `PodTopologySpread` Filter plugin.", + "markdown": "The scheduler skips the `PodTopologySpread` Filter plugin if no spread constraints.\n It will affect some metrics values related to the `PodTopologySpread` Filter plugin. ([#117683](https://github.com/kubernetes/kubernetes/pull/117683), [@utam0k](https://github.com/utam0k))", + "author": "utam0k", + "author_url": "https://github.com/utam0k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117683", + "pr_number": 117683, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "117687": { + "commit": "a6825c8542ee1e5e9d570ba1c267458a09287015", + "text": "`klog` text output now uses JSON as encoding for structs, maps and slices.", + "markdown": "`klog` text output now uses JSON as encoding for structs, maps and slices. ([#117687](https://github.com/kubernetes/kubernetes/pull/117687), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117687", + "pr_number": 117687, + "areas": [ + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "storage", + "node", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "117688": { + "commit": "d96993fc1c3538ea20c9e7564a7eb0f4a360510d", + "text": "`--version=v1.X.Y...` can now be used to set the prerelease and buildID portions of the version reported by components", + "markdown": "`--version=v1.X.Y...` can now be used to set the prerelease and buildID portions of the version reported by components ([#117688](https://github.com/kubernetes/kubernetes/pull/117688), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture and Release]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117688", + "pr_number": 117688, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "release", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "117690": { + "commit": "f47d7f3a16a2f34272a1a536d738d7c885d03498", + "text": "2023-04-29T04:50:47.850779535Z stderr F panic: runtime error: invalid memory address or nil pointer dereference\n2023-04-29T04:50:47.850808505Z stderr F [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1c659b0]\n2023-04-29T04:50:47.850814857Z stderr F \n2023-04-29T04:50:47.850821558Z stderr F goroutine 132 [running]:\n2023-04-29T04:50:47.850828198Z stderr F k8s.io/kubernetes/cmd/kube-proxy/app.(*ProxyServer).Run(0xc00084ecb0)\n2023-04-29T04:50:47.850835219Z stderr F \tcmd/kube-proxy/app/server.go:767 +0x1130\n2023-04-29T04:50:47.850841683Z stderr F k8s.io/kubernetes/cmd/kube-proxy/app.(*Options).runLoop.func1()\n2023-04-29T04:50:47.850847097Z stderr F \tcmd/kube-proxy/app/server.go:326 +0x2b\n2023-04-29T04:50:47.850852342Z stderr F created by k8s.io/kubernetes/cmd/kube-proxy/app.(*Options).runLoop\n2023-04-29T04:50:47.850858125Z stderr F \tcmd/kube-proxy/app/server.go:325 +0x70", + "markdown": "2023-04-29T04:50:47.850779535Z stderr F panic: runtime error: invalid memory address or nil pointer dereference\n 2023-04-29T04:50:47.850808505Z stderr F [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1c659b0]\n 2023-04-29T04:50:47.850814857Z stderr F \n 2023-04-29T04:50:47.850821558Z stderr F goroutine 132 [running]:\n 2023-04-29T04:50:47.850828198Z stderr F k8s.io/kubernetes/cmd/kube-proxy/app.(*ProxyServer).Run(0xc00084ecb0)\n 2023-04-29T04:50:47.850835219Z stderr F \tcmd/kube-proxy/app/server.go:767 +0x1130\n 2023-04-29T04:50:47.850841683Z stderr F k8s.io/kubernetes/cmd/kube-proxy/app.(*Options).runLoop.func1()\n 2023-04-29T04:50:47.850847097Z stderr F \tcmd/kube-proxy/app/server.go:326 +0x2b\n 2023-04-29T04:50:47.850852342Z stderr F created by k8s.io/kubernetes/cmd/kube-proxy/app.(*Options).runLoop\n 2023-04-29T04:50:47.850858125Z stderr F \tcmd/kube-proxy/app/server.go:325 +0x70 ([#117690](https://github.com/kubernetes/kubernetes/pull/117690), [@pacoxu](https://github.com/pacoxu)) [SIG Network and Scalability]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117690", + "pr_number": 117690, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "scalability" + ], + "duplicate": true, + "do_not_publish": true + }, + "117696": { + "commit": "21afcd453a13443976e37526ce3e2b0b0072b2ab", + "text": "Pods which set `hostNetwork: true` and declare ports, get the `hostPort` field set automatically. Previously this would happen in the PodTemplate of a Deployment, DaemonSet or other workload API. Now `hostPort` will only be set when an actual Pod is being created. If this presents a problem, setting the feature gate \"DefaultHostNetworkHostPortsInPodTemplates\" to true will revert this behavior. Please file a kubernetes bug if you need to do this.", + "markdown": "Pods which set `hostNetwork: true` and declare ports, get the `hostPort` field set automatically. Previously this would happen in the PodTemplate of a Deployment, DaemonSet or other workload API. Now `hostPort` will only be set when an actual Pod is being created. If this presents a problem, setting the feature gate \"DefaultHostNetworkHostPortsInPodTemplates\" to true will revert this behavior. Please file a kubernetes bug if you need to do this. ([#117696](https://github.com/kubernetes/kubernetes/pull/117696), [@thockin](https://github.com/thockin)) [SIG Apps]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117696", + "pr_number": 117696, + "kinds": [ + "bug", + "cleanup", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "117702": { + "commit": "18d05b646d09b2971dc5400bc288062b0414e8cf", + "text": "Renamed `PodHasNetwork` to `PodReadyToStartContainers`.", + "markdown": "Renamed `PodHasNetwork` to `PodReadyToStartContainers`. ([#117702](https://github.com/kubernetes/kubernetes/pull/117702), [@kannon92](https://github.com/kannon92)) [SIG Node and Testing]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3085-pod-conditions-for-starting-completition-of-sandbox-creation", + "type": "KEP" + } + ], + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117702", + "pr_number": 117702, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "117705": { + "commit": "3f8c4794eadf8aadd8a5bcb0b875bf0af5c2020b", + "text": "Fixed a race condition serving `OpenAPI` content", + "markdown": "Fixed a race condition serving `OpenAPI` content ([#117705](https://github.com/kubernetes/kubernetes/pull/117705), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117705", + "pr_number": 117705, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "117713": { + "commit": "78833e1b3385ea3485d38aa46586d39195377ec9", + "text": "The `SelfSubjectReview` API is promoted to `authentication.k8s.io/v1` and the `kubectl auth whoami` command is GA.", + "markdown": "The `SelfSubjectReview` API is promoted to `authentication.k8s.io/v1` and the `kubectl auth whoami` command is GA. ([#117713](https://github.com/kubernetes/kubernetes/pull/117713), [@nabokihms](https://github.com/nabokihms)) [SIG API Machinery, Architecture, Auth, CLI and Testing]", + "author": "nabokihms", + "author_url": "https://github.com/nabokihms", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117713", + "pr_number": 117713, + "areas": [ + "test", + "kubectl", + "conformance", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cli", + "testing", + "architecture" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "117717": { + "commit": "af92da5cb7d936dbd64a3f6266dff4408c755858", + "text": "Allowed container runtimes to use `ErrSignatureValidationFailed` as possible image pull failure.", + "markdown": "Allowed container runtimes to use `ErrSignatureValidationFailed` as possible image pull failure. ([#117717](https://github.com/kubernetes/kubernetes/pull/117717), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117717", + "pr_number": 117717, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "117718": { + "commit": "7dec98cdccf3258a08e0a2979b6b1670ecb16345", + "text": "kube-proxy handles Terminating EndpointSlices conditions and enables zero downtime deployments for Services with ExternalTrafficPolicy=Local author: @andrewsykim", + "markdown": "Kube-proxy handles Terminating EndpointSlices conditions and enables zero downtime deployments for Services with ExternalTrafficPolicy=Local author: @andrewsykim ([#117718](https://github.com/kubernetes/kubernetes/pull/117718), [@aojea](https://github.com/aojea)) [SIG Network, Testing and Windows]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1669", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/blog/2022/12/30/advancements-in-kubernetes-traffic-engineering/", + "type": "external" + }, + { + "description": "[Example1]", + "url": "https://gist.github.com/aojea/84fc66fde269f8aef1a4932d074285db", + "type": "external" + }, + { + "description": "[Example2]", + "url": "https://gist.github.com/aojea/cd72e17b7238114a35cb9c82bf2324cb", + "type": "external" + } + ], + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117718", + "pr_number": 117718, + "areas": [ + "test", + "kube-proxy", + "ipvs" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "windows", + "testing" + ], + "feature": true, + "duplicate": true + }, + "117724": { + "commit": "19aaf0c0e1686f2619104d2c6261cff4916696ac", + "text": "If `kubeadm reset` finds no etcd member ID for the peer it removes during the `remove-etcd-member` phase, it continues immediately to other phases, instead of retrying the phase for up to 3 minutes before continuing.", + "markdown": "If `kubeadm reset` finds no etcd member ID for the peer it removes during the `remove-etcd-member` phase, it continues immediately to other phases, instead of retrying the phase for up to 3 minutes before continuing. ([#117724](https://github.com/kubernetes/kubernetes/pull/117724), [@dlipovetsky](https://github.com/dlipovetsky)) [SIG Cluster Lifecycle]", + "author": "dlipovetsky", + "author_url": "https://github.com/dlipovetsky", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117724", + "pr_number": 117724, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "117727": { + "commit": "e121039461f2bba67f5c4d08d31211aa0716edcf", + "text": "Metric `scheduler_scheduler_goroutines` is removed. Use `scheduler_goroutines` instead.", + "markdown": "Metric `scheduler_scheduler_goroutines` is removed. Use `scheduler_goroutines` instead. ([#117727](https://github.com/kubernetes/kubernetes/pull/117727), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling]", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117727", + "pr_number": 117727, + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "duplicate_kind": true, + "action_required": true + }, + "117740": { + "commit": "66e99b3ff1649fc9bd3d9ef36affa1b16c5e2e21", + "text": "Support for proxying a request to a peer kube-apiserver if the local apiserver is not able to serve it due to version skew or in the case the requested api is disabled on the local apiserver", + "markdown": "Support for proxying a request to a peer kube-apiserver if the local apiserver is not able to serve it due to version skew or in the case the requested api is disabled on the local apiserver ([#117740](https://github.com/kubernetes/kubernetes/pull/117740), [@Richabanker](https://github.com/Richabanker)) [SIG API Machinery, Apps, Auth, Cloud Provider, Network, Node and Testing]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/4020-unknown-version-interoperability-proxy", + "type": "KEP" + } + ], + "author": "Richabanker", + "author_url": "https://github.com/Richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117740", + "pr_number": 117740, + "areas": [ + "test", + "kubelet", + "apiserver", + "cloudprovider", + "provider/gcp" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "network", + "node", + "api-machinery", + "auth", + "apps", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "117744": { + "commit": "af79ecbd4b1a33d640522e6a7c7d5c69d6df0046", + "text": "Kubernetes is now built with Go `1.20.4`.", + "markdown": "Kubernetes is now built with Go `1.20.4`. ([#117744](https://github.com/kubernetes/kubernetes/pull/117744), [@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/117744", + "pr_number": 117744, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "117746": { + "commit": "20578f7daab25642b9d26c3853c37b2f9018f411", + "text": "Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.4`", + "markdown": "Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.4` ([#117746](https://github.com/kubernetes/kubernetes/pull/117746), [@xmudrii](https://github.com/xmudrii)) [SIG Testing]", + "author": "xmudrii", + "author_url": "https://github.com/xmudrii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117746", + "pr_number": 117746, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + }, + "117751": { + "commit": "fa487b0ddddee0c4883b0bee0de4d97dc9be1a18", + "text": "Reverted NewVolumeManagerReconstruction and SELinuxMountReadWriteOncePod feature gates to disabled by default to resolve a regression of volume reconstruction on kubelet/node restart", + "markdown": "Reverted NewVolumeManagerReconstruction and SELinuxMountReadWriteOncePod feature gates to disabled by default to resolve a regression of volume reconstruction on kubelet/node restart ([#117751](https://github.com/kubernetes/kubernetes/pull/117751), [@liggitt](https://github.com/liggitt)) [SIG Storage]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117751", + "pr_number": 117751, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "storage" + ], + "duplicate_kind": true + }, + "117784": { + "commit": "51cfa6134a2e357c6b30b6c4ad7dba1ce887bc9d", + "text": "NONE", + "markdown": "NONE ([#117784](https://github.com/kubernetes/kubernetes/pull/117784), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117784", + "pr_number": 117784, + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ], + "do_not_publish": true + }, + "117787": { + "commit": "f418411d0f74b5b7a1738f6d79714f96ca3d78d7", + "text": "`kube-proxy` in iptables mode will now have separate `sync_full_proxy_rules_duration_seconds`\\nand\n`sync_partial_proxy_rules_duration_seconds` (in addition to the existing\\n`sync_proxy_rules_duration_seconds`),\ngiving better information about the duration of each \\nsync type, rather than\nonly giving a weighted average of the two sync types together.", + "markdown": "`kube-proxy` in iptables mode will now have separate `sync_full_proxy_rules_duration_seconds`\\nand\n `sync_partial_proxy_rules_duration_seconds` (in addition to the existing\\n`sync_proxy_rules_duration_seconds`),\n giving better information about the duration of each \\nsync type, rather than\n only giving a weighted average of the two sync types together. ([#117787](https://github.com/kubernetes/kubernetes/pull/117787), [@danwinship](https://github.com/danwinship))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3453", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117787", + "pr_number": 117787, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "117791": { + "commit": "e865b30abd0a862697ff1d2526ea8897ee98a523", + "text": "NONE", + "markdown": "NONE ([#117791](https://github.com/kubernetes/kubernetes/pull/117791), [@nnmin-aws](https://github.com/nnmin-aws))", + "author": "nnmin-aws", + "author_url": "https://github.com/nnmin-aws", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117791", + "pr_number": 117791, + "areas": [ + "test", + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "auth", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "117793": { + "commit": "86d786090ac9390d4b724a7294e8bb96825eeefe", + "text": "If using cgroups v2, then the cgroup aware OOM killer will be enabled for container cgroups via `memory.oom.group` . This causes processes within the cgroup to be treated as a unit and killed simultaneously in the event of an OOM kill on any process in the cgroup.", + "markdown": "If using cgroups v2, then the cgroup aware OOM killer will be enabled for container cgroups via `memory.oom.group` . This causes processes within the cgroup to be treated as a unit and killed simultaneously in the event of an OOM kill on any process in the cgroup. ([#117793](https://github.com/kubernetes/kubernetes/pull/117793), [@tzneal](https://github.com/tzneal)) [SIG Apps, Node and Testing]", + "author": "tzneal", + "author_url": "https://github.com/tzneal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117793", + "pr_number": 117793, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "117794": { + "commit": "7aea5a9b25696b043f470660c982199abb6fe3fa", + "text": "The scheduler skips the `InterPodAffinity` Score plugin when nothing to do with the Pod.\nIt will affect some metrics values related to the InterPodAffinity Score plugin.", + "markdown": "The scheduler skips the `InterPodAffinity` Score plugin when nothing to do with the Pod.\n It will affect some metrics values related to the InterPodAffinity Score plugin. ([#117794](https://github.com/kubernetes/kubernetes/pull/117794), [@utam0k](https://github.com/utam0k)) [SIG Scheduling]", + "author": "utam0k", + "author_url": "https://github.com/utam0k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117794", + "pr_number": 117794, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "117800": { + "commit": "d37c62dcbf554400990f4b9eff3236e75721afdc", + "text": "kube-proxy: added `--logging-format` flag to support structured logging.", + "markdown": "Kube-proxy: added `--logging-format` flag to support structured logging. ([#117800](https://github.com/kubernetes/kubernetes/pull/117800), [@cyclinder](https://github.com/cyclinder))", + "author": "cyclinder", + "author_url": "https://github.com/cyclinder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117800", + "pr_number": 117800, + "areas": [ + "kube-proxy", + "apiserver", + "logging", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "instrumentation", + "architecture" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "117802": { + "commit": "6aa68d6a8b48c88348d4acd4e39f864b4634270b", + "text": "Revised the comment about the feature-gate level for `PodFailurePolicy` from alpha to beta.", + "markdown": "Revised the comment about the feature-gate level for `PodFailurePolicy` from alpha to beta. ([#117802](https://github.com/kubernetes/kubernetes/pull/117802), [@kerthcet](https://github.com/kerthcet)) [SIG API Machinery and Apps]", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117802", + "pr_number": 117802, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "117804": { + "commit": "ac07b4612ec30f82f9b248baecd4cf0d714731bb", + "text": "Fixed kubelet startup getting stuck with `NewVolumeManagerReconstruction` feature enabled and a CSI volume present in /var/lib/kubelet/pods.", + "markdown": "Fixed kubelet startup getting stuck with `NewVolumeManagerReconstruction` feature enabled and a CSI volume present in /var/lib/kubelet/pods. ([#117804](https://github.com/kubernetes/kubernetes/pull/117804), [@jsafrane](https://github.com/jsafrane)) [SIG Node and Storage]", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117804", + "pr_number": 117804, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true + }, + "117835": { + "commit": "50ce1345957fafcf8685313419eaf07fbb1724fb", + "text": "`kubeadm`: `crictl pull` should use `-i` to set the image service endpoint.", + "markdown": "`kubeadm`: `crictl pull` should use `-i` to set the image service endpoint. ([#117835](https://github.com/kubernetes/kubernetes/pull/117835), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117835", + "pr_number": 117835, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "117861": { + "commit": "b32941f60d3ba789965bbf32f4f5bf756feab075", + "text": "`kubeadm`: fixed a bug where file copy(backup) could not be executed correctly\non Windows platform during upgrade.", + "markdown": "`kubeadm`: fixed a bug where file copy(backup) could not be executed correctly\n on Windows platform during upgrade. ([#117861](https://github.com/kubernetes/kubernetes/pull/117861), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117861", + "pr_number": 117861, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "117865": { + "commit": "229dd79efde26caba43feb376d0e81e705d38220", + "text": "Faster `StatefulSet` creation when `Parallel` mode is enabled.", + "markdown": "Faster `StatefulSet` creation when `Parallel` mode is enabled. ([#117865](https://github.com/kubernetes/kubernetes/pull/117865), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", + "author": "aleksandra-malinowska", + "author_url": "https://github.com/aleksandra-malinowska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117865", + "pr_number": 117865, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "117870": { + "commit": "decf1e1a9b53a4f4b24bb780d6433e2d5e959d83", + "text": "Fixed a race condition between `Run()` and `SetTransform()` and `SetWatchErrorHandler()` in shared informers.", + "markdown": "Fixed a race condition between `Run()` and `SetTransform()` and `SetWatchErrorHandler()` in shared informers. ([#117870](https://github.com/kubernetes/kubernetes/pull/117870), [@howardjohn](https://github.com/howardjohn)) [SIG API Machinery]", + "author": "howardjohn", + "author_url": "https://github.com/howardjohn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117870", + "pr_number": 117870, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "117877": { + "commit": "18e3f01deda3bc1ea62751553df0b689598de7a7", + "text": "Promoted `ServiceNodePortStaticSubrange` feature gate to beta, and it will be enabled by default.", + "markdown": "Promoted `ServiceNodePortStaticSubrange` feature gate to beta, and it will be enabled by default. ([#117877](https://github.com/kubernetes/kubernetes/pull/117877), [@xuzhenglun](https://github.com/xuzhenglun))", + "author": "xuzhenglun", + "author_url": "https://github.com/xuzhenglun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117877", + "pr_number": 117877, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "117879": { + "commit": "714221dbaab91cf903b004324821560dc4d06fe6", + "text": "NONE", + "markdown": "NONE ([#117879](https://github.com/kubernetes/kubernetes/pull/117879), [@kkkkun](https://github.com/kkkkun))", + "author": "kkkkun", + "author_url": "https://github.com/kkkkun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117879", + "pr_number": 117879, + "areas": [ + "release-eng" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "117884": { + "commit": "a5575425b039bf7c15dfaa9a7acf257fdc4fde3f", + "text": "Fixed issue where there was no response or error from kubectl rollout status when there were no resources of specified kind.", + "markdown": "Fixed issue where there was no response or error from kubectl rollout status when there were no resources of specified kind. ([#117884](https://github.com/kubernetes/kubernetes/pull/117884), [@gxwilkerson33](https://github.com/gxwilkerson33)) [SIG CLI]", + "author": "gxwilkerson33", + "author_url": "https://github.com/gxwilkerson33", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117884", + "pr_number": 117884, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "117897": { + "commit": "06c9a7daee47eca6bbe6f88f8f9201328f07be12", + "text": "The `generate_groups.sh` and `generate_internal_groups.sh` scripts from the `k8s.io/code-generator` repo are deprecated (but still work) in favor of `kube_codegen.sh` in that same repo. Projects which use the old scripts are encouraged to look at adopting the new one.", + "markdown": "The `generate_groups.sh` and `generate_internal_groups.sh` scripts from the `k8s.io/code-generator` repo are deprecated (but still work) in favor of `kube_codegen.sh` in that same repo. Projects which use the old scripts are encouraged to look at adopting the new one. ([#117897](https://github.com/kubernetes/kubernetes/pull/117897), [@thockin](https://github.com/thockin)) [SIG API Machinery]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117897", + "pr_number": 117897, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "117912": { + "commit": "006c0110aaf6e73154b6b2a886c7755d8cac67a3", + "text": "Fixed dra e2e image build on non-amd64 architectures.", + "markdown": "Fixed dra e2e image build on non-amd64 architectures. ([#117912](https://github.com/kubernetes/kubernetes/pull/117912), [@bart0sh](https://github.com/bart0sh)) [SIG Node and Testing]", + "author": "bart0sh", + "author_url": "https://github.com/bart0sh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117912", + "pr_number": 117912, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "117913": { + "commit": "4e12a5f60f9e538bf5aab6318b8cd14d28fb5aca", + "text": "NONE", + "markdown": "NONE ([#117913](https://github.com/kubernetes/kubernetes/pull/117913), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117913", + "pr_number": 117913, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "117919": { + "commit": "f70c26d49510adf0bed1736e12cd48849b33ed6c", + "text": "Removed leading zeros from the etcd member ID in kubeadm log messages.", + "markdown": "Removed leading zeros from the etcd member ID in kubeadm log messages. ([#117919](https://github.com/kubernetes/kubernetes/pull/117919), [@dlipovetsky](https://github.com/dlipovetsky)) [SIG Cluster Lifecycle]", + "author": "dlipovetsky", + "author_url": "https://github.com/dlipovetsky", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117919", + "pr_number": 117919, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "117927": { + "commit": "c3c731890c8b95c4ccf82da3e8420b01ad14cf9e", + "text": "Added a new event `FailedToRetrieveImagePullSecret` which will be generated when a pod references an `ImagePullSecret` that doesn't exist.", + "markdown": "Added a new event `FailedToRetrieveImagePullSecret` which will be generated when a pod references an `ImagePullSecret` that doesn't exist. ([#117927](https://github.com/kubernetes/kubernetes/pull/117927), [@kaisoz](https://github.com/kaisoz)) [SIG Node]", + "author": "kaisoz", + "author_url": "https://github.com/kaisoz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117927", + "pr_number": 117927, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "117930": { + "commit": "82f7cf6010e02700a9589f473af87910b4061924", + "text": "The helping message of commands which have sub-commands is now clearer and more instructive. It will show the full command instead of `kubectl \u003ccommand\u003e --help ...`\n\nChanged `kubectl create secret --help` description. There will be a short introduction to the three secret types and clearer guidance on how to use the command.", + "markdown": "The helping message of commands which have sub-commands is now clearer and more instructive. It will show the full command instead of `kubectl \u003ccommand\u003e --help ...`\n \n Changed `kubectl create secret --help` description. There will be a short introduction to the three secret types and clearer guidance on how to use the command. ([#117930](https://github.com/kubernetes/kubernetes/pull/117930), [@LronDC](https://github.com/LronDC))", + "author": "LronDC", + "author_url": "https://github.com/LronDC", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117930", + "pr_number": 117930, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "117984": { + "commit": "7024beeeeb1f2e4cde93805a137cd7ad92fec466", + "text": "`kubeadm`: speedup init by 0s or 20s. kubelet-start phase is now after etcd\nand control-plane phases, removing a race condition between kubelet looking for\nstatic pod manifests and kubeadm writing them.", + "markdown": "`kubeadm`: speedup init by 0s or 20s. kubelet-start phase is now after etcd\n and control-plane phases, removing a race condition between kubelet looking for\n static pod manifests and kubeadm writing them. ([#117984](https://github.com/kubernetes/kubernetes/pull/117984), [@champtar](https://github.com/champtar))", + "author": "champtar", + "author_url": "https://github.com/champtar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117984", + "pr_number": 117984, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "117999": { + "commit": "54dbb93388a04a3d15d54bd22dfe49f81397a705", + "text": "Updated etcd image to `3.5.9-0`.", + "markdown": "Updated etcd image to `3.5.9-0`. ([#117999](https://github.com/kubernetes/kubernetes/pull/117999), [@kkkkun](https://github.com/kkkkun)) [SIG API Machinery]", + "author": "kkkkun", + "author_url": "https://github.com/kkkkun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117999", + "pr_number": 117999, + "areas": [ + "release-eng" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "118000": { + "commit": "aae20dcb78a9a346121ac4adf4730e97d6ff1a6c", + "text": "NONE", + "markdown": "NONE ([#118000](https://github.com/kubernetes/kubernetes/pull/118000), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118000", + "pr_number": 118000, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "118009": { + "commit": "a15c27661e68695be81d018a1fb81683881f4266", + "text": "Supported `BackoffLimitPerIndex` in Jobs.", + "markdown": "Supported `BackoffLimitPerIndex` in Jobs. ([#118009](https://github.com/kubernetes/kubernetes/pull/118009), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3850-backoff-limits-per-index-for-indexed-jobs", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118009", + "pr_number": 118009, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "118013": { + "commit": "90ed8ba68729b49a0989e5b04536e0d55c6be61b", + "text": "`kubeadm`: added a new \"kubeadm config validate\" command that can be used to\nvalidate any input config file. Use the `--config` flag to pass a config file\nto it. See the command `--help` screen for more information. As a result of adding\nthis new command, enhance the validation capabilities of the existing \"kubeadm\nconfig migrate\" command. For both commands unknown APIs or fields will throw errors.", + "markdown": "`kubeadm`: added a new \"kubeadm config validate\" command that can be used to\n validate any input config file. Use the `--config` flag to pass a config file\n to it. See the command `--help` screen for more information. As a result of adding\n this new command, enhance the validation capabilities of the existing \"kubeadm\n config migrate\" command. For both commands unknown APIs or fields will throw errors. ([#118013](https://github.com/kubernetes/kubernetes/pull/118013), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118013", + "pr_number": 118013, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "118018": { + "commit": "8d491e676ab9e4c84d68e28d727781bd5cc69f89", + "text": "The feature gate `CSIStorageCapacity` have been removed and must no longer be referenced in `--feature-gates` flags.", + "markdown": "The feature gate `CSIStorageCapacity` have been removed and must no longer be referenced in `--feature-gates` flags. ([#118018](https://github.com/kubernetes/kubernetes/pull/118018), [@humblec](https://github.com/humblec))", + "author": "humblec", + "author_url": "https://github.com/humblec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118018", + "pr_number": 118018, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "118025": { + "commit": "293c1b837857c344c17194bf743e846dc355560c", + "text": "`plugin_evaluation_total` metric supports prescore/score extension point.\nThe metric doesn't get incremented when the prescore/score plugin has nothing to do with an incoming pod.", + "markdown": "`plugin_evaluation_total` metric supports prescore/score extension point.\n The metric doesn't get incremented when the prescore/score plugin has nothing to do with an incoming pod. ([#118025](https://github.com/kubernetes/kubernetes/pull/118025), [@AxeZhan](https://github.com/AxeZhan))", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118025", + "pr_number": 118025, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "118029": { + "commit": "0bff705acd8982e34b937116eb2016c9d6e4c4a6", + "text": "Code blocks in `kubectl {$COMMAND}--help` will move right by 3 indentation.", + "markdown": "Code blocks in `kubectl {$COMMAND}--help` will move right by 3 indentation. ([#118029](https://github.com/kubernetes/kubernetes/pull/118029), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118029", + "pr_number": 118029, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "118041": { + "commit": "d6e525877b511a96b1355b7b5999aca0d7104967", + "text": "Added fields `reason` and `fieldPath` into CRD validation rules to allow users to specify reason and field path when validation failed.", + "markdown": "Added fields `reason` and `fieldPath` into CRD validation rules to allow users to specify reason and field path when validation failed. ([#118041](https://github.com/kubernetes/kubernetes/pull/118041), [@cici37](https://github.com/cici37)) [SIG API Machinery]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/2876-crd-validation-expression-language", + "type": "KEP" + } + ], + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118041", + "pr_number": 118041, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "118049": { + "commit": "d0accc3f02e5050920493c08ad759cd0d6d39781", + "text": "The `pod_scheduling_duration_seconds` metrics won't consider the time when a pod fails `PreEnqueue` (like being gated).", + "markdown": "The `pod_scheduling_duration_seconds` metrics won't consider the time when a pod fails `PreEnqueue` (like being gated). ([#118049](https://github.com/kubernetes/kubernetes/pull/118049), [@helayoty](https://github.com/helayoty))", + "author": "helayoty", + "author_url": "https://github.com/helayoty", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118049", + "pr_number": 118049, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "118055": { + "commit": "cc60a9348536a85978946de3001dc6a3737cf516", + "text": "Exposed `rest.DefaultServerUrlFor` function.", + "markdown": "Exposed `rest.DefaultServerUrlFor` function. ([#118055](https://github.com/kubernetes/kubernetes/pull/118055), [@timofurrer](https://github.com/timofurrer))", + "author": "timofurrer", + "author_url": "https://github.com/timofurrer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118055", + "pr_number": 118055, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "118069": { + "commit": "f9d97e08800ee6436b80740f1406c0f5a1dccbbf", + "text": "`kubeadm:` fixed a bug where the static pod changes detection logic is inconsistent\nwith kubelet.", + "markdown": "`kubeadm:` fixed a bug where the static pod changes detection logic is inconsistent\n with kubelet. ([#118069](https://github.com/kubernetes/kubernetes/pull/118069), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118069", + "pr_number": 118069, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "118102": { + "commit": "960830bc660872ff5679f84e676474e3cb536e12", + "text": "`RetroactiveDefaultStorageClass` feature made stable and enabled by default.", + "markdown": "`RetroactiveDefaultStorageClass` feature made stable and enabled by default. ([#118102](https://github.com/kubernetes/kubernetes/pull/118102), [@RomanBednar](https://github.com/RomanBednar))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3333", + "type": "KEP" + }, + { + "description": "[Other doc]", + "url": "https://github.com/kubernetes/enhancements/pull/4021", + "type": "KEP" + }, + { + "description": "[Other doc]", + "url": "https://github.com/kubernetes/website/pull/41206", + "type": "external" + } + ], + "author": "RomanBednar", + "author_url": "https://github.com/RomanBednar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118102", + "pr_number": 118102, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118104": { + "commit": "7ad8303b9602252b18932d34377cd2793595d537", + "text": "Fixed a bug at `kube-apiserver` start where `APIService` objects for custom resources could be deleted and recreated.", + "markdown": "Fixed a bug at `kube-apiserver` start where `APIService` objects for custom resources could be deleted and recreated. ([#118104](https://github.com/kubernetes/kubernetes/pull/118104), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118104", + "pr_number": 118104, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "118115": { + "commit": "de7360d9bc8ee0758e03d072c60e23f91edd2298", + "text": "kube-proxy: removed log warning about not using config file.", + "markdown": "Kube-proxy: removed log warning about not using config file. ([#118115](https://github.com/kubernetes/kubernetes/pull/118115), [@TommyStarK](https://github.com/TommyStarK)) [SIG Network]", + "author": "TommyStarK", + "author_url": "https://github.com/TommyStarK", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118115", + "pr_number": 118115, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "118128": { + "commit": "173a4738035b186f50c5882546155b13bb7f576d", + "text": "kube-controller-manager deprecate `--volume-host-cidr-denylist` and `--volume-host-allow-local-loopback` flags.", + "markdown": "Kube-controller-manager deprecate `--volume-host-cidr-denylist` and `--volume-host-allow-local-loopback` flags. ([#118128](https://github.com/kubernetes/kubernetes/pull/118128), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Network, Node, Storage and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118128", + "pr_number": 118128, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change", + "deprecation" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "118132": { + "commit": "7f2a1e8cd3363b04d970c619daf9f9d5ee5d50c0", + "text": "Improved exponential backoff in Reflector, significantly reducing the load on Kubernetes apiserver in case of throttling of requests.", + "markdown": "Improved exponential backoff in Reflector, significantly reducing the load on Kubernetes apiserver in case of throttling of requests. ([#118132](https://github.com/kubernetes/kubernetes/pull/118132), [@marseel](https://github.com/marseel)) [SIG API Machinery and Scalability]", + "author": "marseel", + "author_url": "https://github.com/marseel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118132", + "pr_number": 118132, + "kinds": [ + "bug" + ], + "sigs": [ + "scalability", + "api-machinery" + ], + "duplicate": true + }, + "118137": { + "commit": "2fe38f93e53201b0c9e58aa6e3d37b8a61d2ca23", + "text": "Added new annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` to Job objects scheduled from CronJobs.", + "markdown": "Added new annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` to Job objects scheduled from CronJobs. ([#118137](https://github.com/kubernetes/kubernetes/pull/118137), [@helayoty](https://github.com/helayoty))", + "author": "helayoty", + "author_url": "https://github.com/helayoty", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118137", + "pr_number": 118137, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "duplicate_kind": true + }, + "118143": { + "commit": "6b700c398be2ecb92b0b3b8c13444f9d467a8fe7", + "text": "CephFS volume plugin (`kubernetes.io/cephfs`) has been deprecated in this release and will be removed in a subsequent release. The alternative is to use the CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes cluster.", + "markdown": "CephFS volume plugin (`kubernetes.io/cephfs`) has been deprecated in this release and will be removed in a subsequent release. The alternative is to use the CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes cluster. ([#118143](https://github.com/kubernetes/kubernetes/pull/118143), [@humblec](https://github.com/humblec))", + "author": "humblec", + "author_url": "https://github.com/humblec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118143", + "pr_number": 118143, + "kinds": [ + "deprecation" + ], + "sigs": [ + "storage" + ], + "action_required": true + }, + "118160": { + "commit": "00b8a0a95bb942ad5bfc1bc338452cb983746030", + "text": "The \"value\" part in the `wait --for=jsonpath='{expression}'[=value]` is now\noptional. If the value is not provided i.e., the command looks like `wait --for=jsonpath='{expression}'`\nthen the wait condition is interpreted as matched when the expression returns\n*any* single JSON value like object or a literal.", + "markdown": "The \"value\" part in the `wait --for=jsonpath='{expression}'[=value]` is now\n optional. If the value is not provided i.e., the command looks like `wait --for=jsonpath='{expression}'`\n then the wait condition is interpreted as matched when the expression returns\n *any* single JSON value like object or a literal. ([#118160](https://github.com/kubernetes/kubernetes/pull/118160), [@minherz](https://github.com/minherz))", + "author": "minherz", + "author_url": "https://github.com/minherz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118160", + "pr_number": 118160, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118204": { + "commit": "f42ff8687026f8e12fb3d3b0da0760525d8d8ab2", + "text": "Shrank the `OpenAPI v2` spec by more than 50%, especially for less CPU resource consumption.", + "markdown": "Shrank the `OpenAPI v2` spec by more than 50%, especially for less CPU resource consumption. ([#118204](https://github.com/kubernetes/kubernetes/pull/118204), [@sttts](https://github.com/sttts))", + "author": "sttts", + "author_url": "https://github.com/sttts", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118204", + "pr_number": 118204, + "areas": [ + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "118209": { + "commit": "bea27f82d335fa730df50454df007d9bd004dd5a", + "text": "kube-controller-manager: the dynamic resource controller steps in when a pod got created such that the scheduler ignores it (i.e. spec.nodeName is set) and then takes care of triggering delayed resource claim allocation and/or reserving a claim for the pod.", + "markdown": "Kube-controller-manager: the dynamic resource controller steps in when a pod got created such that the scheduler ignores it (i.e. spec.nodeName is set) and then takes care of triggering delayed resource claim allocation and/or reserving a claim for the pod. ([#118209](https://github.com/kubernetes/kubernetes/pull/118209), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node and Testing]", + "documentation": [ + { + "description": "-KEP", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118209", + "pr_number": 118209, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118212": { + "commit": "853e3bd027d1957635946517045d3b46bef842b7", + "text": "Reduced CPU and memory consumption of `kube-apiserver` if OpenAPI V2 will not be accessed by any client. Also improved performance of the apiserver on installation of many CRDs.", + "markdown": "Reduced CPU and memory consumption of `kube-apiserver` if OpenAPI V2 will not be accessed by any client. Also improved performance of the apiserver on installation of many CRDs. ([#118212](https://github.com/kubernetes/kubernetes/pull/118212), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118212", + "pr_number": 118212, + "areas": [ + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "118228": { + "commit": "be2cfc969703120f50fdcfc6fdf3a1ec2a7a9a75", + "text": "Moved `non-graceful node` shutdown to GA.", + "markdown": "Moved `non-graceful node` shutdown to GA. ([#118228](https://github.com/kubernetes/kubernetes/pull/118228), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2268-non-graceful-shutdown", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118228", + "pr_number": 118228, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118229": { + "commit": "e11c5284ad01554b60c29b8d3f6337f2c735e7fb", + "text": "NONE", + "markdown": "NONE ([#118229](https://github.com/kubernetes/kubernetes/pull/118229), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118229", + "pr_number": 118229, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "118235": { + "commit": "6911d3b2b8a498c570d58827277347b2bb8c4100", + "text": "NONE", + "markdown": "NONE ([#118235](https://github.com/kubernetes/kubernetes/pull/118235), [@kkkkun](https://github.com/kkkkun))", + "author": "kkkkun", + "author_url": "https://github.com/kkkkun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118235", + "pr_number": 118235, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "118236": { + "commit": "a6f641b65649053c37302284d3481ec4a8528044", + "text": "Removed the deprecated `azureFile` in-tree storage plugin.", + "markdown": "Removed the deprecated `azureFile` in-tree storage plugin. ([#118236](https://github.com/kubernetes/kubernetes/pull/118236), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118236", + "pr_number": 118236, + "areas": [ + "kubelet", + "provider/azure" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cloud-provider" + ], + "duplicate": true + }, + "118253": { + "commit": "c831a08c8e68b6d07370adb926b4da7420854217", + "text": "Moved `k8s.io/kubernetes/pkg/kubelet/cri/streaming` package to `k8s.io/kubelet/pkg/cri/streaming`.", + "markdown": "Moved `k8s.io/kubernetes/pkg/kubelet/cri/streaming` package to `k8s.io/kubelet/pkg/cri/streaming`. ([#118253](https://github.com/kubernetes/kubernetes/pull/118253), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node, Release and Security]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118253", + "pr_number": 118253, + "areas": [ + "kubelet", + "release-eng", + "dependency", + "code-organization" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "release", + "security" + ], + "duplicate": true + }, + "118254": { + "commit": "bdcf812c95493891f5dd394f281294a648aec6c6", + "text": "A CDIDevice field is included in the Device Plugin's `ContainerAllocateResponse`. This field maps to the CDIDevice field in the CRI protocol.", + "markdown": "A CDIDevice field is included in the Device Plugin's `ContainerAllocateResponse`. This field maps to the CDIDevice field in the CRI protocol. ([#118254](https://github.com/kubernetes/kubernetes/pull/118254), [@elezar](https://github.com/elezar)) [SIG Node and Testing]", + "author": "elezar", + "author_url": "https://github.com/elezar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118254", + "pr_number": 118254, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "118262": { + "commit": "1c9f08a1c5c4199eccc7f7d3d49b32d18553a48e", + "text": "Enhanced clarity in error messaging when waiting for volume creation", + "markdown": "Enhanced clarity in error messaging when waiting for volume creation ([#118262](https://github.com/kubernetes/kubernetes/pull/118262), [@torredil](https://github.com/torredil)) [SIG Apps and Storage]", + "author": "torredil", + "author_url": "https://github.com/torredil", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118262", + "pr_number": 118262, + "kinds": [ + "documentation" + ], + "sigs": [ + "storage", + "apps" + ], + "duplicate": true + }, + "118267": { + "commit": "13172cba5c0e1c6a076dbda4aeebbccaf658c7f1", + "text": "Added namespace access support to the CEL expressions of ValidatingAdmissionPolicy via a `namespaceObject`\nvariable with expressions.", + "markdown": "Added namespace access support to the CEL expressions of ValidatingAdmissionPolicy via a `namespaceObject`\n variable with expressions. ([#118267](https://github.com/kubernetes/kubernetes/pull/118267), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3488", + "type": "KEP" + } + ], + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118267", + "pr_number": 118267, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "118270": { + "commit": "76bad75c1e64e4b6af2c8aa1730b91ddbb0b2035", + "text": "`kubeadm`: will now throw warnings instead of errors for deprecated feature gates.", + "markdown": "`kubeadm`: will now throw warnings instead of errors for deprecated feature gates. ([#118270](https://github.com/kubernetes/kubernetes/pull/118270), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118270", + "pr_number": 118270, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "118278": { + "commit": "1de217b095988a0e76b2ac4f3ebcfcbf4bb5f08e", + "text": "Updated the comment about the feature-gate level for `PodFailurePolicy` from alpha to beta", + "markdown": "Updated the comment about the feature-gate level for `PodFailurePolicy` from alpha to beta ([#118278](https://github.com/kubernetes/kubernetes/pull/118278), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118278", + "pr_number": 118278, + "kinds": [ + "bug", + "documentation", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "118292": { + "commit": "9ede836ea216e9aba0257a600684cf91001f1fae", + "text": "Kube-apiserver adds two new alpha metrics `conversion_webhook_request_total` and `conversion_webhook_duration_seconds` that allow users to monitor requests to CRD conversion webhooks, split by result, and failure_type (In case of failure).", + "markdown": "Kube-apiserver adds two new alpha metrics `conversion_webhook_request_total` and `conversion_webhook_duration_seconds` that allow users to monitor requests to CRD conversion webhooks, split by result, and failure_type (In case of failure). ([#118292](https://github.com/kubernetes/kubernetes/pull/118292), [@cchapla](https://github.com/cchapla)) [SIG API Machinery, Architecture and Instrumentation]", + "author": "cchapla", + "author_url": "https://github.com/cchapla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118292", + "pr_number": 118292, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "architecture" + ], + "duplicate": true + }, + "118303": { + "commit": "7472634bcb969db1d153ee4c7b451f8db5904a1d", + "text": "Deprecated support for CSI migration of `Ceph RBD volumes`. Users who were relying on Kubernetes' ability\nto migrate to an out-of-tree storage driver should complete that migration before the support for it is removed.", + "markdown": "Deprecated support for CSI migration of `Ceph RBD volumes`. Users who were relying on Kubernetes' ability\n to migrate to an out-of-tree storage driver should complete that migration before the support for it is removed. ([#118303](https://github.com/kubernetes/kubernetes/pull/118303), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/2923-csi-migration-ceph-rbd", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118303", + "pr_number": 118303, + "kinds": [ + "deprecation" + ], + "sigs": [ + "storage" + ], + "action_required": true + }, + "118329": { + "commit": "9d231f8ce77b4a8413b41130ea130d392ca860c7", + "text": "Fixed the alpha `CloudDualStackNodeIPs` feature.", + "markdown": "Fixed the alpha `CloudDualStackNodeIPs` feature. ([#118329](https://github.com/kubernetes/kubernetes/pull/118329), [@danwinship](https://github.com/danwinship))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3705", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118329", + "pr_number": 118329, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "network", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "118339": { + "commit": "2815a28dfa1924c85f8b7f619851d98f35e61b55", + "text": "Introduce support for CEL optionals (see [CEL spec proposal 246](https://github.com/google/cel-spec/wiki/proposal-246)).\nThis feature will not be fully enabled until a future Kubernetes release (likely to be v1.29), but is added in v1.28 to enable\nsafe rollback on downgrade.", + "markdown": "Introduce support for CEL optionals (see [CEL spec proposal 246](https://github.com/google/cel-spec/wiki/proposal-246)).\n This feature will not be fully enabled until a future Kubernetes release (likely to be v1.29), but is added in v1.28 to enable\n safe rollback on downgrade. ([#118339](https://github.com/kubernetes/kubernetes/pull/118339), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, Cloud Provider and Testing]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118339", + "pr_number": 118339, + "areas": [ + "test", + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "118384": { + "commit": "bd0ac4cba33f40195b4ffab5463f2b5397216400", + "text": "OpenAPI proto deserializations should use `gnostic-models` instead of the gnostic library.", + "markdown": "OpenAPI proto deserializations should use `gnostic-models` instead of the gnostic library. ([#118384](https://github.com/kubernetes/kubernetes/pull/118384), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Node, Storage and Testing]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118384", + "pr_number": 118384, + "areas": [ + "test", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "118386": { + "commit": "cd32adebd9d52ae46827054350c17de085a4eb23", + "text": "Added `ServedVersions` field to `StorageVersion` API.", + "markdown": "Added `ServedVersions` field to `StorageVersion` API. ([#118386](https://github.com/kubernetes/kubernetes/pull/118386), [@Richabanker](https://github.com/Richabanker))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/4020-unknown-version-interoperability-proxy", + "type": "KEP" + } + ], + "author": "Richabanker", + "author_url": "https://github.com/Richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118386", + "pr_number": 118386, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "118413": { + "commit": "43dd3cce7381459adf86a7fa70b9eddc4085688d", + "text": "Compute the backoff delay more accurately for deleted pods", + "markdown": "Compute the backoff delay more accurately for deleted pods ([#118413](https://github.com/kubernetes/kubernetes/pull/118413), [@mimowo](https://github.com/mimowo)) [SIG Apps]", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118413", + "pr_number": 118413, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "118420": { + "commit": "b63700630231803967f85e83ff35d719db511baa", + "text": "ACTION_REQUIRED\nWhen an Indexed Job has a number of completions higher than 10^5 and parallelism higher than 10^4, and a big number of Indexes fail, Kubernetes might not be able to track the termination of the Job. Kubernetes now emits a warning, at Job creation, when the Job manifest exceeds both of these limits.", + "markdown": "ACTION_REQUIRED\n When an Indexed Job has a number of completions higher than 10^5 and parallelism higher than 10^4, and a big number of Indexes fail, Kubernetes might not be able to track the termination of the Job. Kubernetes now emits a warning, at Job creation, when the Job manifest exceeds both of these limits. ([#118420](https://github.com/kubernetes/kubernetes/pull/118420), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps]", + "documentation": [ + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/controllers/job/#completion-mode", + "type": "official" + } + ], + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118420", + "pr_number": 118420, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "118460": { + "commit": "3b4496913453aa0a44ee818d5db185df51073ae7", + "text": "Fixed component status calling etcd health endpoint over http which exposed kubernetes to the risk of complete watch starvation and is inconsistent with other etcd probing done by `kube-apiserver`.", + "markdown": "Fixed component status calling etcd health endpoint over http which exposed kubernetes to the risk of complete watch starvation and is inconsistent with other etcd probing done by `kube-apiserver`. ([#118460](https://github.com/kubernetes/kubernetes/pull/118460), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118460", + "pr_number": 118460, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "118470": { + "commit": "a5332a839dd15f4499b5cea9a1dc4ef8eeb172bd", + "text": "Ensure Job status updates are batched by 1s. This fixes an unlikely scenario when a sequence of immediately \ncompleting pods could trigger a sequence of non-batched Job status updates.", + "markdown": "Ensure Job status updates are batched by 1s. This fixes an unlikely scenario when a sequence of immediately \n completing pods could trigger a sequence of non-batched Job status updates. ([#118470](https://github.com/kubernetes/kubernetes/pull/118470), [@mimowo](https://github.com/mimowo)) [SIG Apps]", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118470", + "pr_number": 118470, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "118480": { + "commit": "cd9215915baa00ad5428870c3e4de185ae102fe8", + "text": "`force_delete_pods_total` and `force_delete_pod_errors_total` metrics count all pod deletion behaviors.", + "markdown": "`force_delete_pods_total` and `force_delete_pod_errors_total` metrics count all pod deletion behaviors. ([#118480](https://github.com/kubernetes/kubernetes/pull/118480), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2268", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118480", + "pr_number": 118480, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "118497": { + "commit": "e81c24dfb89fdbab55ae2aaa6ddef14ea5c98b16", + "text": "Fixed deletion of non-admissible pods that are deleted during Kubelet restart.", + "markdown": "Fixed deletion of non-admissible pods that are deleted during Kubelet restart. ([#118497](https://github.com/kubernetes/kubernetes/pull/118497), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118497", + "pr_number": 118497, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "118499": { + "commit": "5a5ebfd88b2899f2116dc858100832f30ac33cf3", + "text": "Fixed a race condition in `kube-proxy` when using LocalModeNodeCIDR, to avoid dropping Services traffic if the object node is recreated when `kube-proxy` is starting.", + "markdown": "Fixed a race condition in `kube-proxy` when using LocalModeNodeCIDR, to avoid dropping Services traffic if the object node is recreated when `kube-proxy` is starting. ([#118499](https://github.com/kubernetes/kubernetes/pull/118499), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118499", + "pr_number": 118499, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "118507": { + "commit": "c042d6956f70566a81bc29c9af6896fefbf89aae", + "text": "Kubernetes is now built with Go `1.20.5`.", + "markdown": "Kubernetes is now built with Go `1.20.5`. ([#118507](https://github.com/kubernetes/kubernetes/pull/118507), [@jeremyrickard](https://github.com/jeremyrickard))", + "author": "jeremyrickard", + "author_url": "https://github.com/jeremyrickard", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118507", + "pr_number": 118507, + "areas": [ + "test", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "release-eng", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "storage", + "node", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "118508": { + "commit": "be13c6a884248c40cb3a50a24a622b4403138444", + "text": "Added `ConsistentListFromCache` feature gate that allows apiserver to serve consistent lists from cache.", + "markdown": "Added `ConsistentListFromCache` feature gate that allows apiserver to serve consistent lists from cache. ([#118508](https://github.com/kubernetes/kubernetes/pull/118508), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118508", + "pr_number": 118508, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118510": { + "commit": "c5100c0d11fb32930dc49fd0a6e2ec3a5aa99d9e", + "text": "e2e framework: the `node-role.kubernetes.io/master` taint has been removed from the default value of `--non-blocking-taints` flag. You may need to set `--non-blocking-taints` explicitly if the cluster to be tested has nodes with the deprecated `node-role.kubernetes.io/master` taint.", + "markdown": "E2e framework: the `node-role.kubernetes.io/master` taint has been removed from the default value of `--non-blocking-taints` flag. You may need to set `--non-blocking-taints` explicitly if the cluster to be tested has nodes with the deprecated `node-role.kubernetes.io/master` taint. ([#118510](https://github.com/kubernetes/kubernetes/pull/118510), [@SataQiu](https://github.com/SataQiu)) [SIG Testing]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118510", + "pr_number": 118510, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ] + }, + "118530": { + "commit": "bca13360215bbd2aad562207dcf0dd8a6a31779f", + "text": "Fixed Cronjob `status.lastSuccessfulTime` not populated by a manually triggered", + "markdown": "Fixed Cronjob `status.lastSuccessfulTime` not populated by a manually triggered ([#118530](https://github.com/kubernetes/kubernetes/pull/118530), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118530", + "pr_number": 118530, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "118540": { + "commit": "4954c7bac4029d2f2e4b305fdba41f81b718aefc", + "text": "ValidatingAdmissionPolicy type checking now correctly handles `authorizer` variable.", + "markdown": "ValidatingAdmissionPolicy type checking now correctly handles `authorizer` variable. ([#118540](https://github.com/kubernetes/kubernetes/pull/118540), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery]", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118540", + "pr_number": 118540, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "118541": { + "commit": "f17e2759f9a3ec6dbd1726bfd149e78a2711f7e0", + "text": "Updated distroless I-tables to use registry.k8s.io/build-image/distroless-iptables:v0.2.5", + "markdown": "Updated distroless I-tables to use registry.k8s.io/build-image/distroless-iptables:v0.2.5 ([#118541](https://github.com/kubernetes/kubernetes/pull/118541), [@jeremyrickard](https://github.com/jeremyrickard)) [SIG Testing]", + "author": "jeremyrickard", + "author_url": "https://github.com/jeremyrickard", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118541", + "pr_number": 118541, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + }, + "118551": { + "commit": "d9714078f821ccae1e2d50ea69c081d73a255f1f", + "text": "Action required for the custom scheduler plugin developers. \nHere's the breaking change in `EnqueueExtension` in the scheduling framework. \nThe `EventsToRegister` in `EnqueueExtension` changed the return value from `ClusterEvent` to `ClusterEventWithHint`. `ClusterEventWithHint` allows each plugin to filter out more useless events via the callback function named `QueueingHintFn`.\nWhen the scheduling queue receives a cluster event, before moving each Pod from unschedulable pod pool to activeQ/backoffQ, it will call QueueingHintFn of plugins that rejected each Pod in the previous scheduling cycle.\nDepending on the value returned from QueueingHintFn, the scheduling queue changes how it queues each Pod:\n- if more than one QueueingHintFn returns QueueImmediately, it queues Pod to activeQ.\n- If no QueueingHintFn returns QueueImmediately and more than one plugin returns QueueAfterBackoff, it queues Pod to backoffQ if Pod is backing off, or to activeQ if Pod's backoff has already finished.\n- If all QueueingHintFn return QueueSkip, it puts this pod back to the unschedulable pod pool\n\nHaving appropriate QueueingHintFn contributes to reducing useless retries and thus improves the overall scheduler's performance.\n\n**How can I migrate?**\n\nFor backward compatibility, nil `QueueingHintFn` is treated as always returning QueueAfterBackoff. \nSo, if you want to just keep the existing behavior, you can register `ClusterEventWithHint` with no `QueueingHintFn` in it. \nBut, registering appropriate `QueueingHintFn` is, of course, better from a scheduling performance perspective.", + "markdown": "Action required for the custom scheduler plugin developers. \n Here's the breaking change in `EnqueueExtension` in the scheduling framework. \n The `EventsToRegister` in `EnqueueExtension` changed the return value from `ClusterEvent` to `ClusterEventWithHint`. `ClusterEventWithHint` allows each plugin to filter out more useless events via the callback function named `QueueingHintFn`.\n When the scheduling queue receives a cluster event, before moving each Pod from unschedulable pod pool to activeQ/backoffQ, it will call QueueingHintFn of plugins that rejected each Pod in the previous scheduling cycle.\n Depending on the value returned from QueueingHintFn, the scheduling queue changes how it queues each Pod:\n - if more than one QueueingHintFn returns QueueImmediately, it queues Pod to activeQ.\n - If no QueueingHintFn returns QueueImmediately and more than one plugin returns QueueAfterBackoff, it queues Pod to backoffQ if Pod is backing off, or to activeQ if Pod's backoff has already finished.\n - If all QueueingHintFn return QueueSkip, it puts this pod back to the unschedulable pod pool\n \n Having appropriate QueueingHintFn contributes to reducing useless retries and thus improves the overall scheduler's performance.\n \n **How can I migrate?**\n \n For backward compatibility, nil `QueueingHintFn` is treated as always returning QueueAfterBackoff. \n So, if you want to just keep the existing behavior, you can register `ClusterEventWithHint` with no `QueueingHintFn` in it. \n But, registering appropriate `QueueingHintFn` is, of course, better from a scheduling performance perspective. ([#118551](https://github.com/kubernetes/kubernetes/pull/118551), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling, Storage and Testing]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118551", + "pr_number": 118551, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "118552": { + "commit": "9d90b76bd687bbf6a913865c537c22e4cf622412", + "text": "RBD volume plugin (`kubernetes.io/rbd`) has been deprecated in this release\nand will be removed in a subsequent release. Alternative is to use RBD CSI driver\n(https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster.", + "markdown": "RBD volume plugin (`kubernetes.io/rbd`) has been deprecated in this release\n and will be removed in a subsequent release. Alternative is to use RBD CSI driver\n (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. ([#118552](https://github.com/kubernetes/kubernetes/pull/118552), [@humblec](https://github.com/humblec))", + "author": "humblec", + "author_url": "https://github.com/humblec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118552", + "pr_number": 118552, + "kinds": [ + "deprecation" + ], + "sigs": [ + "storage" + ], + "action_required": true + }, + "118567": { + "commit": "cdbdb179340896e7ec80fb97170ca94dc8611bb4", + "text": "CI job `ci-kubernetes-node-arm64-ubuntu-serial` will test node e2e on arm64, `use-dockerized-build` and `target-build-arch` are required to run this job.", + "markdown": "CI job `ci-kubernetes-node-arm64-ubuntu-serial` will test node e2e on arm64, `use-dockerized-build` and `target-build-arch` are required to run this job. ([#118567](https://github.com/kubernetes/kubernetes/pull/118567), [@chendave](https://github.com/chendave))", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118567", + "pr_number": 118567, + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "118578": { + "commit": "42141aaf932c464d933ec5f518c59bac95e8068e", + "text": "Dynamic Resource Allocation: logged an error and submitted an event when `Kubelet` failed to prepare dynamic resources.", + "markdown": "Dynamic Resource Allocation: logged an error and submitted an event when `Kubelet` failed to prepare dynamic resources. ([#118578](https://github.com/kubernetes/kubernetes/pull/118578), [@bart0sh](https://github.com/bart0sh))", + "author": "bart0sh", + "author_url": "https://github.com/bart0sh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118578", + "pr_number": 118578, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "118596": { + "commit": "49d7b3f0a0e451f515e17b62a4a08017e46c15c2", + "text": "kubelet: The `--azure-container-registry-config` flag has been deprecated and will be removed in a future release, please use `--image-credential-provider-config` and `--image-credential-provider-bin-dir` to setup acr credential provider instead.", + "markdown": "Kubelet: The `--azure-container-registry-config` flag has been deprecated and will be removed in a future release, please use `--image-credential-provider-config` and `--image-credential-provider-bin-dir` to setup acr credential provider instead. ([#118596](https://github.com/kubernetes/kubernetes/pull/118596), [@SataQiu](https://github.com/SataQiu)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2133-kubelet-credential-providers", + "type": "KEP" + } + ], + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118596", + "pr_number": 118596, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "118601": { + "commit": "f6bcef0fd36f2f8312d8c6f14f17d804dcf97600", + "text": "Updated kube-apiserver's priority \u0026 fairness work estimator such that 'max seats' is MIN(0.15 x nominalCL, nominalCL / handSize)\n\nThis fixes a bug where clients with requests using hand size x max seats greater than the nominal concurrency limit can starve other requests in the same priority level.", + "markdown": "Updated kube-apiserver's priority \u0026 fairness work estimator such that 'max seats' is MIN(0.15 x nominalCL, nominalCL / handSize)\n \n This fixes a bug where clients with requests using hand size x max seats greater than the nominal concurrency limit can starve other requests in the same priority level. ([#118601](https://github.com/kubernetes/kubernetes/pull/118601), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118601", + "pr_number": 118601, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "118608": { + "commit": "c95b16b28076e84867ae0521574303ffc058becf", + "text": "The scheduler skips the `PodTopologySpread` Score plugin when nothing to do with the Pod.\nIt will affect some metrics values related to the PodTopologySpread Score plugin.", + "markdown": "The scheduler skips the `PodTopologySpread` Score plugin when nothing to do with the Pod.\n It will affect some metrics values related to the PodTopologySpread Score plugin. ([#118608](https://github.com/kubernetes/kubernetes/pull/118608), [@utam0k](https://github.com/utam0k))", + "author": "utam0k", + "author_url": "https://github.com/utam0k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118608", + "pr_number": 118608, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "118615": { + "commit": "cef13f11fd71f2eb141e3d6cf9b10b7cddf83db4", + "text": "Made Job controller batching of syncJob invocations enabled unconditionally (it was conditional on JobReadyPods feature before).\nAlso, Job controller's constants for default backoff and maximal backoff are lowered down to 1s (from 10s) and 1min (from 6min), respectively. These constants are used to determine the backoff delay for the next Job controller sync in case of a request failure.", + "markdown": "Made Job controller batching of syncJob invocations enabled unconditionally (it was conditional on JobReadyPods feature before).\n Also, Job controller's constants for default backoff and maximal backoff are lowered down to 1s (from 10s) and 1min (from 6min), respectively. These constants are used to determine the backoff delay for the next Job controller sync in case of a request failure. ([#118615](https://github.com/kubernetes/kubernetes/pull/118615), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118615", + "pr_number": 118615, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "118644": { + "commit": "18f8cb83989ff64beb0c7f47cdd3ad9df7bdbbeb", + "text": "Promoted API groups `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` to `v1beta1`.", + "markdown": "Promoted API groups `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` to `v1beta1`. ([#118644](https://github.com/kubernetes/kubernetes/pull/118644), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery, Apps and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3488", + "type": "KEP" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118644", + "pr_number": 118644, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "118686": { + "commit": "98455a5b42262562cd46728aa24fa5dfa503c796", + "text": "`wait.PollUntilContextTimeout` function, if immediate is true, the condition\nwill be invoked before waiting and guarantees that the condition is invoked at\nleast once, regardless of whether the context has been cancelled.", + "markdown": "`wait.PollUntilContextTimeout` function, if immediate is true, the condition\n will be invoked before waiting and guarantees that the condition is invoked at\n least once, regardless of whether the context has been cancelled. ([#118686](https://github.com/kubernetes/kubernetes/pull/118686), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118686", + "pr_number": 118686, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "118691": { + "commit": "c2b7d25ff81a9a3437847ff246b083bd851954c1", + "text": "Enabled use of pods with volumes and user namespaces. The feature gate was renamed from `UserNamespacesStatelessPodsSupport` to `UserNamespacesSupport`.", + "markdown": "Enabled use of pods with volumes and user namespaces. The feature gate was renamed from `UserNamespacesStatelessPodsSupport` to `UserNamespacesSupport`. ([#118691](https://github.com/kubernetes/kubernetes/pull/118691), [@giuseppe](https://github.com/giuseppe))", + "author": "giuseppe", + "author_url": "https://github.com/giuseppe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118691", + "pr_number": 118691, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118716": { + "commit": "a4519665fe05095f2b2e56d51b2b83b3579b4598", + "text": "The Daemonset controller creates replacements for terminal Pods, which can appear during VM preemptions or when using Pod finalizers.", + "markdown": "The Daemonset controller creates replacements for terminal Pods, which can appear during VM preemptions or when using Pod finalizers. ([#118716](https://github.com/kubernetes/kubernetes/pull/118716), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118716", + "pr_number": 118716, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "apps", + "testing" + ], + "duplicate": true + }, + "118724": { + "commit": "89b1d0ce3e742f8a5aed8cf7f8a8a82710ed0af8", + "text": "Fixed cronjob controller handling of complex schedules, like `30 6-16/4 * * 1-5`, for example.", + "markdown": "Fixed cronjob controller handling of complex schedules, like `30 6-16/4 * * 1-5`, for example. ([#118724](https://github.com/kubernetes/kubernetes/pull/118724), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118724", + "pr_number": 118724, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "118759": { + "commit": "2651e70f57db14fec4dd45c8ccf683ece1262317", + "text": "Reduced delay when processing jobs after a transient API error.", + "markdown": "Reduced delay when processing jobs after a transient API error. ([#118759](https://github.com/kubernetes/kubernetes/pull/118759), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118759", + "pr_number": 118759, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ] + }, + "118763": { + "commit": "5a1c62b9d121e23d411fdc84255521d1dc231bf2", + "text": "The `AdvancedAuditing` feature gate that graduated to GA in `v1.12` (and was unconditionally\nenabled) has been removed.", + "markdown": "The `AdvancedAuditing` feature gate that graduated to GA in `v1.12` (and was unconditionally\n enabled) has been removed. ([#118763](https://github.com/kubernetes/kubernetes/pull/118763), [@Shubham82](https://github.com/Shubham82))", + "author": "Shubham82", + "author_url": "https://github.com/Shubham82", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118763", + "pr_number": 118763, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "118764": { + "commit": "da2fdf8cc32e87b9d35697030fc08beb9379cecc", + "text": "Added full cgroup v2 swap support for both `Limited` and `Unlimited` swap.\n\nWhen `LimitedSwap` is enabled the swap limit would be automatically calculated for\nBurstable QoS pods. For Best-Effort/Guaranteed QoS pods, swap would be disabled.\n\nContainers with memory requests equal to their memory limits also won't have\nswap access, and it is a way to opt-out of swap for a single container.\n\nThe formula for the swap limit for Burstable QoS pods is:\n`(\u003cmemory-request\u003e/\u003cnode-memory-capacity\u003e)*\u003cnode-swap-capacity\u003e`.\n\nSupport for `cgroup v1` is removed.", + "markdown": "Added full cgroup v2 swap support for both `Limited` and `Unlimited` swap.\n \n When `LimitedSwap` is enabled the swap limit would be automatically calculated for\n Burstable QoS pods. For Best-Effort/Guaranteed QoS pods, swap would be disabled.\n \n Containers with memory requests equal to their memory limits also won't have\n swap access, and it is a way to opt-out of swap for a single container.\n \n The formula for the swap limit for Burstable QoS pods is:\n `(\u003cmemory-request\u003e/\u003cnode-memory-capacity\u003e)*\u003cnode-swap-capacity\u003e`.\n \n Support for `cgroup v1` is removed. ([#118764](https://github.com/kubernetes/kubernetes/pull/118764), [@iholder101](https://github.com/iholder101))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/", + "type": "KEP" + }, + { + "description": "As per [KEP2400](", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md#steps-to-calculate-swap-limit), the swap limit is being automatically calculated for Burstable QoS pods. As written in the KEP, the fomula is: `(\u003ccontainer-request\u003e/\u003cnode-memory-capacity\u003e)*\u003cswap-size\u003e)`. On my system, I have approximately 400Gi of total memory and a swap size of approximately 40Gi. Therefore, the swap limit needs to be approximately `(0.5Gi/400Gi)*40Gi == 0.5Gi`.", + "type": "KEP" + } + ], + "author": "iholder101", + "author_url": "https://github.com/iholder101", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118764", + "pr_number": 118764, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118770": { + "commit": "1fef8fd51d1809266114ca8dcf203c6a96b8eb3b", + "text": "With the `KubeletCgroupDriverFromCRI` feature gate enabled and sufficiently new version of a container\nruntime, kubelet automatically detects the cgroup driver config from the container runtime, eliminating\nthe need to specify the `cgroupDriver` configuration option (or `--cgroup-driver` flag) of kubelet.", + "markdown": "With the `KubeletCgroupDriverFromCRI` feature gate enabled and sufficiently new version of a container\n runtime, kubelet automatically detects the cgroup driver config from the container runtime, eliminating\n the need to specify the `cgroupDriver` configuration option (or `--cgroup-driver` flag) of kubelet. ([#118770](https://github.com/kubernetes/kubernetes/pull/118770), [@marquiz](https://github.com/marquiz))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4033-group-driver-detection-over-cri", + "type": "KEP" + } + ], + "author": "marquiz", + "author_url": "https://github.com/marquiz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118770", + "pr_number": 118770, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "118772": { + "commit": "d1d86dafb749241e968cb3f6ea91790b4d6a188c", + "text": "Added handling for pods in podgc for `PodReplacementPolicy` or `PodDisruption`.", + "markdown": "Added handling for pods in podgc for `PodReplacementPolicy` or `PodDisruption`. ([#118772](https://github.com/kubernetes/kubernetes/pull/118772), [@kannon92](https://github.com/kannon92))", + "documentation": [ + { + "description": "[KEP]: [KEP-3939](", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3939-allow-replacement-when-fully-terminated#risks-and-mitigations)", + "type": "KEP" + } + ], + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118772", + "pr_number": 118772, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118774": { + "commit": "b8d4eec43edcf370ffec459bff4e226ae5a90124", + "text": "Updated cAdvisor to `v0.47.2` and fixed metrics in `cri-o` when a container restarts.", + "markdown": "Updated cAdvisor to `v0.47.2` and fixed metrics in `cri-o` when a container restarts. ([#118774](https://github.com/kubernetes/kubernetes/pull/118774), [@harche](https://github.com/harche))", + "author": "harche", + "author_url": "https://github.com/harche", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118774", + "pr_number": 118774, + "areas": [ + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "118782": { + "commit": "2a91bd1dfdd2e293b9ec017ea3a976ecc2ecd545", + "text": "In the API Priority and Fairness feature, priority levels that are exempt from limitation can now be given a nominal and a lendable concurrency and their dispatching borrows from the concurrency limits of the other priority levels. For details see https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1040-priority-and-fairness#dispatching .", + "markdown": "In the API Priority and Fairness feature, priority levels that are exempt from limitation can now be given a nominal and a lendable concurrency and their dispatching borrows from the concurrency limits of the other priority levels. For details see https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1040-priority-and-fairness#dispatching . ([#118782](https://github.com/kubernetes/kubernetes/pull/118782), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1040-priority-and-fairness", + "type": "KEP" + } + ], + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118782", + "pr_number": 118782, + "areas": [ + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "118786": { + "commit": "b3d94ae74f3284b64a32a9fa2d82509c86d22e17", + "text": "As in Kubernetes `v1.26` and `v1.27`, resource claims do not get prepared by `kubelet` when no container uses them. This was changed accidentally in [v1.28.0-alpha.1](https://github.com/kubernetes/kubernetes/releases/tag/v1.28.0-alpha.1).", + "markdown": "As in Kubernetes `v1.26` and `v1.27`, resource claims do not get prepared by `kubelet` when no container uses them. This was changed accidentally in [v1.28.0-alpha.1](https://github.com/kubernetes/kubernetes/releases/tag/v1.28.0-alpha.1). ([#118786](https://github.com/kubernetes/kubernetes/pull/118786), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118786", + "pr_number": 118786, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "118803": { + "commit": "423f4dfc7982136c958fc78e187c911a8896ba1b", + "text": "New CEL Library functions to support Kubernetes Quantities.", + "markdown": "New CEL Library functions to support Kubernetes Quantities. ([#118803](https://github.com/kubernetes/kubernetes/pull/118803), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery]", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118803", + "pr_number": 118803, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "118804": { + "commit": "1d846a12da5b05e9b9e50b30fdaae2ea269822a0", + "text": "CEL authorizer checks no longer raise runtime errors. Calls to \"check\" will always return a decision object and the authorization error (if any) can be accessed within expressions using the new decision methods \"errored\" and \"error\".", + "markdown": "CEL authorizer checks no longer raise runtime errors. Calls to \"check\" will always return a decision object and the authorization error (if any) can be accessed within expressions using the new decision methods \"errored\" and \"error\". ([#118804](https://github.com/kubernetes/kubernetes/pull/118804), [@benluddy](https://github.com/benluddy)) [SIG API Machinery]", + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118804", + "pr_number": 118804, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "118808": { + "commit": "7aa4e089cdb3e7171d7f8f3ecb009b9dcdfbb415", + "text": "Revised `OpenAPI v2` fetching for CustomResourceDefinitions. CRDs are now aggregated lazily,\nwhich improves resource usage during installation of many CRDs. As a result, the first request\nto fetch the OpenAPI may be slower.", + "markdown": "Revised `OpenAPI v2` fetching for CustomResourceDefinitions. CRDs are now aggregated lazily,\n which improves resource usage during installation of many CRDs. As a result, the first request\n to fetch the OpenAPI may be slower. ([#118808](https://github.com/kubernetes/kubernetes/pull/118808), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118808", + "pr_number": 118808, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "118810": { + "commit": "4682f868866913f6da6cf4babcf8ca7bdd7a0f71", + "text": "Added `--concurrency` flag to configure the concurrency of `kubectl diff` execution, defaults to 1.", + "markdown": "Added `--concurrency` flag to configure the concurrency of `kubectl diff` execution, defaults to 1. ([#118810](https://github.com/kubernetes/kubernetes/pull/118810), [@brancz](https://github.com/brancz))", + "author": "brancz", + "author_url": "https://github.com/brancz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118810", + "pr_number": 118810, + "areas": [ + "kubectl", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "118812": { + "commit": "2ec4e14bfa0cec1f22919ea862c45b1501187e20", + "text": "Replaced `apiserver_storage_db_total_size_in_bytes` with `apiserver_storage_size_bytes` metric.", + "markdown": "Replaced `apiserver_storage_db_total_size_in_bytes` with `apiserver_storage_size_bytes` metric. ([#118812](https://github.com/kubernetes/kubernetes/pull/118812), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118812", + "pr_number": 118812, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118816": { + "commit": "cab65e20080e3be29b7fc09905ddd579884fd5c9", + "text": "`TopologyManagerPolicyOptions` feature-flag is promoted to beta and enabled by default.", + "markdown": "`TopologyManagerPolicyOptions` feature-flag is promoted to beta and enabled by default. ([#118816](https://github.com/kubernetes/kubernetes/pull/118816), [@PiotrProkop](https://github.com/PiotrProkop))", + "author": "PiotrProkop", + "author_url": "https://github.com/PiotrProkop", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118816", + "pr_number": 118816, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "118817": { + "commit": "6f9d1d38d88fff8450feb2b7a46b756d9e9cce3f", + "text": "When a pod is done or not going to run, then `ResourceClaims` for it can be reused by other pods or deleted.", + "markdown": "When a pod is done or not going to run, then `ResourceClaims` for it can be reused by other pods or deleted. ([#118817](https://github.com/kubernetes/kubernetes/pull/118817), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118817", + "pr_number": 118817, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118828": { + "commit": "773a6b1e460360538ce4d85a7c0d009efed81836", + "text": "Changed how KMS v2 encryption at rest can generate data encryption keys.\nWhen you enable the `KMSv2KDF` feature gate (off by default), KMS v2 uses a key derivation function to generate single use data encryption keys from a secret seed combined with some random data. This eliminates the need for a counter based nonce while avoiding nonce collision concerns associated with AES-GCM's 12 byte nonce.", + "markdown": "Changed how KMS v2 encryption at rest can generate data encryption keys.\n When you enable the `KMSv2KDF` feature gate (off by default), KMS v2 uses a key derivation function to generate single use data encryption keys from a secret seed combined with some random data. This eliminates the need for a counter based nonce while avoiding nonce collision concerns associated with AES-GCM's 12 byte nonce. ([#118828](https://github.com/kubernetes/kubernetes/pull/118828), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118828", + "pr_number": 118828, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "118842": { + "commit": "02f09d6a61d3c35936b653375a294ecdf3fc778f", + "text": "Use table-driven test for `TestPerPodSchedulingMetrics`.", + "markdown": "Use table-driven test for `TestPerPodSchedulingMetrics`. ([#118842](https://github.com/kubernetes/kubernetes/pull/118842), [@helayoty](https://github.com/helayoty))", + "author": "helayoty", + "author_url": "https://github.com/helayoty", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118842", + "pr_number": 118842, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "118865": { + "commit": "b4d793c4502eb0248bfd58cab65f310182a8847d", + "text": "Added swap to stats to Summary API and Prometheus endpoints (stats/summary and /metrics/resource).", + "markdown": "Added swap to stats to Summary API and Prometheus endpoints (stats/summary and /metrics/resource). ([#118865](https://github.com/kubernetes/kubernetes/pull/118865), [@iholder101](https://github.com/iholder101))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md#beta-1", + "type": "KEP" + } + ], + "author": "iholder101", + "author_url": "https://github.com/iholder101", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118865", + "pr_number": 118865, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118866": { + "commit": "1c32c3bd9f478c38bb166e5b86b22c9312ed67ad", + "text": "`kubeadm`: added the `--allow-experimental-api` flag to \"kubeadm config migrate/validate\" commands. It can be used to migrate or validate WIP/experimental APIs in the future.", + "markdown": "`kubeadm`: added the `--allow-experimental-api` flag to \"kubeadm config migrate/validate\" commands. It can be used to migrate or validate WIP/experimental APIs in the future. ([#118866](https://github.com/kubernetes/kubernetes/pull/118866), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118866", + "pr_number": 118866, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "118876": { + "commit": "e09edf3c1682de505c70de5e71ea16b70c09183b", + "text": "`kubectl explain` should correctly work for all resources.", + "markdown": "`kubectl explain` should correctly work for all resources. ([#118876](https://github.com/kubernetes/kubernetes/pull/118876), [@atiratree](https://github.com/atiratree))", + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118876", + "pr_number": 118876, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true + }, + "118879": { + "commit": "40956a7977deb2fc8018caa477c8a814147eca70", + "text": "Fixed the discoverability of `apiregistration.k8s.io` in `openapi/v3`", + "markdown": "Fixed the discoverability of `apiregistration.k8s.io` in `openapi/v3` ([#118879](https://github.com/kubernetes/kubernetes/pull/118879), [@atiratree](https://github.com/atiratree))", + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118879", + "pr_number": 118879, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "118883": { + "commit": "6f3856f953b1178ff7422d565875b07ee2aa9e06", + "text": "Indexed Job pods now have the pod completion index set as a pod label.", + "markdown": "Indexed Job pods now have the pod completion index set as a pod label. ([#118883](https://github.com/kubernetes/kubernetes/pull/118883), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps]", + "documentation": [ + { + "description": "[KEP](", + "url": "https://github.com/kubernetes/enhancements/pull/4019)", + "type": "KEP" + } + ], + "author": "danielvegamyhre", + "author_url": "https://github.com/danielvegamyhre", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118883", + "pr_number": 118883, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "duplicate_kind": true + }, + "118895": { + "commit": "890a6c8f70d2e0f45b3692d34a6df1ecb6d8335b", + "text": "Added `IP mode` field to loadbalancer status ingress.", + "markdown": "Added `IP mode` field to loadbalancer status ingress. ([#118895](https://github.com/kubernetes/kubernetes/pull/118895), [@RyanAoh](https://github.com/RyanAoh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/1860-kube-proxy-IP-node-binding", + "type": "KEP" + } + ], + "author": "RyanAoh", + "author_url": "https://github.com/RyanAoh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118895", + "pr_number": 118895, + "areas": [ + "test", + "kube-proxy", + "cloudprovider", + "code-generation", + "ipvs" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "apps", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "118915": { + "commit": "8f79a3d91e95345f34c7b1c4250d4495aadbe748", + "text": "The `NetworkPolicyLegacy` test suite (deprecated in `v1.21`) has now officially been removed in favor of the new table driven e2e tests.", + "markdown": "The `NetworkPolicyLegacy` test suite (deprecated in `v1.21`) has now officially been removed in favor of the new table driven e2e tests. ([#118915](https://github.com/kubernetes/kubernetes/pull/118915), [@astoycos](https://github.com/astoycos))", + "author": "astoycos", + "author_url": "https://github.com/astoycos", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118915", + "pr_number": 118915, + "areas": [ + "test", + "network-policy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true + }, + "118922": { + "commit": "4036b6fb41b36d76a6076e4f430f74423efe04f3", + "text": "`kubeadm`: generate CA certificates with a start time that is offset 5\nminutes in the past relative to the current system time to workaround cases of\nclock desync.", + "markdown": "`kubeadm`: generate CA certificates with a start time that is offset 5\n minutes in the past relative to the current system time to workaround cases of\n clock desync. ([#118922](https://github.com/kubernetes/kubernetes/pull/118922), [@champtar](https://github.com/champtar))", + "author": "champtar", + "author_url": "https://github.com/champtar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118922", + "pr_number": 118922, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "auth" + ], + "feature": true, + "duplicate": true + }, + "118936": { + "commit": "ec87834bae787ab6687921d65c3bcfde8a6e01b9", + "text": "Dynamic resource allocation: when a claim uses \"wait for first consumer\" allocation (the default), then it will now get deallocated after it was used by a pod. That ensures that the next pod isn't affected by previous scheduling decision and that resources are not kept allocated unless really needed. If keeping a claim allocated is desired, use \"immediate allocation.\"", + "markdown": "Dynamic resource allocation: when a claim uses \"wait for first consumer\" allocation (the default), then it will now get deallocated after it was used by a pod. That ensures that the next pod isn't affected by previous scheduling decision and that resources are not kept allocated unless really needed. If keeping a claim allocated is desired, use \"immediate allocation.\" ([#118936](https://github.com/kubernetes/kubernetes/pull/118936), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118936", + "pr_number": 118936, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118945": { + "commit": "2ee01fb673213c80cb8afc79c60c32adeadb413c", + "text": "- Updated apiserver metric `request_filter_duration_seconds` to include a 10s, 15s and 30s bucket.\n Updated apiserver metric `request_wait_duration_seconds` to include a 15s bucket.", + "markdown": "- Updated apiserver metric `request_filter_duration_seconds` to include a 10s, 15s and 30s bucket.\n Updated apiserver metric `request_wait_duration_seconds` to include a 15s bucket. ([#118945](https://github.com/kubernetes/kubernetes/pull/118945), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118945", + "pr_number": 118945, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "118953": { + "commit": "5c72df728125530f15a519dacc9c308084dc586b", + "text": "New staging repo has been created for the `EndpointSlice` reconciler.", + "markdown": "New staging repo has been created for the `EndpointSlice` reconciler. ([#118953](https://github.com/kubernetes/kubernetes/pull/118953), [@mskrocki](https://github.com/mskrocki))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/3686/commits/f0e118c01e95b335a2ed8101f0b6a935232d3b8f", + "type": "KEP" + } + ], + "author": "mskrocki", + "author_url": "https://github.com/mskrocki", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118953", + "pr_number": 118953, + "areas": [ + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "apps", + "release" + ], + "feature": true, + "duplicate": true + }, + "118959": { + "commit": "af33d7a5af49cc841f8b58466b59e8dfdfe185ed", + "text": "The metric `apiserver_flowcontrol_request_concurrency_limit` has been deprecated and will be removed in a future release. It is a duplicate of `apiserver_flowcontrol_nominal_limit_seats` (introduced in release 1.26) but has an outdated name and had an outdated HELP string.", + "markdown": "The metric `apiserver_flowcontrol_request_concurrency_limit` has been deprecated and will be removed in a future release. It is a duplicate of `apiserver_flowcontrol_nominal_limit_seats` (introduced in release 1.26) but has an outdated name and had an outdated HELP string. ([#118959](https://github.com/kubernetes/kubernetes/pull/118959), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118959", + "pr_number": 118959, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "118960": { + "commit": "fbb2f89668bd07a96adc8a1f4f0819e769255703", + "text": "The metric `apiserver_flowcontrol_current_executing_seats` has been introduced as a duplicate of `apiserver_flowcontrol_request_concurrency_in_use` because the latter has a confusing name and will be removed in a later release.", + "markdown": "The metric `apiserver_flowcontrol_current_executing_seats` has been introduced as a duplicate of `apiserver_flowcontrol_request_concurrency_in_use` because the latter has a confusing name and will be removed in a later release. ([#118960](https://github.com/kubernetes/kubernetes/pull/118960), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118960", + "pr_number": 118960, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "118973": { + "commit": "92856db662e2850e244c0d12250c57b837afcf66", + "text": "The `GetAllocatableResources` podresources API endpoint is now GA.", + "markdown": "The `GetAllocatableResources` podresources API endpoint is now GA. ([#118973](https://github.com/kubernetes/kubernetes/pull/118973), [@ffromani](https://github.com/ffromani))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/4045", + "type": "KEP" + } + ], + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118973", + "pr_number": 118973, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "118986": { + "commit": "a7360493499e25405d61ce09ecc339b36fe72346", + "text": "Promoted `kubernetes_healthcheck` and `kubernetes_healthchecks_total` to `BETA` stability level.", + "markdown": "Promoted `kubernetes_healthcheck` and `kubernetes_healthchecks_total` to `BETA` stability level. ([#118986](https://github.com/kubernetes/kubernetes/pull/118986), [@logicalhan](https://github.com/logicalhan))", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118986", + "pr_number": 118986, + "areas": [ + "test", + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "instrumentation", + "testing", + "architecture" + ], + "duplicate": true + }, + "118988": { + "commit": "1e21da87b8e70b71f635c72914a15fd4ec0c576c", + "text": "Hashing of KeyID in Logs\n\nThis release adds a feature to hash the `KeyID` values in the logs. The `KeyID` values are sensitive information that should not be exposed in plain text in the logs. By hashing the `KeyID` values, we can protect the confidentiality of the data while still being able to log the necessary information.", + "markdown": "Hashing of KeyID in Logs\n \n This release adds a feature to hash the `KeyID` values in the logs. The `KeyID` values are sensitive information that should not be exposed in plain text in the logs. By hashing the `KeyID` values, we can protect the confidentiality of the data while still being able to log the necessary information. ([#118988](https://github.com/kubernetes/kubernetes/pull/118988), [@nilekhc](https://github.com/nilekhc)) [SIG API Machinery, Auth and Testing]", + "author": "nilekhc", + "author_url": "https://github.com/nilekhc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118988", + "pr_number": 118988, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118990": { + "commit": "c684de526c975e976050c1b570244ad6dba15d58", + "text": "Added new `CRDValidationRatcheting` alpha feature. During a PATCH or UPDATE Validation Ratcheting discards errors thrown by unchanged portions of the resource from most OpenAPI schema validations.", + "markdown": "Added new `CRDValidationRatcheting` alpha feature. During a PATCH or UPDATE Validation Ratcheting discards errors thrown by unchanged portions of the resource from most OpenAPI schema validations. ([#118990](https://github.com/kubernetes/kubernetes/pull/118990), [@alexzielenski](https://github.com/alexzielenski))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4008", + "type": "external" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118990", + "pr_number": 118990, + "areas": [ + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "118999": { + "commit": "2d42274ac75f6c97c3e9c243615a395b81edf9bd", + "text": "kube-proxy service health returns http header `X-Load-Balancing-Endpoint-Weight` with number of local endpoints. The same information is still available in response body JSON `payload.LocalEndpoints`.", + "markdown": "Kube-proxy service health returns http header `X-Load-Balancing-Endpoint-Weight` with number of local endpoints. The same information is still available in response body JSON `payload.LocalEndpoints`. ([#118999](https://github.com/kubernetes/kubernetes/pull/118999), [@cezarygerard](https://github.com/cezarygerard))", + "author": "cezarygerard", + "author_url": "https://github.com/cezarygerard", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118999", + "pr_number": 118999, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "119003": { + "commit": "75889ecec5d30cbe1dcb6636d5334b21b4378e9c", + "text": "Kube-proxy will now warn at startup if the configuration seems inconsistent\nwith respect to IP families. (For example, if you have an IPv4 node IP, but\n`--cluster-cidr` is IPv6.)", + "markdown": "Kube-proxy will now warn at startup if the configuration seems inconsistent\n with respect to IP families. (For example, if you have an IPv4 node IP, but\n `--cluster-cidr` is IPv6.) ([#119003](https://github.com/kubernetes/kubernetes/pull/119003), [@danwinship](https://github.com/danwinship)) [SIG Network]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119003", + "pr_number": 119003, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "119007": { + "commit": "1acdb4ae86e0e43475c31f108a6106b1f5ea5027", + "text": "`KMSv1` is deprecated and will only receive security updates going forward. Use `KMSv2` instead. In a future release, Set `--feature-gates=KMSv1=true` to use the deprecated KMSv1 feature.", + "markdown": "`KMSv1` is deprecated and will only receive security updates going forward. Use `KMSv2` instead. In a future release, Set `--feature-gates=KMSv1=true` to use the deprecated KMSv1 feature. ([#119007](https://github.com/kubernetes/kubernetes/pull/119007), [@aramase](https://github.com/aramase))", + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119007", + "pr_number": 119007, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "api-change", + "deprecation" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "duplicate_kind": true + }, + "119008": { + "commit": "e3bc35bc1bc7b399b564f2c4efc75eb9959e70f7", + "text": "New Metrics Added for Encryption Configuration Controller\n\nThis release adds new metrics to the Encryption Configuration Controller to help monitor the automatic reloading of encryption configuration. The new metrics include:\n\n- `apiserver_encryption_config_controller_automatic_reload_failures_total`: Total number of failed automatic reloads of encryption configuration.\n- `apiserver_encryption_config_controller_automatic_reload_success_total`: Total number of successful automatic reloads of encryption configuration.\n- `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`: Timestamp of the last successful or failed automatic reload of encryption configuration.\n\nThese metrics can be used to monitor the health of the Encryption Configuration Controller and to troubleshoot any issues that may arise during automatic reloading of encryption configuration.", + "markdown": "New Metrics Added for Encryption Configuration Controller\n \n This release adds new metrics to the Encryption Configuration Controller to help monitor the automatic reloading of encryption configuration. The new metrics include:\n \n - `apiserver_encryption_config_controller_automatic_reload_failures_total`: Total number of failed automatic reloads of encryption configuration.\n - `apiserver_encryption_config_controller_automatic_reload_success_total`: Total number of successful automatic reloads of encryption configuration.\n - `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`: Timestamp of the last successful or failed automatic reload of encryption configuration.\n \n These metrics can be used to monitor the health of the Encryption Configuration Controller and to troubleshoot any issues that may arise during automatic reloading of encryption configuration. ([#119008](https://github.com/kubernetes/kubernetes/pull/119008), [@nilekhc](https://github.com/nilekhc))", + "author": "nilekhc", + "author_url": "https://github.com/nilekhc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119008", + "pr_number": 119008, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "119009": { + "commit": "31d662e58e9679ada73208fe63759c06793b013c", + "text": "The apiserver debug endpoint `/debug/api_priority_and_fairness/dump_requests` has been extended to dump executing requests as well as queued ones. A column for StartTime has been added to the returned table, with the queued requests having a StartTime of \"0001-01-01T00:00:00Z\". The executing requests have a RequestIndexInQueue of -1, and the QueueIndex is also -1 for priority levels without queues.", + "markdown": "The apiserver debug endpoint `/debug/api_priority_and_fairness/dump_requests` has been extended to dump executing requests as well as queued ones. A column for StartTime has been added to the returned table, with the queued requests having a StartTime of \"0001-01-01T00:00:00Z\". The executing requests have a RequestIndexInQueue of -1, and the QueueIndex is also -1 for priority levels without queues. ([#119009](https://github.com/kubernetes/kubernetes/pull/119009), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery]", + "author": "MikeSpreitzer", + "author_url": "https://github.com/MikeSpreitzer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119009", + "pr_number": 119009, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "119012": { + "commit": "047d040ce754c78e17ceb7f55efcdfe8e0151c9c", + "text": "kubelet: plugins for dynamic resource allocation may use the `v1alpha3` API instead of v1alpha2 if they want to do prepare/unprepare operations in batches.", + "markdown": "Kubelet: plugins for dynamic resource allocation may use the `v1alpha3` API instead of v1alpha2 if they want to do prepare/unprepare operations in batches. ([#119012](https://github.com/kubernetes/kubernetes/pull/119012), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119012", + "pr_number": 119012, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "119033": { + "commit": "a864ce77b7a0a2fa66922d93190874812af53d44", + "text": "Bumped kube-dns to `v1.22.23`.", + "markdown": "Bumped kube-dns to `v1.22.23`. ([#119033](https://github.com/kubernetes/kubernetes/pull/119033), [@ty-dc](https://github.com/ty-dc))", + "author": "ty-dc", + "author_url": "https://github.com/ty-dc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119033", + "pr_number": 119033, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "do_not_publish": true + }, + "119078": { + "commit": "529eeb78efb26a3710ebbc65e8b8bfccc8fcafa7", + "text": "Faster scheduling when `ResourceClaims` are involved.", + "markdown": "Faster scheduling when `ResourceClaims` are involved. ([#119078](https://github.com/kubernetes/kubernetes/pull/119078), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119078", + "pr_number": 119078, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "node" + ], + "feature": true, + "duplicate": true + }, + "119095": { + "commit": "d43e6705f1c0a2da36000485d1b40a718f355fae", + "text": "Updated debian-base image to `bookworm-v1.0.0`.", + "markdown": "Updated debian-base image to `bookworm-v1.0.0`. ([#119095](https://github.com/kubernetes/kubernetes/pull/119095), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119095", + "pr_number": 119095, + "areas": [ + "test", + "release-eng", + "conformance" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing", + "release", + "architecture" + ], + "duplicate": true + }, + "119110": { + "commit": "4f60a8d493ab9571eb328b9d98da477a50bc7446", + "text": "Promoted the following apiserver flowcontrol metrics to Beta:\n\n- apiserver_flowcontrol_request_wait_duration_seconds\n- apiserver_flowcontrol_current_executing_seats\n- apiserver_flowcontrol_nominal_limit_seats\n- apiserver_flowcontrol_rejected_requests_total\n- apiserver_flowcontrol_dispatched_requests_total\n- apiserver_flowcontrol_current_inqueue_requests\n- apiserver_flowcontrol_current_executing_requests", + "markdown": "Promoted the following apiserver flowcontrol metrics to Beta:\n \n apiserver_flowcontrol_request_wait_duration_seconds \n - apiserver_flowcontrol_current_executing_seats\n - apiserver_flowcontrol_nominal_limit_seats\n - apiserver_flowcontrol_rejected_requests_total\n - apiserver_flowcontrol_dispatched_requests_total\n - apiserver_flowcontrol_current_inqueue_requests\n - apiserver_flowcontrol_current_executing_requests ([#119110](https://github.com/kubernetes/kubernetes/pull/119110), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119110", + "pr_number": 119110, + "areas": [ + "apiserver", + "stable-metrics" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "119130": { + "commit": "42e1e72105c454b4c8738f0a6133a4a04cc175ba", + "text": "The deprecated flag `--lock-object-namespace` and `--lock-object-name` have been removed from kube-scheduler. Please use `--leader-elect-resource-namespace` and `--leader-elect-resource-name` or ComponentConfig instead to configure those parameters.", + "markdown": "The deprecated flag `--lock-object-namespace` and `--lock-object-name` have been removed from kube-scheduler. Please use `--leader-elect-resource-namespace` and `--leader-elect-resource-name` or ComponentConfig instead to configure those parameters. ([#119130](https://github.com/kubernetes/kubernetes/pull/119130), [@SataQiu](https://github.com/SataQiu)) [SIG Scheduling]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119130", + "pr_number": 119130, + "kinds": [ + "deprecation" + ], + "sigs": [ + "scheduling" + ] + }, + "119140": { + "commit": "ffa4c263219939896052f461fdeb98d63333e8cb", + "text": "The kube-proxy `sync_proxy_rules_iptables_total` metric has now reverted back\nto its pre-1.27 behavior of tracking the total number of iptables rules that\nkube-proxy is responsible for, rather than only counting the number of rules\nthat it re-synced on the last sync. The new `sync_proxy_rules_iptables_last`\nmetric now gives the latter number.", + "markdown": "The kube-proxy `sync_proxy_rules_iptables_total` metric has now reverted back\n to its pre-1.27 behavior of tracking the total number of iptables rules that\n kube-proxy is responsible for, rather than only counting the number of rules\n that it re-synced on the last sync. The new `sync_proxy_rules_iptables_last`\n metric now gives the latter number. ([#119140](https://github.com/kubernetes/kubernetes/pull/119140), [@danwinship](https://github.com/danwinship)) [SIG Network]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/3453-minimize-iptables-restore/README.md", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119140", + "pr_number": 119140, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "119147": { + "commit": "745cfa35bdf7033fe80c9e7439dca9d46259c61e", + "text": "Migrated the disruption controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the disruption controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#119147](https://github.com/kubernetes/kubernetes/pull/119147), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Apps, Instrumentation and Testing]", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119147", + "pr_number": 119147, + "areas": [ + "test", + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "119159": { + "commit": "19a25bac052e9d3bbfe6961867207ef98cfa0f06", + "text": "Declare Job as finished only after removing all Pod finalizers to avoid orphan Pods.", + "markdown": "Declare Job as finished only after removing all Pod finalizers to avoid orphan Pods. ([#119159](https://github.com/kubernetes/kubernetes/pull/119159), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119159", + "pr_number": 119159, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "119185": { + "commit": "986171d388e3b18a3ee2a2ef88683a1fb81d21b9", + "text": "Added reason to metric `attachdetach_controller_forced_detaches` in the attach detach controller.", + "markdown": "Added reason to metric `attachdetach_controller_forced_detaches` in the attach detach controller. ([#119185](https://github.com/kubernetes/kubernetes/pull/119185), [@xing-yang](https://github.com/xing-yang))", + "author": "xing-yang", + "author_url": "https://github.com/xing-yang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119185", + "pr_number": 119185, + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "apps" + ], + "feature": true, + "duplicate": true + }, + "119209": { + "commit": "da8974157faea86d15bb54e01eb946f9c4928e8c", + "text": "A ValidatingAdmissionPolicy now has its `messageExpression` field checked against resolved types.", + "markdown": "A ValidatingAdmissionPolicy now has its `messageExpression` field checked against resolved types. ([#119209](https://github.com/kubernetes/kubernetes/pull/119209), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery]", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119209", + "pr_number": 119209, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "119215": { + "commit": "8a053c700a3abc30717860e0b6a13243a7250743", + "text": "Added a new `namespaceParamRef` field to `admissionregistration.k8s.io/v1alpha1.ValidatingAdmissionPolicy`.", + "markdown": "Added a new `namespaceParamRef` field to `admissionregistration.k8s.io/v1alpha1.ValidatingAdmissionPolicy`. ([#119215](https://github.com/kubernetes/kubernetes/pull/119215), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3488", + "type": "KEP" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119215", + "pr_number": 119215, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "119225": { + "commit": "d45b6ba676b98cd8dcd53c93147eed5ab6c46826", + "text": "Bumped cadvisor version to `v0.47.3`.", + "markdown": "Bumped cadvisor version to `v0.47.3`. ([#119225](https://github.com/kubernetes/kubernetes/pull/119225), [@iholder101](https://github.com/iholder101))", + "author": "iholder101", + "author_url": "https://github.com/iholder101", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119225", + "pr_number": 119225, + "areas": [ + "test", + "dependency" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "119232": { + "commit": "7698fe763976c0f9a9e3a6b338f8654896d72878", + "text": "StatefulSet pods now have the pod index set as a pod label `statefulset.kubernetes.io/pod-index`.", + "markdown": "StatefulSet pods now have the pod index set as a pod label `statefulset.kubernetes.io/pod-index`. ([#119232](https://github.com/kubernetes/kubernetes/pull/119232), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps]", + "documentation": [ + { + "description": "[KEP](", + "url": "https://github.com/kubernetes/enhancements/pull/4019)", + "type": "KEP" + } + ], + "author": "danielvegamyhre", + "author_url": "https://github.com/danielvegamyhre", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119232", + "pr_number": 119232, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "duplicate_kind": true + }, + "119238": { + "commit": "6264fd9dadb26019b6165d3f73e1b12f89d4adfd", + "text": "CRI: exposed commit memory bytes in container stats specific to Windows", + "markdown": "CRI: exposed commit memory bytes in container stats specific to Windows ([#119238](https://github.com/kubernetes/kubernetes/pull/119238), [@kiashok](https://github.com/kiashok))", + "author": "kiashok", + "author_url": "https://github.com/kiashok", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119238", + "pr_number": 119238, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "windows" + ], + "feature": true, + "duplicate": true + }, + "119241": { + "commit": "58b3ae97b7b26d1b4ac6515d9a2ea82dc49bdc79", + "text": "Cloud controller manager's node controller now emits timing metrics for initial `Node` synchronization. These metrics measure the delay between the creation of a new `Node` and the node controller's initial management actions, such as removing the cloud provider taint. These metrics should be consulted when setting cloud controller manager's `--concurrent-node-syncs` flag.", + "markdown": "Cloud controller manager's node controller now emits timing metrics for initial `Node` synchronization. These metrics measure the delay between the creation of a new `Node` and the node controller's initial management actions, such as removing the cloud provider taint. These metrics should be consulted when setting cloud controller manager's `--concurrent-node-syncs` flag. ([#119241](https://github.com/kubernetes/kubernetes/pull/119241), [@cartermckinnon](https://github.com/cartermckinnon)) [SIG Cloud Provider and Instrumentation]", + "author": "cartermckinnon", + "author_url": "https://github.com/cartermckinnon", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119241", + "pr_number": 119241, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "119247": { + "commit": "a8b90c9008609913c3b9b8f5b146e68d9ec8146f", + "text": "Updated `setcap` image to debian bookworm v1.0.0.", + "markdown": "Updated `setcap` image to debian bookworm v1.0.0. ([#119247](https://github.com/kubernetes/kubernetes/pull/119247), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119247", + "pr_number": 119247, + "kinds": [ + "cleanup" + ], + "sigs": [ + "release" + ] + }, + "119250": { + "commit": "406d2dfe619224dcaaf8942e24868a0874e8db03", + "text": "Migrated the podgc controller and some other remaining log calls within `kube-controller-manager` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). `kube-controller-manager` is now converted completely.", + "markdown": "Migrated the podgc controller and some other remaining log calls within `kube-controller-manager` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). `kube-controller-manager` is now converted completely. ([#119250](https://github.com/kubernetes/kubernetes/pull/119250), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Cloud Provider, Instrumentation, Network, Storage and Testing]", + "documentation": [ + { + "description": "-[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3077", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119250", + "pr_number": 119250, + "areas": [ + "test", + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "storage", + "api-machinery", + "apps", + "instrumentation", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "119256": { + "commit": "4575facd23b984c05ed02aac8715cc64b99de148", + "text": "Fixed a bug where `kubectl port-forward`, when used with a Deployment, could connect to a terminating pod even when a running pod is also available.", + "markdown": "Fixed a bug where `kubectl port-forward`, when used with a Deployment, could connect to a terminating pod even when a running pod is also available. ([#119256](https://github.com/kubernetes/kubernetes/pull/119256), [@brianpursley](https://github.com/brianpursley)) [SIG CLI]", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119256", + "pr_number": 119256, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "119264": { + "commit": "1da70b0736054555b62096848f2dc58d9c610e2c", + "text": "registered_metric_total, disabled_metric_total, hidden_metric_total \u0026 kubernetes_feature_enabled are promoted to `BETA` stability.", + "markdown": "Registered_metric_total, disabled_metric_total, hidden_metric_total \u0026 kubernetes_feature_enabled are promoted to `BETA` stability. ([#119264](https://github.com/kubernetes/kubernetes/pull/119264), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Architecture, Cluster Lifecycle and Instrumentation]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3498", + "type": "KEP" + } + ], + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119264", + "pr_number": 119264, + "areas": [ + "stable-metrics" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "instrumentation", + "architecture" + ], + "duplicate": true, + "duplicate_kind": true + }, + "119286": { + "commit": "d39965270effcf6d6daf6c3a672af8d62b943cb8", + "text": "Removed `KUBECTL_EXPLAIN_OPENAPIV3` which is already redundant.", + "markdown": "Removed `KUBECTL_EXPLAIN_OPENAPIV3` which is already redundant. ([#119286](https://github.com/kubernetes/kubernetes/pull/119286), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119286", + "pr_number": 119286, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "119294": { + "commit": "f3f5dd99ac7bdc61c61c3d587575090c3473ab5a", + "text": "Extended the Job API for alpha version of `BackoffLimitPerIndex`.", + "markdown": "Extended the Job API for alpha version of `BackoffLimitPerIndex`. ([#119294](https://github.com/kubernetes/kubernetes/pull/119294), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3850-backoff-limits-per-index-for-indexed-jobs", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119294", + "pr_number": 119294, + "areas": [ + "code-generation" + ], + "kinds": [ + "documentation", + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "119301": { + "commit": "9892b5370450ff0b3d86f67e8e82d1545299c785", + "text": "Added `podReplacementPolicy` and terminating field to job api.", + "markdown": "Added `podReplacementPolicy` and terminating field to job api. ([#119301](https://github.com/kubernetes/kubernetes/pull/119301), [@kannon92](https://github.com/kannon92))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3939-allow-replacement-when-fully-terminated.", + "type": "KEP" + } + ], + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119301", + "pr_number": 119301, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "119311": { + "commit": "d5a653fd8791f25f44109e4626c1b34a7eec4164", + "text": "Added `apiserver_admission_match_condition_evaluation_seconds` and `apiserver_admission_match_condition_exclusions_total` metrics.", + "markdown": "Added `apiserver_admission_match_condition_evaluation_seconds` and `apiserver_admission_match_condition_exclusions_total` metrics. ([#119311](https://github.com/kubernetes/kubernetes/pull/119311), [@ivelichkovich](https://github.com/ivelichkovich))", + "documentation": [ + { + "description": "[KEP-3716]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3716-admission-webhook-match-conditions", + "type": "KEP" + } + ], + "author": "ivelichkovich", + "author_url": "https://github.com/ivelichkovich", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119311", + "pr_number": 119311, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "119324": { + "commit": "5c96e5321e6b4c4875cdbc61c121c27e3e1f189d", + "text": "Kubernetes is now built with Go `1.20.6`.", + "markdown": "Kubernetes is now built with Go `1.20.6`. ([#119324](https://github.com/kubernetes/kubernetes/pull/119324), [@xmudrii](https://github.com/xmudrii))", + "author": "xmudrii", + "author_url": "https://github.com/xmudrii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119324", + "pr_number": 119324, + "areas": [ + "test", + "cloudprovider", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing", + "release", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "119328": { + "commit": "1b7fffa0a1c620c7c5a5fefd82df47884e60c0c1", + "text": "Added a new feature gate, `SchedulerQueueingHints` (enabled by default).\nThe new feature gate activates a framework for fine-grained filtering of events related to scheduler plugins.\nIn this release, no default scheduling plugins make use of the hinting framework, so you should not expect any behavior changes.", + "markdown": "Added a new feature gate, `SchedulerQueueingHints` (enabled by default).\n The new feature gate activates a framework for fine-grained filtering of events related to scheduler plugins.\n In this release, no default scheduling plugins make use of the hinting framework, so you should not expect any behavior changes. ([#119328](https://github.com/kubernetes/kubernetes/pull/119328), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119328", + "pr_number": 119328, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "119351": { + "commit": "16534deedf1e3f7301b20041fafe15ff7f178904", + "text": "kubeadm: the limitation that the `ignorePreflightErrors` field can not be set to `all` in kubeadm config file has been removed.", + "markdown": "Kubeadm: the limitation that the `ignorePreflightErrors` field can not be set to `all` in kubeadm config file has been removed. ([#119351](https://github.com/kubernetes/kubernetes/pull/119351), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119351", + "pr_number": 119351, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "119365": { + "commit": "9946ea9fd851fb1cd2148b746077d9f89c27e074", + "text": "Bumped `distroless-iptables` to 0.2.6 based on Go 1.20.6.", + "markdown": "Bumped `distroless-iptables` to 0.2.6 based on Go 1.20.6. ([#119365](https://github.com/kubernetes/kubernetes/pull/119365), [@xmudrii](https://github.com/xmudrii))", + "author": "xmudrii", + "author_url": "https://github.com/xmudrii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119365", + "pr_number": 119365, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + }, + "119374": { + "commit": "ff90c1cc73e5dcebec574e341ee32f11851d050a", + "text": "The `IPTablesOwnershipCleanup` feature (KEP-3178) is now GA; kubelet no longer\ncreates the `KUBE-MARK-DROP` chain (which has been unused for several releases)\nor the `KUBE-MARK-MASQ` chain (which is now only created by kube-proxy).", + "markdown": "The `IPTablesOwnershipCleanup` feature (KEP-3178) is now GA; kubelet no longer\n creates the `KUBE-MARK-DROP` chain (which has been unused for several releases)\n or the `KUBE-MARK-MASQ` chain (which is now only created by kube-proxy). ([#119374](https://github.com/kubernetes/kubernetes/pull/119374), [@danwinship](https://github.com/danwinship))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3178", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119374", + "pr_number": 119374, + "areas": [ + "kubelet", + "kube-proxy", + "code-generation", + "ipvs" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "node", + "api-machinery" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "119380": { + "commit": "704970877e827908fc231d76f545feaa376bb6ed", + "text": "Graduated `AdmissionWebhookMatchCondition` feature to beta.", + "markdown": "Graduated `AdmissionWebhookMatchCondition` feature to beta. ([#119380](https://github.com/kubernetes/kubernetes/pull/119380), [@a-hilaly](https://github.com/a-hilaly))", + "author": "a-hilaly", + "author_url": "https://github.com/a-hilaly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119380", + "pr_number": 119380, + "areas": [ + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "119390": { + "commit": "8c1dc65da905d0c8435659424169846ba2fb2d63", + "text": "Implemented alpha support for a drop-in kubelet configuration directory.", + "markdown": "Implemented alpha support for a drop-in kubelet configuration directory. ([#119390](https://github.com/kubernetes/kubernetes/pull/119390), [@sohankunkerkar](https://github.com/sohankunkerkar))", + "documentation": [ + { + "description": "[KEP-3983](", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/3983-drop-in-configuration/README.md)", + "type": "KEP" + } + ], + "author": "sohankunkerkar", + "author_url": "https://github.com/sohankunkerkar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119390", + "pr_number": 119390, + "areas": [ + "kubelet", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "119409": { + "commit": "b53830590fc2eff8a219d7bc225091878263ebe6", + "text": "Promoted the feature gate `ValidtaingAdmissionPolicy` to beta, and it is turned off by default.", + "markdown": "Promoted the feature gate `ValidtaingAdmissionPolicy` to beta, and it is turned off by default. ([#119409](https://github.com/kubernetes/kubernetes/pull/119409), [@alexzielenski](https://github.com/alexzielenski))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/cici37/enhancements/blob/d83909e5f8683f38ef38dc3276c2d9f667d65290/keps/sig-api-machinery/3488-cel-admission-control/README.md", + "type": "external" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119409", + "pr_number": 119409, + "areas": [ + "test", + "apiserver", + "release-eng", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "auth", + "apps", + "instrumentation", + "testing", + "release" + ], + "duplicate": true, + "duplicate_kind": true + }, + "119422": { + "commit": "4b6c340c1396194135221c88b86314437fc86c6d", + "text": "Switched back to `debian-base` instead of distroless for conformance image.", + "markdown": "Switched back to `debian-base` instead of distroless for conformance image. ([#119422](https://github.com/kubernetes/kubernetes/pull/119422), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119422", + "pr_number": 119422, + "areas": [ + "test", + "conformance" + ], + "kinds": [ + "failing-test" + ], + "sigs": [ + "testing", + "release", + "architecture" + ], + "duplicate": true + }, + "119434": { + "commit": "c7f79bc2683f6cdedf0081aff259474c881ed166", + "text": "Fixed computing backoff delay when using Job pod failure policy, by including in the backoff delay calculation pod failures ignored from the backoffLimit counter.", + "markdown": "Fixed computing backoff delay when using Job pod failure policy, by including in the backoff delay calculation pod failures ignored from the backoffLimit counter. ([#119434](https://github.com/kubernetes/kubernetes/pull/119434), [@mimowo](https://github.com/mimowo))", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119434", + "pr_number": 119434, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "94021": { + "commit": "f51dad586ddc1a02b4fcc4e3974092ad78b630a7", + "text": "Supported specifying a custom retry period for cloud `load-balancer` operations.", + "markdown": "Supported specifying a custom retry period for cloud `load-balancer` operations. ([#94021](https://github.com/kubernetes/kubernetes/pull/94021), [@timoreimann](https://github.com/timoreimann))", + "author": "timoreimann", + "author_url": "https://github.com/timoreimann", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/94021", + "pr_number": 94021, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "cloud-provider" + ], + "feature": true, + "duplicate": true + } } \ No newline at end of file diff --git a/releases/release-1.28/release-notes/release-notes-draft.md b/releases/release-1.28/release-notes/release-notes-draft.md index dca9e09833b..e5e1b01785e 100644 --- a/releases/release-1.28/release-notes/release-notes-draft.md +++ b/releases/release-1.28/release-notes/release-notes-draft.md @@ -1,445 +1,445 @@ -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- Action required for the custom scheduler plugin developers. - Here's the breaking change in `EnqueueExtension` in the scheduling framework. - The `EventsToRegister` in `EnqueueExtension` changed the return value from `ClusterEvent` to `ClusterEventWithHint`. `ClusterEventWithHint` allows each plugin to filter out more useless events via the callback function named `QueueingHintFn`. - When the scheduling queue receives a cluster event, before moving each Pod from unschedulable pod pool to activeQ/backoffQ, it will call QueueingHintFn of plugins that rejected each Pod in the previous scheduling cycle. - Depending on the value returned from QueueingHintFn, the scheduling queue changes how it queues each Pod: - - if more than one QueueingHintFn returns QueueImmediately, it queues Pod to activeQ. - - If no QueueingHintFn returns QueueImmediately and more than one plugin returns QueueAfterBackoff, it queues Pod to backoffQ if Pod is backing off, or to activeQ if Pod's backoff has already finished. - - If all QueueingHintFn return QueueSkip, it puts this pod back to the unschedulable pod pool - - Having appropriate QueueingHintFn contributes to reducing useless retries and thus improves the overall scheduler's performance. - - **How can I migrate?** - - For backward compatibility, nil `QueueingHintFn` is treated as always returning QueueAfterBackoff. - So, if you want to just keep the existing behavior, you can register `ClusterEventWithHint` with no `QueueingHintFn` in it. - But, registering appropriate `QueueingHintFn` is, of course, better from a scheduling performance perspective. ([#118551](https://github.com/kubernetes/kubernetes/pull/118551), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling, Storage and Testing] - - CephFS volume plugin (`kubernetes.io/cephfs`) has been deprecated in this release and will be removed in a subsequent release. The alternative is to use the CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes cluster. ([#118143](https://github.com/kubernetes/kubernetes/pull/118143), [@humblec](https://github.com/humblec)) - - Deprecated support for CSI migration of `Ceph RBD volumes`. Users who were relying on Kubernetes' ability - to migrate to an out-of-tree storage driver should complete that migration before the support for it is removed. ([#118303](https://github.com/kubernetes/kubernetes/pull/118303), [@carlory](https://github.com/carlory)) - - RBD volume plugin (`kubernetes.io/rbd`) has been deprecated in this release - and will be removed in a subsequent release. Alternative is to use RBD CSI driver - (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. ([#118552](https://github.com/kubernetes/kubernetes/pull/118552), [@humblec](https://github.com/humblec)) - -## Changes by Kind - -### Deprecation - -- Changed `kubectl version` default output to be identical to what `kubectl version --short` printed, - and removed `--short` flag entirely. ([#116720](https://github.com/kubernetes/kubernetes/pull/116720), [@soltysh](https://github.com/soltysh)) -- Kube-controller-manager deprecate `--volume-host-cidr-denylist` and `--volume-host-allow-local-loopback` flags. ([#118128](https://github.com/kubernetes/kubernetes/pull/118128), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Network, Node, Storage and Testing] -- Kubelet: The `--azure-container-registry-config` flag has been deprecated and will be removed in a future release, please use `--image-credential-provider-config` and `--image-credential-provider-bin-dir` to setup acr credential provider instead. ([#118596](https://github.com/kubernetes/kubernetes/pull/118596), [@SataQiu](https://github.com/SataQiu)) [SIG Node] -- Removed tracking annotation from validation and defaulting. ([#117633](https://github.com/kubernetes/kubernetes/pull/117633), [@kannon92](https://github.com/kannon92)) -- Removed withdrawn feature `NetworkPolicyStatus`. ([#115843](https://github.com/kubernetes/kubernetes/pull/115843), [@rikatz](https://github.com/rikatz)) -- The deprecated flag `--lock-object-namespace` and `--lock-object-name` have been removed from kube-scheduler. Please use `--leader-elect-resource-namespace` and `--leader-elect-resource-name` or ComponentConfig instead to configure those parameters. ([#119130](https://github.com/kubernetes/kubernetes/pull/119130), [@SataQiu](https://github.com/SataQiu)) [SIG Scheduling] -- `KMSv1` is deprecated and will only receive security updates going forward. Use `KMSv2` instead. In a future release, Set `--feature-gates=KMSv1=true` to use the deprecated KMSv1 feature. ([#119007](https://github.com/kubernetes/kubernetes/pull/119007), [@aramase](https://github.com/aramase)) - -### API Change - -- A CDIDevice field is included in the Device Plugin's `ContainerAllocateResponse`. This field maps to the CDIDevice field in the CRI protocol. ([#118254](https://github.com/kubernetes/kubernetes/pull/118254), [@elezar](https://github.com/elezar)) [SIG Node and Testing] -- ACTION_REQUIRED - When an Indexed Job has a number of completions higher than 10^5 and parallelism higher than 10^4, and a big number of Indexes fail, Kubernetes might not be able to track the termination of the Job. Kubernetes now emits a warning, at Job creation, when the Job manifest exceeds both of these limits. ([#118420](https://github.com/kubernetes/kubernetes/pull/118420), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps] -- Added `ServedVersions` field to `StorageVersion` API. ([#118386](https://github.com/kubernetes/kubernetes/pull/118386), [@Richabanker](https://github.com/Richabanker)) -- Added `IP mode` field to loadbalancer status ingress. ([#118895](https://github.com/kubernetes/kubernetes/pull/118895), [@RyanAoh](https://github.com/RyanAoh)) -- Added `podReplacementPolicy` and terminating field to job api. ([#119301](https://github.com/kubernetes/kubernetes/pull/119301), [@kannon92](https://github.com/kannon92)) -- Added a new `namespaceParamRef` field to `admissionregistration.k8s.io/v1alpha1.ValidatingAdmissionPolicy`. ([#119215](https://github.com/kubernetes/kubernetes/pull/119215), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery and Testing] -- Added a warning that TLS 1.3 ciphers are not configurable. ([#115399](https://github.com/kubernetes/kubernetes/pull/115399), [@3u13r](https://github.com/3u13r)) [SIG API Machinery and Node] -- Added error handling for seccomp localhost configurations that do not properly set a `localhostProfile`. ([#117020](https://github.com/kubernetes/kubernetes/pull/117020), [@cji](https://github.com/cji)) -- Added fields `reason` and `fieldPath` into CRD validation rules to allow users to specify reason and field path when validation failed. ([#118041](https://github.com/kubernetes/kubernetes/pull/118041), [@cici37](https://github.com/cici37)) [SIG API Machinery] -- Added namespace access support to the CEL expressions of ValidatingAdmissionPolicy via a `namespaceObject` - variable with expressions. ([#118267](https://github.com/kubernetes/kubernetes/pull/118267), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing] -- Added new `CRDValidationRatcheting` alpha feature. During a PATCH or UPDATE Validation Ratcheting discards errors thrown by unchanged portions of the resource from most OpenAPI schema validations. ([#118990](https://github.com/kubernetes/kubernetes/pull/118990), [@alexzielenski](https://github.com/alexzielenski)) -- Added new annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` to Job objects scheduled from CronJobs. ([#118137](https://github.com/kubernetes/kubernetes/pull/118137), [@helayoty](https://github.com/helayoty)) -- Added new config option `delayCacheUntilActive` to `KubeSchedulerConfiguration` that can provide a tradeoff between memory efficiency and scheduling speed when their leadership is updated in `kube-scheduler` ([#115754](https://github.com/kubernetes/kubernetes/pull/115754), [@linxiulei](https://github.com/linxiulei)) [SIG API Machinery and Scheduling] -- Changed how KMS v2 encryption at rest can generate data encryption keys. - When you enable the `KMSv2KDF` feature gate (off by default), KMS v2 uses a key derivation function to generate single use data encryption keys from a secret seed combined with some random data. This eliminates the need for a counter based nonce while avoiding nonce collision concerns associated with AES-GCM's 12 byte nonce. ([#118828](https://github.com/kubernetes/kubernetes/pull/118828), [@enj](https://github.com/enj)) -- Exposed `rest.DefaultServerUrlFor` function. ([#118055](https://github.com/kubernetes/kubernetes/pull/118055), [@timofurrer](https://github.com/timofurrer)) -- Extended the Job API for alpha version of `BackoffLimitPerIndex`. ([#119294](https://github.com/kubernetes/kubernetes/pull/119294), [@mimowo](https://github.com/mimowo)) -- Graduated `AdmissionWebhookMatchCondition` feature to beta. ([#119380](https://github.com/kubernetes/kubernetes/pull/119380), [@a-hilaly](https://github.com/a-hilaly)) -- If using cgroups v2, then the cgroup aware OOM killer will be enabled for container cgroups via `memory.oom.group` . This causes processes within the cgroup to be treated as a unit and killed simultaneously in the event of an OOM kill on any process in the cgroup. ([#117793](https://github.com/kubernetes/kubernetes/pull/117793), [@tzneal](https://github.com/tzneal)) [SIG Apps, Node and Testing] -- In the API Priority and Fairness feature, priority levels that are exempt from limitation can now be given a nominal and a lendable concurrency and their dispatching borrows from the concurrency limits of the other priority levels. For details see https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1040-priority-and-fairness#dispatching . ([#118782](https://github.com/kubernetes/kubernetes/pull/118782), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] -- Indexed Job pods now have the pod completion index set as a pod label. ([#118883](https://github.com/kubernetes/kubernetes/pull/118883), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps] -- Kube-proxy: added `--logging-format` flag to support structured logging. ([#117800](https://github.com/kubernetes/kubernetes/pull/117800), [@cyclinder](https://github.com/cyclinder)) -- NodeVolumeLimits implement the `PreFilter` extension point for skipping the Filter phase if the Pod doesn't use volumes with limits. ([#115398](https://github.com/kubernetes/kubernetes/pull/115398), [@tangwz](https://github.com/tangwz)) [SIG Scheduling] -- PersistentVolumes have a new `LastPhaseTransitionTime` field which holds a timestamp of when the volume last transitioned its phase. ([#116469](https://github.com/kubernetes/kubernetes/pull/116469), [@RomanBednar](https://github.com/RomanBednar)) -- Pods which set `hostNetwork: true` and declare ports, get the `hostPort` field set automatically. Previously this would happen in the PodTemplate of a Deployment, DaemonSet or other workload API. Now `hostPort` will only be set when an actual Pod is being created. If this presents a problem, setting the feature gate "DefaultHostNetworkHostPortsInPodTemplates" to true will revert this behavior. Please file a kubernetes bug if you need to do this. ([#117696](https://github.com/kubernetes/kubernetes/pull/117696), [@thockin](https://github.com/thockin)) [SIG Apps] -- Promoted API groups `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` to `v1beta1`. ([#118644](https://github.com/kubernetes/kubernetes/pull/118644), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery, Apps and Testing] -- Promoted the feature gate `ValidtaingAdmissionPolicy` to beta, and it is turned off by default. ([#119409](https://github.com/kubernetes/kubernetes/pull/119409), [@alexzielenski](https://github.com/alexzielenski)) -- Registered_metric_total, disabled_metric_total, hidden_metric_total & kubernetes_feature_enabled are promoted to `BETA` stability. ([#119264](https://github.com/kubernetes/kubernetes/pull/119264), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Architecture, Cluster Lifecycle and Instrumentation] -- Removed `resizeStatus` enum from `pvc.Status` and replaced with `AllocatedResourceStatus`. ([#116335](https://github.com/kubernetes/kubernetes/pull/116335), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Apps, Auth, Node, Storage and Testing] -- Removed `WindowsHostProcessContainers` feature-gate. ([#117570](https://github.com/kubernetes/kubernetes/pull/117570), [@marosset](https://github.com/marosset)) [SIG API Machinery, Apps, Auth, Node and Windows] -- Revised the comment about the feature-gate level for `PodFailurePolicy` from alpha to beta. ([#117802](https://github.com/kubernetes/kubernetes/pull/117802), [@kerthcet](https://github.com/kerthcet)) [SIG API Machinery and Apps] -- StatefulSet pods now have the pod index set as a pod label `statefulset.kubernetes.io/pod-index`. ([#119232](https://github.com/kubernetes/kubernetes/pull/119232), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps] -- Support for proxying a request to a peer kube-apiserver if the local apiserver is not able to serve it due to version skew or in the case the requested api is disabled on the local apiserver ([#117740](https://github.com/kubernetes/kubernetes/pull/117740), [@Richabanker](https://github.com/Richabanker)) [SIG API Machinery, Apps, Auth, Cloud Provider, Network, Node and Testing] -- Supported `BackoffLimitPerIndex` in Jobs. ([#118009](https://github.com/kubernetes/kubernetes/pull/118009), [@mimowo](https://github.com/mimowo)) -- The `IPTablesOwnershipCleanup` feature (KEP-3178) is now GA; kubelet no longer - creates the `KUBE-MARK-DROP` chain (which has been unused for several releases) - or the `KUBE-MARK-MASQ` chain (which is now only created by kube-proxy). ([#119374](https://github.com/kubernetes/kubernetes/pull/119374), [@danwinship](https://github.com/danwinship)) -- The `SelfSubjectReview` API is promoted to `authentication.k8s.io/v1` and the `kubectl auth whoami` command is GA. ([#117713](https://github.com/kubernetes/kubernetes/pull/117713), [@nabokihms](https://github.com/nabokihms)) [SIG API Machinery, Architecture, Auth, CLI and Testing] -- The names of ResourceClaims generated from ResourceClaimTemplate are now generated. The base name is still `<pod>-<claim name>`, but a random suffix will avoid name collisions. ([#117351](https://github.com/kubernetes/kubernetes/pull/117351), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing] -- The new feature gate "SidecarContainers" is now available. This feature introduces sidecar containers, a new type of init container that starts before other containers but remains running for the full duration of the pod's lifecycle and will not block pod termination. ([#116429](https://github.com/kubernetes/kubernetes/pull/116429), [@gjkim42](https://github.com/gjkim42)) [SIG API Machinery, Apps, Node, Scheduling and Testing] -- Updated the comment about the feature-gate level for `PodFailurePolicy` from alpha to beta ([#118278](https://github.com/kubernetes/kubernetes/pull/118278), [@mimowo](https://github.com/mimowo)) -- `client-go`: Improved memory use of reflector caches when watching large numbers - of objects which do not change frequently. ([#113362](https://github.com/kubernetes/kubernetes/pull/113362), [@sxllwx](https://github.com/sxllwx)) -- `component-base/logs` is now stricter about not applying configurations multiple - times and will return an error when that is attempted. Can be overridden by binaries - which need to do that. ([#117108](https://github.com/kubernetes/kubernetes/pull/117108), [@pohly](https://github.com/pohly)) -- `kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate - is now available as alpha (off by default). When enabled, the `legacy-service-account-token-cleaner` - controller loop removes service account token secrets that have not been used - in the time specified by `--legacy-service-account-token-clean-up-period` (defaulting - to one year), **and are** referenced from the `.secrets` list of a ServiceAccount - object, **and are not** referenced from pods. ([#115554](https://github.com/kubernetes/kubernetes/pull/115554), [@yt2985](https://github.com/yt2985)) -- `kube-scheduler` component config (KubeSchedulerConfiguration) `kubescheduler.config.k8s.io/v1beta2` - is removed in `v1.28`. Migrate `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`. ([#117649](https://github.com/kubernetes/kubernetes/pull/117649), [@SataQiu](https://github.com/SataQiu)) - -### Feature - -- A ValidatingAdmissionPolicy now has its `messageExpression` field checked against resolved types. ([#119209](https://github.com/kubernetes/kubernetes/pull/119209), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery] -- Added '--concurrent-cron-job-syncs' flag for `kube-controller-manager` to set the number of workers for cron job controller. ([#117550](https://github.com/kubernetes/kubernetes/pull/117550), [@borgerli](https://github.com/borgerli)) -- Added '--concurrent-job-syncs' flag for `kube-controller-manager` to set the number of job controller workers. ([#117138](https://github.com/kubernetes/kubernetes/pull/117138), [@tosi3k](https://github.com/tosi3k)) -- Added `--concurrency` flag to configure the concurrency of `kubectl diff` execution, defaults to 1. ([#118810](https://github.com/kubernetes/kubernetes/pull/118810), [@brancz](https://github.com/brancz)) -- Added `ConsistentListFromCache` feature gate that allows apiserver to serve consistent lists from cache. ([#118508](https://github.com/kubernetes/kubernetes/pull/118508), [@serathius](https://github.com/serathius)) -- Added `DisruptionTarget` condition to the pod preempted by kubelet to make room for a critical pod. ([#117586](https://github.com/kubernetes/kubernetes/pull/117586), [@mimowo](https://github.com/mimowo)) -- Added `apiserver_admission_match_condition_evaluation_seconds` and `apiserver_admission_match_condition_exclusions_total` metrics. ([#119311](https://github.com/kubernetes/kubernetes/pull/119311), [@ivelichkovich](https://github.com/ivelichkovich)) -- Added a container image for `kubectl` at `registry.k8s.io/kubectl` across the same architectures as other images (linux/amd64 linux/arm64 linux/s390x linux/ppc64le) ([#116672](https://github.com/kubernetes/kubernetes/pull/116672), [@dims](https://github.com/dims)) [SIG Architecture and Release] -- Added a new command line argument `--interactive` to kubectl. The new command line argument lets a user confirm deletion requests per resource interactively. ([#114530](https://github.com/kubernetes/kubernetes/pull/114530), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] -- Added a new feature gate, `SchedulerQueueingHints` (enabled by default). - The new feature gate activates a framework for fine-grained filtering of events related to scheduler plugins. - In this release, no default scheduling plugins make use of the hinting framework, so you should not expect any behavior changes. ([#119328](https://github.com/kubernetes/kubernetes/pull/119328), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] -- Added full cgroup v2 swap support for both `Limited` and `Unlimited` swap. - - When `LimitedSwap` is enabled the swap limit would be automatically calculated for - Burstable QoS pods. For Best-Effort/Guaranteed QoS pods, swap would be disabled. - - Containers with memory requests equal to their memory limits also won't have - swap access, and it is a way to opt-out of swap for a single container. - - The formula for the swap limit for Burstable QoS pods is: - `(<memory-request>/<node-memory-capacity>)*<node-swap-capacity>`. - - Support for `cgroup v1` is removed. ([#118764](https://github.com/kubernetes/kubernetes/pull/118764), [@iholder101](https://github.com/iholder101)) -- Added handling for pods in podgc for `PodReplacementPolicy` or `PodDisruption`. ([#118772](https://github.com/kubernetes/kubernetes/pull/118772), [@kannon92](https://github.com/kannon92)) -- Added reason to metric `attachdetach_controller_forced_detaches` in the attach detach controller. ([#119185](https://github.com/kubernetes/kubernetes/pull/119185), [@xing-yang](https://github.com/xing-yang)) -- Added support for pod `hostNetwork` field selector ([#110477](https://github.com/kubernetes/kubernetes/pull/110477), [@halfcrazy](https://github.com/halfcrazy)) [SIG Apps and Node] -- Added swap to stats to Summary API and Prometheus endpoints (stats/summary and /metrics/resource). ([#118865](https://github.com/kubernetes/kubernetes/pull/118865), [@iholder101](https://github.com/iholder101)) -- Added the implementation for `PodRecreationPolicy` to wait for the creation of pods once the existing ones are fully terminated. ([#117015](https://github.com/kubernetes/kubernetes/pull/117015), [@kannon92](https://github.com/kannon92)) -- Allow to monitor client-go DNS resolver latencies via `rest_client_dns_resolution_duration_seconds` Prometheus metric. ([#115357](https://github.com/kubernetes/kubernetes/pull/115357), [@mfojtik](https://github.com/mfojtik)) -- Apiserver adds two new metrics `etcd_requests_total` and `etcd_request_errors_total` that allow users to monitor requests to etcd storage, split by operation and resource type. ([#117222](https://github.com/kubernetes/kubernetes/pull/117222), [@iyear](https://github.com/iyear)) [SIG API Machinery] -- Bumped `distroless-iptables` to 0.2.6 based on Go 1.20.6. ([#119365](https://github.com/kubernetes/kubernetes/pull/119365), [@xmudrii](https://github.com/xmudrii)) -- Bumped metrics-server to `v0.6.3`. ([#117120](https://github.com/kubernetes/kubernetes/pull/117120), [@dgrisonnet](https://github.com/dgrisonnet)) -- CEL authorizer checks no longer raise runtime errors. Calls to "check" will always return a decision object and the authorization error (if any) can be accessed within expressions using the new decision methods "errored" and "error". ([#118804](https://github.com/kubernetes/kubernetes/pull/118804), [@benluddy](https://github.com/benluddy)) [SIG API Machinery] -- CRI: exposed commit memory bytes in container stats specific to Windows ([#119238](https://github.com/kubernetes/kubernetes/pull/119238), [@kiashok](https://github.com/kiashok)) -- Client-go now exposes two new metrics to monitor the client-go logic that - generate http.Transports for the clients. - - - `rest_client_transport_cache_entries` is a gauge metric - with the number of existing entries in the internal cache - - - `rest_client_transport_create_calls_total` is a counter - that increments each time a new transport is created, storing - the result of the operation needed to generate it: hit, miss - or uncacheable. ([#117295](https://github.com/kubernetes/kubernetes/pull/117295), [@aojea](https://github.com/aojea)) -- Cloud controller manager's node controller now emits timing metrics for initial `Node` synchronization. These metrics measure the delay between the creation of a new `Node` and the node controller's initial management actions, such as removing the cloud provider taint. These metrics should be consulted when setting cloud controller manager's `--concurrent-node-syncs` flag. ([#119241](https://github.com/kubernetes/kubernetes/pull/119241), [@cartermckinnon](https://github.com/cartermckinnon)) [SIG Cloud Provider and Instrumentation] -- Dynamic resource allocation: when a claim uses "wait for first consumer" allocation (the default), then it will now get deallocated after it was used by a pod. That ensures that the next pod isn't affected by previous scheduling decision and that resources are not kept allocated unless really needed. If keeping a claim allocated is desired, use "immediate allocation." ([#118936](https://github.com/kubernetes/kubernetes/pull/118936), [@pohly](https://github.com/pohly)) -- Enabled use of pods with volumes and user namespaces. The feature gate was renamed from `UserNamespacesStatelessPodsSupport` to `UserNamespacesSupport`. ([#118691](https://github.com/kubernetes/kubernetes/pull/118691), [@giuseppe](https://github.com/giuseppe)) -- External credential provider plugins will now have their standard error output logged by kubelet upon failures. ([#117448](https://github.com/kubernetes/kubernetes/pull/117448), [@cartermckinnon](https://github.com/cartermckinnon)) -- Faster scheduling when `ResourceClaims` are involved. ([#119078](https://github.com/kubernetes/kubernetes/pull/119078), [@pohly](https://github.com/pohly)) -- Fixed the alpha `CloudDualStackNodeIPs` feature. ([#118329](https://github.com/kubernetes/kubernetes/pull/118329), [@danwinship](https://github.com/danwinship)) -- Graduated the `LegacyServiceAccountTokenTracking` feature gate to GA. The usage of auto-generated secret-based service account token now produces warnings, and relevant Secrets are labeled with a last-used timestamp (label key `kubernetes.io/legacy-token-last-used`). ([#117591](https://github.com/kubernetes/kubernetes/pull/117591), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth and Testing] -- Graduated the `ProbeTerminationGracePeriod` feature gate to GA. ([#114307](https://github.com/kubernetes/kubernetes/pull/114307), [@rphillips](https://github.com/rphillips)) -- Hashing of KeyID in Logs - - This release adds a feature to hash the `KeyID` values in the logs. The `KeyID` values are sensitive information that should not be exposed in plain text in the logs. By hashing the `KeyID` values, we can protect the confidentiality of the data while still being able to log the necessary information. ([#118988](https://github.com/kubernetes/kubernetes/pull/118988), [@nilekhc](https://github.com/nilekhc)) [SIG API Machinery, Auth and Testing] -- Implemented alpha support for a drop-in kubelet configuration directory. ([#119390](https://github.com/kubernetes/kubernetes/pull/119390), [@sohankunkerkar](https://github.com/sohankunkerkar)) -- In the course of admitting a single request, the ValidatingAdmissionPolicy plugin will perform no more than one authorization check per unique authorizer expression. All evaluations of identical authorizer expressions will produce the same decision. ([#116443](https://github.com/kubernetes/kubernetes/pull/116443), [@benluddy](https://github.com/benluddy)) [SIG API Machinery and Testing] -- Introduce support for CEL optionals (see [CEL spec proposal 246](https://github.com/google/cel-spec/wiki/proposal-246)). - This feature will not be fully enabled until a future Kubernetes release (likely to be v1.29), but is added in v1.28 to enable - safe rollback on downgrade. ([#118339](https://github.com/kubernetes/kubernetes/pull/118339), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, Cloud Provider and Testing] -- Kube-controller-manager: the dynamic resource controller steps in when a pod got created such that the scheduler ignores it (i.e. spec.nodeName is set) and then takes care of triggering delayed resource claim allocation and/or reserving a claim for the pod. ([#118209](https://github.com/kubernetes/kubernetes/pull/118209), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node and Testing] -- Kube-proxy handles Terminating EndpointSlices conditions and enables zero downtime deployments for Services with ExternalTrafficPolicy=Local author: @andrewsykim ([#117718](https://github.com/kubernetes/kubernetes/pull/117718), [@aojea](https://github.com/aojea)) [SIG Network, Testing and Windows] -- Kube-proxy service health returns http header `X-Load-Balancing-Endpoint-Weight` with number of local endpoints. The same information is still available in response body JSON `payload.LocalEndpoints`. ([#118999](https://github.com/kubernetes/kubernetes/pull/118999), [@cezarygerard](https://github.com/cezarygerard)) -- Kubelet: plugins for dynamic resource allocation may use the `v1alpha3` API instead of v1alpha2 if they want to do prepare/unprepare operations in batches. ([#119012](https://github.com/kubernetes/kubernetes/pull/119012), [@pohly](https://github.com/pohly)) -- Kubelet: security of dynamic resource allocation was enhanced by limiting node access to those objects that are needed on the node. ([#116254](https://github.com/kubernetes/kubernetes/pull/116254), [@pohly](https://github.com/pohly)) [SIG Auth and Testing] -- Kubelet: un-deprecated `--provider-id` flag. ([#116530](https://github.com/kubernetes/kubernetes/pull/116530), [@pacoxu](https://github.com/pacoxu)) -- Kubernetes is now built with Go `1.20.4`. ([#117744](https://github.com/kubernetes/kubernetes/pull/117744), [@xmudrii](https://github.com/xmudrii)) [SIG Release and Testing] -- Kubernetes is now built with Go `1.20.5`. ([#118507](https://github.com/kubernetes/kubernetes/pull/118507), [@jeremyrickard](https://github.com/jeremyrickard)) -- Kubernetes is now built with Go `1.20.6`. ([#119324](https://github.com/kubernetes/kubernetes/pull/119324), [@xmudrii](https://github.com/xmudrii)) -- Metric `scheduler_scheduler_goroutines` is removed. Use `scheduler_goroutines` instead. ([#117727](https://github.com/kubernetes/kubernetes/pull/117727), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling] -- Migrated `pkg/controller/endpoint` to contextual logging. ([#116755](https://github.com/kubernetes/kubernetes/pull/116755), [@my-git9](https://github.com/my-git9)) -- Migrated `pkg/scheduler/framework/preemption` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116835](https://github.com/kubernetes/kubernetes/pull/116835), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Migrated `pod-security-admission` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#114471](https://github.com/kubernetes/kubernetes/pull/114471), [@Namanl2001](https://github.com/Namanl2001)) [SIG Apps and Auth] -- Migrated controller functions to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116930](https://github.com/kubernetes/kubernetes/pull/116930), [@fatsheep9146](https://github.com/fatsheep9146)) [SIG API Machinery, Apps, Network, Node, Storage and Testing] -- Migrated the Job controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116910](https://github.com/kubernetes/kubernetes/pull/116910), [@fatsheep9146](https://github.com/fatsheep9146)) [SIG API Machinery, Apps and Testing] -- Migrated the `EndpointSlice` and `EndpointSliceMirroring` controllers (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#115295](https://github.com/kubernetes/kubernetes/pull/115295), [@Namanl2001](https://github.com/Namanl2001)) [SIG API Machinery, Apps, Network and Testing] -- Migrated the certificate controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113994](https://github.com/kubernetes/kubernetes/pull/113994), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Apps, Auth, Instrumentation and Testing] -- Migrated the noderesources scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116748](https://github.com/kubernetes/kubernetes/pull/116748), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Migrated the podtopologyspread scheduler plugins to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116797](https://github.com/kubernetes/kubernetes/pull/116797), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling] -- Moved `non-graceful node` shutdown to GA. ([#118228](https://github.com/kubernetes/kubernetes/pull/118228), [@carlory](https://github.com/carlory)) -- New CEL Library functions to support Kubernetes Quantities. ([#118803](https://github.com/kubernetes/kubernetes/pull/118803), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery] -- New Metrics Added for Encryption Configuration Controller - - This release adds new metrics to the Encryption Configuration Controller to help monitor the automatic reloading of encryption configuration. The new metrics include: - - - `apiserver_encryption_config_controller_automatic_reload_failures_total`: Total number of failed automatic reloads of encryption configuration. - - `apiserver_encryption_config_controller_automatic_reload_success_total`: Total number of successful automatic reloads of encryption configuration. - - `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`: Timestamp of the last successful or failed automatic reload of encryption configuration. - - These metrics can be used to monitor the health of the Encryption Configuration Controller and to troubleshoot any issues that may arise during automatic reloading of encryption configuration. ([#119008](https://github.com/kubernetes/kubernetes/pull/119008), [@nilekhc](https://github.com/nilekhc)) -- New staging repo has been created for the `EndpointSlice` reconciler. ([#118953](https://github.com/kubernetes/kubernetes/pull/118953), [@mskrocki](https://github.com/mskrocki)) -- Promoted `ServiceNodePortStaticSubrange` feature gate to beta, and it will be enabled by default. ([#117877](https://github.com/kubernetes/kubernetes/pull/117877), [@xuzhenglun](https://github.com/xuzhenglun)) -- Promoted the following apiserver flowcontrol metrics to Beta: - - - apiserver_flowcontrol_request_wait_duration_seconds - - apiserver_flowcontrol_current_executing_seats - - apiserver_flowcontrol_nominal_limit_seats - - apiserver_flowcontrol_rejected_requests_total - - apiserver_flowcontrol_dispatched_requests_total - - apiserver_flowcontrol_current_inqueue_requests - - apiserver_flowcontrol_current_executing_requests ([#119110](https://github.com/kubernetes/kubernetes/pull/119110), [@andrewsykim](https://github.com/andrewsykim)) -- Renamed `PodHasNetwork` to `PodReadyToStartContainers`. ([#117702](https://github.com/kubernetes/kubernetes/pull/117702), [@kannon92](https://github.com/kannon92)) [SIG Node and Testing] -- Replaced `apiserver_storage_db_total_size_in_bytes` with `apiserver_storage_size_bytes` metric. ([#118812](https://github.com/kubernetes/kubernetes/pull/118812), [@serathius](https://github.com/serathius)) -- Scheduler now waits for handlers to finish syncing before the scheduling cycles start. ([#116729](https://github.com/kubernetes/kubernetes/pull/116729), [@AxeZhan](https://github.com/AxeZhan)) -- Set metrics-server's metric-resolution to 15s. ([#117121](https://github.com/kubernetes/kubernetes/pull/117121), [@dgrisonnet](https://github.com/dgrisonnet)) [SIG Cloud Provider and Instrumentation] -- SubjectAccessReview requests sent to webhook authorizers now default `spec.resourceAttributes.version` to `*` if unset. ([#116937](https://github.com/kubernetes/kubernetes/pull/116937), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps and Auth] -- Supported specifying a custom retry period for cloud `load-balancer` operations. ([#94021](https://github.com/kubernetes/kubernetes/pull/94021), [@timoreimann](https://github.com/timoreimann)) -- The "value" part in the `wait --for=jsonpath='{expression}'[=value]` is now - optional. If the value is not provided i.e., the command looks like `wait --for=jsonpath='{expression}'` - then the wait condition is interpreted as matched when the expression returns - *any* single JSON value like object or a literal. ([#118160](https://github.com/kubernetes/kubernetes/pull/118160), [@minherz](https://github.com/minherz)) -- The Kubernetes apiserver now emits a warning message for Pods with a null labelSelector in podAffinity or topologySpreadConstraints. The null labelSelector means "match none". Using it in podAffinity or topologySpreadConstraint could lead to unintended behavior. ([#117025](https://github.com/kubernetes/kubernetes/pull/117025), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] -- The `AdvancedAuditing` feature gate that graduated to GA in `v1.12` (and was unconditionally - enabled) has been removed. ([#118763](https://github.com/kubernetes/kubernetes/pull/118763), [@Shubham82](https://github.com/Shubham82)) -- The `ExpandedDNSConfig` feature has graduated to GA. 'ExpandedDNSConfig' feature was locked to default value and will be removed in v1.30. If you were setting this feature gate explicitly, please remove it now. ([#116741](https://github.com/kubernetes/kubernetes/pull/116741), [@gjkim42](https://github.com/gjkim42)) [SIG Apps, Network and Node] -- The apiserver debug endpoint `/debug/api_priority_and_fairness/dump_requests` has been extended to dump executing requests as well as queued ones. A column for StartTime has been added to the returned table, with the queued requests having a StartTime of "0001-01-01T00:00:00Z". The executing requests have a RequestIndexInQueue of -1, and the QueueIndex is also -1 for priority levels without queues. ([#119009](https://github.com/kubernetes/kubernetes/pull/119009), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] -- The helping message of commands which have sub-commands is now clearer and more instructive. It will show the full command instead of `kubectl <command> --help ...` - - Changed `kubectl create secret --help` description. There will be a short introduction to the three secret types and clearer guidance on how to use the command. ([#117930](https://github.com/kubernetes/kubernetes/pull/117930), [@LronDC](https://github.com/LronDC)) -- The scheduler skips the `InterPodAffinity` Score plugin when nothing to do with the Pod. - It will affect some metrics values related to the InterPodAffinity Score plugin. ([#117794](https://github.com/kubernetes/kubernetes/pull/117794), [@utam0k](https://github.com/utam0k)) [SIG Scheduling] -- The scheduler skips the `PodTopologySpread` Filter plugin if no spread constraints. - It will affect some metrics values related to the `PodTopologySpread` Filter plugin. ([#117683](https://github.com/kubernetes/kubernetes/pull/117683), [@utam0k](https://github.com/utam0k)) -- The scheduler skips the `PodTopologySpread` Score plugin when nothing to do with the Pod. - It will affect some metrics values related to the PodTopologySpread Score plugin. ([#118608](https://github.com/kubernetes/kubernetes/pull/118608), [@utam0k](https://github.com/utam0k)) -- The short names `vwc` and `mwc` were introduced for the resources `validatingwebhookconfigurations` and `mutatingwebhookconfigurations`. ([#117535](https://github.com/kubernetes/kubernetes/pull/117535), [@hysyeah](https://github.com/hysyeah)) -- Updated etcd image to `3.5.9-0`. ([#117999](https://github.com/kubernetes/kubernetes/pull/117999), [@kkkkun](https://github.com/kkkkun)) [SIG API Machinery] -- Updated cAdvisor to `v0.47.2` and fixed metrics in `cri-o` when a container restarts. ([#118774](https://github.com/kubernetes/kubernetes/pull/118774), [@harche](https://github.com/harche)) -- Updated distroless I-tables to use registry.k8s.io/build-image/distroless-iptables:v0.2.5 ([#118541](https://github.com/kubernetes/kubernetes/pull/118541), [@jeremyrickard](https://github.com/jeremyrickard)) [SIG Testing] -- Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.4` ([#117746](https://github.com/kubernetes/kubernetes/pull/117746), [@xmudrii](https://github.com/xmudrii)) [SIG Testing] -- Updated the scheduler interface and cache methods to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116849](https://github.com/kubernetes/kubernetes/pull/116849), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- ValidatingAdmissionPolicy type checking now correctly handles `authorizer` variable. ([#118540](https://github.com/kubernetes/kubernetes/pull/118540), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery] -- When a pod is done or not going to run, then `ResourceClaims` for it can be reused by other pods or deleted. ([#118817](https://github.com/kubernetes/kubernetes/pull/118817), [@pohly](https://github.com/pohly)) -- With the `KubeletCgroupDriverFromCRI` feature gate enabled and sufficiently new version of a container - runtime, kubelet automatically detects the cgroup driver config from the container runtime, eliminating - the need to specify the `cgroupDriver` configuration option (or `--cgroup-driver` flag) of kubelet. ([#118770](https://github.com/kubernetes/kubernetes/pull/118770), [@marquiz](https://github.com/marquiz)) -- [Kube-proxy]: Implemented connection draining for terminating nodes. ([#116470](https://github.com/kubernetes/kubernetes/pull/116470), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) -- `--version=v1.X.Y...` can now be used to set the prerelease and buildID portions of the version reported by components ([#117688](https://github.com/kubernetes/kubernetes/pull/117688), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture and Release] -- `RetroactiveDefaultStorageClass` feature made stable and enabled by default. ([#118102](https://github.com/kubernetes/kubernetes/pull/118102), [@RomanBednar](https://github.com/RomanBednar)) -- `TopologyManagerPolicyOptions` feature-flag is promoted to beta and enabled by default. ([#118816](https://github.com/kubernetes/kubernetes/pull/118816), [@PiotrProkop](https://github.com/PiotrProkop)) -- `force_delete_pods_total` and `force_delete_pod_errors_total` metrics count all pod deletion behaviors. ([#118480](https://github.com/kubernetes/kubernetes/pull/118480), [@carlory](https://github.com/carlory)) -- `klog` text output now uses JSON as encoding for structs, maps and slices. ([#117687](https://github.com/kubernetes/kubernetes/pull/117687), [@pohly](https://github.com/pohly)) -- `kube-proxy` in iptables mode will now have separate `sync_full_proxy_rules_duration_seconds`\nand - `sync_partial_proxy_rules_duration_seconds` (in addition to the existing\n`sync_proxy_rules_duration_seconds`), - giving better information about the duration of each \nsync type, rather than - only giving a weighted average of the two sync types together. ([#117787](https://github.com/kubernetes/kubernetes/pull/117787), [@danwinship](https://github.com/danwinship)) -- `kubeadm`: added a new "kubeadm config validate" command that can be used to - validate any input config file. Use the `--config` flag to pass a config file - to it. See the command `--help` screen for more information. As a result of adding - this new command, enhance the validation capabilities of the existing "kubeadm - config migrate" command. For both commands unknown APIs or fields will throw errors. ([#118013](https://github.com/kubernetes/kubernetes/pull/118013), [@neolit123](https://github.com/neolit123)) -- `kubeadm`: added the `--allow-experimental-api` flag to "kubeadm config migrate/validate" commands. It can be used to migrate or validate WIP/experimental APIs in the future. ([#118866](https://github.com/kubernetes/kubernetes/pull/118866), [@neolit123](https://github.com/neolit123)) -- `kubeadm`: generate CA certificates with a start time that is offset 5 - minutes in the past relative to the current system time to workaround cases of - clock desync. ([#118922](https://github.com/kubernetes/kubernetes/pull/118922), [@champtar](https://github.com/champtar)) -- `plugin_evaluation_total` metric supports prescore/score extension point. - The metric doesn't get incremented when the prescore/score plugin has nothing to do with an incoming pod. ([#118025](https://github.com/kubernetes/kubernetes/pull/118025), [@AxeZhan](https://github.com/AxeZhan)) - -### Documentation - -- Enhanced clarity in error messaging when waiting for volume creation ([#118262](https://github.com/kubernetes/kubernetes/pull/118262), [@torredil](https://github.com/torredil)) [SIG Apps and Storage] - -### Failing Test - -- Allowed Azure Disk e2es to use newer topology labels if available from nodes. ([#117216](https://github.com/kubernetes/kubernetes/pull/117216), [@gnufied](https://github.com/gnufied)) -- Fixed nil pointer in test AfterEach volumeperf.go for sidecar release. ([#117368](https://github.com/kubernetes/kubernetes/pull/117368), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu)) -- Switched back to `debian-base` instead of distroless for conformance image. ([#119422](https://github.com/kubernetes/kubernetes/pull/119422), [@saschagrunert](https://github.com/saschagrunert)) - -### Bug or Regression - -- Added a new event `FailedToRetrieveImagePullSecret` which will be generated when a pod references an `ImagePullSecret` that doesn't exist. ([#117927](https://github.com/kubernetes/kubernetes/pull/117927), [@kaisoz](https://github.com/kaisoz)) [SIG Node] -- Added additional validation for endpoint IP configuration while iterating through queried endpoint list. ([#116749](https://github.com/kubernetes/kubernetes/pull/116749), [@princepereira](https://github.com/princepereira)) -- Added warning for dup ports update/patching in pod's container ports and service ports. ([#113245](https://github.com/kubernetes/kubernetes/pull/113245), [@pacoxu](https://github.com/pacoxu)) -- As in Kubernetes `v1.26` and `v1.27`, resource claims do not get prepared by `kubelet` when no container uses them. This was changed accidentally in [v1.28.0-alpha.1](https://github.com/kubernetes/kubernetes/releases/tag/v1.28.0-alpha.1). ([#118786](https://github.com/kubernetes/kubernetes/pull/118786), [@pohly](https://github.com/pohly)) -- Bumped cadvisor version to `v0.47.3`. ([#119225](https://github.com/kubernetes/kubernetes/pull/119225), [@iholder101](https://github.com/iholder101)) -- CI job `ci-kubernetes-node-arm64-ubuntu-serial` will test node e2e on arm64, `use-dockerized-build` and `target-build-arch` are required to run this job. ([#118567](https://github.com/kubernetes/kubernetes/pull/118567), [@chendave](https://github.com/chendave)) -- CVE-2023-27561 CVE-2023-25809 CVE-2023-28642: Bump fix runc v1.1.4 -> v1.1.5 ([#117095](https://github.com/kubernetes/kubernetes/pull/117095), [@PushkarJ](https://github.com/PushkarJ)) [SIG Architecture, Node and Security] -- Code blocks in `kubectl {$COMMAND}--help` will move right by 3 indentation. ([#118029](https://github.com/kubernetes/kubernetes/pull/118029), [@ardaguclu](https://github.com/ardaguclu)) -- Compute the backoff delay more accurately for deleted pods ([#118413](https://github.com/kubernetes/kubernetes/pull/118413), [@mimowo](https://github.com/mimowo)) [SIG Apps] -- Declare Job as finished only after removing all Pod finalizers to avoid orphan Pods. ([#119159](https://github.com/kubernetes/kubernetes/pull/119159), [@alculquicondor](https://github.com/alculquicondor)) -- During device plugin allocation, resources requested by the pod can only be allocated if the device plugin has registered itself to kubelet AND healthy devices are present on the node to be allocated. If these conditions are not sattsfied, the pod would fail with `UnexpectedAdmissionError` error. ([#116376](https://github.com/kubernetes/kubernetes/pull/116376), [@swatisehgal](https://github.com/swatisehgal)) [SIG Node and Testing] -- Dynamic Resource Allocation: logged an error and submitted an event when `Kubelet` failed to prepare dynamic resources. ([#118578](https://github.com/kubernetes/kubernetes/pull/118578), [@bart0sh](https://github.com/bart0sh)) -- Ensure Job status updates are batched by 1s. This fixes an unlikely scenario when a sequence of immediately - completing pods could trigger a sequence of non-batched Job status updates. ([#118470](https://github.com/kubernetes/kubernetes/pull/118470), [@mimowo](https://github.com/mimowo)) [SIG Apps] -- Faster `StatefulSet` creation when `Parallel` mode is enabled. ([#117865](https://github.com/kubernetes/kubernetes/pull/117865), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) -- Fixed a data race in TopologyCache when `AddHints` and `SetNodes` are called concurrently. ([#117249](https://github.com/kubernetes/kubernetes/pull/117249), [@tnqn](https://github.com/tnqn)) [SIG Apps and Network] -- Fixed a race condition in `kube-proxy` when using LocalModeNodeCIDR, to avoid dropping Services traffic if the object node is recreated when `kube-proxy` is starting. ([#118499](https://github.com/kubernetes/kubernetes/pull/118499), [@aojea](https://github.com/aojea)) -- Fixed bug where `listOfStrings.join()` in CEL expressions resulted in an unexpected internal error. ([#117593](https://github.com/kubernetes/kubernetes/pull/117593), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery] -- Fixed incorrect calculation for ResourceQuota with PriorityClass as its scope. ([#117677](https://github.com/kubernetes/kubernetes/pull/117677), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG API Machinery] -- Fix: After a Node is down and take some time to get back to up again, the mount point of the evicted Pods cannot be cleaned up successfully. (#111933) Meanwhile Kubelet will print the log `Orphaned pod "xxx" found, but error not a directory occurred when trying to remove the volumes dir` every 2 seconds. (#105536) ([#116134](https://github.com/kubernetes/kubernetes/pull/116134), [@cvvz](https://github.com/cvvz)) [SIG Node and Storage] -- Fix: The volume is not detached after the pod and PVC objects are deleted. ([#116138](https://github.com/kubernetes/kubernetes/pull/116138), [@cvvz](https://github.com/cvvz)) [SIG Storage] -- Fixed Cronjob `status.lastSuccessfulTime` not populated by a manually triggered ([#118530](https://github.com/kubernetes/kubernetes/pull/118530), [@carlory](https://github.com/carlory)) -- Fixed Topology Aware Hints not working when the `topology.kubernetes.io/zone` label is added after Node creation. ([#117245](https://github.com/kubernetes/kubernetes/pull/117245), [@tnqn](https://github.com/tnqn)) -- Fixed `creationTimestamp: null` causing unnecessary writes to etcd. ([#116865](https://github.com/kubernetes/kubernetes/pull/116865), [@alexzielenski](https://github.com/alexzielenski)) -- Fixed `vSphere` cloud provider not to skip detach volumes from nodes at `kube-controller-startup`. ([#117243](https://github.com/kubernetes/kubernetes/pull/117243), [@jsafrane](https://github.com/jsafrane)) -- Fixed a bug at `kube-apiserver` start where `APIService` objects for custom resources could be deleted and recreated. ([#118104](https://github.com/kubernetes/kubernetes/pull/118104), [@liggitt](https://github.com/liggitt)) -- Fixed a bug that unintentionally overrides custom Accept headers in http (live-/readiness)-probes if the header is in lowercase. ([#114606](https://github.com/kubernetes/kubernetes/pull/114606), [@tuunit](https://github.com/tuunit)) -- Fixed a bug where `kubectl port-forward`, when used with a Deployment, could connect to a terminating pod even when a running pod is also available. ([#119256](https://github.com/kubernetes/kubernetes/pull/119256), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] -- Fixed a bug where pv recycler failed to scrub volume with too many files in the directory due to hitting ARG_MAX limit with rm command (#117189). ([#117283](https://github.com/kubernetes/kubernetes/pull/117283), [@defo89](https://github.com/defo89)) [SIG Cloud Provider and Storage] -- Fixed a memory leak in the Kubernetes API server that occurs during APIService processing. ([#117258](https://github.com/kubernetes/kubernetes/pull/117258), [@enj](https://github.com/enj)) [SIG API Machinery] -- Fixed a race condition between `Run()` and `SetTransform()` and `SetWatchErrorHandler()` in shared informers. ([#117870](https://github.com/kubernetes/kubernetes/pull/117870), [@howardjohn](https://github.com/howardjohn)) [SIG API Machinery] -- Fixed a race condition serving `OpenAPI` content ([#117705](https://github.com/kubernetes/kubernetes/pull/117705), [@Jefftree](https://github.com/Jefftree)) -- Fixed a regression in `1.27.0` that resulted in `missing metadata in converted object` errors when modifying objects for multi-version custom resource definitions with a conversion strategy of `None`. ([#117301](https://github.com/kubernetes/kubernetes/pull/117301), [@ncdc](https://github.com/ncdc)) -- Fixed a regression in `kubectl` and `client-go` discovery when configured with a server URL other than the root of a server ([#117495](https://github.com/kubernetes/kubernetes/pull/117495), [@ardaguclu](https://github.com/ardaguclu)) -- Fixed an issue where the API server did not send impersonated UID to authentication webhooks. ([#116681](https://github.com/kubernetes/kubernetes/pull/116681), [@stlaz](https://github.com/stlaz)) [SIG API Machinery and Auth] -- Fixed bug that caused a resource to include patch directives when using strategic merge patch against a non-existent field. ([#117568](https://github.com/kubernetes/kubernetes/pull/117568), [@alexzielenski](https://github.com/alexzielenski)) -- Fixed bug to correctly report `ErrRegistryUnavailable` on pulling container images for remote CRI runtimes. ([#117612](https://github.com/kubernetes/kubernetes/pull/117612), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] -- Fixed bug where explain was not properly respecting jsonpaths. ([#115694](https://github.com/kubernetes/kubernetes/pull/115694), [@mpuckett159](https://github.com/mpuckett159)) -- Fixed bug where using the $deleteFromPrimitiveList directive in a strategic merge patch of certain fields would remove the other values from the list instead of the values specified. ([#110472](https://github.com/kubernetes/kubernetes/pull/110472), [@brianpursley](https://github.com/brianpursley)) [SIG API Machinery] -- Fixed component status calling etcd health endpoint over http which exposed kubernetes to the risk of complete watch starvation and is inconsistent with other etcd probing done by `kube-apiserver`. ([#118460](https://github.com/kubernetes/kubernetes/pull/118460), [@serathius](https://github.com/serathius)) -- Fixed computing backoff delay when using Job pod failure policy, by including in the backoff delay calculation pod failures ignored from the backoffLimit counter. ([#119434](https://github.com/kubernetes/kubernetes/pull/119434), [@mimowo](https://github.com/mimowo)) -- Fixed cronjob controller handling of complex schedules, like `30 6-16/4 * * 1-5`, for example. ([#118724](https://github.com/kubernetes/kubernetes/pull/118724), [@soltysh](https://github.com/soltysh)) -- Fixed deletion of non-admissible pods that are deleted during Kubelet restart. ([#118497](https://github.com/kubernetes/kubernetes/pull/118497), [@mimowo](https://github.com/mimowo)) -- Fixed issue where `kubectl-convert` would fail when encountering resources that could not be converted to the specified api version. New behavior is to warn the user of the failed conversions and continue to convert the remaining resources. ([#117002](https://github.com/kubernetes/kubernetes/pull/117002), [@gxwilkerson33](https://github.com/gxwilkerson33)) -- Fixed issue where there was no response or error from kubectl rollout status when there were no resources of specified kind. ([#117884](https://github.com/kubernetes/kubernetes/pull/117884), [@gxwilkerson33](https://github.com/gxwilkerson33)) [SIG CLI] -- Fixed kubelet startup getting stuck with `NewVolumeManagerReconstruction` feature enabled and a CSI volume present in /var/lib/kubelet/pods. ([#117804](https://github.com/kubernetes/kubernetes/pull/117804), [@jsafrane](https://github.com/jsafrane)) [SIG Node and Storage] -- Fixed performance regression in scheduler caused by frequent metric lookup on critical code path. ([#117594](https://github.com/kubernetes/kubernetes/pull/117594), [@tosi3k](https://github.com/tosi3k)) -- Fixed restricted debug profile. ([#117543](https://github.com/kubernetes/kubernetes/pull/117543), [@mochizuki875](https://github.com/mochizuki875)) -- Fixed the `preStop` hook. This will now block the pod termination grace period. ([#115835](https://github.com/kubernetes/kubernetes/pull/115835), [@HirazawaUi](https://github.com/HirazawaUi)) -- Fixed the discoverability of `apiregistration.k8s.io` in `openapi/v3` ([#118879](https://github.com/kubernetes/kubernetes/pull/118879), [@atiratree](https://github.com/atiratree)) -- If `kubeadm reset` finds no etcd member ID for the peer it removes during the `remove-etcd-member` phase, it continues immediately to other phases, instead of retrying the phase for up to 3 minutes before continuing. ([#117724](https://github.com/kubernetes/kubernetes/pull/117724), [@dlipovetsky](https://github.com/dlipovetsky)) [SIG Cluster Lifecycle] -- Improved exponential backoff in Reflector, significantly reducing the load on Kubernetes apiserver in case of throttling of requests. ([#118132](https://github.com/kubernetes/kubernetes/pull/118132), [@marseel](https://github.com/marseel)) [SIG API Machinery and Scalability] -- Known issue: fixed that the PreEnqueue plugins aren't executed for Pods proceeding to activeQ through backoffQ. ([#117194](https://github.com/kubernetes/kubernetes/pull/117194), [@sanposhiho](https://github.com/sanposhiho)) [SIG Release and Scheduling] -- Kubeadm: the limitation that the `ignorePreflightErrors` field can not be set to `all` in kubeadm config file has been removed. ([#119351](https://github.com/kubernetes/kubernetes/pull/119351), [@SataQiu](https://github.com/SataQiu)) -- Kubelet terminates pods correctly upon restart, fixing an issue where pods may have not been fully terminated if the kubelet was restarted during pod termination. ([#117019](https://github.com/kubernetes/kubernetes/pull/117019), [@bobbypage](https://github.com/bobbypage)) [SIG Node and Testing] -- Kubelet will now skip pod resource checks when the request is zero. ([#116408](https://github.com/kubernetes/kubernetes/pull/116408), [@ChenLingPeng](https://github.com/ChenLingPeng)) -- Number of errors reported to the metric `storage_operation_duration_seconds_count` for emptyDir decreased significantly because previously one error was reported for each projected volume created. ([#117022](https://github.com/kubernetes/kubernetes/pull/117022), [@mpatlasov](https://github.com/mpatlasov)) [SIG Storage] -- Pod termination will be faster when the pod has a missing volume reference. ([#117412](https://github.com/kubernetes/kubernetes/pull/117412), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node and Testing] -- Recording timing traces had a race condition. Impact in practice was probably low. ([#117139](https://github.com/kubernetes/kubernetes/pull/117139), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node and Storage] -- Reduced CPU and memory consumption of `kube-apiserver` if OpenAPI V2 will not be accessed by any client. Also improved performance of the apiserver on installation of many CRDs. ([#118212](https://github.com/kubernetes/kubernetes/pull/118212), [@Jefftree](https://github.com/Jefftree)) -- Removed leading zeros from the etcd member ID in kubeadm log messages. ([#117919](https://github.com/kubernetes/kubernetes/pull/117919), [@dlipovetsky](https://github.com/dlipovetsky)) [SIG Cluster Lifecycle] -- Resolves a spurious "Unknown discovery response content-type" error in client-go discovery requests by tolerating extra content-type parameters in API responses ([#117571](https://github.com/kubernetes/kubernetes/pull/117571), [@seans3](https://github.com/seans3)) [SIG API Machinery] -- Reverted NewVolumeManagerReconstruction and SELinuxMountReadWriteOncePod feature gates to disabled by default to resolve a regression of volume reconstruction on kubelet/node restart ([#117751](https://github.com/kubernetes/kubernetes/pull/117751), [@liggitt](https://github.com/liggitt)) [SIG Storage] -- Setting a mirror pod's phase to Succeeded or Failed can prevent the corresponding static pod from restarting due mutation of a Kubelet cache. ([#116482](https://github.com/kubernetes/kubernetes/pull/116482), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node] -- Show a warning when `volume.beta.kubernetes.io/storage-class` annotation is used in pv or pvc ([#117036](https://github.com/kubernetes/kubernetes/pull/117036), [@haoruan](https://github.com/haoruan)) [SIG Storage] -- Static pods were taking extra time to be restarted after being updated. Static pods that are waiting to restart were not correctly counted in `kubelet_working_pods`. ([#116995](https://github.com/kubernetes/kubernetes/pull/116995), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node] -- The Daemonset controller creates replacements for terminal Pods, which can appear during VM preemptions or when using Pod finalizers. ([#118716](https://github.com/kubernetes/kubernetes/pull/118716), [@alculquicondor](https://github.com/alculquicondor)) -- The `pod_scheduling_duration_seconds` metrics won't consider the time when a pod fails `PreEnqueue` (like being gated). ([#118049](https://github.com/kubernetes/kubernetes/pull/118049), [@helayoty](https://github.com/helayoty)) -- The kube-proxy `sync_proxy_rules_iptables_total` metric has now reverted back - to its pre-1.27 behavior of tracking the total number of iptables rules that - kube-proxy is responsible for, rather than only counting the number of rules - that it re-synced on the last sync. The new `sync_proxy_rules_iptables_last` - metric now gives the latter number. ([#119140](https://github.com/kubernetes/kubernetes/pull/119140), [@danwinship](https://github.com/danwinship)) [SIG Network] -- The metric `apiserver_flowcontrol_request_concurrency_limit` has been deprecated and will be removed in a future release. It is a duplicate of `apiserver_flowcontrol_nominal_limit_seats` (introduced in release 1.26) but has an outdated name and had an outdated HELP string. ([#118959](https://github.com/kubernetes/kubernetes/pull/118959), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] -- Updated `etcd` version to `3.5.8`. ([#117335](https://github.com/kubernetes/kubernetes/pull/117335), [@kkkkun](https://github.com/kkkkun)) -- Updated apiserver metric `request_filter_duration_seconds` to include a 10s, 15s and 30s bucket. -Updated apiserver metric `request_wait_duration_seconds` to include a 15s bucket. ([#118945](https://github.com/kubernetes/kubernetes/pull/118945), [@andrewsykim](https://github.com/andrewsykim)) -- Updated kube-apiserver's priority & fairness work estimator such that 'max seats' is MIN(0.15 x nominalCL, nominalCL / handSize) - - This fixes a bug where clients with requests using hand size x max seats greater than the nominal concurrency limit can starve other requests in the same priority level. ([#118601](https://github.com/kubernetes/kubernetes/pull/118601), [@andrewsykim](https://github.com/andrewsykim)) -- Updated static pods are restarted 2s faster by correcting a safe but non-optimal ordering bug. ([#116690](https://github.com/kubernetes/kubernetes/pull/116690), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node] -- Users will no longer see an error for failed events caused due to terminating namespace. ([#114849](https://github.com/kubernetes/kubernetes/pull/114849), [@padlar](https://github.com/padlar)) [SIG API Machinery] -- [Dual-stack] Fixed `generateAPIPodStatus()` of kubelet handling Secondary IP. hostIPs order may not be consistent. If secondary IP is before primary one, current logic adds primary IP twice into `PodIPs`, which leads to error: "may specify no more than one IP for each IP family". ([#116879](https://github.com/kubernetes/kubernetes/pull/116879), [@lzhecheng](https://github.com/lzhecheng)) -- [KCCM] service controller: change the cloud controller manager to make `providerID` a predicate when synchronizing nodes. This change allows load balancer integrations to ensure that the `providerID` is set when configuring - load balancers and targets. ([#117388](https://github.com/kubernetes/kubernetes/pull/117388), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Cloud Provider and Network] -- `kube-apiserver` will now always remove its endpoint from Kubernetes service during - graceful shutdown (even if it's the only/last one). ([#116685](https://github.com/kubernetes/kubernetes/pull/116685), [@nayihz](https://github.com/nayihz)) -- `kubeadm:` fixed a bug where the static pod changes detection logic is inconsistent - with kubelet. ([#118069](https://github.com/kubernetes/kubernetes/pull/118069), [@SataQiu](https://github.com/SataQiu)) -- `kubeadm`: `crictl pull` should use `-i` to set the image service endpoint. ([#117835](https://github.com/kubernetes/kubernetes/pull/117835), [@pacoxu](https://github.com/pacoxu)) -- `kubeadm`: fixed a bug where file copy(backup) could not be executed correctly - on Windows platform during upgrade. ([#117861](https://github.com/kubernetes/kubernetes/pull/117861), [@SataQiu](https://github.com/SataQiu)) -- `kubeadm`: speedup init by 0s or 20s. kubelet-start phase is now after etcd - and control-plane phases, removing a race condition between kubelet looking for - static pod manifests and kubeadm writing them. ([#117984](https://github.com/kubernetes/kubernetes/pull/117984), [@champtar](https://github.com/champtar)) -- `kubeadm`: will now throw warnings instead of errors for deprecated feature gates. ([#118270](https://github.com/kubernetes/kubernetes/pull/118270), [@pacoxu](https://github.com/pacoxu)) -- `kubectl events --for` will also support fully qualified names such as replicasets.apps, - etc. ([#117034](https://github.com/kubernetes/kubernetes/pull/117034), [@ardaguclu](https://github.com/ardaguclu)) -- `kubectl explain` should correctly work for all resources. ([#118876](https://github.com/kubernetes/kubernetes/pull/118876), [@atiratree](https://github.com/atiratree)) -- `kubectl expose` supports the creation of different protocol services on the same port. ([#114909](https://github.com/kubernetes/kubernetes/pull/114909), [@aimuz](https://github.com/aimuz)) -- `kubelet` will ensure /etc/hosts file is mode 0644 regardless of umask. ([#113209](https://github.com/kubernetes/kubernetes/pull/113209), [@luozhiwenn](https://github.com/luozhiwenn)) -- `kubelet`: print sorted volumes message in events. ([#117079](https://github.com/kubernetes/kubernetes/pull/117079), [@qingwave](https://github.com/qingwave)) -- `wait.PollUntilContextTimeout` function, if immediate is true, the condition - will be invoked before waiting and guarantees that the condition is invoked at - least once, regardless of whether the context has been cancelled. ([#118686](https://github.com/kubernetes/kubernetes/pull/118686), [@aojea](https://github.com/aojea)) - -### Other (Cleanup or Flake) - -- A `v2-level` info log will be added, which will output the details of the pod being preempted, including victim and preemptor. ([#117214](https://github.com/kubernetes/kubernetes/pull/117214), [@HirazawaUi](https://github.com/HirazawaUi)) -- Allowed container runtimes to use `ErrSignatureValidationFailed` as possible image pull failure. ([#117717](https://github.com/kubernetes/kubernetes/pull/117717), [@saschagrunert](https://github.com/saschagrunert)) -- Deprecated `genericclioptions.IOStreams` and used `genericiooptions.IOStreams`. ([#117102](https://github.com/kubernetes/kubernetes/pull/117102), [@ardaguclu](https://github.com/ardaguclu)) -- E2e framework: the `node-role.kubernetes.io/master` taint has been removed from the default value of `--non-blocking-taints` flag. You may need to set `--non-blocking-taints` explicitly if the cluster to be tested has nodes with the deprecated `node-role.kubernetes.io/master` taint. ([#118510](https://github.com/kubernetes/kubernetes/pull/118510), [@SataQiu](https://github.com/SataQiu)) [SIG Testing] -- Enabled the `node-local` kubelet podresources API endpoint on windows, alongside unix. ([#115133](https://github.com/kubernetes/kubernetes/pull/115133), [@ffromani](https://github.com/ffromani)) -- Fixed dra e2e image build on non-amd64 architectures. ([#117912](https://github.com/kubernetes/kubernetes/pull/117912), [@bart0sh](https://github.com/bart0sh)) [SIG Node and Testing] -- Kube-apiserver adds two new alpha metrics `conversion_webhook_request_total` and `conversion_webhook_duration_seconds` that allow users to monitor requests to CRD conversion webhooks, split by result, and failure_type (In case of failure). ([#118292](https://github.com/kubernetes/kubernetes/pull/118292), [@cchapla](https://github.com/cchapla)) [SIG API Machinery, Architecture and Instrumentation] -- Kube-proxy will now warn at startup if the configuration seems inconsistent - with respect to IP families. (For example, if you have an IPv4 node IP, but - `--cluster-cidr` is IPv6.) ([#119003](https://github.com/kubernetes/kubernetes/pull/119003), [@danwinship](https://github.com/danwinship)) [SIG Network] -- Kube-proxy: removed log warning about not using config file. ([#118115](https://github.com/kubernetes/kubernetes/pull/118115), [@TommyStarK](https://github.com/TommyStarK)) [SIG Network] -- Made Job controller batching of syncJob invocations enabled unconditionally (it was conditional on JobReadyPods feature before). -Also, Job controller's constants for default backoff and maximal backoff are lowered down to 1s (from 10s) and 1min (from 6min), respectively. These constants are used to determine the backoff delay for the next Job controller sync in case of a request failure. ([#118615](https://github.com/kubernetes/kubernetes/pull/118615), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing] -- Marked the feature gate `ExperimentalHostUserNamespaceDefaulting` as deprecated. - Enabling the feature gate already had no effect; the deprecation allows for removing the feature gate in a future release. ([#116723](https://github.com/kubernetes/kubernetes/pull/116723), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node] -- Migrated `pkg/scheduler/framework/runtime` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116842](https://github.com/kubernetes/kubernetes/pull/116842), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling] -- Migrated the disruption controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#119147](https://github.com/kubernetes/kubernetes/pull/119147), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Apps, Instrumentation and Testing] -- Migrated the interpodaffinity scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116635](https://github.com/kubernetes/kubernetes/pull/116635), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling] -- Migrated the podgc controller and some other remaining log calls within `kube-controller-manager` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). `kube-controller-manager` is now converted completely. ([#119250](https://github.com/kubernetes/kubernetes/pull/119250), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Cloud Provider, Instrumentation, Network, Storage and Testing] -- Migrated the volumezone scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116829](https://github.com/kubernetes/kubernetes/pull/116829), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling] -- Moved `k8s.io/kubernetes/pkg/kubelet/cri/streaming` package to `k8s.io/kubelet/pkg/cri/streaming`. ([#118253](https://github.com/kubernetes/kubernetes/pull/118253), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node, Release and Security] -- OpenAPI proto deserializations should use `gnostic-models` instead of the gnostic library. ([#118384](https://github.com/kubernetes/kubernetes/pull/118384), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Node, Storage and Testing] -- Projects which use k8s.io/code-generator and invoke `generate-groups` or `generate-internal-groups.sh` have a new, simpler script (`kube_codegen.sh`) they can use. The old scripts are deprecated but remain intact. ([#117262](https://github.com/kubernetes/kubernetes/pull/117262), [@thockin](https://github.com/thockin)) [SIG API Machinery and Instrumentation] -- Promoted `kubernetes_healthcheck` and `kubernetes_healthchecks_total` to `BETA` stability level. ([#118986](https://github.com/kubernetes/kubernetes/pull/118986), [@logicalhan](https://github.com/logicalhan)) -- Reduced delay when processing jobs after a transient API error. ([#118759](https://github.com/kubernetes/kubernetes/pull/118759), [@mimowo](https://github.com/mimowo)) -- Removed GA'ed feature gate `DelegateFSGroupToCSIDriver`. ([#117655](https://github.com/kubernetes/kubernetes/pull/117655), [@carlory](https://github.com/carlory)) -- Removed GA'ed feature gate `DevicePlugins`. ([#117656](https://github.com/kubernetes/kubernetes/pull/117656), [@carlory](https://github.com/carlory)) -- Removed GA'ed feature gate `KubeletCredentialProviders`. ([#116901](https://github.com/kubernetes/kubernetes/pull/116901), [@pacoxu](https://github.com/pacoxu)) -- Removed GA'ed feature gates: `MixedProtocolLBService`, `ServiceInternalTrafficPolicy`, - `ServiceIPStaticSubrange`, and `EndpointSliceTerminatingCondition`. ([#117237](https://github.com/kubernetes/kubernetes/pull/117237), [@yulng](https://github.com/yulng)) -- Removed `KUBECTL_EXPLAIN_OPENAPIV3` which is already redundant. ([#119286](https://github.com/kubernetes/kubernetes/pull/119286), [@ardaguclu](https://github.com/ardaguclu)) -- Removed the deprecated `azureFile` in-tree storage plugin. ([#118236](https://github.com/kubernetes/kubernetes/pull/118236), [@andyzhangx](https://github.com/andyzhangx)) -- Revised `OpenAPI v2` fetching for CustomResourceDefinitions. CRDs are now aggregated lazily, - which improves resource usage during installation of many CRDs. As a result, the first request - to fetch the OpenAPI may be slower. ([#118808](https://github.com/kubernetes/kubernetes/pull/118808), [@Jefftree](https://github.com/Jefftree)) -- Shrank the `OpenAPI v2` spec by more than 50%, especially for less CPU resource consumption. ([#118204](https://github.com/kubernetes/kubernetes/pull/118204), [@sttts](https://github.com/sttts)) -- Structured logging of `NamespacedName` was inconsistent with `klog.KObj`. Now both will use lower case field names and namespace is optional. ([#117238](https://github.com/kubernetes/kubernetes/pull/117238), [@pohly](https://github.com/pohly)) -- The `GetAllocatableResources` podresources API endpoint is now GA. ([#118973](https://github.com/kubernetes/kubernetes/pull/118973), [@ffromani](https://github.com/ffromani)) -- The `NetworkPolicyLegacy` test suite (deprecated in `v1.21`) has now officially been removed in favor of the new table driven e2e tests. ([#118915](https://github.com/kubernetes/kubernetes/pull/118915), [@astoycos](https://github.com/astoycos)) -- The `generate_groups.sh` and `generate_internal_groups.sh` scripts from the `k8s.io/code-generator` repo are deprecated (but still work) in favor of `kube_codegen.sh` in that same repo. Projects which use the old scripts are encouraged to look at adopting the new one. ([#117897](https://github.com/kubernetes/kubernetes/pull/117897), [@thockin](https://github.com/thockin)) [SIG API Machinery] -- The feature gate `CSIStorageCapacity` have been removed and must no longer be referenced in `--feature-gates` flags. ([#118018](https://github.com/kubernetes/kubernetes/pull/118018), [@humblec](https://github.com/humblec)) -- The feature gates `CSIMigrationGCE` is graduated to GA and were unconditionally enabled have been removed in `v1.25`, and the entire `gcepd` package has been removed. ([#117055](https://github.com/kubernetes/kubernetes/pull/117055), [@cyclinder](https://github.com/cyclinder)) -- The feature gates `DisableAcceleratorUsageMetrics` and `PodSecurity` that graduated to GA and were unconditionally enabled have been removed in v1.28. ([#114068](https://github.com/kubernetes/kubernetes/pull/114068), [@cyclinder](https://github.com/cyclinder)) [SIG API Machinery, Node, Scheduling and Storage] -- The kubelet podresources endpoint is GA and always enabled. ([#116525](https://github.com/kubernetes/kubernetes/pull/116525), [@ffromani](https://github.com/ffromani)) [SIG Node] -- The metric `apiserver_flowcontrol_current_executing_seats` has been introduced as a duplicate of `apiserver_flowcontrol_request_concurrency_in_use` because the latter has a confusing name and will be removed in a later release. ([#118960](https://github.com/kubernetes/kubernetes/pull/118960), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] -- Updated `Cluster Autosaler` to version 1.26.1. ([#116526](https://github.com/kubernetes/kubernetes/pull/116526), [@pacoxu](https://github.com/pacoxu)) [SIG Autoscaling and Cloud Provider] -- Updated `cri-tools` to `v1.27.0`. ([#117545](https://github.com/kubernetes/kubernetes/pull/117545), [@saschagrunert](https://github.com/saschagrunert)) -- Updated `setcap` image to debian bookworm v1.0.0. ([#119247](https://github.com/kubernetes/kubernetes/pull/119247), [@saschagrunert](https://github.com/saschagrunert)) -- Updated `cri-tools` to `v1.26.1`. ([#116649](https://github.com/kubernetes/kubernetes/pull/116649), [@saschagrunert](https://github.com/saschagrunert)) [SIG Architecture and Release] -- Updated debian-base image to `bookworm-v1.0.0`. ([#119095](https://github.com/kubernetes/kubernetes/pull/119095), [@saschagrunert](https://github.com/saschagrunert)) -- Use table-driven test for `TestPerPodSchedulingMetrics`. ([#118842](https://github.com/kubernetes/kubernetes/pull/118842), [@helayoty](https://github.com/helayoty)) -- When retrieving event resources, the `reportingController` and `reportingInstance` fields in the event will contain values. ([#116506](https://github.com/kubernetes/kubernetes/pull/116506), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery and Instrumentation] -- [KCCM] drop filtering nodes for the providerID when syncing load balancers, but have changes to the field trigger a re-sync of load balancers. This should ensure that cloud providers which don't specify providerID, can still use the service controller implementation to provision load balancers. ([#117602](https://github.com/kubernetes/kubernetes/pull/117602), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Cloud Provider and Network] -- `kube-apiserver` added two new metrics `authorization_attempts_total` and `authorization_duration_seconds` - that allow users to monitor requests to authorization webhooks, split by result. ([#117211](https://github.com/kubernetes/kubernetes/pull/117211), [@HirazawaUi](https://github.com/HirazawaUi)) -- `kube-apiserver`: Improved memory use when performing `GetList` on the cache. ([#116327](https://github.com/kubernetes/kubernetes/pull/116327), [@sxllwx](https://github.com/sxllwx)) -- `kube-controller-manager` and `cloud-controller-manager` have changed the - name of controllers that can be turned on/off that are passed to the `--controllers` - flag (e.g., `pod-garbage-collector-controller`). The old names (eg `podgc`) are - also accepted and aliased to the new names. ([#115813](https://github.com/kubernetes/kubernetes/pull/115813), [@atiratree](https://github.com/atiratree)) -- `kubeadm`: Introduced a new feature gate `UpgradeAddonsBeforeControlPlane` to - fix a kube-proxy skew policy misalignment. Its default value is `false`. Upgrade - of the CoreDNS and kube-proxy addons will now trigger after all the control plane - instances have been upgraded, unless the fearure gate is set to true. This feature - gate will be removed in a future release. ([#117660](https://github.com/kubernetes/kubernetes/pull/117660), [@pacoxu](https://github.com/pacoxu)) +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- Action required for the custom scheduler plugin developers. + Here's the breaking change in `EnqueueExtension` in the scheduling framework. + The `EventsToRegister` in `EnqueueExtension` changed the return value from `ClusterEvent` to `ClusterEventWithHint`. `ClusterEventWithHint` allows each plugin to filter out more useless events via the callback function named `QueueingHintFn`. + When the scheduling queue receives a cluster event, before moving each Pod from unschedulable pod pool to activeQ/backoffQ, it will call QueueingHintFn of plugins that rejected each Pod in the previous scheduling cycle. + Depending on the value returned from QueueingHintFn, the scheduling queue changes how it queues each Pod: + - if more than one QueueingHintFn returns QueueImmediately, it queues Pod to activeQ. + - If no QueueingHintFn returns QueueImmediately and more than one plugin returns QueueAfterBackoff, it queues Pod to backoffQ if Pod is backing off, or to activeQ if Pod's backoff has already finished. + - If all QueueingHintFn return QueueSkip, it puts this pod back to the unschedulable pod pool + + Having appropriate QueueingHintFn contributes to reducing useless retries and thus improves the overall scheduler's performance. + + **How can I migrate?** + + For backward compatibility, nil `QueueingHintFn` is treated as always returning QueueAfterBackoff. + So, if you want to just keep the existing behavior, you can register `ClusterEventWithHint` with no `QueueingHintFn` in it. + But, registering appropriate `QueueingHintFn` is, of course, better from a scheduling performance perspective. ([#118551](https://github.com/kubernetes/kubernetes/pull/118551), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling, Storage and Testing] + - CephFS volume plugin (`kubernetes.io/cephfs`) has been deprecated in this release and will be removed in a subsequent release. The alternative is to use the CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes cluster. ([#118143](https://github.com/kubernetes/kubernetes/pull/118143), [@humblec](https://github.com/humblec)) + - Deprecated support for CSI migration of `Ceph RBD volumes`. Users who were relying on Kubernetes' ability + to migrate to an out-of-tree storage driver should complete that migration before the support for it is removed. ([#118303](https://github.com/kubernetes/kubernetes/pull/118303), [@carlory](https://github.com/carlory)) + - RBD volume plugin (`kubernetes.io/rbd`) has been deprecated in this release + and will be removed in a subsequent release. Alternative is to use RBD CSI driver + (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. ([#118552](https://github.com/kubernetes/kubernetes/pull/118552), [@humblec](https://github.com/humblec)) + +## Changes by Kind + +### Deprecation + +- Changed `kubectl version` default output to be identical to what `kubectl version --short` printed, + and removed `--short` flag entirely. ([#116720](https://github.com/kubernetes/kubernetes/pull/116720), [@soltysh](https://github.com/soltysh)) +- Kube-controller-manager deprecate `--volume-host-cidr-denylist` and `--volume-host-allow-local-loopback` flags. ([#118128](https://github.com/kubernetes/kubernetes/pull/118128), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Network, Node, Storage and Testing] +- Kubelet: The `--azure-container-registry-config` flag has been deprecated and will be removed in a future release, please use `--image-credential-provider-config` and `--image-credential-provider-bin-dir` to setup acr credential provider instead. ([#118596](https://github.com/kubernetes/kubernetes/pull/118596), [@SataQiu](https://github.com/SataQiu)) [SIG Node] +- Removed tracking annotation from validation and defaulting. ([#117633](https://github.com/kubernetes/kubernetes/pull/117633), [@kannon92](https://github.com/kannon92)) +- Removed withdrawn feature `NetworkPolicyStatus`. ([#115843](https://github.com/kubernetes/kubernetes/pull/115843), [@rikatz](https://github.com/rikatz)) +- The deprecated flag `--lock-object-namespace` and `--lock-object-name` have been removed from kube-scheduler. Please use `--leader-elect-resource-namespace` and `--leader-elect-resource-name` or ComponentConfig instead to configure those parameters. ([#119130](https://github.com/kubernetes/kubernetes/pull/119130), [@SataQiu](https://github.com/SataQiu)) [SIG Scheduling] +- `KMSv1` is deprecated and will only receive security updates going forward. Use `KMSv2` instead. In a future release, Set `--feature-gates=KMSv1=true` to use the deprecated KMSv1 feature. ([#119007](https://github.com/kubernetes/kubernetes/pull/119007), [@aramase](https://github.com/aramase)) + +### API Change + +- A CDIDevice field is included in the Device Plugin's `ContainerAllocateResponse`. This field maps to the CDIDevice field in the CRI protocol. ([#118254](https://github.com/kubernetes/kubernetes/pull/118254), [@elezar](https://github.com/elezar)) [SIG Node and Testing] +- ACTION_REQUIRED + When an Indexed Job has a number of completions higher than 10^5 and parallelism higher than 10^4, and a big number of Indexes fail, Kubernetes might not be able to track the termination of the Job. Kubernetes now emits a warning, at Job creation, when the Job manifest exceeds both of these limits. ([#118420](https://github.com/kubernetes/kubernetes/pull/118420), [@alculquicondor](https://github.com/alculquicondor)) [SIG Apps] +- Added `ServedVersions` field to `StorageVersion` API. ([#118386](https://github.com/kubernetes/kubernetes/pull/118386), [@Richabanker](https://github.com/Richabanker)) +- Added `IP mode` field to loadbalancer status ingress. ([#118895](https://github.com/kubernetes/kubernetes/pull/118895), [@RyanAoh](https://github.com/RyanAoh)) +- Added `podReplacementPolicy` and terminating field to job api. ([#119301](https://github.com/kubernetes/kubernetes/pull/119301), [@kannon92](https://github.com/kannon92)) +- Added a new `namespaceParamRef` field to `admissionregistration.k8s.io/v1alpha1.ValidatingAdmissionPolicy`. ([#119215](https://github.com/kubernetes/kubernetes/pull/119215), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery and Testing] +- Added a warning that TLS 1.3 ciphers are not configurable. ([#115399](https://github.com/kubernetes/kubernetes/pull/115399), [@3u13r](https://github.com/3u13r)) [SIG API Machinery and Node] +- Added error handling for seccomp localhost configurations that do not properly set a `localhostProfile`. ([#117020](https://github.com/kubernetes/kubernetes/pull/117020), [@cji](https://github.com/cji)) +- Added fields `reason` and `fieldPath` into CRD validation rules to allow users to specify reason and field path when validation failed. ([#118041](https://github.com/kubernetes/kubernetes/pull/118041), [@cici37](https://github.com/cici37)) [SIG API Machinery] +- Added namespace access support to the CEL expressions of ValidatingAdmissionPolicy via a `namespaceObject` + variable with expressions. ([#118267](https://github.com/kubernetes/kubernetes/pull/118267), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing] +- Added new `CRDValidationRatcheting` alpha feature. During a PATCH or UPDATE Validation Ratcheting discards errors thrown by unchanged portions of the resource from most OpenAPI schema validations. ([#118990](https://github.com/kubernetes/kubernetes/pull/118990), [@alexzielenski](https://github.com/alexzielenski)) +- Added new annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` to Job objects scheduled from CronJobs. ([#118137](https://github.com/kubernetes/kubernetes/pull/118137), [@helayoty](https://github.com/helayoty)) +- Added new config option `delayCacheUntilActive` to `KubeSchedulerConfiguration` that can provide a tradeoff between memory efficiency and scheduling speed when their leadership is updated in `kube-scheduler` ([#115754](https://github.com/kubernetes/kubernetes/pull/115754), [@linxiulei](https://github.com/linxiulei)) [SIG API Machinery and Scheduling] +- Changed how KMS v2 encryption at rest can generate data encryption keys. + When you enable the `KMSv2KDF` feature gate (off by default), KMS v2 uses a key derivation function to generate single use data encryption keys from a secret seed combined with some random data. This eliminates the need for a counter based nonce while avoiding nonce collision concerns associated with AES-GCM's 12 byte nonce. ([#118828](https://github.com/kubernetes/kubernetes/pull/118828), [@enj](https://github.com/enj)) +- Exposed `rest.DefaultServerUrlFor` function. ([#118055](https://github.com/kubernetes/kubernetes/pull/118055), [@timofurrer](https://github.com/timofurrer)) +- Extended the Job API for alpha version of `BackoffLimitPerIndex`. ([#119294](https://github.com/kubernetes/kubernetes/pull/119294), [@mimowo](https://github.com/mimowo)) +- Graduated `AdmissionWebhookMatchCondition` feature to beta. ([#119380](https://github.com/kubernetes/kubernetes/pull/119380), [@a-hilaly](https://github.com/a-hilaly)) +- If using cgroups v2, then the cgroup aware OOM killer will be enabled for container cgroups via `memory.oom.group` . This causes processes within the cgroup to be treated as a unit and killed simultaneously in the event of an OOM kill on any process in the cgroup. ([#117793](https://github.com/kubernetes/kubernetes/pull/117793), [@tzneal](https://github.com/tzneal)) [SIG Apps, Node and Testing] +- In the API Priority and Fairness feature, priority levels that are exempt from limitation can now be given a nominal and a lendable concurrency and their dispatching borrows from the concurrency limits of the other priority levels. For details see https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1040-priority-and-fairness#dispatching . ([#118782](https://github.com/kubernetes/kubernetes/pull/118782), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] +- Indexed Job pods now have the pod completion index set as a pod label. ([#118883](https://github.com/kubernetes/kubernetes/pull/118883), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps] +- Kube-proxy: added `--logging-format` flag to support structured logging. ([#117800](https://github.com/kubernetes/kubernetes/pull/117800), [@cyclinder](https://github.com/cyclinder)) +- NodeVolumeLimits implement the `PreFilter` extension point for skipping the Filter phase if the Pod doesn't use volumes with limits. ([#115398](https://github.com/kubernetes/kubernetes/pull/115398), [@tangwz](https://github.com/tangwz)) [SIG Scheduling] +- PersistentVolumes have a new `LastPhaseTransitionTime` field which holds a timestamp of when the volume last transitioned its phase. ([#116469](https://github.com/kubernetes/kubernetes/pull/116469), [@RomanBednar](https://github.com/RomanBednar)) +- Pods which set `hostNetwork: true` and declare ports, get the `hostPort` field set automatically. Previously this would happen in the PodTemplate of a Deployment, DaemonSet or other workload API. Now `hostPort` will only be set when an actual Pod is being created. If this presents a problem, setting the feature gate "DefaultHostNetworkHostPortsInPodTemplates" to true will revert this behavior. Please file a kubernetes bug if you need to do this. ([#117696](https://github.com/kubernetes/kubernetes/pull/117696), [@thockin](https://github.com/thockin)) [SIG Apps] +- Promoted API groups `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` to `v1beta1`. ([#118644](https://github.com/kubernetes/kubernetes/pull/118644), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery, Apps and Testing] +- Promoted the feature gate `ValidtaingAdmissionPolicy` to beta, and it is turned off by default. ([#119409](https://github.com/kubernetes/kubernetes/pull/119409), [@alexzielenski](https://github.com/alexzielenski)) +- Registered_metric_total, disabled_metric_total, hidden_metric_total & kubernetes_feature_enabled are promoted to `BETA` stability. ([#119264](https://github.com/kubernetes/kubernetes/pull/119264), [@logicalhan](https://github.com/logicalhan)) [SIG API Machinery, Architecture, Cluster Lifecycle and Instrumentation] +- Removed `resizeStatus` enum from `pvc.Status` and replaced with `AllocatedResourceStatus`. ([#116335](https://github.com/kubernetes/kubernetes/pull/116335), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Apps, Auth, Node, Storage and Testing] +- Removed `WindowsHostProcessContainers` feature-gate. ([#117570](https://github.com/kubernetes/kubernetes/pull/117570), [@marosset](https://github.com/marosset)) [SIG API Machinery, Apps, Auth, Node and Windows] +- Revised the comment about the feature-gate level for `PodFailurePolicy` from alpha to beta. ([#117802](https://github.com/kubernetes/kubernetes/pull/117802), [@kerthcet](https://github.com/kerthcet)) [SIG API Machinery and Apps] +- StatefulSet pods now have the pod index set as a pod label `statefulset.kubernetes.io/pod-index`. ([#119232](https://github.com/kubernetes/kubernetes/pull/119232), [@danielvegamyhre](https://github.com/danielvegamyhre)) [SIG Apps] +- Support for proxying a request to a peer kube-apiserver if the local apiserver is not able to serve it due to version skew or in the case the requested api is disabled on the local apiserver ([#117740](https://github.com/kubernetes/kubernetes/pull/117740), [@Richabanker](https://github.com/Richabanker)) [SIG API Machinery, Apps, Auth, Cloud Provider, Network, Node and Testing] +- Supported `BackoffLimitPerIndex` in Jobs. ([#118009](https://github.com/kubernetes/kubernetes/pull/118009), [@mimowo](https://github.com/mimowo)) +- The `IPTablesOwnershipCleanup` feature (KEP-3178) is now GA; kubelet no longer + creates the `KUBE-MARK-DROP` chain (which has been unused for several releases) + or the `KUBE-MARK-MASQ` chain (which is now only created by kube-proxy). ([#119374](https://github.com/kubernetes/kubernetes/pull/119374), [@danwinship](https://github.com/danwinship)) +- The `SelfSubjectReview` API is promoted to `authentication.k8s.io/v1` and the `kubectl auth whoami` command is GA. ([#117713](https://github.com/kubernetes/kubernetes/pull/117713), [@nabokihms](https://github.com/nabokihms)) [SIG API Machinery, Architecture, Auth, CLI and Testing] +- The names of ResourceClaims generated from ResourceClaimTemplate are now generated. The base name is still `<pod>-<claim name>`, but a random suffix will avoid name collisions. ([#117351](https://github.com/kubernetes/kubernetes/pull/117351), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing] +- The new feature gate "SidecarContainers" is now available. This feature introduces sidecar containers, a new type of init container that starts before other containers but remains running for the full duration of the pod's lifecycle and will not block pod termination. ([#116429](https://github.com/kubernetes/kubernetes/pull/116429), [@gjkim42](https://github.com/gjkim42)) [SIG API Machinery, Apps, Node, Scheduling and Testing] +- Updated the comment about the feature-gate level for `PodFailurePolicy` from alpha to beta ([#118278](https://github.com/kubernetes/kubernetes/pull/118278), [@mimowo](https://github.com/mimowo)) +- `client-go`: Improved memory use of reflector caches when watching large numbers + of objects which do not change frequently. ([#113362](https://github.com/kubernetes/kubernetes/pull/113362), [@sxllwx](https://github.com/sxllwx)) +- `component-base/logs` is now stricter about not applying configurations multiple + times and will return an error when that is attempted. Can be overridden by binaries + which need to do that. ([#117108](https://github.com/kubernetes/kubernetes/pull/117108), [@pohly](https://github.com/pohly)) +- `kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate + is now available as alpha (off by default). When enabled, the `legacy-service-account-token-cleaner` + controller loop removes service account token secrets that have not been used + in the time specified by `--legacy-service-account-token-clean-up-period` (defaulting + to one year), **and are** referenced from the `.secrets` list of a ServiceAccount + object, **and are not** referenced from pods. ([#115554](https://github.com/kubernetes/kubernetes/pull/115554), [@yt2985](https://github.com/yt2985)) +- `kube-scheduler` component config (KubeSchedulerConfiguration) `kubescheduler.config.k8s.io/v1beta2` + is removed in `v1.28`. Migrate `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`. ([#117649](https://github.com/kubernetes/kubernetes/pull/117649), [@SataQiu](https://github.com/SataQiu)) + +### Feature + +- A ValidatingAdmissionPolicy now has its `messageExpression` field checked against resolved types. ([#119209](https://github.com/kubernetes/kubernetes/pull/119209), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery] +- Added '--concurrent-cron-job-syncs' flag for `kube-controller-manager` to set the number of workers for cron job controller. ([#117550](https://github.com/kubernetes/kubernetes/pull/117550), [@borgerli](https://github.com/borgerli)) +- Added '--concurrent-job-syncs' flag for `kube-controller-manager` to set the number of job controller workers. ([#117138](https://github.com/kubernetes/kubernetes/pull/117138), [@tosi3k](https://github.com/tosi3k)) +- Added `--concurrency` flag to configure the concurrency of `kubectl diff` execution, defaults to 1. ([#118810](https://github.com/kubernetes/kubernetes/pull/118810), [@brancz](https://github.com/brancz)) +- Added `ConsistentListFromCache` feature gate that allows apiserver to serve consistent lists from cache. ([#118508](https://github.com/kubernetes/kubernetes/pull/118508), [@serathius](https://github.com/serathius)) +- Added `DisruptionTarget` condition to the pod preempted by kubelet to make room for a critical pod. ([#117586](https://github.com/kubernetes/kubernetes/pull/117586), [@mimowo](https://github.com/mimowo)) +- Added `apiserver_admission_match_condition_evaluation_seconds` and `apiserver_admission_match_condition_exclusions_total` metrics. ([#119311](https://github.com/kubernetes/kubernetes/pull/119311), [@ivelichkovich](https://github.com/ivelichkovich)) +- Added a container image for `kubectl` at `registry.k8s.io/kubectl` across the same architectures as other images (linux/amd64 linux/arm64 linux/s390x linux/ppc64le) ([#116672](https://github.com/kubernetes/kubernetes/pull/116672), [@dims](https://github.com/dims)) [SIG Architecture and Release] +- Added a new command line argument `--interactive` to kubectl. The new command line argument lets a user confirm deletion requests per resource interactively. ([#114530](https://github.com/kubernetes/kubernetes/pull/114530), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] +- Added a new feature gate, `SchedulerQueueingHints` (enabled by default). + The new feature gate activates a framework for fine-grained filtering of events related to scheduler plugins. + In this release, no default scheduling plugins make use of the hinting framework, so you should not expect any behavior changes. ([#119328](https://github.com/kubernetes/kubernetes/pull/119328), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] +- Added full cgroup v2 swap support for both `Limited` and `Unlimited` swap. + + When `LimitedSwap` is enabled the swap limit would be automatically calculated for + Burstable QoS pods. For Best-Effort/Guaranteed QoS pods, swap would be disabled. + + Containers with memory requests equal to their memory limits also won't have + swap access, and it is a way to opt-out of swap for a single container. + + The formula for the swap limit for Burstable QoS pods is: + `(<memory-request>/<node-memory-capacity>)*<node-swap-capacity>`. + + Support for `cgroup v1` is removed. ([#118764](https://github.com/kubernetes/kubernetes/pull/118764), [@iholder101](https://github.com/iholder101)) +- Added handling for pods in podgc for `PodReplacementPolicy` or `PodDisruption`. ([#118772](https://github.com/kubernetes/kubernetes/pull/118772), [@kannon92](https://github.com/kannon92)) +- Added reason to metric `attachdetach_controller_forced_detaches` in the attach detach controller. ([#119185](https://github.com/kubernetes/kubernetes/pull/119185), [@xing-yang](https://github.com/xing-yang)) +- Added support for pod `hostNetwork` field selector ([#110477](https://github.com/kubernetes/kubernetes/pull/110477), [@halfcrazy](https://github.com/halfcrazy)) [SIG Apps and Node] +- Added swap to stats to Summary API and Prometheus endpoints (stats/summary and /metrics/resource). ([#118865](https://github.com/kubernetes/kubernetes/pull/118865), [@iholder101](https://github.com/iholder101)) +- Added the implementation for `PodRecreationPolicy` to wait for the creation of pods once the existing ones are fully terminated. ([#117015](https://github.com/kubernetes/kubernetes/pull/117015), [@kannon92](https://github.com/kannon92)) +- Allow to monitor client-go DNS resolver latencies via `rest_client_dns_resolution_duration_seconds` Prometheus metric. ([#115357](https://github.com/kubernetes/kubernetes/pull/115357), [@mfojtik](https://github.com/mfojtik)) +- Apiserver adds two new metrics `etcd_requests_total` and `etcd_request_errors_total` that allow users to monitor requests to etcd storage, split by operation and resource type. ([#117222](https://github.com/kubernetes/kubernetes/pull/117222), [@iyear](https://github.com/iyear)) [SIG API Machinery] +- Bumped `distroless-iptables` to 0.2.6 based on Go 1.20.6. ([#119365](https://github.com/kubernetes/kubernetes/pull/119365), [@xmudrii](https://github.com/xmudrii)) +- Bumped metrics-server to `v0.6.3`. ([#117120](https://github.com/kubernetes/kubernetes/pull/117120), [@dgrisonnet](https://github.com/dgrisonnet)) +- CEL authorizer checks no longer raise runtime errors. Calls to "check" will always return a decision object and the authorization error (if any) can be accessed within expressions using the new decision methods "errored" and "error". ([#118804](https://github.com/kubernetes/kubernetes/pull/118804), [@benluddy](https://github.com/benluddy)) [SIG API Machinery] +- CRI: exposed commit memory bytes in container stats specific to Windows ([#119238](https://github.com/kubernetes/kubernetes/pull/119238), [@kiashok](https://github.com/kiashok)) +- Client-go now exposes two new metrics to monitor the client-go logic that + generate http.Transports for the clients. + + - `rest_client_transport_cache_entries` is a gauge metric + with the number of existing entries in the internal cache + + - `rest_client_transport_create_calls_total` is a counter + that increments each time a new transport is created, storing + the result of the operation needed to generate it: hit, miss + or uncacheable. ([#117295](https://github.com/kubernetes/kubernetes/pull/117295), [@aojea](https://github.com/aojea)) +- Cloud controller manager's node controller now emits timing metrics for initial `Node` synchronization. These metrics measure the delay between the creation of a new `Node` and the node controller's initial management actions, such as removing the cloud provider taint. These metrics should be consulted when setting cloud controller manager's `--concurrent-node-syncs` flag. ([#119241](https://github.com/kubernetes/kubernetes/pull/119241), [@cartermckinnon](https://github.com/cartermckinnon)) [SIG Cloud Provider and Instrumentation] +- Dynamic resource allocation: when a claim uses "wait for first consumer" allocation (the default), then it will now get deallocated after it was used by a pod. That ensures that the next pod isn't affected by previous scheduling decision and that resources are not kept allocated unless really needed. If keeping a claim allocated is desired, use "immediate allocation." ([#118936](https://github.com/kubernetes/kubernetes/pull/118936), [@pohly](https://github.com/pohly)) +- Enabled use of pods with volumes and user namespaces. The feature gate was renamed from `UserNamespacesStatelessPodsSupport` to `UserNamespacesSupport`. ([#118691](https://github.com/kubernetes/kubernetes/pull/118691), [@giuseppe](https://github.com/giuseppe)) +- External credential provider plugins will now have their standard error output logged by kubelet upon failures. ([#117448](https://github.com/kubernetes/kubernetes/pull/117448), [@cartermckinnon](https://github.com/cartermckinnon)) +- Faster scheduling when `ResourceClaims` are involved. ([#119078](https://github.com/kubernetes/kubernetes/pull/119078), [@pohly](https://github.com/pohly)) +- Fixed the alpha `CloudDualStackNodeIPs` feature. ([#118329](https://github.com/kubernetes/kubernetes/pull/118329), [@danwinship](https://github.com/danwinship)) +- Graduated the `LegacyServiceAccountTokenTracking` feature gate to GA. The usage of auto-generated secret-based service account token now produces warnings, and relevant Secrets are labeled with a last-used timestamp (label key `kubernetes.io/legacy-token-last-used`). ([#117591](https://github.com/kubernetes/kubernetes/pull/117591), [@zshihang](https://github.com/zshihang)) [SIG API Machinery, Auth and Testing] +- Graduated the `ProbeTerminationGracePeriod` feature gate to GA. ([#114307](https://github.com/kubernetes/kubernetes/pull/114307), [@rphillips](https://github.com/rphillips)) +- Hashing of KeyID in Logs + + This release adds a feature to hash the `KeyID` values in the logs. The `KeyID` values are sensitive information that should not be exposed in plain text in the logs. By hashing the `KeyID` values, we can protect the confidentiality of the data while still being able to log the necessary information. ([#118988](https://github.com/kubernetes/kubernetes/pull/118988), [@nilekhc](https://github.com/nilekhc)) [SIG API Machinery, Auth and Testing] +- Implemented alpha support for a drop-in kubelet configuration directory. ([#119390](https://github.com/kubernetes/kubernetes/pull/119390), [@sohankunkerkar](https://github.com/sohankunkerkar)) +- In the course of admitting a single request, the ValidatingAdmissionPolicy plugin will perform no more than one authorization check per unique authorizer expression. All evaluations of identical authorizer expressions will produce the same decision. ([#116443](https://github.com/kubernetes/kubernetes/pull/116443), [@benluddy](https://github.com/benluddy)) [SIG API Machinery and Testing] +- Introduce support for CEL optionals (see [CEL spec proposal 246](https://github.com/google/cel-spec/wiki/proposal-246)). + This feature will not be fully enabled until a future Kubernetes release (likely to be v1.29), but is added in v1.28 to enable + safe rollback on downgrade. ([#118339](https://github.com/kubernetes/kubernetes/pull/118339), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, Cloud Provider and Testing] +- Kube-controller-manager: the dynamic resource controller steps in when a pod got created such that the scheduler ignores it (i.e. spec.nodeName is set) and then takes care of triggering delayed resource claim allocation and/or reserving a claim for the pod. ([#118209](https://github.com/kubernetes/kubernetes/pull/118209), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node and Testing] +- Kube-proxy handles Terminating EndpointSlices conditions and enables zero downtime deployments for Services with ExternalTrafficPolicy=Local author: @andrewsykim ([#117718](https://github.com/kubernetes/kubernetes/pull/117718), [@aojea](https://github.com/aojea)) [SIG Network, Testing and Windows] +- Kube-proxy service health returns http header `X-Load-Balancing-Endpoint-Weight` with number of local endpoints. The same information is still available in response body JSON `payload.LocalEndpoints`. ([#118999](https://github.com/kubernetes/kubernetes/pull/118999), [@cezarygerard](https://github.com/cezarygerard)) +- Kubelet: plugins for dynamic resource allocation may use the `v1alpha3` API instead of v1alpha2 if they want to do prepare/unprepare operations in batches. ([#119012](https://github.com/kubernetes/kubernetes/pull/119012), [@pohly](https://github.com/pohly)) +- Kubelet: security of dynamic resource allocation was enhanced by limiting node access to those objects that are needed on the node. ([#116254](https://github.com/kubernetes/kubernetes/pull/116254), [@pohly](https://github.com/pohly)) [SIG Auth and Testing] +- Kubelet: un-deprecated `--provider-id` flag. ([#116530](https://github.com/kubernetes/kubernetes/pull/116530), [@pacoxu](https://github.com/pacoxu)) +- Kubernetes is now built with Go `1.20.4`. ([#117744](https://github.com/kubernetes/kubernetes/pull/117744), [@xmudrii](https://github.com/xmudrii)) [SIG Release and Testing] +- Kubernetes is now built with Go `1.20.5`. ([#118507](https://github.com/kubernetes/kubernetes/pull/118507), [@jeremyrickard](https://github.com/jeremyrickard)) +- Kubernetes is now built with Go `1.20.6`. ([#119324](https://github.com/kubernetes/kubernetes/pull/119324), [@xmudrii](https://github.com/xmudrii)) +- Metric `scheduler_scheduler_goroutines` is removed. Use `scheduler_goroutines` instead. ([#117727](https://github.com/kubernetes/kubernetes/pull/117727), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling] +- Migrated `pkg/controller/endpoint` to contextual logging. ([#116755](https://github.com/kubernetes/kubernetes/pull/116755), [@my-git9](https://github.com/my-git9)) +- Migrated `pkg/scheduler/framework/preemption` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116835](https://github.com/kubernetes/kubernetes/pull/116835), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Migrated `pod-security-admission` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#114471](https://github.com/kubernetes/kubernetes/pull/114471), [@Namanl2001](https://github.com/Namanl2001)) [SIG Apps and Auth] +- Migrated controller functions to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116930](https://github.com/kubernetes/kubernetes/pull/116930), [@fatsheep9146](https://github.com/fatsheep9146)) [SIG API Machinery, Apps, Network, Node, Storage and Testing] +- Migrated the Job controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116910](https://github.com/kubernetes/kubernetes/pull/116910), [@fatsheep9146](https://github.com/fatsheep9146)) [SIG API Machinery, Apps and Testing] +- Migrated the `EndpointSlice` and `EndpointSliceMirroring` controllers (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#115295](https://github.com/kubernetes/kubernetes/pull/115295), [@Namanl2001](https://github.com/Namanl2001)) [SIG API Machinery, Apps, Network and Testing] +- Migrated the certificate controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#113994](https://github.com/kubernetes/kubernetes/pull/113994), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Apps, Auth, Instrumentation and Testing] +- Migrated the noderesources scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116748](https://github.com/kubernetes/kubernetes/pull/116748), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Migrated the podtopologyspread scheduler plugins to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116797](https://github.com/kubernetes/kubernetes/pull/116797), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling] +- Moved `non-graceful node` shutdown to GA. ([#118228](https://github.com/kubernetes/kubernetes/pull/118228), [@carlory](https://github.com/carlory)) +- New CEL Library functions to support Kubernetes Quantities. ([#118803](https://github.com/kubernetes/kubernetes/pull/118803), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery] +- New Metrics Added for Encryption Configuration Controller + + This release adds new metrics to the Encryption Configuration Controller to help monitor the automatic reloading of encryption configuration. The new metrics include: + + - `apiserver_encryption_config_controller_automatic_reload_failures_total`: Total number of failed automatic reloads of encryption configuration. + - `apiserver_encryption_config_controller_automatic_reload_success_total`: Total number of successful automatic reloads of encryption configuration. + - `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`: Timestamp of the last successful or failed automatic reload of encryption configuration. + + These metrics can be used to monitor the health of the Encryption Configuration Controller and to troubleshoot any issues that may arise during automatic reloading of encryption configuration. ([#119008](https://github.com/kubernetes/kubernetes/pull/119008), [@nilekhc](https://github.com/nilekhc)) +- New staging repo has been created for the `EndpointSlice` reconciler. ([#118953](https://github.com/kubernetes/kubernetes/pull/118953), [@mskrocki](https://github.com/mskrocki)) +- Promoted `ServiceNodePortStaticSubrange` feature gate to beta, and it will be enabled by default. ([#117877](https://github.com/kubernetes/kubernetes/pull/117877), [@xuzhenglun](https://github.com/xuzhenglun)) +- Promoted the following apiserver flowcontrol metrics to Beta: + + - apiserver_flowcontrol_request_wait_duration_seconds + - apiserver_flowcontrol_current_executing_seats + - apiserver_flowcontrol_nominal_limit_seats + - apiserver_flowcontrol_rejected_requests_total + - apiserver_flowcontrol_dispatched_requests_total + - apiserver_flowcontrol_current_inqueue_requests + - apiserver_flowcontrol_current_executing_requests ([#119110](https://github.com/kubernetes/kubernetes/pull/119110), [@andrewsykim](https://github.com/andrewsykim)) +- Renamed `PodHasNetwork` to `PodReadyToStartContainers`. ([#117702](https://github.com/kubernetes/kubernetes/pull/117702), [@kannon92](https://github.com/kannon92)) [SIG Node and Testing] +- Replaced `apiserver_storage_db_total_size_in_bytes` with `apiserver_storage_size_bytes` metric. ([#118812](https://github.com/kubernetes/kubernetes/pull/118812), [@serathius](https://github.com/serathius)) +- Scheduler now waits for handlers to finish syncing before the scheduling cycles start. ([#116729](https://github.com/kubernetes/kubernetes/pull/116729), [@AxeZhan](https://github.com/AxeZhan)) +- Set metrics-server's metric-resolution to 15s. ([#117121](https://github.com/kubernetes/kubernetes/pull/117121), [@dgrisonnet](https://github.com/dgrisonnet)) [SIG Cloud Provider and Instrumentation] +- SubjectAccessReview requests sent to webhook authorizers now default `spec.resourceAttributes.version` to `*` if unset. ([#116937](https://github.com/kubernetes/kubernetes/pull/116937), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps and Auth] +- Supported specifying a custom retry period for cloud `load-balancer` operations. ([#94021](https://github.com/kubernetes/kubernetes/pull/94021), [@timoreimann](https://github.com/timoreimann)) +- The "value" part in the `wait --for=jsonpath='{expression}'[=value]` is now + optional. If the value is not provided i.e., the command looks like `wait --for=jsonpath='{expression}'` + then the wait condition is interpreted as matched when the expression returns + *any* single JSON value like object or a literal. ([#118160](https://github.com/kubernetes/kubernetes/pull/118160), [@minherz](https://github.com/minherz)) +- The Kubernetes apiserver now emits a warning message for Pods with a null labelSelector in podAffinity or topologySpreadConstraints. The null labelSelector means "match none". Using it in podAffinity or topologySpreadConstraint could lead to unintended behavior. ([#117025](https://github.com/kubernetes/kubernetes/pull/117025), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] +- The `AdvancedAuditing` feature gate that graduated to GA in `v1.12` (and was unconditionally + enabled) has been removed. ([#118763](https://github.com/kubernetes/kubernetes/pull/118763), [@Shubham82](https://github.com/Shubham82)) +- The `ExpandedDNSConfig` feature has graduated to GA. 'ExpandedDNSConfig' feature was locked to default value and will be removed in v1.30. If you were setting this feature gate explicitly, please remove it now. ([#116741](https://github.com/kubernetes/kubernetes/pull/116741), [@gjkim42](https://github.com/gjkim42)) [SIG Apps, Network and Node] +- The apiserver debug endpoint `/debug/api_priority_and_fairness/dump_requests` has been extended to dump executing requests as well as queued ones. A column for StartTime has been added to the returned table, with the queued requests having a StartTime of "0001-01-01T00:00:00Z". The executing requests have a RequestIndexInQueue of -1, and the QueueIndex is also -1 for priority levels without queues. ([#119009](https://github.com/kubernetes/kubernetes/pull/119009), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] +- The helping message of commands which have sub-commands is now clearer and more instructive. It will show the full command instead of `kubectl <command> --help ...` + + Changed `kubectl create secret --help` description. There will be a short introduction to the three secret types and clearer guidance on how to use the command. ([#117930](https://github.com/kubernetes/kubernetes/pull/117930), [@LronDC](https://github.com/LronDC)) +- The scheduler skips the `InterPodAffinity` Score plugin when nothing to do with the Pod. + It will affect some metrics values related to the InterPodAffinity Score plugin. ([#117794](https://github.com/kubernetes/kubernetes/pull/117794), [@utam0k](https://github.com/utam0k)) [SIG Scheduling] +- The scheduler skips the `PodTopologySpread` Filter plugin if no spread constraints. + It will affect some metrics values related to the `PodTopologySpread` Filter plugin. ([#117683](https://github.com/kubernetes/kubernetes/pull/117683), [@utam0k](https://github.com/utam0k)) +- The scheduler skips the `PodTopologySpread` Score plugin when nothing to do with the Pod. + It will affect some metrics values related to the PodTopologySpread Score plugin. ([#118608](https://github.com/kubernetes/kubernetes/pull/118608), [@utam0k](https://github.com/utam0k)) +- The short names `vwc` and `mwc` were introduced for the resources `validatingwebhookconfigurations` and `mutatingwebhookconfigurations`. ([#117535](https://github.com/kubernetes/kubernetes/pull/117535), [@hysyeah](https://github.com/hysyeah)) +- Updated etcd image to `3.5.9-0`. ([#117999](https://github.com/kubernetes/kubernetes/pull/117999), [@kkkkun](https://github.com/kkkkun)) [SIG API Machinery] +- Updated cAdvisor to `v0.47.2` and fixed metrics in `cri-o` when a container restarts. ([#118774](https://github.com/kubernetes/kubernetes/pull/118774), [@harche](https://github.com/harche)) +- Updated distroless I-tables to use registry.k8s.io/build-image/distroless-iptables:v0.2.5 ([#118541](https://github.com/kubernetes/kubernetes/pull/118541), [@jeremyrickard](https://github.com/jeremyrickard)) [SIG Testing] +- Updated distroless iptables to use released image `registry.k8s.io/build-image/distroless-iptables:v0.2.4` ([#117746](https://github.com/kubernetes/kubernetes/pull/117746), [@xmudrii](https://github.com/xmudrii)) [SIG Testing] +- Updated the scheduler interface and cache methods to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116849](https://github.com/kubernetes/kubernetes/pull/116849), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- ValidatingAdmissionPolicy type checking now correctly handles `authorizer` variable. ([#118540](https://github.com/kubernetes/kubernetes/pull/118540), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery] +- When a pod is done or not going to run, then `ResourceClaims` for it can be reused by other pods or deleted. ([#118817](https://github.com/kubernetes/kubernetes/pull/118817), [@pohly](https://github.com/pohly)) +- With the `KubeletCgroupDriverFromCRI` feature gate enabled and sufficiently new version of a container + runtime, kubelet automatically detects the cgroup driver config from the container runtime, eliminating + the need to specify the `cgroupDriver` configuration option (or `--cgroup-driver` flag) of kubelet. ([#118770](https://github.com/kubernetes/kubernetes/pull/118770), [@marquiz](https://github.com/marquiz)) +- [Kube-proxy]: Implemented connection draining for terminating nodes. ([#116470](https://github.com/kubernetes/kubernetes/pull/116470), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) +- `--version=v1.X.Y...` can now be used to set the prerelease and buildID portions of the version reported by components ([#117688](https://github.com/kubernetes/kubernetes/pull/117688), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture and Release] +- `RetroactiveDefaultStorageClass` feature made stable and enabled by default. ([#118102](https://github.com/kubernetes/kubernetes/pull/118102), [@RomanBednar](https://github.com/RomanBednar)) +- `TopologyManagerPolicyOptions` feature-flag is promoted to beta and enabled by default. ([#118816](https://github.com/kubernetes/kubernetes/pull/118816), [@PiotrProkop](https://github.com/PiotrProkop)) +- `force_delete_pods_total` and `force_delete_pod_errors_total` metrics count all pod deletion behaviors. ([#118480](https://github.com/kubernetes/kubernetes/pull/118480), [@carlory](https://github.com/carlory)) +- `klog` text output now uses JSON as encoding for structs, maps and slices. ([#117687](https://github.com/kubernetes/kubernetes/pull/117687), [@pohly](https://github.com/pohly)) +- `kube-proxy` in iptables mode will now have separate `sync_full_proxy_rules_duration_seconds`\nand + `sync_partial_proxy_rules_duration_seconds` (in addition to the existing\n`sync_proxy_rules_duration_seconds`), + giving better information about the duration of each \nsync type, rather than + only giving a weighted average of the two sync types together. ([#117787](https://github.com/kubernetes/kubernetes/pull/117787), [@danwinship](https://github.com/danwinship)) +- `kubeadm`: added a new "kubeadm config validate" command that can be used to + validate any input config file. Use the `--config` flag to pass a config file + to it. See the command `--help` screen for more information. As a result of adding + this new command, enhance the validation capabilities of the existing "kubeadm + config migrate" command. For both commands unknown APIs or fields will throw errors. ([#118013](https://github.com/kubernetes/kubernetes/pull/118013), [@neolit123](https://github.com/neolit123)) +- `kubeadm`: added the `--allow-experimental-api` flag to "kubeadm config migrate/validate" commands. It can be used to migrate or validate WIP/experimental APIs in the future. ([#118866](https://github.com/kubernetes/kubernetes/pull/118866), [@neolit123](https://github.com/neolit123)) +- `kubeadm`: generate CA certificates with a start time that is offset 5 + minutes in the past relative to the current system time to workaround cases of + clock desync. ([#118922](https://github.com/kubernetes/kubernetes/pull/118922), [@champtar](https://github.com/champtar)) +- `plugin_evaluation_total` metric supports prescore/score extension point. + The metric doesn't get incremented when the prescore/score plugin has nothing to do with an incoming pod. ([#118025](https://github.com/kubernetes/kubernetes/pull/118025), [@AxeZhan](https://github.com/AxeZhan)) + +### Documentation + +- Enhanced clarity in error messaging when waiting for volume creation ([#118262](https://github.com/kubernetes/kubernetes/pull/118262), [@torredil](https://github.com/torredil)) [SIG Apps and Storage] + +### Failing Test + +- Allowed Azure Disk e2es to use newer topology labels if available from nodes. ([#117216](https://github.com/kubernetes/kubernetes/pull/117216), [@gnufied](https://github.com/gnufied)) +- Fixed nil pointer in test AfterEach volumeperf.go for sidecar release. ([#117368](https://github.com/kubernetes/kubernetes/pull/117368), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu)) +- Switched back to `debian-base` instead of distroless for conformance image. ([#119422](https://github.com/kubernetes/kubernetes/pull/119422), [@saschagrunert](https://github.com/saschagrunert)) + +### Bug or Regression + +- Added a new event `FailedToRetrieveImagePullSecret` which will be generated when a pod references an `ImagePullSecret` that doesn't exist. ([#117927](https://github.com/kubernetes/kubernetes/pull/117927), [@kaisoz](https://github.com/kaisoz)) [SIG Node] +- Added additional validation for endpoint IP configuration while iterating through queried endpoint list. ([#116749](https://github.com/kubernetes/kubernetes/pull/116749), [@princepereira](https://github.com/princepereira)) +- Added warning for dup ports update/patching in pod's container ports and service ports. ([#113245](https://github.com/kubernetes/kubernetes/pull/113245), [@pacoxu](https://github.com/pacoxu)) +- As in Kubernetes `v1.26` and `v1.27`, resource claims do not get prepared by `kubelet` when no container uses them. This was changed accidentally in [v1.28.0-alpha.1](https://github.com/kubernetes/kubernetes/releases/tag/v1.28.0-alpha.1). ([#118786](https://github.com/kubernetes/kubernetes/pull/118786), [@pohly](https://github.com/pohly)) +- Bumped cadvisor version to `v0.47.3`. ([#119225](https://github.com/kubernetes/kubernetes/pull/119225), [@iholder101](https://github.com/iholder101)) +- CI job `ci-kubernetes-node-arm64-ubuntu-serial` will test node e2e on arm64, `use-dockerized-build` and `target-build-arch` are required to run this job. ([#118567](https://github.com/kubernetes/kubernetes/pull/118567), [@chendave](https://github.com/chendave)) +- CVE-2023-27561 CVE-2023-25809 CVE-2023-28642: Bump fix runc v1.1.4 -> v1.1.5 ([#117095](https://github.com/kubernetes/kubernetes/pull/117095), [@PushkarJ](https://github.com/PushkarJ)) [SIG Architecture, Node and Security] +- Code blocks in `kubectl {$COMMAND}--help` will move right by 3 indentation. ([#118029](https://github.com/kubernetes/kubernetes/pull/118029), [@ardaguclu](https://github.com/ardaguclu)) +- Compute the backoff delay more accurately for deleted pods ([#118413](https://github.com/kubernetes/kubernetes/pull/118413), [@mimowo](https://github.com/mimowo)) [SIG Apps] +- Declare Job as finished only after removing all Pod finalizers to avoid orphan Pods. ([#119159](https://github.com/kubernetes/kubernetes/pull/119159), [@alculquicondor](https://github.com/alculquicondor)) +- During device plugin allocation, resources requested by the pod can only be allocated if the device plugin has registered itself to kubelet AND healthy devices are present on the node to be allocated. If these conditions are not sattsfied, the pod would fail with `UnexpectedAdmissionError` error. ([#116376](https://github.com/kubernetes/kubernetes/pull/116376), [@swatisehgal](https://github.com/swatisehgal)) [SIG Node and Testing] +- Dynamic Resource Allocation: logged an error and submitted an event when `Kubelet` failed to prepare dynamic resources. ([#118578](https://github.com/kubernetes/kubernetes/pull/118578), [@bart0sh](https://github.com/bart0sh)) +- Ensure Job status updates are batched by 1s. This fixes an unlikely scenario when a sequence of immediately + completing pods could trigger a sequence of non-batched Job status updates. ([#118470](https://github.com/kubernetes/kubernetes/pull/118470), [@mimowo](https://github.com/mimowo)) [SIG Apps] +- Faster `StatefulSet` creation when `Parallel` mode is enabled. ([#117865](https://github.com/kubernetes/kubernetes/pull/117865), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) +- Fixed a data race in TopologyCache when `AddHints` and `SetNodes` are called concurrently. ([#117249](https://github.com/kubernetes/kubernetes/pull/117249), [@tnqn](https://github.com/tnqn)) [SIG Apps and Network] +- Fixed a race condition in `kube-proxy` when using LocalModeNodeCIDR, to avoid dropping Services traffic if the object node is recreated when `kube-proxy` is starting. ([#118499](https://github.com/kubernetes/kubernetes/pull/118499), [@aojea](https://github.com/aojea)) +- Fixed bug where `listOfStrings.join()` in CEL expressions resulted in an unexpected internal error. ([#117593](https://github.com/kubernetes/kubernetes/pull/117593), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery] +- Fixed incorrect calculation for ResourceQuota with PriorityClass as its scope. ([#117677](https://github.com/kubernetes/kubernetes/pull/117677), [@Huang-Wei](https://github.com/Huang-Wei)) [SIG API Machinery] +- Fix: After a Node is down and take some time to get back to up again, the mount point of the evicted Pods cannot be cleaned up successfully. (#111933) Meanwhile Kubelet will print the log `Orphaned pod "xxx" found, but error not a directory occurred when trying to remove the volumes dir` every 2 seconds. (#105536) ([#116134](https://github.com/kubernetes/kubernetes/pull/116134), [@cvvz](https://github.com/cvvz)) [SIG Node and Storage] +- Fix: The volume is not detached after the pod and PVC objects are deleted. ([#116138](https://github.com/kubernetes/kubernetes/pull/116138), [@cvvz](https://github.com/cvvz)) [SIG Storage] +- Fixed Cronjob `status.lastSuccessfulTime` not populated by a manually triggered ([#118530](https://github.com/kubernetes/kubernetes/pull/118530), [@carlory](https://github.com/carlory)) +- Fixed Topology Aware Hints not working when the `topology.kubernetes.io/zone` label is added after Node creation. ([#117245](https://github.com/kubernetes/kubernetes/pull/117245), [@tnqn](https://github.com/tnqn)) +- Fixed `creationTimestamp: null` causing unnecessary writes to etcd. ([#116865](https://github.com/kubernetes/kubernetes/pull/116865), [@alexzielenski](https://github.com/alexzielenski)) +- Fixed `vSphere` cloud provider not to skip detach volumes from nodes at `kube-controller-startup`. ([#117243](https://github.com/kubernetes/kubernetes/pull/117243), [@jsafrane](https://github.com/jsafrane)) +- Fixed a bug at `kube-apiserver` start where `APIService` objects for custom resources could be deleted and recreated. ([#118104](https://github.com/kubernetes/kubernetes/pull/118104), [@liggitt](https://github.com/liggitt)) +- Fixed a bug that unintentionally overrides custom Accept headers in http (live-/readiness)-probes if the header is in lowercase. ([#114606](https://github.com/kubernetes/kubernetes/pull/114606), [@tuunit](https://github.com/tuunit)) +- Fixed a bug where `kubectl port-forward`, when used with a Deployment, could connect to a terminating pod even when a running pod is also available. ([#119256](https://github.com/kubernetes/kubernetes/pull/119256), [@brianpursley](https://github.com/brianpursley)) [SIG CLI] +- Fixed a bug where pv recycler failed to scrub volume with too many files in the directory due to hitting ARG_MAX limit with rm command (#117189). ([#117283](https://github.com/kubernetes/kubernetes/pull/117283), [@defo89](https://github.com/defo89)) [SIG Cloud Provider and Storage] +- Fixed a memory leak in the Kubernetes API server that occurs during APIService processing. ([#117258](https://github.com/kubernetes/kubernetes/pull/117258), [@enj](https://github.com/enj)) [SIG API Machinery] +- Fixed a race condition between `Run()` and `SetTransform()` and `SetWatchErrorHandler()` in shared informers. ([#117870](https://github.com/kubernetes/kubernetes/pull/117870), [@howardjohn](https://github.com/howardjohn)) [SIG API Machinery] +- Fixed a race condition serving `OpenAPI` content ([#117705](https://github.com/kubernetes/kubernetes/pull/117705), [@Jefftree](https://github.com/Jefftree)) +- Fixed a regression in `1.27.0` that resulted in `missing metadata in converted object` errors when modifying objects for multi-version custom resource definitions with a conversion strategy of `None`. ([#117301](https://github.com/kubernetes/kubernetes/pull/117301), [@ncdc](https://github.com/ncdc)) +- Fixed a regression in `kubectl` and `client-go` discovery when configured with a server URL other than the root of a server ([#117495](https://github.com/kubernetes/kubernetes/pull/117495), [@ardaguclu](https://github.com/ardaguclu)) +- Fixed an issue where the API server did not send impersonated UID to authentication webhooks. ([#116681](https://github.com/kubernetes/kubernetes/pull/116681), [@stlaz](https://github.com/stlaz)) [SIG API Machinery and Auth] +- Fixed bug that caused a resource to include patch directives when using strategic merge patch against a non-existent field. ([#117568](https://github.com/kubernetes/kubernetes/pull/117568), [@alexzielenski](https://github.com/alexzielenski)) +- Fixed bug to correctly report `ErrRegistryUnavailable` on pulling container images for remote CRI runtimes. ([#117612](https://github.com/kubernetes/kubernetes/pull/117612), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] +- Fixed bug where explain was not properly respecting jsonpaths. ([#115694](https://github.com/kubernetes/kubernetes/pull/115694), [@mpuckett159](https://github.com/mpuckett159)) +- Fixed bug where using the $deleteFromPrimitiveList directive in a strategic merge patch of certain fields would remove the other values from the list instead of the values specified. ([#110472](https://github.com/kubernetes/kubernetes/pull/110472), [@brianpursley](https://github.com/brianpursley)) [SIG API Machinery] +- Fixed component status calling etcd health endpoint over http which exposed kubernetes to the risk of complete watch starvation and is inconsistent with other etcd probing done by `kube-apiserver`. ([#118460](https://github.com/kubernetes/kubernetes/pull/118460), [@serathius](https://github.com/serathius)) +- Fixed computing backoff delay when using Job pod failure policy, by including in the backoff delay calculation pod failures ignored from the backoffLimit counter. ([#119434](https://github.com/kubernetes/kubernetes/pull/119434), [@mimowo](https://github.com/mimowo)) +- Fixed cronjob controller handling of complex schedules, like `30 6-16/4 * * 1-5`, for example. ([#118724](https://github.com/kubernetes/kubernetes/pull/118724), [@soltysh](https://github.com/soltysh)) +- Fixed deletion of non-admissible pods that are deleted during Kubelet restart. ([#118497](https://github.com/kubernetes/kubernetes/pull/118497), [@mimowo](https://github.com/mimowo)) +- Fixed issue where `kubectl-convert` would fail when encountering resources that could not be converted to the specified api version. New behavior is to warn the user of the failed conversions and continue to convert the remaining resources. ([#117002](https://github.com/kubernetes/kubernetes/pull/117002), [@gxwilkerson33](https://github.com/gxwilkerson33)) +- Fixed issue where there was no response or error from kubectl rollout status when there were no resources of specified kind. ([#117884](https://github.com/kubernetes/kubernetes/pull/117884), [@gxwilkerson33](https://github.com/gxwilkerson33)) [SIG CLI] +- Fixed kubelet startup getting stuck with `NewVolumeManagerReconstruction` feature enabled and a CSI volume present in /var/lib/kubelet/pods. ([#117804](https://github.com/kubernetes/kubernetes/pull/117804), [@jsafrane](https://github.com/jsafrane)) [SIG Node and Storage] +- Fixed performance regression in scheduler caused by frequent metric lookup on critical code path. ([#117594](https://github.com/kubernetes/kubernetes/pull/117594), [@tosi3k](https://github.com/tosi3k)) +- Fixed restricted debug profile. ([#117543](https://github.com/kubernetes/kubernetes/pull/117543), [@mochizuki875](https://github.com/mochizuki875)) +- Fixed the `preStop` hook. This will now block the pod termination grace period. ([#115835](https://github.com/kubernetes/kubernetes/pull/115835), [@HirazawaUi](https://github.com/HirazawaUi)) +- Fixed the discoverability of `apiregistration.k8s.io` in `openapi/v3` ([#118879](https://github.com/kubernetes/kubernetes/pull/118879), [@atiratree](https://github.com/atiratree)) +- If `kubeadm reset` finds no etcd member ID for the peer it removes during the `remove-etcd-member` phase, it continues immediately to other phases, instead of retrying the phase for up to 3 minutes before continuing. ([#117724](https://github.com/kubernetes/kubernetes/pull/117724), [@dlipovetsky](https://github.com/dlipovetsky)) [SIG Cluster Lifecycle] +- Improved exponential backoff in Reflector, significantly reducing the load on Kubernetes apiserver in case of throttling of requests. ([#118132](https://github.com/kubernetes/kubernetes/pull/118132), [@marseel](https://github.com/marseel)) [SIG API Machinery and Scalability] +- Known issue: fixed that the PreEnqueue plugins aren't executed for Pods proceeding to activeQ through backoffQ. ([#117194](https://github.com/kubernetes/kubernetes/pull/117194), [@sanposhiho](https://github.com/sanposhiho)) [SIG Release and Scheduling] +- Kubeadm: the limitation that the `ignorePreflightErrors` field can not be set to `all` in kubeadm config file has been removed. ([#119351](https://github.com/kubernetes/kubernetes/pull/119351), [@SataQiu](https://github.com/SataQiu)) +- Kubelet terminates pods correctly upon restart, fixing an issue where pods may have not been fully terminated if the kubelet was restarted during pod termination. ([#117019](https://github.com/kubernetes/kubernetes/pull/117019), [@bobbypage](https://github.com/bobbypage)) [SIG Node and Testing] +- Kubelet will now skip pod resource checks when the request is zero. ([#116408](https://github.com/kubernetes/kubernetes/pull/116408), [@ChenLingPeng](https://github.com/ChenLingPeng)) +- Number of errors reported to the metric `storage_operation_duration_seconds_count` for emptyDir decreased significantly because previously one error was reported for each projected volume created. ([#117022](https://github.com/kubernetes/kubernetes/pull/117022), [@mpatlasov](https://github.com/mpatlasov)) [SIG Storage] +- Pod termination will be faster when the pod has a missing volume reference. ([#117412](https://github.com/kubernetes/kubernetes/pull/117412), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node and Testing] +- Recording timing traces had a race condition. Impact in practice was probably low. ([#117139](https://github.com/kubernetes/kubernetes/pull/117139), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node and Storage] +- Reduced CPU and memory consumption of `kube-apiserver` if OpenAPI V2 will not be accessed by any client. Also improved performance of the apiserver on installation of many CRDs. ([#118212](https://github.com/kubernetes/kubernetes/pull/118212), [@Jefftree](https://github.com/Jefftree)) +- Removed leading zeros from the etcd member ID in kubeadm log messages. ([#117919](https://github.com/kubernetes/kubernetes/pull/117919), [@dlipovetsky](https://github.com/dlipovetsky)) [SIG Cluster Lifecycle] +- Resolves a spurious "Unknown discovery response content-type" error in client-go discovery requests by tolerating extra content-type parameters in API responses ([#117571](https://github.com/kubernetes/kubernetes/pull/117571), [@seans3](https://github.com/seans3)) [SIG API Machinery] +- Reverted NewVolumeManagerReconstruction and SELinuxMountReadWriteOncePod feature gates to disabled by default to resolve a regression of volume reconstruction on kubelet/node restart ([#117751](https://github.com/kubernetes/kubernetes/pull/117751), [@liggitt](https://github.com/liggitt)) [SIG Storage] +- Setting a mirror pod's phase to Succeeded or Failed can prevent the corresponding static pod from restarting due mutation of a Kubelet cache. ([#116482](https://github.com/kubernetes/kubernetes/pull/116482), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node] +- Show a warning when `volume.beta.kubernetes.io/storage-class` annotation is used in pv or pvc ([#117036](https://github.com/kubernetes/kubernetes/pull/117036), [@haoruan](https://github.com/haoruan)) [SIG Storage] +- Static pods were taking extra time to be restarted after being updated. Static pods that are waiting to restart were not correctly counted in `kubelet_working_pods`. ([#116995](https://github.com/kubernetes/kubernetes/pull/116995), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node] +- The Daemonset controller creates replacements for terminal Pods, which can appear during VM preemptions or when using Pod finalizers. ([#118716](https://github.com/kubernetes/kubernetes/pull/118716), [@alculquicondor](https://github.com/alculquicondor)) +- The `pod_scheduling_duration_seconds` metrics won't consider the time when a pod fails `PreEnqueue` (like being gated). ([#118049](https://github.com/kubernetes/kubernetes/pull/118049), [@helayoty](https://github.com/helayoty)) +- The kube-proxy `sync_proxy_rules_iptables_total` metric has now reverted back + to its pre-1.27 behavior of tracking the total number of iptables rules that + kube-proxy is responsible for, rather than only counting the number of rules + that it re-synced on the last sync. The new `sync_proxy_rules_iptables_last` + metric now gives the latter number. ([#119140](https://github.com/kubernetes/kubernetes/pull/119140), [@danwinship](https://github.com/danwinship)) [SIG Network] +- The metric `apiserver_flowcontrol_request_concurrency_limit` has been deprecated and will be removed in a future release. It is a duplicate of `apiserver_flowcontrol_nominal_limit_seats` (introduced in release 1.26) but has an outdated name and had an outdated HELP string. ([#118959](https://github.com/kubernetes/kubernetes/pull/118959), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] +- Updated `etcd` version to `3.5.8`. ([#117335](https://github.com/kubernetes/kubernetes/pull/117335), [@kkkkun](https://github.com/kkkkun)) +- Updated apiserver metric `request_filter_duration_seconds` to include a 10s, 15s and 30s bucket. +Updated apiserver metric `request_wait_duration_seconds` to include a 15s bucket. ([#118945](https://github.com/kubernetes/kubernetes/pull/118945), [@andrewsykim](https://github.com/andrewsykim)) +- Updated kube-apiserver's priority & fairness work estimator such that 'max seats' is MIN(0.15 x nominalCL, nominalCL / handSize) + + This fixes a bug where clients with requests using hand size x max seats greater than the nominal concurrency limit can starve other requests in the same priority level. ([#118601](https://github.com/kubernetes/kubernetes/pull/118601), [@andrewsykim](https://github.com/andrewsykim)) +- Updated static pods are restarted 2s faster by correcting a safe but non-optimal ordering bug. ([#116690](https://github.com/kubernetes/kubernetes/pull/116690), [@smarterclayton](https://github.com/smarterclayton)) [SIG Node] +- Users will no longer see an error for failed events caused due to terminating namespace. ([#114849](https://github.com/kubernetes/kubernetes/pull/114849), [@padlar](https://github.com/padlar)) [SIG API Machinery] +- [Dual-stack] Fixed `generateAPIPodStatus()` of kubelet handling Secondary IP. hostIPs order may not be consistent. If secondary IP is before primary one, current logic adds primary IP twice into `PodIPs`, which leads to error: "may specify no more than one IP for each IP family". ([#116879](https://github.com/kubernetes/kubernetes/pull/116879), [@lzhecheng](https://github.com/lzhecheng)) +- [KCCM] service controller: change the cloud controller manager to make `providerID` a predicate when synchronizing nodes. This change allows load balancer integrations to ensure that the `providerID` is set when configuring + load balancers and targets. ([#117388](https://github.com/kubernetes/kubernetes/pull/117388), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Cloud Provider and Network] +- `kube-apiserver` will now always remove its endpoint from Kubernetes service during + graceful shutdown (even if it's the only/last one). ([#116685](https://github.com/kubernetes/kubernetes/pull/116685), [@nayihz](https://github.com/nayihz)) +- `kubeadm:` fixed a bug where the static pod changes detection logic is inconsistent + with kubelet. ([#118069](https://github.com/kubernetes/kubernetes/pull/118069), [@SataQiu](https://github.com/SataQiu)) +- `kubeadm`: `crictl pull` should use `-i` to set the image service endpoint. ([#117835](https://github.com/kubernetes/kubernetes/pull/117835), [@pacoxu](https://github.com/pacoxu)) +- `kubeadm`: fixed a bug where file copy(backup) could not be executed correctly + on Windows platform during upgrade. ([#117861](https://github.com/kubernetes/kubernetes/pull/117861), [@SataQiu](https://github.com/SataQiu)) +- `kubeadm`: speedup init by 0s or 20s. kubelet-start phase is now after etcd + and control-plane phases, removing a race condition between kubelet looking for + static pod manifests and kubeadm writing them. ([#117984](https://github.com/kubernetes/kubernetes/pull/117984), [@champtar](https://github.com/champtar)) +- `kubeadm`: will now throw warnings instead of errors for deprecated feature gates. ([#118270](https://github.com/kubernetes/kubernetes/pull/118270), [@pacoxu](https://github.com/pacoxu)) +- `kubectl events --for` will also support fully qualified names such as replicasets.apps, + etc. ([#117034](https://github.com/kubernetes/kubernetes/pull/117034), [@ardaguclu](https://github.com/ardaguclu)) +- `kubectl explain` should correctly work for all resources. ([#118876](https://github.com/kubernetes/kubernetes/pull/118876), [@atiratree](https://github.com/atiratree)) +- `kubectl expose` supports the creation of different protocol services on the same port. ([#114909](https://github.com/kubernetes/kubernetes/pull/114909), [@aimuz](https://github.com/aimuz)) +- `kubelet` will ensure /etc/hosts file is mode 0644 regardless of umask. ([#113209](https://github.com/kubernetes/kubernetes/pull/113209), [@luozhiwenn](https://github.com/luozhiwenn)) +- `kubelet`: print sorted volumes message in events. ([#117079](https://github.com/kubernetes/kubernetes/pull/117079), [@qingwave](https://github.com/qingwave)) +- `wait.PollUntilContextTimeout` function, if immediate is true, the condition + will be invoked before waiting and guarantees that the condition is invoked at + least once, regardless of whether the context has been cancelled. ([#118686](https://github.com/kubernetes/kubernetes/pull/118686), [@aojea](https://github.com/aojea)) + +### Other (Cleanup or Flake) + +- A `v2-level` info log will be added, which will output the details of the pod being preempted, including victim and preemptor. ([#117214](https://github.com/kubernetes/kubernetes/pull/117214), [@HirazawaUi](https://github.com/HirazawaUi)) +- Allowed container runtimes to use `ErrSignatureValidationFailed` as possible image pull failure. ([#117717](https://github.com/kubernetes/kubernetes/pull/117717), [@saschagrunert](https://github.com/saschagrunert)) +- Deprecated `genericclioptions.IOStreams` and used `genericiooptions.IOStreams`. ([#117102](https://github.com/kubernetes/kubernetes/pull/117102), [@ardaguclu](https://github.com/ardaguclu)) +- E2e framework: the `node-role.kubernetes.io/master` taint has been removed from the default value of `--non-blocking-taints` flag. You may need to set `--non-blocking-taints` explicitly if the cluster to be tested has nodes with the deprecated `node-role.kubernetes.io/master` taint. ([#118510](https://github.com/kubernetes/kubernetes/pull/118510), [@SataQiu](https://github.com/SataQiu)) [SIG Testing] +- Enabled the `node-local` kubelet podresources API endpoint on windows, alongside unix. ([#115133](https://github.com/kubernetes/kubernetes/pull/115133), [@ffromani](https://github.com/ffromani)) +- Fixed dra e2e image build on non-amd64 architectures. ([#117912](https://github.com/kubernetes/kubernetes/pull/117912), [@bart0sh](https://github.com/bart0sh)) [SIG Node and Testing] +- Kube-apiserver adds two new alpha metrics `conversion_webhook_request_total` and `conversion_webhook_duration_seconds` that allow users to monitor requests to CRD conversion webhooks, split by result, and failure_type (In case of failure). ([#118292](https://github.com/kubernetes/kubernetes/pull/118292), [@cchapla](https://github.com/cchapla)) [SIG API Machinery, Architecture and Instrumentation] +- Kube-proxy will now warn at startup if the configuration seems inconsistent + with respect to IP families. (For example, if you have an IPv4 node IP, but + `--cluster-cidr` is IPv6.) ([#119003](https://github.com/kubernetes/kubernetes/pull/119003), [@danwinship](https://github.com/danwinship)) [SIG Network] +- Kube-proxy: removed log warning about not using config file. ([#118115](https://github.com/kubernetes/kubernetes/pull/118115), [@TommyStarK](https://github.com/TommyStarK)) [SIG Network] +- Made Job controller batching of syncJob invocations enabled unconditionally (it was conditional on JobReadyPods feature before). +Also, Job controller's constants for default backoff and maximal backoff are lowered down to 1s (from 10s) and 1min (from 6min), respectively. These constants are used to determine the backoff delay for the next Job controller sync in case of a request failure. ([#118615](https://github.com/kubernetes/kubernetes/pull/118615), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing] +- Marked the feature gate `ExperimentalHostUserNamespaceDefaulting` as deprecated. + Enabling the feature gate already had no effect; the deprecation allows for removing the feature gate in a future release. ([#116723](https://github.com/kubernetes/kubernetes/pull/116723), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node] +- Migrated `pkg/scheduler/framework/runtime` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116842](https://github.com/kubernetes/kubernetes/pull/116842), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling] +- Migrated the disruption controller (within `kube-controller-manager`) to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#119147](https://github.com/kubernetes/kubernetes/pull/119147), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG API Machinery, Apps, Instrumentation and Testing] +- Migrated the interpodaffinity scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116635](https://github.com/kubernetes/kubernetes/pull/116635), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling] +- Migrated the podgc controller and some other remaining log calls within `kube-controller-manager` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). `kube-controller-manager` is now converted completely. ([#119250](https://github.com/kubernetes/kubernetes/pull/119250), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Cloud Provider, Instrumentation, Network, Storage and Testing] +- Migrated the volumezone scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116829](https://github.com/kubernetes/kubernetes/pull/116829), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation and Scheduling] +- Moved `k8s.io/kubernetes/pkg/kubelet/cri/streaming` package to `k8s.io/kubelet/pkg/cri/streaming`. ([#118253](https://github.com/kubernetes/kubernetes/pull/118253), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node, Release and Security] +- OpenAPI proto deserializations should use `gnostic-models` instead of the gnostic library. ([#118384](https://github.com/kubernetes/kubernetes/pull/118384), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Node, Storage and Testing] +- Projects which use k8s.io/code-generator and invoke `generate-groups` or `generate-internal-groups.sh` have a new, simpler script (`kube_codegen.sh`) they can use. The old scripts are deprecated but remain intact. ([#117262](https://github.com/kubernetes/kubernetes/pull/117262), [@thockin](https://github.com/thockin)) [SIG API Machinery and Instrumentation] +- Promoted `kubernetes_healthcheck` and `kubernetes_healthchecks_total` to `BETA` stability level. ([#118986](https://github.com/kubernetes/kubernetes/pull/118986), [@logicalhan](https://github.com/logicalhan)) +- Reduced delay when processing jobs after a transient API error. ([#118759](https://github.com/kubernetes/kubernetes/pull/118759), [@mimowo](https://github.com/mimowo)) +- Removed GA'ed feature gate `DelegateFSGroupToCSIDriver`. ([#117655](https://github.com/kubernetes/kubernetes/pull/117655), [@carlory](https://github.com/carlory)) +- Removed GA'ed feature gate `DevicePlugins`. ([#117656](https://github.com/kubernetes/kubernetes/pull/117656), [@carlory](https://github.com/carlory)) +- Removed GA'ed feature gate `KubeletCredentialProviders`. ([#116901](https://github.com/kubernetes/kubernetes/pull/116901), [@pacoxu](https://github.com/pacoxu)) +- Removed GA'ed feature gates: `MixedProtocolLBService`, `ServiceInternalTrafficPolicy`, + `ServiceIPStaticSubrange`, and `EndpointSliceTerminatingCondition`. ([#117237](https://github.com/kubernetes/kubernetes/pull/117237), [@yulng](https://github.com/yulng)) +- Removed `KUBECTL_EXPLAIN_OPENAPIV3` which is already redundant. ([#119286](https://github.com/kubernetes/kubernetes/pull/119286), [@ardaguclu](https://github.com/ardaguclu)) +- Removed the deprecated `azureFile` in-tree storage plugin. ([#118236](https://github.com/kubernetes/kubernetes/pull/118236), [@andyzhangx](https://github.com/andyzhangx)) +- Revised `OpenAPI v2` fetching for CustomResourceDefinitions. CRDs are now aggregated lazily, + which improves resource usage during installation of many CRDs. As a result, the first request + to fetch the OpenAPI may be slower. ([#118808](https://github.com/kubernetes/kubernetes/pull/118808), [@Jefftree](https://github.com/Jefftree)) +- Shrank the `OpenAPI v2` spec by more than 50%, especially for less CPU resource consumption. ([#118204](https://github.com/kubernetes/kubernetes/pull/118204), [@sttts](https://github.com/sttts)) +- Structured logging of `NamespacedName` was inconsistent with `klog.KObj`. Now both will use lower case field names and namespace is optional. ([#117238](https://github.com/kubernetes/kubernetes/pull/117238), [@pohly](https://github.com/pohly)) +- The `GetAllocatableResources` podresources API endpoint is now GA. ([#118973](https://github.com/kubernetes/kubernetes/pull/118973), [@ffromani](https://github.com/ffromani)) +- The `NetworkPolicyLegacy` test suite (deprecated in `v1.21`) has now officially been removed in favor of the new table driven e2e tests. ([#118915](https://github.com/kubernetes/kubernetes/pull/118915), [@astoycos](https://github.com/astoycos)) +- The `generate_groups.sh` and `generate_internal_groups.sh` scripts from the `k8s.io/code-generator` repo are deprecated (but still work) in favor of `kube_codegen.sh` in that same repo. Projects which use the old scripts are encouraged to look at adopting the new one. ([#117897](https://github.com/kubernetes/kubernetes/pull/117897), [@thockin](https://github.com/thockin)) [SIG API Machinery] +- The feature gate `CSIStorageCapacity` have been removed and must no longer be referenced in `--feature-gates` flags. ([#118018](https://github.com/kubernetes/kubernetes/pull/118018), [@humblec](https://github.com/humblec)) +- The feature gates `CSIMigrationGCE` is graduated to GA and were unconditionally enabled have been removed in `v1.25`, and the entire `gcepd` package has been removed. ([#117055](https://github.com/kubernetes/kubernetes/pull/117055), [@cyclinder](https://github.com/cyclinder)) +- The feature gates `DisableAcceleratorUsageMetrics` and `PodSecurity` that graduated to GA and were unconditionally enabled have been removed in v1.28. ([#114068](https://github.com/kubernetes/kubernetes/pull/114068), [@cyclinder](https://github.com/cyclinder)) [SIG API Machinery, Node, Scheduling and Storage] +- The kubelet podresources endpoint is GA and always enabled. ([#116525](https://github.com/kubernetes/kubernetes/pull/116525), [@ffromani](https://github.com/ffromani)) [SIG Node] +- The metric `apiserver_flowcontrol_current_executing_seats` has been introduced as a duplicate of `apiserver_flowcontrol_request_concurrency_in_use` because the latter has a confusing name and will be removed in a later release. ([#118960](https://github.com/kubernetes/kubernetes/pull/118960), [@MikeSpreitzer](https://github.com/MikeSpreitzer)) [SIG API Machinery] +- Updated `Cluster Autosaler` to version 1.26.1. ([#116526](https://github.com/kubernetes/kubernetes/pull/116526), [@pacoxu](https://github.com/pacoxu)) [SIG Autoscaling and Cloud Provider] +- Updated `cri-tools` to `v1.27.0`. ([#117545](https://github.com/kubernetes/kubernetes/pull/117545), [@saschagrunert](https://github.com/saschagrunert)) +- Updated `setcap` image to debian bookworm v1.0.0. ([#119247](https://github.com/kubernetes/kubernetes/pull/119247), [@saschagrunert](https://github.com/saschagrunert)) +- Updated `cri-tools` to `v1.26.1`. ([#116649](https://github.com/kubernetes/kubernetes/pull/116649), [@saschagrunert](https://github.com/saschagrunert)) [SIG Architecture and Release] +- Updated debian-base image to `bookworm-v1.0.0`. ([#119095](https://github.com/kubernetes/kubernetes/pull/119095), [@saschagrunert](https://github.com/saschagrunert)) +- Use table-driven test for `TestPerPodSchedulingMetrics`. ([#118842](https://github.com/kubernetes/kubernetes/pull/118842), [@helayoty](https://github.com/helayoty)) +- When retrieving event resources, the `reportingController` and `reportingInstance` fields in the event will contain values. ([#116506](https://github.com/kubernetes/kubernetes/pull/116506), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery and Instrumentation] +- [KCCM] drop filtering nodes for the providerID when syncing load balancers, but have changes to the field trigger a re-sync of load balancers. This should ensure that cloud providers which don't specify providerID, can still use the service controller implementation to provision load balancers. ([#117602](https://github.com/kubernetes/kubernetes/pull/117602), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Cloud Provider and Network] +- `kube-apiserver` added two new metrics `authorization_attempts_total` and `authorization_duration_seconds` + that allow users to monitor requests to authorization webhooks, split by result. ([#117211](https://github.com/kubernetes/kubernetes/pull/117211), [@HirazawaUi](https://github.com/HirazawaUi)) +- `kube-apiserver`: Improved memory use when performing `GetList` on the cache. ([#116327](https://github.com/kubernetes/kubernetes/pull/116327), [@sxllwx](https://github.com/sxllwx)) +- `kube-controller-manager` and `cloud-controller-manager` have changed the + name of controllers that can be turned on/off that are passed to the `--controllers` + flag (e.g., `pod-garbage-collector-controller`). The old names (eg `podgc`) are + also accepted and aliased to the new names. ([#115813](https://github.com/kubernetes/kubernetes/pull/115813), [@atiratree](https://github.com/atiratree)) +- `kubeadm`: Introduced a new feature gate `UpgradeAddonsBeforeControlPlane` to + fix a kube-proxy skew policy misalignment. Its default value is `false`. Upgrade + of the CoreDNS and kube-proxy addons will now trigger after all the control plane + instances have been upgraded, unless the fearure gate is set to true. This feature + gate will be removed in a future release. ([#117660](https://github.com/kubernetes/kubernetes/pull/117660), [@pacoxu](https://github.com/pacoxu)) diff --git a/releases/release-1.28/release-notes/sessions/maps-1685636765.json b/releases/release-1.28/release-notes/sessions/maps-1685636765.json index d83a041e529..c451a290796 100644 --- a/releases/release-1.28/release-notes/sessions/maps-1685636765.json +++ b/releases/release-1.28/release-notes/sessions/maps-1685636765.json @@ -1,243 +1,243 @@ -{ - "mail": "sanchita.mishra1718@gmail.com", - "name": "sanchita-07", - "date": 1685636765, - "prs": [ - { - "nr": 117330, - "hash": "e2f2a4db9ff36ddb9bffba0b2ffccd745ab7d2a6" - }, - { - "nr": 94021, - "hash": "6f8d31469d1e970e5fda6550a3268dffa0e92cf5" - }, - { - "nr": 117791, - "hash": "75728c526c72004a636b0a155d1b6a7acc7d79c5" - }, - { - "nr": 117787, - "hash": "498af5a31aae96fda56758f0e9b418606e875f65" - }, - { - "nr": 117386, - "hash": "3a099514f7de0f72c0f6f6c76cdba5fac61a0366" - }, - { - "nr": 117718, - "hash": "7caac5f41fd65a45fe49810851f15845735c846e" - }, - { - "nr": 117705, - "hash": "3a5c2f7e161470abbbdc7b2ca918b93e8b9f5f1e" - }, - { - "nr": 114875, - "hash": "53109b82395973feeafd24df6c7c75a3fb3ba136" - }, - { - "nr": 118013, - "hash": "477361091f1ccccb239c28563df5785fa2a82893" - }, - { - "nr": 118104, - "hash": "b3861a67baa1bee9c58db968dd2d5a9b1498cdcf" - }, - { - "nr": 113969, - "hash": "efabec9dd5199a23b208011afbe433caefc787a4" - }, - { - "nr": 117391, - "hash": "38196e492f24fe9906d73d7d33ef5ced7ade8894" - }, - { - "nr": 117243, - "hash": "c7e44109c5013f776eb14c08d9bf36b228608b00" - }, - { - "nr": 117545, - "hash": "4730317e3edef94431c5ed6783fb64b367260984" - }, - { - "nr": 117238, - "hash": "57d25df7cdb1982c91466cfbb041d62133cc509e" - }, - { - "nr": 117036, - "hash": "206228642c843aee24934f718c348ee04eeafe69" - }, - { - "nr": 118018, - "hash": "ab9676e5833f46d574cb5345219061c9a98ddbf0" - }, - { - "nr": 117897, - "hash": "656c6af18926a04e34aa8b8d9d52c072f57b23b0" - }, - { - "nr": 116901, - "hash": "9dd0eea254620914e28ac172f8cd5b5e96464561" - }, - { - "nr": 117784, - "hash": "18f4d80239f1c6ec5a7cff198819b21aa66e8e26" - }, - { - "nr": 117594, - "hash": "ec14d4c5f4ee115281d67823c2df88d5c11ad9da" - }, - { - "nr": 117352, - "hash": "9eda2843ef151944099cd41467bf1b1d0c7e2233" - }, - { - "nr": 117399, - "hash": "2d9c3453b50917fa550286e13456379e3f4306fe" - }, - { - "nr": 116849, - "hash": "352fd41b67ee96a19373b9693ac0f5bfb88b864a" - }, - { - "nr": 118069, - "hash": "157d4819c0ade53ef49a64a0c21f57e6ec3c2054" - }, - { - "nr": 117102, - "hash": "4925e2b13ada048659e85e6e4392c5c75e09a4b6" - }, - { - "nr": 117214, - "hash": "5ff3b170a6c2f255e20a77c54cf5001c35877c19" - }, - { - "nr": 117216, - "hash": "c012980e8aee9c8b45128679ca5538c030bc17da" - }, - { - "nr": 117034, - "hash": "28683c855a777a5b85d9d0673c79a0e7e9e3f45e" - }, - { - "nr": 117913, - "hash": "77f6d85581925b7577559678ada6301c9fbd1291" - }, - { - "nr": 117262, - "hash": "d583fdec265007b1f75850c8635d3e23a0e32b69" - }, - { - "nr": 117408, - "hash": "73478cb43be0a303274cd6db76e12ca0cfa6fa7b" - }, - { - "nr": 115399, - "hash": "baaa4179246baec0cf69508b8983067258bd7b2f" - }, - { - "nr": 117696, - "hash": "21407b9158bbbdaa4dd19c117e23142d85f15747" - }, - { - "nr": 117448, - "hash": "a226d944ef259508d6b746d457bed2840e57515f" - }, - { - "nr": 116835, - "hash": "18aa1476d6e7b7741c30e728530e58b42924f6dc" - }, - { - "nr": 116104, - "hash": "5f1e4aba5bef68d7f57dc6265cdc147be7492a63" - }, - { - "nr": 114746, - "hash": "2ea3caf4d6b130d7c8f06481da5660c3e5e480cf" - }, - { - "nr": 117683, - "hash": "7f218c82bb992e165ecbe10e1fd7b64d27f617e6" - }, - { - "nr": 117495, - "hash": "5da5eacec75b889c0121b8967ce65fc96b4b333a" - }, - { - "nr": 117019, - "hash": "bfadef6da688a05be28d68608524d2a1d1db436a" - }, - { - "nr": 116374, - "hash": "47a57fd097549c240e0d3804c651513ee3d1f68c" - }, - { - "nr": 117912, - "hash": "9d3c8ecd71051cd97d48e2fff294249ded3ee9d7" - }, - { - "nr": 117713, - "hash": "4c0e7b46f628cfb450ea996fcc16f010427c7330" - }, - { - "nr": 117879, - "hash": "a063c6edfe9044d597f16a0c0d7d26bf95bf552f" - }, - { - "nr": 116748, - "hash": "741eb87c2e4d9c740c59e5be3e878789c028fd02" - }, - { - "nr": 117275, - "hash": "bcd8fbec3faef34e94f5f3c430ff9a4e734c4aea" - }, - { - "nr": 117095, - "hash": "31c5911e8432bee62aca0f2b5628e18b6e9ca93f" - }, - { - "nr": 117335, - "hash": "7f25d3a3732c8dbb48b86de863ba380992885f9b" - }, - { - "nr": 117884, - "hash": "a318e02dd76f55a45a41ab3c08534bfb0571b4d1" - }, - { - "nr": 115133, - "hash": "dc2b7b70d583d7fa137dfece751e6320ffed1009" - }, - { - "nr": 118000, - "hash": "4f9211cdd3d787da44ecd87b05220303f91d3379" - }, - { - "nr": 117350, - "hash": "0a30978b99b0a0c52c21208d9c9b9ced56ccb9fe" - }, - { - "nr": 117861, - "hash": "3949693aa243a1d2ed7d14568f8156f9742d49d5" - }, - { - "nr": 117727, - "hash": "666a4becdcd8c61775dd2985024556c0a8094b5d" - }, - { - "nr": 117612, - "hash": "12219094cd10814157d4085ab11d2d6cd2d44111" - }, - { - "nr": 116138, - "hash": "005c5963a5c6a2eff16b495e663017a00865a34a" - }, - { - "nr": 118235, - "hash": "7fc386f00a2a44fcf0f0636762a32ec0ab60c691" - }, - { - "nr": 118229, - "hash": "906de933260e777fbe4de9bb759b5e29c5038728" - } - ] +{ + "mail": "sanchita.mishra1718@gmail.com", + "name": "sanchita-07", + "date": 1685636765, + "prs": [ + { + "nr": 117330, + "hash": "e2f2a4db9ff36ddb9bffba0b2ffccd745ab7d2a6" + }, + { + "nr": 94021, + "hash": "6f8d31469d1e970e5fda6550a3268dffa0e92cf5" + }, + { + "nr": 117791, + "hash": "75728c526c72004a636b0a155d1b6a7acc7d79c5" + }, + { + "nr": 117787, + "hash": "498af5a31aae96fda56758f0e9b418606e875f65" + }, + { + "nr": 117386, + "hash": "3a099514f7de0f72c0f6f6c76cdba5fac61a0366" + }, + { + "nr": 117718, + "hash": "7caac5f41fd65a45fe49810851f15845735c846e" + }, + { + "nr": 117705, + "hash": "3a5c2f7e161470abbbdc7b2ca918b93e8b9f5f1e" + }, + { + "nr": 114875, + "hash": "53109b82395973feeafd24df6c7c75a3fb3ba136" + }, + { + "nr": 118013, + "hash": "477361091f1ccccb239c28563df5785fa2a82893" + }, + { + "nr": 118104, + "hash": "b3861a67baa1bee9c58db968dd2d5a9b1498cdcf" + }, + { + "nr": 113969, + "hash": "efabec9dd5199a23b208011afbe433caefc787a4" + }, + { + "nr": 117391, + "hash": "38196e492f24fe9906d73d7d33ef5ced7ade8894" + }, + { + "nr": 117243, + "hash": "c7e44109c5013f776eb14c08d9bf36b228608b00" + }, + { + "nr": 117545, + "hash": "4730317e3edef94431c5ed6783fb64b367260984" + }, + { + "nr": 117238, + "hash": "57d25df7cdb1982c91466cfbb041d62133cc509e" + }, + { + "nr": 117036, + "hash": "206228642c843aee24934f718c348ee04eeafe69" + }, + { + "nr": 118018, + "hash": "ab9676e5833f46d574cb5345219061c9a98ddbf0" + }, + { + "nr": 117897, + "hash": "656c6af18926a04e34aa8b8d9d52c072f57b23b0" + }, + { + "nr": 116901, + "hash": "9dd0eea254620914e28ac172f8cd5b5e96464561" + }, + { + "nr": 117784, + "hash": "18f4d80239f1c6ec5a7cff198819b21aa66e8e26" + }, + { + "nr": 117594, + "hash": "ec14d4c5f4ee115281d67823c2df88d5c11ad9da" + }, + { + "nr": 117352, + "hash": "9eda2843ef151944099cd41467bf1b1d0c7e2233" + }, + { + "nr": 117399, + "hash": "2d9c3453b50917fa550286e13456379e3f4306fe" + }, + { + "nr": 116849, + "hash": "352fd41b67ee96a19373b9693ac0f5bfb88b864a" + }, + { + "nr": 118069, + "hash": "157d4819c0ade53ef49a64a0c21f57e6ec3c2054" + }, + { + "nr": 117102, + "hash": "4925e2b13ada048659e85e6e4392c5c75e09a4b6" + }, + { + "nr": 117214, + "hash": "5ff3b170a6c2f255e20a77c54cf5001c35877c19" + }, + { + "nr": 117216, + "hash": "c012980e8aee9c8b45128679ca5538c030bc17da" + }, + { + "nr": 117034, + "hash": "28683c855a777a5b85d9d0673c79a0e7e9e3f45e" + }, + { + "nr": 117913, + "hash": "77f6d85581925b7577559678ada6301c9fbd1291" + }, + { + "nr": 117262, + "hash": "d583fdec265007b1f75850c8635d3e23a0e32b69" + }, + { + "nr": 117408, + "hash": "73478cb43be0a303274cd6db76e12ca0cfa6fa7b" + }, + { + "nr": 115399, + "hash": "baaa4179246baec0cf69508b8983067258bd7b2f" + }, + { + "nr": 117696, + "hash": "21407b9158bbbdaa4dd19c117e23142d85f15747" + }, + { + "nr": 117448, + "hash": "a226d944ef259508d6b746d457bed2840e57515f" + }, + { + "nr": 116835, + "hash": "18aa1476d6e7b7741c30e728530e58b42924f6dc" + }, + { + "nr": 116104, + "hash": "5f1e4aba5bef68d7f57dc6265cdc147be7492a63" + }, + { + "nr": 114746, + "hash": "2ea3caf4d6b130d7c8f06481da5660c3e5e480cf" + }, + { + "nr": 117683, + "hash": "7f218c82bb992e165ecbe10e1fd7b64d27f617e6" + }, + { + "nr": 117495, + "hash": "5da5eacec75b889c0121b8967ce65fc96b4b333a" + }, + { + "nr": 117019, + "hash": "bfadef6da688a05be28d68608524d2a1d1db436a" + }, + { + "nr": 116374, + "hash": "47a57fd097549c240e0d3804c651513ee3d1f68c" + }, + { + "nr": 117912, + "hash": "9d3c8ecd71051cd97d48e2fff294249ded3ee9d7" + }, + { + "nr": 117713, + "hash": "4c0e7b46f628cfb450ea996fcc16f010427c7330" + }, + { + "nr": 117879, + "hash": "a063c6edfe9044d597f16a0c0d7d26bf95bf552f" + }, + { + "nr": 116748, + "hash": "741eb87c2e4d9c740c59e5be3e878789c028fd02" + }, + { + "nr": 117275, + "hash": "bcd8fbec3faef34e94f5f3c430ff9a4e734c4aea" + }, + { + "nr": 117095, + "hash": "31c5911e8432bee62aca0f2b5628e18b6e9ca93f" + }, + { + "nr": 117335, + "hash": "7f25d3a3732c8dbb48b86de863ba380992885f9b" + }, + { + "nr": 117884, + "hash": "a318e02dd76f55a45a41ab3c08534bfb0571b4d1" + }, + { + "nr": 115133, + "hash": "dc2b7b70d583d7fa137dfece751e6320ffed1009" + }, + { + "nr": 118000, + "hash": "4f9211cdd3d787da44ecd87b05220303f91d3379" + }, + { + "nr": 117350, + "hash": "0a30978b99b0a0c52c21208d9c9b9ced56ccb9fe" + }, + { + "nr": 117861, + "hash": "3949693aa243a1d2ed7d14568f8156f9742d49d5" + }, + { + "nr": 117727, + "hash": "666a4becdcd8c61775dd2985024556c0a8094b5d" + }, + { + "nr": 117612, + "hash": "12219094cd10814157d4085ab11d2d6cd2d44111" + }, + { + "nr": 116138, + "hash": "005c5963a5c6a2eff16b495e663017a00865a34a" + }, + { + "nr": 118235, + "hash": "7fc386f00a2a44fcf0f0636762a32ec0ab60c691" + }, + { + "nr": 118229, + "hash": "906de933260e777fbe4de9bb759b5e29c5038728" + } + ] } \ No newline at end of file diff --git a/releases/release-1.28/release-notes/sessions/maps-1686669866.json b/releases/release-1.28/release-notes/sessions/maps-1686669866.json index 8ef6115afd7..db3104936b6 100644 --- a/releases/release-1.28/release-notes/sessions/maps-1686669866.json +++ b/releases/release-1.28/release-notes/sessions/maps-1686669866.json @@ -1,515 +1,515 @@ -{ - "mail": "fsmunoz@gmail.com", - "name": "Frederico Muñoz", - "date": 1686669866, - "prs": [ - { - "nr": 118292, - "hash": "833c4748901a24e288fa2b493a07d157b2b3d810" - }, - { - "nr": 117602, - "hash": "c21a935866a853fdb4d91d3251b9d77eb1a89abc" - }, - { - "nr": 114606, - "hash": "0ec21a30473df3a5f5086babf4b155313b0de8c6" - }, - { - "nr": 117342, - "hash": "90d083ec757f5f72155d95be2573e6d7cd5115c1" - }, - { - "nr": 116408, - "hash": "bc865161b0df9d77f0afca32209b543b196ed1b2" - }, - { - "nr": 118499, - "hash": "45068bea555c91c6e9300b4e99d20b1e9d9aff99" - }, - { - "nr": 117586, - "hash": "3f345e7a4d4dea2f60cebe839472a6f75b8d5e4c" - }, - { - "nr": 116842, - "hash": "5e8075c165122c8719f449f16a28a5ae2e5595bb" - }, - { - "nr": 116520, - "hash": "cdb72c41764e64eac46667ba57bda895e84dcb67" - }, - { - "nr": 117222, - "hash": "364bb9033a93cea3012e61667f5abd21e60da078" - }, - { - "nr": 117002, - "hash": "9d9bd79ab9652c364684f88fb56ec3bd8cd2a5f8" - }, - { - "nr": 117649, - "hash": "8d4a1f824d285db0c82086e94823e070a8f055c9" - }, - { - "nr": 117120, - "hash": "a55e5f6218f524546b2fd3781f3b5f2fc3c77db4" - }, - { - "nr": 116672, - "hash": "81011563aca26ad2f7f6161b74631324a3a39407" - }, - { - "nr": 117009, - "hash": "08ec697a96c3f362b5aec0e4c98028afbef0bb09" - }, - { - "nr": 117079, - "hash": "d356a32f408d58602d90c8a3e0240b27fdc3a7ac" - }, - { - "nr": 118132, - "hash": "d2a6fc3850d4d74c091aceeea38fa984161e3846" - }, - { - "nr": 118262, - "hash": "8fe432196ea6953d260cc289a6568c9d5903b34b" - }, - { - "nr": 117655, - "hash": "01d4d0696165813e80414cc09d46b6118405e923" - }, - { - "nr": 117535, - "hash": "4887cad192857d6932c22ce6fd7d2fd925d8cad2" - }, - { - "nr": 117746, - "hash": "2fb739cf3d8bd49614d770c6105ec23db6d12197" - }, - { - "nr": 117412, - "hash": "6d96e125b3919c43d57984e77b43664d7c05a5d7" - }, - { - "nr": 118143, - "hash": "1fe849a5633833b7ca73bd37d53f649e1c920f0f" - }, - { - "nr": 117930, - "hash": "fbef77e57ee60494592daa48d1d995bd76bc23ab" - }, - { - "nr": 118270, - "hash": "f04a4808d2776a0bafec729181bdbe79df4b292c" - }, - { - "nr": 113209, - "hash": "1c6ec6f023fe87b31c5362ea563680c378531931" - }, - { - "nr": 117677, - "hash": "bd39f9eb9ec9698a225b8d98cf5cfdd2db866fac" - }, - { - "nr": 117194, - "hash": "0e5e2f9f068f5aae293ec94115cfb410793f8f94" - }, - { - "nr": 118413, - "hash": "880b977fc48ee29521aa5678b9b5903d191adae9" - }, - { - "nr": 113362, - "hash": "faa0b31f0766044c3aa8d8dcebd94b0899fb2457" - }, - { - "nr": 117354, - "hash": "00cb10fef788c636ee0b8b1f6520fb104e397d13" - }, - { - "nr": 117744, - "hash": "11368c528c68edb518a18aae863fdca7deadf2a6" - }, - { - "nr": 117105, - "hash": "49abbf57117fe411c8ecaeb6117a9ffd242c01e8" - }, - { - "nr": 117969, - "hash": "ae1852f9e067069d9cd722a34c30765e0f39c0ca" - }, - { - "nr": 117253, - "hash": "541c480935b38d654c9391297b744eac50697ba8" - }, - { - "nr": 116685, - "hash": "ee9e4f77950f57f3f97f43b5ffe3a28d09770458" - }, - { - "nr": 116723, - "hash": "ef109c5468deab5c596289c9bea18db22881609c" - }, - { - "nr": 118253, - "hash": "bac7ed5f4c5c335aec8b165318bbcd5b41670ba8" - }, - { - "nr": 117636, - "hash": "817210b6a7285104b0e2351a9a33bb93a3bd6550" - }, - { - "nr": 117785, - "hash": "66904270e06064d1eb5396644859a3b4ebcd41d2" - }, - { - "nr": 117349, - "hash": "1c1e3eb5c5f29e38d1055d4d33e13111f486f7f1" - }, - { - "nr": 117571, - "hash": "9c16415cad39cba262b6b90b41a74c5e4fc4d698" - }, - { - "nr": 118510, - "hash": "2c272a791d836a7fcc4ccf99a1de6d826f0f05e8" - }, - { - "nr": 117877, - "hash": "3b7b25bc9ab1762d5b4941d74d621f36db65029e" - }, - { - "nr": 117999, - "hash": "e5c321e5ddebd4f01689ffc36fa03589dbf8ed32" - }, - { - "nr": 117794, - "hash": "52f15280a8d333e6f14cc7de29059c24492d8624" - }, - { - "nr": 116506, - "hash": "c7b061f0954d4615e5a0caf912a1abb356d27288" - }, - { - "nr": 117245, - "hash": "84e52a230e25361131643e05ac5d411da4ebb011" - }, - { - "nr": 117020, - "hash": "932374eb14ed0867eaedc331b41a2c604041b2b9" - }, - { - "nr": 117741, - "hash": "46b3334d5266ee6e7c3e15cc53258ccfe340d1c1" - }, - { - "nr": 117802, - "hash": "ab5e5b40748bc8e7cd3de863acf44fab939ad72f" - }, - { - "nr": 116681, - "hash": "dba72136574f5df2e29bedb0d74bc290731c11e3" - }, - { - "nr": 115694, - "hash": "1819a1c2ed661a55ace4f769175b366a6a60f89c" - }, - { - "nr": 116829, - "hash": "da6041cbdf7c2c12255d78146edebbc665d2cebf" - }, - { - "nr": 117688, - "hash": "5219409aafa58a962c38364c71227da6c4b65180" - }, - { - "nr": 114471, - "hash": "9499324397e60e09c013b7dd0352c09b495f0917" - }, - { - "nr": 117140, - "hash": "dcac5210ae885e35a171711cca6c42ccea51da3f" - }, - { - "nr": 117591, - "hash": "8f11c0720c0a323d2b775239c40c72212b8d43e1" - }, - { - "nr": 116797, - "hash": "c518dbf9ef083592c16bb694c7a772f796e4722f" - }, - { - "nr": 117593, - "hash": "17b799dacbebbb2694c67b3f7e3f3740bfb9f245" - }, - { - "nr": 117332, - "hash": "ef7f4d6330b1a1d23f16a9a1d76c010f6080bcc0" - }, - { - "nr": 117025, - "hash": "c37b4d6dbc4677403ba99a010a3610cb97b9d1ae" - }, - { - "nr": 118339, - "hash": "d869516d32abcd9116fba97270d60670d00721da" - }, - { - "nr": 117295, - "hash": "af5f4b41e4850b77c47a7e0a78edd184a24c4d55" - }, - { - "nr": 117656, - "hash": "4e5bb39e94446b3acf01a3d16e386c3683ec3ed6" - }, - { - "nr": 117570, - "hash": "b024b577a2e8a5596ad809e42b4c1b2eaabaaf8a" - }, - { - "nr": 117984, - "hash": "191185a31544bb57486c27de4af36d171cd00092" - }, - { - "nr": 116376, - "hash": "5a2d2e0f09a9741d70f5f95bd594413e2e0b8949" - }, - { - "nr": 117138, - "hash": "415ac6e5277b4bdae0fec3acb1c5912223fc16b8" - }, - { - "nr": 116327, - "hash": "92efa55d911248d595f65ef74787ccd040968d73" - }, - { - "nr": 117870, - "hash": "f292c234b6bd0d735af562e330193e519d63a36f" - }, - { - "nr": 117921, - "hash": "126c48992c408e5f54f74e51e26c8cb9e4e12047" - }, - { - "nr": 116526, - "hash": "fd203176cfee5ea83607fe135f7d76cc81a90da8" - }, - { - "nr": 117388, - "hash": "00f89661145fac79502263e2740a0751f80b9cb7" - }, - { - "nr": 117249, - "hash": "97f5dd9dbc800b936d0ddfdf7794563bed2c1397" - }, - { - "nr": 116995, - "hash": "f047f896491eb2e9e9635b19199b27ead70b8883" - }, - { - "nr": 117022, - "hash": "63820f5406bc9e8b3e806067fb6d9070e4fc73e7" - }, - { - "nr": 116690, - "hash": "5f5e04e1ad43d37ae205fa24ae05d6ee373849b4" - }, - { - "nr": 118507, - "hash": "42dd4f42409b60c46febe98536411d9f8463af9c" - }, - { - "nr": 116649, - "hash": "95c2ffb1664190dcf9c09d03fc6280a2ab13660a" - }, - { - "nr": 118470, - "hash": "32b29a65841153db324bf3bd38bcd09c23842762" - }, - { - "nr": 118236, - "hash": "6331c55d2ca88c2023e3002ef6b9d872ca5b995d" - }, - { - "nr": 117258, - "hash": "d2f719b9862cae037835e5928f7cf8c0ec3a83b7" - }, - { - "nr": 118029, - "hash": "79317613d1f3bc014119df7eddfca68ef1e0f23a" - }, - { - "nr": 117368, - "hash": "ecb2ca9fa027e705ec488835fb68100ff3bcb051" - }, - { - "nr": 110477, - "hash": "2273d6ec185f60ee569e285131646696252cd75e" - }, - { - "nr": 114068, - "hash": "3de05698fc5d5f3ef2d99857f81f1fe19f2fa94f" - }, - { - "nr": 117544, - "hash": "0fc8c2aff82d092f1e6c6c6ff0e563adb38f380b" - }, - { - "nr": 110472, - "hash": "3f4a8b4aad5322cd84f83b57380d37f7a3cfa413" - }, - { - "nr": 117690, - "hash": "6c5de69c428f1724377dd4a71ef4a8d413801f34" - }, - { - "nr": 116482, - "hash": "063cd7eddef0e6ea9f33c7583ea5bf9e56f0b873" - }, - { - "nr": 118541, - "hash": "74a578d9c98be8c9887030c8a8cb4ce5c26707b4" - }, - { - "nr": 116741, - "hash": "2ed6a6b484a3acb8d6f2a5da236d75a144c0fe60" - }, - { - "nr": 117633, - "hash": "98b153ca1b4093f941c06d8b5912cf819443d854" - }, - { - "nr": 116749, - "hash": "6d18eb8bf629c823b5e692306450a9425f963485" - }, - { - "nr": 116134, - "hash": "b925441dd00803b624958484eceac97dedeefbaf" - }, - { - "nr": 117139, - "hash": "b9671234630c820d91b0e1721d397aef8a0efb5e" - }, - { - "nr": 117904, - "hash": "9daa1eaccb1ad60bac9c59512f1294a4c5552a70" - }, - { - "nr": 117660, - "hash": "9bc2ddd2dd6f2a1085df2c3a8d337d8ac86969f1" - }, - { - "nr": 117568, - "hash": "96d3a719f1d1bfd83b3ea0f1cec3256f4f01976a" - }, - { - "nr": 115843, - "hash": "57deab752e0396cbe638f03f1199c01b7ade84ef" - }, - { - "nr": 117534, - "hash": "861086c608426b4cafb00d70f61193a853711a39" - }, - { - "nr": 117543, - "hash": "cc56ee46923012e6b4e2faf12b0248cf748b1375" - }, - { - "nr": 117724, - "hash": "4217bdb8c92d7d3ab6cad9cd2cdc6ca83ba5fb7c" - }, - { - "nr": 117211, - "hash": "1fa52f1162ec55a0617b75186123d83bf6f62005" - }, - { - "nr": 117751, - "hash": "855c0139cfef08449eb20dcf38d479fca9cdbcfd" - }, - { - "nr": 117482, - "hash": "eb1ffee911c74ce501a32d425e59220d08d31fc3" - }, - { - "nr": 117301, - "hash": "4d348915865113644505aced7f656b954230da07" - }, - { - "nr": 114514, - "hash": "912f923e4f8197a77d4ef4fba60c5bc6e1e712b2" - }, - { - "nr": 115554, - "hash": "64f8e5f07180d39e916835c524d5fa03eb35be0d" - }, - { - "nr": 117919, - "hash": "902f61d825161a2ac43d99411d93ffd319add299" - }, - { - "nr": 117835, - "hash": "ce0e718ef5a09b60153c49f548d7090ba8f364ca" - }, - { - "nr": 117483, - "hash": "9d483a836cc87c3f88f60da216c86cebada6dc0a" - }, - { - "nr": 118384, - "hash": "86b44152139f7c1dd724fe3136d57c13bb5599e7" - }, - { - "nr": 117237, - "hash": "cddfbd338b1c920ab802c8e9dbf76c5b2fa043ff" - }, - { - "nr": 116937, - "hash": "24adf265443a27c1dbc2aabf81386fb13d67907e" - }, - { - "nr": 116865, - "hash": "c20586846492893bd15222b34fee8b4a22416961" - }, - { - "nr": 115754, - "hash": "c77dac7ccc627a90863c2d6635b64a4f154c3925" - }, - { - "nr": 117965, - "hash": "60db63ae24ee87439498d0fe02dc7b8cb1c59f7f" - }, - { - "nr": 116525, - "hash": "b70192f1ef93d3c913514da3b5335a0d83d366ea" - }, - { - "nr": 115398, - "hash": "243dbd0a26c1935fdccddfafe56b7d972c3aa572" - }, - { - "nr": 117390, - "hash": "4eeab6e102dccdedb84cf788085fb240ea421653" - }, - { - "nr": 117283, - "hash": "9620d24df22a5559538c78ce043936ad75bdd091" - }, - { - "nr": 117717, - "hash": "e98b5246fc80c41d336f59df9783b09db8b90889" - }, - { - "nr": 116208, - "hash": "167f144df9fb7e2c02b223e8d587b274d7595ed0" - }, - { - "nr": 117687, - "hash": "28a9ba2d516187ac352a45cadad6404cd049e29f" - }, - { - "nr": 117121, - "hash": "e16e2e3d18d04d5484da044955475e88d1b25b1c" - } - ] +{ + "mail": "fsmunoz@gmail.com", + "name": "Frederico Muñoz", + "date": 1686669866, + "prs": [ + { + "nr": 118292, + "hash": "833c4748901a24e288fa2b493a07d157b2b3d810" + }, + { + "nr": 117602, + "hash": "c21a935866a853fdb4d91d3251b9d77eb1a89abc" + }, + { + "nr": 114606, + "hash": "0ec21a30473df3a5f5086babf4b155313b0de8c6" + }, + { + "nr": 117342, + "hash": "90d083ec757f5f72155d95be2573e6d7cd5115c1" + }, + { + "nr": 116408, + "hash": "bc865161b0df9d77f0afca32209b543b196ed1b2" + }, + { + "nr": 118499, + "hash": "45068bea555c91c6e9300b4e99d20b1e9d9aff99" + }, + { + "nr": 117586, + "hash": "3f345e7a4d4dea2f60cebe839472a6f75b8d5e4c" + }, + { + "nr": 116842, + "hash": "5e8075c165122c8719f449f16a28a5ae2e5595bb" + }, + { + "nr": 116520, + "hash": "cdb72c41764e64eac46667ba57bda895e84dcb67" + }, + { + "nr": 117222, + "hash": "364bb9033a93cea3012e61667f5abd21e60da078" + }, + { + "nr": 117002, + "hash": "9d9bd79ab9652c364684f88fb56ec3bd8cd2a5f8" + }, + { + "nr": 117649, + "hash": "8d4a1f824d285db0c82086e94823e070a8f055c9" + }, + { + "nr": 117120, + "hash": "a55e5f6218f524546b2fd3781f3b5f2fc3c77db4" + }, + { + "nr": 116672, + "hash": "81011563aca26ad2f7f6161b74631324a3a39407" + }, + { + "nr": 117009, + "hash": "08ec697a96c3f362b5aec0e4c98028afbef0bb09" + }, + { + "nr": 117079, + "hash": "d356a32f408d58602d90c8a3e0240b27fdc3a7ac" + }, + { + "nr": 118132, + "hash": "d2a6fc3850d4d74c091aceeea38fa984161e3846" + }, + { + "nr": 118262, + "hash": "8fe432196ea6953d260cc289a6568c9d5903b34b" + }, + { + "nr": 117655, + "hash": "01d4d0696165813e80414cc09d46b6118405e923" + }, + { + "nr": 117535, + "hash": "4887cad192857d6932c22ce6fd7d2fd925d8cad2" + }, + { + "nr": 117746, + "hash": "2fb739cf3d8bd49614d770c6105ec23db6d12197" + }, + { + "nr": 117412, + "hash": "6d96e125b3919c43d57984e77b43664d7c05a5d7" + }, + { + "nr": 118143, + "hash": "1fe849a5633833b7ca73bd37d53f649e1c920f0f" + }, + { + "nr": 117930, + "hash": "fbef77e57ee60494592daa48d1d995bd76bc23ab" + }, + { + "nr": 118270, + "hash": "f04a4808d2776a0bafec729181bdbe79df4b292c" + }, + { + "nr": 113209, + "hash": "1c6ec6f023fe87b31c5362ea563680c378531931" + }, + { + "nr": 117677, + "hash": "bd39f9eb9ec9698a225b8d98cf5cfdd2db866fac" + }, + { + "nr": 117194, + "hash": "0e5e2f9f068f5aae293ec94115cfb410793f8f94" + }, + { + "nr": 118413, + "hash": "880b977fc48ee29521aa5678b9b5903d191adae9" + }, + { + "nr": 113362, + "hash": "faa0b31f0766044c3aa8d8dcebd94b0899fb2457" + }, + { + "nr": 117354, + "hash": "00cb10fef788c636ee0b8b1f6520fb104e397d13" + }, + { + "nr": 117744, + "hash": "11368c528c68edb518a18aae863fdca7deadf2a6" + }, + { + "nr": 117105, + "hash": "49abbf57117fe411c8ecaeb6117a9ffd242c01e8" + }, + { + "nr": 117969, + "hash": "ae1852f9e067069d9cd722a34c30765e0f39c0ca" + }, + { + "nr": 117253, + "hash": "541c480935b38d654c9391297b744eac50697ba8" + }, + { + "nr": 116685, + "hash": "ee9e4f77950f57f3f97f43b5ffe3a28d09770458" + }, + { + "nr": 116723, + "hash": "ef109c5468deab5c596289c9bea18db22881609c" + }, + { + "nr": 118253, + "hash": "bac7ed5f4c5c335aec8b165318bbcd5b41670ba8" + }, + { + "nr": 117636, + "hash": "817210b6a7285104b0e2351a9a33bb93a3bd6550" + }, + { + "nr": 117785, + "hash": "66904270e06064d1eb5396644859a3b4ebcd41d2" + }, + { + "nr": 117349, + "hash": "1c1e3eb5c5f29e38d1055d4d33e13111f486f7f1" + }, + { + "nr": 117571, + "hash": "9c16415cad39cba262b6b90b41a74c5e4fc4d698" + }, + { + "nr": 118510, + "hash": "2c272a791d836a7fcc4ccf99a1de6d826f0f05e8" + }, + { + "nr": 117877, + "hash": "3b7b25bc9ab1762d5b4941d74d621f36db65029e" + }, + { + "nr": 117999, + "hash": "e5c321e5ddebd4f01689ffc36fa03589dbf8ed32" + }, + { + "nr": 117794, + "hash": "52f15280a8d333e6f14cc7de29059c24492d8624" + }, + { + "nr": 116506, + "hash": "c7b061f0954d4615e5a0caf912a1abb356d27288" + }, + { + "nr": 117245, + "hash": "84e52a230e25361131643e05ac5d411da4ebb011" + }, + { + "nr": 117020, + "hash": "932374eb14ed0867eaedc331b41a2c604041b2b9" + }, + { + "nr": 117741, + "hash": "46b3334d5266ee6e7c3e15cc53258ccfe340d1c1" + }, + { + "nr": 117802, + "hash": "ab5e5b40748bc8e7cd3de863acf44fab939ad72f" + }, + { + "nr": 116681, + "hash": "dba72136574f5df2e29bedb0d74bc290731c11e3" + }, + { + "nr": 115694, + "hash": "1819a1c2ed661a55ace4f769175b366a6a60f89c" + }, + { + "nr": 116829, + "hash": "da6041cbdf7c2c12255d78146edebbc665d2cebf" + }, + { + "nr": 117688, + "hash": "5219409aafa58a962c38364c71227da6c4b65180" + }, + { + "nr": 114471, + "hash": "9499324397e60e09c013b7dd0352c09b495f0917" + }, + { + "nr": 117140, + "hash": "dcac5210ae885e35a171711cca6c42ccea51da3f" + }, + { + "nr": 117591, + "hash": "8f11c0720c0a323d2b775239c40c72212b8d43e1" + }, + { + "nr": 116797, + "hash": "c518dbf9ef083592c16bb694c7a772f796e4722f" + }, + { + "nr": 117593, + "hash": "17b799dacbebbb2694c67b3f7e3f3740bfb9f245" + }, + { + "nr": 117332, + "hash": "ef7f4d6330b1a1d23f16a9a1d76c010f6080bcc0" + }, + { + "nr": 117025, + "hash": "c37b4d6dbc4677403ba99a010a3610cb97b9d1ae" + }, + { + "nr": 118339, + "hash": "d869516d32abcd9116fba97270d60670d00721da" + }, + { + "nr": 117295, + "hash": "af5f4b41e4850b77c47a7e0a78edd184a24c4d55" + }, + { + "nr": 117656, + "hash": "4e5bb39e94446b3acf01a3d16e386c3683ec3ed6" + }, + { + "nr": 117570, + "hash": "b024b577a2e8a5596ad809e42b4c1b2eaabaaf8a" + }, + { + "nr": 117984, + "hash": "191185a31544bb57486c27de4af36d171cd00092" + }, + { + "nr": 116376, + "hash": "5a2d2e0f09a9741d70f5f95bd594413e2e0b8949" + }, + { + "nr": 117138, + "hash": "415ac6e5277b4bdae0fec3acb1c5912223fc16b8" + }, + { + "nr": 116327, + "hash": "92efa55d911248d595f65ef74787ccd040968d73" + }, + { + "nr": 117870, + "hash": "f292c234b6bd0d735af562e330193e519d63a36f" + }, + { + "nr": 117921, + "hash": "126c48992c408e5f54f74e51e26c8cb9e4e12047" + }, + { + "nr": 116526, + "hash": "fd203176cfee5ea83607fe135f7d76cc81a90da8" + }, + { + "nr": 117388, + "hash": "00f89661145fac79502263e2740a0751f80b9cb7" + }, + { + "nr": 117249, + "hash": "97f5dd9dbc800b936d0ddfdf7794563bed2c1397" + }, + { + "nr": 116995, + "hash": "f047f896491eb2e9e9635b19199b27ead70b8883" + }, + { + "nr": 117022, + "hash": "63820f5406bc9e8b3e806067fb6d9070e4fc73e7" + }, + { + "nr": 116690, + "hash": "5f5e04e1ad43d37ae205fa24ae05d6ee373849b4" + }, + { + "nr": 118507, + "hash": "42dd4f42409b60c46febe98536411d9f8463af9c" + }, + { + "nr": 116649, + "hash": "95c2ffb1664190dcf9c09d03fc6280a2ab13660a" + }, + { + "nr": 118470, + "hash": "32b29a65841153db324bf3bd38bcd09c23842762" + }, + { + "nr": 118236, + "hash": "6331c55d2ca88c2023e3002ef6b9d872ca5b995d" + }, + { + "nr": 117258, + "hash": "d2f719b9862cae037835e5928f7cf8c0ec3a83b7" + }, + { + "nr": 118029, + "hash": "79317613d1f3bc014119df7eddfca68ef1e0f23a" + }, + { + "nr": 117368, + "hash": "ecb2ca9fa027e705ec488835fb68100ff3bcb051" + }, + { + "nr": 110477, + "hash": "2273d6ec185f60ee569e285131646696252cd75e" + }, + { + "nr": 114068, + "hash": "3de05698fc5d5f3ef2d99857f81f1fe19f2fa94f" + }, + { + "nr": 117544, + "hash": "0fc8c2aff82d092f1e6c6c6ff0e563adb38f380b" + }, + { + "nr": 110472, + "hash": "3f4a8b4aad5322cd84f83b57380d37f7a3cfa413" + }, + { + "nr": 117690, + "hash": "6c5de69c428f1724377dd4a71ef4a8d413801f34" + }, + { + "nr": 116482, + "hash": "063cd7eddef0e6ea9f33c7583ea5bf9e56f0b873" + }, + { + "nr": 118541, + "hash": "74a578d9c98be8c9887030c8a8cb4ce5c26707b4" + }, + { + "nr": 116741, + "hash": "2ed6a6b484a3acb8d6f2a5da236d75a144c0fe60" + }, + { + "nr": 117633, + "hash": "98b153ca1b4093f941c06d8b5912cf819443d854" + }, + { + "nr": 116749, + "hash": "6d18eb8bf629c823b5e692306450a9425f963485" + }, + { + "nr": 116134, + "hash": "b925441dd00803b624958484eceac97dedeefbaf" + }, + { + "nr": 117139, + "hash": "b9671234630c820d91b0e1721d397aef8a0efb5e" + }, + { + "nr": 117904, + "hash": "9daa1eaccb1ad60bac9c59512f1294a4c5552a70" + }, + { + "nr": 117660, + "hash": "9bc2ddd2dd6f2a1085df2c3a8d337d8ac86969f1" + }, + { + "nr": 117568, + "hash": "96d3a719f1d1bfd83b3ea0f1cec3256f4f01976a" + }, + { + "nr": 115843, + "hash": "57deab752e0396cbe638f03f1199c01b7ade84ef" + }, + { + "nr": 117534, + "hash": "861086c608426b4cafb00d70f61193a853711a39" + }, + { + "nr": 117543, + "hash": "cc56ee46923012e6b4e2faf12b0248cf748b1375" + }, + { + "nr": 117724, + "hash": "4217bdb8c92d7d3ab6cad9cd2cdc6ca83ba5fb7c" + }, + { + "nr": 117211, + "hash": "1fa52f1162ec55a0617b75186123d83bf6f62005" + }, + { + "nr": 117751, + "hash": "855c0139cfef08449eb20dcf38d479fca9cdbcfd" + }, + { + "nr": 117482, + "hash": "eb1ffee911c74ce501a32d425e59220d08d31fc3" + }, + { + "nr": 117301, + "hash": "4d348915865113644505aced7f656b954230da07" + }, + { + "nr": 114514, + "hash": "912f923e4f8197a77d4ef4fba60c5bc6e1e712b2" + }, + { + "nr": 115554, + "hash": "64f8e5f07180d39e916835c524d5fa03eb35be0d" + }, + { + "nr": 117919, + "hash": "902f61d825161a2ac43d99411d93ffd319add299" + }, + { + "nr": 117835, + "hash": "ce0e718ef5a09b60153c49f548d7090ba8f364ca" + }, + { + "nr": 117483, + "hash": "9d483a836cc87c3f88f60da216c86cebada6dc0a" + }, + { + "nr": 118384, + "hash": "86b44152139f7c1dd724fe3136d57c13bb5599e7" + }, + { + "nr": 117237, + "hash": "cddfbd338b1c920ab802c8e9dbf76c5b2fa043ff" + }, + { + "nr": 116937, + "hash": "24adf265443a27c1dbc2aabf81386fb13d67907e" + }, + { + "nr": 116865, + "hash": "c20586846492893bd15222b34fee8b4a22416961" + }, + { + "nr": 115754, + "hash": "c77dac7ccc627a90863c2d6635b64a4f154c3925" + }, + { + "nr": 117965, + "hash": "60db63ae24ee87439498d0fe02dc7b8cb1c59f7f" + }, + { + "nr": 116525, + "hash": "b70192f1ef93d3c913514da3b5335a0d83d366ea" + }, + { + "nr": 115398, + "hash": "243dbd0a26c1935fdccddfafe56b7d972c3aa572" + }, + { + "nr": 117390, + "hash": "4eeab6e102dccdedb84cf788085fb240ea421653" + }, + { + "nr": 117283, + "hash": "9620d24df22a5559538c78ce043936ad75bdd091" + }, + { + "nr": 117717, + "hash": "e98b5246fc80c41d336f59df9783b09db8b90889" + }, + { + "nr": 116208, + "hash": "167f144df9fb7e2c02b223e8d587b274d7595ed0" + }, + { + "nr": 117687, + "hash": "28a9ba2d516187ac352a45cadad6404cd049e29f" + }, + { + "nr": 117121, + "hash": "e16e2e3d18d04d5484da044955475e88d1b25b1c" + } + ] } \ No newline at end of file diff --git a/releases/release-1.28/release-notes/sessions/maps-1687796782.json b/releases/release-1.28/release-notes/sessions/maps-1687796782.json index 7f564f587f8..3706bdab98f 100644 --- a/releases/release-1.28/release-notes/sessions/maps-1687796782.json +++ b/releases/release-1.28/release-notes/sessions/maps-1687796782.json @@ -1,95 +1,95 @@ -{ - "mail": "smith.rashan@gmail.com", - "name": "Rashan Smith", - "date": 1687796782, - "prs": [ - { - "nr": 118278, - "hash": "0539935b080cab62a84b403cda5f54a15502c1b9" - }, - { - "nr": 116635, - "hash": "433bb87d05371da9c9caefbaa2ad7bdc722e645e" - }, - { - "nr": 116910, - "hash": "8d054ed757b460b67e6be478c183771b5518b9d6" - }, - { - "nr": 117793, - "hash": "45571fd1f95ad4f2b5441cea7f3fe4e851c1e28e" - }, - { - "nr": 118420, - "hash": "f75bc14edd7388226282b61e5c69e93bb81c7987" - }, - { - "nr": 118115, - "hash": "948a564d45a462bf070174ec12bd2d4689502357" - }, - { - "nr": 118342, - "hash": "80f00310883587f9efdc52acf988a175aa55cf30" - }, - { - "nr": 116530, - "hash": "c8dc72f8d283e2d3e0f35adef0cc32eab35eb173" - }, - { - "nr": 118631, - "hash": "fb821e6d63b182497d29cf1d65625788b1a5fd85" - }, - { - "nr": 118128, - "hash": "5addd2064921eed846ea87edf2204a4c42bb4325" - }, - { - "nr": 118055, - "hash": "6a11bb8d2ce297e20a8a35d250f391c27629f04b" - }, - { - "nr": 118567, - "hash": "dc9c73cb429a6b615de4e8261c218405cac7c65f" - }, - { - "nr": 118596, - "hash": "123c5888a77e5ab632a8b5f96e575a802cb9f87a" - }, - { - "nr": 118507, - "hash": "0fd3ab63d60d1586e3687f6a2c548bcc33f8307a" - }, - { - "nr": 118460, - "hash": "03a31b5ceff4ad3c2d884faf14ed7d8670843eab" - }, - { - "nr": 118530, - "hash": "178e3c01da92b478dc9574dee77373a0617f5e5b" - }, - { - "nr": 117550, - "hash": "936cd7b3083b32a28608f1a4eb2899e78fbd766c" - }, - { - "nr": 115835, - "hash": "53ae7f8a82caa59cb48b0b625026214f4ff85cf5" - }, - { - "nr": 117702, - "hash": "d5867b0f2ec11e884263e326fd1ab41ca042cc3b" - }, - { - "nr": 114849, - "hash": "7a480eb7a668272948bb9b7345111d273438da77" - }, - { - "nr": 118329, - "hash": "b22b59b5846c58e30ad323b5fecaf96f0fe30e4a" - }, - { - "nr": 118615, - "hash": "445c8103b0957189ef25fb9b92a856c8a6815023" - } - ] +{ + "mail": "smith.rashan@gmail.com", + "name": "Rashan Smith", + "date": 1687796782, + "prs": [ + { + "nr": 118278, + "hash": "0539935b080cab62a84b403cda5f54a15502c1b9" + }, + { + "nr": 116635, + "hash": "433bb87d05371da9c9caefbaa2ad7bdc722e645e" + }, + { + "nr": 116910, + "hash": "8d054ed757b460b67e6be478c183771b5518b9d6" + }, + { + "nr": 117793, + "hash": "45571fd1f95ad4f2b5441cea7f3fe4e851c1e28e" + }, + { + "nr": 118420, + "hash": "f75bc14edd7388226282b61e5c69e93bb81c7987" + }, + { + "nr": 118115, + "hash": "948a564d45a462bf070174ec12bd2d4689502357" + }, + { + "nr": 118342, + "hash": "80f00310883587f9efdc52acf988a175aa55cf30" + }, + { + "nr": 116530, + "hash": "c8dc72f8d283e2d3e0f35adef0cc32eab35eb173" + }, + { + "nr": 118631, + "hash": "fb821e6d63b182497d29cf1d65625788b1a5fd85" + }, + { + "nr": 118128, + "hash": "5addd2064921eed846ea87edf2204a4c42bb4325" + }, + { + "nr": 118055, + "hash": "6a11bb8d2ce297e20a8a35d250f391c27629f04b" + }, + { + "nr": 118567, + "hash": "dc9c73cb429a6b615de4e8261c218405cac7c65f" + }, + { + "nr": 118596, + "hash": "123c5888a77e5ab632a8b5f96e575a802cb9f87a" + }, + { + "nr": 118507, + "hash": "0fd3ab63d60d1586e3687f6a2c548bcc33f8307a" + }, + { + "nr": 118460, + "hash": "03a31b5ceff4ad3c2d884faf14ed7d8670843eab" + }, + { + "nr": 118530, + "hash": "178e3c01da92b478dc9574dee77373a0617f5e5b" + }, + { + "nr": 117550, + "hash": "936cd7b3083b32a28608f1a4eb2899e78fbd766c" + }, + { + "nr": 115835, + "hash": "53ae7f8a82caa59cb48b0b625026214f4ff85cf5" + }, + { + "nr": 117702, + "hash": "d5867b0f2ec11e884263e326fd1ab41ca042cc3b" + }, + { + "nr": 114849, + "hash": "7a480eb7a668272948bb9b7345111d273438da77" + }, + { + "nr": 118329, + "hash": "b22b59b5846c58e30ad323b5fecaf96f0fe30e4a" + }, + { + "nr": 118615, + "hash": "445c8103b0957189ef25fb9b92a856c8a6815023" + } + ] } \ No newline at end of file diff --git a/releases/release-1.28/release-notes/sessions/maps-1689613709.json b/releases/release-1.28/release-notes/sessions/maps-1689613709.json index 39b7e342628..a256abf4a4d 100644 --- a/releases/release-1.28/release-notes/sessions/maps-1689613709.json +++ b/releases/release-1.28/release-notes/sessions/maps-1689613709.json @@ -1,195 +1,195 @@ -{ - "mail": "michaelfromyeg@gmail.com", - "name": "Michael DeMarco", - "date": 1689613709, - "prs": [ - { - "nr": 118786, - "hash": "0ff8ce8f074e90730fff2fc55e69e5042fd0d39e" - }, - { - "nr": 118686, - "hash": "f939757060dcdfeba22291206c4ab4398f9a98e0" - }, - { - "nr": 117055, - "hash": "c5da4f8a2cb9d497e90e3e6c528a86397bf3703b" - }, - { - "nr": 118173, - "hash": "a3934dd8414ac40148b5d11b026b0f95b7f820e3" - }, - { - "nr": 117927, - "hash": "a27a6f22b8acdf469d5f1605448f53796efe6544" - }, - { - "nr": 118915, - "hash": "3b1bc39e25506a4debb4f2532e174bef64f9bc68" - }, - { - "nr": 118552, - "hash": "01ab1e0604f6834975abcb5a1be202f2eb2cae7a" - }, - { - "nr": 117108, - "hash": "9a3fd1ab62f029fd49ed4110388034b0f8e93c3b" - }, - { - "nr": 118763, - "hash": "dc3d114e1f2ed429fc14ed895a8a1fef19001403" - }, - { - "nr": 118232, - "hash": "0079e4a75d469b21e03348ca55c9d225d00e8f3d" - }, - { - "nr": 118497, - "hash": "d6b6cdc6306e7c61d3c0a495f13dc7d0dc7b107f" - }, - { - "nr": 116930, - "hash": "e8c569bd9c1a427dcca25373d485f5cc4943175e" - }, - { - "nr": 118945, - "hash": "ccf5c49b626d4e7aa08aea6d03baa589d6f372b8" - }, - { - "nr": 118025, - "hash": "91e9c71e500eab198625f0ef516e8e864fb1eb55" - }, - { - "nr": 118876, - "hash": "b92a2ac106702c4ea6e9263fda6987f77506fa87" - }, - { - "nr": 118866, - "hash": "92a2fd6d5cbf092fe3d18d4fca27ba1ce1d2ac3f" - }, - { - "nr": 118049, - "hash": "014158ba7aaddb4d1bb86052e1ca45db798b0f3f" - }, - { - "nr": 118160, - "hash": "151865d4f51b962341c2a0ed80e8607d161fcc37" - }, - { - "nr": 118967, - "hash": "3a10d4148a9b27388f5fb12e11cc8df262fcbee9" - }, - { - "nr": 118971, - "hash": "5a87aa016b40a46760d1fe3cadd650f4f264a534" - }, - { - "nr": 118810, - "hash": "ecaf2f40383abe75db75eed04d91e8c6c502c1d8" - }, - { - "nr": 119033, - "hash": "19323f3ee6bd0452f7c3341dffee94a211492ada" - }, - { - "nr": 116685, - "hash": "7474bdd6e2c4c89be7086d78000ebb988cfb5523" - }, - { - "nr": 116977, - "hash": "9ce95ee1e6a9a03470894723486175f0f0a73930" - }, - { - "nr": 118922, - "hash": "4ea933cc5d03ba17043fd7df6f58f6e4c0824965" - }, - { - "nr": 118691, - "hash": "79b7a1ed649e9f81b664f73aff7619073ec3c336" - }, - { - "nr": 118986, - "hash": "f1d210db69129913436f632bffa3672076f0c50f" - }, - { - "nr": 118759, - "hash": "380349610948d1243628807e1c9e25d8c7d62c81" - }, - { - "nr": 118102, - "hash": "e7745079c503d2cc3df4f7b252bd3b593a80fd75" - }, - { - "nr": 115357, - "hash": "5431a86814622548798ec51f6dea2215619ff906" - }, - { - "nr": 118960, - "hash": "0aefe1d6d235f375294a7dfedfb30eabd6abc696" - }, - { - "nr": 119001, - "hash": "4022f409d0102ae09811620918f92ce5db00e4ba" - }, - { - "nr": 113994, - "hash": "79f92d69d0d417b4f5119140fe812e01a63d3c02" - }, - { - "nr": 118904, - "hash": "1d3298359e98a83f307c09a96a9577063f11d80f" - }, - { - "nr": 119003, - "hash": "b1e8c03dd948c538648068b68800a7499fa640f3" - }, - { - "nr": 118551, - "hash": "83be959774041f60110bbf669f1d8334e34ca82c" - }, - { - "nr": 118774, - "hash": "32037c89c6b46b7d4b88a8ce57fbe23144370ef1" - }, - { - "nr": 115813, - "hash": "30f0197c969ddb90535cf628cfb5ec249c5781b6" - }, - { - "nr": 118842, - "hash": "fc2fb01f8a54cd22f0699b1a0dd676e397676b68" - }, - { - "nr": 114909, - "hash": "6fe4b0767754bccbb98961cf116b21d97e59e2a7" - }, - { - "nr": 117865, - "hash": "dbbe626dde4dddfb0415242e674c256b5cb70d2a" - }, - { - "nr": 118724, - "hash": "c7f2d69a23dc043da01c2f3f023d6bde193d040c" - }, - { - "nr": 116729, - "hash": "d66c5e82bf6c39168c965bead2cfee7242e8950b" - }, - { - "nr": 118817, - "hash": "a31ade246eb80971f394838fb9e6c15608c50b02" - }, - { - "nr": 118936, - "hash": "e4548271ab86085a97574fd229cbe247c254e9b0" - }, - { - "nr": 118716, - "hash": "d40dd79ec0479a48aa3ae124dcdc5c41b0824da6" - }, - { - "nr": 118386, - "hash": "3fce73ac3594acbc51c4adebbf575b88dbcda328" - } - ] +{ + "mail": "michaelfromyeg@gmail.com", + "name": "Michael DeMarco", + "date": 1689613709, + "prs": [ + { + "nr": 118786, + "hash": "0ff8ce8f074e90730fff2fc55e69e5042fd0d39e" + }, + { + "nr": 118686, + "hash": "f939757060dcdfeba22291206c4ab4398f9a98e0" + }, + { + "nr": 117055, + "hash": "c5da4f8a2cb9d497e90e3e6c528a86397bf3703b" + }, + { + "nr": 118173, + "hash": "a3934dd8414ac40148b5d11b026b0f95b7f820e3" + }, + { + "nr": 117927, + "hash": "a27a6f22b8acdf469d5f1605448f53796efe6544" + }, + { + "nr": 118915, + "hash": "3b1bc39e25506a4debb4f2532e174bef64f9bc68" + }, + { + "nr": 118552, + "hash": "01ab1e0604f6834975abcb5a1be202f2eb2cae7a" + }, + { + "nr": 117108, + "hash": "9a3fd1ab62f029fd49ed4110388034b0f8e93c3b" + }, + { + "nr": 118763, + "hash": "dc3d114e1f2ed429fc14ed895a8a1fef19001403" + }, + { + "nr": 118232, + "hash": "0079e4a75d469b21e03348ca55c9d225d00e8f3d" + }, + { + "nr": 118497, + "hash": "d6b6cdc6306e7c61d3c0a495f13dc7d0dc7b107f" + }, + { + "nr": 116930, + "hash": "e8c569bd9c1a427dcca25373d485f5cc4943175e" + }, + { + "nr": 118945, + "hash": "ccf5c49b626d4e7aa08aea6d03baa589d6f372b8" + }, + { + "nr": 118025, + "hash": "91e9c71e500eab198625f0ef516e8e864fb1eb55" + }, + { + "nr": 118876, + "hash": "b92a2ac106702c4ea6e9263fda6987f77506fa87" + }, + { + "nr": 118866, + "hash": "92a2fd6d5cbf092fe3d18d4fca27ba1ce1d2ac3f" + }, + { + "nr": 118049, + "hash": "014158ba7aaddb4d1bb86052e1ca45db798b0f3f" + }, + { + "nr": 118160, + "hash": "151865d4f51b962341c2a0ed80e8607d161fcc37" + }, + { + "nr": 118967, + "hash": "3a10d4148a9b27388f5fb12e11cc8df262fcbee9" + }, + { + "nr": 118971, + "hash": "5a87aa016b40a46760d1fe3cadd650f4f264a534" + }, + { + "nr": 118810, + "hash": "ecaf2f40383abe75db75eed04d91e8c6c502c1d8" + }, + { + "nr": 119033, + "hash": "19323f3ee6bd0452f7c3341dffee94a211492ada" + }, + { + "nr": 116685, + "hash": "7474bdd6e2c4c89be7086d78000ebb988cfb5523" + }, + { + "nr": 116977, + "hash": "9ce95ee1e6a9a03470894723486175f0f0a73930" + }, + { + "nr": 118922, + "hash": "4ea933cc5d03ba17043fd7df6f58f6e4c0824965" + }, + { + "nr": 118691, + "hash": "79b7a1ed649e9f81b664f73aff7619073ec3c336" + }, + { + "nr": 118986, + "hash": "f1d210db69129913436f632bffa3672076f0c50f" + }, + { + "nr": 118759, + "hash": "380349610948d1243628807e1c9e25d8c7d62c81" + }, + { + "nr": 118102, + "hash": "e7745079c503d2cc3df4f7b252bd3b593a80fd75" + }, + { + "nr": 115357, + "hash": "5431a86814622548798ec51f6dea2215619ff906" + }, + { + "nr": 118960, + "hash": "0aefe1d6d235f375294a7dfedfb30eabd6abc696" + }, + { + "nr": 119001, + "hash": "4022f409d0102ae09811620918f92ce5db00e4ba" + }, + { + "nr": 113994, + "hash": "79f92d69d0d417b4f5119140fe812e01a63d3c02" + }, + { + "nr": 118904, + "hash": "1d3298359e98a83f307c09a96a9577063f11d80f" + }, + { + "nr": 119003, + "hash": "b1e8c03dd948c538648068b68800a7499fa640f3" + }, + { + "nr": 118551, + "hash": "83be959774041f60110bbf669f1d8334e34ca82c" + }, + { + "nr": 118774, + "hash": "32037c89c6b46b7d4b88a8ce57fbe23144370ef1" + }, + { + "nr": 115813, + "hash": "30f0197c969ddb90535cf628cfb5ec249c5781b6" + }, + { + "nr": 118842, + "hash": "fc2fb01f8a54cd22f0699b1a0dd676e397676b68" + }, + { + "nr": 114909, + "hash": "6fe4b0767754bccbb98961cf116b21d97e59e2a7" + }, + { + "nr": 117865, + "hash": "dbbe626dde4dddfb0415242e674c256b5cb70d2a" + }, + { + "nr": 118724, + "hash": "c7f2d69a23dc043da01c2f3f023d6bde193d040c" + }, + { + "nr": 116729, + "hash": "d66c5e82bf6c39168c965bead2cfee7242e8950b" + }, + { + "nr": 118817, + "hash": "a31ade246eb80971f394838fb9e6c15608c50b02" + }, + { + "nr": 118936, + "hash": "e4548271ab86085a97574fd229cbe247c254e9b0" + }, + { + "nr": 118716, + "hash": "d40dd79ec0479a48aa3ae124dcdc5c41b0824da6" + }, + { + "nr": 118386, + "hash": "3fce73ac3594acbc51c4adebbf575b88dbcda328" + } + ] } \ No newline at end of file diff --git a/releases/release-1.28/release-notes/sessions/maps-1690641998.json b/releases/release-1.28/release-notes/sessions/maps-1690641998.json index d0661107231..c54f7b6a288 100644 --- a/releases/release-1.28/release-notes/sessions/maps-1690641998.json +++ b/releases/release-1.28/release-notes/sessions/maps-1690641998.json @@ -1,363 +1,363 @@ -{ - "mail": "sanchita.mishra1718@gmail.com", - "name": "sanchita-07", - "date": 1690641998, - "prs": [ - { - "nr": 117740, - "hash": "07bf70272ec9a01706224a844b9b8f964f6880ab" - }, - { - "nr": 118959, - "hash": "72d6d72541bc7f3b5ae5c1549751ce62b03f530c" - }, - { - "nr": 119250, - "hash": "09c3b195de796bcebb3e2935809fb9f62b92981d" - }, - { - "nr": 116254, - "hash": "6f5ebe94b890e48be13803f224482be653f8f212" - }, - { - "nr": 119351, - "hash": "ff3317bcfe21bc0969e5328239d5058ae2d28411" - }, - { - "nr": 119264, - "hash": "fd73c5626243fe70042215b63105719f70a860db" - }, - { - "nr": 119294, - "hash": "7fc28e7986444c9ab138928ef91aef1fe2c619bf" - }, - { - "nr": 118999, - "hash": "bb7411742d82cb8c4296b0d2e321f6779d8b9f9c" - }, - { - "nr": 118808, - "hash": "e3ac230acc1e50786fabc6c1becd3ea2f5fbfa2b" - }, - { - "nr": 118812, - "hash": "5b2c79a6e7356b593e155cc548f0d60028b555fb" - }, - { - "nr": 119241, - "hash": "918a293780c6c9d4b6e18b857b09dbd132637588" - }, - { - "nr": 119256, - "hash": "93860a2f8ff94c891268aac2184cd0b1270676d3" - }, - { - "nr": 118578, - "hash": "7161500ae2458fee144a59705707739f6ba36e77" - }, - { - "nr": 109616, - "hash": "0bff55ae8f1c729f8e9f7a1f94e2ba2ab4036e60" - }, - { - "nr": 119225, - "hash": "8e9c023391d807199b1002e828383056ba1cc719" - }, - { - "nr": 118804, - "hash": "f1a1b5a12826b9e17bd89018707508667d05637e" - }, - { - "nr": 118209, - "hash": "065813db5fcbd0977360bfd0bf7deaad5658317f" - }, - { - "nr": 118212, - "hash": "91dbf7fa7fa09a2fb7b157a072f59416ac4cd69d" - }, - { - "nr": 119159, - "hash": "5965058579ddf6ba0610240c06db17a08282e67a" - }, - { - "nr": 119095, - "hash": "1945288d5cf3de9501f2f4be7b35e9b33d821c86" - }, - { - "nr": 119012, - "hash": "efb21d13e9a65016cc246da10fd480d18397f6f8" - }, - { - "nr": 116755, - "hash": "9ea320d1cf073a66e9c38a574c658dcfdea43991" - }, - { - "nr": 118009, - "hash": "2de266c1494d6d9f3ed986c9ad67e08fb17cefd2" - }, - { - "nr": 117800, - "hash": "0533de3193050a09b8df277c37d9f182b0e4e732" - }, - { - "nr": 119247, - "hash": "70afdd694c9aaf755cdad0fefb91f3cccc7faab0" - }, - { - "nr": 118508, - "hash": "480549764066a379c81098e5015977bce423bd36" - }, - { - "nr": 119198, - "hash": "0d1ab529c7fbede096ec8c754c659a7d11374e03" - }, - { - "nr": 118601, - "hash": "d6e10d80fc43e2e13d46624c1828509fb844a101" - }, - { - "nr": 119380, - "hash": "8362e460b3f22cf151c697461abc62abe3caa887" - }, - { - "nr": 113245, - "hash": "fa4b9a691f6a245ff6200ad6a1a62becaad989fb" - }, - { - "nr": 119238, - "hash": "b59542033d7b93327e84306a6afbc7cd44ae9331" - }, - { - "nr": 117804, - "hash": "ddc4b0b966692dba299c7d4e8835e0aaafb920e4" - }, - { - "nr": 119147, - "hash": "3e5c4760cd4412e3dd2ef57ed02b28ab00dc89d6" - }, - { - "nr": 118041, - "hash": "128532144e1a7980dfbc4fefe6fd973fbf9277e3" - }, - { - "nr": 119311, - "hash": "9afbe1d161f2a19ede245874c83d710923684834" - }, - { - "nr": 118953, - "hash": "56f79dcd97a5173a87ee97f97e0b52f0e967dfe9" - }, - { - "nr": 118803, - "hash": "7295cafda3e08dd2a7908c99f21138684db6064a" - }, - { - "nr": 119130, - "hash": "f00c7d9ce63443e7710d6d6e8df0bd88393cdac3" - }, - { - "nr": 119215, - "hash": "8e04b290ea9d5b9793e57a81eb5976368a7c3c6a" - }, - { - "nr": 119110, - "hash": "b405f2060f417215ff59d8fb3fcea42d833cda47" - }, - { - "nr": 118883, - "hash": "46af91bc7708d6db0642ed86ff432d7dc350bd52" - }, - { - "nr": 119009, - "hash": "d024c5adb151d2b8c03e8911ff59af8da1b056f0" - }, - { - "nr": 119434, - "hash": "dd007f7e73b7edfea0a046af85f2e8809272d561" - }, - { - "nr": 119324, - "hash": "e66c565a49715e970a67bdfa85c21514dd16a6ba" - }, - { - "nr": 118303, - "hash": "c2d72b0f0acbab54953ef95f4bd75cbe10c2d444" - }, - { - "nr": 118782, - "hash": "7a9b34baf255cdcdf8a4a1fe2fdada9b9b16c57b" - }, - { - "nr": 117696, - "hash": "f37ceabad4eb803467067be09879c953508a80eb" - }, - { - "nr": 119328, - "hash": "c3c0970ff62c739cab0923d9f85657075248c90d" - }, - { - "nr": 115122, - "hash": "1f7108e782701bb4e741034c09998e3741119ee0" - }, - { - "nr": 114307, - "hash": "5c3f563d7b140d7c2853311761d10aa9d67c1558" - }, - { - "nr": 118608, - "hash": "5790dd77f1bf1d8a9e09283b2b8242d4efee435a" - }, - { - "nr": 118540, - "hash": "aa4ee62c20b1662c7082e03c5e92c6dd12ce34e7" - }, - { - "nr": 118816, - "hash": "4193b37f5992dc75df41571a0afea4c93ca65840" - }, - { - "nr": 118764, - "hash": "ac60612f0d71b00f509ecc2f8c222d0a69dde661" - }, - { - "nr": 116879, - "hash": "8e409bdf9dad5f72cb41028294cd33f877a1bcd2" - }, - { - "nr": 116335, - "hash": "fe823214575715e80f1a413dac81efa7f5c7bcc4" - }, - { - "nr": 118973, - "hash": "ff5c01a1ce0885917fe04b3aa96bcfcc0f5fac86" - }, - { - "nr": 119209, - "hash": "3e0aa782ac6227957c0dd00b3afe15bfec63ba31" - }, - { - "nr": 119390, - "hash": "3175200cfbeaa2059fda83dc56ae60a83b4096ed" - }, - { - "nr": 119301, - "hash": "d0cb545285b49034ec9d4d37a0ddfd7b552dc9cc" - }, - { - "nr": 116720, - "hash": "e892e27093cad1663e38d8efd559e2b0d2e6cf54" - }, - { - "nr": 119422, - "hash": "9cd0c8f51c6e28b8d9e625dadc1dd88a240340dc" - }, - { - "nr": 119365, - "hash": "37b3419175ea59ad7c79837c30084d3931b22e33" - }, - { - "nr": 119140, - "hash": "ae72926fefb31766c5535076ad2651256e7020c9" - }, - { - "nr": 115295, - "hash": "534643cee808a56cd3316dbbbf953f5bec84b5b2" - }, - { - "nr": 118770, - "hash": "92a2c7577ffe075311dcb2eff3eba2f2e0cc3ed7" - }, - { - "nr": 118895, - "hash": "9847f8a72d75d7fca3616f4d2f945120e5910021" - }, - { - "nr": 119007, - "hash": "57e7ae683e340935cf92afb4f7d8c7a6fe2ca103" - }, - { - "nr": 116470, - "hash": "31136a576e173e09cce848ecf2e26d355d5b1ffc" - }, - { - "nr": 118267, - "hash": "30a5ecd094a49fcd09f69fae58f5c22ea9f551a1" - }, - { - "nr": 118988, - "hash": "3b38d3d27a0d7329a49d173db8f4fc13bff31453" - }, - { - "nr": 119185, - "hash": "e1ee207cb7f1e92eb481880cd5d87011e1beb6c5" - }, - { - "nr": 116429, - "hash": "025d8da0240f7be77ba5458f74f47c4d3faf2827" - }, - { - "nr": 118480, - "hash": "caea5ba9c4be00e396d9789eb996a563db8fad82" - }, - { - "nr": 116443, - "hash": "7e6b97fd0799c3f678fe4657132d8c7703e94646" - }, - { - "nr": 118772, - "hash": "c8701c562b5c1c5a1dd345b2e7ba91d193835f83" - }, - { - "nr": 117351, - "hash": "b89656860f1d70822b9c1f5e432a94c2cc5ae615" - }, - { - "nr": 119008, - "hash": "29bc0e73a14ce7f194717e0ec025fb1ab4deef15" - }, - { - "nr": 119158, - "hash": "38319895158162b6976f2951680205f47a60b606" - }, - { - "nr": 118137, - "hash": "a96ba134d652f0767c06f5ccfbd06e5fc46c480f" - }, - { - "nr": 118228, - "hash": "288470ee865af913933b88670ad9913e10ffd040" - }, - { - "nr": 116968, - "hash": "f5a1d56289224249665b184e8cb0e831121e662f" - }, - { - "nr": 118865, - "hash": "841ac383b2d33c72608cdb7d795b32d90ab5280e" - }, - { - "nr": 118254, - "hash": "e83e292e3c647f719109985ecc780bd0f1edd600" - }, - { - "nr": 119232, - "hash": "780c3f37deddfbb5eed8c665d5629b9521846779" - }, - { - "nr": 119078, - "hash": "7f1c5c615064679496e855a7511e18a3153355d5" - }, - { - "nr": 118990, - "hash": "f8e401f8334e990b3bf3322bf5fb4ad4573da50b" - }, - { - "nr": 119286, - "hash": "e932f3820fac3d5d963913e5864c14dc57b47a8e" - }, - { - "nr": 114530, - "hash": "3c0ab4adb8afdd8c25eeac28e2badf3dae6ce932" - } - ] +{ + "mail": "sanchita.mishra1718@gmail.com", + "name": "sanchita-07", + "date": 1690641998, + "prs": [ + { + "nr": 117740, + "hash": "07bf70272ec9a01706224a844b9b8f964f6880ab" + }, + { + "nr": 118959, + "hash": "72d6d72541bc7f3b5ae5c1549751ce62b03f530c" + }, + { + "nr": 119250, + "hash": "09c3b195de796bcebb3e2935809fb9f62b92981d" + }, + { + "nr": 116254, + "hash": "6f5ebe94b890e48be13803f224482be653f8f212" + }, + { + "nr": 119351, + "hash": "ff3317bcfe21bc0969e5328239d5058ae2d28411" + }, + { + "nr": 119264, + "hash": "fd73c5626243fe70042215b63105719f70a860db" + }, + { + "nr": 119294, + "hash": "7fc28e7986444c9ab138928ef91aef1fe2c619bf" + }, + { + "nr": 118999, + "hash": "bb7411742d82cb8c4296b0d2e321f6779d8b9f9c" + }, + { + "nr": 118808, + "hash": "e3ac230acc1e50786fabc6c1becd3ea2f5fbfa2b" + }, + { + "nr": 118812, + "hash": "5b2c79a6e7356b593e155cc548f0d60028b555fb" + }, + { + "nr": 119241, + "hash": "918a293780c6c9d4b6e18b857b09dbd132637588" + }, + { + "nr": 119256, + "hash": "93860a2f8ff94c891268aac2184cd0b1270676d3" + }, + { + "nr": 118578, + "hash": "7161500ae2458fee144a59705707739f6ba36e77" + }, + { + "nr": 109616, + "hash": "0bff55ae8f1c729f8e9f7a1f94e2ba2ab4036e60" + }, + { + "nr": 119225, + "hash": "8e9c023391d807199b1002e828383056ba1cc719" + }, + { + "nr": 118804, + "hash": "f1a1b5a12826b9e17bd89018707508667d05637e" + }, + { + "nr": 118209, + "hash": "065813db5fcbd0977360bfd0bf7deaad5658317f" + }, + { + "nr": 118212, + "hash": "91dbf7fa7fa09a2fb7b157a072f59416ac4cd69d" + }, + { + "nr": 119159, + "hash": "5965058579ddf6ba0610240c06db17a08282e67a" + }, + { + "nr": 119095, + "hash": "1945288d5cf3de9501f2f4be7b35e9b33d821c86" + }, + { + "nr": 119012, + "hash": "efb21d13e9a65016cc246da10fd480d18397f6f8" + }, + { + "nr": 116755, + "hash": "9ea320d1cf073a66e9c38a574c658dcfdea43991" + }, + { + "nr": 118009, + "hash": "2de266c1494d6d9f3ed986c9ad67e08fb17cefd2" + }, + { + "nr": 117800, + "hash": "0533de3193050a09b8df277c37d9f182b0e4e732" + }, + { + "nr": 119247, + "hash": "70afdd694c9aaf755cdad0fefb91f3cccc7faab0" + }, + { + "nr": 118508, + "hash": "480549764066a379c81098e5015977bce423bd36" + }, + { + "nr": 119198, + "hash": "0d1ab529c7fbede096ec8c754c659a7d11374e03" + }, + { + "nr": 118601, + "hash": "d6e10d80fc43e2e13d46624c1828509fb844a101" + }, + { + "nr": 119380, + "hash": "8362e460b3f22cf151c697461abc62abe3caa887" + }, + { + "nr": 113245, + "hash": "fa4b9a691f6a245ff6200ad6a1a62becaad989fb" + }, + { + "nr": 119238, + "hash": "b59542033d7b93327e84306a6afbc7cd44ae9331" + }, + { + "nr": 117804, + "hash": "ddc4b0b966692dba299c7d4e8835e0aaafb920e4" + }, + { + "nr": 119147, + "hash": "3e5c4760cd4412e3dd2ef57ed02b28ab00dc89d6" + }, + { + "nr": 118041, + "hash": "128532144e1a7980dfbc4fefe6fd973fbf9277e3" + }, + { + "nr": 119311, + "hash": "9afbe1d161f2a19ede245874c83d710923684834" + }, + { + "nr": 118953, + "hash": "56f79dcd97a5173a87ee97f97e0b52f0e967dfe9" + }, + { + "nr": 118803, + "hash": "7295cafda3e08dd2a7908c99f21138684db6064a" + }, + { + "nr": 119130, + "hash": "f00c7d9ce63443e7710d6d6e8df0bd88393cdac3" + }, + { + "nr": 119215, + "hash": "8e04b290ea9d5b9793e57a81eb5976368a7c3c6a" + }, + { + "nr": 119110, + "hash": "b405f2060f417215ff59d8fb3fcea42d833cda47" + }, + { + "nr": 118883, + "hash": "46af91bc7708d6db0642ed86ff432d7dc350bd52" + }, + { + "nr": 119009, + "hash": "d024c5adb151d2b8c03e8911ff59af8da1b056f0" + }, + { + "nr": 119434, + "hash": "dd007f7e73b7edfea0a046af85f2e8809272d561" + }, + { + "nr": 119324, + "hash": "e66c565a49715e970a67bdfa85c21514dd16a6ba" + }, + { + "nr": 118303, + "hash": "c2d72b0f0acbab54953ef95f4bd75cbe10c2d444" + }, + { + "nr": 118782, + "hash": "7a9b34baf255cdcdf8a4a1fe2fdada9b9b16c57b" + }, + { + "nr": 117696, + "hash": "f37ceabad4eb803467067be09879c953508a80eb" + }, + { + "nr": 119328, + "hash": "c3c0970ff62c739cab0923d9f85657075248c90d" + }, + { + "nr": 115122, + "hash": "1f7108e782701bb4e741034c09998e3741119ee0" + }, + { + "nr": 114307, + "hash": "5c3f563d7b140d7c2853311761d10aa9d67c1558" + }, + { + "nr": 118608, + "hash": "5790dd77f1bf1d8a9e09283b2b8242d4efee435a" + }, + { + "nr": 118540, + "hash": "aa4ee62c20b1662c7082e03c5e92c6dd12ce34e7" + }, + { + "nr": 118816, + "hash": "4193b37f5992dc75df41571a0afea4c93ca65840" + }, + { + "nr": 118764, + "hash": "ac60612f0d71b00f509ecc2f8c222d0a69dde661" + }, + { + "nr": 116879, + "hash": "8e409bdf9dad5f72cb41028294cd33f877a1bcd2" + }, + { + "nr": 116335, + "hash": "fe823214575715e80f1a413dac81efa7f5c7bcc4" + }, + { + "nr": 118973, + "hash": "ff5c01a1ce0885917fe04b3aa96bcfcc0f5fac86" + }, + { + "nr": 119209, + "hash": "3e0aa782ac6227957c0dd00b3afe15bfec63ba31" + }, + { + "nr": 119390, + "hash": "3175200cfbeaa2059fda83dc56ae60a83b4096ed" + }, + { + "nr": 119301, + "hash": "d0cb545285b49034ec9d4d37a0ddfd7b552dc9cc" + }, + { + "nr": 116720, + "hash": "e892e27093cad1663e38d8efd559e2b0d2e6cf54" + }, + { + "nr": 119422, + "hash": "9cd0c8f51c6e28b8d9e625dadc1dd88a240340dc" + }, + { + "nr": 119365, + "hash": "37b3419175ea59ad7c79837c30084d3931b22e33" + }, + { + "nr": 119140, + "hash": "ae72926fefb31766c5535076ad2651256e7020c9" + }, + { + "nr": 115295, + "hash": "534643cee808a56cd3316dbbbf953f5bec84b5b2" + }, + { + "nr": 118770, + "hash": "92a2c7577ffe075311dcb2eff3eba2f2e0cc3ed7" + }, + { + "nr": 118895, + "hash": "9847f8a72d75d7fca3616f4d2f945120e5910021" + }, + { + "nr": 119007, + "hash": "57e7ae683e340935cf92afb4f7d8c7a6fe2ca103" + }, + { + "nr": 116470, + "hash": "31136a576e173e09cce848ecf2e26d355d5b1ffc" + }, + { + "nr": 118267, + "hash": "30a5ecd094a49fcd09f69fae58f5c22ea9f551a1" + }, + { + "nr": 118988, + "hash": "3b38d3d27a0d7329a49d173db8f4fc13bff31453" + }, + { + "nr": 119185, + "hash": "e1ee207cb7f1e92eb481880cd5d87011e1beb6c5" + }, + { + "nr": 116429, + "hash": "025d8da0240f7be77ba5458f74f47c4d3faf2827" + }, + { + "nr": 118480, + "hash": "caea5ba9c4be00e396d9789eb996a563db8fad82" + }, + { + "nr": 116443, + "hash": "7e6b97fd0799c3f678fe4657132d8c7703e94646" + }, + { + "nr": 118772, + "hash": "c8701c562b5c1c5a1dd345b2e7ba91d193835f83" + }, + { + "nr": 117351, + "hash": "b89656860f1d70822b9c1f5e432a94c2cc5ae615" + }, + { + "nr": 119008, + "hash": "29bc0e73a14ce7f194717e0ec025fb1ab4deef15" + }, + { + "nr": 119158, + "hash": "38319895158162b6976f2951680205f47a60b606" + }, + { + "nr": 118137, + "hash": "a96ba134d652f0767c06f5ccfbd06e5fc46c480f" + }, + { + "nr": 118228, + "hash": "288470ee865af913933b88670ad9913e10ffd040" + }, + { + "nr": 116968, + "hash": "f5a1d56289224249665b184e8cb0e831121e662f" + }, + { + "nr": 118865, + "hash": "841ac383b2d33c72608cdb7d795b32d90ab5280e" + }, + { + "nr": 118254, + "hash": "e83e292e3c647f719109985ecc780bd0f1edd600" + }, + { + "nr": 119232, + "hash": "780c3f37deddfbb5eed8c665d5629b9521846779" + }, + { + "nr": 119078, + "hash": "7f1c5c615064679496e855a7511e18a3153355d5" + }, + { + "nr": 118990, + "hash": "f8e401f8334e990b3bf3322bf5fb4ad4573da50b" + }, + { + "nr": 119286, + "hash": "e932f3820fac3d5d963913e5864c14dc57b47a8e" + }, + { + "nr": 114530, + "hash": "3c0ab4adb8afdd8c25eeac28e2badf3dae6ce932" + } + ] } \ No newline at end of file diff --git a/releases/release-1.28/release-notes/sessions/maps-1691082306.json b/releases/release-1.28/release-notes/sessions/maps-1691082306.json index 6650680b895..1650f9b057c 100644 --- a/releases/release-1.28/release-notes/sessions/maps-1691082306.json +++ b/releases/release-1.28/release-notes/sessions/maps-1691082306.json @@ -1,43 +1,43 @@ -{ - "mail": "smith.rashan@gmail.com", - "name": "Rashan Smith", - "date": 1691082306, - "prs": [ - { - "nr": 118644, - "hash": "d0814ef06a7e2b464b71c8b3697a93e948c32df8" - }, - { - "nr": 113245, - "hash": "98aaf60d1e289302baa34124f87b4a4171ac1089" - }, - { - "nr": 119374, - "hash": "f2740ae9765a940f57a935eee3867ba8af81896e" - }, - { - "nr": 118204, - "hash": "2c1be02701690457c740516590e36b927efffaaa" - }, - { - "nr": 119409, - "hash": "1a4f345ab74639a0bf529a836b09852255bf3d87" - }, - { - "nr": 116469, - "hash": "c6bdd29b0663410a080e5eacee415d9bf154e353" - }, - { - "nr": 118828, - "hash": "567ddedbe1857990ed04d1f47181561599f0fb06" - }, - { - "nr": 118879, - "hash": "37a59c893410a7ec76adaea4d9f457165ed5531b" - }, - { - "nr": 117015, - "hash": "c89aafd3fa76237db5c1c5c5ae70e8f66e18aa32" - } - ] +{ + "mail": "smith.rashan@gmail.com", + "name": "Rashan Smith", + "date": 1691082306, + "prs": [ + { + "nr": 118644, + "hash": "d0814ef06a7e2b464b71c8b3697a93e948c32df8" + }, + { + "nr": 113245, + "hash": "98aaf60d1e289302baa34124f87b4a4171ac1089" + }, + { + "nr": 119374, + "hash": "f2740ae9765a940f57a935eee3867ba8af81896e" + }, + { + "nr": 118204, + "hash": "2c1be02701690457c740516590e36b927efffaaa" + }, + { + "nr": 119409, + "hash": "1a4f345ab74639a0bf529a836b09852255bf3d87" + }, + { + "nr": 116469, + "hash": "c6bdd29b0663410a080e5eacee415d9bf154e353" + }, + { + "nr": 118828, + "hash": "567ddedbe1857990ed04d1f47181561599f0fb06" + }, + { + "nr": 118879, + "hash": "37a59c893410a7ec76adaea4d9f457165ed5531b" + }, + { + "nr": 117015, + "hash": "c89aafd3fa76237db5c1c5c5ae70e8f66e18aa32" + } + ] } \ No newline at end of file diff --git a/releases/release-1.28/release-notes/sessions/maps-1691936847.json b/releases/release-1.28/release-notes/sessions/maps-1691936847.json index 98010b79cd9..b070fcdd80b 100644 --- a/releases/release-1.28/release-notes/sessions/maps-1691936847.json +++ b/releases/release-1.28/release-notes/sessions/maps-1691936847.json @@ -1,11 +1,11 @@ -{ - "mail": "fsmunoz@gmail.com", - "name": "Frederico Muñoz", - "date": 1691936847, - "prs": [ - { - "nr": 118303, - "hash": "233b89f34742feb9ed073dcaea3b0839d896388a" - } - ] +{ + "mail": "fsmunoz@gmail.com", + "name": "Frederico Muñoz", + "date": 1691936847, + "prs": [ + { + "nr": 118303, + "hash": "233b89f34742feb9ed073dcaea3b0839d896388a" + } + ] } \ No newline at end of file diff --git a/releases/release-1.28/release-team.md b/releases/release-1.28/release-team.md index 3f8cee9a6ea..ca26f6c7e37 100644 --- a/releases/release-1.28/release-team.md +++ b/releases/release-1.28/release-team.md @@ -1,17 +1,17 @@ -# Kubernetes 1.28 Release Team - -| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|----------|----------------------------------|----------------------------------------| -| Release Team Lead | Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`) | Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos)/ Slack: `@Angelos Kolaitis`), Heba Elayoty ([@helayoty](https://github.com/helayoty) / Slack: `@helayoty`), Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@Mark Rossetti`), Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@Mickey`)| -| Emeritus Adviser | Leonard Pahlke ([@leonardpahlke](https://github.com/leonardpahlke) / Slack: `@leonardpahlke`) | N/A | -| Enhancements | Atharva Shinde ([@Atharva-Shinde](https://github.com/Atharva-Shinde) / Slack: `@Atharva-Shinde`) | Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova`), Ruheena Ansari ([@ruheenaansari34](https://github.com/ruheenaansari34) / Slack: `@Ruheena Ansari`), Anish Ramasekar ([@aramase](https://github.com/aramase) / Slack: `@aramase`), Kasamba Lumwagi ([@Kasambx](https://github.com/Kasambx) / Slack: `@kasamba`), Mohammad Reza Saleh Sedghpour ([@salehsedghpour](https://github.com/salehsedghpour) / Slack: `@Mohammad Reza Saleh Sedghpour`) | -| Release Notes | Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07) / Slack: `@Sanchita Mishra`) | Ana Margarita Medina ([@AnaMMedina21](https://github.com/AnaMMedina21) / Slack: `@Ana Margarita Medina`), Frederico Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz`), Sri harshadithya muddapu ([@muddapu](https://github.com/muddapu) / Slack: `@Harsha`), Michael DeMarco ([@michaelfromyeg](https://github.com/michaelfromyeg) / Slack: `@Michael DeMarco`), Rashan Smith ([@rashansmith](https://github.com/rashansmith) / Slack: `@Rashan`) | -| Communications | Brad McCoy ([@bradmccoydev](https://github.com/bradmccoydev) / Slack: `@Brad McCoy` ) | Carolina Valencia ([@krol](https://github.com/krol3) / Slack: `@krol`), Maria Ashby ([@mashby2022](https://github.com/mashby2022) / Slack: `@Maria Ashby`), Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `@ramrodo`), Thomas Schuetz ([@thschue](https://github.com/thschue) / Slack: `@thschue`) | -| Bug Triage | Furkat Gofurov ([@furkatgofurov7](https://github.com/furkatgofurov7) / Slack: `@Furkat Gofurov`) | Anhelina Zelyk ([zelenushechka](https://github.com/zelenushechka) / Slack: `@Anhelina`), Mofi Rahman ([moficodes](https://github.com/moficodes) / Slack: `@mofi`), Parthvi Vala ([valaparthvi](https://github.com/valaparthvi) / Slack: `@valaparthvi`), Yigit Demirbas ([hailkomputer](https://github.com/hailkomputer) / Slack: `@Yigit Demirbas`) | -| CI Signal | Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@Meha Bhalodiya`) | Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav`), Mansi Kulkarni ([@mansikulkarni96](https://github.com/mansikulkarni96) / Slack: `@Mansi Kulkarni`), Ernest Wong ([@chewong](https://github.com/chewong) / Slack: `@chewong`), John Anderson ([@sontek](https://github.com/sontek) / Slack: `@sontek`), Olajide Amotul-raheem ([@Amotul-raheem](https://github.com/Amotul-raheem) / Slack: `@Amotul-raheem`) | -| Docs | Rishit Dagli ([@Rishit-dagli](https://github.com/Rishit-dagli) / Slack: `@Rishit Dagli`) | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`), Tania Duggal ([@taniaduggal](https://github.com/taniaduggal) / Slack: `@Tania Duggal`), Vibhor Chinda ([@VibhorChinda](https://github.com/VibhorChinda) / Slack: `@Vibhor Chinda`), Michael Levan ([@AdminTurnedDevOps](https://github.com/AdminTurnedDevOps) / Slack: `@Michael Levan`)| -| Branch Manager | Arnaud Meukam ([@ameukam](https://github.com/ameukam) / Slack: `@Arnaud`) | | - -Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.28, once the 1.28 release cycle concludes. +# Kubernetes 1.28 Release Team + +| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|----------|----------------------------------|----------------------------------------| +| Release Team Lead | Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`) | Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos)/ Slack: `@Angelos Kolaitis`), Heba Elayoty ([@helayoty](https://github.com/helayoty) / Slack: `@helayoty`), Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@Mark Rossetti`), Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@Mickey`)| +| Emeritus Adviser | Leonard Pahlke ([@leonardpahlke](https://github.com/leonardpahlke) / Slack: `@leonardpahlke`) | N/A | +| Enhancements | Atharva Shinde ([@Atharva-Shinde](https://github.com/Atharva-Shinde) / Slack: `@Atharva-Shinde`) | Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova`), Ruheena Ansari ([@ruheenaansari34](https://github.com/ruheenaansari34) / Slack: `@Ruheena Ansari`), Anish Ramasekar ([@aramase](https://github.com/aramase) / Slack: `@aramase`), Kasamba Lumwagi ([@Kasambx](https://github.com/Kasambx) / Slack: `@kasamba`), Mohammad Reza Saleh Sedghpour ([@salehsedghpour](https://github.com/salehsedghpour) / Slack: `@Mohammad Reza Saleh Sedghpour`) | +| Release Notes | Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07) / Slack: `@Sanchita Mishra`) | Ana Margarita Medina ([@AnaMMedina21](https://github.com/AnaMMedina21) / Slack: `@Ana Margarita Medina`), Frederico Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz`), Sri harshadithya muddapu ([@muddapu](https://github.com/muddapu) / Slack: `@Harsha`), Michael DeMarco ([@michaelfromyeg](https://github.com/michaelfromyeg) / Slack: `@Michael DeMarco`), Rashan Smith ([@rashansmith](https://github.com/rashansmith) / Slack: `@Rashan`) | +| Communications | Brad McCoy ([@bradmccoydev](https://github.com/bradmccoydev) / Slack: `@Brad McCoy` ) | Carolina Valencia ([@krol](https://github.com/krol3) / Slack: `@krol`), Maria Ashby ([@mashby2022](https://github.com/mashby2022) / Slack: `@Maria Ashby`), Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `@ramrodo`), Thomas Schuetz ([@thschue](https://github.com/thschue) / Slack: `@thschue`) | +| Bug Triage | Furkat Gofurov ([@furkatgofurov7](https://github.com/furkatgofurov7) / Slack: `@Furkat Gofurov`) | Anhelina Zelyk ([zelenushechka](https://github.com/zelenushechka) / Slack: `@Anhelina`), Mofi Rahman ([moficodes](https://github.com/moficodes) / Slack: `@mofi`), Parthvi Vala ([valaparthvi](https://github.com/valaparthvi) / Slack: `@valaparthvi`), Yigit Demirbas ([hailkomputer](https://github.com/hailkomputer) / Slack: `@Yigit Demirbas`) | +| CI Signal | Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@Meha Bhalodiya`) | Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav`), Mansi Kulkarni ([@mansikulkarni96](https://github.com/mansikulkarni96) / Slack: `@Mansi Kulkarni`), Ernest Wong ([@chewong](https://github.com/chewong) / Slack: `@chewong`), John Anderson ([@sontek](https://github.com/sontek) / Slack: `@sontek`), Olajide Amotul-raheem ([@Amotul-raheem](https://github.com/Amotul-raheem) / Slack: `@Amotul-raheem`) | +| Docs | Rishit Dagli ([@Rishit-dagli](https://github.com/Rishit-dagli) / Slack: `@Rishit Dagli`) | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`), Tania Duggal ([@taniaduggal](https://github.com/taniaduggal) / Slack: `@Tania Duggal`), Vibhor Chinda ([@VibhorChinda](https://github.com/VibhorChinda) / Slack: `@Vibhor Chinda`), Michael Levan ([@AdminTurnedDevOps](https://github.com/AdminTurnedDevOps) / Slack: `@Michael Levan`)| +| Branch Manager | Arnaud Meukam ([@ameukam](https://github.com/ameukam) / Slack: `@Arnaud`) | | + +Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.28, once the 1.28 release cycle concludes. diff --git a/releases/release-1.29/README.md b/releases/release-1.29/README.md index c1b98e9297e..839d2915c74 100644 --- a/releases/release-1.29/README.md +++ b/releases/release-1.29/README.md @@ -1,128 +1,128 @@ ---- -title: "Kubernetes 1.29 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.29: Mandala (The Universe) ✨🌌 - -![Kubernetes 1.29: Mandala (The Universe)](./logo/k8s129-mandala-512px.png) - -This release is inspired by the beautiful art form that is Mandala—a symbol of the universe in its perfection. - -In the spirit of Mandala’s transformative symbolism, Kubernetes 1.29 celebrates our project’s evolution. Like stars in the Kubernetes universe, each contributor, user, and supporter lights the way. Together, we create a universe of possibilities—one release at a time. - -The release logo, made by [Mario Jason Braganza](https://janusworx.com) (base Mandala art, courtesy - [Fibrel Ojalá](https://pixabay.com/users/fibrel-3502541/)), symbolizes the little universe that is the Kubernetes project and all its people. - - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.29/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.29/release-team.md) -* [Meeting Minutes](https://bit.ly/k8s129-releasemtg) (members of [release-team@] receive meeting invites) -* [v1.29 Release Calendar][k8s129-calendar] -* Contact: [#sig-release] on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail -* [Internal Contact Info] (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Board](https://bit.ly/k8s129-enhancements) -* [Feature blog Tracking Board](https://github.com/orgs/kubernetes/projects/161/views/4) -* [Bug Triage Tracking Board](https://bit.ly/k8s129-bug-triage-tracking) -* [CI Signal Project Board & Issue Tracking](https://github.com/orgs/kubernetes/projects/68) -* [Retrospective Document](https://bit.ly/k8s129-retro) -* [kubernetes/sig-release v1.29 milestone](https://github.com/kubernetes/kubernetes/milestone/62) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## Summary - -The 1.29 release cycle is as follows: - -- **Monday 4th September 2023**: Week 1 — Release cycle begins -- **Thursday 28th September 2023**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) -- **[01:00 UTC Friday 6th October 2023 / 18:00 PDT Thursday 5th October 2023](https://everytimezone.com/s/1ade3dca)**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **[01:00 UTC Wednesday 1st November 2023 / 18:00 PDT Tuesday 31st October 2023](https://everytimezone.com/s/24b27b03)**: Week 9 — [Code Freeze](../release_phases.md#code-freeze) -- **Monday 6th - Thursday 9th November 2023**: Week 10 - [KubeCon NA](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/) -- **[01:00 UTC Wednesday 15th November 2023 / 18:00 PDT Tuesday 14th November 2023](https://everytimezone.com/s/b708fa7a)**: Week 11 — [Test Freeze](../release_phases.md#test-freeze) -- **Tuesday 28th November 2023**: Week 13 — Docs must be completed and reviewed -- **Wednesday 13th December 2023**: Week 15 — Kubernetes v1.29.0 released - -## Timeline - -| **What** | **Who** | **When** | **Week** | **CI Signal** | -|----------------------------------------------------------------------------------------|-------------------------------|-----------------------------------------------------------------------------------------------------------------------|----------|--------------------------------------------------------| -| Start of Release Cycle | Lead | Monday 4th September 2023 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Monday 4th September 2023 | week 1 | | -| Schedule finalized | Lead | Friday 8th September 2023 | week 1 | | -| Team finalized | Lead | Friday 8th September 2023 | week 1 | | -| Start Release Notes Draft | Release Notes Lead | Tuesday 19th September 2023 | week 3 | | -| 1.29.0-alpha.1 released | Branch Manager | Monday 25th September 2023 | Week 4 | | -| Production Readiness Freeze | Enhancements Lead | Thursday 28th September 2023 | week 4 | | -| **Begin [Enhancements Freeze]** | Enhancements Lead | [01:00 UTC Friday 6th October 2023 / 18:00 PDT Thursday 5th October 2023](https://everytimezone.com/s/1ade3dca) | week 5 | [master-blocking], [master-informing] | -| 1.29.0-alpha.2 released | Branch Manager | Tuesday 10th October | Week 6 | | -| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 19th October 2023 | week 7 | | -| Begin Friday APAC-friendly meetings | Lead | Friday 20th October 2023 | Week 7 | | -| **Call for [Exceptions][Exception]** | Lead | Monday 23rd October 2023 | week 8 | | -| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Monday 23rd October 2023 | week 8 | | -| **Begin Feature blog freeze** | Comms Lead | [01:00 UTC Wednesday 25th October 2023 / 18:00 PDT Tuesday 24th October 2023](https://everytimezone.com/s/0fda3279) | week 8 | | -| **Begin [Code Freeze]** | Branch Manager | [01:00 UTC Wednesday 1st November 2023 / 18:00 PDT Tuesday 31st October 2023](https://everytimezone.com/s/24b27b03) | week 9 | | -| 1.29.0-alpha.3 released | Branch Manager | Thursday 2nd November 2023 | Week 9 | | -| Deprecations and Removals blog published | Comms | Thursday 2nd November 2023 | week 9 | | -| **KubeCon NA** | | Monday 6th - Thursday 9th November 2023 | week 10 | | -| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 13th November 2023 | week 11 | | -| **[Test Freeze]** | Branch Manager | [01:00 UTC Wednesday 15th November 2023 / 18:00 PDT Tuesday 14th November 2023](https://everytimezone.com/s/b708fa7a) | week 11 | | -| **Preparing for Feature blogs review — Initiating outreach** | Comms | Monday 13th November 2023 | week 11 | | -| Docs deadline — PRs ready for review | Docs Lead | Tuesday 14th November 2023 | Week 11 | | -| Major Themes deadline | Comms | Tuesday 14th November2023 | week 11 | | -| Start final draft of Release Notes | Release Notes Lead | Tuesday 14th November 2023 | week 11 | | -| Release blog ready to review | Comms / Docs | [01:00 UTC Wednesday 15th November 2023 / 18:00 PDT Tuesday 14th November 2023](https://everytimezone.com/s/b708fa7a) | week 11 | | -| 1.29.0-beta.0 released | Branch Manager | Thursday 16th November 2023 | week 11 | | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Friday 17th November 2023 | week 11 | | -| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 20th November 2023 | Week 12 | | -| 1.29.0-rc.0 released | Branch Manager | Tuesday 21st November 2023 | week 12 | [1.29-blocking], [master-blocking], [master-informing] | -| release-1.29 branch created | Branch Manager | Tuesday 21st November 2023 | week 12 | | -| release-1.29 jobs created | Branch Manager | Tuesday 21st November 2023 | week 12 | | -| Major Themes complete | Release Notes Lead | Tuesday 28th November 2023 | week 13 | | -| Docs complete — All PRs reviewed and ready to merge | Docs Lead | Tuesday 28th November 2023 | week 13 | | -| 1.29.0-rc.1 released | Branch Manager | Tuesday 28th November 2023 | week 13 | | -| 1.29.0-rc.2 released | Branch Manager | Thursday 7th December 2023 | week 14 | [1.29-blocking], [master-blocking], [master-informing] | -| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Release Notes Lead | Wednesday 13th December 2023 | week 15 | | -| **v1.29.0 released** | Branch Manager | Wednesday 13th December 2023 | week 15 | | -| Release blog published | Comms | Wednesday 13th December 2023 | week 15 | | -| **[Thaw]** | Branch Manager | Wednesday 13th December 2023 | week 15 | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[k8s129-calendar]: https://bit.ly/k8s-release-cal -[Internal Contact Info]: https://bit.ly/k8s129-contacts -[Retrospective Document]: https://bit.ly/k8s129-retro - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze -[Burndown]: ../release_phases.md#burndown -[Code Freeze]: ../release_phases.md#code-freeze -[Exception]: ../release_phases.md#exceptions -[Thaw]: ../release_phases.md#thaw -[Test Freeze]: ../release_phases.md#test-freeze - -[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team -[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release -[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ -[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal -[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary -[1.29-blocking]: https://testgrid.k8s.io/sig-release-1.29-blocking#Summary - -[exception requests]: ../EXCEPTIONS.md -[release phases document]: ../release_phases.md +--- +title: "Kubernetes 1.29 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.29: Mandala (The Universe) ✨🌌 + +![Kubernetes 1.29: Mandala (The Universe)](./logo/k8s129-mandala-512px.png) + +This release is inspired by the beautiful art form that is Mandala—a symbol of the universe in its perfection. + +In the spirit of Mandala’s transformative symbolism, Kubernetes 1.29 celebrates our project’s evolution. Like stars in the Kubernetes universe, each contributor, user, and supporter lights the way. Together, we create a universe of possibilities—one release at a time. + +The release logo, made by [Mario Jason Braganza](https://janusworx.com) (base Mandala art, courtesy - [Fibrel Ojalá](https://pixabay.com/users/fibrel-3502541/)), symbolizes the little universe that is the Kubernetes project and all its people. + + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.29/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.29/release-team.md) +* [Meeting Minutes](https://bit.ly/k8s129-releasemtg) (members of [release-team@] receive meeting invites) +* [v1.29 Release Calendar][k8s129-calendar] +* Contact: [#sig-release] on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail +* [Internal Contact Info] (accessible only to members of [release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Board](https://bit.ly/k8s129-enhancements) +* [Feature blog Tracking Board](https://github.com/orgs/kubernetes/projects/161/views/4) +* [Bug Triage Tracking Board](https://bit.ly/k8s129-bug-triage-tracking) +* [CI Signal Project Board & Issue Tracking](https://github.com/orgs/kubernetes/projects/68) +* [Retrospective Document](https://bit.ly/k8s129-retro) +* [kubernetes/sig-release v1.29 milestone](https://github.com/kubernetes/kubernetes/milestone/62) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## Summary + +The 1.29 release cycle is as follows: + +- **Monday 4th September 2023**: Week 1 — Release cycle begins +- **Thursday 28th September 2023**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) +- **[01:00 UTC Friday 6th October 2023 / 18:00 PDT Thursday 5th October 2023](https://everytimezone.com/s/1ade3dca)**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **[01:00 UTC Wednesday 1st November 2023 / 18:00 PDT Tuesday 31st October 2023](https://everytimezone.com/s/24b27b03)**: Week 9 — [Code Freeze](../release_phases.md#code-freeze) +- **Monday 6th - Thursday 9th November 2023**: Week 10 - [KubeCon NA](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/) +- **[01:00 UTC Wednesday 15th November 2023 / 18:00 PDT Tuesday 14th November 2023](https://everytimezone.com/s/b708fa7a)**: Week 11 — [Test Freeze](../release_phases.md#test-freeze) +- **Tuesday 28th November 2023**: Week 13 — Docs must be completed and reviewed +- **Wednesday 13th December 2023**: Week 15 — Kubernetes v1.29.0 released + +## Timeline + +| **What** | **Who** | **When** | **Week** | **CI Signal** | +|----------------------------------------------------------------------------------------|-------------------------------|-----------------------------------------------------------------------------------------------------------------------|----------|--------------------------------------------------------| +| Start of Release Cycle | Lead | Monday 4th September 2023 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Monday 4th September 2023 | week 1 | | +| Schedule finalized | Lead | Friday 8th September 2023 | week 1 | | +| Team finalized | Lead | Friday 8th September 2023 | week 1 | | +| Start Release Notes Draft | Release Notes Lead | Tuesday 19th September 2023 | week 3 | | +| 1.29.0-alpha.1 released | Branch Manager | Monday 25th September 2023 | Week 4 | | +| Production Readiness Freeze | Enhancements Lead | Thursday 28th September 2023 | week 4 | | +| **Begin [Enhancements Freeze]** | Enhancements Lead | [01:00 UTC Friday 6th October 2023 / 18:00 PDT Thursday 5th October 2023](https://everytimezone.com/s/1ade3dca) | week 5 | [master-blocking], [master-informing] | +| 1.29.0-alpha.2 released | Branch Manager | Tuesday 10th October | Week 6 | | +| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 19th October 2023 | week 7 | | +| Begin Friday APAC-friendly meetings | Lead | Friday 20th October 2023 | Week 7 | | +| **Call for [Exceptions][Exception]** | Lead | Monday 23rd October 2023 | week 8 | | +| Brace Yourself, Code Freeze is Coming | Comms / Bug Triage | Monday 23rd October 2023 | week 8 | | +| **Begin Feature blog freeze** | Comms Lead | [01:00 UTC Wednesday 25th October 2023 / 18:00 PDT Tuesday 24th October 2023](https://everytimezone.com/s/0fda3279) | week 8 | | +| **Begin [Code Freeze]** | Branch Manager | [01:00 UTC Wednesday 1st November 2023 / 18:00 PDT Tuesday 31st October 2023](https://everytimezone.com/s/24b27b03) | week 9 | | +| 1.29.0-alpha.3 released | Branch Manager | Thursday 2nd November 2023 | Week 9 | | +| Deprecations and Removals blog published | Comms | Thursday 2nd November 2023 | week 9 | | +| **KubeCon NA** | | Monday 6th - Thursday 9th November 2023 | week 10 | | +| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 13th November 2023 | week 11 | | +| **[Test Freeze]** | Branch Manager | [01:00 UTC Wednesday 15th November 2023 / 18:00 PDT Tuesday 14th November 2023](https://everytimezone.com/s/b708fa7a) | week 11 | | +| **Preparing for Feature blogs review — Initiating outreach** | Comms | Monday 13th November 2023 | week 11 | | +| Docs deadline — PRs ready for review | Docs Lead | Tuesday 14th November 2023 | Week 11 | | +| Major Themes deadline | Comms | Tuesday 14th November2023 | week 11 | | +| Start final draft of Release Notes | Release Notes Lead | Tuesday 14th November 2023 | week 11 | | +| Release blog ready to review | Comms / Docs | [01:00 UTC Wednesday 15th November 2023 / 18:00 PDT Tuesday 14th November 2023](https://everytimezone.com/s/b708fa7a) | week 11 | | +| 1.29.0-beta.0 released | Branch Manager | Thursday 16th November 2023 | week 11 | | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Friday 17th November 2023 | week 11 | | +| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 20th November 2023 | Week 12 | | +| 1.29.0-rc.0 released | Branch Manager | Tuesday 21st November 2023 | week 12 | [1.29-blocking], [master-blocking], [master-informing] | +| release-1.29 branch created | Branch Manager | Tuesday 21st November 2023 | week 12 | | +| release-1.29 jobs created | Branch Manager | Tuesday 21st November 2023 | week 12 | | +| Major Themes complete | Release Notes Lead | Tuesday 28th November 2023 | week 13 | | +| Docs complete — All PRs reviewed and ready to merge | Docs Lead | Tuesday 28th November 2023 | week 13 | | +| 1.29.0-rc.1 released | Branch Manager | Tuesday 28th November 2023 | week 13 | | +| 1.29.0-rc.2 released | Branch Manager | Thursday 7th December 2023 | week 14 | [1.29-blocking], [master-blocking], [master-informing] | +| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Release Notes Lead | Wednesday 13th December 2023 | week 15 | | +| **v1.29.0 released** | Branch Manager | Wednesday 13th December 2023 | week 15 | | +| Release blog published | Comms | Wednesday 13th December 2023 | week 15 | | +| **[Thaw]** | Branch Manager | Wednesday 13th December 2023 | week 15 | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[k8s129-calendar]: https://bit.ly/k8s-release-cal +[Internal Contact Info]: https://bit.ly/k8s129-contacts +[Retrospective Document]: https://bit.ly/k8s129-retro + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze +[Burndown]: ../release_phases.md#burndown +[Code Freeze]: ../release_phases.md#code-freeze +[Exception]: ../release_phases.md#exceptions +[Thaw]: ../release_phases.md#thaw +[Test Freeze]: ../release_phases.md#test-freeze + +[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +[kubernetes-sig-release@]: https://groups.google.com/forum/#!forum/kubernetes-sig-release +[#sig-release]: https://kubernetes.slack.com/messages/sig-release/ +[kubernetes-release-calendar]: https://bit.ly/k8s-release-cal +[kubernetes/kubernetes]: https://github.com/kubernetes/kubernetes + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary +[1.29-blocking]: https://testgrid.k8s.io/sig-release-1.29-blocking#Summary + +[exception requests]: ../EXCEPTIONS.md +[release phases document]: ../release_phases.md diff --git a/releases/release-1.29/exceptions.yaml b/releases/release-1.29/exceptions.yaml index fde5372dc70..981a54b9b91 100644 --- a/releases/release-1.29/exceptions.yaml +++ b/releases/release-1.29/exceptions.yaml @@ -1,80 +1,80 @@ -# Exception requests in 1.29 -# Google Group: https://groups.google.com/g/kubernetes-sig-release -# Release Team Lead: Nina Polshakova ([@npolshakova](https://github.com/npolshakova) -# Release Team Shadows : Ana Margarita Medina ([@AnaMMedina21](https://github.com/AnaMMedina21)) -# / Mohammad Reza Saleh Sedghpour ([@salehsedghpour](https://github.com/salehsedghpour)) -# / Rayan Das ([@rayandas](https://github.com/rayandas)) -# / Sanchita Mishra ([@sanchita-07](https://github.com/@sanchita-07)) -# / Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/@sreeram-venkitesh)) - -# Enhancements Freeze Exceptions requested in 1.29 -enhancementFreeze: - -- name: "add ProcMount option" - issue: 4265 - date_requested: 2023-10-06 - date_reviewed: 2023-10-07 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/emPOBgXxu0Q/m/EFYnxpOxCwAJ" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/4266" - - "https://github.com/kubernetes/enhancements/pull/4279" - status: "approved" - -- name: "Per-plugin callback functions for accurate requeueing in kube-scheduler" - issue: 4247 - date_requested: 2023-10-06 - date_reviewed: 2023-10-07 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/KRW9gg5wwS4/m/XW5v6ySwCwAJ" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/4256" - status: "approved" - -- name: "Optionally Disable HealthCheck Ports for LoadBalancers with ExternalTrafficPolicy=Local" - issue: 4144 - date_requested: 2023-10-10 - date_reviewed: 2023-10-11 - thread: "https://groups.google.com/g/kubernetes-sig-network/c/piRehSKuX3Y" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/4286" - status: "denied" - -# Code Freeze Exceptions requested in 1.29 -codeFreeze: - -- name: "ClusterTrustBundles (previously Trust Anchor Sets)" - issue: 3257 - date_requested: 2023-11-01 - date_reviewed: 2023-11-01 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/5eFxKKR-iks/m/QQZFEe0MEQAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/113374" - status: "approved" - -- name: "CRD Validation Ratcheting" - issue: 4008 - date_requested: 2023-11-01 - date_reviewed: 2023-11-02 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/vkHqIH-hE5A/m/FANycyoLEQAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/121034" - - "https://github.com/kubernetes/kubernetes/pull/121461" - status: "approved" - -- name: "Kubelet Support for Image Filesystem being split" - issue: 4191 - date_requested: 2023-11-01 - date_reviewed: 2023-11-01 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/z399yO5hjP0/m/5NA8tkILEQAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/120616" - status: "approved" - -- name: "Add support for a drop-in kubelet configuration directory" - issue: 3983 - date_requested: 2023-11-01 - date_reviewed: 2023-11-02 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/uvzNhRarf6w/m/MrmOXb2AAAAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/121193" - status: "approved" - +# Exception requests in 1.29 +# Google Group: https://groups.google.com/g/kubernetes-sig-release +# Release Team Lead: Nina Polshakova ([@npolshakova](https://github.com/npolshakova) +# Release Team Shadows : Ana Margarita Medina ([@AnaMMedina21](https://github.com/AnaMMedina21)) +# / Mohammad Reza Saleh Sedghpour ([@salehsedghpour](https://github.com/salehsedghpour)) +# / Rayan Das ([@rayandas](https://github.com/rayandas)) +# / Sanchita Mishra ([@sanchita-07](https://github.com/@sanchita-07)) +# / Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/@sreeram-venkitesh)) + +# Enhancements Freeze Exceptions requested in 1.29 +enhancementFreeze: + +- name: "add ProcMount option" + issue: 4265 + date_requested: 2023-10-06 + date_reviewed: 2023-10-07 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/emPOBgXxu0Q/m/EFYnxpOxCwAJ" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/4266" + - "https://github.com/kubernetes/enhancements/pull/4279" + status: "approved" + +- name: "Per-plugin callback functions for accurate requeueing in kube-scheduler" + issue: 4247 + date_requested: 2023-10-06 + date_reviewed: 2023-10-07 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/KRW9gg5wwS4/m/XW5v6ySwCwAJ" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/4256" + status: "approved" + +- name: "Optionally Disable HealthCheck Ports for LoadBalancers with ExternalTrafficPolicy=Local" + issue: 4144 + date_requested: 2023-10-10 + date_reviewed: 2023-10-11 + thread: "https://groups.google.com/g/kubernetes-sig-network/c/piRehSKuX3Y" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/4286" + status: "denied" + +# Code Freeze Exceptions requested in 1.29 +codeFreeze: + +- name: "ClusterTrustBundles (previously Trust Anchor Sets)" + issue: 3257 + date_requested: 2023-11-01 + date_reviewed: 2023-11-01 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/5eFxKKR-iks/m/QQZFEe0MEQAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/113374" + status: "approved" + +- name: "CRD Validation Ratcheting" + issue: 4008 + date_requested: 2023-11-01 + date_reviewed: 2023-11-02 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/vkHqIH-hE5A/m/FANycyoLEQAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/121034" + - "https://github.com/kubernetes/kubernetes/pull/121461" + status: "approved" + +- name: "Kubelet Support for Image Filesystem being split" + issue: 4191 + date_requested: 2023-11-01 + date_reviewed: 2023-11-01 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/z399yO5hjP0/m/5NA8tkILEQAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/120616" + status: "approved" + +- name: "Add support for a drop-in kubelet configuration directory" + issue: 3983 + date_requested: 2023-11-01 + date_reviewed: 2023-11-02 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/uvzNhRarf6w/m/MrmOXb2AAAAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/121193" + status: "approved" + diff --git a/releases/release-1.29/logo/README.md b/releases/release-1.29/logo/README.md index 4d9003e721f..15eb95384a9 100644 --- a/releases/release-1.29/logo/README.md +++ b/releases/release-1.29/logo/README.md @@ -1,24 +1,24 @@ -# Introducing Kubernetes 1.29 - Mandala (The Universe) ✨🌌 - -Join us on a cosmic journey with Kubernetes 1.29! - -This release is inspired by the beautiful art form that is Mandala—a symbol of the universe in its perfection. Our tight-knit universe of around 40 Release Team members, backed by hundreds of community contributors, has worked tirelessly to turn challenges into joy for millions worldwide. - -The Mandala theme reflects our community’s interconnectedness—a vibrant tapestry woven by enthusiasts and experts alike. Each contributor is a crucial part, adding their unique energy, much like the diverse patterns in Mandala art. Kubernetes thrives on collaboration, echoing the harmony in Mandala creations. - -The release logo, made by [Mario Jason Braganza](https://janusworx.com) (base Mandala art, courtesy - [Fibrel Ojalá](https://pixabay.com/users/fibrel-3502541/)), symbolizes the little universe that is the Kubernetes project and all its people. - -In the spirit of Mandala’s transformative symbolism, Kubernetes 1.29 celebrates our project’s evolution. Like stars in the Kubernetes universe, each contributor, user, and supporter lights the way. Together, we create a universe of possibilities—one release at a time. - - -## How to use the logo? - -Two versions of the logo are provided: -- k8s129-mandala-300dpi.png (main logo) -- k8s129-mandala-512px.png (small logo) - -The small logo is intended for use at smaller resolutions, such as a Slack react, or an icon. All other uses should use the main logo. - -A 1200dpi version of the logo is available as a PNG [here](https://www.psaggu.com/assets/k8s-logo/k8s129.png) and as an SVG [here](https://www.psaggu.com/assets/k8s-logo/k8s129.svg). - -NOTE: The SVG format of the above logo requires locally installing the [Annapurna SIL](https://software.sil.org/annapurna/download/) font, in order to render the file correctly. +# Introducing Kubernetes 1.29 - Mandala (The Universe) ✨🌌 + +Join us on a cosmic journey with Kubernetes 1.29! + +This release is inspired by the beautiful art form that is Mandala—a symbol of the universe in its perfection. Our tight-knit universe of around 40 Release Team members, backed by hundreds of community contributors, has worked tirelessly to turn challenges into joy for millions worldwide. + +The Mandala theme reflects our community’s interconnectedness—a vibrant tapestry woven by enthusiasts and experts alike. Each contributor is a crucial part, adding their unique energy, much like the diverse patterns in Mandala art. Kubernetes thrives on collaboration, echoing the harmony in Mandala creations. + +The release logo, made by [Mario Jason Braganza](https://janusworx.com) (base Mandala art, courtesy - [Fibrel Ojalá](https://pixabay.com/users/fibrel-3502541/)), symbolizes the little universe that is the Kubernetes project and all its people. + +In the spirit of Mandala’s transformative symbolism, Kubernetes 1.29 celebrates our project’s evolution. Like stars in the Kubernetes universe, each contributor, user, and supporter lights the way. Together, we create a universe of possibilities—one release at a time. + + +## How to use the logo? + +Two versions of the logo are provided: +- k8s129-mandala-300dpi.png (main logo) +- k8s129-mandala-512px.png (small logo) + +The small logo is intended for use at smaller resolutions, such as a Slack react, or an icon. All other uses should use the main logo. + +A 1200dpi version of the logo is available as a PNG [here](https://www.psaggu.com/assets/k8s-logo/k8s129.png) and as an SVG [here](https://www.psaggu.com/assets/k8s-logo/k8s129.svg). + +NOTE: The SVG format of the above logo requires locally installing the [Annapurna SIL](https://software.sil.org/annapurna/download/) font, in order to render the file correctly. diff --git a/releases/release-1.29/release-notes/maps/pr-100448-map.yaml b/releases/release-1.29/release-notes/maps/pr-100448-map.yaml index 268bb239478..04c3bfabe7f 100644 --- a/releases/release-1.29/release-notes/maps/pr-100448-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-100448-map.yaml @@ -1,4 +1,4 @@ -pr: 100448 -releasenote: - text: Changed kubelet logs from `error` to `info` for uncached partitions when using - CRI stats provider. +pr: 100448 +releasenote: + text: Changed kubelet logs from `error` to `info` for uncached partitions when using + CRI stats provider. diff --git a/releases/release-1.29/release-notes/maps/pr-113374-map.yaml b/releases/release-1.29/release-notes/maps/pr-113374-map.yaml index e80d37e82d4..473e080a764 100644 --- a/releases/release-1.29/release-notes/maps/pr-113374-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-113374-map.yaml @@ -1,4 +1,4 @@ -pr: 113374 -releasenote: - text: Added support for projecting `certificates.k8s.io/v1alpha1` ClusterTrustBundle - objects into pods. +pr: 113374 +releasenote: + text: Added support for projecting `certificates.k8s.io/v1alpha1` ClusterTrustBundle + objects into pods. diff --git a/releases/release-1.29/release-notes/maps/pr-114095-map.yaml b/releases/release-1.29/release-notes/maps/pr-114095-map.yaml index 5545bed3024..484c0785947 100644 --- a/releases/release-1.29/release-notes/maps/pr-114095-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-114095-map.yaml @@ -1,5 +1,5 @@ -pr: 114095 -releasenote: - text: |- - `scheduler`: Fixed missing field `apiVersion` from events reported by the taint - manager. +pr: 114095 +releasenote: + text: |- + `scheduler`: Fixed missing field `apiVersion` from events reported by the taint + manager. diff --git a/releases/release-1.29/release-notes/maps/pr-115702-map.yaml b/releases/release-1.29/release-notes/maps/pr-115702-map.yaml index 408cc4ad143..71d4db9a6ae 100644 --- a/releases/release-1.29/release-notes/maps/pr-115702-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-115702-map.yaml @@ -1,4 +1,4 @@ -pr: 115702 -releasenote: - text: Fixed the bug where kubelet couldn't output logs after log file rotated when - `kubectl logs POD_NAME -f` is running. +pr: 115702 +releasenote: + text: Fixed the bug where kubelet couldn't output logs after log file rotated when + `kubectl logs POD_NAME -f` is running. diff --git a/releases/release-1.29/release-notes/maps/pr-116065-map.yaml b/releases/release-1.29/release-notes/maps/pr-116065-map.yaml index 189a8899662..2ab787c7015 100644 --- a/releases/release-1.29/release-notes/maps/pr-116065-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-116065-map.yaml @@ -1,4 +1,4 @@ -pr: 116065 -releasenote: - text: The `matchLabelKeys/mismatchLabelKeys` feature is introduced to the hard/soft - `PodAffinity/PodAntiAffinity`. +pr: 116065 +releasenote: + text: The `matchLabelKeys/mismatchLabelKeys` feature is introduced to the hard/soft + `PodAffinity/PodAntiAffinity`. diff --git a/releases/release-1.29/release-notes/maps/pr-116252-map.yaml b/releases/release-1.29/release-notes/maps/pr-116252-map.yaml index 5a079d24649..57de4fbe6b2 100644 --- a/releases/release-1.29/release-notes/maps/pr-116252-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-116252-map.yaml @@ -1,6 +1,6 @@ -pr: 116252 -releasenote: - text: Creation of new `CronJob` objects containing `TZ` or `CRON_TZ` in `.spec.schedule`, - accidentally enabled in `v1.22`, is now disallowed. Use the `.spec.timeZone` field - instead, supported in `v1.25+` clusters in default configurations. See https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#unsupported-timezone-specification - for more information. +pr: 116252 +releasenote: + text: Creation of new `CronJob` objects containing `TZ` or `CRON_TZ` in `.spec.schedule`, + accidentally enabled in `v1.22`, is now disallowed. Use the `.spec.timeZone` field + instead, supported in `v1.25+` clusters in default configurations. See https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#unsupported-timezone-specification + for more information. diff --git a/releases/release-1.29/release-notes/maps/pr-116516-map.yaml b/releases/release-1.29/release-notes/maps/pr-116516-map.yaml index 3423c7047f7..4ae6e939e12 100644 --- a/releases/release-1.29/release-notes/maps/pr-116516-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-116516-map.yaml @@ -1,4 +1,4 @@ -pr: 116516 -releasenote: - text: Added a new `ServiceCIDR` type that allows to dynamically configure the cluster - range used to allocate `Service ClusterIPs` addresses. +pr: 116516 +releasenote: + text: Added a new `ServiceCIDR` type that allows to dynamically configure the cluster + range used to allocate `Service ClusterIPs` addresses. diff --git a/releases/release-1.29/release-notes/maps/pr-116752-map.yaml b/releases/release-1.29/release-notes/maps/pr-116752-map.yaml index 1ec0c9cdb9c..2b87bfd1219 100644 --- a/releases/release-1.29/release-notes/maps/pr-116752-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-116752-map.yaml @@ -1,3 +1,3 @@ -pr: 116752 -releasenote: - text: Changed `kubectl help` to display basic details for subcommands from plugins. +pr: 116752 +releasenote: + text: Changed `kubectl help` to display basic details for subcommands from plugins. diff --git a/releases/release-1.29/release-notes/maps/pr-116803-map.yaml b/releases/release-1.29/release-notes/maps/pr-116803-map.yaml index d22e28ad8ef..7c2382ec46f 100644 --- a/releases/release-1.29/release-notes/maps/pr-116803-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-116803-map.yaml @@ -1,3 +1,3 @@ -pr: 116803 -releasenote: - text: Migrated the `volumebinding scheduler plugins` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). +pr: 116803 +releasenote: + text: Migrated the `volumebinding scheduler plugins` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). diff --git a/releases/release-1.29/release-notes/maps/pr-116884-map.yaml b/releases/release-1.29/release-notes/maps/pr-116884-map.yaml index 8702e1c0e6f..d4ab8885ad4 100644 --- a/releases/release-1.29/release-notes/maps/pr-116884-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-116884-map.yaml @@ -1,3 +1,3 @@ -pr: 116884 -releasenote: - text: Migrated the `nodevolumelimits` scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). +pr: 116884 +releasenote: + text: Migrated the `nodevolumelimits` scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). diff --git a/releases/release-1.29/release-notes/maps/pr-116938-map.yaml b/releases/release-1.29/release-notes/maps/pr-116938-map.yaml index 27a8b84fd05..2f78336b47d 100644 --- a/releases/release-1.29/release-notes/maps/pr-116938-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-116938-map.yaml @@ -1,4 +1,4 @@ -pr: 116938 -releasenote: - text: Fixed inconsistency in the calculation of number of nodes that have an image, - which affect the scoring in the `ImageLocality` plugin. +pr: 116938 +releasenote: + text: Fixed inconsistency in the calculation of number of nodes that have an image, + which affect the scoring in the `ImageLocality` plugin. diff --git a/releases/release-1.29/release-notes/maps/pr-117411-map.yaml b/releases/release-1.29/release-notes/maps/pr-117411-map.yaml index c301e0d438d..e58fe4b245e 100644 --- a/releases/release-1.29/release-notes/maps/pr-117411-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-117411-map.yaml @@ -1,3 +1,3 @@ -pr: 117411 -releasenote: - text: Added multiplication functionality to `Quantity`. +pr: 117411 +releasenote: + text: Added multiplication functionality to `Quantity`. diff --git a/releases/release-1.29/release-notes/maps/pr-117502-map.yaml b/releases/release-1.29/release-notes/maps/pr-117502-map.yaml index db9f10002e7..1da3f6a08a9 100644 --- a/releases/release-1.29/release-notes/maps/pr-117502-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-117502-map.yaml @@ -1,7 +1,7 @@ -pr: 117502 -releasenote: - text: |- - Added `kubectl node drain` helper callbacks `OnPodDeletionOrEvictionStarted` - and `OnPodDeletionOrEvictionFailed`; people extending `kubectl` can use these - new callbacks for more granularity. Deprecated the `OnPodDeletedOrEvicted` - node drain helper callback. +pr: 117502 +releasenote: + text: |- + Added `kubectl node drain` helper callbacks `OnPodDeletionOrEvictionStarted` + and `OnPodDeletionOrEvictionFailed`; people extending `kubectl` can use these + new callbacks for more granularity. Deprecated the `OnPodDeletedOrEvicted` + node drain helper callback. diff --git a/releases/release-1.29/release-notes/maps/pr-117503-map.yaml b/releases/release-1.29/release-notes/maps/pr-117503-map.yaml index 46cecbb7a9b..c1d805715b4 100644 --- a/releases/release-1.29/release-notes/maps/pr-117503-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-117503-map.yaml @@ -1,5 +1,5 @@ -pr: 117503 -releasenote: - text: In-tree cloud providers are now switched off by default. Please use `DisableCloudProviders` - and `DisableKubeletCloudCredentialProvider` feature flags if you still need this - functionality. +pr: 117503 +releasenote: + text: In-tree cloud providers are now switched off by default. Please use `DisableCloudProviders` + and `DisableKubeletCloudCredentialProvider` feature flags if you still need this + functionality. diff --git a/releases/release-1.29/release-notes/maps/pr-117615-map.yaml b/releases/release-1.29/release-notes/maps/pr-117615-map.yaml index 4f2c4042713..4e4aeee1258 100644 --- a/releases/release-1.29/release-notes/maps/pr-117615-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-117615-map.yaml @@ -1,4 +1,4 @@ -pr: 117615 -releasenote: - text: Empty values are no longer assigned to undefined resources (CPU or memory) - when storing the resources allocated to the pod in checkpoint. +pr: 117615 +releasenote: + text: Empty values are no longer assigned to undefined resources (CPU or memory) + when storing the resources allocated to the pod in checkpoint. diff --git a/releases/release-1.29/release-notes/maps/pr-117720-map.yaml b/releases/release-1.29/release-notes/maps/pr-117720-map.yaml index e3b3606a4b5..091f08d2373 100644 --- a/releases/release-1.29/release-notes/maps/pr-117720-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-117720-map.yaml @@ -1,4 +1,4 @@ -pr: 117720 -releasenote: - text: The `kube-scheduler` `selectorSpread` plugin has been removed, please use - the `podTopologySpread` plugin instead. +pr: 117720 +releasenote: + text: The `kube-scheduler` `selectorSpread` plugin has been removed, please use + the `podTopologySpread` plugin instead. diff --git a/releases/release-1.29/release-notes/maps/pr-117992-map.yaml b/releases/release-1.29/release-notes/maps/pr-117992-map.yaml index 5a7888d4702..188a5b7a222 100644 --- a/releases/release-1.29/release-notes/maps/pr-117992-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-117992-map.yaml @@ -1,4 +1,4 @@ -pr: 117992 -releasenote: - text: Fixed an issue with the `garbagecollection` controller registering duplicate - event handlers if discovery requests failed. +pr: 117992 +releasenote: + text: Fixed an issue with the `garbagecollection` controller registering duplicate + event handlers if discovery requests failed. diff --git a/releases/release-1.29/release-notes/maps/pr-118146-map.yaml b/releases/release-1.29/release-notes/maps/pr-118146-map.yaml index 77e6a0aeae1..16e3bf320fb 100644 --- a/releases/release-1.29/release-notes/maps/pr-118146-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118146-map.yaml @@ -1,4 +1,4 @@ -pr: 118146 -releasenote: - text: '`kube-proxy` now reports its health more accurately in dual-stack clusters - when there are problems with only one IP family.' +pr: 118146 +releasenote: + text: '`kube-proxy` now reports its health more accurately in dual-stack clusters + when there are problems with only one IP family.' diff --git a/releases/release-1.29/release-notes/maps/pr-118189-map.yaml b/releases/release-1.29/release-notes/maps/pr-118189-map.yaml index dac022e5ad9..d6f220320d7 100644 --- a/releases/release-1.29/release-notes/maps/pr-118189-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118189-map.yaml @@ -1,3 +1,3 @@ -pr: 118189 -releasenote: - text: Fixed a concurrent map access in `TopologyCache`'s `HasPopulatedHints` method. +pr: 118189 +releasenote: + text: Fixed a concurrent map access in `TopologyCache`'s `HasPopulatedHints` method. diff --git a/releases/release-1.29/release-notes/maps/pr-118299-map.yaml b/releases/release-1.29/release-notes/maps/pr-118299-map.yaml index 88f605a1f59..13762e56ca0 100644 --- a/releases/release-1.29/release-notes/maps/pr-118299-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118299-map.yaml @@ -1,4 +1,4 @@ -pr: 118299 -releasenote: - text: List of metric labels can now be configured by supplying a manifest using - the `--allow-metric-labels-manifest` flag. +pr: 118299 +releasenote: + text: List of metric labels can now be configured by supplying a manifest using + the `--allow-metric-labels-manifest` flag. diff --git a/releases/release-1.29/release-notes/maps/pr-118455-map.yaml b/releases/release-1.29/release-notes/maps/pr-118455-map.yaml index 2fdd50f4f2b..7d0f4b8a4fc 100644 --- a/releases/release-1.29/release-notes/maps/pr-118455-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118455-map.yaml @@ -1,4 +1,4 @@ -pr: 118455 -releasenote: - text: Improved memory usage of `kube-controller-manager` by dropping the `.metadata.managedFields` - field that `kube-controller-manager` doesn't require. +pr: 118455 +releasenote: + text: Improved memory usage of `kube-controller-manager` by dropping the `.metadata.managedFields` + field that `kube-controller-manager` doesn't require. diff --git a/releases/release-1.29/release-notes/maps/pr-118568-map.yaml b/releases/release-1.29/release-notes/maps/pr-118568-map.yaml index f9fe662a2de..4acb1192662 100644 --- a/releases/release-1.29/release-notes/maps/pr-118568-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118568-map.yaml @@ -1,3 +1,3 @@ -pr: 118568 -releasenote: - text: '`kubelet` now exposes latency metrics of different stages of the node startup.' +pr: 118568 +releasenote: + text: '`kubelet` now exposes latency metrics of different stages of the node startup.' diff --git a/releases/release-1.29/release-notes/maps/pr-118619-map.yaml b/releases/release-1.29/release-notes/maps/pr-118619-map.yaml index 3e92868aae3..dd80631534a 100644 --- a/releases/release-1.29/release-notes/maps/pr-118619-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118619-map.yaml @@ -1,4 +1,4 @@ -pr: 118619 -releasenote: - text: 'Dynamic resource allocation: will now avoid creating a new gRPC connection for every - call of prepare/unprepare resource(s).' +pr: 118619 +releasenote: + text: 'Dynamic resource allocation: will now avoid creating a new gRPC connection for every + call of prepare/unprepare resource(s).' diff --git a/releases/release-1.29/release-notes/maps/pr-118647-map.yaml b/releases/release-1.29/release-notes/maps/pr-118647-map.yaml index cadfa6d5c54..9b175a96619 100644 --- a/releases/release-1.29/release-notes/maps/pr-118647-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118647-map.yaml @@ -1,4 +1,4 @@ -pr: 118647 -releasenote: - text: Added `CAP_NET_RAW` to netadmin debug profile and removed privileges when - debugging nodes. +pr: 118647 +releasenote: + text: Added `CAP_NET_RAW` to netadmin debug profile and removed privileges when + debugging nodes. diff --git a/releases/release-1.29/release-notes/maps/pr-118653-map.yaml b/releases/release-1.29/release-notes/maps/pr-118653-map.yaml index 5972dc298f2..5af848550d2 100644 --- a/releases/release-1.29/release-notes/maps/pr-118653-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118653-map.yaml @@ -1,4 +1,4 @@ -pr: 118653 -releasenote: - text: 'Go API: the `ResourceRequirements` struct was replaced with `VolumeResourceRequirements` - for use with volumes.' +pr: 118653 +releasenote: + text: 'Go API: the `ResourceRequirements` struct was replaced with `VolumeResourceRequirements` + for use with volumes.' diff --git a/releases/release-1.29/release-notes/maps/pr-118704-map.yaml b/releases/release-1.29/release-notes/maps/pr-118704-map.yaml index 7f999c50994..a2c47edff30 100644 --- a/releases/release-1.29/release-notes/maps/pr-118704-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118704-map.yaml @@ -1,4 +1,4 @@ -pr: 118704 -releasenote: - text: Updated the CRI-O socket path, so users who configure kubelet to use a location - like `/run/crio/crio.sock` don't see strange behaviour from CRI stats provider. +pr: 118704 +releasenote: + text: Updated the CRI-O socket path, so users who configure kubelet to use a location + like `/run/crio/crio.sock` don't see strange behaviour from CRI stats provider. diff --git a/releases/release-1.29/release-notes/maps/pr-118705-map.yaml b/releases/release-1.29/release-notes/maps/pr-118705-map.yaml index 1926e129be7..5b0905ad04b 100644 --- a/releases/release-1.29/release-notes/maps/pr-118705-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118705-map.yaml @@ -1,4 +1,4 @@ -pr: 118705 -releasenote: - text: Forbidden sysctls for pod sharing the respective namespaces with the host - are now checked when creating or updating pods without such sysctls. +pr: 118705 +releasenote: + text: Forbidden sysctls for pod sharing the respective namespaces with the host + are now checked when creating or updating pods without such sysctls. diff --git a/releases/release-1.29/release-notes/maps/pr-118748-map.yaml b/releases/release-1.29/release-notes/maps/pr-118748-map.yaml index a681d6a6af5..98a683d64b2 100644 --- a/releases/release-1.29/release-notes/maps/pr-118748-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118748-map.yaml @@ -1,4 +1,4 @@ -pr: 118748 -releasenote: - text: Improved handling of jsonpath expressions for `kubectl wait --for`. It is - now possible to use simple filter expressions which match on a field's content. +pr: 118748 +releasenote: + text: Improved handling of jsonpath expressions for `kubectl wait --for`. It is + now possible to use simple filter expressions which match on a field's content. diff --git a/releases/release-1.29/release-notes/maps/pr-118846-map.yaml b/releases/release-1.29/release-notes/maps/pr-118846-map.yaml index c8dcf955ea5..eca5d7c5ab5 100644 --- a/releases/release-1.29/release-notes/maps/pr-118846-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118846-map.yaml @@ -1,6 +1,6 @@ -pr: 118846 -releasenote: - text: |- - `kubelet` now allows pods to use the `net.ipv4.tcp_keepalive_time` sysctl by default - and the minimal kernel version is 4.5; Pod Security Admission allows this sysctl - in `v1.29+` versions of the baseline and restricted policies. +pr: 118846 +releasenote: + text: |- + `kubelet` now allows pods to use the `net.ipv4.tcp_keepalive_time` sysctl by default + and the minimal kernel version is 4.5; Pod Security Admission allows this sysctl + in `v1.29+` versions of the baseline and restricted policies. diff --git a/releases/release-1.29/release-notes/maps/pr-118923-map.yaml b/releases/release-1.29/release-notes/maps/pr-118923-map.yaml index a6769ffa023..ca6297af39f 100644 --- a/releases/release-1.29/release-notes/maps/pr-118923-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118923-map.yaml @@ -1,6 +1,6 @@ -pr: 118923 -releasenote: - text: |- - The `volume_zone` plugin will consider `beta` labels as `GA` labels during the scheduling - process. Therefore, if the values of the labels are the same, PVs with `beta` labels - can also be scheduled to nodes with `GA` labels. +pr: 118923 +releasenote: + text: |- + The `volume_zone` plugin will consider `beta` labels as `GA` labels during the scheduling + process. Therefore, if the values of the labels are the same, PVs with `beta` labels + can also be scheduled to nodes with `GA` labels. diff --git a/releases/release-1.29/release-notes/maps/pr-118942-map.yaml b/releases/release-1.29/release-notes/maps/pr-118942-map.yaml index ee371c0b92b..df890f99983 100644 --- a/releases/release-1.29/release-notes/maps/pr-118942-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118942-map.yaml @@ -1,6 +1,6 @@ -pr: 118942 -releasenote: - text: |- - `kubectl prune v2`: Switched annotation from `contains-group-resources` to `contains-group-kinds`, - because this is what we defined in the KEP and is clearer to end-users. Although the functionality is - in `alpha`, we will recognize the prior annotation. This migration support will be removed in `beta`/`GA`. +pr: 118942 +releasenote: + text: |- + `kubectl prune v2`: Switched annotation from `contains-group-resources` to `contains-group-kinds`, + because this is what we defined in the KEP and is clearer to end-users. Although the functionality is + in `alpha`, we will recognize the prior annotation. This migration support will be removed in `beta`/`GA`. diff --git a/releases/release-1.29/release-notes/maps/pr-118996-map.yaml b/releases/release-1.29/release-notes/maps/pr-118996-map.yaml index 454be14e5d2..f45dd8ebe80 100644 --- a/releases/release-1.29/release-notes/maps/pr-118996-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-118996-map.yaml @@ -1,3 +1,3 @@ -pr: 118996 -releasenote: - text: Kubernetes is now built with Go `1.21.0`. +pr: 118996 +releasenote: + text: Kubernetes is now built with Go `1.21.0`. diff --git a/releases/release-1.29/release-notes/maps/pr-119026-map.yaml b/releases/release-1.29/release-notes/maps/pr-119026-map.yaml index 5383a8042ef..288d27d6bcc 100644 --- a/releases/release-1.29/release-notes/maps/pr-119026-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119026-map.yaml @@ -1,4 +1,4 @@ -pr: 119026 -releasenote: - text: A new sleep action for the `PreStop` lifecycle hook was added, allowing containers - to pause for a specified duration before termination. +pr: 119026 +releasenote: + text: A new sleep action for the `PreStop` lifecycle hook was added, allowing containers + to pause for a specified duration before termination. diff --git a/releases/release-1.29/release-notes/maps/pr-119049-map.yaml b/releases/release-1.29/release-notes/maps/pr-119049-map.yaml index 42bceea4d12..0c977b9d51e 100644 --- a/releases/release-1.29/release-notes/maps/pr-119049-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119049-map.yaml @@ -1,4 +1,4 @@ -pr: 119049 -releasenote: - text: Added a new scheduler metric, `pod_scheduling_sli_duration_seconds`, and started - the deprecation for `pod_scheduling_duration_seconds`. +pr: 119049 +releasenote: + text: Added a new scheduler metric, `pod_scheduling_sli_duration_seconds`, and started + the deprecation for `pod_scheduling_duration_seconds`. diff --git a/releases/release-1.29/release-notes/maps/pr-119100-map.yaml b/releases/release-1.29/release-notes/maps/pr-119100-map.yaml index 6c7c14fa11f..2235e6ce17e 100644 --- a/releases/release-1.29/release-notes/maps/pr-119100-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119100-map.yaml @@ -1,3 +1,3 @@ -pr: 119100 -releasenote: - text: Removed `GA` feature gate for `JobTrackingWithFinalizers` in `v1.28`. +pr: 119100 +releasenote: + text: Removed `GA` feature gate for `JobTrackingWithFinalizers` in `v1.28`. diff --git a/releases/release-1.29/release-notes/maps/pr-119105-map.yaml b/releases/release-1.29/release-notes/maps/pr-119105-map.yaml index 5113c2c2bb1..c08559cc6b4 100644 --- a/releases/release-1.29/release-notes/maps/pr-119105-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119105-map.yaml @@ -1,4 +1,4 @@ -pr: 119105 -releasenote: - text: Added more accurate requeueing in scheduling queue for Pods rejected by the - temporal failure (e.g., temporal failure on `kube-apiserver`). +pr: 119105 +releasenote: + text: Added more accurate requeueing in scheduling queue for Pods rejected by the + temporal failure (e.g., temporal failure on `kube-apiserver`). diff --git a/releases/release-1.29/release-notes/maps/pr-119109-map.yaml b/releases/release-1.29/release-notes/maps/pr-119109-map.yaml index 8fd34405d95..6ea8ff25d6a 100644 --- a/releases/release-1.29/release-notes/maps/pr-119109-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119109-map.yaml @@ -1,4 +1,4 @@ -pr: 119109 -releasenote: - text: '`ValidatingAdmissionPolicy` type checking now supports CRDs and API extensions - types.' +pr: 119109 +releasenote: + text: '`ValidatingAdmissionPolicy` type checking now supports CRDs and API extensions + types.' diff --git a/releases/release-1.29/release-notes/maps/pr-119142-map.yaml b/releases/release-1.29/release-notes/maps/pr-119142-map.yaml index 5d066fa04fc..2aec0f29d86 100644 --- a/releases/release-1.29/release-notes/maps/pr-119142-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119142-map.yaml @@ -1,6 +1,6 @@ -pr: 119142 -releasenote: - text: |- - '`kube-apiserver`: adds `--authentication-config` flag for reading `AuthenticationConfiguration` - files. `--authentication-config` flag is mutually exclusive with the existing `--oidc-*` - flags.' +pr: 119142 +releasenote: + text: |- + '`kube-apiserver`: adds `--authentication-config` flag for reading `AuthenticationConfiguration` + files. `--authentication-config` flag is mutually exclusive with the existing `--oidc-*` + flags.' diff --git a/releases/release-1.29/release-notes/maps/pr-119150-map.yaml b/releases/release-1.29/release-notes/maps/pr-119150-map.yaml index 29537662d66..8c69eef2fd5 100644 --- a/releases/release-1.29/release-notes/maps/pr-119150-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119150-map.yaml @@ -1,3 +1,3 @@ -pr: 119150 -releasenote: - text: Allowed specifying `ExternalTrafficPolicy` for `Services` with `ExternalIPs`. +pr: 119150 +releasenote: + text: Allowed specifying `ExternalTrafficPolicy` for `Services` with `ExternalIPs`. diff --git a/releases/release-1.29/release-notes/maps/pr-119155-map.yaml b/releases/release-1.29/release-notes/maps/pr-119155-map.yaml index 24033b44820..933201ab19f 100644 --- a/releases/release-1.29/release-notes/maps/pr-119155-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119155-map.yaml @@ -1,6 +1,6 @@ -pr: 119155 -releasenote: - text: |- - `kube-scheduler` implements scheduling hints for the `NodeAffinity` plugin. - The scheduling hints allow the scheduler to only retry scheduling a `Pod` - that was previously rejected by the `NodeAffinity` plugin if a new `Node` or a `Node` update matches the `Pod`'s node affinity. +pr: 119155 +releasenote: + text: |- + `kube-scheduler` implements scheduling hints for the `NodeAffinity` plugin. + The scheduling hints allow the scheduler to only retry scheduling a `Pod` + that was previously rejected by the `NodeAffinity` plugin if a new `Node` or a `Node` update matches the `Pod`'s node affinity. diff --git a/releases/release-1.29/release-notes/maps/pr-119208-map.yaml b/releases/release-1.29/release-notes/maps/pr-119208-map.yaml index 1a34ce1d8a2..f2e26046efa 100644 --- a/releases/release-1.29/release-notes/maps/pr-119208-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119208-map.yaml @@ -1,3 +1,3 @@ -pr: 119208 -releasenote: - text: Decoupled `TaintManager` from `NodeLifeCycleController` (KEP-3902). +pr: 119208 +releasenote: + text: Decoupled `TaintManager` from `NodeLifeCycleController` (KEP-3902). diff --git a/releases/release-1.29/release-notes/maps/pr-119290-map.yaml b/releases/release-1.29/release-notes/maps/pr-119290-map.yaml index a824c424737..fad54fa94d6 100644 --- a/releases/release-1.29/release-notes/maps/pr-119290-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119290-map.yaml @@ -1,6 +1,6 @@ -pr: 119290 -releasenote: - text: |- - Added a return value to `QueueingHint` to indicate an error. If `QueueingHint` returns an error, - the scheduler logs it and treats the event as a `QueueAfterBackoff` so that - the Pod won't be stuck in the unschedulable pod pool. +pr: 119290 +releasenote: + text: |- + Added a return value to `QueueingHint` to indicate an error. If `QueueingHint` returns an error, + the scheduler logs it and treats the event as a `QueueAfterBackoff` so that + the Pod won't be stuck in the unschedulable pod pool. diff --git a/releases/release-1.29/release-notes/maps/pr-119317-map.yaml b/releases/release-1.29/release-notes/maps/pr-119317-map.yaml index 19a50226ccb..791ec4301d1 100644 --- a/releases/release-1.29/release-notes/maps/pr-119317-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119317-map.yaml @@ -1,5 +1,5 @@ -pr: 119317 -releasenote: - text: Revised the logic for `DaemonSet` rolling update to exclude nodes if scheduling - constraints are not met. This eliminates the problem of rolling updates to a `DaemonSet` - getting stuck around tolerations. +pr: 119317 +releasenote: + text: Revised the logic for `DaemonSet` rolling update to exclude nodes if scheduling + constraints are not met. This eliminates the problem of rolling updates to a `DaemonSet` + getting stuck around tolerations. diff --git a/releases/release-1.29/release-notes/maps/pr-119346-map.yaml b/releases/release-1.29/release-notes/maps/pr-119346-map.yaml index 964dc79ab6e..ae3427ec803 100644 --- a/releases/release-1.29/release-notes/maps/pr-119346-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119346-map.yaml @@ -1,5 +1,5 @@ -pr: 119346 -releasenote: - text: |- - '`kubeadm`: printing the default component configs for `reset` and `join` is now - unsupported.' +pr: 119346 +releasenote: + text: |- + '`kubeadm`: printing the default component configs for `reset` and `join` is now + unsupported.' diff --git a/releases/release-1.29/release-notes/maps/pr-119385-map.yaml b/releases/release-1.29/release-notes/maps/pr-119385-map.yaml index de367f6c514..2446c148616 100644 --- a/releases/release-1.29/release-notes/maps/pr-119385-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119385-map.yaml @@ -1,5 +1,5 @@ -pr: 119385 -releasenote: - text: Introduced new apiserver metric `apiserver_flowcontrol_current_inqueue_seats`. - This metric is analogous to `apiserver_flowcontrol_current_inqueue_requests`, - but tracks the total number of seats, as each request can take more than one seat. +pr: 119385 +releasenote: + text: Introduced new apiserver metric `apiserver_flowcontrol_current_inqueue_seats`. + This metric is analogous to `apiserver_flowcontrol_current_inqueue_requests`, + but tracks the total number of seats, as each request can take more than one seat. diff --git a/releases/release-1.29/release-notes/maps/pr-119396-map.yaml b/releases/release-1.29/release-notes/maps/pr-119396-map.yaml index 7a821b1fe53..a8c49c8de30 100644 --- a/releases/release-1.29/release-notes/maps/pr-119396-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119396-map.yaml @@ -1,6 +1,6 @@ -pr: 119396 -releasenote: - text: |- - `kube-scheduler` implemented scheduling hints for the `NodeUnschedulable` plugin. - The scheduling hints allow the scheduler to only retry scheduling a `Pod` - that was previously rejected by the `NodeSchedulable` plugin if a new `Node` or a `Node` update sets `.spec.unschedulable` to false. +pr: 119396 +releasenote: + text: |- + `kube-scheduler` implemented scheduling hints for the `NodeUnschedulable` plugin. + The scheduling hints allow the scheduler to only retry scheduling a `Pod` + that was previously rejected by the `NodeSchedulable` plugin if a new `Node` or a `Node` update sets `.spec.unschedulable` to false. diff --git a/releases/release-1.29/release-notes/maps/pr-119399-map.yaml b/releases/release-1.29/release-notes/maps/pr-119399-map.yaml index d68aec01e5f..3b492ee73b2 100644 --- a/releases/release-1.29/release-notes/maps/pr-119399-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119399-map.yaml @@ -1,3 +1,3 @@ -pr: 119399 -releasenote: - text: Optimized `NodeUnschedulable` Filter to avoid unnecessary calculations. +pr: 119399 +releasenote: + text: Optimized `NodeUnschedulable` Filter to avoid unnecessary calculations. diff --git a/releases/release-1.29/release-notes/maps/pr-119410-map.yaml b/releases/release-1.29/release-notes/maps/pr-119410-map.yaml index a70dc8e3b84..54470111827 100644 --- a/releases/release-1.29/release-notes/maps/pr-119410-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119410-map.yaml @@ -1,4 +1,4 @@ -pr: 119410 -releasenote: - text: '`kubectl` will not support the `/swagger-2.0.0.pb-v1` endpoint that has been - long deprecated.' +pr: 119410 +releasenote: + text: '`kubectl` will not support the `/swagger-2.0.0.pb-v1` endpoint that has been + long deprecated.' diff --git a/releases/release-1.29/release-notes/maps/pr-119503-map.yaml b/releases/release-1.29/release-notes/maps/pr-119503-map.yaml index 06dc31e8b46..072867ffa13 100644 --- a/releases/release-1.29/release-notes/maps/pr-119503-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119503-map.yaml @@ -1,3 +1,3 @@ -pr: 119503 -releasenote: - text: Graduated API List chunking (aka pagination) feature to `stable`. +pr: 119503 +releasenote: + text: Graduated API List chunking (aka pagination) feature to `stable`. diff --git a/releases/release-1.29/release-notes/maps/pr-119522-map.yaml b/releases/release-1.29/release-notes/maps/pr-119522-map.yaml index 9ba335b9544..82533a4209c 100644 --- a/releases/release-1.29/release-notes/maps/pr-119522-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119522-map.yaml @@ -1,4 +1,4 @@ -pr: 119522 -releasenote: - text: Added a check on a user attempting to create a static pod via the `kubelet` - without specifying a name. They will now get a visible validation error. +pr: 119522 +releasenote: + text: Added a check on a user attempting to create a static pod via the `kubelet` + without specifying a name. They will now get a visible validation error. diff --git a/releases/release-1.29/release-notes/maps/pr-119537-map.yaml b/releases/release-1.29/release-notes/maps/pr-119537-map.yaml index c4cabf7d661..0bdbe47cf53 100644 --- a/releases/release-1.29/release-notes/maps/pr-119537-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119537-map.yaml @@ -1,4 +1,4 @@ -pr: 119537 -releasenote: - text: Removed ephemeral container legacy server support for the server versions - prior to `1.22`. +pr: 119537 +releasenote: + text: Removed ephemeral container legacy server support for the server versions + prior to `1.22`. diff --git a/releases/release-1.29/release-notes/maps/pr-119556-map.yaml b/releases/release-1.29/release-notes/maps/pr-119556-map.yaml index 47d67e7c21d..5d1375a2695 100644 --- a/releases/release-1.29/release-notes/maps/pr-119556-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119556-map.yaml @@ -1,4 +1,4 @@ -pr: 119556 -releasenote: - text: Improved memory usage of `kube-scheduler` by dropping the `.metadata.managedFields` - field that `kube-scheduler` doesn't require. +pr: 119556 +releasenote: + text: Improved memory usage of `kube-scheduler` by dropping the `.metadata.managedFields` + field that `kube-scheduler` doesn't require. diff --git a/releases/release-1.29/release-notes/maps/pr-119557-map.yaml b/releases/release-1.29/release-notes/maps/pr-119557-map.yaml index 78c80e14725..48a56118e70 100644 --- a/releases/release-1.29/release-notes/maps/pr-119557-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119557-map.yaml @@ -1,5 +1,5 @@ -pr: 119557 -releasenote: - text: |- - Implemented API for streaming for the `etcd` store implementation. - When `sendInitialEvents ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic `Bookmark`, after which the server continues streaming events. +pr: 119557 +releasenote: + text: |- + Implemented API for streaming for the `etcd` store implementation. + When `sendInitialEvents ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic `Bookmark`, after which the server continues streaming events. diff --git a/releases/release-1.29/release-notes/maps/pr-119592-map.yaml b/releases/release-1.29/release-notes/maps/pr-119592-map.yaml index 0c5c3e4a044..a745e3b665b 100644 --- a/releases/release-1.29/release-notes/maps/pr-119592-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119592-map.yaml @@ -1,4 +1,4 @@ -pr: 119592 -releasenote: - text: The `Dockerfile` for the kubectl image has been updated with the addition - of a specific base image and essential utilities (bash and jq). +pr: 119592 +releasenote: + text: The `Dockerfile` for the kubectl image has been updated with the addition + of a specific base image and essential utilities (bash and jq). diff --git a/releases/release-1.29/release-notes/maps/pr-119659-map.yaml b/releases/release-1.29/release-notes/maps/pr-119659-map.yaml index 07aa9669c0d..4254b24888b 100644 --- a/releases/release-1.29/release-notes/maps/pr-119659-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119659-map.yaml @@ -1,3 +1,3 @@ -pr: 119659 -releasenote: - text: Promoted `PodReadyToStartContainers` condition to `beta`. +pr: 119659 +releasenote: + text: Promoted `PodReadyToStartContainers` condition to `beta`. diff --git a/releases/release-1.29/release-notes/maps/pr-119665-map.yaml b/releases/release-1.29/release-notes/maps/pr-119665-map.yaml index d37df874a7f..97def254c95 100644 --- a/releases/release-1.29/release-notes/maps/pr-119665-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119665-map.yaml @@ -1,5 +1,5 @@ -pr: 119665 -releasenote: - text: '`GetPodQOS(pod *core.Pod)` function now returns the stored value from `PodStatus.QOSClass`, - if set. To compute/evaluate the value of `QOSClass` from scratch, `ComputePodQOS(pod*core.Pod)` - must be used.' +pr: 119665 +releasenote: + text: '`GetPodQOS(pod *core.Pod)` function now returns the stored value from `PodStatus.QOSClass`, + if set. To compute/evaluate the value of `QOSClass` from scratch, `ComputePodQOS(pod*core.Pod)` + must be used.' diff --git a/releases/release-1.29/release-notes/maps/pr-119705-map.yaml b/releases/release-1.29/release-notes/maps/pr-119705-map.yaml index 94e277d8051..6f0e8752dbe 100644 --- a/releases/release-1.29/release-notes/maps/pr-119705-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119705-map.yaml @@ -1,3 +1,3 @@ -pr: 119705 -releasenote: - text: Removed `generatedfiles` from the Makefile. +pr: 119705 +releasenote: + text: Removed `generatedfiles` from the Makefile. diff --git a/releases/release-1.29/release-notes/maps/pr-119732-map.yaml b/releases/release-1.29/release-notes/maps/pr-119732-map.yaml index 6ca280e41e9..cc2c8a75355 100644 --- a/releases/release-1.29/release-notes/maps/pr-119732-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119732-map.yaml @@ -1,3 +1,3 @@ -pr: 119732 -releasenote: - text: 'Fixed an issue related to not draining all the pods in a namespace when an empty selector, i.e., "{}," is specified in a Pod Disruption Budget (PDB).' +pr: 119732 +releasenote: + text: 'Fixed an issue related to not draining all the pods in a namespace when an empty selector, i.e., "{}," is specified in a Pod Disruption Budget (PDB).' diff --git a/releases/release-1.29/release-notes/maps/pr-119735-map.yaml b/releases/release-1.29/release-notes/maps/pr-119735-map.yaml index 98b6f93eacf..fef17103791 100644 --- a/releases/release-1.29/release-notes/maps/pr-119735-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119735-map.yaml @@ -1,4 +1,4 @@ -pr: 119735 -releasenote: - text: Volume attach or publish operation will not fail at `kubelet` if target path - directory already exists on the node. +pr: 119735 +releasenote: + text: Volume attach or publish operation will not fail at `kubelet` if target path + directory already exists on the node. diff --git a/releases/release-1.29/release-notes/maps/pr-119753-map.yaml b/releases/release-1.29/release-notes/maps/pr-119753-map.yaml index 6622ef27d21..aa392138ac0 100644 --- a/releases/release-1.29/release-notes/maps/pr-119753-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119753-map.yaml @@ -1,3 +1,3 @@ -pr: 119753 -releasenote: - text: '`kubeadm`: fixed `nil` pointer when `etcd` member is already removed.' +pr: 119753 +releasenote: + text: '`kubeadm`: fixed `nil` pointer when `etcd` member is already removed.' diff --git a/releases/release-1.29/release-notes/maps/pr-119761-map.yaml b/releases/release-1.29/release-notes/maps/pr-119761-map.yaml index 7db01e5cd26..4346929ad9f 100644 --- a/releases/release-1.29/release-notes/maps/pr-119761-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119761-map.yaml @@ -1,3 +1,3 @@ -pr: 119761 -releasenote: - text: '`Statefulset` now waits for new replicas in tests when removing `.start.ordinal`.' +pr: 119761 +releasenote: + text: '`Statefulset` now waits for new replicas in tests when removing `.start.ordinal`.' diff --git a/releases/release-1.29/release-notes/maps/pr-119762-map.yaml b/releases/release-1.29/release-notes/maps/pr-119762-map.yaml index dce8ccd1694..308fd0283ef 100644 --- a/releases/release-1.29/release-notes/maps/pr-119762-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119762-map.yaml @@ -1,5 +1,5 @@ -pr: 119762 -releasenote: - text: In the `wait.PollUntilContextTimeout` function, if `immediate` is true, the - condition will now be invoked before waiting, guaranteeing that the condition - is invoked at least once and then wait a interval before executing again. +pr: 119762 +releasenote: + text: In the `wait.PollUntilContextTimeout` function, if `immediate` is true, the + condition will now be invoked before waiting, guaranteeing that the condition + is invoked at least once and then wait a interval before executing again. diff --git a/releases/release-1.29/release-notes/maps/pr-119769-map.yaml b/releases/release-1.29/release-notes/maps/pr-119769-map.yaml index 735ddb2d630..8f824ae0c43 100644 --- a/releases/release-1.29/release-notes/maps/pr-119769-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119769-map.yaml @@ -1,4 +1,4 @@ -pr: 119769 -releasenote: - text: Fixed a `1.27` scheduling regression that `PostFilter` plugin may not function - if previous `PreFilter` plugins return `Skip`. +pr: 119769 +releasenote: + text: Fixed a `1.27` scheduling regression that `PostFilter` plugin may not function + if previous `PreFilter` plugins return `Skip`. diff --git a/releases/release-1.29/release-notes/maps/pr-119776-map.yaml b/releases/release-1.29/release-notes/maps/pr-119776-map.yaml index c9b70029d86..be1929322a3 100644 --- a/releases/release-1.29/release-notes/maps/pr-119776-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119776-map.yaml @@ -1,4 +1,4 @@ -pr: 119776 -releasenote: - text: Fixed an issue where a `CronJob` could fail to clean up Jobs when the `ResourceQuota` - for `Jobs` had been reached. +pr: 119776 +releasenote: + text: Fixed an issue where a `CronJob` could fail to clean up Jobs when the `ResourceQuota` + for `Jobs` had been reached. diff --git a/releases/release-1.29/release-notes/maps/pr-119778-map.yaml b/releases/release-1.29/release-notes/maps/pr-119778-map.yaml index a6a55a7d521..c08d70782cb 100644 --- a/releases/release-1.29/release-notes/maps/pr-119778-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119778-map.yaml @@ -1,4 +1,4 @@ -pr: 119778 -releasenote: - text: Fixed a `v1.26` regression scheduling bug by ensuring that preemption is skipped - when a `PreFilter` plugin returns `UnschedulableAndUnresolvable`. +pr: 119778 +releasenote: + text: Fixed a `v1.26` regression scheduling bug by ensuring that preemption is skipped + when a `PreFilter` plugin returns `UnschedulableAndUnresolvable`. diff --git a/releases/release-1.29/release-notes/maps/pr-119785-map.yaml b/releases/release-1.29/release-notes/maps/pr-119785-map.yaml index 6fb7a9be107..751e351222a 100644 --- a/releases/release-1.29/release-notes/maps/pr-119785-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119785-map.yaml @@ -1,5 +1,5 @@ -pr: 119785 -releasenote: - text: |- - In a scheduler with `Permit` plugins, when a Pod is rejected during `WaitOnPermit`, the scheduler records the plugin. - The scheduler will use the record to honor cluster events and queueing `hints registered` for the plugin, to inform whether to retry the pod. +pr: 119785 +releasenote: + text: |- + In a scheduler with `Permit` plugins, when a Pod is rejected during `WaitOnPermit`, the scheduler records the plugin. + The scheduler will use the record to honor cluster events and queueing `hints registered` for the plugin, to inform whether to retry the pod. diff --git a/releases/release-1.29/release-notes/maps/pr-119789-map.yaml b/releases/release-1.29/release-notes/maps/pr-119789-map.yaml index a9ae51afa48..4a858c72bb6 100644 --- a/releases/release-1.29/release-notes/maps/pr-119789-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119789-map.yaml @@ -1,9 +1,9 @@ -pr: 119789 -releasenote: - text: Setting the `status.loadBalancer` of a Service whose `spec.type` is not `LoadBalancer` - was previously allowed, but any update to the `metadata` or `spec` would wipe - that field. Setting this field is no longer permitted unless `spec.type` is `LoadBalancer`. In - the very unlikely event that this has unexpected impact, you can enable the `AllowServiceLBStatusOnNonLB` - feature gate, which will restore the previous behavior. If you do need to set - this, please file an issue with the Kubernetes project to help contributors understand - why you need it. +pr: 119789 +releasenote: + text: Setting the `status.loadBalancer` of a Service whose `spec.type` is not `LoadBalancer` + was previously allowed, but any update to the `metadata` or `spec` would wipe + that field. Setting this field is no longer permitted unless `spec.type` is `LoadBalancer`. In + the very unlikely event that this has unexpected impact, you can enable the `AllowServiceLBStatusOnNonLB` + feature gate, which will restore the previous behavior. If you do need to set + this, please file an issue with the Kubernetes project to help contributors understand + why you need it. diff --git a/releases/release-1.29/release-notes/maps/pr-119795-map.yaml b/releases/release-1.29/release-notes/maps/pr-119795-map.yaml index add641d34c8..a5594dadc88 100644 --- a/releases/release-1.29/release-notes/maps/pr-119795-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119795-map.yaml @@ -1,3 +1,3 @@ -pr: 119795 -releasenote: - text: Cleaned up `kube-apiserver` HTTP logs for impersonated requests. +pr: 119795 +releasenote: + text: Cleaned up `kube-apiserver` HTTP logs for impersonated requests. diff --git a/releases/release-1.29/release-notes/maps/pr-119796-map.yaml b/releases/release-1.29/release-notes/maps/pr-119796-map.yaml index 9fffe114e34..1ebf7922a70 100644 --- a/releases/release-1.29/release-notes/maps/pr-119796-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119796-map.yaml @@ -1,3 +1,3 @@ -pr: 119796 -releasenote: - text: Added context to `caches populated` log messages. +pr: 119796 +releasenote: + text: Added context to `caches populated` log messages. diff --git a/releases/release-1.29/release-notes/maps/pr-119825-map.yaml b/releases/release-1.29/release-notes/maps/pr-119825-map.yaml index 3b73f6e7042..b4d159af1dc 100644 --- a/releases/release-1.29/release-notes/maps/pr-119825-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119825-map.yaml @@ -1,4 +1,4 @@ -pr: 119825 -releasenote: - text: Fixed bug where `Adding GroupVersion` log line was constantly repeated without - any group version changes. +pr: 119825 +releasenote: + text: Fixed bug where `Adding GroupVersion` log line was constantly repeated without + any group version changes. diff --git a/releases/release-1.29/release-notes/maps/pr-119859-map.yaml b/releases/release-1.29/release-notes/maps/pr-119859-map.yaml index 2d1198716c2..bf28e74cf43 100644 --- a/releases/release-1.29/release-notes/maps/pr-119859-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119859-map.yaml @@ -1,5 +1,5 @@ -pr: 119859 -releasenote: - text: |- - '`kubeadm`: removed `system:masters` organization from `etcd/healthcheck-client` - certificate.' +pr: 119859 +releasenote: + text: |- + '`kubeadm`: removed `system:masters` organization from `etcd/healthcheck-client` + certificate.' diff --git a/releases/release-1.29/release-notes/maps/pr-119870-map.yaml b/releases/release-1.29/release-notes/maps/pr-119870-map.yaml index ead697a4221..255503044bd 100644 --- a/releases/release-1.29/release-notes/maps/pr-119870-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119870-map.yaml @@ -1,6 +1,6 @@ -pr: 119870 -releasenote: - text: 'Fixed a regression in the default `v1.27` configurations in `kube-apiserver`: - fixed the `AggregatedDiscoveryEndpoint` feature (`beta` in `v1.27+`) to successfully - fetch discovery information from aggregated API servers that do not check `Accept` - headers when serving the `/apis` endpoint.' +pr: 119870 +releasenote: + text: 'Fixed a regression in the default `v1.27` configurations in `kube-apiserver`: + fixed the `AggregatedDiscoveryEndpoint` feature (`beta` in `v1.27+`) to successfully + fetch discovery information from aggregated API servers that do not check `Accept` + headers when serving the `/apis` endpoint.' diff --git a/releases/release-1.29/release-notes/maps/pr-119878-map.yaml b/releases/release-1.29/release-notes/maps/pr-119878-map.yaml index ba37bb325ce..4cc557e1054 100644 --- a/releases/release-1.29/release-notes/maps/pr-119878-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119878-map.yaml @@ -1,4 +1,4 @@ -pr: 119878 -releasenote: - text: Added `apiserver_envelope_encryption_dek_cache_filled` to measure number of - records in data encryption key (DEK) cache. +pr: 119878 +releasenote: + text: Added `apiserver_envelope_encryption_dek_cache_filled` to measure number of + records in data encryption key (DEK) cache. diff --git a/releases/release-1.29/release-notes/maps/pr-119933-map.yaml b/releases/release-1.29/release-notes/maps/pr-119933-map.yaml index d1d2de2586f..cbc62f4f448 100644 --- a/releases/release-1.29/release-notes/maps/pr-119933-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119933-map.yaml @@ -1,3 +1,3 @@ -pr: 119933 -releasenote: - text: Updated `cri-tools` to `v1.28.0`. +pr: 119933 +releasenote: + text: Updated `cri-tools` to `v1.28.0`. diff --git a/releases/release-1.29/release-notes/maps/pr-119944-map.yaml b/releases/release-1.29/release-notes/maps/pr-119944-map.yaml index b2416b72354..f95b73bc142 100644 --- a/releases/release-1.29/release-notes/maps/pr-119944-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119944-map.yaml @@ -1,4 +1,4 @@ -pr: 119944 -releasenote: - text: Added a redundant process to remove tracking finalizers from Pods that belong - to Jobs. The process kicks in after the control plane marks a Job as finished. +pr: 119944 +releasenote: + text: Added a redundant process to remove tracking finalizers from Pods that belong + to Jobs. The process kicks in after the control plane marks a Job as finished. diff --git a/releases/release-1.29/release-notes/maps/pr-119946-map.yaml b/releases/release-1.29/release-notes/maps/pr-119946-map.yaml index ee7200c102a..5eaa5ec3bd8 100644 --- a/releases/release-1.29/release-notes/maps/pr-119946-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119946-map.yaml @@ -1,5 +1,5 @@ -pr: 119946 -releasenote: - text: '`kubeadm`: turned on feature gate `MergeCLIArgumentsWithConfig` to merge - the config from flag and config file, otherwise, if the flag `--ignore-preflight-errors` - is set from the CLI, then the value from config file will be ignored.' +pr: 119946 +releasenote: + text: '`kubeadm`: turned on feature gate `MergeCLIArgumentsWithConfig` to merge + the config from flag and config file, otherwise, if the flag `--ignore-preflight-errors` + is set from the CLI, then the value from config file will be ignored.' diff --git a/releases/release-1.29/release-notes/maps/pr-119969-map.yaml b/releases/release-1.29/release-notes/maps/pr-119969-map.yaml index 1e03dd0e9c1..046a87caa6e 100644 --- a/releases/release-1.29/release-notes/maps/pr-119969-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119969-map.yaml @@ -1,3 +1,3 @@ -pr: 119969 -releasenote: - text: Updated CNI plugins to `v1.3.0`. +pr: 119969 +releasenote: + text: Updated CNI plugins to `v1.3.0`. diff --git a/releases/release-1.29/release-notes/maps/pr-119986-map.yaml b/releases/release-1.29/release-notes/maps/pr-119986-map.yaml index bf823dd0f8e..95057b5e8a0 100644 --- a/releases/release-1.29/release-notes/maps/pr-119986-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119986-map.yaml @@ -1,4 +1,4 @@ -pr: 119986 -releasenote: - text: Fixed the bug where images that were pinned by the container runtime could - be garbage collected by `kubelet`. +pr: 119986 +releasenote: + text: Fixed the bug where images that were pinned by the container runtime could + be garbage collected by `kubelet`. diff --git a/releases/release-1.29/release-notes/maps/pr-119994-map.yaml b/releases/release-1.29/release-notes/maps/pr-119994-map.yaml index c62ecd44d05..204f872c25e 100644 --- a/releases/release-1.29/release-notes/maps/pr-119994-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-119994-map.yaml @@ -1,5 +1,5 @@ -pr: 119994 -releasenote: - text: |- - '`kube-scheduler` component config (`KubeSchedulerConfiguration`) `kubescheduler.config.k8s.io/v1beta3` - is removed in `v1.29`. Migrated `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`.' +pr: 119994 +releasenote: + text: |- + '`kube-scheduler` component config (`KubeSchedulerConfiguration`) `kubescheduler.config.k8s.io/v1beta3` + is removed in `v1.29`. Migrated `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`.' diff --git a/releases/release-1.29/release-notes/maps/pr-120001-map.yaml b/releases/release-1.29/release-notes/maps/pr-120001-map.yaml index 591aa6103e3..6bde3e3ad8f 100644 --- a/releases/release-1.29/release-notes/maps/pr-120001-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120001-map.yaml @@ -1,3 +1,3 @@ -pr: 120001 -releasenote: - text: Restartable init containers resource in pod autoscaler are now calculated. +pr: 120001 +releasenote: + text: Restartable init containers resource in pod autoscaler are now calculated. diff --git a/releases/release-1.29/release-notes/maps/pr-120018-map.yaml b/releases/release-1.29/release-notes/maps/pr-120018-map.yaml index c98fc713d45..931a448f4b6 100644 --- a/releases/release-1.29/release-notes/maps/pr-120018-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120018-map.yaml @@ -1,7 +1,7 @@ -pr: 120018 -releasenote: - text: |- - `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` objects are - persisted in `etcd` using the `v1beta1` version. Either remove alpha objects, or disable the - alpha `ValidatingAdmissionPolicy` feature in a `v1.27` server before upgrading to a - `v1.28` server with the beta feature and API enabled. +pr: 120018 +releasenote: + text: |- + `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` objects are + persisted in `etcd` using the `v1beta1` version. Either remove alpha objects, or disable the + alpha `ValidatingAdmissionPolicy` feature in a `v1.27` server before upgrading to a + `v1.28` server with the beta feature and API enabled. diff --git a/releases/release-1.29/release-notes/maps/pr-120064-map.yaml b/releases/release-1.29/release-notes/maps/pr-120064-map.yaml index 958dac14e5f..a48b3f2f68e 100644 --- a/releases/release-1.29/release-notes/maps/pr-120064-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120064-map.yaml @@ -1,5 +1,5 @@ -pr: 120064 -releasenote: - text: |- - '`kubeadm`: added validation to verify that the `CertificateKey` is a valid hex - encoded AES key.' +pr: 120064 +releasenote: + text: |- + '`kubeadm`: added validation to verify that the `CertificateKey` is a valid hex + encoded AES key.' diff --git a/releases/release-1.29/release-notes/maps/pr-120069-map.yaml b/releases/release-1.29/release-notes/maps/pr-120069-map.yaml index dc40f44194a..ca41ca31006 100644 --- a/releases/release-1.29/release-notes/maps/pr-120069-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120069-map.yaml @@ -1,4 +1,4 @@ -pr: 120069 -releasenote: - text: Promoted to conformance a test that verified that `Services` only forward - traffic on the port and protocol specified. +pr: 120069 +releasenote: + text: Promoted to conformance a test that verified that `Services` only forward + traffic on the port and protocol specified. diff --git a/releases/release-1.29/release-notes/maps/pr-120072-map.yaml b/releases/release-1.29/release-notes/maps/pr-120072-map.yaml index e9360f61e40..6427477b1cb 100644 --- a/releases/release-1.29/release-notes/maps/pr-120072-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120072-map.yaml @@ -1,5 +1,5 @@ -pr: 120072 -releasenote: - text: |- - `kubeadm`: fixed the bug where `--image-repository` flag is missing for some init - phase sub-commands. +pr: 120072 +releasenote: + text: |- + `kubeadm`: fixed the bug where `--image-repository` flag is missing for some init + phase sub-commands. diff --git a/releases/release-1.29/release-notes/maps/pr-120105-map.yaml b/releases/release-1.29/release-notes/maps/pr-120105-map.yaml index 9e35ec8a107..8aba5292eb9 100644 --- a/releases/release-1.29/release-notes/maps/pr-120105-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120105-map.yaml @@ -1,3 +1,3 @@ -pr: 120105 -releasenote: - text: Added mock framework support for unit tests for Windows in `kubeproxy`. +pr: 120105 +releasenote: + text: Added mock framework support for unit tests for Windows in `kubeproxy`. diff --git a/releases/release-1.29/release-notes/maps/pr-120108-map.yaml b/releases/release-1.29/release-notes/maps/pr-120108-map.yaml index 1f5fd3080c0..756ee3a0e3e 100644 --- a/releases/release-1.29/release-notes/maps/pr-120108-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120108-map.yaml @@ -1,3 +1,3 @@ -pr: 120108 -releasenote: - text: Fixed OpenAPI v3 not being cleaned up after deleting `APIServices`. +pr: 120108 +releasenote: + text: Fixed OpenAPI v3 not being cleaned up after deleting `APIServices`. diff --git a/releases/release-1.29/release-notes/maps/pr-120116-map.yaml b/releases/release-1.29/release-notes/maps/pr-120116-map.yaml index 04e4fde4a2a..c0c9c2c8984 100644 --- a/releases/release-1.29/release-notes/maps/pr-120116-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120116-map.yaml @@ -1,3 +1,3 @@ -pr: 120116 -releasenote: - text: Upgraded `coredns` to `v1.11.1`. +pr: 120116 +releasenote: + text: Upgraded `coredns` to `v1.11.1`. diff --git a/releases/release-1.29/release-notes/maps/pr-120118-map.yaml b/releases/release-1.29/release-notes/maps/pr-120118-map.yaml index ba620f514b4..f868667df60 100644 --- a/releases/release-1.29/release-notes/maps/pr-120118-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120118-map.yaml @@ -1,4 +1,4 @@ -pr: 120118 -releasenote: - text: Added descriptions and examples for the situation of using `kubectl rollout - restart` without specifying a particular deployment. +pr: 120118 +releasenote: + text: Added descriptions and examples for the situation of using `kubectl rollout + restart` without specifying a particular deployment. diff --git a/releases/release-1.29/release-notes/maps/pr-120119-map.yaml b/releases/release-1.29/release-notes/maps/pr-120119-map.yaml index fbf71b1dfb8..c6f9d1b3d66 100644 --- a/releases/release-1.29/release-notes/maps/pr-120119-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120119-map.yaml @@ -1,4 +1,4 @@ -pr: 120119 -releasenote: - text: Fixed `kubectl events` not filtering events by `GroupVersion` for resources - with a full name. +pr: 120119 +releasenote: + text: Fixed `kubectl events` not filtering events by `GroupVersion` for resources + with a full name. diff --git a/releases/release-1.29/release-notes/maps/pr-120154-map.yaml b/releases/release-1.29/release-notes/maps/pr-120154-map.yaml index 7d5c5fce585..4ebbee062ec 100644 --- a/releases/release-1.29/release-notes/maps/pr-120154-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120154-map.yaml @@ -1,7 +1,7 @@ -pr: 120154 -releasenote: - text: '`kube-apiserver`: added `--authorization-config` flag for reading a configuration - file containing an `apiserver.config.k8s.io/v1alpha1 AuthorizationConfiguration` - object. The `--authorization-config` flag is mutually exclusive with `--authorization-modes` - and `--authorization-webhook-*` flags. The `alpha` `StructuredAuthorizationConfiguration` - feature flag must be enabled for `--authorization-config` to be specified.' +pr: 120154 +releasenote: + text: '`kube-apiserver`: added `--authorization-config` flag for reading a configuration + file containing an `apiserver.config.k8s.io/v1alpha1 AuthorizationConfiguration` + object. The `--authorization-config` flag is mutually exclusive with `--authorization-modes` + and `--authorization-webhook-*` flags. The `alpha` `StructuredAuthorizationConfiguration` + feature flag must be enabled for `--authorization-config` to be specified.' diff --git a/releases/release-1.29/release-notes/maps/pr-120198-map.yaml b/releases/release-1.29/release-notes/maps/pr-120198-map.yaml index 4d84373deed..c9d218e0bbf 100644 --- a/releases/release-1.29/release-notes/maps/pr-120198-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120198-map.yaml @@ -1,6 +1,6 @@ -pr: 120198 -releasenote: - text: |- - `kubeadm`: updated warning message when swap space is detected. When swap is - active on Linux, `kubeadm` explains that swap is supported for cgroup v2 only and - is beta but disabled by default. +pr: 120198 +releasenote: + text: |- + `kubeadm`: updated warning message when swap space is detected. When swap is + active on Linux, `kubeadm` explains that swap is supported for cgroup v2 only and + is beta but disabled by default. diff --git a/releases/release-1.29/release-notes/maps/pr-120204-map.yaml b/releases/release-1.29/release-notes/maps/pr-120204-map.yaml index b86ee923da0..8131beeafac 100644 --- a/releases/release-1.29/release-notes/maps/pr-120204-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120204-map.yaml @@ -1,3 +1,3 @@ -pr: 120204 -releasenote: - text: Marked the `onPodConditions` field as optional in `Job`'s pod failure policy. +pr: 120204 +releasenote: + text: Marked the `onPodConditions` field as optional in `Job`'s pod failure policy. diff --git a/releases/release-1.29/release-notes/maps/pr-120213-map.yaml b/releases/release-1.29/release-notes/maps/pr-120213-map.yaml index 3db17640483..d986d13685c 100644 --- a/releases/release-1.29/release-notes/maps/pr-120213-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120213-map.yaml @@ -1,5 +1,5 @@ -pr: 120213 -releasenote: - text: |- - `scheduler`: handling of unschedulable pods because a `ResourceClass` is missing - is a bit more efficient and no longer relies on periodic retries. +pr: 120213 +releasenote: + text: |- + `scheduler`: handling of unschedulable pods because a `ResourceClass` is missing + is a bit more efficient and no longer relies on periodic retries. diff --git a/releases/release-1.29/release-notes/maps/pr-120228-map.yaml b/releases/release-1.29/release-notes/maps/pr-120228-map.yaml index dbf925e0b46..e99d3c55e7a 100644 --- a/releases/release-1.29/release-notes/maps/pr-120228-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120228-map.yaml @@ -1,5 +1,5 @@ -pr: 120228 -releasenote: - text: |- - `kubeadm`: promoted feature gate `EtcdLearnerMode` to `beta`. Learner mode for - joining `etcd` members is now enabled by default. +pr: 120228 +releasenote: + text: |- + `kubeadm`: promoted feature gate `EtcdLearnerMode` to `beta`. Learner mode for + joining `etcd` members is now enabled by default. diff --git a/releases/release-1.29/release-notes/maps/pr-120233-map.yaml b/releases/release-1.29/release-notes/maps/pr-120233-map.yaml index 681d96737bc..a1de10795b6 100644 --- a/releases/release-1.29/release-notes/maps/pr-120233-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120233-map.yaml @@ -1,3 +1,3 @@ -pr: 120233 -releasenote: - text: Promoted `ServiceNodePortStaticSubrange` to stable and lock to default. +pr: 120233 +releasenote: + text: Promoted `ServiceNodePortStaticSubrange` to stable and lock to default. diff --git a/releases/release-1.29/release-notes/maps/pr-120248-map.yaml b/releases/release-1.29/release-notes/maps/pr-120248-map.yaml index 56c79d9efc1..7ad9620afda 100644 --- a/releases/release-1.29/release-notes/maps/pr-120248-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120248-map.yaml @@ -1,4 +1,4 @@ -pr: 120248 -releasenote: - text: Removed the `GRPCContainerProbe` feature gate (the feature is stable and always - enabled). +pr: 120248 +releasenote: + text: Removed the `GRPCContainerProbe` feature gate (the feature is stable and always + enabled). diff --git a/releases/release-1.29/release-notes/maps/pr-120255-map.yaml b/releases/release-1.29/release-notes/maps/pr-120255-map.yaml index 923ceb2ff4e..25cf6976359 100644 --- a/releases/release-1.29/release-notes/maps/pr-120255-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120255-map.yaml @@ -1,6 +1,6 @@ -pr: 120255 -releasenote: - text: |- - `--sync-frequency` will not affect the update interval of volumes that use `ConfigMaps` - or `Secrets` when the `configMapAndSecretChangeDetectionStrategy` is set to `Cache`. - The update interval is only affected by `node.alpha.kubernetes.io/ttl` node annotation." +pr: 120255 +releasenote: + text: |- + `--sync-frequency` will not affect the update interval of volumes that use `ConfigMaps` + or `Secrets` when the `configMapAndSecretChangeDetectionStrategy` is set to `Cache`. + The update interval is only affected by `node.alpha.kubernetes.io/ttl` node annotation." diff --git a/releases/release-1.29/release-notes/maps/pr-120257-map.yaml b/releases/release-1.29/release-notes/maps/pr-120257-map.yaml index b6f90c6cf42..0c812da1275 100644 --- a/releases/release-1.29/release-notes/maps/pr-120257-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120257-map.yaml @@ -1,3 +1,3 @@ -pr: 120257 -releasenote: - text: Promoted `PodHostIPs` condition to `beta`. +pr: 120257 +releasenote: + text: Promoted `PodHostIPs` condition to `beta`. diff --git a/releases/release-1.29/release-notes/maps/pr-120269-map.yaml b/releases/release-1.29/release-notes/maps/pr-120269-map.yaml index 792dfb4c551..8b7bd0a9478 100644 --- a/releases/release-1.29/release-notes/maps/pr-120269-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120269-map.yaml @@ -1,4 +1,4 @@ -pr: 120269 -releasenote: - text: Fixed a bug around restarting init containers in the right order relative - to normal containers with `SidecarContainers` feature enabled. +pr: 120269 +releasenote: + text: Fixed a bug around restarting init containers in the right order relative + to normal containers with `SidecarContainers` feature enabled. diff --git a/releases/release-1.29/release-notes/maps/pr-120274-map.yaml b/releases/release-1.29/release-notes/maps/pr-120274-map.yaml index 37e3c35e2fa..f68a11664c8 100644 --- a/releases/release-1.29/release-notes/maps/pr-120274-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120274-map.yaml @@ -1,6 +1,6 @@ -pr: 120274 -releasenote: - text: |- - The `kube-proxy` command-line documentation was updated to clarify that - `--bind-address` does not actually have anything to do with binding to an - address, and you probably don't actually want to be using it. +pr: 120274 +releasenote: + text: |- + The `kube-proxy` command-line documentation was updated to clarify that + `--bind-address` does not actually have anything to do with binding to an + address, and you probably don't actually want to be using it. diff --git a/releases/release-1.29/release-notes/maps/pr-120275-map.yaml b/releases/release-1.29/release-notes/maps/pr-120275-map.yaml index 3824f51bf69..91a7ad08f18 100644 --- a/releases/release-1.29/release-notes/maps/pr-120275-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120275-map.yaml @@ -1,7 +1,7 @@ -pr: 120275 -releasenote: - text: |- - The `CloudDualStackNodeIPs` feature is now `beta`, meaning that when using - an external cloud provider that has been updated to support the feature, - you can pass comma-separated dual-stack `--node-ips` to `kubelet` and have - the cloud provider take both IPs into account. +pr: 120275 +releasenote: + text: |- + The `CloudDualStackNodeIPs` feature is now `beta`, meaning that when using + an external cloud provider that has been updated to support the feature, + you can pass comma-separated dual-stack `--node-ips` to `kubelet` and have + the cloud provider take both IPs into account. diff --git a/releases/release-1.29/release-notes/maps/pr-120279-map.yaml b/releases/release-1.29/release-notes/maps/pr-120279-map.yaml index 611cce2f393..c8f10904c57 100644 --- a/releases/release-1.29/release-notes/maps/pr-120279-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120279-map.yaml @@ -1,4 +1,4 @@ -pr: 120279 -releasenote: - text: Makefile and scripts now respect `GOTOOLCHAIN` and otherwise ensure `./.go-version` - is used. +pr: 120279 +releasenote: + text: Makefile and scripts now respect `GOTOOLCHAIN` and otherwise ensure `./.go-version` + is used. diff --git a/releases/release-1.29/release-notes/maps/pr-120281-map.yaml b/releases/release-1.29/release-notes/maps/pr-120281-map.yaml index 9423a1237b1..65feb4720f0 100644 --- a/releases/release-1.29/release-notes/maps/pr-120281-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120281-map.yaml @@ -1,4 +1,4 @@ -pr: 120281 -releasenote: - text: Fixed a `v1.28` regression around restarting init containers in the right - order relative to normal containers. +pr: 120281 +releasenote: + text: Fixed a `v1.28` regression around restarting init containers in the right + order relative to normal containers. diff --git a/releases/release-1.29/release-notes/maps/pr-120312-map.yaml b/releases/release-1.29/release-notes/maps/pr-120312-map.yaml index 98cbc3fc193..9fc271f7a66 100644 --- a/releases/release-1.29/release-notes/maps/pr-120312-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120312-map.yaml @@ -1,4 +1,4 @@ -pr: 120312 -releasenote: - text: Added automatic download of the CNI binary in `local-up-cluster.sh`, facilitating - local debugging. +pr: 120312 +releasenote: + text: Added automatic download of the CNI binary in `local-up-cluster.sh`, facilitating + local debugging. diff --git a/releases/release-1.29/release-notes/maps/pr-120327-map.yaml b/releases/release-1.29/release-notes/maps/pr-120327-map.yaml index 2429207456c..b9530835f90 100644 --- a/releases/release-1.29/release-notes/maps/pr-120327-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120327-map.yaml @@ -1,3 +1,3 @@ -pr: 120327 -releasenote: - text: Fixed a `v1.28` regression handling negative index json patches. +pr: 120327 +releasenote: + text: Fixed a `v1.28` regression handling negative index json patches. diff --git a/releases/release-1.29/release-notes/maps/pr-120330-map.yaml b/releases/release-1.29/release-notes/maps/pr-120330-map.yaml index 5d5d4595e08..10a73c2b711 100644 --- a/releases/release-1.29/release-notes/maps/pr-120330-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120330-map.yaml @@ -1,3 +1,3 @@ -pr: 120330 -releasenote: - text: '`NodeStageVolume` calls will now be retried if the CSI node driver is not running.' +pr: 120330 +releasenote: + text: '`NodeStageVolume` calls will now be retried if the CSI node driver is not running.' diff --git a/releases/release-1.29/release-notes/maps/pr-120334-map.yaml b/releases/release-1.29/release-notes/maps/pr-120334-map.yaml index a27e70bf92f..061abd7fcad 100644 --- a/releases/release-1.29/release-notes/maps/pr-120334-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120334-map.yaml @@ -1,8 +1,8 @@ -pr: 120334 -releasenote: - text: Fixed a situation when, sometimes, the scheduler incorrectly placed a pod - in the `unschedulable` queue instead of the `backoff` queue. This happened when - some plugin previously declared the pod as `unschedulable` and then in a later - attempt encounters some other error. Scheduling of that pod then got delayed by - up to five minutes, after which periodic flushing moved the pod back into the - `active` queue. +pr: 120334 +releasenote: + text: Fixed a situation when, sometimes, the scheduler incorrectly placed a pod + in the `unschedulable` queue instead of the `backoff` queue. This happened when + some plugin previously declared the pod as `unschedulable` and then in a later + attempt encounters some other error. Scheduling of that pod then got delayed by + up to five minutes, after which periodic flushing moved the pod back into the + `active` queue. diff --git a/releases/release-1.29/release-notes/maps/pr-120336-map.yaml b/releases/release-1.29/release-notes/maps/pr-120336-map.yaml index 52d8627c802..eb04c76a9b9 100644 --- a/releases/release-1.29/release-notes/maps/pr-120336-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120336-map.yaml @@ -1,4 +1,4 @@ -pr: 120336 -releasenote: - text: Generated `ResourceClaim` names are now more readable because of an additional - hyphen before the random suffix (`<pod name>-<claim name>-<random suffix>`). +pr: 120336 +releasenote: + text: Generated `ResourceClaim` names are now more readable because of an additional + hyphen before the random suffix (`<pod name>-<claim name>-<random suffix>`). diff --git a/releases/release-1.29/release-notes/maps/pr-120338-map.yaml b/releases/release-1.29/release-notes/maps/pr-120338-map.yaml index 02b8d4a8ec3..a633358b9f8 100644 --- a/releases/release-1.29/release-notes/maps/pr-120338-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120338-map.yaml @@ -1,4 +1,4 @@ -pr: 120338 -releasenote: - text: '`k8s.io/dynamic-resource-allocation/controller:` `UnsuitableNodes` can now - handle a mix of allocated and unallocated claims correctly.' +pr: 120338 +releasenote: + text: '`k8s.io/dynamic-resource-allocation/controller:` `UnsuitableNodes` can now + handle a mix of allocated and unallocated claims correctly.' diff --git a/releases/release-1.29/release-notes/maps/pr-120352-map.yaml b/releases/release-1.29/release-notes/maps/pr-120352-map.yaml index 0473e635a32..8ad00adb25d 100644 --- a/releases/release-1.29/release-notes/maps/pr-120352-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120352-map.yaml @@ -1,3 +1,3 @@ -pr: 120352 -releasenote: - text: Updated `distroless-iptables` to use `registry.k8s.io/build-image/distroless-iptables:v0.3.1`. +pr: 120352 +releasenote: + text: Updated `distroless-iptables` to use `registry.k8s.io/build-image/distroless-iptables:v0.3.1`. diff --git a/releases/release-1.29/release-notes/maps/pr-120354-map.yaml b/releases/release-1.29/release-notes/maps/pr-120354-map.yaml index ccda5623875..ffb6b6958fc 100644 --- a/releases/release-1.29/release-notes/maps/pr-120354-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120354-map.yaml @@ -1,6 +1,6 @@ -pr: 120354 -releasenote: - text: '`kube-proxy`: Added an option/flag for configuring the `nf_conntrack_tcp_be_liberal` - sysctl (in the kernel''s netfilter conntrack subsystem). When enabled, `kube-proxy` - will not install the `DROP` rule for invalid conntrack states, which currently - breaks users of asymmetric routing.' +pr: 120354 +releasenote: + text: '`kube-proxy`: Added an option/flag for configuring the `nf_conntrack_tcp_be_liberal` + sysctl (in the kernel''s netfilter conntrack subsystem). When enabled, `kube-proxy` + will not install the `DROP` rule for invalid conntrack states, which currently + breaks users of asymmetric routing.' diff --git a/releases/release-1.29/release-notes/maps/pr-120371-map.yaml b/releases/release-1.29/release-notes/maps/pr-120371-map.yaml index 8164cdb4ca8..02e7a408780 100644 --- a/releases/release-1.29/release-notes/maps/pr-120371-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120371-map.yaml @@ -1,4 +1,4 @@ -pr: 120371 -releasenote: - text: '`kube-controller-manager` help now includes controllers behind a feature - gate in `--controllers` flag.' +pr: 120371 +releasenote: + text: '`kube-controller-manager` help now includes controllers behind a feature + gate in `--controllers` flag.' diff --git a/releases/release-1.29/release-notes/maps/pr-120375-map.yaml b/releases/release-1.29/release-notes/maps/pr-120375-map.yaml index a47bf424a92..c4e327d9f53 100644 --- a/releases/release-1.29/release-notes/maps/pr-120375-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120375-map.yaml @@ -1,3 +1,3 @@ -pr: 120375 -releasenote: - text: Fixed `kube-proxy` panicking on exit when the `Node` object changed its `PodCIDR`. +pr: 120375 +releasenote: + text: Fixed `kube-proxy` panicking on exit when the `Node` object changed its `PodCIDR`. diff --git a/releases/release-1.29/release-notes/maps/pr-120380-map.yaml b/releases/release-1.29/release-notes/maps/pr-120380-map.yaml index 4ac2cec12c2..b04da25f9a0 100644 --- a/releases/release-1.29/release-notes/maps/pr-120380-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120380-map.yaml @@ -1,5 +1,5 @@ -pr: 120380 -releasenote: - text: |- - `kubectl` will not print events if `--show-events=false` argument is passed to - describe PVC subcommand. +pr: 120380 +releasenote: + text: |- + `kubectl` will not print events if `--show-events=false` argument is passed to + describe PVC subcommand. diff --git a/releases/release-1.29/release-notes/maps/pr-120398-map.yaml b/releases/release-1.29/release-notes/maps/pr-120398-map.yaml index baba0cb51cf..6a42f546c35 100644 --- a/releases/release-1.29/release-notes/maps/pr-120398-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120398-map.yaml @@ -1,4 +1,4 @@ -pr: 120398 -releasenote: - text: Fixed an issue where `StatefulSet` might not restart a pod after eviction - or node failure. +pr: 120398 +releasenote: + text: Fixed an issue where `StatefulSet` might not restart a pod after eviction + or node failure. diff --git a/releases/release-1.29/release-notes/maps/pr-120400-map.yaml b/releases/release-1.29/release-notes/maps/pr-120400-map.yaml index 28404c027e6..4946613a198 100644 --- a/releases/release-1.29/release-notes/maps/pr-120400-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120400-map.yaml @@ -1,4 +1,4 @@ -pr: 120400 -releasenote: - text: '`cluster-bootstrap`: improved the security of the functions responsible for - generation and validation of bootstrap tokens.' +pr: 120400 +releasenote: + text: '`cluster-bootstrap`: improved the security of the functions responsible for + generation and validation of bootstrap tokens.' diff --git a/releases/release-1.29/release-notes/maps/pr-120412-map.yaml b/releases/release-1.29/release-notes/maps/pr-120412-map.yaml index 9722be58e47..52320b71cc6 100644 --- a/releases/release-1.29/release-notes/maps/pr-120412-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120412-map.yaml @@ -1,5 +1,5 @@ -pr: 120412 -releasenote: - text: |- - `kube-proxy` will only install the `DROP` rules for invalid `conntrack` states if - the `nf_conntrack_tcp_be_liberal` is not set. +pr: 120412 +releasenote: + text: |- + `kube-proxy` will only install the `DROP` rules for invalid `conntrack` states if + the `nf_conntrack_tcp_be_liberal` is not set. diff --git a/releases/release-1.29/release-notes/maps/pr-120413-map.yaml b/releases/release-1.29/release-notes/maps/pr-120413-map.yaml index 042500b727c..34f8b825a5a 100644 --- a/releases/release-1.29/release-notes/maps/pr-120413-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120413-map.yaml @@ -1,5 +1,5 @@ -pr: 120413 -releasenote: - text: 'Fixed a `v1.28` regression in scheduler: a pod with concurrent events could - incorrectly get moved to the unschedulable queue where it could get stuck until - the next periodic purging after 5 minutes, if there was no other event for it.' +pr: 120413 +releasenote: + text: 'Fixed a `v1.28` regression in scheduler: a pod with concurrent events could + incorrectly get moved to the unschedulable queue where it could get stuck until + the next periodic purging after 5 minutes, if there was no other event for it.' diff --git a/releases/release-1.29/release-notes/maps/pr-120416-map.yaml b/releases/release-1.29/release-notes/maps/pr-120416-map.yaml index 5844e2f1cfd..56113eb23d6 100644 --- a/releases/release-1.29/release-notes/maps/pr-120416-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120416-map.yaml @@ -1,4 +1,4 @@ -pr: 120416 -releasenote: - text: The `--interactive` flag in `kubectl delete` is now visible to all users by - default. +pr: 120416 +releasenote: + text: The `--interactive` flag in `kubectl delete` is now visible to all users by + default. diff --git a/releases/release-1.29/release-notes/maps/pr-120427-map.yaml b/releases/release-1.29/release-notes/maps/pr-120427-map.yaml index aecad02459e..9c7c30e5505 100644 --- a/releases/release-1.29/release-notes/maps/pr-120427-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120427-map.yaml @@ -1,4 +1,4 @@ -pr: 120427 -releasenote: - text: Listed the pods using `<PVC>` as an ephemeral storage volume in "Used by:" - part of the output of `kubectl describe pvc <PVC>` command. +pr: 120427 +releasenote: + text: Listed the pods using `<PVC>` as an ephemeral storage volume in "Used by:" + part of the output of `kubectl describe pvc <PVC>` command. diff --git a/releases/release-1.29/release-notes/maps/pr-120428-map.yaml b/releases/release-1.29/release-notes/maps/pr-120428-map.yaml index a8236bc73dc..0a8c84c0e23 100644 --- a/releases/release-1.29/release-notes/maps/pr-120428-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120428-map.yaml @@ -1,5 +1,5 @@ -pr: 120428 -releasenote: - text: 'DRA: when the scheduler had to deallocate a claim after a node became unsuitable - for a pod, it might have needed more attempts than really necessary. This was - fixed by first disabling allocations.' +pr: 120428 +releasenote: + text: 'DRA: when the scheduler had to deallocate a claim after a node became unsuitable + for a pod, it might have needed more attempts than really necessary. This was + fixed by first disabling allocations.' diff --git a/releases/release-1.29/release-notes/maps/pr-120438-map.yaml b/releases/release-1.29/release-notes/maps/pr-120438-map.yaml index 9ba6f6c6abf..baadcb0b8f9 100644 --- a/releases/release-1.29/release-notes/maps/pr-120438-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120438-map.yaml @@ -1,9 +1,9 @@ -pr: 120438 -releasenote: - text: "Added apiserver identity to the following metrics: \n`apiserver_envelope_encryption_key_id_hash_total`, - `apiserver_envelope_encryption_key_id_hash_last_timestamp_seconds`, `apiserver_envelope_encryption_key_id_hash_status_last_timestamp_seconds`, - `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_success_total`, - `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`.\n\nFixed - bug to surface events for the following metrics: `apiserver_encryption_config_controller_automatic_reload_failures_total`, - `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`, - `apiserver_encryption_config_controller_automatic_reload_success_total`." +pr: 120438 +releasenote: + text: "Added apiserver identity to the following metrics: \n`apiserver_envelope_encryption_key_id_hash_total`, + `apiserver_envelope_encryption_key_id_hash_last_timestamp_seconds`, `apiserver_envelope_encryption_key_id_hash_status_last_timestamp_seconds`, + `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_success_total`, + `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`.\n\nFixed + bug to surface events for the following metrics: `apiserver_encryption_config_controller_automatic_reload_failures_total`, + `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`, + `apiserver_encryption_config_controller_automatic_reload_success_total`." diff --git a/releases/release-1.29/release-notes/maps/pr-120448-map.yaml b/releases/release-1.29/release-notes/maps/pr-120448-map.yaml index 54d5bf15d8c..83c0d26d752 100644 --- a/releases/release-1.29/release-notes/maps/pr-120448-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120448-map.yaml @@ -1,4 +1,4 @@ -pr: 120448 -releasenote: - text: Changed behavior of `kube-proxy` by allowing to set `sysctl` values lower - than the existing one. +pr: 120448 +releasenote: + text: Changed behavior of `kube-proxy` by allowing to set `sysctl` values lower + than the existing one. diff --git a/releases/release-1.29/release-notes/maps/pr-120461-map.yaml b/releases/release-1.29/release-notes/maps/pr-120461-map.yaml index b18dbdd0b18..93ef0b4e8af 100644 --- a/releases/release-1.29/release-notes/maps/pr-120461-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120461-map.yaml @@ -1,4 +1,4 @@ -pr: 120461 -releasenote: - text: Fixed a bug where the device resources allocated to an init container, with - `containerRestartPolicy` of `Always`, were erroneously reused by a regular container. +pr: 120461 +releasenote: + text: Fixed a bug where the device resources allocated to an init container, with + `containerRestartPolicy` of `Always`, were erroneously reused by a regular container. diff --git a/releases/release-1.29/release-notes/maps/pr-120490-map.yaml b/releases/release-1.29/release-notes/maps/pr-120490-map.yaml index 8e02940086d..3e037621131 100644 --- a/releases/release-1.29/release-notes/maps/pr-120490-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120490-map.yaml @@ -1,5 +1,5 @@ -pr: 120490 -releasenote: - text: Added `apiserver_watch_list_duration_seconds` metrics which will measure response - latency distribution in seconds for watchlist requests broken by group, version, - resource and scope. +pr: 120490 +releasenote: + text: Added `apiserver_watch_list_duration_seconds` metrics which will measure response + latency distribution in seconds for watchlist requests broken by group, version, + resource and scope. diff --git a/releases/release-1.29/release-notes/maps/pr-120492-map.yaml b/releases/release-1.29/release-notes/maps/pr-120492-map.yaml index 9e880020af1..f77ebb326ff 100644 --- a/releases/release-1.29/release-notes/maps/pr-120492-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120492-map.yaml @@ -1,5 +1,5 @@ -pr: 120492 -releasenote: - text: |- - Service Controller: will now update load balancer hosts after node's `ProviderID` is - updated. +pr: 120492 +releasenote: + text: |- + Service Controller: will now update load balancer hosts after node's `ProviderID` is + updated. diff --git a/releases/release-1.29/release-notes/maps/pr-120493-map.yaml b/releases/release-1.29/release-notes/maps/pr-120493-map.yaml index c8f284b347f..18532bce9b5 100644 --- a/releases/release-1.29/release-notes/maps/pr-120493-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120493-map.yaml @@ -1,3 +1,3 @@ -pr: 120493 -releasenote: - text: Kubernetes is now built with Go `1.21.1`. +pr: 120493 +releasenote: + text: Kubernetes is now built with Go `1.21.1`. diff --git a/releases/release-1.29/release-notes/maps/pr-120503-map.yaml b/releases/release-1.29/release-notes/maps/pr-120503-map.yaml index 18bff9d06b5..7cdbaca1585 100644 --- a/releases/release-1.29/release-notes/maps/pr-120503-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120503-map.yaml @@ -1,3 +1,3 @@ -pr: 120503 -releasenote: - text: Renamed `apiserver_request_body_sizes` metric to `apiserver_request_body_size_bytes`. +pr: 120503 +releasenote: + text: Renamed `apiserver_request_body_sizes` metric to `apiserver_request_body_size_bytes`. diff --git a/releases/release-1.29/release-notes/maps/pr-120514-map.yaml b/releases/release-1.29/release-notes/maps/pr-120514-map.yaml index ad8425c4d3e..34e716c9d55 100644 --- a/releases/release-1.29/release-notes/maps/pr-120514-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120514-map.yaml @@ -1,3 +1,3 @@ -pr: 120514 -releasenote: - text: '`kubeadm`: improved the logic that checks whether a `systemd` service exists.' +pr: 120514 +releasenote: + text: '`kubeadm`: improved the logic that checks whether a `systemd` service exists.' diff --git a/releases/release-1.29/release-notes/maps/pr-120521-map.yaml b/releases/release-1.29/release-notes/maps/pr-120521-map.yaml index cff9a84ece5..78a39342526 100644 --- a/releases/release-1.29/release-notes/maps/pr-120521-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120521-map.yaml @@ -1,5 +1,5 @@ -pr: 120521 -releasenote: - text: |- - `kubeadm`: removed `system:masters` organization from `apiserver-etcd-client` - certificate. +pr: 120521 +releasenote: + text: |- + `kubeadm`: removed `system:masters` organization from `apiserver-etcd-client` + certificate. diff --git a/releases/release-1.29/release-notes/maps/pr-120527-map.yaml b/releases/release-1.29/release-notes/maps/pr-120527-map.yaml index 9deafc12c8a..319cc2d8c63 100644 --- a/releases/release-1.29/release-notes/maps/pr-120527-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120527-map.yaml @@ -1,3 +1,3 @@ -pr: 120527 -releasenote: - text: Bumped `distroless-iptables` to `0.3.2` based on Go `1.21.1`. +pr: 120527 +releasenote: + text: Bumped `distroless-iptables` to `0.3.2` based on Go `1.21.1`. diff --git a/releases/release-1.29/release-notes/maps/pr-120534-map.yaml b/releases/release-1.29/release-notes/maps/pr-120534-map.yaml index e21fd5bd062..cd5335d22f7 100644 --- a/releases/release-1.29/release-notes/maps/pr-120534-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120534-map.yaml @@ -1,4 +1,4 @@ -pr: 120534 -releasenote: - text: '`dra`: the scheduler plugin now avoids additional scheduling attempts in - some cases by falling back to SSA after a conflict.' +pr: 120534 +releasenote: + text: '`dra`: the scheduler plugin now avoids additional scheduling attempts in + some cases by falling back to SSA after a conflict.' diff --git a/releases/release-1.29/release-notes/maps/pr-120549-map.yaml b/releases/release-1.29/release-notes/maps/pr-120549-map.yaml index e69d16e0ca7..aca5b981006 100644 --- a/releases/release-1.29/release-notes/maps/pr-120549-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120549-map.yaml @@ -1,3 +1,3 @@ -pr: 120549 -releasenote: - text: '`kubeadm`: will now use universal deserializer to decode static pod.' +pr: 120549 +releasenote: + text: '`kubeadm`: will now use universal deserializer to decode static pod.' diff --git a/releases/release-1.29/release-notes/maps/pr-120559-map.yaml b/releases/release-1.29/release-notes/maps/pr-120559-map.yaml index 2c753dc56ca..b2f9cbaaf81 100644 --- a/releases/release-1.29/release-notes/maps/pr-120559-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120559-map.yaml @@ -1,4 +1,4 @@ -pr: 120559 -releasenote: - text: 'e2e framework: retrying after intermittent `apiserver` failures was fixed - in `WaitForPodsResponding`' +pr: 120559 +releasenote: + text: 'e2e framework: retrying after intermittent `apiserver` failures was fixed + in `WaitForPodsResponding`' diff --git a/releases/release-1.29/release-notes/maps/pr-120574-map.yaml b/releases/release-1.29/release-notes/maps/pr-120574-map.yaml index 963cb117981..7aaedca5293 100644 --- a/releases/release-1.29/release-notes/maps/pr-120574-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120574-map.yaml @@ -1,4 +1,4 @@ -pr: 120574 -releasenote: - text: The metrics controlled by the `ComponentSLIs` feature-gate and served at `/metrics/slis` - are now GA and unconditionally enabled. The feature-gate will be removed in `v1.31`. +pr: 120574 +releasenote: + text: The metrics controlled by the `ComponentSLIs` feature-gate and served at `/metrics/slis` + are now GA and unconditionally enabled. The feature-gate will be removed in `v1.31`. diff --git a/releases/release-1.29/release-notes/maps/pr-120577-map.yaml b/releases/release-1.29/release-notes/maps/pr-120577-map.yaml index 1f232e02cb5..f22243fa6ff 100644 --- a/releases/release-1.29/release-notes/maps/pr-120577-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120577-map.yaml @@ -1,4 +1,4 @@ -pr: 120577 -releasenote: - text: Set the resolution for the `job_controller_job_sync_duration_seconds` metric - from `4ms` to `1min`. +pr: 120577 +releasenote: + text: Set the resolution for the `job_controller_job_sync_duration_seconds` metric + from `4ms` to `1min`. diff --git a/releases/release-1.29/release-notes/maps/pr-120583-map.yaml b/releases/release-1.29/release-notes/maps/pr-120583-map.yaml index 463f650d1c7..23dd01bbbd2 100644 --- a/releases/release-1.29/release-notes/maps/pr-120583-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120583-map.yaml @@ -1,5 +1,5 @@ -pr: 120583 -releasenote: - text: Removed `/livez` livezchecks for KMS v1 and v2 to ensure KMS health does not - cause `kube-apiserver` restart. KMS health checks are still in place as a healthz - and readiness checks. +pr: 120583 +releasenote: + text: Removed `/livez` livezchecks for KMS v1 and v2 to ensure KMS health does not + cause `kube-apiserver` restart. KMS health checks are still in place as a healthz + and readiness checks. diff --git a/releases/release-1.29/release-notes/maps/pr-120595-map.yaml b/releases/release-1.29/release-notes/maps/pr-120595-map.yaml index 34a6327e6d8..43d84a1ebc0 100644 --- a/releases/release-1.29/release-notes/maps/pr-120595-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120595-map.yaml @@ -1,4 +1,4 @@ -pr: 120595 -releasenote: - text: Fixed attaching volumes after detach errors. Now volumes that failed to detach - are not treated as attached. Kubernetes will make sure they are fully attached before they can be used by pods. +pr: 120595 +releasenote: + text: Fixed attaching volumes after detach errors. Now volumes that failed to detach + are not treated as attached. Kubernetes will make sure they are fully attached before they can be used by pods. diff --git a/releases/release-1.29/release-notes/maps/pr-120616-map.yaml b/releases/release-1.29/release-notes/maps/pr-120616-map.yaml index 9ad6d498626..9382092ee60 100644 --- a/releases/release-1.29/release-notes/maps/pr-120616-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120616-map.yaml @@ -1,3 +1,3 @@ -pr: 120616 -releasenote: - text: Added support for split image filesystem in kubelet. +pr: 120616 +releasenote: + text: Added support for split image filesystem in kubelet. diff --git a/releases/release-1.29/release-notes/maps/pr-120620-map.yaml b/releases/release-1.29/release-notes/maps/pr-120620-map.yaml index 28ecde48c8a..ae605ac130d 100644 --- a/releases/release-1.29/release-notes/maps/pr-120620-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120620-map.yaml @@ -1,5 +1,5 @@ -pr: 120620 -releasenote: - text: Sidecar termination is now serialized and each sidecar container will receive - a `SIGTERM` after all main containers and later starting sidecar containers have - terminated. +pr: 120620 +releasenote: + text: Sidecar termination is now serialized and each sidecar container will receive + a `SIGTERM` after all main containers and later starting sidecar containers have + terminated. diff --git a/releases/release-1.29/release-notes/maps/pr-120623-map.yaml b/releases/release-1.29/release-notes/maps/pr-120623-map.yaml index 69714a89d76..d0e73d5f646 100644 --- a/releases/release-1.29/release-notes/maps/pr-120623-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120623-map.yaml @@ -1,5 +1,5 @@ -pr: 120623 -releasenote: - text: Fixed a bug where `Services` using finalizers may hold onto `ClusterIP` and/or - `NodePort` allocated resources for longer than expected if the finalizer is removed - using the status subresource. +pr: 120623 +releasenote: + text: Fixed a bug where `Services` using finalizers may hold onto `ClusterIP` and/or + `NodePort` allocated resources for longer than expected if the finalizer is removed + using the status subresource. diff --git a/releases/release-1.29/release-notes/maps/pr-120627-map.yaml b/releases/release-1.29/release-notes/maps/pr-120627-map.yaml index 700055568bf..0fddd688909 100644 --- a/releases/release-1.29/release-notes/maps/pr-120627-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120627-map.yaml @@ -1,3 +1,3 @@ -pr: 120627 -releasenote: - text: '`PersistentVolumeLastPhaseTransitionTime` is now beta and enabled by default.' +pr: 120627 +releasenote: + text: '`PersistentVolumeLastPhaseTransitionTime` is now beta and enabled by default.' diff --git a/releases/release-1.29/release-notes/maps/pr-120649-map.yaml b/releases/release-1.29/release-notes/maps/pr-120649-map.yaml index 013d491899c..e465bd00b3b 100644 --- a/releases/release-1.29/release-notes/maps/pr-120649-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120649-map.yaml @@ -1,4 +1,4 @@ -pr: 120649 -releasenote: - text: Fixed a bug in the cronjob controller where already created jobs might be - missing from the status. +pr: 120649 +releasenote: + text: Fixed a bug in the cronjob controller where already created jobs might be + missing from the status. diff --git a/releases/release-1.29/release-notes/maps/pr-120663-map.yaml b/releases/release-1.29/release-notes/maps/pr-120663-map.yaml index 076d02c195e..e706210dacd 100644 --- a/releases/release-1.29/release-notes/maps/pr-120663-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120663-map.yaml @@ -1,3 +1,3 @@ -pr: 120663 -releasenote: - text: Promoted plugin subcommand resolution feature to `beta`. +pr: 120663 +releasenote: + text: Promoted plugin subcommand resolution feature to `beta`. diff --git a/releases/release-1.29/release-notes/maps/pr-120678-map.yaml b/releases/release-1.29/release-notes/maps/pr-120678-map.yaml index fa86fea7545..d922a0fee89 100644 --- a/releases/release-1.29/release-notes/maps/pr-120678-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120678-map.yaml @@ -1,3 +1,3 @@ -pr: 120678 -releasenote: - text: Fixed `systemLogQuery` service name matching. +pr: 120678 +releasenote: + text: Fixed `systemLogQuery` service name matching. diff --git a/releases/release-1.29/release-notes/maps/pr-120680-map.yaml b/releases/release-1.29/release-notes/maps/pr-120680-map.yaml index 17c45d8e342..17d01c6c9e5 100644 --- a/releases/release-1.29/release-notes/maps/pr-120680-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120680-map.yaml @@ -1,5 +1,5 @@ -pr: 120680 -releasenote: - text: Metric buckets for `pod_start_duration_seconds` were changed to `{0.5, 1, - 2, 3, 4, 5, 6, 8, 10, 20, 30, 45, 60, 120, 180, 240, 300, 360, 480, 600, 900, - 1200, 1800, 2700, 3600}`. +pr: 120680 +releasenote: + text: Metric buckets for `pod_start_duration_seconds` were changed to `{0.5, 1, + 2, 3, 4, 5, 6, 8, 10, 20, 30, 45, 60, 120, 180, 240, 300, 360, 480, 600, 900, + 1200, 1800, 2700, 3600}`. diff --git a/releases/release-1.29/release-notes/maps/pr-120682-map.yaml b/releases/release-1.29/release-notes/maps/pr-120682-map.yaml index d8a8aee16e9..ec8130bfa60 100644 --- a/releases/release-1.29/release-notes/maps/pr-120682-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120682-map.yaml @@ -1,14 +1,14 @@ -pr: 120682 -releasenote: - text: '`kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature - gate is now `beta` and enabled by default. When enabled, legacy auto-generated - service account token secrets are auto-labeled with a `kubernetes.io/legacy-token-invalid-since` - label if the credentials have not been used in the time specified by `--legacy-service-account-token-clean-up-period` - (defaulting to one year), **and** are referenced from the `.secrets` list of a - ServiceAccount object, **and** are not referenced from pods. This label causes - the authentication layer to reject use of the credentials. After being labeled - as invalid, if the time specified by `--legacy-service-account-token-clean-up-period` - (defaulting to one year) passes without the credential being used, the secret - is automatically deleted. Secrets labeled as invalid which have not been auto-deleted - yet can be re-activated by removing the `kubernetes.io/legacy-token-invalid-since` - label.' +pr: 120682 +releasenote: + text: '`kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature + gate is now `beta` and enabled by default. When enabled, legacy auto-generated + service account token secrets are auto-labeled with a `kubernetes.io/legacy-token-invalid-since` + label if the credentials have not been used in the time specified by `--legacy-service-account-token-clean-up-period` + (defaulting to one year), **and** are referenced from the `.secrets` list of a + ServiceAccount object, **and** are not referenced from pods. This label causes + the authentication layer to reject use of the credentials. After being labeled + as invalid, if the time specified by `--legacy-service-account-token-clean-up-period` + (defaulting to one year) passes without the credential being used, the secret + is automatically deleted. Secrets labeled as invalid which have not been auto-deleted + yet can be re-activated by removing the `kubernetes.io/legacy-token-invalid-since` + label.' diff --git a/releases/release-1.29/release-notes/maps/pr-120707-map.yaml b/releases/release-1.29/release-notes/maps/pr-120707-map.yaml index cdfcb6e3af5..86c07964338 100644 --- a/releases/release-1.29/release-notes/maps/pr-120707-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120707-map.yaml @@ -1,3 +1,3 @@ -pr: 120707 -releasenote: - text: Client-side apply will now use OpenAPI `v3` by default. +pr: 120707 +releasenote: + text: Client-side apply will now use OpenAPI `v3` by default. diff --git a/releases/release-1.29/release-notes/maps/pr-120723-map.yaml b/releases/release-1.29/release-notes/maps/pr-120723-map.yaml index 216654d4cbd..22cb20457e1 100644 --- a/releases/release-1.29/release-notes/maps/pr-120723-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120723-map.yaml @@ -1,4 +1,4 @@ -pr: 120723 -releasenote: - text: Fixed issue with incremental id generation for `loadbalancer` and `endpoint` - in `kubeproxy` mock test framework. +pr: 120723 +releasenote: + text: Fixed issue with incremental id generation for `loadbalancer` and `endpoint` + in `kubeproxy` mock test framework. diff --git a/releases/release-1.29/release-notes/maps/pr-120729-map.yaml b/releases/release-1.29/release-notes/maps/pr-120729-map.yaml index 1999bd92747..5e75ea55bf7 100644 --- a/releases/release-1.29/release-notes/maps/pr-120729-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120729-map.yaml @@ -1,4 +1,4 @@ -pr: 120729 -releasenote: - text: '`client-go`: `k8s.io/client-go/tools` events and record packages now have new - APIs for specifying a context and logger.' +pr: 120729 +releasenote: + text: '`client-go`: `k8s.io/client-go/tools` events and record packages now have new + APIs for specifying a context and logger.' diff --git a/releases/release-1.29/release-notes/maps/pr-120731-map.yaml b/releases/release-1.29/release-notes/maps/pr-120731-map.yaml index f9fdc0c36c1..4ba667b4ea5 100644 --- a/releases/release-1.29/release-notes/maps/pr-120731-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120731-map.yaml @@ -1,4 +1,4 @@ -pr: 120731 -releasenote: - text: Fixed the issue where pod with ordinal number lower than the rolling partitioning - number was being deleted. It was coming up with updated image. +pr: 120731 +releasenote: + text: Fixed the issue where pod with ordinal number lower than the rolling partitioning + number was being deleted. It was coming up with updated image. diff --git a/releases/release-1.29/release-notes/maps/pr-120735-map.yaml b/releases/release-1.29/release-notes/maps/pr-120735-map.yaml index e03f5a9ff9b..c28cff7b232 100644 --- a/releases/release-1.29/release-notes/maps/pr-120735-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120735-map.yaml @@ -1,4 +1,4 @@ -pr: 120735 -releasenote: - text: Certain `requestBody` parameters in the OpenAPI `v3` are now correctly marked - as required. +pr: 120735 +releasenote: + text: Certain `requestBody` parameters in the OpenAPI `v3` are now correctly marked + as required. diff --git a/releases/release-1.29/release-notes/maps/pr-120736-map.yaml b/releases/release-1.29/release-notes/maps/pr-120736-map.yaml index c686f3c39e7..850f2c20c55 100644 --- a/releases/release-1.29/release-notes/maps/pr-120736-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120736-map.yaml @@ -1,7 +1,7 @@ -pr: 120736 -releasenote: - text: |- - Fixed an issue where the `vsphere` cloud provider would not trust a certificate if: - - The issuer of the certificate was unknown (`x509.UnknownAuthorityError`) - - The requested name did not match the set of authorized names (`x509.HostnameError`) - - The error surfaced after attempting a connection contained one of the substrings: "certificate is not trusted" or "certificate signed by unknown authority". +pr: 120736 +releasenote: + text: |- + Fixed an issue where the `vsphere` cloud provider would not trust a certificate if: + - The issuer of the certificate was unknown (`x509.UnknownAuthorityError`) + - The requested name did not match the set of authorized names (`x509.HostnameError`) + - The error surfaced after attempting a connection contained one of the substrings: "certificate is not trusted" or "certificate signed by unknown authority". diff --git a/releases/release-1.29/release-notes/maps/pr-120757-map.yaml b/releases/release-1.29/release-notes/maps/pr-120757-map.yaml index 03af118bd98..607473f961e 100644 --- a/releases/release-1.29/release-notes/maps/pr-120757-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120757-map.yaml @@ -1,4 +1,4 @@ -pr: 120757 -releasenote: - text: 'Updated `kube-openapi` to remove invalid defaults: OpenAPI spec no longer - includes default of `{}` for certain fields where it did not make sense.' +pr: 120757 +releasenote: + text: 'Updated `kube-openapi` to remove invalid defaults: OpenAPI spec no longer + includes default of `{}` for certain fields where it did not make sense.' diff --git a/releases/release-1.29/release-notes/maps/pr-120777-map.yaml b/releases/release-1.29/release-notes/maps/pr-120777-map.yaml index 3719956c8c2..f3fc291e0af 100644 --- a/releases/release-1.29/release-notes/maps/pr-120777-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120777-map.yaml @@ -1,3 +1,3 @@ -pr: 120777 -releasenote: - text: Reintroduced `resourcequota.NewMonitor` constructor for other consumers. +pr: 120777 +releasenote: + text: Reintroduced `resourcequota.NewMonitor` constructor for other consumers. diff --git a/releases/release-1.29/release-notes/maps/pr-120779-map.yaml b/releases/release-1.29/release-notes/maps/pr-120779-map.yaml index b9ee6773b02..11b654462ca 100644 --- a/releases/release-1.29/release-notes/maps/pr-120779-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120779-map.yaml @@ -1,4 +1,4 @@ -pr: 120779 -releasenote: - text: No-op and GC related updates to cluster trust bundles no longer require attest - authorization when the `ClusterTrustBundleAttest` plugin is enabled. +pr: 120779 +releasenote: + text: No-op and GC related updates to cluster trust bundles no longer require attest + authorization when the `ClusterTrustBundleAttest` plugin is enabled. diff --git a/releases/release-1.29/release-notes/maps/pr-120780-map.yaml b/releases/release-1.29/release-notes/maps/pr-120780-map.yaml index 28f8dadd1a0..0ff7676c93a 100644 --- a/releases/release-1.29/release-notes/maps/pr-120780-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120780-map.yaml @@ -1,7 +1,7 @@ -pr: 120780 -releasenote: - text: |- - `kube-apiserver` added: - - `alpha` support (guarded by the `ServiceAccountTokenJTI` feature gate) for adding a `jti` (JWT ID) claim to service account tokens it issues, adding an `authentication.kubernetes.io/credential-id` audit annotation in audit logs when the tokens are issued, and `authentication.kubernetes.io/credential-id` entry in the extra user info when the token is used to authenticate. - - `alpha` support (guarded by the `ServiceAccountTokenPodNodeInfo` feature gate) for including the node name (and uid, if the node exists) as additional claims in service account tokens it issues which are bound to pods, and `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` extra user info when the token is used to authenticate. - - `alpha` support (guarded by the `ServiceAccountTokenNodeBinding` feature gate) for allowing `TokenRequests` that bind tokens directly to nodes, and (guarded by the ServiceAccountTokenNodeBindingValidation feature gate) for validating the node name and uid still exist when the token is used. +pr: 120780 +releasenote: + text: |- + `kube-apiserver` added: + - `alpha` support (guarded by the `ServiceAccountTokenJTI` feature gate) for adding a `jti` (JWT ID) claim to service account tokens it issues, adding an `authentication.kubernetes.io/credential-id` audit annotation in audit logs when the tokens are issued, and `authentication.kubernetes.io/credential-id` entry in the extra user info when the token is used to authenticate. + - `alpha` support (guarded by the `ServiceAccountTokenPodNodeInfo` feature gate) for including the node name (and uid, if the node exists) as additional claims in service account tokens it issues which are bound to pods, and `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` extra user info when the token is used to authenticate. + - `alpha` support (guarded by the `ServiceAccountTokenNodeBinding` feature gate) for allowing `TokenRequests` that bind tokens directly to nodes, and (guarded by the ServiceAccountTokenNodeBindingValidation feature gate) for validating the node name and uid still exist when the token is used. diff --git a/releases/release-1.29/release-notes/maps/pr-120784-map.yaml b/releases/release-1.29/release-notes/maps/pr-120784-map.yaml index 702658209a7..c0a4606b58b 100644 --- a/releases/release-1.29/release-notes/maps/pr-120784-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120784-map.yaml @@ -1,4 +1,4 @@ -pr: 120784 -releasenote: - text: Fixed a bug where containers would not start on `cgroupv2` systems where `swap` - is disabled. +pr: 120784 +releasenote: + text: Fixed a bug where containers would not start on `cgroupv2` systems where `swap` + is disabled. diff --git a/releases/release-1.29/release-notes/maps/pr-120788-map.yaml b/releases/release-1.29/release-notes/maps/pr-120788-map.yaml index bd686accd20..109f4616b92 100644 --- a/releases/release-1.29/release-notes/maps/pr-120788-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120788-map.yaml @@ -1,8 +1,8 @@ -pr: 120788 -releasenote: - text: Stopped accepting component configuration for `kube-proxy` and `kubelet` during - `kubeadm upgrade plan --config`. This was a legacy behavior that was not well - supported for upgrades and could be used only at the plan stage to determine if - the configuration for these components stored in the cluster needs manual version - migration. In the future, `kubeadm` will attempt alternative component config - migration approaches. +pr: 120788 +releasenote: + text: Stopped accepting component configuration for `kube-proxy` and `kubelet` during + `kubeadm upgrade plan --config`. This was a legacy behavior that was not well + supported for upgrades and could be used only at the plan stage to determine if + the configuration for these components stored in the cluster needs manual version + migration. In the future, `kubeadm` will attempt alternative component config + migration approaches. diff --git a/releases/release-1.29/release-notes/maps/pr-120808-map.yaml b/releases/release-1.29/release-notes/maps/pr-120808-map.yaml index 0d927473c8f..f536fb13f2d 100644 --- a/releases/release-1.29/release-notes/maps/pr-120808-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120808-map.yaml @@ -1,4 +1,4 @@ -pr: 120808 -releasenote: - text: Added options for configuring `nf_conntrack_udp_timeout`, and `nf_conntrack_udp_timeout_stream` - variables of netfilter conntrack subsystem. +pr: 120808 +releasenote: + text: Added options for configuring `nf_conntrack_udp_timeout`, and `nf_conntrack_udp_timeout_stream` + variables of netfilter conntrack subsystem. diff --git a/releases/release-1.29/release-notes/maps/pr-120814-map.yaml b/releases/release-1.29/release-notes/maps/pr-120814-map.yaml index d11b88ef07f..094855dfb53 100644 --- a/releases/release-1.29/release-notes/maps/pr-120814-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120814-map.yaml @@ -1,4 +1,4 @@ -pr: 120814 -releasenote: - text: Fixed regression with adding aggregated `APIservices` panicking and affected - health check introduced in release `v1.28.0`. +pr: 120814 +releasenote: + text: Fixed regression with adding aggregated `APIservices` panicking and affected + health check introduced in release `v1.28.0`. diff --git a/releases/release-1.29/release-notes/maps/pr-120825-map.yaml b/releases/release-1.29/release-notes/maps/pr-120825-map.yaml index 7f65923d846..440a5950f79 100644 --- a/releases/release-1.29/release-notes/maps/pr-120825-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120825-map.yaml @@ -1,9 +1,9 @@ -pr: 120825 -releasenote: - text: '`kubeadm`: will now allow deploying a kubelet that is 3 versions older than the - version of `kubeadm` (N-3). This aligns with the recent change made by SIG Architecture - that extends the support skew between the control plane and kubelets. Tolerate - this new kubelet skew for the commands `init`, `join` and `upgrade`. Note that - if the `kubeadm` user applies a control plane version that is older than the `kubeadm` - version (N-1 maximum) then the skew between the kubelet and control plane would - become a maximum of N-2.' +pr: 120825 +releasenote: + text: '`kubeadm`: will now allow deploying a kubelet that is 3 versions older than the + version of `kubeadm` (N-3). This aligns with the recent change made by SIG Architecture + that extends the support skew between the control plane and kubelets. Tolerate + this new kubelet skew for the commands `init`, `join` and `upgrade`. Note that + if the `kubeadm` user applies a control plane version that is older than the `kubeadm` + version (N-1 maximum) then the skew between the kubelet and control plane would + become a maximum of N-2.' diff --git a/releases/release-1.29/release-notes/maps/pr-120828-map.yaml b/releases/release-1.29/release-notes/maps/pr-120828-map.yaml index 89c2eb348e0..cf13e18be0c 100644 --- a/releases/release-1.29/release-notes/maps/pr-120828-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120828-map.yaml @@ -1,4 +1,4 @@ -pr: 120828 -releasenote: - text: '`kubeadm`: Fixed the bug where it always did CRI detection when `--config` - was passed, even if it is not required by the subcommand.' +pr: 120828 +releasenote: + text: '`kubeadm`: Fixed the bug where it always did CRI detection when `--config` + was passed, even if it is not required by the subcommand.' diff --git a/releases/release-1.29/release-notes/maps/pr-120843-map.yaml b/releases/release-1.29/release-notes/maps/pr-120843-map.yaml index bf95ed758aa..07885bbf46f 100644 --- a/releases/release-1.29/release-notes/maps/pr-120843-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120843-map.yaml @@ -1,4 +1,4 @@ -pr: 120843 -releasenote: - text: The `kube-apiserver` will now expose four new metrics to inform about errors - on the clusterIP and nodePort allocation logic. +pr: 120843 +releasenote: + text: The `kube-apiserver` will now expose four new metrics to inform about errors + on the clusterIP and nodePort allocation logic. diff --git a/releases/release-1.29/release-notes/maps/pr-120861-map.yaml b/releases/release-1.29/release-notes/maps/pr-120861-map.yaml index 0a76f596bd2..72924edf430 100644 --- a/releases/release-1.29/release-notes/maps/pr-120861-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120861-map.yaml @@ -1,4 +1,4 @@ -pr: 120861 -releasenote: - text: '`RetroactiveDefaultStorageClass` feature gate that graduated to GA in `v1.28` - and was unconditionally enabled has been removed in `v1.29`.' +pr: 120861 +releasenote: + text: '`RetroactiveDefaultStorageClass` feature gate that graduated to GA in `v1.28` + and was unconditionally enabled has been removed in `v1.29`.' diff --git a/releases/release-1.29/release-notes/maps/pr-120868-map.yaml b/releases/release-1.29/release-notes/maps/pr-120868-map.yaml index a747900f2bd..a4a718f8693 100644 --- a/releases/release-1.29/release-notes/maps/pr-120868-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120868-map.yaml @@ -1,4 +1,4 @@ -pr: 120868 -releasenote: - text: '`k8s.io/dynamic-resource-allocation`: DRA drivers updating to this release - are compatible with Kubernetes `v1.27` and `v1.28`.' +pr: 120868 +releasenote: + text: '`k8s.io/dynamic-resource-allocation`: DRA drivers updating to this release + are compatible with Kubernetes `v1.27` and `v1.28`.' diff --git a/releases/release-1.29/release-notes/maps/pr-120871-map.yaml b/releases/release-1.29/release-notes/maps/pr-120871-map.yaml index 8f07452137b..737790b1047 100644 --- a/releases/release-1.29/release-notes/maps/pr-120871-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120871-map.yaml @@ -1,6 +1,6 @@ -pr: 120871 -releasenote: - text: |- - `k8s.io/dynamic-resource-allocation`: can now handle a `selected` node which isn't listed - as `potential` node. +pr: 120871 +releasenote: + text: |- + `k8s.io/dynamic-resource-allocation`: can now handle a `selected` node which isn't listed + as `potential` node. \ No newline at end of file diff --git a/releases/release-1.29/release-notes/maps/pr-120877-map.yaml b/releases/release-1.29/release-notes/maps/pr-120877-map.yaml index 3eb0fa7ccbb..d2f0fbdff9f 100644 --- a/releases/release-1.29/release-notes/maps/pr-120877-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120877-map.yaml @@ -1,4 +1,4 @@ -pr: 120877 -releasenote: - text: 'Fixed a regression (`CLIENTSET_PKG: unbound variable`) when invoking deprecated - `generate-groups.sh` script.' +pr: 120877 +releasenote: + text: 'Fixed a regression (`CLIENTSET_PKG: unbound variable`) when invoking deprecated + `generate-groups.sh` script.' diff --git a/releases/release-1.29/release-notes/maps/pr-120914-map.yaml b/releases/release-1.29/release-notes/maps/pr-120914-map.yaml index 6b58640c600..171a008cda9 100644 --- a/releases/release-1.29/release-notes/maps/pr-120914-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120914-map.yaml @@ -1,3 +1,3 @@ -pr: 120914 -releasenote: - text: Added container filesystem to the `ImageFsInfoResponse`. +pr: 120914 +releasenote: + text: Added container filesystem to the `ImageFsInfoResponse`. diff --git a/releases/release-1.29/release-notes/maps/pr-120942-map.yaml b/releases/release-1.29/release-notes/maps/pr-120942-map.yaml index 431f9c95d71..f57c3eaa5d3 100644 --- a/releases/release-1.29/release-notes/maps/pr-120942-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120942-map.yaml @@ -1,4 +1,4 @@ -pr: 120942 -releasenote: - text: Fixed a regression in the kubelet's behavior while creating a container when - the `EventedPLEG` feature gate is enabled. +pr: 120942 +releasenote: + text: Fixed a regression in the kubelet's behavior while creating a container when + the `EventedPLEG` feature gate is enabled. diff --git a/releases/release-1.29/release-notes/maps/pr-120954-map.yaml b/releases/release-1.29/release-notes/maps/pr-120954-map.yaml index 1ce08765ce0..bfebbfa4d3c 100644 --- a/releases/release-1.29/release-notes/maps/pr-120954-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-120954-map.yaml @@ -1,4 +1,4 @@ -pr: 120954 -releasenote: - text: Added the `DisableNodeKubeProxyVersion` feature gate. If `DisableNodeKubeProxyVersion` - is enabled, the `kubeProxyVersion` field is not set. +pr: 120954 +releasenote: + text: Added the `DisableNodeKubeProxyVersion` feature gate. If `DisableNodeKubeProxyVersion` + is enabled, the `kubeProxyVersion` field is not set. diff --git a/releases/release-1.29/release-notes/maps/pr-121001-map.yaml b/releases/release-1.29/release-notes/maps/pr-121001-map.yaml index 42562b1cd26..a8c786bf3f3 100644 --- a/releases/release-1.29/release-notes/maps/pr-121001-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121001-map.yaml @@ -1,4 +1,4 @@ -pr: 121001 -releasenote: - text: '`ValidatingAdmissionPolicy` now preserves types of composition variables, - and raises type-related errors early.' +pr: 121001 +releasenote: + text: '`ValidatingAdmissionPolicy` now preserves types of composition variables, + and raises type-related errors early.' diff --git a/releases/release-1.29/release-notes/maps/pr-121008-map.yaml b/releases/release-1.29/release-notes/maps/pr-121008-map.yaml index 82316e0b962..337283b7b36 100644 --- a/releases/release-1.29/release-notes/maps/pr-121008-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121008-map.yaml @@ -1,6 +1,6 @@ -pr: 121008 -releasenote: - text: |- - Fixed a regression in `kube-proxy` where it might refuse to start if given - single-stack `IPv6` configuration options on a node that has both `IPv4` and - `IPv6` IPs. +pr: 121008 +releasenote: + text: |- + Fixed a regression in `kube-proxy` where it might refuse to start if given + single-stack `IPv6` configuration options on a node that has both `IPv4` and + `IPv6` IPs. diff --git a/releases/release-1.29/release-notes/maps/pr-121016-map.yaml b/releases/release-1.29/release-notes/maps/pr-121016-map.yaml index c2dceb9d585..00b22d06aa5 100644 --- a/releases/release-1.29/release-notes/maps/pr-121016-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121016-map.yaml @@ -1,4 +1,4 @@ -pr: 121016 -releasenote: - text: '`CRDValidationRatcheting`: added support for ratcheting `x-kubernetes-validations` - in schema.' +pr: 121016 +releasenote: + text: '`CRDValidationRatcheting`: added support for ratcheting `x-kubernetes-validations` + in schema.' diff --git a/releases/release-1.29/release-notes/maps/pr-121021-map.yaml b/releases/release-1.29/release-notes/maps/pr-121021-map.yaml index 0cd827adb21..df29cf649df 100644 --- a/releases/release-1.29/release-notes/maps/pr-121021-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121021-map.yaml @@ -1,3 +1,3 @@ -pr: 121021 -releasenote: - text: Kubernetes is now built with Go `1.21.2`. +pr: 121021 +releasenote: + text: Kubernetes is now built with Go `1.21.2`. diff --git a/releases/release-1.29/release-notes/maps/pr-121028-map.yaml b/releases/release-1.29/release-notes/maps/pr-121028-map.yaml index 15c05dfa094..be78d99d7ed 100644 --- a/releases/release-1.29/release-notes/maps/pr-121028-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121028-map.yaml @@ -1,5 +1,5 @@ -pr: 121028 -releasenote: - text: '`kubelet` , when using `--cloud-provider=external`, will now initialize the - node addresses with the value of `--node-ip` , if it exists, or waits for the - cloud provider to assign the addresses.' +pr: 121028 +releasenote: + text: '`kubelet` , when using `--cloud-provider=external`, will now initialize the + node addresses with the value of `--node-ip` , if it exists, or waits for the + cloud provider to assign the addresses.' diff --git a/releases/release-1.29/release-notes/maps/pr-121034-map.yaml b/releases/release-1.29/release-notes/maps/pr-121034-map.yaml index f40e6ec7ddb..9b91e6c59c2 100644 --- a/releases/release-1.29/release-notes/maps/pr-121034-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121034-map.yaml @@ -1,4 +1,4 @@ -pr: 121034 -releasenote: - text: Added `optionalOldSelf` to `x-kubernetes-validations` to support ratcheting - CRD schema constraints. +pr: 121034 +releasenote: + text: Added `optionalOldSelf` to `x-kubernetes-validations` to support ratcheting + CRD schema constraints. diff --git a/releases/release-1.29/release-notes/maps/pr-121041-map.yaml b/releases/release-1.29/release-notes/maps/pr-121041-map.yaml index 5c67a2a48a7..37ef9bb08d5 100644 --- a/releases/release-1.29/release-notes/maps/pr-121041-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121041-map.yaml @@ -1,4 +1,4 @@ -pr: 121041 -releasenote: - text: '`kubelet` now emits a metric for end-to-end pod startup latency, including - image pull.' +pr: 121041 +releasenote: + text: '`kubelet` now emits a metric for end-to-end pod startup latency, including + image pull.' diff --git a/releases/release-1.29/release-notes/maps/pr-121046-map.yaml b/releases/release-1.29/release-notes/maps/pr-121046-map.yaml index 0b57693f76f..405b6551839 100644 --- a/releases/release-1.29/release-notes/maps/pr-121046-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121046-map.yaml @@ -1,20 +1,20 @@ -pr: 121046 -releasenote: - text: |- - `kube-proxy` now has a new nftables-based mode, available by running - - `kube-proxy --feature-gates NFTablesProxyMode=true --proxy-mode nftables` - - This is currently an alpha-level feature and while it probably will not - eat your data, it may nibble at it a bit. (It passes e2e testing but has - not yet seen real-world use.) - - At this point it should be functionally mostly identical to the iptables - mode, except that it does not (and will not) support Service NodePorts on - 127.0.0.1. (Also note that there are currently no command-line arguments - for the nftables-specific config; you will need to use a config file if - you want to set the equivalent of any of the `--iptables-xxx` options.) - - As this code is still very new, it has not been heavily optimized yet; - while it is expected to _eventually_ have better performance than the - iptables backend, very little performance testing has been done so far. +pr: 121046 +releasenote: + text: |- + `kube-proxy` now has a new nftables-based mode, available by running + + `kube-proxy --feature-gates NFTablesProxyMode=true --proxy-mode nftables` + + This is currently an alpha-level feature and while it probably will not + eat your data, it may nibble at it a bit. (It passes e2e testing but has + not yet seen real-world use.) + + At this point it should be functionally mostly identical to the iptables + mode, except that it does not (and will not) support Service NodePorts on + 127.0.0.1. (Also note that there are currently no command-line arguments + for the nftables-specific config; you will need to use a config file if + you want to set the equivalent of any of the `--iptables-xxx` options.) + + As this code is still very new, it has not been heavily optimized yet; + while it is expected to _eventually_ have better performance than the + iptables backend, very little performance testing has been done so far. diff --git a/releases/release-1.29/release-notes/maps/pr-121059-map.yaml b/releases/release-1.29/release-notes/maps/pr-121059-map.yaml index 76fb6deb52b..c9aadaa07c2 100644 --- a/releases/release-1.29/release-notes/maps/pr-121059-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121059-map.yaml @@ -1,5 +1,5 @@ -pr: 121059 -releasenote: - text: |- - When the kubelet fails to assign CPUs to a Pod because there less available CPUs than the Pod requests, the error message changed from - `not enough cpus available to satisfy request` to `not enough cpus available to satisfy request: <num_requested> requested, only <num_available> available`. +pr: 121059 +releasenote: + text: |- + When the kubelet fails to assign CPUs to a Pod because there less available CPUs than the Pod requests, the error message changed from + `not enough cpus available to satisfy request` to `not enough cpus available to satisfy request: <num_requested> requested, only <num_available> available`. diff --git a/releases/release-1.29/release-notes/maps/pr-121065-map.yaml b/releases/release-1.29/release-notes/maps/pr-121065-map.yaml index 6f624f19aab..c994151dabd 100644 --- a/releases/release-1.29/release-notes/maps/pr-121065-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121065-map.yaml @@ -1,5 +1,5 @@ -pr: 121065 -releasenote: - text: '`k8s.io/dynamic-resource-allocation/controller`: `ResourceClaimParameters` - and `ResourceClassParameters` validation errors are now visible on `ResourceClaim`, - `ResourceClass` and `Pod`.' +pr: 121065 +releasenote: + text: '`k8s.io/dynamic-resource-allocation/controller`: `ResourceClaimParameters` + and `ResourceClassParameters` validation errors are now visible on `ResourceClaim`, + `ResourceClass` and `Pod`.' diff --git a/releases/release-1.29/release-notes/maps/pr-121073-map.yaml b/releases/release-1.29/release-notes/maps/pr-121073-map.yaml index 1357989c281..466f27145d5 100644 --- a/releases/release-1.29/release-notes/maps/pr-121073-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121073-map.yaml @@ -1,3 +1,3 @@ -pr: 121073 -releasenote: - text: Bumped `distroless-iptables` to `0.3.3` based on Go `1.21.2`. +pr: 121073 +releasenote: + text: Bumped `distroless-iptables` to `0.3.3` based on Go `1.21.2`. diff --git a/releases/release-1.29/release-notes/maps/pr-121077-map.yaml b/releases/release-1.29/release-notes/maps/pr-121077-map.yaml index c071d2db60f..dcce55b4122 100644 --- a/releases/release-1.29/release-notes/maps/pr-121077-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121077-map.yaml @@ -1,3 +1,3 @@ -pr: 121077 -releasenote: - text: Graduated the `ReadWriteOncePod` feature gate to `GA`. +pr: 121077 +releasenote: + text: Graduated the `ReadWriteOncePod` feature gate to `GA`. diff --git a/releases/release-1.29/release-notes/maps/pr-121078-map.yaml b/releases/release-1.29/release-notes/maps/pr-121078-map.yaml index 1c676abdde9..6cfc0f9abe6 100644 --- a/releases/release-1.29/release-notes/maps/pr-121078-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121078-map.yaml @@ -1,3 +1,3 @@ -pr: 121078 -releasenote: - text: Added CEL expressions to `v1alpha1 AuthenticationConfiguration`. +pr: 121078 +releasenote: + text: Added CEL expressions to `v1alpha1 AuthenticationConfiguration`. diff --git a/releases/release-1.29/release-notes/maps/pr-121083-map.yaml b/releases/release-1.29/release-notes/maps/pr-121083-map.yaml index 0e273c889dd..60445c2dcd1 100644 --- a/releases/release-1.29/release-notes/maps/pr-121083-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121083-map.yaml @@ -1,8 +1,8 @@ -pr: 121083 -releasenote: - text: Previous versions of Kubernetes on Google Cloud required that workloads (e.g. - Deployments, DaemonSets, etc.) which used `PersistentDisk` volumes were using - them in read-only mode. This validation provided very little value at relatively - host implementation cost, and will no longer be validated. If this is a problem - for a specific use-case, please set the `SkipReadOnlyValidationGCE` gate to false - to re-enable the validation, and file a Kubernetes bug with details. +pr: 121083 +releasenote: + text: Previous versions of Kubernetes on Google Cloud required that workloads (e.g. + Deployments, DaemonSets, etc.) which used `PersistentDisk` volumes were using + them in read-only mode. This validation provided very little value at relatively + host implementation cost, and will no longer be validated. If this is a problem + for a specific use-case, please set the `SkipReadOnlyValidationGCE` gate to false + to re-enable the validation, and file a Kubernetes bug with details. diff --git a/releases/release-1.29/release-notes/maps/pr-121089-map.yaml b/releases/release-1.29/release-notes/maps/pr-121089-map.yaml index 77d5e3a4c70..628c6e8ae35 100644 --- a/releases/release-1.29/release-notes/maps/pr-121089-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121089-map.yaml @@ -1,6 +1,6 @@ -pr: 121089 -releasenote: - text: |- - The `flowcontrol.apiserver.k8s.io/v1beta3` `FlowSchema` and `PriorityLevelConfiguration` APIs has been promoted to `flowcontrol.apiserver.k8s.io/v1`, with the following changes: - - `PriorityLevelConfiguration`: the `.spec.limited.nominalConcurrencyShares` field defaults to `30` only if the field is omitted (v1beta3 also defaulted an explicit `0` value to `30`). Specifying an explicit `0` value is not allowed in the `v1` version in v1.29 to ensure compatibility with `v1.28` API servers. In `v1.30`, explicit `0` values will be allowed in this field in the `v1` API. - The `flowcontrol.apiserver.k8s.io/v1beta3` APIs are deprecated and will no longer be served in v1.32. All existing objects are available via the `v1` APIs. Transition clients and manifests to use the `v1` APIs before upgrading to `v1.32`. +pr: 121089 +releasenote: + text: |- + The `flowcontrol.apiserver.k8s.io/v1beta3` `FlowSchema` and `PriorityLevelConfiguration` APIs has been promoted to `flowcontrol.apiserver.k8s.io/v1`, with the following changes: + - `PriorityLevelConfiguration`: the `.spec.limited.nominalConcurrencyShares` field defaults to `30` only if the field is omitted (v1beta3 also defaulted an explicit `0` value to `30`). Specifying an explicit `0` value is not allowed in the `v1` version in v1.29 to ensure compatibility with `v1.28` API servers. In `v1.30`, explicit `0` values will be allowed in this field in the `v1` API. + The `flowcontrol.apiserver.k8s.io/v1beta3` APIs are deprecated and will no longer be served in v1.32. All existing objects are available via the `v1` APIs. Transition clients and manifests to use the `v1` APIs before upgrading to `v1.32`. diff --git a/releases/release-1.29/release-notes/maps/pr-121091-map.yaml b/releases/release-1.29/release-notes/maps/pr-121091-map.yaml index d491624c8e5..02445222fdb 100644 --- a/releases/release-1.29/release-notes/maps/pr-121091-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121091-map.yaml @@ -1,4 +1,4 @@ -pr: 121091 -releasenote: - text: 'KCCM: fixed transient node addition and removal caused by #121090 while syncing - load balancers on large clusters with a lot of churn.' +pr: 121091 +releasenote: + text: 'KCCM: fixed transient node addition and removal caused by #121090 while syncing + load balancers on large clusters with a lot of churn.' diff --git a/releases/release-1.29/release-notes/maps/pr-121095-map.yaml b/releases/release-1.29/release-notes/maps/pr-121095-map.yaml index 50a571184c9..765c8a84194 100644 --- a/releases/release-1.29/release-notes/maps/pr-121095-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121095-map.yaml @@ -1,3 +1,3 @@ -pr: 121095 -releasenote: - text: Enabled traces for KMSv2 encrypt/decrypt operations. +pr: 121095 +releasenote: + text: Enabled traces for KMSv2 encrypt/decrypt operations. diff --git a/releases/release-1.29/release-notes/maps/pr-121103-map.yaml b/releases/release-1.29/release-notes/maps/pr-121103-map.yaml index 863c148458d..f5870fdc8de 100644 --- a/releases/release-1.29/release-notes/maps/pr-121103-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121103-map.yaml @@ -1,7 +1,7 @@ -pr: 121103 -releasenote: - text: |- - Fixed a regression in default configurations, which enabled `PodDisruptionConditions` - by default, that prevented the control plane's pod garbage collector from deleting - pods that contained duplicated field keys (environmental variables with repeated keys or - container ports). +pr: 121103 +releasenote: + text: |- + Fixed a regression in default configurations, which enabled `PodDisruptionConditions` + by default, that prevented the control plane's pod garbage collector from deleting + pods that contained duplicated field keys (environmental variables with repeated keys or + container ports). diff --git a/releases/release-1.29/release-notes/maps/pr-121116-map.yaml b/releases/release-1.29/release-notes/maps/pr-121116-map.yaml index c3c71613a38..8c124262179 100644 --- a/releases/release-1.29/release-notes/maps/pr-121116-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121116-map.yaml @@ -1,4 +1,4 @@ -pr: 121116 -releasenote: - text: 'Fixed [121094](https://github.com/kubernetes/kubernetes/issues/121094) by - re-introducing the readiness predicate for `externalTrafficPolicy: Local` services.' +pr: 121116 +releasenote: + text: 'Fixed [121094](https://github.com/kubernetes/kubernetes/issues/121094) by + re-introducing the readiness predicate for `externalTrafficPolicy: Local` services.' diff --git a/releases/release-1.29/release-notes/maps/pr-121120-map.yaml b/releases/release-1.29/release-notes/maps/pr-121120-map.yaml index 52b6555fbed..9911c6c9713 100644 --- a/releases/release-1.29/release-notes/maps/pr-121120-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121120-map.yaml @@ -1,13 +1,13 @@ -pr: 121120 -releasenote: - text: Mitigated http/2 DOS vulnerabilities for `CVE-2023-44487` and `CVE-2023-39325` - for the API server when the client is unauthenticated. The mitigation may be disabled - by setting the `UnauthenticatedHTTP2DOSMitigation` feature gate to `false` (it - is enabled by default). An API server fronted by an L7 load balancer that already - mitigates these http/2 attacks may choose to disable the kube-apiserver mitigation - to avoid disrupting load balancer -> kube-apiserver connections if http/2 requests - from multiple clients share the same backend connection. An API server on a private - network may opt to disable the kube-apiserver mitigation to prevent performance - regressions for unauthenticated clients. Authenticated requests rely on the fix - in golang.org/x/net `v0.17.0` alone. https://issue.k8s.io/121197 tracks further - mitigation of http/2 attacks by authenticated clients. +pr: 121120 +releasenote: + text: Mitigated http/2 DOS vulnerabilities for `CVE-2023-44487` and `CVE-2023-39325` + for the API server when the client is unauthenticated. The mitigation may be disabled + by setting the `UnauthenticatedHTTP2DOSMitigation` feature gate to `false` (it + is enabled by default). An API server fronted by an L7 load balancer that already + mitigates these http/2 attacks may choose to disable the kube-apiserver mitigation + to avoid disrupting load balancer -> kube-apiserver connections if http/2 requests + from multiple clients share the same backend connection. An API server on a private + network may opt to disable the kube-apiserver mitigation to prevent performance + regressions for unauthenticated clients. Authenticated requests rely on the fix + in golang.org/x/net `v0.17.0` alone. https://issue.k8s.io/121197 tracks further + mitigation of http/2 attacks by authenticated clients. diff --git a/releases/release-1.29/release-notes/maps/pr-121121-map.yaml b/releases/release-1.29/release-notes/maps/pr-121121-map.yaml index f78d58c9941..898c03fa38f 100644 --- a/releases/release-1.29/release-notes/maps/pr-121121-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121121-map.yaml @@ -1,3 +1,3 @@ -pr: 121121 -releasenote: - text: 'CRI: image pull per runtime class is now supported.' +pr: 121121 +releasenote: + text: 'CRI: image pull per runtime class is now supported.' diff --git a/releases/release-1.29/release-notes/maps/pr-121142-map.yaml b/releases/release-1.29/release-notes/maps/pr-121142-map.yaml index bcc0f8dd1e4..e9a9834199c 100644 --- a/releases/release-1.29/release-notes/maps/pr-121142-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121142-map.yaml @@ -1,4 +1,4 @@ -pr: 121142 -releasenote: - text: Fixed a `v1.28.0` regression where `kube-controller-manager` can crash when - `StatefulSet` with `Parallel` policy and PVC labels are scaled up. +pr: 121142 +releasenote: + text: Fixed a `v1.28.0` regression where `kube-controller-manager` can crash when + `StatefulSet` with `Parallel` policy and PVC labels are scaled up. diff --git a/releases/release-1.29/release-notes/maps/pr-121147-map.yaml b/releases/release-1.29/release-notes/maps/pr-121147-map.yaml index 37261998ae7..09f502df7f8 100644 --- a/releases/release-1.29/release-notes/maps/pr-121147-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121147-map.yaml @@ -1,4 +1,4 @@ -pr: 121147 -releasenote: - text: 'Fixed panic in Job controller when `podRecreationPolicy: Failed` is used, - and the number of terminating pods exceeds parallelism.' +pr: 121147 +releasenote: + text: 'Fixed panic in Job controller when `podRecreationPolicy: Failed` is used, + and the number of terminating pods exceeds parallelism.' diff --git a/releases/release-1.29/release-notes/maps/pr-121149-map.yaml b/releases/release-1.29/release-notes/maps/pr-121149-map.yaml index 139b6566d09..7d69540235f 100644 --- a/releases/release-1.29/release-notes/maps/pr-121149-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121149-map.yaml @@ -1,3 +1,3 @@ -pr: 121149 -releasenote: - text: Kubernetes is now built with Go `v1.21.3`. +pr: 121149 +releasenote: + text: Kubernetes is now built with Go `v1.21.3`. diff --git a/releases/release-1.29/release-notes/maps/pr-121172-map.yaml b/releases/release-1.29/release-notes/maps/pr-121172-map.yaml index 5778eaa24a6..f1e91146873 100644 --- a/releases/release-1.29/release-notes/maps/pr-121172-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121172-map.yaml @@ -1,5 +1,5 @@ -pr: 121172 -releasenote: - text: '`kubeadm`: removed leftover disclaimer that could be seen in the `kubeadm - init phase certs` command help screen, since the "certs" phase of "init" is no - longer alpha.' +pr: 121172 +releasenote: + text: '`kubeadm`: removed leftover disclaimer that could be seen in the `kubeadm + init phase certs` command help screen, since the "certs" phase of "init" is no + longer alpha.' diff --git a/releases/release-1.29/release-notes/maps/pr-121193-map.yaml b/releases/release-1.29/release-notes/maps/pr-121193-map.yaml index dc93c3a1268..85fc0df493d 100644 --- a/releases/release-1.29/release-notes/maps/pr-121193-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121193-map.yaml @@ -1,4 +1,4 @@ -pr: 121193 -releasenote: - text: Fixed overriding default `KubeletConfig` fields in drop-in configs if not - set. +pr: 121193 +releasenote: + text: Fixed overriding default `KubeletConfig` fields in drop-in configs if not + set. diff --git a/releases/release-1.29/release-notes/maps/pr-121216-map.yaml b/releases/release-1.29/release-notes/maps/pr-121216-map.yaml index 26e14b66598..5df494b7c36 100644 --- a/releases/release-1.29/release-notes/maps/pr-121216-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121216-map.yaml @@ -1,3 +1,3 @@ -pr: 121216 -releasenote: - text: Bumped `distroless-iptables` to `0.4.1` based on Go `1.21.3`. +pr: 121216 +releasenote: + text: Bumped `distroless-iptables` to `0.4.1` based on Go `1.21.3`. diff --git a/releases/release-1.29/release-notes/maps/pr-121223-map.yaml b/releases/release-1.29/release-notes/maps/pr-121223-map.yaml index fe255862df2..d98ef30ced8 100644 --- a/releases/release-1.29/release-notes/maps/pr-121223-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121223-map.yaml @@ -1,4 +1,4 @@ -pr: 121223 -releasenote: - text: Added support for CEL expressions to `v1alpha1 AuthorizationConfiguration` - webhook `matchConditions`. +pr: 121223 +releasenote: + text: Added support for CEL expressions to `v1alpha1 AuthorizationConfiguration` + webhook `matchConditions`. diff --git a/releases/release-1.29/release-notes/maps/pr-121229-map.yaml b/releases/release-1.29/release-notes/maps/pr-121229-map.yaml index 9f0cc6d6f70..b8e33373b61 100644 --- a/releases/release-1.29/release-notes/maps/pr-121229-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121229-map.yaml @@ -1,3 +1,3 @@ -pr: 121229 -releasenote: - text: Removed the networking `alpha` API `ClusterCIDR`. +pr: 121229 +releasenote: + text: Removed the networking `alpha` API `ClusterCIDR`. diff --git a/releases/release-1.29/release-notes/maps/pr-121240-map.yaml b/releases/release-1.29/release-notes/maps/pr-121240-map.yaml index fa6adcc8e1c..b208b7695b8 100644 --- a/releases/release-1.29/release-notes/maps/pr-121240-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121240-map.yaml @@ -1,6 +1,6 @@ -pr: 121240 -releasenote: - text: |- - `kubelet` allows pods to use the `net.ipv4.tcp_fin_timeout`, “net.ipv4.tcp_keepalive_intvl” - and “net.ipv4.tcp_keepalive_probes“ sysctl by default; Pod Security Admission - allows this sysctl in `v1.29+` versions of the baseline and restricted policies. +pr: 121240 +releasenote: + text: |- + `kubelet` allows pods to use the `net.ipv4.tcp_fin_timeout`, “net.ipv4.tcp_keepalive_intvl” + and “net.ipv4.tcp_keepalive_probes“ sysctl by default; Pod Security Admission + allows this sysctl in `v1.29+` versions of the baseline and restricted policies. diff --git a/releases/release-1.29/release-notes/maps/pr-121246-map.yaml b/releases/release-1.29/release-notes/maps/pr-121246-map.yaml index 3d7461804c3..d03dc3dde9b 100644 --- a/releases/release-1.29/release-notes/maps/pr-121246-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121246-map.yaml @@ -1,3 +1,3 @@ -pr: 121246 -releasenote: - text: Removed `GA`ed feature gates `SeccompDefault`. +pr: 121246 +releasenote: + text: Removed `GA`ed feature gates `SeccompDefault`. diff --git a/releases/release-1.29/release-notes/maps/pr-121252-map.yaml b/releases/release-1.29/release-notes/maps/pr-121252-map.yaml index bf311cfebc6..c32551adce9 100644 --- a/releases/release-1.29/release-notes/maps/pr-121252-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121252-map.yaml @@ -1,3 +1,3 @@ -pr: 121252 -releasenote: - text: Removed `GA`ed feature gate `TopologyManager`. +pr: 121252 +releasenote: + text: Removed `GA`ed feature gate `TopologyManager`. diff --git a/releases/release-1.29/release-notes/maps/pr-121254-map.yaml b/releases/release-1.29/release-notes/maps/pr-121254-map.yaml index 44cb47642d1..35a95378c74 100644 --- a/releases/release-1.29/release-notes/maps/pr-121254-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121254-map.yaml @@ -1,4 +1,4 @@ -pr: 121254 -releasenote: - text: '`DevicePluginCDIDevices` feature has been graduated to `beta` and enabled - by default in the kubelet.' +pr: 121254 +releasenote: + text: '`DevicePluginCDIDevices` feature has been graduated to `beta` and enabled + by default in the kubelet.' diff --git a/releases/release-1.29/release-notes/maps/pr-121255-map.yaml b/releases/release-1.29/release-notes/maps/pr-121255-map.yaml index 59ab40a791a..9b8e6dec956 100644 --- a/releases/release-1.29/release-notes/maps/pr-121255-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121255-map.yaml @@ -1,3 +1,3 @@ -pr: 121255 -releasenote: - text: Removed `GA`ed feature gates `OpenAPIV3`. +pr: 121255 +releasenote: + text: Removed `GA`ed feature gates `OpenAPIV3`. diff --git a/releases/release-1.29/release-notes/maps/pr-121257-map.yaml b/releases/release-1.29/release-notes/maps/pr-121257-map.yaml index 360b468f276..1cb351929f0 100644 --- a/releases/release-1.29/release-notes/maps/pr-121257-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121257-map.yaml @@ -1,3 +1,3 @@ -pr: 121257 -releasenote: - text: Removed `GA` feature gate about `ProbeTerminationGracePeriod`. +pr: 121257 +releasenote: + text: Removed `GA` feature gate about `ProbeTerminationGracePeriod`. diff --git a/releases/release-1.29/release-notes/maps/pr-121275-map.yaml b/releases/release-1.29/release-notes/maps/pr-121275-map.yaml index df11fa2cd90..c4cdcb2a1bf 100644 --- a/releases/release-1.29/release-notes/maps/pr-121275-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121275-map.yaml @@ -1,4 +1,4 @@ -pr: 121275 -releasenote: - text: Added `ImageMaximumGCAge` field to Kubelet configuration, which allows a user - to set the maximum age an image is unused before it's garbage collected. +pr: 121275 +releasenote: + text: Added `ImageMaximumGCAge` field to Kubelet configuration, which allows a user + to set the maximum age an image is unused before it's garbage collected. diff --git a/releases/release-1.29/release-notes/maps/pr-121291-map.yaml b/releases/release-1.29/release-notes/maps/pr-121291-map.yaml index 0f44a6ffefd..b8b00a35ae0 100644 --- a/releases/release-1.29/release-notes/maps/pr-121291-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121291-map.yaml @@ -1,3 +1,3 @@ -pr: 121291 -releasenote: - text: Removed `GA` feature gate about `CSIMigrationvSphere`. +pr: 121291 +releasenote: + text: Removed `GA` feature gate about `CSIMigrationvSphere`. diff --git a/releases/release-1.29/release-notes/maps/pr-121292-map.yaml b/releases/release-1.29/release-notes/maps/pr-121292-map.yaml index 47aef712059..0a5d4467dd3 100644 --- a/releases/release-1.29/release-notes/maps/pr-121292-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121292-map.yaml @@ -1,4 +1,4 @@ -pr: 121292 -releasenote: - text: Introduced the `job_finished_indexes_total` metric for the `BackoffLimitPerIndex` - feature. +pr: 121292 +releasenote: + text: Introduced the `job_finished_indexes_total` metric for the `BackoffLimitPerIndex` + feature. diff --git a/releases/release-1.29/release-notes/maps/pr-121302-map.yaml b/releases/release-1.29/release-notes/maps/pr-121302-map.yaml index 11475c1c7e3..0d16a60724f 100644 --- a/releases/release-1.29/release-notes/maps/pr-121302-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121302-map.yaml @@ -1,3 +1,3 @@ -pr: 121302 -releasenote: - text: Graduated `JobReadyPods` to `stable`. The feature gate can no longer be disabled. +pr: 121302 +releasenote: + text: Graduated `JobReadyPods` to `stable`. The feature gate can no longer be disabled. diff --git a/releases/release-1.29/release-notes/maps/pr-121303-map.yaml b/releases/release-1.29/release-notes/maps/pr-121303-map.yaml index 74ca4842cd0..076e09af94a 100644 --- a/releases/release-1.29/release-notes/maps/pr-121303-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121303-map.yaml @@ -1,6 +1,6 @@ -pr: 121303 -releasenote: - text: |- - `CSINodeExpandSecret` feature has been promoted to `GA` in this release and is enabled - by default. The CSI drivers can make use of the `secretRef` values passed in `NodeExpansion` - request optionally sent by the CSI Client from this release onwards. +pr: 121303 +releasenote: + text: |- + `CSINodeExpandSecret` feature has been promoted to `GA` in this release and is enabled + by default. The CSI drivers can make use of the `secretRef` values passed in `NodeExpansion` + request optionally sent by the CSI Client from this release onwards. diff --git a/releases/release-1.29/release-notes/maps/pr-121305-map.yaml b/releases/release-1.29/release-notes/maps/pr-121305-map.yaml index e348bb4db9d..d59857f629a 100644 --- a/releases/release-1.29/release-notes/maps/pr-121305-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121305-map.yaml @@ -1,17 +1,17 @@ -pr: 121305 -releasenote: - text: '`kubeadm`: a separate "super-admin.conf" file is now deployed. The User in - `admin.conf` is now bound to a new RBAC Group `kubeadm:cluster-admins` that has - `cluster-admin` `ClusterRole` access. The User in `super-admin.conf` is now bound - to the `system:masters` built-in super-powers / break-glass Group that can bypass - RBAC. Before this change, the default `admin.conf` was bound to `system:masters` - Group, which was undesired. Executing `kubeadm init phase kubeconfig all` or just - `kubeadm init` will now generate the new `super-admin.conf` file. The cluster - admin can then decide to keep the file present on a node host or move it to a - safe location. `kubadm certs renew` will renew the certificate in `super-admin.conf` - to one year if the file exists; if it does not exist a "MISSING" note will be - printed. `kubeadm upgrade apply` for this release will migrate this particular - node to the two file setup. Subsequent kubeadm releases will continue to optionally - renew the certificate in `super-admin.conf` if the file exists on disk and if - renew on upgrade is not disabled. `kubeadm join --control-plane` will now generate - only an `admin.conf` file that has the less privileged User.' +pr: 121305 +releasenote: + text: '`kubeadm`: a separate "super-admin.conf" file is now deployed. The User in + `admin.conf` is now bound to a new RBAC Group `kubeadm:cluster-admins` that has + `cluster-admin` `ClusterRole` access. The User in `super-admin.conf` is now bound + to the `system:masters` built-in super-powers / break-glass Group that can bypass + RBAC. Before this change, the default `admin.conf` was bound to `system:masters` + Group, which was undesired. Executing `kubeadm init phase kubeconfig all` or just + `kubeadm init` will now generate the new `super-admin.conf` file. The cluster + admin can then decide to keep the file present on a node host or move it to a + safe location. `kubadm certs renew` will renew the certificate in `super-admin.conf` + to one year if the file exists; if it does not exist a "MISSING" note will be + printed. `kubeadm upgrade apply` for this release will migrate this particular + node to the two file setup. Subsequent kubeadm releases will continue to optionally + renew the certificate in `super-admin.conf` if the file exists on disk and if + renew on upgrade is not disabled. `kubeadm join --control-plane` will now generate + only an `admin.conf` file that has the less privileged User.' diff --git a/releases/release-1.29/release-notes/maps/pr-121327-map.yaml b/releases/release-1.29/release-notes/maps/pr-121327-map.yaml index b175be25b9a..5677afd0ade 100644 --- a/releases/release-1.29/release-notes/maps/pr-121327-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121327-map.yaml @@ -1,4 +1,4 @@ -pr: 121327 -releasenote: - text: Fixed the calculation of the requeue time in the cronjob controller, resulting - in proper handling of failed/stuck jobs. +pr: 121327 +releasenote: + text: Fixed the calculation of the requeue time in the cronjob controller, resulting + in proper handling of failed/stuck jobs. diff --git a/releases/release-1.29/release-notes/maps/pr-121342-map.yaml b/releases/release-1.29/release-notes/maps/pr-121342-map.yaml index e699c9f0ddc..890473ca21b 100644 --- a/releases/release-1.29/release-notes/maps/pr-121342-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121342-map.yaml @@ -1,4 +1,4 @@ -pr: 121342 -releasenote: - text: Fixed tracking of terminating Pods in the Job status. The field was not updated - unless there were other changes to apply. +pr: 121342 +releasenote: + text: Fixed tracking of terminating Pods in the Job status. The field was not updated + unless there were other changes to apply. diff --git a/releases/release-1.29/release-notes/maps/pr-121356-map.yaml b/releases/release-1.29/release-notes/maps/pr-121356-map.yaml index 08f6c2b242a..6bc556b2558 100644 --- a/releases/release-1.29/release-notes/maps/pr-121356-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121356-map.yaml @@ -1,3 +1,3 @@ -pr: 121356 -releasenote: - text: Graduated `Job BackoffLimitPerIndex` feature to `beta`. +pr: 121356 +releasenote: + text: Graduated `Job BackoffLimitPerIndex` feature to `beta`. diff --git a/releases/release-1.29/release-notes/maps/pr-121373-map.yaml b/releases/release-1.29/release-notes/maps/pr-121373-map.yaml index 9cb3790f04c..5cef517bd9a 100644 --- a/releases/release-1.29/release-notes/maps/pr-121373-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121373-map.yaml @@ -1,4 +1,4 @@ -pr: 121373 -releasenote: - text: The CRD validation rule with feature gate `CustomResourceValidationExpressions` - was promoted to `GA`. +pr: 121373 +releasenote: + text: The CRD validation rule with feature gate `CustomResourceValidationExpressions` + was promoted to `GA`. diff --git a/releases/release-1.29/release-notes/maps/pr-121389-map.yaml b/releases/release-1.29/release-notes/maps/pr-121389-map.yaml index 87c556fb817..2295341d357 100644 --- a/releases/release-1.29/release-notes/maps/pr-121389-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121389-map.yaml @@ -1,4 +1,4 @@ -pr: 121389 -releasenote: - text: Fixed an issue where a `StatefulSet` might not restart a pod after eviction - or node failure. +pr: 121389 +releasenote: + text: Fixed an issue where a `StatefulSet` might not restart a pod after eviction + or node failure. diff --git a/releases/release-1.29/release-notes/maps/pr-121391-map.yaml b/releases/release-1.29/release-notes/maps/pr-121391-map.yaml index a28ac34c64c..6a095c860ea 100644 --- a/releases/release-1.29/release-notes/maps/pr-121391-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121391-map.yaml @@ -1,4 +1,4 @@ -pr: 121391 -releasenote: - text: 'E2E storage tests: setting test tags like `[Slow]` via the `DriverInfo.FeatureTag` - field is no longer supported.' +pr: 121391 +releasenote: + text: 'E2E storage tests: setting test tags like `[Slow]` via the `DriverInfo.FeatureTag` + field is no longer supported.' diff --git a/releases/release-1.29/release-notes/maps/pr-121441-map.yaml b/releases/release-1.29/release-notes/maps/pr-121441-map.yaml index 94dd22aad5d..de315e28d55 100644 --- a/releases/release-1.29/release-notes/maps/pr-121441-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121441-map.yaml @@ -1,4 +1,4 @@ -pr: 121441 -releasenote: - text: Lower and upper case feature flag values are now allowed, but the name still - has to match. +pr: 121441 +releasenote: + text: Lower and upper case feature flag values are now allowed, but the name still + has to match. diff --git a/releases/release-1.29/release-notes/maps/pr-121456-map.yaml b/releases/release-1.29/release-notes/maps/pr-121456-map.yaml index c7115f9184e..fef2e74da6c 100644 --- a/releases/release-1.29/release-notes/maps/pr-121456-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121456-map.yaml @@ -1,7 +1,7 @@ -pr: 121456 -releasenote: - text: |- - Added new feature gate called `RuntimeClassInImageCriApi` to address `kubelet` changes needed for KEP 4216. - Noteable changes: - 1. Populate new `RuntimeHandler` field in CRI's `ImageSpec` struct during image pulls from container runtimes. - 2. Pass `runtimeHandler` field in `RemoveImage()` call to container runtime in `kubelet`'s image garbage collection. +pr: 121456 +releasenote: + text: |- + Added new feature gate called `RuntimeClassInImageCriApi` to address `kubelet` changes needed for KEP 4216. + Noteable changes: + 1. Populate new `RuntimeHandler` field in CRI's `ImageSpec` struct during image pulls from container runtimes. + 2. Pass `runtimeHandler` field in `RemoveImage()` call to container runtime in `kubelet`'s image garbage collection. diff --git a/releases/release-1.29/release-notes/maps/pr-121459-map.yaml b/releases/release-1.29/release-notes/maps/pr-121459-map.yaml index d3bfdf49335..99ef7f635dd 100644 --- a/releases/release-1.29/release-notes/maps/pr-121459-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121459-map.yaml @@ -1,4 +1,4 @@ -pr: 121459 -releasenote: - text: CEL can now correctly handle a CRD `openAPIV3Schema` that has neither `Properties` - nor `AdditionalProperties`. +pr: 121459 +releasenote: + text: CEL can now correctly handle a CRD `openAPIV3Schema` that has neither `Properties` + nor `AdditionalProperties`. diff --git a/releases/release-1.29/release-notes/maps/pr-121460-map.yaml b/releases/release-1.29/release-notes/maps/pr-121460-map.yaml index 75b66e198c8..59b537cf972 100644 --- a/releases/release-1.29/release-notes/maps/pr-121460-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121460-map.yaml @@ -1,4 +1,4 @@ -pr: 121460 -releasenote: - text: When updating a CRD, per-expression cost limit check are now skipped for `x-kubernetes-validations` - rules of versions that are not mutated. +pr: 121460 +releasenote: + text: When updating a CRD, per-expression cost limit check are now skipped for `x-kubernetes-validations` + rules of versions that are not mutated. diff --git a/releases/release-1.29/release-notes/maps/pr-121462-map.yaml b/releases/release-1.29/release-notes/maps/pr-121462-map.yaml index 31a97f0e692..4088219db9f 100644 --- a/releases/release-1.29/release-notes/maps/pr-121462-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121462-map.yaml @@ -1,4 +1,4 @@ -pr: 121462 -releasenote: - text: Added `apiextensions_apiserver_update_ratcheting_time` metric for tracking - time taken during requests by feature `CRDValidationRatcheting`. +pr: 121462 +releasenote: + text: Added `apiextensions_apiserver_update_ratcheting_time` metric for tracking + time taken during requests by feature `CRDValidationRatcheting`. diff --git a/releases/release-1.29/release-notes/maps/pr-121477-map.yaml b/releases/release-1.29/release-notes/maps/pr-121477-map.yaml index d111ab27909..c12d4e9c640 100644 --- a/releases/release-1.29/release-notes/maps/pr-121477-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121477-map.yaml @@ -1,3 +1,3 @@ -pr: 121477 -releasenote: - text: Promoted `PodHostIPs` condition to `beta`. +pr: 121477 +releasenote: + text: Promoted `PodHostIPs` condition to `beta`. diff --git a/releases/release-1.29/release-notes/maps/pr-121481-map.yaml b/releases/release-1.29/release-notes/maps/pr-121481-map.yaml index 1ca95ee073c..97dadad5101 100644 --- a/releases/release-1.29/release-notes/maps/pr-121481-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121481-map.yaml @@ -1,4 +1,4 @@ -pr: 121481 -releasenote: - text: Added `job_pods_creation_total` metrics for tracking Pods created by the Job - controller labeled by events which triggered the Pod creation. +pr: 121481 +releasenote: + text: Added `job_pods_creation_total` metrics for tracking Pods created by the Job + controller labeled by events which triggered the Pod creation. diff --git a/releases/release-1.29/release-notes/maps/pr-121485-map.yaml b/releases/release-1.29/release-notes/maps/pr-121485-map.yaml index ddd5e8bcec0..c6e7b190b75 100644 --- a/releases/release-1.29/release-notes/maps/pr-121485-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121485-map.yaml @@ -1,4 +1,4 @@ -pr: 121485 -releasenote: - text: The KMSv2 features with feature gates `KMSv2` and `KMSv2KDF` are promoted - to `GA`. The `KMSv1` feature gate is now disabled by default. +pr: 121485 +releasenote: + text: The KMSv2 features with feature gates `KMSv2` and `KMSv2KDF` are promoted + to `GA`. The `KMSv1` feature gate is now disabled by default. diff --git a/releases/release-1.29/release-notes/maps/pr-121491-map.yaml b/releases/release-1.29/release-notes/maps/pr-121491-map.yaml index dba127eb817..ad6277fe628 100644 --- a/releases/release-1.29/release-notes/maps/pr-121491-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121491-map.yaml @@ -1,3 +1,3 @@ -pr: 121491 -releasenote: - text: Promoted `PodReplacementPolicy` to `beta`. +pr: 121491 +releasenote: + text: Promoted `PodReplacementPolicy` to `beta`. diff --git a/releases/release-1.29/release-notes/maps/pr-121566-map.yaml b/releases/release-1.29/release-notes/maps/pr-121566-map.yaml index 8dd4a06714e..abf31f66828 100644 --- a/releases/release-1.29/release-notes/maps/pr-121566-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121566-map.yaml @@ -1,3 +1,3 @@ -pr: 121566 -releasenote: - text: '`etcd`: updated to `v3.5.10`.' +pr: 121566 +releasenote: + text: '`etcd`: updated to `v3.5.10`.' diff --git a/releases/release-1.29/release-notes/maps/pr-121567-map.yaml b/releases/release-1.29/release-notes/maps/pr-121567-map.yaml index 827475addbd..01f39df1be6 100644 --- a/releases/release-1.29/release-notes/maps/pr-121567-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121567-map.yaml @@ -1,3 +1,3 @@ -pr: 121567 -releasenote: - text: '`etcd`: image is now based on `v3.5.9`.' +pr: 121567 +releasenote: + text: '`etcd`: image is now based on `v3.5.9`.' diff --git a/releases/release-1.29/release-notes/maps/pr-121571-map.yaml b/releases/release-1.29/release-notes/maps/pr-121571-map.yaml index 14f9b7effdc..78a80415896 100644 --- a/releases/release-1.29/release-notes/maps/pr-121571-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121571-map.yaml @@ -1,5 +1,5 @@ -pr: 121571 -releasenote: - text: |- - `EnqueueExtensions` from plugins other than `PreEnqueue`, `PreFilter`, `Filter`, `Reserve` and `Permit` are now ignored. - It reduces the number of kinds of cluster events the scheduler needs to subscribe/handle. +pr: 121571 +releasenote: + text: |- + `EnqueueExtensions` from plugins other than `PreEnqueue`, `PreFilter`, `Filter`, `Reserve` and `Permit` are now ignored. + It reduces the number of kinds of cluster events the scheduler needs to subscribe/handle. diff --git a/releases/release-1.29/release-notes/maps/pr-121575-map.yaml b/releases/release-1.29/release-notes/maps/pr-121575-map.yaml index 6bee2c305d3..aad0f68a75d 100644 --- a/releases/release-1.29/release-notes/maps/pr-121575-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121575-map.yaml @@ -1,7 +1,7 @@ -pr: 121575 -releasenote: - text: |- - Fixed bugs in handling of server-side apply, create, and update API requests for objects containing duplicate items in keyed lists. - - A `create` or `update` API request with duplicate items in a keyed list no longer wipes out managedFields. Examples include env var entries with the same name, or port entries with the same containerPort in a pod spec. - - A server-side apply request that makes unrelated changes to an object which has duplicate items in a keyed list no longer fails, and leaves the existing duplicate items as-is. - - A server-side apply request that changes an object which has duplicate items in a keyed list, and modifies the duplicated item removes the duplicates and replaces them with the single item contained in the server-side apply request. +pr: 121575 +releasenote: + text: |- + Fixed bugs in handling of server-side apply, create, and update API requests for objects containing duplicate items in keyed lists. + - A `create` or `update` API request with duplicate items in a keyed list no longer wipes out managedFields. Examples include env var entries with the same name, or port entries with the same containerPort in a pod spec. + - A server-side apply request that makes unrelated changes to an object which has duplicate items in a keyed list no longer fails, and leaves the existing duplicate items as-is. + - A server-side apply request that changes an object which has duplicate items in a keyed list, and modifies the duplicated item removes the duplicates and replaces them with the single item contained in the server-side apply request. diff --git a/releases/release-1.29/release-notes/maps/pr-121577-map.yaml b/releases/release-1.29/release-notes/maps/pr-121577-map.yaml index 198a89ec9c3..392989a56ee 100644 --- a/releases/release-1.29/release-notes/maps/pr-121577-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121577-map.yaml @@ -1,3 +1,3 @@ -pr: 121577 -releasenote: - text: Bumped `cel-go` to `v0.17.7` and introduced set `ext` library with new options. +pr: 121577 +releasenote: + text: Bumped `cel-go` to `v0.17.7` and introduced set `ext` library with new options. diff --git a/releases/release-1.29/release-notes/maps/pr-121579-map.yaml b/releases/release-1.29/release-notes/maps/pr-121579-map.yaml index 650db290a9c..7486e7bbe9e 100644 --- a/releases/release-1.29/release-notes/maps/pr-121579-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121579-map.yaml @@ -1,4 +1,4 @@ -pr: 121579 -releasenote: - text: The `SidecarContainers` feature has graduated to `beta` and is enabled by - default. +pr: 121579 +releasenote: + text: The `SidecarContainers` feature has graduated to `beta` and is enabled by + default. diff --git a/releases/release-1.29/release-notes/maps/pr-121614-map.yaml b/releases/release-1.29/release-notes/maps/pr-121614-map.yaml index 0f50d09a3fb..69976b59bdf 100644 --- a/releases/release-1.29/release-notes/maps/pr-121614-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121614-map.yaml @@ -1,3 +1,3 @@ -pr: 121614 -releasenote: - text: Decoding etcd's response now respects the timeout context. +pr: 121614 +releasenote: + text: Decoding etcd's response now respects the timeout context. diff --git a/releases/release-1.29/release-notes/maps/pr-121628-map.yaml b/releases/release-1.29/release-notes/maps/pr-121628-map.yaml index e957933c91c..b547033bdf7 100644 --- a/releases/release-1.29/release-notes/maps/pr-121628-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121628-map.yaml @@ -1,4 +1,4 @@ -pr: 121628 -releasenote: - text: '`cluster/gce`: added webhook to replace `PersistentVolumeLabel` admission - controller.' +pr: 121628 +releasenote: + text: '`cluster/gce`: added webhook to replace `PersistentVolumeLabel` admission + controller.' diff --git a/releases/release-1.29/release-notes/maps/pr-121632-map.yaml b/releases/release-1.29/release-notes/maps/pr-121632-map.yaml index bf2bf97e93e..133052a77ef 100644 --- a/releases/release-1.29/release-notes/maps/pr-121632-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121632-map.yaml @@ -1,6 +1,6 @@ -pr: 121632 -releasenote: - text: "Fixed a regression since `v1.27.0` in the scheduler framework when running - score plugins. \nThe `skippedScorePlugins` number might be greater than `enabledScorePlugins`, - \nso when initializing a slice the `cap(len(skippedScorePlugins) - len(enabledScorePlugins))` - is negative, \nwhich is not allowed." +pr: 121632 +releasenote: + text: "Fixed a regression since `v1.27.0` in the scheduler framework when running + score plugins. \nThe `skippedScorePlugins` number might be greater than `enabledScorePlugins`, + \nso when initializing a slice the `cap(len(skippedScorePlugins) - len(enabledScorePlugins))` + is negative, \nwhich is not allowed." diff --git a/releases/release-1.29/release-notes/maps/pr-121638-map.yaml b/releases/release-1.29/release-notes/maps/pr-121638-map.yaml index bf794e6338a..0f59aa25e3e 100644 --- a/releases/release-1.29/release-notes/maps/pr-121638-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121638-map.yaml @@ -1,4 +1,4 @@ -pr: 121638 -releasenote: - text: Priority and Fairness feature is now `stable`, the feature gate will be removed - in `v1.31`. +pr: 121638 +releasenote: + text: Priority and Fairness feature is now `stable`, the feature gate will be removed + in `v1.31`. diff --git a/releases/release-1.29/release-notes/maps/pr-121739-map.yaml b/releases/release-1.29/release-notes/maps/pr-121739-map.yaml index 647bf46a307..7b621ab8ae8 100644 --- a/releases/release-1.29/release-notes/maps/pr-121739-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121739-map.yaml @@ -1,3 +1,3 @@ -pr: 121739 -releasenote: - text: Updated runc to `1.1.10`. +pr: 121739 +releasenote: + text: Updated runc to `1.1.10`. diff --git a/releases/release-1.29/release-notes/maps/pr-121764-map.yaml b/releases/release-1.29/release-notes/maps/pr-121764-map.yaml index d086e489546..514e264af55 100644 --- a/releases/release-1.29/release-notes/maps/pr-121764-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121764-map.yaml @@ -1,3 +1,3 @@ -pr: 121764 -releasenote: - text: Fixed the API comments for the `FailIndex` Job pod failure policy action. +pr: 121764 +releasenote: + text: Fixed the API comments for the `FailIndex` Job pod failure policy action. diff --git a/releases/release-1.29/release-notes/maps/pr-121765-map.yaml b/releases/release-1.29/release-notes/maps/pr-121765-map.yaml index 48b910b1f5a..329419e21f6 100644 --- a/releases/release-1.29/release-notes/maps/pr-121765-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121765-map.yaml @@ -1,3 +1,3 @@ -pr: 121765 -releasenote: - text: Fixed the API comments for the Job `Ready` field in status. +pr: 121765 +releasenote: + text: Fixed the API comments for the Job `Ready` field in status. diff --git a/releases/release-1.29/release-notes/maps/pr-121808-map.yaml b/releases/release-1.29/release-notes/maps/pr-121808-map.yaml index 1d3b6d5aaca..c7ae8b2e342 100644 --- a/releases/release-1.29/release-notes/maps/pr-121808-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121808-map.yaml @@ -1,3 +1,3 @@ -pr: 121808 -releasenote: - text: Kubernetes is now built with Go `1.21.4`. +pr: 121808 +releasenote: + text: Kubernetes is now built with Go `1.21.4`. diff --git a/releases/release-1.29/release-notes/maps/pr-121837-map.yaml b/releases/release-1.29/release-notes/maps/pr-121837-map.yaml index d774395c735..647fc6b8f2c 100644 --- a/releases/release-1.29/release-notes/maps/pr-121837-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121837-map.yaml @@ -1,5 +1,5 @@ -pr: 121837 -releasenote: - text: 'kubeadm: changed the "system:masters" Group in the apiserver-kubelet-client.crt - certificate Subject to be "kubeadm:cluster-admins" which is a less privileged - Group.' +pr: 121837 +releasenote: + text: 'kubeadm: changed the "system:masters" Group in the apiserver-kubelet-client.crt + certificate Subject to be "kubeadm:cluster-admins" which is a less privileged + Group.' diff --git a/releases/release-1.29/release-notes/maps/pr-121841-map.yaml b/releases/release-1.29/release-notes/maps/pr-121841-map.yaml index 4ae60a43f42..d424cd02a15 100644 --- a/releases/release-1.29/release-notes/maps/pr-121841-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121841-map.yaml @@ -1,4 +1,4 @@ -pr: 121841 -releasenote: - text: 'kubeadm: supported updating certificate organization during `kubeadm certs - renew` operation.' +pr: 121841 +releasenote: + text: 'kubeadm: supported updating certificate organization during `kubeadm certs + renew` operation.' diff --git a/releases/release-1.29/release-notes/maps/pr-121851-map.yaml b/releases/release-1.29/release-notes/maps/pr-121851-map.yaml index 44c0c67b06a..c10117d3941 100644 --- a/releases/release-1.29/release-notes/maps/pr-121851-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121851-map.yaml @@ -1,3 +1,3 @@ -pr: 121851 -releasenote: - text: Fixed stale SMB mount issue when SMB file share is deleted and then unmounted. +pr: 121851 +releasenote: + text: Fixed stale SMB mount issue when SMB file share is deleted and then unmounted. diff --git a/releases/release-1.29/release-notes/maps/pr-121867-map.yaml b/releases/release-1.29/release-notes/maps/pr-121867-map.yaml index 76fc79881bb..dadcf5e4cf0 100644 --- a/releases/release-1.29/release-notes/maps/pr-121867-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121867-map.yaml @@ -1,6 +1,6 @@ -pr: 121867 -releasenote: - text: "A customizable `OrderedScoreFuncs()` function was introduced. Out-of-tree - plugins \nthat used the scheduler's preemption interface could implement this - function\nfor custom preemption preferences or return nil to keep the current - behavior." +pr: 121867 +releasenote: + text: "A customizable `OrderedScoreFuncs()` function was introduced. Out-of-tree + plugins \nthat used the scheduler's preemption interface could implement this + function\nfor custom preemption preferences or return nil to keep the current + behavior." diff --git a/releases/release-1.29/release-notes/maps/pr-121871-map.yaml b/releases/release-1.29/release-notes/maps/pr-121871-map.yaml index 54ece105a95..e90dd212ee4 100644 --- a/releases/release-1.29/release-notes/maps/pr-121871-map.yaml +++ b/releases/release-1.29/release-notes/maps/pr-121871-map.yaml @@ -1,3 +1,3 @@ -pr: 121871 -releasenote: - text: Bumped distroless-iptables to 0.4.1 based on Go `1.21.3`. +pr: 121871 +releasenote: + text: Bumped distroless-iptables to 0.4.1 based on Go `1.21.3`. diff --git a/releases/release-1.29/release-notes/release-notes-draft.json b/releases/release-1.29/release-notes/release-notes-draft.json index 1d614941f30..c0965bd32e4 100644 --- a/releases/release-1.29/release-notes/release-notes-draft.json +++ b/releases/release-1.29/release-notes/release-notes-draft.json @@ -1,7084 +1,7084 @@ -{ - "100448": { - "commit": "95bd8b95a76fa1e29eec703f4cd92d5a9daaf39a", - "text": "Changed kubelet logs from `error` to `info` for uncached partitions when using CRI stats provider.", - "markdown": "Changed kubelet logs from `error` to `info` for uncached partitions when using CRI stats provider. ([#100448](https://github.com/kubernetes/kubernetes/pull/100448), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/100448", - "pr_number": 100448, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "112599": { - "commit": "dea3f1a119e997aeae0f503af35dc0804b0fdcd6", - "text": "Added Windows support for InPlace Pod Vertical Scaling feature.", - "markdown": "Added Windows support for InPlace Pod Vertical Scaling feature. ([#112599](https://github.com/kubernetes/kubernetes/pull/112599), [@fabi200123](https://github.com/fabi200123)) [SIG Autoscaling, Node, Scalability, Scheduling and Windows]", - "author": "fabi200123", - "author_url": "https://github.com/fabi200123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112599", - "pr_number": 112599, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scalability", - "scheduling", - "node", - "autoscaling", - "windows" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "113374": { - "commit": "9f319c32064f8b72d368df65fde4e37e250f8230", - "text": "Added support for projecting `certificates.k8s.io/v1alpha1` ClusterTrustBundle objects into pods.", - "markdown": "Added support for projecting `certificates.k8s.io/v1alpha1` ClusterTrustBundle objects into pods. ([#113374](https://github.com/kubernetes/kubernetes/pull/113374), [@ahmedtd](https://github.com/ahmedtd))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/bddca24910fb349e2eb0ac1c822c77f0f32fe9c6/keps/sig-auth/3257-trust-anchor-sets", - "type": "KEP" - } - ], - "author": "ahmedtd", - "author_url": "https://github.com/ahmedtd", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/113374", - "pr_number": 113374, - "areas": [ - "test", - "kubelet", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "114095": { - "commit": "6cbc5dfac6581b1a067dd4caf005dba5ad495d9d", - "text": "`scheduler`: Fixed missing field `apiVersion` from events reported by the taint\nmanager.", - "markdown": "`scheduler`: Fixed missing field `apiVersion` from events reported by the taint\n manager. ([#114095](https://github.com/kubernetes/kubernetes/pull/114095), [@aimuz](https://github.com/aimuz))", - "author": "aimuz", - "author_url": "https://github.com/aimuz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114095", - "pr_number": 114095, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "node", - "apps" - ], - "duplicate": true - }, - "115702": { - "commit": "4911aad4636ab177333db63297fb4a9a562a8f20", - "text": "Fixed the bug where kubelet couldn't output logs after log file rotated when `kubectl logs POD_NAME -f` is running.", - "markdown": "Fixed the bug where kubelet couldn't output logs after log file rotated when `kubectl logs POD_NAME -f` is running. ([#115702](https://github.com/kubernetes/kubernetes/pull/115702), [@xyz-li](https://github.com/xyz-li))", - "author": "xyz-li", - "author_url": "https://github.com/xyz-li", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115702", - "pr_number": 115702, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "116065": { - "commit": "581552eaf0b4a6689f2a02012804f2780ff7efdf", - "text": "The `matchLabelKeys/mismatchLabelKeys` feature is introduced to the hard/soft `PodAffinity/PodAntiAffinity`.", - "markdown": "The `matchLabelKeys/mismatchLabelKeys` feature is introduced to the hard/soft `PodAffinity/PodAntiAffinity`. ([#116065](https://github.com/kubernetes/kubernetes/pull/116065), [@sanposhiho](https://github.com/sanposhiho))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3633-matchlabelkeys-to-podaffinity", - "type": "KEP" - } - ], - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116065", - "pr_number": 116065, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery", - "apps", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116252": { - "commit": "f5d7c34b67c4fcdbc004bed5d211ef00b27c9ace", - "text": "Creation of new `CronJob` objects containing `TZ` or `CRON_TZ` in `.spec.schedule`, accidentally enabled in `v1.22`, is now disallowed. Use the `.spec.timeZone` field instead, supported in `v1.25+` clusters in default configurations. See https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#unsupported-timezone-specification for more information.", - "markdown": "Creation of new `CronJob` objects containing `TZ` or `CRON_TZ` in `.spec.schedule`, accidentally enabled in `v1.22`, is now disallowed. Use the `.spec.timeZone` field instead, supported in `v1.25+` clusters in default configurations. See https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#unsupported-timezone-specification for more information. ([#116252](https://github.com/kubernetes/kubernetes/pull/116252), [@soltysh](https://github.com/soltysh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3140", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116252", - "pr_number": 116252, - "kinds": [ - "cleanup", - "api-change", - "deprecation" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "116516": { - "commit": "6abff7457e3a722fd217a0a58d1992b4002d496d", - "text": "Added a new `ServiceCIDR` type that allows to dynamically configure the cluster range used to allocate `Service ClusterIPs` addresses.", - "markdown": "Added a new `ServiceCIDR` type that allows to dynamically configure the cluster range used to allocate `Service ClusterIPs` addresses. ([#116516](https://github.com/kubernetes/kubernetes/pull/116516), [@aojea](https://github.com/aojea))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/1880-multiple-service-cidrs", - "type": "KEP" - }, - { - "description": "Demo", - "url": "https://gist.github.com/aojea/c20eb117bf1c1214f8bba26c495be9c7", - "type": "external" - }, - { - "description": "kubectl apply -f", - "url": "https://gist.githubusercontent.com/aojea/90768935ab71cb31950b6a13078a7e92/raw/99ceac308f2b2658c7313198a39fbe24b155ae68/dual-stack.yaml", - "type": "external" - }, - { - "description": "deployment.apps/", - "url": "httpd-deployment created", - "type": "external" - }, - { - "description": "Error from server (Invalid): error when creating \"", - "url": "https://gist.githubusercontent.com/aojea/90768935ab71cb31950b6a13078a7e92/raw/99ceac308f2b2658c7313198a39fbe24b155ae68/dual-stack.yaml\": Service \"my-service-v6\" is invalid: spec.ipFamilies[0]: Invalid value: \"IPv6\": not configured on this cluster", - "type": "external" - }, - { - "description": "Error from server (Invalid): error when creating \"", - "url": "https://gist.githubusercontent.com/aojea/90768935ab71cb31950b6a13078a7e92/raw/99ceac308f2b2658c7313198a39fbe24b155ae68/dual-stack.yaml\": Service \"my-service-require-dual\" is invalid: spec.ipFamilyPolicy: Invalid value: \"RequireDualStack\": this cluster is not configured for dual-stack services", - "type": "external" - } - ], - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116516", - "pr_number": 116516, - "areas": [ - "test", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "auth", - "apps", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "116752": { - "commit": "d7b7a85fbc0b3831cbc6a750a47dfdcdf777d519", - "text": "Changed `kubectl help` to display basic details for subcommands from plugins.", - "markdown": "Changed `kubectl help` to display basic details for subcommands from plugins. ([#116752](https://github.com/kubernetes/kubernetes/pull/116752), [@xvzf](https://github.com/xvzf))", - "author": "xvzf", - "author_url": "https://github.com/xvzf", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116752", - "pr_number": 116752, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "116803": { - "commit": "9c5698f5146bb335d312a802ec5a7baf2bfa6bf0", - "text": "Migrated the `volumebinding scheduler plugins` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the `volumebinding scheduler plugins` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116803](https://github.com/kubernetes/kubernetes/pull/116803), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116803", - "pr_number": 116803, - "areas": [ - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "116884": { - "commit": "89b4153d4d697e02e3be954cc0df1011eb7f166a", - "text": "Migrated the `nodevolumelimits` scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the `nodevolumelimits` scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116884](https://github.com/kubernetes/kubernetes/pull/116884), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116884", - "pr_number": 116884, - "areas": [ - "test", - "logging" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "116897": { - "commit": "addc0391e779bbcceebc56043c8093206cfda38c", - "text": "Graduated the following kubelet resource metrics to **general availability**:\n- `container_cpu_usage_seconds_total`\n- `container_memory_working_set_bytes`\n- `container_start_time_seconds`\n- `node_cpu_usage_seconds_total`\n- `node_memory_working_set_bytes`\n- `pod_cpu_usage_seconds_total`\n- `pod_memory_working_set_bytes`\n- `resource_scrape_error`\n\nDeprecated (renamed) `scrape_error` in favor of `resource_scrape_error`", - "markdown": "Graduated the following kubelet resource metrics to **general availability**:\n - `container_cpu_usage_seconds_total`\n - `container_memory_working_set_bytes`\n - `container_start_time_seconds`\n - `node_cpu_usage_seconds_total`\n - `node_memory_working_set_bytes`\n - `pod_cpu_usage_seconds_total`\n - `pod_memory_working_set_bytes`\n - `resource_scrape_error`\n \n Deprecated (renamed) `scrape_error` in favor of `resource_scrape_error` ([#116897](https://github.com/kubernetes/kubernetes/pull/116897), [@Richabanker](https://github.com/Richabanker)) [SIG Architecture, Instrumentation, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/727", - "type": "external" - } - ], - "author": "Richabanker", - "author_url": "https://github.com/Richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116897", - "pr_number": 116897, - "areas": [ - "test", - "kubelet", - "conformance", - "e2e-test-framework", - "stable-metrics" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "instrumentation", - "testing", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "116938": { - "commit": "78b34aa8fc2cef93ad74d592e256cf424430b439", - "text": "Fixed inconsistency in the calculation of number of nodes that have an image, which affect the scoring in the `ImageLocality` plugin.", - "markdown": "Fixed inconsistency in the calculation of number of nodes that have an image, which affect the scoring in the `ImageLocality` plugin. ([#116938](https://github.com/kubernetes/kubernetes/pull/116938), [@olderTaoist](https://github.com/olderTaoist))", - "author": "olderTaoist", - "author_url": "https://github.com/olderTaoist", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116938", - "pr_number": 116938, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "117326": { - "commit": "4f303d123659fb3aac2108f8439c7f43dde438b5", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#117326](https://github.com/kubernetes/kubernetes/pull/117326), [@akhilerm](https://github.com/akhilerm)) [SIG Node]", - "author": "akhilerm", - "author_url": "https://github.com/akhilerm", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117326", - "pr_number": 117326, - "areas": [ - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "117411": { - "commit": "52cba2d8d8be6a6ceec840a31d4a762a44967ce4", - "text": "Added multiplication functionality to `Quantity`.", - "markdown": "Added multiplication functionality to `Quantity`. ([#117411](https://github.com/kubernetes/kubernetes/pull/117411), [@tenzen-y](https://github.com/tenzen-y))", - "author": "tenzen-y", - "author_url": "https://github.com/tenzen-y", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117411", - "pr_number": 117411, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "117502": { - "commit": "61d87fdb2e6c656f3d7123570c78ada5dca59079", - "text": "Added `kubectl node drain` helper callbacks `OnPodDeletionOrEvictionStarted`\nand `OnPodDeletionOrEvictionFailed`; people extending `kubectl` can use these\nnew callbacks for more granularity. Deprecated the `OnPodDeletedOrEvicted`\nnode drain helper callback.", - "markdown": "Added `kubectl node drain` helper callbacks `OnPodDeletionOrEvictionStarted`\n and `OnPodDeletionOrEvictionFailed`; people extending `kubectl` can use these\n new callbacks for more granularity. Deprecated the `OnPodDeletedOrEvicted`\n node drain helper callback. ([#117502](https://github.com/kubernetes/kubernetes/pull/117502), [@adilGhaffarDev](https://github.com/adilGhaffarDev))", - "author": "adilGhaffarDev", - "author_url": "https://github.com/adilGhaffarDev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117502", - "pr_number": 117502, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "117503": { - "commit": "a607dfb3ff3c70c8df77a90486fb9930cfb2a94d", - "text": "In-tree cloud providers are now switched off by default. Please use `DisableCloudProviders` and `DisableKubeletCloudCredentialProvider` feature flags if you still need this functionality.", - "markdown": "In-tree cloud providers are now switched off by default. Please use `DisableCloudProviders` and `DisableKubeletCloudCredentialProvider` feature flags if you still need this functionality. ([#117503](https://github.com/kubernetes/kubernetes/pull/117503), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117503", - "pr_number": 117503, - "areas": [ - "test", - "apiserver", - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "117615": { - "commit": "e1824b6a4777bb9f9b936d11e066190841011ac7", - "text": "Empty values are no longer assigned to undefined resources (CPU or memory) when storing the resources allocated to the pod in checkpoint.", - "markdown": "Empty values are no longer assigned to undefined resources (CPU or memory) when storing the resources allocated to the pod in checkpoint. ([#117615](https://github.com/kubernetes/kubernetes/pull/117615), [@aheng-ch](https://github.com/aheng-ch))", - "author": "aheng-ch", - "author_url": "https://github.com/aheng-ch", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117615", - "pr_number": 117615, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "117720": { - "commit": "cd91351dff037d9b50a09ddb4ee426bdfff1d877", - "text": "The `kube-scheduler` `selectorSpread` plugin has been removed, please use the `podTopologySpread` plugin instead.", - "markdown": "The `kube-scheduler` `selectorSpread` plugin has been removed, please use the `podTopologySpread` plugin instead. ([#117720](https://github.com/kubernetes/kubernetes/pull/117720), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117720", - "pr_number": 117720, - "kinds": [ - "cleanup", - "api-change", - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "duplicate_kind": true, - "action_required": true - }, - "117977": { - "commit": "322acc0f8850e6c27995be937f297c29b1888e68", - "text": "The `horizontalpodautoscaling` and `clusterrole-aggregation` controllers now assume the `autoscaling/v1` and `rbac.authorization.k8s.io/v1` APIs are available. If you disable those APIs and do not want to run those controllers, exclude them by passing `--controllers=-horizontalpodautoscaling` or `--controllers=-clusterrole-aggregation` to `kube-controller-manager`.", - "markdown": "The `horizontalpodautoscaling` and `clusterrole-aggregation` controllers now assume the `autoscaling/v1` and `rbac.authorization.k8s.io/v1` APIs are available. If you disable those APIs and do not want to run those controllers, exclude them by passing `--controllers=-horizontalpodautoscaling` or `--controllers=-clusterrole-aggregation` to `kube-controller-manager`. ([#117977](https://github.com/kubernetes/kubernetes/pull/117977), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Cloud Provider]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117977", - "pr_number": 117977, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "duplicate": true - }, - "117992": { - "commit": "7407f36b4b8937f982def35dd99b5647fc5245c5", - "text": "Fixed an issue with the `garbagecollection` controller registering duplicate event handlers if discovery requests failed.", - "markdown": "Fixed an issue with the `garbagecollection` controller registering duplicate event handlers if discovery requests failed. ([#117992](https://github.com/kubernetes/kubernetes/pull/117992), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117992", - "pr_number": 117992, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true - }, - "118146": { - "commit": "b5ba899dfa365cc5262f45bf6227a88c97bdb143", - "text": "`kube-proxy` now reports its health more accurately in dual-stack clusters when there are problems with only one IP family.", - "markdown": "`kube-proxy` now reports its health more accurately in dual-stack clusters when there are problems with only one IP family. ([#118146](https://github.com/kubernetes/kubernetes/pull/118146), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118146", - "pr_number": 118146, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true - }, - "118189": { - "commit": "10a252aa543e0e15e1d4b1ba640d82055a44f082", - "text": "Fixed a concurrent map access in `TopologyCache`'s `HasPopulatedHints` method.", - "markdown": "Fixed a concurrent map access in `TopologyCache`'s `HasPopulatedHints` method. ([#118189](https://github.com/kubernetes/kubernetes/pull/118189), [@Miciah](https://github.com/Miciah))", - "author": "Miciah", - "author_url": "https://github.com/Miciah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118189", - "pr_number": 118189, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "apps" - ], - "duplicate": true - }, - "118299": { - "commit": "3c94af73e1b08eb2a12208c94fe01ad22b08000e", - "text": "List of metric labels can now be configured by supplying a manifest using the `--allow-metric-labels-manifest` flag.", - "markdown": "List of metric labels can now be configured by supplying a manifest using the `--allow-metric-labels-manifest` flag. ([#118299](https://github.com/kubernetes/kubernetes/pull/118299), [@rexagod](https://github.com/rexagod))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/2305-metrics-cardinality-enforcement", - "type": "KEP" - } - ], - "author": "rexagod", - "author_url": "https://github.com/rexagod", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118299", - "pr_number": 118299, - "areas": [ - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "118455": { - "commit": "1acd489dca47a4be0301330cbfcf4e8f9d98f7c0", - "text": "Improved memory usage of `kube-controller-manager` by dropping the `.metadata.managedFields` field that `kube-controller-manager` doesn't require.", - "markdown": "Improved memory usage of `kube-controller-manager` by dropping the `.metadata.managedFields` field that `kube-controller-manager` doesn't require. ([#118455](https://github.com/kubernetes/kubernetes/pull/118455), [@linxiulei](https://github.com/linxiulei))", - "author": "linxiulei", - "author_url": "https://github.com/linxiulei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118455", - "pr_number": 118455, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "duplicate": true - }, - "118463": { - "commit": "9aa04752e7b0ca01f8bb774260592e0fa735eda7", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#118463](https://github.com/kubernetes/kubernetes/pull/118463), [@testwill](https://github.com/testwill)) [SIG Network, Node, Scheduling and Testing]", - "author": "testwill", - "author_url": "https://github.com/testwill", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118463", - "pr_number": 118463, - "areas": [ - "test", - "network-policy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "scheduling", - "node", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "118568": { - "commit": "4fd8bd997501021627d44ec256b73446f732ad5e", - "text": "`kubelet` will now expose latency metrics of different stages of the node startup.", - "markdown": "`kubelet` will now expose latency metrics of different stages of the node startup. ([#118568](https://github.com/kubernetes/kubernetes/pull/118568), [@qiutongs](https://github.com/qiutongs))", - "author": "qiutongs", - "author_url": "https://github.com/qiutongs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118568", - "pr_number": 118568, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scalability", - "node", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "118598": { - "commit": "fa14f7004771cdbfd4f4bf0fc584e0b4a35e4ccb", - "text": "Use of secret-based service account tokens now adds an `authentication.k8s.io/legacy-token-autogenerated-secret` or `authentication.k8s.io/legacy-token-manual-secret` audit annotation containing the name of the secret used.", - "markdown": "Use of secret-based service account tokens now adds an `authentication.k8s.io/legacy-token-autogenerated-secret` or `authentication.k8s.io/legacy-token-manual-secret` audit annotation containing the name of the secret used. ([#118598](https://github.com/kubernetes/kubernetes/pull/118598), [@yuanchen8911](https://github.com/yuanchen8911)) [SIG Auth, Instrumentation and Testing]", - "author": "yuanchen8911", - "author_url": "https://github.com/yuanchen8911", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118598", - "pr_number": 118598, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "118619": { - "commit": "19deb04a9079e01e0f9e04cd8f94a1173694916b", - "text": "Dynamic resource allocation: will now avoid creating a new gRPC connection for every call of prepare/unprepare resource(s).", - "markdown": "Dynamic resource allocation: will now avoid creating a new gRPC connection for every call of prepare/unprepare resource(s). ([#118619](https://github.com/kubernetes/kubernetes/pull/118619), [@TommyStarK](https://github.com/TommyStarK))", - "author": "TommyStarK", - "author_url": "https://github.com/TommyStarK", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118619", - "pr_number": 118619, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "118647": { - "commit": "b4fd1626647ddde8b556217314f5bae6047af2d8", - "text": "Added `CAP_NET_RAW` to netadmin debug profile and removed privileges when debugging nodes.", - "markdown": "Added `CAP_NET_RAW` to netadmin debug profile and removed privileges when debugging nodes. ([#118647](https://github.com/kubernetes/kubernetes/pull/118647), [@mochizuki875](https://github.com/mochizuki875))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug#profile-netadmin", - "type": "KEP" - } - ], - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118647", - "pr_number": 118647, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "118653": { - "commit": "f852d7fead3446112d4dc8acd29869a860a11ff5", - "text": "Go API: the `ResourceRequirements` struct was replaced with `VolumeResourceRequirements` for use with volumes.", - "markdown": "Go API: the `ResourceRequirements` struct was replaced with `VolumeResourceRequirements` for use with volumes. ([#118653](https://github.com/kubernetes/kubernetes/pull/118653), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118653", - "pr_number": 118653, - "areas": [ - "test", - "kubelet", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "api-machinery", - "auth", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "118704": { - "commit": "3d77b95bcfd79299347cf8ea74540a22bda08f72", - "text": "Updated the CRI-O socket path, so users who configure kubelet to use a location like `/run/crio/crio.sock` don't see strange behaviour from CRI stats provider.", - "markdown": "Updated the CRI-O socket path, so users who configure kubelet to use a location like `/run/crio/crio.sock` don't see strange behaviour from CRI stats provider. ([#118704](https://github.com/kubernetes/kubernetes/pull/118704), [@dgl](https://github.com/dgl))", - "author": "dgl", - "author_url": "https://github.com/dgl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118704", - "pr_number": 118704, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "118705": { - "commit": "57c7b666c42d2188a8486ee383ba2039bceb9830", - "text": "Forbidden sysctls for pod sharing the respective namespaces with the host are now checked when creating or updating pods without such sysctls.", - "markdown": "Forbidden sysctls for pod sharing the respective namespaces with the host are now checked when creating or updating pods without such sysctls. ([#118705](https://github.com/kubernetes/kubernetes/pull/118705), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118705", - "pr_number": 118705, - "areas": [ - "kubelet", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "apps" - ], - "duplicate": true - }, - "118709": { - "commit": "5d94b2a8e8db3a8e10db792ee4d29df0640183f1", - "text": "None", - "markdown": "None ([#118709](https://github.com/kubernetes/kubernetes/pull/118709), [@ty-dc](https://github.com/ty-dc)) [SIG Network]", - "author": "ty-dc", - "author_url": "https://github.com/ty-dc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118709", - "pr_number": 118709, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "118748": { - "commit": "d486180eb050c756d9add30377980eced146ffa1", - "text": "Improved handling of jsonpath expressions for `kubectl wait --for`. It is now possible to use simple filter expressions which match on a field's content.", - "markdown": "Improved handling of jsonpath expressions for `kubectl wait --for`. It is now possible to use simple filter expressions which match on a field's content. ([#118748](https://github.com/kubernetes/kubernetes/pull/118748), [@andreaskaris](https://github.com/andreaskaris))", - "author": "andreaskaris", - "author_url": "https://github.com/andreaskaris", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118748", - "pr_number": 118748, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "118760": { - "commit": "1c8f88d4b688aabeb8fb24e790756a90bae6844a", - "text": "Added `UserNamespacesPodSecurityStandards` feature gate to enable user namespace support for Pod Security Standards.\nEnabling this feature will modify all Pod Security Standard rules to allow setting: `spec[.*].securityContext.[runAsNonRoot,runAsUser]`.\nThis feature gate should only be enabled if all nodes in the cluster support the user namespace feature and have it enabled.\nThe feature gate will not graduate or be enabled by default in future Kubernetes releases.", - "markdown": "Added `UserNamespacesPodSecurityStandards` feature gate to enable user namespace support for Pod Security Standards.\n Enabling this feature will modify all Pod Security Standard rules to allow setting: `spec[.*].securityContext.[runAsNonRoot,runAsUser]`.\n This feature gate should only be enabled if all nodes in the cluster support the user namespace feature and have it enabled.\n The feature gate will not graduate or be enabled by default in future Kubernetes releases. ([#118760](https://github.com/kubernetes/kubernetes/pull/118760), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Auth, Node and Release]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/127", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118760", - "pr_number": 118760, - "areas": [ - "apiserver", - "release-eng", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "release" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "118846": { - "commit": "a7f8c2f787a7bd85f92eea27cfa4716b49a93955", - "text": "`kubelet` now allows pods to use the `net.ipv4.tcp_keepalive_time` sysctl by default\nand the minimal kernel version is 4.5; Pod Security Admission allows this sysctl\nin `v1.29+` versions of the baseline and restricted policies.", - "markdown": "`kubelet` now allows pods to use the `net.ipv4.tcp_keepalive_time` sysctl by default\n and the minimal kernel version is 4.5; Pod Security Admission allows this sysctl\n in `v1.29+` versions of the baseline and restricted policies. ([#118846](https://github.com/kubernetes/kubernetes/pull/118846), [@cyclinder](https://github.com/cyclinder))", - "author": "cyclinder", - "author_url": "https://github.com/cyclinder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118846", - "pr_number": 118846, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "node", - "auth" - ], - "feature": true, - "duplicate": true - }, - "118923": { - "commit": "312dc127a90190afd3eca0855338dbd4a0a01b79", - "text": "The `volume_zone` plugin will consider `beta` labels as `GA` labels during the scheduling\nprocess. Therefore, if the values of the labels are the same, PVs with `beta` labels\ncan also be scheduled to nodes with `GA` labels.", - "markdown": "The `volume_zone` plugin will consider `beta` labels as `GA` labels during the scheduling\n process. Therefore, if the values of the labels are the same, PVs with `beta` labels\n can also be scheduled to nodes with `GA` labels. ([#118923](https://github.com/kubernetes/kubernetes/pull/118923), [@AxeZhan](https://github.com/AxeZhan))", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118923", - "pr_number": 118923, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "118942": { - "commit": "963400f1a2a1fc6c8650115c0372366ad3429b68", - "text": "`kubectl prune v2`: Switched annotation from `contains-group-resources` to `contains-group-kinds`,\nbecause this is what we defined in the KEP and is clearer to end-users. Although the functionality is\nin `alpha`, we will recognize the prior annotation. This migration support will be removed in `beta`/`GA`.", - "markdown": "`kubectl prune v2`: Switched annotation from `contains-group-resources` to `contains-group-kinds`,\n because this is what we defined in the KEP and is clearer to end-users. Although the functionality is\n in `alpha`, we will recognize the prior annotation. This migration support will be removed in `beta`/`GA`. ([#118942](https://github.com/kubernetes/kubernetes/pull/118942), [@justinsb](https://github.com/justinsb))", - "author": "justinsb", - "author_url": "https://github.com/justinsb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118942", - "pr_number": 118942, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "118950": { - "commit": "95bb02943deb22f738792fcbbcd2c8251c13960c", - "text": "\"NONE\"", - "markdown": "\"NONE\" ([#118950](https://github.com/kubernetes/kubernetes/pull/118950), [@ndixita](https://github.com/ndixita)) [SIG Node and Testing]", - "author": "ndixita", - "author_url": "https://github.com/ndixita", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118950", - "pr_number": 118950, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "118996": { - "commit": "8703ca2413f9cd55147c59588ede1b35bd48beda", - "text": "Kubernetes is now built with Go `1.21.0`.", - "markdown": "Kubernetes is now built with Go `1.21.0`. ([#118996](https://github.com/kubernetes/kubernetes/pull/118996), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118996", - "pr_number": 118996, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "119026": { - "commit": "f6ba25fdbda1f6159ad63dcbb16f394b98d3a2c8", - "text": "A new sleep action for the `PreStop` lifecycle hook was added, allowing containers to pause for a specified duration before termination.", - "markdown": "A new sleep action for the `PreStop` lifecycle hook was added, allowing containers to pause for a specified duration before termination. ([#119026](https://github.com/kubernetes/kubernetes/pull/119026), [@AxeZhan](https://github.com/AxeZhan))", - "documentation": [ - { - "description": "detailed KEP", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/3960-pod-lifecycle-sleep-action/README.md", - "type": "KEP" - } - ], - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119026", - "pr_number": 119026, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "119049": { - "commit": "224087abfa0d0dc25f2c6c8e86cb617d0430e908", - "text": "Added a new scheduler metric, `pod_scheduling_sli_duration_seconds`, and started the deprecation for `pod_scheduling_duration_seconds`.", - "markdown": "Added a new scheduler metric, `pod_scheduling_sli_duration_seconds`, and started the deprecation for `pod_scheduling_duration_seconds`. ([#119049](https://github.com/kubernetes/kubernetes/pull/119049), [@helayoty](https://github.com/helayoty))", - "author": "helayoty", - "author_url": "https://github.com/helayoty", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119049", - "pr_number": 119049, - "areas": [ - "test", - "stable-metrics" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "119100": { - "commit": "414a5f669259859d971b2ae927ecc307d91d4bce", - "text": "Removed `GA` feature gate for `JobTrackingWithFinalizers` in `v1.28`.", - "markdown": "Removed `GA` feature gate for `JobTrackingWithFinalizers` in `v1.28`. ([#119100](https://github.com/kubernetes/kubernetes/pull/119100), [@bzsuni](https://github.com/bzsuni))", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119100", - "pr_number": 119100, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ] - }, - "119105": { - "commit": "0d3eafdfa39b23f035e66c4575490ed14a12c198", - "text": "Added more accurate requeueing in scheduling queue for Pods rejected by the temporal failure (e.g., temporal failure on `kube-apiserver`).", - "markdown": "Added more accurate requeueing in scheduling queue for Pods rejected by the temporal failure (e.g., temporal failure on `kube-apiserver`). ([#119105](https://github.com/kubernetes/kubernetes/pull/119105), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119105", - "pr_number": 119105, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true - }, - "119109": { - "commit": "ceea5fd0cbcb29212bed8c93f1aa81ce45d3cf69", - "text": "`ValidatingAdmissionPolicy` type checking now supports CRDs and API extensions types.", - "markdown": "`ValidatingAdmissionPolicy` type checking now supports CRDs and API extensions types. ([#119109](https://github.com/kubernetes/kubernetes/pull/119109), [@jiahuif](https://github.com/jiahuif))", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119109", - "pr_number": 119109, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "119142": { - "commit": "f68c66f96dc7efd86c43bc6ca34bfdaa552a0892", - "text": "`kube-apiserver`: added `--authentication-config` flag for reading `AuthenticationConfiguration`\nfiles. `--authentication-config` flag is mutually exclusive with the existing `--oidc-*`\nflags.", - "markdown": "`kube-apiserver`: adds `--authentication-config` flag for reading `AuthenticationConfiguration`\n files. `--authentication-config` flag is mutually exclusive with the existing `--oidc-*`\n flags. ([#119142](https://github.com/kubernetes/kubernetes/pull/119142), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119142", - "pr_number": 119142, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "119150": { - "commit": "8777747c9857da16af6cc3ae3a90b9f1fff04758", - "text": "Allowed specifying `ExternalTrafficPolicy` for `Services` with `ExternalIPs`.", - "markdown": "Allowed specifying `ExternalTrafficPolicy` for `Services` with `ExternalIPs`. ([#119150](https://github.com/kubernetes/kubernetes/pull/119150), [@tnqn](https://github.com/tnqn))", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119150", - "pr_number": 119150, - "areas": [ - "test", - "kubectl", - "release-eng" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "api-machinery", - "apps", - "cli", - "testing", - "release", - "cloud-provider" - ], - "duplicate": true - }, - "119155": { - "commit": "ff4ba92b1c467b1cbd4c28bafe5e60dbba819447", - "text": "`kube-scheduler` now implements scheduling hints for the `NodeAffinity` plugin.\nThe scheduling hints allow the scheduler to only retry scheduling a `Pod`\nthat was previously rejected by the `NodeAffinity` plugin if a new `Node` or a `Node` update matches the `Pod`'s node affinity.", - "markdown": "`kube-scheduler` now implements scheduling hints for the `NodeAffinity` plugin.\n The scheduling hints allow the scheduler to only retry scheduling a `Pod`\n that was previously rejected by the `NodeAffinity` plugin if a new `Node` or a `Node` update matches the `Pod`'s node affinity. ([#119155](https://github.com/kubernetes/kubernetes/pull/119155), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119155", - "pr_number": 119155, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "119208": { - "commit": "e4212878ddd10ee276574e1a60934ae94d980f2b", - "text": "Decoupled `TaintManager` from `NodeLifeCycleController` (KEP-3902).", - "markdown": "Decoupled `TaintManager` from `NodeLifeCycleController` (KEP-3902). ([#119208](https://github.com/kubernetes/kubernetes/pull/119208), [@atosatto](https://github.com/atosatto))", - "author": "atosatto", - "author_url": "https://github.com/atosatto", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119208", - "pr_number": 119208, - "areas": [ - "test", - "stable-metrics" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "119290": { - "commit": "3ac83f528dde9d6f37f0ca164d5642226f2380a7", - "text": "Added a return value to `QueueingHint` to indicate an error. If `QueueingHint` returns an error,\nthe scheduler logs it and treats the event as a `QueueAfterBackoff` so that\nthe Pod won't be stuck in the unschedulable pod pool.", - "markdown": "Added a return value to `QueueingHint` to indicate an error. If `QueueingHint` returns an error,\n the scheduler logs it and treats the event as a `QueueAfterBackoff` so that\n the Pod won't be stuck in the unschedulable pod pool. ([#119290](https://github.com/kubernetes/kubernetes/pull/119290), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119290", - "pr_number": 119290, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "119317": { - "commit": "963c9b3cb9124921e48ca6c609f3b5fd728c631c", - "text": "Revised the logic for `DaemonSet` rolling update to exclude nodes if scheduling constraints are not met. This eliminates the problem of rolling updates to a `DaemonSet` getting stuck around tolerations.", - "markdown": "Revised the logic for `DaemonSet` rolling update to exclude nodes if scheduling constraints are not met. This eliminates the problem of rolling updates to a `DaemonSet` getting stuck around tolerations. ([#119317](https://github.com/kubernetes/kubernetes/pull/119317), [@mochizuki875](https://github.com/mochizuki875))", - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119317", - "pr_number": 119317, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "119346": { - "commit": "3cf3702d1e638548ba9fcfd957ebae43e1a573cb", - "text": "`kubeadm`: printing the default component configs for `reset` and `join` is now\nunsupported.", - "markdown": "`kubeadm`: printing the default component configs for `reset` and `join` is now\n unsupported. ([#119346](https://github.com/kubernetes/kubernetes/pull/119346), [@chendave](https://github.com/chendave))", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119346", - "pr_number": 119346, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "119385": { - "commit": "338d68bbc2b5e69c18fed5eea11cc683e72dcbdf", - "text": "Introduced new apiserver metric `apiserver_flowcontrol_current_inqueue_seats`. This metric is analogous to `apiserver_flowcontrol_current_inqueue_requests`, but tracks the total number of seats, as each request can take more than one seat.", - "markdown": "Introduced new apiserver metric `apiserver_flowcontrol_current_inqueue_seats`. This metric is analogous to `apiserver_flowcontrol_current_inqueue_requests`, but tracks the total number of seats, as each request can take more than one seat. ([#119385](https://github.com/kubernetes/kubernetes/pull/119385), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119385", - "pr_number": 119385, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "119394": { - "commit": "d4050a80c70ec7cb66b48e54b457d5a1effe1bc8", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119394](https://github.com/kubernetes/kubernetes/pull/119394), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119394", - "pr_number": 119394, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true, - "do_not_publish": true - }, - "119396": { - "commit": "fc786dcd1d2efcc241e0e2392086934f2806555d", - "text": "`kube-scheduler` now implements scheduling hints for the `NodeUnschedulable` plugin.\nThe scheduling hints allow the scheduler to only retry scheduling a `Pod`\nthat was previously rejected by the `NodeSchedulable` plugin if a new `Node` or a `Node` update sets `.spec.unschedulable` to false.", - "markdown": "`kube-scheduler` now implements scheduling hints for the `NodeUnschedulable` plugin.\n The scheduling hints allow the scheduler to only retry scheduling a `Pod`\n that was previously rejected by the `NodeSchedulable` plugin if a new `Node` or a `Node` update sets `.spec.unschedulable` to false. ([#119396](https://github.com/kubernetes/kubernetes/pull/119396), [@wackxu](https://github.com/wackxu))", - "author": "wackxu", - "author_url": "https://github.com/wackxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119396", - "pr_number": 119396, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "119399": { - "commit": "ea30d100f6b13a47b4153362698b89256077776c", - "text": "Optimized `NodeUnschedulable` Filter to avoid unnecessary calculations.", - "markdown": "Optimized `NodeUnschedulable` Filter to avoid unnecessary calculations. ([#119399](https://github.com/kubernetes/kubernetes/pull/119399), [@wackxu](https://github.com/wackxu))", - "author": "wackxu", - "author_url": "https://github.com/wackxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119399", - "pr_number": 119399, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "119410": { - "commit": "ea3353dd6b8c3ba52516230a5e70b1af0ff9192b", - "text": "`kubectl` will not support the `/swagger-2.0.0.pb-v1` endpoint that has been long deprecated.", - "markdown": "`kubectl` will not support the `/swagger-2.0.0.pb-v1` endpoint that has been long deprecated. ([#119410](https://github.com/kubernetes/kubernetes/pull/119410), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119410", - "pr_number": 119410, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "119447": { - "commit": "bfeb3c26217aa5cb3073ef5bc42d75a1a15931c9", - "text": "Fixed a bug where the CPU set allocated to an init container, with containerRestartPolicy of `Always`, were erroneously reused by a regular container.", - "markdown": "Fixed a bug where the CPU set allocated to an init container, with containerRestartPolicy of `Always`, were erroneously reused by a regular container. ([#119447](https://github.com/kubernetes/kubernetes/pull/119447), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", - "type": "KEP" - } - ], - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119447", - "pr_number": 119447, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "119495": { - "commit": "440eb7eadb6b14a22ea32a9176af601df10ec78f", - "text": "The `flowcontrol.apiserver.k8s.io/v1beta2` API version of `FlowSchema` and `PriorityLevelConfiguration` is no longer served in `v1.29`. Migrate manifests and API clients to use the `flowcontrol.apiserver.k8s.io/v1beta3` API version, available since `v1.26`. More information is at https://kubernetes.io/docs/reference/using-api/deprecation-guide/#flowcontrol-resources-v129.", - "markdown": "The `flowcontrol.apiserver.k8s.io/v1beta2` API version of `FlowSchema` and `PriorityLevelConfiguration` is no longer served in v1.29. Migrate manifests and API clients to use the `flowcontrol.apiserver.k8s.io/v1beta3` API version, available since v1.26. More information is at https://kubernetes.io/docs/reference/using-api/deprecation-guide/#flowcontrol-resources-v129. ([#119495](https://github.com/kubernetes/kubernetes/pull/119495), [@bzsuni](https://github.com/bzsuni))", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119495", - "pr_number": 119495, - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "119503": { - "commit": "2e6eafca3f466b072f23aff4ff4d6d8a973f5606", - "text": "Graduated API List chunking (aka pagination) feature to `stable`.", - "markdown": "Graduated API List chunking (aka pagination) feature to `stable`. ([#119503](https://github.com/kubernetes/kubernetes/pull/119503), [@wojtek-t](https://github.com/wojtek-t))", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119503", - "pr_number": 119503, - "areas": [ - "test", - "apiserver", - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "119515": { - "commit": "b406e49123d10cd3b33a958c6b4039830e3b98e2", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119515](https://github.com/kubernetes/kubernetes/pull/119515), [@haojue](https://github.com/haojue)) [SIG Cluster Lifecycle]", - "author": "haojue", - "author_url": "https://github.com/haojue", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119515", - "pr_number": 119515, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "119517": { - "commit": "8d4ccd67e332ed5ac0295e169b931782d63c96c8", - "text": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119517](https://github.com/kubernetes/kubernetes/pull/119517), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "http://kep.k8s.io/4247", - "type": "external" - } - ], - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119517", - "pr_number": 119517, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "119522": { - "commit": "873eb57a4eec0d3898576c372eefdf20532ff1f9", - "text": "Added a check on a user attempting to create a static pod via the `kubelet` without specifying a name. They will now get a visible validation error.", - "markdown": "Added a check on a user attempting to create a static pod via the `kubelet` without specifying a name. They will now get a visible validation error. ([#119522](https://github.com/kubernetes/kubernetes/pull/119522), [@YTGhost](https://github.com/YTGhost))", - "author": "YTGhost", - "author_url": "https://github.com/YTGhost", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119522", - "pr_number": 119522, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "119525": { - "commit": "0df4a69f5c90990d47d1337e5fc99a764ff99474", - "text": "The `--bind-address` parameter in kube-proxy is misleading, no port is opened with this address. Instead it is translated internally to \"nodeIP\". The nodeIPs for both families are now taken from the Node object if `--bind-address` is unspecified or set to the \"any\" address (0.0.0.0 or ::). It is recommended to leave `--bind-address` unspecified, and in particular avoid to set it to localhost (127.0.0.1 or ::1)", - "markdown": "The `--bind-address` parameter in kube-proxy is misleading, no port is opened with this address. Instead it is translated internally to \"nodeIP\". The nodeIPs for both families are now taken from the Node object if `--bind-address` is unspecified or set to the \"any\" address (0.0.0.0 or ::). It is recommended to leave `--bind-address` unspecified, and in particular avoid to set it to localhost (127.0.0.1 or ::1) ([#119525](https://github.com/kubernetes/kubernetes/pull/119525), [@uablrek](https://github.com/uablrek)) [SIG Network and Scalability]", - "author": "uablrek", - "author_url": "https://github.com/uablrek", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119525", - "pr_number": 119525, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "scalability" - ], - "duplicate": true - }, - "119537": { - "commit": "0b70423e243ea38be694a0e20dd7d9f19b06c09e", - "text": "Removed ephemeral container legacy server support for the server versions prior to `1.22`.", - "markdown": "Removed ephemeral container legacy server support for the server versions prior to `1.22`. ([#119537](https://github.com/kubernetes/kubernetes/pull/119537), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119537", - "pr_number": 119537, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "119556": { - "commit": "f082fab916d3cd6a352a09a14749454e7ea65670", - "text": "Improved memory usage of `kube-scheduler` by dropping the `.metadata.managedFields` field that `kube-scheduler` doesn't require.", - "markdown": "Improved memory usage of `kube-scheduler` by dropping the `.metadata.managedFields` field that `kube-scheduler` doesn't require. ([#119556](https://github.com/kubernetes/kubernetes/pull/119556), [@linxiulei](https://github.com/linxiulei))", - "author": "linxiulei", - "author_url": "https://github.com/linxiulei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119556", - "pr_number": 119556, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "119557": { - "commit": "fcfc2d05a4737646c7951943cc70c5900bf61145", - "text": "Implemented API for streaming for the `etcd` store implementation.\nWhen `sendInitialEvents ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic `Bookmark`, after which the server continues streaming events.", - "markdown": "Implemented API for streaming for the `etcd` store implementation.\n When `sendInitialEvents ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic `Bookmark`, after which the server continues streaming events. ([#119557](https://github.com/kubernetes/kubernetes/pull/119557), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3157-watch-list", - "type": "KEP" - } - ], - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119557", - "pr_number": 119557, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "119579": { - "commit": "59f81980a18061bf3785f7cc8232d7d8a4715b35", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119579](https://github.com/kubernetes/kubernetes/pull/119579), [@yt2985](https://github.com/yt2985)) [SIG Testing]", - "author": "yt2985", - "author_url": "https://github.com/yt2985", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119579", - "pr_number": 119579, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "cleanup", - "failing-test" - ], - "sigs": [ - "testing" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "119592": { - "commit": "b4db99efb3b39a9fc5e2ccd1f3c075dfb2e33f2a", - "text": "The `Dockerfile` for the kubectl image has been updated with the addition of a specific base image and essential utilities (bash and jq).", - "markdown": "The `Dockerfile` for the kubectl image has been updated with the addition of a specific base image and essential utilities (bash and jq). ([#119592](https://github.com/kubernetes/kubernetes/pull/119592), [@rayandas](https://github.com/rayandas))", - "author": "rayandas", - "author_url": "https://github.com/rayandas", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119592", - "pr_number": 119592, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "cli", - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "119659": { - "commit": "8923c3c8719c4caf4ab756e8892eea1b905ebc01", - "text": "Promoted `PodReadyToStartContainers` condition to `beta`.", - "markdown": "Promoted `PodReadyToStartContainers` condition to `beta`. ([#119659](https://github.com/kubernetes/kubernetes/pull/119659), [@kannon92](https://github.com/kannon92))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3085-pod-conditions-for-starting-completition-of-sandbox-creation", - "type": "KEP" - } - ], - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119659", - "pr_number": 119659, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "119661": { - "commit": "92b7905143b1436c732e1b91cfbedebdb92bface", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#119661](https://github.com/kubernetes/kubernetes/pull/119661), [@cartermckinnon](https://github.com/cartermckinnon)) [SIG API Machinery and Node]", - "author": "cartermckinnon", - "author_url": "https://github.com/cartermckinnon", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119661", - "pr_number": 119661, - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "api-machinery" - ], - "duplicate": true, - "do_not_publish": true - }, - "119665": { - "commit": "a2cc9db02fa6420c7905ef372cae6695fddb1120", - "text": "`GetPodQOS(pod *core.Pod)` function now returns the stored value from `PodStatus.QOSClass`, if set. To compute/evaluate the value of `QOSClass` from scratch, `ComputePodQOS(pod*core.Pod)` must be used.", - "markdown": "`GetPodQOS(pod *core.Pod)` function now returns the stored value from `PodStatus.QOSClass`, if set. To compute/evaluate the value of `QOSClass` from scratch, `ComputePodQOS(pod*core.Pod)` must be used. ([#119665](https://github.com/kubernetes/kubernetes/pull/119665), [@vinaykul](https://github.com/vinaykul))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "vinaykul", - "author_url": "https://github.com/vinaykul", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119665", - "pr_number": 119665, - "areas": [ - "test", - "kubelet", - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "apps", - "cli", - "testing" - ], - "duplicate": true - }, - "119705": { - "commit": "9284a42a40f51a05a92f8d39d02e34792fd3c96f", - "text": "Removed `generatedfiles` from the Makefile.", - "markdown": "Removed `generatedfiles` from the Makefile. ([#119705](https://github.com/kubernetes/kubernetes/pull/119705), [@ty-dc](https://github.com/ty-dc))", - "author": "ty-dc", - "author_url": "https://github.com/ty-dc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119705", - "pr_number": 119705, - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture" - ], - "do_not_publish": true - }, - "119709": { - "commit": "419df231bcb8c926deab4f5c1c1a77c94866bb16", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119709](https://github.com/kubernetes/kubernetes/pull/119709), [@charles-chenzz](https://github.com/charles-chenzz)) [SIG Node]", - "author": "charles-chenzz", - "author_url": "https://github.com/charles-chenzz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119709", - "pr_number": 119709, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "119732": { - "commit": "fd4109d5f6938547c9db068e016eed90b2876867", - "text": "Fixed an issue related to not draining all the pods in a namespace when an empty selector, i.e., \"{},\" is specified in a Pod Disruption Budget (PDB).", - "markdown": "Fixed an issue related to not draining all the pods in a namespace when an empty selector, i.e., \"{},\" is specified in a Pod Disruption Budget (PDB). ([#119732](https://github.com/kubernetes/kubernetes/pull/119732), [@sairameshv](https://github.com/sairameshv))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/85-Graduate-PDB-to-Stable", - "type": "KEP" - } - ], - "author": "sairameshv", - "author_url": "https://github.com/sairameshv", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119732", - "pr_number": 119732, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "119735": { - "commit": "c486a08b4188a16c07c5b22baa8ffc9e2b2e9ce0", - "text": "Volume attach or publish operation will not fail at `kubelet` if target path directory already exists on the node.", - "markdown": "Volume attach or publish operation will not fail at `kubelet` if target path directory already exists on the node. ([#119735](https://github.com/kubernetes/kubernetes/pull/119735), [@akankshapanse](https://github.com/akankshapanse))", - "author": "akankshapanse", - "author_url": "https://github.com/akankshapanse", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119735", - "pr_number": 119735, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "119753": { - "commit": "0491866c643e9c873942003f722e20c3ab5bab7f", - "text": "`kubeadm`: fixed `nil` pointer when `etcd` member is already removed.", - "markdown": "`kubeadm`: fixed `nil` pointer when `etcd` member is already removed. ([#119753](https://github.com/kubernetes/kubernetes/pull/119753), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119753", - "pr_number": 119753, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "119761": { - "commit": "55c3cd9a30e818c050c7ac78d49fcc1ac9691e46", - "text": "`Statefulset` now waits for new replicas in tests when removing `.start.ordinal`.", - "markdown": "`Statefulset` now waits for new replicas in tests when removing `.start.ordinal`. ([#119761](https://github.com/kubernetes/kubernetes/pull/119761), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119761", - "pr_number": 119761, - "areas": [ - "test" - ], - "kinds": [ - "flake" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "119762": { - "commit": "227d1b2357d93a6884addccb50122df16674ca95", - "text": "In the `wait.PollUntilContextTimeout` function, if `immediate` is true, the condition will now be invoked before waiting, guaranteeing that the condition is invoked at least once and then wait a interval before executing again.", - "markdown": "In the `wait.PollUntilContextTimeout` function, if `immediate` is true, the condition will now be invoked before waiting, guaranteeing that the condition is invoked at least once and then wait a interval before executing again. ([#119762](https://github.com/kubernetes/kubernetes/pull/119762), [@AxeZhan](https://github.com/AxeZhan))", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119762", - "pr_number": 119762, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "119769": { - "commit": "57212647e9f2a6c1cbbf5cfce6cf2a5fefb0e056", - "text": "Fixed a `1.27` scheduling regression that `PostFilter` plugin may not function if previous `PreFilter` plugins return `Skip`.", - "markdown": "Fixed a `1.27` scheduling regression that `PostFilter` plugin may not function if previous `PreFilter` plugins return `Skip`. ([#119769](https://github.com/kubernetes/kubernetes/pull/119769), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119769", - "pr_number": 119769, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "119776": { - "commit": "a46bab6930804d8a111026760f008f85c305bc20", - "text": "Fixed an issue where a `CronJob` could fail to clean up Jobs when the `ResourceQuota` for `Jobs` had been reached.", - "markdown": "Fixed an issue where a `CronJob` could fail to clean up Jobs when the `ResourceQuota` for `Jobs` had been reached. ([#119776](https://github.com/kubernetes/kubernetes/pull/119776), [@ASverdlov](https://github.com/ASverdlov))", - "author": "ASverdlov", - "author_url": "https://github.com/ASverdlov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119776", - "pr_number": 119776, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "119778": { - "commit": "719d1a84f78fbc48e266cf40e998e13bf8d49fbd", - "text": "Fixed a `v1.26` regression scheduling bug by ensuring that preemption is skipped when a `PreFilter` plugin returns `UnschedulableAndUnresolvable`.", - "markdown": "Fixed a `v1.26` regression scheduling bug by ensuring that preemption is skipped when a `PreFilter` plugin returns `UnschedulableAndUnresolvable`. ([#119778](https://github.com/kubernetes/kubernetes/pull/119778), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119778", - "pr_number": 119778, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true - }, - "119785": { - "commit": "130a5a423fb1b9b6d317358ba3b6cf24f586c075", - "text": "In a scheduler with `Permit` plugins, when a Pod is rejected during `WaitOnPermit`, the scheduler records the plugin.\nThe scheduler will use the record to honor cluster events and queueing `hints registered` for the plugin, to inform whether to retry the pod.", - "markdown": "In a scheduler with `Permit` plugins, when a Pod is rejected during `WaitOnPermit`, the scheduler records the plugin.\n The scheduler will use the record to honor cluster events and queueing `hints registered` for the plugin, to inform whether to retry the pod. ([#119785](https://github.com/kubernetes/kubernetes/pull/119785), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119785", - "pr_number": 119785, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true - }, - "119789": { - "commit": "c0691f378424890b278768255b0f554679bea1f4", - "text": "Setting the `status.loadBalancer` of a Service whose `spec.type` is not `LoadBalancer` was previously allowed, but any update to the `metadata` or `spec` would wipe that field. Setting this field is no longer permitted unless `spec.type` is `LoadBalancer`. In the very unlikely event that this has unexpected impact, you can enable the `AllowServiceLBStatusOnNonLB` feature gate, which will restore the previous behavior. If you do need to set this, please file an issue with the Kubernetes project to help contributors understand why you need it.", - "markdown": "Setting the `status.loadBalancer` of a Service whose `spec.type` is not `LoadBalancer` was previously allowed, but any update to the `metadata` or `spec` would wipe that field. Setting this field is no longer permitted unless `spec.type` is `LoadBalancer`. In the very unlikely event that this has unexpected impact, you can enable the `AllowServiceLBStatusOnNonLB` feature gate, which will restore the previous behavior. If you do need to set this, please file an issue with the Kubernetes project to help contributors understand why you need it. ([#119789](https://github.com/kubernetes/kubernetes/pull/119789), [@thockin](https://github.com/thockin))", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119789", - "pr_number": 119789, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "119791": { - "commit": "86a0b1c57a1028729deb82d833007b20955a6cb3", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119791](https://github.com/kubernetes/kubernetes/pull/119791), [@aroradaman](https://github.com/aroradaman)) [SIG Network]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119791", - "pr_number": 119791, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "119795": { - "commit": "19f6d5be8269d4051acffc5709ec4bee7274268a", - "text": "Cleaned up `kube-apiserver` HTTP logs for impersonated requests.", - "markdown": "Cleaned up `kube-apiserver` HTTP logs for impersonated requests. ([#119795](https://github.com/kubernetes/kubernetes/pull/119795), [@sttts](https://github.com/sttts))", - "author": "sttts", - "author_url": "https://github.com/sttts", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119795", - "pr_number": 119795, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "119796": { - "commit": "03e845f882b2ab1f1a34deee36f06945cfa259d2", - "text": "Added context to `caches populated` log messages.", - "markdown": "Added context to `caches populated` log messages. ([#119796](https://github.com/kubernetes/kubernetes/pull/119796), [@sttts](https://github.com/sttts))", - "author": "sttts", - "author_url": "https://github.com/sttts", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119796", - "pr_number": 119796, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "119800": { - "commit": "210a97e48bc6caac338663cfb917f60e61c84962", - "text": "Fixed a bug where CEL expressions in CRD validation rules would incorrectly compute a high estimated cost for functions that return strings, lists or maps.\nThe incorrect cost was evident when the result of a function was used in subsequent operations.", - "markdown": "Fixed a bug where CEL expressions in CRD validation rules would incorrectly compute a high estimated cost for functions that return strings, lists or maps.\n The incorrect cost was evident when the result of a function was used in subsequent operations. ([#119800](https://github.com/kubernetes/kubernetes/pull/119800), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth and Cloud Provider]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119800", - "pr_number": 119800, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "119802": { - "commit": "b5cc6aab484ef048a84a0965f288d035f0e5f298", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119802](https://github.com/kubernetes/kubernetes/pull/119802), [@takirala](https://github.com/takirala)) [SIG API Machinery]", - "author": "takirala", - "author_url": "https://github.com/takirala", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119802", - "pr_number": 119802, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "do_not_publish": true - }, - "119825": { - "commit": "47f75709326a737ea1880c9fd148ab32771d797c", - "text": "Fixed bug where `Adding GroupVersion` log line was constantly repeated without any group version changes.", - "markdown": "Fixed bug where `Adding GroupVersion` log line was constantly repeated without any group version changes. ([#119825](https://github.com/kubernetes/kubernetes/pull/119825), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119825", - "pr_number": 119825, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "119829": { - "commit": "a08ee808079d0bda65b0819e1d212c27ca422e4a", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119829](https://github.com/kubernetes/kubernetes/pull/119829), [@cvvz](https://github.com/cvvz)) [SIG Instrumentation, Node and Storage]", - "author": "cvvz", - "author_url": "https://github.com/cvvz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119829", - "pr_number": 119829, - "areas": [ - "kubelet", - "logging" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "storage", - "node", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "119859": { - "commit": "85e018634ce0f38e671fbc5c78c4eefe066e04b9", - "text": "`kubeadm`: removed `system:masters` organization from `etcd/healthcheck-client`\ncertificate.", - "markdown": "`kubeadm`: removed `system:masters` organization from `etcd/healthcheck-client`\n certificate. ([#119859](https://github.com/kubernetes/kubernetes/pull/119859), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119859", - "pr_number": 119859, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true - }, - "119870": { - "commit": "42275daaaa96aac0d5191f1f5bf5d4ce6d1c474d", - "text": "Fixed a regression in the default `v1.27` configurations in `kube-apiserver`: fixed the `AggregatedDiscoveryEndpoint` feature (`beta` in `v1.27+`) to successfully fetch discovery information from aggregated API servers that do not check `Accept` headers when serving the `/apis` endpoint.", - "markdown": "Fixed a regression in the default `v1.27` configurations in `kube-apiserver`: fixed the `AggregatedDiscoveryEndpoint` feature (`beta` in `v1.27+`) to successfully fetch discovery information from aggregated API servers that do not check `Accept` headers when serving the `/apis` endpoint. ([#119870](https://github.com/kubernetes/kubernetes/pull/119870), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119870", - "pr_number": 119870, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "119878": { - "commit": "16310c959dfc5fefc70e9041e0029feffa62d791", - "text": "Added `apiserver_envelope_encryption_dek_cache_filled` to measure number of records in data encryption key (DEK) cache.", - "markdown": "Added `apiserver_envelope_encryption_dek_cache_filled` to measure number of records in data encryption key (DEK) cache. ([#119878](https://github.com/kubernetes/kubernetes/pull/119878), [@ritazh](https://github.com/ritazh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", - "type": "KEP" - } - ], - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119878", - "pr_number": 119878, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true - }, - "119933": { - "commit": "2a5fd3076aee14c1be51c703a7e5b447d638387d", - "text": "Updated `cri-tools` to `v1.28.0`.", - "markdown": "Updated `cri-tools` to `v1.28.0`. ([#119933](https://github.com/kubernetes/kubernetes/pull/119933), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119933", - "pr_number": 119933, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ] - }, - "119937": { - "commit": "ee265c92fec40cd69d1de010b477717e4c142492", - "text": "Added a new `ipMode` field to the `.status` of Services where `type` is set to `LoadBalancer`.\nThe new field is behind the `LoadBalancerIPMode` feature gate.", - "markdown": "Added a new `ipMode` field to the `.status` of Services where `type` is set to `LoadBalancer`.\n The new field is behind the `LoadBalancerIPMode` feature gate. ([#119937](https://github.com/kubernetes/kubernetes/pull/119937), [@RyanAoh](https://github.com/RyanAoh)) [SIG API Machinery, Apps, Cloud Provider, Network and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/1860-kube-proxy-IP-node-binding", - "type": "KEP" - } - ], - "author": "RyanAoh", - "author_url": "https://github.com/RyanAoh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119937", - "pr_number": 119937, - "areas": [ - "test", - "kube-proxy", - "cloudprovider", - "code-generation", - "ipvs" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "apps", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "119944": { - "commit": "aa4ec3c5b006157751df4feac5c620c9dfadd2b7", - "text": "Added a redundant process to remove tracking finalizers from Pods that belong to Jobs. The process kicks in after the control plane marks a Job as finished.", - "markdown": "Added a redundant process to remove tracking finalizers from Pods that belong to Jobs. The process kicks in after the control plane marks a Job as finished. ([#119944](https://github.com/kubernetes/kubernetes/pull/119944), [@Sharpz7](https://github.com/Sharpz7))", - "author": "Sharpz7", - "author_url": "https://github.com/Sharpz7", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119944", - "pr_number": 119944, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "119946": { - "commit": "3548ef009246fd75f9d229c5e7ebcb08a6ca33b8", - "text": "`kubeadm`: turned on feature gate `MergeCLIArgumentsWithConfig` to merge the config from flag and config file, otherwise, if the flag `--ignore-preflight-errors` is set from the CLI, then the value from config file will be ignored.", - "markdown": "`kubeadm`: turned on feature gate `MergeCLIArgumentsWithConfig` to merge the config from flag and config file, otherwise, if the flag `--ignore-preflight-errors` is set from the CLI, then the value from config file will be ignored. ([#119946](https://github.com/kubernetes/kubernetes/pull/119946), [@chendave](https://github.com/chendave))", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119946", - "pr_number": 119946, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "119948": { - "commit": "9aba98ad7160226768707e1aa4a3b8c46cd63dc1", - "text": "NONE", - "markdown": "NONE ([#119948](https://github.com/kubernetes/kubernetes/pull/119948), [@liyuerich](https://github.com/liyuerich)) [SIG Storage]", - "author": "liyuerich", - "author_url": "https://github.com/liyuerich", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119948", - "pr_number": 119948, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ], - "do_not_publish": true - }, - "119959": { - "commit": "cde1b19a312ca2b6f7d5d8a5459080c90622c6bb", - "text": "None", - "markdown": "None ([#119959](https://github.com/kubernetes/kubernetes/pull/119959), [@ty-dc](https://github.com/ty-dc)) [SIG Apps and Testing]", - "author": "ty-dc", - "author_url": "https://github.com/ty-dc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119959", - "pr_number": 119959, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "119969": { - "commit": "232d343d58f8ecd47e5ca199654ce416f448bb4e", - "text": "Updated CNI plugins to `v1.3.0`.", - "markdown": "Updated CNI plugins to `v1.3.0`. ([#119969](https://github.com/kubernetes/kubernetes/pull/119969), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119969", - "pr_number": 119969, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "119971": { - "commit": "ea3318cb7166f9e2565a8848f453ba5e915f5ac2", - "text": "Previously, the pod name and namespace were eliminated in the event log message. This PR attempts to add the preemptor pod UID in the preemption event message logs for easier debugging and safer transparency.", - "markdown": "Previously, the pod name and namespace were eliminated in the event log message. This PR attempts to add the preemptor pod UID in the preemption event message logs for easier debugging and safer transparency. ([#119971](https://github.com/kubernetes/kubernetes/pull/119971), [@kwakubiney](https://github.com/kwakubiney)) [SIG Scheduling]", - "author": "kwakubiney", - "author_url": "https://github.com/kwakubiney", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119971", - "pr_number": 119971, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "119986": { - "commit": "f8b5f1a77bbab217159b1d024000770f8c95ed97", - "text": "Fixed the bug where images that were pinned by the container runtime could be garbage collected by `kubelet`.", - "markdown": "Fixed the bug where images that were pinned by the container runtime could be garbage collected by `kubelet`. ([#119986](https://github.com/kubernetes/kubernetes/pull/119986), [@ruiwen-zhao](https://github.com/ruiwen-zhao))", - "author": "ruiwen-zhao", - "author_url": "https://github.com/ruiwen-zhao", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119986", - "pr_number": 119986, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "119994": { - "commit": "10c622e99a6030d0e2ce398ec14a6267ad1e7967", - "text": "`kube-scheduler` component config (`KubeSchedulerConfiguration`) `kubescheduler.config.k8s.io/v1beta3`\nis removed in `v1.29`. Migrated `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`.", - "markdown": "`kube-scheduler` component config (`KubeSchedulerConfiguration`) `kubescheduler.config.k8s.io/v1beta3`\n is removed in `v1.29`. Migrated `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`. ([#119994](https://github.com/kubernetes/kubernetes/pull/119994), [@SataQiu](https://github.com/SataQiu))", - "documentation": [ - { - "description": "-[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/785-scheduler-component-config-api", - "type": "KEP" - } - ], - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119994", - "pr_number": 119994, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "120001": { - "commit": "2b16f7b6bb9567d743e5ff4b77803919d3129169", - "text": "Restartable init containers resource in pod autoscaler are now calculated.", - "markdown": "Restartable init containers resource in pod autoscaler are now calculated. ([#120001](https://github.com/kubernetes/kubernetes/pull/120001), [@qingwave](https://github.com/qingwave))", - "author": "qingwave", - "author_url": "https://github.com/qingwave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120001", - "pr_number": 120001, - "kinds": [ - "feature" - ], - "sigs": [ - "autoscaling", - "apps" - ], - "feature": true, - "duplicate": true - }, - "120018": { - "commit": "fbac8388bf5e4abb88a2b9be44bea01b2c0d7be4", - "text": "`ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` objects are\npersisted in `etcd` using the `v1beta1` version. Either remove alpha objects, or disable the\nalpha `ValidatingAdmissionPolicy` feature in a `v1.27` server before upgrading to a\n`v1.28` server with the beta feature and API enabled.", - "markdown": "`ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` objects are\n persisted in `etcd` using the `v1beta1` version. Either remove alpha objects, or disable the\n alpha `ValidatingAdmissionPolicy` feature in a `v1.27` server before upgrading to a\n `v1.28` server with the beta feature and API enabled. ([#120018](https://github.com/kubernetes/kubernetes/pull/120018), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120018", - "pr_number": 120018, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "120038": { - "commit": "70a28449a76aaebe0f3707aa642499f47124dbae", - "text": "NONE", - "markdown": "NONE ([#120038](https://github.com/kubernetes/kubernetes/pull/120038), [@liyuerich](https://github.com/liyuerich)) [SIG Apps, Auth, Storage and Testing]", - "author": "liyuerich", - "author_url": "https://github.com/liyuerich", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120038", - "pr_number": 120038, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "auth", - "apps", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "120039": { - "commit": "595a57940a45f25bad4621548ee990c81779c12e", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120039](https://github.com/kubernetes/kubernetes/pull/120039), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle]", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120039", - "pr_number": 120039, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "120064": { - "commit": "5b2167482d278c26836e99f9fefaf172b91da237", - "text": "`kubeadm`: added validation to verify that the `CertificateKey` is a valid hex\nencoded AES key.", - "markdown": "`kubeadm`: added validation to verify that the `CertificateKey` is a valid hex\n encoded AES key. ([#120064](https://github.com/kubernetes/kubernetes/pull/120064), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120064", - "pr_number": 120064, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "120069": { - "commit": "25c7a1439aa02fa2a0d1948d9d9b5798049bf028", - "text": "Promoted to conformance a test that verified that `Services` only forward traffic on the port and protocol specified.", - "markdown": "Promoted to conformance a test that verified that `Services` only forward traffic on the port and protocol specified. ([#120069](https://github.com/kubernetes/kubernetes/pull/120069), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120069", - "pr_number": 120069, - "areas": [ - "test", - "conformance" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "testing", - "architecture" - ], - "duplicate": true - }, - "120072": { - "commit": "a1fdef7d01073064cad3947de90c9cf5a91fc937", - "text": "`kubeadm`: fixed the bug where `--image-repository` flag is missing for some init\nphase sub-commands.", - "markdown": "`kubeadm`: fixed the bug where `--image-repository` flag is missing for some init\n phase sub-commands. ([#120072](https://github.com/kubernetes/kubernetes/pull/120072), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120072", - "pr_number": 120072, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "120075": { - "commit": "ccca58aa36993a23fb212d603b0074de8740c359", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120075](https://github.com/kubernetes/kubernetes/pull/120075), [@lowang-bh](https://github.com/lowang-bh)) [SIG Apps]", - "author": "lowang-bh", - "author_url": "https://github.com/lowang-bh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120075", - "pr_number": 120075, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ], - "do_not_publish": true - }, - "120087": { - "commit": "8290c4c9c1904f160b8d297ffc052ce58222bc91", - "text": "Incorporated feedback on PR #119341, on `failOpen` metric counting for mutate and validate webhooks.", - "markdown": "Incorporated feedback on PR #119341, on `failOpen` metric counting for mutate and validate webhooks. ([#120087](https://github.com/kubernetes/kubernetes/pull/120087), [@divyasri537](https://github.com/divyasri537)) [SIG API Machinery]", - "author": "divyasri537", - "author_url": "https://github.com/divyasri537", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120087", - "pr_number": 120087, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "120097": { - "commit": "07f47d8b407ace1cf85f814b787718ba1e65ef6a", - "text": "Fixed CEL estimated cost of `replace()` to handle a zero length replacement string correctly.\nPreviously this would cause the estimated cost to be higher than it should be.", - "markdown": "Fixed CEL estimated cost of `replace()` to handle a zero length replacement string correctly.\n Previously this would cause the estimated cost to be higher than it should be. ([#120097](https://github.com/kubernetes/kubernetes/pull/120097), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120097", - "pr_number": 120097, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "120101": { - "commit": "27c9d32d46a8c49b43472aa62302df62eaa85649", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120101](https://github.com/kubernetes/kubernetes/pull/120101), [@lowang-bh](https://github.com/lowang-bh)) [SIG Storage and Testing]", - "author": "lowang-bh", - "author_url": "https://github.com/lowang-bh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120101", - "pr_number": 120101, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "120105": { - "commit": "80cd9d7a9a149afe3a766edafd2270286e3f7106", - "text": "Added mock framework support for unit tests for Windows in `kubeproxy`.", - "markdown": "Added mock framework support for unit tests for Windows in `kubeproxy`. ([#120105](https://github.com/kubernetes/kubernetes/pull/120105), [@princepereira](https://github.com/princepereira))", - "author": "princepereira", - "author_url": "https://github.com/princepereira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120105", - "pr_number": 120105, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "cleanup", - "failing-test" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true, - "duplicate_kind": true - }, - "120108": { - "commit": "dd0c2d4eb1bf0c701351a9412a278e5d70532548", - "text": "Fixed OpenAPI v3 not being cleaned up after deleting `APIServices`.", - "markdown": "Fixed OpenAPI v3 not being cleaned up after deleting `APIServices`. ([#120108](https://github.com/kubernetes/kubernetes/pull/120108), [@tnqn](https://github.com/tnqn))", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120108", - "pr_number": 120108, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "120116": { - "commit": "4cb47f2ba1b52a1c89395f278ae6f4736664371d", - "text": "Upgraded `coredns` to `v1.11.1`.", - "markdown": "Upgraded `coredns` to `v1.11.1`. ([#120116](https://github.com/kubernetes/kubernetes/pull/120116), [@tukwila](https://github.com/tukwila))", - "author": "tukwila", - "author_url": "https://github.com/tukwila", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120116", - "pr_number": 120116, - "areas": [ - "provider/gcp", - "kubeadm", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle", - "cloud-provider" - ], - "duplicate": true - }, - "120118": { - "commit": "5dd4f1245cd6c2d5f58697b3ad3d8ab4b4d111ba", - "text": "Added descriptions and examples for the situation of using `kubectl rollout restart` without specifying a particular deployment.", - "markdown": "Added descriptions and examples for the situation of using `kubectl rollout restart` without specifying a particular deployment. ([#120118](https://github.com/kubernetes/kubernetes/pull/120118), [@Ithrael](https://github.com/Ithrael))", - "author": "Ithrael", - "author_url": "https://github.com/Ithrael", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120118", - "pr_number": 120118, - "areas": [ - "kubectl" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cli" - ] - }, - "120119": { - "commit": "294bde0079a0d56099cf8b8cf558e3ae7230de12", - "text": "Fixed `kubectl events` not filtering events by `GroupVersion` for resources with a full name.", - "markdown": "Fixed `kubectl events` not filtering events by `GroupVersion` for resources with a full name. ([#120119](https://github.com/kubernetes/kubernetes/pull/120119), [@Ithrael](https://github.com/Ithrael))", - "author": "Ithrael", - "author_url": "https://github.com/Ithrael", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120119", - "pr_number": 120119, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true - }, - "120151": { - "commit": "8b132ea40a250e9acf08ab2fadb9a8c2fd811d74", - "text": "NONE", - "markdown": "NONE ([#120151](https://github.com/kubernetes/kubernetes/pull/120151), [@Penguin-zlh](https://github.com/Penguin-zlh)) [SIG Apps and Testing]", - "author": "Penguin-zlh", - "author_url": "https://github.com/Penguin-zlh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120151", - "pr_number": 120151, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "120154": { - "commit": "ca43bf0582f86437032d5c7f83e0eaa7413bc83d", - "text": "`kube-apiserver`: added `--authorization-config` flag for reading a configuration file containing an `apiserver.config.k8s.io/v1alpha1 AuthorizationConfiguration` object. The `--authorization-config` flag is mutually exclusive with `--authorization-modes` and `--authorization-webhook-*` flags. The `alpha` `StructuredAuthorizationConfiguration` feature flag must be enabled for `--authorization-config` to be specified.", - "markdown": "`kube-apiserver`: added `--authorization-config` flag for reading a configuration file containing an `apiserver.config.k8s.io/v1alpha1 AuthorizationConfiguration` object. The `--authorization-config` flag is mutually exclusive with `--authorization-modes` and `--authorization-webhook-*` flags. The `alpha` `StructuredAuthorizationConfiguration` feature flag must be enabled for `--authorization-config` to be specified. ([#120154](https://github.com/kubernetes/kubernetes/pull/120154), [@palnabarun](https://github.com/palnabarun))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3221", - "type": "external" - } - ], - "author": "palnabarun", - "author_url": "https://github.com/palnabarun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120154", - "pr_number": 120154, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "120192": { - "commit": "9988f6371b6116421756b3935062367afc6f810c", - "text": "Removed the `CronJobTimeZone` feature gate (the feature is stable and always enabled)\n- Removed the `JobMutableNodeSchedulingDirectives` feature gate (the feature is stable and always enabled)\n- Removed the `LegacyServiceAccountTokenNoAutoGeneration` feature gate (the feature is stable and always enabled)", - "markdown": "Removed the `CronJobTimeZone` feature gate (the feature is stable and always enabled)\n - Removed the `JobMutableNodeSchedulingDirectives` feature gate (the feature is stable and always enabled)\n - Removed the `LegacyServiceAccountTokenNoAutoGeneration` feature gate (the feature is stable and always enabled) ([#120192](https://github.com/kubernetes/kubernetes/pull/120192), [@SataQiu](https://github.com/SataQiu)) [SIG Apps, Auth and Scheduling]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120192", - "pr_number": 120192, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "auth", - "apps" - ], - "duplicate": true - }, - "120195": { - "commit": "0095ae3b259fc9fe273bac089411987835ee736b", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120195](https://github.com/kubernetes/kubernetes/pull/120195), [@Ithrael](https://github.com/Ithrael)) [SIG CLI and Node]", - "author": "Ithrael", - "author_url": "https://github.com/Ithrael", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120195", - "pr_number": 120195, - "areas": [ - "kubelet", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "cli" - ], - "duplicate": true, - "do_not_publish": true - }, - "120198": { - "commit": "34b85c593d13168edee426c63e97dbfbc760395b", - "text": "`kubeadm`: updated warning message when swap space is detected. When swap is\nactive on Linux, `kubeadm` explains that swap is supported for cgroup v2 only and\nis beta but disabled by default.", - "markdown": "`kubeadm`: updated warning message when swap space is detected. When swap is\n active on Linux, `kubeadm` explains that swap is supported for cgroup v2 only and\n is beta but disabled by default. ([#120198](https://github.com/kubernetes/kubernetes/pull/120198), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120198", - "pr_number": 120198, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "120204": { - "commit": "a3374795e4e2b0863193f1fd5bb39b6d9440a0ba", - "text": "Marked the `onPodConditions` field as optional in `Job`'s pod failure policy.", - "markdown": "Marked the `onPodConditions` field as optional in `Job`'s pod failure policy. ([#120204](https://github.com/kubernetes/kubernetes/pull/120204), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120204", - "pr_number": 120204, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "120212": { - "commit": "6eca14208217ebb72fc4e690357b4c41ddd22436", - "text": "If a watch with the `progressNotify` option set is to be created, and the registry hasn't provided a `newFunc`, an error is now returned.", - "markdown": "If a watch with the `progressNotify` option set is to be created, and the registry hasn't provided a `newFunc`, an error is now returned. ([#120212](https://github.com/kubernetes/kubernetes/pull/120212), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120212", - "pr_number": 120212, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "120213": { - "commit": "2d5b6f16f50633263a40b7a83060c93ad07af040", - "text": "`scheduler`: handling of unschedulable pods because a `ResourceClass` is missing\nis a bit more efficient and no longer relies on periodic retries.", - "markdown": "`scheduler`: handling of unschedulable pods because a `ResourceClass` is missing\n is a bit more efficient and no longer relies on periodic retries. ([#120213](https://github.com/kubernetes/kubernetes/pull/120213), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120213", - "pr_number": 120213, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "node", - "testing" - ], - "duplicate": true - }, - "120228": { - "commit": "973ea2d376267d2fe1017f2f1dca94390dab702d", - "text": "`kubeadm`: promoted feature gate `EtcdLearnerMode` to `beta`. Learner mode for\njoining `etcd` members is now enabled by default.", - "markdown": "`kubeadm`: promoted feature gate `EtcdLearnerMode` to `beta`. Learner mode for\n joining `etcd` members is now enabled by default. ([#120228](https://github.com/kubernetes/kubernetes/pull/120228), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/3614-etcd-learner-mode", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120228", - "pr_number": 120228, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "120233": { - "commit": "36352ba30688c574a9d3afd9c5187d7909735f33", - "text": "Promoted `ServiceNodePortStaticSubrange` to stable and lock to default.", - "markdown": "Promoted `ServiceNodePortStaticSubrange` to stable and lock to default. ([#120233](https://github.com/kubernetes/kubernetes/pull/120233), [@xuzhenglun](https://github.com/xuzhenglun))", - "author": "xuzhenglun", - "author_url": "https://github.com/xuzhenglun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120233", - "pr_number": 120233, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "120248": { - "commit": "43e617f2521e9f52156aba9822245a2b5eb773f1", - "text": "Removed the `GRPCContainerProbe` feature gate (the feature is stable and always enabled).", - "markdown": "Removed the `GRPCContainerProbe` feature gate (the feature is stable and always enabled). ([#120248](https://github.com/kubernetes/kubernetes/pull/120248), [@pacoxu](https://github.com/pacoxu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2727-grpc-probe/README.md", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120248", - "pr_number": 120248, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "api-machinery", - "cli" - ], - "duplicate": true - }, - "120249": { - "commit": "bb16282831f8f5b945d18ea857b7b342fc5de2c1", - "text": "Removed the `DownwardAPIHugePages` feature gate (the feature is stable and always enabled)", - "markdown": "Removed the `DownwardAPIHugePages` feature gate (the feature is stable and always enabled) ([#120249](https://github.com/kubernetes/kubernetes/pull/120249), [@pacoxu](https://github.com/pacoxu)) [SIG Apps and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/b5b3585/keps/sig-node/2053-downward-api-hugepages/README.md", - "type": "KEP" - } - ], - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120249", - "pr_number": 120249, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "apps" - ], - "duplicate": true - }, - "120250": { - "commit": "887ac275a2cfb6030df80bbe3066609336fa220a", - "text": "NONE", - "markdown": "NONE ([#120250](https://github.com/kubernetes/kubernetes/pull/120250), [@liyuerich](https://github.com/liyuerich)) [SIG API Machinery and Testing]", - "author": "liyuerich", - "author_url": "https://github.com/liyuerich", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120250", - "pr_number": 120250, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "120255": { - "commit": "58ce7342230a943b637ff3d129eb3774d5a68cbb", - "text": "`--sync-frequency` will not affect the update interval of volumes that use `ConfigMaps`\nor `Secrets` when the `configMapAndSecretChangeDetectionStrategy` is set to `Cache`.\nThe update interval is only affected by `node.alpha.kubernetes.io/ttl` node annotation.\"", - "markdown": "`--sync-frequency` will not affect the update interval of volumes that use `ConfigMaps`\n or `Secrets` when the `configMapAndSecretChangeDetectionStrategy` is set to `Cache`.\n The update interval is only affected by `node.alpha.kubernetes.io/ttl` node annotation.\" ([#120255](https://github.com/kubernetes/kubernetes/pull/120255), [@likakuli](https://github.com/likakuli))", - "author": "likakuli", - "author_url": "https://github.com/likakuli", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120255", - "pr_number": 120255, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "120257": { - "commit": "b32c6ff74906f47d9db6052f0e58808d644cfac3", - "text": "Promoted `PodHostIPs` condition to `beta`.", - "markdown": "Promoted `PodHostIPs` condition to `beta`. ([#120257](https://github.com/kubernetes/kubernetes/pull/120257), [@wzshiming](https://github.com/wzshiming))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2681", - "type": "KEP" - } - ], - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120257", - "pr_number": 120257, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "120269": { - "commit": "2c300ef6b02c3ce6fca28356a16e3aed45ddcba3", - "text": "Fixed a bug around restarting init containers in the right order relative to normal containers with `SidecarContainers` feature enabled.", - "markdown": "Fixed a bug around restarting init containers in the right order relative to normal containers with `SidecarContainers` feature enabled. ([#120269](https://github.com/kubernetes/kubernetes/pull/120269), [@gjkim42](https://github.com/gjkim42))", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120269", - "pr_number": 120269, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "120274": { - "commit": "cf54acce5c24e5bbcb0f6afaebaf9738ff6c21a6", - "text": "The `kube-proxy` command-line documentation was updated to clarify that\n`--bind-address` does not actually have anything to do with binding to an\naddress, and you probably don't actually want to be using it.", - "markdown": "The `kube-proxy` command-line documentation was updated to clarify that\n `--bind-address` does not actually have anything to do with binding to an\n address, and you probably don't actually want to be using it. ([#120274](https://github.com/kubernetes/kubernetes/pull/120274), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120274", - "pr_number": 120274, - "areas": [ - "kube-proxy", - "code-generation" - ], - "kinds": [ - "documentation", - "cleanup", - "api-change" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "120275": { - "commit": "470fe396bde65a93e08321053e904643ae7bddbd", - "text": "The `CloudDualStackNodeIPs` feature is now `beta`, meaning that when using\nan external cloud provider that has been updated to support the feature,\nyou can pass comma-separated dual-stack `--node-ips` to `kubelet` and have\nthe cloud provider take both IPs into account.", - "markdown": "The `CloudDualStackNodeIPs` feature is now `beta`, meaning that when using\n an external cloud provider that has been updated to support the feature,\n you can pass comma-separated dual-stack `--node-ips` to `kubelet` and have\n the cloud provider take both IPs into account. ([#120275](https://github.com/kubernetes/kubernetes/pull/120275), [@danwinship](https://github.com/danwinship))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3705", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120275", - "pr_number": 120275, - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "120279": { - "commit": "95c6295636adaeb06d47b02ff4c705b6aa106606", - "text": "Makefile and scripts now respect `GOTOOLCHAIN` and otherwise ensure `./.go-version` is used.", - "markdown": "Makefile and scripts now respect `GOTOOLCHAIN` and otherwise ensure `./.go-version` is used. ([#120279](https://github.com/kubernetes/kubernetes/pull/120279), [@BenTheElder](https://github.com/BenTheElder))", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120279", - "pr_number": 120279, - "kinds": [ - "cleanup" - ], - "sigs": [ - "release" - ] - }, - "120281": { - "commit": "debe30de70b2c9c437e6c36309b4919e14830c11", - "text": "Fixed a `v1.28` regression around restarting init containers in the right order relative to normal containers.", - "markdown": "Fixed a `v1.28` regression around restarting init containers in the right order relative to normal containers. ([#120281](https://github.com/kubernetes/kubernetes/pull/120281), [@gjkim42](https://github.com/gjkim42))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", - "type": "KEP" - } - ], - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120281", - "pr_number": 120281, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "120285": { - "commit": "751058c0a4e77c25f9e754550327a6fd9097a42f", - "text": "NONE", - "markdown": "NONE ([#120285](https://github.com/kubernetes/kubernetes/pull/120285), [@wlq1212](https://github.com/wlq1212)) [SIG Cloud Provider, Node and Testing]", - "author": "wlq1212", - "author_url": "https://github.com/wlq1212", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120285", - "pr_number": 120285, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true - }, - "120312": { - "commit": "921fd1b6fa5e908af9a3a1ff4aec9ab141a1b047", - "text": "Added automatic download of the CNI binary in `local-up-cluster.sh`, facilitating local debugging.", - "markdown": "Added automatic download of the CNI binary in `local-up-cluster.sh`, facilitating local debugging. ([#120312](https://github.com/kubernetes/kubernetes/pull/120312), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120312", - "pr_number": 120312, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true - }, - "120327": { - "commit": "34aaf2b972c95c7a3591d8d49c798dba348ee5c9", - "text": "Fixed a `v1.28` regression handling negative index json patches.", - "markdown": "Fixed a `v1.28` regression handling negative index json patches. ([#120327](https://github.com/kubernetes/kubernetes/pull/120327), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120327", - "pr_number": 120327, - "areas": [ - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "dependency" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true - }, - "120330": { - "commit": "a06e5a73073c1b2a4feaeac4655a8bb93ce91fc1", - "text": "`NodeStageVolume` calls will now be retried if the CSI node driver is not running.", - "markdown": "`NodeStageVolume` calls will now be retried if the CSI node driver is not running. ([#120330](https://github.com/kubernetes/kubernetes/pull/120330), [@rohitssingh](https://github.com/rohitssingh))", - "author": "rohitssingh", - "author_url": "https://github.com/rohitssingh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120330", - "pr_number": 120330, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "storage", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "120334": { - "commit": "41689233b4be7522c1f8f6302c78127d54706423", - "text": "Fixed a situation when, sometimes, the scheduler incorrectly placed a pod in the `unschedulable` queue instead of the `backoff` queue. This happened when some plugin previously declared the pod as `unschedulable` and then in a later attempt encounters some other error. Scheduling of that pod then got delayed by up to five minutes, after which periodic flushing moved the pod back into the `active` queue.", - "markdown": "Fixed a situation when, sometimes, the scheduler incorrectly placed a pod in the `unschedulable` queue instead of the `backoff` queue. This happened when some plugin previously declared the pod as `unschedulable` and then in a later attempt encounters some other error. Scheduling of that pod then got delayed by up to five minutes, after which periodic flushing moved the pod back into the `active` queue. ([#120334](https://github.com/kubernetes/kubernetes/pull/120334), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120334", - "pr_number": 120334, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "120336": { - "commit": "73580b2038a25eeecb1de7aa4414a3bbb13474e2", - "text": "Generated `ResourceClaim` names are now more readable because of an additional hyphen before the random suffix (`\u003cpod name\u003e-\u003cclaim name\u003e-\u003crandom suffix\u003e`).", - "markdown": "Generated `ResourceClaim` names are now more readable because of an additional hyphen before the random suffix (`\u003cpod name\u003e-\u003cclaim name\u003e-\u003crandom suffix\u003e`). ([#120336](https://github.com/kubernetes/kubernetes/pull/120336), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120336", - "pr_number": 120336, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "apps" - ], - "duplicate": true - }, - "120338": { - "commit": "2b5d2cf910fd376a42ba9de5e4b52a53b58f9397", - "text": "`k8s.io/dynamic-resource-allocation/controller:` `UnsuitableNodes` can now handle a mix of allocated and unallocated claims correctly.", - "markdown": "`k8s.io/dynamic-resource-allocation/controller:` `UnsuitableNodes` can now handle a mix of allocated and unallocated claims correctly. ([#120338](https://github.com/kubernetes/kubernetes/pull/120338), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120338", - "pr_number": 120338, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "120352": { - "commit": "9a0c389fd73fb32f834f91170c8c3894f9f0ca1a", - "text": "Updated `distroless-iptables` to use `registry.k8s.io/build-image/distroless-iptables:v0.3.1`.", - "markdown": "Updated `distroless-iptables` to use `registry.k8s.io/build-image/distroless-iptables:v0.3.1`. ([#120352](https://github.com/kubernetes/kubernetes/pull/120352), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120352", - "pr_number": 120352, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing", - "release" - ], - "duplicate": true - }, - "120354": { - "commit": "5d03ce7ae44a8dc9638b8b56c6aa552128f7c05f", - "text": "`kube-proxy`: Added an option/flag for configuring the `nf_conntrack_tcp_be_liberal` sysctl (in the kernel's netfilter conntrack subsystem). When enabled, `kube-proxy` will not install the `DROP` rule for invalid conntrack states, which currently breaks users of asymmetric routing.", - "markdown": "`kube-proxy`: Added an option/flag for configuring the `nf_conntrack_tcp_be_liberal` sysctl (in the kernel's netfilter conntrack subsystem). When enabled, `kube-proxy` will not install the `DROP` rule for invalid conntrack states, which currently breaks users of asymmetric routing. ([#120354](https://github.com/kubernetes/kubernetes/pull/120354), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120354", - "pr_number": 120354, - "areas": [ - "kube-proxy", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "120371": { - "commit": "ee474e6ec5f72cf6870343ff8f641f9665808934", - "text": "`kube-controller-manager` help now includes controllers behind a feature gate in `--controllers` flag.", - "markdown": "`kube-controller-manager` help now includes controllers behind a feature gate in `--controllers` flag. ([#120371](https://github.com/kubernetes/kubernetes/pull/120371), [@atiratree](https://github.com/atiratree))", - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120371", - "pr_number": 120371, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "120375": { - "commit": "0ee315b94cd8d0e27dc1acf0cdb637423de789c2", - "text": "Fixed `kube-proxy` panicking on exit when the `Node` object changed its `PodCIDR`.", - "markdown": "Fixed `kube-proxy` panicking on exit when the `Node` object changed its `PodCIDR`. ([#120375](https://github.com/kubernetes/kubernetes/pull/120375), [@pegasas](https://github.com/pegasas))", - "author": "pegasas", - "author_url": "https://github.com/pegasas", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120375", - "pr_number": 120375, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "120380": { - "commit": "a919079ff3132a070909e9286674b0b0d8672377", - "text": "`kubectl` will not print events if `--show-events=false` argument is passed to\ndescribe PVC subcommand.", - "markdown": "`kubectl` will not print events if `--show-events=false` argument is passed to\n describe PVC subcommand. ([#120380](https://github.com/kubernetes/kubernetes/pull/120380), [@MaGaroo](https://github.com/MaGaroo))", - "author": "MaGaroo", - "author_url": "https://github.com/MaGaroo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120380", - "pr_number": 120380, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "120392": { - "commit": "1bfced58488ece818a651e2c6269b200a21d0812", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120392](https://github.com/kubernetes/kubernetes/pull/120392), [@dims](https://github.com/dims)) [SIG Architecture and Cloud Provider]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120392", - "pr_number": 120392, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true - }, - "120397": { - "commit": "441d4b54aec4eebbe55d9c3519691eb9833fa486", - "text": "NONE", - "markdown": "NONE ([#120397](https://github.com/kubernetes/kubernetes/pull/120397), [@ty-dc](https://github.com/ty-dc)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node, Scheduling, Storage and Testing]", - "author": "ty-dc", - "author_url": "https://github.com/ty-dc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120397", - "pr_number": 120397, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "network", - "scheduling", - "storage", - "node", - "api-machinery", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "120398": { - "commit": "3eca0a5f7868f335aea65f455f6ca767a5f9f065", - "text": "Fixed an issue where `StatefulSet` might not restart a pod after eviction or node failure.", - "markdown": "Fixed an issue where `StatefulSet` might not restart a pod after eviction or node failure. ([#120398](https://github.com/kubernetes/kubernetes/pull/120398), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", - "author": "aleksandra-malinowska", - "author_url": "https://github.com/aleksandra-malinowska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120398", - "pr_number": 120398, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "120400": { - "commit": "5ff79611d5cb4a55665ef907f346a34ab593b807", - "text": "`cluster-bootstrap`: improved the security of the functions responsible for generation and validation of bootstrap tokens.", - "markdown": "`cluster-bootstrap`: improved the security of the functions responsible for generation and validation of bootstrap tokens. ([#120400](https://github.com/kubernetes/kubernetes/pull/120400), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120400", - "pr_number": 120400, - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle", - "security" - ], - "duplicate": true - }, - "120412": { - "commit": "abb74c7afa40c88e2ee043d2673533f482eb2df6", - "text": "`kube-proxy` will only install the `DROP` rules for invalid `conntrack` states if\nthe `nf_conntrack_tcp_be_liberal` is not set.", - "markdown": "`kube-proxy` will only install the `DROP` rules for invalid `conntrack` states if\n the `nf_conntrack_tcp_be_liberal` is not set. ([#120412](https://github.com/kubernetes/kubernetes/pull/120412), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120412", - "pr_number": 120412, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug", - "cleanup", - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "duplicate_kind": true - }, - "120413": { - "commit": "a7f9e7038468ba0a5e3baecca5629fe68cdf171c", - "text": "Fixed a `v1.28` regression in scheduler: a pod with concurrent events could incorrectly get moved to the unschedulable queue where it could get stuck until the next periodic purging after 5 minutes, if there was no other event for it.", - "markdown": "Fixed a `v1.28` regression in scheduler: a pod with concurrent events could incorrectly get moved to the unschedulable queue where it could get stuck until the next periodic purging after 5 minutes, if there was no other event for it. ([#120413](https://github.com/kubernetes/kubernetes/pull/120413), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120413", - "pr_number": 120413, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "120416": { - "commit": "68d55bc4fb441971a1200f390012b245250ad572", - "text": "The `--interactive` flag in `kubectl delete` is now visible to all users by default.", - "markdown": "The `--interactive` flag in `kubectl delete` is now visible to all users by default. ([#120416](https://github.com/kubernetes/kubernetes/pull/120416), [@ardaguclu](https://github.com/ardaguclu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3895", - "type": "KEP" - } - ], - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120416", - "pr_number": 120416, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "120427": { - "commit": "710dceded51d5cf65bc27bca0b0c96f05909b65b", - "text": "Listed the pods using `\u003cPVC\u003e` as an ephemeral storage volume in \"Used by:\" part of the output of `kubectl describe pvc \u003cPVC\u003e` command.", - "markdown": "Listed the pods using `\u003cPVC\u003e` as an ephemeral storage volume in \"Used by:\" part of the output of `kubectl describe pvc \u003cPVC\u003e` command. ([#120427](https://github.com/kubernetes/kubernetes/pull/120427), [@MaGaroo](https://github.com/MaGaroo))", - "author": "MaGaroo", - "author_url": "https://github.com/MaGaroo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120427", - "pr_number": 120427, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "120428": { - "commit": "6c578bc982f37d9431d7fc586a9123a0dd19c468", - "text": "DRA: when the scheduler had to deallocate a claim after a node became unsuitable for a pod, it might have needed more attempts than really necessary. This was fixed by first disabling allocations.", - "markdown": "DRA: when the scheduler had to deallocate a claim after a node became unsuitable for a pod, it might have needed more attempts than really necessary. This was fixed by first disabling allocations. ([#120428](https://github.com/kubernetes/kubernetes/pull/120428), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120428", - "pr_number": 120428, - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "scheduling", - "node" - ], - "duplicate": true, - "duplicate_kind": true - }, - "120433": { - "commit": "c0a38d01aaa2564125bd3496ed6d001f8ce6783d", - "text": "Changed the `KMSv2KDF` feature gate to be enabled by default.", - "markdown": "Changed the `KMSv2KDF` feature gate to be enabled by default. ([#120433](https://github.com/kubernetes/kubernetes/pull/120433), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing]", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120433", - "pr_number": 120433, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "120438": { - "commit": "b343878daad3c575d4b51188b62b9d07f1a59839", - "text": "Added apiserver identity to the following metrics: \n`apiserver_envelope_encryption_key_id_hash_total`, `apiserver_envelope_encryption_key_id_hash_last_timestamp_seconds`, `apiserver_envelope_encryption_key_id_hash_status_last_timestamp_seconds`, `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_success_total`, `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`.\n\nFixed bug to surface events for the following metrics: `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`, `apiserver_encryption_config_controller_automatic_reload_success_total`.", - "markdown": "Added apiserver identity to the following metrics: \n `apiserver_envelope_encryption_key_id_hash_total`, `apiserver_envelope_encryption_key_id_hash_last_timestamp_seconds`, `apiserver_envelope_encryption_key_id_hash_status_last_timestamp_seconds`, `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_success_total`, `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`.\n \n Fixed bug to surface events for the following metrics: `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`, `apiserver_encryption_config_controller_automatic_reload_success_total`. ([#120438](https://github.com/kubernetes/kubernetes/pull/120438), [@ritazh](https://github.com/ritazh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", - "type": "KEP" - } - ], - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120438", - "pr_number": 120438, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true - }, - "120448": { - "commit": "9f3cfbbcdbc8971dddfd7a6ba2c8eff10b0c9c82", - "text": "Changed behavior of `kube-proxy` by allowing to set `sysctl` values lower than the existing one.", - "markdown": "Changed behavior of `kube-proxy` by allowing to set `sysctl` values lower than the existing one. ([#120448](https://github.com/kubernetes/kubernetes/pull/120448), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120448", - "pr_number": 120448, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "120461": { - "commit": "a5ff0324a94194d5b49399a71705e3e1b05fbb5f", - "text": "Fixed a bug where the device resources allocated to an init container, with `containerRestartPolicy` of `Always`, were erroneously reused by a regular container.", - "markdown": "Fixed a bug where the device resources allocated to an init container, with `containerRestartPolicy` of `Always`, were erroneously reused by a regular container. ([#120461](https://github.com/kubernetes/kubernetes/pull/120461), [@gjkim42](https://github.com/gjkim42))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", - "type": "KEP" - } - ], - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120461", - "pr_number": 120461, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "120474": { - "commit": "9482248aa93f12b024cc8edc0d97a71f774aad2f", - "text": "Registered metric `apiserver_request_body_size_bytes` to track the size distribution of requests by `resource` and `verb`.", - "markdown": "Registered metric `apiserver_request_body_size_bytes` to track the size distribution of requests by `resource` and `verb`. ([#120474](https://github.com/kubernetes/kubernetes/pull/120474), [@YaoC](https://github.com/YaoC)) [SIG API Machinery and Instrumentation]", - "author": "YaoC", - "author_url": "https://github.com/YaoC", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120474", - "pr_number": 120474, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "120490": { - "commit": "bdedc21fd9579d2838f1e330bb4a93d4cb8b5cbd", - "text": "Added `apiserver_watch_list_duration_seconds` metrics which will measure response latency distribution in seconds for watchlist requests broken by group, version, resource and scope.", - "markdown": "Added `apiserver_watch_list_duration_seconds` metrics which will measure response latency distribution in seconds for watchlist requests broken by group, version, resource and scope. ([#120490](https://github.com/kubernetes/kubernetes/pull/120490), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120490", - "pr_number": 120490, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "120492": { - "commit": "b8ef1a0791711f96e8dea05ad9ea026d351d67f3", - "text": "Service Controller: load balancer hosts will now update after node's `ProviderID` is\nupdated.", - "markdown": "Service Controller: load balancer hosts will now update after node's `ProviderID` is\n updated. ([#120492](https://github.com/kubernetes/kubernetes/pull/120492), [@cezarygerard](https://github.com/cezarygerard))", - "author": "cezarygerard", - "author_url": "https://github.com/cezarygerard", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120492", - "pr_number": 120492, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "cloud-provider" - ], - "duplicate": true - }, - "120493": { - "commit": "6c39a3724d5ff33564d31d5097704f15852c036f", - "text": "Kubernetes is now built with Go `1.21.1`.", - "markdown": "Kubernetes is now built with Go `1.21.1`. ([#120493](https://github.com/kubernetes/kubernetes/pull/120493), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120493", - "pr_number": 120493, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "120503": { - "commit": "c40bc8c7d896ac14dee79571ba1ec143ca239401", - "text": "Renamed `apiserver_request_body_sizes` metric to `apiserver_request_body_size_bytes`.", - "markdown": "Renamed `apiserver_request_body_sizes` metric to `apiserver_request_body_size_bytes`. ([#120503](https://github.com/kubernetes/kubernetes/pull/120503), [@dgrisonnet](https://github.com/dgrisonnet))", - "author": "dgrisonnet", - "author_url": "https://github.com/dgrisonnet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120503", - "pr_number": 120503, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "120513": { - "commit": "10f9d5ce6d4e65a1f0d3ad91ec9ff47150b749e6", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120513](https://github.com/kubernetes/kubernetes/pull/120513), [@devincd](https://github.com/devincd)) [SIG API Machinery]", - "author": "devincd", - "author_url": "https://github.com/devincd", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120513", - "pr_number": 120513, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "120514": { - "commit": "0241da314e0e69817d66313b45a69c19d1ce7327", - "text": "`kubeadm`: improved the logic that checks whether a `systemd` service exists.", - "markdown": "`kubeadm`: improved the logic that checks whether a `systemd` service exists. ([#120514](https://github.com/kubernetes/kubernetes/pull/120514), [@fengxsong](https://github.com/fengxsong))", - "author": "fengxsong", - "author_url": "https://github.com/fengxsong", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120514", - "pr_number": 120514, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "120518": { - "commit": "378866edbaa7eb528cafa0e93e4d1bee26c11245", - "text": "Fixed bug that kubelet resource metric `container_start_time_seconds` had timestamp equal to container start time.", - "markdown": "Fixed bug that kubelet resource metric `container_start_time_seconds` had timestamp equal to container start time. ([#120518](https://github.com/kubernetes/kubernetes/pull/120518), [@saschagrunert](https://github.com/saschagrunert)) [SIG Instrumentation, Node and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120518", - "pr_number": 120518, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "120521": { - "commit": "4c0d37e767dcfb0898a465dfdfa0475ffb68697f", - "text": "`kubeadm`: removed `system:masters` organization from `apiserver-etcd-client`\ncertificate.", - "markdown": "`kubeadm`: removed `system:masters` organization from `apiserver-etcd-client`\n certificate. ([#120521](https://github.com/kubernetes/kubernetes/pull/120521), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120521", - "pr_number": 120521, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "120524": { - "commit": "d7aeb7f853e822071041bdbada7fcbe09d15062d", - "text": "KCM specific args can be passed with `/cluster` script, without affecting CCM. New variable name: `KUBE_CONTROLLER_MANAGER_TEST_ARGS`.", - "markdown": "KCM specific args can be passed with `/cluster` script, without affecting CCM. New variable name: `KUBE_CONTROLLER_MANAGER_TEST_ARGS`. ([#120524](https://github.com/kubernetes/kubernetes/pull/120524), [@jprzychodzen](https://github.com/jprzychodzen)) [SIG Cloud Provider]", - "author": "jprzychodzen", - "author_url": "https://github.com/jprzychodzen", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120524", - "pr_number": 120524, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "bug", - "failing-test", - "regression" - ], - "sigs": [ - "cloud-provider" - ], - "duplicate_kind": true - }, - "120527": { - "commit": "bec95ed57554b167ce413e2de776553a2e366df8", - "text": "Bumped `distroless-iptables` to `0.3.2` based on Go `1.21.1`.", - "markdown": "Bumped `distroless-iptables` to `0.3.2` based on Go `1.21.1`. ([#120527](https://github.com/kubernetes/kubernetes/pull/120527), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120527", - "pr_number": 120527, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - }, - "120534": { - "commit": "5a4e792e06e7c3e235ed81f13f5d795d18cecf4c", - "text": "`dra`: the scheduler plugin now avoids additional scheduling attempts in some cases by falling back to SSA after a conflict.", - "markdown": "`dra`: the scheduler plugin now avoids additional scheduling attempts in some cases by falling back to SSA after a conflict. ([#120534](https://github.com/kubernetes/kubernetes/pull/120534), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120534", - "pr_number": 120534, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "120542": { - "commit": "fe84992651335ba6dd66e16754e8e416e5144b59", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120542](https://github.com/kubernetes/kubernetes/pull/120542), [@alvaroaleman](https://github.com/alvaroaleman)) [SIG API Machinery]", - "author": "alvaroaleman", - "author_url": "https://github.com/alvaroaleman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120542", - "pr_number": 120542, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "do_not_publish": true - }, - "120546": { - "commit": "098d4c7b9ea1c5e6a10960a766c886e53b6e9712", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120546](https://github.com/kubernetes/kubernetes/pull/120546), [@SaumyaBhushan](https://github.com/SaumyaBhushan)) [SIG Cluster Lifecycle]", - "author": "SaumyaBhushan", - "author_url": "https://github.com/SaumyaBhushan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120546", - "pr_number": 120546, - "areas": [ - "kubeadm" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "120549": { - "commit": "35199e42a41f83520e640fbfa9f409516faa7501", - "text": "`kubeadm`: will now use universal deserializer to decode static pod.", - "markdown": "`kubeadm`: will now use universal deserializer to decode static pod. ([#120549](https://github.com/kubernetes/kubernetes/pull/120549), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120549", - "pr_number": 120549, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "120559": { - "commit": "b1161a8ac4594b8da07f4b62b588c019d542c34a", - "text": "e2e framework: retrying after intermittent `apiserver` failures was fixed in `WaitForPodsResponding`", - "markdown": "E2e framework: retrying after intermittent `apiserver` failures was fixed in `WaitForPodsResponding` ([#120559](https://github.com/kubernetes/kubernetes/pull/120559), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120559", - "pr_number": 120559, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "testing" - ], - "duplicate_kind": true - }, - "120562": { - "commit": "5faebe11b47d5e25674ea06ec05d7d9774ea631f", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120562](https://github.com/kubernetes/kubernetes/pull/120562), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG Security]", - "author": "ArkaSaha30", - "author_url": "https://github.com/ArkaSaha30", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120562", - "pr_number": 120562, - "kinds": [ - "feature" - ], - "sigs": [ - "security" - ], - "feature": true, - "do_not_publish": true - }, - "120574": { - "commit": "d393d4e1514711e89b310d4578214c8c383e015c", - "text": "The metrics controlled by the `ComponentSLIs` feature-gate and served at `/metrics/slis` are now GA and unconditionally enabled. The feature-gate will be removed in `v1.31`.", - "markdown": "The metrics controlled by the `ComponentSLIs` feature-gate and served at `/metrics/slis` are now GA and unconditionally enabled. The feature-gate will be removed in `v1.31`. ([#120574](https://github.com/kubernetes/kubernetes/pull/120574), [@logicalhan](https://github.com/logicalhan))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3466", - "type": "KEP" - } - ], - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120574", - "pr_number": 120574, - "areas": [ - "kubelet", - "kube-proxy", - "apiserver", - "cloudprovider", - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "scheduling", - "node", - "api-machinery", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "120577": { - "commit": "57768fd3d05e83970929278504aae8692ab06c8b", - "text": "Set the resolution for the `job_controller_job_sync_duration_seconds` metric from `4ms` to `1min`.", - "markdown": "Set the resolution for the `job_controller_job_sync_duration_seconds` metric from `4ms` to `1min`. ([#120577](https://github.com/kubernetes/kubernetes/pull/120577), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120577", - "pr_number": 120577, - "areas": [ - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "instrumentation" - ], - "duplicate": true - }, - "120583": { - "commit": "e897483713a94c512222683d36bc28df550c27ce", - "text": "Removed `/livez` livezchecks for KMS v1 and v2 to ensure KMS health does not cause `kube-apiserver` restart. KMS health checks are still in place as a healthz and readiness checks.", - "markdown": "Removed `/livez` livezchecks for KMS v1 and v2 to ensure KMS health does not cause `kube-apiserver` restart. KMS health checks are still in place as a healthz and readiness checks. ([#120583](https://github.com/kubernetes/kubernetes/pull/120583), [@ritazh](https://github.com/ritazh))", - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120583", - "pr_number": 120583, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "120595": { - "commit": "d3559bf77f7f41249c20f27af2e3ec5f3b07ac55", - "text": "Fixed attaching volumes after detach errors. Now volumes that failed to detach are not treated as attached. Kubernetes will make sure they are fully attached before they can be used by pods.", - "markdown": "Fixed attaching volumes after detach errors. Now volumes that failed to detach are not treated as attached. Kubernetes will make sure they are fully attached before they can be used by pods. ([#120595](https://github.com/kubernetes/kubernetes/pull/120595), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120595", - "pr_number": 120595, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "apps" - ], - "duplicate": true - }, - "120599": { - "commit": "5f8fc30b2c01735d8aaa22ef5618b0b424c228e9", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120599](https://github.com/kubernetes/kubernetes/pull/120599), [@srivastav-abhishek](https://github.com/srivastav-abhishek)) [SIG Apps]", - "author": "srivastav-abhishek", - "author_url": "https://github.com/srivastav-abhishek", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120599", - "pr_number": 120599, - "kinds": [ - "bug", - "flake" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "120616": { - "commit": "6c64593ba17e6e1fe81f75a92d91705a41637f3b", - "text": "Added support for split image filesystem in kubelet.", - "markdown": "Added support for split image filesystem in kubelet. ([#120616](https://github.com/kubernetes/kubernetes/pull/120616), [@kannon92](https://github.com/kannon92))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4191", - "type": "KEP" - } - ], - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120616", - "pr_number": 120616, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "120620": { - "commit": "ac6f7071554454eb34209753a30b418d4d9997bd", - "text": "Sidecar termination is now serialized and each sidecar container will receive a `SIGTERM` after all main containers and later starting sidecar containers have terminated.", - "markdown": "Sidecar termination is now serialized and each sidecar container will receive a `SIGTERM` after all main containers and later starting sidecar containers have terminated. ([#120620](https://github.com/kubernetes/kubernetes/pull/120620), [@tzneal](https://github.com/tzneal))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/753", - "type": "KEP" - }, - { - "description": "[KEP Update]", - "url": "https://github.com/kubernetes/enhancements/pull/4183", - "type": "KEP" - } - ], - "author": "tzneal", - "author_url": "https://github.com/tzneal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120620", - "pr_number": 120620, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "120623": { - "commit": "716b8b9d83a463030d211b4363c9c760304653cb", - "text": "Fixed a bug where `Services` using finalizers may hold onto `ClusterIP` and/or `NodePort` allocated resources for longer than expected if the finalizer is removed using the status subresource.", - "markdown": "Fixed a bug where `Services` using finalizers may hold onto `ClusterIP` and/or `NodePort` allocated resources for longer than expected if the finalizer is removed using the status subresource. ([#120623](https://github.com/kubernetes/kubernetes/pull/120623), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120623", - "pr_number": 120623, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "120627": { - "commit": "6a4f08e7e62404e93145f789fa66cfe7181f4a4a", - "text": "`PersistentVolumeLastPhaseTransitionTime` is now beta and enabled by default.", - "markdown": "`PersistentVolumeLastPhaseTransitionTime` is now beta and enabled by default. ([#120627](https://github.com/kubernetes/kubernetes/pull/120627), [@RomanBednar](https://github.com/RomanBednar))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3762", - "type": "external" - } - ], - "author": "RomanBednar", - "author_url": "https://github.com/RomanBednar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120627", - "pr_number": 120627, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true, - "duplicate_kind": true - }, - "120649": { - "commit": "355feb21fdec98a5f6baf0927edcd48a3a5612b9", - "text": "Fixed a bug in the cronjob controller where already created jobs might be missing from the status.", - "markdown": "Fixed a bug in the cronjob controller where already created jobs might be missing from the status. ([#120649](https://github.com/kubernetes/kubernetes/pull/120649), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120649", - "pr_number": 120649, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "120663": { - "commit": "074a8b00840e85cc95fd83b1825b14ab21ad09c4", - "text": "Promoted plugin subcommand resolution feature to `beta`.", - "markdown": "Promoted plugin subcommand resolution feature to `beta`. ([#120663](https://github.com/kubernetes/kubernetes/pull/120663), [@ardaguclu](https://github.com/ardaguclu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3638", - "type": "KEP" - } - ], - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120663", - "pr_number": 120663, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "120678": { - "commit": "801d460296c79d6409bd08337586cecf730bdd7e", - "text": "Fixed `systemLogQuery` service name matching.", - "markdown": "Fixed `systemLogQuery` service name matching. ([#120678](https://github.com/kubernetes/kubernetes/pull/120678), [@rothgar](https://github.com/rothgar))", - "documentation": [ - { - "description": "[Usage]: [", - "url": "https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#log-query]", - "type": "official" - } - ], - "author": "rothgar", - "author_url": "https://github.com/rothgar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120678", - "pr_number": 120678, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "120680": { - "commit": "f82670d8ec1f5a1589a9a91da5af73446b6f1b1f", - "text": "Metric buckets for `pod_start_duration_seconds` were changed to `{0.5, 1, 2, 3, 4, 5, 6, 8, 10, 20, 30, 45, 60, 120, 180, 240, 300, 360, 480, 600, 900, 1200, 1800, 2700, 3600}`.", - "markdown": "Metric buckets for `pod_start_duration_seconds` were changed to `{0.5, 1, 2, 3, 4, 5, 6, 8, 10, 20, 30, 45, 60, 120, 180, 240, 300, 360, 480, 600, 900, 1200, 1800, 2700, 3600}`. ([#120680](https://github.com/kubernetes/kubernetes/pull/120680), [@ruiwen-zhao](https://github.com/ruiwen-zhao))", - "author": "ruiwen-zhao", - "author_url": "https://github.com/ruiwen-zhao", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120680", - "pr_number": 120680, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "instrumentation" - ], - "duplicate": true - }, - "120682": { - "commit": "fe21e4d749392becd092bb68ed5f86e789138ba5", - "text": "`kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate is now `beta` and enabled by default. When enabled, legacy auto-generated service account token secrets are auto-labeled with a `kubernetes.io/legacy-token-invalid-since` label if the credentials have not been used in the time specified by `--legacy-service-account-token-clean-up-period` (defaulting to one year), **and** are referenced from the `.secrets` list of a ServiceAccount object, **and** are not referenced from pods. This label causes the authentication layer to reject use of the credentials. After being labeled as invalid, if the time specified by `--legacy-service-account-token-clean-up-period` (defaulting to one year) passes without the credential being used, the secret is automatically deleted. Secrets labeled as invalid which have not been auto-deleted yet can be re-activated by removing the `kubernetes.io/legacy-token-invalid-since` label.", - "markdown": "`kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate is now `beta` and enabled by default. When enabled, legacy auto-generated service account token secrets are auto-labeled with a `kubernetes.io/legacy-token-invalid-since` label if the credentials have not been used in the time specified by `--legacy-service-account-token-clean-up-period` (defaulting to one year), **and** are referenced from the `.secrets` list of a ServiceAccount object, **and** are not referenced from pods. This label causes the authentication layer to reject use of the credentials. After being labeled as invalid, if the time specified by `--legacy-service-account-token-clean-up-period` (defaulting to one year) passes without the credential being used, the secret is automatically deleted. Secrets labeled as invalid which have not been auto-deleted yet can be re-activated by removing the `kubernetes.io/legacy-token-invalid-since` label. ([#120682](https://github.com/kubernetes/kubernetes/pull/120682), [@yt2985](https://github.com/yt2985))", - "author": "yt2985", - "author_url": "https://github.com/yt2985", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120682", - "pr_number": 120682, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "120707": { - "commit": "07d2da75bd6b5a0bd9b4618889ba1a42ad192b03", - "text": "Client-side apply will now use OpenAPI `v3` by default.", - "markdown": "Client-side apply will now use OpenAPI `v3` by default. ([#120707](https://github.com/kubernetes/kubernetes/pull/120707), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120707", - "pr_number": 120707, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cli" - ], - "feature": true, - "duplicate": true - }, - "120715": { - "commit": "960431407c7c8c812f8ded0fad9fe7bd7dd93de5", - "text": "Fixed a bug where the memory resources allocated to an init container, with containerRestartPolicy of `Always`, were erroneously reused by a regular container.", - "markdown": "Fixed a bug where the memory resources allocated to an init container, with containerRestartPolicy of `Always`, were erroneously reused by a regular container. ([#120715](https://github.com/kubernetes/kubernetes/pull/120715), [@gjkim42](https://github.com/gjkim42)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", - "type": "KEP" - } - ], - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120715", - "pr_number": 120715, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "120723": { - "commit": "f1703405243e6e6332d4b1a68d65bfcdad66bc05", - "text": "Fixed issue with incremental id generation for `loadbalancer` and `endpoint` in `kubeproxy` mock test framework.", - "markdown": "Fixed issue with incremental id generation for `loadbalancer` and `endpoint` in `kubeproxy` mock test framework. ([#120723](https://github.com/kubernetes/kubernetes/pull/120723), [@princepereira](https://github.com/princepereira))", - "author": "princepereira", - "author_url": "https://github.com/princepereira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120723", - "pr_number": 120723, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true - }, - "120729": { - "commit": "f936f69cf994146650c287a95fa436d1d7352835", - "text": "`client-go`: `k8s.io/client-go/tools` events and record packages now have new APIs for specifying a context and logger.", - "markdown": "`client-go`: `k8s.io/client-go/tools` events and record packages now have new APIs for specifying a context and logger. ([#120729](https://github.com/kubernetes/kubernetes/pull/120729), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120729", - "pr_number": 120729, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "120731": { - "commit": "568aee16e809fcd8d892547e27775fecef5d5c5b", - "text": "Fixed the issue where pod with ordinal number lower than the rolling partitioning number was being deleted. It was coming up with updated image.", - "markdown": "Fixed the issue where pod with ordinal number lower than the rolling partitioning number was being deleted. It was coming up with updated image. ([#120731](https://github.com/kubernetes/kubernetes/pull/120731), [@adilGhaffarDev](https://github.com/adilGhaffarDev))", - "author": "adilGhaffarDev", - "author_url": "https://github.com/adilGhaffarDev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120731", - "pr_number": 120731, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "120735": { - "commit": "e93e8eac0ef1b26384e5481b67c7d04fe211a243", - "text": "Certain `requestBody` parameters in the OpenAPI `v3` are now correctly marked as required.", - "markdown": "Certain `requestBody` parameters in the OpenAPI `v3` are now correctly marked as required. ([#120735](https://github.com/kubernetes/kubernetes/pull/120735), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120735", - "pr_number": 120735, - "areas": [ - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "120736": { - "commit": "b28622c3e6c51fe936a02503ddf4a49f7aae10aa", - "text": "Fixed an issue where the `vsphere` cloud provider would not trust a certificate if:\n- The issuer of the certificate was unknown (`x509.UnknownAuthorityError`)\n- The requested name did not match the set of authorized names (`x509.HostnameError`)\n- The error surfaced after attempting a connection contained one of the substrings: \"certificate is not trusted\" or \"certificate signed by unknown authority\".", - "markdown": "Fixed an issue where the `vsphere` cloud provider would not trust a certificate if:\n - The issuer of the certificate was unknown (`x509.UnknownAuthorityError`)\n - The requested name did not match the set of authorized names (`x509.HostnameError`)\n - The error surfaced after attempting a connection contained one of the substrings: \"certificate is not trusted\" or \"certificate signed by unknown authority\". ([#120736](https://github.com/kubernetes/kubernetes/pull/120736), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", - "author": "MadhavJivrajani", - "author_url": "https://github.com/MadhavJivrajani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120736", - "pr_number": 120736, - "areas": [ - "cloudprovider", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "120757": { - "commit": "31c679f65cbf62efec7597133e6d8e78d8473c4d", - "text": "Updated `kube-openapi` to remove invalid defaults: OpenAPI spec no longer includes default of `{}` for certain fields where it did not make sense.", - "markdown": "Updated `kube-openapi` to remove invalid defaults: OpenAPI spec no longer includes default of `{}` for certain fields where it did not make sense. ([#120757](https://github.com/kubernetes/kubernetes/pull/120757), [@alexzielenski](https://github.com/alexzielenski))", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120757", - "pr_number": 120757, - "areas": [ - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true - }, - "120779": { - "commit": "824889c929eaca70fb8a2d5eb811a520170e333a", - "text": "No-op and GC related updates to cluster trust bundles no longer require attest authorization when the `ClusterTrustBundleAttest` plugin is enabled.", - "markdown": "No-op and GC related updates to cluster trust bundles no longer require attest authorization when the `ClusterTrustBundleAttest` plugin is enabled. ([#120779](https://github.com/kubernetes/kubernetes/pull/120779), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120779", - "pr_number": 120779, - "kinds": [ - "bug" - ], - "sigs": [ - "auth" - ] - }, - "120780": { - "commit": "ab13d0b47c790cfcf8b623a10ea08336a458a5b6", - "text": "`kube-apiserver` added:\n- `alpha` support (guarded by the `ServiceAccountTokenJTI` feature gate) for adding a `jti` (JWT ID) claim to service account tokens it issues, adding an `authentication.kubernetes.io/credential-id` audit annotation in audit logs when the tokens are issued, and `authentication.kubernetes.io/credential-id` entry in the extra user info when the token is used to authenticate.\n- `alpha` support (guarded by the `ServiceAccountTokenPodNodeInfo` feature gate) for including the node name (and uid, if the node exists) as additional claims in service account tokens it issues which are bound to pods, and `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` extra user info when the token is used to authenticate.\n- `alpha` support (guarded by the `ServiceAccountTokenNodeBinding` feature gate) for allowing `TokenRequests` that bind tokens directly to nodes, and (guarded by the ServiceAccountTokenNodeBindingValidation feature gate) for validating the node name and uid still exist when the token is used.", - "markdown": "`kube-apiserver` added:\n - `alpha` support (guarded by the `ServiceAccountTokenJTI` feature gate) for adding a `jti` (JWT ID) claim to service account tokens it issues, adding an `authentication.kubernetes.io/credential-id` audit annotation in audit logs when the tokens are issued, and `authentication.kubernetes.io/credential-id` entry in the extra user info when the token is used to authenticate.\n - `alpha` support (guarded by the `ServiceAccountTokenPodNodeInfo` feature gate) for including the node name (and uid, if the node exists) as additional claims in service account tokens it issues which are bound to pods, and `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` extra user info when the token is used to authenticate.\n - `alpha` support (guarded by the `ServiceAccountTokenNodeBinding` feature gate) for allowing `TokenRequests` that bind tokens directly to nodes, and (guarded by the ServiceAccountTokenNodeBindingValidation feature gate) for validating the node name and uid still exist when the token is used. ([#120780](https://github.com/kubernetes/kubernetes/pull/120780), [@munnerz](https://github.com/munnerz))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/4193-bound-service-account-token-improvements", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://github.com/kubernetes/website/pull/43590", - "type": "external" - }, - { - "description": "\"", - "url": "https://kubernetes.default.svc.cluster.local\"", - "type": "external" - }, - { - "description": "\"iss\": \"", - "url": "https://kubernetes.default.svc.cluster.local\",", - "type": "external" - } - ], - "author": "munnerz", - "author_url": "https://github.com/munnerz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120780", - "pr_number": 120780, - "areas": [ - "test", - "apiserver", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "120782": { - "commit": "39697a9f3bff729e4c427887347fcdf095bb583e", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120782](https://github.com/kubernetes/kubernetes/pull/120782), [@PI-Victor](https://github.com/PI-Victor)) [SIG Node]", - "author": "PI-Victor", - "author_url": "https://github.com/PI-Victor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120782", - "pr_number": 120782, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "120784": { - "commit": "05f4099c5f0b2c9768b4b397214cdac4e65703a9", - "text": "Fixed a bug where containers would not start on `cgroupv2` systems where `swap` is disabled.", - "markdown": "Fixed a bug where containers would not start on `cgroupv2` systems where `swap` is disabled. ([#120784](https://github.com/kubernetes/kubernetes/pull/120784), [@elezar](https://github.com/elezar))", - "author": "elezar", - "author_url": "https://github.com/elezar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120784", - "pr_number": 120784, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "120788": { - "commit": "12458285b963937a166458562845fbbc6176e5ce", - "text": "Stopped accepting component configuration for `kube-proxy` and `kubelet` during `kubeadm upgrade plan --config`. This was a legacy behavior that was not well supported for upgrades and could be used only at the plan stage to determine if the configuration for these components stored in the cluster needs manual version migration. In the future, `kubeadm` will attempt alternative component config migration approaches.", - "markdown": "Stopped accepting component configuration for `kube-proxy` and `kubelet` during `kubeadm upgrade plan --config`. This was a legacy behavior that was not well supported for upgrades and could be used only at the plan stage to determine if the configuration for these components stored in the cluster needs manual version migration. In the future, `kubeadm` will attempt alternative component config migration approaches. ([#120788](https://github.com/kubernetes/kubernetes/pull/120788), [@chendave](https://github.com/chendave))", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120788", - "pr_number": 120788, - "areas": [ - "kubeadm" - ], - "kinds": [ - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "action_required": true - }, - "120808": { - "commit": "b47aa1c20e579501cfa69d359a516157b1d5a98d", - "text": "Added options for configuring `nf_conntrack_udp_timeout`, and `nf_conntrack_udp_timeout_stream` variables of netfilter conntrack subsystem.", - "markdown": "Added options for configuring `nf_conntrack_udp_timeout`, and `nf_conntrack_udp_timeout_stream` variables of netfilter conntrack subsystem. ([#120808](https://github.com/kubernetes/kubernetes/pull/120808), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120808", - "pr_number": 120808, - "areas": [ - "kube-proxy", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "120814": { - "commit": "e339e03ff87b30c0521b20fbaa7f8da3d33d98a0", - "text": "Fixed regression with adding aggregated `APIservices` panicking and affected health check introduced in release `v1.28.0`.", - "markdown": "Fixed regression with adding aggregated `APIservices` panicking and affected health check introduced in release `v1.28.0`. ([#120814](https://github.com/kubernetes/kubernetes/pull/120814), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120814", - "pr_number": 120814, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "120825": { - "commit": "801932c012b300abdc3e938d89b3618f6e166f44", - "text": "`kubeadm`: deploying a kubelet that is 3 versions older than the version of `kubeadm` (N-3) is now allowed. This aligns with the recent change made by SIG Architecture that extends the support skew between the control plane and kubelets. Tolerate this new kubelet skew for the commands `init`, `join` and `upgrade`. Note that if the `kubeadm` user applies a control plane version that is older than the `kubeadm` version (N-1 maximum) then the skew between the kubelet and control plane would become a maximum of N-2.", - "markdown": "`kubeadm`: deploying a kubelet that is 3 versions older than the version of `kubeadm` (N-3) is now allowed. This aligns with the recent change made by SIG Architecture that extends the support skew between the control plane and kubelets. Tolerate this new kubelet skew for the commands `init`, `join` and `upgrade`. Note that if the `kubeadm` user applies a control plane version that is older than the `kubeadm` version (N-1 maximum) then the skew between the kubelet and control plane would become a maximum of N-2. ([#120825](https://github.com/kubernetes/kubernetes/pull/120825), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120825", - "pr_number": 120825, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "120827": { - "commit": "04e38b2de8ad16f1e778106c35f6d2cf94799ed4", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120827](https://github.com/kubernetes/kubernetes/pull/120827), [@machine424](https://github.com/machine424)) [SIG API Machinery and Instrumentation]", - "author": "machine424", - "author_url": "https://github.com/machine424", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120827", - "pr_number": 120827, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "do_not_publish": true - }, - "120828": { - "commit": "bb06804e525090e5d85ceffa4d89c961c3dc7d33", - "text": "`kubeadm`: fixed the bug where it always did CRI detection when `--config` was passed, even if it is not required by the subcommand.", - "markdown": "`kubeadm`: fixed the bug where it always did CRI detection when `--config` was passed, even if it is not required by the subcommand. ([#120828](https://github.com/kubernetes/kubernetes/pull/120828), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120828", - "pr_number": 120828, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "120836": { - "commit": "c5cf0ac1889f55ab51749798bec684aed876709d", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#120836](https://github.com/kubernetes/kubernetes/pull/120836), [@jkh52](https://github.com/jkh52)) [SIG API Machinery, Auth and Cloud Provider]", - "author": "jkh52", - "author_url": "https://github.com/jkh52", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120836", - "pr_number": 120836, - "areas": [ - "apiserver", - "cloudprovider", - "provider/gcp", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true - }, - "120843": { - "commit": "e8abe1af8dcb36f65ef7aa7135d4664b3db90e89", - "text": "The `kube-apiserver` will now expose four new metrics to inform about errors on the clusterIP and nodePort allocation logic.", - "markdown": "The `kube-apiserver` will now expose four new metrics to inform about errors on the clusterIP and nodePort allocation logic. ([#120843](https://github.com/kubernetes/kubernetes/pull/120843), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120843", - "pr_number": 120843, - "kinds": [ - "documentation", - "feature" - ], - "sigs": [ - "network", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "120854": { - "commit": "3cbfa3e2cd7e756b1f51a5c7e014c415ecdb1253", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120854](https://github.com/kubernetes/kubernetes/pull/120854), [@dpasiukevich](https://github.com/dpasiukevich)) [SIG Cloud Provider]", - "author": "dpasiukevich", - "author_url": "https://github.com/dpasiukevich", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120854", - "pr_number": 120854, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "do_not_publish": true - }, - "120861": { - "commit": "8e8ac86cf1118ddce2693aa8481dd02dab1385e3", - "text": "`RetroactiveDefaultStorageClass` feature gate that graduated to GA in `v1.28` and was unconditionally enabled has been removed in `v1.29`.", - "markdown": "`RetroactiveDefaultStorageClass` feature gate that graduated to GA in `v1.28` and was unconditionally enabled has been removed in `v1.29`. ([#120861](https://github.com/kubernetes/kubernetes/pull/120861), [@RomanBednar](https://github.com/RomanBednar))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3333", - "type": "KEP" - } - ], - "author": "RomanBednar", - "author_url": "https://github.com/RomanBednar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120861", - "pr_number": 120861, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ] - }, - "120864": { - "commit": "06a7febe00f49ff9f6eb6650b1c84af29b28604c", - "text": "Added a new `--init-only` command line flag to `kube-proxy`. Setting the flag makes `kube-proxy` perform its initial configuration that requires privileged mode, and then exit. The `--init-only` mode is intended to be executed in a privileged init container, so that the main container may run with a stricter `securityContext`.", - "markdown": "Added a new `--init-only` command line flag to `kube-proxy`. Setting the flag makes `kube-proxy` perform its initial configuration that requires privileged mode, and then exit. The `--init-only` mode is intended to be executed in a privileged init container, so that the main container may run with a stricter `securityContext`. ([#120864](https://github.com/kubernetes/kubernetes/pull/120864), [@uablrek](https://github.com/uablrek)) [SIG Network and Scalability]", - "author": "uablrek", - "author_url": "https://github.com/uablrek", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120864", - "pr_number": 120864, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "scalability" - ], - "feature": true, - "duplicate": true - }, - "120868": { - "commit": "a6b8954de16d69ec275bf8e6326996dfce9e4b4c", - "text": "`k8s.io/dynamic-resource-allocation`: DRA drivers updating to this release are compatible with Kubernetes `v1.27` and `v1.28`.", - "markdown": "`k8s.io/dynamic-resource-allocation`: DRA drivers updating to this release are compatible with Kubernetes `v1.27` and `v1.28`. ([#120868](https://github.com/kubernetes/kubernetes/pull/120868), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120868", - "pr_number": 120868, - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "120871": { - "commit": "38c6bd810f04931b67a88421e8afafc979856c95", - "text": "`k8s.io/dynamic-resource-allocation`: can now handle a `selected` node which isn't listed\nas `potential` node.", - "markdown": "`k8s.io/dynamic-resource-allocation`: can now handle a `selected` node which isn't listed\n as `potential` node. ([#120871](https://github.com/kubernetes/kubernetes/pull/120871), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120871", - "pr_number": 120871, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "120877": { - "commit": "139fa6962026d1013d1d67e3f9f31d11da290199", - "text": "Fixed a regression (`CLIENTSET_PKG: unbound variable`) when invoking deprecated `generate-groups.sh` script.", - "markdown": "Fixed a regression (`CLIENTSET_PKG: unbound variable`) when invoking deprecated `generate-groups.sh` script. ([#120877](https://github.com/kubernetes/kubernetes/pull/120877), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120877", - "pr_number": 120877, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "120894": { - "commit": "c989473dc801688cabcb69e562eb09ebca16578c", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120894](https://github.com/kubernetes/kubernetes/pull/120894), [@caoyingjunz](https://github.com/caoyingjunz)) [SIG Cluster Lifecycle]", - "author": "caoyingjunz", - "author_url": "https://github.com/caoyingjunz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120894", - "pr_number": 120894, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "120903": { - "commit": "26c3f66887d13efc8cd627b50beeeef060c2e39c", - "text": "Deprecated the `--cloud-provider` and `--cloud-config` CLI parameters in kube-apiserver.\nThese parameters will be removed in a future release.", - "markdown": "Deprecated the `--cloud-provider` and `--cloud-config` CLI parameters in kube-apiserver.\n These parameters will be removed in a future release. ([#120903](https://github.com/kubernetes/kubernetes/pull/120903), [@dims](https://github.com/dims)) [SIG API Machinery]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120903", - "pr_number": 120903, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "120914": { - "commit": "413b15a8d9cb747f17d13e6c9f53ec6a51f2b1b9", - "text": "Added container filesystem to the `ImageFsInfoResponse`.", - "markdown": "Added container filesystem to the `ImageFsInfoResponse`. ([#120914](https://github.com/kubernetes/kubernetes/pull/120914), [@kannon92](https://github.com/kannon92))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4191", - "type": "KEP" - } - ], - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120914", - "pr_number": 120914, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "120933": { - "commit": "fd5c40611257c694d2338960976726344e2b45e5", - "text": "Migrated the remainder of the scheduler to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the remainder of the scheduler to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#120933](https://github.com/kubernetes/kubernetes/pull/120933), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120933", - "pr_number": 120933, - "areas": [ - "test", - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "instrumentation", - "testing" - ], - "duplicate": true - }, - "120942": { - "commit": "de054fbf9422d778568946de21a48c7330a6c1b7", - "text": "Fixed a regression in the kubelet's behavior while creating a container when the `EventedPLEG` feature gate is enabled.", - "markdown": "Fixed a regression in the kubelet's behavior while creating a container when the `EventedPLEG` feature gate is enabled. ([#120942](https://github.com/kubernetes/kubernetes/pull/120942), [@sairameshv](https://github.com/sairameshv))", - "author": "sairameshv", - "author_url": "https://github.com/sairameshv", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120942", - "pr_number": 120942, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "flake" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true - }, - "120954": { - "commit": "d475c249daeffd09efb241e6a1c5f4451c7b6321", - "text": "Added the `DisableNodeKubeProxyVersion` feature gate. If `DisableNodeKubeProxyVersion` is enabled, the `kubeProxyVersion` field is not set.", - "markdown": "Added the `DisableNodeKubeProxyVersion` feature gate. If `DisableNodeKubeProxyVersion` is enabled, the `kubeProxyVersion` field is not set. ([#120954](https://github.com/kubernetes/kubernetes/pull/120954), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120954", - "pr_number": 120954, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "120995": { - "commit": "0c93f40374cb7668b4d48800b9a0fe677fcfc982", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120995](https://github.com/kubernetes/kubernetes/pull/120995), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Node]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120995", - "pr_number": 120995, - "areas": [ - "kubelet", - "kube-proxy", - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true, - "do_not_publish": true - }, - "121001": { - "commit": "b87cae907d032ba6412e369a86349c220b12b82c", - "text": "`ValidatingAdmissionPolicy` now preserves types of composition variables, and raises type-related errors early.", - "markdown": "`ValidatingAdmissionPolicy` now preserves types of composition variables, and raises type-related errors early. ([#121001](https://github.com/kubernetes/kubernetes/pull/121001), [@jiahuif](https://github.com/jiahuif))", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121001", - "pr_number": 121001, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "121008": { - "commit": "3bfa9482fca675803c456ecbe4252b6525c9d021", - "text": "Fixed a regression in `kube-proxy` where it might refuse to start if given\nsingle-stack `IPv6` configuration options on a node that has both `IPv4` and\n`IPv6` IPs.", - "markdown": "Fixed a regression in `kube-proxy` where it might refuse to start if given\n single-stack `IPv6` configuration options on a node that has both `IPv4` and\n `IPv6` IPs. ([#121008](https://github.com/kubernetes/kubernetes/pull/121008), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121008", - "pr_number": 121008, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "121016": { - "commit": "3930f3f834ca6755dd6d5ecb3fa6c36b61b9e964", - "text": "`CRDValidationRatcheting`: added support for ratcheting `x-kubernetes-validations` in schema.", - "markdown": "`CRDValidationRatcheting`: added support for ratcheting `x-kubernetes-validations` in schema. ([#121016](https://github.com/kubernetes/kubernetes/pull/121016), [@alexzielenski](https://github.com/alexzielenski))", - "documentation": [ - { - "description": "[KEP]", - "url": "http://kep.k8s.io/4008", - "type": "external" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121016", - "pr_number": 121016, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "121021": { - "commit": "9bea6bda05873ad481822174a97892fc3e767ab6", - "text": "Kubernetes is now built with Go `1.21.2`.", - "markdown": "Kubernetes is now built with Go `1.21.2`. ([#121021](https://github.com/kubernetes/kubernetes/pull/121021), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121021", - "pr_number": 121021, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "121028": { - "commit": "fc479f41b3d2130b18b83aa12b8cecb83d67a9c1", - "text": "`kubelet` , when using `--cloud-provider=external`, will now initialize the node addresses with the value of `--node-ip` , if it exists, or waits for the cloud provider to assign the addresses.", - "markdown": "`kubelet` , when using `--cloud-provider=external`, will now initialize the node addresses with the value of `--node-ip` , if it exists, or waits for the cloud provider to assign the addresses. ([#121028](https://github.com/kubernetes/kubernetes/pull/121028), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121028", - "pr_number": 121028, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "documentation", - "feature" - ], - "sigs": [ - "node", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "121034": { - "commit": "22866ca5eb343b3708177ee0d7d6ad9466ad321f", - "text": "Added `optionalOldSelf` to `x-kubernetes-validations` to support ratcheting CRD schema constraints.", - "markdown": "Added `optionalOldSelf` to `x-kubernetes-validations` to support ratcheting CRD schema constraints. ([#121034](https://github.com/kubernetes/kubernetes/pull/121034), [@alexzielenski](https://github.com/alexzielenski))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4008", - "type": "external" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121034", - "pr_number": 121034, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "121041": { - "commit": "de708905d8fadc49276098d7acb4eaf3b1df010a", - "text": "`kubelet` now emits a metric for end-to-end pod startup latency, including image pull.", - "markdown": "`kubelet` now emits a metric for end-to-end pod startup latency, including image pull. ([#121041](https://github.com/kubernetes/kubernetes/pull/121041), [@ruiwen-zhao](https://github.com/ruiwen-zhao))", - "author": "ruiwen-zhao", - "author_url": "https://github.com/ruiwen-zhao", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121041", - "pr_number": 121041, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "121046": { - "commit": "257b8c3666caff2e388894bed07d5e15abf60267", - "text": "`kube-proxy` now has a new nftables-based mode, available by running\n\n `kube-proxy --feature-gates NFTablesProxyMode=true --proxy-mode nftables`\n\nThis is currently an alpha-level feature and while it probably will not\neat your data, it may nibble at it a bit. (It passes e2e testing but has\nnot yet seen real-world use.)\n\nAt this point it should be functionally mostly identical to the iptables\nmode, except that it does not (and will not) support Service NodePorts on\n127.0.0.1. (Also note that there are currently no command-line arguments\nfor the nftables-specific config; you will need to use a config file if\nyou want to set the equivalent of any of the `--iptables-xxx` options.)\n\nAs this code is still very new, it has not been heavily optimized yet;\nwhile it is expected to _eventually_ have better performance than the\niptables backend, very little performance testing has been done so far.", - "markdown": "`kube-proxy` now has a new nftables-based mode, available by running\n \n `kube-proxy --feature-gates NFTablesProxyMode=true --proxy-mode nftables`\n \n This is currently an alpha-level feature and while it probably will not\n eat your data, it may nibble at it a bit. (It passes e2e testing but has\n not yet seen real-world use.)\n \n At this point it should be functionally mostly identical to the iptables\n mode, except that it does not (and will not) support Service NodePorts on\n 127.0.0.1. (Also note that there are currently no command-line arguments\n for the nftables-specific config; you will need to use a config file if\n you want to set the equivalent of any of the `--iptables-xxx` options.)\n \n As this code is still very new, it has not been heavily optimized yet;\n while it is expected to _eventually_ have better performance than the\n iptables backend, very little performance testing has been done so far. ([#121046](https://github.com/kubernetes/kubernetes/pull/121046), [@danwinship](https://github.com/danwinship))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3866", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121046", - "pr_number": 121046, - "areas": [ - "kube-proxy", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "121059": { - "commit": "c7d270302c8de3afc9d7b01c70faf3a18407ce44", - "text": "When the kubelet fails to assign CPUs to a Pod because there less available CPUs than the Pod requests, the error message changed from\n`not enough cpus available to satisfy request` to `not enough cpus available to satisfy request: \u003cnum_requested\u003e requested, only \u003cnum_available\u003e available`.", - "markdown": "When the kubelet fails to assign CPUs to a Pod because there less available CPUs than the Pod requests, the error message changed from\n `not enough cpus available to satisfy request` to `not enough cpus available to satisfy request: \u003cnum_requested\u003e requested, only \u003cnum_available\u003e available`. ([#121059](https://github.com/kubernetes/kubernetes/pull/121059), [@matte21](https://github.com/matte21))", - "author": "matte21", - "author_url": "https://github.com/matte21", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121059", - "pr_number": 121059, - "areas": [ - "kubelet" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "node" - ] - }, - "121065": { - "commit": "4106366b6d574b347fb0481e61d2e88a9d2a87b2", - "text": "`k8s.io/dynamic-resource-allocation/controller`: `ResourceClaimParameters` and `ResourceClassParameters` validation errors are now visible on `ResourceClaim`, `ResourceClass` and `Pod`.", - "markdown": "`k8s.io/dynamic-resource-allocation/controller`: `ResourceClaimParameters` and `ResourceClassParameters` validation errors are now visible on `ResourceClaim`, `ResourceClass` and `Pod`. ([#121065](https://github.com/kubernetes/kubernetes/pull/121065), [@byako](https://github.com/byako))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "byako", - "author_url": "https://github.com/byako", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121065", - "pr_number": 121065, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "121073": { - "commit": "246aba89128ed9f3236321baed8f0778cc8800cb", - "text": "Bumped `distroless-iptables` to `0.3.3` based on Go `1.21.2`.", - "markdown": "Bumped `distroless-iptables` to `0.3.3` based on Go `1.21.2`. ([#121073](https://github.com/kubernetes/kubernetes/pull/121073), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121073", - "pr_number": 121073, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - }, - "121077": { - "commit": "6d7d2493726a69773ef74692a1cc897ccb41a459", - "text": "Graduated the `ReadWriteOncePod` feature gate to `GA`.", - "markdown": "Graduated the `ReadWriteOncePod` feature gate to `GA`. ([#121077](https://github.com/kubernetes/kubernetes/pull/121077), [@chrishenzie](https://github.com/chrishenzie))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2485", - "type": "KEP" - } - ], - "author": "chrishenzie", - "author_url": "https://github.com/chrishenzie", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121077", - "pr_number": 121077, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "121078": { - "commit": "fafccc0c9a514caa72e5a16ea0d6213081081e19", - "text": "Added CEL expressions to `v1alpha1 AuthenticationConfiguration`.", - "markdown": "Added CEL expressions to `v1alpha1 AuthenticationConfiguration`. ([#121078](https://github.com/kubernetes/kubernetes/pull/121078), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121078", - "pr_number": 121078, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "121083": { - "commit": "62643ca14513f81e9ff88d830475aae4570ecfa1", - "text": "Previous versions of Kubernetes on Google Cloud required that workloads (e.g., Deployments, DaemonSets, etc.) which used `PersistentDisk` volumes were using them in read-only mode. This validation provided very little value at relatively host implementation cost, and will no longer be validated. If this is a problem for a specific use-case, please set the `SkipReadOnlyValidationGCE` gate to false to re-enable the validation, and file a Kubernetes bug with details.", - "markdown": "Previous versions of Kubernetes on Google Cloud required that workloads (e.g., Deployments, DaemonSets, etc.) which used `PersistentDisk` volumes were using them in read-only mode. This validation provided very little value at relatively host implementation cost, and will no longer be validated. If this is a problem for a specific use-case, please set the `SkipReadOnlyValidationGCE` gate to false to re-enable the validation, and file a Kubernetes bug with details. ([#121083](https://github.com/kubernetes/kubernetes/pull/121083), [@thockin](https://github.com/thockin))", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121083", - "pr_number": 121083, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ] - }, - "121085": { - "commit": "0304c567b68845a829d6d285418e650875a4701d", - "text": "CEL cost estimator no longer treats enums as unbounded strings when determining its length. Instead, the length is set to the longest possible enum value.", - "markdown": "CEL cost estimator no longer treats enums as unbounded strings when determining its length. Instead, the length is set to the longest possible enum value. ([#121085](https://github.com/kubernetes/kubernetes/pull/121085), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery]", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121085", - "pr_number": 121085, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "121089": { - "commit": "f5a5d83d7c027aba86e18c52da8ec4cd14179be3", - "text": "The `flowcontrol.apiserver.k8s.io/v1beta3` `FlowSchema` and `PriorityLevelConfiguration` APIs has been promoted to `flowcontrol.apiserver.k8s.io/v1`, with the following changes:\n- `PriorityLevelConfiguration`: the `.spec.limited.nominalConcurrencyShares` field defaults to `30` only if the field is omitted (v1beta3 also defaulted an explicit `0` value to `30`). Specifying an explicit `0` value is not allowed in the `v1` version in v1.29 to ensure compatibility with `v1.28` API servers. In `v1.30`, explicit `0` values will be allowed in this field in the `v1` API.\nThe `flowcontrol.apiserver.k8s.io/v1beta3` APIs are deprecated and will no longer be served in v1.32. All existing objects are available via the `v1` APIs. Transition clients and manifests to use the `v1` APIs before upgrading to `v1.32`.", - "markdown": "The `flowcontrol.apiserver.k8s.io/v1beta3` `FlowSchema` and `PriorityLevelConfiguration` APIs has been promoted to `flowcontrol.apiserver.k8s.io/v1`, with the following changes:\n - `PriorityLevelConfiguration`: the `.spec.limited.nominalConcurrencyShares` field defaults to `30` only if the field is omitted (v1beta3 also defaulted an explicit `0` value to `30`). Specifying an explicit `0` value is not allowed in the `v1` version in v1.29 to ensure compatibility with `v1.28` API servers. In `v1.30`, explicit `0` values will be allowed in this field in the `v1` API.\n The `flowcontrol.apiserver.k8s.io/v1beta3` APIs are deprecated and will no longer be served in v1.32. All existing objects are available via the `v1` APIs. Transition clients and manifests to use the `v1` APIs before upgrading to `v1.32`. ([#121089](https://github.com/kubernetes/kubernetes/pull/121089), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121089", - "pr_number": 121089, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "121091": { - "commit": "77d72a30e1eab39a0eab0a00544fcf08a6406fd1", - "text": "KCCM: fixed transient node addition and removal caused by #121090 while syncing load balancers on large clusters with a lot of churn.", - "markdown": "KCCM: fixed transient node addition and removal caused by #121090 while syncing load balancers on large clusters with a lot of churn. ([#121091](https://github.com/kubernetes/kubernetes/pull/121091), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121091", - "pr_number": 121091, - "areas": [ - "test", - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "121095": { - "commit": "ae603d5260a32d85e96a1e57caf61865f51cb29d", - "text": "Enabled traces for KMSv2 encrypt/decrypt operations.", - "markdown": "Enabled traces for KMSv2 encrypt/decrypt operations. ([#121095](https://github.com/kubernetes/kubernetes/pull/121095), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121095", - "pr_number": 121095, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "testing", - "architecture" - ], - "feature": true, - "duplicate": true - }, - "121103": { - "commit": "88d9573c3033afc3f63ca2cfb0edf3209a68d47d", - "text": "Fixed a regression in default configurations, which enabled `PodDisruptionConditions`\nby default, that prevented the control plane's pod garbage collector from deleting\npods that contained duplicated field keys (environmental variables with repeated keys or\ncontainer ports).", - "markdown": "Fixed a regression in default configurations, which enabled `PodDisruptionConditions`\n by default, that prevented the control plane's pod garbage collector from deleting\n pods that contained duplicated field keys (environmental variables with repeated keys or\n container ports). ([#121103](https://github.com/kubernetes/kubernetes/pull/121103), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121103", - "pr_number": 121103, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling", - "node", - "auth", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "121116": { - "commit": "9cf1910b389e801bd9110038da28154305c37e94", - "text": "Fixed [121094](https://github.com/kubernetes/kubernetes/issues/121094) by re-introducing the readiness predicate for `externalTrafficPolicy: Local` services.", - "markdown": "Fixed [121094](https://github.com/kubernetes/kubernetes/issues/121094) by re-introducing the readiness predicate for `externalTrafficPolicy: Local` services. ([#121116](https://github.com/kubernetes/kubernetes/pull/121116), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121116", - "pr_number": 121116, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "cloud-provider" - ], - "duplicate": true - }, - "121120": { - "commit": "cb713c15e99d59cb5b2f9015d1d978fee8142965", - "text": "Mitigated http/2 DOS vulnerabilities for `CVE-2023-44487` and `CVE-2023-39325` for the API server when the client is unauthenticated. The mitigation may be disabled by setting the `UnauthenticatedHTTP2DOSMitigation` feature gate to `false` (it is enabled by default). An API server fronted by an L7 load balancer that already mitigates these http/2 attacks may choose to disable the kube-apiserver mitigation to avoid disrupting load balancer -\u003e kube-apiserver connections if http/2 requests from multiple clients share the same backend connection. An API server on a private network may opt to disable the kube-apiserver mitigation to prevent performance regressions for unauthenticated clients. Authenticated requests rely on the fix in golang.org/x/net `v0.17.0` alone. https://issue.k8s.io/121197 tracks further mitigation of http/2 attacks by authenticated clients.", - "markdown": "Mitigated http/2 DOS vulnerabilities for `CVE-2023-44487` and `CVE-2023-39325` for the API server when the client is unauthenticated. The mitigation may be disabled by setting the `UnauthenticatedHTTP2DOSMitigation` feature gate to `false` (it is enabled by default). An API server fronted by an L7 load balancer that already mitigates these http/2 attacks may choose to disable the kube-apiserver mitigation to avoid disrupting load balancer -\u003e kube-apiserver connections if http/2 requests from multiple clients share the same backend connection. An API server on a private network may opt to disable the kube-apiserver mitigation to prevent performance regressions for unauthenticated clients. Authenticated requests rely on the fix in golang.org/x/net `v0.17.0` alone. https://issue.k8s.io/121197 tracks further mitigation of http/2 attacks by authenticated clients. ([#121120](https://github.com/kubernetes/kubernetes/pull/121120), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121120", - "pr_number": 121120, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "121121": { - "commit": "5b7339b8047925d71bbbb20edf3670ae56f5bbb0", - "text": "CRI: image pull per runtime class is now supported.", - "markdown": "CRI: image pull per runtime class is now supported. ([#121121](https://github.com/kubernetes/kubernetes/pull/121121), [@kiashok](https://github.com/kiashok))", - "documentation": [ - { - "description": "[KEP 4126]", - "url": "https://github.com/kubernetes/enhancements/pull/4217/commits/51df9e2d2bc391e43000da7221a4955fcaa82012", - "type": "KEP" - } - ], - "author": "kiashok", - "author_url": "https://github.com/kiashok", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121121", - "pr_number": 121121, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "windows" - ], - "feature": true, - "duplicate": true - }, - "121142": { - "commit": "bae6911b112f38c2a429fe672bd3dd6ec3d11f7b", - "text": "Fixed a `v1.28.0` regression where `kube-controller-manager` can crash when `StatefulSet` with `Parallel` policy and PVC labels are scaled up.", - "markdown": "Fixed a `v1.28.0` regression where `kube-controller-manager` can crash when `StatefulSet` with `Parallel` policy and PVC labels are scaled up. ([#121142](https://github.com/kubernetes/kubernetes/pull/121142), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", - "author": "aleksandra-malinowska", - "author_url": "https://github.com/aleksandra-malinowska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121142", - "pr_number": 121142, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "121147": { - "commit": "6d70013af571e389d19fb390eb7cb89dca41ae81", - "text": "Fixed panic in Job controller when `podRecreationPolicy: Failed` is used, and the number of terminating pods exceeds parallelism.", - "markdown": "Fixed panic in Job controller when `podRecreationPolicy: Failed` is used, and the number of terminating pods exceeds parallelism. ([#121147](https://github.com/kubernetes/kubernetes/pull/121147), [@kannon92](https://github.com/kannon92))", - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121147", - "pr_number": 121147, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "121149": { - "commit": "338c3a0fc7a8ad70b4cf4403e6ece222d59bc53b", - "text": "Kubernetes is now built with Go `v1.21.3`.", - "markdown": "Kubernetes is now built with Go `v1.21.3`. ([#121149](https://github.com/kubernetes/kubernetes/pull/121149), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121149", - "pr_number": 121149, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true - }, - "121172": { - "commit": "963178207adf12f4bae0ef3273f5810e7341bf8c", - "text": "`kubeadm`: removed leftover disclaimer that could be seen in the `kubeadm init phase certs` command help screen, since the \"certs\" phase of \"init\" is no longer alpha.", - "markdown": "`kubeadm`: removed leftover disclaimer that could be seen in the `kubeadm init phase certs` command help screen, since the \"certs\" phase of \"init\" is no longer alpha. ([#121172](https://github.com/kubernetes/kubernetes/pull/121172), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121172", - "pr_number": 121172, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "121191": { - "commit": "2b4ef19578f6bec7f4a76c82b7afcac2c228648d", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#121191](https://github.com/kubernetes/kubernetes/pull/121191), [@dims](https://github.com/dims)) [SIG Node and Testing]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121191", - "pr_number": 121191, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "121193": { - "commit": "953afbb328939e748edc3c154bb1ab9248ff70e5", - "text": "Fixed overriding default `KubeletConfig` fields in drop-in configs if not set.", - "markdown": "Fixed overriding default `KubeletConfig` fields in drop-in configs if not set. ([#121193](https://github.com/kubernetes/kubernetes/pull/121193), [@sohankunkerkar](https://github.com/sohankunkerkar))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3983-drop-in-configuration", - "type": "KEP" - } - ], - "author": "sohankunkerkar", - "author_url": "https://github.com/sohankunkerkar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121193", - "pr_number": 121193, - "areas": [ - "test", - "kubelet", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "121216": { - "commit": "89f124cd706b8f7c316034cabe7eb42ad8d6912d", - "text": "Bumped `distroless-iptables` to `0.4.1` based on Go `1.21.3`.", - "markdown": "Bumped `distroless-iptables` to `0.4.1` based on Go `1.21.3`. ([#121216](https://github.com/kubernetes/kubernetes/pull/121216), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121216", - "pr_number": 121216, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - }, - "121223": { - "commit": "064e86b3d03470f515b1adb34cac1cfacb285239", - "text": "Added support for CEL expressions to `v1alpha1 AuthorizationConfiguration` webhook `matchConditions`.", - "markdown": "Added support for CEL expressions to `v1alpha1 AuthorizationConfiguration` webhook `matchConditions`. ([#121223](https://github.com/kubernetes/kubernetes/pull/121223), [@ritazh](https://github.com/ritazh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3221", - "type": "external" - } - ], - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121223", - "pr_number": 121223, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "121229": { - "commit": "4d8a51acacaf0df9bfbaee8cd43f15dbdc85b146", - "text": "Removed the networking `alpha` API `ClusterCIDR`.", - "markdown": "Removed the networking `alpha` API `ClusterCIDR`. ([#121229](https://github.com/kubernetes/kubernetes/pull/121229), [@aojea](https://github.com/aojea))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2593-multiple-cluster-cidrs", - "type": "KEP" - }, - { - "description": "[SIG Network announcement]", - "url": "https://groups.google.com/g/kubernetes-sig-network/c/nts1xEZ--gQ/m/2aTOUNFFAAAJ", - "type": "external" - } - ], - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121229", - "pr_number": 121229, - "areas": [ - "test", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change", - "feature", - "deprecation" - ], - "sigs": [ - "network", - "apps", - "cli", - "testing", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "121240": { - "commit": "7aa89084a345016a43500443fb1cc9ea6984f235", - "text": "`kubelet` will now allow pods to use the `net.ipv4.tcp_fin_timeout`, “net.ipv4.tcp_keepalive_intvl”\nand “net.ipv4.tcp_keepalive_probes“ sysctl by default; Pod Security Admission\nallows this sysctl in `v1.29+` versions of the baseline and restricted policies.", - "markdown": "`kubelet` will now allow pods to use the `net.ipv4.tcp_fin_timeout`, “net.ipv4.tcp_keepalive_intvl”\n and “net.ipv4.tcp_keepalive_probes“ sysctl by default; Pod Security Admission\n allows this sysctl in `v1.29+` versions of the baseline and restricted policies. ([#121240](https://github.com/kubernetes/kubernetes/pull/121240), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121240", - "pr_number": 121240, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "auth" - ], - "feature": true, - "duplicate": true - }, - "121246": { - "commit": "a78fbb685ea9cc453fe520df809384642c55ae10", - "text": "Removed `GA`ed feature gates `SeccompDefault`.", - "markdown": "Removed `GA`ed feature gates `SeccompDefault`. ([#121246](https://github.com/kubernetes/kubernetes/pull/121246), [@tukwila](https://github.com/tukwila))", - "author": "tukwila", - "author_url": "https://github.com/tukwila", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121246", - "pr_number": 121246, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "121249": { - "commit": "4254a77c21f5d6e49fc079427da008b4bc9d5475", - "text": "Fixed some invalid and unimportant log calls.", - "markdown": "Fixed some invalid and unimportant log calls. ([#121249](https://github.com/kubernetes/kubernetes/pull/121249), [@pohly](https://github.com/pohly)) [SIG Cloud Provider, Cluster Lifecycle and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121249", - "pr_number": 121249, - "areas": [ - "test", - "cloudprovider", - "kubeadm", - "code-generation" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle", - "testing", - "cloud-provider" - ], - "duplicate": true - }, - "121252": { - "commit": "2fcddbd37fc607e0fecd64c2a05f435397dd7180", - "text": "Removed `GA`ed feature gate `TopologyManager`.", - "markdown": "Removed `GA`ed feature gate `TopologyManager`. ([#121252](https://github.com/kubernetes/kubernetes/pull/121252), [@tukwila](https://github.com/tukwila))", - "author": "tukwila", - "author_url": "https://github.com/tukwila", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121252", - "pr_number": 121252, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "121254": { - "commit": "4aea803f3f4411b3895b9314f06cfee9b4140340", - "text": "`DevicePluginCDIDevices` feature has been graduated to `beta` and enabled by default in the kubelet.", - "markdown": "`DevicePluginCDIDevices` feature has been graduated to `beta` and enabled by default in the kubelet. ([#121254](https://github.com/kubernetes/kubernetes/pull/121254), [@bart0sh](https://github.com/bart0sh))", - "documentation": [ - { - "description": "[Documentation update PR]", - "url": "https://github.com/kubernetes/website/pull/43435", - "type": "external" - } - ], - "author": "bart0sh", - "author_url": "https://github.com/bart0sh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121254", - "pr_number": 121254, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "121255": { - "commit": "993c918311289fb015223a6fdb3e3a613e941881", - "text": "Removed `GA`ed feature gates `OpenAPIV3`.", - "markdown": "Removed `GA`ed feature gates `OpenAPIV3`. ([#121255](https://github.com/kubernetes/kubernetes/pull/121255), [@tukwila](https://github.com/tukwila))", - "author": "tukwila", - "author_url": "https://github.com/tukwila", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121255", - "pr_number": 121255, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "121257": { - "commit": "bbcbfe4b971c89aa89bbbd1b211326778e07a56e", - "text": "Removed `GA` feature gate about `ProbeTerminationGracePeriod`.", - "markdown": "Removed `GA` feature gate about `ProbeTerminationGracePeriod`. ([#121257](https://github.com/kubernetes/kubernetes/pull/121257), [@bzsuni](https://github.com/bzsuni))", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121257", - "pr_number": 121257, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "121275": { - "commit": "12b01aff1b946eae5c6873b802ecdef913e4cf2b", - "text": "Added `ImageMaximumGCAge` field to kubelet configuration, which allows a user to set the maximum age an image is unused before it's garbage collected.", - "markdown": "Added `ImageMaximumGCAge` field to kubelet configuration, which allows a user to set the maximum age an image is unused before it's garbage collected. ([#121275](https://github.com/kubernetes/kubernetes/pull/121275), [@haircommander](https://github.com/haircommander))", - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121275", - "pr_number": 121275, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "121283": { - "commit": "dc8b57d8a75764e649d641ac77c1539a574d9aed", - "text": "Fixed a bug where an API group's path was not unregistered from the API server's root paths when the group was deleted.", - "markdown": "Fixed a bug where an API group's path was not unregistered from the API server's root paths when the group was deleted. ([#121283](https://github.com/kubernetes/kubernetes/pull/121283), [@tnqn](https://github.com/tnqn)) [SIG API Machinery and Testing]", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121283", - "pr_number": 121283, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "121291": { - "commit": "0501933e56d6921c689d9a92d99278a31e44ee5a", - "text": "Removed `GA` feature gate about `CSIMigrationvSphere`.", - "markdown": "Removed `GA` feature gate about `CSIMigrationvSphere`. ([#121291](https://github.com/kubernetes/kubernetes/pull/121291), [@bzsuni](https://github.com/bzsuni))", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121291", - "pr_number": 121291, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "node", - "api-machinery" - ], - "duplicate": true - }, - "121292": { - "commit": "1fc3d10f7e4f8f0074faabc9e054a324491f298c", - "text": "Introduced the `job_finished_indexes_total` metric for the `BackoffLimitPerIndex` feature.", - "markdown": "Introduced the `job_finished_indexes_total` metric for the `BackoffLimitPerIndex` feature. ([#121292](https://github.com/kubernetes/kubernetes/pull/121292), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3850-backoff-limits-per-index-for-indexed-jobs", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121292", - "pr_number": 121292, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "121300": { - "commit": "3825e206cb162a7ad7431a5bdf6a065ae8422cf7", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#121300](https://github.com/kubernetes/kubernetes/pull/121300), [@stuton](https://github.com/stuton)) [SIG Apps and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2879-ready-pods-job-status#ga", - "type": "KEP" - } - ], - "author": "stuton", - "author_url": "https://github.com/stuton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121300", - "pr_number": 121300, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "121302": { - "commit": "36f51eb1a170070a8657a82d3589b8cd9ec451c8", - "text": "Graduated `JobReadyPods` to `stable`. The feature gate can no longer be disabled.", - "markdown": "Graduated `JobReadyPods` to `stable`. The feature gate can no longer be disabled. ([#121302](https://github.com/kubernetes/kubernetes/pull/121302), [@stuton](https://github.com/stuton))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2879-ready-pods-job-status#ga", - "type": "KEP" - } - ], - "author": "stuton", - "author_url": "https://github.com/stuton", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121302", - "pr_number": 121302, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "121303": { - "commit": "d038b65feefd6994ab82682234fc4e86255311da", - "text": "`CSINodeExpandSecret` feature has been promoted to `GA` in this release and is enabled\nby default. The CSI drivers can make use of the `secretRef` values passed in `NodeExpansion`\nrequest optionally sent by the CSI Client from this release onwards.", - "markdown": "`CSINodeExpandSecret` feature has been promoted to `GA` in this release and is enabled\n by default. The CSI drivers can make use of the `secretRef` values passed in `NodeExpansion`\n request optionally sent by the CSI Client from this release onwards. ([#121303](https://github.com/kubernetes/kubernetes/pull/121303), [@humblec](https://github.com/humblec))", - "author": "humblec", - "author_url": "https://github.com/humblec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121303", - "pr_number": 121303, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "121305": { - "commit": "c8125c40299513470c7b992169233edf086755da", - "text": "`kubeadm`: a separate `super-admin.conf` file is now deployed. The User in `admin.conf` is now bound to a new RBAC Group `kubeadm:cluster-admins` that has `cluster-admin` `ClusterRole` access. The User in `super-admin.conf` is now bound to the `system:masters` built-in super-powers / break-glass Group that can bypass RBAC. Before this change, the default `admin.conf` was bound to `system:masters` Group, which was undesired. Executing `kubeadm init phase kubeconfig all` or just `kubeadm init` will now generate the new `super-admin.conf` file. The cluster admin can then decide to keep the file present on a node host or move it to a safe location. `kubadm certs renew` will renew the certificate in `super-admin.conf` to one year if the file exists; if it does not exist a \"MISSING\" note will be printed. `kubeadm upgrade apply` for this release will migrate this particular node to the two file setup. Subsequent kubeadm releases will continue to optionally renew the certificate in `super-admin.conf` if the file exists on disk and if renew on upgrade is not disabled. `kubeadm join --control-plane` will now generate only an `admin.conf` file that has the less privileged User.", - "markdown": "`kubeadm`: a separate `super-admin.conf` file is now deployed. The User in `admin.conf` is now bound to a new RBAC Group `kubeadm:cluster-admins` that has `cluster-admin` `ClusterRole` access. The User in `super-admin.conf` is now bound to the `system:masters` built-in super-powers / break-glass Group that can bypass RBAC. Before this change, the default `admin.conf` was bound to `system:masters` Group, which was undesired. Executing `kubeadm init phase kubeconfig all` or just `kubeadm init` will now generate the new `super-admin.conf` file. The cluster admin can then decide to keep the file present on a node host or move it to a safe location. `kubadm certs renew` will renew the certificate in `super-admin.conf` to one year if the file exists; if it does not exist a \"MISSING\" note will be printed. `kubeadm upgrade apply` for this release will migrate this particular node to the two file setup. Subsequent kubeadm releases will continue to optionally renew the certificate in `super-admin.conf` if the file exists on disk and if renew on upgrade is not disabled. `kubeadm join --control-plane` will now generate only an `admin.conf` file that has the less privileged User. ([#121305](https://github.com/kubernetes/kubernetes/pull/121305), [@neolit123](https://github.com/neolit123))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/4214-separate-super-user-kubeconfig", - "type": "external" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121305", - "pr_number": 121305, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "action_required": true - }, - "121325": { - "commit": "2014ce2313591b3bbf217587cbaf62e4c44e1217", - "text": "Updated the generic apiserver library to produce an error if a new API server is configured with support for a data format other than JSON, YAML, or Protobuf.", - "markdown": "Updated the generic apiserver library to produce an error if a new API server is configured with support for a data format other than JSON, YAML, or Protobuf. ([#121325](https://github.com/kubernetes/kubernetes/pull/121325), [@benluddy](https://github.com/benluddy)) [SIG API Machinery]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/61a31ed7c7be459ab14dc5fe3132d3b4cd3aa00c/keps/sig-api-machinery/4222-cbor-serializer/README.md#phased-implementation", - "type": "KEP" - } - ], - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121325", - "pr_number": 121325, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "121327": { - "commit": "015297a5776aa036c334c89740f89f74cb83190c", - "text": "Fixed the calculation of the requeue time in the cronjob controller, resulting in proper handling of failed/stuck jobs.", - "markdown": "Fixed the calculation of the requeue time in the cronjob controller, resulting in proper handling of failed/stuck jobs. ([#121327](https://github.com/kubernetes/kubernetes/pull/121327), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121327", - "pr_number": 121327, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true - }, - "121337": { - "commit": "883d91bfa199339e43a6be9287f9e2bdea22e570", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#121337](https://github.com/kubernetes/kubernetes/pull/121337), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery]", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121337", - "pr_number": 121337, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "121338": { - "commit": "d0084356b3cabdafcfc140d19ad8d544b2fc9b5d", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#121338](https://github.com/kubernetes/kubernetes/pull/121338), [@dims](https://github.com/dims)) [SIG Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node and Storage]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121338", - "pr_number": 121338, - "areas": [ - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "storage", - "node", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true - }, - "121342": { - "commit": "f8a4e343a106a73145464e8de8a919d13b59d25a", - "text": "Fixed tracking of terminating Pods in the Job status. The field was not updated unless there were other changes to apply.", - "markdown": "Fixed tracking of terminating Pods in the Job status. The field was not updated unless there were other changes to apply. ([#121342](https://github.com/kubernetes/kubernetes/pull/121342), [@dejanzele](https://github.com/dejanzele))", - "author": "dejanzele", - "author_url": "https://github.com/dejanzele", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121342", - "pr_number": 121342, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "121356": { - "commit": "8149ab3f3ffa10c3cda3d40a4bee9f56ed535970", - "text": "Graduated `Job BackoffLimitPerIndex` feature to `beta`.", - "markdown": "Graduated `Job BackoffLimitPerIndex` feature to `beta`. ([#121356](https://github.com/kubernetes/kubernetes/pull/121356), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3850-backoff-limits-per-index-for-indexed-jobs", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121356", - "pr_number": 121356, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "duplicate_kind": true - }, - "121373": { - "commit": "08070433cce0afbf3f12dafe42e15581a5e37349", - "text": "The CRD validation rule with feature gate `CustomResourceValidationExpressions` was promoted to `GA`.", - "markdown": "The CRD validation rule with feature gate `CustomResourceValidationExpressions` was promoted to `GA`. ([#121373](https://github.com/kubernetes/kubernetes/pull/121373), [@cici37](https://github.com/cici37))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2876", - "type": "KEP" - } - ], - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121373", - "pr_number": 121373, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "121389": { - "commit": "05765a851cf4b5066749dc1a771799cf651ca597", - "text": "Fixed an issue where a `StatefulSet` might not restart a pod after eviction or node failure.", - "markdown": "Fixed an issue where a `StatefulSet` might not restart a pod after eviction or node failure. ([#121389](https://github.com/kubernetes/kubernetes/pull/121389), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", - "author": "aleksandra-malinowska", - "author_url": "https://github.com/aleksandra-malinowska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121389", - "pr_number": 121389, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "121391": { - "commit": "9ae55e98868d78a7103358e1feb7d15b8403d0fa", - "text": "E2E storage tests: setting test tags like `[Slow]` via the `DriverInfo.FeatureTag` field is no longer supported.", - "markdown": "E2E storage tests: setting test tags like `[Slow]` via the `DriverInfo.FeatureTag` field is no longer supported. ([#121391](https://github.com/kubernetes/kubernetes/pull/121391), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121391", - "pr_number": 121391, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true - }, - "121441": { - "commit": "4b48ab1fdbdeee3568790e44bea55ea719205025", - "text": "Lower and upper case feature flag values are now allowed, but the name still has to match.", - "markdown": "Lower and upper case feature flag values are now allowed, but the name still has to match. ([#121441](https://github.com/kubernetes/kubernetes/pull/121441), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121441", - "pr_number": 121441, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "121456": { - "commit": "a8b7e1953f010cf95c6c6cddabfdb8e5ef46f61e", - "text": "Added new feature gate called `RuntimeClassInImageCriApi` to address `kubelet` changes needed for KEP 4216.\nNoteable changes:\n1. Populate new `RuntimeHandler` field in CRI's `ImageSpec` struct during image pulls from container runtimes.\n2. Pass `runtimeHandler` field in `RemoveImage()` call to container runtime in `kubelet`'s image garbage collection.", - "markdown": "Added new feature gate called `RuntimeClassInImageCriApi` to address `kubelet` changes needed for KEP 4216.\n Noteable changes:\n 1. Populate new `RuntimeHandler` field in CRI's `ImageSpec` struct during image pulls from container runtimes.\n 2. Pass `runtimeHandler` field in `RemoveImage()` call to container runtime in `kubelet`'s image garbage collection. ([#121456](https://github.com/kubernetes/kubernetes/pull/121456), [@kiashok](https://github.com/kiashok))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/commit/5d2744011e205f6d759bac6ab316a085bec2a605", - "type": "KEP" - } - ], - "author": "kiashok", - "author_url": "https://github.com/kiashok", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121456", - "pr_number": 121456, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "windows" - ], - "feature": true, - "duplicate": true - }, - "121457": { - "commit": "d2383ce467f911d2247db764bf7c3f5db7ea75e7", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\nSimply log the endpoint when there aren't any Zone Hints in the resource\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n Simply log the endpoint when there aren't any Zone Hints in the resource\n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#121457](https://github.com/kubernetes/kubernetes/pull/121457), [@SteveProXNA](https://github.com/SteveProXNA)) [SIG Network]", - "author": "SteveProXNA", - "author_url": "https://github.com/SteveProXNA", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121457", - "pr_number": 121457, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "121459": { - "commit": "ab096ef3dee7171d055c457600707ee56c5fcb34", - "text": "CEL can now correctly handle a CRD `openAPIV3Schema` that has neither `Properties` nor `AdditionalProperties`.", - "markdown": "CEL can now correctly handle a CRD `openAPIV3Schema` that has neither `Properties` nor `AdditionalProperties`. ([#121459](https://github.com/kubernetes/kubernetes/pull/121459), [@jiahuif](https://github.com/jiahuif))", - "documentation": [ - { - "description": "[1]", - "url": "https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#validation", - "type": "official" - } - ], - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121459", - "pr_number": 121459, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "121460": { - "commit": "4e45e1d6255bc0f836e6188b77cf7e7a64f85e63", - "text": "When updating a CRD, per-expression cost limit check are now skipped for `x-kubernetes-validations` rules of versions that are not mutated.", - "markdown": "When updating a CRD, per-expression cost limit check are now skipped for `x-kubernetes-validations` rules of versions that are not mutated. ([#121460](https://github.com/kubernetes/kubernetes/pull/121460), [@jiahuif](https://github.com/jiahuif))", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121460", - "pr_number": 121460, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "121462": { - "commit": "1aef58b72a7d9a37cc7590c881b63808d02695f1", - "text": "Added `apiextensions_apiserver_update_ratcheting_time` metric for tracking time taken during requests by feature `CRDValidationRatcheting`.", - "markdown": "Added `apiextensions_apiserver_update_ratcheting_time` metric for tracking time taken during requests by feature `CRDValidationRatcheting`. ([#121462](https://github.com/kubernetes/kubernetes/pull/121462), [@alexzielenski](https://github.com/alexzielenski))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4008", - "type": "external" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121462", - "pr_number": 121462, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "121477": { - "commit": "9b10019b919d47133e757574e18dfd7fd4af9401", - "text": "Promoted `PodHostIPs` condition to `beta`.", - "markdown": "Promoted `PodHostIPs` condition to `beta`. ([#121477](https://github.com/kubernetes/kubernetes/pull/121477), [@wzshiming](https://github.com/wzshiming))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2681", - "type": "KEP" - } - ], - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121477", - "pr_number": 121477, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "testing" - ], - "feature": true, - "duplicate": true - }, - "121481": { - "commit": "8cdab8a5db46eb3212e7cdf146e0d6952d0d3b27", - "text": "Added `job_pods_creation_total` metrics for tracking Pods created by the Job controller labeled by events which triggered the Pod creation.", - "markdown": "Added `job_pods_creation_total` metrics for tracking Pods created by the Job controller labeled by events which triggered the Pod creation. ([#121481](https://github.com/kubernetes/kubernetes/pull/121481), [@dejanzele](https://github.com/dejanzele))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3939", - "type": "KEP" - } - ], - "author": "dejanzele", - "author_url": "https://github.com/dejanzele", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121481", - "pr_number": 121481, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "121485": { - "commit": "ebf46ce1b45b8617d280b0aa12ebf6c18f25dea6", - "text": "The KMSv2 features with feature gates `KMSv2` and `KMSv2KDF` are promoted to `GA`. The `KMSv1` feature gate is now disabled by default.", - "markdown": "The KMSv2 features with feature gates `KMSv2` and `KMSv2KDF` are promoted to `GA`. The `KMSv1` feature gate is now disabled by default. ([#121485](https://github.com/kubernetes/kubernetes/pull/121485), [@ritazh](https://github.com/ritazh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", - "type": "KEP" - } - ], - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121485", - "pr_number": 121485, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "121491": { - "commit": "6f4ad7a413f7dfe34218834714e7dad396cb973b", - "text": "Promoted `PodReplacementPolicy` to `beta`.", - "markdown": "Promoted `PodReplacementPolicy` to `beta`. ([#121491](https://github.com/kubernetes/kubernetes/pull/121491), [@dejanzele](https://github.com/dejanzele))", - "author": "dejanzele", - "author_url": "https://github.com/dejanzele", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121491", - "pr_number": 121491, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true - }, - "121566": { - "commit": "73ef6301388eee622f175b32d28385220da2b128", - "text": "`etcd`: updated to `v3.5.10`.", - "markdown": "`etcd`: updated to `v3.5.10`. ([#121566](https://github.com/kubernetes/kubernetes/pull/121566), [@mzaian](https://github.com/mzaian))", - "author": "mzaian", - "author_url": "https://github.com/mzaian", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121566", - "pr_number": 121566, - "areas": [ - "test", - "provider/gcp", - "release-eng", - "kubeadm", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "testing", - "cloud-provider", - "etcd" - ], - "duplicate": true - }, - "121567": { - "commit": "956b5adc645f4fbc39732a9d9727ff710c26fe94", - "text": "`etcd`: image is now based on `v3.5.9`.", - "markdown": "`etcd`: image is now based on `v3.5.9`. ([#121567](https://github.com/kubernetes/kubernetes/pull/121567), [@mzaian](https://github.com/mzaian))", - "author": "mzaian", - "author_url": "https://github.com/mzaian", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121567", - "pr_number": 121567, - "areas": [ - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "121571": { - "commit": "095786913d588a398ef750abea6aba29014cbcab", - "text": "`EnqueueExtensions` from plugins other than `PreEnqueue`, `PreFilter`, `Filter`, `Reserve` and `Permit` are now ignored.\nIt reduces the number of kinds of cluster events the scheduler needs to subscribe/handle.", - "markdown": "`EnqueueExtensions` from plugins other than `PreEnqueue`, `PreFilter`, `Filter`, `Reserve` and `Permit` are now ignored.\n It reduces the number of kinds of cluster events the scheduler needs to subscribe/handle. ([#121571](https://github.com/kubernetes/kubernetes/pull/121571), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121571", - "pr_number": 121571, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "121575": { - "commit": "593a17d3b6381bfdbf3bc3b36f56cad30d1531df", - "text": "Fixed bugs in handling of server-side apply, create, and update API requests for objects containing duplicate items in keyed lists.\n- A `create` or `update` API request with duplicate items in a keyed list no longer wipes out managedFields. Examples include env var entries with the same name, or port entries with the same containerPort in a pod spec.\n- A server-side apply request that makes unrelated changes to an object which has duplicate items in a keyed list no longer fails, and leaves the existing duplicate items as-is.\n- A server-side apply request that changes an object which has duplicate items in a keyed list, and modifies the duplicated item removes the duplicates and replaces them with the single item contained in the server-side apply request.", - "markdown": "Fixed bugs in handling of server-side apply, create, and update API requests for objects containing duplicate items in keyed lists.\n - A `create` or `update` API request with duplicate items in a keyed list no longer wipes out managedFields. Examples include env var entries with the same name, or port entries with the same containerPort in a pod spec.\n - A server-side apply request that makes unrelated changes to an object which has duplicate items in a keyed list no longer fails, and leaves the existing duplicate items as-is.\n - A server-side apply request that changes an object which has duplicate items in a keyed list, and modifies the duplicated item removes the duplicates and replaces them with the single item contained in the server-side apply request. ([#121575](https://github.com/kubernetes/kubernetes/pull/121575), [@apelisse](https://github.com/apelisse))", - "author": "apelisse", - "author_url": "https://github.com/apelisse", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121575", - "pr_number": 121575, - "areas": [ - "test", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "121577": { - "commit": "d1113c9a00b3cd1c791f43b15280d4ebba2a7663", - "text": "Bumped `cel-go` to `v0.17.7` and introduced set `ext` library with new options.", - "markdown": "Bumped `cel-go` to `v0.17.7` and introduced set `ext` library with new options. ([#121577](https://github.com/kubernetes/kubernetes/pull/121577), [@cici37](https://github.com/cici37))", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121577", - "pr_number": 121577, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "121579": { - "commit": "84aca4ac74313ddcd8d1f8b3ae223534e0cd3254", - "text": "The `SidecarContainers` feature has graduated to `beta` and is enabled by default.", - "markdown": "The `SidecarContainers` feature has graduated to `beta` and is enabled by default. ([#121579](https://github.com/kubernetes/kubernetes/pull/121579), [@gjkim42](https://github.com/gjkim42))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", - "type": "KEP" - } - ], - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121579", - "pr_number": 121579, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "121614": { - "commit": "2a1140305cf602190012748a163534dfe4364be2", - "text": "Decoding etcd's response now respects the timeout context.", - "markdown": "Decoding etcd's response now respects the timeout context. ([#121614](https://github.com/kubernetes/kubernetes/pull/121614), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121614", - "pr_number": 121614, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "121628": { - "commit": "3eba6fc9ad62c59aa1590e4e6272a846cff46c2a", - "text": "`cluster/gce`: added webhook to replace `PersistentVolumeLabel` admission controller.", - "markdown": "`cluster/gce`: added webhook to replace `PersistentVolumeLabel` admission controller. ([#121628](https://github.com/kubernetes/kubernetes/pull/121628), [@andrewsykim](https://github.com/andrewsykim))", - "author": "andrewsykim", - "author_url": "https://github.com/andrewsykim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121628", - "pr_number": 121628, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true - }, - "121632": { - "commit": "d84ee0ba6912a842ed05252cc28d032c09304e08", - "text": "Fixed a regression since `v1.27.0` in the scheduler framework when running score plugins. \nThe `skippedScorePlugins` number might be greater than `enabledScorePlugins`, \nso when initializing a slice the `cap(len(skippedScorePlugins) - len(enabledScorePlugins))` is negative, \nwhich is not allowed.", - "markdown": "Fixed a regression since `v1.27.0` in the scheduler framework when running score plugins. \n The `skippedScorePlugins` number might be greater than `enabledScorePlugins`, \n so when initializing a slice the `cap(len(skippedScorePlugins) - len(enabledScorePlugins))` is negative, \n which is not allowed. ([#121632](https://github.com/kubernetes/kubernetes/pull/121632), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121632", - "pr_number": 121632, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true - }, - "121638": { - "commit": "74fefd877f0ee9445735a756270f8eac44a96d0b", - "text": "Priority and Fairness feature is now `stable`, the feature gate will be removed in `v1.31`.", - "markdown": "Priority and Fairness feature is now `stable`, the feature gate will be removed in `v1.31`. ([#121638](https://github.com/kubernetes/kubernetes/pull/121638), [@tkashem](https://github.com/tkashem))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1040-priority-and-fairness", - "type": "KEP" - } - ], - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121638", - "pr_number": 121638, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "121715": { - "commit": "263ab254ef6a847fdd3dc69250a2ac0b12c42eb3", - "text": "scheduler: in 1.29 pre-releases, enabling contextual logging slowed down pod scheduling.", - "markdown": "Scheduler: in 1.29 pre-releases, enabling contextual logging slowed down pod scheduling. ([#121715](https://github.com/kubernetes/kubernetes/pull/121715), [@pohly](https://github.com/pohly)) [SIG Instrumentation and Scheduling]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121715", - "pr_number": 121715, - "areas": [ - "logging" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true - }, - "121739": { - "commit": "56d7898510f2a973f92fda13c2ba3a5e756d9621", - "text": "Updated runc to `1.1.10`.", - "markdown": "Updated runc to `1.1.10`. ([#121739](https://github.com/kubernetes/kubernetes/pull/121739), [@ty-dc](https://github.com/ty-dc))", - "author": "ty-dc", - "author_url": "https://github.com/ty-dc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121739", - "pr_number": 121739, - "areas": [ - "dependency", - "code-organization" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "architecture" - ], - "duplicate": true - }, - "121764": { - "commit": "0193fae084e16031b37a14a979f02817d7fa79d0", - "text": "Fixed the API comments for the `FailIndex` Job pod failure policy action.", - "markdown": "Fixed the API comments for the `FailIndex` Job pod failure policy action. ([#121764](https://github.com/kubernetes/kubernetes/pull/121764), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3850-backoff-limits-per-index-for-indexed-jobs", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121764", - "pr_number": 121764, - "areas": [ - "code-generation" - ], - "kinds": [ - "documentation", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "121765": { - "commit": "e4b74dd12fa8cb63c174091d5536a10b8ec19d34", - "text": "Fixed the API comments for the Job `Ready` field in status.", - "markdown": "Fixed the API comments for the Job `Ready` field in status. ([#121765](https://github.com/kubernetes/kubernetes/pull/121765), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2879-ready-pods-job-status", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121765", - "pr_number": 121765, - "areas": [ - "code-generation" - ], - "kinds": [ - "documentation", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true - }, - "121808": { - "commit": "6ba7258a0f3f73629560fc30016b2e35c8e7ae9c", - "text": "Kubernetes is now built with Go `1.21.4`.", - "markdown": "Kubernetes is now built with Go `1.21.4`. ([#121808](https://github.com/kubernetes/kubernetes/pull/121808), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121808", - "pr_number": 121808, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "release-eng", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "121837": { - "commit": "1f3256bbac668f120433990028ca1fe206e4117b", - "text": "kubeadm: changed the \"system:masters\" Group in the apiserver-kubelet-client.crt certificate Subject to be \"kubeadm:cluster-admins\" which is a less privileged Group.", - "markdown": "Kubeadm: changed the \"system:masters\" Group in the apiserver-kubelet-client.crt certificate Subject to be \"kubeadm:cluster-admins\" which is a less privileged Group. ([#121837](https://github.com/kubernetes/kubernetes/pull/121837), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121837", - "pr_number": 121837, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "121841": { - "commit": "930022cf267c2e0269fbd9be4be3fd83448e6419", - "text": "kubeadm: supported updating certificate organization during `kubeadm certs renew` operation.", - "markdown": "Kubeadm: supported updating certificate organization during `kubeadm certs renew` operation. ([#121841](https://github.com/kubernetes/kubernetes/pull/121841), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121841", - "pr_number": 121841, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "121851": { - "commit": "8509ab82b96caa2365552efa08c8ba8baf11c5ec", - "text": "Fixed stale SMB mount issue when SMB file share is deleted and then unmounted.", - "markdown": "Fixed stale SMB mount issue when SMB file share is deleted and then unmounted. ([#121851](https://github.com/kubernetes/kubernetes/pull/121851), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121851", - "pr_number": 121851, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "121867": { - "commit": "94fe1b3b0c12e93691dccac21efbda9391679510", - "text": "A customizable `OrderedScoreFuncs()` function was introduced. Out-of-tree plugins \nthat used the scheduler's preemption interface could implement this function\nfor custom preemption preferences or return nil to keep the current behavior.", - "markdown": "A customizable `OrderedScoreFuncs()` function was introduced. Out-of-tree plugins \n that used the scheduler's preemption interface could implement this function\n for custom preemption preferences or return nil to keep the current behavior. ([#121867](https://github.com/kubernetes/kubernetes/pull/121867), [@lianghao208](https://github.com/lianghao208))", - "author": "lianghao208", - "author_url": "https://github.com/lianghao208", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121867", - "pr_number": 121867, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "121871": { - "commit": "9c56c5f350f5902309fa6a554da306ea4d38186e", - "text": "Bumped distroless-iptables to 0.4.1 based on Go `1.21.3`.", - "markdown": "Bumped distroless-iptables to 0.4.1 based on Go `1.21.3`. ([#121871](https://github.com/kubernetes/kubernetes/pull/121871), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121871", - "pr_number": 121871, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true - } -} +{ + "100448": { + "commit": "95bd8b95a76fa1e29eec703f4cd92d5a9daaf39a", + "text": "Changed kubelet logs from `error` to `info` for uncached partitions when using CRI stats provider.", + "markdown": "Changed kubelet logs from `error` to `info` for uncached partitions when using CRI stats provider. ([#100448](https://github.com/kubernetes/kubernetes/pull/100448), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/100448", + "pr_number": 100448, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "112599": { + "commit": "dea3f1a119e997aeae0f503af35dc0804b0fdcd6", + "text": "Added Windows support for InPlace Pod Vertical Scaling feature.", + "markdown": "Added Windows support for InPlace Pod Vertical Scaling feature. ([#112599](https://github.com/kubernetes/kubernetes/pull/112599), [@fabi200123](https://github.com/fabi200123)) [SIG Autoscaling, Node, Scalability, Scheduling and Windows]", + "author": "fabi200123", + "author_url": "https://github.com/fabi200123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112599", + "pr_number": 112599, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scalability", + "scheduling", + "node", + "autoscaling", + "windows" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "113374": { + "commit": "9f319c32064f8b72d368df65fde4e37e250f8230", + "text": "Added support for projecting `certificates.k8s.io/v1alpha1` ClusterTrustBundle objects into pods.", + "markdown": "Added support for projecting `certificates.k8s.io/v1alpha1` ClusterTrustBundle objects into pods. ([#113374](https://github.com/kubernetes/kubernetes/pull/113374), [@ahmedtd](https://github.com/ahmedtd))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/bddca24910fb349e2eb0ac1c822c77f0f32fe9c6/keps/sig-auth/3257-trust-anchor-sets", + "type": "KEP" + } + ], + "author": "ahmedtd", + "author_url": "https://github.com/ahmedtd", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113374", + "pr_number": 113374, + "areas": [ + "test", + "kubelet", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "114095": { + "commit": "6cbc5dfac6581b1a067dd4caf005dba5ad495d9d", + "text": "`scheduler`: Fixed missing field `apiVersion` from events reported by the taint\nmanager.", + "markdown": "`scheduler`: Fixed missing field `apiVersion` from events reported by the taint\n manager. ([#114095](https://github.com/kubernetes/kubernetes/pull/114095), [@aimuz](https://github.com/aimuz))", + "author": "aimuz", + "author_url": "https://github.com/aimuz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114095", + "pr_number": 114095, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "node", + "apps" + ], + "duplicate": true + }, + "115702": { + "commit": "4911aad4636ab177333db63297fb4a9a562a8f20", + "text": "Fixed the bug where kubelet couldn't output logs after log file rotated when `kubectl logs POD_NAME -f` is running.", + "markdown": "Fixed the bug where kubelet couldn't output logs after log file rotated when `kubectl logs POD_NAME -f` is running. ([#115702](https://github.com/kubernetes/kubernetes/pull/115702), [@xyz-li](https://github.com/xyz-li))", + "author": "xyz-li", + "author_url": "https://github.com/xyz-li", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115702", + "pr_number": 115702, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "116065": { + "commit": "581552eaf0b4a6689f2a02012804f2780ff7efdf", + "text": "The `matchLabelKeys/mismatchLabelKeys` feature is introduced to the hard/soft `PodAffinity/PodAntiAffinity`.", + "markdown": "The `matchLabelKeys/mismatchLabelKeys` feature is introduced to the hard/soft `PodAffinity/PodAntiAffinity`. ([#116065](https://github.com/kubernetes/kubernetes/pull/116065), [@sanposhiho](https://github.com/sanposhiho))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3633-matchlabelkeys-to-podaffinity", + "type": "KEP" + } + ], + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116065", + "pr_number": 116065, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery", + "apps", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116252": { + "commit": "f5d7c34b67c4fcdbc004bed5d211ef00b27c9ace", + "text": "Creation of new `CronJob` objects containing `TZ` or `CRON_TZ` in `.spec.schedule`, accidentally enabled in `v1.22`, is now disallowed. Use the `.spec.timeZone` field instead, supported in `v1.25+` clusters in default configurations. See https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#unsupported-timezone-specification for more information.", + "markdown": "Creation of new `CronJob` objects containing `TZ` or `CRON_TZ` in `.spec.schedule`, accidentally enabled in `v1.22`, is now disallowed. Use the `.spec.timeZone` field instead, supported in `v1.25+` clusters in default configurations. See https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#unsupported-timezone-specification for more information. ([#116252](https://github.com/kubernetes/kubernetes/pull/116252), [@soltysh](https://github.com/soltysh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3140", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116252", + "pr_number": 116252, + "kinds": [ + "cleanup", + "api-change", + "deprecation" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "116516": { + "commit": "6abff7457e3a722fd217a0a58d1992b4002d496d", + "text": "Added a new `ServiceCIDR` type that allows to dynamically configure the cluster range used to allocate `Service ClusterIPs` addresses.", + "markdown": "Added a new `ServiceCIDR` type that allows to dynamically configure the cluster range used to allocate `Service ClusterIPs` addresses. ([#116516](https://github.com/kubernetes/kubernetes/pull/116516), [@aojea](https://github.com/aojea))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/1880-multiple-service-cidrs", + "type": "KEP" + }, + { + "description": "Demo", + "url": "https://gist.github.com/aojea/c20eb117bf1c1214f8bba26c495be9c7", + "type": "external" + }, + { + "description": "kubectl apply -f", + "url": "https://gist.githubusercontent.com/aojea/90768935ab71cb31950b6a13078a7e92/raw/99ceac308f2b2658c7313198a39fbe24b155ae68/dual-stack.yaml", + "type": "external" + }, + { + "description": "deployment.apps/", + "url": "httpd-deployment created", + "type": "external" + }, + { + "description": "Error from server (Invalid): error when creating \"", + "url": "https://gist.githubusercontent.com/aojea/90768935ab71cb31950b6a13078a7e92/raw/99ceac308f2b2658c7313198a39fbe24b155ae68/dual-stack.yaml\": Service \"my-service-v6\" is invalid: spec.ipFamilies[0]: Invalid value: \"IPv6\": not configured on this cluster", + "type": "external" + }, + { + "description": "Error from server (Invalid): error when creating \"", + "url": "https://gist.githubusercontent.com/aojea/90768935ab71cb31950b6a13078a7e92/raw/99ceac308f2b2658c7313198a39fbe24b155ae68/dual-stack.yaml\": Service \"my-service-require-dual\" is invalid: spec.ipFamilyPolicy: Invalid value: \"RequireDualStack\": this cluster is not configured for dual-stack services", + "type": "external" + } + ], + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116516", + "pr_number": 116516, + "areas": [ + "test", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "auth", + "apps", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "116752": { + "commit": "d7b7a85fbc0b3831cbc6a750a47dfdcdf777d519", + "text": "Changed `kubectl help` to display basic details for subcommands from plugins.", + "markdown": "Changed `kubectl help` to display basic details for subcommands from plugins. ([#116752](https://github.com/kubernetes/kubernetes/pull/116752), [@xvzf](https://github.com/xvzf))", + "author": "xvzf", + "author_url": "https://github.com/xvzf", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116752", + "pr_number": 116752, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "116803": { + "commit": "9c5698f5146bb335d312a802ec5a7baf2bfa6bf0", + "text": "Migrated the `volumebinding scheduler plugins` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the `volumebinding scheduler plugins` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116803](https://github.com/kubernetes/kubernetes/pull/116803), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116803", + "pr_number": 116803, + "areas": [ + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "116884": { + "commit": "89b4153d4d697e02e3be954cc0df1011eb7f166a", + "text": "Migrated the `nodevolumelimits` scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the `nodevolumelimits` scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116884](https://github.com/kubernetes/kubernetes/pull/116884), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116884", + "pr_number": 116884, + "areas": [ + "test", + "logging" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "116897": { + "commit": "addc0391e779bbcceebc56043c8093206cfda38c", + "text": "Graduated the following kubelet resource metrics to **general availability**:\n- `container_cpu_usage_seconds_total`\n- `container_memory_working_set_bytes`\n- `container_start_time_seconds`\n- `node_cpu_usage_seconds_total`\n- `node_memory_working_set_bytes`\n- `pod_cpu_usage_seconds_total`\n- `pod_memory_working_set_bytes`\n- `resource_scrape_error`\n\nDeprecated (renamed) `scrape_error` in favor of `resource_scrape_error`", + "markdown": "Graduated the following kubelet resource metrics to **general availability**:\n - `container_cpu_usage_seconds_total`\n - `container_memory_working_set_bytes`\n - `container_start_time_seconds`\n - `node_cpu_usage_seconds_total`\n - `node_memory_working_set_bytes`\n - `pod_cpu_usage_seconds_total`\n - `pod_memory_working_set_bytes`\n - `resource_scrape_error`\n \n Deprecated (renamed) `scrape_error` in favor of `resource_scrape_error` ([#116897](https://github.com/kubernetes/kubernetes/pull/116897), [@Richabanker](https://github.com/Richabanker)) [SIG Architecture, Instrumentation, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/727", + "type": "external" + } + ], + "author": "Richabanker", + "author_url": "https://github.com/Richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116897", + "pr_number": 116897, + "areas": [ + "test", + "kubelet", + "conformance", + "e2e-test-framework", + "stable-metrics" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "instrumentation", + "testing", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "116938": { + "commit": "78b34aa8fc2cef93ad74d592e256cf424430b439", + "text": "Fixed inconsistency in the calculation of number of nodes that have an image, which affect the scoring in the `ImageLocality` plugin.", + "markdown": "Fixed inconsistency in the calculation of number of nodes that have an image, which affect the scoring in the `ImageLocality` plugin. ([#116938](https://github.com/kubernetes/kubernetes/pull/116938), [@olderTaoist](https://github.com/olderTaoist))", + "author": "olderTaoist", + "author_url": "https://github.com/olderTaoist", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116938", + "pr_number": 116938, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "117326": { + "commit": "4f303d123659fb3aac2108f8439c7f43dde438b5", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#117326](https://github.com/kubernetes/kubernetes/pull/117326), [@akhilerm](https://github.com/akhilerm)) [SIG Node]", + "author": "akhilerm", + "author_url": "https://github.com/akhilerm", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117326", + "pr_number": 117326, + "areas": [ + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "117411": { + "commit": "52cba2d8d8be6a6ceec840a31d4a762a44967ce4", + "text": "Added multiplication functionality to `Quantity`.", + "markdown": "Added multiplication functionality to `Quantity`. ([#117411](https://github.com/kubernetes/kubernetes/pull/117411), [@tenzen-y](https://github.com/tenzen-y))", + "author": "tenzen-y", + "author_url": "https://github.com/tenzen-y", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117411", + "pr_number": 117411, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "117502": { + "commit": "61d87fdb2e6c656f3d7123570c78ada5dca59079", + "text": "Added `kubectl node drain` helper callbacks `OnPodDeletionOrEvictionStarted`\nand `OnPodDeletionOrEvictionFailed`; people extending `kubectl` can use these\nnew callbacks for more granularity. Deprecated the `OnPodDeletedOrEvicted`\nnode drain helper callback.", + "markdown": "Added `kubectl node drain` helper callbacks `OnPodDeletionOrEvictionStarted`\n and `OnPodDeletionOrEvictionFailed`; people extending `kubectl` can use these\n new callbacks for more granularity. Deprecated the `OnPodDeletedOrEvicted`\n node drain helper callback. ([#117502](https://github.com/kubernetes/kubernetes/pull/117502), [@adilGhaffarDev](https://github.com/adilGhaffarDev))", + "author": "adilGhaffarDev", + "author_url": "https://github.com/adilGhaffarDev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117502", + "pr_number": 117502, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "117503": { + "commit": "a607dfb3ff3c70c8df77a90486fb9930cfb2a94d", + "text": "In-tree cloud providers are now switched off by default. Please use `DisableCloudProviders` and `DisableKubeletCloudCredentialProvider` feature flags if you still need this functionality.", + "markdown": "In-tree cloud providers are now switched off by default. Please use `DisableCloudProviders` and `DisableKubeletCloudCredentialProvider` feature flags if you still need this functionality. ([#117503](https://github.com/kubernetes/kubernetes/pull/117503), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117503", + "pr_number": 117503, + "areas": [ + "test", + "apiserver", + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "117615": { + "commit": "e1824b6a4777bb9f9b936d11e066190841011ac7", + "text": "Empty values are no longer assigned to undefined resources (CPU or memory) when storing the resources allocated to the pod in checkpoint.", + "markdown": "Empty values are no longer assigned to undefined resources (CPU or memory) when storing the resources allocated to the pod in checkpoint. ([#117615](https://github.com/kubernetes/kubernetes/pull/117615), [@aheng-ch](https://github.com/aheng-ch))", + "author": "aheng-ch", + "author_url": "https://github.com/aheng-ch", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117615", + "pr_number": 117615, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "117720": { + "commit": "cd91351dff037d9b50a09ddb4ee426bdfff1d877", + "text": "The `kube-scheduler` `selectorSpread` plugin has been removed, please use the `podTopologySpread` plugin instead.", + "markdown": "The `kube-scheduler` `selectorSpread` plugin has been removed, please use the `podTopologySpread` plugin instead. ([#117720](https://github.com/kubernetes/kubernetes/pull/117720), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117720", + "pr_number": 117720, + "kinds": [ + "cleanup", + "api-change", + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "duplicate_kind": true, + "action_required": true + }, + "117977": { + "commit": "322acc0f8850e6c27995be937f297c29b1888e68", + "text": "The `horizontalpodautoscaling` and `clusterrole-aggregation` controllers now assume the `autoscaling/v1` and `rbac.authorization.k8s.io/v1` APIs are available. If you disable those APIs and do not want to run those controllers, exclude them by passing `--controllers=-horizontalpodautoscaling` or `--controllers=-clusterrole-aggregation` to `kube-controller-manager`.", + "markdown": "The `horizontalpodautoscaling` and `clusterrole-aggregation` controllers now assume the `autoscaling/v1` and `rbac.authorization.k8s.io/v1` APIs are available. If you disable those APIs and do not want to run those controllers, exclude them by passing `--controllers=-horizontalpodautoscaling` or `--controllers=-clusterrole-aggregation` to `kube-controller-manager`. ([#117977](https://github.com/kubernetes/kubernetes/pull/117977), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Cloud Provider]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117977", + "pr_number": 117977, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "duplicate": true + }, + "117992": { + "commit": "7407f36b4b8937f982def35dd99b5647fc5245c5", + "text": "Fixed an issue with the `garbagecollection` controller registering duplicate event handlers if discovery requests failed.", + "markdown": "Fixed an issue with the `garbagecollection` controller registering duplicate event handlers if discovery requests failed. ([#117992](https://github.com/kubernetes/kubernetes/pull/117992), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117992", + "pr_number": 117992, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true + }, + "118146": { + "commit": "b5ba899dfa365cc5262f45bf6227a88c97bdb143", + "text": "`kube-proxy` now reports its health more accurately in dual-stack clusters when there are problems with only one IP family.", + "markdown": "`kube-proxy` now reports its health more accurately in dual-stack clusters when there are problems with only one IP family. ([#118146](https://github.com/kubernetes/kubernetes/pull/118146), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118146", + "pr_number": 118146, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true + }, + "118189": { + "commit": "10a252aa543e0e15e1d4b1ba640d82055a44f082", + "text": "Fixed a concurrent map access in `TopologyCache`'s `HasPopulatedHints` method.", + "markdown": "Fixed a concurrent map access in `TopologyCache`'s `HasPopulatedHints` method. ([#118189](https://github.com/kubernetes/kubernetes/pull/118189), [@Miciah](https://github.com/Miciah))", + "author": "Miciah", + "author_url": "https://github.com/Miciah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118189", + "pr_number": 118189, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "apps" + ], + "duplicate": true + }, + "118299": { + "commit": "3c94af73e1b08eb2a12208c94fe01ad22b08000e", + "text": "List of metric labels can now be configured by supplying a manifest using the `--allow-metric-labels-manifest` flag.", + "markdown": "List of metric labels can now be configured by supplying a manifest using the `--allow-metric-labels-manifest` flag. ([#118299](https://github.com/kubernetes/kubernetes/pull/118299), [@rexagod](https://github.com/rexagod))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/2305-metrics-cardinality-enforcement", + "type": "KEP" + } + ], + "author": "rexagod", + "author_url": "https://github.com/rexagod", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118299", + "pr_number": 118299, + "areas": [ + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "118455": { + "commit": "1acd489dca47a4be0301330cbfcf4e8f9d98f7c0", + "text": "Improved memory usage of `kube-controller-manager` by dropping the `.metadata.managedFields` field that `kube-controller-manager` doesn't require.", + "markdown": "Improved memory usage of `kube-controller-manager` by dropping the `.metadata.managedFields` field that `kube-controller-manager` doesn't require. ([#118455](https://github.com/kubernetes/kubernetes/pull/118455), [@linxiulei](https://github.com/linxiulei))", + "author": "linxiulei", + "author_url": "https://github.com/linxiulei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118455", + "pr_number": 118455, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "duplicate": true + }, + "118463": { + "commit": "9aa04752e7b0ca01f8bb774260592e0fa735eda7", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#118463](https://github.com/kubernetes/kubernetes/pull/118463), [@testwill](https://github.com/testwill)) [SIG Network, Node, Scheduling and Testing]", + "author": "testwill", + "author_url": "https://github.com/testwill", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118463", + "pr_number": 118463, + "areas": [ + "test", + "network-policy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "scheduling", + "node", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "118568": { + "commit": "4fd8bd997501021627d44ec256b73446f732ad5e", + "text": "`kubelet` will now expose latency metrics of different stages of the node startup.", + "markdown": "`kubelet` will now expose latency metrics of different stages of the node startup. ([#118568](https://github.com/kubernetes/kubernetes/pull/118568), [@qiutongs](https://github.com/qiutongs))", + "author": "qiutongs", + "author_url": "https://github.com/qiutongs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118568", + "pr_number": 118568, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scalability", + "node", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "118598": { + "commit": "fa14f7004771cdbfd4f4bf0fc584e0b4a35e4ccb", + "text": "Use of secret-based service account tokens now adds an `authentication.k8s.io/legacy-token-autogenerated-secret` or `authentication.k8s.io/legacy-token-manual-secret` audit annotation containing the name of the secret used.", + "markdown": "Use of secret-based service account tokens now adds an `authentication.k8s.io/legacy-token-autogenerated-secret` or `authentication.k8s.io/legacy-token-manual-secret` audit annotation containing the name of the secret used. ([#118598](https://github.com/kubernetes/kubernetes/pull/118598), [@yuanchen8911](https://github.com/yuanchen8911)) [SIG Auth, Instrumentation and Testing]", + "author": "yuanchen8911", + "author_url": "https://github.com/yuanchen8911", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118598", + "pr_number": 118598, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "118619": { + "commit": "19deb04a9079e01e0f9e04cd8f94a1173694916b", + "text": "Dynamic resource allocation: will now avoid creating a new gRPC connection for every call of prepare/unprepare resource(s).", + "markdown": "Dynamic resource allocation: will now avoid creating a new gRPC connection for every call of prepare/unprepare resource(s). ([#118619](https://github.com/kubernetes/kubernetes/pull/118619), [@TommyStarK](https://github.com/TommyStarK))", + "author": "TommyStarK", + "author_url": "https://github.com/TommyStarK", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118619", + "pr_number": 118619, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "118647": { + "commit": "b4fd1626647ddde8b556217314f5bae6047af2d8", + "text": "Added `CAP_NET_RAW` to netadmin debug profile and removed privileges when debugging nodes.", + "markdown": "Added `CAP_NET_RAW` to netadmin debug profile and removed privileges when debugging nodes. ([#118647](https://github.com/kubernetes/kubernetes/pull/118647), [@mochizuki875](https://github.com/mochizuki875))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug#profile-netadmin", + "type": "KEP" + } + ], + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118647", + "pr_number": 118647, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "118653": { + "commit": "f852d7fead3446112d4dc8acd29869a860a11ff5", + "text": "Go API: the `ResourceRequirements` struct was replaced with `VolumeResourceRequirements` for use with volumes.", + "markdown": "Go API: the `ResourceRequirements` struct was replaced with `VolumeResourceRequirements` for use with volumes. ([#118653](https://github.com/kubernetes/kubernetes/pull/118653), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118653", + "pr_number": 118653, + "areas": [ + "test", + "kubelet", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "api-machinery", + "auth", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "118704": { + "commit": "3d77b95bcfd79299347cf8ea74540a22bda08f72", + "text": "Updated the CRI-O socket path, so users who configure kubelet to use a location like `/run/crio/crio.sock` don't see strange behaviour from CRI stats provider.", + "markdown": "Updated the CRI-O socket path, so users who configure kubelet to use a location like `/run/crio/crio.sock` don't see strange behaviour from CRI stats provider. ([#118704](https://github.com/kubernetes/kubernetes/pull/118704), [@dgl](https://github.com/dgl))", + "author": "dgl", + "author_url": "https://github.com/dgl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118704", + "pr_number": 118704, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "118705": { + "commit": "57c7b666c42d2188a8486ee383ba2039bceb9830", + "text": "Forbidden sysctls for pod sharing the respective namespaces with the host are now checked when creating or updating pods without such sysctls.", + "markdown": "Forbidden sysctls for pod sharing the respective namespaces with the host are now checked when creating or updating pods without such sysctls. ([#118705](https://github.com/kubernetes/kubernetes/pull/118705), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118705", + "pr_number": 118705, + "areas": [ + "kubelet", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "apps" + ], + "duplicate": true + }, + "118709": { + "commit": "5d94b2a8e8db3a8e10db792ee4d29df0640183f1", + "text": "None", + "markdown": "None ([#118709](https://github.com/kubernetes/kubernetes/pull/118709), [@ty-dc](https://github.com/ty-dc)) [SIG Network]", + "author": "ty-dc", + "author_url": "https://github.com/ty-dc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118709", + "pr_number": 118709, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "118748": { + "commit": "d486180eb050c756d9add30377980eced146ffa1", + "text": "Improved handling of jsonpath expressions for `kubectl wait --for`. It is now possible to use simple filter expressions which match on a field's content.", + "markdown": "Improved handling of jsonpath expressions for `kubectl wait --for`. It is now possible to use simple filter expressions which match on a field's content. ([#118748](https://github.com/kubernetes/kubernetes/pull/118748), [@andreaskaris](https://github.com/andreaskaris))", + "author": "andreaskaris", + "author_url": "https://github.com/andreaskaris", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118748", + "pr_number": 118748, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "118760": { + "commit": "1c8f88d4b688aabeb8fb24e790756a90bae6844a", + "text": "Added `UserNamespacesPodSecurityStandards` feature gate to enable user namespace support for Pod Security Standards.\nEnabling this feature will modify all Pod Security Standard rules to allow setting: `spec[.*].securityContext.[runAsNonRoot,runAsUser]`.\nThis feature gate should only be enabled if all nodes in the cluster support the user namespace feature and have it enabled.\nThe feature gate will not graduate or be enabled by default in future Kubernetes releases.", + "markdown": "Added `UserNamespacesPodSecurityStandards` feature gate to enable user namespace support for Pod Security Standards.\n Enabling this feature will modify all Pod Security Standard rules to allow setting: `spec[.*].securityContext.[runAsNonRoot,runAsUser]`.\n This feature gate should only be enabled if all nodes in the cluster support the user namespace feature and have it enabled.\n The feature gate will not graduate or be enabled by default in future Kubernetes releases. ([#118760](https://github.com/kubernetes/kubernetes/pull/118760), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Auth, Node and Release]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/127", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118760", + "pr_number": 118760, + "areas": [ + "apiserver", + "release-eng", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "release" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "118846": { + "commit": "a7f8c2f787a7bd85f92eea27cfa4716b49a93955", + "text": "`kubelet` now allows pods to use the `net.ipv4.tcp_keepalive_time` sysctl by default\nand the minimal kernel version is 4.5; Pod Security Admission allows this sysctl\nin `v1.29+` versions of the baseline and restricted policies.", + "markdown": "`kubelet` now allows pods to use the `net.ipv4.tcp_keepalive_time` sysctl by default\n and the minimal kernel version is 4.5; Pod Security Admission allows this sysctl\n in `v1.29+` versions of the baseline and restricted policies. ([#118846](https://github.com/kubernetes/kubernetes/pull/118846), [@cyclinder](https://github.com/cyclinder))", + "author": "cyclinder", + "author_url": "https://github.com/cyclinder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118846", + "pr_number": 118846, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "node", + "auth" + ], + "feature": true, + "duplicate": true + }, + "118923": { + "commit": "312dc127a90190afd3eca0855338dbd4a0a01b79", + "text": "The `volume_zone` plugin will consider `beta` labels as `GA` labels during the scheduling\nprocess. Therefore, if the values of the labels are the same, PVs with `beta` labels\ncan also be scheduled to nodes with `GA` labels.", + "markdown": "The `volume_zone` plugin will consider `beta` labels as `GA` labels during the scheduling\n process. Therefore, if the values of the labels are the same, PVs with `beta` labels\n can also be scheduled to nodes with `GA` labels. ([#118923](https://github.com/kubernetes/kubernetes/pull/118923), [@AxeZhan](https://github.com/AxeZhan))", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118923", + "pr_number": 118923, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "118942": { + "commit": "963400f1a2a1fc6c8650115c0372366ad3429b68", + "text": "`kubectl prune v2`: Switched annotation from `contains-group-resources` to `contains-group-kinds`,\nbecause this is what we defined in the KEP and is clearer to end-users. Although the functionality is\nin `alpha`, we will recognize the prior annotation. This migration support will be removed in `beta`/`GA`.", + "markdown": "`kubectl prune v2`: Switched annotation from `contains-group-resources` to `contains-group-kinds`,\n because this is what we defined in the KEP and is clearer to end-users. Although the functionality is\n in `alpha`, we will recognize the prior annotation. This migration support will be removed in `beta`/`GA`. ([#118942](https://github.com/kubernetes/kubernetes/pull/118942), [@justinsb](https://github.com/justinsb))", + "author": "justinsb", + "author_url": "https://github.com/justinsb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118942", + "pr_number": 118942, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "118950": { + "commit": "95bb02943deb22f738792fcbbcd2c8251c13960c", + "text": "\"NONE\"", + "markdown": "\"NONE\" ([#118950](https://github.com/kubernetes/kubernetes/pull/118950), [@ndixita](https://github.com/ndixita)) [SIG Node and Testing]", + "author": "ndixita", + "author_url": "https://github.com/ndixita", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118950", + "pr_number": 118950, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "118996": { + "commit": "8703ca2413f9cd55147c59588ede1b35bd48beda", + "text": "Kubernetes is now built with Go `1.21.0`.", + "markdown": "Kubernetes is now built with Go `1.21.0`. ([#118996](https://github.com/kubernetes/kubernetes/pull/118996), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118996", + "pr_number": 118996, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "119026": { + "commit": "f6ba25fdbda1f6159ad63dcbb16f394b98d3a2c8", + "text": "A new sleep action for the `PreStop` lifecycle hook was added, allowing containers to pause for a specified duration before termination.", + "markdown": "A new sleep action for the `PreStop` lifecycle hook was added, allowing containers to pause for a specified duration before termination. ([#119026](https://github.com/kubernetes/kubernetes/pull/119026), [@AxeZhan](https://github.com/AxeZhan))", + "documentation": [ + { + "description": "detailed KEP", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/3960-pod-lifecycle-sleep-action/README.md", + "type": "KEP" + } + ], + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119026", + "pr_number": 119026, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "119049": { + "commit": "224087abfa0d0dc25f2c6c8e86cb617d0430e908", + "text": "Added a new scheduler metric, `pod_scheduling_sli_duration_seconds`, and started the deprecation for `pod_scheduling_duration_seconds`.", + "markdown": "Added a new scheduler metric, `pod_scheduling_sli_duration_seconds`, and started the deprecation for `pod_scheduling_duration_seconds`. ([#119049](https://github.com/kubernetes/kubernetes/pull/119049), [@helayoty](https://github.com/helayoty))", + "author": "helayoty", + "author_url": "https://github.com/helayoty", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119049", + "pr_number": 119049, + "areas": [ + "test", + "stable-metrics" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "119100": { + "commit": "414a5f669259859d971b2ae927ecc307d91d4bce", + "text": "Removed `GA` feature gate for `JobTrackingWithFinalizers` in `v1.28`.", + "markdown": "Removed `GA` feature gate for `JobTrackingWithFinalizers` in `v1.28`. ([#119100](https://github.com/kubernetes/kubernetes/pull/119100), [@bzsuni](https://github.com/bzsuni))", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119100", + "pr_number": 119100, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ] + }, + "119105": { + "commit": "0d3eafdfa39b23f035e66c4575490ed14a12c198", + "text": "Added more accurate requeueing in scheduling queue for Pods rejected by the temporal failure (e.g., temporal failure on `kube-apiserver`).", + "markdown": "Added more accurate requeueing in scheduling queue for Pods rejected by the temporal failure (e.g., temporal failure on `kube-apiserver`). ([#119105](https://github.com/kubernetes/kubernetes/pull/119105), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119105", + "pr_number": 119105, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true + }, + "119109": { + "commit": "ceea5fd0cbcb29212bed8c93f1aa81ce45d3cf69", + "text": "`ValidatingAdmissionPolicy` type checking now supports CRDs and API extensions types.", + "markdown": "`ValidatingAdmissionPolicy` type checking now supports CRDs and API extensions types. ([#119109](https://github.com/kubernetes/kubernetes/pull/119109), [@jiahuif](https://github.com/jiahuif))", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119109", + "pr_number": 119109, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "119142": { + "commit": "f68c66f96dc7efd86c43bc6ca34bfdaa552a0892", + "text": "`kube-apiserver`: added `--authentication-config` flag for reading `AuthenticationConfiguration`\nfiles. `--authentication-config` flag is mutually exclusive with the existing `--oidc-*`\nflags.", + "markdown": "`kube-apiserver`: adds `--authentication-config` flag for reading `AuthenticationConfiguration`\n files. `--authentication-config` flag is mutually exclusive with the existing `--oidc-*`\n flags. ([#119142](https://github.com/kubernetes/kubernetes/pull/119142), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119142", + "pr_number": 119142, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "119150": { + "commit": "8777747c9857da16af6cc3ae3a90b9f1fff04758", + "text": "Allowed specifying `ExternalTrafficPolicy` for `Services` with `ExternalIPs`.", + "markdown": "Allowed specifying `ExternalTrafficPolicy` for `Services` with `ExternalIPs`. ([#119150](https://github.com/kubernetes/kubernetes/pull/119150), [@tnqn](https://github.com/tnqn))", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119150", + "pr_number": 119150, + "areas": [ + "test", + "kubectl", + "release-eng" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "api-machinery", + "apps", + "cli", + "testing", + "release", + "cloud-provider" + ], + "duplicate": true + }, + "119155": { + "commit": "ff4ba92b1c467b1cbd4c28bafe5e60dbba819447", + "text": "`kube-scheduler` now implements scheduling hints for the `NodeAffinity` plugin.\nThe scheduling hints allow the scheduler to only retry scheduling a `Pod`\nthat was previously rejected by the `NodeAffinity` plugin if a new `Node` or a `Node` update matches the `Pod`'s node affinity.", + "markdown": "`kube-scheduler` now implements scheduling hints for the `NodeAffinity` plugin.\n The scheduling hints allow the scheduler to only retry scheduling a `Pod`\n that was previously rejected by the `NodeAffinity` plugin if a new `Node` or a `Node` update matches the `Pod`'s node affinity. ([#119155](https://github.com/kubernetes/kubernetes/pull/119155), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119155", + "pr_number": 119155, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "119208": { + "commit": "e4212878ddd10ee276574e1a60934ae94d980f2b", + "text": "Decoupled `TaintManager` from `NodeLifeCycleController` (KEP-3902).", + "markdown": "Decoupled `TaintManager` from `NodeLifeCycleController` (KEP-3902). ([#119208](https://github.com/kubernetes/kubernetes/pull/119208), [@atosatto](https://github.com/atosatto))", + "author": "atosatto", + "author_url": "https://github.com/atosatto", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119208", + "pr_number": 119208, + "areas": [ + "test", + "stable-metrics" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "119290": { + "commit": "3ac83f528dde9d6f37f0ca164d5642226f2380a7", + "text": "Added a return value to `QueueingHint` to indicate an error. If `QueueingHint` returns an error,\nthe scheduler logs it and treats the event as a `QueueAfterBackoff` so that\nthe Pod won't be stuck in the unschedulable pod pool.", + "markdown": "Added a return value to `QueueingHint` to indicate an error. If `QueueingHint` returns an error,\n the scheduler logs it and treats the event as a `QueueAfterBackoff` so that\n the Pod won't be stuck in the unschedulable pod pool. ([#119290](https://github.com/kubernetes/kubernetes/pull/119290), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119290", + "pr_number": 119290, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "119317": { + "commit": "963c9b3cb9124921e48ca6c609f3b5fd728c631c", + "text": "Revised the logic for `DaemonSet` rolling update to exclude nodes if scheduling constraints are not met. This eliminates the problem of rolling updates to a `DaemonSet` getting stuck around tolerations.", + "markdown": "Revised the logic for `DaemonSet` rolling update to exclude nodes if scheduling constraints are not met. This eliminates the problem of rolling updates to a `DaemonSet` getting stuck around tolerations. ([#119317](https://github.com/kubernetes/kubernetes/pull/119317), [@mochizuki875](https://github.com/mochizuki875))", + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119317", + "pr_number": 119317, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "119346": { + "commit": "3cf3702d1e638548ba9fcfd957ebae43e1a573cb", + "text": "`kubeadm`: printing the default component configs for `reset` and `join` is now\nunsupported.", + "markdown": "`kubeadm`: printing the default component configs for `reset` and `join` is now\n unsupported. ([#119346](https://github.com/kubernetes/kubernetes/pull/119346), [@chendave](https://github.com/chendave))", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119346", + "pr_number": 119346, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "119385": { + "commit": "338d68bbc2b5e69c18fed5eea11cc683e72dcbdf", + "text": "Introduced new apiserver metric `apiserver_flowcontrol_current_inqueue_seats`. This metric is analogous to `apiserver_flowcontrol_current_inqueue_requests`, but tracks the total number of seats, as each request can take more than one seat.", + "markdown": "Introduced new apiserver metric `apiserver_flowcontrol_current_inqueue_seats`. This metric is analogous to `apiserver_flowcontrol_current_inqueue_requests`, but tracks the total number of seats, as each request can take more than one seat. ([#119385](https://github.com/kubernetes/kubernetes/pull/119385), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119385", + "pr_number": 119385, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "119394": { + "commit": "d4050a80c70ec7cb66b48e54b457d5a1effe1bc8", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119394](https://github.com/kubernetes/kubernetes/pull/119394), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119394", + "pr_number": 119394, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true, + "do_not_publish": true + }, + "119396": { + "commit": "fc786dcd1d2efcc241e0e2392086934f2806555d", + "text": "`kube-scheduler` now implements scheduling hints for the `NodeUnschedulable` plugin.\nThe scheduling hints allow the scheduler to only retry scheduling a `Pod`\nthat was previously rejected by the `NodeSchedulable` plugin if a new `Node` or a `Node` update sets `.spec.unschedulable` to false.", + "markdown": "`kube-scheduler` now implements scheduling hints for the `NodeUnschedulable` plugin.\n The scheduling hints allow the scheduler to only retry scheduling a `Pod`\n that was previously rejected by the `NodeSchedulable` plugin if a new `Node` or a `Node` update sets `.spec.unschedulable` to false. ([#119396](https://github.com/kubernetes/kubernetes/pull/119396), [@wackxu](https://github.com/wackxu))", + "author": "wackxu", + "author_url": "https://github.com/wackxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119396", + "pr_number": 119396, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "119399": { + "commit": "ea30d100f6b13a47b4153362698b89256077776c", + "text": "Optimized `NodeUnschedulable` Filter to avoid unnecessary calculations.", + "markdown": "Optimized `NodeUnschedulable` Filter to avoid unnecessary calculations. ([#119399](https://github.com/kubernetes/kubernetes/pull/119399), [@wackxu](https://github.com/wackxu))", + "author": "wackxu", + "author_url": "https://github.com/wackxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119399", + "pr_number": 119399, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "119410": { + "commit": "ea3353dd6b8c3ba52516230a5e70b1af0ff9192b", + "text": "`kubectl` will not support the `/swagger-2.0.0.pb-v1` endpoint that has been long deprecated.", + "markdown": "`kubectl` will not support the `/swagger-2.0.0.pb-v1` endpoint that has been long deprecated. ([#119410](https://github.com/kubernetes/kubernetes/pull/119410), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119410", + "pr_number": 119410, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "119447": { + "commit": "bfeb3c26217aa5cb3073ef5bc42d75a1a15931c9", + "text": "Fixed a bug where the CPU set allocated to an init container, with containerRestartPolicy of `Always`, were erroneously reused by a regular container.", + "markdown": "Fixed a bug where the CPU set allocated to an init container, with containerRestartPolicy of `Always`, were erroneously reused by a regular container. ([#119447](https://github.com/kubernetes/kubernetes/pull/119447), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", + "type": "KEP" + } + ], + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119447", + "pr_number": 119447, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "119495": { + "commit": "440eb7eadb6b14a22ea32a9176af601df10ec78f", + "text": "The `flowcontrol.apiserver.k8s.io/v1beta2` API version of `FlowSchema` and `PriorityLevelConfiguration` is no longer served in `v1.29`. Migrate manifests and API clients to use the `flowcontrol.apiserver.k8s.io/v1beta3` API version, available since `v1.26`. More information is at https://kubernetes.io/docs/reference/using-api/deprecation-guide/#flowcontrol-resources-v129.", + "markdown": "The `flowcontrol.apiserver.k8s.io/v1beta2` API version of `FlowSchema` and `PriorityLevelConfiguration` is no longer served in v1.29. Migrate manifests and API clients to use the `flowcontrol.apiserver.k8s.io/v1beta3` API version, available since v1.26. More information is at https://kubernetes.io/docs/reference/using-api/deprecation-guide/#flowcontrol-resources-v129. ([#119495](https://github.com/kubernetes/kubernetes/pull/119495), [@bzsuni](https://github.com/bzsuni))", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119495", + "pr_number": 119495, + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "119503": { + "commit": "2e6eafca3f466b072f23aff4ff4d6d8a973f5606", + "text": "Graduated API List chunking (aka pagination) feature to `stable`.", + "markdown": "Graduated API List chunking (aka pagination) feature to `stable`. ([#119503](https://github.com/kubernetes/kubernetes/pull/119503), [@wojtek-t](https://github.com/wojtek-t))", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119503", + "pr_number": 119503, + "areas": [ + "test", + "apiserver", + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "119515": { + "commit": "b406e49123d10cd3b33a958c6b4039830e3b98e2", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119515](https://github.com/kubernetes/kubernetes/pull/119515), [@haojue](https://github.com/haojue)) [SIG Cluster Lifecycle]", + "author": "haojue", + "author_url": "https://github.com/haojue", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119515", + "pr_number": 119515, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "119517": { + "commit": "8d4ccd67e332ed5ac0295e169b931782d63c96c8", + "text": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119517](https://github.com/kubernetes/kubernetes/pull/119517), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "http://kep.k8s.io/4247", + "type": "external" + } + ], + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119517", + "pr_number": 119517, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "119522": { + "commit": "873eb57a4eec0d3898576c372eefdf20532ff1f9", + "text": "Added a check on a user attempting to create a static pod via the `kubelet` without specifying a name. They will now get a visible validation error.", + "markdown": "Added a check on a user attempting to create a static pod via the `kubelet` without specifying a name. They will now get a visible validation error. ([#119522](https://github.com/kubernetes/kubernetes/pull/119522), [@YTGhost](https://github.com/YTGhost))", + "author": "YTGhost", + "author_url": "https://github.com/YTGhost", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119522", + "pr_number": 119522, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "119525": { + "commit": "0df4a69f5c90990d47d1337e5fc99a764ff99474", + "text": "The `--bind-address` parameter in kube-proxy is misleading, no port is opened with this address. Instead it is translated internally to \"nodeIP\". The nodeIPs for both families are now taken from the Node object if `--bind-address` is unspecified or set to the \"any\" address (0.0.0.0 or ::). It is recommended to leave `--bind-address` unspecified, and in particular avoid to set it to localhost (127.0.0.1 or ::1)", + "markdown": "The `--bind-address` parameter in kube-proxy is misleading, no port is opened with this address. Instead it is translated internally to \"nodeIP\". The nodeIPs for both families are now taken from the Node object if `--bind-address` is unspecified or set to the \"any\" address (0.0.0.0 or ::). It is recommended to leave `--bind-address` unspecified, and in particular avoid to set it to localhost (127.0.0.1 or ::1) ([#119525](https://github.com/kubernetes/kubernetes/pull/119525), [@uablrek](https://github.com/uablrek)) [SIG Network and Scalability]", + "author": "uablrek", + "author_url": "https://github.com/uablrek", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119525", + "pr_number": 119525, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "scalability" + ], + "duplicate": true + }, + "119537": { + "commit": "0b70423e243ea38be694a0e20dd7d9f19b06c09e", + "text": "Removed ephemeral container legacy server support for the server versions prior to `1.22`.", + "markdown": "Removed ephemeral container legacy server support for the server versions prior to `1.22`. ([#119537](https://github.com/kubernetes/kubernetes/pull/119537), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119537", + "pr_number": 119537, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "119556": { + "commit": "f082fab916d3cd6a352a09a14749454e7ea65670", + "text": "Improved memory usage of `kube-scheduler` by dropping the `.metadata.managedFields` field that `kube-scheduler` doesn't require.", + "markdown": "Improved memory usage of `kube-scheduler` by dropping the `.metadata.managedFields` field that `kube-scheduler` doesn't require. ([#119556](https://github.com/kubernetes/kubernetes/pull/119556), [@linxiulei](https://github.com/linxiulei))", + "author": "linxiulei", + "author_url": "https://github.com/linxiulei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119556", + "pr_number": 119556, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "119557": { + "commit": "fcfc2d05a4737646c7951943cc70c5900bf61145", + "text": "Implemented API for streaming for the `etcd` store implementation.\nWhen `sendInitialEvents ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic `Bookmark`, after which the server continues streaming events.", + "markdown": "Implemented API for streaming for the `etcd` store implementation.\n When `sendInitialEvents ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic `Bookmark`, after which the server continues streaming events. ([#119557](https://github.com/kubernetes/kubernetes/pull/119557), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3157-watch-list", + "type": "KEP" + } + ], + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119557", + "pr_number": 119557, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "119579": { + "commit": "59f81980a18061bf3785f7cc8232d7d8a4715b35", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119579](https://github.com/kubernetes/kubernetes/pull/119579), [@yt2985](https://github.com/yt2985)) [SIG Testing]", + "author": "yt2985", + "author_url": "https://github.com/yt2985", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119579", + "pr_number": 119579, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "cleanup", + "failing-test" + ], + "sigs": [ + "testing" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "119592": { + "commit": "b4db99efb3b39a9fc5e2ccd1f3c075dfb2e33f2a", + "text": "The `Dockerfile` for the kubectl image has been updated with the addition of a specific base image and essential utilities (bash and jq).", + "markdown": "The `Dockerfile` for the kubectl image has been updated with the addition of a specific base image and essential utilities (bash and jq). ([#119592](https://github.com/kubernetes/kubernetes/pull/119592), [@rayandas](https://github.com/rayandas))", + "author": "rayandas", + "author_url": "https://github.com/rayandas", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119592", + "pr_number": 119592, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "cli", + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "119659": { + "commit": "8923c3c8719c4caf4ab756e8892eea1b905ebc01", + "text": "Promoted `PodReadyToStartContainers` condition to `beta`.", + "markdown": "Promoted `PodReadyToStartContainers` condition to `beta`. ([#119659](https://github.com/kubernetes/kubernetes/pull/119659), [@kannon92](https://github.com/kannon92))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3085-pod-conditions-for-starting-completition-of-sandbox-creation", + "type": "KEP" + } + ], + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119659", + "pr_number": 119659, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "119661": { + "commit": "92b7905143b1436c732e1b91cfbedebdb92bface", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#119661](https://github.com/kubernetes/kubernetes/pull/119661), [@cartermckinnon](https://github.com/cartermckinnon)) [SIG API Machinery and Node]", + "author": "cartermckinnon", + "author_url": "https://github.com/cartermckinnon", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119661", + "pr_number": 119661, + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "api-machinery" + ], + "duplicate": true, + "do_not_publish": true + }, + "119665": { + "commit": "a2cc9db02fa6420c7905ef372cae6695fddb1120", + "text": "`GetPodQOS(pod *core.Pod)` function now returns the stored value from `PodStatus.QOSClass`, if set. To compute/evaluate the value of `QOSClass` from scratch, `ComputePodQOS(pod*core.Pod)` must be used.", + "markdown": "`GetPodQOS(pod *core.Pod)` function now returns the stored value from `PodStatus.QOSClass`, if set. To compute/evaluate the value of `QOSClass` from scratch, `ComputePodQOS(pod*core.Pod)` must be used. ([#119665](https://github.com/kubernetes/kubernetes/pull/119665), [@vinaykul](https://github.com/vinaykul))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "vinaykul", + "author_url": "https://github.com/vinaykul", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119665", + "pr_number": 119665, + "areas": [ + "test", + "kubelet", + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "apps", + "cli", + "testing" + ], + "duplicate": true + }, + "119705": { + "commit": "9284a42a40f51a05a92f8d39d02e34792fd3c96f", + "text": "Removed `generatedfiles` from the Makefile.", + "markdown": "Removed `generatedfiles` from the Makefile. ([#119705](https://github.com/kubernetes/kubernetes/pull/119705), [@ty-dc](https://github.com/ty-dc))", + "author": "ty-dc", + "author_url": "https://github.com/ty-dc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119705", + "pr_number": 119705, + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture" + ], + "do_not_publish": true + }, + "119709": { + "commit": "419df231bcb8c926deab4f5c1c1a77c94866bb16", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119709](https://github.com/kubernetes/kubernetes/pull/119709), [@charles-chenzz](https://github.com/charles-chenzz)) [SIG Node]", + "author": "charles-chenzz", + "author_url": "https://github.com/charles-chenzz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119709", + "pr_number": 119709, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "119732": { + "commit": "fd4109d5f6938547c9db068e016eed90b2876867", + "text": "Fixed an issue related to not draining all the pods in a namespace when an empty selector, i.e., \"{},\" is specified in a Pod Disruption Budget (PDB).", + "markdown": "Fixed an issue related to not draining all the pods in a namespace when an empty selector, i.e., \"{},\" is specified in a Pod Disruption Budget (PDB). ([#119732](https://github.com/kubernetes/kubernetes/pull/119732), [@sairameshv](https://github.com/sairameshv))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/85-Graduate-PDB-to-Stable", + "type": "KEP" + } + ], + "author": "sairameshv", + "author_url": "https://github.com/sairameshv", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119732", + "pr_number": 119732, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "119735": { + "commit": "c486a08b4188a16c07c5b22baa8ffc9e2b2e9ce0", + "text": "Volume attach or publish operation will not fail at `kubelet` if target path directory already exists on the node.", + "markdown": "Volume attach or publish operation will not fail at `kubelet` if target path directory already exists on the node. ([#119735](https://github.com/kubernetes/kubernetes/pull/119735), [@akankshapanse](https://github.com/akankshapanse))", + "author": "akankshapanse", + "author_url": "https://github.com/akankshapanse", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119735", + "pr_number": 119735, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "119753": { + "commit": "0491866c643e9c873942003f722e20c3ab5bab7f", + "text": "`kubeadm`: fixed `nil` pointer when `etcd` member is already removed.", + "markdown": "`kubeadm`: fixed `nil` pointer when `etcd` member is already removed. ([#119753](https://github.com/kubernetes/kubernetes/pull/119753), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119753", + "pr_number": 119753, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "119761": { + "commit": "55c3cd9a30e818c050c7ac78d49fcc1ac9691e46", + "text": "`Statefulset` now waits for new replicas in tests when removing `.start.ordinal`.", + "markdown": "`Statefulset` now waits for new replicas in tests when removing `.start.ordinal`. ([#119761](https://github.com/kubernetes/kubernetes/pull/119761), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119761", + "pr_number": 119761, + "areas": [ + "test" + ], + "kinds": [ + "flake" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "119762": { + "commit": "227d1b2357d93a6884addccb50122df16674ca95", + "text": "In the `wait.PollUntilContextTimeout` function, if `immediate` is true, the condition will now be invoked before waiting, guaranteeing that the condition is invoked at least once and then wait a interval before executing again.", + "markdown": "In the `wait.PollUntilContextTimeout` function, if `immediate` is true, the condition will now be invoked before waiting, guaranteeing that the condition is invoked at least once and then wait a interval before executing again. ([#119762](https://github.com/kubernetes/kubernetes/pull/119762), [@AxeZhan](https://github.com/AxeZhan))", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119762", + "pr_number": 119762, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "119769": { + "commit": "57212647e9f2a6c1cbbf5cfce6cf2a5fefb0e056", + "text": "Fixed a `1.27` scheduling regression that `PostFilter` plugin may not function if previous `PreFilter` plugins return `Skip`.", + "markdown": "Fixed a `1.27` scheduling regression that `PostFilter` plugin may not function if previous `PreFilter` plugins return `Skip`. ([#119769](https://github.com/kubernetes/kubernetes/pull/119769), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119769", + "pr_number": 119769, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "119776": { + "commit": "a46bab6930804d8a111026760f008f85c305bc20", + "text": "Fixed an issue where a `CronJob` could fail to clean up Jobs when the `ResourceQuota` for `Jobs` had been reached.", + "markdown": "Fixed an issue where a `CronJob` could fail to clean up Jobs when the `ResourceQuota` for `Jobs` had been reached. ([#119776](https://github.com/kubernetes/kubernetes/pull/119776), [@ASverdlov](https://github.com/ASverdlov))", + "author": "ASverdlov", + "author_url": "https://github.com/ASverdlov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119776", + "pr_number": 119776, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "119778": { + "commit": "719d1a84f78fbc48e266cf40e998e13bf8d49fbd", + "text": "Fixed a `v1.26` regression scheduling bug by ensuring that preemption is skipped when a `PreFilter` plugin returns `UnschedulableAndUnresolvable`.", + "markdown": "Fixed a `v1.26` regression scheduling bug by ensuring that preemption is skipped when a `PreFilter` plugin returns `UnschedulableAndUnresolvable`. ([#119778](https://github.com/kubernetes/kubernetes/pull/119778), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119778", + "pr_number": 119778, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true + }, + "119785": { + "commit": "130a5a423fb1b9b6d317358ba3b6cf24f586c075", + "text": "In a scheduler with `Permit` plugins, when a Pod is rejected during `WaitOnPermit`, the scheduler records the plugin.\nThe scheduler will use the record to honor cluster events and queueing `hints registered` for the plugin, to inform whether to retry the pod.", + "markdown": "In a scheduler with `Permit` plugins, when a Pod is rejected during `WaitOnPermit`, the scheduler records the plugin.\n The scheduler will use the record to honor cluster events and queueing `hints registered` for the plugin, to inform whether to retry the pod. ([#119785](https://github.com/kubernetes/kubernetes/pull/119785), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119785", + "pr_number": 119785, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true + }, + "119789": { + "commit": "c0691f378424890b278768255b0f554679bea1f4", + "text": "Setting the `status.loadBalancer` of a Service whose `spec.type` is not `LoadBalancer` was previously allowed, but any update to the `metadata` or `spec` would wipe that field. Setting this field is no longer permitted unless `spec.type` is `LoadBalancer`. In the very unlikely event that this has unexpected impact, you can enable the `AllowServiceLBStatusOnNonLB` feature gate, which will restore the previous behavior. If you do need to set this, please file an issue with the Kubernetes project to help contributors understand why you need it.", + "markdown": "Setting the `status.loadBalancer` of a Service whose `spec.type` is not `LoadBalancer` was previously allowed, but any update to the `metadata` or `spec` would wipe that field. Setting this field is no longer permitted unless `spec.type` is `LoadBalancer`. In the very unlikely event that this has unexpected impact, you can enable the `AllowServiceLBStatusOnNonLB` feature gate, which will restore the previous behavior. If you do need to set this, please file an issue with the Kubernetes project to help contributors understand why you need it. ([#119789](https://github.com/kubernetes/kubernetes/pull/119789), [@thockin](https://github.com/thockin))", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119789", + "pr_number": 119789, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "119791": { + "commit": "86a0b1c57a1028729deb82d833007b20955a6cb3", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119791](https://github.com/kubernetes/kubernetes/pull/119791), [@aroradaman](https://github.com/aroradaman)) [SIG Network]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119791", + "pr_number": 119791, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "119795": { + "commit": "19f6d5be8269d4051acffc5709ec4bee7274268a", + "text": "Cleaned up `kube-apiserver` HTTP logs for impersonated requests.", + "markdown": "Cleaned up `kube-apiserver` HTTP logs for impersonated requests. ([#119795](https://github.com/kubernetes/kubernetes/pull/119795), [@sttts](https://github.com/sttts))", + "author": "sttts", + "author_url": "https://github.com/sttts", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119795", + "pr_number": 119795, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "119796": { + "commit": "03e845f882b2ab1f1a34deee36f06945cfa259d2", + "text": "Added context to `caches populated` log messages.", + "markdown": "Added context to `caches populated` log messages. ([#119796](https://github.com/kubernetes/kubernetes/pull/119796), [@sttts](https://github.com/sttts))", + "author": "sttts", + "author_url": "https://github.com/sttts", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119796", + "pr_number": 119796, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "119800": { + "commit": "210a97e48bc6caac338663cfb917f60e61c84962", + "text": "Fixed a bug where CEL expressions in CRD validation rules would incorrectly compute a high estimated cost for functions that return strings, lists or maps.\nThe incorrect cost was evident when the result of a function was used in subsequent operations.", + "markdown": "Fixed a bug where CEL expressions in CRD validation rules would incorrectly compute a high estimated cost for functions that return strings, lists or maps.\n The incorrect cost was evident when the result of a function was used in subsequent operations. ([#119800](https://github.com/kubernetes/kubernetes/pull/119800), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth and Cloud Provider]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119800", + "pr_number": 119800, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "119802": { + "commit": "b5cc6aab484ef048a84a0965f288d035f0e5f298", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119802](https://github.com/kubernetes/kubernetes/pull/119802), [@takirala](https://github.com/takirala)) [SIG API Machinery]", + "author": "takirala", + "author_url": "https://github.com/takirala", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119802", + "pr_number": 119802, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "do_not_publish": true + }, + "119825": { + "commit": "47f75709326a737ea1880c9fd148ab32771d797c", + "text": "Fixed bug where `Adding GroupVersion` log line was constantly repeated without any group version changes.", + "markdown": "Fixed bug where `Adding GroupVersion` log line was constantly repeated without any group version changes. ([#119825](https://github.com/kubernetes/kubernetes/pull/119825), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119825", + "pr_number": 119825, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "119829": { + "commit": "a08ee808079d0bda65b0819e1d212c27ca422e4a", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#119829](https://github.com/kubernetes/kubernetes/pull/119829), [@cvvz](https://github.com/cvvz)) [SIG Instrumentation, Node and Storage]", + "author": "cvvz", + "author_url": "https://github.com/cvvz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119829", + "pr_number": 119829, + "areas": [ + "kubelet", + "logging" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "storage", + "node", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "119859": { + "commit": "85e018634ce0f38e671fbc5c78c4eefe066e04b9", + "text": "`kubeadm`: removed `system:masters` organization from `etcd/healthcheck-client`\ncertificate.", + "markdown": "`kubeadm`: removed `system:masters` organization from `etcd/healthcheck-client`\n certificate. ([#119859](https://github.com/kubernetes/kubernetes/pull/119859), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119859", + "pr_number": 119859, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true + }, + "119870": { + "commit": "42275daaaa96aac0d5191f1f5bf5d4ce6d1c474d", + "text": "Fixed a regression in the default `v1.27` configurations in `kube-apiserver`: fixed the `AggregatedDiscoveryEndpoint` feature (`beta` in `v1.27+`) to successfully fetch discovery information from aggregated API servers that do not check `Accept` headers when serving the `/apis` endpoint.", + "markdown": "Fixed a regression in the default `v1.27` configurations in `kube-apiserver`: fixed the `AggregatedDiscoveryEndpoint` feature (`beta` in `v1.27+`) to successfully fetch discovery information from aggregated API servers that do not check `Accept` headers when serving the `/apis` endpoint. ([#119870](https://github.com/kubernetes/kubernetes/pull/119870), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119870", + "pr_number": 119870, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "119878": { + "commit": "16310c959dfc5fefc70e9041e0029feffa62d791", + "text": "Added `apiserver_envelope_encryption_dek_cache_filled` to measure number of records in data encryption key (DEK) cache.", + "markdown": "Added `apiserver_envelope_encryption_dek_cache_filled` to measure number of records in data encryption key (DEK) cache. ([#119878](https://github.com/kubernetes/kubernetes/pull/119878), [@ritazh](https://github.com/ritazh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", + "type": "KEP" + } + ], + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119878", + "pr_number": 119878, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true + }, + "119933": { + "commit": "2a5fd3076aee14c1be51c703a7e5b447d638387d", + "text": "Updated `cri-tools` to `v1.28.0`.", + "markdown": "Updated `cri-tools` to `v1.28.0`. ([#119933](https://github.com/kubernetes/kubernetes/pull/119933), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119933", + "pr_number": 119933, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ] + }, + "119937": { + "commit": "ee265c92fec40cd69d1de010b477717e4c142492", + "text": "Added a new `ipMode` field to the `.status` of Services where `type` is set to `LoadBalancer`.\nThe new field is behind the `LoadBalancerIPMode` feature gate.", + "markdown": "Added a new `ipMode` field to the `.status` of Services where `type` is set to `LoadBalancer`.\n The new field is behind the `LoadBalancerIPMode` feature gate. ([#119937](https://github.com/kubernetes/kubernetes/pull/119937), [@RyanAoh](https://github.com/RyanAoh)) [SIG API Machinery, Apps, Cloud Provider, Network and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/1860-kube-proxy-IP-node-binding", + "type": "KEP" + } + ], + "author": "RyanAoh", + "author_url": "https://github.com/RyanAoh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119937", + "pr_number": 119937, + "areas": [ + "test", + "kube-proxy", + "cloudprovider", + "code-generation", + "ipvs" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "apps", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "119944": { + "commit": "aa4ec3c5b006157751df4feac5c620c9dfadd2b7", + "text": "Added a redundant process to remove tracking finalizers from Pods that belong to Jobs. The process kicks in after the control plane marks a Job as finished.", + "markdown": "Added a redundant process to remove tracking finalizers from Pods that belong to Jobs. The process kicks in after the control plane marks a Job as finished. ([#119944](https://github.com/kubernetes/kubernetes/pull/119944), [@Sharpz7](https://github.com/Sharpz7))", + "author": "Sharpz7", + "author_url": "https://github.com/Sharpz7", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119944", + "pr_number": 119944, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "119946": { + "commit": "3548ef009246fd75f9d229c5e7ebcb08a6ca33b8", + "text": "`kubeadm`: turned on feature gate `MergeCLIArgumentsWithConfig` to merge the config from flag and config file, otherwise, if the flag `--ignore-preflight-errors` is set from the CLI, then the value from config file will be ignored.", + "markdown": "`kubeadm`: turned on feature gate `MergeCLIArgumentsWithConfig` to merge the config from flag and config file, otherwise, if the flag `--ignore-preflight-errors` is set from the CLI, then the value from config file will be ignored. ([#119946](https://github.com/kubernetes/kubernetes/pull/119946), [@chendave](https://github.com/chendave))", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119946", + "pr_number": 119946, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "119948": { + "commit": "9aba98ad7160226768707e1aa4a3b8c46cd63dc1", + "text": "NONE", + "markdown": "NONE ([#119948](https://github.com/kubernetes/kubernetes/pull/119948), [@liyuerich](https://github.com/liyuerich)) [SIG Storage]", + "author": "liyuerich", + "author_url": "https://github.com/liyuerich", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119948", + "pr_number": 119948, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ], + "do_not_publish": true + }, + "119959": { + "commit": "cde1b19a312ca2b6f7d5d8a5459080c90622c6bb", + "text": "None", + "markdown": "None ([#119959](https://github.com/kubernetes/kubernetes/pull/119959), [@ty-dc](https://github.com/ty-dc)) [SIG Apps and Testing]", + "author": "ty-dc", + "author_url": "https://github.com/ty-dc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119959", + "pr_number": 119959, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "119969": { + "commit": "232d343d58f8ecd47e5ca199654ce416f448bb4e", + "text": "Updated CNI plugins to `v1.3.0`.", + "markdown": "Updated CNI plugins to `v1.3.0`. ([#119969](https://github.com/kubernetes/kubernetes/pull/119969), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119969", + "pr_number": 119969, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "119971": { + "commit": "ea3318cb7166f9e2565a8848f453ba5e915f5ac2", + "text": "Previously, the pod name and namespace were eliminated in the event log message. This PR attempts to add the preemptor pod UID in the preemption event message logs for easier debugging and safer transparency.", + "markdown": "Previously, the pod name and namespace were eliminated in the event log message. This PR attempts to add the preemptor pod UID in the preemption event message logs for easier debugging and safer transparency. ([#119971](https://github.com/kubernetes/kubernetes/pull/119971), [@kwakubiney](https://github.com/kwakubiney)) [SIG Scheduling]", + "author": "kwakubiney", + "author_url": "https://github.com/kwakubiney", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119971", + "pr_number": 119971, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "119986": { + "commit": "f8b5f1a77bbab217159b1d024000770f8c95ed97", + "text": "Fixed the bug where images that were pinned by the container runtime could be garbage collected by `kubelet`.", + "markdown": "Fixed the bug where images that were pinned by the container runtime could be garbage collected by `kubelet`. ([#119986](https://github.com/kubernetes/kubernetes/pull/119986), [@ruiwen-zhao](https://github.com/ruiwen-zhao))", + "author": "ruiwen-zhao", + "author_url": "https://github.com/ruiwen-zhao", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119986", + "pr_number": 119986, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "119994": { + "commit": "10c622e99a6030d0e2ce398ec14a6267ad1e7967", + "text": "`kube-scheduler` component config (`KubeSchedulerConfiguration`) `kubescheduler.config.k8s.io/v1beta3`\nis removed in `v1.29`. Migrated `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`.", + "markdown": "`kube-scheduler` component config (`KubeSchedulerConfiguration`) `kubescheduler.config.k8s.io/v1beta3`\n is removed in `v1.29`. Migrated `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`. ([#119994](https://github.com/kubernetes/kubernetes/pull/119994), [@SataQiu](https://github.com/SataQiu))", + "documentation": [ + { + "description": "-[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/785-scheduler-component-config-api", + "type": "KEP" + } + ], + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119994", + "pr_number": 119994, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "120001": { + "commit": "2b16f7b6bb9567d743e5ff4b77803919d3129169", + "text": "Restartable init containers resource in pod autoscaler are now calculated.", + "markdown": "Restartable init containers resource in pod autoscaler are now calculated. ([#120001](https://github.com/kubernetes/kubernetes/pull/120001), [@qingwave](https://github.com/qingwave))", + "author": "qingwave", + "author_url": "https://github.com/qingwave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120001", + "pr_number": 120001, + "kinds": [ + "feature" + ], + "sigs": [ + "autoscaling", + "apps" + ], + "feature": true, + "duplicate": true + }, + "120018": { + "commit": "fbac8388bf5e4abb88a2b9be44bea01b2c0d7be4", + "text": "`ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` objects are\npersisted in `etcd` using the `v1beta1` version. Either remove alpha objects, or disable the\nalpha `ValidatingAdmissionPolicy` feature in a `v1.27` server before upgrading to a\n`v1.28` server with the beta feature and API enabled.", + "markdown": "`ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` objects are\n persisted in `etcd` using the `v1beta1` version. Either remove alpha objects, or disable the\n alpha `ValidatingAdmissionPolicy` feature in a `v1.27` server before upgrading to a\n `v1.28` server with the beta feature and API enabled. ([#120018](https://github.com/kubernetes/kubernetes/pull/120018), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120018", + "pr_number": 120018, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "120038": { + "commit": "70a28449a76aaebe0f3707aa642499f47124dbae", + "text": "NONE", + "markdown": "NONE ([#120038](https://github.com/kubernetes/kubernetes/pull/120038), [@liyuerich](https://github.com/liyuerich)) [SIG Apps, Auth, Storage and Testing]", + "author": "liyuerich", + "author_url": "https://github.com/liyuerich", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120038", + "pr_number": 120038, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "auth", + "apps", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "120039": { + "commit": "595a57940a45f25bad4621548ee990c81779c12e", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120039](https://github.com/kubernetes/kubernetes/pull/120039), [@chendave](https://github.com/chendave)) [SIG Cluster Lifecycle]", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120039", + "pr_number": 120039, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "120064": { + "commit": "5b2167482d278c26836e99f9fefaf172b91da237", + "text": "`kubeadm`: added validation to verify that the `CertificateKey` is a valid hex\nencoded AES key.", + "markdown": "`kubeadm`: added validation to verify that the `CertificateKey` is a valid hex\n encoded AES key. ([#120064](https://github.com/kubernetes/kubernetes/pull/120064), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120064", + "pr_number": 120064, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "120069": { + "commit": "25c7a1439aa02fa2a0d1948d9d9b5798049bf028", + "text": "Promoted to conformance a test that verified that `Services` only forward traffic on the port and protocol specified.", + "markdown": "Promoted to conformance a test that verified that `Services` only forward traffic on the port and protocol specified. ([#120069](https://github.com/kubernetes/kubernetes/pull/120069), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120069", + "pr_number": 120069, + "areas": [ + "test", + "conformance" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "testing", + "architecture" + ], + "duplicate": true + }, + "120072": { + "commit": "a1fdef7d01073064cad3947de90c9cf5a91fc937", + "text": "`kubeadm`: fixed the bug where `--image-repository` flag is missing for some init\nphase sub-commands.", + "markdown": "`kubeadm`: fixed the bug where `--image-repository` flag is missing for some init\n phase sub-commands. ([#120072](https://github.com/kubernetes/kubernetes/pull/120072), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120072", + "pr_number": 120072, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "120075": { + "commit": "ccca58aa36993a23fb212d603b0074de8740c359", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120075](https://github.com/kubernetes/kubernetes/pull/120075), [@lowang-bh](https://github.com/lowang-bh)) [SIG Apps]", + "author": "lowang-bh", + "author_url": "https://github.com/lowang-bh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120075", + "pr_number": 120075, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ], + "do_not_publish": true + }, + "120087": { + "commit": "8290c4c9c1904f160b8d297ffc052ce58222bc91", + "text": "Incorporated feedback on PR #119341, on `failOpen` metric counting for mutate and validate webhooks.", + "markdown": "Incorporated feedback on PR #119341, on `failOpen` metric counting for mutate and validate webhooks. ([#120087](https://github.com/kubernetes/kubernetes/pull/120087), [@divyasri537](https://github.com/divyasri537)) [SIG API Machinery]", + "author": "divyasri537", + "author_url": "https://github.com/divyasri537", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120087", + "pr_number": 120087, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "120097": { + "commit": "07f47d8b407ace1cf85f814b787718ba1e65ef6a", + "text": "Fixed CEL estimated cost of `replace()` to handle a zero length replacement string correctly.\nPreviously this would cause the estimated cost to be higher than it should be.", + "markdown": "Fixed CEL estimated cost of `replace()` to handle a zero length replacement string correctly.\n Previously this would cause the estimated cost to be higher than it should be. ([#120097](https://github.com/kubernetes/kubernetes/pull/120097), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120097", + "pr_number": 120097, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "120101": { + "commit": "27c9d32d46a8c49b43472aa62302df62eaa85649", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120101](https://github.com/kubernetes/kubernetes/pull/120101), [@lowang-bh](https://github.com/lowang-bh)) [SIG Storage and Testing]", + "author": "lowang-bh", + "author_url": "https://github.com/lowang-bh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120101", + "pr_number": 120101, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "120105": { + "commit": "80cd9d7a9a149afe3a766edafd2270286e3f7106", + "text": "Added mock framework support for unit tests for Windows in `kubeproxy`.", + "markdown": "Added mock framework support for unit tests for Windows in `kubeproxy`. ([#120105](https://github.com/kubernetes/kubernetes/pull/120105), [@princepereira](https://github.com/princepereira))", + "author": "princepereira", + "author_url": "https://github.com/princepereira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120105", + "pr_number": 120105, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "cleanup", + "failing-test" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true, + "duplicate_kind": true + }, + "120108": { + "commit": "dd0c2d4eb1bf0c701351a9412a278e5d70532548", + "text": "Fixed OpenAPI v3 not being cleaned up after deleting `APIServices`.", + "markdown": "Fixed OpenAPI v3 not being cleaned up after deleting `APIServices`. ([#120108](https://github.com/kubernetes/kubernetes/pull/120108), [@tnqn](https://github.com/tnqn))", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120108", + "pr_number": 120108, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "120116": { + "commit": "4cb47f2ba1b52a1c89395f278ae6f4736664371d", + "text": "Upgraded `coredns` to `v1.11.1`.", + "markdown": "Upgraded `coredns` to `v1.11.1`. ([#120116](https://github.com/kubernetes/kubernetes/pull/120116), [@tukwila](https://github.com/tukwila))", + "author": "tukwila", + "author_url": "https://github.com/tukwila", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120116", + "pr_number": 120116, + "areas": [ + "provider/gcp", + "kubeadm", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle", + "cloud-provider" + ], + "duplicate": true + }, + "120118": { + "commit": "5dd4f1245cd6c2d5f58697b3ad3d8ab4b4d111ba", + "text": "Added descriptions and examples for the situation of using `kubectl rollout restart` without specifying a particular deployment.", + "markdown": "Added descriptions and examples for the situation of using `kubectl rollout restart` without specifying a particular deployment. ([#120118](https://github.com/kubernetes/kubernetes/pull/120118), [@Ithrael](https://github.com/Ithrael))", + "author": "Ithrael", + "author_url": "https://github.com/Ithrael", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120118", + "pr_number": 120118, + "areas": [ + "kubectl" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cli" + ] + }, + "120119": { + "commit": "294bde0079a0d56099cf8b8cf558e3ae7230de12", + "text": "Fixed `kubectl events` not filtering events by `GroupVersion` for resources with a full name.", + "markdown": "Fixed `kubectl events` not filtering events by `GroupVersion` for resources with a full name. ([#120119](https://github.com/kubernetes/kubernetes/pull/120119), [@Ithrael](https://github.com/Ithrael))", + "author": "Ithrael", + "author_url": "https://github.com/Ithrael", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120119", + "pr_number": 120119, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true + }, + "120151": { + "commit": "8b132ea40a250e9acf08ab2fadb9a8c2fd811d74", + "text": "NONE", + "markdown": "NONE ([#120151](https://github.com/kubernetes/kubernetes/pull/120151), [@Penguin-zlh](https://github.com/Penguin-zlh)) [SIG Apps and Testing]", + "author": "Penguin-zlh", + "author_url": "https://github.com/Penguin-zlh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120151", + "pr_number": 120151, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "120154": { + "commit": "ca43bf0582f86437032d5c7f83e0eaa7413bc83d", + "text": "`kube-apiserver`: added `--authorization-config` flag for reading a configuration file containing an `apiserver.config.k8s.io/v1alpha1 AuthorizationConfiguration` object. The `--authorization-config` flag is mutually exclusive with `--authorization-modes` and `--authorization-webhook-*` flags. The `alpha` `StructuredAuthorizationConfiguration` feature flag must be enabled for `--authorization-config` to be specified.", + "markdown": "`kube-apiserver`: added `--authorization-config` flag for reading a configuration file containing an `apiserver.config.k8s.io/v1alpha1 AuthorizationConfiguration` object. The `--authorization-config` flag is mutually exclusive with `--authorization-modes` and `--authorization-webhook-*` flags. The `alpha` `StructuredAuthorizationConfiguration` feature flag must be enabled for `--authorization-config` to be specified. ([#120154](https://github.com/kubernetes/kubernetes/pull/120154), [@palnabarun](https://github.com/palnabarun))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3221", + "type": "external" + } + ], + "author": "palnabarun", + "author_url": "https://github.com/palnabarun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120154", + "pr_number": 120154, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "120192": { + "commit": "9988f6371b6116421756b3935062367afc6f810c", + "text": "Removed the `CronJobTimeZone` feature gate (the feature is stable and always enabled)\n- Removed the `JobMutableNodeSchedulingDirectives` feature gate (the feature is stable and always enabled)\n- Removed the `LegacyServiceAccountTokenNoAutoGeneration` feature gate (the feature is stable and always enabled)", + "markdown": "Removed the `CronJobTimeZone` feature gate (the feature is stable and always enabled)\n - Removed the `JobMutableNodeSchedulingDirectives` feature gate (the feature is stable and always enabled)\n - Removed the `LegacyServiceAccountTokenNoAutoGeneration` feature gate (the feature is stable and always enabled) ([#120192](https://github.com/kubernetes/kubernetes/pull/120192), [@SataQiu](https://github.com/SataQiu)) [SIG Apps, Auth and Scheduling]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120192", + "pr_number": 120192, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "auth", + "apps" + ], + "duplicate": true + }, + "120195": { + "commit": "0095ae3b259fc9fe273bac089411987835ee736b", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120195](https://github.com/kubernetes/kubernetes/pull/120195), [@Ithrael](https://github.com/Ithrael)) [SIG CLI and Node]", + "author": "Ithrael", + "author_url": "https://github.com/Ithrael", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120195", + "pr_number": 120195, + "areas": [ + "kubelet", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "cli" + ], + "duplicate": true, + "do_not_publish": true + }, + "120198": { + "commit": "34b85c593d13168edee426c63e97dbfbc760395b", + "text": "`kubeadm`: updated warning message when swap space is detected. When swap is\nactive on Linux, `kubeadm` explains that swap is supported for cgroup v2 only and\nis beta but disabled by default.", + "markdown": "`kubeadm`: updated warning message when swap space is detected. When swap is\n active on Linux, `kubeadm` explains that swap is supported for cgroup v2 only and\n is beta but disabled by default. ([#120198](https://github.com/kubernetes/kubernetes/pull/120198), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120198", + "pr_number": 120198, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "120204": { + "commit": "a3374795e4e2b0863193f1fd5bb39b6d9440a0ba", + "text": "Marked the `onPodConditions` field as optional in `Job`'s pod failure policy.", + "markdown": "Marked the `onPodConditions` field as optional in `Job`'s pod failure policy. ([#120204](https://github.com/kubernetes/kubernetes/pull/120204), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120204", + "pr_number": 120204, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "120212": { + "commit": "6eca14208217ebb72fc4e690357b4c41ddd22436", + "text": "If a watch with the `progressNotify` option set is to be created, and the registry hasn't provided a `newFunc`, an error is now returned.", + "markdown": "If a watch with the `progressNotify` option set is to be created, and the registry hasn't provided a `newFunc`, an error is now returned. ([#120212](https://github.com/kubernetes/kubernetes/pull/120212), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120212", + "pr_number": 120212, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "120213": { + "commit": "2d5b6f16f50633263a40b7a83060c93ad07af040", + "text": "`scheduler`: handling of unschedulable pods because a `ResourceClass` is missing\nis a bit more efficient and no longer relies on periodic retries.", + "markdown": "`scheduler`: handling of unschedulable pods because a `ResourceClass` is missing\n is a bit more efficient and no longer relies on periodic retries. ([#120213](https://github.com/kubernetes/kubernetes/pull/120213), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120213", + "pr_number": 120213, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "node", + "testing" + ], + "duplicate": true + }, + "120228": { + "commit": "973ea2d376267d2fe1017f2f1dca94390dab702d", + "text": "`kubeadm`: promoted feature gate `EtcdLearnerMode` to `beta`. Learner mode for\njoining `etcd` members is now enabled by default.", + "markdown": "`kubeadm`: promoted feature gate `EtcdLearnerMode` to `beta`. Learner mode for\n joining `etcd` members is now enabled by default. ([#120228](https://github.com/kubernetes/kubernetes/pull/120228), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/3614-etcd-learner-mode", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120228", + "pr_number": 120228, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "120233": { + "commit": "36352ba30688c574a9d3afd9c5187d7909735f33", + "text": "Promoted `ServiceNodePortStaticSubrange` to stable and lock to default.", + "markdown": "Promoted `ServiceNodePortStaticSubrange` to stable and lock to default. ([#120233](https://github.com/kubernetes/kubernetes/pull/120233), [@xuzhenglun](https://github.com/xuzhenglun))", + "author": "xuzhenglun", + "author_url": "https://github.com/xuzhenglun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120233", + "pr_number": 120233, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "120248": { + "commit": "43e617f2521e9f52156aba9822245a2b5eb773f1", + "text": "Removed the `GRPCContainerProbe` feature gate (the feature is stable and always enabled).", + "markdown": "Removed the `GRPCContainerProbe` feature gate (the feature is stable and always enabled). ([#120248](https://github.com/kubernetes/kubernetes/pull/120248), [@pacoxu](https://github.com/pacoxu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2727-grpc-probe/README.md", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120248", + "pr_number": 120248, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "api-machinery", + "cli" + ], + "duplicate": true + }, + "120249": { + "commit": "bb16282831f8f5b945d18ea857b7b342fc5de2c1", + "text": "Removed the `DownwardAPIHugePages` feature gate (the feature is stable and always enabled)", + "markdown": "Removed the `DownwardAPIHugePages` feature gate (the feature is stable and always enabled) ([#120249](https://github.com/kubernetes/kubernetes/pull/120249), [@pacoxu](https://github.com/pacoxu)) [SIG Apps and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/b5b3585/keps/sig-node/2053-downward-api-hugepages/README.md", + "type": "KEP" + } + ], + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120249", + "pr_number": 120249, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "apps" + ], + "duplicate": true + }, + "120250": { + "commit": "887ac275a2cfb6030df80bbe3066609336fa220a", + "text": "NONE", + "markdown": "NONE ([#120250](https://github.com/kubernetes/kubernetes/pull/120250), [@liyuerich](https://github.com/liyuerich)) [SIG API Machinery and Testing]", + "author": "liyuerich", + "author_url": "https://github.com/liyuerich", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120250", + "pr_number": 120250, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "120255": { + "commit": "58ce7342230a943b637ff3d129eb3774d5a68cbb", + "text": "`--sync-frequency` will not affect the update interval of volumes that use `ConfigMaps`\nor `Secrets` when the `configMapAndSecretChangeDetectionStrategy` is set to `Cache`.\nThe update interval is only affected by `node.alpha.kubernetes.io/ttl` node annotation.\"", + "markdown": "`--sync-frequency` will not affect the update interval of volumes that use `ConfigMaps`\n or `Secrets` when the `configMapAndSecretChangeDetectionStrategy` is set to `Cache`.\n The update interval is only affected by `node.alpha.kubernetes.io/ttl` node annotation.\" ([#120255](https://github.com/kubernetes/kubernetes/pull/120255), [@likakuli](https://github.com/likakuli))", + "author": "likakuli", + "author_url": "https://github.com/likakuli", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120255", + "pr_number": 120255, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "120257": { + "commit": "b32c6ff74906f47d9db6052f0e58808d644cfac3", + "text": "Promoted `PodHostIPs` condition to `beta`.", + "markdown": "Promoted `PodHostIPs` condition to `beta`. ([#120257](https://github.com/kubernetes/kubernetes/pull/120257), [@wzshiming](https://github.com/wzshiming))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2681", + "type": "KEP" + } + ], + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120257", + "pr_number": 120257, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "120269": { + "commit": "2c300ef6b02c3ce6fca28356a16e3aed45ddcba3", + "text": "Fixed a bug around restarting init containers in the right order relative to normal containers with `SidecarContainers` feature enabled.", + "markdown": "Fixed a bug around restarting init containers in the right order relative to normal containers with `SidecarContainers` feature enabled. ([#120269](https://github.com/kubernetes/kubernetes/pull/120269), [@gjkim42](https://github.com/gjkim42))", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120269", + "pr_number": 120269, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "120274": { + "commit": "cf54acce5c24e5bbcb0f6afaebaf9738ff6c21a6", + "text": "The `kube-proxy` command-line documentation was updated to clarify that\n`--bind-address` does not actually have anything to do with binding to an\naddress, and you probably don't actually want to be using it.", + "markdown": "The `kube-proxy` command-line documentation was updated to clarify that\n `--bind-address` does not actually have anything to do with binding to an\n address, and you probably don't actually want to be using it. ([#120274](https://github.com/kubernetes/kubernetes/pull/120274), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120274", + "pr_number": 120274, + "areas": [ + "kube-proxy", + "code-generation" + ], + "kinds": [ + "documentation", + "cleanup", + "api-change" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "120275": { + "commit": "470fe396bde65a93e08321053e904643ae7bddbd", + "text": "The `CloudDualStackNodeIPs` feature is now `beta`, meaning that when using\nan external cloud provider that has been updated to support the feature,\nyou can pass comma-separated dual-stack `--node-ips` to `kubelet` and have\nthe cloud provider take both IPs into account.", + "markdown": "The `CloudDualStackNodeIPs` feature is now `beta`, meaning that when using\n an external cloud provider that has been updated to support the feature,\n you can pass comma-separated dual-stack `--node-ips` to `kubelet` and have\n the cloud provider take both IPs into account. ([#120275](https://github.com/kubernetes/kubernetes/pull/120275), [@danwinship](https://github.com/danwinship))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3705", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120275", + "pr_number": 120275, + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "120279": { + "commit": "95c6295636adaeb06d47b02ff4c705b6aa106606", + "text": "Makefile and scripts now respect `GOTOOLCHAIN` and otherwise ensure `./.go-version` is used.", + "markdown": "Makefile and scripts now respect `GOTOOLCHAIN` and otherwise ensure `./.go-version` is used. ([#120279](https://github.com/kubernetes/kubernetes/pull/120279), [@BenTheElder](https://github.com/BenTheElder))", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120279", + "pr_number": 120279, + "kinds": [ + "cleanup" + ], + "sigs": [ + "release" + ] + }, + "120281": { + "commit": "debe30de70b2c9c437e6c36309b4919e14830c11", + "text": "Fixed a `v1.28` regression around restarting init containers in the right order relative to normal containers.", + "markdown": "Fixed a `v1.28` regression around restarting init containers in the right order relative to normal containers. ([#120281](https://github.com/kubernetes/kubernetes/pull/120281), [@gjkim42](https://github.com/gjkim42))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", + "type": "KEP" + } + ], + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120281", + "pr_number": 120281, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "120285": { + "commit": "751058c0a4e77c25f9e754550327a6fd9097a42f", + "text": "NONE", + "markdown": "NONE ([#120285](https://github.com/kubernetes/kubernetes/pull/120285), [@wlq1212](https://github.com/wlq1212)) [SIG Cloud Provider, Node and Testing]", + "author": "wlq1212", + "author_url": "https://github.com/wlq1212", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120285", + "pr_number": 120285, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true + }, + "120312": { + "commit": "921fd1b6fa5e908af9a3a1ff4aec9ab141a1b047", + "text": "Added automatic download of the CNI binary in `local-up-cluster.sh`, facilitating local debugging.", + "markdown": "Added automatic download of the CNI binary in `local-up-cluster.sh`, facilitating local debugging. ([#120312](https://github.com/kubernetes/kubernetes/pull/120312), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120312", + "pr_number": 120312, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true + }, + "120327": { + "commit": "34aaf2b972c95c7a3591d8d49c798dba348ee5c9", + "text": "Fixed a `v1.28` regression handling negative index json patches.", + "markdown": "Fixed a `v1.28` regression handling negative index json patches. ([#120327](https://github.com/kubernetes/kubernetes/pull/120327), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120327", + "pr_number": 120327, + "areas": [ + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "dependency" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true + }, + "120330": { + "commit": "a06e5a73073c1b2a4feaeac4655a8bb93ce91fc1", + "text": "`NodeStageVolume` calls will now be retried if the CSI node driver is not running.", + "markdown": "`NodeStageVolume` calls will now be retried if the CSI node driver is not running. ([#120330](https://github.com/kubernetes/kubernetes/pull/120330), [@rohitssingh](https://github.com/rohitssingh))", + "author": "rohitssingh", + "author_url": "https://github.com/rohitssingh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120330", + "pr_number": 120330, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "storage", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "120334": { + "commit": "41689233b4be7522c1f8f6302c78127d54706423", + "text": "Fixed a situation when, sometimes, the scheduler incorrectly placed a pod in the `unschedulable` queue instead of the `backoff` queue. This happened when some plugin previously declared the pod as `unschedulable` and then in a later attempt encounters some other error. Scheduling of that pod then got delayed by up to five minutes, after which periodic flushing moved the pod back into the `active` queue.", + "markdown": "Fixed a situation when, sometimes, the scheduler incorrectly placed a pod in the `unschedulable` queue instead of the `backoff` queue. This happened when some plugin previously declared the pod as `unschedulable` and then in a later attempt encounters some other error. Scheduling of that pod then got delayed by up to five minutes, after which periodic flushing moved the pod back into the `active` queue. ([#120334](https://github.com/kubernetes/kubernetes/pull/120334), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120334", + "pr_number": 120334, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "120336": { + "commit": "73580b2038a25eeecb1de7aa4414a3bbb13474e2", + "text": "Generated `ResourceClaim` names are now more readable because of an additional hyphen before the random suffix (`\u003cpod name\u003e-\u003cclaim name\u003e-\u003crandom suffix\u003e`).", + "markdown": "Generated `ResourceClaim` names are now more readable because of an additional hyphen before the random suffix (`\u003cpod name\u003e-\u003cclaim name\u003e-\u003crandom suffix\u003e`). ([#120336](https://github.com/kubernetes/kubernetes/pull/120336), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120336", + "pr_number": 120336, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "apps" + ], + "duplicate": true + }, + "120338": { + "commit": "2b5d2cf910fd376a42ba9de5e4b52a53b58f9397", + "text": "`k8s.io/dynamic-resource-allocation/controller:` `UnsuitableNodes` can now handle a mix of allocated and unallocated claims correctly.", + "markdown": "`k8s.io/dynamic-resource-allocation/controller:` `UnsuitableNodes` can now handle a mix of allocated and unallocated claims correctly. ([#120338](https://github.com/kubernetes/kubernetes/pull/120338), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120338", + "pr_number": 120338, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "120352": { + "commit": "9a0c389fd73fb32f834f91170c8c3894f9f0ca1a", + "text": "Updated `distroless-iptables` to use `registry.k8s.io/build-image/distroless-iptables:v0.3.1`.", + "markdown": "Updated `distroless-iptables` to use `registry.k8s.io/build-image/distroless-iptables:v0.3.1`. ([#120352](https://github.com/kubernetes/kubernetes/pull/120352), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120352", + "pr_number": 120352, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing", + "release" + ], + "duplicate": true + }, + "120354": { + "commit": "5d03ce7ae44a8dc9638b8b56c6aa552128f7c05f", + "text": "`kube-proxy`: Added an option/flag for configuring the `nf_conntrack_tcp_be_liberal` sysctl (in the kernel's netfilter conntrack subsystem). When enabled, `kube-proxy` will not install the `DROP` rule for invalid conntrack states, which currently breaks users of asymmetric routing.", + "markdown": "`kube-proxy`: Added an option/flag for configuring the `nf_conntrack_tcp_be_liberal` sysctl (in the kernel's netfilter conntrack subsystem). When enabled, `kube-proxy` will not install the `DROP` rule for invalid conntrack states, which currently breaks users of asymmetric routing. ([#120354](https://github.com/kubernetes/kubernetes/pull/120354), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120354", + "pr_number": 120354, + "areas": [ + "kube-proxy", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "120371": { + "commit": "ee474e6ec5f72cf6870343ff8f641f9665808934", + "text": "`kube-controller-manager` help now includes controllers behind a feature gate in `--controllers` flag.", + "markdown": "`kube-controller-manager` help now includes controllers behind a feature gate in `--controllers` flag. ([#120371](https://github.com/kubernetes/kubernetes/pull/120371), [@atiratree](https://github.com/atiratree))", + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120371", + "pr_number": 120371, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "120375": { + "commit": "0ee315b94cd8d0e27dc1acf0cdb637423de789c2", + "text": "Fixed `kube-proxy` panicking on exit when the `Node` object changed its `PodCIDR`.", + "markdown": "Fixed `kube-proxy` panicking on exit when the `Node` object changed its `PodCIDR`. ([#120375](https://github.com/kubernetes/kubernetes/pull/120375), [@pegasas](https://github.com/pegasas))", + "author": "pegasas", + "author_url": "https://github.com/pegasas", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120375", + "pr_number": 120375, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "120380": { + "commit": "a919079ff3132a070909e9286674b0b0d8672377", + "text": "`kubectl` will not print events if `--show-events=false` argument is passed to\ndescribe PVC subcommand.", + "markdown": "`kubectl` will not print events if `--show-events=false` argument is passed to\n describe PVC subcommand. ([#120380](https://github.com/kubernetes/kubernetes/pull/120380), [@MaGaroo](https://github.com/MaGaroo))", + "author": "MaGaroo", + "author_url": "https://github.com/MaGaroo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120380", + "pr_number": 120380, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "120392": { + "commit": "1bfced58488ece818a651e2c6269b200a21d0812", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120392](https://github.com/kubernetes/kubernetes/pull/120392), [@dims](https://github.com/dims)) [SIG Architecture and Cloud Provider]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120392", + "pr_number": 120392, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true + }, + "120397": { + "commit": "441d4b54aec4eebbe55d9c3519691eb9833fa486", + "text": "NONE", + "markdown": "NONE ([#120397](https://github.com/kubernetes/kubernetes/pull/120397), [@ty-dc](https://github.com/ty-dc)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node, Scheduling, Storage and Testing]", + "author": "ty-dc", + "author_url": "https://github.com/ty-dc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120397", + "pr_number": 120397, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "network", + "scheduling", + "storage", + "node", + "api-machinery", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "120398": { + "commit": "3eca0a5f7868f335aea65f455f6ca767a5f9f065", + "text": "Fixed an issue where `StatefulSet` might not restart a pod after eviction or node failure.", + "markdown": "Fixed an issue where `StatefulSet` might not restart a pod after eviction or node failure. ([#120398](https://github.com/kubernetes/kubernetes/pull/120398), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", + "author": "aleksandra-malinowska", + "author_url": "https://github.com/aleksandra-malinowska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120398", + "pr_number": 120398, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "120400": { + "commit": "5ff79611d5cb4a55665ef907f346a34ab593b807", + "text": "`cluster-bootstrap`: improved the security of the functions responsible for generation and validation of bootstrap tokens.", + "markdown": "`cluster-bootstrap`: improved the security of the functions responsible for generation and validation of bootstrap tokens. ([#120400](https://github.com/kubernetes/kubernetes/pull/120400), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120400", + "pr_number": 120400, + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle", + "security" + ], + "duplicate": true + }, + "120412": { + "commit": "abb74c7afa40c88e2ee043d2673533f482eb2df6", + "text": "`kube-proxy` will only install the `DROP` rules for invalid `conntrack` states if\nthe `nf_conntrack_tcp_be_liberal` is not set.", + "markdown": "`kube-proxy` will only install the `DROP` rules for invalid `conntrack` states if\n the `nf_conntrack_tcp_be_liberal` is not set. ([#120412](https://github.com/kubernetes/kubernetes/pull/120412), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120412", + "pr_number": 120412, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug", + "cleanup", + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "duplicate_kind": true + }, + "120413": { + "commit": "a7f9e7038468ba0a5e3baecca5629fe68cdf171c", + "text": "Fixed a `v1.28` regression in scheduler: a pod with concurrent events could incorrectly get moved to the unschedulable queue where it could get stuck until the next periodic purging after 5 minutes, if there was no other event for it.", + "markdown": "Fixed a `v1.28` regression in scheduler: a pod with concurrent events could incorrectly get moved to the unschedulable queue where it could get stuck until the next periodic purging after 5 minutes, if there was no other event for it. ([#120413](https://github.com/kubernetes/kubernetes/pull/120413), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120413", + "pr_number": 120413, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "120416": { + "commit": "68d55bc4fb441971a1200f390012b245250ad572", + "text": "The `--interactive` flag in `kubectl delete` is now visible to all users by default.", + "markdown": "The `--interactive` flag in `kubectl delete` is now visible to all users by default. ([#120416](https://github.com/kubernetes/kubernetes/pull/120416), [@ardaguclu](https://github.com/ardaguclu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3895", + "type": "KEP" + } + ], + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120416", + "pr_number": 120416, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "120427": { + "commit": "710dceded51d5cf65bc27bca0b0c96f05909b65b", + "text": "Listed the pods using `\u003cPVC\u003e` as an ephemeral storage volume in \"Used by:\" part of the output of `kubectl describe pvc \u003cPVC\u003e` command.", + "markdown": "Listed the pods using `\u003cPVC\u003e` as an ephemeral storage volume in \"Used by:\" part of the output of `kubectl describe pvc \u003cPVC\u003e` command. ([#120427](https://github.com/kubernetes/kubernetes/pull/120427), [@MaGaroo](https://github.com/MaGaroo))", + "author": "MaGaroo", + "author_url": "https://github.com/MaGaroo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120427", + "pr_number": 120427, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "120428": { + "commit": "6c578bc982f37d9431d7fc586a9123a0dd19c468", + "text": "DRA: when the scheduler had to deallocate a claim after a node became unsuitable for a pod, it might have needed more attempts than really necessary. This was fixed by first disabling allocations.", + "markdown": "DRA: when the scheduler had to deallocate a claim after a node became unsuitable for a pod, it might have needed more attempts than really necessary. This was fixed by first disabling allocations. ([#120428](https://github.com/kubernetes/kubernetes/pull/120428), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120428", + "pr_number": 120428, + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "scheduling", + "node" + ], + "duplicate": true, + "duplicate_kind": true + }, + "120433": { + "commit": "c0a38d01aaa2564125bd3496ed6d001f8ce6783d", + "text": "Changed the `KMSv2KDF` feature gate to be enabled by default.", + "markdown": "Changed the `KMSv2KDF` feature gate to be enabled by default. ([#120433](https://github.com/kubernetes/kubernetes/pull/120433), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing]", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120433", + "pr_number": 120433, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "120438": { + "commit": "b343878daad3c575d4b51188b62b9d07f1a59839", + "text": "Added apiserver identity to the following metrics: \n`apiserver_envelope_encryption_key_id_hash_total`, `apiserver_envelope_encryption_key_id_hash_last_timestamp_seconds`, `apiserver_envelope_encryption_key_id_hash_status_last_timestamp_seconds`, `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_success_total`, `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`.\n\nFixed bug to surface events for the following metrics: `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`, `apiserver_encryption_config_controller_automatic_reload_success_total`.", + "markdown": "Added apiserver identity to the following metrics: \n `apiserver_envelope_encryption_key_id_hash_total`, `apiserver_envelope_encryption_key_id_hash_last_timestamp_seconds`, `apiserver_envelope_encryption_key_id_hash_status_last_timestamp_seconds`, `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_success_total`, `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`.\n \n Fixed bug to surface events for the following metrics: `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`, `apiserver_encryption_config_controller_automatic_reload_success_total`. ([#120438](https://github.com/kubernetes/kubernetes/pull/120438), [@ritazh](https://github.com/ritazh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", + "type": "KEP" + } + ], + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120438", + "pr_number": 120438, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true + }, + "120448": { + "commit": "9f3cfbbcdbc8971dddfd7a6ba2c8eff10b0c9c82", + "text": "Changed behavior of `kube-proxy` by allowing to set `sysctl` values lower than the existing one.", + "markdown": "Changed behavior of `kube-proxy` by allowing to set `sysctl` values lower than the existing one. ([#120448](https://github.com/kubernetes/kubernetes/pull/120448), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120448", + "pr_number": 120448, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "120461": { + "commit": "a5ff0324a94194d5b49399a71705e3e1b05fbb5f", + "text": "Fixed a bug where the device resources allocated to an init container, with `containerRestartPolicy` of `Always`, were erroneously reused by a regular container.", + "markdown": "Fixed a bug where the device resources allocated to an init container, with `containerRestartPolicy` of `Always`, were erroneously reused by a regular container. ([#120461](https://github.com/kubernetes/kubernetes/pull/120461), [@gjkim42](https://github.com/gjkim42))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", + "type": "KEP" + } + ], + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120461", + "pr_number": 120461, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "120474": { + "commit": "9482248aa93f12b024cc8edc0d97a71f774aad2f", + "text": "Registered metric `apiserver_request_body_size_bytes` to track the size distribution of requests by `resource` and `verb`.", + "markdown": "Registered metric `apiserver_request_body_size_bytes` to track the size distribution of requests by `resource` and `verb`. ([#120474](https://github.com/kubernetes/kubernetes/pull/120474), [@YaoC](https://github.com/YaoC)) [SIG API Machinery and Instrumentation]", + "author": "YaoC", + "author_url": "https://github.com/YaoC", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120474", + "pr_number": 120474, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "120490": { + "commit": "bdedc21fd9579d2838f1e330bb4a93d4cb8b5cbd", + "text": "Added `apiserver_watch_list_duration_seconds` metrics which will measure response latency distribution in seconds for watchlist requests broken by group, version, resource and scope.", + "markdown": "Added `apiserver_watch_list_duration_seconds` metrics which will measure response latency distribution in seconds for watchlist requests broken by group, version, resource and scope. ([#120490](https://github.com/kubernetes/kubernetes/pull/120490), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120490", + "pr_number": 120490, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "120492": { + "commit": "b8ef1a0791711f96e8dea05ad9ea026d351d67f3", + "text": "Service Controller: load balancer hosts will now update after node's `ProviderID` is\nupdated.", + "markdown": "Service Controller: load balancer hosts will now update after node's `ProviderID` is\n updated. ([#120492](https://github.com/kubernetes/kubernetes/pull/120492), [@cezarygerard](https://github.com/cezarygerard))", + "author": "cezarygerard", + "author_url": "https://github.com/cezarygerard", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120492", + "pr_number": 120492, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "cloud-provider" + ], + "duplicate": true + }, + "120493": { + "commit": "6c39a3724d5ff33564d31d5097704f15852c036f", + "text": "Kubernetes is now built with Go `1.21.1`.", + "markdown": "Kubernetes is now built with Go `1.21.1`. ([#120493](https://github.com/kubernetes/kubernetes/pull/120493), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120493", + "pr_number": 120493, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "120503": { + "commit": "c40bc8c7d896ac14dee79571ba1ec143ca239401", + "text": "Renamed `apiserver_request_body_sizes` metric to `apiserver_request_body_size_bytes`.", + "markdown": "Renamed `apiserver_request_body_sizes` metric to `apiserver_request_body_size_bytes`. ([#120503](https://github.com/kubernetes/kubernetes/pull/120503), [@dgrisonnet](https://github.com/dgrisonnet))", + "author": "dgrisonnet", + "author_url": "https://github.com/dgrisonnet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120503", + "pr_number": 120503, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "120513": { + "commit": "10f9d5ce6d4e65a1f0d3ad91ec9ff47150b749e6", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120513](https://github.com/kubernetes/kubernetes/pull/120513), [@devincd](https://github.com/devincd)) [SIG API Machinery]", + "author": "devincd", + "author_url": "https://github.com/devincd", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120513", + "pr_number": 120513, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "120514": { + "commit": "0241da314e0e69817d66313b45a69c19d1ce7327", + "text": "`kubeadm`: improved the logic that checks whether a `systemd` service exists.", + "markdown": "`kubeadm`: improved the logic that checks whether a `systemd` service exists. ([#120514](https://github.com/kubernetes/kubernetes/pull/120514), [@fengxsong](https://github.com/fengxsong))", + "author": "fengxsong", + "author_url": "https://github.com/fengxsong", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120514", + "pr_number": 120514, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "120518": { + "commit": "378866edbaa7eb528cafa0e93e4d1bee26c11245", + "text": "Fixed bug that kubelet resource metric `container_start_time_seconds` had timestamp equal to container start time.", + "markdown": "Fixed bug that kubelet resource metric `container_start_time_seconds` had timestamp equal to container start time. ([#120518](https://github.com/kubernetes/kubernetes/pull/120518), [@saschagrunert](https://github.com/saschagrunert)) [SIG Instrumentation, Node and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120518", + "pr_number": 120518, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "120521": { + "commit": "4c0d37e767dcfb0898a465dfdfa0475ffb68697f", + "text": "`kubeadm`: removed `system:masters` organization from `apiserver-etcd-client`\ncertificate.", + "markdown": "`kubeadm`: removed `system:masters` organization from `apiserver-etcd-client`\n certificate. ([#120521](https://github.com/kubernetes/kubernetes/pull/120521), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120521", + "pr_number": 120521, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "120524": { + "commit": "d7aeb7f853e822071041bdbada7fcbe09d15062d", + "text": "KCM specific args can be passed with `/cluster` script, without affecting CCM. New variable name: `KUBE_CONTROLLER_MANAGER_TEST_ARGS`.", + "markdown": "KCM specific args can be passed with `/cluster` script, without affecting CCM. New variable name: `KUBE_CONTROLLER_MANAGER_TEST_ARGS`. ([#120524](https://github.com/kubernetes/kubernetes/pull/120524), [@jprzychodzen](https://github.com/jprzychodzen)) [SIG Cloud Provider]", + "author": "jprzychodzen", + "author_url": "https://github.com/jprzychodzen", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120524", + "pr_number": 120524, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "bug", + "failing-test", + "regression" + ], + "sigs": [ + "cloud-provider" + ], + "duplicate_kind": true + }, + "120527": { + "commit": "bec95ed57554b167ce413e2de776553a2e366df8", + "text": "Bumped `distroless-iptables` to `0.3.2` based on Go `1.21.1`.", + "markdown": "Bumped `distroless-iptables` to `0.3.2` based on Go `1.21.1`. ([#120527](https://github.com/kubernetes/kubernetes/pull/120527), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120527", + "pr_number": 120527, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + }, + "120534": { + "commit": "5a4e792e06e7c3e235ed81f13f5d795d18cecf4c", + "text": "`dra`: the scheduler plugin now avoids additional scheduling attempts in some cases by falling back to SSA after a conflict.", + "markdown": "`dra`: the scheduler plugin now avoids additional scheduling attempts in some cases by falling back to SSA after a conflict. ([#120534](https://github.com/kubernetes/kubernetes/pull/120534), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120534", + "pr_number": 120534, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "120542": { + "commit": "fe84992651335ba6dd66e16754e8e416e5144b59", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120542](https://github.com/kubernetes/kubernetes/pull/120542), [@alvaroaleman](https://github.com/alvaroaleman)) [SIG API Machinery]", + "author": "alvaroaleman", + "author_url": "https://github.com/alvaroaleman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120542", + "pr_number": 120542, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "do_not_publish": true + }, + "120546": { + "commit": "098d4c7b9ea1c5e6a10960a766c886e53b6e9712", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120546](https://github.com/kubernetes/kubernetes/pull/120546), [@SaumyaBhushan](https://github.com/SaumyaBhushan)) [SIG Cluster Lifecycle]", + "author": "SaumyaBhushan", + "author_url": "https://github.com/SaumyaBhushan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120546", + "pr_number": 120546, + "areas": [ + "kubeadm" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "120549": { + "commit": "35199e42a41f83520e640fbfa9f409516faa7501", + "text": "`kubeadm`: will now use universal deserializer to decode static pod.", + "markdown": "`kubeadm`: will now use universal deserializer to decode static pod. ([#120549](https://github.com/kubernetes/kubernetes/pull/120549), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120549", + "pr_number": 120549, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "120559": { + "commit": "b1161a8ac4594b8da07f4b62b588c019d542c34a", + "text": "e2e framework: retrying after intermittent `apiserver` failures was fixed in `WaitForPodsResponding`", + "markdown": "E2e framework: retrying after intermittent `apiserver` failures was fixed in `WaitForPodsResponding` ([#120559](https://github.com/kubernetes/kubernetes/pull/120559), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120559", + "pr_number": 120559, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "testing" + ], + "duplicate_kind": true + }, + "120562": { + "commit": "5faebe11b47d5e25674ea06ec05d7d9774ea631f", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120562](https://github.com/kubernetes/kubernetes/pull/120562), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG Security]", + "author": "ArkaSaha30", + "author_url": "https://github.com/ArkaSaha30", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120562", + "pr_number": 120562, + "kinds": [ + "feature" + ], + "sigs": [ + "security" + ], + "feature": true, + "do_not_publish": true + }, + "120574": { + "commit": "d393d4e1514711e89b310d4578214c8c383e015c", + "text": "The metrics controlled by the `ComponentSLIs` feature-gate and served at `/metrics/slis` are now GA and unconditionally enabled. The feature-gate will be removed in `v1.31`.", + "markdown": "The metrics controlled by the `ComponentSLIs` feature-gate and served at `/metrics/slis` are now GA and unconditionally enabled. The feature-gate will be removed in `v1.31`. ([#120574](https://github.com/kubernetes/kubernetes/pull/120574), [@logicalhan](https://github.com/logicalhan))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3466", + "type": "KEP" + } + ], + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120574", + "pr_number": 120574, + "areas": [ + "kubelet", + "kube-proxy", + "apiserver", + "cloudprovider", + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "scheduling", + "node", + "api-machinery", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "120577": { + "commit": "57768fd3d05e83970929278504aae8692ab06c8b", + "text": "Set the resolution for the `job_controller_job_sync_duration_seconds` metric from `4ms` to `1min`.", + "markdown": "Set the resolution for the `job_controller_job_sync_duration_seconds` metric from `4ms` to `1min`. ([#120577](https://github.com/kubernetes/kubernetes/pull/120577), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120577", + "pr_number": 120577, + "areas": [ + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "instrumentation" + ], + "duplicate": true + }, + "120583": { + "commit": "e897483713a94c512222683d36bc28df550c27ce", + "text": "Removed `/livez` livezchecks for KMS v1 and v2 to ensure KMS health does not cause `kube-apiserver` restart. KMS health checks are still in place as a healthz and readiness checks.", + "markdown": "Removed `/livez` livezchecks for KMS v1 and v2 to ensure KMS health does not cause `kube-apiserver` restart. KMS health checks are still in place as a healthz and readiness checks. ([#120583](https://github.com/kubernetes/kubernetes/pull/120583), [@ritazh](https://github.com/ritazh))", + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120583", + "pr_number": 120583, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "120595": { + "commit": "d3559bf77f7f41249c20f27af2e3ec5f3b07ac55", + "text": "Fixed attaching volumes after detach errors. Now volumes that failed to detach are not treated as attached. Kubernetes will make sure they are fully attached before they can be used by pods.", + "markdown": "Fixed attaching volumes after detach errors. Now volumes that failed to detach are not treated as attached. Kubernetes will make sure they are fully attached before they can be used by pods. ([#120595](https://github.com/kubernetes/kubernetes/pull/120595), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120595", + "pr_number": 120595, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "apps" + ], + "duplicate": true + }, + "120599": { + "commit": "5f8fc30b2c01735d8aaa22ef5618b0b424c228e9", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120599](https://github.com/kubernetes/kubernetes/pull/120599), [@srivastav-abhishek](https://github.com/srivastav-abhishek)) [SIG Apps]", + "author": "srivastav-abhishek", + "author_url": "https://github.com/srivastav-abhishek", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120599", + "pr_number": 120599, + "kinds": [ + "bug", + "flake" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "120616": { + "commit": "6c64593ba17e6e1fe81f75a92d91705a41637f3b", + "text": "Added support for split image filesystem in kubelet.", + "markdown": "Added support for split image filesystem in kubelet. ([#120616](https://github.com/kubernetes/kubernetes/pull/120616), [@kannon92](https://github.com/kannon92))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4191", + "type": "KEP" + } + ], + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120616", + "pr_number": 120616, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "120620": { + "commit": "ac6f7071554454eb34209753a30b418d4d9997bd", + "text": "Sidecar termination is now serialized and each sidecar container will receive a `SIGTERM` after all main containers and later starting sidecar containers have terminated.", + "markdown": "Sidecar termination is now serialized and each sidecar container will receive a `SIGTERM` after all main containers and later starting sidecar containers have terminated. ([#120620](https://github.com/kubernetes/kubernetes/pull/120620), [@tzneal](https://github.com/tzneal))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/753", + "type": "KEP" + }, + { + "description": "[KEP Update]", + "url": "https://github.com/kubernetes/enhancements/pull/4183", + "type": "KEP" + } + ], + "author": "tzneal", + "author_url": "https://github.com/tzneal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120620", + "pr_number": 120620, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "120623": { + "commit": "716b8b9d83a463030d211b4363c9c760304653cb", + "text": "Fixed a bug where `Services` using finalizers may hold onto `ClusterIP` and/or `NodePort` allocated resources for longer than expected if the finalizer is removed using the status subresource.", + "markdown": "Fixed a bug where `Services` using finalizers may hold onto `ClusterIP` and/or `NodePort` allocated resources for longer than expected if the finalizer is removed using the status subresource. ([#120623](https://github.com/kubernetes/kubernetes/pull/120623), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120623", + "pr_number": 120623, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "120627": { + "commit": "6a4f08e7e62404e93145f789fa66cfe7181f4a4a", + "text": "`PersistentVolumeLastPhaseTransitionTime` is now beta and enabled by default.", + "markdown": "`PersistentVolumeLastPhaseTransitionTime` is now beta and enabled by default. ([#120627](https://github.com/kubernetes/kubernetes/pull/120627), [@RomanBednar](https://github.com/RomanBednar))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3762", + "type": "external" + } + ], + "author": "RomanBednar", + "author_url": "https://github.com/RomanBednar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120627", + "pr_number": 120627, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true, + "duplicate_kind": true + }, + "120649": { + "commit": "355feb21fdec98a5f6baf0927edcd48a3a5612b9", + "text": "Fixed a bug in the cronjob controller where already created jobs might be missing from the status.", + "markdown": "Fixed a bug in the cronjob controller where already created jobs might be missing from the status. ([#120649](https://github.com/kubernetes/kubernetes/pull/120649), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120649", + "pr_number": 120649, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "120663": { + "commit": "074a8b00840e85cc95fd83b1825b14ab21ad09c4", + "text": "Promoted plugin subcommand resolution feature to `beta`.", + "markdown": "Promoted plugin subcommand resolution feature to `beta`. ([#120663](https://github.com/kubernetes/kubernetes/pull/120663), [@ardaguclu](https://github.com/ardaguclu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3638", + "type": "KEP" + } + ], + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120663", + "pr_number": 120663, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "120678": { + "commit": "801d460296c79d6409bd08337586cecf730bdd7e", + "text": "Fixed `systemLogQuery` service name matching.", + "markdown": "Fixed `systemLogQuery` service name matching. ([#120678](https://github.com/kubernetes/kubernetes/pull/120678), [@rothgar](https://github.com/rothgar))", + "documentation": [ + { + "description": "[Usage]: [", + "url": "https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#log-query]", + "type": "official" + } + ], + "author": "rothgar", + "author_url": "https://github.com/rothgar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120678", + "pr_number": 120678, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "120680": { + "commit": "f82670d8ec1f5a1589a9a91da5af73446b6f1b1f", + "text": "Metric buckets for `pod_start_duration_seconds` were changed to `{0.5, 1, 2, 3, 4, 5, 6, 8, 10, 20, 30, 45, 60, 120, 180, 240, 300, 360, 480, 600, 900, 1200, 1800, 2700, 3600}`.", + "markdown": "Metric buckets for `pod_start_duration_seconds` were changed to `{0.5, 1, 2, 3, 4, 5, 6, 8, 10, 20, 30, 45, 60, 120, 180, 240, 300, 360, 480, 600, 900, 1200, 1800, 2700, 3600}`. ([#120680](https://github.com/kubernetes/kubernetes/pull/120680), [@ruiwen-zhao](https://github.com/ruiwen-zhao))", + "author": "ruiwen-zhao", + "author_url": "https://github.com/ruiwen-zhao", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120680", + "pr_number": 120680, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "instrumentation" + ], + "duplicate": true + }, + "120682": { + "commit": "fe21e4d749392becd092bb68ed5f86e789138ba5", + "text": "`kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate is now `beta` and enabled by default. When enabled, legacy auto-generated service account token secrets are auto-labeled with a `kubernetes.io/legacy-token-invalid-since` label if the credentials have not been used in the time specified by `--legacy-service-account-token-clean-up-period` (defaulting to one year), **and** are referenced from the `.secrets` list of a ServiceAccount object, **and** are not referenced from pods. This label causes the authentication layer to reject use of the credentials. After being labeled as invalid, if the time specified by `--legacy-service-account-token-clean-up-period` (defaulting to one year) passes without the credential being used, the secret is automatically deleted. Secrets labeled as invalid which have not been auto-deleted yet can be re-activated by removing the `kubernetes.io/legacy-token-invalid-since` label.", + "markdown": "`kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate is now `beta` and enabled by default. When enabled, legacy auto-generated service account token secrets are auto-labeled with a `kubernetes.io/legacy-token-invalid-since` label if the credentials have not been used in the time specified by `--legacy-service-account-token-clean-up-period` (defaulting to one year), **and** are referenced from the `.secrets` list of a ServiceAccount object, **and** are not referenced from pods. This label causes the authentication layer to reject use of the credentials. After being labeled as invalid, if the time specified by `--legacy-service-account-token-clean-up-period` (defaulting to one year) passes without the credential being used, the secret is automatically deleted. Secrets labeled as invalid which have not been auto-deleted yet can be re-activated by removing the `kubernetes.io/legacy-token-invalid-since` label. ([#120682](https://github.com/kubernetes/kubernetes/pull/120682), [@yt2985](https://github.com/yt2985))", + "author": "yt2985", + "author_url": "https://github.com/yt2985", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120682", + "pr_number": 120682, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "120707": { + "commit": "07d2da75bd6b5a0bd9b4618889ba1a42ad192b03", + "text": "Client-side apply will now use OpenAPI `v3` by default.", + "markdown": "Client-side apply will now use OpenAPI `v3` by default. ([#120707](https://github.com/kubernetes/kubernetes/pull/120707), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120707", + "pr_number": 120707, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cli" + ], + "feature": true, + "duplicate": true + }, + "120715": { + "commit": "960431407c7c8c812f8ded0fad9fe7bd7dd93de5", + "text": "Fixed a bug where the memory resources allocated to an init container, with containerRestartPolicy of `Always`, were erroneously reused by a regular container.", + "markdown": "Fixed a bug where the memory resources allocated to an init container, with containerRestartPolicy of `Always`, were erroneously reused by a regular container. ([#120715](https://github.com/kubernetes/kubernetes/pull/120715), [@gjkim42](https://github.com/gjkim42)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", + "type": "KEP" + } + ], + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120715", + "pr_number": 120715, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "120723": { + "commit": "f1703405243e6e6332d4b1a68d65bfcdad66bc05", + "text": "Fixed issue with incremental id generation for `loadbalancer` and `endpoint` in `kubeproxy` mock test framework.", + "markdown": "Fixed issue with incremental id generation for `loadbalancer` and `endpoint` in `kubeproxy` mock test framework. ([#120723](https://github.com/kubernetes/kubernetes/pull/120723), [@princepereira](https://github.com/princepereira))", + "author": "princepereira", + "author_url": "https://github.com/princepereira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120723", + "pr_number": 120723, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true + }, + "120729": { + "commit": "f936f69cf994146650c287a95fa436d1d7352835", + "text": "`client-go`: `k8s.io/client-go/tools` events and record packages now have new APIs for specifying a context and logger.", + "markdown": "`client-go`: `k8s.io/client-go/tools` events and record packages now have new APIs for specifying a context and logger. ([#120729](https://github.com/kubernetes/kubernetes/pull/120729), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120729", + "pr_number": 120729, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "120731": { + "commit": "568aee16e809fcd8d892547e27775fecef5d5c5b", + "text": "Fixed the issue where pod with ordinal number lower than the rolling partitioning number was being deleted. It was coming up with updated image.", + "markdown": "Fixed the issue where pod with ordinal number lower than the rolling partitioning number was being deleted. It was coming up with updated image. ([#120731](https://github.com/kubernetes/kubernetes/pull/120731), [@adilGhaffarDev](https://github.com/adilGhaffarDev))", + "author": "adilGhaffarDev", + "author_url": "https://github.com/adilGhaffarDev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120731", + "pr_number": 120731, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "120735": { + "commit": "e93e8eac0ef1b26384e5481b67c7d04fe211a243", + "text": "Certain `requestBody` parameters in the OpenAPI `v3` are now correctly marked as required.", + "markdown": "Certain `requestBody` parameters in the OpenAPI `v3` are now correctly marked as required. ([#120735](https://github.com/kubernetes/kubernetes/pull/120735), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120735", + "pr_number": 120735, + "areas": [ + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "120736": { + "commit": "b28622c3e6c51fe936a02503ddf4a49f7aae10aa", + "text": "Fixed an issue where the `vsphere` cloud provider would not trust a certificate if:\n- The issuer of the certificate was unknown (`x509.UnknownAuthorityError`)\n- The requested name did not match the set of authorized names (`x509.HostnameError`)\n- The error surfaced after attempting a connection contained one of the substrings: \"certificate is not trusted\" or \"certificate signed by unknown authority\".", + "markdown": "Fixed an issue where the `vsphere` cloud provider would not trust a certificate if:\n - The issuer of the certificate was unknown (`x509.UnknownAuthorityError`)\n - The requested name did not match the set of authorized names (`x509.HostnameError`)\n - The error surfaced after attempting a connection contained one of the substrings: \"certificate is not trusted\" or \"certificate signed by unknown authority\". ([#120736](https://github.com/kubernetes/kubernetes/pull/120736), [@MadhavJivrajani](https://github.com/MadhavJivrajani))", + "author": "MadhavJivrajani", + "author_url": "https://github.com/MadhavJivrajani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120736", + "pr_number": 120736, + "areas": [ + "cloudprovider", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "120757": { + "commit": "31c679f65cbf62efec7597133e6d8e78d8473c4d", + "text": "Updated `kube-openapi` to remove invalid defaults: OpenAPI spec no longer includes default of `{}` for certain fields where it did not make sense.", + "markdown": "Updated `kube-openapi` to remove invalid defaults: OpenAPI spec no longer includes default of `{}` for certain fields where it did not make sense. ([#120757](https://github.com/kubernetes/kubernetes/pull/120757), [@alexzielenski](https://github.com/alexzielenski))", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120757", + "pr_number": 120757, + "areas": [ + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true + }, + "120779": { + "commit": "824889c929eaca70fb8a2d5eb811a520170e333a", + "text": "No-op and GC related updates to cluster trust bundles no longer require attest authorization when the `ClusterTrustBundleAttest` plugin is enabled.", + "markdown": "No-op and GC related updates to cluster trust bundles no longer require attest authorization when the `ClusterTrustBundleAttest` plugin is enabled. ([#120779](https://github.com/kubernetes/kubernetes/pull/120779), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120779", + "pr_number": 120779, + "kinds": [ + "bug" + ], + "sigs": [ + "auth" + ] + }, + "120780": { + "commit": "ab13d0b47c790cfcf8b623a10ea08336a458a5b6", + "text": "`kube-apiserver` added:\n- `alpha` support (guarded by the `ServiceAccountTokenJTI` feature gate) for adding a `jti` (JWT ID) claim to service account tokens it issues, adding an `authentication.kubernetes.io/credential-id` audit annotation in audit logs when the tokens are issued, and `authentication.kubernetes.io/credential-id` entry in the extra user info when the token is used to authenticate.\n- `alpha` support (guarded by the `ServiceAccountTokenPodNodeInfo` feature gate) for including the node name (and uid, if the node exists) as additional claims in service account tokens it issues which are bound to pods, and `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` extra user info when the token is used to authenticate.\n- `alpha` support (guarded by the `ServiceAccountTokenNodeBinding` feature gate) for allowing `TokenRequests` that bind tokens directly to nodes, and (guarded by the ServiceAccountTokenNodeBindingValidation feature gate) for validating the node name and uid still exist when the token is used.", + "markdown": "`kube-apiserver` added:\n - `alpha` support (guarded by the `ServiceAccountTokenJTI` feature gate) for adding a `jti` (JWT ID) claim to service account tokens it issues, adding an `authentication.kubernetes.io/credential-id` audit annotation in audit logs when the tokens are issued, and `authentication.kubernetes.io/credential-id` entry in the extra user info when the token is used to authenticate.\n - `alpha` support (guarded by the `ServiceAccountTokenPodNodeInfo` feature gate) for including the node name (and uid, if the node exists) as additional claims in service account tokens it issues which are bound to pods, and `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` extra user info when the token is used to authenticate.\n - `alpha` support (guarded by the `ServiceAccountTokenNodeBinding` feature gate) for allowing `TokenRequests` that bind tokens directly to nodes, and (guarded by the ServiceAccountTokenNodeBindingValidation feature gate) for validating the node name and uid still exist when the token is used. ([#120780](https://github.com/kubernetes/kubernetes/pull/120780), [@munnerz](https://github.com/munnerz))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/4193-bound-service-account-token-improvements", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://github.com/kubernetes/website/pull/43590", + "type": "external" + }, + { + "description": "\"", + "url": "https://kubernetes.default.svc.cluster.local\"", + "type": "external" + }, + { + "description": "\"iss\": \"", + "url": "https://kubernetes.default.svc.cluster.local\",", + "type": "external" + } + ], + "author": "munnerz", + "author_url": "https://github.com/munnerz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120780", + "pr_number": 120780, + "areas": [ + "test", + "apiserver", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "120782": { + "commit": "39697a9f3bff729e4c427887347fcdf095bb583e", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120782](https://github.com/kubernetes/kubernetes/pull/120782), [@PI-Victor](https://github.com/PI-Victor)) [SIG Node]", + "author": "PI-Victor", + "author_url": "https://github.com/PI-Victor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120782", + "pr_number": 120782, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "120784": { + "commit": "05f4099c5f0b2c9768b4b397214cdac4e65703a9", + "text": "Fixed a bug where containers would not start on `cgroupv2` systems where `swap` is disabled.", + "markdown": "Fixed a bug where containers would not start on `cgroupv2` systems where `swap` is disabled. ([#120784](https://github.com/kubernetes/kubernetes/pull/120784), [@elezar](https://github.com/elezar))", + "author": "elezar", + "author_url": "https://github.com/elezar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120784", + "pr_number": 120784, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "120788": { + "commit": "12458285b963937a166458562845fbbc6176e5ce", + "text": "Stopped accepting component configuration for `kube-proxy` and `kubelet` during `kubeadm upgrade plan --config`. This was a legacy behavior that was not well supported for upgrades and could be used only at the plan stage to determine if the configuration for these components stored in the cluster needs manual version migration. In the future, `kubeadm` will attempt alternative component config migration approaches.", + "markdown": "Stopped accepting component configuration for `kube-proxy` and `kubelet` during `kubeadm upgrade plan --config`. This was a legacy behavior that was not well supported for upgrades and could be used only at the plan stage to determine if the configuration for these components stored in the cluster needs manual version migration. In the future, `kubeadm` will attempt alternative component config migration approaches. ([#120788](https://github.com/kubernetes/kubernetes/pull/120788), [@chendave](https://github.com/chendave))", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120788", + "pr_number": 120788, + "areas": [ + "kubeadm" + ], + "kinds": [ + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "action_required": true + }, + "120808": { + "commit": "b47aa1c20e579501cfa69d359a516157b1d5a98d", + "text": "Added options for configuring `nf_conntrack_udp_timeout`, and `nf_conntrack_udp_timeout_stream` variables of netfilter conntrack subsystem.", + "markdown": "Added options for configuring `nf_conntrack_udp_timeout`, and `nf_conntrack_udp_timeout_stream` variables of netfilter conntrack subsystem. ([#120808](https://github.com/kubernetes/kubernetes/pull/120808), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120808", + "pr_number": 120808, + "areas": [ + "kube-proxy", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "120814": { + "commit": "e339e03ff87b30c0521b20fbaa7f8da3d33d98a0", + "text": "Fixed regression with adding aggregated `APIservices` panicking and affected health check introduced in release `v1.28.0`.", + "markdown": "Fixed regression with adding aggregated `APIservices` panicking and affected health check introduced in release `v1.28.0`. ([#120814](https://github.com/kubernetes/kubernetes/pull/120814), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120814", + "pr_number": 120814, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "120825": { + "commit": "801932c012b300abdc3e938d89b3618f6e166f44", + "text": "`kubeadm`: deploying a kubelet that is 3 versions older than the version of `kubeadm` (N-3) is now allowed. This aligns with the recent change made by SIG Architecture that extends the support skew between the control plane and kubelets. Tolerate this new kubelet skew for the commands `init`, `join` and `upgrade`. Note that if the `kubeadm` user applies a control plane version that is older than the `kubeadm` version (N-1 maximum) then the skew between the kubelet and control plane would become a maximum of N-2.", + "markdown": "`kubeadm`: deploying a kubelet that is 3 versions older than the version of `kubeadm` (N-3) is now allowed. This aligns with the recent change made by SIG Architecture that extends the support skew between the control plane and kubelets. Tolerate this new kubelet skew for the commands `init`, `join` and `upgrade`. Note that if the `kubeadm` user applies a control plane version that is older than the `kubeadm` version (N-1 maximum) then the skew between the kubelet and control plane would become a maximum of N-2. ([#120825](https://github.com/kubernetes/kubernetes/pull/120825), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120825", + "pr_number": 120825, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "120827": { + "commit": "04e38b2de8ad16f1e778106c35f6d2cf94799ed4", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120827](https://github.com/kubernetes/kubernetes/pull/120827), [@machine424](https://github.com/machine424)) [SIG API Machinery and Instrumentation]", + "author": "machine424", + "author_url": "https://github.com/machine424", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120827", + "pr_number": 120827, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "do_not_publish": true + }, + "120828": { + "commit": "bb06804e525090e5d85ceffa4d89c961c3dc7d33", + "text": "`kubeadm`: fixed the bug where it always did CRI detection when `--config` was passed, even if it is not required by the subcommand.", + "markdown": "`kubeadm`: fixed the bug where it always did CRI detection when `--config` was passed, even if it is not required by the subcommand. ([#120828](https://github.com/kubernetes/kubernetes/pull/120828), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120828", + "pr_number": 120828, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "120836": { + "commit": "c5cf0ac1889f55ab51749798bec684aed876709d", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#120836](https://github.com/kubernetes/kubernetes/pull/120836), [@jkh52](https://github.com/jkh52)) [SIG API Machinery, Auth and Cloud Provider]", + "author": "jkh52", + "author_url": "https://github.com/jkh52", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120836", + "pr_number": 120836, + "areas": [ + "apiserver", + "cloudprovider", + "provider/gcp", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true + }, + "120843": { + "commit": "e8abe1af8dcb36f65ef7aa7135d4664b3db90e89", + "text": "The `kube-apiserver` will now expose four new metrics to inform about errors on the clusterIP and nodePort allocation logic.", + "markdown": "The `kube-apiserver` will now expose four new metrics to inform about errors on the clusterIP and nodePort allocation logic. ([#120843](https://github.com/kubernetes/kubernetes/pull/120843), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120843", + "pr_number": 120843, + "kinds": [ + "documentation", + "feature" + ], + "sigs": [ + "network", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "120854": { + "commit": "3cbfa3e2cd7e756b1f51a5c7e014c415ecdb1253", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120854](https://github.com/kubernetes/kubernetes/pull/120854), [@dpasiukevich](https://github.com/dpasiukevich)) [SIG Cloud Provider]", + "author": "dpasiukevich", + "author_url": "https://github.com/dpasiukevich", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120854", + "pr_number": 120854, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "do_not_publish": true + }, + "120861": { + "commit": "8e8ac86cf1118ddce2693aa8481dd02dab1385e3", + "text": "`RetroactiveDefaultStorageClass` feature gate that graduated to GA in `v1.28` and was unconditionally enabled has been removed in `v1.29`.", + "markdown": "`RetroactiveDefaultStorageClass` feature gate that graduated to GA in `v1.28` and was unconditionally enabled has been removed in `v1.29`. ([#120861](https://github.com/kubernetes/kubernetes/pull/120861), [@RomanBednar](https://github.com/RomanBednar))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3333", + "type": "KEP" + } + ], + "author": "RomanBednar", + "author_url": "https://github.com/RomanBednar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120861", + "pr_number": 120861, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ] + }, + "120864": { + "commit": "06a7febe00f49ff9f6eb6650b1c84af29b28604c", + "text": "Added a new `--init-only` command line flag to `kube-proxy`. Setting the flag makes `kube-proxy` perform its initial configuration that requires privileged mode, and then exit. The `--init-only` mode is intended to be executed in a privileged init container, so that the main container may run with a stricter `securityContext`.", + "markdown": "Added a new `--init-only` command line flag to `kube-proxy`. Setting the flag makes `kube-proxy` perform its initial configuration that requires privileged mode, and then exit. The `--init-only` mode is intended to be executed in a privileged init container, so that the main container may run with a stricter `securityContext`. ([#120864](https://github.com/kubernetes/kubernetes/pull/120864), [@uablrek](https://github.com/uablrek)) [SIG Network and Scalability]", + "author": "uablrek", + "author_url": "https://github.com/uablrek", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120864", + "pr_number": 120864, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "scalability" + ], + "feature": true, + "duplicate": true + }, + "120868": { + "commit": "a6b8954de16d69ec275bf8e6326996dfce9e4b4c", + "text": "`k8s.io/dynamic-resource-allocation`: DRA drivers updating to this release are compatible with Kubernetes `v1.27` and `v1.28`.", + "markdown": "`k8s.io/dynamic-resource-allocation`: DRA drivers updating to this release are compatible with Kubernetes `v1.27` and `v1.28`. ([#120868](https://github.com/kubernetes/kubernetes/pull/120868), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120868", + "pr_number": 120868, + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "120871": { + "commit": "38c6bd810f04931b67a88421e8afafc979856c95", + "text": "`k8s.io/dynamic-resource-allocation`: can now handle a `selected` node which isn't listed\nas `potential` node.", + "markdown": "`k8s.io/dynamic-resource-allocation`: can now handle a `selected` node which isn't listed\n as `potential` node. ([#120871](https://github.com/kubernetes/kubernetes/pull/120871), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120871", + "pr_number": 120871, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "120877": { + "commit": "139fa6962026d1013d1d67e3f9f31d11da290199", + "text": "Fixed a regression (`CLIENTSET_PKG: unbound variable`) when invoking deprecated `generate-groups.sh` script.", + "markdown": "Fixed a regression (`CLIENTSET_PKG: unbound variable`) when invoking deprecated `generate-groups.sh` script. ([#120877](https://github.com/kubernetes/kubernetes/pull/120877), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120877", + "pr_number": 120877, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "120894": { + "commit": "c989473dc801688cabcb69e562eb09ebca16578c", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120894](https://github.com/kubernetes/kubernetes/pull/120894), [@caoyingjunz](https://github.com/caoyingjunz)) [SIG Cluster Lifecycle]", + "author": "caoyingjunz", + "author_url": "https://github.com/caoyingjunz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120894", + "pr_number": 120894, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "120903": { + "commit": "26c3f66887d13efc8cd627b50beeeef060c2e39c", + "text": "Deprecated the `--cloud-provider` and `--cloud-config` CLI parameters in kube-apiserver.\nThese parameters will be removed in a future release.", + "markdown": "Deprecated the `--cloud-provider` and `--cloud-config` CLI parameters in kube-apiserver.\n These parameters will be removed in a future release. ([#120903](https://github.com/kubernetes/kubernetes/pull/120903), [@dims](https://github.com/dims)) [SIG API Machinery]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120903", + "pr_number": 120903, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "120914": { + "commit": "413b15a8d9cb747f17d13e6c9f53ec6a51f2b1b9", + "text": "Added container filesystem to the `ImageFsInfoResponse`.", + "markdown": "Added container filesystem to the `ImageFsInfoResponse`. ([#120914](https://github.com/kubernetes/kubernetes/pull/120914), [@kannon92](https://github.com/kannon92))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4191", + "type": "KEP" + } + ], + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120914", + "pr_number": 120914, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "120933": { + "commit": "fd5c40611257c694d2338960976726344e2b45e5", + "text": "Migrated the remainder of the scheduler to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the remainder of the scheduler to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#120933](https://github.com/kubernetes/kubernetes/pull/120933), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120933", + "pr_number": 120933, + "areas": [ + "test", + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "instrumentation", + "testing" + ], + "duplicate": true + }, + "120942": { + "commit": "de054fbf9422d778568946de21a48c7330a6c1b7", + "text": "Fixed a regression in the kubelet's behavior while creating a container when the `EventedPLEG` feature gate is enabled.", + "markdown": "Fixed a regression in the kubelet's behavior while creating a container when the `EventedPLEG` feature gate is enabled. ([#120942](https://github.com/kubernetes/kubernetes/pull/120942), [@sairameshv](https://github.com/sairameshv))", + "author": "sairameshv", + "author_url": "https://github.com/sairameshv", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120942", + "pr_number": 120942, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "flake" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true + }, + "120954": { + "commit": "d475c249daeffd09efb241e6a1c5f4451c7b6321", + "text": "Added the `DisableNodeKubeProxyVersion` feature gate. If `DisableNodeKubeProxyVersion` is enabled, the `kubeProxyVersion` field is not set.", + "markdown": "Added the `DisableNodeKubeProxyVersion` feature gate. If `DisableNodeKubeProxyVersion` is enabled, the `kubeProxyVersion` field is not set. ([#120954](https://github.com/kubernetes/kubernetes/pull/120954), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120954", + "pr_number": 120954, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "120995": { + "commit": "0c93f40374cb7668b4d48800b9a0fe677fcfc982", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#120995](https://github.com/kubernetes/kubernetes/pull/120995), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Node]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120995", + "pr_number": 120995, + "areas": [ + "kubelet", + "kube-proxy", + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true, + "do_not_publish": true + }, + "121001": { + "commit": "b87cae907d032ba6412e369a86349c220b12b82c", + "text": "`ValidatingAdmissionPolicy` now preserves types of composition variables, and raises type-related errors early.", + "markdown": "`ValidatingAdmissionPolicy` now preserves types of composition variables, and raises type-related errors early. ([#121001](https://github.com/kubernetes/kubernetes/pull/121001), [@jiahuif](https://github.com/jiahuif))", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121001", + "pr_number": 121001, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "121008": { + "commit": "3bfa9482fca675803c456ecbe4252b6525c9d021", + "text": "Fixed a regression in `kube-proxy` where it might refuse to start if given\nsingle-stack `IPv6` configuration options on a node that has both `IPv4` and\n`IPv6` IPs.", + "markdown": "Fixed a regression in `kube-proxy` where it might refuse to start if given\n single-stack `IPv6` configuration options on a node that has both `IPv4` and\n `IPv6` IPs. ([#121008](https://github.com/kubernetes/kubernetes/pull/121008), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121008", + "pr_number": 121008, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "121016": { + "commit": "3930f3f834ca6755dd6d5ecb3fa6c36b61b9e964", + "text": "`CRDValidationRatcheting`: added support for ratcheting `x-kubernetes-validations` in schema.", + "markdown": "`CRDValidationRatcheting`: added support for ratcheting `x-kubernetes-validations` in schema. ([#121016](https://github.com/kubernetes/kubernetes/pull/121016), [@alexzielenski](https://github.com/alexzielenski))", + "documentation": [ + { + "description": "[KEP]", + "url": "http://kep.k8s.io/4008", + "type": "external" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121016", + "pr_number": 121016, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "121021": { + "commit": "9bea6bda05873ad481822174a97892fc3e767ab6", + "text": "Kubernetes is now built with Go `1.21.2`.", + "markdown": "Kubernetes is now built with Go `1.21.2`. ([#121021](https://github.com/kubernetes/kubernetes/pull/121021), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121021", + "pr_number": 121021, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "121028": { + "commit": "fc479f41b3d2130b18b83aa12b8cecb83d67a9c1", + "text": "`kubelet` , when using `--cloud-provider=external`, will now initialize the node addresses with the value of `--node-ip` , if it exists, or waits for the cloud provider to assign the addresses.", + "markdown": "`kubelet` , when using `--cloud-provider=external`, will now initialize the node addresses with the value of `--node-ip` , if it exists, or waits for the cloud provider to assign the addresses. ([#121028](https://github.com/kubernetes/kubernetes/pull/121028), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121028", + "pr_number": 121028, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "documentation", + "feature" + ], + "sigs": [ + "node", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "121034": { + "commit": "22866ca5eb343b3708177ee0d7d6ad9466ad321f", + "text": "Added `optionalOldSelf` to `x-kubernetes-validations` to support ratcheting CRD schema constraints.", + "markdown": "Added `optionalOldSelf` to `x-kubernetes-validations` to support ratcheting CRD schema constraints. ([#121034](https://github.com/kubernetes/kubernetes/pull/121034), [@alexzielenski](https://github.com/alexzielenski))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4008", + "type": "external" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121034", + "pr_number": 121034, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "121041": { + "commit": "de708905d8fadc49276098d7acb4eaf3b1df010a", + "text": "`kubelet` now emits a metric for end-to-end pod startup latency, including image pull.", + "markdown": "`kubelet` now emits a metric for end-to-end pod startup latency, including image pull. ([#121041](https://github.com/kubernetes/kubernetes/pull/121041), [@ruiwen-zhao](https://github.com/ruiwen-zhao))", + "author": "ruiwen-zhao", + "author_url": "https://github.com/ruiwen-zhao", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121041", + "pr_number": 121041, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "121046": { + "commit": "257b8c3666caff2e388894bed07d5e15abf60267", + "text": "`kube-proxy` now has a new nftables-based mode, available by running\n\n `kube-proxy --feature-gates NFTablesProxyMode=true --proxy-mode nftables`\n\nThis is currently an alpha-level feature and while it probably will not\neat your data, it may nibble at it a bit. (It passes e2e testing but has\nnot yet seen real-world use.)\n\nAt this point it should be functionally mostly identical to the iptables\nmode, except that it does not (and will not) support Service NodePorts on\n127.0.0.1. (Also note that there are currently no command-line arguments\nfor the nftables-specific config; you will need to use a config file if\nyou want to set the equivalent of any of the `--iptables-xxx` options.)\n\nAs this code is still very new, it has not been heavily optimized yet;\nwhile it is expected to _eventually_ have better performance than the\niptables backend, very little performance testing has been done so far.", + "markdown": "`kube-proxy` now has a new nftables-based mode, available by running\n \n `kube-proxy --feature-gates NFTablesProxyMode=true --proxy-mode nftables`\n \n This is currently an alpha-level feature and while it probably will not\n eat your data, it may nibble at it a bit. (It passes e2e testing but has\n not yet seen real-world use.)\n \n At this point it should be functionally mostly identical to the iptables\n mode, except that it does not (and will not) support Service NodePorts on\n 127.0.0.1. (Also note that there are currently no command-line arguments\n for the nftables-specific config; you will need to use a config file if\n you want to set the equivalent of any of the `--iptables-xxx` options.)\n \n As this code is still very new, it has not been heavily optimized yet;\n while it is expected to _eventually_ have better performance than the\n iptables backend, very little performance testing has been done so far. ([#121046](https://github.com/kubernetes/kubernetes/pull/121046), [@danwinship](https://github.com/danwinship))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3866", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121046", + "pr_number": 121046, + "areas": [ + "kube-proxy", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "121059": { + "commit": "c7d270302c8de3afc9d7b01c70faf3a18407ce44", + "text": "When the kubelet fails to assign CPUs to a Pod because there less available CPUs than the Pod requests, the error message changed from\n`not enough cpus available to satisfy request` to `not enough cpus available to satisfy request: \u003cnum_requested\u003e requested, only \u003cnum_available\u003e available`.", + "markdown": "When the kubelet fails to assign CPUs to a Pod because there less available CPUs than the Pod requests, the error message changed from\n `not enough cpus available to satisfy request` to `not enough cpus available to satisfy request: \u003cnum_requested\u003e requested, only \u003cnum_available\u003e available`. ([#121059](https://github.com/kubernetes/kubernetes/pull/121059), [@matte21](https://github.com/matte21))", + "author": "matte21", + "author_url": "https://github.com/matte21", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121059", + "pr_number": 121059, + "areas": [ + "kubelet" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "node" + ] + }, + "121065": { + "commit": "4106366b6d574b347fb0481e61d2e88a9d2a87b2", + "text": "`k8s.io/dynamic-resource-allocation/controller`: `ResourceClaimParameters` and `ResourceClassParameters` validation errors are now visible on `ResourceClaim`, `ResourceClass` and `Pod`.", + "markdown": "`k8s.io/dynamic-resource-allocation/controller`: `ResourceClaimParameters` and `ResourceClassParameters` validation errors are now visible on `ResourceClaim`, `ResourceClass` and `Pod`. ([#121065](https://github.com/kubernetes/kubernetes/pull/121065), [@byako](https://github.com/byako))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "byako", + "author_url": "https://github.com/byako", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121065", + "pr_number": 121065, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "121073": { + "commit": "246aba89128ed9f3236321baed8f0778cc8800cb", + "text": "Bumped `distroless-iptables` to `0.3.3` based on Go `1.21.2`.", + "markdown": "Bumped `distroless-iptables` to `0.3.3` based on Go `1.21.2`. ([#121073](https://github.com/kubernetes/kubernetes/pull/121073), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121073", + "pr_number": 121073, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + }, + "121077": { + "commit": "6d7d2493726a69773ef74692a1cc897ccb41a459", + "text": "Graduated the `ReadWriteOncePod` feature gate to `GA`.", + "markdown": "Graduated the `ReadWriteOncePod` feature gate to `GA`. ([#121077](https://github.com/kubernetes/kubernetes/pull/121077), [@chrishenzie](https://github.com/chrishenzie))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2485", + "type": "KEP" + } + ], + "author": "chrishenzie", + "author_url": "https://github.com/chrishenzie", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121077", + "pr_number": 121077, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "121078": { + "commit": "fafccc0c9a514caa72e5a16ea0d6213081081e19", + "text": "Added CEL expressions to `v1alpha1 AuthenticationConfiguration`.", + "markdown": "Added CEL expressions to `v1alpha1 AuthenticationConfiguration`. ([#121078](https://github.com/kubernetes/kubernetes/pull/121078), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121078", + "pr_number": 121078, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "121083": { + "commit": "62643ca14513f81e9ff88d830475aae4570ecfa1", + "text": "Previous versions of Kubernetes on Google Cloud required that workloads (e.g., Deployments, DaemonSets, etc.) which used `PersistentDisk` volumes were using them in read-only mode. This validation provided very little value at relatively host implementation cost, and will no longer be validated. If this is a problem for a specific use-case, please set the `SkipReadOnlyValidationGCE` gate to false to re-enable the validation, and file a Kubernetes bug with details.", + "markdown": "Previous versions of Kubernetes on Google Cloud required that workloads (e.g., Deployments, DaemonSets, etc.) which used `PersistentDisk` volumes were using them in read-only mode. This validation provided very little value at relatively host implementation cost, and will no longer be validated. If this is a problem for a specific use-case, please set the `SkipReadOnlyValidationGCE` gate to false to re-enable the validation, and file a Kubernetes bug with details. ([#121083](https://github.com/kubernetes/kubernetes/pull/121083), [@thockin](https://github.com/thockin))", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121083", + "pr_number": 121083, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ] + }, + "121085": { + "commit": "0304c567b68845a829d6d285418e650875a4701d", + "text": "CEL cost estimator no longer treats enums as unbounded strings when determining its length. Instead, the length is set to the longest possible enum value.", + "markdown": "CEL cost estimator no longer treats enums as unbounded strings when determining its length. Instead, the length is set to the longest possible enum value. ([#121085](https://github.com/kubernetes/kubernetes/pull/121085), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery]", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121085", + "pr_number": 121085, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "121089": { + "commit": "f5a5d83d7c027aba86e18c52da8ec4cd14179be3", + "text": "The `flowcontrol.apiserver.k8s.io/v1beta3` `FlowSchema` and `PriorityLevelConfiguration` APIs has been promoted to `flowcontrol.apiserver.k8s.io/v1`, with the following changes:\n- `PriorityLevelConfiguration`: the `.spec.limited.nominalConcurrencyShares` field defaults to `30` only if the field is omitted (v1beta3 also defaulted an explicit `0` value to `30`). Specifying an explicit `0` value is not allowed in the `v1` version in v1.29 to ensure compatibility with `v1.28` API servers. In `v1.30`, explicit `0` values will be allowed in this field in the `v1` API.\nThe `flowcontrol.apiserver.k8s.io/v1beta3` APIs are deprecated and will no longer be served in v1.32. All existing objects are available via the `v1` APIs. Transition clients and manifests to use the `v1` APIs before upgrading to `v1.32`.", + "markdown": "The `flowcontrol.apiserver.k8s.io/v1beta3` `FlowSchema` and `PriorityLevelConfiguration` APIs has been promoted to `flowcontrol.apiserver.k8s.io/v1`, with the following changes:\n - `PriorityLevelConfiguration`: the `.spec.limited.nominalConcurrencyShares` field defaults to `30` only if the field is omitted (v1beta3 also defaulted an explicit `0` value to `30`). Specifying an explicit `0` value is not allowed in the `v1` version in v1.29 to ensure compatibility with `v1.28` API servers. In `v1.30`, explicit `0` values will be allowed in this field in the `v1` API.\n The `flowcontrol.apiserver.k8s.io/v1beta3` APIs are deprecated and will no longer be served in v1.32. All existing objects are available via the `v1` APIs. Transition clients and manifests to use the `v1` APIs before upgrading to `v1.32`. ([#121089](https://github.com/kubernetes/kubernetes/pull/121089), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121089", + "pr_number": 121089, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "121091": { + "commit": "77d72a30e1eab39a0eab0a00544fcf08a6406fd1", + "text": "KCCM: fixed transient node addition and removal caused by #121090 while syncing load balancers on large clusters with a lot of churn.", + "markdown": "KCCM: fixed transient node addition and removal caused by #121090 while syncing load balancers on large clusters with a lot of churn. ([#121091](https://github.com/kubernetes/kubernetes/pull/121091), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121091", + "pr_number": 121091, + "areas": [ + "test", + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "121095": { + "commit": "ae603d5260a32d85e96a1e57caf61865f51cb29d", + "text": "Enabled traces for KMSv2 encrypt/decrypt operations.", + "markdown": "Enabled traces for KMSv2 encrypt/decrypt operations. ([#121095](https://github.com/kubernetes/kubernetes/pull/121095), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121095", + "pr_number": 121095, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "testing", + "architecture" + ], + "feature": true, + "duplicate": true + }, + "121103": { + "commit": "88d9573c3033afc3f63ca2cfb0edf3209a68d47d", + "text": "Fixed a regression in default configurations, which enabled `PodDisruptionConditions`\nby default, that prevented the control plane's pod garbage collector from deleting\npods that contained duplicated field keys (environmental variables with repeated keys or\ncontainer ports).", + "markdown": "Fixed a regression in default configurations, which enabled `PodDisruptionConditions`\n by default, that prevented the control plane's pod garbage collector from deleting\n pods that contained duplicated field keys (environmental variables with repeated keys or\n container ports). ([#121103](https://github.com/kubernetes/kubernetes/pull/121103), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121103", + "pr_number": 121103, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling", + "node", + "auth", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "121116": { + "commit": "9cf1910b389e801bd9110038da28154305c37e94", + "text": "Fixed [121094](https://github.com/kubernetes/kubernetes/issues/121094) by re-introducing the readiness predicate for `externalTrafficPolicy: Local` services.", + "markdown": "Fixed [121094](https://github.com/kubernetes/kubernetes/issues/121094) by re-introducing the readiness predicate for `externalTrafficPolicy: Local` services. ([#121116](https://github.com/kubernetes/kubernetes/pull/121116), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121116", + "pr_number": 121116, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "cloud-provider" + ], + "duplicate": true + }, + "121120": { + "commit": "cb713c15e99d59cb5b2f9015d1d978fee8142965", + "text": "Mitigated http/2 DOS vulnerabilities for `CVE-2023-44487` and `CVE-2023-39325` for the API server when the client is unauthenticated. The mitigation may be disabled by setting the `UnauthenticatedHTTP2DOSMitigation` feature gate to `false` (it is enabled by default). An API server fronted by an L7 load balancer that already mitigates these http/2 attacks may choose to disable the kube-apiserver mitigation to avoid disrupting load balancer -\u003e kube-apiserver connections if http/2 requests from multiple clients share the same backend connection. An API server on a private network may opt to disable the kube-apiserver mitigation to prevent performance regressions for unauthenticated clients. Authenticated requests rely on the fix in golang.org/x/net `v0.17.0` alone. https://issue.k8s.io/121197 tracks further mitigation of http/2 attacks by authenticated clients.", + "markdown": "Mitigated http/2 DOS vulnerabilities for `CVE-2023-44487` and `CVE-2023-39325` for the API server when the client is unauthenticated. The mitigation may be disabled by setting the `UnauthenticatedHTTP2DOSMitigation` feature gate to `false` (it is enabled by default). An API server fronted by an L7 load balancer that already mitigates these http/2 attacks may choose to disable the kube-apiserver mitigation to avoid disrupting load balancer -\u003e kube-apiserver connections if http/2 requests from multiple clients share the same backend connection. An API server on a private network may opt to disable the kube-apiserver mitigation to prevent performance regressions for unauthenticated clients. Authenticated requests rely on the fix in golang.org/x/net `v0.17.0` alone. https://issue.k8s.io/121197 tracks further mitigation of http/2 attacks by authenticated clients. ([#121120](https://github.com/kubernetes/kubernetes/pull/121120), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121120", + "pr_number": 121120, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "121121": { + "commit": "5b7339b8047925d71bbbb20edf3670ae56f5bbb0", + "text": "CRI: image pull per runtime class is now supported.", + "markdown": "CRI: image pull per runtime class is now supported. ([#121121](https://github.com/kubernetes/kubernetes/pull/121121), [@kiashok](https://github.com/kiashok))", + "documentation": [ + { + "description": "[KEP 4126]", + "url": "https://github.com/kubernetes/enhancements/pull/4217/commits/51df9e2d2bc391e43000da7221a4955fcaa82012", + "type": "KEP" + } + ], + "author": "kiashok", + "author_url": "https://github.com/kiashok", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121121", + "pr_number": 121121, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "windows" + ], + "feature": true, + "duplicate": true + }, + "121142": { + "commit": "bae6911b112f38c2a429fe672bd3dd6ec3d11f7b", + "text": "Fixed a `v1.28.0` regression where `kube-controller-manager` can crash when `StatefulSet` with `Parallel` policy and PVC labels are scaled up.", + "markdown": "Fixed a `v1.28.0` regression where `kube-controller-manager` can crash when `StatefulSet` with `Parallel` policy and PVC labels are scaled up. ([#121142](https://github.com/kubernetes/kubernetes/pull/121142), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", + "author": "aleksandra-malinowska", + "author_url": "https://github.com/aleksandra-malinowska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121142", + "pr_number": 121142, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "121147": { + "commit": "6d70013af571e389d19fb390eb7cb89dca41ae81", + "text": "Fixed panic in Job controller when `podRecreationPolicy: Failed` is used, and the number of terminating pods exceeds parallelism.", + "markdown": "Fixed panic in Job controller when `podRecreationPolicy: Failed` is used, and the number of terminating pods exceeds parallelism. ([#121147](https://github.com/kubernetes/kubernetes/pull/121147), [@kannon92](https://github.com/kannon92))", + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121147", + "pr_number": 121147, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "121149": { + "commit": "338c3a0fc7a8ad70b4cf4403e6ece222d59bc53b", + "text": "Kubernetes is now built with Go `v1.21.3`.", + "markdown": "Kubernetes is now built with Go `v1.21.3`. ([#121149](https://github.com/kubernetes/kubernetes/pull/121149), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121149", + "pr_number": 121149, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true + }, + "121172": { + "commit": "963178207adf12f4bae0ef3273f5810e7341bf8c", + "text": "`kubeadm`: removed leftover disclaimer that could be seen in the `kubeadm init phase certs` command help screen, since the \"certs\" phase of \"init\" is no longer alpha.", + "markdown": "`kubeadm`: removed leftover disclaimer that could be seen in the `kubeadm init phase certs` command help screen, since the \"certs\" phase of \"init\" is no longer alpha. ([#121172](https://github.com/kubernetes/kubernetes/pull/121172), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121172", + "pr_number": 121172, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "121191": { + "commit": "2b4ef19578f6bec7f4a76c82b7afcac2c228648d", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#121191](https://github.com/kubernetes/kubernetes/pull/121191), [@dims](https://github.com/dims)) [SIG Node and Testing]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121191", + "pr_number": 121191, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "121193": { + "commit": "953afbb328939e748edc3c154bb1ab9248ff70e5", + "text": "Fixed overriding default `KubeletConfig` fields in drop-in configs if not set.", + "markdown": "Fixed overriding default `KubeletConfig` fields in drop-in configs if not set. ([#121193](https://github.com/kubernetes/kubernetes/pull/121193), [@sohankunkerkar](https://github.com/sohankunkerkar))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3983-drop-in-configuration", + "type": "KEP" + } + ], + "author": "sohankunkerkar", + "author_url": "https://github.com/sohankunkerkar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121193", + "pr_number": 121193, + "areas": [ + "test", + "kubelet", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "121216": { + "commit": "89f124cd706b8f7c316034cabe7eb42ad8d6912d", + "text": "Bumped `distroless-iptables` to `0.4.1` based on Go `1.21.3`.", + "markdown": "Bumped `distroless-iptables` to `0.4.1` based on Go `1.21.3`. ([#121216](https://github.com/kubernetes/kubernetes/pull/121216), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121216", + "pr_number": 121216, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + }, + "121223": { + "commit": "064e86b3d03470f515b1adb34cac1cfacb285239", + "text": "Added support for CEL expressions to `v1alpha1 AuthorizationConfiguration` webhook `matchConditions`.", + "markdown": "Added support for CEL expressions to `v1alpha1 AuthorizationConfiguration` webhook `matchConditions`. ([#121223](https://github.com/kubernetes/kubernetes/pull/121223), [@ritazh](https://github.com/ritazh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3221", + "type": "external" + } + ], + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121223", + "pr_number": 121223, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "121229": { + "commit": "4d8a51acacaf0df9bfbaee8cd43f15dbdc85b146", + "text": "Removed the networking `alpha` API `ClusterCIDR`.", + "markdown": "Removed the networking `alpha` API `ClusterCIDR`. ([#121229](https://github.com/kubernetes/kubernetes/pull/121229), [@aojea](https://github.com/aojea))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/2593-multiple-cluster-cidrs", + "type": "KEP" + }, + { + "description": "[SIG Network announcement]", + "url": "https://groups.google.com/g/kubernetes-sig-network/c/nts1xEZ--gQ/m/2aTOUNFFAAAJ", + "type": "external" + } + ], + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121229", + "pr_number": 121229, + "areas": [ + "test", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change", + "feature", + "deprecation" + ], + "sigs": [ + "network", + "apps", + "cli", + "testing", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "121240": { + "commit": "7aa89084a345016a43500443fb1cc9ea6984f235", + "text": "`kubelet` will now allow pods to use the `net.ipv4.tcp_fin_timeout`, “net.ipv4.tcp_keepalive_intvl”\nand “net.ipv4.tcp_keepalive_probes“ sysctl by default; Pod Security Admission\nallows this sysctl in `v1.29+` versions of the baseline and restricted policies.", + "markdown": "`kubelet` will now allow pods to use the `net.ipv4.tcp_fin_timeout`, “net.ipv4.tcp_keepalive_intvl”\n and “net.ipv4.tcp_keepalive_probes“ sysctl by default; Pod Security Admission\n allows this sysctl in `v1.29+` versions of the baseline and restricted policies. ([#121240](https://github.com/kubernetes/kubernetes/pull/121240), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121240", + "pr_number": 121240, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "auth" + ], + "feature": true, + "duplicate": true + }, + "121246": { + "commit": "a78fbb685ea9cc453fe520df809384642c55ae10", + "text": "Removed `GA`ed feature gates `SeccompDefault`.", + "markdown": "Removed `GA`ed feature gates `SeccompDefault`. ([#121246](https://github.com/kubernetes/kubernetes/pull/121246), [@tukwila](https://github.com/tukwila))", + "author": "tukwila", + "author_url": "https://github.com/tukwila", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121246", + "pr_number": 121246, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "121249": { + "commit": "4254a77c21f5d6e49fc079427da008b4bc9d5475", + "text": "Fixed some invalid and unimportant log calls.", + "markdown": "Fixed some invalid and unimportant log calls. ([#121249](https://github.com/kubernetes/kubernetes/pull/121249), [@pohly](https://github.com/pohly)) [SIG Cloud Provider, Cluster Lifecycle and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121249", + "pr_number": 121249, + "areas": [ + "test", + "cloudprovider", + "kubeadm", + "code-generation" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle", + "testing", + "cloud-provider" + ], + "duplicate": true + }, + "121252": { + "commit": "2fcddbd37fc607e0fecd64c2a05f435397dd7180", + "text": "Removed `GA`ed feature gate `TopologyManager`.", + "markdown": "Removed `GA`ed feature gate `TopologyManager`. ([#121252](https://github.com/kubernetes/kubernetes/pull/121252), [@tukwila](https://github.com/tukwila))", + "author": "tukwila", + "author_url": "https://github.com/tukwila", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121252", + "pr_number": 121252, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "121254": { + "commit": "4aea803f3f4411b3895b9314f06cfee9b4140340", + "text": "`DevicePluginCDIDevices` feature has been graduated to `beta` and enabled by default in the kubelet.", + "markdown": "`DevicePluginCDIDevices` feature has been graduated to `beta` and enabled by default in the kubelet. ([#121254](https://github.com/kubernetes/kubernetes/pull/121254), [@bart0sh](https://github.com/bart0sh))", + "documentation": [ + { + "description": "[Documentation update PR]", + "url": "https://github.com/kubernetes/website/pull/43435", + "type": "external" + } + ], + "author": "bart0sh", + "author_url": "https://github.com/bart0sh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121254", + "pr_number": 121254, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "121255": { + "commit": "993c918311289fb015223a6fdb3e3a613e941881", + "text": "Removed `GA`ed feature gates `OpenAPIV3`.", + "markdown": "Removed `GA`ed feature gates `OpenAPIV3`. ([#121255](https://github.com/kubernetes/kubernetes/pull/121255), [@tukwila](https://github.com/tukwila))", + "author": "tukwila", + "author_url": "https://github.com/tukwila", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121255", + "pr_number": 121255, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "121257": { + "commit": "bbcbfe4b971c89aa89bbbd1b211326778e07a56e", + "text": "Removed `GA` feature gate about `ProbeTerminationGracePeriod`.", + "markdown": "Removed `GA` feature gate about `ProbeTerminationGracePeriod`. ([#121257](https://github.com/kubernetes/kubernetes/pull/121257), [@bzsuni](https://github.com/bzsuni))", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121257", + "pr_number": 121257, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "121275": { + "commit": "12b01aff1b946eae5c6873b802ecdef913e4cf2b", + "text": "Added `ImageMaximumGCAge` field to kubelet configuration, which allows a user to set the maximum age an image is unused before it's garbage collected.", + "markdown": "Added `ImageMaximumGCAge` field to kubelet configuration, which allows a user to set the maximum age an image is unused before it's garbage collected. ([#121275](https://github.com/kubernetes/kubernetes/pull/121275), [@haircommander](https://github.com/haircommander))", + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121275", + "pr_number": 121275, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "121283": { + "commit": "dc8b57d8a75764e649d641ac77c1539a574d9aed", + "text": "Fixed a bug where an API group's path was not unregistered from the API server's root paths when the group was deleted.", + "markdown": "Fixed a bug where an API group's path was not unregistered from the API server's root paths when the group was deleted. ([#121283](https://github.com/kubernetes/kubernetes/pull/121283), [@tnqn](https://github.com/tnqn)) [SIG API Machinery and Testing]", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121283", + "pr_number": 121283, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "121291": { + "commit": "0501933e56d6921c689d9a92d99278a31e44ee5a", + "text": "Removed `GA` feature gate about `CSIMigrationvSphere`.", + "markdown": "Removed `GA` feature gate about `CSIMigrationvSphere`. ([#121291](https://github.com/kubernetes/kubernetes/pull/121291), [@bzsuni](https://github.com/bzsuni))", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121291", + "pr_number": 121291, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "node", + "api-machinery" + ], + "duplicate": true + }, + "121292": { + "commit": "1fc3d10f7e4f8f0074faabc9e054a324491f298c", + "text": "Introduced the `job_finished_indexes_total` metric for the `BackoffLimitPerIndex` feature.", + "markdown": "Introduced the `job_finished_indexes_total` metric for the `BackoffLimitPerIndex` feature. ([#121292](https://github.com/kubernetes/kubernetes/pull/121292), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3850-backoff-limits-per-index-for-indexed-jobs", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121292", + "pr_number": 121292, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "121300": { + "commit": "3825e206cb162a7ad7431a5bdf6a065ae8422cf7", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#121300](https://github.com/kubernetes/kubernetes/pull/121300), [@stuton](https://github.com/stuton)) [SIG Apps and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2879-ready-pods-job-status#ga", + "type": "KEP" + } + ], + "author": "stuton", + "author_url": "https://github.com/stuton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121300", + "pr_number": 121300, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "121302": { + "commit": "36f51eb1a170070a8657a82d3589b8cd9ec451c8", + "text": "Graduated `JobReadyPods` to `stable`. The feature gate can no longer be disabled.", + "markdown": "Graduated `JobReadyPods` to `stable`. The feature gate can no longer be disabled. ([#121302](https://github.com/kubernetes/kubernetes/pull/121302), [@stuton](https://github.com/stuton))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2879-ready-pods-job-status#ga", + "type": "KEP" + } + ], + "author": "stuton", + "author_url": "https://github.com/stuton", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121302", + "pr_number": 121302, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "121303": { + "commit": "d038b65feefd6994ab82682234fc4e86255311da", + "text": "`CSINodeExpandSecret` feature has been promoted to `GA` in this release and is enabled\nby default. The CSI drivers can make use of the `secretRef` values passed in `NodeExpansion`\nrequest optionally sent by the CSI Client from this release onwards.", + "markdown": "`CSINodeExpandSecret` feature has been promoted to `GA` in this release and is enabled\n by default. The CSI drivers can make use of the `secretRef` values passed in `NodeExpansion`\n request optionally sent by the CSI Client from this release onwards. ([#121303](https://github.com/kubernetes/kubernetes/pull/121303), [@humblec](https://github.com/humblec))", + "author": "humblec", + "author_url": "https://github.com/humblec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121303", + "pr_number": 121303, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "121305": { + "commit": "c8125c40299513470c7b992169233edf086755da", + "text": "`kubeadm`: a separate `super-admin.conf` file is now deployed. The User in `admin.conf` is now bound to a new RBAC Group `kubeadm:cluster-admins` that has `cluster-admin` `ClusterRole` access. The User in `super-admin.conf` is now bound to the `system:masters` built-in super-powers / break-glass Group that can bypass RBAC. Before this change, the default `admin.conf` was bound to `system:masters` Group, which was undesired. Executing `kubeadm init phase kubeconfig all` or just `kubeadm init` will now generate the new `super-admin.conf` file. The cluster admin can then decide to keep the file present on a node host or move it to a safe location. `kubadm certs renew` will renew the certificate in `super-admin.conf` to one year if the file exists; if it does not exist a \"MISSING\" note will be printed. `kubeadm upgrade apply` for this release will migrate this particular node to the two file setup. Subsequent kubeadm releases will continue to optionally renew the certificate in `super-admin.conf` if the file exists on disk and if renew on upgrade is not disabled. `kubeadm join --control-plane` will now generate only an `admin.conf` file that has the less privileged User.", + "markdown": "`kubeadm`: a separate `super-admin.conf` file is now deployed. The User in `admin.conf` is now bound to a new RBAC Group `kubeadm:cluster-admins` that has `cluster-admin` `ClusterRole` access. The User in `super-admin.conf` is now bound to the `system:masters` built-in super-powers / break-glass Group that can bypass RBAC. Before this change, the default `admin.conf` was bound to `system:masters` Group, which was undesired. Executing `kubeadm init phase kubeconfig all` or just `kubeadm init` will now generate the new `super-admin.conf` file. The cluster admin can then decide to keep the file present on a node host or move it to a safe location. `kubadm certs renew` will renew the certificate in `super-admin.conf` to one year if the file exists; if it does not exist a \"MISSING\" note will be printed. `kubeadm upgrade apply` for this release will migrate this particular node to the two file setup. Subsequent kubeadm releases will continue to optionally renew the certificate in `super-admin.conf` if the file exists on disk and if renew on upgrade is not disabled. `kubeadm join --control-plane` will now generate only an `admin.conf` file that has the less privileged User. ([#121305](https://github.com/kubernetes/kubernetes/pull/121305), [@neolit123](https://github.com/neolit123))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://git.k8s.io/enhancements/keps/sig-cluster-lifecycle/kubeadm/4214-separate-super-user-kubeconfig", + "type": "external" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121305", + "pr_number": 121305, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "action_required": true + }, + "121325": { + "commit": "2014ce2313591b3bbf217587cbaf62e4c44e1217", + "text": "Updated the generic apiserver library to produce an error if a new API server is configured with support for a data format other than JSON, YAML, or Protobuf.", + "markdown": "Updated the generic apiserver library to produce an error if a new API server is configured with support for a data format other than JSON, YAML, or Protobuf. ([#121325](https://github.com/kubernetes/kubernetes/pull/121325), [@benluddy](https://github.com/benluddy)) [SIG API Machinery]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/61a31ed7c7be459ab14dc5fe3132d3b4cd3aa00c/keps/sig-api-machinery/4222-cbor-serializer/README.md#phased-implementation", + "type": "KEP" + } + ], + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121325", + "pr_number": 121325, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "121327": { + "commit": "015297a5776aa036c334c89740f89f74cb83190c", + "text": "Fixed the calculation of the requeue time in the cronjob controller, resulting in proper handling of failed/stuck jobs.", + "markdown": "Fixed the calculation of the requeue time in the cronjob controller, resulting in proper handling of failed/stuck jobs. ([#121327](https://github.com/kubernetes/kubernetes/pull/121327), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121327", + "pr_number": 121327, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true + }, + "121337": { + "commit": "883d91bfa199339e43a6be9287f9e2bdea22e570", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#121337](https://github.com/kubernetes/kubernetes/pull/121337), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery]", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121337", + "pr_number": 121337, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "121338": { + "commit": "d0084356b3cabdafcfc140d19ad8d544b2fc9b5d", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#121338](https://github.com/kubernetes/kubernetes/pull/121338), [@dims](https://github.com/dims)) [SIG Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node and Storage]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121338", + "pr_number": 121338, + "areas": [ + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "storage", + "node", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true + }, + "121342": { + "commit": "f8a4e343a106a73145464e8de8a919d13b59d25a", + "text": "Fixed tracking of terminating Pods in the Job status. The field was not updated unless there were other changes to apply.", + "markdown": "Fixed tracking of terminating Pods in the Job status. The field was not updated unless there were other changes to apply. ([#121342](https://github.com/kubernetes/kubernetes/pull/121342), [@dejanzele](https://github.com/dejanzele))", + "author": "dejanzele", + "author_url": "https://github.com/dejanzele", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121342", + "pr_number": 121342, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "121356": { + "commit": "8149ab3f3ffa10c3cda3d40a4bee9f56ed535970", + "text": "Graduated `Job BackoffLimitPerIndex` feature to `beta`.", + "markdown": "Graduated `Job BackoffLimitPerIndex` feature to `beta`. ([#121356](https://github.com/kubernetes/kubernetes/pull/121356), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3850-backoff-limits-per-index-for-indexed-jobs", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121356", + "pr_number": 121356, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "duplicate_kind": true + }, + "121373": { + "commit": "08070433cce0afbf3f12dafe42e15581a5e37349", + "text": "The CRD validation rule with feature gate `CustomResourceValidationExpressions` was promoted to `GA`.", + "markdown": "The CRD validation rule with feature gate `CustomResourceValidationExpressions` was promoted to `GA`. ([#121373](https://github.com/kubernetes/kubernetes/pull/121373), [@cici37](https://github.com/cici37))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2876", + "type": "KEP" + } + ], + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121373", + "pr_number": 121373, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "121389": { + "commit": "05765a851cf4b5066749dc1a771799cf651ca597", + "text": "Fixed an issue where a `StatefulSet` might not restart a pod after eviction or node failure.", + "markdown": "Fixed an issue where a `StatefulSet` might not restart a pod after eviction or node failure. ([#121389](https://github.com/kubernetes/kubernetes/pull/121389), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", + "author": "aleksandra-malinowska", + "author_url": "https://github.com/aleksandra-malinowska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121389", + "pr_number": 121389, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "121391": { + "commit": "9ae55e98868d78a7103358e1feb7d15b8403d0fa", + "text": "E2E storage tests: setting test tags like `[Slow]` via the `DriverInfo.FeatureTag` field is no longer supported.", + "markdown": "E2E storage tests: setting test tags like `[Slow]` via the `DriverInfo.FeatureTag` field is no longer supported. ([#121391](https://github.com/kubernetes/kubernetes/pull/121391), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121391", + "pr_number": 121391, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true + }, + "121441": { + "commit": "4b48ab1fdbdeee3568790e44bea55ea719205025", + "text": "Lower and upper case feature flag values are now allowed, but the name still has to match.", + "markdown": "Lower and upper case feature flag values are now allowed, but the name still has to match. ([#121441](https://github.com/kubernetes/kubernetes/pull/121441), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121441", + "pr_number": 121441, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "121456": { + "commit": "a8b7e1953f010cf95c6c6cddabfdb8e5ef46f61e", + "text": "Added new feature gate called `RuntimeClassInImageCriApi` to address `kubelet` changes needed for KEP 4216.\nNoteable changes:\n1. Populate new `RuntimeHandler` field in CRI's `ImageSpec` struct during image pulls from container runtimes.\n2. Pass `runtimeHandler` field in `RemoveImage()` call to container runtime in `kubelet`'s image garbage collection.", + "markdown": "Added new feature gate called `RuntimeClassInImageCriApi` to address `kubelet` changes needed for KEP 4216.\n Noteable changes:\n 1. Populate new `RuntimeHandler` field in CRI's `ImageSpec` struct during image pulls from container runtimes.\n 2. Pass `runtimeHandler` field in `RemoveImage()` call to container runtime in `kubelet`'s image garbage collection. ([#121456](https://github.com/kubernetes/kubernetes/pull/121456), [@kiashok](https://github.com/kiashok))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/commit/5d2744011e205f6d759bac6ab316a085bec2a605", + "type": "KEP" + } + ], + "author": "kiashok", + "author_url": "https://github.com/kiashok", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121456", + "pr_number": 121456, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "windows" + ], + "feature": true, + "duplicate": true + }, + "121457": { + "commit": "d2383ce467f911d2247db764bf7c3f5db7ea75e7", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\nSimply log the endpoint when there aren't any Zone Hints in the resource\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n Simply log the endpoint when there aren't any Zone Hints in the resource\n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#121457](https://github.com/kubernetes/kubernetes/pull/121457), [@SteveProXNA](https://github.com/SteveProXNA)) [SIG Network]", + "author": "SteveProXNA", + "author_url": "https://github.com/SteveProXNA", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121457", + "pr_number": 121457, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "121459": { + "commit": "ab096ef3dee7171d055c457600707ee56c5fcb34", + "text": "CEL can now correctly handle a CRD `openAPIV3Schema` that has neither `Properties` nor `AdditionalProperties`.", + "markdown": "CEL can now correctly handle a CRD `openAPIV3Schema` that has neither `Properties` nor `AdditionalProperties`. ([#121459](https://github.com/kubernetes/kubernetes/pull/121459), [@jiahuif](https://github.com/jiahuif))", + "documentation": [ + { + "description": "[1]", + "url": "https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#validation", + "type": "official" + } + ], + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121459", + "pr_number": 121459, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "121460": { + "commit": "4e45e1d6255bc0f836e6188b77cf7e7a64f85e63", + "text": "When updating a CRD, per-expression cost limit check are now skipped for `x-kubernetes-validations` rules of versions that are not mutated.", + "markdown": "When updating a CRD, per-expression cost limit check are now skipped for `x-kubernetes-validations` rules of versions that are not mutated. ([#121460](https://github.com/kubernetes/kubernetes/pull/121460), [@jiahuif](https://github.com/jiahuif))", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121460", + "pr_number": 121460, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "121462": { + "commit": "1aef58b72a7d9a37cc7590c881b63808d02695f1", + "text": "Added `apiextensions_apiserver_update_ratcheting_time` metric for tracking time taken during requests by feature `CRDValidationRatcheting`.", + "markdown": "Added `apiextensions_apiserver_update_ratcheting_time` metric for tracking time taken during requests by feature `CRDValidationRatcheting`. ([#121462](https://github.com/kubernetes/kubernetes/pull/121462), [@alexzielenski](https://github.com/alexzielenski))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4008", + "type": "external" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121462", + "pr_number": 121462, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "121477": { + "commit": "9b10019b919d47133e757574e18dfd7fd4af9401", + "text": "Promoted `PodHostIPs` condition to `beta`.", + "markdown": "Promoted `PodHostIPs` condition to `beta`. ([#121477](https://github.com/kubernetes/kubernetes/pull/121477), [@wzshiming](https://github.com/wzshiming))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2681", + "type": "KEP" + } + ], + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121477", + "pr_number": 121477, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "testing" + ], + "feature": true, + "duplicate": true + }, + "121481": { + "commit": "8cdab8a5db46eb3212e7cdf146e0d6952d0d3b27", + "text": "Added `job_pods_creation_total` metrics for tracking Pods created by the Job controller labeled by events which triggered the Pod creation.", + "markdown": "Added `job_pods_creation_total` metrics for tracking Pods created by the Job controller labeled by events which triggered the Pod creation. ([#121481](https://github.com/kubernetes/kubernetes/pull/121481), [@dejanzele](https://github.com/dejanzele))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3939", + "type": "KEP" + } + ], + "author": "dejanzele", + "author_url": "https://github.com/dejanzele", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121481", + "pr_number": 121481, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "121485": { + "commit": "ebf46ce1b45b8617d280b0aa12ebf6c18f25dea6", + "text": "The KMSv2 features with feature gates `KMSv2` and `KMSv2KDF` are promoted to `GA`. The `KMSv1` feature gate is now disabled by default.", + "markdown": "The KMSv2 features with feature gates `KMSv2` and `KMSv2KDF` are promoted to `GA`. The `KMSv1` feature gate is now disabled by default. ([#121485](https://github.com/kubernetes/kubernetes/pull/121485), [@ritazh](https://github.com/ritazh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", + "type": "KEP" + } + ], + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121485", + "pr_number": 121485, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "121491": { + "commit": "6f4ad7a413f7dfe34218834714e7dad396cb973b", + "text": "Promoted `PodReplacementPolicy` to `beta`.", + "markdown": "Promoted `PodReplacementPolicy` to `beta`. ([#121491](https://github.com/kubernetes/kubernetes/pull/121491), [@dejanzele](https://github.com/dejanzele))", + "author": "dejanzele", + "author_url": "https://github.com/dejanzele", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121491", + "pr_number": 121491, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true + }, + "121566": { + "commit": "73ef6301388eee622f175b32d28385220da2b128", + "text": "`etcd`: updated to `v3.5.10`.", + "markdown": "`etcd`: updated to `v3.5.10`. ([#121566](https://github.com/kubernetes/kubernetes/pull/121566), [@mzaian](https://github.com/mzaian))", + "author": "mzaian", + "author_url": "https://github.com/mzaian", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121566", + "pr_number": 121566, + "areas": [ + "test", + "provider/gcp", + "release-eng", + "kubeadm", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "testing", + "cloud-provider", + "etcd" + ], + "duplicate": true + }, + "121567": { + "commit": "956b5adc645f4fbc39732a9d9727ff710c26fe94", + "text": "`etcd`: image is now based on `v3.5.9`.", + "markdown": "`etcd`: image is now based on `v3.5.9`. ([#121567](https://github.com/kubernetes/kubernetes/pull/121567), [@mzaian](https://github.com/mzaian))", + "author": "mzaian", + "author_url": "https://github.com/mzaian", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121567", + "pr_number": 121567, + "areas": [ + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "121571": { + "commit": "095786913d588a398ef750abea6aba29014cbcab", + "text": "`EnqueueExtensions` from plugins other than `PreEnqueue`, `PreFilter`, `Filter`, `Reserve` and `Permit` are now ignored.\nIt reduces the number of kinds of cluster events the scheduler needs to subscribe/handle.", + "markdown": "`EnqueueExtensions` from plugins other than `PreEnqueue`, `PreFilter`, `Filter`, `Reserve` and `Permit` are now ignored.\n It reduces the number of kinds of cluster events the scheduler needs to subscribe/handle. ([#121571](https://github.com/kubernetes/kubernetes/pull/121571), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121571", + "pr_number": 121571, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "121575": { + "commit": "593a17d3b6381bfdbf3bc3b36f56cad30d1531df", + "text": "Fixed bugs in handling of server-side apply, create, and update API requests for objects containing duplicate items in keyed lists.\n- A `create` or `update` API request with duplicate items in a keyed list no longer wipes out managedFields. Examples include env var entries with the same name, or port entries with the same containerPort in a pod spec.\n- A server-side apply request that makes unrelated changes to an object which has duplicate items in a keyed list no longer fails, and leaves the existing duplicate items as-is.\n- A server-side apply request that changes an object which has duplicate items in a keyed list, and modifies the duplicated item removes the duplicates and replaces them with the single item contained in the server-side apply request.", + "markdown": "Fixed bugs in handling of server-side apply, create, and update API requests for objects containing duplicate items in keyed lists.\n - A `create` or `update` API request with duplicate items in a keyed list no longer wipes out managedFields. Examples include env var entries with the same name, or port entries with the same containerPort in a pod spec.\n - A server-side apply request that makes unrelated changes to an object which has duplicate items in a keyed list no longer fails, and leaves the existing duplicate items as-is.\n - A server-side apply request that changes an object which has duplicate items in a keyed list, and modifies the duplicated item removes the duplicates and replaces them with the single item contained in the server-side apply request. ([#121575](https://github.com/kubernetes/kubernetes/pull/121575), [@apelisse](https://github.com/apelisse))", + "author": "apelisse", + "author_url": "https://github.com/apelisse", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121575", + "pr_number": 121575, + "areas": [ + "test", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "121577": { + "commit": "d1113c9a00b3cd1c791f43b15280d4ebba2a7663", + "text": "Bumped `cel-go` to `v0.17.7` and introduced set `ext` library with new options.", + "markdown": "Bumped `cel-go` to `v0.17.7` and introduced set `ext` library with new options. ([#121577](https://github.com/kubernetes/kubernetes/pull/121577), [@cici37](https://github.com/cici37))", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121577", + "pr_number": 121577, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "121579": { + "commit": "84aca4ac74313ddcd8d1f8b3ae223534e0cd3254", + "text": "The `SidecarContainers` feature has graduated to `beta` and is enabled by default.", + "markdown": "The `SidecarContainers` feature has graduated to `beta` and is enabled by default. ([#121579](https://github.com/kubernetes/kubernetes/pull/121579), [@gjkim42](https://github.com/gjkim42))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", + "type": "KEP" + } + ], + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121579", + "pr_number": 121579, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "121614": { + "commit": "2a1140305cf602190012748a163534dfe4364be2", + "text": "Decoding etcd's response now respects the timeout context.", + "markdown": "Decoding etcd's response now respects the timeout context. ([#121614](https://github.com/kubernetes/kubernetes/pull/121614), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121614", + "pr_number": 121614, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "121628": { + "commit": "3eba6fc9ad62c59aa1590e4e6272a846cff46c2a", + "text": "`cluster/gce`: added webhook to replace `PersistentVolumeLabel` admission controller.", + "markdown": "`cluster/gce`: added webhook to replace `PersistentVolumeLabel` admission controller. ([#121628](https://github.com/kubernetes/kubernetes/pull/121628), [@andrewsykim](https://github.com/andrewsykim))", + "author": "andrewsykim", + "author_url": "https://github.com/andrewsykim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121628", + "pr_number": 121628, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true + }, + "121632": { + "commit": "d84ee0ba6912a842ed05252cc28d032c09304e08", + "text": "Fixed a regression since `v1.27.0` in the scheduler framework when running score plugins. \nThe `skippedScorePlugins` number might be greater than `enabledScorePlugins`, \nso when initializing a slice the `cap(len(skippedScorePlugins) - len(enabledScorePlugins))` is negative, \nwhich is not allowed.", + "markdown": "Fixed a regression since `v1.27.0` in the scheduler framework when running score plugins. \n The `skippedScorePlugins` number might be greater than `enabledScorePlugins`, \n so when initializing a slice the `cap(len(skippedScorePlugins) - len(enabledScorePlugins))` is negative, \n which is not allowed. ([#121632](https://github.com/kubernetes/kubernetes/pull/121632), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121632", + "pr_number": 121632, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true + }, + "121638": { + "commit": "74fefd877f0ee9445735a756270f8eac44a96d0b", + "text": "Priority and Fairness feature is now `stable`, the feature gate will be removed in `v1.31`.", + "markdown": "Priority and Fairness feature is now `stable`, the feature gate will be removed in `v1.31`. ([#121638](https://github.com/kubernetes/kubernetes/pull/121638), [@tkashem](https://github.com/tkashem))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/1040-priority-and-fairness", + "type": "KEP" + } + ], + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121638", + "pr_number": 121638, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "121715": { + "commit": "263ab254ef6a847fdd3dc69250a2ac0b12c42eb3", + "text": "scheduler: in 1.29 pre-releases, enabling contextual logging slowed down pod scheduling.", + "markdown": "Scheduler: in 1.29 pre-releases, enabling contextual logging slowed down pod scheduling. ([#121715](https://github.com/kubernetes/kubernetes/pull/121715), [@pohly](https://github.com/pohly)) [SIG Instrumentation and Scheduling]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121715", + "pr_number": 121715, + "areas": [ + "logging" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true + }, + "121739": { + "commit": "56d7898510f2a973f92fda13c2ba3a5e756d9621", + "text": "Updated runc to `1.1.10`.", + "markdown": "Updated runc to `1.1.10`. ([#121739](https://github.com/kubernetes/kubernetes/pull/121739), [@ty-dc](https://github.com/ty-dc))", + "author": "ty-dc", + "author_url": "https://github.com/ty-dc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121739", + "pr_number": 121739, + "areas": [ + "dependency", + "code-organization" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "architecture" + ], + "duplicate": true + }, + "121764": { + "commit": "0193fae084e16031b37a14a979f02817d7fa79d0", + "text": "Fixed the API comments for the `FailIndex` Job pod failure policy action.", + "markdown": "Fixed the API comments for the `FailIndex` Job pod failure policy action. ([#121764](https://github.com/kubernetes/kubernetes/pull/121764), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3850-backoff-limits-per-index-for-indexed-jobs", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121764", + "pr_number": 121764, + "areas": [ + "code-generation" + ], + "kinds": [ + "documentation", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "121765": { + "commit": "e4b74dd12fa8cb63c174091d5536a10b8ec19d34", + "text": "Fixed the API comments for the Job `Ready` field in status.", + "markdown": "Fixed the API comments for the Job `Ready` field in status. ([#121765](https://github.com/kubernetes/kubernetes/pull/121765), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2879-ready-pods-job-status", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121765", + "pr_number": 121765, + "areas": [ + "code-generation" + ], + "kinds": [ + "documentation", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true + }, + "121808": { + "commit": "6ba7258a0f3f73629560fc30016b2e35c8e7ae9c", + "text": "Kubernetes is now built with Go `1.21.4`.", + "markdown": "Kubernetes is now built with Go `1.21.4`. ([#121808](https://github.com/kubernetes/kubernetes/pull/121808), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121808", + "pr_number": 121808, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "release-eng", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "121837": { + "commit": "1f3256bbac668f120433990028ca1fe206e4117b", + "text": "kubeadm: changed the \"system:masters\" Group in the apiserver-kubelet-client.crt certificate Subject to be \"kubeadm:cluster-admins\" which is a less privileged Group.", + "markdown": "Kubeadm: changed the \"system:masters\" Group in the apiserver-kubelet-client.crt certificate Subject to be \"kubeadm:cluster-admins\" which is a less privileged Group. ([#121837](https://github.com/kubernetes/kubernetes/pull/121837), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121837", + "pr_number": 121837, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "121841": { + "commit": "930022cf267c2e0269fbd9be4be3fd83448e6419", + "text": "kubeadm: supported updating certificate organization during `kubeadm certs renew` operation.", + "markdown": "Kubeadm: supported updating certificate organization during `kubeadm certs renew` operation. ([#121841](https://github.com/kubernetes/kubernetes/pull/121841), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121841", + "pr_number": 121841, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "121851": { + "commit": "8509ab82b96caa2365552efa08c8ba8baf11c5ec", + "text": "Fixed stale SMB mount issue when SMB file share is deleted and then unmounted.", + "markdown": "Fixed stale SMB mount issue when SMB file share is deleted and then unmounted. ([#121851](https://github.com/kubernetes/kubernetes/pull/121851), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121851", + "pr_number": 121851, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "121867": { + "commit": "94fe1b3b0c12e93691dccac21efbda9391679510", + "text": "A customizable `OrderedScoreFuncs()` function was introduced. Out-of-tree plugins \nthat used the scheduler's preemption interface could implement this function\nfor custom preemption preferences or return nil to keep the current behavior.", + "markdown": "A customizable `OrderedScoreFuncs()` function was introduced. Out-of-tree plugins \n that used the scheduler's preemption interface could implement this function\n for custom preemption preferences or return nil to keep the current behavior. ([#121867](https://github.com/kubernetes/kubernetes/pull/121867), [@lianghao208](https://github.com/lianghao208))", + "author": "lianghao208", + "author_url": "https://github.com/lianghao208", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121867", + "pr_number": 121867, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "121871": { + "commit": "9c56c5f350f5902309fa6a554da306ea4d38186e", + "text": "Bumped distroless-iptables to 0.4.1 based on Go `1.21.3`.", + "markdown": "Bumped distroless-iptables to 0.4.1 based on Go `1.21.3`. ([#121871](https://github.com/kubernetes/kubernetes/pull/121871), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121871", + "pr_number": 121871, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true + } +} diff --git a/releases/release-1.29/release-notes/release-notes-draft.md b/releases/release-1.29/release-notes/release-notes-draft.md index f23bfde9504..c47b1f0502a 100644 --- a/releases/release-1.29/release-notes/release-notes-draft.md +++ b/releases/release-1.29/release-notes/release-notes-draft.md @@ -1,449 +1,449 @@ -## What's New (Major Themes) - -Major themes for Kubernetes v1.29 _Mandala (The Universe)_ have been published in the [release announcement](https://kubernetes.io/blog/2023/12/13/kubernetes-v1-29-release/), which also contains additional information on the release. - -## Known Issues - -### Evented PLEG beta feature (disabled by default) has a critical bug - -The Evented PLEG (Pod Lifecycle Event Generator ) feature is disabled by default, and additional care is recommended when enabling it: when enabled, a [bug](https://github.com/kubernetes/kubernetes/issues/121349) affecting pods (and especially static pods) can have a critical impact on cluster health. - -### Feature gate `SchedulerQueueingHints` is disabled by default - -[An issue was found](https://github.com/kubernetes/kubernetes/pull/122285) in the `beta` feature `SchedulingHint`, and to mitigate it the feature was changed to `disabled` by default in this release. It can be manually enabled, in which case it's possible that the identified behavior (pods pending for 5 minutes, even though the cluster can accomodate them) manifests itself. - -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- Stopped accepting component configuration for `kube-proxy` and `kubelet` during `kubeadm upgrade plan --config`. This was a legacy behavior that was not well supported for upgrades and could be used only at the plan stage to determine if the configuration for these components stored in the cluster needs manual version migration. In the future, `kubeadm` will attempt alternative component config migration approaches. ([#120788](https://github.com/kubernetes/kubernetes/pull/120788), [@chendave](https://github.com/chendave)) - - `kubeadm`: a separate `super-admin.conf` file is now deployed. The User in `admin.conf` is now bound to a new RBAC Group `kubeadm:cluster-admins` that has `cluster-admin` `ClusterRole` access. The User in `super-admin.conf` is now bound to the `system:masters` built-in super-powers / break-glass Group that can bypass RBAC. Before this change, the default `admin.conf` was bound to `system:masters` Group, which was undesired. Executing `kubeadm init phase kubeconfig all` or just `kubeadm init` will now generate the new `super-admin.conf` file. The cluster admin can then decide to keep the file present on a node host or move it to a safe location. `kubadm certs renew` will renew the certificate in `super-admin.conf` to one year if the file exists; if it does not exist a "MISSING" note will be printed. `kubeadm upgrade apply` for this release will migrate this particular node to the two file setup. Subsequent kubeadm releases will continue to optionally renew the certificate in `super-admin.conf` if the file exists on disk and if renew on upgrade is not disabled. `kubeadm join --control-plane` will now generate only an `admin.conf` file that has the less privileged User. ([#121305](https://github.com/kubernetes/kubernetes/pull/121305), [@neolit123](https://github.com/neolit123)) -- In-tree cloud provider integrations are now switched off by default. This change will require that users who are currently using in-tree cloud provider integrations (Azure, GCE, or vSphere) enable external cloud controller managers, or opt in to the legacy integration by setting the associated feature gates to `false`. For more information about how to enable and run external cloud controller managers, read [Cloud Controller Manager Administration](https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/) and [Migrate Replicated Control Plane To Use Cloud Controller Manager](https://kubernetes.io/docs/tasks/administer-cluster/controller-manager-leader-migration/). ([#117503](https://github.com/kubernetes/kubernetes/pull/117503), [@dims](https://github.com/dims)) - -## Changes by Kind - -### Deprecation - -- #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: - -- The `flowcontrol.apiserver.k8s.io/v1beta2` API version of `FlowSchema` and `PriorityLevelConfiguration` is no longer served in `v1.29`. Migrate manifests and API clients to use the `flowcontrol.apiserver.k8s.io/v1beta3` API version, available since `v1.26`. More information is at https://kubernetes.io/docs/reference/using-api/deprecation-guide/#flowcontrol-resources-v129. ([#119495](https://github.com/kubernetes/kubernetes/pull/119495), [@bzsuni](https://github.com/bzsuni)) -- Creation of new `CronJob` objects containing `TZ` or `CRON_TZ` in `.spec.schedule`, accidentally enabled in `v1.22`, is now disallowed. Use the `.spec.timeZone` field instead, supported in `v1.25+` clusters in default configurations. See https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#unsupported-timezone-specification for more information. ([#116252](https://github.com/kubernetes/kubernetes/pull/116252), [@soltysh](https://github.com/soltysh)) -- Removed the networking `alpha` API `ClusterCIDR`. ([#121229](https://github.com/kubernetes/kubernetes/pull/121229), [@aojea](https://github.com/aojea)) - -### API Change - -- `kube-apiserver`: added `--authentication-config` flag for reading `AuthenticationConfiguration` - files. `--authentication-config` flag is mutually exclusive with the existing `--oidc-*` - flags. ([#119142](https://github.com/kubernetes/kubernetes/pull/119142), [@aramase](https://github.com/aramase)) -- `kube-scheduler` component config (`KubeSchedulerConfiguration`) `kubescheduler.config.k8s.io/v1beta3` - is removed in `v1.29`. Migrated `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`. ([#119994](https://github.com/kubernetes/kubernetes/pull/119994), [@SataQiu](https://github.com/SataQiu)) -- A new sleep action for the `PreStop` lifecycle hook was added, allowing containers to pause for a specified duration before termination. ([#119026](https://github.com/kubernetes/kubernetes/pull/119026), [@AxeZhan](https://github.com/AxeZhan)) -- Added CEL expressions to `v1alpha1 AuthenticationConfiguration`. ([#121078](https://github.com/kubernetes/kubernetes/pull/121078), [@aramase](https://github.com/aramase)) -- Added Windows support for InPlace Pod Vertical Scaling feature. ([#112599](https://github.com/kubernetes/kubernetes/pull/112599), [@fabi200123](https://github.com/fabi200123)) [SIG Autoscaling, Node, Scalability, Scheduling and Windows] -- Added `ImageMaximumGCAge` field to kubelet configuration, which allows a user to set the maximum age an image is unused before it's garbage collected. ([#121275](https://github.com/kubernetes/kubernetes/pull/121275), [@haircommander](https://github.com/haircommander)) -- Added `UserNamespacesPodSecurityStandards` feature gate to enable user namespace support for Pod Security Standards. - Enabling this feature will modify all Pod Security Standard rules to allow setting: `spec[.*].securityContext.[runAsNonRoot,runAsUser]`. - This feature gate should only be enabled if all nodes in the cluster support the user namespace feature and have it enabled. - The feature gate will not graduate or be enabled by default in future Kubernetes releases. ([#118760](https://github.com/kubernetes/kubernetes/pull/118760), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Auth, Node and Release] -- Added `optionalOldSelf` to `x-kubernetes-validations` to support ratcheting CRD schema constraints. ([#121034](https://github.com/kubernetes/kubernetes/pull/121034), [@alexzielenski](https://github.com/alexzielenski)) -- Added a new `ServiceCIDR` type that allows to dynamically configure the cluster range used to allocate `Service ClusterIPs` addresses. ([#116516](https://github.com/kubernetes/kubernetes/pull/116516), [@aojea](https://github.com/aojea)) -- Added a new `ipMode` field to the `.status` of Services where `type` is set to `LoadBalancer`. - The new field is behind the `LoadBalancerIPMode` feature gate. ([#119937](https://github.com/kubernetes/kubernetes/pull/119937), [@RyanAoh](https://github.com/RyanAoh)) [SIG API Machinery, Apps, Cloud Provider, Network and Testing] -- Added options for configuring `nf_conntrack_udp_timeout`, and `nf_conntrack_udp_timeout_stream` variables of netfilter conntrack subsystem. ([#120808](https://github.com/kubernetes/kubernetes/pull/120808), [@aroradaman](https://github.com/aroradaman)) -- Added support for CEL expressions to `v1alpha1 AuthorizationConfiguration` webhook `matchConditions`. ([#121223](https://github.com/kubernetes/kubernetes/pull/121223), [@ritazh](https://github.com/ritazh)) -- Added support for projecting `certificates.k8s.io/v1alpha1` ClusterTrustBundle objects into pods. ([#113374](https://github.com/kubernetes/kubernetes/pull/113374), [@ahmedtd](https://github.com/ahmedtd)) -- Added the `DisableNodeKubeProxyVersion` feature gate. If `DisableNodeKubeProxyVersion` is enabled, the `kubeProxyVersion` field is not set. ([#120954](https://github.com/kubernetes/kubernetes/pull/120954), [@HirazawaUi](https://github.com/HirazawaUi)) -- Fixed a bug where CEL expressions in CRD validation rules would incorrectly compute a high estimated cost for functions that return strings, lists or maps. - The incorrect cost was evident when the result of a function was used in subsequent operations. ([#119800](https://github.com/kubernetes/kubernetes/pull/119800), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth and Cloud Provider] -- Fixed the API comments for the Job `Ready` field in status. ([#121765](https://github.com/kubernetes/kubernetes/pull/121765), [@mimowo](https://github.com/mimowo)) -- Fixed the API comments for the `FailIndex` Job pod failure policy action. ([#121764](https://github.com/kubernetes/kubernetes/pull/121764), [@mimowo](https://github.com/mimowo)) -- Go API: the `ResourceRequirements` struct was replaced with `VolumeResourceRequirements` for use with volumes. ([#118653](https://github.com/kubernetes/kubernetes/pull/118653), [@pohly](https://github.com/pohly)) -- Graduated `Job BackoffLimitPerIndex` feature to `beta`. ([#121356](https://github.com/kubernetes/kubernetes/pull/121356), [@mimowo](https://github.com/mimowo)) -- Marked the `onPodConditions` field as optional in `Job`'s pod failure policy. ([#120204](https://github.com/kubernetes/kubernetes/pull/120204), [@mimowo](https://github.com/mimowo)) -- Promoted `PodReadyToStartContainers` condition to `beta`. ([#119659](https://github.com/kubernetes/kubernetes/pull/119659), [@kannon92](https://github.com/kannon92)) -- `NodeStageVolume` calls will now be retried if the CSI node driver is not running. ([#120330](https://github.com/kubernetes/kubernetes/pull/120330), [@rohitssingh](https://github.com/rohitssingh)) -- The `flowcontrol.apiserver.k8s.io/v1beta3` `FlowSchema` and `PriorityLevelConfiguration` APIs has been promoted to `flowcontrol.apiserver.k8s.io/v1`, with the following changes: - - `PriorityLevelConfiguration`: the `.spec.limited.nominalConcurrencyShares` field defaults to `30` only if the field is omitted (v1beta3 also defaulted an explicit `0` value to `30`). Specifying an explicit `0` value is not allowed in the `v1` version in v1.29 to ensure compatibility with `v1.28` API servers. In `v1.30`, explicit `0` values will be allowed in this field in the `v1` API. - The `flowcontrol.apiserver.k8s.io/v1beta3` APIs are deprecated and will no longer be served in v1.32. All existing objects are available via the `v1` APIs. Transition clients and manifests to use the `v1` APIs before upgrading to `v1.32`. ([#121089](https://github.com/kubernetes/kubernetes/pull/121089), [@tkashem](https://github.com/tkashem)) -- The `kube-proxy` command-line documentation was updated to clarify that - `--bind-address` does not actually have anything to do with binding to an - address, and you probably don't actually want to be using it. ([#120274](https://github.com/kubernetes/kubernetes/pull/120274), [@danwinship](https://github.com/danwinship)) -- The `kube-scheduler` `selectorSpread` plugin has been removed, please use the `podTopologySpread` plugin instead. ([#117720](https://github.com/kubernetes/kubernetes/pull/117720), [@kerthcet](https://github.com/kerthcet)) -- The `matchLabelKeys/mismatchLabelKeys` feature is introduced to the hard/soft `PodAffinity/PodAntiAffinity`. ([#116065](https://github.com/kubernetes/kubernetes/pull/116065), [@sanposhiho](https://github.com/sanposhiho)) -- When updating a CRD, per-expression cost limit check are now skipped for `x-kubernetes-validations` rules of versions that are not mutated. ([#121460](https://github.com/kubernetes/kubernetes/pull/121460), [@jiahuif](https://github.com/jiahuif)) -- `CSINodeExpandSecret` feature has been promoted to `GA` in this release and is enabled - by default. The CSI drivers can make use of the `secretRef` values passed in `NodeExpansion` - request optionally sent by the CSI Client from this release onwards. ([#121303](https://github.com/kubernetes/kubernetes/pull/121303), [@humblec](https://github.com/humblec)) -- `NodeStageVolume` calls will now be retried if the CSI node driver is not running. ([#120330](https://github.com/kubernetes/kubernetes/pull/120330), [@rohitssingh](https://github.com/rohitssingh)) -- `PersistentVolumeLastPhaseTransitionTime` is now beta and enabled by default. ([#120627](https://github.com/kubernetes/kubernetes/pull/120627), [@RomanBednar](https://github.com/RomanBednar)) -- `ValidatingAdmissionPolicy` type checking now supports CRDs and API extensions types. ([#119109](https://github.com/kubernetes/kubernetes/pull/119109), [@jiahuif](https://github.com/jiahuif)) -- `kube-apiserver`: added `--authorization-config` flag for reading a configuration file containing an `apiserver.config.k8s.io/v1alpha1 AuthorizationConfiguration` object. The `--authorization-config` flag is mutually exclusive with `--authorization-modes` and `--authorization-webhook-*` flags. The `alpha` `StructuredAuthorizationConfiguration` feature flag must be enabled for `--authorization-config` to be specified. ([#120154](https://github.com/kubernetes/kubernetes/pull/120154), [@palnabarun](https://github.com/palnabarun)) -- `kube-proxy` now has a new nftables-based mode, available by running - - `kube-proxy --feature-gates NFTablesProxyMode=true --proxy-mode nftables` - - This is currently an alpha-level feature and while it probably will not - eat your data, it may nibble at it a bit. (It passes e2e testing but has - not yet seen real-world use.) - - At this point it should be functionally mostly identical to the iptables - mode, except that it does not (and will not) support Service NodePorts on - 127.0.0.1. (Also note that there are currently no command-line arguments - for the nftables-specific config; you will need to use a config file if - you want to set the equivalent of any of the `--iptables-xxx` options.) - - As this code is still very new, it has not been heavily optimized yet; - while it is expected to _eventually_ have better performance than the - iptables backend, very little performance testing has been done so far. ([#121046](https://github.com/kubernetes/kubernetes/pull/121046), [@danwinship](https://github.com/danwinship)) -- `kube-proxy`: Added an option/flag for configuring the `nf_conntrack_tcp_be_liberal` sysctl (in the kernel's netfilter conntrack subsystem). When enabled, `kube-proxy` will not install the `DROP` rule for invalid conntrack states, which currently breaks users of asymmetric routing. ([#120354](https://github.com/kubernetes/kubernetes/pull/120354), [@aroradaman](https://github.com/aroradaman)) - -### Feature - -- #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: - - <!-- - This section can be blank if this pull request does not require a release note. - - When adding links which point to resources within git repositories, like - KEPs or supporting documentation, please reference a specific commit and avoid - linking directly to the master branch. This ensures that links reference a - specific point in time, rather than a document that may change over time. - - See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files - - Please use the following format for linking documentation: - - [KEP]: <link> - - [Usage]: <link> - - [Other doc]: <link> - --> ([#119517](https://github.com/kubernetes/kubernetes/pull/119517), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling and Testing] -- `kubeadm`: added validation to verify that the `CertificateKey` is a valid hex - encoded AES key. ([#120064](https://github.com/kubernetes/kubernetes/pull/120064), [@SataQiu](https://github.com/SataQiu)) -- A customizable `OrderedScoreFuncs()` function was introduced. Out-of-tree plugins - that used the scheduler's preemption interface could implement this function - for custom preemption preferences or return nil to keep the current behavior. ([#121867](https://github.com/kubernetes/kubernetes/pull/121867), [@lianghao208](https://github.com/lianghao208)) -- Added `apiextensions_apiserver_update_ratcheting_time` metric for tracking time taken during requests by feature `CRDValidationRatcheting`. ([#121462](https://github.com/kubernetes/kubernetes/pull/121462), [@alexzielenski](https://github.com/alexzielenski)) -- Added `apiserver_envelope_encryption_dek_cache_filled` to measure number of records in data encryption key (DEK) cache. ([#119878](https://github.com/kubernetes/kubernetes/pull/119878), [@ritazh](https://github.com/ritazh)) -- Added `apiserver_watch_list_duration_seconds` metrics which will measure response latency distribution in seconds for watchlist requests broken by group, version, resource and scope. ([#120490](https://github.com/kubernetes/kubernetes/pull/120490), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Added `job_pods_creation_total` metrics for tracking Pods created by the Job controller labeled by events which triggered the Pod creation. ([#121481](https://github.com/kubernetes/kubernetes/pull/121481), [@dejanzele](https://github.com/dejanzele)) -- Added `kubectl node drain` helper callbacks `OnPodDeletionOrEvictionStarted` - and `OnPodDeletionOrEvictionFailed`; people extending `kubectl` can use these - new callbacks for more granularity. Deprecated the `OnPodDeletedOrEvicted` - node drain helper callback. ([#117502](https://github.com/kubernetes/kubernetes/pull/117502), [@adilGhaffarDev](https://github.com/adilGhaffarDev)) -- Added a new `--init-only` command line flag to `kube-proxy`. Setting the flag makes `kube-proxy` perform its initial configuration that requires privileged mode, and then exit. The `--init-only` mode is intended to be executed in a privileged init container, so that the main container may run with a stricter `securityContext`. ([#120864](https://github.com/kubernetes/kubernetes/pull/120864), [@uablrek](https://github.com/uablrek)) [SIG Network and Scalability] -- Added a new scheduler metric, `pod_scheduling_sli_duration_seconds`, and started the deprecation for `pod_scheduling_duration_seconds`. ([#119049](https://github.com/kubernetes/kubernetes/pull/119049), [@helayoty](https://github.com/helayoty)) -- Added a return value to `QueueingHint` to indicate an error. If `QueueingHint` returns an error, - the scheduler logs it and treats the event as a `QueueAfterBackoff` so that - the Pod won't be stuck in the unschedulable pod pool. ([#119290](https://github.com/kubernetes/kubernetes/pull/119290), [@carlory](https://github.com/carlory)) -- Added apiserver identity to the following metrics: - `apiserver_envelope_encryption_key_id_hash_total`, `apiserver_envelope_encryption_key_id_hash_last_timestamp_seconds`, `apiserver_envelope_encryption_key_id_hash_status_last_timestamp_seconds`, `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_success_total`, `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`. - - Fixed bug to surface events for the following metrics: `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`, `apiserver_encryption_config_controller_automatic_reload_success_total`. ([#120438](https://github.com/kubernetes/kubernetes/pull/120438), [@ritazh](https://github.com/ritazh)) -- Added container filesystem to the `ImageFsInfoResponse`. ([#120914](https://github.com/kubernetes/kubernetes/pull/120914), [@kannon92](https://github.com/kannon92)) -- Added multiplication functionality to `Quantity`. ([#117411](https://github.com/kubernetes/kubernetes/pull/117411), [@tenzen-y](https://github.com/tenzen-y)) -- Added new feature gate called `RuntimeClassInImageCriApi` to address `kubelet` changes needed for KEP 4216. - Noteable changes: - 1. Populate new `RuntimeHandler` field in CRI's `ImageSpec` struct during image pulls from container runtimes. - 2. Pass `runtimeHandler` field in `RemoveImage()` call to container runtime in `kubelet`'s image garbage collection. ([#121456](https://github.com/kubernetes/kubernetes/pull/121456), [@kiashok](https://github.com/kiashok)) -- Added support for split image filesystem in kubelet. ([#120616](https://github.com/kubernetes/kubernetes/pull/120616), [@kannon92](https://github.com/kannon92)) -- Bumped `cel-go` to `v0.17.7` and introduced set `ext` library with new options. ([#121577](https://github.com/kubernetes/kubernetes/pull/121577), [@cici37](https://github.com/cici37)) -- Bumped `distroless-iptables` to `0.3.2` based on Go `1.21.1`. ([#120527](https://github.com/kubernetes/kubernetes/pull/120527), [@cpanato](https://github.com/cpanato)) -- Bumped `distroless-iptables` to `0.3.3` based on Go `1.21.2`. ([#121073](https://github.com/kubernetes/kubernetes/pull/121073), [@cpanato](https://github.com/cpanato)) -- Bumped `distroless-iptables` to `0.4.1` based on Go `1.21.3`. ([#121216](https://github.com/kubernetes/kubernetes/pull/121216), [@cpanato](https://github.com/cpanato)) -- Bumped `cel-go to` `v0.17.7` and introduced set ext library with new options. ([#121577](https://github.com/kubernetes/kubernetes/pull/121577), [@cici37](https://github.com/cici37)) -- CEL can now correctly handle a CRD `openAPIV3Schema` that has neither `Properties` nor `AdditionalProperties`. ([#121459](https://github.com/kubernetes/kubernetes/pull/121459), [@jiahuif](https://github.com/jiahuif)) -- CEL cost estimator no longer treats enums as unbounded strings when determining its length. Instead, the length is set to the longest possible enum value. ([#121085](https://github.com/kubernetes/kubernetes/pull/121085), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery] -- CRI: image pull per runtime class is now supported. ([#121121](https://github.com/kubernetes/kubernetes/pull/121121), [@kiashok](https://github.com/kiashok)) -- Certain `requestBody` parameters in the OpenAPI `v3` are now correctly marked as required. ([#120735](https://github.com/kubernetes/kubernetes/pull/120735), [@Jefftree](https://github.com/Jefftree)) -- Changed `kubectl help` to display basic details for subcommands from plugins. ([#116752](https://github.com/kubernetes/kubernetes/pull/116752), [@xvzf](https://github.com/xvzf)) -- Changed the `KMSv2KDF` feature gate to be enabled by default. ([#120433](https://github.com/kubernetes/kubernetes/pull/120433), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing] -- Client-side apply will now use OpenAPI `v3` by default. ([#120707](https://github.com/kubernetes/kubernetes/pull/120707), [@Jefftree](https://github.com/Jefftree)) -- Decoding etcd's response now respects the timeout context. ([#121614](https://github.com/kubernetes/kubernetes/pull/121614), [@HirazawaUi](https://github.com/HirazawaUi)) -- Decoupled `TaintManager` from `NodeLifeCycleController` (KEP-3902). ([#119208](https://github.com/kubernetes/kubernetes/pull/119208), [@atosatto](https://github.com/atosatto)) -- Enabled traces for KMSv2 encrypt/decrypt operations. ([#121095](https://github.com/kubernetes/kubernetes/pull/121095), [@aramase](https://github.com/aramase)) -- Fixed `kube-proxy` panicking on exit when the `Node` object changed its `PodCIDR`. ([#120375](https://github.com/kubernetes/kubernetes/pull/120375), [@pegasas](https://github.com/pegasas)) -- Fixed bugs in handling of server-side apply, create, and update API requests for objects containing duplicate items in keyed lists. - - A `create` or `update` API request with duplicate items in a keyed list no longer wipes out managedFields. Examples include env var entries with the same name, or port entries with the same containerPort in a pod spec. - - A server-side apply request that makes unrelated changes to an object which has duplicate items in a keyed list no longer fails, and leaves the existing duplicate items as-is. - - A server-side apply request that changes an object which has duplicate items in a keyed list, and modifies the duplicated item removes the duplicates and replaces them with the single item contained in the server-side apply request. ([#121575](https://github.com/kubernetes/kubernetes/pull/121575), [@apelisse](https://github.com/apelisse)) -- Fixed overriding default `KubeletConfig` fields in drop-in configs if not set. ([#121193](https://github.com/kubernetes/kubernetes/pull/121193), [@sohankunkerkar](https://github.com/sohankunkerkar)) -- Graduated API List chunking (aka pagination) feature to `stable`. ([#119503](https://github.com/kubernetes/kubernetes/pull/119503), [@wojtek-t](https://github.com/wojtek-t)) -- Graduated the `ReadWriteOncePod` feature gate to `GA`. ([#121077](https://github.com/kubernetes/kubernetes/pull/121077), [@chrishenzie](https://github.com/chrishenzie)) -- Graduated the following kubelet resource metrics to **general availability**: - - `container_cpu_usage_seconds_total` - - `container_memory_working_set_bytes` - - `container_start_time_seconds` - - `node_cpu_usage_seconds_total` - - `node_memory_working_set_bytes` - - `pod_cpu_usage_seconds_total` - - `pod_memory_working_set_bytes` - - `resource_scrape_error` - - Deprecated (renamed) `scrape_error` in favor of `resource_scrape_error` ([#116897](https://github.com/kubernetes/kubernetes/pull/116897), [@Richabanker](https://github.com/Richabanker)) [SIG Architecture, Instrumentation, Node and Testing] -- Implemented API for streaming for the `etcd` store implementation. - When `sendInitialEvents ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic `Bookmark`, after which the server continues streaming events. ([#119557](https://github.com/kubernetes/kubernetes/pull/119557), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Improved memory usage of `kube-scheduler` by dropping the `.metadata.managedFields` field that `kube-scheduler` doesn't require. ([#119556](https://github.com/kubernetes/kubernetes/pull/119556), [@linxiulei](https://github.com/linxiulei)) -- In a scheduler with `Permit` plugins, when a Pod is rejected during `WaitOnPermit`, the scheduler records the plugin. - The scheduler will use the record to honor cluster events and queueing `hints registered` for the plugin, to inform whether to retry the pod. ([#119785](https://github.com/kubernetes/kubernetes/pull/119785), [@sanposhiho](https://github.com/sanposhiho)) -- In-tree cloud providers are now switched off by default. Please use `DisableCloudProviders` and `DisableKubeletCloudCredentialProvider` feature flags if you still need this functionality. ([#117503](https://github.com/kubernetes/kubernetes/pull/117503), [@dims](https://github.com/dims)) -- Introduced new apiserver metric `apiserver_flowcontrol_current_inqueue_seats`. This metric is analogous to `apiserver_flowcontrol_current_inqueue_requests`, but tracks the total number of seats, as each request can take more than one seat. ([#119385](https://github.com/kubernetes/kubernetes/pull/119385), [@andrewsykim](https://github.com/andrewsykim)) -- Introduced the `job_finished_indexes_total` metric for the `BackoffLimitPerIndex` feature. ([#121292](https://github.com/kubernetes/kubernetes/pull/121292), [@mimowo](https://github.com/mimowo)) -- Kubeadm: supported updating certificate organization during `kubeadm certs renew` operation. ([#121841](https://github.com/kubernetes/kubernetes/pull/121841), [@SataQiu](https://github.com/SataQiu)) -- Kubernetes is now built with Go `1.21.0`. ([#118996](https://github.com/kubernetes/kubernetes/pull/118996), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with Go `1.21.1`. ([#120493](https://github.com/kubernetes/kubernetes/pull/120493), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with Go `1.21.2`. ([#121021](https://github.com/kubernetes/kubernetes/pull/121021), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with Go `1.21.4`. ([#121808](https://github.com/kubernetes/kubernetes/pull/121808), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with Go `v1.21.3`. ([#121149](https://github.com/kubernetes/kubernetes/pull/121149), [@cpanato](https://github.com/cpanato)) -- List of metric labels can now be configured by supplying a manifest using the `--allow-metric-labels-manifest` flag. ([#118299](https://github.com/kubernetes/kubernetes/pull/118299), [@rexagod](https://github.com/rexagod)) -- Listed the pods using `<PVC>` as an ephemeral storage volume in "Used by:" part of the output of `kubectl describe pvc <PVC>` command. ([#120427](https://github.com/kubernetes/kubernetes/pull/120427), [@MaGaroo](https://github.com/MaGaroo)) -- Migrated the `nodevolumelimits` scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116884](https://github.com/kubernetes/kubernetes/pull/116884), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Migrated the `volumebinding scheduler plugins` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116803](https://github.com/kubernetes/kubernetes/pull/116803), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Priority and Fairness feature is now `stable`, the feature gate will be removed in `v1.31`. ([#121638](https://github.com/kubernetes/kubernetes/pull/121638), [@tkashem](https://github.com/tkashem)) -- Promoted `PodHostIPs` condition to `beta`. ([#120257](https://github.com/kubernetes/kubernetes/pull/120257), [@wzshiming](https://github.com/wzshiming)) -- Promoted `PodHostIPs` condition to `beta`. ([#121477](https://github.com/kubernetes/kubernetes/pull/121477), [@wzshiming](https://github.com/wzshiming)) -- Promoted `PodReplacementPolicy` to `beta`. ([#121491](https://github.com/kubernetes/kubernetes/pull/121491), [@dejanzele](https://github.com/dejanzele)) -- Promoted `ServiceNodePortStaticSubrange` to stable and lock to default. ([#120233](https://github.com/kubernetes/kubernetes/pull/120233), [@xuzhenglun](https://github.com/xuzhenglun)) -- Promoted plugin subcommand resolution feature to `beta`. ([#120663](https://github.com/kubernetes/kubernetes/pull/120663), [@ardaguclu](https://github.com/ardaguclu)) -- Removed `/livez` livezchecks for KMS v1 and v2 to ensure KMS health does not cause `kube-apiserver` restart. KMS health checks are still in place as a healthz and readiness checks. ([#120583](https://github.com/kubernetes/kubernetes/pull/120583), [@ritazh](https://github.com/ritazh)) -- Restartable init containers resource in pod autoscaler are now calculated. ([#120001](https://github.com/kubernetes/kubernetes/pull/120001), [@qingwave](https://github.com/qingwave)) -- Sidecar termination is now serialized and each sidecar container will receive a `SIGTERM` after all main containers and later starting sidecar containers have terminated. ([#120620](https://github.com/kubernetes/kubernetes/pull/120620), [@tzneal](https://github.com/tzneal)) -- The CRD validation rule with feature gate `CustomResourceValidationExpressions` was promoted to `GA`. ([#121373](https://github.com/kubernetes/kubernetes/pull/121373), [@cici37](https://github.com/cici37)) -- The KMSv2 features with feature gates `KMSv2` and `KMSv2KDF` are promoted to `GA`. The `KMSv1` feature gate is now disabled by default. ([#121485](https://github.com/kubernetes/kubernetes/pull/121485), [@ritazh](https://github.com/ritazh)) -- The `--interactive` flag in `kubectl delete` is now visible to all users by default. ([#120416](https://github.com/kubernetes/kubernetes/pull/120416), [@ardaguclu](https://github.com/ardaguclu)) -- The `CloudDualStackNodeIPs` feature is now `beta`, meaning that when using - an external cloud provider that has been updated to support the feature, - you can pass comma-separated dual-stack `--node-ips` to `kubelet` and have - the cloud provider take both IPs into account. ([#120275](https://github.com/kubernetes/kubernetes/pull/120275), [@danwinship](https://github.com/danwinship)) -- The `Dockerfile` for the kubectl image has been updated with the addition of a specific base image and essential utilities (bash and jq). ([#119592](https://github.com/kubernetes/kubernetes/pull/119592), [@rayandas](https://github.com/rayandas)) -- The `SidecarContainers` feature has graduated to `beta` and is enabled by default. ([#121579](https://github.com/kubernetes/kubernetes/pull/121579), [@gjkim42](https://github.com/gjkim42)) -- The `kube-apiserver` will now expose four new metrics to inform about errors on the clusterIP and nodePort allocation logic. ([#120843](https://github.com/kubernetes/kubernetes/pull/120843), [@aojea](https://github.com/aojea)) -- The `volume_zone` plugin will consider `beta` labels as `GA` labels during the scheduling - process. Therefore, if the values of the labels are the same, PVs with `beta` labels - can also be scheduled to nodes with `GA` labels. ([#118923](https://github.com/kubernetes/kubernetes/pull/118923), [@AxeZhan](https://github.com/AxeZhan)) -- Updated the generic apiserver library to produce an error if a new API server is configured with support for a data format other than JSON, YAML, or Protobuf. ([#121325](https://github.com/kubernetes/kubernetes/pull/121325), [@benluddy](https://github.com/benluddy)) [SIG API Machinery] -- Use of secret-based service account tokens now adds an `authentication.k8s.io/legacy-token-autogenerated-secret` or `authentication.k8s.io/legacy-token-manual-secret` audit annotation containing the name of the secret used. ([#118598](https://github.com/kubernetes/kubernetes/pull/118598), [@yuanchen8911](https://github.com/yuanchen8911)) [SIG Auth, Instrumentation and Testing] -- `--sync-frequency` will not affect the update interval of volumes that use `ConfigMaps` - or `Secrets` when the `configMapAndSecretChangeDetectionStrategy` is set to `Cache`. - The update interval is only affected by `node.alpha.kubernetes.io/ttl` node annotation." ([#120255](https://github.com/kubernetes/kubernetes/pull/120255), [@likakuli](https://github.com/likakuli)) -- `CRDValidationRatcheting`: added support for ratcheting `x-kubernetes-validations` in schema. ([#121016](https://github.com/kubernetes/kubernetes/pull/121016), [@alexzielenski](https://github.com/alexzielenski)) -- `DevicePluginCDIDevices` feature has been graduated to `beta` and enabled by default in the kubelet. ([#121254](https://github.com/kubernetes/kubernetes/pull/121254), [@bart0sh](https://github.com/bart0sh)) -- `ValidatingAdmissionPolicy` now preserves types of composition variables, and raises type-related errors early. ([#121001](https://github.com/kubernetes/kubernetes/pull/121001), [@jiahuif](https://github.com/jiahuif)) -- `cluster/gce`: added webhook to replace `PersistentVolumeLabel` admission controller. ([#121628](https://github.com/kubernetes/kubernetes/pull/121628), [@andrewsykim](https://github.com/andrewsykim)) -- `dra`: the scheduler plugin now avoids additional scheduling attempts in some cases by falling back to SSA after a conflict. ([#120534](https://github.com/kubernetes/kubernetes/pull/120534), [@pohly](https://github.com/pohly)) -- `etcd`: image is now based on `v3.5.9`. ([#121567](https://github.com/kubernetes/kubernetes/pull/121567), [@mzaian](https://github.com/mzaian)) -- `kube-apiserver` added: - - `alpha` support (guarded by the `ServiceAccountTokenJTI` feature gate) for adding a `jti` (JWT ID) claim to service account tokens it issues, adding an `authentication.kubernetes.io/credential-id` audit annotation in audit logs when the tokens are issued, and `authentication.kubernetes.io/credential-id` entry in the extra user info when the token is used to authenticate. - - `alpha` support (guarded by the `ServiceAccountTokenPodNodeInfo` feature gate) for including the node name (and uid, if the node exists) as additional claims in service account tokens it issues which are bound to pods, and `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` extra user info when the token is used to authenticate. - - `alpha` support (guarded by the `ServiceAccountTokenNodeBinding` feature gate) for allowing `TokenRequests` that bind tokens directly to nodes, and (guarded by the ServiceAccountTokenNodeBindingValidation feature gate) for validating the node name and uid still exist when the token is used. ([#120780](https://github.com/kubernetes/kubernetes/pull/120780), [@munnerz](https://github.com/munnerz)) -- `kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate is now `beta` and enabled by default. When enabled, legacy auto-generated service account token secrets are auto-labeled with a `kubernetes.io/legacy-token-invalid-since` label if the credentials have not been used in the time specified by `--legacy-service-account-token-clean-up-period` (defaulting to one year), **and** are referenced from the `.secrets` list of a ServiceAccount object, **and** are not referenced from pods. This label causes the authentication layer to reject use of the credentials. After being labeled as invalid, if the time specified by `--legacy-service-account-token-clean-up-period` (defaulting to one year) passes without the credential being used, the secret is automatically deleted. Secrets labeled as invalid which have not been auto-deleted yet can be re-activated by removing the `kubernetes.io/legacy-token-invalid-since` label. ([#120682](https://github.com/kubernetes/kubernetes/pull/120682), [@yt2985](https://github.com/yt2985)) -- `kube-proxy` will only install the `DROP` rules for invalid `conntrack` states if - the `nf_conntrack_tcp_be_liberal` is not set. ([#120412](https://github.com/kubernetes/kubernetes/pull/120412), [@aojea](https://github.com/aojea)) -- `kube-scheduler` now implements scheduling hints for the `NodeAffinity` plugin. - The scheduling hints allow the scheduler to only retry scheduling a `Pod` - that was previously rejected by the `NodeAffinity` plugin if a new `Node` or a `Node` update matches the `Pod`'s node affinity. ([#119155](https://github.com/kubernetes/kubernetes/pull/119155), [@carlory](https://github.com/carlory)) -- `kube-scheduler` now implements scheduling hints for the `NodeUnschedulable` plugin. - The scheduling hints allow the scheduler to only retry scheduling a `Pod` - that was previously rejected by the `NodeSchedulable` plugin if a new `Node` or a `Node` update sets `.spec.unschedulable` to false. ([#119396](https://github.com/kubernetes/kubernetes/pull/119396), [@wackxu](https://github.com/wackxu)) -- `kubeadm`: deploying a kubelet that is 3 versions older than the version of `kubeadm` (N-3) is now allowed. This aligns with the recent change made by SIG Architecture that extends the support skew between the control plane and kubelets. Tolerate this new kubelet skew for the commands `init`, `join` and `upgrade`. Note that if the `kubeadm` user applies a control plane version that is older than the `kubeadm` version (N-1 maximum) then the skew between the kubelet and control plane would become a maximum of N-2. ([#120825](https://github.com/kubernetes/kubernetes/pull/120825), [@pacoxu](https://github.com/pacoxu)) -- `kubeadm`: promoted feature gate `EtcdLearnerMode` to `beta`. Learner mode for - joining `etcd` members is now enabled by default. ([#120228](https://github.com/kubernetes/kubernetes/pull/120228), [@pacoxu](https://github.com/pacoxu)) -- `kubeadm`: turned on feature gate `MergeCLIArgumentsWithConfig` to merge the config from flag and config file, otherwise, if the flag `--ignore-preflight-errors` is set from the CLI, then the value from config file will be ignored. ([#119946](https://github.com/kubernetes/kubernetes/pull/119946), [@chendave](https://github.com/chendave)) -- `kubeadm`: will now allow deploying a kubelet that is 3 versions older than the version of `kubeadm` (N-3). This aligns with the recent change made by SIG Architecture that extends the support skew between the control plane and kubelets. Tolerate this new kubelet skew for the commands `init`, `join` and `upgrade`. Note that if the `kubeadm` user applies a control plane version that is older than the `kubeadm` version (N-1 maximum) then the skew between the kubelet and control plane would become a maximum of N-2. ([#120825](https://github.com/kubernetes/kubernetes/pull/120825), [@pacoxu](https://github.com/pacoxu)) -- `kubelet` , when using `--cloud-provider=external`, will now initialize the node addresses with the value of `--node-ip` , if it exists, or waits for the cloud provider to assign the addresses. ([#121028](https://github.com/kubernetes/kubernetes/pull/121028), [@aojea](https://github.com/aojea)) -- `kubelet` will now allow pods to use the `net.ipv4.tcp_fin_timeout`, “net.ipv4.tcp_keepalive_intvl” - and “net.ipv4.tcp_keepalive_probes“ sysctl by default; Pod Security Admission - allows this sysctl in `v1.29+` versions of the baseline and restricted policies. ([#121240](https://github.com/kubernetes/kubernetes/pull/121240), [@HirazawaUi](https://github.com/HirazawaUi)) -- `kubelet` will now expose latency metrics of different stages of the node startup. ([#118568](https://github.com/kubernetes/kubernetes/pull/118568), [@qiutongs](https://github.com/qiutongs)) -- `kubelet` now allows pods to use the `net.ipv4.tcp_keepalive_time` sysctl by default - and the minimal kernel version is 4.5; Pod Security Admission allows this sysctl - in `v1.29+` versions of the baseline and restricted policies. ([#118846](https://github.com/kubernetes/kubernetes/pull/118846), [@cyclinder](https://github.com/cyclinder)) -- `kubelet` now emits a metric for end-to-end pod startup latency, including image pull. ([#121041](https://github.com/kubernetes/kubernetes/pull/121041), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) -- `kubelet` now exposes latency metrics of different stages of the node startup. ([#118568](https://github.com/kubernetes/kubernetes/pull/118568), [@qiutongs](https://github.com/qiutongs)) - -### Documentation - -- Added descriptions and examples for the situation of using `kubectl rollout restart` without specifying a particular deployment. ([#120118](https://github.com/kubernetes/kubernetes/pull/120118), [@Ithrael](https://github.com/Ithrael)) -- When the kubelet fails to assign CPUs to a Pod because there less available CPUs than the Pod requests, the error message changed from - `not enough cpus available to satisfy request` to `not enough cpus available to satisfy request: <num_requested> requested, only <num_available> available`. ([#121059](https://github.com/kubernetes/kubernetes/pull/121059), [@matte21](https://github.com/matte21)) - -### Failing Test - -- Added mock framework support for unit tests for Windows in `kubeproxy`. ([#120105](https://github.com/kubernetes/kubernetes/pull/120105), [@princepereira](https://github.com/princepereira)) -- DRA: when the scheduler had to deallocate a claim after a node became unsuitable for a pod, it might have needed more attempts than really necessary. This was fixed by first disabling allocations. ([#120428](https://github.com/kubernetes/kubernetes/pull/120428), [@pohly](https://github.com/pohly)) -- E2e framework: retrying after intermittent `apiserver` failures was fixed in `WaitForPodsResponding` ([#120559](https://github.com/kubernetes/kubernetes/pull/120559), [@pohly](https://github.com/pohly)) -- KCM specific args can be passed with `/cluster` script, without affecting CCM. New variable name: `KUBE_CONTROLLER_MANAGER_TEST_ARGS`. ([#120524](https://github.com/kubernetes/kubernetes/pull/120524), [@jprzychodzen](https://github.com/jprzychodzen)) [SIG Cloud Provider] -- `k8s.io/dynamic-resource-allocation`: DRA drivers updating to this release are compatible with Kubernetes `v1.27` and `v1.28`. ([#120868](https://github.com/kubernetes/kubernetes/pull/120868), [@pohly](https://github.com/pohly)) - -### Bug or Regression - -- `kubeadm`: printing the default component configs for `reset` and `join` is now - unsupported. ([#119346](https://github.com/kubernetes/kubernetes/pull/119346), [@chendave](https://github.com/chendave)) -- `kubeadm`: removed `system:masters` organization from `etcd/healthcheck-client` - certificate. ([#119859](https://github.com/kubernetes/kubernetes/pull/119859), [@SataQiu](https://github.com/SataQiu)) -- Added `CAP_NET_RAW` to netadmin debug profile and removed privileges when debugging nodes. ([#118647](https://github.com/kubernetes/kubernetes/pull/118647), [@mochizuki875](https://github.com/mochizuki875)) -- Added a check on a user attempting to create a static pod via the `kubelet` without specifying a name. They will now get a visible validation error. ([#119522](https://github.com/kubernetes/kubernetes/pull/119522), [@YTGhost](https://github.com/YTGhost)) -- Added a redundant process to remove tracking finalizers from Pods that belong to Jobs. The process kicks in after the control plane marks a Job as finished. ([#119944](https://github.com/kubernetes/kubernetes/pull/119944), [@Sharpz7](https://github.com/Sharpz7)) -- Added more accurate requeueing in scheduling queue for Pods rejected by the temporal failure (e.g., temporal failure on `kube-apiserver`). ([#119105](https://github.com/kubernetes/kubernetes/pull/119105), [@sanposhiho](https://github.com/sanposhiho)) -- Allowed specifying `ExternalTrafficPolicy` for `Services` with `ExternalIPs`. ([#119150](https://github.com/kubernetes/kubernetes/pull/119150), [@tnqn](https://github.com/tnqn)) -- Changed kubelet logs from `error` to `info` for uncached partitions when using CRI stats provider. ([#100448](https://github.com/kubernetes/kubernetes/pull/100448), [@saschagrunert](https://github.com/saschagrunert)) -- Empty values are no longer assigned to undefined resources (CPU or memory) when storing the resources allocated to the pod in checkpoint. ([#117615](https://github.com/kubernetes/kubernetes/pull/117615), [@aheng-ch](https://github.com/aheng-ch)) -- Fixed CEL estimated cost of `replace()` to handle a zero length replacement string correctly. - Previously this would cause the estimated cost to be higher than it should be. ([#120097](https://github.com/kubernetes/kubernetes/pull/120097), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery] -- Fixed OpenAPI v3 not being cleaned up after deleting `APIServices`. ([#120108](https://github.com/kubernetes/kubernetes/pull/120108), [@tnqn](https://github.com/tnqn)) -- Fixed [121094](https://github.com/kubernetes/kubernetes/issues/121094) by re-introducing the readiness predicate for `externalTrafficPolicy: Local` services. ([#121116](https://github.com/kubernetes/kubernetes/pull/121116), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) -- Fixed `kubectl events` not filtering events by `GroupVersion` for resources with a full name. ([#120119](https://github.com/kubernetes/kubernetes/pull/120119), [@Ithrael](https://github.com/Ithrael)) -- Fixed `systemLogQuery` service name matching. ([#120678](https://github.com/kubernetes/kubernetes/pull/120678), [@rothgar](https://github.com/rothgar)) -- Fixed a `1.27` scheduling regression that `PostFilter` plugin may not function if previous `PreFilter` plugins return `Skip`. ([#119769](https://github.com/kubernetes/kubernetes/pull/119769), [@Huang-Wei](https://github.com/Huang-Wei)) -- Fixed a `v1.26` regression scheduling bug by ensuring that preemption is skipped when a `PreFilter` plugin returns `UnschedulableAndUnresolvable`. ([#119778](https://github.com/kubernetes/kubernetes/pull/119778), [@sanposhiho](https://github.com/sanposhiho)) -- Fixed a `v1.28.0` regression where `kube-controller-manager` can crash when `StatefulSet` with `Parallel` policy and PVC labels are scaled up. ([#121142](https://github.com/kubernetes/kubernetes/pull/121142), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) -- Fixed a `v1.28` regression around restarting init containers in the right order relative to normal containers. ([#120281](https://github.com/kubernetes/kubernetes/pull/120281), [@gjkim42](https://github.com/gjkim42)) -- Fixed a `v1.28` regression handling negative index json patches. ([#120327](https://github.com/kubernetes/kubernetes/pull/120327), [@liggitt](https://github.com/liggitt)) -- Fixed a `v1.28` regression in scheduler: a pod with concurrent events could incorrectly get moved to the unschedulable queue where it could get stuck until the next periodic purging after 5 minutes, if there was no other event for it. ([#120413](https://github.com/kubernetes/kubernetes/pull/120413), [@pohly](https://github.com/pohly)) -- Fixed a bug around restarting init containers in the right order relative to normal containers with `SidecarContainers` feature enabled. ([#120269](https://github.com/kubernetes/kubernetes/pull/120269), [@gjkim42](https://github.com/gjkim42)) -- Fixed a bug in the cronjob controller where already created jobs might be missing from the status. ([#120649](https://github.com/kubernetes/kubernetes/pull/120649), [@andrewsykim](https://github.com/andrewsykim)) -- Fixed a bug where `Services` using finalizers may hold onto `ClusterIP` and/or `NodePort` allocated resources for longer than expected if the finalizer is removed using the status subresource. ([#120623](https://github.com/kubernetes/kubernetes/pull/120623), [@aojea](https://github.com/aojea)) -- Fixed a bug where an API group's path was not unregistered from the API server's root paths when the group was deleted. ([#121283](https://github.com/kubernetes/kubernetes/pull/121283), [@tnqn](https://github.com/tnqn)) [SIG API Machinery and Testing] -- Fixed a bug where containers would not start on `cgroupv2` systems where `swap` is disabled. ([#120784](https://github.com/kubernetes/kubernetes/pull/120784), [@elezar](https://github.com/elezar)) -- Fixed a bug where the CPU set allocated to an init container, with containerRestartPolicy of `Always`, were erroneously reused by a regular container. ([#119447](https://github.com/kubernetes/kubernetes/pull/119447), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing] -- Fixed a bug where the device resources allocated to an init container, with `containerRestartPolicy` of `Always`, were erroneously reused by a regular container. ([#120461](https://github.com/kubernetes/kubernetes/pull/120461), [@gjkim42](https://github.com/gjkim42)) -- Fixed a bug where the memory resources allocated to an init container, with containerRestartPolicy of `Always`, were erroneously reused by a regular container. ([#120715](https://github.com/kubernetes/kubernetes/pull/120715), [@gjkim42](https://github.com/gjkim42)) [SIG Node] -- Fixed a concurrent map access in `TopologyCache`'s `HasPopulatedHints` method. ([#118189](https://github.com/kubernetes/kubernetes/pull/118189), [@Miciah](https://github.com/Miciah)) -- Fixed a regression (`CLIENTSET_PKG: unbound variable`) when invoking deprecated `generate-groups.sh` script. ([#120877](https://github.com/kubernetes/kubernetes/pull/120877), [@soltysh](https://github.com/soltysh)) -- Fixed a regression in `kube-proxy` where it might refuse to start if given - single-stack `IPv6` configuration options on a node that has both `IPv4` and - `IPv6` IPs. ([#121008](https://github.com/kubernetes/kubernetes/pull/121008), [@danwinship](https://github.com/danwinship)) -- Fixed a regression in default configurations, which enabled `PodDisruptionConditions` - by default, that prevented the control plane's pod garbage collector from deleting - pods that contained duplicated field keys (environmental variables with repeated keys or - container ports). ([#121103](https://github.com/kubernetes/kubernetes/pull/121103), [@mimowo](https://github.com/mimowo)) -- Fixed a regression in the default `v1.27` configurations in `kube-apiserver`: fixed the `AggregatedDiscoveryEndpoint` feature (`beta` in `v1.27+`) to successfully fetch discovery information from aggregated API servers that do not check `Accept` headers when serving the `/apis` endpoint. ([#119870](https://github.com/kubernetes/kubernetes/pull/119870), [@Jefftree](https://github.com/Jefftree)) -- Fixed a regression in the kubelet's behavior while creating a container when the `EventedPLEG` feature gate is enabled. ([#120942](https://github.com/kubernetes/kubernetes/pull/120942), [@sairameshv](https://github.com/sairameshv)) -- Fixed a regression since `v1.27.0` in the scheduler framework when running score plugins. - The `skippedScorePlugins` number might be greater than `enabledScorePlugins`, - so when initializing a slice the `cap(len(skippedScorePlugins) - len(enabledScorePlugins))` is negative, - which is not allowed. ([#121632](https://github.com/kubernetes/kubernetes/pull/121632), [@kerthcet](https://github.com/kerthcet)) -- Fixed a situation when, sometimes, the scheduler incorrectly placed a pod in the `unschedulable` queue instead of the `backoff` queue. This happened when some plugin previously declared the pod as `unschedulable` and then in a later attempt encounters some other error. Scheduling of that pod then got delayed by up to five minutes, after which periodic flushing moved the pod back into the `active` queue. ([#120334](https://github.com/kubernetes/kubernetes/pull/120334), [@pohly](https://github.com/pohly)) -- Fixed an issue related to not draining all the pods in a namespace when an empty selector, i.e., "{}," is specified in a Pod Disruption Budget (PDB). ([#119732](https://github.com/kubernetes/kubernetes/pull/119732), [@sairameshv](https://github.com/sairameshv)) -- Fixed an issue where `StatefulSet` might not restart a pod after eviction or node failure. ([#120398](https://github.com/kubernetes/kubernetes/pull/120398), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) -- Fixed an issue where a `CronJob` could fail to clean up Jobs when the `ResourceQuota` for `Jobs` had been reached. ([#119776](https://github.com/kubernetes/kubernetes/pull/119776), [@ASverdlov](https://github.com/ASverdlov)) -- Fixed an issue where a `StatefulSet` might not restart a pod after eviction or node failure. ([#121389](https://github.com/kubernetes/kubernetes/pull/121389), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) -- Fixed an issue with the `garbagecollection` controller registering duplicate event handlers if discovery requests failed. ([#117992](https://github.com/kubernetes/kubernetes/pull/117992), [@liggitt](https://github.com/liggitt)) -- Fixed attaching volumes after detach errors. Now volumes that failed to detach are not treated as attached. Kubernetes will make sure they are fully attached before they can be used by pods. ([#120595](https://github.com/kubernetes/kubernetes/pull/120595), [@jsafrane](https://github.com/jsafrane)) -- Fixed bug that kubelet resource metric `container_start_time_seconds` had timestamp equal to container start time. ([#120518](https://github.com/kubernetes/kubernetes/pull/120518), [@saschagrunert](https://github.com/saschagrunert)) [SIG Instrumentation, Node and Testing] -- Fixed inconsistency in the calculation of number of nodes that have an image, which affect the scoring in the `ImageLocality` plugin. ([#116938](https://github.com/kubernetes/kubernetes/pull/116938), [@olderTaoist](https://github.com/olderTaoist)) -- Fixed issue with incremental id generation for `loadbalancer` and `endpoint` in `kubeproxy` mock test framework. ([#120723](https://github.com/kubernetes/kubernetes/pull/120723), [@princepereira](https://github.com/princepereira)) -- Fixed panic in Job controller when `podRecreationPolicy: Failed` is used, and the number of terminating pods exceeds parallelism. ([#121147](https://github.com/kubernetes/kubernetes/pull/121147), [@kannon92](https://github.com/kannon92)) -- Fixed regression with adding aggregated `APIservices` panicking and affected health check introduced in release `v1.28.0`. ([#120814](https://github.com/kubernetes/kubernetes/pull/120814), [@Jefftree](https://github.com/Jefftree)) -- Fixed some invalid and unimportant log calls. ([#121249](https://github.com/kubernetes/kubernetes/pull/121249), [@pohly](https://github.com/pohly)) [SIG Cloud Provider, Cluster Lifecycle and Testing] -- Fixed stale SMB mount issue when SMB file share is deleted and then unmounted. ([#121851](https://github.com/kubernetes/kubernetes/pull/121851), [@andyzhangx](https://github.com/andyzhangx)) -- Fixed the bug where images that were pinned by the container runtime could be garbage collected by `kubelet`. ([#119986](https://github.com/kubernetes/kubernetes/pull/119986), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) -- Fixed the bug where kubelet couldn't output logs after log file rotated when `kubectl logs POD_NAME -f` is running. ([#115702](https://github.com/kubernetes/kubernetes/pull/115702), [@xyz-li](https://github.com/xyz-li)) -- Fixed the calculation of the requeue time in the cronjob controller, resulting in proper handling of failed/stuck jobs. ([#121327](https://github.com/kubernetes/kubernetes/pull/121327), [@soltysh](https://github.com/soltysh)) -- Fixed the issue where pod with ordinal number lower than the rolling partitioning number was being deleted. It was coming up with updated image. ([#120731](https://github.com/kubernetes/kubernetes/pull/120731), [@adilGhaffarDev](https://github.com/adilGhaffarDev)) -- Fixed tracking of terminating Pods in the Job status. The field was not updated unless there were other changes to apply. ([#121342](https://github.com/kubernetes/kubernetes/pull/121342), [@dejanzele](https://github.com/dejanzele)) -- Forbidden sysctls for pod sharing the respective namespaces with the host are now checked when creating or updating pods without such sysctls. ([#118705](https://github.com/kubernetes/kubernetes/pull/118705), [@pacoxu](https://github.com/pacoxu)) -- If a watch with the `progressNotify` option set is to be created, and the registry hasn't provided a `newFunc`, an error is now returned. ([#120212](https://github.com/kubernetes/kubernetes/pull/120212), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] -- Improved handling of jsonpath expressions for `kubectl wait --for`. It is now possible to use simple filter expressions which match on a field's content. ([#118748](https://github.com/kubernetes/kubernetes/pull/118748), [@andreaskaris](https://github.com/andreaskaris)) -- In the `wait.PollUntilContextTimeout` function, if `immediate` is true, the condition will now be invoked before waiting, guaranteeing that the condition is invoked at least once and then wait a interval before executing again. ([#119762](https://github.com/kubernetes/kubernetes/pull/119762), [@AxeZhan](https://github.com/AxeZhan)) -- KCCM: fixed transient node addition and removal caused by #121090 while syncing load balancers on large clusters with a lot of churn. ([#121091](https://github.com/kubernetes/kubernetes/pull/121091), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) -- Kubeadm: changed the "system:masters" Group in the apiserver-kubelet-client.crt certificate Subject to be "kubeadm:cluster-admins" which is a less privileged Group. ([#121837](https://github.com/kubernetes/kubernetes/pull/121837), [@neolit123](https://github.com/neolit123)) -- Incorporated feedback on PR #119341, on `failOpen` metric counting for mutate and validate webhooks ([#120087](https://github.com/kubernetes/kubernetes/pull/120087), [@divyasri537](https://github.com/divyasri537)) [SIG API Machinery] -- Metric buckets for `pod_start_duration_seconds` were changed to `{0.5, 1, 2, 3, 4, 5, 6, 8, 10, 20, 30, 45, 60, 120, 180, 240, 300, 360, 480, 600, 900, 1200, 1800, 2700, 3600}`. ([#120680](https://github.com/kubernetes/kubernetes/pull/120680), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) -- Mitigated http/2 DOS vulnerabilities for `CVE-2023-44487` and `CVE-2023-39325` for the API server when the client is unauthenticated. The mitigation may be disabled by setting the `UnauthenticatedHTTP2DOSMitigation` feature gate to `false` (it is enabled by default). An API server fronted by an L7 load balancer that already mitigates these http/2 attacks may choose to disable the kube-apiserver mitigation to avoid disrupting load balancer -> kube-apiserver connections if http/2 requests from multiple clients share the same backend connection. An API server on a private network may opt to disable the kube-apiserver mitigation to prevent performance regressions for unauthenticated clients. Authenticated requests rely on the fix in golang.org/x/net `v0.17.0` alone. https://issue.k8s.io/121197 tracks further mitigation of http/2 attacks by authenticated clients. ([#121120](https://github.com/kubernetes/kubernetes/pull/121120), [@enj](https://github.com/enj)) -- No-op and GC related updates to cluster trust bundles no longer require attest authorization when the `ClusterTrustBundleAttest` plugin is enabled. ([#120779](https://github.com/kubernetes/kubernetes/pull/120779), [@enj](https://github.com/enj)) -- Registered metric `apiserver_request_body_size_bytes` to track the size distribution of requests by `resource` and `verb`. ([#120474](https://github.com/kubernetes/kubernetes/pull/120474), [@YaoC](https://github.com/YaoC)) [SIG API Machinery and Instrumentation] -- Revised the logic for `DaemonSet` rolling update to exclude nodes if scheduling constraints are not met. This eliminates the problem of rolling updates to a `DaemonSet` getting stuck around tolerations. ([#119317](https://github.com/kubernetes/kubernetes/pull/119317), [@mochizuki875](https://github.com/mochizuki875)) -- Scheduler: in `v1.29` pre-releases, enabling contextual logging slowed down pod scheduling. ([#121715](https://github.com/kubernetes/kubernetes/pull/121715), [@pohly](https://github.com/pohly)) [SIG Instrumentation and Scheduling] -- Service Controller: load balancer hosts will now update after node's `ProviderID` is updated. ([#120492](https://github.com/kubernetes/kubernetes/pull/120492), [@cezarygerard](https://github.com/cezarygerard)) -- Setting the `status.loadBalancer` of a Service whose `spec.type` is not `LoadBalancer` was previously allowed, but any update to the `metadata` or `spec` would wipe that field. Setting this field is no longer permitted unless `spec.type` is `LoadBalancer`. In the very unlikely event that this has unexpected impact, you can enable the `AllowServiceLBStatusOnNonLB` feature gate, which will restore the previous behavior. If you do need to set this, please file an issue with the Kubernetes project to help contributors understand why you need it. ([#119789](https://github.com/kubernetes/kubernetes/pull/119789), [@thockin](https://github.com/thockin)) -- The `--bind-address` parameter in kube-proxy is misleading, no port is opened with this address. Instead it is translated internally to "nodeIP". The nodeIPs for both families are now taken from the Node object if `--bind-address` is unspecified or set to the "any" address (0.0.0.0 or ::). It is recommended to leave `--bind-address` unspecified, and in particular avoid to set it to localhost (127.0.0.1 or ::1) ([#119525](https://github.com/kubernetes/kubernetes/pull/119525), [@uablrek](https://github.com/uablrek)) [SIG Network and Scalability] -- Updated `kube-openapi` to remove invalid defaults: OpenAPI spec no longer includes default of `{}` for certain fields where it did not make sense. ([#120757](https://github.com/kubernetes/kubernetes/pull/120757), [@alexzielenski](https://github.com/alexzielenski)) -- Updated the CRI-O socket path, so users who configure kubelet to use a location like `/run/crio/crio.sock` don't see strange behaviour from CRI stats provider. ([#118704](https://github.com/kubernetes/kubernetes/pull/118704), [@dgl](https://github.com/dgl)) -- Volume attach or publish operation will not fail at `kubelet` if target path directory already exists on the node. ([#119735](https://github.com/kubernetes/kubernetes/pull/119735), [@akankshapanse](https://github.com/akankshapanse)) -- `cluster-bootstrap`: improved the security of the functions responsible for generation and validation of bootstrap tokens. ([#120400](https://github.com/kubernetes/kubernetes/pull/120400), [@neolit123](https://github.com/neolit123)) -- `etcd`: updated to `v3.5.10`. ([#121566](https://github.com/kubernetes/kubernetes/pull/121566), [@mzaian](https://github.com/mzaian)) -- `k8s.io/dynamic-resource-allocation/controller:` `UnsuitableNodes` can now handle a mix of allocated and unallocated claims correctly. ([#120338](https://github.com/kubernetes/kubernetes/pull/120338), [@pohly](https://github.com/pohly)) -- `k8s.io/dynamic-resource-allocation/controller`: `ResourceClaimParameters` and `ResourceClassParameters` validation errors are now visible on `ResourceClaim`, `ResourceClass` and `Pod`. ([#121065](https://github.com/kubernetes/kubernetes/pull/121065), [@byako](https://github.com/byako)) -- `k8s.io/dynamic-resource-allocation`: can now handle a `selected` node which isn't listed - as `potential` node. ([#120871](https://github.com/kubernetes/kubernetes/pull/120871), [@pohly](https://github.com/pohly)) -- `kube-proxy` now reports its health more accurately in dual-stack clusters when there are problems with only one IP family. ([#118146](https://github.com/kubernetes/kubernetes/pull/118146), [@aroradaman](https://github.com/aroradaman)) -- `kubeadm`: fixed the bug where it always did CRI detection when `--config` was passed, even if it is not required by the subcommand. ([#120828](https://github.com/kubernetes/kubernetes/pull/120828), [@SataQiu](https://github.com/SataQiu)) -- `kubeadm`: use universal deserializer to decode static pod. ([#120549](https://github.com/kubernetes/kubernetes/pull/120549), [@pacoxu](https://github.com/pacoxu)) -- `kubeadm`: fix `nil` pointer when `etcd` member is already removed. ([#119753](https://github.com/kubernetes/kubernetes/pull/119753), [@pacoxu](https://github.com/pacoxu)) -- `kubeadm`: fixed the bug where `--image-repository` flag is missing for some init - phase sub-commands. ([#120072](https://github.com/kubernetes/kubernetes/pull/120072), [@SataQiu](https://github.com/SataQiu)) -- `kubeadm`: improved the logic that checks whether a `systemd` service exists. ([#120514](https://github.com/kubernetes/kubernetes/pull/120514), [@fengxsong](https://github.com/fengxsong)) -- `kubeadm`: will now use universal deserializer to decode static pod. ([#120549](https://github.com/kubernetes/kubernetes/pull/120549), [@pacoxu](https://github.com/pacoxu)) -- `kubectl prune v2`: Switched annotation from `contains-group-resources` to `contains-group-kinds`, - because this is what we defined in the KEP and is clearer to end-users. Although the functionality is - in `alpha`, we will recognize the prior annotation. This migration support will be removed in `beta`/`GA`. ([#118942](https://github.com/kubernetes/kubernetes/pull/118942), [@justinsb](https://github.com/justinsb)) -- `kubectl` will not print events if `--show-events=false` argument is passed to - describe PVC subcommand. ([#120380](https://github.com/kubernetes/kubernetes/pull/120380), [@MaGaroo](https://github.com/MaGaroo)) -- `scheduler`: Fixed missing field `apiVersion` from events reported by the taint - manager. ([#114095](https://github.com/kubernetes/kubernetes/pull/114095), [@aimuz](https://github.com/aimuz)) - -### Other (Cleanup or Flake) - -- Added automatic download of the CNI binary in `local-up-cluster.sh`, facilitating local debugging. ([#120312](https://github.com/kubernetes/kubernetes/pull/120312), [@HirazawaUi](https://github.com/HirazawaUi)) -- Added context to `caches populated` log messages. ([#119796](https://github.com/kubernetes/kubernetes/pull/119796), [@sttts](https://github.com/sttts)) -- Changed behavior of `kube-proxy` by allowing to set `sysctl` values lower than the existing one. ([#120448](https://github.com/kubernetes/kubernetes/pull/120448), [@aroradaman](https://github.com/aroradaman)) -- Cleaned up `kube-apiserver` HTTP logs for impersonated requests. ([#119795](https://github.com/kubernetes/kubernetes/pull/119795), [@sttts](https://github.com/sttts)) -- Deprecated the `--cloud-provider` and `--cloud-config` CLI parameters in kube-apiserver. - These parameters will be removed in a future release. ([#120903](https://github.com/kubernetes/kubernetes/pull/120903), [@dims](https://github.com/dims)) [SIG API Machinery] -- Dynamic resource allocation: will now avoid creating a new gRPC connection for every call of prepare/unprepare resource(s). ([#118619](https://github.com/kubernetes/kubernetes/pull/118619), [@TommyStarK](https://github.com/TommyStarK)) -- E2E storage tests: setting test tags like `[Slow]` via the `DriverInfo.FeatureTag` field is no longer supported. ([#121391](https://github.com/kubernetes/kubernetes/pull/121391), [@pohly](https://github.com/pohly)) -- Fixed an issue where the `vsphere` cloud provider would not trust a certificate if: - - The issuer of the certificate was unknown (`x509.UnknownAuthorityError`) - - The requested name did not match the set of authorized names (`x509.HostnameError`) - - The error surfaced after attempting a connection contained one of the substrings: "certificate is not trusted" or "certificate signed by unknown authority". ([#120736](https://github.com/kubernetes/kubernetes/pull/120736), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) -- Fixed bug where `Adding GroupVersion` log line was constantly repeated without any group version changes. ([#119825](https://github.com/kubernetes/kubernetes/pull/119825), [@Jefftree](https://github.com/Jefftree)) -- Generated `ResourceClaim` names are now more readable because of an additional hyphen before the random suffix (`<pod name>-<claim name>-<random suffix>`). ([#120336](https://github.com/kubernetes/kubernetes/pull/120336), [@pohly](https://github.com/pohly)) -- Graduated `JobReadyPods` to `stable`. The feature gate can no longer be disabled. ([#121302](https://github.com/kubernetes/kubernetes/pull/121302), [@stuton](https://github.com/stuton)) -- Improved memory usage of `kube-controller-manager` by dropping the `.metadata.managedFields` field that `kube-controller-manager` doesn't require. ([#118455](https://github.com/kubernetes/kubernetes/pull/118455), [@linxiulei](https://github.com/linxiulei)) -- Lower and upper case feature flag values are now allowed, but the name still has to match. ([#121441](https://github.com/kubernetes/kubernetes/pull/121441), [@soltysh](https://github.com/soltysh)) -- Makefile and scripts now respect `GOTOOLCHAIN` and otherwise ensure `./.go-version` is used. ([#120279](https://github.com/kubernetes/kubernetes/pull/120279), [@BenTheElder](https://github.com/BenTheElder)) -- Migrated the remainder of the scheduler to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#120933](https://github.com/kubernetes/kubernetes/pull/120933), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation, Scheduling and Testing] -- Optimized `NodeUnschedulable` Filter to avoid unnecessary calculations. ([#119399](https://github.com/kubernetes/kubernetes/pull/119399), [@wackxu](https://github.com/wackxu)) -- Previous versions of Kubernetes on Google Cloud required that workloads (e.g., Deployments, DaemonSets, etc.) which used `PersistentDisk` volumes were using them in read-only mode. This validation provided very little value at relatively host implementation cost, and will no longer be validated. If this is a problem for a specific use-case, please set the `SkipReadOnlyValidationGCE` gate to false to re-enable the validation, and file a Kubernetes bug with details. ([#121083](https://github.com/kubernetes/kubernetes/pull/121083), [@thockin](https://github.com/thockin)) -- Previously, the pod name and namespace were eliminated in the event log message. This PR attempts to add the preemptor pod UID in the preemption event message logs for easier debugging and safer transparency. ([#119971](https://github.com/kubernetes/kubernetes/pull/119971), [@kwakubiney](https://github.com/kwakubiney)) [SIG Scheduling] -- Promoted to conformance a test that verified that `Services` only forward traffic on the port and protocol specified. ([#120069](https://github.com/kubernetes/kubernetes/pull/120069), [@aojea](https://github.com/aojea)) -- Removed `GA` feature gate about `CSIMigrationvSphere`. ([#121291](https://github.com/kubernetes/kubernetes/pull/121291), [@bzsuni](https://github.com/bzsuni)) -- Removed `GA` feature gate about `ProbeTerminationGracePeriod`. ([#121257](https://github.com/kubernetes/kubernetes/pull/121257), [@bzsuni](https://github.com/bzsuni)) -- Removed `GA` feature gate for `JobTrackingWithFinalizers` in `v1.28`. ([#119100](https://github.com/kubernetes/kubernetes/pull/119100), [@bzsuni](https://github.com/bzsuni)) -- Removed `GA`ed feature gate `TopologyManager`. ([#121252](https://github.com/kubernetes/kubernetes/pull/121252), [@tukwila](https://github.com/tukwila)) -- Removed `GA`ed feature gates `OpenAPIV3`. ([#121255](https://github.com/kubernetes/kubernetes/pull/121255), [@tukwila](https://github.com/tukwila)) -- Removed `GA`ed feature gates `SeccompDefault`. ([#121246](https://github.com/kubernetes/kubernetes/pull/121246), [@tukwila](https://github.com/tukwila)) -- Removed ephemeral container legacy server support for the server versions prior to `1.22`. ([#119537](https://github.com/kubernetes/kubernetes/pull/119537), [@ardaguclu](https://github.com/ardaguclu)) -- Removed the `CronJobTimeZone` feature gate (the feature is stable and always enabled) - - Removed the `JobMutableNodeSchedulingDirectives` feature gate (the feature is stable and always enabled) - - Removed the `LegacyServiceAccountTokenNoAutoGeneration` feature gate (the feature is stable and always enabled) ([#120192](https://github.com/kubernetes/kubernetes/pull/120192), [@SataQiu](https://github.com/SataQiu)) [SIG Apps, Auth and Scheduling] -- Removed the `DownwardAPIHugePages` feature gate (the feature is stable and always enabled) ([#120249](https://github.com/kubernetes/kubernetes/pull/120249), [@pacoxu](https://github.com/pacoxu)) [SIG Apps and Node] -- Removed the `GRPCContainerProbe` feature gate (the feature is stable and always enabled). ([#120248](https://github.com/kubernetes/kubernetes/pull/120248), [@pacoxu](https://github.com/pacoxu)) -- Renamed `apiserver_request_body_sizes` metric to `apiserver_request_body_size_bytes`. ([#120503](https://github.com/kubernetes/kubernetes/pull/120503), [@dgrisonnet](https://github.com/dgrisonnet)) -- Set the resolution for the `job_controller_job_sync_duration_seconds` metric from `4ms` to `1min`. ([#120577](https://github.com/kubernetes/kubernetes/pull/120577), [@alculquicondor](https://github.com/alculquicondor)) -- The `horizontalpodautoscaling` and `clusterrole-aggregation` controllers now assume the `autoscaling/v1` and `rbac.authorization.k8s.io/v1` APIs are available. If you disable those APIs and do not want to run those controllers, exclude them by passing `--controllers=-horizontalpodautoscaling` or `--controllers=-clusterrole-aggregation` to `kube-controller-manager`. ([#117977](https://github.com/kubernetes/kubernetes/pull/117977), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Cloud Provider] -- The metrics controlled by the `ComponentSLIs` feature-gate and served at `/metrics/slis` are now GA and unconditionally enabled. The feature-gate will be removed in `v1.31`. ([#120574](https://github.com/kubernetes/kubernetes/pull/120574), [@logicalhan](https://github.com/logicalhan)) -- Updated CNI plugins to `v1.3.0`. ([#119969](https://github.com/kubernetes/kubernetes/pull/119969), [@saschagrunert](https://github.com/saschagrunert)) -- Updated `cri-tools` to `v1.28.0`. ([#119933](https://github.com/kubernetes/kubernetes/pull/119933), [@saschagrunert](https://github.com/saschagrunert)) -- Updated `distroless-iptables` to use `registry.k8s.io/build-image/distroless-iptables:v0.3.1`. ([#120352](https://github.com/kubernetes/kubernetes/pull/120352), [@saschagrunert](https://github.com/saschagrunert)) -- Updated runc to `1.1.10`. ([#121739](https://github.com/kubernetes/kubernetes/pull/121739), [@ty-dc](https://github.com/ty-dc)) -- Upgraded `coredns` to `v1.11.1`. ([#120116](https://github.com/kubernetes/kubernetes/pull/120116), [@tukwila](https://github.com/tukwila)) -- `EnqueueExtensions` from plugins other than `PreEnqueue`, `PreFilter`, `Filter`, `Reserve` and `Permit` are now ignored. - It reduces the number of kinds of cluster events the scheduler needs to subscribe/handle. ([#121571](https://github.com/kubernetes/kubernetes/pull/121571), [@sanposhiho](https://github.com/sanposhiho)) -- `GetPodQOS(pod *core.Pod)` function now returns the stored value from `PodStatus.QOSClass`, if set. To compute/evaluate the value of `QOSClass` from scratch, `ComputePodQOS(pod*core.Pod)` must be used. ([#119665](https://github.com/kubernetes/kubernetes/pull/119665), [@vinaykul](https://github.com/vinaykul)) -- `RetroactiveDefaultStorageClass` feature gate that graduated to GA in `v1.28` and was unconditionally enabled has been removed in `v1.29`. ([#120861](https://github.com/kubernetes/kubernetes/pull/120861), [@RomanBednar](https://github.com/RomanBednar)) -- `Statefulset` now waits for new replicas in tests when removing `.start.ordinal`. ([#119761](https://github.com/kubernetes/kubernetes/pull/119761), [@soltysh](https://github.com/soltysh)) -- `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` objects are - persisted in `etcd` using the `v1beta1` version. Either remove alpha objects, or disable the - alpha `ValidatingAdmissionPolicy` feature in a `v1.27` server before upgrading to a - `v1.28` server with the beta feature and API enabled. ([#120018](https://github.com/kubernetes/kubernetes/pull/120018), [@liggitt](https://github.com/liggitt)) -- `client-go`: `k8s.io/client-go/tools` events and record packages now have new APIs for specifying a context and logger. ([#120729](https://github.com/kubernetes/kubernetes/pull/120729), [@pohly](https://github.com/pohly)) -- `kube-controller-manager` help now includes controllers behind a feature gate in `--controllers` flag. ([#120371](https://github.com/kubernetes/kubernetes/pull/120371), [@atiratree](https://github.com/atiratree)) -- `kubeadm`: removed `system:masters` organization from `apiserver-etcd-client` - certificate. ([#120521](https://github.com/kubernetes/kubernetes/pull/120521), [@SataQiu](https://github.com/SataQiu)) -- `kubeadm`: removed leftover disclaimer that could be seen in the `kubeadm init phase certs` command help screen, since the "certs" phase of "init" is no longer alpha. ([#121172](https://github.com/kubernetes/kubernetes/pull/121172), [@SataQiu](https://github.com/SataQiu)) -- `kubeadm`: updated warning message when swap space is detected. When swap is - active on Linux, `kubeadm` explains that swap is supported for cgroup v2 only and - is beta but disabled by default. ([#120198](https://github.com/kubernetes/kubernetes/pull/120198), [@pacoxu](https://github.com/pacoxu)) -- `kubectl` will not support the `/swagger-2.0.0.pb-v1` endpoint that has been long deprecated. ([#119410](https://github.com/kubernetes/kubernetes/pull/119410), [@Jefftree](https://github.com/Jefftree)) -- `scheduler`: handling of unschedulable pods because a `ResourceClass` is missing - is a bit more efficient and no longer relies on periodic retries. ([#120213](https://github.com/kubernetes/kubernetes/pull/120213), [@pohly](https://github.com/pohly)) +## What's New (Major Themes) + +Major themes for Kubernetes v1.29 _Mandala (The Universe)_ have been published in the [release announcement](https://kubernetes.io/blog/2023/12/13/kubernetes-v1-29-release/), which also contains additional information on the release. + +## Known Issues + +### Evented PLEG beta feature (disabled by default) has a critical bug + +The Evented PLEG (Pod Lifecycle Event Generator ) feature is disabled by default, and additional care is recommended when enabling it: when enabled, a [bug](https://github.com/kubernetes/kubernetes/issues/121349) affecting pods (and especially static pods) can have a critical impact on cluster health. + +### Feature gate `SchedulerQueueingHints` is disabled by default + +[An issue was found](https://github.com/kubernetes/kubernetes/pull/122285) in the `beta` feature `SchedulingHint`, and to mitigate it the feature was changed to `disabled` by default in this release. It can be manually enabled, in which case it's possible that the identified behavior (pods pending for 5 minutes, even though the cluster can accomodate them) manifests itself. + +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- Stopped accepting component configuration for `kube-proxy` and `kubelet` during `kubeadm upgrade plan --config`. This was a legacy behavior that was not well supported for upgrades and could be used only at the plan stage to determine if the configuration for these components stored in the cluster needs manual version migration. In the future, `kubeadm` will attempt alternative component config migration approaches. ([#120788](https://github.com/kubernetes/kubernetes/pull/120788), [@chendave](https://github.com/chendave)) + - `kubeadm`: a separate `super-admin.conf` file is now deployed. The User in `admin.conf` is now bound to a new RBAC Group `kubeadm:cluster-admins` that has `cluster-admin` `ClusterRole` access. The User in `super-admin.conf` is now bound to the `system:masters` built-in super-powers / break-glass Group that can bypass RBAC. Before this change, the default `admin.conf` was bound to `system:masters` Group, which was undesired. Executing `kubeadm init phase kubeconfig all` or just `kubeadm init` will now generate the new `super-admin.conf` file. The cluster admin can then decide to keep the file present on a node host or move it to a safe location. `kubadm certs renew` will renew the certificate in `super-admin.conf` to one year if the file exists; if it does not exist a "MISSING" note will be printed. `kubeadm upgrade apply` for this release will migrate this particular node to the two file setup. Subsequent kubeadm releases will continue to optionally renew the certificate in `super-admin.conf` if the file exists on disk and if renew on upgrade is not disabled. `kubeadm join --control-plane` will now generate only an `admin.conf` file that has the less privileged User. ([#121305](https://github.com/kubernetes/kubernetes/pull/121305), [@neolit123](https://github.com/neolit123)) +- In-tree cloud provider integrations are now switched off by default. This change will require that users who are currently using in-tree cloud provider integrations (Azure, GCE, or vSphere) enable external cloud controller managers, or opt in to the legacy integration by setting the associated feature gates to `false`. For more information about how to enable and run external cloud controller managers, read [Cloud Controller Manager Administration](https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/) and [Migrate Replicated Control Plane To Use Cloud Controller Manager](https://kubernetes.io/docs/tasks/administer-cluster/controller-manager-leader-migration/). ([#117503](https://github.com/kubernetes/kubernetes/pull/117503), [@dims](https://github.com/dims)) + +## Changes by Kind + +### Deprecation + +- #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: + +- The `flowcontrol.apiserver.k8s.io/v1beta2` API version of `FlowSchema` and `PriorityLevelConfiguration` is no longer served in `v1.29`. Migrate manifests and API clients to use the `flowcontrol.apiserver.k8s.io/v1beta3` API version, available since `v1.26`. More information is at https://kubernetes.io/docs/reference/using-api/deprecation-guide/#flowcontrol-resources-v129. ([#119495](https://github.com/kubernetes/kubernetes/pull/119495), [@bzsuni](https://github.com/bzsuni)) +- Creation of new `CronJob` objects containing `TZ` or `CRON_TZ` in `.spec.schedule`, accidentally enabled in `v1.22`, is now disallowed. Use the `.spec.timeZone` field instead, supported in `v1.25+` clusters in default configurations. See https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#unsupported-timezone-specification for more information. ([#116252](https://github.com/kubernetes/kubernetes/pull/116252), [@soltysh](https://github.com/soltysh)) +- Removed the networking `alpha` API `ClusterCIDR`. ([#121229](https://github.com/kubernetes/kubernetes/pull/121229), [@aojea](https://github.com/aojea)) + +### API Change + +- `kube-apiserver`: added `--authentication-config` flag for reading `AuthenticationConfiguration` + files. `--authentication-config` flag is mutually exclusive with the existing `--oidc-*` + flags. ([#119142](https://github.com/kubernetes/kubernetes/pull/119142), [@aramase](https://github.com/aramase)) +- `kube-scheduler` component config (`KubeSchedulerConfiguration`) `kubescheduler.config.k8s.io/v1beta3` + is removed in `v1.29`. Migrated `kube-scheduler` configuration files to `kubescheduler.config.k8s.io/v1`. ([#119994](https://github.com/kubernetes/kubernetes/pull/119994), [@SataQiu](https://github.com/SataQiu)) +- A new sleep action for the `PreStop` lifecycle hook was added, allowing containers to pause for a specified duration before termination. ([#119026](https://github.com/kubernetes/kubernetes/pull/119026), [@AxeZhan](https://github.com/AxeZhan)) +- Added CEL expressions to `v1alpha1 AuthenticationConfiguration`. ([#121078](https://github.com/kubernetes/kubernetes/pull/121078), [@aramase](https://github.com/aramase)) +- Added Windows support for InPlace Pod Vertical Scaling feature. ([#112599](https://github.com/kubernetes/kubernetes/pull/112599), [@fabi200123](https://github.com/fabi200123)) [SIG Autoscaling, Node, Scalability, Scheduling and Windows] +- Added `ImageMaximumGCAge` field to kubelet configuration, which allows a user to set the maximum age an image is unused before it's garbage collected. ([#121275](https://github.com/kubernetes/kubernetes/pull/121275), [@haircommander](https://github.com/haircommander)) +- Added `UserNamespacesPodSecurityStandards` feature gate to enable user namespace support for Pod Security Standards. + Enabling this feature will modify all Pod Security Standard rules to allow setting: `spec[.*].securityContext.[runAsNonRoot,runAsUser]`. + This feature gate should only be enabled if all nodes in the cluster support the user namespace feature and have it enabled. + The feature gate will not graduate or be enabled by default in future Kubernetes releases. ([#118760](https://github.com/kubernetes/kubernetes/pull/118760), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Auth, Node and Release] +- Added `optionalOldSelf` to `x-kubernetes-validations` to support ratcheting CRD schema constraints. ([#121034](https://github.com/kubernetes/kubernetes/pull/121034), [@alexzielenski](https://github.com/alexzielenski)) +- Added a new `ServiceCIDR` type that allows to dynamically configure the cluster range used to allocate `Service ClusterIPs` addresses. ([#116516](https://github.com/kubernetes/kubernetes/pull/116516), [@aojea](https://github.com/aojea)) +- Added a new `ipMode` field to the `.status` of Services where `type` is set to `LoadBalancer`. + The new field is behind the `LoadBalancerIPMode` feature gate. ([#119937](https://github.com/kubernetes/kubernetes/pull/119937), [@RyanAoh](https://github.com/RyanAoh)) [SIG API Machinery, Apps, Cloud Provider, Network and Testing] +- Added options for configuring `nf_conntrack_udp_timeout`, and `nf_conntrack_udp_timeout_stream` variables of netfilter conntrack subsystem. ([#120808](https://github.com/kubernetes/kubernetes/pull/120808), [@aroradaman](https://github.com/aroradaman)) +- Added support for CEL expressions to `v1alpha1 AuthorizationConfiguration` webhook `matchConditions`. ([#121223](https://github.com/kubernetes/kubernetes/pull/121223), [@ritazh](https://github.com/ritazh)) +- Added support for projecting `certificates.k8s.io/v1alpha1` ClusterTrustBundle objects into pods. ([#113374](https://github.com/kubernetes/kubernetes/pull/113374), [@ahmedtd](https://github.com/ahmedtd)) +- Added the `DisableNodeKubeProxyVersion` feature gate. If `DisableNodeKubeProxyVersion` is enabled, the `kubeProxyVersion` field is not set. ([#120954](https://github.com/kubernetes/kubernetes/pull/120954), [@HirazawaUi](https://github.com/HirazawaUi)) +- Fixed a bug where CEL expressions in CRD validation rules would incorrectly compute a high estimated cost for functions that return strings, lists or maps. + The incorrect cost was evident when the result of a function was used in subsequent operations. ([#119800](https://github.com/kubernetes/kubernetes/pull/119800), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth and Cloud Provider] +- Fixed the API comments for the Job `Ready` field in status. ([#121765](https://github.com/kubernetes/kubernetes/pull/121765), [@mimowo](https://github.com/mimowo)) +- Fixed the API comments for the `FailIndex` Job pod failure policy action. ([#121764](https://github.com/kubernetes/kubernetes/pull/121764), [@mimowo](https://github.com/mimowo)) +- Go API: the `ResourceRequirements` struct was replaced with `VolumeResourceRequirements` for use with volumes. ([#118653](https://github.com/kubernetes/kubernetes/pull/118653), [@pohly](https://github.com/pohly)) +- Graduated `Job BackoffLimitPerIndex` feature to `beta`. ([#121356](https://github.com/kubernetes/kubernetes/pull/121356), [@mimowo](https://github.com/mimowo)) +- Marked the `onPodConditions` field as optional in `Job`'s pod failure policy. ([#120204](https://github.com/kubernetes/kubernetes/pull/120204), [@mimowo](https://github.com/mimowo)) +- Promoted `PodReadyToStartContainers` condition to `beta`. ([#119659](https://github.com/kubernetes/kubernetes/pull/119659), [@kannon92](https://github.com/kannon92)) +- `NodeStageVolume` calls will now be retried if the CSI node driver is not running. ([#120330](https://github.com/kubernetes/kubernetes/pull/120330), [@rohitssingh](https://github.com/rohitssingh)) +- The `flowcontrol.apiserver.k8s.io/v1beta3` `FlowSchema` and `PriorityLevelConfiguration` APIs has been promoted to `flowcontrol.apiserver.k8s.io/v1`, with the following changes: + - `PriorityLevelConfiguration`: the `.spec.limited.nominalConcurrencyShares` field defaults to `30` only if the field is omitted (v1beta3 also defaulted an explicit `0` value to `30`). Specifying an explicit `0` value is not allowed in the `v1` version in v1.29 to ensure compatibility with `v1.28` API servers. In `v1.30`, explicit `0` values will be allowed in this field in the `v1` API. + The `flowcontrol.apiserver.k8s.io/v1beta3` APIs are deprecated and will no longer be served in v1.32. All existing objects are available via the `v1` APIs. Transition clients and manifests to use the `v1` APIs before upgrading to `v1.32`. ([#121089](https://github.com/kubernetes/kubernetes/pull/121089), [@tkashem](https://github.com/tkashem)) +- The `kube-proxy` command-line documentation was updated to clarify that + `--bind-address` does not actually have anything to do with binding to an + address, and you probably don't actually want to be using it. ([#120274](https://github.com/kubernetes/kubernetes/pull/120274), [@danwinship](https://github.com/danwinship)) +- The `kube-scheduler` `selectorSpread` plugin has been removed, please use the `podTopologySpread` plugin instead. ([#117720](https://github.com/kubernetes/kubernetes/pull/117720), [@kerthcet](https://github.com/kerthcet)) +- The `matchLabelKeys/mismatchLabelKeys` feature is introduced to the hard/soft `PodAffinity/PodAntiAffinity`. ([#116065](https://github.com/kubernetes/kubernetes/pull/116065), [@sanposhiho](https://github.com/sanposhiho)) +- When updating a CRD, per-expression cost limit check are now skipped for `x-kubernetes-validations` rules of versions that are not mutated. ([#121460](https://github.com/kubernetes/kubernetes/pull/121460), [@jiahuif](https://github.com/jiahuif)) +- `CSINodeExpandSecret` feature has been promoted to `GA` in this release and is enabled + by default. The CSI drivers can make use of the `secretRef` values passed in `NodeExpansion` + request optionally sent by the CSI Client from this release onwards. ([#121303](https://github.com/kubernetes/kubernetes/pull/121303), [@humblec](https://github.com/humblec)) +- `NodeStageVolume` calls will now be retried if the CSI node driver is not running. ([#120330](https://github.com/kubernetes/kubernetes/pull/120330), [@rohitssingh](https://github.com/rohitssingh)) +- `PersistentVolumeLastPhaseTransitionTime` is now beta and enabled by default. ([#120627](https://github.com/kubernetes/kubernetes/pull/120627), [@RomanBednar](https://github.com/RomanBednar)) +- `ValidatingAdmissionPolicy` type checking now supports CRDs and API extensions types. ([#119109](https://github.com/kubernetes/kubernetes/pull/119109), [@jiahuif](https://github.com/jiahuif)) +- `kube-apiserver`: added `--authorization-config` flag for reading a configuration file containing an `apiserver.config.k8s.io/v1alpha1 AuthorizationConfiguration` object. The `--authorization-config` flag is mutually exclusive with `--authorization-modes` and `--authorization-webhook-*` flags. The `alpha` `StructuredAuthorizationConfiguration` feature flag must be enabled for `--authorization-config` to be specified. ([#120154](https://github.com/kubernetes/kubernetes/pull/120154), [@palnabarun](https://github.com/palnabarun)) +- `kube-proxy` now has a new nftables-based mode, available by running + + `kube-proxy --feature-gates NFTablesProxyMode=true --proxy-mode nftables` + + This is currently an alpha-level feature and while it probably will not + eat your data, it may nibble at it a bit. (It passes e2e testing but has + not yet seen real-world use.) + + At this point it should be functionally mostly identical to the iptables + mode, except that it does not (and will not) support Service NodePorts on + 127.0.0.1. (Also note that there are currently no command-line arguments + for the nftables-specific config; you will need to use a config file if + you want to set the equivalent of any of the `--iptables-xxx` options.) + + As this code is still very new, it has not been heavily optimized yet; + while it is expected to _eventually_ have better performance than the + iptables backend, very little performance testing has been done so far. ([#121046](https://github.com/kubernetes/kubernetes/pull/121046), [@danwinship](https://github.com/danwinship)) +- `kube-proxy`: Added an option/flag for configuring the `nf_conntrack_tcp_be_liberal` sysctl (in the kernel's netfilter conntrack subsystem). When enabled, `kube-proxy` will not install the `DROP` rule for invalid conntrack states, which currently breaks users of asymmetric routing. ([#120354](https://github.com/kubernetes/kubernetes/pull/120354), [@aroradaman](https://github.com/aroradaman)) + +### Feature + +- #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: + + <!-- + This section can be blank if this pull request does not require a release note. + + When adding links which point to resources within git repositories, like + KEPs or supporting documentation, please reference a specific commit and avoid + linking directly to the master branch. This ensures that links reference a + specific point in time, rather than a document that may change over time. + + See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files + + Please use the following format for linking documentation: + - [KEP]: <link> + - [Usage]: <link> + - [Other doc]: <link> + --> ([#119517](https://github.com/kubernetes/kubernetes/pull/119517), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling and Testing] +- `kubeadm`: added validation to verify that the `CertificateKey` is a valid hex + encoded AES key. ([#120064](https://github.com/kubernetes/kubernetes/pull/120064), [@SataQiu](https://github.com/SataQiu)) +- A customizable `OrderedScoreFuncs()` function was introduced. Out-of-tree plugins + that used the scheduler's preemption interface could implement this function + for custom preemption preferences or return nil to keep the current behavior. ([#121867](https://github.com/kubernetes/kubernetes/pull/121867), [@lianghao208](https://github.com/lianghao208)) +- Added `apiextensions_apiserver_update_ratcheting_time` metric for tracking time taken during requests by feature `CRDValidationRatcheting`. ([#121462](https://github.com/kubernetes/kubernetes/pull/121462), [@alexzielenski](https://github.com/alexzielenski)) +- Added `apiserver_envelope_encryption_dek_cache_filled` to measure number of records in data encryption key (DEK) cache. ([#119878](https://github.com/kubernetes/kubernetes/pull/119878), [@ritazh](https://github.com/ritazh)) +- Added `apiserver_watch_list_duration_seconds` metrics which will measure response latency distribution in seconds for watchlist requests broken by group, version, resource and scope. ([#120490](https://github.com/kubernetes/kubernetes/pull/120490), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Added `job_pods_creation_total` metrics for tracking Pods created by the Job controller labeled by events which triggered the Pod creation. ([#121481](https://github.com/kubernetes/kubernetes/pull/121481), [@dejanzele](https://github.com/dejanzele)) +- Added `kubectl node drain` helper callbacks `OnPodDeletionOrEvictionStarted` + and `OnPodDeletionOrEvictionFailed`; people extending `kubectl` can use these + new callbacks for more granularity. Deprecated the `OnPodDeletedOrEvicted` + node drain helper callback. ([#117502](https://github.com/kubernetes/kubernetes/pull/117502), [@adilGhaffarDev](https://github.com/adilGhaffarDev)) +- Added a new `--init-only` command line flag to `kube-proxy`. Setting the flag makes `kube-proxy` perform its initial configuration that requires privileged mode, and then exit. The `--init-only` mode is intended to be executed in a privileged init container, so that the main container may run with a stricter `securityContext`. ([#120864](https://github.com/kubernetes/kubernetes/pull/120864), [@uablrek](https://github.com/uablrek)) [SIG Network and Scalability] +- Added a new scheduler metric, `pod_scheduling_sli_duration_seconds`, and started the deprecation for `pod_scheduling_duration_seconds`. ([#119049](https://github.com/kubernetes/kubernetes/pull/119049), [@helayoty](https://github.com/helayoty)) +- Added a return value to `QueueingHint` to indicate an error. If `QueueingHint` returns an error, + the scheduler logs it and treats the event as a `QueueAfterBackoff` so that + the Pod won't be stuck in the unschedulable pod pool. ([#119290](https://github.com/kubernetes/kubernetes/pull/119290), [@carlory](https://github.com/carlory)) +- Added apiserver identity to the following metrics: + `apiserver_envelope_encryption_key_id_hash_total`, `apiserver_envelope_encryption_key_id_hash_last_timestamp_seconds`, `apiserver_envelope_encryption_key_id_hash_status_last_timestamp_seconds`, `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_success_total`, `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`. + + Fixed bug to surface events for the following metrics: `apiserver_encryption_config_controller_automatic_reload_failures_total`, `apiserver_encryption_config_controller_automatic_reload_last_timestamp_seconds`, `apiserver_encryption_config_controller_automatic_reload_success_total`. ([#120438](https://github.com/kubernetes/kubernetes/pull/120438), [@ritazh](https://github.com/ritazh)) +- Added container filesystem to the `ImageFsInfoResponse`. ([#120914](https://github.com/kubernetes/kubernetes/pull/120914), [@kannon92](https://github.com/kannon92)) +- Added multiplication functionality to `Quantity`. ([#117411](https://github.com/kubernetes/kubernetes/pull/117411), [@tenzen-y](https://github.com/tenzen-y)) +- Added new feature gate called `RuntimeClassInImageCriApi` to address `kubelet` changes needed for KEP 4216. + Noteable changes: + 1. Populate new `RuntimeHandler` field in CRI's `ImageSpec` struct during image pulls from container runtimes. + 2. Pass `runtimeHandler` field in `RemoveImage()` call to container runtime in `kubelet`'s image garbage collection. ([#121456](https://github.com/kubernetes/kubernetes/pull/121456), [@kiashok](https://github.com/kiashok)) +- Added support for split image filesystem in kubelet. ([#120616](https://github.com/kubernetes/kubernetes/pull/120616), [@kannon92](https://github.com/kannon92)) +- Bumped `cel-go` to `v0.17.7` and introduced set `ext` library with new options. ([#121577](https://github.com/kubernetes/kubernetes/pull/121577), [@cici37](https://github.com/cici37)) +- Bumped `distroless-iptables` to `0.3.2` based on Go `1.21.1`. ([#120527](https://github.com/kubernetes/kubernetes/pull/120527), [@cpanato](https://github.com/cpanato)) +- Bumped `distroless-iptables` to `0.3.3` based on Go `1.21.2`. ([#121073](https://github.com/kubernetes/kubernetes/pull/121073), [@cpanato](https://github.com/cpanato)) +- Bumped `distroless-iptables` to `0.4.1` based on Go `1.21.3`. ([#121216](https://github.com/kubernetes/kubernetes/pull/121216), [@cpanato](https://github.com/cpanato)) +- Bumped `cel-go to` `v0.17.7` and introduced set ext library with new options. ([#121577](https://github.com/kubernetes/kubernetes/pull/121577), [@cici37](https://github.com/cici37)) +- CEL can now correctly handle a CRD `openAPIV3Schema` that has neither `Properties` nor `AdditionalProperties`. ([#121459](https://github.com/kubernetes/kubernetes/pull/121459), [@jiahuif](https://github.com/jiahuif)) +- CEL cost estimator no longer treats enums as unbounded strings when determining its length. Instead, the length is set to the longest possible enum value. ([#121085](https://github.com/kubernetes/kubernetes/pull/121085), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery] +- CRI: image pull per runtime class is now supported. ([#121121](https://github.com/kubernetes/kubernetes/pull/121121), [@kiashok](https://github.com/kiashok)) +- Certain `requestBody` parameters in the OpenAPI `v3` are now correctly marked as required. ([#120735](https://github.com/kubernetes/kubernetes/pull/120735), [@Jefftree](https://github.com/Jefftree)) +- Changed `kubectl help` to display basic details for subcommands from plugins. ([#116752](https://github.com/kubernetes/kubernetes/pull/116752), [@xvzf](https://github.com/xvzf)) +- Changed the `KMSv2KDF` feature gate to be enabled by default. ([#120433](https://github.com/kubernetes/kubernetes/pull/120433), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing] +- Client-side apply will now use OpenAPI `v3` by default. ([#120707](https://github.com/kubernetes/kubernetes/pull/120707), [@Jefftree](https://github.com/Jefftree)) +- Decoding etcd's response now respects the timeout context. ([#121614](https://github.com/kubernetes/kubernetes/pull/121614), [@HirazawaUi](https://github.com/HirazawaUi)) +- Decoupled `TaintManager` from `NodeLifeCycleController` (KEP-3902). ([#119208](https://github.com/kubernetes/kubernetes/pull/119208), [@atosatto](https://github.com/atosatto)) +- Enabled traces for KMSv2 encrypt/decrypt operations. ([#121095](https://github.com/kubernetes/kubernetes/pull/121095), [@aramase](https://github.com/aramase)) +- Fixed `kube-proxy` panicking on exit when the `Node` object changed its `PodCIDR`. ([#120375](https://github.com/kubernetes/kubernetes/pull/120375), [@pegasas](https://github.com/pegasas)) +- Fixed bugs in handling of server-side apply, create, and update API requests for objects containing duplicate items in keyed lists. + - A `create` or `update` API request with duplicate items in a keyed list no longer wipes out managedFields. Examples include env var entries with the same name, or port entries with the same containerPort in a pod spec. + - A server-side apply request that makes unrelated changes to an object which has duplicate items in a keyed list no longer fails, and leaves the existing duplicate items as-is. + - A server-side apply request that changes an object which has duplicate items in a keyed list, and modifies the duplicated item removes the duplicates and replaces them with the single item contained in the server-side apply request. ([#121575](https://github.com/kubernetes/kubernetes/pull/121575), [@apelisse](https://github.com/apelisse)) +- Fixed overriding default `KubeletConfig` fields in drop-in configs if not set. ([#121193](https://github.com/kubernetes/kubernetes/pull/121193), [@sohankunkerkar](https://github.com/sohankunkerkar)) +- Graduated API List chunking (aka pagination) feature to `stable`. ([#119503](https://github.com/kubernetes/kubernetes/pull/119503), [@wojtek-t](https://github.com/wojtek-t)) +- Graduated the `ReadWriteOncePod` feature gate to `GA`. ([#121077](https://github.com/kubernetes/kubernetes/pull/121077), [@chrishenzie](https://github.com/chrishenzie)) +- Graduated the following kubelet resource metrics to **general availability**: + - `container_cpu_usage_seconds_total` + - `container_memory_working_set_bytes` + - `container_start_time_seconds` + - `node_cpu_usage_seconds_total` + - `node_memory_working_set_bytes` + - `pod_cpu_usage_seconds_total` + - `pod_memory_working_set_bytes` + - `resource_scrape_error` + + Deprecated (renamed) `scrape_error` in favor of `resource_scrape_error` ([#116897](https://github.com/kubernetes/kubernetes/pull/116897), [@Richabanker](https://github.com/Richabanker)) [SIG Architecture, Instrumentation, Node and Testing] +- Implemented API for streaming for the `etcd` store implementation. + When `sendInitialEvents ListOption` is set together with `watch=true`, it begins the watch stream with synthetic init events followed by a synthetic `Bookmark`, after which the server continues streaming events. ([#119557](https://github.com/kubernetes/kubernetes/pull/119557), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Improved memory usage of `kube-scheduler` by dropping the `.metadata.managedFields` field that `kube-scheduler` doesn't require. ([#119556](https://github.com/kubernetes/kubernetes/pull/119556), [@linxiulei](https://github.com/linxiulei)) +- In a scheduler with `Permit` plugins, when a Pod is rejected during `WaitOnPermit`, the scheduler records the plugin. + The scheduler will use the record to honor cluster events and queueing `hints registered` for the plugin, to inform whether to retry the pod. ([#119785](https://github.com/kubernetes/kubernetes/pull/119785), [@sanposhiho](https://github.com/sanposhiho)) +- In-tree cloud providers are now switched off by default. Please use `DisableCloudProviders` and `DisableKubeletCloudCredentialProvider` feature flags if you still need this functionality. ([#117503](https://github.com/kubernetes/kubernetes/pull/117503), [@dims](https://github.com/dims)) +- Introduced new apiserver metric `apiserver_flowcontrol_current_inqueue_seats`. This metric is analogous to `apiserver_flowcontrol_current_inqueue_requests`, but tracks the total number of seats, as each request can take more than one seat. ([#119385](https://github.com/kubernetes/kubernetes/pull/119385), [@andrewsykim](https://github.com/andrewsykim)) +- Introduced the `job_finished_indexes_total` metric for the `BackoffLimitPerIndex` feature. ([#121292](https://github.com/kubernetes/kubernetes/pull/121292), [@mimowo](https://github.com/mimowo)) +- Kubeadm: supported updating certificate organization during `kubeadm certs renew` operation. ([#121841](https://github.com/kubernetes/kubernetes/pull/121841), [@SataQiu](https://github.com/SataQiu)) +- Kubernetes is now built with Go `1.21.0`. ([#118996](https://github.com/kubernetes/kubernetes/pull/118996), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with Go `1.21.1`. ([#120493](https://github.com/kubernetes/kubernetes/pull/120493), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with Go `1.21.2`. ([#121021](https://github.com/kubernetes/kubernetes/pull/121021), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with Go `1.21.4`. ([#121808](https://github.com/kubernetes/kubernetes/pull/121808), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with Go `v1.21.3`. ([#121149](https://github.com/kubernetes/kubernetes/pull/121149), [@cpanato](https://github.com/cpanato)) +- List of metric labels can now be configured by supplying a manifest using the `--allow-metric-labels-manifest` flag. ([#118299](https://github.com/kubernetes/kubernetes/pull/118299), [@rexagod](https://github.com/rexagod)) +- Listed the pods using `<PVC>` as an ephemeral storage volume in "Used by:" part of the output of `kubectl describe pvc <PVC>` command. ([#120427](https://github.com/kubernetes/kubernetes/pull/120427), [@MaGaroo](https://github.com/MaGaroo)) +- Migrated the `nodevolumelimits` scheduler plugin to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116884](https://github.com/kubernetes/kubernetes/pull/116884), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Migrated the `volumebinding scheduler plugins` to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#116803](https://github.com/kubernetes/kubernetes/pull/116803), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Priority and Fairness feature is now `stable`, the feature gate will be removed in `v1.31`. ([#121638](https://github.com/kubernetes/kubernetes/pull/121638), [@tkashem](https://github.com/tkashem)) +- Promoted `PodHostIPs` condition to `beta`. ([#120257](https://github.com/kubernetes/kubernetes/pull/120257), [@wzshiming](https://github.com/wzshiming)) +- Promoted `PodHostIPs` condition to `beta`. ([#121477](https://github.com/kubernetes/kubernetes/pull/121477), [@wzshiming](https://github.com/wzshiming)) +- Promoted `PodReplacementPolicy` to `beta`. ([#121491](https://github.com/kubernetes/kubernetes/pull/121491), [@dejanzele](https://github.com/dejanzele)) +- Promoted `ServiceNodePortStaticSubrange` to stable and lock to default. ([#120233](https://github.com/kubernetes/kubernetes/pull/120233), [@xuzhenglun](https://github.com/xuzhenglun)) +- Promoted plugin subcommand resolution feature to `beta`. ([#120663](https://github.com/kubernetes/kubernetes/pull/120663), [@ardaguclu](https://github.com/ardaguclu)) +- Removed `/livez` livezchecks for KMS v1 and v2 to ensure KMS health does not cause `kube-apiserver` restart. KMS health checks are still in place as a healthz and readiness checks. ([#120583](https://github.com/kubernetes/kubernetes/pull/120583), [@ritazh](https://github.com/ritazh)) +- Restartable init containers resource in pod autoscaler are now calculated. ([#120001](https://github.com/kubernetes/kubernetes/pull/120001), [@qingwave](https://github.com/qingwave)) +- Sidecar termination is now serialized and each sidecar container will receive a `SIGTERM` after all main containers and later starting sidecar containers have terminated. ([#120620](https://github.com/kubernetes/kubernetes/pull/120620), [@tzneal](https://github.com/tzneal)) +- The CRD validation rule with feature gate `CustomResourceValidationExpressions` was promoted to `GA`. ([#121373](https://github.com/kubernetes/kubernetes/pull/121373), [@cici37](https://github.com/cici37)) +- The KMSv2 features with feature gates `KMSv2` and `KMSv2KDF` are promoted to `GA`. The `KMSv1` feature gate is now disabled by default. ([#121485](https://github.com/kubernetes/kubernetes/pull/121485), [@ritazh](https://github.com/ritazh)) +- The `--interactive` flag in `kubectl delete` is now visible to all users by default. ([#120416](https://github.com/kubernetes/kubernetes/pull/120416), [@ardaguclu](https://github.com/ardaguclu)) +- The `CloudDualStackNodeIPs` feature is now `beta`, meaning that when using + an external cloud provider that has been updated to support the feature, + you can pass comma-separated dual-stack `--node-ips` to `kubelet` and have + the cloud provider take both IPs into account. ([#120275](https://github.com/kubernetes/kubernetes/pull/120275), [@danwinship](https://github.com/danwinship)) +- The `Dockerfile` for the kubectl image has been updated with the addition of a specific base image and essential utilities (bash and jq). ([#119592](https://github.com/kubernetes/kubernetes/pull/119592), [@rayandas](https://github.com/rayandas)) +- The `SidecarContainers` feature has graduated to `beta` and is enabled by default. ([#121579](https://github.com/kubernetes/kubernetes/pull/121579), [@gjkim42](https://github.com/gjkim42)) +- The `kube-apiserver` will now expose four new metrics to inform about errors on the clusterIP and nodePort allocation logic. ([#120843](https://github.com/kubernetes/kubernetes/pull/120843), [@aojea](https://github.com/aojea)) +- The `volume_zone` plugin will consider `beta` labels as `GA` labels during the scheduling + process. Therefore, if the values of the labels are the same, PVs with `beta` labels + can also be scheduled to nodes with `GA` labels. ([#118923](https://github.com/kubernetes/kubernetes/pull/118923), [@AxeZhan](https://github.com/AxeZhan)) +- Updated the generic apiserver library to produce an error if a new API server is configured with support for a data format other than JSON, YAML, or Protobuf. ([#121325](https://github.com/kubernetes/kubernetes/pull/121325), [@benluddy](https://github.com/benluddy)) [SIG API Machinery] +- Use of secret-based service account tokens now adds an `authentication.k8s.io/legacy-token-autogenerated-secret` or `authentication.k8s.io/legacy-token-manual-secret` audit annotation containing the name of the secret used. ([#118598](https://github.com/kubernetes/kubernetes/pull/118598), [@yuanchen8911](https://github.com/yuanchen8911)) [SIG Auth, Instrumentation and Testing] +- `--sync-frequency` will not affect the update interval of volumes that use `ConfigMaps` + or `Secrets` when the `configMapAndSecretChangeDetectionStrategy` is set to `Cache`. + The update interval is only affected by `node.alpha.kubernetes.io/ttl` node annotation." ([#120255](https://github.com/kubernetes/kubernetes/pull/120255), [@likakuli](https://github.com/likakuli)) +- `CRDValidationRatcheting`: added support for ratcheting `x-kubernetes-validations` in schema. ([#121016](https://github.com/kubernetes/kubernetes/pull/121016), [@alexzielenski](https://github.com/alexzielenski)) +- `DevicePluginCDIDevices` feature has been graduated to `beta` and enabled by default in the kubelet. ([#121254](https://github.com/kubernetes/kubernetes/pull/121254), [@bart0sh](https://github.com/bart0sh)) +- `ValidatingAdmissionPolicy` now preserves types of composition variables, and raises type-related errors early. ([#121001](https://github.com/kubernetes/kubernetes/pull/121001), [@jiahuif](https://github.com/jiahuif)) +- `cluster/gce`: added webhook to replace `PersistentVolumeLabel` admission controller. ([#121628](https://github.com/kubernetes/kubernetes/pull/121628), [@andrewsykim](https://github.com/andrewsykim)) +- `dra`: the scheduler plugin now avoids additional scheduling attempts in some cases by falling back to SSA after a conflict. ([#120534](https://github.com/kubernetes/kubernetes/pull/120534), [@pohly](https://github.com/pohly)) +- `etcd`: image is now based on `v3.5.9`. ([#121567](https://github.com/kubernetes/kubernetes/pull/121567), [@mzaian](https://github.com/mzaian)) +- `kube-apiserver` added: + - `alpha` support (guarded by the `ServiceAccountTokenJTI` feature gate) for adding a `jti` (JWT ID) claim to service account tokens it issues, adding an `authentication.kubernetes.io/credential-id` audit annotation in audit logs when the tokens are issued, and `authentication.kubernetes.io/credential-id` entry in the extra user info when the token is used to authenticate. + - `alpha` support (guarded by the `ServiceAccountTokenPodNodeInfo` feature gate) for including the node name (and uid, if the node exists) as additional claims in service account tokens it issues which are bound to pods, and `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` extra user info when the token is used to authenticate. + - `alpha` support (guarded by the `ServiceAccountTokenNodeBinding` feature gate) for allowing `TokenRequests` that bind tokens directly to nodes, and (guarded by the ServiceAccountTokenNodeBindingValidation feature gate) for validating the node name and uid still exist when the token is used. ([#120780](https://github.com/kubernetes/kubernetes/pull/120780), [@munnerz](https://github.com/munnerz)) +- `kube-controller-manager`: The `LegacyServiceAccountTokenCleanUp` feature gate is now `beta` and enabled by default. When enabled, legacy auto-generated service account token secrets are auto-labeled with a `kubernetes.io/legacy-token-invalid-since` label if the credentials have not been used in the time specified by `--legacy-service-account-token-clean-up-period` (defaulting to one year), **and** are referenced from the `.secrets` list of a ServiceAccount object, **and** are not referenced from pods. This label causes the authentication layer to reject use of the credentials. After being labeled as invalid, if the time specified by `--legacy-service-account-token-clean-up-period` (defaulting to one year) passes without the credential being used, the secret is automatically deleted. Secrets labeled as invalid which have not been auto-deleted yet can be re-activated by removing the `kubernetes.io/legacy-token-invalid-since` label. ([#120682](https://github.com/kubernetes/kubernetes/pull/120682), [@yt2985](https://github.com/yt2985)) +- `kube-proxy` will only install the `DROP` rules for invalid `conntrack` states if + the `nf_conntrack_tcp_be_liberal` is not set. ([#120412](https://github.com/kubernetes/kubernetes/pull/120412), [@aojea](https://github.com/aojea)) +- `kube-scheduler` now implements scheduling hints for the `NodeAffinity` plugin. + The scheduling hints allow the scheduler to only retry scheduling a `Pod` + that was previously rejected by the `NodeAffinity` plugin if a new `Node` or a `Node` update matches the `Pod`'s node affinity. ([#119155](https://github.com/kubernetes/kubernetes/pull/119155), [@carlory](https://github.com/carlory)) +- `kube-scheduler` now implements scheduling hints for the `NodeUnschedulable` plugin. + The scheduling hints allow the scheduler to only retry scheduling a `Pod` + that was previously rejected by the `NodeSchedulable` plugin if a new `Node` or a `Node` update sets `.spec.unschedulable` to false. ([#119396](https://github.com/kubernetes/kubernetes/pull/119396), [@wackxu](https://github.com/wackxu)) +- `kubeadm`: deploying a kubelet that is 3 versions older than the version of `kubeadm` (N-3) is now allowed. This aligns with the recent change made by SIG Architecture that extends the support skew between the control plane and kubelets. Tolerate this new kubelet skew for the commands `init`, `join` and `upgrade`. Note that if the `kubeadm` user applies a control plane version that is older than the `kubeadm` version (N-1 maximum) then the skew between the kubelet and control plane would become a maximum of N-2. ([#120825](https://github.com/kubernetes/kubernetes/pull/120825), [@pacoxu](https://github.com/pacoxu)) +- `kubeadm`: promoted feature gate `EtcdLearnerMode` to `beta`. Learner mode for + joining `etcd` members is now enabled by default. ([#120228](https://github.com/kubernetes/kubernetes/pull/120228), [@pacoxu](https://github.com/pacoxu)) +- `kubeadm`: turned on feature gate `MergeCLIArgumentsWithConfig` to merge the config from flag and config file, otherwise, if the flag `--ignore-preflight-errors` is set from the CLI, then the value from config file will be ignored. ([#119946](https://github.com/kubernetes/kubernetes/pull/119946), [@chendave](https://github.com/chendave)) +- `kubeadm`: will now allow deploying a kubelet that is 3 versions older than the version of `kubeadm` (N-3). This aligns with the recent change made by SIG Architecture that extends the support skew between the control plane and kubelets. Tolerate this new kubelet skew for the commands `init`, `join` and `upgrade`. Note that if the `kubeadm` user applies a control plane version that is older than the `kubeadm` version (N-1 maximum) then the skew between the kubelet and control plane would become a maximum of N-2. ([#120825](https://github.com/kubernetes/kubernetes/pull/120825), [@pacoxu](https://github.com/pacoxu)) +- `kubelet` , when using `--cloud-provider=external`, will now initialize the node addresses with the value of `--node-ip` , if it exists, or waits for the cloud provider to assign the addresses. ([#121028](https://github.com/kubernetes/kubernetes/pull/121028), [@aojea](https://github.com/aojea)) +- `kubelet` will now allow pods to use the `net.ipv4.tcp_fin_timeout`, “net.ipv4.tcp_keepalive_intvl” + and “net.ipv4.tcp_keepalive_probes“ sysctl by default; Pod Security Admission + allows this sysctl in `v1.29+` versions of the baseline and restricted policies. ([#121240](https://github.com/kubernetes/kubernetes/pull/121240), [@HirazawaUi](https://github.com/HirazawaUi)) +- `kubelet` will now expose latency metrics of different stages of the node startup. ([#118568](https://github.com/kubernetes/kubernetes/pull/118568), [@qiutongs](https://github.com/qiutongs)) +- `kubelet` now allows pods to use the `net.ipv4.tcp_keepalive_time` sysctl by default + and the minimal kernel version is 4.5; Pod Security Admission allows this sysctl + in `v1.29+` versions of the baseline and restricted policies. ([#118846](https://github.com/kubernetes/kubernetes/pull/118846), [@cyclinder](https://github.com/cyclinder)) +- `kubelet` now emits a metric for end-to-end pod startup latency, including image pull. ([#121041](https://github.com/kubernetes/kubernetes/pull/121041), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) +- `kubelet` now exposes latency metrics of different stages of the node startup. ([#118568](https://github.com/kubernetes/kubernetes/pull/118568), [@qiutongs](https://github.com/qiutongs)) + +### Documentation + +- Added descriptions and examples for the situation of using `kubectl rollout restart` without specifying a particular deployment. ([#120118](https://github.com/kubernetes/kubernetes/pull/120118), [@Ithrael](https://github.com/Ithrael)) +- When the kubelet fails to assign CPUs to a Pod because there less available CPUs than the Pod requests, the error message changed from + `not enough cpus available to satisfy request` to `not enough cpus available to satisfy request: <num_requested> requested, only <num_available> available`. ([#121059](https://github.com/kubernetes/kubernetes/pull/121059), [@matte21](https://github.com/matte21)) + +### Failing Test + +- Added mock framework support for unit tests for Windows in `kubeproxy`. ([#120105](https://github.com/kubernetes/kubernetes/pull/120105), [@princepereira](https://github.com/princepereira)) +- DRA: when the scheduler had to deallocate a claim after a node became unsuitable for a pod, it might have needed more attempts than really necessary. This was fixed by first disabling allocations. ([#120428](https://github.com/kubernetes/kubernetes/pull/120428), [@pohly](https://github.com/pohly)) +- E2e framework: retrying after intermittent `apiserver` failures was fixed in `WaitForPodsResponding` ([#120559](https://github.com/kubernetes/kubernetes/pull/120559), [@pohly](https://github.com/pohly)) +- KCM specific args can be passed with `/cluster` script, without affecting CCM. New variable name: `KUBE_CONTROLLER_MANAGER_TEST_ARGS`. ([#120524](https://github.com/kubernetes/kubernetes/pull/120524), [@jprzychodzen](https://github.com/jprzychodzen)) [SIG Cloud Provider] +- `k8s.io/dynamic-resource-allocation`: DRA drivers updating to this release are compatible with Kubernetes `v1.27` and `v1.28`. ([#120868](https://github.com/kubernetes/kubernetes/pull/120868), [@pohly](https://github.com/pohly)) + +### Bug or Regression + +- `kubeadm`: printing the default component configs for `reset` and `join` is now + unsupported. ([#119346](https://github.com/kubernetes/kubernetes/pull/119346), [@chendave](https://github.com/chendave)) +- `kubeadm`: removed `system:masters` organization from `etcd/healthcheck-client` + certificate. ([#119859](https://github.com/kubernetes/kubernetes/pull/119859), [@SataQiu](https://github.com/SataQiu)) +- Added `CAP_NET_RAW` to netadmin debug profile and removed privileges when debugging nodes. ([#118647](https://github.com/kubernetes/kubernetes/pull/118647), [@mochizuki875](https://github.com/mochizuki875)) +- Added a check on a user attempting to create a static pod via the `kubelet` without specifying a name. They will now get a visible validation error. ([#119522](https://github.com/kubernetes/kubernetes/pull/119522), [@YTGhost](https://github.com/YTGhost)) +- Added a redundant process to remove tracking finalizers from Pods that belong to Jobs. The process kicks in after the control plane marks a Job as finished. ([#119944](https://github.com/kubernetes/kubernetes/pull/119944), [@Sharpz7](https://github.com/Sharpz7)) +- Added more accurate requeueing in scheduling queue for Pods rejected by the temporal failure (e.g., temporal failure on `kube-apiserver`). ([#119105](https://github.com/kubernetes/kubernetes/pull/119105), [@sanposhiho](https://github.com/sanposhiho)) +- Allowed specifying `ExternalTrafficPolicy` for `Services` with `ExternalIPs`. ([#119150](https://github.com/kubernetes/kubernetes/pull/119150), [@tnqn](https://github.com/tnqn)) +- Changed kubelet logs from `error` to `info` for uncached partitions when using CRI stats provider. ([#100448](https://github.com/kubernetes/kubernetes/pull/100448), [@saschagrunert](https://github.com/saschagrunert)) +- Empty values are no longer assigned to undefined resources (CPU or memory) when storing the resources allocated to the pod in checkpoint. ([#117615](https://github.com/kubernetes/kubernetes/pull/117615), [@aheng-ch](https://github.com/aheng-ch)) +- Fixed CEL estimated cost of `replace()` to handle a zero length replacement string correctly. + Previously this would cause the estimated cost to be higher than it should be. ([#120097](https://github.com/kubernetes/kubernetes/pull/120097), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery] +- Fixed OpenAPI v3 not being cleaned up after deleting `APIServices`. ([#120108](https://github.com/kubernetes/kubernetes/pull/120108), [@tnqn](https://github.com/tnqn)) +- Fixed [121094](https://github.com/kubernetes/kubernetes/issues/121094) by re-introducing the readiness predicate for `externalTrafficPolicy: Local` services. ([#121116](https://github.com/kubernetes/kubernetes/pull/121116), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) +- Fixed `kubectl events` not filtering events by `GroupVersion` for resources with a full name. ([#120119](https://github.com/kubernetes/kubernetes/pull/120119), [@Ithrael](https://github.com/Ithrael)) +- Fixed `systemLogQuery` service name matching. ([#120678](https://github.com/kubernetes/kubernetes/pull/120678), [@rothgar](https://github.com/rothgar)) +- Fixed a `1.27` scheduling regression that `PostFilter` plugin may not function if previous `PreFilter` plugins return `Skip`. ([#119769](https://github.com/kubernetes/kubernetes/pull/119769), [@Huang-Wei](https://github.com/Huang-Wei)) +- Fixed a `v1.26` regression scheduling bug by ensuring that preemption is skipped when a `PreFilter` plugin returns `UnschedulableAndUnresolvable`. ([#119778](https://github.com/kubernetes/kubernetes/pull/119778), [@sanposhiho](https://github.com/sanposhiho)) +- Fixed a `v1.28.0` regression where `kube-controller-manager` can crash when `StatefulSet` with `Parallel` policy and PVC labels are scaled up. ([#121142](https://github.com/kubernetes/kubernetes/pull/121142), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) +- Fixed a `v1.28` regression around restarting init containers in the right order relative to normal containers. ([#120281](https://github.com/kubernetes/kubernetes/pull/120281), [@gjkim42](https://github.com/gjkim42)) +- Fixed a `v1.28` regression handling negative index json patches. ([#120327](https://github.com/kubernetes/kubernetes/pull/120327), [@liggitt](https://github.com/liggitt)) +- Fixed a `v1.28` regression in scheduler: a pod with concurrent events could incorrectly get moved to the unschedulable queue where it could get stuck until the next periodic purging after 5 minutes, if there was no other event for it. ([#120413](https://github.com/kubernetes/kubernetes/pull/120413), [@pohly](https://github.com/pohly)) +- Fixed a bug around restarting init containers in the right order relative to normal containers with `SidecarContainers` feature enabled. ([#120269](https://github.com/kubernetes/kubernetes/pull/120269), [@gjkim42](https://github.com/gjkim42)) +- Fixed a bug in the cronjob controller where already created jobs might be missing from the status. ([#120649](https://github.com/kubernetes/kubernetes/pull/120649), [@andrewsykim](https://github.com/andrewsykim)) +- Fixed a bug where `Services` using finalizers may hold onto `ClusterIP` and/or `NodePort` allocated resources for longer than expected if the finalizer is removed using the status subresource. ([#120623](https://github.com/kubernetes/kubernetes/pull/120623), [@aojea](https://github.com/aojea)) +- Fixed a bug where an API group's path was not unregistered from the API server's root paths when the group was deleted. ([#121283](https://github.com/kubernetes/kubernetes/pull/121283), [@tnqn](https://github.com/tnqn)) [SIG API Machinery and Testing] +- Fixed a bug where containers would not start on `cgroupv2` systems where `swap` is disabled. ([#120784](https://github.com/kubernetes/kubernetes/pull/120784), [@elezar](https://github.com/elezar)) +- Fixed a bug where the CPU set allocated to an init container, with containerRestartPolicy of `Always`, were erroneously reused by a regular container. ([#119447](https://github.com/kubernetes/kubernetes/pull/119447), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing] +- Fixed a bug where the device resources allocated to an init container, with `containerRestartPolicy` of `Always`, were erroneously reused by a regular container. ([#120461](https://github.com/kubernetes/kubernetes/pull/120461), [@gjkim42](https://github.com/gjkim42)) +- Fixed a bug where the memory resources allocated to an init container, with containerRestartPolicy of `Always`, were erroneously reused by a regular container. ([#120715](https://github.com/kubernetes/kubernetes/pull/120715), [@gjkim42](https://github.com/gjkim42)) [SIG Node] +- Fixed a concurrent map access in `TopologyCache`'s `HasPopulatedHints` method. ([#118189](https://github.com/kubernetes/kubernetes/pull/118189), [@Miciah](https://github.com/Miciah)) +- Fixed a regression (`CLIENTSET_PKG: unbound variable`) when invoking deprecated `generate-groups.sh` script. ([#120877](https://github.com/kubernetes/kubernetes/pull/120877), [@soltysh](https://github.com/soltysh)) +- Fixed a regression in `kube-proxy` where it might refuse to start if given + single-stack `IPv6` configuration options on a node that has both `IPv4` and + `IPv6` IPs. ([#121008](https://github.com/kubernetes/kubernetes/pull/121008), [@danwinship](https://github.com/danwinship)) +- Fixed a regression in default configurations, which enabled `PodDisruptionConditions` + by default, that prevented the control plane's pod garbage collector from deleting + pods that contained duplicated field keys (environmental variables with repeated keys or + container ports). ([#121103](https://github.com/kubernetes/kubernetes/pull/121103), [@mimowo](https://github.com/mimowo)) +- Fixed a regression in the default `v1.27` configurations in `kube-apiserver`: fixed the `AggregatedDiscoveryEndpoint` feature (`beta` in `v1.27+`) to successfully fetch discovery information from aggregated API servers that do not check `Accept` headers when serving the `/apis` endpoint. ([#119870](https://github.com/kubernetes/kubernetes/pull/119870), [@Jefftree](https://github.com/Jefftree)) +- Fixed a regression in the kubelet's behavior while creating a container when the `EventedPLEG` feature gate is enabled. ([#120942](https://github.com/kubernetes/kubernetes/pull/120942), [@sairameshv](https://github.com/sairameshv)) +- Fixed a regression since `v1.27.0` in the scheduler framework when running score plugins. + The `skippedScorePlugins` number might be greater than `enabledScorePlugins`, + so when initializing a slice the `cap(len(skippedScorePlugins) - len(enabledScorePlugins))` is negative, + which is not allowed. ([#121632](https://github.com/kubernetes/kubernetes/pull/121632), [@kerthcet](https://github.com/kerthcet)) +- Fixed a situation when, sometimes, the scheduler incorrectly placed a pod in the `unschedulable` queue instead of the `backoff` queue. This happened when some plugin previously declared the pod as `unschedulable` and then in a later attempt encounters some other error. Scheduling of that pod then got delayed by up to five minutes, after which periodic flushing moved the pod back into the `active` queue. ([#120334](https://github.com/kubernetes/kubernetes/pull/120334), [@pohly](https://github.com/pohly)) +- Fixed an issue related to not draining all the pods in a namespace when an empty selector, i.e., "{}," is specified in a Pod Disruption Budget (PDB). ([#119732](https://github.com/kubernetes/kubernetes/pull/119732), [@sairameshv](https://github.com/sairameshv)) +- Fixed an issue where `StatefulSet` might not restart a pod after eviction or node failure. ([#120398](https://github.com/kubernetes/kubernetes/pull/120398), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) +- Fixed an issue where a `CronJob` could fail to clean up Jobs when the `ResourceQuota` for `Jobs` had been reached. ([#119776](https://github.com/kubernetes/kubernetes/pull/119776), [@ASverdlov](https://github.com/ASverdlov)) +- Fixed an issue where a `StatefulSet` might not restart a pod after eviction or node failure. ([#121389](https://github.com/kubernetes/kubernetes/pull/121389), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) +- Fixed an issue with the `garbagecollection` controller registering duplicate event handlers if discovery requests failed. ([#117992](https://github.com/kubernetes/kubernetes/pull/117992), [@liggitt](https://github.com/liggitt)) +- Fixed attaching volumes after detach errors. Now volumes that failed to detach are not treated as attached. Kubernetes will make sure they are fully attached before they can be used by pods. ([#120595](https://github.com/kubernetes/kubernetes/pull/120595), [@jsafrane](https://github.com/jsafrane)) +- Fixed bug that kubelet resource metric `container_start_time_seconds` had timestamp equal to container start time. ([#120518](https://github.com/kubernetes/kubernetes/pull/120518), [@saschagrunert](https://github.com/saschagrunert)) [SIG Instrumentation, Node and Testing] +- Fixed inconsistency in the calculation of number of nodes that have an image, which affect the scoring in the `ImageLocality` plugin. ([#116938](https://github.com/kubernetes/kubernetes/pull/116938), [@olderTaoist](https://github.com/olderTaoist)) +- Fixed issue with incremental id generation for `loadbalancer` and `endpoint` in `kubeproxy` mock test framework. ([#120723](https://github.com/kubernetes/kubernetes/pull/120723), [@princepereira](https://github.com/princepereira)) +- Fixed panic in Job controller when `podRecreationPolicy: Failed` is used, and the number of terminating pods exceeds parallelism. ([#121147](https://github.com/kubernetes/kubernetes/pull/121147), [@kannon92](https://github.com/kannon92)) +- Fixed regression with adding aggregated `APIservices` panicking and affected health check introduced in release `v1.28.0`. ([#120814](https://github.com/kubernetes/kubernetes/pull/120814), [@Jefftree](https://github.com/Jefftree)) +- Fixed some invalid and unimportant log calls. ([#121249](https://github.com/kubernetes/kubernetes/pull/121249), [@pohly](https://github.com/pohly)) [SIG Cloud Provider, Cluster Lifecycle and Testing] +- Fixed stale SMB mount issue when SMB file share is deleted and then unmounted. ([#121851](https://github.com/kubernetes/kubernetes/pull/121851), [@andyzhangx](https://github.com/andyzhangx)) +- Fixed the bug where images that were pinned by the container runtime could be garbage collected by `kubelet`. ([#119986](https://github.com/kubernetes/kubernetes/pull/119986), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) +- Fixed the bug where kubelet couldn't output logs after log file rotated when `kubectl logs POD_NAME -f` is running. ([#115702](https://github.com/kubernetes/kubernetes/pull/115702), [@xyz-li](https://github.com/xyz-li)) +- Fixed the calculation of the requeue time in the cronjob controller, resulting in proper handling of failed/stuck jobs. ([#121327](https://github.com/kubernetes/kubernetes/pull/121327), [@soltysh](https://github.com/soltysh)) +- Fixed the issue where pod with ordinal number lower than the rolling partitioning number was being deleted. It was coming up with updated image. ([#120731](https://github.com/kubernetes/kubernetes/pull/120731), [@adilGhaffarDev](https://github.com/adilGhaffarDev)) +- Fixed tracking of terminating Pods in the Job status. The field was not updated unless there were other changes to apply. ([#121342](https://github.com/kubernetes/kubernetes/pull/121342), [@dejanzele](https://github.com/dejanzele)) +- Forbidden sysctls for pod sharing the respective namespaces with the host are now checked when creating or updating pods without such sysctls. ([#118705](https://github.com/kubernetes/kubernetes/pull/118705), [@pacoxu](https://github.com/pacoxu)) +- If a watch with the `progressNotify` option set is to be created, and the registry hasn't provided a `newFunc`, an error is now returned. ([#120212](https://github.com/kubernetes/kubernetes/pull/120212), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] +- Improved handling of jsonpath expressions for `kubectl wait --for`. It is now possible to use simple filter expressions which match on a field's content. ([#118748](https://github.com/kubernetes/kubernetes/pull/118748), [@andreaskaris](https://github.com/andreaskaris)) +- In the `wait.PollUntilContextTimeout` function, if `immediate` is true, the condition will now be invoked before waiting, guaranteeing that the condition is invoked at least once and then wait a interval before executing again. ([#119762](https://github.com/kubernetes/kubernetes/pull/119762), [@AxeZhan](https://github.com/AxeZhan)) +- KCCM: fixed transient node addition and removal caused by #121090 while syncing load balancers on large clusters with a lot of churn. ([#121091](https://github.com/kubernetes/kubernetes/pull/121091), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) +- Kubeadm: changed the "system:masters" Group in the apiserver-kubelet-client.crt certificate Subject to be "kubeadm:cluster-admins" which is a less privileged Group. ([#121837](https://github.com/kubernetes/kubernetes/pull/121837), [@neolit123](https://github.com/neolit123)) +- Incorporated feedback on PR #119341, on `failOpen` metric counting for mutate and validate webhooks ([#120087](https://github.com/kubernetes/kubernetes/pull/120087), [@divyasri537](https://github.com/divyasri537)) [SIG API Machinery] +- Metric buckets for `pod_start_duration_seconds` were changed to `{0.5, 1, 2, 3, 4, 5, 6, 8, 10, 20, 30, 45, 60, 120, 180, 240, 300, 360, 480, 600, 900, 1200, 1800, 2700, 3600}`. ([#120680](https://github.com/kubernetes/kubernetes/pull/120680), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) +- Mitigated http/2 DOS vulnerabilities for `CVE-2023-44487` and `CVE-2023-39325` for the API server when the client is unauthenticated. The mitigation may be disabled by setting the `UnauthenticatedHTTP2DOSMitigation` feature gate to `false` (it is enabled by default). An API server fronted by an L7 load balancer that already mitigates these http/2 attacks may choose to disable the kube-apiserver mitigation to avoid disrupting load balancer -> kube-apiserver connections if http/2 requests from multiple clients share the same backend connection. An API server on a private network may opt to disable the kube-apiserver mitigation to prevent performance regressions for unauthenticated clients. Authenticated requests rely on the fix in golang.org/x/net `v0.17.0` alone. https://issue.k8s.io/121197 tracks further mitigation of http/2 attacks by authenticated clients. ([#121120](https://github.com/kubernetes/kubernetes/pull/121120), [@enj](https://github.com/enj)) +- No-op and GC related updates to cluster trust bundles no longer require attest authorization when the `ClusterTrustBundleAttest` plugin is enabled. ([#120779](https://github.com/kubernetes/kubernetes/pull/120779), [@enj](https://github.com/enj)) +- Registered metric `apiserver_request_body_size_bytes` to track the size distribution of requests by `resource` and `verb`. ([#120474](https://github.com/kubernetes/kubernetes/pull/120474), [@YaoC](https://github.com/YaoC)) [SIG API Machinery and Instrumentation] +- Revised the logic for `DaemonSet` rolling update to exclude nodes if scheduling constraints are not met. This eliminates the problem of rolling updates to a `DaemonSet` getting stuck around tolerations. ([#119317](https://github.com/kubernetes/kubernetes/pull/119317), [@mochizuki875](https://github.com/mochizuki875)) +- Scheduler: in `v1.29` pre-releases, enabling contextual logging slowed down pod scheduling. ([#121715](https://github.com/kubernetes/kubernetes/pull/121715), [@pohly](https://github.com/pohly)) [SIG Instrumentation and Scheduling] +- Service Controller: load balancer hosts will now update after node's `ProviderID` is updated. ([#120492](https://github.com/kubernetes/kubernetes/pull/120492), [@cezarygerard](https://github.com/cezarygerard)) +- Setting the `status.loadBalancer` of a Service whose `spec.type` is not `LoadBalancer` was previously allowed, but any update to the `metadata` or `spec` would wipe that field. Setting this field is no longer permitted unless `spec.type` is `LoadBalancer`. In the very unlikely event that this has unexpected impact, you can enable the `AllowServiceLBStatusOnNonLB` feature gate, which will restore the previous behavior. If you do need to set this, please file an issue with the Kubernetes project to help contributors understand why you need it. ([#119789](https://github.com/kubernetes/kubernetes/pull/119789), [@thockin](https://github.com/thockin)) +- The `--bind-address` parameter in kube-proxy is misleading, no port is opened with this address. Instead it is translated internally to "nodeIP". The nodeIPs for both families are now taken from the Node object if `--bind-address` is unspecified or set to the "any" address (0.0.0.0 or ::). It is recommended to leave `--bind-address` unspecified, and in particular avoid to set it to localhost (127.0.0.1 or ::1) ([#119525](https://github.com/kubernetes/kubernetes/pull/119525), [@uablrek](https://github.com/uablrek)) [SIG Network and Scalability] +- Updated `kube-openapi` to remove invalid defaults: OpenAPI spec no longer includes default of `{}` for certain fields where it did not make sense. ([#120757](https://github.com/kubernetes/kubernetes/pull/120757), [@alexzielenski](https://github.com/alexzielenski)) +- Updated the CRI-O socket path, so users who configure kubelet to use a location like `/run/crio/crio.sock` don't see strange behaviour from CRI stats provider. ([#118704](https://github.com/kubernetes/kubernetes/pull/118704), [@dgl](https://github.com/dgl)) +- Volume attach or publish operation will not fail at `kubelet` if target path directory already exists on the node. ([#119735](https://github.com/kubernetes/kubernetes/pull/119735), [@akankshapanse](https://github.com/akankshapanse)) +- `cluster-bootstrap`: improved the security of the functions responsible for generation and validation of bootstrap tokens. ([#120400](https://github.com/kubernetes/kubernetes/pull/120400), [@neolit123](https://github.com/neolit123)) +- `etcd`: updated to `v3.5.10`. ([#121566](https://github.com/kubernetes/kubernetes/pull/121566), [@mzaian](https://github.com/mzaian)) +- `k8s.io/dynamic-resource-allocation/controller:` `UnsuitableNodes` can now handle a mix of allocated and unallocated claims correctly. ([#120338](https://github.com/kubernetes/kubernetes/pull/120338), [@pohly](https://github.com/pohly)) +- `k8s.io/dynamic-resource-allocation/controller`: `ResourceClaimParameters` and `ResourceClassParameters` validation errors are now visible on `ResourceClaim`, `ResourceClass` and `Pod`. ([#121065](https://github.com/kubernetes/kubernetes/pull/121065), [@byako](https://github.com/byako)) +- `k8s.io/dynamic-resource-allocation`: can now handle a `selected` node which isn't listed + as `potential` node. ([#120871](https://github.com/kubernetes/kubernetes/pull/120871), [@pohly](https://github.com/pohly)) +- `kube-proxy` now reports its health more accurately in dual-stack clusters when there are problems with only one IP family. ([#118146](https://github.com/kubernetes/kubernetes/pull/118146), [@aroradaman](https://github.com/aroradaman)) +- `kubeadm`: fixed the bug where it always did CRI detection when `--config` was passed, even if it is not required by the subcommand. ([#120828](https://github.com/kubernetes/kubernetes/pull/120828), [@SataQiu](https://github.com/SataQiu)) +- `kubeadm`: use universal deserializer to decode static pod. ([#120549](https://github.com/kubernetes/kubernetes/pull/120549), [@pacoxu](https://github.com/pacoxu)) +- `kubeadm`: fix `nil` pointer when `etcd` member is already removed. ([#119753](https://github.com/kubernetes/kubernetes/pull/119753), [@pacoxu](https://github.com/pacoxu)) +- `kubeadm`: fixed the bug where `--image-repository` flag is missing for some init + phase sub-commands. ([#120072](https://github.com/kubernetes/kubernetes/pull/120072), [@SataQiu](https://github.com/SataQiu)) +- `kubeadm`: improved the logic that checks whether a `systemd` service exists. ([#120514](https://github.com/kubernetes/kubernetes/pull/120514), [@fengxsong](https://github.com/fengxsong)) +- `kubeadm`: will now use universal deserializer to decode static pod. ([#120549](https://github.com/kubernetes/kubernetes/pull/120549), [@pacoxu](https://github.com/pacoxu)) +- `kubectl prune v2`: Switched annotation from `contains-group-resources` to `contains-group-kinds`, + because this is what we defined in the KEP and is clearer to end-users. Although the functionality is + in `alpha`, we will recognize the prior annotation. This migration support will be removed in `beta`/`GA`. ([#118942](https://github.com/kubernetes/kubernetes/pull/118942), [@justinsb](https://github.com/justinsb)) +- `kubectl` will not print events if `--show-events=false` argument is passed to + describe PVC subcommand. ([#120380](https://github.com/kubernetes/kubernetes/pull/120380), [@MaGaroo](https://github.com/MaGaroo)) +- `scheduler`: Fixed missing field `apiVersion` from events reported by the taint + manager. ([#114095](https://github.com/kubernetes/kubernetes/pull/114095), [@aimuz](https://github.com/aimuz)) + +### Other (Cleanup or Flake) + +- Added automatic download of the CNI binary in `local-up-cluster.sh`, facilitating local debugging. ([#120312](https://github.com/kubernetes/kubernetes/pull/120312), [@HirazawaUi](https://github.com/HirazawaUi)) +- Added context to `caches populated` log messages. ([#119796](https://github.com/kubernetes/kubernetes/pull/119796), [@sttts](https://github.com/sttts)) +- Changed behavior of `kube-proxy` by allowing to set `sysctl` values lower than the existing one. ([#120448](https://github.com/kubernetes/kubernetes/pull/120448), [@aroradaman](https://github.com/aroradaman)) +- Cleaned up `kube-apiserver` HTTP logs for impersonated requests. ([#119795](https://github.com/kubernetes/kubernetes/pull/119795), [@sttts](https://github.com/sttts)) +- Deprecated the `--cloud-provider` and `--cloud-config` CLI parameters in kube-apiserver. + These parameters will be removed in a future release. ([#120903](https://github.com/kubernetes/kubernetes/pull/120903), [@dims](https://github.com/dims)) [SIG API Machinery] +- Dynamic resource allocation: will now avoid creating a new gRPC connection for every call of prepare/unprepare resource(s). ([#118619](https://github.com/kubernetes/kubernetes/pull/118619), [@TommyStarK](https://github.com/TommyStarK)) +- E2E storage tests: setting test tags like `[Slow]` via the `DriverInfo.FeatureTag` field is no longer supported. ([#121391](https://github.com/kubernetes/kubernetes/pull/121391), [@pohly](https://github.com/pohly)) +- Fixed an issue where the `vsphere` cloud provider would not trust a certificate if: + - The issuer of the certificate was unknown (`x509.UnknownAuthorityError`) + - The requested name did not match the set of authorized names (`x509.HostnameError`) + - The error surfaced after attempting a connection contained one of the substrings: "certificate is not trusted" or "certificate signed by unknown authority". ([#120736](https://github.com/kubernetes/kubernetes/pull/120736), [@MadhavJivrajani](https://github.com/MadhavJivrajani)) +- Fixed bug where `Adding GroupVersion` log line was constantly repeated without any group version changes. ([#119825](https://github.com/kubernetes/kubernetes/pull/119825), [@Jefftree](https://github.com/Jefftree)) +- Generated `ResourceClaim` names are now more readable because of an additional hyphen before the random suffix (`<pod name>-<claim name>-<random suffix>`). ([#120336](https://github.com/kubernetes/kubernetes/pull/120336), [@pohly](https://github.com/pohly)) +- Graduated `JobReadyPods` to `stable`. The feature gate can no longer be disabled. ([#121302](https://github.com/kubernetes/kubernetes/pull/121302), [@stuton](https://github.com/stuton)) +- Improved memory usage of `kube-controller-manager` by dropping the `.metadata.managedFields` field that `kube-controller-manager` doesn't require. ([#118455](https://github.com/kubernetes/kubernetes/pull/118455), [@linxiulei](https://github.com/linxiulei)) +- Lower and upper case feature flag values are now allowed, but the name still has to match. ([#121441](https://github.com/kubernetes/kubernetes/pull/121441), [@soltysh](https://github.com/soltysh)) +- Makefile and scripts now respect `GOTOOLCHAIN` and otherwise ensure `./.go-version` is used. ([#120279](https://github.com/kubernetes/kubernetes/pull/120279), [@BenTheElder](https://github.com/BenTheElder)) +- Migrated the remainder of the scheduler to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#120933](https://github.com/kubernetes/kubernetes/pull/120933), [@mengjiao-liu](https://github.com/mengjiao-liu)) [SIG Instrumentation, Scheduling and Testing] +- Optimized `NodeUnschedulable` Filter to avoid unnecessary calculations. ([#119399](https://github.com/kubernetes/kubernetes/pull/119399), [@wackxu](https://github.com/wackxu)) +- Previous versions of Kubernetes on Google Cloud required that workloads (e.g., Deployments, DaemonSets, etc.) which used `PersistentDisk` volumes were using them in read-only mode. This validation provided very little value at relatively host implementation cost, and will no longer be validated. If this is a problem for a specific use-case, please set the `SkipReadOnlyValidationGCE` gate to false to re-enable the validation, and file a Kubernetes bug with details. ([#121083](https://github.com/kubernetes/kubernetes/pull/121083), [@thockin](https://github.com/thockin)) +- Previously, the pod name and namespace were eliminated in the event log message. This PR attempts to add the preemptor pod UID in the preemption event message logs for easier debugging and safer transparency. ([#119971](https://github.com/kubernetes/kubernetes/pull/119971), [@kwakubiney](https://github.com/kwakubiney)) [SIG Scheduling] +- Promoted to conformance a test that verified that `Services` only forward traffic on the port and protocol specified. ([#120069](https://github.com/kubernetes/kubernetes/pull/120069), [@aojea](https://github.com/aojea)) +- Removed `GA` feature gate about `CSIMigrationvSphere`. ([#121291](https://github.com/kubernetes/kubernetes/pull/121291), [@bzsuni](https://github.com/bzsuni)) +- Removed `GA` feature gate about `ProbeTerminationGracePeriod`. ([#121257](https://github.com/kubernetes/kubernetes/pull/121257), [@bzsuni](https://github.com/bzsuni)) +- Removed `GA` feature gate for `JobTrackingWithFinalizers` in `v1.28`. ([#119100](https://github.com/kubernetes/kubernetes/pull/119100), [@bzsuni](https://github.com/bzsuni)) +- Removed `GA`ed feature gate `TopologyManager`. ([#121252](https://github.com/kubernetes/kubernetes/pull/121252), [@tukwila](https://github.com/tukwila)) +- Removed `GA`ed feature gates `OpenAPIV3`. ([#121255](https://github.com/kubernetes/kubernetes/pull/121255), [@tukwila](https://github.com/tukwila)) +- Removed `GA`ed feature gates `SeccompDefault`. ([#121246](https://github.com/kubernetes/kubernetes/pull/121246), [@tukwila](https://github.com/tukwila)) +- Removed ephemeral container legacy server support for the server versions prior to `1.22`. ([#119537](https://github.com/kubernetes/kubernetes/pull/119537), [@ardaguclu](https://github.com/ardaguclu)) +- Removed the `CronJobTimeZone` feature gate (the feature is stable and always enabled) + - Removed the `JobMutableNodeSchedulingDirectives` feature gate (the feature is stable and always enabled) + - Removed the `LegacyServiceAccountTokenNoAutoGeneration` feature gate (the feature is stable and always enabled) ([#120192](https://github.com/kubernetes/kubernetes/pull/120192), [@SataQiu](https://github.com/SataQiu)) [SIG Apps, Auth and Scheduling] +- Removed the `DownwardAPIHugePages` feature gate (the feature is stable and always enabled) ([#120249](https://github.com/kubernetes/kubernetes/pull/120249), [@pacoxu](https://github.com/pacoxu)) [SIG Apps and Node] +- Removed the `GRPCContainerProbe` feature gate (the feature is stable and always enabled). ([#120248](https://github.com/kubernetes/kubernetes/pull/120248), [@pacoxu](https://github.com/pacoxu)) +- Renamed `apiserver_request_body_sizes` metric to `apiserver_request_body_size_bytes`. ([#120503](https://github.com/kubernetes/kubernetes/pull/120503), [@dgrisonnet](https://github.com/dgrisonnet)) +- Set the resolution for the `job_controller_job_sync_duration_seconds` metric from `4ms` to `1min`. ([#120577](https://github.com/kubernetes/kubernetes/pull/120577), [@alculquicondor](https://github.com/alculquicondor)) +- The `horizontalpodautoscaling` and `clusterrole-aggregation` controllers now assume the `autoscaling/v1` and `rbac.authorization.k8s.io/v1` APIs are available. If you disable those APIs and do not want to run those controllers, exclude them by passing `--controllers=-horizontalpodautoscaling` or `--controllers=-clusterrole-aggregation` to `kube-controller-manager`. ([#117977](https://github.com/kubernetes/kubernetes/pull/117977), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Cloud Provider] +- The metrics controlled by the `ComponentSLIs` feature-gate and served at `/metrics/slis` are now GA and unconditionally enabled. The feature-gate will be removed in `v1.31`. ([#120574](https://github.com/kubernetes/kubernetes/pull/120574), [@logicalhan](https://github.com/logicalhan)) +- Updated CNI plugins to `v1.3.0`. ([#119969](https://github.com/kubernetes/kubernetes/pull/119969), [@saschagrunert](https://github.com/saschagrunert)) +- Updated `cri-tools` to `v1.28.0`. ([#119933](https://github.com/kubernetes/kubernetes/pull/119933), [@saschagrunert](https://github.com/saschagrunert)) +- Updated `distroless-iptables` to use `registry.k8s.io/build-image/distroless-iptables:v0.3.1`. ([#120352](https://github.com/kubernetes/kubernetes/pull/120352), [@saschagrunert](https://github.com/saschagrunert)) +- Updated runc to `1.1.10`. ([#121739](https://github.com/kubernetes/kubernetes/pull/121739), [@ty-dc](https://github.com/ty-dc)) +- Upgraded `coredns` to `v1.11.1`. ([#120116](https://github.com/kubernetes/kubernetes/pull/120116), [@tukwila](https://github.com/tukwila)) +- `EnqueueExtensions` from plugins other than `PreEnqueue`, `PreFilter`, `Filter`, `Reserve` and `Permit` are now ignored. + It reduces the number of kinds of cluster events the scheduler needs to subscribe/handle. ([#121571](https://github.com/kubernetes/kubernetes/pull/121571), [@sanposhiho](https://github.com/sanposhiho)) +- `GetPodQOS(pod *core.Pod)` function now returns the stored value from `PodStatus.QOSClass`, if set. To compute/evaluate the value of `QOSClass` from scratch, `ComputePodQOS(pod*core.Pod)` must be used. ([#119665](https://github.com/kubernetes/kubernetes/pull/119665), [@vinaykul](https://github.com/vinaykul)) +- `RetroactiveDefaultStorageClass` feature gate that graduated to GA in `v1.28` and was unconditionally enabled has been removed in `v1.29`. ([#120861](https://github.com/kubernetes/kubernetes/pull/120861), [@RomanBednar](https://github.com/RomanBednar)) +- `Statefulset` now waits for new replicas in tests when removing `.start.ordinal`. ([#119761](https://github.com/kubernetes/kubernetes/pull/119761), [@soltysh](https://github.com/soltysh)) +- `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` objects are + persisted in `etcd` using the `v1beta1` version. Either remove alpha objects, or disable the + alpha `ValidatingAdmissionPolicy` feature in a `v1.27` server before upgrading to a + `v1.28` server with the beta feature and API enabled. ([#120018](https://github.com/kubernetes/kubernetes/pull/120018), [@liggitt](https://github.com/liggitt)) +- `client-go`: `k8s.io/client-go/tools` events and record packages now have new APIs for specifying a context and logger. ([#120729](https://github.com/kubernetes/kubernetes/pull/120729), [@pohly](https://github.com/pohly)) +- `kube-controller-manager` help now includes controllers behind a feature gate in `--controllers` flag. ([#120371](https://github.com/kubernetes/kubernetes/pull/120371), [@atiratree](https://github.com/atiratree)) +- `kubeadm`: removed `system:masters` organization from `apiserver-etcd-client` + certificate. ([#120521](https://github.com/kubernetes/kubernetes/pull/120521), [@SataQiu](https://github.com/SataQiu)) +- `kubeadm`: removed leftover disclaimer that could be seen in the `kubeadm init phase certs` command help screen, since the "certs" phase of "init" is no longer alpha. ([#121172](https://github.com/kubernetes/kubernetes/pull/121172), [@SataQiu](https://github.com/SataQiu)) +- `kubeadm`: updated warning message when swap space is detected. When swap is + active on Linux, `kubeadm` explains that swap is supported for cgroup v2 only and + is beta but disabled by default. ([#120198](https://github.com/kubernetes/kubernetes/pull/120198), [@pacoxu](https://github.com/pacoxu)) +- `kubectl` will not support the `/swagger-2.0.0.pb-v1` endpoint that has been long deprecated. ([#119410](https://github.com/kubernetes/kubernetes/pull/119410), [@Jefftree](https://github.com/Jefftree)) +- `scheduler`: handling of unschedulable pods because a `ResourceClass` is missing + is a bit more efficient and no longer relies on periodic retries. ([#120213](https://github.com/kubernetes/kubernetes/pull/120213), [@pohly](https://github.com/pohly)) diff --git a/releases/release-1.29/release-notes/sessions/maps-1695733993.json b/releases/release-1.29/release-notes/sessions/maps-1695733993.json index 76c66bed1fb..9ff25d00858 100644 --- a/releases/release-1.29/release-notes/sessions/maps-1695733993.json +++ b/releases/release-1.29/release-notes/sessions/maps-1695733993.json @@ -1,543 +1,543 @@ -{ - "mail": "fsmunoz@gmail.com", - "name": "Frederico Muñoz", - "date": 1695733993, - "prs": [ - { - "nr": 120577, - "hash": "972cb9a7e80aca230fa9be1101f5241716c1584c" - }, - { - "nr": 120527, - "hash": "09fbd794a2809272f4bb93e8c2846ed0098253ab" - }, - { - "nr": 118996, - "hash": "b525b4c672ffc29a2d8a31e5342d966bddb7d335" - }, - { - "nr": 120038, - "hash": "e3d464bd0bd103629ab7f571d8f2bfa2338e7d17" - }, - { - "nr": 120649, - "hash": "12f791f6dcaca74801cdd0d93c2032e2cac7b944" - }, - { - "nr": 118942, - "hash": "abcbb433b7011775bf845c0c9eb6ca9ecc991767" - }, - { - "nr": 116752, - "hash": "af0ac0f2924cbdf02c16c8cae7a785dce4622097" - }, - { - "nr": 120285, - "hash": "48157c2f6442a229d350c5d643d170850f43e688" - }, - { - "nr": 119796, - "hash": "0afc3cb5364c4fc1deda24084b08d17452e92c28" - }, - { - "nr": 119769, - "hash": "92f8095a2cffd45a7abaa94f06550b03e10764ab" - }, - { - "nr": 119753, - "hash": "76dc21af1dbe25b0d3041d5b2fec10738d82a3d9" - }, - { - "nr": 120492, - "hash": "1ec81fb3778004e26037221dc8a40911ef0f8f95" - }, - { - "nr": 119537, - "hash": "a2a7678deef3534da0b6476ecf792528c2c1eca6" - }, - { - "nr": 119971, - "hash": "eb77689402ec2e0f2c6551fcb885b099414b0f1d" - }, - { - "nr": 119705, - "hash": "b28403b687690764eebbb96fb40dde6e235cbe3c" - }, - { - "nr": 120836, - "hash": "3103a324159f40a5b2968156e3957a22a7d68a5b" - }, - { - "nr": 119557, - "hash": "754fb642f166a217e1265551eb0cf64d7b388912" - }, - { - "nr": 120559, - "hash": "9b58bfc8430782a0eb08d53e3496df01e5e5eb3d" - }, - { - "nr": 120336, - "hash": "0da922cf38fca85c65ad85d3a6dd345c9598b886" - }, - { - "nr": 120392, - "hash": "c2ea36b2145b5aaa82798b75a1ac207d323d4842" - }, - { - "nr": 119994, - "hash": "e7be212e8d20f8fc71aa8e55f3968f2e56a5c58e" - }, - { - "nr": 120039, - "hash": "2b5b7267d0806e4ded3d92e9635d092e4f966ba2" - }, - { - "nr": 118455, - "hash": "c5e2605bde5e72151dc81ee8bbf22f67bdd6fbd6" - }, - { - "nr": 120448, - "hash": "808c3314c2a67f5d33a40b7ea44c4cd64dd531be" - }, - { - "nr": 117720, - "hash": "1664d4b3d0d61c4053ccadea24447897be5a2baf" - }, - { - "nr": 119761, - "hash": "6fbd964049b0d1432fb41960cf5fb3faa9fbbf39" - }, - { - "nr": 118709, - "hash": "e66922b4a40fb0f9e2b37133b2e8f7dd2bc642a5" - }, - { - "nr": 120228, - "hash": "9355147b1206766cd6cf1070ec3841a6204c3aba" - }, - { - "nr": 119709, - "hash": "d90dae1d8a62b81e8284fa3c1134ed61cff92ceb" - }, - { - "nr": 118598, - "hash": "d94343c0f5a5b14723b93aa4aa89f31b3166d522" - }, - { - "nr": 120546, - "hash": "690aaacc5826faa2b6fe06a11dd5aeb2acfdd597" - }, - { - "nr": 119986, - "hash": "0965ae57f9f9eb0167aa33c241e2c8599d98748c" - }, - { - "nr": 119937, - "hash": "8f9be9126dca3993f5a84248e8f52e818748f581" - }, - { - "nr": 119385, - "hash": "fa26169f94d817624b8889b71b62f0ce09e81072" - }, - { - "nr": 120736, - "hash": "1df2bad5a97f9a9aa822ef4c6756a06b6b2f037f" - }, - { - "nr": 119317, - "hash": "39a2eee5e03580084055dd7b7f26846b21a21978" - }, - { - "nr": 120380, - "hash": "1d0b88e2516922c39d7f9e2b3fc17d42a1409b95" - }, - { - "nr": 120427, - "hash": "e9d0804c955b17e978f87d872386eca332f88cc6" - }, - { - "nr": 120433, - "hash": "bc11a2b82e317607a1da167f7180c50c5d2f4002" - }, - { - "nr": 120275, - "hash": "9f9b3d05f26fb06d6c1bc7a14f6fd1e27634bb38" - }, - { - "nr": 118653, - "hash": "ee2d320603f57fb0da79c8bef835bb4d28647266" - }, - { - "nr": 120105, - "hash": "60124e43a58dee958555acfdba9624d2c2597a41" - }, - { - "nr": 120250, - "hash": "9d6ee80ff682b239bede85af6c73aec9591be66f" - }, - { - "nr": 118950, - "hash": "0bb84285f5c5ec9186a80fdf493911e60105908c" - }, - { - "nr": 119878, - "hash": "38618ce80bbefbbaf2ade0f1e41ab7e56715ca81" - }, - { - "nr": 119795, - "hash": "6d10b94cc6d41899c9906408d00542f63774d976" - }, - { - "nr": 120118, - "hash": "1cda1ee218240cac3ab4311adbeada35ed8a34e9" - }, - { - "nr": 117977, - "hash": "6cff4cc0333b52caf412a9b9b57d7bbac0550e02" - }, - { - "nr": 120514, - "hash": "7dce84624a3e76722b13eaea231037a3b0de33b8" - }, - { - "nr": 120312, - "hash": "a55801ee17f6694adb64c4e052d45cd6d1b6880e" - }, - { - "nr": 119525, - "hash": "97e229efe2ec57e205d2d7c0577da96043d05d0a" - }, - { - "nr": 119410, - "hash": "4b039ed3cbeb4d80526f3f4a3bc95ce3d0414f47" - }, - { - "nr": 120198, - "hash": "857c975191e46e281dbc3744a755cd6b9cca35e2" - }, - { - "nr": 119661, - "hash": "6062f442592498c632304dfc858fa0b544c5adae" - }, - { - "nr": 114095, - "hash": "67becf523e2cbd6a056d5d55512926da01eb0bf3" - }, - { - "nr": 118189, - "hash": "228b863aab18d56c594846b5e5e9b2f7ec510a08" - }, - { - "nr": 120779, - "hash": "eb1b5eafa8904dd991bc71b25c26f800e8766db0" - }, - { - "nr": 120583, - "hash": "77aa9159fa83a1dd753ab77c6dc9fce70c15f31c" - }, - { - "nr": 120119, - "hash": "11cc3bce8e047853b38d113415e5bdab7b02aa78" - }, - { - "nr": 120101, - "hash": "553ea46e20c44d7caee3d38ce56328f63545b6fe" - }, - { - "nr": 120413, - "hash": "abba114ed510355e0ad70e1795985d986d499db3" - }, - { - "nr": 119870, - "hash": "b2127becd1d01d5faf03239d70899e96d4d19642" - }, - { - "nr": 119776, - "hash": "d8bb6c7c8bf73d2893c5ac20bcdc5d62b95c34df" - }, - { - "nr": 119948, - "hash": "01c49ca20bf43730edc94f4774dc5fc7295b968d" - }, - { - "nr": 119778, - "hash": "ea3d75042f29ab4c4fd77e24a8be5c817646a040" - }, - { - "nr": 119399, - "hash": "f23499979b96c5e288b12b44fba58989491f6478" - }, - { - "nr": 120777, - "hash": "123865e4e588f058003c3b535712e9b9da6bcfbf" - }, - { - "nr": 120513, - "hash": "fb883c9f88ee8a1c63c6f36955fdd2e945a55ace" - }, - { - "nr": 120233, - "hash": "49b6d8b6ee43edd7347fc6cc659c61a9a39da7ab" - }, - { - "nr": 119556, - "hash": "e5fbeb6434e0c84bea865fd600e4d669b34bfd0b" - }, - { - "nr": 119859, - "hash": "6d12b6b39de9839c1361866925f73c63d1e9b018" - }, - { - "nr": 119579, - "hash": "7a511de9cdf6726d14ce16f20eacdd9ec683923c" - }, - { - "nr": 117992, - "hash": "207fa593686b76520e985fd89aee6f2913cd6b7c" - }, - { - "nr": 120574, - "hash": "eaac44b7f345a20b23d4dd52f14e85f8f857f853" - }, - { - "nr": 120069, - "hash": "51670580914a9ded4ef8e4ec5172783fadbe1bab" - }, - { - "nr": 120018, - "hash": "c823d82d150ef4080e039306d0126bd9afcaf419" - }, - { - "nr": 119290, - "hash": "ac065fbafb6d1fc0ac909e4169b14bee7c17d56c" - }, - { - "nr": 120623, - "hash": "14345a7cb5d523c275fbece56b47376e80664daa" - }, - { - "nr": 117326, - "hash": "d174b83408589ad3dc44e0bc9153ae811cf73990" - }, - { - "nr": 117503, - "hash": "2835d763a686dd2daba30cdc7288d2114ffbaf59" - }, - { - "nr": 117502, - "hash": "b8421b44e514a083fbf9e4ba6636e57e96adad7d" - }, - { - "nr": 120151, - "hash": "1884f5f01a7c0a352c148f1cb26f1dc7a5a5567b" - }, - { - "nr": 120438, - "hash": "14c36efbc9f1854fdb968f4e54d6852955db8f29" - }, - { - "nr": 118619, - "hash": "35622c624284c4a9e3700645a56ff2219497f1f6" - }, - { - "nr": 116884, - "hash": "e627b7dce7db18f8b27d5b5e1b6e7ea584ebdb4d" - }, - { - "nr": 120398, - "hash": "4737ad4492292498119c9243e5e3914d29affb46" - }, - { - "nr": 120330, - "hash": "3c758b2f450ff54b24297cd64376b997af32fa60" - }, - { - "nr": 119829, - "hash": "0f3ffa971b8393411aa981d7f6b1963de508d4bc" - }, - { - "nr": 119105, - "hash": "5c70043398b5ae29d007d4a30130be064ee09403" - }, - { - "nr": 120334, - "hash": "cac4e6038e915d3fbf1fbe5b818ca9b0f71dcaae" - }, - { - "nr": 120255, - "hash": "227f3485c96018006baef6308cdf09565997f6c0" - }, - { - "nr": 119959, - "hash": "b19a95f70e908707ab6482e74dc60526f9a12fb5" - }, - { - "nr": 120549, - "hash": "b8749dad66a41f2e89c07a17355cee2572f92fd9" - }, - { - "nr": 120493, - "hash": "68e0e3f8ab190f52d4d813ce7eeadd6dd1decec3" - }, - { - "nr": 120352, - "hash": "b07242cb34e74cb91138303cdea39d64b37c185f" - }, - { - "nr": 120428, - "hash": "e8d0b358d7b7af611dd6e7b300b09593e8d6836e" - }, - { - "nr": 120375, - "hash": "9f95b13dd429b99dd470fc41936c70be0d52e65a" - }, - { - "nr": 119592, - "hash": "4c8404ec451820d34d0be4ff9bd72b74f1568ed9" - }, - { - "nr": 119825, - "hash": "24ce651bf58960bec8c058a08308dd9b608cc91b" - }, - { - "nr": 119049, - "hash": "5c8adf4375c65c9c4059b1a6bf0acb675408ec10" - }, - { - "nr": 119944, - "hash": "335858996dc18e02a6dc549cb4e7625f3b2a8011" - }, - { - "nr": 119503, - "hash": "2b735c1f0d3460b171dd4db8bd394147759d9353" - }, - { - "nr": 116897, - "hash": "c2ded069da6e2e54069ff55258718f9baf99afc2" - }, - { - "nr": 120723, - "hash": "2c7206727c60950c9504b19109fa01d3d328cf20" - }, - { - "nr": 120521, - "hash": "c0fe3257783364fb9e398ee4e191dd3172e31fa3" - }, - { - "nr": 120213, - "hash": "b87f017a0545ad21f398b26279816e3f0b1bd19a" - }, - { - "nr": 120412, - "hash": "a27e42623cc2c952196e47a6f191d05599de7d27" - }, - { - "nr": 119150, - "hash": "9fcefd8a9cb596621ecd4d82a64f86a6b48b5717" - }, - { - "nr": 120204, - "hash": "0ce808bc0419c5a9d3e60c6d1434cbe1f506b166" - }, - { - "nr": 119933, - "hash": "5c559e4b7377634cf355f86d990be4ea0117f3ab" - }, - { - "nr": 120116, - "hash": "b1bc87873dc1af16576a3109dc8112dd4df74297" - }, - { - "nr": 119969, - "hash": "59b253d666f8641306e38916bc2f83a3b3018979" - }, - { - "nr": 120097, - "hash": "868981fa7f9f0125b476385ea08776129ef97503" - }, - { - "nr": 119785, - "hash": "dc04afc565c8cc60951c45f7c2a96dce55af7658" - }, - { - "nr": 119515, - "hash": "4b616d6e2cdb9a021b837f5bd525aec39ce1bccc" - }, - { - "nr": 118748, - "hash": "cbc2da9dd96ac111eecf06d2a57ec138377eb62b" - }, - { - "nr": 120524, - "hash": "abc1e7e973196554efa7de381d811e70165cc10a" - }, - { - "nr": 119495, - "hash": "5c0fe8d830454546f93311a29b34eb7e433bd0b6" - }, - { - "nr": 119142, - "hash": "c5473ae9d2e56f1e5a27451a0a79f6e67b1f2bc2" - }, - { - "nr": 118568, - "hash": "20db3b1a810114158685093edf9b962c3f5e7a47" - }, - { - "nr": 120279, - "hash": "e81888cfdadabace23b65f691f2b49b17a1acf07" - }, - { - "nr": 120281, - "hash": "7b0356e77d5f6776c3154c27ba5e2e139137b8d4" - }, - { - "nr": 120212, - "hash": "6dbd06f3d0a123065d73af4b9b89e230cf202d73" - }, - { - "nr": 120072, - "hash": "848b50f024a2fcba9db4298e9841d91727713f54" - }, - { - "nr": 118923, - "hash": "eb7a52a5771ecdb57338429083631250189760c0" - }, - { - "nr": 119800, - "hash": "d01d5137fce1800b3151c11629ec807187f7e483" - }, - { - "nr": 120854, - "hash": "48795f31fd4fd3f4ad05034ffbb6a915098ef557" - }, - { - "nr": 120108, - "hash": "0a0a5a62459473e46ce565d7b5d0db11e79440ed" - }, - { - "nr": 119394, - "hash": "2361c2f7da26a57e8dc70a277736f31214a6b5f4" - }, - { - "nr": 120327, - "hash": "d455d16088fd837c8bae28c1254aa8fbaf750f9f" - }, - { - "nr": 119346, - "hash": "71c383952778e8454eb55ffdc743414e54f69639" - }, - { - "nr": 120087, - "hash": "a65a7af46514714708eca2024aab33013efa149a" - }, - { - "nr": 119789, - "hash": "b1b16c1b347c158d30f74675b8bc0264aa42ab50" - }, - { - "nr": 120064, - "hash": "65b35e8650cbd98634d5a0c99d15084aca71e6be" - } - ] +{ + "mail": "fsmunoz@gmail.com", + "name": "Frederico Muñoz", + "date": 1695733993, + "prs": [ + { + "nr": 120577, + "hash": "972cb9a7e80aca230fa9be1101f5241716c1584c" + }, + { + "nr": 120527, + "hash": "09fbd794a2809272f4bb93e8c2846ed0098253ab" + }, + { + "nr": 118996, + "hash": "b525b4c672ffc29a2d8a31e5342d966bddb7d335" + }, + { + "nr": 120038, + "hash": "e3d464bd0bd103629ab7f571d8f2bfa2338e7d17" + }, + { + "nr": 120649, + "hash": "12f791f6dcaca74801cdd0d93c2032e2cac7b944" + }, + { + "nr": 118942, + "hash": "abcbb433b7011775bf845c0c9eb6ca9ecc991767" + }, + { + "nr": 116752, + "hash": "af0ac0f2924cbdf02c16c8cae7a785dce4622097" + }, + { + "nr": 120285, + "hash": "48157c2f6442a229d350c5d643d170850f43e688" + }, + { + "nr": 119796, + "hash": "0afc3cb5364c4fc1deda24084b08d17452e92c28" + }, + { + "nr": 119769, + "hash": "92f8095a2cffd45a7abaa94f06550b03e10764ab" + }, + { + "nr": 119753, + "hash": "76dc21af1dbe25b0d3041d5b2fec10738d82a3d9" + }, + { + "nr": 120492, + "hash": "1ec81fb3778004e26037221dc8a40911ef0f8f95" + }, + { + "nr": 119537, + "hash": "a2a7678deef3534da0b6476ecf792528c2c1eca6" + }, + { + "nr": 119971, + "hash": "eb77689402ec2e0f2c6551fcb885b099414b0f1d" + }, + { + "nr": 119705, + "hash": "b28403b687690764eebbb96fb40dde6e235cbe3c" + }, + { + "nr": 120836, + "hash": "3103a324159f40a5b2968156e3957a22a7d68a5b" + }, + { + "nr": 119557, + "hash": "754fb642f166a217e1265551eb0cf64d7b388912" + }, + { + "nr": 120559, + "hash": "9b58bfc8430782a0eb08d53e3496df01e5e5eb3d" + }, + { + "nr": 120336, + "hash": "0da922cf38fca85c65ad85d3a6dd345c9598b886" + }, + { + "nr": 120392, + "hash": "c2ea36b2145b5aaa82798b75a1ac207d323d4842" + }, + { + "nr": 119994, + "hash": "e7be212e8d20f8fc71aa8e55f3968f2e56a5c58e" + }, + { + "nr": 120039, + "hash": "2b5b7267d0806e4ded3d92e9635d092e4f966ba2" + }, + { + "nr": 118455, + "hash": "c5e2605bde5e72151dc81ee8bbf22f67bdd6fbd6" + }, + { + "nr": 120448, + "hash": "808c3314c2a67f5d33a40b7ea44c4cd64dd531be" + }, + { + "nr": 117720, + "hash": "1664d4b3d0d61c4053ccadea24447897be5a2baf" + }, + { + "nr": 119761, + "hash": "6fbd964049b0d1432fb41960cf5fb3faa9fbbf39" + }, + { + "nr": 118709, + "hash": "e66922b4a40fb0f9e2b37133b2e8f7dd2bc642a5" + }, + { + "nr": 120228, + "hash": "9355147b1206766cd6cf1070ec3841a6204c3aba" + }, + { + "nr": 119709, + "hash": "d90dae1d8a62b81e8284fa3c1134ed61cff92ceb" + }, + { + "nr": 118598, + "hash": "d94343c0f5a5b14723b93aa4aa89f31b3166d522" + }, + { + "nr": 120546, + "hash": "690aaacc5826faa2b6fe06a11dd5aeb2acfdd597" + }, + { + "nr": 119986, + "hash": "0965ae57f9f9eb0167aa33c241e2c8599d98748c" + }, + { + "nr": 119937, + "hash": "8f9be9126dca3993f5a84248e8f52e818748f581" + }, + { + "nr": 119385, + "hash": "fa26169f94d817624b8889b71b62f0ce09e81072" + }, + { + "nr": 120736, + "hash": "1df2bad5a97f9a9aa822ef4c6756a06b6b2f037f" + }, + { + "nr": 119317, + "hash": "39a2eee5e03580084055dd7b7f26846b21a21978" + }, + { + "nr": 120380, + "hash": "1d0b88e2516922c39d7f9e2b3fc17d42a1409b95" + }, + { + "nr": 120427, + "hash": "e9d0804c955b17e978f87d872386eca332f88cc6" + }, + { + "nr": 120433, + "hash": "bc11a2b82e317607a1da167f7180c50c5d2f4002" + }, + { + "nr": 120275, + "hash": "9f9b3d05f26fb06d6c1bc7a14f6fd1e27634bb38" + }, + { + "nr": 118653, + "hash": "ee2d320603f57fb0da79c8bef835bb4d28647266" + }, + { + "nr": 120105, + "hash": "60124e43a58dee958555acfdba9624d2c2597a41" + }, + { + "nr": 120250, + "hash": "9d6ee80ff682b239bede85af6c73aec9591be66f" + }, + { + "nr": 118950, + "hash": "0bb84285f5c5ec9186a80fdf493911e60105908c" + }, + { + "nr": 119878, + "hash": "38618ce80bbefbbaf2ade0f1e41ab7e56715ca81" + }, + { + "nr": 119795, + "hash": "6d10b94cc6d41899c9906408d00542f63774d976" + }, + { + "nr": 120118, + "hash": "1cda1ee218240cac3ab4311adbeada35ed8a34e9" + }, + { + "nr": 117977, + "hash": "6cff4cc0333b52caf412a9b9b57d7bbac0550e02" + }, + { + "nr": 120514, + "hash": "7dce84624a3e76722b13eaea231037a3b0de33b8" + }, + { + "nr": 120312, + "hash": "a55801ee17f6694adb64c4e052d45cd6d1b6880e" + }, + { + "nr": 119525, + "hash": "97e229efe2ec57e205d2d7c0577da96043d05d0a" + }, + { + "nr": 119410, + "hash": "4b039ed3cbeb4d80526f3f4a3bc95ce3d0414f47" + }, + { + "nr": 120198, + "hash": "857c975191e46e281dbc3744a755cd6b9cca35e2" + }, + { + "nr": 119661, + "hash": "6062f442592498c632304dfc858fa0b544c5adae" + }, + { + "nr": 114095, + "hash": "67becf523e2cbd6a056d5d55512926da01eb0bf3" + }, + { + "nr": 118189, + "hash": "228b863aab18d56c594846b5e5e9b2f7ec510a08" + }, + { + "nr": 120779, + "hash": "eb1b5eafa8904dd991bc71b25c26f800e8766db0" + }, + { + "nr": 120583, + "hash": "77aa9159fa83a1dd753ab77c6dc9fce70c15f31c" + }, + { + "nr": 120119, + "hash": "11cc3bce8e047853b38d113415e5bdab7b02aa78" + }, + { + "nr": 120101, + "hash": "553ea46e20c44d7caee3d38ce56328f63545b6fe" + }, + { + "nr": 120413, + "hash": "abba114ed510355e0ad70e1795985d986d499db3" + }, + { + "nr": 119870, + "hash": "b2127becd1d01d5faf03239d70899e96d4d19642" + }, + { + "nr": 119776, + "hash": "d8bb6c7c8bf73d2893c5ac20bcdc5d62b95c34df" + }, + { + "nr": 119948, + "hash": "01c49ca20bf43730edc94f4774dc5fc7295b968d" + }, + { + "nr": 119778, + "hash": "ea3d75042f29ab4c4fd77e24a8be5c817646a040" + }, + { + "nr": 119399, + "hash": "f23499979b96c5e288b12b44fba58989491f6478" + }, + { + "nr": 120777, + "hash": "123865e4e588f058003c3b535712e9b9da6bcfbf" + }, + { + "nr": 120513, + "hash": "fb883c9f88ee8a1c63c6f36955fdd2e945a55ace" + }, + { + "nr": 120233, + "hash": "49b6d8b6ee43edd7347fc6cc659c61a9a39da7ab" + }, + { + "nr": 119556, + "hash": "e5fbeb6434e0c84bea865fd600e4d669b34bfd0b" + }, + { + "nr": 119859, + "hash": "6d12b6b39de9839c1361866925f73c63d1e9b018" + }, + { + "nr": 119579, + "hash": "7a511de9cdf6726d14ce16f20eacdd9ec683923c" + }, + { + "nr": 117992, + "hash": "207fa593686b76520e985fd89aee6f2913cd6b7c" + }, + { + "nr": 120574, + "hash": "eaac44b7f345a20b23d4dd52f14e85f8f857f853" + }, + { + "nr": 120069, + "hash": "51670580914a9ded4ef8e4ec5172783fadbe1bab" + }, + { + "nr": 120018, + "hash": "c823d82d150ef4080e039306d0126bd9afcaf419" + }, + { + "nr": 119290, + "hash": "ac065fbafb6d1fc0ac909e4169b14bee7c17d56c" + }, + { + "nr": 120623, + "hash": "14345a7cb5d523c275fbece56b47376e80664daa" + }, + { + "nr": 117326, + "hash": "d174b83408589ad3dc44e0bc9153ae811cf73990" + }, + { + "nr": 117503, + "hash": "2835d763a686dd2daba30cdc7288d2114ffbaf59" + }, + { + "nr": 117502, + "hash": "b8421b44e514a083fbf9e4ba6636e57e96adad7d" + }, + { + "nr": 120151, + "hash": "1884f5f01a7c0a352c148f1cb26f1dc7a5a5567b" + }, + { + "nr": 120438, + "hash": "14c36efbc9f1854fdb968f4e54d6852955db8f29" + }, + { + "nr": 118619, + "hash": "35622c624284c4a9e3700645a56ff2219497f1f6" + }, + { + "nr": 116884, + "hash": "e627b7dce7db18f8b27d5b5e1b6e7ea584ebdb4d" + }, + { + "nr": 120398, + "hash": "4737ad4492292498119c9243e5e3914d29affb46" + }, + { + "nr": 120330, + "hash": "3c758b2f450ff54b24297cd64376b997af32fa60" + }, + { + "nr": 119829, + "hash": "0f3ffa971b8393411aa981d7f6b1963de508d4bc" + }, + { + "nr": 119105, + "hash": "5c70043398b5ae29d007d4a30130be064ee09403" + }, + { + "nr": 120334, + "hash": "cac4e6038e915d3fbf1fbe5b818ca9b0f71dcaae" + }, + { + "nr": 120255, + "hash": "227f3485c96018006baef6308cdf09565997f6c0" + }, + { + "nr": 119959, + "hash": "b19a95f70e908707ab6482e74dc60526f9a12fb5" + }, + { + "nr": 120549, + "hash": "b8749dad66a41f2e89c07a17355cee2572f92fd9" + }, + { + "nr": 120493, + "hash": "68e0e3f8ab190f52d4d813ce7eeadd6dd1decec3" + }, + { + "nr": 120352, + "hash": "b07242cb34e74cb91138303cdea39d64b37c185f" + }, + { + "nr": 120428, + "hash": "e8d0b358d7b7af611dd6e7b300b09593e8d6836e" + }, + { + "nr": 120375, + "hash": "9f95b13dd429b99dd470fc41936c70be0d52e65a" + }, + { + "nr": 119592, + "hash": "4c8404ec451820d34d0be4ff9bd72b74f1568ed9" + }, + { + "nr": 119825, + "hash": "24ce651bf58960bec8c058a08308dd9b608cc91b" + }, + { + "nr": 119049, + "hash": "5c8adf4375c65c9c4059b1a6bf0acb675408ec10" + }, + { + "nr": 119944, + "hash": "335858996dc18e02a6dc549cb4e7625f3b2a8011" + }, + { + "nr": 119503, + "hash": "2b735c1f0d3460b171dd4db8bd394147759d9353" + }, + { + "nr": 116897, + "hash": "c2ded069da6e2e54069ff55258718f9baf99afc2" + }, + { + "nr": 120723, + "hash": "2c7206727c60950c9504b19109fa01d3d328cf20" + }, + { + "nr": 120521, + "hash": "c0fe3257783364fb9e398ee4e191dd3172e31fa3" + }, + { + "nr": 120213, + "hash": "b87f017a0545ad21f398b26279816e3f0b1bd19a" + }, + { + "nr": 120412, + "hash": "a27e42623cc2c952196e47a6f191d05599de7d27" + }, + { + "nr": 119150, + "hash": "9fcefd8a9cb596621ecd4d82a64f86a6b48b5717" + }, + { + "nr": 120204, + "hash": "0ce808bc0419c5a9d3e60c6d1434cbe1f506b166" + }, + { + "nr": 119933, + "hash": "5c559e4b7377634cf355f86d990be4ea0117f3ab" + }, + { + "nr": 120116, + "hash": "b1bc87873dc1af16576a3109dc8112dd4df74297" + }, + { + "nr": 119969, + "hash": "59b253d666f8641306e38916bc2f83a3b3018979" + }, + { + "nr": 120097, + "hash": "868981fa7f9f0125b476385ea08776129ef97503" + }, + { + "nr": 119785, + "hash": "dc04afc565c8cc60951c45f7c2a96dce55af7658" + }, + { + "nr": 119515, + "hash": "4b616d6e2cdb9a021b837f5bd525aec39ce1bccc" + }, + { + "nr": 118748, + "hash": "cbc2da9dd96ac111eecf06d2a57ec138377eb62b" + }, + { + "nr": 120524, + "hash": "abc1e7e973196554efa7de381d811e70165cc10a" + }, + { + "nr": 119495, + "hash": "5c0fe8d830454546f93311a29b34eb7e433bd0b6" + }, + { + "nr": 119142, + "hash": "c5473ae9d2e56f1e5a27451a0a79f6e67b1f2bc2" + }, + { + "nr": 118568, + "hash": "20db3b1a810114158685093edf9b962c3f5e7a47" + }, + { + "nr": 120279, + "hash": "e81888cfdadabace23b65f691f2b49b17a1acf07" + }, + { + "nr": 120281, + "hash": "7b0356e77d5f6776c3154c27ba5e2e139137b8d4" + }, + { + "nr": 120212, + "hash": "6dbd06f3d0a123065d73af4b9b89e230cf202d73" + }, + { + "nr": 120072, + "hash": "848b50f024a2fcba9db4298e9841d91727713f54" + }, + { + "nr": 118923, + "hash": "eb7a52a5771ecdb57338429083631250189760c0" + }, + { + "nr": 119800, + "hash": "d01d5137fce1800b3151c11629ec807187f7e483" + }, + { + "nr": 120854, + "hash": "48795f31fd4fd3f4ad05034ffbb6a915098ef557" + }, + { + "nr": 120108, + "hash": "0a0a5a62459473e46ce565d7b5d0db11e79440ed" + }, + { + "nr": 119394, + "hash": "2361c2f7da26a57e8dc70a277736f31214a6b5f4" + }, + { + "nr": 120327, + "hash": "d455d16088fd837c8bae28c1254aa8fbaf750f9f" + }, + { + "nr": 119346, + "hash": "71c383952778e8454eb55ffdc743414e54f69639" + }, + { + "nr": 120087, + "hash": "a65a7af46514714708eca2024aab33013efa149a" + }, + { + "nr": 119789, + "hash": "b1b16c1b347c158d30f74675b8bc0264aa42ab50" + }, + { + "nr": 120064, + "hash": "65b35e8650cbd98634d5a0c99d15084aca71e6be" + } + ] } \ No newline at end of file diff --git a/releases/release-1.29/release-notes/sessions/maps-1697646382.json b/releases/release-1.29/release-notes/sessions/maps-1697646382.json index 93a608c1ca4..eea24b30dbb 100644 --- a/releases/release-1.29/release-notes/sessions/maps-1697646382.json +++ b/releases/release-1.29/release-notes/sessions/maps-1697646382.json @@ -1,103 +1,103 @@ -{ - "mail": "faeka6@gmail.com", - "name": "fykaa", - "date": 1697646382, - "prs": [ - { - "nr": 119735, - "hash": "fdda098267668ea9162ff5bc998f4d11d8d548bd" - }, - { - "nr": 120400, - "hash": "7be4ec1151d9755bdb92cc9a10c19d62bdad10b5" - }, - { - "nr": 120542, - "hash": "45f59e8738df7ec8f2665ce3655f525cf50fe1df" - }, - { - "nr": 118299, - "hash": "da3a2472a4d88d5d6bc6f39a5c555e0f18b6eed4" - }, - { - "nr": 120894, - "hash": "6a29206517ba63ecddb3b42353b9eb7de54bd87f" - }, - { - "nr": 119317, - "hash": "40f57c0542bb39bf8b8e8412f181773911037d0b" - }, - { - "nr": 121073, - "hash": "5aecd22607c7618c7c2b26c4a87e858c0597e26e" - }, - { - "nr": 120599, - "hash": "321ee0ce9a7cefd85b405cd7866aa7c84083e23c" - }, - { - "nr": 120595, - "hash": "a20f7d29d10bfdb8beeb9e2917f3702d9043b81a" - }, - { - "nr": 120814, - "hash": "8737cd2e83464c03f4b9bb1e2965d32563bfe4d4" - }, - { - "nr": 120877, - "hash": "2ce2d2bb8c5f41677d0d58733ec8b8e91eb3ea96" - }, - { - "nr": 121028, - "hash": "740a261edbd3e9e94fc43a118bac25ec83b571fe" - }, - { - "nr": 121008, - "hash": "7a9a53ba7b2726a4b3b538fec557d7be719b020a" - }, - { - "nr": 120903, - "hash": "0f878a716c41a8e293004d465eec96198d246002" - }, - { - "nr": 120871, - "hash": "1af1c8999baf6f9f2f91d3536ee5ff46fc46ff21" - }, - { - "nr": 116803, - "hash": "96f4bea2398f6900d249d0079a5e077aaeb91f60" - }, - { - "nr": 120490, - "hash": "b85d4547a66e1a04e6e08a97e85536d3c3b94014" - }, - { - "nr": 121021, - "hash": "c1e212f5553205e9c48706d079972383bbbad946" - }, - { - "nr": 120843, - "hash": "02f110e3d8194d32261f03aa3ff5f395a35a60bd" - }, - { - "nr": 119732, - "hash": "1fb2bea0b29d6e6e245841f61b190e4191805e8b" - }, - { - "nr": 120338, - "hash": "262d2078474bc0eb7add1c83843be3771f21a04f" - }, - { - "nr": 120729, - "hash": "60c8afd00bd8515eed2faa337fa1608fc83a72b1" - }, - { - "nr": 120784, - "hash": "585e683d40f95d165fc1805d0bae8a8cb7659437" - }, - { - "nr": 120828, - "hash": "bf8874e2740b6cf6044cd301fc5e788c5cd28661" - } - ] +{ + "mail": "faeka6@gmail.com", + "name": "fykaa", + "date": 1697646382, + "prs": [ + { + "nr": 119735, + "hash": "fdda098267668ea9162ff5bc998f4d11d8d548bd" + }, + { + "nr": 120400, + "hash": "7be4ec1151d9755bdb92cc9a10c19d62bdad10b5" + }, + { + "nr": 120542, + "hash": "45f59e8738df7ec8f2665ce3655f525cf50fe1df" + }, + { + "nr": 118299, + "hash": "da3a2472a4d88d5d6bc6f39a5c555e0f18b6eed4" + }, + { + "nr": 120894, + "hash": "6a29206517ba63ecddb3b42353b9eb7de54bd87f" + }, + { + "nr": 119317, + "hash": "40f57c0542bb39bf8b8e8412f181773911037d0b" + }, + { + "nr": 121073, + "hash": "5aecd22607c7618c7c2b26c4a87e858c0597e26e" + }, + { + "nr": 120599, + "hash": "321ee0ce9a7cefd85b405cd7866aa7c84083e23c" + }, + { + "nr": 120595, + "hash": "a20f7d29d10bfdb8beeb9e2917f3702d9043b81a" + }, + { + "nr": 120814, + "hash": "8737cd2e83464c03f4b9bb1e2965d32563bfe4d4" + }, + { + "nr": 120877, + "hash": "2ce2d2bb8c5f41677d0d58733ec8b8e91eb3ea96" + }, + { + "nr": 121028, + "hash": "740a261edbd3e9e94fc43a118bac25ec83b571fe" + }, + { + "nr": 121008, + "hash": "7a9a53ba7b2726a4b3b538fec557d7be719b020a" + }, + { + "nr": 120903, + "hash": "0f878a716c41a8e293004d465eec96198d246002" + }, + { + "nr": 120871, + "hash": "1af1c8999baf6f9f2f91d3536ee5ff46fc46ff21" + }, + { + "nr": 116803, + "hash": "96f4bea2398f6900d249d0079a5e077aaeb91f60" + }, + { + "nr": 120490, + "hash": "b85d4547a66e1a04e6e08a97e85536d3c3b94014" + }, + { + "nr": 121021, + "hash": "c1e212f5553205e9c48706d079972383bbbad946" + }, + { + "nr": 120843, + "hash": "02f110e3d8194d32261f03aa3ff5f395a35a60bd" + }, + { + "nr": 119732, + "hash": "1fb2bea0b29d6e6e245841f61b190e4191805e8b" + }, + { + "nr": 120338, + "hash": "262d2078474bc0eb7add1c83843be3771f21a04f" + }, + { + "nr": 120729, + "hash": "60c8afd00bd8515eed2faa337fa1608fc83a72b1" + }, + { + "nr": 120784, + "hash": "585e683d40f95d165fc1805d0bae8a8cb7659437" + }, + { + "nr": 120828, + "hash": "bf8874e2740b6cf6044cd301fc5e788c5cd28661" + } + ] } \ No newline at end of file diff --git a/releases/release-1.29/release-notes/sessions/maps-1700042444.json b/releases/release-1.29/release-notes/sessions/maps-1700042444.json index 07537b9959f..93c4edd2ad1 100644 --- a/releases/release-1.29/release-notes/sessions/maps-1700042444.json +++ b/releases/release-1.29/release-notes/sessions/maps-1700042444.json @@ -1,583 +1,583 @@ -{ - "mail": "fsmunoz@gmail.com", - "name": "Frederico Muñoz", - "date": 1700042444, - "prs": [ - { - "nr": 121121, - "hash": "e01635ea4f10b26e9bc8e40abb286b2fbb7594cd" - }, - { - "nr": 120680, - "hash": "bddd26e3710d239eb9f5fa197b8cabe1a70b854a" - }, - { - "nr": 120942, - "hash": "a3e9481eba9c5baaa9012c17be539ba696ebaf52" - }, - { - "nr": 121283, - "hash": "e585b10a1ef1693f578517f3a707bc3578cbdb2a" - }, - { - "nr": 121614, - "hash": "ee62fe8d63d29e9f1ff1bf07624190575a933a0d" - }, - { - "nr": 119208, - "hash": "f36acaedc0dee9fbe1c1c970ce3c1c096cbcdb69" - }, - { - "nr": 121305, - "hash": "bbd41af9eefddf0025d05bbd5d8bd0f1246795a7" - }, - { - "nr": 121338, - "hash": "1713af68a5acabe9c7fae166cf4d3812f2c4e442" - }, - { - "nr": 121460, - "hash": "cceda6fd625e69e51c54e6468ef495cd950b3659" - }, - { - "nr": 121216, - "hash": "97363a43d0589f52710cb2a7725ef747661e7ca9" - }, - { - "nr": 121172, - "hash": "5c2d22d047d2051533fbb264b5b2720f62944946" - }, - { - "nr": 119762, - "hash": "354df02e841dd735653e1be4bb0a0db62f96dc36" - }, - { - "nr": 119517, - "hash": "ae4a9b203e6004e38dc1e12451a505b33696cdac" - }, - { - "nr": 119665, - "hash": "a5f1df5aee53997ddb35278a996df1ef7d40d1a8" - }, - { - "nr": 121456, - "hash": "3742b0ccc77bce83eff98d8470f9b316c0c79839" - }, - { - "nr": 119109, - "hash": "71306dfc78d61ed6b0e74c7d9ba3feac856ed4d1" - }, - { - "nr": 120663, - "hash": "07a7c64beccdd7d2b67f238af99e3511e5e83b2d" - }, - { - "nr": 121103, - "hash": "80a9be8216a190706232d218312dbaf397a4b2ed" - }, - { - "nr": 121477, - "hash": "3e5495dd1ccbb746804819b59ae299dc8896f029" - }, - { - "nr": 120461, - "hash": "cdd0fa092746857171d77d198973cdab9934c56a" - }, - { - "nr": 121462, - "hash": "37e953e986ee09614279d3809664ae702abaa258" - }, - { - "nr": 119659, - "hash": "d69374d0e4bab8f58a6717dc1f167af021da5dee" - }, - { - "nr": 120534, - "hash": "192a71db8cc475dcd2f57cd8c322ab50c0138646" - }, - { - "nr": 120827, - "hash": "810eac5907f92448a25ff90a3a3b15a05447a70b" - }, - { - "nr": 121638, - "hash": "88008ecb26c816022219805f6c550ece77987e11" - }, - { - "nr": 120474, - "hash": "d4d72cae38d80ef4a91b569338c1730273ae25c5" - }, - { - "nr": 118705, - "hash": "ccfb57e26d7fea34d3b4569d9c2d229860d003c7" - }, - { - "nr": 121356, - "hash": "e53118fed192bd5f4392af163a95d95d78e123a7" - }, - { - "nr": 119791, - "hash": "ace888b04f70342a04eaa6c647e8216d170b0ba7" - }, - { - "nr": 121065, - "hash": "047c95e47f5bb9b1c79c34396dc27dd141e68a0c" - }, - { - "nr": 120397, - "hash": "973c20088a99b29600cd1cd372a3cfb81700ee20" - }, - { - "nr": 121292, - "hash": "8a83615b12d2b5358c46f5837dff2de38c9955b4" - }, - { - "nr": 119396, - "hash": "ba16e78ba62aee1deb037f0ba58ec009e34f206d" - }, - { - "nr": 121577, - "hash": "735948bb1c88aa002b90075a302fc9b3091040d2" - }, - { - "nr": 120682, - "hash": "d955701631450dfe76d0c8c1752f97df3ffdc651" - }, - { - "nr": 119522, - "hash": "846402fab0e26feeda0e136c064fbdca4f84c301" - }, - { - "nr": 121085, - "hash": "8dff49c46def56366905f58d52877afd0fc89b0e" - }, - { - "nr": 117615, - "hash": "acdff8579750327a1c0d3fea66cf97d18abf4635" - }, - { - "nr": 121325, - "hash": "385083937a148187cac2d52575b0400ccec68dba" - }, - { - "nr": 120861, - "hash": "114e8a33f85ffc90ab886017528bd1ebe090c652" - }, - { - "nr": 120707, - "hash": "c8c9e6543252c6f3e83f737596ba30c109ad77ea" - }, - { - "nr": 112599, - "hash": "976f1c3ae8d8ccc4d59b3cd317b3836727c89599" - }, - { - "nr": 120757, - "hash": "f7405b35399862b06dd1d274a942aaf2921cdbe6" - }, - { - "nr": 121252, - "hash": "e6f0a9b6374f17c87ac911c3793675739ef5ff70" - }, - { - "nr": 121300, - "hash": "9712a92e3d894c27484f73135dc57883a05bc116" - }, - { - "nr": 120503, - "hash": "900852a151c7a999b2d004559613785efc6fc6ba" - }, - { - "nr": 120562, - "hash": "9565b3896f1cbbcaaf799dd44426aed4d41e58a0" - }, - { - "nr": 119155, - "hash": "e609d6b526ea7045f1bef91fcf722c9c70e5a1a7" - }, - { - "nr": 121567, - "hash": "ed78be4b127738568f519ec73bebf1c1aeaeecf8" - }, - { - "nr": 121291, - "hash": "27bbedb886d97ffa71ae6da7a8cb6934a414b207" - }, - { - "nr": 121457, - "hash": "bff3739d26cb74fc6ea5e4992028ce9d56691522" - }, - { - "nr": 120678, - "hash": "b32f926cdf88d8ccba9f60f3bb2c35127f33462f" - }, - { - "nr": 120075, - "hash": "754bc8121089ca64a7caa77a911a5e64fa78a0e1" - }, - { - "nr": 121337, - "hash": "0adbf9732e456653889966d5cc058fd5322da710" - }, - { - "nr": 120257, - "hash": "e36011c38cdad10dba3caaad1139444a2501393c" - }, - { - "nr": 121257, - "hash": "94918f0fe0d876a3d9579a221c2aa9a006b045da" - }, - { - "nr": 118846, - "hash": "3133b88e80815c7ff94c8ca8a626c58a2ad0b274" - }, - { - "nr": 120001, - "hash": "f265fcab618eb1a6b0e0acc7db45153ac2db417f" - }, - { - "nr": 121389, - "hash": "6d3fe63dd7cd7dee1e47895d1404e76a5b24f21e" - }, - { - "nr": 121240, - "hash": "9b9849f4e1ee3aa9e88386326efb8a4699bd7789" - }, - { - "nr": 120825, - "hash": "c7cc2faef8e4f5cd4832de47fd22ebed0cd4825a" - }, - { - "nr": 121566, - "hash": "29e078ca2e943642dfe2d637076707d8ed52575d" - }, - { - "nr": 120780, - "hash": "2691953bb2ccfdca7c58a8e68253b5762068b484" - }, - { - "nr": 120627, - "hash": "0a23a987f73eb05a0c1d5c7693ce9b261b233843" - }, - { - "nr": 120518, - "hash": "9a2e459842d8ed9b93d49c792f47c2c112ab6be7" - }, - { - "nr": 120995, - "hash": "9a7b794043c4cb8d9089394c63f972dd3b167226" - }, - { - "nr": 120249, - "hash": "2ea84201e64e7b73810f64acd181a5619e902b7c" - }, - { - "nr": 119100, - "hash": "4684a3b3226ae1e5ecf30199854e0196c45525fa" - }, - { - "nr": 119802, - "hash": "95bce2fcf9acf1c995c4b61553e1b03c45548bc8" - }, - { - "nr": 121481, - "hash": "ab4a1d4302247f4cbbc39f60489a292893bb0ab7" - }, - { - "nr": 121046, - "hash": "03e1642d8c13aa7f9983ab73dd6af59c351c710c" - }, - { - "nr": 121095, - "hash": "ee4f8204948f4e6b5fa2729b666937888101c482" - }, - { - "nr": 120731, - "hash": "e6d75dd9d11c74e923a73955a555447acf9994ae" - }, - { - "nr": 120269, - "hash": "f9726ca73ccd00cb5b4176b7839d6e6d7c6dce81" - }, - { - "nr": 121485, - "hash": "53ace31e3d282e0f2b0e63466a09a0a433642bfe" - }, - { - "nr": 120864, - "hash": "f0d5a5072e69e8a054349541dd9465d910bc075a" - }, - { - "nr": 121391, - "hash": "d5620f80f992923c896a00bdaf192a2824603dc2" - }, - { - "nr": 118760, - "hash": "d72f1126c6e8495567c563d8f2c850072a32280a" - }, - { - "nr": 121077, - "hash": "60d6ec130b30742d256d2509171bf123315fd418" - }, - { - "nr": 120192, - "hash": "2d5a0e8f550c0397b76f5b1bf0862a8f87200066" - }, - { - "nr": 121116, - "hash": "f01aec12f3dff3f6b9c632d55e64c1f8ae4ab3ef" - }, - { - "nr": 121249, - "hash": "38db1dac917ec865a88ab38eb3390c4a594ffa17" - }, - { - "nr": 121579, - "hash": "8fab23b4a0b76ce7eb45975fdff12147518aace8" - }, - { - "nr": 121373, - "hash": "ea4a3b7198543bc3eb143fed572127af4ba402f7" - }, - { - "nr": 121441, - "hash": "6b1decf48062ef728e0edf8e3cd28c9735ed7212" - }, - { - "nr": 121255, - "hash": "48622932fdf3b286249eefc1890479d2b88c39ad" - }, - { - "nr": 118647, - "hash": "ea020b58e2d37da815a85fb0aa4a69d283e0fd07" - }, - { - "nr": 120868, - "hash": "fd6155a7512b8c970a029a10f3835dcbe96b9802" - }, - { - "nr": 121120, - "hash": "65012d89aad5d49b97efc5d3699a7fb39b5473c9" - }, - { - "nr": 120416, - "hash": "4cabb59344a4fe203d5479bee8f8a93a0a0e85ff" - }, - { - "nr": 118463, - "hash": "f1c93c27e28389a8b2153a8556dfefe3d5cc3eb7" - }, - { - "nr": 121083, - "hash": "5a2316f797d7229d23c35d7b70ea62040706d5a3" - }, - { - "nr": 121078, - "hash": "0056b9b39f30fce723b9a3650ede2ede4169ece3" - }, - { - "nr": 120808, - "hash": "68142ea72f731593e41fefd1138c796181fc7743" - }, - { - "nr": 121223, - "hash": "5a8d967c257aca0478cfb6793b01c693a207df4d" - }, - { - "nr": 118704, - "hash": "c4cbf7eae0307a0596843a543e9308aca537f99c" - }, - { - "nr": 120371, - "hash": "3c98c96ae81b0245259175579e9273af224cffbe" - }, - { - "nr": 121275, - "hash": "54ca9023ae9a04dd7ea6724b9cf8d03d5bb31241" - }, - { - "nr": 121327, - "hash": "9c0ef458f9ef9bd60847fe1f714c227da3c83ab3" - }, - { - "nr": 119946, - "hash": "a8f6cb910da26857038bc16d88e1aa481421b86e" - }, - { - "nr": 121575, - "hash": "7bca068030191eaa6bce08ead58fab55d2eed0b0" - }, - { - "nr": 118146, - "hash": "af17454ec0428b93789041ce218910b711fd54b7" - }, - { - "nr": 119026, - "hash": "ad085ae9302aa599a408eefdfa51f0016ca2d3c2" - }, - { - "nr": 121001, - "hash": "d3acc87bbc959d432f9152c439563c623387cfb8" - }, - { - "nr": 121229, - "hash": "df45f5744456c1bf156d68b4fe05a6cf9f5246e7" - }, - { - "nr": 121491, - "hash": "30e65ed89a27fbf6c4fa1c7976645f390093eb9d" - }, - { - "nr": 121059, - "hash": "b51bdf70ce34815f09f452ce44825441ffda3387" - }, - { - "nr": 116516, - "hash": "b11666bfb07eaa095b9fe441f5a5db92b851c681" - }, - { - "nr": 120154, - "hash": "2f102986d2772f6ccf060896ffa597dfd5378e4c" - }, - { - "nr": 121628, - "hash": "54fabcc943d7b41193262c5a18509a30237108fb" - }, - { - "nr": 121254, - "hash": "89bd300fd51bcb13e0e97c4007ba7cb466b6fc20" - }, - { - "nr": 116252, - "hash": "c87ba3f44175f223485988471fe9f31144c38085" - }, - { - "nr": 121142, - "hash": "27ddb368ce80aecbdb8c08701b77269b72bb6e56" - }, - { - "nr": 121149, - "hash": "ee651e358d6ab5be8c692295a8834c04b0fb1864" - }, - { - "nr": 120954, - "hash": "5c1f6ff2dcdad803d9675e5c1ddb5b7c813464c7" - }, - { - "nr": 121632, - "hash": "dc49c8f615f6990740f5c754258249c7d296765e" - }, - { - "nr": 121302, - "hash": "dc304f822dfa7aa4d3156a279b3e1ca4c75a9db8" - }, - { - "nr": 120248, - "hash": "56be0d4bc34127f42f937963a4c81bcf318691ee" - }, - { - "nr": 100448, - "hash": "1936715a715e34d4e920b3fce16d439ff8f0d4ed" - }, - { - "nr": 120735, - "hash": "7b44954c330a84ad13a6126d3c2b9079d815c4a7" - }, - { - "nr": 117411, - "hash": "9041b72916c7ab2dd256ac93ff830e927d336bbe" - }, - { - "nr": 121342, - "hash": "547e2dbd67204a553deb6e1840eb4792d018e4bc" - }, - { - "nr": 121246, - "hash": "fc608b4a1c8916481eb9acf3f9c6547be700214b" - }, - { - "nr": 121571, - "hash": "2d615355447d5c348780f21156f1b1a7e0afe050" - }, - { - "nr": 116938, - "hash": "90dd24760f54aeda668f8bd33f6f9109a9d6cff9" - }, - { - "nr": 120715, - "hash": "b95a1f08f7f47a8c288c60dd9c725e23c056cf13" - }, - { - "nr": 121459, - "hash": "1800c8b83d6a77f4955e600ee0dd961d87520783" - }, - { - "nr": 121147, - "hash": "ab6857d566624813ea4d4176ce7196274f1b86b8" - }, - { - "nr": 120354, - "hash": "517554a7e4c67e2ec6bbb5ce38c8ac814a438ea5" - }, - { - "nr": 120782, - "hash": "851508f1d51b8c4cc7e2571325612681277485b5" - }, - { - "nr": 120195, - "hash": "16af83738781633fc820a69ba7c81f6de764d04b" - }, - { - "nr": 115702, - "hash": "a4c970b94e639b8b49ed28a31f372c1d48828516" - }, - { - "nr": 120788, - "hash": "e3be1cd187af2392daa160f094e0496d235e40fc" - }, - { - "nr": 120914, - "hash": "3b37aef67b22b8122fef0f430e5e4099b5e3c50a" - }, - { - "nr": 121016, - "hash": "b47ad09a6d9dadc0eef9d164179ffbc59d01110d" - }, - { - "nr": 121191, - "hash": "43e25f2e97dbac7d6f681b44cdd1d96031c9a715" - }, - { - "nr": 121303, - "hash": "50dfd6cdc755279ba318509348b294fb2d8d92a5" - }, - { - "nr": 119447, - "hash": "5eade18dde7c1ebec1e6a0f5f74fe53e31169de7" - }, - { - "nr": 121089, - "hash": "5d9b9700f5b90a4bf05721baec70522aa17c47fd" - }, - { - "nr": 120274, - "hash": "5d292ad855ef4740e56c89bce0e41345bedfafed" - }, - { - "nr": 120620, - "hash": "74ba80c8573fd6399c901e93f2fad7cb35b47123" - }, - { - "nr": 116065, - "hash": "d71944ea20ae0d7975fedf9746b551b276cce58b" - }, - { - "nr": 120933, - "hash": "727940541e176b5453ae843805d4fa70e9776df8" - }, - { - "nr": 121041, - "hash": "a7ada13e8e7b14bf892222befa82c4a943950469" - } - ] +{ + "mail": "fsmunoz@gmail.com", + "name": "Frederico Muñoz", + "date": 1700042444, + "prs": [ + { + "nr": 121121, + "hash": "e01635ea4f10b26e9bc8e40abb286b2fbb7594cd" + }, + { + "nr": 120680, + "hash": "bddd26e3710d239eb9f5fa197b8cabe1a70b854a" + }, + { + "nr": 120942, + "hash": "a3e9481eba9c5baaa9012c17be539ba696ebaf52" + }, + { + "nr": 121283, + "hash": "e585b10a1ef1693f578517f3a707bc3578cbdb2a" + }, + { + "nr": 121614, + "hash": "ee62fe8d63d29e9f1ff1bf07624190575a933a0d" + }, + { + "nr": 119208, + "hash": "f36acaedc0dee9fbe1c1c970ce3c1c096cbcdb69" + }, + { + "nr": 121305, + "hash": "bbd41af9eefddf0025d05bbd5d8bd0f1246795a7" + }, + { + "nr": 121338, + "hash": "1713af68a5acabe9c7fae166cf4d3812f2c4e442" + }, + { + "nr": 121460, + "hash": "cceda6fd625e69e51c54e6468ef495cd950b3659" + }, + { + "nr": 121216, + "hash": "97363a43d0589f52710cb2a7725ef747661e7ca9" + }, + { + "nr": 121172, + "hash": "5c2d22d047d2051533fbb264b5b2720f62944946" + }, + { + "nr": 119762, + "hash": "354df02e841dd735653e1be4bb0a0db62f96dc36" + }, + { + "nr": 119517, + "hash": "ae4a9b203e6004e38dc1e12451a505b33696cdac" + }, + { + "nr": 119665, + "hash": "a5f1df5aee53997ddb35278a996df1ef7d40d1a8" + }, + { + "nr": 121456, + "hash": "3742b0ccc77bce83eff98d8470f9b316c0c79839" + }, + { + "nr": 119109, + "hash": "71306dfc78d61ed6b0e74c7d9ba3feac856ed4d1" + }, + { + "nr": 120663, + "hash": "07a7c64beccdd7d2b67f238af99e3511e5e83b2d" + }, + { + "nr": 121103, + "hash": "80a9be8216a190706232d218312dbaf397a4b2ed" + }, + { + "nr": 121477, + "hash": "3e5495dd1ccbb746804819b59ae299dc8896f029" + }, + { + "nr": 120461, + "hash": "cdd0fa092746857171d77d198973cdab9934c56a" + }, + { + "nr": 121462, + "hash": "37e953e986ee09614279d3809664ae702abaa258" + }, + { + "nr": 119659, + "hash": "d69374d0e4bab8f58a6717dc1f167af021da5dee" + }, + { + "nr": 120534, + "hash": "192a71db8cc475dcd2f57cd8c322ab50c0138646" + }, + { + "nr": 120827, + "hash": "810eac5907f92448a25ff90a3a3b15a05447a70b" + }, + { + "nr": 121638, + "hash": "88008ecb26c816022219805f6c550ece77987e11" + }, + { + "nr": 120474, + "hash": "d4d72cae38d80ef4a91b569338c1730273ae25c5" + }, + { + "nr": 118705, + "hash": "ccfb57e26d7fea34d3b4569d9c2d229860d003c7" + }, + { + "nr": 121356, + "hash": "e53118fed192bd5f4392af163a95d95d78e123a7" + }, + { + "nr": 119791, + "hash": "ace888b04f70342a04eaa6c647e8216d170b0ba7" + }, + { + "nr": 121065, + "hash": "047c95e47f5bb9b1c79c34396dc27dd141e68a0c" + }, + { + "nr": 120397, + "hash": "973c20088a99b29600cd1cd372a3cfb81700ee20" + }, + { + "nr": 121292, + "hash": "8a83615b12d2b5358c46f5837dff2de38c9955b4" + }, + { + "nr": 119396, + "hash": "ba16e78ba62aee1deb037f0ba58ec009e34f206d" + }, + { + "nr": 121577, + "hash": "735948bb1c88aa002b90075a302fc9b3091040d2" + }, + { + "nr": 120682, + "hash": "d955701631450dfe76d0c8c1752f97df3ffdc651" + }, + { + "nr": 119522, + "hash": "846402fab0e26feeda0e136c064fbdca4f84c301" + }, + { + "nr": 121085, + "hash": "8dff49c46def56366905f58d52877afd0fc89b0e" + }, + { + "nr": 117615, + "hash": "acdff8579750327a1c0d3fea66cf97d18abf4635" + }, + { + "nr": 121325, + "hash": "385083937a148187cac2d52575b0400ccec68dba" + }, + { + "nr": 120861, + "hash": "114e8a33f85ffc90ab886017528bd1ebe090c652" + }, + { + "nr": 120707, + "hash": "c8c9e6543252c6f3e83f737596ba30c109ad77ea" + }, + { + "nr": 112599, + "hash": "976f1c3ae8d8ccc4d59b3cd317b3836727c89599" + }, + { + "nr": 120757, + "hash": "f7405b35399862b06dd1d274a942aaf2921cdbe6" + }, + { + "nr": 121252, + "hash": "e6f0a9b6374f17c87ac911c3793675739ef5ff70" + }, + { + "nr": 121300, + "hash": "9712a92e3d894c27484f73135dc57883a05bc116" + }, + { + "nr": 120503, + "hash": "900852a151c7a999b2d004559613785efc6fc6ba" + }, + { + "nr": 120562, + "hash": "9565b3896f1cbbcaaf799dd44426aed4d41e58a0" + }, + { + "nr": 119155, + "hash": "e609d6b526ea7045f1bef91fcf722c9c70e5a1a7" + }, + { + "nr": 121567, + "hash": "ed78be4b127738568f519ec73bebf1c1aeaeecf8" + }, + { + "nr": 121291, + "hash": "27bbedb886d97ffa71ae6da7a8cb6934a414b207" + }, + { + "nr": 121457, + "hash": "bff3739d26cb74fc6ea5e4992028ce9d56691522" + }, + { + "nr": 120678, + "hash": "b32f926cdf88d8ccba9f60f3bb2c35127f33462f" + }, + { + "nr": 120075, + "hash": "754bc8121089ca64a7caa77a911a5e64fa78a0e1" + }, + { + "nr": 121337, + "hash": "0adbf9732e456653889966d5cc058fd5322da710" + }, + { + "nr": 120257, + "hash": "e36011c38cdad10dba3caaad1139444a2501393c" + }, + { + "nr": 121257, + "hash": "94918f0fe0d876a3d9579a221c2aa9a006b045da" + }, + { + "nr": 118846, + "hash": "3133b88e80815c7ff94c8ca8a626c58a2ad0b274" + }, + { + "nr": 120001, + "hash": "f265fcab618eb1a6b0e0acc7db45153ac2db417f" + }, + { + "nr": 121389, + "hash": "6d3fe63dd7cd7dee1e47895d1404e76a5b24f21e" + }, + { + "nr": 121240, + "hash": "9b9849f4e1ee3aa9e88386326efb8a4699bd7789" + }, + { + "nr": 120825, + "hash": "c7cc2faef8e4f5cd4832de47fd22ebed0cd4825a" + }, + { + "nr": 121566, + "hash": "29e078ca2e943642dfe2d637076707d8ed52575d" + }, + { + "nr": 120780, + "hash": "2691953bb2ccfdca7c58a8e68253b5762068b484" + }, + { + "nr": 120627, + "hash": "0a23a987f73eb05a0c1d5c7693ce9b261b233843" + }, + { + "nr": 120518, + "hash": "9a2e459842d8ed9b93d49c792f47c2c112ab6be7" + }, + { + "nr": 120995, + "hash": "9a7b794043c4cb8d9089394c63f972dd3b167226" + }, + { + "nr": 120249, + "hash": "2ea84201e64e7b73810f64acd181a5619e902b7c" + }, + { + "nr": 119100, + "hash": "4684a3b3226ae1e5ecf30199854e0196c45525fa" + }, + { + "nr": 119802, + "hash": "95bce2fcf9acf1c995c4b61553e1b03c45548bc8" + }, + { + "nr": 121481, + "hash": "ab4a1d4302247f4cbbc39f60489a292893bb0ab7" + }, + { + "nr": 121046, + "hash": "03e1642d8c13aa7f9983ab73dd6af59c351c710c" + }, + { + "nr": 121095, + "hash": "ee4f8204948f4e6b5fa2729b666937888101c482" + }, + { + "nr": 120731, + "hash": "e6d75dd9d11c74e923a73955a555447acf9994ae" + }, + { + "nr": 120269, + "hash": "f9726ca73ccd00cb5b4176b7839d6e6d7c6dce81" + }, + { + "nr": 121485, + "hash": "53ace31e3d282e0f2b0e63466a09a0a433642bfe" + }, + { + "nr": 120864, + "hash": "f0d5a5072e69e8a054349541dd9465d910bc075a" + }, + { + "nr": 121391, + "hash": "d5620f80f992923c896a00bdaf192a2824603dc2" + }, + { + "nr": 118760, + "hash": "d72f1126c6e8495567c563d8f2c850072a32280a" + }, + { + "nr": 121077, + "hash": "60d6ec130b30742d256d2509171bf123315fd418" + }, + { + "nr": 120192, + "hash": "2d5a0e8f550c0397b76f5b1bf0862a8f87200066" + }, + { + "nr": 121116, + "hash": "f01aec12f3dff3f6b9c632d55e64c1f8ae4ab3ef" + }, + { + "nr": 121249, + "hash": "38db1dac917ec865a88ab38eb3390c4a594ffa17" + }, + { + "nr": 121579, + "hash": "8fab23b4a0b76ce7eb45975fdff12147518aace8" + }, + { + "nr": 121373, + "hash": "ea4a3b7198543bc3eb143fed572127af4ba402f7" + }, + { + "nr": 121441, + "hash": "6b1decf48062ef728e0edf8e3cd28c9735ed7212" + }, + { + "nr": 121255, + "hash": "48622932fdf3b286249eefc1890479d2b88c39ad" + }, + { + "nr": 118647, + "hash": "ea020b58e2d37da815a85fb0aa4a69d283e0fd07" + }, + { + "nr": 120868, + "hash": "fd6155a7512b8c970a029a10f3835dcbe96b9802" + }, + { + "nr": 121120, + "hash": "65012d89aad5d49b97efc5d3699a7fb39b5473c9" + }, + { + "nr": 120416, + "hash": "4cabb59344a4fe203d5479bee8f8a93a0a0e85ff" + }, + { + "nr": 118463, + "hash": "f1c93c27e28389a8b2153a8556dfefe3d5cc3eb7" + }, + { + "nr": 121083, + "hash": "5a2316f797d7229d23c35d7b70ea62040706d5a3" + }, + { + "nr": 121078, + "hash": "0056b9b39f30fce723b9a3650ede2ede4169ece3" + }, + { + "nr": 120808, + "hash": "68142ea72f731593e41fefd1138c796181fc7743" + }, + { + "nr": 121223, + "hash": "5a8d967c257aca0478cfb6793b01c693a207df4d" + }, + { + "nr": 118704, + "hash": "c4cbf7eae0307a0596843a543e9308aca537f99c" + }, + { + "nr": 120371, + "hash": "3c98c96ae81b0245259175579e9273af224cffbe" + }, + { + "nr": 121275, + "hash": "54ca9023ae9a04dd7ea6724b9cf8d03d5bb31241" + }, + { + "nr": 121327, + "hash": "9c0ef458f9ef9bd60847fe1f714c227da3c83ab3" + }, + { + "nr": 119946, + "hash": "a8f6cb910da26857038bc16d88e1aa481421b86e" + }, + { + "nr": 121575, + "hash": "7bca068030191eaa6bce08ead58fab55d2eed0b0" + }, + { + "nr": 118146, + "hash": "af17454ec0428b93789041ce218910b711fd54b7" + }, + { + "nr": 119026, + "hash": "ad085ae9302aa599a408eefdfa51f0016ca2d3c2" + }, + { + "nr": 121001, + "hash": "d3acc87bbc959d432f9152c439563c623387cfb8" + }, + { + "nr": 121229, + "hash": "df45f5744456c1bf156d68b4fe05a6cf9f5246e7" + }, + { + "nr": 121491, + "hash": "30e65ed89a27fbf6c4fa1c7976645f390093eb9d" + }, + { + "nr": 121059, + "hash": "b51bdf70ce34815f09f452ce44825441ffda3387" + }, + { + "nr": 116516, + "hash": "b11666bfb07eaa095b9fe441f5a5db92b851c681" + }, + { + "nr": 120154, + "hash": "2f102986d2772f6ccf060896ffa597dfd5378e4c" + }, + { + "nr": 121628, + "hash": "54fabcc943d7b41193262c5a18509a30237108fb" + }, + { + "nr": 121254, + "hash": "89bd300fd51bcb13e0e97c4007ba7cb466b6fc20" + }, + { + "nr": 116252, + "hash": "c87ba3f44175f223485988471fe9f31144c38085" + }, + { + "nr": 121142, + "hash": "27ddb368ce80aecbdb8c08701b77269b72bb6e56" + }, + { + "nr": 121149, + "hash": "ee651e358d6ab5be8c692295a8834c04b0fb1864" + }, + { + "nr": 120954, + "hash": "5c1f6ff2dcdad803d9675e5c1ddb5b7c813464c7" + }, + { + "nr": 121632, + "hash": "dc49c8f615f6990740f5c754258249c7d296765e" + }, + { + "nr": 121302, + "hash": "dc304f822dfa7aa4d3156a279b3e1ca4c75a9db8" + }, + { + "nr": 120248, + "hash": "56be0d4bc34127f42f937963a4c81bcf318691ee" + }, + { + "nr": 100448, + "hash": "1936715a715e34d4e920b3fce16d439ff8f0d4ed" + }, + { + "nr": 120735, + "hash": "7b44954c330a84ad13a6126d3c2b9079d815c4a7" + }, + { + "nr": 117411, + "hash": "9041b72916c7ab2dd256ac93ff830e927d336bbe" + }, + { + "nr": 121342, + "hash": "547e2dbd67204a553deb6e1840eb4792d018e4bc" + }, + { + "nr": 121246, + "hash": "fc608b4a1c8916481eb9acf3f9c6547be700214b" + }, + { + "nr": 121571, + "hash": "2d615355447d5c348780f21156f1b1a7e0afe050" + }, + { + "nr": 116938, + "hash": "90dd24760f54aeda668f8bd33f6f9109a9d6cff9" + }, + { + "nr": 120715, + "hash": "b95a1f08f7f47a8c288c60dd9c725e23c056cf13" + }, + { + "nr": 121459, + "hash": "1800c8b83d6a77f4955e600ee0dd961d87520783" + }, + { + "nr": 121147, + "hash": "ab6857d566624813ea4d4176ce7196274f1b86b8" + }, + { + "nr": 120354, + "hash": "517554a7e4c67e2ec6bbb5ce38c8ac814a438ea5" + }, + { + "nr": 120782, + "hash": "851508f1d51b8c4cc7e2571325612681277485b5" + }, + { + "nr": 120195, + "hash": "16af83738781633fc820a69ba7c81f6de764d04b" + }, + { + "nr": 115702, + "hash": "a4c970b94e639b8b49ed28a31f372c1d48828516" + }, + { + "nr": 120788, + "hash": "e3be1cd187af2392daa160f094e0496d235e40fc" + }, + { + "nr": 120914, + "hash": "3b37aef67b22b8122fef0f430e5e4099b5e3c50a" + }, + { + "nr": 121016, + "hash": "b47ad09a6d9dadc0eef9d164179ffbc59d01110d" + }, + { + "nr": 121191, + "hash": "43e25f2e97dbac7d6f681b44cdd1d96031c9a715" + }, + { + "nr": 121303, + "hash": "50dfd6cdc755279ba318509348b294fb2d8d92a5" + }, + { + "nr": 119447, + "hash": "5eade18dde7c1ebec1e6a0f5f74fe53e31169de7" + }, + { + "nr": 121089, + "hash": "5d9b9700f5b90a4bf05721baec70522aa17c47fd" + }, + { + "nr": 120274, + "hash": "5d292ad855ef4740e56c89bce0e41345bedfafed" + }, + { + "nr": 120620, + "hash": "74ba80c8573fd6399c901e93f2fad7cb35b47123" + }, + { + "nr": 116065, + "hash": "d71944ea20ae0d7975fedf9746b551b276cce58b" + }, + { + "nr": 120933, + "hash": "727940541e176b5453ae843805d4fa70e9776df8" + }, + { + "nr": 121041, + "hash": "a7ada13e8e7b14bf892222befa82c4a943950469" + } + ] } \ No newline at end of file diff --git a/releases/release-1.29/release-notes/sessions/maps-1700642920.json b/releases/release-1.29/release-notes/sessions/maps-1700642920.json index e63253dc442..ed0ec1b0c81 100644 --- a/releases/release-1.29/release-notes/sessions/maps-1700642920.json +++ b/releases/release-1.29/release-notes/sessions/maps-1700642920.json @@ -1,67 +1,67 @@ -{ - "mail": "mengjiao.liu@daocloud.io", - "name": "Mengjiao Liu", - "date": 1700642920, - "prs": [ - { - "nr": 121034, - "hash": "3b0d1c0b642a74effc311edb96095553dc1b5321" - }, - { - "nr": 121851, - "hash": "df4e4323c0f811bd27c289bcec39407d58c68d67" - }, - { - "nr": 121764, - "hash": "79ac1d05bc2ef0df930b5816442afcff66b8bf05" - }, - { - "nr": 121841, - "hash": "931c171c298e09f81cb7b0e8e9895f96ab35eef5" - }, - { - "nr": 121837, - "hash": "e0af684e60df41a43576c96715fa7a34bd9c0e52" - }, - { - "nr": 121715, - "hash": "1a55b771a8e5c2760b04733629de3294fefd3bc6" - }, - { - "nr": 121739, - "hash": "86da431ddeea6baf00b5ed73f9045334e4c0db66" - }, - { - "nr": 121867, - "hash": "cc1109df1dccc25809fb19471f1d5350a2b7f001" - }, - { - "nr": 121808, - "hash": "a88f1898f9abd783b1aed33e7d18fee074575c32" - }, - { - "nr": 121871, - "hash": "260f56ef0f7cd2cdc333f715e53b399e7e5400b3" - }, - { - "nr": 120616, - "hash": "008b04b84a614137b4a28c346e84115317b2a9e4" - }, - { - "nr": 121193, - "hash": "41037d50dd089bd1b82f385f1233d7e540f52d2a" - }, - { - "nr": 113374, - "hash": "48762776eea8077d1e6beca59afcc349439ec405" - }, - { - "nr": 121765, - "hash": "e958c82fc5a86fe4bab4f547fdc1917b224ac409" - }, - { - "nr": 121091, - "hash": "902c17ee055852e47d8895bea352a662da992418" - } - ] +{ + "mail": "mengjiao.liu@daocloud.io", + "name": "Mengjiao Liu", + "date": 1700642920, + "prs": [ + { + "nr": 121034, + "hash": "3b0d1c0b642a74effc311edb96095553dc1b5321" + }, + { + "nr": 121851, + "hash": "df4e4323c0f811bd27c289bcec39407d58c68d67" + }, + { + "nr": 121764, + "hash": "79ac1d05bc2ef0df930b5816442afcff66b8bf05" + }, + { + "nr": 121841, + "hash": "931c171c298e09f81cb7b0e8e9895f96ab35eef5" + }, + { + "nr": 121837, + "hash": "e0af684e60df41a43576c96715fa7a34bd9c0e52" + }, + { + "nr": 121715, + "hash": "1a55b771a8e5c2760b04733629de3294fefd3bc6" + }, + { + "nr": 121739, + "hash": "86da431ddeea6baf00b5ed73f9045334e4c0db66" + }, + { + "nr": 121867, + "hash": "cc1109df1dccc25809fb19471f1d5350a2b7f001" + }, + { + "nr": 121808, + "hash": "a88f1898f9abd783b1aed33e7d18fee074575c32" + }, + { + "nr": 121871, + "hash": "260f56ef0f7cd2cdc333f715e53b399e7e5400b3" + }, + { + "nr": 120616, + "hash": "008b04b84a614137b4a28c346e84115317b2a9e4" + }, + { + "nr": 121193, + "hash": "41037d50dd089bd1b82f385f1233d7e540f52d2a" + }, + { + "nr": 113374, + "hash": "48762776eea8077d1e6beca59afcc349439ec405" + }, + { + "nr": 121765, + "hash": "e958c82fc5a86fe4bab4f547fdc1917b224ac409" + }, + { + "nr": 121091, + "hash": "902c17ee055852e47d8895bea352a662da992418" + } + ] } \ No newline at end of file diff --git a/releases/release-1.29/release-notes/sessions/maps-1701205965.json b/releases/release-1.29/release-notes/sessions/maps-1701205965.json index 4134996cca5..66dfd0141d1 100644 --- a/releases/release-1.29/release-notes/sessions/maps-1701205965.json +++ b/releases/release-1.29/release-notes/sessions/maps-1701205965.json @@ -1,1267 +1,1267 @@ -{ - "mail": "smith.rashan@gmail.com", - "name": "Rashan Smith", - "date": 1701205965, - "prs": [ - { - "nr": 119791, - "hash": "ace888b04f70342a04eaa6c647e8216d170b0ba7" - }, - { - "nr": 120233, - "hash": "49b6d8b6ee43edd7347fc6cc659c61a9a39da7ab" - }, - { - "nr": 118653, - "hash": "ee2d320603f57fb0da79c8bef835bb4d28647266" - }, - { - "nr": 120285, - "hash": "48157c2f6442a229d350c5d643d170850f43e688" - }, - { - "nr": 120108, - "hash": "0a0a5a62459473e46ce565d7b5d0db11e79440ed" - }, - { - "nr": 121566, - "hash": "29e078ca2e943642dfe2d637076707d8ed52575d" - }, - { - "nr": 121303, - "hash": "50dfd6cdc755279ba318509348b294fb2d8d92a5" - }, - { - "nr": 118760, - "hash": "d72f1126c6e8495567c563d8f2c850072a32280a" - }, - { - "nr": 120375, - "hash": "9f95b13dd429b99dd470fc41936c70be0d52e65a" - }, - { - "nr": 120616, - "hash": "008b04b84a614137b4a28c346e84115317b2a9e4" - }, - { - "nr": 121257, - "hash": "94918f0fe0d876a3d9579a221c2aa9a006b045da" - }, - { - "nr": 117411, - "hash": "9041b72916c7ab2dd256ac93ff830e927d336bbe" - }, - { - "nr": 119946, - "hash": "a8f6cb910da26857038bc16d88e1aa481421b86e" - }, - { - "nr": 118299, - "hash": "da3a2472a4d88d5d6bc6f39a5c555e0f18b6eed4" - }, - { - "nr": 120649, - "hash": "12f791f6dcaca74801cdd0d93c2032e2cac7b944" - }, - { - "nr": 119317, - "hash": "40f57c0542bb39bf8b8e8412f181773911037d0b" - }, - { - "nr": 120380, - "hash": "1d0b88e2516922c39d7f9e2b3fc17d42a1409b95" - }, - { - "nr": 121373, - "hash": "ea4a3b7198543bc3eb143fed572127af4ba402f7" - }, - { - "nr": 121305, - "hash": "bbd41af9eefddf0025d05bbd5d8bd0f1246795a7" - }, - { - "nr": 118463, - "hash": "f1c93c27e28389a8b2153a8556dfefe3d5cc3eb7" - }, - { - "nr": 119515, - "hash": "4b616d6e2cdb9a021b837f5bd525aec39ce1bccc" - }, - { - "nr": 121249, - "hash": "38db1dac917ec865a88ab38eb3390c4a594ffa17" - }, - { - "nr": 120503, - "hash": "900852a151c7a999b2d004559613785efc6fc6ba" - }, - { - "nr": 120400, - "hash": "7be4ec1151d9755bdb92cc9a10c19d62bdad10b5" - }, - { - "nr": 119994, - "hash": "e7be212e8d20f8fc71aa8e55f3968f2e56a5c58e" - }, - { - "nr": 119785, - "hash": "dc04afc565c8cc60951c45f7c2a96dce55af7658" - }, - { - "nr": 120682, - "hash": "d955701631450dfe76d0c8c1752f97df3ffdc651" - }, - { - "nr": 120075, - "hash": "754bc8121089ca64a7caa77a911a5e64fa78a0e1" - }, - { - "nr": 121252, - "hash": "e6f0a9b6374f17c87ac911c3793675739ef5ff70" - }, - { - "nr": 120248, - "hash": "56be0d4bc34127f42f937963a4c81bcf318691ee" - }, - { - "nr": 119557, - "hash": "754fb642f166a217e1265551eb0cf64d7b388912" - }, - { - "nr": 120336, - "hash": "0da922cf38fca85c65ad85d3a6dd345c9598b886" - }, - { - "nr": 116803, - "hash": "96f4bea2398f6900d249d0079a5e077aaeb91f60" - }, - { - "nr": 121091, - "hash": "902c17ee055852e47d8895bea352a662da992418" - }, - { - "nr": 118705, - "hash": "ccfb57e26d7fea34d3b4569d9c2d229860d003c7" - }, - { - "nr": 120864, - "hash": "f0d5a5072e69e8a054349541dd9465d910bc075a" - }, - { - "nr": 120549, - "hash": "b8749dad66a41f2e89c07a17355cee2572f92fd9" - }, - { - "nr": 120433, - "hash": "bc11a2b82e317607a1da167f7180c50c5d2f4002" - }, - { - "nr": 120119, - "hash": "11cc3bce8e047853b38d113415e5bdab7b02aa78" - }, - { - "nr": 120097, - "hash": "868981fa7f9f0125b476385ea08776129ef97503" - }, - { - "nr": 119986, - "hash": "0965ae57f9f9eb0167aa33c241e2c8599d98748c" - }, - { - "nr": 121837, - "hash": "e0af684e60df41a43576c96715fa7a34bd9c0e52" - }, - { - "nr": 121456, - "hash": "3742b0ccc77bce83eff98d8470f9b316c0c79839" - }, - { - "nr": 121246, - "hash": "fc608b4a1c8916481eb9acf3f9c6547be700214b" - }, - { - "nr": 120412, - "hash": "a27e42623cc2c952196e47a6f191d05599de7d27" - }, - { - "nr": 120715, - "hash": "b95a1f08f7f47a8c288c60dd9c725e23c056cf13" - }, - { - "nr": 121579, - "hash": "8fab23b4a0b76ce7eb45975fdff12147518aace8" - }, - { - "nr": 121008, - "hash": "7a9a53ba7b2726a4b3b538fec557d7be719b020a" - }, - { - "nr": 120735, - "hash": "7b44954c330a84ad13a6126d3c2b9079d815c4a7" - }, - { - "nr": 117503, - "hash": "2835d763a686dd2daba30cdc7288d2114ffbaf59" - }, - { - "nr": 120275, - "hash": "9f9b3d05f26fb06d6c1bc7a14f6fd1e27634bb38" - }, - { - "nr": 120954, - "hash": "5c1f6ff2dcdad803d9675e5c1ddb5b7c813464c7" - }, - { - "nr": 120228, - "hash": "9355147b1206766cd6cf1070ec3841a6204c3aba" - }, - { - "nr": 121121, - "hash": "e01635ea4f10b26e9bc8e40abb286b2fbb7594cd" - }, - { - "nr": 121142, - "hash": "27ddb368ce80aecbdb8c08701b77269b72bb6e56" - }, - { - "nr": 120574, - "hash": "eaac44b7f345a20b23d4dd52f14e85f8f857f853" - }, - { - "nr": 120427, - "hash": "e9d0804c955b17e978f87d872386eca332f88cc6" - }, - { - "nr": 117326, - "hash": "d174b83408589ad3dc44e0bc9153ae811cf73990" - }, - { - "nr": 121078, - "hash": "0056b9b39f30fce723b9a3650ede2ede4169ece3" - }, - { - "nr": 120627, - "hash": "0a23a987f73eb05a0c1d5c7693ce9b261b233843" - }, - { - "nr": 121457, - "hash": "bff3739d26cb74fc6ea5e4992028ce9d56691522" - }, - { - "nr": 119937, - "hash": "8f9be9126dca3993f5a84248e8f52e818748f581" - }, - { - "nr": 119732, - "hash": "1fb2bea0b29d6e6e245841f61b190e4191805e8b" - }, - { - "nr": 119049, - "hash": "5c8adf4375c65c9c4059b1a6bf0acb675408ec10" - }, - { - "nr": 121325, - "hash": "385083937a148187cac2d52575b0400ccec68dba" - }, - { - "nr": 119859, - "hash": "6d12b6b39de9839c1361866925f73c63d1e9b018" - }, - { - "nr": 119399, - "hash": "f23499979b96c5e288b12b44fba58989491f6478" - }, - { - "nr": 120327, - "hash": "d455d16088fd837c8bae28c1254aa8fbaf750f9f" - }, - { - "nr": 120204, - "hash": "0ce808bc0419c5a9d3e60c6d1434cbe1f506b166" - }, - { - "nr": 119517, - "hash": "ae4a9b203e6004e38dc1e12451a505b33696cdac" - }, - { - "nr": 120827, - "hash": "810eac5907f92448a25ff90a3a3b15a05447a70b" - }, - { - "nr": 121216, - "hash": "97363a43d0589f52710cb2a7725ef747661e7ca9" - }, - { - "nr": 121389, - "hash": "6d3fe63dd7cd7dee1e47895d1404e76a5b24f21e" - }, - { - "nr": 121147, - "hash": "ab6857d566624813ea4d4176ce7196274f1b86b8" - }, - { - "nr": 120861, - "hash": "114e8a33f85ffc90ab886017528bd1ebe090c652" - }, - { - "nr": 119410, - "hash": "4b039ed3cbeb4d80526f3f4a3bc95ce3d0414f47" - }, - { - "nr": 119346, - "hash": "71c383952778e8454eb55ffdc743414e54f69639" - }, - { - "nr": 119769, - "hash": "92f8095a2cffd45a7abaa94f06550b03e10764ab" - }, - { - "nr": 121223, - "hash": "5a8d967c257aca0478cfb6793b01c693a207df4d" - }, - { - "nr": 121254, - "hash": "89bd300fd51bcb13e0e97c4007ba7cb466b6fc20" - }, - { - "nr": 121059, - "hash": "b51bdf70ce34815f09f452ce44825441ffda3387" - }, - { - "nr": 120995, - "hash": "9a7b794043c4cb8d9089394c63f972dd3b167226" - }, - { - "nr": 120583, - "hash": "77aa9159fa83a1dd753ab77c6dc9fce70c15f31c" - }, - { - "nr": 120039, - "hash": "2b5b7267d0806e4ded3d92e9635d092e4f966ba2" - }, - { - "nr": 120903, - "hash": "0f878a716c41a8e293004d465eec96198d246002" - }, - { - "nr": 120723, - "hash": "2c7206727c60950c9504b19109fa01d3d328cf20" - }, - { - "nr": 120577, - "hash": "972cb9a7e80aca230fa9be1101f5241716c1584c" - }, - { - "nr": 119105, - "hash": "5c70043398b5ae29d007d4a30130be064ee09403" - }, - { - "nr": 120151, - "hash": "1884f5f01a7c0a352c148f1cb26f1dc7a5a5567b" - }, - { - "nr": 121089, - "hash": "5d9b9700f5b90a4bf05721baec70522aa17c47fd" - }, - { - "nr": 121571, - "hash": "2d615355447d5c348780f21156f1b1a7e0afe050" - }, - { - "nr": 120542, - "hash": "45f59e8738df7ec8f2665ce3655f525cf50fe1df" - }, - { - "nr": 119778, - "hash": "ea3d75042f29ab4c4fd77e24a8be5c817646a040" - }, - { - "nr": 120836, - "hash": "3103a324159f40a5b2968156e3957a22a7d68a5b" - }, - { - "nr": 118568, - "hash": "20db3b1a810114158685093edf9b962c3f5e7a47" - }, - { - "nr": 120546, - "hash": "690aaacc5826faa2b6fe06a11dd5aeb2acfdd597" - }, - { - "nr": 120212, - "hash": "6dbd06f3d0a123065d73af4b9b89e230cf202d73" - }, - { - "nr": 119878, - "hash": "38618ce80bbefbbaf2ade0f1e41ab7e56715ca81" - }, - { - "nr": 120780, - "hash": "2691953bb2ccfdca7c58a8e68253b5762068b484" - }, - { - "nr": 120416, - "hash": "4cabb59344a4fe203d5479bee8f8a93a0a0e85ff" - }, - { - "nr": 120562, - "hash": "9565b3896f1cbbcaaf799dd44426aed4d41e58a0" - }, - { - "nr": 121567, - "hash": "ed78be4b127738568f519ec73bebf1c1aeaeecf8" - }, - { - "nr": 121391, - "hash": "d5620f80f992923c896a00bdaf192a2824603dc2" - }, - { - "nr": 120663, - "hash": "07a7c64beccdd7d2b67f238af99e3511e5e83b2d" - }, - { - "nr": 119290, - "hash": "ac065fbafb6d1fc0ac909e4169b14bee7c17d56c" - }, - { - "nr": 120623, - "hash": "14345a7cb5d523c275fbece56b47376e80664daa" - }, - { - "nr": 121715, - "hash": "1a55b771a8e5c2760b04733629de3294fefd3bc6" - }, - { - "nr": 121628, - "hash": "54fabcc943d7b41193262c5a18509a30237108fb" - }, - { - "nr": 121065, - "hash": "047c95e47f5bb9b1c79c34396dc27dd141e68a0c" - }, - { - "nr": 120559, - "hash": "9b58bfc8430782a0eb08d53e3496df01e5e5eb3d" - }, - { - "nr": 120521, - "hash": "c0fe3257783364fb9e398ee4e191dd3172e31fa3" - }, - { - "nr": 119870, - "hash": "b2127becd1d01d5faf03239d70899e96d4d19642" - }, - { - "nr": 119100, - "hash": "4684a3b3226ae1e5ecf30199854e0196c45525fa" - }, - { - "nr": 118709, - "hash": "e66922b4a40fb0f9e2b37133b2e8f7dd2bc642a5" - }, - { - "nr": 119795, - "hash": "6d10b94cc6d41899c9906408d00542f63774d976" - }, - { - "nr": 121808, - "hash": "a88f1898f9abd783b1aed33e7d18fee074575c32" - }, - { - "nr": 121575, - "hash": "7bca068030191eaa6bce08ead58fab55d2eed0b0" - }, - { - "nr": 121327, - "hash": "9c0ef458f9ef9bd60847fe1f714c227da3c83ab3" - }, - { - "nr": 119776, - "hash": "d8bb6c7c8bf73d2893c5ac20bcdc5d62b95c34df" - }, - { - "nr": 119665, - "hash": "a5f1df5aee53997ddb35278a996df1ef7d40d1a8" - }, - { - "nr": 120814, - "hash": "8737cd2e83464c03f4b9bb1e2965d32563bfe4d4" - }, - { - "nr": 120198, - "hash": "857c975191e46e281dbc3744a755cd6b9cca35e2" - }, - { - "nr": 119503, - "hash": "2b735c1f0d3460b171dd4db8bd394147759d9353" - }, - { - "nr": 118950, - "hash": "0bb84285f5c5ec9186a80fdf493911e60105908c" - }, - { - "nr": 120269, - "hash": "f9726ca73ccd00cb5b4176b7839d6e6d7c6dce81" - }, - { - "nr": 121356, - "hash": "e53118fed192bd5f4392af163a95d95d78e123a7" - }, - { - "nr": 121337, - "hash": "0adbf9732e456653889966d5cc058fd5322da710" - }, - { - "nr": 118598, - "hash": "d94343c0f5a5b14723b93aa4aa89f31b3166d522" - }, - { - "nr": 120788, - "hash": "e3be1cd187af2392daa160f094e0496d235e40fc" - }, - { - "nr": 120942, - "hash": "a3e9481eba9c5baaa9012c17be539ba696ebaf52" - }, - { - "nr": 119155, - "hash": "e609d6b526ea7045f1bef91fcf722c9c70e5a1a7" - }, - { - "nr": 120195, - "hash": "16af83738781633fc820a69ba7c81f6de764d04b" - }, - { - "nr": 121338, - "hash": "1713af68a5acabe9c7fae166cf4d3812f2c4e442" - }, - { - "nr": 120828, - "hash": "bf8874e2740b6cf6044cd301fc5e788c5cd28661" - }, - { - "nr": 119142, - "hash": "c5473ae9d2e56f1e5a27451a0a79f6e67b1f2bc2" - }, - { - "nr": 120392, - "hash": "c2ea36b2145b5aaa82798b75a1ac207d323d4842" - }, - { - "nr": 117720, - "hash": "1664d4b3d0d61c4053ccadea24447897be5a2baf" - }, - { - "nr": 118189, - "hash": "228b863aab18d56c594846b5e5e9b2f7ec510a08" - }, - { - "nr": 121867, - "hash": "cc1109df1dccc25809fb19471f1d5350a2b7f001" - }, - { - "nr": 113374, - "hash": "48762776eea8077d1e6beca59afcc349439ec405" - }, - { - "nr": 121577, - "hash": "735948bb1c88aa002b90075a302fc9b3091040d2" - }, - { - "nr": 121193, - "hash": "41037d50dd089bd1b82f385f1233d7e540f52d2a" - }, - { - "nr": 115702, - "hash": "a4c970b94e639b8b49ed28a31f372c1d48828516" - }, - { - "nr": 120087, - "hash": "a65a7af46514714708eca2024aab33013efa149a" - }, - { - "nr": 119150, - "hash": "9fcefd8a9cb596621ecd4d82a64f86a6b48b5717" - }, - { - "nr": 121841, - "hash": "931c171c298e09f81cb7b0e8e9895f96ab35eef5" - }, - { - "nr": 120680, - "hash": "bddd26e3710d239eb9f5fa197b8cabe1a70b854a" - }, - { - "nr": 121292, - "hash": "8a83615b12d2b5358c46f5837dff2de38c9955b4" - }, - { - "nr": 120493, - "hash": "68e0e3f8ab190f52d4d813ce7eeadd6dd1decec3" - }, - { - "nr": 119579, - "hash": "7a511de9cdf6726d14ce16f20eacdd9ec683923c" - }, - { - "nr": 121477, - "hash": "3e5495dd1ccbb746804819b59ae299dc8896f029" - }, - { - "nr": 119208, - "hash": "f36acaedc0dee9fbe1c1c970ce3c1c096cbcdb69" - }, - { - "nr": 116938, - "hash": "90dd24760f54aeda668f8bd33f6f9109a9d6cff9" - }, - { - "nr": 118647, - "hash": "ea020b58e2d37da815a85fb0aa4a69d283e0fd07" - }, - { - "nr": 119522, - "hash": "846402fab0e26feeda0e136c064fbdca4f84c301" - }, - { - "nr": 120192, - "hash": "2d5a0e8f550c0397b76f5b1bf0862a8f87200066" - }, - { - "nr": 120338, - "hash": "262d2078474bc0eb7add1c83843be3771f21a04f" - }, - { - "nr": 119735, - "hash": "fdda098267668ea9162ff5bc998f4d11d8d548bd" - }, - { - "nr": 119109, - "hash": "71306dfc78d61ed6b0e74c7d9ba3feac856ed4d1" - }, - { - "nr": 120933, - "hash": "727940541e176b5453ae843805d4fa70e9776df8" - }, - { - "nr": 120397, - "hash": "973c20088a99b29600cd1cd372a3cfb81700ee20" - }, - { - "nr": 120018, - "hash": "c823d82d150ef4080e039306d0126bd9afcaf419" - }, - { - "nr": 120069, - "hash": "51670580914a9ded4ef8e4ec5172783fadbe1bab" - }, - { - "nr": 120524, - "hash": "abc1e7e973196554efa7de381d811e70165cc10a" - }, - { - "nr": 121632, - "hash": "dc49c8f615f6990740f5c754258249c7d296765e" - }, - { - "nr": 121491, - "hash": "30e65ed89a27fbf6c4fa1c7976645f390093eb9d" - }, - { - "nr": 116065, - "hash": "d71944ea20ae0d7975fedf9746b551b276cce58b" - }, - { - "nr": 120154, - "hash": "2f102986d2772f6ccf060896ffa597dfd5378e4c" - }, - { - "nr": 121083, - "hash": "5a2316f797d7229d23c35d7b70ea62040706d5a3" - }, - { - "nr": 120527, - "hash": "09fbd794a2809272f4bb93e8c2846ed0098253ab" - }, - { - "nr": 119495, - "hash": "5c0fe8d830454546f93311a29b34eb7e433bd0b6" - }, - { - "nr": 118619, - "hash": "35622c624284c4a9e3700645a56ff2219497f1f6" - }, - { - "nr": 121041, - "hash": "a7ada13e8e7b14bf892222befa82c4a943950469" - }, - { - "nr": 120534, - "hash": "192a71db8cc475dcd2f57cd8c322ab50c0138646" - }, - { - "nr": 116252, - "hash": "c87ba3f44175f223485988471fe9f31144c38085" - }, - { - "nr": 120843, - "hash": "02f110e3d8194d32261f03aa3ff5f395a35a60bd" - }, - { - "nr": 119762, - "hash": "354df02e841dd735653e1be4bb0a0db62f96dc36" - }, - { - "nr": 121485, - "hash": "53ace31e3d282e0f2b0e63466a09a0a433642bfe" - }, - { - "nr": 121120, - "hash": "65012d89aad5d49b97efc5d3699a7fb39b5473c9" - }, - { - "nr": 121028, - "hash": "740a261edbd3e9e94fc43a118bac25ec83b571fe" - }, - { - "nr": 120281, - "hash": "7b0356e77d5f6776c3154c27ba5e2e139137b8d4" - }, - { - "nr": 119948, - "hash": "01c49ca20bf43730edc94f4774dc5fc7295b968d" - }, - { - "nr": 120620, - "hash": "74ba80c8573fd6399c901e93f2fad7cb35b47123" - }, - { - "nr": 119026, - "hash": "ad085ae9302aa599a408eefdfa51f0016ca2d3c2" - }, - { - "nr": 118146, - "hash": "af17454ec0428b93789041ce218910b711fd54b7" - }, - { - "nr": 121291, - "hash": "27bbedb886d97ffa71ae6da7a8cb6934a414b207" - }, - { - "nr": 121149, - "hash": "ee651e358d6ab5be8c692295a8834c04b0fb1864" - }, - { - "nr": 117502, - "hash": "b8421b44e514a083fbf9e4ba6636e57e96adad7d" - }, - { - "nr": 119800, - "hash": "d01d5137fce1800b3151c11629ec807187f7e483" - }, - { - "nr": 121116, - "hash": "f01aec12f3dff3f6b9c632d55e64c1f8ae4ab3ef" - }, - { - "nr": 119789, - "hash": "b1b16c1b347c158d30f74675b8bc0264aa42ab50" - }, - { - "nr": 120064, - "hash": "65b35e8650cbd98634d5a0c99d15084aca71e6be" - }, - { - "nr": 121021, - "hash": "c1e212f5553205e9c48706d079972383bbbad946" - }, - { - "nr": 120490, - "hash": "b85d4547a66e1a04e6e08a97e85536d3c3b94014" - }, - { - "nr": 120334, - "hash": "cac4e6038e915d3fbf1fbe5b818ca9b0f71dcaae" - }, - { - "nr": 119592, - "hash": "4c8404ec451820d34d0be4ff9bd72b74f1568ed9" - }, - { - "nr": 120038, - "hash": "e3d464bd0bd103629ab7f571d8f2bfa2338e7d17" - }, - { - "nr": 121851, - "hash": "df4e4323c0f811bd27c289bcec39407d58c68d67" - }, - { - "nr": 121229, - "hash": "df45f5744456c1bf156d68b4fe05a6cf9f5246e7" - }, - { - "nr": 100448, - "hash": "1936715a715e34d4e920b3fce16d439ff8f0d4ed" - }, - { - "nr": 119659, - "hash": "d69374d0e4bab8f58a6717dc1f167af021da5dee" - }, - { - "nr": 119525, - "hash": "97e229efe2ec57e205d2d7c0577da96043d05d0a" - }, - { - "nr": 118455, - "hash": "c5e2605bde5e72151dc81ee8bbf22f67bdd6fbd6" - }, - { - "nr": 121614, - "hash": "ee62fe8d63d29e9f1ff1bf07624190575a933a0d" - }, - { - "nr": 118846, - "hash": "3133b88e80815c7ff94c8ca8a626c58a2ad0b274" - }, - { - "nr": 119825, - "hash": "24ce651bf58960bec8c058a08308dd9b608cc91b" - }, - { - "nr": 120877, - "hash": "2ce2d2bb8c5f41677d0d58733ec8b8e91eb3ea96" - }, - { - "nr": 121300, - "hash": "9712a92e3d894c27484f73135dc57883a05bc116" - }, - { - "nr": 118704, - "hash": "c4cbf7eae0307a0596843a543e9308aca537f99c" - }, - { - "nr": 120784, - "hash": "585e683d40f95d165fc1805d0bae8a8cb7659437" - }, - { - "nr": 114095, - "hash": "67becf523e2cbd6a056d5d55512926da01eb0bf3" - }, - { - "nr": 120072, - "hash": "848b50f024a2fcba9db4298e9841d91727713f54" - }, - { - "nr": 120707, - "hash": "c8c9e6543252c6f3e83f737596ba30c109ad77ea" - }, - { - "nr": 120914, - "hash": "3b37aef67b22b8122fef0f430e5e4099b5e3c50a" - }, - { - "nr": 119829, - "hash": "0f3ffa971b8393411aa981d7f6b1963de508d4bc" - }, - { - "nr": 119385, - "hash": "fa26169f94d817624b8889b71b62f0ce09e81072" - }, - { - "nr": 120249, - "hash": "2ea84201e64e7b73810f64acd181a5619e902b7c" - }, - { - "nr": 120438, - "hash": "14c36efbc9f1854fdb968f4e54d6852955db8f29" - }, - { - "nr": 118996, - "hash": "b525b4c672ffc29a2d8a31e5342d966bddb7d335" - }, - { - "nr": 120474, - "hash": "d4d72cae38d80ef4a91b569338c1730273ae25c5" - }, - { - "nr": 119556, - "hash": "e5fbeb6434e0c84bea865fd600e4d669b34bfd0b" - }, - { - "nr": 120116, - "hash": "b1bc87873dc1af16576a3109dc8112dd4df74297" - }, - { - "nr": 119959, - "hash": "b19a95f70e908707ab6482e74dc60526f9a12fb5" - }, - { - "nr": 118748, - "hash": "cbc2da9dd96ac111eecf06d2a57ec138377eb62b" - }, - { - "nr": 120001, - "hash": "f265fcab618eb1a6b0e0acc7db45153ac2db417f" - }, - { - "nr": 120599, - "hash": "321ee0ce9a7cefd85b405cd7866aa7c84083e23c" - }, - { - "nr": 120736, - "hash": "1df2bad5a97f9a9aa822ef4c6756a06b6b2f037f" - }, - { - "nr": 119396, - "hash": "ba16e78ba62aee1deb037f0ba58ec009e34f206d" - }, - { - "nr": 120255, - "hash": "227f3485c96018006baef6308cdf09565997f6c0" - }, - { - "nr": 120413, - "hash": "abba114ed510355e0ad70e1795985d986d499db3" - }, - { - "nr": 120461, - "hash": "cdd0fa092746857171d77d198973cdab9934c56a" - }, - { - "nr": 120731, - "hash": "e6d75dd9d11c74e923a73955a555447acf9994ae" - }, - { - "nr": 120729, - "hash": "60c8afd00bd8515eed2faa337fa1608fc83a72b1" - }, - { - "nr": 120871, - "hash": "1af1c8999baf6f9f2f91d3536ee5ff46fc46ff21" - }, - { - "nr": 120448, - "hash": "808c3314c2a67f5d33a40b7ea44c4cd64dd531be" - }, - { - "nr": 116516, - "hash": "b11666bfb07eaa095b9fe441f5a5db92b851c681" - }, - { - "nr": 121302, - "hash": "dc304f822dfa7aa4d3156a279b3e1ca4c75a9db8" - }, - { - "nr": 121283, - "hash": "e585b10a1ef1693f578517f3a707bc3578cbdb2a" - }, - { - "nr": 120779, - "hash": "eb1b5eafa8904dd991bc71b25c26f800e8766db0" - }, - { - "nr": 120330, - "hash": "3c758b2f450ff54b24297cd64376b997af32fa60" - }, - { - "nr": 120101, - "hash": "553ea46e20c44d7caee3d38ce56328f63545b6fe" - }, - { - "nr": 121481, - "hash": "ab4a1d4302247f4cbbc39f60489a292893bb0ab7" - }, - { - "nr": 121001, - "hash": "d3acc87bbc959d432f9152c439563c623387cfb8" - }, - { - "nr": 120595, - "hash": "a20f7d29d10bfdb8beeb9e2917f3702d9043b81a" - }, - { - "nr": 116884, - "hash": "e627b7dce7db18f8b27d5b5e1b6e7ea584ebdb4d" - }, - { - "nr": 120352, - "hash": "b07242cb34e74cb91138303cdea39d64b37c185f" - }, - { - "nr": 119537, - "hash": "a2a7678deef3534da0b6476ecf792528c2c1eca6" - }, - { - "nr": 117977, - "hash": "6cff4cc0333b52caf412a9b9b57d7bbac0550e02" - }, - { - "nr": 121638, - "hash": "88008ecb26c816022219805f6c550ece77987e11" - }, - { - "nr": 120678, - "hash": "b32f926cdf88d8ccba9f60f3bb2c35127f33462f" - }, - { - "nr": 121191, - "hash": "43e25f2e97dbac7d6f681b44cdd1d96031c9a715" - }, - { - "nr": 120757, - "hash": "f7405b35399862b06dd1d274a942aaf2921cdbe6" - }, - { - "nr": 120868, - "hash": "fd6155a7512b8c970a029a10f3835dcbe96b9802" - }, - { - "nr": 121275, - "hash": "54ca9023ae9a04dd7ea6724b9cf8d03d5bb31241" - }, - { - "nr": 121095, - "hash": "ee4f8204948f4e6b5fa2729b666937888101c482" - }, - { - "nr": 120782, - "hash": "851508f1d51b8c4cc7e2571325612681277485b5" - }, - { - "nr": 120894, - "hash": "6a29206517ba63ecddb3b42353b9eb7de54bd87f" - }, - { - "nr": 120854, - "hash": "48795f31fd4fd3f4ad05034ffbb6a915098ef557" - }, - { - "nr": 121764, - "hash": "79ac1d05bc2ef0df930b5816442afcff66b8bf05" - }, - { - "nr": 121460, - "hash": "cceda6fd625e69e51c54e6468ef495cd950b3659" - }, - { - "nr": 121459, - "hash": "1800c8b83d6a77f4955e600ee0dd961d87520783" - }, - { - "nr": 120513, - "hash": "fb883c9f88ee8a1c63c6f36955fdd2e945a55ace" - }, - { - "nr": 119944, - "hash": "335858996dc18e02a6dc549cb4e7625f3b2a8011" - }, - { - "nr": 121073, - "hash": "5aecd22607c7618c7c2b26c4a87e858c0597e26e" - }, - { - "nr": 119705, - "hash": "b28403b687690764eebbb96fb40dde6e235cbe3c" - }, - { - "nr": 121441, - "hash": "6b1decf48062ef728e0edf8e3cd28c9735ed7212" - }, - { - "nr": 120118, - "hash": "1cda1ee218240cac3ab4311adbeada35ed8a34e9" - }, - { - "nr": 119753, - "hash": "76dc21af1dbe25b0d3041d5b2fec10738d82a3d9" - }, - { - "nr": 120274, - "hash": "5d292ad855ef4740e56c89bce0e41345bedfafed" - }, - { - "nr": 120808, - "hash": "68142ea72f731593e41fefd1138c796181fc7743" - }, - { - "nr": 118942, - "hash": "abcbb433b7011775bf845c0c9eb6ca9ecc991767" - }, - { - "nr": 116897, - "hash": "c2ded069da6e2e54069ff55258718f9baf99afc2" - }, - { - "nr": 119796, - "hash": "0afc3cb5364c4fc1deda24084b08d17452e92c28" - }, - { - "nr": 121765, - "hash": "e958c82fc5a86fe4bab4f547fdc1917b224ac409" - }, - { - "nr": 121077, - "hash": "60d6ec130b30742d256d2509171bf123315fd418" - }, - { - "nr": 120518, - "hash": "9a2e459842d8ed9b93d49c792f47c2c112ab6be7" - }, - { - "nr": 119761, - "hash": "6fbd964049b0d1432fb41960cf5fb3faa9fbbf39" - }, - { - "nr": 120428, - "hash": "e8d0b358d7b7af611dd6e7b300b09593e8d6836e" - }, - { - "nr": 120105, - "hash": "60124e43a58dee958555acfdba9624d2c2597a41" - }, - { - "nr": 121016, - "hash": "b47ad09a6d9dadc0eef9d164179ffbc59d01110d" - }, - { - "nr": 121172, - "hash": "5c2d22d047d2051533fbb264b5b2720f62944946" - }, - { - "nr": 120279, - "hash": "e81888cfdadabace23b65f691f2b49b17a1acf07" - }, - { - "nr": 119394, - "hash": "2361c2f7da26a57e8dc70a277736f31214a6b5f4" - }, - { - "nr": 120250, - "hash": "9d6ee80ff682b239bede85af6c73aec9591be66f" - }, - { - "nr": 119933, - "hash": "5c559e4b7377634cf355f86d990be4ea0117f3ab" - }, - { - "nr": 119971, - "hash": "eb77689402ec2e0f2c6551fcb885b099414b0f1d" - }, - { - "nr": 121255, - "hash": "48622932fdf3b286249eefc1890479d2b88c39ad" - }, - { - "nr": 120825, - "hash": "c7cc2faef8e4f5cd4832de47fd22ebed0cd4825a" - }, - { - "nr": 116752, - "hash": "af0ac0f2924cbdf02c16c8cae7a785dce4622097" - }, - { - "nr": 119802, - "hash": "95bce2fcf9acf1c995c4b61553e1b03c45548bc8" - }, - { - "nr": 120398, - "hash": "4737ad4492292498119c9243e5e3914d29affb46" - }, - { - "nr": 121739, - "hash": "475bba3742452064054cede2662080ddce01d5cd" - }, - { - "nr": 121034, - "hash": "3b0d1c0b642a74effc311edb96095553dc1b5321" - }, - { - "nr": 121085, - "hash": "8dff49c46def56366905f58d52877afd0fc89b0e" - }, - { - "nr": 112599, - "hash": "976f1c3ae8d8ccc4d59b3cd317b3836727c89599" - }, - { - "nr": 120371, - "hash": "3c98c96ae81b0245259175579e9273af224cffbe" - }, - { - "nr": 119661, - "hash": "6062f442592498c632304dfc858fa0b544c5adae" - }, - { - "nr": 117992, - "hash": "207fa593686b76520e985fd89aee6f2913cd6b7c" - }, - { - "nr": 121871, - "hash": "260f56ef0f7cd2cdc333f715e53b399e7e5400b3" - }, - { - "nr": 119447, - "hash": "5eade18dde7c1ebec1e6a0f5f74fe53e31169de7" - }, - { - "nr": 117615, - "hash": "acdff8579750327a1c0d3fea66cf97d18abf4635" - }, - { - "nr": 121046, - "hash": "03e1642d8c13aa7f9983ab73dd6af59c351c710c" - }, - { - "nr": 121103, - "hash": "80a9be8216a190706232d218312dbaf397a4b2ed" - }, - { - "nr": 120354, - "hash": "517554a7e4c67e2ec6bbb5ce38c8ac814a438ea5" - }, - { - "nr": 119969, - "hash": "59b253d666f8641306e38916bc2f83a3b3018979" - }, - { - "nr": 120514, - "hash": "7dce84624a3e76722b13eaea231037a3b0de33b8" - }, - { - "nr": 120213, - "hash": "b87f017a0545ad21f398b26279816e3f0b1bd19a" - }, - { - "nr": 118923, - "hash": "eb7a52a5771ecdb57338429083631250189760c0" - }, - { - "nr": 121462, - "hash": "37e953e986ee09614279d3809664ae702abaa258" - }, - { - "nr": 121342, - "hash": "547e2dbd67204a553deb6e1840eb4792d018e4bc" - }, - { - "nr": 120257, - "hash": "e36011c38cdad10dba3caaad1139444a2501393c" - }, - { - "nr": 120492, - "hash": "1ec81fb3778004e26037221dc8a40911ef0f8f95" - }, - { - "nr": 120312, - "hash": "a55801ee17f6694adb64c4e052d45cd6d1b6880e" - }, - { - "nr": 119709, - "hash": "d90dae1d8a62b81e8284fa3c1134ed61cff92ceb" - }, - { - "nr": 121240, - "hash": "9b9849f4e1ee3aa9e88386326efb8a4699bd7789" - } - ] +{ + "mail": "smith.rashan@gmail.com", + "name": "Rashan Smith", + "date": 1701205965, + "prs": [ + { + "nr": 119791, + "hash": "ace888b04f70342a04eaa6c647e8216d170b0ba7" + }, + { + "nr": 120233, + "hash": "49b6d8b6ee43edd7347fc6cc659c61a9a39da7ab" + }, + { + "nr": 118653, + "hash": "ee2d320603f57fb0da79c8bef835bb4d28647266" + }, + { + "nr": 120285, + "hash": "48157c2f6442a229d350c5d643d170850f43e688" + }, + { + "nr": 120108, + "hash": "0a0a5a62459473e46ce565d7b5d0db11e79440ed" + }, + { + "nr": 121566, + "hash": "29e078ca2e943642dfe2d637076707d8ed52575d" + }, + { + "nr": 121303, + "hash": "50dfd6cdc755279ba318509348b294fb2d8d92a5" + }, + { + "nr": 118760, + "hash": "d72f1126c6e8495567c563d8f2c850072a32280a" + }, + { + "nr": 120375, + "hash": "9f95b13dd429b99dd470fc41936c70be0d52e65a" + }, + { + "nr": 120616, + "hash": "008b04b84a614137b4a28c346e84115317b2a9e4" + }, + { + "nr": 121257, + "hash": "94918f0fe0d876a3d9579a221c2aa9a006b045da" + }, + { + "nr": 117411, + "hash": "9041b72916c7ab2dd256ac93ff830e927d336bbe" + }, + { + "nr": 119946, + "hash": "a8f6cb910da26857038bc16d88e1aa481421b86e" + }, + { + "nr": 118299, + "hash": "da3a2472a4d88d5d6bc6f39a5c555e0f18b6eed4" + }, + { + "nr": 120649, + "hash": "12f791f6dcaca74801cdd0d93c2032e2cac7b944" + }, + { + "nr": 119317, + "hash": "40f57c0542bb39bf8b8e8412f181773911037d0b" + }, + { + "nr": 120380, + "hash": "1d0b88e2516922c39d7f9e2b3fc17d42a1409b95" + }, + { + "nr": 121373, + "hash": "ea4a3b7198543bc3eb143fed572127af4ba402f7" + }, + { + "nr": 121305, + "hash": "bbd41af9eefddf0025d05bbd5d8bd0f1246795a7" + }, + { + "nr": 118463, + "hash": "f1c93c27e28389a8b2153a8556dfefe3d5cc3eb7" + }, + { + "nr": 119515, + "hash": "4b616d6e2cdb9a021b837f5bd525aec39ce1bccc" + }, + { + "nr": 121249, + "hash": "38db1dac917ec865a88ab38eb3390c4a594ffa17" + }, + { + "nr": 120503, + "hash": "900852a151c7a999b2d004559613785efc6fc6ba" + }, + { + "nr": 120400, + "hash": "7be4ec1151d9755bdb92cc9a10c19d62bdad10b5" + }, + { + "nr": 119994, + "hash": "e7be212e8d20f8fc71aa8e55f3968f2e56a5c58e" + }, + { + "nr": 119785, + "hash": "dc04afc565c8cc60951c45f7c2a96dce55af7658" + }, + { + "nr": 120682, + "hash": "d955701631450dfe76d0c8c1752f97df3ffdc651" + }, + { + "nr": 120075, + "hash": "754bc8121089ca64a7caa77a911a5e64fa78a0e1" + }, + { + "nr": 121252, + "hash": "e6f0a9b6374f17c87ac911c3793675739ef5ff70" + }, + { + "nr": 120248, + "hash": "56be0d4bc34127f42f937963a4c81bcf318691ee" + }, + { + "nr": 119557, + "hash": "754fb642f166a217e1265551eb0cf64d7b388912" + }, + { + "nr": 120336, + "hash": "0da922cf38fca85c65ad85d3a6dd345c9598b886" + }, + { + "nr": 116803, + "hash": "96f4bea2398f6900d249d0079a5e077aaeb91f60" + }, + { + "nr": 121091, + "hash": "902c17ee055852e47d8895bea352a662da992418" + }, + { + "nr": 118705, + "hash": "ccfb57e26d7fea34d3b4569d9c2d229860d003c7" + }, + { + "nr": 120864, + "hash": "f0d5a5072e69e8a054349541dd9465d910bc075a" + }, + { + "nr": 120549, + "hash": "b8749dad66a41f2e89c07a17355cee2572f92fd9" + }, + { + "nr": 120433, + "hash": "bc11a2b82e317607a1da167f7180c50c5d2f4002" + }, + { + "nr": 120119, + "hash": "11cc3bce8e047853b38d113415e5bdab7b02aa78" + }, + { + "nr": 120097, + "hash": "868981fa7f9f0125b476385ea08776129ef97503" + }, + { + "nr": 119986, + "hash": "0965ae57f9f9eb0167aa33c241e2c8599d98748c" + }, + { + "nr": 121837, + "hash": "e0af684e60df41a43576c96715fa7a34bd9c0e52" + }, + { + "nr": 121456, + "hash": "3742b0ccc77bce83eff98d8470f9b316c0c79839" + }, + { + "nr": 121246, + "hash": "fc608b4a1c8916481eb9acf3f9c6547be700214b" + }, + { + "nr": 120412, + "hash": "a27e42623cc2c952196e47a6f191d05599de7d27" + }, + { + "nr": 120715, + "hash": "b95a1f08f7f47a8c288c60dd9c725e23c056cf13" + }, + { + "nr": 121579, + "hash": "8fab23b4a0b76ce7eb45975fdff12147518aace8" + }, + { + "nr": 121008, + "hash": "7a9a53ba7b2726a4b3b538fec557d7be719b020a" + }, + { + "nr": 120735, + "hash": "7b44954c330a84ad13a6126d3c2b9079d815c4a7" + }, + { + "nr": 117503, + "hash": "2835d763a686dd2daba30cdc7288d2114ffbaf59" + }, + { + "nr": 120275, + "hash": "9f9b3d05f26fb06d6c1bc7a14f6fd1e27634bb38" + }, + { + "nr": 120954, + "hash": "5c1f6ff2dcdad803d9675e5c1ddb5b7c813464c7" + }, + { + "nr": 120228, + "hash": "9355147b1206766cd6cf1070ec3841a6204c3aba" + }, + { + "nr": 121121, + "hash": "e01635ea4f10b26e9bc8e40abb286b2fbb7594cd" + }, + { + "nr": 121142, + "hash": "27ddb368ce80aecbdb8c08701b77269b72bb6e56" + }, + { + "nr": 120574, + "hash": "eaac44b7f345a20b23d4dd52f14e85f8f857f853" + }, + { + "nr": 120427, + "hash": "e9d0804c955b17e978f87d872386eca332f88cc6" + }, + { + "nr": 117326, + "hash": "d174b83408589ad3dc44e0bc9153ae811cf73990" + }, + { + "nr": 121078, + "hash": "0056b9b39f30fce723b9a3650ede2ede4169ece3" + }, + { + "nr": 120627, + "hash": "0a23a987f73eb05a0c1d5c7693ce9b261b233843" + }, + { + "nr": 121457, + "hash": "bff3739d26cb74fc6ea5e4992028ce9d56691522" + }, + { + "nr": 119937, + "hash": "8f9be9126dca3993f5a84248e8f52e818748f581" + }, + { + "nr": 119732, + "hash": "1fb2bea0b29d6e6e245841f61b190e4191805e8b" + }, + { + "nr": 119049, + "hash": "5c8adf4375c65c9c4059b1a6bf0acb675408ec10" + }, + { + "nr": 121325, + "hash": "385083937a148187cac2d52575b0400ccec68dba" + }, + { + "nr": 119859, + "hash": "6d12b6b39de9839c1361866925f73c63d1e9b018" + }, + { + "nr": 119399, + "hash": "f23499979b96c5e288b12b44fba58989491f6478" + }, + { + "nr": 120327, + "hash": "d455d16088fd837c8bae28c1254aa8fbaf750f9f" + }, + { + "nr": 120204, + "hash": "0ce808bc0419c5a9d3e60c6d1434cbe1f506b166" + }, + { + "nr": 119517, + "hash": "ae4a9b203e6004e38dc1e12451a505b33696cdac" + }, + { + "nr": 120827, + "hash": "810eac5907f92448a25ff90a3a3b15a05447a70b" + }, + { + "nr": 121216, + "hash": "97363a43d0589f52710cb2a7725ef747661e7ca9" + }, + { + "nr": 121389, + "hash": "6d3fe63dd7cd7dee1e47895d1404e76a5b24f21e" + }, + { + "nr": 121147, + "hash": "ab6857d566624813ea4d4176ce7196274f1b86b8" + }, + { + "nr": 120861, + "hash": "114e8a33f85ffc90ab886017528bd1ebe090c652" + }, + { + "nr": 119410, + "hash": "4b039ed3cbeb4d80526f3f4a3bc95ce3d0414f47" + }, + { + "nr": 119346, + "hash": "71c383952778e8454eb55ffdc743414e54f69639" + }, + { + "nr": 119769, + "hash": "92f8095a2cffd45a7abaa94f06550b03e10764ab" + }, + { + "nr": 121223, + "hash": "5a8d967c257aca0478cfb6793b01c693a207df4d" + }, + { + "nr": 121254, + "hash": "89bd300fd51bcb13e0e97c4007ba7cb466b6fc20" + }, + { + "nr": 121059, + "hash": "b51bdf70ce34815f09f452ce44825441ffda3387" + }, + { + "nr": 120995, + "hash": "9a7b794043c4cb8d9089394c63f972dd3b167226" + }, + { + "nr": 120583, + "hash": "77aa9159fa83a1dd753ab77c6dc9fce70c15f31c" + }, + { + "nr": 120039, + "hash": "2b5b7267d0806e4ded3d92e9635d092e4f966ba2" + }, + { + "nr": 120903, + "hash": "0f878a716c41a8e293004d465eec96198d246002" + }, + { + "nr": 120723, + "hash": "2c7206727c60950c9504b19109fa01d3d328cf20" + }, + { + "nr": 120577, + "hash": "972cb9a7e80aca230fa9be1101f5241716c1584c" + }, + { + "nr": 119105, + "hash": "5c70043398b5ae29d007d4a30130be064ee09403" + }, + { + "nr": 120151, + "hash": "1884f5f01a7c0a352c148f1cb26f1dc7a5a5567b" + }, + { + "nr": 121089, + "hash": "5d9b9700f5b90a4bf05721baec70522aa17c47fd" + }, + { + "nr": 121571, + "hash": "2d615355447d5c348780f21156f1b1a7e0afe050" + }, + { + "nr": 120542, + "hash": "45f59e8738df7ec8f2665ce3655f525cf50fe1df" + }, + { + "nr": 119778, + "hash": "ea3d75042f29ab4c4fd77e24a8be5c817646a040" + }, + { + "nr": 120836, + "hash": "3103a324159f40a5b2968156e3957a22a7d68a5b" + }, + { + "nr": 118568, + "hash": "20db3b1a810114158685093edf9b962c3f5e7a47" + }, + { + "nr": 120546, + "hash": "690aaacc5826faa2b6fe06a11dd5aeb2acfdd597" + }, + { + "nr": 120212, + "hash": "6dbd06f3d0a123065d73af4b9b89e230cf202d73" + }, + { + "nr": 119878, + "hash": "38618ce80bbefbbaf2ade0f1e41ab7e56715ca81" + }, + { + "nr": 120780, + "hash": "2691953bb2ccfdca7c58a8e68253b5762068b484" + }, + { + "nr": 120416, + "hash": "4cabb59344a4fe203d5479bee8f8a93a0a0e85ff" + }, + { + "nr": 120562, + "hash": "9565b3896f1cbbcaaf799dd44426aed4d41e58a0" + }, + { + "nr": 121567, + "hash": "ed78be4b127738568f519ec73bebf1c1aeaeecf8" + }, + { + "nr": 121391, + "hash": "d5620f80f992923c896a00bdaf192a2824603dc2" + }, + { + "nr": 120663, + "hash": "07a7c64beccdd7d2b67f238af99e3511e5e83b2d" + }, + { + "nr": 119290, + "hash": "ac065fbafb6d1fc0ac909e4169b14bee7c17d56c" + }, + { + "nr": 120623, + "hash": "14345a7cb5d523c275fbece56b47376e80664daa" + }, + { + "nr": 121715, + "hash": "1a55b771a8e5c2760b04733629de3294fefd3bc6" + }, + { + "nr": 121628, + "hash": "54fabcc943d7b41193262c5a18509a30237108fb" + }, + { + "nr": 121065, + "hash": "047c95e47f5bb9b1c79c34396dc27dd141e68a0c" + }, + { + "nr": 120559, + "hash": "9b58bfc8430782a0eb08d53e3496df01e5e5eb3d" + }, + { + "nr": 120521, + "hash": "c0fe3257783364fb9e398ee4e191dd3172e31fa3" + }, + { + "nr": 119870, + "hash": "b2127becd1d01d5faf03239d70899e96d4d19642" + }, + { + "nr": 119100, + "hash": "4684a3b3226ae1e5ecf30199854e0196c45525fa" + }, + { + "nr": 118709, + "hash": "e66922b4a40fb0f9e2b37133b2e8f7dd2bc642a5" + }, + { + "nr": 119795, + "hash": "6d10b94cc6d41899c9906408d00542f63774d976" + }, + { + "nr": 121808, + "hash": "a88f1898f9abd783b1aed33e7d18fee074575c32" + }, + { + "nr": 121575, + "hash": "7bca068030191eaa6bce08ead58fab55d2eed0b0" + }, + { + "nr": 121327, + "hash": "9c0ef458f9ef9bd60847fe1f714c227da3c83ab3" + }, + { + "nr": 119776, + "hash": "d8bb6c7c8bf73d2893c5ac20bcdc5d62b95c34df" + }, + { + "nr": 119665, + "hash": "a5f1df5aee53997ddb35278a996df1ef7d40d1a8" + }, + { + "nr": 120814, + "hash": "8737cd2e83464c03f4b9bb1e2965d32563bfe4d4" + }, + { + "nr": 120198, + "hash": "857c975191e46e281dbc3744a755cd6b9cca35e2" + }, + { + "nr": 119503, + "hash": "2b735c1f0d3460b171dd4db8bd394147759d9353" + }, + { + "nr": 118950, + "hash": "0bb84285f5c5ec9186a80fdf493911e60105908c" + }, + { + "nr": 120269, + "hash": "f9726ca73ccd00cb5b4176b7839d6e6d7c6dce81" + }, + { + "nr": 121356, + "hash": "e53118fed192bd5f4392af163a95d95d78e123a7" + }, + { + "nr": 121337, + "hash": "0adbf9732e456653889966d5cc058fd5322da710" + }, + { + "nr": 118598, + "hash": "d94343c0f5a5b14723b93aa4aa89f31b3166d522" + }, + { + "nr": 120788, + "hash": "e3be1cd187af2392daa160f094e0496d235e40fc" + }, + { + "nr": 120942, + "hash": "a3e9481eba9c5baaa9012c17be539ba696ebaf52" + }, + { + "nr": 119155, + "hash": "e609d6b526ea7045f1bef91fcf722c9c70e5a1a7" + }, + { + "nr": 120195, + "hash": "16af83738781633fc820a69ba7c81f6de764d04b" + }, + { + "nr": 121338, + "hash": "1713af68a5acabe9c7fae166cf4d3812f2c4e442" + }, + { + "nr": 120828, + "hash": "bf8874e2740b6cf6044cd301fc5e788c5cd28661" + }, + { + "nr": 119142, + "hash": "c5473ae9d2e56f1e5a27451a0a79f6e67b1f2bc2" + }, + { + "nr": 120392, + "hash": "c2ea36b2145b5aaa82798b75a1ac207d323d4842" + }, + { + "nr": 117720, + "hash": "1664d4b3d0d61c4053ccadea24447897be5a2baf" + }, + { + "nr": 118189, + "hash": "228b863aab18d56c594846b5e5e9b2f7ec510a08" + }, + { + "nr": 121867, + "hash": "cc1109df1dccc25809fb19471f1d5350a2b7f001" + }, + { + "nr": 113374, + "hash": "48762776eea8077d1e6beca59afcc349439ec405" + }, + { + "nr": 121577, + "hash": "735948bb1c88aa002b90075a302fc9b3091040d2" + }, + { + "nr": 121193, + "hash": "41037d50dd089bd1b82f385f1233d7e540f52d2a" + }, + { + "nr": 115702, + "hash": "a4c970b94e639b8b49ed28a31f372c1d48828516" + }, + { + "nr": 120087, + "hash": "a65a7af46514714708eca2024aab33013efa149a" + }, + { + "nr": 119150, + "hash": "9fcefd8a9cb596621ecd4d82a64f86a6b48b5717" + }, + { + "nr": 121841, + "hash": "931c171c298e09f81cb7b0e8e9895f96ab35eef5" + }, + { + "nr": 120680, + "hash": "bddd26e3710d239eb9f5fa197b8cabe1a70b854a" + }, + { + "nr": 121292, + "hash": "8a83615b12d2b5358c46f5837dff2de38c9955b4" + }, + { + "nr": 120493, + "hash": "68e0e3f8ab190f52d4d813ce7eeadd6dd1decec3" + }, + { + "nr": 119579, + "hash": "7a511de9cdf6726d14ce16f20eacdd9ec683923c" + }, + { + "nr": 121477, + "hash": "3e5495dd1ccbb746804819b59ae299dc8896f029" + }, + { + "nr": 119208, + "hash": "f36acaedc0dee9fbe1c1c970ce3c1c096cbcdb69" + }, + { + "nr": 116938, + "hash": "90dd24760f54aeda668f8bd33f6f9109a9d6cff9" + }, + { + "nr": 118647, + "hash": "ea020b58e2d37da815a85fb0aa4a69d283e0fd07" + }, + { + "nr": 119522, + "hash": "846402fab0e26feeda0e136c064fbdca4f84c301" + }, + { + "nr": 120192, + "hash": "2d5a0e8f550c0397b76f5b1bf0862a8f87200066" + }, + { + "nr": 120338, + "hash": "262d2078474bc0eb7add1c83843be3771f21a04f" + }, + { + "nr": 119735, + "hash": "fdda098267668ea9162ff5bc998f4d11d8d548bd" + }, + { + "nr": 119109, + "hash": "71306dfc78d61ed6b0e74c7d9ba3feac856ed4d1" + }, + { + "nr": 120933, + "hash": "727940541e176b5453ae843805d4fa70e9776df8" + }, + { + "nr": 120397, + "hash": "973c20088a99b29600cd1cd372a3cfb81700ee20" + }, + { + "nr": 120018, + "hash": "c823d82d150ef4080e039306d0126bd9afcaf419" + }, + { + "nr": 120069, + "hash": "51670580914a9ded4ef8e4ec5172783fadbe1bab" + }, + { + "nr": 120524, + "hash": "abc1e7e973196554efa7de381d811e70165cc10a" + }, + { + "nr": 121632, + "hash": "dc49c8f615f6990740f5c754258249c7d296765e" + }, + { + "nr": 121491, + "hash": "30e65ed89a27fbf6c4fa1c7976645f390093eb9d" + }, + { + "nr": 116065, + "hash": "d71944ea20ae0d7975fedf9746b551b276cce58b" + }, + { + "nr": 120154, + "hash": "2f102986d2772f6ccf060896ffa597dfd5378e4c" + }, + { + "nr": 121083, + "hash": "5a2316f797d7229d23c35d7b70ea62040706d5a3" + }, + { + "nr": 120527, + "hash": "09fbd794a2809272f4bb93e8c2846ed0098253ab" + }, + { + "nr": 119495, + "hash": "5c0fe8d830454546f93311a29b34eb7e433bd0b6" + }, + { + "nr": 118619, + "hash": "35622c624284c4a9e3700645a56ff2219497f1f6" + }, + { + "nr": 121041, + "hash": "a7ada13e8e7b14bf892222befa82c4a943950469" + }, + { + "nr": 120534, + "hash": "192a71db8cc475dcd2f57cd8c322ab50c0138646" + }, + { + "nr": 116252, + "hash": "c87ba3f44175f223485988471fe9f31144c38085" + }, + { + "nr": 120843, + "hash": "02f110e3d8194d32261f03aa3ff5f395a35a60bd" + }, + { + "nr": 119762, + "hash": "354df02e841dd735653e1be4bb0a0db62f96dc36" + }, + { + "nr": 121485, + "hash": "53ace31e3d282e0f2b0e63466a09a0a433642bfe" + }, + { + "nr": 121120, + "hash": "65012d89aad5d49b97efc5d3699a7fb39b5473c9" + }, + { + "nr": 121028, + "hash": "740a261edbd3e9e94fc43a118bac25ec83b571fe" + }, + { + "nr": 120281, + "hash": "7b0356e77d5f6776c3154c27ba5e2e139137b8d4" + }, + { + "nr": 119948, + "hash": "01c49ca20bf43730edc94f4774dc5fc7295b968d" + }, + { + "nr": 120620, + "hash": "74ba80c8573fd6399c901e93f2fad7cb35b47123" + }, + { + "nr": 119026, + "hash": "ad085ae9302aa599a408eefdfa51f0016ca2d3c2" + }, + { + "nr": 118146, + "hash": "af17454ec0428b93789041ce218910b711fd54b7" + }, + { + "nr": 121291, + "hash": "27bbedb886d97ffa71ae6da7a8cb6934a414b207" + }, + { + "nr": 121149, + "hash": "ee651e358d6ab5be8c692295a8834c04b0fb1864" + }, + { + "nr": 117502, + "hash": "b8421b44e514a083fbf9e4ba6636e57e96adad7d" + }, + { + "nr": 119800, + "hash": "d01d5137fce1800b3151c11629ec807187f7e483" + }, + { + "nr": 121116, + "hash": "f01aec12f3dff3f6b9c632d55e64c1f8ae4ab3ef" + }, + { + "nr": 119789, + "hash": "b1b16c1b347c158d30f74675b8bc0264aa42ab50" + }, + { + "nr": 120064, + "hash": "65b35e8650cbd98634d5a0c99d15084aca71e6be" + }, + { + "nr": 121021, + "hash": "c1e212f5553205e9c48706d079972383bbbad946" + }, + { + "nr": 120490, + "hash": "b85d4547a66e1a04e6e08a97e85536d3c3b94014" + }, + { + "nr": 120334, + "hash": "cac4e6038e915d3fbf1fbe5b818ca9b0f71dcaae" + }, + { + "nr": 119592, + "hash": "4c8404ec451820d34d0be4ff9bd72b74f1568ed9" + }, + { + "nr": 120038, + "hash": "e3d464bd0bd103629ab7f571d8f2bfa2338e7d17" + }, + { + "nr": 121851, + "hash": "df4e4323c0f811bd27c289bcec39407d58c68d67" + }, + { + "nr": 121229, + "hash": "df45f5744456c1bf156d68b4fe05a6cf9f5246e7" + }, + { + "nr": 100448, + "hash": "1936715a715e34d4e920b3fce16d439ff8f0d4ed" + }, + { + "nr": 119659, + "hash": "d69374d0e4bab8f58a6717dc1f167af021da5dee" + }, + { + "nr": 119525, + "hash": "97e229efe2ec57e205d2d7c0577da96043d05d0a" + }, + { + "nr": 118455, + "hash": "c5e2605bde5e72151dc81ee8bbf22f67bdd6fbd6" + }, + { + "nr": 121614, + "hash": "ee62fe8d63d29e9f1ff1bf07624190575a933a0d" + }, + { + "nr": 118846, + "hash": "3133b88e80815c7ff94c8ca8a626c58a2ad0b274" + }, + { + "nr": 119825, + "hash": "24ce651bf58960bec8c058a08308dd9b608cc91b" + }, + { + "nr": 120877, + "hash": "2ce2d2bb8c5f41677d0d58733ec8b8e91eb3ea96" + }, + { + "nr": 121300, + "hash": "9712a92e3d894c27484f73135dc57883a05bc116" + }, + { + "nr": 118704, + "hash": "c4cbf7eae0307a0596843a543e9308aca537f99c" + }, + { + "nr": 120784, + "hash": "585e683d40f95d165fc1805d0bae8a8cb7659437" + }, + { + "nr": 114095, + "hash": "67becf523e2cbd6a056d5d55512926da01eb0bf3" + }, + { + "nr": 120072, + "hash": "848b50f024a2fcba9db4298e9841d91727713f54" + }, + { + "nr": 120707, + "hash": "c8c9e6543252c6f3e83f737596ba30c109ad77ea" + }, + { + "nr": 120914, + "hash": "3b37aef67b22b8122fef0f430e5e4099b5e3c50a" + }, + { + "nr": 119829, + "hash": "0f3ffa971b8393411aa981d7f6b1963de508d4bc" + }, + { + "nr": 119385, + "hash": "fa26169f94d817624b8889b71b62f0ce09e81072" + }, + { + "nr": 120249, + "hash": "2ea84201e64e7b73810f64acd181a5619e902b7c" + }, + { + "nr": 120438, + "hash": "14c36efbc9f1854fdb968f4e54d6852955db8f29" + }, + { + "nr": 118996, + "hash": "b525b4c672ffc29a2d8a31e5342d966bddb7d335" + }, + { + "nr": 120474, + "hash": "d4d72cae38d80ef4a91b569338c1730273ae25c5" + }, + { + "nr": 119556, + "hash": "e5fbeb6434e0c84bea865fd600e4d669b34bfd0b" + }, + { + "nr": 120116, + "hash": "b1bc87873dc1af16576a3109dc8112dd4df74297" + }, + { + "nr": 119959, + "hash": "b19a95f70e908707ab6482e74dc60526f9a12fb5" + }, + { + "nr": 118748, + "hash": "cbc2da9dd96ac111eecf06d2a57ec138377eb62b" + }, + { + "nr": 120001, + "hash": "f265fcab618eb1a6b0e0acc7db45153ac2db417f" + }, + { + "nr": 120599, + "hash": "321ee0ce9a7cefd85b405cd7866aa7c84083e23c" + }, + { + "nr": 120736, + "hash": "1df2bad5a97f9a9aa822ef4c6756a06b6b2f037f" + }, + { + "nr": 119396, + "hash": "ba16e78ba62aee1deb037f0ba58ec009e34f206d" + }, + { + "nr": 120255, + "hash": "227f3485c96018006baef6308cdf09565997f6c0" + }, + { + "nr": 120413, + "hash": "abba114ed510355e0ad70e1795985d986d499db3" + }, + { + "nr": 120461, + "hash": "cdd0fa092746857171d77d198973cdab9934c56a" + }, + { + "nr": 120731, + "hash": "e6d75dd9d11c74e923a73955a555447acf9994ae" + }, + { + "nr": 120729, + "hash": "60c8afd00bd8515eed2faa337fa1608fc83a72b1" + }, + { + "nr": 120871, + "hash": "1af1c8999baf6f9f2f91d3536ee5ff46fc46ff21" + }, + { + "nr": 120448, + "hash": "808c3314c2a67f5d33a40b7ea44c4cd64dd531be" + }, + { + "nr": 116516, + "hash": "b11666bfb07eaa095b9fe441f5a5db92b851c681" + }, + { + "nr": 121302, + "hash": "dc304f822dfa7aa4d3156a279b3e1ca4c75a9db8" + }, + { + "nr": 121283, + "hash": "e585b10a1ef1693f578517f3a707bc3578cbdb2a" + }, + { + "nr": 120779, + "hash": "eb1b5eafa8904dd991bc71b25c26f800e8766db0" + }, + { + "nr": 120330, + "hash": "3c758b2f450ff54b24297cd64376b997af32fa60" + }, + { + "nr": 120101, + "hash": "553ea46e20c44d7caee3d38ce56328f63545b6fe" + }, + { + "nr": 121481, + "hash": "ab4a1d4302247f4cbbc39f60489a292893bb0ab7" + }, + { + "nr": 121001, + "hash": "d3acc87bbc959d432f9152c439563c623387cfb8" + }, + { + "nr": 120595, + "hash": "a20f7d29d10bfdb8beeb9e2917f3702d9043b81a" + }, + { + "nr": 116884, + "hash": "e627b7dce7db18f8b27d5b5e1b6e7ea584ebdb4d" + }, + { + "nr": 120352, + "hash": "b07242cb34e74cb91138303cdea39d64b37c185f" + }, + { + "nr": 119537, + "hash": "a2a7678deef3534da0b6476ecf792528c2c1eca6" + }, + { + "nr": 117977, + "hash": "6cff4cc0333b52caf412a9b9b57d7bbac0550e02" + }, + { + "nr": 121638, + "hash": "88008ecb26c816022219805f6c550ece77987e11" + }, + { + "nr": 120678, + "hash": "b32f926cdf88d8ccba9f60f3bb2c35127f33462f" + }, + { + "nr": 121191, + "hash": "43e25f2e97dbac7d6f681b44cdd1d96031c9a715" + }, + { + "nr": 120757, + "hash": "f7405b35399862b06dd1d274a942aaf2921cdbe6" + }, + { + "nr": 120868, + "hash": "fd6155a7512b8c970a029a10f3835dcbe96b9802" + }, + { + "nr": 121275, + "hash": "54ca9023ae9a04dd7ea6724b9cf8d03d5bb31241" + }, + { + "nr": 121095, + "hash": "ee4f8204948f4e6b5fa2729b666937888101c482" + }, + { + "nr": 120782, + "hash": "851508f1d51b8c4cc7e2571325612681277485b5" + }, + { + "nr": 120894, + "hash": "6a29206517ba63ecddb3b42353b9eb7de54bd87f" + }, + { + "nr": 120854, + "hash": "48795f31fd4fd3f4ad05034ffbb6a915098ef557" + }, + { + "nr": 121764, + "hash": "79ac1d05bc2ef0df930b5816442afcff66b8bf05" + }, + { + "nr": 121460, + "hash": "cceda6fd625e69e51c54e6468ef495cd950b3659" + }, + { + "nr": 121459, + "hash": "1800c8b83d6a77f4955e600ee0dd961d87520783" + }, + { + "nr": 120513, + "hash": "fb883c9f88ee8a1c63c6f36955fdd2e945a55ace" + }, + { + "nr": 119944, + "hash": "335858996dc18e02a6dc549cb4e7625f3b2a8011" + }, + { + "nr": 121073, + "hash": "5aecd22607c7618c7c2b26c4a87e858c0597e26e" + }, + { + "nr": 119705, + "hash": "b28403b687690764eebbb96fb40dde6e235cbe3c" + }, + { + "nr": 121441, + "hash": "6b1decf48062ef728e0edf8e3cd28c9735ed7212" + }, + { + "nr": 120118, + "hash": "1cda1ee218240cac3ab4311adbeada35ed8a34e9" + }, + { + "nr": 119753, + "hash": "76dc21af1dbe25b0d3041d5b2fec10738d82a3d9" + }, + { + "nr": 120274, + "hash": "5d292ad855ef4740e56c89bce0e41345bedfafed" + }, + { + "nr": 120808, + "hash": "68142ea72f731593e41fefd1138c796181fc7743" + }, + { + "nr": 118942, + "hash": "abcbb433b7011775bf845c0c9eb6ca9ecc991767" + }, + { + "nr": 116897, + "hash": "c2ded069da6e2e54069ff55258718f9baf99afc2" + }, + { + "nr": 119796, + "hash": "0afc3cb5364c4fc1deda24084b08d17452e92c28" + }, + { + "nr": 121765, + "hash": "e958c82fc5a86fe4bab4f547fdc1917b224ac409" + }, + { + "nr": 121077, + "hash": "60d6ec130b30742d256d2509171bf123315fd418" + }, + { + "nr": 120518, + "hash": "9a2e459842d8ed9b93d49c792f47c2c112ab6be7" + }, + { + "nr": 119761, + "hash": "6fbd964049b0d1432fb41960cf5fb3faa9fbbf39" + }, + { + "nr": 120428, + "hash": "e8d0b358d7b7af611dd6e7b300b09593e8d6836e" + }, + { + "nr": 120105, + "hash": "60124e43a58dee958555acfdba9624d2c2597a41" + }, + { + "nr": 121016, + "hash": "b47ad09a6d9dadc0eef9d164179ffbc59d01110d" + }, + { + "nr": 121172, + "hash": "5c2d22d047d2051533fbb264b5b2720f62944946" + }, + { + "nr": 120279, + "hash": "e81888cfdadabace23b65f691f2b49b17a1acf07" + }, + { + "nr": 119394, + "hash": "2361c2f7da26a57e8dc70a277736f31214a6b5f4" + }, + { + "nr": 120250, + "hash": "9d6ee80ff682b239bede85af6c73aec9591be66f" + }, + { + "nr": 119933, + "hash": "5c559e4b7377634cf355f86d990be4ea0117f3ab" + }, + { + "nr": 119971, + "hash": "eb77689402ec2e0f2c6551fcb885b099414b0f1d" + }, + { + "nr": 121255, + "hash": "48622932fdf3b286249eefc1890479d2b88c39ad" + }, + { + "nr": 120825, + "hash": "c7cc2faef8e4f5cd4832de47fd22ebed0cd4825a" + }, + { + "nr": 116752, + "hash": "af0ac0f2924cbdf02c16c8cae7a785dce4622097" + }, + { + "nr": 119802, + "hash": "95bce2fcf9acf1c995c4b61553e1b03c45548bc8" + }, + { + "nr": 120398, + "hash": "4737ad4492292498119c9243e5e3914d29affb46" + }, + { + "nr": 121739, + "hash": "475bba3742452064054cede2662080ddce01d5cd" + }, + { + "nr": 121034, + "hash": "3b0d1c0b642a74effc311edb96095553dc1b5321" + }, + { + "nr": 121085, + "hash": "8dff49c46def56366905f58d52877afd0fc89b0e" + }, + { + "nr": 112599, + "hash": "976f1c3ae8d8ccc4d59b3cd317b3836727c89599" + }, + { + "nr": 120371, + "hash": "3c98c96ae81b0245259175579e9273af224cffbe" + }, + { + "nr": 119661, + "hash": "6062f442592498c632304dfc858fa0b544c5adae" + }, + { + "nr": 117992, + "hash": "207fa593686b76520e985fd89aee6f2913cd6b7c" + }, + { + "nr": 121871, + "hash": "260f56ef0f7cd2cdc333f715e53b399e7e5400b3" + }, + { + "nr": 119447, + "hash": "5eade18dde7c1ebec1e6a0f5f74fe53e31169de7" + }, + { + "nr": 117615, + "hash": "acdff8579750327a1c0d3fea66cf97d18abf4635" + }, + { + "nr": 121046, + "hash": "03e1642d8c13aa7f9983ab73dd6af59c351c710c" + }, + { + "nr": 121103, + "hash": "80a9be8216a190706232d218312dbaf397a4b2ed" + }, + { + "nr": 120354, + "hash": "517554a7e4c67e2ec6bbb5ce38c8ac814a438ea5" + }, + { + "nr": 119969, + "hash": "59b253d666f8641306e38916bc2f83a3b3018979" + }, + { + "nr": 120514, + "hash": "7dce84624a3e76722b13eaea231037a3b0de33b8" + }, + { + "nr": 120213, + "hash": "b87f017a0545ad21f398b26279816e3f0b1bd19a" + }, + { + "nr": 118923, + "hash": "eb7a52a5771ecdb57338429083631250189760c0" + }, + { + "nr": 121462, + "hash": "37e953e986ee09614279d3809664ae702abaa258" + }, + { + "nr": 121342, + "hash": "547e2dbd67204a553deb6e1840eb4792d018e4bc" + }, + { + "nr": 120257, + "hash": "e36011c38cdad10dba3caaad1139444a2501393c" + }, + { + "nr": 120492, + "hash": "1ec81fb3778004e26037221dc8a40911ef0f8f95" + }, + { + "nr": 120312, + "hash": "a55801ee17f6694adb64c4e052d45cd6d1b6880e" + }, + { + "nr": 119709, + "hash": "d90dae1d8a62b81e8284fa3c1134ed61cff92ceb" + }, + { + "nr": 121240, + "hash": "9b9849f4e1ee3aa9e88386326efb8a4699bd7789" + } + ] } \ No newline at end of file diff --git a/releases/release-1.29/release-notes/sessions/maps-1702051199.json b/releases/release-1.29/release-notes/sessions/maps-1702051199.json index 3d17fb24e56..03780e90035 100644 --- a/releases/release-1.29/release-notes/sessions/maps-1702051199.json +++ b/releases/release-1.29/release-notes/sessions/maps-1702051199.json @@ -1,15 +1,15 @@ -{ - "mail": "fsmunoz@gmail.com", - "name": "Frederico Muñoz", - "date": 1702051199, - "prs": [ - { - "nr": 121567, - "hash": "23c78233698d03c35477ad86a8941c5440df10ca" - }, - { - "nr": 121632, - "hash": "332e548e750e49ab8d2a95109225d4af7f8a9d7b" - } - ] +{ + "mail": "fsmunoz@gmail.com", + "name": "Frederico Muñoz", + "date": 1702051199, + "prs": [ + { + "nr": 121567, + "hash": "23c78233698d03c35477ad86a8941c5440df10ca" + }, + { + "nr": 121632, + "hash": "332e548e750e49ab8d2a95109225d4af7f8a9d7b" + } + ] } \ No newline at end of file diff --git a/releases/release-1.29/release-team.md b/releases/release-1.29/release-team.md index def27c4ee03..da12998df86 100644 --- a/releases/release-1.29/release-team.md +++ b/releases/release-1.29/release-team.md @@ -1,17 +1,17 @@ -# Kubernetes 1.29 Release Team - -| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|----------|----------------------------------|----------------------------------------| -| Release Team Lead | Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack: `@psaggu`) | Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos) / Slack: `@Angelos Kolaitis`), Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@Meha Bhalodiya`), Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell), Slack: `@Mickey`), Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo), Slack: `@ramrodo`)| -| Emeritus Adviser | Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`) | N/A | -| Enhancements | Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova`) | Ana Margarita Medina ([@AnaMMedina21 ](https://github.com/AnaMMedina21) / Slack: `@Ana Margarita Medina`), Mohammad Reza Saleh Sedghpour ([@salehsedghpour](https://github.com/salehsedghpour) / Slack: `@Mohammad Reza Saleh`), Rayan Das ([@rayandas](https://github.com/rayandas) / Slack: `@rayandas`), Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07) / Slack: `@Sanchita Mishra`), Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/sreeram-venkitesh) / Slack: `@Sreeram Venkitesh`)| -| Release Notes | Frederico Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz`) | Faeka Ansari ([@fykaa](https://github.com/fykaa) / Slack: `@Fyka Ansari`), Mengjiao Liu ([@mengjiao-liu](https://github.com/mengjiao-liu) / Slack: `@Mengjiao Liu`), Rashan Smith ([@rashansmith](https://github.com/rashansmith) / Slack: `@Rashan`), Sri Harshadithya muddapu ([@Muddapu](https://github.com/Muddapu) / Slack: `@Harsha`)| -| Communications | Carol Valencia ([@krol3](https://github.com/krol3) / Slack: `@krol`) | Abigail McCarthy ([@Abbie](https://github.com/Abbie) / Slack: `@Abbie`), Hosam Kamel ([@hkamel](https://github.com/hkamel) / Slack: `@hkamel`), James Quigley ([@James-Quigley](https://github.com/James-Quigley) / Slack: `@James Quigley`), Kristin Martin ([@kcmartin](https://github.com/kcmartin) / Slack: `@kcmartin`)| -| Bug Triage | Yigit Demirbas ([@hailkomputer](https://github.com/hailkomputer) / Slack: `@Yigit Demirbas`) | Anhelina Zelyk ([@zelenushechka](https://github.com/zelenushechka) / Slack: `@Anhelina`), Brad McCoy ([@bradmccoydev](https://github.com/bradmccoydev) / Slack: `@Brad McCoy`), Maryam Tavakkoli ([@MaryamTavakkoli](https://github.com/MaryamTavakkoli) / Slack: `@Maryam Tavakkoli`), Mofi Rahman ([@moficodes](https://github.com/moficodes) / Slack: `@Mofi`) | -| CI Signal | Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav` ) | John Anderson ([@sontek](https://github.com/sontek) / Slack: `@sontek`), Mansi Kulkarni ([@mansikulkarni96](https://github.com/mansikulkarni96) / Slack: `@Mansi Kulkarni`), Paco Xu ([@pacoxu](https://github.com/pacoxu/) / Slack: `@pacoxu`), Reeta Singh ([@reetasingh](https://github.com/reetasingh) / Slack: `@reetas`), Ricky Sadowski ([@rjsadow](https://github.com/rjsadow) / Slack: `@Ricky Sadowski`) | -| Docs | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@Kat Cosgrove`) | Drew Hagen ([@drewhagen](https://github.com/drewhagen) / Slack: `@Drew Hagen`), Harshita Sao ([@harshitasao](https://github.com/harshitasao) / Slack: `@Harshita Sao`), Oluebube Princess Egbuna (@[Princesso](https://github.com/Princesso) / Slack: `@Bube`), Tania Duggal ([@taniaduggal](https://github.com/taniaduggal) / Slack: `@taniaduggal`)| -| Branch Manager | Jim Angel ([@jimangel](https://github.com/jimangel) / Slack: `@jimangel`)| Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@marosset`) | - -Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.29, once the 1.29 release cycle concludes. +# Kubernetes 1.29 Release Team + +| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|----------|----------------------------------|----------------------------------------| +| Release Team Lead | Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack: `@psaggu`) | Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos) / Slack: `@Angelos Kolaitis`), Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@Meha Bhalodiya`), Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell), Slack: `@Mickey`), Rodolfo Martínez Vega ([@ramrodo](https://github.com/ramrodo), Slack: `@ramrodo`)| +| Emeritus Adviser | Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`) | N/A | +| Enhancements | Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova`) | Ana Margarita Medina ([@AnaMMedina21 ](https://github.com/AnaMMedina21) / Slack: `@Ana Margarita Medina`), Mohammad Reza Saleh Sedghpour ([@salehsedghpour](https://github.com/salehsedghpour) / Slack: `@Mohammad Reza Saleh`), Rayan Das ([@rayandas](https://github.com/rayandas) / Slack: `@rayandas`), Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07) / Slack: `@Sanchita Mishra`), Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/sreeram-venkitesh) / Slack: `@Sreeram Venkitesh`)| +| Release Notes | Frederico Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz`) | Faeka Ansari ([@fykaa](https://github.com/fykaa) / Slack: `@Fyka Ansari`), Mengjiao Liu ([@mengjiao-liu](https://github.com/mengjiao-liu) / Slack: `@Mengjiao Liu`), Rashan Smith ([@rashansmith](https://github.com/rashansmith) / Slack: `@Rashan`), Sri Harshadithya muddapu ([@Muddapu](https://github.com/Muddapu) / Slack: `@Harsha`)| +| Communications | Carol Valencia ([@krol3](https://github.com/krol3) / Slack: `@krol`) | Abigail McCarthy ([@Abbie](https://github.com/Abbie) / Slack: `@Abbie`), Hosam Kamel ([@hkamel](https://github.com/hkamel) / Slack: `@hkamel`), James Quigley ([@James-Quigley](https://github.com/James-Quigley) / Slack: `@James Quigley`), Kristin Martin ([@kcmartin](https://github.com/kcmartin) / Slack: `@kcmartin`)| +| Bug Triage | Yigit Demirbas ([@hailkomputer](https://github.com/hailkomputer) / Slack: `@Yigit Demirbas`) | Anhelina Zelyk ([@zelenushechka](https://github.com/zelenushechka) / Slack: `@Anhelina`), Brad McCoy ([@bradmccoydev](https://github.com/bradmccoydev) / Slack: `@Brad McCoy`), Maryam Tavakkoli ([@MaryamTavakkoli](https://github.com/MaryamTavakkoli) / Slack: `@Maryam Tavakkoli`), Mofi Rahman ([@moficodes](https://github.com/moficodes) / Slack: `@Mofi`) | +| CI Signal | Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav` ) | John Anderson ([@sontek](https://github.com/sontek) / Slack: `@sontek`), Mansi Kulkarni ([@mansikulkarni96](https://github.com/mansikulkarni96) / Slack: `@Mansi Kulkarni`), Paco Xu ([@pacoxu](https://github.com/pacoxu/) / Slack: `@pacoxu`), Reeta Singh ([@reetasingh](https://github.com/reetasingh) / Slack: `@reetas`), Ricky Sadowski ([@rjsadow](https://github.com/rjsadow) / Slack: `@Ricky Sadowski`) | +| Docs | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@Kat Cosgrove`) | Drew Hagen ([@drewhagen](https://github.com/drewhagen) / Slack: `@Drew Hagen`), Harshita Sao ([@harshitasao](https://github.com/harshitasao) / Slack: `@Harshita Sao`), Oluebube Princess Egbuna (@[Princesso](https://github.com/Princesso) / Slack: `@Bube`), Tania Duggal ([@taniaduggal](https://github.com/taniaduggal) / Slack: `@taniaduggal`)| +| Branch Manager | Jim Angel ([@jimangel](https://github.com/jimangel) / Slack: `@jimangel`)| Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@marosset`) | + +Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.29, once the 1.29 release cycle concludes. diff --git a/releases/release-1.3/README.md b/releases/release-1.3/README.md index 8bbba28aacc..35473810754 100644 --- a/releases/release-1.3/README.md +++ b/releases/release-1.3/README.md @@ -1,80 +1,80 @@ -_(approved; last update 5/19)_ - -#Learnings from 1.2 -The k8s 1.2 release was laid out approximately as: -- 8w of coding, then declare "feature complete" (no major features or refactors allowed after here) -- 2w of bug fixes and testing, then release last Alpha (head in code slush these two weeks) -- 2w of bug fixes and testing, then declare Beta, release and branch (head in code slush these two weeks) -- 2w of bug fixes and docs work post Beta, then release 1.2 Final - -None of these dates were considered "hard dates", but more of a guideline towards a 3 month release cycle. - -In reality, many features were not finished in time for the feature complete date, which slipped about 2w (and even then still had some features finishing up after). The branch/beta date ended up slipping 2w in line. The final release ended up slipping 1.5w, so was brought in by a couple of days. We ended up slipping many docs updates past the binary release. - -In 1.3, we should probably make a few adjustments: -- check back on 1.3 blocking feature status more often (and get help from others as needed) -- minimize the list of 1.3 blocking features (nail those, and ship 1.3 with them + whatever else is done, but don't hold the release for anything not deemed blocking) -- add a week to feature coding at the expense of one bugfix week (as we continue to improve testing and stay on top of test flakes during the milestone, this should be ok) - -#Proposed timeline -Kubernetes 1.2 shipped mid-March, so to maintain our 3m minor revision trend, we should aim for 1.3 in mid to late June. - -That would look like: -- 9w of coding, then declare "feature complete" (no major features or refactors allowed after here) -- 1w of bug fixes and testing, then release last Alpha (head in code slush this week) -- 2w of bug fixes and testing, then declare Beta, release and branch (head in code slush these two weeks) -- 2w of bug fixes and docs work post Beta, then release 1.3 Final - -###Mar 21 - Mar 25 -- Feature coding week 1 - -###Mar 28 - Apr 1 -- Feature coding week 2 - -###Apr 4 - Apr 8 -- Feature coding week 3 -- check in on status all 1.3 blocking features in Community Meeting - -###Apr 11 - Apr 15 -- Feature coding week 4 - -###Apr 18 - Apr 22 -- Feature coding week 5 - -###Apr 25 - Apr 29 -- Feature coding week 6 -- check in on status all 1.3 blocking features in Community Meeting, get help for some if needed - -###May 2 - May 6 -- Feature coding week 7 - -###May 9 - May 13 -- Feature coding week 8 -- check in on status all 1.3 blocking features in Community Meeting, get help for some if needed - -###May 16 - May 20 -- Feature coding week 9 -- Feature Complete due end of day May 20 (slipped by one business day to May 23) - -###May 23 - May 27 -- Feature Complete due end of day May 23 -- Bugfix week 1 -- enter code slush -- cut final Alpha end of week - -###May 30 - Jun 3 -- Bugfix week 2 -- US holiday on Mon May 30 - -###Jun 6 - Jun 10 -- Bugfix week 3 -- branch, cut Beta end of week, remove code slush on head - -###Jun 13 - Jun 17 -- Bugfix week 4 - -###Jun 20 - Jun 24 -- release 1.3 Final - -#Key features -[Feature tracking spreadsheet](https://docs.google.com/spreadsheets/d/1rrt179VjClAfMYnh8NwC_RLJbdI5j6zcVkW1z14vPR0) +_(approved; last update 5/19)_ + +#Learnings from 1.2 +The k8s 1.2 release was laid out approximately as: +- 8w of coding, then declare "feature complete" (no major features or refactors allowed after here) +- 2w of bug fixes and testing, then release last Alpha (head in code slush these two weeks) +- 2w of bug fixes and testing, then declare Beta, release and branch (head in code slush these two weeks) +- 2w of bug fixes and docs work post Beta, then release 1.2 Final + +None of these dates were considered "hard dates", but more of a guideline towards a 3 month release cycle. + +In reality, many features were not finished in time for the feature complete date, which slipped about 2w (and even then still had some features finishing up after). The branch/beta date ended up slipping 2w in line. The final release ended up slipping 1.5w, so was brought in by a couple of days. We ended up slipping many docs updates past the binary release. + +In 1.3, we should probably make a few adjustments: +- check back on 1.3 blocking feature status more often (and get help from others as needed) +- minimize the list of 1.3 blocking features (nail those, and ship 1.3 with them + whatever else is done, but don't hold the release for anything not deemed blocking) +- add a week to feature coding at the expense of one bugfix week (as we continue to improve testing and stay on top of test flakes during the milestone, this should be ok) + +#Proposed timeline +Kubernetes 1.2 shipped mid-March, so to maintain our 3m minor revision trend, we should aim for 1.3 in mid to late June. + +That would look like: +- 9w of coding, then declare "feature complete" (no major features or refactors allowed after here) +- 1w of bug fixes and testing, then release last Alpha (head in code slush this week) +- 2w of bug fixes and testing, then declare Beta, release and branch (head in code slush these two weeks) +- 2w of bug fixes and docs work post Beta, then release 1.3 Final + +###Mar 21 - Mar 25 +- Feature coding week 1 + +###Mar 28 - Apr 1 +- Feature coding week 2 + +###Apr 4 - Apr 8 +- Feature coding week 3 +- check in on status all 1.3 blocking features in Community Meeting + +###Apr 11 - Apr 15 +- Feature coding week 4 + +###Apr 18 - Apr 22 +- Feature coding week 5 + +###Apr 25 - Apr 29 +- Feature coding week 6 +- check in on status all 1.3 blocking features in Community Meeting, get help for some if needed + +###May 2 - May 6 +- Feature coding week 7 + +###May 9 - May 13 +- Feature coding week 8 +- check in on status all 1.3 blocking features in Community Meeting, get help for some if needed + +###May 16 - May 20 +- Feature coding week 9 +- Feature Complete due end of day May 20 (slipped by one business day to May 23) + +###May 23 - May 27 +- Feature Complete due end of day May 23 +- Bugfix week 1 +- enter code slush +- cut final Alpha end of week + +###May 30 - Jun 3 +- Bugfix week 2 +- US holiday on Mon May 30 + +###Jun 6 - Jun 10 +- Bugfix week 3 +- branch, cut Beta end of week, remove code slush on head + +###Jun 13 - Jun 17 +- Bugfix week 4 + +###Jun 20 - Jun 24 +- release 1.3 Final + +#Key features +[Feature tracking spreadsheet](https://docs.google.com/spreadsheets/d/1rrt179VjClAfMYnh8NwC_RLJbdI5j6zcVkW1z14vPR0) diff --git a/releases/release-1.3/features-1.3.md b/releases/release-1.3/features-1.3.md index 5d680fbec44..ced7e520d3c 100644 --- a/releases/release-1.3/features-1.3.md +++ b/releases/release-1.3/features-1.3.md @@ -1,153 +1,153 @@ -| **Item** | Cluster Federation | -| ------ | ------ | -| **Stage** | Alpha | -| **Status** | In Progress | -| **SIG** | ControlPlane | -| **Issue/PR links** | https://github.com/kubernetes/kubernetes/labels/area%2Fcluster-federation | -| **Dev Lead** | https://github.com/quinton-hoole | -| **Assignee** | https://github.com/nikhiljindal | -| **Entity** | Google | -| **Docs** | In Progress | - -| **Item** | Devicemapper container fs usage | -| ------ | ------ | -| **Stage** | Stable (CAdvisor) | -| **Status** | Merged | -| **SIG** | Node | -| **Issue/PR Links** | https://github.com/google/cadvisor/pull/1204 | -| **Dev Lead** | https://github.com/pmorie | -| **Assignee** | https://github.com/vishh | -| **Entity** | Red Hat | -| **Docs** | | - -| **Item** | Init Containers | -| ------ | ------ | -| **Stage** | Alpha | -| **Status** | Merged | -| **SIG** | Node | -| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/pull/23666 | -| **Dev Lead** | https://github.com/smarterclayton | -| **Assignee** | https://github.com/dchen1107 | -| **Entity** | Red Hat | -| **Docs** | Waiting for LGTM | - -| **Item** | Master Metrics API | -| ------ | ------ | -| **Stage** | Stable | -| **Status** | Merged | -| **SIG** | ControlPlane | -| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/issues/23376 | -| **Dev Lead** | https://github.com/piosz | -| **Assignee** | https://github.com/piosz | -| **Entity** | piosz | -| **Docs** | N/A | - -| **Item** | Node Out-of-memory handling | -| ------ | ------ | -| **Stage** | Stable | -| **Status** | Merged | -| **SIG** | Node | -| **Issue/PR Links** | | -| **Dev Lead** | dchen1107 | -| **Assignee** | derekwaynecarr | -| **Entity** | Google / Red Hat | -| **Docs** | Done | - -| **Item** | OIDC client AuthProvider | -| ------ | ------ | -| **Stage** | Alpha | -| **Status** | Merged | -| **SIG** | Auth | -| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/pull/25270 | -| **Dev Lead** | https://github.com/bobbyrullo | -| **Assignee** | https://github.com/yifan-gu | -| **Entity** | CoreOS | -| **Docs** | N/A | - -| **Item** | OpenStack provider | -| ------ | ------ | -| **Stage** | Stable | -| **Status** | Merged | -| **SIG** | ControlPlane | -| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/pull/21737 | -| **Dev Lead** | https://github.com/zreigz | -| **Assignee** | https://github.com/quinton-hoole | -| **Entity** | quinton-hoole | -| **Docs** | Done | - -| **Item** | Problem API | -| ------ | ------ | -| **Stage** | Beta (Kubernetes addon) | -| **Status** | In Progress | -| **SIG** | Node | -| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/issues/23028 | -| **Dev Lead** | https://github.com/ | -| **Assignee** | https://github.com/ | -| **Entity** | Google | -| **Docs** | In Progress | - -| **Item** | Reapers (Cascading Deletion) | -| ------ | ------ | -| **Stage** | Alpha | -| **Status** | Merged | -| **SIG** | API | -| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/pull/23656 | -| **Dev Lead** | https://github.com/caesarxuchao | -| **Assignee** | https://github.com/lavalamp | -| **Entity** | Google | -| **Docs** | Not Started | - -| **Item** | Rktnetes 1.0 | -| ------ | ------ | -| **Stage** | Stable | -| **Status** | Merged | -| **SIG** | Node | -| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/issues?q=milestone%3Arktnetes-v1.0 | -| **Dev Lead** | https://github.com/yifan-gu | -| **Assignee** | https://github.com/yifan-gu | -| **Entity** | CoreOS | -| **Docs** | In Progress | - -| **Item** | Role-base access control | -| ------ | ------ | -| **Stage** | Alpha | -| **Status** | In Progress | -| **SIG** | Auth | -| **Issue/PR links** | https://github.com/kubernetes/kubernetes/issues/23396 | -| **Dev Lead** | https://github.com/ericchiang | -| **Assignee** | https://github.com/erictune | -| **Entity** | CoreOS / RedHat | -| **Docs** | Waiting for LGTM | - -| **Item** | Self-hosted Kubelet | -| ------ | ------ | -| **Stage** | Alpha | -| **Status** | Merged | -| **SIG** | Node | -| **Issue/PR links** | https://github.com/kubernetes/kubernetes/pull/23343 | -| **Dev Lead** | https://github.com/aaronlevy | -| **Assignee** | https://github.com/vishh | -| **Entity** | CoreOS | -| **Docs** | N/A | - -| **Item** | Single-node DevCluster | -| ------ | ------ | -| **Stage** | Alpha (Pre-release v0.3.0 - Minikube) | -| **Status** | In Progress | -| **SIG** | Minikube | -| **Issue/PR links** | https://github.com/kubernetes/minikube | -| **Dev Lead** | https://github.com/dlorenc | -| **Assignee** | https://github.com/dlorenc | -| **Entity** | Google / CoreOS | -| **Docs** | https://github.com/kubernetes/minikube | - -| **Item** | Stateful services (PetSet) | -| ------ | ------ | -| **Stage** | Alpha | -| **Status** | In Progress | -| **SIG** | Cluster | -| **Issue/PR links** | https://github.com/kubernetes/kubernetes/pull/18016 | -| **Dev Lead** | https://github.com/smarterclayton | -| **Assignee** | https://github.com/thockin | -| **Entity** | Red Hat / Google | -| **Docs** | Not started | +| **Item** | Cluster Federation | +| ------ | ------ | +| **Stage** | Alpha | +| **Status** | In Progress | +| **SIG** | ControlPlane | +| **Issue/PR links** | https://github.com/kubernetes/kubernetes/labels/area%2Fcluster-federation | +| **Dev Lead** | https://github.com/quinton-hoole | +| **Assignee** | https://github.com/nikhiljindal | +| **Entity** | Google | +| **Docs** | In Progress | + +| **Item** | Devicemapper container fs usage | +| ------ | ------ | +| **Stage** | Stable (CAdvisor) | +| **Status** | Merged | +| **SIG** | Node | +| **Issue/PR Links** | https://github.com/google/cadvisor/pull/1204 | +| **Dev Lead** | https://github.com/pmorie | +| **Assignee** | https://github.com/vishh | +| **Entity** | Red Hat | +| **Docs** | | + +| **Item** | Init Containers | +| ------ | ------ | +| **Stage** | Alpha | +| **Status** | Merged | +| **SIG** | Node | +| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/pull/23666 | +| **Dev Lead** | https://github.com/smarterclayton | +| **Assignee** | https://github.com/dchen1107 | +| **Entity** | Red Hat | +| **Docs** | Waiting for LGTM | + +| **Item** | Master Metrics API | +| ------ | ------ | +| **Stage** | Stable | +| **Status** | Merged | +| **SIG** | ControlPlane | +| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/issues/23376 | +| **Dev Lead** | https://github.com/piosz | +| **Assignee** | https://github.com/piosz | +| **Entity** | piosz | +| **Docs** | N/A | + +| **Item** | Node Out-of-memory handling | +| ------ | ------ | +| **Stage** | Stable | +| **Status** | Merged | +| **SIG** | Node | +| **Issue/PR Links** | | +| **Dev Lead** | dchen1107 | +| **Assignee** | derekwaynecarr | +| **Entity** | Google / Red Hat | +| **Docs** | Done | + +| **Item** | OIDC client AuthProvider | +| ------ | ------ | +| **Stage** | Alpha | +| **Status** | Merged | +| **SIG** | Auth | +| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/pull/25270 | +| **Dev Lead** | https://github.com/bobbyrullo | +| **Assignee** | https://github.com/yifan-gu | +| **Entity** | CoreOS | +| **Docs** | N/A | + +| **Item** | OpenStack provider | +| ------ | ------ | +| **Stage** | Stable | +| **Status** | Merged | +| **SIG** | ControlPlane | +| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/pull/21737 | +| **Dev Lead** | https://github.com/zreigz | +| **Assignee** | https://github.com/quinton-hoole | +| **Entity** | quinton-hoole | +| **Docs** | Done | + +| **Item** | Problem API | +| ------ | ------ | +| **Stage** | Beta (Kubernetes addon) | +| **Status** | In Progress | +| **SIG** | Node | +| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/issues/23028 | +| **Dev Lead** | https://github.com/ | +| **Assignee** | https://github.com/ | +| **Entity** | Google | +| **Docs** | In Progress | + +| **Item** | Reapers (Cascading Deletion) | +| ------ | ------ | +| **Stage** | Alpha | +| **Status** | Merged | +| **SIG** | API | +| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/pull/23656 | +| **Dev Lead** | https://github.com/caesarxuchao | +| **Assignee** | https://github.com/lavalamp | +| **Entity** | Google | +| **Docs** | Not Started | + +| **Item** | Rktnetes 1.0 | +| ------ | ------ | +| **Stage** | Stable | +| **Status** | Merged | +| **SIG** | Node | +| **Issue/PR Links** | https://github.com/kubernetes/kubernetes/issues?q=milestone%3Arktnetes-v1.0 | +| **Dev Lead** | https://github.com/yifan-gu | +| **Assignee** | https://github.com/yifan-gu | +| **Entity** | CoreOS | +| **Docs** | In Progress | + +| **Item** | Role-base access control | +| ------ | ------ | +| **Stage** | Alpha | +| **Status** | In Progress | +| **SIG** | Auth | +| **Issue/PR links** | https://github.com/kubernetes/kubernetes/issues/23396 | +| **Dev Lead** | https://github.com/ericchiang | +| **Assignee** | https://github.com/erictune | +| **Entity** | CoreOS / RedHat | +| **Docs** | Waiting for LGTM | + +| **Item** | Self-hosted Kubelet | +| ------ | ------ | +| **Stage** | Alpha | +| **Status** | Merged | +| **SIG** | Node | +| **Issue/PR links** | https://github.com/kubernetes/kubernetes/pull/23343 | +| **Dev Lead** | https://github.com/aaronlevy | +| **Assignee** | https://github.com/vishh | +| **Entity** | CoreOS | +| **Docs** | N/A | + +| **Item** | Single-node DevCluster | +| ------ | ------ | +| **Stage** | Alpha (Pre-release v0.3.0 - Minikube) | +| **Status** | In Progress | +| **SIG** | Minikube | +| **Issue/PR links** | https://github.com/kubernetes/minikube | +| **Dev Lead** | https://github.com/dlorenc | +| **Assignee** | https://github.com/dlorenc | +| **Entity** | Google / CoreOS | +| **Docs** | https://github.com/kubernetes/minikube | + +| **Item** | Stateful services (PetSet) | +| ------ | ------ | +| **Stage** | Alpha | +| **Status** | In Progress | +| **SIG** | Cluster | +| **Issue/PR links** | https://github.com/kubernetes/kubernetes/pull/18016 | +| **Dev Lead** | https://github.com/smarterclayton | +| **Assignee** | https://github.com/thockin | +| **Entity** | Red Hat / Google | +| **Docs** | Not started | diff --git a/releases/release-1.3/features.csv b/releases/release-1.3/features.csv index 6fd72343272..752bc00ef79 100644 --- a/releases/release-1.3/features.csv +++ b/releases/release-1.3/features.csv @@ -1,15 +1,15 @@ -Item,Stage,Status,SIG,Proposal link,Dev Lead,Assignee,Entity,Docs,Docs ETA,PRs -Cluster Federation,Alpha,In Progress,ControlPlane,https://github.com/kubernetes/kubernetes/labels/area%2Fcluster-federation,quinton-hhole,nikhiljindal,Google,In Progress,, -Devicemapper container fs usage,Stable,Merged,Node,https://github.com/google/cadvisor/pull/1204,pmorie,vishh,Red Hat,N/A,-,- -Init Containers,Alpha,Merged,Node,https://github.com/kubernetes/kubernetes/pull/23666,clayton,dchen1107,Red Hat,Done,,https://github.com/kubernetes/kubernetes.github.io/pull/679 -Master Metrics API,Stable,Merged,ControlPlane,https://github.com/kubernetes/kubernetes/issues/23376,piosz,piosz,Google,N/A,-,- -Node Out-of-memory handling,Stable,Merged,Node,https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/kubelet-eviction.md,dchen1107 ,derekwaynecarr,Google / Red Hat,In Progress,, -OIDC client AuthProvider,Alpha,Merged,Auth,https://github.com/kubernetes/kubernetes/pull/25270,bobbyrullo,erictune,CoreOS,N/A,-,- -OpenStack provider,Stable,Merged,ControlPlane,https://github.com/kubernetes/kubernetes/pull/21737,zreigz ,quinton-hoole,Fujitsu,Done,, -Problem API,Beta,Merged,Node,https://github.com/kubernetes/kubernetes/issues/23028,dchen1107 ,Random-Liu,Google,Done,,https://github.com/kubernetes/kubernetes.github.io/pull/702 -Reapers (Cascading Deletion),Alpha,Merged,API ,https://github.com/kubernetes/kubernetes/pull/23656,caesarxuchao,lavalamp,Google,Done,6/23,https://github.com/kubernetes/kubernetes.github.io/pull/686 -Rktnetes 1.0,Stable,Merged,Node,https://github.com/kubernetes/kubernetes/issues?q=milestone%3Arktnetes-v1.0,yifan-gu,yifan-gu,CoreOS,Done,, -Role-base access control,Alpha,Merged,Auth,https://github.com/kubernetes/kubernetes/issues/23396,ericchiang,erictune,CoreOS / RedHat,Waiting for LGTM,, -Self-hosted Kubelet ,Alpha,Merged,Node,https://github.com/kubernetes/kubernetes/pull/23343,aaronlevy,vishh,CoreOS,N/A,-,- -Single-node DevCluster,Alpha,In Progress,Node,https://github.com/kubernetes/minikube,vishh,bgrant0607,Google,Done,6/22,- +Item,Stage,Status,SIG,Proposal link,Dev Lead,Assignee,Entity,Docs,Docs ETA,PRs +Cluster Federation,Alpha,In Progress,ControlPlane,https://github.com/kubernetes/kubernetes/labels/area%2Fcluster-federation,quinton-hhole,nikhiljindal,Google,In Progress,, +Devicemapper container fs usage,Stable,Merged,Node,https://github.com/google/cadvisor/pull/1204,pmorie,vishh,Red Hat,N/A,-,- +Init Containers,Alpha,Merged,Node,https://github.com/kubernetes/kubernetes/pull/23666,clayton,dchen1107,Red Hat,Done,,https://github.com/kubernetes/kubernetes.github.io/pull/679 +Master Metrics API,Stable,Merged,ControlPlane,https://github.com/kubernetes/kubernetes/issues/23376,piosz,piosz,Google,N/A,-,- +Node Out-of-memory handling,Stable,Merged,Node,https://github.com/kubernetes/kubernetes/blob/master/docs/proposals/kubelet-eviction.md,dchen1107 ,derekwaynecarr,Google / Red Hat,In Progress,, +OIDC client AuthProvider,Alpha,Merged,Auth,https://github.com/kubernetes/kubernetes/pull/25270,bobbyrullo,erictune,CoreOS,N/A,-,- +OpenStack provider,Stable,Merged,ControlPlane,https://github.com/kubernetes/kubernetes/pull/21737,zreigz ,quinton-hoole,Fujitsu,Done,, +Problem API,Beta,Merged,Node,https://github.com/kubernetes/kubernetes/issues/23028,dchen1107 ,Random-Liu,Google,Done,,https://github.com/kubernetes/kubernetes.github.io/pull/702 +Reapers (Cascading Deletion),Alpha,Merged,API ,https://github.com/kubernetes/kubernetes/pull/23656,caesarxuchao,lavalamp,Google,Done,6/23,https://github.com/kubernetes/kubernetes.github.io/pull/686 +Rktnetes 1.0,Stable,Merged,Node,https://github.com/kubernetes/kubernetes/issues?q=milestone%3Arktnetes-v1.0,yifan-gu,yifan-gu,CoreOS,Done,, +Role-base access control,Alpha,Merged,Auth,https://github.com/kubernetes/kubernetes/issues/23396,ericchiang,erictune,CoreOS / RedHat,Waiting for LGTM,, +Self-hosted Kubelet ,Alpha,Merged,Node,https://github.com/kubernetes/kubernetes/pull/23343,aaronlevy,vishh,CoreOS,N/A,-,- +Single-node DevCluster,Alpha,In Progress,Node,https://github.com/kubernetes/minikube,vishh,bgrant0607,Google,Done,6/22,- Stateful services (PetSet),Alpha,Merged,Cluster,https://github.com/kubernetes/kubernetes/pull/18016,smarterclayton,thockin,Red Hat / Google,In Progress,6/20,https://github.com/kubernetes/kubernetes.github.io/pull/698/ \ No newline at end of file diff --git a/releases/release-1.3/release-1.3.md b/releases/release-1.3/release-1.3.md index 7e6af0b897d..d803ddd0e25 100644 --- a/releases/release-1.3/release-1.3.md +++ b/releases/release-1.3/release-1.3.md @@ -1 +1 @@ -Please see [README.md](README.md) instead +Please see [README.md](README.md) instead diff --git a/releases/release-1.30/README.md b/releases/release-1.30/README.md index bc16603ae6b..6e07fc2253c 100644 --- a/releases/release-1.30/README.md +++ b/releases/release-1.30/README.md @@ -1,92 +1,92 @@ ---- -title: "Kubernetes 1.30 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.30 - - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.30/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.30/release-team.md) -* [Meeting Minutes](https://bit.ly/k8s130-releasemtg) (members of [release-team@] receive meeting invites) -* [v1.30 Release Calendar](https://bit.ly/k8s-release-cal) -* Contact: [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail -* [Internal Contact Info](https://docs.google.com/spreadsheets/d/1wiuNeO7eWGR3uTwQwmWby405eULyHgn8zNBRE7pJdjA/edit#gid=0) (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Board](https://bit.ly/k8s130-enhancements) -* [Feature blog Tracking Board](https://github.com/orgs/kubernetes/projects/161/views/4) -* [Bug Triage Tracking Board](https://bit.ly/k8s130-bug-triage-tracking) -* [CI Signal Project Board & Issue Tracking](https://github.com/orgs/kubernetes/projects/68) -* [Retrospective Document](https://bit.ly/k8s130-retro) -* [kubernetes/sig-release v1.30 milestone](https://github.com/kubernetes/website/milestone/87) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## Summary - -The 1.30 release cycle is as follows: - -- **Monday 8th January 2024**: Week 1 — Release cycle begins -- **Thursday 1st February 2024**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) -- **[02:00 UTC Friday 9th February 2024 / 18:00 PDT Thursday 8th February 2024](https://everytimezone.com/s/1ade3dca)**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **[02:00 UTC Wednesday 6th March 2024 / 18:00 PDT Tuesday 5th March 2024](https://everytimezone.com/s/24b27b03)**: Week 9 — [Code Freeze](../release_phases.md#code-freeze) -- **Tuesday 19th - Friday 22nd March 2024**: Week 11 - [KubeCon EU](https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/) -- **[01:00 UTC Wednesday 20th March 2024 / 18:00 PDT Tuesday 19th March 2024](https://everytimezone.com/s/b708fa7a)**: Week 11 — [Test Freeze](../release_phases.md#test-freeze) -- **Tuesday 26th March 2024**: Week 12 — [Docs Freeze](../release_phases.md#docs-freeze) -- **Wednesday 17th April 2024**: Week 15 — Kubernetes v1.30.0 released - -## Timeline - -| **What** | **Who** | **When** | **Week** | **CI Signal** | -|----------------------------------------------------------------------------------------|-------------------------------|-----------------------------------------------------------------------------------------------------------------------|----------|--------------------------------------------------------| -| Start of Release Cycle | Lead | Monday 8th January 2024 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Monday 8th January 2024 | week 1 | | -| Schedule finalized | Lead | Friday 12th January 2024 | week 1 | | -| Team finalized | Lead | Friday 12th January 2024 | week 1 | | -| Start Release Notes Draft | Release Notes Lead | Tuesday 23th January 2024 | week 3 | | -| 1.30.0-alpha.1 released | Branch Manager | Tuesday 30th January 2024 | Week 4 | | -| Production Readiness Freeze | Enhancements Lead | Thursday 01st February 2024 | week 4 | | -| **Begin [Enhancements Freeze]** | Enhancements Lead | [02:00 UTC Friday 9th February 2024 / 18:00 PDT Thursday 8th February 2024](https://everytimezone.com/s/94c1e78b) | week 5 | [master-blocking], [master-informing] | -| 1.30.0-alpha.2 released | Branch Manager | Tuesday 13th February 2024 | Week 6 | | -| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 22nd February 2024 | week 7 | | -| Begin Friday APAC-friendly meetings | Lead | Friday 23rd February 2024 | Week 7 | | -| **Call for [Exceptions][Exception]** | Lead | Monday 26th February 2024 | week 8 | | -| Brace Yourself, Code Freeze is Coming | Comms / Release Signal | Monday 26th February 2024 | week 8 | | -| 1.30.0-alpha.3 released | Branch Manager | Tuesday 27th February 2024 | Week 8 | | -| **Begin Feature blog freeze** | Comms Lead | [02:00 UTC Wednesday 27th February 2024 / 18:00 PDT Tuesday 26th February 2024](https://everytimezone.com/s/b23acb87) | week 8 | | -| **Begin [Code Freeze]** | Branch Manager | [02:00 UTC Wednesday 6th March 2024 / 18:00 PDT Tuesday 5th March 2024](https://everytimezone.com/s/5056bace) | week 9 | | -| Deprecations and Removals blog published | Comms | Thursday 7th March 2024 | week 9 | | -| **Preparing for Feature blogs review — Initiating outreach** | Comms | Monday 11th March 2024 | week 10 | -| 1.30.0-beta.0 released | Branch Manager | Tuesday 12th March 2024 | week 10 | | -| Docs deadline — PRs ready for review | Docs Lead | Tuesday 12th March 2024 | Week 10 | | -| **KubeCon EU** | | Tuesday 19th - Friday 22nd March 2024 | week 11 | | -| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 18th March 2024 | week 11 | | -| Major Themes deadline | Comms | Tuesday 19th March 2024 | week 11 | | -| Start final draft of Release Notes | Release Notes Lead | Tuesday 19th March 2024 | week 11 | | -| Release blog ready to review | Comms / Docs | [01:00 UTC Wednesday 20th March 2024 / 18:00 PDT Tuesday 19th March 2024](https://everytimezone.com/s/e016958f) | week 11 | | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Friday 22nd March 2024 | week 11 | | -| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 25th March 2024 | Week 12 | | -| **[Test Freeze]** | Branch Manager | [01:00 UTC Wednesday 27th March 2024 / 18:00 PDT Tuesday 26th March 2024](https://everytimezone.com/s/e016958f) | week 12 | | -| release-1.30 branch created | Branch Manager | Tuesday 26th March 2024 | week 12 | | -| release-1.30 jobs created | Branch Manager | Tuesday 26th March 2024 | week 12 | | -| 1.30.0-rc.0 released | Branch Manager | Tuesday 26th March 2024 | week 12 | [1.30-blocking], [master-blocking], [master-informing] | -| **Docs Freeze** | Docs Lead | Tuesday 26th March 2024 | week 12 | | -| Major Themes complete | Release Notes Lead | Tuesday 2nd April 2024 | week 13 | | -| 1.30.0-rc.1 released | Branch Manager | Tuesday 2nd April 2024 | week 13 | | -| 1.30.0-rc.2 released | Branch Manager | Thursday 11th April 2024 | week 14 | [1.30-blocking], [master-blocking], [master-informing] | -| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Release Notes Lead | Wednesday 17th April 2024 | week 15 | | -| **v1.30.0 released** | Branch Manager | Wednesday 17th April 2024 | week 15 | | -| Release blog published | Comms | Wednesday 17th April 2024 | week 15 | | -| **[Thaw]** | Branch Manager | Wednesday 17th April 2024 | week 15 | | +--- +title: "Kubernetes 1.30 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.30 + + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.30/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.30/release-team.md) +* [Meeting Minutes](https://bit.ly/k8s130-releasemtg) (members of [release-team@] receive meeting invites) +* [v1.30 Release Calendar](https://bit.ly/k8s-release-cal) +* Contact: [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail +* [Internal Contact Info](https://docs.google.com/spreadsheets/d/1wiuNeO7eWGR3uTwQwmWby405eULyHgn8zNBRE7pJdjA/edit#gid=0) (accessible only to members of [release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Board](https://bit.ly/k8s130-enhancements) +* [Feature blog Tracking Board](https://github.com/orgs/kubernetes/projects/161/views/4) +* [Bug Triage Tracking Board](https://bit.ly/k8s130-bug-triage-tracking) +* [CI Signal Project Board & Issue Tracking](https://github.com/orgs/kubernetes/projects/68) +* [Retrospective Document](https://bit.ly/k8s130-retro) +* [kubernetes/sig-release v1.30 milestone](https://github.com/kubernetes/website/milestone/87) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## Summary + +The 1.30 release cycle is as follows: + +- **Monday 8th January 2024**: Week 1 — Release cycle begins +- **Thursday 1st February 2024**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) +- **[02:00 UTC Friday 9th February 2024 / 18:00 PDT Thursday 8th February 2024](https://everytimezone.com/s/1ade3dca)**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **[02:00 UTC Wednesday 6th March 2024 / 18:00 PDT Tuesday 5th March 2024](https://everytimezone.com/s/24b27b03)**: Week 9 — [Code Freeze](../release_phases.md#code-freeze) +- **Tuesday 19th - Friday 22nd March 2024**: Week 11 - [KubeCon EU](https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/) +- **[01:00 UTC Wednesday 20th March 2024 / 18:00 PDT Tuesday 19th March 2024](https://everytimezone.com/s/b708fa7a)**: Week 11 — [Test Freeze](../release_phases.md#test-freeze) +- **Tuesday 26th March 2024**: Week 12 — [Docs Freeze](../release_phases.md#docs-freeze) +- **Wednesday 17th April 2024**: Week 15 — Kubernetes v1.30.0 released + +## Timeline + +| **What** | **Who** | **When** | **Week** | **CI Signal** | +|----------------------------------------------------------------------------------------|-------------------------------|-----------------------------------------------------------------------------------------------------------------------|----------|--------------------------------------------------------| +| Start of Release Cycle | Lead | Monday 8th January 2024 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Monday 8th January 2024 | week 1 | | +| Schedule finalized | Lead | Friday 12th January 2024 | week 1 | | +| Team finalized | Lead | Friday 12th January 2024 | week 1 | | +| Start Release Notes Draft | Release Notes Lead | Tuesday 23th January 2024 | week 3 | | +| 1.30.0-alpha.1 released | Branch Manager | Tuesday 30th January 2024 | Week 4 | | +| Production Readiness Freeze | Enhancements Lead | Thursday 01st February 2024 | week 4 | | +| **Begin [Enhancements Freeze]** | Enhancements Lead | [02:00 UTC Friday 9th February 2024 / 18:00 PDT Thursday 8th February 2024](https://everytimezone.com/s/94c1e78b) | week 5 | [master-blocking], [master-informing] | +| 1.30.0-alpha.2 released | Branch Manager | Tuesday 13th February 2024 | Week 6 | | +| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 22nd February 2024 | week 7 | | +| Begin Friday APAC-friendly meetings | Lead | Friday 23rd February 2024 | Week 7 | | +| **Call for [Exceptions][Exception]** | Lead | Monday 26th February 2024 | week 8 | | +| Brace Yourself, Code Freeze is Coming | Comms / Release Signal | Monday 26th February 2024 | week 8 | | +| 1.30.0-alpha.3 released | Branch Manager | Tuesday 27th February 2024 | Week 8 | | +| **Begin Feature blog freeze** | Comms Lead | [02:00 UTC Wednesday 27th February 2024 / 18:00 PDT Tuesday 26th February 2024](https://everytimezone.com/s/b23acb87) | week 8 | | +| **Begin [Code Freeze]** | Branch Manager | [02:00 UTC Wednesday 6th March 2024 / 18:00 PDT Tuesday 5th March 2024](https://everytimezone.com/s/5056bace) | week 9 | | +| Deprecations and Removals blog published | Comms | Thursday 7th March 2024 | week 9 | | +| **Preparing for Feature blogs review — Initiating outreach** | Comms | Monday 11th March 2024 | week 10 | +| 1.30.0-beta.0 released | Branch Manager | Tuesday 12th March 2024 | week 10 | | +| Docs deadline — PRs ready for review | Docs Lead | Tuesday 12th March 2024 | Week 10 | | +| **KubeCon EU** | | Tuesday 19th - Friday 22nd March 2024 | week 11 | | +| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 18th March 2024 | week 11 | | +| Major Themes deadline | Comms | Tuesday 19th March 2024 | week 11 | | +| Start final draft of Release Notes | Release Notes Lead | Tuesday 19th March 2024 | week 11 | | +| Release blog ready to review | Comms / Docs | [01:00 UTC Wednesday 20th March 2024 / 18:00 PDT Tuesday 19th March 2024](https://everytimezone.com/s/e016958f) | week 11 | | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Friday 22nd March 2024 | week 11 | | +| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 25th March 2024 | Week 12 | | +| **[Test Freeze]** | Branch Manager | [01:00 UTC Wednesday 27th March 2024 / 18:00 PDT Tuesday 26th March 2024](https://everytimezone.com/s/e016958f) | week 12 | | +| release-1.30 branch created | Branch Manager | Tuesday 26th March 2024 | week 12 | | +| release-1.30 jobs created | Branch Manager | Tuesday 26th March 2024 | week 12 | | +| 1.30.0-rc.0 released | Branch Manager | Tuesday 26th March 2024 | week 12 | [1.30-blocking], [master-blocking], [master-informing] | +| **Docs Freeze** | Docs Lead | Tuesday 26th March 2024 | week 12 | | +| Major Themes complete | Release Notes Lead | Tuesday 2nd April 2024 | week 13 | | +| 1.30.0-rc.1 released | Branch Manager | Tuesday 2nd April 2024 | week 13 | | +| 1.30.0-rc.2 released | Branch Manager | Thursday 11th April 2024 | week 14 | [1.30-blocking], [master-blocking], [master-informing] | +| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Release Notes Lead | Wednesday 17th April 2024 | week 15 | | +| **v1.30.0 released** | Branch Manager | Wednesday 17th April 2024 | week 15 | | +| Release blog published | Comms | Wednesday 17th April 2024 | week 15 | | +| **[Thaw]** | Branch Manager | Wednesday 17th April 2024 | week 15 | | diff --git a/releases/release-1.30/exceptions.yaml b/releases/release-1.30/exceptions.yaml index 5cf195d6b58..a09eae3f13f 100644 --- a/releases/release-1.30/exceptions.yaml +++ b/releases/release-1.30/exceptions.yaml @@ -1,151 +1,151 @@ -# Exception requests in 1.30 -# Google Group: https://groups.google.com/g/kubernetes-sig-release -# Release Team Lead: Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove)) -# Release Team Shadows : Frederico Muñoz ([@fsmunoz](https://github.com/fsmunoz)) -# / Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos)) -# / Rodolfo Martinez Vega ([@ramrodo](https://github.com/ramrodo)) -# / Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07)) - -# Enhancements Freeze Exceptions requested in 1.30 - -enhancementFreeze: - -- name: "A Static Policy Option to spread hyperthreads across physical CPUs" - issue: 4176 - date_requested: 2024-02-09 - date_reviewed: 2024-02-09 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/-HDkmBYCKD4" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/4177" - status: "approved" - -- name: "ClusterTrustBundles (previously Trust Anchor Sets)" - issue: 3257 - date_requested: 2024-02-09 - date_reviewed: 2024-02-09 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/VHJfrgYsy1c" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/4512" - status: "approved" - -- name: "CEL-based admission webhook match conditions" - issue: 3716 - date_requested: 2024-02-10 - date_reviewed: 2024-02-11 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/jMljzaNwuY4" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/4513" - status: "approved" - -- name: "Contextual logging" - issue: 3077 - date_requested: 2024-02-13 - date_reviewed: 2024-02-13 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/h0umhvLuH-E" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/4519" - status: "approved" - -- name: "client-go: Add informer metrics" - issue: 4346 - date_requested: 2024-02-09 - date_reviewed: 2024-02-12 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/kLlFRgSr5uY" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/4518" - status: "approved" - -- name: "Make Kubernetes aware of the LoadBalancer behaviour" - issue: 1860 - date_requested: 2024-02-19 - date_reviewed: 2024-02-20 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/QtG4XG5SPMM" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/4509" - status: "approved" - -# Code Freeze Exceptions requested in 1.30 -codeFreeze: - -- name: "Move Storage Version Migrator in-tree" - issue: 4192 - date_requested: 2024-02-29 - date_reviewed: 2024-03-05 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/1bqjH6lYlJc/m/C8JCnsx7AgAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/123344" - status: "approved" - -- name: "AppArmor support" - issue: 24 - date_requested: 2024-03-06 - date_reviewed: 2024-03-06 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/yphnn5acQRE/m/Jar4yEFsAgAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/123435" - status: "approved" - -- name: "DRA: structured parameters" - issue: 4381 - date_requested: 2024-03-06 - date_reviewed: 2024-03-06 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/J2zwqVdskYI/m/vWM3zP6HAgAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/123516" - status: "approved" - -- name: "Recursive Read-only (RRO) mounts" - issue: 3857 - date_requested: 2024-03-06 - date_reviewed: 2024-03-06 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/XrXHzMlyHWw/m/BB_AKYp9AgAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/123180" - status: "approved" - -- name: "Job success/completion policy" - issue: 3998 - date_requested: 2024-03-05 - date_reviewed: 2024-03-06 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/VE3aOaWK6pI/m/HprqZ_STBQAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/123412" - status: "approved" - -- name: "Structured authentication config" - issue: 3331 - date_requested: 2024-03-04 - date_reviewed: 2024-03-06 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/BdW7VFV5IpA/m/rop-hMlMBQAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/123431" - status: "approved" - -- name: "Container Resource based Pod Autoscaling" - issue: 1610 - date_requested: 2024-03-06 - date_reviewed: 2024-03-06 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/_58rHFLWtSc/m/4ZZQAYOwAgAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/123482" - status: "approved" - -- name: "Ensure secret pulled images" - issue: 2535 - date_requested: 2024-03-06 - date_reviewed: 2024-03-06 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/jrD06OyqiQ0/m/dGh_a6VuAgAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/114847" - status: "approved" - -- name: "add ProcMount option" - issue: 4265 - date_requested: 2024-03-06 - date_reviewed: 2024-03-07 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/rLCcv3Aoep0/m/5aeWHuqaAgAJ" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/123520" - status: "approved" - - +# Exception requests in 1.30 +# Google Group: https://groups.google.com/g/kubernetes-sig-release +# Release Team Lead: Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove)) +# Release Team Shadows : Frederico Muñoz ([@fsmunoz](https://github.com/fsmunoz)) +# / Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos)) +# / Rodolfo Martinez Vega ([@ramrodo](https://github.com/ramrodo)) +# / Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07)) + +# Enhancements Freeze Exceptions requested in 1.30 + +enhancementFreeze: + +- name: "A Static Policy Option to spread hyperthreads across physical CPUs" + issue: 4176 + date_requested: 2024-02-09 + date_reviewed: 2024-02-09 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/-HDkmBYCKD4" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/4177" + status: "approved" + +- name: "ClusterTrustBundles (previously Trust Anchor Sets)" + issue: 3257 + date_requested: 2024-02-09 + date_reviewed: 2024-02-09 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/VHJfrgYsy1c" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/4512" + status: "approved" + +- name: "CEL-based admission webhook match conditions" + issue: 3716 + date_requested: 2024-02-10 + date_reviewed: 2024-02-11 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/jMljzaNwuY4" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/4513" + status: "approved" + +- name: "Contextual logging" + issue: 3077 + date_requested: 2024-02-13 + date_reviewed: 2024-02-13 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/h0umhvLuH-E" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/4519" + status: "approved" + +- name: "client-go: Add informer metrics" + issue: 4346 + date_requested: 2024-02-09 + date_reviewed: 2024-02-12 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/kLlFRgSr5uY" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/4518" + status: "approved" + +- name: "Make Kubernetes aware of the LoadBalancer behaviour" + issue: 1860 + date_requested: 2024-02-19 + date_reviewed: 2024-02-20 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/QtG4XG5SPMM" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/4509" + status: "approved" + +# Code Freeze Exceptions requested in 1.30 +codeFreeze: + +- name: "Move Storage Version Migrator in-tree" + issue: 4192 + date_requested: 2024-02-29 + date_reviewed: 2024-03-05 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/1bqjH6lYlJc/m/C8JCnsx7AgAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/123344" + status: "approved" + +- name: "AppArmor support" + issue: 24 + date_requested: 2024-03-06 + date_reviewed: 2024-03-06 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/yphnn5acQRE/m/Jar4yEFsAgAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/123435" + status: "approved" + +- name: "DRA: structured parameters" + issue: 4381 + date_requested: 2024-03-06 + date_reviewed: 2024-03-06 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/J2zwqVdskYI/m/vWM3zP6HAgAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/123516" + status: "approved" + +- name: "Recursive Read-only (RRO) mounts" + issue: 3857 + date_requested: 2024-03-06 + date_reviewed: 2024-03-06 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/XrXHzMlyHWw/m/BB_AKYp9AgAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/123180" + status: "approved" + +- name: "Job success/completion policy" + issue: 3998 + date_requested: 2024-03-05 + date_reviewed: 2024-03-06 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/VE3aOaWK6pI/m/HprqZ_STBQAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/123412" + status: "approved" + +- name: "Structured authentication config" + issue: 3331 + date_requested: 2024-03-04 + date_reviewed: 2024-03-06 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/BdW7VFV5IpA/m/rop-hMlMBQAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/123431" + status: "approved" + +- name: "Container Resource based Pod Autoscaling" + issue: 1610 + date_requested: 2024-03-06 + date_reviewed: 2024-03-06 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/_58rHFLWtSc/m/4ZZQAYOwAgAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/123482" + status: "approved" + +- name: "Ensure secret pulled images" + issue: 2535 + date_requested: 2024-03-06 + date_reviewed: 2024-03-06 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/jrD06OyqiQ0/m/dGh_a6VuAgAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/114847" + status: "approved" + +- name: "add ProcMount option" + issue: 4265 + date_requested: 2024-03-06 + date_reviewed: 2024-03-07 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/rLCcv3Aoep0/m/5aeWHuqaAgAJ" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/123520" + status: "approved" + + diff --git a/releases/release-1.30/release-notes/maps/pr-112957-map.yaml b/releases/release-1.30/release-notes/maps/pr-112957-map.yaml index 785912ff803..02775d1d0d9 100644 --- a/releases/release-1.30/release-notes/maps/pr-112957-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-112957-map.yaml @@ -1,5 +1,5 @@ -pr: 112957 -releasenote: - text: | - "kubelet allowed specifying a custom root directory for pod logs (instead of the default /var/log/pods) using the `podLogsDir` key in kubelet configuration." -pr_body: "" +pr: 112957 +releasenote: + text: | + "kubelet allowed specifying a custom root directory for pod logs (instead of the default /var/log/pods) using the `podLogsDir` key in kubelet configuration." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-114301-map.yaml b/releases/release-1.30/release-notes/maps/pr-114301-map.yaml index b40d7c306c6..5faae38dc5d 100644 --- a/releases/release-1.30/release-notes/maps/pr-114301-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-114301-map.yaml @@ -1,6 +1,6 @@ -pr: 114301 -releasenote: - text: Enabled concurrent log rotation in kubelet. You can now configure the maximum - number of concurrent rotations with the `containerLogMaxWorkers` setting, and - adjust the monitoring interval with `containerLogMonitorInterval`. -pr_body: "" +pr: 114301 +releasenote: + text: Enabled concurrent log rotation in kubelet. You can now configure the maximum + number of concurrent rotations with the `containerLogMaxWorkers` setting, and + adjust the monitoring interval with `containerLogMonitorInterval`. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-114672-map.yaml b/releases/release-1.30/release-notes/maps/pr-114672-map.yaml index a8c895739b7..4a690e604f6 100644 --- a/releases/release-1.30/release-notes/maps/pr-114672-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-114672-map.yaml @@ -1,7 +1,7 @@ -pr: 114672 -releasenote: - text: Text logging in Kubernetes components now uses [textlogger](https://pkg.go.dev/k8s.io/klog/v2@v2.120.0/textlogger). - The same split streams of info and error log entries with buffering of info entries - is now also supported for text output (off by default, alpha feature). Previously, - this was only supported for JSON. Performance is better also without split streams. -pr_body: "" +pr: 114672 +releasenote: + text: Text logging in Kubernetes components now uses [textlogger](https://pkg.go.dev/k8s.io/klog/v2@v2.120.0/textlogger). + The same split streams of info and error log entries with buffering of info entries + is now also supported for text output (off by default, alpha feature). Previously, + this was only supported for JSON. Performance is better also without split streams. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-115768-map.yaml b/releases/release-1.30/release-notes/maps/pr-115768-map.yaml index 278338ceb07..5f576ea183f 100644 --- a/releases/release-1.30/release-notes/maps/pr-115768-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-115768-map.yaml @@ -1,5 +1,5 @@ -pr: 115768 -releasenote: - text: | - "Implemented the `prescore` extension point for the `volumeBinding` plugin. It now returns skip if it doesn't do anything in Score." -pr_body: "" +pr: 115768 +releasenote: + text: | + "Implemented the `prescore` extension point for the `volumeBinding` plugin. It now returns skip if it doesn't do anything in Score." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-116209-map.yaml b/releases/release-1.30/release-notes/maps/pr-116209-map.yaml index 5ae3c108895..675ab18a9be 100644 --- a/releases/release-1.30/release-notes/maps/pr-116209-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-116209-map.yaml @@ -1,4 +1,4 @@ -pr: 116209 -releasenote: - text: Users are now allowed to mutate `FSGroupPolicy` and `PodInfoOnMount` in `CSIDriver.Spec`. -pr_body: "" +pr: 116209 +releasenote: + text: Users are now allowed to mutate `FSGroupPolicy` and `PodInfoOnMount` in `CSIDriver.Spec`. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-117024-map.yaml b/releases/release-1.30/release-notes/maps/pr-117024-map.yaml index ae2029071ce..443766f68b5 100644 --- a/releases/release-1.30/release-notes/maps/pr-117024-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-117024-map.yaml @@ -1,5 +1,5 @@ -pr: 117024 -releasenote: - text: | - "Scheduler now skips the `NodeAffinity Score` plugin when it has nothing to do with a Pod. You might have noticed an increase in the metric `plugin_execution_duration_seconds` for `extension_point=score` and `plugin=NodeAffinity`, because the plugin only runs when it's relevant." -pr_body: "" +pr: 117024 +releasenote: + text: | + "Scheduler now skips the `NodeAffinity Score` plugin when it has nothing to do with a Pod. You might have noticed an increase in the metric `plugin_execution_duration_seconds` for `extension_point=score` and `plugin=NodeAffinity`, because the plugin only runs when it's relevant." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-117046-map.yaml b/releases/release-1.30/release-notes/maps/pr-117046-map.yaml index 57b13e75355..ed131df76d1 100644 --- a/releases/release-1.30/release-notes/maps/pr-117046-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-117046-map.yaml @@ -1,5 +1,5 @@ -pr: 117046 -releasenote: - text: | - "Informers now supports adding Indexers after the informer starts." -pr_body: "" +pr: 117046 +releasenote: + text: | + "Informers now supports adding Indexers after the informer starts." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-119177-map.yaml b/releases/release-1.30/release-notes/maps/pr-119177-map.yaml index 2ce4a87b4ea..cb5da130991 100644 --- a/releases/release-1.30/release-notes/maps/pr-119177-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-119177-map.yaml @@ -1,6 +1,6 @@ -pr: 119177 -releasenote: - text: "kube-scheduler implemented scheduling hints for the `NodeResourceFit` plugin. - The scheduling hints allowed the scheduler to only retry scheduling a Pod that had - been previously rejected by the `NodeResourceFit` plugin if a new Node or a Node update - matched the Pod's resource requirements or if an old pod update or delete matched the Pod's resource requirements." +pr: 119177 +releasenote: + text: "kube-scheduler implemented scheduling hints for the `NodeResourceFit` plugin. + The scheduling hints allowed the scheduler to only retry scheduling a Pod that had + been previously rejected by the `NodeResourceFit` plugin if a new Node or a Node update + matched the Pod's resource requirements or if an old pod update or delete matched the Pod's resource requirements." diff --git a/releases/release-1.30/release-notes/maps/pr-119200-map.yaml b/releases/release-1.30/release-notes/maps/pr-119200-map.yaml index 679a4f82560..8be73734cbe 100644 --- a/releases/release-1.30/release-notes/maps/pr-119200-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-119200-map.yaml @@ -1,4 +1,4 @@ -pr: 119200 -releasenote: - text: kubectl debug now includes the sysadmin profile. -pr_body: "" +pr: 119200 +releasenote: + text: kubectl debug now includes the sysadmin profile. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-119779-map.yaml b/releases/release-1.30/release-notes/maps/pr-119779-map.yaml index 51e253f20eb..c90b138b94c 100644 --- a/releases/release-1.30/release-notes/maps/pr-119779-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-119779-map.yaml @@ -1,10 +1,10 @@ -pr: 119779 -releasenote: - text: When a PreFilterResult filters out certain Nodes, the scheduling framework - now categorizes them as rejected via `UnschedulableAndUnresolvable`. Consequently, - these nodes are excluded from the candidates for the preemption process. Additionally, - this update corrects how the scheduling framework handles the Unschedulable status - from PreFilter. Previously, if PreFilter returned `Unschedulable`, it could lead - to an unexpected abortion in the preemption process, which shouldn't occur in - the default scheduler but might occur in schedulers with custom plugins. -pr_body: "" +pr: 119779 +releasenote: + text: When a PreFilterResult filters out certain Nodes, the scheduling framework + now categorizes them as rejected via `UnschedulableAndUnresolvable`. Consequently, + these nodes are excluded from the candidates for the preemption process. Additionally, + this update corrects how the scheduling framework handles the Unschedulable status + from PreFilter. Previously, if PreFilter returned `Unschedulable`, it could lead + to an unexpected abortion in the preemption process, which shouldn't occur in + the default scheduler but might occur in schedulers with custom plugins. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-119923-map.yaml b/releases/release-1.30/release-notes/maps/pr-119923-map.yaml index c894024de8e..cfb79d3228f 100644 --- a/releases/release-1.30/release-notes/maps/pr-119923-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-119923-map.yaml @@ -1,5 +1,5 @@ -pr: 119923 -releasenote: - text: | - "Fixed an issue where mount points could become local without calling `NodePublishVolume` after node rebooting." -pr_body: "" +pr: 119923 +releasenote: + text: | + "Fixed an issue where mount points could become local without calling `NodePublishVolume` after node rebooting." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-120111-map.yaml b/releases/release-1.30/release-notes/maps/pr-120111-map.yaml index d1e9d38fc94..f38821e4f8c 100644 --- a/releases/release-1.30/release-notes/maps/pr-120111-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-120111-map.yaml @@ -1,5 +1,5 @@ -pr: 120111 -releasenote: - text: | - When using `kubectl logs <pod-name>` and the pod is not found, the error message now includes the namespace. Previously, the message would be "Error from server (NotFound): pods "my-pod-name" not found". Now, it reflects the namespace in the message as follows: "Error from server (NotFound): pods "my-pod-name" not found in namespace "default"". -pr_body: "" +pr: 120111 +releasenote: + text: | + When using `kubectl logs <pod-name>` and the pod is not found, the error message now includes the namespace. Previously, the message would be "Error from server (NotFound): pods "my-pod-name" not found". Now, it reflects the namespace in the message as follows: "Error from server (NotFound): pods "my-pod-name" not found in namespace "default"". +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-120159-map.yaml b/releases/release-1.30/release-notes/maps/pr-120159-map.yaml index ff5754c0246..9f5c3e1df99 100644 --- a/releases/release-1.30/release-notes/maps/pr-120159-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-120159-map.yaml @@ -1,3 +1,3 @@ -pr: 120159 -releasenote: - text: Modified the error message of `unmanagedFatal` to enhance clarity while preserving grammatical consistency with `unmanagedWarning`. This improvement ensures a more understandable prompt for users. +pr: 120159 +releasenote: + text: Modified the error message of `unmanagedFatal` to enhance clarity while preserving grammatical consistency with `unmanagedWarning`. This improvement ensures a more understandable prompt for users. diff --git a/releases/release-1.30/release-notes/maps/pr-120246-map.yaml b/releases/release-1.30/release-notes/maps/pr-120246-map.yaml index e732cb647e7..27601163d45 100644 --- a/releases/release-1.30/release-notes/maps/pr-120246-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-120246-map.yaml @@ -1,5 +1,5 @@ -pr: 120246 -releasenote: - text: | - "kubectl: Removed the deprecated flag `prune-whitelist` for apply. Please use the flag `prune-allowlist` instead." -pr_body: "" +pr: 120246 +releasenote: + text: | + "kubectl: Removed the deprecated flag `prune-whitelist` for apply. Please use the flag `prune-allowlist` instead." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-120291-map.yaml b/releases/release-1.30/release-notes/maps/pr-120291-map.yaml index 5a668374d87..38af7c2d6b6 100644 --- a/releases/release-1.30/release-notes/maps/pr-120291-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-120291-map.yaml @@ -1,5 +1,5 @@ -pr: 120291 -releasenote: - text: Fixed Windows credential provider, cannot find binary. Windows credential - provider binary path may have ".exe" suffix so it is better to use `LookPath()` - to support it flexibly. +pr: 120291 +releasenote: + text: Fixed Windows credential provider, cannot find binary. Windows credential + provider binary path may have ".exe" suffix so it is better to use `LookPath()` + to support it flexibly. diff --git a/releases/release-1.30/release-notes/maps/pr-120344-map.yaml b/releases/release-1.30/release-notes/maps/pr-120344-map.yaml index 8e125f60d0b..69eb5101ea1 100644 --- a/releases/release-1.30/release-notes/maps/pr-120344-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-120344-map.yaml @@ -1,9 +1,9 @@ -pr: 120344 -releasenote: - text: Added the `disable-force-detach` CLI option for `kube-controller-manager`. - By default, it's set to `false`. When enabled, it prevents force detaching volumes - based on maximum unmount time and node status. If activated, the non-graceful - node shutdown feature must be used to recover from node failure. Additionally, - if a pod needs to be forcibly terminated at the risk of corruption, the appropriate - VolumeAttachment object must be deleted. -pr_body: "" +pr: 120344 +releasenote: + text: Added the `disable-force-detach` CLI option for `kube-controller-manager`. + By default, it's set to `false`. When enabled, it prevents force detaching volumes + based on maximum unmount time and node status. If activated, the non-graceful + node shutdown feature must be used to recover from node failure. Additionally, + if a pod needs to be forcibly terminated at the risk of corruption, the appropriate + VolumeAttachment object must be deleted. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-120346-map.yaml b/releases/release-1.30/release-notes/maps/pr-120346-map.yaml index c2a29c0e565..a5c86fc6590 100644 --- a/releases/release-1.30/release-notes/maps/pr-120346-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-120346-map.yaml @@ -1,5 +1,5 @@ -pr: 120346 -releasenote: - text: A new flag called `custom` has been introduced in `kubectl debug`, allowing - users to customize pre-defined profiles. -pr_body: "" +pr: 120346 +releasenote: + text: A new flag called `custom` has been introduced in `kubectl debug`, allowing + users to customize pre-defined profiles. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-120642-map.yaml b/releases/release-1.30/release-notes/maps/pr-120642-map.yaml index e1eaa085420..007ab9455ae 100644 --- a/releases/release-1.30/release-notes/maps/pr-120642-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-120642-map.yaml @@ -1,5 +1,5 @@ -pr: 120642 -releasenote: - text: Added consistent vanity import to files and provided tooling for verifying - and updating them. -pr_body: "" +pr: 120642 +releasenote: + text: Added consistent vanity import to files and provided tooling for verifying + and updating them. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-120718-map.yaml b/releases/release-1.30/release-notes/maps/pr-120718-map.yaml index 4ea3e45f4d2..3ad3ecb56ee 100644 --- a/releases/release-1.30/release-notes/maps/pr-120718-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-120718-map.yaml @@ -1,5 +1,5 @@ -pr: 120718 -releasenote: - text: Node podresources API now includes init containers with containerRestartPolicy - of `Always` when `SidecarContainers` feature is enabled. -pr_body: "" +pr: 120718 +releasenote: + text: Node podresources API now includes init containers with containerRestartPolicy + of `Always` when `SidecarContainers` feature is enabled. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-120902-map.yaml b/releases/release-1.30/release-notes/maps/pr-120902-map.yaml index 7aafde1987d..78ab539cb7d 100644 --- a/releases/release-1.30/release-notes/maps/pr-120902-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-120902-map.yaml @@ -1,4 +1,4 @@ -pr: 120902 -releasenote: - text: 'Added an optimization to reduce stack memory usage for watch requests. It - can be disabled with the feature gate: `APIServingWithRoutine=false`' +pr: 120902 +releasenote: + text: 'Added an optimization to reduce stack memory usage for watch requests. It + can be disabled with the feature gate: `APIServingWithRoutine=false`' diff --git a/releases/release-1.30/release-notes/maps/pr-121461-map.yaml b/releases/release-1.30/release-notes/maps/pr-121461-map.yaml index 8183ec87399..f27289482ae 100644 --- a/releases/release-1.30/release-notes/maps/pr-121461-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121461-map.yaml @@ -1,5 +1,5 @@ -pr: 121461 -releasenote: - text: | - "Promoted the `CRDValidationRatcheting` feature gate to beta and made it enabled by default." -pr_body: "" +pr: 121461 +releasenote: + text: | + "Promoted the `CRDValidationRatcheting` feature gate to beta and made it enabled by default." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-121512-map.yaml b/releases/release-1.30/release-notes/maps/pr-121512-map.yaml index adedef1d39b..527ef86965c 100644 --- a/releases/release-1.30/release-notes/maps/pr-121512-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121512-map.yaml @@ -1,3 +1,3 @@ -pr: 121512 -releasenote: - text: The `apiserver.latency.k8s.io/decode-response-object` annotation was added to the audit log to record the decoding time. +pr: 121512 +releasenote: + text: The `apiserver.latency.k8s.io/decode-response-object` annotation was added to the audit log to record the decoding time. diff --git a/releases/release-1.30/release-notes/maps/pr-121669-map.yaml b/releases/release-1.30/release-notes/maps/pr-121669-map.yaml index 33838973668..86f9b1bd9c0 100644 --- a/releases/release-1.30/release-notes/maps/pr-121669-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121669-map.yaml @@ -1,3 +1,3 @@ -pr: 121669 -releasenote: - text: Fixed an issue to ignore unnecessary node events and improve daemonset controller performance. +pr: 121669 +releasenote: + text: Fixed an issue to ignore unnecessary node events and improve daemonset controller performance. diff --git a/releases/release-1.30/release-notes/maps/pr-121719-map.yaml b/releases/release-1.30/release-notes/maps/pr-121719-map.yaml index 71148988831..8d1b13a3e0e 100644 --- a/releases/release-1.30/release-notes/maps/pr-121719-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121719-map.yaml @@ -1,6 +1,6 @@ -pr: 121719 -releasenote: - text: A new kubelet metric `image_pull_duration_seconds` was added. The metric tracks - the duration (in seconds) it takes for an image to be pulled, including the time - spent in the waiting queue of image puller. The metric is broken down by bucketed - image size. +pr: 121719 +releasenote: + text: A new kubelet metric `image_pull_duration_seconds` was added. The metric tracks + the duration (in seconds) it takes for an image to be pulled, including the time + spent in the waiting queue of image puller. The metric is broken down by bucketed + image size. diff --git a/releases/release-1.30/release-notes/maps/pr-121720-map.yaml b/releases/release-1.30/release-notes/maps/pr-121720-map.yaml index 4aab282fb80..530bfaf4f28 100644 --- a/releases/release-1.30/release-notes/maps/pr-121720-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121720-map.yaml @@ -1,5 +1,5 @@ -pr: 121720 -releasenote: - text: | - "Added a new internal metric `kubelet_first_network_pod_start_sli_duration_second` in the kubelet that allowed developers to understand the source of the latency problems on node startups." -pr_body: "" +pr: 121720 +releasenote: + text: | + "Added a new internal metric `kubelet_first_network_pod_start_sli_duration_second` in the kubelet that allowed developers to understand the source of the latency problems on node startups." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-121736-map.yaml b/releases/release-1.30/release-notes/maps/pr-121736-map.yaml index 37ff3e68fd1..02648de83e0 100644 --- a/releases/release-1.30/release-notes/maps/pr-121736-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121736-map.yaml @@ -1,3 +1,3 @@ -pr: 121736 -releasenote: - text: Updated `kube-dns` to `v1.22.27`. +pr: 121736 +releasenote: + text: Updated `kube-dns` to `v1.22.27`. diff --git a/releases/release-1.30/release-notes/maps/pr-121778-map.yaml b/releases/release-1.30/release-notes/maps/pr-121778-map.yaml index d6eac701c9a..49d2332c21d 100644 --- a/releases/release-1.30/release-notes/maps/pr-121778-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121778-map.yaml @@ -1,3 +1,3 @@ -pr: 121778 -releasenote: - text: Added kubelet metrics to track the memory manager allocation and pinning. +pr: 121778 +releasenote: + text: Added kubelet metrics to track the memory manager allocation and pinning. diff --git a/releases/release-1.30/release-notes/maps/pr-121815-map.yaml b/releases/release-1.30/release-notes/maps/pr-121815-map.yaml index 7df5275fd06..8d08509f089 100644 --- a/releases/release-1.30/release-notes/maps/pr-121815-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121815-map.yaml @@ -1,5 +1,5 @@ -pr: 121815 -releasenote: - text: | - "Made decoding etcd's response respect the timeout context." -pr_body: "" +pr: 121815 +releasenote: + text: | + "Made decoding etcd's response respect the timeout context." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-121834-map.yaml b/releases/release-1.30/release-notes/maps/pr-121834-map.yaml index 1ea6d817700..8f6cf4a5cc9 100644 --- a/releases/release-1.30/release-notes/maps/pr-121834-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121834-map.yaml @@ -1,5 +1,5 @@ -pr: 121834 -releasenote: - text: | - "Added `imagefs.inodesfree` to default `EvictionHard` settings." -pr_body: "" +pr: 121834 +releasenote: + text: | + "Added `imagefs.inodesfree` to default `EvictionHard` settings." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-121876-map.yaml b/releases/release-1.30/release-notes/maps/pr-121876-map.yaml index f5163405522..3cc502f8ba1 100644 --- a/releases/release-1.30/release-notes/maps/pr-121876-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121876-map.yaml @@ -1,5 +1,5 @@ -pr: 121876 -releasenote: - text: When scheduling a mix of pods using `ResourceClaims` and others that don't, - scheduling a pod with `ResourceClaims` has a lower impact on scheduling latency. -pr_body: "" +pr: 121876 +releasenote: + text: When scheduling a mix of pods using `ResourceClaims` and others that don't, + scheduling a pod with `ResourceClaims` has a lower impact on scheduling latency. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-121908-map.yaml b/releases/release-1.30/release-notes/maps/pr-121908-map.yaml index fbc81d2ec62..6b14f0dfa7e 100644 --- a/releases/release-1.30/release-notes/maps/pr-121908-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121908-map.yaml @@ -1,3 +1,3 @@ -pr: 121908 -releasenote: - text: Updated `kubedns` and `nodelocaldns` to release version `1.22.28`. +pr: 121908 +releasenote: + text: Updated `kubedns` and `nodelocaldns` to release version `1.22.28`. diff --git a/releases/release-1.30/release-notes/maps/pr-121912-map.yaml b/releases/release-1.30/release-notes/maps/pr-121912-map.yaml index 82d00e643c8..99370df63c7 100644 --- a/releases/release-1.30/release-notes/maps/pr-121912-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121912-map.yaml @@ -1,5 +1,5 @@ -pr: 121912 -releasenote: - text: | - "Added the `CEL` library for IP Addresses and CIDRs. This was made available for use starting from version `1.31`." -pr_body: "" +pr: 121912 +releasenote: + text: | + "Added the `CEL` library for IP Addresses and CIDRs. This was made available for use starting from version `1.31`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-121919-map.yaml b/releases/release-1.30/release-notes/maps/pr-121919-map.yaml index 73eed94312c..aa2c283d939 100644 --- a/releases/release-1.30/release-notes/maps/pr-121919-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121919-map.yaml @@ -1,5 +1,5 @@ -pr: 121919 -releasenote: - text: | - "Fixed a regression in `kube-proxy` introduced in version `1.26.0+` to make externalIPs work with externalTrafficPolicy: Local." -pr_body: "" +pr: 121919 +releasenote: + text: | + "Fixed a regression in `kube-proxy` introduced in version `1.26.0+` to make externalIPs work with externalTrafficPolicy: Local." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-121946-map.yaml b/releases/release-1.30/release-notes/maps/pr-121946-map.yaml index 0df5865c969..bca66213dd6 100644 --- a/releases/release-1.30/release-notes/maps/pr-121946-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121946-map.yaml @@ -1,5 +1,5 @@ -pr: 121946 -releasenote: - text: | - "kube-apiserver now reloads the `--authorization-config` file when it changes. Reloads increment the `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` timestamp metric, with `status="success"` for successful reloads and `status="failed"` for failed reloads. Failed reloads keep using the previously loaded authorization configuration." -pr_body: "" +pr: 121946 +releasenote: + text: | + "kube-apiserver now reloads the `--authorization-config` file when it changes. Reloads increment the `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` timestamp metric, with `status="success"` for successful reloads and `status="failed"` for failed reloads. Failed reloads keep using the previously loaded authorization configuration." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-121952-map.yaml b/releases/release-1.30/release-notes/maps/pr-121952-map.yaml index 7890d0be775..00709138183 100644 --- a/releases/release-1.30/release-notes/maps/pr-121952-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121952-map.yaml @@ -1,3 +1,3 @@ -pr: 121952 -releasenote: - text: "The scheduler now retries Pods, which are failed by `nodevolumelimits` due to not found PVCs, only when new PVCs are added." +pr: 121952 +releasenote: + text: "The scheduler now retries Pods, which are failed by `nodevolumelimits` due to not found PVCs, only when new PVCs are added." diff --git a/releases/release-1.30/release-notes/maps/pr-121954-map.yaml b/releases/release-1.30/release-notes/maps/pr-121954-map.yaml index 334e00d0ec5..5aa0c3a0710 100644 --- a/releases/release-1.30/release-notes/maps/pr-121954-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121954-map.yaml @@ -1,5 +1,5 @@ -pr: 121954 -releasenote: - text: | - "Some interfaces' signatures in the scheduler were updated: - PluginsRunner: used NodeInfo in `RunPreScorePlugins` and `RunScorePlugins`. - PreScorePlugin: used NodeInfo in `PreScore`. - Extender: used NodeInfo in `Filter` and `Prioritize`." -pr_body: "" +pr: 121954 +releasenote: + text: | + "Some interfaces' signatures in the scheduler were updated: - PluginsRunner: used NodeInfo in `RunPreScorePlugins` and `RunScorePlugins`. - PreScorePlugin: used NodeInfo in `PreScore`. - Extender: used NodeInfo in `Filter` and `Prioritize`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-121958-map.yaml b/releases/release-1.30/release-notes/maps/pr-121958-map.yaml index 55a857d245a..3a45e623ba3 100644 --- a/releases/release-1.30/release-notes/maps/pr-121958-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121958-map.yaml @@ -1,5 +1,5 @@ -pr: 121958 -releasenote: - text: | - "kubeadm: improved the overall logic, error handling, and output messages when waiting for the kubelet and API server `/healthz` endpoints to return `OK`. The kubelet and API server checks no longer ran in parallel, but one after another (in serial)." -pr_body: "" +pr: 121958 +releasenote: + text: | + "kubeadm: improved the overall logic, error handling, and output messages when waiting for the kubelet and API server `/healthz` endpoints to return `OK`. The kubelet and API server checks no longer ran in parallel, but one after another (in serial)." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-121983-map.yaml b/releases/release-1.30/release-notes/maps/pr-121983-map.yaml index 347880a1f5c..6de751e45bc 100644 --- a/releases/release-1.30/release-notes/maps/pr-121983-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-121983-map.yaml @@ -1,5 +1,5 @@ -pr: 121983 -releasenote: - text: | - "Cleanup: removed `getStorageAccountName` warning messages." -pr_body: "" +pr: 121983 +releasenote: + text: | + "Cleanup: removed `getStorageAccountName` warning messages." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122013-map.yaml b/releases/release-1.30/release-notes/maps/pr-122013-map.yaml index 399b289665f..100a9634060 100644 --- a/releases/release-1.30/release-notes/maps/pr-122013-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122013-map.yaml @@ -1,9 +1,9 @@ -pr: 122013 -releasenote: - text: "A deprecated flag `--pod-max-in-unschedulable-pods-duration` was initially - planned to be removed in v1.26, but we had to change this plan. We found [an - issue](https://github.com/kubernetes/kubernetes/issues/110175) in which Pods can - be stuck in the unschedulable pod pool for 5 min, and using this flag is the only - workaround for this issue. \nThis issue only could happen if you use custom plugins - or if you change plugin set being used in your scheduler via the scheduler config." -pr_body: "" +pr: 122013 +releasenote: + text: "A deprecated flag `--pod-max-in-unschedulable-pods-duration` was initially + planned to be removed in v1.26, but we had to change this plan. We found [an + issue](https://github.com/kubernetes/kubernetes/issues/110175) in which Pods can + be stuck in the unschedulable pod pool for 5 min, and using this flag is the only + workaround for this issue. \nThis issue only could happen if you use custom plugins + or if you change plugin set being used in your scheduler via the scheduler config." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122022-map.yaml b/releases/release-1.30/release-notes/maps/pr-122022-map.yaml index b5684b72b77..5986a97d4b8 100644 --- a/releases/release-1.30/release-notes/maps/pr-122022-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122022-map.yaml @@ -1,5 +1,5 @@ -pr: 122022 -releasenote: - text: | - "Previously, the scheduling queue didn't notice any extenders' failures, potentially resulting in missed cluster events and Pods rejected by Extenders being stuck in the unschedulable pod pool for up to 5 minutes in the worst-case scenario. Now, the scheduling queue notices extenders' failures and requeues Pods rejected by Extenders appropriately." -pr_body: "" +pr: 122022 +releasenote: + text: | + "Previously, the scheduling queue didn't notice any extenders' failures, potentially resulting in missed cluster events and Pods rejected by Extenders being stuck in the unschedulable pod pool for up to 5 minutes in the worst-case scenario. Now, the scheduling queue notices extenders' failures and requeues Pods rejected by Extenders appropriately." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122023-map.yaml b/releases/release-1.30/release-notes/maps/pr-122023-map.yaml index 25076830482..ffa59655e88 100644 --- a/releases/release-1.30/release-notes/maps/pr-122023-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122023-map.yaml @@ -1,4 +1,4 @@ -pr: 122023 -releasenote: - text: Added `exec-interactive-mode` and `exec-provide-cluster-info` flags in kubectl - config set-credentials command. +pr: 122023 +releasenote: + text: Added `exec-interactive-mode` and `exec-provide-cluster-info` flags in kubectl + config set-credentials command. diff --git a/releases/release-1.30/release-notes/maps/pr-122030-map.yaml b/releases/release-1.30/release-notes/maps/pr-122030-map.yaml index 44ad1957a87..2d0b63c221f 100644 --- a/releases/release-1.30/release-notes/maps/pr-122030-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122030-map.yaml @@ -1,9 +1,9 @@ -pr: 122030 -releasenote: - text: For statically provisioned PVs, if their volume source is of CSI type or they - have a migrated annotation, when they are deleted, the PersistentVolume controller - won't change their phase to the Failed state. With this patch, the external provisioner - can remove the finalizer in the next reconcile loop. Unfortunately, if a previously - existing PV has the Failed state, this patch won't take effect. Users are required - to remove the finalizer manually. -pr_body: "" +pr: 122030 +releasenote: + text: For statically provisioned PVs, if their volume source is of CSI type or they + have a migrated annotation, when they are deleted, the PersistentVolume controller + won't change their phase to the Failed state. With this patch, the external provisioner + can remove the finalizer in the next reconcile loop. Unfortunately, if a previously + existing PV has the Failed state, this patch won't take effect. Users are required + to remove the finalizer manually. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122032-map.yaml b/releases/release-1.30/release-notes/maps/pr-122032-map.yaml index 32e9d13f377..87c32099ae7 100644 --- a/releases/release-1.30/release-notes/maps/pr-122032-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122032-map.yaml @@ -1,5 +1,5 @@ -pr: 122032 -releasenote: - text: | - "The GA feature-gate `APISelfSubjectReview` has been removed, and the feature is unconditionally enabled." -pr_body: "" +pr: 122032 +releasenote: + text: | + "The GA feature-gate `APISelfSubjectReview` has been removed, and the feature is unconditionally enabled." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122056-map.yaml b/releases/release-1.30/release-notes/maps/pr-122056-map.yaml index 95d640a3891..3bc10f4249c 100644 --- a/releases/release-1.30/release-notes/maps/pr-122056-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122056-map.yaml @@ -1,5 +1,5 @@ -pr: 122056 -releasenote: - text: | - "Fixed the disruption controller's PDB status synchronization to maintain all PDB conditions during an update." -pr_body: "" +pr: 122056 +releasenote: + text: | + "Fixed the disruption controller's PDB status synchronization to maintain all PDB conditions during an update." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122058-map.yaml b/releases/release-1.30/release-notes/maps/pr-122058-map.yaml index 83d16a2bc72..97f979d5a68 100644 --- a/releases/release-1.30/release-notes/maps/pr-122058-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122058-map.yaml @@ -1,5 +1,5 @@ -pr: 122058 -releasenote: - text: | - "Improved scheduler performance when no scoring plugins were defined." -pr_body: "" +pr: 122058 +releasenote: + text: | + "Improved scheduler performance when no scoring plugins were defined." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122068-map.yaml b/releases/release-1.30/release-notes/maps/pr-122068-map.yaml index 81e3a1b6625..ee4905b58c7 100644 --- a/releases/release-1.30/release-notes/maps/pr-122068-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122068-map.yaml @@ -1,5 +1,5 @@ -pr: 122068 -releasenote: - text: | - "Fixed a regression since `1.24` in the scheduling framework when overriding MultiPoint plugins (e.g. default plugins). The incorrect loop logic might have led to a plugin being loaded multiple times, consequently preventing any Pod from being scheduled, which was unexpected." -pr_body: "" +pr: 122068 +releasenote: + text: | + "Fixed a regression since `1.24` in the scheduling framework when overriding MultiPoint plugins (e.g. default plugins). The incorrect loop logic might have led to a plugin being loaded multiple times, consequently preventing any Pod from being scheduled, which was unexpected." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122069-map.yaml b/releases/release-1.30/release-notes/maps/pr-122069-map.yaml index 0931edc1e7c..ac087e866e2 100644 --- a/releases/release-1.30/release-notes/maps/pr-122069-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122069-map.yaml @@ -1,5 +1,5 @@ -pr: 122069 -releasenote: - text: | - "Client-go: Optimized leaders renewing leases by updating leader lock optimistically without getting the record from the API server first. Also, a new metric `leader_election_slowpath_total` was added to allow users to monitor how many leader elections are updated non-optimistically." -pr_body: "" +pr: 122069 +releasenote: + text: | + "Client-go: Optimized leaders renewing leases by updating leader lock optimistically without getting the record from the API server first. Also, a new metric `leader_election_slowpath_total` was added to allow users to monitor how many leader elections are updated non-optimistically." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122079-map.yaml b/releases/release-1.30/release-notes/maps/pr-122079-map.yaml index 689e7a7412f..aae9468f582 100644 --- a/releases/release-1.30/release-notes/maps/pr-122079-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122079-map.yaml @@ -1,4 +1,4 @@ -pr: 122079 -releasenote: - text: 'kubeadm: used `ttlSecondsAfterFinished` to automatically clean up the `upgrade-health-check` - Job that runs during upgrade preflighting.' +pr: 122079 +releasenote: + text: 'kubeadm: used `ttlSecondsAfterFinished` to automatically clean up the `upgrade-health-check` + Job that runs during upgrade preflighting.' diff --git a/releases/release-1.30/release-notes/maps/pr-122086-map.yaml b/releases/release-1.30/release-notes/maps/pr-122086-map.yaml index 5217c373d29..22c93edff74 100644 --- a/releases/release-1.30/release-notes/maps/pr-122086-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122086-map.yaml @@ -1,5 +1,5 @@ -pr: 122086 -releasenote: - text: | - "Removed the generally available feature gate `ExpandedDNSConfig`." -pr_body: "" +pr: 122086 +releasenote: + text: | + "Removed the generally available feature gate `ExpandedDNSConfig`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122088-map.yaml b/releases/release-1.30/release-notes/maps/pr-122088-map.yaml index b7aa67c9744..7a5e768c665 100644 --- a/releases/release-1.30/release-notes/maps/pr-122088-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122088-map.yaml @@ -1,4 +1,4 @@ -pr: 122088 -releasenote: - text: Removed GA featuregate about `ExperimentalHostUserNamespaceDefaultingGate` - in `1.30`. +pr: 122088 +releasenote: + text: Removed GA featuregate about `ExperimentalHostUserNamespaceDefaultingGate` + in `1.30`. diff --git a/releases/release-1.30/release-notes/maps/pr-122134-map.yaml b/releases/release-1.30/release-notes/maps/pr-122134-map.yaml index 3cf40814e51..cb59ad019bb 100644 --- a/releases/release-1.30/release-notes/maps/pr-122134-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122134-map.yaml @@ -1,4 +1,4 @@ -pr: 122134 -releasenote: - text: Removed the generally available feature gate `ProxyTerminatingEndpoints`. -pr_body: "" +pr: 122134 +releasenote: + text: Removed the generally available feature gate `ProxyTerminatingEndpoints`. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122136-map.yaml b/releases/release-1.30/release-notes/maps/pr-122136-map.yaml index 643075712b1..eaa5b2eea6d 100644 --- a/releases/release-1.30/release-notes/maps/pr-122136-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122136-map.yaml @@ -1,5 +1,5 @@ -pr: 122136 -releasenote: - text: | - "Removed the generally available feature gate `MinimizeIPTablesRestore`." -pr_body: "" +pr: 122136 +releasenote: + text: | + "Removed the generally available feature gate `MinimizeIPTablesRestore`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122137-map.yaml b/releases/release-1.30/release-notes/maps/pr-122137-map.yaml index 327db7c6bbe..4f1ddc87295 100644 --- a/releases/release-1.30/release-notes/maps/pr-122137-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122137-map.yaml @@ -1,4 +1,4 @@ -pr: 122137 -releasenote: - text: Removed the GA feature gate for `IPTablesOwnershipCleanup` in version `1.30`. -pr_body: "" +pr: 122137 +releasenote: + text: Removed the GA feature gate for `IPTablesOwnershipCleanup` in version `1.30`. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122138-map.yaml b/releases/release-1.30/release-notes/maps/pr-122138-map.yaml index 76a28f3ab43..6f05e4b7e74 100644 --- a/releases/release-1.30/release-notes/maps/pr-122138-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122138-map.yaml @@ -1,5 +1,5 @@ -pr: 122138 -releasenote: - text: | - "Removed the generally available feature gate `KubeletPodResourcesGetAllocatable`." -pr_body: "" +pr: 122138 +releasenote: + text: | + "Removed the generally available feature gate `KubeletPodResourcesGetAllocatable`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122139-map.yaml b/releases/release-1.30/release-notes/maps/pr-122139-map.yaml index 5c14d614f15..3520c72cc1d 100644 --- a/releases/release-1.30/release-notes/maps/pr-122139-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122139-map.yaml @@ -1,5 +1,5 @@ -pr: 122139 -releasenote: - text: | - "Removed the generally available feature gate `KubeletPodResources`." -pr_body: "" +pr: 122139 +releasenote: + text: | + "Removed the generally available feature gate `KubeletPodResources`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122142-map.yaml b/releases/release-1.30/release-notes/maps/pr-122142-map.yaml index bc70af45851..57ed62c4edd 100644 --- a/releases/release-1.30/release-notes/maps/pr-122142-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122142-map.yaml @@ -1,5 +1,5 @@ -pr: 122142 -releasenote: - text: When working with client-go events, it's now recommended to use `NewEventBroadcasterAdapterWithContext` - instead of `NewEventBroadcasterAdapter` if contextual logging support is needed. -pr_body: "" +pr: 122142 +releasenote: + text: When working with client-go events, it's now recommended to use `NewEventBroadcasterAdapterWithContext` + instead of `NewEventBroadcasterAdapter` if contextual logging support is needed. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122178-map.yaml b/releases/release-1.30/release-notes/maps/pr-122178-map.yaml index 463ef01fe12..b47b0e79984 100644 --- a/releases/release-1.30/release-notes/maps/pr-122178-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122178-map.yaml @@ -1,4 +1,4 @@ -pr: 122178 -releasenote: - text: Updated cni-plugins to version `v1.4.0`. -pr_body: "" +pr: 122178 +releasenote: + text: Updated cni-plugins to version `v1.4.0`. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122195-map.yaml b/releases/release-1.30/release-notes/maps/pr-122195-map.yaml index b2271e9b376..d7e9dc2c3f4 100644 --- a/releases/release-1.30/release-notes/maps/pr-122195-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122195-map.yaml @@ -1,6 +1,6 @@ -pr: 122195 -releasenote: - text: kube-scheduler now retries scheduling Pods rejected by the PodTopologySpread - plugin when related Pods are created, deleted, updated, or when a node matches - the specified topologyKey. -pr_body: "" +pr: 122195 +releasenote: + text: kube-scheduler now retries scheduling Pods rejected by the PodTopologySpread + plugin when related Pods are created, deleted, updated, or when a node matches + the specified topologyKey. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122197-map.yaml b/releases/release-1.30/release-notes/maps/pr-122197-map.yaml index e187101e92f..0d96df157a8 100644 --- a/releases/release-1.30/release-notes/maps/pr-122197-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122197-map.yaml @@ -1,3 +1,3 @@ -pr: 122197 -releasenote: - text: Migrated the kube-proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). +pr: 122197 +releasenote: + text: Migrated the kube-proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). diff --git a/releases/release-1.30/release-notes/maps/pr-122204-map.yaml b/releases/release-1.30/release-notes/maps/pr-122204-map.yaml index 8b8b17e74b9..a22b97e429f 100644 --- a/releases/release-1.30/release-notes/maps/pr-122204-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122204-map.yaml @@ -1,7 +1,7 @@ -pr: 122204 -releasenote: - text: |- - Fixed a race condition in the iptables mode of kube-proxy in `1.27` and later - that could result in some updates getting lost (e.g., when a service gets a - new endpoint, the rules for the new endpoint might not be added until - much later). +pr: 122204 +releasenote: + text: |- + Fixed a race condition in the iptables mode of kube-proxy in `1.27` and later + that could result in some updates getting lost (e.g., when a service gets a + new endpoint, the rules for the new endpoint might not be added until + much later). diff --git a/releases/release-1.30/release-notes/maps/pr-122211-map.yaml b/releases/release-1.30/release-notes/maps/pr-122211-map.yaml index 5e040f796df..40306b09b36 100644 --- a/releases/release-1.30/release-notes/maps/pr-122211-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122211-map.yaml @@ -1,4 +1,4 @@ -pr: 122211 -releasenote: - text: Enabled deletion of pods that use raw block volumes on node reboot. -pr_body: "" +pr: 122211 +releasenote: + text: Enabled deletion of pods that use raw block volumes on node reboot. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122225-map.yaml b/releases/release-1.30/release-notes/maps/pr-122225-map.yaml index 96ff9fa7479..4081f66f4ab 100644 --- a/releases/release-1.30/release-notes/maps/pr-122225-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122225-map.yaml @@ -1,5 +1,5 @@ -pr: 122225 -releasenote: - text: | - "Migrated `client-go/metadata` to contextual logging." -pr_body: "" +pr: 122225 +releasenote: + text: | + "Migrated `client-go/metadata` to contextual logging." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122231-map.yaml b/releases/release-1.30/release-notes/maps/pr-122231-map.yaml index df5f99cc41c..1101d7793cd 100644 --- a/releases/release-1.30/release-notes/maps/pr-122231-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122231-map.yaml @@ -1,5 +1,5 @@ -pr: 122231 -releasenote: - text: | - "Added Timezone column in the output of the 'kubectl get cronjob' command." -pr_body: "" +pr: 122231 +releasenote: + text: | + "Added Timezone column in the output of the 'kubectl get cronjob' command." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122233-map.yaml b/releases/release-1.30/release-notes/maps/pr-122233-map.yaml index fa2c8b6c419..29bb013bd16 100644 --- a/releases/release-1.30/release-notes/maps/pr-122233-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122233-map.yaml @@ -1,5 +1,5 @@ -pr: 122233 -releasenote: - text: | - "etcd: Built image for `v3.5.11`." -pr_body: "" +pr: 122233 +releasenote: + text: | + "etcd: Built image for `v3.5.11`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122271-map.yaml b/releases/release-1.30/release-notes/maps/pr-122271-map.yaml index f01ca41d20e..d898d529302 100644 --- a/releases/release-1.30/release-notes/maps/pr-122271-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122271-map.yaml @@ -1,5 +1,5 @@ -pr: 122271 -releasenote: - text: | - "Updated cri-tools to `v1.29.0`." -pr_body: "" +pr: 122271 +releasenote: + text: | + "Updated cri-tools to `v1.29.0`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122276-map.yaml b/releases/release-1.30/release-notes/maps/pr-122276-map.yaml index f179879e44c..cc26f825a70 100644 --- a/releases/release-1.30/release-notes/maps/pr-122276-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122276-map.yaml @@ -1,5 +1,5 @@ -pr: 122276 -releasenote: - text: | - "resource.k8s.io/ResourceClaim (alpha API): The strategic merge patch strategy for the `status.reservedFor` array was changed so that a strategic-merge-patch can now add individual entries. This change may break clients using strategic merge patch to update status, which rely on the previous behavior (replacing the entire array)." -pr_body: "" +pr: 122276 +releasenote: + text: | + "resource.k8s.io/ResourceClaim (alpha API): The strategic merge patch strategy for the `status.reservedFor` array was changed so that a strategic-merge-patch can now add individual entries. This change may break clients using strategic merge patch to update status, which rely on the previous behavior (replacing the entire array)." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122285-map.yaml b/releases/release-1.30/release-notes/maps/pr-122285-map.yaml index 52244708c34..b121a5b4499 100644 --- a/releases/release-1.30/release-notes/maps/pr-122285-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122285-map.yaml @@ -1,5 +1,5 @@ -pr: 122285 -releasenote: - text: | - "QueueingHint implementation for `NodeAffinity` was reverted because potential scenarios were found where events that make Pods schedulable could be missed." -pr_body: "" +pr: 122285 +releasenote: + text: | + "QueueingHint implementation for `NodeAffinity` was reverted because potential scenarios were found where events that make Pods schedulable could be missed." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122288-map.yaml b/releases/release-1.30/release-notes/maps/pr-122288-map.yaml index 426b0cdb7c5..72cb9282606 100644 --- a/releases/release-1.30/release-notes/maps/pr-122288-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122288-map.yaml @@ -1,5 +1,5 @@ -pr: 122288 -releasenote: - text: Reverted the `QueueingHint` implementation for `NodeUnschedulable` due to - potential scenarios where events that make Pods schedulable could be missed. -pr_body: "" +pr: 122288 +releasenote: + text: Reverted the `QueueingHint` implementation for `NodeUnschedulable` due to + potential scenarios where events that make Pods schedulable could be missed. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122292-map.yaml b/releases/release-1.30/release-notes/maps/pr-122292-map.yaml index f5eb72f179e..01818847847 100644 --- a/releases/release-1.30/release-notes/maps/pr-122292-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122292-map.yaml @@ -1,5 +1,5 @@ -pr: 122292 -releasenote: - text: | - Improved the efficiency of NodeAdded QueueingHint by registering UpdateNodeTaint event for plugins that have NodeAdded event but don't have UpdateNodeTaint event. This ensures better requeuing efficiency and prevents Pods from being stuck in the unschedulable pod pool. -pr_body: "" +pr: 122292 +releasenote: + text: | + Improved the efficiency of NodeAdded QueueingHint by registering UpdateNodeTaint event for plugins that have NodeAdded event but don't have UpdateNodeTaint event. This ensures better requeuing efficiency and prevents Pods from being stuck in the unschedulable pod pool. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122293-map.yaml b/releases/release-1.30/release-notes/maps/pr-122293-map.yaml index 699fd4f5235..03513051e8e 100644 --- a/releases/release-1.30/release-notes/maps/pr-122293-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122293-map.yaml @@ -1,5 +1,5 @@ -pr: 122293 -releasenote: - text: "kube-controller-manager: increased the global level for broadcaster's - logging to 3 so that users can ignore event messages by lowering the logging - level. It reduces information noise." +pr: 122293 +releasenote: + text: "kube-controller-manager: increased the global level for broadcaster's + logging to 3 so that users can ignore event messages by lowering the logging + level. It reduces information noise." diff --git a/releases/release-1.30/release-notes/maps/pr-122296-map.yaml b/releases/release-1.30/release-notes/maps/pr-122296-map.yaml index 6896efda434..76a41377a39 100644 --- a/releases/release-1.30/release-notes/maps/pr-122296-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122296-map.yaml @@ -1,3 +1,3 @@ -pr: 122296 -releasenote: - text: '`kube-proxy` nftables mode is now compatible with kernel `5.4`.' +pr: 122296 +releasenote: + text: '`kube-proxy` nftables mode is now compatible with kernel `5.4`.' diff --git a/releases/release-1.30/release-notes/maps/pr-122309-map.yaml b/releases/release-1.30/release-notes/maps/pr-122309-map.yaml index 348cddb9cac..5c87fc4ed8a 100644 --- a/releases/release-1.30/release-notes/maps/pr-122309-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122309-map.yaml @@ -1,3 +1,3 @@ -pr: 122309 -releasenote: - text: "kube-scheduler implemented scheduling hints for the `NodeAffinity` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeAffinity` plugin if a new Node or a Node update matched the Pod's node affinity." +pr: 122309 +releasenote: + text: "kube-scheduler implemented scheduling hints for the `NodeAffinity` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeAffinity` plugin if a new Node or a Node update matched the Pod's node affinity." diff --git a/releases/release-1.30/release-notes/maps/pr-122329-map.yaml b/releases/release-1.30/release-notes/maps/pr-122329-map.yaml index c4563f6f177..b9156142f27 100644 --- a/releases/release-1.30/release-notes/maps/pr-122329-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122329-map.yaml @@ -1,5 +1,5 @@ -pr: 122329 -releasenote: - text: | - "Fixed accidental enablement of the new alpha `optionalOldSelf` API field in `CustomResourceDefinition` validation rules, which should only have been allowed to be set when the `CRDValidationRatcheting` feature gate is enabled." -pr_body: "" +pr: 122329 +releasenote: + text: | + "Fixed accidental enablement of the new alpha `optionalOldSelf` API field in `CustomResourceDefinition` validation rules, which should only have been allowed to be set when the `CRDValidationRatcheting` feature gate is enabled." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122334-map.yaml b/releases/release-1.30/release-notes/maps/pr-122334-map.yaml index e4649ddb2d3..1be6c35d831 100644 --- a/releases/release-1.30/release-notes/maps/pr-122334-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122334-map.yaml @@ -1,5 +1,5 @@ -pr: 122334 -releasenote: - text: | - "kube-scheduler implemented scheduling hints for the `NodeUnschedulable` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeSchedulable` plugin if a new Node or a Node update had set `.spec.unschedulable` to false." -pr_body: "" +pr: 122334 +releasenote: + text: | + "kube-scheduler implemented scheduling hints for the `NodeUnschedulable` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeSchedulable` plugin if a new Node or a Node update had set `.spec.unschedulable` to false." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122339-map.yaml b/releases/release-1.30/release-notes/maps/pr-122339-map.yaml index 3d1ffa4126f..0f837ae57bd 100644 --- a/releases/release-1.30/release-notes/maps/pr-122339-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122339-map.yaml @@ -1,4 +1,4 @@ -pr: 122339 -releasenote: - text: Added warning for `PV` on reclaim policy when it is `Recycle`. -pr_body: "" +pr: 122339 +releasenote: + text: Added warning for `PV` on reclaim policy when it is `Recycle`. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122341-map.yaml b/releases/release-1.30/release-notes/maps/pr-122341-map.yaml index 3872e790e48..c2ca55eed55 100644 --- a/releases/release-1.30/release-notes/maps/pr-122341-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122341-map.yaml @@ -1,5 +1,5 @@ -pr: 122341 -releasenote: - text: | - "Fixed a regression in migration of in-tree vSphere volumes to the CSI driver introduced in version `1.29.0`+." -pr_body: "" +pr: 122341 +releasenote: + text: | + "Fixed a regression in migration of in-tree vSphere volumes to the CSI driver introduced in version `1.29.0`+." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122346-map.yaml b/releases/release-1.30/release-notes/maps/pr-122346-map.yaml index 51800e6c166..aab7ddcfa1a 100644 --- a/releases/release-1.30/release-notes/maps/pr-122346-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122346-map.yaml @@ -1,5 +1,5 @@ -pr: 122346 -releasenote: - text: | - "Fixed an issue where `kubectl apply` could panic when imported as a library." -pr_body: "" +pr: 122346 +releasenote: + text: | + "Fixed an issue where `kubectl apply` could panic when imported as a library." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122393-map.yaml b/releases/release-1.30/release-notes/maps/pr-122393-map.yaml index ebb9b9f6d4f..9b1fe78108a 100644 --- a/releases/release-1.30/release-notes/maps/pr-122393-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122393-map.yaml @@ -1,3 +1,3 @@ -pr: 122393 -releasenote: - text: 'etcd: Updated to `v3.5.11`.' +pr: 122393 +releasenote: + text: 'etcd: Updated to `v3.5.11`.' diff --git a/releases/release-1.30/release-notes/maps/pr-122409-map.yaml b/releases/release-1.30/release-notes/maps/pr-122409-map.yaml index 442dc87b68b..5c72b65a04f 100644 --- a/releases/release-1.30/release-notes/maps/pr-122409-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122409-map.yaml @@ -1,5 +1,5 @@ -pr: 122409 -releasenote: - text: The feature gate `LegacyServiceAccountTokenTracking` (GA since 1.28) is now - removed because the feature is unconditionally enabled. -pr_body: "" +pr: 122409 +releasenote: + text: The feature gate `LegacyServiceAccountTokenTracking` (GA since 1.28) is now + removed because the feature is unconditionally enabled. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122415-map.yaml b/releases/release-1.30/release-notes/maps/pr-122415-map.yaml index fc6b1584083..735e3df1921 100644 --- a/releases/release-1.30/release-notes/maps/pr-122415-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122415-map.yaml @@ -1,6 +1,6 @@ -pr: 122415 -releasenote: - text: When using a claim with immediate allocation and a pod referencing that claim - couldn't get scheduled, the scheduler incorrectly may have tried to deallocate - that claim. -pr_body: "" +pr: 122415 +releasenote: + text: When using a claim with immediate allocation and a pod referencing that claim + couldn't get scheduled, the scheduler incorrectly may have tried to deallocate + that claim. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122422-map.yaml b/releases/release-1.30/release-notes/maps/pr-122422-map.yaml index 5b57467a91e..7cb1862eccb 100644 --- a/releases/release-1.30/release-notes/maps/pr-122422-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122422-map.yaml @@ -1,5 +1,5 @@ -pr: 122422 -releasenote: - text: Removed note that `hostAliases` are not supported on hostNetwork Pods from - the PodSpec API. The feature has been supported since v1.8. -pr_body: "" +pr: 122422 +releasenote: + text: Removed note that `hostAliases` are not supported on hostNetwork Pods from + the PodSpec API. The feature has been supported since v1.8. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122435-map.yaml b/releases/release-1.30/release-notes/maps/pr-122435-map.yaml index 628676d64cf..e1b773064f3 100644 --- a/releases/release-1.30/release-notes/maps/pr-122435-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122435-map.yaml @@ -1,5 +1,5 @@ -pr: 122435 -releasenote: - text: | - "Improved scheduler performance when no scoring plugins were defined." -pr_body: "" +pr: 122435 +releasenote: + text: | + "Improved scheduler performance when no scoring plugins were defined." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122447-map.yaml b/releases/release-1.30/release-notes/maps/pr-122447-map.yaml index 6a85588f7b3..eced8a77e10 100644 --- a/releases/release-1.30/release-notes/maps/pr-122447-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122447-map.yaml @@ -1,5 +1,5 @@ -pr: 122447 -releasenote: - text: | - Fixed a regression in kubectl version `1.29.0` where the `--attach` flag was not honored. -pr_body: "" +pr: 122447 +releasenote: + text: | + Fixed a regression in kubectl version `1.29.0` where the `--attach` flag was not honored. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122449-map.yaml b/releases/release-1.30/release-notes/maps/pr-122449-map.yaml index 28ed45751e5..860745778e4 100644 --- a/releases/release-1.30/release-notes/maps/pr-122449-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122449-map.yaml @@ -1,3 +1,3 @@ -pr: 122449 -releasenote: - text: '`ValidateVolumeAttributesClassUpdate` also validates new VolumeAttributesClass object.' +pr: 122449 +releasenote: + text: '`ValidateVolumeAttributesClassUpdate` also validates new VolumeAttributesClass object.' diff --git a/releases/release-1.30/release-notes/maps/pr-122456-map.yaml b/releases/release-1.30/release-notes/maps/pr-122456-map.yaml index 326b03a5f07..e68e805902a 100644 --- a/releases/release-1.30/release-notes/maps/pr-122456-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122456-map.yaml @@ -1,5 +1,5 @@ -pr: 122456 -releasenote: - text: A new metric `lifecycle_handler_sleep_terminated_total` is added to record - how many times LifecycleHandler sleep got unexpectedly terminated. -pr_body: "" +pr: 122456 +releasenote: + text: A new metric `lifecycle_handler_sleep_terminated_total` is added to record + how many times LifecycleHandler sleep got unexpectedly terminated. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122468-map.yaml b/releases/release-1.30/release-notes/maps/pr-122468-map.yaml index 2228e466b11..4dfa5f36c60 100644 --- a/releases/release-1.30/release-notes/maps/pr-122468-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122468-map.yaml @@ -1,5 +1,5 @@ -pr: 122468 -releasenote: - text: | - "Removed the GA feature gate `RemoveSelfLink`." -pr_body: "" +pr: 122468 +releasenote: + text: | + "Removed the GA feature gate `RemoveSelfLink`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122475-map.yaml b/releases/release-1.30/release-notes/maps/pr-122475-map.yaml index cc29a3ed19e..322381c3e82 100644 --- a/releases/release-1.30/release-notes/maps/pr-122475-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122475-map.yaml @@ -1,4 +1,4 @@ -pr: 122475 -releasenote: - text: Fixed panic of Evented `PLEG` during kubelet start-up. -pr_body: "" +pr: 122475 +releasenote: + text: Fixed panic of Evented `PLEG` during kubelet start-up. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122477-map.yaml b/releases/release-1.30/release-notes/maps/pr-122477-map.yaml index 289b1f7c70f..912011d85c3 100644 --- a/releases/release-1.30/release-notes/maps/pr-122477-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122477-map.yaml @@ -1,5 +1,5 @@ -pr: 122477 -releasenote: - text: | - "`kubeadm completion` error message now displayed supported shell types when an invalid shell was specified." -pr_body: "" +pr: 122477 +releasenote: + text: | + "`kubeadm completion` error message now displayed supported shell types when an invalid shell was specified." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122493-map.yaml b/releases/release-1.30/release-notes/maps/pr-122493-map.yaml index 4c5336f1cc2..ed73f83d653 100644 --- a/releases/release-1.30/release-notes/maps/pr-122493-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122493-map.yaml @@ -1,5 +1,5 @@ -pr: 122493 -releasenote: - text: | - "Fixed incorrect error logging for `syncCronJob`." -pr_body: "" +pr: 122493 +releasenote: + text: | + "Fixed incorrect error logging for `syncCronJob`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122498-map.yaml b/releases/release-1.30/release-notes/maps/pr-122498-map.yaml index 49b23408664..94ec9e4c436 100644 --- a/releases/release-1.30/release-notes/maps/pr-122498-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122498-map.yaml @@ -1,5 +1,5 @@ -pr: 122498 -releasenote: - text: | - "Allowed scheduling framework plugins that implement `io.Closer` to be gracefully closed." -pr_body: "" +pr: 122498 +releasenote: + text: | + "Allowed scheduling framework plugins that implement `io.Closer` to be gracefully closed." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122503-map.yaml b/releases/release-1.30/release-notes/maps/pr-122503-map.yaml index 84b3bd14c90..0195f549793 100644 --- a/releases/release-1.30/release-notes/maps/pr-122503-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122503-map.yaml @@ -1,3 +1,3 @@ -pr: 122503 -releasenote: - text: Scheduler extender `ignorable` option now handles errors for both filter and bind phases. +pr: 122503 +releasenote: + text: Scheduler extender `ignorable` option now handles errors for both filter and bind phases. diff --git a/releases/release-1.30/release-notes/maps/pr-122508-map.yaml b/releases/release-1.30/release-notes/maps/pr-122508-map.yaml index c7bcee73883..37cb8f46341 100644 --- a/releases/release-1.30/release-notes/maps/pr-122508-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122508-map.yaml @@ -1,5 +1,5 @@ -pr: 122508 -releasenote: - text: | - "Removed the incorrect warning event `FileSystemResizeFailed` during pod creation if it uses a readonly volume and the capacity of the volume is greater than or equal to its requested storage." -pr_body: "" +pr: 122508 +releasenote: + text: | + "Removed the incorrect warning event `FileSystemResizeFailed` during pod creation if it uses a readonly volume and the capacity of the volume is greater than or equal to its requested storage." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122530-map.yaml b/releases/release-1.30/release-notes/maps/pr-122530-map.yaml index 416091fcdd7..470b6632c11 100644 --- a/releases/release-1.30/release-notes/maps/pr-122530-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122530-map.yaml @@ -1,5 +1,5 @@ -pr: 122530 -releasenote: - text: | - "kubeadm: Added better handling of errors during unmount when calling `kubeadm reset`. When failing to unmount directories under `/var/run/kubelet`, kubeadm will now throw an error instead of showing a warning and continuing to clean up said directory. In such situations, it is better for you to inspect the problem and resolve it manually. Then, you can call `kubeadm reset` again to complete the cleanup." -pr_body: "" +pr: 122530 +releasenote: + text: | + "kubeadm: Added better handling of errors during unmount when calling `kubeadm reset`. When failing to unmount directories under `/var/run/kubelet`, kubeadm will now throw an error instead of showing a warning and continuing to clean up said directory. In such situations, it is better for you to inspect the problem and resolve it manually. Then, you can call `kubeadm reset` again to complete the cleanup." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122555-map.yaml b/releases/release-1.30/release-notes/maps/pr-122555-map.yaml index c880f97ab8d..11b9784411e 100644 --- a/releases/release-1.30/release-notes/maps/pr-122555-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122555-map.yaml @@ -1,5 +1,5 @@ -pr: 122555 -releasenote: - text: Introduced a feature gate mechanism to `client-go`. Depending on the actual - implementation, users can control features via environmental variables or command - line options. +pr: 122555 +releasenote: + text: Introduced a feature gate mechanism to `client-go`. Depending on the actual + implementation, users can control features via environmental variables or command + line options. diff --git a/releases/release-1.30/release-notes/maps/pr-122558-map.yaml b/releases/release-1.30/release-notes/maps/pr-122558-map.yaml index 7ec8a5c505e..241118045d3 100644 --- a/releases/release-1.30/release-notes/maps/pr-122558-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122558-map.yaml @@ -1,5 +1,5 @@ -pr: 122558 -releasenote: - text: | - "Changed the API server so that for admission webhooks that have a URL matching the hostname 'localhost' or a loopback IP address, the connection supports HTTP/2 where it could be negotiated." -pr_body: "" +pr: 122558 +releasenote: + text: | + "Changed the API server so that for admission webhooks that have a URL matching the hostname 'localhost' or a loopback IP address, the connection supports HTTP/2 where it could be negotiated." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122571-map.yaml b/releases/release-1.30/release-notes/maps/pr-122571-map.yaml index 11a20103d26..6b86d7c30ab 100644 --- a/releases/release-1.30/release-notes/maps/pr-122571-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122571-map.yaml @@ -1,5 +1,5 @@ -pr: 122571 -releasenote: - text: | - "Added `WatchListClient` feature gate to `client-go`. When enabled, it allows the client to receive a stream of individual items instead of chunking from the server." -pr_body: "" +pr: 122571 +releasenote: + text: | + "Added `WatchListClient` feature gate to `client-go`. When enabled, it allows the client to receive a stream of individual items instead of chunking from the server." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122574-map.yaml b/releases/release-1.30/release-notes/maps/pr-122574-map.yaml index 1082323732c..b49dd494a6a 100644 --- a/releases/release-1.30/release-notes/maps/pr-122574-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122574-map.yaml @@ -1,4 +1,4 @@ -pr: 122574 -releasenote: - text: Fixed a bug where `kubectl` drain would consider a pod as having been deleted - if an error occurs while calling the API. +pr: 122574 +releasenote: + text: Fixed a bug where `kubectl` drain would consider a pod as having been deleted + if an error occurs while calling the API. diff --git a/releases/release-1.30/release-notes/maps/pr-122576-map.yaml b/releases/release-1.30/release-notes/maps/pr-122576-map.yaml index 3ad11e4533f..b03121be3de 100644 --- a/releases/release-1.30/release-notes/maps/pr-122576-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122576-map.yaml @@ -1,4 +1,4 @@ -pr: 122576 -releasenote: - text: Deprecated the `azureFile` in-tree storage plugin. -pr_body: "" +pr: 122576 +releasenote: + text: Deprecated the `azureFile` in-tree storage plugin. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122578-map.yaml b/releases/release-1.30/release-notes/maps/pr-122578-map.yaml index 656b7f21b9e..d7c5ceeb41e 100644 --- a/releases/release-1.30/release-notes/maps/pr-122578-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122578-map.yaml @@ -1,5 +1,5 @@ -pr: 122578 -releasenote: - text: | - "Locked the GA feature-gate `ConsistentHTTPGetHandlers` to default." -pr_body: "" +pr: 122578 +releasenote: + text: | + "Locked the GA feature-gate `ConsistentHTTPGetHandlers` to default." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122589-map.yaml b/releases/release-1.30/release-notes/maps/pr-122589-map.yaml index 67813d78742..76efa58c6bb 100644 --- a/releases/release-1.30/release-notes/maps/pr-122589-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122589-map.yaml @@ -1,6 +1,6 @@ -pr: 122589 -releasenote: - text: Contextual logging is now in beta and enabled by default. Check out the [KEP](https://github.com/kubernetes/enhancements/issues/3077) - and [official documentation](https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) - for more details. -pr_body: "" +pr: 122589 +releasenote: + text: Contextual logging is now in beta and enabled by default. Check out the [KEP](https://github.com/kubernetes/enhancements/issues/3077) + and [official documentation](https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) + for more details. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122600-map.yaml b/releases/release-1.30/release-notes/maps/pr-122600-map.yaml index b9822cbe42d..962d7c638ef 100644 --- a/releases/release-1.30/release-notes/maps/pr-122600-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122600-map.yaml @@ -1,5 +1,5 @@ -pr: 122600 -releasenote: - text: | - "Used `errors.Is()` to handle errors returned by `LookPath()`." -pr_body: "" +pr: 122600 +releasenote: + text: | + "Used `errors.Is()` to handle errors returned by `LookPath()`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122612-map.yaml b/releases/release-1.30/release-notes/maps/pr-122612-map.yaml index a46cc078ebf..186d37643f8 100644 --- a/releases/release-1.30/release-notes/maps/pr-122612-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122612-map.yaml @@ -1,5 +1,5 @@ -pr: 122612 -releasenote: - text: | - Removed the `SecurityContextDeny` admission plugin, deprecated since v1.27. The [Pod Security Admission](https://k8s.io/docs/concepts/security/pod-security-admission/) plugin, available since v1.25, is recommended instead. -pr_body: "" +pr: 122612 +releasenote: + text: | + Removed the `SecurityContextDeny` admission plugin, deprecated since v1.27. The [Pod Security Admission](https://k8s.io/docs/concepts/security/pod-security-admission/) plugin, available since v1.25, is recommended instead. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122614-map.yaml b/releases/release-1.30/release-notes/maps/pr-122614-map.yaml index def1c1b7063..0963d930287 100644 --- a/releases/release-1.30/release-notes/maps/pr-122614-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122614-map.yaml @@ -1,5 +1,5 @@ -pr: 122614 -releasenote: - text: | - "kube-proxy: Fixed `LoadBalancerSourceRanges` not working for `nftables` mode." -pr_body: "" +pr: 122614 +releasenote: + text: | + "kube-proxy: Fixed `LoadBalancerSourceRanges` not working for `nftables` mode." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122618-map.yaml b/releases/release-1.30/release-notes/maps/pr-122618-map.yaml index dc098d07e43..25c6eb4cf02 100644 --- a/releases/release-1.30/release-notes/maps/pr-122618-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122618-map.yaml @@ -1,5 +1,5 @@ -pr: 122618 -releasenote: - text: | - "`kubectl describe`: Added Suspend to job and Node-Selectors and Tolerations to pod template output." -pr_body: "" +pr: 122618 +releasenote: + text: | + "`kubectl describe`: Added Suspend to job and Node-Selectors and Tolerations to pod template output." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122635-map.yaml b/releases/release-1.30/release-notes/maps/pr-122635-map.yaml index 30642335d50..bff0fea7d55 100644 --- a/releases/release-1.30/release-notes/maps/pr-122635-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122635-map.yaml @@ -1,3 +1,3 @@ -pr: 122635 -releasenote: - text: Promoted feature-gate `LegacyServiceAccountTokenCleanUp` to GA and locked it to default. +pr: 122635 +releasenote: + text: Promoted feature-gate `LegacyServiceAccountTokenCleanUp` to GA and locked it to default. diff --git a/releases/release-1.30/release-notes/maps/pr-122640-map.yaml b/releases/release-1.30/release-notes/maps/pr-122640-map.yaml index 0332e65bfa5..b80d2086ad2 100644 --- a/releases/release-1.30/release-notes/maps/pr-122640-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122640-map.yaml @@ -1,5 +1,5 @@ -pr: 122640 -releasenote: - text: | - "Printed more information when `kubectl describe` a `VolumeAttributesClass`." -pr_body: "" +pr: 122640 +releasenote: + text: | + "Printed more information when `kubectl describe` a `VolumeAttributesClass`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122647-map.yaml b/releases/release-1.30/release-notes/maps/pr-122647-map.yaml index 1a91e7e5088..e7179a0291e 100644 --- a/releases/release-1.30/release-notes/maps/pr-122647-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122647-map.yaml @@ -1,5 +1,5 @@ -pr: 122647 -releasenote: - text: Added to `MutableFeatureGate` the ability to override the default setting - of feature gates, to allow default-enabling a feature on a component-by-component - basis instead of for all affected components simultaneously. +pr: 122647 +releasenote: + text: Added to `MutableFeatureGate` the ability to override the default setting + of feature gates, to allow default-enabling a feature on a component-by-component + basis instead of for all affected components simultaneously. diff --git a/releases/release-1.30/release-notes/maps/pr-122697-map.yaml b/releases/release-1.30/release-notes/maps/pr-122697-map.yaml index 3d167a2d889..374e4690187 100644 --- a/releases/release-1.30/release-notes/maps/pr-122697-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122697-map.yaml @@ -1,5 +1,5 @@ -pr: 122697 -releasenote: - text: | - "Reverted the `EventedPLEG` feature (beta, but disabled by default) back to alpha due to a known issue." -pr_body: "" +pr: 122697 +releasenote: + text: | + "Reverted the `EventedPLEG` feature (beta, but disabled by default) back to alpha due to a known issue." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122701-map.yaml b/releases/release-1.30/release-notes/maps/pr-122701-map.yaml index c0ff5880985..98cad4c2fc3 100644 --- a/releases/release-1.30/release-notes/maps/pr-122701-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122701-map.yaml @@ -1,4 +1,4 @@ -pr: 122701 -releasenote: - text: Fixed resource deletion failure caused by quota calculation error when `InPlacePodVerticalScaling` - is turned on. +pr: 122701 +releasenote: + text: Fixed resource deletion failure caused by quota calculation error when `InPlacePodVerticalScaling` + is turned on. diff --git a/releases/release-1.30/release-notes/maps/pr-122704-map.yaml b/releases/release-1.30/release-notes/maps/pr-122704-map.yaml index c64d329e45f..5297a03f2ef 100644 --- a/releases/release-1.30/release-notes/maps/pr-122704-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122704-map.yaml @@ -1,5 +1,5 @@ -pr: 122704 -releasenote: - text: | - The PersistentVolume controller no longer automatically assigns a default `StorageClass` to Persistent Volume Claims (PVCs) with an empty `storageClassName`. -pr_body: "" +pr: 122704 +releasenote: + text: | + The PersistentVolume controller no longer automatically assigns a default `StorageClass` to Persistent Volume Claims (PVCs) with an empty `storageClassName`. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122705-map.yaml b/releases/release-1.30/release-notes/maps/pr-122705-map.yaml index d4bd0538611..8140ae041ba 100644 --- a/releases/release-1.30/release-notes/maps/pr-122705-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122705-map.yaml @@ -1,3 +1,3 @@ -pr: 122705 -releasenote: - text: Kubernetes is now built with Go `1.21.6`. +pr: 122705 +releasenote: + text: Kubernetes is now built with Go `1.21.6`. diff --git a/releases/release-1.30/release-notes/maps/pr-122717-map.yaml b/releases/release-1.30/release-notes/maps/pr-122717-map.yaml index 8a0be5b9a93..d377b4c633a 100644 --- a/releases/release-1.30/release-notes/maps/pr-122717-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122717-map.yaml @@ -1,7 +1,7 @@ -pr: 122717 -releasenote: - text: Alpha support for field selectors on custom resources has been added. With - the `CustomResourceFieldSelectors` feature gate enabled, the CustomResourceDefinition - API now allows specifying `selectableFields`. Listing a field there enables filtering - custom resources for that CustomResourceDefinition in list or watch requests. -pr_body: "" +pr: 122717 +releasenote: + text: Alpha support for field selectors on custom resources has been added. With + the `CustomResourceFieldSelectors` feature gate enabled, the CustomResourceDefinition + API now allows specifying `selectableFields`. Listing a field there enables filtering + custom resources for that CustomResourceDefinition in list or watch requests. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122724-map.yaml b/releases/release-1.30/release-notes/maps/pr-122724-map.yaml index 738481af915..fb0d758713d 100644 --- a/releases/release-1.30/release-notes/maps/pr-122724-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122724-map.yaml @@ -1,5 +1,5 @@ -pr: 122724 -releasenote: - text: | - "Changed `--nodeport-addresses` behavior to default to "primary node IP(s) only" rather than "all node IPs"." -pr_body: "" +pr: 122724 +releasenote: + text: | + "Changed `--nodeport-addresses` behavior to default to "primary node IP(s) only" rather than "all node IPs"." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122729-map.yaml b/releases/release-1.30/release-notes/maps/pr-122729-map.yaml index 15d254181e7..ef18711f7ea 100644 --- a/releases/release-1.30/release-notes/maps/pr-122729-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122729-map.yaml @@ -1,5 +1,5 @@ -pr: 122729 -releasenote: - text: | - The `kube_codegen` tool now ignores the vendor folder during code generation. -pr_body: "" +pr: 122729 +releasenote: + text: | + The `kube_codegen` tool now ignores the vendor folder during code generation. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122735-map.yaml b/releases/release-1.30/release-notes/maps/pr-122735-map.yaml index 6429101340b..8736beabfb8 100644 --- a/releases/release-1.30/release-notes/maps/pr-122735-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122735-map.yaml @@ -1,5 +1,5 @@ -pr: 122735 -releasenote: - text: Fixed a regression in "kubeadm init" where a user-specified --kubeconfig file - was being ignored. -pr_body: "" +pr: 122735 +releasenote: + text: Fixed a regression in "kubeadm init" where a user-specified --kubeconfig file + was being ignored. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122745-map.yaml b/releases/release-1.30/release-notes/maps/pr-122745-map.yaml index b28532051a5..7915a790a53 100644 --- a/releases/release-1.30/release-notes/maps/pr-122745-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122745-map.yaml @@ -1,5 +1,5 @@ -pr: 122745 -releasenote: - text: | - In kubelet configuration, the `.memorySwap.swapBehavior` field now accepts a new value `NoSwap`, which becomes the default if unspecified. The previously accepted `UnlimitedSwap` value has been dropped. -pr_body: "" +pr: 122745 +releasenote: + text: | + In kubelet configuration, the `.memorySwap.swapBehavior` field now accepts a new value `NoSwap`, which becomes the default if unspecified. The previously accepted `UnlimitedSwap` value has been dropped. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122750-map.yaml b/releases/release-1.30/release-notes/maps/pr-122750-map.yaml index 4acc1661032..acc1be3a5d5 100644 --- a/releases/release-1.30/release-notes/maps/pr-122750-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122750-map.yaml @@ -1,3 +1,3 @@ -pr: 122750 -releasenote: - text: Added `process_start_time_seconds` to `/metrics/slis` endpoint of all components. +pr: 122750 +releasenote: + text: Added `process_start_time_seconds` to `/metrics/slis` endpoint of all components. diff --git a/releases/release-1.30/release-notes/maps/pr-122804-map.yaml b/releases/release-1.30/release-notes/maps/pr-122804-map.yaml index 1b4a662359d..3cabf23144f 100644 --- a/releases/release-1.30/release-notes/maps/pr-122804-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122804-map.yaml @@ -1,4 +1,4 @@ -pr: 122804 -releasenote: - text: Added metric name along with the utilization information when running `kubectl - get hpa`. +pr: 122804 +releasenote: + text: Added metric name along with the utilization information when running `kubectl + get hpa`. diff --git a/releases/release-1.30/release-notes/maps/pr-122807-map.yaml b/releases/release-1.30/release-notes/maps/pr-122807-map.yaml index e83d03b908f..0c4d65d81ad 100644 --- a/releases/release-1.30/release-notes/maps/pr-122807-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122807-map.yaml @@ -1,6 +1,6 @@ -pr: 122807 -releasenote: - text: Fixed an issue where the `configmap`, `secret`, `projected`, and `downwardAPI` - volume types didn't create user-visible files after a kubelet restart. This fix - ensures data persistence and accessibility after restarts. -pr_body: "" +pr: 122807 +releasenote: + text: Fixed an issue where the `configmap`, `secret`, `projected`, and `downwardAPI` + volume types didn't create user-visible files after a kubelet restart. This fix + ensures data persistence and accessibility after restarts. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122830-map.yaml b/releases/release-1.30/release-notes/maps/pr-122830-map.yaml index cff9f8331f5..def2e5f2ad6 100644 --- a/releases/release-1.30/release-notes/maps/pr-122830-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122830-map.yaml @@ -1,5 +1,5 @@ -pr: 122830 -releasenote: - text: | - "The watch cache now waits until it is at least as fresh as the given requestedWatchRV if sendInitialEvents was requested." -pr_body: "" +pr: 122830 +releasenote: + text: | + "The watch cache now waits until it is at least as fresh as the given requestedWatchRV if sendInitialEvents was requested." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122846-map.yaml b/releases/release-1.30/release-notes/maps/pr-122846-map.yaml index e8ccad940a5..c441c206118 100644 --- a/releases/release-1.30/release-notes/maps/pr-122846-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122846-map.yaml @@ -1,5 +1,5 @@ -pr: 122846 -releasenote: - text: | - "Fixed an issue where `AvailableBytes` sometimes did not report correctly on WindowsNodes when the `PodAndContainerStatsFromCRI` feature was enabled." -pr_body: "" +pr: 122846 +releasenote: + text: | + "Fixed an issue where `AvailableBytes` sometimes did not report correctly on WindowsNodes when the `PodAndContainerStatsFromCRI` feature was enabled." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122857-map.yaml b/releases/release-1.30/release-notes/maps/pr-122857-map.yaml index 6deb3ba049b..a51cc503ddd 100644 --- a/releases/release-1.30/release-notes/maps/pr-122857-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122857-map.yaml @@ -1,5 +1,5 @@ -pr: 122857 -releasenote: - text: The in-tree cloud provider for Azure has now been removed. Please use the - external cloud provider and CSI driver from https://github.com/kubernetes/cloud-provider-azure - instead. +pr: 122857 +releasenote: + text: The in-tree cloud provider for Azure has now been removed. Please use the + external cloud provider and CSI driver from https://github.com/kubernetes/cloud-provider-azure + instead. diff --git a/releases/release-1.30/release-notes/maps/pr-122870-map.yaml b/releases/release-1.30/release-notes/maps/pr-122870-map.yaml index a72b575b415..f7b909dd81d 100644 --- a/releases/release-1.30/release-notes/maps/pr-122870-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122870-map.yaml @@ -1,7 +1,7 @@ -pr: 122870 -releasenote: - text: |- - Promoted the `status.hostIPs` field for Pods to general availability. - The `PodHostIPs` feature gate no longer has any effect, and the - `status.hostIPs` field is always available within the Pod API. -pr_body: "" +pr: 122870 +releasenote: + text: |- + Promoted the `status.hostIPs` field for Pods to general availability. + The `PodHostIPs` feature gate no longer has any effect, and the + `status.hostIPs` field is always available within the Pod API. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122874-map.yaml b/releases/release-1.30/release-notes/maps/pr-122874-map.yaml index 6e73ad1ef60..d0d425374d4 100644 --- a/releases/release-1.30/release-notes/maps/pr-122874-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122874-map.yaml @@ -1,4 +1,4 @@ -pr: 122874 -releasenote: - text: Fixed node lifecycle controller panic when conditionType ready is been patch - `nil` by mistake. +pr: 122874 +releasenote: + text: Fixed node lifecycle controller panic when conditionType ready is been patch + `nil` by mistake. diff --git a/releases/release-1.30/release-notes/maps/pr-122881-map.yaml b/releases/release-1.30/release-notes/maps/pr-122881-map.yaml index d09395abd32..bd15921d6ed 100644 --- a/releases/release-1.30/release-notes/maps/pr-122881-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122881-map.yaml @@ -1,5 +1,5 @@ -pr: 122881 -releasenote: - text: Added a CBOR implementation of `runtime.Serializer`. Until CBOR graduates - to Alpha, API servers will refuse to start if configured with CBOR support. -pr_body: "" +pr: 122881 +releasenote: + text: Added a CBOR implementation of `runtime.Serializer`. Until CBOR graduates + to Alpha, API servers will refuse to start if configured with CBOR support. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122882-map.yaml b/releases/release-1.30/release-notes/maps/pr-122882-map.yaml index 2c977724168..3d6d7ad0ad1 100644 --- a/releases/release-1.30/release-notes/maps/pr-122882-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122882-map.yaml @@ -1,5 +1,5 @@ -pr: 122882 -releasenote: - text: Aggregated discovery supports both `v2beta1` and v2 types and feature is promoted - to GA. -pr_body: "" +pr: 122882 +releasenote: + text: Aggregated discovery supports both `v2beta1` and v2 types and feature is promoted + to GA. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122883-map.yaml b/releases/release-1.30/release-notes/maps/pr-122883-map.yaml index 5f30c163773..47f84b6ec05 100644 --- a/releases/release-1.30/release-notes/maps/pr-122883-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122883-map.yaml @@ -1,4 +1,4 @@ -pr: 122883 -releasenote: - text: Fixed bug where health check could pass while APIServices are missing from - aggregated discovery. +pr: 122883 +releasenote: + text: Fixed bug where health check could pass while APIServices are missing from + aggregated discovery. diff --git a/releases/release-1.30/release-notes/maps/pr-122887-map.yaml b/releases/release-1.30/release-notes/maps/pr-122887-map.yaml index 057a8a4207d..f45300e3c71 100644 --- a/releases/release-1.30/release-notes/maps/pr-122887-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122887-map.yaml @@ -1,7 +1,7 @@ -pr: 122887 -releasenote: - text: |- - When the `RetryGenerateName` feature gate is enabled on the kube-apiserver, - create requests using generateName are retried automatically by the apiserver when the generated name conflicts with an existing resource name, up to a max limit of 7 retries. - This feature is in alpha. -pr_body: "" +pr: 122887 +releasenote: + text: |- + When the `RetryGenerateName` feature gate is enabled on the kube-apiserver, + create requests using generateName are retried automatically by the apiserver when the generated name conflicts with an existing resource name, up to a max limit of 7 retries. + This feature is in alpha. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122889-map.yaml b/releases/release-1.30/release-notes/maps/pr-122889-map.yaml index 92805bb6163..095874ee0e6 100644 --- a/releases/release-1.30/release-notes/maps/pr-122889-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122889-map.yaml @@ -1,3 +1,3 @@ -pr: 122889 -releasenote: - text: Kubernetes is now built with go `1.22rc2`. +pr: 122889 +releasenote: + text: Kubernetes is now built with go `1.22rc2`. diff --git a/releases/release-1.30/release-notes/maps/pr-122893-map.yaml b/releases/release-1.30/release-notes/maps/pr-122893-map.yaml index d937aa77437..a0b21f82c65 100644 --- a/releases/release-1.30/release-notes/maps/pr-122893-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122893-map.yaml @@ -1,5 +1,5 @@ -pr: 122893 -releasenote: - text: | - "Fixed error handling in `EnsureAdminClusterRoleBindingImpl`." -pr_body: "" +pr: 122893 +releasenote: + text: | + "Fixed error handling in `EnsureAdminClusterRoleBindingImpl`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122907-map.yaml b/releases/release-1.30/release-notes/maps/pr-122907-map.yaml index fec347e2daa..601bcdc7773 100644 --- a/releases/release-1.30/release-notes/maps/pr-122907-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122907-map.yaml @@ -1,5 +1,5 @@ -pr: 122907 -releasenote: - text: The drop-in kubelet configuration directory feature has been targeted for - Beta. -pr_body: "" +pr: 122907 +releasenote: + text: The drop-in kubelet configuration directory feature has been targeted for + Beta. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122914-map.yaml b/releases/release-1.30/release-notes/maps/pr-122914-map.yaml index cb268c0e48d..a5d01fe9635 100644 --- a/releases/release-1.30/release-notes/maps/pr-122914-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122914-map.yaml @@ -1,3 +1,3 @@ -pr: 122914 -releasenote: - text: Promoted `KubeProxyDrainingTerminatingNodes` to `Beta`. +pr: 122914 +releasenote: + text: Promoted `KubeProxyDrainingTerminatingNodes` to `Beta`. diff --git a/releases/release-1.30/release-notes/maps/pr-122937-map.yaml b/releases/release-1.30/release-notes/maps/pr-122937-map.yaml index da82329c563..5733b0e2174 100644 --- a/releases/release-1.30/release-notes/maps/pr-122937-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122937-map.yaml @@ -1,6 +1,6 @@ -pr: 122937 -releasenote: - text: The in-tree cloud provider for vSphere has been deprecated and removed. Users - are advised to utilize the external cloud provider and CSI driver available at - https://github.com/kubernetes/cloud-provider-vsphere. -pr_body: "" +pr: 122937 +releasenote: + text: The in-tree cloud provider for vSphere has been deprecated and removed. Users + are advised to utilize the external cloud provider and CSI driver available at + https://github.com/kubernetes/cloud-provider-vsphere. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-122946-map.yaml b/releases/release-1.30/release-notes/maps/pr-122946-map.yaml index 2b30fb66bed..922de69a97e 100644 --- a/releases/release-1.30/release-notes/maps/pr-122946-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122946-map.yaml @@ -1,6 +1,6 @@ -pr: 122946 -releasenote: - text: "Users can now traverse all the pods that are in the scheduler and waiting - in the permit stage through method `IterateOverWaitingPods`. In other words, all - waitingPods in scheduler can be obtained from any profiles. Before this commit, - each profile could only obtain `waitingPods` within that profile" +pr: 122946 +releasenote: + text: "Users can now traverse all the pods that are in the scheduler and waiting + in the permit stage through method `IterateOverWaitingPods`. In other words, all + waitingPods in scheduler can be obtained from any profiles. Before this commit, + each profile could only obtain `waitingPods` within that profile" diff --git a/releases/release-1.30/release-notes/maps/pr-122961-map.yaml b/releases/release-1.30/release-notes/maps/pr-122961-map.yaml index e39161c1ee8..1fa47164fee 100644 --- a/releases/release-1.30/release-notes/maps/pr-122961-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122961-map.yaml @@ -1,3 +1,3 @@ -pr: 122961 -releasenote: - text: Promoted feature gate `StableLoadBalancerNodeSet` to `GA` . +pr: 122961 +releasenote: + text: Promoted feature gate `StableLoadBalancerNodeSet` to `GA` . diff --git a/releases/release-1.30/release-notes/maps/pr-122999-map.yaml b/releases/release-1.30/release-notes/maps/pr-122999-map.yaml index 7c9dd585cb0..e9ca68f5407 100644 --- a/releases/release-1.30/release-notes/maps/pr-122999-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-122999-map.yaml @@ -1,3 +1,3 @@ -pr: 122999 -releasenote: - text: Fixed an issue calculating total CPU usage reported for Windows nodes. +pr: 122999 +releasenote: + text: Fixed an issue calculating total CPU usage reported for Windows nodes. diff --git a/releases/release-1.30/release-notes/maps/pr-123001-map.yaml b/releases/release-1.30/release-notes/maps/pr-123001-map.yaml index 91e7afe3696..4fb9025856a 100644 --- a/releases/release-1.30/release-notes/maps/pr-123001-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123001-map.yaml @@ -1,5 +1,5 @@ -pr: 123001 -releasenote: - text: | - In the PriorityLevelConfiguration object, the `nominalConcurrencyShares` field now accepts a zero value in both the `flowcontrol.apiserver.k8s.io/v1` and `flowcontrol.apiserver.k8s.io/v1beta3` APIs. -pr_body: "" +pr: 123001 +releasenote: + text: | + In the PriorityLevelConfiguration object, the `nominalConcurrencyShares` field now accepts a zero value in both the `flowcontrol.apiserver.k8s.io/v1` and `flowcontrol.apiserver.k8s.io/v1beta3` APIs. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123003-map.yaml b/releases/release-1.30/release-notes/maps/pr-123003-map.yaml index fac1d68c43e..a6131572bc1 100644 --- a/releases/release-1.30/release-notes/maps/pr-123003-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123003-map.yaml @@ -1,5 +1,5 @@ -pr: 123003 -releasenote: - text: | - "Fixed a bug in `ValidatingAdmissionPolicy` that caused policies using CRD parameters to fail to synchronize." -pr_body: "" +pr: 123003 +releasenote: + text: | + "Fixed a bug in `ValidatingAdmissionPolicy` that caused policies using CRD parameters to fail to synchronize." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123011-map.yaml b/releases/release-1.30/release-notes/maps/pr-123011-map.yaml index 04a9e4d6ee9..ea4548cb8b5 100644 --- a/releases/release-1.30/release-notes/maps/pr-123011-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123011-map.yaml @@ -1,6 +1,6 @@ -pr: 123011 -releasenote: - text: The `--cidr-allocator-type` option set to `CloudAllocator` for `kube-controller-manager` - will be deprecated and removed in a future release. Users are advised to transition - to and explore the available options provided by their external cloud provider. -pr_body: "" +pr: 123011 +releasenote: + text: The `--cidr-allocator-type` option set to `CloudAllocator` for `kube-controller-manager` + will be deprecated and removed in a future release. Users are advised to transition + to and explore the available options provided by their external cloud provider. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123023-map.yaml b/releases/release-1.30/release-notes/maps/pr-123023-map.yaml index c89ebc38053..1a934f6ba04 100644 --- a/releases/release-1.30/release-notes/maps/pr-123023-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123023-map.yaml @@ -1,3 +1,3 @@ -pr: 123023 -releasenote: +pr: 123023 +releasenote: text: Fixed `kubectl explain` to show enum for field types if they were defined. \ No newline at end of file diff --git a/releases/release-1.30/release-notes/maps/pr-123032-map.yaml b/releases/release-1.30/release-notes/maps/pr-123032-map.yaml index 8b5fe927e52..ec76d3e9d72 100644 --- a/releases/release-1.30/release-notes/maps/pr-123032-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123032-map.yaml @@ -1,4 +1,4 @@ -pr: 123032 -releasenote: - text: Fixed Pod stuck in `Terminating` because of `GenerateUnmapVolumeFunc` missing - `globalUnmapPath` when kubelet tries to clean up all volumes that failed reconstruction. +pr: 123032 +releasenote: + text: Fixed Pod stuck in `Terminating` because of `GenerateUnmapVolumeFunc` missing + `globalUnmapPath` when kubelet tries to clean up all volumes that failed reconstruction. diff --git a/releases/release-1.30/release-notes/maps/pr-123038-map.yaml b/releases/release-1.30/release-notes/maps/pr-123038-map.yaml index e854bbae4fd..8bdb1717f6b 100644 --- a/releases/release-1.30/release-notes/maps/pr-123038-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123038-map.yaml @@ -1,5 +1,5 @@ -pr: 123038 -releasenote: - text: | - "Fixed the deprecated version for `pod_scheduling_duration_seconds` that caused the metric to be hidden by default in `1.29`." -pr_body: "" +pr: 123038 +releasenote: + text: | + "Fixed the deprecated version for `pod_scheduling_duration_seconds` that caused the metric to be hidden by default in `1.29`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123052-map.yaml b/releases/release-1.30/release-notes/maps/pr-123052-map.yaml index 47e69175597..dcd95156559 100644 --- a/releases/release-1.30/release-notes/maps/pr-123052-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123052-map.yaml @@ -1,5 +1,5 @@ -pr: 123052 -releasenote: - text: | - "Fixed cleanup of Pod volume mounts when a file was used as a subpath." -pr_body: "" +pr: 123052 +releasenote: + text: | + "Fixed cleanup of Pod volume mounts when a file was used as a subpath." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123055-map.yaml b/releases/release-1.30/release-notes/maps/pr-123055-map.yaml index 35d306f7c5b..b74534bfab2 100644 --- a/releases/release-1.30/release-notes/maps/pr-123055-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123055-map.yaml @@ -1,3 +1,3 @@ -pr: 123055 -releasenote: - text: Fixed an error when trying to expand a volume that does not require node expansion. +pr: 123055 +releasenote: + text: Fixed an error when trying to expand a volume that does not require node expansion. diff --git a/releases/release-1.30/release-notes/maps/pr-123069-map.yaml b/releases/release-1.30/release-notes/maps/pr-123069-map.yaml index 6949200e058..7e0b9ec089b 100644 --- a/releases/release-1.30/release-notes/maps/pr-123069-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123069-map.yaml @@ -1,3 +1,3 @@ -pr: 123069 -releasenote: - text: etcd image `v3.5.12` has been built. +pr: 123069 +releasenote: + text: etcd image `v3.5.12` has been built. diff --git a/releases/release-1.30/release-notes/maps/pr-123077-map.yaml b/releases/release-1.30/release-notes/maps/pr-123077-map.yaml index c8271cd451c..486a4168a96 100644 --- a/releases/release-1.30/release-notes/maps/pr-123077-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123077-map.yaml @@ -1,5 +1,5 @@ -pr: 123077 -releasenote: - text: Fixed a bug in kubeadm where the `--rootfs` global flag didn't work with "kubeadm - upgrade node" for control plane nodes. -pr_body: "" +pr: 123077 +releasenote: + text: Fixed a bug in kubeadm where the `--rootfs` global flag didn't work with "kubeadm + upgrade node" for control plane nodes. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123083-map.yaml b/releases/release-1.30/release-notes/maps/pr-123083-map.yaml index fb1e94d88a1..4b928d95581 100644 --- a/releases/release-1.30/release-notes/maps/pr-123083-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123083-map.yaml @@ -1,5 +1,5 @@ -pr: 123083 -releasenote: - text: '`ValidatingAdmissionPolicy` now supports type checking policies that utilize - variables.' -pr_body: "" +pr: 123083 +releasenote: + text: '`ValidatingAdmissionPolicy` now supports type checking policies that utilize + variables.' +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123093-map.yaml b/releases/release-1.30/release-notes/maps/pr-123093-map.yaml index a8fe5581463..16091dfe076 100644 --- a/releases/release-1.30/release-notes/maps/pr-123093-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123093-map.yaml @@ -1,5 +1,5 @@ -pr: 123093 -releasenote: - text: | - "Fixed a `1.27.0+` regression in kubeadm: The kubelet patch configuration will not be uploaded into the `kube-system/kubelet-config` ConfigMap anymore." -pr_body: "" +pr: 123093 +releasenote: + text: | + "Fixed a `1.27.0+` regression in kubeadm: The kubelet patch configuration will not be uploaded into the `kube-system/kubelet-config` ConfigMap anymore." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123117-map.yaml b/releases/release-1.30/release-notes/maps/pr-123117-map.yaml index 8fc83097972..4e7d5675e98 100644 --- a/releases/release-1.30/release-notes/maps/pr-123117-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123117-map.yaml @@ -1,5 +1,5 @@ -pr: 123117 -releasenote: - text: Fixed a bug in scheduler requeueing where registered wildcard cluster event - sources didn't work. -pr_body: "" +pr: 123117 +releasenote: + text: Fixed a bug in scheduler requeueing where registered wildcard cluster event + sources didn't work. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123134-map.yaml b/releases/release-1.30/release-notes/maps/pr-123134-map.yaml index d69985d1cab..9158271bce2 100644 --- a/releases/release-1.30/release-notes/maps/pr-123134-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123134-map.yaml @@ -1,6 +1,6 @@ -pr: 123134 -releasenote: - text: Graduated support for passing dual-stack `kubelet --node-ip` values when using - a cloud provider. The feature is now GA, and the `CloudDualStackNodeIPs` feature - gate is always enabled. -pr_body: "" +pr: 123134 +releasenote: + text: Graduated support for passing dual-stack `kubelet --node-ip` values when using + a cloud provider. The feature is now GA, and the `CloudDualStackNodeIPs` feature + gate is always enabled. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123135-map.yaml b/releases/release-1.30/release-notes/maps/pr-123135-map.yaml index 822b5f426e2..17f6f0adef0 100644 --- a/releases/release-1.30/release-notes/maps/pr-123135-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123135-map.yaml @@ -1,7 +1,7 @@ -pr: 123135 -releasenote: - text: Node information is now embedded into Pod-bound service account tokens as - additional metadata. The 'JTI' field is set in issued service account tokens, - and this information is embedded as `authentication.kubernetes.io/credential-id` - in the user's ExtraInfo. -pr_body: "" +pr: 123135 +releasenote: + text: Node information is now embedded into Pod-bound service account tokens as + additional metadata. The 'JTI' field is set in issued service account tokens, + and this information is embedded as `authentication.kubernetes.io/credential-id` + in the user's ExtraInfo. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123150-map.yaml b/releases/release-1.30/release-notes/maps/pr-123150-map.yaml index babc4ed8502..ea7dfe4e8d0 100644 --- a/releases/release-1.30/release-notes/maps/pr-123150-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123150-map.yaml @@ -1,5 +1,5 @@ -pr: 123150 -releasenote: - text: | - "Updated `etcd` to version `3.5.12`." -pr_body: "" +pr: 123150 +releasenote: + text: | + "Updated `etcd` to version `3.5.12`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123157-map.yaml b/releases/release-1.30/release-notes/maps/pr-123157-map.yaml index f486a82346b..33d5ce2cc0f 100644 --- a/releases/release-1.30/release-notes/maps/pr-123157-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123157-map.yaml @@ -1,5 +1,5 @@ -pr: 123157 -releasenote: - text: Introduced a new alpha feature gate, `SELinuxMount`, which can now be enabled - to accelerate SELinux relabeling. -pr_body: "" +pr: 123157 +releasenote: + text: Introduced a new alpha feature gate, `SELinuxMount`, which can now be enabled + to accelerate SELinux relabeling. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123165-map.yaml b/releases/release-1.30/release-notes/maps/pr-123165-map.yaml index 003682f696d..243b1df2cee 100644 --- a/releases/release-1.30/release-notes/maps/pr-123165-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123165-map.yaml @@ -1,6 +1,6 @@ -pr: 123165 -releasenote: - text: |- - Added audienceMatchPolicy field to AuthenticationConfiguration and support for configuring multiple audiences. - The "audienceMatchPolicy" can be empty (or unset) when a single audience is specified in the "audiences" field. - The "audienceMatchPolicy" must be set to "MatchAny" when multiple audiences are specified in the "audiences" field. +pr: 123165 +releasenote: + text: |- + Added audienceMatchPolicy field to AuthenticationConfiguration and support for configuring multiple audiences. + The "audienceMatchPolicy" can be empty (or unset) when a single audience is specified in the "audiences" field. + The "audienceMatchPolicy" must be set to "MatchAny" when multiple audiences are specified in the "audiences" field. diff --git a/releases/release-1.30/release-notes/maps/pr-123170-map.yaml b/releases/release-1.30/release-notes/maps/pr-123170-map.yaml index dd35a02b1b8..cb95b6c667d 100644 --- a/releases/release-1.30/release-notes/maps/pr-123170-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123170-map.yaml @@ -1,5 +1,5 @@ -pr: 123170 -releasenote: - text: | - "Updated `distroless-iptables` to `v0.5.0`, debian-base to `bookworm-v1.0.1`, and setcap to `bookworm-v1.0.1`." -pr_body: "" +pr: 123170 +releasenote: + text: | + "Updated `distroless-iptables` to `v0.5.0`, debian-base to `bookworm-v1.0.1`, and setcap to `bookworm-v1.0.1`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123171-map.yaml b/releases/release-1.30/release-notes/maps/pr-123171-map.yaml index 466ed284e7c..a3e81d79f6d 100644 --- a/releases/release-1.30/release-notes/maps/pr-123171-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123171-map.yaml @@ -1,4 +1,4 @@ -pr: 123171 -releasenote: - text: 'kubeadm: the `kubelet-finalize` phase of `kubeadm init` no longer requires the kubelet - kubeconfig to have a specific authinfo.' +pr: 123171 +releasenote: + text: 'kubeadm: the `kubelet-finalize` phase of `kubeadm init` no longer requires the kubelet + kubeconfig to have a specific authinfo.' diff --git a/releases/release-1.30/release-notes/maps/pr-123179-map.yaml b/releases/release-1.30/release-notes/maps/pr-123179-map.yaml index 8e135ff5475..3ea4fc22547 100644 --- a/releases/release-1.30/release-notes/maps/pr-123179-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123179-map.yaml @@ -1,5 +1,5 @@ -pr: 123179 -releasenote: - text: | - Added a new metric `apiserver_encryption_config_controller_automatic_reloads_total` to measure the total number of API server encryption configuration reload successes and failures. This metric now contains the `status` label with a value that is either `success` or `failure`. Deprecated the metrics `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total`. Please use `apiserver_encryption_config_controller_automatic_reloads_total` instead. -pr_body: "" +pr: 123179 +releasenote: + text: | + Added a new metric `apiserver_encryption_config_controller_automatic_reloads_total` to measure the total number of API server encryption configuration reload successes and failures. This metric now contains the `status` label with a value that is either `success` or `failure`. Deprecated the metrics `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total`. Please use `apiserver_encryption_config_controller_automatic_reloads_total` instead. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123180-map.yaml b/releases/release-1.30/release-notes/maps/pr-123180-map.yaml index 6bb52691dfe..5efda7e368b 100644 --- a/releases/release-1.30/release-notes/maps/pr-123180-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123180-map.yaml @@ -1,5 +1,5 @@ -pr: 123180 -releasenote: - text: | - "`readOnly` volumes now support recursive read-only mounts for kernel versions >= 5.12." -pr_body: "" +pr: 123180 +releasenote: + text: | + "`readOnly` volumes now support recursive read-only mounts for kernel versions >= 5.12." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123190-map.yaml b/releases/release-1.30/release-notes/maps/pr-123190-map.yaml index acaa5f7ed26..ec2a5583162 100644 --- a/releases/release-1.30/release-notes/maps/pr-123190-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123190-map.yaml @@ -1,5 +1,5 @@ -pr: 123190 -releasenote: - text: | - "Added the `apiserver_watch_cache_read_wait` metric to measure the watch cache impact on request latency." -pr_body: "" +pr: 123190 +releasenote: + text: | + "Added the `apiserver_watch_cache_read_wait` metric to measure the watch cache impact on request latency." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123205-map.yaml b/releases/release-1.30/release-notes/maps/pr-123205-map.yaml index e260736bde9..f8a05d065a4 100644 --- a/releases/release-1.30/release-notes/maps/pr-123205-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123205-map.yaml @@ -1,5 +1,5 @@ -pr: 123205 -releasenote: - text: The NodeLogQuery feature has been promoted to beta. No functional changes - have been made from the alpha version. -pr_body: "" +pr: 123205 +releasenote: + text: The NodeLogQuery feature has been promoted to beta. No functional changes + have been made from the alpha version. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123215-map.yaml b/releases/release-1.30/release-notes/maps/pr-123215-map.yaml index e23d86cef18..ce29f5b161b 100644 --- a/releases/release-1.30/release-notes/maps/pr-123215-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123215-map.yaml @@ -1,3 +1,3 @@ -pr: 123215 -releasenote: - text: 'Graduated "Forensic Container Checkpointing" (KEP #2008) from Alpha to Beta.' +pr: 123215 +releasenote: + text: 'Graduated "Forensic Container Checkpointing" (KEP #2008) from Alpha to Beta.' diff --git a/releases/release-1.30/release-notes/maps/pr-123216-map.yaml b/releases/release-1.30/release-notes/maps/pr-123216-map.yaml index 8f56d5545fd..5d2fa2d24ae 100644 --- a/releases/release-1.30/release-notes/maps/pr-123216-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123216-map.yaml @@ -1,5 +1,5 @@ -pr: 123216 -releasenote: - text: The kubelet now rejects creating the pod if `hostUserns=false` and the CRI - runtime does not support user namespaces. -pr_body: "" +pr: 123216 +releasenote: + text: The kubelet now rejects creating the pod if `hostUserns=false` and the CRI + runtime does not support user namespaces. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123217-map.yaml b/releases/release-1.30/release-notes/maps/pr-123217-map.yaml index dca244355e8..4ce30b5afab 100644 --- a/releases/release-1.30/release-notes/maps/pr-123217-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123217-map.yaml @@ -1,3 +1,3 @@ -pr: 123217 -releasenote: - text: Kubernetes is now built with Go `1.22`. +pr: 123217 +releasenote: + text: Kubernetes is now built with Go `1.22`. diff --git a/releases/release-1.30/release-notes/maps/pr-123222-map.yaml b/releases/release-1.30/release-notes/maps/pr-123222-map.yaml index 1f6616c6662..9844bf3bebf 100644 --- a/releases/release-1.30/release-notes/maps/pr-123222-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123222-map.yaml @@ -1,4 +1,4 @@ -pr: 123222 -releasenote: - text: Fixed a potential data race in DRA with no known real-world implications. -pr_body: "" +pr: 123222 +releasenote: + text: Fixed a potential data race in DRA with no known real-world implications. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123223-map.yaml b/releases/release-1.30/release-notes/maps/pr-123223-map.yaml index 2e8bbadb418..7bc9e0d7168 100644 --- a/releases/release-1.30/release-notes/maps/pr-123223-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123223-map.yaml @@ -1,5 +1,5 @@ -pr: 123223 -releasenote: - text: | - Enhanced cloud provider integrations to support optional, per-Node custom labels that can be supplied and applied to Nodes by the node controller. These extra labels will only be applied where the cloud provider integration supports this feature. -pr_body: "" +pr: 123223 +releasenote: + text: | + Enhanced cloud provider integrations to support optional, per-Node custom labels that can be supplied and applied to Nodes by the node controller. These extra labels will only be applied where the cloud provider integration supports this feature. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123225-map.yaml b/releases/release-1.30/release-notes/maps/pr-123225-map.yaml index deb0f227cd8..78a9853f59d 100644 --- a/releases/release-1.30/release-notes/maps/pr-123225-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123225-map.yaml @@ -1,6 +1,6 @@ -pr: 123225 -releasenote: - text: kube-apiserver now reports latency metric for JWT authenticator authenticate - token decisions in the `apiserver_authentication_jwt_authenticator_latency_seconds` - metric, labeled by jwtIssuer hash and result. -pr_body: "" +pr: 123225 +releasenote: + text: kube-apiserver now reports latency metric for JWT authenticator authenticate + token decisions in the `apiserver_authentication_jwt_authenticator_latency_seconds` + metric, labeled by jwtIssuer hash and result. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123226-map.yaml b/releases/release-1.30/release-notes/maps/pr-123226-map.yaml index 0529e30308b..c28240ad457 100644 --- a/releases/release-1.30/release-notes/maps/pr-123226-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123226-map.yaml @@ -1,5 +1,5 @@ -pr: 123226 -releasenote: - text: | - "`kubectl get job` now displays the status for the listed jobs." -pr_body: "" +pr: 123226 +releasenote: + text: | + "`kubectl get job` now displays the status for the listed jobs." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123261-map.yaml b/releases/release-1.30/release-notes/maps/pr-123261-map.yaml index 268c0ebf85e..084dc28a581 100644 --- a/releases/release-1.30/release-notes/maps/pr-123261-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123261-map.yaml @@ -1,5 +1,5 @@ -pr: 123261 -releasenote: - text: | - "Restored the `--verify-only` function in code generation wrappers." -pr_body: "" +pr: 123261 +releasenote: + text: | + "Restored the `--verify-only` function in code generation wrappers." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123271-map.yaml b/releases/release-1.30/release-notes/maps/pr-123271-map.yaml index 5cc92480c7a..1da5435e136 100644 --- a/releases/release-1.30/release-notes/maps/pr-123271-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123271-map.yaml @@ -1,5 +1,5 @@ -pr: 123271 -releasenote: - text: | - "kubeadm: ensured that a variety of API server requests were retried during "init", "join", "upgrade", "reset" workflows. Prior to this change, some API server requests, such as creating or updating ConfigMaps, were "one-shot" - i.e., they could fail if the API server dropped connectivity for a very short period of time." -pr_body: "" +pr: 123271 +releasenote: + text: | + "kubeadm: ensured that a variety of API server requests were retried during "init", "join", "upgrade", "reset" workflows. Prior to this change, some API server requests, such as creating or updating ConfigMaps, were "one-shot" - i.e., they could fail if the API server dropped connectivity for a very short period of time." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123272-map.yaml b/releases/release-1.30/release-notes/maps/pr-123272-map.yaml index 19514346845..75a5d03ff57 100644 --- a/releases/release-1.30/release-notes/maps/pr-123272-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123272-map.yaml @@ -1,5 +1,5 @@ -pr: 123272 -releasenote: - text: | - "cri-api: Implemented KEP-3857: Recursive Read-only (RRO) mounts." -pr_body: "" +pr: 123272 +releasenote: + text: | + "cri-api: Implemented KEP-3857: Recursive Read-only (RRO) mounts." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123273-map.yaml b/releases/release-1.30/release-notes/maps/pr-123273-map.yaml index a649bb4e5d1..a029f83eb8b 100644 --- a/releases/release-1.30/release-notes/maps/pr-123273-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123273-map.yaml @@ -1,5 +1,5 @@ -pr: 123273 -releasenote: - text: | - "Added (alpha) support for the `managedBy` field on Jobs. Jobs with a custom value of this field - any value other than `kubernetes.io/job-controller` - were skipped by the job controller, and their reconciliation was delegated to an external controller, indicated by the value of the field. Jobs that didn't have this field at all, or where the field value was the reserved string `kubernetes.io/job-controller`, were reconciled by the built-in job controller." -pr_body: "" +pr: 123273 +releasenote: + text: | + "Added (alpha) support for the `managedBy` field on Jobs. Jobs with a custom value of this field - any value other than `kubernetes.io/job-controller` - were skipped by the job controller, and their reconciliation was delegated to an external controller, indicated by the value of the field. Jobs that didn't have this field at all, or where the field value was the reserved string `kubernetes.io/job-controller`, were reconciled by the built-in job controller." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123281-map.yaml b/releases/release-1.30/release-notes/maps/pr-123281-map.yaml index 99d55526d9b..c688387311b 100644 --- a/releases/release-1.30/release-notes/maps/pr-123281-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123281-map.yaml @@ -1,8 +1,8 @@ -pr: 123281 -releasenote: - text: | - RemoteCommand feature gates for kubectl exec, cp, and attach over WebSockets are now enabled by default (Beta): - - Server-side feature gate: `TranslateStreamCloseWebsocketRequests` - - Client-side (kubectl) feature gate: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS` - - To disable RemoteCommand over WebSockets for kubectl, the environment variable feature gate must be explicitly set to `false`: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS=false`. -pr_body: "" +pr: 123281 +releasenote: + text: | + RemoteCommand feature gates for kubectl exec, cp, and attach over WebSockets are now enabled by default (Beta): + - Server-side feature gate: `TranslateStreamCloseWebsocketRequests` + - Client-side (kubectl) feature gate: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS` + - To disable RemoteCommand over WebSockets for kubectl, the environment variable feature gate must be explicitly set to `false`: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS=false`. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123282-map.yaml b/releases/release-1.30/release-notes/maps/pr-123282-map.yaml index be2ecd80263..d1803ccd486 100644 --- a/releases/release-1.30/release-notes/maps/pr-123282-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123282-map.yaml @@ -1,5 +1,5 @@ -pr: 123282 -releasenote: - text: Addressed an issue where a JWT authenticator set up via `--authentication-config` - would encounter failures in verifying tokens not signed with RS256. -pr_body: "" +pr: 123282 +releasenote: + text: Addressed an issue where a JWT authenticator set up via `--authentication-config` + would encounter failures in verifying tokens not signed with RS256. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123310-map.yaml b/releases/release-1.30/release-notes/maps/pr-123310-map.yaml index f3f6ca70933..c5b15690168 100644 --- a/releases/release-1.30/release-notes/maps/pr-123310-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123310-map.yaml @@ -1,4 +1,4 @@ -pr: 123310 -releasenote: - text: Updated kubedns and nodelocaldns to version `v1.23.0`. -pr_body: "" +pr: 123310 +releasenote: + text: Updated kubedns and nodelocaldns to version `v1.23.0`. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123323-map.yaml b/releases/release-1.30/release-notes/maps/pr-123323-map.yaml index d214d58fac1..46a3c0af167 100644 --- a/releases/release-1.30/release-notes/maps/pr-123323-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123323-map.yaml @@ -1,6 +1,6 @@ -pr: 123323 -releasenote: - text: Fixed a bug that an init container with containerRestartPolicy with `Always` - cannot update its state from terminated to non-terminated for the pod with restartPolicy - with `Never` or `OnFailure`. -pr_body: "" +pr: 123323 +releasenote: + text: Fixed a bug that an init container with containerRestartPolicy with `Always` + cannot update its state from terminated to non-terminated for the pod with restartPolicy + with `Never` or `OnFailure`. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123331-map.yaml b/releases/release-1.30/release-notes/maps/pr-123331-map.yaml index 41106977849..3bff09a31dd 100644 --- a/releases/release-1.30/release-notes/maps/pr-123331-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123331-map.yaml @@ -1,5 +1,5 @@ -pr: 123331 -releasenote: - text: | - When initializing nodes using external cloud-providers, the process now waits for the providerID value to be available before declaring the node ready. This ensures that nodes are not marked as Ready prematurely due to communication errors with the cloud-provider. The providerID and zone labels are necessary for integrations such as load balancers to function correctly. Users can choose to opt out of this behavior by setting the feature flag OptionalProviderID in the cloud-controller-manager. -pr_body: "" +pr: 123331 +releasenote: + text: | + When initializing nodes using external cloud-providers, the process now waits for the providerID value to be available before declaring the node ready. This ensures that nodes are not marked as Ready prematurely due to communication errors with the cloud-provider. The providerID and zone labels are necessary for integrations such as load balancers to function correctly. Users can choose to opt out of this behavior by setting the feature flag OptionalProviderID in the cloud-controller-manager. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123333-map.yaml b/releases/release-1.30/release-notes/maps/pr-123333-map.yaml index de714efc20f..f84984b0c06 100644 --- a/releases/release-1.30/release-notes/maps/pr-123333-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123333-map.yaml @@ -1,5 +1,5 @@ -pr: 123333 -releasenote: - text: kube-apiserver now reports metrics for authorization decisions in the `apiserver_authorization_decisions_total` - metric, labeled by authorizer type, name, and decision. -pr_body: "" +pr: 123333 +releasenote: + text: kube-apiserver now reports metrics for authorization decisions in the `apiserver_authorization_decisions_total` + metric, labeled by authorizer type, name, and decision. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123341-map.yaml b/releases/release-1.30/release-notes/maps/pr-123341-map.yaml index bf24febd389..0f20da89f23 100644 --- a/releases/release-1.30/release-notes/maps/pr-123341-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123341-map.yaml @@ -1,5 +1,5 @@ -pr: 123341 -releasenote: - text: | - "kubeadm: added the `WaitForAllControlPlaneComponents` feature gate. It could be used to tell kubeadm to wait for all control plane components to be ready when running "kubeadm init" or "kubeadm join --control-plane". Previously, kubeadm only waited for the kube-apiserver. The "kubeadm join" workflow now includes a new experimental phase called "wait-control-plane". This phase was marked as non-experimental when WaitForAllControlPlaneComponents became GA. Accordingly, a "kubeadm init" phase "wait-control-plane" was also available once WaitForAllControlPlaneComponents became GA. These phases could be skipped if the user preferred not to wait for the control plane components." -pr_body: "" +pr: 123341 +releasenote: + text: | + "kubeadm: added the `WaitForAllControlPlaneComponents` feature gate. It could be used to tell kubeadm to wait for all control plane components to be ready when running "kubeadm init" or "kubeadm join --control-plane". Previously, kubeadm only waited for the kube-apiserver. The "kubeadm join" workflow now includes a new experimental phase called "wait-control-plane". This phase was marked as non-experimental when WaitForAllControlPlaneComponents became GA. Accordingly, a "kubeadm init" phase "wait-control-plane" was also available once WaitForAllControlPlaneComponents became GA. These phases could be skipped if the user preferred not to wait for the control plane components." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123343-map.yaml b/releases/release-1.30/release-notes/maps/pr-123343-map.yaml index 0ed9d6fc0de..a92dc05a7ab 100644 --- a/releases/release-1.30/release-notes/maps/pr-123343-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123343-map.yaml @@ -1,5 +1,5 @@ -pr: 123343 -releasenote: - text: | - "Updated `ImageGCMaxAge` behavior in the kubelet to wait the `MaxAge` duration after the kubelet has restarted before garbage collecting." -pr_body: "" +pr: 123343 +releasenote: + text: | + "Updated `ImageGCMaxAge` behavior in the kubelet to wait the `MaxAge` duration after the kubelet has restarted before garbage collecting." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123344-map.yaml b/releases/release-1.30/release-notes/maps/pr-123344-map.yaml index 8a2baccd9ba..556f37ff816 100644 --- a/releases/release-1.30/release-notes/maps/pr-123344-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123344-map.yaml @@ -1,5 +1,5 @@ -pr: 123344 -releasenote: - text: | - "The `StorageVersionMigration` API, previously available as a Custom Resource Definition (CRD), is now a built-in API in Kubernetes." -pr_body: "" +pr: 123344 +releasenote: + text: | + "The `StorageVersionMigration` API, previously available as a Custom Resource Definition (CRD), is now a built-in API in Kubernetes." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123345-map.yaml b/releases/release-1.30/release-notes/maps/pr-123345-map.yaml index eb6785d9eae..47b12e05693 100644 --- a/releases/release-1.30/release-notes/maps/pr-123345-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123345-map.yaml @@ -1,5 +1,5 @@ -pr: 123345 -releasenote: - text: | - Added a "reason" field to the "image_garbage_collected_total" metric, allowing administrators to differentiate between images that were collected for reasons "age" vs "space". -pr_body: "" +pr: 123345 +releasenote: + text: | + Added a "reason" field to the "image_garbage_collected_total" metric, allowing administrators to differentiate between images that were collected for reasons "age" vs "space". +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123366-map.yaml b/releases/release-1.30/release-notes/maps/pr-123366-map.yaml index 638d3f47b94..41fd0021ff9 100644 --- a/releases/release-1.30/release-notes/maps/pr-123366-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123366-map.yaml @@ -1,6 +1,6 @@ -pr: 123366 -releasenote: - text: Revised node selection based on container image location. The kube-scheduler - now considers whether nodes have the required images available for init containers, - and for sidecar containers if the cluster has 'SidecarContainers' enabled. -pr_body: "" +pr: 123366 +releasenote: + text: Revised node selection based on container image location. The kube-scheduler + now considers whether nodes have the required images available for init containers, + and for sidecar containers if the cluster has 'SidecarContainers' enabled. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123372-map.yaml b/releases/release-1.30/release-notes/maps/pr-123372-map.yaml index 40a85375a1e..5238d481109 100644 --- a/releases/release-1.30/release-notes/maps/pr-123372-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123372-map.yaml @@ -1,5 +1,5 @@ -pr: 123372 -releasenote: - text: | - "kubeadm: Added support for machine-readable output with `-o yaml` and `-o json` to the command `kubeadm certs check-expiration`. This change is introduced in a new API: ``` kind: CertificateExpirationInfo apiVersion: output.kubeadm.k8s.io/v1alpha3 ``` The existing non-structured formatting is preserved. The output API version v1alpha2 is now deprecated and will be removed in a future release. Please migrate to using v1alpha3." -pr_body: "" +pr: 123372 +releasenote: + text: | + "kubeadm: Added support for machine-readable output with `-o yaml` and `-o json` to the command `kubeadm certs check-expiration`. This change is introduced in a new API: ``` kind: CertificateExpirationInfo apiVersion: output.kubeadm.k8s.io/v1alpha3 ``` The existing non-structured formatting is preserved. The output API version v1alpha2 is now deprecated and will be removed in a future release. Please migrate to using v1alpha3." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123384-map.yaml b/releases/release-1.30/release-notes/maps/pr-123384-map.yaml index f7adeeb24ea..b6728850c23 100644 --- a/releases/release-1.30/release-notes/maps/pr-123384-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123384-map.yaml @@ -1,5 +1,5 @@ -pr: 123384 -releasenote: - text: | - "Improved scheduler performance when no scoring plugins were defined." -pr_body: "" +pr: 123384 +releasenote: + text: | + "Improved scheduler performance when no scoring plugins were defined." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123385-map.yaml b/releases/release-1.30/release-notes/maps/pr-123385-map.yaml index d3020d86fc4..333183434a6 100644 --- a/releases/release-1.30/release-notes/maps/pr-123385-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123385-map.yaml @@ -1,7 +1,7 @@ -pr: 123385 -releasenote: - text: |- - Added a alpha feature, behind the `RelaxedEnvironmentVariableValidation` feature gate. - When that gate is enabled, Kubernetes allows almost all printable ASCII characters to be used in the names - of environment variables for containers in Pods. -pr_body: "" +pr: 123385 +releasenote: + text: |- + Added a alpha feature, behind the `RelaxedEnvironmentVariableValidation` feature gate. + When that gate is enabled, Kubernetes allows almost all printable ASCII characters to be used in the names + of environment variables for containers in Pods. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123405-map.yaml b/releases/release-1.30/release-notes/maps/pr-123405-map.yaml index 0080fd68863..80bf91fc164 100644 --- a/releases/release-1.30/release-notes/maps/pr-123405-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123405-map.yaml @@ -1,4 +1,4 @@ -pr: 123405 -releasenote: - text: ValidatingAdmissionPolicy was promoted to GA and will be `enabled` by default. -pr_body: "" +pr: 123405 +releasenote: + text: ValidatingAdmissionPolicy was promoted to GA and will be `enabled` by default. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123406-map.yaml b/releases/release-1.30/release-notes/maps/pr-123406-map.yaml index 55e03344da3..008fbf8654a 100644 --- a/releases/release-1.30/release-notes/maps/pr-123406-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123406-map.yaml @@ -1,5 +1,5 @@ -pr: 123406 -releasenote: - text: 'kubeadm: fixed a bug during kubeadm upgrade, where it is not possible to - mount a new device and create a symbolic link for /etc/kubernetes (or a sub-directory) - so that kubeadm stores its information on the mounted device.' +pr: 123406 +releasenote: + text: 'kubeadm: fixed a bug during kubeadm upgrade, where it is not possible to + mount a new device and create a symbolic link for /etc/kubernetes (or a sub-directory) + so that kubeadm stores its information on the mounted device.' diff --git a/releases/release-1.30/release-notes/maps/pr-123412-map.yaml b/releases/release-1.30/release-notes/maps/pr-123412-map.yaml index 92fd3735a45..817bde2af37 100644 --- a/releases/release-1.30/release-notes/maps/pr-123412-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123412-map.yaml @@ -1,5 +1,5 @@ -pr: 123412 -releasenote: - text: | - "Added alpha-level support for the SuccessPolicy in Jobs." -pr_body: "" +pr: 123412 +releasenote: + text: | + "Added alpha-level support for the SuccessPolicy in Jobs." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123413-map.yaml b/releases/release-1.30/release-notes/maps/pr-123413-map.yaml index 6d4f171efd8..2e6a43a8f6a 100644 --- a/releases/release-1.30/release-notes/maps/pr-123413-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123413-map.yaml @@ -1,5 +1,5 @@ -pr: 123413 -releasenote: - text: | - "kubectl `port-forward` over websockets (tunneling SPDY) can now be enabled using an `Alpha` feature flag environment variable: KUBECTL_PORT_FORWARD_WEBSOCKETS=true. The API Server being communicated to must *also* have an `Alpha` feature flag enabled: PortForwardWebsockets." -pr_body: "" +pr: 123413 +releasenote: + text: | + "kubectl `port-forward` over websockets (tunneling SPDY) can now be enabled using an `Alpha` feature flag environment variable: KUBECTL_PORT_FORWARD_WEBSOCKETS=true. The API Server being communicated to must *also* have an `Alpha` feature flag enabled: PortForwardWebsockets." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123418-map.yaml b/releases/release-1.30/release-notes/maps/pr-123418-map.yaml index e759fbcd8b9..77b92122ea5 100644 --- a/releases/release-1.30/release-notes/maps/pr-123418-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123418-map.yaml @@ -1,3 +1,3 @@ -pr: 123418 -releasenote: - text: LoadBalancerIPMode feature is now marked as Beta. +pr: 123418 +releasenote: + text: LoadBalancerIPMode feature is now marked as Beta. diff --git a/releases/release-1.30/release-notes/maps/pr-123424-map.yaml b/releases/release-1.30/release-notes/maps/pr-123424-map.yaml index b2784708619..c51ca9fcad5 100644 --- a/releases/release-1.30/release-notes/maps/pr-123424-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123424-map.yaml @@ -1,4 +1,4 @@ -pr: 123424 -releasenote: - text: Promoted the `ImageMaximumGCAge` feature to beta. -pr_body: "" +pr: 123424 +releasenote: + text: Promoted the `ImageMaximumGCAge` feature to beta. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123425-map.yaml b/releases/release-1.30/release-notes/maps/pr-123425-map.yaml index 05f6f522ce2..70d3978d771 100644 --- a/releases/release-1.30/release-notes/maps/pr-123425-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123425-map.yaml @@ -1,4 +1,4 @@ -pr: 123425 -releasenote: - text: Added feature gate `MutatingAdmissionPolicy` for enabling mutation policy - in admission chain. +pr: 123425 +releasenote: + text: Added feature gate `MutatingAdmissionPolicy` for enabling mutation policy + in admission chain. diff --git a/releases/release-1.30/release-notes/maps/pr-123431-map.yaml b/releases/release-1.30/release-notes/maps/pr-123431-map.yaml index 9a31d53b159..4f006ddcdfb 100644 --- a/releases/release-1.30/release-notes/maps/pr-123431-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123431-map.yaml @@ -1,6 +1,6 @@ -pr: 123431 -releasenote: - text: Structured Authentication Configuration now supports configuring multiple - JWT authenticators. The maximum allowed JWT authenticators in the authentication - configuration is 64. -pr_body: "" +pr: 123431 +releasenote: + text: Structured Authentication Configuration now supports configuring multiple + JWT authenticators. The maximum allowed JWT authenticators in the authentication + configuration is 64. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123435-map.yaml b/releases/release-1.30/release-notes/maps/pr-123435-map.yaml index c1cb279206f..e990e111d0c 100644 --- a/releases/release-1.30/release-notes/maps/pr-123435-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123435-map.yaml @@ -1,6 +1,6 @@ -pr: 123435 -releasenote: - text: AppArmor profiles can now be configured through fields on the `PodSecurityContext` - and container `SecurityContext`. The beta AppArmor annotations are deprecated, - and AppArmor status is no longer included in the node ready condition. -pr_body: "" +pr: 123435 +releasenote: + text: AppArmor profiles can now be configured through fields on the `PodSecurityContext` + and container `SecurityContext`. The beta AppArmor annotations are deprecated, + and AppArmor status is no longer included in the node ready condition. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123442-map.yaml b/releases/release-1.30/release-notes/maps/pr-123442-map.yaml index d2d49aeba62..1dd949fb2a9 100644 --- a/releases/release-1.30/release-notes/maps/pr-123442-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123442-map.yaml @@ -1,5 +1,5 @@ -pr: 123442 -releasenote: - text: | - "`NewVolumeManagerReconstruction` feature is now GA." -pr_body: "" +pr: 123442 +releasenote: + text: | + "`NewVolumeManagerReconstruction` feature is now GA." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123461-map.yaml b/releases/release-1.30/release-notes/maps/pr-123461-map.yaml index 55a8d465f14..39e1e7ce365 100644 --- a/releases/release-1.30/release-notes/maps/pr-123461-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123461-map.yaml @@ -1,5 +1,5 @@ -pr: 123461 -releasenote: - text: | - "In kubeadm, in the new output API 'output.kubeadm.k8s.io/v1alpha3', the UpgradePlan structure that is used when calling 'kubeadm upgrade plan ... -o yaml|json' was modified to include a list of multiple available upgrades." -pr_body: "" +pr: 123461 +releasenote: + text: | + "In kubeadm, in the new output API 'output.kubeadm.k8s.io/v1alpha3', the UpgradePlan structure that is used when calling 'kubeadm upgrade plan ... -o yaml|json' was modified to include a list of multiple available upgrades." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123464-map.yaml b/releases/release-1.30/release-notes/maps/pr-123464-map.yaml index c354460b153..9a3894925ce 100644 --- a/releases/release-1.30/release-notes/maps/pr-123464-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123464-map.yaml @@ -1,6 +1,6 @@ -pr: 123464 -releasenote: - text: 'kubeadm: the `bridge-nf-call-iptables=1` and `bridge-nf-call-ip6tables=1` - preflight checks are removed since not all the network implementations require - this setting, network plugins are responsible for setting this correctly depending - on whether or not they connect containers to Linux bridges or use some other mechanism.' +pr: 123464 +releasenote: + text: 'kubeadm: the `bridge-nf-call-iptables=1` and `bridge-nf-call-ip6tables=1` + preflight checks are removed since not all the network implementations require + this setting, network plugins are responsible for setting this correctly depending + on whether or not they connect containers to Linux bridges or use some other mechanism.' diff --git a/releases/release-1.30/release-notes/maps/pr-123475-map.yaml b/releases/release-1.30/release-notes/maps/pr-123475-map.yaml index 866ec1b5ff8..122b9fd1b3e 100644 --- a/releases/release-1.30/release-notes/maps/pr-123475-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123475-map.yaml @@ -1,5 +1,5 @@ -pr: 123475 -releasenote: - text: Fixed bug where providing a FieldPath to a CRD Validation Rule would erroneously - affect the reported field path of other unrelated CRD Validation Rules on the - same schema. +pr: 123475 +releasenote: + text: Fixed bug where providing a FieldPath to a CRD Validation Rule would erroneously + affect the reported field path of other unrelated CRD Validation Rules on the + same schema. diff --git a/releases/release-1.30/release-notes/maps/pr-123479-map.yaml b/releases/release-1.30/release-notes/maps/pr-123479-map.yaml index 7b55c879136..20fd760d83f 100644 --- a/releases/release-1.30/release-notes/maps/pr-123479-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123479-map.yaml @@ -1,4 +1,4 @@ -pr: 123479 -releasenote: - text: Updated the sample-apiserver manifest example to include correct RBAC configurations. -pr_body: "" +pr: 123479 +releasenote: + text: Updated the sample-apiserver manifest example to include correct RBAC configurations. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123481-map.yaml b/releases/release-1.30/release-notes/maps/pr-123481-map.yaml index 3fa092f0c01..33deaca9279 100644 --- a/releases/release-1.30/release-notes/maps/pr-123481-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123481-map.yaml @@ -1,7 +1,7 @@ -pr: 123481 -releasenote: - text: |- - Graduated support for `minDomains` in pod topology spread constraints, to general availability. - The `MinDomainsInPodTopologySpread` feature gate no longer has any effect, and the field is - always available within the Pod and PodTemplate APIs. -pr_body: "" +pr: 123481 +releasenote: + text: |- + Graduated support for `minDomains` in pod topology spread constraints, to general availability. + The `MinDomainsInPodTopologySpread` feature gate no longer has any effect, and the field is + always available within the Pod and PodTemplate APIs. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123482-map.yaml b/releases/release-1.30/release-notes/maps/pr-123482-map.yaml index 948968da256..de48d94bfab 100644 --- a/releases/release-1.30/release-notes/maps/pr-123482-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123482-map.yaml @@ -1,4 +1,4 @@ -pr: 123482 -releasenote: - text: Graduated HorizontalPodAutoscaler support for per-container metrics to stable. -pr_body: "" +pr: 123482 +releasenote: + text: Graduated HorizontalPodAutoscaler support for per-container metrics to stable. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123484-map.yaml b/releases/release-1.30/release-notes/maps/pr-123484-map.yaml index 5a8c1343cdb..90fee1ba8af 100644 --- a/releases/release-1.30/release-notes/maps/pr-123484-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123484-map.yaml @@ -1,4 +1,4 @@ -pr: 123484 -releasenote: - text: Added `client-go` support for upgrading subresource fields from client-side - to server-side management. +pr: 123484 +releasenote: + text: Added `client-go` support for upgrading subresource fields from client-side + to server-side management. diff --git a/releases/release-1.30/release-notes/maps/pr-123487-map.yaml b/releases/release-1.30/release-notes/maps/pr-123487-map.yaml index 54a5516bb44..2c1e1982b3c 100644 --- a/releases/release-1.30/release-notes/maps/pr-123487-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123487-map.yaml @@ -1,6 +1,6 @@ -pr: 123487 -releasenote: - text: Added a new (alpha) field, `trafficDistribution`, to the Service `spec` to - express preferences for traffic distribution to endpoints. Enabled through the - `ServiceTrafficDistribution` feature gate. -pr_body: "" +pr: 123487 +releasenote: + text: Added a new (alpha) field, `trafficDistribution`, to the Service `spec` to + express preferences for traffic distribution to endpoints. Enabled through the + `ServiceTrafficDistribution` feature gate. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123492-map.yaml b/releases/release-1.30/release-notes/maps/pr-123492-map.yaml index 0e305b552ab..bc94678666b 100644 --- a/releases/release-1.30/release-notes/maps/pr-123492-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123492-map.yaml @@ -1,5 +1,5 @@ -pr: 123492 -releasenote: - text: | - "kubeadm: fixed a bug where "kubeadm upgrade plan -o yaml|json" included unneeded output and was missing component config information." -pr_body: "" +pr: 123492 +releasenote: + text: | + "kubeadm: fixed a bug where "kubeadm upgrade plan -o yaml|json" included unneeded output and was missing component config information." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123504-map.yaml b/releases/release-1.30/release-notes/maps/pr-123504-map.yaml index b26d24e6d46..e3f44cd6785 100644 --- a/releases/release-1.30/release-notes/maps/pr-123504-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123504-map.yaml @@ -1,5 +1,5 @@ -pr: 123504 -releasenote: - text: | - "Upgraded metrics server to `v0.7.0`." -pr_body: "" +pr: 123504 +releasenote: + text: | + "Upgraded metrics server to `v0.7.0`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123508-map.yaml b/releases/release-1.30/release-notes/maps/pr-123508-map.yaml index 0d21b46d528..63581f8b514 100644 --- a/releases/release-1.30/release-notes/maps/pr-123508-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123508-map.yaml @@ -1,5 +1,5 @@ -pr: 123508 -releasenote: - text: | - "Allowed container runtimes to fix an image garbage collection bug by adding an `image_id` field to the CRI Container message." -pr_body: "" +pr: 123508 +releasenote: + text: | + "Allowed container runtimes to fix an image garbage collection bug by adding an `image_id` field to the CRI Container message." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123516-map.yaml b/releases/release-1.30/release-notes/maps/pr-123516-map.yaml index fb8dfb8134b..d2a46b21d49 100644 --- a/releases/release-1.30/release-notes/maps/pr-123516-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123516-map.yaml @@ -1,5 +1,5 @@ -pr: 123516 -releasenote: - text: | - "Dynamic Resource Allocation: DRA drivers can now use "structured parameters" to let the scheduler handle claim allocation." -pr_body: "" +pr: 123516 +releasenote: + text: | + "Dynamic Resource Allocation: DRA drivers can now use "structured parameters" to let the scheduler handle claim allocation." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123517-map.yaml b/releases/release-1.30/release-notes/maps/pr-123517-map.yaml index 59f4ba2a257..281accbce0e 100644 --- a/releases/release-1.30/release-notes/maps/pr-123517-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123517-map.yaml @@ -1,4 +1,4 @@ -pr: 123517 -releasenote: - text: Patched a leak of a discovery document that would occur when an Aggregated - APIService changed its Spec.Service field and did not change it back. +pr: 123517 +releasenote: + text: Patched a leak of a discovery document that would occur when an Aggregated + APIService changed its Spec.Service field and did not change it back. diff --git a/releases/release-1.30/release-notes/maps/pr-123520-map.yaml b/releases/release-1.30/release-notes/maps/pr-123520-map.yaml index edf22e6a950..a901713582b 100644 --- a/releases/release-1.30/release-notes/maps/pr-123520-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123520-map.yaml @@ -1,5 +1,5 @@ -pr: 123520 -releasenote: - text: | - "In the Pod API, setting the alpha `procMount` field to `Unmasked` in a container now required setting `spec.hostUsers=false` as well." -pr_body: "" +pr: 123520 +releasenote: + text: | + "In the Pod API, setting the alpha `procMount` field to `Unmasked` in a container now required setting `spec.hostUsers=false` as well." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123525-map.yaml b/releases/release-1.30/release-notes/maps/pr-123525-map.yaml index 684c65ad786..d9a4a3435a5 100644 --- a/releases/release-1.30/release-notes/maps/pr-123525-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123525-map.yaml @@ -1,5 +1,5 @@ -pr: 123525 -releasenote: - text: The JWT authenticator configuration set via the `--authentication-config` - flag is now dynamically reloaded as the file changes on disk. -pr_body: "" +pr: 123525 +releasenote: + text: The JWT authenticator configuration set via the `--authentication-config` + flag is now dynamically reloaded as the file changes on disk. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123527-map.yaml b/releases/release-1.30/release-notes/maps/pr-123527-map.yaml index 74e8cd60bc5..48dcb46894a 100644 --- a/releases/release-1.30/release-notes/maps/pr-123527-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123527-map.yaml @@ -1,5 +1,5 @@ -pr: 123527 -releasenote: - text: | - "Structured Authentication Configuration now supports `DiscoveryURL`. If specified, `discoveryURL` overrides the URL used to fetch discovery information. This is for scenarios where the well-known and jwks endpoints are hosted at a different location than the issuer (such as locally in the cluster)." -pr_body: "" +pr: 123527 +releasenote: + text: | + "Structured Authentication Configuration now supports `DiscoveryURL`. If specified, `discoveryURL` overrides the URL used to fetch discovery information. This is for scenarios where the well-known and jwks endpoints are hosted at a different location than the issuer (such as locally in the cluster)." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123529-map.yaml b/releases/release-1.30/release-notes/maps/pr-123529-map.yaml index 4849ff71cdf..790cfefc2dd 100644 --- a/releases/release-1.30/release-notes/maps/pr-123529-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123529-map.yaml @@ -1,8 +1,8 @@ -pr: 123529 -releasenote: - text: The kubernetes repo now uses Go workspaces. This should not impact end users - at all, but does have impact for developers of downstream projects. Switching - to workspaces caused some breaking changes in the flags to the various k8s.io/code-generator - tools. Downstream consumers should look at staging/src/k8s.io/code-generator/kube_codegen.sh - to see the changes. -pr_body: "" +pr: 123529 +releasenote: + text: The kubernetes repo now uses Go workspaces. This should not impact end users + at all, but does have impact for developers of downstream projects. Switching + to workspaces caused some breaking changes in the flags to the various k8s.io/code-generator + tools. Downstream consumers should look at staging/src/k8s.io/code-generator/kube_codegen.sh + to see the changes. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123532-map.yaml b/releases/release-1.30/release-notes/maps/pr-123532-map.yaml index 9accbbcb444..c19f66420fe 100644 --- a/releases/release-1.30/release-notes/maps/pr-123532-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123532-map.yaml @@ -1,5 +1,5 @@ -pr: 123532 -releasenote: - text: Prevented watch cache starvation by moving its watch to separate RPC. Added - a `SeparateCacheWatchRPC` feature flag to disable this behavior. -pr_body: "" +pr: 123532 +releasenote: + text: Prevented watch cache starvation by moving its watch to separate RPC. Added + a `SeparateCacheWatchRPC` feature flag to disable this behavior. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123540-map.yaml b/releases/release-1.30/release-notes/maps/pr-123540-map.yaml index 70e7804de44..58317aa7973 100644 --- a/releases/release-1.30/release-notes/maps/pr-123540-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123540-map.yaml @@ -1,6 +1,6 @@ -pr: 123540 -releasenote: - text: JWTs used in service account and OIDC authentication are now strictly parsed - to confirm that they use compact serialization. Other encodings were not previously - accepted, but would result in different unspecific errors. -pr_body: "" +pr: 123540 +releasenote: + text: JWTs used in service account and OIDC authentication are now strictly parsed + to confirm that they use compact serialization. Other encodings were not previously + accepted, but would result in different unspecific errors. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123543-map.yaml b/releases/release-1.30/release-notes/maps/pr-123543-map.yaml index a2822def96d..790a7b8683f 100644 --- a/releases/release-1.30/release-notes/maps/pr-123543-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123543-map.yaml @@ -1,6 +1,6 @@ -pr: 123543 -releasenote: - text: ValidatingAdmissionPolicy now exclude TokenReview, SelfSubjectReview, LocalSubjectAccessReview, - and SubjectAccessReview from all versions of authentication.k8s.io and authorization.k8s.io - group. -pr_body: "" +pr: 123543 +releasenote: + text: ValidatingAdmissionPolicy now exclude TokenReview, SelfSubjectReview, LocalSubjectAccessReview, + and SubjectAccessReview from all versions of authentication.k8s.io and authorization.k8s.io + group. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123555-map.yaml b/releases/release-1.30/release-notes/maps/pr-123555-map.yaml index b572e283050..9eb63211d81 100644 --- a/releases/release-1.30/release-notes/maps/pr-123555-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123555-map.yaml @@ -1,6 +1,6 @@ -pr: 123555 -releasenote: - text: 'kubeadm: avoided uploading a defaulted flag value "--authorization-mode=Node,RBAC" - for the kube-apiserver in the ClusterConfiguration stored in the "kube-system/kubeadm-config" - ConfigMap. "Node,RBAC" are already the kubeadm defaults for this flag, so this - action is redundant.' +pr: 123555 +releasenote: + text: 'kubeadm: avoided uploading a defaulted flag value "--authorization-mode=Node,RBAC" + for the kube-apiserver in the ClusterConfiguration stored in the "kube-system/kubeadm-config" + ConfigMap. "Node,RBAC" are already the kubeadm defaults for this flag, so this + action is redundant.' diff --git a/releases/release-1.30/release-notes/maps/pr-123560-map.yaml b/releases/release-1.30/release-notes/maps/pr-123560-map.yaml index 3ed13ac054b..83d795b01f3 100644 --- a/releases/release-1.30/release-notes/maps/pr-123560-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123560-map.yaml @@ -1,5 +1,5 @@ -pr: 123560 -releasenote: - text: | - "Promoted `AdmissionWebhookMatchConditions` to GA. The feature is now stable, and the feature gate is now locked to default." -pr_body: "" +pr: 123560 +releasenote: + text: | + "Promoted `AdmissionWebhookMatchConditions` to GA. The feature is now stable, and the feature gate is now locked to default." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123561-map.yaml b/releases/release-1.30/release-notes/maps/pr-123561-map.yaml index 73aee166c21..35489db949a 100644 --- a/releases/release-1.30/release-notes/maps/pr-123561-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123561-map.yaml @@ -1,7 +1,7 @@ -pr: 123561 -releasenote: - text: The API server now detects and fails on startup if there are conflicting issuers - between JWT authenticators and service account configurations. Previously, such - configurations would run but could be inconsistently effective depending on the - credential. -pr_body: "" +pr: 123561 +releasenote: + text: The API server now detects and fails on startup if there are conflicting issuers + between JWT authenticators and service account configurations. Previously, such + configurations would run but could be inconsistently effective depending on the + credential. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123562-map.yaml b/releases/release-1.30/release-notes/maps/pr-123562-map.yaml index 8fabd3f2037..367ca39257d 100644 --- a/releases/release-1.30/release-notes/maps/pr-123562-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123562-map.yaml @@ -1,5 +1,5 @@ -pr: 123562 -releasenote: - text: | - "Fixed CEL estimated cost for expressions that perform operations on the result of `map()` operations (e.g., `.map(...).exists(...)` ) to have the correct estimated cost instead of an unbounded cost." -pr_body: "" +pr: 123562 +releasenote: + text: | + "Fixed CEL estimated cost for expressions that perform operations on the result of `map()` operations (e.g., `.map(...).exists(...)` ) to have the correct estimated cost instead of an unbounded cost." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123565-map.yaml b/releases/release-1.30/release-notes/maps/pr-123565-map.yaml index 20c0981f14c..c7789db22b4 100644 --- a/releases/release-1.30/release-notes/maps/pr-123565-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123565-map.yaml @@ -1,5 +1,5 @@ -pr: 123565 -releasenote: - text: | - "Accepted zero as a default value for `kubectl create` token duration." -pr_body: "" +pr: 123565 +releasenote: + text: | + "Accepted zero as a default value for `kubectl create` token duration." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123568-map.yaml b/releases/release-1.30/release-notes/maps/pr-123568-map.yaml index 3803bed3427..eb2d2f68c82 100644 --- a/releases/release-1.30/release-notes/maps/pr-123568-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123568-map.yaml @@ -1,6 +1,6 @@ -pr: 123568 -releasenote: - text: OIDC authentication will now fail if the username asserted based on a CEL - expression config is the empty string. Previously the request would be authenticated - with the username set to the empty string. -pr_body: "" +pr: 123568 +releasenote: + text: OIDC authentication will now fail if the username asserted based on a CEL + expression config is the empty string. Previously the request would be authenticated + with the username set to the empty string. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123570-map.yaml b/releases/release-1.30/release-notes/maps/pr-123570-map.yaml index a96c21344f7..80be52e4fc7 100644 --- a/releases/release-1.30/release-notes/maps/pr-123570-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123570-map.yaml @@ -1,5 +1,5 @@ -pr: 123570 -releasenote: - text: OpenAPI V2 will no longer publish aggregated API server OpenAPI for group - versions that do not match the APIService specified group version. -pr_body: "" +pr: 123570 +releasenote: + text: OpenAPI V2 will no longer publish aggregated API server OpenAPI for group + versions that do not match the APIService specified group version. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123575-map.yaml b/releases/release-1.30/release-notes/maps/pr-123575-map.yaml index dffbf683853..fb9b6a6701b 100644 --- a/releases/release-1.30/release-notes/maps/pr-123575-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123575-map.yaml @@ -1,7 +1,7 @@ -pr: 123575 -releasenote: - text: |- - Graduated pod scheduling gates to general availability. - The `PodSchedulingReadiness` feature gate no longer has any effect, and the - `.spec.schedulingGates` field is always available within the Pod and PodTemplate APIs. -pr_body: "" +pr: 123575 +releasenote: + text: |- + Graduated pod scheduling gates to general availability. + The `PodSchedulingReadiness` feature gate no longer has any effect, and the + `.spec.schedulingGates` field is always available within the Pod and PodTemplate APIs. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123578-map.yaml b/releases/release-1.30/release-notes/maps/pr-123578-map.yaml index 7b436e297f0..be1f8457ab0 100644 --- a/releases/release-1.30/release-notes/maps/pr-123578-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123578-map.yaml @@ -1,5 +1,5 @@ -pr: 123578 -releasenote: - text: | - Kubeadm now prints all the kubelets and nodes that need to be upgraded when running "upgrade plan". -pr_body: "" +pr: 123578 +releasenote: + text: | + Kubeadm now prints all the kubelets and nodes that need to be upgraded when running "upgrade plan". +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123593-map.yaml b/releases/release-1.30/release-notes/maps/pr-123593-map.yaml index 36c04bbb724..39ef53f8776 100644 --- a/releases/release-1.30/release-notes/maps/pr-123593-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123593-map.yaml @@ -1,5 +1,5 @@ -pr: 123593 -releasenote: - text: | - Kubelet now supports configuring the IDs used to create user namespaces. -pr_body: "" +pr: 123593 +releasenote: + text: | + Kubelet now supports configuring the IDs used to create user namespaces. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123599-map.yaml b/releases/release-1.30/release-notes/maps/pr-123599-map.yaml index 1e48ef09fc8..0e49b24fd6f 100644 --- a/releases/release-1.30/release-notes/maps/pr-123599-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123599-map.yaml @@ -1,5 +1,5 @@ -pr: 123599 -releasenote: - text: | - "Bumped cAdvisor to `v0.49.0`." -pr_body: "" +pr: 123599 +releasenote: + text: | + "Bumped cAdvisor to `v0.49.0`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123611-map.yaml b/releases/release-1.30/release-notes/maps/pr-123611-map.yaml index e1f17b3bb3d..74aca201ef7 100644 --- a/releases/release-1.30/release-notes/maps/pr-123611-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123611-map.yaml @@ -1,5 +1,5 @@ -pr: 123611 -releasenote: - text: | - "kube-apiserver now reported the following metrics for authorization webhook match conditions: - `apiserver_authorization_match_condition_evaluation_errors_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_exclusions_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_evaluation_seconds` histogram metric labeled by authorizer type and name." -pr_body: "" +pr: 123611 +releasenote: + text: | + "kube-apiserver now reported the following metrics for authorization webhook match conditions: - `apiserver_authorization_match_condition_evaluation_errors_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_exclusions_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_evaluation_seconds` histogram metric labeled by authorizer type and name." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123639-map.yaml b/releases/release-1.30/release-notes/maps/pr-123639-map.yaml index 02f8a20618a..8e3b77d7fac 100644 --- a/releases/release-1.30/release-notes/maps/pr-123639-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123639-map.yaml @@ -1,8 +1,8 @@ -pr: 123639 -releasenote: - text: |- - kube-apiserver: Authorization webhooks now report the following metrics: - - apiserver_authorization_webhook_evaluations_total - - apiserver_authorization_webhook_duration_seconds - - apiserver_authorization_webhook_evaluations_fail_open_total -pr_body: "" +pr: 123639 +releasenote: + text: |- + kube-apiserver: Authorization webhooks now report the following metrics: + - apiserver_authorization_webhook_evaluations_total + - apiserver_authorization_webhook_duration_seconds + - apiserver_authorization_webhook_evaluations_fail_open_total +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123640-map.yaml b/releases/release-1.30/release-notes/maps/pr-123640-map.yaml index 8f6e17dfc86..5e1cb6644d2 100644 --- a/releases/release-1.30/release-notes/maps/pr-123640-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123640-map.yaml @@ -1,5 +1,5 @@ -pr: 123640 -releasenote: - text: 'kube-apiserver: the AuthorizationConfiguration type accepted in `--authorization-config` - files has been promoted to `apiserver.config.k8s.io/v1beta1`.' -pr_body: "" +pr: 123640 +releasenote: + text: 'kube-apiserver: the AuthorizationConfiguration type accepted in `--authorization-config` + files has been promoted to `apiserver.config.k8s.io/v1beta1`.' +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123641-map.yaml b/releases/release-1.30/release-notes/maps/pr-123641-map.yaml index 0a55f33de80..04c5d063838 100644 --- a/releases/release-1.30/release-notes/maps/pr-123641-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123641-map.yaml @@ -1,5 +1,5 @@ -pr: 123641 -releasenote: - text: | - "kube-apiserver: The StructuredAuthorizationConfiguration feature gate has been promoted to beta and now allows the use of the `--authorization-configuration` flag." -pr_body: "" +pr: 123641 +releasenote: + text: | + "kube-apiserver: The StructuredAuthorizationConfiguration feature gate has been promoted to beta and now allows the use of the `--authorization-configuration` flag." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123654-map.yaml b/releases/release-1.30/release-notes/maps/pr-123654-map.yaml index c3a3fb2bac9..00bdff2a567 100644 --- a/releases/release-1.30/release-notes/maps/pr-123654-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123654-map.yaml @@ -1,4 +1,4 @@ -pr: 123654 -releasenote: - text: '[kubeadam][structured authz] avoided setting default `--authorization-mode` - when `--authorization-config` is provided' +pr: 123654 +releasenote: + text: '[kubeadam][structured authz] avoided setting default `--authorization-mode` + when `--authorization-config` is provided' diff --git a/releases/release-1.30/release-notes/maps/pr-123667-map.yaml b/releases/release-1.30/release-notes/maps/pr-123667-map.yaml index 31222461556..16f8fcfa327 100644 --- a/releases/release-1.30/release-notes/maps/pr-123667-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123667-map.yaml @@ -1,4 +1,4 @@ -pr: 123667 -releasenote: - text: Added the `access_mode` label to `volume_manager_selinux_*` metrics. -pr_body: "" +pr: 123667 +releasenote: + text: Added the `access_mode` label to `volume_manager_selinux_*` metrics. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123674-map.yaml b/releases/release-1.30/release-notes/maps/pr-123674-map.yaml index 97680341f9b..4f4ba2b862e 100644 --- a/releases/release-1.30/release-notes/maps/pr-123674-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123674-map.yaml @@ -1,5 +1,5 @@ -pr: 123674 -releasenote: - text: | - "Fixed a non-recursive list returning "resource version too high" error when consistent listing from cache is enabled." -pr_body: "" +pr: 123674 +releasenote: + text: | + "Fixed a non-recursive list returning "resource version too high" error when consistent listing from cache is enabled." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123676-map.yaml b/releases/release-1.30/release-notes/maps/pr-123676-map.yaml index ba2fd06b4e4..6cf0595510a 100644 --- a/releases/release-1.30/release-notes/maps/pr-123676-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123676-map.yaml @@ -1,3 +1,3 @@ -pr: 123676 -releasenote: - text: Fixed enabling consistent list from watch cache that used to work for resourceVersion=0 +pr: 123676 +releasenote: + text: Fixed enabling consistent list from watch cache that used to work for resourceVersion=0 diff --git a/releases/release-1.30/release-notes/maps/pr-123696-map.yaml b/releases/release-1.30/release-notes/maps/pr-123696-map.yaml index 2b4643b1e9c..52cd06117a9 100644 --- a/releases/release-1.30/release-notes/maps/pr-123696-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123696-map.yaml @@ -1,5 +1,5 @@ -pr: 123696 -releasenote: - text: | - "kube-apiserver: the AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`." -pr_body: "" +pr: 123696 +releasenote: + text: | + "kube-apiserver: the AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123713-map.yaml b/releases/release-1.30/release-notes/maps/pr-123713-map.yaml index 1e03f9f174c..b2b40f46a99 100644 --- a/releases/release-1.30/release-notes/maps/pr-123713-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123713-map.yaml @@ -1,10 +1,10 @@ -pr: 123713 -releasenote: - text: The initialization of nodes using external cloud providers now waits for the - providerID value to be available before untainting it. This ensures that nodes - are not declared Ready without necessary information such as the providerID and - zone labels, which are required for integrations like load balancers to function - correctly. Cloud providers that do not implement the GetInstanceProviderID method - will not require the providerID to be set and will not fail to initialize the - node for backward compatibility. -pr_body: "" +pr: 123713 +releasenote: + text: The initialization of nodes using external cloud providers now waits for the + providerID value to be available before untainting it. This ensures that nodes + are not declared Ready without necessary information such as the providerID and + zone labels, which are required for integrations like load balancers to function + correctly. Cloud providers that do not implement the GetInstanceProviderID method + will not require the providerID to be set and will not fail to initialize the + node for backward compatibility. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123719-map.yaml b/releases/release-1.30/release-notes/maps/pr-123719-map.yaml index 3a08d260177..a49594b6928 100644 --- a/releases/release-1.30/release-notes/maps/pr-123719-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123719-map.yaml @@ -1,4 +1,4 @@ -pr: 123719 -releasenote: - text: The `StructuredAuthenticationConfiguration` feature is now beta and enabled. -pr_body: "" +pr: 123719 +releasenote: + text: The `StructuredAuthenticationConfiguration` feature is now beta and enabled. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123730-map.yaml b/releases/release-1.30/release-notes/maps/pr-123730-map.yaml index 9566d54b1df..d26ab0c78e2 100644 --- a/releases/release-1.30/release-notes/maps/pr-123730-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123730-map.yaml @@ -1,5 +1,5 @@ -pr: 123730 -releasenote: - text: 'DRA: ResourceClaim and PodSchedulingContext status updates no longer allow - changing object meta data.' -pr_body: "" +pr: 123730 +releasenote: + text: 'DRA: ResourceClaim and PodSchedulingContext status updates no longer allow + changing object meta data.' +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123737-map.yaml b/releases/release-1.30/release-notes/maps/pr-123737-map.yaml index a09f1e4ff0d..81ce10c0328 100644 --- a/releases/release-1.30/release-notes/maps/pr-123737-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123737-map.yaml @@ -1,7 +1,7 @@ -pr: 123737 -releasenote: - text: | - "When configuring a JWT authenticator: - - If `username.expression` used 'claims.email', then 'claims.email_verified' must have been used in `username.expression` or `extra[*].valueExpression` or `claimValidationRules[*].expression`. An example claim validation rule expression that matches the validation automatically applied when `username.claim` is set to 'email' is 'claims.?email_verified.orValue(true)'." -pr_body: "" +pr: 123737 +releasenote: + text: | + "When configuring a JWT authenticator: + + If `username.expression` used 'claims.email', then 'claims.email_verified' must have been used in `username.expression` or `extra[*].valueExpression` or `claimValidationRules[*].expression`. An example claim validation rule expression that matches the validation automatically applied when `username.claim` is set to 'email' is 'claims.?email_verified.orValue(true)'." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123738-map.yaml b/releases/release-1.30/release-notes/maps/pr-123738-map.yaml index 7c2de3b0fd7..9ef2128386f 100644 --- a/releases/release-1.30/release-notes/maps/pr-123738-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123738-map.yaml @@ -1,5 +1,5 @@ -pr: 123738 -releasenote: - text: | - "Kubelet would fail if NodeSwap was used with LimitedSwap and cgroupv1 node." -pr_body: "" +pr: 123738 +releasenote: + text: | + "Kubelet would fail if NodeSwap was used with LimitedSwap and cgroupv1 node." +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123750-map.yaml b/releases/release-1.30/release-notes/maps/pr-123750-map.yaml index f20e390eb7c..08f73e6eb89 100644 --- a/releases/release-1.30/release-notes/maps/pr-123750-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123750-map.yaml @@ -1,4 +1,4 @@ -pr: 123750 -releasenote: - text: Kubernetes is now built with Go `1.22.1`. -pr_body: "" +pr: 123750 +releasenote: + text: Kubernetes is now built with Go `1.22.1`. +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123758-map.yaml b/releases/release-1.30/release-notes/maps/pr-123758-map.yaml index 6a19b17ba95..9a359daf4ef 100644 --- a/releases/release-1.30/release-notes/maps/pr-123758-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123758-map.yaml @@ -1,3 +1,3 @@ -pr: 123758 -releasenote: - text: Updated google.golang.org/protobuf to `v1.33.0` to resolve `CVE-2024-24786`. +pr: 123758 +releasenote: + text: Updated google.golang.org/protobuf to `v1.33.0` to resolve `CVE-2024-24786`. diff --git a/releases/release-1.30/release-notes/maps/pr-123793-map.yaml b/releases/release-1.30/release-notes/maps/pr-123793-map.yaml index f8ebf3b077d..eaaff446628 100644 --- a/releases/release-1.30/release-notes/maps/pr-123793-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123793-map.yaml @@ -1,5 +1,5 @@ -pr: 123793 -releasenote: - text: | - "kube-apiserver: JWT authenticator now reports the following metrics: - apiserver_authentication_config_controller_automatic_reloads_total - apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds" -pr_body: "" +pr: 123793 +releasenote: + text: | + "kube-apiserver: JWT authenticator now reports the following metrics: - apiserver_authentication_config_controller_automatic_reloads_total - apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds" +pr_body: "" diff --git a/releases/release-1.30/release-notes/maps/pr-123935-map.yaml b/releases/release-1.30/release-notes/maps/pr-123935-map.yaml index b84103c3ca2..47e32147f3c 100644 --- a/releases/release-1.30/release-notes/maps/pr-123935-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-123935-map.yaml @@ -1,9 +1,9 @@ -pr: 123935 -releasenote: - text: 'kube-apiserver: Fixed a `1.27`+ regression in watch stability by serving watch - requests without a `resourceVersion` from the watch cache by default, as in <`1.27` - (disabling the change in PR 115096 by default). This mitigates the impact of an - etcd watch bug (https://github.com/etcd-io/etcd/pull/17555). If the 1.27 change - in PR 115096 to serve these requests from underlying storage is still desired despite - the impact on watch stability, it can be re-enabled with a `WatchFromStorageWithoutResourceVersion` - feature gate.' +pr: 123935 +releasenote: + text: 'kube-apiserver: Fixed a `1.27`+ regression in watch stability by serving watch + requests without a `resourceVersion` from the watch cache by default, as in <`1.27` + (disabling the change in PR 115096 by default). This mitigates the impact of an + etcd watch bug (https://github.com/etcd-io/etcd/pull/17555). If the 1.27 change + in PR 115096 to serve these requests from underlying storage is still desired despite + the impact on watch stability, it can be re-enabled with a `WatchFromStorageWithoutResourceVersion` + feature gate.' diff --git a/releases/release-1.30/release-notes/maps/pr-124001-map.yaml b/releases/release-1.30/release-notes/maps/pr-124001-map.yaml index 419da79f3aa..561b6336287 100644 --- a/releases/release-1.30/release-notes/maps/pr-124001-map.yaml +++ b/releases/release-1.30/release-notes/maps/pr-124001-map.yaml @@ -1,5 +1,5 @@ -pr: 124001 -releasenote: - text: Reverted the change to "support sharing waitingPods across different scheduler - profiles". -pr_body: "" +pr: 124001 +releasenote: + text: Reverted the change to "support sharing waitingPods across different scheduler + profiles". +pr_body: "" diff --git a/releases/release-1.30/release-notes/release-notes-draft.json b/releases/release-1.30/release-notes/release-notes-draft.json index 43be8392536..cc3947d215a 100644 --- a/releases/release-1.30/release-notes/release-notes-draft.json +++ b/releases/release-1.30/release-notes/release-notes-draft.json @@ -1,5867 +1,5867 @@ -{ - "112957": { - "commit": "dc3f5ec6ccb9855dfa99f4c1078625df5fdfab6a", - "text": "\"kubelet allowed specifying a custom root directory for pod logs (instead of the default /var/log/pods) using the `podLogsDir` key in kubelet configuration.\"\n", - "markdown": "\"kubelet allowed specifying a custom root directory for pod logs (instead of the default /var/log/pods) using the `podLogsDir` key in kubelet configuration.\"\n ([#112957](https://github.com/kubernetes/kubernetes/pull/112957), [@mxpv](https://github.com/mxpv))", - "author": "mxpv", - "author_url": "https://github.com/mxpv", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112957", - "pr_number": 112957, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scalability", - "node", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "114301": { - "commit": "5b2c9195839baf74076b8618d5ac58645755f752", - "text": "Enabled concurrent log rotation in kubelet. You can now configure the maximum number of concurrent rotations with the `containerLogMaxWorkers` setting, and adjust the monitoring interval with `containerLogMonitorInterval`.", - "markdown": "Enabled concurrent log rotation in kubelet. You can now configure the maximum number of concurrent rotations with the `containerLogMaxWorkers` setting, and adjust the monitoring interval with `containerLogMonitorInterval`. ([#114301](https://github.com/kubernetes/kubernetes/pull/114301), [@harshanarayana](https://github.com/harshanarayana))", - "author": "harshanarayana", - "author_url": "https://github.com/harshanarayana", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114301", - "pr_number": 114301, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "bug", - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "114672": { - "commit": "98bd90fbe279f9083db92c51badce424d6d8b1c1", - "text": "Text logging in Kubernetes components now uses [textlogger](https://pkg.go.dev/k8s.io/klog/v2@v2.120.0/textlogger). The same split streams of info and error log entries with buffering of info entries is now also supported for text output (off by default, alpha feature). Previously, this was only supported for JSON. Performance is better also without split streams.", - "markdown": "Text logging in Kubernetes components now uses [textlogger](https://pkg.go.dev/k8s.io/klog/v2@v2.120.0/textlogger). The same split streams of info and error log entries with buffering of info entries is now also supported for text output (off by default, alpha feature). Previously, this was only supported for JSON. Performance is better also without split streams. ([#114672](https://github.com/kubernetes/kubernetes/pull/114672), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114672", - "pr_number": 114672, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "testing", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "115768": { - "commit": "c02f5bc0f8e5b71b5c0aa71513bf52a6c91592dd", - "text": "\"Implemented the `prescore` extension point for the `volumeBinding` plugin. It now returns skip if it doesn't do anything in Score.\"\n", - "markdown": "\"Implemented the `prescore` extension point for the `volumeBinding` plugin. It now returns skip if it doesn't do anything in Score.\"\n ([#115768](https://github.com/kubernetes/kubernetes/pull/115768), [@AxeZhan](https://github.com/AxeZhan))", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115768", - "pr_number": 115768, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "116209": { - "commit": "d2fc690421629db43165f3b2e828994c529c79ad", - "text": "Users are now allowed to mutate `FSGroupPolicy` and `PodInfoOnMount` in `CSIDriver.Spec`.", - "markdown": "Users are now allowed to mutate `FSGroupPolicy` and `PodInfoOnMount` in `CSIDriver.Spec`. ([#116209](https://github.com/kubernetes/kubernetes/pull/116209), [@haoruan](https://github.com/haoruan))", - "author": "haoruan", - "author_url": "https://github.com/haoruan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/116209", - "pr_number": 116209, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "117024": { - "commit": "afa3f114d64ba5e02faae2e078deb1f82a9e0a07", - "text": "\"Scheduler now skips the `NodeAffinity Score` plugin when it has nothing to do with a Pod. You might have noticed an increase in the metric `plugin_execution_duration_seconds` for `extension_point=score` and `plugin=NodeAffinity`, because the plugin only runs when it's relevant.\"\n", - "markdown": "\"Scheduler now skips the `NodeAffinity Score` plugin when it has nothing to do with a Pod. You might have noticed an increase in the metric `plugin_execution_duration_seconds` for `extension_point=score` and `plugin=NodeAffinity`, because the plugin only runs when it's relevant.\"\n ([#117024](https://github.com/kubernetes/kubernetes/pull/117024), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117024", - "pr_number": 117024, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "117046": { - "commit": "db82260c65df9cedaf93e924a2401b4e55a8a2a0", - "text": "\"Informers now supports adding Indexers after the informer starts.\"\n", - "markdown": "\"Informers now supports adding Indexers after the informer starts.\"\n ([#117046](https://github.com/kubernetes/kubernetes/pull/117046), [@howardjohn](https://github.com/howardjohn))", - "author": "howardjohn", - "author_url": "https://github.com/howardjohn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117046", - "pr_number": 117046, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "119177": { - "commit": "195bb67d36c42faff8e99f97d2bad38587485989", - "text": "kube-scheduler implemented scheduling hints for the `NodeResourceFit` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeResourceFit` plugin if a new Node or a Node update matched the Pod's resource requirements or if an old pod update or delete matched the Pod's resource requirements.", - "markdown": "Kube-scheduler implemented scheduling hints for the `NodeResourceFit` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeResourceFit` plugin if a new Node or a Node update matched the Pod's resource requirements or if an old pod update or delete matched the Pod's resource requirements. ([#119177](https://github.com/kubernetes/kubernetes/pull/119177), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119177", - "pr_number": 119177, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "119200": { - "commit": "4163ce5017268b0ae25df327f0a210032ef1cc80", - "text": "kubectl debug now includes the sysadmin profile.", - "markdown": "Kubectl debug now includes the sysadmin profile. ([#119200](https://github.com/kubernetes/kubernetes/pull/119200), [@eiffel-fl](https://github.com/eiffel-fl))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug#debugging-profiles", - "type": "KEP" - } - ], - "author": "eiffel-fl", - "author_url": "https://github.com/eiffel-fl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119200", - "pr_number": 119200, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "119779": { - "commit": "8609b8c22c31714e02c5c00de385e404c7b7e6f1", - "text": "When a PreFilterResult filters out certain Nodes, the scheduling framework now categorizes them as rejected via `UnschedulableAndUnresolvable`. Consequently, these nodes are excluded from the candidates for the preemption process. Additionally, this update corrects how the scheduling framework handles the Unschedulable status from PreFilter. Previously, if PreFilter returned `Unschedulable`, it could lead to an unexpected abortion in the preemption process, which shouldn't occur in the default scheduler but might occur in schedulers with custom plugins.", - "markdown": "When a PreFilterResult filters out certain Nodes, the scheduling framework now categorizes them as rejected via `UnschedulableAndUnresolvable`. Consequently, these nodes are excluded from the candidates for the preemption process. Additionally, this update corrects how the scheduling framework handles the Unschedulable status from PreFilter. Previously, if PreFilter returned `Unschedulable`, it could lead to an unexpected abortion in the preemption process, which shouldn't occur in the default scheduler but might occur in schedulers with custom plugins. ([#119779](https://github.com/kubernetes/kubernetes/pull/119779), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119779", - "pr_number": 119779, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "119923": { - "commit": "26e2cc529915d342d3cf9df870b338695370756a", - "text": "\"Fixed an issue where mount points could become local without calling `NodePublishVolume` after node rebooting.\"\n", - "markdown": "\"Fixed an issue where mount points could become local without calling `NodePublishVolume` after node rebooting.\"\n ([#119923](https://github.com/kubernetes/kubernetes/pull/119923), [@cvvz](https://github.com/cvvz))", - "author": "cvvz", - "author_url": "https://github.com/cvvz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119923", - "pr_number": 119923, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "120111": { - "commit": "20b28312ea9278c7b93340d0eca71023c45a43b3", - "text": "When using `kubectl logs \u003cpod-name\u003e` and the pod is not found, the error message now includes the namespace. Previously, the message would be \"Error from server (NotFound): pods \"my-pod-name\" not found\". Now, it reflects the namespace in the message as follows: \"Error from server (NotFound): pods \"my-pod-name\" not found in namespace \"default\"\".\n", - "markdown": "When using `kubectl logs \u003cpod-name\u003e` and the pod is not found, the error message now includes the namespace. Previously, the message would be \"Error from server (NotFound): pods \"my-pod-name\" not found\". Now, it reflects the namespace in the message as follows: \"Error from server (NotFound): pods \"my-pod-name\" not found in namespace \"default\"\".\n ([#120111](https://github.com/kubernetes/kubernetes/pull/120111), [@newtondev](https://github.com/newtondev))", - "author": "newtondev", - "author_url": "https://github.com/newtondev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120111", - "pr_number": 120111, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "120159": { - "commit": "96461a22a45e09bb9cfc3515ff49616779a9a2a6", - "text": "Modified the error message of `unmanagedFatal` to enhance clarity while preserving grammatical consistency with `unmanagedWarning`. This improvement ensures a more understandable prompt for users.", - "markdown": "Modified the error message of `unmanagedFatal` to enhance clarity while preserving grammatical consistency with `unmanagedWarning`. This improvement ensures a more understandable prompt for users. ([#120159](https://github.com/kubernetes/kubernetes/pull/120159), [@Ithrael](https://github.com/Ithrael))", - "author": "Ithrael", - "author_url": "https://github.com/Ithrael", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120159", - "pr_number": 120159, - "areas": [ - "kubectl" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "120246": { - "commit": "45656f8774c7c761f87a593f68563ccdb3b67523", - "text": "\"kubectl: Removed the deprecated flag `prune-whitelist` for apply. Please use the flag `prune-allowlist` instead.\"\n", - "markdown": "\"kubectl: Removed the deprecated flag `prune-whitelist` for apply. Please use the flag `prune-allowlist` instead.\"\n ([#120246](https://github.com/kubernetes/kubernetes/pull/120246), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120246", - "pr_number": 120246, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "120291": { - "commit": "2efed1f1cb33bf7e3f44bb5e74bdaa9f7a5092f1", - "text": "Fixed Windows credential provider, cannot find binary. Windows credential provider binary path may have \".exe\" suffix so it is better to use `LookPath()` to support it flexibly.", - "markdown": "Fixed Windows credential provider, cannot find binary. Windows credential provider binary path may have \".exe\" suffix so it is better to use `LookPath()` to support it flexibly. ([#120291](https://github.com/kubernetes/kubernetes/pull/120291), [@lzhecheng](https://github.com/lzhecheng))", - "author": "lzhecheng", - "author_url": "https://github.com/lzhecheng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120291", - "pr_number": 120291, - "areas": [ - "provider/azure" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ], - "is_mapped": true - }, - "120344": { - "commit": "31a482a14937f8421de62b1416ab150ee1b3ff25", - "text": "Added the `disable-force-detach` CLI option for `kube-controller-manager`. By default, it's set to `false`. When enabled, it prevents force detaching volumes based on maximum unmount time and node status. If activated, the non-graceful node shutdown feature must be used to recover from node failure. Additionally, if a pod needs to be forcibly terminated at the risk of corruption, the appropriate VolumeAttachment object must be deleted.", - "markdown": "Added the `disable-force-detach` CLI option for `kube-controller-manager`. By default, it's set to `false`. When enabled, it prevents force detaching volumes based on maximum unmount time and node status. If activated, the non-graceful node shutdown feature must be used to recover from node failure. Additionally, if a pod needs to be forcibly terminated at the risk of corruption, the appropriate VolumeAttachment object must be deleted. ([#120344](https://github.com/kubernetes/kubernetes/pull/120344), [@rohitssingh](https://github.com/rohitssingh))", - "author": "rohitssingh", - "author_url": "https://github.com/rohitssingh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120344", - "pr_number": 120344, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "bug", - "api-change", - "feature" - ], - "sigs": [ - "storage", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "120346": { - "commit": "835ad2bccd93ccccb7c4ec80b194832809332a67", - "text": "A new flag called `custom` has been introduced in `kubectl debug`, allowing users to customize pre-defined profiles.", - "markdown": "A new flag called `custom` has been introduced in `kubectl debug`, allowing users to customize pre-defined profiles. ([#120346](https://github.com/kubernetes/kubernetes/pull/120346), [@ardaguclu](https://github.com/ardaguclu))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/pull/4293", - "type": "KEP" - } - ], - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120346", - "pr_number": 120346, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "120642": { - "commit": "6d6398ef9266abce3518a4c9a3d4e4d8feeffdc1", - "text": "Added consistent vanity import to files and provided tooling for verifying and updating them.", - "markdown": "Added consistent vanity import to files and provided tooling for verifying and updating them. ([#120642](https://github.com/kubernetes/kubernetes/pull/120642), [@jcchavezs](https://github.com/jcchavezs))", - "author": "jcchavezs", - "author_url": "https://github.com/jcchavezs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120642", - "pr_number": 120642, - "areas": [ - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "ipvs", - "dependency" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "network", - "scalability", - "scheduling", - "storage", - "node", - "api-machinery", - "autoscaling", - "auth", - "apps", - "windows", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "do_not_publish": true, - "is_mapped": true - }, - "120718": { - "commit": "5f4a20e65d0a472b5c90b85055059d987eed9d5e", - "text": "Node podresources API now includes init containers with containerRestartPolicy of `Always` when `SidecarContainers` feature is enabled.", - "markdown": "Node podresources API now includes init containers with containerRestartPolicy of `Always` when `SidecarContainers` feature is enabled. ([#120718](https://github.com/kubernetes/kubernetes/pull/120718), [@gjkim42](https://github.com/gjkim42))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", - "type": "KEP" - } - ], - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120718", - "pr_number": 120718, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "120902": { - "commit": "6c046796175de51e33290804a7665db5fa752a80", - "text": "Added an optimization to reduce stack memory usage for watch requests. It can be disabled with the feature gate: `APIServingWithRoutine=false`", - "markdown": "Added an optimization to reduce stack memory usage for watch requests. It can be disabled with the feature gate: `APIServingWithRoutine=false` ([#120902](https://github.com/kubernetes/kubernetes/pull/120902), [@linxiulei](https://github.com/linxiulei))", - "author": "linxiulei", - "author_url": "https://github.com/linxiulei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120902", - "pr_number": 120902, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "121413": { - "commit": "e36fc426a71891a9c3b821225aed9f7ba2a92c0e", - "text": "```", - "markdown": "``` ([#121413](https://github.com/kubernetes/kubernetes/pull/121413), [@humblec](https://github.com/humblec)) [SIG Cloud Provider]", - "author": "humblec", - "author_url": "https://github.com/humblec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121413", - "pr_number": 121413, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "do_not_publish": true - }, - "121461": { - "commit": "8e11104f0bec8abe62efd7acbb0afe6d908d195d", - "text": "\"Promoted the `CRDValidationRatcheting` feature gate to beta and made it enabled by default.\"\n", - "markdown": "\"Promoted the `CRDValidationRatcheting` feature gate to beta and made it enabled by default.\"\n ([#121461](https://github.com/kubernetes/kubernetes/pull/121461), [@alexzielenski](https://github.com/alexzielenski))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4008", - "type": "external" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121461", - "pr_number": 121461, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "121512": { - "commit": "11b974043604f5ccbeb6e5e62e1d9edcf00bc336", - "text": "The `apiserver.latency.k8s.io/decode-response-object` annotation was added to the audit log to record the decoding time.", - "markdown": "The `apiserver.latency.k8s.io/decode-response-object` annotation was added to the audit log to record the decoding time. ([#121512](https://github.com/kubernetes/kubernetes/pull/121512), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121512", - "pr_number": 121512, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "121669": { - "commit": "89c314ed8b71c0894167cab151414517f298668d", - "text": "Fixed an issue to ignore unnecessary node events and improve daemonset controller performance.", - "markdown": "Fixed an issue to ignore unnecessary node events and improve daemonset controller performance. ([#121669](https://github.com/kubernetes/kubernetes/pull/121669), [@xigang](https://github.com/xigang))", - "author": "xigang", - "author_url": "https://github.com/xigang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121669", - "pr_number": 121669, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "121719": { - "commit": "14f8f5519d6d3e3e7d747231b7c7bf25584aa0dd", - "text": "A new kubelet metric `image_pull_duration_seconds` was added. The metric tracks the duration (in seconds) it takes for an image to be pulled, including the time spent in the waiting queue of image puller. The metric is broken down by bucketed image size.", - "markdown": "A new kubelet metric `image_pull_duration_seconds` was added. The metric tracks the duration (in seconds) it takes for an image to be pulled, including the time spent in the waiting queue of image puller. The metric is broken down by bucketed image size. ([#121719](https://github.com/kubernetes/kubernetes/pull/121719), [@ruiwen-zhao](https://github.com/ruiwen-zhao))", - "author": "ruiwen-zhao", - "author_url": "https://github.com/ruiwen-zhao", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121719", - "pr_number": 121719, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "121720": { - "commit": "cbfebf02e8c87096d45de4bec5d95f3d6835a23d", - "text": "\"Added a new internal metric `kubelet_first_network_pod_start_sli_duration_second` in the kubelet that allowed developers to understand the source of the latency problems on node startups.\"\n", - "markdown": "\"Added a new internal metric `kubelet_first_network_pod_start_sli_duration_second` in the kubelet that allowed developers to understand the source of the latency problems on node startups.\"\n ([#121720](https://github.com/kubernetes/kubernetes/pull/121720), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121720", - "pr_number": 121720, - "areas": [ - "kubelet" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "network", - "node", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "121736": { - "commit": "ae2be16e516dcd19da60341b170a3defff57e6bc", - "text": "Updated `kube-dns` to `v1.22.27`.", - "markdown": "Updated `kube-dns` to `v1.22.27`. ([#121736](https://github.com/kubernetes/kubernetes/pull/121736), [@ty-dc](https://github.com/ty-dc))", - "author": "ty-dc", - "author_url": "https://github.com/ty-dc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121736", - "pr_number": 121736, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "is_mapped": true - }, - "121778": { - "commit": "0f7cc6fcaa0313c871312dbd1775f0f1a34684d3", - "text": "Added kubelet metrics to track the memory manager allocation and pinning.", - "markdown": "Added kubelet metrics to track the memory manager allocation and pinning. ([#121778](https://github.com/kubernetes/kubernetes/pull/121778), [@Tal-or](https://github.com/Tal-or))", - "author": "Tal-or", - "author_url": "https://github.com/Tal-or", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121778", - "pr_number": 121778, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "121815": { - "commit": "91655922197276ced2e4e36114bb753e384dbd83", - "text": "\"Made decoding etcd's response respect the timeout context.\"\n", - "markdown": "\"Made decoding etcd's response respect the timeout context.\"\n ([#121815](https://github.com/kubernetes/kubernetes/pull/121815), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121815", - "pr_number": 121815, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "121834": { - "commit": "ccb1d08162b3b9231a11f5ed5f46322b6cd72cd1", - "text": "\"Added `imagefs.inodesfree` to default `EvictionHard` settings.\"\n", - "markdown": "\"Added `imagefs.inodesfree` to default `EvictionHard` settings.\"\n ([#121834](https://github.com/kubernetes/kubernetes/pull/121834), [@vaibhav2107](https://github.com/vaibhav2107))", - "author": "vaibhav2107", - "author_url": "https://github.com/vaibhav2107", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121834", - "pr_number": 121834, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "121876": { - "commit": "02aaad0de94708b00e95ba6e809ac07d34eff61c", - "text": "When scheduling a mix of pods using `ResourceClaims` and others that don't, scheduling a pod with `ResourceClaims` has a lower impact on scheduling latency.", - "markdown": "When scheduling a mix of pods using `ResourceClaims` and others that don't, scheduling a pod with `ResourceClaims` has a lower impact on scheduling latency. ([#121876](https://github.com/kubernetes/kubernetes/pull/121876), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121876", - "pr_number": 121876, - "areas": [ - "test", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "121908": { - "commit": "3ca88dc1d0e73546ccc58a20496fd475f91d7116", - "text": "Updated `kubedns` and `nodelocaldns` to release version `1.22.28`.", - "markdown": "Updated `kubedns` and `nodelocaldns` to release version `1.22.28`. ([#121908](https://github.com/kubernetes/kubernetes/pull/121908), [@mzaian](https://github.com/mzaian))", - "author": "mzaian", - "author_url": "https://github.com/mzaian", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121908", - "pr_number": 121908, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true, - "is_mapped": true - }, - "121912": { - "commit": "76cd7521aa6216fb069dbd2d1f0f2c7a37fba32f", - "text": "\"Added the `CEL` library for IP Addresses and CIDRs. This was made available for use starting from version `1.31`.\"\n", - "markdown": "\"Added the `CEL` library for IP Addresses and CIDRs. This was made available for use starting from version `1.31`.\"\n ([#121912](https://github.com/kubernetes/kubernetes/pull/121912), [@JoelSpeed](https://github.com/JoelSpeed))", - "author": "JoelSpeed", - "author_url": "https://github.com/JoelSpeed", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121912", - "pr_number": 121912, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "121919": { - "commit": "8a9e0d936a7976680e2e6ff597721650f1ef809c", - "text": "\"Fixed a regression in `kube-proxy` introduced in version `1.26.0+` to make externalIPs work with externalTrafficPolicy: Local.\"\n", - "markdown": "\"Fixed a regression in `kube-proxy` introduced in version `1.26.0+` to make externalIPs work with externalTrafficPolicy: Local.\"\n ([#121919](https://github.com/kubernetes/kubernetes/pull/121919), [@uablrek](https://github.com/uablrek))", - "author": "uablrek", - "author_url": "https://github.com/uablrek", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121919", - "pr_number": 121919, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "121946": { - "commit": "66d038d84d3d7da0394aca2720823fedadec0dee", - "text": "\"kube-apiserver now reloads the `--authorization-config` file when it changes. Reloads increment the `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` timestamp metric, with `status=\"success\"` for successful reloads and `status=\"failed\"` for failed reloads. Failed reloads keep using the previously loaded authorization configuration.\"\n", - "markdown": "\"kube-apiserver now reloads the `--authorization-config` file when it changes. Reloads increment the `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` timestamp metric, with `status=\"success\"` for successful reloads and `status=\"failed\"` for failed reloads. Failed reloads keep using the previously loaded authorization configuration.\"\n ([#121946](https://github.com/kubernetes/kubernetes/pull/121946), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121946", - "pr_number": 121946, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "121952": { - "commit": "e566bd7769cb3dd00e2401d85e5af6d542523d66", - "text": "The scheduler now retries Pods, which are failed by `nodevolumelimits` due to not found PVCs, only when new PVCs are added.", - "markdown": "The scheduler now retries Pods, which are failed by `nodevolumelimits` due to not found PVCs, only when new PVCs are added. ([#121952](https://github.com/kubernetes/kubernetes/pull/121952), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121952", - "pr_number": 121952, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "121954": { - "commit": "e04316a68af3fdf51467202809f8a611895097b6", - "text": "\"Some interfaces' signatures in the scheduler were updated: - PluginsRunner: used NodeInfo in `RunPreScorePlugins` and `RunScorePlugins`. - PreScorePlugin: used NodeInfo in `PreScore`. - Extender: used NodeInfo in `Filter` and `Prioritize`.\"\n", - "markdown": "\"Some interfaces' signatures in the scheduler were updated: - PluginsRunner: used NodeInfo in `RunPreScorePlugins` and `RunScorePlugins`. - PreScorePlugin: used NodeInfo in `PreScore`. - Extender: used NodeInfo in `Filter` and `Prioritize`.\"\n ([#121954](https://github.com/kubernetes/kubernetes/pull/121954), [@AxeZhan](https://github.com/AxeZhan))", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121954", - "pr_number": 121954, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "autoscaling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "121958": { - "commit": "a56093db9f5cd63b35f962f541a8979760c00439", - "text": "\"kubeadm: improved the overall logic, error handling, and output messages when waiting for the kubelet and API server `/healthz` endpoints to return `OK`. The kubelet and API server checks no longer ran in parallel, but one after another (in serial).\"\n", - "markdown": "\"kubeadm: improved the overall logic, error handling, and output messages when waiting for the kubelet and API server `/healthz` endpoints to return `OK`. The kubelet and API server checks no longer ran in parallel, but one after another (in serial).\"\n ([#121958](https://github.com/kubernetes/kubernetes/pull/121958), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121958", - "pr_number": 121958, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "121983": { - "commit": "0c24ec6e8a4364bfdc2aa33b0705f7225d3352d0", - "text": "\"Cleanup: removed `getStorageAccountName` warning messages.\"\n", - "markdown": "\"Cleanup: removed `getStorageAccountName` warning messages.\"\n ([#121983](https://github.com/kubernetes/kubernetes/pull/121983), [@andyzhangx](https://github.com/andyzhangx))", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121983", - "pr_number": 121983, - "areas": [ - "provider/azure" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "122013": { - "commit": "040c59bb9d163a2d54dfb171bd602990cfead982", - "text": "A deprecated flag `--pod-max-in-unschedulable-pods-duration` was initially planned to be removed in v1.26, but we had to change this plan. We found [an issue](https://github.com/kubernetes/kubernetes/issues/110175) in which Pods can be stuck in the unschedulable pod pool for 5 min, and using this flag is the only workaround for this issue. \nThis issue only could happen if you use custom plugins or if you change plugin set being used in your scheduler via the scheduler config.", - "markdown": "A deprecated flag `--pod-max-in-unschedulable-pods-duration` was initially planned to be removed in v1.26, but we had to change this plan. We found [an issue](https://github.com/kubernetes/kubernetes/issues/110175) in which Pods can be stuck in the unschedulable pod pool for 5 min, and using this flag is the only workaround for this issue. \n This issue only could happen if you use custom plugins or if you change plugin set being used in your scheduler via the scheduler config. ([#122013](https://github.com/kubernetes/kubernetes/pull/122013), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122013", - "pr_number": 122013, - "kinds": [ - "documentation" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "122022": { - "commit": "5322af7f9e06dc457b48f6737edf3e1bf36490e5", - "text": "\"Previously, the scheduling queue didn't notice any extenders' failures, potentially resulting in missed cluster events and Pods rejected by Extenders being stuck in the unschedulable pod pool for up to 5 minutes in the worst-case scenario. Now, the scheduling queue notices extenders' failures and requeues Pods rejected by Extenders appropriately.\"\n", - "markdown": "\"Previously, the scheduling queue didn't notice any extenders' failures, potentially resulting in missed cluster events and Pods rejected by Extenders being stuck in the unschedulable pod pool for up to 5 minutes in the worst-case scenario. Now, the scheduling queue notices extenders' failures and requeues Pods rejected by Extenders appropriately.\"\n ([#122022](https://github.com/kubernetes/kubernetes/pull/122022), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122022", - "pr_number": 122022, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "122023": { - "commit": "cacdf6c70728086bfcab387b901d9765cbcbfb6b", - "text": "Added `exec-interactive-mode` and `exec-provide-cluster-info` flags in kubectl config set-credentials command.", - "markdown": "Added `exec-interactive-mode` and `exec-provide-cluster-info` flags in kubectl config set-credentials command. ([#122023](https://github.com/kubernetes/kubernetes/pull/122023), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122023", - "pr_number": 122023, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "122030": { - "commit": "eb1ae05cf040346bdb197490ef74ed929fdf60b7", - "text": "For statically provisioned PVs, if their volume source is of CSI type or they have a migrated annotation, when they are deleted, the PersistentVolume controller won't change their phase to the Failed state. With this patch, the external provisioner can remove the finalizer in the next reconcile loop. Unfortunately, if a previously existing PV has the Failed state, this patch won't take effect. Users are required to remove the finalizer manually.", - "markdown": "For statically provisioned PVs, if their volume source is of CSI type or they have a migrated annotation, when they are deleted, the PersistentVolume controller won't change their phase to the Failed state. With this patch, the external provisioner can remove the finalizer in the next reconcile loop. Unfortunately, if a previously existing PV has the Failed state, this patch won't take effect. Users are required to remove the finalizer manually. ([#122030](https://github.com/kubernetes/kubernetes/pull/122030), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2644", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122030", - "pr_number": 122030, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "apps" - ], - "duplicate": true, - "is_mapped": true - }, - "122032": { - "commit": "f68a965e5ae7a954b567c6162de0e2d17606d680", - "text": "\"The GA feature-gate `APISelfSubjectReview` has been removed, and the feature is unconditionally enabled.\"\n", - "markdown": "\"The GA feature-gate `APISelfSubjectReview` has been removed, and the feature is unconditionally enabled.\"\n ([#122032](https://github.com/kubernetes/kubernetes/pull/122032), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3325", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122032", - "pr_number": 122032, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "122056": { - "commit": "180c6bdc2559478339710e6c5a79701044c12363", - "text": "\"Fixed the disruption controller's PDB status synchronization to maintain all PDB conditions during an update.\"\n", - "markdown": "\"Fixed the disruption controller's PDB status synchronization to maintain all PDB conditions during an update.\"\n ([#122056](https://github.com/kubernetes/kubernetes/pull/122056), [@dhenkel92](https://github.com/dhenkel92))", - "author": "dhenkel92", - "author_url": "https://github.com/dhenkel92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122056", - "pr_number": 122056, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "122058": { - "commit": "517091cdc5084283e7ee1e3d77587f12bb186604", - "text": "\"Improved scheduler performance when no scoring plugins were defined.\"\n", - "markdown": "\"Improved scheduler performance when no scoring plugins were defined.\"\n ([#122058](https://github.com/kubernetes/kubernetes/pull/122058), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", - "author": "aleksandra-malinowska", - "author_url": "https://github.com/aleksandra-malinowska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122058", - "pr_number": 122058, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "122068": { - "commit": "84424a8c190d1d004dbcdbb64d171d8887846b48", - "text": "\"Fixed a regression since `1.24` in the scheduling framework when overriding MultiPoint plugins (e.g. default plugins). The incorrect loop logic might have led to a plugin being loaded multiple times, consequently preventing any Pod from being scheduled, which was unexpected.\"\n", - "markdown": "\"Fixed a regression since `1.24` in the scheduling framework when overriding MultiPoint plugins (e.g. default plugins). The incorrect loop logic might have led to a plugin being loaded multiple times, consequently preventing any Pod from being scheduled, which was unexpected.\"\n ([#122068](https://github.com/kubernetes/kubernetes/pull/122068), [@caohe](https://github.com/caohe))", - "author": "caohe", - "author_url": "https://github.com/caohe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122068", - "pr_number": 122068, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "122069": { - "commit": "583a79a4569b5cbbff12131ebcc612d5cf659ae1", - "text": "\"Client-go: Optimized leaders renewing leases by updating leader lock optimistically without getting the record from the API server first. Also, a new metric `leader_election_slowpath_total` was added to allow users to monitor how many leader elections are updated non-optimistically.\"\n", - "markdown": "\"Client-go: Optimized leaders renewing leases by updating leader lock optimistically without getting the record from the API server first. Also, a new metric `leader_election_slowpath_total` was added to allow users to monitor how many leader elections are updated non-optimistically.\"\n ([#122069](https://github.com/kubernetes/kubernetes/pull/122069), [@linxiulei](https://github.com/linxiulei))", - "author": "linxiulei", - "author_url": "https://github.com/linxiulei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122069", - "pr_number": 122069, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "architecture" - ], - "duplicate": true, - "is_mapped": true - }, - "122079": { - "commit": "1a1941eebb559fc83721dbef8a1944ce958725dc", - "text": "kubeadm: used `ttlSecondsAfterFinished` to automatically clean up the `upgrade-health-check` Job that runs during upgrade preflighting.", - "markdown": "Kubeadm: used `ttlSecondsAfterFinished` to automatically clean up the `upgrade-health-check` Job that runs during upgrade preflighting. ([#122079](https://github.com/kubernetes/kubernetes/pull/122079), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122079", - "pr_number": 122079, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "122086": { - "commit": "a65dcd616e480ef913d0f39cd6ee37669d21a480", - "text": "\"Removed the generally available feature gate `ExpandedDNSConfig`.\"\n", - "markdown": "\"Removed the generally available feature gate `ExpandedDNSConfig`.\"\n ([#122086](https://github.com/kubernetes/kubernetes/pull/122086), [@bzsuni](https://github.com/bzsuni))", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122086", - "pr_number": 122086, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "122088": { - "commit": "b1b3398cb79b0e03b706c94d37163b38c20573e1", - "text": "Removed GA featuregate about `ExperimentalHostUserNamespaceDefaultingGate` in `1.30`.", - "markdown": "Removed GA featuregate about `ExperimentalHostUserNamespaceDefaultingGate` in `1.30`. ([#122088](https://github.com/kubernetes/kubernetes/pull/122088), [@bzsuni](https://github.com/bzsuni))", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122088", - "pr_number": 122088, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "122134": { - "commit": "9694ebd2a7553132e6f50a9bc736a062d13d56a2", - "text": "Removed the generally available feature gate `ProxyTerminatingEndpoints`.", - "markdown": "Removed the generally available feature gate `ProxyTerminatingEndpoints`. ([#122134](https://github.com/kubernetes/kubernetes/pull/122134), [@ty-dc](https://github.com/ty-dc))", - "author": "ty-dc", - "author_url": "https://github.com/ty-dc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122134", - "pr_number": 122134, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "122136": { - "commit": "7825325a420ff04e66b8bf70d6f3661c72e3b2f4", - "text": "\"Removed the generally available feature gate `MinimizeIPTablesRestore`.\"\n", - "markdown": "\"Removed the generally available feature gate `MinimizeIPTablesRestore`.\"\n ([#122136](https://github.com/kubernetes/kubernetes/pull/122136), [@ty-dc](https://github.com/ty-dc))", - "author": "ty-dc", - "author_url": "https://github.com/ty-dc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122136", - "pr_number": 122136, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "122137": { - "commit": "66a4d25afaa0f5fe2350997b31dc62ee79efd5be", - "text": "Removed the GA feature gate for `IPTablesOwnershipCleanup` in version `1.30`.", - "markdown": "Removed the GA feature gate for `IPTablesOwnershipCleanup` in version `1.30`. ([#122137](https://github.com/kubernetes/kubernetes/pull/122137), [@bzsuni](https://github.com/bzsuni))", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122137", - "pr_number": 122137, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "122138": { - "commit": "a21487f78bf3261c6e5ddbbf055980a12e173a55", - "text": "\"Removed the generally available feature gate `KubeletPodResourcesGetAllocatable`.\"\n", - "markdown": "\"Removed the generally available feature gate `KubeletPodResourcesGetAllocatable`.\"\n ([#122138](https://github.com/kubernetes/kubernetes/pull/122138), [@ii2day](https://github.com/ii2day))", - "author": "ii2day", - "author_url": "https://github.com/ii2day", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122138", - "pr_number": 122138, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "122139": { - "commit": "1850794626bb995bb754d54be3328c86ee880ba5", - "text": "\"Removed the generally available feature gate `KubeletPodResources`.\"\n", - "markdown": "\"Removed the generally available feature gate `KubeletPodResources`.\"\n ([#122139](https://github.com/kubernetes/kubernetes/pull/122139), [@bzsuni](https://github.com/bzsuni))", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122139", - "pr_number": 122139, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "122142": { - "commit": "a02a00ecd76fb99ed43a054ed6eb6698426b01f9", - "text": "When working with client-go events, it's now recommended to use `NewEventBroadcasterAdapterWithContext` instead of `NewEventBroadcasterAdapter` if contextual logging support is needed.", - "markdown": "When working with client-go events, it's now recommended to use `NewEventBroadcasterAdapterWithContext` instead of `NewEventBroadcasterAdapter` if contextual logging support is needed. ([#122142](https://github.com/kubernetes/kubernetes/pull/122142), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122142", - "pr_number": 122142, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling", - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122178": { - "commit": "7db7824d85406fe0d5f1b342daaf1662e8f91144", - "text": "Updated cni-plugins to version `v1.4.0`.", - "markdown": "Updated cni-plugins to version `v1.4.0`. ([#122178](https://github.com/kubernetes/kubernetes/pull/122178), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122178", - "pr_number": 122178, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "122195": { - "commit": "9dc0dbe878dc1c14d62c200b297cc8feae0b80c7", - "text": "kube-scheduler now retries scheduling Pods rejected by the PodTopologySpread plugin when related Pods are created, deleted, updated, or when a node matches the specified topologyKey.", - "markdown": "Kube-scheduler now retries scheduling Pods rejected by the PodTopologySpread plugin when related Pods are created, deleted, updated, or when a node matches the specified topologyKey. ([#122195](https://github.com/kubernetes/kubernetes/pull/122195), [@nayihz](https://github.com/nayihz))", - "author": "nayihz", - "author_url": "https://github.com/nayihz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122195", - "pr_number": 122195, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "122197": { - "commit": "6b5e973e5f64105bd255aa3f756ec951fcaf62c1", - "text": "Migrated the kube-proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the kube-proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#122197](https://github.com/kubernetes/kubernetes/pull/122197), [@fatsheep9146](https://github.com/fatsheep9146))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "fatsheep9146", - "author_url": "https://github.com/fatsheep9146", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122197", - "pr_number": 122197, - "areas": [ - "kube-proxy", - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "122204": { - "commit": "247ea2046d350eb51f63f8a3920e6003f80fe3de", - "text": "Fixed a race condition in the iptables mode of kube-proxy in `1.27` and later\nthat could result in some updates getting lost (e.g., when a service gets a\nnew endpoint, the rules for the new endpoint might not be added until\nmuch later).", - "markdown": "Fixed a race condition in the iptables mode of kube-proxy in `1.27` and later\n that could result in some updates getting lost (e.g., when a service gets a\n new endpoint, the rules for the new endpoint might not be added until\n much later). ([#122204](https://github.com/kubernetes/kubernetes/pull/122204), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122204", - "pr_number": 122204, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "122211": { - "commit": "c633ea71edc0b7c10f81e0d042c03eff81aa7f73", - "text": "Enabled deletion of pods that use raw block volumes on node reboot.", - "markdown": "Enabled deletion of pods that use raw block volumes on node reboot. ([#122211](https://github.com/kubernetes/kubernetes/pull/122211), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122211", - "pr_number": 122211, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "122225": { - "commit": "86ab185fa1e98e249fe3e380217099832fe22a4e", - "text": "\"Migrated `client-go/metadata` to contextual logging.\"\n", - "markdown": "\"Migrated `client-go/metadata` to contextual logging.\"\n ([#122225](https://github.com/kubernetes/kubernetes/pull/122225), [@ricardoapl](https://github.com/ricardoapl))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/42bb993e369d166142b7181e90882066ad6c7651/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "ricardoapl", - "author_url": "https://github.com/ricardoapl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122225", - "pr_number": 122225, - "areas": [ - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "122231": { - "commit": "9b5e2dc54d2315402a462e75c168bfc4ce28ecf3", - "text": "\"Added Timezone column in the output of the 'kubectl get cronjob' command.\"\n", - "markdown": "\"Added Timezone column in the output of the 'kubectl get cronjob' command.\"\n ([#122231](https://github.com/kubernetes/kubernetes/pull/122231), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122231", - "pr_number": 122231, - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "122233": { - "commit": "d647d19f6aef811bace300eec96a67644ff303d4", - "text": "\"etcd: Built image for `v3.5.11`.\"\n", - "markdown": "\"etcd: Built image for `v3.5.11`.\"\n ([#122233](https://github.com/kubernetes/kubernetes/pull/122233), [@mzaian](https://github.com/mzaian))", - "author": "mzaian", - "author_url": "https://github.com/mzaian", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122233", - "pr_number": 122233, - "areas": [ - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "122271": { - "commit": "3cae5d9a7d4bc6111e81591f2e9fca82f9ac4b1a", - "text": "\"Updated cri-tools to `v1.29.0`.\"\n", - "markdown": "\"Updated cri-tools to `v1.29.0`.\"\n ([#122271](https://github.com/kubernetes/kubernetes/pull/122271), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122271", - "pr_number": 122271, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "is_mapped": true - }, - "122276": { - "commit": "b37c609b90b7da03803bbc2ab3dfee26c494bd30", - "text": "\"resource.k8s.io/ResourceClaim (alpha API): The strategic merge patch strategy for the `status.reservedFor` array was changed so that a strategic-merge-patch can now add individual entries. This change may break clients using strategic merge patch to update status, which rely on the previous behavior (replacing the entire array).\"\n", - "markdown": "\"resource.k8s.io/ResourceClaim (alpha API): The strategic merge patch strategy for the `status.reservedFor` array was changed so that a strategic-merge-patch can now add individual entries. This change may break clients using strategic merge patch to update status, which rely on the previous behavior (replacing the entire array).\"\n ([#122276](https://github.com/kubernetes/kubernetes/pull/122276), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122276", - "pr_number": 122276, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "122285": { - "commit": "33beb81d8f44bbadd27f6e14f747750fc27dedb4", - "text": "\"QueueingHint implementation for `NodeAffinity` was reverted because potential scenarios were found where events that make Pods schedulable could be missed.\"\n", - "markdown": "\"QueueingHint implementation for `NodeAffinity` was reverted because potential scenarios were found where events that make Pods schedulable could be missed.\"\n ([#122285](https://github.com/kubernetes/kubernetes/pull/122285), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122285", - "pr_number": 122285, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "122288": { - "commit": "68ef2423e81ed5efdb3f9881bbf5c91a81fb7448", - "text": "Reverted the `QueueingHint` implementation for `NodeUnschedulable` due to potential scenarios where events that make Pods schedulable could be missed.", - "markdown": "Reverted the `QueueingHint` implementation for `NodeUnschedulable` due to potential scenarios where events that make Pods schedulable could be missed. ([#122288](https://github.com/kubernetes/kubernetes/pull/122288), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122288", - "pr_number": 122288, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "122292": { - "commit": "aa73f3163a52e9a99df01b86f60eeed31abd54d9", - "text": "Improved the efficiency of NodeAdded QueueingHint by registering UpdateNodeTaint event for plugins that have NodeAdded event but don't have UpdateNodeTaint event. This ensures better requeuing efficiency and prevents Pods from being stuck in the unschedulable pod pool.\n", - "markdown": "Improved the efficiency of NodeAdded QueueingHint by registering UpdateNodeTaint event for plugins that have NodeAdded event but don't have UpdateNodeTaint event. This ensures better requeuing efficiency and prevents Pods from being stuck in the unschedulable pod pool.\n ([#122292](https://github.com/kubernetes/kubernetes/pull/122292), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122292", - "pr_number": 122292, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "122293": { - "commit": "67a06c20568db0f7b3a3b48ec564929b625e875a", - "text": "kube-controller-manager: increased the global level for broadcaster's logging to 3 so that users can ignore event messages by lowering the logging level. It reduces information noise.", - "markdown": "Kube-controller-manager: increased the global level for broadcaster's logging to 3 so that users can ignore event messages by lowering the logging level. It reduces information noise. ([#122293](https://github.com/kubernetes/kubernetes/pull/122293), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122293", - "pr_number": 122293, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "scheduling", - "storage", - "node", - "api-machinery", - "autoscaling", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "122296": { - "commit": "f538feed8c005866490d0a204bb3da192afe5767", - "text": "`kube-proxy` nftables mode is now compatible with kernel `5.4`.", - "markdown": "`kube-proxy` nftables mode is now compatible with kernel `5.4`. ([#122296](https://github.com/kubernetes/kubernetes/pull/122296), [@tnqn](https://github.com/tnqn))", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122296", - "pr_number": 122296, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "122309": { - "commit": "b1cf91b300a82bd05fdd7b115559e5b83680d768", - "text": "kube-scheduler implemented scheduling hints for the `NodeAffinity` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeAffinity` plugin if a new Node or a Node update matched the Pod's node affinity.", - "markdown": "Kube-scheduler implemented scheduling hints for the `NodeAffinity` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeAffinity` plugin if a new Node or a Node update matched the Pod's node affinity. ([#122309](https://github.com/kubernetes/kubernetes/pull/122309), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4247", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122309", - "pr_number": 122309, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "122329": { - "commit": "4cff5e8d2dc7df19b1cdceb7146a40e7ebc50085", - "text": "\"Fixed accidental enablement of the new alpha `optionalOldSelf` API field in `CustomResourceDefinition` validation rules, which should only have been allowed to be set when the `CRDValidationRatcheting` feature gate is enabled.\"\n", - "markdown": "\"Fixed accidental enablement of the new alpha `optionalOldSelf` API field in `CustomResourceDefinition` validation rules, which should only have been allowed to be set when the `CRDValidationRatcheting` feature gate is enabled.\"\n ([#122329](https://github.com/kubernetes/kubernetes/pull/122329), [@jpbetz](https://github.com/jpbetz))", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122329", - "pr_number": 122329, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "122334": { - "commit": "d74705119d99afc6b8b3de8a53c3b7c8ad005aef", - "text": "\"kube-scheduler implemented scheduling hints for the `NodeUnschedulable` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeSchedulable` plugin if a new Node or a Node update had set `.spec.unschedulable` to false.\"\n", - "markdown": "\"kube-scheduler implemented scheduling hints for the `NodeUnschedulable` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeSchedulable` plugin if a new Node or a Node update had set `.spec.unschedulable` to false.\"\n ([#122334](https://github.com/kubernetes/kubernetes/pull/122334), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4247", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122334", - "pr_number": 122334, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "122339": { - "commit": "63eb5028ba613003f044f0391912be356e0f1b97", - "text": "Added warning for `PV` on reclaim policy when it is `Recycle`.", - "markdown": "Added warning for `PV` on reclaim policy when it is `Recycle`. ([#122339](https://github.com/kubernetes/kubernetes/pull/122339), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122339", - "pr_number": 122339, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "122341": { - "commit": "55f1e21fdc71ae47a51e2e78c2f72d6a5952491e", - "text": "\"Fixed a regression in migration of in-tree vSphere volumes to the CSI driver introduced in version `1.29.0`+.\"\n", - "markdown": "\"Fixed a regression in migration of in-tree vSphere volumes to the CSI driver introduced in version `1.29.0`+.\"\n ([#122341](https://github.com/kubernetes/kubernetes/pull/122341), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122341", - "pr_number": 122341, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "122346": { - "commit": "1b6b3ba013025c1914f6a992b7223e99c185599c", - "text": "\"Fixed an issue where `kubectl apply` could panic when imported as a library.\"\n", - "markdown": "\"Fixed an issue where `kubectl apply` could panic when imported as a library.\"\n ([#122346](https://github.com/kubernetes/kubernetes/pull/122346), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122346", - "pr_number": 122346, - "areas": [ - "kubectl" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "122393": { - "commit": "0d530551bcd79120d94b1525921c222c418bc7b6", - "text": "etcd: Updated to `v3.5.11`.", - "markdown": "Etcd: Updated to `v3.5.11`. ([#122393](https://github.com/kubernetes/kubernetes/pull/122393), [@mzaian](https://github.com/mzaian))", - "author": "mzaian", - "author_url": "https://github.com/mzaian", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122393", - "pr_number": 122393, - "areas": [ - "test", - "provider/gcp", - "kubeadm", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "testing", - "cloud-provider", - "etcd" - ], - "duplicate": true, - "is_mapped": true - }, - "122409": { - "commit": "adc256ff0465130ecc6fb8336d827e7d54a42bed", - "text": "The feature gate `LegacyServiceAccountTokenTracking` (GA since 1.28) is now removed because the feature is unconditionally enabled.", - "markdown": "The feature gate `LegacyServiceAccountTokenTracking` (GA since 1.28) is now removed because the feature is unconditionally enabled. ([#122409](https://github.com/kubernetes/kubernetes/pull/122409), [@Rei1010](https://github.com/Rei1010))", - "author": "Rei1010", - "author_url": "https://github.com/Rei1010", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122409", - "pr_number": 122409, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth" - ], - "is_mapped": true - }, - "122415": { - "commit": "e2a6ce713c1ca23c7f02f0a0625faf1b8745f81f", - "text": "When using a claim with immediate allocation and a pod referencing that claim couldn't get scheduled, the scheduler incorrectly may have tried to deallocate that claim.", - "markdown": "When using a claim with immediate allocation and a pod referencing that claim couldn't get scheduled, the scheduler incorrectly may have tried to deallocate that claim. ([#122415](https://github.com/kubernetes/kubernetes/pull/122415), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122415", - "pr_number": 122415, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "122422": { - "commit": "1c789a9d46b39d4a3847852f27924bce94266138", - "text": "Removed note that `hostAliases` are not supported on hostNetwork Pods from the PodSpec API. The feature has been supported since v1.8.", - "markdown": "Removed note that `hostAliases` are not supported on hostNetwork Pods from the PodSpec API. The feature has been supported since v1.8. ([#122422](https://github.com/kubernetes/kubernetes/pull/122422), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122422", - "pr_number": 122422, - "areas": [ - "code-generation" - ], - "kinds": [ - "documentation", - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122435": { - "commit": "c8c845ae08a0277cc883327ef3902283026e9237", - "text": "\"Improved scheduler performance when no scoring plugins were defined.\"\n", - "markdown": "\"Improved scheduler performance when no scoring plugins were defined.\"\n ([#122435](https://github.com/kubernetes/kubernetes/pull/122435), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", - "author": "aleksandra-malinowska", - "author_url": "https://github.com/aleksandra-malinowska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122435", - "pr_number": 122435, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "122447": { - "commit": "5104e6566135e05b0b46eea1c068a07388c78044", - "text": "Fixed a regression in kubectl version `1.29.0` where the `--attach` flag was not honored.\n", - "markdown": "Fixed a regression in kubectl version `1.29.0` where the `--attach` flag was not honored.\n ([#122447](https://github.com/kubernetes/kubernetes/pull/122447), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122447", - "pr_number": 122447, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "122449": { - "commit": "c015565db399b9cf1e8aebaecc390f6ecbaf24c3", - "text": "`ValidateVolumeAttributesClassUpdate` also validates new VolumeAttributesClass object.", - "markdown": "`ValidateVolumeAttributesClassUpdate` also validates new VolumeAttributesClass object. ([#122449](https://github.com/kubernetes/kubernetes/pull/122449), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122449", - "pr_number": 122449, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "122456": { - "commit": "3516bc6f49eee4ca2d45ad3a13385c22ea76c247", - "text": "A new metric `lifecycle_handler_sleep_terminated_total` is added to record how many times LifecycleHandler sleep got unexpectedly terminated.", - "markdown": "A new metric `lifecycle_handler_sleep_terminated_total` is added to record how many times LifecycleHandler sleep got unexpectedly terminated. ([#122456](https://github.com/kubernetes/kubernetes/pull/122456), [@AxeZhan](https://github.com/AxeZhan))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3960", - "type": "KEP" - } - ], - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122456", - "pr_number": 122456, - "areas": [ - "test", - "kubelet", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "122468": { - "commit": "838536f6641eb5b1b875af05f74fc84146ba2f05", - "text": "\"Removed the GA feature gate `RemoveSelfLink`.\"\n", - "markdown": "\"Removed the GA feature gate `RemoveSelfLink`.\"\n ([#122468](https://github.com/kubernetes/kubernetes/pull/122468), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1164", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122468", - "pr_number": 122468, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "122475": { - "commit": "0babde6bacd72a7f2d3cf2a8f4688e766dd122f7", - "text": "Fixed panic of Evented `PLEG` during kubelet start-up.", - "markdown": "Fixed panic of Evented `PLEG` during kubelet start-up. ([#122475](https://github.com/kubernetes/kubernetes/pull/122475), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122475", - "pr_number": 122475, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "122477": { - "commit": "735804dc812ce647f8c130dced45b5ba4079b76e", - "text": "\"`kubeadm completion` error message now displayed supported shell types when an invalid shell was specified.\"\n", - "markdown": "\"`kubeadm completion` error message now displayed supported shell types when an invalid shell was specified.\"\n ([#122477](https://github.com/kubernetes/kubernetes/pull/122477), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122477", - "pr_number": 122477, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "122493": { - "commit": "12771ce77372da6c98a197b2f86fcdce74762f2d", - "text": "\"Fixed incorrect error logging for `syncCronJob`.\"\n", - "markdown": "\"Fixed incorrect error logging for `syncCronJob`.\"\n ([#122493](https://github.com/kubernetes/kubernetes/pull/122493), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122493", - "pr_number": 122493, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "122498": { - "commit": "5b979a3a53fefce7e3092dfe208385e66e713179", - "text": "\"Allowed scheduling framework plugins that implement `io.Closer` to be gracefully closed.\"\n", - "markdown": "\"Allowed scheduling framework plugins that implement `io.Closer` to be gracefully closed.\"\n ([#122498](https://github.com/kubernetes/kubernetes/pull/122498), [@Gekko0114](https://github.com/Gekko0114))", - "author": "Gekko0114", - "author_url": "https://github.com/Gekko0114", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122498", - "pr_number": 122498, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "122503": { - "commit": "919d4624a03fd2f18d4015a091b13e61d6a10044", - "text": "Scheduler extender `ignorable` option now handles errors for both filter and bind phases.", - "markdown": "Scheduler extender `ignorable` option now handles errors for both filter and bind phases. ([#122503](https://github.com/kubernetes/kubernetes/pull/122503), [@sunbinnnnn](https://github.com/sunbinnnnn))", - "author": "sunbinnnnn", - "author_url": "https://github.com/sunbinnnnn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122503", - "pr_number": 122503, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "122508": { - "commit": "692be54671dc86ba2deb96606d3f4b8b6ccbce13", - "text": "\"Removed the incorrect warning event `FileSystemResizeFailed` during pod creation if it uses a readonly volume and the capacity of the volume is greater than or equal to its requested storage.\"\n", - "markdown": "\"Removed the incorrect warning event `FileSystemResizeFailed` during pod creation if it uses a readonly volume and the capacity of the volume is greater than or equal to its requested storage.\"\n ([#122508](https://github.com/kubernetes/kubernetes/pull/122508), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122508", - "pr_number": 122508, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "122530": { - "commit": "0598cec06a907ccc3252393b75cb33290214a869", - "text": "\"kubeadm: Added better handling of errors during unmount when calling `kubeadm reset`. When failing to unmount directories under `/var/run/kubelet`, kubeadm will now throw an error instead of showing a warning and continuing to clean up said directory. In such situations, it is better for you to inspect the problem and resolve it manually. Then, you can call `kubeadm reset` again to complete the cleanup.\"\n", - "markdown": "\"kubeadm: Added better handling of errors during unmount when calling `kubeadm reset`. When failing to unmount directories under `/var/run/kubelet`, kubeadm will now throw an error instead of showing a warning and continuing to clean up said directory. In such situations, it is better for you to inspect the problem and resolve it manually. Then, you can call `kubeadm reset` again to complete the cleanup.\"\n ([#122530](https://github.com/kubernetes/kubernetes/pull/122530), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122530", - "pr_number": 122530, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122555": { - "commit": "0341e8294abffdfbdd4a038e0fd49d7f35ddc30a", - "text": "Introduced a feature gate mechanism to `client-go`. Depending on the actual implementation, users can control features via environmental variables or command line options.", - "markdown": "Introduced a feature gate mechanism to `client-go`. Depending on the actual implementation, users can control features via environmental variables or command line options. ([#122555](https://github.com/kubernetes/kubernetes/pull/122555), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "documentation": [ - { - "description": "[Other doc]", - "url": "https://docs.google.com/document/d/1g9BGCRw-7ucUxO6OtCWbb3lfzUGA_uU9178wLdXAIfs/edit#heading=h.lymszxjovg65", - "type": "external" - } - ], - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122555", - "pr_number": 122555, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "122558": { - "commit": "9bd0ef5f173de3cc2d1d629a4aee499d53690aee", - "text": "\"Changed the API server so that for admission webhooks that have a URL matching the hostname 'localhost' or a loopback IP address, the connection supports HTTP/2 where it could be negotiated.\"\n", - "markdown": "\"Changed the API server so that for admission webhooks that have a URL matching the hostname 'localhost' or a loopback IP address, the connection supports HTTP/2 where it could be negotiated.\"\n ([#122558](https://github.com/kubernetes/kubernetes/pull/122558), [@linxiulei](https://github.com/linxiulei))", - "author": "linxiulei", - "author_url": "https://github.com/linxiulei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122558", - "pr_number": 122558, - "areas": [ - "test", - "apiserver", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "122571": { - "commit": "026a27e5eb431c553d1204817cbf09f1005eca9b", - "text": "\"Added `WatchListClient` feature gate to `client-go`. When enabled, it allows the client to receive a stream of individual items instead of chunking from the server.\"\n", - "markdown": "\"Added `WatchListClient` feature gate to `client-go`. When enabled, it allows the client to receive a stream of individual items instead of chunking from the server.\"\n ([#122571](https://github.com/kubernetes/kubernetes/pull/122571), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/3157-watch-list/README.md", - "type": "KEP" - }, - { - "description": "[Other doc]", - "url": "https://docs.google.com/document/d/1g9BGCRw-7ucUxO6OtCWbb3lfzUGA_uU9178wLdXAIfs/edit#heading=h.lymszxjovg65", - "type": "external" - } - ], - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122571", - "pr_number": 122571, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "122574": { - "commit": "56ecdadd99aaee518fd9dde45f7c6b81f44d3785", - "text": "Fixed a bug where `kubectl` drain would consider a pod as having been deleted if an error occurs while calling the API.", - "markdown": "Fixed a bug where `kubectl` drain would consider a pod as having been deleted if an error occurs while calling the API. ([#122574](https://github.com/kubernetes/kubernetes/pull/122574), [@brianpursley](https://github.com/brianpursley))", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122574", - "pr_number": 122574, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "122576": { - "commit": "ec8f7b2600b3a5177b9dbd8f93c4de737df278de", - "text": "Deprecated the `azureFile` in-tree storage plugin.", - "markdown": "Deprecated the `azureFile` in-tree storage plugin. ([#122576](https://github.com/kubernetes/kubernetes/pull/122576), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1885", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122576", - "pr_number": 122576, - "areas": [ - "kubelet", - "provider/azure" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "node", - "api-machinery", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "122578": { - "commit": "6427e2c9c8b88d1d4c15cb18b1ef7b7ff1afe0fe", - "text": "\"Locked the GA feature-gate `ConsistentHTTPGetHandlers` to default.\"\n", - "markdown": "\"Locked the GA feature-gate `ConsistentHTTPGetHandlers` to default.\"\n ([#122578](https://github.com/kubernetes/kubernetes/pull/122578), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122578", - "pr_number": 122578, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "122589": { - "commit": "0a1cb2a4a42e70482604fe18b02029ecf088c17b", - "text": "Contextual logging is now in beta and enabled by default. Check out the [KEP](https://github.com/kubernetes/enhancements/issues/3077) and [official documentation](https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) for more details.", - "markdown": "Contextual logging is now in beta and enabled by default. Check out the [KEP](https://github.com/kubernetes/enhancements/issues/3077) and [official documentation](https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) for more details. ([#122589](https://github.com/kubernetes/kubernetes/pull/122589), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3077", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#contextual-logging", - "type": "official" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122589", - "pr_number": 122589, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "instrumentation" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122600": { - "commit": "d4678c79e7d316e6347a2868329d61dcb532dfba", - "text": "\"Used `errors.Is()` to handle errors returned by `LookPath()`.\"\n", - "markdown": "\"Used `errors.Is()` to handle errors returned by `LookPath()`.\"\n ([#122600](https://github.com/kubernetes/kubernetes/pull/122600), [@lzhecheng](https://github.com/lzhecheng))", - "author": "lzhecheng", - "author_url": "https://github.com/lzhecheng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122600", - "pr_number": 122600, - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ], - "is_mapped": true - }, - "122612": { - "commit": "7bea14097b77219291c1fce17a2829be8f6b9adb", - "text": "The deprecated `SecurityContextDeny` admission plugin, which has been deprecated since `v1.27`, has been removed. It is recommended to use the Pod Security Admission plugin instead, which has been available since v1.25. Refer to the [Kubernetes documentation](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#securitycontextdeny) for more information.\n", - "markdown": "The deprecated `SecurityContextDeny` admission plugin, which has been deprecated since `v1.27`, has been removed. It is recommended to use the Pod Security Admission plugin instead, which has been available since v1.25. Refer to the [Kubernetes documentation](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#securitycontextdeny) for more information.\n ([#122612](https://github.com/kubernetes/kubernetes/pull/122612), [@mtardy](https://github.com/mtardy))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3785", - "type": "external" - }, - { - "description": "[Other doc]", - "url": "https://github.com/kubernetes/kubernetes/issues/111516", - "type": "external" - } - ], - "author": "mtardy", - "author_url": "https://github.com/mtardy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122612", - "pr_number": 122612, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "deprecation" - ], - "sigs": [ - "auth", - "testing", - "security" - ], - "duplicate": true, - "is_mapped": true - }, - "122614": { - "commit": "95a159299b9be577be55550dbbca588f25580ae9", - "text": "\"kube-proxy: Fixed `LoadBalancerSourceRanges` not working for `nftables` mode.\"\n", - "markdown": "\"kube-proxy: Fixed `LoadBalancerSourceRanges` not working for `nftables` mode.\"\n ([#122614](https://github.com/kubernetes/kubernetes/pull/122614), [@tnqn](https://github.com/tnqn))", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122614", - "pr_number": 122614, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "122618": { - "commit": "cf2003fde41756d1d16fcb2d941a86708e8c5460", - "text": "\"`kubectl describe`: Added Suspend to job and Node-Selectors and Tolerations to pod template output.\"\n", - "markdown": "\"`kubectl describe`: Added Suspend to job and Node-Selectors and Tolerations to pod template output.\"\n ([#122618](https://github.com/kubernetes/kubernetes/pull/122618), [@ivanvc](https://github.com/ivanvc))", - "author": "ivanvc", - "author_url": "https://github.com/ivanvc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122618", - "pr_number": 122618, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "122635": { - "commit": "42941cb88a1123cfcec931cd784cba19131db472", - "text": "Promoted feature-gate `LegacyServiceAccountTokenCleanUp` to GA and locked it to default.", - "markdown": "Promoted feature-gate `LegacyServiceAccountTokenCleanUp` to GA and locked it to default. ([#122635](https://github.com/kubernetes/kubernetes/pull/122635), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2799", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122635", - "pr_number": 122635, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "122640": { - "commit": "8bc0ed16cd8a4c966f6822c96fafc7bd2b1eb2ea", - "text": "\"Printed more information when `kubectl describe` a `VolumeAttributesClass`.\"\n", - "markdown": "\"Printed more information when `kubectl describe` a `VolumeAttributesClass`.\"\n ([#122640](https://github.com/kubernetes/kubernetes/pull/122640), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3751", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122640", - "pr_number": 122640, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "122647": { - "commit": "83e6636096548f4b49a94ece6bc4a26fd67e4449", - "text": "Added to `MutableFeatureGate` the ability to override the default setting of feature gates, to allow default-enabling a feature on a component-by-component basis instead of for all affected components simultaneously.", - "markdown": "Added to `MutableFeatureGate` the ability to override the default setting of feature gates, to allow default-enabling a feature on a component-by-component basis instead of for all affected components simultaneously. ([#122647](https://github.com/kubernetes/kubernetes/pull/122647), [@benluddy](https://github.com/benluddy))", - "documentation": [ - { - "description": "[Proposal]", - "url": "https://docs.google.com/document/d/1g9BGCRw-7ucUxO6OtCWbb3lfzUGA_uU9178wLdXAIfs/edit#heading=h.ookhkzz1jrsp", - "type": "external" - } - ], - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122647", - "pr_number": 122647, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122697": { - "commit": "7ca92fb0168dd033a892c296543ed30d06e6a267", - "text": "\"Reverted the `EventedPLEG` feature (beta, but disabled by default) back to alpha due to a known issue.\"\n", - "markdown": "\"Reverted the `EventedPLEG` feature (beta, but disabled by default) back to alpha due to a known issue.\"\n ([#122697](https://github.com/kubernetes/kubernetes/pull/122697), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122697", - "pr_number": 122697, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "122701": { - "commit": "5ad2c12a6951deffe5394abc48c65417553dd214", - "text": "Fixed resource deletion failure caused by quota calculation error when `InPlacePodVerticalScaling` is turned on.", - "markdown": "Fixed resource deletion failure caused by quota calculation error when `InPlacePodVerticalScaling` is turned on. ([#122701](https://github.com/kubernetes/kubernetes/pull/122701), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1287", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122701", - "pr_number": 122701, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "122704": { - "commit": "eabd6e4584dd3302c0ce7b7389bdea8f1e0d27aa", - "text": "The PersistentVolume controller no longer automatically assigns a default `StorageClass` to Persistent Volume Claims (PVCs) with an empty `storageClassName`.\n", - "markdown": "The PersistentVolume controller no longer automatically assigns a default `StorageClass` to Persistent Volume Claims (PVCs) with an empty `storageClassName`.\n ([#122704](https://github.com/kubernetes/kubernetes/pull/122704), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3333", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122704", - "pr_number": 122704, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "storage", - "apps" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122705": { - "commit": "773ad73b90c2836685358a0fafe285b9e4cdcc19", - "text": "Kubernetes is now built with Go `1.21.6`.", - "markdown": "Kubernetes is now built with Go `1.21.6`. ([#122705](https://github.com/kubernetes/kubernetes/pull/122705), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122705", - "pr_number": 122705, - "areas": [ - "test", - "release-eng", - "conformance" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release", - "architecture" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "122717": { - "commit": "a67973a45c4b48585e3331889eca09425caca7c2", - "text": "Alpha support for field selectors on custom resources has been added. With the `CustomResourceFieldSelectors` feature gate enabled, the CustomResourceDefinition API now allows specifying `selectableFields`. Listing a field there enables filtering custom resources for that CustomResourceDefinition in list or watch requests.", - "markdown": "Alpha support for field selectors on custom resources has been added. With the `CustomResourceFieldSelectors` feature gate enabled, the CustomResourceDefinition API now allows specifying `selectableFields`. Listing a field there enables filtering custom resources for that CustomResourceDefinition in list or watch requests. ([#122717](https://github.com/kubernetes/kubernetes/pull/122717), [@jpbetz](https://github.com/jpbetz))", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122717", - "pr_number": 122717, - "areas": [ - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122724": { - "commit": "053acbed906eb7eabb51c113dc2371b4bf13b4d1", - "text": "\"Changed `--nodeport-addresses` behavior to default to \"primary node IP(s) only\" rather than \"all node IPs\".\"\n", - "markdown": "\"Changed `--nodeport-addresses` behavior to default to \"primary node IP(s) only\" rather than \"all node IPs\".\"\n ([#122724](https://github.com/kubernetes/kubernetes/pull/122724), [@nayihz](https://github.com/nayihz))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3866", - "type": "KEP" - } - ], - "author": "nayihz", - "author_url": "https://github.com/nayihz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122724", - "pr_number": 122724, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "windows" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "122729": { - "commit": "f84b2f0254c193dc7a70081d4eeceb8e69e984bc", - "text": "The `kube_codegen` tool now ignores the vendor folder during code generation.\n", - "markdown": "The `kube_codegen` tool now ignores the vendor folder during code generation.\n ([#122729](https://github.com/kubernetes/kubernetes/pull/122729), [@jparrill](https://github.com/jparrill))", - "author": "jparrill", - "author_url": "https://github.com/jparrill", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122729", - "pr_number": 122729, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122735": { - "commit": "789e029364ca2dce27cf4750176a0b11ede09a00", - "text": "Fixed a regression in \"kubeadm init\" where a user-specified --kubeconfig file was being ignored.", - "markdown": "Fixed a regression in \"kubeadm init\" where a user-specified --kubeconfig file was being ignored. ([#122735](https://github.com/kubernetes/kubernetes/pull/122735), [@avorima](https://github.com/avorima))", - "author": "avorima", - "author_url": "https://github.com/avorima", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122735", - "pr_number": 122735, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "122745": { - "commit": "3686ceb5b826d74c8e4e8a0fa998063cb8d86e02", - "text": "In kubelet configuration, the `.memorySwap.swapBehavior` field now accepts a new value `NoSwap`, which becomes the default if unspecified. The previously accepted `UnlimitedSwap` value has been dropped.\n", - "markdown": "In kubelet configuration, the `.memorySwap.swapBehavior` field now accepts a new value `NoSwap`, which becomes the default if unspecified. The previously accepted `UnlimitedSwap` value has been dropped.\n ([#122745](https://github.com/kubernetes/kubernetes/pull/122745), [@kannon92](https://github.com/kannon92))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2400", - "type": "KEP" - } - ], - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122745", - "pr_number": 122745, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122750": { - "commit": "f7f1ea6fa23ec0fc527ff10174bbe0dc3bec77da", - "text": "Added `process_start_time_seconds` to `/metrics/slis` endpoint of all components.", - "markdown": "Added `process_start_time_seconds` to `/metrics/slis` endpoint of all components. ([#122750](https://github.com/kubernetes/kubernetes/pull/122750), [@richabanker](https://github.com/richabanker))", - "author": "richabanker", - "author_url": "https://github.com/richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122750", - "pr_number": 122750, - "areas": [ - "test", - "conformance" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "testing", - "architecture" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "122804": { - "commit": "1ad143177c365212e53793aff204c6f1c9727d45", - "text": "Added metric name along with the utilization information when running `kubectl get hpa`.", - "markdown": "Added metric name along with the utilization information when running `kubectl get hpa`. ([#122804](https://github.com/kubernetes/kubernetes/pull/122804), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh))", - "author": "sreeram-venkitesh", - "author_url": "https://github.com/sreeram-venkitesh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122804", - "pr_number": 122804, - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "122807": { - "commit": "fedb5842e53f33ae2c4bc2ac8eaf4092b4c3b52b", - "text": "Fixed an issue where the `configmap`, `secret`, `projected`, and `downwardAPI` volume types didn't create user-visible files after a kubelet restart. This fix ensures data persistence and accessibility after restarts.", - "markdown": "Fixed an issue where the `configmap`, `secret`, `projected`, and `downwardAPI` volume types didn't create user-visible files after a kubelet restart. This fix ensures data persistence and accessibility after restarts. ([#122807](https://github.com/kubernetes/kubernetes/pull/122807), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122807", - "pr_number": 122807, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "122830": { - "commit": "d2b4928669c633cffb0e4aa6317d0e016ee37de6", - "text": "\"The watch cache now waits until it is at least as fresh as the given requestedWatchRV if sendInitialEvents was requested.\"\n", - "markdown": "\"The watch cache now waits until it is at least as fresh as the given requestedWatchRV if sendInitialEvents was requested.\"\n ([#122830](https://github.com/kubernetes/kubernetes/pull/122830), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/3157-watch-list/README.md", - "type": "KEP" - } - ], - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122830", - "pr_number": 122830, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "122846": { - "commit": "015e76aa24ebfebfd64062e1161059ac62ddabc9", - "text": "\"Fixed an issue where `AvailableBytes` sometimes did not report correctly on WindowsNodes when the `PodAndContainerStatsFromCRI` feature was enabled.\"\n", - "markdown": "\"Fixed an issue where `AvailableBytes` sometimes did not report correctly on WindowsNodes when the `PodAndContainerStatsFromCRI` feature was enabled.\"\n ([#122846](https://github.com/kubernetes/kubernetes/pull/122846), [@marosset](https://github.com/marosset))", - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122846", - "pr_number": 122846, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true, - "is_mapped": true - }, - "122857": { - "commit": "7bb00356f06332e63a9f06acd42f1bdd8fc559d6", - "text": "The in-tree cloud provider for Azure has now been removed. Please use the external cloud provider and CSI driver from https://github.com/kubernetes/cloud-provider-azure instead.", - "markdown": "The in-tree cloud provider for Azure has now been removed. Please use the external cloud provider and CSI driver from https://github.com/kubernetes/cloud-provider-azure instead. ([#122857](https://github.com/kubernetes/kubernetes/pull/122857), [@nilo19](https://github.com/nilo19))", - "author": "nilo19", - "author_url": "https://github.com/nilo19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122857", - "pr_number": 122857, - "areas": [ - "test", - "kubelet", - "cloudprovider", - "provider/azure", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "api-machinery", - "instrumentation", - "testing", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "122870": { - "commit": "56a1b075cdbf7e4e78b40f133fc500415fe4f8fc", - "text": "Promoted the `status.hostIPs` field for Pods to general availability.\nThe `PodHostIPs` feature gate no longer has any effect, and the\n`status.hostIPs` field is always available within the Pod API.", - "markdown": "Promoted the `status.hostIPs` field for Pods to general availability.\n The `PodHostIPs` feature gate no longer has any effect, and the\n `status.hostIPs` field is always available within the Pod API. ([#122870](https://github.com/kubernetes/kubernetes/pull/122870), [@wzshiming](https://github.com/wzshiming))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2681", - "type": "KEP" - } - ], - "author": "wzshiming", - "author_url": "https://github.com/wzshiming", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122870", - "pr_number": 122870, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "node", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "122874": { - "commit": "1853de77b24cf1bb6a7821fd2a3b33e2fdb76192", - "text": "Fixed node lifecycle controller panic when conditionType ready is been patch `nil` by mistake.", - "markdown": "Fixed node lifecycle controller panic when conditionType ready is been patch `nil` by mistake. ([#122874](https://github.com/kubernetes/kubernetes/pull/122874), [@fusida](https://github.com/fusida))", - "author": "fusida", - "author_url": "https://github.com/fusida", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122874", - "pr_number": 122874, - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node", - "apps" - ], - "duplicate": true, - "is_mapped": true - }, - "122881": { - "commit": "542fe510462005c5c5757bed34c6ae62b7b36180", - "text": "Added a CBOR implementation of `runtime.Serializer`. Until CBOR graduates to Alpha, API servers will refuse to start if configured with CBOR support.", - "markdown": "Added a CBOR implementation of `runtime.Serializer`. Until CBOR graduates to Alpha, API servers will refuse to start if configured with CBOR support. ([#122881](https://github.com/kubernetes/kubernetes/pull/122881), [@benluddy](https://github.com/benluddy))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4222", - "type": "external" - } - ], - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122881", - "pr_number": 122881, - "areas": [ - "test", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122882": { - "commit": "3f25211d69b4412e3e926835067918f86f629f3e", - "text": "Aggregated discovery supports both `v2beta1` and v2 types and feature is promoted to GA.", - "markdown": "Aggregated discovery supports both `v2beta1` and v2 types and feature is promoted to GA. ([#122882](https://github.com/kubernetes/kubernetes/pull/122882), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122882", - "pr_number": 122882, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122883": { - "commit": "3d3d705a6dabe8c4bc980e0353a512437ed221e2", - "text": "Fixed bug where health check could pass while APIServices are missing from aggregated discovery.", - "markdown": "Fixed bug where health check could pass while APIServices are missing from aggregated discovery. ([#122883](https://github.com/kubernetes/kubernetes/pull/122883), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122883", - "pr_number": 122883, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "122887": { - "commit": "58c77d7b63d0a027b37e2189f9de2728e5674169", - "text": "When the `RetryGenerateName` feature gate is enabled on the kube-apiserver,\ncreate requests using generateName are retried automatically by the apiserver when the generated name conflicts with an existing resource name, up to a max limit of 7 retries.\nThis feature is in alpha.", - "markdown": "When the `RetryGenerateName` feature gate is enabled on the kube-apiserver,\n create requests using generateName are retried automatically by the apiserver when the generated name conflicts with an existing resource name, up to a max limit of 7 retries.\n This feature is in alpha. ([#122887](https://github.com/kubernetes/kubernetes/pull/122887), [@jpbetz](https://github.com/jpbetz))", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122887", - "pr_number": 122887, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "122889": { - "commit": "0ff6a00fafee08467d946ab18c7839d9704d27d5", - "text": "Kubernetes is now built with go `1.22rc2`.", - "markdown": "Kubernetes is now built with go `1.22rc2`. ([#122889](https://github.com/kubernetes/kubernetes/pull/122889), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122889", - "pr_number": 122889, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "122893": { - "commit": "a07b1aaa5b39b351ec8586de800baa5715304a3f", - "text": "\"Fixed error handling in `EnsureAdminClusterRoleBindingImpl`.\"\n", - "markdown": "\"Fixed error handling in `EnsureAdminClusterRoleBindingImpl`.\"\n ([#122893](https://github.com/kubernetes/kubernetes/pull/122893), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122893", - "pr_number": 122893, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true, - "is_mapped": true - }, - "122907": { - "commit": "5fd38a8c7871c058e59e38645abe3df8024d52e2", - "text": "The drop-in kubelet configuration directory feature has been targeted for Beta.", - "markdown": "The drop-in kubelet configuration directory feature has been targeted for Beta. ([#122907](https://github.com/kubernetes/kubernetes/pull/122907), [@sohankunkerkar](https://github.com/sohankunkerkar))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3983-drop-in-configuration", - "type": "KEP" - } - ], - "author": "sohankunkerkar", - "author_url": "https://github.com/sohankunkerkar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122907", - "pr_number": 122907, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "122914": { - "commit": "4128848655c50e4794b4e28bf02e2a03d1814ced", - "text": "Promoted `KubeProxyDrainingTerminatingNodes` to `Beta`.", - "markdown": "Promoted `KubeProxyDrainingTerminatingNodes` to `Beta`. ([#122914](https://github.com/kubernetes/kubernetes/pull/122914), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/issues/3836", - "type": "KEP" - } - ], - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122914", - "pr_number": 122914, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "is_mapped": true - }, - "122937": { - "commit": "7ff2deceb1ca7b7d24cbedc5832a4c81610f6157", - "text": "The in-tree cloud provider for vSphere has been deprecated and removed. Users are advised to utilize the external cloud provider and CSI driver available at https://github.com/kubernetes/cloud-provider-vsphere.", - "markdown": "The in-tree cloud provider for vSphere has been deprecated and removed. Users are advised to utilize the external cloud provider and CSI driver available at https://github.com/kubernetes/cloud-provider-vsphere. ([#122937](https://github.com/kubernetes/kubernetes/pull/122937), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122937", - "pr_number": 122937, - "areas": [ - "test", - "cloudprovider", - "provider/gcp", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "api-machinery", - "testing", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "122946": { - "commit": "278ea691e0a951164ed0958d908b22098ab32165", - "text": "Users can now traverse all the pods that are in the scheduler and waiting in the permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods in scheduler can be obtained from any profiles. Before this commit, each profile could only obtain `waitingPods` within that profile", - "markdown": "Users can now traverse all the pods that are in the scheduler and waiting in the permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods in scheduler can be obtained from any profiles. Before this commit, each profile could only obtain `waitingPods` within that profile ([#122946](https://github.com/kubernetes/kubernetes/pull/122946), [@NoicFank](https://github.com/NoicFank))", - "author": "NoicFank", - "author_url": "https://github.com/NoicFank", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122946", - "pr_number": 122946, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "122961": { - "commit": "7f5cd1961ca042e2d746c6fbb05771251748d9f4", - "text": "Promoted feature gate `StableLoadBalancerNodeSet` to `GA` .", - "markdown": "Promoted feature gate `StableLoadBalancerNodeSet` to `GA` . ([#122961](https://github.com/kubernetes/kubernetes/pull/122961), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/issues/3458", - "type": "KEP" - } - ], - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122961", - "pr_number": 122961, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "122999": { - "commit": "980033ee810b4a458f7cd475353f585aa82b8c35", - "text": "Fixed an issue calculating total CPU usage reported for Windows nodes.", - "markdown": "Fixed an issue calculating total CPU usage reported for Windows nodes. ([#122999](https://github.com/kubernetes/kubernetes/pull/122999), [@marosset](https://github.com/marosset))", - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122999", - "pr_number": 122999, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123001": { - "commit": "862ff187baad9373d59d19e5d736dcda1e25e90d", - "text": "In the PriorityLevelConfiguration object, the `nominalConcurrencyShares` field now accepts a zero value in both the `flowcontrol.apiserver.k8s.io/v1` and `flowcontrol.apiserver.k8s.io/v1beta3` APIs.\n", - "markdown": "In the PriorityLevelConfiguration object, the `nominalConcurrencyShares` field now accepts a zero value in both the `flowcontrol.apiserver.k8s.io/v1` and `flowcontrol.apiserver.k8s.io/v1beta3` APIs.\n ([#123001](https://github.com/kubernetes/kubernetes/pull/123001), [@tkashem](https://github.com/tkashem))", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123001", - "pr_number": 123001, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "123003": { - "commit": "4f910fe47cc9a0cf648a049a6cccc38be17b0ad6", - "text": "\"Fixed a bug in `ValidatingAdmissionPolicy` that caused policies using CRD parameters to fail to synchronize.\"\n", - "markdown": "\"Fixed a bug in `ValidatingAdmissionPolicy` that caused policies using CRD parameters to fail to synchronize.\"\n ([#123003](https://github.com/kubernetes/kubernetes/pull/123003), [@alexzielenski](https://github.com/alexzielenski))", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123003", - "pr_number": 123003, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "123011": { - "commit": "65e77e77751423588dc09568d842de0c73e4bede", - "text": "The `--cidr-allocator-type` option set to `CloudAllocator` for `kube-controller-manager` will be deprecated and removed in a future release. Users are advised to transition to and explore the available options provided by their external cloud provider.", - "markdown": "The `--cidr-allocator-type` option set to `CloudAllocator` for `kube-controller-manager` will be deprecated and removed in a future release. Users are advised to transition to and explore the available options provided by their external cloud provider. ([#123011](https://github.com/kubernetes/kubernetes/pull/123011), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123011", - "pr_number": 123011, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "api-machinery" - ], - "duplicate": true, - "is_mapped": true - }, - "123023": { - "commit": "012f04b178a44c0002b0f3ded6cc43788daf9139", - "text": "Fixed `kubectl explain` to show enum for field types if they were defined.", - "markdown": "Fixed `kubectl explain` to show enum for field types if they were defined. ([#123023](https://github.com/kubernetes/kubernetes/pull/123023), [@ah8ad3](https://github.com/ah8ad3))", - "author": "ah8ad3", - "author_url": "https://github.com/ah8ad3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123023", - "pr_number": 123023, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "123032": { - "commit": "2c5105e7b80f97ab2da0d47a6db6875aec38331c", - "text": "Fixed Pod stuck in `Terminating` because of `GenerateUnmapVolumeFunc` missing `globalUnmapPath` when kubelet tries to clean up all volumes that failed reconstruction.", - "markdown": "Fixed Pod stuck in `Terminating` because of `GenerateUnmapVolumeFunc` missing `globalUnmapPath` when kubelet tries to clean up all volumes that failed reconstruction. ([#123032](https://github.com/kubernetes/kubernetes/pull/123032), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123032", - "pr_number": 123032, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "123038": { - "commit": "7080b51ee92f67623757534f3462d8ae862ef6fe", - "text": "\"Fixed the deprecated version for `pod_scheduling_duration_seconds` that caused the metric to be hidden by default in `1.29`.\"\n", - "markdown": "\"Fixed the deprecated version for `pod_scheduling_duration_seconds` that caused the metric to be hidden by default in `1.29`.\"\n ([#123038](https://github.com/kubernetes/kubernetes/pull/123038), [@alculquicondor](https://github.com/alculquicondor))", - "author": "alculquicondor", - "author_url": "https://github.com/alculquicondor", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123038", - "pr_number": 123038, - "areas": [ - "stable-metrics" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123052": { - "commit": "77775d45469a3da6a7ce5e6e2221cff17c2d27fe", - "text": "\"Fixed cleanup of Pod volume mounts when a file was used as a subpath.\"\n", - "markdown": "\"Fixed cleanup of Pod volume mounts when a file was used as a subpath.\"\n ([#123052](https://github.com/kubernetes/kubernetes/pull/123052), [@jsafrane](https://github.com/jsafrane))", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123052", - "pr_number": 123052, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "123055": { - "commit": "440f11d83dd939afb53d47a64fb1d6bf837cc50b", - "text": "Fixed an error when trying to expand a volume that does not require node expansion.", - "markdown": "Fixed an error when trying to expand a volume that does not require node expansion. ([#123055](https://github.com/kubernetes/kubernetes/pull/123055), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123055", - "pr_number": 123055, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "123069": { - "commit": "003187fd5a0803eb25f984e07a5c7c47a5621c1d", - "text": "etcd image `v3.5.12` has been built.", - "markdown": "Etcd image `v3.5.12` has been built. ([#123069](https://github.com/kubernetes/kubernetes/pull/123069), [@bzsuni](https://github.com/bzsuni))", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123069", - "pr_number": 123069, - "areas": [ - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "etcd" - ], - "duplicate": true, - "is_mapped": true - }, - "123077": { - "commit": "173cf189209a2ad21cf251164275cd3cc5366b74", - "text": "Fixed a bug in kubeadm where the `--rootfs` global flag didn't work with \"kubeadm upgrade node\" for control plane nodes.", - "markdown": "Fixed a bug in kubeadm where the `--rootfs` global flag didn't work with \"kubeadm upgrade node\" for control plane nodes. ([#123077](https://github.com/kubernetes/kubernetes/pull/123077), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123077", - "pr_number": 123077, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "123083": { - "commit": "002b0f00033e3fd4650dd4da3717b9187b8621e1", - "text": "`ValidatingAdmissionPolicy` now supports type checking policies that utilize variables.", - "markdown": "`ValidatingAdmissionPolicy` now supports type checking policies that utilize variables. ([#123083](https://github.com/kubernetes/kubernetes/pull/123083), [@jiahuif](https://github.com/jiahuif))", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123083", - "pr_number": 123083, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "123093": { - "commit": "4a4f5dbc079e85e63f62178af962cb65bd60d987", - "text": "\"Fixed a `1.27.0+` regression in kubeadm: The kubelet patch configuration will not be uploaded into the `kube-system/kubelet-config` ConfigMap anymore.\"\n", - "markdown": "\"Fixed a `1.27.0+` regression in kubeadm: The kubelet patch configuration will not be uploaded into the `kube-system/kubelet-config` ConfigMap anymore.\"\n ([#123093](https://github.com/kubernetes/kubernetes/pull/123093), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123093", - "pr_number": 123093, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "123098": { - "commit": "8c6e940a970e3a910b02442c001735619a8c7ba4", - "text": "Updated an audit annotation key used by the `…/serviceaccounts/\u003cname\u003e/token` resource handler.\nThe annotation used to persist the issued credential identifier is now `authentication.kubernetes.io/issued-credential-id`.", - "markdown": "Updated an audit annotation key used by the `…/serviceaccounts/\u003cname\u003e/token` resource handler.\n The annotation used to persist the issued credential identifier is now `authentication.kubernetes.io/issued-credential-id`. ([#123098](https://github.com/kubernetes/kubernetes/pull/123098), [@munnerz](https://github.com/munnerz)) [SIG Auth]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issue/4193", - "type": "KEP" - } - ], - "author": "munnerz", - "author_url": "https://github.com/munnerz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123098", - "pr_number": 123098, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "auth" - ], - "duplicate_kind": true - }, - "123117": { - "commit": "ad19beaa83363de89a7772f4d5af393b85ce5e61", - "text": "Fixed a bug in scheduler requeueing where registered wildcard cluster event sources didn't work.", - "markdown": "Fixed a bug in scheduler requeueing where registered wildcard cluster event sources didn't work. ([#123117](https://github.com/kubernetes/kubernetes/pull/123117), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123117", - "pr_number": 123117, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "123134": { - "commit": "920333b5fbec6019e503f8d444ce4c5af4100d3b", - "text": "Graduated support for passing dual-stack `kubelet --node-ip` values when using a cloud provider. The feature is now GA, and the `CloudDualStackNodeIPs` feature gate is always enabled.", - "markdown": "Graduated support for passing dual-stack `kubelet --node-ip` values when using a cloud provider. The feature is now GA, and the `CloudDualStackNodeIPs` feature gate is always enabled. ([#123134](https://github.com/kubernetes/kubernetes/pull/123134), [@danwinship](https://github.com/danwinship))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3705", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123134", - "pr_number": 123134, - "areas": [ - "kubelet", - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123135": { - "commit": "8845c4c657eb587944a0cf5ce18203c1361d5215", - "text": "Node information is now embedded into Pod-bound service account tokens as additional metadata. The 'JTI' field is set in issued service account tokens, and this information is embedded as `authentication.kubernetes.io/credential-id` in the user's ExtraInfo.", - "markdown": "Node information is now embedded into Pod-bound service account tokens as additional metadata. The 'JTI' field is set in issued service account tokens, and this information is embedded as `authentication.kubernetes.io/credential-id` in the user's ExtraInfo. ([#123135](https://github.com/kubernetes/kubernetes/pull/123135), [@munnerz](https://github.com/munnerz))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4193", - "type": "KEP" - } - ], - "author": "munnerz", - "author_url": "https://github.com/munnerz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123135", - "pr_number": 123135, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123150": { - "commit": "bd0288af97d4294f3acd36b90038110ac6544fbe", - "text": "\"Updated `etcd` to version `3.5.12`.\"\n", - "markdown": "\"Updated `etcd` to version `3.5.12`.\"\n ([#123150](https://github.com/kubernetes/kubernetes/pull/123150), [@bzsuni](https://github.com/bzsuni))", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123150", - "pr_number": 123150, - "areas": [ - "test", - "provider/gcp", - "kubeadm", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "testing", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "123157": { - "commit": "c53ac4cee4b16d020c218618d942096028a820a9", - "text": "Introduced a new alpha feature gate, `SELinuxMount`, which can now be enabled to accelerate SELinux relabeling.", - "markdown": "Introduced a new alpha feature gate, `SELinuxMount`, which can now be enabled to accelerate SELinux relabeling. ([#123157](https://github.com/kubernetes/kubernetes/pull/123157), [@jsafrane](https://github.com/jsafrane))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling", - "type": "KEP" - } - ], - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123157", - "pr_number": 123157, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123165": { - "commit": "ba450636a455eedb78a18d21db8919e9afdd4e77", - "text": "Added audienceMatchPolicy field to AuthenticationConfiguration and support for configuring multiple audiences.\nThe \"audienceMatchPolicy\" can be empty (or unset) when a single audience is specified in the \"audiences\" field.\nThe \"audienceMatchPolicy\" must be set to \"MatchAny\" when multiple audiences are specified in the \"audiences\" field.", - "markdown": "Added audienceMatchPolicy field to AuthenticationConfiguration and support for configuring multiple audiences.\n The \"audienceMatchPolicy\" can be empty (or unset) when a single audience is specified in the \"audiences\" field.\n The \"audienceMatchPolicy\" must be set to \"MatchAny\" when multiple audiences are specified in the \"audiences\" field. ([#123165](https://github.com/kubernetes/kubernetes/pull/123165), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123165", - "pr_number": 123165, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123170": { - "commit": "d6e4c6cdea48d3565a5046079850cd0d04bcb74c", - "text": "\"Updated `distroless-iptables` to `v0.5.0`, debian-base to `bookworm-v1.0.1`, and setcap to `bookworm-v1.0.1`.\"\n", - "markdown": "\"Updated `distroless-iptables` to `v0.5.0`, debian-base to `bookworm-v1.0.1`, and setcap to `bookworm-v1.0.1`.\"\n ([#123170](https://github.com/kubernetes/kubernetes/pull/123170), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123170", - "pr_number": 123170, - "areas": [ - "test", - "provider/gcp", - "release-eng", - "conformance" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "storage", - "api-machinery", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123171": { - "commit": "e7d84c9f08f96832ad66f85adc40f924643e4268", - "text": "kubeadm: the `kubelet-finalize` phase of `kubeadm init` no longer requires the kubelet kubeconfig to have a specific authinfo.", - "markdown": "Kubeadm: the `kubelet-finalize` phase of `kubeadm init` no longer requires the kubelet kubeconfig to have a specific authinfo. ([#123171](https://github.com/kubernetes/kubernetes/pull/123171), [@vrutkovs](https://github.com/vrutkovs))", - "author": "vrutkovs", - "author_url": "https://github.com/vrutkovs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123171", - "pr_number": 123171, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "123179": { - "commit": "7abb063b42c7770628ee2b69e25370cf6334882a", - "text": "Added a new metric `apiserver_encryption_config_controller_automatic_reloads_total` to measure the total number of API server encryption configuration reload successes and failures. This metric now contains the `status` label with a value that is either `success` or `failure`. Deprecated the metrics `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total`. Please use `apiserver_encryption_config_controller_automatic_reloads_total` instead.\n", - "markdown": "Added a new metric `apiserver_encryption_config_controller_automatic_reloads_total` to measure the total number of API server encryption configuration reload successes and failures. This metric now contains the `status` label with a value that is either `success` or `failure`. Deprecated the metrics `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total`. Please use `apiserver_encryption_config_controller_automatic_reloads_total` instead.\n ([#123179](https://github.com/kubernetes/kubernetes/pull/123179), [@aramase](https://github.com/aramase))", - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123179", - "pr_number": 123179, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123180": { - "commit": "eafd2897e24b5b069bcdf83ac7a9b2c0b894dbb8", - "text": "\"`readOnly` volumes now support recursive read-only mounts for kernel versions \u003e= 5.12.\"\n", - "markdown": "\"`readOnly` volumes now support recursive read-only mounts for kernel versions \u003e= 5.12.\"\n ([#123180](https://github.com/kubernetes/kubernetes/pull/123180), [@AkihiroSuda](https://github.com/AkihiroSuda))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3857", - "type": "external" - } - ], - "author": "AkihiroSuda", - "author_url": "https://github.com/AkihiroSuda", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123180", - "pr_number": 123180, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123190": { - "commit": "599d92f1fb6fce102ae83d6c98be1aa5749f35de", - "text": "\"Added the `apiserver_watch_cache_read_wait` metric to measure the watch cache impact on request latency.\"\n", - "markdown": "\"Added the `apiserver_watch_cache_read_wait` metric to measure the watch cache impact on request latency.\"\n ([#123190](https://github.com/kubernetes/kubernetes/pull/123190), [@padlar](https://github.com/padlar))", - "author": "padlar", - "author_url": "https://github.com/padlar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123190", - "pr_number": 123190, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123205": { - "commit": "f8fc1956db26b881e09e45ba563f096aade38420", - "text": "The NodeLogQuery feature has been promoted to beta. No functional changes have been made from the alpha version.", - "markdown": "The NodeLogQuery feature has been promoted to beta. No functional changes have been made from the alpha version. ([#123205](https://github.com/kubernetes/kubernetes/pull/123205), [@aravindhp](https://github.com/aravindhp))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/2258-node-log-query", - "type": "KEP" - }, - { - "url": "https://github.com/kubernetes/website/pull/45126", - "type": "external" - } - ], - "author": "aravindhp", - "author_url": "https://github.com/aravindhp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123205", - "pr_number": 123205, - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "windows" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123215": { - "commit": "cde4788a27bad9681bc68a1dd2cd878fed27fb1a", - "text": "Graduated \"Forensic Container Checkpointing\" (KEP #2008) from Alpha to Beta.", - "markdown": "Graduated \"Forensic Container Checkpointing\" (KEP #2008) from Alpha to Beta. ([#123215](https://github.com/kubernetes/kubernetes/pull/123215), [@adrianreber](https://github.com/adrianreber))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2008", - "type": "KEP" - }, - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/4288", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/blog/2022/12/05/forensic-container-checkpointing-alpha/", - "type": "external" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/blog/2023/03/10/forensic-container-analysis/", - "type": "external" - }, - { - "description": "[Other doc]", - "url": "https://kubernetes.io/docs/reference/node/kubelet-checkpoint-api/", - "type": "official" - } - ], - "author": "adrianreber", - "author_url": "https://github.com/adrianreber", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123215", - "pr_number": 123215, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123216": { - "commit": "b63e991b5742ea86dd81b5a39b3369576d7d90da", - "text": "The kubelet now rejects creating the pod if `hostUserns=false` and the CRI runtime does not support user namespaces.", - "markdown": "The kubelet now rejects creating the pod if `hostUserns=false` and the CRI runtime does not support user namespaces. ([#123216](https://github.com/kubernetes/kubernetes/pull/123216), [@giuseppe](https://github.com/giuseppe))", - "author": "giuseppe", - "author_url": "https://github.com/giuseppe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123216", - "pr_number": 123216, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "123217": { - "commit": "b85c9bbf1ac911a2a2aed2d5c1f5eaf5956cc199", - "text": "Kubernetes is now built with Go `1.22`.", - "markdown": "Kubernetes is now built with Go `1.22`. ([#123217](https://github.com/kubernetes/kubernetes/pull/123217), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123217", - "pr_number": 123217, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123222": { - "commit": "ed84e7f6d327d518e140c5f9c31462075b922c3a", - "text": "Fixed a potential data race in DRA with no known real-world implications.", - "markdown": "Fixed a potential data race in DRA with no known real-world implications. ([#123222](https://github.com/kubernetes/kubernetes/pull/123222), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123222", - "pr_number": 123222, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "123223": { - "commit": "3ae6c051a0971cca3bc8e151b62467d317d5f1a7", - "text": "Enhanced cloud provider integrations to support optional, per-Node custom labels that can be supplied and applied to Nodes by the node controller. These extra labels will only be applied where the cloud provider integration supports this feature.\n", - "markdown": "Enhanced cloud provider integrations to support optional, per-Node custom labels that can be supplied and applied to Nodes by the node controller. These extra labels will only be applied where the cloud provider integration supports this feature.\n ([#123223](https://github.com/kubernetes/kubernetes/pull/123223), [@mmerkes](https://github.com/mmerkes))", - "documentation": [ - { - "description": "To use this feature, cloud providers must use the [InstancesV2 interface](", - "url": "https://github.com/kubernetes/kubernetes/blob/ad19beaa83363de89a7772f4d5af393b85ce5e61/staging/src/k8s.io/cloud-provider/cloud.go#L210) and", - "type": "external" - } - ], - "author": "mmerkes", - "author_url": "https://github.com/mmerkes", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123223", - "pr_number": 123223, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider" - ], - "feature": true, - "is_mapped": true - }, - "123225": { - "commit": "6d2ee131ebd13ce2ec2448300bb99f4ea942f1a9", - "text": "kube-apiserver now reports latency metric for JWT authenticator authenticate token decisions in the `apiserver_authentication_jwt_authenticator_latency_seconds` metric, labeled by jwtIssuer hash and result.", - "markdown": "Kube-apiserver now reports latency metric for JWT authenticator authenticate token decisions in the `apiserver_authentication_jwt_authenticator_latency_seconds` metric, labeled by jwtIssuer hash and result. ([#123225](https://github.com/kubernetes/kubernetes/pull/123225), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123225", - "pr_number": 123225, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123226": { - "commit": "a81411594a3c66f9e1b9214ba9e0c472e8c2e742", - "text": "\"`kubectl get job` now displays the status for the listed jobs.\"\n", - "markdown": "\"`kubectl get job` now displays the status for the listed jobs.\"\n ([#123226](https://github.com/kubernetes/kubernetes/pull/123226), [@ivanvc](https://github.com/ivanvc))", - "author": "ivanvc", - "author_url": "https://github.com/ivanvc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123226", - "pr_number": 123226, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "cli" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123261": { - "commit": "1dce896e2c83bbb659b88b5ec79902099655bf00", - "text": "\"Restored the `--verify-only` function in code generation wrappers.\"\n", - "markdown": "\"Restored the `--verify-only` function in code generation wrappers.\"\n ([#123261](https://github.com/kubernetes/kubernetes/pull/123261), [@skitt](https://github.com/skitt))", - "author": "skitt", - "author_url": "https://github.com/skitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123261", - "pr_number": 123261, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "123271": { - "commit": "7225dc6c3ac970f04e7691547193a54ccd0b3ee6", - "text": "\"kubeadm: ensured that a variety of API server requests were retried during \"init\", \"join\", \"upgrade\", \"reset\" workflows. Prior to this change, some API server requests, such as creating or updating ConfigMaps, were \"one-shot\" - i.e., they could fail if the API server dropped connectivity for a very short period of time.\"\n", - "markdown": "\"kubeadm: ensured that a variety of API server requests were retried during \"init\", \"join\", \"upgrade\", \"reset\" workflows. Prior to this change, some API server requests, such as creating or updating ConfigMaps, were \"one-shot\" - i.e., they could fail if the API server dropped connectivity for a very short period of time.\"\n ([#123271](https://github.com/kubernetes/kubernetes/pull/123271), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123271", - "pr_number": 123271, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "123272": { - "commit": "e43003195dd680cf380c6e58b8d192fd1da86aae", - "text": "\"cri-api: Implemented KEP-3857: Recursive Read-only (RRO) mounts.\"\n", - "markdown": "\"cri-api: Implemented KEP-3857: Recursive Read-only (RRO) mounts.\"\n ([#123272](https://github.com/kubernetes/kubernetes/pull/123272), [@AkihiroSuda](https://github.com/AkihiroSuda))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3857", - "type": "external" - }, - { - "description": "[Implementation]", - "url": "https://github.com/kubernetes/kubernetes/pull/123180", - "type": "external" - } - ], - "author": "AkihiroSuda", - "author_url": "https://github.com/AkihiroSuda", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123272", - "pr_number": 123272, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123273": { - "commit": "e568a77a931a1cf4239a4a5fa43e2b05bad3abdf", - "text": "\"Added (alpha) support for the `managedBy` field on Jobs. Jobs with a custom value of this field - any value other than `kubernetes.io/job-controller` - were skipped by the job controller, and their reconciliation was delegated to an external controller, indicated by the value of the field. Jobs that didn't have this field at all, or where the field value was the reserved string `kubernetes.io/job-controller`, were reconciled by the built-in job controller.\"\n", - "markdown": "\"Added (alpha) support for the `managedBy` field on Jobs. Jobs with a custom value of this field - any value other than `kubernetes.io/job-controller` - were skipped by the job controller, and their reconciliation was delegated to an external controller, indicated by the value of the field. Jobs that didn't have this field at all, or where the field value was the reserved string `kubernetes.io/job-controller`, were reconciled by the built-in job controller.\"\n ([#123273](https://github.com/kubernetes/kubernetes/pull/123273), [@mimowo](https://github.com/mimowo))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/4368-support-managed-by-for-batch-jobs", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123273", - "pr_number": 123273, - "areas": [ - "test", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "123281": { - "commit": "f7ca532472f035db2aedc8a1f86639dfd1dc596f", - "text": "RemoteCommand feature gates for kubectl exec, cp, and attach over WebSockets are now enabled by default (Beta):\n- Server-side feature gate: `TranslateStreamCloseWebsocketRequests`\n- Client-side (kubectl) feature gate: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS`\n- To disable RemoteCommand over WebSockets for kubectl, the environment variable feature gate must be explicitly set to `false`: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS=false`.\n", - "markdown": "RemoteCommand feature gates for kubectl exec, cp, and attach over WebSockets are now enabled by default (Beta):\n - Server-side feature gate: `TranslateStreamCloseWebsocketRequests`\n - Client-side (kubectl) feature gate: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS`\n - To disable RemoteCommand over WebSockets for kubectl, the environment variable feature gate must be explicitly set to `false`: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS=false`.\n ([#123281](https://github.com/kubernetes/kubernetes/pull/123281), [@seans3](https://github.com/seans3))", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123281", - "pr_number": 123281, - "areas": [ - "test", - "apiserver", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123282": { - "commit": "72c3c7c924ec88bfb852fd75740ed7b0ab915c38", - "text": "Addressed an issue where a JWT authenticator set up via `--authentication-config` would encounter failures in verifying tokens not signed with RS256.", - "markdown": "Addressed an issue where a JWT authenticator set up via `--authentication-config` would encounter failures in verifying tokens not signed with RS256. ([#123282](https://github.com/kubernetes/kubernetes/pull/123282), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123282", - "pr_number": 123282, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "123310": { - "commit": "30a68e4ad40a95c92c8410330f75cbadba6f0206", - "text": "Updated kubedns and nodelocaldns to version `v1.23.0`.", - "markdown": "Updated kubedns and nodelocaldns to version `v1.23.0`. ([#123310](https://github.com/kubernetes/kubernetes/pull/123310), [@bzsuni](https://github.com/bzsuni))", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123310", - "pr_number": 123310, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "is_mapped": true - }, - "123323": { - "commit": "e4ee7b005c1a59c2ba0b3fa3e37b91d2e658d0d1", - "text": "Fixed a bug that an init container with containerRestartPolicy with `Always` cannot update its state from terminated to non-terminated for the pod with restartPolicy with `Never` or `OnFailure`.", - "markdown": "Fixed a bug that an init container with containerRestartPolicy with `Always` cannot update its state from terminated to non-terminated for the pod with restartPolicy with `Never` or `OnFailure`. ([#123323](https://github.com/kubernetes/kubernetes/pull/123323), [@gjkim42](https://github.com/gjkim42))", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123323", - "pr_number": 123323, - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "apps" - ], - "duplicate": true, - "is_mapped": true - }, - "123331": { - "commit": "411c29c39f03687a30a8667295c61590def8fc89", - "text": "When initializing nodes using external cloud-providers, the process now waits for the providerID value to be available before declaring the node ready. This ensures that nodes are not marked as Ready prematurely due to communication errors with the cloud-provider. The providerID and zone labels are necessary for integrations such as load balancers to function correctly. Users can choose to opt out of this behavior by setting the feature flag OptionalProviderID in the cloud-controller-manager.\n", - "markdown": "When initializing nodes using external cloud-providers, the process now waits for the providerID value to be available before declaring the node ready. This ensures that nodes are not marked as Ready prematurely due to communication errors with the cloud-provider. The providerID and zone labels are necessary for integrations such as load balancers to function correctly. Users can choose to opt out of this behavior by setting the feature flag OptionalProviderID in the cloud-controller-manager.\n ([#123331](https://github.com/kubernetes/kubernetes/pull/123331), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123331", - "pr_number": 123331, - "areas": [ - "test", - "cloudprovider", - "provider/gcp" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "123333": { - "commit": "6ff6b519042b40ad9d7710ac132eb4e6231940e1", - "text": "kube-apiserver now reports metrics for authorization decisions in the `apiserver_authorization_decisions_total` metric, labeled by authorizer type, name, and decision.", - "markdown": "Kube-apiserver now reports metrics for authorization decisions in the `apiserver_authorization_decisions_total` metric, labeled by authorizer type, name, and decision. ([#123333](https://github.com/kubernetes/kubernetes/pull/123333), [@liggitt](https://github.com/liggitt))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3221-structured-authorization-configuration", - "type": "KEP" - } - ], - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123333", - "pr_number": 123333, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123341": { - "commit": "03f24068da767d75b681a120be85749dcfe34796", - "text": "\"kubeadm: added the `WaitForAllControlPlaneComponents` feature gate. It could be used to tell kubeadm to wait for all control plane components to be ready when running \"kubeadm init\" or \"kubeadm join --control-plane\". Previously, kubeadm only waited for the kube-apiserver. The \"kubeadm join\" workflow now includes a new experimental phase called \"wait-control-plane\". This phase was marked as non-experimental when WaitForAllControlPlaneComponents became GA. Accordingly, a \"kubeadm init\" phase \"wait-control-plane\" was also available once WaitForAllControlPlaneComponents became GA. These phases could be skipped if the user preferred not to wait for the control plane components.\"\n", - "markdown": "\"kubeadm: added the `WaitForAllControlPlaneComponents` feature gate. It could be used to tell kubeadm to wait for all control plane components to be ready when running \"kubeadm init\" or \"kubeadm join --control-plane\". Previously, kubeadm only waited for the kube-apiserver. The \"kubeadm join\" workflow now includes a new experimental phase called \"wait-control-plane\". This phase was marked as non-experimental when WaitForAllControlPlaneComponents became GA. Accordingly, a \"kubeadm init\" phase \"wait-control-plane\" was also available once WaitForAllControlPlaneComponents became GA. These phases could be skipped if the user preferred not to wait for the control plane components.\"\n ([#123341](https://github.com/kubernetes/kubernetes/pull/123341), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123341", - "pr_number": 123341, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "123343": { - "commit": "d311ce0435131c5c2025a185f65b2c6853f23f0f", - "text": "\"Updated `ImageGCMaxAge` behavior in the kubelet to wait the `MaxAge` duration after the kubelet has restarted before garbage collecting.\"\n", - "markdown": "\"Updated `ImageGCMaxAge` behavior in the kubelet to wait the `MaxAge` duration after the kubelet has restarted before garbage collecting.\"\n ([#123343](https://github.com/kubernetes/kubernetes/pull/123343), [@haircommander](https://github.com/haircommander))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4210", - "type": "KEP" - } - ], - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123343", - "pr_number": 123343, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123344": { - "commit": "28c4d00c7dcc9a72853a4da0885e6fac09a2f40e", - "text": "\"The `StorageVersionMigration` API, previously available as a Custom Resource Definition (CRD), is now a built-in API in Kubernetes.\"\n", - "markdown": "\"The `StorageVersionMigration` API, previously available as a Custom Resource Definition (CRD), is now a built-in API in Kubernetes.\"\n ([#123344](https://github.com/kubernetes/kubernetes/pull/123344), [@nilekhc](https://github.com/nilekhc))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/4192-svm-in-tree", - "type": "KEP" - } - ], - "author": "nilekhc", - "author_url": "https://github.com/nilekhc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123344", - "pr_number": 123344, - "areas": [ - "test", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123345": { - "commit": "5d776f935ca9e7dc85ec15cb6b7497e0f6a96f4d", - "text": "Added a \"reason\" field to the \"image_garbage_collected_total\" metric, allowing administrators to differentiate between images that were collected for reasons \"age\" vs \"space\".\n", - "markdown": "Added a \"reason\" field to the \"image_garbage_collected_total\" metric, allowing administrators to differentiate between images that were collected for reasons \"age\" vs \"space\".\n ([#123345](https://github.com/kubernetes/kubernetes/pull/123345), [@haircommander](https://github.com/haircommander))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4210", - "type": "KEP" - } - ], - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123345", - "pr_number": 123345, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "123366": { - "commit": "bc00c9eef0adcf85784b5f97f09767a54deabe9d", - "text": "Revised node selection based on container image location. The kube-scheduler now considers whether nodes have the required images available for init containers, and for sidecar containers if the cluster has 'SidecarContainers' enabled.", - "markdown": "Revised node selection based on container image location. The kube-scheduler now considers whether nodes have the required images available for init containers, and for sidecar containers if the cluster has 'SidecarContainers' enabled. ([#123366](https://github.com/kubernetes/kubernetes/pull/123366), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123366", - "pr_number": 123366, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "123372": { - "commit": "ec58e1f2fc3b56aa1e9c333598fdfab8d5aa66d1", - "text": "\"kubeadm: Added support for machine-readable output with `-o yaml` and `-o json` to the command `kubeadm certs check-expiration`. This change is introduced in a new API: ``` kind: CertificateExpirationInfo apiVersion: output.kubeadm.k8s.io/v1alpha3 ``` The existing non-structured formatting is preserved. The output API version v1alpha2 is now deprecated and will be removed in a future release. Please migrate to using v1alpha3.\"\n", - "markdown": "\"kubeadm: Added support for machine-readable output with `-o yaml` and `-o json` to the command `kubeadm certs check-expiration`. This change is introduced in a new API: ``` kind: CertificateExpirationInfo apiVersion: output.kubeadm.k8s.io/v1alpha3 ``` The existing non-structured formatting is preserved. The output API version v1alpha2 is now deprecated and will be removed in a future release. Please migrate to using v1alpha3.\"\n ([#123372](https://github.com/kubernetes/kubernetes/pull/123372), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2504", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123372", - "pr_number": 123372, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "123384": { - "commit": "dd1e617ba0b9b45faa94fbcbc03560fed8c0fcf7", - "text": "\"Improved scheduler performance when no scoring plugins were defined.\"\n", - "markdown": "\"Improved scheduler performance when no scoring plugins were defined.\"\n ([#123384](https://github.com/kubernetes/kubernetes/pull/123384), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", - "author": "aleksandra-malinowska", - "author_url": "https://github.com/aleksandra-malinowska", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123384", - "pr_number": 123384, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "123385": { - "commit": "87f9b3891e7566aa085645aac4e5e3b4379b4efd", - "text": "Added a alpha feature, behind the `RelaxedEnvironmentVariableValidation` feature gate.\nWhen that gate is enabled, Kubernetes allows almost all printable ASCII characters to be used in the names\nof environment variables for containers in Pods.", - "markdown": "Added a alpha feature, behind the `RelaxedEnvironmentVariableValidation` feature gate.\n When that gate is enabled, Kubernetes allows almost all printable ASCII characters to be used in the names\n of environment variables for containers in Pods. ([#123385](https://github.com/kubernetes/kubernetes/pull/123385), [@HirazawaUi](https://github.com/HirazawaUi))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4369-allow-special-characters-environment-variable", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123385", - "pr_number": 123385, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123405": { - "commit": "2b521e5f8e6b99e84d464d8fa35658aed35bd13c", - "text": "ValidatingAdmissionPolicy was promoted to GA and will be `enabled` by default.", - "markdown": "ValidatingAdmissionPolicy was promoted to GA and will be `enabled` by default. ([#123405](https://github.com/kubernetes/kubernetes/pull/123405), [@cici37](https://github.com/cici37))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3488", - "type": "KEP" - } - ], - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123405", - "pr_number": 123405, - "areas": [ - "test", - "apiserver", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123406": { - "commit": "786510947be11a3adda34653b57eca462f69e8be", - "text": "kubeadm: fixed a bug during kubeadm upgrade, where it is not possible to mount a new device and create a symbolic link for /etc/kubernetes (or a sub-directory) so that kubeadm stores its information on the mounted device.", - "markdown": "Kubeadm: fixed a bug during kubeadm upgrade, where it is not possible to mount a new device and create a symbolic link for /etc/kubernetes (or a sub-directory) so that kubeadm stores its information on the mounted device. ([#123406](https://github.com/kubernetes/kubernetes/pull/123406), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123406", - "pr_number": 123406, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "123412": { - "commit": "364ef335dbd49bfa3d66dbc606c642481d283851", - "text": "\"Added alpha-level support for the SuccessPolicy in Jobs.\"\n", - "markdown": "\"Added alpha-level support for the SuccessPolicy in Jobs.\"\n ([#123412](https://github.com/kubernetes/kubernetes/pull/123412), [@tenzen-y](https://github.com/tenzen-y))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3998-job-success-completion-policy", - "type": "KEP" - } - ], - "author": "tenzen-y", - "author_url": "https://github.com/tenzen-y", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123412", - "pr_number": 123412, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123413": { - "commit": "f745503112e06d6ff199e929d536c6a29825c01a", - "text": "\"kubectl `port-forward` over websockets (tunneling SPDY) can now be enabled using an `Alpha` feature flag environment variable: KUBECTL_PORT_FORWARD_WEBSOCKETS=true. The API Server being communicated to must *also* have an `Alpha` feature flag enabled: PortForwardWebsockets.\"\n", - "markdown": "\"kubectl `port-forward` over websockets (tunneling SPDY) can now be enabled using an `Alpha` feature flag environment variable: KUBECTL_PORT_FORWARD_WEBSOCKETS=true. The API Server being communicated to must *also* have an `Alpha` feature flag enabled: PortForwardWebsockets.\"\n ([#123413](https://github.com/kubernetes/kubernetes/pull/123413), [@seans3](https://github.com/seans3))", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123413", - "pr_number": 123413, - "areas": [ - "test", - "apiserver", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123418": { - "commit": "38638adaee5a51f88cd42152c78117d1bc4f45d5", - "text": "LoadBalancerIPMode feature is now marked as Beta.", - "markdown": "LoadBalancerIPMode feature is now marked as Beta. ([#123418](https://github.com/kubernetes/kubernetes/pull/123418), [@rikatz](https://github.com/rikatz))", - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123418", - "pr_number": 123418, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123424": { - "commit": "cb989b84c82ab8c695d02c9a1866bc27de37caec", - "text": "Promoted the `ImageMaximumGCAge` feature to beta.", - "markdown": "Promoted the `ImageMaximumGCAge` feature to beta. ([#123424](https://github.com/kubernetes/kubernetes/pull/123424), [@haircommander](https://github.com/haircommander))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issue/4210", - "type": "KEP" - } - ], - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123424", - "pr_number": 123424, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123425": { - "commit": "9bc5257c450f7dfda187bfadd96f32310a2eaa18", - "text": "Added feature gate `MutatingAdmissionPolicy` for enabling mutation policy in admission chain.", - "markdown": "Added feature gate `MutatingAdmissionPolicy` for enabling mutation policy in admission chain. ([#123425](https://github.com/kubernetes/kubernetes/pull/123425), [@cici37](https://github.com/cici37))", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123425", - "pr_number": 123425, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "123431": { - "commit": "c726b2b3a3519309afbac68e0358c99977d1c805", - "text": "Structured Authentication Configuration now supports configuring multiple JWT authenticators. The maximum allowed JWT authenticators in the authentication configuration is 64.", - "markdown": "Structured Authentication Configuration now supports configuring multiple JWT authenticators. The maximum allowed JWT authenticators in the authentication configuration is 64. ([#123431](https://github.com/kubernetes/kubernetes/pull/123431), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123431", - "pr_number": 123431, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123435": { - "commit": "bd25605619cbfb46b075002a6db58b4e489fc8cb", - "text": "AppArmor profiles can now be configured through fields on the `PodSecurityContext` and container `SecurityContext`. The beta AppArmor annotations are deprecated, and AppArmor status is no longer included in the node ready condition.", - "markdown": "AppArmor profiles can now be configured through fields on the `PodSecurityContext` and container `SecurityContext`. The beta AppArmor annotations are deprecated, and AppArmor status is no longer included in the node ready condition. ([#123435](https://github.com/kubernetes/kubernetes/pull/123435), [@tallclair](https://github.com/tallclair))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/24-apparmor/", - "type": "KEP" - } - ], - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123435", - "pr_number": 123435, - "areas": [ - "test", - "kubelet", - "apiserver", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123442": { - "commit": "58bbf6991303fa97660beafc74d0d2d6e2c1c623", - "text": "\"`NewVolumeManagerReconstruction` feature is now GA.\"\n", - "markdown": "\"`NewVolumeManagerReconstruction` feature is now GA.\"\n ([#123442](https://github.com/kubernetes/kubernetes/pull/123442), [@jsafrane](https://github.com/jsafrane))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/3756-volume-reconstruction", - "type": "KEP" - } - ], - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123442", - "pr_number": 123442, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123461": { - "commit": "c498177b99fa5f8329a6b75996ab83dfe255b64b", - "text": "\"In kubeadm, in the new output API 'output.kubeadm.k8s.io/v1alpha3', the UpgradePlan structure that is used when calling 'kubeadm upgrade plan ... -o yaml|json' was modified to include a list of multiple available upgrades.\"\n", - "markdown": "\"In kubeadm, in the new output API 'output.kubeadm.k8s.io/v1alpha3', the UpgradePlan structure that is used when calling 'kubeadm upgrade plan ... -o yaml|json' was modified to include a list of multiple available upgrades.\"\n ([#123461](https://github.com/kubernetes/kubernetes/pull/123461), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2504", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123461", - "pr_number": 123461, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "123464": { - "commit": "1b07df8845e12c3e0240119df9d6d4f4a2f57c6d", - "text": "kubeadm: the `bridge-nf-call-iptables=1` and `bridge-nf-call-ip6tables=1` preflight checks are removed since not all the network implementations require this setting, network plugins are responsible for setting this correctly depending on whether or not they connect containers to Linux bridges or use some other mechanism.", - "markdown": "Kubeadm: the `bridge-nf-call-iptables=1` and `bridge-nf-call-ip6tables=1` preflight checks are removed since not all the network implementations require this setting, network plugins are responsible for setting this correctly depending on whether or not they connect containers to Linux bridges or use some other mechanism. ([#123464](https://github.com/kubernetes/kubernetes/pull/123464), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123464", - "pr_number": 123464, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "123475": { - "commit": "872c621bb743818e9623fc6c714369dc6889e19a", - "text": "Fixed bug where providing a FieldPath to a CRD Validation Rule would erroneously affect the reported field path of other unrelated CRD Validation Rules on the same schema.", - "markdown": "Fixed bug where providing a FieldPath to a CRD Validation Rule would erroneously affect the reported field path of other unrelated CRD Validation Rules on the same schema. ([#123475](https://github.com/kubernetes/kubernetes/pull/123475), [@alexzielenski](https://github.com/alexzielenski))", - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123475", - "pr_number": 123475, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "123479": { - "commit": "689dca08e1fc57090e55c1908c3806bdfcaed224", - "text": "Updated the sample-apiserver manifest example to include correct RBAC configurations.", - "markdown": "Updated the sample-apiserver manifest example to include correct RBAC configurations. ([#123479](https://github.com/kubernetes/kubernetes/pull/123479), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123479", - "pr_number": 123479, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "123481": { - "commit": "6929a11f694ee4d6e66a2d12794d9e78cb2d6ab4", - "text": "Graduated support for `minDomains` in pod topology spread constraints, to general availability.\nThe `MinDomainsInPodTopologySpread` feature gate no longer has any effect, and the field is\nalways available within the Pod and PodTemplate APIs.", - "markdown": "Graduated support for `minDomains` in pod topology spread constraints, to general availability.\n The `MinDomainsInPodTopologySpread` feature gate no longer has any effect, and the field is\n always available within the Pod and PodTemplate APIs. ([#123481](https://github.com/kubernetes/kubernetes/pull/123481), [@sanposhiho](https://github.com/sanposhiho))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3022", - "type": "KEP" - } - ], - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123481", - "pr_number": 123481, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123482": { - "commit": "2ec63e0d28951bb525a5bce0d9459afa1c71c0bd", - "text": "Graduated HorizontalPodAutoscaler support for per-container metrics to stable.", - "markdown": "Graduated HorizontalPodAutoscaler support for per-container metrics to stable. ([#123482](https://github.com/kubernetes/kubernetes/pull/123482), [@sanposhiho](https://github.com/sanposhiho))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1610", - "type": "KEP" - } - ], - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123482", - "pr_number": 123482, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "autoscaling", - "apps" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123484": { - "commit": "65d75501f7d7348db1610e755e654b67c6639897", - "text": "Added `client-go` support for upgrading subresource fields from client-side to server-side management.", - "markdown": "Added `client-go` support for upgrading subresource fields from client-side to server-side management. ([#123484](https://github.com/kubernetes/kubernetes/pull/123484), [@erikgb](https://github.com/erikgb))", - "author": "erikgb", - "author_url": "https://github.com/erikgb", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123484", - "pr_number": 123484, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "123487": { - "commit": "a76a3e031fc950a9c2429e611fd0bb00a117b1fc", - "text": "Added a new (alpha) field, `trafficDistribution`, to the Service `spec` to express preferences for traffic distribution to endpoints. Enabled through the `ServiceTrafficDistribution` feature gate.", - "markdown": "Added a new (alpha) field, `trafficDistribution`, to the Service `spec` to express preferences for traffic distribution to endpoints. Enabled through the `ServiceTrafficDistribution` feature gate. ([#123487](https://github.com/kubernetes/kubernetes/pull/123487), [@gauravkghildiyal](https://github.com/gauravkghildiyal))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4444-service-routing-preference", - "type": "KEP" - } - ], - "author": "gauravkghildiyal", - "author_url": "https://github.com/gauravkghildiyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123487", - "pr_number": 123487, - "areas": [ - "kube-proxy", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123492": { - "commit": "a58221c104903c8dfa7f373db219963661a46035", - "text": "\"kubeadm: fixed a bug where \"kubeadm upgrade plan -o yaml|json\" included unneeded output and was missing component config information.\"\n", - "markdown": "\"kubeadm: fixed a bug where \"kubeadm upgrade plan -o yaml|json\" included unneeded output and was missing component config information.\"\n ([#123492](https://github.com/kubernetes/kubernetes/pull/123492), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123492", - "pr_number": 123492, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "123504": { - "commit": "cc5362ebc17e1376fa79b510f7f354dbffe7f92e", - "text": "\"Upgraded metrics server to `v0.7.0`.\"\n", - "markdown": "\"Upgraded metrics server to `v0.7.0`.\"\n ([#123504](https://github.com/kubernetes/kubernetes/pull/123504), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123504", - "pr_number": 123504, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "instrumentation", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "123508": { - "commit": "68a47053d1b797557f304f51c8dc898893250162", - "text": "\"Allowed container runtimes to fix an image garbage collection bug by adding an `image_id` field to the CRI Container message.\"\n", - "markdown": "\"Allowed container runtimes to fix an image garbage collection bug by adding an `image_id` field to the CRI Container message.\"\n ([#123508](https://github.com/kubernetes/kubernetes/pull/123508), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123508", - "pr_number": 123508, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "123516": { - "commit": "7ea3d0245a63fbbba698f1cb939831fe8143db3e", - "text": "\"Dynamic Resource Allocation: DRA drivers can now use \"structured parameters\" to let the scheduler handle claim allocation.\"\n", - "markdown": "\"Dynamic Resource Allocation: DRA drivers can now use \"structured parameters\" to let the scheduler handle claim allocation.\"\n ([#123516](https://github.com/kubernetes/kubernetes/pull/123516), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123516", - "pr_number": 123516, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "release-eng", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "release" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123517": { - "commit": "5d527dcf1265d7fcd0e6c8ec511ce16cc6a40699", - "text": "Patched a leak of a discovery document that would occur when an Aggregated APIService changed its Spec.Service field and did not change it back.", - "markdown": "Patched a leak of a discovery document that would occur when an Aggregated APIService changed its Spec.Service field and did not change it back. ([#123517](https://github.com/kubernetes/kubernetes/pull/123517), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123517", - "pr_number": 123517, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "123520": { - "commit": "9ad2aabc64c767cb8677948ce0114d1f5b396305", - "text": "\"In the Pod API, setting the alpha `procMount` field to `Unmasked` in a container now required setting `spec.hostUsers=false` as well.\"\n", - "markdown": "\"In the Pod API, setting the alpha `procMount` field to `Unmasked` in a container now required setting `spec.hostUsers=false` as well.\"\n ([#123520](https://github.com/kubernetes/kubernetes/pull/123520), [@haircommander](https://github.com/haircommander))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/4265", - "type": "KEP" - } - ], - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123520", - "pr_number": 123520, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123525": { - "commit": "77ecfb7800a5ce6f139818828c8eb49af9c44077", - "text": "The JWT authenticator configuration set via the `--authentication-config` flag is now dynamically reloaded as the file changes on disk.", - "markdown": "The JWT authenticator configuration set via the `--authentication-config` flag is now dynamically reloaded as the file changes on disk. ([#123525](https://github.com/kubernetes/kubernetes/pull/123525), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123525", - "pr_number": 123525, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123527": { - "commit": "ee5eca2a492531139f36201b101e2a7575120337", - "text": "\"Structured Authentication Configuration now supports `DiscoveryURL`. If specified, `discoveryURL` overrides the URL used to fetch discovery information. This is for scenarios where the well-known and jwks endpoints are hosted at a different location than the issuer (such as locally in the cluster).\"\n", - "markdown": "\"Structured Authentication Configuration now supports `DiscoveryURL`. If specified, `discoveryURL` overrides the URL used to fetch discovery information. This is for scenarios where the well-known and jwks endpoints are hosted at a different location than the issuer (such as locally in the cluster).\"\n ([#123527](https://github.com/kubernetes/kubernetes/pull/123527), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123527", - "pr_number": 123527, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123529": { - "commit": "df366107d16aa2e2cdd620be41e592184f379da4", - "text": "The kubernetes repo now uses Go workspaces. This should not impact end users at all, but does have impact for developers of downstream projects. Switching to workspaces caused some breaking changes in the flags to the various k8s.io/code-generator tools. Downstream consumers should look at staging/src/k8s.io/code-generator/kube_codegen.sh to see the changes.", - "markdown": "The kubernetes repo now uses Go workspaces. This should not impact end users at all, but does have impact for developers of downstream projects. Switching to workspaces caused some breaking changes in the flags to the various k8s.io/code-generator tools. Downstream consumers should look at staging/src/k8s.io/code-generator/kube_codegen.sh to see the changes. ([#123529](https://github.com/kubernetes/kubernetes/pull/123529), [@thockin](https://github.com/thockin))", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123529", - "pr_number": 123529, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "release-eng", - "conformance", - "code-generation", - "dependency" - ], - "kinds": [ - "bug", - "cleanup", - "api-change", - "feature" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "apps", - "cli", - "instrumentation", - "testing", - "release", - "architecture", - "cloud-provider" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123532": { - "commit": "5b6d8a42931fd0eb7ba762cd46ad1655e46018a5", - "text": "Prevented watch cache starvation by moving its watch to separate RPC. Added a `SeparateCacheWatchRPC` feature flag to disable this behavior.", - "markdown": "Prevented watch cache starvation by moving its watch to separate RPC. Added a `SeparateCacheWatchRPC` feature flag to disable this behavior. ([#123532](https://github.com/kubernetes/kubernetes/pull/123532), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123532", - "pr_number": 123532, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "123540": { - "commit": "236f1b0f6b4cbb7e372a72d181c6285bdaf74873", - "text": "JWTs used in service account and OIDC authentication are now strictly parsed to confirm that they use compact serialization. Other encodings were not previously accepted, but would result in different unspecific errors.", - "markdown": "JWTs used in service account and OIDC authentication are now strictly parsed to confirm that they use compact serialization. Other encodings were not previously accepted, but would result in different unspecific errors. ([#123540](https://github.com/kubernetes/kubernetes/pull/123540), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123540", - "pr_number": 123540, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "is_mapped": true - }, - "123543": { - "commit": "df1eccae38799ea0a361a7a0626ae1fe5c1e7c4d", - "text": "ValidatingAdmissionPolicy now exclude TokenReview, SelfSubjectReview, LocalSubjectAccessReview, and SubjectAccessReview from all versions of authentication.k8s.io and authorization.k8s.io group.", - "markdown": "ValidatingAdmissionPolicy now exclude TokenReview, SelfSubjectReview, LocalSubjectAccessReview, and SubjectAccessReview from all versions of authentication.k8s.io and authorization.k8s.io group. ([#123543](https://github.com/kubernetes/kubernetes/pull/123543), [@jiahuif](https://github.com/jiahuif))", - "documentation": [ - { - "description": "[Discussion]: \u003c", - "url": "https://github.com/kubernetes/kubernetes/issues/122205#issuecomment-1941957179\u003e", - "type": "external" - } - ], - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123543", - "pr_number": 123543, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123555": { - "commit": "d8122df1b73d0d92ebc32a7be9d8128d33f13dab", - "text": "kubeadm: avoided uploading a defaulted flag value \"--authorization-mode=Node,RBAC\" for the kube-apiserver in the ClusterConfiguration stored in the \"kube-system/kubeadm-config\" ConfigMap. \"Node,RBAC\" are already the kubeadm defaults for this flag, so this action is redundant.", - "markdown": "Kubeadm: avoided uploading a defaulted flag value \"--authorization-mode=Node,RBAC\" for the kube-apiserver in the ClusterConfiguration stored in the \"kube-system/kubeadm-config\" ConfigMap. \"Node,RBAC\" are already the kubeadm defaults for this flag, so this action is redundant. ([#123555](https://github.com/kubernetes/kubernetes/pull/123555), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123555", - "pr_number": 123555, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "123560": { - "commit": "6cc77a577e56c68e4fde81865e022e05e8e02538", - "text": "\"Promoted `AdmissionWebhookMatchConditions` to GA. The feature is now stable, and the feature gate is now locked to default.\"\n", - "markdown": "\"Promoted `AdmissionWebhookMatchConditions` to GA. The feature is now stable, and the feature gate is now locked to default.\"\n ([#123560](https://github.com/kubernetes/kubernetes/pull/123560), [@ivelichkovich](https://github.com/ivelichkovich))", - "documentation": [ - { - "description": "[KEP]: [\u003clink\u003e](", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3716-admission-webhook-match-conditions)", - "type": "KEP" - } - ], - "author": "ivelichkovich", - "author_url": "https://github.com/ivelichkovich", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123560", - "pr_number": 123560, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123561": { - "commit": "26600b17abcbeadf7f759a66b9b5ea5d8cc7a62a", - "text": "The API server now detects and fails on startup if there are conflicting issuers between JWT authenticators and service account configurations. Previously, such configurations would run but could be inconsistently effective depending on the credential.", - "markdown": "The API server now detects and fails on startup if there are conflicting issuers between JWT authenticators and service account configurations. Previously, such configurations would run but could be inconsistently effective depending on the credential. ([#123561](https://github.com/kubernetes/kubernetes/pull/123561), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123561", - "pr_number": 123561, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123562": { - "commit": "fe8a12d264c88ac3cd0fb97d73c936de3fdd9788", - "text": "\"Fixed CEL estimated cost for expressions that perform operations on the result of `map()` operations (e.g., `.map(...).exists(...)` ) to have the correct estimated cost instead of an unbounded cost.\"\n", - "markdown": "\"Fixed CEL estimated cost for expressions that perform operations on the result of `map()` operations (e.g., `.map(...).exists(...)` ) to have the correct estimated cost instead of an unbounded cost.\"\n ([#123562](https://github.com/kubernetes/kubernetes/pull/123562), [@jpbetz](https://github.com/jpbetz))", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123562", - "pr_number": 123562, - "areas": [ - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "123565": { - "commit": "6f42da171b952cb502245a25bbba3c384df3aeb7", - "text": "\"Accepted zero as a default value for `kubectl create` token duration.\"\n", - "markdown": "\"Accepted zero as a default value for `kubectl create` token duration.\"\n ([#123565](https://github.com/kubernetes/kubernetes/pull/123565), [@ah8ad3](https://github.com/ah8ad3))", - "author": "ah8ad3", - "author_url": "https://github.com/ah8ad3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123565", - "pr_number": 123565, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "123568": { - "commit": "50f4b1ea471c0dbfc5a60d396619405aaf352e62", - "text": "OIDC authentication will now fail if the username asserted based on a CEL expression config is the empty string. Previously the request would be authenticated with the username set to the empty string.", - "markdown": "OIDC authentication will now fail if the username asserted based on a CEL expression config is the empty string. Previously the request would be authenticated with the username set to the empty string. ([#123568](https://github.com/kubernetes/kubernetes/pull/123568), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123568", - "pr_number": 123568, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123570": { - "commit": "fc4613f996a0d57dc82b793804026c1b6023534f", - "text": "OpenAPI V2 will no longer publish aggregated API server OpenAPI for group versions that do not match the APIService specified group version.", - "markdown": "OpenAPI V2 will no longer publish aggregated API server OpenAPI for group versions that do not match the APIService specified group version. ([#123570](https://github.com/kubernetes/kubernetes/pull/123570), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123570", - "pr_number": 123570, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "123575": { - "commit": "e4a14fe0f5a3ffc6057ead6dd6f4dc722718d84c", - "text": "Graduated pod scheduling gates to general availability.\nThe `PodSchedulingReadiness` feature gate no longer has any effect, and the\n`.spec.schedulingGates` field is always available within the Pod and PodTemplate APIs.", - "markdown": "Graduated pod scheduling gates to general availability.\n The `PodSchedulingReadiness` feature gate no longer has any effect, and the\n `.spec.schedulingGates` field is always available within the Pod and PodTemplate APIs. ([#123575](https://github.com/kubernetes/kubernetes/pull/123575), [@Huang-Wei](https://github.com/Huang-Wei))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3521-pod-scheduling-readiness", - "type": "KEP" - } - ], - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123575", - "pr_number": 123575, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "node", - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123578": { - "commit": "7c11cc9cfcdc54a7ca4efdc10609bf421bfa54d4", - "text": "Kubeadm now prints all the kubelets and nodes that need to be upgraded when running \"upgrade plan\".\n", - "markdown": "Kubeadm now prints all the kubelets and nodes that need to be upgraded when running \"upgrade plan\".\n ([#123578](https://github.com/kubernetes/kubernetes/pull/123578), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123578", - "pr_number": 123578, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "123593": { - "commit": "89cbd94e68ae80414dea7c14c1694e5e378a188d", - "text": "Kubelet now supports configuring the IDs used to create user namespaces.\n", - "markdown": "Kubelet now supports configuring the IDs used to create user namespaces.\n ([#123593](https://github.com/kubernetes/kubernetes/pull/123593), [@giuseppe](https://github.com/giuseppe))", - "author": "giuseppe", - "author_url": "https://github.com/giuseppe", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123593", - "pr_number": 123593, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "123599": { - "commit": "3df07e446b8c0befab3551c3001c71340710751c", - "text": "\"Bumped cAdvisor to `v0.49.0`.\"\n", - "markdown": "\"Bumped cAdvisor to `v0.49.0`.\"\n ([#123599](https://github.com/kubernetes/kubernetes/pull/123599), [@bobbypage](https://github.com/bobbypage))", - "author": "bobbypage", - "author_url": "https://github.com/bobbypage", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123599", - "pr_number": 123599, - "areas": [ - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "123611": { - "commit": "3e1da218014b5a4e5c95ee79404093302104438b", - "text": "\"kube-apiserver now reported the following metrics for authorization webhook match conditions: - `apiserver_authorization_match_condition_evaluation_errors_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_exclusions_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_evaluation_seconds` histogram metric labeled by authorizer type and name.\"\n", - "markdown": "\"kube-apiserver now reported the following metrics for authorization webhook match conditions: - `apiserver_authorization_match_condition_evaluation_errors_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_exclusions_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_evaluation_seconds` histogram metric labeled by authorizer type and name.\"\n ([#123611](https://github.com/kubernetes/kubernetes/pull/123611), [@ritazh](https://github.com/ritazh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3221-structured-authorization-configuration", - "type": "KEP" - } - ], - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123611", - "pr_number": 123611, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123639": { - "commit": "46a2137c1ba017970c316c0ec10c074cb6450732", - "text": "kube-apiserver: Authorization webhooks now report the following metrics:\n- apiserver_authorization_webhook_evaluations_total\n- apiserver_authorization_webhook_duration_seconds\n- apiserver_authorization_webhook_evaluations_fail_open_total", - "markdown": "Kube-apiserver: Authorization webhooks now report the following metrics:\n - apiserver_authorization_webhook_evaluations_total\n - apiserver_authorization_webhook_duration_seconds\n - apiserver_authorization_webhook_evaluations_fail_open_total ([#123639](https://github.com/kubernetes/kubernetes/pull/123639), [@liggitt](https://github.com/liggitt))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3221", - "type": "external" - } - ], - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123639", - "pr_number": 123639, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123640": { - "commit": "8674282a054d3ae32e2e009dab6f8a0da3689828", - "text": "kube-apiserver: the AuthorizationConfiguration type accepted in `--authorization-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`.", - "markdown": "Kube-apiserver: the AuthorizationConfiguration type accepted in `--authorization-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`. ([#123640](https://github.com/kubernetes/kubernetes/pull/123640), [@liggitt](https://github.com/liggitt))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3221", - "type": "external" - } - ], - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123640", - "pr_number": 123640, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123641": { - "commit": "699984f25a80a39bbb112e657f08d76779cdc3a0", - "text": "\"kube-apiserver: The StructuredAuthorizationConfiguration feature gate has been promoted to beta and now allows the use of the `--authorization-configuration` flag.\"\n", - "markdown": "\"kube-apiserver: The StructuredAuthorizationConfiguration feature gate has been promoted to beta and now allows the use of the `--authorization-configuration` flag.\"\n ([#123641](https://github.com/kubernetes/kubernetes/pull/123641), [@liggitt](https://github.com/liggitt))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3221", - "type": "external" - } - ], - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123641", - "pr_number": 123641, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123654": { - "commit": "e798fa67b510b857b3ec25c89a5bd6b06959f57a", - "text": "[kubeadam][structured authz] avoided setting default `--authorization-mode` when `--authorization-config` is provided", - "markdown": "[kubeadam][structured authz] avoided setting default `--authorization-mode` when `--authorization-config` is provided ([#123654](https://github.com/kubernetes/kubernetes/pull/123654), [@LiorLieberman](https://github.com/LiorLieberman))", - "author": "LiorLieberman", - "author_url": "https://github.com/LiorLieberman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123654", - "pr_number": 123654, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "123667": { - "commit": "9043ce05c125091c0cb5519206fd90d311abd8c8", - "text": "Added the `access_mode` label to `volume_manager_selinux_*` metrics.", - "markdown": "Added the `access_mode` label to `volume_manager_selinux_*` metrics. ([#123667](https://github.com/kubernetes/kubernetes/pull/123667), [@jsafrane](https://github.com/jsafrane))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling", - "type": "KEP" - } - ], - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123667", - "pr_number": 123667, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123674": { - "commit": "3409f0594c94185010217f3e5156c1de9f08b405", - "text": "\"Fixed a non-recursive list returning \"resource version too high\" error when consistent listing from cache is enabled.\"\n", - "markdown": "\"Fixed a non-recursive list returning \"resource version too high\" error when consistent listing from cache is enabled.\"\n ([#123674](https://github.com/kubernetes/kubernetes/pull/123674), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123674", - "pr_number": 123674, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "123676": { - "commit": "89b1db79d75e367f567ea06c0528ef4b8f3fecb4", - "text": "Fixed enabling consistent list from watch cache that used to work for resourceVersion=0", - "markdown": "Fixed enabling consistent list from watch cache that used to work for resourceVersion=0 ([#123676](https://github.com/kubernetes/kubernetes/pull/123676), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123676", - "pr_number": 123676, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "123696": { - "commit": "05cb0a55c88e0cdcfe2fb184328ad9be53e94d5c", - "text": "\"kube-apiserver: the AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`.\"\n", - "markdown": "\"kube-apiserver: the AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`.\"\n ([#123696](https://github.com/kubernetes/kubernetes/pull/123696), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123696", - "pr_number": 123696, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123713": { - "commit": "751e3e9745e3e95016d0137e04c1dcaf60b78314", - "text": "The initialization of nodes using external cloud providers now waits for the providerID value to be available before untainting it. This ensures that nodes are not declared Ready without necessary information such as the providerID and zone labels, which are required for integrations like load balancers to function correctly. Cloud providers that do not implement the GetInstanceProviderID method will not require the providerID to be set and will not fail to initialize the node for backward compatibility.", - "markdown": "The initialization of nodes using external cloud providers now waits for the providerID value to be available before untainting it. This ensures that nodes are not declared Ready without necessary information such as the providerID and zone labels, which are required for integrations like load balancers to function correctly. Cloud providers that do not implement the GetInstanceProviderID method will not require the providerID to be set and will not fail to initialize the node for backward compatibility. ([#123713](https://github.com/kubernetes/kubernetes/pull/123713), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123713", - "pr_number": 123713, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider" - ], - "is_mapped": true - }, - "123719": { - "commit": "8f80e0146726c42edefdfaeda6123872a5ec0981", - "text": "The `StructuredAuthenticationConfiguration` feature is now beta and enabled.", - "markdown": "The `StructuredAuthenticationConfiguration` feature is now beta and enabled. ([#123719](https://github.com/kubernetes/kubernetes/pull/123719), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123719", - "pr_number": 123719, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123730": { - "commit": "695072027d77b4e142e61caeaed6142b40f7b02e", - "text": "DRA: ResourceClaim and PodSchedulingContext status updates no longer allow changing object meta data.", - "markdown": "DRA: ResourceClaim and PodSchedulingContext status updates no longer allow changing object meta data. ([#123730](https://github.com/kubernetes/kubernetes/pull/123730), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123730", - "pr_number": 123730, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "123737": { - "commit": "9a160fa7808755fddd5fe8573040bef4d2ba7a0c", - "text": "\"When configuring a JWT authenticator:\n\nIf `username.expression` used 'claims.email', then 'claims.email_verified' must have been used in `username.expression` or `extra[*].valueExpression` or `claimValidationRules[*].expression`. An example claim validation rule expression that matches the validation automatically applied when `username.claim` is set to 'email' is 'claims.?email_verified.orValue(true)'.\"\n", - "markdown": "\"When configuring a JWT authenticator:\n \n If `username.expression` used 'claims.email', then 'claims.email_verified' must have been used in `username.expression` or `extra[*].valueExpression` or `claimValidationRules[*].expression`. An example claim validation rule expression that matches the validation automatically applied when `username.claim` is set to 'email' is 'claims.?email_verified.orValue(true)'.\"\n ([#123737](https://github.com/kubernetes/kubernetes/pull/123737), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123737", - "pr_number": 123737, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123738": { - "commit": "546f7c30860dcdecb75c544230a1b7cdf5bd5958", - "text": "\"Kubelet would fail if NodeSwap was used with LimitedSwap and cgroupv1 node.\"\n", - "markdown": "\"Kubelet would fail if NodeSwap was used with LimitedSwap and cgroupv1 node.\"\n ([#123738](https://github.com/kubernetes/kubernetes/pull/123738), [@kannon92](https://github.com/kannon92))", - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123738", - "pr_number": 123738, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123750": { - "commit": "e0621034bedeeabe83383e5c300cf2d4fb616f36", - "text": "Kubernetes is now built with Go `1.22.1`.", - "markdown": "Kubernetes is now built with Go `1.22.1`. ([#123750](https://github.com/kubernetes/kubernetes/pull/123750), [@cpanato](https://github.com/cpanato))", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123750", - "pr_number": 123750, - "areas": [ - "test", - "security", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "release" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123758": { - "commit": "a5f5f44157c49fdfb6384862c7cb34c2ddbd4cce", - "text": "Updated google.golang.org/protobuf to `v1.33.0` to resolve `CVE-2024-24786`.", - "markdown": "Updated google.golang.org/protobuf to `v1.33.0` to resolve `CVE-2024-24786`. ([#123758](https://github.com/kubernetes/kubernetes/pull/123758), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123758", - "pr_number": 123758, - "areas": [ - "security", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "storage", - "node", - "api-machinery", - "cluster-lifecycle", - "auth", - "cli", - "instrumentation", - "architecture", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "123793": { - "commit": "09093f270aa811c2c49ea45868989ad5b6eb8a53", - "text": "\"kube-apiserver: JWT authenticator now reports the following metrics: - apiserver_authentication_config_controller_automatic_reloads_total - apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds\"\n", - "markdown": "\"kube-apiserver: JWT authenticator now reports the following metrics: - apiserver_authentication_config_controller_automatic_reloads_total - apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds\"\n ([#123793](https://github.com/kubernetes/kubernetes/pull/123793), [@aramase](https://github.com/aramase))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123793", - "pr_number": 123793, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123935": { - "commit": "a1605fb3dd2d45474751ec3de30633ac1ec15c41", - "text": "kube-apiserver: Fixed a `1.27`+ regression in watch stability by serving watch requests without a `resourceVersion` from the watch cache by default, as in \u003c`1.27` (disabling the change in PR 115096 by default). This mitigates the impact of an etcd watch bug (https://github.com/etcd-io/etcd/pull/17555). If the 1.27 change in PR 115096 to serve these requests from underlying storage is still desired despite the impact on watch stability, it can be re-enabled with a `WatchFromStorageWithoutResourceVersion` feature gate.", - "markdown": "Kube-apiserver: Fixed a `1.27`+ regression in watch stability by serving watch requests without a `resourceVersion` from the watch cache by default, as in \u003c`1.27` (disabling the change in PR 115096 by default). This mitigates the impact of an etcd watch bug (https://github.com/etcd-io/etcd/pull/17555). If the 1.27 change in PR 115096 to serve these requests from underlying storage is still desired despite the impact on watch stability, it can be re-enabled with a `WatchFromStorageWithoutResourceVersion` feature gate. ([#123935](https://github.com/kubernetes/kubernetes/pull/123935), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123935", - "pr_number": 123935, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "etcd" - ], - "duplicate": true, - "is_mapped": true - }, - "124001": { - "commit": "a309fadbac3339bc8db9ae0a928a33b8e81ef10f", - "text": "Reverted the change to \"support sharing waitingPods across different scheduler profiles\".", - "markdown": "Reverted the change to \"support sharing waitingPods across different scheduler profiles\". ([#124001](https://github.com/kubernetes/kubernetes/pull/124001), [@kerthcet](https://github.com/kerthcet))", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124001", - "pr_number": 124001, - "kinds": [ - "flake", - "failing-test" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124283": { - "commit": "fb5140f562289f3ffe596b4a3af4650b850a0941", - "text": "Renamed Label cluster to `storage_cluster_id` for `apiserver_storage_size_bytes metric`", - "markdown": "Renamed Label cluster to `storage_cluster_id` for `apiserver_storage_size_bytes metric`", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124283", - "pr_number": 124283, - "areas": [ - "apiserver", - "stable-metrics", - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing", - "instrumentation" - ], - "duplicate_kind": true, - "is_mapped": false - }, - "123342": { - "commit": "f38852768e312fe7b9775b92f7228371a0a96f90", - "text": "Bumped the stability level of apiserver_storage_size_bytes to `STABLE`", - "markdown": "Bumped the stability level of apiserver_storage_size_bytes to `STABLE`", - "author": "logicalhan", - "author_url": "https://github.com/logicalhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123342", - "pr_number": 123342, - "areas": [ - "apiserver", - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate_kind": true, - "is_mapped": false - } -} +{ + "112957": { + "commit": "dc3f5ec6ccb9855dfa99f4c1078625df5fdfab6a", + "text": "\"kubelet allowed specifying a custom root directory for pod logs (instead of the default /var/log/pods) using the `podLogsDir` key in kubelet configuration.\"\n", + "markdown": "\"kubelet allowed specifying a custom root directory for pod logs (instead of the default /var/log/pods) using the `podLogsDir` key in kubelet configuration.\"\n ([#112957](https://github.com/kubernetes/kubernetes/pull/112957), [@mxpv](https://github.com/mxpv))", + "author": "mxpv", + "author_url": "https://github.com/mxpv", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112957", + "pr_number": 112957, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scalability", + "node", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "114301": { + "commit": "5b2c9195839baf74076b8618d5ac58645755f752", + "text": "Enabled concurrent log rotation in kubelet. You can now configure the maximum number of concurrent rotations with the `containerLogMaxWorkers` setting, and adjust the monitoring interval with `containerLogMonitorInterval`.", + "markdown": "Enabled concurrent log rotation in kubelet. You can now configure the maximum number of concurrent rotations with the `containerLogMaxWorkers` setting, and adjust the monitoring interval with `containerLogMonitorInterval`. ([#114301](https://github.com/kubernetes/kubernetes/pull/114301), [@harshanarayana](https://github.com/harshanarayana))", + "author": "harshanarayana", + "author_url": "https://github.com/harshanarayana", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114301", + "pr_number": 114301, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "bug", + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "114672": { + "commit": "98bd90fbe279f9083db92c51badce424d6d8b1c1", + "text": "Text logging in Kubernetes components now uses [textlogger](https://pkg.go.dev/k8s.io/klog/v2@v2.120.0/textlogger). The same split streams of info and error log entries with buffering of info entries is now also supported for text output (off by default, alpha feature). Previously, this was only supported for JSON. Performance is better also without split streams.", + "markdown": "Text logging in Kubernetes components now uses [textlogger](https://pkg.go.dev/k8s.io/klog/v2@v2.120.0/textlogger). The same split streams of info and error log entries with buffering of info entries is now also supported for text output (off by default, alpha feature). Previously, this was only supported for JSON. Performance is better also without split streams. ([#114672](https://github.com/kubernetes/kubernetes/pull/114672), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114672", + "pr_number": 114672, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "testing", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "115768": { + "commit": "c02f5bc0f8e5b71b5c0aa71513bf52a6c91592dd", + "text": "\"Implemented the `prescore` extension point for the `volumeBinding` plugin. It now returns skip if it doesn't do anything in Score.\"\n", + "markdown": "\"Implemented the `prescore` extension point for the `volumeBinding` plugin. It now returns skip if it doesn't do anything in Score.\"\n ([#115768](https://github.com/kubernetes/kubernetes/pull/115768), [@AxeZhan](https://github.com/AxeZhan))", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115768", + "pr_number": 115768, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "116209": { + "commit": "d2fc690421629db43165f3b2e828994c529c79ad", + "text": "Users are now allowed to mutate `FSGroupPolicy` and `PodInfoOnMount` in `CSIDriver.Spec`.", + "markdown": "Users are now allowed to mutate `FSGroupPolicy` and `PodInfoOnMount` in `CSIDriver.Spec`. ([#116209](https://github.com/kubernetes/kubernetes/pull/116209), [@haoruan](https://github.com/haoruan))", + "author": "haoruan", + "author_url": "https://github.com/haoruan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/116209", + "pr_number": 116209, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "117024": { + "commit": "afa3f114d64ba5e02faae2e078deb1f82a9e0a07", + "text": "\"Scheduler now skips the `NodeAffinity Score` plugin when it has nothing to do with a Pod. You might have noticed an increase in the metric `plugin_execution_duration_seconds` for `extension_point=score` and `plugin=NodeAffinity`, because the plugin only runs when it's relevant.\"\n", + "markdown": "\"Scheduler now skips the `NodeAffinity Score` plugin when it has nothing to do with a Pod. You might have noticed an increase in the metric `plugin_execution_duration_seconds` for `extension_point=score` and `plugin=NodeAffinity`, because the plugin only runs when it's relevant.\"\n ([#117024](https://github.com/kubernetes/kubernetes/pull/117024), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117024", + "pr_number": 117024, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "117046": { + "commit": "db82260c65df9cedaf93e924a2401b4e55a8a2a0", + "text": "\"Informers now supports adding Indexers after the informer starts.\"\n", + "markdown": "\"Informers now supports adding Indexers after the informer starts.\"\n ([#117046](https://github.com/kubernetes/kubernetes/pull/117046), [@howardjohn](https://github.com/howardjohn))", + "author": "howardjohn", + "author_url": "https://github.com/howardjohn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117046", + "pr_number": 117046, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "119177": { + "commit": "195bb67d36c42faff8e99f97d2bad38587485989", + "text": "kube-scheduler implemented scheduling hints for the `NodeResourceFit` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeResourceFit` plugin if a new Node or a Node update matched the Pod's resource requirements or if an old pod update or delete matched the Pod's resource requirements.", + "markdown": "Kube-scheduler implemented scheduling hints for the `NodeResourceFit` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeResourceFit` plugin if a new Node or a Node update matched the Pod's resource requirements or if an old pod update or delete matched the Pod's resource requirements. ([#119177](https://github.com/kubernetes/kubernetes/pull/119177), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119177", + "pr_number": 119177, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "119200": { + "commit": "4163ce5017268b0ae25df327f0a210032ef1cc80", + "text": "kubectl debug now includes the sysadmin profile.", + "markdown": "Kubectl debug now includes the sysadmin profile. ([#119200](https://github.com/kubernetes/kubernetes/pull/119200), [@eiffel-fl](https://github.com/eiffel-fl))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug#debugging-profiles", + "type": "KEP" + } + ], + "author": "eiffel-fl", + "author_url": "https://github.com/eiffel-fl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119200", + "pr_number": 119200, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "119779": { + "commit": "8609b8c22c31714e02c5c00de385e404c7b7e6f1", + "text": "When a PreFilterResult filters out certain Nodes, the scheduling framework now categorizes them as rejected via `UnschedulableAndUnresolvable`. Consequently, these nodes are excluded from the candidates for the preemption process. Additionally, this update corrects how the scheduling framework handles the Unschedulable status from PreFilter. Previously, if PreFilter returned `Unschedulable`, it could lead to an unexpected abortion in the preemption process, which shouldn't occur in the default scheduler but might occur in schedulers with custom plugins.", + "markdown": "When a PreFilterResult filters out certain Nodes, the scheduling framework now categorizes them as rejected via `UnschedulableAndUnresolvable`. Consequently, these nodes are excluded from the candidates for the preemption process. Additionally, this update corrects how the scheduling framework handles the Unschedulable status from PreFilter. Previously, if PreFilter returned `Unschedulable`, it could lead to an unexpected abortion in the preemption process, which shouldn't occur in the default scheduler but might occur in schedulers with custom plugins. ([#119779](https://github.com/kubernetes/kubernetes/pull/119779), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119779", + "pr_number": 119779, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "119923": { + "commit": "26e2cc529915d342d3cf9df870b338695370756a", + "text": "\"Fixed an issue where mount points could become local without calling `NodePublishVolume` after node rebooting.\"\n", + "markdown": "\"Fixed an issue where mount points could become local without calling `NodePublishVolume` after node rebooting.\"\n ([#119923](https://github.com/kubernetes/kubernetes/pull/119923), [@cvvz](https://github.com/cvvz))", + "author": "cvvz", + "author_url": "https://github.com/cvvz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119923", + "pr_number": 119923, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "120111": { + "commit": "20b28312ea9278c7b93340d0eca71023c45a43b3", + "text": "When using `kubectl logs \u003cpod-name\u003e` and the pod is not found, the error message now includes the namespace. Previously, the message would be \"Error from server (NotFound): pods \"my-pod-name\" not found\". Now, it reflects the namespace in the message as follows: \"Error from server (NotFound): pods \"my-pod-name\" not found in namespace \"default\"\".\n", + "markdown": "When using `kubectl logs \u003cpod-name\u003e` and the pod is not found, the error message now includes the namespace. Previously, the message would be \"Error from server (NotFound): pods \"my-pod-name\" not found\". Now, it reflects the namespace in the message as follows: \"Error from server (NotFound): pods \"my-pod-name\" not found in namespace \"default\"\".\n ([#120111](https://github.com/kubernetes/kubernetes/pull/120111), [@newtondev](https://github.com/newtondev))", + "author": "newtondev", + "author_url": "https://github.com/newtondev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120111", + "pr_number": 120111, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "120159": { + "commit": "96461a22a45e09bb9cfc3515ff49616779a9a2a6", + "text": "Modified the error message of `unmanagedFatal` to enhance clarity while preserving grammatical consistency with `unmanagedWarning`. This improvement ensures a more understandable prompt for users.", + "markdown": "Modified the error message of `unmanagedFatal` to enhance clarity while preserving grammatical consistency with `unmanagedWarning`. This improvement ensures a more understandable prompt for users. ([#120159](https://github.com/kubernetes/kubernetes/pull/120159), [@Ithrael](https://github.com/Ithrael))", + "author": "Ithrael", + "author_url": "https://github.com/Ithrael", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120159", + "pr_number": 120159, + "areas": [ + "kubectl" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "120246": { + "commit": "45656f8774c7c761f87a593f68563ccdb3b67523", + "text": "\"kubectl: Removed the deprecated flag `prune-whitelist` for apply. Please use the flag `prune-allowlist` instead.\"\n", + "markdown": "\"kubectl: Removed the deprecated flag `prune-whitelist` for apply. Please use the flag `prune-allowlist` instead.\"\n ([#120246](https://github.com/kubernetes/kubernetes/pull/120246), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120246", + "pr_number": 120246, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "120291": { + "commit": "2efed1f1cb33bf7e3f44bb5e74bdaa9f7a5092f1", + "text": "Fixed Windows credential provider, cannot find binary. Windows credential provider binary path may have \".exe\" suffix so it is better to use `LookPath()` to support it flexibly.", + "markdown": "Fixed Windows credential provider, cannot find binary. Windows credential provider binary path may have \".exe\" suffix so it is better to use `LookPath()` to support it flexibly. ([#120291](https://github.com/kubernetes/kubernetes/pull/120291), [@lzhecheng](https://github.com/lzhecheng))", + "author": "lzhecheng", + "author_url": "https://github.com/lzhecheng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120291", + "pr_number": 120291, + "areas": [ + "provider/azure" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ], + "is_mapped": true + }, + "120344": { + "commit": "31a482a14937f8421de62b1416ab150ee1b3ff25", + "text": "Added the `disable-force-detach` CLI option for `kube-controller-manager`. By default, it's set to `false`. When enabled, it prevents force detaching volumes based on maximum unmount time and node status. If activated, the non-graceful node shutdown feature must be used to recover from node failure. Additionally, if a pod needs to be forcibly terminated at the risk of corruption, the appropriate VolumeAttachment object must be deleted.", + "markdown": "Added the `disable-force-detach` CLI option for `kube-controller-manager`. By default, it's set to `false`. When enabled, it prevents force detaching volumes based on maximum unmount time and node status. If activated, the non-graceful node shutdown feature must be used to recover from node failure. Additionally, if a pod needs to be forcibly terminated at the risk of corruption, the appropriate VolumeAttachment object must be deleted. ([#120344](https://github.com/kubernetes/kubernetes/pull/120344), [@rohitssingh](https://github.com/rohitssingh))", + "author": "rohitssingh", + "author_url": "https://github.com/rohitssingh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120344", + "pr_number": 120344, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "bug", + "api-change", + "feature" + ], + "sigs": [ + "storage", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "120346": { + "commit": "835ad2bccd93ccccb7c4ec80b194832809332a67", + "text": "A new flag called `custom` has been introduced in `kubectl debug`, allowing users to customize pre-defined profiles.", + "markdown": "A new flag called `custom` has been introduced in `kubectl debug`, allowing users to customize pre-defined profiles. ([#120346](https://github.com/kubernetes/kubernetes/pull/120346), [@ardaguclu](https://github.com/ardaguclu))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/pull/4293", + "type": "KEP" + } + ], + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120346", + "pr_number": 120346, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "120642": { + "commit": "6d6398ef9266abce3518a4c9a3d4e4d8feeffdc1", + "text": "Added consistent vanity import to files and provided tooling for verifying and updating them.", + "markdown": "Added consistent vanity import to files and provided tooling for verifying and updating them. ([#120642](https://github.com/kubernetes/kubernetes/pull/120642), [@jcchavezs](https://github.com/jcchavezs))", + "author": "jcchavezs", + "author_url": "https://github.com/jcchavezs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120642", + "pr_number": 120642, + "areas": [ + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "ipvs", + "dependency" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "network", + "scalability", + "scheduling", + "storage", + "node", + "api-machinery", + "autoscaling", + "auth", + "apps", + "windows", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "do_not_publish": true, + "is_mapped": true + }, + "120718": { + "commit": "5f4a20e65d0a472b5c90b85055059d987eed9d5e", + "text": "Node podresources API now includes init containers with containerRestartPolicy of `Always` when `SidecarContainers` feature is enabled.", + "markdown": "Node podresources API now includes init containers with containerRestartPolicy of `Always` when `SidecarContainers` feature is enabled. ([#120718](https://github.com/kubernetes/kubernetes/pull/120718), [@gjkim42](https://github.com/gjkim42))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/753-sidecar-containers", + "type": "KEP" + } + ], + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120718", + "pr_number": 120718, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "120902": { + "commit": "6c046796175de51e33290804a7665db5fa752a80", + "text": "Added an optimization to reduce stack memory usage for watch requests. It can be disabled with the feature gate: `APIServingWithRoutine=false`", + "markdown": "Added an optimization to reduce stack memory usage for watch requests. It can be disabled with the feature gate: `APIServingWithRoutine=false` ([#120902](https://github.com/kubernetes/kubernetes/pull/120902), [@linxiulei](https://github.com/linxiulei))", + "author": "linxiulei", + "author_url": "https://github.com/linxiulei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120902", + "pr_number": 120902, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "121413": { + "commit": "e36fc426a71891a9c3b821225aed9f7ba2a92c0e", + "text": "```", + "markdown": "``` ([#121413](https://github.com/kubernetes/kubernetes/pull/121413), [@humblec](https://github.com/humblec)) [SIG Cloud Provider]", + "author": "humblec", + "author_url": "https://github.com/humblec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121413", + "pr_number": 121413, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "do_not_publish": true + }, + "121461": { + "commit": "8e11104f0bec8abe62efd7acbb0afe6d908d195d", + "text": "\"Promoted the `CRDValidationRatcheting` feature gate to beta and made it enabled by default.\"\n", + "markdown": "\"Promoted the `CRDValidationRatcheting` feature gate to beta and made it enabled by default.\"\n ([#121461](https://github.com/kubernetes/kubernetes/pull/121461), [@alexzielenski](https://github.com/alexzielenski))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4008", + "type": "external" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121461", + "pr_number": 121461, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "121512": { + "commit": "11b974043604f5ccbeb6e5e62e1d9edcf00bc336", + "text": "The `apiserver.latency.k8s.io/decode-response-object` annotation was added to the audit log to record the decoding time.", + "markdown": "The `apiserver.latency.k8s.io/decode-response-object` annotation was added to the audit log to record the decoding time. ([#121512](https://github.com/kubernetes/kubernetes/pull/121512), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121512", + "pr_number": 121512, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "121669": { + "commit": "89c314ed8b71c0894167cab151414517f298668d", + "text": "Fixed an issue to ignore unnecessary node events and improve daemonset controller performance.", + "markdown": "Fixed an issue to ignore unnecessary node events and improve daemonset controller performance. ([#121669](https://github.com/kubernetes/kubernetes/pull/121669), [@xigang](https://github.com/xigang))", + "author": "xigang", + "author_url": "https://github.com/xigang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121669", + "pr_number": 121669, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "121719": { + "commit": "14f8f5519d6d3e3e7d747231b7c7bf25584aa0dd", + "text": "A new kubelet metric `image_pull_duration_seconds` was added. The metric tracks the duration (in seconds) it takes for an image to be pulled, including the time spent in the waiting queue of image puller. The metric is broken down by bucketed image size.", + "markdown": "A new kubelet metric `image_pull_duration_seconds` was added. The metric tracks the duration (in seconds) it takes for an image to be pulled, including the time spent in the waiting queue of image puller. The metric is broken down by bucketed image size. ([#121719](https://github.com/kubernetes/kubernetes/pull/121719), [@ruiwen-zhao](https://github.com/ruiwen-zhao))", + "author": "ruiwen-zhao", + "author_url": "https://github.com/ruiwen-zhao", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121719", + "pr_number": 121719, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "121720": { + "commit": "cbfebf02e8c87096d45de4bec5d95f3d6835a23d", + "text": "\"Added a new internal metric `kubelet_first_network_pod_start_sli_duration_second` in the kubelet that allowed developers to understand the source of the latency problems on node startups.\"\n", + "markdown": "\"Added a new internal metric `kubelet_first_network_pod_start_sli_duration_second` in the kubelet that allowed developers to understand the source of the latency problems on node startups.\"\n ([#121720](https://github.com/kubernetes/kubernetes/pull/121720), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121720", + "pr_number": 121720, + "areas": [ + "kubelet" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "network", + "node", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "121736": { + "commit": "ae2be16e516dcd19da60341b170a3defff57e6bc", + "text": "Updated `kube-dns` to `v1.22.27`.", + "markdown": "Updated `kube-dns` to `v1.22.27`. ([#121736](https://github.com/kubernetes/kubernetes/pull/121736), [@ty-dc](https://github.com/ty-dc))", + "author": "ty-dc", + "author_url": "https://github.com/ty-dc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121736", + "pr_number": 121736, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "is_mapped": true + }, + "121778": { + "commit": "0f7cc6fcaa0313c871312dbd1775f0f1a34684d3", + "text": "Added kubelet metrics to track the memory manager allocation and pinning.", + "markdown": "Added kubelet metrics to track the memory manager allocation and pinning. ([#121778](https://github.com/kubernetes/kubernetes/pull/121778), [@Tal-or](https://github.com/Tal-or))", + "author": "Tal-or", + "author_url": "https://github.com/Tal-or", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121778", + "pr_number": 121778, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "121815": { + "commit": "91655922197276ced2e4e36114bb753e384dbd83", + "text": "\"Made decoding etcd's response respect the timeout context.\"\n", + "markdown": "\"Made decoding etcd's response respect the timeout context.\"\n ([#121815](https://github.com/kubernetes/kubernetes/pull/121815), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121815", + "pr_number": 121815, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "121834": { + "commit": "ccb1d08162b3b9231a11f5ed5f46322b6cd72cd1", + "text": "\"Added `imagefs.inodesfree` to default `EvictionHard` settings.\"\n", + "markdown": "\"Added `imagefs.inodesfree` to default `EvictionHard` settings.\"\n ([#121834](https://github.com/kubernetes/kubernetes/pull/121834), [@vaibhav2107](https://github.com/vaibhav2107))", + "author": "vaibhav2107", + "author_url": "https://github.com/vaibhav2107", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121834", + "pr_number": 121834, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "121876": { + "commit": "02aaad0de94708b00e95ba6e809ac07d34eff61c", + "text": "When scheduling a mix of pods using `ResourceClaims` and others that don't, scheduling a pod with `ResourceClaims` has a lower impact on scheduling latency.", + "markdown": "When scheduling a mix of pods using `ResourceClaims` and others that don't, scheduling a pod with `ResourceClaims` has a lower impact on scheduling latency. ([#121876](https://github.com/kubernetes/kubernetes/pull/121876), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121876", + "pr_number": 121876, + "areas": [ + "test", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "121908": { + "commit": "3ca88dc1d0e73546ccc58a20496fd475f91d7116", + "text": "Updated `kubedns` and `nodelocaldns` to release version `1.22.28`.", + "markdown": "Updated `kubedns` and `nodelocaldns` to release version `1.22.28`. ([#121908](https://github.com/kubernetes/kubernetes/pull/121908), [@mzaian](https://github.com/mzaian))", + "author": "mzaian", + "author_url": "https://github.com/mzaian", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121908", + "pr_number": 121908, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true, + "is_mapped": true + }, + "121912": { + "commit": "76cd7521aa6216fb069dbd2d1f0f2c7a37fba32f", + "text": "\"Added the `CEL` library for IP Addresses and CIDRs. This was made available for use starting from version `1.31`.\"\n", + "markdown": "\"Added the `CEL` library for IP Addresses and CIDRs. This was made available for use starting from version `1.31`.\"\n ([#121912](https://github.com/kubernetes/kubernetes/pull/121912), [@JoelSpeed](https://github.com/JoelSpeed))", + "author": "JoelSpeed", + "author_url": "https://github.com/JoelSpeed", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121912", + "pr_number": 121912, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "121919": { + "commit": "8a9e0d936a7976680e2e6ff597721650f1ef809c", + "text": "\"Fixed a regression in `kube-proxy` introduced in version `1.26.0+` to make externalIPs work with externalTrafficPolicy: Local.\"\n", + "markdown": "\"Fixed a regression in `kube-proxy` introduced in version `1.26.0+` to make externalIPs work with externalTrafficPolicy: Local.\"\n ([#121919](https://github.com/kubernetes/kubernetes/pull/121919), [@uablrek](https://github.com/uablrek))", + "author": "uablrek", + "author_url": "https://github.com/uablrek", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121919", + "pr_number": 121919, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "121946": { + "commit": "66d038d84d3d7da0394aca2720823fedadec0dee", + "text": "\"kube-apiserver now reloads the `--authorization-config` file when it changes. Reloads increment the `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` timestamp metric, with `status=\"success\"` for successful reloads and `status=\"failed\"` for failed reloads. Failed reloads keep using the previously loaded authorization configuration.\"\n", + "markdown": "\"kube-apiserver now reloads the `--authorization-config` file when it changes. Reloads increment the `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` timestamp metric, with `status=\"success\"` for successful reloads and `status=\"failed\"` for failed reloads. Failed reloads keep using the previously loaded authorization configuration.\"\n ([#121946](https://github.com/kubernetes/kubernetes/pull/121946), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121946", + "pr_number": 121946, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "121952": { + "commit": "e566bd7769cb3dd00e2401d85e5af6d542523d66", + "text": "The scheduler now retries Pods, which are failed by `nodevolumelimits` due to not found PVCs, only when new PVCs are added.", + "markdown": "The scheduler now retries Pods, which are failed by `nodevolumelimits` due to not found PVCs, only when new PVCs are added. ([#121952](https://github.com/kubernetes/kubernetes/pull/121952), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121952", + "pr_number": 121952, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "121954": { + "commit": "e04316a68af3fdf51467202809f8a611895097b6", + "text": "\"Some interfaces' signatures in the scheduler were updated: - PluginsRunner: used NodeInfo in `RunPreScorePlugins` and `RunScorePlugins`. - PreScorePlugin: used NodeInfo in `PreScore`. - Extender: used NodeInfo in `Filter` and `Prioritize`.\"\n", + "markdown": "\"Some interfaces' signatures in the scheduler were updated: - PluginsRunner: used NodeInfo in `RunPreScorePlugins` and `RunScorePlugins`. - PreScorePlugin: used NodeInfo in `PreScore`. - Extender: used NodeInfo in `Filter` and `Prioritize`.\"\n ([#121954](https://github.com/kubernetes/kubernetes/pull/121954), [@AxeZhan](https://github.com/AxeZhan))", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121954", + "pr_number": 121954, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "autoscaling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "121958": { + "commit": "a56093db9f5cd63b35f962f541a8979760c00439", + "text": "\"kubeadm: improved the overall logic, error handling, and output messages when waiting for the kubelet and API server `/healthz` endpoints to return `OK`. The kubelet and API server checks no longer ran in parallel, but one after another (in serial).\"\n", + "markdown": "\"kubeadm: improved the overall logic, error handling, and output messages when waiting for the kubelet and API server `/healthz` endpoints to return `OK`. The kubelet and API server checks no longer ran in parallel, but one after another (in serial).\"\n ([#121958](https://github.com/kubernetes/kubernetes/pull/121958), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121958", + "pr_number": 121958, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "121983": { + "commit": "0c24ec6e8a4364bfdc2aa33b0705f7225d3352d0", + "text": "\"Cleanup: removed `getStorageAccountName` warning messages.\"\n", + "markdown": "\"Cleanup: removed `getStorageAccountName` warning messages.\"\n ([#121983](https://github.com/kubernetes/kubernetes/pull/121983), [@andyzhangx](https://github.com/andyzhangx))", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121983", + "pr_number": 121983, + "areas": [ + "provider/azure" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "122013": { + "commit": "040c59bb9d163a2d54dfb171bd602990cfead982", + "text": "A deprecated flag `--pod-max-in-unschedulable-pods-duration` was initially planned to be removed in v1.26, but we had to change this plan. We found [an issue](https://github.com/kubernetes/kubernetes/issues/110175) in which Pods can be stuck in the unschedulable pod pool for 5 min, and using this flag is the only workaround for this issue. \nThis issue only could happen if you use custom plugins or if you change plugin set being used in your scheduler via the scheduler config.", + "markdown": "A deprecated flag `--pod-max-in-unschedulable-pods-duration` was initially planned to be removed in v1.26, but we had to change this plan. We found [an issue](https://github.com/kubernetes/kubernetes/issues/110175) in which Pods can be stuck in the unschedulable pod pool for 5 min, and using this flag is the only workaround for this issue. \n This issue only could happen if you use custom plugins or if you change plugin set being used in your scheduler via the scheduler config. ([#122013](https://github.com/kubernetes/kubernetes/pull/122013), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122013", + "pr_number": 122013, + "kinds": [ + "documentation" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "122022": { + "commit": "5322af7f9e06dc457b48f6737edf3e1bf36490e5", + "text": "\"Previously, the scheduling queue didn't notice any extenders' failures, potentially resulting in missed cluster events and Pods rejected by Extenders being stuck in the unschedulable pod pool for up to 5 minutes in the worst-case scenario. Now, the scheduling queue notices extenders' failures and requeues Pods rejected by Extenders appropriately.\"\n", + "markdown": "\"Previously, the scheduling queue didn't notice any extenders' failures, potentially resulting in missed cluster events and Pods rejected by Extenders being stuck in the unschedulable pod pool for up to 5 minutes in the worst-case scenario. Now, the scheduling queue notices extenders' failures and requeues Pods rejected by Extenders appropriately.\"\n ([#122022](https://github.com/kubernetes/kubernetes/pull/122022), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122022", + "pr_number": 122022, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "122023": { + "commit": "cacdf6c70728086bfcab387b901d9765cbcbfb6b", + "text": "Added `exec-interactive-mode` and `exec-provide-cluster-info` flags in kubectl config set-credentials command.", + "markdown": "Added `exec-interactive-mode` and `exec-provide-cluster-info` flags in kubectl config set-credentials command. ([#122023](https://github.com/kubernetes/kubernetes/pull/122023), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122023", + "pr_number": 122023, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "122030": { + "commit": "eb1ae05cf040346bdb197490ef74ed929fdf60b7", + "text": "For statically provisioned PVs, if their volume source is of CSI type or they have a migrated annotation, when they are deleted, the PersistentVolume controller won't change their phase to the Failed state. With this patch, the external provisioner can remove the finalizer in the next reconcile loop. Unfortunately, if a previously existing PV has the Failed state, this patch won't take effect. Users are required to remove the finalizer manually.", + "markdown": "For statically provisioned PVs, if their volume source is of CSI type or they have a migrated annotation, when they are deleted, the PersistentVolume controller won't change their phase to the Failed state. With this patch, the external provisioner can remove the finalizer in the next reconcile loop. Unfortunately, if a previously existing PV has the Failed state, this patch won't take effect. Users are required to remove the finalizer manually. ([#122030](https://github.com/kubernetes/kubernetes/pull/122030), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2644", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122030", + "pr_number": 122030, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "apps" + ], + "duplicate": true, + "is_mapped": true + }, + "122032": { + "commit": "f68a965e5ae7a954b567c6162de0e2d17606d680", + "text": "\"The GA feature-gate `APISelfSubjectReview` has been removed, and the feature is unconditionally enabled.\"\n", + "markdown": "\"The GA feature-gate `APISelfSubjectReview` has been removed, and the feature is unconditionally enabled.\"\n ([#122032](https://github.com/kubernetes/kubernetes/pull/122032), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3325", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122032", + "pr_number": 122032, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "122056": { + "commit": "180c6bdc2559478339710e6c5a79701044c12363", + "text": "\"Fixed the disruption controller's PDB status synchronization to maintain all PDB conditions during an update.\"\n", + "markdown": "\"Fixed the disruption controller's PDB status synchronization to maintain all PDB conditions during an update.\"\n ([#122056](https://github.com/kubernetes/kubernetes/pull/122056), [@dhenkel92](https://github.com/dhenkel92))", + "author": "dhenkel92", + "author_url": "https://github.com/dhenkel92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122056", + "pr_number": 122056, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "122058": { + "commit": "517091cdc5084283e7ee1e3d77587f12bb186604", + "text": "\"Improved scheduler performance when no scoring plugins were defined.\"\n", + "markdown": "\"Improved scheduler performance when no scoring plugins were defined.\"\n ([#122058](https://github.com/kubernetes/kubernetes/pull/122058), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", + "author": "aleksandra-malinowska", + "author_url": "https://github.com/aleksandra-malinowska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122058", + "pr_number": 122058, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "122068": { + "commit": "84424a8c190d1d004dbcdbb64d171d8887846b48", + "text": "\"Fixed a regression since `1.24` in the scheduling framework when overriding MultiPoint plugins (e.g. default plugins). The incorrect loop logic might have led to a plugin being loaded multiple times, consequently preventing any Pod from being scheduled, which was unexpected.\"\n", + "markdown": "\"Fixed a regression since `1.24` in the scheduling framework when overriding MultiPoint plugins (e.g. default plugins). The incorrect loop logic might have led to a plugin being loaded multiple times, consequently preventing any Pod from being scheduled, which was unexpected.\"\n ([#122068](https://github.com/kubernetes/kubernetes/pull/122068), [@caohe](https://github.com/caohe))", + "author": "caohe", + "author_url": "https://github.com/caohe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122068", + "pr_number": 122068, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "122069": { + "commit": "583a79a4569b5cbbff12131ebcc612d5cf659ae1", + "text": "\"Client-go: Optimized leaders renewing leases by updating leader lock optimistically without getting the record from the API server first. Also, a new metric `leader_election_slowpath_total` was added to allow users to monitor how many leader elections are updated non-optimistically.\"\n", + "markdown": "\"Client-go: Optimized leaders renewing leases by updating leader lock optimistically without getting the record from the API server first. Also, a new metric `leader_election_slowpath_total` was added to allow users to monitor how many leader elections are updated non-optimistically.\"\n ([#122069](https://github.com/kubernetes/kubernetes/pull/122069), [@linxiulei](https://github.com/linxiulei))", + "author": "linxiulei", + "author_url": "https://github.com/linxiulei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122069", + "pr_number": 122069, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "architecture" + ], + "duplicate": true, + "is_mapped": true + }, + "122079": { + "commit": "1a1941eebb559fc83721dbef8a1944ce958725dc", + "text": "kubeadm: used `ttlSecondsAfterFinished` to automatically clean up the `upgrade-health-check` Job that runs during upgrade preflighting.", + "markdown": "Kubeadm: used `ttlSecondsAfterFinished` to automatically clean up the `upgrade-health-check` Job that runs during upgrade preflighting. ([#122079](https://github.com/kubernetes/kubernetes/pull/122079), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122079", + "pr_number": 122079, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "122086": { + "commit": "a65dcd616e480ef913d0f39cd6ee37669d21a480", + "text": "\"Removed the generally available feature gate `ExpandedDNSConfig`.\"\n", + "markdown": "\"Removed the generally available feature gate `ExpandedDNSConfig`.\"\n ([#122086](https://github.com/kubernetes/kubernetes/pull/122086), [@bzsuni](https://github.com/bzsuni))", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122086", + "pr_number": 122086, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "122088": { + "commit": "b1b3398cb79b0e03b706c94d37163b38c20573e1", + "text": "Removed GA featuregate about `ExperimentalHostUserNamespaceDefaultingGate` in `1.30`.", + "markdown": "Removed GA featuregate about `ExperimentalHostUserNamespaceDefaultingGate` in `1.30`. ([#122088](https://github.com/kubernetes/kubernetes/pull/122088), [@bzsuni](https://github.com/bzsuni))", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122088", + "pr_number": 122088, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "122134": { + "commit": "9694ebd2a7553132e6f50a9bc736a062d13d56a2", + "text": "Removed the generally available feature gate `ProxyTerminatingEndpoints`.", + "markdown": "Removed the generally available feature gate `ProxyTerminatingEndpoints`. ([#122134](https://github.com/kubernetes/kubernetes/pull/122134), [@ty-dc](https://github.com/ty-dc))", + "author": "ty-dc", + "author_url": "https://github.com/ty-dc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122134", + "pr_number": 122134, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "122136": { + "commit": "7825325a420ff04e66b8bf70d6f3661c72e3b2f4", + "text": "\"Removed the generally available feature gate `MinimizeIPTablesRestore`.\"\n", + "markdown": "\"Removed the generally available feature gate `MinimizeIPTablesRestore`.\"\n ([#122136](https://github.com/kubernetes/kubernetes/pull/122136), [@ty-dc](https://github.com/ty-dc))", + "author": "ty-dc", + "author_url": "https://github.com/ty-dc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122136", + "pr_number": 122136, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "122137": { + "commit": "66a4d25afaa0f5fe2350997b31dc62ee79efd5be", + "text": "Removed the GA feature gate for `IPTablesOwnershipCleanup` in version `1.30`.", + "markdown": "Removed the GA feature gate for `IPTablesOwnershipCleanup` in version `1.30`. ([#122137](https://github.com/kubernetes/kubernetes/pull/122137), [@bzsuni](https://github.com/bzsuni))", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122137", + "pr_number": 122137, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "122138": { + "commit": "a21487f78bf3261c6e5ddbbf055980a12e173a55", + "text": "\"Removed the generally available feature gate `KubeletPodResourcesGetAllocatable`.\"\n", + "markdown": "\"Removed the generally available feature gate `KubeletPodResourcesGetAllocatable`.\"\n ([#122138](https://github.com/kubernetes/kubernetes/pull/122138), [@ii2day](https://github.com/ii2day))", + "author": "ii2day", + "author_url": "https://github.com/ii2day", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122138", + "pr_number": 122138, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "122139": { + "commit": "1850794626bb995bb754d54be3328c86ee880ba5", + "text": "\"Removed the generally available feature gate `KubeletPodResources`.\"\n", + "markdown": "\"Removed the generally available feature gate `KubeletPodResources`.\"\n ([#122139](https://github.com/kubernetes/kubernetes/pull/122139), [@bzsuni](https://github.com/bzsuni))", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122139", + "pr_number": 122139, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "122142": { + "commit": "a02a00ecd76fb99ed43a054ed6eb6698426b01f9", + "text": "When working with client-go events, it's now recommended to use `NewEventBroadcasterAdapterWithContext` instead of `NewEventBroadcasterAdapter` if contextual logging support is needed.", + "markdown": "When working with client-go events, it's now recommended to use `NewEventBroadcasterAdapterWithContext` instead of `NewEventBroadcasterAdapter` if contextual logging support is needed. ([#122142](https://github.com/kubernetes/kubernetes/pull/122142), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122142", + "pr_number": 122142, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling", + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122178": { + "commit": "7db7824d85406fe0d5f1b342daaf1662e8f91144", + "text": "Updated cni-plugins to version `v1.4.0`.", + "markdown": "Updated cni-plugins to version `v1.4.0`. ([#122178](https://github.com/kubernetes/kubernetes/pull/122178), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122178", + "pr_number": 122178, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "122195": { + "commit": "9dc0dbe878dc1c14d62c200b297cc8feae0b80c7", + "text": "kube-scheduler now retries scheduling Pods rejected by the PodTopologySpread plugin when related Pods are created, deleted, updated, or when a node matches the specified topologyKey.", + "markdown": "Kube-scheduler now retries scheduling Pods rejected by the PodTopologySpread plugin when related Pods are created, deleted, updated, or when a node matches the specified topologyKey. ([#122195](https://github.com/kubernetes/kubernetes/pull/122195), [@nayihz](https://github.com/nayihz))", + "author": "nayihz", + "author_url": "https://github.com/nayihz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122195", + "pr_number": 122195, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "122197": { + "commit": "6b5e973e5f64105bd255aa3f756ec951fcaf62c1", + "text": "Migrated the kube-proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the kube-proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#122197](https://github.com/kubernetes/kubernetes/pull/122197), [@fatsheep9146](https://github.com/fatsheep9146))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "fatsheep9146", + "author_url": "https://github.com/fatsheep9146", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122197", + "pr_number": 122197, + "areas": [ + "kube-proxy", + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "122204": { + "commit": "247ea2046d350eb51f63f8a3920e6003f80fe3de", + "text": "Fixed a race condition in the iptables mode of kube-proxy in `1.27` and later\nthat could result in some updates getting lost (e.g., when a service gets a\nnew endpoint, the rules for the new endpoint might not be added until\nmuch later).", + "markdown": "Fixed a race condition in the iptables mode of kube-proxy in `1.27` and later\n that could result in some updates getting lost (e.g., when a service gets a\n new endpoint, the rules for the new endpoint might not be added until\n much later). ([#122204](https://github.com/kubernetes/kubernetes/pull/122204), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122204", + "pr_number": 122204, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "122211": { + "commit": "c633ea71edc0b7c10f81e0d042c03eff81aa7f73", + "text": "Enabled deletion of pods that use raw block volumes on node reboot.", + "markdown": "Enabled deletion of pods that use raw block volumes on node reboot. ([#122211](https://github.com/kubernetes/kubernetes/pull/122211), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122211", + "pr_number": 122211, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "122225": { + "commit": "86ab185fa1e98e249fe3e380217099832fe22a4e", + "text": "\"Migrated `client-go/metadata` to contextual logging.\"\n", + "markdown": "\"Migrated `client-go/metadata` to contextual logging.\"\n ([#122225](https://github.com/kubernetes/kubernetes/pull/122225), [@ricardoapl](https://github.com/ricardoapl))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/42bb993e369d166142b7181e90882066ad6c7651/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "ricardoapl", + "author_url": "https://github.com/ricardoapl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122225", + "pr_number": 122225, + "areas": [ + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "122231": { + "commit": "9b5e2dc54d2315402a462e75c168bfc4ce28ecf3", + "text": "\"Added Timezone column in the output of the 'kubectl get cronjob' command.\"\n", + "markdown": "\"Added Timezone column in the output of the 'kubectl get cronjob' command.\"\n ([#122231](https://github.com/kubernetes/kubernetes/pull/122231), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122231", + "pr_number": 122231, + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "122233": { + "commit": "d647d19f6aef811bace300eec96a67644ff303d4", + "text": "\"etcd: Built image for `v3.5.11`.\"\n", + "markdown": "\"etcd: Built image for `v3.5.11`.\"\n ([#122233](https://github.com/kubernetes/kubernetes/pull/122233), [@mzaian](https://github.com/mzaian))", + "author": "mzaian", + "author_url": "https://github.com/mzaian", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122233", + "pr_number": 122233, + "areas": [ + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "122271": { + "commit": "3cae5d9a7d4bc6111e81591f2e9fca82f9ac4b1a", + "text": "\"Updated cri-tools to `v1.29.0`.\"\n", + "markdown": "\"Updated cri-tools to `v1.29.0`.\"\n ([#122271](https://github.com/kubernetes/kubernetes/pull/122271), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122271", + "pr_number": 122271, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "is_mapped": true + }, + "122276": { + "commit": "b37c609b90b7da03803bbc2ab3dfee26c494bd30", + "text": "\"resource.k8s.io/ResourceClaim (alpha API): The strategic merge patch strategy for the `status.reservedFor` array was changed so that a strategic-merge-patch can now add individual entries. This change may break clients using strategic merge patch to update status, which rely on the previous behavior (replacing the entire array).\"\n", + "markdown": "\"resource.k8s.io/ResourceClaim (alpha API): The strategic merge patch strategy for the `status.reservedFor` array was changed so that a strategic-merge-patch can now add individual entries. This change may break clients using strategic merge patch to update status, which rely on the previous behavior (replacing the entire array).\"\n ([#122276](https://github.com/kubernetes/kubernetes/pull/122276), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122276", + "pr_number": 122276, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "122285": { + "commit": "33beb81d8f44bbadd27f6e14f747750fc27dedb4", + "text": "\"QueueingHint implementation for `NodeAffinity` was reverted because potential scenarios were found where events that make Pods schedulable could be missed.\"\n", + "markdown": "\"QueueingHint implementation for `NodeAffinity` was reverted because potential scenarios were found where events that make Pods schedulable could be missed.\"\n ([#122285](https://github.com/kubernetes/kubernetes/pull/122285), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122285", + "pr_number": 122285, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "122288": { + "commit": "68ef2423e81ed5efdb3f9881bbf5c91a81fb7448", + "text": "Reverted the `QueueingHint` implementation for `NodeUnschedulable` due to potential scenarios where events that make Pods schedulable could be missed.", + "markdown": "Reverted the `QueueingHint` implementation for `NodeUnschedulable` due to potential scenarios where events that make Pods schedulable could be missed. ([#122288](https://github.com/kubernetes/kubernetes/pull/122288), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122288", + "pr_number": 122288, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "122292": { + "commit": "aa73f3163a52e9a99df01b86f60eeed31abd54d9", + "text": "Improved the efficiency of NodeAdded QueueingHint by registering UpdateNodeTaint event for plugins that have NodeAdded event but don't have UpdateNodeTaint event. This ensures better requeuing efficiency and prevents Pods from being stuck in the unschedulable pod pool.\n", + "markdown": "Improved the efficiency of NodeAdded QueueingHint by registering UpdateNodeTaint event for plugins that have NodeAdded event but don't have UpdateNodeTaint event. This ensures better requeuing efficiency and prevents Pods from being stuck in the unschedulable pod pool.\n ([#122292](https://github.com/kubernetes/kubernetes/pull/122292), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122292", + "pr_number": 122292, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "122293": { + "commit": "67a06c20568db0f7b3a3b48ec564929b625e875a", + "text": "kube-controller-manager: increased the global level for broadcaster's logging to 3 so that users can ignore event messages by lowering the logging level. It reduces information noise.", + "markdown": "Kube-controller-manager: increased the global level for broadcaster's logging to 3 so that users can ignore event messages by lowering the logging level. It reduces information noise. ([#122293](https://github.com/kubernetes/kubernetes/pull/122293), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122293", + "pr_number": 122293, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "scheduling", + "storage", + "node", + "api-machinery", + "autoscaling", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "122296": { + "commit": "f538feed8c005866490d0a204bb3da192afe5767", + "text": "`kube-proxy` nftables mode is now compatible with kernel `5.4`.", + "markdown": "`kube-proxy` nftables mode is now compatible with kernel `5.4`. ([#122296](https://github.com/kubernetes/kubernetes/pull/122296), [@tnqn](https://github.com/tnqn))", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122296", + "pr_number": 122296, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "122309": { + "commit": "b1cf91b300a82bd05fdd7b115559e5b83680d768", + "text": "kube-scheduler implemented scheduling hints for the `NodeAffinity` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeAffinity` plugin if a new Node or a Node update matched the Pod's node affinity.", + "markdown": "Kube-scheduler implemented scheduling hints for the `NodeAffinity` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeAffinity` plugin if a new Node or a Node update matched the Pod's node affinity. ([#122309](https://github.com/kubernetes/kubernetes/pull/122309), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4247", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122309", + "pr_number": 122309, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "122329": { + "commit": "4cff5e8d2dc7df19b1cdceb7146a40e7ebc50085", + "text": "\"Fixed accidental enablement of the new alpha `optionalOldSelf` API field in `CustomResourceDefinition` validation rules, which should only have been allowed to be set when the `CRDValidationRatcheting` feature gate is enabled.\"\n", + "markdown": "\"Fixed accidental enablement of the new alpha `optionalOldSelf` API field in `CustomResourceDefinition` validation rules, which should only have been allowed to be set when the `CRDValidationRatcheting` feature gate is enabled.\"\n ([#122329](https://github.com/kubernetes/kubernetes/pull/122329), [@jpbetz](https://github.com/jpbetz))", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122329", + "pr_number": 122329, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "122334": { + "commit": "d74705119d99afc6b8b3de8a53c3b7c8ad005aef", + "text": "\"kube-scheduler implemented scheduling hints for the `NodeUnschedulable` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeSchedulable` plugin if a new Node or a Node update had set `.spec.unschedulable` to false.\"\n", + "markdown": "\"kube-scheduler implemented scheduling hints for the `NodeUnschedulable` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeSchedulable` plugin if a new Node or a Node update had set `.spec.unschedulable` to false.\"\n ([#122334](https://github.com/kubernetes/kubernetes/pull/122334), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4247", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122334", + "pr_number": 122334, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "122339": { + "commit": "63eb5028ba613003f044f0391912be356e0f1b97", + "text": "Added warning for `PV` on reclaim policy when it is `Recycle`.", + "markdown": "Added warning for `PV` on reclaim policy when it is `Recycle`. ([#122339](https://github.com/kubernetes/kubernetes/pull/122339), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122339", + "pr_number": 122339, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "122341": { + "commit": "55f1e21fdc71ae47a51e2e78c2f72d6a5952491e", + "text": "\"Fixed a regression in migration of in-tree vSphere volumes to the CSI driver introduced in version `1.29.0`+.\"\n", + "markdown": "\"Fixed a regression in migration of in-tree vSphere volumes to the CSI driver introduced in version `1.29.0`+.\"\n ([#122341](https://github.com/kubernetes/kubernetes/pull/122341), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122341", + "pr_number": 122341, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "122346": { + "commit": "1b6b3ba013025c1914f6a992b7223e99c185599c", + "text": "\"Fixed an issue where `kubectl apply` could panic when imported as a library.\"\n", + "markdown": "\"Fixed an issue where `kubectl apply` could panic when imported as a library.\"\n ([#122346](https://github.com/kubernetes/kubernetes/pull/122346), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122346", + "pr_number": 122346, + "areas": [ + "kubectl" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "122393": { + "commit": "0d530551bcd79120d94b1525921c222c418bc7b6", + "text": "etcd: Updated to `v3.5.11`.", + "markdown": "Etcd: Updated to `v3.5.11`. ([#122393](https://github.com/kubernetes/kubernetes/pull/122393), [@mzaian](https://github.com/mzaian))", + "author": "mzaian", + "author_url": "https://github.com/mzaian", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122393", + "pr_number": 122393, + "areas": [ + "test", + "provider/gcp", + "kubeadm", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "testing", + "cloud-provider", + "etcd" + ], + "duplicate": true, + "is_mapped": true + }, + "122409": { + "commit": "adc256ff0465130ecc6fb8336d827e7d54a42bed", + "text": "The feature gate `LegacyServiceAccountTokenTracking` (GA since 1.28) is now removed because the feature is unconditionally enabled.", + "markdown": "The feature gate `LegacyServiceAccountTokenTracking` (GA since 1.28) is now removed because the feature is unconditionally enabled. ([#122409](https://github.com/kubernetes/kubernetes/pull/122409), [@Rei1010](https://github.com/Rei1010))", + "author": "Rei1010", + "author_url": "https://github.com/Rei1010", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122409", + "pr_number": 122409, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth" + ], + "is_mapped": true + }, + "122415": { + "commit": "e2a6ce713c1ca23c7f02f0a0625faf1b8745f81f", + "text": "When using a claim with immediate allocation and a pod referencing that claim couldn't get scheduled, the scheduler incorrectly may have tried to deallocate that claim.", + "markdown": "When using a claim with immediate allocation and a pod referencing that claim couldn't get scheduled, the scheduler incorrectly may have tried to deallocate that claim. ([#122415](https://github.com/kubernetes/kubernetes/pull/122415), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122415", + "pr_number": 122415, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "122422": { + "commit": "1c789a9d46b39d4a3847852f27924bce94266138", + "text": "Removed note that `hostAliases` are not supported on hostNetwork Pods from the PodSpec API. The feature has been supported since v1.8.", + "markdown": "Removed note that `hostAliases` are not supported on hostNetwork Pods from the PodSpec API. The feature has been supported since v1.8. ([#122422](https://github.com/kubernetes/kubernetes/pull/122422), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122422", + "pr_number": 122422, + "areas": [ + "code-generation" + ], + "kinds": [ + "documentation", + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122435": { + "commit": "c8c845ae08a0277cc883327ef3902283026e9237", + "text": "\"Improved scheduler performance when no scoring plugins were defined.\"\n", + "markdown": "\"Improved scheduler performance when no scoring plugins were defined.\"\n ([#122435](https://github.com/kubernetes/kubernetes/pull/122435), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", + "author": "aleksandra-malinowska", + "author_url": "https://github.com/aleksandra-malinowska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122435", + "pr_number": 122435, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "122447": { + "commit": "5104e6566135e05b0b46eea1c068a07388c78044", + "text": "Fixed a regression in kubectl version `1.29.0` where the `--attach` flag was not honored.\n", + "markdown": "Fixed a regression in kubectl version `1.29.0` where the `--attach` flag was not honored.\n ([#122447](https://github.com/kubernetes/kubernetes/pull/122447), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122447", + "pr_number": 122447, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "122449": { + "commit": "c015565db399b9cf1e8aebaecc390f6ecbaf24c3", + "text": "`ValidateVolumeAttributesClassUpdate` also validates new VolumeAttributesClass object.", + "markdown": "`ValidateVolumeAttributesClassUpdate` also validates new VolumeAttributesClass object. ([#122449](https://github.com/kubernetes/kubernetes/pull/122449), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122449", + "pr_number": 122449, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "122456": { + "commit": "3516bc6f49eee4ca2d45ad3a13385c22ea76c247", + "text": "A new metric `lifecycle_handler_sleep_terminated_total` is added to record how many times LifecycleHandler sleep got unexpectedly terminated.", + "markdown": "A new metric `lifecycle_handler_sleep_terminated_total` is added to record how many times LifecycleHandler sleep got unexpectedly terminated. ([#122456](https://github.com/kubernetes/kubernetes/pull/122456), [@AxeZhan](https://github.com/AxeZhan))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3960", + "type": "KEP" + } + ], + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122456", + "pr_number": 122456, + "areas": [ + "test", + "kubelet", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "122468": { + "commit": "838536f6641eb5b1b875af05f74fc84146ba2f05", + "text": "\"Removed the GA feature gate `RemoveSelfLink`.\"\n", + "markdown": "\"Removed the GA feature gate `RemoveSelfLink`.\"\n ([#122468](https://github.com/kubernetes/kubernetes/pull/122468), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1164", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122468", + "pr_number": 122468, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "122475": { + "commit": "0babde6bacd72a7f2d3cf2a8f4688e766dd122f7", + "text": "Fixed panic of Evented `PLEG` during kubelet start-up.", + "markdown": "Fixed panic of Evented `PLEG` during kubelet start-up. ([#122475](https://github.com/kubernetes/kubernetes/pull/122475), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122475", + "pr_number": 122475, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "122477": { + "commit": "735804dc812ce647f8c130dced45b5ba4079b76e", + "text": "\"`kubeadm completion` error message now displayed supported shell types when an invalid shell was specified.\"\n", + "markdown": "\"`kubeadm completion` error message now displayed supported shell types when an invalid shell was specified.\"\n ([#122477](https://github.com/kubernetes/kubernetes/pull/122477), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122477", + "pr_number": 122477, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "122493": { + "commit": "12771ce77372da6c98a197b2f86fcdce74762f2d", + "text": "\"Fixed incorrect error logging for `syncCronJob`.\"\n", + "markdown": "\"Fixed incorrect error logging for `syncCronJob`.\"\n ([#122493](https://github.com/kubernetes/kubernetes/pull/122493), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122493", + "pr_number": 122493, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "122498": { + "commit": "5b979a3a53fefce7e3092dfe208385e66e713179", + "text": "\"Allowed scheduling framework plugins that implement `io.Closer` to be gracefully closed.\"\n", + "markdown": "\"Allowed scheduling framework plugins that implement `io.Closer` to be gracefully closed.\"\n ([#122498](https://github.com/kubernetes/kubernetes/pull/122498), [@Gekko0114](https://github.com/Gekko0114))", + "author": "Gekko0114", + "author_url": "https://github.com/Gekko0114", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122498", + "pr_number": 122498, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "122503": { + "commit": "919d4624a03fd2f18d4015a091b13e61d6a10044", + "text": "Scheduler extender `ignorable` option now handles errors for both filter and bind phases.", + "markdown": "Scheduler extender `ignorable` option now handles errors for both filter and bind phases. ([#122503](https://github.com/kubernetes/kubernetes/pull/122503), [@sunbinnnnn](https://github.com/sunbinnnnn))", + "author": "sunbinnnnn", + "author_url": "https://github.com/sunbinnnnn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122503", + "pr_number": 122503, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "122508": { + "commit": "692be54671dc86ba2deb96606d3f4b8b6ccbce13", + "text": "\"Removed the incorrect warning event `FileSystemResizeFailed` during pod creation if it uses a readonly volume and the capacity of the volume is greater than or equal to its requested storage.\"\n", + "markdown": "\"Removed the incorrect warning event `FileSystemResizeFailed` during pod creation if it uses a readonly volume and the capacity of the volume is greater than or equal to its requested storage.\"\n ([#122508](https://github.com/kubernetes/kubernetes/pull/122508), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122508", + "pr_number": 122508, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "122530": { + "commit": "0598cec06a907ccc3252393b75cb33290214a869", + "text": "\"kubeadm: Added better handling of errors during unmount when calling `kubeadm reset`. When failing to unmount directories under `/var/run/kubelet`, kubeadm will now throw an error instead of showing a warning and continuing to clean up said directory. In such situations, it is better for you to inspect the problem and resolve it manually. Then, you can call `kubeadm reset` again to complete the cleanup.\"\n", + "markdown": "\"kubeadm: Added better handling of errors during unmount when calling `kubeadm reset`. When failing to unmount directories under `/var/run/kubelet`, kubeadm will now throw an error instead of showing a warning and continuing to clean up said directory. In such situations, it is better for you to inspect the problem and resolve it manually. Then, you can call `kubeadm reset` again to complete the cleanup.\"\n ([#122530](https://github.com/kubernetes/kubernetes/pull/122530), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122530", + "pr_number": 122530, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122555": { + "commit": "0341e8294abffdfbdd4a038e0fd49d7f35ddc30a", + "text": "Introduced a feature gate mechanism to `client-go`. Depending on the actual implementation, users can control features via environmental variables or command line options.", + "markdown": "Introduced a feature gate mechanism to `client-go`. Depending on the actual implementation, users can control features via environmental variables or command line options. ([#122555](https://github.com/kubernetes/kubernetes/pull/122555), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "documentation": [ + { + "description": "[Other doc]", + "url": "https://docs.google.com/document/d/1g9BGCRw-7ucUxO6OtCWbb3lfzUGA_uU9178wLdXAIfs/edit#heading=h.lymszxjovg65", + "type": "external" + } + ], + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122555", + "pr_number": 122555, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "122558": { + "commit": "9bd0ef5f173de3cc2d1d629a4aee499d53690aee", + "text": "\"Changed the API server so that for admission webhooks that have a URL matching the hostname 'localhost' or a loopback IP address, the connection supports HTTP/2 where it could be negotiated.\"\n", + "markdown": "\"Changed the API server so that for admission webhooks that have a URL matching the hostname 'localhost' or a loopback IP address, the connection supports HTTP/2 where it could be negotiated.\"\n ([#122558](https://github.com/kubernetes/kubernetes/pull/122558), [@linxiulei](https://github.com/linxiulei))", + "author": "linxiulei", + "author_url": "https://github.com/linxiulei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122558", + "pr_number": 122558, + "areas": [ + "test", + "apiserver", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "122571": { + "commit": "026a27e5eb431c553d1204817cbf09f1005eca9b", + "text": "\"Added `WatchListClient` feature gate to `client-go`. When enabled, it allows the client to receive a stream of individual items instead of chunking from the server.\"\n", + "markdown": "\"Added `WatchListClient` feature gate to `client-go`. When enabled, it allows the client to receive a stream of individual items instead of chunking from the server.\"\n ([#122571](https://github.com/kubernetes/kubernetes/pull/122571), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/3157-watch-list/README.md", + "type": "KEP" + }, + { + "description": "[Other doc]", + "url": "https://docs.google.com/document/d/1g9BGCRw-7ucUxO6OtCWbb3lfzUGA_uU9178wLdXAIfs/edit#heading=h.lymszxjovg65", + "type": "external" + } + ], + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122571", + "pr_number": 122571, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "122574": { + "commit": "56ecdadd99aaee518fd9dde45f7c6b81f44d3785", + "text": "Fixed a bug where `kubectl` drain would consider a pod as having been deleted if an error occurs while calling the API.", + "markdown": "Fixed a bug where `kubectl` drain would consider a pod as having been deleted if an error occurs while calling the API. ([#122574](https://github.com/kubernetes/kubernetes/pull/122574), [@brianpursley](https://github.com/brianpursley))", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122574", + "pr_number": 122574, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "122576": { + "commit": "ec8f7b2600b3a5177b9dbd8f93c4de737df278de", + "text": "Deprecated the `azureFile` in-tree storage plugin.", + "markdown": "Deprecated the `azureFile` in-tree storage plugin. ([#122576](https://github.com/kubernetes/kubernetes/pull/122576), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1885", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122576", + "pr_number": 122576, + "areas": [ + "kubelet", + "provider/azure" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "node", + "api-machinery", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "122578": { + "commit": "6427e2c9c8b88d1d4c15cb18b1ef7b7ff1afe0fe", + "text": "\"Locked the GA feature-gate `ConsistentHTTPGetHandlers` to default.\"\n", + "markdown": "\"Locked the GA feature-gate `ConsistentHTTPGetHandlers` to default.\"\n ([#122578](https://github.com/kubernetes/kubernetes/pull/122578), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122578", + "pr_number": 122578, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "122589": { + "commit": "0a1cb2a4a42e70482604fe18b02029ecf088c17b", + "text": "Contextual logging is now in beta and enabled by default. Check out the [KEP](https://github.com/kubernetes/enhancements/issues/3077) and [official documentation](https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) for more details.", + "markdown": "Contextual logging is now in beta and enabled by default. Check out the [KEP](https://github.com/kubernetes/enhancements/issues/3077) and [official documentation](https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) for more details. ([#122589](https://github.com/kubernetes/kubernetes/pull/122589), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3077", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#contextual-logging", + "type": "official" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122589", + "pr_number": 122589, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "instrumentation" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122600": { + "commit": "d4678c79e7d316e6347a2868329d61dcb532dfba", + "text": "\"Used `errors.Is()` to handle errors returned by `LookPath()`.\"\n", + "markdown": "\"Used `errors.Is()` to handle errors returned by `LookPath()`.\"\n ([#122600](https://github.com/kubernetes/kubernetes/pull/122600), [@lzhecheng](https://github.com/lzhecheng))", + "author": "lzhecheng", + "author_url": "https://github.com/lzhecheng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122600", + "pr_number": 122600, + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ], + "is_mapped": true + }, + "122612": { + "commit": "7bea14097b77219291c1fce17a2829be8f6b9adb", + "text": "The deprecated `SecurityContextDeny` admission plugin, which has been deprecated since `v1.27`, has been removed. It is recommended to use the Pod Security Admission plugin instead, which has been available since v1.25. Refer to the [Kubernetes documentation](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#securitycontextdeny) for more information.\n", + "markdown": "The deprecated `SecurityContextDeny` admission plugin, which has been deprecated since `v1.27`, has been removed. It is recommended to use the Pod Security Admission plugin instead, which has been available since v1.25. Refer to the [Kubernetes documentation](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#securitycontextdeny) for more information.\n ([#122612](https://github.com/kubernetes/kubernetes/pull/122612), [@mtardy](https://github.com/mtardy))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3785", + "type": "external" + }, + { + "description": "[Other doc]", + "url": "https://github.com/kubernetes/kubernetes/issues/111516", + "type": "external" + } + ], + "author": "mtardy", + "author_url": "https://github.com/mtardy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122612", + "pr_number": 122612, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "deprecation" + ], + "sigs": [ + "auth", + "testing", + "security" + ], + "duplicate": true, + "is_mapped": true + }, + "122614": { + "commit": "95a159299b9be577be55550dbbca588f25580ae9", + "text": "\"kube-proxy: Fixed `LoadBalancerSourceRanges` not working for `nftables` mode.\"\n", + "markdown": "\"kube-proxy: Fixed `LoadBalancerSourceRanges` not working for `nftables` mode.\"\n ([#122614](https://github.com/kubernetes/kubernetes/pull/122614), [@tnqn](https://github.com/tnqn))", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122614", + "pr_number": 122614, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "122618": { + "commit": "cf2003fde41756d1d16fcb2d941a86708e8c5460", + "text": "\"`kubectl describe`: Added Suspend to job and Node-Selectors and Tolerations to pod template output.\"\n", + "markdown": "\"`kubectl describe`: Added Suspend to job and Node-Selectors and Tolerations to pod template output.\"\n ([#122618](https://github.com/kubernetes/kubernetes/pull/122618), [@ivanvc](https://github.com/ivanvc))", + "author": "ivanvc", + "author_url": "https://github.com/ivanvc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122618", + "pr_number": 122618, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "122635": { + "commit": "42941cb88a1123cfcec931cd784cba19131db472", + "text": "Promoted feature-gate `LegacyServiceAccountTokenCleanUp` to GA and locked it to default.", + "markdown": "Promoted feature-gate `LegacyServiceAccountTokenCleanUp` to GA and locked it to default. ([#122635](https://github.com/kubernetes/kubernetes/pull/122635), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2799", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122635", + "pr_number": 122635, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "122640": { + "commit": "8bc0ed16cd8a4c966f6822c96fafc7bd2b1eb2ea", + "text": "\"Printed more information when `kubectl describe` a `VolumeAttributesClass`.\"\n", + "markdown": "\"Printed more information when `kubectl describe` a `VolumeAttributesClass`.\"\n ([#122640](https://github.com/kubernetes/kubernetes/pull/122640), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3751", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122640", + "pr_number": 122640, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "122647": { + "commit": "83e6636096548f4b49a94ece6bc4a26fd67e4449", + "text": "Added to `MutableFeatureGate` the ability to override the default setting of feature gates, to allow default-enabling a feature on a component-by-component basis instead of for all affected components simultaneously.", + "markdown": "Added to `MutableFeatureGate` the ability to override the default setting of feature gates, to allow default-enabling a feature on a component-by-component basis instead of for all affected components simultaneously. ([#122647](https://github.com/kubernetes/kubernetes/pull/122647), [@benluddy](https://github.com/benluddy))", + "documentation": [ + { + "description": "[Proposal]", + "url": "https://docs.google.com/document/d/1g9BGCRw-7ucUxO6OtCWbb3lfzUGA_uU9178wLdXAIfs/edit#heading=h.ookhkzz1jrsp", + "type": "external" + } + ], + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122647", + "pr_number": 122647, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122697": { + "commit": "7ca92fb0168dd033a892c296543ed30d06e6a267", + "text": "\"Reverted the `EventedPLEG` feature (beta, but disabled by default) back to alpha due to a known issue.\"\n", + "markdown": "\"Reverted the `EventedPLEG` feature (beta, but disabled by default) back to alpha due to a known issue.\"\n ([#122697](https://github.com/kubernetes/kubernetes/pull/122697), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122697", + "pr_number": 122697, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "122701": { + "commit": "5ad2c12a6951deffe5394abc48c65417553dd214", + "text": "Fixed resource deletion failure caused by quota calculation error when `InPlacePodVerticalScaling` is turned on.", + "markdown": "Fixed resource deletion failure caused by quota calculation error when `InPlacePodVerticalScaling` is turned on. ([#122701](https://github.com/kubernetes/kubernetes/pull/122701), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1287", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122701", + "pr_number": 122701, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "122704": { + "commit": "eabd6e4584dd3302c0ce7b7389bdea8f1e0d27aa", + "text": "The PersistentVolume controller no longer automatically assigns a default `StorageClass` to Persistent Volume Claims (PVCs) with an empty `storageClassName`.\n", + "markdown": "The PersistentVolume controller no longer automatically assigns a default `StorageClass` to Persistent Volume Claims (PVCs) with an empty `storageClassName`.\n ([#122704](https://github.com/kubernetes/kubernetes/pull/122704), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3333", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122704", + "pr_number": 122704, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "storage", + "apps" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122705": { + "commit": "773ad73b90c2836685358a0fafe285b9e4cdcc19", + "text": "Kubernetes is now built with Go `1.21.6`.", + "markdown": "Kubernetes is now built with Go `1.21.6`. ([#122705](https://github.com/kubernetes/kubernetes/pull/122705), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122705", + "pr_number": 122705, + "areas": [ + "test", + "release-eng", + "conformance" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release", + "architecture" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "122717": { + "commit": "a67973a45c4b48585e3331889eca09425caca7c2", + "text": "Alpha support for field selectors on custom resources has been added. With the `CustomResourceFieldSelectors` feature gate enabled, the CustomResourceDefinition API now allows specifying `selectableFields`. Listing a field there enables filtering custom resources for that CustomResourceDefinition in list or watch requests.", + "markdown": "Alpha support for field selectors on custom resources has been added. With the `CustomResourceFieldSelectors` feature gate enabled, the CustomResourceDefinition API now allows specifying `selectableFields`. Listing a field there enables filtering custom resources for that CustomResourceDefinition in list or watch requests. ([#122717](https://github.com/kubernetes/kubernetes/pull/122717), [@jpbetz](https://github.com/jpbetz))", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122717", + "pr_number": 122717, + "areas": [ + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122724": { + "commit": "053acbed906eb7eabb51c113dc2371b4bf13b4d1", + "text": "\"Changed `--nodeport-addresses` behavior to default to \"primary node IP(s) only\" rather than \"all node IPs\".\"\n", + "markdown": "\"Changed `--nodeport-addresses` behavior to default to \"primary node IP(s) only\" rather than \"all node IPs\".\"\n ([#122724](https://github.com/kubernetes/kubernetes/pull/122724), [@nayihz](https://github.com/nayihz))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3866", + "type": "KEP" + } + ], + "author": "nayihz", + "author_url": "https://github.com/nayihz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122724", + "pr_number": 122724, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "windows" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "122729": { + "commit": "f84b2f0254c193dc7a70081d4eeceb8e69e984bc", + "text": "The `kube_codegen` tool now ignores the vendor folder during code generation.\n", + "markdown": "The `kube_codegen` tool now ignores the vendor folder during code generation.\n ([#122729](https://github.com/kubernetes/kubernetes/pull/122729), [@jparrill](https://github.com/jparrill))", + "author": "jparrill", + "author_url": "https://github.com/jparrill", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122729", + "pr_number": 122729, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122735": { + "commit": "789e029364ca2dce27cf4750176a0b11ede09a00", + "text": "Fixed a regression in \"kubeadm init\" where a user-specified --kubeconfig file was being ignored.", + "markdown": "Fixed a regression in \"kubeadm init\" where a user-specified --kubeconfig file was being ignored. ([#122735](https://github.com/kubernetes/kubernetes/pull/122735), [@avorima](https://github.com/avorima))", + "author": "avorima", + "author_url": "https://github.com/avorima", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122735", + "pr_number": 122735, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "122745": { + "commit": "3686ceb5b826d74c8e4e8a0fa998063cb8d86e02", + "text": "In kubelet configuration, the `.memorySwap.swapBehavior` field now accepts a new value `NoSwap`, which becomes the default if unspecified. The previously accepted `UnlimitedSwap` value has been dropped.\n", + "markdown": "In kubelet configuration, the `.memorySwap.swapBehavior` field now accepts a new value `NoSwap`, which becomes the default if unspecified. The previously accepted `UnlimitedSwap` value has been dropped.\n ([#122745](https://github.com/kubernetes/kubernetes/pull/122745), [@kannon92](https://github.com/kannon92))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2400", + "type": "KEP" + } + ], + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122745", + "pr_number": 122745, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122750": { + "commit": "f7f1ea6fa23ec0fc527ff10174bbe0dc3bec77da", + "text": "Added `process_start_time_seconds` to `/metrics/slis` endpoint of all components.", + "markdown": "Added `process_start_time_seconds` to `/metrics/slis` endpoint of all components. ([#122750](https://github.com/kubernetes/kubernetes/pull/122750), [@richabanker](https://github.com/richabanker))", + "author": "richabanker", + "author_url": "https://github.com/richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122750", + "pr_number": 122750, + "areas": [ + "test", + "conformance" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "testing", + "architecture" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "122804": { + "commit": "1ad143177c365212e53793aff204c6f1c9727d45", + "text": "Added metric name along with the utilization information when running `kubectl get hpa`.", + "markdown": "Added metric name along with the utilization information when running `kubectl get hpa`. ([#122804](https://github.com/kubernetes/kubernetes/pull/122804), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh))", + "author": "sreeram-venkitesh", + "author_url": "https://github.com/sreeram-venkitesh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122804", + "pr_number": 122804, + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "122807": { + "commit": "fedb5842e53f33ae2c4bc2ac8eaf4092b4c3b52b", + "text": "Fixed an issue where the `configmap`, `secret`, `projected`, and `downwardAPI` volume types didn't create user-visible files after a kubelet restart. This fix ensures data persistence and accessibility after restarts.", + "markdown": "Fixed an issue where the `configmap`, `secret`, `projected`, and `downwardAPI` volume types didn't create user-visible files after a kubelet restart. This fix ensures data persistence and accessibility after restarts. ([#122807](https://github.com/kubernetes/kubernetes/pull/122807), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122807", + "pr_number": 122807, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "122830": { + "commit": "d2b4928669c633cffb0e4aa6317d0e016ee37de6", + "text": "\"The watch cache now waits until it is at least as fresh as the given requestedWatchRV if sendInitialEvents was requested.\"\n", + "markdown": "\"The watch cache now waits until it is at least as fresh as the given requestedWatchRV if sendInitialEvents was requested.\"\n ([#122830](https://github.com/kubernetes/kubernetes/pull/122830), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/3157-watch-list/README.md", + "type": "KEP" + } + ], + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122830", + "pr_number": 122830, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "122846": { + "commit": "015e76aa24ebfebfd64062e1161059ac62ddabc9", + "text": "\"Fixed an issue where `AvailableBytes` sometimes did not report correctly on WindowsNodes when the `PodAndContainerStatsFromCRI` feature was enabled.\"\n", + "markdown": "\"Fixed an issue where `AvailableBytes` sometimes did not report correctly on WindowsNodes when the `PodAndContainerStatsFromCRI` feature was enabled.\"\n ([#122846](https://github.com/kubernetes/kubernetes/pull/122846), [@marosset](https://github.com/marosset))", + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122846", + "pr_number": 122846, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true, + "is_mapped": true + }, + "122857": { + "commit": "7bb00356f06332e63a9f06acd42f1bdd8fc559d6", + "text": "The in-tree cloud provider for Azure has now been removed. Please use the external cloud provider and CSI driver from https://github.com/kubernetes/cloud-provider-azure instead.", + "markdown": "The in-tree cloud provider for Azure has now been removed. Please use the external cloud provider and CSI driver from https://github.com/kubernetes/cloud-provider-azure instead. ([#122857](https://github.com/kubernetes/kubernetes/pull/122857), [@nilo19](https://github.com/nilo19))", + "author": "nilo19", + "author_url": "https://github.com/nilo19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122857", + "pr_number": 122857, + "areas": [ + "test", + "kubelet", + "cloudprovider", + "provider/azure", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "api-machinery", + "instrumentation", + "testing", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "122870": { + "commit": "56a1b075cdbf7e4e78b40f133fc500415fe4f8fc", + "text": "Promoted the `status.hostIPs` field for Pods to general availability.\nThe `PodHostIPs` feature gate no longer has any effect, and the\n`status.hostIPs` field is always available within the Pod API.", + "markdown": "Promoted the `status.hostIPs` field for Pods to general availability.\n The `PodHostIPs` feature gate no longer has any effect, and the\n `status.hostIPs` field is always available within the Pod API. ([#122870](https://github.com/kubernetes/kubernetes/pull/122870), [@wzshiming](https://github.com/wzshiming))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2681", + "type": "KEP" + } + ], + "author": "wzshiming", + "author_url": "https://github.com/wzshiming", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122870", + "pr_number": 122870, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "node", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "122874": { + "commit": "1853de77b24cf1bb6a7821fd2a3b33e2fdb76192", + "text": "Fixed node lifecycle controller panic when conditionType ready is been patch `nil` by mistake.", + "markdown": "Fixed node lifecycle controller panic when conditionType ready is been patch `nil` by mistake. ([#122874](https://github.com/kubernetes/kubernetes/pull/122874), [@fusida](https://github.com/fusida))", + "author": "fusida", + "author_url": "https://github.com/fusida", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122874", + "pr_number": 122874, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node", + "apps" + ], + "duplicate": true, + "is_mapped": true + }, + "122881": { + "commit": "542fe510462005c5c5757bed34c6ae62b7b36180", + "text": "Added a CBOR implementation of `runtime.Serializer`. Until CBOR graduates to Alpha, API servers will refuse to start if configured with CBOR support.", + "markdown": "Added a CBOR implementation of `runtime.Serializer`. Until CBOR graduates to Alpha, API servers will refuse to start if configured with CBOR support. ([#122881](https://github.com/kubernetes/kubernetes/pull/122881), [@benluddy](https://github.com/benluddy))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4222", + "type": "external" + } + ], + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122881", + "pr_number": 122881, + "areas": [ + "test", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122882": { + "commit": "3f25211d69b4412e3e926835067918f86f629f3e", + "text": "Aggregated discovery supports both `v2beta1` and v2 types and feature is promoted to GA.", + "markdown": "Aggregated discovery supports both `v2beta1` and v2 types and feature is promoted to GA. ([#122882](https://github.com/kubernetes/kubernetes/pull/122882), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122882", + "pr_number": 122882, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122883": { + "commit": "3d3d705a6dabe8c4bc980e0353a512437ed221e2", + "text": "Fixed bug where health check could pass while APIServices are missing from aggregated discovery.", + "markdown": "Fixed bug where health check could pass while APIServices are missing from aggregated discovery. ([#122883](https://github.com/kubernetes/kubernetes/pull/122883), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122883", + "pr_number": 122883, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "122887": { + "commit": "58c77d7b63d0a027b37e2189f9de2728e5674169", + "text": "When the `RetryGenerateName` feature gate is enabled on the kube-apiserver,\ncreate requests using generateName are retried automatically by the apiserver when the generated name conflicts with an existing resource name, up to a max limit of 7 retries.\nThis feature is in alpha.", + "markdown": "When the `RetryGenerateName` feature gate is enabled on the kube-apiserver,\n create requests using generateName are retried automatically by the apiserver when the generated name conflicts with an existing resource name, up to a max limit of 7 retries.\n This feature is in alpha. ([#122887](https://github.com/kubernetes/kubernetes/pull/122887), [@jpbetz](https://github.com/jpbetz))", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122887", + "pr_number": 122887, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "122889": { + "commit": "0ff6a00fafee08467d946ab18c7839d9704d27d5", + "text": "Kubernetes is now built with go `1.22rc2`.", + "markdown": "Kubernetes is now built with go `1.22rc2`. ([#122889](https://github.com/kubernetes/kubernetes/pull/122889), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122889", + "pr_number": 122889, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "122893": { + "commit": "a07b1aaa5b39b351ec8586de800baa5715304a3f", + "text": "\"Fixed error handling in `EnsureAdminClusterRoleBindingImpl`.\"\n", + "markdown": "\"Fixed error handling in `EnsureAdminClusterRoleBindingImpl`.\"\n ([#122893](https://github.com/kubernetes/kubernetes/pull/122893), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122893", + "pr_number": 122893, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true, + "is_mapped": true + }, + "122907": { + "commit": "5fd38a8c7871c058e59e38645abe3df8024d52e2", + "text": "The drop-in kubelet configuration directory feature has been targeted for Beta.", + "markdown": "The drop-in kubelet configuration directory feature has been targeted for Beta. ([#122907](https://github.com/kubernetes/kubernetes/pull/122907), [@sohankunkerkar](https://github.com/sohankunkerkar))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3983-drop-in-configuration", + "type": "KEP" + } + ], + "author": "sohankunkerkar", + "author_url": "https://github.com/sohankunkerkar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122907", + "pr_number": 122907, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "122914": { + "commit": "4128848655c50e4794b4e28bf02e2a03d1814ced", + "text": "Promoted `KubeProxyDrainingTerminatingNodes` to `Beta`.", + "markdown": "Promoted `KubeProxyDrainingTerminatingNodes` to `Beta`. ([#122914](https://github.com/kubernetes/kubernetes/pull/122914), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/issues/3836", + "type": "KEP" + } + ], + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122914", + "pr_number": 122914, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "is_mapped": true + }, + "122937": { + "commit": "7ff2deceb1ca7b7d24cbedc5832a4c81610f6157", + "text": "The in-tree cloud provider for vSphere has been deprecated and removed. Users are advised to utilize the external cloud provider and CSI driver available at https://github.com/kubernetes/cloud-provider-vsphere.", + "markdown": "The in-tree cloud provider for vSphere has been deprecated and removed. Users are advised to utilize the external cloud provider and CSI driver available at https://github.com/kubernetes/cloud-provider-vsphere. ([#122937](https://github.com/kubernetes/kubernetes/pull/122937), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122937", + "pr_number": 122937, + "areas": [ + "test", + "cloudprovider", + "provider/gcp", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "api-machinery", + "testing", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "122946": { + "commit": "278ea691e0a951164ed0958d908b22098ab32165", + "text": "Users can now traverse all the pods that are in the scheduler and waiting in the permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods in scheduler can be obtained from any profiles. Before this commit, each profile could only obtain `waitingPods` within that profile", + "markdown": "Users can now traverse all the pods that are in the scheduler and waiting in the permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods in scheduler can be obtained from any profiles. Before this commit, each profile could only obtain `waitingPods` within that profile ([#122946](https://github.com/kubernetes/kubernetes/pull/122946), [@NoicFank](https://github.com/NoicFank))", + "author": "NoicFank", + "author_url": "https://github.com/NoicFank", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122946", + "pr_number": 122946, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "122961": { + "commit": "7f5cd1961ca042e2d746c6fbb05771251748d9f4", + "text": "Promoted feature gate `StableLoadBalancerNodeSet` to `GA` .", + "markdown": "Promoted feature gate `StableLoadBalancerNodeSet` to `GA` . ([#122961](https://github.com/kubernetes/kubernetes/pull/122961), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/issues/3458", + "type": "KEP" + } + ], + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122961", + "pr_number": 122961, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "122999": { + "commit": "980033ee810b4a458f7cd475353f585aa82b8c35", + "text": "Fixed an issue calculating total CPU usage reported for Windows nodes.", + "markdown": "Fixed an issue calculating total CPU usage reported for Windows nodes. ([#122999](https://github.com/kubernetes/kubernetes/pull/122999), [@marosset](https://github.com/marosset))", + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122999", + "pr_number": 122999, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123001": { + "commit": "862ff187baad9373d59d19e5d736dcda1e25e90d", + "text": "In the PriorityLevelConfiguration object, the `nominalConcurrencyShares` field now accepts a zero value in both the `flowcontrol.apiserver.k8s.io/v1` and `flowcontrol.apiserver.k8s.io/v1beta3` APIs.\n", + "markdown": "In the PriorityLevelConfiguration object, the `nominalConcurrencyShares` field now accepts a zero value in both the `flowcontrol.apiserver.k8s.io/v1` and `flowcontrol.apiserver.k8s.io/v1beta3` APIs.\n ([#123001](https://github.com/kubernetes/kubernetes/pull/123001), [@tkashem](https://github.com/tkashem))", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123001", + "pr_number": 123001, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "123003": { + "commit": "4f910fe47cc9a0cf648a049a6cccc38be17b0ad6", + "text": "\"Fixed a bug in `ValidatingAdmissionPolicy` that caused policies using CRD parameters to fail to synchronize.\"\n", + "markdown": "\"Fixed a bug in `ValidatingAdmissionPolicy` that caused policies using CRD parameters to fail to synchronize.\"\n ([#123003](https://github.com/kubernetes/kubernetes/pull/123003), [@alexzielenski](https://github.com/alexzielenski))", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123003", + "pr_number": 123003, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "123011": { + "commit": "65e77e77751423588dc09568d842de0c73e4bede", + "text": "The `--cidr-allocator-type` option set to `CloudAllocator` for `kube-controller-manager` will be deprecated and removed in a future release. Users are advised to transition to and explore the available options provided by their external cloud provider.", + "markdown": "The `--cidr-allocator-type` option set to `CloudAllocator` for `kube-controller-manager` will be deprecated and removed in a future release. Users are advised to transition to and explore the available options provided by their external cloud provider. ([#123011](https://github.com/kubernetes/kubernetes/pull/123011), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123011", + "pr_number": 123011, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "api-machinery" + ], + "duplicate": true, + "is_mapped": true + }, + "123023": { + "commit": "012f04b178a44c0002b0f3ded6cc43788daf9139", + "text": "Fixed `kubectl explain` to show enum for field types if they were defined.", + "markdown": "Fixed `kubectl explain` to show enum for field types if they were defined. ([#123023](https://github.com/kubernetes/kubernetes/pull/123023), [@ah8ad3](https://github.com/ah8ad3))", + "author": "ah8ad3", + "author_url": "https://github.com/ah8ad3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123023", + "pr_number": 123023, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "123032": { + "commit": "2c5105e7b80f97ab2da0d47a6db6875aec38331c", + "text": "Fixed Pod stuck in `Terminating` because of `GenerateUnmapVolumeFunc` missing `globalUnmapPath` when kubelet tries to clean up all volumes that failed reconstruction.", + "markdown": "Fixed Pod stuck in `Terminating` because of `GenerateUnmapVolumeFunc` missing `globalUnmapPath` when kubelet tries to clean up all volumes that failed reconstruction. ([#123032](https://github.com/kubernetes/kubernetes/pull/123032), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123032", + "pr_number": 123032, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "123038": { + "commit": "7080b51ee92f67623757534f3462d8ae862ef6fe", + "text": "\"Fixed the deprecated version for `pod_scheduling_duration_seconds` that caused the metric to be hidden by default in `1.29`.\"\n", + "markdown": "\"Fixed the deprecated version for `pod_scheduling_duration_seconds` that caused the metric to be hidden by default in `1.29`.\"\n ([#123038](https://github.com/kubernetes/kubernetes/pull/123038), [@alculquicondor](https://github.com/alculquicondor))", + "author": "alculquicondor", + "author_url": "https://github.com/alculquicondor", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123038", + "pr_number": 123038, + "areas": [ + "stable-metrics" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123052": { + "commit": "77775d45469a3da6a7ce5e6e2221cff17c2d27fe", + "text": "\"Fixed cleanup of Pod volume mounts when a file was used as a subpath.\"\n", + "markdown": "\"Fixed cleanup of Pod volume mounts when a file was used as a subpath.\"\n ([#123052](https://github.com/kubernetes/kubernetes/pull/123052), [@jsafrane](https://github.com/jsafrane))", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123052", + "pr_number": 123052, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "123055": { + "commit": "440f11d83dd939afb53d47a64fb1d6bf837cc50b", + "text": "Fixed an error when trying to expand a volume that does not require node expansion.", + "markdown": "Fixed an error when trying to expand a volume that does not require node expansion. ([#123055](https://github.com/kubernetes/kubernetes/pull/123055), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123055", + "pr_number": 123055, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "123069": { + "commit": "003187fd5a0803eb25f984e07a5c7c47a5621c1d", + "text": "etcd image `v3.5.12` has been built.", + "markdown": "Etcd image `v3.5.12` has been built. ([#123069](https://github.com/kubernetes/kubernetes/pull/123069), [@bzsuni](https://github.com/bzsuni))", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123069", + "pr_number": 123069, + "areas": [ + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "etcd" + ], + "duplicate": true, + "is_mapped": true + }, + "123077": { + "commit": "173cf189209a2ad21cf251164275cd3cc5366b74", + "text": "Fixed a bug in kubeadm where the `--rootfs` global flag didn't work with \"kubeadm upgrade node\" for control plane nodes.", + "markdown": "Fixed a bug in kubeadm where the `--rootfs` global flag didn't work with \"kubeadm upgrade node\" for control plane nodes. ([#123077](https://github.com/kubernetes/kubernetes/pull/123077), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123077", + "pr_number": 123077, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "123083": { + "commit": "002b0f00033e3fd4650dd4da3717b9187b8621e1", + "text": "`ValidatingAdmissionPolicy` now supports type checking policies that utilize variables.", + "markdown": "`ValidatingAdmissionPolicy` now supports type checking policies that utilize variables. ([#123083](https://github.com/kubernetes/kubernetes/pull/123083), [@jiahuif](https://github.com/jiahuif))", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123083", + "pr_number": 123083, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "123093": { + "commit": "4a4f5dbc079e85e63f62178af962cb65bd60d987", + "text": "\"Fixed a `1.27.0+` regression in kubeadm: The kubelet patch configuration will not be uploaded into the `kube-system/kubelet-config` ConfigMap anymore.\"\n", + "markdown": "\"Fixed a `1.27.0+` regression in kubeadm: The kubelet patch configuration will not be uploaded into the `kube-system/kubelet-config` ConfigMap anymore.\"\n ([#123093](https://github.com/kubernetes/kubernetes/pull/123093), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123093", + "pr_number": 123093, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "123098": { + "commit": "8c6e940a970e3a910b02442c001735619a8c7ba4", + "text": "Updated an audit annotation key used by the `…/serviceaccounts/\u003cname\u003e/token` resource handler.\nThe annotation used to persist the issued credential identifier is now `authentication.kubernetes.io/issued-credential-id`.", + "markdown": "Updated an audit annotation key used by the `…/serviceaccounts/\u003cname\u003e/token` resource handler.\n The annotation used to persist the issued credential identifier is now `authentication.kubernetes.io/issued-credential-id`. ([#123098](https://github.com/kubernetes/kubernetes/pull/123098), [@munnerz](https://github.com/munnerz)) [SIG Auth]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issue/4193", + "type": "KEP" + } + ], + "author": "munnerz", + "author_url": "https://github.com/munnerz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123098", + "pr_number": 123098, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "auth" + ], + "duplicate_kind": true + }, + "123117": { + "commit": "ad19beaa83363de89a7772f4d5af393b85ce5e61", + "text": "Fixed a bug in scheduler requeueing where registered wildcard cluster event sources didn't work.", + "markdown": "Fixed a bug in scheduler requeueing where registered wildcard cluster event sources didn't work. ([#123117](https://github.com/kubernetes/kubernetes/pull/123117), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123117", + "pr_number": 123117, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "123134": { + "commit": "920333b5fbec6019e503f8d444ce4c5af4100d3b", + "text": "Graduated support for passing dual-stack `kubelet --node-ip` values when using a cloud provider. The feature is now GA, and the `CloudDualStackNodeIPs` feature gate is always enabled.", + "markdown": "Graduated support for passing dual-stack `kubelet --node-ip` values when using a cloud provider. The feature is now GA, and the `CloudDualStackNodeIPs` feature gate is always enabled. ([#123134](https://github.com/kubernetes/kubernetes/pull/123134), [@danwinship](https://github.com/danwinship))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3705", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123134", + "pr_number": 123134, + "areas": [ + "kubelet", + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123135": { + "commit": "8845c4c657eb587944a0cf5ce18203c1361d5215", + "text": "Node information is now embedded into Pod-bound service account tokens as additional metadata. The 'JTI' field is set in issued service account tokens, and this information is embedded as `authentication.kubernetes.io/credential-id` in the user's ExtraInfo.", + "markdown": "Node information is now embedded into Pod-bound service account tokens as additional metadata. The 'JTI' field is set in issued service account tokens, and this information is embedded as `authentication.kubernetes.io/credential-id` in the user's ExtraInfo. ([#123135](https://github.com/kubernetes/kubernetes/pull/123135), [@munnerz](https://github.com/munnerz))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4193", + "type": "KEP" + } + ], + "author": "munnerz", + "author_url": "https://github.com/munnerz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123135", + "pr_number": 123135, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123150": { + "commit": "bd0288af97d4294f3acd36b90038110ac6544fbe", + "text": "\"Updated `etcd` to version `3.5.12`.\"\n", + "markdown": "\"Updated `etcd` to version `3.5.12`.\"\n ([#123150](https://github.com/kubernetes/kubernetes/pull/123150), [@bzsuni](https://github.com/bzsuni))", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123150", + "pr_number": 123150, + "areas": [ + "test", + "provider/gcp", + "kubeadm", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "testing", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "123157": { + "commit": "c53ac4cee4b16d020c218618d942096028a820a9", + "text": "Introduced a new alpha feature gate, `SELinuxMount`, which can now be enabled to accelerate SELinux relabeling.", + "markdown": "Introduced a new alpha feature gate, `SELinuxMount`, which can now be enabled to accelerate SELinux relabeling. ([#123157](https://github.com/kubernetes/kubernetes/pull/123157), [@jsafrane](https://github.com/jsafrane))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling", + "type": "KEP" + } + ], + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123157", + "pr_number": 123157, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123165": { + "commit": "ba450636a455eedb78a18d21db8919e9afdd4e77", + "text": "Added audienceMatchPolicy field to AuthenticationConfiguration and support for configuring multiple audiences.\nThe \"audienceMatchPolicy\" can be empty (or unset) when a single audience is specified in the \"audiences\" field.\nThe \"audienceMatchPolicy\" must be set to \"MatchAny\" when multiple audiences are specified in the \"audiences\" field.", + "markdown": "Added audienceMatchPolicy field to AuthenticationConfiguration and support for configuring multiple audiences.\n The \"audienceMatchPolicy\" can be empty (or unset) when a single audience is specified in the \"audiences\" field.\n The \"audienceMatchPolicy\" must be set to \"MatchAny\" when multiple audiences are specified in the \"audiences\" field. ([#123165](https://github.com/kubernetes/kubernetes/pull/123165), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123165", + "pr_number": 123165, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123170": { + "commit": "d6e4c6cdea48d3565a5046079850cd0d04bcb74c", + "text": "\"Updated `distroless-iptables` to `v0.5.0`, debian-base to `bookworm-v1.0.1`, and setcap to `bookworm-v1.0.1`.\"\n", + "markdown": "\"Updated `distroless-iptables` to `v0.5.0`, debian-base to `bookworm-v1.0.1`, and setcap to `bookworm-v1.0.1`.\"\n ([#123170](https://github.com/kubernetes/kubernetes/pull/123170), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123170", + "pr_number": 123170, + "areas": [ + "test", + "provider/gcp", + "release-eng", + "conformance" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "storage", + "api-machinery", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123171": { + "commit": "e7d84c9f08f96832ad66f85adc40f924643e4268", + "text": "kubeadm: the `kubelet-finalize` phase of `kubeadm init` no longer requires the kubelet kubeconfig to have a specific authinfo.", + "markdown": "Kubeadm: the `kubelet-finalize` phase of `kubeadm init` no longer requires the kubelet kubeconfig to have a specific authinfo. ([#123171](https://github.com/kubernetes/kubernetes/pull/123171), [@vrutkovs](https://github.com/vrutkovs))", + "author": "vrutkovs", + "author_url": "https://github.com/vrutkovs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123171", + "pr_number": 123171, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "123179": { + "commit": "7abb063b42c7770628ee2b69e25370cf6334882a", + "text": "Added a new metric `apiserver_encryption_config_controller_automatic_reloads_total` to measure the total number of API server encryption configuration reload successes and failures. This metric now contains the `status` label with a value that is either `success` or `failure`. Deprecated the metrics `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total`. Please use `apiserver_encryption_config_controller_automatic_reloads_total` instead.\n", + "markdown": "Added a new metric `apiserver_encryption_config_controller_automatic_reloads_total` to measure the total number of API server encryption configuration reload successes and failures. This metric now contains the `status` label with a value that is either `success` or `failure`. Deprecated the metrics `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total`. Please use `apiserver_encryption_config_controller_automatic_reloads_total` instead.\n ([#123179](https://github.com/kubernetes/kubernetes/pull/123179), [@aramase](https://github.com/aramase))", + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123179", + "pr_number": 123179, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123180": { + "commit": "eafd2897e24b5b069bcdf83ac7a9b2c0b894dbb8", + "text": "\"`readOnly` volumes now support recursive read-only mounts for kernel versions \u003e= 5.12.\"\n", + "markdown": "\"`readOnly` volumes now support recursive read-only mounts for kernel versions \u003e= 5.12.\"\n ([#123180](https://github.com/kubernetes/kubernetes/pull/123180), [@AkihiroSuda](https://github.com/AkihiroSuda))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3857", + "type": "external" + } + ], + "author": "AkihiroSuda", + "author_url": "https://github.com/AkihiroSuda", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123180", + "pr_number": 123180, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123190": { + "commit": "599d92f1fb6fce102ae83d6c98be1aa5749f35de", + "text": "\"Added the `apiserver_watch_cache_read_wait` metric to measure the watch cache impact on request latency.\"\n", + "markdown": "\"Added the `apiserver_watch_cache_read_wait` metric to measure the watch cache impact on request latency.\"\n ([#123190](https://github.com/kubernetes/kubernetes/pull/123190), [@padlar](https://github.com/padlar))", + "author": "padlar", + "author_url": "https://github.com/padlar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123190", + "pr_number": 123190, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123205": { + "commit": "f8fc1956db26b881e09e45ba563f096aade38420", + "text": "The NodeLogQuery feature has been promoted to beta. No functional changes have been made from the alpha version.", + "markdown": "The NodeLogQuery feature has been promoted to beta. No functional changes have been made from the alpha version. ([#123205](https://github.com/kubernetes/kubernetes/pull/123205), [@aravindhp](https://github.com/aravindhp))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/2258-node-log-query", + "type": "KEP" + }, + { + "url": "https://github.com/kubernetes/website/pull/45126", + "type": "external" + } + ], + "author": "aravindhp", + "author_url": "https://github.com/aravindhp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123205", + "pr_number": 123205, + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "windows" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123215": { + "commit": "cde4788a27bad9681bc68a1dd2cd878fed27fb1a", + "text": "Graduated \"Forensic Container Checkpointing\" (KEP #2008) from Alpha to Beta.", + "markdown": "Graduated \"Forensic Container Checkpointing\" (KEP #2008) from Alpha to Beta. ([#123215](https://github.com/kubernetes/kubernetes/pull/123215), [@adrianreber](https://github.com/adrianreber))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2008", + "type": "KEP" + }, + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/4288", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/blog/2022/12/05/forensic-container-checkpointing-alpha/", + "type": "external" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/blog/2023/03/10/forensic-container-analysis/", + "type": "external" + }, + { + "description": "[Other doc]", + "url": "https://kubernetes.io/docs/reference/node/kubelet-checkpoint-api/", + "type": "official" + } + ], + "author": "adrianreber", + "author_url": "https://github.com/adrianreber", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123215", + "pr_number": 123215, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123216": { + "commit": "b63e991b5742ea86dd81b5a39b3369576d7d90da", + "text": "The kubelet now rejects creating the pod if `hostUserns=false` and the CRI runtime does not support user namespaces.", + "markdown": "The kubelet now rejects creating the pod if `hostUserns=false` and the CRI runtime does not support user namespaces. ([#123216](https://github.com/kubernetes/kubernetes/pull/123216), [@giuseppe](https://github.com/giuseppe))", + "author": "giuseppe", + "author_url": "https://github.com/giuseppe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123216", + "pr_number": 123216, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "123217": { + "commit": "b85c9bbf1ac911a2a2aed2d5c1f5eaf5956cc199", + "text": "Kubernetes is now built with Go `1.22`.", + "markdown": "Kubernetes is now built with Go `1.22`. ([#123217](https://github.com/kubernetes/kubernetes/pull/123217), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123217", + "pr_number": 123217, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123222": { + "commit": "ed84e7f6d327d518e140c5f9c31462075b922c3a", + "text": "Fixed a potential data race in DRA with no known real-world implications.", + "markdown": "Fixed a potential data race in DRA with no known real-world implications. ([#123222](https://github.com/kubernetes/kubernetes/pull/123222), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123222", + "pr_number": 123222, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "123223": { + "commit": "3ae6c051a0971cca3bc8e151b62467d317d5f1a7", + "text": "Enhanced cloud provider integrations to support optional, per-Node custom labels that can be supplied and applied to Nodes by the node controller. These extra labels will only be applied where the cloud provider integration supports this feature.\n", + "markdown": "Enhanced cloud provider integrations to support optional, per-Node custom labels that can be supplied and applied to Nodes by the node controller. These extra labels will only be applied where the cloud provider integration supports this feature.\n ([#123223](https://github.com/kubernetes/kubernetes/pull/123223), [@mmerkes](https://github.com/mmerkes))", + "documentation": [ + { + "description": "To use this feature, cloud providers must use the [InstancesV2 interface](", + "url": "https://github.com/kubernetes/kubernetes/blob/ad19beaa83363de89a7772f4d5af393b85ce5e61/staging/src/k8s.io/cloud-provider/cloud.go#L210) and", + "type": "external" + } + ], + "author": "mmerkes", + "author_url": "https://github.com/mmerkes", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123223", + "pr_number": 123223, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider" + ], + "feature": true, + "is_mapped": true + }, + "123225": { + "commit": "6d2ee131ebd13ce2ec2448300bb99f4ea942f1a9", + "text": "kube-apiserver now reports latency metric for JWT authenticator authenticate token decisions in the `apiserver_authentication_jwt_authenticator_latency_seconds` metric, labeled by jwtIssuer hash and result.", + "markdown": "Kube-apiserver now reports latency metric for JWT authenticator authenticate token decisions in the `apiserver_authentication_jwt_authenticator_latency_seconds` metric, labeled by jwtIssuer hash and result. ([#123225](https://github.com/kubernetes/kubernetes/pull/123225), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123225", + "pr_number": 123225, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123226": { + "commit": "a81411594a3c66f9e1b9214ba9e0c472e8c2e742", + "text": "\"`kubectl get job` now displays the status for the listed jobs.\"\n", + "markdown": "\"`kubectl get job` now displays the status for the listed jobs.\"\n ([#123226](https://github.com/kubernetes/kubernetes/pull/123226), [@ivanvc](https://github.com/ivanvc))", + "author": "ivanvc", + "author_url": "https://github.com/ivanvc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123226", + "pr_number": 123226, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "cli" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123261": { + "commit": "1dce896e2c83bbb659b88b5ec79902099655bf00", + "text": "\"Restored the `--verify-only` function in code generation wrappers.\"\n", + "markdown": "\"Restored the `--verify-only` function in code generation wrappers.\"\n ([#123261](https://github.com/kubernetes/kubernetes/pull/123261), [@skitt](https://github.com/skitt))", + "author": "skitt", + "author_url": "https://github.com/skitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123261", + "pr_number": 123261, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "123271": { + "commit": "7225dc6c3ac970f04e7691547193a54ccd0b3ee6", + "text": "\"kubeadm: ensured that a variety of API server requests were retried during \"init\", \"join\", \"upgrade\", \"reset\" workflows. Prior to this change, some API server requests, such as creating or updating ConfigMaps, were \"one-shot\" - i.e., they could fail if the API server dropped connectivity for a very short period of time.\"\n", + "markdown": "\"kubeadm: ensured that a variety of API server requests were retried during \"init\", \"join\", \"upgrade\", \"reset\" workflows. Prior to this change, some API server requests, such as creating or updating ConfigMaps, were \"one-shot\" - i.e., they could fail if the API server dropped connectivity for a very short period of time.\"\n ([#123271](https://github.com/kubernetes/kubernetes/pull/123271), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123271", + "pr_number": 123271, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "123272": { + "commit": "e43003195dd680cf380c6e58b8d192fd1da86aae", + "text": "\"cri-api: Implemented KEP-3857: Recursive Read-only (RRO) mounts.\"\n", + "markdown": "\"cri-api: Implemented KEP-3857: Recursive Read-only (RRO) mounts.\"\n ([#123272](https://github.com/kubernetes/kubernetes/pull/123272), [@AkihiroSuda](https://github.com/AkihiroSuda))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3857", + "type": "external" + }, + { + "description": "[Implementation]", + "url": "https://github.com/kubernetes/kubernetes/pull/123180", + "type": "external" + } + ], + "author": "AkihiroSuda", + "author_url": "https://github.com/AkihiroSuda", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123272", + "pr_number": 123272, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123273": { + "commit": "e568a77a931a1cf4239a4a5fa43e2b05bad3abdf", + "text": "\"Added (alpha) support for the `managedBy` field on Jobs. Jobs with a custom value of this field - any value other than `kubernetes.io/job-controller` - were skipped by the job controller, and their reconciliation was delegated to an external controller, indicated by the value of the field. Jobs that didn't have this field at all, or where the field value was the reserved string `kubernetes.io/job-controller`, were reconciled by the built-in job controller.\"\n", + "markdown": "\"Added (alpha) support for the `managedBy` field on Jobs. Jobs with a custom value of this field - any value other than `kubernetes.io/job-controller` - were skipped by the job controller, and their reconciliation was delegated to an external controller, indicated by the value of the field. Jobs that didn't have this field at all, or where the field value was the reserved string `kubernetes.io/job-controller`, were reconciled by the built-in job controller.\"\n ([#123273](https://github.com/kubernetes/kubernetes/pull/123273), [@mimowo](https://github.com/mimowo))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/4368-support-managed-by-for-batch-jobs", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123273", + "pr_number": 123273, + "areas": [ + "test", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "123281": { + "commit": "f7ca532472f035db2aedc8a1f86639dfd1dc596f", + "text": "RemoteCommand feature gates for kubectl exec, cp, and attach over WebSockets are now enabled by default (Beta):\n- Server-side feature gate: `TranslateStreamCloseWebsocketRequests`\n- Client-side (kubectl) feature gate: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS`\n- To disable RemoteCommand over WebSockets for kubectl, the environment variable feature gate must be explicitly set to `false`: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS=false`.\n", + "markdown": "RemoteCommand feature gates for kubectl exec, cp, and attach over WebSockets are now enabled by default (Beta):\n - Server-side feature gate: `TranslateStreamCloseWebsocketRequests`\n - Client-side (kubectl) feature gate: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS`\n - To disable RemoteCommand over WebSockets for kubectl, the environment variable feature gate must be explicitly set to `false`: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS=false`.\n ([#123281](https://github.com/kubernetes/kubernetes/pull/123281), [@seans3](https://github.com/seans3))", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123281", + "pr_number": 123281, + "areas": [ + "test", + "apiserver", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123282": { + "commit": "72c3c7c924ec88bfb852fd75740ed7b0ab915c38", + "text": "Addressed an issue where a JWT authenticator set up via `--authentication-config` would encounter failures in verifying tokens not signed with RS256.", + "markdown": "Addressed an issue where a JWT authenticator set up via `--authentication-config` would encounter failures in verifying tokens not signed with RS256. ([#123282](https://github.com/kubernetes/kubernetes/pull/123282), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123282", + "pr_number": 123282, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "123310": { + "commit": "30a68e4ad40a95c92c8410330f75cbadba6f0206", + "text": "Updated kubedns and nodelocaldns to version `v1.23.0`.", + "markdown": "Updated kubedns and nodelocaldns to version `v1.23.0`. ([#123310](https://github.com/kubernetes/kubernetes/pull/123310), [@bzsuni](https://github.com/bzsuni))", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123310", + "pr_number": 123310, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "is_mapped": true + }, + "123323": { + "commit": "e4ee7b005c1a59c2ba0b3fa3e37b91d2e658d0d1", + "text": "Fixed a bug that an init container with containerRestartPolicy with `Always` cannot update its state from terminated to non-terminated for the pod with restartPolicy with `Never` or `OnFailure`.", + "markdown": "Fixed a bug that an init container with containerRestartPolicy with `Always` cannot update its state from terminated to non-terminated for the pod with restartPolicy with `Never` or `OnFailure`. ([#123323](https://github.com/kubernetes/kubernetes/pull/123323), [@gjkim42](https://github.com/gjkim42))", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123323", + "pr_number": 123323, + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "apps" + ], + "duplicate": true, + "is_mapped": true + }, + "123331": { + "commit": "411c29c39f03687a30a8667295c61590def8fc89", + "text": "When initializing nodes using external cloud-providers, the process now waits for the providerID value to be available before declaring the node ready. This ensures that nodes are not marked as Ready prematurely due to communication errors with the cloud-provider. The providerID and zone labels are necessary for integrations such as load balancers to function correctly. Users can choose to opt out of this behavior by setting the feature flag OptionalProviderID in the cloud-controller-manager.\n", + "markdown": "When initializing nodes using external cloud-providers, the process now waits for the providerID value to be available before declaring the node ready. This ensures that nodes are not marked as Ready prematurely due to communication errors with the cloud-provider. The providerID and zone labels are necessary for integrations such as load balancers to function correctly. Users can choose to opt out of this behavior by setting the feature flag OptionalProviderID in the cloud-controller-manager.\n ([#123331](https://github.com/kubernetes/kubernetes/pull/123331), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123331", + "pr_number": 123331, + "areas": [ + "test", + "cloudprovider", + "provider/gcp" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "123333": { + "commit": "6ff6b519042b40ad9d7710ac132eb4e6231940e1", + "text": "kube-apiserver now reports metrics for authorization decisions in the `apiserver_authorization_decisions_total` metric, labeled by authorizer type, name, and decision.", + "markdown": "Kube-apiserver now reports metrics for authorization decisions in the `apiserver_authorization_decisions_total` metric, labeled by authorizer type, name, and decision. ([#123333](https://github.com/kubernetes/kubernetes/pull/123333), [@liggitt](https://github.com/liggitt))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3221-structured-authorization-configuration", + "type": "KEP" + } + ], + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123333", + "pr_number": 123333, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123341": { + "commit": "03f24068da767d75b681a120be85749dcfe34796", + "text": "\"kubeadm: added the `WaitForAllControlPlaneComponents` feature gate. It could be used to tell kubeadm to wait for all control plane components to be ready when running \"kubeadm init\" or \"kubeadm join --control-plane\". Previously, kubeadm only waited for the kube-apiserver. The \"kubeadm join\" workflow now includes a new experimental phase called \"wait-control-plane\". This phase was marked as non-experimental when WaitForAllControlPlaneComponents became GA. Accordingly, a \"kubeadm init\" phase \"wait-control-plane\" was also available once WaitForAllControlPlaneComponents became GA. These phases could be skipped if the user preferred not to wait for the control plane components.\"\n", + "markdown": "\"kubeadm: added the `WaitForAllControlPlaneComponents` feature gate. It could be used to tell kubeadm to wait for all control plane components to be ready when running \"kubeadm init\" or \"kubeadm join --control-plane\". Previously, kubeadm only waited for the kube-apiserver. The \"kubeadm join\" workflow now includes a new experimental phase called \"wait-control-plane\". This phase was marked as non-experimental when WaitForAllControlPlaneComponents became GA. Accordingly, a \"kubeadm init\" phase \"wait-control-plane\" was also available once WaitForAllControlPlaneComponents became GA. These phases could be skipped if the user preferred not to wait for the control plane components.\"\n ([#123341](https://github.com/kubernetes/kubernetes/pull/123341), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123341", + "pr_number": 123341, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "123343": { + "commit": "d311ce0435131c5c2025a185f65b2c6853f23f0f", + "text": "\"Updated `ImageGCMaxAge` behavior in the kubelet to wait the `MaxAge` duration after the kubelet has restarted before garbage collecting.\"\n", + "markdown": "\"Updated `ImageGCMaxAge` behavior in the kubelet to wait the `MaxAge` duration after the kubelet has restarted before garbage collecting.\"\n ([#123343](https://github.com/kubernetes/kubernetes/pull/123343), [@haircommander](https://github.com/haircommander))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4210", + "type": "KEP" + } + ], + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123343", + "pr_number": 123343, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123344": { + "commit": "28c4d00c7dcc9a72853a4da0885e6fac09a2f40e", + "text": "\"The `StorageVersionMigration` API, previously available as a Custom Resource Definition (CRD), is now a built-in API in Kubernetes.\"\n", + "markdown": "\"The `StorageVersionMigration` API, previously available as a Custom Resource Definition (CRD), is now a built-in API in Kubernetes.\"\n ([#123344](https://github.com/kubernetes/kubernetes/pull/123344), [@nilekhc](https://github.com/nilekhc))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/4192-svm-in-tree", + "type": "KEP" + } + ], + "author": "nilekhc", + "author_url": "https://github.com/nilekhc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123344", + "pr_number": 123344, + "areas": [ + "test", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123345": { + "commit": "5d776f935ca9e7dc85ec15cb6b7497e0f6a96f4d", + "text": "Added a \"reason\" field to the \"image_garbage_collected_total\" metric, allowing administrators to differentiate between images that were collected for reasons \"age\" vs \"space\".\n", + "markdown": "Added a \"reason\" field to the \"image_garbage_collected_total\" metric, allowing administrators to differentiate between images that were collected for reasons \"age\" vs \"space\".\n ([#123345](https://github.com/kubernetes/kubernetes/pull/123345), [@haircommander](https://github.com/haircommander))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4210", + "type": "KEP" + } + ], + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123345", + "pr_number": 123345, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "123366": { + "commit": "bc00c9eef0adcf85784b5f97f09767a54deabe9d", + "text": "Revised node selection based on container image location. The kube-scheduler now considers whether nodes have the required images available for init containers, and for sidecar containers if the cluster has 'SidecarContainers' enabled.", + "markdown": "Revised node selection based on container image location. The kube-scheduler now considers whether nodes have the required images available for init containers, and for sidecar containers if the cluster has 'SidecarContainers' enabled. ([#123366](https://github.com/kubernetes/kubernetes/pull/123366), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123366", + "pr_number": 123366, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "123372": { + "commit": "ec58e1f2fc3b56aa1e9c333598fdfab8d5aa66d1", + "text": "\"kubeadm: Added support for machine-readable output with `-o yaml` and `-o json` to the command `kubeadm certs check-expiration`. This change is introduced in a new API: ``` kind: CertificateExpirationInfo apiVersion: output.kubeadm.k8s.io/v1alpha3 ``` The existing non-structured formatting is preserved. The output API version v1alpha2 is now deprecated and will be removed in a future release. Please migrate to using v1alpha3.\"\n", + "markdown": "\"kubeadm: Added support for machine-readable output with `-o yaml` and `-o json` to the command `kubeadm certs check-expiration`. This change is introduced in a new API: ``` kind: CertificateExpirationInfo apiVersion: output.kubeadm.k8s.io/v1alpha3 ``` The existing non-structured formatting is preserved. The output API version v1alpha2 is now deprecated and will be removed in a future release. Please migrate to using v1alpha3.\"\n ([#123372](https://github.com/kubernetes/kubernetes/pull/123372), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2504", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123372", + "pr_number": 123372, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "123384": { + "commit": "dd1e617ba0b9b45faa94fbcbc03560fed8c0fcf7", + "text": "\"Improved scheduler performance when no scoring plugins were defined.\"\n", + "markdown": "\"Improved scheduler performance when no scoring plugins were defined.\"\n ([#123384](https://github.com/kubernetes/kubernetes/pull/123384), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska))", + "author": "aleksandra-malinowska", + "author_url": "https://github.com/aleksandra-malinowska", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123384", + "pr_number": 123384, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "123385": { + "commit": "87f9b3891e7566aa085645aac4e5e3b4379b4efd", + "text": "Added a alpha feature, behind the `RelaxedEnvironmentVariableValidation` feature gate.\nWhen that gate is enabled, Kubernetes allows almost all printable ASCII characters to be used in the names\nof environment variables for containers in Pods.", + "markdown": "Added a alpha feature, behind the `RelaxedEnvironmentVariableValidation` feature gate.\n When that gate is enabled, Kubernetes allows almost all printable ASCII characters to be used in the names\n of environment variables for containers in Pods. ([#123385](https://github.com/kubernetes/kubernetes/pull/123385), [@HirazawaUi](https://github.com/HirazawaUi))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4369-allow-special-characters-environment-variable", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123385", + "pr_number": 123385, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123405": { + "commit": "2b521e5f8e6b99e84d464d8fa35658aed35bd13c", + "text": "ValidatingAdmissionPolicy was promoted to GA and will be `enabled` by default.", + "markdown": "ValidatingAdmissionPolicy was promoted to GA and will be `enabled` by default. ([#123405](https://github.com/kubernetes/kubernetes/pull/123405), [@cici37](https://github.com/cici37))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3488", + "type": "KEP" + } + ], + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123405", + "pr_number": 123405, + "areas": [ + "test", + "apiserver", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123406": { + "commit": "786510947be11a3adda34653b57eca462f69e8be", + "text": "kubeadm: fixed a bug during kubeadm upgrade, where it is not possible to mount a new device and create a symbolic link for /etc/kubernetes (or a sub-directory) so that kubeadm stores its information on the mounted device.", + "markdown": "Kubeadm: fixed a bug during kubeadm upgrade, where it is not possible to mount a new device and create a symbolic link for /etc/kubernetes (or a sub-directory) so that kubeadm stores its information on the mounted device. ([#123406](https://github.com/kubernetes/kubernetes/pull/123406), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123406", + "pr_number": 123406, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "123412": { + "commit": "364ef335dbd49bfa3d66dbc606c642481d283851", + "text": "\"Added alpha-level support for the SuccessPolicy in Jobs.\"\n", + "markdown": "\"Added alpha-level support for the SuccessPolicy in Jobs.\"\n ([#123412](https://github.com/kubernetes/kubernetes/pull/123412), [@tenzen-y](https://github.com/tenzen-y))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3998-job-success-completion-policy", + "type": "KEP" + } + ], + "author": "tenzen-y", + "author_url": "https://github.com/tenzen-y", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123412", + "pr_number": 123412, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123413": { + "commit": "f745503112e06d6ff199e929d536c6a29825c01a", + "text": "\"kubectl `port-forward` over websockets (tunneling SPDY) can now be enabled using an `Alpha` feature flag environment variable: KUBECTL_PORT_FORWARD_WEBSOCKETS=true. The API Server being communicated to must *also* have an `Alpha` feature flag enabled: PortForwardWebsockets.\"\n", + "markdown": "\"kubectl `port-forward` over websockets (tunneling SPDY) can now be enabled using an `Alpha` feature flag environment variable: KUBECTL_PORT_FORWARD_WEBSOCKETS=true. The API Server being communicated to must *also* have an `Alpha` feature flag enabled: PortForwardWebsockets.\"\n ([#123413](https://github.com/kubernetes/kubernetes/pull/123413), [@seans3](https://github.com/seans3))", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123413", + "pr_number": 123413, + "areas": [ + "test", + "apiserver", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123418": { + "commit": "38638adaee5a51f88cd42152c78117d1bc4f45d5", + "text": "LoadBalancerIPMode feature is now marked as Beta.", + "markdown": "LoadBalancerIPMode feature is now marked as Beta. ([#123418](https://github.com/kubernetes/kubernetes/pull/123418), [@rikatz](https://github.com/rikatz))", + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123418", + "pr_number": 123418, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123424": { + "commit": "cb989b84c82ab8c695d02c9a1866bc27de37caec", + "text": "Promoted the `ImageMaximumGCAge` feature to beta.", + "markdown": "Promoted the `ImageMaximumGCAge` feature to beta. ([#123424](https://github.com/kubernetes/kubernetes/pull/123424), [@haircommander](https://github.com/haircommander))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issue/4210", + "type": "KEP" + } + ], + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123424", + "pr_number": 123424, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123425": { + "commit": "9bc5257c450f7dfda187bfadd96f32310a2eaa18", + "text": "Added feature gate `MutatingAdmissionPolicy` for enabling mutation policy in admission chain.", + "markdown": "Added feature gate `MutatingAdmissionPolicy` for enabling mutation policy in admission chain. ([#123425](https://github.com/kubernetes/kubernetes/pull/123425), [@cici37](https://github.com/cici37))", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123425", + "pr_number": 123425, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "123431": { + "commit": "c726b2b3a3519309afbac68e0358c99977d1c805", + "text": "Structured Authentication Configuration now supports configuring multiple JWT authenticators. The maximum allowed JWT authenticators in the authentication configuration is 64.", + "markdown": "Structured Authentication Configuration now supports configuring multiple JWT authenticators. The maximum allowed JWT authenticators in the authentication configuration is 64. ([#123431](https://github.com/kubernetes/kubernetes/pull/123431), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123431", + "pr_number": 123431, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123435": { + "commit": "bd25605619cbfb46b075002a6db58b4e489fc8cb", + "text": "AppArmor profiles can now be configured through fields on the `PodSecurityContext` and container `SecurityContext`. The beta AppArmor annotations are deprecated, and AppArmor status is no longer included in the node ready condition.", + "markdown": "AppArmor profiles can now be configured through fields on the `PodSecurityContext` and container `SecurityContext`. The beta AppArmor annotations are deprecated, and AppArmor status is no longer included in the node ready condition. ([#123435](https://github.com/kubernetes/kubernetes/pull/123435), [@tallclair](https://github.com/tallclair))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/24-apparmor/", + "type": "KEP" + } + ], + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123435", + "pr_number": 123435, + "areas": [ + "test", + "kubelet", + "apiserver", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123442": { + "commit": "58bbf6991303fa97660beafc74d0d2d6e2c1c623", + "text": "\"`NewVolumeManagerReconstruction` feature is now GA.\"\n", + "markdown": "\"`NewVolumeManagerReconstruction` feature is now GA.\"\n ([#123442](https://github.com/kubernetes/kubernetes/pull/123442), [@jsafrane](https://github.com/jsafrane))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/3756-volume-reconstruction", + "type": "KEP" + } + ], + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123442", + "pr_number": 123442, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123461": { + "commit": "c498177b99fa5f8329a6b75996ab83dfe255b64b", + "text": "\"In kubeadm, in the new output API 'output.kubeadm.k8s.io/v1alpha3', the UpgradePlan structure that is used when calling 'kubeadm upgrade plan ... -o yaml|json' was modified to include a list of multiple available upgrades.\"\n", + "markdown": "\"In kubeadm, in the new output API 'output.kubeadm.k8s.io/v1alpha3', the UpgradePlan structure that is used when calling 'kubeadm upgrade plan ... -o yaml|json' was modified to include a list of multiple available upgrades.\"\n ([#123461](https://github.com/kubernetes/kubernetes/pull/123461), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2504", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123461", + "pr_number": 123461, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "123464": { + "commit": "1b07df8845e12c3e0240119df9d6d4f4a2f57c6d", + "text": "kubeadm: the `bridge-nf-call-iptables=1` and `bridge-nf-call-ip6tables=1` preflight checks are removed since not all the network implementations require this setting, network plugins are responsible for setting this correctly depending on whether or not they connect containers to Linux bridges or use some other mechanism.", + "markdown": "Kubeadm: the `bridge-nf-call-iptables=1` and `bridge-nf-call-ip6tables=1` preflight checks are removed since not all the network implementations require this setting, network plugins are responsible for setting this correctly depending on whether or not they connect containers to Linux bridges or use some other mechanism. ([#123464](https://github.com/kubernetes/kubernetes/pull/123464), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123464", + "pr_number": 123464, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "123475": { + "commit": "872c621bb743818e9623fc6c714369dc6889e19a", + "text": "Fixed bug where providing a FieldPath to a CRD Validation Rule would erroneously affect the reported field path of other unrelated CRD Validation Rules on the same schema.", + "markdown": "Fixed bug where providing a FieldPath to a CRD Validation Rule would erroneously affect the reported field path of other unrelated CRD Validation Rules on the same schema. ([#123475](https://github.com/kubernetes/kubernetes/pull/123475), [@alexzielenski](https://github.com/alexzielenski))", + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123475", + "pr_number": 123475, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "123479": { + "commit": "689dca08e1fc57090e55c1908c3806bdfcaed224", + "text": "Updated the sample-apiserver manifest example to include correct RBAC configurations.", + "markdown": "Updated the sample-apiserver manifest example to include correct RBAC configurations. ([#123479](https://github.com/kubernetes/kubernetes/pull/123479), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123479", + "pr_number": 123479, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "123481": { + "commit": "6929a11f694ee4d6e66a2d12794d9e78cb2d6ab4", + "text": "Graduated support for `minDomains` in pod topology spread constraints, to general availability.\nThe `MinDomainsInPodTopologySpread` feature gate no longer has any effect, and the field is\nalways available within the Pod and PodTemplate APIs.", + "markdown": "Graduated support for `minDomains` in pod topology spread constraints, to general availability.\n The `MinDomainsInPodTopologySpread` feature gate no longer has any effect, and the field is\n always available within the Pod and PodTemplate APIs. ([#123481](https://github.com/kubernetes/kubernetes/pull/123481), [@sanposhiho](https://github.com/sanposhiho))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3022", + "type": "KEP" + } + ], + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123481", + "pr_number": 123481, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123482": { + "commit": "2ec63e0d28951bb525a5bce0d9459afa1c71c0bd", + "text": "Graduated HorizontalPodAutoscaler support for per-container metrics to stable.", + "markdown": "Graduated HorizontalPodAutoscaler support for per-container metrics to stable. ([#123482](https://github.com/kubernetes/kubernetes/pull/123482), [@sanposhiho](https://github.com/sanposhiho))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1610", + "type": "KEP" + } + ], + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123482", + "pr_number": 123482, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "autoscaling", + "apps" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123484": { + "commit": "65d75501f7d7348db1610e755e654b67c6639897", + "text": "Added `client-go` support for upgrading subresource fields from client-side to server-side management.", + "markdown": "Added `client-go` support for upgrading subresource fields from client-side to server-side management. ([#123484](https://github.com/kubernetes/kubernetes/pull/123484), [@erikgb](https://github.com/erikgb))", + "author": "erikgb", + "author_url": "https://github.com/erikgb", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123484", + "pr_number": 123484, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "123487": { + "commit": "a76a3e031fc950a9c2429e611fd0bb00a117b1fc", + "text": "Added a new (alpha) field, `trafficDistribution`, to the Service `spec` to express preferences for traffic distribution to endpoints. Enabled through the `ServiceTrafficDistribution` feature gate.", + "markdown": "Added a new (alpha) field, `trafficDistribution`, to the Service `spec` to express preferences for traffic distribution to endpoints. Enabled through the `ServiceTrafficDistribution` feature gate. ([#123487](https://github.com/kubernetes/kubernetes/pull/123487), [@gauravkghildiyal](https://github.com/gauravkghildiyal))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4444-service-routing-preference", + "type": "KEP" + } + ], + "author": "gauravkghildiyal", + "author_url": "https://github.com/gauravkghildiyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123487", + "pr_number": 123487, + "areas": [ + "kube-proxy", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123492": { + "commit": "a58221c104903c8dfa7f373db219963661a46035", + "text": "\"kubeadm: fixed a bug where \"kubeadm upgrade plan -o yaml|json\" included unneeded output and was missing component config information.\"\n", + "markdown": "\"kubeadm: fixed a bug where \"kubeadm upgrade plan -o yaml|json\" included unneeded output and was missing component config information.\"\n ([#123492](https://github.com/kubernetes/kubernetes/pull/123492), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123492", + "pr_number": 123492, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "123504": { + "commit": "cc5362ebc17e1376fa79b510f7f354dbffe7f92e", + "text": "\"Upgraded metrics server to `v0.7.0`.\"\n", + "markdown": "\"Upgraded metrics server to `v0.7.0`.\"\n ([#123504](https://github.com/kubernetes/kubernetes/pull/123504), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123504", + "pr_number": 123504, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "instrumentation", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "123508": { + "commit": "68a47053d1b797557f304f51c8dc898893250162", + "text": "\"Allowed container runtimes to fix an image garbage collection bug by adding an `image_id` field to the CRI Container message.\"\n", + "markdown": "\"Allowed container runtimes to fix an image garbage collection bug by adding an `image_id` field to the CRI Container message.\"\n ([#123508](https://github.com/kubernetes/kubernetes/pull/123508), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123508", + "pr_number": 123508, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "123516": { + "commit": "7ea3d0245a63fbbba698f1cb939831fe8143db3e", + "text": "\"Dynamic Resource Allocation: DRA drivers can now use \"structured parameters\" to let the scheduler handle claim allocation.\"\n", + "markdown": "\"Dynamic Resource Allocation: DRA drivers can now use \"structured parameters\" to let the scheduler handle claim allocation.\"\n ([#123516](https://github.com/kubernetes/kubernetes/pull/123516), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123516", + "pr_number": 123516, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "release-eng", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "release" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123517": { + "commit": "5d527dcf1265d7fcd0e6c8ec511ce16cc6a40699", + "text": "Patched a leak of a discovery document that would occur when an Aggregated APIService changed its Spec.Service field and did not change it back.", + "markdown": "Patched a leak of a discovery document that would occur when an Aggregated APIService changed its Spec.Service field and did not change it back. ([#123517](https://github.com/kubernetes/kubernetes/pull/123517), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123517", + "pr_number": 123517, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "123520": { + "commit": "9ad2aabc64c767cb8677948ce0114d1f5b396305", + "text": "\"In the Pod API, setting the alpha `procMount` field to `Unmasked` in a container now required setting `spec.hostUsers=false` as well.\"\n", + "markdown": "\"In the Pod API, setting the alpha `procMount` field to `Unmasked` in a container now required setting `spec.hostUsers=false` as well.\"\n ([#123520](https://github.com/kubernetes/kubernetes/pull/123520), [@haircommander](https://github.com/haircommander))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/4265", + "type": "KEP" + } + ], + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123520", + "pr_number": 123520, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123525": { + "commit": "77ecfb7800a5ce6f139818828c8eb49af9c44077", + "text": "The JWT authenticator configuration set via the `--authentication-config` flag is now dynamically reloaded as the file changes on disk.", + "markdown": "The JWT authenticator configuration set via the `--authentication-config` flag is now dynamically reloaded as the file changes on disk. ([#123525](https://github.com/kubernetes/kubernetes/pull/123525), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123525", + "pr_number": 123525, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123527": { + "commit": "ee5eca2a492531139f36201b101e2a7575120337", + "text": "\"Structured Authentication Configuration now supports `DiscoveryURL`. If specified, `discoveryURL` overrides the URL used to fetch discovery information. This is for scenarios where the well-known and jwks endpoints are hosted at a different location than the issuer (such as locally in the cluster).\"\n", + "markdown": "\"Structured Authentication Configuration now supports `DiscoveryURL`. If specified, `discoveryURL` overrides the URL used to fetch discovery information. This is for scenarios where the well-known and jwks endpoints are hosted at a different location than the issuer (such as locally in the cluster).\"\n ([#123527](https://github.com/kubernetes/kubernetes/pull/123527), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123527", + "pr_number": 123527, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123529": { + "commit": "df366107d16aa2e2cdd620be41e592184f379da4", + "text": "The kubernetes repo now uses Go workspaces. This should not impact end users at all, but does have impact for developers of downstream projects. Switching to workspaces caused some breaking changes in the flags to the various k8s.io/code-generator tools. Downstream consumers should look at staging/src/k8s.io/code-generator/kube_codegen.sh to see the changes.", + "markdown": "The kubernetes repo now uses Go workspaces. This should not impact end users at all, but does have impact for developers of downstream projects. Switching to workspaces caused some breaking changes in the flags to the various k8s.io/code-generator tools. Downstream consumers should look at staging/src/k8s.io/code-generator/kube_codegen.sh to see the changes. ([#123529](https://github.com/kubernetes/kubernetes/pull/123529), [@thockin](https://github.com/thockin))", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123529", + "pr_number": 123529, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "release-eng", + "conformance", + "code-generation", + "dependency" + ], + "kinds": [ + "bug", + "cleanup", + "api-change", + "feature" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "apps", + "cli", + "instrumentation", + "testing", + "release", + "architecture", + "cloud-provider" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123532": { + "commit": "5b6d8a42931fd0eb7ba762cd46ad1655e46018a5", + "text": "Prevented watch cache starvation by moving its watch to separate RPC. Added a `SeparateCacheWatchRPC` feature flag to disable this behavior.", + "markdown": "Prevented watch cache starvation by moving its watch to separate RPC. Added a `SeparateCacheWatchRPC` feature flag to disable this behavior. ([#123532](https://github.com/kubernetes/kubernetes/pull/123532), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123532", + "pr_number": 123532, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "123540": { + "commit": "236f1b0f6b4cbb7e372a72d181c6285bdaf74873", + "text": "JWTs used in service account and OIDC authentication are now strictly parsed to confirm that they use compact serialization. Other encodings were not previously accepted, but would result in different unspecific errors.", + "markdown": "JWTs used in service account and OIDC authentication are now strictly parsed to confirm that they use compact serialization. Other encodings were not previously accepted, but would result in different unspecific errors. ([#123540](https://github.com/kubernetes/kubernetes/pull/123540), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123540", + "pr_number": 123540, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "is_mapped": true + }, + "123543": { + "commit": "df1eccae38799ea0a361a7a0626ae1fe5c1e7c4d", + "text": "ValidatingAdmissionPolicy now exclude TokenReview, SelfSubjectReview, LocalSubjectAccessReview, and SubjectAccessReview from all versions of authentication.k8s.io and authorization.k8s.io group.", + "markdown": "ValidatingAdmissionPolicy now exclude TokenReview, SelfSubjectReview, LocalSubjectAccessReview, and SubjectAccessReview from all versions of authentication.k8s.io and authorization.k8s.io group. ([#123543](https://github.com/kubernetes/kubernetes/pull/123543), [@jiahuif](https://github.com/jiahuif))", + "documentation": [ + { + "description": "[Discussion]: \u003c", + "url": "https://github.com/kubernetes/kubernetes/issues/122205#issuecomment-1941957179\u003e", + "type": "external" + } + ], + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123543", + "pr_number": 123543, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123555": { + "commit": "d8122df1b73d0d92ebc32a7be9d8128d33f13dab", + "text": "kubeadm: avoided uploading a defaulted flag value \"--authorization-mode=Node,RBAC\" for the kube-apiserver in the ClusterConfiguration stored in the \"kube-system/kubeadm-config\" ConfigMap. \"Node,RBAC\" are already the kubeadm defaults for this flag, so this action is redundant.", + "markdown": "Kubeadm: avoided uploading a defaulted flag value \"--authorization-mode=Node,RBAC\" for the kube-apiserver in the ClusterConfiguration stored in the \"kube-system/kubeadm-config\" ConfigMap. \"Node,RBAC\" are already the kubeadm defaults for this flag, so this action is redundant. ([#123555](https://github.com/kubernetes/kubernetes/pull/123555), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123555", + "pr_number": 123555, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "123560": { + "commit": "6cc77a577e56c68e4fde81865e022e05e8e02538", + "text": "\"Promoted `AdmissionWebhookMatchConditions` to GA. The feature is now stable, and the feature gate is now locked to default.\"\n", + "markdown": "\"Promoted `AdmissionWebhookMatchConditions` to GA. The feature is now stable, and the feature gate is now locked to default.\"\n ([#123560](https://github.com/kubernetes/kubernetes/pull/123560), [@ivelichkovich](https://github.com/ivelichkovich))", + "documentation": [ + { + "description": "[KEP]: [\u003clink\u003e](", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-api-machinery/3716-admission-webhook-match-conditions)", + "type": "KEP" + } + ], + "author": "ivelichkovich", + "author_url": "https://github.com/ivelichkovich", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123560", + "pr_number": 123560, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123561": { + "commit": "26600b17abcbeadf7f759a66b9b5ea5d8cc7a62a", + "text": "The API server now detects and fails on startup if there are conflicting issuers between JWT authenticators and service account configurations. Previously, such configurations would run but could be inconsistently effective depending on the credential.", + "markdown": "The API server now detects and fails on startup if there are conflicting issuers between JWT authenticators and service account configurations. Previously, such configurations would run but could be inconsistently effective depending on the credential. ([#123561](https://github.com/kubernetes/kubernetes/pull/123561), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123561", + "pr_number": 123561, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123562": { + "commit": "fe8a12d264c88ac3cd0fb97d73c936de3fdd9788", + "text": "\"Fixed CEL estimated cost for expressions that perform operations on the result of `map()` operations (e.g., `.map(...).exists(...)` ) to have the correct estimated cost instead of an unbounded cost.\"\n", + "markdown": "\"Fixed CEL estimated cost for expressions that perform operations on the result of `map()` operations (e.g., `.map(...).exists(...)` ) to have the correct estimated cost instead of an unbounded cost.\"\n ([#123562](https://github.com/kubernetes/kubernetes/pull/123562), [@jpbetz](https://github.com/jpbetz))", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123562", + "pr_number": 123562, + "areas": [ + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "123565": { + "commit": "6f42da171b952cb502245a25bbba3c384df3aeb7", + "text": "\"Accepted zero as a default value for `kubectl create` token duration.\"\n", + "markdown": "\"Accepted zero as a default value for `kubectl create` token duration.\"\n ([#123565](https://github.com/kubernetes/kubernetes/pull/123565), [@ah8ad3](https://github.com/ah8ad3))", + "author": "ah8ad3", + "author_url": "https://github.com/ah8ad3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123565", + "pr_number": 123565, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "123568": { + "commit": "50f4b1ea471c0dbfc5a60d396619405aaf352e62", + "text": "OIDC authentication will now fail if the username asserted based on a CEL expression config is the empty string. Previously the request would be authenticated with the username set to the empty string.", + "markdown": "OIDC authentication will now fail if the username asserted based on a CEL expression config is the empty string. Previously the request would be authenticated with the username set to the empty string. ([#123568](https://github.com/kubernetes/kubernetes/pull/123568), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123568", + "pr_number": 123568, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123570": { + "commit": "fc4613f996a0d57dc82b793804026c1b6023534f", + "text": "OpenAPI V2 will no longer publish aggregated API server OpenAPI for group versions that do not match the APIService specified group version.", + "markdown": "OpenAPI V2 will no longer publish aggregated API server OpenAPI for group versions that do not match the APIService specified group version. ([#123570](https://github.com/kubernetes/kubernetes/pull/123570), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123570", + "pr_number": 123570, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "123575": { + "commit": "e4a14fe0f5a3ffc6057ead6dd6f4dc722718d84c", + "text": "Graduated pod scheduling gates to general availability.\nThe `PodSchedulingReadiness` feature gate no longer has any effect, and the\n`.spec.schedulingGates` field is always available within the Pod and PodTemplate APIs.", + "markdown": "Graduated pod scheduling gates to general availability.\n The `PodSchedulingReadiness` feature gate no longer has any effect, and the\n `.spec.schedulingGates` field is always available within the Pod and PodTemplate APIs. ([#123575](https://github.com/kubernetes/kubernetes/pull/123575), [@Huang-Wei](https://github.com/Huang-Wei))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3521-pod-scheduling-readiness", + "type": "KEP" + } + ], + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123575", + "pr_number": 123575, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "node", + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123578": { + "commit": "7c11cc9cfcdc54a7ca4efdc10609bf421bfa54d4", + "text": "Kubeadm now prints all the kubelets and nodes that need to be upgraded when running \"upgrade plan\".\n", + "markdown": "Kubeadm now prints all the kubelets and nodes that need to be upgraded when running \"upgrade plan\".\n ([#123578](https://github.com/kubernetes/kubernetes/pull/123578), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123578", + "pr_number": 123578, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "123593": { + "commit": "89cbd94e68ae80414dea7c14c1694e5e378a188d", + "text": "Kubelet now supports configuring the IDs used to create user namespaces.\n", + "markdown": "Kubelet now supports configuring the IDs used to create user namespaces.\n ([#123593](https://github.com/kubernetes/kubernetes/pull/123593), [@giuseppe](https://github.com/giuseppe))", + "author": "giuseppe", + "author_url": "https://github.com/giuseppe", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123593", + "pr_number": 123593, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "123599": { + "commit": "3df07e446b8c0befab3551c3001c71340710751c", + "text": "\"Bumped cAdvisor to `v0.49.0`.\"\n", + "markdown": "\"Bumped cAdvisor to `v0.49.0`.\"\n ([#123599](https://github.com/kubernetes/kubernetes/pull/123599), [@bobbypage](https://github.com/bobbypage))", + "author": "bobbypage", + "author_url": "https://github.com/bobbypage", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123599", + "pr_number": 123599, + "areas": [ + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "123611": { + "commit": "3e1da218014b5a4e5c95ee79404093302104438b", + "text": "\"kube-apiserver now reported the following metrics for authorization webhook match conditions: - `apiserver_authorization_match_condition_evaluation_errors_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_exclusions_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_evaluation_seconds` histogram metric labeled by authorizer type and name.\"\n", + "markdown": "\"kube-apiserver now reported the following metrics for authorization webhook match conditions: - `apiserver_authorization_match_condition_evaluation_errors_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_exclusions_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_evaluation_seconds` histogram metric labeled by authorizer type and name.\"\n ([#123611](https://github.com/kubernetes/kubernetes/pull/123611), [@ritazh](https://github.com/ritazh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3221-structured-authorization-configuration", + "type": "KEP" + } + ], + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123611", + "pr_number": 123611, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123639": { + "commit": "46a2137c1ba017970c316c0ec10c074cb6450732", + "text": "kube-apiserver: Authorization webhooks now report the following metrics:\n- apiserver_authorization_webhook_evaluations_total\n- apiserver_authorization_webhook_duration_seconds\n- apiserver_authorization_webhook_evaluations_fail_open_total", + "markdown": "Kube-apiserver: Authorization webhooks now report the following metrics:\n - apiserver_authorization_webhook_evaluations_total\n - apiserver_authorization_webhook_duration_seconds\n - apiserver_authorization_webhook_evaluations_fail_open_total ([#123639](https://github.com/kubernetes/kubernetes/pull/123639), [@liggitt](https://github.com/liggitt))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3221", + "type": "external" + } + ], + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123639", + "pr_number": 123639, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123640": { + "commit": "8674282a054d3ae32e2e009dab6f8a0da3689828", + "text": "kube-apiserver: the AuthorizationConfiguration type accepted in `--authorization-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`.", + "markdown": "Kube-apiserver: the AuthorizationConfiguration type accepted in `--authorization-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`. ([#123640](https://github.com/kubernetes/kubernetes/pull/123640), [@liggitt](https://github.com/liggitt))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3221", + "type": "external" + } + ], + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123640", + "pr_number": 123640, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123641": { + "commit": "699984f25a80a39bbb112e657f08d76779cdc3a0", + "text": "\"kube-apiserver: The StructuredAuthorizationConfiguration feature gate has been promoted to beta and now allows the use of the `--authorization-configuration` flag.\"\n", + "markdown": "\"kube-apiserver: The StructuredAuthorizationConfiguration feature gate has been promoted to beta and now allows the use of the `--authorization-configuration` flag.\"\n ([#123641](https://github.com/kubernetes/kubernetes/pull/123641), [@liggitt](https://github.com/liggitt))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3221", + "type": "external" + } + ], + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123641", + "pr_number": 123641, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123654": { + "commit": "e798fa67b510b857b3ec25c89a5bd6b06959f57a", + "text": "[kubeadam][structured authz] avoided setting default `--authorization-mode` when `--authorization-config` is provided", + "markdown": "[kubeadam][structured authz] avoided setting default `--authorization-mode` when `--authorization-config` is provided ([#123654](https://github.com/kubernetes/kubernetes/pull/123654), [@LiorLieberman](https://github.com/LiorLieberman))", + "author": "LiorLieberman", + "author_url": "https://github.com/LiorLieberman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123654", + "pr_number": 123654, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "123667": { + "commit": "9043ce05c125091c0cb5519206fd90d311abd8c8", + "text": "Added the `access_mode` label to `volume_manager_selinux_*` metrics.", + "markdown": "Added the `access_mode` label to `volume_manager_selinux_*` metrics. ([#123667](https://github.com/kubernetes/kubernetes/pull/123667), [@jsafrane](https://github.com/jsafrane))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling", + "type": "KEP" + } + ], + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123667", + "pr_number": 123667, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123674": { + "commit": "3409f0594c94185010217f3e5156c1de9f08b405", + "text": "\"Fixed a non-recursive list returning \"resource version too high\" error when consistent listing from cache is enabled.\"\n", + "markdown": "\"Fixed a non-recursive list returning \"resource version too high\" error when consistent listing from cache is enabled.\"\n ([#123674](https://github.com/kubernetes/kubernetes/pull/123674), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123674", + "pr_number": 123674, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "123676": { + "commit": "89b1db79d75e367f567ea06c0528ef4b8f3fecb4", + "text": "Fixed enabling consistent list from watch cache that used to work for resourceVersion=0", + "markdown": "Fixed enabling consistent list from watch cache that used to work for resourceVersion=0 ([#123676](https://github.com/kubernetes/kubernetes/pull/123676), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123676", + "pr_number": 123676, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "123696": { + "commit": "05cb0a55c88e0cdcfe2fb184328ad9be53e94d5c", + "text": "\"kube-apiserver: the AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`.\"\n", + "markdown": "\"kube-apiserver: the AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`.\"\n ([#123696](https://github.com/kubernetes/kubernetes/pull/123696), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123696", + "pr_number": 123696, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123713": { + "commit": "751e3e9745e3e95016d0137e04c1dcaf60b78314", + "text": "The initialization of nodes using external cloud providers now waits for the providerID value to be available before untainting it. This ensures that nodes are not declared Ready without necessary information such as the providerID and zone labels, which are required for integrations like load balancers to function correctly. Cloud providers that do not implement the GetInstanceProviderID method will not require the providerID to be set and will not fail to initialize the node for backward compatibility.", + "markdown": "The initialization of nodes using external cloud providers now waits for the providerID value to be available before untainting it. This ensures that nodes are not declared Ready without necessary information such as the providerID and zone labels, which are required for integrations like load balancers to function correctly. Cloud providers that do not implement the GetInstanceProviderID method will not require the providerID to be set and will not fail to initialize the node for backward compatibility. ([#123713](https://github.com/kubernetes/kubernetes/pull/123713), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123713", + "pr_number": 123713, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider" + ], + "is_mapped": true + }, + "123719": { + "commit": "8f80e0146726c42edefdfaeda6123872a5ec0981", + "text": "The `StructuredAuthenticationConfiguration` feature is now beta and enabled.", + "markdown": "The `StructuredAuthenticationConfiguration` feature is now beta and enabled. ([#123719](https://github.com/kubernetes/kubernetes/pull/123719), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123719", + "pr_number": 123719, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123730": { + "commit": "695072027d77b4e142e61caeaed6142b40f7b02e", + "text": "DRA: ResourceClaim and PodSchedulingContext status updates no longer allow changing object meta data.", + "markdown": "DRA: ResourceClaim and PodSchedulingContext status updates no longer allow changing object meta data. ([#123730](https://github.com/kubernetes/kubernetes/pull/123730), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123730", + "pr_number": 123730, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "123737": { + "commit": "9a160fa7808755fddd5fe8573040bef4d2ba7a0c", + "text": "\"When configuring a JWT authenticator:\n\nIf `username.expression` used 'claims.email', then 'claims.email_verified' must have been used in `username.expression` or `extra[*].valueExpression` or `claimValidationRules[*].expression`. An example claim validation rule expression that matches the validation automatically applied when `username.claim` is set to 'email' is 'claims.?email_verified.orValue(true)'.\"\n", + "markdown": "\"When configuring a JWT authenticator:\n \n If `username.expression` used 'claims.email', then 'claims.email_verified' must have been used in `username.expression` or `extra[*].valueExpression` or `claimValidationRules[*].expression`. An example claim validation rule expression that matches the validation automatically applied when `username.claim` is set to 'email' is 'claims.?email_verified.orValue(true)'.\"\n ([#123737](https://github.com/kubernetes/kubernetes/pull/123737), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123737", + "pr_number": 123737, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123738": { + "commit": "546f7c30860dcdecb75c544230a1b7cdf5bd5958", + "text": "\"Kubelet would fail if NodeSwap was used with LimitedSwap and cgroupv1 node.\"\n", + "markdown": "\"Kubelet would fail if NodeSwap was used with LimitedSwap and cgroupv1 node.\"\n ([#123738](https://github.com/kubernetes/kubernetes/pull/123738), [@kannon92](https://github.com/kannon92))", + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123738", + "pr_number": 123738, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123750": { + "commit": "e0621034bedeeabe83383e5c300cf2d4fb616f36", + "text": "Kubernetes is now built with Go `1.22.1`.", + "markdown": "Kubernetes is now built with Go `1.22.1`. ([#123750](https://github.com/kubernetes/kubernetes/pull/123750), [@cpanato](https://github.com/cpanato))", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123750", + "pr_number": 123750, + "areas": [ + "test", + "security", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "release" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123758": { + "commit": "a5f5f44157c49fdfb6384862c7cb34c2ddbd4cce", + "text": "Updated google.golang.org/protobuf to `v1.33.0` to resolve `CVE-2024-24786`.", + "markdown": "Updated google.golang.org/protobuf to `v1.33.0` to resolve `CVE-2024-24786`. ([#123758](https://github.com/kubernetes/kubernetes/pull/123758), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123758", + "pr_number": 123758, + "areas": [ + "security", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "storage", + "node", + "api-machinery", + "cluster-lifecycle", + "auth", + "cli", + "instrumentation", + "architecture", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "123793": { + "commit": "09093f270aa811c2c49ea45868989ad5b6eb8a53", + "text": "\"kube-apiserver: JWT authenticator now reports the following metrics: - apiserver_authentication_config_controller_automatic_reloads_total - apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds\"\n", + "markdown": "\"kube-apiserver: JWT authenticator now reports the following metrics: - apiserver_authentication_config_controller_automatic_reloads_total - apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds\"\n ([#123793](https://github.com/kubernetes/kubernetes/pull/123793), [@aramase](https://github.com/aramase))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123793", + "pr_number": 123793, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123935": { + "commit": "a1605fb3dd2d45474751ec3de30633ac1ec15c41", + "text": "kube-apiserver: Fixed a `1.27`+ regression in watch stability by serving watch requests without a `resourceVersion` from the watch cache by default, as in \u003c`1.27` (disabling the change in PR 115096 by default). This mitigates the impact of an etcd watch bug (https://github.com/etcd-io/etcd/pull/17555). If the 1.27 change in PR 115096 to serve these requests from underlying storage is still desired despite the impact on watch stability, it can be re-enabled with a `WatchFromStorageWithoutResourceVersion` feature gate.", + "markdown": "Kube-apiserver: Fixed a `1.27`+ regression in watch stability by serving watch requests without a `resourceVersion` from the watch cache by default, as in \u003c`1.27` (disabling the change in PR 115096 by default). This mitigates the impact of an etcd watch bug (https://github.com/etcd-io/etcd/pull/17555). If the 1.27 change in PR 115096 to serve these requests from underlying storage is still desired despite the impact on watch stability, it can be re-enabled with a `WatchFromStorageWithoutResourceVersion` feature gate. ([#123935](https://github.com/kubernetes/kubernetes/pull/123935), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123935", + "pr_number": 123935, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "etcd" + ], + "duplicate": true, + "is_mapped": true + }, + "124001": { + "commit": "a309fadbac3339bc8db9ae0a928a33b8e81ef10f", + "text": "Reverted the change to \"support sharing waitingPods across different scheduler profiles\".", + "markdown": "Reverted the change to \"support sharing waitingPods across different scheduler profiles\". ([#124001](https://github.com/kubernetes/kubernetes/pull/124001), [@kerthcet](https://github.com/kerthcet))", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124001", + "pr_number": 124001, + "kinds": [ + "flake", + "failing-test" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124283": { + "commit": "fb5140f562289f3ffe596b4a3af4650b850a0941", + "text": "Renamed Label cluster to `storage_cluster_id` for `apiserver_storage_size_bytes metric`", + "markdown": "Renamed Label cluster to `storage_cluster_id` for `apiserver_storage_size_bytes metric`", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124283", + "pr_number": 124283, + "areas": [ + "apiserver", + "stable-metrics", + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing", + "instrumentation" + ], + "duplicate_kind": true, + "is_mapped": false + }, + "123342": { + "commit": "f38852768e312fe7b9775b92f7228371a0a96f90", + "text": "Bumped the stability level of apiserver_storage_size_bytes to `STABLE`", + "markdown": "Bumped the stability level of apiserver_storage_size_bytes to `STABLE`", + "author": "logicalhan", + "author_url": "https://github.com/logicalhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123342", + "pr_number": 123342, + "areas": [ + "apiserver", + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate_kind": true, + "is_mapped": false + } +} diff --git a/releases/release-1.30/release-notes/release-notes-draft.md b/releases/release-1.30/release-notes/release-notes-draft.md index f051a0ebf87..f1ba55c11fb 100644 --- a/releases/release-1.30/release-notes/release-notes-draft.md +++ b/releases/release-1.30/release-notes/release-notes-draft.md @@ -1,411 +1,411 @@ -## What's New (Major Themes) - -Major themes for Kubernetes v1.30 _Uwubernetes_ have been published in the [release announcement](https://kubernetes.io/blog/2024/04/17/kubernetes-v1-30-release/), which also contains additional information on the release. - -## Changes by Kind - -### Deprecation - -- kubectl: Removed the deprecated flag `prune-whitelist` for apply. Please use the flag `prune-allowlist` instead. - ([#120246](https://github.com/kubernetes/kubernetes/pull/120246), [@pacoxu](https://github.com/pacoxu)) -- The deprecated `SecurityContextDeny` admission plugin, which has been deprecated since `v1.27`, has been removed. It is recommended to use the Pod Security Admission plugin instead, which has been available since v1.25. Refer to the [Kubernetes documentation](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#securitycontextdeny) for more information. - ([#122612](https://github.com/kubernetes/kubernetes/pull/122612), [@mtardy](https://github.com/mtardy)) - -### API Change - -- Added (alpha) support for the `managedBy` field on Jobs. Jobs with a custom value of this field - any value other than `kubernetes.io/job-controller` - were skipped by the job controller, and their reconciliation was delegated to an external controller, indicated by the value of the field. Jobs that didn't have this field at all, or where the field value was the reserved string `kubernetes.io/job-controller`, were reconciled by the built-in job controller. - ([#123273](https://github.com/kubernetes/kubernetes/pull/123273), [@mimowo](https://github.com/mimowo)) -- Added alpha-level support for the SuccessPolicy in Jobs. - ([#123412](https://github.com/kubernetes/kubernetes/pull/123412), [@tenzen-y](https://github.com/tenzen-y)) -- Added the `CEL` library for IP Addresses and CIDRs. This was made available for use starting from version `1.31`. - ([#121912](https://github.com/kubernetes/kubernetes/pull/121912), [@JoelSpeed](https://github.com/JoelSpeed)) -- Allowed container runtimes to fix an image garbage collection bug by adding an `image_id` field to the CRI Container message. - ([#123508](https://github.com/kubernetes/kubernetes/pull/123508), [@saschagrunert](https://github.com/saschagrunert)) -- Dynamic Resource Allocation: DRA drivers can now use "structured parameters" to let the scheduler handle claim allocation. - ([#123516](https://github.com/kubernetes/kubernetes/pull/123516), [@pohly](https://github.com/pohly)) -- Fixed accidental enablement of the new alpha `optionalOldSelf` API field in `CustomResourceDefinition` validation rules, which should only have been allowed to be set when the `CRDValidationRatcheting` feature gate is enabled. - ([#122329](https://github.com/kubernetes/kubernetes/pull/122329), [@jpbetz](https://github.com/jpbetz)) -- Implemented the `prescore` extension point for the `volumeBinding` plugin. It now returns skip if it doesn't do anything in Score. - ([#115768](https://github.com/kubernetes/kubernetes/pull/115768), [@AxeZhan](https://github.com/AxeZhan)) -- Kubelet would fail if NodeSwap was used with LimitedSwap and cgroupv1 node. - ([#123738](https://github.com/kubernetes/kubernetes/pull/123738), [@kannon92](https://github.com/kannon92)) -- Promoted `AdmissionWebhookMatchConditions` to GA. The feature is now stable, and the feature gate is now locked to default. - ([#123560](https://github.com/kubernetes/kubernetes/pull/123560), [@ivelichkovich](https://github.com/ivelichkovich)) -- Structured Authentication Configuration now supports `DiscoveryURL`. If specified, `discoveryURL` overrides the URL used to fetch discovery information. This is for scenarios where the well-known and jwks endpoints are hosted at a different location than the issuer (such as locally in the cluster). - ([#123527](https://github.com/kubernetes/kubernetes/pull/123527), [@aramase](https://github.com/aramase)) -- The `StorageVersionMigration` API, previously available as a Custom Resource Definition (CRD), is now a built-in API in Kubernetes. - ([#123344](https://github.com/kubernetes/kubernetes/pull/123344), [@nilekhc](https://github.com/nilekhc)) -- When configuring a JWT authenticator: - - If `username.expression` used 'claims.email', then 'claims.email_verified' must have been used in `username.expression` or `extra[*].valueExpression` or `claimValidationRules[*].expression`. An example claim validation rule expression that matches the validation automatically applied when `username.claim` is set to 'email' is 'claims.?email_verified.orValue(true)'. - ([#123737](https://github.com/kubernetes/kubernetes/pull/123737), [@enj](https://github.com/enj)) -- `readOnly` volumes now support recursive read-only mounts for kernel versions >= 5.12." - ([#123180](https://github.com/kubernetes/kubernetes/pull/123180), [@AkihiroSuda](https://github.com/AkihiroSuda)) -- cri-api: Implemented KEP-3857: Recursive Read-only (RRO) mounts. - ([#123272](https://github.com/kubernetes/kubernetes/pull/123272), [@AkihiroSuda](https://github.com/AkihiroSuda)) -- kube-apiserver: the AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`. - ([#123696](https://github.com/kubernetes/kubernetes/pull/123696), [@aramase](https://github.com/aramase)) -- kubelet allowed specifying a custom root directory for pod logs (instead of the default /var/log/pods) using the `podLogsDir` key in kubelet configuration. - ([#112957](https://github.com/kubernetes/kubernetes/pull/112957), [@mxpv](https://github.com/mxpv)) -- resource.k8s.io/ResourceClaim (alpha API): The strategic merge patch strategy for the `status.reservedFor` array was changed so that a strategic-merge-patch can now add individual entries. This change may break clients using strategic merge patch to update status, which rely on the previous behavior (replacing the entire array). - ([#122276](https://github.com/kubernetes/kubernetes/pull/122276), [@pohly](https://github.com/pohly)) -- Added a CBOR implementation of `runtime.Serializer`. Until CBOR graduates to Alpha, API servers will refuse to start if configured with CBOR support. ([#122881](https://github.com/kubernetes/kubernetes/pull/122881), [@benluddy](https://github.com/benluddy)) -- Added a alpha feature, behind the `RelaxedEnvironmentVariableValidation` feature gate. - When that gate is enabled, Kubernetes allows almost all printable ASCII characters to be used in the names - of environment variables for containers in Pods. ([#123385](https://github.com/kubernetes/kubernetes/pull/123385), [@HirazawaUi](https://github.com/HirazawaUi)) -- Added a new (alpha) field, `trafficDistribution`, to the Service `spec` to express preferences for traffic distribution to endpoints. Enabled through the `ServiceTrafficDistribution` feature gate. ([#123487](https://github.com/kubernetes/kubernetes/pull/123487), [@gauravkghildiyal](https://github.com/gauravkghildiyal)) -- Added audienceMatchPolicy field to AuthenticationConfiguration and support for configuring multiple audiences. - The "audienceMatchPolicy" can be empty (or unset) when a single audience is specified in the "audiences" field. - The "audienceMatchPolicy" must be set to "MatchAny" when multiple audiences are specified in the "audiences" field. ([#123165](https://github.com/kubernetes/kubernetes/pull/123165), [@aramase](https://github.com/aramase)) -- Added consistent vanity import to files and provided tooling for verifying and updating them. ([#120642](https://github.com/kubernetes/kubernetes/pull/120642), [@jcchavezs](https://github.com/jcchavezs)) -- Added the `disable-force-detach` CLI option for `kube-controller-manager`. By default, it's set to `false`. When enabled, it prevents force detaching volumes based on maximum unmount time and node status. If activated, the non-graceful node shutdown feature must be used to recover from node failure. Additionally, if a pod needs to be forcibly terminated at the risk of corruption, the appropriate VolumeAttachment object must be deleted. ([#120344](https://github.com/kubernetes/kubernetes/pull/120344), [@rohitssingh](https://github.com/rohitssingh)) -- Added to `MutableFeatureGate` the ability to override the default setting of feature gates, to allow default-enabling a feature on a component-by-component basis instead of for all affected components simultaneously. ([#122647](https://github.com/kubernetes/kubernetes/pull/122647), [@benluddy](https://github.com/benluddy)) -- Aggregated discovery supports both `v2beta1` and v2 types and feature is promoted to GA. ([#122882](https://github.com/kubernetes/kubernetes/pull/122882), [@Jefftree](https://github.com/Jefftree)) -- Alpha support for field selectors on custom resources has been added. With the `CustomResourceFieldSelectors` feature gate enabled, the CustomResourceDefinition API now allows specifying `selectableFields`. Listing a field there enables filtering custom resources for that CustomResourceDefinition in list or watch requests. ([#122717](https://github.com/kubernetes/kubernetes/pull/122717), [@jpbetz](https://github.com/jpbetz)) -- AppArmor profiles can now be configured through fields on the `PodSecurityContext` and container `SecurityContext`. The beta AppArmor annotations are deprecated, and AppArmor status is no longer included in the node ready condition. ([#123435](https://github.com/kubernetes/kubernetes/pull/123435), [@tallclair](https://github.com/tallclair)) -- Contextual logging is now in beta and enabled by default. Check out the [KEP](https://github.com/kubernetes/enhancements/issues/3077) and [official documentation](https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) for more details. ([#122589](https://github.com/kubernetes/kubernetes/pull/122589), [@pohly](https://github.com/pohly)) -- Enabled concurrent log rotation in kubelet. You can now configure the maximum number of concurrent rotations with the `containerLogMaxWorkers` setting, and adjust the monitoring interval with `containerLogMonitorInterval`. ([#114301](https://github.com/kubernetes/kubernetes/pull/114301), [@harshanarayana](https://github.com/harshanarayana)) -- Graduated pod scheduling gates to general availability. - The `PodSchedulingReadiness` feature gate no longer has any effect, and the - `.spec.schedulingGates` field is always available within the Pod and PodTemplate APIs. ([#123575](https://github.com/kubernetes/kubernetes/pull/123575), [@Huang-Wei](https://github.com/Huang-Wei)) -- Graduated support for `minDomains` in pod topology spread constraints, to general availability. - The `MinDomainsInPodTopologySpread` feature gate no longer has any effect, and the field is - always available within the Pod and PodTemplate APIs. ([#123481](https://github.com/kubernetes/kubernetes/pull/123481), [@sanposhiho](https://github.com/sanposhiho)) -- In kubelet configuration, the `.memorySwap.swapBehavior` field now accepts a new value `NoSwap`, which becomes the default if unspecified. The previously accepted `UnlimitedSwap` value has been dropped. - ([#122745](https://github.com/kubernetes/kubernetes/pull/122745), [@kannon92](https://github.com/kannon92)) -- Kube-apiserver: the AuthorizationConfiguration type accepted in `--authorization-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`. ([#123640](https://github.com/kubernetes/kubernetes/pull/123640), [@liggitt](https://github.com/liggitt)) -- OIDC authentication will now fail if the username asserted based on a CEL expression config is the empty string. Previously the request would be authenticated with the username set to the empty string. ([#123568](https://github.com/kubernetes/kubernetes/pull/123568), [@enj](https://github.com/enj)) -- Removed note that `hostAliases` are not supported on hostNetwork Pods from the PodSpec API. The feature has been supported since v1.8. ([#122422](https://github.com/kubernetes/kubernetes/pull/122422), [@neolit123](https://github.com/neolit123)) -- Structured Authentication Configuration now supports configuring multiple JWT authenticators. The maximum allowed JWT authenticators in the authentication configuration is 64. ([#123431](https://github.com/kubernetes/kubernetes/pull/123431), [@aramase](https://github.com/aramase)) -- Text logging in Kubernetes components now uses [textlogger](https://pkg.go.dev/k8s.io/klog/v2@v2.120.0/textlogger). The same split streams of info and error log entries with buffering of info entries is now also supported for text output (off by default, alpha feature). Previously, this was only supported for JSON. Performance is better also without split streams. ([#114672](https://github.com/kubernetes/kubernetes/pull/114672), [@pohly](https://github.com/pohly)) -- The API server now detects and fails on startup if there are conflicting issuers between JWT authenticators and service account configurations. Previously, such configurations would run but could be inconsistently effective depending on the credential. ([#123561](https://github.com/kubernetes/kubernetes/pull/123561), [@enj](https://github.com/enj)) -- The JWT authenticator configuration set via the `--authentication-config` flag is now dynamically reloaded as the file changes on disk. ([#123525](https://github.com/kubernetes/kubernetes/pull/123525), [@enj](https://github.com/enj)) -- The `StructuredAuthenticationConfiguration` feature is now beta and enabled. ([#123719](https://github.com/kubernetes/kubernetes/pull/123719), [@enj](https://github.com/enj)) -- The `kube_codegen` tool now ignores the vendor folder during code generation. - ([#122729](https://github.com/kubernetes/kubernetes/pull/122729), [@jparrill](https://github.com/jparrill)) -- The kubernetes repo now uses Go workspaces. This should not impact end users at all, but does have impact for developers of downstream projects. Switching to workspaces caused some breaking changes in the flags to the various k8s.io/code-generator tools. Downstream consumers should look at staging/src/k8s.io/code-generator/kube_codegen.sh to see the changes. ([#123529](https://github.com/kubernetes/kubernetes/pull/123529), [@thockin](https://github.com/thockin)) -- Updated an audit annotation key used by the `…/serviceaccounts/<name>/token` resource handler. - The annotation used to persist the issued credential identifier is now `authentication.kubernetes.io/issued-credential-id`. ([#123098](https://github.com/kubernetes/kubernetes/pull/123098), [@munnerz](https://github.com/munnerz)) [SIG Auth] -- Users are now allowed to mutate `FSGroupPolicy` and `PodInfoOnMount` in `CSIDriver.Spec`. ([#116209](https://github.com/kubernetes/kubernetes/pull/116209), [@haoruan](https://github.com/haoruan)) -- ValidatingAdmissionPolicy was promoted to GA and will be `enabled` by default. ([#123405](https://github.com/kubernetes/kubernetes/pull/123405), [@cici37](https://github.com/cici37)) -- When scheduling a mix of pods using `ResourceClaims` and others that don't, scheduling a pod with `ResourceClaims` has a lower impact on scheduling latency. ([#121876](https://github.com/kubernetes/kubernetes/pull/121876), [@pohly](https://github.com/pohly)) -- When working with client-go events, it's now recommended to use `NewEventBroadcasterAdapterWithContext` instead of `NewEventBroadcasterAdapter` if contextual logging support is needed. ([#122142](https://github.com/kubernetes/kubernetes/pull/122142), [@pohly](https://github.com/pohly)) - -### Feature - -- Added Timezone column in the output of the 'kubectl get cronjob' command. - ([#122231](https://github.com/kubernetes/kubernetes/pull/122231), [@ardaguclu](https://github.com/ardaguclu)) -- Added `WatchListClient` feature gate to `client-go`. When enabled, it allows the client to receive a stream of individual items instead of chunking from the server. - ([#122571](https://github.com/kubernetes/kubernetes/pull/122571), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Added the `apiserver_watch_cache_read_wait` metric to measure the watch cache impact on request latency. - ([#123190](https://github.com/kubernetes/kubernetes/pull/123190), [@padlar](https://github.com/padlar)) -- Allowed scheduling framework plugins that implement `io.Closer` to be gracefully closed. - ([#122498](https://github.com/kubernetes/kubernetes/pull/122498), [@Gekko0114](https://github.com/Gekko0114)) -- Bumped cAdvisor to `v0.49.0`. - ([#123599](https://github.com/kubernetes/kubernetes/pull/123599), [@bobbypage](https://github.com/bobbypage)) -- Changed `--nodeport-addresses` behavior to default to "primary node IP(s) only" rather than "all node IPs". - ([#122724](https://github.com/kubernetes/kubernetes/pull/122724), [@nayihz](https://github.com/nayihz)) -- In the Pod API, setting the alpha `procMount` field to `Unmasked` in a container now required setting `spec.hostUsers=false` as well. - ([#123520](https://github.com/kubernetes/kubernetes/pull/123520), [@haircommander](https://github.com/haircommander)) -- Informers now supports adding Indexers after the informer starts. - ([#117046](https://github.com/kubernetes/kubernetes/pull/117046), [@howardjohn](https://github.com/howardjohn)) -- Printed more information when `kubectl describe` a `VolumeAttributesClass`. - ([#122640](https://github.com/kubernetes/kubernetes/pull/122640), [@carlory](https://github.com/carlory)) -- Promoted the `CRDValidationRatcheting` feature gate to beta and made it enabled by default. - ([#121461](https://github.com/kubernetes/kubernetes/pull/121461), [@alexzielenski](https://github.com/alexzielenski)) -- Scheduler now skips the `NodeAffinity Score` plugin when it has nothing to do with a Pod. You might have noticed an increase in the metric `plugin_execution_duration_seconds` for `extension_point=score` and `plugin=NodeAffinity`, because the plugin only runs when it's relevant. - ([#117024](https://github.com/kubernetes/kubernetes/pull/117024), [@sanposhiho](https://github.com/sanposhiho)) -- Some interfaces' signatures in the scheduler were updated: - PluginsRunner: used NodeInfo in `RunPreScorePlugins` and `RunScorePlugins`. - PreScorePlugin: used NodeInfo in `PreScore`. - Extender: used NodeInfo in `Filter` and `Prioritize`. - ([#121954](https://github.com/kubernetes/kubernetes/pull/121954), [@AxeZhan](https://github.com/AxeZhan)) -- The watch cache now waits until it is at least as fresh as the given requestedWatchRV if sendInitialEvents was requested. - ([#122830](https://github.com/kubernetes/kubernetes/pull/122830), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Updated `ImageGCMaxAge` behavior in the kubelet to wait the `MaxAge` duration after the kubelet has restarted before garbage collecting. - ([#123343](https://github.com/kubernetes/kubernetes/pull/123343), [@haircommander](https://github.com/haircommander)) -- Updated `distroless-iptables` to `v0.5.0`, debian-base to `bookworm-v1.0.1`, and setcap to `bookworm-v1.0.1`. - ([#123170](https://github.com/kubernetes/kubernetes/pull/123170), [@cpanato](https://github.com/cpanato)) -- `NewVolumeManagerReconstruction` feature is now GA. - ([#123442](https://github.com/kubernetes/kubernetes/pull/123442), [@jsafrane](https://github.com/jsafrane)) -- `kubectl describe`: Added Suspend to job and Node-Selectors and Tolerations to pod template output. - ([#122618](https://github.com/kubernetes/kubernetes/pull/122618), [@ivanvc](https://github.com/ivanvc)) -- `kubectl get job` now displays the status for the listed jobs. - ([#123226](https://github.com/kubernetes/kubernetes/pull/123226), [@ivanvc](https://github.com/ivanvc)) -- etcd: Built image for `v3.5.11`. - ([#122233](https://github.com/kubernetes/kubernetes/pull/122233), [@mzaian](https://github.com/mzaian)) -- kube-apiserver now reloads the `--authorization-config` file when it changes. Reloads increment the `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` timestamp metric, with `status="success"` for successful reloads and `status="failed"` for failed reloads. Failed reloads keep using the previously loaded authorization configuration. - ([#121946](https://github.com/kubernetes/kubernetes/pull/121946), [@liggitt](https://github.com/liggitt)) -- kube-apiserver now reported the following metrics for authorization webhook match conditions: - `apiserver_authorization_match_condition_evaluation_errors_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_exclusions_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_evaluation_seconds` histogram metric labeled by authorizer type and name. - ([#123611](https://github.com/kubernetes/kubernetes/pull/123611), [@ritazh](https://github.com/ritazh)) -- kube-apiserver: JWT authenticator now reports the following metrics: - apiserver_authentication_config_controller_automatic_reloads_total - apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds - ([#123793](https://github.com/kubernetes/kubernetes/pull/123793), [@aramase](https://github.com/aramase)) -- kube-apiserver: The StructuredAuthorizationConfiguration feature gate has been promoted to beta and now allows the use of the `--authorization-configuration` flag. - ([#123641](https://github.com/kubernetes/kubernetes/pull/123641), [@liggitt](https://github.com/liggitt)) -- kube-scheduler implemented scheduling hints for the `NodeUnschedulable` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeSchedulable` plugin if a new Node or a Node update had set `.spec.unschedulable` to false. - ([#122334](https://github.com/kubernetes/kubernetes/pull/122334), [@carlory](https://github.com/carlory)) -- kubeadm: Added better handling of errors during unmount when calling `kubeadm reset`. When failing to unmount directories under `/var/run/kubelet`, kubeadm will now throw an error instead of showing a warning and continuing to clean up said directory. In such situations, it is better for you to inspect the problem and resolve it manually. Then, you can call `kubeadm reset` again to complete the cleanup. - ([#122530](https://github.com/kubernetes/kubernetes/pull/122530), [@neolit123](https://github.com/neolit123)) -- kubeadm: Added support for machine-readable output with `-o yaml` and `-o json` to the command `kubeadm certs check-expiration`. This change is introduced in a new API: ``` kind: CertificateExpirationInfo apiVersion: output.kubeadm.k8s.io/v1alpha3 ``` The existing non-structured formatting is preserved. The output API version v1alpha2 is now deprecated and will be removed in a future release. Please migrate to using v1alpha3. - ([#123372](https://github.com/kubernetes/kubernetes/pull/123372), [@carlory](https://github.com/carlory)) -- kubeadm: added the `WaitForAllControlPlaneComponents` feature gate. It could be used to tell kubeadm to wait for all control plane components to be ready when running "kubeadm init" or "kubeadm join --control-plane". Previously, kubeadm only waited for the kube-apiserver. The "kubeadm join" workflow now includes a new experimental phase called "wait-control-plane". This phase was marked as non-experimental when WaitForAllControlPlaneComponents became GA. Accordingly, a "kubeadm init" phase "wait-control-plane" was also available once WaitForAllControlPlaneComponents became GA. These phases could be skipped if the user preferred not to wait for the control plane components. - ([#123341](https://github.com/kubernetes/kubernetes/pull/123341), [@neolit123](https://github.com/neolit123)) -- kubectl `port-forward` over websockets (tunneling SPDY) can now be enabled using an `Alpha` feature flag environment variable: KUBECTL_PORT_FORWARD_WEBSOCKETS=true. The API Server being communicated to must *also* have an `Alpha` feature flag enabled: PortForwardWebsockets. - ([#123413](https://github.com/kubernetes/kubernetes/pull/123413), [@seans3](https://github.com/seans3)) -- A new flag called `custom` has been introduced in `kubectl debug`, allowing users to customize pre-defined profiles. ([#120346](https://github.com/kubernetes/kubernetes/pull/120346), [@ardaguclu](https://github.com/ardaguclu)) -- A new kubelet metric `image_pull_duration_seconds` was added. The metric tracks the duration (in seconds) it takes for an image to be pulled, including the time spent in the waiting queue of image puller. The metric is broken down by bucketed image size. ([#121719](https://github.com/kubernetes/kubernetes/pull/121719), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) -- A new metric `lifecycle_handler_sleep_terminated_total` is added to record how many times LifecycleHandler sleep got unexpectedly terminated. ([#122456](https://github.com/kubernetes/kubernetes/pull/122456), [@AxeZhan](https://github.com/AxeZhan)) -- Added `client-go` support for upgrading subresource fields from client-side to server-side management. ([#123484](https://github.com/kubernetes/kubernetes/pull/123484), [@erikgb](https://github.com/erikgb)) -- Added `exec-interactive-mode` and `exec-provide-cluster-info` flags in kubectl config set-credentials command. ([#122023](https://github.com/kubernetes/kubernetes/pull/122023), [@ardaguclu](https://github.com/ardaguclu)) -- Added `process_start_time_seconds` to `/metrics/slis` endpoint of all components. ([#122750](https://github.com/kubernetes/kubernetes/pull/122750), [@richabanker](https://github.com/richabanker)) -- Added a "reason" field to the "image_garbage_collected_total" metric, allowing administrators to differentiate between images that were collected for reasons "age" vs "space". - ([#123345](https://github.com/kubernetes/kubernetes/pull/123345), [@haircommander](https://github.com/haircommander)) -- Added a new metric `apiserver_encryption_config_controller_automatic_reloads_total` to measure the total number of API server encryption configuration reload successes and failures. This metric now contains the `status` label with a value that is either `success` or `failure`. Deprecated the metrics `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total`. Please use `apiserver_encryption_config_controller_automatic_reloads_total` instead. - ([#123179](https://github.com/kubernetes/kubernetes/pull/123179), [@aramase](https://github.com/aramase)) -- Added feature gate `MutatingAdmissionPolicy` for enabling mutation policy in admission chain. ([#123425](https://github.com/kubernetes/kubernetes/pull/123425), [@cici37](https://github.com/cici37)) -- Added kubelet metrics to track the memory manager allocation and pinning. ([#121778](https://github.com/kubernetes/kubernetes/pull/121778), [@Tal-or](https://github.com/Tal-or)) -- Added the `access_mode` label to `volume_manager_selinux_*` metrics. ([#123667](https://github.com/kubernetes/kubernetes/pull/123667), [@jsafrane](https://github.com/jsafrane)) -- Enhanced cloud provider integrations to support optional, per-Node custom labels that can be supplied and applied to Nodes by the node controller. These extra labels will only be applied where the cloud provider integration supports this feature. - ([#123223](https://github.com/kubernetes/kubernetes/pull/123223), [@mmerkes](https://github.com/mmerkes)) -- Graduated "Forensic Container Checkpointing" (KEP #2008) from Alpha to Beta. ([#123215](https://github.com/kubernetes/kubernetes/pull/123215), [@adrianreber](https://github.com/adrianreber)) -- Graduated HorizontalPodAutoscaler support for per-container metrics to stable. ([#123482](https://github.com/kubernetes/kubernetes/pull/123482), [@sanposhiho](https://github.com/sanposhiho)) -- Graduated support for passing dual-stack `kubelet --node-ip` values when using a cloud provider. The feature is now GA, and the `CloudDualStackNodeIPs` feature gate is always enabled. ([#123134](https://github.com/kubernetes/kubernetes/pull/123134), [@danwinship](https://github.com/danwinship)) -- In the PriorityLevelConfiguration object, the `nominalConcurrencyShares` field now accepts a zero value in both the `flowcontrol.apiserver.k8s.io/v1` and `flowcontrol.apiserver.k8s.io/v1beta3` APIs. - ([#123001](https://github.com/kubernetes/kubernetes/pull/123001), [@tkashem](https://github.com/tkashem)) -- Introduced a feature gate mechanism to `client-go`. Depending on the actual implementation, users can control features via environmental variables or command line options. ([#122555](https://github.com/kubernetes/kubernetes/pull/122555), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Introduced a new alpha feature gate, `SELinuxMount`, which can now be enabled to accelerate SELinux relabeling. ([#123157](https://github.com/kubernetes/kubernetes/pull/123157), [@jsafrane](https://github.com/jsafrane)) -- Kube-apiserver now reports latency metric for JWT authenticator authenticate token decisions in the `apiserver_authentication_jwt_authenticator_latency_seconds` metric, labeled by jwtIssuer hash and result. ([#123225](https://github.com/kubernetes/kubernetes/pull/123225), [@aramase](https://github.com/aramase)) -- Kube-apiserver now reports metrics for authorization decisions in the `apiserver_authorization_decisions_total` metric, labeled by authorizer type, name, and decision. ([#123333](https://github.com/kubernetes/kubernetes/pull/123333), [@liggitt](https://github.com/liggitt)) -- Kube-apiserver: Authorization webhooks now report the following metrics: - - apiserver_authorization_webhook_evaluations_total - - apiserver_authorization_webhook_duration_seconds - - apiserver_authorization_webhook_evaluations_fail_open_total ([#123639](https://github.com/kubernetes/kubernetes/pull/123639), [@liggitt](https://github.com/liggitt)) -- Kube-controller-manager: increased the global level for broadcaster's logging to 3 so that users can ignore event messages by lowering the logging level. It reduces information noise. ([#122293](https://github.com/kubernetes/kubernetes/pull/122293), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Kube-scheduler implemented scheduling hints for the `NodeAffinity` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeAffinity` plugin if a new Node or a Node update matched the Pod's node affinity. ([#122309](https://github.com/kubernetes/kubernetes/pull/122309), [@carlory](https://github.com/carlory)) -- Kube-scheduler implemented scheduling hints for the `NodeResourceFit` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeResourceFit` plugin if a new Node or a Node update matched the Pod's resource requirements or if an old pod update or delete matched the Pod's resource requirements. ([#119177](https://github.com/kubernetes/kubernetes/pull/119177), [@carlory](https://github.com/carlory)) -- Kube-scheduler now retries scheduling Pods rejected by the PodTopologySpread plugin when related Pods are created, deleted, updated, or when a node matches the specified topologyKey. ([#122195](https://github.com/kubernetes/kubernetes/pull/122195), [@nayihz](https://github.com/nayihz)) -- Kubeadm now prints all the kubelets and nodes that need to be upgraded when running "upgrade plan". - ([#123578](https://github.com/kubernetes/kubernetes/pull/123578), [@carlory](https://github.com/carlory)) -- Kubectl debug now includes the sysadmin profile. ([#119200](https://github.com/kubernetes/kubernetes/pull/119200), [@eiffel-fl](https://github.com/eiffel-fl)) -- Kubelet now supports configuring the IDs used to create user namespaces. - ([#123593](https://github.com/kubernetes/kubernetes/pull/123593), [@giuseppe](https://github.com/giuseppe)) -- Kubernetes is now built with Go `1.21.6`. ([#122705](https://github.com/kubernetes/kubernetes/pull/122705), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with Go `1.22.1`. ([#123750](https://github.com/kubernetes/kubernetes/pull/123750), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with Go `1.22`. ([#123217](https://github.com/kubernetes/kubernetes/pull/123217), [@cpanato](https://github.com/cpanato)) -- Kubernetes is now built with go `1.22rc2`. ([#122889](https://github.com/kubernetes/kubernetes/pull/122889), [@cpanato](https://github.com/cpanato)) -- LoadBalancerIPMode feature is now marked as Beta. ([#123418](https://github.com/kubernetes/kubernetes/pull/123418), [@rikatz](https://github.com/rikatz)) -- Node information is now embedded into Pod-bound service account tokens as additional metadata. The 'JTI' field is set in issued service account tokens, and this information is embedded as `authentication.kubernetes.io/credential-id` in the user's ExtraInfo. ([#123135](https://github.com/kubernetes/kubernetes/pull/123135), [@munnerz](https://github.com/munnerz)) -- Node podresources API now includes init containers with containerRestartPolicy of `Always` when `SidecarContainers` feature is enabled. ([#120718](https://github.com/kubernetes/kubernetes/pull/120718), [@gjkim42](https://github.com/gjkim42)) -- Promoted `KubeProxyDrainingTerminatingNodes` to `Beta`. ([#122914](https://github.com/kubernetes/kubernetes/pull/122914), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) -- Promoted feature gate `StableLoadBalancerNodeSet` to `GA` . ([#122961](https://github.com/kubernetes/kubernetes/pull/122961), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) -- Promoted the `ImageMaximumGCAge` feature to beta. ([#123424](https://github.com/kubernetes/kubernetes/pull/123424), [@haircommander](https://github.com/haircommander)) -- Promoted the `status.hostIPs` field for Pods to general availability. - The `PodHostIPs` feature gate no longer has any effect, and the - `status.hostIPs` field is always available within the Pod API. ([#122870](https://github.com/kubernetes/kubernetes/pull/122870), [@wzshiming](https://github.com/wzshiming)) -- RemoteCommand feature gates for kubectl exec, cp, and attach over WebSockets are now enabled by default (Beta): - - Server-side feature gate: `TranslateStreamCloseWebsocketRequests` - - Client-side (kubectl) feature gate: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS` - - To disable RemoteCommand over WebSockets for kubectl, the environment variable feature gate must be explicitly set to `false`: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS=false`. - ([#123281](https://github.com/kubernetes/kubernetes/pull/123281), [@seans3](https://github.com/seans3)) -- Revised node selection based on container image location. The kube-scheduler now considers whether nodes have the required images available for init containers, and for sidecar containers if the cluster has 'SidecarContainers' enabled. ([#123366](https://github.com/kubernetes/kubernetes/pull/123366), [@kerthcet](https://github.com/kerthcet)) -- Scheduler extender `ignorable` option now handles errors for both filter and bind phases. ([#122503](https://github.com/kubernetes/kubernetes/pull/122503), [@sunbinnnnn](https://github.com/sunbinnnnn)) -- The NodeLogQuery feature has been promoted to beta. No functional changes have been made from the alpha version. ([#123205](https://github.com/kubernetes/kubernetes/pull/123205), [@aravindhp](https://github.com/aravindhp)) -- The `apiserver.latency.k8s.io/decode-response-object` annotation was added to the audit log to record the decoding time. ([#121512](https://github.com/kubernetes/kubernetes/pull/121512), [@HirazawaUi](https://github.com/HirazawaUi)) -- The drop-in kubelet configuration directory feature has been targeted for Beta. ([#122907](https://github.com/kubernetes/kubernetes/pull/122907), [@sohankunkerkar](https://github.com/sohankunkerkar)) -- The kubelet now rejects creating the pod if `hostUserns=false` and the CRI runtime does not support user namespaces. ([#123216](https://github.com/kubernetes/kubernetes/pull/123216), [@giuseppe](https://github.com/giuseppe)) -- The scheduler now retries Pods, which are failed by `nodevolumelimits` due to not found PVCs, only when new PVCs are added. ([#121952](https://github.com/kubernetes/kubernetes/pull/121952), [@sanposhiho](https://github.com/sanposhiho)) -- Updated `kubedns` and `nodelocaldns` to release version `1.22.28`. ([#121908](https://github.com/kubernetes/kubernetes/pull/121908), [@mzaian](https://github.com/mzaian)) -- Users can now traverse all the pods that are in the scheduler and waiting in the permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods in scheduler can be obtained from any profiles. Before this commit, each profile could only obtain `waitingPods` within that profile ([#122946](https://github.com/kubernetes/kubernetes/pull/122946), [@NoicFank](https://github.com/NoicFank)) -- ValidatingAdmissionPolicy now exclude TokenReview, SelfSubjectReview, LocalSubjectAccessReview, and SubjectAccessReview from all versions of authentication.k8s.io and authorization.k8s.io group. ([#123543](https://github.com/kubernetes/kubernetes/pull/123543), [@jiahuif](https://github.com/jiahuif)) -- When a PreFilterResult filters out certain Nodes, the scheduling framework now categorizes them as rejected via `UnschedulableAndUnresolvable`. Consequently, these nodes are excluded from the candidates for the preemption process. Additionally, this update corrects how the scheduling framework handles the Unschedulable status from PreFilter. Previously, if PreFilter returned `Unschedulable`, it could lead to an unexpected abortion in the preemption process, which shouldn't occur in the default scheduler but might occur in schedulers with custom plugins. ([#119779](https://github.com/kubernetes/kubernetes/pull/119779), [@sanposhiho](https://github.com/sanposhiho)) -- When the `RetryGenerateName` feature gate is enabled on the kube-apiserver, - create requests using generateName are retried automatically by the apiserver when the generated name conflicts with an existing resource name, up to a max limit of 7 retries. - This feature is in alpha. ([#122887](https://github.com/kubernetes/kubernetes/pull/122887), [@jpbetz](https://github.com/jpbetz)) -- `ValidatingAdmissionPolicy` now supports type checking policies that utilize variables. ([#123083](https://github.com/kubernetes/kubernetes/pull/123083), [@jiahuif](https://github.com/jiahuif)) - -### Documentation - -- Added a new internal metric `kubelet_first_network_pod_start_sli_duration_second` in the kubelet that allowed developers to understand the source of the latency problems on node startups. - ([#121720](https://github.com/kubernetes/kubernetes/pull/121720), [@aojea](https://github.com/aojea)) -- A deprecated flag `--pod-max-in-unschedulable-pods-duration` was initially planned to be removed in v1.26, but we had to change this plan. We found [an issue](https://github.com/kubernetes/kubernetes/issues/110175) in which Pods can be stuck in the unschedulable pod pool for 5 min, and using this flag is the only workaround for this issue. - This issue only could happen if you use custom plugins or if you change plugin set being used in your scheduler via the scheduler config. ([#122013](https://github.com/kubernetes/kubernetes/pull/122013), [@sanposhiho](https://github.com/sanposhiho)) -- Modified the error message of `unmanagedFatal` to enhance clarity while preserving grammatical consistency with `unmanagedWarning`. This improvement ensures a more understandable prompt for users. ([#120159](https://github.com/kubernetes/kubernetes/pull/120159), [@Ithrael](https://github.com/Ithrael)) - -### Failing Test - -- Reverted the change to "support sharing waitingPods across different scheduler profiles". ([#124001](https://github.com/kubernetes/kubernetes/pull/124001), [@kerthcet](https://github.com/kerthcet)) - -### Bug or Regression - -- Added `imagefs.inodesfree` to default `EvictionHard` settings. - ([#121834](https://github.com/kubernetes/kubernetes/pull/121834), [@vaibhav2107](https://github.com/vaibhav2107)) -- Changed the API server so that for admission webhooks that have a URL matching the hostname 'localhost' or a loopback IP address, the connection supports HTTP/2 where it could be negotiated. - ([#122558](https://github.com/kubernetes/kubernetes/pull/122558), [@linxiulei](https://github.com/linxiulei)) -- Fixed CEL estimated cost for expressions that perform operations on the result of `map()` operations (e.g., `.map(...).exists(...)` ) to have the correct estimated cost instead of an unbounded cost. - ([#123562](https://github.com/kubernetes/kubernetes/pull/123562), [@jpbetz](https://github.com/jpbetz)) -- Fixed a `1.27.0+` regression in kubeadm: The kubelet patch configuration will not be uploaded into the `kube-system/kubelet-config` ConfigMap anymore. - ([#123093](https://github.com/kubernetes/kubernetes/pull/123093), [@SataQiu](https://github.com/SataQiu)) -- Fixed a bug in `ValidatingAdmissionPolicy` that caused policies using CRD parameters to fail to synchronize. - ([#123003](https://github.com/kubernetes/kubernetes/pull/123003), [@alexzielenski](https://github.com/alexzielenski)) -- Fixed a non-recursive list returning "resource version too high" error when consistent listing from cache is enabled. - ([#123674](https://github.com/kubernetes/kubernetes/pull/123674), [@serathius](https://github.com/serathius)) -- Fixed a regression in `kube-proxy` introduced in version `1.26.0+` to make externalIPs workwith externalTrafficPolicy: Local. - ([#121919](https://github.com/kubernetes/kubernetes/pull/121919), [@uablrek](https://github.com/uablrek)) -- Fixed a regression in migration of in-tree vSphere volumes to the CSI driver introduced in version `1.29.0`+. - ([#122341](https://github.com/kubernetes/kubernetes/pull/122341), [@jsafrane](https://github.com/jsafrane)) -- Fixed a regression since `1.24` in the scheduling framework when overriding MultiPoint plugins (e.g. default plugins). The incorrect loop logic might have led to a plugin being loaded multiple times, consequently preventing any Pod from being scheduled, which was unexpected. - ([#122068](https://github.com/kubernetes/kubernetes/pull/122068), [@caohe](https://github.com/caohe)) -- Fixed an issue where `AvailableBytes` sometimes did not report correctly on WindowsNodes when the `PodAndContainerStatsFromCRI` feature was enabled. - ([#122846](https://github.com/kubernetes/kubernetes/pull/122846), [@marosset](https://github.com/marosset)) -- Fixed an issue where mount points could become local without calling `NodePublishVolume` after node rebooting. - ([#119923](https://github.com/kubernetes/kubernetes/pull/119923), [@cvvz](https://github.com/cvvz)) -- Fixed cleanup of Pod volume mounts when a file was used as a subpath. - ([#123052](https://github.com/kubernetes/kubernetes/pull/123052), [@jsafrane](https://github.com/jsafrane)) -- Fixed error handling in `EnsureAdminClusterRoleBindingImpl`. - ([#122893](https://github.com/kubernetes/kubernetes/pull/122893), [@danwinship](https://github.com/danwinship)) -- Fixed incorrect error logging for `syncCronJob`. - ([#122493](https://github.com/kubernetes/kubernetes/pull/122493), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Fixed the deprecated version for `pod_scheduling_duration_seconds` that caused the metric to be hidden by default in `1.29`. - ([#123038](https://github.com/kubernetes/kubernetes/pull/123038), [@alculquicondor](https://github.com/alculquicondor)) -- Fixed the disruption controller's PDB status synchronization to maintain all PDB conditions during an update. - ([#122056](https://github.com/kubernetes/kubernetes/pull/122056), [@dhenkel92](https://github.com/dhenkel92)) -- Improved scheduler performance when no scoring plugins were defined. - ([#122058](https://github.com/kubernetes/kubernetes/pull/122058), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) -- Improved scheduler performance when no scoring plugins were defined. - ([#122435](https://github.com/kubernetes/kubernetes/pull/122435), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) -- Improved scheduler performance when no scoring plugins were defined. - ([#123384](https://github.com/kubernetes/kubernetes/pull/123384), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) -- In kubeadm, in the new output API 'output.kubeadm.k8s.io/v1alpha3', the UpgradePlan structure that is used when calling 'kubeadm upgrade plan ... -o yaml|json' was modified to include a list of multiple available upgrades. - ([#123461](https://github.com/kubernetes/kubernetes/pull/123461), [@carlory](https://github.com/carlory)) -- Made decoding etcd's response respect the timeout context. - ([#121815](https://github.com/kubernetes/kubernetes/pull/121815), [@HirazawaUi](https://github.com/HirazawaUi)) -- Previously, the scheduling queue didn't notice any extenders' failures, potentially resulting in missed cluster events and Pods rejected by Extenders being stuck in the unschedulable pod pool for up to 5 minutes in the worst-case scenario. Now, the scheduling queue notices extenders' failures and requeues Pods rejected by Extenders appropriately. - ([#122022](https://github.com/kubernetes/kubernetes/pull/122022), [@sanposhiho](https://github.com/sanposhiho)) -- QueueingHint implementation for `NodeAffinity` was reverted because potential scenarios were found where events that make Pods schedulable could be missed. - ([#122285](https://github.com/kubernetes/kubernetes/pull/122285), [@sanposhiho](https://github.com/sanposhiho)) -- Removed the incorrect warning event `FileSystemResizeFailed` during pod creation if it uses a readonly volume and the capacity of the volume is greater than or equal to its requested storage. - ([#122508](https://github.com/kubernetes/kubernetes/pull/122508), [@carlory](https://github.com/carlory)) -- Restored the `--verify-only` function in code generation wrappers. - ([#123261](https://github.com/kubernetes/kubernetes/pull/123261), [@skitt](https://github.com/skitt)) -- Reverted the `EventedPLEG` feature (beta, but disabled by default) back to alpha due to a known issue. - ([#122697](https://github.com/kubernetes/kubernetes/pull/122697), [@pacoxu](https://github.com/pacoxu)) -- Used `errors.Is()` to handle errors returned by `LookPath()`. - ([#122600](https://github.com/kubernetes/kubernetes/pull/122600), [@lzhecheng](https://github.com/lzhecheng)) -- kube-proxy: Fixed `LoadBalancerSourceRanges` not working for `nftables` mode. - ([#122614](https://github.com/kubernetes/kubernetes/pull/122614), [@tnqn](https://github.com/tnqn)) -- kubeadm: fixed a bug where "kubeadm upgrade plan -o yaml|json" included unneeded output and was missing component config information. - ([#123492](https://github.com/kubernetes/kubernetes/pull/123492), [@carlory](https://github.com/carlory)) -- Added metric name along with the utilization information when running `kubectl get hpa`. ([#122804](https://github.com/kubernetes/kubernetes/pull/122804), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) -- Addressed an issue where a JWT authenticator set up via `--authentication-config` would encounter failures in verifying tokens not signed with RS256. ([#123282](https://github.com/kubernetes/kubernetes/pull/123282), [@enj](https://github.com/enj)) -- DRA: ResourceClaim and PodSchedulingContext status updates no longer allow changing object meta data. ([#123730](https://github.com/kubernetes/kubernetes/pull/123730), [@pohly](https://github.com/pohly)) -- Enabled deletion of pods that use raw block volumes on node reboot. ([#122211](https://github.com/kubernetes/kubernetes/pull/122211), [@gnufied](https://github.com/gnufied)) -- Etcd: Updated to `v3.5.11`. ([#122393](https://github.com/kubernetes/kubernetes/pull/122393), [@mzaian](https://github.com/mzaian)) -- Fixed Pod stuck in `Terminating` because of `GenerateUnmapVolumeFunc` missing `globalUnmapPath` when kubelet tries to clean up all volumes that failed reconstruction. ([#123032](https://github.com/kubernetes/kubernetes/pull/123032), [@carlory](https://github.com/carlory)) -- Fixed Windows credential provider, cannot find binary. Windows credential provider binary path may have ".exe" suffix so it is better to use `LookPath()` to support it flexibly. ([#120291](https://github.com/kubernetes/kubernetes/pull/120291), [@lzhecheng](https://github.com/lzhecheng)) -- Fixed `kubectl explain` to show enum for field types if they were defined. ([#123023](https://github.com/kubernetes/kubernetes/pull/123023), [@ah8ad3](https://github.com/ah8ad3)) -- Fixed a bug in kubeadm where the `--rootfs` global flag didn't work with "kubeadm upgrade node" for control plane nodes. ([#123077](https://github.com/kubernetes/kubernetes/pull/123077), [@neolit123](https://github.com/neolit123)) -- Fixed a bug that an init container with containerRestartPolicy with `Always` cannot update its state from terminated to non-terminated for the pod with restartPolicy with `Never` or `OnFailure`. ([#123323](https://github.com/kubernetes/kubernetes/pull/123323), [@gjkim42](https://github.com/gjkim42)) -- Fixed a bug where `kubectl` drain would consider a pod as having been deleted if an error occurs while calling the API. ([#122574](https://github.com/kubernetes/kubernetes/pull/122574), [@brianpursley](https://github.com/brianpursley)) -- Fixed a potential data race in DRA with no known real-world implications. ([#123222](https://github.com/kubernetes/kubernetes/pull/123222), [@pohly](https://github.com/pohly)) -- Fixed a race condition in the iptables mode of kube-proxy in `1.27` and later - that could result in some updates getting lost (e.g., when a service gets a - new endpoint, the rules for the new endpoint might not be added until - much later). ([#122204](https://github.com/kubernetes/kubernetes/pull/122204), [@danwinship](https://github.com/danwinship)) -- Fixed a regression in "kubeadm init" where a user-specified --kubeconfig file was being ignored. ([#122735](https://github.com/kubernetes/kubernetes/pull/122735), [@avorima](https://github.com/avorima)) -- Fixed a regression in kubectl version `1.29.0` where the `--attach` flag was not honored. - ([#122447](https://github.com/kubernetes/kubernetes/pull/122447), [@ardaguclu](https://github.com/ardaguclu)) -- Fixed an error when trying to expand a volume that does not require node expansion. ([#123055](https://github.com/kubernetes/kubernetes/pull/123055), [@gnufied](https://github.com/gnufied)) -- Fixed an issue calculating total CPU usage reported for Windows nodes. ([#122999](https://github.com/kubernetes/kubernetes/pull/122999), [@marosset](https://github.com/marosset)) -- Fixed an issue to ignore unnecessary node events and improve daemonset controller performance. ([#121669](https://github.com/kubernetes/kubernetes/pull/121669), [@xigang](https://github.com/xigang)) -- Fixed an issue where the `configmap`, `secret`, `projected`, and `downwardAPI` volume types didn't create user-visible files after a kubelet restart. This fix ensures data persistence and accessibility after restarts. ([#122807](https://github.com/kubernetes/kubernetes/pull/122807), [@carlory](https://github.com/carlory)) -- Fixed bug where health check could pass while APIServices are missing from aggregated discovery. ([#122883](https://github.com/kubernetes/kubernetes/pull/122883), [@Jefftree](https://github.com/Jefftree)) -- Fixed bug where providing a FieldPath to a CRD Validation Rule would erroneously affect the reported field path of other unrelated CRD Validation Rules on the same schema. ([#123475](https://github.com/kubernetes/kubernetes/pull/123475), [@alexzielenski](https://github.com/alexzielenski)) -- Fixed enabling consistent list from watch cache that used to work for resourceVersion=0 ([#123676](https://github.com/kubernetes/kubernetes/pull/123676), [@serathius](https://github.com/serathius)) -- Fixed node lifecycle controller panic when conditionType ready is been patch `nil` by mistake. ([#122874](https://github.com/kubernetes/kubernetes/pull/122874), [@fusida](https://github.com/fusida)) -- Fixed panic of Evented `PLEG` during kubelet start-up. ([#122475](https://github.com/kubernetes/kubernetes/pull/122475), [@pacoxu](https://github.com/pacoxu)) -- Fixed resource deletion failure caused by quota calculation error when `InPlacePodVerticalScaling` is turned on. ([#122701](https://github.com/kubernetes/kubernetes/pull/122701), [@carlory](https://github.com/carlory)) -- For statically provisioned PVs, if their volume source is of CSI type or they have a migrated annotation, when they are deleted, the PersistentVolume controller won't change their phase to the Failed state. With this patch, the external provisioner can remove the finalizer in the next reconcile loop. Unfortunately, if a previously existing PV has the Failed state, this patch won't take effect. Users are required to remove the finalizer manually. ([#122030](https://github.com/kubernetes/kubernetes/pull/122030), [@carlory](https://github.com/carlory)) -- Improved the efficiency of NodeAdded QueueingHint by registering UpdateNodeTaint event for plugins that have NodeAdded event but don't have UpdateNodeTaint event. This ensures better requeuing efficiency and prevents Pods from being stuck in the unschedulable pod pool. - ([#122292](https://github.com/kubernetes/kubernetes/pull/122292), [@sanposhiho](https://github.com/sanposhiho)) -- JWTs used in service account and OIDC authentication are now strictly parsed to confirm that they use compact serialization. Other encodings were not previously accepted, but would result in different unspecific errors. ([#123540](https://github.com/kubernetes/kubernetes/pull/123540), [@enj](https://github.com/enj)) -- Kube-apiserver: Fixed a `1.27`+ regression in watch stability by serving watch requests without a `resourceVersion` from the watch cache by default, as in <`1.27` (disabling the change in PR 115096 by default). This mitigates the impact of an etcd watch bug (https://github.com/etcd-io/etcd/pull/17555). If the 1.27 change in PR 115096 to serve these requests from underlying storage is still desired despite the impact on watch stability, it can be re-enabled with a `WatchFromStorageWithoutResourceVersion` feature gate. ([#123935](https://github.com/kubernetes/kubernetes/pull/123935), [@serathius](https://github.com/serathius)) -- Kubeadm: avoided uploading a defaulted flag value "--authorization-mode=Node,RBAC" for the kube-apiserver in the ClusterConfiguration stored in the "kube-system/kubeadm-config" ConfigMap. "Node,RBAC" are already the kubeadm defaults for this flag, so this action is redundant. ([#123555](https://github.com/kubernetes/kubernetes/pull/123555), [@neolit123](https://github.com/neolit123)) -- Kubeadm: fixed a bug during kubeadm upgrade, where it is not possible to mount a new device and create a symbolic link for /etc/kubernetes (or a sub-directory) so that kubeadm stores its information on the mounted device. ([#123406](https://github.com/kubernetes/kubernetes/pull/123406), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: the `kubelet-finalize` phase of `kubeadm init` no longer requires the kubelet kubeconfig to have a specific authinfo. ([#123171](https://github.com/kubernetes/kubernetes/pull/123171), [@vrutkovs](https://github.com/vrutkovs)) -- OpenAPI V2 will no longer publish aggregated API server OpenAPI for group versions that do not match the APIService specified group version. ([#123570](https://github.com/kubernetes/kubernetes/pull/123570), [@Jefftree](https://github.com/Jefftree)) -- Patched a leak of a discovery document that would occur when an Aggregated APIService changed its Spec.Service field and did not change it back. ([#123517](https://github.com/kubernetes/kubernetes/pull/123517), [@Jefftree](https://github.com/Jefftree)) -- Prevented watch cache starvation by moving its watch to separate RPC. Added a `SeparateCacheWatchRPC` feature flag to disable this behavior. ([#123532](https://github.com/kubernetes/kubernetes/pull/123532), [@serathius](https://github.com/serathius)) -- Reverted the `QueueingHint` implementation for `NodeUnschedulable` due to potential scenarios where events that make Pods schedulable could be missed. ([#122288](https://github.com/kubernetes/kubernetes/pull/122288), [@sanposhiho](https://github.com/sanposhiho)) -- The PersistentVolume controller no longer automatically assigns a default `StorageClass` to Persistent Volume Claims (PVCs) with an empty `storageClassName`. - ([#122704](https://github.com/kubernetes/kubernetes/pull/122704), [@carlory](https://github.com/carlory)) -- The initialization of nodes using external cloud providers now waits for the providerID value to be available before untainting it. This ensures that nodes are not declared Ready without necessary information such as the providerID and zone labels, which are required for integrations like load balancers to function correctly. Cloud providers that do not implement the GetInstanceProviderID method will not require the providerID to be set and will not fail to initialize the node for backward compatibility. ([#123713](https://github.com/kubernetes/kubernetes/pull/123713), [@aojea](https://github.com/aojea)) -- Updated google.golang.org/protobuf to `v1.33.0` to resolve `CVE-2024-24786`. ([#123758](https://github.com/kubernetes/kubernetes/pull/123758), [@liggitt](https://github.com/liggitt)) -- Updated the sample-apiserver manifest example to include correct RBAC configurations. ([#123479](https://github.com/kubernetes/kubernetes/pull/123479), [@Jefftree](https://github.com/Jefftree)) -- When initializing nodes using external cloud-providers, the process now waits for the providerID value to be available before declaring the node ready. This ensures that nodes are not marked as Ready prematurely due to communication errors with the cloud-provider. The providerID and zone labels are necessary for integrations such as load balancers to function correctly. Users can choose to opt out of this behavior by setting the feature flag OptionalProviderID in the cloud-controller-manager. - ([#123331](https://github.com/kubernetes/kubernetes/pull/123331), [@aojea](https://github.com/aojea)) -- When using `kubectl logs <pod-name>` and the pod is not found, the error message now includes the namespace. Previously, the message would be "Error from server (NotFound): pods "my-pod-name" not found". Now, it reflects the namespace in the message as follows: "Error from server (NotFound): pods "my-pod-name" not found in namespace "default"". - ([#120111](https://github.com/kubernetes/kubernetes/pull/120111), [@newtondev](https://github.com/newtondev)) -- When using a claim with immediate allocation and a pod referencing that claim couldn't get scheduled, the scheduler incorrectly may have tried to deallocate that claim. ([#122415](https://github.com/kubernetes/kubernetes/pull/122415), [@pohly](https://github.com/pohly)) -- [kubeadam][structured authz] avoided setting default `--authorization-mode` when `--authorization-config` is provided ([#123654](https://github.com/kubernetes/kubernetes/pull/123654), [@LiorLieberman](https://github.com/LiorLieberman)) -- `ValidateVolumeAttributesClassUpdate` also validates new VolumeAttributesClass object. ([#122449](https://github.com/kubernetes/kubernetes/pull/122449), [@carlory](https://github.com/carlory)) - -### Other (Cleanup or Flake) - -- Accepted zero as a default value for `kubectl create` token duration. - ([#123565](https://github.com/kubernetes/kubernetes/pull/123565), [@ah8ad3](https://github.com/ah8ad3)) -- Cleanup: removed `getStorageAccountName` warning messages. - ([#121983](https://github.com/kubernetes/kubernetes/pull/121983), [@andyzhangx](https://github.com/andyzhangx)) -- Client-go: Optimized leaders renewing leases by updating leader lock optimistically without getting the record from the API server first. Also, a new metric `leader_election_slowpath_total` was added to allow users to monitor how many leader elections are updated non-optimistically. - ([#122069](https://github.com/kubernetes/kubernetes/pull/122069), [@linxiulei](https://github.com/linxiulei)) -- Locked the GA feature-gate `ConsistentHTTPGetHandlers` to default. - ([#122578](https://github.com/kubernetes/kubernetes/pull/122578), [@carlory](https://github.com/carlory)) -- Migrated `client-go/metadata` to contextual logging. - ([#122225](https://github.com/kubernetes/kubernetes/pull/122225), [@ricardoapl](https://github.com/ricardoapl)) -- Removed the GA feature gate `RemoveSelfLink`. - ([#122468](https://github.com/kubernetes/kubernetes/pull/122468), [@carlory](https://github.com/carlory)) -- Removed the generally available feature gate `ExpandedDNSConfig`. - ([#122086](https://github.com/kubernetes/kubernetes/pull/122086), [@bzsuni](https://github.com/bzsuni)) -- Removed the generally available feature gate `KubeletPodResourcesGetAllocatable`. - ([#122138](https://github.com/kubernetes/kubernetes/pull/122138), [@ii2day](https://github.com/ii2day)) -- Removed the generally available feature gate `KubeletPodResources`. - ([#122139](https://github.com/kubernetes/kubernetes/pull/122139), [@bzsuni](https://github.com/bzsuni)) -- Removed the generally available feature gate `MinimizeIPTablesRestore`. - ([#122136](https://github.com/kubernetes/kubernetes/pull/122136), [@ty-dc](https://github.com/ty-dc)) -- The GA feature-gate `APISelfSubjectReview` has been removed, and the feature is unconditionally enabled. - ([#122032](https://github.com/kubernetes/kubernetes/pull/122032), [@carlory](https://github.com/carlory)) -- Updated `etcd` to version `3.5.12`. - ([#123150](https://github.com/kubernetes/kubernetes/pull/123150), [@bzsuni](https://github.com/bzsuni)) -- Updated cri-tools to `v1.29.0`. - ([#122271](https://github.com/kubernetes/kubernetes/pull/122271), [@saschagrunert](https://github.com/saschagrunert)) -- Upgraded metrics server to `v0.7.0`. - ([#123504](https://github.com/kubernetes/kubernetes/pull/123504), [@pacoxu](https://github.com/pacoxu)) -- `kubeadm completion` error message now displayed supported shell types when an invalid shell was specified. - ([#122477](https://github.com/kubernetes/kubernetes/pull/122477), [@SataQiu](https://github.com/SataQiu)) -- kubeadm: ensured that a variety of API server requests were retried during "init", "join", "upgrade", "reset" workflows. Prior to this change, some API server requests, such as creating or updating ConfigMaps, were "one-shot" - i.e., they could fail if the API server dropped connectivity for a very short period of time. - ([#123271](https://github.com/kubernetes/kubernetes/pull/123271), [@neolit123](https://github.com/neolit123)) -- kubeadm: improved the overall logic, error handling, and output messages when waiting for the kubelet and API server `/healthz` endpoints to return `OK`. The kubelet and API server checks no longer ran in parallel, but one after another (in serial). - ([#121958](https://github.com/kubernetes/kubernetes/pull/121958), [@neolit123](https://github.com/neolit123)) -- Added an optimization to reduce stack memory usage for watch requests. It can be disabled with the feature gate: `APIServingWithRoutine=false` ([#120902](https://github.com/kubernetes/kubernetes/pull/120902), [@linxiulei](https://github.com/linxiulei)) -- Added warning for `PV` on reclaim policy when it is `Recycle`. ([#122339](https://github.com/kubernetes/kubernetes/pull/122339), [@carlory](https://github.com/carlory)) -- Deprecated the `azureFile` in-tree storage plugin. ([#122576](https://github.com/kubernetes/kubernetes/pull/122576), [@carlory](https://github.com/carlory)) -- Etcd image `v3.5.12` has been built. ([#123069](https://github.com/kubernetes/kubernetes/pull/123069), [@bzsuni](https://github.com/bzsuni)) -- Fixed a bug in scheduler requeueing where registered wildcard cluster event sources didn't work. ([#123117](https://github.com/kubernetes/kubernetes/pull/123117), [@kerthcet](https://github.com/kerthcet)) -- Kubeadm: the `bridge-nf-call-iptables=1` and `bridge-nf-call-ip6tables=1` preflight checks are removed since not all the network implementations require this setting, network plugins are responsible for setting this correctly depending on whether or not they connect containers to Linux bridges or use some other mechanism. ([#123464](https://github.com/kubernetes/kubernetes/pull/123464), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: used `ttlSecondsAfterFinished` to automatically clean up the `upgrade-health-check` Job that runs during upgrade preflighting. ([#122079](https://github.com/kubernetes/kubernetes/pull/122079), [@carlory](https://github.com/carlory)) -- Migrated the kube-proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#122197](https://github.com/kubernetes/kubernetes/pull/122197), [@fatsheep9146](https://github.com/fatsheep9146)) -- Promoted feature-gate `LegacyServiceAccountTokenCleanUp` to GA and locked it to default. ([#122635](https://github.com/kubernetes/kubernetes/pull/122635), [@carlory](https://github.com/carlory)) -- Removed GA featuregate about `ExperimentalHostUserNamespaceDefaultingGate` in `1.30`. ([#122088](https://github.com/kubernetes/kubernetes/pull/122088), [@bzsuni](https://github.com/bzsuni)) -- Removed the GA feature gate for `IPTablesOwnershipCleanup` in version `1.30`. ([#122137](https://github.com/kubernetes/kubernetes/pull/122137), [@bzsuni](https://github.com/bzsuni)) -- Removed the generally available feature gate `ProxyTerminatingEndpoints`. ([#122134](https://github.com/kubernetes/kubernetes/pull/122134), [@ty-dc](https://github.com/ty-dc)) -- The `--cidr-allocator-type` option set to `CloudAllocator` for `kube-controller-manager` will be deprecated and removed in a future release. Users are advised to transition to and explore the available options provided by their external cloud provider. ([#123011](https://github.com/kubernetes/kubernetes/pull/123011), [@dims](https://github.com/dims)) -- The feature gate `LegacyServiceAccountTokenTracking` (GA since 1.28) is now removed because the feature is unconditionally enabled. ([#122409](https://github.com/kubernetes/kubernetes/pull/122409), [@Rei1010](https://github.com/Rei1010)) -- The in-tree cloud provider for Azure has now been removed. Please use the external cloud provider and CSI driver from https://github.com/kubernetes/cloud-provider-azure instead. ([#122857](https://github.com/kubernetes/kubernetes/pull/122857), [@nilo19](https://github.com/nilo19)) -- The in-tree cloud provider for vSphere has been deprecated and removed. Users are advised to utilize the external cloud provider and CSI driver available at https://github.com/kubernetes/cloud-provider-vsphere. ([#122937](https://github.com/kubernetes/kubernetes/pull/122937), [@dims](https://github.com/dims)) -- Updated `kube-dns` to `v1.22.27`. ([#121736](https://github.com/kubernetes/kubernetes/pull/121736), [@ty-dc](https://github.com/ty-dc)) -- Updated cni-plugins to version `v1.4.0`. ([#122178](https://github.com/kubernetes/kubernetes/pull/122178), [@saschagrunert](https://github.com/saschagrunert)) -- Updated kubedns and nodelocaldns to version `v1.23.0`. ([#123310](https://github.com/kubernetes/kubernetes/pull/123310), [@bzsuni](https://github.com/bzsuni)) -- `kube-proxy` nftables mode is now compatible with kernel `5.4`. ([#122296](https://github.com/kubernetes/kubernetes/pull/122296), [@tnqn](https://github.com/tnqn)) -- Renamed Label cluster to `storage_cluster_id` for `apiserver_storage_size_bytes metric` ([#124283](https://github.com/kubernetes/kubernetes/pull/124283), [dims](https://github.com/dims)) -- Bumped the stability level of apiserver_storage_size_bytes to `STABLE` ([#123342](https://github.com/kubernetes/kubernetes/pull/123342), [@logicalhan](https://github.com/logicalhan)) - -### Uncategorized - -- Fixed an issue where `kubectl apply` could panic when imported as a library. +## What's New (Major Themes) + +Major themes for Kubernetes v1.30 _Uwubernetes_ have been published in the [release announcement](https://kubernetes.io/blog/2024/04/17/kubernetes-v1-30-release/), which also contains additional information on the release. + +## Changes by Kind + +### Deprecation + +- kubectl: Removed the deprecated flag `prune-whitelist` for apply. Please use the flag `prune-allowlist` instead. + ([#120246](https://github.com/kubernetes/kubernetes/pull/120246), [@pacoxu](https://github.com/pacoxu)) +- The deprecated `SecurityContextDeny` admission plugin, which has been deprecated since `v1.27`, has been removed. It is recommended to use the Pod Security Admission plugin instead, which has been available since v1.25. Refer to the [Kubernetes documentation](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#securitycontextdeny) for more information. + ([#122612](https://github.com/kubernetes/kubernetes/pull/122612), [@mtardy](https://github.com/mtardy)) + +### API Change + +- Added (alpha) support for the `managedBy` field on Jobs. Jobs with a custom value of this field - any value other than `kubernetes.io/job-controller` - were skipped by the job controller, and their reconciliation was delegated to an external controller, indicated by the value of the field. Jobs that didn't have this field at all, or where the field value was the reserved string `kubernetes.io/job-controller`, were reconciled by the built-in job controller. + ([#123273](https://github.com/kubernetes/kubernetes/pull/123273), [@mimowo](https://github.com/mimowo)) +- Added alpha-level support for the SuccessPolicy in Jobs. + ([#123412](https://github.com/kubernetes/kubernetes/pull/123412), [@tenzen-y](https://github.com/tenzen-y)) +- Added the `CEL` library for IP Addresses and CIDRs. This was made available for use starting from version `1.31`. + ([#121912](https://github.com/kubernetes/kubernetes/pull/121912), [@JoelSpeed](https://github.com/JoelSpeed)) +- Allowed container runtimes to fix an image garbage collection bug by adding an `image_id` field to the CRI Container message. + ([#123508](https://github.com/kubernetes/kubernetes/pull/123508), [@saschagrunert](https://github.com/saschagrunert)) +- Dynamic Resource Allocation: DRA drivers can now use "structured parameters" to let the scheduler handle claim allocation. + ([#123516](https://github.com/kubernetes/kubernetes/pull/123516), [@pohly](https://github.com/pohly)) +- Fixed accidental enablement of the new alpha `optionalOldSelf` API field in `CustomResourceDefinition` validation rules, which should only have been allowed to be set when the `CRDValidationRatcheting` feature gate is enabled. + ([#122329](https://github.com/kubernetes/kubernetes/pull/122329), [@jpbetz](https://github.com/jpbetz)) +- Implemented the `prescore` extension point for the `volumeBinding` plugin. It now returns skip if it doesn't do anything in Score. + ([#115768](https://github.com/kubernetes/kubernetes/pull/115768), [@AxeZhan](https://github.com/AxeZhan)) +- Kubelet would fail if NodeSwap was used with LimitedSwap and cgroupv1 node. + ([#123738](https://github.com/kubernetes/kubernetes/pull/123738), [@kannon92](https://github.com/kannon92)) +- Promoted `AdmissionWebhookMatchConditions` to GA. The feature is now stable, and the feature gate is now locked to default. + ([#123560](https://github.com/kubernetes/kubernetes/pull/123560), [@ivelichkovich](https://github.com/ivelichkovich)) +- Structured Authentication Configuration now supports `DiscoveryURL`. If specified, `discoveryURL` overrides the URL used to fetch discovery information. This is for scenarios where the well-known and jwks endpoints are hosted at a different location than the issuer (such as locally in the cluster). + ([#123527](https://github.com/kubernetes/kubernetes/pull/123527), [@aramase](https://github.com/aramase)) +- The `StorageVersionMigration` API, previously available as a Custom Resource Definition (CRD), is now a built-in API in Kubernetes. + ([#123344](https://github.com/kubernetes/kubernetes/pull/123344), [@nilekhc](https://github.com/nilekhc)) +- When configuring a JWT authenticator: + + If `username.expression` used 'claims.email', then 'claims.email_verified' must have been used in `username.expression` or `extra[*].valueExpression` or `claimValidationRules[*].expression`. An example claim validation rule expression that matches the validation automatically applied when `username.claim` is set to 'email' is 'claims.?email_verified.orValue(true)'. + ([#123737](https://github.com/kubernetes/kubernetes/pull/123737), [@enj](https://github.com/enj)) +- `readOnly` volumes now support recursive read-only mounts for kernel versions >= 5.12." + ([#123180](https://github.com/kubernetes/kubernetes/pull/123180), [@AkihiroSuda](https://github.com/AkihiroSuda)) +- cri-api: Implemented KEP-3857: Recursive Read-only (RRO) mounts. + ([#123272](https://github.com/kubernetes/kubernetes/pull/123272), [@AkihiroSuda](https://github.com/AkihiroSuda)) +- kube-apiserver: the AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`. + ([#123696](https://github.com/kubernetes/kubernetes/pull/123696), [@aramase](https://github.com/aramase)) +- kubelet allowed specifying a custom root directory for pod logs (instead of the default /var/log/pods) using the `podLogsDir` key in kubelet configuration. + ([#112957](https://github.com/kubernetes/kubernetes/pull/112957), [@mxpv](https://github.com/mxpv)) +- resource.k8s.io/ResourceClaim (alpha API): The strategic merge patch strategy for the `status.reservedFor` array was changed so that a strategic-merge-patch can now add individual entries. This change may break clients using strategic merge patch to update status, which rely on the previous behavior (replacing the entire array). + ([#122276](https://github.com/kubernetes/kubernetes/pull/122276), [@pohly](https://github.com/pohly)) +- Added a CBOR implementation of `runtime.Serializer`. Until CBOR graduates to Alpha, API servers will refuse to start if configured with CBOR support. ([#122881](https://github.com/kubernetes/kubernetes/pull/122881), [@benluddy](https://github.com/benluddy)) +- Added a alpha feature, behind the `RelaxedEnvironmentVariableValidation` feature gate. + When that gate is enabled, Kubernetes allows almost all printable ASCII characters to be used in the names + of environment variables for containers in Pods. ([#123385](https://github.com/kubernetes/kubernetes/pull/123385), [@HirazawaUi](https://github.com/HirazawaUi)) +- Added a new (alpha) field, `trafficDistribution`, to the Service `spec` to express preferences for traffic distribution to endpoints. Enabled through the `ServiceTrafficDistribution` feature gate. ([#123487](https://github.com/kubernetes/kubernetes/pull/123487), [@gauravkghildiyal](https://github.com/gauravkghildiyal)) +- Added audienceMatchPolicy field to AuthenticationConfiguration and support for configuring multiple audiences. + The "audienceMatchPolicy" can be empty (or unset) when a single audience is specified in the "audiences" field. + The "audienceMatchPolicy" must be set to "MatchAny" when multiple audiences are specified in the "audiences" field. ([#123165](https://github.com/kubernetes/kubernetes/pull/123165), [@aramase](https://github.com/aramase)) +- Added consistent vanity import to files and provided tooling for verifying and updating them. ([#120642](https://github.com/kubernetes/kubernetes/pull/120642), [@jcchavezs](https://github.com/jcchavezs)) +- Added the `disable-force-detach` CLI option for `kube-controller-manager`. By default, it's set to `false`. When enabled, it prevents force detaching volumes based on maximum unmount time and node status. If activated, the non-graceful node shutdown feature must be used to recover from node failure. Additionally, if a pod needs to be forcibly terminated at the risk of corruption, the appropriate VolumeAttachment object must be deleted. ([#120344](https://github.com/kubernetes/kubernetes/pull/120344), [@rohitssingh](https://github.com/rohitssingh)) +- Added to `MutableFeatureGate` the ability to override the default setting of feature gates, to allow default-enabling a feature on a component-by-component basis instead of for all affected components simultaneously. ([#122647](https://github.com/kubernetes/kubernetes/pull/122647), [@benluddy](https://github.com/benluddy)) +- Aggregated discovery supports both `v2beta1` and v2 types and feature is promoted to GA. ([#122882](https://github.com/kubernetes/kubernetes/pull/122882), [@Jefftree](https://github.com/Jefftree)) +- Alpha support for field selectors on custom resources has been added. With the `CustomResourceFieldSelectors` feature gate enabled, the CustomResourceDefinition API now allows specifying `selectableFields`. Listing a field there enables filtering custom resources for that CustomResourceDefinition in list or watch requests. ([#122717](https://github.com/kubernetes/kubernetes/pull/122717), [@jpbetz](https://github.com/jpbetz)) +- AppArmor profiles can now be configured through fields on the `PodSecurityContext` and container `SecurityContext`. The beta AppArmor annotations are deprecated, and AppArmor status is no longer included in the node ready condition. ([#123435](https://github.com/kubernetes/kubernetes/pull/123435), [@tallclair](https://github.com/tallclair)) +- Contextual logging is now in beta and enabled by default. Check out the [KEP](https://github.com/kubernetes/enhancements/issues/3077) and [official documentation](https://kubernetes.io/docs/concepts/cluster-administration/system-logs/#contextual-logging) for more details. ([#122589](https://github.com/kubernetes/kubernetes/pull/122589), [@pohly](https://github.com/pohly)) +- Enabled concurrent log rotation in kubelet. You can now configure the maximum number of concurrent rotations with the `containerLogMaxWorkers` setting, and adjust the monitoring interval with `containerLogMonitorInterval`. ([#114301](https://github.com/kubernetes/kubernetes/pull/114301), [@harshanarayana](https://github.com/harshanarayana)) +- Graduated pod scheduling gates to general availability. + The `PodSchedulingReadiness` feature gate no longer has any effect, and the + `.spec.schedulingGates` field is always available within the Pod and PodTemplate APIs. ([#123575](https://github.com/kubernetes/kubernetes/pull/123575), [@Huang-Wei](https://github.com/Huang-Wei)) +- Graduated support for `minDomains` in pod topology spread constraints, to general availability. + The `MinDomainsInPodTopologySpread` feature gate no longer has any effect, and the field is + always available within the Pod and PodTemplate APIs. ([#123481](https://github.com/kubernetes/kubernetes/pull/123481), [@sanposhiho](https://github.com/sanposhiho)) +- In kubelet configuration, the `.memorySwap.swapBehavior` field now accepts a new value `NoSwap`, which becomes the default if unspecified. The previously accepted `UnlimitedSwap` value has been dropped. + ([#122745](https://github.com/kubernetes/kubernetes/pull/122745), [@kannon92](https://github.com/kannon92)) +- Kube-apiserver: the AuthorizationConfiguration type accepted in `--authorization-config` files has been promoted to `apiserver.config.k8s.io/v1beta1`. ([#123640](https://github.com/kubernetes/kubernetes/pull/123640), [@liggitt](https://github.com/liggitt)) +- OIDC authentication will now fail if the username asserted based on a CEL expression config is the empty string. Previously the request would be authenticated with the username set to the empty string. ([#123568](https://github.com/kubernetes/kubernetes/pull/123568), [@enj](https://github.com/enj)) +- Removed note that `hostAliases` are not supported on hostNetwork Pods from the PodSpec API. The feature has been supported since v1.8. ([#122422](https://github.com/kubernetes/kubernetes/pull/122422), [@neolit123](https://github.com/neolit123)) +- Structured Authentication Configuration now supports configuring multiple JWT authenticators. The maximum allowed JWT authenticators in the authentication configuration is 64. ([#123431](https://github.com/kubernetes/kubernetes/pull/123431), [@aramase](https://github.com/aramase)) +- Text logging in Kubernetes components now uses [textlogger](https://pkg.go.dev/k8s.io/klog/v2@v2.120.0/textlogger). The same split streams of info and error log entries with buffering of info entries is now also supported for text output (off by default, alpha feature). Previously, this was only supported for JSON. Performance is better also without split streams. ([#114672](https://github.com/kubernetes/kubernetes/pull/114672), [@pohly](https://github.com/pohly)) +- The API server now detects and fails on startup if there are conflicting issuers between JWT authenticators and service account configurations. Previously, such configurations would run but could be inconsistently effective depending on the credential. ([#123561](https://github.com/kubernetes/kubernetes/pull/123561), [@enj](https://github.com/enj)) +- The JWT authenticator configuration set via the `--authentication-config` flag is now dynamically reloaded as the file changes on disk. ([#123525](https://github.com/kubernetes/kubernetes/pull/123525), [@enj](https://github.com/enj)) +- The `StructuredAuthenticationConfiguration` feature is now beta and enabled. ([#123719](https://github.com/kubernetes/kubernetes/pull/123719), [@enj](https://github.com/enj)) +- The `kube_codegen` tool now ignores the vendor folder during code generation. + ([#122729](https://github.com/kubernetes/kubernetes/pull/122729), [@jparrill](https://github.com/jparrill)) +- The kubernetes repo now uses Go workspaces. This should not impact end users at all, but does have impact for developers of downstream projects. Switching to workspaces caused some breaking changes in the flags to the various k8s.io/code-generator tools. Downstream consumers should look at staging/src/k8s.io/code-generator/kube_codegen.sh to see the changes. ([#123529](https://github.com/kubernetes/kubernetes/pull/123529), [@thockin](https://github.com/thockin)) +- Updated an audit annotation key used by the `…/serviceaccounts/<name>/token` resource handler. + The annotation used to persist the issued credential identifier is now `authentication.kubernetes.io/issued-credential-id`. ([#123098](https://github.com/kubernetes/kubernetes/pull/123098), [@munnerz](https://github.com/munnerz)) [SIG Auth] +- Users are now allowed to mutate `FSGroupPolicy` and `PodInfoOnMount` in `CSIDriver.Spec`. ([#116209](https://github.com/kubernetes/kubernetes/pull/116209), [@haoruan](https://github.com/haoruan)) +- ValidatingAdmissionPolicy was promoted to GA and will be `enabled` by default. ([#123405](https://github.com/kubernetes/kubernetes/pull/123405), [@cici37](https://github.com/cici37)) +- When scheduling a mix of pods using `ResourceClaims` and others that don't, scheduling a pod with `ResourceClaims` has a lower impact on scheduling latency. ([#121876](https://github.com/kubernetes/kubernetes/pull/121876), [@pohly](https://github.com/pohly)) +- When working with client-go events, it's now recommended to use `NewEventBroadcasterAdapterWithContext` instead of `NewEventBroadcasterAdapter` if contextual logging support is needed. ([#122142](https://github.com/kubernetes/kubernetes/pull/122142), [@pohly](https://github.com/pohly)) + +### Feature + +- Added Timezone column in the output of the 'kubectl get cronjob' command. + ([#122231](https://github.com/kubernetes/kubernetes/pull/122231), [@ardaguclu](https://github.com/ardaguclu)) +- Added `WatchListClient` feature gate to `client-go`. When enabled, it allows the client to receive a stream of individual items instead of chunking from the server. + ([#122571](https://github.com/kubernetes/kubernetes/pull/122571), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Added the `apiserver_watch_cache_read_wait` metric to measure the watch cache impact on request latency. + ([#123190](https://github.com/kubernetes/kubernetes/pull/123190), [@padlar](https://github.com/padlar)) +- Allowed scheduling framework plugins that implement `io.Closer` to be gracefully closed. + ([#122498](https://github.com/kubernetes/kubernetes/pull/122498), [@Gekko0114](https://github.com/Gekko0114)) +- Bumped cAdvisor to `v0.49.0`. + ([#123599](https://github.com/kubernetes/kubernetes/pull/123599), [@bobbypage](https://github.com/bobbypage)) +- Changed `--nodeport-addresses` behavior to default to "primary node IP(s) only" rather than "all node IPs". + ([#122724](https://github.com/kubernetes/kubernetes/pull/122724), [@nayihz](https://github.com/nayihz)) +- In the Pod API, setting the alpha `procMount` field to `Unmasked` in a container now required setting `spec.hostUsers=false` as well. + ([#123520](https://github.com/kubernetes/kubernetes/pull/123520), [@haircommander](https://github.com/haircommander)) +- Informers now supports adding Indexers after the informer starts. + ([#117046](https://github.com/kubernetes/kubernetes/pull/117046), [@howardjohn](https://github.com/howardjohn)) +- Printed more information when `kubectl describe` a `VolumeAttributesClass`. + ([#122640](https://github.com/kubernetes/kubernetes/pull/122640), [@carlory](https://github.com/carlory)) +- Promoted the `CRDValidationRatcheting` feature gate to beta and made it enabled by default. + ([#121461](https://github.com/kubernetes/kubernetes/pull/121461), [@alexzielenski](https://github.com/alexzielenski)) +- Scheduler now skips the `NodeAffinity Score` plugin when it has nothing to do with a Pod. You might have noticed an increase in the metric `plugin_execution_duration_seconds` for `extension_point=score` and `plugin=NodeAffinity`, because the plugin only runs when it's relevant. + ([#117024](https://github.com/kubernetes/kubernetes/pull/117024), [@sanposhiho](https://github.com/sanposhiho)) +- Some interfaces' signatures in the scheduler were updated: - PluginsRunner: used NodeInfo in `RunPreScorePlugins` and `RunScorePlugins`. - PreScorePlugin: used NodeInfo in `PreScore`. - Extender: used NodeInfo in `Filter` and `Prioritize`. + ([#121954](https://github.com/kubernetes/kubernetes/pull/121954), [@AxeZhan](https://github.com/AxeZhan)) +- The watch cache now waits until it is at least as fresh as the given requestedWatchRV if sendInitialEvents was requested. + ([#122830](https://github.com/kubernetes/kubernetes/pull/122830), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Updated `ImageGCMaxAge` behavior in the kubelet to wait the `MaxAge` duration after the kubelet has restarted before garbage collecting. + ([#123343](https://github.com/kubernetes/kubernetes/pull/123343), [@haircommander](https://github.com/haircommander)) +- Updated `distroless-iptables` to `v0.5.0`, debian-base to `bookworm-v1.0.1`, and setcap to `bookworm-v1.0.1`. + ([#123170](https://github.com/kubernetes/kubernetes/pull/123170), [@cpanato](https://github.com/cpanato)) +- `NewVolumeManagerReconstruction` feature is now GA. + ([#123442](https://github.com/kubernetes/kubernetes/pull/123442), [@jsafrane](https://github.com/jsafrane)) +- `kubectl describe`: Added Suspend to job and Node-Selectors and Tolerations to pod template output. + ([#122618](https://github.com/kubernetes/kubernetes/pull/122618), [@ivanvc](https://github.com/ivanvc)) +- `kubectl get job` now displays the status for the listed jobs. + ([#123226](https://github.com/kubernetes/kubernetes/pull/123226), [@ivanvc](https://github.com/ivanvc)) +- etcd: Built image for `v3.5.11`. + ([#122233](https://github.com/kubernetes/kubernetes/pull/122233), [@mzaian](https://github.com/mzaian)) +- kube-apiserver now reloads the `--authorization-config` file when it changes. Reloads increment the `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` timestamp metric, with `status="success"` for successful reloads and `status="failed"` for failed reloads. Failed reloads keep using the previously loaded authorization configuration. + ([#121946](https://github.com/kubernetes/kubernetes/pull/121946), [@liggitt](https://github.com/liggitt)) +- kube-apiserver now reported the following metrics for authorization webhook match conditions: - `apiserver_authorization_match_condition_evaluation_errors_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_exclusions_total` counter metric labeled by authorizer type and name - `apiserver_authorization_match_condition_evaluation_seconds` histogram metric labeled by authorizer type and name. + ([#123611](https://github.com/kubernetes/kubernetes/pull/123611), [@ritazh](https://github.com/ritazh)) +- kube-apiserver: JWT authenticator now reports the following metrics: - apiserver_authentication_config_controller_automatic_reloads_total - apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds + ([#123793](https://github.com/kubernetes/kubernetes/pull/123793), [@aramase](https://github.com/aramase)) +- kube-apiserver: The StructuredAuthorizationConfiguration feature gate has been promoted to beta and now allows the use of the `--authorization-configuration` flag. + ([#123641](https://github.com/kubernetes/kubernetes/pull/123641), [@liggitt](https://github.com/liggitt)) +- kube-scheduler implemented scheduling hints for the `NodeUnschedulable` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeSchedulable` plugin if a new Node or a Node update had set `.spec.unschedulable` to false. + ([#122334](https://github.com/kubernetes/kubernetes/pull/122334), [@carlory](https://github.com/carlory)) +- kubeadm: Added better handling of errors during unmount when calling `kubeadm reset`. When failing to unmount directories under `/var/run/kubelet`, kubeadm will now throw an error instead of showing a warning and continuing to clean up said directory. In such situations, it is better for you to inspect the problem and resolve it manually. Then, you can call `kubeadm reset` again to complete the cleanup. + ([#122530](https://github.com/kubernetes/kubernetes/pull/122530), [@neolit123](https://github.com/neolit123)) +- kubeadm: Added support for machine-readable output with `-o yaml` and `-o json` to the command `kubeadm certs check-expiration`. This change is introduced in a new API: ``` kind: CertificateExpirationInfo apiVersion: output.kubeadm.k8s.io/v1alpha3 ``` The existing non-structured formatting is preserved. The output API version v1alpha2 is now deprecated and will be removed in a future release. Please migrate to using v1alpha3. + ([#123372](https://github.com/kubernetes/kubernetes/pull/123372), [@carlory](https://github.com/carlory)) +- kubeadm: added the `WaitForAllControlPlaneComponents` feature gate. It could be used to tell kubeadm to wait for all control plane components to be ready when running "kubeadm init" or "kubeadm join --control-plane". Previously, kubeadm only waited for the kube-apiserver. The "kubeadm join" workflow now includes a new experimental phase called "wait-control-plane". This phase was marked as non-experimental when WaitForAllControlPlaneComponents became GA. Accordingly, a "kubeadm init" phase "wait-control-plane" was also available once WaitForAllControlPlaneComponents became GA. These phases could be skipped if the user preferred not to wait for the control plane components. + ([#123341](https://github.com/kubernetes/kubernetes/pull/123341), [@neolit123](https://github.com/neolit123)) +- kubectl `port-forward` over websockets (tunneling SPDY) can now be enabled using an `Alpha` feature flag environment variable: KUBECTL_PORT_FORWARD_WEBSOCKETS=true. The API Server being communicated to must *also* have an `Alpha` feature flag enabled: PortForwardWebsockets. + ([#123413](https://github.com/kubernetes/kubernetes/pull/123413), [@seans3](https://github.com/seans3)) +- A new flag called `custom` has been introduced in `kubectl debug`, allowing users to customize pre-defined profiles. ([#120346](https://github.com/kubernetes/kubernetes/pull/120346), [@ardaguclu](https://github.com/ardaguclu)) +- A new kubelet metric `image_pull_duration_seconds` was added. The metric tracks the duration (in seconds) it takes for an image to be pulled, including the time spent in the waiting queue of image puller. The metric is broken down by bucketed image size. ([#121719](https://github.com/kubernetes/kubernetes/pull/121719), [@ruiwen-zhao](https://github.com/ruiwen-zhao)) +- A new metric `lifecycle_handler_sleep_terminated_total` is added to record how many times LifecycleHandler sleep got unexpectedly terminated. ([#122456](https://github.com/kubernetes/kubernetes/pull/122456), [@AxeZhan](https://github.com/AxeZhan)) +- Added `client-go` support for upgrading subresource fields from client-side to server-side management. ([#123484](https://github.com/kubernetes/kubernetes/pull/123484), [@erikgb](https://github.com/erikgb)) +- Added `exec-interactive-mode` and `exec-provide-cluster-info` flags in kubectl config set-credentials command. ([#122023](https://github.com/kubernetes/kubernetes/pull/122023), [@ardaguclu](https://github.com/ardaguclu)) +- Added `process_start_time_seconds` to `/metrics/slis` endpoint of all components. ([#122750](https://github.com/kubernetes/kubernetes/pull/122750), [@richabanker](https://github.com/richabanker)) +- Added a "reason" field to the "image_garbage_collected_total" metric, allowing administrators to differentiate between images that were collected for reasons "age" vs "space". + ([#123345](https://github.com/kubernetes/kubernetes/pull/123345), [@haircommander](https://github.com/haircommander)) +- Added a new metric `apiserver_encryption_config_controller_automatic_reloads_total` to measure the total number of API server encryption configuration reload successes and failures. This metric now contains the `status` label with a value that is either `success` or `failure`. Deprecated the metrics `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total`. Please use `apiserver_encryption_config_controller_automatic_reloads_total` instead. + ([#123179](https://github.com/kubernetes/kubernetes/pull/123179), [@aramase](https://github.com/aramase)) +- Added feature gate `MutatingAdmissionPolicy` for enabling mutation policy in admission chain. ([#123425](https://github.com/kubernetes/kubernetes/pull/123425), [@cici37](https://github.com/cici37)) +- Added kubelet metrics to track the memory manager allocation and pinning. ([#121778](https://github.com/kubernetes/kubernetes/pull/121778), [@Tal-or](https://github.com/Tal-or)) +- Added the `access_mode` label to `volume_manager_selinux_*` metrics. ([#123667](https://github.com/kubernetes/kubernetes/pull/123667), [@jsafrane](https://github.com/jsafrane)) +- Enhanced cloud provider integrations to support optional, per-Node custom labels that can be supplied and applied to Nodes by the node controller. These extra labels will only be applied where the cloud provider integration supports this feature. + ([#123223](https://github.com/kubernetes/kubernetes/pull/123223), [@mmerkes](https://github.com/mmerkes)) +- Graduated "Forensic Container Checkpointing" (KEP #2008) from Alpha to Beta. ([#123215](https://github.com/kubernetes/kubernetes/pull/123215), [@adrianreber](https://github.com/adrianreber)) +- Graduated HorizontalPodAutoscaler support for per-container metrics to stable. ([#123482](https://github.com/kubernetes/kubernetes/pull/123482), [@sanposhiho](https://github.com/sanposhiho)) +- Graduated support for passing dual-stack `kubelet --node-ip` values when using a cloud provider. The feature is now GA, and the `CloudDualStackNodeIPs` feature gate is always enabled. ([#123134](https://github.com/kubernetes/kubernetes/pull/123134), [@danwinship](https://github.com/danwinship)) +- In the PriorityLevelConfiguration object, the `nominalConcurrencyShares` field now accepts a zero value in both the `flowcontrol.apiserver.k8s.io/v1` and `flowcontrol.apiserver.k8s.io/v1beta3` APIs. + ([#123001](https://github.com/kubernetes/kubernetes/pull/123001), [@tkashem](https://github.com/tkashem)) +- Introduced a feature gate mechanism to `client-go`. Depending on the actual implementation, users can control features via environmental variables or command line options. ([#122555](https://github.com/kubernetes/kubernetes/pull/122555), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Introduced a new alpha feature gate, `SELinuxMount`, which can now be enabled to accelerate SELinux relabeling. ([#123157](https://github.com/kubernetes/kubernetes/pull/123157), [@jsafrane](https://github.com/jsafrane)) +- Kube-apiserver now reports latency metric for JWT authenticator authenticate token decisions in the `apiserver_authentication_jwt_authenticator_latency_seconds` metric, labeled by jwtIssuer hash and result. ([#123225](https://github.com/kubernetes/kubernetes/pull/123225), [@aramase](https://github.com/aramase)) +- Kube-apiserver now reports metrics for authorization decisions in the `apiserver_authorization_decisions_total` metric, labeled by authorizer type, name, and decision. ([#123333](https://github.com/kubernetes/kubernetes/pull/123333), [@liggitt](https://github.com/liggitt)) +- Kube-apiserver: Authorization webhooks now report the following metrics: + - apiserver_authorization_webhook_evaluations_total + - apiserver_authorization_webhook_duration_seconds + - apiserver_authorization_webhook_evaluations_fail_open_total ([#123639](https://github.com/kubernetes/kubernetes/pull/123639), [@liggitt](https://github.com/liggitt)) +- Kube-controller-manager: increased the global level for broadcaster's logging to 3 so that users can ignore event messages by lowering the logging level. It reduces information noise. ([#122293](https://github.com/kubernetes/kubernetes/pull/122293), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Kube-scheduler implemented scheduling hints for the `NodeAffinity` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeAffinity` plugin if a new Node or a Node update matched the Pod's node affinity. ([#122309](https://github.com/kubernetes/kubernetes/pull/122309), [@carlory](https://github.com/carlory)) +- Kube-scheduler implemented scheduling hints for the `NodeResourceFit` plugin. The scheduling hints allowed the scheduler to only retry scheduling a Pod that had been previously rejected by the `NodeResourceFit` plugin if a new Node or a Node update matched the Pod's resource requirements or if an old pod update or delete matched the Pod's resource requirements. ([#119177](https://github.com/kubernetes/kubernetes/pull/119177), [@carlory](https://github.com/carlory)) +- Kube-scheduler now retries scheduling Pods rejected by the PodTopologySpread plugin when related Pods are created, deleted, updated, or when a node matches the specified topologyKey. ([#122195](https://github.com/kubernetes/kubernetes/pull/122195), [@nayihz](https://github.com/nayihz)) +- Kubeadm now prints all the kubelets and nodes that need to be upgraded when running "upgrade plan". + ([#123578](https://github.com/kubernetes/kubernetes/pull/123578), [@carlory](https://github.com/carlory)) +- Kubectl debug now includes the sysadmin profile. ([#119200](https://github.com/kubernetes/kubernetes/pull/119200), [@eiffel-fl](https://github.com/eiffel-fl)) +- Kubelet now supports configuring the IDs used to create user namespaces. + ([#123593](https://github.com/kubernetes/kubernetes/pull/123593), [@giuseppe](https://github.com/giuseppe)) +- Kubernetes is now built with Go `1.21.6`. ([#122705](https://github.com/kubernetes/kubernetes/pull/122705), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with Go `1.22.1`. ([#123750](https://github.com/kubernetes/kubernetes/pull/123750), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with Go `1.22`. ([#123217](https://github.com/kubernetes/kubernetes/pull/123217), [@cpanato](https://github.com/cpanato)) +- Kubernetes is now built with go `1.22rc2`. ([#122889](https://github.com/kubernetes/kubernetes/pull/122889), [@cpanato](https://github.com/cpanato)) +- LoadBalancerIPMode feature is now marked as Beta. ([#123418](https://github.com/kubernetes/kubernetes/pull/123418), [@rikatz](https://github.com/rikatz)) +- Node information is now embedded into Pod-bound service account tokens as additional metadata. The 'JTI' field is set in issued service account tokens, and this information is embedded as `authentication.kubernetes.io/credential-id` in the user's ExtraInfo. ([#123135](https://github.com/kubernetes/kubernetes/pull/123135), [@munnerz](https://github.com/munnerz)) +- Node podresources API now includes init containers with containerRestartPolicy of `Always` when `SidecarContainers` feature is enabled. ([#120718](https://github.com/kubernetes/kubernetes/pull/120718), [@gjkim42](https://github.com/gjkim42)) +- Promoted `KubeProxyDrainingTerminatingNodes` to `Beta`. ([#122914](https://github.com/kubernetes/kubernetes/pull/122914), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) +- Promoted feature gate `StableLoadBalancerNodeSet` to `GA` . ([#122961](https://github.com/kubernetes/kubernetes/pull/122961), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) +- Promoted the `ImageMaximumGCAge` feature to beta. ([#123424](https://github.com/kubernetes/kubernetes/pull/123424), [@haircommander](https://github.com/haircommander)) +- Promoted the `status.hostIPs` field for Pods to general availability. + The `PodHostIPs` feature gate no longer has any effect, and the + `status.hostIPs` field is always available within the Pod API. ([#122870](https://github.com/kubernetes/kubernetes/pull/122870), [@wzshiming](https://github.com/wzshiming)) +- RemoteCommand feature gates for kubectl exec, cp, and attach over WebSockets are now enabled by default (Beta): + - Server-side feature gate: `TranslateStreamCloseWebsocketRequests` + - Client-side (kubectl) feature gate: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS` + - To disable RemoteCommand over WebSockets for kubectl, the environment variable feature gate must be explicitly set to `false`: `KUBECTL_REMOTE_COMMAND_WEBSOCKETS=false`. + ([#123281](https://github.com/kubernetes/kubernetes/pull/123281), [@seans3](https://github.com/seans3)) +- Revised node selection based on container image location. The kube-scheduler now considers whether nodes have the required images available for init containers, and for sidecar containers if the cluster has 'SidecarContainers' enabled. ([#123366](https://github.com/kubernetes/kubernetes/pull/123366), [@kerthcet](https://github.com/kerthcet)) +- Scheduler extender `ignorable` option now handles errors for both filter and bind phases. ([#122503](https://github.com/kubernetes/kubernetes/pull/122503), [@sunbinnnnn](https://github.com/sunbinnnnn)) +- The NodeLogQuery feature has been promoted to beta. No functional changes have been made from the alpha version. ([#123205](https://github.com/kubernetes/kubernetes/pull/123205), [@aravindhp](https://github.com/aravindhp)) +- The `apiserver.latency.k8s.io/decode-response-object` annotation was added to the audit log to record the decoding time. ([#121512](https://github.com/kubernetes/kubernetes/pull/121512), [@HirazawaUi](https://github.com/HirazawaUi)) +- The drop-in kubelet configuration directory feature has been targeted for Beta. ([#122907](https://github.com/kubernetes/kubernetes/pull/122907), [@sohankunkerkar](https://github.com/sohankunkerkar)) +- The kubelet now rejects creating the pod if `hostUserns=false` and the CRI runtime does not support user namespaces. ([#123216](https://github.com/kubernetes/kubernetes/pull/123216), [@giuseppe](https://github.com/giuseppe)) +- The scheduler now retries Pods, which are failed by `nodevolumelimits` due to not found PVCs, only when new PVCs are added. ([#121952](https://github.com/kubernetes/kubernetes/pull/121952), [@sanposhiho](https://github.com/sanposhiho)) +- Updated `kubedns` and `nodelocaldns` to release version `1.22.28`. ([#121908](https://github.com/kubernetes/kubernetes/pull/121908), [@mzaian](https://github.com/mzaian)) +- Users can now traverse all the pods that are in the scheduler and waiting in the permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods in scheduler can be obtained from any profiles. Before this commit, each profile could only obtain `waitingPods` within that profile ([#122946](https://github.com/kubernetes/kubernetes/pull/122946), [@NoicFank](https://github.com/NoicFank)) +- ValidatingAdmissionPolicy now exclude TokenReview, SelfSubjectReview, LocalSubjectAccessReview, and SubjectAccessReview from all versions of authentication.k8s.io and authorization.k8s.io group. ([#123543](https://github.com/kubernetes/kubernetes/pull/123543), [@jiahuif](https://github.com/jiahuif)) +- When a PreFilterResult filters out certain Nodes, the scheduling framework now categorizes them as rejected via `UnschedulableAndUnresolvable`. Consequently, these nodes are excluded from the candidates for the preemption process. Additionally, this update corrects how the scheduling framework handles the Unschedulable status from PreFilter. Previously, if PreFilter returned `Unschedulable`, it could lead to an unexpected abortion in the preemption process, which shouldn't occur in the default scheduler but might occur in schedulers with custom plugins. ([#119779](https://github.com/kubernetes/kubernetes/pull/119779), [@sanposhiho](https://github.com/sanposhiho)) +- When the `RetryGenerateName` feature gate is enabled on the kube-apiserver, + create requests using generateName are retried automatically by the apiserver when the generated name conflicts with an existing resource name, up to a max limit of 7 retries. + This feature is in alpha. ([#122887](https://github.com/kubernetes/kubernetes/pull/122887), [@jpbetz](https://github.com/jpbetz)) +- `ValidatingAdmissionPolicy` now supports type checking policies that utilize variables. ([#123083](https://github.com/kubernetes/kubernetes/pull/123083), [@jiahuif](https://github.com/jiahuif)) + +### Documentation + +- Added a new internal metric `kubelet_first_network_pod_start_sli_duration_second` in the kubelet that allowed developers to understand the source of the latency problems on node startups. + ([#121720](https://github.com/kubernetes/kubernetes/pull/121720), [@aojea](https://github.com/aojea)) +- A deprecated flag `--pod-max-in-unschedulable-pods-duration` was initially planned to be removed in v1.26, but we had to change this plan. We found [an issue](https://github.com/kubernetes/kubernetes/issues/110175) in which Pods can be stuck in the unschedulable pod pool for 5 min, and using this flag is the only workaround for this issue. + This issue only could happen if you use custom plugins or if you change plugin set being used in your scheduler via the scheduler config. ([#122013](https://github.com/kubernetes/kubernetes/pull/122013), [@sanposhiho](https://github.com/sanposhiho)) +- Modified the error message of `unmanagedFatal` to enhance clarity while preserving grammatical consistency with `unmanagedWarning`. This improvement ensures a more understandable prompt for users. ([#120159](https://github.com/kubernetes/kubernetes/pull/120159), [@Ithrael](https://github.com/Ithrael)) + +### Failing Test + +- Reverted the change to "support sharing waitingPods across different scheduler profiles". ([#124001](https://github.com/kubernetes/kubernetes/pull/124001), [@kerthcet](https://github.com/kerthcet)) + +### Bug or Regression + +- Added `imagefs.inodesfree` to default `EvictionHard` settings. + ([#121834](https://github.com/kubernetes/kubernetes/pull/121834), [@vaibhav2107](https://github.com/vaibhav2107)) +- Changed the API server so that for admission webhooks that have a URL matching the hostname 'localhost' or a loopback IP address, the connection supports HTTP/2 where it could be negotiated. + ([#122558](https://github.com/kubernetes/kubernetes/pull/122558), [@linxiulei](https://github.com/linxiulei)) +- Fixed CEL estimated cost for expressions that perform operations on the result of `map()` operations (e.g., `.map(...).exists(...)` ) to have the correct estimated cost instead of an unbounded cost. + ([#123562](https://github.com/kubernetes/kubernetes/pull/123562), [@jpbetz](https://github.com/jpbetz)) +- Fixed a `1.27.0+` regression in kubeadm: The kubelet patch configuration will not be uploaded into the `kube-system/kubelet-config` ConfigMap anymore. + ([#123093](https://github.com/kubernetes/kubernetes/pull/123093), [@SataQiu](https://github.com/SataQiu)) +- Fixed a bug in `ValidatingAdmissionPolicy` that caused policies using CRD parameters to fail to synchronize. + ([#123003](https://github.com/kubernetes/kubernetes/pull/123003), [@alexzielenski](https://github.com/alexzielenski)) +- Fixed a non-recursive list returning "resource version too high" error when consistent listing from cache is enabled. + ([#123674](https://github.com/kubernetes/kubernetes/pull/123674), [@serathius](https://github.com/serathius)) +- Fixed a regression in `kube-proxy` introduced in version `1.26.0+` to make externalIPs workwith externalTrafficPolicy: Local. + ([#121919](https://github.com/kubernetes/kubernetes/pull/121919), [@uablrek](https://github.com/uablrek)) +- Fixed a regression in migration of in-tree vSphere volumes to the CSI driver introduced in version `1.29.0`+. + ([#122341](https://github.com/kubernetes/kubernetes/pull/122341), [@jsafrane](https://github.com/jsafrane)) +- Fixed a regression since `1.24` in the scheduling framework when overriding MultiPoint plugins (e.g. default plugins). The incorrect loop logic might have led to a plugin being loaded multiple times, consequently preventing any Pod from being scheduled, which was unexpected. + ([#122068](https://github.com/kubernetes/kubernetes/pull/122068), [@caohe](https://github.com/caohe)) +- Fixed an issue where `AvailableBytes` sometimes did not report correctly on WindowsNodes when the `PodAndContainerStatsFromCRI` feature was enabled. + ([#122846](https://github.com/kubernetes/kubernetes/pull/122846), [@marosset](https://github.com/marosset)) +- Fixed an issue where mount points could become local without calling `NodePublishVolume` after node rebooting. + ([#119923](https://github.com/kubernetes/kubernetes/pull/119923), [@cvvz](https://github.com/cvvz)) +- Fixed cleanup of Pod volume mounts when a file was used as a subpath. + ([#123052](https://github.com/kubernetes/kubernetes/pull/123052), [@jsafrane](https://github.com/jsafrane)) +- Fixed error handling in `EnsureAdminClusterRoleBindingImpl`. + ([#122893](https://github.com/kubernetes/kubernetes/pull/122893), [@danwinship](https://github.com/danwinship)) +- Fixed incorrect error logging for `syncCronJob`. + ([#122493](https://github.com/kubernetes/kubernetes/pull/122493), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Fixed the deprecated version for `pod_scheduling_duration_seconds` that caused the metric to be hidden by default in `1.29`. + ([#123038](https://github.com/kubernetes/kubernetes/pull/123038), [@alculquicondor](https://github.com/alculquicondor)) +- Fixed the disruption controller's PDB status synchronization to maintain all PDB conditions during an update. + ([#122056](https://github.com/kubernetes/kubernetes/pull/122056), [@dhenkel92](https://github.com/dhenkel92)) +- Improved scheduler performance when no scoring plugins were defined. + ([#122058](https://github.com/kubernetes/kubernetes/pull/122058), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) +- Improved scheduler performance when no scoring plugins were defined. + ([#122435](https://github.com/kubernetes/kubernetes/pull/122435), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) +- Improved scheduler performance when no scoring plugins were defined. + ([#123384](https://github.com/kubernetes/kubernetes/pull/123384), [@aleksandra-malinowska](https://github.com/aleksandra-malinowska)) +- In kubeadm, in the new output API 'output.kubeadm.k8s.io/v1alpha3', the UpgradePlan structure that is used when calling 'kubeadm upgrade plan ... -o yaml|json' was modified to include a list of multiple available upgrades. + ([#123461](https://github.com/kubernetes/kubernetes/pull/123461), [@carlory](https://github.com/carlory)) +- Made decoding etcd's response respect the timeout context. + ([#121815](https://github.com/kubernetes/kubernetes/pull/121815), [@HirazawaUi](https://github.com/HirazawaUi)) +- Previously, the scheduling queue didn't notice any extenders' failures, potentially resulting in missed cluster events and Pods rejected by Extenders being stuck in the unschedulable pod pool for up to 5 minutes in the worst-case scenario. Now, the scheduling queue notices extenders' failures and requeues Pods rejected by Extenders appropriately. + ([#122022](https://github.com/kubernetes/kubernetes/pull/122022), [@sanposhiho](https://github.com/sanposhiho)) +- QueueingHint implementation for `NodeAffinity` was reverted because potential scenarios were found where events that make Pods schedulable could be missed. + ([#122285](https://github.com/kubernetes/kubernetes/pull/122285), [@sanposhiho](https://github.com/sanposhiho)) +- Removed the incorrect warning event `FileSystemResizeFailed` during pod creation if it uses a readonly volume and the capacity of the volume is greater than or equal to its requested storage. + ([#122508](https://github.com/kubernetes/kubernetes/pull/122508), [@carlory](https://github.com/carlory)) +- Restored the `--verify-only` function in code generation wrappers. + ([#123261](https://github.com/kubernetes/kubernetes/pull/123261), [@skitt](https://github.com/skitt)) +- Reverted the `EventedPLEG` feature (beta, but disabled by default) back to alpha due to a known issue. + ([#122697](https://github.com/kubernetes/kubernetes/pull/122697), [@pacoxu](https://github.com/pacoxu)) +- Used `errors.Is()` to handle errors returned by `LookPath()`. + ([#122600](https://github.com/kubernetes/kubernetes/pull/122600), [@lzhecheng](https://github.com/lzhecheng)) +- kube-proxy: Fixed `LoadBalancerSourceRanges` not working for `nftables` mode. + ([#122614](https://github.com/kubernetes/kubernetes/pull/122614), [@tnqn](https://github.com/tnqn)) +- kubeadm: fixed a bug where "kubeadm upgrade plan -o yaml|json" included unneeded output and was missing component config information. + ([#123492](https://github.com/kubernetes/kubernetes/pull/123492), [@carlory](https://github.com/carlory)) +- Added metric name along with the utilization information when running `kubectl get hpa`. ([#122804](https://github.com/kubernetes/kubernetes/pull/122804), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) +- Addressed an issue where a JWT authenticator set up via `--authentication-config` would encounter failures in verifying tokens not signed with RS256. ([#123282](https://github.com/kubernetes/kubernetes/pull/123282), [@enj](https://github.com/enj)) +- DRA: ResourceClaim and PodSchedulingContext status updates no longer allow changing object meta data. ([#123730](https://github.com/kubernetes/kubernetes/pull/123730), [@pohly](https://github.com/pohly)) +- Enabled deletion of pods that use raw block volumes on node reboot. ([#122211](https://github.com/kubernetes/kubernetes/pull/122211), [@gnufied](https://github.com/gnufied)) +- Etcd: Updated to `v3.5.11`. ([#122393](https://github.com/kubernetes/kubernetes/pull/122393), [@mzaian](https://github.com/mzaian)) +- Fixed Pod stuck in `Terminating` because of `GenerateUnmapVolumeFunc` missing `globalUnmapPath` when kubelet tries to clean up all volumes that failed reconstruction. ([#123032](https://github.com/kubernetes/kubernetes/pull/123032), [@carlory](https://github.com/carlory)) +- Fixed Windows credential provider, cannot find binary. Windows credential provider binary path may have ".exe" suffix so it is better to use `LookPath()` to support it flexibly. ([#120291](https://github.com/kubernetes/kubernetes/pull/120291), [@lzhecheng](https://github.com/lzhecheng)) +- Fixed `kubectl explain` to show enum for field types if they were defined. ([#123023](https://github.com/kubernetes/kubernetes/pull/123023), [@ah8ad3](https://github.com/ah8ad3)) +- Fixed a bug in kubeadm where the `--rootfs` global flag didn't work with "kubeadm upgrade node" for control plane nodes. ([#123077](https://github.com/kubernetes/kubernetes/pull/123077), [@neolit123](https://github.com/neolit123)) +- Fixed a bug that an init container with containerRestartPolicy with `Always` cannot update its state from terminated to non-terminated for the pod with restartPolicy with `Never` or `OnFailure`. ([#123323](https://github.com/kubernetes/kubernetes/pull/123323), [@gjkim42](https://github.com/gjkim42)) +- Fixed a bug where `kubectl` drain would consider a pod as having been deleted if an error occurs while calling the API. ([#122574](https://github.com/kubernetes/kubernetes/pull/122574), [@brianpursley](https://github.com/brianpursley)) +- Fixed a potential data race in DRA with no known real-world implications. ([#123222](https://github.com/kubernetes/kubernetes/pull/123222), [@pohly](https://github.com/pohly)) +- Fixed a race condition in the iptables mode of kube-proxy in `1.27` and later + that could result in some updates getting lost (e.g., when a service gets a + new endpoint, the rules for the new endpoint might not be added until + much later). ([#122204](https://github.com/kubernetes/kubernetes/pull/122204), [@danwinship](https://github.com/danwinship)) +- Fixed a regression in "kubeadm init" where a user-specified --kubeconfig file was being ignored. ([#122735](https://github.com/kubernetes/kubernetes/pull/122735), [@avorima](https://github.com/avorima)) +- Fixed a regression in kubectl version `1.29.0` where the `--attach` flag was not honored. + ([#122447](https://github.com/kubernetes/kubernetes/pull/122447), [@ardaguclu](https://github.com/ardaguclu)) +- Fixed an error when trying to expand a volume that does not require node expansion. ([#123055](https://github.com/kubernetes/kubernetes/pull/123055), [@gnufied](https://github.com/gnufied)) +- Fixed an issue calculating total CPU usage reported for Windows nodes. ([#122999](https://github.com/kubernetes/kubernetes/pull/122999), [@marosset](https://github.com/marosset)) +- Fixed an issue to ignore unnecessary node events and improve daemonset controller performance. ([#121669](https://github.com/kubernetes/kubernetes/pull/121669), [@xigang](https://github.com/xigang)) +- Fixed an issue where the `configmap`, `secret`, `projected`, and `downwardAPI` volume types didn't create user-visible files after a kubelet restart. This fix ensures data persistence and accessibility after restarts. ([#122807](https://github.com/kubernetes/kubernetes/pull/122807), [@carlory](https://github.com/carlory)) +- Fixed bug where health check could pass while APIServices are missing from aggregated discovery. ([#122883](https://github.com/kubernetes/kubernetes/pull/122883), [@Jefftree](https://github.com/Jefftree)) +- Fixed bug where providing a FieldPath to a CRD Validation Rule would erroneously affect the reported field path of other unrelated CRD Validation Rules on the same schema. ([#123475](https://github.com/kubernetes/kubernetes/pull/123475), [@alexzielenski](https://github.com/alexzielenski)) +- Fixed enabling consistent list from watch cache that used to work for resourceVersion=0 ([#123676](https://github.com/kubernetes/kubernetes/pull/123676), [@serathius](https://github.com/serathius)) +- Fixed node lifecycle controller panic when conditionType ready is been patch `nil` by mistake. ([#122874](https://github.com/kubernetes/kubernetes/pull/122874), [@fusida](https://github.com/fusida)) +- Fixed panic of Evented `PLEG` during kubelet start-up. ([#122475](https://github.com/kubernetes/kubernetes/pull/122475), [@pacoxu](https://github.com/pacoxu)) +- Fixed resource deletion failure caused by quota calculation error when `InPlacePodVerticalScaling` is turned on. ([#122701](https://github.com/kubernetes/kubernetes/pull/122701), [@carlory](https://github.com/carlory)) +- For statically provisioned PVs, if their volume source is of CSI type or they have a migrated annotation, when they are deleted, the PersistentVolume controller won't change their phase to the Failed state. With this patch, the external provisioner can remove the finalizer in the next reconcile loop. Unfortunately, if a previously existing PV has the Failed state, this patch won't take effect. Users are required to remove the finalizer manually. ([#122030](https://github.com/kubernetes/kubernetes/pull/122030), [@carlory](https://github.com/carlory)) +- Improved the efficiency of NodeAdded QueueingHint by registering UpdateNodeTaint event for plugins that have NodeAdded event but don't have UpdateNodeTaint event. This ensures better requeuing efficiency and prevents Pods from being stuck in the unschedulable pod pool. + ([#122292](https://github.com/kubernetes/kubernetes/pull/122292), [@sanposhiho](https://github.com/sanposhiho)) +- JWTs used in service account and OIDC authentication are now strictly parsed to confirm that they use compact serialization. Other encodings were not previously accepted, but would result in different unspecific errors. ([#123540](https://github.com/kubernetes/kubernetes/pull/123540), [@enj](https://github.com/enj)) +- Kube-apiserver: Fixed a `1.27`+ regression in watch stability by serving watch requests without a `resourceVersion` from the watch cache by default, as in <`1.27` (disabling the change in PR 115096 by default). This mitigates the impact of an etcd watch bug (https://github.com/etcd-io/etcd/pull/17555). If the 1.27 change in PR 115096 to serve these requests from underlying storage is still desired despite the impact on watch stability, it can be re-enabled with a `WatchFromStorageWithoutResourceVersion` feature gate. ([#123935](https://github.com/kubernetes/kubernetes/pull/123935), [@serathius](https://github.com/serathius)) +- Kubeadm: avoided uploading a defaulted flag value "--authorization-mode=Node,RBAC" for the kube-apiserver in the ClusterConfiguration stored in the "kube-system/kubeadm-config" ConfigMap. "Node,RBAC" are already the kubeadm defaults for this flag, so this action is redundant. ([#123555](https://github.com/kubernetes/kubernetes/pull/123555), [@neolit123](https://github.com/neolit123)) +- Kubeadm: fixed a bug during kubeadm upgrade, where it is not possible to mount a new device and create a symbolic link for /etc/kubernetes (or a sub-directory) so that kubeadm stores its information on the mounted device. ([#123406](https://github.com/kubernetes/kubernetes/pull/123406), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: the `kubelet-finalize` phase of `kubeadm init` no longer requires the kubelet kubeconfig to have a specific authinfo. ([#123171](https://github.com/kubernetes/kubernetes/pull/123171), [@vrutkovs](https://github.com/vrutkovs)) +- OpenAPI V2 will no longer publish aggregated API server OpenAPI for group versions that do not match the APIService specified group version. ([#123570](https://github.com/kubernetes/kubernetes/pull/123570), [@Jefftree](https://github.com/Jefftree)) +- Patched a leak of a discovery document that would occur when an Aggregated APIService changed its Spec.Service field and did not change it back. ([#123517](https://github.com/kubernetes/kubernetes/pull/123517), [@Jefftree](https://github.com/Jefftree)) +- Prevented watch cache starvation by moving its watch to separate RPC. Added a `SeparateCacheWatchRPC` feature flag to disable this behavior. ([#123532](https://github.com/kubernetes/kubernetes/pull/123532), [@serathius](https://github.com/serathius)) +- Reverted the `QueueingHint` implementation for `NodeUnschedulable` due to potential scenarios where events that make Pods schedulable could be missed. ([#122288](https://github.com/kubernetes/kubernetes/pull/122288), [@sanposhiho](https://github.com/sanposhiho)) +- The PersistentVolume controller no longer automatically assigns a default `StorageClass` to Persistent Volume Claims (PVCs) with an empty `storageClassName`. + ([#122704](https://github.com/kubernetes/kubernetes/pull/122704), [@carlory](https://github.com/carlory)) +- The initialization of nodes using external cloud providers now waits for the providerID value to be available before untainting it. This ensures that nodes are not declared Ready without necessary information such as the providerID and zone labels, which are required for integrations like load balancers to function correctly. Cloud providers that do not implement the GetInstanceProviderID method will not require the providerID to be set and will not fail to initialize the node for backward compatibility. ([#123713](https://github.com/kubernetes/kubernetes/pull/123713), [@aojea](https://github.com/aojea)) +- Updated google.golang.org/protobuf to `v1.33.0` to resolve `CVE-2024-24786`. ([#123758](https://github.com/kubernetes/kubernetes/pull/123758), [@liggitt](https://github.com/liggitt)) +- Updated the sample-apiserver manifest example to include correct RBAC configurations. ([#123479](https://github.com/kubernetes/kubernetes/pull/123479), [@Jefftree](https://github.com/Jefftree)) +- When initializing nodes using external cloud-providers, the process now waits for the providerID value to be available before declaring the node ready. This ensures that nodes are not marked as Ready prematurely due to communication errors with the cloud-provider. The providerID and zone labels are necessary for integrations such as load balancers to function correctly. Users can choose to opt out of this behavior by setting the feature flag OptionalProviderID in the cloud-controller-manager. + ([#123331](https://github.com/kubernetes/kubernetes/pull/123331), [@aojea](https://github.com/aojea)) +- When using `kubectl logs <pod-name>` and the pod is not found, the error message now includes the namespace. Previously, the message would be "Error from server (NotFound): pods "my-pod-name" not found". Now, it reflects the namespace in the message as follows: "Error from server (NotFound): pods "my-pod-name" not found in namespace "default"". + ([#120111](https://github.com/kubernetes/kubernetes/pull/120111), [@newtondev](https://github.com/newtondev)) +- When using a claim with immediate allocation and a pod referencing that claim couldn't get scheduled, the scheduler incorrectly may have tried to deallocate that claim. ([#122415](https://github.com/kubernetes/kubernetes/pull/122415), [@pohly](https://github.com/pohly)) +- [kubeadam][structured authz] avoided setting default `--authorization-mode` when `--authorization-config` is provided ([#123654](https://github.com/kubernetes/kubernetes/pull/123654), [@LiorLieberman](https://github.com/LiorLieberman)) +- `ValidateVolumeAttributesClassUpdate` also validates new VolumeAttributesClass object. ([#122449](https://github.com/kubernetes/kubernetes/pull/122449), [@carlory](https://github.com/carlory)) + +### Other (Cleanup or Flake) + +- Accepted zero as a default value for `kubectl create` token duration. + ([#123565](https://github.com/kubernetes/kubernetes/pull/123565), [@ah8ad3](https://github.com/ah8ad3)) +- Cleanup: removed `getStorageAccountName` warning messages. + ([#121983](https://github.com/kubernetes/kubernetes/pull/121983), [@andyzhangx](https://github.com/andyzhangx)) +- Client-go: Optimized leaders renewing leases by updating leader lock optimistically without getting the record from the API server first. Also, a new metric `leader_election_slowpath_total` was added to allow users to monitor how many leader elections are updated non-optimistically. + ([#122069](https://github.com/kubernetes/kubernetes/pull/122069), [@linxiulei](https://github.com/linxiulei)) +- Locked the GA feature-gate `ConsistentHTTPGetHandlers` to default. + ([#122578](https://github.com/kubernetes/kubernetes/pull/122578), [@carlory](https://github.com/carlory)) +- Migrated `client-go/metadata` to contextual logging. + ([#122225](https://github.com/kubernetes/kubernetes/pull/122225), [@ricardoapl](https://github.com/ricardoapl)) +- Removed the GA feature gate `RemoveSelfLink`. + ([#122468](https://github.com/kubernetes/kubernetes/pull/122468), [@carlory](https://github.com/carlory)) +- Removed the generally available feature gate `ExpandedDNSConfig`. + ([#122086](https://github.com/kubernetes/kubernetes/pull/122086), [@bzsuni](https://github.com/bzsuni)) +- Removed the generally available feature gate `KubeletPodResourcesGetAllocatable`. + ([#122138](https://github.com/kubernetes/kubernetes/pull/122138), [@ii2day](https://github.com/ii2day)) +- Removed the generally available feature gate `KubeletPodResources`. + ([#122139](https://github.com/kubernetes/kubernetes/pull/122139), [@bzsuni](https://github.com/bzsuni)) +- Removed the generally available feature gate `MinimizeIPTablesRestore`. + ([#122136](https://github.com/kubernetes/kubernetes/pull/122136), [@ty-dc](https://github.com/ty-dc)) +- The GA feature-gate `APISelfSubjectReview` has been removed, and the feature is unconditionally enabled. + ([#122032](https://github.com/kubernetes/kubernetes/pull/122032), [@carlory](https://github.com/carlory)) +- Updated `etcd` to version `3.5.12`. + ([#123150](https://github.com/kubernetes/kubernetes/pull/123150), [@bzsuni](https://github.com/bzsuni)) +- Updated cri-tools to `v1.29.0`. + ([#122271](https://github.com/kubernetes/kubernetes/pull/122271), [@saschagrunert](https://github.com/saschagrunert)) +- Upgraded metrics server to `v0.7.0`. + ([#123504](https://github.com/kubernetes/kubernetes/pull/123504), [@pacoxu](https://github.com/pacoxu)) +- `kubeadm completion` error message now displayed supported shell types when an invalid shell was specified. + ([#122477](https://github.com/kubernetes/kubernetes/pull/122477), [@SataQiu](https://github.com/SataQiu)) +- kubeadm: ensured that a variety of API server requests were retried during "init", "join", "upgrade", "reset" workflows. Prior to this change, some API server requests, such as creating or updating ConfigMaps, were "one-shot" - i.e., they could fail if the API server dropped connectivity for a very short period of time. + ([#123271](https://github.com/kubernetes/kubernetes/pull/123271), [@neolit123](https://github.com/neolit123)) +- kubeadm: improved the overall logic, error handling, and output messages when waiting for the kubelet and API server `/healthz` endpoints to return `OK`. The kubelet and API server checks no longer ran in parallel, but one after another (in serial). + ([#121958](https://github.com/kubernetes/kubernetes/pull/121958), [@neolit123](https://github.com/neolit123)) +- Added an optimization to reduce stack memory usage for watch requests. It can be disabled with the feature gate: `APIServingWithRoutine=false` ([#120902](https://github.com/kubernetes/kubernetes/pull/120902), [@linxiulei](https://github.com/linxiulei)) +- Added warning for `PV` on reclaim policy when it is `Recycle`. ([#122339](https://github.com/kubernetes/kubernetes/pull/122339), [@carlory](https://github.com/carlory)) +- Deprecated the `azureFile` in-tree storage plugin. ([#122576](https://github.com/kubernetes/kubernetes/pull/122576), [@carlory](https://github.com/carlory)) +- Etcd image `v3.5.12` has been built. ([#123069](https://github.com/kubernetes/kubernetes/pull/123069), [@bzsuni](https://github.com/bzsuni)) +- Fixed a bug in scheduler requeueing where registered wildcard cluster event sources didn't work. ([#123117](https://github.com/kubernetes/kubernetes/pull/123117), [@kerthcet](https://github.com/kerthcet)) +- Kubeadm: the `bridge-nf-call-iptables=1` and `bridge-nf-call-ip6tables=1` preflight checks are removed since not all the network implementations require this setting, network plugins are responsible for setting this correctly depending on whether or not they connect containers to Linux bridges or use some other mechanism. ([#123464](https://github.com/kubernetes/kubernetes/pull/123464), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: used `ttlSecondsAfterFinished` to automatically clean up the `upgrade-health-check` Job that runs during upgrade preflighting. ([#122079](https://github.com/kubernetes/kubernetes/pull/122079), [@carlory](https://github.com/carlory)) +- Migrated the kube-proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#122197](https://github.com/kubernetes/kubernetes/pull/122197), [@fatsheep9146](https://github.com/fatsheep9146)) +- Promoted feature-gate `LegacyServiceAccountTokenCleanUp` to GA and locked it to default. ([#122635](https://github.com/kubernetes/kubernetes/pull/122635), [@carlory](https://github.com/carlory)) +- Removed GA featuregate about `ExperimentalHostUserNamespaceDefaultingGate` in `1.30`. ([#122088](https://github.com/kubernetes/kubernetes/pull/122088), [@bzsuni](https://github.com/bzsuni)) +- Removed the GA feature gate for `IPTablesOwnershipCleanup` in version `1.30`. ([#122137](https://github.com/kubernetes/kubernetes/pull/122137), [@bzsuni](https://github.com/bzsuni)) +- Removed the generally available feature gate `ProxyTerminatingEndpoints`. ([#122134](https://github.com/kubernetes/kubernetes/pull/122134), [@ty-dc](https://github.com/ty-dc)) +- The `--cidr-allocator-type` option set to `CloudAllocator` for `kube-controller-manager` will be deprecated and removed in a future release. Users are advised to transition to and explore the available options provided by their external cloud provider. ([#123011](https://github.com/kubernetes/kubernetes/pull/123011), [@dims](https://github.com/dims)) +- The feature gate `LegacyServiceAccountTokenTracking` (GA since 1.28) is now removed because the feature is unconditionally enabled. ([#122409](https://github.com/kubernetes/kubernetes/pull/122409), [@Rei1010](https://github.com/Rei1010)) +- The in-tree cloud provider for Azure has now been removed. Please use the external cloud provider and CSI driver from https://github.com/kubernetes/cloud-provider-azure instead. ([#122857](https://github.com/kubernetes/kubernetes/pull/122857), [@nilo19](https://github.com/nilo19)) +- The in-tree cloud provider for vSphere has been deprecated and removed. Users are advised to utilize the external cloud provider and CSI driver available at https://github.com/kubernetes/cloud-provider-vsphere. ([#122937](https://github.com/kubernetes/kubernetes/pull/122937), [@dims](https://github.com/dims)) +- Updated `kube-dns` to `v1.22.27`. ([#121736](https://github.com/kubernetes/kubernetes/pull/121736), [@ty-dc](https://github.com/ty-dc)) +- Updated cni-plugins to version `v1.4.0`. ([#122178](https://github.com/kubernetes/kubernetes/pull/122178), [@saschagrunert](https://github.com/saschagrunert)) +- Updated kubedns and nodelocaldns to version `v1.23.0`. ([#123310](https://github.com/kubernetes/kubernetes/pull/123310), [@bzsuni](https://github.com/bzsuni)) +- `kube-proxy` nftables mode is now compatible with kernel `5.4`. ([#122296](https://github.com/kubernetes/kubernetes/pull/122296), [@tnqn](https://github.com/tnqn)) +- Renamed Label cluster to `storage_cluster_id` for `apiserver_storage_size_bytes metric` ([#124283](https://github.com/kubernetes/kubernetes/pull/124283), [dims](https://github.com/dims)) +- Bumped the stability level of apiserver_storage_size_bytes to `STABLE` ([#123342](https://github.com/kubernetes/kubernetes/pull/123342), [@logicalhan](https://github.com/logicalhan)) + +### Uncategorized + +- Fixed an issue where `kubectl apply` could panic when imported as a library. ([#122346](https://github.com/kubernetes/kubernetes/pull/122346), [@Jefftree](https://github.com/Jefftree)) \ No newline at end of file diff --git a/releases/release-1.30/release-notes/sessions/maps-1706895622.json b/releases/release-1.30/release-notes/sessions/maps-1706895622.json index 89d3ed08deb..ad951c337d0 100644 --- a/releases/release-1.30/release-notes/sessions/maps-1706895622.json +++ b/releases/release-1.30/release-notes/sessions/maps-1706895622.json @@ -1,443 +1,443 @@ -{ - "mail": "smith.rashan@gmail.com", - "name": "rashansmith", - "date": 1706895622, - "prs": [ - { - "nr": 122296, - "hash": "3d5c84f3aeb164c46425a7cbe3f7db8ee5dcffe6" - }, - { - "nr": 122339, - "hash": "97b2eeb3eadd2d56b22fdc256463d39581ec3ccc" - }, - { - "nr": 121912, - "hash": "e4e77028e67a00224ea76a25194577650679c7eb" - }, - { - "nr": 122079, - "hash": "049d2a979481375babfd25b0a7fcf5ac2e6dd2a0" - }, - { - "nr": 122069, - "hash": "30b5c8e8cf3e12130d24a7d4099388cfa249f73a" - }, - { - "nr": 120246, - "hash": "6cd9158186e11c294bc4aec7946c219d6aa50e59" - }, - { - "nr": 122961, - "hash": "dbe5be41404cf36220c7d1af4391f700dc27e962" - }, - { - "nr": 121876, - "hash": "68b764228294c1f89d56e92de73c0e243e27ea4a" - }, - { - "nr": 122704, - "hash": "f8b91e38856f604d010e8d1ecbf9a224a19cc525" - }, - { - "nr": 122142, - "hash": "fecdd94fd7c6d6a16163f4c8bef99ffe06fdf5c2" - }, - { - "nr": 120159, - "hash": "f129eba00a87514cc3899dd8cbae4ff2e9328cc3" - }, - { - "nr": 117024, - "hash": "143c451a957468e1bcfe1d3d4d3562ecb1f40735" - }, - { - "nr": 122204, - "hash": "c25143a75d8292f427150a67800895ce0ee9cc8b" - }, - { - "nr": 122288, - "hash": "58b048aa370044470f2d3f0b0e633950723e8340" - }, - { - "nr": 119200, - "hash": "90c97f7d07058d10a752b3246311a45cacb9323a" - }, - { - "nr": 122574, - "hash": "364e3f65bcdac67a9ff8c202a3392c6b0cb77403" - }, - { - "nr": 122013, - "hash": "fe05274e9deefe00949bbfeff93d8b0408fbbead" - }, - { - "nr": 117046, - "hash": "1b82be0d876432bacb233b6519d9f03ac31cf2ca" - }, - { - "nr": 122735, - "hash": "05629585840b1d5967e559b8e610f04068b66cc7" - }, - { - "nr": 122178, - "hash": "d9a1ec52a23acbb0df1602f1a7525ada40be76a2" - }, - { - "nr": 122088, - "hash": "86bb3ab9d671d21e7caf08cd4fe4e0131333b4ee" - }, - { - "nr": 122729, - "hash": "6be42051fb162683069bea4dd12fd45dad6d3fdd" - }, - { - "nr": 122614, - "hash": "6d531475a994e4f5f082cdcfcf3d160c2c24e09a" - }, - { - "nr": 122197, - "hash": "53be6f3d436c3ff3894425d16ca72cc49e6bd0f8" - }, - { - "nr": 121958, - "hash": "eec0e57b64bb82a7ce6949d7a20c9dbf473b2941" - }, - { - "nr": 121736, - "hash": "8b6add9950c8ee078184894d952cd7e16e6c82e1" - }, - { - "nr": 122475, - "hash": "a290ee8444a983f0cb7e94ccfc56e745e4556c11" - }, - { - "nr": 119177, - "hash": "a225fc5e576bb50f46245586c6af4470e035c7d9" - }, - { - "nr": 122329, - "hash": "a3a5e5a5e4923041fe4b0f08b8e36b69a0bb72e8" - }, - { - "nr": 119779, - "hash": "2199c26568e33f2237ac072e183ea613ce90e6fe" - }, - { - "nr": 122692, - "hash": "640cc226eff6d5e475eee80318da15d2c52206f6" - }, - { - "nr": 122857, - "hash": "01a2e487143afcdb42567628d51ed9b8fb174082" - }, - { - "nr": 122937, - "hash": "a8fc0a5c0da782c9d9178d925fc03c2fa86c567f" - }, - { - "nr": 122285, - "hash": "2de33c2a698f532bcefe1504cd8e87a5a8b53ad7" - }, - { - "nr": 122137, - "hash": "9b78044154ff2a37879e6a48d42ce3c18d9bbda7" - }, - { - "nr": 122134, - "hash": "17886629a62db11d66b89059615f3343ce9ca6a8" - }, - { - "nr": 122807, - "hash": "21dc9efa3ac021e007021760e18f742aae826375" - }, - { - "nr": 122555, - "hash": "6df06f26cecd2de3fdbd86b3c45ddb139ee0667b" - }, - { - "nr": 122233, - "hash": "c449a1bfcb9209432dd9fde956d15a47df38b54a" - }, - { - "nr": 122231, - "hash": "6b57812006a457ad9123a2c5bb5acb14d392023a" - }, - { - "nr": 122705, - "hash": "d831f653fac7f799e68c22f5b53df1412aed7fd0" - }, - { - "nr": 121815, - "hash": "703e81edd269d80665e86fc5316831065f4c6bc4" - }, - { - "nr": 120631, - "hash": "dfaf6564a7e4cec61264db6f6acb7b6fe898483e" - }, - { - "nr": 122558, - "hash": "56f0c5481a8ea959e965027c2c5c264847dbdbe5" - }, - { - "nr": 122022, - "hash": "5679da40f3e033394bd08e33654eb5139d69aaab" - }, - { - "nr": 115768, - "hash": "1211aa5e681059b61107983391f00dad2fa21a68" - }, - { - "nr": 122023, - "hash": "eef8b23e8767da87b16153b9ce7f012df52bba6e" - }, - { - "nr": 122556, - "hash": "e3e41f36b7f6108544348daa667cccf85b2de6f7" - }, - { - "nr": 123003, - "hash": "08bfd11ea5f975e4c60699f84dadbcde946d5e37" - }, - { - "nr": 122508, - "hash": "cafd1e47b91f27f43463c63de5bfef3a7187e1b9" - }, - { - "nr": 122415, - "hash": "b7d412b97dfcc6a1ba3c026859f687ae63e1dd7d" - }, - { - "nr": 122309, - "hash": "447b7ab4aa66cd04c4276fbe8ec4d91ef3991c6f" - }, - { - "nr": 122068, - "hash": "ac64bc0d638b9654adf3455d2a21d90470d53c71" - }, - { - "nr": 122701, - "hash": "1a22b002a3edbc080e2409dbc0404b656f56e32e" - }, - { - "nr": 121387, - "hash": "93332e73ac077aac0fa2074e37f442998ae1ba4e" - }, - { - "nr": 122618, - "hash": "31972451c6d01e7ae613cf9735b0545265820108" - }, - { - "nr": 122523, - "hash": "7c76b40bb99c3c812912d5566df9ff9d59756cb4" - }, - { - "nr": 122346, - "hash": "92994ca464fbc8a953046dc949ad4e24b1ea46eb" - }, - { - "nr": 121908, - "hash": "5829fac8e89488f7b6ea6284cdc7a97dc77b54df" - }, - { - "nr": 122530, - "hash": "de9bfc9611ee59d6fff3873b15551e9c31e6de57" - }, - { - "nr": 122030, - "hash": "7a154e605387b32abe2ddecb6bbf61dca4b00e9c" - }, - { - "nr": 122640, - "hash": "3d4e23f91b67e8cd72fc3caa1ba8176ce2cf56e9" - }, - { - "nr": 122750, - "hash": "dc9487dc25d6ffa4277e51569bd5401f1e7b62d6" - }, - { - "nr": 122647, - "hash": "1ceb71c04a470986182521dc0b40894c8c0cbaba" - }, - { - "nr": 118756, - "hash": "85b7fe6d2b99ac78b9886189cbc79628d6540057" - }, - { - "nr": 122341, - "hash": "82565bad8477bf702d2a0e4fd4670022b4bc2b39" - }, - { - "nr": 121413, - "hash": "af14755a8021ed0e6c9fbd7835151747a9305685" - }, - { - "nr": 122804, - "hash": "e048c464452fae8bab364fe782d20e0b3c9743f5" - }, - { - "nr": 122271, - "hash": "e3c90744d0d05a5f0f0baff2839d9cc8b8db5abf" - }, - { - "nr": 122225, - "hash": "34a5efd5671842ebace9cc416c237bc01290b761" - }, - { - "nr": 118389, - "hash": "8d2c567a63f0cfc6c29c441ebea2a7f3b341c1de" - }, - { - "nr": 122498, - "hash": "e4fc2858ace5f680cad00bdc71aac15175dded14" - }, - { - "nr": 122435, - "hash": "79539a3728d89896aff9ef9162fbd1aa11267190" - }, - { - "nr": 122041, - "hash": "cd1fa8c547ff394e43e1c22c8e82ae782c46dbdd" - }, - { - "nr": 119923, - "hash": "d1562f7639221ecd20ffd6201d61dec91ddf4b34" - }, - { - "nr": 122138, - "hash": "e7ced2ae78cc42c7840d32ce62192247c796f2d1" - }, - { - "nr": 122086, - "hash": "1569e0a85e3655f44aadae7106d2f0cf72ab152b" - }, - { - "nr": 116209, - "hash": "8fea25256116ebcf61697dad408f34a99e45299b" - }, - { - "nr": 122571, - "hash": "d41769940412f807e1963bc596c2419088f3eb59" - }, - { - "nr": 122058, - "hash": "58857d3df1142e0d49e2298ac60cec84a2165b1c" - }, - { - "nr": 122914, - "hash": "ca91025809e574a336a694089c46e1f2e28aeb32" - }, - { - "nr": 122449, - "hash": "84cd943c76bf661167e3458356659d9464239250" - }, - { - "nr": 123011, - "hash": "20d2523e32094bb7e00c6c0512b37023091424fd" - }, - { - "nr": 122697, - "hash": "040628820e2e491f9d194689a02a3c0407616cd6" - }, - { - "nr": 122600, - "hash": "951686e3a49eec1ac827937c5deb611a9b5a8442" - }, - { - "nr": 121954, - "hash": "74c60ad48c81a69383281a6f3de9e6197c942fc8" - }, - { - "nr": 121983, - "hash": "6ccb7af9b0704418420074b1cff007c2f922d675" - }, - { - "nr": 122893, - "hash": "0ecf806ec2ba194d679cef7bdfbb9c43a48f5bb2" - }, - { - "nr": 122139, - "hash": "efc59460ae34bfea2f039db087845572e67e1576" - }, - { - "nr": 122393, - "hash": "8edb169d279015e6007a5130066613e12873908b" - }, - { - "nr": 122334, - "hash": "2b2a8d699601b5fa821b31a96fb07777e1cf864b" - }, - { - "nr": 122889, - "hash": "34cdae2a471957ea02cef72b690aa38ebd3548c3" - }, - { - "nr": 122503, - "hash": "f9fb69fe9cac7f426a98b6b8042d8591657974dc" - }, - { - "nr": 122468, - "hash": "0c6d469cbc3fca935a0b2f80749a197a92bb0106" - }, - { - "nr": 122724, - "hash": "e979f6667f497cbbaf75870cdceec8b879d3801e" - }, - { - "nr": 122578, - "hash": "6a741e0e42cabf782c6ddeb48165efcebc8eeb29" - }, - { - "nr": 122409, - "hash": "5e5c42c2613046fb60d38bc0efe219254547db47" - }, - { - "nr": 122195, - "hash": "999df1427271544ede2aba402a86534761967c74" - }, - { - "nr": 122710, - "hash": "4a48327f2ab39f96c86805e0cbdf37c53fad330e" - }, - { - "nr": 120291, - "hash": "7175a41bcf501b878d951f3672cb0e7963a32e5f" - }, - { - "nr": 122576, - "hash": "9b878809e70cfdf48ab747a275933a8abc520b9c" - }, - { - "nr": 122032, - "hash": "e87927f045fd9af8a2a9740c86f667258e61419c" - }, - { - "nr": 122276, - "hash": "5eeb5c66a22a0424dcc5c16d50cc8de8f43620b0" - }, - { - "nr": 121834, - "hash": "ae26c344db900b397e14655f995e481b3c7f53eb" - }, - { - "nr": 122211, - "hash": "92ede1357e6b597336426daa8670626e8dc8ff7d" - }, - { - "nr": 121565, - "hash": "8dfa5405a4bf80d6c398556d08588cc87b447e81" - }, - { - "nr": 122136, - "hash": "1ac74547f5fc601cd61b8a399e79f2a2976e0b02" - }, - { - "nr": 121669, - "hash": "c27bbce27a63b1abc1cb21f0ea7804fb883159bc" - }, - { - "nr": 122477, - "hash": "f3499318285ea9fb8809acb28c02f0d82670e358" - } - ] +{ + "mail": "smith.rashan@gmail.com", + "name": "rashansmith", + "date": 1706895622, + "prs": [ + { + "nr": 122296, + "hash": "3d5c84f3aeb164c46425a7cbe3f7db8ee5dcffe6" + }, + { + "nr": 122339, + "hash": "97b2eeb3eadd2d56b22fdc256463d39581ec3ccc" + }, + { + "nr": 121912, + "hash": "e4e77028e67a00224ea76a25194577650679c7eb" + }, + { + "nr": 122079, + "hash": "049d2a979481375babfd25b0a7fcf5ac2e6dd2a0" + }, + { + "nr": 122069, + "hash": "30b5c8e8cf3e12130d24a7d4099388cfa249f73a" + }, + { + "nr": 120246, + "hash": "6cd9158186e11c294bc4aec7946c219d6aa50e59" + }, + { + "nr": 122961, + "hash": "dbe5be41404cf36220c7d1af4391f700dc27e962" + }, + { + "nr": 121876, + "hash": "68b764228294c1f89d56e92de73c0e243e27ea4a" + }, + { + "nr": 122704, + "hash": "f8b91e38856f604d010e8d1ecbf9a224a19cc525" + }, + { + "nr": 122142, + "hash": "fecdd94fd7c6d6a16163f4c8bef99ffe06fdf5c2" + }, + { + "nr": 120159, + "hash": "f129eba00a87514cc3899dd8cbae4ff2e9328cc3" + }, + { + "nr": 117024, + "hash": "143c451a957468e1bcfe1d3d4d3562ecb1f40735" + }, + { + "nr": 122204, + "hash": "c25143a75d8292f427150a67800895ce0ee9cc8b" + }, + { + "nr": 122288, + "hash": "58b048aa370044470f2d3f0b0e633950723e8340" + }, + { + "nr": 119200, + "hash": "90c97f7d07058d10a752b3246311a45cacb9323a" + }, + { + "nr": 122574, + "hash": "364e3f65bcdac67a9ff8c202a3392c6b0cb77403" + }, + { + "nr": 122013, + "hash": "fe05274e9deefe00949bbfeff93d8b0408fbbead" + }, + { + "nr": 117046, + "hash": "1b82be0d876432bacb233b6519d9f03ac31cf2ca" + }, + { + "nr": 122735, + "hash": "05629585840b1d5967e559b8e610f04068b66cc7" + }, + { + "nr": 122178, + "hash": "d9a1ec52a23acbb0df1602f1a7525ada40be76a2" + }, + { + "nr": 122088, + "hash": "86bb3ab9d671d21e7caf08cd4fe4e0131333b4ee" + }, + { + "nr": 122729, + "hash": "6be42051fb162683069bea4dd12fd45dad6d3fdd" + }, + { + "nr": 122614, + "hash": "6d531475a994e4f5f082cdcfcf3d160c2c24e09a" + }, + { + "nr": 122197, + "hash": "53be6f3d436c3ff3894425d16ca72cc49e6bd0f8" + }, + { + "nr": 121958, + "hash": "eec0e57b64bb82a7ce6949d7a20c9dbf473b2941" + }, + { + "nr": 121736, + "hash": "8b6add9950c8ee078184894d952cd7e16e6c82e1" + }, + { + "nr": 122475, + "hash": "a290ee8444a983f0cb7e94ccfc56e745e4556c11" + }, + { + "nr": 119177, + "hash": "a225fc5e576bb50f46245586c6af4470e035c7d9" + }, + { + "nr": 122329, + "hash": "a3a5e5a5e4923041fe4b0f08b8e36b69a0bb72e8" + }, + { + "nr": 119779, + "hash": "2199c26568e33f2237ac072e183ea613ce90e6fe" + }, + { + "nr": 122692, + "hash": "640cc226eff6d5e475eee80318da15d2c52206f6" + }, + { + "nr": 122857, + "hash": "01a2e487143afcdb42567628d51ed9b8fb174082" + }, + { + "nr": 122937, + "hash": "a8fc0a5c0da782c9d9178d925fc03c2fa86c567f" + }, + { + "nr": 122285, + "hash": "2de33c2a698f532bcefe1504cd8e87a5a8b53ad7" + }, + { + "nr": 122137, + "hash": "9b78044154ff2a37879e6a48d42ce3c18d9bbda7" + }, + { + "nr": 122134, + "hash": "17886629a62db11d66b89059615f3343ce9ca6a8" + }, + { + "nr": 122807, + "hash": "21dc9efa3ac021e007021760e18f742aae826375" + }, + { + "nr": 122555, + "hash": "6df06f26cecd2de3fdbd86b3c45ddb139ee0667b" + }, + { + "nr": 122233, + "hash": "c449a1bfcb9209432dd9fde956d15a47df38b54a" + }, + { + "nr": 122231, + "hash": "6b57812006a457ad9123a2c5bb5acb14d392023a" + }, + { + "nr": 122705, + "hash": "d831f653fac7f799e68c22f5b53df1412aed7fd0" + }, + { + "nr": 121815, + "hash": "703e81edd269d80665e86fc5316831065f4c6bc4" + }, + { + "nr": 120631, + "hash": "dfaf6564a7e4cec61264db6f6acb7b6fe898483e" + }, + { + "nr": 122558, + "hash": "56f0c5481a8ea959e965027c2c5c264847dbdbe5" + }, + { + "nr": 122022, + "hash": "5679da40f3e033394bd08e33654eb5139d69aaab" + }, + { + "nr": 115768, + "hash": "1211aa5e681059b61107983391f00dad2fa21a68" + }, + { + "nr": 122023, + "hash": "eef8b23e8767da87b16153b9ce7f012df52bba6e" + }, + { + "nr": 122556, + "hash": "e3e41f36b7f6108544348daa667cccf85b2de6f7" + }, + { + "nr": 123003, + "hash": "08bfd11ea5f975e4c60699f84dadbcde946d5e37" + }, + { + "nr": 122508, + "hash": "cafd1e47b91f27f43463c63de5bfef3a7187e1b9" + }, + { + "nr": 122415, + "hash": "b7d412b97dfcc6a1ba3c026859f687ae63e1dd7d" + }, + { + "nr": 122309, + "hash": "447b7ab4aa66cd04c4276fbe8ec4d91ef3991c6f" + }, + { + "nr": 122068, + "hash": "ac64bc0d638b9654adf3455d2a21d90470d53c71" + }, + { + "nr": 122701, + "hash": "1a22b002a3edbc080e2409dbc0404b656f56e32e" + }, + { + "nr": 121387, + "hash": "93332e73ac077aac0fa2074e37f442998ae1ba4e" + }, + { + "nr": 122618, + "hash": "31972451c6d01e7ae613cf9735b0545265820108" + }, + { + "nr": 122523, + "hash": "7c76b40bb99c3c812912d5566df9ff9d59756cb4" + }, + { + "nr": 122346, + "hash": "92994ca464fbc8a953046dc949ad4e24b1ea46eb" + }, + { + "nr": 121908, + "hash": "5829fac8e89488f7b6ea6284cdc7a97dc77b54df" + }, + { + "nr": 122530, + "hash": "de9bfc9611ee59d6fff3873b15551e9c31e6de57" + }, + { + "nr": 122030, + "hash": "7a154e605387b32abe2ddecb6bbf61dca4b00e9c" + }, + { + "nr": 122640, + "hash": "3d4e23f91b67e8cd72fc3caa1ba8176ce2cf56e9" + }, + { + "nr": 122750, + "hash": "dc9487dc25d6ffa4277e51569bd5401f1e7b62d6" + }, + { + "nr": 122647, + "hash": "1ceb71c04a470986182521dc0b40894c8c0cbaba" + }, + { + "nr": 118756, + "hash": "85b7fe6d2b99ac78b9886189cbc79628d6540057" + }, + { + "nr": 122341, + "hash": "82565bad8477bf702d2a0e4fd4670022b4bc2b39" + }, + { + "nr": 121413, + "hash": "af14755a8021ed0e6c9fbd7835151747a9305685" + }, + { + "nr": 122804, + "hash": "e048c464452fae8bab364fe782d20e0b3c9743f5" + }, + { + "nr": 122271, + "hash": "e3c90744d0d05a5f0f0baff2839d9cc8b8db5abf" + }, + { + "nr": 122225, + "hash": "34a5efd5671842ebace9cc416c237bc01290b761" + }, + { + "nr": 118389, + "hash": "8d2c567a63f0cfc6c29c441ebea2a7f3b341c1de" + }, + { + "nr": 122498, + "hash": "e4fc2858ace5f680cad00bdc71aac15175dded14" + }, + { + "nr": 122435, + "hash": "79539a3728d89896aff9ef9162fbd1aa11267190" + }, + { + "nr": 122041, + "hash": "cd1fa8c547ff394e43e1c22c8e82ae782c46dbdd" + }, + { + "nr": 119923, + "hash": "d1562f7639221ecd20ffd6201d61dec91ddf4b34" + }, + { + "nr": 122138, + "hash": "e7ced2ae78cc42c7840d32ce62192247c796f2d1" + }, + { + "nr": 122086, + "hash": "1569e0a85e3655f44aadae7106d2f0cf72ab152b" + }, + { + "nr": 116209, + "hash": "8fea25256116ebcf61697dad408f34a99e45299b" + }, + { + "nr": 122571, + "hash": "d41769940412f807e1963bc596c2419088f3eb59" + }, + { + "nr": 122058, + "hash": "58857d3df1142e0d49e2298ac60cec84a2165b1c" + }, + { + "nr": 122914, + "hash": "ca91025809e574a336a694089c46e1f2e28aeb32" + }, + { + "nr": 122449, + "hash": "84cd943c76bf661167e3458356659d9464239250" + }, + { + "nr": 123011, + "hash": "20d2523e32094bb7e00c6c0512b37023091424fd" + }, + { + "nr": 122697, + "hash": "040628820e2e491f9d194689a02a3c0407616cd6" + }, + { + "nr": 122600, + "hash": "951686e3a49eec1ac827937c5deb611a9b5a8442" + }, + { + "nr": 121954, + "hash": "74c60ad48c81a69383281a6f3de9e6197c942fc8" + }, + { + "nr": 121983, + "hash": "6ccb7af9b0704418420074b1cff007c2f922d675" + }, + { + "nr": 122893, + "hash": "0ecf806ec2ba194d679cef7bdfbb9c43a48f5bb2" + }, + { + "nr": 122139, + "hash": "efc59460ae34bfea2f039db087845572e67e1576" + }, + { + "nr": 122393, + "hash": "8edb169d279015e6007a5130066613e12873908b" + }, + { + "nr": 122334, + "hash": "2b2a8d699601b5fa821b31a96fb07777e1cf864b" + }, + { + "nr": 122889, + "hash": "34cdae2a471957ea02cef72b690aa38ebd3548c3" + }, + { + "nr": 122503, + "hash": "f9fb69fe9cac7f426a98b6b8042d8591657974dc" + }, + { + "nr": 122468, + "hash": "0c6d469cbc3fca935a0b2f80749a197a92bb0106" + }, + { + "nr": 122724, + "hash": "e979f6667f497cbbaf75870cdceec8b879d3801e" + }, + { + "nr": 122578, + "hash": "6a741e0e42cabf782c6ddeb48165efcebc8eeb29" + }, + { + "nr": 122409, + "hash": "5e5c42c2613046fb60d38bc0efe219254547db47" + }, + { + "nr": 122195, + "hash": "999df1427271544ede2aba402a86534761967c74" + }, + { + "nr": 122710, + "hash": "4a48327f2ab39f96c86805e0cbdf37c53fad330e" + }, + { + "nr": 120291, + "hash": "7175a41bcf501b878d951f3672cb0e7963a32e5f" + }, + { + "nr": 122576, + "hash": "9b878809e70cfdf48ab747a275933a8abc520b9c" + }, + { + "nr": 122032, + "hash": "e87927f045fd9af8a2a9740c86f667258e61419c" + }, + { + "nr": 122276, + "hash": "5eeb5c66a22a0424dcc5c16d50cc8de8f43620b0" + }, + { + "nr": 121834, + "hash": "ae26c344db900b397e14655f995e481b3c7f53eb" + }, + { + "nr": 122211, + "hash": "92ede1357e6b597336426daa8670626e8dc8ff7d" + }, + { + "nr": 121565, + "hash": "8dfa5405a4bf80d6c398556d08588cc87b447e81" + }, + { + "nr": 122136, + "hash": "1ac74547f5fc601cd61b8a399e79f2a2976e0b02" + }, + { + "nr": 121669, + "hash": "c27bbce27a63b1abc1cb21f0ea7804fb883159bc" + }, + { + "nr": 122477, + "hash": "f3499318285ea9fb8809acb28c02f0d82670e358" + } + ] } \ No newline at end of file diff --git a/releases/release-1.30/release-notes/sessions/maps-1708071507.json b/releases/release-1.30/release-notes/sessions/maps-1708071507.json index d47818ba9eb..cd7985e469b 100644 --- a/releases/release-1.30/release-notes/sessions/maps-1708071507.json +++ b/releases/release-1.30/release-notes/sessions/maps-1708071507.json @@ -1,551 +1,551 @@ -{ - "mail": "orlin@orlix.org", - "name": "OrlinVasilev", - "date": 1708071507, - "prs": [ - { - "nr": 122889, - "hash": "34cdae2a471957ea02cef72b690aa38ebd3548c3" - }, - { - "nr": 122334, - "hash": "2b2a8d699601b5fa821b31a96fb07777e1cf864b" - }, - { - "nr": 119177, - "hash": "a225fc5e576bb50f46245586c6af4470e035c7d9" - }, - { - "nr": 122276, - "hash": "5eeb5c66a22a0424dcc5c16d50cc8de8f43620b0" - }, - { - "nr": 122555, - "hash": "6df06f26cecd2de3fdbd86b3c45ddb139ee0667b" - }, - { - "nr": 122138, - "hash": "e7ced2ae78cc42c7840d32ce62192247c796f2d1" - }, - { - "nr": 122704, - "hash": "f8b91e38856f604d010e8d1ecbf9a224a19cc525" - }, - { - "nr": 122600, - "hash": "951686e3a49eec1ac827937c5deb611a9b5a8442" - }, - { - "nr": 122271, - "hash": "e3c90744d0d05a5f0f0baff2839d9cc8b8db5abf" - }, - { - "nr": 121912, - "hash": "e4e77028e67a00224ea76a25194577650679c7eb" - }, - { - "nr": 122058, - "hash": "58857d3df1142e0d49e2298ac60cec84a2165b1c" - }, - { - "nr": 121983, - "hash": "6ccb7af9b0704418420074b1cff007c2f922d675" - }, - { - "nr": 123117, - "hash": "daba4230cc6aa26c32b58e93ca8b6b1dfc40bd0a" - }, - { - "nr": 123032, - "hash": "8bfa2f0f53ce14fe7f962bf478c081c27c1c3af0" - }, - { - "nr": 122030, - "hash": "7a154e605387b32abe2ddecb6bbf61dca4b00e9c" - }, - { - "nr": 122498, - "hash": "e4fc2858ace5f680cad00bdc71aac15175dded14" - }, - { - "nr": 122705, - "hash": "d831f653fac7f799e68c22f5b53df1412aed7fd0" - }, - { - "nr": 122530, - "hash": "de9bfc9611ee59d6fff3873b15551e9c31e6de57" - }, - { - "nr": 122136, - "hash": "1ac74547f5fc601cd61b8a399e79f2a2976e0b02" - }, - { - "nr": 121736, - "hash": "8b6add9950c8ee078184894d952cd7e16e6c82e1" - }, - { - "nr": 123217, - "hash": "7e2e3cd67bd384b2e38da8d4326c9548735c20a1" - }, - { - "nr": 122807, - "hash": "21dc9efa3ac021e007021760e18f742aae826375" - }, - { - "nr": 122750, - "hash": "79372d3fc5a43351a0a8bdca7b72e805430ba4ed" - }, - { - "nr": 122857, - "hash": "01a2e487143afcdb42567628d51ed9b8fb174082" - }, - { - "nr": 122503, - "hash": "f9fb69fe9cac7f426a98b6b8042d8591657974dc" - }, - { - "nr": 122285, - "hash": "2de33c2a698f532bcefe1504cd8e87a5a8b53ad7" - }, - { - "nr": 122477, - "hash": "f3499318285ea9fb8809acb28c02f0d82670e358" - }, - { - "nr": 123171, - "hash": "c07dd522817554ec590937b6d11f51cba019981b" - }, - { - "nr": 123001, - "hash": "d9d9bbbc23c6540006999412560a9192e971d297" - }, - { - "nr": 122231, - "hash": "6b57812006a457ad9123a2c5bb5acb14d392023a" - }, - { - "nr": 122178, - "hash": "d9a1ec52a23acbb0df1602f1a7525ada40be76a2" - }, - { - "nr": 115768, - "hash": "1211aa5e681059b61107983391f00dad2fa21a68" - }, - { - "nr": 122804, - "hash": "e048c464452fae8bab364fe782d20e0b3c9743f5" - }, - { - "nr": 122576, - "hash": "9b878809e70cfdf48ab747a275933a8abc520b9c" - }, - { - "nr": 122329, - "hash": "a3a5e5a5e4923041fe4b0f08b8e36b69a0bb72e8" - }, - { - "nr": 121954, - "hash": "74c60ad48c81a69383281a6f3de9e6197c942fc8" - }, - { - "nr": 121952, - "hash": "0679bd2e460985a7e9508672fba8196b4d44a6c0" - }, - { - "nr": 123003, - "hash": "08bfd11ea5f975e4c60699f84dadbcde946d5e37" - }, - { - "nr": 122618, - "hash": "31972451c6d01e7ae613cf9735b0545265820108" - }, - { - "nr": 122346, - "hash": "92994ca464fbc8a953046dc949ad4e24b1ea46eb" - }, - { - "nr": 123077, - "hash": "cfef04b2263c7855d0eb9190f21e4e543531acc0" - }, - { - "nr": 122142, - "hash": "fecdd94fd7c6d6a16163f4c8bef99ffe06fdf5c2" - }, - { - "nr": 122296, - "hash": "3d5c84f3aeb164c46425a7cbe3f7db8ee5dcffe6" - }, - { - "nr": 122578, - "hash": "6a741e0e42cabf782c6ddeb48165efcebc8eeb29" - }, - { - "nr": 122729, - "hash": "6be42051fb162683069bea4dd12fd45dad6d3fdd" - }, - { - "nr": 117024, - "hash": "143c451a957468e1bcfe1d3d4d3562ecb1f40735" - }, - { - "nr": 121876, - "hash": "68b764228294c1f89d56e92de73c0e243e27ea4a" - }, - { - "nr": 122556, - "hash": "e3e41f36b7f6108544348daa667cccf85b2de6f7" - }, - { - "nr": 122134, - "hash": "17886629a62db11d66b89059615f3343ce9ca6a8" - }, - { - "nr": 122914, - "hash": "ca91025809e574a336a694089c46e1f2e28aeb32" - }, - { - "nr": 122468, - "hash": "0c6d469cbc3fca935a0b2f80749a197a92bb0106" - }, - { - "nr": 122225, - "hash": "34a5efd5671842ebace9cc416c237bc01290b761" - }, - { - "nr": 120291, - "hash": "7175a41bcf501b878d951f3672cb0e7963a32e5f" - }, - { - "nr": 118756, - "hash": "85b7fe6d2b99ac78b9886189cbc79628d6540057" - }, - { - "nr": 121908, - "hash": "5829fac8e89488f7b6ea6284cdc7a97dc77b54df" - }, - { - "nr": 122846, - "hash": "970447dc1f84f4692cc0c77daab4bcb49b8ff141" - }, - { - "nr": 123093, - "hash": "1744926d2d7dab0745224a967564a640c6d54d7f" - }, - { - "nr": 122523, - "hash": "7c76b40bb99c3c812912d5566df9ff9d59756cb4" - }, - { - "nr": 122647, - "hash": "1ceb71c04a470986182521dc0b40894c8c0cbaba" - }, - { - "nr": 123150, - "hash": "5b35fdc7e2ea3ee684d045ed81a3c4067288355e" - }, - { - "nr": 121669, - "hash": "c27bbce27a63b1abc1cb21f0ea7804fb883159bc" - }, - { - "nr": 122069, - "hash": "30b5c8e8cf3e12130d24a7d4099388cfa249f73a" - }, - { - "nr": 122946, - "hash": "9c45e6f5cf0c523f2c7884291f84f48de6b97fa4" - }, - { - "nr": 121834, - "hash": "ae26c344db900b397e14655f995e481b3c7f53eb" - }, - { - "nr": 122204, - "hash": "c25143a75d8292f427150a67800895ce0ee9cc8b" - }, - { - "nr": 122088, - "hash": "86bb3ab9d671d21e7caf08cd4fe4e0131333b4ee" - }, - { - "nr": 120631, - "hash": "dfaf6564a7e4cec61264db6f6acb7b6fe898483e" - }, - { - "nr": 122013, - "hash": "fe05274e9deefe00949bbfeff93d8b0408fbbead" - }, - { - "nr": 123069, - "hash": "3a7755418fd4964974ba45abad973edd10232209" - }, - { - "nr": 123038, - "hash": "2ecb87555cdbf5589fc0c17678e377f6911f295c" - }, - { - "nr": 122724, - "hash": "e979f6667f497cbbaf75870cdceec8b879d3801e" - }, - { - "nr": 122692, - "hash": "640cc226eff6d5e475eee80318da15d2c52206f6" - }, - { - "nr": 122435, - "hash": "79539a3728d89896aff9ef9162fbd1aa11267190" - }, - { - "nr": 122195, - "hash": "999df1427271544ede2aba402a86534761967c74" - }, - { - "nr": 122022, - "hash": "5679da40f3e033394bd08e33654eb5139d69aaab" - }, - { - "nr": 123098, - "hash": "898391e50b1f462ae8e95da6e6512bff47b05b31" - }, - { - "nr": 122701, - "hash": "1a22b002a3edbc080e2409dbc0404b656f56e32e" - }, - { - "nr": 122558, - "hash": "56f0c5481a8ea959e965027c2c5c264847dbdbe5" - }, - { - "nr": 122139, - "hash": "efc59460ae34bfea2f039db087845572e67e1576" - }, - { - "nr": 123179, - "hash": "cd00aa3a9ce3544cdb1e65bd79c64e07af114797" - }, - { - "nr": 122937, - "hash": "a8fc0a5c0da782c9d9178d925fc03c2fa86c567f" - }, - { - "nr": 122614, - "hash": "6d531475a994e4f5f082cdcfcf3d160c2c24e09a" - }, - { - "nr": 122475, - "hash": "a290ee8444a983f0cb7e94ccfc56e745e4556c11" - }, - { - "nr": 119200, - "hash": "90c97f7d07058d10a752b3246311a45cacb9323a" - }, - { - "nr": 122197, - "hash": "53be6f3d436c3ff3894425d16ca72cc49e6bd0f8" - }, - { - "nr": 120159, - "hash": "f129eba00a87514cc3899dd8cbae4ff2e9328cc3" - }, - { - "nr": 122137, - "hash": "9b78044154ff2a37879e6a48d42ce3c18d9bbda7" - }, - { - "nr": 123011, - "hash": "20d2523e32094bb7e00c6c0512b37023091424fd" - }, - { - "nr": 122640, - "hash": "3d4e23f91b67e8cd72fc3caa1ba8176ce2cf56e9" - }, - { - "nr": 122079, - "hash": "049d2a979481375babfd25b0a7fcf5ac2e6dd2a0" - }, - { - "nr": 122612, - "hash": "b13fcd9e5cf4debccde7acc792c984b34af937e9" - }, - { - "nr": 122735, - "hash": "67532fb39a9828b8cce63de1b267485467e0e68c" - }, - { - "nr": 118389, - "hash": "8d2c567a63f0cfc6c29c441ebea2a7f3b341c1de" - }, - { - "nr": 121413, - "hash": "af14755a8021ed0e6c9fbd7835151747a9305685" - }, - { - "nr": 122635, - "hash": "3db4333b6d7de0a80522a31b5778a42b6200b5dd" - }, - { - "nr": 122341, - "hash": "82565bad8477bf702d2a0e4fd4670022b4bc2b39" - }, - { - "nr": 122309, - "hash": "447b7ab4aa66cd04c4276fbe8ec4d91ef3991c6f" - }, - { - "nr": 122086, - "hash": "1569e0a85e3655f44aadae7106d2f0cf72ab152b" - }, - { - "nr": 122409, - "hash": "5e5c42c2613046fb60d38bc0efe219254547db47" - }, - { - "nr": 122415, - "hash": "b7d412b97dfcc6a1ba3c026859f687ae63e1dd7d" - }, - { - "nr": 116209, - "hash": "8fea25256116ebcf61697dad408f34a99e45299b" - }, - { - "nr": 122023, - "hash": "eef8b23e8767da87b16153b9ce7f012df52bba6e" - }, - { - "nr": 122339, - "hash": "97b2eeb3eadd2d56b22fdc256463d39581ec3ccc" - }, - { - "nr": 122068, - "hash": "ac64bc0d638b9654adf3455d2a21d90470d53c71" - }, - { - "nr": 123170, - "hash": "dcab64e558862578d9d685fb4b720e28beffa06b" - }, - { - "nr": 121958, - "hash": "eec0e57b64bb82a7ce6949d7a20c9dbf473b2941" - }, - { - "nr": 122211, - "hash": "92ede1357e6b597336426daa8670626e8dc8ff7d" - }, - { - "nr": 122041, - "hash": "cd1fa8c547ff394e43e1c22c8e82ae782c46dbdd" - }, - { - "nr": 120642, - "hash": "b0d725c193a0ef27e1f09724dd21825ac6c3845e" - }, - { - "nr": 123082, - "hash": "02bec89987ad9cd46c57bc4c632019f4b7b5f53c" - }, - { - "nr": 119779, - "hash": "2199c26568e33f2237ac072e183ea613ce90e6fe" - }, - { - "nr": 122449, - "hash": "84cd943c76bf661167e3458356659d9464239250" - }, - { - "nr": 121387, - "hash": "93332e73ac077aac0fa2074e37f442998ae1ba4e" - }, - { - "nr": 119923, - "hash": "d1562f7639221ecd20ffd6201d61dec91ddf4b34" - }, - { - "nr": 117046, - "hash": "1b82be0d876432bacb233b6519d9f03ac31cf2ca" - }, - { - "nr": 122893, - "hash": "0ecf806ec2ba194d679cef7bdfbb9c43a48f5bb2" - }, - { - "nr": 122710, - "hash": "4a48327f2ab39f96c86805e0cbdf37c53fad330e" - }, - { - "nr": 122393, - "hash": "8edb169d279015e6007a5130066613e12873908b" - }, - { - "nr": 121815, - "hash": "703e81edd269d80665e86fc5316831065f4c6bc4" - }, - { - "nr": 123023, - "hash": "dc664987c36002c69fba2fddf20218a7cb674040" - }, - { - "nr": 123083, - "hash": "a2167f7f91431c45f130d6ec2284f36fed3f8784" - }, - { - "nr": 123055, - "hash": "f6466f5616b311e67a8a4ebf25111bd9375f8a01" - }, - { - "nr": 122574, - "hash": "364e3f65bcdac67a9ff8c202a3392c6b0cb77403" - }, - { - "nr": 122288, - "hash": "58b048aa370044470f2d3f0b0e633950723e8340" - }, - { - "nr": 120246, - "hash": "6cd9158186e11c294bc4aec7946c219d6aa50e59" - }, - { - "nr": 123052, - "hash": "3500c614a5ca8cf68dfad29eac1f30e8ff35a65c" - }, - { - "nr": 122571, - "hash": "d41769940412f807e1963bc596c2419088f3eb59" - }, - { - "nr": 121565, - "hash": "8dfa5405a4bf80d6c398556d08588cc87b447e81" - }, - { - "nr": 122032, - "hash": "e87927f045fd9af8a2a9740c86f667258e61419c" - }, - { - "nr": 122697, - "hash": "040628820e2e491f9d194689a02a3c0407616cd6" - }, - { - "nr": 122508, - "hash": "cafd1e47b91f27f43463c63de5bfef3a7187e1b9" - }, - { - "nr": 122233, - "hash": "c449a1bfcb9209432dd9fde956d15a47df38b54a" - }, - { - "nr": 123134, - "hash": "53d2e5598d35c5ec3a08b048205d29e74c94d11f" - }, - { - "nr": 122999, - "hash": "5f5a954528f1540ffbe47c032d5d929e1f7eea6d" - }, - { - "nr": 121512, - "hash": "c3be7d4e7a1f77f382cdb7687a665d694c3fa72c" - }, - { - "nr": 122961, - "hash": "dbe5be41404cf36220c7d1af4391f700dc27e962" - } - ] +{ + "mail": "orlin@orlix.org", + "name": "OrlinVasilev", + "date": 1708071507, + "prs": [ + { + "nr": 122889, + "hash": "34cdae2a471957ea02cef72b690aa38ebd3548c3" + }, + { + "nr": 122334, + "hash": "2b2a8d699601b5fa821b31a96fb07777e1cf864b" + }, + { + "nr": 119177, + "hash": "a225fc5e576bb50f46245586c6af4470e035c7d9" + }, + { + "nr": 122276, + "hash": "5eeb5c66a22a0424dcc5c16d50cc8de8f43620b0" + }, + { + "nr": 122555, + "hash": "6df06f26cecd2de3fdbd86b3c45ddb139ee0667b" + }, + { + "nr": 122138, + "hash": "e7ced2ae78cc42c7840d32ce62192247c796f2d1" + }, + { + "nr": 122704, + "hash": "f8b91e38856f604d010e8d1ecbf9a224a19cc525" + }, + { + "nr": 122600, + "hash": "951686e3a49eec1ac827937c5deb611a9b5a8442" + }, + { + "nr": 122271, + "hash": "e3c90744d0d05a5f0f0baff2839d9cc8b8db5abf" + }, + { + "nr": 121912, + "hash": "e4e77028e67a00224ea76a25194577650679c7eb" + }, + { + "nr": 122058, + "hash": "58857d3df1142e0d49e2298ac60cec84a2165b1c" + }, + { + "nr": 121983, + "hash": "6ccb7af9b0704418420074b1cff007c2f922d675" + }, + { + "nr": 123117, + "hash": "daba4230cc6aa26c32b58e93ca8b6b1dfc40bd0a" + }, + { + "nr": 123032, + "hash": "8bfa2f0f53ce14fe7f962bf478c081c27c1c3af0" + }, + { + "nr": 122030, + "hash": "7a154e605387b32abe2ddecb6bbf61dca4b00e9c" + }, + { + "nr": 122498, + "hash": "e4fc2858ace5f680cad00bdc71aac15175dded14" + }, + { + "nr": 122705, + "hash": "d831f653fac7f799e68c22f5b53df1412aed7fd0" + }, + { + "nr": 122530, + "hash": "de9bfc9611ee59d6fff3873b15551e9c31e6de57" + }, + { + "nr": 122136, + "hash": "1ac74547f5fc601cd61b8a399e79f2a2976e0b02" + }, + { + "nr": 121736, + "hash": "8b6add9950c8ee078184894d952cd7e16e6c82e1" + }, + { + "nr": 123217, + "hash": "7e2e3cd67bd384b2e38da8d4326c9548735c20a1" + }, + { + "nr": 122807, + "hash": "21dc9efa3ac021e007021760e18f742aae826375" + }, + { + "nr": 122750, + "hash": "79372d3fc5a43351a0a8bdca7b72e805430ba4ed" + }, + { + "nr": 122857, + "hash": "01a2e487143afcdb42567628d51ed9b8fb174082" + }, + { + "nr": 122503, + "hash": "f9fb69fe9cac7f426a98b6b8042d8591657974dc" + }, + { + "nr": 122285, + "hash": "2de33c2a698f532bcefe1504cd8e87a5a8b53ad7" + }, + { + "nr": 122477, + "hash": "f3499318285ea9fb8809acb28c02f0d82670e358" + }, + { + "nr": 123171, + "hash": "c07dd522817554ec590937b6d11f51cba019981b" + }, + { + "nr": 123001, + "hash": "d9d9bbbc23c6540006999412560a9192e971d297" + }, + { + "nr": 122231, + "hash": "6b57812006a457ad9123a2c5bb5acb14d392023a" + }, + { + "nr": 122178, + "hash": "d9a1ec52a23acbb0df1602f1a7525ada40be76a2" + }, + { + "nr": 115768, + "hash": "1211aa5e681059b61107983391f00dad2fa21a68" + }, + { + "nr": 122804, + "hash": "e048c464452fae8bab364fe782d20e0b3c9743f5" + }, + { + "nr": 122576, + "hash": "9b878809e70cfdf48ab747a275933a8abc520b9c" + }, + { + "nr": 122329, + "hash": "a3a5e5a5e4923041fe4b0f08b8e36b69a0bb72e8" + }, + { + "nr": 121954, + "hash": "74c60ad48c81a69383281a6f3de9e6197c942fc8" + }, + { + "nr": 121952, + "hash": "0679bd2e460985a7e9508672fba8196b4d44a6c0" + }, + { + "nr": 123003, + "hash": "08bfd11ea5f975e4c60699f84dadbcde946d5e37" + }, + { + "nr": 122618, + "hash": "31972451c6d01e7ae613cf9735b0545265820108" + }, + { + "nr": 122346, + "hash": "92994ca464fbc8a953046dc949ad4e24b1ea46eb" + }, + { + "nr": 123077, + "hash": "cfef04b2263c7855d0eb9190f21e4e543531acc0" + }, + { + "nr": 122142, + "hash": "fecdd94fd7c6d6a16163f4c8bef99ffe06fdf5c2" + }, + { + "nr": 122296, + "hash": "3d5c84f3aeb164c46425a7cbe3f7db8ee5dcffe6" + }, + { + "nr": 122578, + "hash": "6a741e0e42cabf782c6ddeb48165efcebc8eeb29" + }, + { + "nr": 122729, + "hash": "6be42051fb162683069bea4dd12fd45dad6d3fdd" + }, + { + "nr": 117024, + "hash": "143c451a957468e1bcfe1d3d4d3562ecb1f40735" + }, + { + "nr": 121876, + "hash": "68b764228294c1f89d56e92de73c0e243e27ea4a" + }, + { + "nr": 122556, + "hash": "e3e41f36b7f6108544348daa667cccf85b2de6f7" + }, + { + "nr": 122134, + "hash": "17886629a62db11d66b89059615f3343ce9ca6a8" + }, + { + "nr": 122914, + "hash": "ca91025809e574a336a694089c46e1f2e28aeb32" + }, + { + "nr": 122468, + "hash": "0c6d469cbc3fca935a0b2f80749a197a92bb0106" + }, + { + "nr": 122225, + "hash": "34a5efd5671842ebace9cc416c237bc01290b761" + }, + { + "nr": 120291, + "hash": "7175a41bcf501b878d951f3672cb0e7963a32e5f" + }, + { + "nr": 118756, + "hash": "85b7fe6d2b99ac78b9886189cbc79628d6540057" + }, + { + "nr": 121908, + "hash": "5829fac8e89488f7b6ea6284cdc7a97dc77b54df" + }, + { + "nr": 122846, + "hash": "970447dc1f84f4692cc0c77daab4bcb49b8ff141" + }, + { + "nr": 123093, + "hash": "1744926d2d7dab0745224a967564a640c6d54d7f" + }, + { + "nr": 122523, + "hash": "7c76b40bb99c3c812912d5566df9ff9d59756cb4" + }, + { + "nr": 122647, + "hash": "1ceb71c04a470986182521dc0b40894c8c0cbaba" + }, + { + "nr": 123150, + "hash": "5b35fdc7e2ea3ee684d045ed81a3c4067288355e" + }, + { + "nr": 121669, + "hash": "c27bbce27a63b1abc1cb21f0ea7804fb883159bc" + }, + { + "nr": 122069, + "hash": "30b5c8e8cf3e12130d24a7d4099388cfa249f73a" + }, + { + "nr": 122946, + "hash": "9c45e6f5cf0c523f2c7884291f84f48de6b97fa4" + }, + { + "nr": 121834, + "hash": "ae26c344db900b397e14655f995e481b3c7f53eb" + }, + { + "nr": 122204, + "hash": "c25143a75d8292f427150a67800895ce0ee9cc8b" + }, + { + "nr": 122088, + "hash": "86bb3ab9d671d21e7caf08cd4fe4e0131333b4ee" + }, + { + "nr": 120631, + "hash": "dfaf6564a7e4cec61264db6f6acb7b6fe898483e" + }, + { + "nr": 122013, + "hash": "fe05274e9deefe00949bbfeff93d8b0408fbbead" + }, + { + "nr": 123069, + "hash": "3a7755418fd4964974ba45abad973edd10232209" + }, + { + "nr": 123038, + "hash": "2ecb87555cdbf5589fc0c17678e377f6911f295c" + }, + { + "nr": 122724, + "hash": "e979f6667f497cbbaf75870cdceec8b879d3801e" + }, + { + "nr": 122692, + "hash": "640cc226eff6d5e475eee80318da15d2c52206f6" + }, + { + "nr": 122435, + "hash": "79539a3728d89896aff9ef9162fbd1aa11267190" + }, + { + "nr": 122195, + "hash": "999df1427271544ede2aba402a86534761967c74" + }, + { + "nr": 122022, + "hash": "5679da40f3e033394bd08e33654eb5139d69aaab" + }, + { + "nr": 123098, + "hash": "898391e50b1f462ae8e95da6e6512bff47b05b31" + }, + { + "nr": 122701, + "hash": "1a22b002a3edbc080e2409dbc0404b656f56e32e" + }, + { + "nr": 122558, + "hash": "56f0c5481a8ea959e965027c2c5c264847dbdbe5" + }, + { + "nr": 122139, + "hash": "efc59460ae34bfea2f039db087845572e67e1576" + }, + { + "nr": 123179, + "hash": "cd00aa3a9ce3544cdb1e65bd79c64e07af114797" + }, + { + "nr": 122937, + "hash": "a8fc0a5c0da782c9d9178d925fc03c2fa86c567f" + }, + { + "nr": 122614, + "hash": "6d531475a994e4f5f082cdcfcf3d160c2c24e09a" + }, + { + "nr": 122475, + "hash": "a290ee8444a983f0cb7e94ccfc56e745e4556c11" + }, + { + "nr": 119200, + "hash": "90c97f7d07058d10a752b3246311a45cacb9323a" + }, + { + "nr": 122197, + "hash": "53be6f3d436c3ff3894425d16ca72cc49e6bd0f8" + }, + { + "nr": 120159, + "hash": "f129eba00a87514cc3899dd8cbae4ff2e9328cc3" + }, + { + "nr": 122137, + "hash": "9b78044154ff2a37879e6a48d42ce3c18d9bbda7" + }, + { + "nr": 123011, + "hash": "20d2523e32094bb7e00c6c0512b37023091424fd" + }, + { + "nr": 122640, + "hash": "3d4e23f91b67e8cd72fc3caa1ba8176ce2cf56e9" + }, + { + "nr": 122079, + "hash": "049d2a979481375babfd25b0a7fcf5ac2e6dd2a0" + }, + { + "nr": 122612, + "hash": "b13fcd9e5cf4debccde7acc792c984b34af937e9" + }, + { + "nr": 122735, + "hash": "67532fb39a9828b8cce63de1b267485467e0e68c" + }, + { + "nr": 118389, + "hash": "8d2c567a63f0cfc6c29c441ebea2a7f3b341c1de" + }, + { + "nr": 121413, + "hash": "af14755a8021ed0e6c9fbd7835151747a9305685" + }, + { + "nr": 122635, + "hash": "3db4333b6d7de0a80522a31b5778a42b6200b5dd" + }, + { + "nr": 122341, + "hash": "82565bad8477bf702d2a0e4fd4670022b4bc2b39" + }, + { + "nr": 122309, + "hash": "447b7ab4aa66cd04c4276fbe8ec4d91ef3991c6f" + }, + { + "nr": 122086, + "hash": "1569e0a85e3655f44aadae7106d2f0cf72ab152b" + }, + { + "nr": 122409, + "hash": "5e5c42c2613046fb60d38bc0efe219254547db47" + }, + { + "nr": 122415, + "hash": "b7d412b97dfcc6a1ba3c026859f687ae63e1dd7d" + }, + { + "nr": 116209, + "hash": "8fea25256116ebcf61697dad408f34a99e45299b" + }, + { + "nr": 122023, + "hash": "eef8b23e8767da87b16153b9ce7f012df52bba6e" + }, + { + "nr": 122339, + "hash": "97b2eeb3eadd2d56b22fdc256463d39581ec3ccc" + }, + { + "nr": 122068, + "hash": "ac64bc0d638b9654adf3455d2a21d90470d53c71" + }, + { + "nr": 123170, + "hash": "dcab64e558862578d9d685fb4b720e28beffa06b" + }, + { + "nr": 121958, + "hash": "eec0e57b64bb82a7ce6949d7a20c9dbf473b2941" + }, + { + "nr": 122211, + "hash": "92ede1357e6b597336426daa8670626e8dc8ff7d" + }, + { + "nr": 122041, + "hash": "cd1fa8c547ff394e43e1c22c8e82ae782c46dbdd" + }, + { + "nr": 120642, + "hash": "b0d725c193a0ef27e1f09724dd21825ac6c3845e" + }, + { + "nr": 123082, + "hash": "02bec89987ad9cd46c57bc4c632019f4b7b5f53c" + }, + { + "nr": 119779, + "hash": "2199c26568e33f2237ac072e183ea613ce90e6fe" + }, + { + "nr": 122449, + "hash": "84cd943c76bf661167e3458356659d9464239250" + }, + { + "nr": 121387, + "hash": "93332e73ac077aac0fa2074e37f442998ae1ba4e" + }, + { + "nr": 119923, + "hash": "d1562f7639221ecd20ffd6201d61dec91ddf4b34" + }, + { + "nr": 117046, + "hash": "1b82be0d876432bacb233b6519d9f03ac31cf2ca" + }, + { + "nr": 122893, + "hash": "0ecf806ec2ba194d679cef7bdfbb9c43a48f5bb2" + }, + { + "nr": 122710, + "hash": "4a48327f2ab39f96c86805e0cbdf37c53fad330e" + }, + { + "nr": 122393, + "hash": "8edb169d279015e6007a5130066613e12873908b" + }, + { + "nr": 121815, + "hash": "703e81edd269d80665e86fc5316831065f4c6bc4" + }, + { + "nr": 123023, + "hash": "dc664987c36002c69fba2fddf20218a7cb674040" + }, + { + "nr": 123083, + "hash": "a2167f7f91431c45f130d6ec2284f36fed3f8784" + }, + { + "nr": 123055, + "hash": "f6466f5616b311e67a8a4ebf25111bd9375f8a01" + }, + { + "nr": 122574, + "hash": "364e3f65bcdac67a9ff8c202a3392c6b0cb77403" + }, + { + "nr": 122288, + "hash": "58b048aa370044470f2d3f0b0e633950723e8340" + }, + { + "nr": 120246, + "hash": "6cd9158186e11c294bc4aec7946c219d6aa50e59" + }, + { + "nr": 123052, + "hash": "3500c614a5ca8cf68dfad29eac1f30e8ff35a65c" + }, + { + "nr": 122571, + "hash": "d41769940412f807e1963bc596c2419088f3eb59" + }, + { + "nr": 121565, + "hash": "8dfa5405a4bf80d6c398556d08588cc87b447e81" + }, + { + "nr": 122032, + "hash": "e87927f045fd9af8a2a9740c86f667258e61419c" + }, + { + "nr": 122697, + "hash": "040628820e2e491f9d194689a02a3c0407616cd6" + }, + { + "nr": 122508, + "hash": "cafd1e47b91f27f43463c63de5bfef3a7187e1b9" + }, + { + "nr": 122233, + "hash": "c449a1bfcb9209432dd9fde956d15a47df38b54a" + }, + { + "nr": 123134, + "hash": "53d2e5598d35c5ec3a08b048205d29e74c94d11f" + }, + { + "nr": 122999, + "hash": "5f5a954528f1540ffbe47c032d5d929e1f7eea6d" + }, + { + "nr": 121512, + "hash": "c3be7d4e7a1f77f382cdb7687a665d694c3fa72c" + }, + { + "nr": 122961, + "hash": "dbe5be41404cf36220c7d1af4391f700dc27e962" + } + ] } \ No newline at end of file diff --git a/releases/release-1.30/release-notes/sessions/maps-1709744010.json b/releases/release-1.30/release-notes/sessions/maps-1709744010.json index a4ae437b4ab..7c5fe185edf 100644 --- a/releases/release-1.30/release-notes/sessions/maps-1709744010.json +++ b/releases/release-1.30/release-notes/sessions/maps-1709744010.json @@ -1,791 +1,791 @@ -{ - "mail": "nina.polshakova@solo.io", - "name": "npolshakova", - "date": 1709744010, - "prs": [ - { - "nr": 122881, - "hash": "4b8a21c411831f592087b2bae0c2e160355b4215" - }, - { - "nr": 123222, - "hash": "fe6c30596f3d09bef7cc0d67f23bf5566a7b1507" - }, - { - "nr": 122422, - "hash": "00a8f2dbf447ed9c17b89423189357895c37de23" - }, - { - "nr": 123216, - "hash": "df75adb17f9a5fed37b129fddaf1cc471ec16c0c" - }, - { - "nr": 123323, - "hash": "e939a0241b6302f67f4df1887693871f16bfd2e8" - }, - { - "nr": 123217, - "hash": "fb1dfddd88382e1498f6e1b6a27654405998d183" - }, - { - "nr": 121719, - "hash": "70a1f365e327bc01de92a04a61107f09c456137c" - }, - { - "nr": 123135, - "hash": "d51238a5a5cb68f1c4a772a952ffe1937c26f092" - }, - { - "nr": 123165, - "hash": "142b1d57bb3baea4cbebb8d3ac53620580f76620" - }, - { - "nr": 123488, - "hash": "a41d926d2fdad2ab37b0dc57542c29570f01bd46" - }, - { - "nr": 123011, - "hash": "20d2523e32094bb7e00c6c0512b37023091424fd" - }, - { - "nr": 122556, - "hash": "e3e41f36b7f6108544348daa667cccf85b2de6f7" - }, - { - "nr": 121387, - "hash": "93332e73ac077aac0fa2074e37f442998ae1ba4e" - }, - { - "nr": 122946, - "hash": "9c45e6f5cf0c523f2c7884291f84f48de6b97fa4" - }, - { - "nr": 122618, - "hash": "7a0d63f54776eed4a8e3e2b89e90b7f1f28327c1" - }, - { - "nr": 122030, - "hash": "7a154e605387b32abe2ddecb6bbf61dca4b00e9c" - }, - { - "nr": 122056, - "hash": "a89d0123fc026b2d7dd12c0edef47fa73dd89193" - }, - { - "nr": 122846, - "hash": "36f4b4dffaa0acc3cb23226ede18f5a53efdd421" - }, - { - "nr": 123117, - "hash": "b69b8283f16f84c592ba7b42777207f7bf1500bb" - }, - { - "nr": 123170, - "hash": "0b86151ca8335d03644fb6012a919027fd611f64" - }, - { - "nr": 122195, - "hash": "999df1427271544ede2aba402a86534761967c74" - }, - { - "nr": 123517, - "hash": "3a0e0f3c4618aa71a19093374fe0afe8d80c41cc" - }, - { - "nr": 123418, - "hash": "5c3e46e0708ad5983e8a2d15461e49fb3a4fb976" - }, - { - "nr": 122508, - "hash": "cafd1e47b91f27f43463c63de5bfef3a7187e1b9" - }, - { - "nr": 119200, - "hash": "a714e9efc50c25dd6a36bcd4ca6d48bd82feecb1" - }, - { - "nr": 122503, - "hash": "7270212769e1eb70cbca19723f924544c46c2cd0" - }, - { - "nr": 122435, - "hash": "79539a3728d89896aff9ef9162fbd1aa11267190" - }, - { - "nr": 122032, - "hash": "e87927f045fd9af8a2a9740c86f667258e61419c" - }, - { - "nr": 122498, - "hash": "2d3ce7c233aa519fb5b23afe592a7fe7a80c6415" - }, - { - "nr": 123272, - "hash": "f6c05c91062d477bb850bee156d89b3064fbb4d7" - }, - { - "nr": 122339, - "hash": "97b2eeb3eadd2d56b22fdc256463d39581ec3ccc" - }, - { - "nr": 122415, - "hash": "b7d412b97dfcc6a1ba3c026859f687ae63e1dd7d" - }, - { - "nr": 123372, - "hash": "b945c60e8e72f38ff02d81830ab315e87604495a" - }, - { - "nr": 122523, - "hash": "7c76b40bb99c3c812912d5566df9ff9d59756cb4" - }, - { - "nr": 122701, - "hash": "1a22b002a3edbc080e2409dbc0404b656f56e32e" - }, - { - "nr": 121958, - "hash": "eec0e57b64bb82a7ce6949d7a20c9dbf473b2941" - }, - { - "nr": 119177, - "hash": "a225fc5e576bb50f46245586c6af4470e035c7d9" - }, - { - "nr": 123461, - "hash": "f017bbd54ad9ea91b4ae59e13f828cfcc69a2eb4" - }, - { - "nr": 123001, - "hash": "cfad859f577323a53350b71872d7d59a0e0f9fee" - }, - { - "nr": 121736, - "hash": "8b6add9950c8ee078184894d952cd7e16e6c82e1" - }, - { - "nr": 123492, - "hash": "4bdef65f04d076a4059f506f5bfe9737ac703aee" - }, - { - "nr": 122807, - "hash": "21dc9efa3ac021e007021760e18f742aae826375" - }, - { - "nr": 112957, - "hash": "7b8cc1459ebbcfa48335a5ba28a5002f00bd87ff" - }, - { - "nr": 121946, - "hash": "5a49dbcd545c04e0bcda70c073a36d4a4d4da08d" - }, - { - "nr": 123464, - "hash": "a29d89c25d60dfc94c4465cf262a9df9c86249d0" - }, - { - "nr": 122271, - "hash": "e3c90744d0d05a5f0f0baff2839d9cc8b8db5abf" - }, - { - "nr": 122697, - "hash": "040628820e2e491f9d194689a02a3c0407616cd6" - }, - { - "nr": 122914, - "hash": "ca91025809e574a336a694089c46e1f2e28aeb32" - }, - { - "nr": 122134, - "hash": "17886629a62db11d66b89059615f3343ce9ca6a8" - }, - { - "nr": 122530, - "hash": "caf5b525105aa1f63c3891955ba7dbb0bc61e890" - }, - { - "nr": 123310, - "hash": "ae5b9162b49e6ec26beebfa3b0f3f5d9ef4f01a0" - }, - { - "nr": 122204, - "hash": "c25143a75d8292f427150a67800895ce0ee9cc8b" - }, - { - "nr": 118756, - "hash": "85b7fe6d2b99ac78b9886189cbc79628d6540057" - }, - { - "nr": 122750, - "hash": "56aec2bc6de3a9a94a6b561cacb5fab9f4805be1" - }, - { - "nr": 122468, - "hash": "0c6d469cbc3fca935a0b2f80749a197a92bb0106" - }, - { - "nr": 122293, - "hash": "ff7bd3e0d6ba51d9fb205115bcfd3a28edc2f5af" - }, - { - "nr": 122449, - "hash": "84cd943c76bf661167e3458356659d9464239250" - }, - { - "nr": 122729, - "hash": "6be42051fb162683069bea4dd12fd45dad6d3fdd" - }, - { - "nr": 122710, - "hash": "4a48327f2ab39f96c86805e0cbdf37c53fad330e" - }, - { - "nr": 123281, - "hash": "b098bad7b96706281261a4988c30a9fea4bf1506" - }, - { - "nr": 122079, - "hash": "049d2a979481375babfd25b0a7fcf5ac2e6dd2a0" - }, - { - "nr": 122600, - "hash": "951686e3a49eec1ac827937c5deb611a9b5a8442" - }, - { - "nr": 123223, - "hash": "e9d1e22bce7e9bce0689b9fbe56f7f87ce129b14" - }, - { - "nr": 120159, - "hash": "f129eba00a87514cc3899dd8cbae4ff2e9328cc3" - }, - { - "nr": 123271, - "hash": "c2bad11ca49471e925703ba8b9de7b8c576839e8" - }, - { - "nr": 123032, - "hash": "8bfa2f0f53ce14fe7f962bf478c081c27c1c3af0" - }, - { - "nr": 121512, - "hash": "c3be7d4e7a1f77f382cdb7687a665d694c3fa72c" - }, - { - "nr": 122341, - "hash": "82565bad8477bf702d2a0e4fd4670022b4bc2b39" - }, - { - "nr": 123490, - "hash": "0529aa7d82d7b558b0ed20a7d2319bbe713e0fcc" - }, - { - "nr": 118389, - "hash": "8d2c567a63f0cfc6c29c441ebea2a7f3b341c1de" - }, - { - "nr": 122231, - "hash": "6b57812006a457ad9123a2c5bb5acb14d392023a" - }, - { - "nr": 122937, - "hash": "a8fc0a5c0da782c9d9178d925fc03c2fa86c567f" - }, - { - "nr": 123038, - "hash": "e5c581331fe04a3cd39590bffba1d9fe636f71fb" - }, - { - "nr": 120718, - "hash": "4f5fb4808f0c5bba3612737e52103c2e9fde6588" - }, - { - "nr": 122137, - "hash": "9b78044154ff2a37879e6a48d42ce3c18d9bbda7" - }, - { - "nr": 122999, - "hash": "5f5a954528f1540ffbe47c032d5d929e1f7eea6d" - }, - { - "nr": 121720, - "hash": "71bd66d6cc585427b310596c5f0ae771d76c85a0" - }, - { - "nr": 120902, - "hash": "ddabe25d1eedfad6dd67fed91160f5c6a185f7e9" - }, - { - "nr": 116209, - "hash": "8fea25256116ebcf61697dad408f34a99e45299b" - }, - { - "nr": 122578, - "hash": "6a741e0e42cabf782c6ddeb48165efcebc8eeb29" - }, - { - "nr": 122138, - "hash": "e7ced2ae78cc42c7840d32ce62192247c796f2d1" - }, - { - "nr": 122555, - "hash": "6df06f26cecd2de3fdbd86b3c45ddb139ee0667b" - }, - { - "nr": 120246, - "hash": "6cd9158186e11c294bc4aec7946c219d6aa50e59" - }, - { - "nr": 122058, - "hash": "58857d3df1142e0d49e2298ac60cec84a2165b1c" - }, - { - "nr": 123157, - "hash": "29a32b6194b003a0adc645dfd305b0420fdc8c51" - }, - { - "nr": 122874, - "hash": "b7f662076cc5b2bbc6d4771e10d143feecc64f20" - }, - { - "nr": 123475, - "hash": "7e756cffdbd9d33baf7fed9c4a07ae95c99ba754" - }, - { - "nr": 122889, - "hash": "34cdae2a471957ea02cef72b690aa38ebd3548c3" - }, - { - "nr": 121954, - "hash": "74c60ad48c81a69383281a6f3de9e6197c942fc8" - }, - { - "nr": 122309, - "hash": "447b7ab4aa66cd04c4276fbe8ec4d91ef3991c6f" - }, - { - "nr": 122088, - "hash": "86bb3ab9d671d21e7caf08cd4fe4e0131333b4ee" - }, - { - "nr": 121876, - "hash": "68b764228294c1f89d56e92de73c0e243e27ea4a" - }, - { - "nr": 122704, - "hash": "f8b91e38856f604d010e8d1ecbf9a224a19cc525" - }, - { - "nr": 123098, - "hash": "898391e50b1f462ae8e95da6e6512bff47b05b31" - }, - { - "nr": 121413, - "hash": "af14755a8021ed0e6c9fbd7835151747a9305685" - }, - { - "nr": 120344, - "hash": "0537d1623957e860da5f0373d955bb289ec56507" - }, - { - "nr": 122233, - "hash": "c449a1bfcb9209432dd9fde956d15a47df38b54a" - }, - { - "nr": 121834, - "hash": "ae26c344db900b397e14655f995e481b3c7f53eb" - }, - { - "nr": 122883, - "hash": "b5c7d3e153309098f230f6d68513a431223f5042" - }, - { - "nr": 122285, - "hash": "2de33c2a698f532bcefe1504cd8e87a5a8b53ad7" - }, - { - "nr": 122041, - "hash": "cd1fa8c547ff394e43e1c22c8e82ae782c46dbdd" - }, - { - "nr": 123282, - "hash": "5a06f01159c8d6020f7fa9a0e10c050fb1f7b87c" - }, - { - "nr": 122893, - "hash": "584b709d5a8d1e582a374d364c7e9dd7e9916973" - }, - { - "nr": 123003, - "hash": "08bfd11ea5f975e4c60699f84dadbcde946d5e37" - }, - { - "nr": 122475, - "hash": "a290ee8444a983f0cb7e94ccfc56e745e4556c11" - }, - { - "nr": 122023, - "hash": "eef8b23e8767da87b16153b9ce7f012df52bba6e" - }, - { - "nr": 123442, - "hash": "a684fe7d9e53bc2f179830f662e72f720083cd23" - }, - { - "nr": 122296, - "hash": "95b159d1235187db3d54e02b5f1accde8a03a7f9" - }, - { - "nr": 123150, - "hash": "853743573ae876b877937673c7426f191b2571bd" - }, - { - "nr": 122735, - "hash": "67532fb39a9828b8cce63de1b267485467e0e68c" - }, - { - "nr": 114672, - "hash": "a6f14e24bcb1f65fce2ba5574ca7d725062aebbd" - }, - { - "nr": 123083, - "hash": "7c4d4c051ff80497af915c2add91cf6b79a5adb8" - }, - { - "nr": 122804, - "hash": "e048c464452fae8bab364fe782d20e0b3c9743f5" - }, - { - "nr": 122456, - "hash": "5664dbabbb69e0d5005aa637fcc78635ab5430c4" - }, - { - "nr": 123052, - "hash": "fccad842f7865c32fc69aa7cd983ab9c02a0cffd" - }, - { - "nr": 122013, - "hash": "fe05274e9deefe00949bbfeff93d8b0408fbbead" - }, - { - "nr": 117046, - "hash": "1b82be0d876432bacb233b6519d9f03ac31cf2ca" - }, - { - "nr": 122612, - "hash": "afb9ea10ec7a18b793f6a8e9c7284ca0d7827f1c" - }, - { - "nr": 121565, - "hash": "8dfa5405a4bf80d6c398556d08588cc87b447e81" - }, - { - "nr": 123077, - "hash": "d64a7029fbaceda492b4218d25d91d5c185290ef" - }, - { - "nr": 123366, - "hash": "841a39672fb26a42f4b289d413805d20294d5e1f" - }, - { - "nr": 122211, - "hash": "92ede1357e6b597336426daa8670626e8dc8ff7d" - }, - { - "nr": 122069, - "hash": "30b5c8e8cf3e12130d24a7d4099388cfa249f73a" - }, - { - "nr": 121983, - "hash": "6ccb7af9b0704418420074b1cff007c2f922d675" - }, - { - "nr": 122409, - "hash": "5e5c42c2613046fb60d38bc0efe219254547db47" - }, - { - "nr": 123171, - "hash": "c07dd522817554ec590937b6d11f51cba019981b" - }, - { - "nr": 122142, - "hash": "fecdd94fd7c6d6a16163f4c8bef99ffe06fdf5c2" - }, - { - "nr": 122393, - "hash": "8edb169d279015e6007a5130066613e12873908b" - }, - { - "nr": 119779, - "hash": "2199c26568e33f2237ac072e183ea613ce90e6fe" - }, - { - "nr": 122197, - "hash": "53be6f3d436c3ff3894425d16ca72cc49e6bd0f8" - }, - { - "nr": 123425, - "hash": "1f265139780cfafd655eaf5652540e9a9b1e1c21" - }, - { - "nr": 123341, - "hash": "a48c6694ae111944dc45451abcd932c7dbbe253a" - }, - { - "nr": 122086, - "hash": "1569e0a85e3655f44aadae7106d2f0cf72ab152b" - }, - { - "nr": 122139, - "hash": "efc59460ae34bfea2f039db087845572e67e1576" - }, - { - "nr": 121952, - "hash": "0679bd2e460985a7e9508672fba8196b4d44a6c0" - }, - { - "nr": 122493, - "hash": "97bac1cb12d5ae4deb2f7f29da771c135192a92d" - }, - { - "nr": 115768, - "hash": "1211aa5e681059b61107983391f00dad2fa21a68" - }, - { - "nr": 123023, - "hash": "fefd700c367498bf6878f046ba2b77fbe540ec56" - }, - { - "nr": 121461, - "hash": "6ac527ea7effc0feb6f82ff31a50bb8a06555eb0" - }, - { - "nr": 122178, - "hash": "d9a1ec52a23acbb0df1602f1a7525ada40be76a2" - }, - { - "nr": 122640, - "hash": "3d4e23f91b67e8cd72fc3caa1ba8176ce2cf56e9" - }, - { - "nr": 121815, - "hash": "703e81edd269d80665e86fc5316831065f4c6bc4" - }, - { - "nr": 122635, - "hash": "3db4333b6d7de0a80522a31b5778a42b6200b5dd" - }, - { - "nr": 123055, - "hash": "f6466f5616b311e67a8a4ebf25111bd9375f8a01" - }, - { - "nr": 123179, - "hash": "cd00aa3a9ce3544cdb1e65bd79c64e07af114797" - }, - { - "nr": 122334, - "hash": "2b2a8d699601b5fa821b31a96fb07777e1cf864b" - }, - { - "nr": 123345, - "hash": "520cab26cd7375d9c9b8cd1f7dbef388d6d6741f" - }, - { - "nr": 122329, - "hash": "a3a5e5a5e4923041fe4b0f08b8e36b69a0bb72e8" - }, - { - "nr": 123504, - "hash": "2fb007a87bf7043bb3168e4afd6ae16b3db7061e" - }, - { - "nr": 122068, - "hash": "ac64bc0d638b9654adf3455d2a21d90470d53c71" - }, - { - "nr": 122022, - "hash": "5679da40f3e033394bd08e33654eb5139d69aaab" - }, - { - "nr": 120251, - "hash": "e3f058fa24295f4830a5e0b3d6d902217c890795" - }, - { - "nr": 123069, - "hash": "56e6bedeb01ebadaad654cc11656a003a0a93082" - }, - { - "nr": 123333, - "hash": "6863a5915b930508bc7795ac5228952df5f6c74b" - }, - { - "nr": 122225, - "hash": "34a5efd5671842ebace9cc416c237bc01290b761" - }, - { - "nr": 122724, - "hash": "e979f6667f497cbbaf75870cdceec8b879d3801e" - }, - { - "nr": 123093, - "hash": "2c88ebfa68e69f97aa4bcd846341220a39bf5321" - }, - { - "nr": 121778, - "hash": "ed4acd9734f981718a6a5c350b7d7bc8743ee006" - }, - { - "nr": 120642, - "hash": "b0d725c193a0ef27e1f09724dd21825ac6c3845e" - }, - { - "nr": 122961, - "hash": "dbe5be41404cf36220c7d1af4391f700dc27e962" - }, - { - "nr": 120631, - "hash": "dfaf6564a7e4cec61264db6f6acb7b6fe898483e" - }, - { - "nr": 122692, - "hash": "ae2b3d6189326674cc9978d72d47390b02f72489" - }, - { - "nr": 122857, - "hash": "ba2c03f64c87ecf6ada77cbdb7152b15e938162e" - }, - { - "nr": 122647, - "hash": "1ceb71c04a470986182521dc0b40894c8c0cbaba" - }, - { - "nr": 122276, - "hash": "5eeb5c66a22a0424dcc5c16d50cc8de8f43620b0" - }, - { - "nr": 123479, - "hash": "5ddae5ed30785679458feb70ccaf566416334e0d" - }, - { - "nr": 123406, - "hash": "bfa0bea99d095da411d44350f6e4b135bd4c6b79" - }, - { - "nr": 122136, - "hash": "1ac74547f5fc601cd61b8a399e79f2a2976e0b02" - }, - { - "nr": 119923, - "hash": "d1562f7639221ecd20ffd6201d61dec91ddf4b34" - }, - { - "nr": 123384, - "hash": "61d6306f86caff1ad609e4825f6d3b8925cc582d" - }, - { - "nr": 123134, - "hash": "53d2e5598d35c5ec3a08b048205d29e74c94d11f" - }, - { - "nr": 123051, - "hash": "c783818b5c458ee297d72fe4a96dc0d7e3051886" - }, - { - "nr": 121669, - "hash": "c27bbce27a63b1abc1cb21f0ea7804fb883159bc" - }, - { - "nr": 122569, - "hash": "5b8c7676b6c73d28656f894f910cb3dd10cde0f8" - }, - { - "nr": 123438, - "hash": "9effc56649a69d6a37d24404e3e4a002bbebbc40" - }, - { - "nr": 123082, - "hash": "02bec89987ad9cd46c57bc4c632019f4b7b5f53c" - }, - { - "nr": 122346, - "hash": "92994ca464fbc8a953046dc949ad4e24b1ea46eb" - }, - { - "nr": 122589, - "hash": "5a54e6c9598374f2379aa50802cfa48ac3db9c65" - }, - { - "nr": 123215, - "hash": "f7fb9274708f3136f59b32eb3cdc3e5be1445bf6" - }, - { - "nr": 121908, - "hash": "5829fac8e89488f7b6ea6284cdc7a97dc77b54df" - }, - { - "nr": 123331, - "hash": "32e1fd50b35e15561ea271ad1fb0de8d884a1bf2" - }, - { - "nr": 114301, - "hash": "529409efb14ea741252d0c94d60232bb82dbd1be" - }, - { - "nr": 122571, - "hash": "d41769940412f807e1963bc596c2419088f3eb59" - }, - { - "nr": 122705, - "hash": "d831f653fac7f799e68c22f5b53df1412aed7fd0" - }, - { - "nr": 122576, - "hash": "9b878809e70cfdf48ab747a275933a8abc520b9c" - }, - { - "nr": 122887, - "hash": "4b697bfefb2e5cbd6dacfc20d0bb685acf653dfb" - }, - { - "nr": 122477, - "hash": "ee3ce572cb02b7ac950dd6f869f435891d860657" - }, - { - "nr": 121912, - "hash": "e4e77028e67a00224ea76a25194577650679c7eb" - }, - { - "nr": 122574, - "hash": "900898d5a82d2048e1bf6cddfbfb6b843f72f401" - }, - { - "nr": 123343, - "hash": "3f14870c859f261d4dae6cd6055e5ad433d5504f" - }, - { - "nr": 122288, - "hash": "58b048aa370044470f2d3f0b0e633950723e8340" - }, - { - "nr": 122558, - "hash": "56f0c5481a8ea959e965027c2c5c264847dbdbe5" - }, - { - "nr": 123261, - "hash": "9e2085adb73fe9e31c72844d1ccaf9a49444da76" - }, - { - "nr": 122614, - "hash": "6d531475a994e4f5f082cdcfcf3d160c2c24e09a" - }, - { - "nr": 117024, - "hash": "143c451a957468e1bcfe1d3d4d3562ecb1f40735" - }, - { - "nr": 120291, - "hash": "7175a41bcf501b878d951f3672cb0e7963a32e5f" - } - ] +{ + "mail": "nina.polshakova@solo.io", + "name": "npolshakova", + "date": 1709744010, + "prs": [ + { + "nr": 122881, + "hash": "4b8a21c411831f592087b2bae0c2e160355b4215" + }, + { + "nr": 123222, + "hash": "fe6c30596f3d09bef7cc0d67f23bf5566a7b1507" + }, + { + "nr": 122422, + "hash": "00a8f2dbf447ed9c17b89423189357895c37de23" + }, + { + "nr": 123216, + "hash": "df75adb17f9a5fed37b129fddaf1cc471ec16c0c" + }, + { + "nr": 123323, + "hash": "e939a0241b6302f67f4df1887693871f16bfd2e8" + }, + { + "nr": 123217, + "hash": "fb1dfddd88382e1498f6e1b6a27654405998d183" + }, + { + "nr": 121719, + "hash": "70a1f365e327bc01de92a04a61107f09c456137c" + }, + { + "nr": 123135, + "hash": "d51238a5a5cb68f1c4a772a952ffe1937c26f092" + }, + { + "nr": 123165, + "hash": "142b1d57bb3baea4cbebb8d3ac53620580f76620" + }, + { + "nr": 123488, + "hash": "a41d926d2fdad2ab37b0dc57542c29570f01bd46" + }, + { + "nr": 123011, + "hash": "20d2523e32094bb7e00c6c0512b37023091424fd" + }, + { + "nr": 122556, + "hash": "e3e41f36b7f6108544348daa667cccf85b2de6f7" + }, + { + "nr": 121387, + "hash": "93332e73ac077aac0fa2074e37f442998ae1ba4e" + }, + { + "nr": 122946, + "hash": "9c45e6f5cf0c523f2c7884291f84f48de6b97fa4" + }, + { + "nr": 122618, + "hash": "7a0d63f54776eed4a8e3e2b89e90b7f1f28327c1" + }, + { + "nr": 122030, + "hash": "7a154e605387b32abe2ddecb6bbf61dca4b00e9c" + }, + { + "nr": 122056, + "hash": "a89d0123fc026b2d7dd12c0edef47fa73dd89193" + }, + { + "nr": 122846, + "hash": "36f4b4dffaa0acc3cb23226ede18f5a53efdd421" + }, + { + "nr": 123117, + "hash": "b69b8283f16f84c592ba7b42777207f7bf1500bb" + }, + { + "nr": 123170, + "hash": "0b86151ca8335d03644fb6012a919027fd611f64" + }, + { + "nr": 122195, + "hash": "999df1427271544ede2aba402a86534761967c74" + }, + { + "nr": 123517, + "hash": "3a0e0f3c4618aa71a19093374fe0afe8d80c41cc" + }, + { + "nr": 123418, + "hash": "5c3e46e0708ad5983e8a2d15461e49fb3a4fb976" + }, + { + "nr": 122508, + "hash": "cafd1e47b91f27f43463c63de5bfef3a7187e1b9" + }, + { + "nr": 119200, + "hash": "a714e9efc50c25dd6a36bcd4ca6d48bd82feecb1" + }, + { + "nr": 122503, + "hash": "7270212769e1eb70cbca19723f924544c46c2cd0" + }, + { + "nr": 122435, + "hash": "79539a3728d89896aff9ef9162fbd1aa11267190" + }, + { + "nr": 122032, + "hash": "e87927f045fd9af8a2a9740c86f667258e61419c" + }, + { + "nr": 122498, + "hash": "2d3ce7c233aa519fb5b23afe592a7fe7a80c6415" + }, + { + "nr": 123272, + "hash": "f6c05c91062d477bb850bee156d89b3064fbb4d7" + }, + { + "nr": 122339, + "hash": "97b2eeb3eadd2d56b22fdc256463d39581ec3ccc" + }, + { + "nr": 122415, + "hash": "b7d412b97dfcc6a1ba3c026859f687ae63e1dd7d" + }, + { + "nr": 123372, + "hash": "b945c60e8e72f38ff02d81830ab315e87604495a" + }, + { + "nr": 122523, + "hash": "7c76b40bb99c3c812912d5566df9ff9d59756cb4" + }, + { + "nr": 122701, + "hash": "1a22b002a3edbc080e2409dbc0404b656f56e32e" + }, + { + "nr": 121958, + "hash": "eec0e57b64bb82a7ce6949d7a20c9dbf473b2941" + }, + { + "nr": 119177, + "hash": "a225fc5e576bb50f46245586c6af4470e035c7d9" + }, + { + "nr": 123461, + "hash": "f017bbd54ad9ea91b4ae59e13f828cfcc69a2eb4" + }, + { + "nr": 123001, + "hash": "cfad859f577323a53350b71872d7d59a0e0f9fee" + }, + { + "nr": 121736, + "hash": "8b6add9950c8ee078184894d952cd7e16e6c82e1" + }, + { + "nr": 123492, + "hash": "4bdef65f04d076a4059f506f5bfe9737ac703aee" + }, + { + "nr": 122807, + "hash": "21dc9efa3ac021e007021760e18f742aae826375" + }, + { + "nr": 112957, + "hash": "7b8cc1459ebbcfa48335a5ba28a5002f00bd87ff" + }, + { + "nr": 121946, + "hash": "5a49dbcd545c04e0bcda70c073a36d4a4d4da08d" + }, + { + "nr": 123464, + "hash": "a29d89c25d60dfc94c4465cf262a9df9c86249d0" + }, + { + "nr": 122271, + "hash": "e3c90744d0d05a5f0f0baff2839d9cc8b8db5abf" + }, + { + "nr": 122697, + "hash": "040628820e2e491f9d194689a02a3c0407616cd6" + }, + { + "nr": 122914, + "hash": "ca91025809e574a336a694089c46e1f2e28aeb32" + }, + { + "nr": 122134, + "hash": "17886629a62db11d66b89059615f3343ce9ca6a8" + }, + { + "nr": 122530, + "hash": "caf5b525105aa1f63c3891955ba7dbb0bc61e890" + }, + { + "nr": 123310, + "hash": "ae5b9162b49e6ec26beebfa3b0f3f5d9ef4f01a0" + }, + { + "nr": 122204, + "hash": "c25143a75d8292f427150a67800895ce0ee9cc8b" + }, + { + "nr": 118756, + "hash": "85b7fe6d2b99ac78b9886189cbc79628d6540057" + }, + { + "nr": 122750, + "hash": "56aec2bc6de3a9a94a6b561cacb5fab9f4805be1" + }, + { + "nr": 122468, + "hash": "0c6d469cbc3fca935a0b2f80749a197a92bb0106" + }, + { + "nr": 122293, + "hash": "ff7bd3e0d6ba51d9fb205115bcfd3a28edc2f5af" + }, + { + "nr": 122449, + "hash": "84cd943c76bf661167e3458356659d9464239250" + }, + { + "nr": 122729, + "hash": "6be42051fb162683069bea4dd12fd45dad6d3fdd" + }, + { + "nr": 122710, + "hash": "4a48327f2ab39f96c86805e0cbdf37c53fad330e" + }, + { + "nr": 123281, + "hash": "b098bad7b96706281261a4988c30a9fea4bf1506" + }, + { + "nr": 122079, + "hash": "049d2a979481375babfd25b0a7fcf5ac2e6dd2a0" + }, + { + "nr": 122600, + "hash": "951686e3a49eec1ac827937c5deb611a9b5a8442" + }, + { + "nr": 123223, + "hash": "e9d1e22bce7e9bce0689b9fbe56f7f87ce129b14" + }, + { + "nr": 120159, + "hash": "f129eba00a87514cc3899dd8cbae4ff2e9328cc3" + }, + { + "nr": 123271, + "hash": "c2bad11ca49471e925703ba8b9de7b8c576839e8" + }, + { + "nr": 123032, + "hash": "8bfa2f0f53ce14fe7f962bf478c081c27c1c3af0" + }, + { + "nr": 121512, + "hash": "c3be7d4e7a1f77f382cdb7687a665d694c3fa72c" + }, + { + "nr": 122341, + "hash": "82565bad8477bf702d2a0e4fd4670022b4bc2b39" + }, + { + "nr": 123490, + "hash": "0529aa7d82d7b558b0ed20a7d2319bbe713e0fcc" + }, + { + "nr": 118389, + "hash": "8d2c567a63f0cfc6c29c441ebea2a7f3b341c1de" + }, + { + "nr": 122231, + "hash": "6b57812006a457ad9123a2c5bb5acb14d392023a" + }, + { + "nr": 122937, + "hash": "a8fc0a5c0da782c9d9178d925fc03c2fa86c567f" + }, + { + "nr": 123038, + "hash": "e5c581331fe04a3cd39590bffba1d9fe636f71fb" + }, + { + "nr": 120718, + "hash": "4f5fb4808f0c5bba3612737e52103c2e9fde6588" + }, + { + "nr": 122137, + "hash": "9b78044154ff2a37879e6a48d42ce3c18d9bbda7" + }, + { + "nr": 122999, + "hash": "5f5a954528f1540ffbe47c032d5d929e1f7eea6d" + }, + { + "nr": 121720, + "hash": "71bd66d6cc585427b310596c5f0ae771d76c85a0" + }, + { + "nr": 120902, + "hash": "ddabe25d1eedfad6dd67fed91160f5c6a185f7e9" + }, + { + "nr": 116209, + "hash": "8fea25256116ebcf61697dad408f34a99e45299b" + }, + { + "nr": 122578, + "hash": "6a741e0e42cabf782c6ddeb48165efcebc8eeb29" + }, + { + "nr": 122138, + "hash": "e7ced2ae78cc42c7840d32ce62192247c796f2d1" + }, + { + "nr": 122555, + "hash": "6df06f26cecd2de3fdbd86b3c45ddb139ee0667b" + }, + { + "nr": 120246, + "hash": "6cd9158186e11c294bc4aec7946c219d6aa50e59" + }, + { + "nr": 122058, + "hash": "58857d3df1142e0d49e2298ac60cec84a2165b1c" + }, + { + "nr": 123157, + "hash": "29a32b6194b003a0adc645dfd305b0420fdc8c51" + }, + { + "nr": 122874, + "hash": "b7f662076cc5b2bbc6d4771e10d143feecc64f20" + }, + { + "nr": 123475, + "hash": "7e756cffdbd9d33baf7fed9c4a07ae95c99ba754" + }, + { + "nr": 122889, + "hash": "34cdae2a471957ea02cef72b690aa38ebd3548c3" + }, + { + "nr": 121954, + "hash": "74c60ad48c81a69383281a6f3de9e6197c942fc8" + }, + { + "nr": 122309, + "hash": "447b7ab4aa66cd04c4276fbe8ec4d91ef3991c6f" + }, + { + "nr": 122088, + "hash": "86bb3ab9d671d21e7caf08cd4fe4e0131333b4ee" + }, + { + "nr": 121876, + "hash": "68b764228294c1f89d56e92de73c0e243e27ea4a" + }, + { + "nr": 122704, + "hash": "f8b91e38856f604d010e8d1ecbf9a224a19cc525" + }, + { + "nr": 123098, + "hash": "898391e50b1f462ae8e95da6e6512bff47b05b31" + }, + { + "nr": 121413, + "hash": "af14755a8021ed0e6c9fbd7835151747a9305685" + }, + { + "nr": 120344, + "hash": "0537d1623957e860da5f0373d955bb289ec56507" + }, + { + "nr": 122233, + "hash": "c449a1bfcb9209432dd9fde956d15a47df38b54a" + }, + { + "nr": 121834, + "hash": "ae26c344db900b397e14655f995e481b3c7f53eb" + }, + { + "nr": 122883, + "hash": "b5c7d3e153309098f230f6d68513a431223f5042" + }, + { + "nr": 122285, + "hash": "2de33c2a698f532bcefe1504cd8e87a5a8b53ad7" + }, + { + "nr": 122041, + "hash": "cd1fa8c547ff394e43e1c22c8e82ae782c46dbdd" + }, + { + "nr": 123282, + "hash": "5a06f01159c8d6020f7fa9a0e10c050fb1f7b87c" + }, + { + "nr": 122893, + "hash": "584b709d5a8d1e582a374d364c7e9dd7e9916973" + }, + { + "nr": 123003, + "hash": "08bfd11ea5f975e4c60699f84dadbcde946d5e37" + }, + { + "nr": 122475, + "hash": "a290ee8444a983f0cb7e94ccfc56e745e4556c11" + }, + { + "nr": 122023, + "hash": "eef8b23e8767da87b16153b9ce7f012df52bba6e" + }, + { + "nr": 123442, + "hash": "a684fe7d9e53bc2f179830f662e72f720083cd23" + }, + { + "nr": 122296, + "hash": "95b159d1235187db3d54e02b5f1accde8a03a7f9" + }, + { + "nr": 123150, + "hash": "853743573ae876b877937673c7426f191b2571bd" + }, + { + "nr": 122735, + "hash": "67532fb39a9828b8cce63de1b267485467e0e68c" + }, + { + "nr": 114672, + "hash": "a6f14e24bcb1f65fce2ba5574ca7d725062aebbd" + }, + { + "nr": 123083, + "hash": "7c4d4c051ff80497af915c2add91cf6b79a5adb8" + }, + { + "nr": 122804, + "hash": "e048c464452fae8bab364fe782d20e0b3c9743f5" + }, + { + "nr": 122456, + "hash": "5664dbabbb69e0d5005aa637fcc78635ab5430c4" + }, + { + "nr": 123052, + "hash": "fccad842f7865c32fc69aa7cd983ab9c02a0cffd" + }, + { + "nr": 122013, + "hash": "fe05274e9deefe00949bbfeff93d8b0408fbbead" + }, + { + "nr": 117046, + "hash": "1b82be0d876432bacb233b6519d9f03ac31cf2ca" + }, + { + "nr": 122612, + "hash": "afb9ea10ec7a18b793f6a8e9c7284ca0d7827f1c" + }, + { + "nr": 121565, + "hash": "8dfa5405a4bf80d6c398556d08588cc87b447e81" + }, + { + "nr": 123077, + "hash": "d64a7029fbaceda492b4218d25d91d5c185290ef" + }, + { + "nr": 123366, + "hash": "841a39672fb26a42f4b289d413805d20294d5e1f" + }, + { + "nr": 122211, + "hash": "92ede1357e6b597336426daa8670626e8dc8ff7d" + }, + { + "nr": 122069, + "hash": "30b5c8e8cf3e12130d24a7d4099388cfa249f73a" + }, + { + "nr": 121983, + "hash": "6ccb7af9b0704418420074b1cff007c2f922d675" + }, + { + "nr": 122409, + "hash": "5e5c42c2613046fb60d38bc0efe219254547db47" + }, + { + "nr": 123171, + "hash": "c07dd522817554ec590937b6d11f51cba019981b" + }, + { + "nr": 122142, + "hash": "fecdd94fd7c6d6a16163f4c8bef99ffe06fdf5c2" + }, + { + "nr": 122393, + "hash": "8edb169d279015e6007a5130066613e12873908b" + }, + { + "nr": 119779, + "hash": "2199c26568e33f2237ac072e183ea613ce90e6fe" + }, + { + "nr": 122197, + "hash": "53be6f3d436c3ff3894425d16ca72cc49e6bd0f8" + }, + { + "nr": 123425, + "hash": "1f265139780cfafd655eaf5652540e9a9b1e1c21" + }, + { + "nr": 123341, + "hash": "a48c6694ae111944dc45451abcd932c7dbbe253a" + }, + { + "nr": 122086, + "hash": "1569e0a85e3655f44aadae7106d2f0cf72ab152b" + }, + { + "nr": 122139, + "hash": "efc59460ae34bfea2f039db087845572e67e1576" + }, + { + "nr": 121952, + "hash": "0679bd2e460985a7e9508672fba8196b4d44a6c0" + }, + { + "nr": 122493, + "hash": "97bac1cb12d5ae4deb2f7f29da771c135192a92d" + }, + { + "nr": 115768, + "hash": "1211aa5e681059b61107983391f00dad2fa21a68" + }, + { + "nr": 123023, + "hash": "fefd700c367498bf6878f046ba2b77fbe540ec56" + }, + { + "nr": 121461, + "hash": "6ac527ea7effc0feb6f82ff31a50bb8a06555eb0" + }, + { + "nr": 122178, + "hash": "d9a1ec52a23acbb0df1602f1a7525ada40be76a2" + }, + { + "nr": 122640, + "hash": "3d4e23f91b67e8cd72fc3caa1ba8176ce2cf56e9" + }, + { + "nr": 121815, + "hash": "703e81edd269d80665e86fc5316831065f4c6bc4" + }, + { + "nr": 122635, + "hash": "3db4333b6d7de0a80522a31b5778a42b6200b5dd" + }, + { + "nr": 123055, + "hash": "f6466f5616b311e67a8a4ebf25111bd9375f8a01" + }, + { + "nr": 123179, + "hash": "cd00aa3a9ce3544cdb1e65bd79c64e07af114797" + }, + { + "nr": 122334, + "hash": "2b2a8d699601b5fa821b31a96fb07777e1cf864b" + }, + { + "nr": 123345, + "hash": "520cab26cd7375d9c9b8cd1f7dbef388d6d6741f" + }, + { + "nr": 122329, + "hash": "a3a5e5a5e4923041fe4b0f08b8e36b69a0bb72e8" + }, + { + "nr": 123504, + "hash": "2fb007a87bf7043bb3168e4afd6ae16b3db7061e" + }, + { + "nr": 122068, + "hash": "ac64bc0d638b9654adf3455d2a21d90470d53c71" + }, + { + "nr": 122022, + "hash": "5679da40f3e033394bd08e33654eb5139d69aaab" + }, + { + "nr": 120251, + "hash": "e3f058fa24295f4830a5e0b3d6d902217c890795" + }, + { + "nr": 123069, + "hash": "56e6bedeb01ebadaad654cc11656a003a0a93082" + }, + { + "nr": 123333, + "hash": "6863a5915b930508bc7795ac5228952df5f6c74b" + }, + { + "nr": 122225, + "hash": "34a5efd5671842ebace9cc416c237bc01290b761" + }, + { + "nr": 122724, + "hash": "e979f6667f497cbbaf75870cdceec8b879d3801e" + }, + { + "nr": 123093, + "hash": "2c88ebfa68e69f97aa4bcd846341220a39bf5321" + }, + { + "nr": 121778, + "hash": "ed4acd9734f981718a6a5c350b7d7bc8743ee006" + }, + { + "nr": 120642, + "hash": "b0d725c193a0ef27e1f09724dd21825ac6c3845e" + }, + { + "nr": 122961, + "hash": "dbe5be41404cf36220c7d1af4391f700dc27e962" + }, + { + "nr": 120631, + "hash": "dfaf6564a7e4cec61264db6f6acb7b6fe898483e" + }, + { + "nr": 122692, + "hash": "ae2b3d6189326674cc9978d72d47390b02f72489" + }, + { + "nr": 122857, + "hash": "ba2c03f64c87ecf6ada77cbdb7152b15e938162e" + }, + { + "nr": 122647, + "hash": "1ceb71c04a470986182521dc0b40894c8c0cbaba" + }, + { + "nr": 122276, + "hash": "5eeb5c66a22a0424dcc5c16d50cc8de8f43620b0" + }, + { + "nr": 123479, + "hash": "5ddae5ed30785679458feb70ccaf566416334e0d" + }, + { + "nr": 123406, + "hash": "bfa0bea99d095da411d44350f6e4b135bd4c6b79" + }, + { + "nr": 122136, + "hash": "1ac74547f5fc601cd61b8a399e79f2a2976e0b02" + }, + { + "nr": 119923, + "hash": "d1562f7639221ecd20ffd6201d61dec91ddf4b34" + }, + { + "nr": 123384, + "hash": "61d6306f86caff1ad609e4825f6d3b8925cc582d" + }, + { + "nr": 123134, + "hash": "53d2e5598d35c5ec3a08b048205d29e74c94d11f" + }, + { + "nr": 123051, + "hash": "c783818b5c458ee297d72fe4a96dc0d7e3051886" + }, + { + "nr": 121669, + "hash": "c27bbce27a63b1abc1cb21f0ea7804fb883159bc" + }, + { + "nr": 122569, + "hash": "5b8c7676b6c73d28656f894f910cb3dd10cde0f8" + }, + { + "nr": 123438, + "hash": "9effc56649a69d6a37d24404e3e4a002bbebbc40" + }, + { + "nr": 123082, + "hash": "02bec89987ad9cd46c57bc4c632019f4b7b5f53c" + }, + { + "nr": 122346, + "hash": "92994ca464fbc8a953046dc949ad4e24b1ea46eb" + }, + { + "nr": 122589, + "hash": "5a54e6c9598374f2379aa50802cfa48ac3db9c65" + }, + { + "nr": 123215, + "hash": "f7fb9274708f3136f59b32eb3cdc3e5be1445bf6" + }, + { + "nr": 121908, + "hash": "5829fac8e89488f7b6ea6284cdc7a97dc77b54df" + }, + { + "nr": 123331, + "hash": "32e1fd50b35e15561ea271ad1fb0de8d884a1bf2" + }, + { + "nr": 114301, + "hash": "529409efb14ea741252d0c94d60232bb82dbd1be" + }, + { + "nr": 122571, + "hash": "d41769940412f807e1963bc596c2419088f3eb59" + }, + { + "nr": 122705, + "hash": "d831f653fac7f799e68c22f5b53df1412aed7fd0" + }, + { + "nr": 122576, + "hash": "9b878809e70cfdf48ab747a275933a8abc520b9c" + }, + { + "nr": 122887, + "hash": "4b697bfefb2e5cbd6dacfc20d0bb685acf653dfb" + }, + { + "nr": 122477, + "hash": "ee3ce572cb02b7ac950dd6f869f435891d860657" + }, + { + "nr": 121912, + "hash": "e4e77028e67a00224ea76a25194577650679c7eb" + }, + { + "nr": 122574, + "hash": "900898d5a82d2048e1bf6cddfbfb6b843f72f401" + }, + { + "nr": 123343, + "hash": "3f14870c859f261d4dae6cd6055e5ad433d5504f" + }, + { + "nr": 122288, + "hash": "58b048aa370044470f2d3f0b0e633950723e8340" + }, + { + "nr": 122558, + "hash": "56f0c5481a8ea959e965027c2c5c264847dbdbe5" + }, + { + "nr": 123261, + "hash": "9e2085adb73fe9e31c72844d1ccaf9a49444da76" + }, + { + "nr": 122614, + "hash": "6d531475a994e4f5f082cdcfcf3d160c2c24e09a" + }, + { + "nr": 117024, + "hash": "143c451a957468e1bcfe1d3d4d3562ecb1f40735" + }, + { + "nr": 120291, + "hash": "7175a41bcf501b878d951f3672cb0e7963a32e5f" + } + ] } \ No newline at end of file diff --git a/releases/release-1.30/release-notes/sessions/maps-1711378753.json b/releases/release-1.30/release-notes/sessions/maps-1711378753.json index 3b0e5d16d69..2285f868680 100644 --- a/releases/release-1.30/release-notes/sessions/maps-1711378753.json +++ b/releases/release-1.30/release-notes/sessions/maps-1711378753.json @@ -1,1075 +1,1075 @@ -{ - "mail": "smith.rashan@gmail.com", - "name": "rashansmith", - "date": 1711378753, - "prs": [ - { - "nr": 123659, - "hash": "0cc255eed9050587edac66ea04ad54cd01e90e22" - }, - { - "nr": 122589, - "hash": "5a54e6c9598374f2379aa50802cfa48ac3db9c65" - }, - { - "nr": 122618, - "hash": "31972451c6d01e7ae613cf9735b0545265820108" - }, - { - "nr": 122023, - "hash": "eef8b23e8767da87b16153b9ce7f012df52bba6e" - }, - { - "nr": 121983, - "hash": "6ccb7af9b0704418420074b1cff007c2f922d675" - }, - { - "nr": 123438, - "hash": "9effc56649a69d6a37d24404e3e4a002bbebbc40" - }, - { - "nr": 123069, - "hash": "3a7755418fd4964974ba45abad973edd10232209" - }, - { - "nr": 122523, - "hash": "7c76b40bb99c3c812912d5566df9ff9d59756cb4" - }, - { - "nr": 122729, - "hash": "6be42051fb162683069bea4dd12fd45dad6d3fdd" - }, - { - "nr": 122435, - "hash": "79539a3728d89896aff9ef9162fbd1aa11267190" - }, - { - "nr": 123555, - "hash": "e02bf4e2cf0d82a24c6ca10fcc02a4a498add9f3" - }, - { - "nr": 122889, - "hash": "34cdae2a471957ea02cef72b690aa38ebd3548c3" - }, - { - "nr": 122704, - "hash": "f8b91e38856f604d010e8d1ecbf9a224a19cc525" - }, - { - "nr": 122571, - "hash": "d41769940412f807e1963bc596c2419088f3eb59" - }, - { - "nr": 120159, - "hash": "f129eba00a87514cc3899dd8cbae4ff2e9328cc3" - }, - { - "nr": 122556, - "hash": "e3e41f36b7f6108544348daa667cccf85b2de6f7" - }, - { - "nr": 122069, - "hash": "30b5c8e8cf3e12130d24a7d4099388cfa249f73a" - }, - { - "nr": 123719, - "hash": "3fe275c055380f90e36a45eabd416fd95b080221" - }, - { - "nr": 123405, - "hash": "d91c5f80ecdad5b56518ff04117f11c5e75337cc" - }, - { - "nr": 122296, - "hash": "3d5c84f3aeb164c46425a7cbe3f7db8ee5dcffe6" - }, - { - "nr": 122647, - "hash": "1ceb71c04a470986182521dc0b40894c8c0cbaba" - }, - { - "nr": 123561, - "hash": "1064a3a740bc7a22418ba412b54da6f9317e6fd5" - }, - { - "nr": 123593, - "hash": "c0ac6a50a3268c30429d2d1551a2cb9db89b9c75" - }, - { - "nr": 123560, - "hash": "279d85518e206520932d3889bb81a6372d979719" - }, - { - "nr": 123083, - "hash": "a2167f7f91431c45f130d6ec2284f36fed3f8784" - }, - { - "nr": 123082, - "hash": "02bec89987ad9cd46c57bc4c632019f4b7b5f53c" - }, - { - "nr": 122415, - "hash": "b7d412b97dfcc6a1ba3c026859f687ae63e1dd7d" - }, - { - "nr": 121736, - "hash": "8b6add9950c8ee078184894d952cd7e16e6c82e1" - }, - { - "nr": 121387, - "hash": "93332e73ac077aac0fa2074e37f442998ae1ba4e" - }, - { - "nr": 122887, - "hash": "4b697bfefb2e5cbd6dacfc20d0bb685acf653dfb" - }, - { - "nr": 122961, - "hash": "dbe5be41404cf36220c7d1af4391f700dc27e962" - }, - { - "nr": 122697, - "hash": "040628820e2e491f9d194689a02a3c0407616cd6" - }, - { - "nr": 122086, - "hash": "1569e0a85e3655f44aadae7106d2f0cf72ab152b" - }, - { - "nr": 122139, - "hash": "efc59460ae34bfea2f039db087845572e67e1576" - }, - { - "nr": 112957, - "hash": "59d43a953bdbde77ace66f5077e93cc2f4955e5c" - }, - { - "nr": 123372, - "hash": "b945c60e8e72f38ff02d81830ab315e87604495a" - }, - { - "nr": 123272, - "hash": "bfbd0f881777d617ebea20854d84905ebf4cd2b5" - }, - { - "nr": 122136, - "hash": "1ac74547f5fc601cd61b8a399e79f2a2976e0b02" - }, - { - "nr": 122893, - "hash": "0ecf806ec2ba194d679cef7bdfbb9c43a48f5bb2" - }, - { - "nr": 123527, - "hash": "979b7d9b77ee1b0065caffa73fe3474f73b13034" - }, - { - "nr": 123654, - "hash": "a1a292bcd2f0f80279071ced20abefaaa73e5c95" - }, - { - "nr": 123215, - "hash": "a5a3bbedfb22ca88bf95be32fe33d4e16c7855cf" - }, - { - "nr": 120344, - "hash": "7223520be239e596ba65c61263b9b503f68f4aae" - }, - { - "nr": 122999, - "hash": "5f5a954528f1540ffbe47c032d5d929e1f7eea6d" - }, - { - "nr": 115768, - "hash": "1211aa5e681059b61107983391f00dad2fa21a68" - }, - { - "nr": 123525, - "hash": "1cdefd0e86c36fe1adf9d4742a90a01f5fe5709c" - }, - { - "nr": 123412, - "hash": "43ff4ad3d5781aa8b4ea518d46463c82af96e285" - }, - { - "nr": 123696, - "hash": "7023ec70312d53e06daa446172cfa8cde4b99ff8" - }, - { - "nr": 123529, - "hash": "74d53151a90a355a072e7827168f73c400aa8643" - }, - { - "nr": 114672, - "hash": "a6f14e24bcb1f65fce2ba5574ca7d725062aebbd" - }, - { - "nr": 123562, - "hash": "1aa47cc3856567f7e5966c20315af4437fad90d8" - }, - { - "nr": 122276, - "hash": "5eeb5c66a22a0424dcc5c16d50cc8de8f43620b0" - }, - { - "nr": 122285, - "hash": "2de33c2a698f532bcefe1504cd8e87a5a8b53ad7" - }, - { - "nr": 123190, - "hash": "62c5b79b6402298e4abd24d9e3f76b3fb3cffa85" - }, - { - "nr": 123223, - "hash": "e9d1e22bce7e9bce0689b9fbe56f7f87ce129b14" - }, - { - "nr": 123271, - "hash": "c2bad11ca49471e925703ba8b9de7b8c576839e8" - }, - { - "nr": 121958, - "hash": "eec0e57b64bb82a7ce6949d7a20c9dbf473b2941" - }, - { - "nr": 122271, - "hash": "e3c90744d0d05a5f0f0baff2839d9cc8b8db5abf" - }, - { - "nr": 122178, - "hash": "d9a1ec52a23acbb0df1602f1a7525ada40be76a2" - }, - { - "nr": 123865, - "hash": "e4d8b0971c0eb03d41ce2db1f87aee385a0ab850" - }, - { - "nr": 123639, - "hash": "41ca8977ed90bceef2312ff02150d8ec967703b6" - }, - { - "nr": 123667, - "hash": "daf77fdb52db9d77e360e901253e47753c70722f" - }, - { - "nr": 123341, - "hash": "13ff630b5042f8121adc90826ac45615a06a6360" - }, - { - "nr": 122569, - "hash": "5b8c7676b6c73d28656f894f910cb3dd10cde0f8" - }, - { - "nr": 123331, - "hash": "d35bb73d95ce14b2fb0f31d1f2d70745f1d0a1f9" - }, - { - "nr": 122710, - "hash": "4a48327f2ab39f96c86805e0cbdf37c53fad330e" - }, - { - "nr": 123532, - "hash": "82c45e84b5cf2b602d98ccf2aa9b798bdc0aa07e" - }, - { - "nr": 121834, - "hash": "ae26c344db900b397e14655f995e481b3c7f53eb" - }, - { - "nr": 122578, - "hash": "6a741e0e42cabf782c6ddeb48165efcebc8eeb29" - }, - { - "nr": 122334, - "hash": "2b2a8d699601b5fa821b31a96fb07777e1cf864b" - }, - { - "nr": 123570, - "hash": "d51abb92e7604e99852b44969e02be8e2b5bfc08" - }, - { - "nr": 121461, - "hash": "5aa648799df8917f24b2e4df66b540334ddcb2a5" - }, - { - "nr": 122309, - "hash": "447b7ab4aa66cd04c4276fbe8ec4d91ef3991c6f" - }, - { - "nr": 123641, - "hash": "34efaf5f83389cc10e45c1daad8c7f44de61095f" - }, - { - "nr": 122422, - "hash": "3d6acd42c96341a56783649bc079c27ca6a8d4ea" - }, - { - "nr": 123652, - "hash": "642624fc3e8b4a353c7b412bb6b51661a80b82de" - }, - { - "nr": 123038, - "hash": "2ecb87555cdbf5589fc0c17678e377f6911f295c" - }, - { - "nr": 122692, - "hash": "640cc226eff6d5e475eee80318da15d2c52206f6" - }, - { - "nr": 122874, - "hash": "22f916f1c5d934043807b5223ba443e636b60d79" - }, - { - "nr": 123023, - "hash": "dc664987c36002c69fba2fddf20218a7cb674040" - }, - { - "nr": 122032, - "hash": "e87927f045fd9af8a2a9740c86f667258e61419c" - }, - { - "nr": 122195, - "hash": "999df1427271544ede2aba402a86534761967c74" - }, - { - "nr": 122555, - "hash": "6df06f26cecd2de3fdbd86b3c45ddb139ee0667b" - }, - { - "nr": 121912, - "hash": "e4e77028e67a00224ea76a25194577650679c7eb" - }, - { - "nr": 123366, - "hash": "9bf82eecf83f48f4c670e24da764a5e23e5fbeec" - }, - { - "nr": 123484, - "hash": "b19c1fd9e21e5189ee21991f9494ec2cbd99cd74" - }, - { - "nr": 122830, - "hash": "7eabff9e89727dc428ad594964561ddfbf1d29e7" - }, - { - "nr": 123384, - "hash": "61d6306f86caff1ad609e4825f6d3b8925cc582d" - }, - { - "nr": 118389, - "hash": "8d2c567a63f0cfc6c29c441ebea2a7f3b341c1de" - }, - { - "nr": 123413, - "hash": "0f887fcb89a8bea9407cc7fb815df6a64d0250af" - }, - { - "nr": 123282, - "hash": "5a06f01159c8d6020f7fa9a0e10c050fb1f7b87c" - }, - { - "nr": 122503, - "hash": "f9fb69fe9cac7f426a98b6b8042d8591657974dc" - }, - { - "nr": 121908, - "hash": "5829fac8e89488f7b6ea6284cdc7a97dc77b54df" - }, - { - "nr": 123431, - "hash": "b3b097756ef6b0764dd083e379f2eb931ba66d3a" - }, - { - "nr": 123345, - "hash": "520cab26cd7375d9c9b8cd1f7dbef388d6d6741f" - }, - { - "nr": 122233, - "hash": "c449a1bfcb9209432dd9fde956d15a47df38b54a" - }, - { - "nr": 122341, - "hash": "82565bad8477bf702d2a0e4fd4670022b4bc2b39" - }, - { - "nr": 123821, - "hash": "3aeb382c9b94f1375c7a2bd1f909f1e37527ea30" - }, - { - "nr": 122717, - "hash": "47292bfb6e846818cc2007ddd6cd7e4e09e3e7de" - }, - { - "nr": 120631, - "hash": "dfaf6564a7e4cec61264db6f6acb7b6fe898483e" - }, - { - "nr": 122508, - "hash": "cafd1e47b91f27f43463c63de5bfef3a7187e1b9" - }, - { - "nr": 123657, - "hash": "4d5433cf58e985fbef54c674c2265c5ea9b6f871" - }, - { - "nr": 120251, - "hash": "840de1b1f7bb84c8e53344698992741f735ba90f" - }, - { - "nr": 123281, - "hash": "abb214915f83c38cd3ea595a368d109c00d9c985" - }, - { - "nr": 123418, - "hash": "5c3e46e0708ad5983e8a2d15461e49fb3a4fb976" - }, - { - "nr": 122456, - "hash": "5664dbabbb69e0d5005aa637fcc78635ab5430c4" - }, - { - "nr": 117046, - "hash": "1b82be0d876432bacb233b6519d9f03ac31cf2ca" - }, - { - "nr": 123750, - "hash": "76993d9c58817c019c97ad846bf957780e8435ed" - }, - { - "nr": 123713, - "hash": "31497cfff4bea3b7e2aa8e409cb37e650bf93a51" - }, - { - "nr": 122293, - "hash": "082b281ea7dd3599aac385ceef93dffa7b4f69de" - }, - { - "nr": 122088, - "hash": "86bb3ab9d671d21e7caf08cd4fe4e0131333b4ee" - }, - { - "nr": 122225, - "hash": "34a5efd5671842ebace9cc416c237bc01290b761" - }, - { - "nr": 123793, - "hash": "133455accc860ed71245b3e56bd66355b01a24c8" - }, - { - "nr": 123504, - "hash": "2fb007a87bf7043bb3168e4afd6ae16b3db7061e" - }, - { - "nr": 123464, - "hash": "fd2166ad192b9ffbeff358fd5320e33a8d755330" - }, - { - "nr": 121669, - "hash": "c27bbce27a63b1abc1cb21f0ea7804fb883159bc" - }, - { - "nr": 123003, - "hash": "08bfd11ea5f975e4c60699f84dadbcde946d5e37" - }, - { - "nr": 122914, - "hash": "ca91025809e574a336a694089c46e1f2e28aeb32" - }, - { - "nr": 122475, - "hash": "a290ee8444a983f0cb7e94ccfc56e745e4556c11" - }, - { - "nr": 118756, - "hash": "85b7fe6d2b99ac78b9886189cbc79628d6540057" - }, - { - "nr": 122477, - "hash": "f3499318285ea9fb8809acb28c02f0d82670e358" - }, - { - "nr": 122409, - "hash": "5e5c42c2613046fb60d38bc0efe219254547db47" - }, - { - "nr": 123520, - "hash": "1623e058751c20f0f8db22d934bb097309d26527" - }, - { - "nr": 122870, - "hash": "b646f143d4fc48df8636b6be39c13b1c0b73a8fc" - }, - { - "nr": 122750, - "hash": "79372d3fc5a43351a0a8bdca7b72e805430ba4ed" - }, - { - "nr": 122558, - "hash": "56f0c5481a8ea959e965027c2c5c264847dbdbe5" - }, - { - "nr": 122449, - "hash": "84cd943c76bf661167e3458356659d9464239250" - }, - { - "nr": 122946, - "hash": "9c45e6f5cf0c523f2c7884291f84f48de6b97fa4" - }, - { - "nr": 122197, - "hash": "53be6f3d436c3ff3894425d16ca72cc49e6bd0f8" - }, - { - "nr": 122013, - "hash": "fe05274e9deefe00949bbfeff93d8b0408fbbead" - }, - { - "nr": 123225, - "hash": "68f0a15cd041ab4347eaa867b8e5c75b6fd137d1" - }, - { - "nr": 120642, - "hash": "b0d725c193a0ef27e1f09724dd21825ac6c3845e" - }, - { - "nr": 116209, - "hash": "8fea25256116ebcf61697dad408f34a99e45299b" - }, - { - "nr": 123093, - "hash": "1744926d2d7dab0745224a967564a640c6d54d7f" - }, - { - "nr": 121954, - "hash": "74c60ad48c81a69383281a6f3de9e6197c942fc8" - }, - { - "nr": 123575, - "hash": "565bbed7b6e46119d026e5baacb941ae708dee1e" - }, - { - "nr": 123205, - "hash": "987351c65883bd203a1c2208e1a31b8fb6e54d46" - }, - { - "nr": 123333, - "hash": "6863a5915b930508bc7795ac5228952df5f6c74b" - }, - { - "nr": 122231, - "hash": "6b57812006a457ad9123a2c5bb5acb14d392023a" - }, - { - "nr": 123180, - "hash": "9968c4dacfc32efd881a1614496f6478c353fc67" - }, - { - "nr": 123435, - "hash": "742ea84b0df015c009a774f625f0ae200f6c52c5" - }, - { - "nr": 123578, - "hash": "d28cfe94f7d124e384a77726df344df077975b63" - }, - { - "nr": 122635, - "hash": "3db4333b6d7de0a80522a31b5778a42b6200b5dd" - }, - { - "nr": 122138, - "hash": "e7ced2ae78cc42c7840d32ce62192247c796f2d1" - }, - { - "nr": 123776, - "hash": "48864caccf63af6e489fc43c2d72c5edb814f137" - }, - { - "nr": 122907, - "hash": "dceb07394588d3dffa739419268e0afb05e4a180" - }, - { - "nr": 123640, - "hash": "a107196d4e763592ba2ee10326e807781eb43336" - }, - { - "nr": 123738, - "hash": "6468bbe38b4d519bc08c5c482bf51bf30e7dded1" - }, - { - "nr": 123461, - "hash": "d1d58dce60df2ed7d4c842119b2200d8f932e40a" - }, - { - "nr": 114301, - "hash": "8b7a3ad407995737f6a16196124f33c38d191136" - }, - { - "nr": 123001, - "hash": "d9d9bbbc23c6540006999412560a9192e971d297" - }, - { - "nr": 122068, - "hash": "ac64bc0d638b9654adf3455d2a21d90470d53c71" - }, - { - "nr": 123674, - "hash": "52ea9fd74398b81a1671d8e3fa593dd6b89f1e42" - }, - { - "nr": 123425, - "hash": "1f265139780cfafd655eaf5652540e9a9b1e1c21" - }, - { - "nr": 122612, - "hash": "b13fcd9e5cf4debccde7acc792c984b34af937e9" - }, - { - "nr": 123098, - "hash": "898391e50b1f462ae8e95da6e6512bff47b05b31" - }, - { - "nr": 122211, - "hash": "92ede1357e6b597336426daa8670626e8dc8ff7d" - }, - { - "nr": 122530, - "hash": "de9bfc9611ee59d6fff3873b15551e9c31e6de57" - }, - { - "nr": 122137, - "hash": "9b78044154ff2a37879e6a48d42ce3c18d9bbda7" - }, - { - "nr": 121413, - "hash": "af14755a8021ed0e6c9fbd7835151747a9305685" - }, - { - "nr": 123543, - "hash": "4dfe991b8baebfa12153ac8c3809c326a477b76c" - }, - { - "nr": 123343, - "hash": "3f14870c859f261d4dae6cd6055e5ad433d5504f" - }, - { - "nr": 123170, - "hash": "dcab64e558862578d9d685fb4b720e28beffa06b" - }, - { - "nr": 123055, - "hash": "f6466f5616b311e67a8a4ebf25111bd9375f8a01" - }, - { - "nr": 122857, - "hash": "01a2e487143afcdb42567628d51ed9b8fb174082" - }, - { - "nr": 123261, - "hash": "44f11c1fa24cba788576e9b03ecaa63aa89db668" - }, - { - "nr": 119200, - "hash": "90c97f7d07058d10a752b3246311a45cacb9323a" - }, - { - "nr": 121565, - "hash": "8dfa5405a4bf80d6c398556d08588cc87b447e81" - }, - { - "nr": 120246, - "hash": "6cd9158186e11c294bc4aec7946c219d6aa50e59" - }, - { - "nr": 120718, - "hash": "8570ec6ef79a467324a305c03bdfb0fc9e1e0b16" - }, - { - "nr": 123487, - "hash": "1788ced307f6a72db08672fb19013c2a9b341876" - }, - { - "nr": 122846, - "hash": "970447dc1f84f4692cc0c77daab4bcb49b8ff141" - }, - { - "nr": 122346, - "hash": "92994ca464fbc8a953046dc949ad4e24b1ea46eb" - }, - { - "nr": 123216, - "hash": "3920aea0c708ae830abc13c8de821e31d27a3789" - }, - { - "nr": 123442, - "hash": "a684fe7d9e53bc2f179830f662e72f720083cd23" - }, - { - "nr": 123171, - "hash": "c07dd522817554ec590937b6d11f51cba019981b" - }, - { - "nr": 122937, - "hash": "a8fc0a5c0da782c9d9178d925fc03c2fa86c567f" - }, - { - "nr": 123424, - "hash": "b34f0429d08c95593eee283c76d30ba5b8a10815" - }, - { - "nr": 123479, - "hash": "5ddae5ed30785679458feb70ccaf566416334e0d" - }, - { - "nr": 121778, - "hash": "ed4acd9734f981718a6a5c350b7d7bc8743ee006" - }, - { - "nr": 121815, - "hash": "703e81edd269d80665e86fc5316831065f4c6bc4" - }, - { - "nr": 123568, - "hash": "a8e8caa9afb73a8f1918e9a694460afe72db98f4" - }, - { - "nr": 121946, - "hash": "5a49dbcd545c04e0bcda70c073a36d4a4d4da08d" - }, - { - "nr": 121719, - "hash": "b09e6a34a1c8d1cd74801d78004aacdfc3b1a21b" - }, - { - "nr": 122600, - "hash": "951686e3a49eec1ac827937c5deb611a9b5a8442" - }, - { - "nr": 123730, - "hash": "98c55bcd88da642a5713de92cda4ddca3e2b42b7" - }, - { - "nr": 123599, - "hash": "3b3285595afc678e0bf92d65cf17f9e476ece591" - }, - { - "nr": 121876, - "hash": "68b764228294c1f89d56e92de73c0e243e27ea4a" - }, - { - "nr": 119779, - "hash": "2199c26568e33f2237ac072e183ea613ce90e6fe" - }, - { - "nr": 123758, - "hash": "a546868ab92cd3b01cb5e96d75f96f0783659b5d" - }, - { - "nr": 122030, - "hash": "7a154e605387b32abe2ddecb6bbf61dca4b00e9c" - }, - { - "nr": 122329, - "hash": "a3a5e5a5e4923041fe4b0f08b8e36b69a0bb72e8" - }, - { - "nr": 117024, - "hash": "143c451a957468e1bcfe1d3d4d3562ecb1f40735" - }, - { - "nr": 123310, - "hash": "86112cd192da77e3789d25f7e2ee6e45f91575ed" - }, - { - "nr": 121720, - "hash": "71bd66d6cc585427b310596c5f0ae771d76c85a0" - }, - { - "nr": 122701, - "hash": "1a22b002a3edbc080e2409dbc0404b656f56e32e" - }, - { - "nr": 122576, - "hash": "9b878809e70cfdf48ab747a275933a8abc520b9c" - }, - { - "nr": 122339, - "hash": "97b2eeb3eadd2d56b22fdc256463d39581ec3ccc" - }, - { - "nr": 123684, - "hash": "bf987c78baf4fabd719ca434407ba213532ee7db" - }, - { - "nr": 123157, - "hash": "29a32b6194b003a0adc645dfd305b0420fdc8c51" - }, - { - "nr": 122056, - "hash": "0cbaf5169a51ac5e671839eb3b5913138da44888" - }, - { - "nr": 123564, - "hash": "f0dd7919ebf1999118b30cdf6a77073e728ff9c0" - }, - { - "nr": 123134, - "hash": "53d2e5598d35c5ec3a08b048205d29e74c94d11f" - }, - { - "nr": 123117, - "hash": "b69b8283f16f84c592ba7b42777207f7bf1500bb" - }, - { - "nr": 122204, - "hash": "c25143a75d8292f427150a67800895ce0ee9cc8b" - }, - { - "nr": 120111, - "hash": "e0ecb0ef0b6ee73e57add9d9002f27b37a811788" - }, - { - "nr": 123490, - "hash": "0529aa7d82d7b558b0ed20a7d2319bbe713e0fcc" - }, - { - "nr": 122574, - "hash": "364e3f65bcdac67a9ff8c202a3392c6b0cb77403" - }, - { - "nr": 120291, - "hash": "7175a41bcf501b878d951f3672cb0e7963a32e5f" - }, - { - "nr": 123737, - "hash": "186ffe76ab9b4c25e1033abe73d8017a315402e3" - }, - { - "nr": 123344, - "hash": "43a145553fdaa7978fcb8534027ad5a6d63315b6" - }, - { - "nr": 122393, - "hash": "8edb169d279015e6007a5130066613e12873908b" - }, - { - "nr": 122804, - "hash": "e048c464452fae8bab364fe782d20e0b3c9743f5" - }, - { - "nr": 122614, - "hash": "6d531475a994e4f5f082cdcfcf3d160c2c24e09a" - }, - { - "nr": 123516, - "hash": "b5bf50d9a4f8e7c739846be63e629178513775b9" - }, - { - "nr": 123273, - "hash": "9f6b8b909191e10ebd37e0a9a49927f97f85c20a" - }, - { - "nr": 123165, - "hash": "142b1d57bb3baea4cbebb8d3ac53620580f76620" - }, - { - "nr": 123052, - "hash": "3500c614a5ca8cf68dfad29eac1f30e8ff35a65c" - }, - { - "nr": 122807, - "hash": "21dc9efa3ac021e007021760e18f742aae826375" - }, - { - "nr": 123475, - "hash": "654cc49a616cd17fef773cf55ff0962f8dc8d8fe" - }, - { - "nr": 123051, - "hash": "363185121a8f4ac4c0a1608105b02e97a1bd8e32" - }, - { - "nr": 123077, - "hash": "cfef04b2263c7855d0eb9190f21e4e543531acc0" - }, - { - "nr": 122724, - "hash": "e979f6667f497cbbaf75870cdceec8b879d3801e" - }, - { - "nr": 119923, - "hash": "d1562f7639221ecd20ffd6201d61dec91ddf4b34" - }, - { - "nr": 123481, - "hash": "7388dbfde4a9325d6f721d4a8c5cf39e19bbaad9" - }, - { - "nr": 122735, - "hash": "67532fb39a9828b8cce63de1b267485467e0e68c" - }, - { - "nr": 122468, - "hash": "0c6d469cbc3fca935a0b2f80749a197a92bb0106" - }, - { - "nr": 119177, - "hash": "a225fc5e576bb50f46245586c6af4470e035c7d9" - }, - { - "nr": 122882, - "hash": "eaaa09582d7bc645b1ca4cfc1063952a13ef2a9d" - }, - { - "nr": 122493, - "hash": "b5a650d9e11428c246839991c06ecc195b233324" - }, - { - "nr": 122881, - "hash": "4b8a21c411831f592087b2bae0c2e160355b4215" - }, - { - "nr": 123150, - "hash": "5b35fdc7e2ea3ee684d045ed81a3c4067288355e" - }, - { - "nr": 121512, - "hash": "c3be7d4e7a1f77f382cdb7687a665d694c3fa72c" - }, - { - "nr": 120346, - "hash": "898a07090a12bf51cd23c937a1dbdcf3549a0f16" - }, - { - "nr": 123614, - "hash": "540c23c19bce6a04669acdcf770a78ae1b5bf0f9" - }, - { - "nr": 123492, - "hash": "4bdef65f04d076a4059f506f5bfe9737ac703aee" - }, - { - "nr": 122058, - "hash": "58857d3df1142e0d49e2298ac60cec84a2165b1c" - }, - { - "nr": 123385, - "hash": "748465bdb3831ead0ce01f26705cc80c65b9a301" - }, - { - "nr": 122745, - "hash": "1896300a2abf8c92ba991756d42f1f5634d42009" - }, - { - "nr": 123540, - "hash": "125323646750da82aa0feb2ab17589480038b67b" - }, - { - "nr": 122883, - "hash": "b5c7d3e153309098f230f6d68513a431223f5042" - }, - { - "nr": 122134, - "hash": "17886629a62db11d66b89059615f3343ce9ca6a8" - }, - { - "nr": 123323, - "hash": "a55d569924a1dbd29c997ff939dca9fd126cce11" - }, - { - "nr": 123488, - "hash": "a41d926d2fdad2ab37b0dc57542c29570f01bd46" - }, - { - "nr": 120902, - "hash": "ddabe25d1eedfad6dd67fed91160f5c6a185f7e9" - }, - { - "nr": 123217, - "hash": "7e2e3cd67bd384b2e38da8d4326c9548735c20a1" - }, - { - "nr": 122640, - "hash": "3d4e23f91b67e8cd72fc3caa1ba8176ce2cf56e9" - }, - { - "nr": 122022, - "hash": "5679da40f3e033394bd08e33654eb5139d69aaab" - }, - { - "nr": 123482, - "hash": "33b4e0acf001f9d44761a5257460a00b31b19b2b" - }, - { - "nr": 123226, - "hash": "5a1ac899cf466542aa5394ef8930caad665bc3e5" - }, - { - "nr": 123011, - "hash": "20d2523e32094bb7e00c6c0512b37023091424fd" - }, - { - "nr": 122498, - "hash": "e4fc2858ace5f680cad00bdc71aac15175dded14" - }, - { - "nr": 122079, - "hash": "049d2a979481375babfd25b0a7fcf5ac2e6dd2a0" - }, - { - "nr": 123508, - "hash": "e286633399ea3911363274196187ef510a941d3e" - }, - { - "nr": 121952, - "hash": "0679bd2e460985a7e9508672fba8196b4d44a6c0" - }, - { - "nr": 123135, - "hash": "9d0b295753890379efb600314cc858140f803cec" - }, - { - "nr": 123611, - "hash": "ef728248eef30359399a80e81bbaefaa65442086" - }, - { - "nr": 122142, - "hash": "fecdd94fd7c6d6a16163f4c8bef99ffe06fdf5c2" - }, - { - "nr": 122705, - "hash": "d831f653fac7f799e68c22f5b53df1412aed7fd0" - }, - { - "nr": 122041, - "hash": "cd1fa8c547ff394e43e1c22c8e82ae782c46dbdd" - }, - { - "nr": 123565, - "hash": "2fc7ec47f2ec6288a0b208e64d881ee2b3f53d5d" - }, - { - "nr": 123406, - "hash": "bfa0bea99d095da411d44350f6e4b135bd4c6b79" - }, - { - "nr": 123222, - "hash": "fe6c30596f3d09bef7cc0d67f23bf5566a7b1507" - }, - { - "nr": 123179, - "hash": "cd00aa3a9ce3544cdb1e65bd79c64e07af114797" - }, - { - "nr": 123032, - "hash": "8bfa2f0f53ce14fe7f962bf478c081c27c1c3af0" - }, - { - "nr": 123517, - "hash": "0cb3d3d9a008134fe0af8fbe7c24682b4e2c5393" - }, - { - "nr": 122288, - "hash": "58b048aa370044470f2d3f0b0e633950723e8340" - } - ] +{ + "mail": "smith.rashan@gmail.com", + "name": "rashansmith", + "date": 1711378753, + "prs": [ + { + "nr": 123659, + "hash": "0cc255eed9050587edac66ea04ad54cd01e90e22" + }, + { + "nr": 122589, + "hash": "5a54e6c9598374f2379aa50802cfa48ac3db9c65" + }, + { + "nr": 122618, + "hash": "31972451c6d01e7ae613cf9735b0545265820108" + }, + { + "nr": 122023, + "hash": "eef8b23e8767da87b16153b9ce7f012df52bba6e" + }, + { + "nr": 121983, + "hash": "6ccb7af9b0704418420074b1cff007c2f922d675" + }, + { + "nr": 123438, + "hash": "9effc56649a69d6a37d24404e3e4a002bbebbc40" + }, + { + "nr": 123069, + "hash": "3a7755418fd4964974ba45abad973edd10232209" + }, + { + "nr": 122523, + "hash": "7c76b40bb99c3c812912d5566df9ff9d59756cb4" + }, + { + "nr": 122729, + "hash": "6be42051fb162683069bea4dd12fd45dad6d3fdd" + }, + { + "nr": 122435, + "hash": "79539a3728d89896aff9ef9162fbd1aa11267190" + }, + { + "nr": 123555, + "hash": "e02bf4e2cf0d82a24c6ca10fcc02a4a498add9f3" + }, + { + "nr": 122889, + "hash": "34cdae2a471957ea02cef72b690aa38ebd3548c3" + }, + { + "nr": 122704, + "hash": "f8b91e38856f604d010e8d1ecbf9a224a19cc525" + }, + { + "nr": 122571, + "hash": "d41769940412f807e1963bc596c2419088f3eb59" + }, + { + "nr": 120159, + "hash": "f129eba00a87514cc3899dd8cbae4ff2e9328cc3" + }, + { + "nr": 122556, + "hash": "e3e41f36b7f6108544348daa667cccf85b2de6f7" + }, + { + "nr": 122069, + "hash": "30b5c8e8cf3e12130d24a7d4099388cfa249f73a" + }, + { + "nr": 123719, + "hash": "3fe275c055380f90e36a45eabd416fd95b080221" + }, + { + "nr": 123405, + "hash": "d91c5f80ecdad5b56518ff04117f11c5e75337cc" + }, + { + "nr": 122296, + "hash": "3d5c84f3aeb164c46425a7cbe3f7db8ee5dcffe6" + }, + { + "nr": 122647, + "hash": "1ceb71c04a470986182521dc0b40894c8c0cbaba" + }, + { + "nr": 123561, + "hash": "1064a3a740bc7a22418ba412b54da6f9317e6fd5" + }, + { + "nr": 123593, + "hash": "c0ac6a50a3268c30429d2d1551a2cb9db89b9c75" + }, + { + "nr": 123560, + "hash": "279d85518e206520932d3889bb81a6372d979719" + }, + { + "nr": 123083, + "hash": "a2167f7f91431c45f130d6ec2284f36fed3f8784" + }, + { + "nr": 123082, + "hash": "02bec89987ad9cd46c57bc4c632019f4b7b5f53c" + }, + { + "nr": 122415, + "hash": "b7d412b97dfcc6a1ba3c026859f687ae63e1dd7d" + }, + { + "nr": 121736, + "hash": "8b6add9950c8ee078184894d952cd7e16e6c82e1" + }, + { + "nr": 121387, + "hash": "93332e73ac077aac0fa2074e37f442998ae1ba4e" + }, + { + "nr": 122887, + "hash": "4b697bfefb2e5cbd6dacfc20d0bb685acf653dfb" + }, + { + "nr": 122961, + "hash": "dbe5be41404cf36220c7d1af4391f700dc27e962" + }, + { + "nr": 122697, + "hash": "040628820e2e491f9d194689a02a3c0407616cd6" + }, + { + "nr": 122086, + "hash": "1569e0a85e3655f44aadae7106d2f0cf72ab152b" + }, + { + "nr": 122139, + "hash": "efc59460ae34bfea2f039db087845572e67e1576" + }, + { + "nr": 112957, + "hash": "59d43a953bdbde77ace66f5077e93cc2f4955e5c" + }, + { + "nr": 123372, + "hash": "b945c60e8e72f38ff02d81830ab315e87604495a" + }, + { + "nr": 123272, + "hash": "bfbd0f881777d617ebea20854d84905ebf4cd2b5" + }, + { + "nr": 122136, + "hash": "1ac74547f5fc601cd61b8a399e79f2a2976e0b02" + }, + { + "nr": 122893, + "hash": "0ecf806ec2ba194d679cef7bdfbb9c43a48f5bb2" + }, + { + "nr": 123527, + "hash": "979b7d9b77ee1b0065caffa73fe3474f73b13034" + }, + { + "nr": 123654, + "hash": "a1a292bcd2f0f80279071ced20abefaaa73e5c95" + }, + { + "nr": 123215, + "hash": "a5a3bbedfb22ca88bf95be32fe33d4e16c7855cf" + }, + { + "nr": 120344, + "hash": "7223520be239e596ba65c61263b9b503f68f4aae" + }, + { + "nr": 122999, + "hash": "5f5a954528f1540ffbe47c032d5d929e1f7eea6d" + }, + { + "nr": 115768, + "hash": "1211aa5e681059b61107983391f00dad2fa21a68" + }, + { + "nr": 123525, + "hash": "1cdefd0e86c36fe1adf9d4742a90a01f5fe5709c" + }, + { + "nr": 123412, + "hash": "43ff4ad3d5781aa8b4ea518d46463c82af96e285" + }, + { + "nr": 123696, + "hash": "7023ec70312d53e06daa446172cfa8cde4b99ff8" + }, + { + "nr": 123529, + "hash": "74d53151a90a355a072e7827168f73c400aa8643" + }, + { + "nr": 114672, + "hash": "a6f14e24bcb1f65fce2ba5574ca7d725062aebbd" + }, + { + "nr": 123562, + "hash": "1aa47cc3856567f7e5966c20315af4437fad90d8" + }, + { + "nr": 122276, + "hash": "5eeb5c66a22a0424dcc5c16d50cc8de8f43620b0" + }, + { + "nr": 122285, + "hash": "2de33c2a698f532bcefe1504cd8e87a5a8b53ad7" + }, + { + "nr": 123190, + "hash": "62c5b79b6402298e4abd24d9e3f76b3fb3cffa85" + }, + { + "nr": 123223, + "hash": "e9d1e22bce7e9bce0689b9fbe56f7f87ce129b14" + }, + { + "nr": 123271, + "hash": "c2bad11ca49471e925703ba8b9de7b8c576839e8" + }, + { + "nr": 121958, + "hash": "eec0e57b64bb82a7ce6949d7a20c9dbf473b2941" + }, + { + "nr": 122271, + "hash": "e3c90744d0d05a5f0f0baff2839d9cc8b8db5abf" + }, + { + "nr": 122178, + "hash": "d9a1ec52a23acbb0df1602f1a7525ada40be76a2" + }, + { + "nr": 123865, + "hash": "e4d8b0971c0eb03d41ce2db1f87aee385a0ab850" + }, + { + "nr": 123639, + "hash": "41ca8977ed90bceef2312ff02150d8ec967703b6" + }, + { + "nr": 123667, + "hash": "daf77fdb52db9d77e360e901253e47753c70722f" + }, + { + "nr": 123341, + "hash": "13ff630b5042f8121adc90826ac45615a06a6360" + }, + { + "nr": 122569, + "hash": "5b8c7676b6c73d28656f894f910cb3dd10cde0f8" + }, + { + "nr": 123331, + "hash": "d35bb73d95ce14b2fb0f31d1f2d70745f1d0a1f9" + }, + { + "nr": 122710, + "hash": "4a48327f2ab39f96c86805e0cbdf37c53fad330e" + }, + { + "nr": 123532, + "hash": "82c45e84b5cf2b602d98ccf2aa9b798bdc0aa07e" + }, + { + "nr": 121834, + "hash": "ae26c344db900b397e14655f995e481b3c7f53eb" + }, + { + "nr": 122578, + "hash": "6a741e0e42cabf782c6ddeb48165efcebc8eeb29" + }, + { + "nr": 122334, + "hash": "2b2a8d699601b5fa821b31a96fb07777e1cf864b" + }, + { + "nr": 123570, + "hash": "d51abb92e7604e99852b44969e02be8e2b5bfc08" + }, + { + "nr": 121461, + "hash": "5aa648799df8917f24b2e4df66b540334ddcb2a5" + }, + { + "nr": 122309, + "hash": "447b7ab4aa66cd04c4276fbe8ec4d91ef3991c6f" + }, + { + "nr": 123641, + "hash": "34efaf5f83389cc10e45c1daad8c7f44de61095f" + }, + { + "nr": 122422, + "hash": "3d6acd42c96341a56783649bc079c27ca6a8d4ea" + }, + { + "nr": 123652, + "hash": "642624fc3e8b4a353c7b412bb6b51661a80b82de" + }, + { + "nr": 123038, + "hash": "2ecb87555cdbf5589fc0c17678e377f6911f295c" + }, + { + "nr": 122692, + "hash": "640cc226eff6d5e475eee80318da15d2c52206f6" + }, + { + "nr": 122874, + "hash": "22f916f1c5d934043807b5223ba443e636b60d79" + }, + { + "nr": 123023, + "hash": "dc664987c36002c69fba2fddf20218a7cb674040" + }, + { + "nr": 122032, + "hash": "e87927f045fd9af8a2a9740c86f667258e61419c" + }, + { + "nr": 122195, + "hash": "999df1427271544ede2aba402a86534761967c74" + }, + { + "nr": 122555, + "hash": "6df06f26cecd2de3fdbd86b3c45ddb139ee0667b" + }, + { + "nr": 121912, + "hash": "e4e77028e67a00224ea76a25194577650679c7eb" + }, + { + "nr": 123366, + "hash": "9bf82eecf83f48f4c670e24da764a5e23e5fbeec" + }, + { + "nr": 123484, + "hash": "b19c1fd9e21e5189ee21991f9494ec2cbd99cd74" + }, + { + "nr": 122830, + "hash": "7eabff9e89727dc428ad594964561ddfbf1d29e7" + }, + { + "nr": 123384, + "hash": "61d6306f86caff1ad609e4825f6d3b8925cc582d" + }, + { + "nr": 118389, + "hash": "8d2c567a63f0cfc6c29c441ebea2a7f3b341c1de" + }, + { + "nr": 123413, + "hash": "0f887fcb89a8bea9407cc7fb815df6a64d0250af" + }, + { + "nr": 123282, + "hash": "5a06f01159c8d6020f7fa9a0e10c050fb1f7b87c" + }, + { + "nr": 122503, + "hash": "f9fb69fe9cac7f426a98b6b8042d8591657974dc" + }, + { + "nr": 121908, + "hash": "5829fac8e89488f7b6ea6284cdc7a97dc77b54df" + }, + { + "nr": 123431, + "hash": "b3b097756ef6b0764dd083e379f2eb931ba66d3a" + }, + { + "nr": 123345, + "hash": "520cab26cd7375d9c9b8cd1f7dbef388d6d6741f" + }, + { + "nr": 122233, + "hash": "c449a1bfcb9209432dd9fde956d15a47df38b54a" + }, + { + "nr": 122341, + "hash": "82565bad8477bf702d2a0e4fd4670022b4bc2b39" + }, + { + "nr": 123821, + "hash": "3aeb382c9b94f1375c7a2bd1f909f1e37527ea30" + }, + { + "nr": 122717, + "hash": "47292bfb6e846818cc2007ddd6cd7e4e09e3e7de" + }, + { + "nr": 120631, + "hash": "dfaf6564a7e4cec61264db6f6acb7b6fe898483e" + }, + { + "nr": 122508, + "hash": "cafd1e47b91f27f43463c63de5bfef3a7187e1b9" + }, + { + "nr": 123657, + "hash": "4d5433cf58e985fbef54c674c2265c5ea9b6f871" + }, + { + "nr": 120251, + "hash": "840de1b1f7bb84c8e53344698992741f735ba90f" + }, + { + "nr": 123281, + "hash": "abb214915f83c38cd3ea595a368d109c00d9c985" + }, + { + "nr": 123418, + "hash": "5c3e46e0708ad5983e8a2d15461e49fb3a4fb976" + }, + { + "nr": 122456, + "hash": "5664dbabbb69e0d5005aa637fcc78635ab5430c4" + }, + { + "nr": 117046, + "hash": "1b82be0d876432bacb233b6519d9f03ac31cf2ca" + }, + { + "nr": 123750, + "hash": "76993d9c58817c019c97ad846bf957780e8435ed" + }, + { + "nr": 123713, + "hash": "31497cfff4bea3b7e2aa8e409cb37e650bf93a51" + }, + { + "nr": 122293, + "hash": "082b281ea7dd3599aac385ceef93dffa7b4f69de" + }, + { + "nr": 122088, + "hash": "86bb3ab9d671d21e7caf08cd4fe4e0131333b4ee" + }, + { + "nr": 122225, + "hash": "34a5efd5671842ebace9cc416c237bc01290b761" + }, + { + "nr": 123793, + "hash": "133455accc860ed71245b3e56bd66355b01a24c8" + }, + { + "nr": 123504, + "hash": "2fb007a87bf7043bb3168e4afd6ae16b3db7061e" + }, + { + "nr": 123464, + "hash": "fd2166ad192b9ffbeff358fd5320e33a8d755330" + }, + { + "nr": 121669, + "hash": "c27bbce27a63b1abc1cb21f0ea7804fb883159bc" + }, + { + "nr": 123003, + "hash": "08bfd11ea5f975e4c60699f84dadbcde946d5e37" + }, + { + "nr": 122914, + "hash": "ca91025809e574a336a694089c46e1f2e28aeb32" + }, + { + "nr": 122475, + "hash": "a290ee8444a983f0cb7e94ccfc56e745e4556c11" + }, + { + "nr": 118756, + "hash": "85b7fe6d2b99ac78b9886189cbc79628d6540057" + }, + { + "nr": 122477, + "hash": "f3499318285ea9fb8809acb28c02f0d82670e358" + }, + { + "nr": 122409, + "hash": "5e5c42c2613046fb60d38bc0efe219254547db47" + }, + { + "nr": 123520, + "hash": "1623e058751c20f0f8db22d934bb097309d26527" + }, + { + "nr": 122870, + "hash": "b646f143d4fc48df8636b6be39c13b1c0b73a8fc" + }, + { + "nr": 122750, + "hash": "79372d3fc5a43351a0a8bdca7b72e805430ba4ed" + }, + { + "nr": 122558, + "hash": "56f0c5481a8ea959e965027c2c5c264847dbdbe5" + }, + { + "nr": 122449, + "hash": "84cd943c76bf661167e3458356659d9464239250" + }, + { + "nr": 122946, + "hash": "9c45e6f5cf0c523f2c7884291f84f48de6b97fa4" + }, + { + "nr": 122197, + "hash": "53be6f3d436c3ff3894425d16ca72cc49e6bd0f8" + }, + { + "nr": 122013, + "hash": "fe05274e9deefe00949bbfeff93d8b0408fbbead" + }, + { + "nr": 123225, + "hash": "68f0a15cd041ab4347eaa867b8e5c75b6fd137d1" + }, + { + "nr": 120642, + "hash": "b0d725c193a0ef27e1f09724dd21825ac6c3845e" + }, + { + "nr": 116209, + "hash": "8fea25256116ebcf61697dad408f34a99e45299b" + }, + { + "nr": 123093, + "hash": "1744926d2d7dab0745224a967564a640c6d54d7f" + }, + { + "nr": 121954, + "hash": "74c60ad48c81a69383281a6f3de9e6197c942fc8" + }, + { + "nr": 123575, + "hash": "565bbed7b6e46119d026e5baacb941ae708dee1e" + }, + { + "nr": 123205, + "hash": "987351c65883bd203a1c2208e1a31b8fb6e54d46" + }, + { + "nr": 123333, + "hash": "6863a5915b930508bc7795ac5228952df5f6c74b" + }, + { + "nr": 122231, + "hash": "6b57812006a457ad9123a2c5bb5acb14d392023a" + }, + { + "nr": 123180, + "hash": "9968c4dacfc32efd881a1614496f6478c353fc67" + }, + { + "nr": 123435, + "hash": "742ea84b0df015c009a774f625f0ae200f6c52c5" + }, + { + "nr": 123578, + "hash": "d28cfe94f7d124e384a77726df344df077975b63" + }, + { + "nr": 122635, + "hash": "3db4333b6d7de0a80522a31b5778a42b6200b5dd" + }, + { + "nr": 122138, + "hash": "e7ced2ae78cc42c7840d32ce62192247c796f2d1" + }, + { + "nr": 123776, + "hash": "48864caccf63af6e489fc43c2d72c5edb814f137" + }, + { + "nr": 122907, + "hash": "dceb07394588d3dffa739419268e0afb05e4a180" + }, + { + "nr": 123640, + "hash": "a107196d4e763592ba2ee10326e807781eb43336" + }, + { + "nr": 123738, + "hash": "6468bbe38b4d519bc08c5c482bf51bf30e7dded1" + }, + { + "nr": 123461, + "hash": "d1d58dce60df2ed7d4c842119b2200d8f932e40a" + }, + { + "nr": 114301, + "hash": "8b7a3ad407995737f6a16196124f33c38d191136" + }, + { + "nr": 123001, + "hash": "d9d9bbbc23c6540006999412560a9192e971d297" + }, + { + "nr": 122068, + "hash": "ac64bc0d638b9654adf3455d2a21d90470d53c71" + }, + { + "nr": 123674, + "hash": "52ea9fd74398b81a1671d8e3fa593dd6b89f1e42" + }, + { + "nr": 123425, + "hash": "1f265139780cfafd655eaf5652540e9a9b1e1c21" + }, + { + "nr": 122612, + "hash": "b13fcd9e5cf4debccde7acc792c984b34af937e9" + }, + { + "nr": 123098, + "hash": "898391e50b1f462ae8e95da6e6512bff47b05b31" + }, + { + "nr": 122211, + "hash": "92ede1357e6b597336426daa8670626e8dc8ff7d" + }, + { + "nr": 122530, + "hash": "de9bfc9611ee59d6fff3873b15551e9c31e6de57" + }, + { + "nr": 122137, + "hash": "9b78044154ff2a37879e6a48d42ce3c18d9bbda7" + }, + { + "nr": 121413, + "hash": "af14755a8021ed0e6c9fbd7835151747a9305685" + }, + { + "nr": 123543, + "hash": "4dfe991b8baebfa12153ac8c3809c326a477b76c" + }, + { + "nr": 123343, + "hash": "3f14870c859f261d4dae6cd6055e5ad433d5504f" + }, + { + "nr": 123170, + "hash": "dcab64e558862578d9d685fb4b720e28beffa06b" + }, + { + "nr": 123055, + "hash": "f6466f5616b311e67a8a4ebf25111bd9375f8a01" + }, + { + "nr": 122857, + "hash": "01a2e487143afcdb42567628d51ed9b8fb174082" + }, + { + "nr": 123261, + "hash": "44f11c1fa24cba788576e9b03ecaa63aa89db668" + }, + { + "nr": 119200, + "hash": "90c97f7d07058d10a752b3246311a45cacb9323a" + }, + { + "nr": 121565, + "hash": "8dfa5405a4bf80d6c398556d08588cc87b447e81" + }, + { + "nr": 120246, + "hash": "6cd9158186e11c294bc4aec7946c219d6aa50e59" + }, + { + "nr": 120718, + "hash": "8570ec6ef79a467324a305c03bdfb0fc9e1e0b16" + }, + { + "nr": 123487, + "hash": "1788ced307f6a72db08672fb19013c2a9b341876" + }, + { + "nr": 122846, + "hash": "970447dc1f84f4692cc0c77daab4bcb49b8ff141" + }, + { + "nr": 122346, + "hash": "92994ca464fbc8a953046dc949ad4e24b1ea46eb" + }, + { + "nr": 123216, + "hash": "3920aea0c708ae830abc13c8de821e31d27a3789" + }, + { + "nr": 123442, + "hash": "a684fe7d9e53bc2f179830f662e72f720083cd23" + }, + { + "nr": 123171, + "hash": "c07dd522817554ec590937b6d11f51cba019981b" + }, + { + "nr": 122937, + "hash": "a8fc0a5c0da782c9d9178d925fc03c2fa86c567f" + }, + { + "nr": 123424, + "hash": "b34f0429d08c95593eee283c76d30ba5b8a10815" + }, + { + "nr": 123479, + "hash": "5ddae5ed30785679458feb70ccaf566416334e0d" + }, + { + "nr": 121778, + "hash": "ed4acd9734f981718a6a5c350b7d7bc8743ee006" + }, + { + "nr": 121815, + "hash": "703e81edd269d80665e86fc5316831065f4c6bc4" + }, + { + "nr": 123568, + "hash": "a8e8caa9afb73a8f1918e9a694460afe72db98f4" + }, + { + "nr": 121946, + "hash": "5a49dbcd545c04e0bcda70c073a36d4a4d4da08d" + }, + { + "nr": 121719, + "hash": "b09e6a34a1c8d1cd74801d78004aacdfc3b1a21b" + }, + { + "nr": 122600, + "hash": "951686e3a49eec1ac827937c5deb611a9b5a8442" + }, + { + "nr": 123730, + "hash": "98c55bcd88da642a5713de92cda4ddca3e2b42b7" + }, + { + "nr": 123599, + "hash": "3b3285595afc678e0bf92d65cf17f9e476ece591" + }, + { + "nr": 121876, + "hash": "68b764228294c1f89d56e92de73c0e243e27ea4a" + }, + { + "nr": 119779, + "hash": "2199c26568e33f2237ac072e183ea613ce90e6fe" + }, + { + "nr": 123758, + "hash": "a546868ab92cd3b01cb5e96d75f96f0783659b5d" + }, + { + "nr": 122030, + "hash": "7a154e605387b32abe2ddecb6bbf61dca4b00e9c" + }, + { + "nr": 122329, + "hash": "a3a5e5a5e4923041fe4b0f08b8e36b69a0bb72e8" + }, + { + "nr": 117024, + "hash": "143c451a957468e1bcfe1d3d4d3562ecb1f40735" + }, + { + "nr": 123310, + "hash": "86112cd192da77e3789d25f7e2ee6e45f91575ed" + }, + { + "nr": 121720, + "hash": "71bd66d6cc585427b310596c5f0ae771d76c85a0" + }, + { + "nr": 122701, + "hash": "1a22b002a3edbc080e2409dbc0404b656f56e32e" + }, + { + "nr": 122576, + "hash": "9b878809e70cfdf48ab747a275933a8abc520b9c" + }, + { + "nr": 122339, + "hash": "97b2eeb3eadd2d56b22fdc256463d39581ec3ccc" + }, + { + "nr": 123684, + "hash": "bf987c78baf4fabd719ca434407ba213532ee7db" + }, + { + "nr": 123157, + "hash": "29a32b6194b003a0adc645dfd305b0420fdc8c51" + }, + { + "nr": 122056, + "hash": "0cbaf5169a51ac5e671839eb3b5913138da44888" + }, + { + "nr": 123564, + "hash": "f0dd7919ebf1999118b30cdf6a77073e728ff9c0" + }, + { + "nr": 123134, + "hash": "53d2e5598d35c5ec3a08b048205d29e74c94d11f" + }, + { + "nr": 123117, + "hash": "b69b8283f16f84c592ba7b42777207f7bf1500bb" + }, + { + "nr": 122204, + "hash": "c25143a75d8292f427150a67800895ce0ee9cc8b" + }, + { + "nr": 120111, + "hash": "e0ecb0ef0b6ee73e57add9d9002f27b37a811788" + }, + { + "nr": 123490, + "hash": "0529aa7d82d7b558b0ed20a7d2319bbe713e0fcc" + }, + { + "nr": 122574, + "hash": "364e3f65bcdac67a9ff8c202a3392c6b0cb77403" + }, + { + "nr": 120291, + "hash": "7175a41bcf501b878d951f3672cb0e7963a32e5f" + }, + { + "nr": 123737, + "hash": "186ffe76ab9b4c25e1033abe73d8017a315402e3" + }, + { + "nr": 123344, + "hash": "43a145553fdaa7978fcb8534027ad5a6d63315b6" + }, + { + "nr": 122393, + "hash": "8edb169d279015e6007a5130066613e12873908b" + }, + { + "nr": 122804, + "hash": "e048c464452fae8bab364fe782d20e0b3c9743f5" + }, + { + "nr": 122614, + "hash": "6d531475a994e4f5f082cdcfcf3d160c2c24e09a" + }, + { + "nr": 123516, + "hash": "b5bf50d9a4f8e7c739846be63e629178513775b9" + }, + { + "nr": 123273, + "hash": "9f6b8b909191e10ebd37e0a9a49927f97f85c20a" + }, + { + "nr": 123165, + "hash": "142b1d57bb3baea4cbebb8d3ac53620580f76620" + }, + { + "nr": 123052, + "hash": "3500c614a5ca8cf68dfad29eac1f30e8ff35a65c" + }, + { + "nr": 122807, + "hash": "21dc9efa3ac021e007021760e18f742aae826375" + }, + { + "nr": 123475, + "hash": "654cc49a616cd17fef773cf55ff0962f8dc8d8fe" + }, + { + "nr": 123051, + "hash": "363185121a8f4ac4c0a1608105b02e97a1bd8e32" + }, + { + "nr": 123077, + "hash": "cfef04b2263c7855d0eb9190f21e4e543531acc0" + }, + { + "nr": 122724, + "hash": "e979f6667f497cbbaf75870cdceec8b879d3801e" + }, + { + "nr": 119923, + "hash": "d1562f7639221ecd20ffd6201d61dec91ddf4b34" + }, + { + "nr": 123481, + "hash": "7388dbfde4a9325d6f721d4a8c5cf39e19bbaad9" + }, + { + "nr": 122735, + "hash": "67532fb39a9828b8cce63de1b267485467e0e68c" + }, + { + "nr": 122468, + "hash": "0c6d469cbc3fca935a0b2f80749a197a92bb0106" + }, + { + "nr": 119177, + "hash": "a225fc5e576bb50f46245586c6af4470e035c7d9" + }, + { + "nr": 122882, + "hash": "eaaa09582d7bc645b1ca4cfc1063952a13ef2a9d" + }, + { + "nr": 122493, + "hash": "b5a650d9e11428c246839991c06ecc195b233324" + }, + { + "nr": 122881, + "hash": "4b8a21c411831f592087b2bae0c2e160355b4215" + }, + { + "nr": 123150, + "hash": "5b35fdc7e2ea3ee684d045ed81a3c4067288355e" + }, + { + "nr": 121512, + "hash": "c3be7d4e7a1f77f382cdb7687a665d694c3fa72c" + }, + { + "nr": 120346, + "hash": "898a07090a12bf51cd23c937a1dbdcf3549a0f16" + }, + { + "nr": 123614, + "hash": "540c23c19bce6a04669acdcf770a78ae1b5bf0f9" + }, + { + "nr": 123492, + "hash": "4bdef65f04d076a4059f506f5bfe9737ac703aee" + }, + { + "nr": 122058, + "hash": "58857d3df1142e0d49e2298ac60cec84a2165b1c" + }, + { + "nr": 123385, + "hash": "748465bdb3831ead0ce01f26705cc80c65b9a301" + }, + { + "nr": 122745, + "hash": "1896300a2abf8c92ba991756d42f1f5634d42009" + }, + { + "nr": 123540, + "hash": "125323646750da82aa0feb2ab17589480038b67b" + }, + { + "nr": 122883, + "hash": "b5c7d3e153309098f230f6d68513a431223f5042" + }, + { + "nr": 122134, + "hash": "17886629a62db11d66b89059615f3343ce9ca6a8" + }, + { + "nr": 123323, + "hash": "a55d569924a1dbd29c997ff939dca9fd126cce11" + }, + { + "nr": 123488, + "hash": "a41d926d2fdad2ab37b0dc57542c29570f01bd46" + }, + { + "nr": 120902, + "hash": "ddabe25d1eedfad6dd67fed91160f5c6a185f7e9" + }, + { + "nr": 123217, + "hash": "7e2e3cd67bd384b2e38da8d4326c9548735c20a1" + }, + { + "nr": 122640, + "hash": "3d4e23f91b67e8cd72fc3caa1ba8176ce2cf56e9" + }, + { + "nr": 122022, + "hash": "5679da40f3e033394bd08e33654eb5139d69aaab" + }, + { + "nr": 123482, + "hash": "33b4e0acf001f9d44761a5257460a00b31b19b2b" + }, + { + "nr": 123226, + "hash": "5a1ac899cf466542aa5394ef8930caad665bc3e5" + }, + { + "nr": 123011, + "hash": "20d2523e32094bb7e00c6c0512b37023091424fd" + }, + { + "nr": 122498, + "hash": "e4fc2858ace5f680cad00bdc71aac15175dded14" + }, + { + "nr": 122079, + "hash": "049d2a979481375babfd25b0a7fcf5ac2e6dd2a0" + }, + { + "nr": 123508, + "hash": "e286633399ea3911363274196187ef510a941d3e" + }, + { + "nr": 121952, + "hash": "0679bd2e460985a7e9508672fba8196b4d44a6c0" + }, + { + "nr": 123135, + "hash": "9d0b295753890379efb600314cc858140f803cec" + }, + { + "nr": 123611, + "hash": "ef728248eef30359399a80e81bbaefaa65442086" + }, + { + "nr": 122142, + "hash": "fecdd94fd7c6d6a16163f4c8bef99ffe06fdf5c2" + }, + { + "nr": 122705, + "hash": "d831f653fac7f799e68c22f5b53df1412aed7fd0" + }, + { + "nr": 122041, + "hash": "cd1fa8c547ff394e43e1c22c8e82ae782c46dbdd" + }, + { + "nr": 123565, + "hash": "2fc7ec47f2ec6288a0b208e64d881ee2b3f53d5d" + }, + { + "nr": 123406, + "hash": "bfa0bea99d095da411d44350f6e4b135bd4c6b79" + }, + { + "nr": 123222, + "hash": "fe6c30596f3d09bef7cc0d67f23bf5566a7b1507" + }, + { + "nr": 123179, + "hash": "cd00aa3a9ce3544cdb1e65bd79c64e07af114797" + }, + { + "nr": 123032, + "hash": "8bfa2f0f53ce14fe7f962bf478c081c27c1c3af0" + }, + { + "nr": 123517, + "hash": "0cb3d3d9a008134fe0af8fbe7c24682b4e2c5393" + }, + { + "nr": 122288, + "hash": "58b048aa370044470f2d3f0b0e633950723e8340" + } + ] } \ No newline at end of file diff --git a/releases/release-1.30/release-notes/sessions/maps-1712246948.json b/releases/release-1.30/release-notes/sessions/maps-1712246948.json index add577166c8..4fcc4a8eb91 100644 --- a/releases/release-1.30/release-notes/sessions/maps-1712246948.json +++ b/releases/release-1.30/release-notes/sessions/maps-1712246948.json @@ -1,1103 +1,1103 @@ -{ - "mail": "satyampsoni@gmail.com", - "name": "Satyam Soni", - "date": 1712246948, - "prs": [ - { - "nr": 119200, - "hash": "90c97f7d07058d10a752b3246311a45cacb9323a" - }, - { - "nr": 123593, - "hash": "c0ac6a50a3268c30429d2d1551a2cb9db89b9c75" - }, - { - "nr": 123135, - "hash": "9d0b295753890379efb600314cc858140f803cec" - }, - { - "nr": 123372, - "hash": "b945c60e8e72f38ff02d81830ab315e87604495a" - }, - { - "nr": 121512, - "hash": "c3be7d4e7a1f77f382cdb7687a665d694c3fa72c" - }, - { - "nr": 123737, - "hash": "186ffe76ab9b4c25e1033abe73d8017a315402e3" - }, - { - "nr": 122271, - "hash": "e3c90744d0d05a5f0f0baff2839d9cc8b8db5abf" - }, - { - "nr": 123180, - "hash": "9968c4dacfc32efd881a1614496f6478c353fc67" - }, - { - "nr": 123599, - "hash": "3b3285595afc678e0bf92d65cf17f9e476ece591" - }, - { - "nr": 123341, - "hash": "13ff630b5042f8121adc90826ac45615a06a6360" - }, - { - "nr": 123568, - "hash": "a8e8caa9afb73a8f1918e9a694460afe72db98f4" - }, - { - "nr": 122225, - "hash": "34a5efd5671842ebace9cc416c237bc01290b761" - }, - { - "nr": 122069, - "hash": "30b5c8e8cf3e12130d24a7d4099388cfa249f73a" - }, - { - "nr": 123082, - "hash": "02bec89987ad9cd46c57bc4c632019f4b7b5f53c" - }, - { - "nr": 123758, - "hash": "a546868ab92cd3b01cb5e96d75f96f0783659b5d" - }, - { - "nr": 123713, - "hash": "31497cfff4bea3b7e2aa8e409cb37e650bf93a51" - }, - { - "nr": 123560, - "hash": "279d85518e206520932d3889bb81a6372d979719" - }, - { - "nr": 123565, - "hash": "2fc7ec47f2ec6288a0b208e64d881ee2b3f53d5d" - }, - { - "nr": 121461, - "hash": "5aa648799df8917f24b2e4df66b540334ddcb2a5" - }, - { - "nr": 123038, - "hash": "2ecb87555cdbf5589fc0c17678e377f6911f295c" - }, - { - "nr": 123564, - "hash": "f0dd7919ebf1999118b30cdf6a77073e728ff9c0" - }, - { - "nr": 120251, - "hash": "840de1b1f7bb84c8e53344698992741f735ba90f" - }, - { - "nr": 123540, - "hash": "125323646750da82aa0feb2ab17589480038b67b" - }, - { - "nr": 123418, - "hash": "5c3e46e0708ad5983e8a2d15461e49fb3a4fb976" - }, - { - "nr": 123412, - "hash": "43ff4ad3d5781aa8b4ea518d46463c82af96e285" - }, - { - "nr": 123639, - "hash": "41ca8977ed90bceef2312ff02150d8ec967703b6" - }, - { - "nr": 122555, - "hash": "6df06f26cecd2de3fdbd86b3c45ddb139ee0667b" - }, - { - "nr": 121413, - "hash": "af14755a8021ed0e6c9fbd7835151747a9305685" - }, - { - "nr": 122692, - "hash": "640cc226eff6d5e475eee80318da15d2c52206f6" - }, - { - "nr": 122138, - "hash": "e7ced2ae78cc42c7840d32ce62192247c796f2d1" - }, - { - "nr": 122341, - "hash": "af83a75050feff89e51a64e7762a6fb9ad6988ff" - }, - { - "nr": 123750, - "hash": "76993d9c58817c019c97ad846bf957780e8435ed" - }, - { - "nr": 123555, - "hash": "e02bf4e2cf0d82a24c6ca10fcc02a4a498add9f3" - }, - { - "nr": 123001, - "hash": "d9d9bbbc23c6540006999412560a9192e971d297" - }, - { - "nr": 122724, - "hash": "e979f6667f497cbbaf75870cdceec8b879d3801e" - }, - { - "nr": 123170, - "hash": "dcab64e558862578d9d685fb4b720e28beffa06b" - }, - { - "nr": 120159, - "hash": "f129eba00a87514cc3899dd8cbae4ff2e9328cc3" - }, - { - "nr": 123323, - "hash": "a55d569924a1dbd29c997ff939dca9fd126cce11" - }, - { - "nr": 123310, - "hash": "86112cd192da77e3789d25f7e2ee6e45f91575ed" - }, - { - "nr": 123272, - "hash": "bfbd0f881777d617ebea20854d84905ebf4cd2b5" - }, - { - "nr": 123171, - "hash": "c07dd522817554ec590937b6d11f51cba019981b" - }, - { - "nr": 122468, - "hash": "0c6d469cbc3fca935a0b2f80749a197a92bb0106" - }, - { - "nr": 120246, - "hash": "6cd9158186e11c294bc4aec7946c219d6aa50e59" - }, - { - "nr": 122088, - "hash": "86bb3ab9d671d21e7caf08cd4fe4e0131333b4ee" - }, - { - "nr": 120718, - "hash": "8570ec6ef79a467324a305c03bdfb0fc9e1e0b16" - }, - { - "nr": 122882, - "hash": "eaaa09582d7bc645b1ca4cfc1063952a13ef2a9d" - }, - { - "nr": 121778, - "hash": "ed4acd9734f981718a6a5c350b7d7bc8743ee006" - }, - { - "nr": 121565, - "hash": "8dfa5405a4bf80d6c398556d08588cc87b447e81" - }, - { - "nr": 122729, - "hash": "6be42051fb162683069bea4dd12fd45dad6d3fdd" - }, - { - "nr": 122578, - "hash": "6a741e0e42cabf782c6ddeb48165efcebc8eeb29" - }, - { - "nr": 122032, - "hash": "e87927f045fd9af8a2a9740c86f667258e61419c" - }, - { - "nr": 117046, - "hash": "1b82be0d876432bacb233b6519d9f03ac31cf2ca" - }, - { - "nr": 118389, - "hash": "8d2c567a63f0cfc6c29c441ebea2a7f3b341c1de" - }, - { - "nr": 122600, - "hash": "951686e3a49eec1ac827937c5deb611a9b5a8442" - }, - { - "nr": 123674, - "hash": "52ea9fd74398b81a1671d8e3fa593dd6b89f1e42" - }, - { - "nr": 122493, - "hash": "b5a650d9e11428c246839991c06ecc195b233324" - }, - { - "nr": 121720, - "hash": "71bd66d6cc585427b310596c5f0ae771d76c85a0" - }, - { - "nr": 123150, - "hash": "5b35fdc7e2ea3ee684d045ed81a3c4067288355e" - }, - { - "nr": 122571, - "hash": "d41769940412f807e1963bc596c2419088f3eb59" - }, - { - "nr": 122329, - "hash": "a3a5e5a5e4923041fe4b0f08b8e36b69a0bb72e8" - }, - { - "nr": 119177, - "hash": "a225fc5e576bb50f46245586c6af4470e035c7d9" - }, - { - "nr": 123738, - "hash": "6468bbe38b4d519bc08c5c482bf51bf30e7dded1" - }, - { - "nr": 122907, - "hash": "dceb07394588d3dffa739419268e0afb05e4a180" - }, - { - "nr": 123003, - "hash": "08bfd11ea5f975e4c60699f84dadbcde946d5e37" - }, - { - "nr": 122030, - "hash": "7a154e605387b32abe2ddecb6bbf61dca4b00e9c" - }, - { - "nr": 123481, - "hash": "7388dbfde4a9325d6f721d4a8c5cf39e19bbaad9" - }, - { - "nr": 122589, - "hash": "5a54e6c9598374f2379aa50802cfa48ac3db9c65" - }, - { - "nr": 122558, - "hash": "56f0c5481a8ea959e965027c2c5c264847dbdbe5" - }, - { - "nr": 123431, - "hash": "b3b097756ef6b0764dd083e379f2eb931ba66d3a" - }, - { - "nr": 123641, - "hash": "34efaf5f83389cc10e45c1daad8c7f44de61095f" - }, - { - "nr": 120642, - "hash": "b0d725c193a0ef27e1f09724dd21825ac6c3845e" - }, - { - "nr": 121952, - "hash": "0679bd2e460985a7e9508672fba8196b4d44a6c0" - }, - { - "nr": 122058, - "hash": "58857d3df1142e0d49e2298ac60cec84a2165b1c" - }, - { - "nr": 123190, - "hash": "62c5b79b6402298e4abd24d9e3f76b3fb3cffa85" - }, - { - "nr": 123271, - "hash": "c2bad11ca49471e925703ba8b9de7b8c576839e8" - }, - { - "nr": 123261, - "hash": "44f11c1fa24cba788576e9b03ecaa63aa89db668" - }, - { - "nr": 123093, - "hash": "a46705899f2dfc5fdfc9ccb3ba538e41bd05deb0" - }, - { - "nr": 123273, - "hash": "9f6b8b909191e10ebd37e0a9a49927f97f85c20a" - }, - { - "nr": 122178, - "hash": "d9a1ec52a23acbb0df1602f1a7525ada40be76a2" - }, - { - "nr": 122530, - "hash": "de9bfc9611ee59d6fff3873b15551e9c31e6de57" - }, - { - "nr": 122139, - "hash": "efc59460ae34bfea2f039db087845572e67e1576" - }, - { - "nr": 122233, - "hash": "c449a1bfcb9209432dd9fde956d15a47df38b54a" - }, - { - "nr": 123667, - "hash": "daf77fdb52db9d77e360e901253e47753c70722f" - }, - { - "nr": 123216, - "hash": "3920aea0c708ae830abc13c8de821e31d27a3789" - }, - { - "nr": 123222, - "hash": "fe6c30596f3d09bef7cc0d67f23bf5566a7b1507" - }, - { - "nr": 122846, - "hash": "970447dc1f84f4692cc0c77daab4bcb49b8ff141" - }, - { - "nr": 120346, - "hash": "898a07090a12bf51cd23c937a1dbdcf3549a0f16" - }, - { - "nr": 122830, - "hash": "7eabff9e89727dc428ad594964561ddfbf1d29e7" - }, - { - "nr": 122618, - "hash": "31972451c6d01e7ae613cf9735b0545265820108" - }, - { - "nr": 122735, - "hash": "67532fb39a9828b8cce63de1b267485467e0e68c" - }, - { - "nr": 122475, - "hash": "a290ee8444a983f0cb7e94ccfc56e745e4556c11" - }, - { - "nr": 123482, - "hash": "33b4e0acf001f9d44761a5257460a00b31b19b2b" - }, - { - "nr": 123487, - "hash": "1788ced307f6a72db08672fb19013c2a9b341876" - }, - { - "nr": 123532, - "hash": "82c45e84b5cf2b602d98ccf2aa9b798bdc0aa07e" - }, - { - "nr": 123614, - "hash": "540c23c19bce6a04669acdcf770a78ae1b5bf0f9" - }, - { - "nr": 123561, - "hash": "1064a3a740bc7a22418ba412b54da6f9317e6fd5" - }, - { - "nr": 122498, - "hash": "e4fc2858ace5f680cad00bdc71aac15175dded14" - }, - { - "nr": 121736, - "hash": "8b6add9950c8ee078184894d952cd7e16e6c82e1" - }, - { - "nr": 123793, - "hash": "133455accc860ed71245b3e56bd66355b01a24c8" - }, - { - "nr": 123488, - "hash": "a41d926d2fdad2ab37b0dc57542c29570f01bd46" - }, - { - "nr": 121954, - "hash": "74c60ad48c81a69383281a6f3de9e6197c942fc8" - }, - { - "nr": 122292, - "hash": "3cf1a18adb51c634ae1a23450426b09042314f9e" - }, - { - "nr": 123461, - "hash": "d1d58dce60df2ed7d4c842119b2200d8f932e40a" - }, - { - "nr": 123575, - "hash": "565bbed7b6e46119d026e5baacb941ae708dee1e" - }, - { - "nr": 122612, - "hash": "b13fcd9e5cf4debccde7acc792c984b34af937e9" - }, - { - "nr": 121834, - "hash": "ae26c344db900b397e14655f995e481b3c7f53eb" - }, - { - "nr": 120291, - "hash": "7175a41bcf501b878d951f3672cb0e7963a32e5f" - }, - { - "nr": 122334, - "hash": "2b2a8d699601b5fa821b31a96fb07777e1cf864b" - }, - { - "nr": 122195, - "hash": "999df1427271544ede2aba402a86534761967c74" - }, - { - "nr": 123943, - "hash": "fc7516be161756eaab24e66c966f135ef06347ef" - }, - { - "nr": 123504, - "hash": "2fb007a87bf7043bb3168e4afd6ae16b3db7061e" - }, - { - "nr": 123011, - "hash": "20d2523e32094bb7e00c6c0512b37023091424fd" - }, - { - "nr": 122614, - "hash": "6d531475a994e4f5f082cdcfcf3d160c2c24e09a" - }, - { - "nr": 118756, - "hash": "85b7fe6d2b99ac78b9886189cbc79628d6540057" - }, - { - "nr": 123611, - "hash": "ef728248eef30359399a80e81bbaefaa65442086" - }, - { - "nr": 123464, - "hash": "fd2166ad192b9ffbeff358fd5320e33a8d755330" - }, - { - "nr": 121946, - "hash": "5a49dbcd545c04e0bcda70c073a36d4a4d4da08d" - }, - { - "nr": 122647, - "hash": "1ceb71c04a470986182521dc0b40894c8c0cbaba" - }, - { - "nr": 120902, - "hash": "ddabe25d1eedfad6dd67fed91160f5c6a185f7e9" - }, - { - "nr": 123821, - "hash": "3aeb382c9b94f1375c7a2bd1f909f1e37527ea30" - }, - { - "nr": 123516, - "hash": "b5bf50d9a4f8e7c739846be63e629178513775b9" - }, - { - "nr": 123225, - "hash": "68f0a15cd041ab4347eaa867b8e5c75b6fd137d1" - }, - { - "nr": 122874, - "hash": "22f916f1c5d934043807b5223ba443e636b60d79" - }, - { - "nr": 122508, - "hash": "cafd1e47b91f27f43463c63de5bfef3a7187e1b9" - }, - { - "nr": 122346, - "hash": "1eb2d1f126df8290f0315f41ab3c434b68df6cd9" - }, - { - "nr": 122013, - "hash": "fe05274e9deefe00949bbfeff93d8b0408fbbead" - }, - { - "nr": 123520, - "hash": "1623e058751c20f0f8db22d934bb097309d26527" - }, - { - "nr": 122887, - "hash": "4b697bfefb2e5cbd6dacfc20d0bb685acf653dfb" - }, - { - "nr": 122937, - "hash": "a8fc0a5c0da782c9d9178d925fc03c2fa86c567f" - }, - { - "nr": 122710, - "hash": "4a48327f2ab39f96c86805e0cbdf37c53fad330e" - }, - { - "nr": 122576, - "hash": "9b878809e70cfdf48ab747a275933a8abc520b9c" - }, - { - "nr": 123578, - "hash": "d28cfe94f7d124e384a77726df344df077975b63" - }, - { - "nr": 123205, - "hash": "987351c65883bd203a1c2208e1a31b8fb6e54d46" - }, - { - "nr": 123052, - "hash": "3500c614a5ca8cf68dfad29eac1f30e8ff35a65c" - }, - { - "nr": 122701, - "hash": "1a22b002a3edbc080e2409dbc0404b656f56e32e" - }, - { - "nr": 122697, - "hash": "040628820e2e491f9d194689a02a3c0407616cd6" - }, - { - "nr": 122197, - "hash": "53be6f3d436c3ff3894425d16ca72cc49e6bd0f8" - }, - { - "nr": 117024, - "hash": "143c451a957468e1bcfe1d3d4d3562ecb1f40735" - }, - { - "nr": 121387, - "hash": "93332e73ac077aac0fa2074e37f442998ae1ba4e" - }, - { - "nr": 123719, - "hash": "3fe275c055380f90e36a45eabd416fd95b080221" - }, - { - "nr": 123654, - "hash": "a1a292bcd2f0f80279071ced20abefaaa73e5c95" - }, - { - "nr": 123442, - "hash": "a684fe7d9e53bc2f179830f662e72f720083cd23" - }, - { - "nr": 122961, - "hash": "dbe5be41404cf36220c7d1af4391f700dc27e962" - }, - { - "nr": 122704, - "hash": "c794cd9b689fc1864744a86e163d442f1db0a3a4" - }, - { - "nr": 122640, - "hash": "3d4e23f91b67e8cd72fc3caa1ba8176ce2cf56e9" - }, - { - "nr": 122503, - "hash": "f9fb69fe9cac7f426a98b6b8042d8591657974dc" - }, - { - "nr": 122415, - "hash": "b7d412b97dfcc6a1ba3c026859f687ae63e1dd7d" - }, - { - "nr": 123776, - "hash": "48864caccf63af6e489fc43c2d72c5edb814f137" - }, - { - "nr": 123051, - "hash": "363185121a8f4ac4c0a1608105b02e97a1bd8e32" - }, - { - "nr": 123083, - "hash": "a2167f7f91431c45f130d6ec2284f36fed3f8784" - }, - { - "nr": 122635, - "hash": "3db4333b6d7de0a80522a31b5778a42b6200b5dd" - }, - { - "nr": 122745, - "hash": "1896300a2abf8c92ba991756d42f1f5634d42009" - }, - { - "nr": 123077, - "hash": "cfef04b2263c7855d0eb9190f21e4e543531acc0" - }, - { - "nr": 122276, - "hash": "5eeb5c66a22a0424dcc5c16d50cc8de8f43620b0" - }, - { - "nr": 122285, - "hash": "2de33c2a698f532bcefe1504cd8e87a5a8b53ad7" - }, - { - "nr": 122447, - "hash": "c9a84d78360328fefcd39b7792ffc3653e78c263" - }, - { - "nr": 119923, - "hash": "d1562f7639221ecd20ffd6201d61dec91ddf4b34" - }, - { - "nr": 123345, - "hash": "520cab26cd7375d9c9b8cd1f7dbef388d6d6741f" - }, - { - "nr": 122750, - "hash": "79372d3fc5a43351a0a8bdca7b72e805430ba4ed" - }, - { - "nr": 122914, - "hash": "ca91025809e574a336a694089c46e1f2e28aeb32" - }, - { - "nr": 122142, - "hash": "fecdd94fd7c6d6a16163f4c8bef99ffe06fdf5c2" - }, - { - "nr": 123438, - "hash": "9effc56649a69d6a37d24404e3e4a002bbebbc40" - }, - { - "nr": 123425, - "hash": "1f265139780cfafd655eaf5652540e9a9b1e1c21" - }, - { - "nr": 122893, - "hash": "0ecf806ec2ba194d679cef7bdfbb9c43a48f5bb2" - }, - { - "nr": 122056, - "hash": "0cbaf5169a51ac5e671839eb3b5913138da44888" - }, - { - "nr": 123570, - "hash": "d51abb92e7604e99852b44969e02be8e2b5bfc08" - }, - { - "nr": 123331, - "hash": "d35bb73d95ce14b2fb0f31d1f2d70745f1d0a1f9" - }, - { - "nr": 122569, - "hash": "5b8c7676b6c73d28656f894f910cb3dd10cde0f8" - }, - { - "nr": 122022, - "hash": "5679da40f3e033394bd08e33654eb5139d69aaab" - }, - { - "nr": 123684, - "hash": "bf987c78baf4fabd719ca434407ba213532ee7db" - }, - { - "nr": 122717, - "hash": "47292bfb6e846818cc2007ddd6cd7e4e09e3e7de" - }, - { - "nr": 114672, - "hash": "a6f14e24bcb1f65fce2ba5574ca7d725062aebbd" - }, - { - "nr": 120344, - "hash": "7223520be239e596ba65c61263b9b503f68f4aae" - }, - { - "nr": 123435, - "hash": "742ea84b0df015c009a774f625f0ae200f6c52c5" - }, - { - "nr": 122309, - "hash": "447b7ab4aa66cd04c4276fbe8ec4d91ef3991c6f" - }, - { - "nr": 122137, - "hash": "9b78044154ff2a37879e6a48d42ce3c18d9bbda7" - }, - { - "nr": 122288, - "hash": "58b048aa370044470f2d3f0b0e633950723e8340" - }, - { - "nr": 123676, - "hash": "1e110612c7066a5a3519f99894828b7c62401a97" - }, - { - "nr": 123657, - "hash": "4d5433cf58e985fbef54c674c2265c5ea9b6f871" - }, - { - "nr": 123282, - "hash": "5a06f01159c8d6020f7fa9a0e10c050fb1f7b87c" - }, - { - "nr": 122574, - "hash": "364e3f65bcdac67a9ff8c202a3392c6b0cb77403" - }, - { - "nr": 123562, - "hash": "1aa47cc3856567f7e5966c20315af4437fad90d8" - }, - { - "nr": 122023, - "hash": "eef8b23e8767da87b16153b9ce7f012df52bba6e" - }, - { - "nr": 123405, - "hash": "d91c5f80ecdad5b56518ff04117f11c5e75337cc" - }, - { - "nr": 123343, - "hash": "3f14870c859f261d4dae6cd6055e5ad433d5504f" - }, - { - "nr": 122946, - "hash": "9c45e6f5cf0c523f2c7884291f84f48de6b97fa4" - }, - { - "nr": 120631, - "hash": "dfaf6564a7e4cec61264db6f6acb7b6fe898483e" - }, - { - "nr": 123413, - "hash": "0f887fcb89a8bea9407cc7fb815df6a64d0250af" - }, - { - "nr": 123479, - "hash": "5ddae5ed30785679458feb70ccaf566416334e0d" - }, - { - "nr": 123069, - "hash": "3a7755418fd4964974ba45abad973edd10232209" - }, - { - "nr": 122136, - "hash": "1ac74547f5fc601cd61b8a399e79f2a2976e0b02" - }, - { - "nr": 121983, - "hash": "6ccb7af9b0704418420074b1cff007c2f922d675" - }, - { - "nr": 123652, - "hash": "642624fc3e8b4a353c7b412bb6b51661a80b82de" - }, - { - "nr": 123384, - "hash": "61d6306f86caff1ad609e4825f6d3b8925cc582d" - }, - { - "nr": 123165, - "hash": "142b1d57bb3baea4cbebb8d3ac53620580f76620" - }, - { - "nr": 122231, - "hash": "6b57812006a457ad9123a2c5bb5acb14d392023a" - }, - { - "nr": 123424, - "hash": "b34f0429d08c95593eee283c76d30ba5b8a10815" - }, - { - "nr": 123517, - "hash": "0cb3d3d9a008134fe0af8fbe7c24682b4e2c5393" - }, - { - "nr": 122296, - "hash": "3d5c84f3aeb164c46425a7cbe3f7db8ee5dcffe6" - }, - { - "nr": 122556, - "hash": "e3e41f36b7f6108544348daa667cccf85b2de6f7" - }, - { - "nr": 123217, - "hash": "7e2e3cd67bd384b2e38da8d4326c9548735c20a1" - }, - { - "nr": 123023, - "hash": "dc664987c36002c69fba2fddf20218a7cb674040" - }, - { - "nr": 122393, - "hash": "8edb169d279015e6007a5130066613e12873908b" - }, - { - "nr": 121912, - "hash": "e4e77028e67a00224ea76a25194577650679c7eb" - }, - { - "nr": 123333, - "hash": "6863a5915b930508bc7795ac5228952df5f6c74b" - }, - { - "nr": 122477, - "hash": "f3499318285ea9fb8809acb28c02f0d82670e358" - }, - { - "nr": 122068, - "hash": "ac64bc0d638b9654adf3455d2a21d90470d53c71" - }, - { - "nr": 122041, - "hash": "cd1fa8c547ff394e43e1c22c8e82ae782c46dbdd" - }, - { - "nr": 124001, - "hash": "ea50db2045c40537b97c520ad0b9dd90ee5e3406" - }, - { - "nr": 122881, - "hash": "4b8a21c411831f592087b2bae0c2e160355b4215" - }, - { - "nr": 122422, - "hash": "3d6acd42c96341a56783649bc079c27ca6a8d4ea" - }, - { - "nr": 123659, - "hash": "0cc255eed9050587edac66ea04ad54cd01e90e22" - }, - { - "nr": 122523, - "hash": "7c76b40bb99c3c812912d5566df9ff9d59756cb4" - }, - { - "nr": 122339, - "hash": "97b2eeb3eadd2d56b22fdc256463d39581ec3ccc" - }, - { - "nr": 123525, - "hash": "1cdefd0e86c36fe1adf9d4742a90a01f5fe5709c" - }, - { - "nr": 123344, - "hash": "43a145553fdaa7978fcb8534027ad5a6d63315b6" - }, - { - "nr": 123543, - "hash": "4dfe991b8baebfa12153ac8c3809c326a477b76c" - }, - { - "nr": 123226, - "hash": "5a1ac899cf466542aa5394ef8930caad665bc3e5" - }, - { - "nr": 123475, - "hash": "654cc49a616cd17fef773cf55ff0962f8dc8d8fe" - }, - { - "nr": 123117, - "hash": "b69b8283f16f84c592ba7b42777207f7bf1500bb" - }, - { - "nr": 121876, - "hash": "68b764228294c1f89d56e92de73c0e243e27ea4a" - }, - { - "nr": 119779, - "hash": "2199c26568e33f2237ac072e183ea613ce90e6fe" - }, - { - "nr": 123865, - "hash": "e4d8b0971c0eb03d41ce2db1f87aee385a0ab850" - }, - { - "nr": 123366, - "hash": "9bf82eecf83f48f4c670e24da764a5e23e5fbeec" - }, - { - "nr": 120111, - "hash": "e0ecb0ef0b6ee73e57add9d9002f27b37a811788" - }, - { - "nr": 122293, - "hash": "082b281ea7dd3599aac385ceef93dffa7b4f69de" - }, - { - "nr": 123281, - "hash": "abb214915f83c38cd3ea595a368d109c00d9c985" - }, - { - "nr": 123490, - "hash": "0529aa7d82d7b558b0ed20a7d2319bbe713e0fcc" - }, - { - "nr": 121908, - "hash": "5829fac8e89488f7b6ea6284cdc7a97dc77b54df" - }, - { - "nr": 122456, - "hash": "5664dbabbb69e0d5005aa637fcc78635ab5430c4" - }, - { - "nr": 123098, - "hash": "898391e50b1f462ae8e95da6e6512bff47b05b31" - }, - { - "nr": 122807, - "hash": "21dc9efa3ac021e007021760e18f742aae826375" - }, - { - "nr": 123484, - "hash": "b19c1fd9e21e5189ee21991f9494ec2cbd99cd74" - }, - { - "nr": 123157, - "hash": "29a32b6194b003a0adc645dfd305b0420fdc8c51" - }, - { - "nr": 123223, - "hash": "e9d1e22bce7e9bce0689b9fbe56f7f87ce129b14" - }, - { - "nr": 123134, - "hash": "53d2e5598d35c5ec3a08b048205d29e74c94d11f" - }, - { - "nr": 122889, - "hash": "34cdae2a471957ea02cef72b690aa38ebd3548c3" - }, - { - "nr": 122435, - "hash": "79539a3728d89896aff9ef9162fbd1aa11267190" - }, - { - "nr": 122204, - "hash": "c25143a75d8292f427150a67800895ce0ee9cc8b" - }, - { - "nr": 121919, - "hash": "da62334f488c6eefc1cc55bb3b7c22ed70581334" - }, - { - "nr": 123179, - "hash": "cd00aa3a9ce3544cdb1e65bd79c64e07af114797" - }, - { - "nr": 122883, - "hash": "b5c7d3e153309098f230f6d68513a431223f5042" - }, - { - "nr": 122804, - "hash": "e048c464452fae8bab364fe782d20e0b3c9743f5" - }, - { - "nr": 116209, - "hash": "8fea25256116ebcf61697dad408f34a99e45299b" - }, - { - "nr": 115768, - "hash": "1211aa5e681059b61107983391f00dad2fa21a68" - }, - { - "nr": 123527, - "hash": "979b7d9b77ee1b0065caffa73fe3474f73b13034" - }, - { - "nr": 123406, - "hash": "bfa0bea99d095da411d44350f6e4b135bd4c6b79" - }, - { - "nr": 121719, - "hash": "b09e6a34a1c8d1cd74801d78004aacdfc3b1a21b" - }, - { - "nr": 122999, - "hash": "2cc545d4a0175c65571fc4536363b2ef39d17657" - }, - { - "nr": 123696, - "hash": "7023ec70312d53e06daa446172cfa8cde4b99ff8" - }, - { - "nr": 123385, - "hash": "748465bdb3831ead0ce01f26705cc80c65b9a301" - }, - { - "nr": 123640, - "hash": "a107196d4e763592ba2ee10326e807781eb43336" - }, - { - "nr": 123055, - "hash": "f6466f5616b311e67a8a4ebf25111bd9375f8a01" - }, - { - "nr": 123492, - "hash": "4bdef65f04d076a4059f506f5bfe9737ac703aee" - }, - { - "nr": 123032, - "hash": "8bfa2f0f53ce14fe7f962bf478c081c27c1c3af0" - }, - { - "nr": 122086, - "hash": "1569e0a85e3655f44aadae7106d2f0cf72ab152b" - }, - { - "nr": 122449, - "hash": "84cd943c76bf661167e3458356659d9464239250" - }, - { - "nr": 123935, - "hash": "aad62b465a6cf58616f546843f1d89ae123cf1ed" - }, - { - "nr": 123529, - "hash": "74d53151a90a355a072e7827168f73c400aa8643" - }, - { - "nr": 123508, - "hash": "e286633399ea3911363274196187ef510a941d3e" - }, - { - "nr": 114301, - "hash": "8b7a3ad407995737f6a16196124f33c38d191136" - }, - { - "nr": 121958, - "hash": "eec0e57b64bb82a7ce6949d7a20c9dbf473b2941" - }, - { - "nr": 121669, - "hash": "c27bbce27a63b1abc1cb21f0ea7804fb883159bc" - }, - { - "nr": 121815, - "hash": "703e81edd269d80665e86fc5316831065f4c6bc4" - }, - { - "nr": 123215, - "hash": "a5a3bbedfb22ca88bf95be32fe33d4e16c7855cf" - }, - { - "nr": 122870, - "hash": "b646f143d4fc48df8636b6be39c13b1c0b73a8fc" - }, - { - "nr": 122211, - "hash": "92ede1357e6b597336426daa8670626e8dc8ff7d" - }, - { - "nr": 122079, - "hash": "049d2a979481375babfd25b0a7fcf5ac2e6dd2a0" - }, - { - "nr": 122134, - "hash": "17886629a62db11d66b89059615f3343ce9ca6a8" - }, - { - "nr": 123730, - "hash": "98c55bcd88da642a5713de92cda4ddca3e2b42b7" - }, - { - "nr": 122857, - "hash": "01a2e487143afcdb42567628d51ed9b8fb174082" - }, - { - "nr": 122705, - "hash": "d831f653fac7f799e68c22f5b53df1412aed7fd0" - }, - { - "nr": 122409, - "hash": "5e5c42c2613046fb60d38bc0efe219254547db47" - }, - { - "nr": 112957, - "hash": "59d43a953bdbde77ace66f5077e93cc2f4955e5c" - } - ] +{ + "mail": "satyampsoni@gmail.com", + "name": "Satyam Soni", + "date": 1712246948, + "prs": [ + { + "nr": 119200, + "hash": "90c97f7d07058d10a752b3246311a45cacb9323a" + }, + { + "nr": 123593, + "hash": "c0ac6a50a3268c30429d2d1551a2cb9db89b9c75" + }, + { + "nr": 123135, + "hash": "9d0b295753890379efb600314cc858140f803cec" + }, + { + "nr": 123372, + "hash": "b945c60e8e72f38ff02d81830ab315e87604495a" + }, + { + "nr": 121512, + "hash": "c3be7d4e7a1f77f382cdb7687a665d694c3fa72c" + }, + { + "nr": 123737, + "hash": "186ffe76ab9b4c25e1033abe73d8017a315402e3" + }, + { + "nr": 122271, + "hash": "e3c90744d0d05a5f0f0baff2839d9cc8b8db5abf" + }, + { + "nr": 123180, + "hash": "9968c4dacfc32efd881a1614496f6478c353fc67" + }, + { + "nr": 123599, + "hash": "3b3285595afc678e0bf92d65cf17f9e476ece591" + }, + { + "nr": 123341, + "hash": "13ff630b5042f8121adc90826ac45615a06a6360" + }, + { + "nr": 123568, + "hash": "a8e8caa9afb73a8f1918e9a694460afe72db98f4" + }, + { + "nr": 122225, + "hash": "34a5efd5671842ebace9cc416c237bc01290b761" + }, + { + "nr": 122069, + "hash": "30b5c8e8cf3e12130d24a7d4099388cfa249f73a" + }, + { + "nr": 123082, + "hash": "02bec89987ad9cd46c57bc4c632019f4b7b5f53c" + }, + { + "nr": 123758, + "hash": "a546868ab92cd3b01cb5e96d75f96f0783659b5d" + }, + { + "nr": 123713, + "hash": "31497cfff4bea3b7e2aa8e409cb37e650bf93a51" + }, + { + "nr": 123560, + "hash": "279d85518e206520932d3889bb81a6372d979719" + }, + { + "nr": 123565, + "hash": "2fc7ec47f2ec6288a0b208e64d881ee2b3f53d5d" + }, + { + "nr": 121461, + "hash": "5aa648799df8917f24b2e4df66b540334ddcb2a5" + }, + { + "nr": 123038, + "hash": "2ecb87555cdbf5589fc0c17678e377f6911f295c" + }, + { + "nr": 123564, + "hash": "f0dd7919ebf1999118b30cdf6a77073e728ff9c0" + }, + { + "nr": 120251, + "hash": "840de1b1f7bb84c8e53344698992741f735ba90f" + }, + { + "nr": 123540, + "hash": "125323646750da82aa0feb2ab17589480038b67b" + }, + { + "nr": 123418, + "hash": "5c3e46e0708ad5983e8a2d15461e49fb3a4fb976" + }, + { + "nr": 123412, + "hash": "43ff4ad3d5781aa8b4ea518d46463c82af96e285" + }, + { + "nr": 123639, + "hash": "41ca8977ed90bceef2312ff02150d8ec967703b6" + }, + { + "nr": 122555, + "hash": "6df06f26cecd2de3fdbd86b3c45ddb139ee0667b" + }, + { + "nr": 121413, + "hash": "af14755a8021ed0e6c9fbd7835151747a9305685" + }, + { + "nr": 122692, + "hash": "640cc226eff6d5e475eee80318da15d2c52206f6" + }, + { + "nr": 122138, + "hash": "e7ced2ae78cc42c7840d32ce62192247c796f2d1" + }, + { + "nr": 122341, + "hash": "af83a75050feff89e51a64e7762a6fb9ad6988ff" + }, + { + "nr": 123750, + "hash": "76993d9c58817c019c97ad846bf957780e8435ed" + }, + { + "nr": 123555, + "hash": "e02bf4e2cf0d82a24c6ca10fcc02a4a498add9f3" + }, + { + "nr": 123001, + "hash": "d9d9bbbc23c6540006999412560a9192e971d297" + }, + { + "nr": 122724, + "hash": "e979f6667f497cbbaf75870cdceec8b879d3801e" + }, + { + "nr": 123170, + "hash": "dcab64e558862578d9d685fb4b720e28beffa06b" + }, + { + "nr": 120159, + "hash": "f129eba00a87514cc3899dd8cbae4ff2e9328cc3" + }, + { + "nr": 123323, + "hash": "a55d569924a1dbd29c997ff939dca9fd126cce11" + }, + { + "nr": 123310, + "hash": "86112cd192da77e3789d25f7e2ee6e45f91575ed" + }, + { + "nr": 123272, + "hash": "bfbd0f881777d617ebea20854d84905ebf4cd2b5" + }, + { + "nr": 123171, + "hash": "c07dd522817554ec590937b6d11f51cba019981b" + }, + { + "nr": 122468, + "hash": "0c6d469cbc3fca935a0b2f80749a197a92bb0106" + }, + { + "nr": 120246, + "hash": "6cd9158186e11c294bc4aec7946c219d6aa50e59" + }, + { + "nr": 122088, + "hash": "86bb3ab9d671d21e7caf08cd4fe4e0131333b4ee" + }, + { + "nr": 120718, + "hash": "8570ec6ef79a467324a305c03bdfb0fc9e1e0b16" + }, + { + "nr": 122882, + "hash": "eaaa09582d7bc645b1ca4cfc1063952a13ef2a9d" + }, + { + "nr": 121778, + "hash": "ed4acd9734f981718a6a5c350b7d7bc8743ee006" + }, + { + "nr": 121565, + "hash": "8dfa5405a4bf80d6c398556d08588cc87b447e81" + }, + { + "nr": 122729, + "hash": "6be42051fb162683069bea4dd12fd45dad6d3fdd" + }, + { + "nr": 122578, + "hash": "6a741e0e42cabf782c6ddeb48165efcebc8eeb29" + }, + { + "nr": 122032, + "hash": "e87927f045fd9af8a2a9740c86f667258e61419c" + }, + { + "nr": 117046, + "hash": "1b82be0d876432bacb233b6519d9f03ac31cf2ca" + }, + { + "nr": 118389, + "hash": "8d2c567a63f0cfc6c29c441ebea2a7f3b341c1de" + }, + { + "nr": 122600, + "hash": "951686e3a49eec1ac827937c5deb611a9b5a8442" + }, + { + "nr": 123674, + "hash": "52ea9fd74398b81a1671d8e3fa593dd6b89f1e42" + }, + { + "nr": 122493, + "hash": "b5a650d9e11428c246839991c06ecc195b233324" + }, + { + "nr": 121720, + "hash": "71bd66d6cc585427b310596c5f0ae771d76c85a0" + }, + { + "nr": 123150, + "hash": "5b35fdc7e2ea3ee684d045ed81a3c4067288355e" + }, + { + "nr": 122571, + "hash": "d41769940412f807e1963bc596c2419088f3eb59" + }, + { + "nr": 122329, + "hash": "a3a5e5a5e4923041fe4b0f08b8e36b69a0bb72e8" + }, + { + "nr": 119177, + "hash": "a225fc5e576bb50f46245586c6af4470e035c7d9" + }, + { + "nr": 123738, + "hash": "6468bbe38b4d519bc08c5c482bf51bf30e7dded1" + }, + { + "nr": 122907, + "hash": "dceb07394588d3dffa739419268e0afb05e4a180" + }, + { + "nr": 123003, + "hash": "08bfd11ea5f975e4c60699f84dadbcde946d5e37" + }, + { + "nr": 122030, + "hash": "7a154e605387b32abe2ddecb6bbf61dca4b00e9c" + }, + { + "nr": 123481, + "hash": "7388dbfde4a9325d6f721d4a8c5cf39e19bbaad9" + }, + { + "nr": 122589, + "hash": "5a54e6c9598374f2379aa50802cfa48ac3db9c65" + }, + { + "nr": 122558, + "hash": "56f0c5481a8ea959e965027c2c5c264847dbdbe5" + }, + { + "nr": 123431, + "hash": "b3b097756ef6b0764dd083e379f2eb931ba66d3a" + }, + { + "nr": 123641, + "hash": "34efaf5f83389cc10e45c1daad8c7f44de61095f" + }, + { + "nr": 120642, + "hash": "b0d725c193a0ef27e1f09724dd21825ac6c3845e" + }, + { + "nr": 121952, + "hash": "0679bd2e460985a7e9508672fba8196b4d44a6c0" + }, + { + "nr": 122058, + "hash": "58857d3df1142e0d49e2298ac60cec84a2165b1c" + }, + { + "nr": 123190, + "hash": "62c5b79b6402298e4abd24d9e3f76b3fb3cffa85" + }, + { + "nr": 123271, + "hash": "c2bad11ca49471e925703ba8b9de7b8c576839e8" + }, + { + "nr": 123261, + "hash": "44f11c1fa24cba788576e9b03ecaa63aa89db668" + }, + { + "nr": 123093, + "hash": "a46705899f2dfc5fdfc9ccb3ba538e41bd05deb0" + }, + { + "nr": 123273, + "hash": "9f6b8b909191e10ebd37e0a9a49927f97f85c20a" + }, + { + "nr": 122178, + "hash": "d9a1ec52a23acbb0df1602f1a7525ada40be76a2" + }, + { + "nr": 122530, + "hash": "de9bfc9611ee59d6fff3873b15551e9c31e6de57" + }, + { + "nr": 122139, + "hash": "efc59460ae34bfea2f039db087845572e67e1576" + }, + { + "nr": 122233, + "hash": "c449a1bfcb9209432dd9fde956d15a47df38b54a" + }, + { + "nr": 123667, + "hash": "daf77fdb52db9d77e360e901253e47753c70722f" + }, + { + "nr": 123216, + "hash": "3920aea0c708ae830abc13c8de821e31d27a3789" + }, + { + "nr": 123222, + "hash": "fe6c30596f3d09bef7cc0d67f23bf5566a7b1507" + }, + { + "nr": 122846, + "hash": "970447dc1f84f4692cc0c77daab4bcb49b8ff141" + }, + { + "nr": 120346, + "hash": "898a07090a12bf51cd23c937a1dbdcf3549a0f16" + }, + { + "nr": 122830, + "hash": "7eabff9e89727dc428ad594964561ddfbf1d29e7" + }, + { + "nr": 122618, + "hash": "31972451c6d01e7ae613cf9735b0545265820108" + }, + { + "nr": 122735, + "hash": "67532fb39a9828b8cce63de1b267485467e0e68c" + }, + { + "nr": 122475, + "hash": "a290ee8444a983f0cb7e94ccfc56e745e4556c11" + }, + { + "nr": 123482, + "hash": "33b4e0acf001f9d44761a5257460a00b31b19b2b" + }, + { + "nr": 123487, + "hash": "1788ced307f6a72db08672fb19013c2a9b341876" + }, + { + "nr": 123532, + "hash": "82c45e84b5cf2b602d98ccf2aa9b798bdc0aa07e" + }, + { + "nr": 123614, + "hash": "540c23c19bce6a04669acdcf770a78ae1b5bf0f9" + }, + { + "nr": 123561, + "hash": "1064a3a740bc7a22418ba412b54da6f9317e6fd5" + }, + { + "nr": 122498, + "hash": "e4fc2858ace5f680cad00bdc71aac15175dded14" + }, + { + "nr": 121736, + "hash": "8b6add9950c8ee078184894d952cd7e16e6c82e1" + }, + { + "nr": 123793, + "hash": "133455accc860ed71245b3e56bd66355b01a24c8" + }, + { + "nr": 123488, + "hash": "a41d926d2fdad2ab37b0dc57542c29570f01bd46" + }, + { + "nr": 121954, + "hash": "74c60ad48c81a69383281a6f3de9e6197c942fc8" + }, + { + "nr": 122292, + "hash": "3cf1a18adb51c634ae1a23450426b09042314f9e" + }, + { + "nr": 123461, + "hash": "d1d58dce60df2ed7d4c842119b2200d8f932e40a" + }, + { + "nr": 123575, + "hash": "565bbed7b6e46119d026e5baacb941ae708dee1e" + }, + { + "nr": 122612, + "hash": "b13fcd9e5cf4debccde7acc792c984b34af937e9" + }, + { + "nr": 121834, + "hash": "ae26c344db900b397e14655f995e481b3c7f53eb" + }, + { + "nr": 120291, + "hash": "7175a41bcf501b878d951f3672cb0e7963a32e5f" + }, + { + "nr": 122334, + "hash": "2b2a8d699601b5fa821b31a96fb07777e1cf864b" + }, + { + "nr": 122195, + "hash": "999df1427271544ede2aba402a86534761967c74" + }, + { + "nr": 123943, + "hash": "fc7516be161756eaab24e66c966f135ef06347ef" + }, + { + "nr": 123504, + "hash": "2fb007a87bf7043bb3168e4afd6ae16b3db7061e" + }, + { + "nr": 123011, + "hash": "20d2523e32094bb7e00c6c0512b37023091424fd" + }, + { + "nr": 122614, + "hash": "6d531475a994e4f5f082cdcfcf3d160c2c24e09a" + }, + { + "nr": 118756, + "hash": "85b7fe6d2b99ac78b9886189cbc79628d6540057" + }, + { + "nr": 123611, + "hash": "ef728248eef30359399a80e81bbaefaa65442086" + }, + { + "nr": 123464, + "hash": "fd2166ad192b9ffbeff358fd5320e33a8d755330" + }, + { + "nr": 121946, + "hash": "5a49dbcd545c04e0bcda70c073a36d4a4d4da08d" + }, + { + "nr": 122647, + "hash": "1ceb71c04a470986182521dc0b40894c8c0cbaba" + }, + { + "nr": 120902, + "hash": "ddabe25d1eedfad6dd67fed91160f5c6a185f7e9" + }, + { + "nr": 123821, + "hash": "3aeb382c9b94f1375c7a2bd1f909f1e37527ea30" + }, + { + "nr": 123516, + "hash": "b5bf50d9a4f8e7c739846be63e629178513775b9" + }, + { + "nr": 123225, + "hash": "68f0a15cd041ab4347eaa867b8e5c75b6fd137d1" + }, + { + "nr": 122874, + "hash": "22f916f1c5d934043807b5223ba443e636b60d79" + }, + { + "nr": 122508, + "hash": "cafd1e47b91f27f43463c63de5bfef3a7187e1b9" + }, + { + "nr": 122346, + "hash": "1eb2d1f126df8290f0315f41ab3c434b68df6cd9" + }, + { + "nr": 122013, + "hash": "fe05274e9deefe00949bbfeff93d8b0408fbbead" + }, + { + "nr": 123520, + "hash": "1623e058751c20f0f8db22d934bb097309d26527" + }, + { + "nr": 122887, + "hash": "4b697bfefb2e5cbd6dacfc20d0bb685acf653dfb" + }, + { + "nr": 122937, + "hash": "a8fc0a5c0da782c9d9178d925fc03c2fa86c567f" + }, + { + "nr": 122710, + "hash": "4a48327f2ab39f96c86805e0cbdf37c53fad330e" + }, + { + "nr": 122576, + "hash": "9b878809e70cfdf48ab747a275933a8abc520b9c" + }, + { + "nr": 123578, + "hash": "d28cfe94f7d124e384a77726df344df077975b63" + }, + { + "nr": 123205, + "hash": "987351c65883bd203a1c2208e1a31b8fb6e54d46" + }, + { + "nr": 123052, + "hash": "3500c614a5ca8cf68dfad29eac1f30e8ff35a65c" + }, + { + "nr": 122701, + "hash": "1a22b002a3edbc080e2409dbc0404b656f56e32e" + }, + { + "nr": 122697, + "hash": "040628820e2e491f9d194689a02a3c0407616cd6" + }, + { + "nr": 122197, + "hash": "53be6f3d436c3ff3894425d16ca72cc49e6bd0f8" + }, + { + "nr": 117024, + "hash": "143c451a957468e1bcfe1d3d4d3562ecb1f40735" + }, + { + "nr": 121387, + "hash": "93332e73ac077aac0fa2074e37f442998ae1ba4e" + }, + { + "nr": 123719, + "hash": "3fe275c055380f90e36a45eabd416fd95b080221" + }, + { + "nr": 123654, + "hash": "a1a292bcd2f0f80279071ced20abefaaa73e5c95" + }, + { + "nr": 123442, + "hash": "a684fe7d9e53bc2f179830f662e72f720083cd23" + }, + { + "nr": 122961, + "hash": "dbe5be41404cf36220c7d1af4391f700dc27e962" + }, + { + "nr": 122704, + "hash": "c794cd9b689fc1864744a86e163d442f1db0a3a4" + }, + { + "nr": 122640, + "hash": "3d4e23f91b67e8cd72fc3caa1ba8176ce2cf56e9" + }, + { + "nr": 122503, + "hash": "f9fb69fe9cac7f426a98b6b8042d8591657974dc" + }, + { + "nr": 122415, + "hash": "b7d412b97dfcc6a1ba3c026859f687ae63e1dd7d" + }, + { + "nr": 123776, + "hash": "48864caccf63af6e489fc43c2d72c5edb814f137" + }, + { + "nr": 123051, + "hash": "363185121a8f4ac4c0a1608105b02e97a1bd8e32" + }, + { + "nr": 123083, + "hash": "a2167f7f91431c45f130d6ec2284f36fed3f8784" + }, + { + "nr": 122635, + "hash": "3db4333b6d7de0a80522a31b5778a42b6200b5dd" + }, + { + "nr": 122745, + "hash": "1896300a2abf8c92ba991756d42f1f5634d42009" + }, + { + "nr": 123077, + "hash": "cfef04b2263c7855d0eb9190f21e4e543531acc0" + }, + { + "nr": 122276, + "hash": "5eeb5c66a22a0424dcc5c16d50cc8de8f43620b0" + }, + { + "nr": 122285, + "hash": "2de33c2a698f532bcefe1504cd8e87a5a8b53ad7" + }, + { + "nr": 122447, + "hash": "c9a84d78360328fefcd39b7792ffc3653e78c263" + }, + { + "nr": 119923, + "hash": "d1562f7639221ecd20ffd6201d61dec91ddf4b34" + }, + { + "nr": 123345, + "hash": "520cab26cd7375d9c9b8cd1f7dbef388d6d6741f" + }, + { + "nr": 122750, + "hash": "79372d3fc5a43351a0a8bdca7b72e805430ba4ed" + }, + { + "nr": 122914, + "hash": "ca91025809e574a336a694089c46e1f2e28aeb32" + }, + { + "nr": 122142, + "hash": "fecdd94fd7c6d6a16163f4c8bef99ffe06fdf5c2" + }, + { + "nr": 123438, + "hash": "9effc56649a69d6a37d24404e3e4a002bbebbc40" + }, + { + "nr": 123425, + "hash": "1f265139780cfafd655eaf5652540e9a9b1e1c21" + }, + { + "nr": 122893, + "hash": "0ecf806ec2ba194d679cef7bdfbb9c43a48f5bb2" + }, + { + "nr": 122056, + "hash": "0cbaf5169a51ac5e671839eb3b5913138da44888" + }, + { + "nr": 123570, + "hash": "d51abb92e7604e99852b44969e02be8e2b5bfc08" + }, + { + "nr": 123331, + "hash": "d35bb73d95ce14b2fb0f31d1f2d70745f1d0a1f9" + }, + { + "nr": 122569, + "hash": "5b8c7676b6c73d28656f894f910cb3dd10cde0f8" + }, + { + "nr": 122022, + "hash": "5679da40f3e033394bd08e33654eb5139d69aaab" + }, + { + "nr": 123684, + "hash": "bf987c78baf4fabd719ca434407ba213532ee7db" + }, + { + "nr": 122717, + "hash": "47292bfb6e846818cc2007ddd6cd7e4e09e3e7de" + }, + { + "nr": 114672, + "hash": "a6f14e24bcb1f65fce2ba5574ca7d725062aebbd" + }, + { + "nr": 120344, + "hash": "7223520be239e596ba65c61263b9b503f68f4aae" + }, + { + "nr": 123435, + "hash": "742ea84b0df015c009a774f625f0ae200f6c52c5" + }, + { + "nr": 122309, + "hash": "447b7ab4aa66cd04c4276fbe8ec4d91ef3991c6f" + }, + { + "nr": 122137, + "hash": "9b78044154ff2a37879e6a48d42ce3c18d9bbda7" + }, + { + "nr": 122288, + "hash": "58b048aa370044470f2d3f0b0e633950723e8340" + }, + { + "nr": 123676, + "hash": "1e110612c7066a5a3519f99894828b7c62401a97" + }, + { + "nr": 123657, + "hash": "4d5433cf58e985fbef54c674c2265c5ea9b6f871" + }, + { + "nr": 123282, + "hash": "5a06f01159c8d6020f7fa9a0e10c050fb1f7b87c" + }, + { + "nr": 122574, + "hash": "364e3f65bcdac67a9ff8c202a3392c6b0cb77403" + }, + { + "nr": 123562, + "hash": "1aa47cc3856567f7e5966c20315af4437fad90d8" + }, + { + "nr": 122023, + "hash": "eef8b23e8767da87b16153b9ce7f012df52bba6e" + }, + { + "nr": 123405, + "hash": "d91c5f80ecdad5b56518ff04117f11c5e75337cc" + }, + { + "nr": 123343, + "hash": "3f14870c859f261d4dae6cd6055e5ad433d5504f" + }, + { + "nr": 122946, + "hash": "9c45e6f5cf0c523f2c7884291f84f48de6b97fa4" + }, + { + "nr": 120631, + "hash": "dfaf6564a7e4cec61264db6f6acb7b6fe898483e" + }, + { + "nr": 123413, + "hash": "0f887fcb89a8bea9407cc7fb815df6a64d0250af" + }, + { + "nr": 123479, + "hash": "5ddae5ed30785679458feb70ccaf566416334e0d" + }, + { + "nr": 123069, + "hash": "3a7755418fd4964974ba45abad973edd10232209" + }, + { + "nr": 122136, + "hash": "1ac74547f5fc601cd61b8a399e79f2a2976e0b02" + }, + { + "nr": 121983, + "hash": "6ccb7af9b0704418420074b1cff007c2f922d675" + }, + { + "nr": 123652, + "hash": "642624fc3e8b4a353c7b412bb6b51661a80b82de" + }, + { + "nr": 123384, + "hash": "61d6306f86caff1ad609e4825f6d3b8925cc582d" + }, + { + "nr": 123165, + "hash": "142b1d57bb3baea4cbebb8d3ac53620580f76620" + }, + { + "nr": 122231, + "hash": "6b57812006a457ad9123a2c5bb5acb14d392023a" + }, + { + "nr": 123424, + "hash": "b34f0429d08c95593eee283c76d30ba5b8a10815" + }, + { + "nr": 123517, + "hash": "0cb3d3d9a008134fe0af8fbe7c24682b4e2c5393" + }, + { + "nr": 122296, + "hash": "3d5c84f3aeb164c46425a7cbe3f7db8ee5dcffe6" + }, + { + "nr": 122556, + "hash": "e3e41f36b7f6108544348daa667cccf85b2de6f7" + }, + { + "nr": 123217, + "hash": "7e2e3cd67bd384b2e38da8d4326c9548735c20a1" + }, + { + "nr": 123023, + "hash": "dc664987c36002c69fba2fddf20218a7cb674040" + }, + { + "nr": 122393, + "hash": "8edb169d279015e6007a5130066613e12873908b" + }, + { + "nr": 121912, + "hash": "e4e77028e67a00224ea76a25194577650679c7eb" + }, + { + "nr": 123333, + "hash": "6863a5915b930508bc7795ac5228952df5f6c74b" + }, + { + "nr": 122477, + "hash": "f3499318285ea9fb8809acb28c02f0d82670e358" + }, + { + "nr": 122068, + "hash": "ac64bc0d638b9654adf3455d2a21d90470d53c71" + }, + { + "nr": 122041, + "hash": "cd1fa8c547ff394e43e1c22c8e82ae782c46dbdd" + }, + { + "nr": 124001, + "hash": "ea50db2045c40537b97c520ad0b9dd90ee5e3406" + }, + { + "nr": 122881, + "hash": "4b8a21c411831f592087b2bae0c2e160355b4215" + }, + { + "nr": 122422, + "hash": "3d6acd42c96341a56783649bc079c27ca6a8d4ea" + }, + { + "nr": 123659, + "hash": "0cc255eed9050587edac66ea04ad54cd01e90e22" + }, + { + "nr": 122523, + "hash": "7c76b40bb99c3c812912d5566df9ff9d59756cb4" + }, + { + "nr": 122339, + "hash": "97b2eeb3eadd2d56b22fdc256463d39581ec3ccc" + }, + { + "nr": 123525, + "hash": "1cdefd0e86c36fe1adf9d4742a90a01f5fe5709c" + }, + { + "nr": 123344, + "hash": "43a145553fdaa7978fcb8534027ad5a6d63315b6" + }, + { + "nr": 123543, + "hash": "4dfe991b8baebfa12153ac8c3809c326a477b76c" + }, + { + "nr": 123226, + "hash": "5a1ac899cf466542aa5394ef8930caad665bc3e5" + }, + { + "nr": 123475, + "hash": "654cc49a616cd17fef773cf55ff0962f8dc8d8fe" + }, + { + "nr": 123117, + "hash": "b69b8283f16f84c592ba7b42777207f7bf1500bb" + }, + { + "nr": 121876, + "hash": "68b764228294c1f89d56e92de73c0e243e27ea4a" + }, + { + "nr": 119779, + "hash": "2199c26568e33f2237ac072e183ea613ce90e6fe" + }, + { + "nr": 123865, + "hash": "e4d8b0971c0eb03d41ce2db1f87aee385a0ab850" + }, + { + "nr": 123366, + "hash": "9bf82eecf83f48f4c670e24da764a5e23e5fbeec" + }, + { + "nr": 120111, + "hash": "e0ecb0ef0b6ee73e57add9d9002f27b37a811788" + }, + { + "nr": 122293, + "hash": "082b281ea7dd3599aac385ceef93dffa7b4f69de" + }, + { + "nr": 123281, + "hash": "abb214915f83c38cd3ea595a368d109c00d9c985" + }, + { + "nr": 123490, + "hash": "0529aa7d82d7b558b0ed20a7d2319bbe713e0fcc" + }, + { + "nr": 121908, + "hash": "5829fac8e89488f7b6ea6284cdc7a97dc77b54df" + }, + { + "nr": 122456, + "hash": "5664dbabbb69e0d5005aa637fcc78635ab5430c4" + }, + { + "nr": 123098, + "hash": "898391e50b1f462ae8e95da6e6512bff47b05b31" + }, + { + "nr": 122807, + "hash": "21dc9efa3ac021e007021760e18f742aae826375" + }, + { + "nr": 123484, + "hash": "b19c1fd9e21e5189ee21991f9494ec2cbd99cd74" + }, + { + "nr": 123157, + "hash": "29a32b6194b003a0adc645dfd305b0420fdc8c51" + }, + { + "nr": 123223, + "hash": "e9d1e22bce7e9bce0689b9fbe56f7f87ce129b14" + }, + { + "nr": 123134, + "hash": "53d2e5598d35c5ec3a08b048205d29e74c94d11f" + }, + { + "nr": 122889, + "hash": "34cdae2a471957ea02cef72b690aa38ebd3548c3" + }, + { + "nr": 122435, + "hash": "79539a3728d89896aff9ef9162fbd1aa11267190" + }, + { + "nr": 122204, + "hash": "c25143a75d8292f427150a67800895ce0ee9cc8b" + }, + { + "nr": 121919, + "hash": "da62334f488c6eefc1cc55bb3b7c22ed70581334" + }, + { + "nr": 123179, + "hash": "cd00aa3a9ce3544cdb1e65bd79c64e07af114797" + }, + { + "nr": 122883, + "hash": "b5c7d3e153309098f230f6d68513a431223f5042" + }, + { + "nr": 122804, + "hash": "e048c464452fae8bab364fe782d20e0b3c9743f5" + }, + { + "nr": 116209, + "hash": "8fea25256116ebcf61697dad408f34a99e45299b" + }, + { + "nr": 115768, + "hash": "1211aa5e681059b61107983391f00dad2fa21a68" + }, + { + "nr": 123527, + "hash": "979b7d9b77ee1b0065caffa73fe3474f73b13034" + }, + { + "nr": 123406, + "hash": "bfa0bea99d095da411d44350f6e4b135bd4c6b79" + }, + { + "nr": 121719, + "hash": "b09e6a34a1c8d1cd74801d78004aacdfc3b1a21b" + }, + { + "nr": 122999, + "hash": "2cc545d4a0175c65571fc4536363b2ef39d17657" + }, + { + "nr": 123696, + "hash": "7023ec70312d53e06daa446172cfa8cde4b99ff8" + }, + { + "nr": 123385, + "hash": "748465bdb3831ead0ce01f26705cc80c65b9a301" + }, + { + "nr": 123640, + "hash": "a107196d4e763592ba2ee10326e807781eb43336" + }, + { + "nr": 123055, + "hash": "f6466f5616b311e67a8a4ebf25111bd9375f8a01" + }, + { + "nr": 123492, + "hash": "4bdef65f04d076a4059f506f5bfe9737ac703aee" + }, + { + "nr": 123032, + "hash": "8bfa2f0f53ce14fe7f962bf478c081c27c1c3af0" + }, + { + "nr": 122086, + "hash": "1569e0a85e3655f44aadae7106d2f0cf72ab152b" + }, + { + "nr": 122449, + "hash": "84cd943c76bf661167e3458356659d9464239250" + }, + { + "nr": 123935, + "hash": "aad62b465a6cf58616f546843f1d89ae123cf1ed" + }, + { + "nr": 123529, + "hash": "74d53151a90a355a072e7827168f73c400aa8643" + }, + { + "nr": 123508, + "hash": "e286633399ea3911363274196187ef510a941d3e" + }, + { + "nr": 114301, + "hash": "8b7a3ad407995737f6a16196124f33c38d191136" + }, + { + "nr": 121958, + "hash": "eec0e57b64bb82a7ce6949d7a20c9dbf473b2941" + }, + { + "nr": 121669, + "hash": "c27bbce27a63b1abc1cb21f0ea7804fb883159bc" + }, + { + "nr": 121815, + "hash": "703e81edd269d80665e86fc5316831065f4c6bc4" + }, + { + "nr": 123215, + "hash": "a5a3bbedfb22ca88bf95be32fe33d4e16c7855cf" + }, + { + "nr": 122870, + "hash": "b646f143d4fc48df8636b6be39c13b1c0b73a8fc" + }, + { + "nr": 122211, + "hash": "92ede1357e6b597336426daa8670626e8dc8ff7d" + }, + { + "nr": 122079, + "hash": "049d2a979481375babfd25b0a7fcf5ac2e6dd2a0" + }, + { + "nr": 122134, + "hash": "17886629a62db11d66b89059615f3343ce9ca6a8" + }, + { + "nr": 123730, + "hash": "98c55bcd88da642a5713de92cda4ddca3e2b42b7" + }, + { + "nr": 122857, + "hash": "01a2e487143afcdb42567628d51ed9b8fb174082" + }, + { + "nr": 122705, + "hash": "d831f653fac7f799e68c22f5b53df1412aed7fd0" + }, + { + "nr": 122409, + "hash": "5e5c42c2613046fb60d38bc0efe219254547db47" + }, + { + "nr": 112957, + "hash": "59d43a953bdbde77ace66f5077e93cc2f4955e5c" + } + ] } \ No newline at end of file diff --git a/releases/release-1.30/release-notes/sessions/maps-1712855313.json b/releases/release-1.30/release-notes/sessions/maps-1712855313.json index 82d3cb78890..905ebc21338 100644 --- a/releases/release-1.30/release-notes/sessions/maps-1712855313.json +++ b/releases/release-1.30/release-notes/sessions/maps-1712855313.json @@ -1,1103 +1,1103 @@ -{ - "mail": "faeka6@gmail.com", - "name": "fykaa", - "date": 1712855313, - "prs": [ - { - "nr": 122882, - "hash": "59425137ea1add4b7bf56d6b9fbec3e8c3c2b0de" - }, - { - "nr": 123179, - "hash": "d4cccd48ea8c57376ab7766f658a2b18efa1a81e" - }, - { - "nr": 122612, - "hash": "91a6a83deb3d8edda7c8fe19e0be95120b330ba5" - }, - { - "nr": 122600, - "hash": "39c53ab8f37775b6f2b63eb48adba6a6c6f31444" - }, - { - "nr": 122058, - "hash": "a43e405c7e943ebd6d83d302025db10ff2be9773" - }, - { - "nr": 123413, - "hash": "42145254536a895b703ba57973a14c3b77effb42" - }, - { - "nr": 123639, - "hash": "fdb63c7939ba3e5073e654dd6e6f2d0ab721554e" - }, - { - "nr": 122204, - "hash": "ce960ffd1571eed630e1416edab465872a22155a" - }, - { - "nr": 123516, - "hash": "7072ea58715b029219d6c86d309eee4e10946bdb" - }, - { - "nr": 119923, - "hash": "2965e66d431bc7a7c6d9fd5483743edaa057daf5" - }, - { - "nr": 123674, - "hash": "383107cb46b31cd71249f38cac1e758c8e33224c" - }, - { - "nr": 123492, - "hash": "72952fe6818b26261ce9cd3887b6291f4c6aabab" - }, - { - "nr": 122893, - "hash": "74e948524e1c2539782a3c64f603e224d00e7e34" - }, - { - "nr": 122846, - "hash": "28284704d3836ccf9f2ddc94266d65c4effed4bb" - }, - { - "nr": 123344, - "hash": "50718a25028cd634ecd0a35ba9829b628a671af5" - }, - { - "nr": 123599, - "hash": "c557ddbd38b799ce4f4319ac56fca29de6a64f23" - }, - { - "nr": 123150, - "hash": "faaf999c5b8a153efafc7a58b8d0d57ed96d1c60" - }, - { - "nr": 122341, - "hash": "f4174fd03d7d31dd3671edce4d0fa26a3c4e1a0b" - }, - { - "nr": 123273, - "hash": "475ecea7cbee1ee69e8ce555be8ed29efc476424" - }, - { - "nr": 123659, - "hash": "5bb0a3769f2ad5543408c506cccd2f122d4bede9" - }, - { - "nr": 123341, - "hash": "bae034626d3396f5ade1ec3651bacc8806adbc49" - }, - { - "nr": 122468, - "hash": "872e52ae77f553124fe709e6ae5e1e7bd3037c20" - }, - { - "nr": 122139, - "hash": "ca8c82af1fbf2daa544a085afad61da7b0f19a1f" - }, - { - "nr": 122032, - "hash": "2873d3f0e9ab91a08396695c9ecd1a8651065a14" - }, - { - "nr": 121954, - "hash": "45848022a54a6e853e36c1bf140cc21dce2a0d4b" - }, - { - "nr": 121983, - "hash": "9bc27efd6dc9e0b086e7ef2031afe3ce1daabd06" - }, - { - "nr": 123793, - "hash": "a4264cca8e49bb5730fc8a4dfe657a52c04e502b" - }, - { - "nr": 122056, - "hash": "54dd5ecc87112bf0f56920a4511ce4683886fc00" - }, - { - "nr": 122830, - "hash": "0c792ea9b8bc19d94967353916aa93bc35093516" - }, - { - "nr": 123271, - "hash": "e7b62410c7d4642adf4c6aa63dac832896ef8ba8" - }, - { - "nr": 117024, - "hash": "ec40c7d2396eef031187574ab2eae35cdb57da28" - }, - { - "nr": 121919, - "hash": "a3e4849e6d857994fa7540cd9eab084a43fe022d" - }, - { - "nr": 123696, - "hash": "11f4f2d7df0deadede709b7bf870be11e3a14209" - }, - { - "nr": 123560, - "hash": "8f05e1ba6ff7d0c51c262da16187e58a70003ba6" - }, - { - "nr": 123504, - "hash": "e37295d8d8a9498928fec3d79389b0886f0ef456" - }, - { - "nr": 122569, - "hash": "e457f62c35c7d060a5cd728b92aa25fdd1218cf1" - }, - { - "nr": 122710, - "hash": "ec9538af9819c1f76580a823a296c69daa8036e1" - }, - { - "nr": 123508, - "hash": "b8711739acc049fb340ce45867550045aa29c2ff" - }, - { - "nr": 122640, - "hash": "e0378dc88b7db6f81e39291eaa2b9b9f5fd3df28" - }, - { - "nr": 122498, - "hash": "9d58fda173dfb48c56697b0c64ea4fe780fb5814" - }, - { - "nr": 122136, - "hash": "69fb1f8fb48c85b6f93dc6ec7f7eb57c05678688" - }, - { - "nr": 123226, - "hash": "5bfd7a76ed1d53b94ab49b315bc6c23bd84fdf71" - }, - { - "nr": 123565, - "hash": "e68d5929c060faaa725bc9f396f2375680ed1955" - }, - { - "nr": 121958, - "hash": "be0500c97fec070860f6b4daf0b4f1405a29aef1" - }, - { - "nr": 123611, - "hash": "41ef5603cb14d8316bfdb67742a0c090ff67bc50" - }, - { - "nr": 123272, - "hash": "ec8088392fad748639b1f8839ac6eee77d830f35" - }, - { - "nr": 122276, - "hash": "721cabfbb132a7a60953f53a1f9f442aa18aa635" - }, - { - "nr": 122614, - "hash": "00161f988e7f5c739b4cde0c148956e301845a0d" - }, - { - "nr": 121387, - "hash": "30d646c6f4ef66ed3ddb66c29adc619927e5855f" - }, - { - "nr": 123641, - "hash": "32dbcb1914875076e8fab7d35f3a7a4c452ef7de" - }, - { - "nr": 123384, - "hash": "3e27231ed240c8f9260dc4cbbf8bfffd37242977" - }, - { - "nr": 122069, - "hash": "fdc0013141dedeef1e4d3d1952b1ffe1019b984c" - }, - { - "nr": 121946, - "hash": "5e03f31b9485037c2310bf30fbcb9d9df26be273" - }, - { - "nr": 122571, - "hash": "a2746aa2634df401f47fbda3d9137ee9389f8e46" - }, - { - "nr": 122697, - "hash": "7950743b9cf1780aefddc0cb3a28d8e5aa387623" - }, - { - "nr": 122530, - "hash": "d97bf349838d87b2a859e26332666b981dd52190" - }, - { - "nr": 122578, - "hash": "7b858e6c1ab29e4ba0f83d1df4e8b9cd63b906a4" - }, - { - "nr": 120246, - "hash": "877b987195bac719d49fb57b7732bafcd30cdd5d" - }, - { - "nr": 123180, - "hash": "76be6ef85c20e7529a9f87dabe711cd7a0e9b9e7" - }, - { - "nr": 123052, - "hash": "a6a50a7ccbc0b77a16c8e86194be523e73f84b2f" - }, - { - "nr": 123038, - "hash": "bf45dc9d7b16c68e92ba9957d0e0a40873eb0f78" - }, - { - "nr": 123003, - "hash": "02d7d08f7cbb99205058333728fff445aab8d52f" - }, - { - "nr": 122618, - "hash": "5b47e42bb5f370f704d64072235893eb7224331f" - }, - { - "nr": 122493, - "hash": "fed94a442435a92a959036c540c17b7954364100" - }, - { - "nr": 123372, - "hash": "a93a7f97f772ee37bf1c485fe4316fd8563b7167" - }, - { - "nr": 123343, - "hash": "5e53d8f999b16f28888b5b8f34f99de23d46ef2f" - }, - { - "nr": 123082, - "hash": "cbdca9177b977b07d8d0a0ad719474f63705bdf9" - }, - { - "nr": 122724, - "hash": "7a22b9e7d406180bb65f12a72b063788970b1a65" - }, - { - "nr": 122138, - "hash": "f5469873c35c469f4f2fc2e4f79d5525d881cc7c" - }, - { - "nr": 122508, - "hash": "c10c105500856c64dc686391b0a3ee9feaf02d16" - }, - { - "nr": 122346, - "hash": "d75b18ff7b64308af6414263baedef2301cc930b" - }, - { - "nr": 122435, - "hash": "b337efe732ffc0f28717dfae462b01c22d2946d4" - }, - { - "nr": 122233, - "hash": "dcc1fe47a3210a8c860361ab0f9bea68f30862de" - }, - { - "nr": 122022, - "hash": "5c9ea1557c0f10ee220cb0c99c5dd735264b3fd5" - }, - { - "nr": 123527, - "hash": "410c51d91ee38c1786575b7bff2cd08ed57c56e9" - }, - { - "nr": 122271, - "hash": "77b8b754bb20ffb085f1a479c73d86a6f4f04a54" - }, - { - "nr": 122477, - "hash": "c5dcbc39fcb32d2c6a9caac4007549b54b13db15" - }, - { - "nr": 123737, - "hash": "f3cd1197b98ced2654df6a76c0cf3b82bb2b2496" - }, - { - "nr": 123412, - "hash": "0a75ceda7baaa1cdf61c8e9135acdac06614c637" - }, - { - "nr": 120251, - "hash": "8ebe21cf0037473d945b9a6881e160c1b877f61b" - }, - { - "nr": 122329, - "hash": "4cae59e524f68ceef52466da72db348a00baf680" - }, - { - "nr": 123442, - "hash": "2f1da1c676ab891acf4a4ee8beb47db5f5967ae1" - }, - { - "nr": 122334, - "hash": "005569985e8219a884315165be3c5d175286ffdd" - }, - { - "nr": 117046, - "hash": "33d0b64898a49bc56f0a3b542bd80a7ebe5618b0" - }, - { - "nr": 123520, - "hash": "325ef221572ce6e20d671f3159780280cfa979b7" - }, - { - "nr": 123261, - "hash": "910db0d8f55deb6dff04cbf1053ac452caa8a152" - }, - { - "nr": 121461, - "hash": "ad264e4c51701a74d27f228cd2c02c30809da1a2" - }, - { - "nr": 123093, - "hash": "8b6843a79d05e43865e9239aa72634065575fdc9" - }, - { - "nr": 121815, - "hash": "e4b625a93db54b8729d30fc65404a3f88b3a5f19" - }, - { - "nr": 122068, - "hash": "46c63de9aef247f0da7c1ba8d5c44b177eedbcfe" - }, - { - "nr": 123461, - "hash": "c2633136f073bc63e1f6918743ccc79464e4f050" - }, - { - "nr": 122231, - "hash": "e1bc3cfb869f5802ed351945e970c97502fece2d" - }, - { - "nr": 115768, - "hash": "ccee4be4990c212471108a7a20fb7db2ed5371d8" - }, - { - "nr": 121834, - "hash": "d648b90e1e10c3bd8fa4c89252242bd64c7a0565" - }, - { - "nr": 122558, - "hash": "01e64cc4a18c30f42be6f5adf3dd6c054592d002" - }, - { - "nr": 122086, - "hash": "f7e014791ea55de9359da70ada9d0ab82aa7271a" - }, - { - "nr": 121912, - "hash": "178d6a1e6c07debfa92d25c87a248fad178dfcf5" - }, - { - "nr": 123738, - "hash": "18772a4f0419fac3e090d88651427dd59fe65004" - }, - { - "nr": 123488, - "hash": "8c75d95463c07c301ebadb92e26e402dbae4deb4" - }, - { - "nr": 122556, - "hash": "6dd9785dceabdc0cdf323582223ebc2dd469f11d" - }, - { - "nr": 123821, - "hash": "8c278ce6749bd94bee7ab3822229c38f4701e81b" - }, - { - "nr": 112957, - "hash": "b98d53c7c3542b737807aab5f98c90e877b1eb96" - }, - { - "nr": 123190, - "hash": "804f7bb909179e412b4b30ee3fbb9e0eeef634cc" - }, - { - "nr": 121720, - "hash": "d818f9807c58af4befc3703e6829b38797cfc909" - }, - { - "nr": 122285, - "hash": "2adf10f664da0d40e99319c9120234ec65141e76" - }, - { - "nr": 122225, - "hash": "38137299f3f7323711bbf5f525b927e76af778d5" - }, - { - "nr": 123562, - "hash": "a10e5c097e8617d75c3b27c09513fdac1d6cd8d2" - }, - { - "nr": 123170, - "hash": "69b7ea1643659457e3cacc8c6363f1abe3ac7ecb" - }, - { - "nr": 123216, - "hash": "45f0b3416c20b00dd6c2d2dd9410fdfe6b67b039" - }, - { - "nr": 119200, - "hash": "f58d95371484c6ef2343ab40de2e56292be4069a" - }, - { - "nr": 123366, - "hash": "e798783c8e053019ce185e12083141f3573f3c21" - }, - { - "nr": 122422, - "hash": "08655f0138088bc1d7357488e158bb2b0dfe6ee3" - }, - { - "nr": 123333, - "hash": "62f5ea439848bc2cb094415e1d1eae5a0a612f39" - }, - { - "nr": 120642, - "hash": "5e5d53e38b7a8cbb3c40a48a4db825e4cd15e03a" - }, - { - "nr": 123134, - "hash": "7bc24aae9f075143757a19e55b0401279f546353" - }, - { - "nr": 122409, - "hash": "9e6c0bb1d49f976d3adfdac2255865b0f0629930" - }, - { - "nr": 123435, - "hash": "3b9936263664dc238f2ddeb01d768b45cbc9eb85" - }, - { - "nr": 123593, - "hash": "c4ddf904905675cd4904d0aaa18e64b93ccd7d39" - }, - { - "nr": 123578, - "hash": "357f0621fbfa5249cdf508753bd629d5a3871631" - }, - { - "nr": 123331, - "hash": "8c3714452a6406139ab6dda6ed84efbb13e4af76" - }, - { - "nr": 123001, - "hash": "e8bc1563824cd0ab3c53080be74ddefe4cf49cf4" - }, - { - "nr": 122729, - "hash": "cb855bbc29d999883460e3257e3c21f5f13a3777" - }, - { - "nr": 122447, - "hash": "d7acad817644c29e2aaa30927765995452844b3c" - }, - { - "nr": 122134, - "hash": "eaa70b0a459d14094880ea46c35279a7bbef830f" - }, - { - "nr": 116209, - "hash": "3310fcbfbb57b2c2473aaa1a33ff10393ef0e2a0" - }, - { - "nr": 122907, - "hash": "a519b4e625e053ff2fb558f6b201c19ade701547" - }, - { - "nr": 123205, - "hash": "4485d5dc7a37fe4f473a5ca539703e47908fa617" - }, - { - "nr": 123011, - "hash": "782f98a44f348a01314989f9f6eb931cdc023272" - }, - { - "nr": 122937, - "hash": "70e079fdab7a10d774fe1d3e8e2276a7f85f3f9c" - }, - { - "nr": 122292, - "hash": "ecd03ba9046fe2937cd882083d525d6a3f52e7c6" - }, - { - "nr": 123223, - "hash": "d55018e18995ed0f1bbb69eec6656a70eabecc9b" - }, - { - "nr": 122178, - "hash": "28fee0ee11333731e34ca09a25ed84ce094f00fa" - }, - { - "nr": 123281, - "hash": "f68fdf01911d2fdc72f250e99cea1c8157dd8974" - }, - { - "nr": 123667, - "hash": "113cb9de545df5a928c1ad4554373268165c82fa" - }, - { - "nr": 123424, - "hash": "10303abeeead86969f2e8628d08c224dbded16bf" - }, - { - "nr": 123051, - "hash": "c8f5ae533ad861601dac1a3594d87bc42859f61a" - }, - { - "nr": 121876, - "hash": "0ad806797064652cdf2b5f36d385b1716f25a43e" - }, - { - "nr": 122142, - "hash": "b9d196e7e078be8be5ecc822896e7c860d2f859d" - }, - { - "nr": 123865, - "hash": "6d25cdef68fd8e520c8b102b75144f017d7ddeea" - }, - { - "nr": 120346, - "hash": "766f9fb1c62a9cbc0a2a829f83bc506dfc865abd" - }, - { - "nr": 123652, - "hash": "ccdbbbf49a60d291fcff474dc737f4499fe7a607" - }, - { - "nr": 122883, - "hash": "327eee9c8a96f6ec215aaa004865e11e8730c8b1" - }, - { - "nr": 123282, - "hash": "dc2c06290923d2ef8c9ccba756ac958638421db0" - }, - { - "nr": 122288, - "hash": "cea64132837dee84e568f729bf2d33421fe36435" - }, - { - "nr": 122137, - "hash": "354f0f18c2d65c292db3f02a50cfee3dd0c71b5c" - }, - { - "nr": 123713, - "hash": "08d534eea70d3d942c572cf09b1ba514b7f31acc" - }, - { - "nr": 123570, - "hash": "3f6db1061e7ec076845facbebcdd0f98901940cc" - }, - { - "nr": 122807, - "hash": "1a8984f7fbe5bb62b915f91de24a0da50683b463" - }, - { - "nr": 122030, - "hash": "7e01632edde6f683532d8c2f5163367e2bca868f" - }, - { - "nr": 122576, - "hash": "598ac9951a94bf1c047f35c62bd85d601002eece" - }, - { - "nr": 123487, - "hash": "2ebe756434e1c72ddce917b4235e6b9462fabf49" - }, - { - "nr": 123117, - "hash": "b3168e6612ee2e7783842c842b203a276286db3a" - }, - { - "nr": 123077, - "hash": "46afb46eb0c66731a47a0c8d03f91b9dfd9b0e4a" - }, - { - "nr": 122211, - "hash": "cfee1fe993a1826219e76602cd46e4e8ce7d238c" - }, - { - "nr": 123157, - "hash": "32571b26502a37a21f5394f34ce93c967b85cea7" - }, - { - "nr": 114301, - "hash": "fc7452114249491c5e9888ee5173a3f328ce3926" - }, - { - "nr": 123431, - "hash": "10549e6ea6960f48e2080f685f6a26deaf87d53c" - }, - { - "nr": 121908, - "hash": "2199f8d522293a1d6497bfe32e1c35936f6d7be4" - }, - { - "nr": 123684, - "hash": "e0f9fb16fdd9131501b44d3d2a41a9d03a8427f5" - }, - { - "nr": 114672, - "hash": "5bb607cdce72db66622874a120f838da71d33773" - }, - { - "nr": 123479, - "hash": "cfc7b712a24eb360de6e18c7a4591bfa0398b3df" - }, - { - "nr": 120902, - "hash": "bd43698c17810910124b3af8c283ea241544b241" - }, - { - "nr": 123098, - "hash": "a291dffdecf813b0f036e818375691f15c42404b" - }, - { - "nr": 122961, - "hash": "2ac370444f2d0467cdf4df1d77f10936495dfb25" - }, - { - "nr": 122705, - "hash": "8617ef679698344879808930e971fba7b1a0f345" - }, - { - "nr": 121736, - "hash": "6e4537ea7db6a4f5ffb1506106d7a7f7b2fd88c0" - }, - { - "nr": 123719, - "hash": "7073d0b33f6aa19ed9b6da4418b1f18319d5899f" - }, - { - "nr": 123464, - "hash": "c6dbdad9a80739238cba3227dccd5b7dc0e25355" - }, - { - "nr": 122804, - "hash": "c33733c1fbe2ce98852ca17176e4b5a63f265037" - }, - { - "nr": 122857, - "hash": "7fa125db9c0d5cd2f265c193ddc2301e89324b02" - }, - { - "nr": 123525, - "hash": "6d05608b488237e04e5efc539465f5e7540a6756" - }, - { - "nr": 123750, - "hash": "077eb07a7b1c10d0a31c630e0803e2b02abb8953" - }, - { - "nr": 123481, - "hash": "f1cdcc4998f0acd434cdf46b132d7c124c0d92d6" - }, - { - "nr": 123564, - "hash": "dc92af3ba9ad4c096321908859c01266b6aa6f49" - }, - { - "nr": 123222, - "hash": "9dff5abeaddf02640a672d3902c441e522c0f2e1" - }, - { - "nr": 123776, - "hash": "0d821a63a36daf27205c3d1430c096682c76b409" - }, - { - "nr": 123758, - "hash": "5b988c18c0707672f8848f5d0ddf479e61edef3e" - }, - { - "nr": 123575, - "hash": "d4638754809774078bba42050aa38b1fc055cfc4" - }, - { - "nr": 122574, - "hash": "fd9c478d6dfaa6fb8571b7ebdf41d0bbbf85099d" - }, - { - "nr": 122195, - "hash": "1346d7813c81a6e2991b68a6a6e730d9fd4ce8b1" - }, - { - "nr": 123730, - "hash": "351bfcc5a1ee1026e57a194d2b9cf70ef6091acf" - }, - { - "nr": 123385, - "hash": "6b67c008712a5515d12a2f00676e1d34a6cb6981" - }, - { - "nr": 122999, - "hash": "8337148f6479cc384aa264c251802e319050bd15" - }, - { - "nr": 123032, - "hash": "e696e9b6238d8810745e57dc6e15f1419e238e29" - }, - { - "nr": 122889, - "hash": "124cb922f7021c52c9071eb99eae3099e76d500b" - }, - { - "nr": 122197, - "hash": "78f7594fab6b9f82f67fd9435dc14ad992346d70" - }, - { - "nr": 123225, - "hash": "3e2c4c9b077c19379046d275986b6d4107268945" - }, - { - "nr": 123484, - "hash": "0217fdbbad8ba05260e8e1e1b5db41e9656b1dde" - }, - { - "nr": 123215, - "hash": "af006765e5cb2440a5784b907654fc5584475755" - }, - { - "nr": 123023, - "hash": "da591c45be6d83182a5fee103a528c3b4076432c" - }, - { - "nr": 123406, - "hash": "7de03224453cd92f8029890cd1af39d8317ae809" - }, - { - "nr": 123083, - "hash": "657ff3e28f5bd2e2d786cefc6a961d4bd53b9714" - }, - { - "nr": 120291, - "hash": "13dccd85186980a23d1b7fdfa8d777c022520557" - }, - { - "nr": 121413, - "hash": "bf319eb82492c3cdde2c112486062dd111550e4e" - }, - { - "nr": 123935, - "hash": "2806a34196767be919749d53f53ed76ef606edc9" - }, - { - "nr": 123568, - "hash": "543d08c7ac23203bda2acc326ef6e3cec6edfe45" - }, - { - "nr": 123657, - "hash": "4d99266f75e35a83a85edb2690ed671ae0ce931a" - }, - { - "nr": 122881, - "hash": "415d58c74bfd412ca5890f389a4a21a04697a2f9" - }, - { - "nr": 119177, - "hash": "335532d095d98be16383c7a829f7dcc003523532" - }, - { - "nr": 123676, - "hash": "be0be11bf83c9b797fd40507c48670b3e3637922" - }, - { - "nr": 123490, - "hash": "15526ece1c0eb9009637113b2044eeff3bfa5b66" - }, - { - "nr": 123438, - "hash": "c1b92c67efc801eb13c5e3450a9e61e179949e0a" - }, - { - "nr": 123069, - "hash": "047fc8e350f8146f21c195ff67f29925b1e29d25" - }, - { - "nr": 119779, - "hash": "4d2df0f32faef7b4b8815435a01eaff8f4c0ffc8" - }, - { - "nr": 122339, - "hash": "20669cd84a337cbd4debf73440cc5f49f803a3b5" - }, - { - "nr": 122079, - "hash": "0acafd0315456ee6272b4b96edd85775d741802e" - }, - { - "nr": 122013, - "hash": "0d8c55c583ace2d5a37dc2ec9a2e5aeb7cf9083c" - }, - { - "nr": 121669, - "hash": "a501f6482fec96185fbb49e2541808df20bc2a10" - }, - { - "nr": 123135, - "hash": "a84ad9af52b398e65406662ac85941ce177be733" - }, - { - "nr": 121719, - "hash": "26e7e04ae49e4b0435826655033e6bdd4e1024e5" - }, - { - "nr": 122647, - "hash": "ad02dfcdca491a43a3e3a8c07733985b5e10a1db" - }, - { - "nr": 122296, - "hash": "43ac211b634b29ea39d18ffbef2e63e41e62b645" - }, - { - "nr": 122503, - "hash": "a13c38db9c7ed28eb266648a41cbadfdd3930d28" - }, - { - "nr": 122870, - "hash": "57343874bbec1b856bf94c39c3172458eab93af5" - }, - { - "nr": 122717, - "hash": "5124bc6f8eb48777c41a772ccfed3d3db6575629" - }, - { - "nr": 123425, - "hash": "5810031a026fe800bcf9be5a954e0cd7832d0861" - }, - { - "nr": 122946, - "hash": "9d3684e68187da4655a0aaa9284e8915450d4015" - }, - { - "nr": 123323, - "hash": "ec7737588b46b795a06e5d6bd1053b0fd7fe6431" - }, - { - "nr": 122456, - "hash": "61c7659a5648e8b7f4759c0769094c1e4317c4f5" - }, - { - "nr": 123055, - "hash": "848631940eba2411668829b4e0b171ef4923d17d" - }, - { - "nr": 122750, - "hash": "1da4f7844bcc129f5b821f770c32d72f79af1cc4" - }, - { - "nr": 123529, - "hash": "f6d44ebf36383a5b67a9574c9f18540665076173" - }, - { - "nr": 122293, - "hash": "38aab3ae883fe47889d66b9a28a567fd3746588f" - }, - { - "nr": 122874, - "hash": "cc8cc4c499cd16446db9949b21f85177ce390bf6" - }, - { - "nr": 120344, - "hash": "7bdc410bdf0d5512e80a5687bb8ddee8e0109bad" - }, - { - "nr": 120631, - "hash": "6501b32ed907b28f58c435c3d9d4c95e64f48422" - }, - { - "nr": 121565, - "hash": "a550a8f844d94eed192cf3f17ae5ceca98b6cf10" - }, - { - "nr": 122309, - "hash": "4989cb2fdc29e535c53d75ca9f9ae066b057fbc6" - }, - { - "nr": 120718, - "hash": "67720f79365f23bdbc609ee0bc8f5c6cabd57076" - }, - { - "nr": 123475, - "hash": "1e105fc0b8af62fded2aef7334a311c589609558" - }, - { - "nr": 123540, - "hash": "15ab6850b17790fc537590177500e938fbc2fda4" - }, - { - "nr": 122088, - "hash": "d0c2326a039596cc52537d4e777205bcedb7c418" - }, - { - "nr": 123654, - "hash": "9343a2be383e2a301a7d969f4f22fd788cc954c6" - }, - { - "nr": 123310, - "hash": "fd7aed6147f105c0f5d76cfa6852feca4be6e394" - }, - { - "nr": 122635, - "hash": "812dad4b25abe1c6278580d167168965402e0991" - }, - { - "nr": 122692, - "hash": "2c7c4e0b72ea7d1e399c5272409cbe174b117c28" - }, - { - "nr": 122914, - "hash": "f7f27e79a00e5ee3ab95a5d5039c410825444426" - }, - { - "nr": 122735, - "hash": "ea2817fc6ac2fa3fee4d38e520870cd88c8554a1" - }, - { - "nr": 118389, - "hash": "48057c4a577217d9b8fcbb9e8e903baad4cb47ef" - }, - { - "nr": 122449, - "hash": "a09f2a3050840ab8beaa26b13e0adac2b3578879" - }, - { - "nr": 122415, - "hash": "f380988860e03bbf13211a52ba46e4650153a48c" - }, - { - "nr": 123614, - "hash": "cb9fb37c3fd7480f129de47b67b3b7141ef85f40" - }, - { - "nr": 122589, - "hash": "24bdc71792a2a0c5cdf0e19b94d1991a02513485" - }, - { - "nr": 123517, - "hash": "97518030eec0938fadd00b30d97756f5f7c37191" - }, - { - "nr": 123171, - "hash": "b1594b0a341058ffb59b784898841aa87d6c9130" - }, - { - "nr": 124001, - "hash": "08203b5b934735f54555532449888afe86efce62" - }, - { - "nr": 123561, - "hash": "56ed697a51dde4aec7687016d4d7ed739273ae29" - }, - { - "nr": 120159, - "hash": "227e716704d87ba39af402cb17d009fa64aef67c" - }, - { - "nr": 122745, - "hash": "0433c225c43d931194a1670aa69250dac34acd53" - }, - { - "nr": 122704, - "hash": "0a2567eafa0903abb626d4f202af7ff58e89bb9a" - }, - { - "nr": 122023, - "hash": "bd596d2a988f42d2bc39654b61182359a2ac96d1" - }, - { - "nr": 123482, - "hash": "3243c9a402272691ddf77684d93674d3613a1f2c" - }, - { - "nr": 122701, - "hash": "817d17fd3e8d743f3fad993f7d2eb3e1176ea182" - }, - { - "nr": 122555, - "hash": "b7e160b0d59a8382ec912467f4648848136995bd" - }, - { - "nr": 118756, - "hash": "b2e7f9d13ace61fe439630031d03058fef4ffe30" - }, - { - "nr": 123418, - "hash": "acf14799e34f1b668936c2b493e6a44308da135d" - }, - { - "nr": 121952, - "hash": "a7f2fc3e8d3798c77dc2d1b7b8b2678b94ed969b" - }, - { - "nr": 122523, - "hash": "47df17c5e7d76fe74b99056ab79e599a0686d7da" - }, - { - "nr": 122393, - "hash": "011aa7628cc1ddb89ccc78808e375ad70366321b" - }, - { - "nr": 122041, - "hash": "1a4d9501abf510671f94a54aa7c2739196650b81" - }, - { - "nr": 123405, - "hash": "14934d43dd052966755266e4bede5cc469f4a6e1" - }, - { - "nr": 123532, - "hash": "e0573df0f5d049e71acdceda0f5b7824651d9b07" - }, - { - "nr": 123640, - "hash": "cf29fabf53ebb08a83646ee84b75cef9ac120482" - }, - { - "nr": 123345, - "hash": "227578f2de3ac7a12b4ff7ddd2a4d52e9d258e2e" - }, - { - "nr": 122887, - "hash": "e1d42f34ec979ad1b33e3dd912900e653d18a7e9" - }, - { - "nr": 123217, - "hash": "70e2d575405001c6049f7a7c7f33a301a8dd5d4f" - }, - { - "nr": 122475, - "hash": "ac23ad41f1e2670e40533343707b609d4e93c2e0" - }, - { - "nr": 123943, - "hash": "61a27304e9de9a0c0ce65702bf8bd3ee17f0bb38" - }, - { - "nr": 123543, - "hash": "72be83bcdf5098f87dcafcf742f47203c1ba2e3f" - }, - { - "nr": 120111, - "hash": "9d0e30df3b2bb73d3f5917c4df4aad782f8fe0d0" - }, - { - "nr": 123555, - "hash": "cf71800803e72152e94e41dd1bc0846de6ddc59d" - }, - { - "nr": 121778, - "hash": "4e1916fe5320f752ef467200f3ca6408677df447" - }, - { - "nr": 123165, - "hash": "91fa2239ca06775cfaed7c141a239c5863d88a04" - }, - { - "nr": 121512, - "hash": "d5e738b3e3f808e5dd32caa6a7dfe732015b018f" - } - ] +{ + "mail": "faeka6@gmail.com", + "name": "fykaa", + "date": 1712855313, + "prs": [ + { + "nr": 122882, + "hash": "59425137ea1add4b7bf56d6b9fbec3e8c3c2b0de" + }, + { + "nr": 123179, + "hash": "d4cccd48ea8c57376ab7766f658a2b18efa1a81e" + }, + { + "nr": 122612, + "hash": "91a6a83deb3d8edda7c8fe19e0be95120b330ba5" + }, + { + "nr": 122600, + "hash": "39c53ab8f37775b6f2b63eb48adba6a6c6f31444" + }, + { + "nr": 122058, + "hash": "a43e405c7e943ebd6d83d302025db10ff2be9773" + }, + { + "nr": 123413, + "hash": "42145254536a895b703ba57973a14c3b77effb42" + }, + { + "nr": 123639, + "hash": "fdb63c7939ba3e5073e654dd6e6f2d0ab721554e" + }, + { + "nr": 122204, + "hash": "ce960ffd1571eed630e1416edab465872a22155a" + }, + { + "nr": 123516, + "hash": "7072ea58715b029219d6c86d309eee4e10946bdb" + }, + { + "nr": 119923, + "hash": "2965e66d431bc7a7c6d9fd5483743edaa057daf5" + }, + { + "nr": 123674, + "hash": "383107cb46b31cd71249f38cac1e758c8e33224c" + }, + { + "nr": 123492, + "hash": "72952fe6818b26261ce9cd3887b6291f4c6aabab" + }, + { + "nr": 122893, + "hash": "74e948524e1c2539782a3c64f603e224d00e7e34" + }, + { + "nr": 122846, + "hash": "28284704d3836ccf9f2ddc94266d65c4effed4bb" + }, + { + "nr": 123344, + "hash": "50718a25028cd634ecd0a35ba9829b628a671af5" + }, + { + "nr": 123599, + "hash": "c557ddbd38b799ce4f4319ac56fca29de6a64f23" + }, + { + "nr": 123150, + "hash": "faaf999c5b8a153efafc7a58b8d0d57ed96d1c60" + }, + { + "nr": 122341, + "hash": "f4174fd03d7d31dd3671edce4d0fa26a3c4e1a0b" + }, + { + "nr": 123273, + "hash": "475ecea7cbee1ee69e8ce555be8ed29efc476424" + }, + { + "nr": 123659, + "hash": "5bb0a3769f2ad5543408c506cccd2f122d4bede9" + }, + { + "nr": 123341, + "hash": "bae034626d3396f5ade1ec3651bacc8806adbc49" + }, + { + "nr": 122468, + "hash": "872e52ae77f553124fe709e6ae5e1e7bd3037c20" + }, + { + "nr": 122139, + "hash": "ca8c82af1fbf2daa544a085afad61da7b0f19a1f" + }, + { + "nr": 122032, + "hash": "2873d3f0e9ab91a08396695c9ecd1a8651065a14" + }, + { + "nr": 121954, + "hash": "45848022a54a6e853e36c1bf140cc21dce2a0d4b" + }, + { + "nr": 121983, + "hash": "9bc27efd6dc9e0b086e7ef2031afe3ce1daabd06" + }, + { + "nr": 123793, + "hash": "a4264cca8e49bb5730fc8a4dfe657a52c04e502b" + }, + { + "nr": 122056, + "hash": "54dd5ecc87112bf0f56920a4511ce4683886fc00" + }, + { + "nr": 122830, + "hash": "0c792ea9b8bc19d94967353916aa93bc35093516" + }, + { + "nr": 123271, + "hash": "e7b62410c7d4642adf4c6aa63dac832896ef8ba8" + }, + { + "nr": 117024, + "hash": "ec40c7d2396eef031187574ab2eae35cdb57da28" + }, + { + "nr": 121919, + "hash": "a3e4849e6d857994fa7540cd9eab084a43fe022d" + }, + { + "nr": 123696, + "hash": "11f4f2d7df0deadede709b7bf870be11e3a14209" + }, + { + "nr": 123560, + "hash": "8f05e1ba6ff7d0c51c262da16187e58a70003ba6" + }, + { + "nr": 123504, + "hash": "e37295d8d8a9498928fec3d79389b0886f0ef456" + }, + { + "nr": 122569, + "hash": "e457f62c35c7d060a5cd728b92aa25fdd1218cf1" + }, + { + "nr": 122710, + "hash": "ec9538af9819c1f76580a823a296c69daa8036e1" + }, + { + "nr": 123508, + "hash": "b8711739acc049fb340ce45867550045aa29c2ff" + }, + { + "nr": 122640, + "hash": "e0378dc88b7db6f81e39291eaa2b9b9f5fd3df28" + }, + { + "nr": 122498, + "hash": "9d58fda173dfb48c56697b0c64ea4fe780fb5814" + }, + { + "nr": 122136, + "hash": "69fb1f8fb48c85b6f93dc6ec7f7eb57c05678688" + }, + { + "nr": 123226, + "hash": "5bfd7a76ed1d53b94ab49b315bc6c23bd84fdf71" + }, + { + "nr": 123565, + "hash": "e68d5929c060faaa725bc9f396f2375680ed1955" + }, + { + "nr": 121958, + "hash": "be0500c97fec070860f6b4daf0b4f1405a29aef1" + }, + { + "nr": 123611, + "hash": "41ef5603cb14d8316bfdb67742a0c090ff67bc50" + }, + { + "nr": 123272, + "hash": "ec8088392fad748639b1f8839ac6eee77d830f35" + }, + { + "nr": 122276, + "hash": "721cabfbb132a7a60953f53a1f9f442aa18aa635" + }, + { + "nr": 122614, + "hash": "00161f988e7f5c739b4cde0c148956e301845a0d" + }, + { + "nr": 121387, + "hash": "30d646c6f4ef66ed3ddb66c29adc619927e5855f" + }, + { + "nr": 123641, + "hash": "32dbcb1914875076e8fab7d35f3a7a4c452ef7de" + }, + { + "nr": 123384, + "hash": "3e27231ed240c8f9260dc4cbbf8bfffd37242977" + }, + { + "nr": 122069, + "hash": "fdc0013141dedeef1e4d3d1952b1ffe1019b984c" + }, + { + "nr": 121946, + "hash": "5e03f31b9485037c2310bf30fbcb9d9df26be273" + }, + { + "nr": 122571, + "hash": "a2746aa2634df401f47fbda3d9137ee9389f8e46" + }, + { + "nr": 122697, + "hash": "7950743b9cf1780aefddc0cb3a28d8e5aa387623" + }, + { + "nr": 122530, + "hash": "d97bf349838d87b2a859e26332666b981dd52190" + }, + { + "nr": 122578, + "hash": "7b858e6c1ab29e4ba0f83d1df4e8b9cd63b906a4" + }, + { + "nr": 120246, + "hash": "877b987195bac719d49fb57b7732bafcd30cdd5d" + }, + { + "nr": 123180, + "hash": "76be6ef85c20e7529a9f87dabe711cd7a0e9b9e7" + }, + { + "nr": 123052, + "hash": "a6a50a7ccbc0b77a16c8e86194be523e73f84b2f" + }, + { + "nr": 123038, + "hash": "bf45dc9d7b16c68e92ba9957d0e0a40873eb0f78" + }, + { + "nr": 123003, + "hash": "02d7d08f7cbb99205058333728fff445aab8d52f" + }, + { + "nr": 122618, + "hash": "5b47e42bb5f370f704d64072235893eb7224331f" + }, + { + "nr": 122493, + "hash": "fed94a442435a92a959036c540c17b7954364100" + }, + { + "nr": 123372, + "hash": "a93a7f97f772ee37bf1c485fe4316fd8563b7167" + }, + { + "nr": 123343, + "hash": "5e53d8f999b16f28888b5b8f34f99de23d46ef2f" + }, + { + "nr": 123082, + "hash": "cbdca9177b977b07d8d0a0ad719474f63705bdf9" + }, + { + "nr": 122724, + "hash": "7a22b9e7d406180bb65f12a72b063788970b1a65" + }, + { + "nr": 122138, + "hash": "f5469873c35c469f4f2fc2e4f79d5525d881cc7c" + }, + { + "nr": 122508, + "hash": "c10c105500856c64dc686391b0a3ee9feaf02d16" + }, + { + "nr": 122346, + "hash": "d75b18ff7b64308af6414263baedef2301cc930b" + }, + { + "nr": 122435, + "hash": "b337efe732ffc0f28717dfae462b01c22d2946d4" + }, + { + "nr": 122233, + "hash": "dcc1fe47a3210a8c860361ab0f9bea68f30862de" + }, + { + "nr": 122022, + "hash": "5c9ea1557c0f10ee220cb0c99c5dd735264b3fd5" + }, + { + "nr": 123527, + "hash": "410c51d91ee38c1786575b7bff2cd08ed57c56e9" + }, + { + "nr": 122271, + "hash": "77b8b754bb20ffb085f1a479c73d86a6f4f04a54" + }, + { + "nr": 122477, + "hash": "c5dcbc39fcb32d2c6a9caac4007549b54b13db15" + }, + { + "nr": 123737, + "hash": "f3cd1197b98ced2654df6a76c0cf3b82bb2b2496" + }, + { + "nr": 123412, + "hash": "0a75ceda7baaa1cdf61c8e9135acdac06614c637" + }, + { + "nr": 120251, + "hash": "8ebe21cf0037473d945b9a6881e160c1b877f61b" + }, + { + "nr": 122329, + "hash": "4cae59e524f68ceef52466da72db348a00baf680" + }, + { + "nr": 123442, + "hash": "2f1da1c676ab891acf4a4ee8beb47db5f5967ae1" + }, + { + "nr": 122334, + "hash": "005569985e8219a884315165be3c5d175286ffdd" + }, + { + "nr": 117046, + "hash": "33d0b64898a49bc56f0a3b542bd80a7ebe5618b0" + }, + { + "nr": 123520, + "hash": "325ef221572ce6e20d671f3159780280cfa979b7" + }, + { + "nr": 123261, + "hash": "910db0d8f55deb6dff04cbf1053ac452caa8a152" + }, + { + "nr": 121461, + "hash": "ad264e4c51701a74d27f228cd2c02c30809da1a2" + }, + { + "nr": 123093, + "hash": "8b6843a79d05e43865e9239aa72634065575fdc9" + }, + { + "nr": 121815, + "hash": "e4b625a93db54b8729d30fc65404a3f88b3a5f19" + }, + { + "nr": 122068, + "hash": "46c63de9aef247f0da7c1ba8d5c44b177eedbcfe" + }, + { + "nr": 123461, + "hash": "c2633136f073bc63e1f6918743ccc79464e4f050" + }, + { + "nr": 122231, + "hash": "e1bc3cfb869f5802ed351945e970c97502fece2d" + }, + { + "nr": 115768, + "hash": "ccee4be4990c212471108a7a20fb7db2ed5371d8" + }, + { + "nr": 121834, + "hash": "d648b90e1e10c3bd8fa4c89252242bd64c7a0565" + }, + { + "nr": 122558, + "hash": "01e64cc4a18c30f42be6f5adf3dd6c054592d002" + }, + { + "nr": 122086, + "hash": "f7e014791ea55de9359da70ada9d0ab82aa7271a" + }, + { + "nr": 121912, + "hash": "178d6a1e6c07debfa92d25c87a248fad178dfcf5" + }, + { + "nr": 123738, + "hash": "18772a4f0419fac3e090d88651427dd59fe65004" + }, + { + "nr": 123488, + "hash": "8c75d95463c07c301ebadb92e26e402dbae4deb4" + }, + { + "nr": 122556, + "hash": "6dd9785dceabdc0cdf323582223ebc2dd469f11d" + }, + { + "nr": 123821, + "hash": "8c278ce6749bd94bee7ab3822229c38f4701e81b" + }, + { + "nr": 112957, + "hash": "b98d53c7c3542b737807aab5f98c90e877b1eb96" + }, + { + "nr": 123190, + "hash": "804f7bb909179e412b4b30ee3fbb9e0eeef634cc" + }, + { + "nr": 121720, + "hash": "d818f9807c58af4befc3703e6829b38797cfc909" + }, + { + "nr": 122285, + "hash": "2adf10f664da0d40e99319c9120234ec65141e76" + }, + { + "nr": 122225, + "hash": "38137299f3f7323711bbf5f525b927e76af778d5" + }, + { + "nr": 123562, + "hash": "a10e5c097e8617d75c3b27c09513fdac1d6cd8d2" + }, + { + "nr": 123170, + "hash": "69b7ea1643659457e3cacc8c6363f1abe3ac7ecb" + }, + { + "nr": 123216, + "hash": "45f0b3416c20b00dd6c2d2dd9410fdfe6b67b039" + }, + { + "nr": 119200, + "hash": "f58d95371484c6ef2343ab40de2e56292be4069a" + }, + { + "nr": 123366, + "hash": "e798783c8e053019ce185e12083141f3573f3c21" + }, + { + "nr": 122422, + "hash": "08655f0138088bc1d7357488e158bb2b0dfe6ee3" + }, + { + "nr": 123333, + "hash": "62f5ea439848bc2cb094415e1d1eae5a0a612f39" + }, + { + "nr": 120642, + "hash": "5e5d53e38b7a8cbb3c40a48a4db825e4cd15e03a" + }, + { + "nr": 123134, + "hash": "7bc24aae9f075143757a19e55b0401279f546353" + }, + { + "nr": 122409, + "hash": "9e6c0bb1d49f976d3adfdac2255865b0f0629930" + }, + { + "nr": 123435, + "hash": "3b9936263664dc238f2ddeb01d768b45cbc9eb85" + }, + { + "nr": 123593, + "hash": "c4ddf904905675cd4904d0aaa18e64b93ccd7d39" + }, + { + "nr": 123578, + "hash": "357f0621fbfa5249cdf508753bd629d5a3871631" + }, + { + "nr": 123331, + "hash": "8c3714452a6406139ab6dda6ed84efbb13e4af76" + }, + { + "nr": 123001, + "hash": "e8bc1563824cd0ab3c53080be74ddefe4cf49cf4" + }, + { + "nr": 122729, + "hash": "cb855bbc29d999883460e3257e3c21f5f13a3777" + }, + { + "nr": 122447, + "hash": "d7acad817644c29e2aaa30927765995452844b3c" + }, + { + "nr": 122134, + "hash": "eaa70b0a459d14094880ea46c35279a7bbef830f" + }, + { + "nr": 116209, + "hash": "3310fcbfbb57b2c2473aaa1a33ff10393ef0e2a0" + }, + { + "nr": 122907, + "hash": "a519b4e625e053ff2fb558f6b201c19ade701547" + }, + { + "nr": 123205, + "hash": "4485d5dc7a37fe4f473a5ca539703e47908fa617" + }, + { + "nr": 123011, + "hash": "782f98a44f348a01314989f9f6eb931cdc023272" + }, + { + "nr": 122937, + "hash": "70e079fdab7a10d774fe1d3e8e2276a7f85f3f9c" + }, + { + "nr": 122292, + "hash": "ecd03ba9046fe2937cd882083d525d6a3f52e7c6" + }, + { + "nr": 123223, + "hash": "d55018e18995ed0f1bbb69eec6656a70eabecc9b" + }, + { + "nr": 122178, + "hash": "28fee0ee11333731e34ca09a25ed84ce094f00fa" + }, + { + "nr": 123281, + "hash": "f68fdf01911d2fdc72f250e99cea1c8157dd8974" + }, + { + "nr": 123667, + "hash": "113cb9de545df5a928c1ad4554373268165c82fa" + }, + { + "nr": 123424, + "hash": "10303abeeead86969f2e8628d08c224dbded16bf" + }, + { + "nr": 123051, + "hash": "c8f5ae533ad861601dac1a3594d87bc42859f61a" + }, + { + "nr": 121876, + "hash": "0ad806797064652cdf2b5f36d385b1716f25a43e" + }, + { + "nr": 122142, + "hash": "b9d196e7e078be8be5ecc822896e7c860d2f859d" + }, + { + "nr": 123865, + "hash": "6d25cdef68fd8e520c8b102b75144f017d7ddeea" + }, + { + "nr": 120346, + "hash": "766f9fb1c62a9cbc0a2a829f83bc506dfc865abd" + }, + { + "nr": 123652, + "hash": "ccdbbbf49a60d291fcff474dc737f4499fe7a607" + }, + { + "nr": 122883, + "hash": "327eee9c8a96f6ec215aaa004865e11e8730c8b1" + }, + { + "nr": 123282, + "hash": "dc2c06290923d2ef8c9ccba756ac958638421db0" + }, + { + "nr": 122288, + "hash": "cea64132837dee84e568f729bf2d33421fe36435" + }, + { + "nr": 122137, + "hash": "354f0f18c2d65c292db3f02a50cfee3dd0c71b5c" + }, + { + "nr": 123713, + "hash": "08d534eea70d3d942c572cf09b1ba514b7f31acc" + }, + { + "nr": 123570, + "hash": "3f6db1061e7ec076845facbebcdd0f98901940cc" + }, + { + "nr": 122807, + "hash": "1a8984f7fbe5bb62b915f91de24a0da50683b463" + }, + { + "nr": 122030, + "hash": "7e01632edde6f683532d8c2f5163367e2bca868f" + }, + { + "nr": 122576, + "hash": "598ac9951a94bf1c047f35c62bd85d601002eece" + }, + { + "nr": 123487, + "hash": "2ebe756434e1c72ddce917b4235e6b9462fabf49" + }, + { + "nr": 123117, + "hash": "b3168e6612ee2e7783842c842b203a276286db3a" + }, + { + "nr": 123077, + "hash": "46afb46eb0c66731a47a0c8d03f91b9dfd9b0e4a" + }, + { + "nr": 122211, + "hash": "cfee1fe993a1826219e76602cd46e4e8ce7d238c" + }, + { + "nr": 123157, + "hash": "32571b26502a37a21f5394f34ce93c967b85cea7" + }, + { + "nr": 114301, + "hash": "fc7452114249491c5e9888ee5173a3f328ce3926" + }, + { + "nr": 123431, + "hash": "10549e6ea6960f48e2080f685f6a26deaf87d53c" + }, + { + "nr": 121908, + "hash": "2199f8d522293a1d6497bfe32e1c35936f6d7be4" + }, + { + "nr": 123684, + "hash": "e0f9fb16fdd9131501b44d3d2a41a9d03a8427f5" + }, + { + "nr": 114672, + "hash": "5bb607cdce72db66622874a120f838da71d33773" + }, + { + "nr": 123479, + "hash": "cfc7b712a24eb360de6e18c7a4591bfa0398b3df" + }, + { + "nr": 120902, + "hash": "bd43698c17810910124b3af8c283ea241544b241" + }, + { + "nr": 123098, + "hash": "a291dffdecf813b0f036e818375691f15c42404b" + }, + { + "nr": 122961, + "hash": "2ac370444f2d0467cdf4df1d77f10936495dfb25" + }, + { + "nr": 122705, + "hash": "8617ef679698344879808930e971fba7b1a0f345" + }, + { + "nr": 121736, + "hash": "6e4537ea7db6a4f5ffb1506106d7a7f7b2fd88c0" + }, + { + "nr": 123719, + "hash": "7073d0b33f6aa19ed9b6da4418b1f18319d5899f" + }, + { + "nr": 123464, + "hash": "c6dbdad9a80739238cba3227dccd5b7dc0e25355" + }, + { + "nr": 122804, + "hash": "c33733c1fbe2ce98852ca17176e4b5a63f265037" + }, + { + "nr": 122857, + "hash": "7fa125db9c0d5cd2f265c193ddc2301e89324b02" + }, + { + "nr": 123525, + "hash": "6d05608b488237e04e5efc539465f5e7540a6756" + }, + { + "nr": 123750, + "hash": "077eb07a7b1c10d0a31c630e0803e2b02abb8953" + }, + { + "nr": 123481, + "hash": "f1cdcc4998f0acd434cdf46b132d7c124c0d92d6" + }, + { + "nr": 123564, + "hash": "dc92af3ba9ad4c096321908859c01266b6aa6f49" + }, + { + "nr": 123222, + "hash": "9dff5abeaddf02640a672d3902c441e522c0f2e1" + }, + { + "nr": 123776, + "hash": "0d821a63a36daf27205c3d1430c096682c76b409" + }, + { + "nr": 123758, + "hash": "5b988c18c0707672f8848f5d0ddf479e61edef3e" + }, + { + "nr": 123575, + "hash": "d4638754809774078bba42050aa38b1fc055cfc4" + }, + { + "nr": 122574, + "hash": "fd9c478d6dfaa6fb8571b7ebdf41d0bbbf85099d" + }, + { + "nr": 122195, + "hash": "1346d7813c81a6e2991b68a6a6e730d9fd4ce8b1" + }, + { + "nr": 123730, + "hash": "351bfcc5a1ee1026e57a194d2b9cf70ef6091acf" + }, + { + "nr": 123385, + "hash": "6b67c008712a5515d12a2f00676e1d34a6cb6981" + }, + { + "nr": 122999, + "hash": "8337148f6479cc384aa264c251802e319050bd15" + }, + { + "nr": 123032, + "hash": "e696e9b6238d8810745e57dc6e15f1419e238e29" + }, + { + "nr": 122889, + "hash": "124cb922f7021c52c9071eb99eae3099e76d500b" + }, + { + "nr": 122197, + "hash": "78f7594fab6b9f82f67fd9435dc14ad992346d70" + }, + { + "nr": 123225, + "hash": "3e2c4c9b077c19379046d275986b6d4107268945" + }, + { + "nr": 123484, + "hash": "0217fdbbad8ba05260e8e1e1b5db41e9656b1dde" + }, + { + "nr": 123215, + "hash": "af006765e5cb2440a5784b907654fc5584475755" + }, + { + "nr": 123023, + "hash": "da591c45be6d83182a5fee103a528c3b4076432c" + }, + { + "nr": 123406, + "hash": "7de03224453cd92f8029890cd1af39d8317ae809" + }, + { + "nr": 123083, + "hash": "657ff3e28f5bd2e2d786cefc6a961d4bd53b9714" + }, + { + "nr": 120291, + "hash": "13dccd85186980a23d1b7fdfa8d777c022520557" + }, + { + "nr": 121413, + "hash": "bf319eb82492c3cdde2c112486062dd111550e4e" + }, + { + "nr": 123935, + "hash": "2806a34196767be919749d53f53ed76ef606edc9" + }, + { + "nr": 123568, + "hash": "543d08c7ac23203bda2acc326ef6e3cec6edfe45" + }, + { + "nr": 123657, + "hash": "4d99266f75e35a83a85edb2690ed671ae0ce931a" + }, + { + "nr": 122881, + "hash": "415d58c74bfd412ca5890f389a4a21a04697a2f9" + }, + { + "nr": 119177, + "hash": "335532d095d98be16383c7a829f7dcc003523532" + }, + { + "nr": 123676, + "hash": "be0be11bf83c9b797fd40507c48670b3e3637922" + }, + { + "nr": 123490, + "hash": "15526ece1c0eb9009637113b2044eeff3bfa5b66" + }, + { + "nr": 123438, + "hash": "c1b92c67efc801eb13c5e3450a9e61e179949e0a" + }, + { + "nr": 123069, + "hash": "047fc8e350f8146f21c195ff67f29925b1e29d25" + }, + { + "nr": 119779, + "hash": "4d2df0f32faef7b4b8815435a01eaff8f4c0ffc8" + }, + { + "nr": 122339, + "hash": "20669cd84a337cbd4debf73440cc5f49f803a3b5" + }, + { + "nr": 122079, + "hash": "0acafd0315456ee6272b4b96edd85775d741802e" + }, + { + "nr": 122013, + "hash": "0d8c55c583ace2d5a37dc2ec9a2e5aeb7cf9083c" + }, + { + "nr": 121669, + "hash": "a501f6482fec96185fbb49e2541808df20bc2a10" + }, + { + "nr": 123135, + "hash": "a84ad9af52b398e65406662ac85941ce177be733" + }, + { + "nr": 121719, + "hash": "26e7e04ae49e4b0435826655033e6bdd4e1024e5" + }, + { + "nr": 122647, + "hash": "ad02dfcdca491a43a3e3a8c07733985b5e10a1db" + }, + { + "nr": 122296, + "hash": "43ac211b634b29ea39d18ffbef2e63e41e62b645" + }, + { + "nr": 122503, + "hash": "a13c38db9c7ed28eb266648a41cbadfdd3930d28" + }, + { + "nr": 122870, + "hash": "57343874bbec1b856bf94c39c3172458eab93af5" + }, + { + "nr": 122717, + "hash": "5124bc6f8eb48777c41a772ccfed3d3db6575629" + }, + { + "nr": 123425, + "hash": "5810031a026fe800bcf9be5a954e0cd7832d0861" + }, + { + "nr": 122946, + "hash": "9d3684e68187da4655a0aaa9284e8915450d4015" + }, + { + "nr": 123323, + "hash": "ec7737588b46b795a06e5d6bd1053b0fd7fe6431" + }, + { + "nr": 122456, + "hash": "61c7659a5648e8b7f4759c0769094c1e4317c4f5" + }, + { + "nr": 123055, + "hash": "848631940eba2411668829b4e0b171ef4923d17d" + }, + { + "nr": 122750, + "hash": "1da4f7844bcc129f5b821f770c32d72f79af1cc4" + }, + { + "nr": 123529, + "hash": "f6d44ebf36383a5b67a9574c9f18540665076173" + }, + { + "nr": 122293, + "hash": "38aab3ae883fe47889d66b9a28a567fd3746588f" + }, + { + "nr": 122874, + "hash": "cc8cc4c499cd16446db9949b21f85177ce390bf6" + }, + { + "nr": 120344, + "hash": "7bdc410bdf0d5512e80a5687bb8ddee8e0109bad" + }, + { + "nr": 120631, + "hash": "6501b32ed907b28f58c435c3d9d4c95e64f48422" + }, + { + "nr": 121565, + "hash": "a550a8f844d94eed192cf3f17ae5ceca98b6cf10" + }, + { + "nr": 122309, + "hash": "4989cb2fdc29e535c53d75ca9f9ae066b057fbc6" + }, + { + "nr": 120718, + "hash": "67720f79365f23bdbc609ee0bc8f5c6cabd57076" + }, + { + "nr": 123475, + "hash": "1e105fc0b8af62fded2aef7334a311c589609558" + }, + { + "nr": 123540, + "hash": "15ab6850b17790fc537590177500e938fbc2fda4" + }, + { + "nr": 122088, + "hash": "d0c2326a039596cc52537d4e777205bcedb7c418" + }, + { + "nr": 123654, + "hash": "9343a2be383e2a301a7d969f4f22fd788cc954c6" + }, + { + "nr": 123310, + "hash": "fd7aed6147f105c0f5d76cfa6852feca4be6e394" + }, + { + "nr": 122635, + "hash": "812dad4b25abe1c6278580d167168965402e0991" + }, + { + "nr": 122692, + "hash": "2c7c4e0b72ea7d1e399c5272409cbe174b117c28" + }, + { + "nr": 122914, + "hash": "f7f27e79a00e5ee3ab95a5d5039c410825444426" + }, + { + "nr": 122735, + "hash": "ea2817fc6ac2fa3fee4d38e520870cd88c8554a1" + }, + { + "nr": 118389, + "hash": "48057c4a577217d9b8fcbb9e8e903baad4cb47ef" + }, + { + "nr": 122449, + "hash": "a09f2a3050840ab8beaa26b13e0adac2b3578879" + }, + { + "nr": 122415, + "hash": "f380988860e03bbf13211a52ba46e4650153a48c" + }, + { + "nr": 123614, + "hash": "cb9fb37c3fd7480f129de47b67b3b7141ef85f40" + }, + { + "nr": 122589, + "hash": "24bdc71792a2a0c5cdf0e19b94d1991a02513485" + }, + { + "nr": 123517, + "hash": "97518030eec0938fadd00b30d97756f5f7c37191" + }, + { + "nr": 123171, + "hash": "b1594b0a341058ffb59b784898841aa87d6c9130" + }, + { + "nr": 124001, + "hash": "08203b5b934735f54555532449888afe86efce62" + }, + { + "nr": 123561, + "hash": "56ed697a51dde4aec7687016d4d7ed739273ae29" + }, + { + "nr": 120159, + "hash": "227e716704d87ba39af402cb17d009fa64aef67c" + }, + { + "nr": 122745, + "hash": "0433c225c43d931194a1670aa69250dac34acd53" + }, + { + "nr": 122704, + "hash": "0a2567eafa0903abb626d4f202af7ff58e89bb9a" + }, + { + "nr": 122023, + "hash": "bd596d2a988f42d2bc39654b61182359a2ac96d1" + }, + { + "nr": 123482, + "hash": "3243c9a402272691ddf77684d93674d3613a1f2c" + }, + { + "nr": 122701, + "hash": "817d17fd3e8d743f3fad993f7d2eb3e1176ea182" + }, + { + "nr": 122555, + "hash": "b7e160b0d59a8382ec912467f4648848136995bd" + }, + { + "nr": 118756, + "hash": "b2e7f9d13ace61fe439630031d03058fef4ffe30" + }, + { + "nr": 123418, + "hash": "acf14799e34f1b668936c2b493e6a44308da135d" + }, + { + "nr": 121952, + "hash": "a7f2fc3e8d3798c77dc2d1b7b8b2678b94ed969b" + }, + { + "nr": 122523, + "hash": "47df17c5e7d76fe74b99056ab79e599a0686d7da" + }, + { + "nr": 122393, + "hash": "011aa7628cc1ddb89ccc78808e375ad70366321b" + }, + { + "nr": 122041, + "hash": "1a4d9501abf510671f94a54aa7c2739196650b81" + }, + { + "nr": 123405, + "hash": "14934d43dd052966755266e4bede5cc469f4a6e1" + }, + { + "nr": 123532, + "hash": "e0573df0f5d049e71acdceda0f5b7824651d9b07" + }, + { + "nr": 123640, + "hash": "cf29fabf53ebb08a83646ee84b75cef9ac120482" + }, + { + "nr": 123345, + "hash": "227578f2de3ac7a12b4ff7ddd2a4d52e9d258e2e" + }, + { + "nr": 122887, + "hash": "e1d42f34ec979ad1b33e3dd912900e653d18a7e9" + }, + { + "nr": 123217, + "hash": "70e2d575405001c6049f7a7c7f33a301a8dd5d4f" + }, + { + "nr": 122475, + "hash": "ac23ad41f1e2670e40533343707b609d4e93c2e0" + }, + { + "nr": 123943, + "hash": "61a27304e9de9a0c0ce65702bf8bd3ee17f0bb38" + }, + { + "nr": 123543, + "hash": "72be83bcdf5098f87dcafcf742f47203c1ba2e3f" + }, + { + "nr": 120111, + "hash": "9d0e30df3b2bb73d3f5917c4df4aad782f8fe0d0" + }, + { + "nr": 123555, + "hash": "cf71800803e72152e94e41dd1bc0846de6ddc59d" + }, + { + "nr": 121778, + "hash": "4e1916fe5320f752ef467200f3ca6408677df447" + }, + { + "nr": 123165, + "hash": "91fa2239ca06775cfaed7c141a239c5863d88a04" + }, + { + "nr": 121512, + "hash": "d5e738b3e3f808e5dd32caa6a7dfe732015b018f" + } + ] } \ No newline at end of file diff --git a/releases/release-1.30/release-notes/sessions/maps-1713210685.json b/releases/release-1.30/release-notes/sessions/maps-1713210685.json index 89e80a6b0b7..b17b8440d93 100644 --- a/releases/release-1.30/release-notes/sessions/maps-1713210685.json +++ b/releases/release-1.30/release-notes/sessions/maps-1713210685.json @@ -1,11 +1,11 @@ -{ - "mail": "faeka6@gmail.com", - "name": "fykaa", - "date": 1713210685, - "prs": [ - { - "nr": 122612, - "hash": "e45243b1402fe03e3e76aaef9a74ed74f6776f4e" - } - ] +{ + "mail": "faeka6@gmail.com", + "name": "fykaa", + "date": 1713210685, + "prs": [ + { + "nr": 122612, + "hash": "e45243b1402fe03e3e76aaef9a74ed74f6776f4e" + } + ] } \ No newline at end of file diff --git a/releases/release-1.30/release-team.md b/releases/release-1.30/release-team.md index 0dd09f18a27..32a36fccba5 100644 --- a/releases/release-1.30/release-team.md +++ b/releases/release-1.30/release-team.md @@ -1,16 +1,16 @@ -# Kubernetes 1.30 Release Team - -| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|---|---|---| -| Release Team Lead | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`) | Frederico Munoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz` ), Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos) / Slack : `@Angelos Kolaitis`), Rodolfo Martinez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `@ramrodo`), Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07) / Slack: `@Sanchita Mishra`) | -| Emeritus Adviser | Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`) | N/A | -| Enhancements | Mohammad Reza Saleh Sedghpour([@salehsedghpour](https://github.com/salehsedghpour) / Slack: `@Mohammad Reza Saleh`) | Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/sreeram-venkitesh) / Slack: `@sreeram.venkitesh`), Nigel Brown ([@pnbrown](https://github.com/pnbrown) / Slack: `@nigel`), Tyler Schade ([@tjons](https://github.com/tjons) / Slack: `@Tyler Schade`), Ana Margarita Medina ([@AnaMMedina21](https://github.com/AnaMMedina21) / Slack: `@Ana Margarita Medina`), Megan Wolf ([@meganwolf0](https://github.com/meganwolf0) / Slack: `@Megan Wolf`), Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@Mickey`) | -| Release Notes | Rashan Smith ([@rashansmith](https://github.com/rashansmith) / Slack: `@Rashan`) | Faeka Ansari ([@fykaa](https://github.com/fykaa) / Slack: `@fyka`), Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova` ), Orlin Vasilev ([@OrlinVasilev](https://github.com/OrlinVasilev) / Slack: `@Orlix` `@OrlinVasilev` ), Satyam Soni ([@satyampsoni](https://github.com/satyampsoni) / Slack: `@satyampsoni`) | -| Communications | Kristin Martin ([@kcmartin](https://github.com/kcmartin) / Slack: `@kcmartin`) | Amit Dsouza ([@checksumz](https://github.com/checksumz) / Slack: `@AmitD` ), Frederick Kautz ([@fkautz](https://github.com/fkautz) / Slack : `@fkautz`), Abigail McCarthy ([@a-mccarthy](https://github.com/a-mccarthy) / Slack: `@abbie`), Natali Vlatko ([@natalisucks](https://github.com/natalisucks) / Slack: `@Natali`) | -| Release Signal | Paco Xu ([@pacoxu](https://github.com/pacoxu) / Slack: `@pacoxu` ), Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav` ) | Anhelina Zelyk ([@zelenushechka](https://github.com/zelenushechka) / Slack: `@Anhelina`), Maryam Tavakkoli ([@MaryamTavakkoli](https://github.com/MaryamTavakkoli) / Slack: `@Maryam Tavakkoli`), Subhasmita Swain ([@subhasmitasw](https://github.com/subhasmitasw) / Slack: `@subhasmita`) | -| Docs | Drew Hagen ([@drewhagen](https://github.com/drewhagen) / Slack: `@Drew Hagen`) | Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav` ), Daniel Chan ([@chanieljdan](https://github.com/chanieljdan) / Slack : `@dchan`), Oluebube Princess Egbuna ([@Princesso](https://github.com/Princesso) / Slack: `@Bube`) | -| Branch Manager | Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@marosset`) | Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@Meha Bhalodiya`) | - -Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.30, once the 1.30 release cycle concludes. +# Kubernetes 1.30 Release Team + +| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|---|---|---| +| Release Team Lead | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`) | Frederico Munoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz` ), Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos) / Slack : `@Angelos Kolaitis`), Rodolfo Martinez Vega ([@ramrodo](https://github.com/ramrodo) / Slack: `@ramrodo`), Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07) / Slack: `@Sanchita Mishra`) | +| Emeritus Adviser | Grace Nguyen ([@gracenng](https://github.com/gracenng) / Slack: `@Grace Nguyen`) | N/A | +| Enhancements | Mohammad Reza Saleh Sedghpour([@salehsedghpour](https://github.com/salehsedghpour) / Slack: `@Mohammad Reza Saleh`) | Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/sreeram-venkitesh) / Slack: `@sreeram.venkitesh`), Nigel Brown ([@pnbrown](https://github.com/pnbrown) / Slack: `@nigel`), Tyler Schade ([@tjons](https://github.com/tjons) / Slack: `@Tyler Schade`), Ana Margarita Medina ([@AnaMMedina21](https://github.com/AnaMMedina21) / Slack: `@Ana Margarita Medina`), Megan Wolf ([@meganwolf0](https://github.com/meganwolf0) / Slack: `@Megan Wolf`), Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@Mickey`) | +| Release Notes | Rashan Smith ([@rashansmith](https://github.com/rashansmith) / Slack: `@Rashan`) | Faeka Ansari ([@fykaa](https://github.com/fykaa) / Slack: `@fyka`), Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova` ), Orlin Vasilev ([@OrlinVasilev](https://github.com/OrlinVasilev) / Slack: `@Orlix` `@OrlinVasilev` ), Satyam Soni ([@satyampsoni](https://github.com/satyampsoni) / Slack: `@satyampsoni`) | +| Communications | Kristin Martin ([@kcmartin](https://github.com/kcmartin) / Slack: `@kcmartin`) | Amit Dsouza ([@checksumz](https://github.com/checksumz) / Slack: `@AmitD` ), Frederick Kautz ([@fkautz](https://github.com/fkautz) / Slack : `@fkautz`), Abigail McCarthy ([@a-mccarthy](https://github.com/a-mccarthy) / Slack: `@abbie`), Natali Vlatko ([@natalisucks](https://github.com/natalisucks) / Slack: `@Natali`) | +| Release Signal | Paco Xu ([@pacoxu](https://github.com/pacoxu) / Slack: `@pacoxu` ), Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav` ) | Anhelina Zelyk ([@zelenushechka](https://github.com/zelenushechka) / Slack: `@Anhelina`), Maryam Tavakkoli ([@MaryamTavakkoli](https://github.com/MaryamTavakkoli) / Slack: `@Maryam Tavakkoli`), Subhasmita Swain ([@subhasmitasw](https://github.com/subhasmitasw) / Slack: `@subhasmita`) | +| Docs | Drew Hagen ([@drewhagen](https://github.com/drewhagen) / Slack: `@Drew Hagen`) | Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav` ), Daniel Chan ([@chanieljdan](https://github.com/chanieljdan) / Slack : `@dchan`), Oluebube Princess Egbuna ([@Princesso](https://github.com/Princesso) / Slack: `@Bube`) | +| Branch Manager | Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@marosset`) | Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@Meha Bhalodiya`) | + +Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.30, once the 1.30 release cycle concludes. diff --git a/releases/release-1.31/README.md b/releases/release-1.31/README.md index ba2b14397c4..dd5fcbbf884 100644 --- a/releases/release-1.31/README.md +++ b/releases/release-1.31/README.md @@ -1,89 +1,88 @@ ---- -title: "Kubernetes 1.31 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.31 - - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.31/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.31/release-team.md) -* [Meeting Minutes](https://bit.ly/k8s131-releasemtg) (members of [release-team@] receive meeting invites) -* [v1.31 Release Calendar](https://bit.ly/k8s-release-cal) -* Contact: [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail -* [Internal Contact Info](https://bit.ly/k8s131-contacts) (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Board](https://bit.ly/k8s131-enhancements) -* [Feature blog Tracking Board](https://github.com/orgs/kubernetes/projects/183/views/6) -* [Bug Triage Tracking Board](https://bit.ly/k8s131-bugtriage) -* [CI Signal Project Board & Issue Tracking](https://bit.ly/k8s131-cisignal) -* [Retrospective Document](https://bit.ly/k8s131-retro) -* [kubernetes/sig-release v1.31 milestone](https://github.com/kubernetes/kubernetes/milestone/64) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## Summary - -The 1.31 release cycle is as follows: - -- **Monday 13th May 2024**: Week 1 — Release cycle begins -- **Thursday 6th June 2024**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) -- **02:00 UTC Friday 14th June 2024 / 19:00 PDT Thursday 13th June 2024**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **02:00 UTC Wednesday 24th July 2024 / 19:00 PDT Tuesday 23rd July 2024**: Week 11 — [Code Freeze](../release_phases.md#code-freeze) -- **02:00 UTC Wednesday 31st July 2024 / 19:00 PDT Tuesday 30th July 2024**: Week 12 — [Test Freeze](../release_phases.md#test-freeze) -- **Tuesday 30th July 2024**: Week 12 — [Docs Freeze](../release_phases.md#docs-freeze) -- **Tuesday 13th August 2024**: Week 14 — Kubernetes v1.31.0 released - -## Timeline - -| **What** | **Who** | **When** | **Week** | **CI Signal** | -| -------------------------------------------------------------------------------------- | ----------------------------- | --------------------------------------------------------------------- | -------- | ------------------------------------------------------ | -| Start of Release Cycle | Lead | Monday 13th May 2024 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Monday 13th May 2024 | week 1 | | -| Schedule finalized | Lead | Friday 17th May 2024 | week 1 | | -| Team finalized | Lead | Friday 17th May 2024 | week 1 | | -| Start Release Notes Draft | Release Notes Lead | Tuesday 28th May 2024 | week 3 | | -| 1.31.0-alpha.1 released | Branch Manager | Tuesday 4th June 2024 | week 4 | | -| Production Readiness Freeze | Enhancements Lead | Thursday 6th June 2024 | week 4 | | -| Begin Friday APAC-friendly meetings | Lead | Wednesday 12th June 2024 | week 5 | | -| **Begin [Enhancements Freeze]** | Enhancements Lead | 02:00 UTC Friday 14th June 2024 / 19:00 PDT Thursday 13th June 2024 | week 5 | [master-blocking], [master-informing] | -| 1.31.0-alpha.2 released | Branch Manager | Tuesday 18th June 2024 | week 6 | | -| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 27th June 2024 | week 7 | | -| **Call for [Exceptions][Exception]** | Lead | Monday 1st July 2024 | week 8 | | -| Brace Yourself, Code Freeze is Coming | Comms / Release Signal | Monday 1st July 2024 | week 8 | | -| 1.31.0-alpha.3 released | Branch Manager | Tuesday 2nd July 2024 | week 8 | | -| **Begin Feature blog freeze** | Comms Lead | 02:00 UTC Wednesday 3rd July 2024 / 19:00 PDT Tuesday 2nd July 2024 | week 8 | | -| **Preparing for Feature blogs review — Initiating outreach** | Comms | Monday 15th July 2024 | week 10 | | -| 1.31.0-beta.0 released | Branch Manager | Tuesday 16th July 2024 | week 10 | | -| Docs deadline — PRs ready for review | Docs Lead | Tuesday 16th July 2024 | week 10 | | -| Deprecations and Removals blog published | Comms | Thursday 18th July 2024 | week 10 | | -| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 22nd July 2024 | week 11 | | -| Major Themes deadline | Comms | Tuesday 23rd July 2024 | week 11 | | -| Start final draft of Release Notes | Release Notes Lead | Tuesday 23rd July 2024 | week 11 | | -| **Begin [Code Freeze]** | Branch Manager | 02:00 UTC Wednesday 24th July 2024 / 19:00 PDT Tuesday 23rd July 2024 | week 11 | | -| Release blog ready to review | Comms / Docs | 02:00 UTC Wednesday 24th July 2024 / 19:00 PDT Tuesday 23rd July 2024 | week 11 | | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Friday 26th July 2024 | week 11 | | -| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 29th July 2024 | week 12 | | -| **[Test Freeze]** | Branch Manager | 01:00 UTC Wednesday 31st July 2024 / 19:00 PDT Tuesday 30th July 2024 | week 12 | | -| release-1.31 branch created | Branch Manager | Tuesday 30th July 2024 | week 12 | | -| release-1.31 jobs created | Branch Manager | Tuesday 30th July 2024 | week 12 | | -| 1.31.0-rc.0 released | Branch Manager | Tuesday 30th July 2024 | week 12 | [1.31-blocking], [master-blocking], [master-informing] | -| **Docs Freeze** | Docs Lead | Tuesday 30th July 2024 | week 12 | | -| Major Themes complete | Release Notes Lead | Tuesday 6th August 2024 | week 13 | | -| 1.31.0-rc.1 released | Branch Manager | Tuesday 6th August 2024 | week 13 | | -| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Release Notes Lead | Tuesday 13th August 2024 | week 14 | | -| **v1.31.0 released** | Branch Manager | Tuesday 13th August 2024 | week 14 | [1.31-blocking], [master-blocking], [master-informing] | -| Release blog published | Comms | Tuesday 13th August 2024 | week 14 | | -| **[Thaw]** | Branch Manager | Tuesday 13th August 2024 | week 14 | | +--- +title: "Kubernetes 1.31 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.31 + + +#### Links + + +* [This document](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.31/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.31/release-team.md) +* [Meeting Minutes](https://bit.ly/k8s131-releasemtg) (members of release-team@ receive meeting invites) +* [v1.31 Release Calendar](https://bit.ly/k8s-release-cal) + +#### Tracking docs + +* [Enhancements Tracking Board](https://bit.ly/k8s131-enhancements) +* [Feature blog Tracking Board](https://github.com/orgs/kubernetes/projects/183/views/6) +* [Bug Triage Tracking Board](https://bit.ly/k8s131-bugtriage) +* [CI Signal Project Board & Issue Tracking](https://bit.ly/k8s131-cisignal) +* [Retrospective Document](https://bit.ly/k8s131-retro) +* [kubernetes/sig-release v1.31 milestone](https://github.com/kubernetes/kubernetes/milestone/64) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## Summary + +The 1.31 release cycle is as follows: + +- **Monday 13th May 2024**: Week 1 — Release cycle begins +- **Thursday 6th June 2024**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) +- **02:00 UTC Friday 14th June 2024 / 19:00 PDT Thursday 13th June 2024**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **02:00 UTC Wednesday 24th July 2024 / 19:00 PDT Tuesday 23rd July 2024**: Week 11 — [Code Freeze](../release_phases.md#code-freeze) +- **02:00 UTC Wednesday 31st July 2024 / 19:00 PDT Tuesday 30th July 2024**: Week 12 — [Test Freeze](../release_phases.md#test-freeze) +- **Tuesday 30th July 2024**: Week 12 — [Docs Freeze](../release_phases.md#docs-freeze) +- **Tuesday 13th August 2024**: Week 14 — Kubernetes v1.31.0 released + +## Timeline + +| **What** | **Who** | **When** | **Week** | **CI Signal** | +| -------------------------------------------------------------------------------------- | ----------------------------- | --------------------------------------------------------------------- | -------- | ------------------------------------------------------ | +| Start of Release Cycle | Lead | Monday 13th May 2024 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Monday 13th May 2024 | week 1 | | +| Schedule finalized | Lead | Friday 17th May 2024 | week 1 | | +| Team finalized | Lead | Friday 17th May 2024 | week 1 | | +| Start Release Notes Draft | Release Notes Lead | Tuesday 28th May 2024 | week 3 | | +| 1.31.0-alpha.1 released | Branch Manager | Tuesday 4th June 2024 | week 4 | | +| Production Readiness Freeze | Enhancements Lead | Thursday 6th June 2024 | week 4 | | +| Begin Friday APAC-friendly meetings | Lead | Wednesday 12th June 2024 | week 5 | | +| **Begin [Enhancements Freeze]** | Enhancements Lead | 02:00 UTC Friday 14th June 2024 / 19:00 PDT Thursday 13th June 2024 | week 5 | [master-blocking], [master-informing] | +| 1.31.0-alpha.2 released | Branch Manager | Tuesday 18th June 2024 | week 6 | | +| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 27th June 2024 | week 7 | | +| **Call for [Exceptions][Exception]** | Lead | Monday 1st July 2024 | week 8 | | +| Brace Yourself, Code Freeze is Coming | Comms / Release Signal | Monday 1st July 2024 | week 8 | | +| 1.31.0-alpha.3 released | Branch Manager | Tuesday 2nd July 2024 | week 8 | | +| **Begin Feature blog freeze** | Comms Lead | 02:00 UTC Wednesday 3rd July 2024 / 19:00 PDT Tuesday 2nd July 2024 | week 8 | | +| **Preparing for Feature blogs review — Initiating outreach** | Comms | Monday 15th July 2024 | week 10 | | +| 1.31.0-beta.0 released | Branch Manager | Tuesday 16th July 2024 | week 10 | | +| Docs deadline — PRs ready for review | Docs Lead | Tuesday 16th July 2024 | week 10 | | +| Deprecations and Removals blog published | Comms | Thursday 18th July 2024 | week 10 | | +| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 22nd July 2024 | week 11 | | +| Major Themes deadline | Comms | Tuesday 23rd July 2024 | week 11 | | +| Start final draft of Release Notes | Release Notes Lead | Tuesday 23rd July 2024 | week 11 | | +| **Begin [Code Freeze]** | Branch Manager | 02:00 UTC Wednesday 24th July 2024 / 19:00 PDT Tuesday 23rd July 2024 | week 11 | | +| Release blog ready to review | Comms / Docs | 02:00 UTC Wednesday 24th July 2024 / 19:00 PDT Tuesday 23rd July 2024 | week 11 | | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Friday 26th July 2024 | week 11 | | +| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 29th July 2024 | week 12 | | +| **[Test Freeze]** | Branch Manager | 01:00 UTC Wednesday 31st July 2024 / 19:00 PDT Tuesday 30th July 2024 | week 12 | | +| release-1.31 branch created | Branch Manager | Tuesday 30th July 2024 | week 12 | | +| release-1.31 jobs created | Branch Manager | Tuesday 30th July 2024 | week 12 | | +| 1.31.0-rc.0 released | Branch Manager | Tuesday 30th July 2024 | week 12 | [1.31-blocking], [master-blocking], [master-informing] | +| **Docs Freeze** | Docs Lead | Tuesday 30th July 2024 | week 12 | | +| Major Themes complete | Release Notes Lead | Tuesday 6th August 2024 | week 13 | | +| 1.31.0-rc.1 released | Branch Manager | Tuesday 6th August 2024 | week 13 | | +| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Release Notes Lead | Tuesday 13th August 2024 | week 14 | | +| **v1.31.0 released** | Branch Manager | Tuesday 13th August 2024 | week 14 | [1.31-blocking], [master-blocking], [master-informing] | +| Release blog published | Comms | Tuesday 13th August 2024 | week 14 | | +| **[Thaw]** | Branch Manager | Tuesday 13th August 2024 | week 14 | | diff --git a/releases/release-1.31/exceptions.yaml b/releases/release-1.31/exceptions.yaml index 5a2657efaeb..795a9104c68 100644 --- a/releases/release-1.31/exceptions.yaml +++ b/releases/release-1.31/exceptions.yaml @@ -1,111 +1,111 @@ -# Exceptions to Code Freeze requested in 1.31 -# Google Group: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown -# Release Team Lead: Angelos Kolaitis (@neoaggelos) - - -# Enhancements Freeze Exceptions requested in 1.31 - -enhancementFreeze: - -- name: "Add a TopologyManager policy option for MaxAllowableNUMANodes" - issue: 4622 - date_requested: 2024-06-13 - date_reviewed: 2024-06-14 - thread: https://groups.google.com/g/kubernetes-sig-release/c/sRbVZntJDis - pull_requests: - - https://github.com/kubernetes/enhancements/pull/4624 - status: "approved" - -- name: "Multiple Service CIDRs" - issue: 1880 - date_requested: 2024-06-15 - date_reviewed: 2024-06-17 - thread: https://groups.google.com/g/kubernetes-sig-release/c/CVCUaMp_5WU - pull_requests: - - https://github.com/kubernetes/enhancements/pull/4645 - status: "approved" - -- name: "VolumeSource: OCI Artifact and/or Image" - issue: 4639 - date_requested: 2024-06-15 - date_reviewed: 2024-06-18 - thread: https://groups.google.com/g/kubernetes-sig-release/c/xuyC0F0hsio - pull_requests: - - https://github.com/kubernetes/enhancements/pull/4642 - status: "approved" - -- name: "Kube-Proxy component configuration graduation" - issue: 784 - date_requested: 2024-06-15 - date_reviewed: 2024-06-18 - thread: https://groups.google.com/g/kubernetes-sig-release/c/Gq7dCxV1IfM - pull_requests: - - https://github.com/kubernetes/enhancements/pull/4732 - status: "approved" - -- name: "Pod Level Resource Specifications" - issue: 2837 - date_requested: 2024-06-18 - date_reviewed: 2024-06-20 - thread: https://groups.google.com/g/kubernetes-sig-release/c/8y4BOM8RoUM - pull_requests: - - https://github.com/kubernetes/enhancements/pull/4678 - status: "rejected" - - -# Code Freeze Exceptions requested in 1.31 -codeFreeze: - -- name: "Consider Terminating Pods in Deployments" - issue: 3973 - date_requested: 2024-07-24 - date_reviewed: 2024-07-28 - thread: https://groups.google.com/g/kubernetes-sig-release/c/SLTNXQvnOtM - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/123430 - status: "rejected" - -- name: "Introduce compatibility version for Kubernetes control-plane upgrades" - issue: 4330 - date_requested: 2024-07-24 - date_reviewed: 2024-07-25 - thread: https://groups.google.com/g/kubernetes-sig-release/c/L6spvI-ddLA - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/125941 - status: "approved" - -- name: "Coordinated Leader Election" - issue: 4355 - date_requested: 2024-07-24 - date_reviewed: 2024-07-25 - thread: https://groups.google.com/a/kubernetes.io/g/release-team/c/BD7sfJavwoQ - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/124012 - status: "approved" - -- name: "Kubelet support for Split Image Filesystem" - issue: 4191 - date_requested: 2024-07-24 - date_reviewed: 2024-07-25 - thread: https://groups.google.com/a/kubernetes.io/g/release-team/c/yEQluTHHuQw - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/126205 - status: "approved" - -- name: "Quotas for Ephemeral Storage" - issue: 1029 - date_requested: 2024-07-25 - date_reviewed: 2024-07-26 - thread: https://groups.google.com/a/kubernetes.io/g/release-team/c/FeJPMwJDtsc - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/126355 - status: "approved" - -- name: "Consistent Reads from Cache" - issue: 2340 - date_requested: 2024-07-26 - date_reviewed: 2024-07-28 - thread: https://groups.google.com/a/kubernetes.io/g/release-team/c/6eJKzUxfNOM - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/126329 +# Exceptions to Code Freeze requested in 1.31 +# Google Group: https://groups.google.com/forum/#!topic/kubernetes-milestone-burndown +# Release Team Lead: Angelos Kolaitis (@neoaggelos) + + +# Enhancements Freeze Exceptions requested in 1.31 + +enhancementFreeze: + +- name: "Add a TopologyManager policy option for MaxAllowableNUMANodes" + issue: 4622 + date_requested: 2024-06-13 + date_reviewed: 2024-06-14 + thread: https://groups.google.com/g/kubernetes-sig-release/c/sRbVZntJDis + pull_requests: + - https://github.com/kubernetes/enhancements/pull/4624 + status: "approved" + +- name: "Multiple Service CIDRs" + issue: 1880 + date_requested: 2024-06-15 + date_reviewed: 2024-06-17 + thread: https://groups.google.com/g/kubernetes-sig-release/c/CVCUaMp_5WU + pull_requests: + - https://github.com/kubernetes/enhancements/pull/4645 + status: "approved" + +- name: "VolumeSource: OCI Artifact and/or Image" + issue: 4639 + date_requested: 2024-06-15 + date_reviewed: 2024-06-18 + thread: https://groups.google.com/g/kubernetes-sig-release/c/xuyC0F0hsio + pull_requests: + - https://github.com/kubernetes/enhancements/pull/4642 + status: "approved" + +- name: "Kube-Proxy component configuration graduation" + issue: 784 + date_requested: 2024-06-15 + date_reviewed: 2024-06-18 + thread: https://groups.google.com/g/kubernetes-sig-release/c/Gq7dCxV1IfM + pull_requests: + - https://github.com/kubernetes/enhancements/pull/4732 + status: "approved" + +- name: "Pod Level Resource Specifications" + issue: 2837 + date_requested: 2024-06-18 + date_reviewed: 2024-06-20 + thread: https://groups.google.com/g/kubernetes-sig-release/c/8y4BOM8RoUM + pull_requests: + - https://github.com/kubernetes/enhancements/pull/4678 + status: "rejected" + + +# Code Freeze Exceptions requested in 1.31 +codeFreeze: + +- name: "Consider Terminating Pods in Deployments" + issue: 3973 + date_requested: 2024-07-24 + date_reviewed: 2024-07-28 + thread: https://groups.google.com/g/kubernetes-sig-release/c/SLTNXQvnOtM + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/123430 + status: "rejected" + +- name: "Introduce compatibility version for Kubernetes control-plane upgrades" + issue: 4330 + date_requested: 2024-07-24 + date_reviewed: 2024-07-25 + thread: https://groups.google.com/g/kubernetes-sig-release/c/L6spvI-ddLA + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/125941 + status: "approved" + +- name: "Coordinated Leader Election" + issue: 4355 + date_requested: 2024-07-24 + date_reviewed: 2024-07-25 + thread: https://groups.google.com/a/kubernetes.io/g/release-team/c/BD7sfJavwoQ + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/124012 + status: "approved" + +- name: "Kubelet support for Split Image Filesystem" + issue: 4191 + date_requested: 2024-07-24 + date_reviewed: 2024-07-25 + thread: https://groups.google.com/a/kubernetes.io/g/release-team/c/yEQluTHHuQw + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/126205 + status: "approved" + +- name: "Quotas for Ephemeral Storage" + issue: 1029 + date_requested: 2024-07-25 + date_reviewed: 2024-07-26 + thread: https://groups.google.com/a/kubernetes.io/g/release-team/c/FeJPMwJDtsc + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/126355 + status: "approved" + +- name: "Consistent Reads from Cache" + issue: 2340 + date_requested: 2024-07-26 + date_reviewed: 2024-07-28 + thread: https://groups.google.com/a/kubernetes.io/g/release-team/c/6eJKzUxfNOM + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/126329 status: "approved" \ No newline at end of file diff --git a/releases/release-1.31/release-notes/README.md b/releases/release-1.31/release-notes/README.md index 060c16a0886..827fa8942b0 100644 --- a/releases/release-1.31/release-notes/README.md +++ b/releases/release-1.31/release-notes/README.md @@ -1,15 +1,15 @@ -### Release Notes Milestones - -This is the internal schedule for the Release Notes team to follow for creating Release Notes PRs. This is based on the -[v1.31 release](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.31) timeline. - -| **Release** | **Week** | **Branch Created Day** | **PR merge deadline** | -|------------------------------------|----------|-------------------------|--------------------------| -| 1.31.0-alpha.1 released | week 4 | Tuesday 4th June 2024 | Tuesday 11th June 2024 | -| 1.31.0-alpha.2 released | week 6 | Tuesday 18th June 2024 | Tuesday 25th June 2024 | -| 1.31.0-alpha.3 released | week 8 | Tuesday 2nd July 2024 | Tuesday 13th July 2024 | -| 1.31.0-beta.0 released | week 10 | Tuesday 16th July 2024 | Tuesday 23rd July 2024 | -| Start final draft of Release Notes | week 11 | Tuesday 23rd July 2024 | Tuesday 13th August 2024 | -| 1.31.0-rc.0 released | week 12 | Tuesday 30th July 2024 | Tuesday 6th August 2024 | -| 1.31.0-rc.1 released | week 13 | Tuesday 6th August 2024 | Tuesday 13th August 2024 | - +### Release Notes Milestones + +This is the internal schedule for the Release Notes team to follow for creating Release Notes PRs. This is based on the +[v1.31 release](https://github.com/kubernetes/sig-release/tree/master/releases/release-1.31) timeline. + +| **Release** | **Week** | **Branch Created Day** | **PR merge deadline** | +|------------------------------------|----------|-------------------------|--------------------------| +| 1.31.0-alpha.1 released | week 4 | Tuesday 4th June 2024 | Tuesday 11th June 2024 | +| 1.31.0-alpha.2 released | week 6 | Tuesday 18th June 2024 | Tuesday 25th June 2024 | +| 1.31.0-alpha.3 released | week 8 | Tuesday 2nd July 2024 | Tuesday 13th July 2024 | +| 1.31.0-beta.0 released | week 10 | Tuesday 16th July 2024 | Tuesday 23rd July 2024 | +| Start final draft of Release Notes | week 11 | Tuesday 23rd July 2024 | Tuesday 13th August 2024 | +| 1.31.0-rc.0 released | week 12 | Tuesday 30th July 2024 | Tuesday 6th August 2024 | +| 1.31.0-rc.1 released | week 13 | Tuesday 6th August 2024 | Tuesday 13th August 2024 | + diff --git a/releases/release-1.31/release-notes/maps/pr-109939-map.yaml b/releases/release-1.31/release-notes/maps/pr-109939-map.yaml index 43f9f861aa9..44884dd3014 100644 --- a/releases/release-1.31/release-notes/maps/pr-109939-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-109939-map.yaml @@ -1,7 +1,7 @@ -pr: 109939 -releasenote: - text: |- - Added support for building Windows kube-proxy container image. - A container image for kube-proxy on Windows can now be built with the command - `make release-images KUBE_BUILD_WINDOWS=y`. - The Windows kube-proxy image can be used with Windows Host Process Containers. +pr: 109939 +releasenote: + text: |- + Added support for building Windows kube-proxy container image. + A container image for kube-proxy on Windows can now be built with the command + `make release-images KUBE_BUILD_WINDOWS=y`. + The Windows kube-proxy image can be used with Windows Host Process Containers. diff --git a/releases/release-1.31/release-notes/maps/pr-112104-map.yaml b/releases/release-1.31/release-notes/maps/pr-112104-map.yaml index 3c9e0c5b1a0..21113294aa4 100644 --- a/releases/release-1.31/release-notes/maps/pr-112104-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-112104-map.yaml @@ -1,5 +1,5 @@ -pr: 112104 -releasenote: - text: Fixed EDITOR/KUBE_EDITOR with double-quoted paths with spaces when on Windows - cmd.exe. -pr_body: "" +pr: 112104 +releasenote: + text: Fixed EDITOR/KUBE_EDITOR with double-quoted paths with spaces when on Windows + cmd.exe. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-117842-map.yaml b/releases/release-1.31/release-notes/maps/pr-117842-map.yaml index 810b927cf9c..108e1b4ca08 100644 --- a/releases/release-1.31/release-notes/maps/pr-117842-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-117842-map.yaml @@ -1,8 +1,8 @@ -pr: 117842 -releasenote: - text: |- - Supported fine-grained supplemental groups policy (KEP-3619), which enabled - fine-grained control for supplementary groups in the first container processes. - This allows you to choose whether to include groups defined in the container image (/etc/groups) - for the container's primary UID or not. -pr_body: "" +pr: 117842 +releasenote: + text: |- + Supported fine-grained supplemental groups policy (KEP-3619), which enabled + fine-grained control for supplementary groups in the first container processes. + This allows you to choose whether to include groups defined in the container image (/etc/groups) + for the container's primary UID or not. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-118148-map.yaml b/releases/release-1.31/release-notes/maps/pr-118148-map.yaml index 9f1f4da183e..b49f35801f9 100644 --- a/releases/release-1.31/release-notes/maps/pr-118148-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-118148-map.yaml @@ -1,5 +1,5 @@ -pr: 118148 -releasenote: - text: Exposed the kube-scheduler "/livez" and "/readz" endpoints for health checks - that are in compliance with https://kubernetes.io/docs/reference/using-api/health-checks/#api-endpoints-for-health. -pr_body: "" +pr: 118148 +releasenote: + text: Exposed the kube-scheduler "/livez" and "/readz" endpoints for health checks + that are in compliance with https://kubernetes.io/docs/reference/using-api/health-checks/#api-endpoints-for-health. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-119589-map.yaml b/releases/release-1.31/release-notes/maps/pr-119589-map.yaml index 2935aebe4d4..a61040e6d61 100644 --- a/releases/release-1.31/release-notes/maps/pr-119589-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-119589-map.yaml @@ -1,6 +1,6 @@ -pr: 119589 -releasenote: - text: |- - Added kubectl support for: - - kubectl create secret docker-registry <NAME> --from-file=<path/to/.docker/config.json> - - kubectl create secret docker-registry <NAME> --from-file=.dockerconfigjson=<path/to/.docker/config.json> +pr: 119589 +releasenote: + text: |- + Added kubectl support for: + - kubectl create secret docker-registry <NAME> --from-file=<path/to/.docker/config.json> + - kubectl create secret docker-registry <NAME> --from-file=.dockerconfigjson=<path/to/.docker/config.json> diff --git a/releases/release-1.31/release-notes/maps/pr-120611-map.yaml b/releases/release-1.31/release-notes/maps/pr-120611-map.yaml index 32d47580489..c6adee9908d 100644 --- a/releases/release-1.31/release-notes/maps/pr-120611-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-120611-map.yaml @@ -1,6 +1,6 @@ -pr: 120611 -releasenote: - text: 'Dynamic Resource Allocation (DRA): Added a feature so the number of ResourceClaim objects can be limited - per namespace and by the number of devices requested through a specific class - via the v1.ResourceQuota mechanism.' -pr_body: "" +pr: 120611 +releasenote: + text: 'Dynamic Resource Allocation (DRA): Added a feature so the number of ResourceClaim objects can be limited + per namespace and by the number of devices requested through a specific class + via the v1.ResourceQuota mechanism.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-120696-map.yaml b/releases/release-1.31/release-notes/maps/pr-120696-map.yaml index 0f63c39d6e9..26c27495a6d 100644 --- a/releases/release-1.31/release-notes/maps/pr-120696-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-120696-map.yaml @@ -1,5 +1,5 @@ -pr: 120696 -releasenote: - text: 'component-base/logs: when compiled with Go >= 1.21, component-base will automatically - configure the slog default logger together with initializing klog.' -pr_body: "" +pr: 120696 +releasenote: + text: 'component-base/logs: when compiled with Go >= 1.21, component-base will automatically + configure the slog default logger together with initializing klog.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-121508-map.yaml b/releases/release-1.31/release-notes/maps/pr-121508-map.yaml index d448efa9e47..a325f476ccc 100644 --- a/releases/release-1.31/release-notes/maps/pr-121508-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-121508-map.yaml @@ -1,6 +1,6 @@ -pr: 121508 -releasenote: - text: |- - kube-scheduler implemented scheduling hints for the CSILimit plugin. - The scheduling hints allow the scheduler to retry scheduling a Pod that was previously rejected by the CSILimit plugin if a deleted pod has a PersistantVolumeClaim (PVC) from the same driver. -pr_body: "" +pr: 121508 +releasenote: + text: |- + kube-scheduler implemented scheduling hints for the CSILimit plugin. + The scheduling hints allow the scheduler to retry scheduling a Pod that was previously rejected by the CSILimit plugin if a deleted pod has a PersistantVolumeClaim (PVC) from the same driver. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-121770-map.yaml b/releases/release-1.31/release-notes/maps/pr-121770-map.yaml index 5f15046f485..a3d3ab6a47e 100644 --- a/releases/release-1.31/release-notes/maps/pr-121770-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-121770-map.yaml @@ -1,7 +1,7 @@ -pr: 121770 -releasenote: - text: |- - This PR added tracing support to the kubelet's read-only endpoint, which currently - does not have tracing. It makes use of the `WithPublicEndpoint` option to prevent callers - from influencing sampling decisions. -pr_body: "" +pr: 121770 +releasenote: + text: |- + This PR added tracing support to the kubelet's read-only endpoint, which currently + does not have tracing. It makes use of the `WithPublicEndpoint` option to prevent callers + from influencing sampling decisions. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-121970-map.yaml b/releases/release-1.31/release-notes/maps/pr-121970-map.yaml index e84a8bf8bd4..828a279d378 100644 --- a/releases/release-1.31/release-notes/maps/pr-121970-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-121970-map.yaml @@ -1,6 +1,6 @@ -pr: 121970 -releasenote: - text: 'k8s.io/apimachinery/pkg/util/runtime: Added support for new calls to handle panics and - errors in the context where they occur. `PanicHandlers` and `ErrorHandlers` now - must accept a context parameter for that. Log output is structured instead of - unstructured.' +pr: 121970 +releasenote: + text: 'k8s.io/apimachinery/pkg/util/runtime: Added support for new calls to handle panics and + errors in the context where they occur. `PanicHandlers` and `ErrorHandlers` now + must accept a context parameter for that. Log output is structured instead of + unstructured.' diff --git a/releases/release-1.31/release-notes/maps/pr-122025-map.yaml b/releases/release-1.31/release-notes/maps/pr-122025-map.yaml index 585f07f3606..a8f0a4ca263 100644 --- a/releases/release-1.31/release-notes/maps/pr-122025-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122025-map.yaml @@ -1,4 +1,4 @@ -pr: 122025 -releasenote: - text: "`lastSuccessfullTime` in cronjobs will now be set reliably." -pr_body: "" +pr: 122025 +releasenote: + text: "`lastSuccessfullTime` in cronjobs will now be set reliably." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-122038-map.yaml b/releases/release-1.31/release-notes/maps/pr-122038-map.yaml index 3cde070efaf..4bd3c0083bf 100644 --- a/releases/release-1.31/release-notes/maps/pr-122038-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122038-map.yaml @@ -1,4 +1,4 @@ -pr: 122038 -releasenote: - text: 'kubectl: Show the Pod phase in the STATUS column as ''Failed'' or ''Succeeded'' - when the Pod is terminated' +pr: 122038 +releasenote: + text: 'kubectl: Show the Pod phase in the STATUS column as ''Failed'' or ''Succeeded'' + when the Pod is terminated' diff --git a/releases/release-1.31/release-notes/maps/pr-122047-map.yaml b/releases/release-1.31/release-notes/maps/pr-122047-map.yaml index 25f23037043..98b53e281df 100644 --- a/releases/release-1.31/release-notes/maps/pr-122047-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122047-map.yaml @@ -1,8 +1,8 @@ -pr: 122047 -releasenote: - text: 'KEP-1880: Users of the new feature to add multiple service CIDR will use - by default a dual-write strategy on the new ClusterIP allocators to avoid the - problem of possible duplicate IPs allocated to Services when running skewed kube-apiservers - using different allocators. They can opt-out of this behavior by enabled the feature - gate DisableAllocatorDualWrite.' -pr_body: "" +pr: 122047 +releasenote: + text: 'KEP-1880: Users of the new feature to add multiple service CIDR will use + by default a dual-write strategy on the new ClusterIP allocators to avoid the + problem of possible duplicate IPs allocated to Services when running skewed kube-apiservers + using different allocators. They can opt-out of this behavior by enabled the feature + gate DisableAllocatorDualWrite.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-122082-map.yaml b/releases/release-1.31/release-notes/maps/pr-122082-map.yaml index b851512d890..ca5f3792cda 100644 --- a/releases/release-1.31/release-notes/maps/pr-122082-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122082-map.yaml @@ -1,4 +1,4 @@ -pr: 122082 -releasenote: - text: Kubelet flag `--keep-terminated-pod-volumes` was removed. This flag was deprecated - in 2017. +pr: 122082 +releasenote: + text: Kubelet flag `--keep-terminated-pod-volumes` was removed. This flag was deprecated + in 2017. diff --git a/releases/release-1.31/release-notes/maps/pr-122176-map.yaml b/releases/release-1.31/release-notes/maps/pr-122176-map.yaml index 7ecf75e9118..a9d4ef2ecf9 100644 --- a/releases/release-1.31/release-notes/maps/pr-122176-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122176-map.yaml @@ -1,4 +1,4 @@ -pr: 122176 -releasenote: - text: | - kube-apiserver: Added support to disable http/2 serving with a `--disable-http2-serving` flag. +pr: 122176 +releasenote: + text: | + kube-apiserver: Added support to disable http/2 serving with a `--disable-http2-serving` flag. diff --git a/releases/release-1.31/release-notes/maps/pr-122234-map.yaml b/releases/release-1.31/release-notes/maps/pr-122234-map.yaml index 6ec23deef5a..aa9f6ef4a81 100644 --- a/releases/release-1.31/release-notes/maps/pr-122234-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122234-map.yaml @@ -1,18 +1,18 @@ -pr: 122234 -releasenote: - text: "Added support to the scheduler to start using QueueingHint registered for Pod/Updated event - to determine whether unschedulable Pods update make them schedulable, when the - feature gate `SchedulerQueueingHints` is enabled.\nPreviously, when unschedulable - Pods are updated, the scheduler always put Pods back to activeQ/backoffQ. But, - actually not all updates to Pods make Pods schedulable, especially considering - many scheduling constraints nowadays are immutable.\nNow, when unschedulable Pods - are updated, the scheduling queue checks with QueueingHint(s) whether the update - may make the pods schedulable, and requeues them to activeQ/backoffQ **only when** - at least one QueueingHint(s) return Queue. \n\nAction required for custom scheduler - plugin developers:\nPlugins **have to** implement a QueueingHint for Pod/Update - event if the rejection from them could be resolved by updating unscheduled Pods - themselves.\nExample: suppose you develop a custom plugin that denies Pods that - have a `schedulable=false` label. \nGiven Pods with a `schedulable=false` label - will be schedulable if the `schedulable=false` label is removed, this plugin would - implement QueueingHint for Pod/Update event that returns Queue when such label - changes are made in unscheduled Pods." +pr: 122234 +releasenote: + text: "Added support to the scheduler to start using QueueingHint registered for Pod/Updated event + to determine whether unschedulable Pods update make them schedulable, when the + feature gate `SchedulerQueueingHints` is enabled.\nPreviously, when unschedulable + Pods are updated, the scheduler always put Pods back to activeQ/backoffQ. But, + actually not all updates to Pods make Pods schedulable, especially considering + many scheduling constraints nowadays are immutable.\nNow, when unschedulable Pods + are updated, the scheduling queue checks with QueueingHint(s) whether the update + may make the pods schedulable, and requeues them to activeQ/backoffQ **only when** + at least one QueueingHint(s) return Queue. \n\nAction required for custom scheduler + plugin developers:\nPlugins **have to** implement a QueueingHint for Pod/Update + event if the rejection from them could be resolved by updating unscheduled Pods + themselves.\nExample: suppose you develop a custom plugin that denies Pods that + have a `schedulable=false` label. \nGiven Pods with a `schedulable=false` label + will be schedulable if the `schedulable=false` label is removed, this plugin would + implement QueueingHint for Pod/Update event that returns Queue when such label + changes are made in unscheduled Pods." diff --git a/releases/release-1.31/release-notes/maps/pr-122363-map.yaml b/releases/release-1.31/release-notes/maps/pr-122363-map.yaml index ba2c101c4d0..984ee35f67b 100644 --- a/releases/release-1.31/release-notes/maps/pr-122363-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122363-map.yaml @@ -1,4 +1,4 @@ -pr: 122363 -releasenote: - text: Removed Kubelet flags `--iptables-masquerade-bit` and `--iptables-drop-bit` as they were deprecated in v1.28. - in v1.28 and have now been removed entirely. +pr: 122363 +releasenote: + text: Removed Kubelet flags `--iptables-masquerade-bit` and `--iptables-drop-bit` as they were deprecated in v1.28. + in v1.28 and have now been removed entirely. diff --git a/releases/release-1.31/release-notes/maps/pr-122471-map.yaml b/releases/release-1.31/release-notes/maps/pr-122471-map.yaml index 39406f7f897..3ea000e964f 100644 --- a/releases/release-1.31/release-notes/maps/pr-122471-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122471-map.yaml @@ -1,7 +1,7 @@ -pr: 122471 -releasenote: - text: |- - The kube-scheduler added scheduling hints for the InterPodAffinity plugin. - These hints allow the scheduler to retry scheduling a Pod - that was previously rejected by the InterPodAffinity plugin if there are changes (create, delete, or update) to a related Pod or a node that matches the pod affinity criteria. -pr_body: "" +pr: 122471 +releasenote: + text: |- + The kube-scheduler added scheduling hints for the InterPodAffinity plugin. + These hints allow the scheduler to retry scheduling a Pod + that was previously rejected by the InterPodAffinity plugin if there are changes (create, delete, or update) to a related Pod or a node that matches the pod affinity criteria. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-122499-map.yaml b/releases/release-1.31/release-notes/maps/pr-122499-map.yaml index 5b3c65701da..1637f85d21e 100644 --- a/releases/release-1.31/release-notes/maps/pr-122499-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122499-map.yaml @@ -1,4 +1,4 @@ -pr: 122499 -releasenote: - text: StatefulSet autodelete respected controlling owners on PVC claims as described - in https://github.com/kubernetes/enhancements/pull/4375. +pr: 122499 +releasenote: + text: StatefulSet autodelete respected controlling owners on PVC claims as described + in https://github.com/kubernetes/enhancements/pull/4375. diff --git a/releases/release-1.31/release-notes/maps/pr-122628-map.yaml b/releases/release-1.31/release-notes/maps/pr-122628-map.yaml index 944549c581c..4689c4a40be 100644 --- a/releases/release-1.31/release-notes/maps/pr-122628-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122628-map.yaml @@ -1,5 +1,5 @@ -pr: 122628 -releasenote: - text: Implemented new cluster events UpdatePodScaleDown and UpdatePodLabel for scheduler - plugins. -pr_body: "" +pr: 122628 +releasenote: + text: Implemented new cluster events UpdatePodScaleDown and UpdatePodLabel for scheduler + plugins. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-122636-map.yaml b/releases/release-1.31/release-notes/maps/pr-122636-map.yaml index ced8e857e72..98620064d74 100644 --- a/releases/release-1.31/release-notes/maps/pr-122636-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122636-map.yaml @@ -1,4 +1,4 @@ -pr: 122636 -releasenote: - text: Fixed null `lastTransitionTime` in Pod condition when setting the scheduling gate. -pr_body: "" +pr: 122636 +releasenote: + text: Fixed null `lastTransitionTime` in Pod condition when setting the scheduling gate. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-122657-map.yaml b/releases/release-1.31/release-notes/maps/pr-122657-map.yaml index 0b26f05dc0c..7df4aa41c7c 100644 --- a/releases/release-1.31/release-notes/maps/pr-122657-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122657-map.yaml @@ -1,7 +1,7 @@ -pr: 122657 -releasenote: - text: |- - Added the `WatchList` method to the `rest client` in `client-go`. When used, - it establishes a stream to obtain a consistent snapshot of data from the server. - This method is meant to be used by the generated client. -pr_body: "" +pr: 122657 +releasenote: + text: |- + Added the `WatchList` method to the `rest client` in `client-go`. When used, + it establishes a stream to obtain a consistent snapshot of data from the server. + This method is meant to be used by the generated client. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-122791-map.yaml b/releases/release-1.31/release-notes/maps/pr-122791-map.yaml index 0f59b29cd6b..83bc3a557df 100644 --- a/releases/release-1.31/release-notes/maps/pr-122791-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122791-map.yaml @@ -1,6 +1,6 @@ -pr: 122791 -releasenote: - text: |- - Removed `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environment variable from the reflector. - To activate the feature set `KUBE_FEATURE_WatchListClient` environment variable or a corresponding command line option (this works only with binaries that explicitly expose it). -pr_body: "" +pr: 122791 +releasenote: + text: |- + Removed `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environment variable from the reflector. + To activate the feature set `KUBE_FEATURE_WatchListClient` environment variable or a corresponding command line option (this works only with binaries that explicitly expose it). +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-122812-map.yaml b/releases/release-1.31/release-notes/maps/pr-122812-map.yaml index 2960f535ce2..d8c7543c16b 100644 --- a/releases/release-1.31/release-notes/maps/pr-122812-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122812-map.yaml @@ -1,6 +1,6 @@ -pr: 122812 -releasenote: - text: Added support for kube-proxy iptables mode to track packets that were wrongfully - marked invalid by conntrack and subsequently dropped by introducing `kubeproxy_iptables_ct_state_invalid_dropped_packets_total` - metric. -pr_body: "" +pr: 122812 +releasenote: + text: Added support for kube-proxy iptables mode to track packets that were wrongfully + marked invalid by conntrack and subsequently dropped by introducing `kubeproxy_iptables_ct_state_invalid_dropped_packets_total` + metric. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-122892-map.yaml b/releases/release-1.31/release-notes/maps/pr-122892-map.yaml index 24d72a05972..f18a7caac6a 100644 --- a/releases/release-1.31/release-notes/maps/pr-122892-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122892-map.yaml @@ -1,9 +1,9 @@ -pr: 122892 -releasenote: - text: |- - The "fake" clients generated by `client-gen` now have the same semantics on - error as the real clients; in particular, a failed Get(), Create(), etc, no longer - returns `nil`. (It now returns a pointer to a zero-valued object, like the real - clients do.) This will break some downstream unit tests that were testing - `result == nil` rather than `err != nil`, and in some cases may expose bugs - in the underlying code that were hidden by the incorrect unit tests. +pr: 122892 +releasenote: + text: |- + The "fake" clients generated by `client-gen` now have the same semantics on + error as the real clients; in particular, a failed Get(), Create(), etc, no longer + returns `nil`. (It now returns a pointer to a zero-valued object, like the real + clients do.) This will break some downstream unit tests that were testing + `result == nil` rather than `err != nil`, and in some cases may expose bugs + in the underlying code that were hidden by the incorrect unit tests. diff --git a/releases/release-1.31/release-notes/maps/pr-122979-map.yaml b/releases/release-1.31/release-notes/maps/pr-122979-map.yaml index c350403022b..f892fd61fd9 100644 --- a/releases/release-1.31/release-notes/maps/pr-122979-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-122979-map.yaml @@ -1,3 +1,3 @@ -pr: 122979 -releasenote: - text: Migrated the pkg/proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). +pr: 122979 +releasenote: + text: Migrated the pkg/proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). diff --git a/releases/release-1.31/release-notes/maps/pr-123102-map.yaml b/releases/release-1.31/release-notes/maps/pr-123102-map.yaml index 5eb668ef122..84f1f582c26 100644 --- a/releases/release-1.31/release-notes/maps/pr-123102-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123102-map.yaml @@ -1,7 +1,7 @@ -pr: 123102 -releasenote: - text: 'kubeadm: during the validation of existing kubeconfig files on disk, handle - cases where the "ca.crt" is a bundle and has intermediate certificates. Find a - common trust anchor between the "ca.crt" bundle and the CA in the existing kubeconfig - on disk instead of treating "ca.crt" as a file containing a single CA.' -pr_body: "" +pr: 123102 +releasenote: + text: 'kubeadm: during the validation of existing kubeconfig files on disk, handle + cases where the "ca.crt" is a bundle and has intermediate certificates. Find a + common trust anchor between the "ca.crt" bundle and the CA in the existing kubeconfig + on disk instead of treating "ca.crt" as a file containing a single CA.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-123105-map.yaml b/releases/release-1.31/release-notes/maps/pr-123105-map.yaml index 2cf9cb3b62c..cab51513881 100644 --- a/releases/release-1.31/release-notes/maps/pr-123105-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123105-map.yaml @@ -1,11 +1,11 @@ -pr: 123105 -releasenote: - text: |- - Added support to the kube-proxy nodePortAddresses / --nodeport-addresses option to - accept the value "primary", meaning to only listen for NodePort connections - on the node's primary IPv4 and/or IPv6 address (according to the Node object). - This is strongly recommended, if you were not previously using - --nodeport-addresses, to avoid surprising behavior. - (This behavior is enabled by default with the nftables backend; you would - need to explicitly request `--nodeport-addresses 0.0.0.0/0,::/0` there to get - the traditional "listen on all interfaces" behavior.) +pr: 123105 +releasenote: + text: |- + Added support to the kube-proxy nodePortAddresses / --nodeport-addresses option to + accept the value "primary", meaning to only listen for NodePort connections + on the node's primary IPv4 and/or IPv6 address (according to the Node object). + This is strongly recommended, if you were not previously using + --nodeport-addresses, to avoid surprising behavior. + (This behavior is enabled by default with the nftables backend; you would + need to explicitly request `--nodeport-addresses 0.0.0.0/0,::/0` there to get + the traditional "listen on all interfaces" behavior.) diff --git a/releases/release-1.31/release-notes/maps/pr-123149-map.yaml b/releases/release-1.31/release-notes/maps/pr-123149-map.yaml index d2fb3685944..cf2602e8044 100644 --- a/releases/release-1.31/release-notes/maps/pr-123149-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123149-map.yaml @@ -1,6 +1,6 @@ -pr: 123149 -releasenote: - text: |- - Added `--keep-*` flags to `kubectl debug`, which enables to control the removal - of probes, labels, annotations and initContainers from copy pod. -pr_body: "" +pr: 123149 +releasenote: + text: |- + Added `--keep-*` flags to `kubectl debug`, which enables to control the removal + of probes, labels, annotations and initContainers from copy pod. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-123233-map.yaml b/releases/release-1.31/release-notes/maps/pr-123233-map.yaml index adfdc07c3db..adc76eea474 100644 --- a/releases/release-1.31/release-notes/maps/pr-123233-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123233-map.yaml @@ -1,4 +1,4 @@ -pr: 123233 -releasenote: - text: Ensured daemonset controller counts old unhealthy pods towards max unavailable - budget. +pr: 123233 +releasenote: + text: Ensured daemonset controller counts old unhealthy pods towards max unavailable + budget. diff --git a/releases/release-1.31/release-notes/maps/pr-123315-map.yaml b/releases/release-1.31/release-notes/maps/pr-123315-map.yaml index dfee12f0fe3..791faddcb20 100644 --- a/releases/release-1.31/release-notes/maps/pr-123315-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123315-map.yaml @@ -1,4 +1,4 @@ -pr: 123315 -releasenote: - text: Graduated support for Container Device Interface (CDI) device IDs to general availability. The `DevicePluginCDIDevices` - feature gate is now enabled unconditionally. +pr: 123315 +releasenote: + text: Graduated support for Container Device Interface (CDI) device IDs to general availability. The `DevicePluginCDIDevices` + feature gate is now enabled unconditionally. diff --git a/releases/release-1.31/release-notes/maps/pr-123316-map.yaml b/releases/release-1.31/release-notes/maps/pr-123316-map.yaml index 5022fa1d038..2ab3eccbf04 100644 --- a/releases/release-1.31/release-notes/maps/pr-123316-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123316-map.yaml @@ -1,5 +1,5 @@ -pr: 123316 -releasenote: - text: |- - Fixed a bug where `kubectl describe` incorrectly displayed NetworkPolicy port ranges - (showing only the starting port). +pr: 123316 +releasenote: + text: |- + Fixed a bug where `kubectl describe` incorrectly displayed NetworkPolicy port ranges + (showing only the starting port). diff --git a/releases/release-1.31/release-notes/maps/pr-123398-map.yaml b/releases/release-1.31/release-notes/maps/pr-123398-map.yaml index b83b5c830e4..7a113aac4fc 100644 --- a/releases/release-1.31/release-notes/maps/pr-123398-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123398-map.yaml @@ -1,5 +1,5 @@ -pr: 123398 -releasenote: - text: Kubelet is no longer able to recover from device manager state file older - than 1.20. If the proper recommended upgrade flow is followed, there should be - no issue. +pr: 123398 +releasenote: + text: Kubelet is no longer able to recover from device manager state file older + than 1.20. If the proper recommended upgrade flow is followed, there should be + no issue. diff --git a/releases/release-1.31/release-notes/maps/pr-123428-map.yaml b/releases/release-1.31/release-notes/maps/pr-123428-map.yaml index c30ec183c05..d4bf8a5ab2d 100644 --- a/releases/release-1.31/release-notes/maps/pr-123428-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123428-map.yaml @@ -1,6 +1,6 @@ -pr: 123428 -releasenote: - text: The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated - to GA. This field may be set to `AlwaysAllow` to always allow unhealthy pods covered - by the PodDisruptionBudget to be evicted. -pr_body: "" +pr: 123428 +releasenote: + text: The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated + to GA. This field may be set to `AlwaysAllow` to always allow unhealthy pods covered + by the PodDisruptionBudget to be evicted. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-123513-map.yaml b/releases/release-1.31/release-notes/maps/pr-123513-map.yaml index 9a48c3bddd4..4a90c860492 100644 --- a/releases/release-1.31/release-notes/maps/pr-123513-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123513-map.yaml @@ -1,4 +1,4 @@ -pr: 123513 -releasenote: - text: Moved `ConsistentListFromCache` feature flag to beta and enabled it by default. -pr_body: "" +pr: 123513 +releasenote: + text: Moved `ConsistentListFromCache` feature flag to beta and enabled it by default. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-123545-map.yaml b/releases/release-1.31/release-notes/maps/pr-123545-map.yaml index 2d5472923b2..31db94d4511 100644 --- a/releases/release-1.31/release-notes/maps/pr-123545-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123545-map.yaml @@ -1,5 +1,5 @@ -pr: 123545 -releasenote: - text: Updated description of default values for `--healthz-bind-address` and `--metrics-bind-address` - parameters. -pr_body: "" +pr: 123545 +releasenote: + text: Updated description of default values for `--healthz-bind-address` and `--metrics-bind-address` + parameters. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-123572-map.yaml b/releases/release-1.31/release-notes/maps/pr-123572-map.yaml index 749a1948cb5..4a6112871f4 100644 --- a/releases/release-1.31/release-notes/maps/pr-123572-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123572-map.yaml @@ -1,4 +1,4 @@ -pr: 123572 -releasenote: - text: 'CEL: Added name formats library.' -pr_body: "" +pr: 123572 +releasenote: + text: 'CEL: Added name formats library.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-123587-map.yaml b/releases/release-1.31/release-notes/maps/pr-123587-map.yaml index d4c627d4e85..8ca176bdec7 100644 --- a/releases/release-1.31/release-notes/maps/pr-123587-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123587-map.yaml @@ -1,4 +1,4 @@ -pr: 123587 -releasenote: - text: Fixed "-kube-test-repo-list" e2e flag may not take effect. -pr_body: "" +pr: 123587 +releasenote: + text: Fixed "-kube-test-repo-list" e2e flag may not take effect. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-123597-map.yaml b/releases/release-1.31/release-notes/maps/pr-123597-map.yaml index 05ffe2ce84f..761b0f6769b 100644 --- a/releases/release-1.31/release-notes/maps/pr-123597-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123597-map.yaml @@ -1,4 +1,4 @@ -pr: 123597 -releasenote: - text: Added an extra line between two different key value pairs under data when - running `kubectl describe configmap`. +pr: 123597 +releasenote: + text: Added an extra line between two different key value pairs under data when + running `kubectl describe configmap`. diff --git a/releases/release-1.31/release-notes/maps/pr-123620-map.yaml b/releases/release-1.31/release-notes/maps/pr-123620-map.yaml index 2b69e085025..94714bd773b 100644 --- a/releases/release-1.31/release-notes/maps/pr-123620-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123620-map.yaml @@ -1,4 +1,4 @@ -pr: 123620 -releasenote: - text: Fixed a bug in the JSON frame reader that could cause it to retain a reference - to the underlying array of the byte slice passed to read. +pr: 123620 +releasenote: + text: Fixed a bug in the JSON frame reader that could cause it to retain a reference + to the underlying array of the byte slice passed to read. diff --git a/releases/release-1.31/release-notes/maps/pr-123638-map.yaml b/releases/release-1.31/release-notes/maps/pr-123638-map.yaml index 6b35173786c..fdcc89f5202 100644 --- a/releases/release-1.31/release-notes/maps/pr-123638-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123638-map.yaml @@ -1,5 +1,5 @@ -pr: 123638 -releasenote: - text: Graduated MatchLabelKeys/MismatchLabelKeys feature in PodAffinity/PodAntiAffinity - to Beta. -pr_body: "" +pr: 123638 +releasenote: + text: Graduated MatchLabelKeys/MismatchLabelKeys feature in PodAffinity/PodAntiAffinity + to Beta. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-123669-map.yaml b/releases/release-1.31/release-notes/maps/pr-123669-map.yaml index 2a31e5895bf..129dba11c34 100644 --- a/releases/release-1.31/release-notes/maps/pr-123669-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123669-map.yaml @@ -1,3 +1,3 @@ -pr: 123669 -releasenote: - text: 'CEL (Common Expression Language): converting a quantity value into a quantity value failed.' +pr: 123669 +releasenote: + text: 'CEL (Common Expression Language): converting a quantity value into a quantity value failed.' diff --git a/releases/release-1.31/release-notes/maps/pr-123797-map.yaml b/releases/release-1.31/release-notes/maps/pr-123797-map.yaml index 37e62551f2a..35d2f804cff 100644 --- a/releases/release-1.31/release-notes/maps/pr-123797-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123797-map.yaml @@ -1,3 +1,3 @@ -pr: 123797 -releasenote: - text: Added `cri-client` staging repository. +pr: 123797 +releasenote: + text: Added `cri-client` staging repository. diff --git a/releases/release-1.31/release-notes/maps/pr-123809-map.yaml b/releases/release-1.31/release-notes/maps/pr-123809-map.yaml index a9de8992d11..3018b090e45 100644 --- a/releases/release-1.31/release-notes/maps/pr-123809-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123809-map.yaml @@ -1,6 +1,6 @@ -pr: 123809 -releasenote: - text: |- - The emission of RecreatingFailedPod and RecreatingTerminatedPod events has been - removed from the StatefulSet lifecycle. -pr_body: "" +pr: 123809 +releasenote: + text: |- + The emission of RecreatingFailedPod and RecreatingTerminatedPod events has been + removed from the StatefulSet lifecycle. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-123822-map.yaml b/releases/release-1.31/release-notes/maps/pr-123822-map.yaml index 2acde880062..80b71d0f587 100644 --- a/releases/release-1.31/release-notes/maps/pr-123822-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123822-map.yaml @@ -1,4 +1,4 @@ -pr: 123822 -releasenote: - text: Fixed a missing status prefix in custom resource validation error messages. -pr_body: "" +pr: 123822 +releasenote: + text: Fixed a missing status prefix in custom resource validation error messages. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-123845-map.yaml b/releases/release-1.31/release-notes/maps/pr-123845-map.yaml index 21c2af95672..2ffd300d170 100644 --- a/releases/release-1.31/release-notes/maps/pr-123845-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123845-map.yaml @@ -1,5 +1,5 @@ -pr: 123845 -releasenote: - text: Graduated the `DisableNodeKubeProxyVersion` feature gate to beta. By default, - the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for - its associated Node. +pr: 123845 +releasenote: + text: Graduated the `DisableNodeKubeProxyVersion` feature gate to beta. By default, + the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for + its associated Node. diff --git a/releases/release-1.31/release-notes/maps/pr-123894-map.yaml b/releases/release-1.31/release-notes/maps/pr-123894-map.yaml index 75b70de79a7..d2101c96945 100644 --- a/releases/release-1.31/release-notes/maps/pr-123894-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123894-map.yaml @@ -1,3 +1,3 @@ -pr: 123894 -releasenote: - text: Updated cni-plugins to v1.4.1. +pr: 123894 +releasenote: + text: Updated cni-plugins to v1.4.1. diff --git a/releases/release-1.31/release-notes/maps/pr-123905-map.yaml b/releases/release-1.31/release-notes/maps/pr-123905-map.yaml index bd2d7d4acd6..1d2b18e408c 100644 --- a/releases/release-1.31/release-notes/maps/pr-123905-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123905-map.yaml @@ -1,6 +1,6 @@ -pr: 123905 -releasenote: - text: |- - Services implemented a field selector for the ClusterIP and Type fields. - The Kubelet uses this field selector to avoid monitoring Headless Services, which helps reduce memory consumption. -pr_body: "" +pr: 123905 +releasenote: + text: |- + Services implemented a field selector for the ClusterIP and Type fields. + The Kubelet uses this field selector to avoid monitoring Headless Services, which helps reduce memory consumption. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-123919-map.yaml b/releases/release-1.31/release-notes/maps/pr-123919-map.yaml index 42d474229f4..92069fa116e 100644 --- a/releases/release-1.31/release-notes/maps/pr-123919-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-123919-map.yaml @@ -1,6 +1,6 @@ -pr: 123919 -releasenote: - text: |- - Added apiserver.latency.k8s.io/apf-queue-wait annotation to the audit log - to record the time spent waiting in APF queue. -pr_body: "" +pr: 123919 +releasenote: + text: |- + Added apiserver.latency.k8s.io/apf-queue-wait annotation to the audit log + to record the time spent waiting in APF queue. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124012-map.yaml b/releases/release-1.31/release-notes/maps/pr-124012-map.yaml index 9ece3f99b07..84681ee3b61 100644 --- a/releases/release-1.31/release-notes/maps/pr-124012-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124012-map.yaml @@ -1,7 +1,7 @@ -pr: 124012 -releasenote: - text: Added Coordinated Leader Election as Alpha under the `CoordinatedLeaderElection` - feature gate. With the feature enabled, the control plane can use LeaseCandidate - objects (coordination.k8s.io/v1alpha1 API group) to participate in a leader election - and let the kube-apiserver select the best instance according to some strategy. -pr_body: "" +pr: 124012 +releasenote: + text: Added Coordinated Leader Election as Alpha under the `CoordinatedLeaderElection` + feature gate. With the feature enabled, the control plane can use LeaseCandidate + objects (coordination.k8s.io/v1alpha1 API group) to participate in a leader election + and let the kube-apiserver select the best instance according to some strategy. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124017-map.yaml b/releases/release-1.31/release-notes/maps/pr-124017-map.yaml index 5cd4d3d78d0..bbe1e87515a 100644 --- a/releases/release-1.31/release-notes/maps/pr-124017-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124017-map.yaml @@ -1,6 +1,6 @@ -pr: 124017 -releasenote: - text: | - Removed deprecated command flags --volume-host-cidr-denylist - and --volume-host-allow-local-loopback from kube-controller-manager. - +pr: 124017 +releasenote: + text: | + Removed deprecated command flags --volume-host-cidr-denylist + and --volume-host-allow-local-loopback from kube-controller-manager. + diff --git a/releases/release-1.31/release-notes/maps/pr-124025-map.yaml b/releases/release-1.31/release-notes/maps/pr-124025-map.yaml index 7687585583d..5f65188c673 100644 --- a/releases/release-1.31/release-notes/maps/pr-124025-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124025-map.yaml @@ -1,4 +1,4 @@ -pr: 124025 -releasenote: - text: Continued streaming kubelet logs when the CRI server of the runtime was unavailable. -pr_body: "" +pr: 124025 +releasenote: + text: Continued streaming kubelet logs when the CRI server of the runtime was unavailable. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124026-map.yaml b/releases/release-1.31/release-notes/maps/pr-124026-map.yaml index 0f1de1bde96..1d85408b29c 100644 --- a/releases/release-1.31/release-notes/maps/pr-124026-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124026-map.yaml @@ -1,4 +1,4 @@ -pr: 124026 -releasenote: - text: Built etcd image v3.5.13. -pr_body: "" +pr: 124026 +releasenote: + text: Built etcd image v3.5.13. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124027-map.yaml b/releases/release-1.31/release-notes/maps/pr-124027-map.yaml index 66b4f92f525..262e7860b11 100644 --- a/releases/release-1.31/release-notes/maps/pr-124027-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124027-map.yaml @@ -1,4 +1,4 @@ -pr: 124027 -releasenote: - text: 'etcd: Updated to v3.5.13.' -pr_body: "" +pr: 124027 +releasenote: + text: 'etcd: Updated to v3.5.13.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124038-map.yaml b/releases/release-1.31/release-notes/maps/pr-124038-map.yaml index c024363d589..947042ab2ed 100644 --- a/releases/release-1.31/release-notes/maps/pr-124038-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124038-map.yaml @@ -1,6 +1,6 @@ -pr: 124038 -releasenote: - text: |- - 'kubeadm: Stopped storing the ResolverConfig in the global KubeletConfiguration - and sets it dynamically for each node instead.' -pr_body: "" +pr: 124038 +releasenote: + text: |- + 'kubeadm: Stopped storing the ResolverConfig in the global KubeletConfiguration + and sets it dynamically for each node instead.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124055-map.yaml b/releases/release-1.31/release-notes/maps/pr-124055-map.yaml index 26bb76d1106..b7e782672aa 100644 --- a/releases/release-1.31/release-notes/maps/pr-124055-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124055-map.yaml @@ -1,4 +1,4 @@ -pr: 124055 -releasenote: - text: Optimized log output to avoid printing out redundant information of the pod. -pr_body: "" +pr: 124055 +releasenote: + text: Optimized log output to avoid printing out redundant information of the pod. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124063-map.yaml b/releases/release-1.31/release-notes/maps/pr-124063-map.yaml index b1e64ef9cdd..64268bf0926 100644 --- a/releases/release-1.31/release-notes/maps/pr-124063-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124063-map.yaml @@ -1,7 +1,7 @@ -pr: 124063 -releasenote: - text: |- - Fixed a bug where hard evictions due to resource pressure allowed pods - to use the full termination grace period instead of shutting down instantly. - This bug also affected force deleted pods. Both cases now receive a termination grace period of 1 second. -pr_body: "" +pr: 124063 +releasenote: + text: |- + Fixed a bug where hard evictions due to resource pressure allowed pods + to use the full termination grace period instead of shutting down instantly. + This bug also affected force deleted pods. Both cases now receive a termination grace period of 1 second. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124075-map.yaml b/releases/release-1.31/release-notes/maps/pr-124075-map.yaml index b8ce32e01f0..6543b3b1cac 100644 --- a/releases/release-1.31/release-notes/maps/pr-124075-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124075-map.yaml @@ -1,4 +1,4 @@ -pr: 124075 -releasenote: - text: 'Dynamic Resource Allocation (DRA): client-side validation of a ResourceHandle would have accepted a missing - DriverName, whereas server-side validation then would have raised an error.' +pr: 124075 +releasenote: + text: 'Dynamic Resource Allocation (DRA): client-side validation of a ResourceHandle would have accepted a missing + DriverName, whereas server-side validation then would have raised an error.' diff --git a/releases/release-1.31/release-notes/maps/pr-124091-map.yaml b/releases/release-1.31/release-notes/maps/pr-124091-map.yaml index 493ff762f8f..7409c8b6380 100644 --- a/releases/release-1.31/release-notes/maps/pr-124091-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124091-map.yaml @@ -1,3 +1,3 @@ -pr: 124091 -releasenote: - text: Fixed kubelet so it would no longer crash when a DRA(Dynamic Resource Allocation) driver returns a nil as part of the Node(Un)PrepareResources response instead of an empty struct (Did not affect drivers written in Go, first showed up with a driver written in Rust). +pr: 124091 +releasenote: + text: Fixed kubelet so it would no longer crash when a DRA(Dynamic Resource Allocation) driver returns a nil as part of the Node(Un)PrepareResources response instead of an empty struct (Did not affect drivers written in Go, first showed up with a driver written in Rust). diff --git a/releases/release-1.31/release-notes/maps/pr-124092-map.yaml b/releases/release-1.31/release-notes/maps/pr-124092-map.yaml index 81932755193..8c78c15830d 100644 --- a/releases/release-1.31/release-notes/maps/pr-124092-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124092-map.yaml @@ -1,6 +1,6 @@ -pr: 124092 -releasenote: - text: |- - - Windows Kubeproxy will use the update load balancer API for load balancer updates, instead of the previous delete and create APIs. - - Deletion of remote endpoints will be triggered only for terminated endpoints (those present in the old endpoints map but not in the new endpoints map), whereas previously it was also done for terminating endpoints. -pr_body: "" +pr: 124092 +releasenote: + text: |- + - Windows Kubeproxy will use the update load balancer API for load balancer updates, instead of the previous delete and create APIs. + - Deletion of remote endpoints will be triggered only for terminated endpoints (those present in the old endpoints map but not in the new endpoints map), whereas previously it was also done for terminating endpoints. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124101-map.yaml b/releases/release-1.31/release-notes/maps/pr-124101-map.yaml index 024ec7f2290..e0e9852b3e5 100644 --- a/releases/release-1.31/release-notes/maps/pr-124101-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124101-map.yaml @@ -1,5 +1,5 @@ -pr: 124101 -releasenote: - text: Fixed a bug where the Kubelet miscalculated the process usage of pods, - causing pods to never get evicted for PID usage. -pr_body: "" +pr: 124101 +releasenote: + text: Fixed a bug where the Kubelet miscalculated the process usage of pods, + causing pods to never get evicted for PID usage. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124116-map.yaml b/releases/release-1.31/release-notes/maps/pr-124116-map.yaml index 16bc700ac28..0d0f14c01a8 100644 --- a/releases/release-1.31/release-notes/maps/pr-124116-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124116-map.yaml @@ -1,4 +1,4 @@ -pr: 124116 -releasenote: - text: Fixed a deep copy issue when retrieving the controller reference. -pr_body: "" +pr: 124116 +releasenote: + text: Fixed a deep copy issue when retrieving the controller reference. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124123-map.yaml b/releases/release-1.31/release-notes/maps/pr-124123-map.yaml index 6acfab587ae..a54d57cfd0e 100644 --- a/releases/release-1.31/release-notes/maps/pr-124123-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124123-map.yaml @@ -1,6 +1,6 @@ -pr: 124123 -releasenote: - text: |- - Enabled kubectl to find `kubectl-create-subcommand` plugins when positional - arguments exists, e.g. `kubectl create subcommand arg`. -pr_body: "" +pr: 124123 +releasenote: + text: |- + Enabled kubectl to find `kubectl-create-subcommand` plugins when positional + arguments exists, e.g. `kubectl create subcommand arg`. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124131-map.yaml b/releases/release-1.31/release-notes/maps/pr-124131-map.yaml index 425c14252e3..1320678c2dd 100644 --- a/releases/release-1.31/release-notes/maps/pr-124131-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124131-map.yaml @@ -1,4 +1,4 @@ -pr: 124131 -releasenote: - text: Fixed the bug where if Endpointslices mirrored from Endpoints by the EndpointSliceMirroring controller they would not reconcile if modified. - were not reconciled if modified +pr: 124131 +releasenote: + text: Fixed the bug where if Endpointslices mirrored from Endpoints by the EndpointSliceMirroring controller they would not reconcile if modified. + were not reconciled if modified diff --git a/releases/release-1.31/release-notes/maps/pr-124147-map.yaml b/releases/release-1.31/release-notes/maps/pr-124147-map.yaml index f18733a6001..81bb58fc094 100644 --- a/releases/release-1.31/release-notes/maps/pr-124147-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124147-map.yaml @@ -1,4 +1,4 @@ -pr: 124147 -releasenote: - text: 'Kubemark: added two flags, `--kube-api-qps` which indicates the maximum QPS to the apiserver, and `--kube-api-burst` which indicates maximum burst for throttle to the apiserver.' -pr_body: "" +pr: 124147 +releasenote: + text: 'Kubemark: added two flags, `--kube-api-qps` which indicates the maximum QPS to the apiserver, and `--kube-api-burst` which indicates maximum burst for throttle to the apiserver.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124189-map.yaml b/releases/release-1.31/release-notes/maps/pr-124189-map.yaml index 0129c40745b..981cd37609e 100644 --- a/releases/release-1.31/release-notes/maps/pr-124189-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124189-map.yaml @@ -1,4 +1,4 @@ -pr: 124189 -releasenote: - text: Fixed an issue that prevents the linking of trace spans for requests that - are proxied through kube-aggregator. +pr: 124189 +releasenote: + text: Fixed an issue that prevents the linking of trace spans for requests that + are proxied through kube-aggregator. diff --git a/releases/release-1.31/release-notes/maps/pr-124210-map.yaml b/releases/release-1.31/release-notes/maps/pr-124210-map.yaml index 1f672aabc6b..ecf5f6954ff 100644 --- a/releases/release-1.31/release-notes/maps/pr-124210-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124210-map.yaml @@ -1,5 +1,5 @@ -pr: 124210 -releasenote: - text: The feature gate "SkipReadOnlyValidationGCE" has been removed. This gate - has been active for 2 releases with no reports of issues (and was such a niche - thing, we didn't expect any). +pr: 124210 +releasenote: + text: The feature gate "SkipReadOnlyValidationGCE" has been removed. This gate + has been active for 2 releases with no reports of issues (and was such a niche + thing, we didn't expect any). diff --git a/releases/release-1.31/release-notes/maps/pr-124220-map.yaml b/releases/release-1.31/release-notes/maps/pr-124220-map.yaml index bf839bf20d6..ebd5e1296f3 100644 --- a/releases/release-1.31/release-notes/maps/pr-124220-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124220-map.yaml @@ -1,5 +1,5 @@ -pr: 124220 -releasenote: - text: Kubelet would not restart the container when fields other than image in the - Pod spec change. - pod spec change. +pr: 124220 +releasenote: + text: Kubelet would not restart the container when fields other than image in the + Pod spec change. + pod spec change. diff --git a/releases/release-1.31/release-notes/maps/pr-124221-map.yaml b/releases/release-1.31/release-notes/maps/pr-124221-map.yaml index f3273cd91fa..4076e20fe85 100644 --- a/releases/release-1.31/release-notes/maps/pr-124221-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124221-map.yaml @@ -1,5 +1,5 @@ -pr: 124221 -releasenote: - text: Fixed a typo in the help text for the pod_scheduling_sli_duration_seconds - metric in kube-scheduler. -pr_body: "" +pr: 124221 +releasenote: + text: Fixed a typo in the help text for the pod_scheduling_sli_duration_seconds + metric in kube-scheduler. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124281-map.yaml b/releases/release-1.31/release-notes/maps/pr-124281-map.yaml index 1cbe42ea130..a7dfdb8a1d9 100644 --- a/releases/release-1.31/release-notes/maps/pr-124281-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124281-map.yaml @@ -1,3 +1,3 @@ -pr: 124281 -releasenote: - text: Allowed parameter to be set along with proto file path. +pr: 124281 +releasenote: + text: Allowed parameter to be set along with proto file path. diff --git a/releases/release-1.31/release-notes/maps/pr-124287-map.yaml b/releases/release-1.31/release-notes/maps/pr-124287-map.yaml index af0de370a23..a9f28a3b778 100644 --- a/releases/release-1.31/release-notes/maps/pr-124287-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124287-map.yaml @@ -1,4 +1,4 @@ -pr: 124287 -releasenote: - text: The scheduler implemented QueueingHint in the TaintToleration plugin, enhancing the throughput of scheduling. -pr_body: "" +pr: 124287 +releasenote: + text: The scheduler implemented QueueingHint in the TaintToleration plugin, enhancing the throughput of scheduling. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124316-map.yaml b/releases/release-1.31/release-notes/maps/pr-124316-map.yaml index 4144cfdc354..29d9fc952ae 100644 --- a/releases/release-1.31/release-notes/maps/pr-124316-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124316-map.yaml @@ -1,4 +1,4 @@ -pr: 124316 -releasenote: - text: 'ACTION-REQUIRED: Dynamic Resource Allocation (DRA) drivers using the v1alpha2 kubelet gRPC API are no longer - supported and need to be updated.' +pr: 124316 +releasenote: + text: 'ACTION-REQUIRED: Dynamic Resource Allocation (DRA) drivers using the v1alpha2 kubelet gRPC API are no longer + supported and need to be updated.' diff --git a/releases/release-1.31/release-notes/maps/pr-124328-map.yaml b/releases/release-1.31/release-notes/maps/pr-124328-map.yaml index 220cd2b9e8a..2c41d5cf654 100644 --- a/releases/release-1.31/release-notes/maps/pr-124328-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124328-map.yaml @@ -1,5 +1,5 @@ -pr: 124328 -releasenote: - text: The name of CEL(Common Expression Language) optional type has been changed - from `optional` to `optional_type`. -pr_body: "" +pr: 124328 +releasenote: + text: The name of CEL(Common Expression Language) optional type has been changed + from `optional` to `optional_type`. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124329-map.yaml b/releases/release-1.31/release-notes/maps/pr-124329-map.yaml index d7a72904ca0..600bc915bf1 100644 --- a/releases/release-1.31/release-notes/maps/pr-124329-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124329-map.yaml @@ -1,3 +1,3 @@ -pr: 124329 -releasenote: - text: Removed generally available feature gate `ReadWriteOncePod`. +pr: 124329 +releasenote: + text: Removed generally available feature gate `ReadWriteOncePod`. diff --git a/releases/release-1.31/release-notes/maps/pr-124344-map.yaml b/releases/release-1.31/release-notes/maps/pr-124344-map.yaml index 519501e7c59..709ddf3f818 100644 --- a/releases/release-1.31/release-notes/maps/pr-124344-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124344-map.yaml @@ -1,4 +1,4 @@ -pr: 124344 -releasenote: - text: Fixed a race condition in the transforming informer that occurred when objects were accessed during the Resync operation. -pr_body: "" +pr: 124344 +releasenote: + text: Fixed a race condition in the transforming informer that occurred when objects were accessed during the Resync operation. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124350-map.yaml b/releases/release-1.31/release-notes/maps/pr-124350-map.yaml index 8f9d3a47355..ac85c3e471a 100644 --- a/releases/release-1.31/release-notes/maps/pr-124350-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124350-map.yaml @@ -1,5 +1,5 @@ -pr: 124350 -releasenote: - text: 'e2e.test and e2e_node.test: tests which depend on alpha or beta feature gates - now have `Feature:Alpha` or `Feature:Beta` as Ginkgo labels. The inline text is - `[Alpha]` or `[Beta]`, as before.' +pr: 124350 +releasenote: + text: 'e2e.test and e2e_node.test: tests which depend on alpha or beta feature gates + now have `Feature:Alpha` or `Feature:Beta` as Ginkgo labels. The inline text is + `[Alpha]` or `[Beta]`, as before.' diff --git a/releases/release-1.31/release-notes/maps/pr-124352-map.yaml b/releases/release-1.31/release-notes/maps/pr-124352-map.yaml index 61d443cff58..d8062ba0672 100644 --- a/releases/release-1.31/release-notes/maps/pr-124352-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124352-map.yaml @@ -1,6 +1,6 @@ -pr: 124352 -releasenote: - text: "Fixed a race condition in kube-controller-manager and the scheduler, caused - by\na bug in the transforming informer during the Resync operation, \nby making - the transforming function idempotent." -pr_body: "" +pr: 124352 +releasenote: + text: "Fixed a race condition in kube-controller-manager and the scheduler, caused + by\na bug in the transforming informer during the Resync operation, \nby making + the transforming function idempotent." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124361-map.yaml b/releases/release-1.31/release-notes/maps/pr-124361-map.yaml index c355678bc46..fa74e6ab318 100644 --- a/releases/release-1.31/release-notes/maps/pr-124361-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124361-map.yaml @@ -1,8 +1,8 @@ -pr: 124361 -releasenote: - text: | - kubeadm: Removed support for mounting /etc/pki as an additional Linux system CA location - in kube-apisever and kube-controller-manager pods. Instead, it shifted to supporting the - mounting of /etc/pki/ca-trust and /etc/pki/tls/certs. The locations /etc/ca-certificate, - /usr/share/ca-certificates, /usr/local/share/ca-certificates, and /etc/ssl/certs continued +pr: 124361 +releasenote: + text: | + kubeadm: Removed support for mounting /etc/pki as an additional Linux system CA location + in kube-apisever and kube-controller-manager pods. Instead, it shifted to supporting the + mounting of /etc/pki/ca-trust and /etc/pki/tls/certs. The locations /etc/ca-certificate, + /usr/share/ca-certificates, /usr/local/share/ca-certificates, and /etc/ssl/certs continued to be supported. \ No newline at end of file diff --git a/releases/release-1.31/release-notes/maps/pr-124364-map.yaml b/releases/release-1.31/release-notes/maps/pr-124364-map.yaml index 23c453a4fa8..d7854554f5f 100644 --- a/releases/release-1.31/release-notes/maps/pr-124364-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124364-map.yaml @@ -1,3 +1,3 @@ -pr: 124364 -releasenote: - text: Updated cri-tools to v1.30.0. +pr: 124364 +releasenote: + text: Updated cri-tools to v1.30.0. diff --git a/releases/release-1.31/release-notes/maps/pr-124373-map.yaml b/releases/release-1.31/release-notes/maps/pr-124373-map.yaml index eb012848e4d..178bec3e0c8 100644 --- a/releases/release-1.31/release-notes/maps/pr-124373-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124373-map.yaml @@ -1,4 +1,4 @@ -pr: 124373 -releasenote: - text: 'kubeadm: removed the deprecated and NO-OP "kubeadm join control-plane-join update-status" phase.' -pr_body: "" +pr: 124373 +releasenote: + text: 'kubeadm: removed the deprecated and NO-OP "kubeadm join control-plane-join update-status" phase.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124374-map.yaml b/releases/release-1.31/release-notes/maps/pr-124374-map.yaml index 39332d4ca41..cb1483b0d8c 100644 --- a/releases/release-1.31/release-notes/maps/pr-124374-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124374-map.yaml @@ -1,4 +1,4 @@ -pr: 124374 -releasenote: - text: 'kubeadm: removed the EXPERIMENTAL tag from the phase "kubeadm join control-plane-prepare download-certs".' -pr_body: "" +pr: 124374 +releasenote: + text: 'kubeadm: removed the EXPERIMENTAL tag from the phase "kubeadm join control-plane-prepare download-certs".' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124375-map.yaml b/releases/release-1.31/release-notes/maps/pr-124375-map.yaml index dd49345f6b1..9d729f2d6ae 100644 --- a/releases/release-1.31/release-notes/maps/pr-124375-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124375-map.yaml @@ -1,3 +1,3 @@ -pr: 124375 -releasenote: - text: 'kubeadm: The global --rootfs flag considered non-experimental.' +pr: 124375 +releasenote: + text: 'kubeadm: The global --rootfs flag considered non-experimental.' diff --git a/releases/release-1.31/release-notes/maps/pr-124381-map.yaml b/releases/release-1.31/release-notes/maps/pr-124381-map.yaml index 82d6b3a27f7..0e8dd5c8762 100644 --- a/releases/release-1.31/release-notes/maps/pr-124381-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124381-map.yaml @@ -1,3 +1,3 @@ -pr: 124381 -releasenote: - text: Added support for CEL(Common Expression Language) expressions and `additionalProperties` to be used under nested quantifiers in CRD schemas. +pr: 124381 +releasenote: + text: Added support for CEL(Common Expression Language) expressions and `additionalProperties` to be used under nested quantifiers in CRD schemas. diff --git a/releases/release-1.31/release-notes/maps/pr-124383-map.yaml b/releases/release-1.31/release-notes/maps/pr-124383-map.yaml index 4c5bae9895e..c5d2f7d0892 100644 --- a/releases/release-1.31/release-notes/maps/pr-124383-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124383-map.yaml @@ -1,6 +1,6 @@ -pr: 124383 -releasenote: - text: |- - kube-proxy's nftables mode (--proxy-mode=nftables) is now beta and available by default. - - +pr: 124383 +releasenote: + text: |- + kube-proxy's nftables mode (--proxy-mode=nftables) is now beta and available by default. + + diff --git a/releases/release-1.31/release-notes/maps/pr-124393-map.yaml b/releases/release-1.31/release-notes/maps/pr-124393-map.yaml index 71de188fb23..2ee3feb673d 100644 --- a/releases/release-1.31/release-notes/maps/pr-124393-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124393-map.yaml @@ -1,8 +1,8 @@ -pr: 124393 -releasenote: - text: |- - 'kubeadm: marked the flag "--experimental-output'' as deprecated (it will - be removed in a future release) and added a new flag ''--output" that serves the - same purpose. Affected commands are - "kubeadm config images list", "kubeadm token - list", "kubeadm upgrade plan", "kubeadm certs check-expiration".' -pr_body: "" +pr: 124393 +releasenote: + text: |- + 'kubeadm: marked the flag "--experimental-output'' as deprecated (it will + be removed in a future release) and added a new flag ''--output" that serves the + same purpose. Affected commands are - "kubeadm config images list", "kubeadm token + list", "kubeadm upgrade plan", "kubeadm certs check-expiration".' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124417-map.yaml b/releases/release-1.31/release-notes/maps/pr-124417-map.yaml index 5e013e1827f..6db4f5ea41b 100644 --- a/releases/release-1.31/release-notes/maps/pr-124417-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124417-map.yaml @@ -1,5 +1,5 @@ -pr: 124417 -releasenote: - text: The feature gate "DefaultHostNetworkHostPortsInPodTemplates" has been removed. This - behavior was deprecated in v1.28, and has had no reports of issues since. -pr_body: "" +pr: 124417 +releasenote: + text: The feature gate "DefaultHostNetworkHostPortsInPodTemplates" has been removed. This + behavior was deprecated in v1.28, and has had no reports of issues since. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124419-map.yaml b/releases/release-1.31/release-notes/maps/pr-124419-map.yaml index 1648526bf02..2df91d12d4c 100644 --- a/releases/release-1.31/release-notes/maps/pr-124419-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124419-map.yaml @@ -1,7 +1,7 @@ -pr: 124419 -releasenote: - text: |- - 'kubeadm: marked the sub-phase of ''init kubelet-finalize'' called ''experimental-cert-rotation'' - as deprecated and print a warning if it is used directly; it will be removed in - a future release. Added a replacement sub-phase ''enable-client-cert-rotation''.' -pr_body: "" +pr: 124419 +releasenote: + text: |- + 'kubeadm: marked the sub-phase of ''init kubelet-finalize'' called ''experimental-cert-rotation'' + as deprecated and print a warning if it is used directly; it will be removed in + a future release. Added a replacement sub-phase ''enable-client-cert-rotation''.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124428-map.yaml b/releases/release-1.31/release-notes/maps/pr-124428-map.yaml index 399a806a261..6d35379f60d 100644 --- a/releases/release-1.31/release-notes/maps/pr-124428-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124428-map.yaml @@ -1,5 +1,5 @@ -pr: 124428 -releasenote: - text: |- - Added a testcase to check hostname and hostNetwork. -pr_body: "" +pr: 124428 +releasenote: + text: |- + Added a testcase to check hostname and hostNetwork. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124430-map.yaml b/releases/release-1.31/release-notes/maps/pr-124430-map.yaml index 4a795f7248c..83b9dfb4710 100644 --- a/releases/release-1.31/release-notes/maps/pr-124430-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124430-map.yaml @@ -1,5 +1,5 @@ -pr: 124430 -releasenote: - text: Fixed node reporting "notReady" with the reason 'container runtime status check may - not have completed yet' after kubelet restart. -pr_body: "" +pr: 124430 +releasenote: + text: Fixed node reporting "notReady" with the reason 'container runtime status check may + not have completed yet' after kubelet restart. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124444-map.yaml b/releases/release-1.31/release-notes/maps/pr-124444-map.yaml index 13b5c3f7457..9d26c949db2 100644 --- a/releases/release-1.31/release-notes/maps/pr-124444-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124444-map.yaml @@ -1,4 +1,4 @@ -pr: 124444 -releasenote: - text: Fixed issue where following Windows container logs would prevent container - log rotation. +pr: 124444 +releasenote: + text: Fixed issue where following Windows container logs would prevent container + log rotation. diff --git a/releases/release-1.31/release-notes/maps/pr-124462-map.yaml b/releases/release-1.31/release-notes/maps/pr-124462-map.yaml index b24c23c4604..8b9314a8ea7 100644 --- a/releases/release-1.31/release-notes/maps/pr-124462-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124462-map.yaml @@ -1,3 +1,3 @@ -pr: 124462 -releasenote: - text: Removed generally available feature gate `CSINodeExpandSecret`. +pr: 124462 +releasenote: + text: Removed generally available feature gate `CSINodeExpandSecret`. diff --git a/releases/release-1.31/release-notes/maps/pr-124463-map.yaml b/releases/release-1.31/release-notes/maps/pr-124463-map.yaml index 879cc7acc1d..a7a95d130d6 100644 --- a/releases/release-1.31/release-notes/maps/pr-124463-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124463-map.yaml @@ -1,3 +1,3 @@ -pr: 124463 -releasenote: - text: Removed generally available feature gate `ConsistentHTTPGetHandlers`. +pr: 124463 +releasenote: + text: Removed generally available feature gate `ConsistentHTTPGetHandlers`. diff --git a/releases/release-1.31/release-notes/maps/pr-124464-map.yaml b/releases/release-1.31/release-notes/maps/pr-124464-map.yaml index 95fdfc3a251..260ed54cb1b 100644 --- a/releases/release-1.31/release-notes/maps/pr-124464-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124464-map.yaml @@ -1,4 +1,4 @@ -pr: 124464 -releasenote: - text: 'kubeadm: Used output/v1alpha3 to print structural output for the commands - "kubeadm config images list" and "kubeadm token list".' +pr: 124464 +releasenote: + text: 'kubeadm: Used output/v1alpha3 to print structural output for the commands + "kubeadm config images list" and "kubeadm token list".' diff --git a/releases/release-1.31/release-notes/maps/pr-124465-map.yaml b/releases/release-1.31/release-notes/maps/pr-124465-map.yaml index 13a59edf7a0..cb45cd79007 100644 --- a/releases/release-1.31/release-notes/maps/pr-124465-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124465-map.yaml @@ -1,6 +1,6 @@ -pr: 124465 -releasenote: - text: 'kubeadm: Switched to using the new etcd endpoints introduced in 3.5.11 - /livez - (for liveness probe) and /readyz (for readyness and startup probe). With this - change it is no longer possible to deploy a custom etcd version older than 3.5.11 - with kubeadm 1.31. If so, please upgrade etcd to a supported version.' +pr: 124465 +releasenote: + text: 'kubeadm: Switched to using the new etcd endpoints introduced in 3.5.11 - /livez + (for liveness probe) and /readyz (for readyness and startup probe). With this + change it is no longer possible to deploy a custom etcd version older than 3.5.11 + with kubeadm 1.31. If so, please upgrade etcd to a supported version.' diff --git a/releases/release-1.31/release-notes/maps/pr-124480-map.yaml b/releases/release-1.31/release-notes/maps/pr-124480-map.yaml index 4e13de2ac49..41acaedfd33 100644 --- a/releases/release-1.31/release-notes/maps/pr-124480-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124480-map.yaml @@ -1,8 +1,8 @@ -pr: 124480 -releasenote: - text: |- - 'kubeadm: fixed a regression where the KubeletConfiguration is not properly - downloaded during "kubeadm upgrade" command from the kube-system/kubelet-config - ConfigMap, resulting in the local ''/var/lib/kubelet/config.yaml'' file being - written as a defaulted config.' -pr_body: "" +pr: 124480 +releasenote: + text: |- + 'kubeadm: fixed a regression where the KubeletConfiguration is not properly + downloaded during "kubeadm upgrade" command from the kube-system/kubelet-config + ConfigMap, resulting in the local ''/var/lib/kubelet/config.yaml'' file being + written as a defaulted config.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124496-map.yaml b/releases/release-1.31/release-notes/maps/pr-124496-map.yaml index c30c10b5f06..ea9295f9ec8 100644 --- a/releases/release-1.31/release-notes/maps/pr-124496-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124496-map.yaml @@ -1,4 +1,4 @@ -pr: 124496 -releasenote: - text: 'kubeadm: removed the deprecated `output.kubeadm.k8s.io/v1alpha2` API for - structured output. Please use v1alpha3 instead.' +pr: 124496 +releasenote: + text: 'kubeadm: removed the deprecated `output.kubeadm.k8s.io/v1alpha2` API for + structured output. Please use v1alpha3 instead.' diff --git a/releases/release-1.31/release-notes/maps/pr-124500-map.yaml b/releases/release-1.31/release-notes/maps/pr-124500-map.yaml index a0a5446af07..b8240883fe5 100644 --- a/releases/release-1.31/release-notes/maps/pr-124500-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124500-map.yaml @@ -1,10 +1,10 @@ -pr: 124500 -releasenote: - text: "kube-scheduler deprecated all non-csi volumelimit plugins and removed those - from defaults plugins. \n- AzureDiskLimits\n- CinderLimits\n- EBSLimits\n- GCEPDLimits\n\nThe - NodeVolumeLimits plugin can handle the same functionality as the above plugins - since the above volume types are migrated to CSI.\nPlease remove those plugins - and replace them with the NodeVolumeLimits plugin if you explicitly use those - plugins in the scheduler config.\nThose plugins will be removed in the release - 1.32." -pr_body: "" +pr: 124500 +releasenote: + text: "kube-scheduler deprecated all non-csi volumelimit plugins and removed those + from defaults plugins. \n- AzureDiskLimits\n- CinderLimits\n- EBSLimits\n- GCEPDLimits\n\nThe + NodeVolumeLimits plugin can handle the same functionality as the above plugins + since the above volume types are migrated to CSI.\nPlease remove those plugins + and replace them with the NodeVolumeLimits plugin if you explicitly use those + plugins in the scheduler config.\nThose plugins will be removed in the release + 1.32." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124503-map.yaml b/releases/release-1.31/release-notes/maps/pr-124503-map.yaml index c190c9918a7..9b9ca8c09db 100644 --- a/releases/release-1.31/release-notes/maps/pr-124503-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124503-map.yaml @@ -1,3 +1,3 @@ -pr: 124503 -releasenote: - text: 'kubeadm: Added support during the preflight check "CreateJob" of "kubeadm upgrade" to check if there are no nodes where a Pod can be scheduled. If there are none, show a warning and skip this preflight check. This can happen in single node clusters where the only node was drained.' +pr: 124503 +releasenote: + text: 'kubeadm: Added support during the preflight check "CreateJob" of "kubeadm upgrade" to check if there are no nodes where a Pod can be scheduled. If there are none, show a warning and skip this preflight check. This can happen in single node clusters where the only node was drained.' diff --git a/releases/release-1.31/release-notes/maps/pr-124505-map.yaml b/releases/release-1.31/release-notes/maps/pr-124505-map.yaml index 12f684cc758..1fd05bec24d 100644 --- a/releases/release-1.31/release-notes/maps/pr-124505-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124505-map.yaml @@ -1,4 +1,4 @@ -pr: 124505 -releasenote: - text: Removed admission plugin `PersistentVolumeLabel`. Please use https://github.com/kubernetes-sigs/cloud-pv-admission-labeler - instead if you need a similar functionality. +pr: 124505 +releasenote: + text: Removed admission plugin `PersistentVolumeLabel`. Please use https://github.com/kubernetes-sigs/cloud-pv-admission-labeler + instead if you need a similar functionality. diff --git a/releases/release-1.31/release-notes/maps/pr-124509-map.yaml b/releases/release-1.31/release-notes/maps/pr-124509-map.yaml index 2302419a4ed..c2710fbc790 100644 --- a/releases/release-1.31/release-notes/maps/pr-124509-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124509-map.yaml @@ -1,6 +1,6 @@ -pr: 124509 -releasenote: - text: |- - Introduced new functionality to the client-go's **list** verb, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate. - - It is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, client-go will revert to using the normal `LIST` method to obtain data. +pr: 124509 +releasenote: + text: |- + Introduced new functionality to the client-go's **list** verb, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate. + + It is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, client-go will revert to using the normal `LIST` method to obtain data. diff --git a/releases/release-1.31/release-notes/maps/pr-124514-map.yaml b/releases/release-1.31/release-notes/maps/pr-124514-map.yaml index bfa9f4fc526..4e4f847fae1 100644 --- a/releases/release-1.31/release-notes/maps/pr-124514-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124514-map.yaml @@ -1,3 +1,3 @@ -pr: 124514 -releasenote: - text: Fixed bug where kubectl get with --sort-by flag does not sort strings alphanumerically. +pr: 124514 +releasenote: + text: Fixed bug where kubectl get with --sort-by flag does not sort strings alphanumerically. diff --git a/releases/release-1.31/release-notes/maps/pr-124516-map.yaml b/releases/release-1.31/release-notes/maps/pr-124516-map.yaml index 9db7b4d4e00..72486dc4f1c 100644 --- a/releases/release-1.31/release-notes/maps/pr-124516-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124516-map.yaml @@ -1,5 +1,5 @@ -pr: 124516 -releasenote: - text: |- - Fixed a regression where `kubelet --hostname-override` no longer worked - correctly with an external cloud provider. +pr: 124516 +releasenote: + text: |- + Fixed a regression where `kubelet --hostname-override` no longer worked + correctly with an external cloud provider. diff --git a/releases/release-1.31/release-notes/maps/pr-124519-map.yaml b/releases/release-1.31/release-notes/maps/pr-124519-map.yaml index 26b8991c181..e9b2525fcfd 100644 --- a/releases/release-1.31/release-notes/maps/pr-124519-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124519-map.yaml @@ -1,7 +1,7 @@ -pr: 124519 -releasenote: - text: |- - Removed the last remaining in-tree gcp cloud provider and credential provider. - Please use the external cloud provider and credential provider from https://github.com/kubernetes/cloud-provider-gcp - instead. -pr_body: "" +pr: 124519 +releasenote: + text: |- + Removed the last remaining in-tree gcp cloud provider and credential provider. + Please use the external cloud provider and credential provider from https://github.com/kubernetes/cloud-provider-gcp + instead. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124530-map.yaml b/releases/release-1.31/release-notes/maps/pr-124530-map.yaml index 1f0f9d98ef7..d93c2274d9a 100644 --- a/releases/release-1.31/release-notes/maps/pr-124530-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124530-map.yaml @@ -1,6 +1,6 @@ -pr: 124530 -releasenote: - text: Finished initial generic controlplane refactor of kube-apiserver, providing - a sample binary building a Kubernetes-like control plane, but without container orchestration - resources. -pr_body: "" +pr: 124530 +releasenote: + text: Finished initial generic controlplane refactor of kube-apiserver, providing + a sample binary building a Kubernetes-like control plane, but without container orchestration + resources. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124544-map.yaml b/releases/release-1.31/release-notes/maps/pr-124544-map.yaml index 7d632168662..3660960ce0b 100644 --- a/releases/release-1.31/release-notes/maps/pr-124544-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124544-map.yaml @@ -1,8 +1,8 @@ -pr: 124544 -releasenote: - text: CephFS volume plugin ( `kubernetes.io/cephfs`) was removed in this release - and the `cephfs` volume type became non-functional. Alternative is to use CephFS - CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment - of your application is required to use the new driver if you were using `kubernetes.io/cephfs` - volume plugin before upgrading cluster version to 1.31+. -pr_body: "" +pr: 124544 +releasenote: + text: CephFS volume plugin ( `kubernetes.io/cephfs`) was removed in this release + and the `cephfs` volume type became non-functional. Alternative is to use CephFS + CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment + of your application is required to use the new driver if you were using `kubernetes.io/cephfs` + volume plugin before upgrading cluster version to 1.31+. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124546-map.yaml b/releases/release-1.31/release-notes/maps/pr-124546-map.yaml index bc7e5e37d61..fb694c4b97d 100644 --- a/releases/release-1.31/release-notes/maps/pr-124546-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124546-map.yaml @@ -1,8 +1,8 @@ -pr: 124546 -releasenote: - text: CephRBD volume plugin ( `kubernetes.io/rbd`) was removed in this release. - And its csi migration support was also removed, so the `rbd` volume type became - non-functional. Alternative is to use RBD CSI driver (https://github.com/ceph/ceph-csi/) - in your Kubernetes Cluster. A re-deployment of your application is required to - use the new driver if you were using `kubernetes.io/rbd` volume plugin before - upgrading cluster version to 1.31+. +pr: 124546 +releasenote: + text: CephRBD volume plugin ( `kubernetes.io/rbd`) was removed in this release. + And its csi migration support was also removed, so the `rbd` volume type became + non-functional. Alternative is to use RBD CSI driver (https://github.com/ceph/ceph-csi/) + in your Kubernetes Cluster. A re-deployment of your application is required to + use the new driver if you were using `kubernetes.io/rbd` volume plugin before + upgrading cluster version to 1.31+. diff --git a/releases/release-1.31/release-notes/maps/pr-124553-map.yaml b/releases/release-1.31/release-notes/maps/pr-124553-map.yaml index dfb5fa43109..e5312989450 100644 --- a/releases/release-1.31/release-notes/maps/pr-124553-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124553-map.yaml @@ -1,7 +1,7 @@ -pr: 124553 -releasenote: - text: |- - Fixed a 1.30.0 regression in OpenAPI descriptions of the `imagePullSecrets` and - `hostAliases` fields to mark the fields used as keys in those lists as either defaulted - or required. -pr_body: "" +pr: 124553 +releasenote: + text: |- + Fixed a 1.30.0 regression in OpenAPI descriptions of the `imagePullSecrets` and + `hostAliases` fields to mark the fields used as keys in those lists as either defaulted + or required. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124557-map.yaml b/releases/release-1.31/release-notes/maps/pr-124557-map.yaml index 0026939e230..bf2b6e6d498 100644 --- a/releases/release-1.31/release-notes/maps/pr-124557-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124557-map.yaml @@ -1,5 +1,5 @@ -pr: 124557 -releasenote: - text: |- - Added metrics for the nftables kube-proxy mode rather than it reporting - metrics with "iptables" in their names. +pr: 124557 +releasenote: + text: |- + Added metrics for the nftables kube-proxy mode rather than it reporting + metrics with "iptables" in their names. diff --git a/releases/release-1.31/release-notes/maps/pr-124574-map.yaml b/releases/release-1.31/release-notes/maps/pr-124574-map.yaml index bc1860bdbf6..7514829740e 100644 --- a/releases/release-1.31/release-notes/maps/pr-124574-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124574-map.yaml @@ -1,4 +1,4 @@ -pr: 124574 -releasenote: - text: Added the ability to the kubelet server to dynamically load certificate files. -pr_body: "" +pr: 124574 +releasenote: + text: Added the ability to the kubelet server to dynamically load certificate files. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124589-map.yaml b/releases/release-1.31/release-notes/maps/pr-124589-map.yaml index 2f3630a526b..505bf23d800 100644 --- a/releases/release-1.31/release-notes/maps/pr-124589-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124589-map.yaml @@ -1,5 +1,5 @@ -pr: 124589 -releasenote: - text: "\"Fixed the ResourceClaim controller forgetting to wait for `podSchedulingSynced` - \nand `templatesSynced`.\"" -pr_body: "" +pr: 124589 +releasenote: + text: "\"Fixed the ResourceClaim controller forgetting to wait for `podSchedulingSynced` + \nand `templatesSynced`.\"" +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124592-map.yaml b/releases/release-1.31/release-notes/maps/pr-124592-map.yaml index 91006ef67fb..70d7ab558c8 100644 --- a/releases/release-1.31/release-notes/maps/pr-124592-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124592-map.yaml @@ -1,4 +1,4 @@ -pr: 124592 -releasenote: - text: Added completion for `kubectl set image`. -pr_body: "" +pr: 124592 +releasenote: + text: Added completion for `kubectl set image`. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124595-map.yaml b/releases/release-1.31/release-notes/maps/pr-124595-map.yaml index 141078c043c..f8e5dd0e723 100644 --- a/releases/release-1.31/release-notes/maps/pr-124595-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124595-map.yaml @@ -1,4 +1,4 @@ -pr: 124595 -releasenote: - text: 'Dynamic Resource Allocation (DRA): fixed some small, unlikely race condition during pod scheduling.' -pr_body: "" +pr: 124595 +releasenote: + text: 'Dynamic Resource Allocation (DRA): fixed some small, unlikely race condition during pod scheduling.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124598-map.yaml b/releases/release-1.31/release-notes/maps/pr-124598-map.yaml index 9263415abba..2749089f41a 100644 --- a/releases/release-1.31/release-notes/maps/pr-124598-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124598-map.yaml @@ -1,4 +1,4 @@ -pr: 124598 -releasenote: - text: | - "`kubectl describe service`" and "`kubectl describe ingress`" will now use endpointslices instead of endpoints. +pr: 124598 +releasenote: + text: | + "`kubectl describe service`" and "`kubectl describe ingress`" will now use endpointslices instead of endpoints. diff --git a/releases/release-1.31/release-notes/maps/pr-124612-map.yaml b/releases/release-1.31/release-notes/maps/pr-124612-map.yaml index c2aded5a36f..7336a75439b 100644 --- a/releases/release-1.31/release-notes/maps/pr-124612-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124612-map.yaml @@ -1,4 +1,4 @@ -pr: 124612 -releasenote: - text: Added check for etcd version to warn about deprecated etcd versions if `ConsistentListFromCache` - is enabled. +pr: 124612 +releasenote: + text: Added check for etcd version to warn about deprecated etcd versions if `ConsistentListFromCache` + is enabled. diff --git a/releases/release-1.31/release-notes/maps/pr-124614-map.yaml b/releases/release-1.31/release-notes/maps/pr-124614-map.yaml index 5933baaeb34..57946dbab73 100644 --- a/releases/release-1.31/release-notes/maps/pr-124614-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124614-map.yaml @@ -1,5 +1,5 @@ -pr: 124614 -releasenote: - text: 'client-go/reflector: warns when the bookmark event for initial events hasn''t - been received' -pr_body: "" +pr: 124614 +releasenote: + text: 'client-go/reflector: warns when the bookmark event for initial events hasn''t + been received' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124618-map.yaml b/releases/release-1.31/release-notes/maps/pr-124618-map.yaml index 941c8b09de9..69b65d1e49d 100644 --- a/releases/release-1.31/release-notes/maps/pr-124618-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124618-map.yaml @@ -1,3 +1,3 @@ -pr: 124618 -releasenote: - text: Improved scheduling latency when there are many gated pods and events that trigger requeueing from the unschedulable pool. +pr: 124618 +releasenote: + text: Improved scheduling latency when there are many gated pods and events that trigger requeueing from the unschedulable pool. diff --git a/releases/release-1.31/release-notes/maps/pr-124634-map.yaml b/releases/release-1.31/release-notes/maps/pr-124634-map.yaml index deeb1210a13..568da79cc54 100644 --- a/releases/release-1.31/release-notes/maps/pr-124634-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124634-map.yaml @@ -1,4 +1,4 @@ -pr: 124634 -releasenote: - text: Moved remote CRI implementation from kubelet to `k8s.io/cri-client` repository. -pr_body: "" +pr: 124634 +releasenote: + text: Moved remote CRI implementation from kubelet to `k8s.io/cri-client` repository. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124635-map.yaml b/releases/release-1.31/release-notes/maps/pr-124635-map.yaml index 761ae432e38..286e366c722 100644 --- a/releases/release-1.31/release-notes/maps/pr-124635-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124635-map.yaml @@ -1,4 +1,4 @@ -pr: 124635 -releasenote: - text: 'client-go/tools/record.Broadcaster: Fixed automatic shutdown on WithContext - cancellation.' +pr: 124635 +releasenote: + text: 'client-go/tools/record.Broadcaster: Fixed automatic shutdown on WithContext + cancellation.' diff --git a/releases/release-1.31/release-notes/maps/pr-124653-map.yaml b/releases/release-1.31/release-notes/maps/pr-124653-map.yaml index bb37397dbfd..7b78dcd6606 100644 --- a/releases/release-1.31/release-notes/maps/pr-124653-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124653-map.yaml @@ -1,4 +1,4 @@ -pr: 124653 -releasenote: - text: Fixed the format of the error indicating that a user does not have permission - on the object referenced by paramRef in ValidatingAdmissionPolicyBinding. +pr: 124653 +releasenote: + text: Fixed the format of the error indicating that a user does not have permission + on the object referenced by paramRef in ValidatingAdmissionPolicyBinding. diff --git a/releases/release-1.31/release-notes/maps/pr-124665-map.yaml b/releases/release-1.31/release-notes/maps/pr-124665-map.yaml index 91d63db8115..310f70760ea 100644 --- a/releases/release-1.31/release-notes/maps/pr-124665-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124665-map.yaml @@ -1,4 +1,4 @@ -pr: 124665 -releasenote: - text: "`kubeadm`: Improved the `IsPrivilegedUser` preflight check to not fail on certain Windows setups." -pr_body: "" +pr: 124665 +releasenote: + text: "`kubeadm`: Improved the `IsPrivilegedUser` preflight check to not fail on certain Windows setups." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124667-map.yaml b/releases/release-1.31/release-notes/maps/pr-124667-map.yaml index ab0ea85590b..5afd4cb258b 100644 --- a/releases/release-1.31/release-notes/maps/pr-124667-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124667-map.yaml @@ -1,5 +1,5 @@ -pr: 124667 -releasenote: - text: Improved memory usage of kube-apiserver by dropping`.metadata.managedFields` - field that self-requested informers of kube-apiserver didn't need. -pr_body: "" +pr: 124667 +releasenote: + text: Improved memory usage of kube-apiserver by dropping`.metadata.managedFields` + field that self-requested informers of kube-apiserver didn't need. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124673-map.yaml b/releases/release-1.31/release-notes/maps/pr-124673-map.yaml index fb3eead3398..4f4671f2ec4 100644 --- a/releases/release-1.31/release-notes/maps/pr-124673-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124673-map.yaml @@ -1,6 +1,6 @@ -pr: 124673 -releasenote: - text: |- - Promoted `generateName` retries to beta, and made the `NameGenerationRetries` feature gate - enabled by default. - You can read https://kep.k8s.io/4420 for more details. +pr: 124673 +releasenote: + text: |- + Promoted `generateName` retries to beta, and made the `NameGenerationRetries` feature gate + enabled by default. + You can read https://kep.k8s.io/4420 for more details. diff --git a/releases/release-1.31/release-notes/maps/pr-124675-map.yaml b/releases/release-1.31/release-notes/maps/pr-124675-map.yaml index 1867505e955..083f75b0cf2 100644 --- a/releases/release-1.31/release-notes/maps/pr-124675-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124675-map.yaml @@ -1,5 +1,5 @@ -pr: 124675 -releasenote: - text: Added the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` - to enforce the strict cost calculation for CEL extended libraries. It is strongly - recommended to turn on the feature gates as early as possible. +pr: 124675 +releasenote: + text: Added the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` + to enforce the strict cost calculation for CEL extended libraries. It is strongly + recommended to turn on the feature gates as early as possible. diff --git a/releases/release-1.31/release-notes/maps/pr-124681-map.yaml b/releases/release-1.31/release-notes/maps/pr-124681-map.yaml index 5b2073e2231..af6422260a8 100644 --- a/releases/release-1.31/release-notes/maps/pr-124681-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124681-map.yaml @@ -1,4 +1,4 @@ -pr: 124681 -releasenote: - text: Added Custom resource field selectors in beta and enabled them by default. Check - out https://github.com/kubernetes/enhancements/issues/4358 for more details. +pr: 124681 +releasenote: + text: Added Custom resource field selectors in beta and enabled them by default. Check + out https://github.com/kubernetes/enhancements/issues/4358 for more details. diff --git a/releases/release-1.31/release-notes/maps/pr-124683-map.yaml b/releases/release-1.31/release-notes/maps/pr-124683-map.yaml index 594b86d1a22..0d501e76526 100644 --- a/releases/release-1.31/release-notes/maps/pr-124683-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124683-map.yaml @@ -1,3 +1,3 @@ -pr: 124683 -releasenote: - text: Added ports autocompletion for `kubectl port-forward` command. +pr: 124683 +releasenote: + text: Added ports autocompletion for `kubectl port-forward` command. diff --git a/releases/release-1.31/release-notes/maps/pr-124685-map.yaml b/releases/release-1.31/release-notes/maps/pr-124685-map.yaml index c7f86a71209..54a9b2b2717 100644 --- a/releases/release-1.31/release-notes/maps/pr-124685-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124685-map.yaml @@ -1,11 +1,11 @@ -pr: 124685 -releasenote: - text: |- - kubeadm: Switched kubeadm to start using the CRI client library instead of shelling out of the `crictl` binary - for actions against a CRI endpoint. The kubeadm deb/rpm packages will continue to install the `cri-tools` - package for one more release, but in you must adapt your scripts to install `crictl` manually from - https://github.com/kubernetes-sigs/cri-tools/releases or a different location. - - The `kubeadm` package will stop depending on the `cri-tools` package in Kubernetes 1.32, which means that - installing `kubeadm` will no longer automatically ensure installation of `crictl`. -pr_body: "" +pr: 124685 +releasenote: + text: |- + kubeadm: Switched kubeadm to start using the CRI client library instead of shelling out of the `crictl` binary + for actions against a CRI endpoint. The kubeadm deb/rpm packages will continue to install the `cri-tools` + package for one more release, but in you must adapt your scripts to install `crictl` manually from + https://github.com/kubernetes-sigs/cri-tools/releases or a different location. + + The `kubeadm` package will stop depending on the `cri-tools` package in Kubernetes 1.32, which means that + installing `kubeadm` will no longer automatically ensure installation of `crictl`. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124688-map.yaml b/releases/release-1.31/release-notes/maps/pr-124688-map.yaml index 3991a2d4855..7b9927754c0 100644 --- a/releases/release-1.31/release-notes/maps/pr-124688-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124688-map.yaml @@ -1,6 +1,6 @@ -pr: 124688 -releasenote: - text: 'kubeadm: Ensured that during "upgrade" , if the "etcd.yaml" static pod did not need upgrade, - still consider rotating the etcd certificates and restarting the etcd static pod - if the "kube-apiserver.yaml" manifest was to be upgraded and if certificate renewal - was not disabled.' +pr: 124688 +releasenote: + text: 'kubeadm: Ensured that during "upgrade" , if the "etcd.yaml" static pod did not need upgrade, + still consider rotating the etcd certificates and restarting the etcd static pod + if the "kube-apiserver.yaml" manifest was to be upgraded and if certificate renewal + was not disabled.' diff --git a/releases/release-1.31/release-notes/maps/pr-124714-map.yaml b/releases/release-1.31/release-notes/maps/pr-124714-map.yaml index 001bb219a7d..227b0afd27f 100644 --- a/releases/release-1.31/release-notes/maps/pr-124714-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124714-map.yaml @@ -1,4 +1,4 @@ -pr: 124714 -releasenote: - text: Fixed throughput when scheduling DaemonSet pods to reach 300 pods/s, if the configured QPS allows it. -pr_body: "" +pr: 124714 +releasenote: + text: Fixed throughput when scheduling DaemonSet pods to reach 300 pods/s, if the configured QPS allows it. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124715-map.yaml b/releases/release-1.31/release-notes/maps/pr-124715-map.yaml index b348866c956..3dc82fe8f39 100644 --- a/releases/release-1.31/release-notes/maps/pr-124715-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124715-map.yaml @@ -1,4 +1,4 @@ -pr: 124715 -releasenote: - text: 'kubeadm: Removed the deprecated `UpgradeAddonsBeforeControlPlane` feature gate; Ensured that the upgrade of the CoreDNS and kube-proxy addons would not be triggered - until all the control plane instances were upgraded.' +pr: 124715 +releasenote: + text: 'kubeadm: Removed the deprecated `UpgradeAddonsBeforeControlPlane` feature gate; Ensured that the upgrade of the CoreDNS and kube-proxy addons would not be triggered + until all the control plane instances were upgraded.' diff --git a/releases/release-1.31/release-notes/maps/pr-124732-map.yaml b/releases/release-1.31/release-notes/maps/pr-124732-map.yaml index 4b2b16ddece..7137fc70bbb 100644 --- a/releases/release-1.31/release-notes/maps/pr-124732-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124732-map.yaml @@ -1,4 +1,4 @@ -pr: 124732 -releasenote: - text: Added flag to `kubectl logs` called `--all-pods` to get all pods from a object - that uses a pod selector. +pr: 124732 +releasenote: + text: Added flag to `kubectl logs` called `--all-pods` to get all pods from a object + that uses a pod selector. diff --git a/releases/release-1.31/release-notes/maps/pr-124735-map.yaml b/releases/release-1.31/release-notes/maps/pr-124735-map.yaml index 304c0000eaa..ed5a99d8c58 100644 --- a/releases/release-1.31/release-notes/maps/pr-124735-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124735-map.yaml @@ -1,5 +1,5 @@ -pr: 124735 -releasenote: - text: Scheduler changes its logic of calculating `evaluatedNodes` from "contains - the number of nodes that filtered out by PreFilterResult and Filter plugins" to - "the number of nodes filtered out by Filter plugins only". +pr: 124735 +releasenote: + text: Scheduler changes its logic of calculating `evaluatedNodes` from "contains + the number of nodes that filtered out by PreFilterResult and Filter plugins" to + "the number of nodes filtered out by Filter plugins only". diff --git a/releases/release-1.31/release-notes/maps/pr-124738-map.yaml b/releases/release-1.31/release-notes/maps/pr-124738-map.yaml index c08095213bd..ace88a9b19b 100644 --- a/releases/release-1.31/release-notes/maps/pr-124738-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124738-map.yaml @@ -1,4 +1,4 @@ -pr: 124738 -releasenote: - text: Removed GA ServiceNodePortStaticSubrange feature gate. -pr_body: "" +pr: 124738 +releasenote: + text: Removed GA ServiceNodePortStaticSubrange feature gate. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124767-map.yaml b/releases/release-1.31/release-notes/maps/pr-124767-map.yaml index 2296048231f..1e8613fa0c5 100644 --- a/releases/release-1.31/release-notes/maps/pr-124767-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124767-map.yaml @@ -1,4 +1,4 @@ -pr: 124767 -releasenote: - text: Removed k8s.io/legacy-cloud-providers from staging. -pr_body: "" +pr: 124767 +releasenote: + text: Removed k8s.io/legacy-cloud-providers from staging. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124779-map.yaml b/releases/release-1.31/release-notes/maps/pr-124779-map.yaml index 9babea05533..cfc3834dde1 100644 --- a/releases/release-1.31/release-notes/maps/pr-124779-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124779-map.yaml @@ -1,4 +1,4 @@ -pr: 124779 -releasenote: - text: Updated the CEL default compatibility environment version to 1.30, ensuring that extended libraries added before version 1.30 are available for use. -pr_body: "" +pr: 124779 +releasenote: + text: Updated the CEL default compatibility environment version to 1.30, ensuring that extended libraries added before version 1.30 are available for use. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124793-map.yaml b/releases/release-1.31/release-notes/maps/pr-124793-map.yaml index 2ba1cfd095d..cd86dc1a863 100644 --- a/releases/release-1.31/release-notes/maps/pr-124793-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124793-map.yaml @@ -1,4 +1,4 @@ -pr: 124793 -releasenote: - text: Fixed the comment for the Job's managedBy field. -pr_body: "" +pr: 124793 +releasenote: + text: Fixed the comment for the Job's managedBy field. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124798-map.yaml b/releases/release-1.31/release-notes/maps/pr-124798-map.yaml index 61f8d20f95a..ee75e4bd89f 100644 --- a/releases/release-1.31/release-notes/maps/pr-124798-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124798-map.yaml @@ -1,6 +1,6 @@ -pr: 124798 -releasenote: - text: |- - Do not remove the "batch.kubernetes.io/job-tracking" finalizer from a Pod, in a corner - case scenario, when the Pod is controlled by an API object which is not a batch Job - (e.g. when the Pod is controlled by a custom CRD). +pr: 124798 +releasenote: + text: |- + Do not remove the "batch.kubernetes.io/job-tracking" finalizer from a Pod, in a corner + case scenario, when the Pod is controlled by an API object which is not a batch Job + (e.g. when the Pod is controlled by a custom CRD). diff --git a/releases/release-1.31/release-notes/maps/pr-124819-map.yaml b/releases/release-1.31/release-notes/maps/pr-124819-map.yaml index 05cf276c887..adfdfff718c 100644 --- a/releases/release-1.31/release-notes/maps/pr-124819-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124819-map.yaml @@ -1,5 +1,5 @@ -pr: 124819 -releasenote: - text: Added a warning when creating or updating a PersistentVolume (PV) with the - deprecated annotation `volume.beta.kubernetes.io/mount-options`. -pr_body: "" +pr: 124819 +releasenote: + text: Added a warning when creating or updating a PersistentVolume (PV) with the + deprecated annotation `volume.beta.kubernetes.io/mount-options`. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124820-map.yaml b/releases/release-1.31/release-notes/maps/pr-124820-map.yaml index 42eb389a02b..51ef22de864 100644 --- a/releases/release-1.31/release-notes/maps/pr-124820-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124820-map.yaml @@ -1,8 +1,8 @@ -pr: 124820 -releasenote: - text: |- - 'kubeadm: enhanced the "patches" functionality to be able to patch coredns - deployment. The new patch target is called "corednsdeployment" (e.g. patch file - "corednsdeployment+json.json"). This makes it possible to apply custom patches - to coredns deployment during "init" and "upgrade".' -pr_body: "" +pr: 124820 +releasenote: + text: |- + 'kubeadm: enhanced the "patches" functionality to be able to patch coredns + deployment. The new patch target is called "corednsdeployment" (e.g. patch file + "corednsdeployment+json.json"). This makes it possible to apply custom patches + to coredns deployment during "init" and "upgrade".' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124828-map.yaml b/releases/release-1.31/release-notes/maps/pr-124828-map.yaml index a29cdd2f57c..6ff82d154b5 100644 --- a/releases/release-1.31/release-notes/maps/pr-124828-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124828-map.yaml @@ -1,4 +1,4 @@ -pr: 124828 -releasenote: - text: Built Kubernetes with Go 1.22.3. -pr_body: "" +pr: 124828 +releasenote: + text: Built Kubernetes with Go 1.22.3. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124864-map.yaml b/releases/release-1.31/release-notes/maps/pr-124864-map.yaml index df90252feb8..935ac42aa6b 100644 --- a/releases/release-1.31/release-notes/maps/pr-124864-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124864-map.yaml @@ -1,4 +1,4 @@ -pr: 124864 -releasenote: - text: "Reverted remove legacycloudproviders from staging." -pr_body: "" +pr: 124864 +releasenote: + text: "Reverted remove legacycloudproviders from staging." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124883-map.yaml b/releases/release-1.31/release-notes/maps/pr-124883-map.yaml index fe0661fff6c..321782eec74 100644 --- a/releases/release-1.31/release-notes/maps/pr-124883-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124883-map.yaml @@ -1,6 +1,6 @@ -pr: 124883 -releasenote: - text: |- - Dropped the additional rule requirement (cronjobs/finalizers) for roles - using kubectl create cronjobs to ensure backward compatibility. -pr_body: "" +pr: 124883 +releasenote: + text: |- + Dropped the additional rule requirement (cronjobs/finalizers) for roles + using kubectl create cronjobs to ensure backward compatibility. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124884-map.yaml b/releases/release-1.31/release-notes/maps/pr-124884-map.yaml index 71b00c5c681..bb45e28b1b8 100644 --- a/releases/release-1.31/release-notes/maps/pr-124884-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124884-map.yaml @@ -1,5 +1,5 @@ -pr: 124884 -releasenote: - text: Added a feature to report an event about a Pod if kubelet observes a failed attach - operation, even if the kubelet is running with `--enable-controller-attach-detach=false`. -pr_body: "" +pr: 124884 +releasenote: + text: Added a feature to report an event about a Pod if kubelet observes a failed attach + operation, even if the kubelet is running with `--enable-controller-attach-detach=false`. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124886-map.yaml b/releases/release-1.31/release-notes/maps/pr-124886-map.yaml index 660837bc669..c9f7c11de9c 100644 --- a/releases/release-1.31/release-notes/maps/pr-124886-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124886-map.yaml @@ -1,5 +1,5 @@ -pr: 124886 -releasenote: - text: Removed legacy cloud provider integration code (undoing a previous reverted - commit). -pr_body: "" +pr: 124886 +releasenote: + text: Removed legacy cloud provider integration code (undoing a previous reverted + commit). +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124906-map.yaml b/releases/release-1.31/release-notes/maps/pr-124906-map.yaml index 326a636cc4b..f2a9332d99a 100644 --- a/releases/release-1.31/release-notes/maps/pr-124906-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124906-map.yaml @@ -1,4 +1,4 @@ -pr: 124906 -releasenote: - text: 'kube-apiserver: fixed a 1.28 regression printing pods with invalid initContainer status.' -pr_body: "" +pr: 124906 +releasenote: + text: 'kube-apiserver: fixed a 1.28 regression printing pods with invalid initContainer status.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124912-map.yaml b/releases/release-1.31/release-notes/maps/pr-124912-map.yaml index 7b8873b5b13..6d340059444 100644 --- a/releases/release-1.31/release-notes/maps/pr-124912-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124912-map.yaml @@ -1,9 +1,9 @@ -pr: 124912 -releasenote: - text: 'kube-apiserver: the `--encryption-provider-config` file is now loaded with - strict deserialization, which fails if the config file contains duplicate or unknown - fields. This protects against accidentally running with config files that are - malformed, mis-indented, or have typos in field names, and getting unexpected - behavior. When `--encryption-provider-config-automatic-reload` is used, new encryption - config files that contain typos after the kube-apiserver is running are treated - as invalid and the last valid config is used.' +pr: 124912 +releasenote: + text: 'kube-apiserver: the `--encryption-provider-config` file is now loaded with + strict deserialization, which fails if the config file contains duplicate or unknown + fields. This protects against accidentally running with config files that are + malformed, mis-indented, or have typos in field names, and getting unexpected + behavior. When `--encryption-provider-config-automatic-reload` is used, new encryption + config files that contain typos after the kube-apiserver is running are treated + as invalid and the last valid config is used.' diff --git a/releases/release-1.31/release-notes/maps/pr-124917-map.yaml b/releases/release-1.31/release-notes/maps/pr-124917-map.yaml index b8f2d74c38f..74382d95245 100644 --- a/releases/release-1.31/release-notes/maps/pr-124917-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124917-map.yaml @@ -1,6 +1,6 @@ -pr: 124917 -releasenote: - text: When the feature gate AnonymousAuthConfigurableEndpoints is enabled users can - update the AuthenticationConfig file with endpoints for with anonymous requests - are allowed. -pr_body: "" +pr: 124917 +releasenote: + text: When the feature gate AnonymousAuthConfigurableEndpoints is enabled users can + update the AuthenticationConfig file with endpoints for with anonymous requests + are allowed. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124926-map.yaml b/releases/release-1.31/release-notes/maps/pr-124926-map.yaml index 91351c6598f..2d0d421ff27 100644 --- a/releases/release-1.31/release-notes/maps/pr-124926-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124926-map.yaml @@ -1,6 +1,6 @@ -pr: 124926 -releasenote: - text: Users can traverse all the pods that are in the scheduler and waiting in the - permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods - in scheduler can be obtained from any profiles. Before this commit, each profile - could only obtain waitingPods within that profile. +pr: 124926 +releasenote: + text: Users can traverse all the pods that are in the scheduler and waiting in the + permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods + in scheduler can be obtained from any profiles. Before this commit, each profile + could only obtain waitingPods within that profile. diff --git a/releases/release-1.31/release-notes/maps/pr-124931-map.yaml b/releases/release-1.31/release-notes/maps/pr-124931-map.yaml index aa2a76a45b0..38cb5806b18 100644 --- a/releases/release-1.31/release-notes/maps/pr-124931-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124931-map.yaml @@ -1,6 +1,6 @@ -pr: 124931 -releasenote: - text: 'Dynamic Resource Allocation (DRA): using structured parameters with a claim that gets reused between pods - may have led to a claim with an invalid state (allocated without a finalizer) - which then caused scheduling of pods using the claim to stop.' -pr_body: "" +pr: 124931 +releasenote: + text: 'Dynamic Resource Allocation (DRA): using structured parameters with a claim that gets reused between pods + may have led to a claim with an invalid state (allocated without a finalizer) + which then caused scheduling of pods using the claim to stop.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124933-map.yaml b/releases/release-1.31/release-notes/maps/pr-124933-map.yaml index 82363a30415..c433dc2822b 100644 --- a/releases/release-1.31/release-notes/maps/pr-124933-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124933-map.yaml @@ -1,4 +1,4 @@ -pr: 124933 -releasenote: - text: Fixed a bug in the scheduler where it would crash when prefilter returns a - non-existent node. +pr: 124933 +releasenote: + text: Fixed a bug in the scheduler where it would crash when prefilter returns a + non-existent node. diff --git a/releases/release-1.31/release-notes/maps/pr-124942-map.yaml b/releases/release-1.31/release-notes/maps/pr-124942-map.yaml index 0947d151c1a..7a6a862bef4 100644 --- a/releases/release-1.31/release-notes/maps/pr-124942-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124942-map.yaml @@ -1,4 +1,4 @@ -pr: 124942 -releasenote: - text: The sidecars' finish time will now be accounted for when calculating the job's finish time. -pr_body: "" +pr: 124942 +releasenote: + text: The sidecars' finish time will now be accounted for when calculating the job's finish time. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124948-map.yaml b/releases/release-1.31/release-notes/maps/pr-124948-map.yaml index 72a1a2db2b5..84c2cd9f095 100644 --- a/releases/release-1.31/release-notes/maps/pr-124948-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124948-map.yaml @@ -1,5 +1,5 @@ -pr: 124948 -releasenote: - text: 'kube-controller-manager: the `horizontal-pod-autoscaler-upscale-delay` and - `horizontal-pod-autoscaler-downscale-delay` flags have been removed (deprecated - and non-functional since v1.12).' +pr: 124948 +releasenote: + text: 'kube-controller-manager: the `horizontal-pod-autoscaler-upscale-delay` and + `horizontal-pod-autoscaler-downscale-delay` flags have been removed (deprecated + and non-functional since v1.12).' diff --git a/releases/release-1.31/release-notes/maps/pr-124958-map.yaml b/releases/release-1.31/release-notes/maps/pr-124958-map.yaml index 5cd59bc31f4..552586103eb 100644 --- a/releases/release-1.31/release-notes/maps/pr-124958-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124958-map.yaml @@ -1,6 +1,6 @@ -pr: 124958 -releasenote: - text: |- - The kube-scheduler added support for scheduling hints for the StorageClass resource within the VolumeBinding plugin. - The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. -pr_body: "" +pr: 124958 +releasenote: + text: |- + The kube-scheduler added support for scheduling hints for the StorageClass resource within the VolumeBinding plugin. + The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124959-map.yaml b/releases/release-1.31/release-notes/maps/pr-124959-map.yaml index f6b6b76c3c4..8d5dc1d0e02 100644 --- a/releases/release-1.31/release-notes/maps/pr-124959-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124959-map.yaml @@ -1,6 +1,6 @@ -pr: 124959 -releasenote: - text: |- - The kube-scheduler added support for scheduling hints for the PersistentVolumeClaim resource within the VolumeBinding plugin. - The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. -pr_body: "" +pr: 124959 +releasenote: + text: |- + The kube-scheduler added support for scheduling hints for the PersistentVolumeClaim resource within the VolumeBinding plugin. + The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124961-map.yaml b/releases/release-1.31/release-notes/maps/pr-124961-map.yaml index b2fa9439e8a..b516d0eaa65 100644 --- a/releases/release-1.31/release-notes/maps/pr-124961-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124961-map.yaml @@ -1,6 +1,6 @@ -pr: 124961 -releasenote: - text: |- - The kube-scheduler added support for scheduling hints for the CSIStorageCapacity resource within the VolumeBinding plugin. - The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. -pr_body: "" +pr: 124961 +releasenote: + text: |- + The kube-scheduler added support for scheduling hints for the CSIStorageCapacity resource within the VolumeBinding plugin. + The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124969-map.yaml b/releases/release-1.31/release-notes/maps/pr-124969-map.yaml index 706d31b5b9d..7296727046b 100644 --- a/releases/release-1.31/release-notes/maps/pr-124969-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124969-map.yaml @@ -1,4 +1,4 @@ -pr: 124969 -releasenote: - text: PersistentVolumeLastPhaseTransitionTime feature is stable and enabled by default. -pr_body: "" +pr: 124969 +releasenote: + text: PersistentVolumeLastPhaseTransitionTime feature is stable and enabled by default. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124994-map.yaml b/releases/release-1.31/release-notes/maps/pr-124994-map.yaml index 407b77f87c9..b0028b45164 100644 --- a/releases/release-1.31/release-notes/maps/pr-124994-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124994-map.yaml @@ -1,4 +1,4 @@ -pr: 124994 -releasenote: - text: Added namespace autocompletion for `kubectl config set-context` command. -pr_body: "" +pr: 124994 +releasenote: + text: Added namespace autocompletion for `kubectl config set-context` command. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124996-map.yaml b/releases/release-1.31/release-notes/maps/pr-124996-map.yaml index 482d29fe1cc..291a04b3319 100644 --- a/releases/release-1.31/release-notes/maps/pr-124996-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124996-map.yaml @@ -1,7 +1,7 @@ -pr: 124996 -releasenote: - text: "kube-scheduler implements scheduling hints for the VolumeZone plugin.\nThe - scheduling hints allow the scheduler to only retry scheduling a Pod\nthat was - previously rejected by the VolumeZone plugin if addition/update of node, \naddition/update - of PV, addition/update of PVC, or addition of SC matches pod's topology settings." -pr_body: "" +pr: 124996 +releasenote: + text: "kube-scheduler implements scheduling hints for the VolumeZone plugin.\nThe + scheduling hints allow the scheduler to only retry scheduling a Pod\nthat was + previously rejected by the VolumeZone plugin if addition/update of node, \naddition/update + of PV, addition/update of PVC, or addition of SC matches pod's topology settings." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-124997-map.yaml b/releases/release-1.31/release-notes/maps/pr-124997-map.yaml index 666d7bf562a..a5653e59551 100644 --- a/releases/release-1.31/release-notes/maps/pr-124997-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-124997-map.yaml @@ -1,6 +1,6 @@ -pr: 124997 -releasenote: - text: |- - kubeadm: deprecated the kubeadm `RootlessControlPlane` feature gate (previously alpha), given that the core K8s `UserNamespacesSupport` feature gate graduated to beta in 1.30. - Once core Kubernetes support for user namespaces is generally available and kubeadm has started to support running the control plane in userns pods, the kubeadm `RootlessControlPlane` feature gate will be removed entirely. - Until kubeadm supports the userns functionality out of the box, users can continue using the deprecated `RootlessControlPlane` feature gate, or opt-in `UserNamespacesSupport` by using kubeadm patches on the static pod manifests. +pr: 124997 +releasenote: + text: |- + kubeadm: deprecated the kubeadm `RootlessControlPlane` feature gate (previously alpha), given that the core K8s `UserNamespacesSupport` feature gate graduated to beta in 1.30. + Once core Kubernetes support for user namespaces is generally available and kubeadm has started to support running the control plane in userns pods, the kubeadm `RootlessControlPlane` feature gate will be removed entirely. + Until kubeadm supports the userns functionality out of the box, users can continue using the deprecated `RootlessControlPlane` feature gate, or opt-in `UserNamespacesSupport` by using kubeadm patches on the static pod manifests. diff --git a/releases/release-1.31/release-notes/maps/pr-125015-map.yaml b/releases/release-1.31/release-notes/maps/pr-125015-map.yaml index 945b53eedac..ece31b6e965 100644 --- a/releases/release-1.31/release-notes/maps/pr-125015-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125015-map.yaml @@ -1,5 +1,5 @@ -pr: 125015 -releasenote: - text: |- - The iptables mode of kube-proxy now tracks accepted packets that are destined for node-ports on localhost by introducing `kubeproxy_iptables_localhost_nodeports_accepted_packets_total` metric. - This will help users to identify if they rely on iptables.localhostNodePorts feature and ultimately help them to migrate from iptables to nftables. +pr: 125015 +releasenote: + text: |- + The iptables mode of kube-proxy now tracks accepted packets that are destined for node-ports on localhost by introducing `kubeproxy_iptables_localhost_nodeports_accepted_packets_total` metric. + This will help users to identify if they rely on iptables.localhostNodePorts feature and ultimately help them to migrate from iptables to nftables. diff --git a/releases/release-1.31/release-notes/maps/pr-125016-map.yaml b/releases/release-1.31/release-notes/maps/pr-125016-map.yaml index fbf76a381cd..7f217b3458d 100644 --- a/releases/release-1.31/release-notes/maps/pr-125016-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125016-map.yaml @@ -1,7 +1,7 @@ -pr: 125016 -releasenote: - text: The feature-gate CSIMigrationPortworx was promoted to beta in Kubernetes 1.25, - but turned off by default. In 1.31, it was turned on by default. Before upgrading - to 1.31, please make sure that the corresponding portworx csi driver is installed - if you are using Portworx. -pr_body: "" +pr: 125016 +releasenote: + text: The feature-gate CSIMigrationPortworx was promoted to beta in Kubernetes 1.25, + but turned off by default. In 1.31, it was turned on by default. Before upgrading + to 1.31, please make sure that the corresponding portworx csi driver is installed + if you are using Portworx. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125021-map.yaml b/releases/release-1.31/release-notes/maps/pr-125021-map.yaml index 98da77a9b0e..3695880d890 100644 --- a/releases/release-1.31/release-notes/maps/pr-125021-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125021-map.yaml @@ -1,6 +1,6 @@ -pr: 125021 -releasenote: - text: Updated the feature MultiCIDRServiceAllocator to beta (disabled by default). - Users need to enable the feature gate and the networking v1beta1 group to be able - to use this new feature, that allows to dynamically reconfigure Service CIDR ranges. -pr_body: "" +pr: 125021 +releasenote: + text: Updated the feature MultiCIDRServiceAllocator to beta (disabled by default). + Users need to enable the feature gate and the networking v1beta1 group to be able + to use this new feature, that allows to dynamically reconfigure Service CIDR ranges. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125029-map.yaml b/releases/release-1.31/release-notes/maps/pr-125029-map.yaml index 0990bf8aa40..683f9ff9c06 100644 --- a/releases/release-1.31/release-notes/maps/pr-125029-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125029-map.yaml @@ -1,13 +1,13 @@ -pr: 125029 -releasenote: - text: "kubeadm: enabled the v1beta4 API. For a complete changelog since v1beta3 - please see https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta4/. - \n\nThe API does include a few breaking changes:\n- The \"extraArgs\" component - construct is now a list of \"name\"/\"value\" pairs instead of a string/string - map. This has been done to support duplicate args where needed.\n- The \"JoinConfiguration.discovery.timeout\" - field has been replaced by \"JoinConfiguration.timeouts.discovery\".\n- The \"ClusterConfiguration.timeoutForControlPlane\" - field has been replaced by \"{Init|Join}Configuration.timeouts.controlPlaneComponentHealthCheck\".\nPlease - use the command \"kubeadm config migrate\" to migrate your existing v1beta3 configuration - to v1beta4.\n\nv1beta3 is now marked as deprecated but will continue to be supported - until version 1.34 or later.\nThe storage configuration in the kube-system/kubeadm-config - ConfigMap is now a v1beta4 ClusterConfiguration." +pr: 125029 +releasenote: + text: "kubeadm: enabled the v1beta4 API. For a complete changelog since v1beta3 + please see https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta4/. + \n\nThe API does include a few breaking changes:\n- The \"extraArgs\" component + construct is now a list of \"name\"/\"value\" pairs instead of a string/string + map. This has been done to support duplicate args where needed.\n- The \"JoinConfiguration.discovery.timeout\" + field has been replaced by \"JoinConfiguration.timeouts.discovery\".\n- The \"ClusterConfiguration.timeoutForControlPlane\" + field has been replaced by \"{Init|Join}Configuration.timeouts.controlPlaneComponentHealthCheck\".\nPlease + use the command \"kubeadm config migrate\" to migrate your existing v1beta3 configuration + to v1beta4.\n\nv1beta3 is now marked as deprecated but will continue to be supported + until version 1.34 or later.\nThe storage configuration in the kube-system/kubeadm-config + ConfigMap is now a v1beta4 ClusterConfiguration." diff --git a/releases/release-1.31/release-notes/maps/pr-125040-map.yaml b/releases/release-1.31/release-notes/maps/pr-125040-map.yaml index 90c25ff663b..04630fa2af0 100644 --- a/releases/release-1.31/release-notes/maps/pr-125040-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125040-map.yaml @@ -1,5 +1,5 @@ -pr: 125040 -releasenote: - text: Fixed an issue where kubelet on Windows would fail if a pod had a SecurityContext - with `RunAsUser`. -pr_body: "" +pr: 125040 +releasenote: + text: Fixed an issue where kubelet on Windows would fail if a pod had a SecurityContext + with `RunAsUser`. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125067-map.yaml b/releases/release-1.31/release-notes/maps/pr-125067-map.yaml index 5bc83cd6ea8..5ccd7b35353 100644 --- a/releases/release-1.31/release-notes/maps/pr-125067-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125067-map.yaml @@ -1,6 +1,6 @@ -pr: 125067 -releasenote: - text: |- - `pause`: Added a `-v` flag to the Windows variant of the pause binary, which - prints the version of pause and exits. The Linux pause binary already has this flag. -pr_body: "" +pr: 125067 +releasenote: + text: |- + `pause`: Added a `-v` flag to the Windows variant of the pause binary, which + prints the version of pause and exits. The Linux pause binary already has this flag. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125082-map.yaml b/releases/release-1.31/release-notes/maps/pr-125082-map.yaml index fcb0acbe245..ed0ff526c74 100644 --- a/releases/release-1.31/release-notes/maps/pr-125082-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125082-map.yaml @@ -1,4 +1,4 @@ -pr: 125082 -releasenote: - text: Promoted the feature gate `KubeProxyDrainingTerminatingNodes` to stable -pr_body: "" +pr: 125082 +releasenote: + text: Promoted the feature gate `KubeProxyDrainingTerminatingNodes` to stable +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125097-map.yaml b/releases/release-1.31/release-notes/maps/pr-125097-map.yaml index 90dcfa2f805..857b95d65be 100644 --- a/releases/release-1.31/release-notes/maps/pr-125097-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125097-map.yaml @@ -1,5 +1,5 @@ -pr: 125097 -releasenote: - text: The scheduler implements QueueingHint in VolumeBinding plugin's CSINode event, - which enhances the throughput of scheduling. -pr_body: "" +pr: 125097 +releasenote: + text: The scheduler implements QueueingHint in VolumeBinding plugin's CSINode event, + which enhances the throughput of scheduling. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125112-map.yaml b/releases/release-1.31/release-notes/maps/pr-125112-map.yaml index 24b9545bc51..c825cd2888e 100644 --- a/releases/release-1.31/release-notes/maps/pr-125112-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125112-map.yaml @@ -1,4 +1,4 @@ -pr: 125112 -releasenote: - text: 'dependencies: started using registry.k8s.io/pause:3.10.' -pr_body: "" +pr: 125112 +releasenote: + text: 'dependencies: started using registry.k8s.io/pause:3.10.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125113-map.yaml b/releases/release-1.31/release-notes/maps/pr-125113-map.yaml index 9a8b516c2d3..f9d09482701 100644 --- a/releases/release-1.31/release-notes/maps/pr-125113-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125113-map.yaml @@ -1,4 +1,4 @@ -pr: 125113 -releasenote: - text: Updated CNI Plugins to v1.5.0. -pr_body: "" +pr: 125113 +releasenote: + text: Updated CNI Plugins to v1.5.0. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125116-map.yaml b/releases/release-1.31/release-notes/maps/pr-125116-map.yaml index 1db24652a87..699e25b83a1 100644 --- a/releases/release-1.31/release-notes/maps/pr-125116-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125116-map.yaml @@ -1,6 +1,6 @@ -pr: 125116 -releasenote: - text: 'Dynamic Resource Allocation (DRA): in the `pod.spec.recourceClaims` array, the `source` indirection is - no longer necessary. Instead of e.g. `source: resourceClaimTemplateName: my-template`, - one can write `resourceClaimTemplateName: my-template`.' -pr_body: "" +pr: 125116 +releasenote: + text: 'Dynamic Resource Allocation (DRA): in the `pod.spec.recourceClaims` array, the `source` indirection is + no longer necessary. Instead of e.g. `source: resourceClaimTemplateName: my-template`, + one can write `resourceClaimTemplateName: my-template`.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125117-map.yaml b/releases/release-1.31/release-notes/maps/pr-125117-map.yaml index 087fbebe6cb..dd14a6d1e06 100644 --- a/releases/release-1.31/release-notes/maps/pr-125117-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125117-map.yaml @@ -1,5 +1,5 @@ -pr: 125117 -releasenote: - text: '`kubectl describe service` now shows internal traffic policy and ip mode - of load balancer IP.' -pr_body: "" +pr: 125117 +releasenote: + text: '`kubectl describe service` now shows internal traffic policy and ip mode + of load balancer IP.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125145-map.yaml b/releases/release-1.31/release-notes/maps/pr-125145-map.yaml index 6e2d0a98b52..6d122b30446 100644 --- a/releases/release-1.31/release-notes/maps/pr-125145-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125145-map.yaml @@ -1,6 +1,6 @@ -pr: 125145 -releasenote: - text: 'kube-apiserver: fixed a 1.27+ regression watching a single namespace via - the deprecated /api/v1/watch/namespaces/$name endpoint where watch events were - not delivered after the watch was established.' -pr_body: "" +pr: 125145 +releasenote: + text: 'kube-apiserver: fixed a 1.27+ regression watching a single namespace via + the deprecated /api/v1/watch/namespaces/$name endpoint where watch events were + not delivered after the watch was established.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125150-map.yaml b/releases/release-1.31/release-notes/maps/pr-125150-map.yaml index 7249d701b3a..ff75c458652 100644 --- a/releases/release-1.31/release-notes/maps/pr-125150-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125150-map.yaml @@ -1,3 +1,3 @@ -pr: 125150 -releasenote: - text: Container Storage Interface (CSI) spec support has been lifted to v1.9.0 in this release. +pr: 125150 +releasenote: + text: Container Storage Interface (CSI) spec support has been lifted to v1.9.0 in this release. diff --git a/releases/release-1.31/release-notes/maps/pr-125157-map.yaml b/releases/release-1.31/release-notes/maps/pr-125157-map.yaml index f179bf2f800..5d6329e2ff0 100644 --- a/releases/release-1.31/release-notes/maps/pr-125157-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125157-map.yaml @@ -1,4 +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: "" +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/releases/release-1.31/release-notes/maps/pr-125162-map.yaml b/releases/release-1.31/release-notes/maps/pr-125162-map.yaml index 66d62faf9ef..ecd31dd0d2d 100644 --- a/releases/release-1.31/release-notes/maps/pr-125162-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125162-map.yaml @@ -1,4 +1,4 @@ -pr: 125162 -releasenote: - text: Fixed code-generator client-gen to work with `api/v1`-like package structure. -pr_body: "" +pr: 125162 +releasenote: + text: Fixed code-generator client-gen to work with `api/v1`-like package structure. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125163-map.yaml b/releases/release-1.31/release-notes/maps/pr-125163-map.yaml index 726a5461af8..50990506f08 100644 --- a/releases/release-1.31/release-notes/maps/pr-125163-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125163-map.yaml @@ -1,7 +1,7 @@ -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.' -pr_body: "" +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.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125168-map.yaml b/releases/release-1.31/release-notes/maps/pr-125168-map.yaml index 2076cf95858..41af783aca0 100644 --- a/releases/release-1.31/release-notes/maps/pr-125168-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125168-map.yaml @@ -1,5 +1,5 @@ -pr: 125168 -releasenote: - text: 'job-controller: the `JobReadyPods` feature flag has been removed (deprecated - since v1.31).' -pr_body: "" +pr: 125168 +releasenote: + text: 'job-controller: the `JobReadyPods` feature flag has been removed (deprecated + since v1.31).' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125175-map.yaml b/releases/release-1.31/release-notes/maps/pr-125175-map.yaml index 8c05110ed77..d49512290a2 100644 --- a/releases/release-1.31/release-notes/maps/pr-125175-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125175-map.yaml @@ -1,4 +1,4 @@ -pr: 125175 -releasenote: - text: .status.terminating field now gets tracked faster when active Pods are deleted, - specifically when Job is failed, gets suspended or has too many active pods. +pr: 125175 +releasenote: + text: .status.terminating field now gets tracked faster when active Pods are deleted, + specifically when Job is failed, gets suspended or has too many active pods. diff --git a/releases/release-1.31/release-notes/maps/pr-125179-map.yaml b/releases/release-1.31/release-notes/maps/pr-125179-map.yaml index 807215476a0..671d81896e2 100644 --- a/releases/release-1.31/release-notes/maps/pr-125179-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125179-map.yaml @@ -1,7 +1,7 @@ -pr: 125179 -releasenote: - text: 'kubeadm: Strictly enabled only the supported klog flags, disallowing previously available but unrecommended options. This means that - hidden flags about klog (including `--alsologtostderr`, `--log-backtrace-at`, - `--log-dir`, `--logtostderr`, `--log-file`, `--log-file-max-size`, `--one-output`, - `--skip-log-headers`, `--stderrthreshold` and `--vmodule`) are no longer allowed - to be used.' +pr: 125179 +releasenote: + text: 'kubeadm: Strictly enabled only the supported klog flags, disallowing previously available but unrecommended options. This means that + hidden flags about klog (including `--alsologtostderr`, `--log-backtrace-at`, + `--log-dir`, `--logtostderr`, `--log-file`, `--log-file-max-size`, `--one-output`, + `--skip-log-headers`, `--stderrthreshold` and `--vmodule`) are no longer allowed + to be used.' diff --git a/releases/release-1.31/release-notes/maps/pr-125197-map.yaml b/releases/release-1.31/release-notes/maps/pr-125197-map.yaml index 4857c4f005d..0cc7c8f7122 100644 --- a/releases/release-1.31/release-notes/maps/pr-125197-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125197-map.yaml @@ -1,6 +1,6 @@ -pr: 125197 -releasenote: - text: |- - Improved scheduling performance when many nodes, and prefilter returned 1-2 nodes (e.g. daemonset) - - For developers of out-of-tree PostFilter plugins, note that the semantics of NodeToStatusMap are changing: A node with an absent value in the NodeToStatusMap should be interpreted as having an UnschedulableAndUnresolvable status. +pr: 125197 +releasenote: + text: |- + Improved scheduling performance when many nodes, and prefilter returned 1-2 nodes (e.g. daemonset) + + For developers of out-of-tree PostFilter plugins, note that the semantics of NodeToStatusMap are changing: A node with an absent value in the NodeToStatusMap should be interpreted as having an UnschedulableAndUnresolvable status. diff --git a/releases/release-1.31/release-notes/maps/pr-125218-map.yaml b/releases/release-1.31/release-notes/maps/pr-125218-map.yaml index 97d3e800aeb..efd338e84a4 100644 --- a/releases/release-1.31/release-notes/maps/pr-125218-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125218-map.yaml @@ -1,8 +1,8 @@ -pr: 125218 -releasenote: - text: |- - Dynamic Resource Allocator (DRA): Enhanced validation for the ResourceClaimParametersReference and ResourceClassParametersReference with the following rules: - - 1. `apiGroup`: If set, it must be a valid DNS subdomain (e.g. 'example.com'). - 2. `kind` and `name`: It must be valid path segment name. It may not be '.' or '..' and it may not contain '/' and '%' characters. - documentation: [] +pr: 125218 +releasenote: + text: |- + Dynamic Resource Allocator (DRA): Enhanced validation for the ResourceClaimParametersReference and ResourceClassParametersReference with the following rules: + + 1. `apiGroup`: If set, it must be a valid DNS subdomain (e.g. 'example.com'). + 2. `kind` and `name`: It must be valid path segment name. It may not be '.' or '..' and it may not contain '/' and '%' characters. + documentation: [] diff --git a/releases/release-1.31/release-notes/maps/pr-125225-map.yaml b/releases/release-1.31/release-notes/maps/pr-125225-map.yaml index 9003698c616..50f7f8281b2 100644 --- a/releases/release-1.31/release-notes/maps/pr-125225-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125225-map.yaml @@ -1,7 +1,7 @@ -pr: 125225 -releasenote: - text: Fixed an issue where the Service LoadBalancer controller was not correctly - considering the `service.Status new IPMode` field and excluding the Ports when checking - if the status was changed, resulting in the changed field potentially not to update - the `service.Status` correctly. -pr_body: "" +pr: 125225 +releasenote: + text: Fixed an issue where the Service LoadBalancer controller was not correctly + considering the `service.Status new IPMode` field and excluding the Ports when checking + if the status was changed, resulting in the changed field potentially not to update + the `service.Status` correctly. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125235-map.yaml b/releases/release-1.31/release-notes/maps/pr-125235-map.yaml index 433f9ab26e0..6787c834975 100644 --- a/releases/release-1.31/release-notes/maps/pr-125235-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125235-map.yaml @@ -1,4 +1,4 @@ -pr: 125235 -releasenote: - text: Built etcd image v3.5.14. -pr_body: "" +pr: 125235 +releasenote: + text: Built etcd image v3.5.14. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125238-map.yaml b/releases/release-1.31/release-notes/maps/pr-125238-map.yaml index c8ae558b439..85607d6f531 100644 --- a/releases/release-1.31/release-notes/maps/pr-125238-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125238-map.yaml @@ -1,6 +1,6 @@ -pr: 125238 -releasenote: - text: |- - Allowed creating ServiceAccount tokens bound to Node objects. - This allows users to bind a service account token's validity to a named Node object, similar to Pod bound tokens. - Use with `kubectl create token <serviceaccount-name> --bound-object-kind=Node --bound-object-node=<node-name>`. +pr: 125238 +releasenote: + text: |- + Allowed creating ServiceAccount tokens bound to Node objects. + This allows users to bind a service account token's validity to a named Node object, similar to Pod bound tokens. + Use with `kubectl create token <serviceaccount-name> --bound-object-kind=Node --bound-object-node=<node-name>`. diff --git a/releases/release-1.31/release-notes/maps/pr-125257-map.yaml b/releases/release-1.31/release-notes/maps/pr-125257-map.yaml index 84849e182e2..39c2c082ee4 100644 --- a/releases/release-1.31/release-notes/maps/pr-125257-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125257-map.yaml @@ -1,5 +1,5 @@ -pr: 125257 -releasenote: - text: Graduated Kubernetes' support for AppArmor to GA. You now cannot disable the `AppArmor` - feature gate. -pr_body: "" +pr: 125257 +releasenote: + text: Graduated Kubernetes' support for AppArmor to GA. You now cannot disable the `AppArmor` + feature gate. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125259-map.yaml b/releases/release-1.31/release-notes/maps/pr-125259-map.yaml index d8303c3aafb..076d172bac1 100644 --- a/releases/release-1.31/release-notes/maps/pr-125259-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125259-map.yaml @@ -1,4 +1,4 @@ -pr: 125259 -releasenote: - text: Promoted the `ProcMountType` feature gate to beta. -pr_body: "" +pr: 125259 +releasenote: + text: Promoted the `ProcMountType` feature gate to beta. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125263-map.yaml b/releases/release-1.31/release-notes/maps/pr-125263-map.yaml index e7fa7d750ea..13fdc1e7ce0 100644 --- a/releases/release-1.31/release-notes/maps/pr-125263-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125263-map.yaml @@ -1,5 +1,5 @@ -pr: 125263 -releasenote: - text: Fixed bug where Server Side Apply causes spurious resourceVersion bumps on no-op - patches to custom resources. -pr_body: "" +pr: 125263 +releasenote: + text: Fixed bug where Server Side Apply causes spurious resourceVersion bumps on no-op + patches to custom resources. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125265-map.yaml b/releases/release-1.31/release-notes/maps/pr-125265-map.yaml index 597738a944f..75c3a3d0d07 100644 --- a/releases/release-1.31/release-notes/maps/pr-125265-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125265-map.yaml @@ -1,5 +1,5 @@ -pr: 125265 -releasenote: - text: 'kubeadm: The healthz address:port configured in the KubeletConfiguration - was used during kubelet health checks, instead of hardcoding localhost:10248.' -pr_body: "" +pr: 125265 +releasenote: + text: 'kubeadm: The healthz address:port configured in the KubeletConfiguration + was used during kubelet health checks, instead of hardcoding localhost:10248.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125279-map.yaml b/releases/release-1.31/release-notes/maps/pr-125279-map.yaml index a1bf603d25f..31d9526a6dc 100644 --- a/releases/release-1.31/release-notes/maps/pr-125279-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125279-map.yaml @@ -1,6 +1,6 @@ -pr: 125279 -releasenote: - text: |- - kube-scheduler implemented scheduling hints for the VolumeRestriction plugin. - Scheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if the Pod is deleted and the deleted Pod conflicts with the existing volumes of the current Pod. -pr_body: "" +pr: 125279 +releasenote: + text: |- + kube-scheduler implemented scheduling hints for the VolumeRestriction plugin. + Scheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if the Pod is deleted and the deleted Pod conflicts with the existing volumes of the current Pod. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125328-map.yaml b/releases/release-1.31/release-notes/maps/pr-125328-map.yaml index ddd69917594..4715a4bdf1e 100644 --- a/releases/release-1.31/release-notes/maps/pr-125328-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125328-map.yaml @@ -1,4 +1,4 @@ -pr: 125328 -releasenote: - text: Added a warning log, an event for cgroup v1 usage and a metric for cgroup version. -pr_body: "" +pr: 125328 +releasenote: + text: Added a warning log, an event for cgroup v1 usage and a metric for cgroup version. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125333-map.yaml b/releases/release-1.31/release-notes/maps/pr-125333-map.yaml index a937447ff74..ac3e3cc45bf 100644 --- a/releases/release-1.31/release-notes/maps/pr-125333-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125333-map.yaml @@ -1,5 +1,5 @@ -pr: 125333 -releasenote: - text: "`--custom` flag in `kubectl debug` will be enabled by default and yaml support - is added." -pr_body: "" +pr: 125333 +releasenote: + text: "`--custom` flag in `kubectl debug` will be enabled by default and yaml support + is added." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125359-map.yaml b/releases/release-1.31/release-notes/maps/pr-125359-map.yaml index 1906f06d9c2..15f50735bee 100644 --- a/releases/release-1.31/release-notes/maps/pr-125359-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125359-map.yaml @@ -1,6 +1,6 @@ -pr: 125359 -releasenote: - text: 'Fixed: during the kube-controller-manager restart, when the corresponding - Endpoints resource was manually deleted and recreated, causing the endpointslice - to fail to be created normally.' -pr_body: "" +pr: 125359 +releasenote: + text: 'Fixed: during the kube-controller-manager restart, when the corresponding + Endpoints resource was manually deleted and recreated, causing the endpointslice + to fail to be created normally.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125360-map.yaml b/releases/release-1.31/release-notes/maps/pr-125360-map.yaml index 1865955938c..6218502ec29 100644 --- a/releases/release-1.31/release-notes/maps/pr-125360-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125360-map.yaml @@ -1,4 +1,4 @@ -pr: 125360 -releasenote: - text: 'scheduler framework: Allowed PreBind implementations to return Pending - and Unschedulable status codes.' +pr: 125360 +releasenote: + text: 'scheduler framework: Allowed PreBind implementations to return Pending + and Unschedulable status codes.' diff --git a/releases/release-1.31/release-notes/maps/pr-125363-map.yaml b/releases/release-1.31/release-notes/maps/pr-125363-map.yaml index 24ec95ff705..b2633e12b30 100644 --- a/releases/release-1.31/release-notes/maps/pr-125363-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125363-map.yaml @@ -1,4 +1,4 @@ -pr: 125363 -releasenote: - text: Built Kubernetes with Go 1.22.4. -pr_body: "" +pr: 125363 +releasenote: + text: Built Kubernetes with Go 1.22.4. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125374-map.yaml b/releases/release-1.31/release-notes/maps/pr-125374-map.yaml index 9187584879f..3e458deed41 100644 --- a/releases/release-1.31/release-notes/maps/pr-125374-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125374-map.yaml @@ -1,6 +1,6 @@ -pr: 125374 -releasenote: - text: Promoted `StatefulSetStartOrdinal` to stable. This means `--feature-gates=StatefulSetStartOrdinal=true` - are not needed on kube-apiserver and kube-controller-manager binaries and they'll - be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation. -pr_body: "" +pr: 125374 +releasenote: + text: Promoted `StatefulSetStartOrdinal` to stable. This means `--feature-gates=StatefulSetStartOrdinal=true` + are not needed on kube-apiserver and kube-controller-manager binaries and they'll + be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125377-map.yaml b/releases/release-1.31/release-notes/maps/pr-125377-map.yaml index 81c4cb8cdde..be184ed4624 100644 --- a/releases/release-1.31/release-notes/maps/pr-125377-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125377-map.yaml @@ -1,4 +1,4 @@ -pr: 125377 -releasenote: - text: Exposed the `apiserver_watch_cache_resource_version` metric to simplify debugging problems with watchcache. -pr_body: "" +pr: 125377 +releasenote: + text: Exposed the `apiserver_watch_cache_resource_version` metric to simplify debugging problems with watchcache. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125388-map.yaml b/releases/release-1.31/release-notes/maps/pr-125388-map.yaml index f5100c6ae87..02057229c0a 100644 --- a/releases/release-1.31/release-notes/maps/pr-125388-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125388-map.yaml @@ -1,4 +1,4 @@ -pr: 125388 -releasenote: - text: 'kubeadm: Fixed a bug where the PublicKeysECDSA feature gate was not respected - when generating kubeconfig files.' +pr: 125388 +releasenote: + text: 'kubeadm: Fixed a bug where the PublicKeysECDSA feature gate was not respected + when generating kubeconfig files.' diff --git a/releases/release-1.31/release-notes/maps/pr-125396-map.yaml b/releases/release-1.31/release-notes/maps/pr-125396-map.yaml index d56f0d51b02..941562c5364 100644 --- a/releases/release-1.31/release-notes/maps/pr-125396-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125396-map.yaml @@ -1,4 +1,4 @@ -pr: 125396 -releasenote: - text: "`kubeadm`: Allowed the `kubeadm init phase certs sa` command to accept the `--config` flag." -pr_body: "" +pr: 125396 +releasenote: + text: "`kubeadm`: Allowed the `kubeadm init phase certs sa` command to accept the `--config` flag." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125429-map.yaml b/releases/release-1.31/release-notes/maps/pr-125429-map.yaml index 88b35c84189..d079dbe189d 100644 --- a/releases/release-1.31/release-notes/maps/pr-125429-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125429-map.yaml @@ -1,6 +1,6 @@ -pr: 125429 -releasenote: - text: |- - `Job`: Fixed a bug where `SuccessCriteriaMet` could be added to the Job with - `successPolicy` regardless of the `featureGate` being enabled. -pr_body: "" +pr: 125429 +releasenote: + text: |- + `Job`: Fixed a bug where `SuccessCriteriaMet` could be added to the Job with + `successPolicy` regardless of the `featureGate` being enabled. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125437-map.yaml b/releases/release-1.31/release-notes/maps/pr-125437-map.yaml index 8ff25089724..b32c5e3b80f 100644 --- a/releases/release-1.31/release-notes/maps/pr-125437-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125437-map.yaml @@ -1,8 +1,8 @@ -pr: 125437 -releasenote: - text: | - "Removed the ability to run `kubectl exec [POD] [COMMAND]` without a `--` separator. - The `--` separator has been recommended since the Kubernetes v1.18 release, which also deprecated the legacy way of invoking `kubectl exec`. - - This change aligns with the deprecation of legacy `kubectl exec` command execution and enforces the use of `kubectl exec [POD] -- [COMMAND]` for improved compatibility and adherence to recommended practices." -pr_body: "" +pr: 125437 +releasenote: + text: | + "Removed the ability to run `kubectl exec [POD] [COMMAND]` without a `--` separator. + The `--` separator has been recommended since the Kubernetes v1.18 release, which also deprecated the legacy way of invoking `kubectl exec`. + + This change aligns with the deprecation of legacy `kubectl exec` command execution and enforces the use of `kubectl exec [POD] -- [COMMAND]` for improved compatibility and adherence to recommended practices." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125442-map.yaml b/releases/release-1.31/release-notes/maps/pr-125442-map.yaml index e3546993b2b..87430c251e7 100644 --- a/releases/release-1.31/release-notes/maps/pr-125442-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125442-map.yaml @@ -1,4 +1,4 @@ -pr: 125442 -releasenote: - text: Graduated `JobPodFailurePolicy` to GA and locked it to it's default. -pr_body: "" +pr: 125442 +releasenote: + text: Graduated `JobPodFailurePolicy` to GA and locked it to it's default. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125450-map.yaml b/releases/release-1.31/release-notes/maps/pr-125450-map.yaml index e4b89166c5b..d07b3c9d68b 100644 --- a/releases/release-1.31/release-notes/maps/pr-125450-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125450-map.yaml @@ -1,3 +1,3 @@ -pr: 125450 -releasenote: - text: Introduced `Wait(context.Context) error` method in pkg k8s.io/apiserver/pkg/storage/cacher to improve watch cache initialization resilience. +pr: 125450 +releasenote: + text: Introduced `Wait(context.Context) error` method in pkg k8s.io/apiserver/pkg/storage/cacher to improve watch cache initialization resilience. diff --git a/releases/release-1.31/release-notes/maps/pr-125459-map.yaml b/releases/release-1.31/release-notes/maps/pr-125459-map.yaml index 2303d3b0f1b..864717e639d 100644 --- a/releases/release-1.31/release-notes/maps/pr-125459-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125459-map.yaml @@ -1,4 +1,4 @@ -pr: 125459 -releasenote: - text: LogarithmicScaleDown is now GA. -pr_body: "" +pr: 125459 +releasenote: + text: LogarithmicScaleDown is now GA. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125470-map.yaml b/releases/release-1.31/release-notes/maps/pr-125470-map.yaml index a6d2578e918..6f59ce75a13 100644 --- a/releases/release-1.31/release-notes/maps/pr-125470-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125470-map.yaml @@ -1,5 +1,5 @@ -pr: 125470 -releasenote: - text: Added a `.status.features.supplementalGroupsPolicy` field to Nodes. The field is - true when the feature is implemented in the CRI implementation (KEP-3619). -pr_body: "" +pr: 125470 +releasenote: + text: Added a `.status.features.supplementalGroupsPolicy` field to Nodes. The field is + true when the feature is implemented in the CRI implementation (KEP-3619). +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125475-map.yaml b/releases/release-1.31/release-notes/maps/pr-125475-map.yaml index 92d012c389c..4df567e9582 100644 --- a/releases/release-1.31/release-notes/maps/pr-125475-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125475-map.yaml @@ -1,4 +1,4 @@ -pr: 125475 -releasenote: - text: 'KEP-3857: promoted RecursiveReadOnlyMounts feature to beta.' -pr_body: "" +pr: 125475 +releasenote: + text: 'KEP-3857: promoted RecursiveReadOnlyMounts feature to beta.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125480-map.yaml b/releases/release-1.31/release-notes/maps/pr-125480-map.yaml index 6a3af4b1811..7ca07156369 100644 --- a/releases/release-1.31/release-notes/maps/pr-125480-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125480-map.yaml @@ -1,4 +1,4 @@ -pr: 125480 -releasenote: - text: 'kubeadm: Fixed a regression where the JoinConfiguration.discovery.timeout - was no longer respected and the value was always hardcoded to "5m" (5 minutes).' +pr: 125480 +releasenote: + text: 'kubeadm: Fixed a regression where the JoinConfiguration.discovery.timeout + was no longer respected and the value was always hardcoded to "5m" (5 minutes).' diff --git a/releases/release-1.31/release-notes/maps/pr-125488-map.yaml b/releases/release-1.31/release-notes/maps/pr-125488-map.yaml index 36a786aad76..8dc26d59c16 100644 --- a/releases/release-1.31/release-notes/maps/pr-125488-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125488-map.yaml @@ -1,4 +1,4 @@ -pr: 125488 -releasenote: - text: 'Enhanced the Dynamic Resource Allocation (DRA) with an updated version of the resource.k8s.io API group. The primary user-facing type remains the ResourceClaim, however significant changes have been made, resulting in the new version, v1alpha3, which is not compatible with the previous version.' -pr_body: "" +pr: 125488 +releasenote: + text: 'Enhanced the Dynamic Resource Allocation (DRA) with an updated version of the resource.k8s.io API group. The primary user-facing type remains the ResourceClaim, however significant changes have been made, resulting in the new version, v1alpha3, which is not compatible with the previous version.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125510-map.yaml b/releases/release-1.31/release-notes/maps/pr-125510-map.yaml index 7f13b608545..3d4a42f124b 100644 --- a/releases/release-1.31/release-notes/maps/pr-125510-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125510-map.yaml @@ -1,14 +1,14 @@ -pr: 125510 -releasenote: - text: "Delay setting terminal Job conditions until all pods are terminal.\n\nAdditionally, - the FailureTarget condition is also added to the Job object in the first Job\nstatus - update as soon as the failure conditions are met (backoffLimit is exceeded, maxFailedIndexes, - \nor activeDeadlineSeconds is exceeded).\n\nSimilarly, the SuccessCriteriaMet - condition is added in the first update as soon as the expected number\nof pod - completions is reached.\n\nAlso, introduce the following validation rules for - Job status when JobManagedBy is enabled:\n1. the count of ready pods is less or - equal than active\n2. when transitioning to terminal phase for Job, the number - of terminating pods is 0\n3. terminal Job conditions (Failed and Complete) should - be preceded by adding the corresponding interim conditions: FailureTarget and - SuccessCriteriaMet" -pr_body: "" +pr: 125510 +releasenote: + text: "Delay setting terminal Job conditions until all pods are terminal.\n\nAdditionally, + the FailureTarget condition is also added to the Job object in the first Job\nstatus + update as soon as the failure conditions are met (backoffLimit is exceeded, maxFailedIndexes, + \nor activeDeadlineSeconds is exceeded).\n\nSimilarly, the SuccessCriteriaMet + condition is added in the first update as soon as the expected number\nof pod + completions is reached.\n\nAlso, introduce the following validation rules for + Job status when JobManagedBy is enabled:\n1. the count of ready pods is less or + equal than active\n2. when transitioning to terminal phase for Job, the number + of terminating pods is 0\n3. terminal Job conditions (Failed and Complete) should + be preceded by adding the corresponding interim conditions: FailureTarget and + SuccessCriteriaMet" +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125527-map.yaml b/releases/release-1.31/release-notes/maps/pr-125527-map.yaml index ece2e5039c8..4dc71dafb8f 100644 --- a/releases/release-1.31/release-notes/maps/pr-125527-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125527-map.yaml @@ -1,8 +1,8 @@ -pr: 125527 -releasenote: - text: "Fixed a bug that Pods could stuck in the unschedulable pod pool \nif they're - rejected by PreEnqueue plugins that could change its result by a change in resources - apart from Pods.\n\nDRA plugin is the only plugin that meets the criteria of the - bug in in-tree, \nand hence if you have `DynamicResourceAllocation` feature flag - enabled, \nyour DRA Pods could be affected by this bug." -pr_body: "" +pr: 125527 +releasenote: + text: "Fixed a bug that Pods could stuck in the unschedulable pod pool \nif they're + rejected by PreEnqueue plugins that could change its result by a change in resources + apart from Pods.\n\nDRA plugin is the only plugin that meets the criteria of the + bug in in-tree, \nand hence if you have `DynamicResourceAllocation` feature flag + enabled, \nyour DRA Pods could be affected by this bug." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125528-map.yaml b/releases/release-1.31/release-notes/maps/pr-125528-map.yaml index bbf5439c0e8..4685ae0e9d7 100644 --- a/releases/release-1.31/release-notes/maps/pr-125528-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125528-map.yaml @@ -1,7 +1,7 @@ -pr: 125528 -releasenote: - text: |- - Enabled feature gates for PortForward (kubectl port-forward) over WebSockets by default (beta). - - Server-side feature gate: PortForwardWebsocket - - Client-side (kubectl) feature gate: PORT_FORWARD_WEBSOCKETS environment variable - - To turn off PortForward over WebSockets for kubectl, the environment variable feature gate must be explicitly set - PORT_FORWARD_WEBSOCKETS=false +pr: 125528 +releasenote: + text: |- + Enabled feature gates for PortForward (kubectl port-forward) over WebSockets by default (beta). + - Server-side feature gate: PortForwardWebsocket + - Client-side (kubectl) feature gate: PORT_FORWARD_WEBSOCKETS environment variable + - To turn off PortForward over WebSockets for kubectl, the environment variable feature gate must be explicitly set - PORT_FORWARD_WEBSOCKETS=false diff --git a/releases/release-1.31/release-notes/maps/pr-125536-map.yaml b/releases/release-1.31/release-notes/maps/pr-125536-map.yaml index 0cdcd992c28..ef6db826106 100644 --- a/releases/release-1.31/release-notes/maps/pr-125536-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125536-map.yaml @@ -1,5 +1,5 @@ -pr: 125536 -releasenote: - text: Improved the documentation clarity for building Kubernetes in Docker Environment, making it more understandable - for new users and contributors. -pr_body: "" +pr: 125536 +releasenote: + text: Improved the documentation clarity for building Kubernetes in Docker Environment, making it more understandable + for new users and contributors. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125540-map.yaml b/releases/release-1.31/release-notes/maps/pr-125540-map.yaml index 0cdeb071840..35f29145ec2 100644 --- a/releases/release-1.31/release-notes/maps/pr-125540-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125540-map.yaml @@ -1,4 +1,4 @@ -pr: 125540 -releasenote: - text: Fixed incorrect "v1 Binding is deprecated in v1.6+" warning in kube-scheduler - log. +pr: 125540 +releasenote: + text: Fixed incorrect "v1 Binding is deprecated in v1.6+" warning in kube-scheduler + log. diff --git a/releases/release-1.31/release-notes/maps/pr-125546-map.yaml b/releases/release-1.31/release-notes/maps/pr-125546-map.yaml index d9f4c98b56e..ab1dd74ba5a 100644 --- a/releases/release-1.31/release-notes/maps/pr-125546-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125546-map.yaml @@ -1,5 +1,5 @@ -pr: 125546 -releasenote: - text: Now the .status.ready field is tracked faster when active Pods are deleted, - specifically when Job is failed, gets suspended or has too many active pods. -pr_body: "" +pr: 125546 +releasenote: + text: Now the .status.ready field is tracked faster when active Pods are deleted, + specifically when Job is failed, gets suspended or has too many active pods. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125549-map.yaml b/releases/release-1.31/release-notes/maps/pr-125549-map.yaml index 345539df4eb..a543456b9bb 100644 --- a/releases/release-1.31/release-notes/maps/pr-125549-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125549-map.yaml @@ -1,5 +1,5 @@ -pr: 125549 -releasenote: - text: 'kube-apiserver: ControllerRevision objects are now verified to contain valid - JSON data in the `data` field.' -pr_body: "" +pr: 125549 +releasenote: + text: 'kube-apiserver: ControllerRevision objects are now verified to contain valid + JSON data in the `data` field.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125560-map.yaml b/releases/release-1.31/release-notes/maps/pr-125560-map.yaml index f19762bc4d2..dc0c1b4f157 100644 --- a/releases/release-1.31/release-notes/maps/pr-125560-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125560-map.yaml @@ -1,6 +1,6 @@ -pr: 125560 -releasenote: - text: |- - Added field management support to the fake client-go typed client. - Use `fake.NewClientset()` instead of `fake.NewSimpleClientset()` to create a clientset with managed field support. -pr_body: "" +pr: 125560 +releasenote: + text: |- + Added field management support to the fake client-go typed client. + Use `fake.NewClientset()` instead of `fake.NewSimpleClientset()` to create a clientset with managed field support. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125566-map.yaml b/releases/release-1.31/release-notes/maps/pr-125566-map.yaml index c6ff015187a..4da354f5095 100644 --- a/releases/release-1.31/release-notes/maps/pr-125566-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125566-map.yaml @@ -1,5 +1,5 @@ -pr: 125566 -releasenote: - text: 'kubeadm: Added `--yes` flag to the list of allowed flags so that it can be - mixed with `kubeadm upgrade apply --config`.' -pr_body: "" +pr: 125566 +releasenote: + text: 'kubeadm: Added `--yes` flag to the list of allowed flags so that it can be + mixed with `kubeadm upgrade apply --config`.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125571-map.yaml b/releases/release-1.31/release-notes/maps/pr-125571-map.yaml index 83a70ebc705..7e94b3c3a98 100644 --- a/releases/release-1.31/release-notes/maps/pr-125571-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125571-map.yaml @@ -1,7 +1,7 @@ -pr: 125571 -releasenote: - text: |- - kube-apiserver: Added Alpha features to allow API server authz to check the context of requests: - - The `AuthorizeWithSelectors` feature gate enables including field and label selector information from requests in webhook authorization calls. - - The `AuthorizeNodeWithSelectors` feature gate changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer. -pr_body: "" +pr: 125571 +releasenote: + text: |- + kube-apiserver: Added Alpha features to allow API server authz to check the context of requests: + - The `AuthorizeWithSelectors` feature gate enables including field and label selector information from requests in webhook authorization calls. + - The `AuthorizeNodeWithSelectors` feature gate changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125578-map.yaml b/releases/release-1.31/release-notes/maps/pr-125578-map.yaml index 0b7922eb259..08b79f6ebd0 100644 --- a/releases/release-1.31/release-notes/maps/pr-125578-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125578-map.yaml @@ -1,5 +1,5 @@ -pr: 125578 -releasenote: - text: When schedulingQueueHint is enabled, the scheduling queue doesn't update Pods - being scheduled immediately. -pr_body: "" +pr: 125578 +releasenote: + text: When schedulingQueueHint is enabled, the scheduling queue doesn't update Pods + being scheduled immediately. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125582-map.yaml b/releases/release-1.31/release-notes/maps/pr-125582-map.yaml index aa7d8bb79f0..5832b71d179 100644 --- a/releases/release-1.31/release-notes/maps/pr-125582-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125582-map.yaml @@ -1,13 +1,13 @@ -pr: 125582 -releasenote: - text: 'kubeadm: added the ControlPlaneKubeletLocalMode feature gate. It can be used - to tell kubeadm to use the local kube-apiserver endpoint for the kubelet when - creating a cluster with "kubeadm init" or when joining control plane nodes with - "kubeadm join". The "kubeadm join" workflow now includes two new experimental - phases called "control-plane-join-etcd" and "kubelet-wait-bootstrap" which will - be used when the feature gate is enabled. This phases will be marked as non-experimental - when ControlPlaneKubeletLocalMode becomes GA. During "kubeadm upgrade" commands, - if the feature gate is enabled, modify the "/etc/kubernetes/kubelet.conf " to - use the local kube-apiserver endpoint. This upgrade mechanism will be removed - once the feature gate goes GA and is hardcoded to true.' -pr_body: "" +pr: 125582 +releasenote: + text: 'kubeadm: added the ControlPlaneKubeletLocalMode feature gate. It can be used + to tell kubeadm to use the local kube-apiserver endpoint for the kubelet when + creating a cluster with "kubeadm init" or when joining control plane nodes with + "kubeadm join". The "kubeadm join" workflow now includes two new experimental + phases called "control-plane-join-etcd" and "kubelet-wait-bootstrap" which will + be used when the feature gate is enabled. This phases will be marked as non-experimental + when ControlPlaneKubeletLocalMode becomes GA. During "kubeadm upgrade" commands, + if the feature gate is enabled, modify the "/etc/kubernetes/kubelet.conf " to + use the local kube-apiserver endpoint. This upgrade mechanism will be removed + once the feature gate goes GA and is hardcoded to true.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125584-map.yaml b/releases/release-1.31/release-notes/maps/pr-125584-map.yaml index f4e050c7701..ce7661d5c73 100644 --- a/releases/release-1.31/release-notes/maps/pr-125584-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125584-map.yaml @@ -1,4 +1,4 @@ -pr: 125584 -releasenote: - text: Fixed recursive LIST from watch cache returning object matching key. -pr_body: "" +pr: 125584 +releasenote: + text: Fixed recursive LIST from watch cache returning object matching key. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125591-map.yaml b/releases/release-1.31/release-notes/maps/pr-125591-map.yaml index e83c45817ed..bb0ba863da9 100644 --- a/releases/release-1.31/release-notes/maps/pr-125591-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125591-map.yaml @@ -1,5 +1,5 @@ -pr: 125591 -releasenote: - text: Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled - `WatchListClient` for kube-controller-manager (KCM). -pr_body: "" +pr: 125591 +releasenote: + text: Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled + `WatchListClient` for kube-controller-manager (KCM). +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125641-map.yaml b/releases/release-1.31/release-notes/maps/pr-125641-map.yaml index 3846e96c5d0..f32ee903da2 100644 --- a/releases/release-1.31/release-notes/maps/pr-125641-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125641-map.yaml @@ -1,4 +1,4 @@ -pr: 125641 -releasenote: - text: "Fixed sample-cli-plugin help text to be consistent and always use `kubectl ns`." -pr_body: "" +pr: 125641 +releasenote: + text: "Fixed sample-cli-plugin help text to be consistent and always use `kubectl ns`." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125646-map.yaml b/releases/release-1.31/release-notes/maps/pr-125646-map.yaml index 24b7f763a23..392168a78c3 100644 --- a/releases/release-1.31/release-notes/maps/pr-125646-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125646-map.yaml @@ -1,5 +1,5 @@ -pr: 125646 -releasenote: - text: In the client-side apply on create, defining the null value as "delete the - key associated with this value". -pr_body: "" +pr: 125646 +releasenote: + text: In the client-side apply on create, defining the null value as "delete the + key associated with this value". +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125650-map.yaml b/releases/release-1.31/release-notes/maps/pr-125650-map.yaml index 594ccc2ec53..63b8d739094 100644 --- a/releases/release-1.31/release-notes/maps/pr-125650-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125650-map.yaml @@ -1,4 +1,4 @@ -pr: 125650 -releasenote: - text: Added Extra.DisableAvailableConditionController for Generic Control Plane setup. -pr_body: "" +pr: 125650 +releasenote: + text: Added Extra.DisableAvailableConditionController for Generic Control Plane setup. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125656-map.yaml b/releases/release-1.31/release-notes/maps/pr-125656-map.yaml index 6ecb0d9aba1..b6aeab092c2 100644 --- a/releases/release-1.31/release-notes/maps/pr-125656-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125656-map.yaml @@ -1,5 +1,5 @@ -pr: 125656 -releasenote: - text: 'kubelet/stats: set INFO log level for stats not found in cadvisor memory - cache error.' -pr_body: "" +pr: 125656 +releasenote: + text: 'kubelet/stats: set INFO log level for stats not found in cadvisor memory + cache error.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125660-map.yaml b/releases/release-1.31/release-notes/maps/pr-125660-map.yaml index b180d64ed0a..80337431a1e 100644 --- a/releases/release-1.31/release-notes/maps/pr-125660-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125660-map.yaml @@ -1,5 +1,5 @@ -pr: 125660 -releasenote: - text: Revised the Pod API with Alpha support for volumes derived from OCI artifacts. - This feature is behind the `ImageVolume` feature gate. -pr_body: "" +pr: 125660 +releasenote: + text: Revised the Pod API with Alpha support for volumes derived from OCI artifacts. + This feature is behind the `ImageVolume` feature gate. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125661-map.yaml b/releases/release-1.31/release-notes/maps/pr-125661-map.yaml index a3c04e01b6c..13e6d564754 100644 --- a/releases/release-1.31/release-notes/maps/pr-125661-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125661-map.yaml @@ -1,4 +1,4 @@ -pr: 125661 -releasenote: - text: Cleaned deprecated `context.StopCh` in favor of ctx. -pr_body: "" +pr: 125661 +releasenote: + text: Cleaned deprecated `context.StopCh` in favor of ctx. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125751-map.yaml b/releases/release-1.31/release-notes/maps/pr-125751-map.yaml index aadc927e04f..c53f6467ec9 100644 --- a/releases/release-1.31/release-notes/maps/pr-125751-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125751-map.yaml @@ -1,4 +1,4 @@ -pr: 125751 -releasenote: - text: "`ElasticIndexedJob` is graduated to GA." -pr_body: "" +pr: 125751 +releasenote: + text: "`ElasticIndexedJob` is graduated to GA." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125758-map.yaml b/releases/release-1.31/release-notes/maps/pr-125758-map.yaml index e61cb0b1940..bf112efb4e8 100644 --- a/releases/release-1.31/release-notes/maps/pr-125758-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125758-map.yaml @@ -1,5 +1,5 @@ -pr: 125758 -releasenote: - text: 'kubeadm: improved the warning/error messages of `validateSupportedVersion` - to include the checked resource kind name.' -pr_body: "" +pr: 125758 +releasenote: + text: 'kubeadm: improved the warning/error messages of `validateSupportedVersion` + to include the checked resource kind name.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125767-map.yaml b/releases/release-1.31/release-notes/maps/pr-125767-map.yaml index add1b59628b..fa6f8014ce5 100644 --- a/releases/release-1.31/release-notes/maps/pr-125767-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125767-map.yaml @@ -1,9 +1,9 @@ -pr: 125767 -releasenote: - text: "For statically provisioned PVs, if its volume source is CSI type or it has - migrated annotation, when it's deleted, the PersisentVolume controller won't changes - its phase to the Failed state. \n\nWith this patch, the external provisioner can - remove the finalizer in next reconcile loop. Unfortunately if the provious existing - pv has the Failed state, this patch won't take effort. It requires users to remove - finalizer." -pr_body: "" +pr: 125767 +releasenote: + text: "For statically provisioned PVs, if its volume source is CSI type or it has + migrated annotation, when it's deleted, the PersisentVolume controller won't changes + its phase to the Failed state. \n\nWith this patch, the external provisioner can + remove the finalizer in next reconcile loop. Unfortunately if the provious existing + pv has the Failed state, this patch won't take effort. It requires users to remove + finalizer." +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125776-map.yaml b/releases/release-1.31/release-notes/maps/pr-125776-map.yaml index 7c7f711d807..7f4443097e3 100644 --- a/releases/release-1.31/release-notes/maps/pr-125776-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125776-map.yaml @@ -1,4 +1,4 @@ -pr: 125776 -releasenote: - text: kubelet now hard rejects pods with AppArmor if the node does not have AppArmor. -pr_body: "" +pr: 125776 +releasenote: + text: kubelet now hard rejects pods with AppArmor if the node does not have AppArmor. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125779-map.yaml b/releases/release-1.31/release-notes/maps/pr-125779-map.yaml index a0a80522fbd..1c06593b40e 100644 --- a/releases/release-1.31/release-notes/maps/pr-125779-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125779-map.yaml @@ -1,7 +1,7 @@ -pr: 125779 -releasenote: - text: 'kubeadm: fixed a bug where the path of the manifest can not be specified when - `kubeadm upgrade diff` specified a config file, and the `--api-server-manifest`, - `--controller-manager-manifest` and `--scheduler-manifest` flags of `kubeadm upgrade - diff` are marked as deprecated and will be removed in a future release.' -pr_body: "" +pr: 125779 +releasenote: + text: 'kubeadm: fixed a bug where the path of the manifest can not be specified when + `kubeadm upgrade diff` specified a config file, and the `--api-server-manifest`, + `--controller-manager-manifest` and `--scheduler-manifest` flags of `kubeadm upgrade + diff` are marked as deprecated and will be removed in a future release.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125782-map.yaml b/releases/release-1.31/release-notes/maps/pr-125782-map.yaml index 932b473358f..44e4b79633c 100644 --- a/releases/release-1.31/release-notes/maps/pr-125782-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125782-map.yaml @@ -1,6 +1,6 @@ -pr: 125782 -releasenote: - text: |- - Fixed the documentation for the default value of the `procMount` entry in `securityContext` within a Pod. - The documentation was previously using the name of the internal variable `DefaultProcMount`, rather than the actual value, "Default". -pr_body: "" +pr: 125782 +releasenote: + text: |- + Fixed the documentation for the default value of the `procMount` entry in `securityContext` within a Pod. + The documentation was previously using the name of the internal variable `DefaultProcMount`, rather than the actual value, "Default". +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125787-map.yaml b/releases/release-1.31/release-notes/maps/pr-125787-map.yaml index 1d710c9168b..e932262abd0 100644 --- a/releases/release-1.31/release-notes/maps/pr-125787-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125787-map.yaml @@ -1,6 +1,6 @@ -pr: 125787 -releasenote: - text: 'kube-apiserver: the `--enable-logs-handler` flag and log-serving functionality - which was already deprecated is now switched off by default and scheduled to be - removed in v1.33.' -pr_body: "" +pr: 125787 +releasenote: + text: 'kube-apiserver: the `--enable-logs-handler` flag and log-serving functionality + which was already deprecated is now switched off by default and scheduled to be + removed in v1.33.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125797-map.yaml b/releases/release-1.31/release-notes/maps/pr-125797-map.yaml index bfeb8370c36..edbb1fcf267 100644 --- a/releases/release-1.31/release-notes/maps/pr-125797-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125797-map.yaml @@ -1,8 +1,8 @@ -pr: 125797 -releasenote: - text: 'kubeadm: the `--feature-gates` flag is deprecated and no-op for `kubeadm - upgrade apply/plan`, and it will be removed in a future release. The upgrade workflow - is not designed to reconfigure the cluster. Please edit the ''featureGates'' field - of ClusterConfiguration which is defined in the kube-system/kubeadm-config ConfigMap - instead.' -pr_body: "" +pr: 125797 +releasenote: + text: 'kubeadm: the `--feature-gates` flag is deprecated and no-op for `kubeadm + upgrade apply/plan`, and it will be removed in a future release. The upgrade workflow + is not designed to reconfigure the cluster. Please edit the ''featureGates'' field + of ClusterConfiguration which is defined in the kube-system/kubeadm-config ConfigMap + instead.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125813-map.yaml b/releases/release-1.31/release-notes/maps/pr-125813-map.yaml index 03159095823..fd76ce33372 100644 --- a/releases/release-1.31/release-notes/maps/pr-125813-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125813-map.yaml @@ -1,8 +1,8 @@ -pr: 125813 -releasenote: - text: Enforced kubelet to request serving certificates only once it has at least - one IP address in the `.status.addresses` of its associated Node object. This - avoids requesting DNS-only serving certificates before externally set addresses - are in place. Until 1.33, the previous behavior can be opted back into by setting - the deprecated `AllowDNSOnlyNodeCSR` feature gate to true in the kubelet. -pr_body: "" +pr: 125813 +releasenote: + text: Enforced kubelet to request serving certificates only once it has at least + one IP address in the `.status.addresses` of its associated Node object. This + avoids requesting DNS-only serving certificates before externally set addresses + are in place. Until 1.33, the previous behavior can be opted back into by setting + the deprecated `AllowDNSOnlyNodeCSR` feature gate to true in the kubelet. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125828-map.yaml b/releases/release-1.31/release-notes/maps/pr-125828-map.yaml index e57846eb6db..3d2d2f57d07 100644 --- a/releases/release-1.31/release-notes/maps/pr-125828-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125828-map.yaml @@ -1,9 +1,9 @@ -pr: 125828 -releasenote: - text: Promoted CRI communication of the cgroup driver mechanism to beta. - The `KubeletCgroupDriverFromCRI` feature gate is now in beta and enabled by default. - This allows the kubelet to query the container runtime using CRI to determine the - mechanism for cgroup management. If the container runtime doesn't support this, the - kubelet falls back to using the configuration file (you can also use the deprecated - `--cgroup-driver` command line argument). -pr_body: "" +pr: 125828 +releasenote: + text: Promoted CRI communication of the cgroup driver mechanism to beta. + The `KubeletCgroupDriverFromCRI` feature gate is now in beta and enabled by default. + This allows the kubelet to query the container runtime using CRI to determine the + mechanism for cgroup management. If the container runtime doesn't support this, the + kubelet falls back to using the configuration file (you can also use the deprecated + `--cgroup-driver` command line argument). +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125838-map.yaml b/releases/release-1.31/release-notes/maps/pr-125838-map.yaml index 9055ab4b0d2..72f2d715e28 100644 --- a/releases/release-1.31/release-notes/maps/pr-125838-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125838-map.yaml @@ -1,8 +1,8 @@ -pr: 125838 -releasenote: - text: The Service trafficDistribution field has graduated to beta and is now available - for configuration by default, without the need to enable any feature flag. Services - that do not have the field configured will continue to operate with their existing - behavior. Refer to the documentation https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution - for more details. -pr_body: "" +pr: 125838 +releasenote: + text: The Service trafficDistribution field has graduated to beta and is now available + for configuration by default, without the need to enable any feature flag. Services + that do not have the field configured will continue to operate with their existing + behavior. Refer to the documentation https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution + for more details. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125894-map.yaml b/releases/release-1.31/release-notes/maps/pr-125894-map.yaml index 5a3a0caa733..81114cd4f1a 100644 --- a/releases/release-1.31/release-notes/maps/pr-125894-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125894-map.yaml @@ -1,4 +1,4 @@ -pr: 125894 -releasenote: - text: Kubernetes is now built with go 1.22.5. -pr_body: "" +pr: 125894 +releasenote: + text: Kubernetes is now built with go 1.22.5. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125929-map.yaml b/releases/release-1.31/release-notes/maps/pr-125929-map.yaml index 3072304d598..7f94c095fd4 100644 --- a/releases/release-1.31/release-notes/maps/pr-125929-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125929-map.yaml @@ -1,5 +1,5 @@ -pr: 125929 -releasenote: - text: Implemented `event_handling_duration_seconds` metric, which is the time the - scheduler takes to handle each kind of events. -pr_body: "" +pr: 125929 +releasenote: + text: Implemented `event_handling_duration_seconds` metric, which is the time the + scheduler takes to handle each kind of events. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-125970-map.yaml b/releases/release-1.31/release-notes/maps/pr-125970-map.yaml index 21e1e9c914f..5bb85a29a18 100644 --- a/releases/release-1.31/release-notes/maps/pr-125970-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-125970-map.yaml @@ -1,6 +1,6 @@ -pr: 125970 -releasenote: - text: Added `/sys/devices/virtual/powercap` to default masked paths. It avoids the - potential security risk that the ability to read these files may offer a power-based - sidechannel attack against any workloads running on the same kernel. -pr_body: "" +pr: 125970 +releasenote: + text: Added `/sys/devices/virtual/powercap` to default masked paths. It avoids the + potential security risk that the ability to read these files may offer a power-based + sidechannel attack against any workloads running on the same kernel. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126012-map.yaml b/releases/release-1.31/release-notes/maps/pr-126012-map.yaml index a50bb4273e1..f7afa509461 100644 --- a/releases/release-1.31/release-notes/maps/pr-126012-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126012-map.yaml @@ -1,4 +1,4 @@ -pr: 126012 -releasenote: - text: Stopped using wmic on Windows to get uuid in the kubelet. -pr_body: "" +pr: 126012 +releasenote: + text: Stopped using wmic on Windows to get uuid in the kubelet. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126014-map.yaml b/releases/release-1.31/release-notes/maps/pr-126014-map.yaml index 88edd0322c8..0dac96e3b95 100644 --- a/releases/release-1.31/release-notes/maps/pr-126014-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126014-map.yaml @@ -1,6 +1,6 @@ -pr: 126014 -releasenote: - text: Promoted `LocalStorageCapacityIsolation` to beta; the behaviour is enabled by default. - Within the kubelet, storage capacity isolation is active if the feature gate - is enabled and the specific Pod is using a user namespace. -pr_body: "" +pr: 126014 +releasenote: + text: Promoted `LocalStorageCapacityIsolation` to beta; the behaviour is enabled by default. + Within the kubelet, storage capacity isolation is active if the feature gate + is enabled and the specific Pod is using a user namespace. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126031-map.yaml b/releases/release-1.31/release-notes/maps/pr-126031-map.yaml index 577be414b53..a874eba0dac 100644 --- a/releases/release-1.31/release-notes/maps/pr-126031-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126031-map.yaml @@ -1,4 +1,4 @@ -pr: 126031 -releasenote: - text: Introduced a new boolean kubelet flag `--fail-cgroupv1`. -pr_body: "" +pr: 126031 +releasenote: + text: Introduced a new boolean kubelet flag `--fail-cgroupv1`. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126046-map.yaml b/releases/release-1.31/release-notes/maps/pr-126046-map.yaml index a44869ef7c5..50eac92837a 100644 --- a/releases/release-1.31/release-notes/maps/pr-126046-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126046-map.yaml @@ -1,4 +1,4 @@ -pr: 126046 -releasenote: - text: Use omitempty for optional Job Pod Failure Policy fields. -pr_body: "" +pr: 126046 +releasenote: + text: Use omitempty for optional Job Pod Failure Policy fields. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126047-map.yaml b/releases/release-1.31/release-notes/maps/pr-126047-map.yaml index 9cbcf60c3db..7e268cbea7f 100644 --- a/releases/release-1.31/release-notes/maps/pr-126047-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126047-map.yaml @@ -1,4 +1,4 @@ -pr: 126047 -releasenote: - text: Updated kubernetes to build with Go 1.23rc2. -pr_body: "" +pr: 126047 +releasenote: + text: Updated kubernetes to build with Go 1.23rc2. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126057-map.yaml b/releases/release-1.31/release-notes/maps/pr-126057-map.yaml index f855f5f2240..03c9dc55440 100644 --- a/releases/release-1.31/release-notes/maps/pr-126057-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126057-map.yaml @@ -1,5 +1,5 @@ -pr: 126057 -releasenote: - text: Fixed a 1.30.0 regression in openapi descriptions of `PodIP.IP` and `HostIP.IP` - fields to mark the fields used as keys in those lists as required. -pr_body: "" +pr: 126057 +releasenote: + text: Fixed a 1.30.0 regression in openapi descriptions of `PodIP.IP` and `HostIP.IP` + fields to mark the fields used as keys in those lists as required. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126067-map.yaml b/releases/release-1.31/release-notes/maps/pr-126067-map.yaml index 149af85a1fb..f99e5447b21 100644 --- a/releases/release-1.31/release-notes/maps/pr-126067-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126067-map.yaml @@ -1,9 +1,9 @@ -pr: 126067 -releasenote: - text: |- - Graduated the Job `successPolicy` field to beta. - - The new reason label, "SuccessPolicy" and "CompletionsReached" are added to the "jobs_finished_total" metric. - Additionally, if you enable the `JobSuccessPolicy` feature gate, the Job gets "CompletionsReached" reason for the "SuccessCriteriaMet" and "Complete" condition type - when the number of succeeded Job Pods (`.status.succeeded`) reached the desired completions (`.spec.completions`). -pr_body: "" +pr: 126067 +releasenote: + text: |- + Graduated the Job `successPolicy` field to beta. + + The new reason label, "SuccessPolicy" and "CompletionsReached" are added to the "jobs_finished_total" metric. + Additionally, if you enable the `JobSuccessPolicy` feature gate, the Job gets "CompletionsReached" reason for the "SuccessCriteriaMet" and "Complete" condition type + when the number of succeeded Job Pods (`.status.succeeded`) reached the desired completions (`.spec.completions`). +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126072-map.yaml b/releases/release-1.31/release-notes/maps/pr-126072-map.yaml index 48b9ca9d120..152ad44333a 100644 --- a/releases/release-1.31/release-notes/maps/pr-126072-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126072-map.yaml @@ -1,5 +1,5 @@ -pr: 126072 -releasenote: - text: Made kube-proxy Windows service control manager integration (`--windows-service`) - configurable in v1alpha1 component configuration via `windowsRunAsService` field. -pr_body: "" +pr: 126072 +releasenote: + text: Made kube-proxy Windows service control manager integration (`--windows-service`) + configurable in v1alpha1 component configuration via `windowsRunAsService` field. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126073-map.yaml b/releases/release-1.31/release-notes/maps/pr-126073-map.yaml index 91228b36cd2..a0bc7e685a0 100644 --- a/releases/release-1.31/release-notes/maps/pr-126073-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126073-map.yaml @@ -1,4 +1,4 @@ -pr: 126073 -releasenote: - text: Fixed fake clientset ApplyScale subresource from `status` to `scale`. -pr_body: "" +pr: 126073 +releasenote: + text: Fixed fake clientset ApplyScale subresource from `status` to `scale`. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126108-map.yaml b/releases/release-1.31/release-notes/maps/pr-126108-map.yaml index ce5bbed0d54..b0f1e847f29 100644 --- a/releases/release-1.31/release-notes/maps/pr-126108-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126108-map.yaml @@ -1,10 +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: "" +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: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126125-map.yaml b/releases/release-1.31/release-notes/maps/pr-126125-map.yaml index ea3fad1c0ec..36238c614a0 100644 --- a/releases/release-1.31/release-notes/maps/pr-126125-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126125-map.yaml @@ -1,4 +1,4 @@ -pr: 126125 -releasenote: - text: Allowed calling Stop multiple times on RetryWatcher without panicking. -pr_body: "" +pr: 126125 +releasenote: + text: Allowed calling Stop multiple times on RetryWatcher without panicking. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126139-map.yaml b/releases/release-1.31/release-notes/maps/pr-126139-map.yaml index 439d150c38f..a953c02062c 100644 --- a/releases/release-1.31/release-notes/maps/pr-126139-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126139-map.yaml @@ -1,4 +1,4 @@ -pr: 126139 -releasenote: - text: Reverted a [change](https://github.com/kubernetes/kubernetes/pull/123513) where `ConsistentListFromCache` was moved to beta and enabled by default. -pr_body: "" +pr: 126139 +releasenote: + text: Reverted a [change](https://github.com/kubernetes/kubernetes/pull/123513) where `ConsistentListFromCache` was moved to beta and enabled by default. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126145-map.yaml b/releases/release-1.31/release-notes/maps/pr-126145-map.yaml index 1d8ae732022..cafd3511f08 100644 --- a/releases/release-1.31/release-notes/maps/pr-126145-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126145-map.yaml @@ -1,6 +1,6 @@ -pr: 126145 -releasenote: - text: |- - Promoted feature-gate `VolumeAttributesClass` to beta (disabled by default). Users need to enable the feature gate and the `storage.k8s.io/v1beta1` API group to use this feature. - Promoted the VolumeAttributesClass API to beta. -pr_body: "" +pr: 126145 +releasenote: + text: |- + Promoted feature-gate `VolumeAttributesClass` to beta (disabled by default). Users need to enable the feature gate and the `storage.k8s.io/v1beta1` API group to use this feature. + Promoted the VolumeAttributesClass API to beta. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126163-map.yaml b/releases/release-1.31/release-notes/maps/pr-126163-map.yaml index 7ad89650f8f..ddd1d0f8f19 100644 --- a/releases/release-1.31/release-notes/maps/pr-126163-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126163-map.yaml @@ -1,6 +1,6 @@ -pr: 126163 -releasenote: - text: 'kube-apiserver: when the Alpha `UserNamespacesPodSecurityStandards` feature - gate is enabled, Pod Security Admission enforcement of the baseline policy now - allows `procMount: Unmasked` for user namespace pods that set `hostUsers: false`.' -pr_body: "" +pr: 126163 +releasenote: + text: 'kube-apiserver: when the Alpha `UserNamespacesPodSecurityStandards` feature + gate is enabled, Pod Security Admission enforcement of the baseline policy now + allows `procMount: Unmasked` for user namespace pods that set `hostUsers: false`.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126165-map.yaml b/releases/release-1.31/release-notes/maps/pr-126165-map.yaml index 68eda9f805a..49257908b15 100644 --- a/releases/release-1.31/release-notes/maps/pr-126165-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126165-map.yaml @@ -1,5 +1,5 @@ -pr: 126165 -releasenote: - text: Starting in 1.31, `container_engine_t` was added to the list of allowed SELinux - types in the baseline Pod Security Standard. -pr_body: "" +pr: 126165 +releasenote: + text: Starting in 1.31, `container_engine_t` was added to the list of allowed SELinux + types in the baseline Pod Security Standard. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126167-map.yaml b/releases/release-1.31/release-notes/maps/pr-126167-map.yaml index 567ce5ce5aa..e3d389371a0 100644 --- a/releases/release-1.31/release-notes/maps/pr-126167-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126167-map.yaml @@ -1,5 +1,5 @@ -pr: 126167 -releasenote: - text: 'kube-apiserver: fixed a potential crash serving CustomResourceDefinitions - that combine an invalid schema and CEL validation rules.' -pr_body: "" +pr: 126167 +releasenote: + text: 'kube-apiserver: fixed a potential crash serving CustomResourceDefinitions + that combine an invalid schema and CEL validation rules.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126174-map.yaml b/releases/release-1.31/release-notes/maps/pr-126174-map.yaml index 566692678f3..5115ccc943c 100644 --- a/releases/release-1.31/release-notes/maps/pr-126174-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126174-map.yaml @@ -1,4 +1,4 @@ -pr: 126174 -releasenote: - text: 'mount-utils: treated syscall.ENODEV as corrupted mount.' -pr_body: "" +pr: 126174 +releasenote: + text: 'mount-utils: treated syscall.ENODEV as corrupted mount.' +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126191-map.yaml b/releases/release-1.31/release-notes/maps/pr-126191-map.yaml index 72cc19d5ee7..0e361805fd2 100644 --- a/releases/release-1.31/release-notes/maps/pr-126191-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126191-map.yaml @@ -1,5 +1,5 @@ -pr: 126191 -releasenote: - text: Reverted "Graduates the `WatchList` feature gate to beta for kube-apiserver - and enables `WatchListClient` for kube-controller-manager (KCM)". -pr_body: "" +pr: 126191 +releasenote: + text: Reverted "Graduates the `WatchList` feature gate to beta for kube-apiserver + and enables `WatchListClient` for kube-controller-manager (KCM)". +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126205-map.yaml b/releases/release-1.31/release-notes/maps/pr-126205-map.yaml index cf88d49544b..1a7d655a2d9 100644 --- a/releases/release-1.31/release-notes/maps/pr-126205-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126205-map.yaml @@ -1,5 +1,5 @@ -pr: 126205 -releasenote: - text: The `KubeletSeparateDiskGC` feature gate is now beta. This split image filesystem feature enables kubelet to perform garbage collection of images (read-only layers) and/or containers (writeable layers) deployed on separate filesystems. - gate is now beta. -pr_body: "" +pr: 126205 +releasenote: + text: The `KubeletSeparateDiskGC` feature gate is now beta. This split image filesystem feature enables kubelet to perform garbage collection of images (read-only layers) and/or containers (writeable layers) deployed on separate filesystems. + gate is now beta. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126227-map.yaml b/releases/release-1.31/release-notes/maps/pr-126227-map.yaml index b11bdae8327..5a9580cda28 100644 --- a/releases/release-1.31/release-notes/maps/pr-126227-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126227-map.yaml @@ -1,5 +1,5 @@ -pr: 126227 -releasenote: - text: Implemented `queueing_hint_execution_duration_seconds` metric, which is the - time the QueueingHint function takes. -pr_body: "" +pr: 126227 +releasenote: + text: Implemented `queueing_hint_execution_duration_seconds` metric, which is the + time the QueueingHint function takes. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126237-map.yaml b/releases/release-1.31/release-notes/maps/pr-126237-map.yaml index 300b5c4cab2..b7cfdf8be83 100644 --- a/releases/release-1.31/release-notes/maps/pr-126237-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126237-map.yaml @@ -1,4 +1,4 @@ -pr: 126237 -releasenote: - text: Promoted the metrics for both ValidatingAdmissionPolicy (VAP) and CustomResourceDefinition (CRD) validation rules to beta. -pr_body: "" +pr: 126237 +releasenote: + text: Promoted the metrics for both ValidatingAdmissionPolicy (VAP) and CustomResourceDefinition (CRD) validation rules to beta. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126243-map.yaml b/releases/release-1.31/release-notes/maps/pr-126243-map.yaml index 373f7f134ea..070926ace60 100644 --- a/releases/release-1.31/release-notes/maps/pr-126243-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126243-map.yaml @@ -1,5 +1,5 @@ -pr: 126243 -releasenote: - text: Added an `allocatedResourcesStatus` to each container status to indicate the - health status of devices exposed by the device plugin. -pr_body: "" +pr: 126243 +releasenote: + text: Added an `allocatedResourcesStatus` to each container status to indicate the + health status of devices exposed by the device plugin. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126330-map.yaml b/releases/release-1.31/release-notes/maps/pr-126330-map.yaml index a6a0a52c0a1..3b85f697352 100644 --- a/releases/release-1.31/release-notes/maps/pr-126330-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126330-map.yaml @@ -1,4 +1,4 @@ -pr: 126330 -releasenote: - text: Updated kubernetes to build with Go 1.22.5. -pr_body: "" +pr: 126330 +releasenote: + text: Updated kubernetes to build with Go 1.22.5. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126335-map.yaml b/releases/release-1.31/release-notes/maps/pr-126335-map.yaml index 5315a744683..1490643c00e 100644 --- a/releases/release-1.31/release-notes/maps/pr-126335-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126335-map.yaml @@ -1,5 +1,5 @@ -pr: 126335 -releasenote: - text: Fixed bug in kubelet if the `SplitImageFilesystem` feature gate is turned on but the container runtime is - not configured. -pr_body: "" +pr: 126335 +releasenote: + text: Fixed bug in kubelet if the `SplitImageFilesystem` feature gate is turned on but the container runtime is + not configured. +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126355-map.yaml b/releases/release-1.31/release-notes/maps/pr-126355-map.yaml index 7430f56fc3c..0d311324b4a 100644 --- a/releases/release-1.31/release-notes/maps/pr-126355-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126355-map.yaml @@ -1,5 +1,5 @@ -pr: 126355 -releasenote: - text: Set `LocalStorageCapacityIsolationFSQuotaMonitoring` to false by default, to - match `UserNamespacesSupport` (which the feature relies on). -pr_body: "" +pr: 126355 +releasenote: + text: Set `LocalStorageCapacityIsolationFSQuotaMonitoring` to false by default, to + match `UserNamespacesSupport` (which the feature relies on). +pr_body: "" diff --git a/releases/release-1.31/release-notes/maps/pr-126441-map.yaml b/releases/release-1.31/release-notes/maps/pr-126441-map.yaml index 3be4c184cf4..8d3e7dabfe0 100644 --- a/releases/release-1.31/release-notes/maps/pr-126441-map.yaml +++ b/releases/release-1.31/release-notes/maps/pr-126441-map.yaml @@ -1,9 +1,9 @@ -pr: 126441 -releasenote: - text: Ensured that the Node Admission plugin to reject CSR requests created by a - node identity for the signers `kubernetes.io/kubelet-serving` or `kubernetes.io/kube-apiserver-client-kubelet` - with a CN starting with `system:node:`, but where the CN is not `system:node:${node-name}`. - The feature gate `AllowInsecureKubeletCertificateSigningRequests` defaults to - `false`, but can be enabled to revert to the previous behavior. This feature gate - will be removed in Kubernetes v1.33. -pr_body: "" +pr: 126441 +releasenote: + text: Ensured that the Node Admission plugin to reject CSR requests created by a + node identity for the signers `kubernetes.io/kubelet-serving` or `kubernetes.io/kube-apiserver-client-kubelet` + with a CN starting with `system:node:`, but where the CN is not `system:node:${node-name}`. + The feature gate `AllowInsecureKubeletCertificateSigningRequests` defaults to + `false`, but can be enabled to revert to the previous behavior. This feature gate + will be removed in Kubernetes v1.33. +pr_body: "" diff --git a/releases/release-1.31/release-notes/release-notes-draft.json b/releases/release-1.31/release-notes/release-notes-draft.json index 3c28c516136..156ca5c62ac 100644 --- a/releases/release-1.31/release-notes/release-notes-draft.json +++ b/releases/release-1.31/release-notes/release-notes-draft.json @@ -1,7284 +1,7284 @@ -{ - "109939": { - "commit": "802983e7142b3a1edf300712cfe5dca5dafbfd49", - "text": "Added support for building Windows kube-proxy container image.\nA container image for kube-proxy on Windows can now be built with the command\n`make release-images KUBE_BUILD_WINDOWS=y`.\nThe Windows kube-proxy image can be used with Windows Host Process Containers.", - "markdown": "Added support for building Windows kube-proxy container image.\n A container image for kube-proxy on Windows can now be built with the command\n `make release-images KUBE_BUILD_WINDOWS=y`.\n The Windows kube-proxy image can be used with Windows Host Process Containers. ([#109939](https://github.com/kubernetes/kubernetes/pull/109939), [@claudiubelu](https://github.com/claudiubelu)) [SIG Windows]", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/109939", - "pr_number": 109939, - "kinds": [ - "feature" - ], - "sigs": [ - "windows" - ], - "feature": true, - "is_mapped": true - }, - "112104": { - "commit": "c811521331ee09d9fce7b866d5c8c79f45ba4125", - "text": "Fixed EDITOR/KUBE_EDITOR with double-quoted paths with spaces when on Windows cmd.exe.", - "markdown": "Fixed EDITOR/KUBE_EDITOR with double-quoted paths with spaces when on Windows cmd.exe. ([#112104](https://github.com/kubernetes/kubernetes/pull/112104), [@oldium](https://github.com/oldium)) [SIG CLI and Windows]", - "author": "oldium", - "author_url": "https://github.com/oldium", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/112104", - "pr_number": 112104, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "windows" - ], - "duplicate": true, - "is_mapped": true - }, - "117842": { - "commit": "552fd7e85084b4cbd3ae8e81ff13433e28dc8327", - "text": "Supported fine-grained supplemental groups policy (KEP-3619), which enabled\nfine-grained control for supplementary groups in the first container processes.\nThis allows you to choose whether to include groups defined in the container image (/etc/groups)\nfor the container's primary UID or not.", - "markdown": "Supported fine-grained supplemental groups policy (KEP-3619), which enabled\n fine-grained control for supplementary groups in the first container processes.\n This allows you to choose whether to include groups defined in the container image (/etc/groups)\n for the container's primary UID or not. ([#117842](https://github.com/kubernetes/kubernetes/pull/117842), [@everpeace](https://github.com/everpeace)) [SIG API Machinery, Apps and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3619-supplemental-groups-policy", - "type": "KEP" - } - ], - "author": "everpeace", - "author_url": "https://github.com/everpeace", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117842", - "pr_number": 117842, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "118148": { - "commit": "957c9538670b5f7ead2c9ba9ceb9de081d66caa4", - "text": "Exposed the kube-scheduler \"/livez\" and \"/readz\" endpoints for health checks that are in compliance with https://kubernetes.io/docs/reference/using-api/health-checks/#api-endpoints-for-health.", - "markdown": "Exposed the kube-scheduler \"/livez\" and \"/readz\" endpoints for health checks that are in compliance with https://kubernetes.io/docs/reference/using-api/health-checks/#api-endpoints-for-health. ([#118148](https://github.com/kubernetes/kubernetes/pull/118148), [@linxiulei](https://github.com/linxiulei)) [SIG API Machinery, Scheduling and Testing]", - "author": "linxiulei", - "author_url": "https://github.com/linxiulei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/118148", - "pr_number": 118148, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "119589": { - "commit": "d1b2490c80fd5c3e0d90598477f62a70d8099bb2", - "text": "Added kubectl support for:\n- kubectl create secret docker-registry \u003cNAME\u003e --from-file=\u003cpath/to/.docker/config.json\u003e\n- kubectl create secret docker-registry \u003cNAME\u003e --from-file=.dockerconfigjson=\u003cpath/to/.docker/config.json\u003e", - "markdown": "Added kubectl support for:\n - kubectl create secret docker-registry \u003cNAME\u003e --from-file=\u003cpath/to/.docker/config.json\u003e\n - kubectl create secret docker-registry \u003cNAME\u003e --from-file=.dockerconfigjson=\u003cpath/to/.docker/config.json\u003e ([#119589](https://github.com/kubernetes/kubernetes/pull/119589), [@carlory](https://github.com/carlory)) [SIG CLI]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119589", - "pr_number": 119589, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "120611": { - "commit": "05bb5f71f86428c07a94d50bdf2a9e26b29e1f6a", - "text": "Dynamic Resource Allocation (DRA): Added a feature so the number of ResourceClaim objects can be limited per namespace and by the number of devices requested through a specific class via the v1.ResourceQuota mechanism.", - "markdown": "Dynamic Resource Allocation (DRA): Added a feature so the number of ResourceClaim objects can be limited per namespace and by the number of devices requested through a specific class via the v1.ResourceQuota mechanism. ([#120611](https://github.com/kubernetes/kubernetes/pull/120611), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Etcd, Node, Release, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120611", - "pr_number": 120611, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "release-eng", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cli", - "etcd", - "node", - "release", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "120696": { - "commit": "fd8239ce8fa6ef1d167b19881f4938e7ef15de4c", - "text": "component-base/logs: when compiled with Go \u003e= 1.21, component-base will automatically configure the slog default logger together with initializing klog.", - "markdown": "Component-base/logs: when compiled with Go \u003e= 1.21, component-base will automatically configure the slog default logger together with initializing klog. ([#120696](https://github.com/kubernetes/kubernetes/pull/120696), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Storage and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120696", - "pr_number": 120696, - "areas": [ - "test", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "network", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "120699": { - "commit": "1ebc3d2a6480f3679c28d0bc3d486ad93e95084f", - "text": "NONE", - "markdown": "NONE ([#120699](https://github.com/kubernetes/kubernetes/pull/120699), [@liyuerich](https://github.com/liyuerich)) [SIG Apps and Node]", - "author": "liyuerich", - "author_url": "https://github.com/liyuerich", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120699", - "pr_number": 120699, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "node" - ], - "duplicate": true, - "do_not_publish": true - }, - "121508": { - "commit": "5722db7aa3e79bdf2a71f38d22a818a25cfb8091", - "text": "kube-scheduler implemented scheduling hints for the CSILimit plugin.\nThe scheduling hints allow the scheduler to retry scheduling a Pod that was previously rejected by the CSILimit plugin if a deleted pod has a PersistantVolumeClaim (PVC) from the same driver.", - "markdown": "Kube-scheduler implemented scheduling hints for the CSILimit plugin.\n The scheduling hints allow the scheduler to retry scheduling a Pod that was previously rejected by the CSILimit plugin if a deleted pod has a PersistantVolumeClaim (PVC) from the same driver. ([#121508](https://github.com/kubernetes/kubernetes/pull/121508), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Storage]", - "author": "utam0k", - "author_url": "https://github.com/utam0k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121508", - "pr_number": 121508, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "121770": { - "commit": "3fda574e5e87368d569d1fd46f05a0750c6c15ab", - "text": "This PR added tracing support to the kubelet's read-only endpoint, which currently\ndoes not have tracing. It makes use of the `WithPublicEndpoint` option to prevent callers\nfrom influencing sampling decisions.", - "markdown": "This PR added tracing support to the kubelet's read-only endpoint, which currently\n does not have tracing. It makes use of the `WithPublicEndpoint` option to prevent callers\n from influencing sampling decisions. ([#121770](https://github.com/kubernetes/kubernetes/pull/121770), [@frzifus](https://github.com/frzifus))", - "author": "frzifus", - "author_url": "https://github.com/frzifus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121770", - "pr_number": 121770, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "121902": { - "commit": "a00181d4d47ebad54e930aa64daed0f3e6fc3a90", - "text": "If the feature-gate VolumeAttributesClass is enabled, when finding a suitable persistent volume for a claim, the kube-controller-manager will be aware of the `volumeAttributesClassName` field of PVC and PV objects. The `volumeAttributesClassName` field is a reference to a VolumeAttributesClass object, which contains a set of key-value pairs that present mutable attributes of the volume. It's forbidden to change the `volumeAttributesClassName` field of a PVC object until the PVC is bound to a PV object. During the binding process, if a PVC has a `volumeAttributesClassName` field set, the controller will only consider volumes that have the same `volumeAttributesClassName` as the PVC. If the `volumeAttributesClassName` field is not set or set to an empty string, only volumes with empty `volumeAttributesClassName` will be considered.", - "markdown": "If the feature-gate VolumeAttributesClass is enabled, when finding a suitable persistent volume for a claim, the kube-controller-manager will be aware of the `volumeAttributesClassName` field of PVC and PV objects. The `volumeAttributesClassName` field is a reference to a VolumeAttributesClass object, which contains a set of key-value pairs that present mutable attributes of the volume. It's forbidden to change the `volumeAttributesClassName` field of a PVC object until the PVC is bound to a PV object. During the binding process, if a PVC has a `volumeAttributesClassName` field set, the controller will only consider volumes that have the same `volumeAttributesClassName` as the PVC. If the `volumeAttributesClassName` field is not set or set to an empty string, only volumes with empty `volumeAttributesClassName` will be considered. ([#121902](https://github.com/kubernetes/kubernetes/pull/121902), [@carlory](https://github.com/carlory)) [SIG Apps, Scheduling, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3751", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121902", - "pr_number": 121902, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true - }, - "121970": { - "commit": "d35ba3635b0fe9cee75e2376e6445113d50437b7", - "text": "k8s.io/apimachinery/pkg/util/runtime: Added support for new calls to handle panics and errors in the context where they occur. `PanicHandlers` and `ErrorHandlers` now must accept a context parameter for that. Log output is structured instead of unstructured.", - "markdown": "K8s.io/apimachinery/pkg/util/runtime: Added support for new calls to handle panics and errors in the context where they occur. `PanicHandlers` and `ErrorHandlers` now must accept a context parameter for that. Log output is structured instead of unstructured. ([#121970](https://github.com/kubernetes/kubernetes/pull/121970), [@pohly](https://github.com/pohly)) [SIG API Machinery and Instrumentation]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121970", - "pr_number": 121970, - "areas": [ - "apiserver", - "dependency" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122025": { - "commit": "58c44005cdaec53fe3cb49b2d7a308df3af2d081", - "text": "`lastSuccessfullTime` in cronjobs will now be set reliably.", - "markdown": "`lastSuccessfullTime` in cronjobs will now be set reliably. ([#122025](https://github.com/kubernetes/kubernetes/pull/122025), [@lukashankeln](https://github.com/lukashankeln)) [SIG Apps]", - "documentation": [ - { - "description": "[Other doc]", - "url": "https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#cronjobstatus-v1-batch", - "type": "official" - } - ], - "author": "lukashankeln", - "author_url": "https://github.com/lukashankeln", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122025", - "pr_number": 122025, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "122038": { - "commit": "b669abc18163a703d1db5ae3c32fd2faff1694b3", - "text": "kubectl: Show the Pod phase in the STATUS column as 'Failed' or 'Succeeded' when the Pod is terminated", - "markdown": "Kubectl: Show the Pod phase in the STATUS column as 'Failed' or 'Succeeded' when the Pod is terminated ([#122038](https://github.com/kubernetes/kubernetes/pull/122038), [@lowang-bh](https://github.com/lowang-bh)) [SIG CLI]", - "author": "lowang-bh", - "author_url": "https://github.com/lowang-bh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122038", - "pr_number": 122038, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "122047": { - "commit": "d40676c227c762e9c6f39682377aaf2e113915e3", - "text": "KEP-1880: Users of the new feature to add multiple service CIDR will use by default a dual-write strategy on the new ClusterIP allocators to avoid the problem of possible duplicate IPs allocated to Services when running skewed kube-apiservers using different allocators. They can opt-out of this behavior by enabled the feature gate DisableAllocatorDualWrite.", - "markdown": "KEP-1880: Users of the new feature to add multiple service CIDR will use by default a dual-write strategy on the new ClusterIP allocators to avoid the problem of possible duplicate IPs allocated to Services when running skewed kube-apiservers using different allocators. They can opt-out of this behavior by enabled the feature gate DisableAllocatorDualWrite. ([#122047](https://github.com/kubernetes/kubernetes/pull/122047), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Instrumentation and Testing]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122047", - "pr_number": 122047, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "instrumentation", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122082": { - "commit": "ef2c682635a1393122ba73886b2707ee9666b3fc", - "text": "Kubelet flag `--keep-terminated-pod-volumes` was removed. This flag was deprecated in 2017.", - "markdown": "Kubelet flag `--keep-terminated-pod-volumes` was removed. This flag was deprecated in 2017. ([#122082](https://github.com/kubernetes/kubernetes/pull/122082), [@carlory](https://github.com/carlory)) [SIG Apps, Node, Storage and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122082", - "pr_number": 122082, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "node", - "storage", - "testing" - ], - "duplicate": true, - "action_required": true, - "is_mapped": true - }, - "122176": { - "commit": "dfcb44758a634ca68cc0cf733e83503d22f241c8", - "text": "kube-apiserver: Added support to disable http/2 serving with a `--disable-http2-serving` flag.\n", - "markdown": "Kube-apiserver: Added support to disable http/2 serving with a `--disable-http2-serving` flag.\n ([#122176](https://github.com/kubernetes/kubernetes/pull/122176), [@slashpai](https://github.com/slashpai)) [SIG API Machinery]", - "author": "slashpai", - "author_url": "https://github.com/slashpai", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122176", - "pr_number": 122176, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "122234": { - "commit": "9c8c61aee4966d153fba0b9c365c7d03c602b4fc", - "text": "Added support to the scheduler to start using QueueingHint registered for Pod/Updated event to determine whether unschedulable Pods update make them schedulable, when the feature gate `SchedulerQueueingHints` is enabled.\nPreviously, when unschedulable Pods are updated, the scheduler always put Pods back to activeQ/backoffQ. But, actually not all updates to Pods make Pods schedulable, especially considering many scheduling constraints nowadays are immutable.\nNow, when unschedulable Pods are updated, the scheduling queue checks with QueueingHint(s) whether the update may make the pods schedulable, and requeues them to activeQ/backoffQ **only when** at least one QueueingHint(s) return Queue. \n\nAction required for custom scheduler plugin developers:\nPlugins **have to** implement a QueueingHint for Pod/Update event if the rejection from them could be resolved by updating unscheduled Pods themselves.\nExample: suppose you develop a custom plugin that denies Pods that have a `schedulable=false` label. \nGiven Pods with a `schedulable=false` label will be schedulable if the `schedulable=false` label is removed, this plugin would implement QueueingHint for Pod/Update event that returns Queue when such label changes are made in unscheduled Pods.", - "markdown": "Added support to the scheduler to start using QueueingHint registered for Pod/Updated event to determine whether unschedulable Pods update make them schedulable, when the feature gate `SchedulerQueueingHints` is enabled.\n Previously, when unschedulable Pods are updated, the scheduler always put Pods back to activeQ/backoffQ. But, actually not all updates to Pods make Pods schedulable, especially considering many scheduling constraints nowadays are immutable.\n Now, when unschedulable Pods are updated, the scheduling queue checks with QueueingHint(s) whether the update may make the pods schedulable, and requeues them to activeQ/backoffQ **only when** at least one QueueingHint(s) return Queue. \n \n Action required for custom scheduler plugin developers:\n Plugins **have to** implement a QueueingHint for Pod/Update event if the rejection from them could be resolved by updating unscheduled Pods themselves.\n Example: suppose you develop a custom plugin that denies Pods that have a `schedulable=false` label. \n Given Pods with a `schedulable=false` label will be schedulable if the `schedulable=false` label is removed, this plugin would implement QueueingHint for Pod/Update event that returns Queue when such label changes are made in unscheduled Pods. ([#122234](https://github.com/kubernetes/kubernetes/pull/122234), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Testing]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/issues/4247", - "type": "KEP" - } - ], - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122234", - "pr_number": 122234, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "action_required": true, - "is_mapped": true - }, - "122251": { - "commit": "b6899c5e08be72917e81d0bc0efe196caf7459ee", - "text": "The scheduler retries scheduling Pods rejected by PreFilterResult (PreFilter plugins) more appropriately; it now takes events registered in those rejector PreFilter plugins into consideration.", - "markdown": "The scheduler retries scheduling Pods rejected by PreFilterResult (PreFilter plugins) more appropriately; it now takes events registered in those rejector PreFilter plugins into consideration. ([#122251](https://github.com/kubernetes/kubernetes/pull/122251), [@olderTaoist](https://github.com/olderTaoist)) [SIG Scheduling and Testing]", - "author": "olderTaoist", - "author_url": "https://github.com/olderTaoist", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122251", - "pr_number": 122251, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true - }, - "122363": { - "commit": "96ad82583f4ecc007ec25e234f4f17f5328ddfb2", - "text": "Removed Kubelet flags `--iptables-masquerade-bit` and `--iptables-drop-bit` as they were deprecated in v1.28. in v1.28 and have now been removed entirely.", - "markdown": "Removed Kubelet flags `--iptables-masquerade-bit` and `--iptables-drop-bit` as they were deprecated in v1.28. in v1.28 and have now been removed entirely. ([#122363](https://github.com/kubernetes/kubernetes/pull/122363), [@carlory](https://github.com/carlory)) [SIG Network and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3178", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122363", - "pr_number": 122363, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "122471": { - "commit": "2c6d5fae7a68ae94edd848c40dc47c9077c7818e", - "text": "The kube-scheduler added scheduling hints for the InterPodAffinity plugin.\nThese hints allow the scheduler to retry scheduling a Pod\nthat was previously rejected by the InterPodAffinity plugin if there are changes (create, delete, or update) to a related Pod or a node that matches the pod affinity criteria.", - "markdown": "The kube-scheduler added scheduling hints for the InterPodAffinity plugin.\n These hints allow the scheduler to retry scheduling a Pod\n that was previously rejected by the InterPodAffinity plugin if there are changes (create, delete, or update) to a related Pod or a node that matches the pod affinity criteria. ([#122471](https://github.com/kubernetes/kubernetes/pull/122471), [@nayihz](https://github.com/nayihz)) [SIG Scheduling and Testing]", - "author": "nayihz", - "author_url": "https://github.com/nayihz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122471", - "pr_number": 122471, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "122499": { - "commit": "c6b5191c37f939d2d61e76de222a96ae5f5d9558", - "text": "StatefulSet autodelete respected controlling owners on PVC claims as described in https://github.com/kubernetes/enhancements/pull/4375.", - "markdown": "StatefulSet autodelete respected controlling owners on PVC claims as described in https://github.com/kubernetes/enhancements/pull/4375. ([#122499](https://github.com/kubernetes/kubernetes/pull/122499), [@mattcary](https://github.com/mattcary)) [SIG Apps and Testing]", - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122499", - "pr_number": 122499, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "122627": { - "commit": "e48d42d81db347bdf7b1bd2489ea1e2783f0ffa6", - "text": "Fixed a bug that when PodTopologySpread rejects Pods, they may be stuck in Pending state for 5 min in a worst case scenario.\nThe same problem could happen with custom plugins which have Pod/Add or Pod/Update in EventsToRegister,\nwhich is also solved with this PR, but only when the feature flag SchedulerQueueingHints is enabled.", - "markdown": "Fixed a bug that when PodTopologySpread rejects Pods, they may be stuck in Pending state for 5 min in a worst case scenario.\n The same problem could happen with custom plugins which have Pod/Add or Pod/Update in EventsToRegister,\n which is also solved with this PR, but only when the feature flag SchedulerQueueingHints is enabled. ([#122627](https://github.com/kubernetes/kubernetes/pull/122627), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122627", - "pr_number": 122627, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true - }, - "122628": { - "commit": "39a80796b641d75423c4156000808ae5810094a2", - "text": "Implemented new cluster events UpdatePodScaleDown and UpdatePodLabel for scheduler plugins.", - "markdown": "Implemented new cluster events UpdatePodScaleDown and UpdatePodLabel for scheduler plugins. ([#122628](https://github.com/kubernetes/kubernetes/pull/122628), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122628", - "pr_number": 122628, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "122636": { - "commit": "b616d916752ec0b4f506bf2d35dd66ef2d974d97", - "text": "Fixed null `lastTransitionTime` in Pod condition when setting the scheduling gate.", - "markdown": "Fixed null `lastTransitionTime` in Pod condition when setting the scheduling gate. ([#122636](https://github.com/kubernetes/kubernetes/pull/122636), [@lianghao208](https://github.com/lianghao208)) [SIG Node and Scheduling]", - "author": "lianghao208", - "author_url": "https://github.com/lianghao208", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122636", - "pr_number": 122636, - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "scheduling" - ], - "duplicate": true, - "is_mapped": true - }, - "122657": { - "commit": "78533415e06199d13f81e78acf9ff2e0f7460801", - "text": "Added the `WatchList` method to the `rest client` in `client-go`. When used,\nit establishes a stream to obtain a consistent snapshot of data from the server.\nThis method is meant to be used by the generated client.", - "markdown": "Added the `WatchList` method to the `rest client` in `client-go`. When used,\n it establishes a stream to obtain a consistent snapshot of data from the server.\n This method is meant to be used by the generated client. ([#122657](https://github.com/kubernetes/kubernetes/pull/122657), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/3157-watch-list/README.md", - "type": "KEP" - } - ], - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122657", - "pr_number": 122657, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "122791": { - "commit": "8c1983ffc0b6fe2293fc721cef8d961d79aafc53", - "text": "Removed `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environment variable from the reflector.\nTo activate the feature set `KUBE_FEATURE_WatchListClient` environment variable or a corresponding command line option (this works only with binaries that explicitly expose it).", - "markdown": "Removed `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environment variable from the reflector.\n To activate the feature set `KUBE_FEATURE_WatchListClient` environment variable or a corresponding command line option (this works only with binaries that explicitly expose it). ([#122791](https://github.com/kubernetes/kubernetes/pull/122791), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/3157-watch-list/README.md", - "type": "KEP" - }, - { - "description": "[Other doc]", - "url": "https://docs.google.com/document/d/1g9BGCRw-7ucUxO6OtCWbb3lfzUGA_uU9178wLdXAIfs/edit#heading=h.lymszxjovg65", - "type": "external" - } - ], - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122791", - "pr_number": 122791, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "122812": { - "commit": "de9a932a14553239e297e0d5350947216393c9ae", - "text": "Added support for kube-proxy iptables mode to track packets that were wrongfully marked invalid by conntrack and subsequently dropped by introducing `kubeproxy_iptables_ct_state_invalid_dropped_packets_total` metric.", - "markdown": "Added support for kube-proxy iptables mode to track packets that were wrongfully marked invalid by conntrack and subsequently dropped by introducing `kubeproxy_iptables_ct_state_invalid_dropped_packets_total` metric. ([#122812](https://github.com/kubernetes/kubernetes/pull/122812), [@aroradaman](https://github.com/aroradaman)) [SIG Instrumentation, Network and Testing]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122812", - "pr_number": 122812, - "areas": [ - "test", - "kube-proxy", - "ipvs", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "122892": { - "commit": "573832a42f03af912a5611eb4e81a0e812a5ddf2", - "text": "The \"fake\" clients generated by `client-gen` now have the same semantics on\nerror as the real clients; in particular, a failed Get(), Create(), etc, no longer\nreturns `nil`. (It now returns a pointer to a zero-valued object, like the real\nclients do.) This will break some downstream unit tests that were testing\n`result == nil` rather than `err != nil`, and in some cases may expose bugs\nin the underlying code that were hidden by the incorrect unit tests.", - "markdown": "The \"fake\" clients generated by `client-gen` now have the same semantics on\n error as the real clients; in particular, a failed Get(), Create(), etc, no longer\n returns `nil`. (It now returns a pointer to a zero-valued object, like the real\n clients do.) This will break some downstream unit tests that were testing\n `result == nil` rather than `err != nil`, and in some cases may expose bugs\n in the underlying code that were hidden by the incorrect unit tests. ([#122892](https://github.com/kubernetes/kubernetes/pull/122892), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Auth, Cloud Provider, Instrumentation and Storage]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122892", - "pr_number": 122892, - "areas": [ - "cloudprovider", - "code-generation" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider", - "instrumentation", - "storage" - ], - "duplicate": true, - "is_mapped": true - }, - "122922": { - "commit": "601eb7e9cf71eebb375d4a32c364b56dfbfd365d", - "text": "Fixed a missing behavior where Windows nodes did not implement memory-pressure eviction.", - "markdown": "Fixed a missing behavior where Windows nodes did not implement memory-pressure eviction. ([#122922](https://github.com/kubernetes/kubernetes/pull/122922), [@marosset](https://github.com/marosset)) [SIG Node, Testing and Windows]", - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122922", - "pr_number": 122922, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing", - "windows" - ], - "feature": true, - "duplicate": true - }, - "122979": { - "commit": "8dd9d1a6bb85fe83c803e33cad8b18d15057a7f3", - "text": "Migrated the pkg/proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", - "markdown": "Migrated the pkg/proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#122979](https://github.com/kubernetes/kubernetes/pull/122979), [@fatsheep9146](https://github.com/fatsheep9146)) [SIG Network and Scalability]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", - "type": "KEP" - } - ], - "author": "fatsheep9146", - "author_url": "https://github.com/fatsheep9146", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122979", - "pr_number": 122979, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "scalability" - ], - "duplicate": true, - "is_mapped": true - }, - "123102": { - "commit": "a7832cc1698ed1e40283840280b1fd697f4f495e", - "text": "kubeadm: during the validation of existing kubeconfig files on disk, handle cases where the \"ca.crt\" is a bundle and has intermediate certificates. Find a common trust anchor between the \"ca.crt\" bundle and the CA in the existing kubeconfig on disk instead of treating \"ca.crt\" as a file containing a single CA.", - "markdown": "Kubeadm: during the validation of existing kubeconfig files on disk, handle cases where the \"ca.crt\" is a bundle and has intermediate certificates. Find a common trust anchor between the \"ca.crt\" bundle and the CA in the existing kubeconfig on disk instead of treating \"ca.crt\" as a file containing a single CA. ([#123102](https://github.com/kubernetes/kubernetes/pull/123102), [@astundzia](https://github.com/astundzia)) [SIG Cluster Lifecycle]", - "author": "astundzia", - "author_url": "https://github.com/astundzia", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123102", - "pr_number": 123102, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "123105": { - "commit": "b2c32fb0151cb56fa30a9cc60b0835ed5c8dfcd5", - "text": "Added support to the kube-proxy nodePortAddresses / --nodeport-addresses option to\naccept the value \"primary\", meaning to only listen for NodePort connections\non the node's primary IPv4 and/or IPv6 address (according to the Node object).\nThis is strongly recommended, if you were not previously using\n--nodeport-addresses, to avoid surprising behavior.\n(This behavior is enabled by default with the nftables backend; you would\nneed to explicitly request `--nodeport-addresses 0.0.0.0/0,::/0` there to get\nthe traditional \"listen on all interfaces\" behavior.)", - "markdown": "Added support to the kube-proxy nodePortAddresses / --nodeport-addresses option to\n accept the value \"primary\", meaning to only listen for NodePort connections\n on the node's primary IPv4 and/or IPv6 address (according to the Node object).\n This is strongly recommended, if you were not previously using\n --nodeport-addresses, to avoid surprising behavior.\n (This behavior is enabled by default with the nftables backend; you would\n need to explicitly request `--nodeport-addresses 0.0.0.0/0,::/0` there to get\n the traditional \"listen on all interfaces\" behavior.) ([#123105](https://github.com/kubernetes/kubernetes/pull/123105), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Network and Windows]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123105", - "pr_number": 123105, - "areas": [ - "kube-proxy", - "code-generation", - "ipvs" - ], - "kinds": [ - "bug", - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "network", - "windows" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123137": { - "commit": "eb9b928c23e9a8b8ecf78539836dad6e0d1d1901", - "text": "kubelet: warn instead of error for the unsupported options on Windows \"CgroupsPerQOS\" and \"EnforceNodeAllocatable\".", - "markdown": "Kubelet: warn instead of error for the unsupported options on Windows \"CgroupsPerQOS\" and \"EnforceNodeAllocatable\". ([#123137](https://github.com/kubernetes/kubernetes/pull/123137), [@neolit123](https://github.com/neolit123)) [SIG Node and Windows]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123137", - "pr_number": 123137, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "windows" - ], - "feature": true, - "duplicate": true - }, - "123149": { - "commit": "6d4250ed413223c2f0a1ab8c253780bf43747bb6", - "text": "Added `--keep-*` flags to `kubectl debug`, which enables to control the removal\nof probes, labels, annotations and initContainers from copy pod.", - "markdown": "Added `--keep-*` flags to `kubectl debug`, which enables to control the removal\n of probes, labels, annotations and initContainers from copy pod. ([#123149](https://github.com/kubernetes/kubernetes/pull/123149), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI and Testing]", - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123149", - "pr_number": 123149, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123233": { - "commit": "5cd78a1e9d928be0390b0fe4cae2966282a1babc", - "text": "Ensured daemonset controller counts old unhealthy pods towards max unavailable budget.", - "markdown": "Ensured daemonset controller counts old unhealthy pods towards max unavailable budget. ([#123233](https://github.com/kubernetes/kubernetes/pull/123233), [@marshallbrekka](https://github.com/marshallbrekka)) [SIG Apps]", - "author": "marshallbrekka", - "author_url": "https://github.com/marshallbrekka", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123233", - "pr_number": 123233, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "123315": { - "commit": "72226c75115aaeb6090b40c34af323c3334f7065", - "text": "Graduated support for Container Device Interface (CDI) device IDs to general availability. The `DevicePluginCDIDevices` feature gate is now enabled unconditionally.", - "markdown": "Graduated support for Container Device Interface (CDI) device IDs to general availability. The `DevicePluginCDIDevices` feature gate is now enabled unconditionally. ([#123315](https://github.com/kubernetes/kubernetes/pull/123315), [@bart0sh](https://github.com/bart0sh)) [SIG Node]", - "author": "bart0sh", - "author_url": "https://github.com/bart0sh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123315", - "pr_number": 123315, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "123316": { - "commit": "18608386ea5709ec26ed4958ddbba28b6723acee", - "text": "Fixed a bug where `kubectl describe` incorrectly displayed NetworkPolicy port ranges\n(showing only the starting port).", - "markdown": "Fixed a bug where `kubectl describe` incorrectly displayed NetworkPolicy port ranges\n (showing only the starting port). ([#123316](https://github.com/kubernetes/kubernetes/pull/123316), [@jcaamano](https://github.com/jcaamano)) [SIG CLI]", - "author": "jcaamano", - "author_url": "https://github.com/jcaamano", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123316", - "pr_number": 123316, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "123398": { - "commit": "1fd835ce59a3ade6290d13c4ff6b52d2875b6042", - "text": "Kubelet is no longer able to recover from device manager state file older than 1.20. If the proper recommended upgrade flow is followed, there should be no issue.", - "markdown": "Kubelet is no longer able to recover from device manager state file older than 1.20. If the proper recommended upgrade flow is followed, there should be no issue. ([#123398](https://github.com/kubernetes/kubernetes/pull/123398), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123398", - "pr_number": 123398, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "123428": { - "commit": "fb0195df118234705c811c2fbb87970ba82326b0", - "text": "The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to GA. This field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted.", - "markdown": "The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to GA. This field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted. ([#123428](https://github.com/kubernetes/kubernetes/pull/123428), [@atiratree](https://github.com/atiratree)) [SIG Apps, Auth, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3017-pod-healthy-policy-for-pdb", - "type": "KEP" - } - ], - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123428", - "pr_number": 123428, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "auth", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123513": { - "commit": "bc3b8f6c6bc85c21aebc3f5d3ebf507cc7f38f9b", - "text": "Moved `ConsistentListFromCache` feature flag to beta and enabled it by default.", - "markdown": "Moved `ConsistentListFromCache` feature flag to beta and enabled it by default. ([#123513](https://github.com/kubernetes/kubernetes/pull/123513), [@serathius](https://github.com/serathius)) [SIG API Machinery and Testing]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123513", - "pr_number": 123513, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123545": { - "commit": "501cfb7482317d7c8da7eaddf11f71820730824d", - "text": "Updated description of default values for `--healthz-bind-address` and `--metrics-bind-address` parameters.", - "markdown": "Updated description of default values for `--healthz-bind-address` and `--metrics-bind-address` parameters. ([#123545](https://github.com/kubernetes/kubernetes/pull/123545), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Network]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123545", - "pr_number": 123545, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "123572": { - "commit": "6f6ba4ae7fd77b2022970c796c6b6ef8fb915c68", - "text": "CEL: Added name formats library.", - "markdown": "CEL: Added name formats library. ([#123572](https://github.com/kubernetes/kubernetes/pull/123572), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4153", - "type": "KEP" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123572", - "pr_number": 123572, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "123587": { - "commit": "b38cce123d79980b9dfbf873f2d073f2c2ced733", - "text": "Fixed \"-kube-test-repo-list\" e2e flag may not take effect.", - "markdown": "Fixed \"-kube-test-repo-list\" e2e flag may not take effect. ([#123587](https://github.com/kubernetes/kubernetes/pull/123587), [@huww98](https://github.com/huww98)) [SIG API Machinery, Apps, Autoscaling, CLI, Network, Node, Scheduling, Storage, Testing and Windows]", - "author": "huww98", - "author_url": "https://github.com/huww98", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123587", - "pr_number": 123587, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "apps", - "autoscaling", - "cli", - "network", - "node", - "scheduling", - "storage", - "testing", - "windows" - ], - "duplicate": true, - "is_mapped": true - }, - "123597": { - "commit": "9d945ba5a520438ac8cf7a77200ae6a8d2d8bd4b", - "text": "Added an extra line between two different key value pairs under data when running `kubectl describe configmap`.", - "markdown": "Added an extra line between two different key value pairs under data when running `kubectl describe configmap`. ([#123597](https://github.com/kubernetes/kubernetes/pull/123597), [@siddhantvirus](https://github.com/siddhantvirus)) [SIG CLI]", - "author": "siddhantvirus", - "author_url": "https://github.com/siddhantvirus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123597", - "pr_number": 123597, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "123620": { - "commit": "5cb71ec2e4c506078449b6a3bbaac44ab03909ce", - "text": "Fixed a bug in the JSON frame reader that could cause it to retain a reference to the underlying array of the byte slice passed to read.", - "markdown": "Fixed a bug in the JSON frame reader that could cause it to retain a reference to the underlying array of the byte slice passed to read. ([#123620](https://github.com/kubernetes/kubernetes/pull/123620), [@benluddy](https://github.com/benluddy)) [SIG API Machinery]", - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123620", - "pr_number": 123620, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "123638": { - "commit": "8ac9d949730a57a41a1a44f8964bd84ab8ab2667", - "text": "Graduated MatchLabelKeys/MismatchLabelKeys feature in PodAffinity/PodAntiAffinity to Beta.", - "markdown": "Graduated MatchLabelKeys/MismatchLabelKeys feature in PodAffinity/PodAntiAffinity to Beta. ([#123638](https://github.com/kubernetes/kubernetes/pull/123638), [@sanposhiho](https://github.com/sanposhiho)) [SIG API Machinery, Apps, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3633", - "type": "KEP" - } - ], - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123638", - "pr_number": 123638, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123669": { - "commit": "35ffb484257f6fc8710baa657f438ad28707149f", - "text": "CEL (Common Expression Language): converting a quantity value into a quantity value failed.", - "markdown": "CEL (Common Expression Language): converting a quantity value into a quantity value failed. ([#123669](https://github.com/kubernetes/kubernetes/pull/123669), [@pohly](https://github.com/pohly)) [SIG API Machinery]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123669", - "pr_number": 123669, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "123733": { - "commit": "3361895612dac57044d5dacc029d2ace1865479c", - "text": "User can choose a different static policy option `SpreadPhysicalCPUsPreferredOption` to spread cpus across physical cpus for some specific applications", - "markdown": "User can choose a different static policy option `SpreadPhysicalCPUsPreferredOption` to spread cpus across physical cpus for some specific applications ([#123733](https://github.com/kubernetes/kubernetes/pull/123733), [@Jeffwan](https://github.com/Jeffwan)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4176", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://github.com/kubernetes/website/pull/45216", - "type": "external" - }, - { - "description": "[Other doc]: [\u003clink\u003e](", - "url": "https://github.com/kubernetes/website/pull/45217)", - "type": "external" - } - ], - "author": "Jeffwan", - "author_url": "https://github.com/Jeffwan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123733", - "pr_number": 123733, - "areas": [ - "test", - "kubelet", - "kubeadm" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true - }, - "123797": { - "commit": "d0e78ef70e954f0233cc2e917b7c85cb957d36cd", - "text": "Added `cri-client` staging repository.", - "markdown": "Added `cri-client` staging repository. ([#123797](https://github.com/kubernetes/kubernetes/pull/123797), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Node, Release and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123797", - "pr_number": 123797, - "areas": [ - "test", - "kubelet", - "apiserver", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "node", - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123809": { - "commit": "85d55b67371bae83aa73a3a65b23520e0f22a74b", - "text": "The emission of RecreatingFailedPod and RecreatingTerminatedPod events has been\nremoved from the StatefulSet lifecycle.", - "markdown": "The emission of RecreatingFailedPod and RecreatingTerminatedPod events has been\n removed from the StatefulSet lifecycle. ([#123809](https://github.com/kubernetes/kubernetes/pull/123809), [@atiratree](https://github.com/atiratree)) [SIG Apps and Testing]", - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123809", - "pr_number": 123809, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "123822": { - "commit": "d9d698694862718813294c8672a046cb91cdb759", - "text": "Fixed a missing status prefix in custom resource validation error messages.", - "markdown": "Fixed a missing status prefix in custom resource validation error messages. ([#123822](https://github.com/kubernetes/kubernetes/pull/123822), [@JoelSpeed](https://github.com/JoelSpeed))", - "author": "JoelSpeed", - "author_url": "https://github.com/JoelSpeed", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123822", - "pr_number": 123822, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "123845": { - "commit": "1af6bc992c8afb2cd6f3ebf012f633318717852c", - "text": "Graduated the `DisableNodeKubeProxyVersion` feature gate to beta. By default, the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for its associated Node.", - "markdown": "Graduated the `DisableNodeKubeProxyVersion` feature gate to beta. By default, the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for its associated Node. ([#123845](https://github.com/kubernetes/kubernetes/pull/123845), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Cloud Provider, Network, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4004-deprecate-kube-proxy-version", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123845", - "pr_number": 123845, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "network", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123894": { - "commit": "0c55f74aedea9706f23440c582373d1a8f84cfe1", - "text": "Updated cni-plugins to v1.4.1.", - "markdown": "Updated cni-plugins to v1.4.1. ([#123894](https://github.com/kubernetes/kubernetes/pull/123894), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123894", - "pr_number": 123894, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "123905": { - "commit": "534d7cbc1a6c628e78e28a61a5c37e86f18077bf", - "text": "Services implemented a field selector for the ClusterIP and Type fields.\nThe Kubelet uses this field selector to avoid monitoring Headless Services, which helps reduce memory consumption.", - "markdown": "Services implemented a field selector for the ClusterIP and Type fields.\n The Kubelet uses this field selector to avoid monitoring Headless Services, which helps reduce memory consumption. ([#123905](https://github.com/kubernetes/kubernetes/pull/123905), [@aojea](https://github.com/aojea)) [SIG Apps, Node and Testing]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123905", - "pr_number": 123905, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "123919": { - "commit": "39c6bc31363ddce17edcc85fe6e3a15d5bf928e6", - "text": "Added apiserver.latency.k8s.io/apf-queue-wait annotation to the audit log\nto record the time spent waiting in APF queue.", - "markdown": "Added apiserver.latency.k8s.io/apf-queue-wait annotation to the audit log\n to record the time spent waiting in APF queue. ([#123919](https://github.com/kubernetes/kubernetes/pull/123919), [@hakuna-matatah](https://github.com/hakuna-matatah)) [SIG API Machinery]", - "author": "hakuna-matatah", - "author_url": "https://github.com/hakuna-matatah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123919", - "pr_number": 123919, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "124012": { - "commit": "5f5c02da51cd3146f30c6ee56013c983f4999d9c", - "text": "Added Coordinated Leader Election as Alpha under the `CoordinatedLeaderElection` feature gate. With the feature enabled, the control plane can use LeaseCandidate objects (coordination.k8s.io/v1alpha1 API group) to participate in a leader election and let the kube-apiserver select the best instance according to some strategy.", - "markdown": "Added Coordinated Leader Election as Alpha under the `CoordinatedLeaderElection` feature gate. With the feature enabled, the control plane can use LeaseCandidate objects (coordination.k8s.io/v1alpha1 API group) to participate in a leader election and let the kube-apiserver select the best instance according to some strategy. ([#124012](https://github.com/kubernetes/kubernetes/pull/124012), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Apps, Auth, Cloud Provider, Etcd, Node, Release, Scheduling and Testing]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124012", - "pr_number": 124012, - "areas": [ - "test", - "apiserver", - "provider/gcp", - "release-eng", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cloud-provider", - "etcd", - "node", - "release", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124017": { - "commit": "1ff1207d22ab5cf442c8dafdf5bded1e32519873", - "text": "Removed deprecated command flags --volume-host-cidr-denylist\nand --volume-host-allow-local-loopback from kube-controller-manager.\n", - "markdown": "Removed deprecated command flags --volume-host-cidr-denylist\n and --volume-host-allow-local-loopback from kube-controller-manager.\n ([#124017](https://github.com/kubernetes/kubernetes/pull/124017), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Cloud Provider and Storage]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124017", - "pr_number": 124017, - "areas": [ - "provider/gcp", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "cloud-provider", - "storage" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124025": { - "commit": "80212923db1a49fc2954294ca045ba0a251f00e4", - "text": "Continued streaming kubelet logs when the CRI server of the runtime was unavailable.", - "markdown": "Continued streaming kubelet logs when the CRI server of the runtime was unavailable. ([#124025](https://github.com/kubernetes/kubernetes/pull/124025), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124025", - "pr_number": 124025, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "124026": { - "commit": "c67ea2f7794bd933c806799555e1b2eb8f0e11db", - "text": "Built etcd image v3.5.13.", - "markdown": "Built etcd image v3.5.13. ([#124026](https://github.com/kubernetes/kubernetes/pull/124026), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG API Machinery and Etcd]", - "author": "liangyuanpeng", - "author_url": "https://github.com/liangyuanpeng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124026", - "pr_number": 124026, - "areas": [ - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "etcd" - ], - "duplicate": true, - "is_mapped": true - }, - "124027": { - "commit": "695a984f569bec2835bcb3ac8474cebefd020994", - "text": "etcd: Updated to v3.5.13.", - "markdown": "Etcd: Updated to v3.5.13. ([#124027](https://github.com/kubernetes/kubernetes/pull/124027), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]", - "author": "liangyuanpeng", - "author_url": "https://github.com/liangyuanpeng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124027", - "pr_number": 124027, - "areas": [ - "test", - "provider/gcp", - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "cluster-lifecycle", - "etcd", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "124038": { - "commit": "f3e7e008a4848497e96db115dc0e22e4e7c7288c", - "text": "'kubeadm: Stopped storing the ResolverConfig in the global KubeletConfiguration\nand sets it dynamically for each node instead.'", - "markdown": "'kubeadm: Stopped storing the ResolverConfig in the global KubeletConfiguration\n and sets it dynamically for each node instead.' ([#124038](https://github.com/kubernetes/kubernetes/pull/124038), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124038", - "pr_number": 124038, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124055": { - "commit": "846e282d0523fdb23522e6b318186aa80593c594", - "text": "Optimized log output to avoid printing out redundant information of the pod.", - "markdown": "Optimized log output to avoid printing out redundant information of the pod. ([#124055](https://github.com/kubernetes/kubernetes/pull/124055), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Scheduling]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124055", - "pr_number": 124055, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true, - "is_mapped": true - }, - "124061": { - "commit": "04d2f336419b5a824cb96cb88462ef18a90d619d", - "text": "CustomResourceDefinition objects created with non-empty `caBundle` fields which are invalid or do not contain any certificates will not appear in discovery or serve endpoints until a valid `caBundle` is provided. Updates to CustomResourceDefinition are no longer allowed to transition a valid `caBundle` field to an invalid `caBundle` field, because this breaks serving of the existing CustomResourceDefinition.", - "markdown": "CustomResourceDefinition objects created with non-empty `caBundle` fields which are invalid or do not contain any certificates will not appear in discovery or serve endpoints until a valid `caBundle` is provided. Updates to CustomResourceDefinition are no longer allowed to transition a valid `caBundle` field to an invalid `caBundle` field, because this breaks serving of the existing CustomResourceDefinition. ([#124061](https://github.com/kubernetes/kubernetes/pull/124061), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124061", - "pr_number": 124061, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "124063": { - "commit": "a7ece470e56f0479573db2632031d274867d96b1", - "text": "Fixed a bug where hard evictions due to resource pressure allowed pods\nto use the full termination grace period instead of shutting down instantly. \nThis bug also affected force deleted pods. Both cases now receive a termination grace period of 1 second.", - "markdown": "Fixed a bug where hard evictions due to resource pressure allowed pods\n to use the full termination grace period instead of shutting down instantly. \n This bug also affected force deleted pods. Both cases now receive a termination grace period of 1 second. ([#124063](https://github.com/kubernetes/kubernetes/pull/124063), [@olyazavr](https://github.com/olyazavr)) [SIG Node]", - "author": "olyazavr", - "author_url": "https://github.com/olyazavr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124063", - "pr_number": 124063, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "124075": { - "commit": "62895895094cbb59fe39176afd484ce3d2505b61", - "text": "Dynamic Resource Allocation (DRA): client-side validation of a ResourceHandle would have accepted a missing DriverName, whereas server-side validation then would have raised an error.", - "markdown": "Dynamic Resource Allocation (DRA): client-side validation of a ResourceHandle would have accepted a missing DriverName, whereas server-side validation then would have raised an error. ([#124075](https://github.com/kubernetes/kubernetes/pull/124075), [@pohly](https://github.com/pohly)) [SIG Apps]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124075", - "pr_number": 124075, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124091": { - "commit": "bbfd2145dee670458d623800567facca13e27cc3", - "text": "Fixed kubelet so it would no longer crash when a DRA(Dynamic Resource Allocation) driver returns a nil as part of the Node(Un)PrepareResources response instead of an empty struct (Did not affect drivers written in Go, first showed up with a driver written in Rust).", - "markdown": "Fixed kubelet so it would no longer crash when a DRA(Dynamic Resource Allocation) driver returns a nil as part of the Node(Un)PrepareResources response instead of an empty struct (Did not affect drivers written in Go, first showed up with a driver written in Rust). ([#124091](https://github.com/kubernetes/kubernetes/pull/124091), [@bitoku](https://github.com/bitoku)) [SIG Node]", - "author": "bitoku", - "author_url": "https://github.com/bitoku", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124091", - "pr_number": 124091, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "124092": { - "commit": "9039d71dd7b9916e4faba00a60c86f0c2e45ed89", - "text": "- Windows Kubeproxy will use the update load balancer API for load balancer updates, instead of the previous delete and create APIs.\n- Deletion of remote endpoints will be triggered only for terminated endpoints (those present in the old endpoints map but not in the new endpoints map), whereas previously it was also done for terminating endpoints.", - "markdown": "- Windows Kubeproxy will use the update load balancer API for load balancer updates, instead of the previous delete and create APIs.\n - Deletion of remote endpoints will be triggered only for terminated endpoints (those present in the old endpoints map but not in the new endpoints map), whereas previously it was also done for terminating endpoints. ([#124092](https://github.com/kubernetes/kubernetes/pull/124092), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows]", - "author": "princepereira", - "author_url": "https://github.com/princepereira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124092", - "pr_number": 124092, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "windows" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124101": { - "commit": "e9d9a82839bfe4f159e5bc101d39f7c568699f80", - "text": "Fixed a bug where the Kubelet miscalculated the process usage of pods, causing pods to never get evicted for PID usage.", - "markdown": "Fixed a bug where the Kubelet miscalculated the process usage of pods, causing pods to never get evicted for PID usage. ([#124101](https://github.com/kubernetes/kubernetes/pull/124101), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing]", - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124101", - "pr_number": 124101, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "124116": { - "commit": "3261821fbcb99a34f7f442ff80e8f706734ee322", - "text": "Fixed a deep copy issue when retrieving the controller reference.", - "markdown": "Fixed a deep copy issue when retrieving the controller reference. ([#124116](https://github.com/kubernetes/kubernetes/pull/124116), [@HiranmoyChowdhury](https://github.com/HiranmoyChowdhury)) [SIG API Machinery and Release]", - "author": "HiranmoyChowdhury", - "author_url": "https://github.com/HiranmoyChowdhury", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124116", - "pr_number": 124116, - "areas": [ - "release-eng" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "release" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124123": { - "commit": "ca4a864336bdb1d61bc19e90a9c81ac6c661e6d7", - "text": "Enabled kubectl to find `kubectl-create-subcommand` plugins when positional\narguments exists, e.g. `kubectl create subcommand arg`.", - "markdown": "Enabled kubectl to find `kubectl-create-subcommand` plugins when positional\n arguments exists, e.g. `kubectl create subcommand arg`. ([#124123](https://github.com/kubernetes/kubernetes/pull/124123), [@sttts](https://github.com/sttts)) [SIG CLI]", - "author": "sttts", - "author_url": "https://github.com/sttts", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124123", - "pr_number": 124123, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "124131": { - "commit": "d83cd48e5ebbb1b073164a574ef9aa5a68569d9c", - "text": "Fixed the bug where if Endpointslices mirrored from Endpoints by the EndpointSliceMirroring controller they would not reconcile if modified. were not reconciled if modified", - "markdown": "Fixed the bug where if Endpointslices mirrored from Endpoints by the EndpointSliceMirroring controller they would not reconcile if modified. were not reconciled if modified ([#124131](https://github.com/kubernetes/kubernetes/pull/124131), [@zyjhtangtang](https://github.com/zyjhtangtang)) [SIG Apps and Network]", - "author": "zyjhtangtang", - "author_url": "https://github.com/zyjhtangtang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124131", - "pr_number": 124131, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true, - "is_mapped": true - }, - "124147": { - "commit": "7196c749f27e995b307b584cbf3b50a7056f3fc4", - "text": "Kubemark: added two flags, `--kube-api-qps` which indicates the maximum QPS to the apiserver, and `--kube-api-burst` which indicates maximum burst for throttle to the apiserver.", - "markdown": "Kubemark: added two flags, `--kube-api-qps` which indicates the maximum QPS to the apiserver, and `--kube-api-burst` which indicates maximum burst for throttle to the apiserver. ([#124147](https://github.com/kubernetes/kubernetes/pull/124147), [@devincd](https://github.com/devincd)) [SIG Scalability]", - "author": "devincd", - "author_url": "https://github.com/devincd", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124147", - "pr_number": 124147, - "kinds": [ - "feature" - ], - "sigs": [ - "scalability" - ], - "feature": true, - "is_mapped": true - }, - "124148": { - "commit": "2263f2d719dcbdd972393bbf9d2683c8bb2cf747", - "text": "Add a TopologyManager policy option: max-allowable-numa-nodes to configures maxAllowableNUMANodes for kubelet.", - "markdown": "Add a TopologyManager policy option: max-allowable-numa-nodes to configures maxAllowableNUMANodes for kubelet. ([#124148](https://github.com/kubernetes/kubernetes/pull/124148), [@cyclinder](https://github.com/cyclinder)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/4624", - "type": "KEP" - } - ], - "author": "cyclinder", - "author_url": "https://github.com/cyclinder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124148", - "pr_number": 124148, - "areas": [ - "test", - "kubelet", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "124152": { - "commit": "db91d45d2d71249b7555c3675388ef2976da5efa", - "text": "The (alpha) nftables mode of kube-proxy now requires version 1.0.1 or later\nof the nft command-line, and kernel 5.13 or later. (For testing/development\npurposes, you can use older kernels, as far back as 5.4, if you set the\n`nftables.skipKernelVersionCheck` option in the kube-proxy config, but this is not\nrecommended in production since it may cause problems with other nftables\nusers on the system.)", - "markdown": "The (alpha) nftables mode of kube-proxy now requires version 1.0.1 or later\n of the nft command-line, and kernel 5.13 or later. (For testing/development\n purposes, you can use older kernels, as far back as 5.4, if you set the\n `nftables.skipKernelVersionCheck` option in the kube-proxy config, but this is not\n recommended in production since it may cause problems with other nftables\n users on the system.) ([#124152](https://github.com/kubernetes/kubernetes/pull/124152), [@danwinship](https://github.com/danwinship)) [SIG Network]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124152", - "pr_number": 124152, - "areas": [ - "kube-proxy", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true - }, - "124160": { - "commit": "eb6840928df59bf8203b1eda839ccd3da68fb37d", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#124160](https://github.com/kubernetes/kubernetes/pull/124160), [@Karthik-K-N](https://github.com/Karthik-K-N)) [SIG Network]", - "author": "Karthik-K-N", - "author_url": "https://github.com/Karthik-K-N", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124160", - "pr_number": 124160, - "areas": [ - "kube-proxy", - "ipvs", - "code-organization" - ], - "kinds": [ - "failing-test" - ], - "sigs": [ - "network" - ], - "do_not_publish": true - }, - "124189": { - "commit": "1cbe7b6b439463623f461a4be96fb5e13fa2525c", - "text": "Fixed an issue that prevents the linking of trace spans for requests that are proxied through kube-aggregator.", - "markdown": "Fixed an issue that prevents the linking of trace spans for requests that are proxied through kube-aggregator. ([#124189](https://github.com/kubernetes/kubernetes/pull/124189), [@toddtreece](https://github.com/toddtreece)) [SIG API Machinery]", - "author": "toddtreece", - "author_url": "https://github.com/toddtreece", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124189", - "pr_number": 124189, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "124210": { - "commit": "2f2c1fb8116af491ed2daabc4d4a3350bf8f6fa4", - "text": "The feature gate \"SkipReadOnlyValidationGCE\" has been removed. This gate has been active for 2 releases with no reports of issues (and was such a niche thing, we didn't expect any).", - "markdown": "The feature gate \"SkipReadOnlyValidationGCE\" has been removed. This gate has been active for 2 releases with no reports of issues (and was such a niche thing, we didn't expect any). ([#124210](https://github.com/kubernetes/kubernetes/pull/124210), [@thockin](https://github.com/thockin)) [SIG Apps]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124210", - "pr_number": 124210, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "124220": { - "commit": "dad8fe71f2b2b942b125b3bbbab60e5f2bb5fa1f", - "text": "Kubelet would not restart the container when fields other than image in the Pod spec change. pod spec change.", - "markdown": "Kubelet would not restart the container when fields other than image in the Pod spec change. pod spec change. ([#124220](https://github.com/kubernetes/kubernetes/pull/124220), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node]", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124220", - "pr_number": 124220, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "124221": { - "commit": "b2a8ac15a0db0d3f2c7ae6c221ed56e2e3cde7fb", - "text": "Fixed a typo in the help text for the pod_scheduling_sli_duration_seconds metric in kube-scheduler.", - "markdown": "Fixed a typo in the help text for the pod_scheduling_sli_duration_seconds metric in kube-scheduler. ([#124221](https://github.com/kubernetes/kubernetes/pull/124221), [@arturhoo](https://github.com/arturhoo)) [SIG Instrumentation, Scheduling and Testing]", - "author": "arturhoo", - "author_url": "https://github.com/arturhoo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124221", - "pr_number": 124221, - "areas": [ - "test", - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "instrumentation", - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "124281": { - "commit": "4878acc5e58268c2c59054dc25c8f53c6a861501", - "text": "Allowed parameter to be set along with proto file path.", - "markdown": "Allowed parameter to be set along with proto file path. ([#124281](https://github.com/kubernetes/kubernetes/pull/124281), [@fulviodenza](https://github.com/fulviodenza)) [SIG API Machinery]", - "author": "fulviodenza", - "author_url": "https://github.com/fulviodenza", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124281", - "pr_number": 124281, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "124287": { - "commit": "b27608875c45218f7a9fa6e9cfdfe17f15328bb2", - "text": "The scheduler implemented QueueingHint in the TaintToleration plugin, enhancing the throughput of scheduling.", - "markdown": "The scheduler implemented QueueingHint in the TaintToleration plugin, enhancing the throughput of scheduling. ([#124287](https://github.com/kubernetes/kubernetes/pull/124287), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124287", - "pr_number": 124287, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124299": { - "commit": "e59eceec480e1e181e38bc29e2c01652ec3c671c", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#124299](https://github.com/kubernetes/kubernetes/pull/124299), [@kushalShukla-web](https://github.com/kushalShukla-web)) [SIG API Machinery]", - "author": "kushalShukla-web", - "author_url": "https://github.com/kushalShukla-web", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124299", - "pr_number": 124299, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "124316": { - "commit": "5a71f37805246db1f7f681c4ee7da508054cc429", - "text": "ACTION-REQUIRED: Dynamic Resource Allocation (DRA) drivers using the v1alpha2 kubelet gRPC API are no longer supported and need to be updated.", - "markdown": "ACTION-REQUIRED: Dynamic Resource Allocation (DRA) drivers using the v1alpha2 kubelet gRPC API are no longer supported and need to be updated. ([#124316](https://github.com/kubernetes/kubernetes/pull/124316), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124316", - "pr_number": 124316, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "124320": { - "commit": "951e624adabcf3b20bb112978f0005dda93a8924", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#124320](https://github.com/kubernetes/kubernetes/pull/124320), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG Auth, Node and Storage]", - "author": "liangyuanpeng", - "author_url": "https://github.com/liangyuanpeng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124320", - "pr_number": 124320, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "node", - "storage" - ], - "duplicate": true, - "do_not_publish": true - }, - "124328": { - "commit": "16a594f907d0d4a6224dab2d0704793d5e7898f6", - "text": "The name of CEL(Common Expression Language) optional type has been changed from `optional` to `optional_type`.", - "markdown": "The name of CEL(Common Expression Language) optional type has been changed from `optional` to `optional_type`. ([#124328](https://github.com/kubernetes/kubernetes/pull/124328), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Network and Node]", - "author": "jiahuif", - "author_url": "https://github.com/jiahuif", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124328", - "pr_number": 124328, - "areas": [ - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cli", - "cloud-provider", - "network", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124329": { - "commit": "7943c17867997af123ca5c2596b744f4e86c7860", - "text": "Removed generally available feature gate `ReadWriteOncePod`.", - "markdown": "Removed generally available feature gate `ReadWriteOncePod`. ([#124329](https://github.com/kubernetes/kubernetes/pull/124329), [@chrishenzie](https://github.com/chrishenzie)) [SIG Storage]", - "author": "chrishenzie", - "author_url": "https://github.com/chrishenzie", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124329", - "pr_number": 124329, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "124342": { - "commit": "52c0ed4673b30c2cb80d7ee680b6b8336fb1c488", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#124342](https://github.com/kubernetes/kubernetes/pull/124342), [@zhifei92](https://github.com/zhifei92)) [SIG Node]", - "author": "zhifei92", - "author_url": "https://github.com/zhifei92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124342", - "pr_number": 124342, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "124344": { - "commit": "0b15f8cbfc611889f703495ee845b3c54bdd759d", - "text": "Fixed a race condition in the transforming informer that occurred when objects were accessed during the Resync operation.", - "markdown": "Fixed a race condition in the transforming informer that occurred when objects were accessed during the Resync operation. ([#124344](https://github.com/kubernetes/kubernetes/pull/124344), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery]", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124344", - "pr_number": 124344, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "124350": { - "commit": "d593c886b1fd4119204b8e5a5fc012e36f42fd7a", - "text": "e2e.test and e2e_node.test: tests which depend on alpha or beta feature gates now have `Feature:Alpha` or `Feature:Beta` as Ginkgo labels. The inline text is `[Alpha]` or `[Beta]`, as before.", - "markdown": "E2e.test and e2e_node.test: tests which depend on alpha or beta feature gates now have `Feature:Alpha` or `Feature:Beta` as Ginkgo labels. The inline text is `[Alpha]` or `[Beta]`, as before. ([#124350](https://github.com/kubernetes/kubernetes/pull/124350), [@pohly](https://github.com/pohly)) [SIG Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124350", - "pr_number": 124350, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ], - "is_mapped": true - }, - "124352": { - "commit": "bc05bef903c063423ac009569974ccbc81138d66", - "text": "Fixed a race condition in kube-controller-manager and the scheduler, caused by\na bug in the transforming informer during the Resync operation, \nby making the transforming function idempotent.", - "markdown": "Fixed a race condition in kube-controller-manager and the scheduler, caused by\n a bug in the transforming informer during the Resync operation, \n by making the transforming function idempotent. ([#124352](https://github.com/kubernetes/kubernetes/pull/124352), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Scheduling]", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124352", - "pr_number": 124352, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "scheduling" - ], - "duplicate": true, - "is_mapped": true - }, - "124361": { - "commit": "e6efba3380c87503f918053c0511587485a2f828", - "text": "kubeadm: Removed support for mounting /etc/pki as an additional Linux system CA location\nin kube-apisever and kube-controller-manager pods. Instead, it shifted to supporting the\nmounting of /etc/pki/ca-trust and /etc/pki/tls/certs. The locations /etc/ca-certificate,\n/usr/share/ca-certificates, /usr/local/share/ca-certificates, and /etc/ssl/certs continued\nto be supported.", - "markdown": "Kubeadm: Removed support for mounting /etc/pki as an additional Linux system CA location\n in kube-apisever and kube-controller-manager pods. Instead, it shifted to supporting the\n mounting of /etc/pki/ca-trust and /etc/pki/tls/certs. The locations /etc/ca-certificate,\n /usr/share/ca-certificates, /usr/local/share/ca-certificates, and /etc/ssl/certs continued\n to be supported. ([#124361](https://github.com/kubernetes/kubernetes/pull/124361), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124361", - "pr_number": 124361, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124364": { - "commit": "cc9e0643c0489f863f789c76d0fad5a5e13a14c3", - "text": "Updated cri-tools to v1.30.0.", - "markdown": "Updated cri-tools to v1.30.0. ([#124364](https://github.com/kubernetes/kubernetes/pull/124364), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Release]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124364", - "pr_number": 124364, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "node", - "release" - ], - "duplicate": true, - "is_mapped": true - }, - "124373": { - "commit": "6bb968c4d2097e12b90ac196bd1ef28d9bc467b4", - "text": "kubeadm: removed the deprecated and NO-OP \"kubeadm join control-plane-join update-status\" phase.", - "markdown": "Kubeadm: removed the deprecated and NO-OP \"kubeadm join control-plane-join update-status\" phase. ([#124373](https://github.com/kubernetes/kubernetes/pull/124373), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124373", - "pr_number": 124373, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "124374": { - "commit": "c4bce63d9886e5f1fc00f8c3b5a13ea0d2bdf772", - "text": "kubeadm: removed the EXPERIMENTAL tag from the phase \"kubeadm join control-plane-prepare download-certs\".", - "markdown": "Kubeadm: removed the EXPERIMENTAL tag from the phase \"kubeadm join control-plane-prepare download-certs\". ([#124374](https://github.com/kubernetes/kubernetes/pull/124374), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124374", - "pr_number": 124374, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "124375": { - "commit": "0e39ca84dc0224edf6b399772d6f4072b4fe8b9b", - "text": "kubeadm: The global --rootfs flag considered non-experimental.", - "markdown": "Kubeadm: The global --rootfs flag considered non-experimental. ([#124375](https://github.com/kubernetes/kubernetes/pull/124375), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124375", - "pr_number": 124375, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "124381": { - "commit": "5d88b0e08f26055290ca808db061efc841494f93", - "text": "Added support for CEL(Common Expression Language) expressions and `additionalProperties` to be used under nested quantifiers in CRD schemas.", - "markdown": "Added support for CEL(Common Expression Language) expressions and `additionalProperties` to be used under nested quantifiers in CRD schemas. ([#124381](https://github.com/kubernetes/kubernetes/pull/124381), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4153", - "type": "external" - } - ], - "author": "alexzielenski", - "author_url": "https://github.com/alexzielenski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124381", - "pr_number": 124381, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "124383": { - "commit": "bf07ef3950d80256cb366b035712b6d60b8a3f4c", - "text": "kube-proxy's nftables mode (--proxy-mode=nftables) is now beta and available by default.", - "markdown": "Kube-proxy's nftables mode (--proxy-mode=nftables) is now beta and available by default. ([#124383](https://github.com/kubernetes/kubernetes/pull/124383), [@danwinship](https://github.com/danwinship)) [SIG Cloud Provider and Network]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3866", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124383", - "pr_number": 124383, - "areas": [ - "kube-proxy", - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "network" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124393": { - "commit": "f39ece24b27062a8d9eb791ffebc252ea1449734", - "text": "'kubeadm: marked the flag \"--experimental-output'' as deprecated (it will\nbe removed in a future release) and added a new flag ''--output\" that serves the\nsame purpose. Affected commands are - \"kubeadm config images list\", \"kubeadm token\nlist\", \"kubeadm upgrade plan\", \"kubeadm certs check-expiration\".'", - "markdown": "'kubeadm: marked the flag \"--experimental-output'' as deprecated (it will\n be removed in a future release) and added a new flag ''--output\" that serves the\n same purpose. Affected commands are - \"kubeadm config images list\", \"kubeadm token\n list\", \"kubeadm upgrade plan\", \"kubeadm certs check-expiration\".' ([#124393](https://github.com/kubernetes/kubernetes/pull/124393), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124393", - "pr_number": 124393, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "124417": { - "commit": "74877bb43bc88e21b7304382cf039947a7d90069", - "text": "The feature gate \"DefaultHostNetworkHostPortsInPodTemplates\" has been removed. This behavior was deprecated in v1.28, and has had no reports of issues since.", - "markdown": "The feature gate \"DefaultHostNetworkHostPortsInPodTemplates\" has been removed. This behavior was deprecated in v1.28, and has had no reports of issues since. ([#124417](https://github.com/kubernetes/kubernetes/pull/124417), [@thockin](https://github.com/thockin)) [SIG Apps]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124417", - "pr_number": 124417, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "124419": { - "commit": "ba05a8deb3cfcc52a9f80bf4e2303cd552fc582b", - "text": "'kubeadm: marked the sub-phase of ''init kubelet-finalize'' called ''experimental-cert-rotation''\nas deprecated and print a warning if it is used directly; it will be removed in\na future release. Added a replacement sub-phase ''enable-client-cert-rotation''.'", - "markdown": "'kubeadm: marked the sub-phase of ''init kubelet-finalize'' called ''experimental-cert-rotation''\n as deprecated and print a warning if it is used directly; it will be removed in\n a future release. Added a replacement sub-phase ''enable-client-cert-rotation''.' ([#124419](https://github.com/kubernetes/kubernetes/pull/124419), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124419", - "pr_number": 124419, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124428": { - "commit": "74ae6d1b4b31db5588fea61253f4ade5b5ff1660", - "text": "Added a testcase to check hostname and hostNetwork.", - "markdown": "Added a testcase to check hostname and hostNetwork. ([#124428](https://github.com/kubernetes/kubernetes/pull/124428), [@yashsingh74](https://github.com/yashsingh74)) [SIG Architecture, Network and Testing]", - "author": "yashsingh74", - "author_url": "https://github.com/yashsingh74", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124428", - "pr_number": 124428, - "areas": [ - "test", - "conformance" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture", - "network", - "testing" - ], - "duplicate": true, - "do_not_publish": true, - "is_mapped": true - }, - "124430": { - "commit": "57d197fb890a50a508c4e9e485da5076a6d1b055", - "text": "Fixed node reporting \"notReady\" with the reason 'container runtime status check may not have completed yet' after kubelet restart.", - "markdown": "Fixed node reporting \"notReady\" with the reason 'container runtime status check may not have completed yet' after kubelet restart. ([#124430](https://github.com/kubernetes/kubernetes/pull/124430), [@AllenXu93](https://github.com/AllenXu93))", - "author": "AllenXu93", - "author_url": "https://github.com/AllenXu93", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124430", - "pr_number": 124430, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "124444": { - "commit": "159d4b837afd17e2d331c6d3b2561d02c47803d6", - "text": "Fixed issue where following Windows container logs would prevent container log rotation.", - "markdown": "Fixed issue where following Windows container logs would prevent container log rotation. ([#124444](https://github.com/kubernetes/kubernetes/pull/124444), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Testing and Windows]", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124444", - "pr_number": 124444, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "node", - "testing", - "windows" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124462": { - "commit": "0a8d2f770edf7bf467e780ce0ad413b6ec2d04e5", - "text": "Removed generally available feature gate `CSINodeExpandSecret`.", - "markdown": "Removed generally available feature gate `CSINodeExpandSecret`. ([#124462](https://github.com/kubernetes/kubernetes/pull/124462), [@carlory](https://github.com/carlory)) [SIG Storage]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124462", - "pr_number": 124462, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "124463": { - "commit": "e342ab05bb903519350cedac784898529eaef06b", - "text": "Removed generally available feature gate `ConsistentHTTPGetHandlers`.", - "markdown": "Removed generally available feature gate `ConsistentHTTPGetHandlers`. ([#124463](https://github.com/kubernetes/kubernetes/pull/124463), [@carlory](https://github.com/carlory)) [SIG Node]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124463", - "pr_number": 124463, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "124464": { - "commit": "3c323f8546b49aac56ff9fc970b4cdfea461dbdf", - "text": "kubeadm: Used output/v1alpha3 to print structural output for the commands \"kubeadm config images list\" and \"kubeadm token list\".", - "markdown": "Kubeadm: Used output/v1alpha3 to print structural output for the commands \"kubeadm config images list\" and \"kubeadm token list\". ([#124464](https://github.com/kubernetes/kubernetes/pull/124464), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124464", - "pr_number": 124464, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "124465": { - "commit": "44c45484e00b0cdd8e44a5098dab097c1a1b47e2", - "text": "kubeadm: Switched to using the new etcd endpoints introduced in 3.5.11 - /livez (for liveness probe) and /readyz (for readyness and startup probe). With this change it is no longer possible to deploy a custom etcd version older than 3.5.11 with kubeadm 1.31. If so, please upgrade etcd to a supported version.", - "markdown": "Kubeadm: Switched to using the new etcd endpoints introduced in 3.5.11 - /livez (for liveness probe) and /readyz (for readyness and startup probe). With this change it is no longer possible to deploy a custom etcd version older than 3.5.11 with kubeadm 1.31. If so, please upgrade etcd to a supported version. ([#124465](https://github.com/kubernetes/kubernetes/pull/124465), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124465", - "pr_number": 124465, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "124480": { - "commit": "646fbe6d0a3fa1a100d90a429f039324de9c8138", - "text": "'kubeadm: fixed a regression where the KubeletConfiguration is not properly\ndownloaded during \"kubeadm upgrade\" command from the kube-system/kubelet-config\nConfigMap, resulting in the local ''/var/lib/kubelet/config.yaml'' file being\nwritten as a defaulted config.'", - "markdown": "'kubeadm: fixed a regression where the KubeletConfiguration is not properly\n downloaded during \"kubeadm upgrade\" command from the kube-system/kubelet-config\n ConfigMap, resulting in the local ''/var/lib/kubelet/config.yaml'' file being\n written as a defaulted config.' ([#124480](https://github.com/kubernetes/kubernetes/pull/124480), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124480", - "pr_number": 124480, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124496": { - "commit": "17854f0e0a153b06f9d0db096e2cd8ab2fa89c11", - "text": "kubeadm: removed the deprecated `output.kubeadm.k8s.io/v1alpha2` API for structured output. Please use v1alpha3 instead.", - "markdown": "Kubeadm: removed the deprecated `output.kubeadm.k8s.io/v1alpha2` API for structured output. Please use v1alpha3 instead. ([#124496](https://github.com/kubernetes/kubernetes/pull/124496), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124496", - "pr_number": 124496, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "124500": { - "commit": "8240d882ab614d40538c7e441226be33bbdfb021", - "text": "kube-scheduler deprecated all non-csi volumelimit plugins and removed those from defaults plugins. \n- AzureDiskLimits\n- CinderLimits\n- EBSLimits\n- GCEPDLimits\n\nThe NodeVolumeLimits plugin can handle the same functionality as the above plugins since the above volume types are migrated to CSI.\nPlease remove those plugins and replace them with the NodeVolumeLimits plugin if you explicitly use those plugins in the scheduler config.\nThose plugins will be removed in the release 1.32.", - "markdown": "Kube-scheduler deprecated all non-csi volumelimit plugins and removed those from defaults plugins. \n - AzureDiskLimits\n - CinderLimits\n - EBSLimits\n - GCEPDLimits\n \n The NodeVolumeLimits plugin can handle the same functionality as the above plugins since the above volume types are migrated to CSI.\n Please remove those plugins and replace them with the NodeVolumeLimits plugin if you explicitly use those plugins in the scheduler config.\n Those plugins will be removed in the release 1.32. ([#124500](https://github.com/kubernetes/kubernetes/pull/124500), [@carlory](https://github.com/carlory)) [SIG Scheduling and Storage]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124500", - "pr_number": 124500, - "kinds": [ - "api-change", - "deprecation" - ], - "sigs": [ - "scheduling", - "storage" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124503": { - "commit": "bae83009d36fc9729482404dddc3b03ab751f08e", - "text": "kubeadm: Added support during the preflight check \"CreateJob\" of \"kubeadm upgrade\" to check if there are no nodes where a Pod can be scheduled. If there are none, show a warning and skip this preflight check. This can happen in single node clusters where the only node was drained.", - "markdown": "Kubeadm: Added support during the preflight check \"CreateJob\" of \"kubeadm upgrade\" to check if there are no nodes where a Pod can be scheduled. If there are none, show a warning and skip this preflight check. This can happen in single node clusters where the only node was drained. ([#124503](https://github.com/kubernetes/kubernetes/pull/124503), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124503", - "pr_number": 124503, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124505": { - "commit": "3d24b962bef80a1f5b7aaae42e6fc841628ee4ac", - "text": "Removed admission plugin `PersistentVolumeLabel`. Please use https://github.com/kubernetes-sigs/cloud-pv-admission-labeler instead if you need a similar functionality.", - "markdown": "Removed admission plugin `PersistentVolumeLabel`. Please use https://github.com/kubernetes-sigs/cloud-pv-admission-labeler instead if you need a similar functionality. ([#124505](https://github.com/kubernetes/kubernetes/pull/124505), [@jsafrane](https://github.com/jsafrane)) [SIG API Machinery, Auth and Storage]", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124505", - "pr_number": 124505, - "areas": [ - "apiserver", - "code-generation" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "auth", - "storage" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true, - "is_mapped": true - }, - "124509": { - "commit": "6ac60160c5729ade462b041b170ec8ac0f1eb3bc", - "text": "Introduced new functionality to the client-go's **list** verb, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate.\n\nIt is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, client-go will revert to using the normal `LIST` method to obtain data.", - "markdown": "Introduced new functionality to the client-go's **list** verb, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate.\n \n It is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, client-go will revert to using the normal `LIST` method to obtain data. ([#124509](https://github.com/kubernetes/kubernetes/pull/124509), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, Auth, Instrumentation and Testing]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124509", - "pr_number": 124509, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124514": { - "commit": "f281a02d236d1112009c54062b99972ea6e4e731", - "text": "Fixed bug where kubectl get with --sort-by flag does not sort strings alphanumerically.", - "markdown": "Fixed bug where kubectl get with --sort-by flag does not sort strings alphanumerically. ([#124514](https://github.com/kubernetes/kubernetes/pull/124514), [@brianpursley](https://github.com/brianpursley)) [SIG CLI]", - "author": "brianpursley", - "author_url": "https://github.com/brianpursley", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124514", - "pr_number": 124514, - "areas": [ - "kubectl", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "124516": { - "commit": "bf454d7c5926935bbd0b837b938a07990d01ee69", - "text": "Fixed a regression where `kubelet --hostname-override` no longer worked\ncorrectly with an external cloud provider.", - "markdown": "Fixed a regression where `kubelet --hostname-override` no longer worked\n correctly with an external cloud provider. ([#124516](https://github.com/kubernetes/kubernetes/pull/124516), [@danwinship](https://github.com/danwinship)) [SIG Node]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124516", - "pr_number": 124516, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124519": { - "commit": "4d17d30029aaddc2132d65c019e30d1c153bf4d1", - "text": "Removed the last remaining in-tree gcp cloud provider and credential provider.\nPlease use the external cloud provider and credential provider from https://github.com/kubernetes/cloud-provider-gcp\ninstead.", - "markdown": "Removed the last remaining in-tree gcp cloud provider and credential provider.\n Please use the external cloud provider and credential provider from https://github.com/kubernetes/cloud-provider-gcp\n instead. ([#124519](https://github.com/kubernetes/kubernetes/pull/124519), [@dims](https://github.com/dims)) [SIG API Machinery, Apps, Auth, Autoscaling, Cloud Provider, Instrumentation, Network, Node, Scheduling, Storage and Testing]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124519", - "pr_number": 124519, - "areas": [ - "test", - "kubelet", - "apiserver", - "cloudprovider", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "autoscaling", - "cloud-provider", - "instrumentation", - "network", - "node", - "scheduling", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "124530": { - "commit": "e83fca8dd9bd6636d4956836082b250bbe939109", - "text": "Finished initial generic controlplane refactor of kube-apiserver, providing a sample binary building a Kubernetes-like control plane, but without container orchestration resources.", - "markdown": "Finished initial generic controlplane refactor of kube-apiserver, providing a sample binary building a Kubernetes-like control plane, but without container orchestration resources. ([#124530](https://github.com/kubernetes/kubernetes/pull/124530), [@sttts](https://github.com/sttts)) [SIG API Machinery, Apps, Cloud Provider, Network, Node and Testing]", - "author": "sttts", - "author_url": "https://github.com/sttts", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124530", - "pr_number": 124530, - "areas": [ - "test", - "kubelet", - "apiserver", - "cloudprovider", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "cloud-provider", - "network", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "124544": { - "commit": "59ba132f16ef92c9f7278b9466cf9cc7a479226c", - "text": "CephFS volume plugin ( `kubernetes.io/cephfs`) was removed in this release and the `cephfs` volume type became non-functional. Alternative is to use CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment of your application is required to use the new driver if you were using `kubernetes.io/cephfs` volume plugin before upgrading cluster version to 1.31+.", - "markdown": "CephFS volume plugin ( `kubernetes.io/cephfs`) was removed in this release and the `cephfs` volume type became non-functional. Alternative is to use CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment of your application is required to use the new driver if you were using `kubernetes.io/cephfs` volume plugin before upgrading cluster version to 1.31+. ([#124544](https://github.com/kubernetes/kubernetes/pull/124544), [@carlory](https://github.com/carlory)) [SIG Node, Scalability, Storage and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124544", - "pr_number": 124544, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup", - "api-change", - "deprecation" - ], - "sigs": [ - "node", - "scalability", - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true, - "is_mapped": true - }, - "124546": { - "commit": "df074ed002865166ee051a8a66ef136935afc485", - "text": "CephRBD volume plugin ( `kubernetes.io/rbd`) was removed in this release. And its csi migration support was also removed, so the `rbd` volume type became non-functional. Alternative is to use RBD CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment of your application is required to use the new driver if you were using `kubernetes.io/rbd` volume plugin before upgrading cluster version to 1.31+.", - "markdown": "CephRBD volume plugin ( `kubernetes.io/rbd`) was removed in this release. And its csi migration support was also removed, so the `rbd` volume type became non-functional. Alternative is to use RBD CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment of your application is required to use the new driver if you were using `kubernetes.io/rbd` volume plugin before upgrading cluster version to 1.31+. ([#124546](https://github.com/kubernetes/kubernetes/pull/124546), [@carlory](https://github.com/carlory)) [SIG Node, Scalability, Scheduling, Storage and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124546", - "pr_number": 124546, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup", - "api-change", - "deprecation" - ], - "sigs": [ - "node", - "scalability", - "scheduling", - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true, - "is_mapped": true - }, - "124553": { - "commit": "8dbeaa5786bab14772873cc90af70ccb9b06b4c1", - "text": "Fixed a 1.30.0 regression in OpenAPI descriptions of the `imagePullSecrets` and \n`hostAliases` fields to mark the fields used as keys in those lists as either defaulted\nor required.", - "markdown": "Fixed a 1.30.0 regression in OpenAPI descriptions of the `imagePullSecrets` and \n `hostAliases` fields to mark the fields used as keys in those lists as either defaulted\n or required. ([#124553](https://github.com/kubernetes/kubernetes/pull/124553), [@pmalek](https://github.com/pmalek)) [SIG API Machinery]", - "author": "pmalek", - "author_url": "https://github.com/pmalek", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124553", - "pr_number": 124553, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124557": { - "commit": "ae8474adcdb5957ebaef82de55fbabdf2433356a", - "text": "Added metrics for the nftables kube-proxy mode rather than it reporting\nmetrics with \"iptables\" in their names.", - "markdown": "Added metrics for the nftables kube-proxy mode rather than it reporting\n metrics with \"iptables\" in their names. ([#124557](https://github.com/kubernetes/kubernetes/pull/124557), [@danwinship](https://github.com/danwinship)) [SIG Network and Windows]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124557", - "pr_number": 124557, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124568": { - "commit": "130414950fbb0881792aede383f53a9d6d9d721d", - "text": "Fixed a bug in the API server where empty collections of ValidatingAdmissionPolicies did not have an `items` field.", - "markdown": "Fixed a bug in the API server where empty collections of ValidatingAdmissionPolicies did not have an `items` field. ([#124568](https://github.com/kubernetes/kubernetes/pull/124568), [@xyz-li](https://github.com/xyz-li)) [SIG API Machinery]", - "author": "xyz-li", - "author_url": "https://github.com/xyz-li", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124568", - "pr_number": 124568, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "124574": { - "commit": "e702c2e0b6aa746d07afed1dcb4bcdc352267d53", - "text": "Added the ability to the kubelet server to dynamically load certificate files.", - "markdown": "Added the ability to the kubelet server to dynamically load certificate files. ([#124574](https://github.com/kubernetes/kubernetes/pull/124574), [@zhangweikop](https://github.com/zhangweikop)) [SIG Auth and Node]", - "author": "zhangweikop", - "author_url": "https://github.com/zhangweikop", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124574", - "pr_number": 124574, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124588": { - "commit": "7a6931b31cf04d2a91ce8c0af09ad0f474927436", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#124588](https://github.com/kubernetes/kubernetes/pull/124588), [@jiuker](https://github.com/jiuker)) [SIG API Machinery]", - "author": "jiuker", - "author_url": "https://github.com/jiuker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124588", - "pr_number": 124588, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "124589": { - "commit": "fdefcb43d105ab2e1e12019da9f0fcd1625f0447", - "text": "\"Fixed the ResourceClaim controller forgetting to wait for `podSchedulingSynced` \nand `templatesSynced`.\"", - "markdown": "\"Fixed the ResourceClaim controller forgetting to wait for `podSchedulingSynced` \n and `templatesSynced`.\" ([#124589](https://github.com/kubernetes/kubernetes/pull/124589), [@carlory](https://github.com/carlory)) [SIG Apps and Node]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124589", - "pr_number": 124589, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "124592": { - "commit": "0590bb1ac495ae8af2a573f879408e48800da2c5", - "text": "Added completion for `kubectl set image`.", - "markdown": "Added completion for `kubectl set image`. ([#124592](https://github.com/kubernetes/kubernetes/pull/124592), [@ah8ad3](https://github.com/ah8ad3)) [SIG CLI]", - "author": "ah8ad3", - "author_url": "https://github.com/ah8ad3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124592", - "pr_number": 124592, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "124595": { - "commit": "8c478a06d897638ba0f48a01ae83734e3583a9c0", - "text": "Dynamic Resource Allocation (DRA): fixed some small, unlikely race condition during pod scheduling.", - "markdown": "Dynamic Resource Allocation (DRA): fixed some small, unlikely race condition during pod scheduling. ([#124595](https://github.com/kubernetes/kubernetes/pull/124595), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124595", - "pr_number": 124595, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "124598": { - "commit": "44bd04c0cbddde69aaeb7a90d3bd3de4e417f27f", - "text": "\"`kubectl describe service`\" and \"`kubectl describe ingress`\" will now use endpointslices instead of endpoints.\n", - "markdown": "\"`kubectl describe service`\" and \"`kubectl describe ingress`\" will now use endpointslices instead of endpoints.\n ([#124598](https://github.com/kubernetes/kubernetes/pull/124598), [@aroradaman](https://github.com/aroradaman)) [SIG CLI and Network]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124598", - "pr_number": 124598, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli", - "network" - ], - "duplicate": true, - "is_mapped": true - }, - "124612": { - "commit": "d8ed461ba19fce6fc64991a8e0e7e47167596fba", - "text": "Added check for etcd version to warn about deprecated etcd versions if `ConsistentListFromCache` is enabled.", - "markdown": "Added check for etcd version to warn about deprecated etcd versions if `ConsistentListFromCache` is enabled. ([#124612](https://github.com/kubernetes/kubernetes/pull/124612), [@ah8ad3](https://github.com/ah8ad3)) [SIG API Machinery]", - "author": "ah8ad3", - "author_url": "https://github.com/ah8ad3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124612", - "pr_number": 124612, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "124614": { - "commit": "b10a141fd2c291feea78c4e36483933b25368224", - "text": "client-go/reflector: warns when the bookmark event for initial events hasn't been received", - "markdown": "Client-go/reflector: warns when the bookmark event for initial events hasn't been received ([#124614](https://github.com/kubernetes/kubernetes/pull/124614), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124614", - "pr_number": 124614, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "124618": { - "commit": "db82fd1604ebf327ab74cde0a7158a8d95d46202", - "text": "Improved scheduling latency when there are many gated pods and events that trigger requeueing from the unschedulable pool.", - "markdown": "Improved scheduling latency when there are many gated pods and events that trigger requeueing from the unschedulable pool. ([#124618](https://github.com/kubernetes/kubernetes/pull/124618), [@gabesaba](https://github.com/gabesaba)) [SIG Scheduling and Testing]", - "author": "gabesaba", - "author_url": "https://github.com/gabesaba", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124618", - "pr_number": 124618, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "124634": { - "commit": "06b813fd29bcf5f69184259b3b07af612b70077b", - "text": "Moved remote CRI implementation from kubelet to `k8s.io/cri-client` repository.", - "markdown": "Moved remote CRI implementation from kubelet to `k8s.io/cri-client` repository. ([#124634](https://github.com/kubernetes/kubernetes/pull/124634), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node, Release and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124634", - "pr_number": 124634, - "areas": [ - "test", - "kubelet", - "apiserver", - "release-eng", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "release", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "124635": { - "commit": "f4ea903712482c4a0021cc9c8d742673a213833e", - "text": "client-go/tools/record.Broadcaster: Fixed automatic shutdown on WithContext cancellation.", - "markdown": "Client-go/tools/record.Broadcaster: Fixed automatic shutdown on WithContext cancellation. ([#124635](https://github.com/kubernetes/kubernetes/pull/124635), [@pohly](https://github.com/pohly)) [SIG API Machinery]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124635", - "pr_number": 124635, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "124653": { - "commit": "b36ddbb3725f372b6dabf208d6ec671b01aee432", - "text": "Fixed the format of the error indicating that a user does not have permission on the object referenced by paramRef in ValidatingAdmissionPolicyBinding.", - "markdown": "Fixed the format of the error indicating that a user does not have permission on the object referenced by paramRef in ValidatingAdmissionPolicyBinding. ([#124653](https://github.com/kubernetes/kubernetes/pull/124653), [@m1kola](https://github.com/m1kola)) [SIG API Machinery]", - "author": "m1kola", - "author_url": "https://github.com/m1kola", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124653", - "pr_number": 124653, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "124665": { - "commit": "201e6262c4158db23b8887a9c31e326d34d989d4", - "text": "`kubeadm`: Improved the `IsPrivilegedUser` preflight check to not fail on certain Windows setups.", - "markdown": "`kubeadm`: Improved the `IsPrivilegedUser` preflight check to not fail on certain Windows setups. ([#124665](https://github.com/kubernetes/kubernetes/pull/124665), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124665", - "pr_number": 124665, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "124667": { - "commit": "44c1a0eec2a23e1d2e69dda061ffe6a8667b8aa8", - "text": "Improved memory usage of kube-apiserver by dropping`.metadata.managedFields` field that self-requested informers of kube-apiserver didn't need.", - "markdown": "Improved memory usage of kube-apiserver by dropping`.metadata.managedFields` field that self-requested informers of kube-apiserver didn't need. ([#124667](https://github.com/kubernetes/kubernetes/pull/124667), [@linxiulei](https://github.com/linxiulei)) [SIG API Machinery]", - "author": "linxiulei", - "author_url": "https://github.com/linxiulei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124667", - "pr_number": 124667, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "124673": { - "commit": "54687f317b0aa9980a32fa6287ee6acf8343ca54", - "text": "Promoted `generateName` retries to beta, and made the `NameGenerationRetries` feature gate\nenabled by default.\nYou can read https://kep.k8s.io/4420 for more details.", - "markdown": "Promoted `generateName` retries to beta, and made the `NameGenerationRetries` feature gate\n enabled by default.\n You can read https://kep.k8s.io/4420 for more details. ([#124673](https://github.com/kubernetes/kubernetes/pull/124673), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124673", - "pr_number": 124673, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "124675": { - "commit": "119f9b3e7c7e773af3afa7479b64d4b5a6b1fed8", - "text": "Added the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` to enforce the strict cost calculation for CEL extended libraries. It is strongly recommended to turn on the feature gates as early as possible.", - "markdown": "Added the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` to enforce the strict cost calculation for CEL extended libraries. It is strongly recommended to turn on the feature gates as early as possible. ([#124675](https://github.com/kubernetes/kubernetes/pull/124675), [@cici37](https://github.com/cici37)) [SIG API Machinery, Auth, Node and Testing]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124675", - "pr_number": 124675, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug", - "api-change", - "regression" - ], - "sigs": [ - "api-machinery", - "auth", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124681": { - "commit": "e6547701f1b2f76e79e9a3ce904c0187fad705d5", - "text": "Added Custom resource field selectors in beta and enabled them by default. Check out https://github.com/kubernetes/enhancements/issues/4358 for more details.", - "markdown": "Added Custom resource field selectors in beta and enabled them by default. Check out https://github.com/kubernetes/enhancements/issues/4358 for more details. ([#124681](https://github.com/kubernetes/kubernetes/pull/124681), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth and Testing]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124681", - "pr_number": 124681, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124683": { - "commit": "5e1a1db960660194a00f4ae7d6c9195b3c1715a6", - "text": "Added ports autocompletion for `kubectl port-forward` command.", - "markdown": "Added ports autocompletion for `kubectl port-forward` command. ([#124683](https://github.com/kubernetes/kubernetes/pull/124683), [@TessaIO](https://github.com/TessaIO)) [SIG CLI]", - "author": "TessaIO", - "author_url": "https://github.com/TessaIO", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124683", - "pr_number": 124683, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "124685": { - "commit": "3833d37b28095feabf3456286c4f315b062bf333", - "text": "kubeadm: Switched kubeadm to start using the CRI client library instead of shelling out of the `crictl` binary\nfor actions against a CRI endpoint. The kubeadm deb/rpm packages will continue to install the `cri-tools`\npackage for one more release, but in you must adapt your scripts to install `crictl` manually from\nhttps://github.com/kubernetes-sigs/cri-tools/releases or a different location.\n\nThe `kubeadm` package will stop depending on the `cri-tools` package in Kubernetes 1.32, which means that\ninstalling `kubeadm` will no longer automatically ensure installation of `crictl`.", - "markdown": "Kubeadm: Switched kubeadm to start using the CRI client library instead of shelling out of the `crictl` binary\n for actions against a CRI endpoint. The kubeadm deb/rpm packages will continue to install the `cri-tools`\n package for one more release, but in you must adapt your scripts to install `crictl` manually from\n https://github.com/kubernetes-sigs/cri-tools/releases or a different location.\n \n The `kubeadm` package will stop depending on the `cri-tools` package in Kubernetes 1.32, which means that\n installing `kubeadm` will no longer automatically ensure installation of `crictl`. ([#124685](https://github.com/kubernetes/kubernetes/pull/124685), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cluster Lifecycle]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124685", - "pr_number": 124685, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "124688": { - "commit": "529896474f2fad03156b78e097717dab1649a934", - "text": "kubeadm: Ensured that during \"upgrade\" , if the \"etcd.yaml\" static pod did not need upgrade, still consider rotating the etcd certificates and restarting the etcd static pod if the \"kube-apiserver.yaml\" manifest was to be upgraded and if certificate renewal was not disabled.", - "markdown": "Kubeadm: Ensured that during \"upgrade\" , if the \"etcd.yaml\" static pod did not need upgrade, still consider rotating the etcd certificates and restarting the etcd static pod if the \"kube-apiserver.yaml\" manifest was to be upgraded and if certificate renewal was not disabled. ([#124688](https://github.com/kubernetes/kubernetes/pull/124688), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124688", - "pr_number": 124688, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "124714": { - "commit": "e798b9c269627a10291f36a88b4fa13f034ab57f", - "text": "Fixed throughput when scheduling DaemonSet pods to reach 300 pods/s, if the configured QPS allows it.", - "markdown": "Fixed throughput when scheduling DaemonSet pods to reach 300 pods/s, if the configured QPS allows it. ([#124714](https://github.com/kubernetes/kubernetes/pull/124714), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124714", - "pr_number": 124714, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124715": { - "commit": "78bc18dcb0b554d75bdcf61fb7abecffd5384de2", - "text": "kubeadm: Removed the deprecated `UpgradeAddonsBeforeControlPlane` feature gate; Ensured that the upgrade of the CoreDNS and kube-proxy addons would not be triggered until all the control plane instances were upgraded.", - "markdown": "Kubeadm: Removed the deprecated `UpgradeAddonsBeforeControlPlane` feature gate; Ensured that the upgrade of the CoreDNS and kube-proxy addons would not be triggered until all the control plane instances were upgraded. ([#124715](https://github.com/kubernetes/kubernetes/pull/124715), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124715", - "pr_number": 124715, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "124732": { - "commit": "9f39314eb9b1f0127500cf7f0983fb00f90d49d1", - "text": "Added flag to `kubectl logs` called `--all-pods` to get all pods from a object that uses a pod selector.", - "markdown": "Added flag to `kubectl logs` called `--all-pods` to get all pods from a object that uses a pod selector. ([#124732](https://github.com/kubernetes/kubernetes/pull/124732), [@cmwylie19](https://github.com/cmwylie19)) [SIG CLI and Testing]", - "author": "cmwylie19", - "author_url": "https://github.com/cmwylie19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124732", - "pr_number": 124732, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124735": { - "commit": "9d87fa215d9e8020abdc17132d1252536cd752d2", - "text": "Scheduler changes its logic of calculating `evaluatedNodes` from \"contains the number of nodes that filtered out by PreFilterResult and Filter plugins\" to \"the number of nodes filtered out by Filter plugins only\".", - "markdown": "Scheduler changes its logic of calculating `evaluatedNodes` from \"contains the number of nodes that filtered out by PreFilterResult and Filter plugins\" to \"the number of nodes filtered out by Filter plugins only\". ([#124735](https://github.com/kubernetes/kubernetes/pull/124735), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling]", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124735", - "pr_number": 124735, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "124738": { - "commit": "132c49c40b5ef7d3b9ca822774b0c56d12e2d14f", - "text": "Removed GA ServiceNodePortStaticSubrange feature gate.", - "markdown": "Removed GA ServiceNodePortStaticSubrange feature gate. ([#124738](https://github.com/kubernetes/kubernetes/pull/124738), [@xuzhenglun](https://github.com/xuzhenglun)) [SIG Network]", - "author": "xuzhenglun", - "author_url": "https://github.com/xuzhenglun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124738", - "pr_number": 124738, - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "124767": { - "commit": "57b406a18afc54c84725488e0ca3d4b4cabd61db", - "text": "Removed k8s.io/legacy-cloud-providers from staging.", - "markdown": "Removed k8s.io/legacy-cloud-providers from staging. ([#124767](https://github.com/kubernetes/kubernetes/pull/124767), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Release]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124767", - "pr_number": 124767, - "areas": [ - "cloudprovider", - "release-eng", - "dependency" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "release" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124779": { - "commit": "8339711e1f57936b9bc7283d08bb7b536f10562d", - "text": "Updated the CEL default compatibility environment version to 1.30, ensuring that extended libraries added before version 1.30 are available for use.", - "markdown": "Updated the CEL default compatibility environment version to 1.30, ensuring that extended libraries added before version 1.30 are available for use. ([#124779](https://github.com/kubernetes/kubernetes/pull/124779), [@cici37](https://github.com/cici37)) [SIG API Machinery]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124779", - "pr_number": 124779, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "124793": { - "commit": "2a003648b026abcb6371f7da00740561c393a9a5", - "text": "Fixed the comment for the Job's managedBy field.", - "markdown": "Fixed the comment for the Job's managedBy field. ([#124793](https://github.com/kubernetes/kubernetes/pull/124793), [@mimowo](https://github.com/mimowo)) [SIG API Machinery and Apps]", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124793", - "pr_number": 124793, - "areas": [ - "code-generation" - ], - "kinds": [ - "documentation", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124798": { - "commit": "59da2738ee560ee43f0ab87daec5f85a780eac1b", - "text": "Do not remove the \"batch.kubernetes.io/job-tracking\" finalizer from a Pod, in a corner\ncase scenario, when the Pod is controlled by an API object which is not a batch Job\n(e.g. when the Pod is controlled by a custom CRD).", - "markdown": "Do not remove the \"batch.kubernetes.io/job-tracking\" finalizer from a Pod, in a corner\n case scenario, when the Pod is controlled by an API object which is not a batch Job\n (e.g. when the Pod is controlled by a custom CRD). ([#124798](https://github.com/kubernetes/kubernetes/pull/124798), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124798", - "pr_number": 124798, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "124815": { - "commit": "2171bcb78966539a0c66b5ae8d9a96f9277a7e82", - "text": "Removed the following feature gates:\n- `InTreePluginAWSUnregister`\n- `InTreePluginAzureDiskUnregister`\n- `InTreePluginAzureFileUnregister`\n- `InTreePluginGCEUnregister`\n- `InTreePluginOpenStackUnregister`\n- `InTreePluginvSphereUnregister`", - "markdown": "Removed the following feature gates:\n - `InTreePluginAWSUnregister`\n - `InTreePluginAzureDiskUnregister`\n - `InTreePluginAzureFileUnregister`\n - `InTreePluginGCEUnregister`\n - `InTreePluginOpenStackUnregister`\n - `InTreePluginvSphereUnregister` ([#124815](https://github.com/kubernetes/kubernetes/pull/124815), [@carlory](https://github.com/carlory)) [SIG Storage]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124815", - "pr_number": 124815, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ], - "action_required": true - }, - "124819": { - "commit": "13d9d7c689b86939191c24f4096286c68549c3b7", - "text": "Added a warning when creating or updating a PersistentVolume (PV) with the deprecated annotation `volume.beta.kubernetes.io/mount-options`.", - "markdown": "Added a warning when creating or updating a PersistentVolume (PV) with the deprecated annotation `volume.beta.kubernetes.io/mount-options`. ([#124819](https://github.com/kubernetes/kubernetes/pull/124819), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124819", - "pr_number": 124819, - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "storage" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124820": { - "commit": "22f3ce5e5ebfb62a6b86ab95bf0ef05588b8d297", - "text": "'kubeadm: enhanced the \"patches\" functionality to be able to patch coredns\ndeployment. The new patch target is called \"corednsdeployment\" (e.g. patch file\n\"corednsdeployment+json.json\"). This makes it possible to apply custom patches\nto coredns deployment during \"init\" and \"upgrade\".'", - "markdown": "'kubeadm: enhanced the \"patches\" functionality to be able to patch coredns\n deployment. The new patch target is called \"corednsdeployment\" (e.g. patch file\n \"corednsdeployment+json.json\"). This makes it possible to apply custom patches\n to coredns deployment during \"init\" and \"upgrade\".' ([#124820](https://github.com/kubernetes/kubernetes/pull/124820), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124820", - "pr_number": 124820, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "124828": { - "commit": "12439834f402f6960cc4f9e161bd682aaa130db4", - "text": "Built Kubernetes with Go 1.22.3.", - "markdown": "Built Kubernetes with Go 1.22.3. ([#124828](https://github.com/kubernetes/kubernetes/pull/124828), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124828", - "pr_number": 124828, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124842": { - "commit": "aeed1d0e1a61c7e0824fc65da5483931fc2976c1", - "text": "Promoted HonorPVReclaimPolicy to beta and enable the feature-gate by default", - "markdown": "Promoted HonorPVReclaimPolicy to beta and enable the feature-gate by default ([#124842](https://github.com/kubernetes/kubernetes/pull/124842), [@carlory](https://github.com/carlory)) [SIG Apps, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2644", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124842", - "pr_number": 124842, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "storage", - "testing" - ], - "feature": true, - "duplicate": true - }, - "124864": { - "commit": "0df6f451aea35483746c415083268a282e96f7f3", - "text": "Reverted remove legacycloudproviders from staging.", - "markdown": "Reverted remove legacycloudproviders from staging. ([#124864](https://github.com/kubernetes/kubernetes/pull/124864), [@carlory](https://github.com/carlory)) [SIG Release]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124864", - "pr_number": 124864, - "areas": [ - "release-eng", - "dependency" - ], - "kinds": [ - "bug", - "failing-test", - "regression" - ], - "sigs": [ - "release" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124865": { - "commit": "cade1dddd81eba338df85de7b5d17324a87243b5", - "text": "I0514 15:05:27.290224 72478 networking.go:356] Dump iptables and connntrack flows for node :\n IPTables Dump: \n -A KUBE-EXT-U7I7RVERQEPDX3Y6 -m comment --comment \"masquerade traffic for nettest-7732/node-port-service:http external destinations\" -j KUBE-MARK-MASQ\n -A KUBE-NODEPORTS -p tcp -m comment --comment \"nettest-7732/node-port-service:http\" -m tcp --dport 31800 -j KUBE-EXT-U7I7RVERQEPDX3Y6\n -A KUBE-SEP-VFVEZ5MLNGMSD7ZR -s 10.244.2.11/32 -m comment --comment \"nettest-7732/node-port-service:http\" -j KUBE-MARK-MASQ\n -A KUBE-SEP-VFVEZ5MLNGMSD7ZR -p tcp -m comment --comment \"nettest-7732/node-port-service:http\" -m tcp -j DNAT --to-destination 10.244.2.11:8083\n -A KUBE-SEP-Z3A4G5665FZF4KZI -s 10.244.1.14/32 -m comment --comment \"nettest-7732/node-port-service:http\" -j KUBE-MARK-MASQ\n -A KUBE-SEP-Z3A4G5665FZF4KZI -p tcp -m comment --comment \"nettest-7732/node-port-service:http\" -m tcp -j DNAT --to-destination 10.244.1.14:8083\n -A KUBE-SERVICES -d 10.96.63.98/32 -p tcp -m comment --comment \"nettest-7732/node-port-service:http cluster IP\" -m tcp --dport 80 -j KUBE-SVC-U7I7RVERQEPDX3Y6\n -A KUBE-SVC-U7I7RVERQEPDX3Y6 ! -s 10.244.0.0/16 -d 10.96.63.98/32 -p tcp -m comment --comment \"nettest-7732/node-port-service:http cluster IP\" -m tcp --dport 80 -j KUBE-MARK-MASQ\n -A KUBE-SVC-U7I7RVERQEPDX3Y6 -m comment --comment \"nettest-7732/node-port-service:http -\u003e 10.244.1.14:8083\" -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-Z3A4G5665FZF4KZI\n -A KUBE-SVC-U7I7RVERQEPDX3Y6 -m comment --comment \"nettest-7732/node-port-service:http -\u003e 10.244.2.11:8083\" -j KUBE-SEP-VFVEZ5MLNGMSD7ZR\n Conntrack flows: \n tcp 6 100 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=38048 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=38048 [ASSURED] mark=0 use=1\n tcp 6 13 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=50128 dport=80 src=10.244.1.12 dst=10.244.1.13 sport=8083 dport=50128 [ASSURED] mark=0 use=1\n tcp 6 90 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=53144 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=53144 [ASSURED] mark=0 use=1\n tcp 6 97 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36366 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=36366 [ASSURED] mark=0 use=1\n tcp 6 80 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=57256 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=57256 [ASSURED] mark=0 use=1\n tcp 6 1 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=51984 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=51984 [ASSURED] mark=0 use=1\n tcp 6 107 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=39206 dport=80 src=10.244.1.14 dst=10.244.1.15 sport=8083 dport=39206 [ASSURED] mark=0 use=1\n tcp 6 110 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=42776 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=42776 [ASSURED] mark=0 use=1\n tcp 6 115 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=39222 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=39222 [ASSURED] mark=0 use=1\n tcp 6 1 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=45346 dport=80 src=10.244.3.12 dst=10.244.1.13 sport=8083 dport=45346 [ASSURED] mark=0 use=1\n tcp 6 119 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=56162 dport=80 src=10.244.1.14 dst=10.244.1.15 sport=8083 dport=56162 [ASSURED] mark=0 use=1\n tcp 6 90 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=53146 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=53146 [ASSURED] mark=0 use=1\n tcp 6 91 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38562 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=38562 [ASSURED] mark=0 use=1\n tcp 6 11 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=50116 dport=80 src=10.244.2.10 dst=10.244.1.13 sport=8083 dport=50116 [ASSURED] mark=0 use=1\n tcp 6 105 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36408 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=36408 [ASSURED] mark=0 use=1\n tcp 6 3 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=45362 dport=80 src=10.244.2.10 dst=10.244.1.13 sport=8083 dport=45362 [ASSURED] mark=0 use=2\n tcp 6 88 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38558 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38558 [ASSURED] mark=0 use=1\n tcp 6 99 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36376 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=36376 [ASSURED] mark=0 use=1\n tcp 6 117 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=56160 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=56160 [ASSURED] mark=0 use=1\n tcp 6 103 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36400 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=36400 [ASSURED] mark=0 use=1\n tcp 6 100 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=38046 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=38046 [ASSURED] mark=0 use=1\n tcp 6 93 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38574 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38574 [ASSURED] mark=0 use=1\n tcp 6 101 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36384 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=36384 [ASSURED] mark=0 use=1\n tcp 6 11 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=46330 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=46330 [ASSURED] mark=0 use=1\n tcp 6 80 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=57264 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=57264 [ASSURED] mark=0 use=1\n tcp 6 95 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38578 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38578 [ASSURED] mark=0 use=1\n tcp 6 1 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=51976 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=51976 [ASSURED] mark=0 use=1\n tcp 6 86 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38552 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38552 [ASSURED] mark=0 use=2\n tcp 6 11 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=46344 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=46344 [ASSURED] mark=0 use=1\n tcp 6 110 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=42782 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=42782 [ASSURED] mark=0 use=1\n I0514 15:05:27.290497 72478 helper.go:121] Waiting up to 7m0s for all (but 0) nodes to be ready\n STEP: Destroying namespace \"nettest-7732\" for this suite. @ 05/14/24 15:05:27.293", - "markdown": "I0514 15:05:27.290224 72478 networking.go:356] Dump iptables and connntrack flows for node :\n IPTables Dump: \n -A KUBE-EXT-U7I7RVERQEPDX3Y6 -m comment --comment \"masquerade traffic for nettest-7732/node-port-service:http external destinations\" -j KUBE-MARK-MASQ\n -A KUBE-NODEPORTS -p tcp -m comment --comment \"nettest-7732/node-port-service:http\" -m tcp --dport 31800 -j KUBE-EXT-U7I7RVERQEPDX3Y6\n -A KUBE-SEP-VFVEZ5MLNGMSD7ZR -s 10.244.2.11/32 -m comment --comment \"nettest-7732/node-port-service:http\" -j KUBE-MARK-MASQ\n -A KUBE-SEP-VFVEZ5MLNGMSD7ZR -p tcp -m comment --comment \"nettest-7732/node-port-service:http\" -m tcp -j DNAT --to-destination 10.244.2.11:8083\n -A KUBE-SEP-Z3A4G5665FZF4KZI -s 10.244.1.14/32 -m comment --comment \"nettest-7732/node-port-service:http\" -j KUBE-MARK-MASQ\n -A KUBE-SEP-Z3A4G5665FZF4KZI -p tcp -m comment --comment \"nettest-7732/node-port-service:http\" -m tcp -j DNAT --to-destination 10.244.1.14:8083\n -A KUBE-SERVICES -d 10.96.63.98/32 -p tcp -m comment --comment \"nettest-7732/node-port-service:http cluster IP\" -m tcp --dport 80 -j KUBE-SVC-U7I7RVERQEPDX3Y6\n -A KUBE-SVC-U7I7RVERQEPDX3Y6 ! -s 10.244.0.0/16 -d 10.96.63.98/32 -p tcp -m comment --comment \"nettest-7732/node-port-service:http cluster IP\" -m tcp --dport 80 -j KUBE-MARK-MASQ\n -A KUBE-SVC-U7I7RVERQEPDX3Y6 -m comment --comment \"nettest-7732/node-port-service:http -\u003e 10.244.1.14:8083\" -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-Z3A4G5665FZF4KZI\n -A KUBE-SVC-U7I7RVERQEPDX3Y6 -m comment --comment \"nettest-7732/node-port-service:http -\u003e 10.244.2.11:8083\" -j KUBE-SEP-VFVEZ5MLNGMSD7ZR\n Conntrack flows: \n tcp 6 100 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=38048 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=38048 [ASSURED] mark=0 use=1\n tcp 6 13 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=50128 dport=80 src=10.244.1.12 dst=10.244.1.13 sport=8083 dport=50128 [ASSURED] mark=0 use=1\n tcp 6 90 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=53144 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=53144 [ASSURED] mark=0 use=1\n tcp 6 97 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36366 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=36366 [ASSURED] mark=0 use=1\n tcp 6 80 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=57256 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=57256 [ASSURED] mark=0 use=1\n tcp 6 1 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=51984 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=51984 [ASSURED] mark=0 use=1\n tcp 6 107 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=39206 dport=80 src=10.244.1.14 dst=10.244.1.15 sport=8083 dport=39206 [ASSURED] mark=0 use=1\n tcp 6 110 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=42776 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=42776 [ASSURED] mark=0 use=1\n tcp 6 115 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=39222 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=39222 [ASSURED] mark=0 use=1\n tcp 6 1 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=45346 dport=80 src=10.244.3.12 dst=10.244.1.13 sport=8083 dport=45346 [ASSURED] mark=0 use=1\n tcp 6 119 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=56162 dport=80 src=10.244.1.14 dst=10.244.1.15 sport=8083 dport=56162 [ASSURED] mark=0 use=1\n tcp 6 90 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=53146 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=53146 [ASSURED] mark=0 use=1\n tcp 6 91 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38562 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=38562 [ASSURED] mark=0 use=1\n tcp 6 11 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=50116 dport=80 src=10.244.2.10 dst=10.244.1.13 sport=8083 dport=50116 [ASSURED] mark=0 use=1\n tcp 6 105 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36408 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=36408 [ASSURED] mark=0 use=1\n tcp 6 3 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=45362 dport=80 src=10.244.2.10 dst=10.244.1.13 sport=8083 dport=45362 [ASSURED] mark=0 use=2\n tcp 6 88 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38558 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38558 [ASSURED] mark=0 use=1\n tcp 6 99 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36376 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=36376 [ASSURED] mark=0 use=1\n tcp 6 117 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=56160 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=56160 [ASSURED] mark=0 use=1\n tcp 6 103 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36400 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=36400 [ASSURED] mark=0 use=1\n tcp 6 100 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=38046 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=38046 [ASSURED] mark=0 use=1\n tcp 6 93 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38574 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38574 [ASSURED] mark=0 use=1\n tcp 6 101 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36384 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=36384 [ASSURED] mark=0 use=1\n tcp 6 11 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=46330 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=46330 [ASSURED] mark=0 use=1\n tcp 6 80 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=57264 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=57264 [ASSURED] mark=0 use=1\n tcp 6 95 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38578 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38578 [ASSURED] mark=0 use=1\n tcp 6 1 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=51976 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=51976 [ASSURED] mark=0 use=1\n tcp 6 86 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38552 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38552 [ASSURED] mark=0 use=2\n tcp 6 11 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=46344 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=46344 [ASSURED] mark=0 use=1\n tcp 6 110 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=42782 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=42782 [ASSURED] mark=0 use=1\n I0514 15:05:27.290497 72478 helper.go:121] Waiting up to 7m0s for all (but 0) nodes to be ready\n STEP: Destroying namespace \"nettest-7732\" for this suite. @ 05/14/24 15:05:27.293 ([#124865](https://github.com/kubernetes/kubernetes/pull/124865), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Testing]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124865", - "pr_number": 124865, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "flake" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "124883": { - "commit": "466b10fcabd92cf1c1f250522c6e2c5d1045747c", - "text": "Dropped the additional rule requirement (cronjobs/finalizers) for roles\nusing kubectl create cronjobs to ensure backward compatibility.", - "markdown": "Dropped the additional rule requirement (cronjobs/finalizers) for roles\n using kubectl create cronjobs to ensure backward compatibility. ([#124883](https://github.com/kubernetes/kubernetes/pull/124883), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124883", - "pr_number": 124883, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "124884": { - "commit": "d7194eb3700cf4f5f075e06ba53811924efb9509", - "text": "Added a feature to report an event about a Pod if kubelet observes a failed attach operation, even if the kubelet is running with `--enable-controller-attach-detach=false`.", - "markdown": "Added a feature to report an event about a Pod if kubelet observes a failed attach operation, even if the kubelet is running with `--enable-controller-attach-detach=false`. ([#124884](https://github.com/kubernetes/kubernetes/pull/124884), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124884", - "pr_number": 124884, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true, - "is_mapped": true - }, - "124886": { - "commit": "1772e3fb5dc76a9a35438530d525ade4fe0d9f3e", - "text": "Removed legacy cloud provider integration code (undoing a previous reverted commit).", - "markdown": "Removed legacy cloud provider integration code (undoing a previous reverted commit). ([#124886](https://github.com/kubernetes/kubernetes/pull/124886), [@carlory](https://github.com/carlory)) [SIG Cloud Provider and Release]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124886", - "pr_number": 124886, - "areas": [ - "cloudprovider", - "release-eng", - "dependency" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cloud-provider", - "release" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124906": { - "commit": "0aa01be4246cef38641544b2bc2dc8bc068405f0", - "text": "kube-apiserver: fixed a 1.28 regression printing pods with invalid initContainer status.", - "markdown": "Kube-apiserver: fixed a 1.28 regression printing pods with invalid initContainer status. ([#124906](https://github.com/kubernetes/kubernetes/pull/124906), [@liggitt](https://github.com/liggitt)) [SIG Node]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124906", - "pr_number": 124906, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "124912": { - "commit": "765e7ef0d2121602bcccfaa22a039676444b5305", - "text": "kube-apiserver: the `--encryption-provider-config` file is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with config files that are malformed, mis-indented, or have typos in field names, and getting unexpected behavior. When `--encryption-provider-config-automatic-reload` is used, new encryption config files that contain typos after the kube-apiserver is running are treated as invalid and the last valid config is used.", - "markdown": "Kube-apiserver: the `--encryption-provider-config` file is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with config files that are malformed, mis-indented, or have typos in field names, and getting unexpected behavior. When `--encryption-provider-config-automatic-reload` is used, new encryption config files that contain typos after the kube-apiserver is running are treated as invalid and the last valid config is used. ([#124912](https://github.com/kubernetes/kubernetes/pull/124912), [@enj](https://github.com/enj)) [SIG API Machinery and Auth]", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124912", - "pr_number": 124912, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124917": { - "commit": "522e2e50667f25b759a10183eec1bb7d4683ec27", - "text": "When the feature gate AnonymousAuthConfigurableEndpoints is enabled users can update the AuthenticationConfig file with endpoints for with anonymous requests are allowed.", - "markdown": "When the feature gate AnonymousAuthConfigurableEndpoints is enabled users can update the AuthenticationConfig file with endpoints for with anonymous requests are allowed. ([#124917](https://github.com/kubernetes/kubernetes/pull/124917), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG API Machinery, Auth, Cloud Provider, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4633", - "type": "KEP" - } - ], - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124917", - "pr_number": 124917, - "areas": [ - "test", - "kubelet", - "apiserver", - "cloudprovider" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124926": { - "commit": "027f346f606627fce1edfd4f067971b438595be5", - "text": "Users can traverse all the pods that are in the scheduler and waiting in the permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods in scheduler can be obtained from any profiles. Before this commit, each profile could only obtain waitingPods within that profile.", - "markdown": "Users can traverse all the pods that are in the scheduler and waiting in the permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods in scheduler can be obtained from any profiles. Before this commit, each profile could only obtain waitingPods within that profile. ([#124926](https://github.com/kubernetes/kubernetes/pull/124926), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling]", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124926", - "pr_number": 124926, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "124931": { - "commit": "eb66365bc4a84eca9b7f4ca6436535bc78d46648", - "text": "Dynamic Resource Allocation (DRA): using structured parameters with a claim that gets reused between pods may have led to a claim with an invalid state (allocated without a finalizer) which then caused scheduling of pods using the claim to stop.", - "markdown": "Dynamic Resource Allocation (DRA): using structured parameters with a claim that gets reused between pods may have led to a claim with an invalid state (allocated without a finalizer) which then caused scheduling of pods using the claim to stop. ([#124931](https://github.com/kubernetes/kubernetes/pull/124931), [@pohly](https://github.com/pohly)) [SIG Node and Scheduling]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124931", - "pr_number": 124931, - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "scheduling" - ], - "duplicate": true, - "is_mapped": true - }, - "124933": { - "commit": "0f584a9b86248bfc62c7d9865d437cb935278bc2", - "text": "Fixed a bug in the scheduler where it would crash when prefilter returns a non-existent node.", - "markdown": "Fixed a bug in the scheduler where it would crash when prefilter returns a non-existent node. ([#124933](https://github.com/kubernetes/kubernetes/pull/124933), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Testing]", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124933", - "pr_number": 124933, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124942": { - "commit": "cfd949e321869b8f7228f3b8e391571c07d76a52", - "text": "The sidecars' finish time will now be accounted for when calculating the job's finish time.", - "markdown": "The sidecars' finish time will now be accounted for when calculating the job's finish time. ([#124942](https://github.com/kubernetes/kubernetes/pull/124942), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps]", - "documentation": [ - { - "description": "[KEP]: \u003c", - "url": "https://github.com/kubernetes/enhancements/issues/753\u003e", - "type": "KEP" - } - ], - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124942", - "pr_number": 124942, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "is_mapped": true - }, - "124948": { - "commit": "ef39aa896a884fa4a57b5015d0eea3e75cf23c96", - "text": "kube-controller-manager: the `horizontal-pod-autoscaler-upscale-delay` and `horizontal-pod-autoscaler-downscale-delay` flags have been removed (deprecated and non-functional since v1.12).", - "markdown": "Kube-controller-manager: the `horizontal-pod-autoscaler-upscale-delay` and `horizontal-pod-autoscaler-downscale-delay` flags have been removed (deprecated and non-functional since v1.12). ([#124948](https://github.com/kubernetes/kubernetes/pull/124948), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery, Apps and Autoscaling]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124948", - "pr_number": 124948, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "autoscaling" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124958": { - "commit": "89283e0219d5d2df8c22b0de01756a79c8c7790c", - "text": "The kube-scheduler added support for scheduling hints for the StorageClass resource within the VolumeBinding plugin.\nThe scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated.", - "markdown": "The kube-scheduler added support for scheduling hints for the StorageClass resource within the VolumeBinding plugin.\n The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. ([#124958](https://github.com/kubernetes/kubernetes/pull/124958), [@bells17](https://github.com/bells17)) [SIG Scheduling and Storage]", - "author": "bells17", - "author_url": "https://github.com/bells17", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124958", - "pr_number": 124958, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124959": { - "commit": "9247a21be6a0c1aa81d10dea4e2536eaaa66837b", - "text": "The kube-scheduler added support for scheduling hints for the PersistentVolumeClaim resource within the VolumeBinding plugin.\nThe scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated.", - "markdown": "The kube-scheduler added support for scheduling hints for the PersistentVolumeClaim resource within the VolumeBinding plugin.\n The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. ([#124959](https://github.com/kubernetes/kubernetes/pull/124959), [@bells17](https://github.com/bells17)) [SIG Scheduling and Storage]", - "author": "bells17", - "author_url": "https://github.com/bells17", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124959", - "pr_number": 124959, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124961": { - "commit": "e1aa8197eddd277fb82be0b8bbc2ba2b4ca67af7", - "text": "The kube-scheduler added support for scheduling hints for the CSIStorageCapacity resource within the VolumeBinding plugin.\nThe scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated.", - "markdown": "The kube-scheduler added support for scheduling hints for the CSIStorageCapacity resource within the VolumeBinding plugin.\n The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. ([#124961](https://github.com/kubernetes/kubernetes/pull/124961), [@bells17](https://github.com/bells17)) [SIG Scheduling and Storage]", - "author": "bells17", - "author_url": "https://github.com/bells17", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124961", - "pr_number": 124961, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124969": { - "commit": "108055430774959198d1b8a6917d03455250098d", - "text": "PersistentVolumeLastPhaseTransitionTime feature is stable and enabled by default.", - "markdown": "PersistentVolumeLastPhaseTransitionTime feature is stable and enabled by default. ([#124969](https://github.com/kubernetes/kubernetes/pull/124969), [@RomanBednar](https://github.com/RomanBednar)) [SIG API Machinery, Apps, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3762", - "type": "KEP" - } - ], - "author": "RomanBednar", - "author_url": "https://github.com/RomanBednar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124969", - "pr_number": 124969, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "124994": { - "commit": "7ec344dcef9a04920578aabe4e122bc0b3404afe", - "text": "Added namespace autocompletion for `kubectl config set-context` command.", - "markdown": "Added namespace autocompletion for `kubectl config set-context` command. ([#124994](https://github.com/kubernetes/kubernetes/pull/124994), [@TessaIO](https://github.com/TessaIO)) [SIG CLI]", - "author": "TessaIO", - "author_url": "https://github.com/TessaIO", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124994", - "pr_number": 124994, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "124996": { - "commit": "7f23ebedc44565c0180898805011e61eb3f1226d", - "text": "kube-scheduler implements scheduling hints for the VolumeZone plugin.\nThe scheduling hints allow the scheduler to only retry scheduling a Pod\nthat was previously rejected by the VolumeZone plugin if addition/update of node, \naddition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings.", - "markdown": "Kube-scheduler implements scheduling hints for the VolumeZone plugin.\n The scheduling hints allow the scheduler to only retry scheduling a Pod\n that was previously rejected by the VolumeZone plugin if addition/update of node, \n addition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings. ([#124996](https://github.com/kubernetes/kubernetes/pull/124996), [@Gekko0114](https://github.com/Gekko0114)) [SIG Scheduling and Storage]", - "author": "Gekko0114", - "author_url": "https://github.com/Gekko0114", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124996", - "pr_number": 124996, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124997": { - "commit": "25b3912c0dadb14403f80a144f858a751d0c743e", - "text": "kubeadm: deprecated the kubeadm `RootlessControlPlane` feature gate (previously alpha), given that the core K8s `UserNamespacesSupport` feature gate graduated to beta in 1.30.\nOnce core Kubernetes support for user namespaces is generally available and kubeadm has started to support running the control plane in userns pods, the kubeadm `RootlessControlPlane` feature gate will be removed entirely.\nUntil kubeadm supports the userns functionality out of the box, users can continue using the deprecated `RootlessControlPlane` feature gate, or opt-in `UserNamespacesSupport` by using kubeadm patches on the static pod manifests.", - "markdown": "Kubeadm: deprecated the kubeadm `RootlessControlPlane` feature gate (previously alpha), given that the core K8s `UserNamespacesSupport` feature gate graduated to beta in 1.30.\n Once core Kubernetes support for user namespaces is generally available and kubeadm has started to support running the control plane in userns pods, the kubeadm `RootlessControlPlane` feature gate will be removed entirely.\n Until kubeadm supports the userns functionality out of the box, users can continue using the deprecated `RootlessControlPlane` feature gate, or opt-in `UserNamespacesSupport` by using kubeadm patches on the static pod manifests. ([#124997](https://github.com/kubernetes/kubernetes/pull/124997), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124997", - "pr_number": 124997, - "areas": [ - "kubeadm" - ], - "kinds": [ - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "125000": { - "commit": "5b49afa66b247485eeb1d111dde74f07e2cef13f", - "text": "kube-scheduler implements scheduling hints for the VolumeZone plugin.\nThe scheduling hints allow the scheduler to only retry scheduling a Pod\nthat was previously rejected by the VolumeZone plugin if addition/update of node, \naddition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings.", - "markdown": "Kube-scheduler implements scheduling hints for the VolumeZone plugin.\n The scheduling hints allow the scheduler to only retry scheduling a Pod\n that was previously rejected by the VolumeZone plugin if addition/update of node, \n addition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings. ([#125000](https://github.com/kubernetes/kubernetes/pull/125000), [@Gekko0114](https://github.com/Gekko0114)) [SIG Scheduling and Storage]", - "author": "Gekko0114", - "author_url": "https://github.com/Gekko0114", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125000", - "pr_number": 125000, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true - }, - "125001": { - "commit": "52a622ad6d2648599b28eec29263518162f9fcf8", - "text": "kube-scheduler implements scheduling hints for the VolumeZone plugin.\nThe scheduling hints allow the scheduler to only retry scheduling a Pod\nthat was previously rejected by the VolumeZone plugin if addition/update of node, \naddition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings.", - "markdown": "Kube-scheduler implements scheduling hints for the VolumeZone plugin.\n The scheduling hints allow the scheduler to only retry scheduling a Pod\n that was previously rejected by the VolumeZone plugin if addition/update of node, \n addition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings. ([#125001](https://github.com/kubernetes/kubernetes/pull/125001), [@Gekko0114](https://github.com/Gekko0114)) [SIG Scheduling and Storage]", - "author": "Gekko0114", - "author_url": "https://github.com/Gekko0114", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125001", - "pr_number": 125001, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true - }, - "125015": { - "commit": "e67f889edc4ab278028f6cffd2501bc90a0defcf", - "text": "The iptables mode of kube-proxy now tracks accepted packets that are destined for node-ports on localhost by introducing `kubeproxy_iptables_localhost_nodeports_accepted_packets_total` metric.\nThis will help users to identify if they rely on iptables.localhostNodePorts feature and ultimately help them to migrate from iptables to nftables.", - "markdown": "The iptables mode of kube-proxy now tracks accepted packets that are destined for node-ports on localhost by introducing `kubeproxy_iptables_localhost_nodeports_accepted_packets_total` metric.\n This will help users to identify if they rely on iptables.localhostNodePorts feature and ultimately help them to migrate from iptables to nftables. ([#125015](https://github.com/kubernetes/kubernetes/pull/125015), [@aroradaman](https://github.com/aroradaman)) [SIG Instrumentation, Network and Testing]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125015", - "pr_number": 125015, - "areas": [ - "test", - "kube-proxy", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125016": { - "commit": "b3db54ea72a4f7441260982b4d2941f856401c9a", - "text": "The feature-gate CSIMigrationPortworx was promoted to beta in Kubernetes 1.25, but turned off by default. In 1.31, it was turned on by default. Before upgrading to 1.31, please make sure that the corresponding portworx csi driver is installed if you are using Portworx.", - "markdown": "The feature-gate CSIMigrationPortworx was promoted to beta in Kubernetes 1.25, but turned off by default. In 1.31, it was turned on by default. Before upgrading to 1.31, please make sure that the corresponding portworx csi driver is installed if you are using Portworx. ([#125016](https://github.com/kubernetes/kubernetes/pull/125016), [@carlory](https://github.com/carlory)) [SIG Storage]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2589", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125016", - "pr_number": 125016, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true, - "is_mapped": true - }, - "125021": { - "commit": "93d56511e684369479f23aae15617e483cda5719", - "text": "Updated the feature MultiCIDRServiceAllocator to beta (disabled by default). Users need to enable the feature gate and the networking v1beta1 group to be able to use this new feature, that allows to dynamically reconfigure Service CIDR ranges.", - "markdown": "Updated the feature MultiCIDRServiceAllocator to beta (disabled by default). Users need to enable the feature gate and the networking v1beta1 group to be able to use this new feature, that allows to dynamically reconfigure Service CIDR ranges. ([#125021](https://github.com/kubernetes/kubernetes/pull/125021), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, CLI, Etcd, Instrumentation, Network and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1880", - "type": "KEP" - } - ], - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125021", - "pr_number": 125021, - "areas": [ - "test", - "kube-proxy", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "cli", - "etcd", - "instrumentation", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125029": { - "commit": "c142814f6c56f2f0a597699f61b0d85c9d9ce1e2", - "text": "kubeadm: enabled the v1beta4 API. For a complete changelog since v1beta3 please see https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta4/. \n\nThe API does include a few breaking changes:\n- The \"extraArgs\" component construct is now a list of \"name\"/\"value\" pairs instead of a string/string map. This has been done to support duplicate args where needed.\n- The \"JoinConfiguration.discovery.timeout\" field has been replaced by \"JoinConfiguration.timeouts.discovery\".\n- The \"ClusterConfiguration.timeoutForControlPlane\" field has been replaced by \"{Init|Join}Configuration.timeouts.controlPlaneComponentHealthCheck\".\nPlease use the command \"kubeadm config migrate\" to migrate your existing v1beta3 configuration to v1beta4.\n\nv1beta3 is now marked as deprecated but will continue to be supported until version 1.34 or later.\nThe storage configuration in the kube-system/kubeadm-config ConfigMap is now a v1beta4 ClusterConfiguration.", - "markdown": "Kubeadm: enabled the v1beta4 API. For a complete changelog since v1beta3 please see https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta4/. \n \n The API does include a few breaking changes:\n - The \"extraArgs\" component construct is now a list of \"name\"/\"value\" pairs instead of a string/string map. This has been done to support duplicate args where needed.\n - The \"JoinConfiguration.discovery.timeout\" field has been replaced by \"JoinConfiguration.timeouts.discovery\".\n - The \"ClusterConfiguration.timeoutForControlPlane\" field has been replaced by \"{Init|Join}Configuration.timeouts.controlPlaneComponentHealthCheck\".\n Please use the command \"kubeadm config migrate\" to migrate your existing v1beta3 configuration to v1beta4.\n \n v1beta3 is now marked as deprecated but will continue to be supported until version 1.34 or later.\n The storage configuration in the kube-system/kubeadm-config ConfigMap is now a v1beta4 ClusterConfiguration. ([#125029](https://github.com/kubernetes/kubernetes/pull/125029), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125029", - "pr_number": 125029, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "125040": { - "commit": "b2817dc4321beb9384badff71caaab2d756cf85a", - "text": "Fixed an issue where kubelet on Windows would fail if a pod had a SecurityContext with `RunAsUser`.", - "markdown": "Fixed an issue where kubelet on Windows would fail if a pod had a SecurityContext with `RunAsUser`. ([#125040](https://github.com/kubernetes/kubernetes/pull/125040), [@carlory](https://github.com/carlory)) [SIG Storage, Testing and Windows]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125040", - "pr_number": 125040, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "testing", - "windows" - ], - "duplicate": true, - "is_mapped": true - }, - "125067": { - "commit": "5a121aad53a819c3c9b26a6b5866b1ea8c686f5b", - "text": "`pause`: Added a `-v` flag to the Windows variant of the pause binary, which\nprints the version of pause and exits. The Linux pause binary already has this flag.", - "markdown": "`pause`: Added a `-v` flag to the Windows variant of the pause binary, which\n prints the version of pause and exits. The Linux pause binary already has this flag. ([#125067](https://github.com/kubernetes/kubernetes/pull/125067), [@neolit123](https://github.com/neolit123)) [SIG Windows]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125067", - "pr_number": 125067, - "areas": [ - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "windows" - ], - "feature": true, - "is_mapped": true - }, - "125082": { - "commit": "f70115206b4665d8ca47f8e3b77b821353ee489e", - "text": "Promoted the feature gate `KubeProxyDrainingTerminatingNodes` to stable", - "markdown": "Promoted the feature gate `KubeProxyDrainingTerminatingNodes` to stable ([#125082](https://github.com/kubernetes/kubernetes/pull/125082), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Network]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/issues/3836", - "type": "KEP" - } - ], - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125082", - "pr_number": 125082, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "is_mapped": true - }, - "125097": { - "commit": "90615231a629ca3a2bab9aab91dca0a1c14317cf", - "text": "The scheduler implements QueueingHint in VolumeBinding plugin's CSINode event, which enhances the throughput of scheduling.", - "markdown": "The scheduler implements QueueingHint in VolumeBinding plugin's CSINode event, which enhances the throughput of scheduling. ([#125097](https://github.com/kubernetes/kubernetes/pull/125097), [@YamasouA](https://github.com/YamasouA)) [SIG Scheduling and Storage]", - "author": "YamasouA", - "author_url": "https://github.com/YamasouA", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125097", - "pr_number": 125097, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125112": { - "commit": "e0e6c9633d5f9a388cbf9c7757c789afaec11c34", - "text": "dependencies: started using registry.k8s.io/pause:3.10.", - "markdown": "Dependencies: started using registry.k8s.io/pause:3.10. ([#125112](https://github.com/kubernetes/kubernetes/pull/125112), [@neolit123](https://github.com/neolit123)) [SIG CLI, Cloud Provider, Cluster Lifecycle, Node, Release, Testing and Windows]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125112", - "pr_number": 125112, - "areas": [ - "test", - "kubelet", - "kubectl", - "provider/gcp", - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "cloud-provider", - "cluster-lifecycle", - "node", - "release", - "testing", - "windows" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125113": { - "commit": "4c0afd74c3d90a5f13c7edf94911b4a4eb633865", - "text": "Updated CNI Plugins to v1.5.0.", - "markdown": "Updated CNI Plugins to v1.5.0. ([#125113](https://github.com/kubernetes/kubernetes/pull/125113), [@bzsuni](https://github.com/bzsuni)) [SIG Cloud Provider, Network, Node and Testing]", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125113", - "pr_number": 125113, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "network", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125116": { - "commit": "ac9aec9f9b1229c1560d682475dc5c6f38f6beb3", - "text": "Dynamic Resource Allocation (DRA): in the `pod.spec.recourceClaims` array, the `source` indirection is no longer necessary. Instead of e.g. `source: resourceClaimTemplateName: my-template`, one can write `resourceClaimTemplateName: my-template`.", - "markdown": "Dynamic Resource Allocation (DRA): in the `pod.spec.recourceClaims` array, the `source` indirection is no longer necessary. Instead of e.g. `source: resourceClaimTemplateName: my-template`, one can write `resourceClaimTemplateName: my-template`. ([#125116](https://github.com/kubernetes/kubernetes/pull/125116), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125116", - "pr_number": 125116, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125117": { - "commit": "59d90eb17e41f855e65f6ca4ac3d93d3709a3067", - "text": "`kubectl describe service` now shows internal traffic policy and ip mode of load balancer IP.", - "markdown": "`kubectl describe service` now shows internal traffic policy and ip mode of load balancer IP. ([#125117](https://github.com/kubernetes/kubernetes/pull/125117), [@tnqn](https://github.com/tnqn)) [SIG CLI and Network]", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125117", - "pr_number": 125117, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli", - "network" - ], - "duplicate": true, - "is_mapped": true - }, - "125122": { - "commit": "83f77b6bd56215a1d40b55ee60835e49fc345abe", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#125122](https://github.com/kubernetes/kubernetes/pull/125122), [@chendave](https://github.com/chendave)) [SIG Scheduling]", - "author": "chendave", - "author_url": "https://github.com/chendave", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125122", - "pr_number": 125122, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "125145": { - "commit": "3f9b79fc119d064d00939f91567b48d9ada7dc43", - "text": "kube-apiserver: fixed a 1.27+ regression watching a single namespace via the deprecated /api/v1/watch/namespaces/$name endpoint where watch events were not delivered after the watch was established.", - "markdown": "Kube-apiserver: fixed a 1.27+ regression watching a single namespace via the deprecated /api/v1/watch/namespaces/$name endpoint where watch events were not delivered after the watch was established. ([#125145](https://github.com/kubernetes/kubernetes/pull/125145), [@xyz-li](https://github.com/xyz-li)) [SIG API Machinery, Node and Testing]", - "author": "xyz-li", - "author_url": "https://github.com/xyz-li", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125145", - "pr_number": 125145, - "areas": [ - "test", - "apiserver", - "e2e-test-framework" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125150": { - "commit": "2c46fafa2377363728797b43e2bef213753e4fc9", - "text": "Container Storage Interface (CSI) spec support has been lifted to v1.9.0 in this release.", - "markdown": "Container Storage Interface (CSI) spec support has been lifted to v1.9.0 in this release. ([#125150](https://github.com/kubernetes/kubernetes/pull/125150), [@humblec](https://github.com/humblec)) [SIG Storage and Testing]", - "author": "humblec", - "author_url": "https://github.com/humblec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125150", - "pr_number": 125150, - "areas": [ - "test", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125157": { - "commit": "548d50da98f086714bebbf54b1cd578d594c7aa6", - "text": "`kubeadm`: The `NodeSwap` check that kubeadm performs during preflight, has a new warning to verify if swap has been configured correctly.", - "markdown": "`kubeadm`: The `NodeSwap` check that kubeadm performs during preflight, has a new warning to verify if swap has been configured correctly. ([#125157](https://github.com/kubernetes/kubernetes/pull/125157), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125157", - "pr_number": 125157, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "125162": { - "commit": "2c6daa41deff0eb7d705c85b5672cde79ea82517", - "text": "Fixed code-generator client-gen to work with `api/v1`-like package structure.", - "markdown": "Fixed code-generator client-gen to work with `api/v1`-like package structure. ([#125162](https://github.com/kubernetes/kubernetes/pull/125162), [@sttts](https://github.com/sttts)) [SIG API Machinery and Apps]", - "author": "sttts", - "author_url": "https://github.com/sttts", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125162", - "pr_number": 125162, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125163": { - "commit": "f2428d66cc2256fcbe2a486b1403603530f46c6f", - "text": "'ACTION REQUIRED: The Dynamic Resource Allocation (DRA) driver's DaemonSet\nmust be deployed with a service account that enables writing ResourceSlice\nand reading ResourceClaim objects.'\n", - "markdown": "'ACTION REQUIRED: The Dynamic Resource Allocation (DRA) driver's DaemonSet\n must be deployed with a service account that enables writing ResourceSlice\n and reading ResourceClaim objects.'\n ([#125163](https://github.com/kubernetes/kubernetes/pull/125163), [@pohly](https://github.com/pohly)) [SIG Auth, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - }, - { - "description": "[Docs]", - "url": "https://github.com/kubernetes/enhancements/pull/4667", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125163", - "pr_number": 125163, - "areas": [ - "test", - "kubelet", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "auth", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125168": { - "commit": "d8b33e32b16a8e393f9e174af92b19302c729a98", - "text": "job-controller: the `JobReadyPods` feature flag has been removed (deprecated since v1.31).", - "markdown": "Job-controller: the `JobReadyPods` feature flag has been removed (deprecated since v1.31). ([#125168](https://github.com/kubernetes/kubernetes/pull/125168), [@kaisoz](https://github.com/kaisoz)) [SIG Apps]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2879-ready-pods-job-status", - "type": "KEP" - } - ], - "author": "kaisoz", - "author_url": "https://github.com/kaisoz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125168", - "pr_number": 125168, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "125175": { - "commit": "c49b140c45e0e9b7e47da4bbe81d32829008c06d", - "text": ".status.terminating field now gets tracked faster when active Pods are deleted, specifically when Job is failed, gets suspended or has too many active pods.", - "markdown": ".status.terminating field now gets tracked faster when active Pods are deleted, specifically when Job is failed, gets suspended or has too many active pods. ([#125175](https://github.com/kubernetes/kubernetes/pull/125175), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3939-allow-replacement-when-fully-terminated", - "type": "KEP" - } - ], - "author": "dejanzele", - "author_url": "https://github.com/dejanzele", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125175", - "pr_number": 125175, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125176": { - "commit": "f44bb5e6e58c315b62c79bbc20814e84eb002e00", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#125176](https://github.com/kubernetes/kubernetes/pull/125176), [@mauri870](https://github.com/mauri870)) [SIG Testing]", - "author": "mauri870", - "author_url": "https://github.com/mauri870", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125176", - "pr_number": 125176, - "kinds": [ - "bug" - ], - "sigs": [ - "testing" - ], - "do_not_publish": true - }, - "125179": { - "commit": "83c2db067ed04401bbeca9193bfac888c18c77b8", - "text": "kubeadm: Strictly enabled only the supported klog flags, disallowing previously available but unrecommended options. This means that hidden flags about klog (including `--alsologtostderr`, `--log-backtrace-at`, `--log-dir`, `--logtostderr`, `--log-file`, `--log-file-max-size`, `--one-output`, `--skip-log-headers`, `--stderrthreshold` and `--vmodule`) are no longer allowed to be used.", - "markdown": "Kubeadm: Strictly enabled only the supported klog flags, disallowing previously available but unrecommended options. This means that hidden flags about klog (including `--alsologtostderr`, `--log-backtrace-at`, `--log-dir`, `--logtostderr`, `--log-file`, `--log-file-max-size`, `--one-output`, `--skip-log-headers`, `--stderrthreshold` and `--vmodule`) are no longer allowed to be used. ([#125179](https://github.com/kubernetes/kubernetes/pull/125179), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125179", - "pr_number": 125179, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "125197": { - "commit": "8bd36c60bda712fb8146ee946920f572a77c185e", - "text": "Improved scheduling performance when many nodes, and prefilter returned 1-2 nodes (e.g. daemonset)\n\nFor developers of out-of-tree PostFilter plugins, note that the semantics of NodeToStatusMap are changing: A node with an absent value in the NodeToStatusMap should be interpreted as having an UnschedulableAndUnresolvable status.", - "markdown": "Improved scheduling performance when many nodes, and prefilter returned 1-2 nodes (e.g. daemonset)\n \n For developers of out-of-tree PostFilter plugins, note that the semantics of NodeToStatusMap are changing: A node with an absent value in the NodeToStatusMap should be interpreted as having an UnschedulableAndUnresolvable status. ([#125197](https://github.com/kubernetes/kubernetes/pull/125197), [@gabesaba](https://github.com/gabesaba)) [SIG Scheduling]", - "author": "gabesaba", - "author_url": "https://github.com/gabesaba", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125197", - "pr_number": 125197, - "kinds": [ - "bug", - "api-change", - "regression" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true, - "action_required": true, - "is_mapped": true - }, - "125218": { - "commit": "ba28796e778731bdb8dfeaa9a85454ff28306c1a", - "text": "Dynamic Resource Allocator (DRA): Enhanced validation for the ResourceClaimParametersReference and ResourceClassParametersReference with the following rules:\n\n1. `apiGroup`: If set, it must be a valid DNS subdomain (e.g. 'example.com').\n2. `kind` and `name`: It must be valid path segment name. It may not be '.' or '..' and it may not contain '/' and '%' characters.", - "markdown": "Dynamic Resource Allocator (DRA): Enhanced validation for the ResourceClaimParametersReference and ResourceClassParametersReference with the following rules:\n \n 1. `apiGroup`: If set, it must be a valid DNS subdomain (e.g. 'example.com').\n 2. `kind` and `name`: It must be valid path segment name. It may not be '.' or '..' and it may not contain '/' and '%' characters. ([#125218](https://github.com/kubernetes/kubernetes/pull/125218), [@carlory](https://github.com/carlory)) [SIG Node]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125218", - "pr_number": 125218, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "125225": { - "commit": "6938c29a38e2b55b1a93f63af8c9a98aaeb5c026", - "text": "Fixed an issue where the Service LoadBalancer controller was not correctly considering the `service.Status new IPMode` field and excluding the Ports when checking if the status was changed, resulting in the changed field potentially not to update the `service.Status` correctly.", - "markdown": "Fixed an issue where the Service LoadBalancer controller was not correctly considering the `service.Status new IPMode` field and excluding the Ports when checking if the status was changed, resulting in the changed field potentially not to update the `service.Status` correctly. ([#125225](https://github.com/kubernetes/kubernetes/pull/125225), [@aojea](https://github.com/aojea)) [SIG Apps, Cloud Provider and Network]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125225", - "pr_number": 125225, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "apps", - "cloud-provider", - "network" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125235": { - "commit": "2f0cf23645876d39a6554f0cf6578a851c0a4891", - "text": "Built etcd image v3.5.14.", - "markdown": "Built etcd image v3.5.14. ([#125235](https://github.com/kubernetes/kubernetes/pull/125235), [@humblec](https://github.com/humblec)) [SIG API Machinery]", - "author": "humblec", - "author_url": "https://github.com/humblec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125235", - "pr_number": 125235, - "areas": [ - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "125238": { - "commit": "790dfdbe386e4a115f41d38058c127d2dd0e6f44", - "text": "Allowed creating ServiceAccount tokens bound to Node objects.\nThis allows users to bind a service account token's validity to a named Node object, similar to Pod bound tokens.\nUse with `kubectl create token \u003cserviceaccount-name\u003e --bound-object-kind=Node --bound-object-node=\u003cnode-name\u003e`.", - "markdown": "Allowed creating ServiceAccount tokens bound to Node objects.\n This allows users to bind a service account token's validity to a named Node object, similar to Pod bound tokens.\n Use with `kubectl create token \u003cserviceaccount-name\u003e --bound-object-kind=Node --bound-object-node=\u003cnode-name\u003e`. ([#125238](https://github.com/kubernetes/kubernetes/pull/125238), [@munnerz](https://github.com/munnerz)) [SIG Auth and CLI]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4193", - "type": "external" - } - ], - "author": "munnerz", - "author_url": "https://github.com/munnerz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125238", - "pr_number": 125238, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "cli" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125257": { - "commit": "7590cb7adffb25b687e629d2c93dcb1eaa539301", - "text": "Graduated Kubernetes' support for AppArmor to GA. You now cannot disable the `AppArmor` feature gate.", - "markdown": "Graduated Kubernetes' support for AppArmor to GA. You now cannot disable the `AppArmor` feature gate. ([#125257](https://github.com/kubernetes/kubernetes/pull/125257), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Apps, Node and Testing]", - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125257", - "pr_number": 125257, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125259": { - "commit": "a8110d7174e062a26aee19d7d4e2db622779fab8", - "text": "Promoted the `ProcMountType` feature gate to beta.", - "markdown": "Promoted the `ProcMountType` feature gate to beta. ([#125259](https://github.com/kubernetes/kubernetes/pull/125259), [@sohankunkerkar](https://github.com/sohankunkerkar))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4265-proc-mount", - "type": "KEP" - } - ], - "author": "sohankunkerkar", - "author_url": "https://github.com/sohankunkerkar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125259", - "pr_number": 125259, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "125263": { - "commit": "34dd2007cb91eda0828ae50aebf70fc2a02186f2", - "text": "Fixed bug where Server Side Apply causes spurious resourceVersion bumps on no-op patches to custom resources.", - "markdown": "Fixed bug where Server Side Apply causes spurious resourceVersion bumps on no-op patches to custom resources. ([#125263](https://github.com/kubernetes/kubernetes/pull/125263), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125263", - "pr_number": 125263, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125265": { - "commit": "2d8a3ad5728cb6ff00f9721303c18e942ccfbfc8", - "text": "kubeadm: The healthz address:port configured in the KubeletConfiguration was used during kubelet health checks, instead of hardcoding localhost:10248.", - "markdown": "Kubeadm: The healthz address:port configured in the KubeletConfiguration was used during kubelet health checks, instead of hardcoding localhost:10248. ([#125265](https://github.com/kubernetes/kubernetes/pull/125265), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125265", - "pr_number": 125265, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "125272": { - "commit": "9fc0315ce89d425dc838338018b0c9f4da7559d9", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#125272](https://github.com/kubernetes/kubernetes/pull/125272), [@mauri870](https://github.com/mauri870)) [SIG Testing]", - "author": "mauri870", - "author_url": "https://github.com/mauri870", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125272", - "pr_number": 125272, - "kinds": [ - "bug" - ], - "sigs": [ - "testing" - ], - "do_not_publish": true, - "is_mapped": false - }, - "125277": { - "commit": "f458a749e794de9169bbc7a7249afd4742f795cc", - "text": "Changed Linux swap handling to restrict access to swap for containers in high priority Pods.\nNew Pods that have a node- or cluster-critical priority are prohibited from accessing swap on Linux,\neven if your cluster and node configuration could otherwise allow this.", - "markdown": "Changed Linux swap handling to restrict access to swap for containers in high priority Pods.\n New Pods that have a node- or cluster-critical priority are prohibited from accessing swap on Linux,\n even if your cluster and node configuration could otherwise allow this. ([#125277](https://github.com/kubernetes/kubernetes/pull/125277), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2400-node-swap", - "type": "KEP" - } - ], - "author": "iholder101", - "author_url": "https://github.com/iholder101", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125277", - "pr_number": 125277, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "125279": { - "commit": "a008776ec9527d2a8d89e7e7b65087ea2b131bfb", - "text": "kube-scheduler implemented scheduling hints for the VolumeRestriction plugin.\nScheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if the Pod is deleted and the deleted Pod conflicts with the existing volumes of the current Pod.", - "markdown": "Kube-scheduler implemented scheduling hints for the VolumeRestriction plugin.\n Scheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if the Pod is deleted and the deleted Pod conflicts with the existing volumes of the current Pod. ([#125279](https://github.com/kubernetes/kubernetes/pull/125279), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Scheduling and Storage]", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125279", - "pr_number": 125279, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125280": { - "commit": "c7dab2a507a1604a30140dbbc765b95037933eb8", - "text": "kube-scheduler implements scheduling hints for the VolumeRestriction plugin.\nScheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if a new pvc added, and the pvc belongs to pod.", - "markdown": "Kube-scheduler implements scheduling hints for the VolumeRestriction plugin.\n Scheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if a new pvc added, and the pvc belongs to pod. ([#125280](https://github.com/kubernetes/kubernetes/pull/125280), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Scheduling and Storage]", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125280", - "pr_number": 125280, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true - }, - "125305": { - "commit": "06ec6ba05df1edef90de9a4a676ba31b03a770ce", - "text": "Introduces new functionality to the dynamic client's `List` method, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate.\n\nIt is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, the client will revert to using the normal `LIST` method to obtain data.", - "markdown": "Introduces new functionality to the dynamic client's `List` method, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate.\n \n It is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, the client will revert to using the normal `LIST` method to obtain data. ([#125305](https://github.com/kubernetes/kubernetes/pull/125305), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125305", - "pr_number": 125305, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "125317": { - "commit": "d5dd5b13a577ffa19c38ad5651d6a072adf7f1fe", - "text": "Fixed bug where Server Side Apply causing spurious resourceVersion bumps on no-op patches containing empty maps.", - "markdown": "Fixed bug where Server Side Apply causing spurious resourceVersion bumps on no-op patches containing empty maps. ([#125317](https://github.com/kubernetes/kubernetes/pull/125317), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125317", - "pr_number": 125317, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "125328": { - "commit": "5a99930ab57b2c7837960b21d2c92e958db8c377", - "text": "Added a warning log, an event for cgroup v1 usage and a metric for cgroup version. Running kubelet using cgroup v1 is in a maintenance mode: no new features will be added with the limited support for bug fixes. Please consider migrating to cgroup v2. See [KEP-4569: Moving cgroup v1 support into maintenance mode](https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support) for more info.", - "markdown": "Added a warning log, an event for cgroup v1 usage and a metric for cgroup version. Running kubelet using cgroup v1 is in a maintenance mode: no new features will be added with the limited support for bug fixes. Please consider migrating to cgroup v2. See [KEP-4569: Moving cgroup v1 support into maintenance mode](https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support) for more info. ([#125328](https://github.com/kubernetes/kubernetes/pull/125328), [@harche](https://github.com/harche)) [SIG Node]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4569-cgroup-v1-maintenance-mode#implementing-a-warning-log-and-an-event-for-cgroup-v1-usage", - "type": "KEP" - } - ], - "author": "harche", - "author_url": "https://github.com/harche", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125328", - "pr_number": 125328, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "125333": { - "commit": "c20aa764d787d5710935b573571c0574b2e13e47", - "text": "`--custom` flag in `kubectl debug` will be enabled by default and yaml support is added.", - "markdown": "`--custom` flag in `kubectl debug` will be enabled by default and yaml support is added. ([#125333](https://github.com/kubernetes/kubernetes/pull/125333), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4292", - "type": "KEP" - } - ], - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125333", - "pr_number": 125333, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125359": { - "commit": "fb6bbc9781d11a87688c398778525c4e1dcb0f08", - "text": "Fixed: during the kube-controller-manager restart, when the corresponding Endpoints resource was manually deleted and recreated, causing the endpointslice to fail to be created normally.", - "markdown": "Fixed: during the kube-controller-manager restart, when the corresponding Endpoints resource was manually deleted and recreated, causing the endpointslice to fail to be created normally. ([#125359](https://github.com/kubernetes/kubernetes/pull/125359), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Apps and Network]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125359", - "pr_number": 125359, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true, - "is_mapped": true - }, - "125360": { - "commit": "96827ea6bf4f371bf6be17e6e1f9094c82cf5781", - "text": "scheduler framework: Allowed PreBind implementations to return Pending and Unschedulable status codes.", - "markdown": "Scheduler framework: Allowed PreBind implementations to return Pending and Unschedulable status codes. ([#125360](https://github.com/kubernetes/kubernetes/pull/125360), [@pohly](https://github.com/pohly)) [SIG Scheduling]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125360", - "pr_number": 125360, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "125363": { - "commit": "a7ca13ea29ba5b3c91fd293cdbaec8fb5b30cee2", - "text": "Built Kubernetes with Go 1.22.4.", - "markdown": "Built Kubernetes with Go 1.22.4. ([#125363](https://github.com/kubernetes/kubernetes/pull/125363), [@cpanato](https://github.com/cpanato)) [SIG Architecture, Cloud Provider, Release, Storage and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125363", - "pr_number": 125363, - "areas": [ - "test", - "provider/gcp", - "release-eng", - "conformance" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "architecture", - "cloud-provider", - "release", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125365": { - "commit": "c707c434665018ce1ca670c4600c5db726314aa4", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#125365](https://github.com/kubernetes/kubernetes/pull/125365), [@dims](https://github.com/dims)) [SIG Apps, Network, Storage and Testing]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125365", - "pr_number": 125365, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "network", - "storage", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "125374": { - "commit": "6e52e705d0c0a962fcfe0fc98b1015e517f16844", - "text": "Promoted `StatefulSetStartOrdinal` to stable. This means `--feature-gates=StatefulSetStartOrdinal=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation.", - "markdown": "Promoted `StatefulSetStartOrdinal` to stable. This means `--feature-gates=StatefulSetStartOrdinal=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation. ([#125374](https://github.com/kubernetes/kubernetes/pull/125374), [@pwschuurman](https://github.com/pwschuurman)) [SIG API Machinery, Apps and Testing]", - "author": "pwschuurman", - "author_url": "https://github.com/pwschuurman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125374", - "pr_number": 125374, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125377": { - "commit": "6ba9fa89fb5889550649bfde847c742a55d3d29c", - "text": "Exposed the `apiserver_watch_cache_resource_version` metric to simplify debugging problems with watchcache.", - "markdown": "Exposed the `apiserver_watch_cache_resource_version` metric to simplify debugging problems with watchcache. ([#125377](https://github.com/kubernetes/kubernetes/pull/125377), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Instrumentation]", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125377", - "pr_number": 125377, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "125388": { - "commit": "c77d954273400a3f33150de499a09b57992e1741", - "text": "kubeadm: Fixed a bug where the PublicKeysECDSA feature gate was not respected when generating kubeconfig files.", - "markdown": "Kubeadm: Fixed a bug where the PublicKeysECDSA feature gate was not respected when generating kubeconfig files. ([#125388](https://github.com/kubernetes/kubernetes/pull/125388), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125388", - "pr_number": 125388, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "125396": { - "commit": "6b73cccb07de30c7793370e1d5c3f8766d975d20", - "text": "`kubeadm`: Allowed the `kubeadm init phase certs sa` command to accept the `--config` flag.", - "markdown": "`kubeadm`: Allowed the `kubeadm init phase certs sa` command to accept the `--config` flag. ([#125396](https://github.com/kubernetes/kubernetes/pull/125396), [@Kavinraja-G](https://github.com/Kavinraja-G)) [SIG Cluster Lifecycle]", - "author": "Kavinraja-G", - "author_url": "https://github.com/Kavinraja-G", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125396", - "pr_number": 125396, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "125404": { - "commit": "5427708866b1913207d548a4ba2827e7ac60e580", - "text": "Fixed the bug where PodIP field is temporarily removed for a terminal pod", - "markdown": "Fixed the bug where PodIP field is temporarily removed for a terminal pod ([#125404](https://github.com/kubernetes/kubernetes/pull/125404), [@mimowo](https://github.com/mimowo)) [SIG Node and Testing]", - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125404", - "pr_number": 125404, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "125429": { - "commit": "02013fd12707da232a5d4290a2c63dfc0912a407", - "text": "`Job`: Fixed a bug where `SuccessCriteriaMet` could be added to the Job with\n`successPolicy` regardless of the `featureGate` being enabled.", - "markdown": "`Job`: Fixed a bug where `SuccessCriteriaMet` could be added to the Job with\n `successPolicy` regardless of the `featureGate` being enabled. ([#125429](https://github.com/kubernetes/kubernetes/pull/125429), [@tenzen-y](https://github.com/tenzen-y)) [SIG Apps]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3998-job-success-completion-policy", - "type": "KEP" - } - ], - "author": "tenzen-y", - "author_url": "https://github.com/tenzen-y", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125429", - "pr_number": 125429, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "125437": { - "commit": "6f4e97e905e5553e75a5a8c042c9f5a29bd1b78d", - "text": "\"Removed the ability to run `kubectl exec [POD] [COMMAND]` without a `--` separator.\nThe `--` separator has been recommended since the Kubernetes v1.18 release, which also deprecated the legacy way of invoking `kubectl exec`.\n\nThis change aligns with the deprecation of legacy `kubectl exec` command execution and enforces the use of `kubectl exec [POD] -- [COMMAND]` for improved compatibility and adherence to recommended practices.\"\n", - "markdown": "\"Removed the ability to run `kubectl exec [POD] [COMMAND]` without a `--` separator.\n The `--` separator has been recommended since the Kubernetes v1.18 release, which also deprecated the legacy way of invoking `kubectl exec`.\n \n This change aligns with the deprecation of legacy `kubectl exec` command execution and enforces the use of `kubectl exec [POD] -- [COMMAND]` for improved compatibility and adherence to recommended practices.\"\n ([#125437](https://github.com/kubernetes/kubernetes/pull/125437), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125437", - "pr_number": 125437, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125442": { - "commit": "de00a3c894f17936b66bbd88ae1471f222826629", - "text": "Graduated `JobPodFailurePolicy` to GA and locked it to it's default.", - "markdown": "Graduated `JobPodFailurePolicy` to GA and locked it to it's default. ([#125442](https://github.com/kubernetes/kubernetes/pull/125442), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps, Scheduling and Testing]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125442", - "pr_number": 125442, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125450": { - "commit": "4630bef3034366812c6a1c68aa68d919853320a9", - "text": "Introduced `Wait(context.Context) error` method in pkg k8s.io/apiserver/pkg/storage/cacher to improve watch cache initialization resilience.", - "markdown": "Introduced `Wait(context.Context) error` method in pkg k8s.io/apiserver/pkg/storage/cacher to improve watch cache initialization resilience. ([#125450](https://github.com/kubernetes/kubernetes/pull/125450), [@mauri870](https://github.com/mauri870)) [SIG API Machinery]", - "documentation": [ - { - "description": "[Related KEP]", - "url": "https://kep.k8s.io/4568", - "type": "external" - } - ], - "author": "mauri870", - "author_url": "https://github.com/mauri870", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125450", - "pr_number": 125450, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "flake", - "failing-test" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "125459": { - "commit": "2c1aa2bfec3af3907fce0f4afec975ee7f09efbc", - "text": "LogarithmicScaleDown is now GA.", - "markdown": "LogarithmicScaleDown is now GA. ([#125459](https://github.com/kubernetes/kubernetes/pull/125459), [@MinpengJin](https://github.com/MinpengJin)) [SIG Apps and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2185", - "type": "KEP" - } - ], - "author": "MinpengJin", - "author_url": "https://github.com/MinpengJin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125459", - "pr_number": 125459, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "scheduling" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125461": { - "commit": "4a214f6ad966a4f5b22dc4446ef3c4e21de9a38e", - "text": "Graduated PodDisruptionConditions to GA and lock", - "markdown": "Graduated PodDisruptionConditions to GA and lock ([#125461](https://github.com/kubernetes/kubernetes/pull/125461), [@mimowo](https://github.com/mimowo)) [SIG Apps, Node, Scheduling and Testing]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125461", - "pr_number": 125461, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "125470": { - "commit": "fc3abdaf2dbb11c84033635b1d26f12fe12ef001", - "text": "Added a `.status.features.supplementalGroupsPolicy` field to Nodes. The field is true when the feature is implemented in the CRI implementation (KEP-3619).", - "markdown": "Added a `.status.features.supplementalGroupsPolicy` field to Nodes. The field is true when the feature is implemented in the CRI implementation (KEP-3619). ([#125470](https://github.com/kubernetes/kubernetes/pull/125470), [@everpeace](https://github.com/everpeace)) [SIG API Machinery, Apps, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3619-supplemental-groups-policy", - "type": "KEP" - } - ], - "author": "everpeace", - "author_url": "https://github.com/everpeace", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125470", - "pr_number": 125470, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125475": { - "commit": "cd19796316b9504d92ba4776502290fbd35dc681", - "text": "KEP-3857: promoted RecursiveReadOnlyMounts feature to beta.", - "markdown": "KEP-3857: promoted RecursiveReadOnlyMounts feature to beta. ([#125475](https://github.com/kubernetes/kubernetes/pull/125475), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/3857", - "type": "external" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/storage/volumes/#read-only-mounts", - "type": "official" - } - ], - "author": "AkihiroSuda", - "author_url": "https://github.com/AkihiroSuda", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125475", - "pr_number": 125475, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "125480": { - "commit": "63bc33181436cf90c626efe90d0dd9dfb97aabc2", - "text": "kubeadm: Fixed a regression where the JoinConfiguration.discovery.timeout was no longer respected and the value was always hardcoded to \"5m\" (5 minutes).", - "markdown": "Kubeadm: Fixed a regression where the JoinConfiguration.discovery.timeout was no longer respected and the value was always hardcoded to \"5m\" (5 minutes). ([#125480](https://github.com/kubernetes/kubernetes/pull/125480), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125480", - "pr_number": 125480, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "125488": { - "commit": "d21b17264e5a554724aa3ad032536630bcfd5b3f", - "text": "Enhanced the Dynamic Resource Allocation (DRA) with an updated version of the resource.k8s.io API group. The primary user-facing type remains the ResourceClaim, however significant changes have been made, resulting in the new version, v1alpha3, which is not compatible with the previous version.", - "markdown": "Enhanced the Dynamic Resource Allocation (DRA) with an updated version of the resource.k8s.io API group. The primary user-facing type remains the ResourceClaim, however significant changes have been made, resulting in the new version, v1alpha3, which is not compatible with the previous version. ([#125488](https://github.com/kubernetes/kubernetes/pull/125488), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Cluster Lifecycle, Etcd, Node, Release, Scheduling, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125488", - "pr_number": 125488, - "areas": [ - "test", - "kubelet", - "apiserver", - "kubectl", - "release-eng", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cli", - "cluster-lifecycle", - "etcd", - "node", - "release", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125510": { - "commit": "0a3330d6c995a5d69cafa9e15b3ab2adf3e93b84", - "text": "Delay setting terminal Job conditions until all pods are terminal.\n\nAdditionally, the FailureTarget condition is also added to the Job object in the first Job\nstatus update as soon as the failure conditions are met (backoffLimit is exceeded, maxFailedIndexes, \nor activeDeadlineSeconds is exceeded).\n\nSimilarly, the SuccessCriteriaMet condition is added in the first update as soon as the expected number\nof pod completions is reached.\n\nAlso, introduced the following validation rules for Job status when JobManagedBy is enabled:\n1. the count of ready pods is less or equal than active\n2. when transitioning to terminal phase for Job, the number of terminating pods is 0\n3. terminal Job conditions (Failed and Complete) should be preceded by adding the corresponding interim conditions: FailureTarget and SuccessCriteriaMet", - "markdown": "Delay setting terminal Job conditions until all pods are terminal.\n \n Additionally, the FailureTarget condition is also added to the Job object in the first Job\n status update as soon as the failure conditions are met (backoffLimit is exceeded, maxFailedIndexes, \n or activeDeadlineSeconds is exceeded).\n \n Similarly, the SuccessCriteriaMet condition is added in the first update as soon as the expected number\n of pod completions is reached.\n \n Also, introduced the following validation rules for Job status when JobManagedBy is enabled:\n 1. the count of ready pods is less or equal than active\n 2. when transitioning to terminal phase for Job, the number of terminating pods is 0\n 3. terminal Job conditions (Failed and Complete) should be preceded by adding the corresponding interim conditions: FailureTarget and SuccessCriteriaMet ([#125510](https://github.com/kubernetes/kubernetes/pull/125510), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/4368-support-managed-by-for-batch-jobs", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125510", - "pr_number": 125510, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125527": { - "commit": "8c508c5480844682eab8a4172526b6db3476fdc0", - "text": "Fixed a bug where Pods could be stuck in the unschedulable pod pool \nif they're rejected by PreEnqueue plugins that could change its result by a change in resources apart from Pods.\n\nDRA plugin is the only plugin that meets the criteria of the bug in in-tree, \nand hence if you have `DynamicResourceAllocation` feature flag enabled, \nyour DRA Pods could be affected by this bug.", - "markdown": "Fixed a bug where Pods could be stuck in the unschedulable pod pool \n if they're rejected by PreEnqueue plugins that could change its result by a change in resources apart from Pods.\n \n DRA plugin is the only plugin that meets the criteria of the bug in in-tree, \n and hence if you have `DynamicResourceAllocation` feature flag enabled, \n your DRA Pods could be affected by this bug. ([#125527](https://github.com/kubernetes/kubernetes/pull/125527), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125527", - "pr_number": 125527, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125528": { - "commit": "ef9965ebc66dafda37800bb04f5e284535bbba10", - "text": "Enabled feature gates for PortForward (kubectl port-forward) over WebSockets by default (beta).\n - Server-side feature gate: PortForwardWebsocket\n - Client-side (kubectl) feature gate: PORT_FORWARD_WEBSOCKETS environment variable\n - To turn off PortForward over WebSockets for kubectl, the environment variable feature gate must be explicitly set - PORT_FORWARD_WEBSOCKETS=false", - "markdown": "Enabled feature gates for PortForward (kubectl port-forward) over WebSockets by default (beta).\n - Server-side feature gate: PortForwardWebsocket\n - Client-side (kubectl) feature gate: PORT_FORWARD_WEBSOCKETS environment variable\n - To turn off PortForward over WebSockets for kubectl, the environment variable feature gate must be explicitly set - PORT_FORWARD_WEBSOCKETS=false ([#125528](https://github.com/kubernetes/kubernetes/pull/125528), [@seans3](https://github.com/seans3)) [SIG API Machinery and CLI]", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125528", - "pr_number": 125528, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cli" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125536": { - "commit": "8b727956214818a3a5846bca060426a13a578348", - "text": "Improved the documentation clarity for building Kubernetes in Docker Environment, making it more understandable for new users and contributors.", - "markdown": "Improved the documentation clarity for building Kubernetes in Docker Environment, making it more understandable for new users and contributors. ([#125536](https://github.com/kubernetes/kubernetes/pull/125536), [@this-is-yaash](https://github.com/this-is-yaash))", - "author": "this-is-yaash", - "author_url": "https://github.com/this-is-yaash", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125536", - "pr_number": 125536, - "kinds": [ - "cleanup" - ], - "sigs": [ - "release" - ], - "is_mapped": true - }, - "125540": { - "commit": "a3a49887ee73fa1108adac97a797dec02ccb00d4", - "text": "Fixed incorrect \"v1 Binding is deprecated in v1.6+\" warning in kube-scheduler log.", - "markdown": "Fixed incorrect \"v1 Binding is deprecated in v1.6+\" warning in kube-scheduler log. ([#125540](https://github.com/kubernetes/kubernetes/pull/125540), [@pohly](https://github.com/pohly)) [SIG API Machinery]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125540", - "pr_number": 125540, - "kinds": [ - "bug", - "api-change", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "125546": { - "commit": "95e16917f78310c16c81437c523d66abf716aeba", - "text": "Now the .status.ready field is tracked faster when active Pods are deleted, specifically when Job is failed, gets suspended or has too many active pods.", - "markdown": "Now the .status.ready field is tracked faster when active Pods are deleted, specifically when Job is failed, gets suspended or has too many active pods. ([#125546](https://github.com/kubernetes/kubernetes/pull/125546), [@dejanzele](https://github.com/dejanzele)) [SIG Apps]", - "author": "dejanzele", - "author_url": "https://github.com/dejanzele", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125546", - "pr_number": 125546, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "125549": { - "commit": "44b2c363f2ff05554d223ce7a883388ec32576c3", - "text": "kube-apiserver: ControllerRevision objects are now verified to contain valid JSON data in the `data` field.", - "markdown": "Kube-apiserver: ControllerRevision objects are now verified to contain valid JSON data in the `data` field. ([#125549](https://github.com/kubernetes/kubernetes/pull/125549), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125549", - "pr_number": 125549, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125552": { - "commit": "fc786fc6e8d37ad58e326093856e69d1aa8237cc", - "text": "kube-apiserver: timeouts configured for authorization webhooks in the --authorization-config file are now honored, and webhook timeouts are accurately reflected in webhook metrics with result=timeout", - "markdown": "Kube-apiserver: timeouts configured for authorization webhooks in the --authorization-config file are now honored, and webhook timeouts are accurately reflected in webhook metrics with result=timeout ([#125552](https://github.com/kubernetes/kubernetes/pull/125552), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "KEP-3221", - "url": "https://github.com/kubernetes/enhancements/issues/3221", - "type": "KEP" - } - ], - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125552", - "pr_number": 125552, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true - }, - "125560": { - "commit": "d236a9127fe36317bb35854d63b275d7efdb399e", - "text": "Added field management support to the fake client-go typed client.\nUse `fake.NewClientset()` instead of `fake.NewSimpleClientset()` to create a clientset with managed field support.", - "markdown": "Added field management support to the fake client-go typed client.\n Use `fake.NewClientset()` instead of `fake.NewSimpleClientset()` to create a clientset with managed field support. ([#125560](https://github.com/kubernetes/kubernetes/pull/125560), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, Instrumentation and Testing]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125560", - "pr_number": 125560, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125566": { - "commit": "7b359a2f9e1ff5cdc49cfcc4e350e9d796f502c0", - "text": "kubeadm: Added `--yes` flag to the list of allowed flags so that it can be mixed with `kubeadm upgrade apply --config`.", - "markdown": "Kubeadm: Added `--yes` flag to the list of allowed flags so that it can be mixed with `kubeadm upgrade apply --config`. ([#125566](https://github.com/kubernetes/kubernetes/pull/125566), [@xmudrii](https://github.com/xmudrii)) [SIG Cluster Lifecycle]", - "author": "xmudrii", - "author_url": "https://github.com/xmudrii", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125566", - "pr_number": 125566, - "areas": [ - "kubeadm" - ], - "kinds": [ - "regression" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "125571": { - "commit": "64ba17c605a41700f7f4c4e27dca3684b593b2b9", - "text": "kube-apiserver: Added Alpha features to allow API server authz to check the context of requests:\n- The `AuthorizeWithSelectors` feature gate enables including field and label selector information from requests in webhook authorization calls.\n- The `AuthorizeNodeWithSelectors` feature gate changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer.", - "markdown": "Kube-apiserver: Added Alpha features to allow API server authz to check the context of requests:\n - The `AuthorizeWithSelectors` feature gate enables including field and label selector information from requests in webhook authorization calls.\n - The `AuthorizeNodeWithSelectors` feature gate changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer. ([#125571](https://github.com/kubernetes/kubernetes/pull/125571), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4601", - "type": "KEP" - } - ], - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125571", - "pr_number": 125571, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "auth", - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125578": { - "commit": "59673f0f379dc06e52866777482659485b57f3b0", - "text": "When schedulingQueueHint is enabled, the scheduling queue doesn't update Pods being scheduled immediately.", - "markdown": "When schedulingQueueHint is enabled, the scheduling queue doesn't update Pods being scheduled immediately. ([#125578](https://github.com/kubernetes/kubernetes/pull/125578), [@nayihz](https://github.com/nayihz)) [SIG Scheduling]", - "author": "nayihz", - "author_url": "https://github.com/nayihz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125578", - "pr_number": 125578, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "125582": { - "commit": "921b69b133db6b0a919e9eb766ff185277cabc79", - "text": "kubeadm: added the ControlPlaneKubeletLocalMode feature gate. It can be used to tell kubeadm to use the local kube-apiserver endpoint for the kubelet when creating a cluster with \"kubeadm init\" or when joining control plane nodes with \"kubeadm join\". The \"kubeadm join\" workflow now includes two new experimental phases called \"control-plane-join-etcd\" and \"kubelet-wait-bootstrap\" which will be used when the feature gate is enabled. This phases will be marked as non-experimental when ControlPlaneKubeletLocalMode becomes GA. During \"kubeadm upgrade\" commands, if the feature gate is enabled, modify the \"/etc/kubernetes/kubelet.conf \" to use the local kube-apiserver endpoint. This upgrade mechanism will be removed once the feature gate goes GA and is hardcoded to true.", - "markdown": "Kubeadm: added the ControlPlaneKubeletLocalMode feature gate. It can be used to tell kubeadm to use the local kube-apiserver endpoint for the kubelet when creating a cluster with \"kubeadm init\" or when joining control plane nodes with \"kubeadm join\". The \"kubeadm join\" workflow now includes two new experimental phases called \"control-plane-join-etcd\" and \"kubelet-wait-bootstrap\" which will be used when the feature gate is enabled. This phases will be marked as non-experimental when ControlPlaneKubeletLocalMode becomes GA. During \"kubeadm upgrade\" commands, if the feature gate is enabled, modify the \"/etc/kubernetes/kubelet.conf \" to use the local kube-apiserver endpoint. This upgrade mechanism will be removed once the feature gate goes GA and is hardcoded to true. ([#125582](https://github.com/kubernetes/kubernetes/pull/125582), [@chrischdi](https://github.com/chrischdi)) [SIG Cluster Lifecycle]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/bcd6c468b88903b49d1784a9364516142a8e83f9/keps/sig-cluster-lifecycle/kubeadm/4471-cp-join-kubelet-local-apiserver/README.md", - "type": "KEP" - } - ], - "author": "chrischdi", - "author_url": "https://github.com/chrischdi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125582", - "pr_number": 125582, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "125584": { - "commit": "fd74ad8e6d61acd5ebf2f4dff68a55e2c1608b3f", - "text": "Fixed recursive LIST from watch cache returning object matching key.", - "markdown": "Fixed recursive LIST from watch cache returning object matching key. ([#125584](https://github.com/kubernetes/kubernetes/pull/125584), [@serathius](https://github.com/serathius)) [SIG API Machinery and Testing]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125584", - "pr_number": 125584, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125591": { - "commit": "d729af9446bf6621d3e916f44cbbc939fa0f9c6d", - "text": "Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled `WatchListClient` for kube-controller-manager (KCM).", - "markdown": "Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled `WatchListClient` for kube-controller-manager (KCM). ([#125591](https://github.com/kubernetes/kubernetes/pull/125591), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125591", - "pr_number": 125591, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125641": { - "commit": "437f6e92ece183f30fe88195d3c262b918b103ac", - "text": "Fixed sample-cli-plugin help text to be consistent and always use `kubectl ns`.", - "markdown": "Fixed sample-cli-plugin help text to be consistent and always use `kubectl ns`. ([#125641](https://github.com/kubernetes/kubernetes/pull/125641), [@nirs](https://github.com/nirs)) [SIG CLI]", - "author": "nirs", - "author_url": "https://github.com/nirs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125641", - "pr_number": 125641, - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "do_not_publish": true, - "is_mapped": true - }, - "125646": { - "commit": "991e7a8c15cbf959cd67bf92fd5e8adfd6875406", - "text": "In the client-side apply on create, defining the null value as \"delete the key associated with this value\".", - "markdown": "In the client-side apply on create, defining the null value as \"delete the key associated with this value\". ([#125646](https://github.com/kubernetes/kubernetes/pull/125646), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, CLI and Testing]", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125646", - "pr_number": 125646, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125650": { - "commit": "2b122bc5faf51f939fdf0893f768097833941ef9", - "text": "Added Extra.DisableAvailableConditionController for Generic Control Plane setup.", - "markdown": "Added Extra.DisableAvailableConditionController for Generic Control Plane setup. ([#125650](https://github.com/kubernetes/kubernetes/pull/125650), [@mjudeikis](https://github.com/mjudeikis)) [SIG API Machinery]", - "author": "mjudeikis", - "author_url": "https://github.com/mjudeikis", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125650", - "pr_number": 125650, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "125656": { - "commit": "27fa59a8afe9c1709bce53edc5f51e1f082435a2", - "text": "kubelet/stats: set INFO log level for stats not found in cadvisor memory cache error.", - "markdown": "Kubelet/stats: set INFO log level for stats not found in cadvisor memory cache error. ([#125656](https://github.com/kubernetes/kubernetes/pull/125656), [@gyuho](https://github.com/gyuho))", - "author": "gyuho", - "author_url": "https://github.com/gyuho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125656", - "pr_number": 125656, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "125659": { - "commit": "d95de06fa7dedf9230d013f27a0413a08b127354", - "text": "Added OCI VolumeSource Container Runtime Interface API fields and types.", - "markdown": "Added OCI VolumeSource Container Runtime Interface API fields and types. ([#125659](https://github.com/kubernetes/kubernetes/pull/125659), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/4639", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125659", - "pr_number": 125659, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "125660": { - "commit": "595927da21da34f5fed62e237e7a73d9635ac621", - "text": "Revised the Pod API with Alpha support for volumes derived from OCI artifacts. This feature is behind the `ImageVolume` feature gate.", - "markdown": "Revised the Pod API with Alpha support for volumes derived from OCI artifacts. This feature is behind the `ImageVolume` feature gate. ([#125660](https://github.com/kubernetes/kubernetes/pull/125660), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Apps and Node]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/4639", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125660", - "pr_number": 125660, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125661": { - "commit": "bb350f711174670443e23aa3616606870a471bd7", - "text": "Cleaned deprecated `context.StopCh` in favor of ctx.", - "markdown": "Cleaned deprecated `context.StopCh` in favor of ctx. ([#125661](https://github.com/kubernetes/kubernetes/pull/125661), [@mjudeikis](https://github.com/mjudeikis))", - "author": "mjudeikis", - "author_url": "https://github.com/mjudeikis", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125661", - "pr_number": 125661, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "125675": { - "commit": "11c689b94587792185de1758fe3bd507c6b5dc29", - "text": "Fixed endpoints status out-of-sync when the pod state changes rapidly", - "markdown": "Fixed endpoints status out-of-sync when the pod state changes rapidly ([#125675](https://github.com/kubernetes/kubernetes/pull/125675), [@tnqn](https://github.com/tnqn)) [SIG Apps, Network and Testing]", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125675", - "pr_number": 125675, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "network", - "testing" - ], - "duplicate": true - }, - "125751": { - "commit": "cdcaea687c6367d77be37b6244e29d5903845ca2", - "text": "`ElasticIndexedJob` is graduated to GA.", - "markdown": "`ElasticIndexedJob` is graduated to GA. ([#125751](https://github.com/kubernetes/kubernetes/pull/125751), [@ahg-g](https://github.com/ahg-g)) [SIG Apps and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3715-elastic-indexed-job", - "type": "KEP" - } - ], - "author": "ahg-g", - "author_url": "https://github.com/ahg-g", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125751", - "pr_number": 125751, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125758": { - "commit": "41f21823f5c41528cbbe7cd39827afe25fa28c1e", - "text": "kubeadm: improved the warning/error messages of `validateSupportedVersion` to include the checked resource kind name.", - "markdown": "Kubeadm: improved the warning/error messages of `validateSupportedVersion` to include the checked resource kind name. ([#125758](https://github.com/kubernetes/kubernetes/pull/125758), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125758", - "pr_number": 125758, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "125767": { - "commit": "b977096f5a23916bf0ff0af4a6ee6932b37606a9", - "text": "For statically provisioned PVs, if its volume source is CSI type or it has migrated annotation, when it's deleted, the PersisentVolume controller won't changes its phase to the Failed state. \n\nWith this patch, the external provisioner can remove the finalizer in next reconcile loop. Unfortunately if the provious existing pv has the Failed state, this patch won't take effort. It requires users to remove finalizer.", - "markdown": "For statically provisioned PVs, if its volume source is CSI type or it has migrated annotation, when it's deleted, the PersisentVolume controller won't changes its phase to the Failed state. \n \n With this patch, the external provisioner can remove the finalizer in next reconcile loop. Unfortunately if the provious existing pv has the Failed state, this patch won't take effort. It requires users to remove finalizer. ([#125767](https://github.com/kubernetes/kubernetes/pull/125767), [@carlory](https://github.com/carlory)) [SIG Apps and Storage]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125767", - "pr_number": 125767, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "storage" - ], - "duplicate": true, - "is_mapped": true - }, - "125776": { - "commit": "19d9e4fa7f990fc96b736e8a4fec923c235e7b9b", - "text": "kubelet now hard rejects pods with AppArmor if the node does not have AppArmor.", - "markdown": "Kubelet now hard rejects pods with AppArmor if the node does not have AppArmor. ([#125776](https://github.com/kubernetes/kubernetes/pull/125776), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Node]", - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125776", - "pr_number": 125776, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "125778": { - "commit": "0344f29e839cbd49cf743af27719ad7f72608891", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#125778](https://github.com/kubernetes/kubernetes/pull/125778), [@haitch](https://github.com/haitch)) [SIG API Machinery and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4330", - "type": "KEP" - } - ], - "author": "haitch", - "author_url": "https://github.com/haitch", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125778", - "pr_number": 125778, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "scheduling" - ], - "feature": true, - "duplicate": true, - "do_not_publish": true - }, - "125779": { - "commit": "5e331569e4cd461baf19b9f2cc493af1f7f7a73f", - "text": "kubeadm: fixed a bug where the path of the manifest can not be specified when `kubeadm upgrade diff` specified a config file, and the `--api-server-manifest`, `--controller-manager-manifest` and `--scheduler-manifest` flags of `kubeadm upgrade diff` are marked as deprecated and will be removed in a future release.", - "markdown": "Kubeadm: fixed a bug where the path of the manifest can not be specified when `kubeadm upgrade diff` specified a config file, and the `--api-server-manifest`, `--controller-manager-manifest` and `--scheduler-manifest` flags of `kubeadm upgrade diff` are marked as deprecated and will be removed in a future release. ([#125779](https://github.com/kubernetes/kubernetes/pull/125779), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125779", - "pr_number": 125779, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "125782": { - "commit": "25935965c5774fadf3b9a06b811422503053c3dd", - "text": "Fixed the documentation for the default value of the `procMount` entry in `securityContext` within a Pod.\nThe documentation was previously using the name of the internal variable `DefaultProcMount`, rather than the actual value, \"Default\".", - "markdown": "Fixed the documentation for the default value of the `procMount` entry in `securityContext` within a Pod.\n The documentation was previously using the name of the internal variable `DefaultProcMount`, rather than the actual value, \"Default\". ([#125782](https://github.com/kubernetes/kubernetes/pull/125782), [@aborrero](https://github.com/aborrero)) [SIG Apps and Node]", - "author": "aborrero", - "author_url": "https://github.com/aborrero", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125782", - "pr_number": 125782, - "areas": [ - "code-generation" - ], - "kinds": [ - "documentation", - "api-change" - ], - "sigs": [ - "apps", - "node" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125787": { - "commit": "a9c156baefbd201f1ae6bfc8158e536dec7f99eb", - "text": "kube-apiserver: the `--enable-logs-handler` flag and log-serving functionality which was already deprecated is now switched off by default and scheduled to be removed in v1.33.", - "markdown": "Kube-apiserver: the `--enable-logs-handler` flag and log-serving functionality which was already deprecated is now switched off by default and scheduled to be removed in v1.33. ([#125787](https://github.com/kubernetes/kubernetes/pull/125787), [@dims](https://github.com/dims)) [SIG API Machinery, Network and Testing]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125787", - "pr_number": 125787, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "network", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125797": { - "commit": "d902351c991a68fa76de9935a485afeb1f780c11", - "text": "kubeadm: the `--feature-gates` flag is deprecated and no-op for `kubeadm upgrade apply/plan`, and it will be removed in a future release. The upgrade workflow is not designed to reconfigure the cluster. Please edit the 'featureGates' field of ClusterConfiguration which is defined in the kube-system/kubeadm-config ConfigMap instead.", - "markdown": "Kubeadm: the `--feature-gates` flag is deprecated and no-op for `kubeadm upgrade apply/plan`, and it will be removed in a future release. The upgrade workflow is not designed to reconfigure the cluster. Please edit the 'featureGates' field of ClusterConfiguration which is defined in the kube-system/kubeadm-config ConfigMap instead. ([#125797](https://github.com/kubernetes/kubernetes/pull/125797), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125797", - "pr_number": 125797, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "125813": { - "commit": "fa7fcde5a4b1be2162b85191dcdfa646facaf95c", - "text": "Enforced kubelet to request serving certificates only once it has at least one IP address in the `.status.addresses` of its associated Node object. This avoids requesting DNS-only serving certificates before externally set addresses are in place. Until 1.33, the previous behavior can be opted back into by setting the deprecated `AllowDNSOnlyNodeCSR` feature gate to true in the kubelet.", - "markdown": "Enforced kubelet to request serving certificates only once it has at least one IP address in the `.status.addresses` of its associated Node object. This avoids requesting DNS-only serving certificates before externally set addresses are in place. Until 1.33, the previous behavior can be opted back into by setting the deprecated `AllowDNSOnlyNodeCSR` feature gate to true in the kubelet. ([#125813](https://github.com/kubernetes/kubernetes/pull/125813), [@aojea](https://github.com/aojea)) [SIG Auth, Cloud Provider and Node]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125813", - "pr_number": 125813, - "areas": [ - "kubelet", - "cloudprovider" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "auth", - "cloud-provider", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125828": { - "commit": "e785ef8d21a01f6a344096f3dbac3b0cc65101e5", - "text": "Promoted CRI communication of the cgroup driver mechanism to beta. The `KubeletCgroupDriverFromCRI` feature gate is now in beta and enabled by default. This allows the kubelet to query the container runtime using CRI to determine the mechanism for cgroup management. If the container runtime doesn't support this, the kubelet falls back to using the configuration file (you can also use the deprecated `--cgroup-driver` command line argument).", - "markdown": "Promoted CRI communication of the cgroup driver mechanism to beta. The `KubeletCgroupDriverFromCRI` feature gate is now in beta and enabled by default. This allows the kubelet to query the container runtime using CRI to determine the mechanism for cgroup management. If the container runtime doesn't support this, the kubelet falls back to using the configuration file (you can also use the deprecated `--cgroup-driver` command line argument). ([#125828](https://github.com/kubernetes/kubernetes/pull/125828), [@haircommander](https://github.com/haircommander)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/4033-group-driver-detection-over-cri/README.md", - "type": "KEP" - } - ], - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125828", - "pr_number": 125828, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "125838": { - "commit": "0a59545f4d2a7f27bfa8143a65c76f1eb933f794", - "text": "The Service trafficDistribution field has graduated to beta and is now available for configuration by default, without the need to enable any feature flag. Services that do not have the field configured will continue to operate with their existing behavior. Refer to the documentation https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution for more details.", - "markdown": "The Service trafficDistribution field has graduated to beta and is now available for configuration by default, without the need to enable any feature flag. Services that do not have the field configured will continue to operate with their existing behavior. Refer to the documentation https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution for more details. ([#125838](https://github.com/kubernetes/kubernetes/pull/125838), [@gauravkghildiyal](https://github.com/gauravkghildiyal)) [SIG Network and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4444-service-traffic-distribution", - "type": "KEP" - } - ], - "author": "gauravkghildiyal", - "author_url": "https://github.com/gauravkghildiyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125838", - "pr_number": 125838, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125842": { - "commit": "8ebfb8c2c2dcc5089390eeb383520e8310bf7423", - "text": "Drop support for the deprecated and unsupported kubectl run flags:\n- filename\n- force\n- grace-period\n- kustomize\n- recursive\n- timeout\n- wait\n\nDrop support for the deprecated --delete-local-data from kubectl drain, users should use --delete-emptydir-data, instead.", - "markdown": "Drop support for the deprecated and unsupported kubectl run flags:\n - filename\n - force\n - grace-period\n - kustomize\n - recursive\n - timeout\n - wait\n \n Drop support for the deprecated --delete-local-data from kubectl drain, users should use --delete-emptydir-data, instead. ([#125842](https://github.com/kubernetes/kubernetes/pull/125842), [@soltysh](https://github.com/soltysh)) [SIG CLI]", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125842", - "pr_number": 125842, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "125846": { - "commit": "30ffa521e69197610dfcd8e0c0b1d1db73ccf071", - "text": "API Priority and Fairness feature was promoted to GA in 1.29, the corresponding \nfeature gate 'APIPriorityAndFairness' has been removed in 1.31.", - "markdown": "API Priority and Fairness feature was promoted to GA in 1.29, the corresponding \n feature gate 'APIPriorityAndFairness' has been removed in 1.31. ([#125846](https://github.com/kubernetes/kubernetes/pull/125846), [@tkashem](https://github.com/tkashem)) [SIG API Machinery]", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125846", - "pr_number": 125846, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "125850": { - "commit": "c87c06d7ffb932395f963bc78f03f9d2f0e57698", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#125850](https://github.com/kubernetes/kubernetes/pull/125850), [@dims](https://github.com/dims)) [SIG API Machinery, Auth, Storage and Testing]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125850", - "pr_number": 125850, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "auth", - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "125867": { - "commit": "48eef1fc4ff789e76cf4132ae599227292037642", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#125867](https://github.com/kubernetes/kubernetes/pull/125867), [@zhifei92](https://github.com/zhifei92)) [SIG Node and Testing]", - "author": "zhifei92", - "author_url": "https://github.com/zhifei92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125867", - "pr_number": 125867, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "125868": { - "commit": "37f733a657ef71d66177d00f9b7d47ec507dedd3", - "text": "Added --for=create option to kubectl wait", - "markdown": "Added --for=create option to kubectl wait ([#125868](https://github.com/kubernetes/kubernetes/pull/125868), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing]", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125868", - "pr_number": 125868, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true - }, - "125894": { - "commit": "6698fb7d2436df14b8c881f04b15d111878e592b", - "text": "Kubernetes is now built with go 1.22.5.", - "markdown": "Kubernetes is now built with go 1.22.5. ([#125894](https://github.com/kubernetes/kubernetes/pull/125894), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125894", - "pr_number": 125894, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125929": { - "commit": "01eb9f47541156a38e4b28759977c06f07f08012", - "text": "Implemented `event_handling_duration_seconds` metric, which is the time the scheduler takes to handle each kind of events.", - "markdown": "Implemented `event_handling_duration_seconds` metric, which is the time the scheduler takes to handle each kind of events. ([#125929](https://github.com/kubernetes/kubernetes/pull/125929), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125929", - "pr_number": 125929, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "125935": { - "commit": "fa4b8f32ac8503b2d736d29a9cf52cbe316b552b", - "text": "Fixed a bug that init containers with `Always` restartPolicy may not terminate gracefully if the pod hasn't initialized yet.", - "markdown": "Fixed a bug that init containers with `Always` restartPolicy may not terminate gracefully if the pod hasn't initialized yet. ([#125935](https://github.com/kubernetes/kubernetes/pull/125935), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing]", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125935", - "pr_number": 125935, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "125941": { - "commit": "ebdca538058d2265cb8dc528d0145faea0a6a7cf", - "text": "$ k logs wardle-server-65dbc6f5d-9pwv4 -n wardle\nDefaulted container \"wardle-server\" out of: wardle-server, etcd\nI0707 11:16:37.994750 1 registry.go:379] setting wardle:feature gate emulation version to 1.2\nI0707 11:16:37.997302 1 registry.go:379] setting kube:feature gate emulation version to 1.32\nI0707 11:16:37.997370 1 feature_gate.go:522] set feature gate emulationVersion to 1.32\nI0707 11:16:37.998443 1 plugins.go:83] \"Registered admission plugin\" plugin=\"BanFlunder\"\nE0707 11:16:38.001481 1 run.go:72] \"command failed\" err=\"emulation version 1.32 is not between [1.30, 1.31.0]\"", - "markdown": "$ k logs wardle-server-65dbc6f5d-9pwv4 -n wardle\n Defaulted container \"wardle-server\" out of: wardle-server, etcd\n I0707 11:16:37.994750 1 registry.go:379] setting wardle:feature gate emulation version to 1.2\n I0707 11:16:37.997302 1 registry.go:379] setting kube:feature gate emulation version to 1.32\n I0707 11:16:37.997370 1 feature_gate.go:522] set feature gate emulationVersion to 1.32\n I0707 11:16:37.998443 1 plugins.go:83] \"Registered admission plugin\" plugin=\"BanFlunder\"\n E0707 11:16:38.001481 1 run.go:72] \"command failed\" err=\"emulation version 1.32 is not between [1.30, 1.31.0]\" ([#125941](https://github.com/kubernetes/kubernetes/pull/125941), [@fxierh](https://github.com/fxierh)) [SIG API Machinery, Cluster Lifecycle and Testing]", - "author": "fxierh", - "author_url": "https://github.com/fxierh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125941", - "pr_number": 125941, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "cluster-lifecycle", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "125961": { - "commit": "ae1caa40a29c5476efe51e8ce2ce33812e1ce8ce", - "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", - "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#125961](https://github.com/kubernetes/kubernetes/pull/125961), [@Jerry-yz](https://github.com/Jerry-yz)) [SIG Scheduling]", - "author": "Jerry-yz", - "author_url": "https://github.com/Jerry-yz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125961", - "pr_number": 125961, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "125970": { - "commit": "bb089b93746f364bdd8550f11868f460a43e3b81", - "text": "Added `/sys/devices/virtual/powercap` to default masked paths. It avoids the potential security risk that the ability to read these files may offer a power-based sidechannel attack against any workloads running on the same kernel.", - "markdown": "Added `/sys/devices/virtual/powercap` to default masked paths. It avoids the potential security risk that the ability to read these files may offer a power-based sidechannel attack against any workloads running on the same kernel. ([#125970](https://github.com/kubernetes/kubernetes/pull/125970), [@carlory](https://github.com/carlory)) [SIG Node]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125970", - "pr_number": 125970, - "areas": [ - "security" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "126012": { - "commit": "60862c98a4c0bcbc351b076714108d364883b5f7", - "text": "Stopped using wmic on Windows to get uuid in the kubelet.", - "markdown": "Stopped using wmic on Windows to get uuid in the kubelet. ([#126012](https://github.com/kubernetes/kubernetes/pull/126012), [@marosset](https://github.com/marosset)) [SIG Node and Windows]", - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126012", - "pr_number": 126012, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "windows" - ], - "duplicate": true, - "is_mapped": true - }, - "126638": { - "commit": "099a88370d017dacf16e67306ebcdec8394fae83", - "text": "Fixed kubectl wait --for=jsonpath lowercasing in the condition part of the argument.", - "markdown": "Fixed kubectl wait --for=jsonpath lowercasing in the condition part of the argument. ([#126638](https://github.com/kubernetes/kubernetes/pull/126638)), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing]", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126638", - "pr_number": 126638, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "cli", - "testing" - ] - }, - "126014": { - "commit": "a4f9910c51ffd574736b548ac1c5771afcf928ae", - "text": "Promoted `LocalStorageCapacityIsolation` to beta; the behaviour is enabled by default. Within the kubelet, storage capacity isolation is active if the feature gate is enabled and the specific Pod is using a user namespace.", - "markdown": "Promoted `LocalStorageCapacityIsolation` to beta; the behaviour is enabled by default. Within the kubelet, storage capacity isolation is active if the feature gate is enabled and the specific Pod is using a user namespace. ([#126014](https://github.com/kubernetes/kubernetes/pull/126014), [@PannagaRao](https://github.com/PannagaRao)) [SIG Apps, Autoscaling, Node, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1029-ephemeral-storage-quotas", - "type": "KEP" - } - ], - "author": "PannagaRao", - "author_url": "https://github.com/PannagaRao", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126014", - "pr_number": 126014, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "apps", - "autoscaling", - "node", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "126031": { - "commit": "fbdfb9d8d90ac4d0a54f87c4944085d6727e25f4", - "text": "Introduced a new boolean kubelet flag `--fail-cgroupv1`. Running kubelet using cgroup v1 is in a maintenance mode: no new features will be added with the limited support for bug fixes. Please consider migrating to cgroup v2. See [KEP-4569: Moving cgroup v1 support into maintenance mode](https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support) for more info.", - "markdown": "Introduced a new boolean kubelet flag `--fail-cgroupv1`. Running kubelet using cgroup v1 is in a maintenance mode: no new features will be added with the limited support for bug fixes. Please consider migrating to cgroup v2. See [KEP-4569: Moving cgroup v1 support into maintenance mode](https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support) for more info. ([#126031](https://github.com/kubernetes/kubernetes/pull/126031), [@harche](https://github.com/harche)) [SIG API Machinery and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support", - "type": "KEP" - } - ], - "author": "harche", - "author_url": "https://github.com/harche", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126031", - "pr_number": 126031, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "126034": { - "commit": "f36a821de828372a5f99528d21f309f75e17d043", - "text": "Add UserNamespaces field to NodeRuntimeHandlerFeatures", - "markdown": "Add UserNamespaces field to NodeRuntimeHandlerFeatures ([#126034](https://github.com/kubernetes/kubernetes/pull/126034), [@sohankunkerkar](https://github.com/sohankunkerkar)) [SIG API Machinery, Apps and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4265", - "type": "KEP" - } - ], - "author": "sohankunkerkar", - "author_url": "https://github.com/sohankunkerkar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126034", - "pr_number": 126034, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "126046": { - "commit": "d11e86027dcd1ed1b8a917cedec9cd084d6cc3e0", - "text": "Use omitempty for optional Job Pod Failure Policy fields.", - "markdown": "Use omitempty for optional Job Pod Failure Policy fields. ([#126046](https://github.com/kubernetes/kubernetes/pull/126046), [@mimowo](https://github.com/mimowo)) [SIG Apps]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126046", - "pr_number": 126046, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "126047": { - "commit": "67c7e770441ab2ac2c7af28cb719d87aacad9f0d", - "text": "Updated kubernetes to build with Go 1.23rc2.", - "markdown": "Updated kubernetes to build with Go 1.23rc2. ([#126047](https://github.com/kubernetes/kubernetes/pull/126047), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126047", - "pr_number": 126047, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "126057": { - "commit": "a87612b6676723b34a5b3d2d80ab4e04552221ae", - "text": "Fixed a 1.30.0 regression in openapi descriptions of `PodIP.IP` and `HostIP.IP` fields to mark the fields used as keys in those lists as required.", - "markdown": "Fixed a 1.30.0 regression in openapi descriptions of `PodIP.IP` and `HostIP.IP` fields to mark the fields used as keys in those lists as required. ([#126057](https://github.com/kubernetes/kubernetes/pull/126057), [@thockin](https://github.com/thockin)) [SIG API Machinery]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126057", - "pr_number": 126057, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "126067": { - "commit": "1854839ff08eba7434ebfa98ab84de2d3a62d4ce", - "text": "Graduated the Job `successPolicy` field to beta.\n\nThe new reason label, \"SuccessPolicy\" and \"CompletionsReached\" are added to the \"jobs_finished_total\" metric.\nAdditionally, if you enable the `JobSuccessPolicy` feature gate, the Job gets \"CompletionsReached\" reason for the \"SuccessCriteriaMet\" and \"Complete\" condition type\nwhen the number of succeeded Job Pods (`.status.succeeded`) reached the desired completions (`.spec.completions`).", - "markdown": "Graduated the Job `successPolicy` field to beta.\n \n The new reason label, \"SuccessPolicy\" and \"CompletionsReached\" are added to the \"jobs_finished_total\" metric.\n Additionally, if you enable the `JobSuccessPolicy` feature gate, the Job gets \"CompletionsReached\" reason for the \"SuccessCriteriaMet\" and \"Complete\" condition type\n when the number of succeeded Job Pods (`.status.succeeded`) reached the desired completions (`.spec.completions`). ([#126067](https://github.com/kubernetes/kubernetes/pull/126067), [@tenzen-y](https://github.com/tenzen-y)) [SIG API Machinery, Apps and Testing]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3998-job-success-completion-policy", - "type": "KEP" - } - ], - "author": "tenzen-y", - "author_url": "https://github.com/tenzen-y", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126067", - "pr_number": 126067, - "areas": [ - "test", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "126072": { - "commit": "8aff9d31929deed906856fbfaae5744c1b9ba868", - "text": "Made kube-proxy Windows service control manager integration (`--windows-service`) configurable in v1alpha1 component configuration via `windowsRunAsService` field.", - "markdown": "Made kube-proxy Windows service control manager integration (`--windows-service`) configurable in v1alpha1 component configuration via `windowsRunAsService` field. ([#126072](https://github.com/kubernetes/kubernetes/pull/126072), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Scalability]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126072", - "pr_number": 126072, - "areas": [ - "kube-proxy", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "network", - "scalability" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "126073": { - "commit": "d0545c8eb4ca5e8bb7704b5f51197b5082964e85", - "text": "Fixed fake clientset ApplyScale subresource from `status` to `scale`.", - "markdown": "Fixed fake clientset ApplyScale subresource from `status` to `scale`. ([#126073](https://github.com/kubernetes/kubernetes/pull/126073), [@a7i](https://github.com/a7i))", - "author": "a7i", - "author_url": "https://github.com/a7i", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126073", - "pr_number": 126073, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "126107": { - "commit": "892acaa6a7e8d6d0b919e4929d362909eefcaaf3", - "text": "Fixed a bug in storage-version-migrator-controller that would cause migration attempts to fail if resources were deleted when the migration was in progress.", - "markdown": "Fixed a bug in storage-version-migrator-controller that would cause migration attempts to fail if resources were deleted when the migration was in progress. ([#126107](https://github.com/kubernetes/kubernetes/pull/126107), [@enj](https://github.com/enj)) [SIG API Machinery, Apps, Auth and Testing]", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126107", - "pr_number": 126107, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "flake" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "126108": { - "commit": "107f6214626c2c6c42aa11141e4572c02e4daff7", - "text": "Reduced state change noise when volume expansion fails. Also mark certain failures as infeasible.\n\nACTION REQUIRED: If you are using the `RecoverVolumeExpansionFailure` alpha feature gate\nthen after upgrading to this release, you need to update some objects.\nFor any existing PersistentVolumeClaims with `status.allocatedResourceStatus` set to either\n\"ControllerResizeFailed\" or \"NodeResizeFailed\", clear the `status.allocatedResourceStatus`.", - "markdown": "Reduced state change noise when volume expansion fails. Also mark certain failures as infeasible.\n \n ACTION REQUIRED: If you are using the `RecoverVolumeExpansionFailure` alpha feature gate\n then after upgrading to this release, you need to update some objects.\n For any existing PersistentVolumeClaims with `status.allocatedResourceStatus` set to either\n \"ControllerResizeFailed\" or \"NodeResizeFailed\", clear the `status.allocatedResourceStatus`. ([#126108](https://github.com/kubernetes/kubernetes/pull/126108), [@gnufied](https://github.com/gnufied)) [SIG Apps, Auth, Node, Storage and Testing]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126108", - "pr_number": 126108, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "apps", - "auth", - "node", - "storage", - "testing" - ], - "duplicate": true, - "action_required": true, - "is_mapped": true - }, - "126113": { - "commit": "24fbb13eafec665e6f4b64961930774babd8b6d1", - "text": "ACTION REQUIRED for custom scheduler plugin developers:\n`EventsToRegister` in the `EnqueueExtensions` interface gets `ctx` in the parameters and `error` in the return values.\nPlease change your plugins' implementation accordingly.", - "markdown": "ACTION REQUIRED for custom scheduler plugin developers:\n `EventsToRegister` in the `EnqueueExtensions` interface gets `ctx` in the parameters and `error` in the return values.\n Please change your plugins' implementation accordingly. ([#126113](https://github.com/kubernetes/kubernetes/pull/126113), [@googs1025](https://github.com/googs1025)) [SIG Node, Scheduling, Storage and Testing]", - "author": "googs1025", - "author_url": "https://github.com/googs1025", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126113", - "pr_number": 126113, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "node", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "126124": { - "commit": "acaec0c23a7e5f76b98c519d91cdf66cbe4c0263", - "text": "The ValidatingAdmissionPolicy metrics have been redone to count and time all validations, including failures and admissions.", - "markdown": "The ValidatingAdmissionPolicy metrics have been redone to count and time all validations, including failures and admissions. ([#126124](https://github.com/kubernetes/kubernetes/pull/126124), [@cici37](https://github.com/cici37)) [SIG API Machinery and Instrumentation]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126124", - "pr_number": 126124, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true - }, - "126125": { - "commit": "fc03f3e74c3d891e62b347c518b3197b62e9532c", - "text": "Allowed calling Stop multiple times on RetryWatcher without panicking.", - "markdown": "Allowed calling Stop multiple times on RetryWatcher without panicking. ([#126125](https://github.com/kubernetes/kubernetes/pull/126125), [@mprahl](https://github.com/mprahl))", - "author": "mprahl", - "author_url": "https://github.com/mprahl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126125", - "pr_number": 126125, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "126136": { - "commit": "8f265b63050739937cd939c05a98def37002f1e8", - "text": "Removed feature gate `CustomResourceValidationExpressions`.", - "markdown": "Removed feature gate `CustomResourceValidationExpressions`. ([#126136](https://github.com/kubernetes/kubernetes/pull/126136), [@cici37](https://github.com/cici37)) [SIG API Machinery, Cloud Provider and Testing]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126136", - "pr_number": 126136, - "areas": [ - "test", - "apiserver", - "provider/gcp", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "126139": { - "commit": "c3bcd4fff06566886f36d6e59536b3d00a69a637", - "text": "Reverted a [change](https://github.com/kubernetes/kubernetes/pull/123513) where `ConsistentListFromCache` was moved to beta and enabled by default.", - "markdown": "Reverted a [change](https://github.com/kubernetes/kubernetes/pull/123513) where `ConsistentListFromCache` was moved to beta and enabled by default. ([#126139](https://github.com/kubernetes/kubernetes/pull/126139), [@enj](https://github.com/enj))", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126139", - "pr_number": 126139, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "api-change", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "126145": { - "commit": "c2fdeca4ab81336daf20c91b810c9685918c3d58", - "text": "Promoted feature-gate `VolumeAttributesClass` to beta (disabled by default). Users need to enable the feature gate and the `storage.k8s.io/v1beta1` API group to use this feature.\nPromoted the VolumeAttributesClass API to beta.", - "markdown": "Promoted feature-gate `VolumeAttributesClass` to beta (disabled by default). Users need to enable the feature gate and the `storage.k8s.io/v1beta1` API group to use this feature.\n Promoted the VolumeAttributesClass API to beta. ([#126145](https://github.com/kubernetes/kubernetes/pull/126145), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, CLI, Etcd, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3751", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126145", - "pr_number": 126145, - "areas": [ - "test", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "cli", - "etcd", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "126163": { - "commit": "c01bc31fa2fb59c127c4c10215548033cd2e7a99", - "text": "kube-apiserver: when the Alpha `UserNamespacesPodSecurityStandards` feature gate is enabled, Pod Security Admission enforcement of the baseline policy now allows `procMount: Unmasked` for user namespace pods that set `hostUsers: false`.", - "markdown": "Kube-apiserver: when the Alpha `UserNamespacesPodSecurityStandards` feature gate is enabled, Pod Security Admission enforcement of the baseline policy now allows `procMount: Unmasked` for user namespace pods that set `hostUsers: false`. ([#126163](https://github.com/kubernetes/kubernetes/pull/126163), [@haircommander](https://github.com/haircommander))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4265", - "type": "KEP" - } - ], - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126163", - "pr_number": 126163, - "kinds": [ - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true, - "is_mapped": true - }, - "126165": { - "commit": "8e175c688e37e4baf70c4015346b8b5615a84328", - "text": "Starting in 1.31, `container_engine_t` was added to the list of allowed SELinux types in the baseline Pod Security Standard.", - "markdown": "Starting in 1.31, `container_engine_t` was added to the list of allowed SELinux types in the baseline Pod Security Standard. ([#126165](https://github.com/kubernetes/kubernetes/pull/126165), [@haircommander](https://github.com/haircommander))", - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126165", - "pr_number": 126165, - "kinds": [ - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true, - "is_mapped": true - }, - "126166": { - "commit": "16c2ad5b842f23eda3674d3cd908de359554d5dc", - "text": "Added `storage_class` and `volume_attributes_class` labels to `pv_collector_bound_pvc_count` and `pv_collector_unbound_pvc_count` metrics.", - "markdown": "Added `storage_class` and `volume_attributes_class` labels to `pv_collector_bound_pvc_count` and `pv_collector_unbound_pvc_count` metrics. ([#126166](https://github.com/kubernetes/kubernetes/pull/126166), [@AndrewSirenko](https://github.com/AndrewSirenko)) [SIG Apps, Instrumentation, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3751", - "type": "KEP" - } - ], - "author": "AndrewSirenko", - "author_url": "https://github.com/AndrewSirenko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126166", - "pr_number": 126166, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "instrumentation", - "storage", - "testing" - ], - "feature": true, - "duplicate": true - }, - "126167": { - "commit": "5420b2fe9a84af57cc24793c8f8ac8821b65f42f", - "text": "kube-apiserver: fixed a potential crash serving CustomResourceDefinitions that combine an invalid schema and CEL validation rules.", - "markdown": "Kube-apiserver: fixed a potential crash serving CustomResourceDefinitions that combine an invalid schema and CEL validation rules. ([#126167](https://github.com/kubernetes/kubernetes/pull/126167), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126167", - "pr_number": 126167, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "126174": { - "commit": "fa15f12fb509875a8466242d8f5fe643217ec502", - "text": "mount-utils: treated syscall.ENODEV as corrupted mount.", - "markdown": "Mount-utils: treated syscall.ENODEV as corrupted mount. ([#126174](https://github.com/kubernetes/kubernetes/pull/126174), [@dobsonj](https://github.com/dobsonj))", - "author": "dobsonj", - "author_url": "https://github.com/dobsonj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126174", - "pr_number": 126174, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "126188": { - "commit": "a48a92c72ec7d4e2a8da396309abff9360faae75", - "text": "To enhance usability and developer experience, CRD validation rules now support direct use of (CEL) reserved keywords as field names in object validation expressions for existing expressions in storage, will fully support runtime in next release for compatibility concern.", - "markdown": "To enhance usability and developer experience, CRD validation rules now support direct use of (CEL) reserved keywords as field names in object validation expressions for existing expressions in storage, will fully support runtime in next release for compatibility concern. ([#126188](https://github.com/kubernetes/kubernetes/pull/126188), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing]", - "documentation": [ - { - "description": "[CRD validation rule doc](", - "url": "https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#validation-rules)", - "type": "official" - }, - { - "description": "[CEL reserved keyword](", - "url": "https://github.com/google/cel-spec/blob/master/doc/langdef.md#syntax)", - "type": "external" - } - ], - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126188", - "pr_number": 126188, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "126191": { - "commit": "dda657b5982e8f9102b8df5931344262b0793163", - "text": "Reverted \"Graduated the `WatchList` feature gate to beta for kube-apiserver and enables `WatchListClient` for kube-controller-manager (KCM)\".", - "markdown": "Reverted \"Graduated the `WatchList` feature gate to beta for kube-apiserver and enables `WatchListClient` for kube-controller-manager (KCM)\". ([#126191](https://github.com/kubernetes/kubernetes/pull/126191), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126191", - "pr_number": 126191, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "126205": { - "commit": "fe24ebfe3308750531ea0d7f8be83804bc53318d", - "text": "The `KubeletSeparateDiskGC` feature gate is now beta. This split image filesystem feature enables kubelet to perform garbage collection of images (read-only layers) and/or containers (writeable layers) deployed on separate filesystems. gate is now beta.", - "markdown": "The `KubeletSeparateDiskGC` feature gate is now beta. This split image filesystem feature enables kubelet to perform garbage collection of images (read-only layers) and/or containers (writeable layers) deployed on separate filesystems. gate is now beta. ([#126205](https://github.com/kubernetes/kubernetes/pull/126205), [@kwilczynski](https://github.com/kwilczynski))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4191", - "type": "external" - } - ], - "author": "kwilczynski", - "author_url": "https://github.com/kwilczynski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126205", - "pr_number": 126205, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "126207": { - "commit": "77e12aeca92c3c0fe2c1fc6ce7f0e17ba796c6fd", - "text": "Changed how the API server handles updates to `.spec.defaultBackend` of Ingress objects.\nServer-side apply now considers `.spec.defaultBackend` to be an atomic struct. This means that any field-owner who sets values in that struct (they are mutually exclusive) owns the whole struct. For almost all users this change has no impact; for controllers that want to change the default backend port from number to name (or vice-versa), this makes it easier.", - "markdown": "Changed how the API server handles updates to `.spec.defaultBackend` of Ingress objects.\n Server-side apply now considers `.spec.defaultBackend` to be an atomic struct. This means that any field-owner who sets values in that struct (they are mutually exclusive) owns the whole struct. For almost all users this change has no impact; for controllers that want to change the default backend port from number to name (or vice-versa), this makes it easier. ([#126207](https://github.com/kubernetes/kubernetes/pull/126207), [@thockin](https://github.com/thockin)) [SIG API Machinery]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126207", - "pr_number": 126207, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "126224": { - "commit": "b14769f2afe5ee1318d091ceb95b42012236762b", - "text": "kubeadm: fixed a bug on 'kubeadm join' where using patches with a kubeletconfiguration target was not respected when performing the local kubelet healthz check.", - "markdown": "Kubeadm: fixed a bug on 'kubeadm join' where using patches with a kubeletconfiguration target was not respected when performing the local kubelet healthz check. ([#126224](https://github.com/kubernetes/kubernetes/pull/126224), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126224", - "pr_number": 126224, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "126227": { - "commit": "43691598dab3c91717807ea9e4ab5ac8d27c4ea0", - "text": "Implemented `queueing_hint_execution_duration_seconds` metric, which is the time the QueueingHint function takes.", - "markdown": "Implemented `queueing_hint_execution_duration_seconds` metric, which is the time the QueueingHint function takes. ([#126227](https://github.com/kubernetes/kubernetes/pull/126227), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126227", - "pr_number": 126227, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "126237": { - "commit": "887def08b66c31b2f8bc260ea74d6c94671d474e", - "text": "Promoted the metrics for both ValidatingAdmissionPolicy (VAP) and CustomResourceDefinition (CRD) validation rules to beta.", - "markdown": "Promoted the metrics for both ValidatingAdmissionPolicy (VAP) and CustomResourceDefinition (CRD) validation rules to beta. ([#126237](https://github.com/kubernetes/kubernetes/pull/126237), [@cici37](https://github.com/cici37)) [SIG API Machinery and Instrumentation]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126237", - "pr_number": 126237, - "areas": [ - "apiserver", - "stable-metrics" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "126243": { - "commit": "5af1710d90d2396f6305c73fdf7df3a1be0c2fd0", - "text": "Added an `allocatedResourcesStatus` to each container status to indicate the health status of devices exposed by the device plugin.", - "markdown": "Added an `allocatedResourcesStatus` to each container status to indicate the health status of devices exposed by the device plugin. ([#126243](https://github.com/kubernetes/kubernetes/pull/126243), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG API Machinery, Apps, Node and Testing]", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126243", - "pr_number": 126243, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "126291": { - "commit": "ad805387e26a4e76ab53505d5eb552686368180b", - "text": "Set ProcMountType feature to disabled by default, to follow the lead of UserNamespacesSupport (which it relies on).", - "markdown": "Set ProcMountType feature to disabled by default, to follow the lead of UserNamespacesSupport (which it relies on). ([#126291](https://github.com/kubernetes/kubernetes/pull/126291), [@haircommander](https://github.com/haircommander)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4265", - "type": "KEP" - } - ], - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126291", - "pr_number": 126291, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "126293": { - "commit": "6834a1ef3d928f6f7e00e801a43c37bead75dbe9", - "text": "The kube-proxy command line flag `--proxy-port-range`, which was previously deprecated and non-functional, has now been removed.", - "markdown": "The kube-proxy command line flag `--proxy-port-range`, which was previously deprecated and non-functional, has now been removed. ([#126293](https://github.com/kubernetes/kubernetes/pull/126293), [@aroradaman](https://github.com/aroradaman)) [SIG Network]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126293", - "pr_number": 126293, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "126330": { - "commit": "05934d6283a7f54ec9e4ef543d038ee479345c2f", - "text": "Updated kubernetes to build with Go 1.22.5.", - "markdown": "Updated kubernetes to build with Go 1.22.5. ([#126330](https://github.com/kubernetes/kubernetes/pull/126330), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG Release and Testing]", - "author": "ArkaSaha30", - "author_url": "https://github.com/ArkaSaha30", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126330", - "pr_number": 126330, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "release", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "126335": { - "commit": "df69a528d5a50d03f5865d8aeb7f8400cf48296b", - "text": "Fixed bug in kubelet if the `SplitImageFilesystem` feature gate is turned on but the container runtime is not configured.", - "markdown": "Fixed bug in kubelet if the `SplitImageFilesystem` feature gate is turned on but the container runtime is not configured. ([#126335](https://github.com/kubernetes/kubernetes/pull/126335), [@kannon92](https://github.com/kannon92))", - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126335", - "pr_number": 126335, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "126355": { - "commit": "c853ca49c3d104ad559c4d4bdc802106d27deb52", - "text": "Set `LocalStorageCapacityIsolationFSQuotaMonitoring` to false by default, to match `UserNamespacesSupport` (which the feature relies on).", - "markdown": "Set `LocalStorageCapacityIsolationFSQuotaMonitoring` to false by default, to match `UserNamespacesSupport` (which the feature relies on). ([#126355](https://github.com/kubernetes/kubernetes/pull/126355), [@haircommander](https://github.com/haircommander))", - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126355", - "pr_number": 126355, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "126441": { - "commit": "aab56e9b70b7d80f2a5a5f2907e172de257662b5", - "text": "Ensured that the Node Admission plugin to reject CSR requests created by a node identity for the signers `kubernetes.io/kubelet-serving` or `kubernetes.io/kube-apiserver-client-kubelet` with a CN starting with `system:node:`, but where the CN is not `system:node:${node-name}`. The feature gate `AllowInsecureKubeletCertificateSigningRequests` defaults to `false`, but can be enabled to revert to the previous behavior. This feature gate will be removed in Kubernetes v1.33.", - "markdown": "Ensured that the Node Admission plugin to reject CSR requests created by a node identity for the signers `kubernetes.io/kubelet-serving` or `kubernetes.io/kube-apiserver-client-kubelet` with a CN starting with `system:node:`, but where the CN is not `system:node:${node-name}`. The feature gate `AllowInsecureKubeletCertificateSigningRequests` defaults to `false`, but can be enabled to revert to the previous behavior. This feature gate will be removed in Kubernetes v1.33. ([#126441](https://github.com/kubernetes/kubernetes/pull/126441), [@micahhausler](https://github.com/micahhausler))", - "author": "micahhausler", - "author_url": "https://github.com/micahhausler", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126441", - "pr_number": 126441, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth" - ], - "is_mapped": true - } +{ + "109939": { + "commit": "802983e7142b3a1edf300712cfe5dca5dafbfd49", + "text": "Added support for building Windows kube-proxy container image.\nA container image for kube-proxy on Windows can now be built with the command\n`make release-images KUBE_BUILD_WINDOWS=y`.\nThe Windows kube-proxy image can be used with Windows Host Process Containers.", + "markdown": "Added support for building Windows kube-proxy container image.\n A container image for kube-proxy on Windows can now be built with the command\n `make release-images KUBE_BUILD_WINDOWS=y`.\n The Windows kube-proxy image can be used with Windows Host Process Containers. ([#109939](https://github.com/kubernetes/kubernetes/pull/109939), [@claudiubelu](https://github.com/claudiubelu)) [SIG Windows]", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/109939", + "pr_number": 109939, + "kinds": [ + "feature" + ], + "sigs": [ + "windows" + ], + "feature": true, + "is_mapped": true + }, + "112104": { + "commit": "c811521331ee09d9fce7b866d5c8c79f45ba4125", + "text": "Fixed EDITOR/KUBE_EDITOR with double-quoted paths with spaces when on Windows cmd.exe.", + "markdown": "Fixed EDITOR/KUBE_EDITOR with double-quoted paths with spaces when on Windows cmd.exe. ([#112104](https://github.com/kubernetes/kubernetes/pull/112104), [@oldium](https://github.com/oldium)) [SIG CLI and Windows]", + "author": "oldium", + "author_url": "https://github.com/oldium", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112104", + "pr_number": 112104, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "windows" + ], + "duplicate": true, + "is_mapped": true + }, + "117842": { + "commit": "552fd7e85084b4cbd3ae8e81ff13433e28dc8327", + "text": "Supported fine-grained supplemental groups policy (KEP-3619), which enabled\nfine-grained control for supplementary groups in the first container processes.\nThis allows you to choose whether to include groups defined in the container image (/etc/groups)\nfor the container's primary UID or not.", + "markdown": "Supported fine-grained supplemental groups policy (KEP-3619), which enabled\n fine-grained control for supplementary groups in the first container processes.\n This allows you to choose whether to include groups defined in the container image (/etc/groups)\n for the container's primary UID or not. ([#117842](https://github.com/kubernetes/kubernetes/pull/117842), [@everpeace](https://github.com/everpeace)) [SIG API Machinery, Apps and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3619-supplemental-groups-policy", + "type": "KEP" + } + ], + "author": "everpeace", + "author_url": "https://github.com/everpeace", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117842", + "pr_number": 117842, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "118148": { + "commit": "957c9538670b5f7ead2c9ba9ceb9de081d66caa4", + "text": "Exposed the kube-scheduler \"/livez\" and \"/readz\" endpoints for health checks that are in compliance with https://kubernetes.io/docs/reference/using-api/health-checks/#api-endpoints-for-health.", + "markdown": "Exposed the kube-scheduler \"/livez\" and \"/readz\" endpoints for health checks that are in compliance with https://kubernetes.io/docs/reference/using-api/health-checks/#api-endpoints-for-health. ([#118148](https://github.com/kubernetes/kubernetes/pull/118148), [@linxiulei](https://github.com/linxiulei)) [SIG API Machinery, Scheduling and Testing]", + "author": "linxiulei", + "author_url": "https://github.com/linxiulei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/118148", + "pr_number": 118148, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "119589": { + "commit": "d1b2490c80fd5c3e0d90598477f62a70d8099bb2", + "text": "Added kubectl support for:\n- kubectl create secret docker-registry \u003cNAME\u003e --from-file=\u003cpath/to/.docker/config.json\u003e\n- kubectl create secret docker-registry \u003cNAME\u003e --from-file=.dockerconfigjson=\u003cpath/to/.docker/config.json\u003e", + "markdown": "Added kubectl support for:\n - kubectl create secret docker-registry \u003cNAME\u003e --from-file=\u003cpath/to/.docker/config.json\u003e\n - kubectl create secret docker-registry \u003cNAME\u003e --from-file=.dockerconfigjson=\u003cpath/to/.docker/config.json\u003e ([#119589](https://github.com/kubernetes/kubernetes/pull/119589), [@carlory](https://github.com/carlory)) [SIG CLI]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119589", + "pr_number": 119589, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "120611": { + "commit": "05bb5f71f86428c07a94d50bdf2a9e26b29e1f6a", + "text": "Dynamic Resource Allocation (DRA): Added a feature so the number of ResourceClaim objects can be limited per namespace and by the number of devices requested through a specific class via the v1.ResourceQuota mechanism.", + "markdown": "Dynamic Resource Allocation (DRA): Added a feature so the number of ResourceClaim objects can be limited per namespace and by the number of devices requested through a specific class via the v1.ResourceQuota mechanism. ([#120611](https://github.com/kubernetes/kubernetes/pull/120611), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Etcd, Node, Release, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120611", + "pr_number": 120611, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "release-eng", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cli", + "etcd", + "node", + "release", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "120696": { + "commit": "fd8239ce8fa6ef1d167b19881f4938e7ef15de4c", + "text": "component-base/logs: when compiled with Go \u003e= 1.21, component-base will automatically configure the slog default logger together with initializing klog.", + "markdown": "Component-base/logs: when compiled with Go \u003e= 1.21, component-base will automatically configure the slog default logger together with initializing klog. ([#120696](https://github.com/kubernetes/kubernetes/pull/120696), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Storage and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120696", + "pr_number": 120696, + "areas": [ + "test", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "network", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "120699": { + "commit": "1ebc3d2a6480f3679c28d0bc3d486ad93e95084f", + "text": "NONE", + "markdown": "NONE ([#120699](https://github.com/kubernetes/kubernetes/pull/120699), [@liyuerich](https://github.com/liyuerich)) [SIG Apps and Node]", + "author": "liyuerich", + "author_url": "https://github.com/liyuerich", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120699", + "pr_number": 120699, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "node" + ], + "duplicate": true, + "do_not_publish": true + }, + "121508": { + "commit": "5722db7aa3e79bdf2a71f38d22a818a25cfb8091", + "text": "kube-scheduler implemented scheduling hints for the CSILimit plugin.\nThe scheduling hints allow the scheduler to retry scheduling a Pod that was previously rejected by the CSILimit plugin if a deleted pod has a PersistantVolumeClaim (PVC) from the same driver.", + "markdown": "Kube-scheduler implemented scheduling hints for the CSILimit plugin.\n The scheduling hints allow the scheduler to retry scheduling a Pod that was previously rejected by the CSILimit plugin if a deleted pod has a PersistantVolumeClaim (PVC) from the same driver. ([#121508](https://github.com/kubernetes/kubernetes/pull/121508), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Storage]", + "author": "utam0k", + "author_url": "https://github.com/utam0k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121508", + "pr_number": 121508, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "121770": { + "commit": "3fda574e5e87368d569d1fd46f05a0750c6c15ab", + "text": "This PR added tracing support to the kubelet's read-only endpoint, which currently\ndoes not have tracing. It makes use of the `WithPublicEndpoint` option to prevent callers\nfrom influencing sampling decisions.", + "markdown": "This PR added tracing support to the kubelet's read-only endpoint, which currently\n does not have tracing. It makes use of the `WithPublicEndpoint` option to prevent callers\n from influencing sampling decisions. ([#121770](https://github.com/kubernetes/kubernetes/pull/121770), [@frzifus](https://github.com/frzifus))", + "author": "frzifus", + "author_url": "https://github.com/frzifus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121770", + "pr_number": 121770, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "121902": { + "commit": "a00181d4d47ebad54e930aa64daed0f3e6fc3a90", + "text": "If the feature-gate VolumeAttributesClass is enabled, when finding a suitable persistent volume for a claim, the kube-controller-manager will be aware of the `volumeAttributesClassName` field of PVC and PV objects. The `volumeAttributesClassName` field is a reference to a VolumeAttributesClass object, which contains a set of key-value pairs that present mutable attributes of the volume. It's forbidden to change the `volumeAttributesClassName` field of a PVC object until the PVC is bound to a PV object. During the binding process, if a PVC has a `volumeAttributesClassName` field set, the controller will only consider volumes that have the same `volumeAttributesClassName` as the PVC. If the `volumeAttributesClassName` field is not set or set to an empty string, only volumes with empty `volumeAttributesClassName` will be considered.", + "markdown": "If the feature-gate VolumeAttributesClass is enabled, when finding a suitable persistent volume for a claim, the kube-controller-manager will be aware of the `volumeAttributesClassName` field of PVC and PV objects. The `volumeAttributesClassName` field is a reference to a VolumeAttributesClass object, which contains a set of key-value pairs that present mutable attributes of the volume. It's forbidden to change the `volumeAttributesClassName` field of a PVC object until the PVC is bound to a PV object. During the binding process, if a PVC has a `volumeAttributesClassName` field set, the controller will only consider volumes that have the same `volumeAttributesClassName` as the PVC. If the `volumeAttributesClassName` field is not set or set to an empty string, only volumes with empty `volumeAttributesClassName` will be considered. ([#121902](https://github.com/kubernetes/kubernetes/pull/121902), [@carlory](https://github.com/carlory)) [SIG Apps, Scheduling, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3751", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121902", + "pr_number": 121902, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true + }, + "121970": { + "commit": "d35ba3635b0fe9cee75e2376e6445113d50437b7", + "text": "k8s.io/apimachinery/pkg/util/runtime: Added support for new calls to handle panics and errors in the context where they occur. `PanicHandlers` and `ErrorHandlers` now must accept a context parameter for that. Log output is structured instead of unstructured.", + "markdown": "K8s.io/apimachinery/pkg/util/runtime: Added support for new calls to handle panics and errors in the context where they occur. `PanicHandlers` and `ErrorHandlers` now must accept a context parameter for that. Log output is structured instead of unstructured. ([#121970](https://github.com/kubernetes/kubernetes/pull/121970), [@pohly](https://github.com/pohly)) [SIG API Machinery and Instrumentation]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121970", + "pr_number": 121970, + "areas": [ + "apiserver", + "dependency" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122025": { + "commit": "58c44005cdaec53fe3cb49b2d7a308df3af2d081", + "text": "`lastSuccessfullTime` in cronjobs will now be set reliably.", + "markdown": "`lastSuccessfullTime` in cronjobs will now be set reliably. ([#122025](https://github.com/kubernetes/kubernetes/pull/122025), [@lukashankeln](https://github.com/lukashankeln)) [SIG Apps]", + "documentation": [ + { + "description": "[Other doc]", + "url": "https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#cronjobstatus-v1-batch", + "type": "official" + } + ], + "author": "lukashankeln", + "author_url": "https://github.com/lukashankeln", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122025", + "pr_number": 122025, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "122038": { + "commit": "b669abc18163a703d1db5ae3c32fd2faff1694b3", + "text": "kubectl: Show the Pod phase in the STATUS column as 'Failed' or 'Succeeded' when the Pod is terminated", + "markdown": "Kubectl: Show the Pod phase in the STATUS column as 'Failed' or 'Succeeded' when the Pod is terminated ([#122038](https://github.com/kubernetes/kubernetes/pull/122038), [@lowang-bh](https://github.com/lowang-bh)) [SIG CLI]", + "author": "lowang-bh", + "author_url": "https://github.com/lowang-bh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122038", + "pr_number": 122038, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "122047": { + "commit": "d40676c227c762e9c6f39682377aaf2e113915e3", + "text": "KEP-1880: Users of the new feature to add multiple service CIDR will use by default a dual-write strategy on the new ClusterIP allocators to avoid the problem of possible duplicate IPs allocated to Services when running skewed kube-apiservers using different allocators. They can opt-out of this behavior by enabled the feature gate DisableAllocatorDualWrite.", + "markdown": "KEP-1880: Users of the new feature to add multiple service CIDR will use by default a dual-write strategy on the new ClusterIP allocators to avoid the problem of possible duplicate IPs allocated to Services when running skewed kube-apiservers using different allocators. They can opt-out of this behavior by enabled the feature gate DisableAllocatorDualWrite. ([#122047](https://github.com/kubernetes/kubernetes/pull/122047), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Instrumentation and Testing]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122047", + "pr_number": 122047, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "instrumentation", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122082": { + "commit": "ef2c682635a1393122ba73886b2707ee9666b3fc", + "text": "Kubelet flag `--keep-terminated-pod-volumes` was removed. This flag was deprecated in 2017.", + "markdown": "Kubelet flag `--keep-terminated-pod-volumes` was removed. This flag was deprecated in 2017. ([#122082](https://github.com/kubernetes/kubernetes/pull/122082), [@carlory](https://github.com/carlory)) [SIG Apps, Node, Storage and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122082", + "pr_number": 122082, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "node", + "storage", + "testing" + ], + "duplicate": true, + "action_required": true, + "is_mapped": true + }, + "122176": { + "commit": "dfcb44758a634ca68cc0cf733e83503d22f241c8", + "text": "kube-apiserver: Added support to disable http/2 serving with a `--disable-http2-serving` flag.\n", + "markdown": "Kube-apiserver: Added support to disable http/2 serving with a `--disable-http2-serving` flag.\n ([#122176](https://github.com/kubernetes/kubernetes/pull/122176), [@slashpai](https://github.com/slashpai)) [SIG API Machinery]", + "author": "slashpai", + "author_url": "https://github.com/slashpai", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122176", + "pr_number": 122176, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "122234": { + "commit": "9c8c61aee4966d153fba0b9c365c7d03c602b4fc", + "text": "Added support to the scheduler to start using QueueingHint registered for Pod/Updated event to determine whether unschedulable Pods update make them schedulable, when the feature gate `SchedulerQueueingHints` is enabled.\nPreviously, when unschedulable Pods are updated, the scheduler always put Pods back to activeQ/backoffQ. But, actually not all updates to Pods make Pods schedulable, especially considering many scheduling constraints nowadays are immutable.\nNow, when unschedulable Pods are updated, the scheduling queue checks with QueueingHint(s) whether the update may make the pods schedulable, and requeues them to activeQ/backoffQ **only when** at least one QueueingHint(s) return Queue. \n\nAction required for custom scheduler plugin developers:\nPlugins **have to** implement a QueueingHint for Pod/Update event if the rejection from them could be resolved by updating unscheduled Pods themselves.\nExample: suppose you develop a custom plugin that denies Pods that have a `schedulable=false` label. \nGiven Pods with a `schedulable=false` label will be schedulable if the `schedulable=false` label is removed, this plugin would implement QueueingHint for Pod/Update event that returns Queue when such label changes are made in unscheduled Pods.", + "markdown": "Added support to the scheduler to start using QueueingHint registered for Pod/Updated event to determine whether unschedulable Pods update make them schedulable, when the feature gate `SchedulerQueueingHints` is enabled.\n Previously, when unschedulable Pods are updated, the scheduler always put Pods back to activeQ/backoffQ. But, actually not all updates to Pods make Pods schedulable, especially considering many scheduling constraints nowadays are immutable.\n Now, when unschedulable Pods are updated, the scheduling queue checks with QueueingHint(s) whether the update may make the pods schedulable, and requeues them to activeQ/backoffQ **only when** at least one QueueingHint(s) return Queue. \n \n Action required for custom scheduler plugin developers:\n Plugins **have to** implement a QueueingHint for Pod/Update event if the rejection from them could be resolved by updating unscheduled Pods themselves.\n Example: suppose you develop a custom plugin that denies Pods that have a `schedulable=false` label. \n Given Pods with a `schedulable=false` label will be schedulable if the `schedulable=false` label is removed, this plugin would implement QueueingHint for Pod/Update event that returns Queue when such label changes are made in unscheduled Pods. ([#122234](https://github.com/kubernetes/kubernetes/pull/122234), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Testing]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/issues/4247", + "type": "KEP" + } + ], + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122234", + "pr_number": 122234, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "action_required": true, + "is_mapped": true + }, + "122251": { + "commit": "b6899c5e08be72917e81d0bc0efe196caf7459ee", + "text": "The scheduler retries scheduling Pods rejected by PreFilterResult (PreFilter plugins) more appropriately; it now takes events registered in those rejector PreFilter plugins into consideration.", + "markdown": "The scheduler retries scheduling Pods rejected by PreFilterResult (PreFilter plugins) more appropriately; it now takes events registered in those rejector PreFilter plugins into consideration. ([#122251](https://github.com/kubernetes/kubernetes/pull/122251), [@olderTaoist](https://github.com/olderTaoist)) [SIG Scheduling and Testing]", + "author": "olderTaoist", + "author_url": "https://github.com/olderTaoist", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122251", + "pr_number": 122251, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true + }, + "122363": { + "commit": "96ad82583f4ecc007ec25e234f4f17f5328ddfb2", + "text": "Removed Kubelet flags `--iptables-masquerade-bit` and `--iptables-drop-bit` as they were deprecated in v1.28. in v1.28 and have now been removed entirely.", + "markdown": "Removed Kubelet flags `--iptables-masquerade-bit` and `--iptables-drop-bit` as they were deprecated in v1.28. in v1.28 and have now been removed entirely. ([#122363](https://github.com/kubernetes/kubernetes/pull/122363), [@carlory](https://github.com/carlory)) [SIG Network and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3178", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122363", + "pr_number": 122363, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "122471": { + "commit": "2c6d5fae7a68ae94edd848c40dc47c9077c7818e", + "text": "The kube-scheduler added scheduling hints for the InterPodAffinity plugin.\nThese hints allow the scheduler to retry scheduling a Pod\nthat was previously rejected by the InterPodAffinity plugin if there are changes (create, delete, or update) to a related Pod or a node that matches the pod affinity criteria.", + "markdown": "The kube-scheduler added scheduling hints for the InterPodAffinity plugin.\n These hints allow the scheduler to retry scheduling a Pod\n that was previously rejected by the InterPodAffinity plugin if there are changes (create, delete, or update) to a related Pod or a node that matches the pod affinity criteria. ([#122471](https://github.com/kubernetes/kubernetes/pull/122471), [@nayihz](https://github.com/nayihz)) [SIG Scheduling and Testing]", + "author": "nayihz", + "author_url": "https://github.com/nayihz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122471", + "pr_number": 122471, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "122499": { + "commit": "c6b5191c37f939d2d61e76de222a96ae5f5d9558", + "text": "StatefulSet autodelete respected controlling owners on PVC claims as described in https://github.com/kubernetes/enhancements/pull/4375.", + "markdown": "StatefulSet autodelete respected controlling owners on PVC claims as described in https://github.com/kubernetes/enhancements/pull/4375. ([#122499](https://github.com/kubernetes/kubernetes/pull/122499), [@mattcary](https://github.com/mattcary)) [SIG Apps and Testing]", + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122499", + "pr_number": 122499, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "122627": { + "commit": "e48d42d81db347bdf7b1bd2489ea1e2783f0ffa6", + "text": "Fixed a bug that when PodTopologySpread rejects Pods, they may be stuck in Pending state for 5 min in a worst case scenario.\nThe same problem could happen with custom plugins which have Pod/Add or Pod/Update in EventsToRegister,\nwhich is also solved with this PR, but only when the feature flag SchedulerQueueingHints is enabled.", + "markdown": "Fixed a bug that when PodTopologySpread rejects Pods, they may be stuck in Pending state for 5 min in a worst case scenario.\n The same problem could happen with custom plugins which have Pod/Add or Pod/Update in EventsToRegister,\n which is also solved with this PR, but only when the feature flag SchedulerQueueingHints is enabled. ([#122627](https://github.com/kubernetes/kubernetes/pull/122627), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122627", + "pr_number": 122627, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true + }, + "122628": { + "commit": "39a80796b641d75423c4156000808ae5810094a2", + "text": "Implemented new cluster events UpdatePodScaleDown and UpdatePodLabel for scheduler plugins.", + "markdown": "Implemented new cluster events UpdatePodScaleDown and UpdatePodLabel for scheduler plugins. ([#122628](https://github.com/kubernetes/kubernetes/pull/122628), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122628", + "pr_number": 122628, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "122636": { + "commit": "b616d916752ec0b4f506bf2d35dd66ef2d974d97", + "text": "Fixed null `lastTransitionTime` in Pod condition when setting the scheduling gate.", + "markdown": "Fixed null `lastTransitionTime` in Pod condition when setting the scheduling gate. ([#122636](https://github.com/kubernetes/kubernetes/pull/122636), [@lianghao208](https://github.com/lianghao208)) [SIG Node and Scheduling]", + "author": "lianghao208", + "author_url": "https://github.com/lianghao208", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122636", + "pr_number": 122636, + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "scheduling" + ], + "duplicate": true, + "is_mapped": true + }, + "122657": { + "commit": "78533415e06199d13f81e78acf9ff2e0f7460801", + "text": "Added the `WatchList` method to the `rest client` in `client-go`. When used,\nit establishes a stream to obtain a consistent snapshot of data from the server.\nThis method is meant to be used by the generated client.", + "markdown": "Added the `WatchList` method to the `rest client` in `client-go`. When used,\n it establishes a stream to obtain a consistent snapshot of data from the server.\n This method is meant to be used by the generated client. ([#122657](https://github.com/kubernetes/kubernetes/pull/122657), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/3157-watch-list/README.md", + "type": "KEP" + } + ], + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122657", + "pr_number": 122657, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "122791": { + "commit": "8c1983ffc0b6fe2293fc721cef8d961d79aafc53", + "text": "Removed `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environment variable from the reflector.\nTo activate the feature set `KUBE_FEATURE_WatchListClient` environment variable or a corresponding command line option (this works only with binaries that explicitly expose it).", + "markdown": "Removed `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environment variable from the reflector.\n To activate the feature set `KUBE_FEATURE_WatchListClient` environment variable or a corresponding command line option (this works only with binaries that explicitly expose it). ([#122791](https://github.com/kubernetes/kubernetes/pull/122791), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/3157-watch-list/README.md", + "type": "KEP" + }, + { + "description": "[Other doc]", + "url": "https://docs.google.com/document/d/1g9BGCRw-7ucUxO6OtCWbb3lfzUGA_uU9178wLdXAIfs/edit#heading=h.lymszxjovg65", + "type": "external" + } + ], + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122791", + "pr_number": 122791, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "122812": { + "commit": "de9a932a14553239e297e0d5350947216393c9ae", + "text": "Added support for kube-proxy iptables mode to track packets that were wrongfully marked invalid by conntrack and subsequently dropped by introducing `kubeproxy_iptables_ct_state_invalid_dropped_packets_total` metric.", + "markdown": "Added support for kube-proxy iptables mode to track packets that were wrongfully marked invalid by conntrack and subsequently dropped by introducing `kubeproxy_iptables_ct_state_invalid_dropped_packets_total` metric. ([#122812](https://github.com/kubernetes/kubernetes/pull/122812), [@aroradaman](https://github.com/aroradaman)) [SIG Instrumentation, Network and Testing]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122812", + "pr_number": 122812, + "areas": [ + "test", + "kube-proxy", + "ipvs", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "122892": { + "commit": "573832a42f03af912a5611eb4e81a0e812a5ddf2", + "text": "The \"fake\" clients generated by `client-gen` now have the same semantics on\nerror as the real clients; in particular, a failed Get(), Create(), etc, no longer\nreturns `nil`. (It now returns a pointer to a zero-valued object, like the real\nclients do.) This will break some downstream unit tests that were testing\n`result == nil` rather than `err != nil`, and in some cases may expose bugs\nin the underlying code that were hidden by the incorrect unit tests.", + "markdown": "The \"fake\" clients generated by `client-gen` now have the same semantics on\n error as the real clients; in particular, a failed Get(), Create(), etc, no longer\n returns `nil`. (It now returns a pointer to a zero-valued object, like the real\n clients do.) This will break some downstream unit tests that were testing\n `result == nil` rather than `err != nil`, and in some cases may expose bugs\n in the underlying code that were hidden by the incorrect unit tests. ([#122892](https://github.com/kubernetes/kubernetes/pull/122892), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Auth, Cloud Provider, Instrumentation and Storage]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122892", + "pr_number": 122892, + "areas": [ + "cloudprovider", + "code-generation" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider", + "instrumentation", + "storage" + ], + "duplicate": true, + "is_mapped": true + }, + "122922": { + "commit": "601eb7e9cf71eebb375d4a32c364b56dfbfd365d", + "text": "Fixed a missing behavior where Windows nodes did not implement memory-pressure eviction.", + "markdown": "Fixed a missing behavior where Windows nodes did not implement memory-pressure eviction. ([#122922](https://github.com/kubernetes/kubernetes/pull/122922), [@marosset](https://github.com/marosset)) [SIG Node, Testing and Windows]", + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122922", + "pr_number": 122922, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing", + "windows" + ], + "feature": true, + "duplicate": true + }, + "122979": { + "commit": "8dd9d1a6bb85fe83c803e33cad8b18d15057a7f3", + "text": "Migrated the pkg/proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging).", + "markdown": "Migrated the pkg/proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#122979](https://github.com/kubernetes/kubernetes/pull/122979), [@fatsheep9146](https://github.com/fatsheep9146)) [SIG Network and Scalability]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/3077-contextual-logging", + "type": "KEP" + } + ], + "author": "fatsheep9146", + "author_url": "https://github.com/fatsheep9146", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122979", + "pr_number": 122979, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "scalability" + ], + "duplicate": true, + "is_mapped": true + }, + "123102": { + "commit": "a7832cc1698ed1e40283840280b1fd697f4f495e", + "text": "kubeadm: during the validation of existing kubeconfig files on disk, handle cases where the \"ca.crt\" is a bundle and has intermediate certificates. Find a common trust anchor between the \"ca.crt\" bundle and the CA in the existing kubeconfig on disk instead of treating \"ca.crt\" as a file containing a single CA.", + "markdown": "Kubeadm: during the validation of existing kubeconfig files on disk, handle cases where the \"ca.crt\" is a bundle and has intermediate certificates. Find a common trust anchor between the \"ca.crt\" bundle and the CA in the existing kubeconfig on disk instead of treating \"ca.crt\" as a file containing a single CA. ([#123102](https://github.com/kubernetes/kubernetes/pull/123102), [@astundzia](https://github.com/astundzia)) [SIG Cluster Lifecycle]", + "author": "astundzia", + "author_url": "https://github.com/astundzia", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123102", + "pr_number": 123102, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "123105": { + "commit": "b2c32fb0151cb56fa30a9cc60b0835ed5c8dfcd5", + "text": "Added support to the kube-proxy nodePortAddresses / --nodeport-addresses option to\naccept the value \"primary\", meaning to only listen for NodePort connections\non the node's primary IPv4 and/or IPv6 address (according to the Node object).\nThis is strongly recommended, if you were not previously using\n--nodeport-addresses, to avoid surprising behavior.\n(This behavior is enabled by default with the nftables backend; you would\nneed to explicitly request `--nodeport-addresses 0.0.0.0/0,::/0` there to get\nthe traditional \"listen on all interfaces\" behavior.)", + "markdown": "Added support to the kube-proxy nodePortAddresses / --nodeport-addresses option to\n accept the value \"primary\", meaning to only listen for NodePort connections\n on the node's primary IPv4 and/or IPv6 address (according to the Node object).\n This is strongly recommended, if you were not previously using\n --nodeport-addresses, to avoid surprising behavior.\n (This behavior is enabled by default with the nftables backend; you would\n need to explicitly request `--nodeport-addresses 0.0.0.0/0,::/0` there to get\n the traditional \"listen on all interfaces\" behavior.) ([#123105](https://github.com/kubernetes/kubernetes/pull/123105), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Network and Windows]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123105", + "pr_number": 123105, + "areas": [ + "kube-proxy", + "code-generation", + "ipvs" + ], + "kinds": [ + "bug", + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "network", + "windows" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123137": { + "commit": "eb9b928c23e9a8b8ecf78539836dad6e0d1d1901", + "text": "kubelet: warn instead of error for the unsupported options on Windows \"CgroupsPerQOS\" and \"EnforceNodeAllocatable\".", + "markdown": "Kubelet: warn instead of error for the unsupported options on Windows \"CgroupsPerQOS\" and \"EnforceNodeAllocatable\". ([#123137](https://github.com/kubernetes/kubernetes/pull/123137), [@neolit123](https://github.com/neolit123)) [SIG Node and Windows]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123137", + "pr_number": 123137, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "windows" + ], + "feature": true, + "duplicate": true + }, + "123149": { + "commit": "6d4250ed413223c2f0a1ab8c253780bf43747bb6", + "text": "Added `--keep-*` flags to `kubectl debug`, which enables to control the removal\nof probes, labels, annotations and initContainers from copy pod.", + "markdown": "Added `--keep-*` flags to `kubectl debug`, which enables to control the removal\n of probes, labels, annotations and initContainers from copy pod. ([#123149](https://github.com/kubernetes/kubernetes/pull/123149), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI and Testing]", + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123149", + "pr_number": 123149, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123233": { + "commit": "5cd78a1e9d928be0390b0fe4cae2966282a1babc", + "text": "Ensured daemonset controller counts old unhealthy pods towards max unavailable budget.", + "markdown": "Ensured daemonset controller counts old unhealthy pods towards max unavailable budget. ([#123233](https://github.com/kubernetes/kubernetes/pull/123233), [@marshallbrekka](https://github.com/marshallbrekka)) [SIG Apps]", + "author": "marshallbrekka", + "author_url": "https://github.com/marshallbrekka", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123233", + "pr_number": 123233, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "123315": { + "commit": "72226c75115aaeb6090b40c34af323c3334f7065", + "text": "Graduated support for Container Device Interface (CDI) device IDs to general availability. The `DevicePluginCDIDevices` feature gate is now enabled unconditionally.", + "markdown": "Graduated support for Container Device Interface (CDI) device IDs to general availability. The `DevicePluginCDIDevices` feature gate is now enabled unconditionally. ([#123315](https://github.com/kubernetes/kubernetes/pull/123315), [@bart0sh](https://github.com/bart0sh)) [SIG Node]", + "author": "bart0sh", + "author_url": "https://github.com/bart0sh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123315", + "pr_number": 123315, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "123316": { + "commit": "18608386ea5709ec26ed4958ddbba28b6723acee", + "text": "Fixed a bug where `kubectl describe` incorrectly displayed NetworkPolicy port ranges\n(showing only the starting port).", + "markdown": "Fixed a bug where `kubectl describe` incorrectly displayed NetworkPolicy port ranges\n (showing only the starting port). ([#123316](https://github.com/kubernetes/kubernetes/pull/123316), [@jcaamano](https://github.com/jcaamano)) [SIG CLI]", + "author": "jcaamano", + "author_url": "https://github.com/jcaamano", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123316", + "pr_number": 123316, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "123398": { + "commit": "1fd835ce59a3ade6290d13c4ff6b52d2875b6042", + "text": "Kubelet is no longer able to recover from device manager state file older than 1.20. If the proper recommended upgrade flow is followed, there should be no issue.", + "markdown": "Kubelet is no longer able to recover from device manager state file older than 1.20. If the proper recommended upgrade flow is followed, there should be no issue. ([#123398](https://github.com/kubernetes/kubernetes/pull/123398), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123398", + "pr_number": 123398, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "123428": { + "commit": "fb0195df118234705c811c2fbb87970ba82326b0", + "text": "The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to GA. This field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted.", + "markdown": "The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to GA. This field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted. ([#123428](https://github.com/kubernetes/kubernetes/pull/123428), [@atiratree](https://github.com/atiratree)) [SIG Apps, Auth, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3017-pod-healthy-policy-for-pdb", + "type": "KEP" + } + ], + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123428", + "pr_number": 123428, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "auth", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123513": { + "commit": "bc3b8f6c6bc85c21aebc3f5d3ebf507cc7f38f9b", + "text": "Moved `ConsistentListFromCache` feature flag to beta and enabled it by default.", + "markdown": "Moved `ConsistentListFromCache` feature flag to beta and enabled it by default. ([#123513](https://github.com/kubernetes/kubernetes/pull/123513), [@serathius](https://github.com/serathius)) [SIG API Machinery and Testing]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123513", + "pr_number": 123513, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123545": { + "commit": "501cfb7482317d7c8da7eaddf11f71820730824d", + "text": "Updated description of default values for `--healthz-bind-address` and `--metrics-bind-address` parameters.", + "markdown": "Updated description of default values for `--healthz-bind-address` and `--metrics-bind-address` parameters. ([#123545](https://github.com/kubernetes/kubernetes/pull/123545), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Network]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123545", + "pr_number": 123545, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "123572": { + "commit": "6f6ba4ae7fd77b2022970c796c6b6ef8fb915c68", + "text": "CEL: Added name formats library.", + "markdown": "CEL: Added name formats library. ([#123572](https://github.com/kubernetes/kubernetes/pull/123572), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4153", + "type": "KEP" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123572", + "pr_number": 123572, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "123587": { + "commit": "b38cce123d79980b9dfbf873f2d073f2c2ced733", + "text": "Fixed \"-kube-test-repo-list\" e2e flag may not take effect.", + "markdown": "Fixed \"-kube-test-repo-list\" e2e flag may not take effect. ([#123587](https://github.com/kubernetes/kubernetes/pull/123587), [@huww98](https://github.com/huww98)) [SIG API Machinery, Apps, Autoscaling, CLI, Network, Node, Scheduling, Storage, Testing and Windows]", + "author": "huww98", + "author_url": "https://github.com/huww98", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123587", + "pr_number": 123587, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "apps", + "autoscaling", + "cli", + "network", + "node", + "scheduling", + "storage", + "testing", + "windows" + ], + "duplicate": true, + "is_mapped": true + }, + "123597": { + "commit": "9d945ba5a520438ac8cf7a77200ae6a8d2d8bd4b", + "text": "Added an extra line between two different key value pairs under data when running `kubectl describe configmap`.", + "markdown": "Added an extra line between two different key value pairs under data when running `kubectl describe configmap`. ([#123597](https://github.com/kubernetes/kubernetes/pull/123597), [@siddhantvirus](https://github.com/siddhantvirus)) [SIG CLI]", + "author": "siddhantvirus", + "author_url": "https://github.com/siddhantvirus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123597", + "pr_number": 123597, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "123620": { + "commit": "5cb71ec2e4c506078449b6a3bbaac44ab03909ce", + "text": "Fixed a bug in the JSON frame reader that could cause it to retain a reference to the underlying array of the byte slice passed to read.", + "markdown": "Fixed a bug in the JSON frame reader that could cause it to retain a reference to the underlying array of the byte slice passed to read. ([#123620](https://github.com/kubernetes/kubernetes/pull/123620), [@benluddy](https://github.com/benluddy)) [SIG API Machinery]", + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123620", + "pr_number": 123620, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "123638": { + "commit": "8ac9d949730a57a41a1a44f8964bd84ab8ab2667", + "text": "Graduated MatchLabelKeys/MismatchLabelKeys feature in PodAffinity/PodAntiAffinity to Beta.", + "markdown": "Graduated MatchLabelKeys/MismatchLabelKeys feature in PodAffinity/PodAntiAffinity to Beta. ([#123638](https://github.com/kubernetes/kubernetes/pull/123638), [@sanposhiho](https://github.com/sanposhiho)) [SIG API Machinery, Apps, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3633", + "type": "KEP" + } + ], + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123638", + "pr_number": 123638, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123669": { + "commit": "35ffb484257f6fc8710baa657f438ad28707149f", + "text": "CEL (Common Expression Language): converting a quantity value into a quantity value failed.", + "markdown": "CEL (Common Expression Language): converting a quantity value into a quantity value failed. ([#123669](https://github.com/kubernetes/kubernetes/pull/123669), [@pohly](https://github.com/pohly)) [SIG API Machinery]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123669", + "pr_number": 123669, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "123733": { + "commit": "3361895612dac57044d5dacc029d2ace1865479c", + "text": "User can choose a different static policy option `SpreadPhysicalCPUsPreferredOption` to spread cpus across physical cpus for some specific applications", + "markdown": "User can choose a different static policy option `SpreadPhysicalCPUsPreferredOption` to spread cpus across physical cpus for some specific applications ([#123733](https://github.com/kubernetes/kubernetes/pull/123733), [@Jeffwan](https://github.com/Jeffwan)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4176", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://github.com/kubernetes/website/pull/45216", + "type": "external" + }, + { + "description": "[Other doc]: [\u003clink\u003e](", + "url": "https://github.com/kubernetes/website/pull/45217)", + "type": "external" + } + ], + "author": "Jeffwan", + "author_url": "https://github.com/Jeffwan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123733", + "pr_number": 123733, + "areas": [ + "test", + "kubelet", + "kubeadm" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true + }, + "123797": { + "commit": "d0e78ef70e954f0233cc2e917b7c85cb957d36cd", + "text": "Added `cri-client` staging repository.", + "markdown": "Added `cri-client` staging repository. ([#123797](https://github.com/kubernetes/kubernetes/pull/123797), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Node, Release and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123797", + "pr_number": 123797, + "areas": [ + "test", + "kubelet", + "apiserver", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "node", + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123809": { + "commit": "85d55b67371bae83aa73a3a65b23520e0f22a74b", + "text": "The emission of RecreatingFailedPod and RecreatingTerminatedPod events has been\nremoved from the StatefulSet lifecycle.", + "markdown": "The emission of RecreatingFailedPod and RecreatingTerminatedPod events has been\n removed from the StatefulSet lifecycle. ([#123809](https://github.com/kubernetes/kubernetes/pull/123809), [@atiratree](https://github.com/atiratree)) [SIG Apps and Testing]", + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123809", + "pr_number": 123809, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "123822": { + "commit": "d9d698694862718813294c8672a046cb91cdb759", + "text": "Fixed a missing status prefix in custom resource validation error messages.", + "markdown": "Fixed a missing status prefix in custom resource validation error messages. ([#123822](https://github.com/kubernetes/kubernetes/pull/123822), [@JoelSpeed](https://github.com/JoelSpeed))", + "author": "JoelSpeed", + "author_url": "https://github.com/JoelSpeed", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123822", + "pr_number": 123822, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "123845": { + "commit": "1af6bc992c8afb2cd6f3ebf012f633318717852c", + "text": "Graduated the `DisableNodeKubeProxyVersion` feature gate to beta. By default, the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for its associated Node.", + "markdown": "Graduated the `DisableNodeKubeProxyVersion` feature gate to beta. By default, the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for its associated Node. ([#123845](https://github.com/kubernetes/kubernetes/pull/123845), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Cloud Provider, Network, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4004-deprecate-kube-proxy-version", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123845", + "pr_number": 123845, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "network", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123894": { + "commit": "0c55f74aedea9706f23440c582373d1a8f84cfe1", + "text": "Updated cni-plugins to v1.4.1.", + "markdown": "Updated cni-plugins to v1.4.1. ([#123894](https://github.com/kubernetes/kubernetes/pull/123894), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123894", + "pr_number": 123894, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "123905": { + "commit": "534d7cbc1a6c628e78e28a61a5c37e86f18077bf", + "text": "Services implemented a field selector for the ClusterIP and Type fields.\nThe Kubelet uses this field selector to avoid monitoring Headless Services, which helps reduce memory consumption.", + "markdown": "Services implemented a field selector for the ClusterIP and Type fields.\n The Kubelet uses this field selector to avoid monitoring Headless Services, which helps reduce memory consumption. ([#123905](https://github.com/kubernetes/kubernetes/pull/123905), [@aojea](https://github.com/aojea)) [SIG Apps, Node and Testing]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123905", + "pr_number": 123905, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "123919": { + "commit": "39c6bc31363ddce17edcc85fe6e3a15d5bf928e6", + "text": "Added apiserver.latency.k8s.io/apf-queue-wait annotation to the audit log\nto record the time spent waiting in APF queue.", + "markdown": "Added apiserver.latency.k8s.io/apf-queue-wait annotation to the audit log\n to record the time spent waiting in APF queue. ([#123919](https://github.com/kubernetes/kubernetes/pull/123919), [@hakuna-matatah](https://github.com/hakuna-matatah)) [SIG API Machinery]", + "author": "hakuna-matatah", + "author_url": "https://github.com/hakuna-matatah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123919", + "pr_number": 123919, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "124012": { + "commit": "5f5c02da51cd3146f30c6ee56013c983f4999d9c", + "text": "Added Coordinated Leader Election as Alpha under the `CoordinatedLeaderElection` feature gate. With the feature enabled, the control plane can use LeaseCandidate objects (coordination.k8s.io/v1alpha1 API group) to participate in a leader election and let the kube-apiserver select the best instance according to some strategy.", + "markdown": "Added Coordinated Leader Election as Alpha under the `CoordinatedLeaderElection` feature gate. With the feature enabled, the control plane can use LeaseCandidate objects (coordination.k8s.io/v1alpha1 API group) to participate in a leader election and let the kube-apiserver select the best instance according to some strategy. ([#124012](https://github.com/kubernetes/kubernetes/pull/124012), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Apps, Auth, Cloud Provider, Etcd, Node, Release, Scheduling and Testing]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124012", + "pr_number": 124012, + "areas": [ + "test", + "apiserver", + "provider/gcp", + "release-eng", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cloud-provider", + "etcd", + "node", + "release", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124017": { + "commit": "1ff1207d22ab5cf442c8dafdf5bded1e32519873", + "text": "Removed deprecated command flags --volume-host-cidr-denylist\nand --volume-host-allow-local-loopback from kube-controller-manager.\n", + "markdown": "Removed deprecated command flags --volume-host-cidr-denylist\n and --volume-host-allow-local-loopback from kube-controller-manager.\n ([#124017](https://github.com/kubernetes/kubernetes/pull/124017), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Cloud Provider and Storage]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124017", + "pr_number": 124017, + "areas": [ + "provider/gcp", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "cloud-provider", + "storage" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124025": { + "commit": "80212923db1a49fc2954294ca045ba0a251f00e4", + "text": "Continued streaming kubelet logs when the CRI server of the runtime was unavailable.", + "markdown": "Continued streaming kubelet logs when the CRI server of the runtime was unavailable. ([#124025](https://github.com/kubernetes/kubernetes/pull/124025), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124025", + "pr_number": 124025, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "124026": { + "commit": "c67ea2f7794bd933c806799555e1b2eb8f0e11db", + "text": "Built etcd image v3.5.13.", + "markdown": "Built etcd image v3.5.13. ([#124026](https://github.com/kubernetes/kubernetes/pull/124026), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG API Machinery and Etcd]", + "author": "liangyuanpeng", + "author_url": "https://github.com/liangyuanpeng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124026", + "pr_number": 124026, + "areas": [ + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "etcd" + ], + "duplicate": true, + "is_mapped": true + }, + "124027": { + "commit": "695a984f569bec2835bcb3ac8474cebefd020994", + "text": "etcd: Updated to v3.5.13.", + "markdown": "Etcd: Updated to v3.5.13. ([#124027](https://github.com/kubernetes/kubernetes/pull/124027), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]", + "author": "liangyuanpeng", + "author_url": "https://github.com/liangyuanpeng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124027", + "pr_number": 124027, + "areas": [ + "test", + "provider/gcp", + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "cluster-lifecycle", + "etcd", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "124038": { + "commit": "f3e7e008a4848497e96db115dc0e22e4e7c7288c", + "text": "'kubeadm: Stopped storing the ResolverConfig in the global KubeletConfiguration\nand sets it dynamically for each node instead.'", + "markdown": "'kubeadm: Stopped storing the ResolverConfig in the global KubeletConfiguration\n and sets it dynamically for each node instead.' ([#124038](https://github.com/kubernetes/kubernetes/pull/124038), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124038", + "pr_number": 124038, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124055": { + "commit": "846e282d0523fdb23522e6b318186aa80593c594", + "text": "Optimized log output to avoid printing out redundant information of the pod.", + "markdown": "Optimized log output to avoid printing out redundant information of the pod. ([#124055](https://github.com/kubernetes/kubernetes/pull/124055), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Scheduling]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124055", + "pr_number": 124055, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true, + "is_mapped": true + }, + "124061": { + "commit": "04d2f336419b5a824cb96cb88462ef18a90d619d", + "text": "CustomResourceDefinition objects created with non-empty `caBundle` fields which are invalid or do not contain any certificates will not appear in discovery or serve endpoints until a valid `caBundle` is provided. Updates to CustomResourceDefinition are no longer allowed to transition a valid `caBundle` field to an invalid `caBundle` field, because this breaks serving of the existing CustomResourceDefinition.", + "markdown": "CustomResourceDefinition objects created with non-empty `caBundle` fields which are invalid or do not contain any certificates will not appear in discovery or serve endpoints until a valid `caBundle` is provided. Updates to CustomResourceDefinition are no longer allowed to transition a valid `caBundle` field to an invalid `caBundle` field, because this breaks serving of the existing CustomResourceDefinition. ([#124061](https://github.com/kubernetes/kubernetes/pull/124061), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124061", + "pr_number": 124061, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "124063": { + "commit": "a7ece470e56f0479573db2632031d274867d96b1", + "text": "Fixed a bug where hard evictions due to resource pressure allowed pods\nto use the full termination grace period instead of shutting down instantly. \nThis bug also affected force deleted pods. Both cases now receive a termination grace period of 1 second.", + "markdown": "Fixed a bug where hard evictions due to resource pressure allowed pods\n to use the full termination grace period instead of shutting down instantly. \n This bug also affected force deleted pods. Both cases now receive a termination grace period of 1 second. ([#124063](https://github.com/kubernetes/kubernetes/pull/124063), [@olyazavr](https://github.com/olyazavr)) [SIG Node]", + "author": "olyazavr", + "author_url": "https://github.com/olyazavr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124063", + "pr_number": 124063, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "124075": { + "commit": "62895895094cbb59fe39176afd484ce3d2505b61", + "text": "Dynamic Resource Allocation (DRA): client-side validation of a ResourceHandle would have accepted a missing DriverName, whereas server-side validation then would have raised an error.", + "markdown": "Dynamic Resource Allocation (DRA): client-side validation of a ResourceHandle would have accepted a missing DriverName, whereas server-side validation then would have raised an error. ([#124075](https://github.com/kubernetes/kubernetes/pull/124075), [@pohly](https://github.com/pohly)) [SIG Apps]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124075", + "pr_number": 124075, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124091": { + "commit": "bbfd2145dee670458d623800567facca13e27cc3", + "text": "Fixed kubelet so it would no longer crash when a DRA(Dynamic Resource Allocation) driver returns a nil as part of the Node(Un)PrepareResources response instead of an empty struct (Did not affect drivers written in Go, first showed up with a driver written in Rust).", + "markdown": "Fixed kubelet so it would no longer crash when a DRA(Dynamic Resource Allocation) driver returns a nil as part of the Node(Un)PrepareResources response instead of an empty struct (Did not affect drivers written in Go, first showed up with a driver written in Rust). ([#124091](https://github.com/kubernetes/kubernetes/pull/124091), [@bitoku](https://github.com/bitoku)) [SIG Node]", + "author": "bitoku", + "author_url": "https://github.com/bitoku", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124091", + "pr_number": 124091, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "124092": { + "commit": "9039d71dd7b9916e4faba00a60c86f0c2e45ed89", + "text": "- Windows Kubeproxy will use the update load balancer API for load balancer updates, instead of the previous delete and create APIs.\n- Deletion of remote endpoints will be triggered only for terminated endpoints (those present in the old endpoints map but not in the new endpoints map), whereas previously it was also done for terminating endpoints.", + "markdown": "- Windows Kubeproxy will use the update load balancer API for load balancer updates, instead of the previous delete and create APIs.\n - Deletion of remote endpoints will be triggered only for terminated endpoints (those present in the old endpoints map but not in the new endpoints map), whereas previously it was also done for terminating endpoints. ([#124092](https://github.com/kubernetes/kubernetes/pull/124092), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows]", + "author": "princepereira", + "author_url": "https://github.com/princepereira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124092", + "pr_number": 124092, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "windows" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124101": { + "commit": "e9d9a82839bfe4f159e5bc101d39f7c568699f80", + "text": "Fixed a bug where the Kubelet miscalculated the process usage of pods, causing pods to never get evicted for PID usage.", + "markdown": "Fixed a bug where the Kubelet miscalculated the process usage of pods, causing pods to never get evicted for PID usage. ([#124101](https://github.com/kubernetes/kubernetes/pull/124101), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing]", + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124101", + "pr_number": 124101, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "124116": { + "commit": "3261821fbcb99a34f7f442ff80e8f706734ee322", + "text": "Fixed a deep copy issue when retrieving the controller reference.", + "markdown": "Fixed a deep copy issue when retrieving the controller reference. ([#124116](https://github.com/kubernetes/kubernetes/pull/124116), [@HiranmoyChowdhury](https://github.com/HiranmoyChowdhury)) [SIG API Machinery and Release]", + "author": "HiranmoyChowdhury", + "author_url": "https://github.com/HiranmoyChowdhury", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124116", + "pr_number": 124116, + "areas": [ + "release-eng" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "release" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124123": { + "commit": "ca4a864336bdb1d61bc19e90a9c81ac6c661e6d7", + "text": "Enabled kubectl to find `kubectl-create-subcommand` plugins when positional\narguments exists, e.g. `kubectl create subcommand arg`.", + "markdown": "Enabled kubectl to find `kubectl-create-subcommand` plugins when positional\n arguments exists, e.g. `kubectl create subcommand arg`. ([#124123](https://github.com/kubernetes/kubernetes/pull/124123), [@sttts](https://github.com/sttts)) [SIG CLI]", + "author": "sttts", + "author_url": "https://github.com/sttts", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124123", + "pr_number": 124123, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "124131": { + "commit": "d83cd48e5ebbb1b073164a574ef9aa5a68569d9c", + "text": "Fixed the bug where if Endpointslices mirrored from Endpoints by the EndpointSliceMirroring controller they would not reconcile if modified. were not reconciled if modified", + "markdown": "Fixed the bug where if Endpointslices mirrored from Endpoints by the EndpointSliceMirroring controller they would not reconcile if modified. were not reconciled if modified ([#124131](https://github.com/kubernetes/kubernetes/pull/124131), [@zyjhtangtang](https://github.com/zyjhtangtang)) [SIG Apps and Network]", + "author": "zyjhtangtang", + "author_url": "https://github.com/zyjhtangtang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124131", + "pr_number": 124131, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true, + "is_mapped": true + }, + "124147": { + "commit": "7196c749f27e995b307b584cbf3b50a7056f3fc4", + "text": "Kubemark: added two flags, `--kube-api-qps` which indicates the maximum QPS to the apiserver, and `--kube-api-burst` which indicates maximum burst for throttle to the apiserver.", + "markdown": "Kubemark: added two flags, `--kube-api-qps` which indicates the maximum QPS to the apiserver, and `--kube-api-burst` which indicates maximum burst for throttle to the apiserver. ([#124147](https://github.com/kubernetes/kubernetes/pull/124147), [@devincd](https://github.com/devincd)) [SIG Scalability]", + "author": "devincd", + "author_url": "https://github.com/devincd", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124147", + "pr_number": 124147, + "kinds": [ + "feature" + ], + "sigs": [ + "scalability" + ], + "feature": true, + "is_mapped": true + }, + "124148": { + "commit": "2263f2d719dcbdd972393bbf9d2683c8bb2cf747", + "text": "Add a TopologyManager policy option: max-allowable-numa-nodes to configures maxAllowableNUMANodes for kubelet.", + "markdown": "Add a TopologyManager policy option: max-allowable-numa-nodes to configures maxAllowableNUMANodes for kubelet. ([#124148](https://github.com/kubernetes/kubernetes/pull/124148), [@cyclinder](https://github.com/cyclinder)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/4624", + "type": "KEP" + } + ], + "author": "cyclinder", + "author_url": "https://github.com/cyclinder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124148", + "pr_number": 124148, + "areas": [ + "test", + "kubelet", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "124152": { + "commit": "db91d45d2d71249b7555c3675388ef2976da5efa", + "text": "The (alpha) nftables mode of kube-proxy now requires version 1.0.1 or later\nof the nft command-line, and kernel 5.13 or later. (For testing/development\npurposes, you can use older kernels, as far back as 5.4, if you set the\n`nftables.skipKernelVersionCheck` option in the kube-proxy config, but this is not\nrecommended in production since it may cause problems with other nftables\nusers on the system.)", + "markdown": "The (alpha) nftables mode of kube-proxy now requires version 1.0.1 or later\n of the nft command-line, and kernel 5.13 or later. (For testing/development\n purposes, you can use older kernels, as far back as 5.4, if you set the\n `nftables.skipKernelVersionCheck` option in the kube-proxy config, but this is not\n recommended in production since it may cause problems with other nftables\n users on the system.) ([#124152](https://github.com/kubernetes/kubernetes/pull/124152), [@danwinship](https://github.com/danwinship)) [SIG Network]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124152", + "pr_number": 124152, + "areas": [ + "kube-proxy", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true + }, + "124160": { + "commit": "eb6840928df59bf8203b1eda839ccd3da68fb37d", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#124160](https://github.com/kubernetes/kubernetes/pull/124160), [@Karthik-K-N](https://github.com/Karthik-K-N)) [SIG Network]", + "author": "Karthik-K-N", + "author_url": "https://github.com/Karthik-K-N", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124160", + "pr_number": 124160, + "areas": [ + "kube-proxy", + "ipvs", + "code-organization" + ], + "kinds": [ + "failing-test" + ], + "sigs": [ + "network" + ], + "do_not_publish": true + }, + "124189": { + "commit": "1cbe7b6b439463623f461a4be96fb5e13fa2525c", + "text": "Fixed an issue that prevents the linking of trace spans for requests that are proxied through kube-aggregator.", + "markdown": "Fixed an issue that prevents the linking of trace spans for requests that are proxied through kube-aggregator. ([#124189](https://github.com/kubernetes/kubernetes/pull/124189), [@toddtreece](https://github.com/toddtreece)) [SIG API Machinery]", + "author": "toddtreece", + "author_url": "https://github.com/toddtreece", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124189", + "pr_number": 124189, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "124210": { + "commit": "2f2c1fb8116af491ed2daabc4d4a3350bf8f6fa4", + "text": "The feature gate \"SkipReadOnlyValidationGCE\" has been removed. This gate has been active for 2 releases with no reports of issues (and was such a niche thing, we didn't expect any).", + "markdown": "The feature gate \"SkipReadOnlyValidationGCE\" has been removed. This gate has been active for 2 releases with no reports of issues (and was such a niche thing, we didn't expect any). ([#124210](https://github.com/kubernetes/kubernetes/pull/124210), [@thockin](https://github.com/thockin)) [SIG Apps]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124210", + "pr_number": 124210, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "124220": { + "commit": "dad8fe71f2b2b942b125b3bbbab60e5f2bb5fa1f", + "text": "Kubelet would not restart the container when fields other than image in the Pod spec change. pod spec change.", + "markdown": "Kubelet would not restart the container when fields other than image in the Pod spec change. pod spec change. ([#124220](https://github.com/kubernetes/kubernetes/pull/124220), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node]", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124220", + "pr_number": 124220, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "124221": { + "commit": "b2a8ac15a0db0d3f2c7ae6c221ed56e2e3cde7fb", + "text": "Fixed a typo in the help text for the pod_scheduling_sli_duration_seconds metric in kube-scheduler.", + "markdown": "Fixed a typo in the help text for the pod_scheduling_sli_duration_seconds metric in kube-scheduler. ([#124221](https://github.com/kubernetes/kubernetes/pull/124221), [@arturhoo](https://github.com/arturhoo)) [SIG Instrumentation, Scheduling and Testing]", + "author": "arturhoo", + "author_url": "https://github.com/arturhoo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124221", + "pr_number": 124221, + "areas": [ + "test", + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "instrumentation", + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "124281": { + "commit": "4878acc5e58268c2c59054dc25c8f53c6a861501", + "text": "Allowed parameter to be set along with proto file path.", + "markdown": "Allowed parameter to be set along with proto file path. ([#124281](https://github.com/kubernetes/kubernetes/pull/124281), [@fulviodenza](https://github.com/fulviodenza)) [SIG API Machinery]", + "author": "fulviodenza", + "author_url": "https://github.com/fulviodenza", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124281", + "pr_number": 124281, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "124287": { + "commit": "b27608875c45218f7a9fa6e9cfdfe17f15328bb2", + "text": "The scheduler implemented QueueingHint in the TaintToleration plugin, enhancing the throughput of scheduling.", + "markdown": "The scheduler implemented QueueingHint in the TaintToleration plugin, enhancing the throughput of scheduling. ([#124287](https://github.com/kubernetes/kubernetes/pull/124287), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124287", + "pr_number": 124287, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124299": { + "commit": "e59eceec480e1e181e38bc29e2c01652ec3c671c", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#124299](https://github.com/kubernetes/kubernetes/pull/124299), [@kushalShukla-web](https://github.com/kushalShukla-web)) [SIG API Machinery]", + "author": "kushalShukla-web", + "author_url": "https://github.com/kushalShukla-web", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124299", + "pr_number": 124299, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "124316": { + "commit": "5a71f37805246db1f7f681c4ee7da508054cc429", + "text": "ACTION-REQUIRED: Dynamic Resource Allocation (DRA) drivers using the v1alpha2 kubelet gRPC API are no longer supported and need to be updated.", + "markdown": "ACTION-REQUIRED: Dynamic Resource Allocation (DRA) drivers using the v1alpha2 kubelet gRPC API are no longer supported and need to be updated. ([#124316](https://github.com/kubernetes/kubernetes/pull/124316), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124316", + "pr_number": 124316, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "124320": { + "commit": "951e624adabcf3b20bb112978f0005dda93a8924", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#124320](https://github.com/kubernetes/kubernetes/pull/124320), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG Auth, Node and Storage]", + "author": "liangyuanpeng", + "author_url": "https://github.com/liangyuanpeng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124320", + "pr_number": 124320, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "node", + "storage" + ], + "duplicate": true, + "do_not_publish": true + }, + "124328": { + "commit": "16a594f907d0d4a6224dab2d0704793d5e7898f6", + "text": "The name of CEL(Common Expression Language) optional type has been changed from `optional` to `optional_type`.", + "markdown": "The name of CEL(Common Expression Language) optional type has been changed from `optional` to `optional_type`. ([#124328](https://github.com/kubernetes/kubernetes/pull/124328), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Network and Node]", + "author": "jiahuif", + "author_url": "https://github.com/jiahuif", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124328", + "pr_number": 124328, + "areas": [ + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "network", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124329": { + "commit": "7943c17867997af123ca5c2596b744f4e86c7860", + "text": "Removed generally available feature gate `ReadWriteOncePod`.", + "markdown": "Removed generally available feature gate `ReadWriteOncePod`. ([#124329](https://github.com/kubernetes/kubernetes/pull/124329), [@chrishenzie](https://github.com/chrishenzie)) [SIG Storage]", + "author": "chrishenzie", + "author_url": "https://github.com/chrishenzie", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124329", + "pr_number": 124329, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "124342": { + "commit": "52c0ed4673b30c2cb80d7ee680b6b8336fb1c488", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#124342](https://github.com/kubernetes/kubernetes/pull/124342), [@zhifei92](https://github.com/zhifei92)) [SIG Node]", + "author": "zhifei92", + "author_url": "https://github.com/zhifei92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124342", + "pr_number": 124342, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "124344": { + "commit": "0b15f8cbfc611889f703495ee845b3c54bdd759d", + "text": "Fixed a race condition in the transforming informer that occurred when objects were accessed during the Resync operation.", + "markdown": "Fixed a race condition in the transforming informer that occurred when objects were accessed during the Resync operation. ([#124344](https://github.com/kubernetes/kubernetes/pull/124344), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery]", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124344", + "pr_number": 124344, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "124350": { + "commit": "d593c886b1fd4119204b8e5a5fc012e36f42fd7a", + "text": "e2e.test and e2e_node.test: tests which depend on alpha or beta feature gates now have `Feature:Alpha` or `Feature:Beta` as Ginkgo labels. The inline text is `[Alpha]` or `[Beta]`, as before.", + "markdown": "E2e.test and e2e_node.test: tests which depend on alpha or beta feature gates now have `Feature:Alpha` or `Feature:Beta` as Ginkgo labels. The inline text is `[Alpha]` or `[Beta]`, as before. ([#124350](https://github.com/kubernetes/kubernetes/pull/124350), [@pohly](https://github.com/pohly)) [SIG Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124350", + "pr_number": 124350, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ], + "is_mapped": true + }, + "124352": { + "commit": "bc05bef903c063423ac009569974ccbc81138d66", + "text": "Fixed a race condition in kube-controller-manager and the scheduler, caused by\na bug in the transforming informer during the Resync operation, \nby making the transforming function idempotent.", + "markdown": "Fixed a race condition in kube-controller-manager and the scheduler, caused by\n a bug in the transforming informer during the Resync operation, \n by making the transforming function idempotent. ([#124352](https://github.com/kubernetes/kubernetes/pull/124352), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Scheduling]", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124352", + "pr_number": 124352, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "scheduling" + ], + "duplicate": true, + "is_mapped": true + }, + "124361": { + "commit": "e6efba3380c87503f918053c0511587485a2f828", + "text": "kubeadm: Removed support for mounting /etc/pki as an additional Linux system CA location\nin kube-apisever and kube-controller-manager pods. Instead, it shifted to supporting the\nmounting of /etc/pki/ca-trust and /etc/pki/tls/certs. The locations /etc/ca-certificate,\n/usr/share/ca-certificates, /usr/local/share/ca-certificates, and /etc/ssl/certs continued\nto be supported.", + "markdown": "Kubeadm: Removed support for mounting /etc/pki as an additional Linux system CA location\n in kube-apisever and kube-controller-manager pods. Instead, it shifted to supporting the\n mounting of /etc/pki/ca-trust and /etc/pki/tls/certs. The locations /etc/ca-certificate,\n /usr/share/ca-certificates, /usr/local/share/ca-certificates, and /etc/ssl/certs continued\n to be supported. ([#124361](https://github.com/kubernetes/kubernetes/pull/124361), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124361", + "pr_number": 124361, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124364": { + "commit": "cc9e0643c0489f863f789c76d0fad5a5e13a14c3", + "text": "Updated cri-tools to v1.30.0.", + "markdown": "Updated cri-tools to v1.30.0. ([#124364](https://github.com/kubernetes/kubernetes/pull/124364), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Release]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124364", + "pr_number": 124364, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "node", + "release" + ], + "duplicate": true, + "is_mapped": true + }, + "124373": { + "commit": "6bb968c4d2097e12b90ac196bd1ef28d9bc467b4", + "text": "kubeadm: removed the deprecated and NO-OP \"kubeadm join control-plane-join update-status\" phase.", + "markdown": "Kubeadm: removed the deprecated and NO-OP \"kubeadm join control-plane-join update-status\" phase. ([#124373](https://github.com/kubernetes/kubernetes/pull/124373), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124373", + "pr_number": 124373, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "124374": { + "commit": "c4bce63d9886e5f1fc00f8c3b5a13ea0d2bdf772", + "text": "kubeadm: removed the EXPERIMENTAL tag from the phase \"kubeadm join control-plane-prepare download-certs\".", + "markdown": "Kubeadm: removed the EXPERIMENTAL tag from the phase \"kubeadm join control-plane-prepare download-certs\". ([#124374](https://github.com/kubernetes/kubernetes/pull/124374), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124374", + "pr_number": 124374, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "124375": { + "commit": "0e39ca84dc0224edf6b399772d6f4072b4fe8b9b", + "text": "kubeadm: The global --rootfs flag considered non-experimental.", + "markdown": "Kubeadm: The global --rootfs flag considered non-experimental. ([#124375](https://github.com/kubernetes/kubernetes/pull/124375), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124375", + "pr_number": 124375, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "124381": { + "commit": "5d88b0e08f26055290ca808db061efc841494f93", + "text": "Added support for CEL(Common Expression Language) expressions and `additionalProperties` to be used under nested quantifiers in CRD schemas.", + "markdown": "Added support for CEL(Common Expression Language) expressions and `additionalProperties` to be used under nested quantifiers in CRD schemas. ([#124381](https://github.com/kubernetes/kubernetes/pull/124381), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4153", + "type": "external" + } + ], + "author": "alexzielenski", + "author_url": "https://github.com/alexzielenski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124381", + "pr_number": 124381, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "124383": { + "commit": "bf07ef3950d80256cb366b035712b6d60b8a3f4c", + "text": "kube-proxy's nftables mode (--proxy-mode=nftables) is now beta and available by default.", + "markdown": "Kube-proxy's nftables mode (--proxy-mode=nftables) is now beta and available by default. ([#124383](https://github.com/kubernetes/kubernetes/pull/124383), [@danwinship](https://github.com/danwinship)) [SIG Cloud Provider and Network]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3866", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124383", + "pr_number": 124383, + "areas": [ + "kube-proxy", + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "network" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124393": { + "commit": "f39ece24b27062a8d9eb791ffebc252ea1449734", + "text": "'kubeadm: marked the flag \"--experimental-output'' as deprecated (it will\nbe removed in a future release) and added a new flag ''--output\" that serves the\nsame purpose. Affected commands are - \"kubeadm config images list\", \"kubeadm token\nlist\", \"kubeadm upgrade plan\", \"kubeadm certs check-expiration\".'", + "markdown": "'kubeadm: marked the flag \"--experimental-output'' as deprecated (it will\n be removed in a future release) and added a new flag ''--output\" that serves the\n same purpose. Affected commands are - \"kubeadm config images list\", \"kubeadm token\n list\", \"kubeadm upgrade plan\", \"kubeadm certs check-expiration\".' ([#124393](https://github.com/kubernetes/kubernetes/pull/124393), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124393", + "pr_number": 124393, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "124417": { + "commit": "74877bb43bc88e21b7304382cf039947a7d90069", + "text": "The feature gate \"DefaultHostNetworkHostPortsInPodTemplates\" has been removed. This behavior was deprecated in v1.28, and has had no reports of issues since.", + "markdown": "The feature gate \"DefaultHostNetworkHostPortsInPodTemplates\" has been removed. This behavior was deprecated in v1.28, and has had no reports of issues since. ([#124417](https://github.com/kubernetes/kubernetes/pull/124417), [@thockin](https://github.com/thockin)) [SIG Apps]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124417", + "pr_number": 124417, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "124419": { + "commit": "ba05a8deb3cfcc52a9f80bf4e2303cd552fc582b", + "text": "'kubeadm: marked the sub-phase of ''init kubelet-finalize'' called ''experimental-cert-rotation''\nas deprecated and print a warning if it is used directly; it will be removed in\na future release. Added a replacement sub-phase ''enable-client-cert-rotation''.'", + "markdown": "'kubeadm: marked the sub-phase of ''init kubelet-finalize'' called ''experimental-cert-rotation''\n as deprecated and print a warning if it is used directly; it will be removed in\n a future release. Added a replacement sub-phase ''enable-client-cert-rotation''.' ([#124419](https://github.com/kubernetes/kubernetes/pull/124419), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124419", + "pr_number": 124419, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124428": { + "commit": "74ae6d1b4b31db5588fea61253f4ade5b5ff1660", + "text": "Added a testcase to check hostname and hostNetwork.", + "markdown": "Added a testcase to check hostname and hostNetwork. ([#124428](https://github.com/kubernetes/kubernetes/pull/124428), [@yashsingh74](https://github.com/yashsingh74)) [SIG Architecture, Network and Testing]", + "author": "yashsingh74", + "author_url": "https://github.com/yashsingh74", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124428", + "pr_number": 124428, + "areas": [ + "test", + "conformance" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture", + "network", + "testing" + ], + "duplicate": true, + "do_not_publish": true, + "is_mapped": true + }, + "124430": { + "commit": "57d197fb890a50a508c4e9e485da5076a6d1b055", + "text": "Fixed node reporting \"notReady\" with the reason 'container runtime status check may not have completed yet' after kubelet restart.", + "markdown": "Fixed node reporting \"notReady\" with the reason 'container runtime status check may not have completed yet' after kubelet restart. ([#124430](https://github.com/kubernetes/kubernetes/pull/124430), [@AllenXu93](https://github.com/AllenXu93))", + "author": "AllenXu93", + "author_url": "https://github.com/AllenXu93", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124430", + "pr_number": 124430, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "124444": { + "commit": "159d4b837afd17e2d331c6d3b2561d02c47803d6", + "text": "Fixed issue where following Windows container logs would prevent container log rotation.", + "markdown": "Fixed issue where following Windows container logs would prevent container log rotation. ([#124444](https://github.com/kubernetes/kubernetes/pull/124444), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Testing and Windows]", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124444", + "pr_number": 124444, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "node", + "testing", + "windows" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124462": { + "commit": "0a8d2f770edf7bf467e780ce0ad413b6ec2d04e5", + "text": "Removed generally available feature gate `CSINodeExpandSecret`.", + "markdown": "Removed generally available feature gate `CSINodeExpandSecret`. ([#124462](https://github.com/kubernetes/kubernetes/pull/124462), [@carlory](https://github.com/carlory)) [SIG Storage]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124462", + "pr_number": 124462, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "124463": { + "commit": "e342ab05bb903519350cedac784898529eaef06b", + "text": "Removed generally available feature gate `ConsistentHTTPGetHandlers`.", + "markdown": "Removed generally available feature gate `ConsistentHTTPGetHandlers`. ([#124463](https://github.com/kubernetes/kubernetes/pull/124463), [@carlory](https://github.com/carlory)) [SIG Node]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124463", + "pr_number": 124463, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "124464": { + "commit": "3c323f8546b49aac56ff9fc970b4cdfea461dbdf", + "text": "kubeadm: Used output/v1alpha3 to print structural output for the commands \"kubeadm config images list\" and \"kubeadm token list\".", + "markdown": "Kubeadm: Used output/v1alpha3 to print structural output for the commands \"kubeadm config images list\" and \"kubeadm token list\". ([#124464](https://github.com/kubernetes/kubernetes/pull/124464), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124464", + "pr_number": 124464, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "124465": { + "commit": "44c45484e00b0cdd8e44a5098dab097c1a1b47e2", + "text": "kubeadm: Switched to using the new etcd endpoints introduced in 3.5.11 - /livez (for liveness probe) and /readyz (for readyness and startup probe). With this change it is no longer possible to deploy a custom etcd version older than 3.5.11 with kubeadm 1.31. If so, please upgrade etcd to a supported version.", + "markdown": "Kubeadm: Switched to using the new etcd endpoints introduced in 3.5.11 - /livez (for liveness probe) and /readyz (for readyness and startup probe). With this change it is no longer possible to deploy a custom etcd version older than 3.5.11 with kubeadm 1.31. If so, please upgrade etcd to a supported version. ([#124465](https://github.com/kubernetes/kubernetes/pull/124465), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124465", + "pr_number": 124465, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "124480": { + "commit": "646fbe6d0a3fa1a100d90a429f039324de9c8138", + "text": "'kubeadm: fixed a regression where the KubeletConfiguration is not properly\ndownloaded during \"kubeadm upgrade\" command from the kube-system/kubelet-config\nConfigMap, resulting in the local ''/var/lib/kubelet/config.yaml'' file being\nwritten as a defaulted config.'", + "markdown": "'kubeadm: fixed a regression where the KubeletConfiguration is not properly\n downloaded during \"kubeadm upgrade\" command from the kube-system/kubelet-config\n ConfigMap, resulting in the local ''/var/lib/kubelet/config.yaml'' file being\n written as a defaulted config.' ([#124480](https://github.com/kubernetes/kubernetes/pull/124480), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124480", + "pr_number": 124480, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124496": { + "commit": "17854f0e0a153b06f9d0db096e2cd8ab2fa89c11", + "text": "kubeadm: removed the deprecated `output.kubeadm.k8s.io/v1alpha2` API for structured output. Please use v1alpha3 instead.", + "markdown": "Kubeadm: removed the deprecated `output.kubeadm.k8s.io/v1alpha2` API for structured output. Please use v1alpha3 instead. ([#124496](https://github.com/kubernetes/kubernetes/pull/124496), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124496", + "pr_number": 124496, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "124500": { + "commit": "8240d882ab614d40538c7e441226be33bbdfb021", + "text": "kube-scheduler deprecated all non-csi volumelimit plugins and removed those from defaults plugins. \n- AzureDiskLimits\n- CinderLimits\n- EBSLimits\n- GCEPDLimits\n\nThe NodeVolumeLimits plugin can handle the same functionality as the above plugins since the above volume types are migrated to CSI.\nPlease remove those plugins and replace them with the NodeVolumeLimits plugin if you explicitly use those plugins in the scheduler config.\nThose plugins will be removed in the release 1.32.", + "markdown": "Kube-scheduler deprecated all non-csi volumelimit plugins and removed those from defaults plugins. \n - AzureDiskLimits\n - CinderLimits\n - EBSLimits\n - GCEPDLimits\n \n The NodeVolumeLimits plugin can handle the same functionality as the above plugins since the above volume types are migrated to CSI.\n Please remove those plugins and replace them with the NodeVolumeLimits plugin if you explicitly use those plugins in the scheduler config.\n Those plugins will be removed in the release 1.32. ([#124500](https://github.com/kubernetes/kubernetes/pull/124500), [@carlory](https://github.com/carlory)) [SIG Scheduling and Storage]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124500", + "pr_number": 124500, + "kinds": [ + "api-change", + "deprecation" + ], + "sigs": [ + "scheduling", + "storage" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124503": { + "commit": "bae83009d36fc9729482404dddc3b03ab751f08e", + "text": "kubeadm: Added support during the preflight check \"CreateJob\" of \"kubeadm upgrade\" to check if there are no nodes where a Pod can be scheduled. If there are none, show a warning and skip this preflight check. This can happen in single node clusters where the only node was drained.", + "markdown": "Kubeadm: Added support during the preflight check \"CreateJob\" of \"kubeadm upgrade\" to check if there are no nodes where a Pod can be scheduled. If there are none, show a warning and skip this preflight check. This can happen in single node clusters where the only node was drained. ([#124503](https://github.com/kubernetes/kubernetes/pull/124503), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124503", + "pr_number": 124503, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124505": { + "commit": "3d24b962bef80a1f5b7aaae42e6fc841628ee4ac", + "text": "Removed admission plugin `PersistentVolumeLabel`. Please use https://github.com/kubernetes-sigs/cloud-pv-admission-labeler instead if you need a similar functionality.", + "markdown": "Removed admission plugin `PersistentVolumeLabel`. Please use https://github.com/kubernetes-sigs/cloud-pv-admission-labeler instead if you need a similar functionality. ([#124505](https://github.com/kubernetes/kubernetes/pull/124505), [@jsafrane](https://github.com/jsafrane)) [SIG API Machinery, Auth and Storage]", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124505", + "pr_number": 124505, + "areas": [ + "apiserver", + "code-generation" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "auth", + "storage" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true, + "is_mapped": true + }, + "124509": { + "commit": "6ac60160c5729ade462b041b170ec8ac0f1eb3bc", + "text": "Introduced new functionality to the client-go's **list** verb, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate.\n\nIt is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, client-go will revert to using the normal `LIST` method to obtain data.", + "markdown": "Introduced new functionality to the client-go's **list** verb, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate.\n \n It is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, client-go will revert to using the normal `LIST` method to obtain data. ([#124509](https://github.com/kubernetes/kubernetes/pull/124509), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, Auth, Instrumentation and Testing]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124509", + "pr_number": 124509, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124514": { + "commit": "f281a02d236d1112009c54062b99972ea6e4e731", + "text": "Fixed bug where kubectl get with --sort-by flag does not sort strings alphanumerically.", + "markdown": "Fixed bug where kubectl get with --sort-by flag does not sort strings alphanumerically. ([#124514](https://github.com/kubernetes/kubernetes/pull/124514), [@brianpursley](https://github.com/brianpursley)) [SIG CLI]", + "author": "brianpursley", + "author_url": "https://github.com/brianpursley", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124514", + "pr_number": 124514, + "areas": [ + "kubectl", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "124516": { + "commit": "bf454d7c5926935bbd0b837b938a07990d01ee69", + "text": "Fixed a regression where `kubelet --hostname-override` no longer worked\ncorrectly with an external cloud provider.", + "markdown": "Fixed a regression where `kubelet --hostname-override` no longer worked\n correctly with an external cloud provider. ([#124516](https://github.com/kubernetes/kubernetes/pull/124516), [@danwinship](https://github.com/danwinship)) [SIG Node]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124516", + "pr_number": 124516, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124519": { + "commit": "4d17d30029aaddc2132d65c019e30d1c153bf4d1", + "text": "Removed the last remaining in-tree gcp cloud provider and credential provider.\nPlease use the external cloud provider and credential provider from https://github.com/kubernetes/cloud-provider-gcp\ninstead.", + "markdown": "Removed the last remaining in-tree gcp cloud provider and credential provider.\n Please use the external cloud provider and credential provider from https://github.com/kubernetes/cloud-provider-gcp\n instead. ([#124519](https://github.com/kubernetes/kubernetes/pull/124519), [@dims](https://github.com/dims)) [SIG API Machinery, Apps, Auth, Autoscaling, Cloud Provider, Instrumentation, Network, Node, Scheduling, Storage and Testing]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124519", + "pr_number": 124519, + "areas": [ + "test", + "kubelet", + "apiserver", + "cloudprovider", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "autoscaling", + "cloud-provider", + "instrumentation", + "network", + "node", + "scheduling", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "124530": { + "commit": "e83fca8dd9bd6636d4956836082b250bbe939109", + "text": "Finished initial generic controlplane refactor of kube-apiserver, providing a sample binary building a Kubernetes-like control plane, but without container orchestration resources.", + "markdown": "Finished initial generic controlplane refactor of kube-apiserver, providing a sample binary building a Kubernetes-like control plane, but without container orchestration resources. ([#124530](https://github.com/kubernetes/kubernetes/pull/124530), [@sttts](https://github.com/sttts)) [SIG API Machinery, Apps, Cloud Provider, Network, Node and Testing]", + "author": "sttts", + "author_url": "https://github.com/sttts", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124530", + "pr_number": 124530, + "areas": [ + "test", + "kubelet", + "apiserver", + "cloudprovider", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "cloud-provider", + "network", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "124544": { + "commit": "59ba132f16ef92c9f7278b9466cf9cc7a479226c", + "text": "CephFS volume plugin ( `kubernetes.io/cephfs`) was removed in this release and the `cephfs` volume type became non-functional. Alternative is to use CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment of your application is required to use the new driver if you were using `kubernetes.io/cephfs` volume plugin before upgrading cluster version to 1.31+.", + "markdown": "CephFS volume plugin ( `kubernetes.io/cephfs`) was removed in this release and the `cephfs` volume type became non-functional. Alternative is to use CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment of your application is required to use the new driver if you were using `kubernetes.io/cephfs` volume plugin before upgrading cluster version to 1.31+. ([#124544](https://github.com/kubernetes/kubernetes/pull/124544), [@carlory](https://github.com/carlory)) [SIG Node, Scalability, Storage and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124544", + "pr_number": 124544, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup", + "api-change", + "deprecation" + ], + "sigs": [ + "node", + "scalability", + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true, + "is_mapped": true + }, + "124546": { + "commit": "df074ed002865166ee051a8a66ef136935afc485", + "text": "CephRBD volume plugin ( `kubernetes.io/rbd`) was removed in this release. And its csi migration support was also removed, so the `rbd` volume type became non-functional. Alternative is to use RBD CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment of your application is required to use the new driver if you were using `kubernetes.io/rbd` volume plugin before upgrading cluster version to 1.31+.", + "markdown": "CephRBD volume plugin ( `kubernetes.io/rbd`) was removed in this release. And its csi migration support was also removed, so the `rbd` volume type became non-functional. Alternative is to use RBD CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment of your application is required to use the new driver if you were using `kubernetes.io/rbd` volume plugin before upgrading cluster version to 1.31+. ([#124546](https://github.com/kubernetes/kubernetes/pull/124546), [@carlory](https://github.com/carlory)) [SIG Node, Scalability, Scheduling, Storage and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124546", + "pr_number": 124546, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup", + "api-change", + "deprecation" + ], + "sigs": [ + "node", + "scalability", + "scheduling", + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true, + "is_mapped": true + }, + "124553": { + "commit": "8dbeaa5786bab14772873cc90af70ccb9b06b4c1", + "text": "Fixed a 1.30.0 regression in OpenAPI descriptions of the `imagePullSecrets` and \n`hostAliases` fields to mark the fields used as keys in those lists as either defaulted\nor required.", + "markdown": "Fixed a 1.30.0 regression in OpenAPI descriptions of the `imagePullSecrets` and \n `hostAliases` fields to mark the fields used as keys in those lists as either defaulted\n or required. ([#124553](https://github.com/kubernetes/kubernetes/pull/124553), [@pmalek](https://github.com/pmalek)) [SIG API Machinery]", + "author": "pmalek", + "author_url": "https://github.com/pmalek", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124553", + "pr_number": 124553, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124557": { + "commit": "ae8474adcdb5957ebaef82de55fbabdf2433356a", + "text": "Added metrics for the nftables kube-proxy mode rather than it reporting\nmetrics with \"iptables\" in their names.", + "markdown": "Added metrics for the nftables kube-proxy mode rather than it reporting\n metrics with \"iptables\" in their names. ([#124557](https://github.com/kubernetes/kubernetes/pull/124557), [@danwinship](https://github.com/danwinship)) [SIG Network and Windows]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124557", + "pr_number": 124557, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124568": { + "commit": "130414950fbb0881792aede383f53a9d6d9d721d", + "text": "Fixed a bug in the API server where empty collections of ValidatingAdmissionPolicies did not have an `items` field.", + "markdown": "Fixed a bug in the API server where empty collections of ValidatingAdmissionPolicies did not have an `items` field. ([#124568](https://github.com/kubernetes/kubernetes/pull/124568), [@xyz-li](https://github.com/xyz-li)) [SIG API Machinery]", + "author": "xyz-li", + "author_url": "https://github.com/xyz-li", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124568", + "pr_number": 124568, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "124574": { + "commit": "e702c2e0b6aa746d07afed1dcb4bcdc352267d53", + "text": "Added the ability to the kubelet server to dynamically load certificate files.", + "markdown": "Added the ability to the kubelet server to dynamically load certificate files. ([#124574](https://github.com/kubernetes/kubernetes/pull/124574), [@zhangweikop](https://github.com/zhangweikop)) [SIG Auth and Node]", + "author": "zhangweikop", + "author_url": "https://github.com/zhangweikop", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124574", + "pr_number": 124574, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124588": { + "commit": "7a6931b31cf04d2a91ce8c0af09ad0f474927436", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#124588](https://github.com/kubernetes/kubernetes/pull/124588), [@jiuker](https://github.com/jiuker)) [SIG API Machinery]", + "author": "jiuker", + "author_url": "https://github.com/jiuker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124588", + "pr_number": 124588, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "124589": { + "commit": "fdefcb43d105ab2e1e12019da9f0fcd1625f0447", + "text": "\"Fixed the ResourceClaim controller forgetting to wait for `podSchedulingSynced` \nand `templatesSynced`.\"", + "markdown": "\"Fixed the ResourceClaim controller forgetting to wait for `podSchedulingSynced` \n and `templatesSynced`.\" ([#124589](https://github.com/kubernetes/kubernetes/pull/124589), [@carlory](https://github.com/carlory)) [SIG Apps and Node]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124589", + "pr_number": 124589, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "124592": { + "commit": "0590bb1ac495ae8af2a573f879408e48800da2c5", + "text": "Added completion for `kubectl set image`.", + "markdown": "Added completion for `kubectl set image`. ([#124592](https://github.com/kubernetes/kubernetes/pull/124592), [@ah8ad3](https://github.com/ah8ad3)) [SIG CLI]", + "author": "ah8ad3", + "author_url": "https://github.com/ah8ad3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124592", + "pr_number": 124592, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "124595": { + "commit": "8c478a06d897638ba0f48a01ae83734e3583a9c0", + "text": "Dynamic Resource Allocation (DRA): fixed some small, unlikely race condition during pod scheduling.", + "markdown": "Dynamic Resource Allocation (DRA): fixed some small, unlikely race condition during pod scheduling. ([#124595](https://github.com/kubernetes/kubernetes/pull/124595), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124595", + "pr_number": 124595, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "124598": { + "commit": "44bd04c0cbddde69aaeb7a90d3bd3de4e417f27f", + "text": "\"`kubectl describe service`\" and \"`kubectl describe ingress`\" will now use endpointslices instead of endpoints.\n", + "markdown": "\"`kubectl describe service`\" and \"`kubectl describe ingress`\" will now use endpointslices instead of endpoints.\n ([#124598](https://github.com/kubernetes/kubernetes/pull/124598), [@aroradaman](https://github.com/aroradaman)) [SIG CLI and Network]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124598", + "pr_number": 124598, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli", + "network" + ], + "duplicate": true, + "is_mapped": true + }, + "124612": { + "commit": "d8ed461ba19fce6fc64991a8e0e7e47167596fba", + "text": "Added check for etcd version to warn about deprecated etcd versions if `ConsistentListFromCache` is enabled.", + "markdown": "Added check for etcd version to warn about deprecated etcd versions if `ConsistentListFromCache` is enabled. ([#124612](https://github.com/kubernetes/kubernetes/pull/124612), [@ah8ad3](https://github.com/ah8ad3)) [SIG API Machinery]", + "author": "ah8ad3", + "author_url": "https://github.com/ah8ad3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124612", + "pr_number": 124612, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "124614": { + "commit": "b10a141fd2c291feea78c4e36483933b25368224", + "text": "client-go/reflector: warns when the bookmark event for initial events hasn't been received", + "markdown": "Client-go/reflector: warns when the bookmark event for initial events hasn't been received ([#124614](https://github.com/kubernetes/kubernetes/pull/124614), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124614", + "pr_number": 124614, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "124618": { + "commit": "db82fd1604ebf327ab74cde0a7158a8d95d46202", + "text": "Improved scheduling latency when there are many gated pods and events that trigger requeueing from the unschedulable pool.", + "markdown": "Improved scheduling latency when there are many gated pods and events that trigger requeueing from the unschedulable pool. ([#124618](https://github.com/kubernetes/kubernetes/pull/124618), [@gabesaba](https://github.com/gabesaba)) [SIG Scheduling and Testing]", + "author": "gabesaba", + "author_url": "https://github.com/gabesaba", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124618", + "pr_number": 124618, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "124634": { + "commit": "06b813fd29bcf5f69184259b3b07af612b70077b", + "text": "Moved remote CRI implementation from kubelet to `k8s.io/cri-client` repository.", + "markdown": "Moved remote CRI implementation from kubelet to `k8s.io/cri-client` repository. ([#124634](https://github.com/kubernetes/kubernetes/pull/124634), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node, Release and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124634", + "pr_number": 124634, + "areas": [ + "test", + "kubelet", + "apiserver", + "release-eng", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "release", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "124635": { + "commit": "f4ea903712482c4a0021cc9c8d742673a213833e", + "text": "client-go/tools/record.Broadcaster: Fixed automatic shutdown on WithContext cancellation.", + "markdown": "Client-go/tools/record.Broadcaster: Fixed automatic shutdown on WithContext cancellation. ([#124635](https://github.com/kubernetes/kubernetes/pull/124635), [@pohly](https://github.com/pohly)) [SIG API Machinery]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124635", + "pr_number": 124635, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "124653": { + "commit": "b36ddbb3725f372b6dabf208d6ec671b01aee432", + "text": "Fixed the format of the error indicating that a user does not have permission on the object referenced by paramRef in ValidatingAdmissionPolicyBinding.", + "markdown": "Fixed the format of the error indicating that a user does not have permission on the object referenced by paramRef in ValidatingAdmissionPolicyBinding. ([#124653](https://github.com/kubernetes/kubernetes/pull/124653), [@m1kola](https://github.com/m1kola)) [SIG API Machinery]", + "author": "m1kola", + "author_url": "https://github.com/m1kola", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124653", + "pr_number": 124653, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "124665": { + "commit": "201e6262c4158db23b8887a9c31e326d34d989d4", + "text": "`kubeadm`: Improved the `IsPrivilegedUser` preflight check to not fail on certain Windows setups.", + "markdown": "`kubeadm`: Improved the `IsPrivilegedUser` preflight check to not fail on certain Windows setups. ([#124665](https://github.com/kubernetes/kubernetes/pull/124665), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124665", + "pr_number": 124665, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "124667": { + "commit": "44c1a0eec2a23e1d2e69dda061ffe6a8667b8aa8", + "text": "Improved memory usage of kube-apiserver by dropping`.metadata.managedFields` field that self-requested informers of kube-apiserver didn't need.", + "markdown": "Improved memory usage of kube-apiserver by dropping`.metadata.managedFields` field that self-requested informers of kube-apiserver didn't need. ([#124667](https://github.com/kubernetes/kubernetes/pull/124667), [@linxiulei](https://github.com/linxiulei)) [SIG API Machinery]", + "author": "linxiulei", + "author_url": "https://github.com/linxiulei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124667", + "pr_number": 124667, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "124673": { + "commit": "54687f317b0aa9980a32fa6287ee6acf8343ca54", + "text": "Promoted `generateName` retries to beta, and made the `NameGenerationRetries` feature gate\nenabled by default.\nYou can read https://kep.k8s.io/4420 for more details.", + "markdown": "Promoted `generateName` retries to beta, and made the `NameGenerationRetries` feature gate\n enabled by default.\n You can read https://kep.k8s.io/4420 for more details. ([#124673](https://github.com/kubernetes/kubernetes/pull/124673), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124673", + "pr_number": 124673, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "124675": { + "commit": "119f9b3e7c7e773af3afa7479b64d4b5a6b1fed8", + "text": "Added the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` to enforce the strict cost calculation for CEL extended libraries. It is strongly recommended to turn on the feature gates as early as possible.", + "markdown": "Added the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` to enforce the strict cost calculation for CEL extended libraries. It is strongly recommended to turn on the feature gates as early as possible. ([#124675](https://github.com/kubernetes/kubernetes/pull/124675), [@cici37](https://github.com/cici37)) [SIG API Machinery, Auth, Node and Testing]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124675", + "pr_number": 124675, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug", + "api-change", + "regression" + ], + "sigs": [ + "api-machinery", + "auth", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124681": { + "commit": "e6547701f1b2f76e79e9a3ce904c0187fad705d5", + "text": "Added Custom resource field selectors in beta and enabled them by default. Check out https://github.com/kubernetes/enhancements/issues/4358 for more details.", + "markdown": "Added Custom resource field selectors in beta and enabled them by default. Check out https://github.com/kubernetes/enhancements/issues/4358 for more details. ([#124681](https://github.com/kubernetes/kubernetes/pull/124681), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth and Testing]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124681", + "pr_number": 124681, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124683": { + "commit": "5e1a1db960660194a00f4ae7d6c9195b3c1715a6", + "text": "Added ports autocompletion for `kubectl port-forward` command.", + "markdown": "Added ports autocompletion for `kubectl port-forward` command. ([#124683](https://github.com/kubernetes/kubernetes/pull/124683), [@TessaIO](https://github.com/TessaIO)) [SIG CLI]", + "author": "TessaIO", + "author_url": "https://github.com/TessaIO", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124683", + "pr_number": 124683, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "124685": { + "commit": "3833d37b28095feabf3456286c4f315b062bf333", + "text": "kubeadm: Switched kubeadm to start using the CRI client library instead of shelling out of the `crictl` binary\nfor actions against a CRI endpoint. The kubeadm deb/rpm packages will continue to install the `cri-tools`\npackage for one more release, but in you must adapt your scripts to install `crictl` manually from\nhttps://github.com/kubernetes-sigs/cri-tools/releases or a different location.\n\nThe `kubeadm` package will stop depending on the `cri-tools` package in Kubernetes 1.32, which means that\ninstalling `kubeadm` will no longer automatically ensure installation of `crictl`.", + "markdown": "Kubeadm: Switched kubeadm to start using the CRI client library instead of shelling out of the `crictl` binary\n for actions against a CRI endpoint. The kubeadm deb/rpm packages will continue to install the `cri-tools`\n package for one more release, but in you must adapt your scripts to install `crictl` manually from\n https://github.com/kubernetes-sigs/cri-tools/releases or a different location.\n \n The `kubeadm` package will stop depending on the `cri-tools` package in Kubernetes 1.32, which means that\n installing `kubeadm` will no longer automatically ensure installation of `crictl`. ([#124685](https://github.com/kubernetes/kubernetes/pull/124685), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cluster Lifecycle]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124685", + "pr_number": 124685, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "124688": { + "commit": "529896474f2fad03156b78e097717dab1649a934", + "text": "kubeadm: Ensured that during \"upgrade\" , if the \"etcd.yaml\" static pod did not need upgrade, still consider rotating the etcd certificates and restarting the etcd static pod if the \"kube-apiserver.yaml\" manifest was to be upgraded and if certificate renewal was not disabled.", + "markdown": "Kubeadm: Ensured that during \"upgrade\" , if the \"etcd.yaml\" static pod did not need upgrade, still consider rotating the etcd certificates and restarting the etcd static pod if the \"kube-apiserver.yaml\" manifest was to be upgraded and if certificate renewal was not disabled. ([#124688](https://github.com/kubernetes/kubernetes/pull/124688), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124688", + "pr_number": 124688, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "124714": { + "commit": "e798b9c269627a10291f36a88b4fa13f034ab57f", + "text": "Fixed throughput when scheduling DaemonSet pods to reach 300 pods/s, if the configured QPS allows it.", + "markdown": "Fixed throughput when scheduling DaemonSet pods to reach 300 pods/s, if the configured QPS allows it. ([#124714](https://github.com/kubernetes/kubernetes/pull/124714), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124714", + "pr_number": 124714, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124715": { + "commit": "78bc18dcb0b554d75bdcf61fb7abecffd5384de2", + "text": "kubeadm: Removed the deprecated `UpgradeAddonsBeforeControlPlane` feature gate; Ensured that the upgrade of the CoreDNS and kube-proxy addons would not be triggered until all the control plane instances were upgraded.", + "markdown": "Kubeadm: Removed the deprecated `UpgradeAddonsBeforeControlPlane` feature gate; Ensured that the upgrade of the CoreDNS and kube-proxy addons would not be triggered until all the control plane instances were upgraded. ([#124715](https://github.com/kubernetes/kubernetes/pull/124715), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124715", + "pr_number": 124715, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "124732": { + "commit": "9f39314eb9b1f0127500cf7f0983fb00f90d49d1", + "text": "Added flag to `kubectl logs` called `--all-pods` to get all pods from a object that uses a pod selector.", + "markdown": "Added flag to `kubectl logs` called `--all-pods` to get all pods from a object that uses a pod selector. ([#124732](https://github.com/kubernetes/kubernetes/pull/124732), [@cmwylie19](https://github.com/cmwylie19)) [SIG CLI and Testing]", + "author": "cmwylie19", + "author_url": "https://github.com/cmwylie19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124732", + "pr_number": 124732, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124735": { + "commit": "9d87fa215d9e8020abdc17132d1252536cd752d2", + "text": "Scheduler changes its logic of calculating `evaluatedNodes` from \"contains the number of nodes that filtered out by PreFilterResult and Filter plugins\" to \"the number of nodes filtered out by Filter plugins only\".", + "markdown": "Scheduler changes its logic of calculating `evaluatedNodes` from \"contains the number of nodes that filtered out by PreFilterResult and Filter plugins\" to \"the number of nodes filtered out by Filter plugins only\". ([#124735](https://github.com/kubernetes/kubernetes/pull/124735), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling]", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124735", + "pr_number": 124735, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "124738": { + "commit": "132c49c40b5ef7d3b9ca822774b0c56d12e2d14f", + "text": "Removed GA ServiceNodePortStaticSubrange feature gate.", + "markdown": "Removed GA ServiceNodePortStaticSubrange feature gate. ([#124738](https://github.com/kubernetes/kubernetes/pull/124738), [@xuzhenglun](https://github.com/xuzhenglun)) [SIG Network]", + "author": "xuzhenglun", + "author_url": "https://github.com/xuzhenglun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124738", + "pr_number": 124738, + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "124767": { + "commit": "57b406a18afc54c84725488e0ca3d4b4cabd61db", + "text": "Removed k8s.io/legacy-cloud-providers from staging.", + "markdown": "Removed k8s.io/legacy-cloud-providers from staging. ([#124767](https://github.com/kubernetes/kubernetes/pull/124767), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Release]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124767", + "pr_number": 124767, + "areas": [ + "cloudprovider", + "release-eng", + "dependency" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "release" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124779": { + "commit": "8339711e1f57936b9bc7283d08bb7b536f10562d", + "text": "Updated the CEL default compatibility environment version to 1.30, ensuring that extended libraries added before version 1.30 are available for use.", + "markdown": "Updated the CEL default compatibility environment version to 1.30, ensuring that extended libraries added before version 1.30 are available for use. ([#124779](https://github.com/kubernetes/kubernetes/pull/124779), [@cici37](https://github.com/cici37)) [SIG API Machinery]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124779", + "pr_number": 124779, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "124793": { + "commit": "2a003648b026abcb6371f7da00740561c393a9a5", + "text": "Fixed the comment for the Job's managedBy field.", + "markdown": "Fixed the comment for the Job's managedBy field. ([#124793](https://github.com/kubernetes/kubernetes/pull/124793), [@mimowo](https://github.com/mimowo)) [SIG API Machinery and Apps]", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124793", + "pr_number": 124793, + "areas": [ + "code-generation" + ], + "kinds": [ + "documentation", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124798": { + "commit": "59da2738ee560ee43f0ab87daec5f85a780eac1b", + "text": "Do not remove the \"batch.kubernetes.io/job-tracking\" finalizer from a Pod, in a corner\ncase scenario, when the Pod is controlled by an API object which is not a batch Job\n(e.g. when the Pod is controlled by a custom CRD).", + "markdown": "Do not remove the \"batch.kubernetes.io/job-tracking\" finalizer from a Pod, in a corner\n case scenario, when the Pod is controlled by an API object which is not a batch Job\n (e.g. when the Pod is controlled by a custom CRD). ([#124798](https://github.com/kubernetes/kubernetes/pull/124798), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124798", + "pr_number": 124798, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "124815": { + "commit": "2171bcb78966539a0c66b5ae8d9a96f9277a7e82", + "text": "Removed the following feature gates:\n- `InTreePluginAWSUnregister`\n- `InTreePluginAzureDiskUnregister`\n- `InTreePluginAzureFileUnregister`\n- `InTreePluginGCEUnregister`\n- `InTreePluginOpenStackUnregister`\n- `InTreePluginvSphereUnregister`", + "markdown": "Removed the following feature gates:\n - `InTreePluginAWSUnregister`\n - `InTreePluginAzureDiskUnregister`\n - `InTreePluginAzureFileUnregister`\n - `InTreePluginGCEUnregister`\n - `InTreePluginOpenStackUnregister`\n - `InTreePluginvSphereUnregister` ([#124815](https://github.com/kubernetes/kubernetes/pull/124815), [@carlory](https://github.com/carlory)) [SIG Storage]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124815", + "pr_number": 124815, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ], + "action_required": true + }, + "124819": { + "commit": "13d9d7c689b86939191c24f4096286c68549c3b7", + "text": "Added a warning when creating or updating a PersistentVolume (PV) with the deprecated annotation `volume.beta.kubernetes.io/mount-options`.", + "markdown": "Added a warning when creating or updating a PersistentVolume (PV) with the deprecated annotation `volume.beta.kubernetes.io/mount-options`. ([#124819](https://github.com/kubernetes/kubernetes/pull/124819), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124819", + "pr_number": 124819, + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "storage" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124820": { + "commit": "22f3ce5e5ebfb62a6b86ab95bf0ef05588b8d297", + "text": "'kubeadm: enhanced the \"patches\" functionality to be able to patch coredns\ndeployment. The new patch target is called \"corednsdeployment\" (e.g. patch file\n\"corednsdeployment+json.json\"). This makes it possible to apply custom patches\nto coredns deployment during \"init\" and \"upgrade\".'", + "markdown": "'kubeadm: enhanced the \"patches\" functionality to be able to patch coredns\n deployment. The new patch target is called \"corednsdeployment\" (e.g. patch file\n \"corednsdeployment+json.json\"). This makes it possible to apply custom patches\n to coredns deployment during \"init\" and \"upgrade\".' ([#124820](https://github.com/kubernetes/kubernetes/pull/124820), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124820", + "pr_number": 124820, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "124828": { + "commit": "12439834f402f6960cc4f9e161bd682aaa130db4", + "text": "Built Kubernetes with Go 1.22.3.", + "markdown": "Built Kubernetes with Go 1.22.3. ([#124828](https://github.com/kubernetes/kubernetes/pull/124828), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124828", + "pr_number": 124828, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124842": { + "commit": "aeed1d0e1a61c7e0824fc65da5483931fc2976c1", + "text": "Promoted HonorPVReclaimPolicy to beta and enable the feature-gate by default", + "markdown": "Promoted HonorPVReclaimPolicy to beta and enable the feature-gate by default ([#124842](https://github.com/kubernetes/kubernetes/pull/124842), [@carlory](https://github.com/carlory)) [SIG Apps, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2644", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124842", + "pr_number": 124842, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "storage", + "testing" + ], + "feature": true, + "duplicate": true + }, + "124864": { + "commit": "0df6f451aea35483746c415083268a282e96f7f3", + "text": "Reverted remove legacycloudproviders from staging.", + "markdown": "Reverted remove legacycloudproviders from staging. ([#124864](https://github.com/kubernetes/kubernetes/pull/124864), [@carlory](https://github.com/carlory)) [SIG Release]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124864", + "pr_number": 124864, + "areas": [ + "release-eng", + "dependency" + ], + "kinds": [ + "bug", + "failing-test", + "regression" + ], + "sigs": [ + "release" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124865": { + "commit": "cade1dddd81eba338df85de7b5d17324a87243b5", + "text": "I0514 15:05:27.290224 72478 networking.go:356] Dump iptables and connntrack flows for node :\n IPTables Dump: \n -A KUBE-EXT-U7I7RVERQEPDX3Y6 -m comment --comment \"masquerade traffic for nettest-7732/node-port-service:http external destinations\" -j KUBE-MARK-MASQ\n -A KUBE-NODEPORTS -p tcp -m comment --comment \"nettest-7732/node-port-service:http\" -m tcp --dport 31800 -j KUBE-EXT-U7I7RVERQEPDX3Y6\n -A KUBE-SEP-VFVEZ5MLNGMSD7ZR -s 10.244.2.11/32 -m comment --comment \"nettest-7732/node-port-service:http\" -j KUBE-MARK-MASQ\n -A KUBE-SEP-VFVEZ5MLNGMSD7ZR -p tcp -m comment --comment \"nettest-7732/node-port-service:http\" -m tcp -j DNAT --to-destination 10.244.2.11:8083\n -A KUBE-SEP-Z3A4G5665FZF4KZI -s 10.244.1.14/32 -m comment --comment \"nettest-7732/node-port-service:http\" -j KUBE-MARK-MASQ\n -A KUBE-SEP-Z3A4G5665FZF4KZI -p tcp -m comment --comment \"nettest-7732/node-port-service:http\" -m tcp -j DNAT --to-destination 10.244.1.14:8083\n -A KUBE-SERVICES -d 10.96.63.98/32 -p tcp -m comment --comment \"nettest-7732/node-port-service:http cluster IP\" -m tcp --dport 80 -j KUBE-SVC-U7I7RVERQEPDX3Y6\n -A KUBE-SVC-U7I7RVERQEPDX3Y6 ! -s 10.244.0.0/16 -d 10.96.63.98/32 -p tcp -m comment --comment \"nettest-7732/node-port-service:http cluster IP\" -m tcp --dport 80 -j KUBE-MARK-MASQ\n -A KUBE-SVC-U7I7RVERQEPDX3Y6 -m comment --comment \"nettest-7732/node-port-service:http -\u003e 10.244.1.14:8083\" -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-Z3A4G5665FZF4KZI\n -A KUBE-SVC-U7I7RVERQEPDX3Y6 -m comment --comment \"nettest-7732/node-port-service:http -\u003e 10.244.2.11:8083\" -j KUBE-SEP-VFVEZ5MLNGMSD7ZR\n Conntrack flows: \n tcp 6 100 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=38048 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=38048 [ASSURED] mark=0 use=1\n tcp 6 13 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=50128 dport=80 src=10.244.1.12 dst=10.244.1.13 sport=8083 dport=50128 [ASSURED] mark=0 use=1\n tcp 6 90 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=53144 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=53144 [ASSURED] mark=0 use=1\n tcp 6 97 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36366 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=36366 [ASSURED] mark=0 use=1\n tcp 6 80 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=57256 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=57256 [ASSURED] mark=0 use=1\n tcp 6 1 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=51984 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=51984 [ASSURED] mark=0 use=1\n tcp 6 107 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=39206 dport=80 src=10.244.1.14 dst=10.244.1.15 sport=8083 dport=39206 [ASSURED] mark=0 use=1\n tcp 6 110 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=42776 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=42776 [ASSURED] mark=0 use=1\n tcp 6 115 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=39222 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=39222 [ASSURED] mark=0 use=1\n tcp 6 1 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=45346 dport=80 src=10.244.3.12 dst=10.244.1.13 sport=8083 dport=45346 [ASSURED] mark=0 use=1\n tcp 6 119 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=56162 dport=80 src=10.244.1.14 dst=10.244.1.15 sport=8083 dport=56162 [ASSURED] mark=0 use=1\n tcp 6 90 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=53146 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=53146 [ASSURED] mark=0 use=1\n tcp 6 91 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38562 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=38562 [ASSURED] mark=0 use=1\n tcp 6 11 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=50116 dport=80 src=10.244.2.10 dst=10.244.1.13 sport=8083 dport=50116 [ASSURED] mark=0 use=1\n tcp 6 105 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36408 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=36408 [ASSURED] mark=0 use=1\n tcp 6 3 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=45362 dport=80 src=10.244.2.10 dst=10.244.1.13 sport=8083 dport=45362 [ASSURED] mark=0 use=2\n tcp 6 88 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38558 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38558 [ASSURED] mark=0 use=1\n tcp 6 99 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36376 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=36376 [ASSURED] mark=0 use=1\n tcp 6 117 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=56160 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=56160 [ASSURED] mark=0 use=1\n tcp 6 103 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36400 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=36400 [ASSURED] mark=0 use=1\n tcp 6 100 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=38046 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=38046 [ASSURED] mark=0 use=1\n tcp 6 93 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38574 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38574 [ASSURED] mark=0 use=1\n tcp 6 101 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36384 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=36384 [ASSURED] mark=0 use=1\n tcp 6 11 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=46330 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=46330 [ASSURED] mark=0 use=1\n tcp 6 80 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=57264 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=57264 [ASSURED] mark=0 use=1\n tcp 6 95 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38578 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38578 [ASSURED] mark=0 use=1\n tcp 6 1 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=51976 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=51976 [ASSURED] mark=0 use=1\n tcp 6 86 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38552 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38552 [ASSURED] mark=0 use=2\n tcp 6 11 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=46344 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=46344 [ASSURED] mark=0 use=1\n tcp 6 110 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=42782 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=42782 [ASSURED] mark=0 use=1\n I0514 15:05:27.290497 72478 helper.go:121] Waiting up to 7m0s for all (but 0) nodes to be ready\n STEP: Destroying namespace \"nettest-7732\" for this suite. @ 05/14/24 15:05:27.293", + "markdown": "I0514 15:05:27.290224 72478 networking.go:356] Dump iptables and connntrack flows for node :\n IPTables Dump: \n -A KUBE-EXT-U7I7RVERQEPDX3Y6 -m comment --comment \"masquerade traffic for nettest-7732/node-port-service:http external destinations\" -j KUBE-MARK-MASQ\n -A KUBE-NODEPORTS -p tcp -m comment --comment \"nettest-7732/node-port-service:http\" -m tcp --dport 31800 -j KUBE-EXT-U7I7RVERQEPDX3Y6\n -A KUBE-SEP-VFVEZ5MLNGMSD7ZR -s 10.244.2.11/32 -m comment --comment \"nettest-7732/node-port-service:http\" -j KUBE-MARK-MASQ\n -A KUBE-SEP-VFVEZ5MLNGMSD7ZR -p tcp -m comment --comment \"nettest-7732/node-port-service:http\" -m tcp -j DNAT --to-destination 10.244.2.11:8083\n -A KUBE-SEP-Z3A4G5665FZF4KZI -s 10.244.1.14/32 -m comment --comment \"nettest-7732/node-port-service:http\" -j KUBE-MARK-MASQ\n -A KUBE-SEP-Z3A4G5665FZF4KZI -p tcp -m comment --comment \"nettest-7732/node-port-service:http\" -m tcp -j DNAT --to-destination 10.244.1.14:8083\n -A KUBE-SERVICES -d 10.96.63.98/32 -p tcp -m comment --comment \"nettest-7732/node-port-service:http cluster IP\" -m tcp --dport 80 -j KUBE-SVC-U7I7RVERQEPDX3Y6\n -A KUBE-SVC-U7I7RVERQEPDX3Y6 ! -s 10.244.0.0/16 -d 10.96.63.98/32 -p tcp -m comment --comment \"nettest-7732/node-port-service:http cluster IP\" -m tcp --dport 80 -j KUBE-MARK-MASQ\n -A KUBE-SVC-U7I7RVERQEPDX3Y6 -m comment --comment \"nettest-7732/node-port-service:http -\u003e 10.244.1.14:8083\" -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-Z3A4G5665FZF4KZI\n -A KUBE-SVC-U7I7RVERQEPDX3Y6 -m comment --comment \"nettest-7732/node-port-service:http -\u003e 10.244.2.11:8083\" -j KUBE-SEP-VFVEZ5MLNGMSD7ZR\n Conntrack flows: \n tcp 6 100 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=38048 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=38048 [ASSURED] mark=0 use=1\n tcp 6 13 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=50128 dport=80 src=10.244.1.12 dst=10.244.1.13 sport=8083 dport=50128 [ASSURED] mark=0 use=1\n tcp 6 90 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=53144 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=53144 [ASSURED] mark=0 use=1\n tcp 6 97 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36366 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=36366 [ASSURED] mark=0 use=1\n tcp 6 80 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=57256 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=57256 [ASSURED] mark=0 use=1\n tcp 6 1 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=51984 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=51984 [ASSURED] mark=0 use=1\n tcp 6 107 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=39206 dport=80 src=10.244.1.14 dst=10.244.1.15 sport=8083 dport=39206 [ASSURED] mark=0 use=1\n tcp 6 110 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=42776 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=42776 [ASSURED] mark=0 use=1\n tcp 6 115 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=39222 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=39222 [ASSURED] mark=0 use=1\n tcp 6 1 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=45346 dport=80 src=10.244.3.12 dst=10.244.1.13 sport=8083 dport=45346 [ASSURED] mark=0 use=1\n tcp 6 119 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=56162 dport=80 src=10.244.1.14 dst=10.244.1.15 sport=8083 dport=56162 [ASSURED] mark=0 use=1\n tcp 6 90 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=53146 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=53146 [ASSURED] mark=0 use=1\n tcp 6 91 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38562 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=38562 [ASSURED] mark=0 use=1\n tcp 6 11 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=50116 dport=80 src=10.244.2.10 dst=10.244.1.13 sport=8083 dport=50116 [ASSURED] mark=0 use=1\n tcp 6 105 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36408 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=36408 [ASSURED] mark=0 use=1\n tcp 6 3 TIME_WAIT src=10.244.1.13 dst=10.96.192.168 sport=45362 dport=80 src=10.244.2.10 dst=10.244.1.13 sport=8083 dport=45362 [ASSURED] mark=0 use=2\n tcp 6 88 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38558 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38558 [ASSURED] mark=0 use=1\n tcp 6 99 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36376 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=36376 [ASSURED] mark=0 use=1\n tcp 6 117 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=56160 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=56160 [ASSURED] mark=0 use=1\n tcp 6 103 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36400 dport=80 src=10.244.2.11 dst=10.244.1.15 sport=8083 dport=36400 [ASSURED] mark=0 use=1\n tcp 6 100 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=38046 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=38046 [ASSURED] mark=0 use=1\n tcp 6 93 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38574 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38574 [ASSURED] mark=0 use=1\n tcp 6 101 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=36384 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=36384 [ASSURED] mark=0 use=1\n tcp 6 11 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=46330 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=46330 [ASSURED] mark=0 use=1\n tcp 6 80 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=57264 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=57264 [ASSURED] mark=0 use=1\n tcp 6 95 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38578 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38578 [ASSURED] mark=0 use=1\n tcp 6 1 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=51976 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=51976 [ASSURED] mark=0 use=1\n tcp 6 86 TIME_WAIT src=10.244.1.15 dst=10.96.63.98 sport=38552 dport=80 src=10.244.3.13 dst=10.244.1.15 sport=8083 dport=38552 [ASSURED] mark=0 use=2\n tcp 6 11 TIME_WAIT src=10.244.1.1 dst=10.244.1.12 sport=46344 dport=8083 src=10.244.1.12 dst=10.244.1.1 sport=8083 dport=46344 [ASSURED] mark=0 use=1\n tcp 6 110 TIME_WAIT src=10.244.1.1 dst=10.244.1.14 sport=42782 dport=8083 src=10.244.1.14 dst=10.244.1.1 sport=8083 dport=42782 [ASSURED] mark=0 use=1\n I0514 15:05:27.290497 72478 helper.go:121] Waiting up to 7m0s for all (but 0) nodes to be ready\n STEP: Destroying namespace \"nettest-7732\" for this suite. @ 05/14/24 15:05:27.293 ([#124865](https://github.com/kubernetes/kubernetes/pull/124865), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Testing]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124865", + "pr_number": 124865, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "flake" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "124883": { + "commit": "466b10fcabd92cf1c1f250522c6e2c5d1045747c", + "text": "Dropped the additional rule requirement (cronjobs/finalizers) for roles\nusing kubectl create cronjobs to ensure backward compatibility.", + "markdown": "Dropped the additional rule requirement (cronjobs/finalizers) for roles\n using kubectl create cronjobs to ensure backward compatibility. ([#124883](https://github.com/kubernetes/kubernetes/pull/124883), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124883", + "pr_number": 124883, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "124884": { + "commit": "d7194eb3700cf4f5f075e06ba53811924efb9509", + "text": "Added a feature to report an event about a Pod if kubelet observes a failed attach operation, even if the kubelet is running with `--enable-controller-attach-detach=false`.", + "markdown": "Added a feature to report an event about a Pod if kubelet observes a failed attach operation, even if the kubelet is running with `--enable-controller-attach-detach=false`. ([#124884](https://github.com/kubernetes/kubernetes/pull/124884), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124884", + "pr_number": 124884, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true, + "is_mapped": true + }, + "124886": { + "commit": "1772e3fb5dc76a9a35438530d525ade4fe0d9f3e", + "text": "Removed legacy cloud provider integration code (undoing a previous reverted commit).", + "markdown": "Removed legacy cloud provider integration code (undoing a previous reverted commit). ([#124886](https://github.com/kubernetes/kubernetes/pull/124886), [@carlory](https://github.com/carlory)) [SIG Cloud Provider and Release]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124886", + "pr_number": 124886, + "areas": [ + "cloudprovider", + "release-eng", + "dependency" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cloud-provider", + "release" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124906": { + "commit": "0aa01be4246cef38641544b2bc2dc8bc068405f0", + "text": "kube-apiserver: fixed a 1.28 regression printing pods with invalid initContainer status.", + "markdown": "Kube-apiserver: fixed a 1.28 regression printing pods with invalid initContainer status. ([#124906](https://github.com/kubernetes/kubernetes/pull/124906), [@liggitt](https://github.com/liggitt)) [SIG Node]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124906", + "pr_number": 124906, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "124912": { + "commit": "765e7ef0d2121602bcccfaa22a039676444b5305", + "text": "kube-apiserver: the `--encryption-provider-config` file is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with config files that are malformed, mis-indented, or have typos in field names, and getting unexpected behavior. When `--encryption-provider-config-automatic-reload` is used, new encryption config files that contain typos after the kube-apiserver is running are treated as invalid and the last valid config is used.", + "markdown": "Kube-apiserver: the `--encryption-provider-config` file is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with config files that are malformed, mis-indented, or have typos in field names, and getting unexpected behavior. When `--encryption-provider-config-automatic-reload` is used, new encryption config files that contain typos after the kube-apiserver is running are treated as invalid and the last valid config is used. ([#124912](https://github.com/kubernetes/kubernetes/pull/124912), [@enj](https://github.com/enj)) [SIG API Machinery and Auth]", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124912", + "pr_number": 124912, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124917": { + "commit": "522e2e50667f25b759a10183eec1bb7d4683ec27", + "text": "When the feature gate AnonymousAuthConfigurableEndpoints is enabled users can update the AuthenticationConfig file with endpoints for with anonymous requests are allowed.", + "markdown": "When the feature gate AnonymousAuthConfigurableEndpoints is enabled users can update the AuthenticationConfig file with endpoints for with anonymous requests are allowed. ([#124917](https://github.com/kubernetes/kubernetes/pull/124917), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG API Machinery, Auth, Cloud Provider, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4633", + "type": "KEP" + } + ], + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124917", + "pr_number": 124917, + "areas": [ + "test", + "kubelet", + "apiserver", + "cloudprovider" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124926": { + "commit": "027f346f606627fce1edfd4f067971b438595be5", + "text": "Users can traverse all the pods that are in the scheduler and waiting in the permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods in scheduler can be obtained from any profiles. Before this commit, each profile could only obtain waitingPods within that profile.", + "markdown": "Users can traverse all the pods that are in the scheduler and waiting in the permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods in scheduler can be obtained from any profiles. Before this commit, each profile could only obtain waitingPods within that profile. ([#124926](https://github.com/kubernetes/kubernetes/pull/124926), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling]", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124926", + "pr_number": 124926, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "124931": { + "commit": "eb66365bc4a84eca9b7f4ca6436535bc78d46648", + "text": "Dynamic Resource Allocation (DRA): using structured parameters with a claim that gets reused between pods may have led to a claim with an invalid state (allocated without a finalizer) which then caused scheduling of pods using the claim to stop.", + "markdown": "Dynamic Resource Allocation (DRA): using structured parameters with a claim that gets reused between pods may have led to a claim with an invalid state (allocated without a finalizer) which then caused scheduling of pods using the claim to stop. ([#124931](https://github.com/kubernetes/kubernetes/pull/124931), [@pohly](https://github.com/pohly)) [SIG Node and Scheduling]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124931", + "pr_number": 124931, + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "scheduling" + ], + "duplicate": true, + "is_mapped": true + }, + "124933": { + "commit": "0f584a9b86248bfc62c7d9865d437cb935278bc2", + "text": "Fixed a bug in the scheduler where it would crash when prefilter returns a non-existent node.", + "markdown": "Fixed a bug in the scheduler where it would crash when prefilter returns a non-existent node. ([#124933](https://github.com/kubernetes/kubernetes/pull/124933), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Testing]", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124933", + "pr_number": 124933, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124942": { + "commit": "cfd949e321869b8f7228f3b8e391571c07d76a52", + "text": "The sidecars' finish time will now be accounted for when calculating the job's finish time.", + "markdown": "The sidecars' finish time will now be accounted for when calculating the job's finish time. ([#124942](https://github.com/kubernetes/kubernetes/pull/124942), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps]", + "documentation": [ + { + "description": "[KEP]: \u003c", + "url": "https://github.com/kubernetes/enhancements/issues/753\u003e", + "type": "KEP" + } + ], + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124942", + "pr_number": 124942, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "is_mapped": true + }, + "124948": { + "commit": "ef39aa896a884fa4a57b5015d0eea3e75cf23c96", + "text": "kube-controller-manager: the `horizontal-pod-autoscaler-upscale-delay` and `horizontal-pod-autoscaler-downscale-delay` flags have been removed (deprecated and non-functional since v1.12).", + "markdown": "Kube-controller-manager: the `horizontal-pod-autoscaler-upscale-delay` and `horizontal-pod-autoscaler-downscale-delay` flags have been removed (deprecated and non-functional since v1.12). ([#124948](https://github.com/kubernetes/kubernetes/pull/124948), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery, Apps and Autoscaling]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124948", + "pr_number": 124948, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "autoscaling" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124958": { + "commit": "89283e0219d5d2df8c22b0de01756a79c8c7790c", + "text": "The kube-scheduler added support for scheduling hints for the StorageClass resource within the VolumeBinding plugin.\nThe scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated.", + "markdown": "The kube-scheduler added support for scheduling hints for the StorageClass resource within the VolumeBinding plugin.\n The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. ([#124958](https://github.com/kubernetes/kubernetes/pull/124958), [@bells17](https://github.com/bells17)) [SIG Scheduling and Storage]", + "author": "bells17", + "author_url": "https://github.com/bells17", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124958", + "pr_number": 124958, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124959": { + "commit": "9247a21be6a0c1aa81d10dea4e2536eaaa66837b", + "text": "The kube-scheduler added support for scheduling hints for the PersistentVolumeClaim resource within the VolumeBinding plugin.\nThe scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated.", + "markdown": "The kube-scheduler added support for scheduling hints for the PersistentVolumeClaim resource within the VolumeBinding plugin.\n The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. ([#124959](https://github.com/kubernetes/kubernetes/pull/124959), [@bells17](https://github.com/bells17)) [SIG Scheduling and Storage]", + "author": "bells17", + "author_url": "https://github.com/bells17", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124959", + "pr_number": 124959, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124961": { + "commit": "e1aa8197eddd277fb82be0b8bbc2ba2b4ca67af7", + "text": "The kube-scheduler added support for scheduling hints for the CSIStorageCapacity resource within the VolumeBinding plugin.\nThe scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated.", + "markdown": "The kube-scheduler added support for scheduling hints for the CSIStorageCapacity resource within the VolumeBinding plugin.\n The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. ([#124961](https://github.com/kubernetes/kubernetes/pull/124961), [@bells17](https://github.com/bells17)) [SIG Scheduling and Storage]", + "author": "bells17", + "author_url": "https://github.com/bells17", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124961", + "pr_number": 124961, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124969": { + "commit": "108055430774959198d1b8a6917d03455250098d", + "text": "PersistentVolumeLastPhaseTransitionTime feature is stable and enabled by default.", + "markdown": "PersistentVolumeLastPhaseTransitionTime feature is stable and enabled by default. ([#124969](https://github.com/kubernetes/kubernetes/pull/124969), [@RomanBednar](https://github.com/RomanBednar)) [SIG API Machinery, Apps, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3762", + "type": "KEP" + } + ], + "author": "RomanBednar", + "author_url": "https://github.com/RomanBednar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124969", + "pr_number": 124969, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "124994": { + "commit": "7ec344dcef9a04920578aabe4e122bc0b3404afe", + "text": "Added namespace autocompletion for `kubectl config set-context` command.", + "markdown": "Added namespace autocompletion for `kubectl config set-context` command. ([#124994](https://github.com/kubernetes/kubernetes/pull/124994), [@TessaIO](https://github.com/TessaIO)) [SIG CLI]", + "author": "TessaIO", + "author_url": "https://github.com/TessaIO", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124994", + "pr_number": 124994, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "124996": { + "commit": "7f23ebedc44565c0180898805011e61eb3f1226d", + "text": "kube-scheduler implements scheduling hints for the VolumeZone plugin.\nThe scheduling hints allow the scheduler to only retry scheduling a Pod\nthat was previously rejected by the VolumeZone plugin if addition/update of node, \naddition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings.", + "markdown": "Kube-scheduler implements scheduling hints for the VolumeZone plugin.\n The scheduling hints allow the scheduler to only retry scheduling a Pod\n that was previously rejected by the VolumeZone plugin if addition/update of node, \n addition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings. ([#124996](https://github.com/kubernetes/kubernetes/pull/124996), [@Gekko0114](https://github.com/Gekko0114)) [SIG Scheduling and Storage]", + "author": "Gekko0114", + "author_url": "https://github.com/Gekko0114", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124996", + "pr_number": 124996, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124997": { + "commit": "25b3912c0dadb14403f80a144f858a751d0c743e", + "text": "kubeadm: deprecated the kubeadm `RootlessControlPlane` feature gate (previously alpha), given that the core K8s `UserNamespacesSupport` feature gate graduated to beta in 1.30.\nOnce core Kubernetes support for user namespaces is generally available and kubeadm has started to support running the control plane in userns pods, the kubeadm `RootlessControlPlane` feature gate will be removed entirely.\nUntil kubeadm supports the userns functionality out of the box, users can continue using the deprecated `RootlessControlPlane` feature gate, or opt-in `UserNamespacesSupport` by using kubeadm patches on the static pod manifests.", + "markdown": "Kubeadm: deprecated the kubeadm `RootlessControlPlane` feature gate (previously alpha), given that the core K8s `UserNamespacesSupport` feature gate graduated to beta in 1.30.\n Once core Kubernetes support for user namespaces is generally available and kubeadm has started to support running the control plane in userns pods, the kubeadm `RootlessControlPlane` feature gate will be removed entirely.\n Until kubeadm supports the userns functionality out of the box, users can continue using the deprecated `RootlessControlPlane` feature gate, or opt-in `UserNamespacesSupport` by using kubeadm patches on the static pod manifests. ([#124997](https://github.com/kubernetes/kubernetes/pull/124997), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124997", + "pr_number": 124997, + "areas": [ + "kubeadm" + ], + "kinds": [ + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "125000": { + "commit": "5b49afa66b247485eeb1d111dde74f07e2cef13f", + "text": "kube-scheduler implements scheduling hints for the VolumeZone plugin.\nThe scheduling hints allow the scheduler to only retry scheduling a Pod\nthat was previously rejected by the VolumeZone plugin if addition/update of node, \naddition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings.", + "markdown": "Kube-scheduler implements scheduling hints for the VolumeZone plugin.\n The scheduling hints allow the scheduler to only retry scheduling a Pod\n that was previously rejected by the VolumeZone plugin if addition/update of node, \n addition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings. ([#125000](https://github.com/kubernetes/kubernetes/pull/125000), [@Gekko0114](https://github.com/Gekko0114)) [SIG Scheduling and Storage]", + "author": "Gekko0114", + "author_url": "https://github.com/Gekko0114", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125000", + "pr_number": 125000, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true + }, + "125001": { + "commit": "52a622ad6d2648599b28eec29263518162f9fcf8", + "text": "kube-scheduler implements scheduling hints for the VolumeZone plugin.\nThe scheduling hints allow the scheduler to only retry scheduling a Pod\nthat was previously rejected by the VolumeZone plugin if addition/update of node, \naddition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings.", + "markdown": "Kube-scheduler implements scheduling hints for the VolumeZone plugin.\n The scheduling hints allow the scheduler to only retry scheduling a Pod\n that was previously rejected by the VolumeZone plugin if addition/update of node, \n addition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings. ([#125001](https://github.com/kubernetes/kubernetes/pull/125001), [@Gekko0114](https://github.com/Gekko0114)) [SIG Scheduling and Storage]", + "author": "Gekko0114", + "author_url": "https://github.com/Gekko0114", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125001", + "pr_number": 125001, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true + }, + "125015": { + "commit": "e67f889edc4ab278028f6cffd2501bc90a0defcf", + "text": "The iptables mode of kube-proxy now tracks accepted packets that are destined for node-ports on localhost by introducing `kubeproxy_iptables_localhost_nodeports_accepted_packets_total` metric.\nThis will help users to identify if they rely on iptables.localhostNodePorts feature and ultimately help them to migrate from iptables to nftables.", + "markdown": "The iptables mode of kube-proxy now tracks accepted packets that are destined for node-ports on localhost by introducing `kubeproxy_iptables_localhost_nodeports_accepted_packets_total` metric.\n This will help users to identify if they rely on iptables.localhostNodePorts feature and ultimately help them to migrate from iptables to nftables. ([#125015](https://github.com/kubernetes/kubernetes/pull/125015), [@aroradaman](https://github.com/aroradaman)) [SIG Instrumentation, Network and Testing]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125015", + "pr_number": 125015, + "areas": [ + "test", + "kube-proxy", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125016": { + "commit": "b3db54ea72a4f7441260982b4d2941f856401c9a", + "text": "The feature-gate CSIMigrationPortworx was promoted to beta in Kubernetes 1.25, but turned off by default. In 1.31, it was turned on by default. Before upgrading to 1.31, please make sure that the corresponding portworx csi driver is installed if you are using Portworx.", + "markdown": "The feature-gate CSIMigrationPortworx was promoted to beta in Kubernetes 1.25, but turned off by default. In 1.31, it was turned on by default. Before upgrading to 1.31, please make sure that the corresponding portworx csi driver is installed if you are using Portworx. ([#125016](https://github.com/kubernetes/kubernetes/pull/125016), [@carlory](https://github.com/carlory)) [SIG Storage]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2589", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125016", + "pr_number": 125016, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true, + "is_mapped": true + }, + "125021": { + "commit": "93d56511e684369479f23aae15617e483cda5719", + "text": "Updated the feature MultiCIDRServiceAllocator to beta (disabled by default). Users need to enable the feature gate and the networking v1beta1 group to be able to use this new feature, that allows to dynamically reconfigure Service CIDR ranges.", + "markdown": "Updated the feature MultiCIDRServiceAllocator to beta (disabled by default). Users need to enable the feature gate and the networking v1beta1 group to be able to use this new feature, that allows to dynamically reconfigure Service CIDR ranges. ([#125021](https://github.com/kubernetes/kubernetes/pull/125021), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, CLI, Etcd, Instrumentation, Network and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1880", + "type": "KEP" + } + ], + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125021", + "pr_number": 125021, + "areas": [ + "test", + "kube-proxy", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "cli", + "etcd", + "instrumentation", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125029": { + "commit": "c142814f6c56f2f0a597699f61b0d85c9d9ce1e2", + "text": "kubeadm: enabled the v1beta4 API. For a complete changelog since v1beta3 please see https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta4/. \n\nThe API does include a few breaking changes:\n- The \"extraArgs\" component construct is now a list of \"name\"/\"value\" pairs instead of a string/string map. This has been done to support duplicate args where needed.\n- The \"JoinConfiguration.discovery.timeout\" field has been replaced by \"JoinConfiguration.timeouts.discovery\".\n- The \"ClusterConfiguration.timeoutForControlPlane\" field has been replaced by \"{Init|Join}Configuration.timeouts.controlPlaneComponentHealthCheck\".\nPlease use the command \"kubeadm config migrate\" to migrate your existing v1beta3 configuration to v1beta4.\n\nv1beta3 is now marked as deprecated but will continue to be supported until version 1.34 or later.\nThe storage configuration in the kube-system/kubeadm-config ConfigMap is now a v1beta4 ClusterConfiguration.", + "markdown": "Kubeadm: enabled the v1beta4 API. For a complete changelog since v1beta3 please see https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta4/. \n \n The API does include a few breaking changes:\n - The \"extraArgs\" component construct is now a list of \"name\"/\"value\" pairs instead of a string/string map. This has been done to support duplicate args where needed.\n - The \"JoinConfiguration.discovery.timeout\" field has been replaced by \"JoinConfiguration.timeouts.discovery\".\n - The \"ClusterConfiguration.timeoutForControlPlane\" field has been replaced by \"{Init|Join}Configuration.timeouts.controlPlaneComponentHealthCheck\".\n Please use the command \"kubeadm config migrate\" to migrate your existing v1beta3 configuration to v1beta4.\n \n v1beta3 is now marked as deprecated but will continue to be supported until version 1.34 or later.\n The storage configuration in the kube-system/kubeadm-config ConfigMap is now a v1beta4 ClusterConfiguration. ([#125029](https://github.com/kubernetes/kubernetes/pull/125029), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125029", + "pr_number": 125029, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "125040": { + "commit": "b2817dc4321beb9384badff71caaab2d756cf85a", + "text": "Fixed an issue where kubelet on Windows would fail if a pod had a SecurityContext with `RunAsUser`.", + "markdown": "Fixed an issue where kubelet on Windows would fail if a pod had a SecurityContext with `RunAsUser`. ([#125040](https://github.com/kubernetes/kubernetes/pull/125040), [@carlory](https://github.com/carlory)) [SIG Storage, Testing and Windows]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125040", + "pr_number": 125040, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "testing", + "windows" + ], + "duplicate": true, + "is_mapped": true + }, + "125067": { + "commit": "5a121aad53a819c3c9b26a6b5866b1ea8c686f5b", + "text": "`pause`: Added a `-v` flag to the Windows variant of the pause binary, which\nprints the version of pause and exits. The Linux pause binary already has this flag.", + "markdown": "`pause`: Added a `-v` flag to the Windows variant of the pause binary, which\n prints the version of pause and exits. The Linux pause binary already has this flag. ([#125067](https://github.com/kubernetes/kubernetes/pull/125067), [@neolit123](https://github.com/neolit123)) [SIG Windows]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125067", + "pr_number": 125067, + "areas": [ + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "windows" + ], + "feature": true, + "is_mapped": true + }, + "125082": { + "commit": "f70115206b4665d8ca47f8e3b77b821353ee489e", + "text": "Promoted the feature gate `KubeProxyDrainingTerminatingNodes` to stable", + "markdown": "Promoted the feature gate `KubeProxyDrainingTerminatingNodes` to stable ([#125082](https://github.com/kubernetes/kubernetes/pull/125082), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Network]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/issues/3836", + "type": "KEP" + } + ], + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125082", + "pr_number": 125082, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "is_mapped": true + }, + "125097": { + "commit": "90615231a629ca3a2bab9aab91dca0a1c14317cf", + "text": "The scheduler implements QueueingHint in VolumeBinding plugin's CSINode event, which enhances the throughput of scheduling.", + "markdown": "The scheduler implements QueueingHint in VolumeBinding plugin's CSINode event, which enhances the throughput of scheduling. ([#125097](https://github.com/kubernetes/kubernetes/pull/125097), [@YamasouA](https://github.com/YamasouA)) [SIG Scheduling and Storage]", + "author": "YamasouA", + "author_url": "https://github.com/YamasouA", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125097", + "pr_number": 125097, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125112": { + "commit": "e0e6c9633d5f9a388cbf9c7757c789afaec11c34", + "text": "dependencies: started using registry.k8s.io/pause:3.10.", + "markdown": "Dependencies: started using registry.k8s.io/pause:3.10. ([#125112](https://github.com/kubernetes/kubernetes/pull/125112), [@neolit123](https://github.com/neolit123)) [SIG CLI, Cloud Provider, Cluster Lifecycle, Node, Release, Testing and Windows]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125112", + "pr_number": 125112, + "areas": [ + "test", + "kubelet", + "kubectl", + "provider/gcp", + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "cloud-provider", + "cluster-lifecycle", + "node", + "release", + "testing", + "windows" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125113": { + "commit": "4c0afd74c3d90a5f13c7edf94911b4a4eb633865", + "text": "Updated CNI Plugins to v1.5.0.", + "markdown": "Updated CNI Plugins to v1.5.0. ([#125113](https://github.com/kubernetes/kubernetes/pull/125113), [@bzsuni](https://github.com/bzsuni)) [SIG Cloud Provider, Network, Node and Testing]", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125113", + "pr_number": 125113, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "network", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125116": { + "commit": "ac9aec9f9b1229c1560d682475dc5c6f38f6beb3", + "text": "Dynamic Resource Allocation (DRA): in the `pod.spec.recourceClaims` array, the `source` indirection is no longer necessary. Instead of e.g. `source: resourceClaimTemplateName: my-template`, one can write `resourceClaimTemplateName: my-template`.", + "markdown": "Dynamic Resource Allocation (DRA): in the `pod.spec.recourceClaims` array, the `source` indirection is no longer necessary. Instead of e.g. `source: resourceClaimTemplateName: my-template`, one can write `resourceClaimTemplateName: my-template`. ([#125116](https://github.com/kubernetes/kubernetes/pull/125116), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125116", + "pr_number": 125116, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125117": { + "commit": "59d90eb17e41f855e65f6ca4ac3d93d3709a3067", + "text": "`kubectl describe service` now shows internal traffic policy and ip mode of load balancer IP.", + "markdown": "`kubectl describe service` now shows internal traffic policy and ip mode of load balancer IP. ([#125117](https://github.com/kubernetes/kubernetes/pull/125117), [@tnqn](https://github.com/tnqn)) [SIG CLI and Network]", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125117", + "pr_number": 125117, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli", + "network" + ], + "duplicate": true, + "is_mapped": true + }, + "125122": { + "commit": "83f77b6bd56215a1d40b55ee60835e49fc345abe", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#125122](https://github.com/kubernetes/kubernetes/pull/125122), [@chendave](https://github.com/chendave)) [SIG Scheduling]", + "author": "chendave", + "author_url": "https://github.com/chendave", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125122", + "pr_number": 125122, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "125145": { + "commit": "3f9b79fc119d064d00939f91567b48d9ada7dc43", + "text": "kube-apiserver: fixed a 1.27+ regression watching a single namespace via the deprecated /api/v1/watch/namespaces/$name endpoint where watch events were not delivered after the watch was established.", + "markdown": "Kube-apiserver: fixed a 1.27+ regression watching a single namespace via the deprecated /api/v1/watch/namespaces/$name endpoint where watch events were not delivered after the watch was established. ([#125145](https://github.com/kubernetes/kubernetes/pull/125145), [@xyz-li](https://github.com/xyz-li)) [SIG API Machinery, Node and Testing]", + "author": "xyz-li", + "author_url": "https://github.com/xyz-li", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125145", + "pr_number": 125145, + "areas": [ + "test", + "apiserver", + "e2e-test-framework" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125150": { + "commit": "2c46fafa2377363728797b43e2bef213753e4fc9", + "text": "Container Storage Interface (CSI) spec support has been lifted to v1.9.0 in this release.", + "markdown": "Container Storage Interface (CSI) spec support has been lifted to v1.9.0 in this release. ([#125150](https://github.com/kubernetes/kubernetes/pull/125150), [@humblec](https://github.com/humblec)) [SIG Storage and Testing]", + "author": "humblec", + "author_url": "https://github.com/humblec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125150", + "pr_number": 125150, + "areas": [ + "test", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125157": { + "commit": "548d50da98f086714bebbf54b1cd578d594c7aa6", + "text": "`kubeadm`: The `NodeSwap` check that kubeadm performs during preflight, has a new warning to verify if swap has been configured correctly.", + "markdown": "`kubeadm`: The `NodeSwap` check that kubeadm performs during preflight, has a new warning to verify if swap has been configured correctly. ([#125157](https://github.com/kubernetes/kubernetes/pull/125157), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125157", + "pr_number": 125157, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "125162": { + "commit": "2c6daa41deff0eb7d705c85b5672cde79ea82517", + "text": "Fixed code-generator client-gen to work with `api/v1`-like package structure.", + "markdown": "Fixed code-generator client-gen to work with `api/v1`-like package structure. ([#125162](https://github.com/kubernetes/kubernetes/pull/125162), [@sttts](https://github.com/sttts)) [SIG API Machinery and Apps]", + "author": "sttts", + "author_url": "https://github.com/sttts", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125162", + "pr_number": 125162, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125163": { + "commit": "f2428d66cc2256fcbe2a486b1403603530f46c6f", + "text": "'ACTION REQUIRED: The Dynamic Resource Allocation (DRA) driver's DaemonSet\nmust be deployed with a service account that enables writing ResourceSlice\nand reading ResourceClaim objects.'\n", + "markdown": "'ACTION REQUIRED: The Dynamic Resource Allocation (DRA) driver's DaemonSet\n must be deployed with a service account that enables writing ResourceSlice\n and reading ResourceClaim objects.'\n ([#125163](https://github.com/kubernetes/kubernetes/pull/125163), [@pohly](https://github.com/pohly)) [SIG Auth, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + }, + { + "description": "[Docs]", + "url": "https://github.com/kubernetes/enhancements/pull/4667", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125163", + "pr_number": 125163, + "areas": [ + "test", + "kubelet", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "auth", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125168": { + "commit": "d8b33e32b16a8e393f9e174af92b19302c729a98", + "text": "job-controller: the `JobReadyPods` feature flag has been removed (deprecated since v1.31).", + "markdown": "Job-controller: the `JobReadyPods` feature flag has been removed (deprecated since v1.31). ([#125168](https://github.com/kubernetes/kubernetes/pull/125168), [@kaisoz](https://github.com/kaisoz)) [SIG Apps]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/2879-ready-pods-job-status", + "type": "KEP" + } + ], + "author": "kaisoz", + "author_url": "https://github.com/kaisoz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125168", + "pr_number": 125168, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "125175": { + "commit": "c49b140c45e0e9b7e47da4bbe81d32829008c06d", + "text": ".status.terminating field now gets tracked faster when active Pods are deleted, specifically when Job is failed, gets suspended or has too many active pods.", + "markdown": ".status.terminating field now gets tracked faster when active Pods are deleted, specifically when Job is failed, gets suspended or has too many active pods. ([#125175](https://github.com/kubernetes/kubernetes/pull/125175), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3939-allow-replacement-when-fully-terminated", + "type": "KEP" + } + ], + "author": "dejanzele", + "author_url": "https://github.com/dejanzele", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125175", + "pr_number": 125175, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125176": { + "commit": "f44bb5e6e58c315b62c79bbc20814e84eb002e00", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#125176](https://github.com/kubernetes/kubernetes/pull/125176), [@mauri870](https://github.com/mauri870)) [SIG Testing]", + "author": "mauri870", + "author_url": "https://github.com/mauri870", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125176", + "pr_number": 125176, + "kinds": [ + "bug" + ], + "sigs": [ + "testing" + ], + "do_not_publish": true + }, + "125179": { + "commit": "83c2db067ed04401bbeca9193bfac888c18c77b8", + "text": "kubeadm: Strictly enabled only the supported klog flags, disallowing previously available but unrecommended options. This means that hidden flags about klog (including `--alsologtostderr`, `--log-backtrace-at`, `--log-dir`, `--logtostderr`, `--log-file`, `--log-file-max-size`, `--one-output`, `--skip-log-headers`, `--stderrthreshold` and `--vmodule`) are no longer allowed to be used.", + "markdown": "Kubeadm: Strictly enabled only the supported klog flags, disallowing previously available but unrecommended options. This means that hidden flags about klog (including `--alsologtostderr`, `--log-backtrace-at`, `--log-dir`, `--logtostderr`, `--log-file`, `--log-file-max-size`, `--one-output`, `--skip-log-headers`, `--stderrthreshold` and `--vmodule`) are no longer allowed to be used. ([#125179](https://github.com/kubernetes/kubernetes/pull/125179), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125179", + "pr_number": 125179, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "125197": { + "commit": "8bd36c60bda712fb8146ee946920f572a77c185e", + "text": "Improved scheduling performance when many nodes, and prefilter returned 1-2 nodes (e.g. daemonset)\n\nFor developers of out-of-tree PostFilter plugins, note that the semantics of NodeToStatusMap are changing: A node with an absent value in the NodeToStatusMap should be interpreted as having an UnschedulableAndUnresolvable status.", + "markdown": "Improved scheduling performance when many nodes, and prefilter returned 1-2 nodes (e.g. daemonset)\n \n For developers of out-of-tree PostFilter plugins, note that the semantics of NodeToStatusMap are changing: A node with an absent value in the NodeToStatusMap should be interpreted as having an UnschedulableAndUnresolvable status. ([#125197](https://github.com/kubernetes/kubernetes/pull/125197), [@gabesaba](https://github.com/gabesaba)) [SIG Scheduling]", + "author": "gabesaba", + "author_url": "https://github.com/gabesaba", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125197", + "pr_number": 125197, + "kinds": [ + "bug", + "api-change", + "regression" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true, + "action_required": true, + "is_mapped": true + }, + "125218": { + "commit": "ba28796e778731bdb8dfeaa9a85454ff28306c1a", + "text": "Dynamic Resource Allocator (DRA): Enhanced validation for the ResourceClaimParametersReference and ResourceClassParametersReference with the following rules:\n\n1. `apiGroup`: If set, it must be a valid DNS subdomain (e.g. 'example.com').\n2. `kind` and `name`: It must be valid path segment name. It may not be '.' or '..' and it may not contain '/' and '%' characters.", + "markdown": "Dynamic Resource Allocator (DRA): Enhanced validation for the ResourceClaimParametersReference and ResourceClassParametersReference with the following rules:\n \n 1. `apiGroup`: If set, it must be a valid DNS subdomain (e.g. 'example.com').\n 2. `kind` and `name`: It must be valid path segment name. It may not be '.' or '..' and it may not contain '/' and '%' characters. ([#125218](https://github.com/kubernetes/kubernetes/pull/125218), [@carlory](https://github.com/carlory)) [SIG Node]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125218", + "pr_number": 125218, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "125225": { + "commit": "6938c29a38e2b55b1a93f63af8c9a98aaeb5c026", + "text": "Fixed an issue where the Service LoadBalancer controller was not correctly considering the `service.Status new IPMode` field and excluding the Ports when checking if the status was changed, resulting in the changed field potentially not to update the `service.Status` correctly.", + "markdown": "Fixed an issue where the Service LoadBalancer controller was not correctly considering the `service.Status new IPMode` field and excluding the Ports when checking if the status was changed, resulting in the changed field potentially not to update the `service.Status` correctly. ([#125225](https://github.com/kubernetes/kubernetes/pull/125225), [@aojea](https://github.com/aojea)) [SIG Apps, Cloud Provider and Network]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125225", + "pr_number": 125225, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "apps", + "cloud-provider", + "network" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125235": { + "commit": "2f0cf23645876d39a6554f0cf6578a851c0a4891", + "text": "Built etcd image v3.5.14.", + "markdown": "Built etcd image v3.5.14. ([#125235](https://github.com/kubernetes/kubernetes/pull/125235), [@humblec](https://github.com/humblec)) [SIG API Machinery]", + "author": "humblec", + "author_url": "https://github.com/humblec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125235", + "pr_number": 125235, + "areas": [ + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "125238": { + "commit": "790dfdbe386e4a115f41d38058c127d2dd0e6f44", + "text": "Allowed creating ServiceAccount tokens bound to Node objects.\nThis allows users to bind a service account token's validity to a named Node object, similar to Pod bound tokens.\nUse with `kubectl create token \u003cserviceaccount-name\u003e --bound-object-kind=Node --bound-object-node=\u003cnode-name\u003e`.", + "markdown": "Allowed creating ServiceAccount tokens bound to Node objects.\n This allows users to bind a service account token's validity to a named Node object, similar to Pod bound tokens.\n Use with `kubectl create token \u003cserviceaccount-name\u003e --bound-object-kind=Node --bound-object-node=\u003cnode-name\u003e`. ([#125238](https://github.com/kubernetes/kubernetes/pull/125238), [@munnerz](https://github.com/munnerz)) [SIG Auth and CLI]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4193", + "type": "external" + } + ], + "author": "munnerz", + "author_url": "https://github.com/munnerz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125238", + "pr_number": 125238, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "cli" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125257": { + "commit": "7590cb7adffb25b687e629d2c93dcb1eaa539301", + "text": "Graduated Kubernetes' support for AppArmor to GA. You now cannot disable the `AppArmor` feature gate.", + "markdown": "Graduated Kubernetes' support for AppArmor to GA. You now cannot disable the `AppArmor` feature gate. ([#125257](https://github.com/kubernetes/kubernetes/pull/125257), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Apps, Node and Testing]", + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125257", + "pr_number": 125257, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125259": { + "commit": "a8110d7174e062a26aee19d7d4e2db622779fab8", + "text": "Promoted the `ProcMountType` feature gate to beta.", + "markdown": "Promoted the `ProcMountType` feature gate to beta. ([#125259](https://github.com/kubernetes/kubernetes/pull/125259), [@sohankunkerkar](https://github.com/sohankunkerkar))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4265-proc-mount", + "type": "KEP" + } + ], + "author": "sohankunkerkar", + "author_url": "https://github.com/sohankunkerkar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125259", + "pr_number": 125259, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "125263": { + "commit": "34dd2007cb91eda0828ae50aebf70fc2a02186f2", + "text": "Fixed bug where Server Side Apply causes spurious resourceVersion bumps on no-op patches to custom resources.", + "markdown": "Fixed bug where Server Side Apply causes spurious resourceVersion bumps on no-op patches to custom resources. ([#125263](https://github.com/kubernetes/kubernetes/pull/125263), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125263", + "pr_number": 125263, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125265": { + "commit": "2d8a3ad5728cb6ff00f9721303c18e942ccfbfc8", + "text": "kubeadm: The healthz address:port configured in the KubeletConfiguration was used during kubelet health checks, instead of hardcoding localhost:10248.", + "markdown": "Kubeadm: The healthz address:port configured in the KubeletConfiguration was used during kubelet health checks, instead of hardcoding localhost:10248. ([#125265](https://github.com/kubernetes/kubernetes/pull/125265), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125265", + "pr_number": 125265, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "125272": { + "commit": "9fc0315ce89d425dc838338018b0c9f4da7559d9", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.: ([#125272](https://github.com/kubernetes/kubernetes/pull/125272), [@mauri870](https://github.com/mauri870)) [SIG Testing]", + "author": "mauri870", + "author_url": "https://github.com/mauri870", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125272", + "pr_number": 125272, + "kinds": [ + "bug" + ], + "sigs": [ + "testing" + ], + "do_not_publish": true, + "is_mapped": false + }, + "125277": { + "commit": "f458a749e794de9169bbc7a7249afd4742f795cc", + "text": "Changed Linux swap handling to restrict access to swap for containers in high priority Pods.\nNew Pods that have a node- or cluster-critical priority are prohibited from accessing swap on Linux,\neven if your cluster and node configuration could otherwise allow this.", + "markdown": "Changed Linux swap handling to restrict access to swap for containers in high priority Pods.\n New Pods that have a node- or cluster-critical priority are prohibited from accessing swap on Linux,\n even if your cluster and node configuration could otherwise allow this. ([#125277](https://github.com/kubernetes/kubernetes/pull/125277), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2400-node-swap", + "type": "KEP" + } + ], + "author": "iholder101", + "author_url": "https://github.com/iholder101", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125277", + "pr_number": 125277, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "125279": { + "commit": "a008776ec9527d2a8d89e7e7b65087ea2b131bfb", + "text": "kube-scheduler implemented scheduling hints for the VolumeRestriction plugin.\nScheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if the Pod is deleted and the deleted Pod conflicts with the existing volumes of the current Pod.", + "markdown": "Kube-scheduler implemented scheduling hints for the VolumeRestriction plugin.\n Scheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if the Pod is deleted and the deleted Pod conflicts with the existing volumes of the current Pod. ([#125279](https://github.com/kubernetes/kubernetes/pull/125279), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Scheduling and Storage]", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125279", + "pr_number": 125279, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125280": { + "commit": "c7dab2a507a1604a30140dbbc765b95037933eb8", + "text": "kube-scheduler implements scheduling hints for the VolumeRestriction plugin.\nScheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if a new pvc added, and the pvc belongs to pod.", + "markdown": "Kube-scheduler implements scheduling hints for the VolumeRestriction plugin.\n Scheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if a new pvc added, and the pvc belongs to pod. ([#125280](https://github.com/kubernetes/kubernetes/pull/125280), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Scheduling and Storage]", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125280", + "pr_number": 125280, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true + }, + "125305": { + "commit": "06ec6ba05df1edef90de9a4a676ba31b03a770ce", + "text": "Introduces new functionality to the dynamic client's `List` method, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate.\n\nIt is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, the client will revert to using the normal `LIST` method to obtain data.", + "markdown": "Introduces new functionality to the dynamic client's `List` method, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate.\n \n It is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, the client will revert to using the normal `LIST` method to obtain data. ([#125305](https://github.com/kubernetes/kubernetes/pull/125305), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125305", + "pr_number": 125305, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "125317": { + "commit": "d5dd5b13a577ffa19c38ad5651d6a072adf7f1fe", + "text": "Fixed bug where Server Side Apply causing spurious resourceVersion bumps on no-op patches containing empty maps.", + "markdown": "Fixed bug where Server Side Apply causing spurious resourceVersion bumps on no-op patches containing empty maps. ([#125317](https://github.com/kubernetes/kubernetes/pull/125317), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125317", + "pr_number": 125317, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "125328": { + "commit": "5a99930ab57b2c7837960b21d2c92e958db8c377", + "text": "Added a warning log, an event for cgroup v1 usage and a metric for cgroup version. Running kubelet using cgroup v1 is in a maintenance mode: no new features will be added with the limited support for bug fixes. Please consider migrating to cgroup v2. See [KEP-4569: Moving cgroup v1 support into maintenance mode](https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support) for more info.", + "markdown": "Added a warning log, an event for cgroup v1 usage and a metric for cgroup version. Running kubelet using cgroup v1 is in a maintenance mode: no new features will be added with the limited support for bug fixes. Please consider migrating to cgroup v2. See [KEP-4569: Moving cgroup v1 support into maintenance mode](https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support) for more info. ([#125328](https://github.com/kubernetes/kubernetes/pull/125328), [@harche](https://github.com/harche)) [SIG Node]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4569-cgroup-v1-maintenance-mode#implementing-a-warning-log-and-an-event-for-cgroup-v1-usage", + "type": "KEP" + } + ], + "author": "harche", + "author_url": "https://github.com/harche", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125328", + "pr_number": 125328, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "125333": { + "commit": "c20aa764d787d5710935b573571c0574b2e13e47", + "text": "`--custom` flag in `kubectl debug` will be enabled by default and yaml support is added.", + "markdown": "`--custom` flag in `kubectl debug` will be enabled by default and yaml support is added. ([#125333](https://github.com/kubernetes/kubernetes/pull/125333), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4292", + "type": "KEP" + } + ], + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125333", + "pr_number": 125333, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125359": { + "commit": "fb6bbc9781d11a87688c398778525c4e1dcb0f08", + "text": "Fixed: during the kube-controller-manager restart, when the corresponding Endpoints resource was manually deleted and recreated, causing the endpointslice to fail to be created normally.", + "markdown": "Fixed: during the kube-controller-manager restart, when the corresponding Endpoints resource was manually deleted and recreated, causing the endpointslice to fail to be created normally. ([#125359](https://github.com/kubernetes/kubernetes/pull/125359), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Apps and Network]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125359", + "pr_number": 125359, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true, + "is_mapped": true + }, + "125360": { + "commit": "96827ea6bf4f371bf6be17e6e1f9094c82cf5781", + "text": "scheduler framework: Allowed PreBind implementations to return Pending and Unschedulable status codes.", + "markdown": "Scheduler framework: Allowed PreBind implementations to return Pending and Unschedulable status codes. ([#125360](https://github.com/kubernetes/kubernetes/pull/125360), [@pohly](https://github.com/pohly)) [SIG Scheduling]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125360", + "pr_number": 125360, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "125363": { + "commit": "a7ca13ea29ba5b3c91fd293cdbaec8fb5b30cee2", + "text": "Built Kubernetes with Go 1.22.4.", + "markdown": "Built Kubernetes with Go 1.22.4. ([#125363](https://github.com/kubernetes/kubernetes/pull/125363), [@cpanato](https://github.com/cpanato)) [SIG Architecture, Cloud Provider, Release, Storage and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125363", + "pr_number": 125363, + "areas": [ + "test", + "provider/gcp", + "release-eng", + "conformance" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "architecture", + "cloud-provider", + "release", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125365": { + "commit": "c707c434665018ce1ca670c4600c5db726314aa4", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#125365](https://github.com/kubernetes/kubernetes/pull/125365), [@dims](https://github.com/dims)) [SIG Apps, Network, Storage and Testing]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125365", + "pr_number": 125365, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "network", + "storage", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "125374": { + "commit": "6e52e705d0c0a962fcfe0fc98b1015e517f16844", + "text": "Promoted `StatefulSetStartOrdinal` to stable. This means `--feature-gates=StatefulSetStartOrdinal=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation.", + "markdown": "Promoted `StatefulSetStartOrdinal` to stable. This means `--feature-gates=StatefulSetStartOrdinal=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation. ([#125374](https://github.com/kubernetes/kubernetes/pull/125374), [@pwschuurman](https://github.com/pwschuurman)) [SIG API Machinery, Apps and Testing]", + "author": "pwschuurman", + "author_url": "https://github.com/pwschuurman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125374", + "pr_number": 125374, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125377": { + "commit": "6ba9fa89fb5889550649bfde847c742a55d3d29c", + "text": "Exposed the `apiserver_watch_cache_resource_version` metric to simplify debugging problems with watchcache.", + "markdown": "Exposed the `apiserver_watch_cache_resource_version` metric to simplify debugging problems with watchcache. ([#125377](https://github.com/kubernetes/kubernetes/pull/125377), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Instrumentation]", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125377", + "pr_number": 125377, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "125388": { + "commit": "c77d954273400a3f33150de499a09b57992e1741", + "text": "kubeadm: Fixed a bug where the PublicKeysECDSA feature gate was not respected when generating kubeconfig files.", + "markdown": "Kubeadm: Fixed a bug where the PublicKeysECDSA feature gate was not respected when generating kubeconfig files. ([#125388](https://github.com/kubernetes/kubernetes/pull/125388), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125388", + "pr_number": 125388, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "125396": { + "commit": "6b73cccb07de30c7793370e1d5c3f8766d975d20", + "text": "`kubeadm`: Allowed the `kubeadm init phase certs sa` command to accept the `--config` flag.", + "markdown": "`kubeadm`: Allowed the `kubeadm init phase certs sa` command to accept the `--config` flag. ([#125396](https://github.com/kubernetes/kubernetes/pull/125396), [@Kavinraja-G](https://github.com/Kavinraja-G)) [SIG Cluster Lifecycle]", + "author": "Kavinraja-G", + "author_url": "https://github.com/Kavinraja-G", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125396", + "pr_number": 125396, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "125404": { + "commit": "5427708866b1913207d548a4ba2827e7ac60e580", + "text": "Fixed the bug where PodIP field is temporarily removed for a terminal pod", + "markdown": "Fixed the bug where PodIP field is temporarily removed for a terminal pod ([#125404](https://github.com/kubernetes/kubernetes/pull/125404), [@mimowo](https://github.com/mimowo)) [SIG Node and Testing]", + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125404", + "pr_number": 125404, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "125429": { + "commit": "02013fd12707da232a5d4290a2c63dfc0912a407", + "text": "`Job`: Fixed a bug where `SuccessCriteriaMet` could be added to the Job with\n`successPolicy` regardless of the `featureGate` being enabled.", + "markdown": "`Job`: Fixed a bug where `SuccessCriteriaMet` could be added to the Job with\n `successPolicy` regardless of the `featureGate` being enabled. ([#125429](https://github.com/kubernetes/kubernetes/pull/125429), [@tenzen-y](https://github.com/tenzen-y)) [SIG Apps]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3998-job-success-completion-policy", + "type": "KEP" + } + ], + "author": "tenzen-y", + "author_url": "https://github.com/tenzen-y", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125429", + "pr_number": 125429, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "125437": { + "commit": "6f4e97e905e5553e75a5a8c042c9f5a29bd1b78d", + "text": "\"Removed the ability to run `kubectl exec [POD] [COMMAND]` without a `--` separator.\nThe `--` separator has been recommended since the Kubernetes v1.18 release, which also deprecated the legacy way of invoking `kubectl exec`.\n\nThis change aligns with the deprecation of legacy `kubectl exec` command execution and enforces the use of `kubectl exec [POD] -- [COMMAND]` for improved compatibility and adherence to recommended practices.\"\n", + "markdown": "\"Removed the ability to run `kubectl exec [POD] [COMMAND]` without a `--` separator.\n The `--` separator has been recommended since the Kubernetes v1.18 release, which also deprecated the legacy way of invoking `kubectl exec`.\n \n This change aligns with the deprecation of legacy `kubectl exec` command execution and enforces the use of `kubectl exec [POD] -- [COMMAND]` for improved compatibility and adherence to recommended practices.\"\n ([#125437](https://github.com/kubernetes/kubernetes/pull/125437), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125437", + "pr_number": 125437, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125442": { + "commit": "de00a3c894f17936b66bbd88ae1471f222826629", + "text": "Graduated `JobPodFailurePolicy` to GA and locked it to it's default.", + "markdown": "Graduated `JobPodFailurePolicy` to GA and locked it to it's default. ([#125442](https://github.com/kubernetes/kubernetes/pull/125442), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps, Scheduling and Testing]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125442", + "pr_number": 125442, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125450": { + "commit": "4630bef3034366812c6a1c68aa68d919853320a9", + "text": "Introduced `Wait(context.Context) error` method in pkg k8s.io/apiserver/pkg/storage/cacher to improve watch cache initialization resilience.", + "markdown": "Introduced `Wait(context.Context) error` method in pkg k8s.io/apiserver/pkg/storage/cacher to improve watch cache initialization resilience. ([#125450](https://github.com/kubernetes/kubernetes/pull/125450), [@mauri870](https://github.com/mauri870)) [SIG API Machinery]", + "documentation": [ + { + "description": "[Related KEP]", + "url": "https://kep.k8s.io/4568", + "type": "external" + } + ], + "author": "mauri870", + "author_url": "https://github.com/mauri870", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125450", + "pr_number": 125450, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "flake", + "failing-test" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "125459": { + "commit": "2c1aa2bfec3af3907fce0f4afec975ee7f09efbc", + "text": "LogarithmicScaleDown is now GA.", + "markdown": "LogarithmicScaleDown is now GA. ([#125459](https://github.com/kubernetes/kubernetes/pull/125459), [@MinpengJin](https://github.com/MinpengJin)) [SIG Apps and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2185", + "type": "KEP" + } + ], + "author": "MinpengJin", + "author_url": "https://github.com/MinpengJin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125459", + "pr_number": 125459, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "scheduling" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125461": { + "commit": "4a214f6ad966a4f5b22dc4446ef3c4e21de9a38e", + "text": "Graduated PodDisruptionConditions to GA and lock", + "markdown": "Graduated PodDisruptionConditions to GA and lock ([#125461](https://github.com/kubernetes/kubernetes/pull/125461), [@mimowo](https://github.com/mimowo)) [SIG Apps, Node, Scheduling and Testing]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125461", + "pr_number": 125461, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "125470": { + "commit": "fc3abdaf2dbb11c84033635b1d26f12fe12ef001", + "text": "Added a `.status.features.supplementalGroupsPolicy` field to Nodes. The field is true when the feature is implemented in the CRI implementation (KEP-3619).", + "markdown": "Added a `.status.features.supplementalGroupsPolicy` field to Nodes. The field is true when the feature is implemented in the CRI implementation (KEP-3619). ([#125470](https://github.com/kubernetes/kubernetes/pull/125470), [@everpeace](https://github.com/everpeace)) [SIG API Machinery, Apps, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3619-supplemental-groups-policy", + "type": "KEP" + } + ], + "author": "everpeace", + "author_url": "https://github.com/everpeace", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125470", + "pr_number": 125470, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125475": { + "commit": "cd19796316b9504d92ba4776502290fbd35dc681", + "text": "KEP-3857: promoted RecursiveReadOnlyMounts feature to beta.", + "markdown": "KEP-3857: promoted RecursiveReadOnlyMounts feature to beta. ([#125475](https://github.com/kubernetes/kubernetes/pull/125475), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/3857", + "type": "external" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/storage/volumes/#read-only-mounts", + "type": "official" + } + ], + "author": "AkihiroSuda", + "author_url": "https://github.com/AkihiroSuda", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125475", + "pr_number": 125475, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "125480": { + "commit": "63bc33181436cf90c626efe90d0dd9dfb97aabc2", + "text": "kubeadm: Fixed a regression where the JoinConfiguration.discovery.timeout was no longer respected and the value was always hardcoded to \"5m\" (5 minutes).", + "markdown": "Kubeadm: Fixed a regression where the JoinConfiguration.discovery.timeout was no longer respected and the value was always hardcoded to \"5m\" (5 minutes). ([#125480](https://github.com/kubernetes/kubernetes/pull/125480), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125480", + "pr_number": 125480, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "125488": { + "commit": "d21b17264e5a554724aa3ad032536630bcfd5b3f", + "text": "Enhanced the Dynamic Resource Allocation (DRA) with an updated version of the resource.k8s.io API group. The primary user-facing type remains the ResourceClaim, however significant changes have been made, resulting in the new version, v1alpha3, which is not compatible with the previous version.", + "markdown": "Enhanced the Dynamic Resource Allocation (DRA) with an updated version of the resource.k8s.io API group. The primary user-facing type remains the ResourceClaim, however significant changes have been made, resulting in the new version, v1alpha3, which is not compatible with the previous version. ([#125488](https://github.com/kubernetes/kubernetes/pull/125488), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Cluster Lifecycle, Etcd, Node, Release, Scheduling, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125488", + "pr_number": 125488, + "areas": [ + "test", + "kubelet", + "apiserver", + "kubectl", + "release-eng", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cli", + "cluster-lifecycle", + "etcd", + "node", + "release", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125510": { + "commit": "0a3330d6c995a5d69cafa9e15b3ab2adf3e93b84", + "text": "Delay setting terminal Job conditions until all pods are terminal.\n\nAdditionally, the FailureTarget condition is also added to the Job object in the first Job\nstatus update as soon as the failure conditions are met (backoffLimit is exceeded, maxFailedIndexes, \nor activeDeadlineSeconds is exceeded).\n\nSimilarly, the SuccessCriteriaMet condition is added in the first update as soon as the expected number\nof pod completions is reached.\n\nAlso, introduced the following validation rules for Job status when JobManagedBy is enabled:\n1. the count of ready pods is less or equal than active\n2. when transitioning to terminal phase for Job, the number of terminating pods is 0\n3. terminal Job conditions (Failed and Complete) should be preceded by adding the corresponding interim conditions: FailureTarget and SuccessCriteriaMet", + "markdown": "Delay setting terminal Job conditions until all pods are terminal.\n \n Additionally, the FailureTarget condition is also added to the Job object in the first Job\n status update as soon as the failure conditions are met (backoffLimit is exceeded, maxFailedIndexes, \n or activeDeadlineSeconds is exceeded).\n \n Similarly, the SuccessCriteriaMet condition is added in the first update as soon as the expected number\n of pod completions is reached.\n \n Also, introduced the following validation rules for Job status when JobManagedBy is enabled:\n 1. the count of ready pods is less or equal than active\n 2. when transitioning to terminal phase for Job, the number of terminating pods is 0\n 3. terminal Job conditions (Failed and Complete) should be preceded by adding the corresponding interim conditions: FailureTarget and SuccessCriteriaMet ([#125510](https://github.com/kubernetes/kubernetes/pull/125510), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/4368-support-managed-by-for-batch-jobs", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125510", + "pr_number": 125510, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125527": { + "commit": "8c508c5480844682eab8a4172526b6db3476fdc0", + "text": "Fixed a bug where Pods could be stuck in the unschedulable pod pool \nif they're rejected by PreEnqueue plugins that could change its result by a change in resources apart from Pods.\n\nDRA plugin is the only plugin that meets the criteria of the bug in in-tree, \nand hence if you have `DynamicResourceAllocation` feature flag enabled, \nyour DRA Pods could be affected by this bug.", + "markdown": "Fixed a bug where Pods could be stuck in the unschedulable pod pool \n if they're rejected by PreEnqueue plugins that could change its result by a change in resources apart from Pods.\n \n DRA plugin is the only plugin that meets the criteria of the bug in in-tree, \n and hence if you have `DynamicResourceAllocation` feature flag enabled, \n your DRA Pods could be affected by this bug. ([#125527](https://github.com/kubernetes/kubernetes/pull/125527), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125527", + "pr_number": 125527, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125528": { + "commit": "ef9965ebc66dafda37800bb04f5e284535bbba10", + "text": "Enabled feature gates for PortForward (kubectl port-forward) over WebSockets by default (beta).\n - Server-side feature gate: PortForwardWebsocket\n - Client-side (kubectl) feature gate: PORT_FORWARD_WEBSOCKETS environment variable\n - To turn off PortForward over WebSockets for kubectl, the environment variable feature gate must be explicitly set - PORT_FORWARD_WEBSOCKETS=false", + "markdown": "Enabled feature gates for PortForward (kubectl port-forward) over WebSockets by default (beta).\n - Server-side feature gate: PortForwardWebsocket\n - Client-side (kubectl) feature gate: PORT_FORWARD_WEBSOCKETS environment variable\n - To turn off PortForward over WebSockets for kubectl, the environment variable feature gate must be explicitly set - PORT_FORWARD_WEBSOCKETS=false ([#125528](https://github.com/kubernetes/kubernetes/pull/125528), [@seans3](https://github.com/seans3)) [SIG API Machinery and CLI]", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125528", + "pr_number": 125528, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cli" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125536": { + "commit": "8b727956214818a3a5846bca060426a13a578348", + "text": "Improved the documentation clarity for building Kubernetes in Docker Environment, making it more understandable for new users and contributors.", + "markdown": "Improved the documentation clarity for building Kubernetes in Docker Environment, making it more understandable for new users and contributors. ([#125536](https://github.com/kubernetes/kubernetes/pull/125536), [@this-is-yaash](https://github.com/this-is-yaash))", + "author": "this-is-yaash", + "author_url": "https://github.com/this-is-yaash", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125536", + "pr_number": 125536, + "kinds": [ + "cleanup" + ], + "sigs": [ + "release" + ], + "is_mapped": true + }, + "125540": { + "commit": "a3a49887ee73fa1108adac97a797dec02ccb00d4", + "text": "Fixed incorrect \"v1 Binding is deprecated in v1.6+\" warning in kube-scheduler log.", + "markdown": "Fixed incorrect \"v1 Binding is deprecated in v1.6+\" warning in kube-scheduler log. ([#125540](https://github.com/kubernetes/kubernetes/pull/125540), [@pohly](https://github.com/pohly)) [SIG API Machinery]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125540", + "pr_number": 125540, + "kinds": [ + "bug", + "api-change", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "125546": { + "commit": "95e16917f78310c16c81437c523d66abf716aeba", + "text": "Now the .status.ready field is tracked faster when active Pods are deleted, specifically when Job is failed, gets suspended or has too many active pods.", + "markdown": "Now the .status.ready field is tracked faster when active Pods are deleted, specifically when Job is failed, gets suspended or has too many active pods. ([#125546](https://github.com/kubernetes/kubernetes/pull/125546), [@dejanzele](https://github.com/dejanzele)) [SIG Apps]", + "author": "dejanzele", + "author_url": "https://github.com/dejanzele", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125546", + "pr_number": 125546, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "125549": { + "commit": "44b2c363f2ff05554d223ce7a883388ec32576c3", + "text": "kube-apiserver: ControllerRevision objects are now verified to contain valid JSON data in the `data` field.", + "markdown": "Kube-apiserver: ControllerRevision objects are now verified to contain valid JSON data in the `data` field. ([#125549](https://github.com/kubernetes/kubernetes/pull/125549), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125549", + "pr_number": 125549, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125552": { + "commit": "fc786fc6e8d37ad58e326093856e69d1aa8237cc", + "text": "kube-apiserver: timeouts configured for authorization webhooks in the --authorization-config file are now honored, and webhook timeouts are accurately reflected in webhook metrics with result=timeout", + "markdown": "Kube-apiserver: timeouts configured for authorization webhooks in the --authorization-config file are now honored, and webhook timeouts are accurately reflected in webhook metrics with result=timeout ([#125552](https://github.com/kubernetes/kubernetes/pull/125552), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "KEP-3221", + "url": "https://github.com/kubernetes/enhancements/issues/3221", + "type": "KEP" + } + ], + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125552", + "pr_number": 125552, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true + }, + "125560": { + "commit": "d236a9127fe36317bb35854d63b275d7efdb399e", + "text": "Added field management support to the fake client-go typed client.\nUse `fake.NewClientset()` instead of `fake.NewSimpleClientset()` to create a clientset with managed field support.", + "markdown": "Added field management support to the fake client-go typed client.\n Use `fake.NewClientset()` instead of `fake.NewSimpleClientset()` to create a clientset with managed field support. ([#125560](https://github.com/kubernetes/kubernetes/pull/125560), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, Instrumentation and Testing]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125560", + "pr_number": 125560, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125566": { + "commit": "7b359a2f9e1ff5cdc49cfcc4e350e9d796f502c0", + "text": "kubeadm: Added `--yes` flag to the list of allowed flags so that it can be mixed with `kubeadm upgrade apply --config`.", + "markdown": "Kubeadm: Added `--yes` flag to the list of allowed flags so that it can be mixed with `kubeadm upgrade apply --config`. ([#125566](https://github.com/kubernetes/kubernetes/pull/125566), [@xmudrii](https://github.com/xmudrii)) [SIG Cluster Lifecycle]", + "author": "xmudrii", + "author_url": "https://github.com/xmudrii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125566", + "pr_number": 125566, + "areas": [ + "kubeadm" + ], + "kinds": [ + "regression" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "125571": { + "commit": "64ba17c605a41700f7f4c4e27dca3684b593b2b9", + "text": "kube-apiserver: Added Alpha features to allow API server authz to check the context of requests:\n- The `AuthorizeWithSelectors` feature gate enables including field and label selector information from requests in webhook authorization calls.\n- The `AuthorizeNodeWithSelectors` feature gate changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer.", + "markdown": "Kube-apiserver: Added Alpha features to allow API server authz to check the context of requests:\n - The `AuthorizeWithSelectors` feature gate enables including field and label selector information from requests in webhook authorization calls.\n - The `AuthorizeNodeWithSelectors` feature gate changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer. ([#125571](https://github.com/kubernetes/kubernetes/pull/125571), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4601", + "type": "KEP" + } + ], + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125571", + "pr_number": 125571, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "auth", + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125578": { + "commit": "59673f0f379dc06e52866777482659485b57f3b0", + "text": "When schedulingQueueHint is enabled, the scheduling queue doesn't update Pods being scheduled immediately.", + "markdown": "When schedulingQueueHint is enabled, the scheduling queue doesn't update Pods being scheduled immediately. ([#125578](https://github.com/kubernetes/kubernetes/pull/125578), [@nayihz](https://github.com/nayihz)) [SIG Scheduling]", + "author": "nayihz", + "author_url": "https://github.com/nayihz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125578", + "pr_number": 125578, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "125582": { + "commit": "921b69b133db6b0a919e9eb766ff185277cabc79", + "text": "kubeadm: added the ControlPlaneKubeletLocalMode feature gate. It can be used to tell kubeadm to use the local kube-apiserver endpoint for the kubelet when creating a cluster with \"kubeadm init\" or when joining control plane nodes with \"kubeadm join\". The \"kubeadm join\" workflow now includes two new experimental phases called \"control-plane-join-etcd\" and \"kubelet-wait-bootstrap\" which will be used when the feature gate is enabled. This phases will be marked as non-experimental when ControlPlaneKubeletLocalMode becomes GA. During \"kubeadm upgrade\" commands, if the feature gate is enabled, modify the \"/etc/kubernetes/kubelet.conf \" to use the local kube-apiserver endpoint. This upgrade mechanism will be removed once the feature gate goes GA and is hardcoded to true.", + "markdown": "Kubeadm: added the ControlPlaneKubeletLocalMode feature gate. It can be used to tell kubeadm to use the local kube-apiserver endpoint for the kubelet when creating a cluster with \"kubeadm init\" or when joining control plane nodes with \"kubeadm join\". The \"kubeadm join\" workflow now includes two new experimental phases called \"control-plane-join-etcd\" and \"kubelet-wait-bootstrap\" which will be used when the feature gate is enabled. This phases will be marked as non-experimental when ControlPlaneKubeletLocalMode becomes GA. During \"kubeadm upgrade\" commands, if the feature gate is enabled, modify the \"/etc/kubernetes/kubelet.conf \" to use the local kube-apiserver endpoint. This upgrade mechanism will be removed once the feature gate goes GA and is hardcoded to true. ([#125582](https://github.com/kubernetes/kubernetes/pull/125582), [@chrischdi](https://github.com/chrischdi)) [SIG Cluster Lifecycle]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/bcd6c468b88903b49d1784a9364516142a8e83f9/keps/sig-cluster-lifecycle/kubeadm/4471-cp-join-kubelet-local-apiserver/README.md", + "type": "KEP" + } + ], + "author": "chrischdi", + "author_url": "https://github.com/chrischdi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125582", + "pr_number": 125582, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "125584": { + "commit": "fd74ad8e6d61acd5ebf2f4dff68a55e2c1608b3f", + "text": "Fixed recursive LIST from watch cache returning object matching key.", + "markdown": "Fixed recursive LIST from watch cache returning object matching key. ([#125584](https://github.com/kubernetes/kubernetes/pull/125584), [@serathius](https://github.com/serathius)) [SIG API Machinery and Testing]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125584", + "pr_number": 125584, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125591": { + "commit": "d729af9446bf6621d3e916f44cbbc939fa0f9c6d", + "text": "Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled `WatchListClient` for kube-controller-manager (KCM).", + "markdown": "Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled `WatchListClient` for kube-controller-manager (KCM). ([#125591](https://github.com/kubernetes/kubernetes/pull/125591), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125591", + "pr_number": 125591, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125641": { + "commit": "437f6e92ece183f30fe88195d3c262b918b103ac", + "text": "Fixed sample-cli-plugin help text to be consistent and always use `kubectl ns`.", + "markdown": "Fixed sample-cli-plugin help text to be consistent and always use `kubectl ns`. ([#125641](https://github.com/kubernetes/kubernetes/pull/125641), [@nirs](https://github.com/nirs)) [SIG CLI]", + "author": "nirs", + "author_url": "https://github.com/nirs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125641", + "pr_number": 125641, + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "do_not_publish": true, + "is_mapped": true + }, + "125646": { + "commit": "991e7a8c15cbf959cd67bf92fd5e8adfd6875406", + "text": "In the client-side apply on create, defining the null value as \"delete the key associated with this value\".", + "markdown": "In the client-side apply on create, defining the null value as \"delete the key associated with this value\". ([#125646](https://github.com/kubernetes/kubernetes/pull/125646), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, CLI and Testing]", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125646", + "pr_number": 125646, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125650": { + "commit": "2b122bc5faf51f939fdf0893f768097833941ef9", + "text": "Added Extra.DisableAvailableConditionController for Generic Control Plane setup.", + "markdown": "Added Extra.DisableAvailableConditionController for Generic Control Plane setup. ([#125650](https://github.com/kubernetes/kubernetes/pull/125650), [@mjudeikis](https://github.com/mjudeikis)) [SIG API Machinery]", + "author": "mjudeikis", + "author_url": "https://github.com/mjudeikis", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125650", + "pr_number": 125650, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "125656": { + "commit": "27fa59a8afe9c1709bce53edc5f51e1f082435a2", + "text": "kubelet/stats: set INFO log level for stats not found in cadvisor memory cache error.", + "markdown": "Kubelet/stats: set INFO log level for stats not found in cadvisor memory cache error. ([#125656](https://github.com/kubernetes/kubernetes/pull/125656), [@gyuho](https://github.com/gyuho))", + "author": "gyuho", + "author_url": "https://github.com/gyuho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125656", + "pr_number": 125656, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "125659": { + "commit": "d95de06fa7dedf9230d013f27a0413a08b127354", + "text": "Added OCI VolumeSource Container Runtime Interface API fields and types.", + "markdown": "Added OCI VolumeSource Container Runtime Interface API fields and types. ([#125659](https://github.com/kubernetes/kubernetes/pull/125659), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/4639", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125659", + "pr_number": 125659, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "125660": { + "commit": "595927da21da34f5fed62e237e7a73d9635ac621", + "text": "Revised the Pod API with Alpha support for volumes derived from OCI artifacts. This feature is behind the `ImageVolume` feature gate.", + "markdown": "Revised the Pod API with Alpha support for volumes derived from OCI artifacts. This feature is behind the `ImageVolume` feature gate. ([#125660](https://github.com/kubernetes/kubernetes/pull/125660), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Apps and Node]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/4639", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125660", + "pr_number": 125660, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125661": { + "commit": "bb350f711174670443e23aa3616606870a471bd7", + "text": "Cleaned deprecated `context.StopCh` in favor of ctx.", + "markdown": "Cleaned deprecated `context.StopCh` in favor of ctx. ([#125661](https://github.com/kubernetes/kubernetes/pull/125661), [@mjudeikis](https://github.com/mjudeikis))", + "author": "mjudeikis", + "author_url": "https://github.com/mjudeikis", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125661", + "pr_number": 125661, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "125675": { + "commit": "11c689b94587792185de1758fe3bd507c6b5dc29", + "text": "Fixed endpoints status out-of-sync when the pod state changes rapidly", + "markdown": "Fixed endpoints status out-of-sync when the pod state changes rapidly ([#125675](https://github.com/kubernetes/kubernetes/pull/125675), [@tnqn](https://github.com/tnqn)) [SIG Apps, Network and Testing]", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125675", + "pr_number": 125675, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "network", + "testing" + ], + "duplicate": true + }, + "125751": { + "commit": "cdcaea687c6367d77be37b6244e29d5903845ca2", + "text": "`ElasticIndexedJob` is graduated to GA.", + "markdown": "`ElasticIndexedJob` is graduated to GA. ([#125751](https://github.com/kubernetes/kubernetes/pull/125751), [@ahg-g](https://github.com/ahg-g)) [SIG Apps and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3715-elastic-indexed-job", + "type": "KEP" + } + ], + "author": "ahg-g", + "author_url": "https://github.com/ahg-g", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125751", + "pr_number": 125751, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125758": { + "commit": "41f21823f5c41528cbbe7cd39827afe25fa28c1e", + "text": "kubeadm: improved the warning/error messages of `validateSupportedVersion` to include the checked resource kind name.", + "markdown": "Kubeadm: improved the warning/error messages of `validateSupportedVersion` to include the checked resource kind name. ([#125758](https://github.com/kubernetes/kubernetes/pull/125758), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125758", + "pr_number": 125758, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "125767": { + "commit": "b977096f5a23916bf0ff0af4a6ee6932b37606a9", + "text": "For statically provisioned PVs, if its volume source is CSI type or it has migrated annotation, when it's deleted, the PersisentVolume controller won't changes its phase to the Failed state. \n\nWith this patch, the external provisioner can remove the finalizer in next reconcile loop. Unfortunately if the provious existing pv has the Failed state, this patch won't take effort. It requires users to remove finalizer.", + "markdown": "For statically provisioned PVs, if its volume source is CSI type or it has migrated annotation, when it's deleted, the PersisentVolume controller won't changes its phase to the Failed state. \n \n With this patch, the external provisioner can remove the finalizer in next reconcile loop. Unfortunately if the provious existing pv has the Failed state, this patch won't take effort. It requires users to remove finalizer. ([#125767](https://github.com/kubernetes/kubernetes/pull/125767), [@carlory](https://github.com/carlory)) [SIG Apps and Storage]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125767", + "pr_number": 125767, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "storage" + ], + "duplicate": true, + "is_mapped": true + }, + "125776": { + "commit": "19d9e4fa7f990fc96b736e8a4fec923c235e7b9b", + "text": "kubelet now hard rejects pods with AppArmor if the node does not have AppArmor.", + "markdown": "Kubelet now hard rejects pods with AppArmor if the node does not have AppArmor. ([#125776](https://github.com/kubernetes/kubernetes/pull/125776), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Node]", + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125776", + "pr_number": 125776, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "125778": { + "commit": "0344f29e839cbd49cf743af27719ad7f72608891", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#125778](https://github.com/kubernetes/kubernetes/pull/125778), [@haitch](https://github.com/haitch)) [SIG API Machinery and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4330", + "type": "KEP" + } + ], + "author": "haitch", + "author_url": "https://github.com/haitch", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125778", + "pr_number": 125778, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "scheduling" + ], + "feature": true, + "duplicate": true, + "do_not_publish": true + }, + "125779": { + "commit": "5e331569e4cd461baf19b9f2cc493af1f7f7a73f", + "text": "kubeadm: fixed a bug where the path of the manifest can not be specified when `kubeadm upgrade diff` specified a config file, and the `--api-server-manifest`, `--controller-manager-manifest` and `--scheduler-manifest` flags of `kubeadm upgrade diff` are marked as deprecated and will be removed in a future release.", + "markdown": "Kubeadm: fixed a bug where the path of the manifest can not be specified when `kubeadm upgrade diff` specified a config file, and the `--api-server-manifest`, `--controller-manager-manifest` and `--scheduler-manifest` flags of `kubeadm upgrade diff` are marked as deprecated and will be removed in a future release. ([#125779](https://github.com/kubernetes/kubernetes/pull/125779), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125779", + "pr_number": 125779, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "125782": { + "commit": "25935965c5774fadf3b9a06b811422503053c3dd", + "text": "Fixed the documentation for the default value of the `procMount` entry in `securityContext` within a Pod.\nThe documentation was previously using the name of the internal variable `DefaultProcMount`, rather than the actual value, \"Default\".", + "markdown": "Fixed the documentation for the default value of the `procMount` entry in `securityContext` within a Pod.\n The documentation was previously using the name of the internal variable `DefaultProcMount`, rather than the actual value, \"Default\". ([#125782](https://github.com/kubernetes/kubernetes/pull/125782), [@aborrero](https://github.com/aborrero)) [SIG Apps and Node]", + "author": "aborrero", + "author_url": "https://github.com/aborrero", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125782", + "pr_number": 125782, + "areas": [ + "code-generation" + ], + "kinds": [ + "documentation", + "api-change" + ], + "sigs": [ + "apps", + "node" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125787": { + "commit": "a9c156baefbd201f1ae6bfc8158e536dec7f99eb", + "text": "kube-apiserver: the `--enable-logs-handler` flag and log-serving functionality which was already deprecated is now switched off by default and scheduled to be removed in v1.33.", + "markdown": "Kube-apiserver: the `--enable-logs-handler` flag and log-serving functionality which was already deprecated is now switched off by default and scheduled to be removed in v1.33. ([#125787](https://github.com/kubernetes/kubernetes/pull/125787), [@dims](https://github.com/dims)) [SIG API Machinery, Network and Testing]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125787", + "pr_number": 125787, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "network", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125797": { + "commit": "d902351c991a68fa76de9935a485afeb1f780c11", + "text": "kubeadm: the `--feature-gates` flag is deprecated and no-op for `kubeadm upgrade apply/plan`, and it will be removed in a future release. The upgrade workflow is not designed to reconfigure the cluster. Please edit the 'featureGates' field of ClusterConfiguration which is defined in the kube-system/kubeadm-config ConfigMap instead.", + "markdown": "Kubeadm: the `--feature-gates` flag is deprecated and no-op for `kubeadm upgrade apply/plan`, and it will be removed in a future release. The upgrade workflow is not designed to reconfigure the cluster. Please edit the 'featureGates' field of ClusterConfiguration which is defined in the kube-system/kubeadm-config ConfigMap instead. ([#125797](https://github.com/kubernetes/kubernetes/pull/125797), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125797", + "pr_number": 125797, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "125813": { + "commit": "fa7fcde5a4b1be2162b85191dcdfa646facaf95c", + "text": "Enforced kubelet to request serving certificates only once it has at least one IP address in the `.status.addresses` of its associated Node object. This avoids requesting DNS-only serving certificates before externally set addresses are in place. Until 1.33, the previous behavior can be opted back into by setting the deprecated `AllowDNSOnlyNodeCSR` feature gate to true in the kubelet.", + "markdown": "Enforced kubelet to request serving certificates only once it has at least one IP address in the `.status.addresses` of its associated Node object. This avoids requesting DNS-only serving certificates before externally set addresses are in place. Until 1.33, the previous behavior can be opted back into by setting the deprecated `AllowDNSOnlyNodeCSR` feature gate to true in the kubelet. ([#125813](https://github.com/kubernetes/kubernetes/pull/125813), [@aojea](https://github.com/aojea)) [SIG Auth, Cloud Provider and Node]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125813", + "pr_number": 125813, + "areas": [ + "kubelet", + "cloudprovider" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "auth", + "cloud-provider", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125828": { + "commit": "e785ef8d21a01f6a344096f3dbac3b0cc65101e5", + "text": "Promoted CRI communication of the cgroup driver mechanism to beta. The `KubeletCgroupDriverFromCRI` feature gate is now in beta and enabled by default. This allows the kubelet to query the container runtime using CRI to determine the mechanism for cgroup management. If the container runtime doesn't support this, the kubelet falls back to using the configuration file (you can also use the deprecated `--cgroup-driver` command line argument).", + "markdown": "Promoted CRI communication of the cgroup driver mechanism to beta. The `KubeletCgroupDriverFromCRI` feature gate is now in beta and enabled by default. This allows the kubelet to query the container runtime using CRI to determine the mechanism for cgroup management. If the container runtime doesn't support this, the kubelet falls back to using the configuration file (you can also use the deprecated `--cgroup-driver` command line argument). ([#125828](https://github.com/kubernetes/kubernetes/pull/125828), [@haircommander](https://github.com/haircommander)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/4033-group-driver-detection-over-cri/README.md", + "type": "KEP" + } + ], + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125828", + "pr_number": 125828, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "125838": { + "commit": "0a59545f4d2a7f27bfa8143a65c76f1eb933f794", + "text": "The Service trafficDistribution field has graduated to beta and is now available for configuration by default, without the need to enable any feature flag. Services that do not have the field configured will continue to operate with their existing behavior. Refer to the documentation https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution for more details.", + "markdown": "The Service trafficDistribution field has graduated to beta and is now available for configuration by default, without the need to enable any feature flag. Services that do not have the field configured will continue to operate with their existing behavior. Refer to the documentation https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution for more details. ([#125838](https://github.com/kubernetes/kubernetes/pull/125838), [@gauravkghildiyal](https://github.com/gauravkghildiyal)) [SIG Network and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4444-service-traffic-distribution", + "type": "KEP" + } + ], + "author": "gauravkghildiyal", + "author_url": "https://github.com/gauravkghildiyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125838", + "pr_number": 125838, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125842": { + "commit": "8ebfb8c2c2dcc5089390eeb383520e8310bf7423", + "text": "Drop support for the deprecated and unsupported kubectl run flags:\n- filename\n- force\n- grace-period\n- kustomize\n- recursive\n- timeout\n- wait\n\nDrop support for the deprecated --delete-local-data from kubectl drain, users should use --delete-emptydir-data, instead.", + "markdown": "Drop support for the deprecated and unsupported kubectl run flags:\n - filename\n - force\n - grace-period\n - kustomize\n - recursive\n - timeout\n - wait\n \n Drop support for the deprecated --delete-local-data from kubectl drain, users should use --delete-emptydir-data, instead. ([#125842](https://github.com/kubernetes/kubernetes/pull/125842), [@soltysh](https://github.com/soltysh)) [SIG CLI]", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125842", + "pr_number": 125842, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "125846": { + "commit": "30ffa521e69197610dfcd8e0c0b1d1db73ccf071", + "text": "API Priority and Fairness feature was promoted to GA in 1.29, the corresponding \nfeature gate 'APIPriorityAndFairness' has been removed in 1.31.", + "markdown": "API Priority and Fairness feature was promoted to GA in 1.29, the corresponding \n feature gate 'APIPriorityAndFairness' has been removed in 1.31. ([#125846](https://github.com/kubernetes/kubernetes/pull/125846), [@tkashem](https://github.com/tkashem)) [SIG API Machinery]", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125846", + "pr_number": 125846, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "125850": { + "commit": "c87c06d7ffb932395f963bc78f03f9d2f0e57698", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#125850](https://github.com/kubernetes/kubernetes/pull/125850), [@dims](https://github.com/dims)) [SIG API Machinery, Auth, Storage and Testing]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125850", + "pr_number": 125850, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "auth", + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "125867": { + "commit": "48eef1fc4ff789e76cf4132ae599227292037642", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#125867](https://github.com/kubernetes/kubernetes/pull/125867), [@zhifei92](https://github.com/zhifei92)) [SIG Node and Testing]", + "author": "zhifei92", + "author_url": "https://github.com/zhifei92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125867", + "pr_number": 125867, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "125868": { + "commit": "37f733a657ef71d66177d00f9b7d47ec507dedd3", + "text": "Added --for=create option to kubectl wait", + "markdown": "Added --for=create option to kubectl wait ([#125868](https://github.com/kubernetes/kubernetes/pull/125868), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing]", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125868", + "pr_number": 125868, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true + }, + "125894": { + "commit": "6698fb7d2436df14b8c881f04b15d111878e592b", + "text": "Kubernetes is now built with go 1.22.5.", + "markdown": "Kubernetes is now built with go 1.22.5. ([#125894](https://github.com/kubernetes/kubernetes/pull/125894), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125894", + "pr_number": 125894, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125929": { + "commit": "01eb9f47541156a38e4b28759977c06f07f08012", + "text": "Implemented `event_handling_duration_seconds` metric, which is the time the scheduler takes to handle each kind of events.", + "markdown": "Implemented `event_handling_duration_seconds` metric, which is the time the scheduler takes to handle each kind of events. ([#125929](https://github.com/kubernetes/kubernetes/pull/125929), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125929", + "pr_number": 125929, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "125935": { + "commit": "fa4b8f32ac8503b2d736d29a9cf52cbe316b552b", + "text": "Fixed a bug that init containers with `Always` restartPolicy may not terminate gracefully if the pod hasn't initialized yet.", + "markdown": "Fixed a bug that init containers with `Always` restartPolicy may not terminate gracefully if the pod hasn't initialized yet. ([#125935](https://github.com/kubernetes/kubernetes/pull/125935), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing]", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125935", + "pr_number": 125935, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "125941": { + "commit": "ebdca538058d2265cb8dc528d0145faea0a6a7cf", + "text": "$ k logs wardle-server-65dbc6f5d-9pwv4 -n wardle\nDefaulted container \"wardle-server\" out of: wardle-server, etcd\nI0707 11:16:37.994750 1 registry.go:379] setting wardle:feature gate emulation version to 1.2\nI0707 11:16:37.997302 1 registry.go:379] setting kube:feature gate emulation version to 1.32\nI0707 11:16:37.997370 1 feature_gate.go:522] set feature gate emulationVersion to 1.32\nI0707 11:16:37.998443 1 plugins.go:83] \"Registered admission plugin\" plugin=\"BanFlunder\"\nE0707 11:16:38.001481 1 run.go:72] \"command failed\" err=\"emulation version 1.32 is not between [1.30, 1.31.0]\"", + "markdown": "$ k logs wardle-server-65dbc6f5d-9pwv4 -n wardle\n Defaulted container \"wardle-server\" out of: wardle-server, etcd\n I0707 11:16:37.994750 1 registry.go:379] setting wardle:feature gate emulation version to 1.2\n I0707 11:16:37.997302 1 registry.go:379] setting kube:feature gate emulation version to 1.32\n I0707 11:16:37.997370 1 feature_gate.go:522] set feature gate emulationVersion to 1.32\n I0707 11:16:37.998443 1 plugins.go:83] \"Registered admission plugin\" plugin=\"BanFlunder\"\n E0707 11:16:38.001481 1 run.go:72] \"command failed\" err=\"emulation version 1.32 is not between [1.30, 1.31.0]\" ([#125941](https://github.com/kubernetes/kubernetes/pull/125941), [@fxierh](https://github.com/fxierh)) [SIG API Machinery, Cluster Lifecycle and Testing]", + "author": "fxierh", + "author_url": "https://github.com/fxierh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125941", + "pr_number": 125941, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "cluster-lifecycle", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "125961": { + "commit": "ae1caa40a29c5476efe51e8ce2ce33812e1ce8ce", + "text": "```\n\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n\n\u003c!--\nThis section can be blank if this pull request does not require a release note.\n\nWhen adding links which point to resources within git repositories, like\nKEPs or supporting documentation, please reference a specific commit and avoid\nlinking directly to the master branch. This ensures that links reference a\nspecific point in time, rather than a document that may change over time.\n\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n\nPlease use the following format for linking documentation:\n- [KEP]: \u003clink\u003e\n- [Usage]: \u003clink\u003e\n- [Other doc]: \u003clink\u003e\n--\u003e", + "markdown": "```\n \n #### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\n \n \u003c!--\n This section can be blank if this pull request does not require a release note.\n \n When adding links which point to resources within git repositories, like\n KEPs or supporting documentation, please reference a specific commit and avoid\n linking directly to the master branch. This ensures that links reference a\n specific point in time, rather than a document that may change over time.\n \n See here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\n \n Please use the following format for linking documentation:\n - [KEP]: \u003clink\u003e\n - [Usage]: \u003clink\u003e\n - [Other doc]: \u003clink\u003e\n --\u003e ([#125961](https://github.com/kubernetes/kubernetes/pull/125961), [@Jerry-yz](https://github.com/Jerry-yz)) [SIG Scheduling]", + "author": "Jerry-yz", + "author_url": "https://github.com/Jerry-yz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125961", + "pr_number": 125961, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "125970": { + "commit": "bb089b93746f364bdd8550f11868f460a43e3b81", + "text": "Added `/sys/devices/virtual/powercap` to default masked paths. It avoids the potential security risk that the ability to read these files may offer a power-based sidechannel attack against any workloads running on the same kernel.", + "markdown": "Added `/sys/devices/virtual/powercap` to default masked paths. It avoids the potential security risk that the ability to read these files may offer a power-based sidechannel attack against any workloads running on the same kernel. ([#125970](https://github.com/kubernetes/kubernetes/pull/125970), [@carlory](https://github.com/carlory)) [SIG Node]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125970", + "pr_number": 125970, + "areas": [ + "security" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "126012": { + "commit": "60862c98a4c0bcbc351b076714108d364883b5f7", + "text": "Stopped using wmic on Windows to get uuid in the kubelet.", + "markdown": "Stopped using wmic on Windows to get uuid in the kubelet. ([#126012](https://github.com/kubernetes/kubernetes/pull/126012), [@marosset](https://github.com/marosset)) [SIG Node and Windows]", + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126012", + "pr_number": 126012, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "windows" + ], + "duplicate": true, + "is_mapped": true + }, + "126638": { + "commit": "099a88370d017dacf16e67306ebcdec8394fae83", + "text": "Fixed kubectl wait --for=jsonpath lowercasing in the condition part of the argument.", + "markdown": "Fixed kubectl wait --for=jsonpath lowercasing in the condition part of the argument. ([#126638](https://github.com/kubernetes/kubernetes/pull/126638)), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing]", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126638", + "pr_number": 126638, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cli", + "testing" + ] + }, + "126014": { + "commit": "a4f9910c51ffd574736b548ac1c5771afcf928ae", + "text": "Promoted `LocalStorageCapacityIsolation` to beta; the behaviour is enabled by default. Within the kubelet, storage capacity isolation is active if the feature gate is enabled and the specific Pod is using a user namespace.", + "markdown": "Promoted `LocalStorageCapacityIsolation` to beta; the behaviour is enabled by default. Within the kubelet, storage capacity isolation is active if the feature gate is enabled and the specific Pod is using a user namespace. ([#126014](https://github.com/kubernetes/kubernetes/pull/126014), [@PannagaRao](https://github.com/PannagaRao)) [SIG Apps, Autoscaling, Node, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1029-ephemeral-storage-quotas", + "type": "KEP" + } + ], + "author": "PannagaRao", + "author_url": "https://github.com/PannagaRao", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126014", + "pr_number": 126014, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "apps", + "autoscaling", + "node", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "126031": { + "commit": "fbdfb9d8d90ac4d0a54f87c4944085d6727e25f4", + "text": "Introduced a new boolean kubelet flag `--fail-cgroupv1`. Running kubelet using cgroup v1 is in a maintenance mode: no new features will be added with the limited support for bug fixes. Please consider migrating to cgroup v2. See [KEP-4569: Moving cgroup v1 support into maintenance mode](https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support) for more info.", + "markdown": "Introduced a new boolean kubelet flag `--fail-cgroupv1`. Running kubelet using cgroup v1 is in a maintenance mode: no new features will be added with the limited support for bug fixes. Please consider migrating to cgroup v2. See [KEP-4569: Moving cgroup v1 support into maintenance mode](https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support) for more info. ([#126031](https://github.com/kubernetes/kubernetes/pull/126031), [@harche](https://github.com/harche)) [SIG API Machinery and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support", + "type": "KEP" + } + ], + "author": "harche", + "author_url": "https://github.com/harche", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126031", + "pr_number": 126031, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "126034": { + "commit": "f36a821de828372a5f99528d21f309f75e17d043", + "text": "Add UserNamespaces field to NodeRuntimeHandlerFeatures", + "markdown": "Add UserNamespaces field to NodeRuntimeHandlerFeatures ([#126034](https://github.com/kubernetes/kubernetes/pull/126034), [@sohankunkerkar](https://github.com/sohankunkerkar)) [SIG API Machinery, Apps and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4265", + "type": "KEP" + } + ], + "author": "sohankunkerkar", + "author_url": "https://github.com/sohankunkerkar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126034", + "pr_number": 126034, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "126046": { + "commit": "d11e86027dcd1ed1b8a917cedec9cd084d6cc3e0", + "text": "Use omitempty for optional Job Pod Failure Policy fields.", + "markdown": "Use omitempty for optional Job Pod Failure Policy fields. ([#126046](https://github.com/kubernetes/kubernetes/pull/126046), [@mimowo](https://github.com/mimowo)) [SIG Apps]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126046", + "pr_number": 126046, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "126047": { + "commit": "67c7e770441ab2ac2c7af28cb719d87aacad9f0d", + "text": "Updated kubernetes to build with Go 1.23rc2.", + "markdown": "Updated kubernetes to build with Go 1.23rc2. ([#126047](https://github.com/kubernetes/kubernetes/pull/126047), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126047", + "pr_number": 126047, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "126057": { + "commit": "a87612b6676723b34a5b3d2d80ab4e04552221ae", + "text": "Fixed a 1.30.0 regression in openapi descriptions of `PodIP.IP` and `HostIP.IP` fields to mark the fields used as keys in those lists as required.", + "markdown": "Fixed a 1.30.0 regression in openapi descriptions of `PodIP.IP` and `HostIP.IP` fields to mark the fields used as keys in those lists as required. ([#126057](https://github.com/kubernetes/kubernetes/pull/126057), [@thockin](https://github.com/thockin)) [SIG API Machinery]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126057", + "pr_number": 126057, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "126067": { + "commit": "1854839ff08eba7434ebfa98ab84de2d3a62d4ce", + "text": "Graduated the Job `successPolicy` field to beta.\n\nThe new reason label, \"SuccessPolicy\" and \"CompletionsReached\" are added to the \"jobs_finished_total\" metric.\nAdditionally, if you enable the `JobSuccessPolicy` feature gate, the Job gets \"CompletionsReached\" reason for the \"SuccessCriteriaMet\" and \"Complete\" condition type\nwhen the number of succeeded Job Pods (`.status.succeeded`) reached the desired completions (`.spec.completions`).", + "markdown": "Graduated the Job `successPolicy` field to beta.\n \n The new reason label, \"SuccessPolicy\" and \"CompletionsReached\" are added to the \"jobs_finished_total\" metric.\n Additionally, if you enable the `JobSuccessPolicy` feature gate, the Job gets \"CompletionsReached\" reason for the \"SuccessCriteriaMet\" and \"Complete\" condition type\n when the number of succeeded Job Pods (`.status.succeeded`) reached the desired completions (`.spec.completions`). ([#126067](https://github.com/kubernetes/kubernetes/pull/126067), [@tenzen-y](https://github.com/tenzen-y)) [SIG API Machinery, Apps and Testing]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3998-job-success-completion-policy", + "type": "KEP" + } + ], + "author": "tenzen-y", + "author_url": "https://github.com/tenzen-y", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126067", + "pr_number": 126067, + "areas": [ + "test", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "126072": { + "commit": "8aff9d31929deed906856fbfaae5744c1b9ba868", + "text": "Made kube-proxy Windows service control manager integration (`--windows-service`) configurable in v1alpha1 component configuration via `windowsRunAsService` field.", + "markdown": "Made kube-proxy Windows service control manager integration (`--windows-service`) configurable in v1alpha1 component configuration via `windowsRunAsService` field. ([#126072](https://github.com/kubernetes/kubernetes/pull/126072), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Scalability]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126072", + "pr_number": 126072, + "areas": [ + "kube-proxy", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "network", + "scalability" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "126073": { + "commit": "d0545c8eb4ca5e8bb7704b5f51197b5082964e85", + "text": "Fixed fake clientset ApplyScale subresource from `status` to `scale`.", + "markdown": "Fixed fake clientset ApplyScale subresource from `status` to `scale`. ([#126073](https://github.com/kubernetes/kubernetes/pull/126073), [@a7i](https://github.com/a7i))", + "author": "a7i", + "author_url": "https://github.com/a7i", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126073", + "pr_number": 126073, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "126107": { + "commit": "892acaa6a7e8d6d0b919e4929d362909eefcaaf3", + "text": "Fixed a bug in storage-version-migrator-controller that would cause migration attempts to fail if resources were deleted when the migration was in progress.", + "markdown": "Fixed a bug in storage-version-migrator-controller that would cause migration attempts to fail if resources were deleted when the migration was in progress. ([#126107](https://github.com/kubernetes/kubernetes/pull/126107), [@enj](https://github.com/enj)) [SIG API Machinery, Apps, Auth and Testing]", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126107", + "pr_number": 126107, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "flake" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "126108": { + "commit": "107f6214626c2c6c42aa11141e4572c02e4daff7", + "text": "Reduced state change noise when volume expansion fails. Also mark certain failures as infeasible.\n\nACTION REQUIRED: If you are using the `RecoverVolumeExpansionFailure` alpha feature gate\nthen after upgrading to this release, you need to update some objects.\nFor any existing PersistentVolumeClaims with `status.allocatedResourceStatus` set to either\n\"ControllerResizeFailed\" or \"NodeResizeFailed\", clear the `status.allocatedResourceStatus`.", + "markdown": "Reduced state change noise when volume expansion fails. Also mark certain failures as infeasible.\n \n ACTION REQUIRED: If you are using the `RecoverVolumeExpansionFailure` alpha feature gate\n then after upgrading to this release, you need to update some objects.\n For any existing PersistentVolumeClaims with `status.allocatedResourceStatus` set to either\n \"ControllerResizeFailed\" or \"NodeResizeFailed\", clear the `status.allocatedResourceStatus`. ([#126108](https://github.com/kubernetes/kubernetes/pull/126108), [@gnufied](https://github.com/gnufied)) [SIG Apps, Auth, Node, Storage and Testing]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126108", + "pr_number": 126108, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "apps", + "auth", + "node", + "storage", + "testing" + ], + "duplicate": true, + "action_required": true, + "is_mapped": true + }, + "126113": { + "commit": "24fbb13eafec665e6f4b64961930774babd8b6d1", + "text": "ACTION REQUIRED for custom scheduler plugin developers:\n`EventsToRegister` in the `EnqueueExtensions` interface gets `ctx` in the parameters and `error` in the return values.\nPlease change your plugins' implementation accordingly.", + "markdown": "ACTION REQUIRED for custom scheduler plugin developers:\n `EventsToRegister` in the `EnqueueExtensions` interface gets `ctx` in the parameters and `error` in the return values.\n Please change your plugins' implementation accordingly. ([#126113](https://github.com/kubernetes/kubernetes/pull/126113), [@googs1025](https://github.com/googs1025)) [SIG Node, Scheduling, Storage and Testing]", + "author": "googs1025", + "author_url": "https://github.com/googs1025", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126113", + "pr_number": 126113, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "node", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "126124": { + "commit": "acaec0c23a7e5f76b98c519d91cdf66cbe4c0263", + "text": "The ValidatingAdmissionPolicy metrics have been redone to count and time all validations, including failures and admissions.", + "markdown": "The ValidatingAdmissionPolicy metrics have been redone to count and time all validations, including failures and admissions. ([#126124](https://github.com/kubernetes/kubernetes/pull/126124), [@cici37](https://github.com/cici37)) [SIG API Machinery and Instrumentation]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126124", + "pr_number": 126124, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true + }, + "126125": { + "commit": "fc03f3e74c3d891e62b347c518b3197b62e9532c", + "text": "Allowed calling Stop multiple times on RetryWatcher without panicking.", + "markdown": "Allowed calling Stop multiple times on RetryWatcher without panicking. ([#126125](https://github.com/kubernetes/kubernetes/pull/126125), [@mprahl](https://github.com/mprahl))", + "author": "mprahl", + "author_url": "https://github.com/mprahl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126125", + "pr_number": 126125, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "126136": { + "commit": "8f265b63050739937cd939c05a98def37002f1e8", + "text": "Removed feature gate `CustomResourceValidationExpressions`.", + "markdown": "Removed feature gate `CustomResourceValidationExpressions`. ([#126136](https://github.com/kubernetes/kubernetes/pull/126136), [@cici37](https://github.com/cici37)) [SIG API Machinery, Cloud Provider and Testing]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126136", + "pr_number": 126136, + "areas": [ + "test", + "apiserver", + "provider/gcp", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "126139": { + "commit": "c3bcd4fff06566886f36d6e59536b3d00a69a637", + "text": "Reverted a [change](https://github.com/kubernetes/kubernetes/pull/123513) where `ConsistentListFromCache` was moved to beta and enabled by default.", + "markdown": "Reverted a [change](https://github.com/kubernetes/kubernetes/pull/123513) where `ConsistentListFromCache` was moved to beta and enabled by default. ([#126139](https://github.com/kubernetes/kubernetes/pull/126139), [@enj](https://github.com/enj))", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126139", + "pr_number": 126139, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "api-change", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "126145": { + "commit": "c2fdeca4ab81336daf20c91b810c9685918c3d58", + "text": "Promoted feature-gate `VolumeAttributesClass` to beta (disabled by default). Users need to enable the feature gate and the `storage.k8s.io/v1beta1` API group to use this feature.\nPromoted the VolumeAttributesClass API to beta.", + "markdown": "Promoted feature-gate `VolumeAttributesClass` to beta (disabled by default). Users need to enable the feature gate and the `storage.k8s.io/v1beta1` API group to use this feature.\n Promoted the VolumeAttributesClass API to beta. ([#126145](https://github.com/kubernetes/kubernetes/pull/126145), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, CLI, Etcd, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3751", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126145", + "pr_number": 126145, + "areas": [ + "test", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "cli", + "etcd", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "126163": { + "commit": "c01bc31fa2fb59c127c4c10215548033cd2e7a99", + "text": "kube-apiserver: when the Alpha `UserNamespacesPodSecurityStandards` feature gate is enabled, Pod Security Admission enforcement of the baseline policy now allows `procMount: Unmasked` for user namespace pods that set `hostUsers: false`.", + "markdown": "Kube-apiserver: when the Alpha `UserNamespacesPodSecurityStandards` feature gate is enabled, Pod Security Admission enforcement of the baseline policy now allows `procMount: Unmasked` for user namespace pods that set `hostUsers: false`. ([#126163](https://github.com/kubernetes/kubernetes/pull/126163), [@haircommander](https://github.com/haircommander))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4265", + "type": "KEP" + } + ], + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126163", + "pr_number": 126163, + "kinds": [ + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true, + "is_mapped": true + }, + "126165": { + "commit": "8e175c688e37e4baf70c4015346b8b5615a84328", + "text": "Starting in 1.31, `container_engine_t` was added to the list of allowed SELinux types in the baseline Pod Security Standard.", + "markdown": "Starting in 1.31, `container_engine_t` was added to the list of allowed SELinux types in the baseline Pod Security Standard. ([#126165](https://github.com/kubernetes/kubernetes/pull/126165), [@haircommander](https://github.com/haircommander))", + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126165", + "pr_number": 126165, + "kinds": [ + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true, + "is_mapped": true + }, + "126166": { + "commit": "16c2ad5b842f23eda3674d3cd908de359554d5dc", + "text": "Added `storage_class` and `volume_attributes_class` labels to `pv_collector_bound_pvc_count` and `pv_collector_unbound_pvc_count` metrics.", + "markdown": "Added `storage_class` and `volume_attributes_class` labels to `pv_collector_bound_pvc_count` and `pv_collector_unbound_pvc_count` metrics. ([#126166](https://github.com/kubernetes/kubernetes/pull/126166), [@AndrewSirenko](https://github.com/AndrewSirenko)) [SIG Apps, Instrumentation, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3751", + "type": "KEP" + } + ], + "author": "AndrewSirenko", + "author_url": "https://github.com/AndrewSirenko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126166", + "pr_number": 126166, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "instrumentation", + "storage", + "testing" + ], + "feature": true, + "duplicate": true + }, + "126167": { + "commit": "5420b2fe9a84af57cc24793c8f8ac8821b65f42f", + "text": "kube-apiserver: fixed a potential crash serving CustomResourceDefinitions that combine an invalid schema and CEL validation rules.", + "markdown": "Kube-apiserver: fixed a potential crash serving CustomResourceDefinitions that combine an invalid schema and CEL validation rules. ([#126167](https://github.com/kubernetes/kubernetes/pull/126167), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126167", + "pr_number": 126167, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "126174": { + "commit": "fa15f12fb509875a8466242d8f5fe643217ec502", + "text": "mount-utils: treated syscall.ENODEV as corrupted mount.", + "markdown": "Mount-utils: treated syscall.ENODEV as corrupted mount. ([#126174](https://github.com/kubernetes/kubernetes/pull/126174), [@dobsonj](https://github.com/dobsonj))", + "author": "dobsonj", + "author_url": "https://github.com/dobsonj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126174", + "pr_number": 126174, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "126188": { + "commit": "a48a92c72ec7d4e2a8da396309abff9360faae75", + "text": "To enhance usability and developer experience, CRD validation rules now support direct use of (CEL) reserved keywords as field names in object validation expressions for existing expressions in storage, will fully support runtime in next release for compatibility concern.", + "markdown": "To enhance usability and developer experience, CRD validation rules now support direct use of (CEL) reserved keywords as field names in object validation expressions for existing expressions in storage, will fully support runtime in next release for compatibility concern. ([#126188](https://github.com/kubernetes/kubernetes/pull/126188), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing]", + "documentation": [ + { + "description": "[CRD validation rule doc](", + "url": "https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#validation-rules)", + "type": "official" + }, + { + "description": "[CEL reserved keyword](", + "url": "https://github.com/google/cel-spec/blob/master/doc/langdef.md#syntax)", + "type": "external" + } + ], + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126188", + "pr_number": 126188, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "126191": { + "commit": "dda657b5982e8f9102b8df5931344262b0793163", + "text": "Reverted \"Graduated the `WatchList` feature gate to beta for kube-apiserver and enables `WatchListClient` for kube-controller-manager (KCM)\".", + "markdown": "Reverted \"Graduated the `WatchList` feature gate to beta for kube-apiserver and enables `WatchListClient` for kube-controller-manager (KCM)\". ([#126191](https://github.com/kubernetes/kubernetes/pull/126191), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126191", + "pr_number": 126191, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "126205": { + "commit": "fe24ebfe3308750531ea0d7f8be83804bc53318d", + "text": "The `KubeletSeparateDiskGC` feature gate is now beta. This split image filesystem feature enables kubelet to perform garbage collection of images (read-only layers) and/or containers (writeable layers) deployed on separate filesystems. gate is now beta.", + "markdown": "The `KubeletSeparateDiskGC` feature gate is now beta. This split image filesystem feature enables kubelet to perform garbage collection of images (read-only layers) and/or containers (writeable layers) deployed on separate filesystems. gate is now beta. ([#126205](https://github.com/kubernetes/kubernetes/pull/126205), [@kwilczynski](https://github.com/kwilczynski))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4191", + "type": "external" + } + ], + "author": "kwilczynski", + "author_url": "https://github.com/kwilczynski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126205", + "pr_number": 126205, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "126207": { + "commit": "77e12aeca92c3c0fe2c1fc6ce7f0e17ba796c6fd", + "text": "Changed how the API server handles updates to `.spec.defaultBackend` of Ingress objects.\nServer-side apply now considers `.spec.defaultBackend` to be an atomic struct. This means that any field-owner who sets values in that struct (they are mutually exclusive) owns the whole struct. For almost all users this change has no impact; for controllers that want to change the default backend port from number to name (or vice-versa), this makes it easier.", + "markdown": "Changed how the API server handles updates to `.spec.defaultBackend` of Ingress objects.\n Server-side apply now considers `.spec.defaultBackend` to be an atomic struct. This means that any field-owner who sets values in that struct (they are mutually exclusive) owns the whole struct. For almost all users this change has no impact; for controllers that want to change the default backend port from number to name (or vice-versa), this makes it easier. ([#126207](https://github.com/kubernetes/kubernetes/pull/126207), [@thockin](https://github.com/thockin)) [SIG API Machinery]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126207", + "pr_number": 126207, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "126224": { + "commit": "b14769f2afe5ee1318d091ceb95b42012236762b", + "text": "kubeadm: fixed a bug on 'kubeadm join' where using patches with a kubeletconfiguration target was not respected when performing the local kubelet healthz check.", + "markdown": "Kubeadm: fixed a bug on 'kubeadm join' where using patches with a kubeletconfiguration target was not respected when performing the local kubelet healthz check. ([#126224](https://github.com/kubernetes/kubernetes/pull/126224), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126224", + "pr_number": 126224, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "126227": { + "commit": "43691598dab3c91717807ea9e4ab5ac8d27c4ea0", + "text": "Implemented `queueing_hint_execution_duration_seconds` metric, which is the time the QueueingHint function takes.", + "markdown": "Implemented `queueing_hint_execution_duration_seconds` metric, which is the time the QueueingHint function takes. ([#126227](https://github.com/kubernetes/kubernetes/pull/126227), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126227", + "pr_number": 126227, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "126237": { + "commit": "887def08b66c31b2f8bc260ea74d6c94671d474e", + "text": "Promoted the metrics for both ValidatingAdmissionPolicy (VAP) and CustomResourceDefinition (CRD) validation rules to beta.", + "markdown": "Promoted the metrics for both ValidatingAdmissionPolicy (VAP) and CustomResourceDefinition (CRD) validation rules to beta. ([#126237](https://github.com/kubernetes/kubernetes/pull/126237), [@cici37](https://github.com/cici37)) [SIG API Machinery and Instrumentation]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126237", + "pr_number": 126237, + "areas": [ + "apiserver", + "stable-metrics" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "126243": { + "commit": "5af1710d90d2396f6305c73fdf7df3a1be0c2fd0", + "text": "Added an `allocatedResourcesStatus` to each container status to indicate the health status of devices exposed by the device plugin.", + "markdown": "Added an `allocatedResourcesStatus` to each container status to indicate the health status of devices exposed by the device plugin. ([#126243](https://github.com/kubernetes/kubernetes/pull/126243), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG API Machinery, Apps, Node and Testing]", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126243", + "pr_number": 126243, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "126291": { + "commit": "ad805387e26a4e76ab53505d5eb552686368180b", + "text": "Set ProcMountType feature to disabled by default, to follow the lead of UserNamespacesSupport (which it relies on).", + "markdown": "Set ProcMountType feature to disabled by default, to follow the lead of UserNamespacesSupport (which it relies on). ([#126291](https://github.com/kubernetes/kubernetes/pull/126291), [@haircommander](https://github.com/haircommander)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4265", + "type": "KEP" + } + ], + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126291", + "pr_number": 126291, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "126293": { + "commit": "6834a1ef3d928f6f7e00e801a43c37bead75dbe9", + "text": "The kube-proxy command line flag `--proxy-port-range`, which was previously deprecated and non-functional, has now been removed.", + "markdown": "The kube-proxy command line flag `--proxy-port-range`, which was previously deprecated and non-functional, has now been removed. ([#126293](https://github.com/kubernetes/kubernetes/pull/126293), [@aroradaman](https://github.com/aroradaman)) [SIG Network]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126293", + "pr_number": 126293, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "126330": { + "commit": "05934d6283a7f54ec9e4ef543d038ee479345c2f", + "text": "Updated kubernetes to build with Go 1.22.5.", + "markdown": "Updated kubernetes to build with Go 1.22.5. ([#126330](https://github.com/kubernetes/kubernetes/pull/126330), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG Release and Testing]", + "author": "ArkaSaha30", + "author_url": "https://github.com/ArkaSaha30", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126330", + "pr_number": 126330, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "release", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "126335": { + "commit": "df69a528d5a50d03f5865d8aeb7f8400cf48296b", + "text": "Fixed bug in kubelet if the `SplitImageFilesystem` feature gate is turned on but the container runtime is not configured.", + "markdown": "Fixed bug in kubelet if the `SplitImageFilesystem` feature gate is turned on but the container runtime is not configured. ([#126335](https://github.com/kubernetes/kubernetes/pull/126335), [@kannon92](https://github.com/kannon92))", + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126335", + "pr_number": 126335, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "126355": { + "commit": "c853ca49c3d104ad559c4d4bdc802106d27deb52", + "text": "Set `LocalStorageCapacityIsolationFSQuotaMonitoring` to false by default, to match `UserNamespacesSupport` (which the feature relies on).", + "markdown": "Set `LocalStorageCapacityIsolationFSQuotaMonitoring` to false by default, to match `UserNamespacesSupport` (which the feature relies on). ([#126355](https://github.com/kubernetes/kubernetes/pull/126355), [@haircommander](https://github.com/haircommander))", + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126355", + "pr_number": 126355, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "126441": { + "commit": "aab56e9b70b7d80f2a5a5f2907e172de257662b5", + "text": "Ensured that the Node Admission plugin to reject CSR requests created by a node identity for the signers `kubernetes.io/kubelet-serving` or `kubernetes.io/kube-apiserver-client-kubelet` with a CN starting with `system:node:`, but where the CN is not `system:node:${node-name}`. The feature gate `AllowInsecureKubeletCertificateSigningRequests` defaults to `false`, but can be enabled to revert to the previous behavior. This feature gate will be removed in Kubernetes v1.33.", + "markdown": "Ensured that the Node Admission plugin to reject CSR requests created by a node identity for the signers `kubernetes.io/kubelet-serving` or `kubernetes.io/kube-apiserver-client-kubelet` with a CN starting with `system:node:`, but where the CN is not `system:node:${node-name}`. The feature gate `AllowInsecureKubeletCertificateSigningRequests` defaults to `false`, but can be enabled to revert to the previous behavior. This feature gate will be removed in Kubernetes v1.33. ([#126441](https://github.com/kubernetes/kubernetes/pull/126441), [@micahhausler](https://github.com/micahhausler))", + "author": "micahhausler", + "author_url": "https://github.com/micahhausler", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126441", + "pr_number": 126441, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth" + ], + "is_mapped": true + } } \ No newline at end of file diff --git a/releases/release-1.31/release-notes/release-notes-draft.md b/releases/release-1.31/release-notes/release-notes-draft.md index 14ce18d6a85..e2d3392c967 100644 --- a/releases/release-1.31/release-notes/release-notes-draft.md +++ b/releases/release-1.31/release-notes/release-notes-draft.md @@ -1,532 +1,532 @@ -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- Added support to the scheduler to start using QueueingHint registered for Pod/Updated event to determine whether unschedulable Pods update make them schedulable, when the feature gate `SchedulerQueueingHints` is enabled. - Previously, when unschedulable Pods are updated, the scheduler always put Pods back to activeQ/backoffQ. But, actually not all updates to Pods make Pods schedulable, especially considering many scheduling constraints nowadays are immutable. - Now, when unschedulable Pods are updated, the scheduling queue checks with QueueingHint(s) whether the update may make the pods schedulable, and requeues them to activeQ/backoffQ **only when** at least one QueueingHint(s) return Queue. - - Action required for custom scheduler plugin developers: - Plugins **have to** implement a QueueingHint for Pod/Update event if the rejection from them could be resolved by updating unscheduled Pods themselves. - Example: suppose you develop a custom plugin that denies Pods that have a `schedulable=false` label. - Given Pods with a `schedulable=false` label will be schedulable if the `schedulable=false` label is removed, this plugin would implement QueueingHint for Pod/Update event that returns Queue when such label changes are made in unscheduled Pods. ([#122234](https://github.com/kubernetes/kubernetes/pull/122234), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Testing] - - Kubelet flag `--keep-terminated-pod-volumes` was removed. This flag was deprecated in 2017. ([#122082](https://github.com/kubernetes/kubernetes/pull/122082), [@carlory](https://github.com/carlory)) [SIG Apps, Node, Storage and Testing] - - 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 PersistentVolumeClaims with `status.allocatedResourceStatus` set to either - "ControllerResizeFailed" or "NodeResizeFailed", clear the `status.allocatedResourceStatus`. ([#126108](https://github.com/kubernetes/kubernetes/pull/126108), [@gnufied](https://github.com/gnufied)) [SIG Apps, Auth, Node, Storage and Testing] - - - Action required: Alpha feature gates `InTreePluginAWSUnregister`, `InTreePluginAzureDiskUnregister`, `InTreePluginAzureFileUnregister`, `InTreePluginGCEUnregister`, `InTreePluginOpenStackUnregister` and `InTreePluginvSphereUnregister` were removed. These feature gates had no visible effect on a cluster since Kubernetes 1.30, where the in-tree volume plugins were already removed. ([#124815](https://github.com/kubernetes/kubernetes/pull/124815), [@carlory](https://github.com/carlory)) [SIG Storage] - - - - -## Changes by Kind - -### Deprecation - -- kubeadm: marked the sub-phase of ''init kubelet-finalize'' called ''experimental-cert-rotation'' - as deprecated and print a warning if it is used directly; it will be removed in - a future release. Added a replacement sub-phase ''enable-client-cert-rotation''. ([#124419](https://github.com/kubernetes/kubernetes/pull/124419), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Added a warning when creating or updating a PersistentVolume (PV) with the deprecated annotation `volume.beta.kubernetes.io/mount-options`. ([#124819](https://github.com/kubernetes/kubernetes/pull/124819), [@carlory](https://github.com/carlory)) -- CephFS volume plugin ( `kubernetes.io/cephfs`) was removed in this release and the `cephfs` volume type became non-functional. Alternative is to use CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment of your application is required to use the new driver if you were using `kubernetes.io/cephfs` volume plugin before upgrading cluster version to 1.31+. ([#124544](https://github.com/kubernetes/kubernetes/pull/124544), [@carlory](https://github.com/carlory)) [SIG Node, Scalability, Storage and Testing] -- CephRBD volume plugin ( `kubernetes.io/rbd`) was removed in this release. And its csi migration support was also removed, so the `rbd` volume type became non-functional. Alternative is to use RBD CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment of your application is required to use the new driver if you were using `kubernetes.io/rbd` volume plugin before upgrading cluster version to 1.31+. ([#124546](https://github.com/kubernetes/kubernetes/pull/124546), [@carlory](https://github.com/carlory)) [SIG Node, Scalability, Scheduling, Storage and Testing] -- Kube-scheduler deprecated all non-csi volumelimit plugins and removed those from defaults plugins. - - AzureDiskLimits - - CinderLimits - - EBSLimits - - GCEPDLimits - - The NodeVolumeLimits plugin can handle the same functionality as the above plugins since the above volume types are migrated to CSI. - Please remove those plugins and replace them with the NodeVolumeLimits plugin if you explicitly use those plugins in the scheduler config. - Those plugins will be removed in the release 1.32. ([#124500](https://github.com/kubernetes/kubernetes/pull/124500), [@carlory](https://github.com/carlory)) [SIG Scheduling and Storage] -- Kubeadm: deprecated the kubeadm `RootlessControlPlane` feature gate (previously alpha), given that the core K8s `UserNamespacesSupport` feature gate graduated to beta in 1.30. - Once core Kubernetes support for user namespaces is generally available and kubeadm has started to support running the control plane in userns pods, the kubeadm `RootlessControlPlane` feature gate will be removed entirely. - Until kubeadm supports the userns functionality out of the box, users can continue using the deprecated `RootlessControlPlane` feature gate, or opt-in `UserNamespacesSupport` by using kubeadm patches on the static pod manifests. ([#124997](https://github.com/kubernetes/kubernetes/pull/124997), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Removed k8s.io/legacy-cloud-providers from staging. ([#124767](https://github.com/kubernetes/kubernetes/pull/124767), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Release] -- Removed legacy cloud provider integration code (undoing a previous reverted commit). ([#124886](https://github.com/kubernetes/kubernetes/pull/124886), [@carlory](https://github.com/carlory)) [SIG Cloud Provider and Release] - -### API Change - -- 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. - ([#125163](https://github.com/kubernetes/kubernetes/pull/125163), [@pohly](https://github.com/pohly)) [SIG Auth, Node and Testing] -- Added UserNamespaces field to NodeRuntimeHandlerFeatures ([#126034](https://github.com/kubernetes/kubernetes/pull/126034), [@sohankunkerkar](https://github.com/sohankunkerkar)) [SIG API Machinery, Apps and Node] -- Added Coordinated Leader Election as Alpha under the `CoordinatedLeaderElection` feature gate. With the feature enabled, the control plane can use LeaseCandidate objects (coordination.k8s.io/v1alpha1 API group) to participate in a leader election and let the kube-apiserver select the best instance according to some strategy. ([#124012](https://github.com/kubernetes/kubernetes/pull/124012), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Apps, Auth, Cloud Provider, Etcd, Node, Release, Scheduling and Testing] -- Added a `.status.features.supplementalGroupsPolicy` field to Nodes. The field is true when the feature is implemented in the CRI implementation (KEP-3619). ([#125470](https://github.com/kubernetes/kubernetes/pull/125470), [@everpeace](https://github.com/everpeace)) [SIG API Machinery, Apps, Node and Testing] -- Added an `allocatedResourcesStatus` to each container status to indicate the health status of devices exposed by the device plugin. ([#126243](https://github.com/kubernetes/kubernetes/pull/126243), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG API Machinery, Apps, Node and Testing] -- Added support to the kube-proxy nodePortAddresses / --nodeport-addresses option to - accept the value "primary", meaning to only listen for NodePort connections - on the node's primary IPv4 and/or IPv6 address (according to the Node object). - This is strongly recommended, if you were not previously using - --nodeport-addresses, to avoid surprising behavior. - (This behavior is enabled by default with the nftables backend; you would - need to explicitly request `--nodeport-addresses 0.0.0.0/0,::/0` there to get - the traditional "listen on all interfaces" behavior.) ([#123105](https://github.com/kubernetes/kubernetes/pull/123105), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Network and Windows] -- Added the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` to enforce the strict cost calculation for CEL extended libraries. It is strongly recommended to turn on the feature gates as early as possible. ([#124675](https://github.com/kubernetes/kubernetes/pull/124675), [@cici37](https://github.com/cici37)) [SIG API Machinery, Auth, Node and Testing] -- Changed how the API server handles updates to `.spec.defaultBackend` of Ingress objects. - Server-side apply now considers `.spec.defaultBackend` to be an atomic struct. This means that any field-owner who sets values in that struct (they are mutually exclusive) owns the whole struct. For almost all users this change has no impact; for controllers that want to change the default backend port from number to name (or vice-versa), this makes it easier. ([#126207](https://github.com/kubernetes/kubernetes/pull/126207), [@thockin](https://github.com/thockin)) [SIG API Machinery] -- Component-base/logs: when compiled with Go >= 1.21, component-base will automatically configure the slog default logger together with initializing klog. ([#120696](https://github.com/kubernetes/kubernetes/pull/120696), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Storage and Testing] -- CustomResourceDefinition objects created with non-empty `caBundle` fields which are invalid or do not contain any certificates will not appear in discovery or serve endpoints until a valid `caBundle` is provided. Updates to CustomResourceDefinition are no longer allowed to transition a valid `caBundle` field to an invalid `caBundle` field, because this breaks serving of the existing CustomResourceDefinition. ([#124061](https://github.com/kubernetes/kubernetes/pull/124061), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery] -- Dynamic Resource Allocation (DRA): Added a feature so the number of ResourceClaim objects can be limited per namespace and by the number of devices requested through a specific class via the v1.ResourceQuota mechanism. ([#120611](https://github.com/kubernetes/kubernetes/pull/120611), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Etcd, Node, Release, Scheduling and Testing] -- Dynamic Resource Allocation (DRA): client-side validation of a ResourceHandle would have accepted a missing DriverName, whereas server-side validation then would have raised an error. ([#124075](https://github.com/kubernetes/kubernetes/pull/124075), [@pohly](https://github.com/pohly)) -- Dynamic Resource Allocation (DRA): in the `pod.spec.recourceClaims` array, the `source` indirection is no longer necessary. Instead of e.g. `source: resourceClaimTemplateName: my-template`, one can write `resourceClaimTemplateName: my-template`. ([#125116](https://github.com/kubernetes/kubernetes/pull/125116), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing] -- Enhanced the Dynamic Resource Allocation (DRA) with an updated version of the resource.k8s.io API group. The primary user-facing type remains the ResourceClaim, however significant changes have been made, resulting in the new version, v1alpha3, which is not compatible with the previous version. ([#125488](https://github.com/kubernetes/kubernetes/pull/125488), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Cluster Lifecycle, Etcd, Node, Release, Scheduling, Storage and Testing] -- Fixed a 1.30.0 regression in OpenAPI descriptions of the `imagePullSecrets` and - `hostAliases` fields to mark the fields used as keys in those lists as either defaulted - or required. ([#124553](https://github.com/kubernetes/kubernetes/pull/124553), [@pmalek](https://github.com/pmalek)) -- Fixed a 1.30.0 regression in openapi descriptions of `PodIP.IP` and `HostIP.IP` fields to mark the fields used as keys in those lists as required. ([#126057](https://github.com/kubernetes/kubernetes/pull/126057), [@thockin](https://github.com/thockin)) -- Fixed a bug in the API server where empty collections of ValidatingAdmissionPolicies did not have an `items` field. ([#124568](https://github.com/kubernetes/kubernetes/pull/124568), [@xyz-li](https://github.com/xyz-li)) [SIG API Machinery] -- Fixed a deep copy issue when retrieving the controller reference. ([#124116](https://github.com/kubernetes/kubernetes/pull/124116), [@HiranmoyChowdhury](https://github.com/HiranmoyChowdhury)) [SIG API Machinery and Release] -- Fixed code-generator client-gen to work with `api/v1`-like package structure. ([#125162](https://github.com/kubernetes/kubernetes/pull/125162), [@sttts](https://github.com/sttts)) [SIG API Machinery and Apps] -- Fixed incorrect "v1 Binding is deprecated in v1.6+" warning in kube-scheduler log. ([#125540](https://github.com/kubernetes/kubernetes/pull/125540), [@pohly](https://github.com/pohly)) [SIG API Machinery] -- Fixed the comment for the Job's managedBy field. ([#124793](https://github.com/kubernetes/kubernetes/pull/124793), [@mimowo](https://github.com/mimowo)) [SIG API Machinery and Apps] -- Fixed the documentation for the default value of the `procMount` entry in `securityContext` within a Pod. - The documentation was previously using the name of the internal variable `DefaultProcMount`, rather than the actual value, "Default". ([#125782](https://github.com/kubernetes/kubernetes/pull/125782), [@aborrero](https://github.com/aborrero)) [SIG Apps and Node] -- Graduated PodDisruptionConditions to GA and lock ([#125461](https://github.com/kubernetes/kubernetes/pull/125461), [@mimowo](https://github.com/mimowo)) [SIG Apps, Node, Scheduling and Testing] -- Graduated MatchLabelKeys/MismatchLabelKeys feature in PodAffinity/PodAntiAffinity to Beta. ([#123638](https://github.com/kubernetes/kubernetes/pull/123638), [@sanposhiho](https://github.com/sanposhiho)) [SIG API Machinery, Apps, Scheduling and Testing] -- Graduated `JobPodFailurePolicy` to GA and locked it to its default. ([#125442](https://github.com/kubernetes/kubernetes/pull/125442), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps, Scheduling and Testing] -- Graduated the Job `successPolicy` field to beta. - - The new reason label, "SuccessPolicy" and "CompletionsReached" are added to the "jobs_finished_total" metric. - Additionally, if you enable the `JobSuccessPolicy` feature gate, the Job gets "CompletionsReached" reason for the "SuccessCriteriaMet" and "Complete" condition type - when the number of succeeded Job Pods (`.status.succeeded`) reached the desired completions (`.spec.completions`). ([#126067](https://github.com/kubernetes/kubernetes/pull/126067), [@tenzen-y](https://github.com/tenzen-y)) [SIG API Machinery, Apps and Testing] -- Graduated the `DisableNodeKubeProxyVersion` feature gate to beta. By default, the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for its associated Node. ([#123845](https://github.com/kubernetes/kubernetes/pull/123845), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Cloud Provider, Network, Node and Testing] -- Improved scheduling performance when many nodes, and prefilter returned 1-2 nodes (e.g. daemonset) - - For developers of out-of-tree PostFilter plugins, note that the semantics of NodeToStatusMap are changing: A node with an absent value in the NodeToStatusMap should be interpreted as having an UnschedulableAndUnresolvable status. ([#125197](https://github.com/kubernetes/kubernetes/pull/125197), [@gabesaba](https://github.com/gabesaba)) -- Introduced a new boolean kubelet flag `--fail-cgroupv1`. Running kubelet using cgroup v1 is in a maintenance mode: no new features will be added with the limited support for bug fixes. Please consider migrating to cgroup v2. See [KEP-4569: Moving cgroup v1 support into maintenance mode](https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support) for more info. ([#126031](https://github.com/kubernetes/kubernetes/pull/126031), [@harche](https://github.com/harche)) [SIG API Machinery and Node] -- K8s.io/apimachinery/pkg/util/runtime: Added support for new calls to handle panics and errors in the context where they occur. `PanicHandlers` and `ErrorHandlers` now must accept a context parameter for that. Log output is structured instead of unstructured. ([#121970](https://github.com/kubernetes/kubernetes/pull/121970), [@pohly](https://github.com/pohly)) [SIG API Machinery and Instrumentation] -- KEP-1880: Users of the new feature to add multiple service CIDR will use by default a dual-write strategy on the new ClusterIP allocators to avoid the problem of possible duplicate IPs allocated to Services when running skewed kube-apiservers using different allocators. They can opt-out of this behavior by enabled the feature gate DisableAllocatorDualWrite. ([#122047](https://github.com/kubernetes/kubernetes/pull/122047), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Instrumentation and Testing] -- Kube-apiserver: Added Alpha features to allow API server authz to check the context of requests: - - The `AuthorizeWithSelectors` feature gate enables including field and label selector information from requests in webhook authorization calls. - - The `AuthorizeNodeWithSelectors` feature gate changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer. ([#125571](https://github.com/kubernetes/kubernetes/pull/125571), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Node, Scheduling and Testing] -- Kube-apiserver: ControllerRevision objects are now verified to contain valid JSON data in the `data` field. ([#125549](https://github.com/kubernetes/kubernetes/pull/125549), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps] -- Kube-apiserver: the `--encryption-provider-config` file is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with config files that are malformed, mis-indented, or have typos in field names, and getting unexpected behavior. When `--encryption-provider-config-automatic-reload` is used, new encryption config files that contain typos after the kube-apiserver is running are treated as invalid and the last valid config is used. ([#124912](https://github.com/kubernetes/kubernetes/pull/124912), [@enj](https://github.com/enj)) [SIG API Machinery and Auth] -- Kube-controller-manager: the `horizontal-pod-autoscaler-upscale-delay` and `horizontal-pod-autoscaler-downscale-delay` flags have been removed (deprecated and non-functional since v1.12). ([#124948](https://github.com/kubernetes/kubernetes/pull/124948), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery, Apps and Autoscaling] -- Made kube-proxy Windows service control manager integration (`--windows-service`) configurable in v1alpha1 component configuration via `windowsRunAsService` field. ([#126072](https://github.com/kubernetes/kubernetes/pull/126072), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Scalability] -- PersistentVolumeLastPhaseTransitionTime feature is stable and enabled by default. ([#124969](https://github.com/kubernetes/kubernetes/pull/124969), [@RomanBednar](https://github.com/RomanBednar)) [SIG API Machinery, Apps, Storage and Testing] -- Promoted `LocalStorageCapacityIsolation` to beta; the behaviour is enabled by default. Within the kubelet, storage capacity isolation is active if the feature gate is enabled and the specific Pod is using a user namespace. ([#126014](https://github.com/kubernetes/kubernetes/pull/126014), [@PannagaRao](https://github.com/PannagaRao)) [SIG Apps, Autoscaling, Node, Storage and Testing] -- Promoted `StatefulSetStartOrdinal` to stable. This means `--feature-gates=StatefulSetStartOrdinal=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation. ([#125374](https://github.com/kubernetes/kubernetes/pull/125374), [@pwschuurman](https://github.com/pwschuurman)) [SIG API Machinery, Apps and Testing] -- Promoted feature-gate `VolumeAttributesClass` to beta (disabled by default). Users need to enable the feature gate and the `storage.k8s.io/v1beta1` API group to use this feature. - Promoted the VolumeAttributesClass API to beta. ([#126145](https://github.com/kubernetes/kubernetes/pull/126145), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, CLI, Etcd, Storage and Testing] -- Removed deprecated command flags --volume-host-cidr-denylist - and --volume-host-allow-local-loopback from kube-controller-manager. - ([#124017](https://github.com/kubernetes/kubernetes/pull/124017), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Cloud Provider and Storage] -- Removed feature gate `CustomResourceValidationExpressions`. ([#126136](https://github.com/kubernetes/kubernetes/pull/126136), [@cici37](https://github.com/cici37)) [SIG API Machinery, Cloud Provider and Testing] -- Reverted a [change](https://github.com/kubernetes/kubernetes/pull/123513) where `ConsistentListFromCache` was moved to beta and enabled by default. ([#126139](https://github.com/kubernetes/kubernetes/pull/126139), [@enj](https://github.com/enj)) -- Revised the Pod API with Alpha support for volumes derived from OCI artifacts. This feature is behind the `ImageVolume` feature gate. ([#125660](https://github.com/kubernetes/kubernetes/pull/125660), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Apps and Node] -- Supported fine-grained supplemental groups policy (KEP-3619), which enabled - fine-grained control for supplementary groups in the first container processes. - This allows you to choose whether to include groups defined in the container image (/etc/groups) - for the container's primary UID or not. ([#117842](https://github.com/kubernetes/kubernetes/pull/117842), [@everpeace](https://github.com/everpeace)) [SIG API Machinery, Apps and Node] -- The (alpha) nftables mode of kube-proxy now requires version 1.0.1 or later - of the nft command-line, and kernel 5.13 or later. (For testing/development - purposes, you can use older kernels, as far back as 5.4, if you set the - `nftables.skipKernelVersionCheck` option in the kube-proxy config, but this is not - recommended in production since it may cause problems with other nftables - users on the system.) ([#124152](https://github.com/kubernetes/kubernetes/pull/124152), [@danwinship](https://github.com/danwinship)) [SIG Network] -- To enhance usability and developer experience, CRD validation rules now support direct use of (CEL) reserved keywords as field names in object validation expressions for existing expressions in storage, will fully support runtime in next release for compatibility concern. ([#126188](https://github.com/kubernetes/kubernetes/pull/126188), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing] -- Updated the feature MultiCIDRServiceAllocator to beta (disabled by default). Users need to enable the feature gate and the networking v1beta1 group to be able to use this new feature, that allows to dynamically reconfigure Service CIDR ranges. ([#125021](https://github.com/kubernetes/kubernetes/pull/125021), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, CLI, Etcd, Instrumentation, Network and Testing] -- Use omitempty for optional Job Pod Failure Policy fields. ([#126046](https://github.com/kubernetes/kubernetes/pull/126046), [@mimowo](https://github.com/mimowo)) -- User can choose a different static policy option `SpreadPhysicalCPUsPreferredOption` to spread cpus across physical cpus for some specific applications ([#123733](https://github.com/kubernetes/kubernetes/pull/123733), [@Jeffwan](https://github.com/Jeffwan)) [SIG Node] -- When the feature gate AnonymousAuthConfigurableEndpoints is enabled users can update the AuthenticationConfig file with endpoints for with anonymous requests are allowed. ([#124917](https://github.com/kubernetes/kubernetes/pull/124917), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG API Machinery, Auth, Cloud Provider, Node and Testing] - -### Feature - -- kubeadm: enhanced the "patches" functionality to be able to patch coredns - deployment. The new patch target is called "corednsdeployment" (e.g. patch file - "corednsdeployment+json.json"). This makes it possible to apply custom patches - to coredns deployment during "init" and "upgrade". ([#124820](https://github.com/kubernetes/kubernetes/pull/124820), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- kubeadm: marked the flag "--experimental-output'' as deprecated (it will - be removed in a future release) and added a new flag ''--output" that serves the - same purpose. Affected commands are - "kubeadm config images list", "kubeadm token - list", "kubeadm upgrade plan", "kubeadm certs check-expiration". ([#124393](https://github.com/kubernetes/kubernetes/pull/124393), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle] -- ACTION REQUIRED for custom scheduler plugin developers: - `EventsToRegister` in the `EnqueueExtensions` interface gets `ctx` in the parameters and `error` in the return values. - Please change your plugins' implementation accordingly. ([#126113](https://github.com/kubernetes/kubernetes/pull/126113), [@googs1025](https://github.com/googs1025)) [SIG Node, Scheduling, Storage and Testing] -- Added --for=create option to kubectl wait ([#125868](https://github.com/kubernetes/kubernetes/pull/125868), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] -- Added a TopologyManager policy option: max-allowable-numa-nodes to configures maxAllowableNUMANodes for kubelet. ([#124148](https://github.com/kubernetes/kubernetes/pull/124148), [@cyclinder](https://github.com/cyclinder)) [SIG Node and Testing] -- Added Custom resource field selectors in beta and enabled them by default. Check out https://github.com/kubernetes/enhancements/issues/4358 for more details. ([#124681](https://github.com/kubernetes/kubernetes/pull/124681), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth and Testing] -- Added Extra.DisableAvailableConditionController for Generic Control Plane setup. ([#125650](https://github.com/kubernetes/kubernetes/pull/125650), [@mjudeikis](https://github.com/mjudeikis)) [SIG API Machinery] -- Added OCI VolumeSource Container Runtime Interface API fields and types. ([#125659](https://github.com/kubernetes/kubernetes/pull/125659), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] -- Added `--keep-*` flags to `kubectl debug`, which enables to control the removal - of probes, labels, annotations and initContainers from copy pod. ([#123149](https://github.com/kubernetes/kubernetes/pull/123149), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI and Testing] -- Added `cri-client` staging repository. ([#123797](https://github.com/kubernetes/kubernetes/pull/123797), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Node, Release and Testing] -- Added `storage_class` and `volume_attributes_class` labels to `pv_collector_bound_pvc_count` and `pv_collector_unbound_pvc_count` metrics. ([#126166](https://github.com/kubernetes/kubernetes/pull/126166), [@AndrewSirenko](https://github.com/AndrewSirenko)) [SIG Apps, Instrumentation, Storage and Testing] -- Added a feature to report an event about a Pod if kubelet observes a failed attach operation, even if the kubelet is running with `--enable-controller-attach-detach=false`. ([#124884](https://github.com/kubernetes/kubernetes/pull/124884), [@carlory](https://github.com/carlory)) -- Added a warning log, an event for cgroup v1 usage and a metric for cgroup version. Running kubelet using cgroup v1 is in a maintenance mode: no new features will be added with the limited support for bug fixes. Please consider migrating to cgroup v2. See [KEP-4569: Moving cgroup v1 support into maintenance mode](https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support) for more info. ([#125328](https://github.com/kubernetes/kubernetes/pull/125328), [@harche](https://github.com/harche)) -- Added apiserver.latency.k8s.io/apf-queue-wait annotation to the audit log - to record the time spent waiting in APF queue. ([#123919](https://github.com/kubernetes/kubernetes/pull/123919), [@hakuna-matatah](https://github.com/hakuna-matatah)) -- Added check for etcd version to warn about deprecated etcd versions if `ConsistentListFromCache` is enabled. ([#124612](https://github.com/kubernetes/kubernetes/pull/124612), [@ah8ad3](https://github.com/ah8ad3)) [SIG API Machinery] -- Added completion for `kubectl set image`. ([#124592](https://github.com/kubernetes/kubernetes/pull/124592), [@ah8ad3](https://github.com/ah8ad3)) [SIG CLI] -- Added field management support to the fake client-go typed client. - Use `fake.NewClientset()` instead of `fake.NewSimpleClientset()` to create a clientset with managed field support. ([#125560](https://github.com/kubernetes/kubernetes/pull/125560), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, Instrumentation and Testing] -- Added flag to `kubectl logs` called `--all-pods` to get all pods from a object that uses a pod selector. ([#124732](https://github.com/kubernetes/kubernetes/pull/124732), [@cmwylie19](https://github.com/cmwylie19)) [SIG CLI and Testing] -- Added namespace autocompletion for `kubectl config set-context` command. ([#124994](https://github.com/kubernetes/kubernetes/pull/124994), [@TessaIO](https://github.com/TessaIO)) [SIG CLI] -- Added ports autocompletion for `kubectl port-forward` command. ([#124683](https://github.com/kubernetes/kubernetes/pull/124683), [@TessaIO](https://github.com/TessaIO)) [SIG CLI] -- Added support for CEL(Common Expression Language) expressions and `additionalProperties` to be used under nested quantifiers in CRD schemas. ([#124381](https://github.com/kubernetes/kubernetes/pull/124381), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery] -- Added support for building Windows kube-proxy container image. - A container image for kube-proxy on Windows can now be built with the command - `make release-images KUBE_BUILD_WINDOWS=y`. - The Windows kube-proxy image can be used with Windows Host Process Containers. ([#109939](https://github.com/kubernetes/kubernetes/pull/109939), [@claudiubelu](https://github.com/claudiubelu)) [SIG Windows] -- Added support for kube-proxy iptables mode to track packets that were wrongfully marked invalid by conntrack and subsequently dropped by introducing `kubeproxy_iptables_ct_state_invalid_dropped_packets_total` metric. ([#122812](https://github.com/kubernetes/kubernetes/pull/122812), [@aroradaman](https://github.com/aroradaman)) [SIG Instrumentation, Network and Testing] -- Added the `WatchList` method to the `rest client` in `client-go`. When used, - it establishes a stream to obtain a consistent snapshot of data from the server. - This method is meant to be used by the generated client. ([#122657](https://github.com/kubernetes/kubernetes/pull/122657), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] -- Added the ability to the kubelet server to dynamically load certificate files. ([#124574](https://github.com/kubernetes/kubernetes/pull/124574), [@zhangweikop](https://github.com/zhangweikop)) [SIG Auth and Node] -- Allowed creating ServiceAccount tokens bound to Node objects. - This allows users to bind a service account token's validity to a named Node object, similar to Pod bound tokens. - Use with `kubectl create token <serviceaccount-name> --bound-object-kind=Node --bound-object-node=<node-name>`. ([#125238](https://github.com/kubernetes/kubernetes/pull/125238), [@munnerz](https://github.com/munnerz)) [SIG Auth and CLI] -- Built Kubernetes with Go 1.22.3. ([#124828](https://github.com/kubernetes/kubernetes/pull/124828), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- Built Kubernetes with Go 1.22.4. ([#125363](https://github.com/kubernetes/kubernetes/pull/125363), [@cpanato](https://github.com/cpanato)) [SIG Architecture, Cloud Provider, Release, Storage and Testing] -- Promoted CRI communication of the cgroup driver mechanism to beta. The `KubeletCgroupDriverFromCRI` feature gate is now in beta and enabled by default. This allows the kubelet to query the container runtime using CRI to determine the mechanism for cgroup management. If the container runtime doesn't support this, the kubelet falls back to using the configuration file (you can also use the deprecated `--cgroup-driver` command line argument). ([#125828](https://github.com/kubernetes/kubernetes/pull/125828), [@haircommander](https://github.com/haircommander)) [SIG Node] -- CEL: Added name formats library. ([#123572](https://github.com/kubernetes/kubernetes/pull/123572), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery] -- Changed Linux swap handling to restrict access to swap for containers in high priority Pods. - New Pods that have a node- or cluster-critical priority are prohibited from accessing swap on Linux, - even if your cluster and node configuration could otherwise allow this. ([#125277](https://github.com/kubernetes/kubernetes/pull/125277), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing] -- Client-go/reflector: warns when the bookmark event for initial events hasn't been received ([#124614](https://github.com/kubernetes/kubernetes/pull/124614), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] -- Continued streaming kubelet logs when the CRI server of the runtime was unavailable. ([#124025](https://github.com/kubernetes/kubernetes/pull/124025), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] -- Delay setting terminal Job conditions until all pods are terminal. - - Additionally, the FailureTarget condition is also added to the Job object in the first Job - status update as soon as the failure conditions are met (backoffLimit is exceeded, maxFailedIndexes, - or activeDeadlineSeconds is exceeded). - - Similarly, the SuccessCriteriaMet condition is added in the first update as soon as the expected number - of pod completions is reached. - - Also, introduced the following validation rules for Job status when JobManagedBy is enabled: - 1. the count of ready pods is less or equal than active - 2. when transitioning to terminal phase for Job, the number of terminating pods is 0 - 3. terminal Job conditions (Failed and Complete) should be preceded by adding the corresponding interim conditions: FailureTarget and SuccessCriteriaMet ([#125510](https://github.com/kubernetes/kubernetes/pull/125510), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing] -- Dependencies: started using registry.k8s.io/pause:3.10. ([#125112](https://github.com/kubernetes/kubernetes/pull/125112), [@neolit123](https://github.com/neolit123)) [SIG CLI, Cloud Provider, Cluster Lifecycle, Node, Release, Testing and Windows] -- Enabled feature gates for PortForward (kubectl port-forward) over WebSockets by default (beta). - - Server-side feature gate: PortForwardWebsocket - - Client-side (kubectl) feature gate: PORT_FORWARD_WEBSOCKETS environment variable - - To turn off PortForward over WebSockets for kubectl, the environment variable feature gate must be explicitly set - PORT_FORWARD_WEBSOCKETS=false ([#125528](https://github.com/kubernetes/kubernetes/pull/125528), [@seans3](https://github.com/seans3)) [SIG API Machinery and CLI] -- Enforced kubelet to request serving certificates only once it has at least one IP address in the `.status.addresses` of its associated Node object. This avoids requesting DNS-only serving certificates before externally set addresses are in place. Until 1.33, the previous behavior can be opted back into by setting the deprecated `AllowDNSOnlyNodeCSR` feature gate to true in the kubelet. ([#125813](https://github.com/kubernetes/kubernetes/pull/125813), [@aojea](https://github.com/aojea)) [SIG Auth, Cloud Provider and Node] -- Fixed a missing behavior where Windows nodes did not implement memory-pressure eviction. ([#122922](https://github.com/kubernetes/kubernetes/pull/122922), [@marosset](https://github.com/marosset)) [SIG Node, Testing and Windows] -- Graduated Kubernetes' support for AppArmor to GA. You now cannot disable the `AppArmor` feature gate. ([#125257](https://github.com/kubernetes/kubernetes/pull/125257), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Apps, Node and Testing] -- Graduated support for Container Device Interface (CDI) device IDs to general availability. The `DevicePluginCDIDevices` feature gate is now enabled unconditionally. ([#123315](https://github.com/kubernetes/kubernetes/pull/123315), [@bart0sh](https://github.com/bart0sh)) [SIG Node] -- Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled `WatchListClient` for kube-controller-manager (KCM). ([#125591](https://github.com/kubernetes/kubernetes/pull/125591), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] -- If the feature-gate VolumeAttributesClass is enabled, when finding a suitable persistent volume for a claim, the kube-controller-manager will be aware of the `volumeAttributesClassName` field of PVC and PV objects. The `volumeAttributesClassName` field is a reference to a VolumeAttributesClass object, which contains a set of key-value pairs that present mutable attributes of the volume. It's forbidden to change the `volumeAttributesClassName` field of a PVC object until the PVC is bound to a PV object. During the binding process, if a PVC has a `volumeAttributesClassName` field set, the controller will only consider volumes that have the same `volumeAttributesClassName` as the PVC. If the `volumeAttributesClassName` field is not set or set to an empty string, only volumes with empty `volumeAttributesClassName` will be considered. ([#121902](https://github.com/kubernetes/kubernetes/pull/121902), [@carlory](https://github.com/carlory)) [SIG Apps, Scheduling, Storage and Testing] -- Implemented `event_handling_duration_seconds` metric, which is the time the scheduler takes to handle each kind of events. ([#125929](https://github.com/kubernetes/kubernetes/pull/125929), [@sanposhiho](https://github.com/sanposhiho)) -- Implemented `queueing_hint_execution_duration_seconds` metric, which is the time the QueueingHint function takes. ([#126227](https://github.com/kubernetes/kubernetes/pull/126227), [@sanposhiho](https://github.com/sanposhiho)) -- Implemented new cluster events UpdatePodScaleDown and UpdatePodLabel for scheduler plugins. ([#122628](https://github.com/kubernetes/kubernetes/pull/122628), [@sanposhiho](https://github.com/sanposhiho)) -- Improved memory usage of kube-apiserver by dropping`.metadata.managedFields` field that self-requested informers of kube-apiserver didn't need. ([#124667](https://github.com/kubernetes/kubernetes/pull/124667), [@linxiulei](https://github.com/linxiulei)) [SIG API Machinery] -- In the client-side apply on create, defining the null value as "delete the key associated with this value". ([#125646](https://github.com/kubernetes/kubernetes/pull/125646), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, CLI and Testing] -- Introduced new functionality to the client-go's **list** verb, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate. - - It is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, client-go will revert to using the normal `LIST` method to obtain data. ([#124509](https://github.com/kubernetes/kubernetes/pull/124509), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, Auth, Instrumentation and Testing] -- Introduces new functionality to the dynamic client's `List` method, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate. - - It is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, the client will revert to using the normal `LIST` method to obtain data. ([#125305](https://github.com/kubernetes/kubernetes/pull/125305), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] -- KEP-3857: promoted RecursiveReadOnlyMounts feature to beta. ([#125475](https://github.com/kubernetes/kubernetes/pull/125475), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Node] -- Kube-apiserver: Added support to disable http/2 serving with a `--disable-http2-serving` flag. - ([#122176](https://github.com/kubernetes/kubernetes/pull/122176), [@slashpai](https://github.com/slashpai)) [SIG API Machinery] -- Kube-apiserver: when the Alpha `UserNamespacesPodSecurityStandards` feature gate is enabled, Pod Security Admission enforcement of the baseline policy now allows `procMount: Unmasked` for user namespace pods that set `hostUsers: false`. ([#126163](https://github.com/kubernetes/kubernetes/pull/126163), [@haircommander](https://github.com/haircommander)) -- Kube-proxy's nftables mode (--proxy-mode=nftables) is now beta and available by default. ([#124383](https://github.com/kubernetes/kubernetes/pull/124383), [@danwinship](https://github.com/danwinship)) [SIG Cloud Provider and Network] -- Kube-scheduler implemented scheduling hints for the CSILimit plugin. - The scheduling hints allow the scheduler to retry scheduling a Pod that was previously rejected by the CSILimit plugin if a deleted pod has a PersistantVolumeClaim (PVC) from the same driver. ([#121508](https://github.com/kubernetes/kubernetes/pull/121508), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Storage] -- Kube-scheduler implemented scheduling hints for the VolumeRestriction plugin. - Scheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if the Pod is deleted and the deleted Pod conflicts with the existing volumes of the current Pod. ([#125279](https://github.com/kubernetes/kubernetes/pull/125279), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Scheduling and Storage] -- Kube-scheduler implements scheduling hints for the VolumeRestriction plugin. - Scheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if a new pvc added, and the pvc belongs to pod. ([#125280](https://github.com/kubernetes/kubernetes/pull/125280), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Scheduling and Storage] -- Kube-scheduler implements scheduling hints for the VolumeZone plugin. - The scheduling hints allow the scheduler to only retry scheduling a Pod - that was previously rejected by the VolumeZone plugin if addition/update of node, - addition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings. ([#124996](https://github.com/kubernetes/kubernetes/pull/124996), [@Gekko0114](https://github.com/Gekko0114)) [SIG Scheduling and Storage] -- Kube-scheduler implements scheduling hints for the VolumeZone plugin. - The scheduling hints allow the scheduler to only retry scheduling a Pod - that was previously rejected by the VolumeZone plugin if addition/update of node, - addition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings. ([#125000](https://github.com/kubernetes/kubernetes/pull/125000), [@Gekko0114](https://github.com/Gekko0114)) [SIG Scheduling and Storage] -- Kube-scheduler implements scheduling hints for the VolumeZone plugin. - The scheduling hints allow the scheduler to only retry scheduling a Pod - that was previously rejected by the VolumeZone plugin if addition/update of node, - addition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings. ([#125001](https://github.com/kubernetes/kubernetes/pull/125001), [@Gekko0114](https://github.com/Gekko0114)) [SIG Scheduling and Storage] -- Kubeadm: Ensured that during "upgrade" , if the "etcd.yaml" static pod did not need upgrade, still consider rotating the etcd certificates and restarting the etcd static pod if the "kube-apiserver.yaml" manifest was to be upgraded and if certificate renewal was not disabled. ([#124688](https://github.com/kubernetes/kubernetes/pull/124688), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Switched kubeadm to start using the CRI client library instead of shelling out of the `crictl` binary - for actions against a CRI endpoint. The kubeadm deb/rpm packages will continue to install the `cri-tools` - package for one more release, but in you must adapt your scripts to install `crictl` manually from - https://github.com/kubernetes-sigs/cri-tools/releases or a different location. - - The `kubeadm` package will stop depending on the `cri-tools` package in Kubernetes 1.32, which means that - installing `kubeadm` will no longer automatically ensure installation of `crictl`. ([#124685](https://github.com/kubernetes/kubernetes/pull/124685), [@saschagrunert](https://github.com/saschagrunert)) -- Kubeadm: Switched to using the new etcd endpoints introduced in 3.5.11 - /livez (for liveness probe) and /readyz (for readyness and startup probe). With this change it is no longer possible to deploy a custom etcd version older than 3.5.11 with kubeadm 1.31. If so, please upgrade etcd to a supported version. ([#124465](https://github.com/kubernetes/kubernetes/pull/124465), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Used output/v1alpha3 to print structural output for the commands "kubeadm config images list" and "kubeadm token list". ([#124464](https://github.com/kubernetes/kubernetes/pull/124464), [@carlory](https://github.com/carlory)) -- Kubeadm: added the ControlPlaneKubeletLocalMode feature gate. It can be used to tell kubeadm to use the local kube-apiserver endpoint for the kubelet when creating a cluster with "kubeadm init" or when joining control plane nodes with "kubeadm join". The "kubeadm join" workflow now includes two new experimental phases called "control-plane-join-etcd" and "kubelet-wait-bootstrap" which will be used when the feature gate is enabled. This phases will be marked as non-experimental when ControlPlaneKubeletLocalMode becomes GA. During "kubeadm upgrade" commands, if the feature gate is enabled, modify the "/etc/kubernetes/kubelet.conf " to use the local kube-apiserver endpoint. This upgrade mechanism will be removed once the feature gate goes GA and is hardcoded to true. ([#125582](https://github.com/kubernetes/kubernetes/pull/125582), [@chrischdi](https://github.com/chrischdi)) -- Kubeadm: enabled the v1beta4 API. For a complete changelog since v1beta3 please see https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta4/. - - The API does include a few breaking changes: - - The "extraArgs" component construct is now a list of "name"/"value" pairs instead of a string/string map. This has been done to support duplicate args where needed. - - The "JoinConfiguration.discovery.timeout" field has been replaced by "JoinConfiguration.timeouts.discovery". - - The "ClusterConfiguration.timeoutForControlPlane" field has been replaced by "{Init|Join}Configuration.timeouts.controlPlaneComponentHealthCheck". - Please use the command "kubeadm config migrate" to migrate your existing v1beta3 configuration to v1beta4. - - v1beta3 is now marked as deprecated but will continue to be supported until version 1.34 or later. - The storage configuration in the kube-system/kubeadm-config ConfigMap is now a v1beta4 ClusterConfiguration. ([#125029](https://github.com/kubernetes/kubernetes/pull/125029), [@neolit123](https://github.com/neolit123)) -- Kubelet would not restart the container when fields other than image in the Pod spec change. pod spec change. ([#124220](https://github.com/kubernetes/kubernetes/pull/124220), [@HirazawaUi](https://github.com/HirazawaUi)) -- Kubelet/stats: set INFO log level for stats not found in cadvisor memory cache error. ([#125656](https://github.com/kubernetes/kubernetes/pull/125656), [@gyuho](https://github.com/gyuho)) -- Kubelet: warn instead of error for the unsupported options on Windows "CgroupsPerQOS" and "EnforceNodeAllocatable". ([#123137](https://github.com/kubernetes/kubernetes/pull/123137), [@neolit123](https://github.com/neolit123)) [SIG Node and Windows] -- Kubemark: added two flags, `--kube-api-qps` which indicates the maximum QPS to the apiserver, and `--kube-api-burst` which indicates maximum burst for throttle to the apiserver. ([#124147](https://github.com/kubernetes/kubernetes/pull/124147), [@devincd](https://github.com/devincd)) -- Kubernetes is now built with go 1.22.5. ([#125894](https://github.com/kubernetes/kubernetes/pull/125894), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- LogarithmicScaleDown is now GA. ([#125459](https://github.com/kubernetes/kubernetes/pull/125459), [@MinpengJin](https://github.com/MinpengJin)) [SIG Apps and Scheduling] -- Moved `ConsistentListFromCache` feature flag to beta and enabled it by default. ([#123513](https://github.com/kubernetes/kubernetes/pull/123513), [@serathius](https://github.com/serathius)) [SIG API Machinery and Testing] -- Promoted HonorPVReclaimPolicy to beta and enable the feature-gate by default ([#124842](https://github.com/kubernetes/kubernetes/pull/124842), [@carlory](https://github.com/carlory)) [SIG Apps, Storage and Testing] -- Promoted `generateName` retries to beta, and made the `NameGenerationRetries` feature gate - enabled by default. - You can read https://kep.k8s.io/4420 for more details. ([#124673](https://github.com/kubernetes/kubernetes/pull/124673), [@jpbetz](https://github.com/jpbetz)) -- Promoted the `ProcMountType` feature gate to beta. ([#125259](https://github.com/kubernetes/kubernetes/pull/125259), [@sohankunkerkar](https://github.com/sohankunkerkar)) -- Promoted the feature gate `KubeProxyDrainingTerminatingNodes` to stable ([#125082](https://github.com/kubernetes/kubernetes/pull/125082), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) -- Promoted the metrics for both ValidatingAdmissionPolicy (VAP) and CustomResourceDefinition (CRD) validation rules to beta. ([#126237](https://github.com/kubernetes/kubernetes/pull/126237), [@cici37](https://github.com/cici37)) [SIG API Machinery and Instrumentation] -- Scheduler changes its logic of calculating `evaluatedNodes` from "contains the number of nodes that filtered out by PreFilterResult and Filter plugins" to "the number of nodes filtered out by Filter plugins only". ([#124735](https://github.com/kubernetes/kubernetes/pull/124735), [@AxeZhan](https://github.com/AxeZhan)) -- Services implemented a field selector for the ClusterIP and Type fields. - The Kubelet uses this field selector to avoid monitoring Headless Services, which helps reduce memory consumption. ([#123905](https://github.com/kubernetes/kubernetes/pull/123905), [@aojea](https://github.com/aojea)) [SIG Apps, Node and Testing] -- Starting in 1.31, `container_engine_t` was added to the list of allowed SELinux types in the baseline Pod Security Standard. ([#126165](https://github.com/kubernetes/kubernetes/pull/126165), [@haircommander](https://github.com/haircommander)) -- The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to GA. This field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted. ([#123428](https://github.com/kubernetes/kubernetes/pull/123428), [@atiratree](https://github.com/atiratree)) [SIG Apps, Auth, Node and Testing] -- The Service trafficDistribution field has graduated to beta and is now available for configuration by default, without the need to enable any feature flag. Services that do not have the field configured will continue to operate with their existing behavior. Refer to the documentation https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution for more details. ([#125838](https://github.com/kubernetes/kubernetes/pull/125838), [@gauravkghildiyal](https://github.com/gauravkghildiyal)) [SIG Network and Testing] -- The `KubeletSeparateDiskGC` feature gate is now beta. This split image filesystem feature enables kubelet to perform garbage collection of images (read-only layers) and/or containers (writeable layers) deployed on separate filesystems. gate is now beta. ([#126205](https://github.com/kubernetes/kubernetes/pull/126205), [@kwilczynski](https://github.com/kwilczynski)) -- The feature-gate CSIMigrationPortworx was promoted to beta in Kubernetes 1.25, but turned off by default. In 1.31, it was turned on by default. Before upgrading to 1.31, please make sure that the corresponding portworx csi driver is installed if you are using Portworx. ([#125016](https://github.com/kubernetes/kubernetes/pull/125016), [@carlory](https://github.com/carlory)) [SIG Storage] -- The iptables mode of kube-proxy now tracks accepted packets that are destined for node-ports on localhost by introducing `kubeproxy_iptables_localhost_nodeports_accepted_packets_total` metric. - This will help users to identify if they rely on iptables.localhostNodePorts feature and ultimately help them to migrate from iptables to nftables. ([#125015](https://github.com/kubernetes/kubernetes/pull/125015), [@aroradaman](https://github.com/aroradaman)) [SIG Instrumentation, Network and Testing] -- The kube-proxy command line flag `--proxy-port-range`, which was previously deprecated and non-functional, has now been removed. ([#126293](https://github.com/kubernetes/kubernetes/pull/126293), [@aroradaman](https://github.com/aroradaman)) [SIG Network] -- The kube-scheduler added scheduling hints for the InterPodAffinity plugin. - These hints allow the scheduler to retry scheduling a Pod - that was previously rejected by the InterPodAffinity plugin if there are changes (create, delete, or update) to a related Pod or a node that matches the pod affinity criteria. ([#122471](https://github.com/kubernetes/kubernetes/pull/122471), [@nayihz](https://github.com/nayihz)) [SIG Scheduling and Testing] -- The kube-scheduler added support for scheduling hints for the CSIStorageCapacity resource within the VolumeBinding plugin. - The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. ([#124961](https://github.com/kubernetes/kubernetes/pull/124961), [@bells17](https://github.com/bells17)) [SIG Scheduling and Storage] -- The kube-scheduler added support for scheduling hints for the PersistentVolumeClaim resource within the VolumeBinding plugin. - The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. ([#124959](https://github.com/kubernetes/kubernetes/pull/124959), [@bells17](https://github.com/bells17)) [SIG Scheduling and Storage] -- The kube-scheduler added support for scheduling hints for the StorageClass resource within the VolumeBinding plugin. - The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. ([#124958](https://github.com/kubernetes/kubernetes/pull/124958), [@bells17](https://github.com/bells17)) [SIG Scheduling and Storage] -- The name of CEL(Common Expression Language) optional type has been changed from `optional` to `optional_type`. ([#124328](https://github.com/kubernetes/kubernetes/pull/124328), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Network and Node] -- The scheduler implemented QueueingHint in the TaintToleration plugin, enhancing the throughput of scheduling. ([#124287](https://github.com/kubernetes/kubernetes/pull/124287), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] -- The scheduler implements QueueingHint in VolumeBinding plugin's CSINode event, which enhances the throughput of scheduling. ([#125097](https://github.com/kubernetes/kubernetes/pull/125097), [@YamasouA](https://github.com/YamasouA)) [SIG Scheduling and Storage] -- The sidecars' finish time will now be accounted for when calculating the job's finish time. ([#124942](https://github.com/kubernetes/kubernetes/pull/124942), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps] -- This PR added tracing support to the kubelet's read-only endpoint, which currently - does not have tracing. It makes use of the `WithPublicEndpoint` option to prevent callers - from influencing sampling decisions. ([#121770](https://github.com/kubernetes/kubernetes/pull/121770), [@frzifus](https://github.com/frzifus)) [SIG Node] -- Updated kubernetes to build with Go 1.23rc2. ([#126047](https://github.com/kubernetes/kubernetes/pull/126047), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- Updated the CEL default compatibility environment version to 1.30, ensuring that extended libraries added before version 1.30 are available for use. ([#124779](https://github.com/kubernetes/kubernetes/pull/124779), [@cici37](https://github.com/cici37)) -- Users can traverse all the pods that are in the scheduler and waiting in the permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods in scheduler can be obtained from any profiles. Before this commit, each profile could only obtain waitingPods within that profile. ([#124926](https://github.com/kubernetes/kubernetes/pull/124926), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling] -- Windows Kubeproxy will use the update load balancer API for load balancer updates, instead of the previous delete and create APIs. - - Deletion of remote endpoints will be triggered only for terminated endpoints (those present in the old endpoints map but not in the new endpoints map), whereas previously it was also done for terminating endpoints. ([#124092](https://github.com/kubernetes/kubernetes/pull/124092), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows] -- `--custom` flag in `kubectl debug` will be enabled by default and yaml support is added. ([#125333](https://github.com/kubernetes/kubernetes/pull/125333), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] -- `ElasticIndexedJob` is graduated to GA. ([#125751](https://github.com/kubernetes/kubernetes/pull/125751), [@ahg-g](https://github.com/ahg-g)) [SIG Apps and Testing] -- `pause`: Added a `-v` flag to the Windows variant of the pause binary, which - prints the version of pause and exits. The Linux pause binary already has this flag. ([#125067](https://github.com/kubernetes/kubernetes/pull/125067), [@neolit123](https://github.com/neolit123)) - -### Failing Test - -- Fixed bug in kubelet if the `SplitImageFilesystem` feature gate is turned on but the container runtime is not configured. ([#126335](https://github.com/kubernetes/kubernetes/pull/126335), [@kannon92](https://github.com/kannon92)) -- Fixed issue where following Windows container logs would prevent container log rotation. ([#124444](https://github.com/kubernetes/kubernetes/pull/124444), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Testing and Windows] -- Introduced `Wait(context.Context) error` method in pkg k8s.io/apiserver/pkg/storage/cacher to improve watch cache initialization resilience. ([#125450](https://github.com/kubernetes/kubernetes/pull/125450), [@mauri870](https://github.com/mauri870)) -- Reverted remove legacycloudproviders from staging. ([#124864](https://github.com/kubernetes/kubernetes/pull/124864), [@carlory](https://github.com/carlory)) - -### Bug or Regression - -- Fixed the ResourceClaim controller forgetting to wait for `podSchedulingSynced` - and `templatesSynced`. ([#124589](https://github.com/kubernetes/kubernetes/pull/124589), [@carlory](https://github.com/carlory)) [SIG Apps and Node] -- kubeadm: Stopped storing the ResolverConfig in the global KubeletConfiguration - and sets it dynamically for each node instead. ([#124038](https://github.com/kubernetes/kubernetes/pull/124038), [@SataQiu](https://github.com/SataQiu)) -- kubeadm: fixed a regression where the KubeletConfiguration is not properly - downloaded during "kubeadm upgrade" command from the kube-system/kubelet-config - ConfigMap, resulting in the local ''/var/lib/kubelet/config.yaml'' file being - written as a defaulted config. ([#124480](https://github.com/kubernetes/kubernetes/pull/124480), [@neolit123](https://github.com/neolit123)) -- .status.terminating field now gets tracked faster when active Pods are deleted, specifically when Job is failed, gets suspended or has too many active pods. ([#125175](https://github.com/kubernetes/kubernetes/pull/125175), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing] -- Added `/sys/devices/virtual/powercap` to default masked paths. It avoids the potential security risk that the ability to read these files may offer a power-based sidechannel attack against any workloads running on the same kernel. ([#125970](https://github.com/kubernetes/kubernetes/pull/125970), [@carlory](https://github.com/carlory)) -- Added an extra line between two different key value pairs under data when running `kubectl describe configmap`. ([#123597](https://github.com/kubernetes/kubernetes/pull/123597), [@siddhantvirus](https://github.com/siddhantvirus)) -- Added kubectl support for: - - kubectl create secret docker-registry <NAME> --from-file=<path/to/.docker/config.json> - - kubectl create secret docker-registry <NAME> --from-file=.dockerconfigjson=<path/to/.docker/config.json> ([#119589](https://github.com/kubernetes/kubernetes/pull/119589), [@carlory](https://github.com/carlory)) -- Added metrics for the nftables kube-proxy mode rather than it reporting - metrics with "iptables" in their names. ([#124557](https://github.com/kubernetes/kubernetes/pull/124557), [@danwinship](https://github.com/danwinship)) [SIG Network and Windows] -- Allowed calling Stop multiple times on RetryWatcher without panicking. ([#126125](https://github.com/kubernetes/kubernetes/pull/126125), [@mprahl](https://github.com/mprahl)) -- Allowed parameter to be set along with proto file path. ([#124281](https://github.com/kubernetes/kubernetes/pull/124281), [@fulviodenza](https://github.com/fulviodenza)) -- CEL (Common Expression Language): converting a quantity value into a quantity value failed. ([#123669](https://github.com/kubernetes/kubernetes/pull/123669), [@pohly](https://github.com/pohly)) -- Client-go/tools/record.Broadcaster: Fixed automatic shutdown on WithContext cancellation. ([#124635](https://github.com/kubernetes/kubernetes/pull/124635), [@pohly](https://github.com/pohly)) -- Do not remove the "batch.kubernetes.io/job-tracking" finalizer from a Pod, in a corner - case scenario, when the Pod is controlled by an API object which is not a batch Job - (e.g. when the Pod is controlled by a custom CRD). ([#124798](https://github.com/kubernetes/kubernetes/pull/124798), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing] -- Dropped the additional rule requirement (cronjobs/finalizers) for roles - using kubectl create cronjobs to ensure backward compatibility. ([#124883](https://github.com/kubernetes/kubernetes/pull/124883), [@ardaguclu](https://github.com/ardaguclu)) -- Dynamic Resource Allocation (DRA): using structured parameters with a claim that gets reused between pods may have led to a claim with an invalid state (allocated without a finalizer) which then caused scheduling of pods using the claim to stop. ([#124931](https://github.com/kubernetes/kubernetes/pull/124931), [@pohly](https://github.com/pohly)) [SIG Node and Scheduling] -- Dynamic Resource Allocator (DRA): Enhanced validation for the ResourceClaimParametersReference and ResourceClassParametersReference with the following rules: - - 1. `apiGroup`: If set, it must be a valid DNS subdomain (e.g. 'example.com'). - 2. `kind` and `name`: It must be valid path segment name. It may not be '.' or '..' and it may not contain '/' and '%' characters. ([#125218](https://github.com/kubernetes/kubernetes/pull/125218), [@carlory](https://github.com/carlory)) -- Enabled kubectl to find `kubectl-create-subcommand` plugins when positional - arguments exists, e.g. `kubectl create subcommand arg`. ([#124123](https://github.com/kubernetes/kubernetes/pull/124123), [@sttts](https://github.com/sttts)) -- Ensured daemonset controller counts old unhealthy pods towards max unavailable budget. ([#123233](https://github.com/kubernetes/kubernetes/pull/123233), [@marshallbrekka](https://github.com/marshallbrekka)) -- Fixed a bug that when PodTopologySpread rejects Pods, they may be stuck in Pending state for 5 min in a worst case scenario. - The same problem could happen with custom plugins which have Pod/Add or Pod/Update in EventsToRegister, - which is also solved with this PR, but only when the feature flag SchedulerQueueingHints is enabled. ([#122627](https://github.com/kubernetes/kubernetes/pull/122627), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] -- Fixed bug where Server Side Apply causing spurious resourceVersion bumps on no-op patches containing empty maps. ([#125317](https://github.com/kubernetes/kubernetes/pull/125317), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing] -- Fixed endpoints status out-of-sync when the pod state changes rapidly ([#125675](https://github.com/kubernetes/kubernetes/pull/125675), [@tnqn](https://github.com/tnqn)) [SIG Apps, Network and Testing] -- Fixed the bug where PodIP field is temporarily removed for a terminal pod ([#125404](https://github.com/kubernetes/kubernetes/pull/125404), [@mimowo](https://github.com/mimowo)) [SIG Node and Testing] -- Fixed "-kube-test-repo-list" e2e flag may not take effect. ([#123587](https://github.com/kubernetes/kubernetes/pull/123587), [@huww98](https://github.com/huww98)) [SIG API Machinery, Apps, Autoscaling, CLI, Network, Node, Scheduling, Storage, Testing and Windows] -- Fixed EDITOR/KUBE_EDITOR with double-quoted paths with spaces when on Windows cmd.exe. ([#112104](https://github.com/kubernetes/kubernetes/pull/112104), [@oldium](https://github.com/oldium)) [SIG CLI and Windows] -- Fixed a bug in storage-version-migrator-controller that would cause migration attempts to fail if resources were deleted when the migration was in progress. ([#126107](https://github.com/kubernetes/kubernetes/pull/126107), [@enj](https://github.com/enj)) [SIG API Machinery, Apps, Auth and Testing] -- Fixed a bug in the JSON frame reader that could cause it to retain a reference to the underlying array of the byte slice passed to read. ([#123620](https://github.com/kubernetes/kubernetes/pull/123620), [@benluddy](https://github.com/benluddy)) -- Fixed a bug in the scheduler where it would crash when prefilter returns a non-existent node. ([#124933](https://github.com/kubernetes/kubernetes/pull/124933), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Testing] -- Fixed a bug where Pods could be stuck in the unschedulable pod pool - if they're rejected by PreEnqueue plugins that could change its result by a change in resources apart from Pods. - - DRA plugin is the only plugin that meets the criteria of the bug in in-tree, - and hence if you have `DynamicResourceAllocation` feature flag enabled, - your DRA Pods could be affected by this bug. ([#125527](https://github.com/kubernetes/kubernetes/pull/125527), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] -- Fixed a bug that init containers with `Always` restartPolicy may not terminate gracefully if the pod hasn't initialized yet. ([#125935](https://github.com/kubernetes/kubernetes/pull/125935), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing] -- Fixed a bug where `kubectl describe` incorrectly displayed NetworkPolicy port ranges - (showing only the starting port). ([#123316](https://github.com/kubernetes/kubernetes/pull/123316), [@jcaamano](https://github.com/jcaamano)) -- Fixed a bug where hard evictions due to resource pressure allowed pods - to use the full termination grace period instead of shutting down instantly. - This bug also affected force deleted pods. Both cases now receive a termination grace period of 1 second. ([#124063](https://github.com/kubernetes/kubernetes/pull/124063), [@olyazavr](https://github.com/olyazavr)) -- Fixed a bug where the Kubelet miscalculated the process usage of pods, causing pods to never get evicted for PID usage. ([#124101](https://github.com/kubernetes/kubernetes/pull/124101), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing] -- Fixed a missing status prefix in custom resource validation error messages. ([#123822](https://github.com/kubernetes/kubernetes/pull/123822), [@JoelSpeed](https://github.com/JoelSpeed)) -- Fixed a race condition in kube-controller-manager and the scheduler, caused by - a bug in the transforming informer during the Resync operation, - by making the transforming function idempotent. ([#124352](https://github.com/kubernetes/kubernetes/pull/124352), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Scheduling] -- Fixed a race condition in the transforming informer that occurred when objects were accessed during the Resync operation. ([#124344](https://github.com/kubernetes/kubernetes/pull/124344), [@wojtek-t](https://github.com/wojtek-t)) -- Fixed a regression where `kubelet --hostname-override` no longer worked - correctly with an external cloud provider. ([#124516](https://github.com/kubernetes/kubernetes/pull/124516), [@danwinship](https://github.com/danwinship)) -- Fixed an issue that prevents the linking of trace spans for requests that are proxied through kube-aggregator. ([#124189](https://github.com/kubernetes/kubernetes/pull/124189), [@toddtreece](https://github.com/toddtreece)) -- Fixed an issue where kubelet on Windows would fail if a pod had a SecurityContext with `RunAsUser`. ([#125040](https://github.com/kubernetes/kubernetes/pull/125040), [@carlory](https://github.com/carlory)) [SIG Storage, Testing and Windows] -- Fixed an issue where the Service LoadBalancer controller was not correctly considering the `service.Status new IPMode` field and excluding the Ports when checking if the status was changed, resulting in the changed field potentially not to update the `service.Status` correctly. ([#125225](https://github.com/kubernetes/kubernetes/pull/125225), [@aojea](https://github.com/aojea)) [SIG Apps, Cloud Provider and Network] -- Fixed bug where Server Side Apply causes spurious resourceVersion bumps on no-op patches to custom resources. ([#125263](https://github.com/kubernetes/kubernetes/pull/125263), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing] -- Fixed bug where kubectl get with --sort-by flag does not sort strings alphanumerically. ([#124514](https://github.com/kubernetes/kubernetes/pull/124514), [@brianpursley](https://github.com/brianpursley)) -- Fixed fake clientset ApplyScale subresource from `status` to `scale`. ([#126073](https://github.com/kubernetes/kubernetes/pull/126073), [@a7i](https://github.com/a7i)) -- Fixed kubectl wait --for=jsonpath lowercasing in the condition part of the argument. ([#126638](https://github.com/kubernetes/kubernetes/pull/126638)), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] -- Fixed kubelet so it would no longer crash when a DRA(Dynamic Resource Allocation) driver returns a nil as part of the Node(Un)PrepareResources response instead of an empty struct (Did not affect drivers written in Go, first showed up with a driver written in Rust). ([#124091](https://github.com/kubernetes/kubernetes/pull/124091), [@bitoku](https://github.com/bitoku)) -- Fixed node reporting "notReady" with the reason 'container runtime status check may not have completed yet' after kubelet restart. ([#124430](https://github.com/kubernetes/kubernetes/pull/124430), [@AllenXu93](https://github.com/AllenXu93)) -- Fixed null `lastTransitionTime` in Pod condition when setting the scheduling gate. ([#122636](https://github.com/kubernetes/kubernetes/pull/122636), [@lianghao208](https://github.com/lianghao208)) [SIG Node and Scheduling] -- Fixed recursive LIST from watch cache returning object matching key. ([#125584](https://github.com/kubernetes/kubernetes/pull/125584), [@serathius](https://github.com/serathius)) [SIG API Machinery and Testing] -- Fixed sample-cli-plugin help text to be consistent and always use `kubectl ns`. ([#125641](https://github.com/kubernetes/kubernetes/pull/125641), [@nirs](https://github.com/nirs)) -- Fixed the bug where if Endpointslices mirrored from Endpoints by the EndpointSliceMirroring controller they would not reconcile if modified. were not reconciled if modified ([#124131](https://github.com/kubernetes/kubernetes/pull/124131), [@zyjhtangtang](https://github.com/zyjhtangtang)) [SIG Apps and Network] -- Fixed the format of the error indicating that a user does not have permission on the object referenced by paramRef in ValidatingAdmissionPolicyBinding. ([#124653](https://github.com/kubernetes/kubernetes/pull/124653), [@m1kola](https://github.com/m1kola)) -- Fixed throughput when scheduling DaemonSet pods to reach 300 pods/s, if the configured QPS allows it. ([#124714](https://github.com/kubernetes/kubernetes/pull/124714), [@sanposhiho](https://github.com/sanposhiho)) -- Fixed: during the kube-controller-manager restart, when the corresponding Endpoints resource was manually deleted and recreated, causing the endpointslice to fail to be created normally. ([#125359](https://github.com/kubernetes/kubernetes/pull/125359), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Apps and Network] -- For statically provisioned PVs, if its volume source is CSI type, or it has migrated annotation, when it's deleted, the PersisentVolume controller won't change its phase to the Failed state. - With this patch, the external provisioner can remove the finalizer in next reconcile loop. Unfortunately if the previous existing PV has the Failed state, this patch won't take effort. It requires users to remove finalizer. ([#125767](https://github.com/kubernetes/kubernetes/pull/125767), [@carlory](https://github.com/carlory)) [SIG Apps and Storage] -- Improved scheduling latency when there are many gated pods and events that trigger requeueing from the unschedulable pool. ([#124618](https://github.com/kubernetes/kubernetes/pull/124618), [@gabesaba](https://github.com/gabesaba)) [SIG Scheduling and Testing] -- Kube-apiserver: fixed a 1.27+ regression watching a single namespace via the deprecated /api/v1/watch/namespaces/$name endpoint where watch events were not delivered after the watch was established. ([#125145](https://github.com/kubernetes/kubernetes/pull/125145), [@xyz-li](https://github.com/xyz-li)) [SIG API Machinery, Node and Testing] -- Kube-apiserver: fixed a 1.28 regression printing pods with invalid initContainer status. ([#124906](https://github.com/kubernetes/kubernetes/pull/124906), [@liggitt](https://github.com/liggitt)) -- Kube-apiserver: fixed a potential crash serving CustomResourceDefinitions that combine an invalid schema and CEL validation rules. ([#126167](https://github.com/kubernetes/kubernetes/pull/126167), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing] -- Kube-apiserver: timeouts configured for authorization webhooks in the --authorization-config file are now honored, and webhook timeouts are accurately reflected in webhook metrics with result=timeout ([#125552](https://github.com/kubernetes/kubernetes/pull/125552), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing] -- Kubeadm: Added `--yes` flag to the list of allowed flags so that it can be mixed with `kubeadm upgrade apply --config`. ([#125566](https://github.com/kubernetes/kubernetes/pull/125566), [@xmudrii](https://github.com/xmudrii)) -- Kubeadm: Added support during the preflight check "CreateJob" of "kubeadm upgrade" to check if there are no nodes where a Pod can be scheduled. If there are none, show a warning and skip this preflight check. This can happen in single node clusters where the only node was drained. ([#124503](https://github.com/kubernetes/kubernetes/pull/124503), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Fixed a bug where the PublicKeysECDSA feature gate was not respected when generating kubeconfig files. ([#125388](https://github.com/kubernetes/kubernetes/pull/125388), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Fixed a regression where the JoinConfiguration.discovery.timeout was no longer respected and the value was always hardcoded to "5m" (5 minutes). ([#125480](https://github.com/kubernetes/kubernetes/pull/125480), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Removed support for mounting /etc/pki as an additional Linux system CA location - in kube-apisever and kube-controller-manager pods. Instead, it shifted to supporting the - mounting of /etc/pki/ca-trust and /etc/pki/tls/certs. The locations /etc/ca-certificate, - /usr/share/ca-certificates, /usr/local/share/ca-certificates, and /etc/ssl/certs continued - to be supported. ([#124361](https://github.com/kubernetes/kubernetes/pull/124361), [@neolit123](https://github.com/neolit123)) -- Kubeadm: The healthz address:port configured in the KubeletConfiguration was used during kubelet health checks, instead of hardcoding localhost:10248. ([#125265](https://github.com/kubernetes/kubernetes/pull/125265), [@neolit123](https://github.com/neolit123)) -- Kubeadm: during the validation of existing kubeconfig files on disk, handle cases where the "ca.crt" is a bundle and has intermediate certificates. Find a common trust anchor between the "ca.crt" bundle and the CA in the existing kubeconfig on disk instead of treating "ca.crt" as a file containing a single CA. ([#123102](https://github.com/kubernetes/kubernetes/pull/123102), [@astundzia](https://github.com/astundzia)) -- Kubeadm: fixed a bug on 'kubeadm join' where using patches with a kubeletconfiguration target was not respected when performing the local kubelet healthz check. ([#126224](https://github.com/kubernetes/kubernetes/pull/126224), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- Kubeadm: fixed a bug where the path of the manifest can not be specified when `kubeadm upgrade diff` specified a config file, and the `--api-server-manifest`, `--controller-manager-manifest` and `--scheduler-manifest` flags of `kubeadm upgrade diff` are marked as deprecated and will be removed in a future release. ([#125779](https://github.com/kubernetes/kubernetes/pull/125779), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: the `--feature-gates` flag is deprecated and no-op for `kubeadm upgrade apply/plan`, and it will be removed in a future release. The upgrade workflow is not designed to reconfigure the cluster. Please edit the 'featureGates' field of ClusterConfiguration which is defined in the kube-system/kubeadm-config ConfigMap instead. ([#125797](https://github.com/kubernetes/kubernetes/pull/125797), [@SataQiu](https://github.com/SataQiu)) -- Kubectl: Show the Pod phase in the STATUS column as 'Failed' or 'Succeeded' when the Pod is terminated ([#122038](https://github.com/kubernetes/kubernetes/pull/122038), [@lowang-bh](https://github.com/lowang-bh)) -- Kubelet now hard rejects pods with AppArmor if the node does not have AppArmor. ([#125776](https://github.com/kubernetes/kubernetes/pull/125776), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) -- Mount-utils: treated syscall.ENODEV as corrupted mount. ([#126174](https://github.com/kubernetes/kubernetes/pull/126174), [@dobsonj](https://github.com/dobsonj)) -- Now the .status.ready field is tracked faster when active Pods are deleted, specifically when Job is failed, gets suspended or has too many active pods. ([#125546](https://github.com/kubernetes/kubernetes/pull/125546), [@dejanzele](https://github.com/dejanzele)) -- Removed admission plugin `PersistentVolumeLabel`. Please use https://github.com/kubernetes-sigs/cloud-pv-admission-labeler instead if you need a similar functionality. ([#124505](https://github.com/kubernetes/kubernetes/pull/124505), [@jsafrane](https://github.com/jsafrane)) [SIG API Machinery, Auth and Storage] -- Reverted "Graduated the `WatchList` feature gate to beta for kube-apiserver and enables `WatchListClient` for kube-controller-manager (KCM)". ([#126191](https://github.com/kubernetes/kubernetes/pull/126191), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] -- Set ProcMountType feature to disabled by default, to follow the lead of UserNamespacesSupport (which it relies on). ([#126291](https://github.com/kubernetes/kubernetes/pull/126291), [@haircommander](https://github.com/haircommander)) [SIG Node] -- StatefulSet autodelete respected controlling owners on PVC claims as described in https://github.com/kubernetes/enhancements/pull/4375. ([#122499](https://github.com/kubernetes/kubernetes/pull/122499), [@mattcary](https://github.com/mattcary)) [SIG Apps and Testing] -- Stopped using wmic on Windows to get uuid in the kubelet. ([#126012](https://github.com/kubernetes/kubernetes/pull/126012), [@marosset](https://github.com/marosset)) [SIG Node and Windows] -- The "fake" clients generated by `client-gen` now have the same semantics on - error as the real clients; in particular, a failed Get(), Create(), etc, no longer - returns `nil`. (It now returns a pointer to a zero-valued object, like the real - clients do.) This will break some downstream unit tests that were testing - `result == nil` rather than `err != nil`, and in some cases may expose bugs - in the underlying code that were hidden by the incorrect unit tests. ([#122892](https://github.com/kubernetes/kubernetes/pull/122892), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Auth, Cloud Provider, Instrumentation and Storage] -- The emission of RecreatingFailedPod and RecreatingTerminatedPod events has been - removed from the StatefulSet lifecycle. ([#123809](https://github.com/kubernetes/kubernetes/pull/123809), [@atiratree](https://github.com/atiratree)) [SIG Apps and Testing] -- The scheduler retries scheduling Pods rejected by PreFilterResult (PreFilter plugins) more appropriately; it now takes events registered in those rejector PreFilter plugins into consideration. ([#122251](https://github.com/kubernetes/kubernetes/pull/122251), [@olderTaoist](https://github.com/olderTaoist)) [SIG Scheduling and Testing] -- Updated description of default values for `--healthz-bind-address` and `--metrics-bind-address` parameters. ([#123545](https://github.com/kubernetes/kubernetes/pull/123545), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) -- When schedulingQueueHint is enabled, the scheduling queue doesn't update Pods being scheduled immediately. ([#125578](https://github.com/kubernetes/kubernetes/pull/125578), [@nayihz](https://github.com/nayihz)) -- `Job`: Fixed a bug where `SuccessCriteriaMet` could be added to the Job with - `successPolicy` regardless of the `featureGate` being enabled. ([#125429](https://github.com/kubernetes/kubernetes/pull/125429), [@tenzen-y](https://github.com/tenzen-y)) -- `kubeadm`: Allowed the `kubeadm init phase certs sa` command to accept the `--config` flag. ([#125396](https://github.com/kubernetes/kubernetes/pull/125396), [@Kavinraja-G](https://github.com/Kavinraja-G)) -- `kubeadm`: Improved the `IsPrivilegedUser` preflight check to not fail on certain Windows setups. ([#124665](https://github.com/kubernetes/kubernetes/pull/124665), [@neolit123](https://github.com/neolit123)) -- `lastSuccessfullTime` in cronjobs will now be set reliably. ([#122025](https://github.com/kubernetes/kubernetes/pull/122025), [@lukashankeln](https://github.com/lukashankeln)) - -### Other (Cleanup or Flake) - -- Removed the ability to run `kubectl exec [POD] [COMMAND]` without a `--` separator. - The `--` separator has been recommended since the Kubernetes v1.18 release, which also deprecated the legacy way of invoking `kubectl exec`. - - This change aligns with the deprecation of legacy `kubectl exec` command execution and enforces the use of `kubectl exec [POD] -- [COMMAND]` for improved compatibility and adherence to recommended practices. - ([#125437](https://github.com/kubernetes/kubernetes/pull/125437), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] -- "`kubectl describe service`" and "`kubectl describe ingress`" will now use endpointslices instead of endpoints. - ([#124598](https://github.com/kubernetes/kubernetes/pull/124598), [@aroradaman](https://github.com/aroradaman)) [SIG CLI and Network] -- ACTION-REQUIRED: Dynamic Resource Allocation (DRA) drivers using the v1alpha2 kubelet gRPC API are no longer supported and need to be updated. ([#124316](https://github.com/kubernetes/kubernetes/pull/124316), [@pohly](https://github.com/pohly)) [SIG Node and Testing] -- API Priority and Fairness feature was promoted to GA in 1.29, the corresponding - feature gate 'APIPriorityAndFairness' has been removed in 1.31. ([#125846](https://github.com/kubernetes/kubernetes/pull/125846), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] -- Added a testcase to check hostname and hostNetwork. ([#124428](https://github.com/kubernetes/kubernetes/pull/124428), [@yashsingh74](https://github.com/yashsingh74)) [SIG Architecture, Network and Testing] -- Built etcd image v3.5.13. ([#124026](https://github.com/kubernetes/kubernetes/pull/124026), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG API Machinery and Etcd] -- Built etcd image v3.5.14. ([#125235](https://github.com/kubernetes/kubernetes/pull/125235), [@humblec](https://github.com/humblec)) -- Cleaned deprecated `context.StopCh` in favor of ctx. ([#125661](https://github.com/kubernetes/kubernetes/pull/125661), [@mjudeikis](https://github.com/mjudeikis)) -- Container Storage Interface (CSI) spec support has been lifted to v1.9.0 in this release. ([#125150](https://github.com/kubernetes/kubernetes/pull/125150), [@humblec](https://github.com/humblec)) [SIG Storage and Testing] -- Drop support for the deprecated and unsupported kubectl run flags: - - filename - - force - - grace-period - - kustomize - - recursive - - timeout - - wait - - Drop support for the deprecated --delete-local-data from kubectl drain, users should use --delete-emptydir-data, instead. ([#125842](https://github.com/kubernetes/kubernetes/pull/125842), [@soltysh](https://github.com/soltysh)) [SIG CLI] -- Dynamic Resource Allocation (DRA): fixed some small, unlikely race condition during pod scheduling. ([#124595](https://github.com/kubernetes/kubernetes/pull/124595), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing] -- E2e.test and e2e_node.test: tests which depend on alpha or beta feature gates now have `Feature:Alpha` or `Feature:Beta` as Ginkgo labels. The inline text is `[Alpha]` or `[Beta]`, as before. ([#124350](https://github.com/kubernetes/kubernetes/pull/124350), [@pohly](https://github.com/pohly)) -- Ensured that the Node Admission plugin to reject CSR requests created by a node identity for the signers `kubernetes.io/kubelet-serving` or `kubernetes.io/kube-apiserver-client-kubelet` with a CN starting with `system:node:`, but where the CN is not `system:node:${node-name}`. The feature gate `AllowInsecureKubeletCertificateSigningRequests` defaults to `false`, but can be enabled to revert to the previous behavior. This feature gate will be removed in Kubernetes v1.33. ([#126441](https://github.com/kubernetes/kubernetes/pull/126441), [@micahhausler](https://github.com/micahhausler)) -- Etcd: Updated to v3.5.13. ([#124027](https://github.com/kubernetes/kubernetes/pull/124027), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing] -- Exposed the `apiserver_watch_cache_resource_version` metric to simplify debugging problems with watchcache. ([#125377](https://github.com/kubernetes/kubernetes/pull/125377), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Instrumentation] -- Exposed the kube-scheduler "/livez" and "/readz" endpoints for health checks that are in compliance with https://kubernetes.io/docs/reference/using-api/health-checks/#api-endpoints-for-health. ([#118148](https://github.com/kubernetes/kubernetes/pull/118148), [@linxiulei](https://github.com/linxiulei)) [SIG API Machinery, Scheduling and Testing] -- Finished initial generic controlplane refactor of kube-apiserver, providing a sample binary building a Kubernetes-like control plane, but without container orchestration resources. ([#124530](https://github.com/kubernetes/kubernetes/pull/124530), [@sttts](https://github.com/sttts)) [SIG API Machinery, Apps, Cloud Provider, Network, Node and Testing] -- Fixed a typo in the help text for the pod_scheduling_sli_duration_seconds metric in kube-scheduler. ([#124221](https://github.com/kubernetes/kubernetes/pull/124221), [@arturhoo](https://github.com/arturhoo)) [SIG Instrumentation, Scheduling and Testing] -- Improved the documentation clarity for building Kubernetes in Docker Environment, making it more understandable for new users and contributors. ([#125536](https://github.com/kubernetes/kubernetes/pull/125536), [@this-is-yaash](https://github.com/this-is-yaash)) -- Job-controller: the `JobReadyPods` feature flag has been removed (deprecated since v1.31). ([#125168](https://github.com/kubernetes/kubernetes/pull/125168), [@kaisoz](https://github.com/kaisoz)) -- Kube-apiserver: the `--enable-logs-handler` flag and log-serving functionality which was already deprecated is now switched off by default and scheduled to be removed in v1.33. ([#125787](https://github.com/kubernetes/kubernetes/pull/125787), [@dims](https://github.com/dims)) [SIG API Machinery, Network and Testing] -- Kubeadm: Removed the deprecated `UpgradeAddonsBeforeControlPlane` feature gate; Ensured that the upgrade of the CoreDNS and kube-proxy addons would not be triggered until all the control plane instances were upgraded. ([#124715](https://github.com/kubernetes/kubernetes/pull/124715), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: Strictly enabled only the supported klog flags, disallowing previously available but unrecommended options. This means that hidden flags about klog (including `--alsologtostderr`, `--log-backtrace-at`, `--log-dir`, `--logtostderr`, `--log-file`, `--log-file-max-size`, `--one-output`, `--skip-log-headers`, `--stderrthreshold` and `--vmodule`) are no longer allowed to be used. ([#125179](https://github.com/kubernetes/kubernetes/pull/125179), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: The global --rootfs flag considered non-experimental. ([#124375](https://github.com/kubernetes/kubernetes/pull/124375), [@neolit123](https://github.com/neolit123)) -- Kubeadm: improved the warning/error messages of `validateSupportedVersion` to include the checked resource kind name. ([#125758](https://github.com/kubernetes/kubernetes/pull/125758), [@SataQiu](https://github.com/SataQiu)) -- Kubeadm: removed the EXPERIMENTAL tag from the phase "kubeadm join control-plane-prepare download-certs". ([#124374](https://github.com/kubernetes/kubernetes/pull/124374), [@neolit123](https://github.com/neolit123)) -- Kubeadm: removed the deprecated `output.kubeadm.k8s.io/v1alpha2` API for structured output. Please use v1alpha3 instead. ([#124496](https://github.com/kubernetes/kubernetes/pull/124496), [@carlory](https://github.com/carlory)) -- Kubeadm: removed the deprecated and NO-OP "kubeadm join control-plane-join update-status" phase. ([#124373](https://github.com/kubernetes/kubernetes/pull/124373), [@neolit123](https://github.com/neolit123)) -- Kubelet is no longer able to recover from device manager state file older than 1.20. If the proper recommended upgrade flow is followed, there should be no issue. ([#123398](https://github.com/kubernetes/kubernetes/pull/123398), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] -- Migrated the pkg/proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#122979](https://github.com/kubernetes/kubernetes/pull/122979), [@fatsheep9146](https://github.com/fatsheep9146)) [SIG Network and Scalability] -- Moved remote CRI implementation from kubelet to `k8s.io/cri-client` repository. ([#124634](https://github.com/kubernetes/kubernetes/pull/124634), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node, Release and Testing] -- Optimized log output to avoid printing out redundant information of the pod. ([#124055](https://github.com/kubernetes/kubernetes/pull/124055), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) -- Removed GA ServiceNodePortStaticSubrange feature gate. ([#124738](https://github.com/kubernetes/kubernetes/pull/124738), [@xuzhenglun](https://github.com/xuzhenglun)) -- Removed Kubelet flags `--iptables-masquerade-bit` and `--iptables-drop-bit` as they were deprecated in v1.28. in v1.28 and have now been removed entirely. ([#122363](https://github.com/kubernetes/kubernetes/pull/122363), [@carlory](https://github.com/carlory)) [SIG Network and Node] -- Removed `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environment variable from the reflector. - To activate the feature set `KUBE_FEATURE_WatchListClient` environment variable or a corresponding command line option (this works only with binaries that explicitly expose it). ([#122791](https://github.com/kubernetes/kubernetes/pull/122791), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] -- Removed generally available feature gate `CSINodeExpandSecret`. ([#124462](https://github.com/kubernetes/kubernetes/pull/124462), [@carlory](https://github.com/carlory)) -- Removed generally available feature gate `ConsistentHTTPGetHandlers`. ([#124463](https://github.com/kubernetes/kubernetes/pull/124463), [@carlory](https://github.com/carlory)) -- Removed generally available feature gate `ReadWriteOncePod`. ([#124329](https://github.com/kubernetes/kubernetes/pull/124329), [@chrishenzie](https://github.com/chrishenzie)) -- ACTION REQUIRED. Removed the following feature gates: - - `InTreePluginAWSUnregister` - - `InTreePluginAzureDiskUnregister` - - `InTreePluginAzureFileUnregister` - - `InTreePluginGCEUnregister` - - `InTreePluginOpenStackUnregister` - - `InTreePluginvSphereUnregister` ([#124815](https://github.com/kubernetes/kubernetes/pull/124815), [@carlory](https://github.com/carlory)) [SIG Storage] -- Removed the last remaining in-tree gcp cloud provider and credential provider. - Please use the external cloud provider and credential provider from https://github.com/kubernetes/cloud-provider-gcp - instead. ([#124519](https://github.com/kubernetes/kubernetes/pull/124519), [@dims](https://github.com/dims)) [SIG API Machinery, Apps, Auth, Autoscaling, Cloud Provider, Instrumentation, Network, Node, Scheduling, Storage and Testing] -- Scheduler framework: Allowed PreBind implementations to return Pending and Unschedulable status codes. ([#125360](https://github.com/kubernetes/kubernetes/pull/125360), [@pohly](https://github.com/pohly)) -- Set `LocalStorageCapacityIsolationFSQuotaMonitoring` to false by default, to match `UserNamespacesSupport` (which the feature relies on). ([#126355](https://github.com/kubernetes/kubernetes/pull/126355), [@haircommander](https://github.com/haircommander)) -- The ValidatingAdmissionPolicy metrics have been redone to count and time all validations, including failures and admissions. ([#126124](https://github.com/kubernetes/kubernetes/pull/126124), [@cici37](https://github.com/cici37)) [SIG API Machinery and Instrumentation] -- The feature gate "DefaultHostNetworkHostPortsInPodTemplates" has been removed. This behavior was deprecated in v1.28, and has had no reports of issues since. ([#124417](https://github.com/kubernetes/kubernetes/pull/124417), [@thockin](https://github.com/thockin)) -- The feature gate "SkipReadOnlyValidationGCE" has been removed. This gate has been active for 2 releases with no reports of issues (and was such a niche thing, we didn't expect any). ([#124210](https://github.com/kubernetes/kubernetes/pull/124210), [@thockin](https://github.com/thockin)) -- Updated CNI Plugins to v1.5.0. ([#125113](https://github.com/kubernetes/kubernetes/pull/125113), [@bzsuni](https://github.com/bzsuni)) [SIG Cloud Provider, Network, Node and Testing] -- Updated cni-plugins to v1.4.1. ([#123894](https://github.com/kubernetes/kubernetes/pull/123894), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing] -- Updated cri-tools to v1.30.0. ([#124364](https://github.com/kubernetes/kubernetes/pull/124364), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Release] -- Updated kubernetes to build with Go 1.22.5. ([#126330](https://github.com/kubernetes/kubernetes/pull/126330), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG Release and Testing] -- `kubeadm`: The `NodeSwap` check that kubeadm performs during preflight, has a new warning to verify if swap has been configured correctly. ([#125157](https://github.com/kubernetes/kubernetes/pull/125157), [@carlory](https://github.com/carlory)) +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- Added support to the scheduler to start using QueueingHint registered for Pod/Updated event to determine whether unschedulable Pods update make them schedulable, when the feature gate `SchedulerQueueingHints` is enabled. + Previously, when unschedulable Pods are updated, the scheduler always put Pods back to activeQ/backoffQ. But, actually not all updates to Pods make Pods schedulable, especially considering many scheduling constraints nowadays are immutable. + Now, when unschedulable Pods are updated, the scheduling queue checks with QueueingHint(s) whether the update may make the pods schedulable, and requeues them to activeQ/backoffQ **only when** at least one QueueingHint(s) return Queue. + + Action required for custom scheduler plugin developers: + Plugins **have to** implement a QueueingHint for Pod/Update event if the rejection from them could be resolved by updating unscheduled Pods themselves. + Example: suppose you develop a custom plugin that denies Pods that have a `schedulable=false` label. + Given Pods with a `schedulable=false` label will be schedulable if the `schedulable=false` label is removed, this plugin would implement QueueingHint for Pod/Update event that returns Queue when such label changes are made in unscheduled Pods. ([#122234](https://github.com/kubernetes/kubernetes/pull/122234), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Testing] + - Kubelet flag `--keep-terminated-pod-volumes` was removed. This flag was deprecated in 2017. ([#122082](https://github.com/kubernetes/kubernetes/pull/122082), [@carlory](https://github.com/carlory)) [SIG Apps, Node, Storage and Testing] + - 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 PersistentVolumeClaims with `status.allocatedResourceStatus` set to either + "ControllerResizeFailed" or "NodeResizeFailed", clear the `status.allocatedResourceStatus`. ([#126108](https://github.com/kubernetes/kubernetes/pull/126108), [@gnufied](https://github.com/gnufied)) [SIG Apps, Auth, Node, Storage and Testing] + + - Action required: Alpha feature gates `InTreePluginAWSUnregister`, `InTreePluginAzureDiskUnregister`, `InTreePluginAzureFileUnregister`, `InTreePluginGCEUnregister`, `InTreePluginOpenStackUnregister` and `InTreePluginvSphereUnregister` were removed. These feature gates had no visible effect on a cluster since Kubernetes 1.30, where the in-tree volume plugins were already removed. ([#124815](https://github.com/kubernetes/kubernetes/pull/124815), [@carlory](https://github.com/carlory)) [SIG Storage] + + - + +## Changes by Kind + +### Deprecation + +- kubeadm: marked the sub-phase of ''init kubelet-finalize'' called ''experimental-cert-rotation'' + as deprecated and print a warning if it is used directly; it will be removed in + a future release. Added a replacement sub-phase ''enable-client-cert-rotation''. ([#124419](https://github.com/kubernetes/kubernetes/pull/124419), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Added a warning when creating or updating a PersistentVolume (PV) with the deprecated annotation `volume.beta.kubernetes.io/mount-options`. ([#124819](https://github.com/kubernetes/kubernetes/pull/124819), [@carlory](https://github.com/carlory)) +- CephFS volume plugin ( `kubernetes.io/cephfs`) was removed in this release and the `cephfs` volume type became non-functional. Alternative is to use CephFS CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment of your application is required to use the new driver if you were using `kubernetes.io/cephfs` volume plugin before upgrading cluster version to 1.31+. ([#124544](https://github.com/kubernetes/kubernetes/pull/124544), [@carlory](https://github.com/carlory)) [SIG Node, Scalability, Storage and Testing] +- CephRBD volume plugin ( `kubernetes.io/rbd`) was removed in this release. And its csi migration support was also removed, so the `rbd` volume type became non-functional. Alternative is to use RBD CSI driver (https://github.com/ceph/ceph-csi/) in your Kubernetes Cluster. A re-deployment of your application is required to use the new driver if you were using `kubernetes.io/rbd` volume plugin before upgrading cluster version to 1.31+. ([#124546](https://github.com/kubernetes/kubernetes/pull/124546), [@carlory](https://github.com/carlory)) [SIG Node, Scalability, Scheduling, Storage and Testing] +- Kube-scheduler deprecated all non-csi volumelimit plugins and removed those from defaults plugins. + - AzureDiskLimits + - CinderLimits + - EBSLimits + - GCEPDLimits + + The NodeVolumeLimits plugin can handle the same functionality as the above plugins since the above volume types are migrated to CSI. + Please remove those plugins and replace them with the NodeVolumeLimits plugin if you explicitly use those plugins in the scheduler config. + Those plugins will be removed in the release 1.32. ([#124500](https://github.com/kubernetes/kubernetes/pull/124500), [@carlory](https://github.com/carlory)) [SIG Scheduling and Storage] +- Kubeadm: deprecated the kubeadm `RootlessControlPlane` feature gate (previously alpha), given that the core K8s `UserNamespacesSupport` feature gate graduated to beta in 1.30. + Once core Kubernetes support for user namespaces is generally available and kubeadm has started to support running the control plane in userns pods, the kubeadm `RootlessControlPlane` feature gate will be removed entirely. + Until kubeadm supports the userns functionality out of the box, users can continue using the deprecated `RootlessControlPlane` feature gate, or opt-in `UserNamespacesSupport` by using kubeadm patches on the static pod manifests. ([#124997](https://github.com/kubernetes/kubernetes/pull/124997), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Removed k8s.io/legacy-cloud-providers from staging. ([#124767](https://github.com/kubernetes/kubernetes/pull/124767), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Release] +- Removed legacy cloud provider integration code (undoing a previous reverted commit). ([#124886](https://github.com/kubernetes/kubernetes/pull/124886), [@carlory](https://github.com/carlory)) [SIG Cloud Provider and Release] + +### API Change + +- 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. + ([#125163](https://github.com/kubernetes/kubernetes/pull/125163), [@pohly](https://github.com/pohly)) [SIG Auth, Node and Testing] +- Added UserNamespaces field to NodeRuntimeHandlerFeatures ([#126034](https://github.com/kubernetes/kubernetes/pull/126034), [@sohankunkerkar](https://github.com/sohankunkerkar)) [SIG API Machinery, Apps and Node] +- Added Coordinated Leader Election as Alpha under the `CoordinatedLeaderElection` feature gate. With the feature enabled, the control plane can use LeaseCandidate objects (coordination.k8s.io/v1alpha1 API group) to participate in a leader election and let the kube-apiserver select the best instance according to some strategy. ([#124012](https://github.com/kubernetes/kubernetes/pull/124012), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Apps, Auth, Cloud Provider, Etcd, Node, Release, Scheduling and Testing] +- Added a `.status.features.supplementalGroupsPolicy` field to Nodes. The field is true when the feature is implemented in the CRI implementation (KEP-3619). ([#125470](https://github.com/kubernetes/kubernetes/pull/125470), [@everpeace](https://github.com/everpeace)) [SIG API Machinery, Apps, Node and Testing] +- Added an `allocatedResourcesStatus` to each container status to indicate the health status of devices exposed by the device plugin. ([#126243](https://github.com/kubernetes/kubernetes/pull/126243), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG API Machinery, Apps, Node and Testing] +- Added support to the kube-proxy nodePortAddresses / --nodeport-addresses option to + accept the value "primary", meaning to only listen for NodePort connections + on the node's primary IPv4 and/or IPv6 address (according to the Node object). + This is strongly recommended, if you were not previously using + --nodeport-addresses, to avoid surprising behavior. + (This behavior is enabled by default with the nftables backend; you would + need to explicitly request `--nodeport-addresses 0.0.0.0/0,::/0` there to get + the traditional "listen on all interfaces" behavior.) ([#123105](https://github.com/kubernetes/kubernetes/pull/123105), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Network and Windows] +- Added the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` to enforce the strict cost calculation for CEL extended libraries. It is strongly recommended to turn on the feature gates as early as possible. ([#124675](https://github.com/kubernetes/kubernetes/pull/124675), [@cici37](https://github.com/cici37)) [SIG API Machinery, Auth, Node and Testing] +- Changed how the API server handles updates to `.spec.defaultBackend` of Ingress objects. + Server-side apply now considers `.spec.defaultBackend` to be an atomic struct. This means that any field-owner who sets values in that struct (they are mutually exclusive) owns the whole struct. For almost all users this change has no impact; for controllers that want to change the default backend port from number to name (or vice-versa), this makes it easier. ([#126207](https://github.com/kubernetes/kubernetes/pull/126207), [@thockin](https://github.com/thockin)) [SIG API Machinery] +- Component-base/logs: when compiled with Go >= 1.21, component-base will automatically configure the slog default logger together with initializing klog. ([#120696](https://github.com/kubernetes/kubernetes/pull/120696), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Storage and Testing] +- CustomResourceDefinition objects created with non-empty `caBundle` fields which are invalid or do not contain any certificates will not appear in discovery or serve endpoints until a valid `caBundle` is provided. Updates to CustomResourceDefinition are no longer allowed to transition a valid `caBundle` field to an invalid `caBundle` field, because this breaks serving of the existing CustomResourceDefinition. ([#124061](https://github.com/kubernetes/kubernetes/pull/124061), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery] +- Dynamic Resource Allocation (DRA): Added a feature so the number of ResourceClaim objects can be limited per namespace and by the number of devices requested through a specific class via the v1.ResourceQuota mechanism. ([#120611](https://github.com/kubernetes/kubernetes/pull/120611), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Etcd, Node, Release, Scheduling and Testing] +- Dynamic Resource Allocation (DRA): client-side validation of a ResourceHandle would have accepted a missing DriverName, whereas server-side validation then would have raised an error. ([#124075](https://github.com/kubernetes/kubernetes/pull/124075), [@pohly](https://github.com/pohly)) +- Dynamic Resource Allocation (DRA): in the `pod.spec.recourceClaims` array, the `source` indirection is no longer necessary. Instead of e.g. `source: resourceClaimTemplateName: my-template`, one can write `resourceClaimTemplateName: my-template`. ([#125116](https://github.com/kubernetes/kubernetes/pull/125116), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing] +- Enhanced the Dynamic Resource Allocation (DRA) with an updated version of the resource.k8s.io API group. The primary user-facing type remains the ResourceClaim, however significant changes have been made, resulting in the new version, v1alpha3, which is not compatible with the previous version. ([#125488](https://github.com/kubernetes/kubernetes/pull/125488), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, CLI, Cluster Lifecycle, Etcd, Node, Release, Scheduling, Storage and Testing] +- Fixed a 1.30.0 regression in OpenAPI descriptions of the `imagePullSecrets` and + `hostAliases` fields to mark the fields used as keys in those lists as either defaulted + or required. ([#124553](https://github.com/kubernetes/kubernetes/pull/124553), [@pmalek](https://github.com/pmalek)) +- Fixed a 1.30.0 regression in openapi descriptions of `PodIP.IP` and `HostIP.IP` fields to mark the fields used as keys in those lists as required. ([#126057](https://github.com/kubernetes/kubernetes/pull/126057), [@thockin](https://github.com/thockin)) +- Fixed a bug in the API server where empty collections of ValidatingAdmissionPolicies did not have an `items` field. ([#124568](https://github.com/kubernetes/kubernetes/pull/124568), [@xyz-li](https://github.com/xyz-li)) [SIG API Machinery] +- Fixed a deep copy issue when retrieving the controller reference. ([#124116](https://github.com/kubernetes/kubernetes/pull/124116), [@HiranmoyChowdhury](https://github.com/HiranmoyChowdhury)) [SIG API Machinery and Release] +- Fixed code-generator client-gen to work with `api/v1`-like package structure. ([#125162](https://github.com/kubernetes/kubernetes/pull/125162), [@sttts](https://github.com/sttts)) [SIG API Machinery and Apps] +- Fixed incorrect "v1 Binding is deprecated in v1.6+" warning in kube-scheduler log. ([#125540](https://github.com/kubernetes/kubernetes/pull/125540), [@pohly](https://github.com/pohly)) [SIG API Machinery] +- Fixed the comment for the Job's managedBy field. ([#124793](https://github.com/kubernetes/kubernetes/pull/124793), [@mimowo](https://github.com/mimowo)) [SIG API Machinery and Apps] +- Fixed the documentation for the default value of the `procMount` entry in `securityContext` within a Pod. + The documentation was previously using the name of the internal variable `DefaultProcMount`, rather than the actual value, "Default". ([#125782](https://github.com/kubernetes/kubernetes/pull/125782), [@aborrero](https://github.com/aborrero)) [SIG Apps and Node] +- Graduated PodDisruptionConditions to GA and lock ([#125461](https://github.com/kubernetes/kubernetes/pull/125461), [@mimowo](https://github.com/mimowo)) [SIG Apps, Node, Scheduling and Testing] +- Graduated MatchLabelKeys/MismatchLabelKeys feature in PodAffinity/PodAntiAffinity to Beta. ([#123638](https://github.com/kubernetes/kubernetes/pull/123638), [@sanposhiho](https://github.com/sanposhiho)) [SIG API Machinery, Apps, Scheduling and Testing] +- Graduated `JobPodFailurePolicy` to GA and locked it to its default. ([#125442](https://github.com/kubernetes/kubernetes/pull/125442), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps, Scheduling and Testing] +- Graduated the Job `successPolicy` field to beta. + + The new reason label, "SuccessPolicy" and "CompletionsReached" are added to the "jobs_finished_total" metric. + Additionally, if you enable the `JobSuccessPolicy` feature gate, the Job gets "CompletionsReached" reason for the "SuccessCriteriaMet" and "Complete" condition type + when the number of succeeded Job Pods (`.status.succeeded`) reached the desired completions (`.spec.completions`). ([#126067](https://github.com/kubernetes/kubernetes/pull/126067), [@tenzen-y](https://github.com/tenzen-y)) [SIG API Machinery, Apps and Testing] +- Graduated the `DisableNodeKubeProxyVersion` feature gate to beta. By default, the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for its associated Node. ([#123845](https://github.com/kubernetes/kubernetes/pull/123845), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Cloud Provider, Network, Node and Testing] +- Improved scheduling performance when many nodes, and prefilter returned 1-2 nodes (e.g. daemonset) + + For developers of out-of-tree PostFilter plugins, note that the semantics of NodeToStatusMap are changing: A node with an absent value in the NodeToStatusMap should be interpreted as having an UnschedulableAndUnresolvable status. ([#125197](https://github.com/kubernetes/kubernetes/pull/125197), [@gabesaba](https://github.com/gabesaba)) +- Introduced a new boolean kubelet flag `--fail-cgroupv1`. Running kubelet using cgroup v1 is in a maintenance mode: no new features will be added with the limited support for bug fixes. Please consider migrating to cgroup v2. See [KEP-4569: Moving cgroup v1 support into maintenance mode](https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support) for more info. ([#126031](https://github.com/kubernetes/kubernetes/pull/126031), [@harche](https://github.com/harche)) [SIG API Machinery and Node] +- K8s.io/apimachinery/pkg/util/runtime: Added support for new calls to handle panics and errors in the context where they occur. `PanicHandlers` and `ErrorHandlers` now must accept a context parameter for that. Log output is structured instead of unstructured. ([#121970](https://github.com/kubernetes/kubernetes/pull/121970), [@pohly](https://github.com/pohly)) [SIG API Machinery and Instrumentation] +- KEP-1880: Users of the new feature to add multiple service CIDR will use by default a dual-write strategy on the new ClusterIP allocators to avoid the problem of possible duplicate IPs allocated to Services when running skewed kube-apiservers using different allocators. They can opt-out of this behavior by enabled the feature gate DisableAllocatorDualWrite. ([#122047](https://github.com/kubernetes/kubernetes/pull/122047), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Instrumentation and Testing] +- Kube-apiserver: Added Alpha features to allow API server authz to check the context of requests: + - The `AuthorizeWithSelectors` feature gate enables including field and label selector information from requests in webhook authorization calls. + - The `AuthorizeNodeWithSelectors` feature gate changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer. ([#125571](https://github.com/kubernetes/kubernetes/pull/125571), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Node, Scheduling and Testing] +- Kube-apiserver: ControllerRevision objects are now verified to contain valid JSON data in the `data` field. ([#125549](https://github.com/kubernetes/kubernetes/pull/125549), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps] +- Kube-apiserver: the `--encryption-provider-config` file is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with config files that are malformed, mis-indented, or have typos in field names, and getting unexpected behavior. When `--encryption-provider-config-automatic-reload` is used, new encryption config files that contain typos after the kube-apiserver is running are treated as invalid and the last valid config is used. ([#124912](https://github.com/kubernetes/kubernetes/pull/124912), [@enj](https://github.com/enj)) [SIG API Machinery and Auth] +- Kube-controller-manager: the `horizontal-pod-autoscaler-upscale-delay` and `horizontal-pod-autoscaler-downscale-delay` flags have been removed (deprecated and non-functional since v1.12). ([#124948](https://github.com/kubernetes/kubernetes/pull/124948), [@SataQiu](https://github.com/SataQiu)) [SIG API Machinery, Apps and Autoscaling] +- Made kube-proxy Windows service control manager integration (`--windows-service`) configurable in v1alpha1 component configuration via `windowsRunAsService` field. ([#126072](https://github.com/kubernetes/kubernetes/pull/126072), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Scalability] +- PersistentVolumeLastPhaseTransitionTime feature is stable and enabled by default. ([#124969](https://github.com/kubernetes/kubernetes/pull/124969), [@RomanBednar](https://github.com/RomanBednar)) [SIG API Machinery, Apps, Storage and Testing] +- Promoted `LocalStorageCapacityIsolation` to beta; the behaviour is enabled by default. Within the kubelet, storage capacity isolation is active if the feature gate is enabled and the specific Pod is using a user namespace. ([#126014](https://github.com/kubernetes/kubernetes/pull/126014), [@PannagaRao](https://github.com/PannagaRao)) [SIG Apps, Autoscaling, Node, Storage and Testing] +- Promoted `StatefulSetStartOrdinal` to stable. This means `--feature-gates=StatefulSetStartOrdinal=true` are not needed on kube-apiserver and kube-controller-manager binaries and they'll be removed soon following policy at https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecation. ([#125374](https://github.com/kubernetes/kubernetes/pull/125374), [@pwschuurman](https://github.com/pwschuurman)) [SIG API Machinery, Apps and Testing] +- Promoted feature-gate `VolumeAttributesClass` to beta (disabled by default). Users need to enable the feature gate and the `storage.k8s.io/v1beta1` API group to use this feature. + Promoted the VolumeAttributesClass API to beta. ([#126145](https://github.com/kubernetes/kubernetes/pull/126145), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, CLI, Etcd, Storage and Testing] +- Removed deprecated command flags --volume-host-cidr-denylist + and --volume-host-allow-local-loopback from kube-controller-manager. + ([#124017](https://github.com/kubernetes/kubernetes/pull/124017), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Cloud Provider and Storage] +- Removed feature gate `CustomResourceValidationExpressions`. ([#126136](https://github.com/kubernetes/kubernetes/pull/126136), [@cici37](https://github.com/cici37)) [SIG API Machinery, Cloud Provider and Testing] +- Reverted a [change](https://github.com/kubernetes/kubernetes/pull/123513) where `ConsistentListFromCache` was moved to beta and enabled by default. ([#126139](https://github.com/kubernetes/kubernetes/pull/126139), [@enj](https://github.com/enj)) +- Revised the Pod API with Alpha support for volumes derived from OCI artifacts. This feature is behind the `ImageVolume` feature gate. ([#125660](https://github.com/kubernetes/kubernetes/pull/125660), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Apps and Node] +- Supported fine-grained supplemental groups policy (KEP-3619), which enabled + fine-grained control for supplementary groups in the first container processes. + This allows you to choose whether to include groups defined in the container image (/etc/groups) + for the container's primary UID or not. ([#117842](https://github.com/kubernetes/kubernetes/pull/117842), [@everpeace](https://github.com/everpeace)) [SIG API Machinery, Apps and Node] +- The (alpha) nftables mode of kube-proxy now requires version 1.0.1 or later + of the nft command-line, and kernel 5.13 or later. (For testing/development + purposes, you can use older kernels, as far back as 5.4, if you set the + `nftables.skipKernelVersionCheck` option in the kube-proxy config, but this is not + recommended in production since it may cause problems with other nftables + users on the system.) ([#124152](https://github.com/kubernetes/kubernetes/pull/124152), [@danwinship](https://github.com/danwinship)) [SIG Network] +- To enhance usability and developer experience, CRD validation rules now support direct use of (CEL) reserved keywords as field names in object validation expressions for existing expressions in storage, will fully support runtime in next release for compatibility concern. ([#126188](https://github.com/kubernetes/kubernetes/pull/126188), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing] +- Updated the feature MultiCIDRServiceAllocator to beta (disabled by default). Users need to enable the feature gate and the networking v1beta1 group to be able to use this new feature, that allows to dynamically reconfigure Service CIDR ranges. ([#125021](https://github.com/kubernetes/kubernetes/pull/125021), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, CLI, Etcd, Instrumentation, Network and Testing] +- Use omitempty for optional Job Pod Failure Policy fields. ([#126046](https://github.com/kubernetes/kubernetes/pull/126046), [@mimowo](https://github.com/mimowo)) +- User can choose a different static policy option `SpreadPhysicalCPUsPreferredOption` to spread cpus across physical cpus for some specific applications ([#123733](https://github.com/kubernetes/kubernetes/pull/123733), [@Jeffwan](https://github.com/Jeffwan)) [SIG Node] +- When the feature gate AnonymousAuthConfigurableEndpoints is enabled users can update the AuthenticationConfig file with endpoints for with anonymous requests are allowed. ([#124917](https://github.com/kubernetes/kubernetes/pull/124917), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG API Machinery, Auth, Cloud Provider, Node and Testing] + +### Feature + +- kubeadm: enhanced the "patches" functionality to be able to patch coredns + deployment. The new patch target is called "corednsdeployment" (e.g. patch file + "corednsdeployment+json.json"). This makes it possible to apply custom patches + to coredns deployment during "init" and "upgrade". ([#124820](https://github.com/kubernetes/kubernetes/pull/124820), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- kubeadm: marked the flag "--experimental-output'' as deprecated (it will + be removed in a future release) and added a new flag ''--output" that serves the + same purpose. Affected commands are - "kubeadm config images list", "kubeadm token + list", "kubeadm upgrade plan", "kubeadm certs check-expiration". ([#124393](https://github.com/kubernetes/kubernetes/pull/124393), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle] +- ACTION REQUIRED for custom scheduler plugin developers: + `EventsToRegister` in the `EnqueueExtensions` interface gets `ctx` in the parameters and `error` in the return values. + Please change your plugins' implementation accordingly. ([#126113](https://github.com/kubernetes/kubernetes/pull/126113), [@googs1025](https://github.com/googs1025)) [SIG Node, Scheduling, Storage and Testing] +- Added --for=create option to kubectl wait ([#125868](https://github.com/kubernetes/kubernetes/pull/125868), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] +- Added a TopologyManager policy option: max-allowable-numa-nodes to configures maxAllowableNUMANodes for kubelet. ([#124148](https://github.com/kubernetes/kubernetes/pull/124148), [@cyclinder](https://github.com/cyclinder)) [SIG Node and Testing] +- Added Custom resource field selectors in beta and enabled them by default. Check out https://github.com/kubernetes/enhancements/issues/4358 for more details. ([#124681](https://github.com/kubernetes/kubernetes/pull/124681), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth and Testing] +- Added Extra.DisableAvailableConditionController for Generic Control Plane setup. ([#125650](https://github.com/kubernetes/kubernetes/pull/125650), [@mjudeikis](https://github.com/mjudeikis)) [SIG API Machinery] +- Added OCI VolumeSource Container Runtime Interface API fields and types. ([#125659](https://github.com/kubernetes/kubernetes/pull/125659), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] +- Added `--keep-*` flags to `kubectl debug`, which enables to control the removal + of probes, labels, annotations and initContainers from copy pod. ([#123149](https://github.com/kubernetes/kubernetes/pull/123149), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI and Testing] +- Added `cri-client` staging repository. ([#123797](https://github.com/kubernetes/kubernetes/pull/123797), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Node, Release and Testing] +- Added `storage_class` and `volume_attributes_class` labels to `pv_collector_bound_pvc_count` and `pv_collector_unbound_pvc_count` metrics. ([#126166](https://github.com/kubernetes/kubernetes/pull/126166), [@AndrewSirenko](https://github.com/AndrewSirenko)) [SIG Apps, Instrumentation, Storage and Testing] +- Added a feature to report an event about a Pod if kubelet observes a failed attach operation, even if the kubelet is running with `--enable-controller-attach-detach=false`. ([#124884](https://github.com/kubernetes/kubernetes/pull/124884), [@carlory](https://github.com/carlory)) +- Added a warning log, an event for cgroup v1 usage and a metric for cgroup version. Running kubelet using cgroup v1 is in a maintenance mode: no new features will be added with the limited support for bug fixes. Please consider migrating to cgroup v2. See [KEP-4569: Moving cgroup v1 support into maintenance mode](https://github.com/kubernetes/enhancements/blob/7c97898249d1ec040610aead30d41bab18c3f9e4/keps/sig-node/4569-cgroup-v1-maintenance-mode/README.md#introduce-a-kubelet-flag-to-disable-cgroup-v1-support) for more info. ([#125328](https://github.com/kubernetes/kubernetes/pull/125328), [@harche](https://github.com/harche)) +- Added apiserver.latency.k8s.io/apf-queue-wait annotation to the audit log + to record the time spent waiting in APF queue. ([#123919](https://github.com/kubernetes/kubernetes/pull/123919), [@hakuna-matatah](https://github.com/hakuna-matatah)) +- Added check for etcd version to warn about deprecated etcd versions if `ConsistentListFromCache` is enabled. ([#124612](https://github.com/kubernetes/kubernetes/pull/124612), [@ah8ad3](https://github.com/ah8ad3)) [SIG API Machinery] +- Added completion for `kubectl set image`. ([#124592](https://github.com/kubernetes/kubernetes/pull/124592), [@ah8ad3](https://github.com/ah8ad3)) [SIG CLI] +- Added field management support to the fake client-go typed client. + Use `fake.NewClientset()` instead of `fake.NewSimpleClientset()` to create a clientset with managed field support. ([#125560](https://github.com/kubernetes/kubernetes/pull/125560), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, Instrumentation and Testing] +- Added flag to `kubectl logs` called `--all-pods` to get all pods from a object that uses a pod selector. ([#124732](https://github.com/kubernetes/kubernetes/pull/124732), [@cmwylie19](https://github.com/cmwylie19)) [SIG CLI and Testing] +- Added namespace autocompletion for `kubectl config set-context` command. ([#124994](https://github.com/kubernetes/kubernetes/pull/124994), [@TessaIO](https://github.com/TessaIO)) [SIG CLI] +- Added ports autocompletion for `kubectl port-forward` command. ([#124683](https://github.com/kubernetes/kubernetes/pull/124683), [@TessaIO](https://github.com/TessaIO)) [SIG CLI] +- Added support for CEL(Common Expression Language) expressions and `additionalProperties` to be used under nested quantifiers in CRD schemas. ([#124381](https://github.com/kubernetes/kubernetes/pull/124381), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery] +- Added support for building Windows kube-proxy container image. + A container image for kube-proxy on Windows can now be built with the command + `make release-images KUBE_BUILD_WINDOWS=y`. + The Windows kube-proxy image can be used with Windows Host Process Containers. ([#109939](https://github.com/kubernetes/kubernetes/pull/109939), [@claudiubelu](https://github.com/claudiubelu)) [SIG Windows] +- Added support for kube-proxy iptables mode to track packets that were wrongfully marked invalid by conntrack and subsequently dropped by introducing `kubeproxy_iptables_ct_state_invalid_dropped_packets_total` metric. ([#122812](https://github.com/kubernetes/kubernetes/pull/122812), [@aroradaman](https://github.com/aroradaman)) [SIG Instrumentation, Network and Testing] +- Added the `WatchList` method to the `rest client` in `client-go`. When used, + it establishes a stream to obtain a consistent snapshot of data from the server. + This method is meant to be used by the generated client. ([#122657](https://github.com/kubernetes/kubernetes/pull/122657), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] +- Added the ability to the kubelet server to dynamically load certificate files. ([#124574](https://github.com/kubernetes/kubernetes/pull/124574), [@zhangweikop](https://github.com/zhangweikop)) [SIG Auth and Node] +- Allowed creating ServiceAccount tokens bound to Node objects. + This allows users to bind a service account token's validity to a named Node object, similar to Pod bound tokens. + Use with `kubectl create token <serviceaccount-name> --bound-object-kind=Node --bound-object-node=<node-name>`. ([#125238](https://github.com/kubernetes/kubernetes/pull/125238), [@munnerz](https://github.com/munnerz)) [SIG Auth and CLI] +- Built Kubernetes with Go 1.22.3. ([#124828](https://github.com/kubernetes/kubernetes/pull/124828), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- Built Kubernetes with Go 1.22.4. ([#125363](https://github.com/kubernetes/kubernetes/pull/125363), [@cpanato](https://github.com/cpanato)) [SIG Architecture, Cloud Provider, Release, Storage and Testing] +- Promoted CRI communication of the cgroup driver mechanism to beta. The `KubeletCgroupDriverFromCRI` feature gate is now in beta and enabled by default. This allows the kubelet to query the container runtime using CRI to determine the mechanism for cgroup management. If the container runtime doesn't support this, the kubelet falls back to using the configuration file (you can also use the deprecated `--cgroup-driver` command line argument). ([#125828](https://github.com/kubernetes/kubernetes/pull/125828), [@haircommander](https://github.com/haircommander)) [SIG Node] +- CEL: Added name formats library. ([#123572](https://github.com/kubernetes/kubernetes/pull/123572), [@alexzielenski](https://github.com/alexzielenski)) [SIG API Machinery] +- Changed Linux swap handling to restrict access to swap for containers in high priority Pods. + New Pods that have a node- or cluster-critical priority are prohibited from accessing swap on Linux, + even if your cluster and node configuration could otherwise allow this. ([#125277](https://github.com/kubernetes/kubernetes/pull/125277), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing] +- Client-go/reflector: warns when the bookmark event for initial events hasn't been received ([#124614](https://github.com/kubernetes/kubernetes/pull/124614), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] +- Continued streaming kubelet logs when the CRI server of the runtime was unavailable. ([#124025](https://github.com/kubernetes/kubernetes/pull/124025), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] +- Delay setting terminal Job conditions until all pods are terminal. + + Additionally, the FailureTarget condition is also added to the Job object in the first Job + status update as soon as the failure conditions are met (backoffLimit is exceeded, maxFailedIndexes, + or activeDeadlineSeconds is exceeded). + + Similarly, the SuccessCriteriaMet condition is added in the first update as soon as the expected number + of pod completions is reached. + + Also, introduced the following validation rules for Job status when JobManagedBy is enabled: + 1. the count of ready pods is less or equal than active + 2. when transitioning to terminal phase for Job, the number of terminating pods is 0 + 3. terminal Job conditions (Failed and Complete) should be preceded by adding the corresponding interim conditions: FailureTarget and SuccessCriteriaMet ([#125510](https://github.com/kubernetes/kubernetes/pull/125510), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing] +- Dependencies: started using registry.k8s.io/pause:3.10. ([#125112](https://github.com/kubernetes/kubernetes/pull/125112), [@neolit123](https://github.com/neolit123)) [SIG CLI, Cloud Provider, Cluster Lifecycle, Node, Release, Testing and Windows] +- Enabled feature gates for PortForward (kubectl port-forward) over WebSockets by default (beta). + - Server-side feature gate: PortForwardWebsocket + - Client-side (kubectl) feature gate: PORT_FORWARD_WEBSOCKETS environment variable + - To turn off PortForward over WebSockets for kubectl, the environment variable feature gate must be explicitly set - PORT_FORWARD_WEBSOCKETS=false ([#125528](https://github.com/kubernetes/kubernetes/pull/125528), [@seans3](https://github.com/seans3)) [SIG API Machinery and CLI] +- Enforced kubelet to request serving certificates only once it has at least one IP address in the `.status.addresses` of its associated Node object. This avoids requesting DNS-only serving certificates before externally set addresses are in place. Until 1.33, the previous behavior can be opted back into by setting the deprecated `AllowDNSOnlyNodeCSR` feature gate to true in the kubelet. ([#125813](https://github.com/kubernetes/kubernetes/pull/125813), [@aojea](https://github.com/aojea)) [SIG Auth, Cloud Provider and Node] +- Fixed a missing behavior where Windows nodes did not implement memory-pressure eviction. ([#122922](https://github.com/kubernetes/kubernetes/pull/122922), [@marosset](https://github.com/marosset)) [SIG Node, Testing and Windows] +- Graduated Kubernetes' support for AppArmor to GA. You now cannot disable the `AppArmor` feature gate. ([#125257](https://github.com/kubernetes/kubernetes/pull/125257), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Apps, Node and Testing] +- Graduated support for Container Device Interface (CDI) device IDs to general availability. The `DevicePluginCDIDevices` feature gate is now enabled unconditionally. ([#123315](https://github.com/kubernetes/kubernetes/pull/123315), [@bart0sh](https://github.com/bart0sh)) [SIG Node] +- Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled `WatchListClient` for kube-controller-manager (KCM). ([#125591](https://github.com/kubernetes/kubernetes/pull/125591), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] +- If the feature-gate VolumeAttributesClass is enabled, when finding a suitable persistent volume for a claim, the kube-controller-manager will be aware of the `volumeAttributesClassName` field of PVC and PV objects. The `volumeAttributesClassName` field is a reference to a VolumeAttributesClass object, which contains a set of key-value pairs that present mutable attributes of the volume. It's forbidden to change the `volumeAttributesClassName` field of a PVC object until the PVC is bound to a PV object. During the binding process, if a PVC has a `volumeAttributesClassName` field set, the controller will only consider volumes that have the same `volumeAttributesClassName` as the PVC. If the `volumeAttributesClassName` field is not set or set to an empty string, only volumes with empty `volumeAttributesClassName` will be considered. ([#121902](https://github.com/kubernetes/kubernetes/pull/121902), [@carlory](https://github.com/carlory)) [SIG Apps, Scheduling, Storage and Testing] +- Implemented `event_handling_duration_seconds` metric, which is the time the scheduler takes to handle each kind of events. ([#125929](https://github.com/kubernetes/kubernetes/pull/125929), [@sanposhiho](https://github.com/sanposhiho)) +- Implemented `queueing_hint_execution_duration_seconds` metric, which is the time the QueueingHint function takes. ([#126227](https://github.com/kubernetes/kubernetes/pull/126227), [@sanposhiho](https://github.com/sanposhiho)) +- Implemented new cluster events UpdatePodScaleDown and UpdatePodLabel for scheduler plugins. ([#122628](https://github.com/kubernetes/kubernetes/pull/122628), [@sanposhiho](https://github.com/sanposhiho)) +- Improved memory usage of kube-apiserver by dropping`.metadata.managedFields` field that self-requested informers of kube-apiserver didn't need. ([#124667](https://github.com/kubernetes/kubernetes/pull/124667), [@linxiulei](https://github.com/linxiulei)) [SIG API Machinery] +- In the client-side apply on create, defining the null value as "delete the key associated with this value". ([#125646](https://github.com/kubernetes/kubernetes/pull/125646), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, CLI and Testing] +- Introduced new functionality to the client-go's **list** verb, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate. + + It is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, client-go will revert to using the normal `LIST` method to obtain data. ([#124509](https://github.com/kubernetes/kubernetes/pull/124509), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, Auth, Instrumentation and Testing] +- Introduces new functionality to the dynamic client's `List` method, allowing users to enable API streaming. To activate this feature, users can set the `client-go.WatchListClient` feature gate. + + It is important to note that the server must support streaming for this feature to function properly. If streaming is not supported by the server, the client will revert to using the normal `LIST` method to obtain data. ([#125305](https://github.com/kubernetes/kubernetes/pull/125305), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] +- KEP-3857: promoted RecursiveReadOnlyMounts feature to beta. ([#125475](https://github.com/kubernetes/kubernetes/pull/125475), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Node] +- Kube-apiserver: Added support to disable http/2 serving with a `--disable-http2-serving` flag. + ([#122176](https://github.com/kubernetes/kubernetes/pull/122176), [@slashpai](https://github.com/slashpai)) [SIG API Machinery] +- Kube-apiserver: when the Alpha `UserNamespacesPodSecurityStandards` feature gate is enabled, Pod Security Admission enforcement of the baseline policy now allows `procMount: Unmasked` for user namespace pods that set `hostUsers: false`. ([#126163](https://github.com/kubernetes/kubernetes/pull/126163), [@haircommander](https://github.com/haircommander)) +- Kube-proxy's nftables mode (--proxy-mode=nftables) is now beta and available by default. ([#124383](https://github.com/kubernetes/kubernetes/pull/124383), [@danwinship](https://github.com/danwinship)) [SIG Cloud Provider and Network] +- Kube-scheduler implemented scheduling hints for the CSILimit plugin. + The scheduling hints allow the scheduler to retry scheduling a Pod that was previously rejected by the CSILimit plugin if a deleted pod has a PersistantVolumeClaim (PVC) from the same driver. ([#121508](https://github.com/kubernetes/kubernetes/pull/121508), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Storage] +- Kube-scheduler implemented scheduling hints for the VolumeRestriction plugin. + Scheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if the Pod is deleted and the deleted Pod conflicts with the existing volumes of the current Pod. ([#125279](https://github.com/kubernetes/kubernetes/pull/125279), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Scheduling and Storage] +- Kube-scheduler implements scheduling hints for the VolumeRestriction plugin. + Scheduling hints allow the scheduler to retry scheduling Pods that were previously rejected by the VolumeRestriction plugin if a new pvc added, and the pvc belongs to pod. ([#125280](https://github.com/kubernetes/kubernetes/pull/125280), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Scheduling and Storage] +- Kube-scheduler implements scheduling hints for the VolumeZone plugin. + The scheduling hints allow the scheduler to only retry scheduling a Pod + that was previously rejected by the VolumeZone plugin if addition/update of node, + addition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings. ([#124996](https://github.com/kubernetes/kubernetes/pull/124996), [@Gekko0114](https://github.com/Gekko0114)) [SIG Scheduling and Storage] +- Kube-scheduler implements scheduling hints for the VolumeZone plugin. + The scheduling hints allow the scheduler to only retry scheduling a Pod + that was previously rejected by the VolumeZone plugin if addition/update of node, + addition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings. ([#125000](https://github.com/kubernetes/kubernetes/pull/125000), [@Gekko0114](https://github.com/Gekko0114)) [SIG Scheduling and Storage] +- Kube-scheduler implements scheduling hints for the VolumeZone plugin. + The scheduling hints allow the scheduler to only retry scheduling a Pod + that was previously rejected by the VolumeZone plugin if addition/update of node, + addition/update of PV, addition/update of PVC, or addition of SC matches pod's topology settings. ([#125001](https://github.com/kubernetes/kubernetes/pull/125001), [@Gekko0114](https://github.com/Gekko0114)) [SIG Scheduling and Storage] +- Kubeadm: Ensured that during "upgrade" , if the "etcd.yaml" static pod did not need upgrade, still consider rotating the etcd certificates and restarting the etcd static pod if the "kube-apiserver.yaml" manifest was to be upgraded and if certificate renewal was not disabled. ([#124688](https://github.com/kubernetes/kubernetes/pull/124688), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Switched kubeadm to start using the CRI client library instead of shelling out of the `crictl` binary + for actions against a CRI endpoint. The kubeadm deb/rpm packages will continue to install the `cri-tools` + package for one more release, but in you must adapt your scripts to install `crictl` manually from + https://github.com/kubernetes-sigs/cri-tools/releases or a different location. + + The `kubeadm` package will stop depending on the `cri-tools` package in Kubernetes 1.32, which means that + installing `kubeadm` will no longer automatically ensure installation of `crictl`. ([#124685](https://github.com/kubernetes/kubernetes/pull/124685), [@saschagrunert](https://github.com/saschagrunert)) +- Kubeadm: Switched to using the new etcd endpoints introduced in 3.5.11 - /livez (for liveness probe) and /readyz (for readyness and startup probe). With this change it is no longer possible to deploy a custom etcd version older than 3.5.11 with kubeadm 1.31. If so, please upgrade etcd to a supported version. ([#124465](https://github.com/kubernetes/kubernetes/pull/124465), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Used output/v1alpha3 to print structural output for the commands "kubeadm config images list" and "kubeadm token list". ([#124464](https://github.com/kubernetes/kubernetes/pull/124464), [@carlory](https://github.com/carlory)) +- Kubeadm: added the ControlPlaneKubeletLocalMode feature gate. It can be used to tell kubeadm to use the local kube-apiserver endpoint for the kubelet when creating a cluster with "kubeadm init" or when joining control plane nodes with "kubeadm join". The "kubeadm join" workflow now includes two new experimental phases called "control-plane-join-etcd" and "kubelet-wait-bootstrap" which will be used when the feature gate is enabled. This phases will be marked as non-experimental when ControlPlaneKubeletLocalMode becomes GA. During "kubeadm upgrade" commands, if the feature gate is enabled, modify the "/etc/kubernetes/kubelet.conf " to use the local kube-apiserver endpoint. This upgrade mechanism will be removed once the feature gate goes GA and is hardcoded to true. ([#125582](https://github.com/kubernetes/kubernetes/pull/125582), [@chrischdi](https://github.com/chrischdi)) +- Kubeadm: enabled the v1beta4 API. For a complete changelog since v1beta3 please see https://kubernetes.io/docs/reference/config-api/kubeadm-config.v1beta4/. + + The API does include a few breaking changes: + - The "extraArgs" component construct is now a list of "name"/"value" pairs instead of a string/string map. This has been done to support duplicate args where needed. + - The "JoinConfiguration.discovery.timeout" field has been replaced by "JoinConfiguration.timeouts.discovery". + - The "ClusterConfiguration.timeoutForControlPlane" field has been replaced by "{Init|Join}Configuration.timeouts.controlPlaneComponentHealthCheck". + Please use the command "kubeadm config migrate" to migrate your existing v1beta3 configuration to v1beta4. + + v1beta3 is now marked as deprecated but will continue to be supported until version 1.34 or later. + The storage configuration in the kube-system/kubeadm-config ConfigMap is now a v1beta4 ClusterConfiguration. ([#125029](https://github.com/kubernetes/kubernetes/pull/125029), [@neolit123](https://github.com/neolit123)) +- Kubelet would not restart the container when fields other than image in the Pod spec change. pod spec change. ([#124220](https://github.com/kubernetes/kubernetes/pull/124220), [@HirazawaUi](https://github.com/HirazawaUi)) +- Kubelet/stats: set INFO log level for stats not found in cadvisor memory cache error. ([#125656](https://github.com/kubernetes/kubernetes/pull/125656), [@gyuho](https://github.com/gyuho)) +- Kubelet: warn instead of error for the unsupported options on Windows "CgroupsPerQOS" and "EnforceNodeAllocatable". ([#123137](https://github.com/kubernetes/kubernetes/pull/123137), [@neolit123](https://github.com/neolit123)) [SIG Node and Windows] +- Kubemark: added two flags, `--kube-api-qps` which indicates the maximum QPS to the apiserver, and `--kube-api-burst` which indicates maximum burst for throttle to the apiserver. ([#124147](https://github.com/kubernetes/kubernetes/pull/124147), [@devincd](https://github.com/devincd)) +- Kubernetes is now built with go 1.22.5. ([#125894](https://github.com/kubernetes/kubernetes/pull/125894), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- LogarithmicScaleDown is now GA. ([#125459](https://github.com/kubernetes/kubernetes/pull/125459), [@MinpengJin](https://github.com/MinpengJin)) [SIG Apps and Scheduling] +- Moved `ConsistentListFromCache` feature flag to beta and enabled it by default. ([#123513](https://github.com/kubernetes/kubernetes/pull/123513), [@serathius](https://github.com/serathius)) [SIG API Machinery and Testing] +- Promoted HonorPVReclaimPolicy to beta and enable the feature-gate by default ([#124842](https://github.com/kubernetes/kubernetes/pull/124842), [@carlory](https://github.com/carlory)) [SIG Apps, Storage and Testing] +- Promoted `generateName` retries to beta, and made the `NameGenerationRetries` feature gate + enabled by default. + You can read https://kep.k8s.io/4420 for more details. ([#124673](https://github.com/kubernetes/kubernetes/pull/124673), [@jpbetz](https://github.com/jpbetz)) +- Promoted the `ProcMountType` feature gate to beta. ([#125259](https://github.com/kubernetes/kubernetes/pull/125259), [@sohankunkerkar](https://github.com/sohankunkerkar)) +- Promoted the feature gate `KubeProxyDrainingTerminatingNodes` to stable ([#125082](https://github.com/kubernetes/kubernetes/pull/125082), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) +- Promoted the metrics for both ValidatingAdmissionPolicy (VAP) and CustomResourceDefinition (CRD) validation rules to beta. ([#126237](https://github.com/kubernetes/kubernetes/pull/126237), [@cici37](https://github.com/cici37)) [SIG API Machinery and Instrumentation] +- Scheduler changes its logic of calculating `evaluatedNodes` from "contains the number of nodes that filtered out by PreFilterResult and Filter plugins" to "the number of nodes filtered out by Filter plugins only". ([#124735](https://github.com/kubernetes/kubernetes/pull/124735), [@AxeZhan](https://github.com/AxeZhan)) +- Services implemented a field selector for the ClusterIP and Type fields. + The Kubelet uses this field selector to avoid monitoring Headless Services, which helps reduce memory consumption. ([#123905](https://github.com/kubernetes/kubernetes/pull/123905), [@aojea](https://github.com/aojea)) [SIG Apps, Node and Testing] +- Starting in 1.31, `container_engine_t` was added to the list of allowed SELinux types in the baseline Pod Security Standard. ([#126165](https://github.com/kubernetes/kubernetes/pull/126165), [@haircommander](https://github.com/haircommander)) +- The PodDisruptionBudget `spec.unhealthyPodEvictionPolicy` field has graduated to GA. This field may be set to `AlwaysAllow` to always allow unhealthy pods covered by the PodDisruptionBudget to be evicted. ([#123428](https://github.com/kubernetes/kubernetes/pull/123428), [@atiratree](https://github.com/atiratree)) [SIG Apps, Auth, Node and Testing] +- The Service trafficDistribution field has graduated to beta and is now available for configuration by default, without the need to enable any feature flag. Services that do not have the field configured will continue to operate with their existing behavior. Refer to the documentation https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution for more details. ([#125838](https://github.com/kubernetes/kubernetes/pull/125838), [@gauravkghildiyal](https://github.com/gauravkghildiyal)) [SIG Network and Testing] +- The `KubeletSeparateDiskGC` feature gate is now beta. This split image filesystem feature enables kubelet to perform garbage collection of images (read-only layers) and/or containers (writeable layers) deployed on separate filesystems. gate is now beta. ([#126205](https://github.com/kubernetes/kubernetes/pull/126205), [@kwilczynski](https://github.com/kwilczynski)) +- The feature-gate CSIMigrationPortworx was promoted to beta in Kubernetes 1.25, but turned off by default. In 1.31, it was turned on by default. Before upgrading to 1.31, please make sure that the corresponding portworx csi driver is installed if you are using Portworx. ([#125016](https://github.com/kubernetes/kubernetes/pull/125016), [@carlory](https://github.com/carlory)) [SIG Storage] +- The iptables mode of kube-proxy now tracks accepted packets that are destined for node-ports on localhost by introducing `kubeproxy_iptables_localhost_nodeports_accepted_packets_total` metric. + This will help users to identify if they rely on iptables.localhostNodePorts feature and ultimately help them to migrate from iptables to nftables. ([#125015](https://github.com/kubernetes/kubernetes/pull/125015), [@aroradaman](https://github.com/aroradaman)) [SIG Instrumentation, Network and Testing] +- The kube-proxy command line flag `--proxy-port-range`, which was previously deprecated and non-functional, has now been removed. ([#126293](https://github.com/kubernetes/kubernetes/pull/126293), [@aroradaman](https://github.com/aroradaman)) [SIG Network] +- The kube-scheduler added scheduling hints for the InterPodAffinity plugin. + These hints allow the scheduler to retry scheduling a Pod + that was previously rejected by the InterPodAffinity plugin if there are changes (create, delete, or update) to a related Pod or a node that matches the pod affinity criteria. ([#122471](https://github.com/kubernetes/kubernetes/pull/122471), [@nayihz](https://github.com/nayihz)) [SIG Scheduling and Testing] +- The kube-scheduler added support for scheduling hints for the CSIStorageCapacity resource within the VolumeBinding plugin. + The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. ([#124961](https://github.com/kubernetes/kubernetes/pull/124961), [@bells17](https://github.com/bells17)) [SIG Scheduling and Storage] +- The kube-scheduler added support for scheduling hints for the PersistentVolumeClaim resource within the VolumeBinding plugin. + The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. ([#124959](https://github.com/kubernetes/kubernetes/pull/124959), [@bells17](https://github.com/bells17)) [SIG Scheduling and Storage] +- The kube-scheduler added support for scheduling hints for the StorageClass resource within the VolumeBinding plugin. + The scheduling hints allowed the scheduler to retry scheduling a Pod that was previously rejected by the VolumeBinding plugin only if a new resource referenced by the plugin was created or an existing resource referenced by the plugin was updated. ([#124958](https://github.com/kubernetes/kubernetes/pull/124958), [@bells17](https://github.com/bells17)) [SIG Scheduling and Storage] +- The name of CEL(Common Expression Language) optional type has been changed from `optional` to `optional_type`. ([#124328](https://github.com/kubernetes/kubernetes/pull/124328), [@jiahuif](https://github.com/jiahuif)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Network and Node] +- The scheduler implemented QueueingHint in the TaintToleration plugin, enhancing the throughput of scheduling. ([#124287](https://github.com/kubernetes/kubernetes/pull/124287), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] +- The scheduler implements QueueingHint in VolumeBinding plugin's CSINode event, which enhances the throughput of scheduling. ([#125097](https://github.com/kubernetes/kubernetes/pull/125097), [@YamasouA](https://github.com/YamasouA)) [SIG Scheduling and Storage] +- The sidecars' finish time will now be accounted for when calculating the job's finish time. ([#124942](https://github.com/kubernetes/kubernetes/pull/124942), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps] +- This PR added tracing support to the kubelet's read-only endpoint, which currently + does not have tracing. It makes use of the `WithPublicEndpoint` option to prevent callers + from influencing sampling decisions. ([#121770](https://github.com/kubernetes/kubernetes/pull/121770), [@frzifus](https://github.com/frzifus)) [SIG Node] +- Updated kubernetes to build with Go 1.23rc2. ([#126047](https://github.com/kubernetes/kubernetes/pull/126047), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- Updated the CEL default compatibility environment version to 1.30, ensuring that extended libraries added before version 1.30 are available for use. ([#124779](https://github.com/kubernetes/kubernetes/pull/124779), [@cici37](https://github.com/cici37)) +- Users can traverse all the pods that are in the scheduler and waiting in the permit stage through method `IterateOverWaitingPods`. In other words, all waitingPods in scheduler can be obtained from any profiles. Before this commit, each profile could only obtain waitingPods within that profile. ([#124926](https://github.com/kubernetes/kubernetes/pull/124926), [@kerthcet](https://github.com/kerthcet)) [SIG Scheduling] +- Windows Kubeproxy will use the update load balancer API for load balancer updates, instead of the previous delete and create APIs. + - Deletion of remote endpoints will be triggered only for terminated endpoints (those present in the old endpoints map but not in the new endpoints map), whereas previously it was also done for terminating endpoints. ([#124092](https://github.com/kubernetes/kubernetes/pull/124092), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows] +- `--custom` flag in `kubectl debug` will be enabled by default and yaml support is added. ([#125333](https://github.com/kubernetes/kubernetes/pull/125333), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] +- `ElasticIndexedJob` is graduated to GA. ([#125751](https://github.com/kubernetes/kubernetes/pull/125751), [@ahg-g](https://github.com/ahg-g)) [SIG Apps and Testing] +- `pause`: Added a `-v` flag to the Windows variant of the pause binary, which + prints the version of pause and exits. The Linux pause binary already has this flag. ([#125067](https://github.com/kubernetes/kubernetes/pull/125067), [@neolit123](https://github.com/neolit123)) + +### Failing Test + +- Fixed bug in kubelet if the `SplitImageFilesystem` feature gate is turned on but the container runtime is not configured. ([#126335](https://github.com/kubernetes/kubernetes/pull/126335), [@kannon92](https://github.com/kannon92)) +- Fixed issue where following Windows container logs would prevent container log rotation. ([#124444](https://github.com/kubernetes/kubernetes/pull/124444), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Testing and Windows] +- Introduced `Wait(context.Context) error` method in pkg k8s.io/apiserver/pkg/storage/cacher to improve watch cache initialization resilience. ([#125450](https://github.com/kubernetes/kubernetes/pull/125450), [@mauri870](https://github.com/mauri870)) +- Reverted remove legacycloudproviders from staging. ([#124864](https://github.com/kubernetes/kubernetes/pull/124864), [@carlory](https://github.com/carlory)) + +### Bug or Regression + +- Fixed the ResourceClaim controller forgetting to wait for `podSchedulingSynced` + and `templatesSynced`. ([#124589](https://github.com/kubernetes/kubernetes/pull/124589), [@carlory](https://github.com/carlory)) [SIG Apps and Node] +- kubeadm: Stopped storing the ResolverConfig in the global KubeletConfiguration + and sets it dynamically for each node instead. ([#124038](https://github.com/kubernetes/kubernetes/pull/124038), [@SataQiu](https://github.com/SataQiu)) +- kubeadm: fixed a regression where the KubeletConfiguration is not properly + downloaded during "kubeadm upgrade" command from the kube-system/kubelet-config + ConfigMap, resulting in the local ''/var/lib/kubelet/config.yaml'' file being + written as a defaulted config. ([#124480](https://github.com/kubernetes/kubernetes/pull/124480), [@neolit123](https://github.com/neolit123)) +- .status.terminating field now gets tracked faster when active Pods are deleted, specifically when Job is failed, gets suspended or has too many active pods. ([#125175](https://github.com/kubernetes/kubernetes/pull/125175), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing] +- Added `/sys/devices/virtual/powercap` to default masked paths. It avoids the potential security risk that the ability to read these files may offer a power-based sidechannel attack against any workloads running on the same kernel. ([#125970](https://github.com/kubernetes/kubernetes/pull/125970), [@carlory](https://github.com/carlory)) +- Added an extra line between two different key value pairs under data when running `kubectl describe configmap`. ([#123597](https://github.com/kubernetes/kubernetes/pull/123597), [@siddhantvirus](https://github.com/siddhantvirus)) +- Added kubectl support for: + - kubectl create secret docker-registry <NAME> --from-file=<path/to/.docker/config.json> + - kubectl create secret docker-registry <NAME> --from-file=.dockerconfigjson=<path/to/.docker/config.json> ([#119589](https://github.com/kubernetes/kubernetes/pull/119589), [@carlory](https://github.com/carlory)) +- Added metrics for the nftables kube-proxy mode rather than it reporting + metrics with "iptables" in their names. ([#124557](https://github.com/kubernetes/kubernetes/pull/124557), [@danwinship](https://github.com/danwinship)) [SIG Network and Windows] +- Allowed calling Stop multiple times on RetryWatcher without panicking. ([#126125](https://github.com/kubernetes/kubernetes/pull/126125), [@mprahl](https://github.com/mprahl)) +- Allowed parameter to be set along with proto file path. ([#124281](https://github.com/kubernetes/kubernetes/pull/124281), [@fulviodenza](https://github.com/fulviodenza)) +- CEL (Common Expression Language): converting a quantity value into a quantity value failed. ([#123669](https://github.com/kubernetes/kubernetes/pull/123669), [@pohly](https://github.com/pohly)) +- Client-go/tools/record.Broadcaster: Fixed automatic shutdown on WithContext cancellation. ([#124635](https://github.com/kubernetes/kubernetes/pull/124635), [@pohly](https://github.com/pohly)) +- Do not remove the "batch.kubernetes.io/job-tracking" finalizer from a Pod, in a corner + case scenario, when the Pod is controlled by an API object which is not a batch Job + (e.g. when the Pod is controlled by a custom CRD). ([#124798](https://github.com/kubernetes/kubernetes/pull/124798), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing] +- Dropped the additional rule requirement (cronjobs/finalizers) for roles + using kubectl create cronjobs to ensure backward compatibility. ([#124883](https://github.com/kubernetes/kubernetes/pull/124883), [@ardaguclu](https://github.com/ardaguclu)) +- Dynamic Resource Allocation (DRA): using structured parameters with a claim that gets reused between pods may have led to a claim with an invalid state (allocated without a finalizer) which then caused scheduling of pods using the claim to stop. ([#124931](https://github.com/kubernetes/kubernetes/pull/124931), [@pohly](https://github.com/pohly)) [SIG Node and Scheduling] +- Dynamic Resource Allocator (DRA): Enhanced validation for the ResourceClaimParametersReference and ResourceClassParametersReference with the following rules: + + 1. `apiGroup`: If set, it must be a valid DNS subdomain (e.g. 'example.com'). + 2. `kind` and `name`: It must be valid path segment name. It may not be '.' or '..' and it may not contain '/' and '%' characters. ([#125218](https://github.com/kubernetes/kubernetes/pull/125218), [@carlory](https://github.com/carlory)) +- Enabled kubectl to find `kubectl-create-subcommand` plugins when positional + arguments exists, e.g. `kubectl create subcommand arg`. ([#124123](https://github.com/kubernetes/kubernetes/pull/124123), [@sttts](https://github.com/sttts)) +- Ensured daemonset controller counts old unhealthy pods towards max unavailable budget. ([#123233](https://github.com/kubernetes/kubernetes/pull/123233), [@marshallbrekka](https://github.com/marshallbrekka)) +- Fixed a bug that when PodTopologySpread rejects Pods, they may be stuck in Pending state for 5 min in a worst case scenario. + The same problem could happen with custom plugins which have Pod/Add or Pod/Update in EventsToRegister, + which is also solved with this PR, but only when the feature flag SchedulerQueueingHints is enabled. ([#122627](https://github.com/kubernetes/kubernetes/pull/122627), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] +- Fixed bug where Server Side Apply causing spurious resourceVersion bumps on no-op patches containing empty maps. ([#125317](https://github.com/kubernetes/kubernetes/pull/125317), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing] +- Fixed endpoints status out-of-sync when the pod state changes rapidly ([#125675](https://github.com/kubernetes/kubernetes/pull/125675), [@tnqn](https://github.com/tnqn)) [SIG Apps, Network and Testing] +- Fixed the bug where PodIP field is temporarily removed for a terminal pod ([#125404](https://github.com/kubernetes/kubernetes/pull/125404), [@mimowo](https://github.com/mimowo)) [SIG Node and Testing] +- Fixed "-kube-test-repo-list" e2e flag may not take effect. ([#123587](https://github.com/kubernetes/kubernetes/pull/123587), [@huww98](https://github.com/huww98)) [SIG API Machinery, Apps, Autoscaling, CLI, Network, Node, Scheduling, Storage, Testing and Windows] +- Fixed EDITOR/KUBE_EDITOR with double-quoted paths with spaces when on Windows cmd.exe. ([#112104](https://github.com/kubernetes/kubernetes/pull/112104), [@oldium](https://github.com/oldium)) [SIG CLI and Windows] +- Fixed a bug in storage-version-migrator-controller that would cause migration attempts to fail if resources were deleted when the migration was in progress. ([#126107](https://github.com/kubernetes/kubernetes/pull/126107), [@enj](https://github.com/enj)) [SIG API Machinery, Apps, Auth and Testing] +- Fixed a bug in the JSON frame reader that could cause it to retain a reference to the underlying array of the byte slice passed to read. ([#123620](https://github.com/kubernetes/kubernetes/pull/123620), [@benluddy](https://github.com/benluddy)) +- Fixed a bug in the scheduler where it would crash when prefilter returns a non-existent node. ([#124933](https://github.com/kubernetes/kubernetes/pull/124933), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Testing] +- Fixed a bug where Pods could be stuck in the unschedulable pod pool + if they're rejected by PreEnqueue plugins that could change its result by a change in resources apart from Pods. + + DRA plugin is the only plugin that meets the criteria of the bug in in-tree, + and hence if you have `DynamicResourceAllocation` feature flag enabled, + your DRA Pods could be affected by this bug. ([#125527](https://github.com/kubernetes/kubernetes/pull/125527), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] +- Fixed a bug that init containers with `Always` restartPolicy may not terminate gracefully if the pod hasn't initialized yet. ([#125935](https://github.com/kubernetes/kubernetes/pull/125935), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing] +- Fixed a bug where `kubectl describe` incorrectly displayed NetworkPolicy port ranges + (showing only the starting port). ([#123316](https://github.com/kubernetes/kubernetes/pull/123316), [@jcaamano](https://github.com/jcaamano)) +- Fixed a bug where hard evictions due to resource pressure allowed pods + to use the full termination grace period instead of shutting down instantly. + This bug also affected force deleted pods. Both cases now receive a termination grace period of 1 second. ([#124063](https://github.com/kubernetes/kubernetes/pull/124063), [@olyazavr](https://github.com/olyazavr)) +- Fixed a bug where the Kubelet miscalculated the process usage of pods, causing pods to never get evicted for PID usage. ([#124101](https://github.com/kubernetes/kubernetes/pull/124101), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing] +- Fixed a missing status prefix in custom resource validation error messages. ([#123822](https://github.com/kubernetes/kubernetes/pull/123822), [@JoelSpeed](https://github.com/JoelSpeed)) +- Fixed a race condition in kube-controller-manager and the scheduler, caused by + a bug in the transforming informer during the Resync operation, + by making the transforming function idempotent. ([#124352](https://github.com/kubernetes/kubernetes/pull/124352), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Scheduling] +- Fixed a race condition in the transforming informer that occurred when objects were accessed during the Resync operation. ([#124344](https://github.com/kubernetes/kubernetes/pull/124344), [@wojtek-t](https://github.com/wojtek-t)) +- Fixed a regression where `kubelet --hostname-override` no longer worked + correctly with an external cloud provider. ([#124516](https://github.com/kubernetes/kubernetes/pull/124516), [@danwinship](https://github.com/danwinship)) +- Fixed an issue that prevents the linking of trace spans for requests that are proxied through kube-aggregator. ([#124189](https://github.com/kubernetes/kubernetes/pull/124189), [@toddtreece](https://github.com/toddtreece)) +- Fixed an issue where kubelet on Windows would fail if a pod had a SecurityContext with `RunAsUser`. ([#125040](https://github.com/kubernetes/kubernetes/pull/125040), [@carlory](https://github.com/carlory)) [SIG Storage, Testing and Windows] +- Fixed an issue where the Service LoadBalancer controller was not correctly considering the `service.Status new IPMode` field and excluding the Ports when checking if the status was changed, resulting in the changed field potentially not to update the `service.Status` correctly. ([#125225](https://github.com/kubernetes/kubernetes/pull/125225), [@aojea](https://github.com/aojea)) [SIG Apps, Cloud Provider and Network] +- Fixed bug where Server Side Apply causes spurious resourceVersion bumps on no-op patches to custom resources. ([#125263](https://github.com/kubernetes/kubernetes/pull/125263), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing] +- Fixed bug where kubectl get with --sort-by flag does not sort strings alphanumerically. ([#124514](https://github.com/kubernetes/kubernetes/pull/124514), [@brianpursley](https://github.com/brianpursley)) +- Fixed fake clientset ApplyScale subresource from `status` to `scale`. ([#126073](https://github.com/kubernetes/kubernetes/pull/126073), [@a7i](https://github.com/a7i)) +- Fixed kubectl wait --for=jsonpath lowercasing in the condition part of the argument. ([#126638](https://github.com/kubernetes/kubernetes/pull/126638)), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] +- Fixed kubelet so it would no longer crash when a DRA(Dynamic Resource Allocation) driver returns a nil as part of the Node(Un)PrepareResources response instead of an empty struct (Did not affect drivers written in Go, first showed up with a driver written in Rust). ([#124091](https://github.com/kubernetes/kubernetes/pull/124091), [@bitoku](https://github.com/bitoku)) +- Fixed node reporting "notReady" with the reason 'container runtime status check may not have completed yet' after kubelet restart. ([#124430](https://github.com/kubernetes/kubernetes/pull/124430), [@AllenXu93](https://github.com/AllenXu93)) +- Fixed null `lastTransitionTime` in Pod condition when setting the scheduling gate. ([#122636](https://github.com/kubernetes/kubernetes/pull/122636), [@lianghao208](https://github.com/lianghao208)) [SIG Node and Scheduling] +- Fixed recursive LIST from watch cache returning object matching key. ([#125584](https://github.com/kubernetes/kubernetes/pull/125584), [@serathius](https://github.com/serathius)) [SIG API Machinery and Testing] +- Fixed sample-cli-plugin help text to be consistent and always use `kubectl ns`. ([#125641](https://github.com/kubernetes/kubernetes/pull/125641), [@nirs](https://github.com/nirs)) +- Fixed the bug where if Endpointslices mirrored from Endpoints by the EndpointSliceMirroring controller they would not reconcile if modified. were not reconciled if modified ([#124131](https://github.com/kubernetes/kubernetes/pull/124131), [@zyjhtangtang](https://github.com/zyjhtangtang)) [SIG Apps and Network] +- Fixed the format of the error indicating that a user does not have permission on the object referenced by paramRef in ValidatingAdmissionPolicyBinding. ([#124653](https://github.com/kubernetes/kubernetes/pull/124653), [@m1kola](https://github.com/m1kola)) +- Fixed throughput when scheduling DaemonSet pods to reach 300 pods/s, if the configured QPS allows it. ([#124714](https://github.com/kubernetes/kubernetes/pull/124714), [@sanposhiho](https://github.com/sanposhiho)) +- Fixed: during the kube-controller-manager restart, when the corresponding Endpoints resource was manually deleted and recreated, causing the endpointslice to fail to be created normally. ([#125359](https://github.com/kubernetes/kubernetes/pull/125359), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG Apps and Network] +- For statically provisioned PVs, if its volume source is CSI type, or it has migrated annotation, when it's deleted, the PersisentVolume controller won't change its phase to the Failed state. + With this patch, the external provisioner can remove the finalizer in next reconcile loop. Unfortunately if the previous existing PV has the Failed state, this patch won't take effort. It requires users to remove finalizer. ([#125767](https://github.com/kubernetes/kubernetes/pull/125767), [@carlory](https://github.com/carlory)) [SIG Apps and Storage] +- Improved scheduling latency when there are many gated pods and events that trigger requeueing from the unschedulable pool. ([#124618](https://github.com/kubernetes/kubernetes/pull/124618), [@gabesaba](https://github.com/gabesaba)) [SIG Scheduling and Testing] +- Kube-apiserver: fixed a 1.27+ regression watching a single namespace via the deprecated /api/v1/watch/namespaces/$name endpoint where watch events were not delivered after the watch was established. ([#125145](https://github.com/kubernetes/kubernetes/pull/125145), [@xyz-li](https://github.com/xyz-li)) [SIG API Machinery, Node and Testing] +- Kube-apiserver: fixed a 1.28 regression printing pods with invalid initContainer status. ([#124906](https://github.com/kubernetes/kubernetes/pull/124906), [@liggitt](https://github.com/liggitt)) +- Kube-apiserver: fixed a potential crash serving CustomResourceDefinitions that combine an invalid schema and CEL validation rules. ([#126167](https://github.com/kubernetes/kubernetes/pull/126167), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing] +- Kube-apiserver: timeouts configured for authorization webhooks in the --authorization-config file are now honored, and webhook timeouts are accurately reflected in webhook metrics with result=timeout ([#125552](https://github.com/kubernetes/kubernetes/pull/125552), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing] +- Kubeadm: Added `--yes` flag to the list of allowed flags so that it can be mixed with `kubeadm upgrade apply --config`. ([#125566](https://github.com/kubernetes/kubernetes/pull/125566), [@xmudrii](https://github.com/xmudrii)) +- Kubeadm: Added support during the preflight check "CreateJob" of "kubeadm upgrade" to check if there are no nodes where a Pod can be scheduled. If there are none, show a warning and skip this preflight check. This can happen in single node clusters where the only node was drained. ([#124503](https://github.com/kubernetes/kubernetes/pull/124503), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Fixed a bug where the PublicKeysECDSA feature gate was not respected when generating kubeconfig files. ([#125388](https://github.com/kubernetes/kubernetes/pull/125388), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Fixed a regression where the JoinConfiguration.discovery.timeout was no longer respected and the value was always hardcoded to "5m" (5 minutes). ([#125480](https://github.com/kubernetes/kubernetes/pull/125480), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Removed support for mounting /etc/pki as an additional Linux system CA location + in kube-apisever and kube-controller-manager pods. Instead, it shifted to supporting the + mounting of /etc/pki/ca-trust and /etc/pki/tls/certs. The locations /etc/ca-certificate, + /usr/share/ca-certificates, /usr/local/share/ca-certificates, and /etc/ssl/certs continued + to be supported. ([#124361](https://github.com/kubernetes/kubernetes/pull/124361), [@neolit123](https://github.com/neolit123)) +- Kubeadm: The healthz address:port configured in the KubeletConfiguration was used during kubelet health checks, instead of hardcoding localhost:10248. ([#125265](https://github.com/kubernetes/kubernetes/pull/125265), [@neolit123](https://github.com/neolit123)) +- Kubeadm: during the validation of existing kubeconfig files on disk, handle cases where the "ca.crt" is a bundle and has intermediate certificates. Find a common trust anchor between the "ca.crt" bundle and the CA in the existing kubeconfig on disk instead of treating "ca.crt" as a file containing a single CA. ([#123102](https://github.com/kubernetes/kubernetes/pull/123102), [@astundzia](https://github.com/astundzia)) +- Kubeadm: fixed a bug on 'kubeadm join' where using patches with a kubeletconfiguration target was not respected when performing the local kubelet healthz check. ([#126224](https://github.com/kubernetes/kubernetes/pull/126224), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- Kubeadm: fixed a bug where the path of the manifest can not be specified when `kubeadm upgrade diff` specified a config file, and the `--api-server-manifest`, `--controller-manager-manifest` and `--scheduler-manifest` flags of `kubeadm upgrade diff` are marked as deprecated and will be removed in a future release. ([#125779](https://github.com/kubernetes/kubernetes/pull/125779), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: the `--feature-gates` flag is deprecated and no-op for `kubeadm upgrade apply/plan`, and it will be removed in a future release. The upgrade workflow is not designed to reconfigure the cluster. Please edit the 'featureGates' field of ClusterConfiguration which is defined in the kube-system/kubeadm-config ConfigMap instead. ([#125797](https://github.com/kubernetes/kubernetes/pull/125797), [@SataQiu](https://github.com/SataQiu)) +- Kubectl: Show the Pod phase in the STATUS column as 'Failed' or 'Succeeded' when the Pod is terminated ([#122038](https://github.com/kubernetes/kubernetes/pull/122038), [@lowang-bh](https://github.com/lowang-bh)) +- Kubelet now hard rejects pods with AppArmor if the node does not have AppArmor. ([#125776](https://github.com/kubernetes/kubernetes/pull/125776), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) +- Mount-utils: treated syscall.ENODEV as corrupted mount. ([#126174](https://github.com/kubernetes/kubernetes/pull/126174), [@dobsonj](https://github.com/dobsonj)) +- Now the .status.ready field is tracked faster when active Pods are deleted, specifically when Job is failed, gets suspended or has too many active pods. ([#125546](https://github.com/kubernetes/kubernetes/pull/125546), [@dejanzele](https://github.com/dejanzele)) +- Removed admission plugin `PersistentVolumeLabel`. Please use https://github.com/kubernetes-sigs/cloud-pv-admission-labeler instead if you need a similar functionality. ([#124505](https://github.com/kubernetes/kubernetes/pull/124505), [@jsafrane](https://github.com/jsafrane)) [SIG API Machinery, Auth and Storage] +- Reverted "Graduated the `WatchList` feature gate to beta for kube-apiserver and enables `WatchListClient` for kube-controller-manager (KCM)". ([#126191](https://github.com/kubernetes/kubernetes/pull/126191), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] +- Set ProcMountType feature to disabled by default, to follow the lead of UserNamespacesSupport (which it relies on). ([#126291](https://github.com/kubernetes/kubernetes/pull/126291), [@haircommander](https://github.com/haircommander)) [SIG Node] +- StatefulSet autodelete respected controlling owners on PVC claims as described in https://github.com/kubernetes/enhancements/pull/4375. ([#122499](https://github.com/kubernetes/kubernetes/pull/122499), [@mattcary](https://github.com/mattcary)) [SIG Apps and Testing] +- Stopped using wmic on Windows to get uuid in the kubelet. ([#126012](https://github.com/kubernetes/kubernetes/pull/126012), [@marosset](https://github.com/marosset)) [SIG Node and Windows] +- The "fake" clients generated by `client-gen` now have the same semantics on + error as the real clients; in particular, a failed Get(), Create(), etc, no longer + returns `nil`. (It now returns a pointer to a zero-valued object, like the real + clients do.) This will break some downstream unit tests that were testing + `result == nil` rather than `err != nil`, and in some cases may expose bugs + in the underlying code that were hidden by the incorrect unit tests. ([#122892](https://github.com/kubernetes/kubernetes/pull/122892), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Auth, Cloud Provider, Instrumentation and Storage] +- The emission of RecreatingFailedPod and RecreatingTerminatedPod events has been + removed from the StatefulSet lifecycle. ([#123809](https://github.com/kubernetes/kubernetes/pull/123809), [@atiratree](https://github.com/atiratree)) [SIG Apps and Testing] +- The scheduler retries scheduling Pods rejected by PreFilterResult (PreFilter plugins) more appropriately; it now takes events registered in those rejector PreFilter plugins into consideration. ([#122251](https://github.com/kubernetes/kubernetes/pull/122251), [@olderTaoist](https://github.com/olderTaoist)) [SIG Scheduling and Testing] +- Updated description of default values for `--healthz-bind-address` and `--metrics-bind-address` parameters. ([#123545](https://github.com/kubernetes/kubernetes/pull/123545), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) +- When schedulingQueueHint is enabled, the scheduling queue doesn't update Pods being scheduled immediately. ([#125578](https://github.com/kubernetes/kubernetes/pull/125578), [@nayihz](https://github.com/nayihz)) +- `Job`: Fixed a bug where `SuccessCriteriaMet` could be added to the Job with + `successPolicy` regardless of the `featureGate` being enabled. ([#125429](https://github.com/kubernetes/kubernetes/pull/125429), [@tenzen-y](https://github.com/tenzen-y)) +- `kubeadm`: Allowed the `kubeadm init phase certs sa` command to accept the `--config` flag. ([#125396](https://github.com/kubernetes/kubernetes/pull/125396), [@Kavinraja-G](https://github.com/Kavinraja-G)) +- `kubeadm`: Improved the `IsPrivilegedUser` preflight check to not fail on certain Windows setups. ([#124665](https://github.com/kubernetes/kubernetes/pull/124665), [@neolit123](https://github.com/neolit123)) +- `lastSuccessfullTime` in cronjobs will now be set reliably. ([#122025](https://github.com/kubernetes/kubernetes/pull/122025), [@lukashankeln](https://github.com/lukashankeln)) + +### Other (Cleanup or Flake) + +- Removed the ability to run `kubectl exec [POD] [COMMAND]` without a `--` separator. + The `--` separator has been recommended since the Kubernetes v1.18 release, which also deprecated the legacy way of invoking `kubectl exec`. + + This change aligns with the deprecation of legacy `kubectl exec` command execution and enforces the use of `kubectl exec [POD] -- [COMMAND]` for improved compatibility and adherence to recommended practices. + ([#125437](https://github.com/kubernetes/kubernetes/pull/125437), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] +- "`kubectl describe service`" and "`kubectl describe ingress`" will now use endpointslices instead of endpoints. + ([#124598](https://github.com/kubernetes/kubernetes/pull/124598), [@aroradaman](https://github.com/aroradaman)) [SIG CLI and Network] +- ACTION-REQUIRED: Dynamic Resource Allocation (DRA) drivers using the v1alpha2 kubelet gRPC API are no longer supported and need to be updated. ([#124316](https://github.com/kubernetes/kubernetes/pull/124316), [@pohly](https://github.com/pohly)) [SIG Node and Testing] +- API Priority and Fairness feature was promoted to GA in 1.29, the corresponding + feature gate 'APIPriorityAndFairness' has been removed in 1.31. ([#125846](https://github.com/kubernetes/kubernetes/pull/125846), [@tkashem](https://github.com/tkashem)) [SIG API Machinery] +- Added a testcase to check hostname and hostNetwork. ([#124428](https://github.com/kubernetes/kubernetes/pull/124428), [@yashsingh74](https://github.com/yashsingh74)) [SIG Architecture, Network and Testing] +- Built etcd image v3.5.13. ([#124026](https://github.com/kubernetes/kubernetes/pull/124026), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG API Machinery and Etcd] +- Built etcd image v3.5.14. ([#125235](https://github.com/kubernetes/kubernetes/pull/125235), [@humblec](https://github.com/humblec)) +- Cleaned deprecated `context.StopCh` in favor of ctx. ([#125661](https://github.com/kubernetes/kubernetes/pull/125661), [@mjudeikis](https://github.com/mjudeikis)) +- Container Storage Interface (CSI) spec support has been lifted to v1.9.0 in this release. ([#125150](https://github.com/kubernetes/kubernetes/pull/125150), [@humblec](https://github.com/humblec)) [SIG Storage and Testing] +- Drop support for the deprecated and unsupported kubectl run flags: + - filename + - force + - grace-period + - kustomize + - recursive + - timeout + - wait + + Drop support for the deprecated --delete-local-data from kubectl drain, users should use --delete-emptydir-data, instead. ([#125842](https://github.com/kubernetes/kubernetes/pull/125842), [@soltysh](https://github.com/soltysh)) [SIG CLI] +- Dynamic Resource Allocation (DRA): fixed some small, unlikely race condition during pod scheduling. ([#124595](https://github.com/kubernetes/kubernetes/pull/124595), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing] +- E2e.test and e2e_node.test: tests which depend on alpha or beta feature gates now have `Feature:Alpha` or `Feature:Beta` as Ginkgo labels. The inline text is `[Alpha]` or `[Beta]`, as before. ([#124350](https://github.com/kubernetes/kubernetes/pull/124350), [@pohly](https://github.com/pohly)) +- Ensured that the Node Admission plugin to reject CSR requests created by a node identity for the signers `kubernetes.io/kubelet-serving` or `kubernetes.io/kube-apiserver-client-kubelet` with a CN starting with `system:node:`, but where the CN is not `system:node:${node-name}`. The feature gate `AllowInsecureKubeletCertificateSigningRequests` defaults to `false`, but can be enabled to revert to the previous behavior. This feature gate will be removed in Kubernetes v1.33. ([#126441](https://github.com/kubernetes/kubernetes/pull/126441), [@micahhausler](https://github.com/micahhausler)) +- Etcd: Updated to v3.5.13. ([#124027](https://github.com/kubernetes/kubernetes/pull/124027), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing] +- Exposed the `apiserver_watch_cache_resource_version` metric to simplify debugging problems with watchcache. ([#125377](https://github.com/kubernetes/kubernetes/pull/125377), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Instrumentation] +- Exposed the kube-scheduler "/livez" and "/readz" endpoints for health checks that are in compliance with https://kubernetes.io/docs/reference/using-api/health-checks/#api-endpoints-for-health. ([#118148](https://github.com/kubernetes/kubernetes/pull/118148), [@linxiulei](https://github.com/linxiulei)) [SIG API Machinery, Scheduling and Testing] +- Finished initial generic controlplane refactor of kube-apiserver, providing a sample binary building a Kubernetes-like control plane, but without container orchestration resources. ([#124530](https://github.com/kubernetes/kubernetes/pull/124530), [@sttts](https://github.com/sttts)) [SIG API Machinery, Apps, Cloud Provider, Network, Node and Testing] +- Fixed a typo in the help text for the pod_scheduling_sli_duration_seconds metric in kube-scheduler. ([#124221](https://github.com/kubernetes/kubernetes/pull/124221), [@arturhoo](https://github.com/arturhoo)) [SIG Instrumentation, Scheduling and Testing] +- Improved the documentation clarity for building Kubernetes in Docker Environment, making it more understandable for new users and contributors. ([#125536](https://github.com/kubernetes/kubernetes/pull/125536), [@this-is-yaash](https://github.com/this-is-yaash)) +- Job-controller: the `JobReadyPods` feature flag has been removed (deprecated since v1.31). ([#125168](https://github.com/kubernetes/kubernetes/pull/125168), [@kaisoz](https://github.com/kaisoz)) +- Kube-apiserver: the `--enable-logs-handler` flag and log-serving functionality which was already deprecated is now switched off by default and scheduled to be removed in v1.33. ([#125787](https://github.com/kubernetes/kubernetes/pull/125787), [@dims](https://github.com/dims)) [SIG API Machinery, Network and Testing] +- Kubeadm: Removed the deprecated `UpgradeAddonsBeforeControlPlane` feature gate; Ensured that the upgrade of the CoreDNS and kube-proxy addons would not be triggered until all the control plane instances were upgraded. ([#124715](https://github.com/kubernetes/kubernetes/pull/124715), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: Strictly enabled only the supported klog flags, disallowing previously available but unrecommended options. This means that hidden flags about klog (including `--alsologtostderr`, `--log-backtrace-at`, `--log-dir`, `--logtostderr`, `--log-file`, `--log-file-max-size`, `--one-output`, `--skip-log-headers`, `--stderrthreshold` and `--vmodule`) are no longer allowed to be used. ([#125179](https://github.com/kubernetes/kubernetes/pull/125179), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: The global --rootfs flag considered non-experimental. ([#124375](https://github.com/kubernetes/kubernetes/pull/124375), [@neolit123](https://github.com/neolit123)) +- Kubeadm: improved the warning/error messages of `validateSupportedVersion` to include the checked resource kind name. ([#125758](https://github.com/kubernetes/kubernetes/pull/125758), [@SataQiu](https://github.com/SataQiu)) +- Kubeadm: removed the EXPERIMENTAL tag from the phase "kubeadm join control-plane-prepare download-certs". ([#124374](https://github.com/kubernetes/kubernetes/pull/124374), [@neolit123](https://github.com/neolit123)) +- Kubeadm: removed the deprecated `output.kubeadm.k8s.io/v1alpha2` API for structured output. Please use v1alpha3 instead. ([#124496](https://github.com/kubernetes/kubernetes/pull/124496), [@carlory](https://github.com/carlory)) +- Kubeadm: removed the deprecated and NO-OP "kubeadm join control-plane-join update-status" phase. ([#124373](https://github.com/kubernetes/kubernetes/pull/124373), [@neolit123](https://github.com/neolit123)) +- Kubelet is no longer able to recover from device manager state file older than 1.20. If the proper recommended upgrade flow is followed, there should be no issue. ([#123398](https://github.com/kubernetes/kubernetes/pull/123398), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] +- Migrated the pkg/proxy to use [contextual logging](https://k8s.io/docs/concepts/cluster-administration/system-logs/#contextual-logging). ([#122979](https://github.com/kubernetes/kubernetes/pull/122979), [@fatsheep9146](https://github.com/fatsheep9146)) [SIG Network and Scalability] +- Moved remote CRI implementation from kubelet to `k8s.io/cri-client` repository. ([#124634](https://github.com/kubernetes/kubernetes/pull/124634), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node, Release and Testing] +- Optimized log output to avoid printing out redundant information of the pod. ([#124055](https://github.com/kubernetes/kubernetes/pull/124055), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) +- Removed GA ServiceNodePortStaticSubrange feature gate. ([#124738](https://github.com/kubernetes/kubernetes/pull/124738), [@xuzhenglun](https://github.com/xuzhenglun)) +- Removed Kubelet flags `--iptables-masquerade-bit` and `--iptables-drop-bit` as they were deprecated in v1.28. in v1.28 and have now been removed entirely. ([#122363](https://github.com/kubernetes/kubernetes/pull/122363), [@carlory](https://github.com/carlory)) [SIG Network and Node] +- Removed `ENABLE_CLIENT_GO_WATCH_LIST_ALPHA` environment variable from the reflector. + To activate the feature set `KUBE_FEATURE_WatchListClient` environment variable or a corresponding command line option (this works only with binaries that explicitly expose it). ([#122791](https://github.com/kubernetes/kubernetes/pull/122791), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] +- Removed generally available feature gate `CSINodeExpandSecret`. ([#124462](https://github.com/kubernetes/kubernetes/pull/124462), [@carlory](https://github.com/carlory)) +- Removed generally available feature gate `ConsistentHTTPGetHandlers`. ([#124463](https://github.com/kubernetes/kubernetes/pull/124463), [@carlory](https://github.com/carlory)) +- Removed generally available feature gate `ReadWriteOncePod`. ([#124329](https://github.com/kubernetes/kubernetes/pull/124329), [@chrishenzie](https://github.com/chrishenzie)) +- ACTION REQUIRED. Removed the following feature gates: + - `InTreePluginAWSUnregister` + - `InTreePluginAzureDiskUnregister` + - `InTreePluginAzureFileUnregister` + - `InTreePluginGCEUnregister` + - `InTreePluginOpenStackUnregister` + - `InTreePluginvSphereUnregister` ([#124815](https://github.com/kubernetes/kubernetes/pull/124815), [@carlory](https://github.com/carlory)) [SIG Storage] +- Removed the last remaining in-tree gcp cloud provider and credential provider. + Please use the external cloud provider and credential provider from https://github.com/kubernetes/cloud-provider-gcp + instead. ([#124519](https://github.com/kubernetes/kubernetes/pull/124519), [@dims](https://github.com/dims)) [SIG API Machinery, Apps, Auth, Autoscaling, Cloud Provider, Instrumentation, Network, Node, Scheduling, Storage and Testing] +- Scheduler framework: Allowed PreBind implementations to return Pending and Unschedulable status codes. ([#125360](https://github.com/kubernetes/kubernetes/pull/125360), [@pohly](https://github.com/pohly)) +- Set `LocalStorageCapacityIsolationFSQuotaMonitoring` to false by default, to match `UserNamespacesSupport` (which the feature relies on). ([#126355](https://github.com/kubernetes/kubernetes/pull/126355), [@haircommander](https://github.com/haircommander)) +- The ValidatingAdmissionPolicy metrics have been redone to count and time all validations, including failures and admissions. ([#126124](https://github.com/kubernetes/kubernetes/pull/126124), [@cici37](https://github.com/cici37)) [SIG API Machinery and Instrumentation] +- The feature gate "DefaultHostNetworkHostPortsInPodTemplates" has been removed. This behavior was deprecated in v1.28, and has had no reports of issues since. ([#124417](https://github.com/kubernetes/kubernetes/pull/124417), [@thockin](https://github.com/thockin)) +- The feature gate "SkipReadOnlyValidationGCE" has been removed. This gate has been active for 2 releases with no reports of issues (and was such a niche thing, we didn't expect any). ([#124210](https://github.com/kubernetes/kubernetes/pull/124210), [@thockin](https://github.com/thockin)) +- Updated CNI Plugins to v1.5.0. ([#125113](https://github.com/kubernetes/kubernetes/pull/125113), [@bzsuni](https://github.com/bzsuni)) [SIG Cloud Provider, Network, Node and Testing] +- Updated cni-plugins to v1.4.1. ([#123894](https://github.com/kubernetes/kubernetes/pull/123894), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing] +- Updated cri-tools to v1.30.0. ([#124364](https://github.com/kubernetes/kubernetes/pull/124364), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Release] +- Updated kubernetes to build with Go 1.22.5. ([#126330](https://github.com/kubernetes/kubernetes/pull/126330), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG Release and Testing] +- `kubeadm`: The `NodeSwap` check that kubeadm performs during preflight, has a new warning to verify if swap has been configured correctly. ([#125157](https://github.com/kubernetes/kubernetes/pull/125157), [@carlory](https://github.com/carlory)) - `kubectl describe service` now shows internal traffic policy and ip mode of load balancer IP. ([#125117](https://github.com/kubernetes/kubernetes/pull/125117), [@tnqn](https://github.com/tnqn)) [SIG CLI and Network] \ No newline at end of file diff --git a/releases/release-1.31/release-notes/sessions/maps-1718353375.json b/releases/release-1.31/release-notes/sessions/maps-1718353375.json index a004fc8dbb4..6bc40e6eb91 100644 --- a/releases/release-1.31/release-notes/sessions/maps-1718353375.json +++ b/releases/release-1.31/release-notes/sessions/maps-1718353375.json @@ -1,635 +1,635 @@ -{ - "mail": "amit@odysseycloud.io", - "name": "Amit Dsouza", - "date": 1718353375, - "prs": [ - { - "nr": 124732, - "hash": "f51982822886b1ce501cc7f31813ac10225c6fdc" - }, - { - "nr": 124553, - "hash": "ebb677cd4fce20e4cdab8eee8a500a795acb2ad8" - }, - { - "nr": 124417, - "hash": "35779fd3010056d5b2c7e865177c74280bfc6709" - }, - { - "nr": 124864, - "hash": "8765ccbb786d4308ed0314860dec6a5f5e178d7c" - }, - { - "nr": 123620, - "hash": "1c1728cdebd779f471fc162be78d93f5a49561ed" - }, - { - "nr": 124592, - "hash": "14c6de6513e0f6364dffebe821173c26ea1aa558" - }, - { - "nr": 124281, - "hash": "8bcbe7e887ac53baf7b476abc1d03a68b2da97bf" - }, - { - "nr": 124942, - "hash": "9e6e5aaf79c7ed8f8a798002788214eebd1e657c" - }, - { - "nr": 124017, - "hash": "9d5ef5bece91df98de3e734f18752a3d4a52246e" - }, - { - "nr": 125067, - "hash": "6ff94c6d64fbab9cef78efd61fcae7960f55e7cb" - }, - { - "nr": 124933, - "hash": "465ab0ff43ac7aab841faa61d961de94daa3394f" - }, - { - "nr": 124147, - "hash": "dc85d9905682a660f7523a9d008ffd9f62b38b30" - }, - { - "nr": 123809, - "hash": "645f18a52d0f1131cb75cd86b50e825979c2054a" - }, - { - "nr": 124598, - "hash": "82e3b2e92ce0abab94b1fd975dccea8a92b9a834" - }, - { - "nr": 124344, - "hash": "48bc7be96fd2d49dd684380bafd918bfe5b9cfdd" - }, - { - "nr": 119589, - "hash": "d7a247a13190ec7a30d973d31793da3482828d36" - }, - { - "nr": 121970, - "hash": "2cb399215973046ba849d7fc03d755bba1a6ee84" - }, - { - "nr": 125365, - "hash": "f790219c0152ee6d06153c8170b077f6fc99f086" - }, - { - "nr": 124546, - "hash": "98788963f789073a65646385eaa73246f75fbbfd" - }, - { - "nr": 124352, - "hash": "46810bfe17ad150f4d7e25e513d7105fd389f67b" - }, - { - "nr": 124464, - "hash": "4ec6a1f9a8c226633eab19372b2dfb22e37d402e" - }, - { - "nr": 123398, - "hash": "ce092a77a063e127687791fad142c00655b9ccd2" - }, - { - "nr": 124350, - "hash": "8f8f34a6fd3baa7aa4a95716a289636261684231" - }, - { - "nr": 125157, - "hash": "bb084c9de491d0e9bfcfe93d2dc151d74f9179dc" - }, - { - "nr": 124779, - "hash": "7511163273df1bafd1500f856b439214c7684a8e" - }, - { - "nr": 124428, - "hash": "c18c3e2248e99d8566f336baeea5a73cdd69b0db" - }, - { - "nr": 124091, - "hash": "6203fd17e1f0336690ed54db9f1fe69031db120d" - }, - { - "nr": 122038, - "hash": "1112bf39e5c6e7cda3c39bd8e406d0b181b05aa2" - }, - { - "nr": 124465, - "hash": "0e273851060b1b32e067890d0b95ca9256981d98" - }, - { - "nr": 124883, - "hash": "4c12972665b8a24e66e0dbe9868507d6e3b9fa86" - }, - { - "nr": 122176, - "hash": "2e829a93f8be3cdcbcf609579247c6c72370f997" - }, - { - "nr": 122363, - "hash": "2e7749248e8a37f62abfef7cda86091a174b3f0d" - }, - { - "nr": 125197, - "hash": "4f7085d280d594b1c783b8ad14da42a85f40857e" - }, - { - "nr": 117842, - "hash": "8107085273c8fa2b2ee4efcd690b9c69c474eaf5" - }, - { - "nr": 124075, - "hash": "c9d4980d9ef488e1440527c420ed11af6e201ef9" - }, - { - "nr": 123905, - "hash": "5029d110ae7a2f29e7b45d1a29bc24a536aecb03" - }, - { - "nr": 125150, - "hash": "69071f9691c9acc47e6510bf008cd1ddd1bef226" - }, - { - "nr": 123669, - "hash": "a9e2a1dea921bb15414a1216273b165a6a219474" - }, - { - "nr": 124519, - "hash": "a3ce12e52f88eb8af8aa6aa33723d3f43f2f0601" - }, - { - "nr": 124419, - "hash": "5704343a67430849fe64a89a7c1cc63ffc674f56" - }, - { - "nr": 122892, - "hash": "d483ad4da17d8fde4b3d6272a8e5f9ad4dbb27fe" - }, - { - "nr": 123545, - "hash": "38d576bedb5502c22b1da7b78edf0eef502a9c5a" - }, - { - "nr": 125429, - "hash": "a7f05c22cbc8a6b9e94bb5f17e6701c37aa380e0" - }, - { - "nr": 124715, - "hash": "823dcc1c333a6887dccd440f8402c60d7e55cc68" - }, - { - "nr": 124287, - "hash": "ee7534535dabd013154f2a011cf1323261ad4b1c" - }, - { - "nr": 123572, - "hash": "e8d982f01163d925003c06bd53beba606d8d26d7" - }, - { - "nr": 124381, - "hash": "66f8e193c56161d1c5dc284a1b364504cb709841" - }, - { - "nr": 122791, - "hash": "eb1893ad040bc42c3baddfa37bb705638a9d2b8f" - }, - { - "nr": 123149, - "hash": "34754e17496b34fd7a1af7cfec62987201260445" - }, - { - "nr": 124865, - "hash": "83b48a4ab9bec29cfb4eb3c141ef2dd55d04cb8a" - }, - { - "nr": 125363, - "hash": "49ae33bf264b7b6f39531cd7cc20fd1a75f97189" - }, - { - "nr": 122499, - "hash": "bfd9682fdc7b46cc22342f7448e9fc53e66292e3" - }, - { - "nr": 125396, - "hash": "5d6b59299c2ccb15f3c619df51f4b9aba383eff6" - }, - { - "nr": 125168, - "hash": "db528247c9ef1e8e93395a2394fc44c6c6bf061b" - }, - { - "nr": 124514, - "hash": "a4372e97f5e190b7ecd4b939ed512d58962a9847" - }, - { - "nr": 123105, - "hash": "bc71deddf349eb9d6bbb8bf5317c732887ac85ee" - }, - { - "nr": 125015, - "hash": "5236ddd6daaa68d8e4fcfb1a2ef1c2d73d4b2327" - }, - { - "nr": 124503, - "hash": "816c7e62bc795f33dd10c6cb8a12c1d8b07dca99" - }, - { - "nr": 124496, - "hash": "efa88a14659bcdafb427b92f0e0343116d2e09cc" - }, - { - "nr": 121770, - "hash": "776d1453e027eb088d3d31054cfb4bf73562aa29" - }, - { - "nr": 122471, - "hash": "72f9ebcc3b56f0b65666d86f8a3bca60031fcedf" - }, - { - "nr": 124820, - "hash": "7deb2d41c6469d4a2055f5a74f36a37ad21eb2e0" - }, - { - "nr": 124364, - "hash": "6cfeb5e9aa81cb9b5b989e11d1e4ebb0519c9817" - }, - { - "nr": 124393, - "hash": "b826f7fbe45f0f157f305f365f9ab6c7ae1bd86e" - }, - { - "nr": 124221, - "hash": "c6d1cc9d189e7d5b854ec8a8c1c238e3ff7f1f43" - }, - { - "nr": 120696, - "hash": "7f1e250fae8559221dc545d0580d9c2fc1eaa764" - }, - { - "nr": 125113, - "hash": "012f76a54941d1c9a55e8cc4e65456c5a4290901" - }, - { - "nr": 124685, - "hash": "7a4ede814b8464e34ffb1c1a7d293c4453fa93a9" - }, - { - "nr": 124798, - "hash": "e648719651e783ba3fd0fa5a9ac99a8673737651" - }, - { - "nr": 124328, - "hash": "81d4cc88fc27a91a7f7e791522cdeff6dd87211a" - }, - { - "nr": 124063, - "hash": "89917e19f3dc2b6d1175c248337edb00bcb87a55" - }, - { - "nr": 124612, - "hash": "742a632798a1de1ad2355115cb31253e0b75b6d1" - }, - { - "nr": 124588, - "hash": "8cc20b84dae6382407eb073c2fef29c7e3cc683b" - }, - { - "nr": 124681, - "hash": "3acc83dd50d01e58c0164055edbfa163da8be74d" - }, - { - "nr": 124374, - "hash": "44043bda4d44d020dd160361cb2bbf2ec4fe9749" - }, - { - "nr": 124189, - "hash": "8f05fac107bfcc313a496368db236eb580c2af8b" - }, - { - "nr": 122657, - "hash": "144aa68f12b9c60c9d37a064da6dce2f60a0e746" - }, - { - "nr": 123316, - "hash": "07827994fcb4786fdbb8f58b35d8105fc12bba6d" - }, - { - "nr": 125238, - "hash": "8c5d2462581bdb94a8a6c071379b3fa3f6b8e0b9" - }, - { - "nr": 123233, - "hash": "0e9e692667849a7b2837c12d072978e1090a85f3" - }, - { - "nr": 123845, - "hash": "a2eadc432312ead1ba026600291507a18d5a02b2" - }, - { - "nr": 122979, - "hash": "af6aa362e77407f475f02d9f30ad352f9dded280" - }, - { - "nr": 124500, - "hash": "8849e77fc01ce7e65910ac397161933d662646f1" - }, - { - "nr": 122812, - "hash": "e8f372deeb28637196fb35c74e2fa43eeabc4124" - }, - { - "nr": 123587, - "hash": "4d21b69f22f04683875ffebd34df2752b62ff299" - }, - { - "nr": 124123, - "hash": "41272af9bd27e49ea7e22c3128cc205d2570f567" - }, - { - "nr": 125272, - "hash": "82696aa64c19e257a617071b139a4694ccc6442c" - }, - { - "nr": 124997, - "hash": "d6200d921c2c812fd4dcf61fed23f64cbea7e4c6" - }, - { - "nr": 124926, - "hash": "dee97da945665e49fb0656cb8065f082696553b5" - }, - { - "nr": 124738, - "hash": "3e68d6fe9f01a8b56853ee12976cdb1c8ad30489" - }, - { - "nr": 124038, - "hash": "63671fb21e195f910b77bee52799a9e27f2300a2" - }, - { - "nr": 124614, - "hash": "8aa6d6c8485034f31f874667275c2e5710896095" - }, - { - "nr": 124793, - "hash": "361a5d16f3ad99d66778d829f555b6014903dd38" - }, - { - "nr": 124516, - "hash": "dce46744d51622db1357b21e505cd73941c8c35a" - }, - { - "nr": 125388, - "hash": "b7fd8f90baec275b51d086a73ba754ed29a44165" - }, - { - "nr": 124683, - "hash": "3d2b0902c321566f02e59d16984cc2d5c06594bc" - }, - { - "nr": 124505, - "hash": "0c884c81e39d644727bf29d8e077c42d0fd46d5f" - }, - { - "nr": 124131, - "hash": "366f3226331bf9fe3cf8c3082451fbc40e831eeb" - }, - { - "nr": 125360, - "hash": "c5970fae610dc388d3a742533996a35728f5aca9" - }, - { - "nr": 124574, - "hash": "2aee882ab057c1c6d8fe71098a711dce376e58bd" - }, - { - "nr": 124714, - "hash": "f56035b9b253248ac275bdf733a86952cca2a19b" - }, - { - "nr": 124361, - "hash": "68a471d2762d8edd75ed96a2466bf716d408a828" - }, - { - "nr": 124912, - "hash": "e0e66cd1df8632ee513b24ac3b334274d55b310a" - }, - { - "nr": 124462, - "hash": "e0de8ae10beab01e666f76d976ba22a82be78bbe" - }, - { - "nr": 124665, - "hash": "84b631babe95bb633c59c6771ef96871db55f881" - }, - { - "nr": 123797, - "hash": "f42a1da40eec0c7aeb1afd64673dce8a41c613a5" - }, - { - "nr": 125175, - "hash": "86fd8772f9dd4f15bae6abea136846752cede3c3" - }, - { - "nr": 123919, - "hash": "2040b5d51256a5842028b7fbe0637961ee353df3" - }, - { - "nr": 112104, - "hash": "78d8ed4442a0b321752c11f0180432c83334a72e" - }, - { - "nr": 124220, - "hash": "90a1a0155e0374c2734a761e5b50efe343aca637" - }, - { - "nr": 124210, - "hash": "a01ba1c485646aad31a9cfc4ddd931e4876891fc" - }, - { - "nr": 124026, - "hash": "7464ab1f22055612545e504cf99a965347b94f65" - }, - { - "nr": 124116, - "hash": "f2b2db49e6df327f136885fa76e6a69969313dee" - }, - { - "nr": 123597, - "hash": "2f7fa072c3971f3841c6b86679ea6fdbb215a3e0" - }, - { - "nr": 109939, - "hash": "b91f174340a569bd466048eb508273cd67af3bbb" - }, - { - "nr": 118148, - "hash": "cb3d6acb41e3c580a5e25e6e2d68e2f99485c085" - }, - { - "nr": 124544, - "hash": "c1668f3c95669f15259240b79096e049ac6a6bfa" - }, - { - "nr": 124675, - "hash": "6228f5188d1b27403a7194d9e3bf5f7d6c81564a" - }, - { - "nr": 124635, - "hash": "b201291c9117e37316c232a8713aa1eb451de253" - }, - { - "nr": 124828, - "hash": "5f2359994c4600ea3d195713d6ceb00439c556cc" - }, - { - "nr": 124589, - "hash": "9e3b1f6911b91471baff7d448735f81f76196669" - }, - { - "nr": 124735, - "hash": "f90a171486c46db26bb5d3fea90bd6b22336dbb5" - }, - { - "nr": 124316, - "hash": "b322f8db441c8a1232a0454457d128f302ecc2b5" - }, - { - "nr": 123894, - "hash": "e91aff06ef5069adfeca1c34d520904ddc310a33" - }, - { - "nr": 124375, - "hash": "e86726d6086183e897a51f6d83838c5d1e9010a4" - }, - { - "nr": 125176, - "hash": "21391d38bb95fb8bb185f78a31f476e4eb869a7f" - }, - { - "nr": 124948, - "hash": "4e71f1d8f734cd6bd9c20e557a992207a69c8884" - }, - { - "nr": 121508, - "hash": "51bcec56bbf500a3022c296f839725899bf775be" - }, - { - "nr": 124299, - "hash": "a997553bc8ed55741263d213a60169e93509c1ee" - }, - { - "nr": 125265, - "hash": "0ebd271eec36a4e50d2f1507a1d88f7f3bebe58f" - }, - { - "nr": 125179, - "hash": "0ab372e3a6fcfcb8717d7a8cb126623ad95bf17c" - }, - { - "nr": 124463, - "hash": "22e631e7be0a2ed2f61b5dd8d69b81363a017863" - }, - { - "nr": 123315, - "hash": "6480506d25a52765120fdb23d1c5b3735052e5ed" - }, - { - "nr": 125112, - "hash": "cbb6f6ed5d7324bd77ba37b1ad7218a5a13d450b" - }, - { - "nr": 123638, - "hash": "e0615ef24b59348137c78ff2a1706f9ed1e0efcb" - }, - { - "nr": 124653, - "hash": "ae9a03cd0c132be1ee956e0e66696f4d2c7e334d" - }, - { - "nr": 124055, - "hash": "15995c561561af3340b0b61079aa3ca4695d2de4" - }, - { - "nr": 123822, - "hash": "37495a4ead9b8cf9ec10523eb03cc4e2efa67298" - }, - { - "nr": 125377, - "hash": "e4880cab3c486330959b6ccf00dea9c7556d7f11" - }, - { - "nr": 120699, - "hash": "8ddf506a13aea4d0f959b2f208594e0406eb38e8" - }, - { - "nr": 124673, - "hash": "a2602db9d9def781eac552bd9781eed9c829febb" - }, - { - "nr": 124383, - "hash": "6cd53fafb8ccc79b97c6b5bfc81f920aee3b9ec3" - }, - { - "nr": 124886, - "hash": "f0e1216de44921f9e89ac724d62a65e5204ddc63" - }, - { - "nr": 124618, - "hash": "1780003494ca28a0b20d85aa9a8f9d5ab4ed1093" - }, - { - "nr": 124557, - "hash": "ab6f0c6cee22402423c5279becea67baf44efa74" - }, - { - "nr": 124373, - "hash": "7b4e8b417d9dd7a2d8f980a0a1f361eb4dbdadad" - }, - { - "nr": 125235, - "hash": "b9fe8c3f309ed5d111fe8920c1cbafe61f9e318b" - }, - { - "nr": 125225, - "hash": "8d888e41432ebd78d3d60a132aa994b350ce6b2e" - }, - { - "nr": 124688, - "hash": "d6a5b7a2be5a3a75c7b03cc2aa967837bede17b6" - }, - { - "nr": 125040, - "hash": "9447d98a61d18b8de9c30f4a475ff82c609e15d4" - }, - { - "nr": 124027, - "hash": "68b3e02b240e03f8300c6c8ef5a87dfc5199a993" - }, - { - "nr": 124320, - "hash": "586bfc4dfcdb5191bb444091f1f62feb1bc5a062" - }, - { - "nr": 122082, - "hash": "83e3879ca264835a31b176b97a094d40619454c7" - }, - { - "nr": 124634, - "hash": "3e5ef7076a3fa15d0fc17e0554f212c954a5a467" - }, - { - "nr": 124906, - "hash": "5006e2dc84b0d9cc3ce3e6bbc0b608ea2af1dcad" - }, - { - "nr": 124767, - "hash": "d3cacf453e32214747b4fea4f8906573828d46f4" - }, - { - "nr": 124480, - "hash": "9f2673b2043b5ad10d6189f8c7ed94370a50dedf" - } - ] +{ + "mail": "amit@odysseycloud.io", + "name": "Amit Dsouza", + "date": 1718353375, + "prs": [ + { + "nr": 124732, + "hash": "f51982822886b1ce501cc7f31813ac10225c6fdc" + }, + { + "nr": 124553, + "hash": "ebb677cd4fce20e4cdab8eee8a500a795acb2ad8" + }, + { + "nr": 124417, + "hash": "35779fd3010056d5b2c7e865177c74280bfc6709" + }, + { + "nr": 124864, + "hash": "8765ccbb786d4308ed0314860dec6a5f5e178d7c" + }, + { + "nr": 123620, + "hash": "1c1728cdebd779f471fc162be78d93f5a49561ed" + }, + { + "nr": 124592, + "hash": "14c6de6513e0f6364dffebe821173c26ea1aa558" + }, + { + "nr": 124281, + "hash": "8bcbe7e887ac53baf7b476abc1d03a68b2da97bf" + }, + { + "nr": 124942, + "hash": "9e6e5aaf79c7ed8f8a798002788214eebd1e657c" + }, + { + "nr": 124017, + "hash": "9d5ef5bece91df98de3e734f18752a3d4a52246e" + }, + { + "nr": 125067, + "hash": "6ff94c6d64fbab9cef78efd61fcae7960f55e7cb" + }, + { + "nr": 124933, + "hash": "465ab0ff43ac7aab841faa61d961de94daa3394f" + }, + { + "nr": 124147, + "hash": "dc85d9905682a660f7523a9d008ffd9f62b38b30" + }, + { + "nr": 123809, + "hash": "645f18a52d0f1131cb75cd86b50e825979c2054a" + }, + { + "nr": 124598, + "hash": "82e3b2e92ce0abab94b1fd975dccea8a92b9a834" + }, + { + "nr": 124344, + "hash": "48bc7be96fd2d49dd684380bafd918bfe5b9cfdd" + }, + { + "nr": 119589, + "hash": "d7a247a13190ec7a30d973d31793da3482828d36" + }, + { + "nr": 121970, + "hash": "2cb399215973046ba849d7fc03d755bba1a6ee84" + }, + { + "nr": 125365, + "hash": "f790219c0152ee6d06153c8170b077f6fc99f086" + }, + { + "nr": 124546, + "hash": "98788963f789073a65646385eaa73246f75fbbfd" + }, + { + "nr": 124352, + "hash": "46810bfe17ad150f4d7e25e513d7105fd389f67b" + }, + { + "nr": 124464, + "hash": "4ec6a1f9a8c226633eab19372b2dfb22e37d402e" + }, + { + "nr": 123398, + "hash": "ce092a77a063e127687791fad142c00655b9ccd2" + }, + { + "nr": 124350, + "hash": "8f8f34a6fd3baa7aa4a95716a289636261684231" + }, + { + "nr": 125157, + "hash": "bb084c9de491d0e9bfcfe93d2dc151d74f9179dc" + }, + { + "nr": 124779, + "hash": "7511163273df1bafd1500f856b439214c7684a8e" + }, + { + "nr": 124428, + "hash": "c18c3e2248e99d8566f336baeea5a73cdd69b0db" + }, + { + "nr": 124091, + "hash": "6203fd17e1f0336690ed54db9f1fe69031db120d" + }, + { + "nr": 122038, + "hash": "1112bf39e5c6e7cda3c39bd8e406d0b181b05aa2" + }, + { + "nr": 124465, + "hash": "0e273851060b1b32e067890d0b95ca9256981d98" + }, + { + "nr": 124883, + "hash": "4c12972665b8a24e66e0dbe9868507d6e3b9fa86" + }, + { + "nr": 122176, + "hash": "2e829a93f8be3cdcbcf609579247c6c72370f997" + }, + { + "nr": 122363, + "hash": "2e7749248e8a37f62abfef7cda86091a174b3f0d" + }, + { + "nr": 125197, + "hash": "4f7085d280d594b1c783b8ad14da42a85f40857e" + }, + { + "nr": 117842, + "hash": "8107085273c8fa2b2ee4efcd690b9c69c474eaf5" + }, + { + "nr": 124075, + "hash": "c9d4980d9ef488e1440527c420ed11af6e201ef9" + }, + { + "nr": 123905, + "hash": "5029d110ae7a2f29e7b45d1a29bc24a536aecb03" + }, + { + "nr": 125150, + "hash": "69071f9691c9acc47e6510bf008cd1ddd1bef226" + }, + { + "nr": 123669, + "hash": "a9e2a1dea921bb15414a1216273b165a6a219474" + }, + { + "nr": 124519, + "hash": "a3ce12e52f88eb8af8aa6aa33723d3f43f2f0601" + }, + { + "nr": 124419, + "hash": "5704343a67430849fe64a89a7c1cc63ffc674f56" + }, + { + "nr": 122892, + "hash": "d483ad4da17d8fde4b3d6272a8e5f9ad4dbb27fe" + }, + { + "nr": 123545, + "hash": "38d576bedb5502c22b1da7b78edf0eef502a9c5a" + }, + { + "nr": 125429, + "hash": "a7f05c22cbc8a6b9e94bb5f17e6701c37aa380e0" + }, + { + "nr": 124715, + "hash": "823dcc1c333a6887dccd440f8402c60d7e55cc68" + }, + { + "nr": 124287, + "hash": "ee7534535dabd013154f2a011cf1323261ad4b1c" + }, + { + "nr": 123572, + "hash": "e8d982f01163d925003c06bd53beba606d8d26d7" + }, + { + "nr": 124381, + "hash": "66f8e193c56161d1c5dc284a1b364504cb709841" + }, + { + "nr": 122791, + "hash": "eb1893ad040bc42c3baddfa37bb705638a9d2b8f" + }, + { + "nr": 123149, + "hash": "34754e17496b34fd7a1af7cfec62987201260445" + }, + { + "nr": 124865, + "hash": "83b48a4ab9bec29cfb4eb3c141ef2dd55d04cb8a" + }, + { + "nr": 125363, + "hash": "49ae33bf264b7b6f39531cd7cc20fd1a75f97189" + }, + { + "nr": 122499, + "hash": "bfd9682fdc7b46cc22342f7448e9fc53e66292e3" + }, + { + "nr": 125396, + "hash": "5d6b59299c2ccb15f3c619df51f4b9aba383eff6" + }, + { + "nr": 125168, + "hash": "db528247c9ef1e8e93395a2394fc44c6c6bf061b" + }, + { + "nr": 124514, + "hash": "a4372e97f5e190b7ecd4b939ed512d58962a9847" + }, + { + "nr": 123105, + "hash": "bc71deddf349eb9d6bbb8bf5317c732887ac85ee" + }, + { + "nr": 125015, + "hash": "5236ddd6daaa68d8e4fcfb1a2ef1c2d73d4b2327" + }, + { + "nr": 124503, + "hash": "816c7e62bc795f33dd10c6cb8a12c1d8b07dca99" + }, + { + "nr": 124496, + "hash": "efa88a14659bcdafb427b92f0e0343116d2e09cc" + }, + { + "nr": 121770, + "hash": "776d1453e027eb088d3d31054cfb4bf73562aa29" + }, + { + "nr": 122471, + "hash": "72f9ebcc3b56f0b65666d86f8a3bca60031fcedf" + }, + { + "nr": 124820, + "hash": "7deb2d41c6469d4a2055f5a74f36a37ad21eb2e0" + }, + { + "nr": 124364, + "hash": "6cfeb5e9aa81cb9b5b989e11d1e4ebb0519c9817" + }, + { + "nr": 124393, + "hash": "b826f7fbe45f0f157f305f365f9ab6c7ae1bd86e" + }, + { + "nr": 124221, + "hash": "c6d1cc9d189e7d5b854ec8a8c1c238e3ff7f1f43" + }, + { + "nr": 120696, + "hash": "7f1e250fae8559221dc545d0580d9c2fc1eaa764" + }, + { + "nr": 125113, + "hash": "012f76a54941d1c9a55e8cc4e65456c5a4290901" + }, + { + "nr": 124685, + "hash": "7a4ede814b8464e34ffb1c1a7d293c4453fa93a9" + }, + { + "nr": 124798, + "hash": "e648719651e783ba3fd0fa5a9ac99a8673737651" + }, + { + "nr": 124328, + "hash": "81d4cc88fc27a91a7f7e791522cdeff6dd87211a" + }, + { + "nr": 124063, + "hash": "89917e19f3dc2b6d1175c248337edb00bcb87a55" + }, + { + "nr": 124612, + "hash": "742a632798a1de1ad2355115cb31253e0b75b6d1" + }, + { + "nr": 124588, + "hash": "8cc20b84dae6382407eb073c2fef29c7e3cc683b" + }, + { + "nr": 124681, + "hash": "3acc83dd50d01e58c0164055edbfa163da8be74d" + }, + { + "nr": 124374, + "hash": "44043bda4d44d020dd160361cb2bbf2ec4fe9749" + }, + { + "nr": 124189, + "hash": "8f05fac107bfcc313a496368db236eb580c2af8b" + }, + { + "nr": 122657, + "hash": "144aa68f12b9c60c9d37a064da6dce2f60a0e746" + }, + { + "nr": 123316, + "hash": "07827994fcb4786fdbb8f58b35d8105fc12bba6d" + }, + { + "nr": 125238, + "hash": "8c5d2462581bdb94a8a6c071379b3fa3f6b8e0b9" + }, + { + "nr": 123233, + "hash": "0e9e692667849a7b2837c12d072978e1090a85f3" + }, + { + "nr": 123845, + "hash": "a2eadc432312ead1ba026600291507a18d5a02b2" + }, + { + "nr": 122979, + "hash": "af6aa362e77407f475f02d9f30ad352f9dded280" + }, + { + "nr": 124500, + "hash": "8849e77fc01ce7e65910ac397161933d662646f1" + }, + { + "nr": 122812, + "hash": "e8f372deeb28637196fb35c74e2fa43eeabc4124" + }, + { + "nr": 123587, + "hash": "4d21b69f22f04683875ffebd34df2752b62ff299" + }, + { + "nr": 124123, + "hash": "41272af9bd27e49ea7e22c3128cc205d2570f567" + }, + { + "nr": 125272, + "hash": "82696aa64c19e257a617071b139a4694ccc6442c" + }, + { + "nr": 124997, + "hash": "d6200d921c2c812fd4dcf61fed23f64cbea7e4c6" + }, + { + "nr": 124926, + "hash": "dee97da945665e49fb0656cb8065f082696553b5" + }, + { + "nr": 124738, + "hash": "3e68d6fe9f01a8b56853ee12976cdb1c8ad30489" + }, + { + "nr": 124038, + "hash": "63671fb21e195f910b77bee52799a9e27f2300a2" + }, + { + "nr": 124614, + "hash": "8aa6d6c8485034f31f874667275c2e5710896095" + }, + { + "nr": 124793, + "hash": "361a5d16f3ad99d66778d829f555b6014903dd38" + }, + { + "nr": 124516, + "hash": "dce46744d51622db1357b21e505cd73941c8c35a" + }, + { + "nr": 125388, + "hash": "b7fd8f90baec275b51d086a73ba754ed29a44165" + }, + { + "nr": 124683, + "hash": "3d2b0902c321566f02e59d16984cc2d5c06594bc" + }, + { + "nr": 124505, + "hash": "0c884c81e39d644727bf29d8e077c42d0fd46d5f" + }, + { + "nr": 124131, + "hash": "366f3226331bf9fe3cf8c3082451fbc40e831eeb" + }, + { + "nr": 125360, + "hash": "c5970fae610dc388d3a742533996a35728f5aca9" + }, + { + "nr": 124574, + "hash": "2aee882ab057c1c6d8fe71098a711dce376e58bd" + }, + { + "nr": 124714, + "hash": "f56035b9b253248ac275bdf733a86952cca2a19b" + }, + { + "nr": 124361, + "hash": "68a471d2762d8edd75ed96a2466bf716d408a828" + }, + { + "nr": 124912, + "hash": "e0e66cd1df8632ee513b24ac3b334274d55b310a" + }, + { + "nr": 124462, + "hash": "e0de8ae10beab01e666f76d976ba22a82be78bbe" + }, + { + "nr": 124665, + "hash": "84b631babe95bb633c59c6771ef96871db55f881" + }, + { + "nr": 123797, + "hash": "f42a1da40eec0c7aeb1afd64673dce8a41c613a5" + }, + { + "nr": 125175, + "hash": "86fd8772f9dd4f15bae6abea136846752cede3c3" + }, + { + "nr": 123919, + "hash": "2040b5d51256a5842028b7fbe0637961ee353df3" + }, + { + "nr": 112104, + "hash": "78d8ed4442a0b321752c11f0180432c83334a72e" + }, + { + "nr": 124220, + "hash": "90a1a0155e0374c2734a761e5b50efe343aca637" + }, + { + "nr": 124210, + "hash": "a01ba1c485646aad31a9cfc4ddd931e4876891fc" + }, + { + "nr": 124026, + "hash": "7464ab1f22055612545e504cf99a965347b94f65" + }, + { + "nr": 124116, + "hash": "f2b2db49e6df327f136885fa76e6a69969313dee" + }, + { + "nr": 123597, + "hash": "2f7fa072c3971f3841c6b86679ea6fdbb215a3e0" + }, + { + "nr": 109939, + "hash": "b91f174340a569bd466048eb508273cd67af3bbb" + }, + { + "nr": 118148, + "hash": "cb3d6acb41e3c580a5e25e6e2d68e2f99485c085" + }, + { + "nr": 124544, + "hash": "c1668f3c95669f15259240b79096e049ac6a6bfa" + }, + { + "nr": 124675, + "hash": "6228f5188d1b27403a7194d9e3bf5f7d6c81564a" + }, + { + "nr": 124635, + "hash": "b201291c9117e37316c232a8713aa1eb451de253" + }, + { + "nr": 124828, + "hash": "5f2359994c4600ea3d195713d6ceb00439c556cc" + }, + { + "nr": 124589, + "hash": "9e3b1f6911b91471baff7d448735f81f76196669" + }, + { + "nr": 124735, + "hash": "f90a171486c46db26bb5d3fea90bd6b22336dbb5" + }, + { + "nr": 124316, + "hash": "b322f8db441c8a1232a0454457d128f302ecc2b5" + }, + { + "nr": 123894, + "hash": "e91aff06ef5069adfeca1c34d520904ddc310a33" + }, + { + "nr": 124375, + "hash": "e86726d6086183e897a51f6d83838c5d1e9010a4" + }, + { + "nr": 125176, + "hash": "21391d38bb95fb8bb185f78a31f476e4eb869a7f" + }, + { + "nr": 124948, + "hash": "4e71f1d8f734cd6bd9c20e557a992207a69c8884" + }, + { + "nr": 121508, + "hash": "51bcec56bbf500a3022c296f839725899bf775be" + }, + { + "nr": 124299, + "hash": "a997553bc8ed55741263d213a60169e93509c1ee" + }, + { + "nr": 125265, + "hash": "0ebd271eec36a4e50d2f1507a1d88f7f3bebe58f" + }, + { + "nr": 125179, + "hash": "0ab372e3a6fcfcb8717d7a8cb126623ad95bf17c" + }, + { + "nr": 124463, + "hash": "22e631e7be0a2ed2f61b5dd8d69b81363a017863" + }, + { + "nr": 123315, + "hash": "6480506d25a52765120fdb23d1c5b3735052e5ed" + }, + { + "nr": 125112, + "hash": "cbb6f6ed5d7324bd77ba37b1ad7218a5a13d450b" + }, + { + "nr": 123638, + "hash": "e0615ef24b59348137c78ff2a1706f9ed1e0efcb" + }, + { + "nr": 124653, + "hash": "ae9a03cd0c132be1ee956e0e66696f4d2c7e334d" + }, + { + "nr": 124055, + "hash": "15995c561561af3340b0b61079aa3ca4695d2de4" + }, + { + "nr": 123822, + "hash": "37495a4ead9b8cf9ec10523eb03cc4e2efa67298" + }, + { + "nr": 125377, + "hash": "e4880cab3c486330959b6ccf00dea9c7556d7f11" + }, + { + "nr": 120699, + "hash": "8ddf506a13aea4d0f959b2f208594e0406eb38e8" + }, + { + "nr": 124673, + "hash": "a2602db9d9def781eac552bd9781eed9c829febb" + }, + { + "nr": 124383, + "hash": "6cd53fafb8ccc79b97c6b5bfc81f920aee3b9ec3" + }, + { + "nr": 124886, + "hash": "f0e1216de44921f9e89ac724d62a65e5204ddc63" + }, + { + "nr": 124618, + "hash": "1780003494ca28a0b20d85aa9a8f9d5ab4ed1093" + }, + { + "nr": 124557, + "hash": "ab6f0c6cee22402423c5279becea67baf44efa74" + }, + { + "nr": 124373, + "hash": "7b4e8b417d9dd7a2d8f980a0a1f361eb4dbdadad" + }, + { + "nr": 125235, + "hash": "b9fe8c3f309ed5d111fe8920c1cbafe61f9e318b" + }, + { + "nr": 125225, + "hash": "8d888e41432ebd78d3d60a132aa994b350ce6b2e" + }, + { + "nr": 124688, + "hash": "d6a5b7a2be5a3a75c7b03cc2aa967837bede17b6" + }, + { + "nr": 125040, + "hash": "9447d98a61d18b8de9c30f4a475ff82c609e15d4" + }, + { + "nr": 124027, + "hash": "68b3e02b240e03f8300c6c8ef5a87dfc5199a993" + }, + { + "nr": 124320, + "hash": "586bfc4dfcdb5191bb444091f1f62feb1bc5a062" + }, + { + "nr": 122082, + "hash": "83e3879ca264835a31b176b97a094d40619454c7" + }, + { + "nr": 124634, + "hash": "3e5ef7076a3fa15d0fc17e0554f212c954a5a467" + }, + { + "nr": 124906, + "hash": "5006e2dc84b0d9cc3ce3e6bbc0b608ea2af1dcad" + }, + { + "nr": 124767, + "hash": "d3cacf453e32214747b4fea4f8906573828d46f4" + }, + { + "nr": 124480, + "hash": "9f2673b2043b5ad10d6189f8c7ed94370a50dedf" + } + ] } \ No newline at end of file diff --git a/releases/release-1.31/release-notes/sessions/maps-1719945684.json b/releases/release-1.31/release-notes/sessions/maps-1719945684.json index e90d76d0744..32bea86315b 100644 --- a/releases/release-1.31/release-notes/sessions/maps-1719945684.json +++ b/releases/release-1.31/release-notes/sessions/maps-1719945684.json @@ -1,683 +1,683 @@ -{ - "mail": "satyampsoni@gmail.com", - "name": "Satyam Soni", - "date": 1719945684, - "prs": [ - { - "nr": 123620, - "hash": "3ead6bad121b4ce9ed9c7ecf171e978dcf3255c7" - }, - { - "nr": 124505, - "hash": "5c65adbaa7cc5c8a6a2403bc338c3cf1899256d8" - }, - { - "nr": 124665, - "hash": "5ffc7ada0b4e29663ef904306231eb7b80779c8f" - }, - { - "nr": 124091, - "hash": "7d58e1cd6997daffbdd7cc0d9723be7fd2f6644f" - }, - { - "nr": 124038, - "hash": "dbbfab9577ca9e14a038006053bc86e88d1a9cbf" - }, - { - "nr": 122363, - "hash": "1e305c875a3928fdf69287ad91a35eaffac0e888" - }, - { - "nr": 124546, - "hash": "7307599feeae75326c608ac448bcfd160eae4ffe" - }, - { - "nr": 124948, - "hash": "6a90ba8565b2d869678f22e7e2a83ef69c28c202" - }, - { - "nr": 124883, - "hash": "28b4a3fc849f88fd6b34020641eb5162241229ef" - }, - { - "nr": 124462, - "hash": "6dd66ca4d9cf15d1b29c775477a94edbb1a9c0f7" - }, - { - "nr": 124715, - "hash": "7b4670287995ff10233cbd4af1497570abf83487" - }, - { - "nr": 124383, - "hash": "132917b04e7619558e45a8365731d98f2de0d3f6" - }, - { - "nr": 125388, - "hash": "4480991c12fb8e3172ec782c82f60732ba0bc72f" - }, - { - "nr": 125067, - "hash": "3461099ac04ab2071b9ce64c00f04acf373d1a55" - }, - { - "nr": 124220, - "hash": "f6abfe37a83ebd13cf5977f2476a52d6266dddb3" - }, - { - "nr": 124933, - "hash": "e3f0167fbfc6872eaeba6551ae4545946e8cff65" - }, - { - "nr": 122499, - "hash": "addb69458b256c089931797b7dcc1ef7db6ef644" - }, - { - "nr": 125113, - "hash": "579967b921b707d5ea25d781165f83ffe8670365" - }, - { - "nr": 122892, - "hash": "43268b22bacffec796ef991488a8236738890fb8" - }, - { - "nr": 125265, - "hash": "391d3c4088458ad503b3d95b77b6efc32d667cda" - }, - { - "nr": 125235, - "hash": "1b73bef8b8c3af48ad62967b85f5cac8886616d2" - }, - { - "nr": 124635, - "hash": "ddfb614486f067bfba1507c71e696bc5b4388118" - }, - { - "nr": 123797, - "hash": "ed5fcffbc64a2a3bd9e730b3115622eb028565da" - }, - { - "nr": 122082, - "hash": "d5e46a1f59a1f82f9c81227ce0f2ff8082f05484" - }, - { - "nr": 124160, - "hash": "f0314a05351ade5c1b8cf6651b1e4ff9cb3236f5" - }, - { - "nr": 124820, - "hash": "cad757c055aebd1c79f8f39c6b0cea67f079740e" - }, - { - "nr": 124675, - "hash": "0c909c794090f34d0b684309cb98ab0a3d7b6cee" - }, - { - "nr": 122812, - "hash": "db4745282a1e1b53b04d3b61147495e20d94c224" - }, - { - "nr": 124557, - "hash": "a157f9f70f8a0d1cb60089bcf69c17dbdd5628fa" - }, - { - "nr": 112104, - "hash": "4a0e70018281a015f09dbe4d80b87e712feebe19" - }, - { - "nr": 125377, - "hash": "a0d23810ea3d7a59d7b0bab6bb87e90210d69252" - }, - { - "nr": 125197, - "hash": "9b4fc21a810648487eeaaa3ddb04109e2b6ebc69" - }, - { - "nr": 124997, - "hash": "cdb6efae70957be91c86c7f71da5e4d44fedf444" - }, - { - "nr": 124732, - "hash": "ca6f8aa12bf7435881201549d90e96cfb233d69f" - }, - { - "nr": 124514, - "hash": "0cc011d349ee7113cac14cc0d944a8d947eb3517" - }, - { - "nr": 124374, - "hash": "9bfc06bc7b46e1728a114c73a7c7c5dc091dec9e" - }, - { - "nr": 124350, - "hash": "95b95ad42299895e4911b1b82524c951b22a0ff0" - }, - { - "nr": 124906, - "hash": "d696188e353eacd1423b003caf59bbb3e2755bc7" - }, - { - "nr": 124738, - "hash": "b303ff9412fe29f25ea7a4c428030a663e2194dc" - }, - { - "nr": 123894, - "hash": "d58652f7f0ad76a779c1aeea5d5d4c33c50612d6" - }, - { - "nr": 117842, - "hash": "b91fc75974e7b711a36ae6b6cac5bde0ade5f60e" - }, - { - "nr": 124618, - "hash": "50d543b2951e97d61ddc629fd1b4320e566d7513" - }, - { - "nr": 124287, - "hash": "d413cdb81694438a8666dc43673206ebd59e9717" - }, - { - "nr": 124419, - "hash": "d2754c62d159b106a256bfda14118b94ae8e7c9b" - }, - { - "nr": 124361, - "hash": "33fb7dcd1d93ee1b6a4eb11b07c49bb887800467" - }, - { - "nr": 124320, - "hash": "38481a7d4dc2b0fed537bf0f54fd1335f5b3e60a" - }, - { - "nr": 123316, - "hash": "97f282c839c3939130b0188637ed316cbee2e8d7" - }, - { - "nr": 125040, - "hash": "23efd81762d3bbc8e1c3c0ec4bec9ffce49a4966" - }, - { - "nr": 124381, - "hash": "c4865f31c7c79f492bc173eede92ba6dd69cac69" - }, - { - "nr": 124798, - "hash": "1b412af5b51cd585b7eefd553c1241b873111faa" - }, - { - "nr": 124544, - "hash": "3fbc84ac31303473c23fd38f8b8ee572d84a1203" - }, - { - "nr": 124189, - "hash": "dd9d43f3dbd930e01b4cf342ba6e038c98645fdc" - }, - { - "nr": 123398, - "hash": "487da1fcd2daaca7ad5df673a5fd1ce7d69b7399" - }, - { - "nr": 124496, - "hash": "39b06c7162540caec0ef7d3a2d453edffc0cecff" - }, - { - "nr": 123597, - "hash": "9287f333d63c4458bb5d098427c6d21d42b6e754" - }, - { - "nr": 124444, - "hash": "f021df034bfb03f3c60a73b876e73f6d392dc6d2" - }, - { - "nr": 122038, - "hash": "987a0b0d828933c3d5f7cd0cb2b724031b9a2df8" - }, - { - "nr": 124683, - "hash": "e562f5ed12535001d854ce41ed9400a0e3c11374" - }, - { - "nr": 124673, - "hash": "43464caecd2779aa2c9e629f779ef4900b11dc34" - }, - { - "nr": 124503, - "hash": "0e189417b08072b94cc64d8dc31e07c70449754b" - }, - { - "nr": 124055, - "hash": "4852717d78bc431f0bdfc6cf3c138cd3ae9ba6f8" - }, - { - "nr": 121970, - "hash": "e0b9159df0568b4544a5a32574253da1c41b2a56" - }, - { - "nr": 124509, - "hash": "a3c3d84b692c0e759461d1de602e46108f30ed59" - }, - { - "nr": 124714, - "hash": "1681e9423ecfd68390e2c2878b500c73885a86aa" - }, - { - "nr": 124352, - "hash": "21f8c46178490fd75e80de14c86299b5088be5e1" - }, - { - "nr": 124027, - "hash": "eb0245f1044297e83c0d936fec581c99eed9a29c" - }, - { - "nr": 124116, - "hash": "c7f7dd3766dbbbc86c0c84f22872618f551cc4df" - }, - { - "nr": 125015, - "hash": "e9195455f3670e869c734762cc3f460532bad417" - }, - { - "nr": 120696, - "hash": "411bc2a1debc44d07014263403d7fad3ef1549a8" - }, - { - "nr": 124417, - "hash": "58b7f9939f104259e81a5c75a0542a2f54386d93" - }, - { - "nr": 123233, - "hash": "2ca696156f6b995b58a6071c075c1daf23640c36" - }, - { - "nr": 124344, - "hash": "1f6d6c05e4b6485877657754b55aa7c4039bb31d" - }, - { - "nr": 120699, - "hash": "268c499f92c5a1cf8ad666765b5a672cdfe17f88" - }, - { - "nr": 124685, - "hash": "a525c6e5508ded260a094eb46c69e55ca482954e" - }, - { - "nr": 124653, - "hash": "b84d08215f479cd8a78758ae991624882691d10b" - }, - { - "nr": 124598, - "hash": "897a11220c6f1dae6e80ffb27d641759389db1b0" - }, - { - "nr": 124123, - "hash": "76a557a83f59fe1bc5be65eaecb8137daf7c4322" - }, - { - "nr": 124942, - "hash": "0f71925f4c84e4ebe96054bdaf09843d577ccf18" - }, - { - "nr": 125272, - "hash": "4d9826d6de3f5e376418cdca797b87497e709614" - }, - { - "nr": 125179, - "hash": "ff81c7b633538ccc160f098932c486241a8367dc" - }, - { - "nr": 124828, - "hash": "37154785088cc820638a1042c93130b2e715450b" - }, - { - "nr": 124075, - "hash": "cff1a7ca04ec9d5d9de228642f5bfabb1b253ad6" - }, - { - "nr": 124373, - "hash": "105f82e04241ac52bbb0733e0f02629efc94a7f7" - }, - { - "nr": 123822, - "hash": "c0dae9669aa43c5d096c277ba77229b5aea31cdb" - }, - { - "nr": 125540, - "hash": "9d8c09129a753a9b1fcb6aec3a20d1760ea5e322" - }, - { - "nr": 124735, - "hash": "9dbfaaab3f23640db244fbc7474a491460b2d950" - }, - { - "nr": 124588, - "hash": "5d944d4fd2ffd25c73aebba39bec5854bdba024a" - }, - { - "nr": 124480, - "hash": "e1582cb83bee6ab6f6416cc4bc7f4201e4013eb0" - }, - { - "nr": 123545, - "hash": "5713db1b5b6714854e389071dd22d781dcd71207" - }, - { - "nr": 124912, - "hash": "17f8d6e0b02d2064273efb8205649ac395b06433" - }, - { - "nr": 124147, - "hash": "97b187ddc07c282a329ec3c5771c3a6a48bcc556" - }, - { - "nr": 123105, - "hash": "4174edbd33840cccf86e7105edbaed8d2b3fc83f" - }, - { - "nr": 125218, - "hash": "626861a1e768dbe3f62a9078e07818593627962c" - }, - { - "nr": 125396, - "hash": "1a64f3b4ce53704b0d7b64da170926f6c4a6b6aa" - }, - { - "nr": 125365, - "hash": "e79a434240f1f5fe89194363e5cb3ebdbcff402a" - }, - { - "nr": 118148, - "hash": "8ee792c6f21fd91f8fd4f8e92db9b55e075502e9" - }, - { - "nr": 122791, - "hash": "d5dc258a1e53067b2412c75c23896326acd48d8f" - }, - { - "nr": 124063, - "hash": "c369a7a6e91b3a61b24a4befebd7bdaa90d105aa" - }, - { - "nr": 119589, - "hash": "03be7cb575c80ecd2520892ab4a971f91e1ea02d" - }, - { - "nr": 123809, - "hash": "792055ba409a80c3c2d4701671581e9d42e4a997" - }, - { - "nr": 125175, - "hash": "6edf3ab875592f531580797a5925e4bd460ac788" - }, - { - "nr": 124017, - "hash": "bd70774772d59ba926a9f61597b63178abae21d8" - }, - { - "nr": 125112, - "hash": "20ef94f5f91e17cd0963a443dc3431726d81d765" - }, - { - "nr": 124634, - "hash": "8b7e557cface4c279af2ac6819589e2f169b8c1e" - }, - { - "nr": 121508, - "hash": "c7ada5a66a2521993289430960d5e3d8e0b0a9be" - }, - { - "nr": 124767, - "hash": "873519adbf4340389e0bb9d3602cf744d3c0a580" - }, - { - "nr": 124519, - "hash": "e764e7a1f122ef4f62e6e64c4fc8774ce03b49bc" - }, - { - "nr": 124364, - "hash": "a04ed76d13c5e63a33ffa483b72c85bc556f43f2" - }, - { - "nr": 109939, - "hash": "a806a5b3006811d43f19ab487ab1caa4713948b3" - }, - { - "nr": 124463, - "hash": "9235933fb237f89c5ec54f9d639e89b02f20bbc2" - }, - { - "nr": 125450, - "hash": "6b746f3f4d250a0539d1a8864115432755e3563d" - }, - { - "nr": 124779, - "hash": "6a049cb15e7653fac8fe25f5d09da282ddc331f1" - }, - { - "nr": 124886, - "hash": "5c0ad4510764e4d1c33858c8e812051a4ee25a5c" - }, - { - "nr": 123638, - "hash": "47d21e7910c05868b0e28d06967c3537019e9324" - }, - { - "nr": 124500, - "hash": "5859bd9a0edae5f598c8d89f08ff3619413b1865" - }, - { - "nr": 124281, - "hash": "ae70b566b755c7c5f433b5a85d25f903c269d387" - }, - { - "nr": 125157, - "hash": "4d76e686e566dea2011d5dedfebe08f8c5d7feea" - }, - { - "nr": 124329, - "hash": "3e115b53790245a91db610f3be307c56184645de" - }, - { - "nr": 122234, - "hash": "1e5df02d8a8b595ede2286728389bc963400cc3a" - }, - { - "nr": 125150, - "hash": "f3bab03084f9edba991b015109f947c0e1e5c403" - }, - { - "nr": 123149, - "hash": "be81038a8e5a93ee98c30a1ce99cbceb4150d8d8" - }, - { - "nr": 122979, - "hash": "55865995854310d9e94c4bd67b86df574a36034f" - }, - { - "nr": 124393, - "hash": "161911dcfbe6fff7673681c2d9d9633c0e22e48e" - }, - { - "nr": 125480, - "hash": "09c8424a3254c1a0d06439078dcbca51e7184f5b" - }, - { - "nr": 124465, - "hash": "bac79d60606491f42f45fbb8491c8a7828d20b2d" - }, - { - "nr": 124926, - "hash": "62f49250054f464679d7d073851fd758da768e1f" - }, - { - "nr": 124793, - "hash": "5e456b7c4fc7d0977e95f76f3ef79c38105bdd71" - }, - { - "nr": 124681, - "hash": "73cb8fa12a4ac57307dc2a32ba2a1e29bc4aad8b" - }, - { - "nr": 125029, - "hash": "73801cf695f319834570ba95ffa255668e575e7c" - }, - { - "nr": 125176, - "hash": "c6e420750c3244467267a3d5287e20166d4abdb6" - }, - { - "nr": 124865, - "hash": "4c93de27a6e0c101dff405e08d299890c0a4c5a5" - }, - { - "nr": 124612, - "hash": "a56d98834ef1c2e514bde2b9246784127194569f" - }, - { - "nr": 124428, - "hash": "5dfb21810c53ba4f7061e80953799c600439efe6" - }, - { - "nr": 124131, - "hash": "6d7408294ed2e295463a591348ae5814a8de9eef" - }, - { - "nr": 124516, - "hash": "cdc815b6be6f9b1c2f5940d257ff62c9fd87086b" - }, - { - "nr": 125459, - "hash": "acaefe3ec39346d173c661b72e4e2a826b0d5bb4" - }, - { - "nr": 124316, - "hash": "06a978f76176eef4b999248eaa131bbe184dab71" - }, - { - "nr": 123315, - "hash": "144afe9eaf59532930c8513de42b043efdbb4292" - }, - { - "nr": 124299, - "hash": "0cec7993c5ae2be63cc1d8bea8c629c830fcdd85" - }, - { - "nr": 123587, - "hash": "291aef12ad9310947267480b0a6d831cd6628af8" - }, - { - "nr": 124026, - "hash": "792d9d4f7c403cfe7bc395f8807d3610228924bc" - }, - { - "nr": 125429, - "hash": "8ea1177977426359effde327138dea20da2ab005" - }, - { - "nr": 124464, - "hash": "26a87f87936e2a4b5f4ffd72babb7159ccc6a47b" - }, - { - "nr": 124375, - "hash": "491fa89c7433d5e8e03bef58c70db5bd641e5974" - }, - { - "nr": 123669, - "hash": "8a676240cd52db561d74a692613c13248b1e85a1" - }, - { - "nr": 124614, - "hash": "f7bf3b41d2588885610603f610e27a17bc1fe51a" - }, - { - "nr": 123919, - "hash": "1ec30ee9b2e1fb6bd9828edcaca29c9a33df0034" - }, - { - "nr": 124688, - "hash": "0d1aa976052fee0830e193883d3f8c9dd87ab55c" - }, - { - "nr": 122657, - "hash": "0f7d69c0047d820f5097e017ea9dc59085537e4a" - }, - { - "nr": 124210, - "hash": "dbe386cac3e699602a79498ca796deb02f42b8ca" - }, - { - "nr": 124574, - "hash": "c9fbd3f856f3eee93301334cb99118ec2782b7a8" - }, - { - "nr": 125238, - "hash": "c3db9fab9d4ce9de99d8b433738fb5045081b700" - }, - { - "nr": 124592, - "hash": "290d3f560ac56fe3d307fd7af14d0afba82ce8ac" - }, - { - "nr": 124328, - "hash": "4df5a0a6d0b818bd01a03a8884e172f68cb65b1f" - }, - { - "nr": 122471, - "hash": "612cd6a1b6081696757ea676b2b2f4287433f97d" - }, - { - "nr": 121770, - "hash": "a2c2db45c5a876809d68ceb32316895a71904c86" - }, - { - "nr": 125360, - "hash": "088b368953e590ffd6149357bfb3426dca288d4e" - }, - { - "nr": 125363, - "hash": "1f99b0fd5b4a2e6ec4b97c3dd8caf3b45cf34f95" - }, - { - "nr": 125168, - "hash": "8d1c0a27daafd2bbee568f80b02958d52b6338dd" - }, - { - "nr": 125225, - "hash": "24cab9c25ae29640fffbd7f3006a59488cd3a1c8" - }, - { - "nr": 124864, - "hash": "4702be5ee68373832e3588df94fe63d144d5cd1a" - }, - { - "nr": 123572, - "hash": "186f7f4deadafb902235b706f12e1c8a4bb6b9c6" - }, - { - "nr": 124221, - "hash": "2ec34bfa7187c1aa150dca69f5ddc3bb340a7995" - }, - { - "nr": 125528, - "hash": "b45f37caf4758e708f2a68fe5244c023062d8b02" - }, - { - "nr": 123845, - "hash": "c27f49e17836ff9561c22fcfbd3679e351cfecab" - }, - { - "nr": 124589, - "hash": "6d3fe53e2346a550306e71ed1f3c98ffd9797e0d" - }, - { - "nr": 124553, - "hash": "7e8cc1d54658924896447ccb1bee43ef9d3366c8" - }, - { - "nr": 123905, - "hash": "8c54efbc38cdb363d5d7b84d45b2de25fb0f8f1f" - }, - { - "nr": 122176, - "hash": "7e1b49fbeca52656bec0c40776aff1cefc55412d" - } - ] +{ + "mail": "satyampsoni@gmail.com", + "name": "Satyam Soni", + "date": 1719945684, + "prs": [ + { + "nr": 123620, + "hash": "3ead6bad121b4ce9ed9c7ecf171e978dcf3255c7" + }, + { + "nr": 124505, + "hash": "5c65adbaa7cc5c8a6a2403bc338c3cf1899256d8" + }, + { + "nr": 124665, + "hash": "5ffc7ada0b4e29663ef904306231eb7b80779c8f" + }, + { + "nr": 124091, + "hash": "7d58e1cd6997daffbdd7cc0d9723be7fd2f6644f" + }, + { + "nr": 124038, + "hash": "dbbfab9577ca9e14a038006053bc86e88d1a9cbf" + }, + { + "nr": 122363, + "hash": "1e305c875a3928fdf69287ad91a35eaffac0e888" + }, + { + "nr": 124546, + "hash": "7307599feeae75326c608ac448bcfd160eae4ffe" + }, + { + "nr": 124948, + "hash": "6a90ba8565b2d869678f22e7e2a83ef69c28c202" + }, + { + "nr": 124883, + "hash": "28b4a3fc849f88fd6b34020641eb5162241229ef" + }, + { + "nr": 124462, + "hash": "6dd66ca4d9cf15d1b29c775477a94edbb1a9c0f7" + }, + { + "nr": 124715, + "hash": "7b4670287995ff10233cbd4af1497570abf83487" + }, + { + "nr": 124383, + "hash": "132917b04e7619558e45a8365731d98f2de0d3f6" + }, + { + "nr": 125388, + "hash": "4480991c12fb8e3172ec782c82f60732ba0bc72f" + }, + { + "nr": 125067, + "hash": "3461099ac04ab2071b9ce64c00f04acf373d1a55" + }, + { + "nr": 124220, + "hash": "f6abfe37a83ebd13cf5977f2476a52d6266dddb3" + }, + { + "nr": 124933, + "hash": "e3f0167fbfc6872eaeba6551ae4545946e8cff65" + }, + { + "nr": 122499, + "hash": "addb69458b256c089931797b7dcc1ef7db6ef644" + }, + { + "nr": 125113, + "hash": "579967b921b707d5ea25d781165f83ffe8670365" + }, + { + "nr": 122892, + "hash": "43268b22bacffec796ef991488a8236738890fb8" + }, + { + "nr": 125265, + "hash": "391d3c4088458ad503b3d95b77b6efc32d667cda" + }, + { + "nr": 125235, + "hash": "1b73bef8b8c3af48ad62967b85f5cac8886616d2" + }, + { + "nr": 124635, + "hash": "ddfb614486f067bfba1507c71e696bc5b4388118" + }, + { + "nr": 123797, + "hash": "ed5fcffbc64a2a3bd9e730b3115622eb028565da" + }, + { + "nr": 122082, + "hash": "d5e46a1f59a1f82f9c81227ce0f2ff8082f05484" + }, + { + "nr": 124160, + "hash": "f0314a05351ade5c1b8cf6651b1e4ff9cb3236f5" + }, + { + "nr": 124820, + "hash": "cad757c055aebd1c79f8f39c6b0cea67f079740e" + }, + { + "nr": 124675, + "hash": "0c909c794090f34d0b684309cb98ab0a3d7b6cee" + }, + { + "nr": 122812, + "hash": "db4745282a1e1b53b04d3b61147495e20d94c224" + }, + { + "nr": 124557, + "hash": "a157f9f70f8a0d1cb60089bcf69c17dbdd5628fa" + }, + { + "nr": 112104, + "hash": "4a0e70018281a015f09dbe4d80b87e712feebe19" + }, + { + "nr": 125377, + "hash": "a0d23810ea3d7a59d7b0bab6bb87e90210d69252" + }, + { + "nr": 125197, + "hash": "9b4fc21a810648487eeaaa3ddb04109e2b6ebc69" + }, + { + "nr": 124997, + "hash": "cdb6efae70957be91c86c7f71da5e4d44fedf444" + }, + { + "nr": 124732, + "hash": "ca6f8aa12bf7435881201549d90e96cfb233d69f" + }, + { + "nr": 124514, + "hash": "0cc011d349ee7113cac14cc0d944a8d947eb3517" + }, + { + "nr": 124374, + "hash": "9bfc06bc7b46e1728a114c73a7c7c5dc091dec9e" + }, + { + "nr": 124350, + "hash": "95b95ad42299895e4911b1b82524c951b22a0ff0" + }, + { + "nr": 124906, + "hash": "d696188e353eacd1423b003caf59bbb3e2755bc7" + }, + { + "nr": 124738, + "hash": "b303ff9412fe29f25ea7a4c428030a663e2194dc" + }, + { + "nr": 123894, + "hash": "d58652f7f0ad76a779c1aeea5d5d4c33c50612d6" + }, + { + "nr": 117842, + "hash": "b91fc75974e7b711a36ae6b6cac5bde0ade5f60e" + }, + { + "nr": 124618, + "hash": "50d543b2951e97d61ddc629fd1b4320e566d7513" + }, + { + "nr": 124287, + "hash": "d413cdb81694438a8666dc43673206ebd59e9717" + }, + { + "nr": 124419, + "hash": "d2754c62d159b106a256bfda14118b94ae8e7c9b" + }, + { + "nr": 124361, + "hash": "33fb7dcd1d93ee1b6a4eb11b07c49bb887800467" + }, + { + "nr": 124320, + "hash": "38481a7d4dc2b0fed537bf0f54fd1335f5b3e60a" + }, + { + "nr": 123316, + "hash": "97f282c839c3939130b0188637ed316cbee2e8d7" + }, + { + "nr": 125040, + "hash": "23efd81762d3bbc8e1c3c0ec4bec9ffce49a4966" + }, + { + "nr": 124381, + "hash": "c4865f31c7c79f492bc173eede92ba6dd69cac69" + }, + { + "nr": 124798, + "hash": "1b412af5b51cd585b7eefd553c1241b873111faa" + }, + { + "nr": 124544, + "hash": "3fbc84ac31303473c23fd38f8b8ee572d84a1203" + }, + { + "nr": 124189, + "hash": "dd9d43f3dbd930e01b4cf342ba6e038c98645fdc" + }, + { + "nr": 123398, + "hash": "487da1fcd2daaca7ad5df673a5fd1ce7d69b7399" + }, + { + "nr": 124496, + "hash": "39b06c7162540caec0ef7d3a2d453edffc0cecff" + }, + { + "nr": 123597, + "hash": "9287f333d63c4458bb5d098427c6d21d42b6e754" + }, + { + "nr": 124444, + "hash": "f021df034bfb03f3c60a73b876e73f6d392dc6d2" + }, + { + "nr": 122038, + "hash": "987a0b0d828933c3d5f7cd0cb2b724031b9a2df8" + }, + { + "nr": 124683, + "hash": "e562f5ed12535001d854ce41ed9400a0e3c11374" + }, + { + "nr": 124673, + "hash": "43464caecd2779aa2c9e629f779ef4900b11dc34" + }, + { + "nr": 124503, + "hash": "0e189417b08072b94cc64d8dc31e07c70449754b" + }, + { + "nr": 124055, + "hash": "4852717d78bc431f0bdfc6cf3c138cd3ae9ba6f8" + }, + { + "nr": 121970, + "hash": "e0b9159df0568b4544a5a32574253da1c41b2a56" + }, + { + "nr": 124509, + "hash": "a3c3d84b692c0e759461d1de602e46108f30ed59" + }, + { + "nr": 124714, + "hash": "1681e9423ecfd68390e2c2878b500c73885a86aa" + }, + { + "nr": 124352, + "hash": "21f8c46178490fd75e80de14c86299b5088be5e1" + }, + { + "nr": 124027, + "hash": "eb0245f1044297e83c0d936fec581c99eed9a29c" + }, + { + "nr": 124116, + "hash": "c7f7dd3766dbbbc86c0c84f22872618f551cc4df" + }, + { + "nr": 125015, + "hash": "e9195455f3670e869c734762cc3f460532bad417" + }, + { + "nr": 120696, + "hash": "411bc2a1debc44d07014263403d7fad3ef1549a8" + }, + { + "nr": 124417, + "hash": "58b7f9939f104259e81a5c75a0542a2f54386d93" + }, + { + "nr": 123233, + "hash": "2ca696156f6b995b58a6071c075c1daf23640c36" + }, + { + "nr": 124344, + "hash": "1f6d6c05e4b6485877657754b55aa7c4039bb31d" + }, + { + "nr": 120699, + "hash": "268c499f92c5a1cf8ad666765b5a672cdfe17f88" + }, + { + "nr": 124685, + "hash": "a525c6e5508ded260a094eb46c69e55ca482954e" + }, + { + "nr": 124653, + "hash": "b84d08215f479cd8a78758ae991624882691d10b" + }, + { + "nr": 124598, + "hash": "897a11220c6f1dae6e80ffb27d641759389db1b0" + }, + { + "nr": 124123, + "hash": "76a557a83f59fe1bc5be65eaecb8137daf7c4322" + }, + { + "nr": 124942, + "hash": "0f71925f4c84e4ebe96054bdaf09843d577ccf18" + }, + { + "nr": 125272, + "hash": "4d9826d6de3f5e376418cdca797b87497e709614" + }, + { + "nr": 125179, + "hash": "ff81c7b633538ccc160f098932c486241a8367dc" + }, + { + "nr": 124828, + "hash": "37154785088cc820638a1042c93130b2e715450b" + }, + { + "nr": 124075, + "hash": "cff1a7ca04ec9d5d9de228642f5bfabb1b253ad6" + }, + { + "nr": 124373, + "hash": "105f82e04241ac52bbb0733e0f02629efc94a7f7" + }, + { + "nr": 123822, + "hash": "c0dae9669aa43c5d096c277ba77229b5aea31cdb" + }, + { + "nr": 125540, + "hash": "9d8c09129a753a9b1fcb6aec3a20d1760ea5e322" + }, + { + "nr": 124735, + "hash": "9dbfaaab3f23640db244fbc7474a491460b2d950" + }, + { + "nr": 124588, + "hash": "5d944d4fd2ffd25c73aebba39bec5854bdba024a" + }, + { + "nr": 124480, + "hash": "e1582cb83bee6ab6f6416cc4bc7f4201e4013eb0" + }, + { + "nr": 123545, + "hash": "5713db1b5b6714854e389071dd22d781dcd71207" + }, + { + "nr": 124912, + "hash": "17f8d6e0b02d2064273efb8205649ac395b06433" + }, + { + "nr": 124147, + "hash": "97b187ddc07c282a329ec3c5771c3a6a48bcc556" + }, + { + "nr": 123105, + "hash": "4174edbd33840cccf86e7105edbaed8d2b3fc83f" + }, + { + "nr": 125218, + "hash": "626861a1e768dbe3f62a9078e07818593627962c" + }, + { + "nr": 125396, + "hash": "1a64f3b4ce53704b0d7b64da170926f6c4a6b6aa" + }, + { + "nr": 125365, + "hash": "e79a434240f1f5fe89194363e5cb3ebdbcff402a" + }, + { + "nr": 118148, + "hash": "8ee792c6f21fd91f8fd4f8e92db9b55e075502e9" + }, + { + "nr": 122791, + "hash": "d5dc258a1e53067b2412c75c23896326acd48d8f" + }, + { + "nr": 124063, + "hash": "c369a7a6e91b3a61b24a4befebd7bdaa90d105aa" + }, + { + "nr": 119589, + "hash": "03be7cb575c80ecd2520892ab4a971f91e1ea02d" + }, + { + "nr": 123809, + "hash": "792055ba409a80c3c2d4701671581e9d42e4a997" + }, + { + "nr": 125175, + "hash": "6edf3ab875592f531580797a5925e4bd460ac788" + }, + { + "nr": 124017, + "hash": "bd70774772d59ba926a9f61597b63178abae21d8" + }, + { + "nr": 125112, + "hash": "20ef94f5f91e17cd0963a443dc3431726d81d765" + }, + { + "nr": 124634, + "hash": "8b7e557cface4c279af2ac6819589e2f169b8c1e" + }, + { + "nr": 121508, + "hash": "c7ada5a66a2521993289430960d5e3d8e0b0a9be" + }, + { + "nr": 124767, + "hash": "873519adbf4340389e0bb9d3602cf744d3c0a580" + }, + { + "nr": 124519, + "hash": "e764e7a1f122ef4f62e6e64c4fc8774ce03b49bc" + }, + { + "nr": 124364, + "hash": "a04ed76d13c5e63a33ffa483b72c85bc556f43f2" + }, + { + "nr": 109939, + "hash": "a806a5b3006811d43f19ab487ab1caa4713948b3" + }, + { + "nr": 124463, + "hash": "9235933fb237f89c5ec54f9d639e89b02f20bbc2" + }, + { + "nr": 125450, + "hash": "6b746f3f4d250a0539d1a8864115432755e3563d" + }, + { + "nr": 124779, + "hash": "6a049cb15e7653fac8fe25f5d09da282ddc331f1" + }, + { + "nr": 124886, + "hash": "5c0ad4510764e4d1c33858c8e812051a4ee25a5c" + }, + { + "nr": 123638, + "hash": "47d21e7910c05868b0e28d06967c3537019e9324" + }, + { + "nr": 124500, + "hash": "5859bd9a0edae5f598c8d89f08ff3619413b1865" + }, + { + "nr": 124281, + "hash": "ae70b566b755c7c5f433b5a85d25f903c269d387" + }, + { + "nr": 125157, + "hash": "4d76e686e566dea2011d5dedfebe08f8c5d7feea" + }, + { + "nr": 124329, + "hash": "3e115b53790245a91db610f3be307c56184645de" + }, + { + "nr": 122234, + "hash": "1e5df02d8a8b595ede2286728389bc963400cc3a" + }, + { + "nr": 125150, + "hash": "f3bab03084f9edba991b015109f947c0e1e5c403" + }, + { + "nr": 123149, + "hash": "be81038a8e5a93ee98c30a1ce99cbceb4150d8d8" + }, + { + "nr": 122979, + "hash": "55865995854310d9e94c4bd67b86df574a36034f" + }, + { + "nr": 124393, + "hash": "161911dcfbe6fff7673681c2d9d9633c0e22e48e" + }, + { + "nr": 125480, + "hash": "09c8424a3254c1a0d06439078dcbca51e7184f5b" + }, + { + "nr": 124465, + "hash": "bac79d60606491f42f45fbb8491c8a7828d20b2d" + }, + { + "nr": 124926, + "hash": "62f49250054f464679d7d073851fd758da768e1f" + }, + { + "nr": 124793, + "hash": "5e456b7c4fc7d0977e95f76f3ef79c38105bdd71" + }, + { + "nr": 124681, + "hash": "73cb8fa12a4ac57307dc2a32ba2a1e29bc4aad8b" + }, + { + "nr": 125029, + "hash": "73801cf695f319834570ba95ffa255668e575e7c" + }, + { + "nr": 125176, + "hash": "c6e420750c3244467267a3d5287e20166d4abdb6" + }, + { + "nr": 124865, + "hash": "4c93de27a6e0c101dff405e08d299890c0a4c5a5" + }, + { + "nr": 124612, + "hash": "a56d98834ef1c2e514bde2b9246784127194569f" + }, + { + "nr": 124428, + "hash": "5dfb21810c53ba4f7061e80953799c600439efe6" + }, + { + "nr": 124131, + "hash": "6d7408294ed2e295463a591348ae5814a8de9eef" + }, + { + "nr": 124516, + "hash": "cdc815b6be6f9b1c2f5940d257ff62c9fd87086b" + }, + { + "nr": 125459, + "hash": "acaefe3ec39346d173c661b72e4e2a826b0d5bb4" + }, + { + "nr": 124316, + "hash": "06a978f76176eef4b999248eaa131bbe184dab71" + }, + { + "nr": 123315, + "hash": "144afe9eaf59532930c8513de42b043efdbb4292" + }, + { + "nr": 124299, + "hash": "0cec7993c5ae2be63cc1d8bea8c629c830fcdd85" + }, + { + "nr": 123587, + "hash": "291aef12ad9310947267480b0a6d831cd6628af8" + }, + { + "nr": 124026, + "hash": "792d9d4f7c403cfe7bc395f8807d3610228924bc" + }, + { + "nr": 125429, + "hash": "8ea1177977426359effde327138dea20da2ab005" + }, + { + "nr": 124464, + "hash": "26a87f87936e2a4b5f4ffd72babb7159ccc6a47b" + }, + { + "nr": 124375, + "hash": "491fa89c7433d5e8e03bef58c70db5bd641e5974" + }, + { + "nr": 123669, + "hash": "8a676240cd52db561d74a692613c13248b1e85a1" + }, + { + "nr": 124614, + "hash": "f7bf3b41d2588885610603f610e27a17bc1fe51a" + }, + { + "nr": 123919, + "hash": "1ec30ee9b2e1fb6bd9828edcaca29c9a33df0034" + }, + { + "nr": 124688, + "hash": "0d1aa976052fee0830e193883d3f8c9dd87ab55c" + }, + { + "nr": 122657, + "hash": "0f7d69c0047d820f5097e017ea9dc59085537e4a" + }, + { + "nr": 124210, + "hash": "dbe386cac3e699602a79498ca796deb02f42b8ca" + }, + { + "nr": 124574, + "hash": "c9fbd3f856f3eee93301334cb99118ec2782b7a8" + }, + { + "nr": 125238, + "hash": "c3db9fab9d4ce9de99d8b433738fb5045081b700" + }, + { + "nr": 124592, + "hash": "290d3f560ac56fe3d307fd7af14d0afba82ce8ac" + }, + { + "nr": 124328, + "hash": "4df5a0a6d0b818bd01a03a8884e172f68cb65b1f" + }, + { + "nr": 122471, + "hash": "612cd6a1b6081696757ea676b2b2f4287433f97d" + }, + { + "nr": 121770, + "hash": "a2c2db45c5a876809d68ceb32316895a71904c86" + }, + { + "nr": 125360, + "hash": "088b368953e590ffd6149357bfb3426dca288d4e" + }, + { + "nr": 125363, + "hash": "1f99b0fd5b4a2e6ec4b97c3dd8caf3b45cf34f95" + }, + { + "nr": 125168, + "hash": "8d1c0a27daafd2bbee568f80b02958d52b6338dd" + }, + { + "nr": 125225, + "hash": "24cab9c25ae29640fffbd7f3006a59488cd3a1c8" + }, + { + "nr": 124864, + "hash": "4702be5ee68373832e3588df94fe63d144d5cd1a" + }, + { + "nr": 123572, + "hash": "186f7f4deadafb902235b706f12e1c8a4bb6b9c6" + }, + { + "nr": 124221, + "hash": "2ec34bfa7187c1aa150dca69f5ddc3bb340a7995" + }, + { + "nr": 125528, + "hash": "b45f37caf4758e708f2a68fe5244c023062d8b02" + }, + { + "nr": 123845, + "hash": "c27f49e17836ff9561c22fcfbd3679e351cfecab" + }, + { + "nr": 124589, + "hash": "6d3fe53e2346a550306e71ed1f3c98ffd9797e0d" + }, + { + "nr": 124553, + "hash": "7e8cc1d54658924896447ccb1bee43ef9d3366c8" + }, + { + "nr": 123905, + "hash": "8c54efbc38cdb363d5d7b84d45b2de25fb0f8f1f" + }, + { + "nr": 122176, + "hash": "7e1b49fbeca52656bec0c40776aff1cefc55412d" + } + ] } \ No newline at end of file diff --git a/releases/release-1.31/release-notes/sessions/maps-1721052956.json b/releases/release-1.31/release-notes/sessions/maps-1721052956.json index c1a78ae2588..5401ebb44d4 100644 --- a/releases/release-1.31/release-notes/sessions/maps-1721052956.json +++ b/releases/release-1.31/release-notes/sessions/maps-1721052956.json @@ -1,859 +1,859 @@ -{ - "mail": "satyampsoni@gmail.com", - "name": "Satyam Soni", - "date": 1721052956, - "prs": [ - { - "nr": 118148, - "hash": "cb3d6acb41e3c580a5e25e6e2d68e2f99485c085" - }, - { - "nr": 124685, - "hash": "7a4ede814b8464e34ffb1c1a7d293c4453fa93a9" - }, - { - "nr": 124906, - "hash": "5006e2dc84b0d9cc3ce3e6bbc0b608ea2af1dcad" - }, - { - "nr": 124864, - "hash": "8765ccbb786d4308ed0314860dec6a5f5e178d7c" - }, - { - "nr": 124598, - "hash": "82e3b2e92ce0abab94b1fd975dccea8a92b9a834" - }, - { - "nr": 124287, - "hash": "ee7534535dabd013154f2a011cf1323261ad4b1c" - }, - { - "nr": 125238, - "hash": "8c5d2462581bdb94a8a6c071379b3fa3f6b8e0b9" - }, - { - "nr": 123638, - "hash": "e0615ef24b59348137c78ff2a1706f9ed1e0efcb" - }, - { - "nr": 124189, - "hash": "8f05fac107bfcc313a496368db236eb580c2af8b" - }, - { - "nr": 124329, - "hash": "f860b556a4d10e18acf511f39c5de3050736b05c" - }, - { - "nr": 124381, - "hash": "66f8e193c56161d1c5dc284a1b364504cb709841" - }, - { - "nr": 124618, - "hash": "1780003494ca28a0b20d85aa9a8f9d5ab4ed1093" - }, - { - "nr": 125317, - "hash": "a678e8d2545e4f9546d4499b0f7ec88fca2e6ac2" - }, - { - "nr": 124463, - "hash": "22e631e7be0a2ed2f61b5dd8d69b81363a017863" - }, - { - "nr": 123572, - "hash": "e8d982f01163d925003c06bd53beba606d8d26d7" - }, - { - "nr": 125029, - "hash": "f066a2665074adb404fc9905a1818abb72a90873" - }, - { - "nr": 124383, - "hash": "6cd53fafb8ccc79b97c6b5bfc81f920aee3b9ec3" - }, - { - "nr": 125779, - "hash": "37b70bb4401b8330fd7da078c3b10ad8501e4200" - }, - { - "nr": 125175, - "hash": "bbe116b0edc3485177e451c8edbd705affe59726" - }, - { - "nr": 124374, - "hash": "44043bda4d44d020dd160361cb2bbf2ec4fe9749" - }, - { - "nr": 124123, - "hash": "41272af9bd27e49ea7e22c3128cc205d2570f567" - }, - { - "nr": 125641, - "hash": "d9d3f988342f07f809976fc39fc9d18810c6adf1" - }, - { - "nr": 125263, - "hash": "97965edc32ac29fb870ecb881be1fbaf0678805e" - }, - { - "nr": 125016, - "hash": "72d96b3a0a3c4ff91df81f19cd5cce3c6b96804b" - }, - { - "nr": 123845, - "hash": "a2eadc432312ead1ba026600291507a18d5a02b2" - }, - { - "nr": 124500, - "hash": "8849e77fc01ce7e65910ac397161933d662646f1" - }, - { - "nr": 125646, - "hash": "a603dbe38a807814ddab7dbb5326a7c0b5e239d5" - }, - { - "nr": 124779, - "hash": "7511163273df1bafd1500f856b439214c7684a8e" - }, - { - "nr": 124738, - "hash": "3e68d6fe9f01a8b56853ee12976cdb1c8ad30489" - }, - { - "nr": 120696, - "hash": "7f1e250fae8559221dc545d0580d9c2fc1eaa764" - }, - { - "nr": 123597, - "hash": "2f7fa072c3971f3841c6b86679ea6fdbb215a3e0" - }, - { - "nr": 124462, - "hash": "e0de8ae10beab01e666f76d976ba22a82be78bbe" - }, - { - "nr": 124350, - "hash": "8f8f34a6fd3baa7aa4a95716a289636261684231" - }, - { - "nr": 124886, - "hash": "f0e1216de44921f9e89ac724d62a65e5204ddc63" - }, - { - "nr": 124496, - "hash": "efa88a14659bcdafb427b92f0e0343116d2e09cc" - }, - { - "nr": 124352, - "hash": "46810bfe17ad150f4d7e25e513d7105fd389f67b" - }, - { - "nr": 124055, - "hash": "15995c561561af3340b0b61079aa3ca4695d2de4" - }, - { - "nr": 124025, - "hash": "b1259ae4e5089786efea2c7dd27a648a2be11387" - }, - { - "nr": 124091, - "hash": "6203fd17e1f0336690ed54db9f1fe69031db120d" - }, - { - "nr": 125162, - "hash": "fcef706282d1f77a4c70433bb73f01819b65ed0f" - }, - { - "nr": 125112, - "hash": "cbb6f6ed5d7324bd77ba37b1ad7218a5a13d450b" - }, - { - "nr": 124589, - "hash": "9e3b1f6911b91471baff7d448735f81f76196669" - }, - { - "nr": 124344, - "hash": "48bc7be96fd2d49dd684380bafd918bfe5b9cfdd" - }, - { - "nr": 124364, - "hash": "6cfeb5e9aa81cb9b5b989e11d1e4ebb0519c9817" - }, - { - "nr": 124026, - "hash": "7464ab1f22055612545e504cf99a965347b94f65" - }, - { - "nr": 124316, - "hash": "b322f8db441c8a1232a0454457d128f302ecc2b5" - }, - { - "nr": 124361, - "hash": "68a471d2762d8edd75ed96a2466bf716d408a828" - }, - { - "nr": 125225, - "hash": "8d888e41432ebd78d3d60a132aa994b350ce6b2e" - }, - { - "nr": 124715, - "hash": "823dcc1c333a6887dccd440f8402c60d7e55cc68" - }, - { - "nr": 122657, - "hash": "144aa68f12b9c60c9d37a064da6dce2f60a0e746" - }, - { - "nr": 122979, - "hash": "af6aa362e77407f475f02d9f30ad352f9dded280" - }, - { - "nr": 124519, - "hash": "a3ce12e52f88eb8af8aa6aa33723d3f43f2f0601" - }, - { - "nr": 123105, - "hash": "bc71deddf349eb9d6bbb8bf5317c732887ac85ee" - }, - { - "nr": 124667, - "hash": "551f7faee958312460b4744d5e2bc597d68370fc" - }, - { - "nr": 125265, - "hash": "0ebd271eec36a4e50d2f1507a1d88f7f3bebe58f" - }, - { - "nr": 125235, - "hash": "b9fe8c3f309ed5d111fe8920c1cbafe61f9e318b" - }, - { - "nr": 122791, - "hash": "eb1893ad040bc42c3baddfa37bb705638a9d2b8f" - }, - { - "nr": 123233, - "hash": "0e9e692667849a7b2837c12d072978e1090a85f3" - }, - { - "nr": 124514, - "hash": "a4372e97f5e190b7ecd4b939ed512d58962a9847" - }, - { - "nr": 125145, - "hash": "38d11a2cf48974c56d538e7bf7c40e364b18b593" - }, - { - "nr": 112104, - "hash": "78d8ed4442a0b321752c11f0180432c83334a72e" - }, - { - "nr": 125113, - "hash": "012f76a54941d1c9a55e8cc4e65456c5a4290901" - }, - { - "nr": 125584, - "hash": "0eeda825de31d929e214ca38121069050e901283" - }, - { - "nr": 124735, - "hash": "f90a171486c46db26bb5d3fea90bd6b22336dbb5" - }, - { - "nr": 124665, - "hash": "84b631babe95bb633c59c6771ef96871db55f881" - }, - { - "nr": 122812, - "hash": "e8f372deeb28637196fb35c74e2fa43eeabc4124" - }, - { - "nr": 125582, - "hash": "99343959be64787ed871eaccd0e8da667bd07175" - }, - { - "nr": 125377, - "hash": "e4880cab3c486330959b6ccf00dea9c7556d7f11" - }, - { - "nr": 125122, - "hash": "f127df88d9e3ce2a2642d13ac82a7fc0aaf9d157" - }, - { - "nr": 124503, - "hash": "816c7e62bc795f33dd10c6cb8a12c1d8b07dca99" - }, - { - "nr": 125527, - "hash": "4d7450df7f1636520b6a154668cd337566df3be8" - }, - { - "nr": 124160, - "hash": "2fe1620e86e6fb320f37f02a4bd09a9f4a7f8d9e" - }, - { - "nr": 124997, - "hash": "d6200d921c2c812fd4dcf61fed23f64cbea7e4c6" - }, - { - "nr": 123149, - "hash": "34754e17496b34fd7a1af7cfec62987201260445" - }, - { - "nr": 124820, - "hash": "7deb2d41c6469d4a2055f5a74f36a37ad21eb2e0" - }, - { - "nr": 123905, - "hash": "5029d110ae7a2f29e7b45d1a29bc24a536aecb03" - }, - { - "nr": 125546, - "hash": "0365b5a0a1f914080f3c5da28e90c53cb94ec912" - }, - { - "nr": 125429, - "hash": "a7f05c22cbc8a6b9e94bb5f17e6701c37aa380e0" - }, - { - "nr": 123545, - "hash": "38d576bedb5502c22b1da7b78edf0eef502a9c5a" - }, - { - "nr": 123919, - "hash": "2040b5d51256a5842028b7fbe0637961ee353df3" - }, - { - "nr": 124767, - "hash": "d3cacf453e32214747b4fea4f8906573828d46f4" - }, - { - "nr": 124075, - "hash": "c9d4980d9ef488e1440527c420ed11af6e201ef9" - }, - { - "nr": 124419, - "hash": "5704343a67430849fe64a89a7c1cc63ffc674f56" - }, - { - "nr": 125540, - "hash": "575a346d16219759fda020e1bc387effb7de8dad" - }, - { - "nr": 124793, - "hash": "361a5d16f3ad99d66778d829f555b6014903dd38" - }, - { - "nr": 124038, - "hash": "63671fb21e195f910b77bee52799a9e27f2300a2" - }, - { - "nr": 124465, - "hash": "0e273851060b1b32e067890d0b95ca9256981d98" - }, - { - "nr": 124063, - "hash": "89917e19f3dc2b6d1175c248337edb00bcb87a55" - }, - { - "nr": 124681, - "hash": "3acc83dd50d01e58c0164055edbfa163da8be74d" - }, - { - "nr": 124516, - "hash": "dce46744d51622db1357b21e505cd73941c8c35a" - }, - { - "nr": 124417, - "hash": "35779fd3010056d5b2c7e865177c74280bfc6709" - }, - { - "nr": 124931, - "hash": "8d7f8ae7599a0675e958a4651c06726c87c01087" - }, - { - "nr": 123428, - "hash": "2af1b1cdf1525499e482c650183e12e41c80d680" - }, - { - "nr": 124574, - "hash": "2aee882ab057c1c6d8fe71098a711dce376e58bd" - }, - { - "nr": 124588, - "hash": "8cc20b84dae6382407eb073c2fef29c7e3cc683b" - }, - { - "nr": 123797, - "hash": "f42a1da40eec0c7aeb1afd64673dce8a41c613a5" - }, - { - "nr": 121970, - "hash": "2cb399215973046ba849d7fc03d755bba1a6ee84" - }, - { - "nr": 125528, - "hash": "6947c05372f8e6a9153692a613902985aa9a9bd3" - }, - { - "nr": 124328, - "hash": "81d4cc88fc27a91a7f7e791522cdeff6dd87211a" - }, - { - "nr": 125218, - "hash": "03bab8f4167b60a5535763a74f982fcd09a2b209" - }, - { - "nr": 125396, - "hash": "5d6b59299c2ccb15f3c619df51f4b9aba383eff6" - }, - { - "nr": 124544, - "hash": "c1668f3c95669f15259240b79096e049ac6a6bfa" - }, - { - "nr": 125578, - "hash": "e90bb2b0088d7db94484869e3e893b2d3fc51a21" - }, - { - "nr": 125549, - "hash": "4de9581a4aa559d198e9b45ec1d09ab1cda08d92" - }, - { - "nr": 121508, - "hash": "51bcec56bbf500a3022c296f839725899bf775be" - }, - { - "nr": 124375, - "hash": "e86726d6086183e897a51f6d83838c5d1e9010a4" - }, - { - "nr": 123894, - "hash": "e91aff06ef5069adfeca1c34d520904ddc310a33" - }, - { - "nr": 125117, - "hash": "1bcd8af18470fa07519960aea9fff56ccd9b4a9b" - }, - { - "nr": 124926, - "hash": "dee97da945665e49fb0656cb8065f082696553b5" - }, - { - "nr": 124116, - "hash": "f2b2db49e6df327f136885fa76e6a69969313dee" - }, - { - "nr": 125197, - "hash": "4f7085d280d594b1c783b8ad14da42a85f40857e" - }, - { - "nr": 125787, - "hash": "bcbdc52ec26d5293a240628ae5a6a1137d85f4b2" - }, - { - "nr": 125536, - "hash": "dcb148488564700045638cf1890e308448bd9fe2" - }, - { - "nr": 125450, - "hash": "ad61cccfb5d297d050bfc87f4d7e59b0b997b97b" - }, - { - "nr": 125363, - "hash": "49ae33bf264b7b6f39531cd7cc20fd1a75f97189" - }, - { - "nr": 122892, - "hash": "d483ad4da17d8fde4b3d6272a8e5f9ad4dbb27fe" - }, - { - "nr": 124942, - "hash": "9e6e5aaf79c7ed8f8a798002788214eebd1e657c" - }, - { - "nr": 120699, - "hash": "8ddf506a13aea4d0f959b2f208594e0406eb38e8" - }, - { - "nr": 124428, - "hash": "c18c3e2248e99d8566f336baeea5a73cdd69b0db" - }, - { - "nr": 125388, - "hash": "b7fd8f90baec275b51d086a73ba754ed29a44165" - }, - { - "nr": 124299, - "hash": "a997553bc8ed55741263d213a60169e93509c1ee" - }, - { - "nr": 125797, - "hash": "b5e4ec00c503711d45b1839fd736979ddccd5768" - }, - { - "nr": 123669, - "hash": "a9e2a1dea921bb15414a1216273b165a6a219474" - }, - { - "nr": 125776, - "hash": "d50cf02b80c6b33ec8277bceabe7b55c3f2b1745" - }, - { - "nr": 124509, - "hash": "b7b07b75fb258ddb72ac1ecb293af61ef745c134" - }, - { - "nr": 124948, - "hash": "4e71f1d8f734cd6bd9c20e557a992207a69c8884" - }, - { - "nr": 125566, - "hash": "fe81c0d8490aa1b642505eb92108c64534caa915" - }, - { - "nr": 125082, - "hash": "7633371d48abae2d2642007ee3d2e7ff845e0d14" - }, - { - "nr": 125015, - "hash": "5236ddd6daaa68d8e4fcfb1a2ef1c2d73d4b2327" - }, - { - "nr": 125758, - "hash": "73f8e4e2e2ed8addf622e6a230d732b195b800ab" - }, - { - "nr": 125359, - "hash": "fd422ae6c33dcfea33a0781a68fe3ef4e61cca8f" - }, - { - "nr": 123315, - "hash": "6480506d25a52765120fdb23d1c5b3735052e5ed" - }, - { - "nr": 124464, - "hash": "4ec6a1f9a8c226633eab19372b2dfb22e37d402e" - }, - { - "nr": 124595, - "hash": "8b454fd1d212178ef0d01b727ae52657ebcd421f" - }, - { - "nr": 125168, - "hash": "db528247c9ef1e8e93395a2394fc44c6c6bf061b" - }, - { - "nr": 123620, - "hash": "1c1728cdebd779f471fc162be78d93f5a49561ed" - }, - { - "nr": 124673, - "hash": "a2602db9d9def781eac552bd9781eed9c829febb" - }, - { - "nr": 124557, - "hash": "ab6f0c6cee22402423c5279becea67baf44efa74" - }, - { - "nr": 124027, - "hash": "68b3e02b240e03f8300c6c8ef5a87dfc5199a993" - }, - { - "nr": 122038, - "hash": "1112bf39e5c6e7cda3c39bd8e406d0b181b05aa2" - }, - { - "nr": 124933, - "hash": "465ab0ff43ac7aab841faa61d961de94daa3394f" - }, - { - "nr": 124546, - "hash": "98788963f789073a65646385eaa73246f75fbbfd" - }, - { - "nr": 125591, - "hash": "ef35445ac354d54f612f140a009e1abf6fc913f9" - }, - { - "nr": 125437, - "hash": "93879656944a4771941c6d5bfb8cec4711ce4b12" - }, - { - "nr": 125279, - "hash": "1666daa7dbe915e38429658a48c7434c9cc7eafa" - }, - { - "nr": 122499, - "hash": "bfd9682fdc7b46cc22342f7448e9fc53e66292e3" - }, - { - "nr": 124653, - "hash": "ae9a03cd0c132be1ee956e0e66696f4d2c7e334d" - }, - { - "nr": 124210, - "hash": "a01ba1c485646aad31a9cfc4ddd931e4876891fc" - }, - { - "nr": 122176, - "hash": "2e829a93f8be3cdcbcf609579247c6c72370f997" - }, - { - "nr": 125560, - "hash": "40861b194185c6e226032cf060f651c72aa54868" - }, - { - "nr": 124635, - "hash": "b201291c9117e37316c232a8713aa1eb451de253" - }, - { - "nr": 125040, - "hash": "9447d98a61d18b8de9c30f4a475ff82c609e15d4" - }, - { - "nr": 124553, - "hash": "ebb677cd4fce20e4cdab8eee8a500a795acb2ad8" - }, - { - "nr": 123587, - "hash": "4d21b69f22f04683875ffebd34df2752b62ff299" - }, - { - "nr": 125360, - "hash": "c5970fae610dc388d3a742533996a35728f5aca9" - }, - { - "nr": 124828, - "hash": "5f2359994c4600ea3d195713d6ceb00439c556cc" - }, - { - "nr": 124320, - "hash": "586bfc4dfcdb5191bb444091f1f62feb1bc5a062" - }, - { - "nr": 122471, - "hash": "72f9ebcc3b56f0b65666d86f8a3bca60031fcedf" - }, - { - "nr": 125272, - "hash": "82696aa64c19e257a617071b139a4694ccc6442c" - }, - { - "nr": 125176, - "hash": "21391d38bb95fb8bb185f78a31f476e4eb869a7f" - }, - { - "nr": 124798, - "hash": "e648719651e783ba3fd0fa5a9ac99a8673737651" - }, - { - "nr": 124480, - "hash": "9f2673b2043b5ad10d6189f8c7ed94370a50dedf" - }, - { - "nr": 122636, - "hash": "e5d7d1492b334f36af9c1e47762eb1683ae39608" - }, - { - "nr": 122082, - "hash": "83e3879ca264835a31b176b97a094d40619454c7" - }, - { - "nr": 123102, - "hash": "188b738877a0f464a1c674c70aef7f9881280f46" - }, - { - "nr": 125650, - "hash": "4325dcca976acf02165a22e7d1858b82f5e68907" - }, - { - "nr": 124220, - "hash": "90a1a0155e0374c2734a761e5b50efe343aca637" - }, - { - "nr": 124912, - "hash": "e0e66cd1df8632ee513b24ac3b334274d55b310a" - }, - { - "nr": 124221, - "hash": "c6d1cc9d189e7d5b854ec8a8c1c238e3ff7f1f43" - }, - { - "nr": 125475, - "hash": "baba9bfefb722fb8ece38ce8ac625200067ebfe7" - }, - { - "nr": 124842, - "hash": "2ba8f7794434db6c4edeca7271015c0b481f899d" - }, - { - "nr": 124444, - "hash": "3a62d043c13fbea6e5409324704d3ec869e33d53" - }, - { - "nr": 124688, - "hash": "d6a5b7a2be5a3a75c7b03cc2aa967837bede17b6" - }, - { - "nr": 124505, - "hash": "0c884c81e39d644727bf29d8e077c42d0fd46d5f" - }, - { - "nr": 124131, - "hash": "366f3226331bf9fe3cf8c3082451fbc40e831eeb" - }, - { - "nr": 124373, - "hash": "7b4e8b417d9dd7a2d8f980a0a1f361eb4dbdadad" - }, - { - "nr": 125459, - "hash": "cfa6729a3cb732f37c6941cf4beb79554fefcaa7" - }, - { - "nr": 122234, - "hash": "8d664bcacbbb5e311734968216eb21405ed42064" - }, - { - "nr": 109939, - "hash": "b91f174340a569bd466048eb508273cd67af3bbb" - }, - { - "nr": 124281, - "hash": "8bcbe7e887ac53baf7b476abc1d03a68b2da97bf" - }, - { - "nr": 124883, - "hash": "4c12972665b8a24e66e0dbe9868507d6e3b9fa86" - }, - { - "nr": 123513, - "hash": "625426e93b11df90193f22a0d0bc275b6f8b3e95" - }, - { - "nr": 125552, - "hash": "738110c7ee4017088739703d2a326994c8ceaa40" - }, - { - "nr": 124614, - "hash": "8aa6d6c8485034f31f874667275c2e5710896095" - }, - { - "nr": 124393, - "hash": "b826f7fbe45f0f157f305f365f9ab6c7ae1bd86e" - }, - { - "nr": 125179, - "hash": "0ab372e3a6fcfcb8717d7a8cb126623ad95bf17c" - }, - { - "nr": 124865, - "hash": "83b48a4ab9bec29cfb4eb3c141ef2dd55d04cb8a" - }, - { - "nr": 124592, - "hash": "14c6de6513e0f6364dffebe821173c26ea1aa558" - }, - { - "nr": 122047, - "hash": "f6eac008b971c6d703e428920d7b4f79f47f7c67" - }, - { - "nr": 124917, - "hash": "be8fca4c6826f02f2297180b27819dbd6a327a61" - }, - { - "nr": 125067, - "hash": "6ff94c6d64fbab9cef78efd61fcae7960f55e7cb" - }, - { - "nr": 124732, - "hash": "f51982822886b1ce501cc7f31813ac10225c6fdc" - }, - { - "nr": 123316, - "hash": "07827994fcb4786fdbb8f58b35d8105fc12bba6d" - }, - { - "nr": 125365, - "hash": "f790219c0152ee6d06153c8170b077f6fc99f086" - }, - { - "nr": 125157, - "hash": "bb084c9de491d0e9bfcfe93d2dc151d74f9179dc" - }, - { - "nr": 124634, - "hash": "3e5ef7076a3fa15d0fc17e0554f212c954a5a467" - }, - { - "nr": 124683, - "hash": "3d2b0902c321566f02e59d16984cc2d5c06594bc" - }, - { - "nr": 125021, - "hash": "55633b01ce2a70f15051f5e94f096c76b6fe9100" - }, - { - "nr": 123822, - "hash": "37495a4ead9b8cf9ec10523eb03cc4e2efa67298" - }, - { - "nr": 123809, - "hash": "645f18a52d0f1131cb75cd86b50e825979c2054a" - }, - { - "nr": 121770, - "hash": "776d1453e027eb088d3d31054cfb4bf73562aa29" - }, - { - "nr": 125480, - "hash": "ffb133c91169ee26d039cfc277841807c4c0810d" - }, - { - "nr": 124675, - "hash": "6228f5188d1b27403a7194d9e3bf5f7d6c81564a" - }, - { - "nr": 124612, - "hash": "742a632798a1de1ad2355115cb31253e0b75b6d1" - }, - { - "nr": 124714, - "hash": "f56035b9b253248ac275bdf733a86952cca2a19b" - }, - { - "nr": 123398, - "hash": "ce092a77a063e127687791fad142c00655b9ccd2" - }, - { - "nr": 125150, - "hash": "69071f9691c9acc47e6510bf008cd1ddd1bef226" - }, - { - "nr": 119589, - "hash": "d7a247a13190ec7a30d973d31793da3482828d36" - }, - { - "nr": 122363, - "hash": "2e7749248e8a37f62abfef7cda86091a174b3f0d" - }, - { - "nr": 125116, - "hash": "5c469c2ce85a3be07e994e86b11de32c8d1e4f2b" - }, - { - "nr": 124147, - "hash": "dc85d9905682a660f7523a9d008ffd9f62b38b30" - }, - { - "nr": 117842, - "hash": "8107085273c8fa2b2ee4efcd690b9c69c474eaf5" - }, - { - "nr": 124017, - "hash": "9d5ef5bece91df98de3e734f18752a3d4a52246e" - } - ] +{ + "mail": "satyampsoni@gmail.com", + "name": "Satyam Soni", + "date": 1721052956, + "prs": [ + { + "nr": 118148, + "hash": "cb3d6acb41e3c580a5e25e6e2d68e2f99485c085" + }, + { + "nr": 124685, + "hash": "7a4ede814b8464e34ffb1c1a7d293c4453fa93a9" + }, + { + "nr": 124906, + "hash": "5006e2dc84b0d9cc3ce3e6bbc0b608ea2af1dcad" + }, + { + "nr": 124864, + "hash": "8765ccbb786d4308ed0314860dec6a5f5e178d7c" + }, + { + "nr": 124598, + "hash": "82e3b2e92ce0abab94b1fd975dccea8a92b9a834" + }, + { + "nr": 124287, + "hash": "ee7534535dabd013154f2a011cf1323261ad4b1c" + }, + { + "nr": 125238, + "hash": "8c5d2462581bdb94a8a6c071379b3fa3f6b8e0b9" + }, + { + "nr": 123638, + "hash": "e0615ef24b59348137c78ff2a1706f9ed1e0efcb" + }, + { + "nr": 124189, + "hash": "8f05fac107bfcc313a496368db236eb580c2af8b" + }, + { + "nr": 124329, + "hash": "f860b556a4d10e18acf511f39c5de3050736b05c" + }, + { + "nr": 124381, + "hash": "66f8e193c56161d1c5dc284a1b364504cb709841" + }, + { + "nr": 124618, + "hash": "1780003494ca28a0b20d85aa9a8f9d5ab4ed1093" + }, + { + "nr": 125317, + "hash": "a678e8d2545e4f9546d4499b0f7ec88fca2e6ac2" + }, + { + "nr": 124463, + "hash": "22e631e7be0a2ed2f61b5dd8d69b81363a017863" + }, + { + "nr": 123572, + "hash": "e8d982f01163d925003c06bd53beba606d8d26d7" + }, + { + "nr": 125029, + "hash": "f066a2665074adb404fc9905a1818abb72a90873" + }, + { + "nr": 124383, + "hash": "6cd53fafb8ccc79b97c6b5bfc81f920aee3b9ec3" + }, + { + "nr": 125779, + "hash": "37b70bb4401b8330fd7da078c3b10ad8501e4200" + }, + { + "nr": 125175, + "hash": "bbe116b0edc3485177e451c8edbd705affe59726" + }, + { + "nr": 124374, + "hash": "44043bda4d44d020dd160361cb2bbf2ec4fe9749" + }, + { + "nr": 124123, + "hash": "41272af9bd27e49ea7e22c3128cc205d2570f567" + }, + { + "nr": 125641, + "hash": "d9d3f988342f07f809976fc39fc9d18810c6adf1" + }, + { + "nr": 125263, + "hash": "97965edc32ac29fb870ecb881be1fbaf0678805e" + }, + { + "nr": 125016, + "hash": "72d96b3a0a3c4ff91df81f19cd5cce3c6b96804b" + }, + { + "nr": 123845, + "hash": "a2eadc432312ead1ba026600291507a18d5a02b2" + }, + { + "nr": 124500, + "hash": "8849e77fc01ce7e65910ac397161933d662646f1" + }, + { + "nr": 125646, + "hash": "a603dbe38a807814ddab7dbb5326a7c0b5e239d5" + }, + { + "nr": 124779, + "hash": "7511163273df1bafd1500f856b439214c7684a8e" + }, + { + "nr": 124738, + "hash": "3e68d6fe9f01a8b56853ee12976cdb1c8ad30489" + }, + { + "nr": 120696, + "hash": "7f1e250fae8559221dc545d0580d9c2fc1eaa764" + }, + { + "nr": 123597, + "hash": "2f7fa072c3971f3841c6b86679ea6fdbb215a3e0" + }, + { + "nr": 124462, + "hash": "e0de8ae10beab01e666f76d976ba22a82be78bbe" + }, + { + "nr": 124350, + "hash": "8f8f34a6fd3baa7aa4a95716a289636261684231" + }, + { + "nr": 124886, + "hash": "f0e1216de44921f9e89ac724d62a65e5204ddc63" + }, + { + "nr": 124496, + "hash": "efa88a14659bcdafb427b92f0e0343116d2e09cc" + }, + { + "nr": 124352, + "hash": "46810bfe17ad150f4d7e25e513d7105fd389f67b" + }, + { + "nr": 124055, + "hash": "15995c561561af3340b0b61079aa3ca4695d2de4" + }, + { + "nr": 124025, + "hash": "b1259ae4e5089786efea2c7dd27a648a2be11387" + }, + { + "nr": 124091, + "hash": "6203fd17e1f0336690ed54db9f1fe69031db120d" + }, + { + "nr": 125162, + "hash": "fcef706282d1f77a4c70433bb73f01819b65ed0f" + }, + { + "nr": 125112, + "hash": "cbb6f6ed5d7324bd77ba37b1ad7218a5a13d450b" + }, + { + "nr": 124589, + "hash": "9e3b1f6911b91471baff7d448735f81f76196669" + }, + { + "nr": 124344, + "hash": "48bc7be96fd2d49dd684380bafd918bfe5b9cfdd" + }, + { + "nr": 124364, + "hash": "6cfeb5e9aa81cb9b5b989e11d1e4ebb0519c9817" + }, + { + "nr": 124026, + "hash": "7464ab1f22055612545e504cf99a965347b94f65" + }, + { + "nr": 124316, + "hash": "b322f8db441c8a1232a0454457d128f302ecc2b5" + }, + { + "nr": 124361, + "hash": "68a471d2762d8edd75ed96a2466bf716d408a828" + }, + { + "nr": 125225, + "hash": "8d888e41432ebd78d3d60a132aa994b350ce6b2e" + }, + { + "nr": 124715, + "hash": "823dcc1c333a6887dccd440f8402c60d7e55cc68" + }, + { + "nr": 122657, + "hash": "144aa68f12b9c60c9d37a064da6dce2f60a0e746" + }, + { + "nr": 122979, + "hash": "af6aa362e77407f475f02d9f30ad352f9dded280" + }, + { + "nr": 124519, + "hash": "a3ce12e52f88eb8af8aa6aa33723d3f43f2f0601" + }, + { + "nr": 123105, + "hash": "bc71deddf349eb9d6bbb8bf5317c732887ac85ee" + }, + { + "nr": 124667, + "hash": "551f7faee958312460b4744d5e2bc597d68370fc" + }, + { + "nr": 125265, + "hash": "0ebd271eec36a4e50d2f1507a1d88f7f3bebe58f" + }, + { + "nr": 125235, + "hash": "b9fe8c3f309ed5d111fe8920c1cbafe61f9e318b" + }, + { + "nr": 122791, + "hash": "eb1893ad040bc42c3baddfa37bb705638a9d2b8f" + }, + { + "nr": 123233, + "hash": "0e9e692667849a7b2837c12d072978e1090a85f3" + }, + { + "nr": 124514, + "hash": "a4372e97f5e190b7ecd4b939ed512d58962a9847" + }, + { + "nr": 125145, + "hash": "38d11a2cf48974c56d538e7bf7c40e364b18b593" + }, + { + "nr": 112104, + "hash": "78d8ed4442a0b321752c11f0180432c83334a72e" + }, + { + "nr": 125113, + "hash": "012f76a54941d1c9a55e8cc4e65456c5a4290901" + }, + { + "nr": 125584, + "hash": "0eeda825de31d929e214ca38121069050e901283" + }, + { + "nr": 124735, + "hash": "f90a171486c46db26bb5d3fea90bd6b22336dbb5" + }, + { + "nr": 124665, + "hash": "84b631babe95bb633c59c6771ef96871db55f881" + }, + { + "nr": 122812, + "hash": "e8f372deeb28637196fb35c74e2fa43eeabc4124" + }, + { + "nr": 125582, + "hash": "99343959be64787ed871eaccd0e8da667bd07175" + }, + { + "nr": 125377, + "hash": "e4880cab3c486330959b6ccf00dea9c7556d7f11" + }, + { + "nr": 125122, + "hash": "f127df88d9e3ce2a2642d13ac82a7fc0aaf9d157" + }, + { + "nr": 124503, + "hash": "816c7e62bc795f33dd10c6cb8a12c1d8b07dca99" + }, + { + "nr": 125527, + "hash": "4d7450df7f1636520b6a154668cd337566df3be8" + }, + { + "nr": 124160, + "hash": "2fe1620e86e6fb320f37f02a4bd09a9f4a7f8d9e" + }, + { + "nr": 124997, + "hash": "d6200d921c2c812fd4dcf61fed23f64cbea7e4c6" + }, + { + "nr": 123149, + "hash": "34754e17496b34fd7a1af7cfec62987201260445" + }, + { + "nr": 124820, + "hash": "7deb2d41c6469d4a2055f5a74f36a37ad21eb2e0" + }, + { + "nr": 123905, + "hash": "5029d110ae7a2f29e7b45d1a29bc24a536aecb03" + }, + { + "nr": 125546, + "hash": "0365b5a0a1f914080f3c5da28e90c53cb94ec912" + }, + { + "nr": 125429, + "hash": "a7f05c22cbc8a6b9e94bb5f17e6701c37aa380e0" + }, + { + "nr": 123545, + "hash": "38d576bedb5502c22b1da7b78edf0eef502a9c5a" + }, + { + "nr": 123919, + "hash": "2040b5d51256a5842028b7fbe0637961ee353df3" + }, + { + "nr": 124767, + "hash": "d3cacf453e32214747b4fea4f8906573828d46f4" + }, + { + "nr": 124075, + "hash": "c9d4980d9ef488e1440527c420ed11af6e201ef9" + }, + { + "nr": 124419, + "hash": "5704343a67430849fe64a89a7c1cc63ffc674f56" + }, + { + "nr": 125540, + "hash": "575a346d16219759fda020e1bc387effb7de8dad" + }, + { + "nr": 124793, + "hash": "361a5d16f3ad99d66778d829f555b6014903dd38" + }, + { + "nr": 124038, + "hash": "63671fb21e195f910b77bee52799a9e27f2300a2" + }, + { + "nr": 124465, + "hash": "0e273851060b1b32e067890d0b95ca9256981d98" + }, + { + "nr": 124063, + "hash": "89917e19f3dc2b6d1175c248337edb00bcb87a55" + }, + { + "nr": 124681, + "hash": "3acc83dd50d01e58c0164055edbfa163da8be74d" + }, + { + "nr": 124516, + "hash": "dce46744d51622db1357b21e505cd73941c8c35a" + }, + { + "nr": 124417, + "hash": "35779fd3010056d5b2c7e865177c74280bfc6709" + }, + { + "nr": 124931, + "hash": "8d7f8ae7599a0675e958a4651c06726c87c01087" + }, + { + "nr": 123428, + "hash": "2af1b1cdf1525499e482c650183e12e41c80d680" + }, + { + "nr": 124574, + "hash": "2aee882ab057c1c6d8fe71098a711dce376e58bd" + }, + { + "nr": 124588, + "hash": "8cc20b84dae6382407eb073c2fef29c7e3cc683b" + }, + { + "nr": 123797, + "hash": "f42a1da40eec0c7aeb1afd64673dce8a41c613a5" + }, + { + "nr": 121970, + "hash": "2cb399215973046ba849d7fc03d755bba1a6ee84" + }, + { + "nr": 125528, + "hash": "6947c05372f8e6a9153692a613902985aa9a9bd3" + }, + { + "nr": 124328, + "hash": "81d4cc88fc27a91a7f7e791522cdeff6dd87211a" + }, + { + "nr": 125218, + "hash": "03bab8f4167b60a5535763a74f982fcd09a2b209" + }, + { + "nr": 125396, + "hash": "5d6b59299c2ccb15f3c619df51f4b9aba383eff6" + }, + { + "nr": 124544, + "hash": "c1668f3c95669f15259240b79096e049ac6a6bfa" + }, + { + "nr": 125578, + "hash": "e90bb2b0088d7db94484869e3e893b2d3fc51a21" + }, + { + "nr": 125549, + "hash": "4de9581a4aa559d198e9b45ec1d09ab1cda08d92" + }, + { + "nr": 121508, + "hash": "51bcec56bbf500a3022c296f839725899bf775be" + }, + { + "nr": 124375, + "hash": "e86726d6086183e897a51f6d83838c5d1e9010a4" + }, + { + "nr": 123894, + "hash": "e91aff06ef5069adfeca1c34d520904ddc310a33" + }, + { + "nr": 125117, + "hash": "1bcd8af18470fa07519960aea9fff56ccd9b4a9b" + }, + { + "nr": 124926, + "hash": "dee97da945665e49fb0656cb8065f082696553b5" + }, + { + "nr": 124116, + "hash": "f2b2db49e6df327f136885fa76e6a69969313dee" + }, + { + "nr": 125197, + "hash": "4f7085d280d594b1c783b8ad14da42a85f40857e" + }, + { + "nr": 125787, + "hash": "bcbdc52ec26d5293a240628ae5a6a1137d85f4b2" + }, + { + "nr": 125536, + "hash": "dcb148488564700045638cf1890e308448bd9fe2" + }, + { + "nr": 125450, + "hash": "ad61cccfb5d297d050bfc87f4d7e59b0b997b97b" + }, + { + "nr": 125363, + "hash": "49ae33bf264b7b6f39531cd7cc20fd1a75f97189" + }, + { + "nr": 122892, + "hash": "d483ad4da17d8fde4b3d6272a8e5f9ad4dbb27fe" + }, + { + "nr": 124942, + "hash": "9e6e5aaf79c7ed8f8a798002788214eebd1e657c" + }, + { + "nr": 120699, + "hash": "8ddf506a13aea4d0f959b2f208594e0406eb38e8" + }, + { + "nr": 124428, + "hash": "c18c3e2248e99d8566f336baeea5a73cdd69b0db" + }, + { + "nr": 125388, + "hash": "b7fd8f90baec275b51d086a73ba754ed29a44165" + }, + { + "nr": 124299, + "hash": "a997553bc8ed55741263d213a60169e93509c1ee" + }, + { + "nr": 125797, + "hash": "b5e4ec00c503711d45b1839fd736979ddccd5768" + }, + { + "nr": 123669, + "hash": "a9e2a1dea921bb15414a1216273b165a6a219474" + }, + { + "nr": 125776, + "hash": "d50cf02b80c6b33ec8277bceabe7b55c3f2b1745" + }, + { + "nr": 124509, + "hash": "b7b07b75fb258ddb72ac1ecb293af61ef745c134" + }, + { + "nr": 124948, + "hash": "4e71f1d8f734cd6bd9c20e557a992207a69c8884" + }, + { + "nr": 125566, + "hash": "fe81c0d8490aa1b642505eb92108c64534caa915" + }, + { + "nr": 125082, + "hash": "7633371d48abae2d2642007ee3d2e7ff845e0d14" + }, + { + "nr": 125015, + "hash": "5236ddd6daaa68d8e4fcfb1a2ef1c2d73d4b2327" + }, + { + "nr": 125758, + "hash": "73f8e4e2e2ed8addf622e6a230d732b195b800ab" + }, + { + "nr": 125359, + "hash": "fd422ae6c33dcfea33a0781a68fe3ef4e61cca8f" + }, + { + "nr": 123315, + "hash": "6480506d25a52765120fdb23d1c5b3735052e5ed" + }, + { + "nr": 124464, + "hash": "4ec6a1f9a8c226633eab19372b2dfb22e37d402e" + }, + { + "nr": 124595, + "hash": "8b454fd1d212178ef0d01b727ae52657ebcd421f" + }, + { + "nr": 125168, + "hash": "db528247c9ef1e8e93395a2394fc44c6c6bf061b" + }, + { + "nr": 123620, + "hash": "1c1728cdebd779f471fc162be78d93f5a49561ed" + }, + { + "nr": 124673, + "hash": "a2602db9d9def781eac552bd9781eed9c829febb" + }, + { + "nr": 124557, + "hash": "ab6f0c6cee22402423c5279becea67baf44efa74" + }, + { + "nr": 124027, + "hash": "68b3e02b240e03f8300c6c8ef5a87dfc5199a993" + }, + { + "nr": 122038, + "hash": "1112bf39e5c6e7cda3c39bd8e406d0b181b05aa2" + }, + { + "nr": 124933, + "hash": "465ab0ff43ac7aab841faa61d961de94daa3394f" + }, + { + "nr": 124546, + "hash": "98788963f789073a65646385eaa73246f75fbbfd" + }, + { + "nr": 125591, + "hash": "ef35445ac354d54f612f140a009e1abf6fc913f9" + }, + { + "nr": 125437, + "hash": "93879656944a4771941c6d5bfb8cec4711ce4b12" + }, + { + "nr": 125279, + "hash": "1666daa7dbe915e38429658a48c7434c9cc7eafa" + }, + { + "nr": 122499, + "hash": "bfd9682fdc7b46cc22342f7448e9fc53e66292e3" + }, + { + "nr": 124653, + "hash": "ae9a03cd0c132be1ee956e0e66696f4d2c7e334d" + }, + { + "nr": 124210, + "hash": "a01ba1c485646aad31a9cfc4ddd931e4876891fc" + }, + { + "nr": 122176, + "hash": "2e829a93f8be3cdcbcf609579247c6c72370f997" + }, + { + "nr": 125560, + "hash": "40861b194185c6e226032cf060f651c72aa54868" + }, + { + "nr": 124635, + "hash": "b201291c9117e37316c232a8713aa1eb451de253" + }, + { + "nr": 125040, + "hash": "9447d98a61d18b8de9c30f4a475ff82c609e15d4" + }, + { + "nr": 124553, + "hash": "ebb677cd4fce20e4cdab8eee8a500a795acb2ad8" + }, + { + "nr": 123587, + "hash": "4d21b69f22f04683875ffebd34df2752b62ff299" + }, + { + "nr": 125360, + "hash": "c5970fae610dc388d3a742533996a35728f5aca9" + }, + { + "nr": 124828, + "hash": "5f2359994c4600ea3d195713d6ceb00439c556cc" + }, + { + "nr": 124320, + "hash": "586bfc4dfcdb5191bb444091f1f62feb1bc5a062" + }, + { + "nr": 122471, + "hash": "72f9ebcc3b56f0b65666d86f8a3bca60031fcedf" + }, + { + "nr": 125272, + "hash": "82696aa64c19e257a617071b139a4694ccc6442c" + }, + { + "nr": 125176, + "hash": "21391d38bb95fb8bb185f78a31f476e4eb869a7f" + }, + { + "nr": 124798, + "hash": "e648719651e783ba3fd0fa5a9ac99a8673737651" + }, + { + "nr": 124480, + "hash": "9f2673b2043b5ad10d6189f8c7ed94370a50dedf" + }, + { + "nr": 122636, + "hash": "e5d7d1492b334f36af9c1e47762eb1683ae39608" + }, + { + "nr": 122082, + "hash": "83e3879ca264835a31b176b97a094d40619454c7" + }, + { + "nr": 123102, + "hash": "188b738877a0f464a1c674c70aef7f9881280f46" + }, + { + "nr": 125650, + "hash": "4325dcca976acf02165a22e7d1858b82f5e68907" + }, + { + "nr": 124220, + "hash": "90a1a0155e0374c2734a761e5b50efe343aca637" + }, + { + "nr": 124912, + "hash": "e0e66cd1df8632ee513b24ac3b334274d55b310a" + }, + { + "nr": 124221, + "hash": "c6d1cc9d189e7d5b854ec8a8c1c238e3ff7f1f43" + }, + { + "nr": 125475, + "hash": "baba9bfefb722fb8ece38ce8ac625200067ebfe7" + }, + { + "nr": 124842, + "hash": "2ba8f7794434db6c4edeca7271015c0b481f899d" + }, + { + "nr": 124444, + "hash": "3a62d043c13fbea6e5409324704d3ec869e33d53" + }, + { + "nr": 124688, + "hash": "d6a5b7a2be5a3a75c7b03cc2aa967837bede17b6" + }, + { + "nr": 124505, + "hash": "0c884c81e39d644727bf29d8e077c42d0fd46d5f" + }, + { + "nr": 124131, + "hash": "366f3226331bf9fe3cf8c3082451fbc40e831eeb" + }, + { + "nr": 124373, + "hash": "7b4e8b417d9dd7a2d8f980a0a1f361eb4dbdadad" + }, + { + "nr": 125459, + "hash": "cfa6729a3cb732f37c6941cf4beb79554fefcaa7" + }, + { + "nr": 122234, + "hash": "8d664bcacbbb5e311734968216eb21405ed42064" + }, + { + "nr": 109939, + "hash": "b91f174340a569bd466048eb508273cd67af3bbb" + }, + { + "nr": 124281, + "hash": "8bcbe7e887ac53baf7b476abc1d03a68b2da97bf" + }, + { + "nr": 124883, + "hash": "4c12972665b8a24e66e0dbe9868507d6e3b9fa86" + }, + { + "nr": 123513, + "hash": "625426e93b11df90193f22a0d0bc275b6f8b3e95" + }, + { + "nr": 125552, + "hash": "738110c7ee4017088739703d2a326994c8ceaa40" + }, + { + "nr": 124614, + "hash": "8aa6d6c8485034f31f874667275c2e5710896095" + }, + { + "nr": 124393, + "hash": "b826f7fbe45f0f157f305f365f9ab6c7ae1bd86e" + }, + { + "nr": 125179, + "hash": "0ab372e3a6fcfcb8717d7a8cb126623ad95bf17c" + }, + { + "nr": 124865, + "hash": "83b48a4ab9bec29cfb4eb3c141ef2dd55d04cb8a" + }, + { + "nr": 124592, + "hash": "14c6de6513e0f6364dffebe821173c26ea1aa558" + }, + { + "nr": 122047, + "hash": "f6eac008b971c6d703e428920d7b4f79f47f7c67" + }, + { + "nr": 124917, + "hash": "be8fca4c6826f02f2297180b27819dbd6a327a61" + }, + { + "nr": 125067, + "hash": "6ff94c6d64fbab9cef78efd61fcae7960f55e7cb" + }, + { + "nr": 124732, + "hash": "f51982822886b1ce501cc7f31813ac10225c6fdc" + }, + { + "nr": 123316, + "hash": "07827994fcb4786fdbb8f58b35d8105fc12bba6d" + }, + { + "nr": 125365, + "hash": "f790219c0152ee6d06153c8170b077f6fc99f086" + }, + { + "nr": 125157, + "hash": "bb084c9de491d0e9bfcfe93d2dc151d74f9179dc" + }, + { + "nr": 124634, + "hash": "3e5ef7076a3fa15d0fc17e0554f212c954a5a467" + }, + { + "nr": 124683, + "hash": "3d2b0902c321566f02e59d16984cc2d5c06594bc" + }, + { + "nr": 125021, + "hash": "55633b01ce2a70f15051f5e94f096c76b6fe9100" + }, + { + "nr": 123822, + "hash": "37495a4ead9b8cf9ec10523eb03cc4e2efa67298" + }, + { + "nr": 123809, + "hash": "645f18a52d0f1131cb75cd86b50e825979c2054a" + }, + { + "nr": 121770, + "hash": "776d1453e027eb088d3d31054cfb4bf73562aa29" + }, + { + "nr": 125480, + "hash": "ffb133c91169ee26d039cfc277841807c4c0810d" + }, + { + "nr": 124675, + "hash": "6228f5188d1b27403a7194d9e3bf5f7d6c81564a" + }, + { + "nr": 124612, + "hash": "742a632798a1de1ad2355115cb31253e0b75b6d1" + }, + { + "nr": 124714, + "hash": "f56035b9b253248ac275bdf733a86952cca2a19b" + }, + { + "nr": 123398, + "hash": "ce092a77a063e127687791fad142c00655b9ccd2" + }, + { + "nr": 125150, + "hash": "69071f9691c9acc47e6510bf008cd1ddd1bef226" + }, + { + "nr": 119589, + "hash": "d7a247a13190ec7a30d973d31793da3482828d36" + }, + { + "nr": 122363, + "hash": "2e7749248e8a37f62abfef7cda86091a174b3f0d" + }, + { + "nr": 125116, + "hash": "5c469c2ce85a3be07e994e86b11de32c8d1e4f2b" + }, + { + "nr": 124147, + "hash": "dc85d9905682a660f7523a9d008ffd9f62b38b30" + }, + { + "nr": 117842, + "hash": "8107085273c8fa2b2ee4efcd690b9c69c474eaf5" + }, + { + "nr": 124017, + "hash": "9d5ef5bece91df98de3e734f18752a3d4a52246e" + } + ] } \ No newline at end of file diff --git a/releases/release-1.31/release-notes/sessions/maps-1721765255.json b/releases/release-1.31/release-notes/sessions/maps-1721765255.json index 45152fd1aff..b825b907e5c 100644 --- a/releases/release-1.31/release-notes/sessions/maps-1721765255.json +++ b/releases/release-1.31/release-notes/sessions/maps-1721765255.json @@ -1,403 +1,403 @@ -{ - "mail": "akacloudmelon@gmail.com", - "name": "cloudmelon", - "date": 1721765255, - "prs": [ - { - "nr": 124996, - "hash": "727e9c5ecb5a9fbf5f0929bea935943726939cd4" - }, - { - "nr": 125868, - "hash": "3af091a6b36503786bb052a87df30899b6772e19" - }, - { - "nr": 125097, - "hash": "06b9cabbf3073811cdd8faad5aac956ec0e0677a" - }, - { - "nr": 125846, - "hash": "0b3b674f106043da6fe75ae48bf44c3644e4357a" - }, - { - "nr": 125359, - "hash": "8051d9cecd1c6b1cf1087feca94e272336ffdfcd" - }, - { - "nr": 124383, - "hash": "980d264a01da0955e063d8bac7052451176e3b76" - }, - { - "nr": 125970, - "hash": "0313ef4c55fceb54704df3ba16a3daa8c29ba3e2" - }, - { - "nr": 125675, - "hash": "f13be2935f49c81679e4e553c3b887e568e1a3d3" - }, - { - "nr": 124027, - "hash": "8d207244a24ecb359b5d40ff5c06004a113dd563" - }, - { - "nr": 125842, - "hash": "3f84c0edb17684213db68715cbc4eeadeeeaee53" - }, - { - "nr": 125828, - "hash": "470facd60a5f7374a022bb1013644e537d55c43e" - }, - { - "nr": 125404, - "hash": "febc3862fcf626dde0a3ffac1fe9e890fe819ed8" - }, - { - "nr": 126046, - "hash": "b369e8a89e7b0fbbcc7a8c4f6670b423e7eae10f" - }, - { - "nr": 124148, - "hash": "30cc60b59104ad5190186e1657fc9f3fa17918f6" - }, - { - "nr": 124886, - "hash": "f8f34f27cb5172a5f4d86836d7b03e15c50e9a08" - }, - { - "nr": 122892, - "hash": "e9b31fef413f32fa96a8b643a3ab241badc98fd7" - }, - { - "nr": 124320, - "hash": "1559e252e0765a67ef353fcb73a8fcc537ba8840" - }, - { - "nr": 122025, - "hash": "420e2ceca6b2784f1e899a667f7d7b93e40aae77" - }, - { - "nr": 124675, - "hash": "cd15542645a59c9211a7ad07be934084325b6a9f" - }, - { - "nr": 125767, - "hash": "cbc3f8d65afd31c99205be105dc64c79f1151b89" - }, - { - "nr": 125015, - "hash": "348a06c8589556c1d4c93552f3b55648c55512cf" - }, - { - "nr": 126012, - "hash": "7c3fc1344b602ba69d0a59b35549e9cfc8850914" - }, - { - "nr": 125113, - "hash": "4b07b24c76264bdbf2555f4ce40cc611b353befb" - }, - { - "nr": 122812, - "hash": "cb8a0798d6119b086b33143283c3891b22ce1bc7" - }, - { - "nr": 124131, - "hash": "86eef7f0f87983cc0c87616660c976fcc47107ab" - }, - { - "nr": 120696, - "hash": "56986ab3eff35e807a75e745297ffd4ead0c43ce" - }, - { - "nr": 123797, - "hash": "4697e3d98a4e375b84f4f9bbc4e43a9856972a37" - }, - { - "nr": 125787, - "hash": "31c2de149937adf825613c03f540a41e935a40a6" - }, - { - "nr": 124505, - "hash": "e13c0c6d4f8e05913c33ea22231d99781493b9c3" - }, - { - "nr": 125363, - "hash": "6fee3a699211b720549eb33c95028cb3b25e838a" - }, - { - "nr": 118148, - "hash": "18bb733dabec70bf7aaeddb65aa1c23c65dff8af" - }, - { - "nr": 124544, - "hash": "761ddf98669cb8526e3c671435da5fbf2c4e20de" - }, - { - "nr": 125867, - "hash": "7da326627b12ec7e55fa7b5dd6934f93292ded71" - }, - { - "nr": 125328, - "hash": "8ed4be34f153b37c5ac63fd0464a067d378c0783" - }, - { - "nr": 123137, - "hash": "864bf64bf49293ba8224d9f32992cc61f897bada" - }, - { - "nr": 125333, - "hash": "f45d27e3b70bf9e8674e0d0406758e3dbe9ed085" - }, - { - "nr": 125659, - "hash": "7649abf3ceb219c0a2d6bbc216125bb27bb6f261" - }, - { - "nr": 125112, - "hash": "26783823d2adc6495b48a4f6e3669c76452d131a" - }, - { - "nr": 126034, - "hash": "46f0f0912e707571a62acbba9c10bb5cb1080892" - }, - { - "nr": 124092, - "hash": "a5533fd1cdf9fff19601c3e0ef57c6cf76fd8e73" - }, - { - "nr": 123428, - "hash": "f569d499654753234c5cce5d6e5c597989aa824f" - }, - { - "nr": 124221, - "hash": "f693b29cfdac70a644bf07f5389a333fd61deed5" - }, - { - "nr": 123733, - "hash": "cc281261c57cc0f89ef051954c125fd583d221fa" - }, - { - "nr": 124352, - "hash": "66ec28aa1783524bd8b909dcda1d5db569d13782" - }, - { - "nr": 125117, - "hash": "68c164fa648cb5361367f1d44ba00071833114ca" - }, - { - "nr": 124828, - "hash": "dc61a9d0181dfe6eec4f737648439cf29695e50f" - }, - { - "nr": 122082, - "hash": "abf95d2512de88fb026af422f54e128f9d37970d" - }, - { - "nr": 124328, - "hash": "9cb4bbd17d6c1729ce41c746529d6da5c3744c00" - }, - { - "nr": 125461, - "hash": "7c8d68212673c2596e32027cbbb0178796b42842" - }, - { - "nr": 125365, - "hash": "6aed583e496890e746354c52daaa6c0fe0b70112" - }, - { - "nr": 124152, - "hash": "7a975f738da8203d2b3f7708ebdd9f6e869164d1" - }, - { - "nr": 124994, - "hash": "0b9eeb1978b84bd50e969d6de118583e09f93899" - }, - { - "nr": 124364, - "hash": "6b899f73a7e1fd8754fdb8b9ec80fe48c6a6ef06" - }, - { - "nr": 125510, - "hash": "07e6b238e59000bf435b3e90d252392057baba4d" - }, - { - "nr": 125280, - "hash": "674c30e4617518a2f0d8c3348b8671f8f3d0e375" - }, - { - "nr": 117842, - "hash": "4300d28e2c771005c0a0a247631d7dbdf31576d6" - }, - { - "nr": 124017, - "hash": "bafe0647ff227390ebeeee550b8d33de83324fc9" - }, - { - "nr": 123638, - "hash": "f8cf333f5cf21de74b68d7759566d570df741e74" - }, - { - "nr": 122627, - "hash": "14836a7353f5a068f16e1c65ca69806a8546242b" - }, - { - "nr": 125838, - "hash": "fdc54be0f572c94585cf90642ab953087deb6166" - }, - { - "nr": 124842, - "hash": "58a0fd41ec1852ce900872e5d2adb3fde89fde20" - }, - { - "nr": 112104, - "hash": "f5c930527d7e9027a3fad4145e9c16aed72d0499" - }, - { - "nr": 125961, - "hash": "9b6cb1d49e60870b16b25ade3b4a770d52372af2" - }, - { - "nr": 124969, - "hash": "3255f18d0dcfdae3f86dd26771f517512dc1dde0" - }, - { - "nr": 124519, - "hash": "99eee7c23ad95733de786a54259bffe388c02ba3" - }, - { - "nr": 123905, - "hash": "fa271f35284c29d776fa62f1aac9ff6800c95f34" - }, - { - "nr": 123105, - "hash": "b273dd873107c8bd606ce66700001528bafbcf1b" - }, - { - "nr": 124767, - "hash": "2ad2a2b10a33bc73b07382905da3c92f37b5caaa" - }, - { - "nr": 122636, - "hash": "9a6e04e9242db64d609c41edf16c9d12adbade15" - }, - { - "nr": 126057, - "hash": "4ab8e0bde805cd670a4baaa2f27507ad82f0fd7e" - }, - { - "nr": 125850, - "hash": "ec3cf08539f9d098ef53b902794b88a3090ac36f" - }, - { - "nr": 125225, - "hash": "a32ef2a6a69ab818a643245ff2c7bbdd785684fb" - }, - { - "nr": 124598, - "hash": "044c60e200710d405deefb2133806e404af59796" - }, - { - "nr": 125442, - "hash": "ecd3dcf341128c8aa819b5d563142e6cc6e2784a" - }, - { - "nr": 125001, - "hash": "6cb76e5793a79cf196b83ce4a2ac7fb906cb499f" - }, - { - "nr": 125021, - "hash": "563af834fa4cd966f69d78b9a88262cea30b6aab" - }, - { - "nr": 124931, - "hash": "78b66b40f5b8f17b65082ce8beae8590ee20afd8" - }, - { - "nr": 125040, - "hash": "65f0bc176397cd9ebc0ab0a8a8cfd5e6a714b8dd" - }, - { - "nr": 120699, - "hash": "f11beb67d123aac14b141f686dca9736f9aa53f2" - }, - { - "nr": 124589, - "hash": "dc1ffff255d349e72a049dbeed2ed4b7bb9435da" - }, - { - "nr": 123845, - "hash": "c560528cfa8487a8075a3f7e1f6cdbb3bfb59f3d" - }, - { - "nr": 124428, - "hash": "b26cfae35b0d20ca00ad4e5c7576582b9e3798f0" - }, - { - "nr": 125305, - "hash": "9653c65f1c0cce037de9e2ebcdb272a9f11ae028" - }, - { - "nr": 125459, - "hash": "ed39a1997726890a9f9bc65cfbe1e34d1898efd7" - }, - { - "nr": 124948, - "hash": "c85ef161f4a59dd629585c5da0555d112d8632b8" - }, - { - "nr": 124917, - "hash": "c3edb31a27d0203e876785b3c3448ea01aaa6e5b" - }, - { - "nr": 124595, - "hash": "61887aa1807ba46a30f76b7e725c75840d45278c" - }, - { - "nr": 125751, - "hash": "a48617a38d0a92cf23f9c9fc92cbf80b1385345b" - }, - { - "nr": 125000, - "hash": "c295d9a5da82bde31eea3533a155aa67aed4a986" - }, - { - "nr": 123587, - "hash": "792def4cded6afd302fcdffbe2b3a60fe0bc1edc" - }, - { - "nr": 122251, - "hash": "1f3ef9f1ac5198531d635fc808f97dc00b4e6a1a" - }, - { - "nr": 125894, - "hash": "e142266e78acd0e543cde8d68c22f5b5c4468ccf" - }, - { - "nr": 123894, - "hash": "b0d182647089d27892201ef6d0e46156c01450af" - }, - { - "nr": 124574, - "hash": "f4c9cd7f76ed35ebab4db5bc09c6dd901fc00ace" - }, - { - "nr": 124444, - "hash": "b4c8a696eab54d7a693fb90a3a9781a5c0d9fe5d" - }, - { - "nr": 124634, - "hash": "b38ef794336d52b84159a3f20b72b1fb7a722f86" - }, - { - "nr": 125116, - "hash": "b56c00fbc20016c093f3c068375aa7cfae2e4088" - }, - { - "nr": 125145, - "hash": "58def04c87958d8278334b15d2025acd26f7a181" - }, - { - "nr": 124546, - "hash": "4a178817da0ef754345f46ba8d9e51fb87b7c393" - } - ] +{ + "mail": "akacloudmelon@gmail.com", + "name": "cloudmelon", + "date": 1721765255, + "prs": [ + { + "nr": 124996, + "hash": "727e9c5ecb5a9fbf5f0929bea935943726939cd4" + }, + { + "nr": 125868, + "hash": "3af091a6b36503786bb052a87df30899b6772e19" + }, + { + "nr": 125097, + "hash": "06b9cabbf3073811cdd8faad5aac956ec0e0677a" + }, + { + "nr": 125846, + "hash": "0b3b674f106043da6fe75ae48bf44c3644e4357a" + }, + { + "nr": 125359, + "hash": "8051d9cecd1c6b1cf1087feca94e272336ffdfcd" + }, + { + "nr": 124383, + "hash": "980d264a01da0955e063d8bac7052451176e3b76" + }, + { + "nr": 125970, + "hash": "0313ef4c55fceb54704df3ba16a3daa8c29ba3e2" + }, + { + "nr": 125675, + "hash": "f13be2935f49c81679e4e553c3b887e568e1a3d3" + }, + { + "nr": 124027, + "hash": "8d207244a24ecb359b5d40ff5c06004a113dd563" + }, + { + "nr": 125842, + "hash": "3f84c0edb17684213db68715cbc4eeadeeeaee53" + }, + { + "nr": 125828, + "hash": "470facd60a5f7374a022bb1013644e537d55c43e" + }, + { + "nr": 125404, + "hash": "febc3862fcf626dde0a3ffac1fe9e890fe819ed8" + }, + { + "nr": 126046, + "hash": "b369e8a89e7b0fbbcc7a8c4f6670b423e7eae10f" + }, + { + "nr": 124148, + "hash": "30cc60b59104ad5190186e1657fc9f3fa17918f6" + }, + { + "nr": 124886, + "hash": "f8f34f27cb5172a5f4d86836d7b03e15c50e9a08" + }, + { + "nr": 122892, + "hash": "e9b31fef413f32fa96a8b643a3ab241badc98fd7" + }, + { + "nr": 124320, + "hash": "1559e252e0765a67ef353fcb73a8fcc537ba8840" + }, + { + "nr": 122025, + "hash": "420e2ceca6b2784f1e899a667f7d7b93e40aae77" + }, + { + "nr": 124675, + "hash": "cd15542645a59c9211a7ad07be934084325b6a9f" + }, + { + "nr": 125767, + "hash": "cbc3f8d65afd31c99205be105dc64c79f1151b89" + }, + { + "nr": 125015, + "hash": "348a06c8589556c1d4c93552f3b55648c55512cf" + }, + { + "nr": 126012, + "hash": "7c3fc1344b602ba69d0a59b35549e9cfc8850914" + }, + { + "nr": 125113, + "hash": "4b07b24c76264bdbf2555f4ce40cc611b353befb" + }, + { + "nr": 122812, + "hash": "cb8a0798d6119b086b33143283c3891b22ce1bc7" + }, + { + "nr": 124131, + "hash": "86eef7f0f87983cc0c87616660c976fcc47107ab" + }, + { + "nr": 120696, + "hash": "56986ab3eff35e807a75e745297ffd4ead0c43ce" + }, + { + "nr": 123797, + "hash": "4697e3d98a4e375b84f4f9bbc4e43a9856972a37" + }, + { + "nr": 125787, + "hash": "31c2de149937adf825613c03f540a41e935a40a6" + }, + { + "nr": 124505, + "hash": "e13c0c6d4f8e05913c33ea22231d99781493b9c3" + }, + { + "nr": 125363, + "hash": "6fee3a699211b720549eb33c95028cb3b25e838a" + }, + { + "nr": 118148, + "hash": "18bb733dabec70bf7aaeddb65aa1c23c65dff8af" + }, + { + "nr": 124544, + "hash": "761ddf98669cb8526e3c671435da5fbf2c4e20de" + }, + { + "nr": 125867, + "hash": "7da326627b12ec7e55fa7b5dd6934f93292ded71" + }, + { + "nr": 125328, + "hash": "8ed4be34f153b37c5ac63fd0464a067d378c0783" + }, + { + "nr": 123137, + "hash": "864bf64bf49293ba8224d9f32992cc61f897bada" + }, + { + "nr": 125333, + "hash": "f45d27e3b70bf9e8674e0d0406758e3dbe9ed085" + }, + { + "nr": 125659, + "hash": "7649abf3ceb219c0a2d6bbc216125bb27bb6f261" + }, + { + "nr": 125112, + "hash": "26783823d2adc6495b48a4f6e3669c76452d131a" + }, + { + "nr": 126034, + "hash": "46f0f0912e707571a62acbba9c10bb5cb1080892" + }, + { + "nr": 124092, + "hash": "a5533fd1cdf9fff19601c3e0ef57c6cf76fd8e73" + }, + { + "nr": 123428, + "hash": "f569d499654753234c5cce5d6e5c597989aa824f" + }, + { + "nr": 124221, + "hash": "f693b29cfdac70a644bf07f5389a333fd61deed5" + }, + { + "nr": 123733, + "hash": "cc281261c57cc0f89ef051954c125fd583d221fa" + }, + { + "nr": 124352, + "hash": "66ec28aa1783524bd8b909dcda1d5db569d13782" + }, + { + "nr": 125117, + "hash": "68c164fa648cb5361367f1d44ba00071833114ca" + }, + { + "nr": 124828, + "hash": "dc61a9d0181dfe6eec4f737648439cf29695e50f" + }, + { + "nr": 122082, + "hash": "abf95d2512de88fb026af422f54e128f9d37970d" + }, + { + "nr": 124328, + "hash": "9cb4bbd17d6c1729ce41c746529d6da5c3744c00" + }, + { + "nr": 125461, + "hash": "7c8d68212673c2596e32027cbbb0178796b42842" + }, + { + "nr": 125365, + "hash": "6aed583e496890e746354c52daaa6c0fe0b70112" + }, + { + "nr": 124152, + "hash": "7a975f738da8203d2b3f7708ebdd9f6e869164d1" + }, + { + "nr": 124994, + "hash": "0b9eeb1978b84bd50e969d6de118583e09f93899" + }, + { + "nr": 124364, + "hash": "6b899f73a7e1fd8754fdb8b9ec80fe48c6a6ef06" + }, + { + "nr": 125510, + "hash": "07e6b238e59000bf435b3e90d252392057baba4d" + }, + { + "nr": 125280, + "hash": "674c30e4617518a2f0d8c3348b8671f8f3d0e375" + }, + { + "nr": 117842, + "hash": "4300d28e2c771005c0a0a247631d7dbdf31576d6" + }, + { + "nr": 124017, + "hash": "bafe0647ff227390ebeeee550b8d33de83324fc9" + }, + { + "nr": 123638, + "hash": "f8cf333f5cf21de74b68d7759566d570df741e74" + }, + { + "nr": 122627, + "hash": "14836a7353f5a068f16e1c65ca69806a8546242b" + }, + { + "nr": 125838, + "hash": "fdc54be0f572c94585cf90642ab953087deb6166" + }, + { + "nr": 124842, + "hash": "58a0fd41ec1852ce900872e5d2adb3fde89fde20" + }, + { + "nr": 112104, + "hash": "f5c930527d7e9027a3fad4145e9c16aed72d0499" + }, + { + "nr": 125961, + "hash": "9b6cb1d49e60870b16b25ade3b4a770d52372af2" + }, + { + "nr": 124969, + "hash": "3255f18d0dcfdae3f86dd26771f517512dc1dde0" + }, + { + "nr": 124519, + "hash": "99eee7c23ad95733de786a54259bffe388c02ba3" + }, + { + "nr": 123905, + "hash": "fa271f35284c29d776fa62f1aac9ff6800c95f34" + }, + { + "nr": 123105, + "hash": "b273dd873107c8bd606ce66700001528bafbcf1b" + }, + { + "nr": 124767, + "hash": "2ad2a2b10a33bc73b07382905da3c92f37b5caaa" + }, + { + "nr": 122636, + "hash": "9a6e04e9242db64d609c41edf16c9d12adbade15" + }, + { + "nr": 126057, + "hash": "4ab8e0bde805cd670a4baaa2f27507ad82f0fd7e" + }, + { + "nr": 125850, + "hash": "ec3cf08539f9d098ef53b902794b88a3090ac36f" + }, + { + "nr": 125225, + "hash": "a32ef2a6a69ab818a643245ff2c7bbdd785684fb" + }, + { + "nr": 124598, + "hash": "044c60e200710d405deefb2133806e404af59796" + }, + { + "nr": 125442, + "hash": "ecd3dcf341128c8aa819b5d563142e6cc6e2784a" + }, + { + "nr": 125001, + "hash": "6cb76e5793a79cf196b83ce4a2ac7fb906cb499f" + }, + { + "nr": 125021, + "hash": "563af834fa4cd966f69d78b9a88262cea30b6aab" + }, + { + "nr": 124931, + "hash": "78b66b40f5b8f17b65082ce8beae8590ee20afd8" + }, + { + "nr": 125040, + "hash": "65f0bc176397cd9ebc0ab0a8a8cfd5e6a714b8dd" + }, + { + "nr": 120699, + "hash": "f11beb67d123aac14b141f686dca9736f9aa53f2" + }, + { + "nr": 124589, + "hash": "dc1ffff255d349e72a049dbeed2ed4b7bb9435da" + }, + { + "nr": 123845, + "hash": "c560528cfa8487a8075a3f7e1f6cdbb3bfb59f3d" + }, + { + "nr": 124428, + "hash": "b26cfae35b0d20ca00ad4e5c7576582b9e3798f0" + }, + { + "nr": 125305, + "hash": "9653c65f1c0cce037de9e2ebcdb272a9f11ae028" + }, + { + "nr": 125459, + "hash": "ed39a1997726890a9f9bc65cfbe1e34d1898efd7" + }, + { + "nr": 124948, + "hash": "c85ef161f4a59dd629585c5da0555d112d8632b8" + }, + { + "nr": 124917, + "hash": "c3edb31a27d0203e876785b3c3448ea01aaa6e5b" + }, + { + "nr": 124595, + "hash": "61887aa1807ba46a30f76b7e725c75840d45278c" + }, + { + "nr": 125751, + "hash": "a48617a38d0a92cf23f9c9fc92cbf80b1385345b" + }, + { + "nr": 125000, + "hash": "c295d9a5da82bde31eea3533a155aa67aed4a986" + }, + { + "nr": 123587, + "hash": "792def4cded6afd302fcdffbe2b3a60fe0bc1edc" + }, + { + "nr": 122251, + "hash": "1f3ef9f1ac5198531d635fc808f97dc00b4e6a1a" + }, + { + "nr": 125894, + "hash": "e142266e78acd0e543cde8d68c22f5b5c4468ccf" + }, + { + "nr": 123894, + "hash": "b0d182647089d27892201ef6d0e46156c01450af" + }, + { + "nr": 124574, + "hash": "f4c9cd7f76ed35ebab4db5bc09c6dd901fc00ace" + }, + { + "nr": 124444, + "hash": "b4c8a696eab54d7a693fb90a3a9781a5c0d9fe5d" + }, + { + "nr": 124634, + "hash": "b38ef794336d52b84159a3f20b72b1fb7a722f86" + }, + { + "nr": 125116, + "hash": "b56c00fbc20016c093f3c068375aa7cfae2e4088" + }, + { + "nr": 125145, + "hash": "58def04c87958d8278334b15d2025acd26f7a181" + }, + { + "nr": 124546, + "hash": "4a178817da0ef754345f46ba8d9e51fb87b7c393" + } + ] } \ No newline at end of file diff --git a/releases/release-1.31/release-notes/sessions/maps-1722538475.json b/releases/release-1.31/release-notes/sessions/maps-1722538475.json index d62b896a213..623345b6768 100644 --- a/releases/release-1.31/release-notes/sessions/maps-1722538475.json +++ b/releases/release-1.31/release-notes/sessions/maps-1722538475.json @@ -1,279 +1,279 @@ -{ - "mail": "sepi.alavii@gmail.com", - "name": "Sepideh", - "date": 1722538475, - "prs": [ - { - "nr": 124012, - "hash": "9dc4b05c72987a58af306a29df3181dfafa8bbec" - }, - { - "nr": 124884, - "hash": "f28d3c3627f95358986f40b784875830cd93219e" - }, - { - "nr": 126224, - "hash": "31c29d91394263d9248d9223b68e8f150a238e06" - }, - { - "nr": 125929, - "hash": "6d3ce0143c7c07735e36b3ee26a2b1296b8ddede" - }, - { - "nr": 126139, - "hash": "33abc6c92dea504cce0b8eef61bc68421bf1c33d" - }, - { - "nr": 126047, - "hash": "cae17cb0e63acce7b36650ad1b5f8e4302027dff" - }, - { - "nr": 124815, - "hash": "a78f70d29c71e68a3ff4262eb5144959a7d293d4" - }, - { - "nr": 125374, - "hash": "643665e2c0666de4340e71b128ec3a09fc533b00" - }, - { - "nr": 125277, - "hash": "9c07973fcb7272b377729a419ee73fe29b21fc2f" - }, - { - "nr": 126207, - "hash": "bf7affa53dcb70d26c456a0f7360f5c1b0e67f92" - }, - { - "nr": 125941, - "hash": "e1b26cc7adf9dac18bc007eca33de46c2f7d73ca" - }, - { - "nr": 126330, - "hash": "2b117019f85c72098ab95ff4f06237d96644f3b6" - }, - { - "nr": 126145, - "hash": "02cf5481e09b6233d5e2221514ec99646a18d750" - }, - { - "nr": 126188, - "hash": "6606d352e5c679d0280d2dd97e3855a8a701a754" - }, - { - "nr": 126014, - "hash": "08242f1f1feda982a438c801e8c6622cf24f07cc" - }, - { - "nr": 122628, - "hash": "f8a6453a8220abd6450cf3a1ee4179c8299a3118" - }, - { - "nr": 126335, - "hash": "dba7004f7a890dd85bbfee5c0cc2a9cd8cb930a7" - }, - { - "nr": 126174, - "hash": "f99612f40c5392598a3873529e7da28fd19c7149" - }, - { - "nr": 124342, - "hash": "058d814c32d97c0df08d40acc2cd4fe20f81900d" - }, - { - "nr": 125163, - "hash": "994fbe04728b635fde84104b02c37eb8b95488df" - }, - { - "nr": 124430, - "hash": "803f4cfac3d5a4662ac0d170113dd1b0aefaf0de" - }, - { - "nr": 126355, - "hash": "947c6a32c119faf73371b05c49e6f447086dcf8b" - }, - { - "nr": 124530, - "hash": "63bd72069ae2d7f3c1de6c5c69826626a3131b55" - }, - { - "nr": 125257, - "hash": "ff6313efb4f3dc620eb5e57069501fb6ace59d09" - }, - { - "nr": 124959, - "hash": "85df6964c0a2d0333982944249d57d59b27d8e2a" - }, - { - "nr": 120611, - "hash": "112e30bef13bce38e6ef1fa3b74d5276a5b1cbd6" - }, - { - "nr": 126125, - "hash": "75c527b067c32c02d49e86ccaaea1d3cfb82326f" - }, - { - "nr": 125488, - "hash": "fc1c9a71019d608bc02bf6584d1ed20adc5205a6" - }, - { - "nr": 126124, - "hash": "c995a60dda5364c51deb17e3b107d459b3c4f9d8" - }, - { - "nr": 125782, - "hash": "8f669b959bd631996c9551ca9fbabdc8836e06bd" - }, - { - "nr": 125259, - "hash": "cb835dfcbdab9c1b3f497853d7796175472c6fef" - }, - { - "nr": 125813, - "hash": "f6b445207ab2b84d80b9a0141ab942f55f8d9f08" - }, - { - "nr": 125660, - "hash": "fd0fedce7893df9baa438e23e9fec94289a73fa7" - }, - { - "nr": 125935, - "hash": "662f0b6c338d97262ad315df370fe9127bb5c96f" - }, - { - "nr": 126163, - "hash": "bdff3fe7f1f06aa2ae447773c257021af7410bde" - }, - { - "nr": 126031, - "hash": "0adcff2c89d925b01e77e066ab541e497f3cbbf3" - }, - { - "nr": 125656, - "hash": "4b2b51afdd74a30d629168d35d2e9084ee81c75a" - }, - { - "nr": 124958, - "hash": "3ff1e3a1d733f09a1a1cfefa6e1e4b5d8d160265" - }, - { - "nr": 124101, - "hash": "f0c3ee06acdaac20a5cc16da951b9ec2b4dfa595" - }, - { - "nr": 126243, - "hash": "01cee0e00a5e15481e041521326d0c1f84fad8d7" - }, - { - "nr": 125661, - "hash": "10c2fb52626014ea434404ce3e7200ec1cf59ec5" - }, - { - "nr": 126107, - "hash": "617561f824d8fd1e02e6074f72b8a544d96bcd42" - }, - { - "nr": 126166, - "hash": "3acb60b8cf94ee569475aa0c39f29e7dae33ef1e" - }, - { - "nr": 126293, - "hash": "ec2e9a33134dc7d43bd574151ae0c3b1f4f67551" - }, - { - "nr": 126441, - "hash": "1ec8cb9ffe85a09b1cb27b2b71dd93a8bd20b936" - }, - { - "nr": 126108, - "hash": "199a7a2374958d34b0ee068a25ade03ac28bd42e" - }, - { - "nr": 126205, - "hash": "8242ece930798e77d1b2e3e5921ecbd2acfc1aad" - }, - { - "nr": 126237, - "hash": "54edd08a134dd15f8d64808485007e5d5894c407" - }, - { - "nr": 126291, - "hash": "cfe63b19624be2e9ff4e30523e560c3cdac277ad" - }, - { - "nr": 126191, - "hash": "6189d3f4de626456150ab5ee0702412fe9e77abf" - }, - { - "nr": 126072, - "hash": "1792a31f637d97256e83bccbd382b5dc0f48d03f" - }, - { - "nr": 126136, - "hash": "f96db3621ba0f964e5bdca8ba30ed548bab2854d" - }, - { - "nr": 124383, - "hash": "804611f5df6bff9b437c8c097a923b6d34b6c9b7" - }, - { - "nr": 122922, - "hash": "013c6ff4e49639ce759b529b75101e1f4609907a" - }, - { - "nr": 124568, - "hash": "00a10311b511d2153e5ff75a40f86fb46d542917" - }, - { - "nr": 125571, - "hash": "aecece7ccbba9d895165ae603f56173c607378ca" - }, - { - "nr": 124061, - "hash": "6252d8140c0b3fac9a276d3547dc280fe5a22dfb" - }, - { - "nr": 126067, - "hash": "a6fd700106fad583a49a9d38ef24a6c0e2138e62" - }, - { - "nr": 125470, - "hash": "769429c3d720fadfcd2a6700d18f56815245b7f9" - }, - { - "nr": 126227, - "hash": "c7a714caf73350fa1b91ad4d956218d30c3ea551" - }, - { - "nr": 121902, - "hash": "5bf9b530f6e8c81140d6d88dbb442c2c6140baf5" - }, - { - "nr": 126167, - "hash": "4e9d50eb7b5fcd55301c7485cff8af8f8c3cbb30" - }, - { - "nr": 126113, - "hash": "a8452e00b49dc79d07d4bd78cc3e3ccda9f0e183" - }, - { - "nr": 124819, - "hash": "e9d069d81803fab49437436ea6419b271640c5c4" - }, - { - "nr": 126165, - "hash": "5dc1e4a87b2e7d6345f982a42f12c1ac5be32be3" - }, - { - "nr": 124961, - "hash": "f8f280b6ce4b35f3ada3337cb0069825ac5e425c" - }, - { - "nr": 126073, - "hash": "0b193e287d11f315f4d8f98140e44a140988005e" - }, - { - "nr": 125778, - "hash": "eaed7555b070db57c61fd79f7676c6222e3423d1" - } - ] +{ + "mail": "sepi.alavii@gmail.com", + "name": "Sepideh", + "date": 1722538475, + "prs": [ + { + "nr": 124012, + "hash": "9dc4b05c72987a58af306a29df3181dfafa8bbec" + }, + { + "nr": 124884, + "hash": "f28d3c3627f95358986f40b784875830cd93219e" + }, + { + "nr": 126224, + "hash": "31c29d91394263d9248d9223b68e8f150a238e06" + }, + { + "nr": 125929, + "hash": "6d3ce0143c7c07735e36b3ee26a2b1296b8ddede" + }, + { + "nr": 126139, + "hash": "33abc6c92dea504cce0b8eef61bc68421bf1c33d" + }, + { + "nr": 126047, + "hash": "cae17cb0e63acce7b36650ad1b5f8e4302027dff" + }, + { + "nr": 124815, + "hash": "a78f70d29c71e68a3ff4262eb5144959a7d293d4" + }, + { + "nr": 125374, + "hash": "643665e2c0666de4340e71b128ec3a09fc533b00" + }, + { + "nr": 125277, + "hash": "9c07973fcb7272b377729a419ee73fe29b21fc2f" + }, + { + "nr": 126207, + "hash": "bf7affa53dcb70d26c456a0f7360f5c1b0e67f92" + }, + { + "nr": 125941, + "hash": "e1b26cc7adf9dac18bc007eca33de46c2f7d73ca" + }, + { + "nr": 126330, + "hash": "2b117019f85c72098ab95ff4f06237d96644f3b6" + }, + { + "nr": 126145, + "hash": "02cf5481e09b6233d5e2221514ec99646a18d750" + }, + { + "nr": 126188, + "hash": "6606d352e5c679d0280d2dd97e3855a8a701a754" + }, + { + "nr": 126014, + "hash": "08242f1f1feda982a438c801e8c6622cf24f07cc" + }, + { + "nr": 122628, + "hash": "f8a6453a8220abd6450cf3a1ee4179c8299a3118" + }, + { + "nr": 126335, + "hash": "dba7004f7a890dd85bbfee5c0cc2a9cd8cb930a7" + }, + { + "nr": 126174, + "hash": "f99612f40c5392598a3873529e7da28fd19c7149" + }, + { + "nr": 124342, + "hash": "058d814c32d97c0df08d40acc2cd4fe20f81900d" + }, + { + "nr": 125163, + "hash": "994fbe04728b635fde84104b02c37eb8b95488df" + }, + { + "nr": 124430, + "hash": "803f4cfac3d5a4662ac0d170113dd1b0aefaf0de" + }, + { + "nr": 126355, + "hash": "947c6a32c119faf73371b05c49e6f447086dcf8b" + }, + { + "nr": 124530, + "hash": "63bd72069ae2d7f3c1de6c5c69826626a3131b55" + }, + { + "nr": 125257, + "hash": "ff6313efb4f3dc620eb5e57069501fb6ace59d09" + }, + { + "nr": 124959, + "hash": "85df6964c0a2d0333982944249d57d59b27d8e2a" + }, + { + "nr": 120611, + "hash": "112e30bef13bce38e6ef1fa3b74d5276a5b1cbd6" + }, + { + "nr": 126125, + "hash": "75c527b067c32c02d49e86ccaaea1d3cfb82326f" + }, + { + "nr": 125488, + "hash": "fc1c9a71019d608bc02bf6584d1ed20adc5205a6" + }, + { + "nr": 126124, + "hash": "c995a60dda5364c51deb17e3b107d459b3c4f9d8" + }, + { + "nr": 125782, + "hash": "8f669b959bd631996c9551ca9fbabdc8836e06bd" + }, + { + "nr": 125259, + "hash": "cb835dfcbdab9c1b3f497853d7796175472c6fef" + }, + { + "nr": 125813, + "hash": "f6b445207ab2b84d80b9a0141ab942f55f8d9f08" + }, + { + "nr": 125660, + "hash": "fd0fedce7893df9baa438e23e9fec94289a73fa7" + }, + { + "nr": 125935, + "hash": "662f0b6c338d97262ad315df370fe9127bb5c96f" + }, + { + "nr": 126163, + "hash": "bdff3fe7f1f06aa2ae447773c257021af7410bde" + }, + { + "nr": 126031, + "hash": "0adcff2c89d925b01e77e066ab541e497f3cbbf3" + }, + { + "nr": 125656, + "hash": "4b2b51afdd74a30d629168d35d2e9084ee81c75a" + }, + { + "nr": 124958, + "hash": "3ff1e3a1d733f09a1a1cfefa6e1e4b5d8d160265" + }, + { + "nr": 124101, + "hash": "f0c3ee06acdaac20a5cc16da951b9ec2b4dfa595" + }, + { + "nr": 126243, + "hash": "01cee0e00a5e15481e041521326d0c1f84fad8d7" + }, + { + "nr": 125661, + "hash": "10c2fb52626014ea434404ce3e7200ec1cf59ec5" + }, + { + "nr": 126107, + "hash": "617561f824d8fd1e02e6074f72b8a544d96bcd42" + }, + { + "nr": 126166, + "hash": "3acb60b8cf94ee569475aa0c39f29e7dae33ef1e" + }, + { + "nr": 126293, + "hash": "ec2e9a33134dc7d43bd574151ae0c3b1f4f67551" + }, + { + "nr": 126441, + "hash": "1ec8cb9ffe85a09b1cb27b2b71dd93a8bd20b936" + }, + { + "nr": 126108, + "hash": "199a7a2374958d34b0ee068a25ade03ac28bd42e" + }, + { + "nr": 126205, + "hash": "8242ece930798e77d1b2e3e5921ecbd2acfc1aad" + }, + { + "nr": 126237, + "hash": "54edd08a134dd15f8d64808485007e5d5894c407" + }, + { + "nr": 126291, + "hash": "cfe63b19624be2e9ff4e30523e560c3cdac277ad" + }, + { + "nr": 126191, + "hash": "6189d3f4de626456150ab5ee0702412fe9e77abf" + }, + { + "nr": 126072, + "hash": "1792a31f637d97256e83bccbd382b5dc0f48d03f" + }, + { + "nr": 126136, + "hash": "f96db3621ba0f964e5bdca8ba30ed548bab2854d" + }, + { + "nr": 124383, + "hash": "804611f5df6bff9b437c8c097a923b6d34b6c9b7" + }, + { + "nr": 122922, + "hash": "013c6ff4e49639ce759b529b75101e1f4609907a" + }, + { + "nr": 124568, + "hash": "00a10311b511d2153e5ff75a40f86fb46d542917" + }, + { + "nr": 125571, + "hash": "aecece7ccbba9d895165ae603f56173c607378ca" + }, + { + "nr": 124061, + "hash": "6252d8140c0b3fac9a276d3547dc280fe5a22dfb" + }, + { + "nr": 126067, + "hash": "a6fd700106fad583a49a9d38ef24a6c0e2138e62" + }, + { + "nr": 125470, + "hash": "769429c3d720fadfcd2a6700d18f56815245b7f9" + }, + { + "nr": 126227, + "hash": "c7a714caf73350fa1b91ad4d956218d30c3ea551" + }, + { + "nr": 121902, + "hash": "5bf9b530f6e8c81140d6d88dbb442c2c6140baf5" + }, + { + "nr": 126167, + "hash": "4e9d50eb7b5fcd55301c7485cff8af8f8c3cbb30" + }, + { + "nr": 126113, + "hash": "a8452e00b49dc79d07d4bd78cc3e3ccda9f0e183" + }, + { + "nr": 124819, + "hash": "e9d069d81803fab49437436ea6419b271640c5c4" + }, + { + "nr": 126165, + "hash": "5dc1e4a87b2e7d6345f982a42f12c1ac5be32be3" + }, + { + "nr": 124961, + "hash": "f8f280b6ce4b35f3ada3337cb0069825ac5e425c" + }, + { + "nr": 126073, + "hash": "0b193e287d11f315f4d8f98140e44a140988005e" + }, + { + "nr": 125778, + "hash": "eaed7555b070db57c61fd79f7676c6222e3423d1" + } + ] } \ No newline at end of file diff --git a/releases/release-1.31/release-notes/sessions/maps-1723123535.json b/releases/release-1.31/release-notes/sessions/maps-1723123535.json index 628aceff83e..f57c772f174 100644 --- a/releases/release-1.31/release-notes/sessions/maps-1723123535.json +++ b/releases/release-1.31/release-notes/sessions/maps-1723123535.json @@ -1,11 +1,11 @@ -{ - "mail": "rayandas91@gmail.com", - "name": "Rayan Das", - "date": 1723123535, - "prs": [ - { - "nr": 125828, - "hash": "f7bd4cde457dad590cd07307f7bade3e13d70d04" - } - ] +{ + "mail": "rayandas91@gmail.com", + "name": "Rayan Das", + "date": 1723123535, + "prs": [ + { + "nr": 125828, + "hash": "f7bd4cde457dad590cd07307f7bade3e13d70d04" + } + ] } \ No newline at end of file diff --git a/releases/release-1.31/release-team.md b/releases/release-1.31/release-team.md index 6625aa493dd..5e2eeec41e5 100644 --- a/releases/release-1.31/release-team.md +++ b/releases/release-1.31/release-team.md @@ -1,16 +1,16 @@ -# Kubernetes 1.31 Release Team - -| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|-------------------|--------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Release Team Lead | Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos) / Slack: `@Angelos Kolaitis`) | Drew Hagen ([@drewhagen](https://github.com/drewhagen) / Slack: `@Drew Hagen`), Frederico Munoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz`), Mohammad Reza Saleh Sedghpour ([@salehsedghpour](https://github.com/salehsedghpour) / Slack: `@Mohammad Reza Saleh`), Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07) / Slack: `@Sanchita Mishra`) | -| Emeritus Adviser | Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack: `@psaggu`) | N/A | -| Enhancements | Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/sreeram-venkitesh) / Slack: `@sreeram.venkitesh`) | Arka Saha ([@ArkaSaha30](https://github.com/ArkaSaha30), Slack: `@Arka`), Dipesh Rawat ([@dipesh-rawat](https://github.com/dipesh-rawat) / Slack: `@Dipesh`), Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@Mickey`), Prianna Ahsan ([@prianna](https://github.com/prianna) / Slack: `@prianna`), Tyler Schade ([@tjons](https://github.com/tjons) / Slack: `@Tyler Schade`) | -| Release Notes | Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova`) | Satyam Soni ([@satyampsoni](https://github.com/satyampsoni) / Slack: `@satyampsoni`), Amit Dsouza ([@checksumz](https://github.com/checksumz) / Slack: `@AmitD`), Mélony Qin ([@cloudmelon](https://github.com/cloudmelon) / Slack: `@MelonyQIN`), Rayan Das ([@rayandas](https://github.com/rayandas) / Slack: `@rayandas`), Sepideh Alavi ([@shecodesmagic](https://github.com/shecodesmagic) / Slack: `@Sepideh Alavi`) | -| Communications | Abigail McCarthy ([@a-mccarthy](https://github.com/a-mccarthy) / Slack: `@abbie`) | Matteo Bianchi ([@mbianchidev](https://github.com/mbianchidev) / Slack: `mbianchidev`), Edith Puclla ([@edithturn](https://github.com/edithturn) / Slack: `@Edith`), Rashan Smith ([@rashansmith](https://github.com/rashansmith) / Slack: `Rashan`), Yigit Demirbas ([@hailkomputer](https://github.com/hailkomputer) / Slack: `@Yigit Demirbas`) | -| Release Signal | Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav`) | Atharva Shinde ([@Atharva-Shinde](https://github.com/Atharva-Shinde) / Slack: `@Atharva-Shinde`), Michael Levan ([@AdminTurnedDevOps](https://github.com/AdminTurnedDevOps) / Slack: `@Michael Levan`), Wendy Ha ([@wendy-ha](https://github.com/wendy-ha) / Slack: `@Wendy Ha`), Subhasmita Swain ([@subhasmitasw](https://github.com/subhasmitasw) / Slack: `@subhasmita`) | -| Docs | Oluebube Princess Egbuna ([@Princesso](https://github.com/Princesso) / Slack: `@Bube`) | Daniel Chan ([@chanieljdan](https://github.com/chanieljdan) / Slack: `@dchan`), Laurent Goderre ([@LaurentGoderre](https://github.com/LaurentGoderre) / Slack: `@Laurent Goderre`), Maryam Tavakkoli ([@MaryamTavakkoli](https://github.com/MaryamTavakkoli) / Slack: `@Maryam Tavakkoli`), Shedrack Akintayo ([@hacktivist123](https://github.com/hacktivist123) / Slack: `@Shedrack Akintayo`), Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`) | -| Branch Manager | Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@Meha Bhalodiya`) | Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@marosset`) | - -Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.31, once the 1.31 release cycle concludes. +# Kubernetes 1.31 Release Team + +| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|-------------------|--------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Release Team Lead | Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos) / Slack: `@Angelos Kolaitis`) | Drew Hagen ([@drewhagen](https://github.com/drewhagen) / Slack: `@Drew Hagen`), Frederico Munoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz`), Mohammad Reza Saleh Sedghpour ([@salehsedghpour](https://github.com/salehsedghpour) / Slack: `@Mohammad Reza Saleh`), Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07) / Slack: `@Sanchita Mishra`) | +| Emeritus Adviser | Priyanka Saggu ([@Priyankasaggu11929](https://github.com/Priyankasaggu11929) / Slack: `@psaggu`) | N/A | +| Enhancements | Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/sreeram-venkitesh) / Slack: `@sreeram.venkitesh`) | Arka Saha ([@ArkaSaha30](https://github.com/ArkaSaha30), Slack: `@Arka`), Dipesh Rawat ([@dipesh-rawat](https://github.com/dipesh-rawat) / Slack: `@Dipesh`), Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@Mickey`), Prianna Ahsan ([@prianna](https://github.com/prianna) / Slack: `@prianna`), Tyler Schade ([@tjons](https://github.com/tjons) / Slack: `@Tyler Schade`) | +| Release Notes | Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova`) | Satyam Soni ([@satyampsoni](https://github.com/satyampsoni) / Slack: `@satyampsoni`), Amit Dsouza ([@checksumz](https://github.com/checksumz) / Slack: `@AmitD`), Mélony Qin ([@cloudmelon](https://github.com/cloudmelon) / Slack: `@MelonyQIN`), Rayan Das ([@rayandas](https://github.com/rayandas) / Slack: `@rayandas`), Sepideh Alavi ([@shecodesmagic](https://github.com/shecodesmagic) / Slack: `@Sepideh Alavi`) | +| Communications | Abigail McCarthy ([@a-mccarthy](https://github.com/a-mccarthy) / Slack: `@abbie`) | Matteo Bianchi ([@mbianchidev](https://github.com/mbianchidev) / Slack: `mbianchidev`), Edith Puclla ([@edithturn](https://github.com/edithturn) / Slack: `@Edith`), Rashan Smith ([@rashansmith](https://github.com/rashansmith) / Slack: `Rashan`), Yigit Demirbas ([@hailkomputer](https://github.com/hailkomputer) / Slack: `@Yigit Demirbas`) | +| Release Signal | Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav`) | Atharva Shinde ([@Atharva-Shinde](https://github.com/Atharva-Shinde) / Slack: `@Atharva-Shinde`), Michael Levan ([@AdminTurnedDevOps](https://github.com/AdminTurnedDevOps) / Slack: `@Michael Levan`), Wendy Ha ([@wendy-ha](https://github.com/wendy-ha) / Slack: `@Wendy Ha`), Subhasmita Swain ([@subhasmitasw](https://github.com/subhasmitasw) / Slack: `@subhasmita`) | +| Docs | Oluebube Princess Egbuna ([@Princesso](https://github.com/Princesso) / Slack: `@Bube`) | Daniel Chan ([@chanieljdan](https://github.com/chanieljdan) / Slack: `@dchan`), Laurent Goderre ([@LaurentGoderre](https://github.com/LaurentGoderre) / Slack: `@Laurent Goderre`), Maryam Tavakkoli ([@MaryamTavakkoli](https://github.com/MaryamTavakkoli) / Slack: `@Maryam Tavakkoli`), Shedrack Akintayo ([@hacktivist123](https://github.com/hacktivist123) / Slack: `@Shedrack Akintayo`), Xander Grzywinski ([@salaxander](https://github.com/salaxander) / Slack: `@Xander`) | +| Branch Manager | Meha Bhalodiya ([@mehabhalodiya](https://github.com/mehabhalodiya) / Slack: `@Meha Bhalodiya`) | Mark Rossetti ([@marosset](https://github.com/marosset) / Slack: `@marosset`) | + +Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.31, once the 1.31 release cycle concludes. diff --git a/releases/release-1.32/README.md b/releases/release-1.32/README.md index 7084bfe547a..2c32dd6c079 100644 --- a/releases/release-1.32/README.md +++ b/releases/release-1.32/README.md @@ -1,88 +1,88 @@ ---- -title: "Kubernetes 1.32 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes 1.32 - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.32/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.32/release-team.md) -* [Meeting Minutes](https://bit.ly/k8s132-releasemtg) (members of [release-team@] receive meeting invites) -* [v1.32 Release Calendar](https://bit.ly/k8s-release-cal) -* Contact: [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail -* [Internal Contact Info](https://bit.ly/k8s132-contacts) (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Board](https://bit.ly/k8s132-enhancements) -* [Feature blog Tracking Board](https://bit.ly/k8s132-feature-blogs) -* [Bug Triage Tracking Board](https://bit.ly/k8s132-bugtriage) -* [CI Signal Project Board & Issue Tracking](https://bit.ly/k8s133-cisignal) -* [Retrospective Document](https://bit.ly/k8s133-retro) -* [kubernetes/sig-release v1.32 milestone](https://github.com/kubernetes/kubernetes/milestone/65) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## Summary - -The 1.32 release cycle is as follows: - -- **Monday 9th September 2024**: Week 1 — Release cycle begins -- **Thursday 3rd October 2024**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) -- **02:00 UTC Friday 11th October 2024 / 19:00 PDT Thursday 10th October 2024**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **02:00 UTC Friday 8th November 2024 / 19:00 PDT Thursday 7th November 2024**: Week 9 — [Code Freeze](../release_phases.md#code-freeze) and [Test Freeze](../release_phases.md#test-freeze) -- **Tuesday 12th - Friday 15th November 2024**: Week 10 - [KubeCon NA](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/) -- **Tuesday 26th November 2024**: Week 12 — [Docs Freeze](../release_phases.md#docs-freeze) -- **Wednesday 11th December 2024**: Week 14 — Kubernetes v1.32.0 released - -## Timeline - -| **What** | **Who** | **When** | **Week** | **CI Signal** | -|----------------------------------------------------------------------------------------|-------------------------------|-----------------------------------------------------------------------------|----------|--------------------------------------------------------| -| Start of Release Cycle | Lead | Monday 9th September 2024 | week 1 | [master-blocking] | -| Start Enhancements Tracking | Enhancements Lead | Monday 9th September 2024 | week 1 | | -| Schedule finalized | Lead | Friday 13th September 2024 | week 1 | | -| Team finalized | Lead | Friday 13th September 2024 | week 1 | | -| Start Release Notes Draft | Release Notes Lead | Tuesday 24th September 2024 | week 3 | | -| 1.32.0-alpha.1 released | Branch Manager | Tuesday 1st October 2024 | week 4 | | -| Begin Friday APAC-friendly meetings | Lead | Wednesday 2nd October 2024 | week 4 | | -| **Production Readiness Freeze** | Enhancements Lead | Thursday 3rd October 2024 | week 4 | | -| **Begin [Enhancements Freeze]** | Enhancements Lead | 02:00 UTC Friday 11th October 2024 / 19:00 PDT Thursday 10th October 2024 | week 5 | [master-blocking], [master-informing] | -| 1.32.0-alpha.2 released | Branch Manager | Tuesday 15th October 2024 | week 6 | | -| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 24th October 2024 | week 7 | | -| Call for [Exceptions][Exception] | Lead | Monday 28th October 2024 | week 8 | | -| Brace Yourself, Code Freeze is Coming | Comms / Release Signal | Monday 28th October 2024 | week 8 | | -| 1.32.0-alpha.3 released | Branch Manager | Tuesday 29th October 2024 | week 8 | | -| **Begin Feature blog freeze** | Comms Lead | 02:00 UTC Wednesday 30th October 2024 / 19:00 PDT Tuesday 29th October 2024 | week 8 | | -| 1.32.0-beta.0 released | Branch Manager | Tuesday 5th November 2024 | week 9 | | -| Deprecations and Removals blog published | Comms | Monday 4th November 2024 | week 9 | | -| **Begin [Code Freeze] and [Test Freeze]** | Branch Manager | 02:00 UTC Friday 8th November 2024 / 19:00 PDT Thursday 7th November 2024 | week 9 | | -| **Preparing for Feature blogs review — Initiating outreach** | Comms | Monday 11th November 2024 | week 10 | | -| **KubeCon NA** | | Tuesday 12th - Friday 15th November 2024 | week 10 | | -| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 18th November 2024 | week 11 | | -| Docs deadline — PRs ready for review | Docs Lead | Tuesday 19th November 2024 | week 11 | | -| Release Highlights deadline | Comms | Tuesday 19th November 2024 | week 11 | | -| Start final draft of Release Notes | Release Notes Lead | Tuesday 19th November2024 | week 11 | | -| Release blog ready to review | Comms / Docs | 02:00 UTC Friday 22th November 2024 / 19:00 PDT Thursday 21st November 2024 | week 11 | | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Monday 25th November 2024 | week 12 | | -| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 25th November 2024 | week 12 | | -| release-1.32 branch created | Branch Manager | Tuesday 26th November 2024 | week 12 | | -| release-1.32 jobs created | Branch Manager | Tuesday 26th November 2024 | week 12 | | -| 1.32.0-rc.0 released | Branch Manager | Tuesday 26th November 2024 | week 12 | [1.32-blocking], [master-blocking], [master-informing] | -| **Docs Freeze** | Docs Lead | Tuesday 26th November 2024 | week 12 | | -| Release Highlights complete | Release Notes Lead | Tuesday 3rd December 2024 | week 13 | | -| 1.32.0-rc.1 released | Branch Manager | Tuesday 3rd December 2024 | week 13 | | -| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Release Notes Lead | Wednesday 11th December 2024 | week 14 | | -| **v1.32.0 released** | Branch Manager | Wednesday 11th December 2024 | week 14 | [1.32-blocking], [master-blocking], [master-informing] | -| Release blog published | Comms | Wednesday 11th December 2024 | week 14 | | -| [Thaw] | Branch Manager | Wednesday 11th December 2024 | week 14 | | +--- +title: "Kubernetes 1.32 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes 1.32 + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.32/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.32/release-team.md) +* [Meeting Minutes](https://bit.ly/k8s132-releasemtg) (members of [release-team@] receive meeting invites) +* [v1.32 Release Calendar](https://bit.ly/k8s-release-cal) +* Contact: [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail +* [Internal Contact Info](https://bit.ly/k8s132-contacts) (accessible only to members of [release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Board](https://bit.ly/k8s132-enhancements) +* [Feature blog Tracking Board](https://bit.ly/k8s132-feature-blogs) +* [Bug Triage Tracking Board](https://bit.ly/k8s132-bugtriage) +* [CI Signal Project Board & Issue Tracking](https://bit.ly/k8s133-cisignal) +* [Retrospective Document](https://bit.ly/k8s133-retro) +* [kubernetes/sig-release v1.32 milestone](https://github.com/kubernetes/kubernetes/milestone/65) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## Summary + +The 1.32 release cycle is as follows: + +- **Monday 9th September 2024**: Week 1 — Release cycle begins +- **Thursday 3rd October 2024**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) +- **02:00 UTC Friday 11th October 2024 / 19:00 PDT Thursday 10th October 2024**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **02:00 UTC Friday 8th November 2024 / 19:00 PDT Thursday 7th November 2024**: Week 9 — [Code Freeze](../release_phases.md#code-freeze) and [Test Freeze](../release_phases.md#test-freeze) +- **Tuesday 12th - Friday 15th November 2024**: Week 10 - [KubeCon NA](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/) +- **Tuesday 26th November 2024**: Week 12 — [Docs Freeze](../release_phases.md#docs-freeze) +- **Wednesday 11th December 2024**: Week 14 — Kubernetes v1.32.0 released + +## Timeline + +| **What** | **Who** | **When** | **Week** | **CI Signal** | +|----------------------------------------------------------------------------------------|-------------------------------|-----------------------------------------------------------------------------|----------|--------------------------------------------------------| +| Start of Release Cycle | Lead | Monday 9th September 2024 | week 1 | [master-blocking] | +| Start Enhancements Tracking | Enhancements Lead | Monday 9th September 2024 | week 1 | | +| Schedule finalized | Lead | Friday 13th September 2024 | week 1 | | +| Team finalized | Lead | Friday 13th September 2024 | week 1 | | +| Start Release Notes Draft | Release Notes Lead | Tuesday 24th September 2024 | week 3 | | +| 1.32.0-alpha.1 released | Branch Manager | Tuesday 1st October 2024 | week 4 | | +| Begin Friday APAC-friendly meetings | Lead | Wednesday 2nd October 2024 | week 4 | | +| **Production Readiness Freeze** | Enhancements Lead | Thursday 3rd October 2024 | week 4 | | +| **Begin [Enhancements Freeze]** | Enhancements Lead | 02:00 UTC Friday 11th October 2024 / 19:00 PDT Thursday 10th October 2024 | week 5 | [master-blocking], [master-informing] | +| 1.32.0-alpha.2 released | Branch Manager | Tuesday 15th October 2024 | week 6 | | +| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 24th October 2024 | week 7 | | +| Call for [Exceptions][Exception] | Lead | Monday 28th October 2024 | week 8 | | +| Brace Yourself, Code Freeze is Coming | Comms / Release Signal | Monday 28th October 2024 | week 8 | | +| 1.32.0-alpha.3 released | Branch Manager | Tuesday 29th October 2024 | week 8 | | +| **Begin Feature blog freeze** | Comms Lead | 02:00 UTC Wednesday 30th October 2024 / 19:00 PDT Tuesday 29th October 2024 | week 8 | | +| 1.32.0-beta.0 released | Branch Manager | Tuesday 5th November 2024 | week 9 | | +| Deprecations and Removals blog published | Comms | Monday 4th November 2024 | week 9 | | +| **Begin [Code Freeze] and [Test Freeze]** | Branch Manager | 02:00 UTC Friday 8th November 2024 / 19:00 PDT Thursday 7th November 2024 | week 9 | | +| **Preparing for Feature blogs review — Initiating outreach** | Comms | Monday 11th November 2024 | week 10 | | +| **KubeCon NA** | | Tuesday 12th - Friday 15th November 2024 | week 10 | | +| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 18th November 2024 | week 11 | | +| Docs deadline — PRs ready for review | Docs Lead | Tuesday 19th November 2024 | week 11 | | +| Release Highlights deadline | Comms | Tuesday 19th November 2024 | week 11 | | +| Start final draft of Release Notes | Release Notes Lead | Tuesday 19th November2024 | week 11 | | +| Release blog ready to review | Comms / Docs | 02:00 UTC Friday 22th November 2024 / 19:00 PDT Thursday 21st November 2024 | week 11 | | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Monday 25th November 2024 | week 12 | | +| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 25th November 2024 | week 12 | | +| release-1.32 branch created | Branch Manager | Tuesday 26th November 2024 | week 12 | | +| release-1.32 jobs created | Branch Manager | Tuesday 26th November 2024 | week 12 | | +| 1.32.0-rc.0 released | Branch Manager | Tuesday 26th November 2024 | week 12 | [1.32-blocking], [master-blocking], [master-informing] | +| **Docs Freeze** | Docs Lead | Tuesday 26th November 2024 | week 12 | | +| Release Highlights complete | Release Notes Lead | Tuesday 3rd December 2024 | week 13 | | +| 1.32.0-rc.1 released | Branch Manager | Tuesday 3rd December 2024 | week 13 | | +| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Release Notes Lead | Wednesday 11th December 2024 | week 14 | | +| **v1.32.0 released** | Branch Manager | Wednesday 11th December 2024 | week 14 | [1.32-blocking], [master-blocking], [master-informing] | +| Release blog published | Comms | Wednesday 11th December 2024 | week 14 | | +| [Thaw] | Branch Manager | Wednesday 11th December 2024 | week 14 | | diff --git a/releases/release-1.32/exceptions.yaml b/releases/release-1.32/exceptions.yaml index a36139d5c11..3ece0295401 100644 --- a/releases/release-1.32/exceptions.yaml +++ b/releases/release-1.32/exceptions.yaml @@ -1,25 +1,25 @@ -# Exceptions to Code Freeze requested in 1.32 -# Release Team Lead: Frederico Muñoz (@fsmunoz) - - -# Enhancements Freeze Exceptions requested in 1.32 - -enhancementFreeze: - -- name: "Asynchronous preemption in the scheduler" - issue: 4832 - date_requested: 2024-10-11 - date_reviewed: 2024-10-14 - thread: https://groups.google.com/g/kubernetes-sig-release/c/Zte-yJGTsjc/m/HgM05gDjCAAJ - pull_requests: - - https://github.com/kubernetes/enhancements/pull/4833 - status: "approved" - -- name: "Multiple Service CIDRs" - issue: 2400 - date_requested: 2024-10-10 - date_reviewed: 2024-10-15 - thread: https://groups.google.com/d/msgid/kubernetes-sig-node/CA%2BoyvWYSqK_0T%2BUQTYNWTX9rNRWE9iOBjVpXffMW8pAu4ESnXg%40mail.gmail.com - pull_requests: - - https://github.com/kubernetes/enhancements/pull/4701 +# Exceptions to Code Freeze requested in 1.32 +# Release Team Lead: Frederico Muñoz (@fsmunoz) + + +# Enhancements Freeze Exceptions requested in 1.32 + +enhancementFreeze: + +- name: "Asynchronous preemption in the scheduler" + issue: 4832 + date_requested: 2024-10-11 + date_reviewed: 2024-10-14 + thread: https://groups.google.com/g/kubernetes-sig-release/c/Zte-yJGTsjc/m/HgM05gDjCAAJ + pull_requests: + - https://github.com/kubernetes/enhancements/pull/4833 + status: "approved" + +- name: "Multiple Service CIDRs" + issue: 2400 + date_requested: 2024-10-10 + date_reviewed: 2024-10-15 + thread: https://groups.google.com/d/msgid/kubernetes-sig-node/CA%2BoyvWYSqK_0T%2BUQTYNWTX9rNRWE9iOBjVpXffMW8pAu4ESnXg%40mail.gmail.com + pull_requests: + - https://github.com/kubernetes/enhancements/pull/4701 status: "removed" \ No newline at end of file diff --git a/releases/release-1.32/release-notes/maps/pr-119089-map.yaml b/releases/release-1.32/release-notes/maps/pr-119089-map.yaml index 7ec672b9b1c..20ecc800e52 100644 --- a/releases/release-1.32/release-notes/maps/pr-119089-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-119089-map.yaml @@ -1,5 +1,5 @@ -pr: 119089 -releasenote: - text: Output a log as v4-level when probe is triggered and shift the periodic timer - of ReadinessProbe after manual run. -pr_body: "" +pr: 119089 +releasenote: + text: Output a log as v4-level when probe is triggered and shift the periodic timer + of ReadinessProbe after manual run. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-121206-map.yaml b/releases/release-1.32/release-notes/maps/pr-121206-map.yaml index c323f125fa4..31b316f4c0f 100644 --- a/releases/release-1.32/release-notes/maps/pr-121206-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-121206-map.yaml @@ -1,18 +1,18 @@ -pr: 121206 -releasenote: - text: |- - `StartupProbe` was explicitly stopped when the `successThreshold` was reached. - This eliminated the problem of executing `StartupProbe` more times than - the `successThreshold`. - documentation: [] - author: mochizuki875 - areas: - - kubelet - kinds: - - bug - sigs: - - node - feature: false - action_required: false - do_not_publish: false -pr_body: "" +pr: 121206 +releasenote: + text: |- + `StartupProbe` was explicitly stopped when the `successThreshold` was reached. + This eliminated the problem of executing `StartupProbe` more times than + the `successThreshold`. + documentation: [] + author: mochizuki875 + areas: + - kubelet + kinds: + - bug + sigs: + - node + feature: false + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-121968-map.yaml b/releases/release-1.32/release-notes/maps/pr-121968-map.yaml index 29a2d96f602..fead8705a38 100644 --- a/releases/release-1.32/release-notes/maps/pr-121968-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-121968-map.yaml @@ -1,16 +1,16 @@ -pr: 121968 -releasenote: - text: - Added warnings for overlap paths in ConfigMap, Secret, DownwardAPI, Projected. - Added warning for cases when ProjectedVolume with sources is provided. - documentation: [] - author: Peac36 - areas: [] - kinds: - - bug - sigs: - - auth - feature: false - action_required: false - do_not_publish: false -pr_body: "" +pr: 121968 +releasenote: + text: + Added warnings for overlap paths in ConfigMap, Secret, DownwardAPI, Projected. + Added warning for cases when ProjectedVolume with sources is provided. + documentation: [] + author: Peac36 + areas: [] + kinds: + - bug + sigs: + - auth + feature: false + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-122890-map.yaml b/releases/release-1.32/release-notes/maps/pr-122890-map.yaml index 16cb6e638f6..479417eedcd 100644 --- a/releases/release-1.32/release-notes/maps/pr-122890-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-122890-map.yaml @@ -1,8 +1,8 @@ -pr: 122890 -releasenote: - text: Fixed the bug where `spec.terminationGracePeriodSeconds` of the pod will always - be overwritten by the MaxPodGracePeriodSeconds of the soft eviction, you can enable - the `AllowOverwriteTerminationGracePeriodSeconds` feature gate, which will restore - the previous behavior. If you do need to set this, please file an issue with - the Kubernetes project to help contributors understand why you needed it. -pr_body: "" +pr: 122890 +releasenote: + text: Fixed the bug where `spec.terminationGracePeriodSeconds` of the pod will always + be overwritten by the MaxPodGracePeriodSeconds of the soft eviction, you can enable + the `AllowOverwriteTerminationGracePeriodSeconds` feature gate, which will restore + the previous behavior. If you do need to set this, please file an issue with + the Kubernetes project to help contributors understand why you needed it. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-124003-map.yaml b/releases/release-1.32/release-notes/maps/pr-124003-map.yaml index aec2ab7204f..314e44759a9 100644 --- a/releases/release-1.32/release-notes/maps/pr-124003-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-124003-map.yaml @@ -1,9 +1,9 @@ -pr: 124003 -releasenote: - text: 'Kube-scheduler removed `AzureDiskLimits` ,`CinderLimits` - `EBSLimits` and `GCEPDLimits` plugin. Given the corresponding CSI driver reports how many - volumes a node can handle in NodeGetInfoResponse, the kubelet stores this limit - in CSINode and the scheduler then knows the limit of the driver on the node. Removed - plugins AzureDiskLimits, CinderLimits, EBSLimits and GCEPDLimits if you explicitly - enabled them in the scheduler config.' -pr_body: "" +pr: 124003 +releasenote: + text: 'Kube-scheduler removed `AzureDiskLimits` ,`CinderLimits` + `EBSLimits` and `GCEPDLimits` plugin. Given the corresponding CSI driver reports how many + volumes a node can handle in NodeGetInfoResponse, the kubelet stores this limit + in CSINode and the scheduler then knows the limit of the driver on the node. Removed + plugins AzureDiskLimits, CinderLimits, EBSLimits and GCEPDLimits if you explicitly + enabled them in the scheduler config.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-124285-map.yaml b/releases/release-1.32/release-notes/maps/pr-124285-map.yaml index 772b11dbf47..fc1e8ff564a 100644 --- a/releases/release-1.32/release-notes/maps/pr-124285-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-124285-map.yaml @@ -1,4 +1,4 @@ -pr: 124285 -releasenote: - text: 'CRI: Added a field to support CPU affinity on Windows.' -pr_body: "" +pr: 124285 +releasenote: + text: 'CRI: Added a field to support CPU affinity on Windows.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-124389-map.yaml b/releases/release-1.32/release-notes/maps/pr-124389-map.yaml index c31dfa541c0..fab83890c60 100644 --- a/releases/release-1.32/release-notes/maps/pr-124389-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-124389-map.yaml @@ -1,5 +1,5 @@ -pr: 124389 -releasenote: - text: 'Added: Log Line for Debugging possible merge errors for Kubelet related Config - requests.' -pr_body: "" +pr: 124389 +releasenote: + text: 'Added: Log Line for Debugging possible merge errors for Kubelet related Config + requests.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-124703-map.yaml b/releases/release-1.32/release-notes/maps/pr-124703-map.yaml index e52b720bb28..e881df27380 100644 --- a/releases/release-1.32/release-notes/maps/pr-124703-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-124703-map.yaml @@ -1,5 +1,5 @@ -pr: 124703 -releasenote: - text: Implemented a queueing hint for PersistentVolumeClaim/Add event in `CSILimit` - plugin. -pr_body: "" +pr: 124703 +releasenote: + text: Implemented a queueing hint for PersistentVolumeClaim/Add event in `CSILimit` + plugin. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-124952-map.yaml b/releases/release-1.32/release-notes/maps/pr-124952-map.yaml index 7c03fb255e4..a7717e115f1 100644 --- a/releases/release-1.32/release-notes/maps/pr-124952-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-124952-map.yaml @@ -1,20 +1,20 @@ -pr: 124952 -releasenote: - text: The Job controller now considers sidecar container restart counts when removing - pods. - documentation: - - description: '[KEP]: <' - url: https://github.com/kubernetes/enhancements/issues/753> - type: KEP - author: AxeZhan - areas: - - kubectl - kinds: - - feature - sigs: - - apps - - cli - feature: true - action_required: false - do_not_publish: false -pr_body: "" +pr: 124952 +releasenote: + text: The Job controller now considers sidecar container restart counts when removing + pods. + documentation: + - description: '[KEP]: <' + url: https://github.com/kubernetes/enhancements/issues/753> + type: KEP + author: AxeZhan + areas: + - kubectl + kinds: + - feature + sigs: + - apps + - cli + feature: true + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-125070-map.yaml b/releases/release-1.32/release-notes/maps/pr-125070-map.yaml index 7322e4929d0..68b003d1e64 100644 --- a/releases/release-1.32/release-notes/maps/pr-125070-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-125070-map.yaml @@ -1,5 +1,5 @@ -pr: 125070 -releasenote: - text: Node shutdown controller made a best effort to wait for CSI Drivers to complete - the volume teardown process according to the pod priority groups. -pr_body: "" +pr: 125070 +releasenote: + text: Node shutdown controller made a best effort to wait for CSI Drivers to complete + the volume teardown process according to the pod priority groups. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-125118-map.yaml b/releases/release-1.32/release-notes/maps/pr-125118-map.yaml index 13bc1cb3103..ee9c34756d7 100644 --- a/releases/release-1.32/release-notes/maps/pr-125118-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-125118-map.yaml @@ -1,8 +1,8 @@ -pr: 125118 -releasenote: - text: |- - Output for the `ScalingReplicaSet` event has changed from: - Scaled <up|down> replica set <replica-set-name> to <new-value> from <old-value> - to: - Scaled <up|down> replica set <replica-set-name> from <old-value> to <new-value>. -pr_body: "" +pr: 125118 +releasenote: + text: |- + Output for the `ScalingReplicaSet` event has changed from: + Scaled <up|down> replica set <replica-set-name> to <new-value> from <old-value> + to: + Scaled <up|down> replica set <replica-set-name> from <old-value> to <new-value>. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-125171-map.yaml b/releases/release-1.32/release-notes/maps/pr-125171-map.yaml index 3f4739a4782..2ddd2551552 100644 --- a/releases/release-1.32/release-notes/maps/pr-125171-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-125171-map.yaml @@ -1,5 +1,5 @@ -pr: 125171 -releasenote: - text: The scheduler implemented `QueueingHint` in VolumeBinding plugin's CSIDriver - event, which enhanced the throughput of scheduling. -pr_body: "" +pr: 125171 +releasenote: + text: The scheduler implemented `QueueingHint` in VolumeBinding plugin's CSIDriver + event, which enhanced the throughput of scheduling. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-125337-map.yaml b/releases/release-1.32/release-notes/maps/pr-125337-map.yaml index dadedb50eb9..f9e0f73ad68 100644 --- a/releases/release-1.32/release-notes/maps/pr-125337-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-125337-map.yaml @@ -1,8 +1,8 @@ -pr: 125337 -releasenote: - text: The kubelet, when using `--cloud-provider=external` can use the `--node-ip` flag - with one of the unspecified addresses 0.0.0.0 or ::, to create the Node with the - IP of the default gateway of the corresponding IP family and then delegating the - responsibility to the external cloud provider. This solve the bootstrap problems - of out of tree cloud providers that are deployed as Pods within the cluster. -pr_body: "" +pr: 125337 +releasenote: + text: The kubelet, when using `--cloud-provider=external` can use the `--node-ip` flag + with one of the unspecified addresses 0.0.0.0 or ::, to create the Node with the + IP of the default gateway of the corresponding IP family and then delegating the + responsibility to the external cloud provider. This solve the bootstrap problems + of out of tree cloud providers that are deployed as Pods within the cluster. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-125372-map.yaml b/releases/release-1.32/release-notes/maps/pr-125372-map.yaml index fd727386eb5..bb3a1ef7cfa 100644 --- a/releases/release-1.32/release-notes/maps/pr-125372-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-125372-map.yaml @@ -1,5 +1,5 @@ -pr: 125372 -releasenote: - text: Improved PVC Protection Controller's scalability by batch-processing PVCs - by namespace with lazy live pod listing. -pr_body: "" +pr: 125372 +releasenote: + text: Improved PVC Protection Controller's scalability by batch-processing PVCs + by namespace with lazy live pod listing. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-125398-map.yaml b/releases/release-1.32/release-notes/maps/pr-125398-map.yaml index 796debc849c..839e7aa5781 100644 --- a/releases/release-1.32/release-notes/maps/pr-125398-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-125398-map.yaml @@ -1,6 +1,6 @@ -pr: 125398 -releasenote: - text: Fixed a bug that occurred when the hostname label of a node did not match the node name, - pods bound to a PV with nodeAffinity using the hostname may be scheduled to the - wrong node or experience scheduling failures. -pr_body: "" +pr: 125398 +releasenote: + text: Fixed a bug that occurred when the hostname label of a node did not match the node name, + pods bound to a PV with nodeAffinity using the hostname may be scheduled to the + wrong node or experience scheduling failures. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-125577-map.yaml b/releases/release-1.32/release-notes/maps/pr-125577-map.yaml index b1526cada7a..2232fc4c00b 100644 --- a/releases/release-1.32/release-notes/maps/pr-125577-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-125577-map.yaml @@ -1,32 +1,32 @@ -pr: 125577 -releasenote: - text: |- - Added a `/statusz` endpoint for the kube-apiserver endpoint. - documentation: [] - author: richabanker - areas: - - test - - kubelet - - kube-proxy - - apiserver - - kubectl - - provider/gcp - - dependency - kinds: - - feature - sigs: - - api-machinery - - apps - - architecture - - auth - - cli - - cloud-provider - - instrumentation - - network - - node - - testing - feature: true - action_required: false - do_not_publish: false -pr_body: "" - +pr: 125577 +releasenote: + text: |- + Added a `/statusz` endpoint for the kube-apiserver endpoint. + documentation: [] + author: richabanker + areas: + - test + - kubelet + - kube-proxy + - apiserver + - kubectl + - provider/gcp + - dependency + kinds: + - feature + sigs: + - api-machinery + - apps + - architecture + - auth + - cli + - cloud-provider + - instrumentation + - network + - node + - testing + feature: true + action_required: false + do_not_publish: false +pr_body: "" + diff --git a/releases/release-1.32/release-notes/maps/pr-125634-map.yaml b/releases/release-1.32/release-notes/maps/pr-125634-map.yaml index 86da36bd4c4..e940dc50cef 100644 --- a/releases/release-1.32/release-notes/maps/pr-125634-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-125634-map.yaml @@ -1,5 +1,5 @@ -pr: 125634 -releasenote: - text: X.509 client certificate authentication to the kube-apiserver now produces credential - IDs (derived from the certificate's signature) , for use in audit logging. -pr_body: "" +pr: 125634 +releasenote: + text: X.509 client certificate authentication to the kube-apiserver now produces credential + IDs (derived from the certificate's signature) , for use in audit logging. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-125796-map.yaml b/releases/release-1.32/release-notes/maps/pr-125796-map.yaml index 01b8910dc8a..512ee95b6be 100644 --- a/releases/release-1.32/release-notes/maps/pr-125796-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-125796-map.yaml @@ -1,11 +1,11 @@ -pr: 125796 -releasenote: - text: 'Fixed a bug in the garbage collector controller which could block indefinitely - due to a cache sync failure. This fix allows the garbage collector to eventually continue - garbage collecting other resources if a given resource cannot be listed or watched. - Any objects in the unsynced resource type with owner references with `blockOwnerDeletion: - true` will not be known to the garbage collector. Use of `blockOwnerDeletion` - has always been best-effort and racy on startup and object creation. With this - fix, it continues to be best-effort for resources that cannot be synced by the - garbage collector controller.' -pr_body: "" +pr: 125796 +releasenote: + text: 'Fixed a bug in the garbage collector controller which could block indefinitely + due to a cache sync failure. This fix allows the garbage collector to eventually continue + garbage collecting other resources if a given resource cannot be listed or watched. + Any objects in the unsynced resource type with owner references with `blockOwnerDeletion: + true` will not be known to the garbage collector. Use of `blockOwnerDeletion` + has always been best-effort and racy on startup and object creation. With this + fix, it continues to be best-effort for resources that cannot be synced by the + garbage collector controller.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-125923-map.yaml b/releases/release-1.32/release-notes/maps/pr-125923-map.yaml index aea7832775f..11fd8b78634 100644 --- a/releases/release-1.32/release-notes/maps/pr-125923-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-125923-map.yaml @@ -1,7 +1,7 @@ -pr: 125923 -releasenote: - text: > - Fixed a bug where the kubelet ephemerally failed with `failed to initialize top - level QOS containers: root container [kubepods] doesn't exist`, due to the cpuset - cgroup being deleted on cgroup v2 with systemd cgroup manager. -pr_body: "" +pr: 125923 +releasenote: + text: > + Fixed a bug where the kubelet ephemerally failed with `failed to initialize top + level QOS containers: root container [kubepods] doesn't exist`, due to the cpuset + cgroup being deleted on cgroup v2 with systemd cgroup manager. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-125982-map.yaml b/releases/release-1.32/release-notes/maps/pr-125982-map.yaml index 515bc00db9e..e815c6e2156 100644 --- a/releases/release-1.32/release-notes/maps/pr-125982-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-125982-map.yaml @@ -1,5 +1,5 @@ -pr: 125982 -releasenote: - text: Introduced compressible resource setting on system reserved and kube reserved - slices. -pr_body: "" +pr: 125982 +releasenote: + text: Introduced compressible resource setting on system reserved and kube reserved + slices. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126347-map.yaml b/releases/release-1.32/release-notes/maps/pr-126347-map.yaml index d1a400d9fd7..954125e93cf 100644 --- a/releases/release-1.32/release-notes/maps/pr-126347-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126347-map.yaml @@ -1,9 +1,9 @@ -pr: 126347 -releasenote: - text: |- - Revised the Kubelet API Authorization with new subresources, that allow finer-grained authorization checks and access control for kubelet endpoints. - Provided you enable the `KubeletFineGrainedAuthz` feature gate, you can access kubelet's `/healthz` endpoint by granting the caller `nodes/helathz` permission in RBAC. - Similarly you can also access kubelet's `/pods` endpoint to fetch a list of Pods bound to that node by granting the caller `nodes/pods` permission in RBAC. - Similarly you can also access kubelet's `/configz` endpoint to fetch kubelet's configuration by granting the caller `nodes/configz` permission in RBAC. - You can still access kubelet's `/healthz`, `/pods` and `/configz` by granting the caller `nodes/proxy` permission in RBAC but that also grants the caller permissions to exec, run and attach to containers on the nodes and doing so does not follow the least privilege principle. Granting callers more permissions than they need can give attackers an opportunity to escalate privileges. -pr_body: "" +pr: 126347 +releasenote: + text: |- + Revised the Kubelet API Authorization with new subresources, that allow finer-grained authorization checks and access control for kubelet endpoints. + Provided you enable the `KubeletFineGrainedAuthz` feature gate, you can access kubelet's `/healthz` endpoint by granting the caller `nodes/helathz` permission in RBAC. + Similarly you can also access kubelet's `/pods` endpoint to fetch a list of Pods bound to that node by granting the caller `nodes/pods` permission in RBAC. + Similarly you can also access kubelet's `/configz` endpoint to fetch kubelet's configuration by granting the caller `nodes/configz` permission in RBAC. + You can still access kubelet's `/healthz`, `/pods` and `/configz` by granting the caller `nodes/proxy` permission in RBAC but that also grants the caller permissions to exec, run and attach to containers on the nodes and doing so does not follow the least privilege principle. Granting callers more permissions than they need can give attackers an opportunity to escalate privileges. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126359-map.yaml b/releases/release-1.32/release-notes/maps/pr-126359-map.yaml index 9095c0b171f..2716d62b7b4 100644 --- a/releases/release-1.32/release-notes/maps/pr-126359-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126359-map.yaml @@ -1,5 +1,5 @@ -pr: 126359 -releasenote: - text: Fixed the estimated cost in CEL for expressions that perform equality checks on IPs, - CIDRs, Quantities, Formats and URLs. -pr_body: "" +pr: 126359 +releasenote: + text: Fixed the estimated cost in CEL for expressions that perform equality checks on IPs, + CIDRs, Quantities, Formats and URLs. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126449-map.yaml b/releases/release-1.32/release-notes/maps/pr-126449-map.yaml index a50bcb3b643..3522cdd7475 100644 --- a/releases/release-1.32/release-notes/maps/pr-126449-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126449-map.yaml @@ -1,4 +1,4 @@ -pr: 126449 -releasenote: - text: Upgraded coreDNS to v1.11.3. -pr_body: "" +pr: 126449 +releasenote: + text: Upgraded coreDNS to v1.11.3. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126503-map.yaml b/releases/release-1.32/release-notes/maps/pr-126503-map.yaml index 51417da1546..59ea0a26b0d 100644 --- a/releases/release-1.32/release-notes/maps/pr-126503-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126503-map.yaml @@ -1,20 +1,20 @@ -pr: 126503 -releasenote: - text: Fake clientsets now use a common, generic implementation. The corresponding - structs are now private; callers must use the corresponding constructors. - documentation: [] - author: skitt - areas: - - code-generation - - dependency - kinds: - - cleanup - sigs: - - api-machinery - - architecture - - auth - - instrumentation - feature: false - action_required: false - do_not_publish: false -pr_body: "" +pr: 126503 +releasenote: + text: Fake clientsets now use a common, generic implementation. The corresponding + structs are now private; callers must use the corresponding constructors. + documentation: [] + author: skitt + areas: + - code-generation + - dependency + kinds: + - cleanup + sigs: + - api-machinery + - architecture + - auth + - instrumentation + feature: false + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126512-map.yaml b/releases/release-1.32/release-notes/maps/pr-126512-map.yaml index 2fa440c35ed..c3c25191493 100644 --- a/releases/release-1.32/release-notes/maps/pr-126512-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126512-map.yaml @@ -1,6 +1,6 @@ -pr: 126512 -releasenote: - text: Included an additional resource labeltransformati in on_operations_total metric - which could be used for resource specific validations for example handling of - encryption config by the apiserver. -pr_body: "" +pr: 126512 +releasenote: + text: Included an additional resource labeltransformati in on_operations_total metric + which could be used for resource specific validations for example handling of + encryption config by the apiserver. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126532-map.yaml b/releases/release-1.32/release-notes/maps/pr-126532-map.yaml index ddd68a60ded..a4c5b0e7f06 100644 --- a/releases/release-1.32/release-notes/maps/pr-126532-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126532-map.yaml @@ -1,5 +1,5 @@ -pr: 126532 -releasenote: - text: Fixed a race condition in the kube-proxy initialization that could cause UDP - traffic to service VIP. -pr_body: "" +pr: 126532 +releasenote: + text: Fixed a race condition in the kube-proxy initialization that could cause UDP + traffic to service VIP. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126533-map.yaml b/releases/release-1.32/release-notes/maps/pr-126533-map.yaml index 82d8a482fc0..f5ce50ac059 100644 --- a/releases/release-1.32/release-notes/maps/pr-126533-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126533-map.yaml @@ -1,4 +1,4 @@ -pr: 126533 -releasenote: - text: Realigned line breaks from `kubectl explain` descriptions. -pr_body: "" +pr: 126533 +releasenote: + text: Realigned line breaks from `kubectl explain` descriptions. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126543-map.yaml b/releases/release-1.32/release-notes/maps/pr-126543-map.yaml index c120dcf1fe1..de8d5e5d93b 100644 --- a/releases/release-1.32/release-notes/maps/pr-126543-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126543-map.yaml @@ -1,6 +1,6 @@ -pr: 126543 -releasenote: - text: Fixed a regression in default 1.29 configurations with the `SidecarContainers` - feature enabled, where init containers may fail to start due to a temporary container - runtime failure. -pr_body: "" +pr: 126543 +releasenote: + text: Fixed a regression in default 1.29 configurations with the `SidecarContainers` + feature enabled, where init containers may fail to start due to a temporary container + runtime failure. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126562-map.yaml b/releases/release-1.32/release-notes/maps/pr-126562-map.yaml index d5dd4ec0d6c..4a7e7f9b44c 100644 --- a/releases/release-1.32/release-notes/maps/pr-126562-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126562-map.yaml @@ -1,6 +1,6 @@ -pr: 126562 -releasenote: - text: |- - Fixed an issue in the kubelet that showed when writeable layers and read-only layers were at different paths within the same mount. - Kubernetes was previously detecting that the image filesystem was split, even when that was not really the case. -pr_body: "" +pr: 126562 +releasenote: + text: |- + Fixed an issue in the kubelet that showed when writeable layers and read-only layers were at different paths within the same mount. + Kubernetes was previously detecting that the image filesystem was split, even when that was not really the case. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126575-map.yaml b/releases/release-1.32/release-notes/maps/pr-126575-map.yaml index d4cca036fd1..fbabc6aae6a 100644 --- a/releases/release-1.32/release-notes/maps/pr-126575-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126575-map.yaml @@ -1,4 +1,4 @@ -pr: 126575 -releasenote: - text: Reduced memory usage/allocations during wait for volume attachment. -pr_body: "" +pr: 126575 +releasenote: + text: Reduced memory usage/allocations during wait for volume attachment. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126620-map.yaml b/releases/release-1.32/release-notes/maps/pr-126620-map.yaml index 2c0c4ab8af7..bb2392c5fa0 100644 --- a/releases/release-1.32/release-notes/maps/pr-126620-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126620-map.yaml @@ -1,4 +1,4 @@ -pr: 126620 -releasenote: - text: Fixed the bug of `InPlacePodVerticalScaling` state un-marshalling. State stored in `/var/lib/kubelet/pod_status_manager_state` now can always be read back after kubelet restart. Since the checkpoint format was changed to fix the issue, if you are using the feature `InPlacePodVerticalScaling`, please clean up the state file `/var/lib/kubelet/pod_status_manager_state` when upgrading the kubelet as failure to do it will lead to incompatible state formats and kubelet's failure to start. -pr_body: "" +pr: 126620 +releasenote: + text: Fixed the bug of `InPlacePodVerticalScaling` state un-marshalling. State stored in `/var/lib/kubelet/pod_status_manager_state` now can always be read back after kubelet restart. Since the checkpoint format was changed to fix the issue, if you are using the feature `InPlacePodVerticalScaling`, please clean up the state file `/var/lib/kubelet/pod_status_manager_state` when upgrading the kubelet as failure to do it will lead to incompatible state formats and kubelet's failure to start. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126644-map.yaml b/releases/release-1.32/release-notes/maps/pr-126644-map.yaml index 4cb4e0bffb0..ffb52f23df8 100644 --- a/releases/release-1.32/release-notes/maps/pr-126644-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126644-map.yaml @@ -1,7 +1,7 @@ -pr: 126644 -releasenote: - text: Fixed a scheduler preemption issue where the victim pod was not deleted due - to incorrect status patching. This issue occurred when the preemptor and victim - pods had different QoS classes in their status, causing the preemption to fail - entirely. -pr_body: "" +pr: 126644 +releasenote: + text: Fixed a scheduler preemption issue where the victim pod was not deleted due + to incorrect status patching. This issue occurred when the preemptor and victim + pods had different QoS classes in their status, causing the preemption to fail + entirely. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126706-map.yaml b/releases/release-1.32/release-notes/maps/pr-126706-map.yaml index b538ef14b72..7dd235180ba 100644 --- a/releases/release-1.32/release-notes/maps/pr-126706-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126706-map.yaml @@ -1,5 +1,5 @@ -pr: 126706 -releasenote: - text: Fixed an issue where kubectl doesn't print image volume when kubectl describe a pod with - that volume. -pr_body: "" +pr: 126706 +releasenote: + text: Fixed an issue where kubectl doesn't print image volume when kubectl describe a pod with + that volume. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126727-map.yaml b/releases/release-1.32/release-notes/maps/pr-126727-map.yaml index bbd598bbddc..e891b7fa1a3 100644 --- a/releases/release-1.32/release-notes/maps/pr-126727-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126727-map.yaml @@ -1,5 +1,5 @@ -pr: 126727 -releasenote: - text: Fixed fake client to accept request without metadata.name to better emulate - behavior of actual client. -pr_body: "" +pr: 126727 +releasenote: + text: Fixed fake client to accept request without metadata.name to better emulate + behavior of actual client. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126745-map.yaml b/releases/release-1.32/release-notes/maps/pr-126745-map.yaml index 1b432f7340e..45ea8f5220e 100644 --- a/releases/release-1.32/release-notes/maps/pr-126745-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126745-map.yaml @@ -1,5 +1,5 @@ -pr: 126745 -releasenote: - text: Improved the scalability of the PVC Protection Controller by batch-processing PVCs - by namespace and implementing lazy live pod listing. -pr_body: "" +pr: 126745 +releasenote: + text: Improved the scalability of the PVC Protection Controller by batch-processing PVCs + by namespace and implementing lazy live pod listing. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126773-map.yaml b/releases/release-1.32/release-notes/maps/pr-126773-map.yaml index ea3f6723e26..41e41769487 100644 --- a/releases/release-1.32/release-notes/maps/pr-126773-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126773-map.yaml @@ -1,4 +1,4 @@ -pr: 126773 -releasenote: - text: Fixed a warning message about the gce in-tree cloud provider state. -pr_body: "" +pr: 126773 +releasenote: + text: Fixed a warning message about the gce in-tree cloud provider state. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126776-map.yaml b/releases/release-1.32/release-notes/maps/pr-126776-map.yaml index d141d803164..ce82910196a 100644 --- a/releases/release-1.32/release-notes/maps/pr-126776-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126776-map.yaml @@ -1,7 +1,7 @@ -pr: 126776 -releasenote: - text: 'kubeadm: increased the verbosity of API client dry-run actions during the - subcommands "init", "join", "upgrade" and "reset". It also allowed dry-run on - ''kubeadm join'' even if there was no existing cluster by utilizing a faked, in-memory - cluster-info ConfigMap.' -pr_body: "" +pr: 126776 +releasenote: + text: 'kubeadm: increased the verbosity of API client dry-run actions during the + subcommands "init", "join", "upgrade" and "reset". It also allowed dry-run on + ''kubeadm join'' even if there was no existing cluster by utilizing a faked, in-memory + cluster-info ConfigMap.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126806-map.yaml b/releases/release-1.32/release-notes/maps/pr-126806-map.yaml index b506f3d9b45..d4c9a0eaa21 100644 --- a/releases/release-1.32/release-notes/maps/pr-126806-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126806-map.yaml @@ -1,23 +1,23 @@ -pr: 126806 -releasenote: - text: "1. When the kubelet constructs the CRI mounts for the container which references - an `image` volume source type, it passes the missing mount attributes to the CRI - implementation, including `readOnly`, `propagation`, and `recursiveReadOnly`. - When the readOnly field of the containerMount is explicitly set to false, the - kubelet will now take the `readOnly`as true to the CRI implementation because - the image volume plugin requires the mount to be read-only. \n2. Fixed a bug where - the pod is unexpectedly running when the `image` volume source type is used and - mounted to `/etc/hosts` in the container." - documentation: [] - author: carlory - areas: - - kubelet - kinds: - - bug - sigs: - - node - - storage - feature: false - action_required: false - do_not_publish: false -pr_body: "" +pr: 126806 +releasenote: + text: "1. When the kubelet constructs the CRI mounts for the container which references + an `image` volume source type, it passes the missing mount attributes to the CRI + implementation, including `readOnly`, `propagation`, and `recursiveReadOnly`. + When the readOnly field of the containerMount is explicitly set to false, the + kubelet will now take the `readOnly`as true to the CRI implementation because + the image volume plugin requires the mount to be read-only. \n2. Fixed a bug where + the pod is unexpectedly running when the `image` volume source type is used and + mounted to `/etc/hosts` in the container." + documentation: [] + author: carlory + areas: + - kubelet + kinds: + - bug + sigs: + - node + - storage + feature: false + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126851-map.yaml b/releases/release-1.32/release-notes/maps/pr-126851-map.yaml index e568b04c0ca..bed0362daa7 100644 --- a/releases/release-1.32/release-notes/maps/pr-126851-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126851-map.yaml @@ -1,4 +1,4 @@ -pr: 126851 -releasenote: - text: Upgraded github.com/coredns/corefile-migration to v1.0.24. -pr_body: "" +pr: 126851 +releasenote: + text: Upgraded github.com/coredns/corefile-migration to v1.0.24. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126897-map.yaml b/releases/release-1.32/release-notes/maps/pr-126897-map.yaml index 01d135855e4..ac19cfda814 100644 --- a/releases/release-1.32/release-notes/maps/pr-126897-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126897-map.yaml @@ -1,5 +1,5 @@ -pr: 126897 -releasenote: - text: Promoted the `RelaxedEnvironmentVariableValidation` feature gate to beta and - is enabled by default. -pr_body: "" +pr: 126897 +releasenote: + text: Promoted the `RelaxedEnvironmentVariableValidation` feature gate to beta and + is enabled by default. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126924-map.yaml b/releases/release-1.32/release-notes/maps/pr-126924-map.yaml index 96097ce5085..2e00bca9459 100644 --- a/releases/release-1.32/release-notes/maps/pr-126924-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126924-map.yaml @@ -1,13 +1,13 @@ -pr: 126924 -releasenote: - text: |- - Removed attachable volume limits from the capacity of the node for the following - volume type when the kubelet was started, affecting the following volume types - when the corresponding csi driver was installed: - - `awsElasticBlockStore` for `ebs.csi.aws.com` - - `azureDisk` for `disk.csi.azure.com` - - `gcePersistentDisk` for `pd.csi.storage.googleapis.com` - - `cinder` for `cinder.csi.openstack.org` - - `csi` - However it was still enforced using a limit in CSINode objects. -pr_body: "" +pr: 126924 +releasenote: + text: |- + Removed attachable volume limits from the capacity of the node for the following + volume type when the kubelet was started, affecting the following volume types + when the corresponding csi driver was installed: + - `awsElasticBlockStore` for `ebs.csi.aws.com` + - `azureDisk` for `disk.csi.azure.com` + - `gcePersistentDisk` for `pd.csi.storage.googleapis.com` + - `cinder` for `cinder.csi.openstack.org` + - `csi` + However it was still enforced using a limit in CSINode objects. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126953-map.yaml b/releases/release-1.32/release-notes/maps/pr-126953-map.yaml index 656dfc5ff11..ead6a864610 100644 --- a/releases/release-1.32/release-notes/maps/pr-126953-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126953-map.yaml @@ -1,5 +1,5 @@ -pr: 126953 -releasenote: - text: 'kubeadm: removed preflight check for existence of the conntrack binary, as - conntrack is no longer a kube-proxy dependency in version 1.32 and newer.' -pr_body: "" +pr: 126953 +releasenote: + text: 'kubeadm: removed preflight check for existence of the conntrack binary, as + conntrack is no longer a kube-proxy dependency in version 1.32 and newer.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126957-map.yaml b/releases/release-1.32/release-notes/maps/pr-126957-map.yaml index 598849c9bb8..691f10c152a 100644 --- a/releases/release-1.32/release-notes/maps/pr-126957-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126957-map.yaml @@ -1,5 +1,5 @@ -pr: 126957 -releasenote: - text: Fixes a kubelet and kube-apiserver memory leak in default 1.29 configurations - related to tracing. -pr_body: "" +pr: 126957 +releasenote: + text: Fixes a kubelet and kube-apiserver memory leak in default 1.29 configurations + related to tracing. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126962-map.yaml b/releases/release-1.32/release-notes/maps/pr-126962-map.yaml index 76b1849bfb0..a7d44b9d1aa 100644 --- a/releases/release-1.32/release-notes/maps/pr-126962-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126962-map.yaml @@ -1,4 +1,4 @@ -pr: 126962 -releasenote: - text: Fixed a possible memory leak in the QueueingHint (alpha feature). -pr_body: "" +pr: 126962 +releasenote: + text: Fixed a possible memory leak in the QueueingHint (alpha feature). +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126976-map.yaml b/releases/release-1.32/release-notes/maps/pr-126976-map.yaml index cbaafbb2641..2944067e047 100644 --- a/releases/release-1.32/release-notes/maps/pr-126976-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126976-map.yaml @@ -1,5 +1,5 @@ -pr: 126976 -releasenote: - text: 'Fixed a 1.31 regression starting kubelet on Windows: Revert "fix: handle - socket file detection on Windows".' -pr_body: "" +pr: 126976 +releasenote: + text: 'Fixed a 1.31 regression starting kubelet on Windows: Revert "fix: handle + socket file detection on Windows".' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126981-map.yaml b/releases/release-1.32/release-notes/maps/pr-126981-map.yaml index d53ec878020..4b20e9cccfb 100644 --- a/releases/release-1.32/release-notes/maps/pr-126981-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126981-map.yaml @@ -1,4 +1,4 @@ -pr: 126981 -releasenote: - text: Promoted `SizeMemoryBackedVolumes` to stable. -pr_body: "" +pr: 126981 +releasenote: + text: Promoted `SizeMemoryBackedVolumes` to stable. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126996-map.yaml b/releases/release-1.32/release-notes/maps/pr-126996-map.yaml index 4d3a8d71602..6065f095e95 100644 --- a/releases/release-1.32/release-notes/maps/pr-126996-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126996-map.yaml @@ -1,6 +1,6 @@ -pr: 126996 -releasenote: - text: |- - If a client makes an API streaming requests and specifies an `application/json;as=Table` content type, the API server now responds with a 406 (Not Acceptable) error. - This change helps to ensure that unsupported formats, such as `Table` representations are correctly rejected. -pr_body: "" +pr: 126996 +releasenote: + text: |- + If a client makes an API streaming requests and specifies an `application/json;as=Table` content type, the API server now responds with a 406 (Not Acceptable) error. + This change helps to ensure that unsupported formats, such as `Table` representations are correctly rejected. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-126997-map.yaml b/releases/release-1.32/release-notes/maps/pr-126997-map.yaml index e0a673bdfb3..9b5da228bb5 100644 --- a/releases/release-1.32/release-notes/maps/pr-126997-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-126997-map.yaml @@ -1,5 +1,5 @@ -pr: 126997 -releasenote: - text: Optimized the code by filtering out empty strings for podUID when calling the`getPodAndContainerForDevice` - method. -pr_body: "" +pr: 126997 +releasenote: + text: Optimized the code by filtering out empty strings for podUID when calling the`getPodAndContainerForDevice` + method. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127012-map.yaml b/releases/release-1.32/release-notes/maps/pr-127012-map.yaml index 8b595aaac2a..1ad492e398f 100644 --- a/releases/release-1.32/release-notes/maps/pr-127012-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127012-map.yaml @@ -1,4 +1,4 @@ -pr: 127012 -releasenote: - text: Bookmark events are now sent immediately after all items in the watchCache store have been processed, improving consistency in client behavior. -pr_body: "" +pr: 127012 +releasenote: + text: Bookmark events are now sent immediately after all items in the watchCache store have been processed, improving consistency in client behavior. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127016-map.yaml b/releases/release-1.32/release-notes/maps/pr-127016-map.yaml index 225df764c74..01806889b16 100644 --- a/releases/release-1.32/release-notes/maps/pr-127016-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127016-map.yaml @@ -1,5 +1,5 @@ -pr: 127016 -releasenote: - text: Fixed a potential memory leak in QueueingHint (alpha feature). - documentation: [] -pr_body: "" +pr: 127016 +releasenote: + text: Fixed a potential memory leak in QueueingHint (alpha feature). + documentation: [] +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127058-map.yaml b/releases/release-1.32/release-notes/maps/pr-127058-map.yaml index 94af04efa5a..9767bf1913a 100644 --- a/releases/release-1.32/release-notes/maps/pr-127058-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127058-map.yaml @@ -1,4 +1,4 @@ -pr: 127058 -releasenote: - text: Removed the GAed feature gates for `ServerSideApply` and `ServerSideFieldValidation`. -pr_body: "" +pr: 127058 +releasenote: + text: Removed the GAed feature gates for `ServerSideApply` and `ServerSideFieldValidation`. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127083-map.yaml b/releases/release-1.32/release-notes/maps/pr-127083-map.yaml index 2e66308f570..41188c21b20 100644 --- a/releases/release-1.32/release-notes/maps/pr-127083-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127083-map.yaml @@ -1,5 +1,5 @@ -pr: 127083 -releasenote: - text: Implemented new cluster events `UpdatePodSchedulingGatesEliminated` and `UpdatePodTolerations` - for scheduler plugins. -pr_body: "" +pr: 127083 +releasenote: + text: Implemented new cluster events `UpdatePodSchedulingGatesEliminated` and `UpdatePodTolerations` + for scheduler plugins. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127134-map.yaml b/releases/release-1.32/release-notes/maps/pr-127134-map.yaml index de613307c07..8aa7a92a06b 100644 --- a/releases/release-1.32/release-notes/maps/pr-127134-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127134-map.yaml @@ -1,7 +1,7 @@ -pr: 127134 -releasenote: - text: 'Introduced `v1alpha1` API for mutating admission policies, enabling extensible - # admission control via CEL expressions (KEP 3962: Mutating Admission Policies). - # To use, enable the `MutatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` - # API via `--runtime-config`.' -pr_body: "" +pr: 127134 +releasenote: + text: 'Introduced `v1alpha1` API for mutating admission policies, enabling extensible + # admission control via CEL expressions (KEP 3962: Mutating Admission Policies). + # To use, enable the `MutatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` + # API via `--runtime-config`.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127155-map.yaml b/releases/release-1.32/release-notes/maps/pr-127155-map.yaml index 7828d821238..c7922601a15 100644 --- a/releases/release-1.32/release-notes/maps/pr-127155-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127155-map.yaml @@ -1,5 +1,5 @@ -pr: 127155 -releasenote: - text: Added a kubelet metric `container_aligned_compute_resources_count` to report - the count of containers getting aligned compute resources. -pr_body: "" +pr: 127155 +releasenote: + text: Added a kubelet metric `container_aligned_compute_resources_count` to report + the count of containers getting aligned compute resources. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127187-map.yaml b/releases/release-1.32/release-notes/maps/pr-127187-map.yaml index 94e637dd872..d9de08f4bc5 100644 --- a/releases/release-1.32/release-notes/maps/pr-127187-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127187-map.yaml @@ -1,4 +1,4 @@ -pr: 127187 -releasenote: - text: Locked the feature custom profiling in kubectl debug to true. -pr_body: "" +pr: 127187 +releasenote: + text: Locked the feature custom profiling in kubectl debug to true. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127228-map.yaml b/releases/release-1.32/release-notes/maps/pr-127228-map.yaml index 47312ffc386..0032d72f372 100644 --- a/releases/release-1.32/release-notes/maps/pr-127228-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127228-map.yaml @@ -1,4 +1,4 @@ -pr: 127228 -releasenote: - text: Improved performance of the job controller when handling job update events. -pr_body: "" +pr: 127228 +releasenote: + text: Improved performance of the job controller when handling job update events. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127239-map.yaml b/releases/release-1.32/release-notes/maps/pr-127239-map.yaml index a23b190de83..ef794bd8be6 100644 --- a/releases/release-1.32/release-notes/maps/pr-127239-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127239-map.yaml @@ -1,5 +1,5 @@ -pr: 127239 -releasenote: - text: Fixed a 1.31 regression with API emulation versioning honors cohabitating - resources. -pr_body: "" +pr: 127239 +releasenote: + text: Fixed a 1.31 regression with API emulation versioning honors cohabitating + resources. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127279-map.yaml b/releases/release-1.32/release-notes/maps/pr-127279-map.yaml index f8c2094fa47..f91b40e7232 100644 --- a/releases/release-1.32/release-notes/maps/pr-127279-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127279-map.yaml @@ -1,4 +1,4 @@ -pr: 127279 -releasenote: - text: Upgraded etcd client to v3.5.16. -pr_body: "" +pr: 127279 +releasenote: + text: Upgraded etcd client to v3.5.16. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127302-map.yaml b/releases/release-1.32/release-notes/maps/pr-127302-map.yaml index 64da8748a70..30d4e7ecd65 100644 --- a/releases/release-1.32/release-notes/maps/pr-127302-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127302-map.yaml @@ -1,4 +1,4 @@ -pr: 127302 -releasenote: - text: Promoted the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks`. -pr_body: "" +pr: 127302 +releasenote: + text: Promoted the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks`. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127341-map.yaml b/releases/release-1.32/release-notes/maps/pr-127341-map.yaml index b22c65a41f7..386554b63d1 100644 --- a/releases/release-1.32/release-notes/maps/pr-127341-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127341-map.yaml @@ -1,4 +1,4 @@ -pr: 127341 -releasenote: - text: Fully removed `PostStartHookContext.StopCh`. -pr_body: "" +pr: 127341 +releasenote: + text: Fully removed `PostStartHookContext.StopCh`. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127348-map.yaml b/releases/release-1.32/release-notes/maps/pr-127348-map.yaml index 9ef9d7becc6..084577e397e 100644 --- a/releases/release-1.32/release-notes/maps/pr-127348-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127348-map.yaml @@ -1,4 +1,4 @@ -pr: 127348 -releasenote: - text: LoadBalancerIPMode feature was marked as GA. -pr_body: "" +pr: 127348 +releasenote: + text: LoadBalancerIPMode feature was marked as GA. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127360-map.yaml b/releases/release-1.32/release-notes/maps/pr-127360-map.yaml index 203e844f090..a9776869cd8 100644 --- a/releases/release-1.32/release-notes/maps/pr-127360-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127360-map.yaml @@ -1,30 +1,30 @@ -pr: 127360 -releasenote: - text: |- - Added a `Stream` field to `PodLogOptions`, which allows clients to request certain log stream (stdout or stderr) of the container. - Please also note that the combination of a specific `Stream` and `TailLines` is not supported. - documentation: - - description: '[KEP]' - url: https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3288-separate-stdout-from-stderr - type: KEP - author: knight42 - areas: - - test - - kubelet - - apiserver - - release-eng - - code-generation - kinds: - - api-change - - feature - sigs: - - api-machinery - - apps - - architecture - - node - - release - - testing - feature: true - action_required: false - do_not_publish: false -pr_body: "" +pr: 127360 +releasenote: + text: |- + Added a `Stream` field to `PodLogOptions`, which allows clients to request certain log stream (stdout or stderr) of the container. + Please also note that the combination of a specific `Stream` and `TailLines` is not supported. + documentation: + - description: '[KEP]' + url: https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3288-separate-stdout-from-stderr + type: KEP + author: knight42 + areas: + - test + - kubelet + - apiserver + - release-eng + - code-generation + kinds: + - api-change + - feature + sigs: + - api-machinery + - apps + - architecture + - node + - release + - testing + feature: true + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127378-map.yaml b/releases/release-1.32/release-notes/maps/pr-127378-map.yaml index ea86c386ce8..9bb04d917a7 100644 --- a/releases/release-1.32/release-notes/maps/pr-127378-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127378-map.yaml @@ -1,4 +1,4 @@ -pr: 127378 -releasenote: - text: Improved performance of the job controller when handling job delete events. -pr_body: "" +pr: 127378 +releasenote: + text: Improved performance of the job controller when handling job delete events. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127402-map.yaml b/releases/release-1.32/release-notes/maps/pr-127402-map.yaml index 557ae7a12e2..a140d88823e 100644 --- a/releases/release-1.32/release-notes/maps/pr-127402-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127402-map.yaml @@ -1,4 +1,4 @@ -pr: 127402 -releasenote: - text: Graduate Job's `ManagedBy` field to beta. -pr_body: "" +pr: 127402 +releasenote: + text: Graduate Job's `ManagedBy` field to beta. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127417-map.yaml b/releases/release-1.32/release-notes/maps/pr-127417-map.yaml index 8869a219526..9c0f3277c8f 100644 --- a/releases/release-1.32/release-notes/maps/pr-127417-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127417-map.yaml @@ -1,5 +1,5 @@ -pr: 127417 -releasenote: - text: Fixed a bug in the endpoints controller that failed to reconcile the Endpoint - object after it was truncated (when it received more than 1000 endpoint addresses). -pr_body: "" +pr: 127417 +releasenote: + text: Fixed a bug in the endpoints controller that failed to reconcile the Endpoint + object after it was truncated (when it received more than 1000 endpoint addresses). +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127421-map.yaml b/releases/release-1.32/release-notes/maps/pr-127421-map.yaml index 5730bdb510c..d54ec6bd9e4 100644 --- a/releases/release-1.32/release-notes/maps/pr-127421-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127421-map.yaml @@ -1,5 +1,5 @@ -pr: 127421 -releasenote: - text: Fixed the ability to set the `resolvConf` option in drop-in kubelet configuration - files, which validates that drop-in kubelet configuration files are in a supported version. -pr_body: "" +pr: 127421 +releasenote: + text: Fixed the ability to set the `resolvConf` option in drop-in kubelet configuration + files, which validates that drop-in kubelet configuration files are in a supported version. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127427-map.yaml b/releases/release-1.32/release-notes/maps/pr-127427-map.yaml index bdcbdb17fdb..10fbaeb69b5 100644 --- a/releases/release-1.32/release-notes/maps/pr-127427-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127427-map.yaml @@ -1,6 +1,6 @@ -pr: 127427 -releasenote: - text: Fixed the bug in `NodeUnschedulable` that only happens with QHint enabled, which - the scheduler might miss some updates for the Pods rejected by NodeUnschedulable - plugin and put the Pods in the queue for a longer time than needed. -pr_body: "" +pr: 127427 +releasenote: + text: Fixed the bug in `NodeUnschedulable` that only happens with QHint enabled, which + the scheduler might miss some updates for the Pods rejected by NodeUnschedulable + plugin and put the Pods in the queue for a longer time than needed. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127444-map.yaml b/releases/release-1.32/release-notes/maps/pr-127444-map.yaml index d6ef55f58c8..324761f311a 100644 --- a/releases/release-1.32/release-notes/maps/pr-127444-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127444-map.yaml @@ -1,5 +1,5 @@ -pr: 127444 -releasenote: - text: Improved `Node QueueHint` in the `NodeAffinty` plugin by ignoring unrelated changes - that keep pods unschedulable. -pr_body: "" +pr: 127444 +releasenote: + text: Improved `Node QueueHint` in the `NodeAffinty` plugin by ignoring unrelated changes + that keep pods unschedulable. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127473-map.yaml b/releases/release-1.32/release-notes/maps/pr-127473-map.yaml index e4451d09320..731561210e7 100644 --- a/releases/release-1.32/release-notes/maps/pr-127473-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127473-map.yaml @@ -1,5 +1,5 @@ -pr: 127473 -releasenote: - text: Improved `Node QueueHint` in the `NodeResource Fit` plugin by ignoring unrelated - changes that keep pods unschedulable. -pr_body: "" +pr: 127473 +releasenote: + text: Improved `Node QueueHint` in the `NodeResource Fit` plugin by ignoring unrelated + changes that keep pods unschedulable. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127489-map.yaml b/releases/release-1.32/release-notes/maps/pr-127489-map.yaml index 092f28e3672..97c88956332 100644 --- a/releases/release-1.32/release-notes/maps/pr-127489-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127489-map.yaml @@ -1,7 +1,7 @@ -pr: 127489 -releasenote: - text: |- - Pods were allowed to use the `net.ipv4.tcp_rmem` and `net.ipv4.tcp_wmem` sysctl by default - when the kernel version was 4.15 or higher. With the kernel 4.15 the sysctl became namespaced. - Pod Security admission allowed these sysctl in v1.32+ versions of the baseline and restricted policies. -pr_body: "" +pr: 127489 +releasenote: + text: |- + Pods were allowed to use the `net.ipv4.tcp_rmem` and `net.ipv4.tcp_wmem` sysctl by default + when the kernel version was 4.15 or higher. With the kernel 4.15 the sysctl became namespaced. + Pod Security admission allowed these sysctl in v1.32+ versions of the baseline and restricted policies. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127551-map.yaml b/releases/release-1.32/release-notes/maps/pr-127551-map.yaml index f7e70763ad8..12dbedb883e 100644 --- a/releases/release-1.32/release-notes/maps/pr-127551-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127551-map.yaml @@ -1,6 +1,6 @@ -pr: 127551 -releasenote: - text: Fixed the wrong hierarchical structure for both the child span and the parent span - (i.e. `SerializeObject` and `List`). In the past, some children's spans appeared - parallel to their parents. -pr_body: "" +pr: 127551 +releasenote: + text: Fixed the wrong hierarchical structure for both the child span and the parent span + (i.e. `SerializeObject` and `List`). In the past, some children's spans appeared + parallel to their parents. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127565-map.yaml b/releases/release-1.32/release-notes/maps/pr-127565-map.yaml index 0aadd821063..bec3c19d648 100644 --- a/releases/release-1.32/release-notes/maps/pr-127565-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127565-map.yaml @@ -1,4 +1,4 @@ -pr: 127565 -releasenote: - text: 'DRA: fixed several issues related to "allocationMode: all".' -pr_body: "" +pr: 127565 +releasenote: + text: 'DRA: fixed several issues related to "allocationMode: all".' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127566-map.yaml b/releases/release-1.32/release-notes/maps/pr-127566-map.yaml index 5eb20599009..4b053f6a987 100644 --- a/releases/release-1.32/release-notes/maps/pr-127566-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127566-map.yaml @@ -1,5 +1,5 @@ -pr: 127566 -releasenote: - text: Added kubelet support for systemd watchdog integration. With this enabled, - systemd can automatically recover a hung kubelet. -pr_body: "" +pr: 127566 +releasenote: + text: Added kubelet support for systemd watchdog integration. With this enabled, + systemd can automatically recover a hung kubelet. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127581-map.yaml b/releases/release-1.32/release-notes/maps/pr-127581-map.yaml index 66a3d545823..1ace163af4a 100644 --- a/releases/release-1.32/release-notes/maps/pr-127581-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127581-map.yaml @@ -1,18 +1,18 @@ -pr: 127581 -releasenote: - text: Added a `/flagz` endpoint for kube-apiserver endpoint. - documentation: [] - author: richabanker - areas: - - apiserver - kinds: - - api-change - sigs: - - api-machinery - - architecture - - auth - - instrumentation - feature: false - action_required: false - do_not_publish: false -pr_body: "" +pr: 127581 +releasenote: + text: Added a `/flagz` endpoint for kube-apiserver endpoint. + documentation: [] + author: richabanker + areas: + - apiserver + kinds: + - api-change + sigs: + - api-machinery + - architecture + - auth + - instrumentation + feature: false + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127598-map.yaml b/releases/release-1.32/release-notes/maps/pr-127598-map.yaml index 6ea9c3d5f5f..c673cbec1d4 100644 --- a/releases/release-1.32/release-notes/maps/pr-127598-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127598-map.yaml @@ -1,7 +1,7 @@ -pr: 127598 -releasenote: - text: Fixed a bug with dual stack clusters using the beta feature MultiCIDRServiceAllocator - which could not create dual stack Services or Services with IPs in the secondary range. - Users who wanted to use this feature in version 1.30 with dual stack clusters could work around - the issue by setting the feature gate DisableAllocatorDualWrite to true. -pr_body: "" +pr: 127598 +releasenote: + text: Fixed a bug with dual stack clusters using the beta feature MultiCIDRServiceAllocator + which could not create dual stack Services or Services with IPs in the secondary range. + Users who wanted to use this feature in version 1.30 with dual stack clusters could work around + the issue by setting the feature gate DisableAllocatorDualWrite to true. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127611-map.yaml b/releases/release-1.32/release-notes/maps/pr-127611-map.yaml index cb27f909dfa..c8b64d45f3c 100644 --- a/releases/release-1.32/release-notes/maps/pr-127611-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127611-map.yaml @@ -1,4 +1,4 @@ -pr: 127611 -releasenote: - text: Kubernetes was built with Go 1.23.1. -pr_body: "" +pr: 127611 +releasenote: + text: Kubernetes was built with Go 1.23.1. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127634-map.yaml b/releases/release-1.32/release-notes/maps/pr-127634-map.yaml index 202d78a5fa4..aac374d5e44 100644 --- a/releases/release-1.32/release-notes/maps/pr-127634-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127634-map.yaml @@ -1,5 +1,5 @@ -pr: 127634 -releasenote: - text: '`kubectl apply --server-side` now supports `--subresource` congruent to - `kubectl patch`.' -pr_body: "" +pr: 127634 +releasenote: + text: '`kubectl apply --server-side` now supports `--subresource` congruent to + `kubectl patch`.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127650-map.yaml b/releases/release-1.32/release-notes/maps/pr-127650-map.yaml index 9853472a1aa..94af01ad275 100644 --- a/releases/release-1.32/release-notes/maps/pr-127650-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127650-map.yaml @@ -1,5 +1,5 @@ -pr: 127650 -releasenote: - text: 'Kubeadm: fixed an issue where the wrong member list was being reported when removing - an etcd member.' -pr_body: "" +pr: 127650 +releasenote: + text: 'Kubeadm: fixed an issue where the wrong member list was being reported when removing + an etcd member.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127661-map.yaml b/releases/release-1.32/release-notes/maps/pr-127661-map.yaml index 56ad77ec93a..d6675de687c 100644 --- a/releases/release-1.32/release-notes/maps/pr-127661-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127661-map.yaml @@ -1,5 +1,5 @@ -pr: 127661 -releasenote: - text: 'DRA: The resource claim controller now maintains metrics about the total - number of `ResourceClaims` and the number of allocated `ResourceClaims`.' -pr_body: "" +pr: 127661 +releasenote: + text: 'DRA: The resource claim controller now maintains metrics about the total + number of `ResourceClaims` and the number of allocated `ResourceClaims`.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127663-map.yaml b/releases/release-1.32/release-notes/maps/pr-127663-map.yaml index 793860346e9..3ca9bcfd45a 100644 --- a/releases/release-1.32/release-notes/maps/pr-127663-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127663-map.yaml @@ -1,5 +1,5 @@ -pr: 127663 -releasenote: - text: The members name and typeDescription of the Reflector struct were exported - to allow for better user extensibility. -pr_body: "" +pr: 127663 +releasenote: + text: The members name and typeDescription of the Reflector struct were exported + to allow for better user extensibility. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127669-map.yaml b/releases/release-1.32/release-notes/maps/pr-127669-map.yaml index cf35badcfd7..66448a312b6 100644 --- a/releases/release-1.32/release-notes/maps/pr-127669-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127669-map.yaml @@ -1,5 +1,5 @@ -pr: 127669 -releasenote: - text: Fixed a race condition that could result in erroneous volume unmounts for - flex volume plugins during kubelet restart. -pr_body: "" +pr: 127669 +releasenote: + text: Fixed a race condition that could result in erroneous volume unmounts for + flex volume plugins during kubelet restart. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127673-map.yaml b/releases/release-1.32/release-notes/maps/pr-127673-map.yaml index a8e6a19ec99..4a1cb02b08a 100644 --- a/releases/release-1.32/release-notes/maps/pr-127673-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127673-map.yaml @@ -1,6 +1,6 @@ -pr: 127673 -releasenote: - text: Promoted `CustomResourceFieldSelectors` to stable; the feature was enabled - by default. The `--feature-gates=CustomResourceFieldSelectors=true` flag was no - longer needed on kube-apiserver binaries and would be removed in a future release. -pr_body: "" +pr: 127673 +releasenote: + text: Promoted `CustomResourceFieldSelectors` to stable; the feature was enabled + by default. The `--feature-gates=CustomResourceFieldSelectors=true` flag was no + longer needed on kube-apiserver binaries and would be removed in a future release. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127780-map.yaml b/releases/release-1.32/release-notes/maps/pr-127780-map.yaml index 306e5eb208a..f09310d6d58 100644 --- a/releases/release-1.32/release-notes/maps/pr-127780-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127780-map.yaml @@ -1,7 +1,7 @@ -pr: 127780 -releasenote: - text: |- - Fixed a regression introduced in v1.29 where conntrack entries for UDP connections - to deleted pods did not get cleaned up correctly, which could (among other things) - cause DNS problems when DNS pods were restarted. -pr_body: "" +pr: 127780 +releasenote: + text: |- + Fixed a regression introduced in v1.29 where conntrack entries for UDP connections + to deleted pods did not get cleaned up correctly, which could (among other things) + cause DNS problems when DNS pods were restarted. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127786-map.yaml b/releases/release-1.32/release-notes/maps/pr-127786-map.yaml index 7ed4da68316..9467fa5991a 100644 --- a/releases/release-1.32/release-notes/maps/pr-127786-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127786-map.yaml @@ -1,5 +1,5 @@ -pr: 127786 -releasenote: - text: Added an option to enable leader election in local-up-cluster.sh via the LEADER_ELECT - CLI flag. -pr_body: "" +pr: 127786 +releasenote: + text: Added an option to enable leader election in local-up-cluster.sh via the LEADER_ELECT + CLI flag. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127787-map.yaml b/releases/release-1.32/release-notes/maps/pr-127787-map.yaml index fcb70dad0e4..4dbd69fa390 100644 --- a/releases/release-1.32/release-notes/maps/pr-127787-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127787-map.yaml @@ -1,5 +1,5 @@ -pr: 127787 -releasenote: - text: Removed the feature gate ComponentSLIs, which had been promoted to stable - since v1.29. -pr_body: "" +pr: 127787 +releasenote: + text: Removed the feature gate ComponentSLIs, which had been promoted to stable + since v1.29. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127861-map.yaml b/releases/release-1.32/release-notes/maps/pr-127861-map.yaml index eb84536bcec..ca55ca1e86f 100644 --- a/releases/release-1.32/release-notes/maps/pr-127861-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127861-map.yaml @@ -1,4 +1,4 @@ -pr: 127861 -releasenote: - text: Reverted Go version used to build Kubernetes to 1.23.0. -pr_body: "" +pr: 127861 +releasenote: + text: Reverted Go version used to build Kubernetes to 1.23.0. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127869-map.yaml b/releases/release-1.32/release-notes/maps/pr-127869-map.yaml index 7271b974ce9..b4844fd9148 100644 --- a/releases/release-1.32/release-notes/maps/pr-127869-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127869-map.yaml @@ -1,6 +1,6 @@ -pr: 127869 -releasenote: - text: Added a short output format argument for `kubectl explain`. You could now - use `-o` as an abbreviation for `--output` in commands such as `kubectl explain - <resource> --output plaintext-openapiv2`. -pr_body: "" +pr: 127869 +releasenote: + text: Added a short output format argument for `kubectl explain`. You could now + use `-o` as an abbreviation for `--output` in commands such as `kubectl explain + <resource> --output plaintext-openapiv2`. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127874-map.yaml b/releases/release-1.32/release-notes/maps/pr-127874-map.yaml index d578189ef2b..bcc2e8c32ad 100644 --- a/releases/release-1.32/release-notes/maps/pr-127874-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127874-map.yaml @@ -1,4 +1,4 @@ -pr: 127874 -releasenote: - text: Fixed an issue where eviction manager was not deleting unused images or containers. -pr_body: "" +pr: 127874 +releasenote: + text: Fixed an issue where eviction manager was not deleting unused images or containers. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127878-map.yaml b/releases/release-1.32/release-notes/maps/pr-127878-map.yaml index d20d4aea9b2..4522d8fe983 100644 --- a/releases/release-1.32/release-notes/maps/pr-127878-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127878-map.yaml @@ -1,5 +1,5 @@ -pr: 127878 -releasenote: - text: The scheduler started considering the resource requests of existing sidecar - containers during the scoring process. -pr_body: "" +pr: 127878 +releasenote: + text: The scheduler started considering the resource requests of existing sidecar + containers during the scoring process. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127898-map.yaml b/releases/release-1.32/release-notes/maps/pr-127898-map.yaml index 35379b4bd53..dbf254b24e4 100644 --- a/releases/release-1.32/release-notes/maps/pr-127898-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127898-map.yaml @@ -1,6 +1,6 @@ -pr: 127898 -releasenote: - text: Fixed documentation for the `apiserver_admission_webhook_fail_open_count` - and `apiserver_admission_webhook_request_total` metrics. The `type` label can - have a value of "admit", not "mutating". -pr_body: "" +pr: 127898 +releasenote: + text: Fixed documentation for the `apiserver_admission_webhook_fail_open_count` + and `apiserver_admission_webhook_request_total` metrics. The `type` label can + have a value of "admit", not "mutating". +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127918-map.yaml b/releases/release-1.32/release-notes/maps/pr-127918-map.yaml index fd77dd1f2c3..e8c9556a10a 100644 --- a/releases/release-1.32/release-notes/maps/pr-127918-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127918-map.yaml @@ -1,6 +1,6 @@ -pr: 127918 -releasenote: - text: |- - Append the image pull error for the pods `status.containerStatuses[*].state.waiting.message` when - in image pull back-off (`reason` is `ImagePullBackOff`) instead of the generic `Back-off pulling image…` message. -pr_body: "" +pr: 127918 +releasenote: + text: |- + Append the image pull error for the pods `status.containerStatuses[*].state.waiting.message` when + in image pull back-off (`reason` is `ImagePullBackOff`) instead of the generic `Back-off pulling image…` message. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127919-map.yaml b/releases/release-1.32/release-notes/maps/pr-127919-map.yaml index f8b3921bc91..fbb3e400291 100644 --- a/releases/release-1.32/release-notes/maps/pr-127919-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127919-map.yaml @@ -1,4 +1,4 @@ -pr: 127919 -releasenote: - text: Fixed data race in kubelet/volumemanager. -pr_body: "" +pr: 127919 +releasenote: + text: Fixed data race in kubelet/volumemanager. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127965-map.yaml b/releases/release-1.32/release-notes/maps/pr-127965-map.yaml index 2e6872b715d..84deb7ca164 100644 --- a/releases/release-1.32/release-notes/maps/pr-127965-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127965-map.yaml @@ -1,7 +1,7 @@ -pr: 127965 -releasenote: - text: |- - Upgraded the functionality of `kubectl kustomize` as described at - https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.4.2 - and https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.5.0. -pr_body: "" +pr: 127965 +releasenote: + text: |- + Upgraded the functionality of `kubectl kustomize` as described at + https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.4.2 + and https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.5.0. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-127976-map.yaml b/releases/release-1.32/release-notes/maps/pr-127976-map.yaml index 956373cb1e6..6f21b7d756a 100644 --- a/releases/release-1.32/release-notes/maps/pr-127976-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-127976-map.yaml @@ -1,4 +1,4 @@ -pr: 127976 -releasenote: - text: The name port of the sidecar was also allowed to be used. -pr_body: "" +pr: 127976 +releasenote: + text: The name port of the sidecar was also allowed to be used. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128003-map.yaml b/releases/release-1.32/release-notes/maps/pr-128003-map.yaml index e36e1c7f72e..a26e5fd92fb 100644 --- a/releases/release-1.32/release-notes/maps/pr-128003-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128003-map.yaml @@ -1,7 +1,7 @@ -pr: 128003 -releasenote: - text: |- - Removed all support for _classic_ dynamic resource allocation (DRA). The `DRAControlPlaneController` feature gate, formerly alpha, is no longer available. Kubernetes now only uses the _structured parameters_ model (also alpha) for allocating dynamic resources to Pods. - - if and only if classic DRA was enabled in a cluster, remove all workloads (pods, app deployments, etc. ) which depend on classic DRA and make sure that all PodSchedulingContext resources are gone before upgrading. PodSchedulingContext resources cannot be removed through the apiserver after an upgrade and workloads would not work properly. -pr_body: "" +pr: 128003 +releasenote: + text: |- + Removed all support for _classic_ dynamic resource allocation (DRA). The `DRAControlPlaneController` feature gate, formerly alpha, is no longer available. Kubernetes now only uses the _structured parameters_ model (also alpha) for allocating dynamic resources to Pods. + + if and only if classic DRA was enabled in a cluster, remove all workloads (pods, app deployments, etc. ) which depend on classic DRA and make sure that all PodSchedulingContext resources are gone before upgrading. PodSchedulingContext resources cannot be removed through the apiserver after an upgrade and workloads would not work properly. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128009-map.yaml b/releases/release-1.32/release-notes/maps/pr-128009-map.yaml index b962b5de6cc..cde58b7dcce 100644 --- a/releases/release-1.32/release-notes/maps/pr-128009-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128009-map.yaml @@ -1,6 +1,6 @@ -pr: 128009 -releasenote: - text: kube-controller-manager `--leader-migration-config` files were now validated - strictly (EnableStrict). Duplicate and unknown fields in the configuration would - cause an error. -pr_body: "" +pr: 128009 +releasenote: + text: kube-controller-manager `--leader-migration-config` files were now validated + strictly (EnableStrict). Duplicate and unknown fields in the configuration would + cause an error. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128011-map.yaml b/releases/release-1.32/release-notes/maps/pr-128011-map.yaml index b209c4fbc41..5e22c2c7cbc 100644 --- a/releases/release-1.32/release-notes/maps/pr-128011-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128011-map.yaml @@ -1,6 +1,6 @@ -pr: 128011 -releasenote: - text: Kube-apiserver `--egress-selector-config-file` files were validated strictly - (EnableStrict). Duplicate and unknown fields in the configuration will now cause - an error. -pr_body: "" +pr: 128011 +releasenote: + text: Kube-apiserver `--egress-selector-config-file` files were validated strictly + (EnableStrict). Duplicate and unknown fields in the configuration will now cause + an error. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128013-map.yaml b/releases/release-1.32/release-notes/maps/pr-128013-map.yaml index 0813f902cfb..cddb34d08f1 100644 --- a/releases/release-1.32/release-notes/maps/pr-128013-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128013-map.yaml @@ -1,6 +1,6 @@ -pr: 128013 -releasenote: - text: kube-apiserver `--admission-control-config-file` files are now validated strictly - (EnableStrict). Duplicate and unknown fields in the configuration will now cause - an error. -pr_body: "" +pr: 128013 +releasenote: + text: kube-apiserver `--admission-control-config-file` files are now validated strictly + (EnableStrict). Duplicate and unknown fields in the configuration will now cause + an error. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128029-map.yaml b/releases/release-1.32/release-notes/maps/pr-128029-map.yaml index 4ad0a4f9041..3e8618ad072 100644 --- a/releases/release-1.32/release-notes/maps/pr-128029-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128029-map.yaml @@ -1,6 +1,6 @@ -pr: 128029 -releasenote: - text: 'Change OOM score adjustment calculation for sidecar container : the OOM adjustment - for these containers will match or fall below the OOM score adjustment of regular - containers in the Pod.' -pr_body: "" +pr: 128029 +releasenote: + text: 'Change OOM score adjustment calculation for sidecar container : the OOM adjustment + for these containers will match or fall below the OOM score adjustment of regular + containers in the Pod.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128035-map.yaml b/releases/release-1.32/release-notes/maps/pr-128035-map.yaml index 585df1c21e1..d40c96e9f22 100644 --- a/releases/release-1.32/release-notes/maps/pr-128035-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128035-map.yaml @@ -1,5 +1,5 @@ -pr: 128035 -releasenote: - text: The getters for the field name and typeDescription of the Reflector struct - were renamed. -pr_body: "" +pr: 128035 +releasenote: + text: The getters for the field name and typeDescription of the Reflector struct + were renamed. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128038-map.yaml b/releases/release-1.32/release-notes/maps/pr-128038-map.yaml index 8a2cfa9a517..ba4572bb009 100644 --- a/releases/release-1.32/release-notes/maps/pr-128038-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128038-map.yaml @@ -1,6 +1,6 @@ -pr: 128038 -releasenote: - text: kube-apiserver `ResourceQuotaConfiguration` admission plugin subsection within - `--admission-control-config-file` files were validated strictly (EnableStrict). - Duplicate and unknown fields in the configuration would cause an error. -pr_body: "" +pr: 128038 +releasenote: + text: kube-apiserver `ResourceQuotaConfiguration` admission plugin subsection within + `--admission-control-config-file` files were validated strictly (EnableStrict). + Duplicate and unknown fields in the configuration would cause an error. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128052-map.yaml b/releases/release-1.32/release-notes/maps/pr-128052-map.yaml index fa92f00f5b7..b549c244612 100644 --- a/releases/release-1.32/release-notes/maps/pr-128052-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128052-map.yaml @@ -1,4 +1,4 @@ -pr: 128052 -releasenote: - text: CRI client now used the default timeout for `ImageFsInfo` RPC. -pr_body: "" +pr: 128052 +releasenote: + text: CRI client now used the default timeout for `ImageFsInfo` RPC. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128053-map.yaml b/releases/release-1.32/release-notes/maps/pr-128053-map.yaml index 72140dab4f0..b3107b42412 100644 --- a/releases/release-1.32/release-notes/maps/pr-128053-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128053-map.yaml @@ -1,5 +1,5 @@ -pr: 128053 -releasenote: - text: Graduated the `WatchList` feature gate to Beta for kube-apiserver and enabled - `WatchListClient` for KCM. -pr_body: "" +pr: 128053 +releasenote: + text: Graduated the `WatchList` feature gate to Beta for kube-apiserver and enabled + `WatchListClient` for KCM. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128062-map.yaml b/releases/release-1.32/release-notes/maps/pr-128062-map.yaml index 66457beee4b..8bafdb8f18c 100644 --- a/releases/release-1.32/release-notes/maps/pr-128062-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128062-map.yaml @@ -1,7 +1,7 @@ -pr: 128062 -releasenote: - text: 'kubelet: the `--image-credential-provider-config` file was loaded with strict - deserialization, which failed if the config file contained duplicate or unknown - fields. This protected against accidentally running with malformed config files, - unindented files, or typos in field names, and it prevented unexpected behavior.' -pr_body: "" +pr: 128062 +releasenote: + text: 'kubelet: the `--image-credential-provider-config` file was loaded with strict + deserialization, which failed if the config file contained duplicate or unknown + fields. This protected against accidentally running with malformed config files, + unindented files, or typos in field names, and it prevented unexpected behavior.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128073-map.yaml b/releases/release-1.32/release-notes/maps/pr-128073-map.yaml index 414e51bcb48..bbbc0faf407 100644 --- a/releases/release-1.32/release-notes/maps/pr-128073-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128073-map.yaml @@ -1,5 +1,5 @@ -pr: 128073 -releasenote: - text: The kube-apiserver `--tracing-config-file` is now validated strictly (EnableStrict). - Duplicate and unknown fields in the configuration will now result in an error. -pr_body: "" +pr: 128073 +releasenote: + text: The kube-apiserver `--tracing-config-file` is now validated strictly (EnableStrict). + Duplicate and unknown fields in the configuration will now result in an error. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128081-map.yaml b/releases/release-1.32/release-notes/maps/pr-128081-map.yaml index 4c4df5504f4..463e00c555e 100644 --- a/releases/release-1.32/release-notes/maps/pr-128081-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128081-map.yaml @@ -1,4 +1,4 @@ -pr: 128081 -releasenote: - text: Fixed spacing in `--validate flag` description in kubectl. -pr_body: "" +pr: 128081 +releasenote: + text: Fixed spacing in `--validate flag` description in kubectl. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128083-map.yaml b/releases/release-1.32/release-notes/maps/pr-128083-map.yaml index 872931835db..9065df0fbac 100644 --- a/releases/release-1.32/release-notes/maps/pr-128083-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128083-map.yaml @@ -1,5 +1,5 @@ -pr: 128083 -releasenote: - text: "kubelet: Fixed a bug where kubelet wrongly drops the QOSClass field of the Pod's status when it rejects a Pod." -pr_body: "" - +pr: 128083 +releasenote: + text: "kubelet: Fixed a bug where kubelet wrongly drops the QOSClass field of the Pod's status when it rejects a Pod." +pr_body: "" + diff --git a/releases/release-1.32/release-notes/maps/pr-128091-map.yaml b/releases/release-1.32/release-notes/maps/pr-128091-map.yaml index 91b80a2426b..86b1db650f7 100644 --- a/releases/release-1.32/release-notes/maps/pr-128091-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128091-map.yaml @@ -1,4 +1,4 @@ -pr: 128091 -releasenote: - text: Updated cni-plugins to [v1.6.0](https://github.com/containernetworking/plugins/releases/tag/v1.6.0). -pr_body: "" +pr: 128091 +releasenote: + text: Updated cni-plugins to [v1.6.0](https://github.com/containernetworking/plugins/releases/tag/v1.6.0). +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128099-map.yaml b/releases/release-1.32/release-notes/maps/pr-128099-map.yaml index dc96626f445..1fb55fe813c 100644 --- a/releases/release-1.32/release-notes/maps/pr-128099-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128099-map.yaml @@ -1,6 +1,6 @@ -pr: 128099 -releasenote: - text: Fixed a bug in the `NestedNumberAsFloat64` Unstructured field accessor that - could have caused it to return rounded float64 values instead of errors when accessing - very large int64 values. -pr_body: "" +pr: 128099 +releasenote: + text: Fixed a bug in the `NestedNumberAsFloat64` Unstructured field accessor that + could have caused it to return rounded float64 values instead of errors when accessing + very large int64 values. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128100-map.yaml b/releases/release-1.32/release-notes/maps/pr-128100-map.yaml index 1e2740c6e1f..64febe9ec31 100644 --- a/releases/release-1.32/release-notes/maps/pr-128100-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128100-map.yaml @@ -1,5 +1,5 @@ -pr: 128100 -releasenote: - text: > - Disallowed label values will show up as "unexpected" in all system components' metrics. -pr_body: "" +pr: 128100 +releasenote: + text: > + Disallowed label values will show up as "unexpected" in all system components' metrics. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128101-map.yaml b/releases/release-1.32/release-notes/maps/pr-128101-map.yaml index bccb323b142..54c64eb4bc6 100644 --- a/releases/release-1.32/release-notes/maps/pr-128101-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128101-map.yaml @@ -1,6 +1,6 @@ -pr: 128101 -releasenote: - text: Added enforcement of an upper cost bound for DRA evaluations of CEL. The API - server and scheduler now enforce an upper bound on the cost and runtime steps - required for evaluating a CEL expression. -pr_body: "" +pr: 128101 +releasenote: + text: Added enforcement of an upper cost bound for DRA evaluations of CEL. The API + server and scheduler now enforce an upper bound on the cost and runtime steps + required for evaluating a CEL expression. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128110-map.yaml b/releases/release-1.32/release-notes/maps/pr-128110-map.yaml index 51aa2c61cd9..1e0e22c09a5 100644 --- a/releases/release-1.32/release-notes/maps/pr-128110-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128110-map.yaml @@ -1,4 +1,4 @@ -pr: 128110 -releasenote: - text: Kubernetes was built with Go 1.23.2. -pr_body: "" +pr: 128110 +releasenote: + text: Kubernetes was built with Go 1.23.2. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128118-map.yaml b/releases/release-1.32/release-notes/maps/pr-128118-map.yaml index 2d7b53375ed..e1277520bf4 100644 --- a/releases/release-1.32/release-notes/maps/pr-128118-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128118-map.yaml @@ -1,5 +1,5 @@ -pr: 128118 -releasenote: - text: 'Kubeadm: fixed a misleading output (typo) about control-plane joining instructions when executing the "kubeadm init" - command.' -pr_body: "" +pr: 128118 +releasenote: + text: 'Kubeadm: fixed a misleading output (typo) about control-plane joining instructions when executing the "kubeadm init" + command.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128119-map.yaml b/releases/release-1.32/release-notes/maps/pr-128119-map.yaml index 1bfbca0e6c7..36e8defbb73 100644 --- a/releases/release-1.32/release-notes/maps/pr-128119-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128119-map.yaml @@ -1,5 +1,5 @@ -pr: 128119 -releasenote: - text: Clarified an API validation error for toleration if `operator` is `Exists` - and `value` is not empty. -pr_body: "" +pr: 128119 +releasenote: + text: Clarified an API validation error for toleration if `operator` is `Exists` + and `value` is not empty. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128124-map.yaml b/releases/release-1.32/release-notes/maps/pr-128124-map.yaml index f9c58b80eda..5e1147d5001 100644 --- a/releases/release-1.32/release-notes/maps/pr-128124-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128124-map.yaml @@ -1,5 +1,5 @@ -pr: 128124 -releasenote: - text: The `TopologyManagerPolicyOptions` feature-flag is promoted to GA. -pr_body: "" - +pr: 128124 +releasenote: + text: The `TopologyManagerPolicyOptions` feature-flag is promoted to GA. +pr_body: "" + diff --git a/releases/release-1.32/release-notes/maps/pr-128139-map.yaml b/releases/release-1.32/release-notes/maps/pr-128139-map.yaml index 5b5c6f8cc7d..aebc8210d56 100644 --- a/releases/release-1.32/release-notes/maps/pr-128139-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128139-map.yaml @@ -1,4 +1,4 @@ -pr: 128139 -releasenote: - text: Feature `AllowServiceLBStatusOnNonLB` remains deprecated and is now locked to false to support compatibility versions. -pr_body: "" +pr: 128139 +releasenote: + text: Feature `AllowServiceLBStatusOnNonLB` remains deprecated and is now locked to false to support compatibility versions. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128149-map.yaml b/releases/release-1.32/release-notes/maps/pr-128149-map.yaml index fbc70821f3a..c43d37573a8 100644 --- a/releases/release-1.32/release-notes/maps/pr-128149-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128149-map.yaml @@ -1,4 +1,4 @@ -pr: 128149 -releasenote: - text: 'Vendor: updated system-validators to v1.9.0.' -pr_body: "" +pr: 128149 +releasenote: + text: 'Vendor: updated system-validators to v1.9.0.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128168-map.yaml b/releases/release-1.32/release-notes/maps/pr-128168-map.yaml index 8545128eacc..e9cbe3fc6f7 100644 --- a/releases/release-1.32/release-notes/maps/pr-128168-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128168-map.yaml @@ -1,12 +1,12 @@ -pr: 128168 -releasenote: - text: 'kube-apiserver: Promoted `AuthorizeWithSelectors` feature to beta, which - includes field and label selector information from requests in webhook authorization - calls. Promoted `AuthorizeNodeWithSelectors` feature to beta, which changes node - authorizer behavior to limit requests from node API clients, so that each Node - can only get / list / watch its own Node API object, and can also only get / list - / watch Pod API objects bound to that node. Clients using kubelet credentials - to read other nodes or unrelated pods must change their authentication credentials - (recommended), adjust their usage, or obtain broader read access independent of - the node authorizer.' -pr_body: "" +pr: 128168 +releasenote: + text: 'kube-apiserver: Promoted `AuthorizeWithSelectors` feature to beta, which + includes field and label selector information from requests in webhook authorization + calls. Promoted `AuthorizeNodeWithSelectors` feature to beta, which changes node + authorizer behavior to limit requests from node API clients, so that each Node + can only get / list / watch its own Node API object, and can also only get / list + / watch Pod API objects bound to that node. Clients using kubelet credentials + to read other nodes or unrelated pods must change their authentication credentials + (recommended), adjust their usage, or obtain broader read access independent of + the node authorizer.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128169-map.yaml b/releases/release-1.32/release-notes/maps/pr-128169-map.yaml index 8fdc85f3b5e..2b50237d0db 100644 --- a/releases/release-1.32/release-notes/maps/pr-128169-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128169-map.yaml @@ -1,7 +1,7 @@ -pr: 128169 -releasenote: - text: |- - Promotes the `ServiceAccountTokenJTI` feature to GA, which adds a `jti` claim to issued service account tokens and embeds the `jti` claim as a `authentication.kubernetes.io/credential-id=["JTI=..."]` value in user extra info - - Promotes the `ServiceAccountTokenPodNodeInfo` feature to GA, which adds the node name and uid as claims into service account tokens mounted into running pods, and embeds that information as `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` user extra info when the token is used - - Promotes the `ServiceAccountTokenNodeBindingValidation` feature to GA, which validates service account tokens bound directly to nodes. -pr_body: "" +pr: 128169 +releasenote: + text: |- + Promotes the `ServiceAccountTokenJTI` feature to GA, which adds a `jti` claim to issued service account tokens and embeds the `jti` claim as a `authentication.kubernetes.io/credential-id=["JTI=..."]` value in user extra info + - Promotes the `ServiceAccountTokenPodNodeInfo` feature to GA, which adds the node name and uid as claims into service account tokens mounted into running pods, and embeds that information as `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` user extra info when the token is used + - Promotes the `ServiceAccountTokenNodeBindingValidation` feature to GA, which validates service account tokens bound directly to nodes. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128172-map.yaml b/releases/release-1.32/release-notes/maps/pr-128172-map.yaml index 2491094bbf9..35ec8dd9eea 100644 --- a/releases/release-1.32/release-notes/maps/pr-128172-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128172-map.yaml @@ -1,6 +1,6 @@ -pr: 128172 -releasenote: - text: 'kube-apiserver: Promoted the `StructuredAuthorizationConfiguration` feature - gate to GA. The `--authorization-config` flag now accepts `AuthorizationConfiguration` - in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`).' -pr_body: "" +pr: 128172 +releasenote: + text: 'kube-apiserver: Promoted the `StructuredAuthorizationConfiguration` feature + gate to GA. The `--authorization-config` flag now accepts `AuthorizationConfiguration` + in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`).' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128179-map.yaml b/releases/release-1.32/release-notes/maps/pr-128179-map.yaml index d11a206fc76..d0c891f5d89 100644 --- a/releases/release-1.32/release-notes/maps/pr-128179-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128179-map.yaml @@ -1,8 +1,8 @@ -pr: 128179 -releasenote: - text: Fixes a bug in the `k8s.io/cloud-provider/service` controller, it may panic - when a service is updated because the event recorder was used before it was initialized. - All cloud providers should using the `v1.31.0` cloud provider service controller - must ensure that the controllers is initialized before the informer start to process - events or update it to the version 1.32.0. -pr_body: "" +pr: 128179 +releasenote: + text: Fixes a bug in the `k8s.io/cloud-provider/service` controller, it may panic + when a service is updated because the event recorder was used before it was initialized. + All cloud providers should using the `v1.31.0` cloud provider service controller + must ensure that the controllers is initialized before the informer start to process + events or update it to the version 1.32.0. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128182-map.yaml b/releases/release-1.32/release-notes/maps/pr-128182-map.yaml index e06e606644b..17bcbdd4898 100644 --- a/releases/release-1.32/release-notes/maps/pr-128182-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128182-map.yaml @@ -1,5 +1,5 @@ -pr: 128182 -releasenote: - text: Fixed 1.31 regression that can crash kube-controller-manager's service-lb-controller - loop. -pr_body: "" +pr: 128182 +releasenote: + text: Fixed 1.31 regression that can crash kube-controller-manager's service-lb-controller + loop. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128186-map.yaml b/releases/release-1.32/release-notes/maps/pr-128186-map.yaml index fbdea4dfbc7..953944ebcb9 100644 --- a/releases/release-1.32/release-notes/maps/pr-128186-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128186-map.yaml @@ -1,18 +1,18 @@ -pr: 128186 -releasenote: - text: Prepared Pod validation to handle version skew for InPlacePodVerticalScaling's - beta graduation. - documentation: - - description: '[KEP]' - url: https://github.com/kubernetes/enhancements/issues/1287 - type: KEP - author: sreeram-venkitesh - areas: [] - kinds: - - feature - sigs: - - apps - feature: true - action_required: false - do_not_publish: false -pr_body: "" +pr: 128186 +releasenote: + text: Prepared Pod validation to handle version skew for InPlacePodVerticalScaling's + beta graduation. + documentation: + - description: '[KEP]' + url: https://github.com/kubernetes/enhancements/issues/1287 + type: KEP + author: sreeram-venkitesh + areas: [] + kinds: + - feature + sigs: + - apps + feature: true + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128190-map.yaml b/releases/release-1.32/release-notes/maps/pr-128190-map.yaml index 2f6c4384c0c..7c2b586b234 100644 --- a/releases/release-1.32/release-notes/maps/pr-128190-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128190-map.yaml @@ -1,42 +1,42 @@ -pr: 128190 -releasenote: - text: Added support to the kube-apiserver for an alpha feature enabling external - signing of service account tokens and fetching of public verifying keys, by enabling - the Alpha `ExternalServiceAccountTokenSigner` feature gate and specifying `--service-account-signing-endpoint`. - The flag value can either be the location of a Unix domain socket on a filesystem, - or be prefixed with an @ symbol and name a Unix domain socket in the abstract - socket namespace. - documentation: - - description: '[KEP]' - url: https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/740-service-account-external-signing - type: KEP - - description: '[Issue]' - url: https://github.com/kubernetes/enhancements/issues/740 - type: KEP - - description: '[Discussion]' - url: https://docs.google.com/document/d/1QVtBX8J2Tk70toefDegXMXigMFzrdQfezjlhBrKR29Y/edit?tab=t.0 - type: external - - description: '[Publish request]' - url: https://github.com/kubernetes/org/issues/5224 - type: external - author: HarshalNeelkamal - areas: - - test - - apiserver - - release-eng - - dependency - kinds: - - feature - sigs: - - api-machinery - - apps - - auth - - etcd - - instrumentation - - node - - release - - testing - feature: true - action_required: false - do_not_publish: false -pr_body: "" +pr: 128190 +releasenote: + text: Added support to the kube-apiserver for an alpha feature enabling external + signing of service account tokens and fetching of public verifying keys, by enabling + the Alpha `ExternalServiceAccountTokenSigner` feature gate and specifying `--service-account-signing-endpoint`. + The flag value can either be the location of a Unix domain socket on a filesystem, + or be prefixed with an @ symbol and name a Unix domain socket in the abstract + socket namespace. + documentation: + - description: '[KEP]' + url: https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/740-service-account-external-signing + type: KEP + - description: '[Issue]' + url: https://github.com/kubernetes/enhancements/issues/740 + type: KEP + - description: '[Discussion]' + url: https://docs.google.com/document/d/1QVtBX8J2Tk70toefDegXMXigMFzrdQfezjlhBrKR29Y/edit?tab=t.0 + type: external + - description: '[Publish request]' + url: https://github.com/kubernetes/org/issues/5224 + type: external + author: HarshalNeelkamal + areas: + - test + - apiserver + - release-eng + - dependency + kinds: + - feature + sigs: + - api-machinery + - apps + - auth + - etcd + - instrumentation + - node + - release + - testing + feature: true + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128197-map.yaml b/releases/release-1.32/release-notes/maps/pr-128197-map.yaml index 7666fe27cf7..db454f6969e 100644 --- a/releases/release-1.32/release-notes/maps/pr-128197-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128197-map.yaml @@ -1,7 +1,7 @@ -pr: 128197 -releasenote: - text: Removed legacy cloud provider integration code and the "service-lb-controller", - "cloud-node-lifecycle-controller" and the "node-route-controller" from kube-controller-manager. - You can now either set the `--cloud-provider` command line argument to "external", - or to the empty string. All other values are invalid. -pr_body: "" +pr: 128197 +releasenote: + text: Removed legacy cloud provider integration code and the "service-lb-controller", + "cloud-node-lifecycle-controller" and the "node-route-controller" from kube-controller-manager. + You can now either set the `--cloud-provider` command line argument to "external", + or to the empty string. All other values are invalid. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128219-map.yaml b/releases/release-1.32/release-notes/maps/pr-128219-map.yaml index d41ad6bea40..39e79b0f174 100644 --- a/releases/release-1.32/release-notes/maps/pr-128219-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128219-map.yaml @@ -1,7 +1,7 @@ -pr: 128219 -releasenote: - text: "kubelet: Fix - the volume manager didn't check the device mount state in - the actual state of the world before marking the volume as detached. It - may cause a pod to be stuck in the Terminating state due to the above issue - when it was deleted." -pr_body: "" +pr: 128219 +releasenote: + text: "kubelet: Fix - the volume manager didn't check the device mount state in + the actual state of the world before marking the volume as detached. It + may cause a pod to be stuck in the Terminating state due to the above issue + when it was deleted." +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128240-map.yaml b/releases/release-1.32/release-notes/maps/pr-128240-map.yaml index 977a9378ba2..72ed83ee1ad 100644 --- a/releases/release-1.32/release-notes/maps/pr-128240-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128240-map.yaml @@ -1,24 +1,24 @@ -pr: 128240 -releasenote: - text: Added driver-owned fields in `ResourceClaim.Status` to report device status - data for each allocated device. - documentation: - - description: '[KEP]' - url: https://github.com/kubernetes/enhancements/issues/4817 - type: KEP - author: LionelJouin - areas: - - test - - code-generation - kinds: - - api-change - - feature - sigs: - - api-machinery - - network - - node - - testing - feature: true - action_required: false - do_not_publish: false -pr_body: "" +pr: 128240 +releasenote: + text: Added driver-owned fields in `ResourceClaim.Status` to report device status + data for each allocated device. + documentation: + - description: '[KEP]' + url: https://github.com/kubernetes/enhancements/issues/4817 + type: KEP + author: LionelJouin + areas: + - test + - code-generation + kinds: + - api-change + - feature + sigs: + - api-machinery + - network + - node + - testing + feature: true + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128244-map.yaml b/releases/release-1.32/release-notes/maps/pr-128244-map.yaml index 4d289053531..7be25960c64 100644 --- a/releases/release-1.32/release-notes/maps/pr-128244-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128244-map.yaml @@ -1,4 +1,4 @@ -pr: 128244 -releasenote: - text: Apply fsGroup policy for ReadWriteOncePod volumes. -pr_body: "" +pr: 128244 +releasenote: + text: Apply fsGroup policy for ReadWriteOncePod volumes. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128259-map.yaml b/releases/release-1.32/release-notes/maps/pr-128259-map.yaml index 854e3e9aed6..d6e374d1796 100644 --- a/releases/release-1.32/release-notes/maps/pr-128259-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128259-map.yaml @@ -1,5 +1,5 @@ -pr: 128259 -releasenote: - text: The `build-tag` flag is reintroduced to conversion-gen and defaulter-gen which - allow users to inject custom build tag during code generation process. -pr_body: "" +pr: 128259 +releasenote: + text: The `build-tag` flag is reintroduced to conversion-gen and defaulter-gen which + allow users to inject custom build tag during code generation process. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128287-map.yaml b/releases/release-1.32/release-notes/maps/pr-128287-map.yaml index e4ac719c372..59a14957666 100644 --- a/releases/release-1.32/release-notes/maps/pr-128287-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128287-map.yaml @@ -1,24 +1,24 @@ -pr: 128287 -releasenote: - text: Ensured resizing for Guaranteed pods with integer CPU requests on nodes with - static CPU & Memory policy configured is not allowed for the beta release of in-place - resize. The feature gate `InPlacePodVerticalScalingExclusiveCPUs` defaults to - `false`, but can be enabled to unblock development on ([#127262](https://github.com/kubernetes/kubernetes/issues/127262), - [@tallclair](https://github.com/tallclair)) [SIG Node]. - documentation: [] - author: esotsal - areas: - - test - - kubelet - - release-eng - - e2e-test-framework - kinds: - - feature - sigs: - - node - - release - - testing - feature: true - action_required: false - do_not_publish: false -pr_body: "" +pr: 128287 +releasenote: + text: Ensured resizing for Guaranteed pods with integer CPU requests on nodes with + static CPU & Memory policy configured is not allowed for the beta release of in-place + resize. The feature gate `InPlacePodVerticalScalingExclusiveCPUs` defaults to + `false`, but can be enabled to unblock development on ([#127262](https://github.com/kubernetes/kubernetes/issues/127262), + [@tallclair](https://github.com/tallclair)) [SIG Node]. + documentation: [] + author: esotsal + areas: + - test + - kubelet + - release-eng + - e2e-test-framework + kinds: + - feature + sigs: + - node + - release + - testing + feature: true + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128305-map.yaml b/releases/release-1.32/release-notes/maps/pr-128305-map.yaml index f1cbaf62598..2b77aa68c61 100644 --- a/releases/release-1.32/release-notes/maps/pr-128305-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128305-map.yaml @@ -1,4 +1,4 @@ -pr: 128305 -releasenote: - text: Fixed a bug where `PodCIDR` was released before node was deleted. -pr_body: "" +pr: 128305 +releasenote: + text: Fixed a bug where `PodCIDR` was released before node was deleted. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128317-map.yaml b/releases/release-1.32/release-notes/maps/pr-128317-map.yaml index 9568829cad1..082887d0da1 100644 --- a/releases/release-1.32/release-notes/maps/pr-128317-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128317-map.yaml @@ -1,4 +1,4 @@ -pr: 128317 -releasenote: - text: '`ComponentSLIs` feature is marked as GA and locked.' -pr_body: "" +pr: 128317 +releasenote: + text: '`ComponentSLIs` feature is marked as GA and locked.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128318-map.yaml b/releases/release-1.32/release-notes/maps/pr-128318-map.yaml index da01f84d2a2..8b73bfe766b 100644 --- a/releases/release-1.32/release-notes/maps/pr-128318-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128318-map.yaml @@ -1,5 +1,5 @@ -pr: 128318 -releasenote: - text: Reset streams when an error happens during port-forward allowing kubectl to - maintain port-forward connection open. -pr_body: "" +pr: 128318 +releasenote: + text: Reset streams when an error happens during port-forward allowing kubectl to + maintain port-forward connection open. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128336-map.yaml b/releases/release-1.32/release-notes/maps/pr-128336-map.yaml index 4bcd18da7c8..d68a86fe3b8 100644 --- a/releases/release-1.32/release-notes/maps/pr-128336-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128336-map.yaml @@ -1,5 +1,5 @@ -pr: 128336 -releasenote: - text: Annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` added to Job - objects scheduled from CronJobs is promoted to stable. -pr_body: "" +pr: 128336 +releasenote: + text: Annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` added to Job + objects scheduled from CronJobs is promoted to stable. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128430-map.yaml b/releases/release-1.32/release-notes/maps/pr-128430-map.yaml index 64d2b3e4e86..fe27d76a473 100644 --- a/releases/release-1.32/release-notes/maps/pr-128430-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128430-map.yaml @@ -1,4 +1,4 @@ -pr: 128430 -releasenote: - text: Made kubelet's /metrics/slis endpoint always available. -pr_body: "" +pr: 128430 +releasenote: + text: Made kubelet's /metrics/slis endpoint always available. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128444-map.yaml b/releases/release-1.32/release-notes/maps/pr-128444-map.yaml index 4287ebb54ab..791ded6050b 100644 --- a/releases/release-1.32/release-notes/maps/pr-128444-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128444-map.yaml @@ -1,4 +1,4 @@ -pr: 128444 -releasenote: - text: Added `--concurrent-daemonset-syncs` command line flag to kube-controller-manager. This value sets the number of workers for the daemonset controller. -pr_body: "" +pr: 128444 +releasenote: + text: Added `--concurrent-daemonset-syncs` command line flag to kube-controller-manager. This value sets the number of workers for the daemonset controller. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128463-map.yaml b/releases/release-1.32/release-notes/maps/pr-128463-map.yaml index ce6ffde81ed..12e9ca44f04 100644 --- a/releases/release-1.32/release-notes/maps/pr-128463-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128463-map.yaml @@ -1,4 +1,4 @@ -pr: 128463 -releasenote: - text: Fixed the reporting of elapsed times during evaluation of `ValidatingAdmissionPolicy` decisions and annotations. The apiserver_validating_admission_policy_check_duration metrics will now show elapsed times and no longer be zero. -pr_body: "" +pr: 128463 +releasenote: + text: Fixed the reporting of elapsed times during evaluation of `ValidatingAdmissionPolicy` decisions and annotations. The apiserver_validating_admission_policy_check_duration metrics will now show elapsed times and no longer be zero. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128495-map.yaml b/releases/release-1.32/release-notes/maps/pr-128495-map.yaml index 3ec4abac378..25672e4d336 100644 --- a/releases/release-1.32/release-notes/maps/pr-128495-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128495-map.yaml @@ -1,15 +1,15 @@ -pr: 128495 -releasenote: - text: Fixed a race condition that could result in erroneous volume unmounts for - flex volume plugins on kubelet restart. - documentation: [] - author: olyazavr - areas: [] - kinds: - - bug - sigs: - - storage - feature: false - action_required: false - do_not_publish: false -pr_body: "" +pr: 128495 +releasenote: + text: Fixed a race condition that could result in erroneous volume unmounts for + flex volume plugins on kubelet restart. + documentation: [] + author: olyazavr + areas: [] + kinds: + - bug + sigs: + - storage + feature: false + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128503-map.yaml b/releases/release-1.32/release-notes/maps/pr-128503-map.yaml index a2c61cdf255..600f931ad82 100644 --- a/releases/release-1.32/release-notes/maps/pr-128503-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128503-map.yaml @@ -1,19 +1,19 @@ -pr: 128503 -releasenote: - text: Enabled `CBORServingAndStorage` feature gate – built-in APIs can now - be served in CBOR format for clients that request it. - documentation: [] - author: benluddy - areas: - - test - - apiserver - kinds: - - cleanup - sigs: - - api-machinery - - etcd - - testing - feature: false - action_required: false - do_not_publish: false -pr_body: "" +pr: 128503 +releasenote: + text: Enabled `CBORServingAndStorage` feature gate – built-in APIs can now + be served in CBOR format for clients that request it. + documentation: [] + author: benluddy + areas: + - test + - apiserver + kinds: + - cleanup + sigs: + - api-machinery + - etcd + - testing + feature: false + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128517-map.yaml b/releases/release-1.32/release-notes/maps/pr-128517-map.yaml index 7beb6beac70..5c79da80ee6 100644 --- a/releases/release-1.32/release-notes/maps/pr-128517-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128517-map.yaml @@ -1,4 +1,4 @@ -pr: 128517 -releasenote: - text: Graduated Kubelet Memory Manager to GA. -pr_body: "" +pr: 128517 +releasenote: + text: Graduated Kubelet Memory Manager to GA. +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128533-map.yaml b/releases/release-1.32/release-notes/maps/pr-128533-map.yaml index bf01b29d053..aaf5991d58f 100644 --- a/releases/release-1.32/release-notes/maps/pr-128533-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128533-map.yaml @@ -1,4 +1,4 @@ -pr: 128533 -releasenote: - text: 'Vendor: updated system-validators to v1.9.1.' -pr_body: "" +pr: 128533 +releasenote: + text: 'Vendor: updated system-validators to v1.9.1.' +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128556-map.yaml b/releases/release-1.32/release-notes/maps/pr-128556-map.yaml index bb7d3c20cc5..254d9b14a33 100644 --- a/releases/release-1.32/release-notes/maps/pr-128556-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128556-map.yaml @@ -1,16 +1,16 @@ -pr: 128556 -releasenote: - text: Introduced a new metric `kubelet_admission_rejections_total` to track the number - of pods rejected during admission. - documentation: [] - author: AnishShah - areas: - - kubelet - kinds: - - feature - sigs: - - node - feature: true - action_required: false - do_not_publish: false -pr_body: "" +pr: 128556 +releasenote: + text: Introduced a new metric `kubelet_admission_rejections_total` to track the number + of pods rejected during admission. + documentation: [] + author: AnishShah + areas: + - kubelet + kinds: + - feature + sigs: + - node + feature: true + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128623-map.yaml b/releases/release-1.32/release-notes/maps/pr-128623-map.yaml index d6ef9d3c17e..8370faa9ff2 100644 --- a/releases/release-1.32/release-notes/maps/pr-128623-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128623-map.yaml @@ -1,19 +1,19 @@ -pr: 128623 -releasenote: - text: Droped support for `InPlacePodVerticalScaling` feature in Windows. - documentation: - - description: KEP - url: https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources - type: KEP - author: AnishShah - areas: - - kubelet - kinds: - - cleanup - sigs: - - apps - - node - feature: false - action_required: false - do_not_publish: false -pr_body: "" +pr: 128623 +releasenote: + text: Droped support for `InPlacePodVerticalScaling` feature in Windows. + documentation: + - description: KEP + url: https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources + type: KEP + author: AnishShah + areas: + - kubelet + kinds: + - cleanup + sigs: + - apps + - node + feature: false + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128640-map.yaml b/releases/release-1.32/release-notes/maps/pr-128640-map.yaml index a5c1f331d94..d38f2856e28 100644 --- a/releases/release-1.32/release-notes/maps/pr-128640-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128640-map.yaml @@ -1,16 +1,16 @@ -pr: 128640 -releasenote: - text: Added a one-time random duration of up to 50% of kubelet's `nodeStatusReportFrequency` - to help spread the node status update load evenly over time. - documentation: [] - author: mengqiy - areas: - - kubelet - kinds: - - feature - sigs: - - node - feature: true - action_required: false - do_not_publish: false -pr_body: "" +pr: 128640 +releasenote: + text: Added a one-time random duration of up to 50% of kubelet's `nodeStatusReportFrequency` + to help spread the node status update load evenly over time. + documentation: [] + author: mengqiy + areas: + - kubelet + kinds: + - feature + sigs: + - node + feature: true + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128646-map.yaml b/releases/release-1.32/release-notes/maps/pr-128646-map.yaml index 7a242bddcc7..bb8b0a68fd8 100644 --- a/releases/release-1.32/release-notes/maps/pr-128646-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128646-map.yaml @@ -1,22 +1,22 @@ -pr: 128646 -releasenote: - text: The alpha Dynamic Resource Allocation gRPC API is still available, but might - be removed in future releases. Driver authors should update their DRA drivers - to use the v1beta1 gRPC API. - documentation: - - description: '[KEP]' - url: https://github.com/kubernetes/enhancements/issues/4381 - type: KEP - author: pohly - areas: - - test - - kubelet - kinds: - - cleanup - sigs: - - node - - testing - feature: false - action_required: false - do_not_publish: false -pr_body: "" +pr: 128646 +releasenote: + text: The alpha Dynamic Resource Allocation gRPC API is still available, but might + be removed in future releases. Driver authors should update their DRA drivers + to use the v1beta1 gRPC API. + documentation: + - description: '[KEP]' + url: https://github.com/kubernetes/enhancements/issues/4381 + type: KEP + author: pohly + areas: + - test + - kubelet + kinds: + - cleanup + sigs: + - node + - testing + feature: false + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128764-map.yaml b/releases/release-1.32/release-notes/maps/pr-128764-map.yaml index 4293b78ac21..33c13750ad4 100644 --- a/releases/release-1.32/release-notes/maps/pr-128764-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128764-map.yaml @@ -1,17 +1,17 @@ -pr: 128764 -releasenote: - text: For Dynamic Resource Allocation, the new "v1beta1" kubelet gPRC was renamed - so that the protobuf package name is unique. - documentation: [] - author: pohly - areas: - - test - kinds: - - bug - sigs: - - node - - testing - feature: false - action_required: false - do_not_publish: false -pr_body: "" +pr: 128764 +releasenote: + text: For Dynamic Resource Allocation, the new "v1beta1" kubelet gPRC was renamed + so that the protobuf package name is unique. + documentation: [] + author: pohly + areas: + - test + kinds: + - bug + sigs: + - node + - testing + feature: false + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128852-map.yaml b/releases/release-1.32/release-notes/maps/pr-128852-map.yaml index 6294ce2796e..f2ace758be4 100644 --- a/releases/release-1.32/release-notes/maps/pr-128852-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128852-map.yaml @@ -1,17 +1,17 @@ -pr: 128852 -releasenote: - text: Kubernetes is now built with Go 1.23.3. - documentation: [] - author: cpanato - areas: - - test - - release-eng - kinds: - - feature - sigs: - - release - - testing - feature: true - action_required: false - do_not_publish: false -pr_body: "" +pr: 128852 +releasenote: + text: Kubernetes is now built with Go 1.23.3. + documentation: [] + author: cpanato + areas: + - test + - release-eng + kinds: + - feature + sigs: + - release + - testing + feature: true + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/maps/pr-128932-map.yaml b/releases/release-1.32/release-notes/maps/pr-128932-map.yaml index 4942cbfa602..c57e4a46783 100644 --- a/releases/release-1.32/release-notes/maps/pr-128932-map.yaml +++ b/releases/release-1.32/release-notes/maps/pr-128932-map.yaml @@ -1,19 +1,19 @@ -pr: 128932 -releasenote: - text: For Dynamic Resource Allocartion, labels in node selectors now are validated. - Invalid labels already caused runtime errors before and are unlikely to occur - in practice. - documentation: - - description: '[KEP]' - url: https://github.com/kubernetes/enhancements/issues/4381 - type: KEP - author: pohly - areas: [] - kinds: - - bug - sigs: - - apps - feature: false - action_required: false - do_not_publish: false -pr_body: "" +pr: 128932 +releasenote: + text: For Dynamic Resource Allocartion, labels in node selectors now are validated. + Invalid labels already caused runtime errors before and are unlikely to occur + in practice. + documentation: + - description: '[KEP]' + url: https://github.com/kubernetes/enhancements/issues/4381 + type: KEP + author: pohly + areas: [] + kinds: + - bug + sigs: + - apps + feature: false + action_required: false + do_not_publish: false +pr_body: "" diff --git a/releases/release-1.32/release-notes/release-notes-draft.json b/releases/release-1.32/release-notes/release-notes-draft.json index ce18a47d2a3..0766a115216 100644 --- a/releases/release-1.32/release-notes/release-notes-draft.json +++ b/releases/release-1.32/release-notes/release-notes-draft.json @@ -1,6684 +1,6684 @@ -{ - "114136": { - "commit": "d14b0b0cb1455e0619a05144e760ce5741b7f988", - "text": "kubelet plugins are now re-registered properly on Windows if the re-registration period is \u003c 15ms.", - "markdown": "kubelet plugins are now re-registered properly on Windows if the re-registration period is \u003c 15ms. ([#114136](https://github.com/kubernetes/kubernetes/pull/114136), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Storage, Testing and Windows]", - "author": "claudiubelu", - "author_url": "https://github.com/claudiubelu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/114136", - "pr_number": 114136, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "node", - "storage", - "testing", - "windows" - ], - "duplicate": true, - "duplicate_kind": true - }, - "115834": { - "commit": "9f01cd7b28fdbc8a1ceb9ec371fd817551659ee5", - "text": "kube-apiserver: a new `--requestheader-uid-headers` flag allows configuring request header authentication to obtain the authenticating user's UID from the specified headers. The suggested value for the new option is `X-Remote-Uid`. When specified, the `kube-system/extension-apiserver-authentication` configmap will include the value in its `.data[requestheader-uid-headers]` field.", - "markdown": "kube-apiserver: a new `--requestheader-uid-headers` flag allows configuring request header authentication to obtain the authenticating user's UID from the specified headers. The suggested value for the new option is `X-Remote-Uid`. When specified, the `kube-system/extension-apiserver-authentication` configmap will include the value in its `.data[requestheader-uid-headers]` field. ([#115834](https://github.com/kubernetes/kubernetes/pull/115834), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Auth, Cloud Provider and Testing]", - "author": "stlaz", - "author_url": "https://github.com/stlaz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/115834", - "pr_number": 115834, - "areas": [ - "test", - "apiserver", - "cloudprovider" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "119089": { - "commit": "5fa794db46c3e6d13a58e20e11aa86367b9585b5", - "text": "Output a log as v4-level when probe is triggered and shift the periodic timer of ReadinessProbe after manual run.", - "markdown": "Output a log as v4-level when probe is triggered and shift the periodic timer of ReadinessProbe after manual run. ([#119089](https://github.com/kubernetes/kubernetes/pull/119089), [@mochizuki875](https://github.com/mochizuki875))", - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/119089", - "pr_number": 119089, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "120586": { - "commit": "bb2b52e6509b5f9d47078ade9cab2be69f27214b", - "text": "When `SchedulerQueueingHints` is enabled, clear events cached in the scheduling queue as soon as possible so that the scheduler consumes less memory.", - "markdown": "When `SchedulerQueueingHints` is enabled, clear events cached in the scheduling queue as soon as possible so that the scheduler consumes less memory. ([#120586](https://github.com/kubernetes/kubernetes/pull/120586), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120586", - "pr_number": 120586, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "121206": { - "commit": "2f3da71f99b607450687178273668542510b1043", - "text": "`StartupProbe` was explicitly stopped when the `successThreshold` was reached.\nThis eliminated the problem of executing `StartupProbe` more times than \nthe `successThreshold`.", - "markdown": "`StartupProbe` was explicitly stopped when the `successThreshold` was reached.\n This eliminated the problem of executing `StartupProbe` more times than \n the `successThreshold`. ([#121206](https://github.com/kubernetes/kubernetes/pull/121206), [@mochizuki875](https://github.com/mochizuki875))", - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121206", - "pr_number": 121206, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "121968": { - "commit": "a2a32fc31aa5b118d85ce7cc2587739ab005c8fd", - "text": "Added warnings for overlap paths in ConfigMap, Secret, DownwardAPI, Projected. Added warning for cases when ProjectedVolume with sources is provided.", - "markdown": "Added warnings for overlap paths in ConfigMap, Secret, DownwardAPI, Projected. Added warning for cases when ProjectedVolume with sources is provided. ([#121968](https://github.com/kubernetes/kubernetes/pull/121968), [@Peac36](https://github.com/Peac36))", - "author": "Peac36", - "author_url": "https://github.com/Peac36", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/121968", - "pr_number": 121968, - "kinds": [ - "bug" - ], - "sigs": [ - "auth" - ], - "is_mapped": true - }, - "122890": { - "commit": "d6bb550b1079af165a1bba9485b8c026735de17f", - "text": "Fixed a bug where `spec.terminationGracePeriodSeconds` of a pod would always be overwritten by `MaxPodGracePeriodSeconds` during a soft eviction. To restore the previous behavior, enable the `AllowOverwriteTerminationGracePeriodSeconds` feature gate. If you need to set this, please file an issue with the Kubernetes project to help contributors understand your requirements.", - "markdown": "Fixed a bug where `spec.terminationGracePeriodSeconds` of a pod would always be overwritten by `MaxPodGracePeriodSeconds` during a soft eviction. To restore the previous behavior, enable the `AllowOverwriteTerminationGracePeriodSeconds` feature gate. If you need to set this, please file an issue with the Kubernetes project to help contributors understand your requirements. ([#122890](https://github.com/kubernetes/kubernetes/pull/122890), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Architecture, Node, and Testing]", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122890", - "pr_number": 122890, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "architecture", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "123549": { - "commit": "08391b3d273da28d47da2950082cea99d571bbcb", - "text": "Added a new controller, volumeattributesclass-protection-controller, into the kube-controller-manager.\nThe new controller manages a protective finalizer on VolumeAttributesClass objects.", - "markdown": "Added a new controller, volumeattributesclass-protection-controller, into the kube-controller-manager.\n The new controller manages a protective finalizer on VolumeAttributesClass objects. ([#123549](https://github.com/kubernetes/kubernetes/pull/123549), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Auth and Storage]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3751", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123549", - "pr_number": 123549, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "storage" - ], - "feature": true, - "duplicate": true - }, - "124003": { - "commit": "0bcbc3b77a0b5358f53e81e8fa7605909bf8a2fe", - "text": "kube-scheduler removed `AzureDiskLimits`, `CinderLimits`, `EBSLimits`, and `GCEPDLimits` plugins. With the corresponding CSI driver reporting how many volumes a node can handle in `NodeGetInfoResponse`, kubelet stores this limit in CSINode, enabling the scheduler to know the driver's limit on the node. Remove these plugins if explicitly enabled in the scheduler config.", - "markdown": "kube-scheduler removed `AzureDiskLimits`, `CinderLimits`, `EBSLimits`, and `GCEPDLimits` plugins. With the corresponding CSI driver reporting how many volumes a node can handle in `NodeGetInfoResponse`, kubelet stores this limit in CSINode, enabling the scheduler to know the driver's limit on the node. Remove these plugins if explicitly enabled in the scheduler config. ([#124003](https://github.com/kubernetes/kubernetes/pull/124003), [@carlory](https://github.com/carlory)) [SIG Scheduling, Storage, and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124003", - "pr_number": 124003, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true, - "is_mapped": true - }, - "124216": { - "commit": "a8e1f41131455a595f68338e3aaee9af2c2410e1", - "text": "Fix: Avoid overwriting in-pod vertical scaling updates during systemd daemon reloads when using systemd.", - "markdown": "Fix: Avoid overwriting in-pod vertical scaling updates during systemd daemon reloads when using systemd. ([#124216](https://github.com/kubernetes/kubernetes/pull/124216), [@iholder101](https://github.com/iholder101)) [SIG Node]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "iholder101", - "author_url": "https://github.com/iholder101", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124216", - "pr_number": 124216, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "124227": { - "commit": "d67e6545b159658d5500f773595cc7a6b62e94ba", - "text": "Added status for extended Pod resources within the `status.containerStatuses[].resources` field.", - "markdown": "Added support for extended Pod resource status in the `status.containerStatuses[].resources` field. ([#124227](https://github.com/kubernetes/kubernetes/pull/124227), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "iholder101", - "author_url": "https://github.com/iholder101", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124227", - "pr_number": 124227, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "124285": { - "commit": "53ab13397d0a35280fada33266ef35d3682705ac", - "text": "CRI: Added a field to support CPU affinity on Windows.", - "markdown": "CRI: Introduced a field to enable CPU affinity support on Windows. ([#124285](https://github.com/kubernetes/kubernetes/pull/124285), [@kiashok](https://github.com/kiashok)) [SIG Node and Windows]", - "author": "kiashok", - "author_url": "https://github.com/kiashok", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124285", - "pr_number": 124285, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "windows" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124389": { - "commit": "35b4695e5a7f597315e59a12472e657439c3bff5", - "text": "Added: Log Line for Debugging possible merge errors for kubelet related Config requests.", - "markdown": "Added a log line to debug potential merge errors for kubelet-related configuration requests. ([#124389](https://github.com/kubernetes/kubernetes/pull/124389), [@holgerson97](https://github.com/holgerson97))", - "author": "holgerson97", - "author_url": "https://github.com/holgerson97", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124389", - "pr_number": 124389, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "124703": { - "commit": "a7242fcff768658019f878cb691583dcbcfefb2d", - "text": "Implemented a queueing hint for PersistentVolumeClaim/Add event in `CSILimit` plugin.", - "markdown": "Implemented a queuing hint for `PersistentVolumeClaim/Add` events in the `CSILimit` plugin. ([#124703](https://github.com/kubernetes/kubernetes/pull/124703), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Storage]", - "author": "utam0k", - "author_url": "https://github.com/utam0k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124703", - "pr_number": 124703, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "124747": { - "commit": "ad879205486a669dbaa5f5c49c247db7ea33fd33", - "text": "Events:\n Type Reason Age From Message\n ---- ------ ---- ---- -------\n Normal EnsuringLoadBalancer 6m7s (x268 over 22h) service-controller Ensuring load balancer", - "markdown": "```plaintext\nEvents:\n Type Reason Age From Message\n ---- ------ ---- ---- -------\n Normal EnsuringLoadBalancer 6m7s (x268 over 22h) service-controller Ensuring load balancer\n``` ([#124747](https://github.com/kubernetes/kubernetes/pull/124747), [@l-technicore](https://github.com/l-technicore)) [SIG API Machinery]", - "author": "l-technicore", - "author_url": "https://github.com/l-technicore", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124747", - "pr_number": 124747, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "124947": { - "commit": "2ade53e264b701c46fb11a13ad0c58dba13af1fd", - "text": "Fixed a bug where restartable and non-restartable init containers were not accounted for in the message and annotations of the eviction event.", - "markdown": "Fixed a bug where restartable and non-restartable init containers were not accounted for in the message and annotations of the eviction event. ([#124947](https://github.com/kubernetes/kubernetes/pull/124947), [@toVersus](https://github.com/toVersus)) [SIG Node]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/753", - "type": "KEP" - } - ], - "author": "toVersus", - "author_url": "https://github.com/toVersus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124947", - "pr_number": 124947, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "124952": { - "commit": "9a9331afd60a4db3ffd8dc9bd38b788948308175", - "text": "The Job controller now considers sidecar container restart counts when removing pods.", - "markdown": "The Job controller now considers sidecar container restart counts when removing pods. ([#124952](https://github.com/kubernetes/kubernetes/pull/124952), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps and CLI]", - "documentation": [ - { - "description": "[KEP]: \u003c", - "url": "https://github.com/kubernetes/enhancements/issues/753\u003e", - "type": "KEP" - } - ], - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124952", - "pr_number": 124952, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "cli" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125070": { - "commit": "e2c17c09a494f679e5a8fb46f2d5ca05363df0a8", - "text": "Node shutdown controller made a best effort to wait for CSI drivers to complete the volume teardown process according to the pod priority groups.", - "markdown": "The node shutdown controller now makes a best effort to wait for CSI drivers to complete the volume teardown process according to the pod priority groups. ([#125070](https://github.com/kubernetes/kubernetes/pull/125070), [@torredil](https://github.com/torredil)) [SIG Node, Storage, and Testing]", - "author": "torredil", - "author_url": "https://github.com/torredil", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125070", - "pr_number": 125070, - "areas": [ - "test", - "kubelet", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125118": { - "commit": "a1df68a31f535d4d4d55090e89805d8e574c3aa9", - "text": "Output for the `ScalingReplicaSet` event has changed from:\n Scaled \u003cup|down\u003e replica set \u003creplica-set-name\u003e to \u003cnew-value\u003e from \u003cold-value\u003e\nto:\n Scaled \u003cup|down\u003e replica set \u003creplica-set-name\u003e from \u003cold-value\u003e to \u003cnew-value\u003e.", - "markdown": "The output for the `ScalingReplicaSet` event has changed from:\n\n```plaintext\nScaled \u003cup|down\u003e replica set \u003creplica-set-name\u003e to \u003cnew-value\u003e from \u003cold-value\u003e\n```\n\nto:\n\n```plaintext\nScaled \u003cup|down\u003e replica set \u003creplica-set-name\u003e from \u003cold-value\u003e to \u003cnew-value\u003e\n```. ([#125118](https://github.com/kubernetes/kubernetes/pull/125118), [@jsoref](https://github.com/jsoref)) [SIG Apps and CLI]", - "author": "jsoref", - "author_url": "https://github.com/jsoref", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125118", - "pr_number": 125118, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "cli" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125171": { - "commit": "3de975b732ed40a586f3b0b979ff8b7170ba1ea1", - "text": "The scheduler implemented `QueueingHint` in the VolumeBinding plugin's CSIDriver event, enhancing the throughput of scheduling.", - "markdown": "The scheduler implemented `QueueingHint` in the VolumeBinding plugin's CSIDriver event, enhancing the throughput of scheduling. ([#125171](https://github.com/kubernetes/kubernetes/pull/125171), [@YamasouA](https://github.com/YamasouA)) [SIG Scheduling and Storage]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4247", - "type": "KEP" - } - ], - "author": "YamasouA", - "author_url": "https://github.com/YamasouA", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125171", - "pr_number": 125171, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125186": { - "commit": "e5dd48efd07e8a052604b3073e0fafe7361ca689", - "text": "NONE", - "markdown": "NONE ([#125186](https://github.com/kubernetes/kubernetes/pull/125186), [@liyuerich](https://github.com/liyuerich)) [SIG Auth]", - "author": "liyuerich", - "author_url": "https://github.com/liyuerich", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125186", - "pr_number": 125186, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "auth" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "125296": { - "commit": "4932adf80d9ac97e895d22ce822f80863d7cd1aa", - "text": "Windows: Support CPU and Topology Manager on Windows.", - "markdown": "Windows: Support CPU and Topology Manager on Windows. ([#125296](https://github.com/kubernetes/kubernetes/pull/125296), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/pull/4888", - "type": "KEP" - } - ], - "author": "jsturtevant", - "author_url": "https://github.com/jsturtevant", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125296", - "pr_number": 125296, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "windows" - ], - "feature": true, - "duplicate": true - }, - "125337": { - "commit": "48f36acc7a13d37c357aa6abff55a01267eab8a9", - "text": "The kubelet, when using `--cloud-provider=external` can use the `--node-ip` flag with one of the unspecified addresses 0.0.0.0 or ::, to create the Node with the IP of the default gateway of the corresponding IP family and then delegating the responsibility to the external cloud provider. This solves the bootstrap problems of out of tree cloud providers that are deployed as Pods within the cluster.", - "markdown": "The kubelet, when using `--cloud-provider=external` can use the `--node-ip` flag with one of the unspecified addresses 0.0.0.0 or ::, to create the Node with the IP of the default gateway of the corresponding IP family and then delegating the responsibility to the external cloud provider. This solves the bootstrap problems of out of tree cloud providers that are deployed as Pods within the cluster. ([#125337](https://github.com/kubernetes/kubernetes/pull/125337), [@aojea](https://github.com/aojea)) [SIG Cloud Provider, Network, Node and Testing]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125337", - "pr_number": 125337, - "areas": [ - "test", - "kubelet", - "cloudprovider" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cloud-provider", - "network", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125372": { - "commit": "9d140b136c59ed2530a7b22502921bcf1aab4716", - "text": "Improved the scalability of the PVC Protection Controller by batch-processing PVCs by namespace with lazy live pod listing.", - "markdown": "Improved the scalability of the PVC Protection Controller by batch-processing PVCs by namespace with lazy live pod listing. ([#125372](https://github.com/kubernetes/kubernetes/pull/125372), [@hungnguyen243](https://github.com/hungnguyen243)) [SIG Apps, Node, Storage, and Testing]", - "author": "hungnguyen243", - "author_url": "https://github.com/hungnguyen243", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125372", - "pr_number": 125372, - "areas": [ - "test", - "kubelet", - "apiserver", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "node", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125398": { - "commit": "211d67a511f081623b5a0ac008fc3712452905b4", - "text": "Fixed a bug where pods bound to a PersistentVolume with `nodeAffinity` using the hostname label could be scheduled to the wrong node or fail scheduling when the hostname label of a node did not match the node name.", - "markdown": "Fixed a bug where pods bound to a PersistentVolume with `nodeAffinity` using the hostname label could be scheduled to the wrong node or fail scheduling when the hostname label of a node did not match the node name. ([#125398](https://github.com/kubernetes/kubernetes/pull/125398), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Storage]", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125398", - "pr_number": 125398, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "storage" - ], - "duplicate": true, - "is_mapped": true - }, - "125577": { - "commit": "60651eb17257356a2be70ac8d2c14218c1af0834", - "text": "Added a `/statusz` endpoint for the kube-apiserver endpoint.", - "markdown": "Added a `/statusz` endpoint for the kube-apiserver endpoint. ([#125577](https://github.com/kubernetes/kubernetes/pull/125577), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node and Testing]", - "author": "richabanker", - "author_url": "https://github.com/richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125577", - "pr_number": 125577, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "provider/gcp", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "cli", - "cloud-provider", - "instrumentation", - "network", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125634": { - "commit": "bbd83d86444d7b325a51f4daa0d65163b795b70e", - "text": "X.509 client certificate authentication to the kube-apiserver now generates credential IDs (derived from the certificate's signature) for use in audit logging.", - "markdown": "X.509 client certificate authentication to the kube-apiserver now generates credential IDs (derived from the certificate's signature) for use in audit logging. ([#125634](https://github.com/kubernetes/kubernetes/pull/125634), [@ahmedtd](https://github.com/ahmedtd)) [SIG API Machinery, Auth, and Testing]", - "author": "ahmedtd", - "author_url": "https://github.com/ahmedtd", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125634", - "pr_number": 125634, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125757": { - "commit": "8504758a2ea9ff69f5091b2e4669dfec417e31de", - "text": "NONE", - "markdown": "NONE ([#125757](https://github.com/kubernetes/kubernetes/pull/125757), [@esotsal](https://github.com/esotsal)) [SIG Node]", - "author": "esotsal", - "author_url": "https://github.com/esotsal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125757", - "pr_number": 125757, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "do_not_publish": true - }, - "125796": { - "commit": "5dd244ff0030a7b7af5f9834db181479c03cb07b", - "text": "Fixed a bug in the garbage collector controller that could block indefinitely due to a cache sync failure. This fix allows the garbage collector to eventually continue garbage collecting other resources if a given resource cannot be listed or watched. Any objects in the unsynced resource type with owner references having `blockOwnerDeletion: true` will not be known to the garbage collector. The use of `blockOwnerDeletion` has always been best-effort and prone to race conditions during startup and object creation. With this fix, it continues to be best-effort for resources that cannot be synced by the garbage collector controller.", - "markdown": "Fixed a bug in the garbage collector controller that could block indefinitely due to a cache sync failure. This fix allows the garbage collector to eventually continue garbage collecting other resources if a given resource cannot be listed or watched. Any objects in the unsynced resource type with owner references having `blockOwnerDeletion: true` will not be known to the garbage collector. The use of `blockOwnerDeletion` has always been best-effort and prone to race conditions during startup and object creation. With this fix, it continues to be best-effort for resources that cannot be synced by the garbage collector controller. ([#125796](https://github.com/kubernetes/kubernetes/pull/125796), [@haorenfsa](https://github.com/haorenfsa)) [SIG API Machinery, Apps, and Testing]", - "author": "haorenfsa", - "author_url": "https://github.com/haorenfsa", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125796", - "pr_number": 125796, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125923": { - "commit": "762a85e25d9c043b3729dcca4294a49a9e0f55e5", - "text": "Fixed a bug where the kubelet intermittently failed with `failed to initialize top-level QOS containers: root container [kubepods] doesn't exist`, caused by the cpuset cgroup being deleted on cgroup v2 with the systemd cgroup manager.", - "markdown": "Fixed a bug where the kubelet intermittently failed with `failed to initialize top-level QOS containers: root container [kubepods] doesn't exist`, caused by the cpuset cgroup being deleted on cgroup v2 with the systemd cgroup manager. ([#125923](https://github.com/kubernetes/kubernetes/pull/125923), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing]", - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125923", - "pr_number": 125923, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "125982": { - "commit": "c923a61dddf4db8cf6f0f59062b5f3362fa593e2", - "text": "Introduced compressible resource settings on system-reserved and kube-reserved slices.", - "markdown": "Introduced compressible resource settings on system-reserved and kube-reserved slices. ([#125982](https://github.com/kubernetes/kubernetes/pull/125982), [@harche](https://github.com/harche))", - "author": "harche", - "author_url": "https://github.com/harche", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125982", - "pr_number": 125982, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "125995": { - "commit": "9571d3b6c616bed1c5ad14fe65f13170a3fe9e55", - "text": "Removed unneeded permissions from system:controller:persistent-volume-binder and system:controller:expand-controller clusterroles.", - "markdown": "Removed unneeded permissions from system:controller:persistent-volume-binder and system:controller:expand-controller clusterroles. ([#125995](https://github.com/kubernetes/kubernetes/pull/125995), [@carlory](https://github.com/carlory)) [SIG Auth and Storage]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125995", - "pr_number": 125995, - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "storage" - ], - "duplicate": true - }, - "126022": { - "commit": "ea1143efc728d2a2425de724570820a7729edabc", - "text": "Changed NodeToStatusMap from a map to a struct and exposed methods to access its entries. Added absentNodesStatus, which indicates the status of nodes absent in the map. \n\nFor developers of out-of-tree PostFilter plugins, ensure to update the usage of NodeToStatusMap. Additionally, NodeToStatusMap is planned to be renamed to NodeToStatusReader in the future.", - "markdown": "Changed NodeToStatusMap from a map to a struct and exposed methods to access its entries. Added absentNodesStatus, which indicates the status of nodes absent in the map. \n\nFor developers of out-of-tree PostFilter plugins, ensure to update the usage of NodeToStatusMap. Additionally, NodeToStatusMap is planned to be renamed to NodeToStatusReader in the future. ([#126022](https://github.com/kubernetes/kubernetes/pull/126022), [@macsko](https://github.com/macsko)) [SIG Node, Scheduling, and Testing]", - "author": "macsko", - "author_url": "https://github.com/macsko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126022", - "pr_number": 126022, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "action_required": true - }, - "126029": { - "commit": "59051eb003626584db643442e33170930be0c63e", - "text": "The scheduler now retries gated Pods more appropriately, applying a backoff penalty as well.", - "markdown": "The scheduler now retries gated Pods more appropriately, applying a backoff penalty as well. ([#126029](https://github.com/kubernetes/kubernetes/pull/126029), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126029", - "pr_number": 126029, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "126032": { - "commit": "d088d4c38720b977084860a167770c9f14f9eb90", - "text": "kubeadm: `kubeadm upgrade apply` now supports phase sub-command, user can use `kubeadm upgrade apply phase \u003cphase-name\u003e` to execute the specified phase, or use `kubeadm upgrade apply --skip-phases \u003cphase-names\u003e` to skip some phases during cluster upgrade.", - "markdown": "kubeadm: `kubeadm upgrade apply` now supports phase sub-command, user can use `kubeadm upgrade apply phase \u003cphase-name\u003e` to execute the specified phase, or use `kubeadm upgrade apply --skip-phases \u003cphase-names\u003e` to skip some phases during cluster upgrade. ([#126032](https://github.com/kubernetes/kubernetes/pull/126032), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126032", - "pr_number": 126032, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, -"126038": { - "commit": "e54c8ef2024e638d721242224f6f925b15ee43f5", - "text": "Send an error on `ResultChan` and close the `RetryWatcher` when the client is forbidden or unauthorized from watching the resource.", - "markdown": "Send an error on `ResultChan` and close the `RetryWatcher` when the client is forbidden or unauthorized from watching the resource. ([#126038](https://github.com/kubernetes/kubernetes/pull/126038), [@mprahl](https://github.com/mprahl)) [SIG API Machinery]", - "author": "mprahl", - "author_url": "https://github.com/mprahl", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126038", - "pr_number": 126038, - "areas": [ - "api-machinery" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "126096": { - "commit": "c462d4c8e52f3e7bcfd0765b5729569f8d5daa65", - "text": "Added `singleProcessOOMKill` flag to the kubelet configuration. Setting that to true enable single process OOM killing in cgroups v2. In this mode, if a single process is OOM killed within a container, the remaining processes will not be OOM killed.", - "markdown": "Added `singleProcessOOMKill` flag to the kubelet configuration. Setting that to true enable single process OOM killing in cgroups v2. In this mode, if a single process is OOM killed within a container, the remaining processes will not be OOM killed. ([#126096](https://github.com/kubernetes/kubernetes/pull/126096), [@utam0k](https://github.com/utam0k)) [SIG API Machinery, Node, Testing and Windows]", - "author": "utam0k", - "author_url": "https://github.com/utam0k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126096", - "pr_number": 126096, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "node", - "testing", - "windows" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "126287": { - "commit": "bb7411120aa71e4653640bc59ba56efd2586ccb4", - "text": "The default value for `node-monitor-grace-period` has been increased to 50s (previously 40s). (Ref - https://github.com/kubernetes/kubernetes/issues/121793)", - "markdown": "The default value for `node-monitor-grace-period` has been increased to 50s (previously 40s). (Ref - https://github.com/kubernetes/kubernetes/issues/121793) ([#126287](https://github.com/kubernetes/kubernetes/pull/126287), [@devppratik](https://github.com/devppratik)) [SIG API Machinery, Apps, and Node]", - "author": "devppratik", - "author_url": "https://github.com/devppratik", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126287", - "pr_number": 126287, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "node" - ], - "duplicate": true, - "duplicate_kind": true - }, - "126318": { - "commit": "36fafafdb06a8102739928dcb83517a6d1ae1f97", - "text": "kubelet now attempts to retrieve an existing node if the request to create it fails with `StatusForbidden`.", - "markdown": "kubelet now attempts to retrieve an existing node if the request to create it fails with `StatusForbidden`. ([#126318](https://github.com/kubernetes/kubernetes/pull/126318), [@hoskeri](https://github.com/hoskeri)) [SIG Node]", - "author": "hoskeri", - "author_url": "https://github.com/hoskeri", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126318", - "pr_number": 126318, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "126336": { - "commit": "1ce20b2b6fb5912053cbd7bb181e79b3c0b344fa", - "text": "Removed support for the kubelet `--runonce` mode.\nIf you specify the kubelet command line flag `--runonce`, this is an error.\nSetting `runOnce` in a kubelet configuration file is also an error, and specifying any\nvalue for that configuration option is now deprecated.", - "markdown": "Removed support for the kubelet `--runonce` mode.\n If you specify the kubelet command line flag `--runonce`, this is an error.\n Setting `runOnce` in a kubelet configuration file is also an error, and specifying any\n value for that configuration option is now deprecated. ([#126336](https://github.com/kubernetes/kubernetes/pull/126336), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node and Scalability]", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126336", - "pr_number": 126336, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "scalability" - ], - "duplicate": true - }, - "126343": { - "commit": "3f306ae140a75e6334d2d89b8e761e197849aa17", - "text": "Terminated Pods on a node will not be re-admitted upon kubelet restart. This fixes the problem where Completed Pods awaiting finalizer marking were incorrectly marked as Failed after the kubelet restarted.", - "markdown": "Terminated Pods on a node will not be re-admitted upon kubelet restart. This fixes the problem where Completed Pods awaiting finalizer marking were incorrectly marked as Failed after the kubelet restarted. ([#126343](https://github.com/kubernetes/kubernetes/pull/126343), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node and Testing]", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126343", - "pr_number": 126343, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true -}, -"126347": { - "commit": "f5ae0413cadb1d2d3d3d47857cdd65b4b6d194ba", - "text": "Revised the kubelet API Authorization with new subresources that allow finer-grained authorization checks and access control for kubelet endpoints. Provided you enable the `KubeletFineGrainedAuthz` feature gate, you can access kubelet's `/healthz` endpoint by granting the caller `nodes/healthz` permission in RBAC. Similarly, you can access kubelet's `/pods` endpoint to fetch a list of Pods bound to that node by granting the caller `nodes/pods` permission in RBAC. Additionally, you can access kubelet's `/configz` endpoint to fetch its configuration by granting the caller `nodes/configz` permission in RBAC. Alternatively, granting `nodes/proxy` permission allows access to `/healthz`, `/pods`, and `/configz`, but also permits exec, run, and attach operations on containers on the nodes, violating the principle of least privilege.", - "markdown": "Revised the kubelet API Authorization with new subresources that allow finer-grained authorization checks and access control for kubelet endpoints. Provided you enable the `KubeletFineGrainedAuthz` feature gate, you can access kubelet's `/healthz` endpoint by granting the caller `nodes/healthz` permission in RBAC. Similarly, you can access kubelet's `/pods` endpoint to fetch a list of Pods bound to that node by granting the caller `nodes/pods` permission in RBAC. Additionally, you can access kubelet's `/configz` endpoint to fetch its configuration by granting the caller `nodes/configz` permission in RBAC. Alternatively, granting `nodes/proxy` permission allows access to `/healthz`, `/pods`, and `/configz`, but also permits exec, run, and attach operations on containers on the nodes, violating the principle of least privilege. ([#126347](https://github.com/kubernetes/kubernetes/pull/126347), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG API Machinery, Auth, Cluster Lifecycle, and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2862", - "type": "KEP" - } - ], - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126347", - "pr_number": 126347, - "areas": [ - "kubelet", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cluster-lifecycle", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true -}, -"126359": { - "commit": "f88281768c52a5729d1dccee16164b472e794922", - "text": "Fixed the estimated cost in CEL for expressions performing equality checks on IPs, CIDRs, Quantities, Formats, and URLs.", - "markdown": "Fixed the estimated cost in CEL for expressions performing equality checks on IPs, CIDRs, Quantities, Formats, and URLs. ([#126359](https://github.com/kubernetes/kubernetes/pull/126359), [@jpbetz](https://github.com/jpbetz))", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126359", - "pr_number": 126359, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true -}, -"126374": { - "commit": "fc64d2abb0004b824b712c6440231c574d8493c9", - "text": "kubeadm: promoted the feature gate `EtcdLearnerMode` to GA. Learner mode in etcd deployed by kubeadm is now locked to enabled by default.", - "markdown": "kubeadm: promoted the feature gate `EtcdLearnerMode` to GA. Learner mode in etcd deployed by kubeadm is now locked to enabled by default. ([#126374](https://github.com/kubernetes/kubernetes/pull/126374), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126374", - "pr_number": 126374, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true -}, -"126435": { - "commit": "a4ec0c039a87bce06f0ea88664d791c61b888978", - "text": "Device manager: stopped using annotations to pass CDI device info to runtimes. Containerd versions older than v1.7.2 do not support passing CDI info through CRI and need to be upgraded.", - "markdown": "Device manager: stopped using annotations to pass CDI device info to runtimes. Containerd versions older than v1.7.2 do not support passing CDI info through CRI and need to be upgraded. ([#126435](https://github.com/kubernetes/kubernetes/pull/126435), [@bart0sh](https://github.com/bart0sh)) [SIG Node]", - "author": "bart0sh", - "author_url": "https://github.com/bart0sh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126435", - "pr_number": 126435, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ] - }, - "126449": { - "commit": "046c098a459db6482d64b949bb48fc8253043256", - "text": "Upgraded coreDNS to v1.11.3.", - "markdown": "Upgraded coreDNS to v1.11.3. ([#126449](https://github.com/kubernetes/kubernetes/pull/126449), [@BenTheElder](https://github.com/BenTheElder)) [SIG Cloud Provider and Cluster Lifecycle]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126449", - "pr_number": 126449, - "areas": [ - "provider/gcp", - "kubeadm", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cloud-provider", - "cluster-lifecycle" - ], - "duplicate": true, - "is_mapped": true - }, - "126460": { - "commit": "bf4cf4d7790f9982919092ddf2b0141a4c171dee", - "text": "hostNetwork pods no longer depend on the PodIPs to be assigned to configure the defined hostAliases on the Pod", - "markdown": "HostNetwork pods no longer depend on the PodIPs to be assigned to configure the defined hostAliases on the Pod ([#126460](https://github.com/kubernetes/kubernetes/pull/126460), [@aojea](https://github.com/aojea)) [SIG Network, Node and Testing]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126460", - "pr_number": 126460, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "node", - "testing" - ], - "duplicate": true - }, - "126465": { - "commit": "e90364f45d78ebaf47d80215459e055bd67b5c9b", - "text": "ACTION REQUIRED for custom scheduler plugin developers:\n`PodEligibleToPreemptOthers` in the `preemption` interface gets `ctx` in the parameters.\nPlease change your plugins' implementation accordingly.", - "markdown": "ACTION REQUIRED for custom scheduler plugin developers:\n `PodEligibleToPreemptOthers` in the `preemption` interface gets `ctx` in the parameters.\n Please change your plugins' implementation accordingly. ([#126465](https://github.com/kubernetes/kubernetes/pull/126465), [@googs1025](https://github.com/googs1025)) [SIG Scheduling]", - "author": "googs1025", - "author_url": "https://github.com/googs1025", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126465", - "pr_number": 126465, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "action_required": true - }, - "126488": { - "commit": "7ee17ce9b7c2a22e63e2bbd79d48d3fe349a9386", - "text": "kubelet: use the CRI stats provider if `PodAndContainerStatsFromCRI` feature is enabled", - "markdown": "kubelet: use the CRI stats provider if `PodAndContainerStatsFromCRI` feature is enabled ([#126488](https://github.com/kubernetes/kubernetes/pull/126488), [@haircommander](https://github.com/haircommander)) [SIG Node]", - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126488", - "pr_number": 126488, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "126503": { - "commit": "31970d418ccae80c9c7e25e8c503035a79a53763", - "text": "Fake clientsets now use a common, generic implementation. The corresponding structs are now private; callers must use the corresponding constructors.", - "markdown": "Fake clientsets now use a common, generic implementation. The corresponding structs are now private; callers must use the corresponding constructors. ([#126503](https://github.com/kubernetes/kubernetes/pull/126503), [@skitt](https://github.com/skitt)) [SIG API Machinery, Architecture, Auth and Instrumentation]", - "author": "skitt", - "author_url": "https://github.com/skitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126503", - "pr_number": 126503, - "areas": [ - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "126512": { - "commit": "77737c3eb37afaadbf40ec499a58c1593c9c7382", - "text": "Included an additional resource labeltransformati in on_operations_total metric which could be used for resource specific validations for example handling of encryption config by the apiserver.", - "markdown": "Included an additional resource labeltransformati in on_operations_total metric which could be used for resource specific validations for example handling of encryption config by the apiserver. ([#126512](https://github.com/kubernetes/kubernetes/pull/126512), [@kmala](https://github.com/kmala)) [SIG API Machinery, Auth, Etcd and Testing]", - "author": "kmala", - "author_url": "https://github.com/kmala", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126512", - "pr_number": 126512, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "etcd", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "126529": { - "commit": "66dca4523e010180271dfd6c4d91023cba949b1f", - "text": "Added preemptionPolicy field when using `kubectl get PriorityClass -owide`", - "markdown": "Added preemptionPolicy field when using `kubectl get PriorityClass -owide` ([#126529](https://github.com/kubernetes/kubernetes/pull/126529), [@googs1025](https://github.com/googs1025)) [SIG CLI]", - "author": "googs1025", - "author_url": "https://github.com/googs1025", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126529", - "pr_number": 126529, - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "126532": { - "commit": "201bdaa2fe0f2af72c2f9880707a2ec13bcb63fc", - "text": "Fixed a race condition in the kube-proxy initialization that could cause UDP traffic to service VIP.", - "markdown": "Fixed a race condition in the kube-proxy initialization that could cause UDP traffic to service VIP. ([#126532](https://github.com/kubernetes/kubernetes/pull/126532), [@wedaly](https://github.com/wedaly))", - "author": "wedaly", - "author_url": "https://github.com/wedaly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126532", - "pr_number": 126532, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "126533": { - "commit": "602c70b65d49e0687026064edb8601087da00bd2", - "text": "Realigned line breaks from `kubectl explain` descriptions.", - "markdown": "Realigned line breaks from `kubectl explain` descriptions. ([#126533](https://github.com/kubernetes/kubernetes/pull/126533), [@ah8ad3](https://github.com/ah8ad3))", - "author": "ah8ad3", - "author_url": "https://github.com/ah8ad3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126533", - "pr_number": 126533, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "126538": { - "commit": "62cd87e8392c55cedf3b47f6b3203f0cb7dd483b", - "text": "kubeadm: added a validation warning when the certificateValidityPeriod is more than the caCertificateValidityPeriod", - "markdown": "kubeadm: added a validation warning when the certificateValidityPeriod is more than the caCertificateValidityPeriod ([#126538](https://github.com/kubernetes/kubernetes/pull/126538), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126538", - "pr_number": 126538, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "126543": { - "commit": "b73f84c9346f1e36640ff1cfa43cbc571def35b9", - "text": "Fixed a regression in default 1.29 configurations with the `SidecarContainers` feature enabled, where init containers may fail to start due to a temporary container runtime failure.", - "markdown": "Fixed a regression in default 1.29 configurations with the `SidecarContainers` feature enabled, where init containers may fail to start due to a temporary container runtime failure. ([#126543](https://github.com/kubernetes/kubernetes/pull/126543), [@gjkim42](https://github.com/gjkim42))", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126543", - "pr_number": 126543, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "126545": { - "commit": "6a478b4306ea9ae3b8f86bd1ef71072d9a03be22", - "text": "Updated an incorrect description of `persistentVolumeClaimRetentionPolicy`.", - "markdown": "Updated an incorrect description of `persistentVolumeClaimRetentionPolicy`. ([#126545](https://github.com/kubernetes/kubernetes/pull/126545), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG API Machinery, Apps, and CLI]", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126545", - "pr_number": 126545, - "areas": [ - "kubectl", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "cli" - ], - "duplicate": true, - "duplicate_kind": true - }, - "126553": { - "commit": "f26cf38a50bb38689b7674d228d004bff7a65899", - "text": "Disallow `k8s.io` and `kubernetes.io` namespaced extra keys in structured authentication configuration.", - "markdown": "Disallow `k8s.io` and `kubernetes.io` namespaced extra keys in structured authentication configuration. ([#126553](https://github.com/kubernetes/kubernetes/pull/126553), [@aramase](https://github.com/aramase)) [SIG Auth]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126553", - "pr_number": 126553, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "auth" - ], - "duplicate_kind": true - }, - "126561": { - "commit": "0ef48e611d81e926d5821bc769929eceba95a29e", - "text": "kube-proxy initialization waits for all pre-sync events from node and serviceCIDR informers to be delivered.", - "markdown": "kube-proxy initialization waits for all pre-sync events from node and serviceCIDR informers to be delivered. ([#126561](https://github.com/kubernetes/kubernetes/pull/126561), [@wedaly](https://github.com/wedaly)) [SIG Network]", - "author": "wedaly", - "author_url": "https://github.com/wedaly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126561", - "pr_number": 126561, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "126562": { - "commit": "c4a14d7ef5f338eb4b91288ff8f94191fc3e9730", - "text": "Fixed an issue in the kubelet where writable layers and read-only layers on different paths within the same mount caused incorrect detection of a split image filesystem.", - "markdown": "Fixed an issue in the kubelet where writable layers and read-only layers on different paths within the same mount caused incorrect detection of a split image filesystem. ([#126562](https://github.com/kubernetes/kubernetes/pull/126562), [@kannon92](https://github.com/kannon92))", - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126562", - "pr_number": 126562, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "126567": { - "commit": "8db6fc7e3fabc00f12be17d5a1623cba278d4b6b", - "text": "Enabled the kube-controller-manager '--concurrent-job-syncs' flag to work with orphan Pod processors.", - "markdown": "Enabled the kube-controller-manager `--concurrent-job-syncs` flag to work with orphan Pod processors. ([#126567](https://github.com/kubernetes/kubernetes/pull/126567), [@fusida](https://github.com/fusida)) [SIG Apps]", - "author": "fusida", - "author_url": "https://github.com/fusida", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126567", - "pr_number": 126567, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "126575": { - "commit": "83a13102284c975a057a54e02d42b25da946d7bc", - "text": "Reduced memory usage and allocations during volume attachment wait.", - "markdown": "Reduced memory usage and allocations during volume attachment wait. ([#126575](https://github.com/kubernetes/kubernetes/pull/126575), [@Lucaber](https://github.com/Lucaber)) [SIG Node and Storage]", - "author": "Lucaber", - "author_url": "https://github.com/Lucaber", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126575", - "pr_number": 126575, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node", - "storage" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "126590": { - "commit": "fd14955961ae9a8088935afd83bc19e9fed74648", - "text": "Updated cri-tools to v1.31.0.", - "markdown": "Updated cri-tools to v1.31.0. ([#126590](https://github.com/kubernetes/kubernetes/pull/126590), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider and Node]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126590", - "pr_number": 126590, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "node" - ], - "duplicate": true - }, - "126595": { - "commit": "24a74f887abb0a917f5f1e93c61d58224d319f96", - "text": "kubelet: add log and event for cgroup v2 with kernel older than 5.8.", - "markdown": "kubelet: add log and event for cgroup v2 with kernel older than 5.8. ([#126595](https://github.com/kubernetes/kubernetes/pull/126595), [@pacoxu](https://github.com/pacoxu)) [SIG Node]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126595", - "pr_number": 126595, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true - }, - "126596": { - "commit": "e1b1d4ac7ba6afbf98e2874b1b681057c0ab5ac9", - "text": "kubeadm: don't warn if `crictl` binary does not exist since kubeadm does not rely on `crictl` since v1.31.", - "markdown": "kubeadm: don't warn if the `crictl` binary does not exist since kubeadm does not rely on `crictl` since v1.31. ([#126596](https://github.com/kubernetes/kubernetes/pull/126596), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cluster Lifecycle]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126596", - "pr_number": 126596, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "126600": { - "commit": "5c14a5779551f678dbb89e9ce2346b9aa5e81d87", - "text": "Use allocatedResources on PVC for node expansion in kubelet.", - "markdown": "Use allocatedResources on PVC for node expansion in kubelet. ([#126600](https://github.com/kubernetes/kubernetes/pull/126600), [@gnufied](https://github.com/gnufied)) [SIG Node, Storage, and Testing]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126600", - "pr_number": 126600, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "storage", - "testing" - ], - "duplicate": true - }, - "126610": { - "commit": "a8fb2cefbb39d59fce32e4cf4892622c19fce53b", - "text": "NONE", - "markdown": "NONE ([#126610](https://github.com/kubernetes/kubernetes/pull/126610), [@liyuerich](https://github.com/liyuerich)) [SIG Cluster Lifecycle]", - "author": "liyuerich", - "author_url": "https://github.com/liyuerich", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126610", - "pr_number": 126610, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "do_not_publish": true - }, - "126620": { - "commit": "2c4a863bf9b3f0d290a3f21bf7fe57d9f15a39b5", - "text": "Fixed the bug of `InPlacePodVerticalScaling` state un-marshalling. State stored in `/var/lib/kubelet/pod_status_manager_state` now can always be read back after kubelet restart. Since the checkpoint format was changed to fix the issue, if you are using the feature `InPlacePodVerticalScaling`, please clean up the state file `/var/lib/kubelet/pod_status_manager_state` when upgrading the kubelet as failure to do it will lead to incompatible state formats and kubelet's failure to start.", - "markdown": "Fixed the bug of `InPlacePodVerticalScaling` state un-marshalling. State stored in `/var/lib/kubelet/pod_status_manager_state` now can always be read back after kubelet restart. Since the checkpoint format was changed to fix the issue, if you are using the feature `InPlacePodVerticalScaling`, please clean up the state file `/var/lib/kubelet/pod_status_manager_state` when upgrading the kubelet as failure to do it will lead to incompatible state formats and kubelet's failure to start. ([#126620](https://github.com/kubernetes/kubernetes/pull/126620), [@yunwang0911](https://github.com/yunwang0911))", - "author": "yunwang0911", - "author_url": "https://github.com/yunwang0911", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126620", - "pr_number": 126620, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "action_required": true, - "is_mapped": true - }, - "126627": { - "commit": "26f399921f639df8bda16d365e9c632561ccc6de", - "text": "Short-circuit if the compaction request from apiserver is disabled.", - "markdown": "Short-circuit if the compaction request from apiserver is disabled. ([#126627](https://github.com/kubernetes/kubernetes/pull/126627), [@fusida](https://github.com/fusida)) [SIG Etcd]", - "author": "fusida", - "author_url": "https://github.com/fusida", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126627", - "pr_number": 126627, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "etcd" - ] - }, - "126644": { - "commit": "03e81540633ef6c7fcea152fa7d8f56617998070", - "text": "Fixed a scheduler preemption issue where the victim pod was not deleted due to incorrect status patching. This issue occurred when the preemptor and victim pods had different QoS classes in their status, causing the preemption to fail entirely.", - "markdown": "Fixed a scheduler preemption issue where the victim pod was not deleted due to incorrect status patching. This issue occurred when the preemptor and victim pods had different QoS classes in their status, causing the preemption to fail entirely. ([#126644](https://github.com/kubernetes/kubernetes/pull/126644), [@Huang-Wei](https://github.com/Huang-Wei))", - "author": "Huang-Wei", - "author_url": "https://github.com/Huang-Wei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126644", - "pr_number": 126644, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "126645": { - "commit": "7b80cdb66a390f225d23cd612950144e3a39d1ae", - "text": "Removed generally available feature gate `ValidatingAdmissionPolicy`.", - "markdown": "Removed generally available feature gate `ValidatingAdmissionPolicy`. ([#126645](https://github.com/kubernetes/kubernetes/pull/126645), [@cici37](https://github.com/cici37)) [SIG API Machinery, Auth, and Testing]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126645", - "pr_number": 126645, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true - }, - "126652": { - "commit": "c999f9d828009f0a535237aca74ce2e5f6a8088c", - "text": "Discarded the output streams of the destination path check in `kubectl cp` when copying from local to pod and added a 3-second timeout to this check.", - "markdown": "Discarded the output streams of the destination path check in `kubectl cp` when copying from local to pod and added a 3-second timeout to this check. ([#126652](https://github.com/kubernetes/kubernetes/pull/126652), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI]", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126652", - "pr_number": 126652, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "126653": { - "commit": "1dd81aa1c9505446de6a9779a9286295c3efcddc", - "text": "Fixed a bug where the pod(with regular init containers)'s phase was not pending when the regular init container had not finished running after a node restart.", - "markdown": "Fixed a bug where the pod(with regular init containers)'s phase was not pending when the regular init container had not finished running after a node restart. ([#126653](https://github.com/kubernetes/kubernetes/pull/126653), [@zhifei92](https://github.com/zhifei92)) [SIG Node and Testing]", - "author": "zhifei92", - "author_url": "https://github.com/zhifei92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126653", - "pr_number": 126653, - "areas": [ - "test", - "kubelet", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "126665": { - "commit": "69dbf2eee96f1c95c097370ddcb1d5c30f86bec8", - "text": "kube-apiserver: fixed a 1.31 regression that stopped honoring build ID overrides with the `--version` flag.", - "markdown": "kube-apiserver: fixed a 1.31 regression that stopped honoring build ID overrides with the `--version` flag. ([#126665](https://github.com/kubernetes/kubernetes/pull/126665), [@liggitt](https://github.com/liggitt)) [SIG API Machinery]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126665", - "pr_number": 126665, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "126671": { - "commit": "fa75c8c7491ed10beff187d60fe60b0db8416ff7", - "text": "Apiserver repair controller is resilient to etcd errors during bootstrap and retries for 30 seconds before failing.", - "markdown": "Apiserver repair controller is resilient to etcd errors during bootstrap and retries for 30 seconds before failing. ([#126671](https://github.com/kubernetes/kubernetes/pull/126671), [@fusida](https://github.com/fusida)) [SIG Network]", - "author": "fusida", - "author_url": "https://github.com/fusida", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126671", - "pr_number": 126671, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ] - }, - "126698": { - "commit": "cd5f2083155bed7006b218ade85b584d53dfaae8", - "text": "Removed the `KMSv2` and `KMSv2KDF` feature gates. The associated features graduated to stable in the Kubernetes v1.29 release.", - "markdown": "Removed the `KMSv2` and `KMSv2KDF` feature gates. The associated features graduated to stable in Kubernetes v1.29 release. ([#126698](https://github.com/kubernetes/kubernetes/pull/126698), [@enj](https://github.com/enj)) [SIG API Machinery, Auth, and Testing]", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126698", - "pr_number": 126698, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true - }, - "126706": { - "commit": "ab26ad095029eb46ca2e938ac3a16cb6f164e657", - "text": "Fixed an issue where kubectl did not print the image volume when running `kubectl describe` on a pod with that volume.", - "markdown": "Fixed an issue where `kubectl` did not print the image volume when running `kubectl describe` on a pod with that volume. ([#126706](https://github.com/kubernetes/kubernetes/pull/126706), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4639", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126706", - "pr_number": 126706, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "126720": { - "commit": "29f96c32dd176fefbfee118682dafceedfcf6dfb", - "text": "Reverted the `DisableNodeKubeProxyVersion` feature gate to `default-off` to provide a full year from the deprecation announcement in v1.29, in accordance with the [Kubernetes deprecation policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/).", - "markdown": "Reverted the `DisableNodeKubeProxyVersion` feature gate to `default-off` to provide a full year from the deprecation announcement in v1.29, in accordance with the [Kubernetes deprecation policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/). ([#126720](https://github.com/kubernetes/kubernetes/pull/126720), [@liggitt](https://github.com/liggitt)) [SIG Architecture and Node]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126720", - "pr_number": 126720, - "areas": [ - "kubelet" - ], - "kinds": [ - "deprecation" - ], - "sigs": [ - "architecture", - "node" - ], - "duplicate": true - }, - "126727": { - "commit": "45804907d2025747452ac2573a60d330cc930a49", - "text": "Fixed the fake client to accept requests without `metadata.name` to better emulate the behavior of the actual client.", - "markdown": "Fixed the fake client to accept requests without `metadata.name` to better emulate the behavior of the actual client. ([#126727](https://github.com/kubernetes/kubernetes/pull/126727), [@jpbetz](https://github.com/jpbetz))", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126727", - "pr_number": 126727, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "126733": { - "commit": "df66ee6a3d148726823021e50b03a537a7a1d440", - "text": "If an old pod spec has used an image volume source, we must allow it when updating the resource, even if the `ImageVolume` feature gate is disabled.", - "markdown": "If an old pod spec has used an image volume source, we must allow it when updating the resource, even if the `ImageVolume` feature gate is disabled. ([#126733](https://github.com/kubernetes/kubernetes/pull/126733), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, and Node]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126733", - "pr_number": 126733, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "apps", - "node" - ], - "duplicate": true - }, - "126740": { - "commit": "2f3e7f515f16d46c1ec7ab61d8d214986e157d09", - "text": "kubeadm: allow mixing the `--config` flag with the special `--print-manifest` flag in the subphases of 'kubeadm init phase addon'.", - "markdown": "kubeadm: allow mixing the `--config` flag with the special `--print-manifest` flag in the subphases of `kubeadm init phase addon`. ([#126740](https://github.com/kubernetes/kubernetes/pull/126740), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126740", - "pr_number": 126740, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "126743": { - "commit": "385fd21d92d1e598f9ca6b68ccd1b6c5b2797f3e", - "text": "kubeadm: ensure that extra environment variables written to a kubeadm-managed PodSpec are sorted alphanumerically by the environment variable name.", - "markdown": "kubeadm: ensure that extra environment variables written to a kubeadm-managed PodSpec are sorted alphanumerically by the environment variable name. ([#126743](https://github.com/kubernetes/kubernetes/pull/126743), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126743", - "pr_number": 126743, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "126745": { - "commit": "fd7642cfe48c00336725322fbe7ea6ff546f8115", - "text": "Improved the scalability of the PVC Protection Controller by batch-processing PVCs by namespace and implementing lazy live pod listing.", - "markdown": "Improved the scalability of the PVC Protection Controller by batch-processing PVCs by namespace and implementing lazy live pod listing. ([#126745](https://github.com/kubernetes/kubernetes/pull/126745), [@hungnguyen243](https://github.com/hungnguyen243)) [SIG Apps, Storage and Testing]", - "author": "hungnguyen243", - "author_url": "https://github.com/hungnguyen243", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126745", - "pr_number": 126745, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "126749": { - "commit": "572c0a10f984d8c8977c061c108118f50ae57ca7", - "text": "The resource/v1alpha3.ResourceSliceList filed which should have been named \"metadata\" but was instead named \"listMeta\" is now properly \"metadata\".", - "markdown": "The resource/v1alpha3.ResourceSliceList filed which should have been named \"metadata\" but was instead named \"listMeta\" is now properly \"metadata\". ([#126749](https://github.com/kubernetes/kubernetes/pull/126749), [@thockin](https://github.com/thockin)) [SIG API Machinery]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126749", - "pr_number": 126749, - "areas": [ - "api", - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "126762": { - "commit": "963ebd8bd8c0f2c432b349f0837ab116a4dfe71e", - "text": "Unallowed label values will show up as \"unexpected\" in scheduler metrics.", - "markdown": "Unallowed label values will show up as \"unexpected\" in scheduler metrics. ([#126762](https://github.com/kubernetes/kubernetes/pull/126762), [@richabanker](https://github.com/richabanker)) [SIG Instrumentation and Scheduling]", - "author": "richabanker", - "author_url": "https://github.com/richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126762", - "pr_number": 126762, - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "scheduling" - ], - "feature": true, - "duplicate": true - }, - "126769": { - "commit": "6ca629d46b1267a1b8b03416edcaa8832ffc62a8", - "text": "kube-proxy uses field-selector clusterIP!=None on Services to avoid watching for Headless Services, reduce unnecessary network bandwidth", - "markdown": "kube-proxy uses field-selector clusterIP!=None on Services to avoid watching for Headless Services, reduce unnecessary network bandwidth ([#126769](https://github.com/kubernetes/kubernetes/pull/126769), [@Sakuralbj](https://github.com/Sakuralbj)) [SIG Network]", - "author": "Sakuralbj", - "author_url": "https://github.com/Sakuralbj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126769", - "pr_number": 126769, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true - }, - "126773": { - "commit": "352e33e040d0df758935b5152fbc50675f9c334c", - "text": "Fixed a warning message about the gce in-tree cloud provider state.", - "markdown": "Fixed a warning message about the gce in-tree cloud provider state. ([#126773](https://github.com/kubernetes/kubernetes/pull/126773), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126773", - "pr_number": 126773, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "is_mapped": true - }, - "126775": { - "commit": "3fd267776a4076a7ffebf0cfef69939800cf499d", - "text": "Removed generally available feature gate `NewVolumeManagerReconstruction`.", - "markdown": "Removed generally available feature gate `NewVolumeManagerReconstruction`. ([#126775](https://github.com/kubernetes/kubernetes/pull/126775), [@carlory](https://github.com/carlory)) [SIG Node and Storage]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126775", - "pr_number": 126775, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "storage" - ], - "duplicate": true - }, - "126776": { - "commit": "769695a218858682def602b980ff4113c0a0acf3", - "text": "kubeadm: increased the verbosity of API client dry-run actions during the subcommands \"init\", \"join\", \"upgrade\" and \"reset\". It also allowed dry-run on 'kubeadm join' even if there was no existing cluster by utilizing a faked, in-memory cluster-info ConfigMap.", - "markdown": "kubeadm: increased the verbosity of API client dry-run actions during the subcommands \"init\", \"join\", \"upgrade\" and \"reset\". It also allowed dry-run on 'kubeadm join' even if there was no existing cluster by utilizing a faked, in-memory cluster-info ConfigMap. ([#126776](https://github.com/kubernetes/kubernetes/pull/126776), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126776", - "pr_number": 126776, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "126784": { - "commit": "e5e1b312a7c51696779b31d10c1ec0ab07583b69", - "text": "Clarified the kube-controller-manager documentation for `--allocate-node-cidrs`, `--cluster-cidr`, and `--service-cluster-ip-range` flags to accurately reflect their dependencies and usage conditions.", - "markdown": "Clarified the kube-controller-manager documentation for `--allocate-node-cidrs`, `--cluster-cidr`, and `--service-cluster-ip-range` flags to accurately reflect their dependencies and usage conditions. ([#126784](https://github.com/kubernetes/kubernetes/pull/126784), [@eminwux](https://github.com/eminwux)) [SIG API Machinery, Cloud Provider and Docs]", - "author": "eminwux", - "author_url": "https://github.com/eminwux", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126784", - "pr_number": 126784, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "docs" - ], - "duplicate": true - }, - "126786": { - "commit": "ed373709d839b9410a2e410558f5e6bf2ba0e7b0", - "text": "Feature gate \"AllowServiceLBStatusOnNonLB\" has been removed. This gate has been stable and unchanged for over a year.", - "markdown": "Feature gate \"AllowServiceLBStatusOnNonLB\" has been removed. This gate has been stable and unchanged for over a year. ([#126786](https://github.com/kubernetes/kubernetes/pull/126786), [@thockin](https://github.com/thockin)) [SIG Apps]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126786", - "pr_number": 126786, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ] - }, - "126806": { - "commit": "b5e64567958aae5c2e5befae000d3186384c151b", - "text": "1. When the kubelet constructs the CRI mounts for the container which references an `image` volume source type, it passes the missing mount attributes to the CRI implementation, including `readOnly`, `propagation`, and `recursiveReadOnly`. When the readOnly field of the containerMount is explicitly set to false, the kubelet will now take the `readOnly`as true to the CRI implementation because the image volume plugin requires the mount to be read-only. \n2. Fixed a bug where the pod is unexpectedly running when the `image` volume source type is used and mounted to `/etc/hosts` in the container.", - "markdown": "1. When the kubelet constructs the CRI mounts for the container which references an `image` volume source type, it passes the missing mount attributes to the CRI implementation, including `readOnly`, `propagation`, and `recursiveReadOnly`. When the readOnly field of the containerMount is explicitly set to false, the kubelet will now take the `readOnly`as true to the CRI implementation because the image volume plugin requires the mount to be read-only. \n 2. Fixed a bug where the pod is unexpectedly running when the `image` volume source type is used and mounted to `/etc/hosts` in the container. ([#126806](https://github.com/kubernetes/kubernetes/pull/126806), [@carlory](https://github.com/carlory)) [SIG Node and Storage]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126806", - "pr_number": 126806, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "storage" - ], - "duplicate": true, - "is_mapped": true - }, - "126807": { - "commit": "b1559c66ca56a06b125965365c727f895cfa5ddc", - "text": "DRA: when a DRA driver was started after creating pods which need resources from that driver, no additional attempt was made to schedule such unschedulable pods again. Only affected DRA with structured parameters.", - "markdown": "DRA: when a DRA driver was started after creating pods which need resources from that driver, no additional attempt was made to schedule such unschedulable pods again. Only affected DRA with structured parameters. ([#126807](https://github.com/kubernetes/kubernetes/pull/126807), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126807", - "pr_number": 126807, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "scheduling", - "testing" - ], - "duplicate": true - }, - "126809": { - "commit": "8819dfb639706bc3ce87cdd902ef685677c221a5", - "text": "Fixed: dynamic client-go can now handle subresources with an UnstructuredList response", - "markdown": "Fixed: dynamic client-go can now handle subresources with an UnstructuredList response ([#126809](https://github.com/kubernetes/kubernetes/pull/126809), [@ryantxu](https://github.com/ryantxu)) [SIG API Machinery]", - "author": "ryantxu", - "author_url": "https://github.com/ryantxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126809", - "pr_number": 126809, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "126839": { - "commit": "b67d4dd389076ee1c6d12c7a41571d0b609f39ec", - "text": "Removed generally available feature gate `LegacyServiceAccountTokenCleanUp`.", - "markdown": "Removed generally available feature gate `LegacyServiceAccountTokenCleanUp`. ([#126839](https://github.com/kubernetes/kubernetes/pull/126839), [@carlory](https://github.com/carlory)) [SIG Auth]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126839", - "pr_number": 126839, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth" - ] - }, - "126840": { - "commit": "243fdafc6824d6b33faa081efec2ebc4cb164010", - "text": "Removed generally available feature gate `CloudDualStackNodeIPs`.", - "markdown": "Removed generally available feature gate `CloudDualStackNodeIPs`. ([#126840](https://github.com/kubernetes/kubernetes/pull/126840), [@carlory](https://github.com/carlory)) [SIG API Machinery and Cloud Provider]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126840", - "pr_number": 126840, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "duplicate": true - }, - "126841": { - "commit": "850bfd9aa92423696dbb6de2070ab7494fdd99b1", - "text": "Removed the generally available feature gate `StableLoadBalancerNodeSet`.", - "markdown": "Removed the generally available feature gate `StableLoadBalancerNodeSet`. ([#126841](https://github.com/kubernetes/kubernetes/pull/126841), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider, and Network]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126841", - "pr_number": 126841, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "network" - ], - "duplicate": true - }, - "126847": { - "commit": "b83ec12c4337261156e4cda4d2f771d4db57ed96", - "text": "kube-proxy will no longer depend on the conntrack binary for stale UDP connections cleanup.", - "markdown": "kube-proxy will no longer depend on the conntrack binary for stale UDP connections cleanup. ([#126847](https://github.com/kubernetes/kubernetes/pull/126847), [@aroradaman](https://github.com/aroradaman)) [SIG Cluster Lifecycle, Network, and Testing]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126847", - "pr_number": 126847, - "areas": [ - "test", - "kube-proxy", - "kubeadm", - "ipvs", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle", - "network", - "testing" - ], - "duplicate": true - }, - "126851": { - "commit": "44ce613173770aaeac6777a22059398096fb17c6", - "text": "Upgraded github.com/coredns/corefile-migration to v1.0.24.", - "markdown": "Upgraded github.com/coredns/corefile-migration to v1.0.24. ([#126851](https://github.com/kubernetes/kubernetes/pull/126851), [@BenTheElder](https://github.com/BenTheElder)) [SIG Architecture and Cluster Lifecycle]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126851", - "pr_number": 126851, - "areas": [ - "dependency", - "code-organization" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture", - "cluster-lifecycle" - ], - "duplicate": true, - "is_mapped": true - }, - "126862": { - "commit": "f56db61db50595619dfb19ae62d33f4b37322cf8", - "text": "Removed generally available feature gate `HPAContainerMetrics`", - "markdown": "Removed generally available feature gate `HPAContainerMetrics` ([#126862](https://github.com/kubernetes/kubernetes/pull/126862), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Autoscaling]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126862", - "pr_number": 126862, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "autoscaling" - ], - "duplicate": true, - "duplicate_kind": true - }, - "126863": { - "commit": "8e4d638e3172bf1a3ad914d205bd76348d6e3b5b", - "text": "Removed generally available feature gate `MinDomainsInPodTopologySpread`", - "markdown": "Removed generally available feature gate `MinDomainsInPodTopologySpread` ([#126863](https://github.com/kubernetes/kubernetes/pull/126863), [@carlory](https://github.com/carlory)) [SIG Scheduling]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126863", - "pr_number": 126863, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ] - }, - "126894": { - "commit": "6a1a6fd85fb80fd9c4b3f823741853822a4270db", - "text": "Removed generally available feature-gate `ZeroLimitedNominalConcurrencyShares`", - "markdown": "Removed generally available feature-gate `ZeroLimitedNominalConcurrencyShares` ([#126894](https://github.com/kubernetes/kubernetes/pull/126894), [@carlory](https://github.com/carlory)) [SIG API Machinery]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126894", - "pr_number": 126894, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "126897": { - "commit": "f1e447b9d32ac325074380d239370cde02a6dbf7", - "text": "Promoted the `RelaxedEnvironmentVariableValidation` feature gate to beta and is enabled by default.", - "markdown": "Promoted the `RelaxedEnvironmentVariableValidation` feature gate to beta and is enabled by default. ([#126897](https://github.com/kubernetes/kubernetes/pull/126897), [@HirazawaUi](https://github.com/HirazawaUi))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4369-allow-special-characters-environment-variable", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126897", - "pr_number": 126897, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "126913": { - "commit": "7436ca32bc766ff202109a7541d2e7bb41ee7d13", - "text": "kubeadm: removed the deprecated sub-phase of 'init kubelet-finilize' called `experimental-cert-rotation`, and use 'enable-client-cert-rotation' instead.", - "markdown": "kubeadm: removed the deprecated sub-phase of 'init kubelet-finilize' called `experimental-cert-rotation`, and use 'enable-client-cert-rotation' instead. ([#126913](https://github.com/kubernetes/kubernetes/pull/126913), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126913", - "pr_number": 126913, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "126914": { - "commit": "e9c9a27c97634c433dd9dad1118a98b7e4d519f8", - "text": "kubeadm: removed the deprecated flag '--experimental-output'; please use the flag '--output' instead, as it serves the same purpose. Affected commands are: \"kubeadm config images list\", \"kubeadm token list\", \"kubeadm upgrade plan\", \"kubeadm certs check-expiration\".", - "markdown": "kubeadm: removed the deprecated flag '--experimental-output'; please use the flag '--output' instead, as it serves the same purpose. Affected commands are: \"kubeadm config images list\", \"kubeadm token list\", \"kubeadm upgrade plan\", \"kubeadm certs check-expiration\". ([#126914](https://github.com/kubernetes/kubernetes/pull/126914), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126914", - "pr_number": 126914, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "126924": { - "commit": "65bc7c0c1ac4e67e5cc8560427dde3a5ba7e62ba", - "text": "Removed attachable volume limits from the capacity of the node for the following volume types when the kubelet was started, affecting the following volume types when the corresponding CSI driver was installed:\n- `awsElasticBlockStore` for `ebs.csi.aws.com`\n- `azureDisk` for `disk.csi.azure.com`\n- `gcePersistentDisk` for `pd.csi.storage.googleapis.com`\n- `cinder` for `cinder.csi.openstack.org`\n- `csi`\nHowever, it was still enforced using a limit in CSINode objects.", - "markdown": "Removed attachable volume limits from the capacity of the node for the following volume types when the kubelet was started, affecting the following volume types when the corresponding CSI driver was installed:\n - `awsElasticBlockStore` for `ebs.csi.aws.com`\n - `azureDisk` for `disk.csi.azure.com`\n - `gcePersistentDisk` for `pd.csi.storage.googleapis.com`\n - `cinder` for `cinder.csi.openstack.org`\n - `csi`\nHowever, it was still enforced using a limit in CSINode objects. ([#126924](https://github.com/kubernetes/kubernetes/pull/126924), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126924", - "pr_number": 126924, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true, - "is_mapped": true - }, - "126930": { - "commit": "95b3fe9f15cdcaf98098be398478e70365b12dd7", - "text": "Fixed an issue where requests sent by the KMSv2 service were being rejected due to having an invalid authority header.", - "markdown": "Fixed an issue where requests sent by the KMSv2 service were being rejected due to having an invalid authority header. ([#126930](https://github.com/kubernetes/kubernetes/pull/126930), [@Ruddickmg](https://github.com/Ruddickmg)) [SIG API Machinery and Auth]", - "author": "Ruddickmg", - "author_url": "https://github.com/Ruddickmg", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126930", - "pr_number": 126930, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true - }, - "126945": { - "commit": "85384fe273c97e07f6f7f073768d1d51452e6675", - "text": "kubeadm: switched the kube-scheduler static Pod to use the endpoints /livez (for startup and liveness probes) and /readyz (for the readiness probe). Previously, /healthz was used for all probes, which is deprecated behavior for this component.", - "markdown": "kubeadm: switched the kube-scheduler static Pod to use the endpoints /livez (for startup and liveness probes) and /readyz (for the readiness probe). Previously, /healthz was used for all probes, which is deprecated behavior for this component. ([#126945](https://github.com/kubernetes/kubernetes/pull/126945), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG Cluster Lifecycle]", - "author": "liangyuanpeng", - "author_url": "https://github.com/liangyuanpeng", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126945", - "pr_number": 126945, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "126953": { - "commit": "6568b4bdb39b17105cd31b32899f687a346ce3d7", - "text": "kubeadm: removed the preflight check for the existence of the conntrack binary, as conntrack is no longer a kube-proxy dependency in version 1.32 and newer.", - "markdown": "kubeadm: removed the preflight check for the existence of the conntrack binary, as conntrack is no longer a kube-proxy dependency in version 1.32 and newer. ([#126953](https://github.com/kubernetes/kubernetes/pull/126953), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126953", - "pr_number": 126953, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "126957": { - "commit": "3d65369f346d359bcabdc7f04addff5fdb2f194a", - "text": "Fixed a kubelet and kube-apiserver memory leak in default 1.29 configurations related to tracing.", - "markdown": "Fixed a kubelet and kube-apiserver memory leak in default 1.29 configurations related to tracing. ([#126957](https://github.com/kubernetes/kubernetes/pull/126957), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Architecture, Instrumentation and Node]", - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126957", - "pr_number": 126957, - "areas": [ - "kubelet", - "apiserver", - "dependency" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "architecture", - "instrumentation", - "node" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "126961": { - "commit": "e74205b08ad15a2674d1fbaaed98469e882858c7", - "text": "The CSI volume plugin stopped watching the VolumeAttachment object if the object is not found or the volume is not attached when kubelet waits for a volume to be attached. In the past, it would fail due to missing permissions.", - "markdown": "The CSI volume plugin stopped watching the VolumeAttachment object if the object is not found or the volume is not attached when kubelet waits for a volume to be attached. In the past, it would fail due to missing permissions. ([#126961](https://github.com/kubernetes/kubernetes/pull/126961), [@carlory](https://github.com/carlory)) [SIG Storage]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126961", - "pr_number": 126961, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "126962": { - "commit": "f12334be0353b4994aae48256adb563050b951db", - "text": "Fixed a possible memory leak in the QueueingHint (alpha feature).", - "markdown": "Fixed a possible memory leak in the QueueingHint (alpha feature). ([#126962](https://github.com/kubernetes/kubernetes/pull/126962), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126962", - "pr_number": 126962, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "126966": { - "commit": "4aca09bc0c45acc69cfdb425d1eea8818eee04d9", - "text": "Updated cni-plugins to [v1.5.1](https://github.com/containernetworking/plugins/releases/tag/v1.5.1).", - "markdown": "Updated cni-plugins to [v1.5.1](https://github.com/containernetworking/plugins/releases/tag/v1.5.1). ([#126966](https://github.com/kubernetes/kubernetes/pull/126966), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126966", - "pr_number": 126966, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "node", - "testing" - ], - "duplicate": true - }, - "126976": { - "commit": "14f2cab4deae393d5beb9f3ab66a31147feb8030", - "text": "Fixed a 1.31 regression starting kubelet on Windows: Reverted \"fix: handle socket file detection on Windows\".", - "markdown": "Fixed a 1.31 regression starting kubelet on Windows: Reverted \"fix: handle socket file detection on Windows\". ([#126976](https://github.com/kubernetes/kubernetes/pull/126976), [@jsturtevant](https://github.com/jsturtevant))", - "author": "jsturtevant", - "author_url": "https://github.com/jsturtevant", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126976", - "pr_number": 126976, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "126977": { - "commit": "920e9e34b07d0930a28b192b5cdc912e79d8562b", - "text": "To enhance usability and developer experience, CRD validation rules now support the direct use of (CEL) reserved keywords as field names in object validation expressions. The name format CEL library is supported in new expressions.", - "markdown": "To enhance usability and developer experience, CRD validation rules now support the direct use of (CEL) reserved keywords as field names in object validation expressions. The name format CEL library is supported in new expressions. ([#126977](https://github.com/kubernetes/kubernetes/pull/126977), [@aaron-prindle](https://github.com/aaron-prindle)) [SIG API Machinery, Architecture, Auth, Etcd, Instrumentation, Release, Scheduling and Testing]", - "author": "aaron-prindle", - "author_url": "https://github.com/aaron-prindle", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126977", - "pr_number": 126977, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "etcd", - "instrumentation", - "release", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "126981": { - "commit": "685b8b3ba17addf5a2ab5b452411c8be7d1e5dfd", - "text": "Promoted `SizeMemoryBackedVolumes` to stable.", - "markdown": "Promoted `SizeMemoryBackedVolumes` to stable. ([#126981](https://github.com/kubernetes/kubernetes/pull/126981), [@kannon92](https://github.com/kannon92)) [SIG Node, Storage and Testing]", - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126981", - "pr_number": 126981, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "126995": { - "commit": "e95441591235032994666ff91cfcd77a13d8c7b2", - "text": "Changed the percentage marker in `kubectl top node` from `%` to `(%)`.", - "markdown": "Changed the percentage marker in `kubectl top node` from `%` to `(%)` ([#126995](https://github.com/kubernetes/kubernetes/pull/126995), [@googs1025](https://github.com/googs1025)) [SIG CLI]", - "author": "googs1025", - "author_url": "https://github.com/googs1025", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126995", - "pr_number": 126995, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "126996": { - "commit": "ae35048cb0b9b177891aab41346b6d6cc504582f", - "text": "If a client makes an API streaming request and specifies an `application/json;as=Table` content type, the API server now responds with a 406 (Not Acceptable) error. This change helps to ensure that unsupported formats, such as `Table` representations, are correctly rejected.", - "markdown": "If a client makes an API streaming request and specifies an `application/json;as=Table` content type, the API server now responds with a 406 (Not Acceptable) error. This change helps to ensure that unsupported formats, such as `Table` representations, are correctly rejected. ([#126996](https://github.com/kubernetes/kubernetes/pull/126996), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126996", - "pr_number": 126996, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "126997": { - "commit": "f0f7ff989a948389247e628c4c5a43e915f51daa", - "text": "Optimized the code by filtering out empty strings for podUID when calling the `getPodAndContainerForDevice` method.", - "markdown": "Optimized the code by filtering out empty strings for podUID when calling the `getPodAndContainerForDevice` method. ([#126997](https://github.com/kubernetes/kubernetes/pull/126997), [@lengrongfu](https://github.com/lengrongfu))", - "author": "lengrongfu", - "author_url": "https://github.com/lengrongfu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126997", - "pr_number": 126997, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "126999": { - "commit": "9e597655855771bd241508fab4501ac099e29f16", - "text": "client-go/rest: contextual logging of request/response with accurate source code location of the caller", - "markdown": "Client-go/rest: contextual logging of request/response with accurate source code location of the caller ([#126999](https://github.com/kubernetes/kubernetes/pull/126999), [@pohly](https://github.com/pohly)) [SIG API Machinery and Instrumentation]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126999", - "pr_number": 126999, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true - }, - "127001": { - "commit": "ed75e55c44f7bfbcf93757b86ae57eaceb06245a", - "text": "applyconfiguration-gen no longer generates duplicate methods and ambiguous member accesses when types end up with multiple members of the same name (through embedded structs).", - "markdown": "Applyconfiguration-gen no longer generates duplicate methods and ambiguous member accesses when types end up with multiple members of the same name (through embedded structs). ([#127001](https://github.com/kubernetes/kubernetes/pull/127001), [@skitt](https://github.com/skitt)) [SIG API Machinery]", - "author": "skitt", - "author_url": "https://github.com/skitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127001", - "pr_number": 127001, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "127008": { - "commit": "494f0b5d479eae2ed7e79dfc1cc34ffe95790c8d", - "text": "The Aggregated Discovery v2beta1 fixture has been removed in `./api/discovery`. Please use v2", - "markdown": "The Aggregated Discovery v2beta1 fixture has been removed in `./api/discovery`. Please use v2 ([#127008](https://github.com/kubernetes/kubernetes/pull/127008), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127008", - "pr_number": 127008, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "127009": { - "commit": "8b664fd41431aed4c69e3d6e76a2f25b84cb9a32", - "text": "Graduated the AnonymousAuthConfigurableEndpoints feature gate to beta and enable it by default to allow configurable endpoints for anonymous authentication.", - "markdown": "Graduated the AnonymousAuthConfigurableEndpoints feature gate to beta and enable it by default to allow configurable endpoints for anonymous authentication. ([#127009](https://github.com/kubernetes/kubernetes/pull/127009), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Auth]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4633", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/reference/access-authn-authz/authentication/#anonymous-authenticator-configuration", - "type": "official" - } - ], - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127009", - "pr_number": 127009, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true - }, - "127010": { - "commit": "c3cb89ebb08e8c28eb3a3dc4baeb3a5117dbbea0", - "text": "JWT authenticators now set the `jti` claim (if present and is a string value) as the credential ID for use by audit logging.", - "markdown": "JWT authenticators now set the `jti` claim (if present and is a string value) as the credential ID for use by audit logging. ([#127010](https://github.com/kubernetes/kubernetes/pull/127010), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127010", - "pr_number": 127010, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true - }, - "127012": { - "commit": "81ebfb3d0c6194c80aa8656c06ab6fcc64535e99", - "text": "Bookmark events are now sent immediately after all items in the watchCache store have been processed, improving consistency in client behavior.", - "markdown": "Bookmark events are now sent immediately after all items in the watchCache store have been processed, improving consistency in client behavior. ([#127012](https://github.com/kubernetes/kubernetes/pull/127012), [@Chaunceyctx](https://github.com/Chaunceyctx))", - "author": "Chaunceyctx", - "author_url": "https://github.com/Chaunceyctx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127012", - "pr_number": 127012, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "127016": { - "commit": "dfb763b05ea4ecd2c9359edce36954a3a7da2948", - "text": "Fixed a potential memory leak in QueueingHint (alpha feature).", - "markdown": "Fixed a potential memory leak in QueueingHint (alpha feature). ([#127016](https://github.com/kubernetes/kubernetes/pull/127016), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127016", - "pr_number": 127016, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "127017": { - "commit": "89fbb3f2d2580a612f77fae9eea95720a467bb4b", - "text": "The `flowcontrol.apiserver.k8s.io/v1beta3` API version of `FlowSchema` and `PriorityLevelConfiguration` is no longer served in v1.32. Migrate manifests and API clients to use the `flowcontrol.apiserver.k8s.io/v1` API version, available since v1.29. More information is at https://kubernetes.io/docs/reference/using-api/deprecation-guide/#flowcontrol-resources-v132", - "markdown": "The `flowcontrol.apiserver.k8s.io/v1beta3` API version of `FlowSchema` and `PriorityLevelConfiguration` is no longer served in v1.32. Migrate manifests and API clients to use the `flowcontrol.apiserver.k8s.io/v1` API version, available since v1.29. More information is at https://kubernetes.io/docs/reference/using-api/deprecation-guide/#flowcontrol-resources-v132 ([#127017](https://github.com/kubernetes/kubernetes/pull/127017), [@carlory](https://github.com/carlory)) [SIG API Machinery and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127017", - "pr_number": 127017, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true - }, - "127019": { - "commit": "5639b4b29cbf1ce7acab1e307ec2c0bdab1a65f5", - "text": "Removed the generally available feature gate `NodeOutOfServiceVolumeDetach`.", - "markdown": "Removed the generally available feature gate `NodeOutOfServiceVolumeDetach` ([#127019](https://github.com/kubernetes/kubernetes/pull/127019), [@carlory](https://github.com/carlory)) [SIG Apps and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127019", - "pr_number": 127019, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true - }, - "127021": { - "commit": "49ccfaf1ed6ee0fc747ecbe2e1e2c0cd99f9d214", - "text": "The Usage and VolumeCondition are both optional in the response, and if the CSIVolumeHealth feature gate is enabled, the kubelet needs to consider returning metrics if either one is set.", - "markdown": "The Usage and VolumeCondition are both optional in the response, and if the CSIVolumeHealth feature gate is enabled, the kubelet needs to consider returning metrics if either one is set. ([#127021](https://github.com/kubernetes/kubernetes/pull/127021), [@Madhu-1](https://github.com/Madhu-1)) [SIG Storage]", - "author": "Madhu-1", - "author_url": "https://github.com/Madhu-1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127021", - "pr_number": 127021, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ] - }, - "127052": { - "commit": "05df9f46752ba035d631d2b1f629c0d90f3a3c80", - "text": "Support inflight_events metric in the scheduler for QueueingHint (alpha feature).", - "markdown": "Support inflight_events metric in the scheduler for QueueingHint (alpha feature). ([#127052](https://github.com/kubernetes/kubernetes/pull/127052), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127052", - "pr_number": 127052, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "127058": { - "commit": "6b2a5b84e58413f1736b862bad972fd4acc02dc0", - "text": "Removed the GA'd feature gates for `ServerSideApply` and `ServerSideFieldValidation`.", - "markdown": "Removed the GA'd feature gates for `ServerSideApply` and `ServerSideFieldValidation`. ([#127058](https://github.com/kubernetes/kubernetes/pull/127058), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127058", - "pr_number": 127058, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "127076": { - "commit": "1a0804c5e8065165f58d0100cf373a1280a1c75c", - "text": "Kubernetes is now built with Go 1.23.0.", - "markdown": "Kubernetes is now built with Go 1.23.0 ([#127076](https://github.com/kubernetes/kubernetes/pull/127076), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127076", - "pr_number": 127076, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "127083": { - "commit": "4bc6a11d78b0506bf7c20b71c9e12e695bcab737", - "text": "Implemented new cluster events `UpdatePodSchedulingGatesEliminated` and `UpdatePodTolerations` for scheduler plugins.", - "markdown": "Implemented new cluster events `UpdatePodSchedulingGatesEliminated` and `UpdatePodTolerations` for scheduler plugins. ([#127083](https://github.com/kubernetes/kubernetes/pull/127083), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127083", - "pr_number": 127083, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "127093": { - "commit": "1137a6a0cc98c49d2076461ce3d741a619a129e8", - "text": "Promoted `RetryGenerateName` to stable; the feature is enabled by default. `--feature-gates=RetryGenerateName=true` is not needed on kube-apiserver binaries and will be removed in a future release.", - "markdown": "Promoted `RetryGenerateName` to stable; the feature is enabled by default. `--feature-gates=RetryGenerateName=true` is not needed on kube-apiserver binaries and will be removed in a future release. ([#127093](https://github.com/kubernetes/kubernetes/pull/127093), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127093", - "pr_number": 127093, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "127094": { - "commit": "b337f048db4c88c08af257951de2fc20cd7607f9", - "text": "Allows PreStop lifecycle handler's sleep action to have a zero value", - "markdown": "Allows PreStop lifecycle handler's sleep action to have a zero value ([#127094](https://github.com/kubernetes/kubernetes/pull/127094), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Apps, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4818", - "type": "KEP" - } - ], - "author": "sreeram-venkitesh", - "author_url": "https://github.com/sreeram-venkitesh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127094", - "pr_number": 127094, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "127096": { - "commit": "d913914511c87dee288d1d72921c364a8331893f", - "text": "kubeadm: if an unknown command name is passed to any parent command such as 'kubeadm init phase', return an error. If 'kubeadm init phase' or another command that has subcommands is called without a subcommand name, print the available commands and also return an error.", - "markdown": "kubeadm: if an unknown command name is passed to any parent command such as 'kubeadm init phase', return an error. If 'kubeadm init phase' or another command that has subcommands is called without a subcommand name, print the available commands and also return an error. ([#127096](https://github.com/kubernetes/kubernetes/pull/127096), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127096", - "pr_number": 127096, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "127123": { - "commit": "d62b797c16fdffa55a8e2fc95f04bf72c019be70", - "text": "kubeadm: removed the deprecated and NO-OP flags `--feature-gates` for `kubeadm upgrade apply` and `--api-server-manifest`, `--controller-manager-manifest` and `--scheduler-manifest` for `kubeadm upgrade diff`.", - "markdown": "kubeadm: removed the deprecated and NO-OP flags `--feature-gates` for `kubeadm upgrade apply` and `--api-server-manifest`, `--controller-manager-manifest` and `--scheduler-manifest` for `kubeadm upgrade diff`. ([#127123](https://github.com/kubernetes/kubernetes/pull/127123), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127123", - "pr_number": 127123, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "127134": { - "commit": "2d6c8a129df97caf5bda3a186a8f7f3e41591352", - "text": "Introduced `v1alpha1` API for mutating admission policies, enabling extensible # admission control via CEL expressions (KEP 3962: Mutating Admission Policies). # To use, enable the `MutatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` # API via `--runtime-config`.", - "markdown": "Introduced `v1alpha1` API for mutating admission policies, enabling extensible # admission control via CEL expressions (KEP 3962: Mutating Admission Policies). # To use, enable the `MutatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` # API via `--runtime-config`. ([#127134](https://github.com/kubernetes/kubernetes/pull/127134), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, Etcd and Testing]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127134", - "pr_number": 127134, - "areas": [ - "test", - "apiserver", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "etcd", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "127146": { - "commit": "a12a32cd125270d983e931db7fcf18f779fb48ee", - "text": "Added metrics to measure latency of DRA Node operations and DRA GRPC calls.", - "markdown": "Added metrics to measure latency of DRA Node operations and DRA GRPC calls. ([#127146](https://github.com/kubernetes/kubernetes/pull/127146), [@bart0sh](https://github.com/bart0sh)) [SIG Instrumentation, Network, Node and Testing]", - "author": "bart0sh", - "author_url": "https://github.com/bart0sh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127146", - "pr_number": 127146, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "network", - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "127151": { - "commit": "3ebdb13c5e7987b3ecfdf4a4fc5ae83dbc6191c7", - "text": "kubeadm: removed `socat` and `ebtables` from kubeadm preflight checks", - "markdown": "kubeadm: removed `socat` and `ebtables` from kubeadm preflight checks ([#127151](https://github.com/kubernetes/kubernetes/pull/127151), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cluster Lifecycle]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127151", - "pr_number": 127151, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "127155": { - "commit": "c6669ea7d61af98da3a2aa8c1d2cdc9c2c57080a", - "text": "Added a kubelet metric `container_aligned_compute_resources_count` to report the count of containers getting aligned compute resources.", - "markdown": "Added a kubelet metric `container_aligned_compute_resources_count` to report the count of containers getting aligned compute resources. ([#127155](https://github.com/kubernetes/kubernetes/pull/127155), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127155", - "pr_number": 127155, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127162": { - "commit": "d28fca12944f12a778392147b862c24c48289544", - "text": "Fixed a regression in 1.29+ default configurations, where regular init containers may fail to start due to a temporary container runtime failure.", - "markdown": "Fixed a regression in 1.29+ default configurations, where regular init containers may fail to start due to a temporary container runtime failure. ([#127162](https://github.com/kubernetes/kubernetes/pull/127162), [@gjkim42](https://github.com/gjkim42)) [SIG Node]", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127162", - "pr_number": 127162, - "areas": [ - "kubelet" - ], - "kinds": [ - "regression" - ], - "sigs": [ - "node" - ] - }, - "127167": { - "commit": "8e3adc4df64d5b382c8916610313ce25e0df8e28", - "text": "Allow Pod search domains to be a single dot `.` or contain an underscore `_`", - "markdown": "Allow for Pod search domains to be a single dot `.` or contain an underscore `_` ([#127167](https://github.com/kubernetes/kubernetes/pull/127167), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps, Network and Testing]", - "author": "adrianmoisey", - "author_url": "https://github.com/adrianmoisey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127167", - "pr_number": 127167, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "127187": { - "commit": "1caf9a150b794a7c4a17e63a54b902ec0b0be570", - "text": "Locked the custom profiling feature in `kubectl debug` to true.", - "markdown": "Locked the custom profiling feature in `kubectl debug` to true. ([#127187](https://github.com/kubernetes/kubernetes/pull/127187), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/4292-kubectl-debug-custom-profile", - "type": "KEP" - } - ], - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127187", - "pr_number": 127187, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127220": { - "commit": "9134c17b265b70b305dab1f2370d8593a5b3f48c", - "text": "When `SchedulerQueueingHint` is enabled, the scheduler's in-tree plugins now subscribe to specific node events to decide whether to requeue Pods. This allows the scheduler to handle cluster events faster with less memory. Specific node events include updates to taints, tolerations, or allocatable. In-tree plugins now ignore node updates that don't modify any of these fields.", - "markdown": "When `SchedulerQueueingHint` is enabled, the scheduler's in-tree plugins now subscribe to specific node events to decide whether to requeue Pods. This allows the scheduler to handle cluster events faster with less memory. Specific node events include updates to taints, tolerations, or allocatable. In-tree plugins now ignore node updates that don't modify any of these fields. ([#127220](https://github.com/kubernetes/kubernetes/pull/127220), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling and Storage]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127220", - "pr_number": 127220, - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true - }, - "127228": { - "commit": "60cbbdf4b36389b9994325abd8b2e924dcf84e24", - "text": "Improved the performance of the job controller when handling job update events.", - "markdown": "Improved the performance of the job controller when handling job update events. ([#127228](https://github.com/kubernetes/kubernetes/pull/127228), [@hakuna-matatah](https://github.com/hakuna-matatah))", - "author": "hakuna-matatah", - "author_url": "https://github.com/hakuna-matatah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127228", - "pr_number": 127228, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "is_mapped": true - }, - "127230": { - "commit": "dd4943c831dbc43fb8d410ccdbc27e3c807131fa", - "text": "Show a warning message to inform users that the `legacy` profile is planned to be deprecated.", - "markdown": "Show a warning message to inform users that the `legacy` profile is planned to be deprecated. ([#127230](https://github.com/kubernetes/kubernetes/pull/127230), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug#default-profile-and-automation-selection", - "type": "KEP" - } - ], - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127230", - "pr_number": 127230, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "127239": { - "commit": "6309127d696828d79cc8745e22f3f82f0d9f65e2", - "text": "Fixed a 1.31 regression where API emulation versioning honors cohabitating resources.", - "markdown": "Fixed a 1.31 regression where API emulation versioning honors cohabitating resources. ([#127239](https://github.com/kubernetes/kubernetes/pull/127239), [@xuzhenglun](https://github.com/xuzhenglun))", - "author": "xuzhenglun", - "author_url": "https://github.com/xuzhenglun", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127239", - "pr_number": 127239, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "127242": { - "commit": "e30d994129ea895a9b0180db350e1ad1e2495725", - "text": "kubeadm: `kubeadm upgrade node` now supports `addon` and `post-upgrade` phases. Users can use `kubeadm upgrade node phase addon` to execute the addon upgrade, or use `kubeadm upgrade node --skip-phases addon` to skip the addon upgrade. Currently, the `post-upgrade` phase is no-op, and it is mainly used to handle some release-specific post-upgrade tasks.", - "markdown": "kubeadm: `kubeadm upgrade node` now supports `addon` and `post-upgrade` phases. Users can use `kubeadm upgrade node phase addon` to execute the addon upgrade, or use `kubeadm upgrade node --skip-phases addon` to skip the addon upgrade. Currently, the `post-upgrade` phase is no-op, and it is mainly used to handle some release-specific post-upgrade tasks. ([#127242](https://github.com/kubernetes/kubernetes/pull/127242), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127242", - "pr_number": 127242, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "127266": { - "commit": "daef8c2419a638d3925e146d0f5a6b217ea69b74", - "text": "DRA: the `DeviceRequestAllocationResult` struct now has an \"AdminAccess\" field which should be used instead of the corresponding field in the `DeviceRequest` field when dealing with an allocation. If a device is only allocated for admin access, allocating it again for normal usage is now supported, as originally intended. To allow admin access, starting with 1.32 the `DRAAdminAccess` feature gate must be enabled.", - "markdown": "DRA: the `DeviceRequestAllocationResult` struct now has an \"AdminAccess\" field which should be used instead of the corresponding field in the `DeviceRequest` field when dealing with an allocation. If a device is only allocated for admin access, allocating it again for normal usage is now supported, as originally intended. To allow admin access, starting with 1.32 the `DRAAdminAccess` feature gate must be enabled. ([#127266](https://github.com/kubernetes/kubernetes/pull/127266), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Network, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127266", - "pr_number": 127266, - "areas": [ - "test", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "etcd", - "network", - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "127277": { - "commit": "c69f150008c70eb45dce8eda387c2e75c3962422", - "text": "DRA: scheduling pods is up to 16x faster, depending on the scenario. Scheduling throughput depends a lot on cluster utilization. It is higher for lightly loaded clusters with free resources and gets lower when the cluster utilization increases.", - "markdown": "DRA: scheduling pods is up to 16x faster, depending on the scenario. Scheduling throughput depends a lot on cluster utilization. It is higher for lightly loaded clusters with free resources and gets lower when the cluster utilization increases. ([#127277](https://github.com/kubernetes/kubernetes/pull/127277), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127277", - "pr_number": 127277, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "etcd", - "instrumentation", - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "127279": { - "commit": "7448e676aa0fc96eac53f159c03ca633823e7ff6", - "text": "Upgraded etcd client to v3.5.16.", - "markdown": "Upgraded etcd client to v3.5.16. ([#127279](https://github.com/kubernetes/kubernetes/pull/127279), [@serathius](https://github.com/serathius)) [SIG API Machinery, Auth, Cloud Provider and Node]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127279", - "pr_number": 127279, - "areas": [ - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "127302": { - "commit": "78d64904128add672b9f5d48d676c0bdc6a1c2de", - "text": "Promoted the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks`.", - "markdown": "Promoted the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks`. ([#127302](https://github.com/kubernetes/kubernetes/pull/127302), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127302", - "pr_number": 127302, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127318": { - "commit": "ce6396175b2b9435bde6c6809e0ba70225ffd0a8", - "text": "kube-proxy now reconciles Service/Endpoint changes with conntrack table and cleans up only stale UDP flow entries", - "markdown": "kube-proxy now reconciles Service/Endpoint changes with conntrack table and cleans up only stale UDP flow entries ([#127318](https://github.com/kubernetes/kubernetes/pull/127318), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127318", - "pr_number": 127318, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true, - "duplicate_kind": true - }, - "127326": { - "commit": "b82013ecd676bde3d67a10e6931a54c385abb4f1", - "text": "Updated the control plane's trust anchor publisher to create and manage a new ClusterTrustBundle object, associated with the `kubernetes.io/kube-apiserver-serving` X.509 certificate signer. This ClusterTrustBundle contains a PEM bundle in its payload that you can use to verify kube-apiserver serving certificates.", - "markdown": "Updated the control plane's trust anchor publisher to create and manage a new ClusterTrustBundle object, associated with the `kubernetes.io/kube-apiserver-serving` X.509 certificate signer. This ClusterTrustBundle contains a PEM bundle in its payload that you can use to verify kube-apiserver serving certificates. ([#127326](https://github.com/kubernetes/kubernetes/pull/127326), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Apps, Auth, Cluster Lifecycle and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3257", - "type": "KEP" - } - ], - "author": "stlaz", - "author_url": "https://github.com/stlaz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127326", - "pr_number": 127326, - "areas": [ - "test", - "kubelet", - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cluster-lifecycle", - "testing" - ], - "feature": true, - "duplicate": true - }, - "127327": { - "commit": "88df7e307b755ea1a0c3223a85d881d9703f2cf7", - "text": "Documented the `--for=create` option to `kubectl wait`.", - "markdown": "Documented the `--for=create` option to `kubectl wait`. ([#127327](https://github.com/kubernetes/kubernetes/pull/127327), [@ryanwinter](https://github.com/ryanwinter)) [SIG CLI]", - "author": "ryanwinter", - "author_url": "https://github.com/ryanwinter", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127327", - "pr_number": 127327, - "areas": [ - "kubectl" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cli" - ] - }, - "127333": { - "commit": "19e8e59d06cbdd067a9b5c141b674b63a09d0e5c", - "text": "kubeadm: ensure that Pods from the upgrade preflight check `CreateJob` are properly terminated after a timeout.", - "markdown": "kubeadm: ensure that Pods from the upgrade preflight check `CreateJob` are properly terminated after a timeout. ([#127333](https://github.com/kubernetes/kubernetes/pull/127333), [@yuyabee](https://github.com/yuyabee)) [SIG Cluster Lifecycle]", - "author": "yuyabee", - "author_url": "https://github.com/yuyabee", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127333", - "pr_number": 127333, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "127341": { - "commit": "035e272cb1efb6ad22171b2eb44fca353583112c", - "text": "Fully removed `PostStartHookContext.StopCh`.", - "markdown": "Fully removed `PostStartHookContext.StopCh`. ([#127341](https://github.com/kubernetes/kubernetes/pull/127341), [@mjudeikis](https://github.com/mjudeikis))", - "author": "mjudeikis", - "author_url": "https://github.com/mjudeikis", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127341", - "pr_number": 127341, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "127348": { - "commit": "61d9bae27453d3bb0febfc6133583afc5a6ac6ae", - "text": "LoadBalancerIPMode feature was marked as GA.", - "markdown": "LoadBalancerIPMode feature was marked as GA. ([#127348](https://github.com/kubernetes/kubernetes/pull/127348), [@RyanAoh](https://github.com/RyanAoh)) [SIG Apps, Network and Testing]", - "author": "RyanAoh", - "author_url": "https://github.com/RyanAoh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127348", - "pr_number": 127348, - "areas": [ - "test", - "kube-proxy", - "ipvs" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127360": { - "commit": "9660e5c4cd41700eae41a316dd236090bd7bf6e9", - "text": "Added a `Stream` field to `PodLogOptions`, which allows clients to request certain log stream (stdout or stderr) of the container.\nPlease also note that the combination of a specific `Stream` and `TailLines` is not supported.", - "markdown": "Added a `Stream` field to `PodLogOptions`, which allows clients to request certain log stream (stdout or stderr) of the container.\n Please also note that the combination of a specific `Stream` and `TailLines` is not supported. ([#127360](https://github.com/kubernetes/kubernetes/pull/127360), [@knight42](https://github.com/knight42)) [SIG API Machinery, Apps, Architecture, Node, Release and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3288-separate-stdout-from-stderr", - "type": "KEP" - } - ], - "author": "knight42", - "author_url": "https://github.com/knight42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127360", - "pr_number": 127360, - "areas": [ - "test", - "kubelet", - "apiserver", - "release-eng", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "node", - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "127378": { - "commit": "b1357bf9884dc6e83cdffcc7c6a57ec084d2971f", - "text": "Improved performance of the job controller when handling job delete events.", - "markdown": "Improved performance of the job controller when handling job delete events. ([#127378](https://github.com/kubernetes/kubernetes/pull/127378), [@hakuna-matatah](https://github.com/hakuna-matatah))", - "author": "hakuna-matatah", - "author_url": "https://github.com/hakuna-matatah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127378", - "pr_number": 127378, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "is_mapped": true - }, - "127388": { - "commit": "1874039f8269dde591dc736507f5bca6f4cb8972", - "text": "Added new functionality into the Go client code (`client-go`) library. The `List()` method for the metadata client allows enabling API streaming when fetching collections. This improves performance when listing many objects.\n\nTo request this behaviour, your client software must enable the `WatchListClient` client-go feature gate. Additionally, streaming is only available if supported by the cluster. The API server that you connect to must also support streaming.\n\nIf the API server does not support or allow streaming, then `client-go` falls back to fetching the collection using the **list** API verb.", - "markdown": "Added new functionality into the Go client code (`client-go`) library. The `List()` method for the metadata client allows enabling API streaming when fetching collections; this improves performance when listing many objects.\n To request this behaviour, your client software must enable the `WatchListClient` client-go feature gate. Additionally, streaming is only available if supported by the cluster; the API server that you connect to must also support streaming.\n If the API server does not support or allow streaming, then `client-go` falls back to fetching the collection using the **list** API verb. ([#127388](https://github.com/kubernetes/kubernetes/pull/127388), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127388", - "pr_number": 127388, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true - }, - "127402": { - "commit": "51f76febd7c2712a508ab68b402455f9a02c4e11", - "text": "Graduated Job's `ManagedBy` field to beta.", - "markdown": "Graduated Job's `ManagedBy` field to beta. ([#127402](https://github.com/kubernetes/kubernetes/pull/127402), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps and Testing]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/4368-support-managed-by-for-batch-jobs", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127402", - "pr_number": 127402, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "documentation", - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "127404": { - "commit": "be7d1000ee700a41794d8737770ef29bab8c8b50", - "text": "Enabled graceful shutdown feature for Windows node", - "markdown": "Enabled graceful shutdown feature for Windows node ([#127404](https://github.com/kubernetes/kubernetes/pull/127404), [@zylxjtu](https://github.com/zylxjtu)) [SIG Node, Testing and Windows]", - "author": "zylxjtu", - "author_url": "https://github.com/zylxjtu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127404", - "pr_number": 127404, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing", - "windows" - ], - "feature": true, - "duplicate": true - }, - "127417": { - "commit": "8e17456a01596f18bbfc6862e4987eb71e060beb", - "text": "Fixed a bug in the endpoints controller that failed to reconcile the Endpoint object after it was truncated (when it received more than 1000 endpoint addresses).", - "markdown": "Fixed a bug in the endpoints controller that failed to reconcile the Endpoint object after it was truncated (when it received more than 1000 endpoint addresses). ([#127417](https://github.com/kubernetes/kubernetes/pull/127417), [@aojea](https://github.com/aojea)) [SIG Apps, Network and Testing]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127417", - "pr_number": 127417, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps", - "network", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "127421": { - "commit": "dd820a13a28a6ed1a7dc5e556fd8c0a9493a2764", - "text": "Fixed the ability to set the `resolvConf` option in drop-in kubelet configuration files, which validates that drop-in kubelet configuration files are in a supported version.", - "markdown": "Fixed the ability to set the `resolvConf` option in drop-in kubelet configuration files, which validates that drop-in kubelet configuration files are in a supported version. ([#127421](https://github.com/kubernetes/kubernetes/pull/127421), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127421", - "pr_number": 127421, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "127427": { - "commit": "04bba3c222bb2c5b1b1565713de4bf334ee7fbe4", - "text": "Fixed the bug in `NodeUnschedulable` that only happens with QHint enabled, which the scheduler might miss some updates for the Pods rejected by NodeUnschedulable plugin and put the Pods in the queue for a longer time than needed.", - "markdown": "Fixed the bug in `NodeUnschedulable` that only happens with QHint enabled, which the scheduler might miss some updates for the Pods rejected by NodeUnschedulable plugin and put the Pods in the queue for a longer time than needed. ([#127427](https://github.com/kubernetes/kubernetes/pull/127427), [@sanposhiho](https://github.com/sanposhiho))", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127427", - "pr_number": 127427, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "127444": { - "commit": "960e3984b0f0b0254fc1f5a177ac3b4663937c48", - "text": "Improved Node's QueueingHint in the `NodeAffinity` plugin by ignoring unrelated changes that keep pods unschedulable.", - "markdown": "Improved Node's QueueingHint in the `NodeAffinity` plugin by ignoring unrelated changes that keep pods unschedulable. ([#127444](https://github.com/kubernetes/kubernetes/pull/127444), [@dom4ha](https://github.com/dom4ha)) [SIG Scheduling and Testing]", - "author": "dom4ha", - "author_url": "https://github.com/dom4ha", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127444", - "pr_number": 127444, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127447": { - "commit": "a87215915f9b60a0c0d7d99da3e75aa0614698b8", - "text": "Fixed the bug in PodTopologySpread that only happens with QHint enabled, which the scheduler might miss some updates for the Pods rejected by PodTopologySpread plugin and put the Pods in the queue for a longer time than needed.", - "markdown": "Fixed the bug in PodTopologySpread that only happens with QHint enabled, which the scheduler might miss some updates for the Pods rejected by PodTopologySpread plugin and put the Pods in the queue for a longer time than needed. ([#127447](https://github.com/kubernetes/kubernetes/pull/127447), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127447", - "pr_number": 127447, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "127464": { - "commit": "94df29b8f278503c3b332280132202096e247128", - "text": "Fixed a bug where the scheduler didn't correctly tell plugins about Node deletion. This bug could impact all scheduler plugins subscribing to Node/Delete events, making the queue keep the Pods rejected by those plugins incorrectly at Node deletion. Among the in-tree plugins, PodTopologySpread is the only victim.", - "markdown": "Fixed a bug where the scheduler didn't correctly tell plugins about Node deletion. This bug could impact all scheduler plugins subscribing to Node/Delete events, making the queue keep the Pods rejected by those plugins incorrectly at Node deletion. Among the in-tree plugins, PodTopologySpread is the only victim. ([#127464](https://github.com/kubernetes/kubernetes/pull/127464), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127464", - "pr_number": 127464, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true - }, - "127473": { - "commit": "421436a94c42576e9cc86d427924bc1d70096883", - "text": "Improved Node's QueueHint in the `NodeResourceFit` plugin by ignoring unrelated changes that keep pods unschedulable.", - "markdown": "Improved Node's QueueHint in the `NodeResourceFit` plugin by ignoring unrelated changes that keep pods unschedulable. ([#127473](https://github.com/kubernetes/kubernetes/pull/127473), [@dom4ha](https://github.com/dom4ha)) [SIG Scheduling and Testing]", - "author": "dom4ha", - "author_url": "https://github.com/dom4ha", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127473", - "pr_number": 127473, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127483": { - "commit": "a93e3e7ae10a4efd213019bd66af5663bd06a2c1", - "text": "Added a new option `strict-cpu-reservation` for CPU Manager static policy. When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly used for system daemons and interrupt processing, no longer available for any workload.", - "markdown": "Added a new option `strict-cpu-reservation` for CPU Manager static policy. When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly used for system daemons and interrupt processing, no longer available for any workload. ([#127483](https://github.com/kubernetes/kubernetes/pull/127483), [@jingczhang](https://github.com/jingczhang)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/4541", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://github.com/kubernetes/website/pull/48356", - "type": "external" - }, - { - "description": "[Blog]", - "url": "https://github.com/kubernetes/website/pull/48371", - "type": "external" - } - ], - "author": "jingczhang", - "author_url": "https://github.com/jingczhang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127483", - "pr_number": 127483, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "127489": { - "commit": "426aa3d6cec19616cc3749ca9186b688826fe4b8", - "text": "Pods are allowed to use the `net.ipv4.tcp_rmem` and `net.ipv4.tcp_wmem` sysctl by default when the kernel version is 4.15 or higher. With kernel 4.15, the sysctl became namespaced. Pod Security admission allows these sysctl in v1.32+ versions of the baseline and restricted policies.", - "markdown": "Pods are allowed to use the `net.ipv4.tcp_rmem` and `net.ipv4.tcp_wmem` sysctl by default when the kernel version is 4.15 or higher. With kernel 4.15, the sysctl became namespaced. Pod Security admission allows these sysctl in v1.32+ versions of the baseline and restricted policies. ([#127489](https://github.com/kubernetes/kubernetes/pull/127489), [@pacoxu](https://github.com/pacoxu)) [SIG Auth, Network and Node]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127489", - "pr_number": 127489, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "network", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127491": { - "commit": "99ff62e87a2d881f4839159d33519a49d6eee5d9", - "text": "kubeadm: when adding new control plane nodes with `kubeadm join`, ensure that the etcd member addition is performed only if a given member URL does not already exist in the list of members. Similarly, on \"kubeadm reset\" only remove an etcd member if its ID exists.", - "markdown": "kubeadm: when adding new control plane nodes with `kubeadm join`, ensure that the etcd member addition is performed only if a given member URL does not already exist in the list of members. Similarly, on \"kubeadm reset\" only remove an etcd member if its ID exists. ([#127491](https://github.com/kubernetes/kubernetes/pull/127491), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127491", - "pr_number": 127491, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "127497": { - "commit": "67cdc26214fbcac9ffecd68624df215416fdbba5", - "text": "DRA: when enabling the scheduler queuing hint feature, pods got stuck as unschedulable for a while unnecessarily because recording the name of the generated ResourceClaim did not trigger scheduling.", - "markdown": "DRA: when enabling the scheduler queuing hint feature, pods got stuck as unschedulable for a while unnecessarily because recording the name of the generated ResourceClaim did not trigger scheduling. ([#127497](https://github.com/kubernetes/kubernetes/pull/127497), [@pohly](https://github.com/pohly)) [SIG Auth, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - }, - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4247", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127497", - "pr_number": 127497, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "node", - "scheduling", - "testing" - ], - "duplicate": true - }, - "127506": { - "commit": "a339a36a368f315f440bfdb7ae1bbd48556441ae", - "text": "Added a kubelet metrics to report informations about the cpu pools managed by cpumanager when the static policy is in use.", - "markdown": "Added a kubelet metrics to report informations about the cpu pools managed by cpumanager when the static policy is in use. ([#127506](https://github.com/kubernetes/kubernetes/pull/127506), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127506", - "pr_number": 127506, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "127511": { - "commit": "e273349f3a2fde9a2499902645e8f10001c899bf", - "text": "The core functionality of Dynamic Resource Allocation (DRA) got promoted to beta. No action is required when *upgrading*, the previous v1alpha3 API is still supported, so existing deployments and DRA drivers based on v1alpha3 continue to work. *Downgrading* from 1.32 to 1.31 with DRA resources in the cluster (resourceclaims, resourceclaimtemplates, deviceclasses, resourceslices) is *not* supported because the new v1beta1 is used as storage version and not readable by 1.31.", - "markdown": "The core functionality of Dynamic Resource Allocation (DRA) got promoted to beta. No action is required when *upgrading*, the previous v1alpha3 API is still supported, so existing deployments and DRA drivers based on v1alpha3 continue to work. *Downgrading* from 1.32 to 1.31 with DRA resources in the cluster (resourceclaims, resourceclaimtemplates, deviceclasses, resourceslices) is *not* supported because the new v1beta1 is used as storage version and not readable by 1.31. ([#127511](https://github.com/kubernetes/kubernetes/pull/127511), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127511", - "pr_number": 127511, - "areas": [ - "test", - "kubelet", - "apiserver", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "etcd", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "127512": { - "commit": "257d6f3f5bf75ff0ce6c53c104a0ab9df1ed5059", - "text": "Added an example for kubectl delete with the --interactive flag.", - "markdown": "Added an example for kubectl delete with the --interactive flag. ([#127512](https://github.com/kubernetes/kubernetes/pull/127512), [@bergerhoffer](https://github.com/bergerhoffer)) [SIG CLI]", - "author": "bergerhoffer", - "author_url": "https://github.com/bergerhoffer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127512", - "pr_number": 127512, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "127513": { - "commit": "4d10ae8fdc579e2bb09789507cae7b8d32cbd306", - "text": "A new feature that allows unsafe deletion of corrupt resources has been added, it is disabled by default, \nand it can be enabled by setting the option `--feature-gates=AllowUnsafeMalformedObjectDeletion=true`. \nIt comes with an API change, a new delete option `ignoreStoreReadErrorWithClusterBreakingPotential` has\nbeen introduced, it is not set by default, this maintains backward compatibility. \nIn order to perform an unsafe deletion of a corrupt resource, the user must enable the option for the delete\nrequest. A resource is considered corrupt if it can not be successfully retrieved from the storage due to\na) transformation error e.g. decryption failure, or b) the object failed to decode. Normal deletion flow is\nattempted first, and if it fails with a corrupt resource error then it triggers unsafe delete.\nIn addition, when this feature is enabled, the 'details' field of 'Status' from the LIST response \nincludes information that identifies the corrupt object(s).\nNOTE: unsafe deletion ignores finalizer constraints, and skips precondition checks.\nWARNING: this may break the workload associated with the resource being unsafe-deleted, if it relies on\nthe normal deletion flow, so cluster breaking consequences apply.", - "markdown": "A new feature that allows unsafe deletion of corrupt resources has been added, it is disabled by default, \n and it can be enabled by setting the option `--feature-gates=AllowUnsafeMalformedObjectDeletion=true`. \n It comes with an API change, a new delete option `ignoreStoreReadErrorWithClusterBreakingPotential` has\n been introduced, it is not set by default, this maintains backward compatibility. \n In order to perform an unsafe deletion of a corrupt resource, the user must enable the option for the delete\n request. A resource is considered corrupt if it can not be successfully retrieved from the storage due to\n a) transformation error e.g. decryption failure, or b) the object failed to decode. Normal deletion flow is\n attempted first, and if it fails with a corrupt resource error then it triggers unsafe delete.\n In addition, when this feature is enabled, the 'details' field of 'Status' from the LIST response \n includes information that identifies the corrupt object(s).\n NOTE: unsafe deletion ignores finalizer constraints, and skips precondition checks.\n WARNING: this may break the workload associated with the resource being unsafe-deleted, if it relies on\n the normal deletion flow, so cluster breaking consequences apply. ([#127513](https://github.com/kubernetes/kubernetes/pull/127513), [@tkashem](https://github.com/tkashem)) [SIG API Machinery, Etcd, Node and Testing]", - "author": "tkashem", - "author_url": "https://github.com/tkashem", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127513", - "pr_number": 127513, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "etcd", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "127524": { - "commit": "19500e8551c478b7a30d822f2f8a668d361069cb", - "text": "Extend discovery GroupManager with Group lister interface", - "markdown": "Extend discovery GroupManager with Group lister interface ([#127524](https://github.com/kubernetes/kubernetes/pull/127524), [@mjudeikis](https://github.com/mjudeikis)) [SIG API Machinery]", - "author": "mjudeikis", - "author_url": "https://github.com/mjudeikis", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127524", - "pr_number": 127524, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true - }, - "127551": { - "commit": "3d6c5b2e98afaaae1d17107e2d3d709c726be49d", - "text": "Fixed the incorrect hierarchical structure for both the child span and the parent span (i.e., `SerializeObject` and `List`). In the past, some children's spans appeared parallel to their parents.", - "markdown": "Fixed the incorrect hierarchical structure for both the child span and the parent span (i.e., `SerializeObject` and `List`). In the past, some children's spans appeared parallel to their parents. ([#127551](https://github.com/kubernetes/kubernetes/pull/127551), [@carlory](https://github.com/carlory)) [SIG API Machinery and Instrumentation]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127551", - "pr_number": 127551, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "127565": { - "commit": "cdf077da6fa5f610075c22068e3ab6b057247163", - "text": "DRA: Fixed several issues related to `allocationMode: all`.", - "markdown": "DRA: Fixed several issues related to `allocationMode: all`. ([#127565](https://github.com/kubernetes/kubernetes/pull/127565), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127565", - "pr_number": 127565, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "127566": { - "commit": "7fff5b6b0282c4f55b0a75e20fefcb0051d97298", - "text": "Added kubelet support for systemd watchdog integration. With this enabled, systemd can automatically recover a hung kubelet.", - "markdown": "Added kubelet support for systemd watchdog integration. With this enabled, systemd can automatically recover a hung kubelet. ([#127566](https://github.com/kubernetes/kubernetes/pull/127566), [@zhifei92](https://github.com/zhifei92)) [SIG Cloud Provider, Node, and Testing]", - "author": "zhifei92", - "author_url": "https://github.com/zhifei92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127566", - "pr_number": 127566, - "areas": [ - "test", - "kubelet", - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127574": { - "commit": "239802e4f754d58daeb2893196062efa340ea6fa", - "text": "Support specifying a custom network parameter when running e2e-node tests with the remote option.", - "markdown": "Support specifying a custom network parameter when running e2e-node tests with the remote option. ([#127574](https://github.com/kubernetes/kubernetes/pull/127574), [@bouaouda-achraf](https://github.com/bouaouda-achraf)) [SIG Node and Testing]", - "author": "bouaouda-achraf", - "author_url": "https://github.com/bouaouda-achraf", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127574", - "pr_number": 127574, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "127581": { - "commit": "4d91d502832ce55204343d7864fe28019d87b2bb", - "text": "Added a `/flagz` endpoint for kube-apiserver endpoint.", - "markdown": "Added a `/flagz` endpoint for kube-apiserver endpoint. ([#127581](https://github.com/kubernetes/kubernetes/pull/127581), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Architecture, Auth and Instrumentation]", - "author": "richabanker", - "author_url": "https://github.com/richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127581", - "pr_number": 127581, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "127587": { - "commit": "fbf1a0dc181ccbeb9925ad9c284d913a25c16562", - "text": "The synthetic \"Bookmark\" event for the watch stream requests will now include a new annotation: `kubernetes.io/initial-events-list-blueprint`. The annotation contains an empty, versioned list that is encoded in the requested format (such as protobuf, JSON, or CBOR), then base64-encoded and stored as a string.", - "markdown": "The synthetic \"Bookmark\" event for the watch stream requests will now include a new annotation: `kubernetes.io/initial-events-list-blueprint`. The annotation contains an empty, versioned list that is encoded in the requested format (such as protobuf, JSON, or CBOR), then base64-encoded and stored as a string. ([#127587](https://github.com/kubernetes/kubernetes/pull/127587), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127587", - "pr_number": 127587, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true - }, - "127598": { - "commit": "e9cde03b915e8697d64d2908efae536dd339fc73", - "text": "Fixed a bug with dual stack clusters using the beta feature MultiCIDRServiceAllocator which could not create dual stack Services or Services with IPs in the secondary range. Users who wanted to use this feature in version 1.30 with dual stack clusters could work around the issue by setting the feature gate DisableAllocatorDualWrite to true.", - "markdown": "Fixed a bug with dual stack clusters using the beta feature MultiCIDRServiceAllocator which could not create dual stack Services or Services with IPs in the secondary range. Users who wanted to use this feature in version 1.30 with dual stack clusters could work around the issue by setting the feature gate DisableAllocatorDualWrite to true. ([#127598](https://github.com/kubernetes/kubernetes/pull/127598), [@aojea](https://github.com/aojea)) [SIG Network and Testing]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127598", - "pr_number": 127598, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "127611": { - "commit": "37004f89b0246fe85cfd5c7a96335363c5f1d9ff", - "text": "Kubernetes was built with Go 1.23.1.", - "markdown": "Kubernetes was built with Go 1.23.1. ([#127611](https://github.com/kubernetes/kubernetes/pull/127611), [@haitch](https://github.com/haitch)) [SIG Release and Testing]", - "author": "haitch", - "author_url": "https://github.com/haitch", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127611", - "pr_number": 127611, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127634": { - "commit": "bb6bfba47510c699cbbd1e910f37caca4c634359", - "text": "`kubectl apply --server-side` now supports `--subresource` congruent to `kubectl patch`.", - "markdown": "`kubectl apply --server-side` now supports `--subresource` congruent to `kubectl patch`. ([#127634](https://github.com/kubernetes/kubernetes/pull/127634), [@deads2k](https://github.com/deads2k)) [SIG CLI and Testing]", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127634", - "pr_number": 127634, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "127650": { - "commit": "996e674ea7039a39afd21b479a9601d57cb49b8d", - "text": "kubeadm: fixed an issue where the wrong member list was being reported when removing an etcd member.", - "markdown": "kubeadm: fixed an issue where the wrong member list was being reported when removing an etcd member. ([#127650](https://github.com/kubernetes/kubernetes/pull/127650), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127650", - "pr_number": 127650, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "127661": { - "commit": "8aae9aabf39b0da921cddd7b15d807a4cf3a0190", - "text": "DRA: The resource claim controller now maintains metrics about the total number of `ResourceClaims` and the number of allocated `ResourceClaims`.", - "markdown": "DRA: The resource claim controller now maintains metrics about the total number of `ResourceClaims` and the number of allocated `ResourceClaims`. ([#127661](https://github.com/kubernetes/kubernetes/pull/127661), [@pohly](https://github.com/pohly)) [SIG Apps, Instrumentation and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127661", - "pr_number": 127661, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "instrumentation", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127663": { - "commit": "95ec69c16c76b5ee71fdbebc7a5dea2c39341eb3", - "text": "The members name and typeDescription of the Reflector struct were exported to allow for better user extensibility.", - "markdown": "The members name and typeDescription of the Reflector struct were exported to allow for better user extensibility. ([#127663](https://github.com/kubernetes/kubernetes/pull/127663), [@alexanderstephan](https://github.com/alexanderstephan))", - "author": "alexanderstephan", - "author_url": "https://github.com/alexanderstephan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127663", - "pr_number": 127663, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "127669": { - "commit": "3d00d6e42113db6fca88ec6a0d03970bc63d7bea", - "text": "Fixed a race condition that could result in erroneous volume unmounts for flex volume plugins during kubelet restart.", - "markdown": "Fixed a race condition that could result in erroneous volume unmounts for flex volume plugins during kubelet restart. ([#127669](https://github.com/kubernetes/kubernetes/pull/127669), [@olyazavr](https://github.com/olyazavr))", - "author": "olyazavr", - "author_url": "https://github.com/olyazavr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127669", - "pr_number": 127669, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "127673": { - "commit": "523a2b6da8b93c4e64a02a2f7de41b763fbd7a8f", - "text": "Promoted `CustomResourceFieldSelectors` to stable; the feature was enabled by default. The `--feature-gates=CustomResourceFieldSelectors=true` flag was no longer needed on kube-apiserver binaries and would be removed in a future release.", - "markdown": "Promoted `CustomResourceFieldSelectors` to stable; the feature was enabled by default. The `--feature-gates=CustomResourceFieldSelectors=true` flag was no longer needed on kube-apiserver binaries and would be removed in a future release. ([#127673](https://github.com/kubernetes/kubernetes/pull/127673), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127673", - "pr_number": 127673, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "127711": { - "commit": "1b71b94b738f1cd179589b7521ad29985404f65b", - "text": "When entering a value other than \"external\" to the \"--cloud-provider\" flag for the kubelet, kube-controller-manager, and kube-apiserver, the user will now receive a warning in the logs about the disablement of internal cloud providers, this is in contrast to the previous warnings about deprecation.", - "markdown": "When entering a value other than \"external\" to the \"--cloud-provider\" flag for the kubelet, kube-controller-manager, and kube-apiserver, the user will now receive a warning in the logs about the disablement of internal cloud providers, this is in contrast to the previous warnings about deprecation. ([#127711](https://github.com/kubernetes/kubernetes/pull/127711), [@elmiko](https://github.com/elmiko)) [SIG API Machinery, Cloud Provider and Node]", - "author": "elmiko", - "author_url": "https://github.com/elmiko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127711", - "pr_number": 127711, - "areas": [ - "kubelet", - "apiserver", - "cloudprovider" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "node" - ], - "duplicate": true - }, - "127744": { - "commit": "6bc0768c62b9dade91b22d1bfcc115edf1f0ccad", - "text": "Tighten validation on the qosClass field of pod status. This field is immutable but it would be populated with the old status by kube-apiserver if it is unset in the new status when updating this field via the status subsource.", - "markdown": "Tighten validation on the qosClass field of pod status. This field is immutable but it would be populated with the old status by kube-apiserver if it is unset in the new status when updating this field via the status subsource. ([#127744](https://github.com/kubernetes/kubernetes/pull/127744), [@carlory](https://github.com/carlory)) [SIG Apps, Instrumentation, Node, Storage and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127744", - "pr_number": 127744, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "instrumentation", - "node", - "storage", - "testing" - ], - "duplicate": true - }, - "127780": { - "commit": "8539497010969a16ebbb52c2e965d2c4fd63bcb4", - "text": "Fixed a regression introduced in v1.29 where conntrack entries for UDP connections to deleted pods did not get cleaned up correctly, which could (among other things) cause DNS problems when DNS pods were restarted.", - "markdown": "Fixed a regression introduced in v1.29 where conntrack entries for UDP connections\n to deleted pods did not get cleaned up correctly, which could (among other things)\n cause DNS problems when DNS pods were restarted. ([#127780](https://github.com/kubernetes/kubernetes/pull/127780), [@danwinship](https://github.com/danwinship))", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127780", - "pr_number": 127780, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "127786": { - "commit": "03f134461462f86239067ec20ec17a0ba892db52", - "text": "Added an option to enable leader election in local-up-cluster.sh via the LEADER_ELECT CLI flag.", - "markdown": "Added an option to enable leader election in local-up-cluster.sh via the LEADER_ELECT CLI flag. ([#127786](https://github.com/kubernetes/kubernetes/pull/127786), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127786", - "pr_number": 127786, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "127787": { - "commit": "bb97163ff7d6d496e4aeba68830f6e9cd089a39d", - "text": "Removed the feature gate ComponentSLIs, which had been promoted to stable since v1.29.", - "markdown": "Removed the feature gate ComponentSLIs, which had been promoted to stable since v1.29. ([#127787](https://github.com/kubernetes/kubernetes/pull/127787), [@Jefftree](https://github.com/Jefftree)) [SIG Architecture and Instrumentation]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127787", - "pr_number": 127787, - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "127857": { - "commit": "45260fd76aa7b2ceed16aea173ccb3f81e3ab98b", - "text": "coordination.v1alpha1 API is dropped and replaced with coordination.v1alpha2. Old coordination.v1alpha1 types must be deleted before upgrade", - "markdown": "Coordination.v1alpha1 API is dropped and replaced with coordination.v1alpha2. Old coordination.v1alpha1 types must be deleted before upgrade ([#127857](https://github.com/kubernetes/kubernetes/pull/127857), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Etcd, Scheduling and Testing]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127857", - "pr_number": 127857, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "etcd", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "127861": { - "commit": "2d31ec00273c34390ec77637fb4ff96234885bca", - "text": "Reverted Go version used to build Kubernetes to 1.23.0.", - "markdown": "Reverted Go version used to build Kubernetes to 1.23.0. ([#127861](https://github.com/kubernetes/kubernetes/pull/127861), [@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/127861", - "pr_number": 127861, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127869": { - "commit": "1f9d2577da68290c0466c1404bbff6100e1e303a", - "text": "Added a short output format argument for `kubectl explain`. You could now use `-o` as an abbreviation for `--output` in commands such as `kubectl explain \u003cresource\u003e --output plaintext-openapiv2`.", - "markdown": "Added a short output format argument for `kubectl explain`. You could now use `-o` as an abbreviation for `--output` in commands such as `kubectl explain \u003cresource\u003e --output plaintext-openapiv2`. ([#127869](https://github.com/kubernetes/kubernetes/pull/127869), [@ak20102763](https://github.com/ak20102763))", - "author": "ak20102763", - "author_url": "https://github.com/ak20102763", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127869", - "pr_number": 127869, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "127874": { - "commit": "ad9dad07a89acd183cf925a5726291de3798da2a", - "text": "Fixed an issue where eviction manager was not deleting unused images or containers.", - "markdown": "Fixed an issue where eviction manager was not deleting unused images or containers. ([#127874](https://github.com/kubernetes/kubernetes/pull/127874), [@AnishShah](https://github.com/AnishShah))", - "author": "AnishShah", - "author_url": "https://github.com/AnishShah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127874", - "pr_number": 127874, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "flake" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "127878": { - "commit": "95612e7b3b7d44f07f3425d2b0a2af77e72974a1", - "text": "The scheduler started considering the resource requests of existing sidecar containers during the scoring process.", - "markdown": "The scheduler started considering the resource requests of existing sidecar containers during the scoring process. ([#127878](https://github.com/kubernetes/kubernetes/pull/127878), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Testing]", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127878", - "pr_number": 127878, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "127898": { - "commit": "1947bf57ef0635e8764eee25e5726a8ec4189b7f", - "text": "Fixed documentation for the `apiserver_admission_webhook_fail_open_count` and `apiserver_admission_webhook_request_total` metrics. The `type` label can have a value of \"admit\", not \"mutating\".", - "markdown": "Fixed documentation for the `apiserver_admission_webhook_fail_open_count` and `apiserver_admission_webhook_request_total` metrics. The `type` label can have a value of \"admit\", not \"mutating\". ([#127898](https://github.com/kubernetes/kubernetes/pull/127898), [@modulitos](https://github.com/modulitos))", - "author": "modulitos", - "author_url": "https://github.com/modulitos", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127898", - "pr_number": 127898, - "areas": [ - "apiserver" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "127918": { - "commit": "7429566b07b2c0f65e0d5f4febbdf31e48b0a9ff", - "text": "Append the image pull error to the pods `status.containerStatuses[*].state.waiting.message` when in image pull back-off (`reason` is `ImagePullBackOff`) instead of the generic `Back-off pulling image…` message.", - "markdown": "Append the image pull error for the pods `status.containerStatuses[*].state.waiting.message` when\n in image pull back-off (`reason` is `ImagePullBackOff`) instead of the generic `Back-off pulling image…` message. ([#127918](https://github.com/kubernetes/kubernetes/pull/127918), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127918", - "pr_number": 127918, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "127919": { - "commit": "1f9038a46883addc2e6bc462111b5726c36573ba", - "text": "Fixed data race in kubelet/volumemanager.", - "markdown": "Fixed data race in kubelet/volumemanager. ([#127919](https://github.com/kubernetes/kubernetes/pull/127919), [@carlory](https://github.com/carlory)) [SIG Apps, Node and Storage]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127919", - "pr_number": 127919, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "node", - "storage" - ], - "duplicate": true, - "is_mapped": true - }, - "127965": { - "commit": "e7bc45269d53da81d276efdde06dcbbeb4c286cc", - "text": "Upgraded the functionality of `kubectl kustomize` as described at\nhttps://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.4.2\nand https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.5.0.", - "markdown": "Upgraded the functionality of `kubectl kustomize` as described at\n https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.4.2\n and https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.5.0. ([#127965](https://github.com/kubernetes/kubernetes/pull/127965), [@koba1t](https://github.com/koba1t))", - "author": "koba1t", - "author_url": "https://github.com/koba1t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127965", - "pr_number": 127965, - "areas": [ - "kubectl", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "127976": { - "commit": "c45f3ab813045e3988df0cefa21cb8547c226463", - "text": "Fixed problem with named ports missing from endpoints when they are specified in sidecar containers.", - "markdown": "Fixed problem with named ports missing from endpoints when they are specified in sidecar containers. ([#127976](https://github.com/kubernetes/kubernetes/pull/127976), [@chengjoey](https://github.com/chengjoey))", - "author": "chengjoey", - "author_url": "https://github.com/chengjoey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127976", - "pr_number": 127976, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "127981": { - "commit": "97c79df18f8552facf63682b23d9380253972d48", - "text": "Implemented a new, alpha `seLinuxChangePolicy` field within a Pod-level `securityContext`, under SELinuxChangePolicy feature gate. This field allows for opting out from mounting Pod volumes with SELinux label when SELinuxMount feature is enabled (it is alpha and disabled by default now).\nPlease see [the KEP](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling#story-3-cluster-upgrade) how we expect to warn users before any SELinux behavior changes and how they can opt-out before. Note that this field and feature gate is useful only with clusters that run with SELinux enabled. No action is required on clusters without SELinux.", - "markdown": "Implemented a new, alpha `seLinuxChangePolicy` field within a Pod-level `securityContext`, under SELinuxChangePolicy feature gate. This field allows for opting out from mounting Pod volumes with SELinux label when SELinuxMount feature is enabled (it is alpha and disabled by default now).\n Please see [the KEP](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling#story-3-cluster-upgrade) how we expect to warn users before any SELinux behavior changes and how they can opt-out before. Note that this field and feature gate is useful only with clusters that run with SELinux enabled. No action is required on clusters without SELinux. ([#127981](https://github.com/kubernetes/kubernetes/pull/127981), [@jsafrane](https://github.com/jsafrane)) [SIG API Machinery, Apps, Architecture, Node, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling", - "type": "KEP" - } - ], - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127981", - "pr_number": 127981, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "node", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "128003": { - "commit": "b1b4e5d397e303cf7a2a3fb02e90f40536da5896", - "text": "Removed all support for _classic_ dynamic resource allocation (DRA). The `DRAControlPlaneController` feature gate, formerly alpha, is no longer available. Kubernetes now only uses the _structured parameters_ model (also alpha) for allocating dynamic resources to Pods.\n\nIf and only if classic DRA was enabled in a cluster, remove all workloads (pods, app deployments, etc.) which depend on classic DRA and make sure that all PodSchedulingContext resources are gone before upgrading. PodSchedulingContext resources cannot be removed through the apiserver after an upgrade and workloads would not work properly.", - "markdown": "Removed all support for _classic_ dynamic resource allocation (DRA). The `DRAControlPlaneController` feature gate, formerly alpha, is no longer available. Kubernetes now only uses the _structured parameters_ model (also alpha) for allocating dynamic resources to Pods.\n \n If and only if classic DRA was enabled in a cluster, remove all workloads (pods, app deployments, etc.) which depend on classic DRA and make sure that all PodSchedulingContext resources are gone before upgrading. PodSchedulingContext resources cannot be removed through the apiserver after an upgrade and workloads would not work properly. ([#128003](https://github.com/kubernetes/kubernetes/pull/128003), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3063", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128003", - "pr_number": 128003, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "etcd", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true, - "is_mapped": true - }, - "128009": { - "commit": "023cd33d23067908d08bd21affa43140fb5d7791", - "text": "kube-controller-manager `--leader-migration-config` files were now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration would cause an error.", - "markdown": "kube-controller-manager `--leader-migration-config` files were now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration would cause an error. ([#128009](https://github.com/kubernetes/kubernetes/pull/128009), [@seans3](https://github.com/seans3)) [SIG API Machinery and Cloud Provider]", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128009", - "pr_number": 128009, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "128011": { - "commit": "8b7b768ff78d73267e52c0828e1e0eb3f5328f28", - "text": "kube-apiserver `--egress-selector-config-file` files were validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause an error.", - "markdown": "kube-apiserver `--egress-selector-config-file` files were validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause an error. ([#128011](https://github.com/kubernetes/kubernetes/pull/128011), [@seans3](https://github.com/seans3)) [SIG API Machinery and Testing]", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128011", - "pr_number": 128011, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "128013": { - "commit": "eb5c8965befeefad027d0c1684fe6d34f6f31c19", - "text": "kube-apiserver `--admission-control-config-file` files are now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause errors.", - "markdown": "kube-apiserver `--admission-control-config-file` files are now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause errors. ([#128013](https://github.com/kubernetes/kubernetes/pull/128013), [@seans3](https://github.com/seans3))", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128013", - "pr_number": 128013, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "128029": { - "commit": "2fabf5fa63ef4184a96ebd0cc99f1c3369ed48b4", - "text": "Change OOM score adjustment calculation for sidecar containers: the OOM adjustment for these containers will match or fall below the OOM score adjustment of regular containers in the Pod.", - "markdown": "Change OOM score adjustment calculation for sidecar containers: the OOM adjustment for these containers will match or fall below the OOM score adjustment of regular containers in the Pod. ([#128029](https://github.com/kubernetes/kubernetes/pull/128029), [@bouaouda-achraf](https://github.com/bouaouda-achraf))", - "author": "bouaouda-achraf", - "author_url": "https://github.com/bouaouda-achraf", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128029", - "pr_number": 128029, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "128031": { - "commit": "983dd0776061be79ccdc3646ba5c43dd6ef85527", - "text": "kubeadm: added the feature gate `NodeLocalCRISocket`. When the feature gate is enabled, kubeadm will generate the `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in the kubelet configuration for each node and will not write the same CRI socket on the Node object as an annotation.", - "markdown": "kubeadm: added the feature gate `NodeLocalCRISocket`. When the feature gate is enabled, kubeadm will generate the `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in the kubelet configuration for each node and will not write the same CRI socket on the Node object as an annotation. ([#128031](https://github.com/kubernetes/kubernetes/pull/128031), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/4656-add-kubelet-instance-configuration", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128031", - "pr_number": 128031, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true - }, - "128035": { - "commit": "4dc7a48ac6fb631a84e1974772bf7b8fd0bb9c59", - "text": "The getters for the field name and typeDescription of the Reflector struct have been renamed.", - "markdown": "The getters for the field name and typeDescription of the Reflector struct have been renamed. ([#128035](https://github.com/kubernetes/kubernetes/pull/128035), [@alexanderstephan](https://github.com/alexanderstephan))", - "author": "alexanderstephan", - "author_url": "https://github.com/alexanderstephan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128035", - "pr_number": 128035, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "128038": { - "commit": "510a7e76018189b49e8d7c1ba4ac639bdf4dba37", - "text": "kube-apiserver `ResourceQuotaConfiguration` admission plugin subsection within `--admission-control-config-file` files is now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause errors.", - "markdown": "kube-apiserver `ResourceQuotaConfiguration` admission plugin subsection within `--admission-control-config-file` files is now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause errors. ([#128038](https://github.com/kubernetes/kubernetes/pull/128038), [@seans3](https://github.com/seans3))", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128038", - "pr_number": 128038, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "128046": { - "commit": "9fe41b6198a47d19a598b75eabee3d87b1d0fde1", - "text": "PodLifecycleSleepAction is graduated to GA", - "markdown": "PodLifecycleSleepAction is graduated to GA ([#128046](https://github.com/kubernetes/kubernetes/pull/128046), [@AxeZhan](https://github.com/AxeZhan)) [SIG Architecture, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3960", - "type": "KEP" - } - ], - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128046", - "pr_number": 128046, - "areas": [ - "test", - "kubelet", - "conformance" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "architecture", - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "128052": { - "commit": "7f5510921d3484509052903e720793937a63035a", - "text": "CRI client now uses the default timeout for `ImageFsInfo` RPC.", - "markdown": "CRI client now uses the default timeout for `ImageFsInfo` RPC. ([#128052](https://github.com/kubernetes/kubernetes/pull/128052), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128052", - "pr_number": 128052, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "128053": { - "commit": "06a15c5cf96131faaf44f93f1be228a013ae5c0d", - "text": "Graduated the `WatchList` feature gate to Beta for kube-apiserver and enabled `WatchListClient` for KCM.", - "markdown": "Graduated the `WatchList` feature gate to Beta for kube-apiserver and enabled `WatchListClient` for KCM. ([#128053](https://github.com/kubernetes/kubernetes/pull/128053), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128053", - "pr_number": 128053, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128062": { - "commit": "55b83c92b3b69cd53d5bf22b8ccff859a005241a", - "text": "kubelet: the `--image-credential-provider-config` file is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with malformed config files, unindented files, or typos in field names, and prevents unexpected behavior.", - "markdown": "kubelet: the `--image-credential-provider-config` file is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with malformed config files, unindented files, or typos in field names, and prevents unexpected behavior. ([#128062](https://github.com/kubernetes/kubernetes/pull/128062), [@aramase](https://github.com/aramase)) [SIG Auth and Node]", - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128062", - "pr_number": 128062, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "auth", - "node" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128073": { - "commit": "3694a02bb9b5c1dd216485d2e25bd2c8f24916dd", - "text": "The kube-apiserver `--tracing-config-file` is now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now result in an error.", - "markdown": "The kube-apiserver `--tracing-config-file` is now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now result in an error. ([#128073](https://github.com/kubernetes/kubernetes/pull/128073), [@seans3](https://github.com/seans3))", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128073", - "pr_number": 128073, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "128077": { - "commit": "28900b8069a34cc068c3590c78ce36a1452b96cf", - "text": "NodeRestriction admission now validates the audience value that kubelet is requesting a service account token for is part of the pod spec volume. This change is introduced with a new kube-apiserver featuregate `ServiceAccountNodeAudienceRestriction` that's enabled by default.", - "markdown": "NodeRestriction admission now validates the audience value that kubelet is requesting a service account token for is part of the pod spec volume. This change is introduced with a new kube-apiserver featuregate `ServiceAccountNodeAudienceRestriction` that's enabled by default. ([#128077](https://github.com/kubernetes/kubernetes/pull/128077), [@aramase](https://github.com/aramase)) [SIG Auth, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128077", - "pr_number": 128077, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "auth", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "128081": { - "commit": "99cc395e2b9870ab9813e7ea4c0940225e30d05d", - "text": "Fixed spacing in `--validate flag` description in kubectl.", - "markdown": "Fixed spacing in `--validate flag` description in kubectl. ([#128081](https://github.com/kubernetes/kubernetes/pull/128081), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128081", - "pr_number": 128081, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "128083": { - "commit": "d7e5ff87e067be419ba97344349e90fdd9262cac", - "text": "kubelet: Fixed a bug where the kubelet wrongly drops the QOSClass field of the Pod's status when it rejects a Pod.", - "markdown": "kubelet: Fixed a bug where the kubelet wrongly drops the QOSClass field of the Pod's status when it rejects a Pod. ([#128083](https://github.com/kubernetes/kubernetes/pull/128083), [@carlory](https://github.com/carlory)) [SIG Node and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128083", - "pr_number": 128083, - "areas": [ - "test", - "kubelet", - "e2e-test-framework" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "128091": { - "commit": "1d8828ce707ed9dd7a6a9756385419cce1d202ac", - "text": "Updated cni-plugins to [v1.6.0](https://github.com/containernetworking/plugins/releases/tag/v1.6.0).", - "markdown": "Updated cni-plugins to [v1.6.0](https://github.com/containernetworking/plugins/releases/tag/v1.6.0). ([#128091](https://github.com/kubernetes/kubernetes/pull/128091), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128091", - "pr_number": 128091, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "128099": { - "commit": "db0af9bd94efc25693545a69f273a4d26bf6483b", - "text": "Fixed a bug in the `NestedNumberAsFloat64` Unstructured field accessor that could have caused it to return rounded float64 values instead of errors when accessing very large int64 values.", - "markdown": "Fixed a bug in the `NestedNumberAsFloat64` Unstructured field accessor that could have caused it to return rounded float64 values instead of errors when accessing very large int64 values. ([#128099](https://github.com/kubernetes/kubernetes/pull/128099), [@benluddy](https://github.com/benluddy))", - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128099", - "pr_number": 128099, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "128100": { - "commit": "527d937b23e51a5df0d1daf52a4f94d36d409f76", - "text": "Disallowed label values will show up as \"unexpected\" in all system components' metrics.", - "markdown": "Disallowed label values will show up as \"unexpected\" in all system components' metrics. ([#128100](https://github.com/kubernetes/kubernetes/pull/128100), [@yongruilin](https://github.com/yongruilin)) [SIG Architecture and Instrumentation]", - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128100", - "pr_number": 128100, - "kinds": [ - "bug" - ], - "sigs": [ - "architecture", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "128101": { - "commit": "3690cb7f9a96baa98b1a13f71a00028629630a8f", - "text": "Added enforcement of an upper cost bound for DRA evaluations of CEL. The API server and scheduler now enforce an upper bound on the cost and runtime steps required for evaluating a CEL expression.", - "markdown": "Added enforcement of an upper cost bound for DRA evaluations of CEL. The API server and scheduler now enforce an upper bound on the cost and runtime steps required for evaluating a CEL expression. ([#128101](https://github.com/kubernetes/kubernetes/pull/128101), [@pohly](https://github.com/pohly)) [SIG API Machinery and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128101", - "pr_number": 128101, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128110": { - "commit": "a0db55c3a644e6eac0e842a05475b39a99e7ed87", - "text": "Kubernetes was built with Go 1.23.2.", - "markdown": "Kubernetes was built with Go 1.23.2. ([#128110](https://github.com/kubernetes/kubernetes/pull/128110), [@haitch](https://github.com/haitch)) [SIG Release and Testing]", - "author": "haitch", - "author_url": "https://github.com/haitch", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128110", - "pr_number": 128110, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128118": { - "commit": "190eb057f4eaac1db47b54f0d8232eae6ebd1ff2", - "text": "kubeadm: fixed a misleading output (typo) about control-plane joining instructions when executing the \"kubeadm init\" command.", - "markdown": "kubeadm: fixed a misleading output (typo) about control-plane joining instructions when executing the \"kubeadm init\" command. ([#128118](https://github.com/kubernetes/kubernetes/pull/128118), [@amaddio](https://github.com/amaddio))", - "author": "amaddio", - "author_url": "https://github.com/amaddio", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128118", - "pr_number": 128118, - "areas": [ - "kubeadm" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "128119": { - "commit": "5f3316fe238a5a32ce50a016d27b6e600c945de0", - "text": "Clarified an API validation error for toleration if `operator` is `Exists` and `value` is not empty.", - "markdown": "Clarified an API validation error for toleration if `operator` is `Exists` and `value` is not empty. ([#128119](https://github.com/kubernetes/kubernetes/pull/128119), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery and Apps]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128119", - "pr_number": 128119, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "is_mapped": true - }, - "128124": { - "commit": "961344ddb23c6df2e9de1e10aaa9c13253812dfd", - "text": "The `TopologyManagerPolicyOptions` feature-flag is promoted to GA.", - "markdown": "The `TopologyManagerPolicyOptions` feature-flag is promoted to GA. ([#128124](https://github.com/kubernetes/kubernetes/pull/128124), [@PiotrProkop](https://github.com/PiotrProkop))", - "author": "PiotrProkop", - "author_url": "https://github.com/PiotrProkop", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128124", - "pr_number": 128124, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "128139": { - "commit": "0a62f0fd7bd29e54e634d5cc112c2b469a53de8a", - "text": "Feature `AllowServiceLBStatusOnNonLB` remains deprecated and is now locked to false to ensure compatibility with previous versions.", - "markdown": "Feature `AllowServiceLBStatusOnNonLB` remains deprecated and is now locked to false to support compatibility versions. ([#128139](https://github.com/kubernetes/kubernetes/pull/128139), [@Jefftree](https://github.com/Jefftree))", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128139", - "pr_number": 128139, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "128149": { - "commit": "9568a2ac145cf9be930e3da835f86c1e61f7f7c1", - "text": "Vendor: updated system-validators to v1.9.0.", - "markdown": "Vendor: updated system-validators to v1.9.0. ([#128149](https://github.com/kubernetes/kubernetes/pull/128149), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128149", - "pr_number": 128149, - "areas": [ - "dependency" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cluster-lifecycle", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128168": { - "commit": "d7bd7284035e7debd5406d375cd366b164cf358f", - "text": "kube-apiserver: Promoted the `AuthorizeWithSelectors` feature to beta, which includes field and label selector information from requests in webhook authorization calls. Promoted the `AuthorizeNodeWithSelectors` feature to beta, which changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer.", - "markdown": "kube-apiserver: Promoted the `AuthorizeWithSelectors` feature to beta, which includes field and label selector information from requests in webhook authorization calls. Promoted the `AuthorizeNodeWithSelectors` feature to beta, which changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer. ([#128168](https://github.com/kubernetes/kubernetes/pull/128168), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4601", - "type": "KEP" - } - ], - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128168", - "pr_number": 128168, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128169": { - "commit": "7adcad3138f11c90922aecc8a8a0c92739bd6475", - "text": "Promoted the `ServiceAccountTokenJTI` feature to GA, which adds a `jti` claim to issued service account tokens and embeds the `jti` claim as a `authentication.kubernetes.io/credential-id=[\"JTI=...\"]` value in user extra info. Promoted the `ServiceAccountTokenPodNodeInfo` feature to GA, which adds the node name and uid as claims into service account tokens mounted into running pods, and embeds that information as `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` user extra info when the token is used. Promoted the `ServiceAccountTokenNodeBindingValidation` feature to GA, which validates service account tokens bound directly to nodes.", - "markdown": "Promoted the `ServiceAccountTokenJTI` feature to GA, which adds a `jti` claim to issued service account tokens and embeds the `jti` claim as a `authentication.kubernetes.io/credential-id=[\"JTI=...\"]` value in user extra info. Promoted the `ServiceAccountTokenPodNodeInfo` feature to GA, which adds the node name and uid as claims into service account tokens mounted into running pods, and embeds that information as `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` user extra info when the token is used. Promoted the `ServiceAccountTokenNodeBindingValidation` feature to GA, which validates service account tokens bound directly to nodes. ([#128169](https://github.com/kubernetes/kubernetes/pull/128169), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4193", - "type": "KEP" - } - ], - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128169", - "pr_number": 128169, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128170": { - "commit": "fb033826a8747fd457ffbd1ac1a0fa1cc49723d3", - "text": "Added alpha support for asynchronous Pod preemption.\nWhen the `SchedulerAsyncPreemption` feature gate is enabled, the scheduler now runs API calls to trigger preemptions asynchronously for better performance.", - "markdown": "Added alpha support for asynchronous Pod preemption.\n When the `SchedulerAsyncPreemption` feature gate is enabled, the scheduler now runs API calls to trigger preemptions asynchronously for better performance. ([#128170](https://github.com/kubernetes/kubernetes/pull/128170), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "http://kep.k8s.io/4832", - "type": "external" - } - ], - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128170", - "pr_number": 128170, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "128172": { - "commit": "79cca2786e037d8c8ae7fe856c5ae158b100ce71", - "text": "kube-apiserver: Promoted the `StructuredAuthorizationConfiguration` feature gate to GA. The `--authorization-config` flag now accepts `AuthorizationConfiguration` in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`).", - "markdown": "kube-apiserver: Promoted the `StructuredAuthorizationConfiguration` feature gate to GA. The `--authorization-config` flag now accepts `AuthorizationConfiguration` in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`). ([#128172](https://github.com/kubernetes/kubernetes/pull/128172), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3221-structured-authorization-configuration", - "type": "KEP" - }, - { - "description": "[Other doc]", - "url": "https://kubernetes.io/docs/reference/access-authn-authz/authorization/#authz-config-example", - "type": "official" - } - ], - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128172", - "pr_number": 128172, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128179": { - "commit": "3f27f970466f0f96c1bb532d72a24d8c3c58f85a", - "text": "Fixed a bug in the `k8s.io/cloud-provider/service` controller, which may panic when a service is updated because the event recorder was used before it was initialized. All cloud providers using the `v1.31.0` cloud provider service controller must ensure that the controller is initialized before the informer starts to process events or update it to version 1.32.0.", - "markdown": "Fixed a bug in the `k8s.io/cloud-provider/service` controller, which may panic when a service is updated because the event recorder was used before it was initialized. All cloud providers using the `v1.31.0` cloud provider service controller must ensure that the controller is initialized before the informer starts to process events or update it to version 1.32.0. ([#128179](https://github.com/kubernetes/kubernetes/pull/128179), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider, Network and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128179", - "pr_number": 128179, - "areas": [ - "test", - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "network", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "128182": { - "commit": "442183a9298e37cb655b4a3f48462ee30e475069", - "text": "Fixed a 1.31 regression that can crash kube-controller-manager's service-lb-controller loop.", - "markdown": "Fixed a 1.31 regression that can crash kube-controller-manager's service-lb-controller loop. ([#128182](https://github.com/kubernetes/kubernetes/pull/128182), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Network]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128182", - "pr_number": 128182, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "network" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128186": { - "commit": "46b3d9b320094ed2c0ba452f14b215e60c74d5b6", - "text": "Prepared Pod validation to handle version skew for InPlacePodVerticalScaling's beta graduation.", - "markdown": "Prepared Pod validation to handle version skew for InPlacePodVerticalScaling's beta graduation. ([#128186](https://github.com/kubernetes/kubernetes/pull/128186), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1287", - "type": "KEP" - } - ], - "author": "sreeram-venkitesh", - "author_url": "https://github.com/sreeram-venkitesh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128186", - "pr_number": 128186, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "is_mapped": true - }, - "128189": { - "commit": "8c5472ce66e05bd58da340e310f038ac1080bdbe", - "text": "Fixed the incorrect help message of a metric \"graceful_shutdown_end_time_seconds\".\nFixed incorrect value set for metrics \"graceful_shutdown_start_time_seconds\" and \"graceful_shutdown_end_time_seconds\" in certain cases during graceful node shutdown.", - "markdown": "Fixed the incorrect help message of a metric \"graceful_shutdown_end_time_seconds\".\n Fixed incorrect value set for metrics \"graceful_shutdown_start_time_seconds\" and \"graceful_shutdown_end_time_seconds\" in certain cases during graceful node shutdown. ([#128189](https://github.com/kubernetes/kubernetes/pull/128189), [@zylxjtu](https://github.com/zylxjtu)) [SIG Node]", - "author": "zylxjtu", - "author_url": "https://github.com/zylxjtu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128189", - "pr_number": 128189, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "128190": { - "commit": "6cc357046615410434b2fa99c5a229e5db2eb6d9", - "text": "Added support to the kube-apiserver for an alpha feature enabling external signing of service account tokens and fetching of public verifying keys, by enabling the Alpha `ExternalServiceAccountTokenSigner` feature gate and specifying `--service-account-signing-endpoint`. The flag value can either be the location of a Unix domain socket on a filesystem, or be prefixed with an @ symbol and name a Unix domain socket in the abstract socket namespace.", - "markdown": "Added support to the kube-apiserver for an alpha feature enabling external signing of service account tokens and fetching of public verifying keys, by enabling the Alpha `ExternalServiceAccountTokenSigner` feature gate and specifying `--service-account-signing-endpoint`. The flag value can either be the location of a Unix domain socket on a filesystem, or be prefixed with an @ symbol and name a Unix domain socket in the abstract socket namespace. ([#128190](https://github.com/kubernetes/kubernetes/pull/128190), [@HarshalNeelkamal](https://github.com/HarshalNeelkamal)) [SIG API Machinery, Apps, Auth, Etcd, Instrumentation, Node, Release and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/740-service-account-external-signing", - "type": "KEP" - }, - { - "description": "[Issue]", - "url": "https://github.com/kubernetes/enhancements/issues/740", - "type": "KEP" - }, - { - "description": "[Discussion]", - "url": "https://docs.google.com/document/d/1QVtBX8J2Tk70toefDegXMXigMFzrdQfezjlhBrKR29Y/edit?tab=t.0", - "type": "external" - }, - { - "description": "[Publish request]", - "url": "https://github.com/kubernetes/org/issues/5224", - "type": "external" - } - ], - "author": "HarshalNeelkamal", - "author_url": "https://github.com/HarshalNeelkamal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128190", - "pr_number": 128190, - "areas": [ - "test", - "apiserver", - "release-eng", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "etcd", - "instrumentation", - "node", - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128197": { - "commit": "1af81c223d20f1897548525e828e552a448c1c01", - "text": "Removed legacy cloud provider integration code and the \"service-lb-controller\", \"cloud-node-lifecycle-controller\" and the \"node-route-controller\" from kube-controller-manager. You can now either set the `--cloud-provider` command line argument to \"external\", or to the empty string. All other values are invalid.", - "markdown": "Removed legacy cloud provider integration code and the \"service-lb-controller\", \"cloud-node-lifecycle-controller\" and the \"node-route-controller\" from kube-controller-manager. You can now either set the `--cloud-provider` command line argument to \"external\", or to the empty string. All other values are invalid. ([#128197](https://github.com/kubernetes/kubernetes/pull/128197), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps and Cloud Provider]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cloud-provider/2395-removing-in-tree-cloud-providers/", - "type": "KEP" - } - ], - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128197", - "pr_number": 128197, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "128219": { - "commit": "f8e64e1d6e44035b5fc0f1e3002e6fade0e6857c", - "text": "kubelet: Fix - the volume manager didn't check the device mount state in the actual state of the world before marking the volume as detached. It may cause a pod to be stuck in the Terminating state due to the above issue when it was deleted.", - "markdown": "kubelet: Fix - the volume manager didn't check the device mount state in the actual state of the world before marking the volume as detached. It may cause a pod to be stuck in the Terminating state due to the above issue when it was deleted. ([#128219](https://github.com/kubernetes/kubernetes/pull/128219), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128219", - "pr_number": 128219, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "128240": { - "commit": "4cf2818f964d8862db4399cb548060f72bea4ded", - "text": "Added driver-owned fields in `ResourceClaim.Status` to report device status data for each allocated device.", - "markdown": "Added driver-owned fields in `ResourceClaim.Status` to report device status data for each allocated device. ([#128240](https://github.com/kubernetes/kubernetes/pull/128240), [@LionelJouin](https://github.com/LionelJouin)) [SIG API Machinery, Network, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4817", - "type": "KEP" - } - ], - "author": "LionelJouin", - "author_url": "https://github.com/LionelJouin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128240", - "pr_number": 128240, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "network", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128244": { - "commit": "71093a09c1d6d717b6927d1dfb7dca3753dc0bae", - "text": "Apply fsGroup policy for ReadWriteOncePod volumes.", - "markdown": "Apply fsGroup policy for ReadWriteOncePod volumes. ([#128244](https://github.com/kubernetes/kubernetes/pull/128244), [@gnufied](https://github.com/gnufied)) [SIG Storage and Testing]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128244", - "pr_number": 128244, - "areas": [ - "test" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "128247": { - "commit": "3300aa1783b6663f8b2dcd8e8a8af3728b825731", - "text": "Promoted feature gate `StatefulSetAutoDeletePVC` from beta to stable.", - "markdown": "Promoted feature gate `StatefulSetAutoDeletePVC` from beta to stable. ([#128247](https://github.com/kubernetes/kubernetes/pull/128247), [@mattcary](https://github.com/mattcary)) [SIG API Machinery, Apps, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]: KEP", - "url": "https://github.com/kubernetes/enhancements/issues/1847", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention", - "type": "official" - } - ], - "author": "mattcary", - "author_url": "https://github.com/mattcary", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128247", - "pr_number": 128247, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "128259": { - "commit": "d9b95ea94f41b942440adbdfdbe35fb78a2ed6f7", - "text": "The `build-tag` flag is reintroduced to conversion-gen and defaulter-gen which allows users to inject custom build tags during the code generation process.", - "markdown": "The `build-tag` flag is reintroduced to conversion-gen and defaulter-gen which allows users to inject custom build tags during the code generation process. ([#128259](https://github.com/kubernetes/kubernetes/pull/128259), [@dinhxuanvu](https://github.com/dinhxuanvu))", - "author": "dinhxuanvu", - "author_url": "https://github.com/dinhxuanvu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128259", - "pr_number": 128259, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "128266": { - "commit": "648717cc740cafbce778e983f195dc6879bf22e3", - "text": "A new /resize subresource was added to request pod resource resizing. Update your k8s client code to utilize the /resize subresource for Pod resizing operations.", - "markdown": "A new /resize subresource was added to request pod resource resizing. Update your k8s client code to utilize the /resize subresource for Pod resizing operations. ([#128266](https://github.com/kubernetes/kubernetes/pull/128266), [@AnishShah](https://github.com/AnishShah)) [SIG API Machinery, Apps, Node and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "AnishShah", - "author_url": "https://github.com/AnishShah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128266", - "pr_number": 128266, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "128287": { - "commit": "81dc4538db3ff69592ae98cc791230957577c6ec", - "text": "Ensured resizing for Guaranteed pods with integer CPU requests on nodes with static CPU \u0026 Memory policy configured is not allowed for the beta release of in-place resize. The feature gate `InPlacePodVerticalScalingExclusiveCPUs` defaults to `false`, but can be enabled to unblock development on ([#127262](https://github.com/kubernetes/kubernetes/issues/127262), [@tallclair](https://github.com/tallclair)) [SIG Node].", - "markdown": "Ensured resizing for Guaranteed pods with integer CPU requests on nodes with static CPU \u0026 Memory policy configured is not allowed for the beta release of in-place resize. The feature gate `InPlacePodVerticalScalingExclusiveCPUs` defaults to `false`, but can be enabled to unblock development on ([#127262](https://github.com/kubernetes/kubernetes/issues/127262), [@tallclair](https://github.com/tallclair)) [SIG Node]. ([#128287](https://github.com/kubernetes/kubernetes/pull/128287), [@esotsal](https://github.com/esotsal)) [SIG Node, Release and Testing]", - "author": "esotsal", - "author_url": "https://github.com/esotsal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128287", - "pr_number": 128287, - "areas": [ - "test", - "kubelet", - "release-eng", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128296": { - "commit": "f451aec23787c2b48489eea2377cd13dfa15bded", - "text": "Removed restrictions on subresource flag in kubectl commands", - "markdown": "Removed restrictions on subresource flag in kubectl commands ([#128296](https://github.com/kubernetes/kubernetes/pull/128296), [@AnishShah](https://github.com/AnishShah)) [SIG CLI]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "AnishShah", - "author_url": "https://github.com/AnishShah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128296", - "pr_number": 128296, - "areas": [ - "kubectl" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "duplicate_kind": true - }, - "128305": { - "commit": "721d66780b1797b49c3d6119a92533b6ff58eec2", - "text": "Fixed a bug where `podCIDR` was released before the node was deleted.", - "markdown": "Fixed a bug where `podCIDR` was released before the node was deleted. ([#128305](https://github.com/kubernetes/kubernetes/pull/128305), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network]", - "author": "adrianmoisey", - "author_url": "https://github.com/adrianmoisey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128305", - "pr_number": 128305, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128307": { - "commit": "988769933ee7e88d5956c703921312d997cd1bd6", - "text": "Fixed a suboptimal scheduler preemption behavior where potential preemption victims were violating Pod Disruption Budgets.", - "markdown": "Fixed a suboptimal scheduler preemption behavior where potential preemption victims were violating Pod Disruption Budgets. ([#128307](https://github.com/kubernetes/kubernetes/pull/128307), [@NoicFank](https://github.com/NoicFank)) [SIG Scheduling]", - "author": "NoicFank", - "author_url": "https://github.com/NoicFank", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128307", - "pr_number": 128307, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "128317": { - "commit": "66da447e14e5604158436b36063e54104466cb41", - "text": "`ComponentSLIs` feature is marked as GA and locked.", - "markdown": "`ComponentSLIs` feature is marked as GA and locked. ([#128317](https://github.com/kubernetes/kubernetes/pull/128317), [@Jefftree](https://github.com/Jefftree)) [SIG Architecture and Instrumentation]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128317", - "pr_number": 128317, - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "128318": { - "commit": "e79722d98a4f0aa2dc103aa8d4390d4c4e73e939", - "text": "Reset streams when an error happens during port-forward allowing kubectl to maintain port-forward connection open.", - "markdown": "Reset streams when an error happens during port-forward allowing kubectl to maintain port-forward connection open. ([#128318](https://github.com/kubernetes/kubernetes/pull/128318), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI and Node]", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128318", - "pr_number": 128318, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cli", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "128336": { - "commit": "ed67bd77a82b249e0e4693889affec2d0eb22832", - "text": "Annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` added to Job objects scheduled from CronJobs is promoted to stable.", - "markdown": "Annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` added to Job objects scheduled from CronJobs is promoted to stable. ([#128336](https://github.com/kubernetes/kubernetes/pull/128336), [@soltysh](https://github.com/soltysh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4026", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128336", - "pr_number": 128336, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128342": { - "commit": "5572688cef138edac0e44934a5cf1cf9e47e59a7", - "text": "Promoted `RecoverVolumeExpansionFailure` feature gate to beta.", - "markdown": "Promoted `RecoverVolumeExpansionFailure` feature gate to beta. ([#128342](https://github.com/kubernetes/kubernetes/pull/128342), [@gnufied](https://github.com/gnufied)) [SIG Apps and Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128342", - "pr_number": 128342, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "storage" - ], - "feature": true, - "duplicate": true - }, - "128344": { - "commit": "b84596842194157aee5ce1fc81197d3c8deda2fb", - "text": "Fixed an issue in the kubelet that showed when writable layers and read-only layers were at different paths within the same mount.\nKubernetes was previously detecting that the image filesystem was split, even when that was not really the case", - "markdown": "Fixed an issue in the kubelet that showed when writable layers and read-only layers were at different paths within the same mount.\n Kubernetes was previously detecting that the image filesystem was split, even when that was not really the case ([#128344](https://github.com/kubernetes/kubernetes/pull/128344), [@kannon92](https://github.com/kannon92)) [SIG Node]", - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128344", - "pr_number": 128344, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "128359": { - "commit": "db66e397d97410cf74b45d74d299b36ae704f4b8", - "text": "kubeadm: added \"disable success\" and \"disable denial\" as parameters of the \"cache\" plugin in the Corefile managed by kubeadm. This is to prevent conflicting responses during CoreDNS cache updates.", - "markdown": "kubeadm: added \"disable success\" and \"disable denial\" as parameters of the \"cache\" plugin in the Corefile managed by kubeadm. This is to prevent conflicting responses during CoreDNS cache updates. ([#128359](https://github.com/kubernetes/kubernetes/pull/128359), [@matteriben](https://github.com/matteriben)) [SIG Cluster Lifecycle]", - "author": "matteriben", - "author_url": "https://github.com/matteriben", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128359", - "pr_number": 128359, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "128374": { - "commit": "7fe41da5221b215d097e930c6b7aa52e88324f66", - "text": "Added the ability to change the maximum backoff delay accrued between container restarts for a node for containers in `CrashLoopBackOff`. To set this for a node, turn on the feature gate `KubeletCrashLoopBackoffMax` and set the `CrashLoopBackOff.MaxContainerRestartPeriod ` field between `\"1s\"` and `\"300s\"` in your [kubelet config file](https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/).", - "markdown": "Added the ability to change the maximum backoff delay accrued between container restarts for a node for containers in `CrashLoopBackOff`. To set this for a node, turn on the feature gate `KubeletCrashLoopBackoffMax` and set the `CrashLoopBackOff.MaxContainerRestartPeriod ` field between `\"1s\"` and `\"300s\"` in your [kubelet config file](https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/). ([#128374](https://github.com/kubernetes/kubernetes/pull/128374), [@lauralorenz](https://github.com/lauralorenz)) [SIG API Machinery and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/d367cd52eb4de2fe58c6e11a5d103d942ad60efb/keps/sig-node/4603-tune-crashloopbackoff/README.md", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://github.com/kubernetes/website/pull/48499", - "type": "external" - } - ], - "author": "lauralorenz", - "author_url": "https://github.com/lauralorenz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128374", - "pr_number": 128374, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "128377": { - "commit": "f81a68f4888c9da87f856d17516fb810518a67c0", - "text": "ContainerStatus.AllocatedResources is now guarded by a separate feature gate, InPlacePodVerticalSaclingAllocatedStatus", - "markdown": "ContainerStatus.AllocatedResources is now guarded by a separate feature gate, InPlacePodVerticalSaclingAllocatedStatus ([#128377](https://github.com/kubernetes/kubernetes/pull/128377), [@tallclair](https://github.com/tallclair)) [SIG API Machinery, CLI, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128377", - "pr_number": 128377, - "areas": [ - "test", - "kubelet", - "kubectl", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "cli", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "128387": { - "commit": "3e3276e9fe14bb35262031d5b03f3456a473a22d", - "text": "Label `apps.kubernetes.io/pod-index` added to Pods from StatefulSets is promoted to stable. Label `batch.kubernetes.io/job-completion-index` added to Pods from Indexed Jobs is promoted to stable.", - "markdown": "Label `apps.kubernetes.io/pod-index` added to Pods from StatefulSets is promoted to stable. Label `batch.kubernetes.io/job-completion-index` added to Pods from Indexed Jobs is promoted to stable. ([#128387](https://github.com/kubernetes/kubernetes/pull/128387), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4017", - "type": "KEP" - } - ], - "author": "alaypatel07", - "author_url": "https://github.com/alaypatel07", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128387", - "pr_number": 128387, - "kinds": [ - "feature" - ], - "sigs": [ - "apps" - ], - "feature": true - }, - "128396": { - "commit": "bc79d3ba87b8b3c4b7c68f26cdfcaa35654d96ac", - "text": "ServiceAccount metadata.annotations[kubernetes.io/enforce-mountable-secrets]: deprecated since v1.32; no removal deadline. Prefer separate namespaces to isolate access to mounted secrets.", - "markdown": "ServiceAccount metadata.annotations[kubernetes.io/enforce-mountable-secrets]: deprecated since v1.32; no removal deadline. Prefer separate namespaces to isolate access to mounted secrets. ([#128396](https://github.com/kubernetes/kubernetes/pull/128396), [@ritazh](https://github.com/ritazh)) [SIG API Machinery, Apps, Auth, CLI and Testing]", - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128396", - "pr_number": 128396, - "areas": [ - "test", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "deprecation" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cli", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "128399": { - "commit": "223ac36b5028ff5ec1561c64d426c48df9b12e21", - "text": "The `dynamicResources` has been refactored to `DynamicResources`, now users can introduce the `DynamicResources` struct outside the `dynamicresources` package.", - "markdown": "The `dynamicResources` has been refactored to `DynamicResources`, now users can introduce the `DynamicResources` struct outside the `dynamicresources` package. ([#128399](https://github.com/kubernetes/kubernetes/pull/128399), [@JesseStutler](https://github.com/JesseStutler)) [SIG Node and Scheduling]", - "author": "JesseStutler", - "author_url": "https://github.com/JesseStutler", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128399", - "pr_number": 128399, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "scheduling" - ], - "duplicate": true - }, - "128407": { - "commit": "c25f5eefe4efda4c0d9561d06942cd3de3dfe2e4", - "text": "Changed the Pod API to support `resources` at `spec` level for pod-level resources.", - "markdown": "Changed the Pod API to support `resources` at `spec` level for pod-level resources. ([#128407](https://github.com/kubernetes/kubernetes/pull/128407), [@ndixita](https://github.com/ndixita)) [SIG API Machinery, Apps, CLI, Cluster Lifecycle, Node, Release, Scheduling and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2837-pod-level-resource-spec/README.md", - "type": "KEP" - } - ], - "author": "ndixita", - "author_url": "https://github.com/ndixita", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128407", - "pr_number": 128407, - "areas": [ - "test", - "kubelet", - "kubectl", - "release-eng", - "kubeadm", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "cli", - "cluster-lifecycle", - "node", - "release", - "scheduling", - "testing" - ], - "duplicate": true - }, - "128415": { - "commit": "19d6337d593773397164f25fad0ea5daba05333e", - "text": "Adopted a new implementation of watch caches for **list** verbs, using a btree data structure. The new implementation is active by default; you can opt out by disabling the `BtreeWatchCache` feature gate.", - "markdown": "Adopted a new implementation of watch caches for **list** verbs, using a btree data structure. The new implementation is active by default; you can opt out by disabling the `BtreeWatchCache` feature gate. ([#128415](https://github.com/kubernetes/kubernetes/pull/128415), [@serathius](https://github.com/serathius)) [SIG API Machinery, Auth and Cloud Provider]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128415", - "pr_number": 128415, - "areas": [ - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider" - ], - "feature": true, - "duplicate": true - }, - "128430": { - "commit": "e7bcf571713ce09c268b0e27e27c74eb03ab6314", - "text": "Made kubelet's /metrics/slis endpoint always available.", - "markdown": "Made kubelet's /metrics/slis endpoint always available. ([#128430](https://github.com/kubernetes/kubernetes/pull/128430), [@richabanker](https://github.com/richabanker)) [SIG Architecture, Instrumentation and Node]", - "author": "richabanker", - "author_url": "https://github.com/richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128430", - "pr_number": 128430, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "architecture", - "instrumentation", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "128432": { - "commit": "bf75546494f317120b5f8fa7c2ccdd46a14e1e2c", - "text": "Added a health check for the device plugin gRPC registration server. When the registration server is down, kubelet is marked as unhealthy. If systemd watchdog is configured, this will result in a kubelet restart.", - "markdown": "Added a health check for the device plugin gRPC registration server. When the registration server is down, kubelet is marked as unhealthy. If systemd watchdog is configured, this will result in a kubelet restart. ([#128432](https://github.com/kubernetes/kubernetes/pull/128432), [@zhifei92](https://github.com/zhifei92)) [SIG Node]", - "author": "zhifei92", - "author_url": "https://github.com/zhifei92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128432", - "pr_number": 128432, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true - }, - "128444": { - "commit": "d34c181465caf208a50dd2a76452435a435d86be", - "text": "Added `--concurrent-daemonset-syncs` command line flag to kube-controller-manager. This value sets the number of workers for the daemonset controller.", - "markdown": "Added `--concurrent-daemonset-syncs` command line flag to kube-controller-manager. This value sets the number of workers for the daemonset controller. ([#128444](https://github.com/kubernetes/kubernetes/pull/128444), [@tosi3k](https://github.com/tosi3k))", - "author": "tosi3k", - "author_url": "https://github.com/tosi3k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128444", - "pr_number": 128444, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "128463": { - "commit": "34ce75749e7400b30b0dda6659ad31801d528b2b", - "text": "Fixed the reporting of elapsed times during evaluation of `ValidatingAdmissionPolicy` decisions and annotations. The apiserver_validating_admission_policy_check_duration metrics will now show elapsed times and no longer be zero.", - "markdown": "Fixed the reporting of elapsed times during evaluation of `ValidatingAdmissionPolicy` decisions and annotations. The apiserver_validating_admission_policy_check_duration metrics will now show elapsed times and no longer be zero. ([#128463](https://github.com/kubernetes/kubernetes/pull/128463), [@knrc](https://github.com/knrc))", - "author": "knrc", - "author_url": "https://github.com/knrc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128463", - "pr_number": 128463, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "128472": { - "commit": "e5f5975f968febd529dec6194de3800ee61461a8", - "text": "Graduated `SchedulerQueueingHints` to beta; the feature gate is now enabled by default.", - "markdown": "Graduated `SchedulerQueueingHints` to beta; the feature gate is now enabled by default. ([#128472](https://github.com/kubernetes/kubernetes/pull/128472), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128472", - "pr_number": 128472, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true - }, - "128474": { - "commit": "6fce566781b312bec7b52756d978f0c27ee15ced", - "text": "kubeadm: consider --bind-address or --advertise-address and --secure-port for control plane components when the feature gate WaitForAllControlPlaneComponents is enabled. Use /livez for kube-apiserver and kube-scheduler, but continue using /healthz for kube-controller-manager until it supports /livez.", - "markdown": "kubeadm: consider --bind-address or --advertise-address and --secure-port for control plane components when the feature gate WaitForAllControlPlaneComponents is enabled. Use /livez for kube-apiserver and kube-scheduler, but continue using /healthz for kube-controller-manager until it supports /livez. ([#128474](https://github.com/kubernetes/kubernetes/pull/128474), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128474", - "pr_number": 128474, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true - }, - "128495": { - "commit": "e30492f77aeb0a81f0916c8d7959ec9581e7cb34", - "text": "Fixed a race condition that could result in erroneous volume unmounts for flex volume plugins on kubelet restart.", - "markdown": "Fixed a race condition that could result in erroneous volume unmounts for flex volume plugins on kubelet restart. ([#128495](https://github.com/kubernetes/kubernetes/pull/128495), [@olyazavr](https://github.com/olyazavr))", - "author": "olyazavr", - "author_url": "https://github.com/olyazavr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128495", - "pr_number": 128495, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "128501": { - "commit": "a885e446d6f6f5530da4923a3872eb27ca47bdc0", - "text": "CBOR-encoded watch responses now set the Content-Type header to \"application/cbor-seq\" instead of the nonconformant \"application/cbor\".", - "markdown": "CBOR-encoded watch responses now set the Content-Type header to \"application/cbor-seq\" instead of the nonconformant \"application/cbor\". ([#128501](https://github.com/kubernetes/kubernetes/pull/128501), [@benluddy](https://github.com/benluddy)) [SIG API Machinery, Etcd and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4222", - "type": "external" - } - ], - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128501", - "pr_number": 128501, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "etcd", - "testing" - ], - "duplicate": true - }, - "128503": { - "commit": "6399c32669c62cfbf7c33b14b77d6781ce1cce27", - "text": "Enabled `CBORServingAndStorage` feature gate – built-in APIs can now be served in CBOR format for clients that request it.", - "markdown": "Enabled `CBORServingAndStorage` feature gate – built-in APIs can now be served in CBOR format for clients that request it. ([#128503](https://github.com/kubernetes/kubernetes/pull/128503), [@benluddy](https://github.com/benluddy)) [SIG API Machinery, Etcd and Testing]", - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128503", - "pr_number": 128503, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "etcd", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "128517": { - "commit": "b4d91d1b8ae336ad85b59de0ce15b8b83fa6d710", - "text": "Graduated the kubelet memory manager to generally available (GA).", - "markdown": "Graduated the kubelet memory manager to generally available (GA). ([#128517](https://github.com/kubernetes/kubernetes/pull/128517), [@Tal-or](https://github.com/Tal-or))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1769", - "type": "KEP" - } - ], - "author": "Tal-or", - "author_url": "https://github.com/Tal-or", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128517", - "pr_number": 128517, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "128533": { - "commit": "cb31e42b85d0a1e2be6639ecd4f7b9414887552a", - "text": "Vendor: updated system-validators to v1.9.1.", - "markdown": "Vendor: updated system-validators to v1.9.1. ([#128533](https://github.com/kubernetes/kubernetes/pull/128533), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128533", - "pr_number": 128533, - "areas": [ - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "128539": { - "commit": "a28f14089cfa47ef9c57f9f283e1504a68f616d6", - "text": "Added the feature gate CBORServingAndStorage to allow CBOR as the encoding for API request and response bodies, and as the storage encoding for custom resources. Clients must opt in; programs built with client-go can do this using the client-go feature gates ClientsAllowCBOR and ClientsPreferCBOR.", - "markdown": "Added the feature gate CBORServingAndStorage to allow CBOR as the encoding for API request and response bodies, and as the storage encoding for custom resources. Clients must opt in; programs built with client-go can do this using the client-go feature gates ClientsAllowCBOR and ClientsPreferCBOR. ([#128539](https://github.com/kubernetes/kubernetes/pull/128539), [@benluddy](https://github.com/benluddy)) [SIG API Machinery, Etcd and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4222", - "type": "external" - } - ], - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128539", - "pr_number": 128539, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "etcd", - "testing" - ], - "feature": true, - "duplicate": true - }, - "128556": { - "commit": "099449954ea9629a898f5e8fc1f7aa8ae9d6eae7", - "text": "Introduced a new metric `kubelet_admission_rejections_total` to track the number of pods rejected during admission.", - "markdown": "Introduced a new metric `kubelet_admission_rejections_total` to track the number of pods rejected during admission. ([#128556](https://github.com/kubernetes/kubernetes/pull/128556), [@AnishShah](https://github.com/AnishShah))", - "author": "AnishShah", - "author_url": "https://github.com/AnishShah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128556", - "pr_number": 128556, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "128560": { - "commit": "3c9380c44917b45670a4796c189a887ea5ccaf59", - "text": "Added Windows support for the node memory manager.", - "markdown": "Added Windows support for the node memory manager. ([#128560](https://github.com/kubernetes/kubernetes/pull/128560), [@marosset](https://github.com/marosset)) [SIG Node and Windows]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/4885-windows-cpu-and-memory-affinity", - "type": "KEP" - } - ], - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128560", - "pr_number": 128560, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "windows" - ], - "feature": true, - "duplicate": true - }, - "128601": { - "commit": "afc204104c0e8b3db4d5ce4f2fac80a1aa3fe63e", - "text": "DRA: Restricted the length of opaque device configuration parameters. At admission time, Kubernetes enforces a 10KiB size limit.", - "markdown": "DRA: Restricted the length of opaque device configuration parameters. At admission time, Kubernetes enforces a 10KiB size limit. ([#128601](https://github.com/kubernetes/kubernetes/pull/128601), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128601", - "pr_number": 128601, - "areas": [ - "test", - "kubelet", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "etcd", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "128623": { - "commit": "dff657a07c5795081821c53469ce5f18f6fc60f7", - "text": "Dropped support for `InPlacePodVerticalScaling` feature in Windows.", - "markdown": "Dropped support for `InPlacePodVerticalScaling` feature in Windows. ([#128623](https://github.com/kubernetes/kubernetes/pull/128623), [@AnishShah](https://github.com/AnishShah)) [SIG Apps and Node]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "AnishShah", - "author_url": "https://github.com/AnishShah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128623", - "pr_number": 128623, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "128634": { - "commit": "ef37cb503b1a24fd9ba8979844f26b33a4efb089", - "text": "The feature-gate \"PodHostIPs\" has been removed. It is GA and its value has been locked since Kubernetes v1.30.", - "markdown": "The feature-gate \"PodHostIPs\" has been removed. It is GA and its value has been locked since Kubernetes v1.30. ([#128634](https://github.com/kubernetes/kubernetes/pull/128634), [@thockin](https://github.com/thockin)) [SIG Apps, Architecture, Node and Testing]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128634", - "pr_number": 128634, - "areas": [ - "test", - "kubelet", - "conformance" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "architecture", - "node", - "testing" - ], - "duplicate": true - }, - "128640": { - "commit": "c9024e7ae628f1473a6cac28e7bd6cd8e64f872f", - "text": "Added a one-time random duration of up to 50% of kubelet's `nodeStatusReportFrequency` to help spread the node status update load evenly over time.", - "markdown": "Added a one-time random duration of up to 50% of kubelet's `nodeStatusReportFrequency` to help spread the node status update load evenly over time. ([#128640](https://github.com/kubernetes/kubernetes/pull/128640), [@mengqiy](https://github.com/mengqiy))", - "author": "mengqiy", - "author_url": "https://github.com/mengqiy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128640", - "pr_number": 128640, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "128646": { - "commit": "33c64b380a11ba5a4d18a55b73d5f0a3ce89dc85", - "text": "The alpha Dynamic Resource Allocation gRPC API is still available, but might be removed in future releases. Driver authors should update their DRA drivers to use the v1beta1 gRPC API.", - "markdown": "The alpha Dynamic Resource Allocation gRPC API is still available, but might be removed in future releases. Driver authors should update their DRA drivers to use the v1beta1 gRPC API. ([#128646](https://github.com/kubernetes/kubernetes/pull/128646), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128646", - "pr_number": 128646, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "128676": { - "commit": "210f129bb06f9bed1d0b3c6c7650278bc6246b46", - "text": "NONE", - "markdown": "NONE ([#128676](https://github.com/kubernetes/kubernetes/pull/128676), [@vivzbansal](https://github.com/vivzbansal)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "vivzbansal", - "author_url": "https://github.com/vivzbansal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128676", - "pr_number": 128676, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true, - "do_not_publish": true - }, - "128681": { - "commit": "210deea063a5a778e8c3a8e32b8bc4c808b87835", - "text": "Revised error handling for port forwards to Pods. Added stream resets preventing port-forward from blockage.", - "markdown": "Revised error handling for port forwards to Pods. Added stream resets preventing port-forward from blockage. ([#128681](https://github.com/kubernetes/kubernetes/pull/128681), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI and Testing]", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128681", - "pr_number": 128681, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cli", - "testing" - ], - "duplicate": true - }, - "128683": { - "commit": "2691a29eacb6cc0d115eb773fb86825b9929f63d", - "text": "Removed support for removing requests and limits during a pod resize.", - "markdown": "Removed support for removing requests and limits during a pod resize. ([#128683](https://github.com/kubernetes/kubernetes/pull/128683), [@AnishShah](https://github.com/AnishShah)) [SIG Apps, Node and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "AnishShah", - "author_url": "https://github.com/AnishShah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128683", - "pr_number": 128683, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "duplicate": true - }, - "128764": { - "commit": "420c6982ef2ff7c7adce40fdb629ce03cdaba6e4", - "text": "For Dynamic Resource Allocation, the new \"v1beta1\" kubelet gPRC was renamed so that the protobuf package name is unique.", - "markdown": "For Dynamic Resource Allocation, the new \"v1beta1\" kubelet gPRC was renamed so that the protobuf package name is unique. ([#128764](https://github.com/kubernetes/kubernetes/pull/128764), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128764", - "pr_number": 128764, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "128852": { - "commit": "35d098aaa0a912171c46345e2c0a7b54d6046ef4", - "text": "Kubernetes is now built with Go 1.23.3.", - "markdown": "Kubernetes is now built with Go 1.23.3. ([#128852](https://github.com/kubernetes/kubernetes/pull/128852), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128852", - "pr_number": 128852, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128932": { - "commit": "e4c1f980b76fecece30c2f77885a7117192170a6", - "text": "For Dynamic Resource Allocation, labels in node selectors now are validated. Invalid labels already caused runtime errors before and are unlikely to occur in practice.", - "markdown": "For Dynamic Resource Allocation, labels in node selectors now are validated. Invalid labels already caused runtime errors before and are unlikely to occur in practice. ([#128932](https://github.com/kubernetes/kubernetes/pull/128932), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128932", - "pr_number": 128932, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "129081": { - "commit": "779d76176afe96f7a8b83c14cb6370650c9464a4", - "text": "Added request header UID propagation, behind an alpha `RemoteRequestHeaderUID` feature gate.", - "markdown": "Added request header UID propagation, behind an alpha `RemoteRequestHeaderUID` feature gate.", - "author":"stlaz", - "author_url":"https://github.com/stlaz", - "pr_url":"https://github.com/kubernetes/kubernetes/pull/129081", - "pr_number":129081, - "areas": [ - "apiserver", - "test" - ], - "kinds": [ - "feature" - ], - "sigs":[ - "api-machinery", - "cluster-lifecycle", - "testing" - ], - "feature": true, - "is_mapped":false - - }, - "12908": { - "commit": "3878a3a6de64660e356a35f70471c27a09698090", - "text": "kubelet: fixed an issue mounting CSI volumes on Windows nodes in 1.32.0 release candidates", - "markdown": "kubelet: fixed an issue mounting CSI volumes on Windows nodes in 1.32.0 release candidates", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129083", - "pr_number":129083, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kube-proxy", - "kubectl", - "kubelet" - ], - "kinds": [ - "bug" - - ], - "sigs":[ - - "api-machinery", - "apps", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "windows", - "storage", - "testing" - ], - "feature": false, - "is_mapped":false - }, - "129103": { - "commit": "3046fe23d4fe4ba86713ffd61bf0e07156b2b7c3", - "text": "kubelet: on Windows, consistently resolve filesystem links to volume identifiers instead of inconsistently normalizing to drive letters.", - "markdown": "kubelet: on Windows, consistently resolve filesystem links to volume identifiers instead of inconsistently normalizing to drive letters. ([#129103](https://github.com/kubernetes/kubernetes/pull/129103), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Storage and Windows]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129103", - "pr_number": 129103, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency", - "kube-proxy", - "kubectl", - "kubelet" - ], - "kinds": [ - "cleanup", - "bug" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "release", - "storage", - "windows" - ], - "feature": false, - "is_mapped":false, - "duplicate": false, - "duplicate_kind": false - } - -} +{ + "114136": { + "commit": "d14b0b0cb1455e0619a05144e760ce5741b7f988", + "text": "kubelet plugins are now re-registered properly on Windows if the re-registration period is \u003c 15ms.", + "markdown": "kubelet plugins are now re-registered properly on Windows if the re-registration period is \u003c 15ms. ([#114136](https://github.com/kubernetes/kubernetes/pull/114136), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Storage, Testing and Windows]", + "author": "claudiubelu", + "author_url": "https://github.com/claudiubelu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/114136", + "pr_number": 114136, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "node", + "storage", + "testing", + "windows" + ], + "duplicate": true, + "duplicate_kind": true + }, + "115834": { + "commit": "9f01cd7b28fdbc8a1ceb9ec371fd817551659ee5", + "text": "kube-apiserver: a new `--requestheader-uid-headers` flag allows configuring request header authentication to obtain the authenticating user's UID from the specified headers. The suggested value for the new option is `X-Remote-Uid`. When specified, the `kube-system/extension-apiserver-authentication` configmap will include the value in its `.data[requestheader-uid-headers]` field.", + "markdown": "kube-apiserver: a new `--requestheader-uid-headers` flag allows configuring request header authentication to obtain the authenticating user's UID from the specified headers. The suggested value for the new option is `X-Remote-Uid`. When specified, the `kube-system/extension-apiserver-authentication` configmap will include the value in its `.data[requestheader-uid-headers]` field. ([#115834](https://github.com/kubernetes/kubernetes/pull/115834), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Auth, Cloud Provider and Testing]", + "author": "stlaz", + "author_url": "https://github.com/stlaz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/115834", + "pr_number": 115834, + "areas": [ + "test", + "apiserver", + "cloudprovider" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "119089": { + "commit": "5fa794db46c3e6d13a58e20e11aa86367b9585b5", + "text": "Output a log as v4-level when probe is triggered and shift the periodic timer of ReadinessProbe after manual run.", + "markdown": "Output a log as v4-level when probe is triggered and shift the periodic timer of ReadinessProbe after manual run. ([#119089](https://github.com/kubernetes/kubernetes/pull/119089), [@mochizuki875](https://github.com/mochizuki875))", + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/119089", + "pr_number": 119089, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "120586": { + "commit": "bb2b52e6509b5f9d47078ade9cab2be69f27214b", + "text": "When `SchedulerQueueingHints` is enabled, clear events cached in the scheduling queue as soon as possible so that the scheduler consumes less memory.", + "markdown": "When `SchedulerQueueingHints` is enabled, clear events cached in the scheduling queue as soon as possible so that the scheduler consumes less memory. ([#120586](https://github.com/kubernetes/kubernetes/pull/120586), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120586", + "pr_number": 120586, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "121206": { + "commit": "2f3da71f99b607450687178273668542510b1043", + "text": "`StartupProbe` was explicitly stopped when the `successThreshold` was reached.\nThis eliminated the problem of executing `StartupProbe` more times than \nthe `successThreshold`.", + "markdown": "`StartupProbe` was explicitly stopped when the `successThreshold` was reached.\n This eliminated the problem of executing `StartupProbe` more times than \n the `successThreshold`. ([#121206](https://github.com/kubernetes/kubernetes/pull/121206), [@mochizuki875](https://github.com/mochizuki875))", + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121206", + "pr_number": 121206, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "121968": { + "commit": "a2a32fc31aa5b118d85ce7cc2587739ab005c8fd", + "text": "Added warnings for overlap paths in ConfigMap, Secret, DownwardAPI, Projected. Added warning for cases when ProjectedVolume with sources is provided.", + "markdown": "Added warnings for overlap paths in ConfigMap, Secret, DownwardAPI, Projected. Added warning for cases when ProjectedVolume with sources is provided. ([#121968](https://github.com/kubernetes/kubernetes/pull/121968), [@Peac36](https://github.com/Peac36))", + "author": "Peac36", + "author_url": "https://github.com/Peac36", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/121968", + "pr_number": 121968, + "kinds": [ + "bug" + ], + "sigs": [ + "auth" + ], + "is_mapped": true + }, + "122890": { + "commit": "d6bb550b1079af165a1bba9485b8c026735de17f", + "text": "Fixed a bug where `spec.terminationGracePeriodSeconds` of a pod would always be overwritten by `MaxPodGracePeriodSeconds` during a soft eviction. To restore the previous behavior, enable the `AllowOverwriteTerminationGracePeriodSeconds` feature gate. If you need to set this, please file an issue with the Kubernetes project to help contributors understand your requirements.", + "markdown": "Fixed a bug where `spec.terminationGracePeriodSeconds` of a pod would always be overwritten by `MaxPodGracePeriodSeconds` during a soft eviction. To restore the previous behavior, enable the `AllowOverwriteTerminationGracePeriodSeconds` feature gate. If you need to set this, please file an issue with the Kubernetes project to help contributors understand your requirements. ([#122890](https://github.com/kubernetes/kubernetes/pull/122890), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Architecture, Node, and Testing]", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122890", + "pr_number": 122890, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "architecture", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "123549": { + "commit": "08391b3d273da28d47da2950082cea99d571bbcb", + "text": "Added a new controller, volumeattributesclass-protection-controller, into the kube-controller-manager.\nThe new controller manages a protective finalizer on VolumeAttributesClass objects.", + "markdown": "Added a new controller, volumeattributesclass-protection-controller, into the kube-controller-manager.\n The new controller manages a protective finalizer on VolumeAttributesClass objects. ([#123549](https://github.com/kubernetes/kubernetes/pull/123549), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Auth and Storage]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3751", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123549", + "pr_number": 123549, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "storage" + ], + "feature": true, + "duplicate": true + }, + "124003": { + "commit": "0bcbc3b77a0b5358f53e81e8fa7605909bf8a2fe", + "text": "kube-scheduler removed `AzureDiskLimits`, `CinderLimits`, `EBSLimits`, and `GCEPDLimits` plugins. With the corresponding CSI driver reporting how many volumes a node can handle in `NodeGetInfoResponse`, kubelet stores this limit in CSINode, enabling the scheduler to know the driver's limit on the node. Remove these plugins if explicitly enabled in the scheduler config.", + "markdown": "kube-scheduler removed `AzureDiskLimits`, `CinderLimits`, `EBSLimits`, and `GCEPDLimits` plugins. With the corresponding CSI driver reporting how many volumes a node can handle in `NodeGetInfoResponse`, kubelet stores this limit in CSINode, enabling the scheduler to know the driver's limit on the node. Remove these plugins if explicitly enabled in the scheduler config. ([#124003](https://github.com/kubernetes/kubernetes/pull/124003), [@carlory](https://github.com/carlory)) [SIG Scheduling, Storage, and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124003", + "pr_number": 124003, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true, + "is_mapped": true + }, + "124216": { + "commit": "a8e1f41131455a595f68338e3aaee9af2c2410e1", + "text": "Fix: Avoid overwriting in-pod vertical scaling updates during systemd daemon reloads when using systemd.", + "markdown": "Fix: Avoid overwriting in-pod vertical scaling updates during systemd daemon reloads when using systemd. ([#124216](https://github.com/kubernetes/kubernetes/pull/124216), [@iholder101](https://github.com/iholder101)) [SIG Node]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "iholder101", + "author_url": "https://github.com/iholder101", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124216", + "pr_number": 124216, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "124227": { + "commit": "d67e6545b159658d5500f773595cc7a6b62e94ba", + "text": "Added status for extended Pod resources within the `status.containerStatuses[].resources` field.", + "markdown": "Added support for extended Pod resource status in the `status.containerStatuses[].resources` field. ([#124227](https://github.com/kubernetes/kubernetes/pull/124227), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "iholder101", + "author_url": "https://github.com/iholder101", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124227", + "pr_number": 124227, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "124285": { + "commit": "53ab13397d0a35280fada33266ef35d3682705ac", + "text": "CRI: Added a field to support CPU affinity on Windows.", + "markdown": "CRI: Introduced a field to enable CPU affinity support on Windows. ([#124285](https://github.com/kubernetes/kubernetes/pull/124285), [@kiashok](https://github.com/kiashok)) [SIG Node and Windows]", + "author": "kiashok", + "author_url": "https://github.com/kiashok", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124285", + "pr_number": 124285, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "windows" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124389": { + "commit": "35b4695e5a7f597315e59a12472e657439c3bff5", + "text": "Added: Log Line for Debugging possible merge errors for kubelet related Config requests.", + "markdown": "Added a log line to debug potential merge errors for kubelet-related configuration requests. ([#124389](https://github.com/kubernetes/kubernetes/pull/124389), [@holgerson97](https://github.com/holgerson97))", + "author": "holgerson97", + "author_url": "https://github.com/holgerson97", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124389", + "pr_number": 124389, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "124703": { + "commit": "a7242fcff768658019f878cb691583dcbcfefb2d", + "text": "Implemented a queueing hint for PersistentVolumeClaim/Add event in `CSILimit` plugin.", + "markdown": "Implemented a queuing hint for `PersistentVolumeClaim/Add` events in the `CSILimit` plugin. ([#124703](https://github.com/kubernetes/kubernetes/pull/124703), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Storage]", + "author": "utam0k", + "author_url": "https://github.com/utam0k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124703", + "pr_number": 124703, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "124747": { + "commit": "ad879205486a669dbaa5f5c49c247db7ea33fd33", + "text": "Events:\n Type Reason Age From Message\n ---- ------ ---- ---- -------\n Normal EnsuringLoadBalancer 6m7s (x268 over 22h) service-controller Ensuring load balancer", + "markdown": "```plaintext\nEvents:\n Type Reason Age From Message\n ---- ------ ---- ---- -------\n Normal EnsuringLoadBalancer 6m7s (x268 over 22h) service-controller Ensuring load balancer\n``` ([#124747](https://github.com/kubernetes/kubernetes/pull/124747), [@l-technicore](https://github.com/l-technicore)) [SIG API Machinery]", + "author": "l-technicore", + "author_url": "https://github.com/l-technicore", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124747", + "pr_number": 124747, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "124947": { + "commit": "2ade53e264b701c46fb11a13ad0c58dba13af1fd", + "text": "Fixed a bug where restartable and non-restartable init containers were not accounted for in the message and annotations of the eviction event.", + "markdown": "Fixed a bug where restartable and non-restartable init containers were not accounted for in the message and annotations of the eviction event. ([#124947](https://github.com/kubernetes/kubernetes/pull/124947), [@toVersus](https://github.com/toVersus)) [SIG Node]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/753", + "type": "KEP" + } + ], + "author": "toVersus", + "author_url": "https://github.com/toVersus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124947", + "pr_number": 124947, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "124952": { + "commit": "9a9331afd60a4db3ffd8dc9bd38b788948308175", + "text": "The Job controller now considers sidecar container restart counts when removing pods.", + "markdown": "The Job controller now considers sidecar container restart counts when removing pods. ([#124952](https://github.com/kubernetes/kubernetes/pull/124952), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps and CLI]", + "documentation": [ + { + "description": "[KEP]: \u003c", + "url": "https://github.com/kubernetes/enhancements/issues/753\u003e", + "type": "KEP" + } + ], + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124952", + "pr_number": 124952, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "cli" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125070": { + "commit": "e2c17c09a494f679e5a8fb46f2d5ca05363df0a8", + "text": "Node shutdown controller made a best effort to wait for CSI drivers to complete the volume teardown process according to the pod priority groups.", + "markdown": "The node shutdown controller now makes a best effort to wait for CSI drivers to complete the volume teardown process according to the pod priority groups. ([#125070](https://github.com/kubernetes/kubernetes/pull/125070), [@torredil](https://github.com/torredil)) [SIG Node, Storage, and Testing]", + "author": "torredil", + "author_url": "https://github.com/torredil", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125070", + "pr_number": 125070, + "areas": [ + "test", + "kubelet", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125118": { + "commit": "a1df68a31f535d4d4d55090e89805d8e574c3aa9", + "text": "Output for the `ScalingReplicaSet` event has changed from:\n Scaled \u003cup|down\u003e replica set \u003creplica-set-name\u003e to \u003cnew-value\u003e from \u003cold-value\u003e\nto:\n Scaled \u003cup|down\u003e replica set \u003creplica-set-name\u003e from \u003cold-value\u003e to \u003cnew-value\u003e.", + "markdown": "The output for the `ScalingReplicaSet` event has changed from:\n\n```plaintext\nScaled \u003cup|down\u003e replica set \u003creplica-set-name\u003e to \u003cnew-value\u003e from \u003cold-value\u003e\n```\n\nto:\n\n```plaintext\nScaled \u003cup|down\u003e replica set \u003creplica-set-name\u003e from \u003cold-value\u003e to \u003cnew-value\u003e\n```. ([#125118](https://github.com/kubernetes/kubernetes/pull/125118), [@jsoref](https://github.com/jsoref)) [SIG Apps and CLI]", + "author": "jsoref", + "author_url": "https://github.com/jsoref", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125118", + "pr_number": 125118, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "cli" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125171": { + "commit": "3de975b732ed40a586f3b0b979ff8b7170ba1ea1", + "text": "The scheduler implemented `QueueingHint` in the VolumeBinding plugin's CSIDriver event, enhancing the throughput of scheduling.", + "markdown": "The scheduler implemented `QueueingHint` in the VolumeBinding plugin's CSIDriver event, enhancing the throughput of scheduling. ([#125171](https://github.com/kubernetes/kubernetes/pull/125171), [@YamasouA](https://github.com/YamasouA)) [SIG Scheduling and Storage]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4247", + "type": "KEP" + } + ], + "author": "YamasouA", + "author_url": "https://github.com/YamasouA", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125171", + "pr_number": 125171, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125186": { + "commit": "e5dd48efd07e8a052604b3073e0fafe7361ca689", + "text": "NONE", + "markdown": "NONE ([#125186](https://github.com/kubernetes/kubernetes/pull/125186), [@liyuerich](https://github.com/liyuerich)) [SIG Auth]", + "author": "liyuerich", + "author_url": "https://github.com/liyuerich", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125186", + "pr_number": 125186, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "auth" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "125296": { + "commit": "4932adf80d9ac97e895d22ce822f80863d7cd1aa", + "text": "Windows: Support CPU and Topology Manager on Windows.", + "markdown": "Windows: Support CPU and Topology Manager on Windows. ([#125296](https://github.com/kubernetes/kubernetes/pull/125296), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/pull/4888", + "type": "KEP" + } + ], + "author": "jsturtevant", + "author_url": "https://github.com/jsturtevant", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125296", + "pr_number": 125296, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "windows" + ], + "feature": true, + "duplicate": true + }, + "125337": { + "commit": "48f36acc7a13d37c357aa6abff55a01267eab8a9", + "text": "The kubelet, when using `--cloud-provider=external` can use the `--node-ip` flag with one of the unspecified addresses 0.0.0.0 or ::, to create the Node with the IP of the default gateway of the corresponding IP family and then delegating the responsibility to the external cloud provider. This solves the bootstrap problems of out of tree cloud providers that are deployed as Pods within the cluster.", + "markdown": "The kubelet, when using `--cloud-provider=external` can use the `--node-ip` flag with one of the unspecified addresses 0.0.0.0 or ::, to create the Node with the IP of the default gateway of the corresponding IP family and then delegating the responsibility to the external cloud provider. This solves the bootstrap problems of out of tree cloud providers that are deployed as Pods within the cluster. ([#125337](https://github.com/kubernetes/kubernetes/pull/125337), [@aojea](https://github.com/aojea)) [SIG Cloud Provider, Network, Node and Testing]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125337", + "pr_number": 125337, + "areas": [ + "test", + "kubelet", + "cloudprovider" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cloud-provider", + "network", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125372": { + "commit": "9d140b136c59ed2530a7b22502921bcf1aab4716", + "text": "Improved the scalability of the PVC Protection Controller by batch-processing PVCs by namespace with lazy live pod listing.", + "markdown": "Improved the scalability of the PVC Protection Controller by batch-processing PVCs by namespace with lazy live pod listing. ([#125372](https://github.com/kubernetes/kubernetes/pull/125372), [@hungnguyen243](https://github.com/hungnguyen243)) [SIG Apps, Node, Storage, and Testing]", + "author": "hungnguyen243", + "author_url": "https://github.com/hungnguyen243", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125372", + "pr_number": 125372, + "areas": [ + "test", + "kubelet", + "apiserver", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "node", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125398": { + "commit": "211d67a511f081623b5a0ac008fc3712452905b4", + "text": "Fixed a bug where pods bound to a PersistentVolume with `nodeAffinity` using the hostname label could be scheduled to the wrong node or fail scheduling when the hostname label of a node did not match the node name.", + "markdown": "Fixed a bug where pods bound to a PersistentVolume with `nodeAffinity` using the hostname label could be scheduled to the wrong node or fail scheduling when the hostname label of a node did not match the node name. ([#125398](https://github.com/kubernetes/kubernetes/pull/125398), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Storage]", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125398", + "pr_number": 125398, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "storage" + ], + "duplicate": true, + "is_mapped": true + }, + "125577": { + "commit": "60651eb17257356a2be70ac8d2c14218c1af0834", + "text": "Added a `/statusz` endpoint for the kube-apiserver endpoint.", + "markdown": "Added a `/statusz` endpoint for the kube-apiserver endpoint. ([#125577](https://github.com/kubernetes/kubernetes/pull/125577), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node and Testing]", + "author": "richabanker", + "author_url": "https://github.com/richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125577", + "pr_number": 125577, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "provider/gcp", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "cli", + "cloud-provider", + "instrumentation", + "network", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125634": { + "commit": "bbd83d86444d7b325a51f4daa0d65163b795b70e", + "text": "X.509 client certificate authentication to the kube-apiserver now generates credential IDs (derived from the certificate's signature) for use in audit logging.", + "markdown": "X.509 client certificate authentication to the kube-apiserver now generates credential IDs (derived from the certificate's signature) for use in audit logging. ([#125634](https://github.com/kubernetes/kubernetes/pull/125634), [@ahmedtd](https://github.com/ahmedtd)) [SIG API Machinery, Auth, and Testing]", + "author": "ahmedtd", + "author_url": "https://github.com/ahmedtd", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125634", + "pr_number": 125634, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125757": { + "commit": "8504758a2ea9ff69f5091b2e4669dfec417e31de", + "text": "NONE", + "markdown": "NONE ([#125757](https://github.com/kubernetes/kubernetes/pull/125757), [@esotsal](https://github.com/esotsal)) [SIG Node]", + "author": "esotsal", + "author_url": "https://github.com/esotsal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125757", + "pr_number": 125757, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "do_not_publish": true + }, + "125796": { + "commit": "5dd244ff0030a7b7af5f9834db181479c03cb07b", + "text": "Fixed a bug in the garbage collector controller that could block indefinitely due to a cache sync failure. This fix allows the garbage collector to eventually continue garbage collecting other resources if a given resource cannot be listed or watched. Any objects in the unsynced resource type with owner references having `blockOwnerDeletion: true` will not be known to the garbage collector. The use of `blockOwnerDeletion` has always been best-effort and prone to race conditions during startup and object creation. With this fix, it continues to be best-effort for resources that cannot be synced by the garbage collector controller.", + "markdown": "Fixed a bug in the garbage collector controller that could block indefinitely due to a cache sync failure. This fix allows the garbage collector to eventually continue garbage collecting other resources if a given resource cannot be listed or watched. Any objects in the unsynced resource type with owner references having `blockOwnerDeletion: true` will not be known to the garbage collector. The use of `blockOwnerDeletion` has always been best-effort and prone to race conditions during startup and object creation. With this fix, it continues to be best-effort for resources that cannot be synced by the garbage collector controller. ([#125796](https://github.com/kubernetes/kubernetes/pull/125796), [@haorenfsa](https://github.com/haorenfsa)) [SIG API Machinery, Apps, and Testing]", + "author": "haorenfsa", + "author_url": "https://github.com/haorenfsa", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125796", + "pr_number": 125796, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125923": { + "commit": "762a85e25d9c043b3729dcca4294a49a9e0f55e5", + "text": "Fixed a bug where the kubelet intermittently failed with `failed to initialize top-level QOS containers: root container [kubepods] doesn't exist`, caused by the cpuset cgroup being deleted on cgroup v2 with the systemd cgroup manager.", + "markdown": "Fixed a bug where the kubelet intermittently failed with `failed to initialize top-level QOS containers: root container [kubepods] doesn't exist`, caused by the cpuset cgroup being deleted on cgroup v2 with the systemd cgroup manager. ([#125923](https://github.com/kubernetes/kubernetes/pull/125923), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing]", + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125923", + "pr_number": 125923, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "125982": { + "commit": "c923a61dddf4db8cf6f0f59062b5f3362fa593e2", + "text": "Introduced compressible resource settings on system-reserved and kube-reserved slices.", + "markdown": "Introduced compressible resource settings on system-reserved and kube-reserved slices. ([#125982](https://github.com/kubernetes/kubernetes/pull/125982), [@harche](https://github.com/harche))", + "author": "harche", + "author_url": "https://github.com/harche", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125982", + "pr_number": 125982, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "125995": { + "commit": "9571d3b6c616bed1c5ad14fe65f13170a3fe9e55", + "text": "Removed unneeded permissions from system:controller:persistent-volume-binder and system:controller:expand-controller clusterroles.", + "markdown": "Removed unneeded permissions from system:controller:persistent-volume-binder and system:controller:expand-controller clusterroles. ([#125995](https://github.com/kubernetes/kubernetes/pull/125995), [@carlory](https://github.com/carlory)) [SIG Auth and Storage]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125995", + "pr_number": 125995, + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "storage" + ], + "duplicate": true + }, + "126022": { + "commit": "ea1143efc728d2a2425de724570820a7729edabc", + "text": "Changed NodeToStatusMap from a map to a struct and exposed methods to access its entries. Added absentNodesStatus, which indicates the status of nodes absent in the map. \n\nFor developers of out-of-tree PostFilter plugins, ensure to update the usage of NodeToStatusMap. Additionally, NodeToStatusMap is planned to be renamed to NodeToStatusReader in the future.", + "markdown": "Changed NodeToStatusMap from a map to a struct and exposed methods to access its entries. Added absentNodesStatus, which indicates the status of nodes absent in the map. \n\nFor developers of out-of-tree PostFilter plugins, ensure to update the usage of NodeToStatusMap. Additionally, NodeToStatusMap is planned to be renamed to NodeToStatusReader in the future. ([#126022](https://github.com/kubernetes/kubernetes/pull/126022), [@macsko](https://github.com/macsko)) [SIG Node, Scheduling, and Testing]", + "author": "macsko", + "author_url": "https://github.com/macsko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126022", + "pr_number": 126022, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "action_required": true + }, + "126029": { + "commit": "59051eb003626584db643442e33170930be0c63e", + "text": "The scheduler now retries gated Pods more appropriately, applying a backoff penalty as well.", + "markdown": "The scheduler now retries gated Pods more appropriately, applying a backoff penalty as well. ([#126029](https://github.com/kubernetes/kubernetes/pull/126029), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126029", + "pr_number": 126029, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "126032": { + "commit": "d088d4c38720b977084860a167770c9f14f9eb90", + "text": "kubeadm: `kubeadm upgrade apply` now supports phase sub-command, user can use `kubeadm upgrade apply phase \u003cphase-name\u003e` to execute the specified phase, or use `kubeadm upgrade apply --skip-phases \u003cphase-names\u003e` to skip some phases during cluster upgrade.", + "markdown": "kubeadm: `kubeadm upgrade apply` now supports phase sub-command, user can use `kubeadm upgrade apply phase \u003cphase-name\u003e` to execute the specified phase, or use `kubeadm upgrade apply --skip-phases \u003cphase-names\u003e` to skip some phases during cluster upgrade. ([#126032](https://github.com/kubernetes/kubernetes/pull/126032), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126032", + "pr_number": 126032, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, +"126038": { + "commit": "e54c8ef2024e638d721242224f6f925b15ee43f5", + "text": "Send an error on `ResultChan` and close the `RetryWatcher` when the client is forbidden or unauthorized from watching the resource.", + "markdown": "Send an error on `ResultChan` and close the `RetryWatcher` when the client is forbidden or unauthorized from watching the resource. ([#126038](https://github.com/kubernetes/kubernetes/pull/126038), [@mprahl](https://github.com/mprahl)) [SIG API Machinery]", + "author": "mprahl", + "author_url": "https://github.com/mprahl", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126038", + "pr_number": 126038, + "areas": [ + "api-machinery" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "126096": { + "commit": "c462d4c8e52f3e7bcfd0765b5729569f8d5daa65", + "text": "Added `singleProcessOOMKill` flag to the kubelet configuration. Setting that to true enable single process OOM killing in cgroups v2. In this mode, if a single process is OOM killed within a container, the remaining processes will not be OOM killed.", + "markdown": "Added `singleProcessOOMKill` flag to the kubelet configuration. Setting that to true enable single process OOM killing in cgroups v2. In this mode, if a single process is OOM killed within a container, the remaining processes will not be OOM killed. ([#126096](https://github.com/kubernetes/kubernetes/pull/126096), [@utam0k](https://github.com/utam0k)) [SIG API Machinery, Node, Testing and Windows]", + "author": "utam0k", + "author_url": "https://github.com/utam0k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126096", + "pr_number": 126096, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "node", + "testing", + "windows" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "126287": { + "commit": "bb7411120aa71e4653640bc59ba56efd2586ccb4", + "text": "The default value for `node-monitor-grace-period` has been increased to 50s (previously 40s). (Ref - https://github.com/kubernetes/kubernetes/issues/121793)", + "markdown": "The default value for `node-monitor-grace-period` has been increased to 50s (previously 40s). (Ref - https://github.com/kubernetes/kubernetes/issues/121793) ([#126287](https://github.com/kubernetes/kubernetes/pull/126287), [@devppratik](https://github.com/devppratik)) [SIG API Machinery, Apps, and Node]", + "author": "devppratik", + "author_url": "https://github.com/devppratik", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126287", + "pr_number": 126287, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "node" + ], + "duplicate": true, + "duplicate_kind": true + }, + "126318": { + "commit": "36fafafdb06a8102739928dcb83517a6d1ae1f97", + "text": "kubelet now attempts to retrieve an existing node if the request to create it fails with `StatusForbidden`.", + "markdown": "kubelet now attempts to retrieve an existing node if the request to create it fails with `StatusForbidden`. ([#126318](https://github.com/kubernetes/kubernetes/pull/126318), [@hoskeri](https://github.com/hoskeri)) [SIG Node]", + "author": "hoskeri", + "author_url": "https://github.com/hoskeri", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126318", + "pr_number": 126318, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "126336": { + "commit": "1ce20b2b6fb5912053cbd7bb181e79b3c0b344fa", + "text": "Removed support for the kubelet `--runonce` mode.\nIf you specify the kubelet command line flag `--runonce`, this is an error.\nSetting `runOnce` in a kubelet configuration file is also an error, and specifying any\nvalue for that configuration option is now deprecated.", + "markdown": "Removed support for the kubelet `--runonce` mode.\n If you specify the kubelet command line flag `--runonce`, this is an error.\n Setting `runOnce` in a kubelet configuration file is also an error, and specifying any\n value for that configuration option is now deprecated. ([#126336](https://github.com/kubernetes/kubernetes/pull/126336), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node and Scalability]", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126336", + "pr_number": 126336, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "scalability" + ], + "duplicate": true + }, + "126343": { + "commit": "3f306ae140a75e6334d2d89b8e761e197849aa17", + "text": "Terminated Pods on a node will not be re-admitted upon kubelet restart. This fixes the problem where Completed Pods awaiting finalizer marking were incorrectly marked as Failed after the kubelet restarted.", + "markdown": "Terminated Pods on a node will not be re-admitted upon kubelet restart. This fixes the problem where Completed Pods awaiting finalizer marking were incorrectly marked as Failed after the kubelet restarted. ([#126343](https://github.com/kubernetes/kubernetes/pull/126343), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node and Testing]", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126343", + "pr_number": 126343, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true +}, +"126347": { + "commit": "f5ae0413cadb1d2d3d3d47857cdd65b4b6d194ba", + "text": "Revised the kubelet API Authorization with new subresources that allow finer-grained authorization checks and access control for kubelet endpoints. Provided you enable the `KubeletFineGrainedAuthz` feature gate, you can access kubelet's `/healthz` endpoint by granting the caller `nodes/healthz` permission in RBAC. Similarly, you can access kubelet's `/pods` endpoint to fetch a list of Pods bound to that node by granting the caller `nodes/pods` permission in RBAC. Additionally, you can access kubelet's `/configz` endpoint to fetch its configuration by granting the caller `nodes/configz` permission in RBAC. Alternatively, granting `nodes/proxy` permission allows access to `/healthz`, `/pods`, and `/configz`, but also permits exec, run, and attach operations on containers on the nodes, violating the principle of least privilege.", + "markdown": "Revised the kubelet API Authorization with new subresources that allow finer-grained authorization checks and access control for kubelet endpoints. Provided you enable the `KubeletFineGrainedAuthz` feature gate, you can access kubelet's `/healthz` endpoint by granting the caller `nodes/healthz` permission in RBAC. Similarly, you can access kubelet's `/pods` endpoint to fetch a list of Pods bound to that node by granting the caller `nodes/pods` permission in RBAC. Additionally, you can access kubelet's `/configz` endpoint to fetch its configuration by granting the caller `nodes/configz` permission in RBAC. Alternatively, granting `nodes/proxy` permission allows access to `/healthz`, `/pods`, and `/configz`, but also permits exec, run, and attach operations on containers on the nodes, violating the principle of least privilege. ([#126347](https://github.com/kubernetes/kubernetes/pull/126347), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG API Machinery, Auth, Cluster Lifecycle, and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2862", + "type": "KEP" + } + ], + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126347", + "pr_number": 126347, + "areas": [ + "kubelet", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cluster-lifecycle", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true +}, +"126359": { + "commit": "f88281768c52a5729d1dccee16164b472e794922", + "text": "Fixed the estimated cost in CEL for expressions performing equality checks on IPs, CIDRs, Quantities, Formats, and URLs.", + "markdown": "Fixed the estimated cost in CEL for expressions performing equality checks on IPs, CIDRs, Quantities, Formats, and URLs. ([#126359](https://github.com/kubernetes/kubernetes/pull/126359), [@jpbetz](https://github.com/jpbetz))", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126359", + "pr_number": 126359, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true +}, +"126374": { + "commit": "fc64d2abb0004b824b712c6440231c574d8493c9", + "text": "kubeadm: promoted the feature gate `EtcdLearnerMode` to GA. Learner mode in etcd deployed by kubeadm is now locked to enabled by default.", + "markdown": "kubeadm: promoted the feature gate `EtcdLearnerMode` to GA. Learner mode in etcd deployed by kubeadm is now locked to enabled by default. ([#126374](https://github.com/kubernetes/kubernetes/pull/126374), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126374", + "pr_number": 126374, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true +}, +"126435": { + "commit": "a4ec0c039a87bce06f0ea88664d791c61b888978", + "text": "Device manager: stopped using annotations to pass CDI device info to runtimes. Containerd versions older than v1.7.2 do not support passing CDI info through CRI and need to be upgraded.", + "markdown": "Device manager: stopped using annotations to pass CDI device info to runtimes. Containerd versions older than v1.7.2 do not support passing CDI info through CRI and need to be upgraded. ([#126435](https://github.com/kubernetes/kubernetes/pull/126435), [@bart0sh](https://github.com/bart0sh)) [SIG Node]", + "author": "bart0sh", + "author_url": "https://github.com/bart0sh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126435", + "pr_number": 126435, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ] + }, + "126449": { + "commit": "046c098a459db6482d64b949bb48fc8253043256", + "text": "Upgraded coreDNS to v1.11.3.", + "markdown": "Upgraded coreDNS to v1.11.3. ([#126449](https://github.com/kubernetes/kubernetes/pull/126449), [@BenTheElder](https://github.com/BenTheElder)) [SIG Cloud Provider and Cluster Lifecycle]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126449", + "pr_number": 126449, + "areas": [ + "provider/gcp", + "kubeadm", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "cluster-lifecycle" + ], + "duplicate": true, + "is_mapped": true + }, + "126460": { + "commit": "bf4cf4d7790f9982919092ddf2b0141a4c171dee", + "text": "hostNetwork pods no longer depend on the PodIPs to be assigned to configure the defined hostAliases on the Pod", + "markdown": "HostNetwork pods no longer depend on the PodIPs to be assigned to configure the defined hostAliases on the Pod ([#126460](https://github.com/kubernetes/kubernetes/pull/126460), [@aojea](https://github.com/aojea)) [SIG Network, Node and Testing]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126460", + "pr_number": 126460, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "node", + "testing" + ], + "duplicate": true + }, + "126465": { + "commit": "e90364f45d78ebaf47d80215459e055bd67b5c9b", + "text": "ACTION REQUIRED for custom scheduler plugin developers:\n`PodEligibleToPreemptOthers` in the `preemption` interface gets `ctx` in the parameters.\nPlease change your plugins' implementation accordingly.", + "markdown": "ACTION REQUIRED for custom scheduler plugin developers:\n `PodEligibleToPreemptOthers` in the `preemption` interface gets `ctx` in the parameters.\n Please change your plugins' implementation accordingly. ([#126465](https://github.com/kubernetes/kubernetes/pull/126465), [@googs1025](https://github.com/googs1025)) [SIG Scheduling]", + "author": "googs1025", + "author_url": "https://github.com/googs1025", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126465", + "pr_number": 126465, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "action_required": true + }, + "126488": { + "commit": "7ee17ce9b7c2a22e63e2bbd79d48d3fe349a9386", + "text": "kubelet: use the CRI stats provider if `PodAndContainerStatsFromCRI` feature is enabled", + "markdown": "kubelet: use the CRI stats provider if `PodAndContainerStatsFromCRI` feature is enabled ([#126488](https://github.com/kubernetes/kubernetes/pull/126488), [@haircommander](https://github.com/haircommander)) [SIG Node]", + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126488", + "pr_number": 126488, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "126503": { + "commit": "31970d418ccae80c9c7e25e8c503035a79a53763", + "text": "Fake clientsets now use a common, generic implementation. The corresponding structs are now private; callers must use the corresponding constructors.", + "markdown": "Fake clientsets now use a common, generic implementation. The corresponding structs are now private; callers must use the corresponding constructors. ([#126503](https://github.com/kubernetes/kubernetes/pull/126503), [@skitt](https://github.com/skitt)) [SIG API Machinery, Architecture, Auth and Instrumentation]", + "author": "skitt", + "author_url": "https://github.com/skitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126503", + "pr_number": 126503, + "areas": [ + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "126512": { + "commit": "77737c3eb37afaadbf40ec499a58c1593c9c7382", + "text": "Included an additional resource labeltransformati in on_operations_total metric which could be used for resource specific validations for example handling of encryption config by the apiserver.", + "markdown": "Included an additional resource labeltransformati in on_operations_total metric which could be used for resource specific validations for example handling of encryption config by the apiserver. ([#126512](https://github.com/kubernetes/kubernetes/pull/126512), [@kmala](https://github.com/kmala)) [SIG API Machinery, Auth, Etcd and Testing]", + "author": "kmala", + "author_url": "https://github.com/kmala", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126512", + "pr_number": 126512, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "etcd", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "126529": { + "commit": "66dca4523e010180271dfd6c4d91023cba949b1f", + "text": "Added preemptionPolicy field when using `kubectl get PriorityClass -owide`", + "markdown": "Added preemptionPolicy field when using `kubectl get PriorityClass -owide` ([#126529](https://github.com/kubernetes/kubernetes/pull/126529), [@googs1025](https://github.com/googs1025)) [SIG CLI]", + "author": "googs1025", + "author_url": "https://github.com/googs1025", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126529", + "pr_number": 126529, + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "126532": { + "commit": "201bdaa2fe0f2af72c2f9880707a2ec13bcb63fc", + "text": "Fixed a race condition in the kube-proxy initialization that could cause UDP traffic to service VIP.", + "markdown": "Fixed a race condition in the kube-proxy initialization that could cause UDP traffic to service VIP. ([#126532](https://github.com/kubernetes/kubernetes/pull/126532), [@wedaly](https://github.com/wedaly))", + "author": "wedaly", + "author_url": "https://github.com/wedaly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126532", + "pr_number": 126532, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "126533": { + "commit": "602c70b65d49e0687026064edb8601087da00bd2", + "text": "Realigned line breaks from `kubectl explain` descriptions.", + "markdown": "Realigned line breaks from `kubectl explain` descriptions. ([#126533](https://github.com/kubernetes/kubernetes/pull/126533), [@ah8ad3](https://github.com/ah8ad3))", + "author": "ah8ad3", + "author_url": "https://github.com/ah8ad3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126533", + "pr_number": 126533, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "126538": { + "commit": "62cd87e8392c55cedf3b47f6b3203f0cb7dd483b", + "text": "kubeadm: added a validation warning when the certificateValidityPeriod is more than the caCertificateValidityPeriod", + "markdown": "kubeadm: added a validation warning when the certificateValidityPeriod is more than the caCertificateValidityPeriod ([#126538](https://github.com/kubernetes/kubernetes/pull/126538), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126538", + "pr_number": 126538, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "126543": { + "commit": "b73f84c9346f1e36640ff1cfa43cbc571def35b9", + "text": "Fixed a regression in default 1.29 configurations with the `SidecarContainers` feature enabled, where init containers may fail to start due to a temporary container runtime failure.", + "markdown": "Fixed a regression in default 1.29 configurations with the `SidecarContainers` feature enabled, where init containers may fail to start due to a temporary container runtime failure. ([#126543](https://github.com/kubernetes/kubernetes/pull/126543), [@gjkim42](https://github.com/gjkim42))", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126543", + "pr_number": 126543, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "126545": { + "commit": "6a478b4306ea9ae3b8f86bd1ef71072d9a03be22", + "text": "Updated an incorrect description of `persistentVolumeClaimRetentionPolicy`.", + "markdown": "Updated an incorrect description of `persistentVolumeClaimRetentionPolicy`. ([#126545](https://github.com/kubernetes/kubernetes/pull/126545), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG API Machinery, Apps, and CLI]", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126545", + "pr_number": 126545, + "areas": [ + "kubectl", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "cli" + ], + "duplicate": true, + "duplicate_kind": true + }, + "126553": { + "commit": "f26cf38a50bb38689b7674d228d004bff7a65899", + "text": "Disallow `k8s.io` and `kubernetes.io` namespaced extra keys in structured authentication configuration.", + "markdown": "Disallow `k8s.io` and `kubernetes.io` namespaced extra keys in structured authentication configuration. ([#126553](https://github.com/kubernetes/kubernetes/pull/126553), [@aramase](https://github.com/aramase)) [SIG Auth]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126553", + "pr_number": 126553, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "auth" + ], + "duplicate_kind": true + }, + "126561": { + "commit": "0ef48e611d81e926d5821bc769929eceba95a29e", + "text": "kube-proxy initialization waits for all pre-sync events from node and serviceCIDR informers to be delivered.", + "markdown": "kube-proxy initialization waits for all pre-sync events from node and serviceCIDR informers to be delivered. ([#126561](https://github.com/kubernetes/kubernetes/pull/126561), [@wedaly](https://github.com/wedaly)) [SIG Network]", + "author": "wedaly", + "author_url": "https://github.com/wedaly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126561", + "pr_number": 126561, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "126562": { + "commit": "c4a14d7ef5f338eb4b91288ff8f94191fc3e9730", + "text": "Fixed an issue in the kubelet where writable layers and read-only layers on different paths within the same mount caused incorrect detection of a split image filesystem.", + "markdown": "Fixed an issue in the kubelet where writable layers and read-only layers on different paths within the same mount caused incorrect detection of a split image filesystem. ([#126562](https://github.com/kubernetes/kubernetes/pull/126562), [@kannon92](https://github.com/kannon92))", + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126562", + "pr_number": 126562, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "126567": { + "commit": "8db6fc7e3fabc00f12be17d5a1623cba278d4b6b", + "text": "Enabled the kube-controller-manager '--concurrent-job-syncs' flag to work with orphan Pod processors.", + "markdown": "Enabled the kube-controller-manager `--concurrent-job-syncs` flag to work with orphan Pod processors. ([#126567](https://github.com/kubernetes/kubernetes/pull/126567), [@fusida](https://github.com/fusida)) [SIG Apps]", + "author": "fusida", + "author_url": "https://github.com/fusida", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126567", + "pr_number": 126567, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "126575": { + "commit": "83a13102284c975a057a54e02d42b25da946d7bc", + "text": "Reduced memory usage and allocations during volume attachment wait.", + "markdown": "Reduced memory usage and allocations during volume attachment wait. ([#126575](https://github.com/kubernetes/kubernetes/pull/126575), [@Lucaber](https://github.com/Lucaber)) [SIG Node and Storage]", + "author": "Lucaber", + "author_url": "https://github.com/Lucaber", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126575", + "pr_number": 126575, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node", + "storage" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "126590": { + "commit": "fd14955961ae9a8088935afd83bc19e9fed74648", + "text": "Updated cri-tools to v1.31.0.", + "markdown": "Updated cri-tools to v1.31.0. ([#126590](https://github.com/kubernetes/kubernetes/pull/126590), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider and Node]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126590", + "pr_number": 126590, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "node" + ], + "duplicate": true + }, + "126595": { + "commit": "24a74f887abb0a917f5f1e93c61d58224d319f96", + "text": "kubelet: add log and event for cgroup v2 with kernel older than 5.8.", + "markdown": "kubelet: add log and event for cgroup v2 with kernel older than 5.8. ([#126595](https://github.com/kubernetes/kubernetes/pull/126595), [@pacoxu](https://github.com/pacoxu)) [SIG Node]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126595", + "pr_number": 126595, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true + }, + "126596": { + "commit": "e1b1d4ac7ba6afbf98e2874b1b681057c0ab5ac9", + "text": "kubeadm: don't warn if `crictl` binary does not exist since kubeadm does not rely on `crictl` since v1.31.", + "markdown": "kubeadm: don't warn if the `crictl` binary does not exist since kubeadm does not rely on `crictl` since v1.31. ([#126596](https://github.com/kubernetes/kubernetes/pull/126596), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cluster Lifecycle]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126596", + "pr_number": 126596, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "126600": { + "commit": "5c14a5779551f678dbb89e9ce2346b9aa5e81d87", + "text": "Use allocatedResources on PVC for node expansion in kubelet.", + "markdown": "Use allocatedResources on PVC for node expansion in kubelet. ([#126600](https://github.com/kubernetes/kubernetes/pull/126600), [@gnufied](https://github.com/gnufied)) [SIG Node, Storage, and Testing]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126600", + "pr_number": 126600, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "storage", + "testing" + ], + "duplicate": true + }, + "126610": { + "commit": "a8fb2cefbb39d59fce32e4cf4892622c19fce53b", + "text": "NONE", + "markdown": "NONE ([#126610](https://github.com/kubernetes/kubernetes/pull/126610), [@liyuerich](https://github.com/liyuerich)) [SIG Cluster Lifecycle]", + "author": "liyuerich", + "author_url": "https://github.com/liyuerich", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126610", + "pr_number": 126610, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "do_not_publish": true + }, + "126620": { + "commit": "2c4a863bf9b3f0d290a3f21bf7fe57d9f15a39b5", + "text": "Fixed the bug of `InPlacePodVerticalScaling` state un-marshalling. State stored in `/var/lib/kubelet/pod_status_manager_state` now can always be read back after kubelet restart. Since the checkpoint format was changed to fix the issue, if you are using the feature `InPlacePodVerticalScaling`, please clean up the state file `/var/lib/kubelet/pod_status_manager_state` when upgrading the kubelet as failure to do it will lead to incompatible state formats and kubelet's failure to start.", + "markdown": "Fixed the bug of `InPlacePodVerticalScaling` state un-marshalling. State stored in `/var/lib/kubelet/pod_status_manager_state` now can always be read back after kubelet restart. Since the checkpoint format was changed to fix the issue, if you are using the feature `InPlacePodVerticalScaling`, please clean up the state file `/var/lib/kubelet/pod_status_manager_state` when upgrading the kubelet as failure to do it will lead to incompatible state formats and kubelet's failure to start. ([#126620](https://github.com/kubernetes/kubernetes/pull/126620), [@yunwang0911](https://github.com/yunwang0911))", + "author": "yunwang0911", + "author_url": "https://github.com/yunwang0911", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126620", + "pr_number": 126620, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "action_required": true, + "is_mapped": true + }, + "126627": { + "commit": "26f399921f639df8bda16d365e9c632561ccc6de", + "text": "Short-circuit if the compaction request from apiserver is disabled.", + "markdown": "Short-circuit if the compaction request from apiserver is disabled. ([#126627](https://github.com/kubernetes/kubernetes/pull/126627), [@fusida](https://github.com/fusida)) [SIG Etcd]", + "author": "fusida", + "author_url": "https://github.com/fusida", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126627", + "pr_number": 126627, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "etcd" + ] + }, + "126644": { + "commit": "03e81540633ef6c7fcea152fa7d8f56617998070", + "text": "Fixed a scheduler preemption issue where the victim pod was not deleted due to incorrect status patching. This issue occurred when the preemptor and victim pods had different QoS classes in their status, causing the preemption to fail entirely.", + "markdown": "Fixed a scheduler preemption issue where the victim pod was not deleted due to incorrect status patching. This issue occurred when the preemptor and victim pods had different QoS classes in their status, causing the preemption to fail entirely. ([#126644](https://github.com/kubernetes/kubernetes/pull/126644), [@Huang-Wei](https://github.com/Huang-Wei))", + "author": "Huang-Wei", + "author_url": "https://github.com/Huang-Wei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126644", + "pr_number": 126644, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "126645": { + "commit": "7b80cdb66a390f225d23cd612950144e3a39d1ae", + "text": "Removed generally available feature gate `ValidatingAdmissionPolicy`.", + "markdown": "Removed generally available feature gate `ValidatingAdmissionPolicy`. ([#126645](https://github.com/kubernetes/kubernetes/pull/126645), [@cici37](https://github.com/cici37)) [SIG API Machinery, Auth, and Testing]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126645", + "pr_number": 126645, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true + }, + "126652": { + "commit": "c999f9d828009f0a535237aca74ce2e5f6a8088c", + "text": "Discarded the output streams of the destination path check in `kubectl cp` when copying from local to pod and added a 3-second timeout to this check.", + "markdown": "Discarded the output streams of the destination path check in `kubectl cp` when copying from local to pod and added a 3-second timeout to this check. ([#126652](https://github.com/kubernetes/kubernetes/pull/126652), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI]", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126652", + "pr_number": 126652, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "126653": { + "commit": "1dd81aa1c9505446de6a9779a9286295c3efcddc", + "text": "Fixed a bug where the pod(with regular init containers)'s phase was not pending when the regular init container had not finished running after a node restart.", + "markdown": "Fixed a bug where the pod(with regular init containers)'s phase was not pending when the regular init container had not finished running after a node restart. ([#126653](https://github.com/kubernetes/kubernetes/pull/126653), [@zhifei92](https://github.com/zhifei92)) [SIG Node and Testing]", + "author": "zhifei92", + "author_url": "https://github.com/zhifei92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126653", + "pr_number": 126653, + "areas": [ + "test", + "kubelet", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "126665": { + "commit": "69dbf2eee96f1c95c097370ddcb1d5c30f86bec8", + "text": "kube-apiserver: fixed a 1.31 regression that stopped honoring build ID overrides with the `--version` flag.", + "markdown": "kube-apiserver: fixed a 1.31 regression that stopped honoring build ID overrides with the `--version` flag. ([#126665](https://github.com/kubernetes/kubernetes/pull/126665), [@liggitt](https://github.com/liggitt)) [SIG API Machinery]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126665", + "pr_number": 126665, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "126671": { + "commit": "fa75c8c7491ed10beff187d60fe60b0db8416ff7", + "text": "Apiserver repair controller is resilient to etcd errors during bootstrap and retries for 30 seconds before failing.", + "markdown": "Apiserver repair controller is resilient to etcd errors during bootstrap and retries for 30 seconds before failing. ([#126671](https://github.com/kubernetes/kubernetes/pull/126671), [@fusida](https://github.com/fusida)) [SIG Network]", + "author": "fusida", + "author_url": "https://github.com/fusida", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126671", + "pr_number": 126671, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ] + }, + "126698": { + "commit": "cd5f2083155bed7006b218ade85b584d53dfaae8", + "text": "Removed the `KMSv2` and `KMSv2KDF` feature gates. The associated features graduated to stable in the Kubernetes v1.29 release.", + "markdown": "Removed the `KMSv2` and `KMSv2KDF` feature gates. The associated features graduated to stable in Kubernetes v1.29 release. ([#126698](https://github.com/kubernetes/kubernetes/pull/126698), [@enj](https://github.com/enj)) [SIG API Machinery, Auth, and Testing]", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126698", + "pr_number": 126698, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true + }, + "126706": { + "commit": "ab26ad095029eb46ca2e938ac3a16cb6f164e657", + "text": "Fixed an issue where kubectl did not print the image volume when running `kubectl describe` on a pod with that volume.", + "markdown": "Fixed an issue where `kubectl` did not print the image volume when running `kubectl describe` on a pod with that volume. ([#126706](https://github.com/kubernetes/kubernetes/pull/126706), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4639", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126706", + "pr_number": 126706, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "126720": { + "commit": "29f96c32dd176fefbfee118682dafceedfcf6dfb", + "text": "Reverted the `DisableNodeKubeProxyVersion` feature gate to `default-off` to provide a full year from the deprecation announcement in v1.29, in accordance with the [Kubernetes deprecation policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/).", + "markdown": "Reverted the `DisableNodeKubeProxyVersion` feature gate to `default-off` to provide a full year from the deprecation announcement in v1.29, in accordance with the [Kubernetes deprecation policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/). ([#126720](https://github.com/kubernetes/kubernetes/pull/126720), [@liggitt](https://github.com/liggitt)) [SIG Architecture and Node]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126720", + "pr_number": 126720, + "areas": [ + "kubelet" + ], + "kinds": [ + "deprecation" + ], + "sigs": [ + "architecture", + "node" + ], + "duplicate": true + }, + "126727": { + "commit": "45804907d2025747452ac2573a60d330cc930a49", + "text": "Fixed the fake client to accept requests without `metadata.name` to better emulate the behavior of the actual client.", + "markdown": "Fixed the fake client to accept requests without `metadata.name` to better emulate the behavior of the actual client. ([#126727](https://github.com/kubernetes/kubernetes/pull/126727), [@jpbetz](https://github.com/jpbetz))", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126727", + "pr_number": 126727, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "126733": { + "commit": "df66ee6a3d148726823021e50b03a537a7a1d440", + "text": "If an old pod spec has used an image volume source, we must allow it when updating the resource, even if the `ImageVolume` feature gate is disabled.", + "markdown": "If an old pod spec has used an image volume source, we must allow it when updating the resource, even if the `ImageVolume` feature gate is disabled. ([#126733](https://github.com/kubernetes/kubernetes/pull/126733), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, and Node]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126733", + "pr_number": 126733, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "apps", + "node" + ], + "duplicate": true + }, + "126740": { + "commit": "2f3e7f515f16d46c1ec7ab61d8d214986e157d09", + "text": "kubeadm: allow mixing the `--config` flag with the special `--print-manifest` flag in the subphases of 'kubeadm init phase addon'.", + "markdown": "kubeadm: allow mixing the `--config` flag with the special `--print-manifest` flag in the subphases of `kubeadm init phase addon`. ([#126740](https://github.com/kubernetes/kubernetes/pull/126740), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126740", + "pr_number": 126740, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "126743": { + "commit": "385fd21d92d1e598f9ca6b68ccd1b6c5b2797f3e", + "text": "kubeadm: ensure that extra environment variables written to a kubeadm-managed PodSpec are sorted alphanumerically by the environment variable name.", + "markdown": "kubeadm: ensure that extra environment variables written to a kubeadm-managed PodSpec are sorted alphanumerically by the environment variable name. ([#126743](https://github.com/kubernetes/kubernetes/pull/126743), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126743", + "pr_number": 126743, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "126745": { + "commit": "fd7642cfe48c00336725322fbe7ea6ff546f8115", + "text": "Improved the scalability of the PVC Protection Controller by batch-processing PVCs by namespace and implementing lazy live pod listing.", + "markdown": "Improved the scalability of the PVC Protection Controller by batch-processing PVCs by namespace and implementing lazy live pod listing. ([#126745](https://github.com/kubernetes/kubernetes/pull/126745), [@hungnguyen243](https://github.com/hungnguyen243)) [SIG Apps, Storage and Testing]", + "author": "hungnguyen243", + "author_url": "https://github.com/hungnguyen243", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126745", + "pr_number": 126745, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "126749": { + "commit": "572c0a10f984d8c8977c061c108118f50ae57ca7", + "text": "The resource/v1alpha3.ResourceSliceList filed which should have been named \"metadata\" but was instead named \"listMeta\" is now properly \"metadata\".", + "markdown": "The resource/v1alpha3.ResourceSliceList filed which should have been named \"metadata\" but was instead named \"listMeta\" is now properly \"metadata\". ([#126749](https://github.com/kubernetes/kubernetes/pull/126749), [@thockin](https://github.com/thockin)) [SIG API Machinery]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126749", + "pr_number": 126749, + "areas": [ + "api", + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "126762": { + "commit": "963ebd8bd8c0f2c432b349f0837ab116a4dfe71e", + "text": "Unallowed label values will show up as \"unexpected\" in scheduler metrics.", + "markdown": "Unallowed label values will show up as \"unexpected\" in scheduler metrics. ([#126762](https://github.com/kubernetes/kubernetes/pull/126762), [@richabanker](https://github.com/richabanker)) [SIG Instrumentation and Scheduling]", + "author": "richabanker", + "author_url": "https://github.com/richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126762", + "pr_number": 126762, + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "scheduling" + ], + "feature": true, + "duplicate": true + }, + "126769": { + "commit": "6ca629d46b1267a1b8b03416edcaa8832ffc62a8", + "text": "kube-proxy uses field-selector clusterIP!=None on Services to avoid watching for Headless Services, reduce unnecessary network bandwidth", + "markdown": "kube-proxy uses field-selector clusterIP!=None on Services to avoid watching for Headless Services, reduce unnecessary network bandwidth ([#126769](https://github.com/kubernetes/kubernetes/pull/126769), [@Sakuralbj](https://github.com/Sakuralbj)) [SIG Network]", + "author": "Sakuralbj", + "author_url": "https://github.com/Sakuralbj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126769", + "pr_number": 126769, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true + }, + "126773": { + "commit": "352e33e040d0df758935b5152fbc50675f9c334c", + "text": "Fixed a warning message about the gce in-tree cloud provider state.", + "markdown": "Fixed a warning message about the gce in-tree cloud provider state. ([#126773](https://github.com/kubernetes/kubernetes/pull/126773), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126773", + "pr_number": 126773, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "is_mapped": true + }, + "126775": { + "commit": "3fd267776a4076a7ffebf0cfef69939800cf499d", + "text": "Removed generally available feature gate `NewVolumeManagerReconstruction`.", + "markdown": "Removed generally available feature gate `NewVolumeManagerReconstruction`. ([#126775](https://github.com/kubernetes/kubernetes/pull/126775), [@carlory](https://github.com/carlory)) [SIG Node and Storage]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126775", + "pr_number": 126775, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "storage" + ], + "duplicate": true + }, + "126776": { + "commit": "769695a218858682def602b980ff4113c0a0acf3", + "text": "kubeadm: increased the verbosity of API client dry-run actions during the subcommands \"init\", \"join\", \"upgrade\" and \"reset\". It also allowed dry-run on 'kubeadm join' even if there was no existing cluster by utilizing a faked, in-memory cluster-info ConfigMap.", + "markdown": "kubeadm: increased the verbosity of API client dry-run actions during the subcommands \"init\", \"join\", \"upgrade\" and \"reset\". It also allowed dry-run on 'kubeadm join' even if there was no existing cluster by utilizing a faked, in-memory cluster-info ConfigMap. ([#126776](https://github.com/kubernetes/kubernetes/pull/126776), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126776", + "pr_number": 126776, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "126784": { + "commit": "e5e1b312a7c51696779b31d10c1ec0ab07583b69", + "text": "Clarified the kube-controller-manager documentation for `--allocate-node-cidrs`, `--cluster-cidr`, and `--service-cluster-ip-range` flags to accurately reflect their dependencies and usage conditions.", + "markdown": "Clarified the kube-controller-manager documentation for `--allocate-node-cidrs`, `--cluster-cidr`, and `--service-cluster-ip-range` flags to accurately reflect their dependencies and usage conditions. ([#126784](https://github.com/kubernetes/kubernetes/pull/126784), [@eminwux](https://github.com/eminwux)) [SIG API Machinery, Cloud Provider and Docs]", + "author": "eminwux", + "author_url": "https://github.com/eminwux", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126784", + "pr_number": 126784, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "docs" + ], + "duplicate": true + }, + "126786": { + "commit": "ed373709d839b9410a2e410558f5e6bf2ba0e7b0", + "text": "Feature gate \"AllowServiceLBStatusOnNonLB\" has been removed. This gate has been stable and unchanged for over a year.", + "markdown": "Feature gate \"AllowServiceLBStatusOnNonLB\" has been removed. This gate has been stable and unchanged for over a year. ([#126786](https://github.com/kubernetes/kubernetes/pull/126786), [@thockin](https://github.com/thockin)) [SIG Apps]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126786", + "pr_number": 126786, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ] + }, + "126806": { + "commit": "b5e64567958aae5c2e5befae000d3186384c151b", + "text": "1. When the kubelet constructs the CRI mounts for the container which references an `image` volume source type, it passes the missing mount attributes to the CRI implementation, including `readOnly`, `propagation`, and `recursiveReadOnly`. When the readOnly field of the containerMount is explicitly set to false, the kubelet will now take the `readOnly`as true to the CRI implementation because the image volume plugin requires the mount to be read-only. \n2. Fixed a bug where the pod is unexpectedly running when the `image` volume source type is used and mounted to `/etc/hosts` in the container.", + "markdown": "1. When the kubelet constructs the CRI mounts for the container which references an `image` volume source type, it passes the missing mount attributes to the CRI implementation, including `readOnly`, `propagation`, and `recursiveReadOnly`. When the readOnly field of the containerMount is explicitly set to false, the kubelet will now take the `readOnly`as true to the CRI implementation because the image volume plugin requires the mount to be read-only. \n 2. Fixed a bug where the pod is unexpectedly running when the `image` volume source type is used and mounted to `/etc/hosts` in the container. ([#126806](https://github.com/kubernetes/kubernetes/pull/126806), [@carlory](https://github.com/carlory)) [SIG Node and Storage]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126806", + "pr_number": 126806, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "storage" + ], + "duplicate": true, + "is_mapped": true + }, + "126807": { + "commit": "b1559c66ca56a06b125965365c727f895cfa5ddc", + "text": "DRA: when a DRA driver was started after creating pods which need resources from that driver, no additional attempt was made to schedule such unschedulable pods again. Only affected DRA with structured parameters.", + "markdown": "DRA: when a DRA driver was started after creating pods which need resources from that driver, no additional attempt was made to schedule such unschedulable pods again. Only affected DRA with structured parameters. ([#126807](https://github.com/kubernetes/kubernetes/pull/126807), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126807", + "pr_number": 126807, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "scheduling", + "testing" + ], + "duplicate": true + }, + "126809": { + "commit": "8819dfb639706bc3ce87cdd902ef685677c221a5", + "text": "Fixed: dynamic client-go can now handle subresources with an UnstructuredList response", + "markdown": "Fixed: dynamic client-go can now handle subresources with an UnstructuredList response ([#126809](https://github.com/kubernetes/kubernetes/pull/126809), [@ryantxu](https://github.com/ryantxu)) [SIG API Machinery]", + "author": "ryantxu", + "author_url": "https://github.com/ryantxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126809", + "pr_number": 126809, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "126839": { + "commit": "b67d4dd389076ee1c6d12c7a41571d0b609f39ec", + "text": "Removed generally available feature gate `LegacyServiceAccountTokenCleanUp`.", + "markdown": "Removed generally available feature gate `LegacyServiceAccountTokenCleanUp`. ([#126839](https://github.com/kubernetes/kubernetes/pull/126839), [@carlory](https://github.com/carlory)) [SIG Auth]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126839", + "pr_number": 126839, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth" + ] + }, + "126840": { + "commit": "243fdafc6824d6b33faa081efec2ebc4cb164010", + "text": "Removed generally available feature gate `CloudDualStackNodeIPs`.", + "markdown": "Removed generally available feature gate `CloudDualStackNodeIPs`. ([#126840](https://github.com/kubernetes/kubernetes/pull/126840), [@carlory](https://github.com/carlory)) [SIG API Machinery and Cloud Provider]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126840", + "pr_number": 126840, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "duplicate": true + }, + "126841": { + "commit": "850bfd9aa92423696dbb6de2070ab7494fdd99b1", + "text": "Removed the generally available feature gate `StableLoadBalancerNodeSet`.", + "markdown": "Removed the generally available feature gate `StableLoadBalancerNodeSet`. ([#126841](https://github.com/kubernetes/kubernetes/pull/126841), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider, and Network]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126841", + "pr_number": 126841, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "network" + ], + "duplicate": true + }, + "126847": { + "commit": "b83ec12c4337261156e4cda4d2f771d4db57ed96", + "text": "kube-proxy will no longer depend on the conntrack binary for stale UDP connections cleanup.", + "markdown": "kube-proxy will no longer depend on the conntrack binary for stale UDP connections cleanup. ([#126847](https://github.com/kubernetes/kubernetes/pull/126847), [@aroradaman](https://github.com/aroradaman)) [SIG Cluster Lifecycle, Network, and Testing]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126847", + "pr_number": 126847, + "areas": [ + "test", + "kube-proxy", + "kubeadm", + "ipvs", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle", + "network", + "testing" + ], + "duplicate": true + }, + "126851": { + "commit": "44ce613173770aaeac6777a22059398096fb17c6", + "text": "Upgraded github.com/coredns/corefile-migration to v1.0.24.", + "markdown": "Upgraded github.com/coredns/corefile-migration to v1.0.24. ([#126851](https://github.com/kubernetes/kubernetes/pull/126851), [@BenTheElder](https://github.com/BenTheElder)) [SIG Architecture and Cluster Lifecycle]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126851", + "pr_number": 126851, + "areas": [ + "dependency", + "code-organization" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture", + "cluster-lifecycle" + ], + "duplicate": true, + "is_mapped": true + }, + "126862": { + "commit": "f56db61db50595619dfb19ae62d33f4b37322cf8", + "text": "Removed generally available feature gate `HPAContainerMetrics`", + "markdown": "Removed generally available feature gate `HPAContainerMetrics` ([#126862](https://github.com/kubernetes/kubernetes/pull/126862), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Autoscaling]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126862", + "pr_number": 126862, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "autoscaling" + ], + "duplicate": true, + "duplicate_kind": true + }, + "126863": { + "commit": "8e4d638e3172bf1a3ad914d205bd76348d6e3b5b", + "text": "Removed generally available feature gate `MinDomainsInPodTopologySpread`", + "markdown": "Removed generally available feature gate `MinDomainsInPodTopologySpread` ([#126863](https://github.com/kubernetes/kubernetes/pull/126863), [@carlory](https://github.com/carlory)) [SIG Scheduling]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126863", + "pr_number": 126863, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ] + }, + "126894": { + "commit": "6a1a6fd85fb80fd9c4b3f823741853822a4270db", + "text": "Removed generally available feature-gate `ZeroLimitedNominalConcurrencyShares`", + "markdown": "Removed generally available feature-gate `ZeroLimitedNominalConcurrencyShares` ([#126894](https://github.com/kubernetes/kubernetes/pull/126894), [@carlory](https://github.com/carlory)) [SIG API Machinery]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126894", + "pr_number": 126894, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "126897": { + "commit": "f1e447b9d32ac325074380d239370cde02a6dbf7", + "text": "Promoted the `RelaxedEnvironmentVariableValidation` feature gate to beta and is enabled by default.", + "markdown": "Promoted the `RelaxedEnvironmentVariableValidation` feature gate to beta and is enabled by default. ([#126897](https://github.com/kubernetes/kubernetes/pull/126897), [@HirazawaUi](https://github.com/HirazawaUi))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4369-allow-special-characters-environment-variable", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126897", + "pr_number": 126897, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "126913": { + "commit": "7436ca32bc766ff202109a7541d2e7bb41ee7d13", + "text": "kubeadm: removed the deprecated sub-phase of 'init kubelet-finilize' called `experimental-cert-rotation`, and use 'enable-client-cert-rotation' instead.", + "markdown": "kubeadm: removed the deprecated sub-phase of 'init kubelet-finilize' called `experimental-cert-rotation`, and use 'enable-client-cert-rotation' instead. ([#126913](https://github.com/kubernetes/kubernetes/pull/126913), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126913", + "pr_number": 126913, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "126914": { + "commit": "e9c9a27c97634c433dd9dad1118a98b7e4d519f8", + "text": "kubeadm: removed the deprecated flag '--experimental-output'; please use the flag '--output' instead, as it serves the same purpose. Affected commands are: \"kubeadm config images list\", \"kubeadm token list\", \"kubeadm upgrade plan\", \"kubeadm certs check-expiration\".", + "markdown": "kubeadm: removed the deprecated flag '--experimental-output'; please use the flag '--output' instead, as it serves the same purpose. Affected commands are: \"kubeadm config images list\", \"kubeadm token list\", \"kubeadm upgrade plan\", \"kubeadm certs check-expiration\". ([#126914](https://github.com/kubernetes/kubernetes/pull/126914), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126914", + "pr_number": 126914, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "126924": { + "commit": "65bc7c0c1ac4e67e5cc8560427dde3a5ba7e62ba", + "text": "Removed attachable volume limits from the capacity of the node for the following volume types when the kubelet was started, affecting the following volume types when the corresponding CSI driver was installed:\n- `awsElasticBlockStore` for `ebs.csi.aws.com`\n- `azureDisk` for `disk.csi.azure.com`\n- `gcePersistentDisk` for `pd.csi.storage.googleapis.com`\n- `cinder` for `cinder.csi.openstack.org`\n- `csi`\nHowever, it was still enforced using a limit in CSINode objects.", + "markdown": "Removed attachable volume limits from the capacity of the node for the following volume types when the kubelet was started, affecting the following volume types when the corresponding CSI driver was installed:\n - `awsElasticBlockStore` for `ebs.csi.aws.com`\n - `azureDisk` for `disk.csi.azure.com`\n - `gcePersistentDisk` for `pd.csi.storage.googleapis.com`\n - `cinder` for `cinder.csi.openstack.org`\n - `csi`\nHowever, it was still enforced using a limit in CSINode objects. ([#126924](https://github.com/kubernetes/kubernetes/pull/126924), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126924", + "pr_number": 126924, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true, + "is_mapped": true + }, + "126930": { + "commit": "95b3fe9f15cdcaf98098be398478e70365b12dd7", + "text": "Fixed an issue where requests sent by the KMSv2 service were being rejected due to having an invalid authority header.", + "markdown": "Fixed an issue where requests sent by the KMSv2 service were being rejected due to having an invalid authority header. ([#126930](https://github.com/kubernetes/kubernetes/pull/126930), [@Ruddickmg](https://github.com/Ruddickmg)) [SIG API Machinery and Auth]", + "author": "Ruddickmg", + "author_url": "https://github.com/Ruddickmg", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126930", + "pr_number": 126930, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true + }, + "126945": { + "commit": "85384fe273c97e07f6f7f073768d1d51452e6675", + "text": "kubeadm: switched the kube-scheduler static Pod to use the endpoints /livez (for startup and liveness probes) and /readyz (for the readiness probe). Previously, /healthz was used for all probes, which is deprecated behavior for this component.", + "markdown": "kubeadm: switched the kube-scheduler static Pod to use the endpoints /livez (for startup and liveness probes) and /readyz (for the readiness probe). Previously, /healthz was used for all probes, which is deprecated behavior for this component. ([#126945](https://github.com/kubernetes/kubernetes/pull/126945), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG Cluster Lifecycle]", + "author": "liangyuanpeng", + "author_url": "https://github.com/liangyuanpeng", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126945", + "pr_number": 126945, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "126953": { + "commit": "6568b4bdb39b17105cd31b32899f687a346ce3d7", + "text": "kubeadm: removed the preflight check for the existence of the conntrack binary, as conntrack is no longer a kube-proxy dependency in version 1.32 and newer.", + "markdown": "kubeadm: removed the preflight check for the existence of the conntrack binary, as conntrack is no longer a kube-proxy dependency in version 1.32 and newer. ([#126953](https://github.com/kubernetes/kubernetes/pull/126953), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126953", + "pr_number": 126953, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "126957": { + "commit": "3d65369f346d359bcabdc7f04addff5fdb2f194a", + "text": "Fixed a kubelet and kube-apiserver memory leak in default 1.29 configurations related to tracing.", + "markdown": "Fixed a kubelet and kube-apiserver memory leak in default 1.29 configurations related to tracing. ([#126957](https://github.com/kubernetes/kubernetes/pull/126957), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Architecture, Instrumentation and Node]", + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126957", + "pr_number": 126957, + "areas": [ + "kubelet", + "apiserver", + "dependency" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "architecture", + "instrumentation", + "node" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "126961": { + "commit": "e74205b08ad15a2674d1fbaaed98469e882858c7", + "text": "The CSI volume plugin stopped watching the VolumeAttachment object if the object is not found or the volume is not attached when kubelet waits for a volume to be attached. In the past, it would fail due to missing permissions.", + "markdown": "The CSI volume plugin stopped watching the VolumeAttachment object if the object is not found or the volume is not attached when kubelet waits for a volume to be attached. In the past, it would fail due to missing permissions. ([#126961](https://github.com/kubernetes/kubernetes/pull/126961), [@carlory](https://github.com/carlory)) [SIG Storage]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126961", + "pr_number": 126961, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "126962": { + "commit": "f12334be0353b4994aae48256adb563050b951db", + "text": "Fixed a possible memory leak in the QueueingHint (alpha feature).", + "markdown": "Fixed a possible memory leak in the QueueingHint (alpha feature). ([#126962](https://github.com/kubernetes/kubernetes/pull/126962), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126962", + "pr_number": 126962, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "126966": { + "commit": "4aca09bc0c45acc69cfdb425d1eea8818eee04d9", + "text": "Updated cni-plugins to [v1.5.1](https://github.com/containernetworking/plugins/releases/tag/v1.5.1).", + "markdown": "Updated cni-plugins to [v1.5.1](https://github.com/containernetworking/plugins/releases/tag/v1.5.1). ([#126966](https://github.com/kubernetes/kubernetes/pull/126966), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126966", + "pr_number": 126966, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "node", + "testing" + ], + "duplicate": true + }, + "126976": { + "commit": "14f2cab4deae393d5beb9f3ab66a31147feb8030", + "text": "Fixed a 1.31 regression starting kubelet on Windows: Reverted \"fix: handle socket file detection on Windows\".", + "markdown": "Fixed a 1.31 regression starting kubelet on Windows: Reverted \"fix: handle socket file detection on Windows\". ([#126976](https://github.com/kubernetes/kubernetes/pull/126976), [@jsturtevant](https://github.com/jsturtevant))", + "author": "jsturtevant", + "author_url": "https://github.com/jsturtevant", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126976", + "pr_number": 126976, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "126977": { + "commit": "920e9e34b07d0930a28b192b5cdc912e79d8562b", + "text": "To enhance usability and developer experience, CRD validation rules now support the direct use of (CEL) reserved keywords as field names in object validation expressions. The name format CEL library is supported in new expressions.", + "markdown": "To enhance usability and developer experience, CRD validation rules now support the direct use of (CEL) reserved keywords as field names in object validation expressions. The name format CEL library is supported in new expressions. ([#126977](https://github.com/kubernetes/kubernetes/pull/126977), [@aaron-prindle](https://github.com/aaron-prindle)) [SIG API Machinery, Architecture, Auth, Etcd, Instrumentation, Release, Scheduling and Testing]", + "author": "aaron-prindle", + "author_url": "https://github.com/aaron-prindle", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126977", + "pr_number": 126977, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "etcd", + "instrumentation", + "release", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "126981": { + "commit": "685b8b3ba17addf5a2ab5b452411c8be7d1e5dfd", + "text": "Promoted `SizeMemoryBackedVolumes` to stable.", + "markdown": "Promoted `SizeMemoryBackedVolumes` to stable. ([#126981](https://github.com/kubernetes/kubernetes/pull/126981), [@kannon92](https://github.com/kannon92)) [SIG Node, Storage and Testing]", + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126981", + "pr_number": 126981, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "126995": { + "commit": "e95441591235032994666ff91cfcd77a13d8c7b2", + "text": "Changed the percentage marker in `kubectl top node` from `%` to `(%)`.", + "markdown": "Changed the percentage marker in `kubectl top node` from `%` to `(%)` ([#126995](https://github.com/kubernetes/kubernetes/pull/126995), [@googs1025](https://github.com/googs1025)) [SIG CLI]", + "author": "googs1025", + "author_url": "https://github.com/googs1025", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126995", + "pr_number": 126995, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "126996": { + "commit": "ae35048cb0b9b177891aab41346b6d6cc504582f", + "text": "If a client makes an API streaming request and specifies an `application/json;as=Table` content type, the API server now responds with a 406 (Not Acceptable) error. This change helps to ensure that unsupported formats, such as `Table` representations, are correctly rejected.", + "markdown": "If a client makes an API streaming request and specifies an `application/json;as=Table` content type, the API server now responds with a 406 (Not Acceptable) error. This change helps to ensure that unsupported formats, such as `Table` representations, are correctly rejected. ([#126996](https://github.com/kubernetes/kubernetes/pull/126996), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126996", + "pr_number": 126996, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "126997": { + "commit": "f0f7ff989a948389247e628c4c5a43e915f51daa", + "text": "Optimized the code by filtering out empty strings for podUID when calling the `getPodAndContainerForDevice` method.", + "markdown": "Optimized the code by filtering out empty strings for podUID when calling the `getPodAndContainerForDevice` method. ([#126997](https://github.com/kubernetes/kubernetes/pull/126997), [@lengrongfu](https://github.com/lengrongfu))", + "author": "lengrongfu", + "author_url": "https://github.com/lengrongfu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126997", + "pr_number": 126997, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "126999": { + "commit": "9e597655855771bd241508fab4501ac099e29f16", + "text": "client-go/rest: contextual logging of request/response with accurate source code location of the caller", + "markdown": "Client-go/rest: contextual logging of request/response with accurate source code location of the caller ([#126999](https://github.com/kubernetes/kubernetes/pull/126999), [@pohly](https://github.com/pohly)) [SIG API Machinery and Instrumentation]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126999", + "pr_number": 126999, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true + }, + "127001": { + "commit": "ed75e55c44f7bfbcf93757b86ae57eaceb06245a", + "text": "applyconfiguration-gen no longer generates duplicate methods and ambiguous member accesses when types end up with multiple members of the same name (through embedded structs).", + "markdown": "Applyconfiguration-gen no longer generates duplicate methods and ambiguous member accesses when types end up with multiple members of the same name (through embedded structs). ([#127001](https://github.com/kubernetes/kubernetes/pull/127001), [@skitt](https://github.com/skitt)) [SIG API Machinery]", + "author": "skitt", + "author_url": "https://github.com/skitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127001", + "pr_number": 127001, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "127008": { + "commit": "494f0b5d479eae2ed7e79dfc1cc34ffe95790c8d", + "text": "The Aggregated Discovery v2beta1 fixture has been removed in `./api/discovery`. Please use v2", + "markdown": "The Aggregated Discovery v2beta1 fixture has been removed in `./api/discovery`. Please use v2 ([#127008](https://github.com/kubernetes/kubernetes/pull/127008), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127008", + "pr_number": 127008, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "127009": { + "commit": "8b664fd41431aed4c69e3d6e76a2f25b84cb9a32", + "text": "Graduated the AnonymousAuthConfigurableEndpoints feature gate to beta and enable it by default to allow configurable endpoints for anonymous authentication.", + "markdown": "Graduated the AnonymousAuthConfigurableEndpoints feature gate to beta and enable it by default to allow configurable endpoints for anonymous authentication. ([#127009](https://github.com/kubernetes/kubernetes/pull/127009), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Auth]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4633", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/reference/access-authn-authz/authentication/#anonymous-authenticator-configuration", + "type": "official" + } + ], + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127009", + "pr_number": 127009, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true + }, + "127010": { + "commit": "c3cb89ebb08e8c28eb3a3dc4baeb3a5117dbbea0", + "text": "JWT authenticators now set the `jti` claim (if present and is a string value) as the credential ID for use by audit logging.", + "markdown": "JWT authenticators now set the `jti` claim (if present and is a string value) as the credential ID for use by audit logging. ([#127010](https://github.com/kubernetes/kubernetes/pull/127010), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127010", + "pr_number": 127010, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true + }, + "127012": { + "commit": "81ebfb3d0c6194c80aa8656c06ab6fcc64535e99", + "text": "Bookmark events are now sent immediately after all items in the watchCache store have been processed, improving consistency in client behavior.", + "markdown": "Bookmark events are now sent immediately after all items in the watchCache store have been processed, improving consistency in client behavior. ([#127012](https://github.com/kubernetes/kubernetes/pull/127012), [@Chaunceyctx](https://github.com/Chaunceyctx))", + "author": "Chaunceyctx", + "author_url": "https://github.com/Chaunceyctx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127012", + "pr_number": 127012, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "127016": { + "commit": "dfb763b05ea4ecd2c9359edce36954a3a7da2948", + "text": "Fixed a potential memory leak in QueueingHint (alpha feature).", + "markdown": "Fixed a potential memory leak in QueueingHint (alpha feature). ([#127016](https://github.com/kubernetes/kubernetes/pull/127016), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127016", + "pr_number": 127016, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "127017": { + "commit": "89fbb3f2d2580a612f77fae9eea95720a467bb4b", + "text": "The `flowcontrol.apiserver.k8s.io/v1beta3` API version of `FlowSchema` and `PriorityLevelConfiguration` is no longer served in v1.32. Migrate manifests and API clients to use the `flowcontrol.apiserver.k8s.io/v1` API version, available since v1.29. More information is at https://kubernetes.io/docs/reference/using-api/deprecation-guide/#flowcontrol-resources-v132", + "markdown": "The `flowcontrol.apiserver.k8s.io/v1beta3` API version of `FlowSchema` and `PriorityLevelConfiguration` is no longer served in v1.32. Migrate manifests and API clients to use the `flowcontrol.apiserver.k8s.io/v1` API version, available since v1.29. More information is at https://kubernetes.io/docs/reference/using-api/deprecation-guide/#flowcontrol-resources-v132 ([#127017](https://github.com/kubernetes/kubernetes/pull/127017), [@carlory](https://github.com/carlory)) [SIG API Machinery and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127017", + "pr_number": 127017, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true + }, + "127019": { + "commit": "5639b4b29cbf1ce7acab1e307ec2c0bdab1a65f5", + "text": "Removed the generally available feature gate `NodeOutOfServiceVolumeDetach`.", + "markdown": "Removed the generally available feature gate `NodeOutOfServiceVolumeDetach` ([#127019](https://github.com/kubernetes/kubernetes/pull/127019), [@carlory](https://github.com/carlory)) [SIG Apps and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127019", + "pr_number": 127019, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true + }, + "127021": { + "commit": "49ccfaf1ed6ee0fc747ecbe2e1e2c0cd99f9d214", + "text": "The Usage and VolumeCondition are both optional in the response, and if the CSIVolumeHealth feature gate is enabled, the kubelet needs to consider returning metrics if either one is set.", + "markdown": "The Usage and VolumeCondition are both optional in the response, and if the CSIVolumeHealth feature gate is enabled, the kubelet needs to consider returning metrics if either one is set. ([#127021](https://github.com/kubernetes/kubernetes/pull/127021), [@Madhu-1](https://github.com/Madhu-1)) [SIG Storage]", + "author": "Madhu-1", + "author_url": "https://github.com/Madhu-1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127021", + "pr_number": 127021, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ] + }, + "127052": { + "commit": "05df9f46752ba035d631d2b1f629c0d90f3a3c80", + "text": "Support inflight_events metric in the scheduler for QueueingHint (alpha feature).", + "markdown": "Support inflight_events metric in the scheduler for QueueingHint (alpha feature). ([#127052](https://github.com/kubernetes/kubernetes/pull/127052), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127052", + "pr_number": 127052, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "127058": { + "commit": "6b2a5b84e58413f1736b862bad972fd4acc02dc0", + "text": "Removed the GA'd feature gates for `ServerSideApply` and `ServerSideFieldValidation`.", + "markdown": "Removed the GA'd feature gates for `ServerSideApply` and `ServerSideFieldValidation`. ([#127058](https://github.com/kubernetes/kubernetes/pull/127058), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127058", + "pr_number": 127058, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "127076": { + "commit": "1a0804c5e8065165f58d0100cf373a1280a1c75c", + "text": "Kubernetes is now built with Go 1.23.0.", + "markdown": "Kubernetes is now built with Go 1.23.0 ([#127076](https://github.com/kubernetes/kubernetes/pull/127076), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127076", + "pr_number": 127076, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "127083": { + "commit": "4bc6a11d78b0506bf7c20b71c9e12e695bcab737", + "text": "Implemented new cluster events `UpdatePodSchedulingGatesEliminated` and `UpdatePodTolerations` for scheduler plugins.", + "markdown": "Implemented new cluster events `UpdatePodSchedulingGatesEliminated` and `UpdatePodTolerations` for scheduler plugins. ([#127083](https://github.com/kubernetes/kubernetes/pull/127083), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127083", + "pr_number": 127083, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "127093": { + "commit": "1137a6a0cc98c49d2076461ce3d741a619a129e8", + "text": "Promoted `RetryGenerateName` to stable; the feature is enabled by default. `--feature-gates=RetryGenerateName=true` is not needed on kube-apiserver binaries and will be removed in a future release.", + "markdown": "Promoted `RetryGenerateName` to stable; the feature is enabled by default. `--feature-gates=RetryGenerateName=true` is not needed on kube-apiserver binaries and will be removed in a future release. ([#127093](https://github.com/kubernetes/kubernetes/pull/127093), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127093", + "pr_number": 127093, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "127094": { + "commit": "b337f048db4c88c08af257951de2fc20cd7607f9", + "text": "Allows PreStop lifecycle handler's sleep action to have a zero value", + "markdown": "Allows PreStop lifecycle handler's sleep action to have a zero value ([#127094](https://github.com/kubernetes/kubernetes/pull/127094), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Apps, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4818", + "type": "KEP" + } + ], + "author": "sreeram-venkitesh", + "author_url": "https://github.com/sreeram-venkitesh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127094", + "pr_number": 127094, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "127096": { + "commit": "d913914511c87dee288d1d72921c364a8331893f", + "text": "kubeadm: if an unknown command name is passed to any parent command such as 'kubeadm init phase', return an error. If 'kubeadm init phase' or another command that has subcommands is called without a subcommand name, print the available commands and also return an error.", + "markdown": "kubeadm: if an unknown command name is passed to any parent command such as 'kubeadm init phase', return an error. If 'kubeadm init phase' or another command that has subcommands is called without a subcommand name, print the available commands and also return an error. ([#127096](https://github.com/kubernetes/kubernetes/pull/127096), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127096", + "pr_number": 127096, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "127123": { + "commit": "d62b797c16fdffa55a8e2fc95f04bf72c019be70", + "text": "kubeadm: removed the deprecated and NO-OP flags `--feature-gates` for `kubeadm upgrade apply` and `--api-server-manifest`, `--controller-manager-manifest` and `--scheduler-manifest` for `kubeadm upgrade diff`.", + "markdown": "kubeadm: removed the deprecated and NO-OP flags `--feature-gates` for `kubeadm upgrade apply` and `--api-server-manifest`, `--controller-manager-manifest` and `--scheduler-manifest` for `kubeadm upgrade diff`. ([#127123](https://github.com/kubernetes/kubernetes/pull/127123), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127123", + "pr_number": 127123, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "127134": { + "commit": "2d6c8a129df97caf5bda3a186a8f7f3e41591352", + "text": "Introduced `v1alpha1` API for mutating admission policies, enabling extensible # admission control via CEL expressions (KEP 3962: Mutating Admission Policies). # To use, enable the `MutatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` # API via `--runtime-config`.", + "markdown": "Introduced `v1alpha1` API for mutating admission policies, enabling extensible # admission control via CEL expressions (KEP 3962: Mutating Admission Policies). # To use, enable the `MutatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` # API via `--runtime-config`. ([#127134](https://github.com/kubernetes/kubernetes/pull/127134), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, Etcd and Testing]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127134", + "pr_number": 127134, + "areas": [ + "test", + "apiserver", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "etcd", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "127146": { + "commit": "a12a32cd125270d983e931db7fcf18f779fb48ee", + "text": "Added metrics to measure latency of DRA Node operations and DRA GRPC calls.", + "markdown": "Added metrics to measure latency of DRA Node operations and DRA GRPC calls. ([#127146](https://github.com/kubernetes/kubernetes/pull/127146), [@bart0sh](https://github.com/bart0sh)) [SIG Instrumentation, Network, Node and Testing]", + "author": "bart0sh", + "author_url": "https://github.com/bart0sh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127146", + "pr_number": 127146, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "network", + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "127151": { + "commit": "3ebdb13c5e7987b3ecfdf4a4fc5ae83dbc6191c7", + "text": "kubeadm: removed `socat` and `ebtables` from kubeadm preflight checks", + "markdown": "kubeadm: removed `socat` and `ebtables` from kubeadm preflight checks ([#127151](https://github.com/kubernetes/kubernetes/pull/127151), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cluster Lifecycle]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127151", + "pr_number": 127151, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "127155": { + "commit": "c6669ea7d61af98da3a2aa8c1d2cdc9c2c57080a", + "text": "Added a kubelet metric `container_aligned_compute_resources_count` to report the count of containers getting aligned compute resources.", + "markdown": "Added a kubelet metric `container_aligned_compute_resources_count` to report the count of containers getting aligned compute resources. ([#127155](https://github.com/kubernetes/kubernetes/pull/127155), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127155", + "pr_number": 127155, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127162": { + "commit": "d28fca12944f12a778392147b862c24c48289544", + "text": "Fixed a regression in 1.29+ default configurations, where regular init containers may fail to start due to a temporary container runtime failure.", + "markdown": "Fixed a regression in 1.29+ default configurations, where regular init containers may fail to start due to a temporary container runtime failure. ([#127162](https://github.com/kubernetes/kubernetes/pull/127162), [@gjkim42](https://github.com/gjkim42)) [SIG Node]", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127162", + "pr_number": 127162, + "areas": [ + "kubelet" + ], + "kinds": [ + "regression" + ], + "sigs": [ + "node" + ] + }, + "127167": { + "commit": "8e3adc4df64d5b382c8916610313ce25e0df8e28", + "text": "Allow Pod search domains to be a single dot `.` or contain an underscore `_`", + "markdown": "Allow for Pod search domains to be a single dot `.` or contain an underscore `_` ([#127167](https://github.com/kubernetes/kubernetes/pull/127167), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps, Network and Testing]", + "author": "adrianmoisey", + "author_url": "https://github.com/adrianmoisey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127167", + "pr_number": 127167, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "127187": { + "commit": "1caf9a150b794a7c4a17e63a54b902ec0b0be570", + "text": "Locked the custom profiling feature in `kubectl debug` to true.", + "markdown": "Locked the custom profiling feature in `kubectl debug` to true. ([#127187](https://github.com/kubernetes/kubernetes/pull/127187), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/4292-kubectl-debug-custom-profile", + "type": "KEP" + } + ], + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127187", + "pr_number": 127187, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127220": { + "commit": "9134c17b265b70b305dab1f2370d8593a5b3f48c", + "text": "When `SchedulerQueueingHint` is enabled, the scheduler's in-tree plugins now subscribe to specific node events to decide whether to requeue Pods. This allows the scheduler to handle cluster events faster with less memory. Specific node events include updates to taints, tolerations, or allocatable. In-tree plugins now ignore node updates that don't modify any of these fields.", + "markdown": "When `SchedulerQueueingHint` is enabled, the scheduler's in-tree plugins now subscribe to specific node events to decide whether to requeue Pods. This allows the scheduler to handle cluster events faster with less memory. Specific node events include updates to taints, tolerations, or allocatable. In-tree plugins now ignore node updates that don't modify any of these fields. ([#127220](https://github.com/kubernetes/kubernetes/pull/127220), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling and Storage]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127220", + "pr_number": 127220, + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true + }, + "127228": { + "commit": "60cbbdf4b36389b9994325abd8b2e924dcf84e24", + "text": "Improved the performance of the job controller when handling job update events.", + "markdown": "Improved the performance of the job controller when handling job update events. ([#127228](https://github.com/kubernetes/kubernetes/pull/127228), [@hakuna-matatah](https://github.com/hakuna-matatah))", + "author": "hakuna-matatah", + "author_url": "https://github.com/hakuna-matatah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127228", + "pr_number": 127228, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "is_mapped": true + }, + "127230": { + "commit": "dd4943c831dbc43fb8d410ccdbc27e3c807131fa", + "text": "Show a warning message to inform users that the `legacy` profile is planned to be deprecated.", + "markdown": "Show a warning message to inform users that the `legacy` profile is planned to be deprecated. ([#127230](https://github.com/kubernetes/kubernetes/pull/127230), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/1441-kubectl-debug#default-profile-and-automation-selection", + "type": "KEP" + } + ], + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127230", + "pr_number": 127230, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "127239": { + "commit": "6309127d696828d79cc8745e22f3f82f0d9f65e2", + "text": "Fixed a 1.31 regression where API emulation versioning honors cohabitating resources.", + "markdown": "Fixed a 1.31 regression where API emulation versioning honors cohabitating resources. ([#127239](https://github.com/kubernetes/kubernetes/pull/127239), [@xuzhenglun](https://github.com/xuzhenglun))", + "author": "xuzhenglun", + "author_url": "https://github.com/xuzhenglun", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127239", + "pr_number": 127239, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "127242": { + "commit": "e30d994129ea895a9b0180db350e1ad1e2495725", + "text": "kubeadm: `kubeadm upgrade node` now supports `addon` and `post-upgrade` phases. Users can use `kubeadm upgrade node phase addon` to execute the addon upgrade, or use `kubeadm upgrade node --skip-phases addon` to skip the addon upgrade. Currently, the `post-upgrade` phase is no-op, and it is mainly used to handle some release-specific post-upgrade tasks.", + "markdown": "kubeadm: `kubeadm upgrade node` now supports `addon` and `post-upgrade` phases. Users can use `kubeadm upgrade node phase addon` to execute the addon upgrade, or use `kubeadm upgrade node --skip-phases addon` to skip the addon upgrade. Currently, the `post-upgrade` phase is no-op, and it is mainly used to handle some release-specific post-upgrade tasks. ([#127242](https://github.com/kubernetes/kubernetes/pull/127242), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127242", + "pr_number": 127242, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "127266": { + "commit": "daef8c2419a638d3925e146d0f5a6b217ea69b74", + "text": "DRA: the `DeviceRequestAllocationResult` struct now has an \"AdminAccess\" field which should be used instead of the corresponding field in the `DeviceRequest` field when dealing with an allocation. If a device is only allocated for admin access, allocating it again for normal usage is now supported, as originally intended. To allow admin access, starting with 1.32 the `DRAAdminAccess` feature gate must be enabled.", + "markdown": "DRA: the `DeviceRequestAllocationResult` struct now has an \"AdminAccess\" field which should be used instead of the corresponding field in the `DeviceRequest` field when dealing with an allocation. If a device is only allocated for admin access, allocating it again for normal usage is now supported, as originally intended. To allow admin access, starting with 1.32 the `DRAAdminAccess` feature gate must be enabled. ([#127266](https://github.com/kubernetes/kubernetes/pull/127266), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Network, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127266", + "pr_number": 127266, + "areas": [ + "test", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "etcd", + "network", + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "127277": { + "commit": "c69f150008c70eb45dce8eda387c2e75c3962422", + "text": "DRA: scheduling pods is up to 16x faster, depending on the scenario. Scheduling throughput depends a lot on cluster utilization. It is higher for lightly loaded clusters with free resources and gets lower when the cluster utilization increases.", + "markdown": "DRA: scheduling pods is up to 16x faster, depending on the scenario. Scheduling throughput depends a lot on cluster utilization. It is higher for lightly loaded clusters with free resources and gets lower when the cluster utilization increases. ([#127277](https://github.com/kubernetes/kubernetes/pull/127277), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127277", + "pr_number": 127277, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "etcd", + "instrumentation", + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "127279": { + "commit": "7448e676aa0fc96eac53f159c03ca633823e7ff6", + "text": "Upgraded etcd client to v3.5.16.", + "markdown": "Upgraded etcd client to v3.5.16. ([#127279](https://github.com/kubernetes/kubernetes/pull/127279), [@serathius](https://github.com/serathius)) [SIG API Machinery, Auth, Cloud Provider and Node]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127279", + "pr_number": 127279, + "areas": [ + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "127302": { + "commit": "78d64904128add672b9f5d48d676c0bdc6a1c2de", + "text": "Promoted the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks`.", + "markdown": "Promoted the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks`. ([#127302](https://github.com/kubernetes/kubernetes/pull/127302), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127302", + "pr_number": 127302, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127318": { + "commit": "ce6396175b2b9435bde6c6809e0ba70225ffd0a8", + "text": "kube-proxy now reconciles Service/Endpoint changes with conntrack table and cleans up only stale UDP flow entries", + "markdown": "kube-proxy now reconciles Service/Endpoint changes with conntrack table and cleans up only stale UDP flow entries ([#127318](https://github.com/kubernetes/kubernetes/pull/127318), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127318", + "pr_number": 127318, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true, + "duplicate_kind": true + }, + "127326": { + "commit": "b82013ecd676bde3d67a10e6931a54c385abb4f1", + "text": "Updated the control plane's trust anchor publisher to create and manage a new ClusterTrustBundle object, associated with the `kubernetes.io/kube-apiserver-serving` X.509 certificate signer. This ClusterTrustBundle contains a PEM bundle in its payload that you can use to verify kube-apiserver serving certificates.", + "markdown": "Updated the control plane's trust anchor publisher to create and manage a new ClusterTrustBundle object, associated with the `kubernetes.io/kube-apiserver-serving` X.509 certificate signer. This ClusterTrustBundle contains a PEM bundle in its payload that you can use to verify kube-apiserver serving certificates. ([#127326](https://github.com/kubernetes/kubernetes/pull/127326), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Apps, Auth, Cluster Lifecycle and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3257", + "type": "KEP" + } + ], + "author": "stlaz", + "author_url": "https://github.com/stlaz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127326", + "pr_number": 127326, + "areas": [ + "test", + "kubelet", + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cluster-lifecycle", + "testing" + ], + "feature": true, + "duplicate": true + }, + "127327": { + "commit": "88df7e307b755ea1a0c3223a85d881d9703f2cf7", + "text": "Documented the `--for=create` option to `kubectl wait`.", + "markdown": "Documented the `--for=create` option to `kubectl wait`. ([#127327](https://github.com/kubernetes/kubernetes/pull/127327), [@ryanwinter](https://github.com/ryanwinter)) [SIG CLI]", + "author": "ryanwinter", + "author_url": "https://github.com/ryanwinter", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127327", + "pr_number": 127327, + "areas": [ + "kubectl" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cli" + ] + }, + "127333": { + "commit": "19e8e59d06cbdd067a9b5c141b674b63a09d0e5c", + "text": "kubeadm: ensure that Pods from the upgrade preflight check `CreateJob` are properly terminated after a timeout.", + "markdown": "kubeadm: ensure that Pods from the upgrade preflight check `CreateJob` are properly terminated after a timeout. ([#127333](https://github.com/kubernetes/kubernetes/pull/127333), [@yuyabee](https://github.com/yuyabee)) [SIG Cluster Lifecycle]", + "author": "yuyabee", + "author_url": "https://github.com/yuyabee", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127333", + "pr_number": 127333, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "127341": { + "commit": "035e272cb1efb6ad22171b2eb44fca353583112c", + "text": "Fully removed `PostStartHookContext.StopCh`.", + "markdown": "Fully removed `PostStartHookContext.StopCh`. ([#127341](https://github.com/kubernetes/kubernetes/pull/127341), [@mjudeikis](https://github.com/mjudeikis))", + "author": "mjudeikis", + "author_url": "https://github.com/mjudeikis", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127341", + "pr_number": 127341, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "127348": { + "commit": "61d9bae27453d3bb0febfc6133583afc5a6ac6ae", + "text": "LoadBalancerIPMode feature was marked as GA.", + "markdown": "LoadBalancerIPMode feature was marked as GA. ([#127348](https://github.com/kubernetes/kubernetes/pull/127348), [@RyanAoh](https://github.com/RyanAoh)) [SIG Apps, Network and Testing]", + "author": "RyanAoh", + "author_url": "https://github.com/RyanAoh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127348", + "pr_number": 127348, + "areas": [ + "test", + "kube-proxy", + "ipvs" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127360": { + "commit": "9660e5c4cd41700eae41a316dd236090bd7bf6e9", + "text": "Added a `Stream` field to `PodLogOptions`, which allows clients to request certain log stream (stdout or stderr) of the container.\nPlease also note that the combination of a specific `Stream` and `TailLines` is not supported.", + "markdown": "Added a `Stream` field to `PodLogOptions`, which allows clients to request certain log stream (stdout or stderr) of the container.\n Please also note that the combination of a specific `Stream` and `TailLines` is not supported. ([#127360](https://github.com/kubernetes/kubernetes/pull/127360), [@knight42](https://github.com/knight42)) [SIG API Machinery, Apps, Architecture, Node, Release and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3288-separate-stdout-from-stderr", + "type": "KEP" + } + ], + "author": "knight42", + "author_url": "https://github.com/knight42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127360", + "pr_number": 127360, + "areas": [ + "test", + "kubelet", + "apiserver", + "release-eng", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "node", + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "127378": { + "commit": "b1357bf9884dc6e83cdffcc7c6a57ec084d2971f", + "text": "Improved performance of the job controller when handling job delete events.", + "markdown": "Improved performance of the job controller when handling job delete events. ([#127378](https://github.com/kubernetes/kubernetes/pull/127378), [@hakuna-matatah](https://github.com/hakuna-matatah))", + "author": "hakuna-matatah", + "author_url": "https://github.com/hakuna-matatah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127378", + "pr_number": 127378, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "is_mapped": true + }, + "127388": { + "commit": "1874039f8269dde591dc736507f5bca6f4cb8972", + "text": "Added new functionality into the Go client code (`client-go`) library. The `List()` method for the metadata client allows enabling API streaming when fetching collections. This improves performance when listing many objects.\n\nTo request this behaviour, your client software must enable the `WatchListClient` client-go feature gate. Additionally, streaming is only available if supported by the cluster. The API server that you connect to must also support streaming.\n\nIf the API server does not support or allow streaming, then `client-go` falls back to fetching the collection using the **list** API verb.", + "markdown": "Added new functionality into the Go client code (`client-go`) library. The `List()` method for the metadata client allows enabling API streaming when fetching collections; this improves performance when listing many objects.\n To request this behaviour, your client software must enable the `WatchListClient` client-go feature gate. Additionally, streaming is only available if supported by the cluster; the API server that you connect to must also support streaming.\n If the API server does not support or allow streaming, then `client-go` falls back to fetching the collection using the **list** API verb. ([#127388](https://github.com/kubernetes/kubernetes/pull/127388), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127388", + "pr_number": 127388, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true + }, + "127402": { + "commit": "51f76febd7c2712a508ab68b402455f9a02c4e11", + "text": "Graduated Job's `ManagedBy` field to beta.", + "markdown": "Graduated Job's `ManagedBy` field to beta. ([#127402](https://github.com/kubernetes/kubernetes/pull/127402), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps and Testing]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/4368-support-managed-by-for-batch-jobs", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127402", + "pr_number": 127402, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "documentation", + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "127404": { + "commit": "be7d1000ee700a41794d8737770ef29bab8c8b50", + "text": "Enabled graceful shutdown feature for Windows node", + "markdown": "Enabled graceful shutdown feature for Windows node ([#127404](https://github.com/kubernetes/kubernetes/pull/127404), [@zylxjtu](https://github.com/zylxjtu)) [SIG Node, Testing and Windows]", + "author": "zylxjtu", + "author_url": "https://github.com/zylxjtu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127404", + "pr_number": 127404, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing", + "windows" + ], + "feature": true, + "duplicate": true + }, + "127417": { + "commit": "8e17456a01596f18bbfc6862e4987eb71e060beb", + "text": "Fixed a bug in the endpoints controller that failed to reconcile the Endpoint object after it was truncated (when it received more than 1000 endpoint addresses).", + "markdown": "Fixed a bug in the endpoints controller that failed to reconcile the Endpoint object after it was truncated (when it received more than 1000 endpoint addresses). ([#127417](https://github.com/kubernetes/kubernetes/pull/127417), [@aojea](https://github.com/aojea)) [SIG Apps, Network and Testing]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127417", + "pr_number": 127417, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps", + "network", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "127421": { + "commit": "dd820a13a28a6ed1a7dc5e556fd8c0a9493a2764", + "text": "Fixed the ability to set the `resolvConf` option in drop-in kubelet configuration files, which validates that drop-in kubelet configuration files are in a supported version.", + "markdown": "Fixed the ability to set the `resolvConf` option in drop-in kubelet configuration files, which validates that drop-in kubelet configuration files are in a supported version. ([#127421](https://github.com/kubernetes/kubernetes/pull/127421), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127421", + "pr_number": 127421, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "127427": { + "commit": "04bba3c222bb2c5b1b1565713de4bf334ee7fbe4", + "text": "Fixed the bug in `NodeUnschedulable` that only happens with QHint enabled, which the scheduler might miss some updates for the Pods rejected by NodeUnschedulable plugin and put the Pods in the queue for a longer time than needed.", + "markdown": "Fixed the bug in `NodeUnschedulable` that only happens with QHint enabled, which the scheduler might miss some updates for the Pods rejected by NodeUnschedulable plugin and put the Pods in the queue for a longer time than needed. ([#127427](https://github.com/kubernetes/kubernetes/pull/127427), [@sanposhiho](https://github.com/sanposhiho))", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127427", + "pr_number": 127427, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "127444": { + "commit": "960e3984b0f0b0254fc1f5a177ac3b4663937c48", + "text": "Improved Node's QueueingHint in the `NodeAffinity` plugin by ignoring unrelated changes that keep pods unschedulable.", + "markdown": "Improved Node's QueueingHint in the `NodeAffinity` plugin by ignoring unrelated changes that keep pods unschedulable. ([#127444](https://github.com/kubernetes/kubernetes/pull/127444), [@dom4ha](https://github.com/dom4ha)) [SIG Scheduling and Testing]", + "author": "dom4ha", + "author_url": "https://github.com/dom4ha", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127444", + "pr_number": 127444, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127447": { + "commit": "a87215915f9b60a0c0d7d99da3e75aa0614698b8", + "text": "Fixed the bug in PodTopologySpread that only happens with QHint enabled, which the scheduler might miss some updates for the Pods rejected by PodTopologySpread plugin and put the Pods in the queue for a longer time than needed.", + "markdown": "Fixed the bug in PodTopologySpread that only happens with QHint enabled, which the scheduler might miss some updates for the Pods rejected by PodTopologySpread plugin and put the Pods in the queue for a longer time than needed. ([#127447](https://github.com/kubernetes/kubernetes/pull/127447), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127447", + "pr_number": 127447, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "127464": { + "commit": "94df29b8f278503c3b332280132202096e247128", + "text": "Fixed a bug where the scheduler didn't correctly tell plugins about Node deletion. This bug could impact all scheduler plugins subscribing to Node/Delete events, making the queue keep the Pods rejected by those plugins incorrectly at Node deletion. Among the in-tree plugins, PodTopologySpread is the only victim.", + "markdown": "Fixed a bug where the scheduler didn't correctly tell plugins about Node deletion. This bug could impact all scheduler plugins subscribing to Node/Delete events, making the queue keep the Pods rejected by those plugins incorrectly at Node deletion. Among the in-tree plugins, PodTopologySpread is the only victim. ([#127464](https://github.com/kubernetes/kubernetes/pull/127464), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127464", + "pr_number": 127464, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true + }, + "127473": { + "commit": "421436a94c42576e9cc86d427924bc1d70096883", + "text": "Improved Node's QueueHint in the `NodeResourceFit` plugin by ignoring unrelated changes that keep pods unschedulable.", + "markdown": "Improved Node's QueueHint in the `NodeResourceFit` plugin by ignoring unrelated changes that keep pods unschedulable. ([#127473](https://github.com/kubernetes/kubernetes/pull/127473), [@dom4ha](https://github.com/dom4ha)) [SIG Scheduling and Testing]", + "author": "dom4ha", + "author_url": "https://github.com/dom4ha", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127473", + "pr_number": 127473, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127483": { + "commit": "a93e3e7ae10a4efd213019bd66af5663bd06a2c1", + "text": "Added a new option `strict-cpu-reservation` for CPU Manager static policy. When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly used for system daemons and interrupt processing, no longer available for any workload.", + "markdown": "Added a new option `strict-cpu-reservation` for CPU Manager static policy. When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly used for system daemons and interrupt processing, no longer available for any workload. ([#127483](https://github.com/kubernetes/kubernetes/pull/127483), [@jingczhang](https://github.com/jingczhang)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/4541", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://github.com/kubernetes/website/pull/48356", + "type": "external" + }, + { + "description": "[Blog]", + "url": "https://github.com/kubernetes/website/pull/48371", + "type": "external" + } + ], + "author": "jingczhang", + "author_url": "https://github.com/jingczhang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127483", + "pr_number": 127483, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "127489": { + "commit": "426aa3d6cec19616cc3749ca9186b688826fe4b8", + "text": "Pods are allowed to use the `net.ipv4.tcp_rmem` and `net.ipv4.tcp_wmem` sysctl by default when the kernel version is 4.15 or higher. With kernel 4.15, the sysctl became namespaced. Pod Security admission allows these sysctl in v1.32+ versions of the baseline and restricted policies.", + "markdown": "Pods are allowed to use the `net.ipv4.tcp_rmem` and `net.ipv4.tcp_wmem` sysctl by default when the kernel version is 4.15 or higher. With kernel 4.15, the sysctl became namespaced. Pod Security admission allows these sysctl in v1.32+ versions of the baseline and restricted policies. ([#127489](https://github.com/kubernetes/kubernetes/pull/127489), [@pacoxu](https://github.com/pacoxu)) [SIG Auth, Network and Node]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127489", + "pr_number": 127489, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "network", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127491": { + "commit": "99ff62e87a2d881f4839159d33519a49d6eee5d9", + "text": "kubeadm: when adding new control plane nodes with `kubeadm join`, ensure that the etcd member addition is performed only if a given member URL does not already exist in the list of members. Similarly, on \"kubeadm reset\" only remove an etcd member if its ID exists.", + "markdown": "kubeadm: when adding new control plane nodes with `kubeadm join`, ensure that the etcd member addition is performed only if a given member URL does not already exist in the list of members. Similarly, on \"kubeadm reset\" only remove an etcd member if its ID exists. ([#127491](https://github.com/kubernetes/kubernetes/pull/127491), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127491", + "pr_number": 127491, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "127497": { + "commit": "67cdc26214fbcac9ffecd68624df215416fdbba5", + "text": "DRA: when enabling the scheduler queuing hint feature, pods got stuck as unschedulable for a while unnecessarily because recording the name of the generated ResourceClaim did not trigger scheduling.", + "markdown": "DRA: when enabling the scheduler queuing hint feature, pods got stuck as unschedulable for a while unnecessarily because recording the name of the generated ResourceClaim did not trigger scheduling. ([#127497](https://github.com/kubernetes/kubernetes/pull/127497), [@pohly](https://github.com/pohly)) [SIG Auth, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + }, + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4247", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127497", + "pr_number": 127497, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "node", + "scheduling", + "testing" + ], + "duplicate": true + }, + "127506": { + "commit": "a339a36a368f315f440bfdb7ae1bbd48556441ae", + "text": "Added a kubelet metrics to report informations about the cpu pools managed by cpumanager when the static policy is in use.", + "markdown": "Added a kubelet metrics to report informations about the cpu pools managed by cpumanager when the static policy is in use. ([#127506](https://github.com/kubernetes/kubernetes/pull/127506), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127506", + "pr_number": 127506, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "127511": { + "commit": "e273349f3a2fde9a2499902645e8f10001c899bf", + "text": "The core functionality of Dynamic Resource Allocation (DRA) got promoted to beta. No action is required when *upgrading*, the previous v1alpha3 API is still supported, so existing deployments and DRA drivers based on v1alpha3 continue to work. *Downgrading* from 1.32 to 1.31 with DRA resources in the cluster (resourceclaims, resourceclaimtemplates, deviceclasses, resourceslices) is *not* supported because the new v1beta1 is used as storage version and not readable by 1.31.", + "markdown": "The core functionality of Dynamic Resource Allocation (DRA) got promoted to beta. No action is required when *upgrading*, the previous v1alpha3 API is still supported, so existing deployments and DRA drivers based on v1alpha3 continue to work. *Downgrading* from 1.32 to 1.31 with DRA resources in the cluster (resourceclaims, resourceclaimtemplates, deviceclasses, resourceslices) is *not* supported because the new v1beta1 is used as storage version and not readable by 1.31. ([#127511](https://github.com/kubernetes/kubernetes/pull/127511), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127511", + "pr_number": 127511, + "areas": [ + "test", + "kubelet", + "apiserver", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "etcd", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "127512": { + "commit": "257d6f3f5bf75ff0ce6c53c104a0ab9df1ed5059", + "text": "Added an example for kubectl delete with the --interactive flag.", + "markdown": "Added an example for kubectl delete with the --interactive flag. ([#127512](https://github.com/kubernetes/kubernetes/pull/127512), [@bergerhoffer](https://github.com/bergerhoffer)) [SIG CLI]", + "author": "bergerhoffer", + "author_url": "https://github.com/bergerhoffer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127512", + "pr_number": 127512, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "127513": { + "commit": "4d10ae8fdc579e2bb09789507cae7b8d32cbd306", + "text": "A new feature that allows unsafe deletion of corrupt resources has been added, it is disabled by default, \nand it can be enabled by setting the option `--feature-gates=AllowUnsafeMalformedObjectDeletion=true`. \nIt comes with an API change, a new delete option `ignoreStoreReadErrorWithClusterBreakingPotential` has\nbeen introduced, it is not set by default, this maintains backward compatibility. \nIn order to perform an unsafe deletion of a corrupt resource, the user must enable the option for the delete\nrequest. A resource is considered corrupt if it can not be successfully retrieved from the storage due to\na) transformation error e.g. decryption failure, or b) the object failed to decode. Normal deletion flow is\nattempted first, and if it fails with a corrupt resource error then it triggers unsafe delete.\nIn addition, when this feature is enabled, the 'details' field of 'Status' from the LIST response \nincludes information that identifies the corrupt object(s).\nNOTE: unsafe deletion ignores finalizer constraints, and skips precondition checks.\nWARNING: this may break the workload associated with the resource being unsafe-deleted, if it relies on\nthe normal deletion flow, so cluster breaking consequences apply.", + "markdown": "A new feature that allows unsafe deletion of corrupt resources has been added, it is disabled by default, \n and it can be enabled by setting the option `--feature-gates=AllowUnsafeMalformedObjectDeletion=true`. \n It comes with an API change, a new delete option `ignoreStoreReadErrorWithClusterBreakingPotential` has\n been introduced, it is not set by default, this maintains backward compatibility. \n In order to perform an unsafe deletion of a corrupt resource, the user must enable the option for the delete\n request. A resource is considered corrupt if it can not be successfully retrieved from the storage due to\n a) transformation error e.g. decryption failure, or b) the object failed to decode. Normal deletion flow is\n attempted first, and if it fails with a corrupt resource error then it triggers unsafe delete.\n In addition, when this feature is enabled, the 'details' field of 'Status' from the LIST response \n includes information that identifies the corrupt object(s).\n NOTE: unsafe deletion ignores finalizer constraints, and skips precondition checks.\n WARNING: this may break the workload associated with the resource being unsafe-deleted, if it relies on\n the normal deletion flow, so cluster breaking consequences apply. ([#127513](https://github.com/kubernetes/kubernetes/pull/127513), [@tkashem](https://github.com/tkashem)) [SIG API Machinery, Etcd, Node and Testing]", + "author": "tkashem", + "author_url": "https://github.com/tkashem", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127513", + "pr_number": 127513, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "etcd", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "127524": { + "commit": "19500e8551c478b7a30d822f2f8a668d361069cb", + "text": "Extend discovery GroupManager with Group lister interface", + "markdown": "Extend discovery GroupManager with Group lister interface ([#127524](https://github.com/kubernetes/kubernetes/pull/127524), [@mjudeikis](https://github.com/mjudeikis)) [SIG API Machinery]", + "author": "mjudeikis", + "author_url": "https://github.com/mjudeikis", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127524", + "pr_number": 127524, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true + }, + "127551": { + "commit": "3d6c5b2e98afaaae1d17107e2d3d709c726be49d", + "text": "Fixed the incorrect hierarchical structure for both the child span and the parent span (i.e., `SerializeObject` and `List`). In the past, some children's spans appeared parallel to their parents.", + "markdown": "Fixed the incorrect hierarchical structure for both the child span and the parent span (i.e., `SerializeObject` and `List`). In the past, some children's spans appeared parallel to their parents. ([#127551](https://github.com/kubernetes/kubernetes/pull/127551), [@carlory](https://github.com/carlory)) [SIG API Machinery and Instrumentation]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127551", + "pr_number": 127551, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "127565": { + "commit": "cdf077da6fa5f610075c22068e3ab6b057247163", + "text": "DRA: Fixed several issues related to `allocationMode: all`.", + "markdown": "DRA: Fixed several issues related to `allocationMode: all`. ([#127565](https://github.com/kubernetes/kubernetes/pull/127565), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127565", + "pr_number": 127565, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "127566": { + "commit": "7fff5b6b0282c4f55b0a75e20fefcb0051d97298", + "text": "Added kubelet support for systemd watchdog integration. With this enabled, systemd can automatically recover a hung kubelet.", + "markdown": "Added kubelet support for systemd watchdog integration. With this enabled, systemd can automatically recover a hung kubelet. ([#127566](https://github.com/kubernetes/kubernetes/pull/127566), [@zhifei92](https://github.com/zhifei92)) [SIG Cloud Provider, Node, and Testing]", + "author": "zhifei92", + "author_url": "https://github.com/zhifei92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127566", + "pr_number": 127566, + "areas": [ + "test", + "kubelet", + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127574": { + "commit": "239802e4f754d58daeb2893196062efa340ea6fa", + "text": "Support specifying a custom network parameter when running e2e-node tests with the remote option.", + "markdown": "Support specifying a custom network parameter when running e2e-node tests with the remote option. ([#127574](https://github.com/kubernetes/kubernetes/pull/127574), [@bouaouda-achraf](https://github.com/bouaouda-achraf)) [SIG Node and Testing]", + "author": "bouaouda-achraf", + "author_url": "https://github.com/bouaouda-achraf", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127574", + "pr_number": 127574, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "127581": { + "commit": "4d91d502832ce55204343d7864fe28019d87b2bb", + "text": "Added a `/flagz` endpoint for kube-apiserver endpoint.", + "markdown": "Added a `/flagz` endpoint for kube-apiserver endpoint. ([#127581](https://github.com/kubernetes/kubernetes/pull/127581), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Architecture, Auth and Instrumentation]", + "author": "richabanker", + "author_url": "https://github.com/richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127581", + "pr_number": 127581, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "127587": { + "commit": "fbf1a0dc181ccbeb9925ad9c284d913a25c16562", + "text": "The synthetic \"Bookmark\" event for the watch stream requests will now include a new annotation: `kubernetes.io/initial-events-list-blueprint`. The annotation contains an empty, versioned list that is encoded in the requested format (such as protobuf, JSON, or CBOR), then base64-encoded and stored as a string.", + "markdown": "The synthetic \"Bookmark\" event for the watch stream requests will now include a new annotation: `kubernetes.io/initial-events-list-blueprint`. The annotation contains an empty, versioned list that is encoded in the requested format (such as protobuf, JSON, or CBOR), then base64-encoded and stored as a string. ([#127587](https://github.com/kubernetes/kubernetes/pull/127587), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127587", + "pr_number": 127587, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true + }, + "127598": { + "commit": "e9cde03b915e8697d64d2908efae536dd339fc73", + "text": "Fixed a bug with dual stack clusters using the beta feature MultiCIDRServiceAllocator which could not create dual stack Services or Services with IPs in the secondary range. Users who wanted to use this feature in version 1.30 with dual stack clusters could work around the issue by setting the feature gate DisableAllocatorDualWrite to true.", + "markdown": "Fixed a bug with dual stack clusters using the beta feature MultiCIDRServiceAllocator which could not create dual stack Services or Services with IPs in the secondary range. Users who wanted to use this feature in version 1.30 with dual stack clusters could work around the issue by setting the feature gate DisableAllocatorDualWrite to true. ([#127598](https://github.com/kubernetes/kubernetes/pull/127598), [@aojea](https://github.com/aojea)) [SIG Network and Testing]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127598", + "pr_number": 127598, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "127611": { + "commit": "37004f89b0246fe85cfd5c7a96335363c5f1d9ff", + "text": "Kubernetes was built with Go 1.23.1.", + "markdown": "Kubernetes was built with Go 1.23.1. ([#127611](https://github.com/kubernetes/kubernetes/pull/127611), [@haitch](https://github.com/haitch)) [SIG Release and Testing]", + "author": "haitch", + "author_url": "https://github.com/haitch", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127611", + "pr_number": 127611, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127634": { + "commit": "bb6bfba47510c699cbbd1e910f37caca4c634359", + "text": "`kubectl apply --server-side` now supports `--subresource` congruent to `kubectl patch`.", + "markdown": "`kubectl apply --server-side` now supports `--subresource` congruent to `kubectl patch`. ([#127634](https://github.com/kubernetes/kubernetes/pull/127634), [@deads2k](https://github.com/deads2k)) [SIG CLI and Testing]", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127634", + "pr_number": 127634, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "127650": { + "commit": "996e674ea7039a39afd21b479a9601d57cb49b8d", + "text": "kubeadm: fixed an issue where the wrong member list was being reported when removing an etcd member.", + "markdown": "kubeadm: fixed an issue where the wrong member list was being reported when removing an etcd member. ([#127650](https://github.com/kubernetes/kubernetes/pull/127650), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127650", + "pr_number": 127650, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "127661": { + "commit": "8aae9aabf39b0da921cddd7b15d807a4cf3a0190", + "text": "DRA: The resource claim controller now maintains metrics about the total number of `ResourceClaims` and the number of allocated `ResourceClaims`.", + "markdown": "DRA: The resource claim controller now maintains metrics about the total number of `ResourceClaims` and the number of allocated `ResourceClaims`. ([#127661](https://github.com/kubernetes/kubernetes/pull/127661), [@pohly](https://github.com/pohly)) [SIG Apps, Instrumentation and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127661", + "pr_number": 127661, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "instrumentation", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127663": { + "commit": "95ec69c16c76b5ee71fdbebc7a5dea2c39341eb3", + "text": "The members name and typeDescription of the Reflector struct were exported to allow for better user extensibility.", + "markdown": "The members name and typeDescription of the Reflector struct were exported to allow for better user extensibility. ([#127663](https://github.com/kubernetes/kubernetes/pull/127663), [@alexanderstephan](https://github.com/alexanderstephan))", + "author": "alexanderstephan", + "author_url": "https://github.com/alexanderstephan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127663", + "pr_number": 127663, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "127669": { + "commit": "3d00d6e42113db6fca88ec6a0d03970bc63d7bea", + "text": "Fixed a race condition that could result in erroneous volume unmounts for flex volume plugins during kubelet restart.", + "markdown": "Fixed a race condition that could result in erroneous volume unmounts for flex volume plugins during kubelet restart. ([#127669](https://github.com/kubernetes/kubernetes/pull/127669), [@olyazavr](https://github.com/olyazavr))", + "author": "olyazavr", + "author_url": "https://github.com/olyazavr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127669", + "pr_number": 127669, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "127673": { + "commit": "523a2b6da8b93c4e64a02a2f7de41b763fbd7a8f", + "text": "Promoted `CustomResourceFieldSelectors` to stable; the feature was enabled by default. The `--feature-gates=CustomResourceFieldSelectors=true` flag was no longer needed on kube-apiserver binaries and would be removed in a future release.", + "markdown": "Promoted `CustomResourceFieldSelectors` to stable; the feature was enabled by default. The `--feature-gates=CustomResourceFieldSelectors=true` flag was no longer needed on kube-apiserver binaries and would be removed in a future release. ([#127673](https://github.com/kubernetes/kubernetes/pull/127673), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127673", + "pr_number": 127673, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "127711": { + "commit": "1b71b94b738f1cd179589b7521ad29985404f65b", + "text": "When entering a value other than \"external\" to the \"--cloud-provider\" flag for the kubelet, kube-controller-manager, and kube-apiserver, the user will now receive a warning in the logs about the disablement of internal cloud providers, this is in contrast to the previous warnings about deprecation.", + "markdown": "When entering a value other than \"external\" to the \"--cloud-provider\" flag for the kubelet, kube-controller-manager, and kube-apiserver, the user will now receive a warning in the logs about the disablement of internal cloud providers, this is in contrast to the previous warnings about deprecation. ([#127711](https://github.com/kubernetes/kubernetes/pull/127711), [@elmiko](https://github.com/elmiko)) [SIG API Machinery, Cloud Provider and Node]", + "author": "elmiko", + "author_url": "https://github.com/elmiko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127711", + "pr_number": 127711, + "areas": [ + "kubelet", + "apiserver", + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "node" + ], + "duplicate": true + }, + "127744": { + "commit": "6bc0768c62b9dade91b22d1bfcc115edf1f0ccad", + "text": "Tighten validation on the qosClass field of pod status. This field is immutable but it would be populated with the old status by kube-apiserver if it is unset in the new status when updating this field via the status subsource.", + "markdown": "Tighten validation on the qosClass field of pod status. This field is immutable but it would be populated with the old status by kube-apiserver if it is unset in the new status when updating this field via the status subsource. ([#127744](https://github.com/kubernetes/kubernetes/pull/127744), [@carlory](https://github.com/carlory)) [SIG Apps, Instrumentation, Node, Storage and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127744", + "pr_number": 127744, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "instrumentation", + "node", + "storage", + "testing" + ], + "duplicate": true + }, + "127780": { + "commit": "8539497010969a16ebbb52c2e965d2c4fd63bcb4", + "text": "Fixed a regression introduced in v1.29 where conntrack entries for UDP connections to deleted pods did not get cleaned up correctly, which could (among other things) cause DNS problems when DNS pods were restarted.", + "markdown": "Fixed a regression introduced in v1.29 where conntrack entries for UDP connections\n to deleted pods did not get cleaned up correctly, which could (among other things)\n cause DNS problems when DNS pods were restarted. ([#127780](https://github.com/kubernetes/kubernetes/pull/127780), [@danwinship](https://github.com/danwinship))", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127780", + "pr_number": 127780, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "127786": { + "commit": "03f134461462f86239067ec20ec17a0ba892db52", + "text": "Added an option to enable leader election in local-up-cluster.sh via the LEADER_ELECT CLI flag.", + "markdown": "Added an option to enable leader election in local-up-cluster.sh via the LEADER_ELECT CLI flag. ([#127786](https://github.com/kubernetes/kubernetes/pull/127786), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127786", + "pr_number": 127786, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "127787": { + "commit": "bb97163ff7d6d496e4aeba68830f6e9cd089a39d", + "text": "Removed the feature gate ComponentSLIs, which had been promoted to stable since v1.29.", + "markdown": "Removed the feature gate ComponentSLIs, which had been promoted to stable since v1.29. ([#127787](https://github.com/kubernetes/kubernetes/pull/127787), [@Jefftree](https://github.com/Jefftree)) [SIG Architecture and Instrumentation]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127787", + "pr_number": 127787, + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "127857": { + "commit": "45260fd76aa7b2ceed16aea173ccb3f81e3ab98b", + "text": "coordination.v1alpha1 API is dropped and replaced with coordination.v1alpha2. Old coordination.v1alpha1 types must be deleted before upgrade", + "markdown": "Coordination.v1alpha1 API is dropped and replaced with coordination.v1alpha2. Old coordination.v1alpha1 types must be deleted before upgrade ([#127857](https://github.com/kubernetes/kubernetes/pull/127857), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Etcd, Scheduling and Testing]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127857", + "pr_number": 127857, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "etcd", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "127861": { + "commit": "2d31ec00273c34390ec77637fb4ff96234885bca", + "text": "Reverted Go version used to build Kubernetes to 1.23.0.", + "markdown": "Reverted Go version used to build Kubernetes to 1.23.0. ([#127861](https://github.com/kubernetes/kubernetes/pull/127861), [@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/127861", + "pr_number": 127861, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127869": { + "commit": "1f9d2577da68290c0466c1404bbff6100e1e303a", + "text": "Added a short output format argument for `kubectl explain`. You could now use `-o` as an abbreviation for `--output` in commands such as `kubectl explain \u003cresource\u003e --output plaintext-openapiv2`.", + "markdown": "Added a short output format argument for `kubectl explain`. You could now use `-o` as an abbreviation for `--output` in commands such as `kubectl explain \u003cresource\u003e --output plaintext-openapiv2`. ([#127869](https://github.com/kubernetes/kubernetes/pull/127869), [@ak20102763](https://github.com/ak20102763))", + "author": "ak20102763", + "author_url": "https://github.com/ak20102763", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127869", + "pr_number": 127869, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "127874": { + "commit": "ad9dad07a89acd183cf925a5726291de3798da2a", + "text": "Fixed an issue where eviction manager was not deleting unused images or containers.", + "markdown": "Fixed an issue where eviction manager was not deleting unused images or containers. ([#127874](https://github.com/kubernetes/kubernetes/pull/127874), [@AnishShah](https://github.com/AnishShah))", + "author": "AnishShah", + "author_url": "https://github.com/AnishShah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127874", + "pr_number": 127874, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "flake" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "127878": { + "commit": "95612e7b3b7d44f07f3425d2b0a2af77e72974a1", + "text": "The scheduler started considering the resource requests of existing sidecar containers during the scoring process.", + "markdown": "The scheduler started considering the resource requests of existing sidecar containers during the scoring process. ([#127878](https://github.com/kubernetes/kubernetes/pull/127878), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Testing]", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127878", + "pr_number": 127878, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "127898": { + "commit": "1947bf57ef0635e8764eee25e5726a8ec4189b7f", + "text": "Fixed documentation for the `apiserver_admission_webhook_fail_open_count` and `apiserver_admission_webhook_request_total` metrics. The `type` label can have a value of \"admit\", not \"mutating\".", + "markdown": "Fixed documentation for the `apiserver_admission_webhook_fail_open_count` and `apiserver_admission_webhook_request_total` metrics. The `type` label can have a value of \"admit\", not \"mutating\". ([#127898](https://github.com/kubernetes/kubernetes/pull/127898), [@modulitos](https://github.com/modulitos))", + "author": "modulitos", + "author_url": "https://github.com/modulitos", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127898", + "pr_number": 127898, + "areas": [ + "apiserver" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "127918": { + "commit": "7429566b07b2c0f65e0d5f4febbdf31e48b0a9ff", + "text": "Append the image pull error to the pods `status.containerStatuses[*].state.waiting.message` when in image pull back-off (`reason` is `ImagePullBackOff`) instead of the generic `Back-off pulling image…` message.", + "markdown": "Append the image pull error for the pods `status.containerStatuses[*].state.waiting.message` when\n in image pull back-off (`reason` is `ImagePullBackOff`) instead of the generic `Back-off pulling image…` message. ([#127918](https://github.com/kubernetes/kubernetes/pull/127918), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127918", + "pr_number": 127918, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "127919": { + "commit": "1f9038a46883addc2e6bc462111b5726c36573ba", + "text": "Fixed data race in kubelet/volumemanager.", + "markdown": "Fixed data race in kubelet/volumemanager. ([#127919](https://github.com/kubernetes/kubernetes/pull/127919), [@carlory](https://github.com/carlory)) [SIG Apps, Node and Storage]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127919", + "pr_number": 127919, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "node", + "storage" + ], + "duplicate": true, + "is_mapped": true + }, + "127965": { + "commit": "e7bc45269d53da81d276efdde06dcbbeb4c286cc", + "text": "Upgraded the functionality of `kubectl kustomize` as described at\nhttps://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.4.2\nand https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.5.0.", + "markdown": "Upgraded the functionality of `kubectl kustomize` as described at\n https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.4.2\n and https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.5.0. ([#127965](https://github.com/kubernetes/kubernetes/pull/127965), [@koba1t](https://github.com/koba1t))", + "author": "koba1t", + "author_url": "https://github.com/koba1t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127965", + "pr_number": 127965, + "areas": [ + "kubectl", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "127976": { + "commit": "c45f3ab813045e3988df0cefa21cb8547c226463", + "text": "Fixed problem with named ports missing from endpoints when they are specified in sidecar containers.", + "markdown": "Fixed problem with named ports missing from endpoints when they are specified in sidecar containers. ([#127976](https://github.com/kubernetes/kubernetes/pull/127976), [@chengjoey](https://github.com/chengjoey))", + "author": "chengjoey", + "author_url": "https://github.com/chengjoey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127976", + "pr_number": 127976, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "127981": { + "commit": "97c79df18f8552facf63682b23d9380253972d48", + "text": "Implemented a new, alpha `seLinuxChangePolicy` field within a Pod-level `securityContext`, under SELinuxChangePolicy feature gate. This field allows for opting out from mounting Pod volumes with SELinux label when SELinuxMount feature is enabled (it is alpha and disabled by default now).\nPlease see [the KEP](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling#story-3-cluster-upgrade) how we expect to warn users before any SELinux behavior changes and how they can opt-out before. Note that this field and feature gate is useful only with clusters that run with SELinux enabled. No action is required on clusters without SELinux.", + "markdown": "Implemented a new, alpha `seLinuxChangePolicy` field within a Pod-level `securityContext`, under SELinuxChangePolicy feature gate. This field allows for opting out from mounting Pod volumes with SELinux label when SELinuxMount feature is enabled (it is alpha and disabled by default now).\n Please see [the KEP](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling#story-3-cluster-upgrade) how we expect to warn users before any SELinux behavior changes and how they can opt-out before. Note that this field and feature gate is useful only with clusters that run with SELinux enabled. No action is required on clusters without SELinux. ([#127981](https://github.com/kubernetes/kubernetes/pull/127981), [@jsafrane](https://github.com/jsafrane)) [SIG API Machinery, Apps, Architecture, Node, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling", + "type": "KEP" + } + ], + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127981", + "pr_number": 127981, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "node", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "128003": { + "commit": "b1b4e5d397e303cf7a2a3fb02e90f40536da5896", + "text": "Removed all support for _classic_ dynamic resource allocation (DRA). The `DRAControlPlaneController` feature gate, formerly alpha, is no longer available. Kubernetes now only uses the _structured parameters_ model (also alpha) for allocating dynamic resources to Pods.\n\nIf and only if classic DRA was enabled in a cluster, remove all workloads (pods, app deployments, etc.) which depend on classic DRA and make sure that all PodSchedulingContext resources are gone before upgrading. PodSchedulingContext resources cannot be removed through the apiserver after an upgrade and workloads would not work properly.", + "markdown": "Removed all support for _classic_ dynamic resource allocation (DRA). The `DRAControlPlaneController` feature gate, formerly alpha, is no longer available. Kubernetes now only uses the _structured parameters_ model (also alpha) for allocating dynamic resources to Pods.\n \n If and only if classic DRA was enabled in a cluster, remove all workloads (pods, app deployments, etc.) which depend on classic DRA and make sure that all PodSchedulingContext resources are gone before upgrading. PodSchedulingContext resources cannot be removed through the apiserver after an upgrade and workloads would not work properly. ([#128003](https://github.com/kubernetes/kubernetes/pull/128003), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3063", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128003", + "pr_number": 128003, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "etcd", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true, + "is_mapped": true + }, + "128009": { + "commit": "023cd33d23067908d08bd21affa43140fb5d7791", + "text": "kube-controller-manager `--leader-migration-config` files were now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration would cause an error.", + "markdown": "kube-controller-manager `--leader-migration-config` files were now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration would cause an error. ([#128009](https://github.com/kubernetes/kubernetes/pull/128009), [@seans3](https://github.com/seans3)) [SIG API Machinery and Cloud Provider]", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128009", + "pr_number": 128009, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "128011": { + "commit": "8b7b768ff78d73267e52c0828e1e0eb3f5328f28", + "text": "kube-apiserver `--egress-selector-config-file` files were validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause an error.", + "markdown": "kube-apiserver `--egress-selector-config-file` files were validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause an error. ([#128011](https://github.com/kubernetes/kubernetes/pull/128011), [@seans3](https://github.com/seans3)) [SIG API Machinery and Testing]", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128011", + "pr_number": 128011, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "128013": { + "commit": "eb5c8965befeefad027d0c1684fe6d34f6f31c19", + "text": "kube-apiserver `--admission-control-config-file` files are now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause errors.", + "markdown": "kube-apiserver `--admission-control-config-file` files are now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause errors. ([#128013](https://github.com/kubernetes/kubernetes/pull/128013), [@seans3](https://github.com/seans3))", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128013", + "pr_number": 128013, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "128029": { + "commit": "2fabf5fa63ef4184a96ebd0cc99f1c3369ed48b4", + "text": "Change OOM score adjustment calculation for sidecar containers: the OOM adjustment for these containers will match or fall below the OOM score adjustment of regular containers in the Pod.", + "markdown": "Change OOM score adjustment calculation for sidecar containers: the OOM adjustment for these containers will match or fall below the OOM score adjustment of regular containers in the Pod. ([#128029](https://github.com/kubernetes/kubernetes/pull/128029), [@bouaouda-achraf](https://github.com/bouaouda-achraf))", + "author": "bouaouda-achraf", + "author_url": "https://github.com/bouaouda-achraf", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128029", + "pr_number": 128029, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "128031": { + "commit": "983dd0776061be79ccdc3646ba5c43dd6ef85527", + "text": "kubeadm: added the feature gate `NodeLocalCRISocket`. When the feature gate is enabled, kubeadm will generate the `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in the kubelet configuration for each node and will not write the same CRI socket on the Node object as an annotation.", + "markdown": "kubeadm: added the feature gate `NodeLocalCRISocket`. When the feature gate is enabled, kubeadm will generate the `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in the kubelet configuration for each node and will not write the same CRI socket on the Node object as an annotation. ([#128031](https://github.com/kubernetes/kubernetes/pull/128031), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/4656-add-kubelet-instance-configuration", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128031", + "pr_number": 128031, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true + }, + "128035": { + "commit": "4dc7a48ac6fb631a84e1974772bf7b8fd0bb9c59", + "text": "The getters for the field name and typeDescription of the Reflector struct have been renamed.", + "markdown": "The getters for the field name and typeDescription of the Reflector struct have been renamed. ([#128035](https://github.com/kubernetes/kubernetes/pull/128035), [@alexanderstephan](https://github.com/alexanderstephan))", + "author": "alexanderstephan", + "author_url": "https://github.com/alexanderstephan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128035", + "pr_number": 128035, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "128038": { + "commit": "510a7e76018189b49e8d7c1ba4ac639bdf4dba37", + "text": "kube-apiserver `ResourceQuotaConfiguration` admission plugin subsection within `--admission-control-config-file` files is now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause errors.", + "markdown": "kube-apiserver `ResourceQuotaConfiguration` admission plugin subsection within `--admission-control-config-file` files is now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause errors. ([#128038](https://github.com/kubernetes/kubernetes/pull/128038), [@seans3](https://github.com/seans3))", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128038", + "pr_number": 128038, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "128046": { + "commit": "9fe41b6198a47d19a598b75eabee3d87b1d0fde1", + "text": "PodLifecycleSleepAction is graduated to GA", + "markdown": "PodLifecycleSleepAction is graduated to GA ([#128046](https://github.com/kubernetes/kubernetes/pull/128046), [@AxeZhan](https://github.com/AxeZhan)) [SIG Architecture, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3960", + "type": "KEP" + } + ], + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128046", + "pr_number": 128046, + "areas": [ + "test", + "kubelet", + "conformance" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "architecture", + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "128052": { + "commit": "7f5510921d3484509052903e720793937a63035a", + "text": "CRI client now uses the default timeout for `ImageFsInfo` RPC.", + "markdown": "CRI client now uses the default timeout for `ImageFsInfo` RPC. ([#128052](https://github.com/kubernetes/kubernetes/pull/128052), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128052", + "pr_number": 128052, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "128053": { + "commit": "06a15c5cf96131faaf44f93f1be228a013ae5c0d", + "text": "Graduated the `WatchList` feature gate to Beta for kube-apiserver and enabled `WatchListClient` for KCM.", + "markdown": "Graduated the `WatchList` feature gate to Beta for kube-apiserver and enabled `WatchListClient` for KCM. ([#128053](https://github.com/kubernetes/kubernetes/pull/128053), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128053", + "pr_number": 128053, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128062": { + "commit": "55b83c92b3b69cd53d5bf22b8ccff859a005241a", + "text": "kubelet: the `--image-credential-provider-config` file is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with malformed config files, unindented files, or typos in field names, and prevents unexpected behavior.", + "markdown": "kubelet: the `--image-credential-provider-config` file is now loaded with strict deserialization, which fails if the config file contains duplicate or unknown fields. This protects against accidentally running with malformed config files, unindented files, or typos in field names, and prevents unexpected behavior. ([#128062](https://github.com/kubernetes/kubernetes/pull/128062), [@aramase](https://github.com/aramase)) [SIG Auth and Node]", + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128062", + "pr_number": 128062, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "auth", + "node" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128073": { + "commit": "3694a02bb9b5c1dd216485d2e25bd2c8f24916dd", + "text": "The kube-apiserver `--tracing-config-file` is now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now result in an error.", + "markdown": "The kube-apiserver `--tracing-config-file` is now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now result in an error. ([#128073](https://github.com/kubernetes/kubernetes/pull/128073), [@seans3](https://github.com/seans3))", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128073", + "pr_number": 128073, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "128077": { + "commit": "28900b8069a34cc068c3590c78ce36a1452b96cf", + "text": "NodeRestriction admission now validates the audience value that kubelet is requesting a service account token for is part of the pod spec volume. This change is introduced with a new kube-apiserver featuregate `ServiceAccountNodeAudienceRestriction` that's enabled by default.", + "markdown": "NodeRestriction admission now validates the audience value that kubelet is requesting a service account token for is part of the pod spec volume. This change is introduced with a new kube-apiserver featuregate `ServiceAccountNodeAudienceRestriction` that's enabled by default. ([#128077](https://github.com/kubernetes/kubernetes/pull/128077), [@aramase](https://github.com/aramase)) [SIG Auth, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128077", + "pr_number": 128077, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "auth", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "128081": { + "commit": "99cc395e2b9870ab9813e7ea4c0940225e30d05d", + "text": "Fixed spacing in `--validate flag` description in kubectl.", + "markdown": "Fixed spacing in `--validate flag` description in kubectl. ([#128081](https://github.com/kubernetes/kubernetes/pull/128081), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128081", + "pr_number": 128081, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "128083": { + "commit": "d7e5ff87e067be419ba97344349e90fdd9262cac", + "text": "kubelet: Fixed a bug where the kubelet wrongly drops the QOSClass field of the Pod's status when it rejects a Pod.", + "markdown": "kubelet: Fixed a bug where the kubelet wrongly drops the QOSClass field of the Pod's status when it rejects a Pod. ([#128083](https://github.com/kubernetes/kubernetes/pull/128083), [@carlory](https://github.com/carlory)) [SIG Node and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128083", + "pr_number": 128083, + "areas": [ + "test", + "kubelet", + "e2e-test-framework" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "128091": { + "commit": "1d8828ce707ed9dd7a6a9756385419cce1d202ac", + "text": "Updated cni-plugins to [v1.6.0](https://github.com/containernetworking/plugins/releases/tag/v1.6.0).", + "markdown": "Updated cni-plugins to [v1.6.0](https://github.com/containernetworking/plugins/releases/tag/v1.6.0). ([#128091](https://github.com/kubernetes/kubernetes/pull/128091), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128091", + "pr_number": 128091, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "128099": { + "commit": "db0af9bd94efc25693545a69f273a4d26bf6483b", + "text": "Fixed a bug in the `NestedNumberAsFloat64` Unstructured field accessor that could have caused it to return rounded float64 values instead of errors when accessing very large int64 values.", + "markdown": "Fixed a bug in the `NestedNumberAsFloat64` Unstructured field accessor that could have caused it to return rounded float64 values instead of errors when accessing very large int64 values. ([#128099](https://github.com/kubernetes/kubernetes/pull/128099), [@benluddy](https://github.com/benluddy))", + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128099", + "pr_number": 128099, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "128100": { + "commit": "527d937b23e51a5df0d1daf52a4f94d36d409f76", + "text": "Disallowed label values will show up as \"unexpected\" in all system components' metrics.", + "markdown": "Disallowed label values will show up as \"unexpected\" in all system components' metrics. ([#128100](https://github.com/kubernetes/kubernetes/pull/128100), [@yongruilin](https://github.com/yongruilin)) [SIG Architecture and Instrumentation]", + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128100", + "pr_number": 128100, + "kinds": [ + "bug" + ], + "sigs": [ + "architecture", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "128101": { + "commit": "3690cb7f9a96baa98b1a13f71a00028629630a8f", + "text": "Added enforcement of an upper cost bound for DRA evaluations of CEL. The API server and scheduler now enforce an upper bound on the cost and runtime steps required for evaluating a CEL expression.", + "markdown": "Added enforcement of an upper cost bound for DRA evaluations of CEL. The API server and scheduler now enforce an upper bound on the cost and runtime steps required for evaluating a CEL expression. ([#128101](https://github.com/kubernetes/kubernetes/pull/128101), [@pohly](https://github.com/pohly)) [SIG API Machinery and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128101", + "pr_number": 128101, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128110": { + "commit": "a0db55c3a644e6eac0e842a05475b39a99e7ed87", + "text": "Kubernetes was built with Go 1.23.2.", + "markdown": "Kubernetes was built with Go 1.23.2. ([#128110](https://github.com/kubernetes/kubernetes/pull/128110), [@haitch](https://github.com/haitch)) [SIG Release and Testing]", + "author": "haitch", + "author_url": "https://github.com/haitch", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128110", + "pr_number": 128110, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128118": { + "commit": "190eb057f4eaac1db47b54f0d8232eae6ebd1ff2", + "text": "kubeadm: fixed a misleading output (typo) about control-plane joining instructions when executing the \"kubeadm init\" command.", + "markdown": "kubeadm: fixed a misleading output (typo) about control-plane joining instructions when executing the \"kubeadm init\" command. ([#128118](https://github.com/kubernetes/kubernetes/pull/128118), [@amaddio](https://github.com/amaddio))", + "author": "amaddio", + "author_url": "https://github.com/amaddio", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128118", + "pr_number": 128118, + "areas": [ + "kubeadm" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "128119": { + "commit": "5f3316fe238a5a32ce50a016d27b6e600c945de0", + "text": "Clarified an API validation error for toleration if `operator` is `Exists` and `value` is not empty.", + "markdown": "Clarified an API validation error for toleration if `operator` is `Exists` and `value` is not empty. ([#128119](https://github.com/kubernetes/kubernetes/pull/128119), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery and Apps]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128119", + "pr_number": 128119, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "is_mapped": true + }, + "128124": { + "commit": "961344ddb23c6df2e9de1e10aaa9c13253812dfd", + "text": "The `TopologyManagerPolicyOptions` feature-flag is promoted to GA.", + "markdown": "The `TopologyManagerPolicyOptions` feature-flag is promoted to GA. ([#128124](https://github.com/kubernetes/kubernetes/pull/128124), [@PiotrProkop](https://github.com/PiotrProkop))", + "author": "PiotrProkop", + "author_url": "https://github.com/PiotrProkop", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128124", + "pr_number": 128124, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "128139": { + "commit": "0a62f0fd7bd29e54e634d5cc112c2b469a53de8a", + "text": "Feature `AllowServiceLBStatusOnNonLB` remains deprecated and is now locked to false to ensure compatibility with previous versions.", + "markdown": "Feature `AllowServiceLBStatusOnNonLB` remains deprecated and is now locked to false to support compatibility versions. ([#128139](https://github.com/kubernetes/kubernetes/pull/128139), [@Jefftree](https://github.com/Jefftree))", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128139", + "pr_number": 128139, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "128149": { + "commit": "9568a2ac145cf9be930e3da835f86c1e61f7f7c1", + "text": "Vendor: updated system-validators to v1.9.0.", + "markdown": "Vendor: updated system-validators to v1.9.0. ([#128149](https://github.com/kubernetes/kubernetes/pull/128149), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128149", + "pr_number": 128149, + "areas": [ + "dependency" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cluster-lifecycle", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128168": { + "commit": "d7bd7284035e7debd5406d375cd366b164cf358f", + "text": "kube-apiserver: Promoted the `AuthorizeWithSelectors` feature to beta, which includes field and label selector information from requests in webhook authorization calls. Promoted the `AuthorizeNodeWithSelectors` feature to beta, which changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer.", + "markdown": "kube-apiserver: Promoted the `AuthorizeWithSelectors` feature to beta, which includes field and label selector information from requests in webhook authorization calls. Promoted the `AuthorizeNodeWithSelectors` feature to beta, which changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer. ([#128168](https://github.com/kubernetes/kubernetes/pull/128168), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4601", + "type": "KEP" + } + ], + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128168", + "pr_number": 128168, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128169": { + "commit": "7adcad3138f11c90922aecc8a8a0c92739bd6475", + "text": "Promoted the `ServiceAccountTokenJTI` feature to GA, which adds a `jti` claim to issued service account tokens and embeds the `jti` claim as a `authentication.kubernetes.io/credential-id=[\"JTI=...\"]` value in user extra info. Promoted the `ServiceAccountTokenPodNodeInfo` feature to GA, which adds the node name and uid as claims into service account tokens mounted into running pods, and embeds that information as `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` user extra info when the token is used. Promoted the `ServiceAccountTokenNodeBindingValidation` feature to GA, which validates service account tokens bound directly to nodes.", + "markdown": "Promoted the `ServiceAccountTokenJTI` feature to GA, which adds a `jti` claim to issued service account tokens and embeds the `jti` claim as a `authentication.kubernetes.io/credential-id=[\"JTI=...\"]` value in user extra info. Promoted the `ServiceAccountTokenPodNodeInfo` feature to GA, which adds the node name and uid as claims into service account tokens mounted into running pods, and embeds that information as `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` user extra info when the token is used. Promoted the `ServiceAccountTokenNodeBindingValidation` feature to GA, which validates service account tokens bound directly to nodes. ([#128169](https://github.com/kubernetes/kubernetes/pull/128169), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4193", + "type": "KEP" + } + ], + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128169", + "pr_number": 128169, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128170": { + "commit": "fb033826a8747fd457ffbd1ac1a0fa1cc49723d3", + "text": "Added alpha support for asynchronous Pod preemption.\nWhen the `SchedulerAsyncPreemption` feature gate is enabled, the scheduler now runs API calls to trigger preemptions asynchronously for better performance.", + "markdown": "Added alpha support for asynchronous Pod preemption.\n When the `SchedulerAsyncPreemption` feature gate is enabled, the scheduler now runs API calls to trigger preemptions asynchronously for better performance. ([#128170](https://github.com/kubernetes/kubernetes/pull/128170), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "http://kep.k8s.io/4832", + "type": "external" + } + ], + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128170", + "pr_number": 128170, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "128172": { + "commit": "79cca2786e037d8c8ae7fe856c5ae158b100ce71", + "text": "kube-apiserver: Promoted the `StructuredAuthorizationConfiguration` feature gate to GA. The `--authorization-config` flag now accepts `AuthorizationConfiguration` in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`).", + "markdown": "kube-apiserver: Promoted the `StructuredAuthorizationConfiguration` feature gate to GA. The `--authorization-config` flag now accepts `AuthorizationConfiguration` in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`). ([#128172](https://github.com/kubernetes/kubernetes/pull/128172), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3221-structured-authorization-configuration", + "type": "KEP" + }, + { + "description": "[Other doc]", + "url": "https://kubernetes.io/docs/reference/access-authn-authz/authorization/#authz-config-example", + "type": "official" + } + ], + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128172", + "pr_number": 128172, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128179": { + "commit": "3f27f970466f0f96c1bb532d72a24d8c3c58f85a", + "text": "Fixed a bug in the `k8s.io/cloud-provider/service` controller, which may panic when a service is updated because the event recorder was used before it was initialized. All cloud providers using the `v1.31.0` cloud provider service controller must ensure that the controller is initialized before the informer starts to process events or update it to version 1.32.0.", + "markdown": "Fixed a bug in the `k8s.io/cloud-provider/service` controller, which may panic when a service is updated because the event recorder was used before it was initialized. All cloud providers using the `v1.31.0` cloud provider service controller must ensure that the controller is initialized before the informer starts to process events or update it to version 1.32.0. ([#128179](https://github.com/kubernetes/kubernetes/pull/128179), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider, Network and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128179", + "pr_number": 128179, + "areas": [ + "test", + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "network", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "128182": { + "commit": "442183a9298e37cb655b4a3f48462ee30e475069", + "text": "Fixed a 1.31 regression that can crash kube-controller-manager's service-lb-controller loop.", + "markdown": "Fixed a 1.31 regression that can crash kube-controller-manager's service-lb-controller loop. ([#128182](https://github.com/kubernetes/kubernetes/pull/128182), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Network]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128182", + "pr_number": 128182, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "network" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128186": { + "commit": "46b3d9b320094ed2c0ba452f14b215e60c74d5b6", + "text": "Prepared Pod validation to handle version skew for InPlacePodVerticalScaling's beta graduation.", + "markdown": "Prepared Pod validation to handle version skew for InPlacePodVerticalScaling's beta graduation. ([#128186](https://github.com/kubernetes/kubernetes/pull/128186), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1287", + "type": "KEP" + } + ], + "author": "sreeram-venkitesh", + "author_url": "https://github.com/sreeram-venkitesh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128186", + "pr_number": 128186, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "is_mapped": true + }, + "128189": { + "commit": "8c5472ce66e05bd58da340e310f038ac1080bdbe", + "text": "Fixed the incorrect help message of a metric \"graceful_shutdown_end_time_seconds\".\nFixed incorrect value set for metrics \"graceful_shutdown_start_time_seconds\" and \"graceful_shutdown_end_time_seconds\" in certain cases during graceful node shutdown.", + "markdown": "Fixed the incorrect help message of a metric \"graceful_shutdown_end_time_seconds\".\n Fixed incorrect value set for metrics \"graceful_shutdown_start_time_seconds\" and \"graceful_shutdown_end_time_seconds\" in certain cases during graceful node shutdown. ([#128189](https://github.com/kubernetes/kubernetes/pull/128189), [@zylxjtu](https://github.com/zylxjtu)) [SIG Node]", + "author": "zylxjtu", + "author_url": "https://github.com/zylxjtu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128189", + "pr_number": 128189, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "128190": { + "commit": "6cc357046615410434b2fa99c5a229e5db2eb6d9", + "text": "Added support to the kube-apiserver for an alpha feature enabling external signing of service account tokens and fetching of public verifying keys, by enabling the Alpha `ExternalServiceAccountTokenSigner` feature gate and specifying `--service-account-signing-endpoint`. The flag value can either be the location of a Unix domain socket on a filesystem, or be prefixed with an @ symbol and name a Unix domain socket in the abstract socket namespace.", + "markdown": "Added support to the kube-apiserver for an alpha feature enabling external signing of service account tokens and fetching of public verifying keys, by enabling the Alpha `ExternalServiceAccountTokenSigner` feature gate and specifying `--service-account-signing-endpoint`. The flag value can either be the location of a Unix domain socket on a filesystem, or be prefixed with an @ symbol and name a Unix domain socket in the abstract socket namespace. ([#128190](https://github.com/kubernetes/kubernetes/pull/128190), [@HarshalNeelkamal](https://github.com/HarshalNeelkamal)) [SIG API Machinery, Apps, Auth, Etcd, Instrumentation, Node, Release and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/740-service-account-external-signing", + "type": "KEP" + }, + { + "description": "[Issue]", + "url": "https://github.com/kubernetes/enhancements/issues/740", + "type": "KEP" + }, + { + "description": "[Discussion]", + "url": "https://docs.google.com/document/d/1QVtBX8J2Tk70toefDegXMXigMFzrdQfezjlhBrKR29Y/edit?tab=t.0", + "type": "external" + }, + { + "description": "[Publish request]", + "url": "https://github.com/kubernetes/org/issues/5224", + "type": "external" + } + ], + "author": "HarshalNeelkamal", + "author_url": "https://github.com/HarshalNeelkamal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128190", + "pr_number": 128190, + "areas": [ + "test", + "apiserver", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "etcd", + "instrumentation", + "node", + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128197": { + "commit": "1af81c223d20f1897548525e828e552a448c1c01", + "text": "Removed legacy cloud provider integration code and the \"service-lb-controller\", \"cloud-node-lifecycle-controller\" and the \"node-route-controller\" from kube-controller-manager. You can now either set the `--cloud-provider` command line argument to \"external\", or to the empty string. All other values are invalid.", + "markdown": "Removed legacy cloud provider integration code and the \"service-lb-controller\", \"cloud-node-lifecycle-controller\" and the \"node-route-controller\" from kube-controller-manager. You can now either set the `--cloud-provider` command line argument to \"external\", or to the empty string. All other values are invalid. ([#128197](https://github.com/kubernetes/kubernetes/pull/128197), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps and Cloud Provider]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cloud-provider/2395-removing-in-tree-cloud-providers/", + "type": "KEP" + } + ], + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128197", + "pr_number": 128197, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "128219": { + "commit": "f8e64e1d6e44035b5fc0f1e3002e6fade0e6857c", + "text": "kubelet: Fix - the volume manager didn't check the device mount state in the actual state of the world before marking the volume as detached. It may cause a pod to be stuck in the Terminating state due to the above issue when it was deleted.", + "markdown": "kubelet: Fix - the volume manager didn't check the device mount state in the actual state of the world before marking the volume as detached. It may cause a pod to be stuck in the Terminating state due to the above issue when it was deleted. ([#128219](https://github.com/kubernetes/kubernetes/pull/128219), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128219", + "pr_number": 128219, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "128240": { + "commit": "4cf2818f964d8862db4399cb548060f72bea4ded", + "text": "Added driver-owned fields in `ResourceClaim.Status` to report device status data for each allocated device.", + "markdown": "Added driver-owned fields in `ResourceClaim.Status` to report device status data for each allocated device. ([#128240](https://github.com/kubernetes/kubernetes/pull/128240), [@LionelJouin](https://github.com/LionelJouin)) [SIG API Machinery, Network, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4817", + "type": "KEP" + } + ], + "author": "LionelJouin", + "author_url": "https://github.com/LionelJouin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128240", + "pr_number": 128240, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "network", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128244": { + "commit": "71093a09c1d6d717b6927d1dfb7dca3753dc0bae", + "text": "Apply fsGroup policy for ReadWriteOncePod volumes.", + "markdown": "Apply fsGroup policy for ReadWriteOncePod volumes. ([#128244](https://github.com/kubernetes/kubernetes/pull/128244), [@gnufied](https://github.com/gnufied)) [SIG Storage and Testing]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128244", + "pr_number": 128244, + "areas": [ + "test" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "128247": { + "commit": "3300aa1783b6663f8b2dcd8e8a8af3728b825731", + "text": "Promoted feature gate `StatefulSetAutoDeletePVC` from beta to stable.", + "markdown": "Promoted feature gate `StatefulSetAutoDeletePVC` from beta to stable. ([#128247](https://github.com/kubernetes/kubernetes/pull/128247), [@mattcary](https://github.com/mattcary)) [SIG API Machinery, Apps, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]: KEP", + "url": "https://github.com/kubernetes/enhancements/issues/1847", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention", + "type": "official" + } + ], + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128247", + "pr_number": 128247, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "128259": { + "commit": "d9b95ea94f41b942440adbdfdbe35fb78a2ed6f7", + "text": "The `build-tag` flag is reintroduced to conversion-gen and defaulter-gen which allows users to inject custom build tags during the code generation process.", + "markdown": "The `build-tag` flag is reintroduced to conversion-gen and defaulter-gen which allows users to inject custom build tags during the code generation process. ([#128259](https://github.com/kubernetes/kubernetes/pull/128259), [@dinhxuanvu](https://github.com/dinhxuanvu))", + "author": "dinhxuanvu", + "author_url": "https://github.com/dinhxuanvu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128259", + "pr_number": 128259, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "128266": { + "commit": "648717cc740cafbce778e983f195dc6879bf22e3", + "text": "A new /resize subresource was added to request pod resource resizing. Update your k8s client code to utilize the /resize subresource for Pod resizing operations.", + "markdown": "A new /resize subresource was added to request pod resource resizing. Update your k8s client code to utilize the /resize subresource for Pod resizing operations. ([#128266](https://github.com/kubernetes/kubernetes/pull/128266), [@AnishShah](https://github.com/AnishShah)) [SIG API Machinery, Apps, Node and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "AnishShah", + "author_url": "https://github.com/AnishShah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128266", + "pr_number": 128266, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "128287": { + "commit": "81dc4538db3ff69592ae98cc791230957577c6ec", + "text": "Ensured resizing for Guaranteed pods with integer CPU requests on nodes with static CPU \u0026 Memory policy configured is not allowed for the beta release of in-place resize. The feature gate `InPlacePodVerticalScalingExclusiveCPUs` defaults to `false`, but can be enabled to unblock development on ([#127262](https://github.com/kubernetes/kubernetes/issues/127262), [@tallclair](https://github.com/tallclair)) [SIG Node].", + "markdown": "Ensured resizing for Guaranteed pods with integer CPU requests on nodes with static CPU \u0026 Memory policy configured is not allowed for the beta release of in-place resize. The feature gate `InPlacePodVerticalScalingExclusiveCPUs` defaults to `false`, but can be enabled to unblock development on ([#127262](https://github.com/kubernetes/kubernetes/issues/127262), [@tallclair](https://github.com/tallclair)) [SIG Node]. ([#128287](https://github.com/kubernetes/kubernetes/pull/128287), [@esotsal](https://github.com/esotsal)) [SIG Node, Release and Testing]", + "author": "esotsal", + "author_url": "https://github.com/esotsal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128287", + "pr_number": 128287, + "areas": [ + "test", + "kubelet", + "release-eng", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128296": { + "commit": "f451aec23787c2b48489eea2377cd13dfa15bded", + "text": "Removed restrictions on subresource flag in kubectl commands", + "markdown": "Removed restrictions on subresource flag in kubectl commands ([#128296](https://github.com/kubernetes/kubernetes/pull/128296), [@AnishShah](https://github.com/AnishShah)) [SIG CLI]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "AnishShah", + "author_url": "https://github.com/AnishShah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128296", + "pr_number": 128296, + "areas": [ + "kubectl" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "duplicate_kind": true + }, + "128305": { + "commit": "721d66780b1797b49c3d6119a92533b6ff58eec2", + "text": "Fixed a bug where `podCIDR` was released before the node was deleted.", + "markdown": "Fixed a bug where `podCIDR` was released before the node was deleted. ([#128305](https://github.com/kubernetes/kubernetes/pull/128305), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network]", + "author": "adrianmoisey", + "author_url": "https://github.com/adrianmoisey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128305", + "pr_number": 128305, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128307": { + "commit": "988769933ee7e88d5956c703921312d997cd1bd6", + "text": "Fixed a suboptimal scheduler preemption behavior where potential preemption victims were violating Pod Disruption Budgets.", + "markdown": "Fixed a suboptimal scheduler preemption behavior where potential preemption victims were violating Pod Disruption Budgets. ([#128307](https://github.com/kubernetes/kubernetes/pull/128307), [@NoicFank](https://github.com/NoicFank)) [SIG Scheduling]", + "author": "NoicFank", + "author_url": "https://github.com/NoicFank", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128307", + "pr_number": 128307, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "128317": { + "commit": "66da447e14e5604158436b36063e54104466cb41", + "text": "`ComponentSLIs` feature is marked as GA and locked.", + "markdown": "`ComponentSLIs` feature is marked as GA and locked. ([#128317](https://github.com/kubernetes/kubernetes/pull/128317), [@Jefftree](https://github.com/Jefftree)) [SIG Architecture and Instrumentation]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128317", + "pr_number": 128317, + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "128318": { + "commit": "e79722d98a4f0aa2dc103aa8d4390d4c4e73e939", + "text": "Reset streams when an error happens during port-forward allowing kubectl to maintain port-forward connection open.", + "markdown": "Reset streams when an error happens during port-forward allowing kubectl to maintain port-forward connection open. ([#128318](https://github.com/kubernetes/kubernetes/pull/128318), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI and Node]", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128318", + "pr_number": 128318, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cli", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "128336": { + "commit": "ed67bd77a82b249e0e4693889affec2d0eb22832", + "text": "Annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` added to Job objects scheduled from CronJobs is promoted to stable.", + "markdown": "Annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` added to Job objects scheduled from CronJobs is promoted to stable. ([#128336](https://github.com/kubernetes/kubernetes/pull/128336), [@soltysh](https://github.com/soltysh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4026", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128336", + "pr_number": 128336, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128342": { + "commit": "5572688cef138edac0e44934a5cf1cf9e47e59a7", + "text": "Promoted `RecoverVolumeExpansionFailure` feature gate to beta.", + "markdown": "Promoted `RecoverVolumeExpansionFailure` feature gate to beta. ([#128342](https://github.com/kubernetes/kubernetes/pull/128342), [@gnufied](https://github.com/gnufied)) [SIG Apps and Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128342", + "pr_number": 128342, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "storage" + ], + "feature": true, + "duplicate": true + }, + "128344": { + "commit": "b84596842194157aee5ce1fc81197d3c8deda2fb", + "text": "Fixed an issue in the kubelet that showed when writable layers and read-only layers were at different paths within the same mount.\nKubernetes was previously detecting that the image filesystem was split, even when that was not really the case", + "markdown": "Fixed an issue in the kubelet that showed when writable layers and read-only layers were at different paths within the same mount.\n Kubernetes was previously detecting that the image filesystem was split, even when that was not really the case ([#128344](https://github.com/kubernetes/kubernetes/pull/128344), [@kannon92](https://github.com/kannon92)) [SIG Node]", + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128344", + "pr_number": 128344, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "128359": { + "commit": "db66e397d97410cf74b45d74d299b36ae704f4b8", + "text": "kubeadm: added \"disable success\" and \"disable denial\" as parameters of the \"cache\" plugin in the Corefile managed by kubeadm. This is to prevent conflicting responses during CoreDNS cache updates.", + "markdown": "kubeadm: added \"disable success\" and \"disable denial\" as parameters of the \"cache\" plugin in the Corefile managed by kubeadm. This is to prevent conflicting responses during CoreDNS cache updates. ([#128359](https://github.com/kubernetes/kubernetes/pull/128359), [@matteriben](https://github.com/matteriben)) [SIG Cluster Lifecycle]", + "author": "matteriben", + "author_url": "https://github.com/matteriben", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128359", + "pr_number": 128359, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "128374": { + "commit": "7fe41da5221b215d097e930c6b7aa52e88324f66", + "text": "Added the ability to change the maximum backoff delay accrued between container restarts for a node for containers in `CrashLoopBackOff`. To set this for a node, turn on the feature gate `KubeletCrashLoopBackoffMax` and set the `CrashLoopBackOff.MaxContainerRestartPeriod ` field between `\"1s\"` and `\"300s\"` in your [kubelet config file](https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/).", + "markdown": "Added the ability to change the maximum backoff delay accrued between container restarts for a node for containers in `CrashLoopBackOff`. To set this for a node, turn on the feature gate `KubeletCrashLoopBackoffMax` and set the `CrashLoopBackOff.MaxContainerRestartPeriod ` field between `\"1s\"` and `\"300s\"` in your [kubelet config file](https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/). ([#128374](https://github.com/kubernetes/kubernetes/pull/128374), [@lauralorenz](https://github.com/lauralorenz)) [SIG API Machinery and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/d367cd52eb4de2fe58c6e11a5d103d942ad60efb/keps/sig-node/4603-tune-crashloopbackoff/README.md", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://github.com/kubernetes/website/pull/48499", + "type": "external" + } + ], + "author": "lauralorenz", + "author_url": "https://github.com/lauralorenz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128374", + "pr_number": 128374, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "128377": { + "commit": "f81a68f4888c9da87f856d17516fb810518a67c0", + "text": "ContainerStatus.AllocatedResources is now guarded by a separate feature gate, InPlacePodVerticalSaclingAllocatedStatus", + "markdown": "ContainerStatus.AllocatedResources is now guarded by a separate feature gate, InPlacePodVerticalSaclingAllocatedStatus ([#128377](https://github.com/kubernetes/kubernetes/pull/128377), [@tallclair](https://github.com/tallclair)) [SIG API Machinery, CLI, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128377", + "pr_number": 128377, + "areas": [ + "test", + "kubelet", + "kubectl", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "cli", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "128387": { + "commit": "3e3276e9fe14bb35262031d5b03f3456a473a22d", + "text": "Label `apps.kubernetes.io/pod-index` added to Pods from StatefulSets is promoted to stable. Label `batch.kubernetes.io/job-completion-index` added to Pods from Indexed Jobs is promoted to stable.", + "markdown": "Label `apps.kubernetes.io/pod-index` added to Pods from StatefulSets is promoted to stable. Label `batch.kubernetes.io/job-completion-index` added to Pods from Indexed Jobs is promoted to stable. ([#128387](https://github.com/kubernetes/kubernetes/pull/128387), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4017", + "type": "KEP" + } + ], + "author": "alaypatel07", + "author_url": "https://github.com/alaypatel07", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128387", + "pr_number": 128387, + "kinds": [ + "feature" + ], + "sigs": [ + "apps" + ], + "feature": true + }, + "128396": { + "commit": "bc79d3ba87b8b3c4b7c68f26cdfcaa35654d96ac", + "text": "ServiceAccount metadata.annotations[kubernetes.io/enforce-mountable-secrets]: deprecated since v1.32; no removal deadline. Prefer separate namespaces to isolate access to mounted secrets.", + "markdown": "ServiceAccount metadata.annotations[kubernetes.io/enforce-mountable-secrets]: deprecated since v1.32; no removal deadline. Prefer separate namespaces to isolate access to mounted secrets. ([#128396](https://github.com/kubernetes/kubernetes/pull/128396), [@ritazh](https://github.com/ritazh)) [SIG API Machinery, Apps, Auth, CLI and Testing]", + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128396", + "pr_number": 128396, + "areas": [ + "test", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "deprecation" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cli", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "128399": { + "commit": "223ac36b5028ff5ec1561c64d426c48df9b12e21", + "text": "The `dynamicResources` has been refactored to `DynamicResources`, now users can introduce the `DynamicResources` struct outside the `dynamicresources` package.", + "markdown": "The `dynamicResources` has been refactored to `DynamicResources`, now users can introduce the `DynamicResources` struct outside the `dynamicresources` package. ([#128399](https://github.com/kubernetes/kubernetes/pull/128399), [@JesseStutler](https://github.com/JesseStutler)) [SIG Node and Scheduling]", + "author": "JesseStutler", + "author_url": "https://github.com/JesseStutler", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128399", + "pr_number": 128399, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "scheduling" + ], + "duplicate": true + }, + "128407": { + "commit": "c25f5eefe4efda4c0d9561d06942cd3de3dfe2e4", + "text": "Changed the Pod API to support `resources` at `spec` level for pod-level resources.", + "markdown": "Changed the Pod API to support `resources` at `spec` level for pod-level resources. ([#128407](https://github.com/kubernetes/kubernetes/pull/128407), [@ndixita](https://github.com/ndixita)) [SIG API Machinery, Apps, CLI, Cluster Lifecycle, Node, Release, Scheduling and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2837-pod-level-resource-spec/README.md", + "type": "KEP" + } + ], + "author": "ndixita", + "author_url": "https://github.com/ndixita", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128407", + "pr_number": 128407, + "areas": [ + "test", + "kubelet", + "kubectl", + "release-eng", + "kubeadm", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "cli", + "cluster-lifecycle", + "node", + "release", + "scheduling", + "testing" + ], + "duplicate": true + }, + "128415": { + "commit": "19d6337d593773397164f25fad0ea5daba05333e", + "text": "Adopted a new implementation of watch caches for **list** verbs, using a btree data structure. The new implementation is active by default; you can opt out by disabling the `BtreeWatchCache` feature gate.", + "markdown": "Adopted a new implementation of watch caches for **list** verbs, using a btree data structure. The new implementation is active by default; you can opt out by disabling the `BtreeWatchCache` feature gate. ([#128415](https://github.com/kubernetes/kubernetes/pull/128415), [@serathius](https://github.com/serathius)) [SIG API Machinery, Auth and Cloud Provider]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128415", + "pr_number": 128415, + "areas": [ + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider" + ], + "feature": true, + "duplicate": true + }, + "128430": { + "commit": "e7bcf571713ce09c268b0e27e27c74eb03ab6314", + "text": "Made kubelet's /metrics/slis endpoint always available.", + "markdown": "Made kubelet's /metrics/slis endpoint always available. ([#128430](https://github.com/kubernetes/kubernetes/pull/128430), [@richabanker](https://github.com/richabanker)) [SIG Architecture, Instrumentation and Node]", + "author": "richabanker", + "author_url": "https://github.com/richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128430", + "pr_number": 128430, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "architecture", + "instrumentation", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "128432": { + "commit": "bf75546494f317120b5f8fa7c2ccdd46a14e1e2c", + "text": "Added a health check for the device plugin gRPC registration server. When the registration server is down, kubelet is marked as unhealthy. If systemd watchdog is configured, this will result in a kubelet restart.", + "markdown": "Added a health check for the device plugin gRPC registration server. When the registration server is down, kubelet is marked as unhealthy. If systemd watchdog is configured, this will result in a kubelet restart. ([#128432](https://github.com/kubernetes/kubernetes/pull/128432), [@zhifei92](https://github.com/zhifei92)) [SIG Node]", + "author": "zhifei92", + "author_url": "https://github.com/zhifei92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128432", + "pr_number": 128432, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true + }, + "128444": { + "commit": "d34c181465caf208a50dd2a76452435a435d86be", + "text": "Added `--concurrent-daemonset-syncs` command line flag to kube-controller-manager. This value sets the number of workers for the daemonset controller.", + "markdown": "Added `--concurrent-daemonset-syncs` command line flag to kube-controller-manager. This value sets the number of workers for the daemonset controller. ([#128444](https://github.com/kubernetes/kubernetes/pull/128444), [@tosi3k](https://github.com/tosi3k))", + "author": "tosi3k", + "author_url": "https://github.com/tosi3k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128444", + "pr_number": 128444, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "128463": { + "commit": "34ce75749e7400b30b0dda6659ad31801d528b2b", + "text": "Fixed the reporting of elapsed times during evaluation of `ValidatingAdmissionPolicy` decisions and annotations. The apiserver_validating_admission_policy_check_duration metrics will now show elapsed times and no longer be zero.", + "markdown": "Fixed the reporting of elapsed times during evaluation of `ValidatingAdmissionPolicy` decisions and annotations. The apiserver_validating_admission_policy_check_duration metrics will now show elapsed times and no longer be zero. ([#128463](https://github.com/kubernetes/kubernetes/pull/128463), [@knrc](https://github.com/knrc))", + "author": "knrc", + "author_url": "https://github.com/knrc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128463", + "pr_number": 128463, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "128472": { + "commit": "e5f5975f968febd529dec6194de3800ee61461a8", + "text": "Graduated `SchedulerQueueingHints` to beta; the feature gate is now enabled by default.", + "markdown": "Graduated `SchedulerQueueingHints` to beta; the feature gate is now enabled by default. ([#128472](https://github.com/kubernetes/kubernetes/pull/128472), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128472", + "pr_number": 128472, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true + }, + "128474": { + "commit": "6fce566781b312bec7b52756d978f0c27ee15ced", + "text": "kubeadm: consider --bind-address or --advertise-address and --secure-port for control plane components when the feature gate WaitForAllControlPlaneComponents is enabled. Use /livez for kube-apiserver and kube-scheduler, but continue using /healthz for kube-controller-manager until it supports /livez.", + "markdown": "kubeadm: consider --bind-address or --advertise-address and --secure-port for control plane components when the feature gate WaitForAllControlPlaneComponents is enabled. Use /livez for kube-apiserver and kube-scheduler, but continue using /healthz for kube-controller-manager until it supports /livez. ([#128474](https://github.com/kubernetes/kubernetes/pull/128474), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128474", + "pr_number": 128474, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true + }, + "128495": { + "commit": "e30492f77aeb0a81f0916c8d7959ec9581e7cb34", + "text": "Fixed a race condition that could result in erroneous volume unmounts for flex volume plugins on kubelet restart.", + "markdown": "Fixed a race condition that could result in erroneous volume unmounts for flex volume plugins on kubelet restart. ([#128495](https://github.com/kubernetes/kubernetes/pull/128495), [@olyazavr](https://github.com/olyazavr))", + "author": "olyazavr", + "author_url": "https://github.com/olyazavr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128495", + "pr_number": 128495, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "128501": { + "commit": "a885e446d6f6f5530da4923a3872eb27ca47bdc0", + "text": "CBOR-encoded watch responses now set the Content-Type header to \"application/cbor-seq\" instead of the nonconformant \"application/cbor\".", + "markdown": "CBOR-encoded watch responses now set the Content-Type header to \"application/cbor-seq\" instead of the nonconformant \"application/cbor\". ([#128501](https://github.com/kubernetes/kubernetes/pull/128501), [@benluddy](https://github.com/benluddy)) [SIG API Machinery, Etcd and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4222", + "type": "external" + } + ], + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128501", + "pr_number": 128501, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "etcd", + "testing" + ], + "duplicate": true + }, + "128503": { + "commit": "6399c32669c62cfbf7c33b14b77d6781ce1cce27", + "text": "Enabled `CBORServingAndStorage` feature gate – built-in APIs can now be served in CBOR format for clients that request it.", + "markdown": "Enabled `CBORServingAndStorage` feature gate – built-in APIs can now be served in CBOR format for clients that request it. ([#128503](https://github.com/kubernetes/kubernetes/pull/128503), [@benluddy](https://github.com/benluddy)) [SIG API Machinery, Etcd and Testing]", + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128503", + "pr_number": 128503, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "etcd", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "128517": { + "commit": "b4d91d1b8ae336ad85b59de0ce15b8b83fa6d710", + "text": "Graduated the kubelet memory manager to generally available (GA).", + "markdown": "Graduated the kubelet memory manager to generally available (GA). ([#128517](https://github.com/kubernetes/kubernetes/pull/128517), [@Tal-or](https://github.com/Tal-or))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1769", + "type": "KEP" + } + ], + "author": "Tal-or", + "author_url": "https://github.com/Tal-or", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128517", + "pr_number": 128517, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "128533": { + "commit": "cb31e42b85d0a1e2be6639ecd4f7b9414887552a", + "text": "Vendor: updated system-validators to v1.9.1.", + "markdown": "Vendor: updated system-validators to v1.9.1. ([#128533](https://github.com/kubernetes/kubernetes/pull/128533), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128533", + "pr_number": 128533, + "areas": [ + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "128539": { + "commit": "a28f14089cfa47ef9c57f9f283e1504a68f616d6", + "text": "Added the feature gate CBORServingAndStorage to allow CBOR as the encoding for API request and response bodies, and as the storage encoding for custom resources. Clients must opt in; programs built with client-go can do this using the client-go feature gates ClientsAllowCBOR and ClientsPreferCBOR.", + "markdown": "Added the feature gate CBORServingAndStorage to allow CBOR as the encoding for API request and response bodies, and as the storage encoding for custom resources. Clients must opt in; programs built with client-go can do this using the client-go feature gates ClientsAllowCBOR and ClientsPreferCBOR. ([#128539](https://github.com/kubernetes/kubernetes/pull/128539), [@benluddy](https://github.com/benluddy)) [SIG API Machinery, Etcd and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4222", + "type": "external" + } + ], + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128539", + "pr_number": 128539, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "etcd", + "testing" + ], + "feature": true, + "duplicate": true + }, + "128556": { + "commit": "099449954ea9629a898f5e8fc1f7aa8ae9d6eae7", + "text": "Introduced a new metric `kubelet_admission_rejections_total` to track the number of pods rejected during admission.", + "markdown": "Introduced a new metric `kubelet_admission_rejections_total` to track the number of pods rejected during admission. ([#128556](https://github.com/kubernetes/kubernetes/pull/128556), [@AnishShah](https://github.com/AnishShah))", + "author": "AnishShah", + "author_url": "https://github.com/AnishShah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128556", + "pr_number": 128556, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "128560": { + "commit": "3c9380c44917b45670a4796c189a887ea5ccaf59", + "text": "Added Windows support for the node memory manager.", + "markdown": "Added Windows support for the node memory manager. ([#128560](https://github.com/kubernetes/kubernetes/pull/128560), [@marosset](https://github.com/marosset)) [SIG Node and Windows]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/4885-windows-cpu-and-memory-affinity", + "type": "KEP" + } + ], + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128560", + "pr_number": 128560, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "windows" + ], + "feature": true, + "duplicate": true + }, + "128601": { + "commit": "afc204104c0e8b3db4d5ce4f2fac80a1aa3fe63e", + "text": "DRA: Restricted the length of opaque device configuration parameters. At admission time, Kubernetes enforces a 10KiB size limit.", + "markdown": "DRA: Restricted the length of opaque device configuration parameters. At admission time, Kubernetes enforces a 10KiB size limit. ([#128601](https://github.com/kubernetes/kubernetes/pull/128601), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128601", + "pr_number": 128601, + "areas": [ + "test", + "kubelet", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "etcd", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "128623": { + "commit": "dff657a07c5795081821c53469ce5f18f6fc60f7", + "text": "Dropped support for `InPlacePodVerticalScaling` feature in Windows.", + "markdown": "Dropped support for `InPlacePodVerticalScaling` feature in Windows. ([#128623](https://github.com/kubernetes/kubernetes/pull/128623), [@AnishShah](https://github.com/AnishShah)) [SIG Apps and Node]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "AnishShah", + "author_url": "https://github.com/AnishShah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128623", + "pr_number": 128623, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "128634": { + "commit": "ef37cb503b1a24fd9ba8979844f26b33a4efb089", + "text": "The feature-gate \"PodHostIPs\" has been removed. It is GA and its value has been locked since Kubernetes v1.30.", + "markdown": "The feature-gate \"PodHostIPs\" has been removed. It is GA and its value has been locked since Kubernetes v1.30. ([#128634](https://github.com/kubernetes/kubernetes/pull/128634), [@thockin](https://github.com/thockin)) [SIG Apps, Architecture, Node and Testing]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128634", + "pr_number": 128634, + "areas": [ + "test", + "kubelet", + "conformance" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "architecture", + "node", + "testing" + ], + "duplicate": true + }, + "128640": { + "commit": "c9024e7ae628f1473a6cac28e7bd6cd8e64f872f", + "text": "Added a one-time random duration of up to 50% of kubelet's `nodeStatusReportFrequency` to help spread the node status update load evenly over time.", + "markdown": "Added a one-time random duration of up to 50% of kubelet's `nodeStatusReportFrequency` to help spread the node status update load evenly over time. ([#128640](https://github.com/kubernetes/kubernetes/pull/128640), [@mengqiy](https://github.com/mengqiy))", + "author": "mengqiy", + "author_url": "https://github.com/mengqiy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128640", + "pr_number": 128640, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "128646": { + "commit": "33c64b380a11ba5a4d18a55b73d5f0a3ce89dc85", + "text": "The alpha Dynamic Resource Allocation gRPC API is still available, but might be removed in future releases. Driver authors should update their DRA drivers to use the v1beta1 gRPC API.", + "markdown": "The alpha Dynamic Resource Allocation gRPC API is still available, but might be removed in future releases. Driver authors should update their DRA drivers to use the v1beta1 gRPC API. ([#128646](https://github.com/kubernetes/kubernetes/pull/128646), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128646", + "pr_number": 128646, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "128676": { + "commit": "210f129bb06f9bed1d0b3c6c7650278bc6246b46", + "text": "NONE", + "markdown": "NONE ([#128676](https://github.com/kubernetes/kubernetes/pull/128676), [@vivzbansal](https://github.com/vivzbansal)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "vivzbansal", + "author_url": "https://github.com/vivzbansal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128676", + "pr_number": 128676, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true, + "do_not_publish": true + }, + "128681": { + "commit": "210deea063a5a778e8c3a8e32b8bc4c808b87835", + "text": "Revised error handling for port forwards to Pods. Added stream resets preventing port-forward from blockage.", + "markdown": "Revised error handling for port forwards to Pods. Added stream resets preventing port-forward from blockage. ([#128681](https://github.com/kubernetes/kubernetes/pull/128681), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI and Testing]", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128681", + "pr_number": 128681, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cli", + "testing" + ], + "duplicate": true + }, + "128683": { + "commit": "2691a29eacb6cc0d115eb773fb86825b9929f63d", + "text": "Removed support for removing requests and limits during a pod resize.", + "markdown": "Removed support for removing requests and limits during a pod resize. ([#128683](https://github.com/kubernetes/kubernetes/pull/128683), [@AnishShah](https://github.com/AnishShah)) [SIG Apps, Node and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "AnishShah", + "author_url": "https://github.com/AnishShah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128683", + "pr_number": 128683, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "duplicate": true + }, + "128764": { + "commit": "420c6982ef2ff7c7adce40fdb629ce03cdaba6e4", + "text": "For Dynamic Resource Allocation, the new \"v1beta1\" kubelet gPRC was renamed so that the protobuf package name is unique.", + "markdown": "For Dynamic Resource Allocation, the new \"v1beta1\" kubelet gPRC was renamed so that the protobuf package name is unique. ([#128764](https://github.com/kubernetes/kubernetes/pull/128764), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128764", + "pr_number": 128764, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "128852": { + "commit": "35d098aaa0a912171c46345e2c0a7b54d6046ef4", + "text": "Kubernetes is now built with Go 1.23.3.", + "markdown": "Kubernetes is now built with Go 1.23.3. ([#128852](https://github.com/kubernetes/kubernetes/pull/128852), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128852", + "pr_number": 128852, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128932": { + "commit": "e4c1f980b76fecece30c2f77885a7117192170a6", + "text": "For Dynamic Resource Allocation, labels in node selectors now are validated. Invalid labels already caused runtime errors before and are unlikely to occur in practice.", + "markdown": "For Dynamic Resource Allocation, labels in node selectors now are validated. Invalid labels already caused runtime errors before and are unlikely to occur in practice. ([#128932](https://github.com/kubernetes/kubernetes/pull/128932), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128932", + "pr_number": 128932, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "129081": { + "commit": "779d76176afe96f7a8b83c14cb6370650c9464a4", + "text": "Added request header UID propagation, behind an alpha `RemoteRequestHeaderUID` feature gate.", + "markdown": "Added request header UID propagation, behind an alpha `RemoteRequestHeaderUID` feature gate.", + "author":"stlaz", + "author_url":"https://github.com/stlaz", + "pr_url":"https://github.com/kubernetes/kubernetes/pull/129081", + "pr_number":129081, + "areas": [ + "apiserver", + "test" + ], + "kinds": [ + "feature" + ], + "sigs":[ + "api-machinery", + "cluster-lifecycle", + "testing" + ], + "feature": true, + "is_mapped":false + + }, + "12908": { + "commit": "3878a3a6de64660e356a35f70471c27a09698090", + "text": "kubelet: fixed an issue mounting CSI volumes on Windows nodes in 1.32.0 release candidates", + "markdown": "kubelet: fixed an issue mounting CSI volumes on Windows nodes in 1.32.0 release candidates", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129083", + "pr_number":129083, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kube-proxy", + "kubectl", + "kubelet" + ], + "kinds": [ + "bug" + + ], + "sigs":[ + + "api-machinery", + "apps", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "windows", + "storage", + "testing" + ], + "feature": false, + "is_mapped":false + }, + "129103": { + "commit": "3046fe23d4fe4ba86713ffd61bf0e07156b2b7c3", + "text": "kubelet: on Windows, consistently resolve filesystem links to volume identifiers instead of inconsistently normalizing to drive letters.", + "markdown": "kubelet: on Windows, consistently resolve filesystem links to volume identifiers instead of inconsistently normalizing to drive letters. ([#129103](https://github.com/kubernetes/kubernetes/pull/129103), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Storage and Windows]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129103", + "pr_number": 129103, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency", + "kube-proxy", + "kubectl", + "kubelet" + ], + "kinds": [ + "cleanup", + "bug" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "release", + "storage", + "windows" + ], + "feature": false, + "is_mapped":false, + "duplicate": false, + "duplicate_kind": false + } + +} diff --git a/releases/release-1.32/release-notes/release-notes-draft.md b/releases/release-1.32/release-notes/release-notes-draft.md index d89ec2173c8..526b1f5d86c 100644 --- a/releases/release-1.32/release-notes/release-notes-draft.md +++ b/releases/release-1.32/release-notes/release-notes-draft.md @@ -1,389 +1,389 @@ -## Urgent Upgrade Notes - -There are no urgent upgrade notes for the v1.32 release. - -## Known Issues - -- golang 1.23 has made many changes to filesystem and mount handling on Windows. The k8s.io/mount-utils package in 1.32 has not been validated with these changes. CSI driver developers and csi-proxy maintainers should set "godebug winsymlink=0" in their go.mod files to disable these changes until a version is released that resolves ([#129084](https://github.com/kubernetes/kubernetes/issues/129084)). - -## Changes by Kind - -### Deprecation - -- Reverted the `DisableNodeKubeProxyVersion` feature gate to default-off to give a full year from deprecation announcement in 1.29 to clearing the field by default, per the [Kubernetes deprecation policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/). ([#126720](https://github.com/kubernetes/kubernetes/pull/126720), [@liggitt](https://github.com/liggitt)) [SIG Architecture and Node] -- ServiceAccount metadata.annotations[kubernetes.io/enforce-mountable-secrets]: deprecated since v1.32; no removal deadline. Prefer separate namespaces to isolate access to mounted secrets. ([#128396](https://github.com/kubernetes/kubernetes/pull/128396), [@ritazh](https://github.com/ritazh)) [SIG API Machinery, Apps, Auth, CLI and Testing] - -### API Change - -- **ACTION REQUIRED** for custom scheduler plugin developers: - `PodEligibleToPreemptOthers` in the `preemption` interface now includes `ctx` in the parameters. - Please update your plugins' implementation accordingly. ([#126465](https://github.com/kubernetes/kubernetes/pull/126465), [@googs1025](https://github.com/googs1025)) [SIG Scheduling] -- Changed NodeToStatusMap from a map to a struct and exposed methods to access the entries. Added absentNodesStatus, which informs the status of nodes that are absent in the map. For developers of out-of-tree PostFilter plugins, ensure to update the usage of NodeToStatusMap. Additionally, NodeToStatusMap should eventually be renamed to NodeToStatusReader. ([#126022](https://github.com/kubernetes/kubernetes/pull/126022), [@macsko](https://github.com/macsko)) [SIG Node, Scheduling, and Testing] - -- A new /resize subresource was added to request pod resource resizing. Update your k8s client code to utilize the /resize subresource for Pod resizing operations. ([#128266](https://github.com/kubernetes/kubernetes/pull/128266), [@AnishShah](https://github.com/AnishShah)) [SIG API Machinery, Apps, Node and Testing] -- A new feature that allows unsafe deletion of corrupt resources has been added, it is disabled by default, - and it can be enabled by setting the option `--feature-gates=AllowUnsafeMalformedObjectDeletion=true`. - It comes with an API change, a new delete option `ignoreStoreReadErrorWithClusterBreakingPotential` has - been introduced, it is not set by default, this maintains backward compatibility. - In order to perform an unsafe deletion of a corrupt resource, the user must enable the option for the delete - request. A resource is considered corrupt if it can not be successfully retrieved from the storage due to - a) transformation error e.g. decryption failure, or b) the object failed to decode. Normal deletion flow is - attempted first, and if it fails with a corrupt resource error then it triggers unsafe delete. - In addition, when this feature is enabled, the 'details' field of 'Status' from the LIST response - includes information that identifies the corrupt object(s). - NOTE: unsafe deletion ignores finalizer constraints, and skips precondition checks. - WARNING: this may break the workload associated with the resource being unsafe-deleted, if it relies on - the normal deletion flow, so cluster breaking consequences apply. ([#127513](https://github.com/kubernetes/kubernetes/pull/127513), [@tkashem](https://github.com/tkashem)) [SIG API Machinery, Etcd, Node and Testing] -- Added `singleProcessOOMKill` flag to the kubelet configuration. Setting that to true enable single process OOM killing in cgroups v2. In this mode, if a single process is OOM killed within a container, the remaining processes will not be OOM killed. ([#126096](https://github.com/kubernetes/kubernetes/pull/126096), [@utam0k](https://github.com/utam0k)) [SIG API Machinery, Node, Testing and Windows] -- Added a `/flagz` endpoint for kube-apiserver endpoint. ([#127581](https://github.com/kubernetes/kubernetes/pull/127581), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Architecture, Auth and Instrumentation] -- Added a `Stream` field to `PodLogOptions`, which allows clients to request certain log stream (stdout or stderr) of the container. - Please also note that the combination of a specific `Stream` and `TailLines` is not supported. ([#127360](https://github.com/kubernetes/kubernetes/pull/127360), [@knight42](https://github.com/knight42)) [SIG API Machinery, Apps, Architecture, Node, Release and Testing] -- Added alpha support for asynchronous Pod preemption. - When the `SchedulerAsyncPreemption` feature gate is enabled, the scheduler now runs API calls to trigger preemptions asynchronously for better performance. ([#128170](https://github.com/kubernetes/kubernetes/pull/128170), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] -- Added driver-owned fields in `ResourceClaim.Status` to report device status data for each allocated device. ([#128240](https://github.com/kubernetes/kubernetes/pull/128240), [@LionelJouin](https://github.com/LionelJouin)) [SIG API Machinery, Network, Node and Testing] -- Added enforcement of an upper cost bound for DRA evaluations of CEL. The API server and scheduler now enforce an upper bound on the cost and runtime steps required for evaluating a CEL expression. ([#128101](https://github.com/kubernetes/kubernetes/pull/128101), [@pohly](https://github.com/pohly)) [SIG API Machinery and Node] -- Added the ability to change the maximum backoff delay accrued between container restarts for a node for containers in `CrashLoopBackOff`. To set this for a node, turn on the feature gate `KubeletCrashLoopBackoffMax` and set the `CrashLoopBackOff.MaxContainerRestartPeriod ` field between `"1s"` and `"300s"` in your [kubelet config file](https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/). ([#128374](https://github.com/kubernetes/kubernetes/pull/128374), [@lauralorenz](https://github.com/lauralorenz)) [SIG API Machinery and Node] -- Allow for Pod search domains to be a single dot `.` or contain an underscore `_` ([#127167](https://github.com/kubernetes/kubernetes/pull/127167), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps, Network and Testing] -- Annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` added to Job objects scheduled from CronJobs is promoted to stable. ([#128336](https://github.com/kubernetes/kubernetes/pull/128336), [@soltysh](https://github.com/soltysh)) -- Apply fsGroup policy for ReadWriteOncePod volumes. ([#128244](https://github.com/kubernetes/kubernetes/pull/128244), [@gnufied](https://github.com/gnufied)) [SIG Storage and Testing] -- Changed the Pod API to support `resources` at `spec` level for pod-level resources. ([#128407](https://github.com/kubernetes/kubernetes/pull/128407), [@ndixita](https://github.com/ndixita)) [SIG API Machinery, Apps, CLI, Cluster Lifecycle, Node, Release, Scheduling and Testing] -- ContainerStatus.AllocatedResources is now guarded by a separate feature gate, InPlacePodVerticalSaclingAllocatedStatus ([#128377](https://github.com/kubernetes/kubernetes/pull/128377), [@tallclair](https://github.com/tallclair)) [SIG API Machinery, CLI, Node, Scheduling and Testing] -- Coordination.v1alpha1 API is dropped and replaced with coordination.v1alpha2. Old coordination.v1alpha1 types must be deleted before upgrade ([#127857](https://github.com/kubernetes/kubernetes/pull/127857), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Etcd, Scheduling and Testing] -- DRA: Restricted the length of opaque device configuration parameters. At admission time, Kubernetes enforces a 10KiB size limit. ([#128601](https://github.com/kubernetes/kubernetes/pull/128601), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing] -- DRA: scheduling pods is up to 16x faster, depending on the scenario. Scheduling throughput depends a lot on cluster utilization. It is higher for lightly loaded clusters with free resources and gets lower when the cluster utilization increases. ([#127277](https://github.com/kubernetes/kubernetes/pull/127277), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing] -- DRA: the `DeviceRequestAllocationResult` struct now has an "AdminAccess" field which should be used instead of the corresponding field in the `DeviceRequest` field when dealing with an allocation. If a device is only allocated for admin access, allocating it again for normal usage is now supported, as originally intended. To allow admin access, starting with 1.32 the `DRAAdminAccess` feature gate must be enabled. ([#127266](https://github.com/kubernetes/kubernetes/pull/127266), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Network, Node, Scheduling and Testing] -- Disallow `k8s.io` and `kubernetes.io` namespaced extra key in structured authentication configuration. ([#126553](https://github.com/kubernetes/kubernetes/pull/126553), [@aramase](https://github.com/aramase)) [SIG Auth] -- Fixed a bug in the `NestedNumberAsFloat64` Unstructured field accessor that could have caused it to return rounded float64 values instead of errors when accessing very large int64 values. ([#128099](https://github.com/kubernetes/kubernetes/pull/128099), [@benluddy](https://github.com/benluddy)) -- Fixed the bug where `spec.terminationGracePeriodSeconds` of the pod will always be overwritten by the MaxPodGracePeriodSeconds of the soft eviction, you can enable the `AllowOverwriteTerminationGracePeriodSeconds` feature gate, which will restore the previous behavior. If you do need to set this, please file an issue with the Kubernetes project to help contributors understand why you needed it. ([#122890](https://github.com/kubernetes/kubernetes/pull/122890), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Architecture, Node and Testing] -- Graduated Job's `ManagedBy` field to beta. ([#127402](https://github.com/kubernetes/kubernetes/pull/127402), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps and Testing] -- Implemented a new, alpha `seLinuxChangePolicy` field within a Pod-level `securityContext`, under SELinuxChangePolicy feature gate. This field allows for opting out from mounting Pod volumes with SELinux label when SELinuxMount feature is enabled (it is alpha and disabled by default now). - Please see [the KEP](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling#story-3-cluster-upgrade) how we expect to warn users before any SELinux behavior changes and how they can opt-out before. Note that this field and feature gate is useful only with clusters that run with SELinux enabled. No action is required on clusters without SELinux. ([#127981](https://github.com/kubernetes/kubernetes/pull/127981), [@jsafrane](https://github.com/jsafrane)) [SIG API Machinery, Apps, Architecture, Node, Storage and Testing] -- Introduced `v1alpha1` API for mutating admission policies, enabling extensible # admission control via CEL expressions (KEP 3962: Mutating Admission Policies). # To use, enable the `MutatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` # API via `--runtime-config`. ([#127134](https://github.com/kubernetes/kubernetes/pull/127134), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, Etcd and Testing] -- Introduced compressible resource setting on system reserved and kube reserved slices. ([#125982](https://github.com/kubernetes/kubernetes/pull/125982), [@harche](https://github.com/harche)) -- kube-apiserver: Promoted the `StructuredAuthorizationConfiguration` feature gate to GA. The `--authorization-config` flag now accepts `AuthorizationConfiguration` in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`). ([#128172](https://github.com/kubernetes/kubernetes/pull/128172), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing] -- kube-proxy now reconciles Service/Endpoint changes with conntrack table and cleans up only stale UDP flow entries ([#127318](https://github.com/kubernetes/kubernetes/pull/127318), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows] -- kube-scheduler removed `AzureDiskLimits` ,`CinderLimits` `EBSLimits` and `GCEPDLimits` plugin. Given the corresponding CSI driver reports how many volumes a node can handle in NodeGetInfoResponse, the kubelet stores this limit in CSINode and the scheduler then knows the limit of the driver on the node. Removed plugins AzureDiskLimits, CinderLimits, EBSLimits and GCEPDLimits if you explicitly enabled them in the scheduler config. ([#124003](https://github.com/kubernetes/kubernetes/pull/124003), [@carlory](https://github.com/carlory)) [SIG Scheduling, Storage and Testing] -- kubelet: the `--image-credential-provider-config` file was loaded with strict deserialization, which failed if the config file contained duplicate or unknown fields. This protected against accidentally running with malformed config files, unindented files, or typos in field names, and it prevented unexpected behavior. ([#128062](https://github.com/kubernetes/kubernetes/pull/128062), [@aramase](https://github.com/aramase)) [SIG Auth and Node] -- NodeRestriction admission now validates the audience value that kubelet is requesting a service account token for is part of the pod spec volume. This change is introduced with a new kube-apiserver featuregate `ServiceAccountNodeAudienceRestriction` that's enabled by default. ([#128077](https://github.com/kubernetes/kubernetes/pull/128077), [@aramase](https://github.com/aramase)) [SIG Auth, Storage and Testing] -- Promoted `CustomResourceFieldSelectors` to stable; the feature was enabled by default. The `--feature-gates=CustomResourceFieldSelectors=true` flag was no longer needed on kube-apiserver binaries and would be removed in a future release. ([#127673](https://github.com/kubernetes/kubernetes/pull/127673), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing] -- Promoted feature gate `StatefulSetAutoDeletePVC` from beta to stable. ([#128247](https://github.com/kubernetes/kubernetes/pull/128247), [@mattcary](https://github.com/mattcary)) [SIG API Machinery, Apps, Auth and Testing] -- Removed all support for _classic_ dynamic resource allocation (DRA). The `DRAControlPlaneController` feature gate, formerly alpha, is no longer available. Kubernetes now only uses the _structured parameters_ model (also alpha) for allocating dynamic resources to Pods. - - if and only if classic DRA was enabled in a cluster, remove all workloads (pods, app deployments, etc. ) which depend on classic DRA and make sure that all PodSchedulingContext resources are gone before upgrading. PodSchedulingContext resources cannot be removed through the apiserver after an upgrade and workloads would not work properly. ([#128003](https://github.com/kubernetes/kubernetes/pull/128003), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing] -- Removed generally available feature gate `HPAContainerMetrics` ([#126862](https://github.com/kubernetes/kubernetes/pull/126862), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Autoscaling] -- Removed restrictions on subresource flag in kubectl commands ([#128296](https://github.com/kubernetes/kubernetes/pull/128296), [@AnishShah](https://github.com/AnishShah)) [SIG CLI] -- Revised the kubelet API Authorization with new subresources, that allow finer-grained authorization checks and access control for kubelet endpoints. - Provided you enable the `KubeletFineGrainedAuthz` feature gate, you can access kubelet's `/healthz` endpoint by granting the caller `nodes/helathz` permission in RBAC. - Similarly you can also access kubelet's `/pods` endpoint to fetch a list of Pods bound to that node by granting the caller `nodes/pods` permission in RBAC. - Similarly you can also access kubelet's `/configz` endpoint to fetch kubelet's configuration by granting the caller `nodes/configz` permission in RBAC. - You can still access kubelet's `/healthz`, `/pods` and `/configz` by granting the caller `nodes/proxy` permission in RBAC but that also grants the caller permissions to exec, run and attach to containers on the nodes and doing so does not follow the least privilege principle. Granting callers more permissions than they need can give attackers an opportunity to escalate privileges. ([#126347](https://github.com/kubernetes/kubernetes/pull/126347), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG API Machinery, Auth, Cluster Lifecycle and Node] -- The core functionality of Dynamic Resource Allocation (DRA) got promoted to beta. No action is required when *upgrading*, the previous v1alpha3 API is still supported, so existing deployments and DRA drivers based on v1alpha3 continue to work. *Downgrading* from 1.32 to 1.31 with DRA resources in the cluster (resourceclaims, resourceclaimtemplates, deviceclasses, resourceslices) is *not* supported because the new v1beta1 is used as storage version and not readable by 1.31. ([#127511](https://github.com/kubernetes/kubernetes/pull/127511), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing] -- The default value for node-monitor-grace-period has been increased to 50s (earlier 40s) (Ref - https://github.com/kubernetes/kubernetes/issues/121793) ([#126287](https://github.com/kubernetes/kubernetes/pull/126287), [@devppratik](https://github.com/devppratik)) [SIG API Machinery, Apps and Node] -- The resource/v1alpha3.ResourceSliceList filed which should have been named "metadata" but was instead named "listMeta" is now properly "metadata". ([#126749](https://github.com/kubernetes/kubernetes/pull/126749), [@thockin](https://github.com/thockin)) [SIG API Machinery] -- The synthetic "Bookmark" event for the watch stream requests will now include a new annotation: `kubernetes.io/initial-events-list-blueprint`. THe annotation contains an empty, versioned list that is encoded in the requested format (such as protobuf, JSON, or CBOR), then base64-encoded and stored as a string. ([#127587](https://github.com/kubernetes/kubernetes/pull/127587), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] -- To enhance usability and developer experience, CRD validation rules now support direct use of (CEL) reserved keywords as field names in object validation expressions. - Name format CEL library is supported in new expressions. ([#126977](https://github.com/kubernetes/kubernetes/pull/126977), [@aaron-prindle](https://github.com/aaron-prindle)) [SIG API Machinery, Architecture, Auth, Etcd, Instrumentation, Release, Scheduling and Testing] -- Updated incorrect description of persistentVolumeClaimRetentionPolicy ([#126545](https://github.com/kubernetes/kubernetes/pull/126545), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG API Machinery, Apps and CLI] -- X.509 client certificate authentication to the kube-apiserver now produces credential IDs (derived from the certificate's signature) , for use in audit logging. ([#125634](https://github.com/kubernetes/kubernetes/pull/125634), [@ahmedtd](https://github.com/ahmedtd)) [SIG API Machinery, Auth and Testing] - -### Feature - -- Added Windows support for the node memory manager. ([#128560](https://github.com/kubernetes/kubernetes/pull/128560), [@marosset](https://github.com/marosset)) [SIG Node and Windows] -- Added `--concurrent-daemonset-syncs` command line flag to kube-controller-manager. This value sets the number of workers for the daemonset controller. ([#128444](https://github.com/kubernetes/kubernetes/pull/128444), [@tosi3k](https://github.com/tosi3k)) -- Added a `/statusz` endpoint for the kube-apiserver endpoint. ([#125577](https://github.com/kubernetes/kubernetes/pull/125577), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node and Testing] -- Added a health check for the device plugin gRPC registration server. When the registration server is down, kubelet is marked as unhealthy. If systemd watchdog is configured, this will result in a kubelet restart. ([#128432](https://github.com/kubernetes/kubernetes/pull/128432), [@zhifei92](https://github.com/zhifei92)) [SIG Node] -- Added a kubelet metric `container_aligned_compute_resources_count` to report the count of containers getting aligned compute resources. ([#127155](https://github.com/kubernetes/kubernetes/pull/127155), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] -- Added a kubelet metrics to report informations about the cpu pools managed by cpumanager when the static policy is in use. ([#127506](https://github.com/kubernetes/kubernetes/pull/127506), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] -- Added a new controller, volumeattributesclass-protection-controller, into the kube-controller-manager. - The new controller manages a protective finalizer on VolumeAttributesClass objects. ([#123549](https://github.com/kubernetes/kubernetes/pull/123549), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Auth and Storage] -- Added a new option `strict-cpu-reservation` for CPU Manager static policy. When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly used for system daemons and interrupt processing no longer available for any workload. ([#127483](https://github.com/kubernetes/kubernetes/pull/127483), [@jingczhang](https://github.com/jingczhang)) [SIG Node] -- Added a one-time random duration of up to 50% of kubelet's `nodeStatusReportFrequency` to help spread the node status update load evenly over time. ([#128640](https://github.com/kubernetes/kubernetes/pull/128640), [@mengqiy](https://github.com/mengqiy)) -- Added an option to enable leader election in local-up-cluster.sh via the LEADER_ELECT CLI flag. ([#127786](https://github.com/kubernetes/kubernetes/pull/127786), [@Jefftree](https://github.com/Jefftree)) -- Added kubelet support for systemd watchdog integration. With this enabled, systemd can automatically recover a hung kubelet. ([#127566](https://github.com/kubernetes/kubernetes/pull/127566), [@zhifei92](https://github.com/zhifei92)) [SIG Cloud Provider, Node and Testing] -- Added metrics to measure the latency of DRA Node operations and DRA GRPC calls ([#127146](https://github.com/kubernetes/kubernetes/pull/127146), [@bart0sh](https://github.com/bart0sh)) [SIG Instrumentation, Network, Node, and Testing] -- Added new functionality to the Go client code (`client-go`) library. The `List()` method for the metadata client allows enabling API streaming when fetching collections; this improves performance when listing many objects. - To request this behavior, your client software must enable the `WatchListClient` client-go feature gate. Additionally, streaming is only available if supported by the cluster; the API server that you connect to must also support streaming. - If the API server does not support or allow streaming, then `client-go` falls back to fetching the collection using the **list** API verb. ([#127388](https://github.com/kubernetes/kubernetes/pull/127388), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] -- Added preemptionPolicy field when using `kubectl get PriorityClass -owide` ([#126529](https://github.com/kubernetes/kubernetes/pull/126529), [@googs1025](https://github.com/googs1025)) [SIG CLI] -- Added status for extended Pod resources within the `status.containerStatuses[].resources` field. ([#124227](https://github.com/kubernetes/kubernetes/pull/124227), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing] -- Added support to the kube-apiserver for an alpha feature enabling external signing of service account tokens and fetching of public verifying keys, by enabling the Alpha `ExternalServiceAccountTokenSigner` feature gate and specifying `--service-account-signing-endpoint`. The flag value can either be the location of a Unix domain socket on a filesystem, or be prefixed with an @ symbol and name a Unix domain socket in the abstract socket namespace. ([#128190](https://github.com/kubernetes/kubernetes/pull/128190), [@HarshalNeelkamal](https://github.com/HarshalNeelkamal)) [SIG API Machinery, Apps, Auth, Etcd, Instrumentation, Node, Release and Testing] -- Added the feature gate CBORServingAndStorage to allow CBOR as the encoding for API request and response bodies, and as the storage encoding for custom resources. Clients must opt in; programs built with client-go can do this using the client-go feature gates ClientsAllowCBOR and ClientsPreferCBOR. ([#128539](https://github.com/kubernetes/kubernetes/pull/128539), [@benluddy](https://github.com/benluddy)) [SIG API Machinery, Etcd and Testing] -- Adopted a new implementation of watch caches for **list** verbs, using a btree data structure. The new implementation is active by default; you can opt out by disabling the `BtreeWatchCache` feature gate. ([#128415](https://github.com/kubernetes/kubernetes/pull/128415), [@serathius](https://github.com/serathius)) [SIG API Machinery, Auth and Cloud Provider] -- Allows PreStop lifecycle handler's sleep action to have a zero value ([#127094](https://github.com/kubernetes/kubernetes/pull/127094), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Apps, Node and Testing] -- CRI: Added a field to support CPU affinity on Windows. ([#124285](https://github.com/kubernetes/kubernetes/pull/124285), [@kiashok](https://github.com/kiashok)) [SIG Node and Windows] -- Changed OOM score adjustment calculation for sidecar containers: the OOM adjustment for these containers will match or fall below the OOM score adjustment of regular containers in the Pod. ([#128029](https://github.com/kubernetes/kubernetes/pull/128029), [@bouaouda-achraf](https://github.com/bouaouda-achraf)) -- Client-go/rest: contextual logging of request/response with accurate source code location of the caller ([#126999](https://github.com/kubernetes/kubernetes/pull/126999), [@pohly](https://github.com/pohly)) [SIG API Machinery and Instrumentation] -- DRA: The resource claim controller now maintains metrics about the total number of `ResourceClaims` and the number of allocated `ResourceClaims`. ([#127661](https://github.com/kubernetes/kubernetes/pull/127661), [@pohly](https://github.com/pohly)) [SIG Apps, Instrumentation and Node] -- Enabled graceful shutdown feature for Windows node ([#127404](https://github.com/kubernetes/kubernetes/pull/127404), [@zylxjtu](https://github.com/zylxjtu)) [SIG Node, Testing and Windows] -- Enabled kube-controller-manager '--concurrent-job-syncs' flag works on orphan Pod processors ([#126567](https://github.com/kubernetes/kubernetes/pull/126567), [@fusida](https://github.com/fusida)) [SIG Apps] -- Ensured resizing for Guaranteed pods with integer CPU requests on nodes with static CPU & Memory policy configured is not allowed for the beta release of in-place resize. The feature gate `InPlacePodVerticalScalingExclusiveCPUs` defaults to `false`, but can be enabled to unblock development on ([#127262](https://github.com/kubernetes/kubernetes/issues/127262), [@tallclair](https://github.com/tallclair)) [SIG Node]. ([#128287](https://github.com/kubernetes/kubernetes/pull/128287), [@esotsal](https://github.com/esotsal)) [SIG Node, Release and Testing] -- Extend discovery GroupManager with Group lister interface ([#127524](https://github.com/kubernetes/kubernetes/pull/127524), [@mjudeikis](https://github.com/mjudeikis)) [SIG API Machinery] -- Fixed: Avoid overwriting in-pod vertical scaling updates on systemd daemon reloads when using systemd ([#124216](https://github.com/kubernetes/kubernetes/pull/124216), [@iholder101](https://github.com/iholder101)) [SIG Node] -- Fixed an issue where kubectl doesn't print image volume when kubectl describe a pod with that volume. ([#126706](https://github.com/kubernetes/kubernetes/pull/126706), [@carlory](https://github.com/carlory)) -- Graduated the AnonymousAuthConfigurableEndpoints feature gate to beta and enable by default to allow configurable endpoints for anonymous authentication. ([#127009](https://github.com/kubernetes/kubernetes/pull/127009), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Auth] -- Graduated the kubelet memory manager to generally available (GA). ([#128517](https://github.com/kubernetes/kubernetes/pull/128517), [@Tal-or](https://github.com/Tal-or)) -- Graduated `SchedulerQueueingHints` to beta; the feature gate is now enabled by default. ([#128472](https://github.com/kubernetes/kubernetes/pull/128472), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] -- Graduated the `WatchList` feature gate to Beta for kube-apiserver and enabled `WatchListClient` for KCM. ([#128053](https://github.com/kubernetes/kubernetes/pull/128053), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] -- Implemented a queueing hint for PersistentVolumeClaim/Add event in the `CSILimit` plugin. ([#124703](https://github.com/kubernetes/kubernetes/pull/124703), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Storage] -- Implemented new cluster events `UpdatePodSchedulingGatesEliminated` and `UpdatePodTolerations` for scheduler plugins. ([#127083](https://github.com/kubernetes/kubernetes/pull/127083), [@sanposhiho](https://github.com/sanposhiho)) -- Improved Node's QueueingHint in the `NodeAffinity` plugin by ignoring unrelated changes that keep pods unschedulable. ([#127444](https://github.com/kubernetes/kubernetes/pull/127444), [@dom4ha](https://github.com/dom4ha)) [SIG Scheduling and Testing] -- Improved Node's QueueingHint in the `NodeResourceFit` plugin by ignoring unrelated changes that keep pods unschedulable. ([#127473](https://github.com/kubernetes/kubernetes/pull/127473), [@dom4ha](https://github.com/dom4ha)) [SIG Scheduling and Testing] -- Improved performance of the job controller when handling job delete events. ([#127378](https://github.com/kubernetes/kubernetes/pull/127378), [@hakuna-matatah](https://github.com/hakuna-matatah)) -- Improved performance of the job controller when handling job update events. ([#127228](https://github.com/kubernetes/kubernetes/pull/127228), [@hakuna-matatah](https://github.com/hakuna-matatah)) -- Included an additional resource labeltransformation in on_operations_total metric which could be used for resource specific validations for example handling of encryption config by the apiserver. ([#126512](https://github.com/kubernetes/kubernetes/pull/126512), [@kmala](https://github.com/kmala)) [SIG API Machinery, Auth, Etcd and Testing] -- Introduced a new metric `kubelet_admission_rejections_total` to track the number of pods rejected during admission. ([#128556](https://github.com/kubernetes/kubernetes/pull/128556), [@AnishShah](https://github.com/AnishShah)) -- JWT authenticators now set the `jti` claim (if present and is a string value) as credential id for use by audit logging. ([#127010](https://github.com/kubernetes/kubernetes/pull/127010), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] -- kube-apiserver: Promoted `AuthorizeWithSelectors` feature to beta, which includes field and label selector information from requests in webhook authorization calls. Promoted `AuthorizeNodeWithSelectors` feature to beta, which changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer. ([#128168](https://github.com/kubernetes/kubernetes/pull/128168), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing] -- kube-apiserver: a new `--requestheader-uid-headers` flag allows configuring request header authentication to obtain the authenticating user's UID from the specified headers. The suggested value for the new option is `X-Remote-Uid`. When specified, the `kube-system/extension-apiserver-authentication` configmap will include the value in its `.data[requestheader-uid-headers]` field. ([#115834](https://github.com/kubernetes/kubernetes/pull/115834), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Auth, Cloud Provider and Testing] -- kube-proxy uses field-selector clusterIP!=None on Services to avoid watching for Headless Services, reducing unnecessary network bandwidth ([#126769](https://github.com/kubernetes/kubernetes/pull/126769), [@Sakuralbj](https://github.com/Sakuralbj)) [SIG Network] -- : `kubeadm upgrade apply` now supports phase sub-command, users can use `kubeadm upgrade apply phase <phase-name>` to execute the specified phase, or use `kubeadm upgrade apply --skip-phases <phase-names>` to skip some phases during cluster upgrade. ([#126032](https://github.com/kubernetes/kubernetes/pull/126032), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- kubeadm: `kubeadm upgrade node` now supports `addon` and `post-upgrade` phases. Users can use `kubeadm upgrade node phase addon` to execute the addon upgrade, or use `kubeadm upgrade node --skip-phases addon` to skip the addon upgrade. Currently, the `post-upgrade` phase is no-op, and it is mainly used to handle some release-specific post-upgrade tasks. ([#127242](https://github.com/kubernetes/kubernetes/pull/127242), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- kubeadm: added a validation warning when the certificateValidityPeriod is more than the caCertificateValidityPeriod ([#126538](https://github.com/kubernetes/kubernetes/pull/126538), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- kubeadm: added the feature gate `NodeLocalCRISocket`. When the feature gate is enabled, kubeadm will generate the `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in the kubelet configuration for each node and will not write the same CRI socket on the Node object as an annotation. ([#128031](https://github.com/kubernetes/kubernetes/pull/128031), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle] -- kubeadm: allow mixing the flag --config with the special flag --print-manifest of the subphases of 'kubeadm init phase addon'. ([#126740](https://github.com/kubernetes/kubernetes/pull/126740), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- kubeadm: consider --bind-address or --advertise-address and --secure-port for control plane components when the feature gate WaitForAllControlPlaneComponents is enabled. Use /livez for kube-apiserver and kube-scheduler, but continue using /healthz for kube-controller-manager until it supports /livez. ([#128474](https://github.com/kubernetes/kubernetes/pull/128474), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- kubeadm: if an unknown command name is passed to any parent command such as 'kubeadm init phase' return an error. If 'kubeadm init phase' or another command that has subcommands is called without subcommand name, print the available commands and also return an error. ([#127096](https://github.com/kubernetes/kubernetes/pull/127096), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- kubeadm: promoted feature gate `EtcdLearnerMode` to GA. Learner mode in etcd deployed by kubeadm is now locked to enabled by default. ([#126374](https://github.com/kubernetes/kubernetes/pull/126374), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle] -- kubelet: add log and event for cgroup v2 with kernel older than 5.8. ([#126595](https://github.com/kubernetes/kubernetes/pull/126595), [@pacoxu](https://github.com/pacoxu)) [SIG Node] -- Kubernetes is now built with Go 1.23.3. ([#128852](https://github.com/kubernetes/kubernetes/pull/128852), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- Kubernetes is now built with go 1.23.0 ([#127076](https://github.com/kubernetes/kubernetes/pull/127076), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- Kubernetes was built with Go 1.23.1. ([#127611](https://github.com/kubernetes/kubernetes/pull/127611), [@haitch](https://github.com/haitch)) [SIG Release and Testing] -- Kubernetes was built with Go 1.23.2. ([#128110](https://github.com/kubernetes/kubernetes/pull/128110), [@haitch](https://github.com/haitch)) [SIG Release and Testing] -- Label `apps.kubernetes.io/pod-index` added to Pod from StatefulSets is promoted to stable - Label `batch.kubernetes.io/job-completion-index` added to Pods from Indexed Jobs is promoted to stable ([#128387](https://github.com/kubernetes/kubernetes/pull/128387), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps] -- LoadBalancerIPMode feature was marked as GA. ([#127348](https://github.com/kubernetes/kubernetes/pull/127348), [@RyanAoh](https://github.com/RyanAoh)) [SIG Apps, Network and Testing] -- Locked the custom profiling feature in `kubectl debug` to true. ([#127187](https://github.com/kubernetes/kubernetes/pull/127187), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] -- Output for the `ScalingReplicaSet` event has changed from: - Scaled <up|down> replica set <replica-set-name> to <new-value> from <old-value> - to: - Scaled <up|down> replica set <replica-set-name> from <old-value> to <new-value>. ([#125118](https://github.com/kubernetes/kubernetes/pull/125118), [@jsoref](https://github.com/jsoref)) [SIG Apps and CLI] -- PodLifecycleSleepAction is graduated to GA ([#128046](https://github.com/kubernetes/kubernetes/pull/128046), [@AxeZhan](https://github.com/AxeZhan)) [SIG Architecture, Node and Testing] -- Pods were allowed to use the `net.ipv4.tcp_rmem` and `net.ipv4.tcp_wmem` sysctl by default - when the kernel version was 4.15 or higher. With the kernel 4.15 the sysctl became namespaced. - Pod Security admission allowed these sysctl in v1.32+ versions of the baseline and restricted policies. ([#127489](https://github.com/kubernetes/kubernetes/pull/127489), [@pacoxu](https://github.com/pacoxu)) [SIG Auth, Network and Node] -- Prepared Pod validation to handle version skew for InPlacePodVerticalScaling's beta graduation. ([#128186](https://github.com/kubernetes/kubernetes/pull/128186), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) -- Promoted `RecoverVolumeExpansionFailure` feature gate to beta. ([#128342](https://github.com/kubernetes/kubernetes/pull/128342), [@gnufied](https://github.com/gnufied)) [SIG Apps and Storage] -- Promoted `RetryGenerateName` to stable; the feature is enabled by default. `--feature-gates=RetryGenerateName=true` not needed on kube-apiserver binaries and will be removed in a future release. ([#127093](https://github.com/kubernetes/kubernetes/pull/127093), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery] -- Promoted `SizeMemoryBackedVolumes` to stable. ([#126981](https://github.com/kubernetes/kubernetes/pull/126981), [@kannon92](https://github.com/kannon92)) [SIG Node, Storage and Testing] -- Promoted the `RelaxedEnvironmentVariableValidation` feature gate to beta and is enabled by default. ([#126897](https://github.com/kubernetes/kubernetes/pull/126897), [@HirazawaUi](https://github.com/HirazawaUi)) -- Promoted the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks`. ([#127302](https://github.com/kubernetes/kubernetes/pull/127302), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing] -- Promoted the `ServiceAccountTokenJTI` feature to GA, which adds a `jti` claim to issued service account tokens and embeds the `jti` claim as a `authentication.kubernetes.io/credential-id=["JTI=..."]` value in user extra info - - Promoted the `ServiceAccountTokenPodNodeInfo` feature to GA, which adds the node name and uid as claims into service account tokens mounted into running pods, and embeds that information as `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` user extra info when the token is used - - Promoted the `ServiceAccountTokenNodeBindingValidation` feature to GA, which validates service account tokens bound directly to nodes. ([#128169](https://github.com/kubernetes/kubernetes/pull/128169), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing] -- Realigned line breaks from `kubectl explain` descriptions. ([#126533](https://github.com/kubernetes/kubernetes/pull/126533), [@ah8ad3](https://github.com/ah8ad3)) -- Removed attachable volume limits from the capacity of the node for the following - volume type when the kubelet was started, affecting the following volume types - when the corresponding csi driver was installed: - - `awsElasticBlockStore` for `ebs.csi.aws.com` - - `azureDisk` for `disk.csi.azure.com` - - `gcePersistentDisk` for `pd.csi.storage.googleapis.com` - - `cinder` for `cinder.csi.openstack.org` - - `csi` - However it was still enforced using a limit in CSINode objects. ([#126924](https://github.com/kubernetes/kubernetes/pull/126924), [@carlory](https://github.com/carlory)) -- Reverted Go version used to build Kubernetes to 1.23.0. ([#127861](https://github.com/kubernetes/kubernetes/pull/127861), [@xmudrii](https://github.com/xmudrii)) [SIG Release and Testing] -- Support inflight_events metric in the scheduler for QueueingHint. ([#127052](https://github.com/kubernetes/kubernetes/pull/127052), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] -- Support specifying a custom network parameter when running e2e-node-tests with the remote option. ([#127574](https://github.com/kubernetes/kubernetes/pull/127574), [@bouaouda-achraf](https://github.com/bouaouda-achraf)) [SIG Node and Testing] -- The Job controller now considers sidecar container restart counts when removing pods. ([#124952](https://github.com/kubernetes/kubernetes/pull/124952), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps and CLI] -- The `TopologyManagerPolicyOptions` feature-flag is promoted to GA. ([#128124](https://github.com/kubernetes/kubernetes/pull/128124), [@PiotrProkop](https://github.com/PiotrProkop)) -- The scheduler implemented `QueueingHint` in VolumeBinding plugin's CSIDriver event, which enhanced the throughput of scheduling. ([#125171](https://github.com/kubernetes/kubernetes/pull/125171), [@YamasouA](https://github.com/YamasouA)) [SIG Scheduling and Storage] -- The scheduler retries gated Pods more appropriately, giving them a backoff penalty too. ([#126029](https://github.com/kubernetes/kubernetes/pull/126029), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] -- Unallowed label values will show up as "unexpected" in scheduler metrics. ([#126762](https://github.com/kubernetes/kubernetes/pull/126762), [@richabanker](https://github.com/richabanker)) [SIG Instrumentation and Scheduling] -- Updated the control plane's trust anchor publisher to create and manage a new ClusterTrustBundle object, associated with the `kubernetes.io/kube-apiserver-serving` X.509 certificate signer. This ClusterTrustBundle contains a PEM bundle in its payload that you can use to verify kube-apiserver serving certificates. ([#127326](https://github.com/kubernetes/kubernetes/pull/127326), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Apps, Auth, Cluster Lifecycle and Testing] -- Vendor: updated system-validators to v1.9.0. ([#128149](https://github.com/kubernetes/kubernetes/pull/128149), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] -- Vendor: updated system-validators to v1.9.1. ([#128533](https://github.com/kubernetes/kubernetes/pull/128533), [@neolit123](https://github.com/neolit123)) -- When `SchedulerQueueingHint` is enabled, - the scheduler's in-tree plugins now subscribe to specific node events to decide whether to requeue Pods. - This allows the scheduler to handle cluster events faster with less memory. - - Specific node events include updates to taints, tolerations or allocatable. - In-tree plugins now ignore node updates that don't modify any of these fields. ([#127220](https://github.com/kubernetes/kubernetes/pull/127220), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling and Storage] -- When `SchedulerQueueingHints` is enabled, clear events cached in the scheduling queue as soon as possible so that the scheduler consumes less memory. ([#120586](https://github.com/kubernetes/kubernetes/pull/120586), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] -- Windows: Support CPU and Topology manager on Windows. ([#125296](https://github.com/kubernetes/kubernetes/pull/125296), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows] - -### Documentation - -- Clarified the kube-controller-manager documentation for `--allocate-node-cidrs`, `--cluster-cidr`, and `--service-cluster-ip-range` flags to accurately reflect their dependencies and usage conditions. ([#126784](https://github.com/kubernetes/kubernetes/pull/126784), [@eminwux](https://github.com/eminwux)) [SIG API Machinery, Cloud Provider and Docs] -- Documented the `--for=create` option to `kubectl wait`. ([#127327](https://github.com/kubernetes/kubernetes/pull/127327), [@ryanwinter](https://github.com/ryanwinter)) [SIG CLI] -- Fixed documentation for the `apiserver_admission_webhook_fail_open_count` and `apiserver_admission_webhook_request_total` metrics. The `type` label can have a value of "admit", not "mutating". ([#127898](https://github.com/kubernetes/kubernetes/pull/127898), [@modulitos](https://github.com/modulitos)) -- kubeadm: fixed a misleading output (typo) about control-plane joining instructions when executing the "kubeadm init" command. ([#128118](https://github.com/kubernetes/kubernetes/pull/128118), [@amaddio](https://github.com/amaddio)) -- The kubelet, when using `--cloud-provider=external` can use the `--node-ip` flag with one of the unspecified addresses 0.0.0.0 or ::, to create the Node with the IP of the default gateway of the corresponding IP family and then delegating the responsibility to the external cloud provider. This solves the bootstrap problems of out of tree cloud providers that are deployed as Pods within the cluster. ([#125337](https://github.com/kubernetes/kubernetes/pull/125337), [@aojea](https://github.com/aojea)) [SIG Cloud Provider, Network, Node and Testing] -- Added request header UID propagation, behind an alpha `RemoteRequestHeaderUID` feature gate. ([#129081](https://github.com/kubernetes/kubernetes/pull/129081), [@stalz](https://github.com/stlaz)) [SIG API SIG API Machinery, cluster lifecycle, testing] - -### Failing Test - -- kubelet plugins are now re-registered properly on Windows if the re-registration period is < 15ms. ([#114136](https://github.com/kubernetes/kubernetes/pull/114136), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Storage, Testing and Windows] - -### Bug or Regression - -- 1. When the kubelet constructs the CRI mounts for the container which references an `image` volume source type, it passes the missing mount attributes to the CRI implementation, including `readOnly`, `propagation`, and `recursiveReadOnly`. When the readOnly field of the containerMount is explicitly set to false, the kubelet will now take the `readOnly`as true to the CRI implementation because the image volume plugin requires the mount to be read-only. - 2. Fixed a bug where the pod is unexpectedly running when the `image` volume source type is used and mounted to `/etc/hosts` in the container. ([#126806](https://github.com/kubernetes/kubernetes/pull/126806), [@carlory](https://github.com/carlory)) [SIG Node and Storage] -- Added warnings for overlap paths in ConfigMap, Secret, DownwardAPI, Projected. Added warning for cases when ProjectedVolume with sources is provided. ([#121968](https://github.com/kubernetes/kubernetes/pull/121968), [@Peac36](https://github.com/Peac36)) -- Apiserver repair controller is resilient to etcd errors during bootstrap and retries during 30 seconds before failing. ([#126671](https://github.com/kubernetes/kubernetes/pull/126671), [@fusida](https://github.com/fusida)) [SIG Network] -- Applyconfiguration-gen no longer generates duplicate methods and ambiguous member accesses when types end up with multiple members of the same name (through embedded structs). ([#127001](https://github.com/kubernetes/kubernetes/pull/127001), [@skitt](https://github.com/skitt)) [SIG API Machinery] -- Bookmark events are now sent immediately after all items in the watchCache store have been processed, improving consistency in client behavior. ([#127012](https://github.com/kubernetes/kubernetes/pull/127012), [@Chaunceyctx](https://github.com/Chaunceyctx)) -- DRA: fixed several issues related to `allocationMode: all`. ([#127565](https://github.com/kubernetes/kubernetes/pull/127565), [@pohly](https://github.com/pohly)) -- DRA: when a DRA driver was started after creating pods which need resources from that driver, no additional attempt was made to schedule such unschedulable pods again. Only affected DRA with structured parameters. ([#126807](https://github.com/kubernetes/kubernetes/pull/126807), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing] -- DRA: when enabling the scheduler queuing hint feature, pods got stuck as unschedulable for a while unnecessarily because recording the name of the generated ResourceClaim did not trigger scheduling. ([#127497](https://github.com/kubernetes/kubernetes/pull/127497), [@pohly](https://github.com/pohly)) [SIG Auth, Node, Scheduling and Testing] -- Disallowed label values will show up as "unexpected" in all system components' metrics. - ([#128100](https://github.com/kubernetes/kubernetes/pull/128100), [@yongruilin](https://github.com/yongruilin)) [SIG Architecture and Instrumentation] -- Discarded the output streams of destination path check in kubectl cp when copying from local to pod and added a 3 seconds timeout to this check ([#126652](https://github.com/kubernetes/kubernetes/pull/126652), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI] -- Fixed 1.31 regression that can crash kube-controller-manager's service-lb-controller loop. ([#128182](https://github.com/kubernetes/kubernetes/pull/128182), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Network] -- Fixed a 1.31 regression starting kubelet on Windows: Revert "fix: handle socket file detection on Windows". ([#126976](https://github.com/kubernetes/kubernetes/pull/126976), [@jsturtevant](https://github.com/jsturtevant)) -- Fixed a 1.31 regression with API emulation versioning honors cohabitating resources. ([#127239](https://github.com/kubernetes/kubernetes/pull/127239), [@xuzhenglun](https://github.com/xuzhenglun)) -- Fixed a bug in the endpoints controller that failed to reconcile the Endpoint object after it was truncated (when it received more than 1000 endpoint addresses). ([#127417](https://github.com/kubernetes/kubernetes/pull/127417), [@aojea](https://github.com/aojea)) [SIG Apps, Network and Testing] -- Fixed a bug in the garbage collector controller which could block indefinitely due to a cache sync failure. This fix allows the garbage collector to eventually continue garbage collecting other resources if a given resource cannot be listed or watched. Any objects in the unsynced resource type with owner references with `blockOwnerDeletion: true` will not be known to the garbage collector. Use of `blockOwnerDeletion` has always been best-effort and racy on startup and object creation. With this fix, it continues to be best-effort for resources that cannot be synced by the garbage collector controller. ([#125796](https://github.com/kubernetes/kubernetes/pull/125796), [@haorenfsa](https://github.com/haorenfsa)) [SIG API Machinery, Apps and Testing] -- Fixed a bug that occurred when the hostname label of a node did not match the node name, pods bound to a PersistentVolume with `nodeAffinity` using the hostname may be scheduled to the wrong node or experience scheduling failures. ([#125398](https://github.com/kubernetes/kubernetes/pull/125398), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Storage] -- Fixed a bug where `podCIDR` was released before node was deleted. ([#128305](https://github.com/kubernetes/kubernetes/pull/128305), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network] -- Fixed a bug where the kubelet ephemerally failed with `failed to initialize top level QOS containers: root container [kubepods] doesn't exist`, due to the cpuset cgroup being deleted on cgroup v2 with systemd cgroup manager. - ([#125923](https://github.com/kubernetes/kubernetes/pull/125923), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing] -- Fixed a bug where the pod(with regular init containers)'s phase was not pending when the regular init container had not finished running after a node restart. ([#126653](https://github.com/kubernetes/kubernetes/pull/126653), [@zhifei92](https://github.com/zhifei92)) [SIG Node and Testing] -- Fixed a bug which the scheduler didn't correctly tell plugins Node deletion. - This bug could impact all scheduler plugins subscribing to Node/Delete event, making the queue keep the Pods rejected by those plugins incorrectly at Node deletion. Among the in-tree plugins, PodTopologySpread is the only victim. ([#127464](https://github.com/kubernetes/kubernetes/pull/127464), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] -- Fixed a bug with dual stack clusters using the beta feature MultiCIDRServiceAllocator which could not create dual stack Services or Services with IPs in the secondary range. Users who wanted to use this feature in version 1.30 with dual stack clusters could work around the issue by setting the feature gate DisableAllocatorDualWrite to true. ([#127598](https://github.com/kubernetes/kubernetes/pull/127598), [@aojea](https://github.com/aojea)) [SIG Network and Testing] -- Fixed a possible memory leak in the QueueingHint (alpha feature). ([#126962](https://github.com/kubernetes/kubernetes/pull/126962), [@sanposhiho](https://github.com/sanposhiho)) -- Fixed a potential memory leak in QueueingHint (alpha feature). ([#127016](https://github.com/kubernetes/kubernetes/pull/127016), [@sanposhiho](https://github.com/sanposhiho)) -- Fixed a race condition in the kube-proxy initialization that could cause UDP traffic to service VIP. ([#126532](https://github.com/kubernetes/kubernetes/pull/126532), [@wedaly](https://github.com/wedaly)) -- Fixed a race condition that could result in erroneous volume unmounts for flex volume plugins during kubelet restart. ([#127669](https://github.com/kubernetes/kubernetes/pull/127669), [@olyazavr](https://github.com/olyazavr)) -- Fixed a race condition that could result in erroneous volume unmounts for flex volume plugins on kubelet restart. ([#128495](https://github.com/kubernetes/kubernetes/pull/128495), [@olyazavr](https://github.com/olyazavr)) -- Fixed a regression in 1.29+ default configurations, where regular init containers may fail to start due to a temporary container runtime failure. ([#127162](https://github.com/kubernetes/kubernetes/pull/127162), [@gjkim42](https://github.com/gjkim42)) [SIG Node] -- Fixed a regression in default 1.29 configurations with the `SidecarContainers` feature enabled, where init containers may fail to start due to a temporary container runtime failure. ([#126543](https://github.com/kubernetes/kubernetes/pull/126543), [@gjkim42](https://github.com/gjkim42)) -- Fixed a regression introduced in v1.29 where conntrack entries for UDP connections - to deleted pods did not get cleaned up correctly, which could (among other things) - cause DNS problems when DNS pods were restarted. ([#127780](https://github.com/kubernetes/kubernetes/pull/127780), [@danwinship](https://github.com/danwinship)) -- Fixed a scheduler preemption issue where the victim pod was not deleted due to incorrect status patching. This issue occurred when the preemptor and victim pods had different QoS classes in their status, causing the preemption to fail entirely. ([#126644](https://github.com/kubernetes/kubernetes/pull/126644), [@Huang-Wei](https://github.com/Huang-Wei)) -- Fixed a suboptimal scheduler preemption behavior where potential preemption victims were violating Pod Disruption Budgets. ([#128307](https://github.com/kubernetes/kubernetes/pull/128307), [@NoicFank](https://github.com/NoicFank)) [SIG Scheduling] -- Fixed an issue in the kubelet that showed when writeable layers and read-only layers were at different paths within the same mount. - Kubernetes was previously detecting that the image filesystem was split, even when that was not really the case ([#128344](https://github.com/kubernetes/kubernetes/pull/128344), [@kannon92](https://github.com/kannon92)) [SIG Node] -- Fixed an issue in the kubelet that showed when writeable layers and read-only layers were at different paths within the same mount. - Kubernetes was previously detecting that the image filesystem was split, even when that was not really the case. ([#126562](https://github.com/kubernetes/kubernetes/pull/126562), [@kannon92](https://github.com/kannon92)) -- Fixed an issue where eviction manager was not deleting unused images or containers. ([#127874](https://github.com/kubernetes/kubernetes/pull/127874), [@AnishShah](https://github.com/AnishShah)) -- Fixed an issue where requests sent by the KMSv2 service would be rejected due to having an invalid authority header. ([#126930](https://github.com/kubernetes/kubernetes/pull/126930), [@Ruddickmg](https://github.com/Ruddickmg)) [SIG API Machinery and Auth] -- Fixed data race in kubelet/volumemanager. ([#127919](https://github.com/kubernetes/kubernetes/pull/127919), [@carlory](https://github.com/carlory)) [SIG Apps, Node and Storage] -- Fixed fake client to accept request without metadata.name to better emulate behavior of actual client. ([#126727](https://github.com/kubernetes/kubernetes/pull/126727), [@jpbetz](https://github.com/jpbetz)) -- Fixed the ability to set the `resolvConf` option in drop-in kubelet configuration files, which validates that drop-in kubelet configuration files are in a supported version. ([#127421](https://github.com/kubernetes/kubernetes/pull/127421), [@liggitt](https://github.com/liggitt)) -- Fixed the bug in `NodeUnschedulable` that only happens with QHint enabled, which the scheduler might miss some updates for the Pods rejected by NodeUnschedulable plugin and put the Pods in the queue for a longer time than needed. ([#127427](https://github.com/kubernetes/kubernetes/pull/127427), [@sanposhiho](https://github.com/sanposhiho)) -- Fixed the estimated cost in CEL for expressions that perform equality checks on IPs, CIDRs, Quantities, Formats and URLs. ([#126359](https://github.com/kubernetes/kubernetes/pull/126359), [@jpbetz](https://github.com/jpbetz)) -- Fixed the incorrect help message of a metric "graceful_shutdown_end_time_seconds". - Fixed incorrect value set for metrics "graceful_shutdown_start_time_seconds" and "graceful_shutdown_end_time_seconds" in certain cases during graceful node shutdown. ([#128189](https://github.com/kubernetes/kubernetes/pull/128189), [@zylxjtu](https://github.com/zylxjtu)) [SIG Node] -- Fixed the reporting of elapsed times during evaluation of `ValidatingAdmissionPolicy` decisions and annotations. The apiserver_validating_admission_policy_check_duration metrics will now show elapsed times and no longer be zero. ([#128463](https://github.com/kubernetes/kubernetes/pull/128463), [@knrc](https://github.com/knrc)) -- Fixed the wrong hierarchical structure for both the child span and the parent span (i.e. `SerializeObject` and `List`). In the past, some children's spans appeared parallel to their parents. ([#127551](https://github.com/kubernetes/kubernetes/pull/127551), [@carlory](https://github.com/carlory)) [SIG API Machinery and Instrumentation] -- Fixed: dynamic client-go can now handle subresources with an UnstructuredList response ([#126809](https://github.com/kubernetes/kubernetes/pull/126809), [@ryantxu](https://github.com/ryantxu)) [SIG API Machinery] -- Fixed a bug where restartable and non-restartable init containers were not accounted for in the message and annotations of eviction event. ([#124947](https://github.com/kubernetes/kubernetes/pull/124947), [@toVersus](https://github.com/toVersus)) [SIG Node] -- Fixed a kubelet and kube-apiserver memory leak in default 1.29 configurations related to tracing. ([#126957](https://github.com/kubernetes/kubernetes/pull/126957), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Architecture, Instrumentation and Node] -- Fixed the bug in PodTopologySpread that only happens with QHint enabled, - which the scheduler might miss some updates for the Pods rejected by PodTopologySpread plugin and put the Pods in the queue for a longer time than needed. ([#127447](https://github.com/kubernetes/kubernetes/pull/127447), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] -- For Dynamic Resource Allocation, labels in node selectors now are validated. Invalid labels already caused runtime errors before and are unlikely to occur in practice. ([#128932](https://github.com/kubernetes/kubernetes/pull/128932), [@pohly](https://github.com/pohly)) -- For Dynamic Resource Allocation, the new "v1beta1" kubelet gPRC was renamed so that the protobuf package name is unique. ([#128764](https://github.com/kubernetes/kubernetes/pull/128764), [@pohly](https://github.com/pohly)) [SIG Node and Testing] -- HostNetwork pods no longer depend on the PodIPs to be assigned to configure the defined hostAliases on the Pod ([#126460](https://github.com/kubernetes/kubernetes/pull/126460), [@aojea](https://github.com/aojea)) [SIG Network, Node and Testing] -- If a client makes an API streaming requests and specifies an `application/json;as=Table` content type, the API server now responds with a 406 (Not Acceptable) error. - This change helps to ensure that unsupported formats, such as `Table` representations are correctly rejected. ([#126996](https://github.com/kubernetes/kubernetes/pull/126996), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] -- If an old pod spec has used image volume source, we must allow it when updating the resource even if the feature-gate ImageVolume is disabled. ([#126733](https://github.com/kubernetes/kubernetes/pull/126733), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Node] -- Improved PVC Protection Controller's scalability by batch-processing PVCs by namespace with lazy live pod listing. ([#125372](https://github.com/kubernetes/kubernetes/pull/125372), [@hungnguyen243](https://github.com/hungnguyen243)) [SIG Apps, Node, Storage and Testing] -- Improved the scalability of the PVC Protection Controller by batch-processing PVCs by namespace and implementing lazy live pod listing. ([#126745](https://github.com/kubernetes/kubernetes/pull/126745), [@hungnguyen243](https://github.com/hungnguyen243)) [SIG Apps, Storage and Testing] -- kube-apiserver: fixed a 1.31 regression that stopped honoring build ID overrides with the --version flag ([#126665](https://github.com/kubernetes/kubernetes/pull/126665), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] -- kubeadm: added "disable success" and "disable denial" as parameters of the "cache" plugin in the Corefile managed by kubeadm. This is to prevent conflicting responses during CoreDNS cache updates. ([#128359](https://github.com/kubernetes/kubernetes/pull/128359), [@matteriben](https://github.com/matteriben)) [SIG Cluster Lifecycle] -- kubeadm: ensure that Pods from the upgrade preflight check `CreateJob` are properly terminated after a timeout. ([#127333](https://github.com/kubernetes/kubernetes/pull/127333), [@yuyabee](https://github.com/yuyabee)) [SIG Cluster Lifecycle] -- kubeadm: fixed an issue where the wrong member list was being reported when removing an etcd member. ([#127650](https://github.com/kubernetes/kubernetes/pull/127650), [@SataQiu](https://github.com/SataQiu)) -- kubeadm: when adding new control plane nodes with `kubeamd join`, ensure that the etcd member addition is performed only if a given member URL does not already exist in the list of members. Similarly, on "kubeadm reset" only remove an etcd member if its ID exists. ([#127491](https://github.com/kubernetes/kubernetes/pull/127491), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- kubelet now attempts to get an existing node if the request to create it fails with StatusForbidden. ([#126318](https://github.com/kubernetes/kubernetes/pull/126318), [@hoskeri](https://github.com/hoskeri)) [SIG Node] -- kubelet: Fix - the volume manager didn't check the device mount state in the actual state of the world before marking the volume as detached. It may cause a pod to be stuck in the Terminating state due to the above issue when it was deleted. ([#128219](https://github.com/kubernetes/kubernetes/pull/128219), [@carlory](https://github.com/carlory)) -- kubelet: Fixed a bug where kubelet wrongly drops the QOSClass field of the Pod's status when it rejects a Pod. ([#128083](https://github.com/kubernetes/kubernetes/pull/128083), [@carlory](https://github.com/carlory)) [SIG Node and Testing] -- kubelet: use the CRI stats provider if `PodAndContainerStatsFromCRI` feature is enabled ([#126488](https://github.com/kubernetes/kubernetes/pull/126488), [@haircommander](https://github.com/haircommander)) [SIG Node] -- Made kubelet's /metrics/slis endpoint always available. ([#128430](https://github.com/kubernetes/kubernetes/pull/128430), [@richabanker](https://github.com/richabanker)) [SIG Architecture, Instrumentation and Node] -- Node shutdown controller made a best effort to wait for CSI Drivers to complete the volume teardown process according to the pod priority groups. ([#125070](https://github.com/kubernetes/kubernetes/pull/125070), [@torredil](https://github.com/torredil)) [SIG Node, Storage and Testing] -- Reduced memory usage/allocations during wait for volume attachment. ([#126575](https://github.com/kubernetes/kubernetes/pull/126575), [@Lucaber](https://github.com/Lucaber)) [SIG Node and Storage] -- Removed unneeded permissions for system:controller:persistent-volume-binder and system:controller:expand-controller clusterroles ([#125995](https://github.com/kubernetes/kubernetes/pull/125995), [@carlory](https://github.com/carlory)) [SIG Auth and Storage] -- Reset streams when an error happens during port-forward allowing kubectl to maintain port-forward connection open. ([#128318](https://github.com/kubernetes/kubernetes/pull/128318), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI and Node] -- Send an error on `ResultChan` and close the `RetryWatcher` when the client is forbidden or unauthorized from watching the resource. ([#126038](https://github.com/kubernetes/kubernetes/pull/126038), [@mprahl](https://github.com/mprahl)) [SIG API Machinery] -- Terminated Pods on a node will not be re-admitted on kubelet restart. This fixes the problem of Completed Pods awaiting for the finalizer marked as Failed after the kubelet restart. ([#126343](https://github.com/kubernetes/kubernetes/pull/126343), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node and Testing] -- The CSI volume plugin stopped watching the VolumeAttachment object if the object is not found or the volume is not attached when kubelet waits for a volume attached. In the past, it would fail due to missing permission. ([#126961](https://github.com/kubernetes/kubernetes/pull/126961), [@carlory](https://github.com/carlory)) [SIG Storage] -- The Usage and VolumeCondition are both optional in the response and if CSIVolumeHealth feature gate is enabled kubelet needs to consider returning metrics if either one is set. ([#127021](https://github.com/kubernetes/kubernetes/pull/127021), [@Madhu-1](https://github.com/Madhu-1)) [SIG Storage] -- The `build-tag` flag is reintroduced to conversion-gen and defaulter-gen which allow users to inject custom build tag during code generation process. ([#128259](https://github.com/kubernetes/kubernetes/pull/128259), [@dinhxuanvu](https://github.com/dinhxuanvu)) -- Fixed problem with named ports not being available when specified in sidecar containers. ([#127976](https://github.com/kubernetes/kubernetes/pull/127976), [@chengjoey](https://github.com/chengjoey)) -- The scheduler started considering the resource requests of existing sidecar containers during the scoring process. ([#127878](https://github.com/kubernetes/kubernetes/pull/127878), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Testing] -- Tighten validation on the qosClass field of pod status. This field is immutable but it would be populated with the old status by kube-apiserver if it is unset in the new status when updating this field via the status subsource. ([#127744](https://github.com/kubernetes/kubernetes/pull/127744), [@carlory](https://github.com/carlory)) [SIG Apps, Instrumentation, Node, Storage and Testing] -- Upgraded coreDNS to v1.11.3. ([#126449](https://github.com/kubernetes/kubernetes/pull/126449), [@BenTheElder](https://github.com/BenTheElder)) [SIG Cloud Provider and Cluster Lifecycle] -- Use allocatedResources on PVC for node expansion in kubelet ([#126600](https://github.com/kubernetes/kubernetes/pull/126600), [@gnufied](https://github.com/gnufied)) [SIG Node, Storage and Testing] -- When entering a value other than "external" to the "--cloud-provider" flag for the kubelet, kube-controller-manager, and kube-apiserver, the user will now receive a warning in the logs about the disablement of internal cloud providers, this is in contrast to the previous warnings about deprecation. ([#127711](https://github.com/kubernetes/kubernetes/pull/127711), [@elmiko](https://github.com/elmiko)) [SIG API Machinery, Cloud Provider and Node] -- `StartupProbe` was explicitly stopped when the `successThreshold` was reached. - This eliminated the problem of executing `StartupProbe` more times than - the `successThreshold`. ([#121206](https://github.com/kubernetes/kubernetes/pull/121206), [@mochizuki875](https://github.com/mochizuki875)) -- kubelet: on Windows, consistently resolve filesystem links to volume identifiers instead of inconsistently normalizing to drive letters. ([#129103](https://github.com/kubernetes/kubernetes/pull/129103), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Storage and Windows] - -### Other (Cleanup or Flake) - -- Added a short output format argument for `kubectl explain`. You could now use `-o` as an abbreviation for `--output` in commands such as `kubectl explain <resource> --output plaintext-openapiv2`. ([#127869](https://github.com/kubernetes/kubernetes/pull/127869), [@ak20102763](https://github.com/ak20102763)) -- Added an example for kubectl delete with the --interactive flag. ([#127512](https://github.com/kubernetes/kubernetes/pull/127512), [@bergerhoffer](https://github.com/bergerhoffer)) [SIG CLI] -- Added: Log Line for Debugging possible merge errors for kubelet related Config requests. ([#124389](https://github.com/kubernetes/kubernetes/pull/124389), [@holgerson97](https://github.com/holgerson97)) -- Aggregated Discovery v2beta1 fixture is removed in `./api/discovery`. Please use v2 ([#127008](https://github.com/kubernetes/kubernetes/pull/127008), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery] -- Append the image pull error for the pods `status.containerStatuses[*].state.waiting.message` when - in image pull back-off (`reason` is `ImagePullBackOff`) instead of the generic `Back-off pulling image…` message. ([#127918](https://github.com/kubernetes/kubernetes/pull/127918), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing] -- CBOR-encoded watch responses now set the Content-Type header to "application/cbor-seq" instead of the nonconformant "application/cbor". ([#128501](https://github.com/kubernetes/kubernetes/pull/128501), [@benluddy](https://github.com/benluddy)) [SIG API Machinery, Etcd and Testing] -- CRI client now used the default timeout for `ImageFsInfo` RPC. ([#128052](https://github.com/kubernetes/kubernetes/pull/128052), [@saschagrunert](https://github.com/saschagrunert)) -- Clarified an API validation error for toleration if `operator` is `Exists` and `value` is not empty. ([#128119](https://github.com/kubernetes/kubernetes/pull/128119), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery and Apps] -- Device manager: stop using annotations to pass CDI device info to runtimes. Containerd versions older than v1.7.2 don't support passing CDI info through CRI and need to be upgraded. ([#126435](https://github.com/kubernetes/kubernetes/pull/126435), [@bart0sh](https://github.com/bart0sh)) [SIG Node] -- Dropped support for `InPlacePodVerticalScaling` feature in Windows. ([#128623](https://github.com/kubernetes/kubernetes/pull/128623), [@AnishShah](https://github.com/AnishShah)) [SIG Apps and Node] -- Enabled `CBORServingAndStorage` feature gate – built-in APIs can now be served in CBOR format for clients that request it. ([#128503](https://github.com/kubernetes/kubernetes/pull/128503), [@benluddy](https://github.com/benluddy)) [SIG API Machinery, Etcd and Testing] -- Fake clientsets now use a common, generic implementation. The corresponding structs are now private; callers must use the corresponding constructors. ([#126503](https://github.com/kubernetes/kubernetes/pull/126503), [@skitt](https://github.com/skitt)) [SIG API Machinery, Architecture, Auth and Instrumentation] -- Feature `AllowServiceLBStatusOnNonLB` remains deprecated and is now locked to false to support compatibility versions. ([#128139](https://github.com/kubernetes/kubernetes/pull/128139), [@Jefftree](https://github.com/Jefftree)) -- Feature gate "AllowServiceLBStatusOnNonLB" has been removed. This gate has been stable and unchanged for over a year. ([#126786](https://github.com/kubernetes/kubernetes/pull/126786), [@thockin](https://github.com/thockin)) [SIG Apps] -- Fixed a warning message about the gce in-tree cloud provider state. ([#126773](https://github.com/kubernetes/kubernetes/pull/126773), [@carlory](https://github.com/carlory)) -- Fixed spacing in `--validate flag` description in kubectl. ([#128081](https://github.com/kubernetes/kubernetes/pull/128081), [@soltysh](https://github.com/soltysh)) -- Fixes a bug in the `k8s.io/cloud-provider/service` controller, it may panic when a service is updated because the event recorder was used before it was initialized. All cloud providers should using the `v1.31.0` cloud provider service controller must ensure that the controllers is initialized before the informer start to process events or update it to the version 1.32.0. ([#128179](https://github.com/kubernetes/kubernetes/pull/128179), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider, Network and Testing] -- Fully removed `PostStartHookContext.StopCh`. ([#127341](https://github.com/kubernetes/kubernetes/pull/127341), [@mjudeikis](https://github.com/mjudeikis)) -- kube-apiserver `--admission-control-config-file` files are now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause an error. ([#128013](https://github.com/kubernetes/kubernetes/pull/128013), [@seans3](https://github.com/seans3)) -- kube-apiserver `--egress-selector-config-file` files were validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause an error. ([#128011](https://github.com/kubernetes/kubernetes/pull/128011), [@seans3](https://github.com/seans3)) [SIG API Machinery and Testing] -- kube-apiserver `ResourceQuotaConfiguration` admission plugin subsection within `--admission-control-config-file` files were validated strictly (EnableStrict). Duplicate and unknown fields in the configuration would cause an error. ([#128038](https://github.com/kubernetes/kubernetes/pull/128038), [@seans3](https://github.com/seans3)) -- kube-controller-manager `--leader-migration-config` files were now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration would cause an error. ([#128009](https://github.com/kubernetes/kubernetes/pull/128009), [@seans3](https://github.com/seans3)) [SIG API Machinery and Cloud Provider] -- kube-proxy initialization waits for all pre-sync events from node and serviceCIDR informers to be delivered. ([#126561](https://github.com/kubernetes/kubernetes/pull/126561), [@wedaly](https://github.com/wedaly)) [SIG Network] -- kube-proxy will no longer depend on conntrack binary for stale UDP connections cleanup ([#126847](https://github.com/kubernetes/kubernetes/pull/126847), [@aroradaman](https://github.com/aroradaman)) [SIG Cluster Lifecycle, Network and Testing] -- kubeadm: don't warn if `crictl` binary does not exist since kubeadm does not rely on `crictl` since v1.31. ([#126596](https://github.com/kubernetes/kubernetes/pull/126596), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cluster Lifecycle] -- kubeadm: increased the verbosity of API client dry-run actions during the subcommands "init", "join", "upgrade" and "reset". It also allowed dry-run on 'kubeadm join' even if there was no existing cluster by utilizing a faked, in-memory cluster-info ConfigMap. ([#126776](https://github.com/kubernetes/kubernetes/pull/126776), [@neolit123](https://github.com/neolit123)) -- kubeadm: make sure the extra environment variables written to a kubeadm managed PodSpec are sorted alpha-numerically by the environment variable name. ([#126743](https://github.com/kubernetes/kubernetes/pull/126743), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- kubeadm: removed the deprecated sub-phase of 'init kubelet-finilize' called `experimental-cert-rotation`, and use 'enable-client-cert-rotation' instead. ([#126913](https://github.com/kubernetes/kubernetes/pull/126913), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle] -- kubeadm: removed `socat` and `ebtables` from kubeadm preflight checks ([#127151](https://github.com/kubernetes/kubernetes/pull/127151), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cluster Lifecycle] -- kubeadm: removed preflight check for existence of the conntrack binary, as conntrack is no longer a kube-proxy dependency in version 1.32 and newer. ([#126953](https://github.com/kubernetes/kubernetes/pull/126953), [@aroradaman](https://github.com/aroradaman)) -- kubeadm: removed the deprecated and NO-OP flags `--feature-gates` for `kubeadm upgrade apply` and `--api-server-manifest`, `--controller-manager-manifest`, and `--scheduler-manifest` for `kubeadm upgrade diff`. ([#127123](https://github.com/kubernetes/kubernetes/pull/127123), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- kubeadm: removed the deprecated flag `--experimental-output`, please use the flag `--output` instead that serves the same purpose. Affected commands are: `kubeadm config images list`, `kubeadm token list`, `kubeadm upgrade plan`, `kubeadm certs check-expiration`. ([#126914](https://github.com/kubernetes/kubernetes/pull/126914), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle] -- kubeadm: switched the kube-scheduler static Pod to use the endpoints `/livez` (for startup and liveness probes) and `/readyz` (for the readiness probe). Previously, `/healthz` was used for all probes, which is deprecated behavior in the scope of this component. ([#126945](https://github.com/kubernetes/kubernetes/pull/126945), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG Cluster Lifecycle] -- Optimized the code by filtering out empty strings for podUID when calling the `getPodAndContainerForDevice` method. ([#126997](https://github.com/kubernetes/kubernetes/pull/126997), [@lengrongfu](https://github.com/lengrongfu)) -- Output a log as v4-level when a probe is triggered and shift the periodic timer of ReadinessProbe after manual run. ([#119089](https://github.com/kubernetes/kubernetes/pull/119089), [@mochizuki875](https://github.com/mochizuki875)) -- Removed generally available feature gate `ValidatingAdmissionPolicy`. ([#126645](https://github.com/kubernetes/kubernetes/pull/126645), [@cici37](https://github.com/cici37)) [SIG API Machinery, Auth, and Testing] -- Removed generally available feature gate `CloudDualStackNodeIPs`. ([#126840](https://github.com/kubernetes/kubernetes/pull/126840), [@carlory](https://github.com/carlory)) [SIG API Machinery and Cloud Provider] -- Removed generally available feature gate `LegacyServiceAccountTokenCleanUp`. ([#126839](https://github.com/kubernetes/kubernetes/pull/126839), [@carlory](https://github.com/carlory)) [SIG Auth] -- Removed generally available feature gate `MinDomainsInPodTopologySpread`. ([#126863](https://github.com/kubernetes/kubernetes/pull/126863), [@carlory](https://github.com/carlory)) [SIG Scheduling] -- Removed generally available feature gate `NewVolumeManagerReconstruction`. ([#126775](https://github.com/kubernetes/kubernetes/pull/126775), [@carlory](https://github.com/carlory)) [SIG Node and Storage] -- Removed generally available feature gate `NodeOutOfServiceVolumeDetach` ([#127019](https://github.com/kubernetes/kubernetes/pull/127019), [@carlory](https://github.com/carlory)) [SIG Apps and Testing] -- Removed generally available feature gate `StableLoadBalancerNodeSet`. ([#126841](https://github.com/kubernetes/kubernetes/pull/126841), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Network] -- Removed generally available feature-gate `ZeroLimitedNominalConcurrencyShares` ([#126894](https://github.com/kubernetes/kubernetes/pull/126894), [@carlory](https://github.com/carlory)) [SIG API Machinery] -- Removed legacy cloud provider integration code and the "service-lb-controller", "cloud-node-lifecycle-controller" and the "node-route-controller" from kube-controller-manager. You can now either set the `--cloud-provider` command line argument to "external", or to the empty string. All other values are invalid. ([#128197](https://github.com/kubernetes/kubernetes/pull/128197), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps and Cloud Provider] -- Removed support for removing requests and limits during a pod resize. ([#128683](https://github.com/kubernetes/kubernetes/pull/128683), [@AnishShah](https://github.com/AnishShah)) [SIG Apps, Node and Testing] -- Removed support for the kubelet `--runonce` mode. - If you specify the kubelet command line flag `--runonce`, this is an error. - Setting `runOnce` in a kubelet configuration file is also an error, and specifying any - value for that configuration option is now deprecated. ([#126336](https://github.com/kubernetes/kubernetes/pull/126336), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node and Scalability] -- Removed the GAed feature gates for `ServerSideApply` and `ServerSideFieldValidation`. ([#127058](https://github.com/kubernetes/kubernetes/pull/127058), [@carlory](https://github.com/carlory)) -- Removed the `KMSv2` and `KMSv2KDF` feature gates. The associated features graduated to stable in the Kubernetes v1.29 release. ([#126698](https://github.com/kubernetes/kubernetes/pull/126698), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing] -- Removed the feature gate ComponentSLIs, which had been promoted to stable since v1.29. ([#127787](https://github.com/kubernetes/kubernetes/pull/127787), [@Jefftree](https://github.com/Jefftree)) [SIG Architecture and Instrumentation] -- Revised error handling for port forwards to Pods. Added stream resets preventing port-forward from blockage. ([#128681](https://github.com/kubernetes/kubernetes/pull/128681), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI and Testing] -- Short circuit if the compaction request from apiserver is disabled. ([#126627](https://github.com/kubernetes/kubernetes/pull/126627), [@fusida](https://github.com/fusida)) [SIG Etcd] -- Show a warning message to inform users that the `legacy` profile is planned to be deprecated. ([#127230](https://github.com/kubernetes/kubernetes/pull/127230), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI] -- The `dynamicResources` has been refactored to `DynamicResources`, now users can introduce the `DynamicResources` struct outside the `dynamicresources` package. ([#128399](https://github.com/kubernetes/kubernetes/pull/128399), [@JesseStutler](https://github.com/JesseStutler)) [SIG Node and Scheduling] -- The `flowcontrol.apiserver.k8s.io/v1beta3` API version of `FlowSchema` and `PriorityLevelConfiguration` is no longer served in v1.32. Migrate manifests and API clients to use the `flowcontrol.apiserver.k8s.io/v1` API version, available since v1.29. More information is at https://kubernetes.io/docs/reference/using-api/deprecation-guide/#flowcontrol-resources-v132 ([#127017](https://github.com/kubernetes/kubernetes/pull/127017), [@carlory](https://github.com/carlory)) [SIG API Machinery and Testing] -- The alpha Dynamic Resource Allocation gRPC API is still available, but might be removed in future releases. Driver authors should update their DRA drivers to use the v1beta1 gRPC API. ([#128646](https://github.com/kubernetes/kubernetes/pull/128646), [@pohly](https://github.com/pohly)) [SIG Node and Testing] -- The feature-gate "PodHostIPs" has been removed. It is GA and its value has been locked since Kubernetes v1.30. ([#128634](https://github.com/kubernetes/kubernetes/pull/128634), [@thockin](https://github.com/thockin)) [SIG Apps, Architecture, Node and Testing] -- The getters for the field name and typeDescription of the Reflector struct were renamed. ([#128035](https://github.com/kubernetes/kubernetes/pull/128035), [@alexanderstephan](https://github.com/alexanderstephan)) -- The kube-apiserver `--tracing-config-file` is now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now result in an error. ([#128073](https://github.com/kubernetes/kubernetes/pull/128073), [@seans3](https://github.com/seans3)) -- The members name and typeDescription of the Reflector struct were exported to allow for better user extensibility. ([#127663](https://github.com/kubernetes/kubernetes/pull/127663), [@alexanderstephan](https://github.com/alexanderstephan)) -- Changed the percentage marker in `kubectl top node` from `%` to `(%)`. ([#126995](https://github.com/kubernetes/kubernetes/pull/126995), [@googs1025](https://github.com/googs1025)) [SIG CLI] -- Updated cni-plugins to [v1.5.1](https://github.com/containernetworking/plugins/releases/tag/v1.5.1). ([#126966](https://github.com/kubernetes/kubernetes/pull/126966), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing] -- Updated cni-plugins to [v1.6.0](https://github.com/containernetworking/plugins/releases/tag/v1.6.0). ([#128091](https://github.com/kubernetes/kubernetes/pull/128091), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing] -- Updated cri-tools to v1.31.0. ([#126590](https://github.com/kubernetes/kubernetes/pull/126590), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider and Node] -- Upgraded etcd client to v3.5.16. ([#127279](https://github.com/kubernetes/kubernetes/pull/127279), [@serathius](https://github.com/serathius)) [SIG API Machinery, Auth, Cloud Provider and Node] -- Upgraded github.com/coredns/corefile-migration to v1.0.24. ([#126851](https://github.com/kubernetes/kubernetes/pull/126851), [@BenTheElder](https://github.com/BenTheElder)) [SIG Architecture and Cluster Lifecycle] -- Upgraded the functionality of `kubectl kustomize` as described at - https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.4.2 - and https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.5.0. ([#127965](https://github.com/kubernetes/kubernetes/pull/127965), [@koba1t](https://github.com/koba1t)) -- `ComponentSLIs` feature is marked as GA and locked. ([#128317](https://github.com/kubernetes/kubernetes/pull/128317), [@Jefftree](https://github.com/Jefftree)) [SIG Architecture and Instrumentation] -- `kubectl apply --server-side` now supports `--subresource` congruent to `kubectl patch`. ([#127634](https://github.com/kubernetes/kubernetes/pull/127634), [@deads2k](https://github.com/deads2k)) [SIG CLI and Testing] -- kubelet: fixed an issue mounting CSI volumes on Windows nodes in 1.32.0 release candidates. ([#129083](https://github.com/kubernetes/kubernetes/pull/129083) [liggitt](https://github.com/liggitt)) [SIG API Machinery, architecture, auth, cli, cloud-provider, cluster-lifecycle, instrumentation,network,node, release, storage, windows ] +## Urgent Upgrade Notes + +There are no urgent upgrade notes for the v1.32 release. + +## Known Issues + +- golang 1.23 has made many changes to filesystem and mount handling on Windows. The k8s.io/mount-utils package in 1.32 has not been validated with these changes. CSI driver developers and csi-proxy maintainers should set "godebug winsymlink=0" in their go.mod files to disable these changes until a version is released that resolves ([#129084](https://github.com/kubernetes/kubernetes/issues/129084)). + +## Changes by Kind + +### Deprecation + +- Reverted the `DisableNodeKubeProxyVersion` feature gate to default-off to give a full year from deprecation announcement in 1.29 to clearing the field by default, per the [Kubernetes deprecation policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/). ([#126720](https://github.com/kubernetes/kubernetes/pull/126720), [@liggitt](https://github.com/liggitt)) [SIG Architecture and Node] +- ServiceAccount metadata.annotations[kubernetes.io/enforce-mountable-secrets]: deprecated since v1.32; no removal deadline. Prefer separate namespaces to isolate access to mounted secrets. ([#128396](https://github.com/kubernetes/kubernetes/pull/128396), [@ritazh](https://github.com/ritazh)) [SIG API Machinery, Apps, Auth, CLI and Testing] + +### API Change + +- **ACTION REQUIRED** for custom scheduler plugin developers: + `PodEligibleToPreemptOthers` in the `preemption` interface now includes `ctx` in the parameters. + Please update your plugins' implementation accordingly. ([#126465](https://github.com/kubernetes/kubernetes/pull/126465), [@googs1025](https://github.com/googs1025)) [SIG Scheduling] +- Changed NodeToStatusMap from a map to a struct and exposed methods to access the entries. Added absentNodesStatus, which informs the status of nodes that are absent in the map. For developers of out-of-tree PostFilter plugins, ensure to update the usage of NodeToStatusMap. Additionally, NodeToStatusMap should eventually be renamed to NodeToStatusReader. ([#126022](https://github.com/kubernetes/kubernetes/pull/126022), [@macsko](https://github.com/macsko)) [SIG Node, Scheduling, and Testing] + +- A new /resize subresource was added to request pod resource resizing. Update your k8s client code to utilize the /resize subresource for Pod resizing operations. ([#128266](https://github.com/kubernetes/kubernetes/pull/128266), [@AnishShah](https://github.com/AnishShah)) [SIG API Machinery, Apps, Node and Testing] +- A new feature that allows unsafe deletion of corrupt resources has been added, it is disabled by default, + and it can be enabled by setting the option `--feature-gates=AllowUnsafeMalformedObjectDeletion=true`. + It comes with an API change, a new delete option `ignoreStoreReadErrorWithClusterBreakingPotential` has + been introduced, it is not set by default, this maintains backward compatibility. + In order to perform an unsafe deletion of a corrupt resource, the user must enable the option for the delete + request. A resource is considered corrupt if it can not be successfully retrieved from the storage due to + a) transformation error e.g. decryption failure, or b) the object failed to decode. Normal deletion flow is + attempted first, and if it fails with a corrupt resource error then it triggers unsafe delete. + In addition, when this feature is enabled, the 'details' field of 'Status' from the LIST response + includes information that identifies the corrupt object(s). + NOTE: unsafe deletion ignores finalizer constraints, and skips precondition checks. + WARNING: this may break the workload associated with the resource being unsafe-deleted, if it relies on + the normal deletion flow, so cluster breaking consequences apply. ([#127513](https://github.com/kubernetes/kubernetes/pull/127513), [@tkashem](https://github.com/tkashem)) [SIG API Machinery, Etcd, Node and Testing] +- Added `singleProcessOOMKill` flag to the kubelet configuration. Setting that to true enable single process OOM killing in cgroups v2. In this mode, if a single process is OOM killed within a container, the remaining processes will not be OOM killed. ([#126096](https://github.com/kubernetes/kubernetes/pull/126096), [@utam0k](https://github.com/utam0k)) [SIG API Machinery, Node, Testing and Windows] +- Added a `/flagz` endpoint for kube-apiserver endpoint. ([#127581](https://github.com/kubernetes/kubernetes/pull/127581), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Architecture, Auth and Instrumentation] +- Added a `Stream` field to `PodLogOptions`, which allows clients to request certain log stream (stdout or stderr) of the container. + Please also note that the combination of a specific `Stream` and `TailLines` is not supported. ([#127360](https://github.com/kubernetes/kubernetes/pull/127360), [@knight42](https://github.com/knight42)) [SIG API Machinery, Apps, Architecture, Node, Release and Testing] +- Added alpha support for asynchronous Pod preemption. + When the `SchedulerAsyncPreemption` feature gate is enabled, the scheduler now runs API calls to trigger preemptions asynchronously for better performance. ([#128170](https://github.com/kubernetes/kubernetes/pull/128170), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] +- Added driver-owned fields in `ResourceClaim.Status` to report device status data for each allocated device. ([#128240](https://github.com/kubernetes/kubernetes/pull/128240), [@LionelJouin](https://github.com/LionelJouin)) [SIG API Machinery, Network, Node and Testing] +- Added enforcement of an upper cost bound for DRA evaluations of CEL. The API server and scheduler now enforce an upper bound on the cost and runtime steps required for evaluating a CEL expression. ([#128101](https://github.com/kubernetes/kubernetes/pull/128101), [@pohly](https://github.com/pohly)) [SIG API Machinery and Node] +- Added the ability to change the maximum backoff delay accrued between container restarts for a node for containers in `CrashLoopBackOff`. To set this for a node, turn on the feature gate `KubeletCrashLoopBackoffMax` and set the `CrashLoopBackOff.MaxContainerRestartPeriod ` field between `"1s"` and `"300s"` in your [kubelet config file](https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/). ([#128374](https://github.com/kubernetes/kubernetes/pull/128374), [@lauralorenz](https://github.com/lauralorenz)) [SIG API Machinery and Node] +- Allow for Pod search domains to be a single dot `.` or contain an underscore `_` ([#127167](https://github.com/kubernetes/kubernetes/pull/127167), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps, Network and Testing] +- Annotation `batch.kubernetes.io/cronjob-scheduled-timestamp` added to Job objects scheduled from CronJobs is promoted to stable. ([#128336](https://github.com/kubernetes/kubernetes/pull/128336), [@soltysh](https://github.com/soltysh)) +- Apply fsGroup policy for ReadWriteOncePod volumes. ([#128244](https://github.com/kubernetes/kubernetes/pull/128244), [@gnufied](https://github.com/gnufied)) [SIG Storage and Testing] +- Changed the Pod API to support `resources` at `spec` level for pod-level resources. ([#128407](https://github.com/kubernetes/kubernetes/pull/128407), [@ndixita](https://github.com/ndixita)) [SIG API Machinery, Apps, CLI, Cluster Lifecycle, Node, Release, Scheduling and Testing] +- ContainerStatus.AllocatedResources is now guarded by a separate feature gate, InPlacePodVerticalSaclingAllocatedStatus ([#128377](https://github.com/kubernetes/kubernetes/pull/128377), [@tallclair](https://github.com/tallclair)) [SIG API Machinery, CLI, Node, Scheduling and Testing] +- Coordination.v1alpha1 API is dropped and replaced with coordination.v1alpha2. Old coordination.v1alpha1 types must be deleted before upgrade ([#127857](https://github.com/kubernetes/kubernetes/pull/127857), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Etcd, Scheduling and Testing] +- DRA: Restricted the length of opaque device configuration parameters. At admission time, Kubernetes enforces a 10KiB size limit. ([#128601](https://github.com/kubernetes/kubernetes/pull/128601), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing] +- DRA: scheduling pods is up to 16x faster, depending on the scenario. Scheduling throughput depends a lot on cluster utilization. It is higher for lightly loaded clusters with free resources and gets lower when the cluster utilization increases. ([#127277](https://github.com/kubernetes/kubernetes/pull/127277), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing] +- DRA: the `DeviceRequestAllocationResult` struct now has an "AdminAccess" field which should be used instead of the corresponding field in the `DeviceRequest` field when dealing with an allocation. If a device is only allocated for admin access, allocating it again for normal usage is now supported, as originally intended. To allow admin access, starting with 1.32 the `DRAAdminAccess` feature gate must be enabled. ([#127266](https://github.com/kubernetes/kubernetes/pull/127266), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Network, Node, Scheduling and Testing] +- Disallow `k8s.io` and `kubernetes.io` namespaced extra key in structured authentication configuration. ([#126553](https://github.com/kubernetes/kubernetes/pull/126553), [@aramase](https://github.com/aramase)) [SIG Auth] +- Fixed a bug in the `NestedNumberAsFloat64` Unstructured field accessor that could have caused it to return rounded float64 values instead of errors when accessing very large int64 values. ([#128099](https://github.com/kubernetes/kubernetes/pull/128099), [@benluddy](https://github.com/benluddy)) +- Fixed the bug where `spec.terminationGracePeriodSeconds` of the pod will always be overwritten by the MaxPodGracePeriodSeconds of the soft eviction, you can enable the `AllowOverwriteTerminationGracePeriodSeconds` feature gate, which will restore the previous behavior. If you do need to set this, please file an issue with the Kubernetes project to help contributors understand why you needed it. ([#122890](https://github.com/kubernetes/kubernetes/pull/122890), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Architecture, Node and Testing] +- Graduated Job's `ManagedBy` field to beta. ([#127402](https://github.com/kubernetes/kubernetes/pull/127402), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps and Testing] +- Implemented a new, alpha `seLinuxChangePolicy` field within a Pod-level `securityContext`, under SELinuxChangePolicy feature gate. This field allows for opting out from mounting Pod volumes with SELinux label when SELinuxMount feature is enabled (it is alpha and disabled by default now). + Please see [the KEP](https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling#story-3-cluster-upgrade) how we expect to warn users before any SELinux behavior changes and how they can opt-out before. Note that this field and feature gate is useful only with clusters that run with SELinux enabled. No action is required on clusters without SELinux. ([#127981](https://github.com/kubernetes/kubernetes/pull/127981), [@jsafrane](https://github.com/jsafrane)) [SIG API Machinery, Apps, Architecture, Node, Storage and Testing] +- Introduced `v1alpha1` API for mutating admission policies, enabling extensible # admission control via CEL expressions (KEP 3962: Mutating Admission Policies). # To use, enable the `MutatingAdmissionPolicy` feature gate and the `admissionregistration.k8s.io/v1alpha1` # API via `--runtime-config`. ([#127134](https://github.com/kubernetes/kubernetes/pull/127134), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Auth, Etcd and Testing] +- Introduced compressible resource setting on system reserved and kube reserved slices. ([#125982](https://github.com/kubernetes/kubernetes/pull/125982), [@harche](https://github.com/harche)) +- kube-apiserver: Promoted the `StructuredAuthorizationConfiguration` feature gate to GA. The `--authorization-config` flag now accepts `AuthorizationConfiguration` in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`). ([#128172](https://github.com/kubernetes/kubernetes/pull/128172), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing] +- kube-proxy now reconciles Service/Endpoint changes with conntrack table and cleans up only stale UDP flow entries ([#127318](https://github.com/kubernetes/kubernetes/pull/127318), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows] +- kube-scheduler removed `AzureDiskLimits` ,`CinderLimits` `EBSLimits` and `GCEPDLimits` plugin. Given the corresponding CSI driver reports how many volumes a node can handle in NodeGetInfoResponse, the kubelet stores this limit in CSINode and the scheduler then knows the limit of the driver on the node. Removed plugins AzureDiskLimits, CinderLimits, EBSLimits and GCEPDLimits if you explicitly enabled them in the scheduler config. ([#124003](https://github.com/kubernetes/kubernetes/pull/124003), [@carlory](https://github.com/carlory)) [SIG Scheduling, Storage and Testing] +- kubelet: the `--image-credential-provider-config` file was loaded with strict deserialization, which failed if the config file contained duplicate or unknown fields. This protected against accidentally running with malformed config files, unindented files, or typos in field names, and it prevented unexpected behavior. ([#128062](https://github.com/kubernetes/kubernetes/pull/128062), [@aramase](https://github.com/aramase)) [SIG Auth and Node] +- NodeRestriction admission now validates the audience value that kubelet is requesting a service account token for is part of the pod spec volume. This change is introduced with a new kube-apiserver featuregate `ServiceAccountNodeAudienceRestriction` that's enabled by default. ([#128077](https://github.com/kubernetes/kubernetes/pull/128077), [@aramase](https://github.com/aramase)) [SIG Auth, Storage and Testing] +- Promoted `CustomResourceFieldSelectors` to stable; the feature was enabled by default. The `--feature-gates=CustomResourceFieldSelectors=true` flag was no longer needed on kube-apiserver binaries and would be removed in a future release. ([#127673](https://github.com/kubernetes/kubernetes/pull/127673), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Testing] +- Promoted feature gate `StatefulSetAutoDeletePVC` from beta to stable. ([#128247](https://github.com/kubernetes/kubernetes/pull/128247), [@mattcary](https://github.com/mattcary)) [SIG API Machinery, Apps, Auth and Testing] +- Removed all support for _classic_ dynamic resource allocation (DRA). The `DRAControlPlaneController` feature gate, formerly alpha, is no longer available. Kubernetes now only uses the _structured parameters_ model (also alpha) for allocating dynamic resources to Pods. + + if and only if classic DRA was enabled in a cluster, remove all workloads (pods, app deployments, etc. ) which depend on classic DRA and make sure that all PodSchedulingContext resources are gone before upgrading. PodSchedulingContext resources cannot be removed through the apiserver after an upgrade and workloads would not work properly. ([#128003](https://github.com/kubernetes/kubernetes/pull/128003), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing] +- Removed generally available feature gate `HPAContainerMetrics` ([#126862](https://github.com/kubernetes/kubernetes/pull/126862), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Autoscaling] +- Removed restrictions on subresource flag in kubectl commands ([#128296](https://github.com/kubernetes/kubernetes/pull/128296), [@AnishShah](https://github.com/AnishShah)) [SIG CLI] +- Revised the kubelet API Authorization with new subresources, that allow finer-grained authorization checks and access control for kubelet endpoints. + Provided you enable the `KubeletFineGrainedAuthz` feature gate, you can access kubelet's `/healthz` endpoint by granting the caller `nodes/helathz` permission in RBAC. + Similarly you can also access kubelet's `/pods` endpoint to fetch a list of Pods bound to that node by granting the caller `nodes/pods` permission in RBAC. + Similarly you can also access kubelet's `/configz` endpoint to fetch kubelet's configuration by granting the caller `nodes/configz` permission in RBAC. + You can still access kubelet's `/healthz`, `/pods` and `/configz` by granting the caller `nodes/proxy` permission in RBAC but that also grants the caller permissions to exec, run and attach to containers on the nodes and doing so does not follow the least privilege principle. Granting callers more permissions than they need can give attackers an opportunity to escalate privileges. ([#126347](https://github.com/kubernetes/kubernetes/pull/126347), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG API Machinery, Auth, Cluster Lifecycle and Node] +- The core functionality of Dynamic Resource Allocation (DRA) got promoted to beta. No action is required when *upgrading*, the previous v1alpha3 API is still supported, so existing deployments and DRA drivers based on v1alpha3 continue to work. *Downgrading* from 1.32 to 1.31 with DRA resources in the cluster (resourceclaims, resourceclaimtemplates, deviceclasses, resourceslices) is *not* supported because the new v1beta1 is used as storage version and not readable by 1.31. ([#127511](https://github.com/kubernetes/kubernetes/pull/127511), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing] +- The default value for node-monitor-grace-period has been increased to 50s (earlier 40s) (Ref - https://github.com/kubernetes/kubernetes/issues/121793) ([#126287](https://github.com/kubernetes/kubernetes/pull/126287), [@devppratik](https://github.com/devppratik)) [SIG API Machinery, Apps and Node] +- The resource/v1alpha3.ResourceSliceList filed which should have been named "metadata" but was instead named "listMeta" is now properly "metadata". ([#126749](https://github.com/kubernetes/kubernetes/pull/126749), [@thockin](https://github.com/thockin)) [SIG API Machinery] +- The synthetic "Bookmark" event for the watch stream requests will now include a new annotation: `kubernetes.io/initial-events-list-blueprint`. THe annotation contains an empty, versioned list that is encoded in the requested format (such as protobuf, JSON, or CBOR), then base64-encoded and stored as a string. ([#127587](https://github.com/kubernetes/kubernetes/pull/127587), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery] +- To enhance usability and developer experience, CRD validation rules now support direct use of (CEL) reserved keywords as field names in object validation expressions. + Name format CEL library is supported in new expressions. ([#126977](https://github.com/kubernetes/kubernetes/pull/126977), [@aaron-prindle](https://github.com/aaron-prindle)) [SIG API Machinery, Architecture, Auth, Etcd, Instrumentation, Release, Scheduling and Testing] +- Updated incorrect description of persistentVolumeClaimRetentionPolicy ([#126545](https://github.com/kubernetes/kubernetes/pull/126545), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) [SIG API Machinery, Apps and CLI] +- X.509 client certificate authentication to the kube-apiserver now produces credential IDs (derived from the certificate's signature) , for use in audit logging. ([#125634](https://github.com/kubernetes/kubernetes/pull/125634), [@ahmedtd](https://github.com/ahmedtd)) [SIG API Machinery, Auth and Testing] + +### Feature + +- Added Windows support for the node memory manager. ([#128560](https://github.com/kubernetes/kubernetes/pull/128560), [@marosset](https://github.com/marosset)) [SIG Node and Windows] +- Added `--concurrent-daemonset-syncs` command line flag to kube-controller-manager. This value sets the number of workers for the daemonset controller. ([#128444](https://github.com/kubernetes/kubernetes/pull/128444), [@tosi3k](https://github.com/tosi3k)) +- Added a `/statusz` endpoint for the kube-apiserver endpoint. ([#125577](https://github.com/kubernetes/kubernetes/pull/125577), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node and Testing] +- Added a health check for the device plugin gRPC registration server. When the registration server is down, kubelet is marked as unhealthy. If systemd watchdog is configured, this will result in a kubelet restart. ([#128432](https://github.com/kubernetes/kubernetes/pull/128432), [@zhifei92](https://github.com/zhifei92)) [SIG Node] +- Added a kubelet metric `container_aligned_compute_resources_count` to report the count of containers getting aligned compute resources. ([#127155](https://github.com/kubernetes/kubernetes/pull/127155), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] +- Added a kubelet metrics to report informations about the cpu pools managed by cpumanager when the static policy is in use. ([#127506](https://github.com/kubernetes/kubernetes/pull/127506), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] +- Added a new controller, volumeattributesclass-protection-controller, into the kube-controller-manager. + The new controller manages a protective finalizer on VolumeAttributesClass objects. ([#123549](https://github.com/kubernetes/kubernetes/pull/123549), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Auth and Storage] +- Added a new option `strict-cpu-reservation` for CPU Manager static policy. When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly used for system daemons and interrupt processing no longer available for any workload. ([#127483](https://github.com/kubernetes/kubernetes/pull/127483), [@jingczhang](https://github.com/jingczhang)) [SIG Node] +- Added a one-time random duration of up to 50% of kubelet's `nodeStatusReportFrequency` to help spread the node status update load evenly over time. ([#128640](https://github.com/kubernetes/kubernetes/pull/128640), [@mengqiy](https://github.com/mengqiy)) +- Added an option to enable leader election in local-up-cluster.sh via the LEADER_ELECT CLI flag. ([#127786](https://github.com/kubernetes/kubernetes/pull/127786), [@Jefftree](https://github.com/Jefftree)) +- Added kubelet support for systemd watchdog integration. With this enabled, systemd can automatically recover a hung kubelet. ([#127566](https://github.com/kubernetes/kubernetes/pull/127566), [@zhifei92](https://github.com/zhifei92)) [SIG Cloud Provider, Node and Testing] +- Added metrics to measure the latency of DRA Node operations and DRA GRPC calls ([#127146](https://github.com/kubernetes/kubernetes/pull/127146), [@bart0sh](https://github.com/bart0sh)) [SIG Instrumentation, Network, Node, and Testing] +- Added new functionality to the Go client code (`client-go`) library. The `List()` method for the metadata client allows enabling API streaming when fetching collections; this improves performance when listing many objects. + To request this behavior, your client software must enable the `WatchListClient` client-go feature gate. Additionally, streaming is only available if supported by the cluster; the API server that you connect to must also support streaming. + If the API server does not support or allow streaming, then `client-go` falls back to fetching the collection using the **list** API verb. ([#127388](https://github.com/kubernetes/kubernetes/pull/127388), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] +- Added preemptionPolicy field when using `kubectl get PriorityClass -owide` ([#126529](https://github.com/kubernetes/kubernetes/pull/126529), [@googs1025](https://github.com/googs1025)) [SIG CLI] +- Added status for extended Pod resources within the `status.containerStatuses[].resources` field. ([#124227](https://github.com/kubernetes/kubernetes/pull/124227), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing] +- Added support to the kube-apiserver for an alpha feature enabling external signing of service account tokens and fetching of public verifying keys, by enabling the Alpha `ExternalServiceAccountTokenSigner` feature gate and specifying `--service-account-signing-endpoint`. The flag value can either be the location of a Unix domain socket on a filesystem, or be prefixed with an @ symbol and name a Unix domain socket in the abstract socket namespace. ([#128190](https://github.com/kubernetes/kubernetes/pull/128190), [@HarshalNeelkamal](https://github.com/HarshalNeelkamal)) [SIG API Machinery, Apps, Auth, Etcd, Instrumentation, Node, Release and Testing] +- Added the feature gate CBORServingAndStorage to allow CBOR as the encoding for API request and response bodies, and as the storage encoding for custom resources. Clients must opt in; programs built with client-go can do this using the client-go feature gates ClientsAllowCBOR and ClientsPreferCBOR. ([#128539](https://github.com/kubernetes/kubernetes/pull/128539), [@benluddy](https://github.com/benluddy)) [SIG API Machinery, Etcd and Testing] +- Adopted a new implementation of watch caches for **list** verbs, using a btree data structure. The new implementation is active by default; you can opt out by disabling the `BtreeWatchCache` feature gate. ([#128415](https://github.com/kubernetes/kubernetes/pull/128415), [@serathius](https://github.com/serathius)) [SIG API Machinery, Auth and Cloud Provider] +- Allows PreStop lifecycle handler's sleep action to have a zero value ([#127094](https://github.com/kubernetes/kubernetes/pull/127094), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Apps, Node and Testing] +- CRI: Added a field to support CPU affinity on Windows. ([#124285](https://github.com/kubernetes/kubernetes/pull/124285), [@kiashok](https://github.com/kiashok)) [SIG Node and Windows] +- Changed OOM score adjustment calculation for sidecar containers: the OOM adjustment for these containers will match or fall below the OOM score adjustment of regular containers in the Pod. ([#128029](https://github.com/kubernetes/kubernetes/pull/128029), [@bouaouda-achraf](https://github.com/bouaouda-achraf)) +- Client-go/rest: contextual logging of request/response with accurate source code location of the caller ([#126999](https://github.com/kubernetes/kubernetes/pull/126999), [@pohly](https://github.com/pohly)) [SIG API Machinery and Instrumentation] +- DRA: The resource claim controller now maintains metrics about the total number of `ResourceClaims` and the number of allocated `ResourceClaims`. ([#127661](https://github.com/kubernetes/kubernetes/pull/127661), [@pohly](https://github.com/pohly)) [SIG Apps, Instrumentation and Node] +- Enabled graceful shutdown feature for Windows node ([#127404](https://github.com/kubernetes/kubernetes/pull/127404), [@zylxjtu](https://github.com/zylxjtu)) [SIG Node, Testing and Windows] +- Enabled kube-controller-manager '--concurrent-job-syncs' flag works on orphan Pod processors ([#126567](https://github.com/kubernetes/kubernetes/pull/126567), [@fusida](https://github.com/fusida)) [SIG Apps] +- Ensured resizing for Guaranteed pods with integer CPU requests on nodes with static CPU & Memory policy configured is not allowed for the beta release of in-place resize. The feature gate `InPlacePodVerticalScalingExclusiveCPUs` defaults to `false`, but can be enabled to unblock development on ([#127262](https://github.com/kubernetes/kubernetes/issues/127262), [@tallclair](https://github.com/tallclair)) [SIG Node]. ([#128287](https://github.com/kubernetes/kubernetes/pull/128287), [@esotsal](https://github.com/esotsal)) [SIG Node, Release and Testing] +- Extend discovery GroupManager with Group lister interface ([#127524](https://github.com/kubernetes/kubernetes/pull/127524), [@mjudeikis](https://github.com/mjudeikis)) [SIG API Machinery] +- Fixed: Avoid overwriting in-pod vertical scaling updates on systemd daemon reloads when using systemd ([#124216](https://github.com/kubernetes/kubernetes/pull/124216), [@iholder101](https://github.com/iholder101)) [SIG Node] +- Fixed an issue where kubectl doesn't print image volume when kubectl describe a pod with that volume. ([#126706](https://github.com/kubernetes/kubernetes/pull/126706), [@carlory](https://github.com/carlory)) +- Graduated the AnonymousAuthConfigurableEndpoints feature gate to beta and enable by default to allow configurable endpoints for anonymous authentication. ([#127009](https://github.com/kubernetes/kubernetes/pull/127009), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Auth] +- Graduated the kubelet memory manager to generally available (GA). ([#128517](https://github.com/kubernetes/kubernetes/pull/128517), [@Tal-or](https://github.com/Tal-or)) +- Graduated `SchedulerQueueingHints` to beta; the feature gate is now enabled by default. ([#128472](https://github.com/kubernetes/kubernetes/pull/128472), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] +- Graduated the `WatchList` feature gate to Beta for kube-apiserver and enabled `WatchListClient` for KCM. ([#128053](https://github.com/kubernetes/kubernetes/pull/128053), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] +- Implemented a queueing hint for PersistentVolumeClaim/Add event in the `CSILimit` plugin. ([#124703](https://github.com/kubernetes/kubernetes/pull/124703), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Storage] +- Implemented new cluster events `UpdatePodSchedulingGatesEliminated` and `UpdatePodTolerations` for scheduler plugins. ([#127083](https://github.com/kubernetes/kubernetes/pull/127083), [@sanposhiho](https://github.com/sanposhiho)) +- Improved Node's QueueingHint in the `NodeAffinity` plugin by ignoring unrelated changes that keep pods unschedulable. ([#127444](https://github.com/kubernetes/kubernetes/pull/127444), [@dom4ha](https://github.com/dom4ha)) [SIG Scheduling and Testing] +- Improved Node's QueueingHint in the `NodeResourceFit` plugin by ignoring unrelated changes that keep pods unschedulable. ([#127473](https://github.com/kubernetes/kubernetes/pull/127473), [@dom4ha](https://github.com/dom4ha)) [SIG Scheduling and Testing] +- Improved performance of the job controller when handling job delete events. ([#127378](https://github.com/kubernetes/kubernetes/pull/127378), [@hakuna-matatah](https://github.com/hakuna-matatah)) +- Improved performance of the job controller when handling job update events. ([#127228](https://github.com/kubernetes/kubernetes/pull/127228), [@hakuna-matatah](https://github.com/hakuna-matatah)) +- Included an additional resource labeltransformation in on_operations_total metric which could be used for resource specific validations for example handling of encryption config by the apiserver. ([#126512](https://github.com/kubernetes/kubernetes/pull/126512), [@kmala](https://github.com/kmala)) [SIG API Machinery, Auth, Etcd and Testing] +- Introduced a new metric `kubelet_admission_rejections_total` to track the number of pods rejected during admission. ([#128556](https://github.com/kubernetes/kubernetes/pull/128556), [@AnishShah](https://github.com/AnishShah)) +- JWT authenticators now set the `jti` claim (if present and is a string value) as credential id for use by audit logging. ([#127010](https://github.com/kubernetes/kubernetes/pull/127010), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] +- kube-apiserver: Promoted `AuthorizeWithSelectors` feature to beta, which includes field and label selector information from requests in webhook authorization calls. Promoted `AuthorizeNodeWithSelectors` feature to beta, which changes node authorizer behavior to limit requests from node API clients, so that each Node can only get / list / watch its own Node API object, and can also only get / list / watch Pod API objects bound to that node. Clients using kubelet credentials to read other nodes or unrelated pods must change their authentication credentials (recommended), adjust their usage, or obtain broader read access independent of the node authorizer. ([#128168](https://github.com/kubernetes/kubernetes/pull/128168), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing] +- kube-apiserver: a new `--requestheader-uid-headers` flag allows configuring request header authentication to obtain the authenticating user's UID from the specified headers. The suggested value for the new option is `X-Remote-Uid`. When specified, the `kube-system/extension-apiserver-authentication` configmap will include the value in its `.data[requestheader-uid-headers]` field. ([#115834](https://github.com/kubernetes/kubernetes/pull/115834), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Auth, Cloud Provider and Testing] +- kube-proxy uses field-selector clusterIP!=None on Services to avoid watching for Headless Services, reducing unnecessary network bandwidth ([#126769](https://github.com/kubernetes/kubernetes/pull/126769), [@Sakuralbj](https://github.com/Sakuralbj)) [SIG Network] +- : `kubeadm upgrade apply` now supports phase sub-command, users can use `kubeadm upgrade apply phase <phase-name>` to execute the specified phase, or use `kubeadm upgrade apply --skip-phases <phase-names>` to skip some phases during cluster upgrade. ([#126032](https://github.com/kubernetes/kubernetes/pull/126032), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- kubeadm: `kubeadm upgrade node` now supports `addon` and `post-upgrade` phases. Users can use `kubeadm upgrade node phase addon` to execute the addon upgrade, or use `kubeadm upgrade node --skip-phases addon` to skip the addon upgrade. Currently, the `post-upgrade` phase is no-op, and it is mainly used to handle some release-specific post-upgrade tasks. ([#127242](https://github.com/kubernetes/kubernetes/pull/127242), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- kubeadm: added a validation warning when the certificateValidityPeriod is more than the caCertificateValidityPeriod ([#126538](https://github.com/kubernetes/kubernetes/pull/126538), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- kubeadm: added the feature gate `NodeLocalCRISocket`. When the feature gate is enabled, kubeadm will generate the `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in the kubelet configuration for each node and will not write the same CRI socket on the Node object as an annotation. ([#128031](https://github.com/kubernetes/kubernetes/pull/128031), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle] +- kubeadm: allow mixing the flag --config with the special flag --print-manifest of the subphases of 'kubeadm init phase addon'. ([#126740](https://github.com/kubernetes/kubernetes/pull/126740), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- kubeadm: consider --bind-address or --advertise-address and --secure-port for control plane components when the feature gate WaitForAllControlPlaneComponents is enabled. Use /livez for kube-apiserver and kube-scheduler, but continue using /healthz for kube-controller-manager until it supports /livez. ([#128474](https://github.com/kubernetes/kubernetes/pull/128474), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- kubeadm: if an unknown command name is passed to any parent command such as 'kubeadm init phase' return an error. If 'kubeadm init phase' or another command that has subcommands is called without subcommand name, print the available commands and also return an error. ([#127096](https://github.com/kubernetes/kubernetes/pull/127096), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- kubeadm: promoted feature gate `EtcdLearnerMode` to GA. Learner mode in etcd deployed by kubeadm is now locked to enabled by default. ([#126374](https://github.com/kubernetes/kubernetes/pull/126374), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle] +- kubelet: add log and event for cgroup v2 with kernel older than 5.8. ([#126595](https://github.com/kubernetes/kubernetes/pull/126595), [@pacoxu](https://github.com/pacoxu)) [SIG Node] +- Kubernetes is now built with Go 1.23.3. ([#128852](https://github.com/kubernetes/kubernetes/pull/128852), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- Kubernetes is now built with go 1.23.0 ([#127076](https://github.com/kubernetes/kubernetes/pull/127076), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- Kubernetes was built with Go 1.23.1. ([#127611](https://github.com/kubernetes/kubernetes/pull/127611), [@haitch](https://github.com/haitch)) [SIG Release and Testing] +- Kubernetes was built with Go 1.23.2. ([#128110](https://github.com/kubernetes/kubernetes/pull/128110), [@haitch](https://github.com/haitch)) [SIG Release and Testing] +- Label `apps.kubernetes.io/pod-index` added to Pod from StatefulSets is promoted to stable + Label `batch.kubernetes.io/job-completion-index` added to Pods from Indexed Jobs is promoted to stable ([#128387](https://github.com/kubernetes/kubernetes/pull/128387), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps] +- LoadBalancerIPMode feature was marked as GA. ([#127348](https://github.com/kubernetes/kubernetes/pull/127348), [@RyanAoh](https://github.com/RyanAoh)) [SIG Apps, Network and Testing] +- Locked the custom profiling feature in `kubectl debug` to true. ([#127187](https://github.com/kubernetes/kubernetes/pull/127187), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] +- Output for the `ScalingReplicaSet` event has changed from: + Scaled <up|down> replica set <replica-set-name> to <new-value> from <old-value> + to: + Scaled <up|down> replica set <replica-set-name> from <old-value> to <new-value>. ([#125118](https://github.com/kubernetes/kubernetes/pull/125118), [@jsoref](https://github.com/jsoref)) [SIG Apps and CLI] +- PodLifecycleSleepAction is graduated to GA ([#128046](https://github.com/kubernetes/kubernetes/pull/128046), [@AxeZhan](https://github.com/AxeZhan)) [SIG Architecture, Node and Testing] +- Pods were allowed to use the `net.ipv4.tcp_rmem` and `net.ipv4.tcp_wmem` sysctl by default + when the kernel version was 4.15 or higher. With the kernel 4.15 the sysctl became namespaced. + Pod Security admission allowed these sysctl in v1.32+ versions of the baseline and restricted policies. ([#127489](https://github.com/kubernetes/kubernetes/pull/127489), [@pacoxu](https://github.com/pacoxu)) [SIG Auth, Network and Node] +- Prepared Pod validation to handle version skew for InPlacePodVerticalScaling's beta graduation. ([#128186](https://github.com/kubernetes/kubernetes/pull/128186), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) +- Promoted `RecoverVolumeExpansionFailure` feature gate to beta. ([#128342](https://github.com/kubernetes/kubernetes/pull/128342), [@gnufied](https://github.com/gnufied)) [SIG Apps and Storage] +- Promoted `RetryGenerateName` to stable; the feature is enabled by default. `--feature-gates=RetryGenerateName=true` not needed on kube-apiserver binaries and will be removed in a future release. ([#127093](https://github.com/kubernetes/kubernetes/pull/127093), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery] +- Promoted `SizeMemoryBackedVolumes` to stable. ([#126981](https://github.com/kubernetes/kubernetes/pull/126981), [@kannon92](https://github.com/kannon92)) [SIG Node, Storage and Testing] +- Promoted the `RelaxedEnvironmentVariableValidation` feature gate to beta and is enabled by default. ([#126897](https://github.com/kubernetes/kubernetes/pull/126897), [@HirazawaUi](https://github.com/HirazawaUi)) +- Promoted the feature gates `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks`. ([#127302](https://github.com/kubernetes/kubernetes/pull/127302), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing] +- Promoted the `ServiceAccountTokenJTI` feature to GA, which adds a `jti` claim to issued service account tokens and embeds the `jti` claim as a `authentication.kubernetes.io/credential-id=["JTI=..."]` value in user extra info + - Promoted the `ServiceAccountTokenPodNodeInfo` feature to GA, which adds the node name and uid as claims into service account tokens mounted into running pods, and embeds that information as `authentication.kubernetes.io/node-name` and `authentication.kubernetes.io/node-uid` user extra info when the token is used + - Promoted the `ServiceAccountTokenNodeBindingValidation` feature to GA, which validates service account tokens bound directly to nodes. ([#128169](https://github.com/kubernetes/kubernetes/pull/128169), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing] +- Realigned line breaks from `kubectl explain` descriptions. ([#126533](https://github.com/kubernetes/kubernetes/pull/126533), [@ah8ad3](https://github.com/ah8ad3)) +- Removed attachable volume limits from the capacity of the node for the following + volume type when the kubelet was started, affecting the following volume types + when the corresponding csi driver was installed: + - `awsElasticBlockStore` for `ebs.csi.aws.com` + - `azureDisk` for `disk.csi.azure.com` + - `gcePersistentDisk` for `pd.csi.storage.googleapis.com` + - `cinder` for `cinder.csi.openstack.org` + - `csi` + However it was still enforced using a limit in CSINode objects. ([#126924](https://github.com/kubernetes/kubernetes/pull/126924), [@carlory](https://github.com/carlory)) +- Reverted Go version used to build Kubernetes to 1.23.0. ([#127861](https://github.com/kubernetes/kubernetes/pull/127861), [@xmudrii](https://github.com/xmudrii)) [SIG Release and Testing] +- Support inflight_events metric in the scheduler for QueueingHint. ([#127052](https://github.com/kubernetes/kubernetes/pull/127052), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] +- Support specifying a custom network parameter when running e2e-node-tests with the remote option. ([#127574](https://github.com/kubernetes/kubernetes/pull/127574), [@bouaouda-achraf](https://github.com/bouaouda-achraf)) [SIG Node and Testing] +- The Job controller now considers sidecar container restart counts when removing pods. ([#124952](https://github.com/kubernetes/kubernetes/pull/124952), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps and CLI] +- The `TopologyManagerPolicyOptions` feature-flag is promoted to GA. ([#128124](https://github.com/kubernetes/kubernetes/pull/128124), [@PiotrProkop](https://github.com/PiotrProkop)) +- The scheduler implemented `QueueingHint` in VolumeBinding plugin's CSIDriver event, which enhanced the throughput of scheduling. ([#125171](https://github.com/kubernetes/kubernetes/pull/125171), [@YamasouA](https://github.com/YamasouA)) [SIG Scheduling and Storage] +- The scheduler retries gated Pods more appropriately, giving them a backoff penalty too. ([#126029](https://github.com/kubernetes/kubernetes/pull/126029), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] +- Unallowed label values will show up as "unexpected" in scheduler metrics. ([#126762](https://github.com/kubernetes/kubernetes/pull/126762), [@richabanker](https://github.com/richabanker)) [SIG Instrumentation and Scheduling] +- Updated the control plane's trust anchor publisher to create and manage a new ClusterTrustBundle object, associated with the `kubernetes.io/kube-apiserver-serving` X.509 certificate signer. This ClusterTrustBundle contains a PEM bundle in its payload that you can use to verify kube-apiserver serving certificates. ([#127326](https://github.com/kubernetes/kubernetes/pull/127326), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Apps, Auth, Cluster Lifecycle and Testing] +- Vendor: updated system-validators to v1.9.0. ([#128149](https://github.com/kubernetes/kubernetes/pull/128149), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] +- Vendor: updated system-validators to v1.9.1. ([#128533](https://github.com/kubernetes/kubernetes/pull/128533), [@neolit123](https://github.com/neolit123)) +- When `SchedulerQueueingHint` is enabled, + the scheduler's in-tree plugins now subscribe to specific node events to decide whether to requeue Pods. + This allows the scheduler to handle cluster events faster with less memory. + + Specific node events include updates to taints, tolerations or allocatable. + In-tree plugins now ignore node updates that don't modify any of these fields. ([#127220](https://github.com/kubernetes/kubernetes/pull/127220), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling and Storage] +- When `SchedulerQueueingHints` is enabled, clear events cached in the scheduling queue as soon as possible so that the scheduler consumes less memory. ([#120586](https://github.com/kubernetes/kubernetes/pull/120586), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] +- Windows: Support CPU and Topology manager on Windows. ([#125296](https://github.com/kubernetes/kubernetes/pull/125296), [@jsturtevant](https://github.com/jsturtevant)) [SIG Node and Windows] + +### Documentation + +- Clarified the kube-controller-manager documentation for `--allocate-node-cidrs`, `--cluster-cidr`, and `--service-cluster-ip-range` flags to accurately reflect their dependencies and usage conditions. ([#126784](https://github.com/kubernetes/kubernetes/pull/126784), [@eminwux](https://github.com/eminwux)) [SIG API Machinery, Cloud Provider and Docs] +- Documented the `--for=create` option to `kubectl wait`. ([#127327](https://github.com/kubernetes/kubernetes/pull/127327), [@ryanwinter](https://github.com/ryanwinter)) [SIG CLI] +- Fixed documentation for the `apiserver_admission_webhook_fail_open_count` and `apiserver_admission_webhook_request_total` metrics. The `type` label can have a value of "admit", not "mutating". ([#127898](https://github.com/kubernetes/kubernetes/pull/127898), [@modulitos](https://github.com/modulitos)) +- kubeadm: fixed a misleading output (typo) about control-plane joining instructions when executing the "kubeadm init" command. ([#128118](https://github.com/kubernetes/kubernetes/pull/128118), [@amaddio](https://github.com/amaddio)) +- The kubelet, when using `--cloud-provider=external` can use the `--node-ip` flag with one of the unspecified addresses 0.0.0.0 or ::, to create the Node with the IP of the default gateway of the corresponding IP family and then delegating the responsibility to the external cloud provider. This solves the bootstrap problems of out of tree cloud providers that are deployed as Pods within the cluster. ([#125337](https://github.com/kubernetes/kubernetes/pull/125337), [@aojea](https://github.com/aojea)) [SIG Cloud Provider, Network, Node and Testing] +- Added request header UID propagation, behind an alpha `RemoteRequestHeaderUID` feature gate. ([#129081](https://github.com/kubernetes/kubernetes/pull/129081), [@stalz](https://github.com/stlaz)) [SIG API SIG API Machinery, cluster lifecycle, testing] + +### Failing Test + +- kubelet plugins are now re-registered properly on Windows if the re-registration period is < 15ms. ([#114136](https://github.com/kubernetes/kubernetes/pull/114136), [@claudiubelu](https://github.com/claudiubelu)) [SIG Node, Storage, Testing and Windows] + +### Bug or Regression + +- 1. When the kubelet constructs the CRI mounts for the container which references an `image` volume source type, it passes the missing mount attributes to the CRI implementation, including `readOnly`, `propagation`, and `recursiveReadOnly`. When the readOnly field of the containerMount is explicitly set to false, the kubelet will now take the `readOnly`as true to the CRI implementation because the image volume plugin requires the mount to be read-only. + 2. Fixed a bug where the pod is unexpectedly running when the `image` volume source type is used and mounted to `/etc/hosts` in the container. ([#126806](https://github.com/kubernetes/kubernetes/pull/126806), [@carlory](https://github.com/carlory)) [SIG Node and Storage] +- Added warnings for overlap paths in ConfigMap, Secret, DownwardAPI, Projected. Added warning for cases when ProjectedVolume with sources is provided. ([#121968](https://github.com/kubernetes/kubernetes/pull/121968), [@Peac36](https://github.com/Peac36)) +- Apiserver repair controller is resilient to etcd errors during bootstrap and retries during 30 seconds before failing. ([#126671](https://github.com/kubernetes/kubernetes/pull/126671), [@fusida](https://github.com/fusida)) [SIG Network] +- Applyconfiguration-gen no longer generates duplicate methods and ambiguous member accesses when types end up with multiple members of the same name (through embedded structs). ([#127001](https://github.com/kubernetes/kubernetes/pull/127001), [@skitt](https://github.com/skitt)) [SIG API Machinery] +- Bookmark events are now sent immediately after all items in the watchCache store have been processed, improving consistency in client behavior. ([#127012](https://github.com/kubernetes/kubernetes/pull/127012), [@Chaunceyctx](https://github.com/Chaunceyctx)) +- DRA: fixed several issues related to `allocationMode: all`. ([#127565](https://github.com/kubernetes/kubernetes/pull/127565), [@pohly](https://github.com/pohly)) +- DRA: when a DRA driver was started after creating pods which need resources from that driver, no additional attempt was made to schedule such unschedulable pods again. Only affected DRA with structured parameters. ([#126807](https://github.com/kubernetes/kubernetes/pull/126807), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing] +- DRA: when enabling the scheduler queuing hint feature, pods got stuck as unschedulable for a while unnecessarily because recording the name of the generated ResourceClaim did not trigger scheduling. ([#127497](https://github.com/kubernetes/kubernetes/pull/127497), [@pohly](https://github.com/pohly)) [SIG Auth, Node, Scheduling and Testing] +- Disallowed label values will show up as "unexpected" in all system components' metrics. + ([#128100](https://github.com/kubernetes/kubernetes/pull/128100), [@yongruilin](https://github.com/yongruilin)) [SIG Architecture and Instrumentation] +- Discarded the output streams of destination path check in kubectl cp when copying from local to pod and added a 3 seconds timeout to this check ([#126652](https://github.com/kubernetes/kubernetes/pull/126652), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI] +- Fixed 1.31 regression that can crash kube-controller-manager's service-lb-controller loop. ([#128182](https://github.com/kubernetes/kubernetes/pull/128182), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Network] +- Fixed a 1.31 regression starting kubelet on Windows: Revert "fix: handle socket file detection on Windows". ([#126976](https://github.com/kubernetes/kubernetes/pull/126976), [@jsturtevant](https://github.com/jsturtevant)) +- Fixed a 1.31 regression with API emulation versioning honors cohabitating resources. ([#127239](https://github.com/kubernetes/kubernetes/pull/127239), [@xuzhenglun](https://github.com/xuzhenglun)) +- Fixed a bug in the endpoints controller that failed to reconcile the Endpoint object after it was truncated (when it received more than 1000 endpoint addresses). ([#127417](https://github.com/kubernetes/kubernetes/pull/127417), [@aojea](https://github.com/aojea)) [SIG Apps, Network and Testing] +- Fixed a bug in the garbage collector controller which could block indefinitely due to a cache sync failure. This fix allows the garbage collector to eventually continue garbage collecting other resources if a given resource cannot be listed or watched. Any objects in the unsynced resource type with owner references with `blockOwnerDeletion: true` will not be known to the garbage collector. Use of `blockOwnerDeletion` has always been best-effort and racy on startup and object creation. With this fix, it continues to be best-effort for resources that cannot be synced by the garbage collector controller. ([#125796](https://github.com/kubernetes/kubernetes/pull/125796), [@haorenfsa](https://github.com/haorenfsa)) [SIG API Machinery, Apps and Testing] +- Fixed a bug that occurred when the hostname label of a node did not match the node name, pods bound to a PersistentVolume with `nodeAffinity` using the hostname may be scheduled to the wrong node or experience scheduling failures. ([#125398](https://github.com/kubernetes/kubernetes/pull/125398), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Storage] +- Fixed a bug where `podCIDR` was released before node was deleted. ([#128305](https://github.com/kubernetes/kubernetes/pull/128305), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network] +- Fixed a bug where the kubelet ephemerally failed with `failed to initialize top level QOS containers: root container [kubepods] doesn't exist`, due to the cpuset cgroup being deleted on cgroup v2 with systemd cgroup manager. + ([#125923](https://github.com/kubernetes/kubernetes/pull/125923), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing] +- Fixed a bug where the pod(with regular init containers)'s phase was not pending when the regular init container had not finished running after a node restart. ([#126653](https://github.com/kubernetes/kubernetes/pull/126653), [@zhifei92](https://github.com/zhifei92)) [SIG Node and Testing] +- Fixed a bug which the scheduler didn't correctly tell plugins Node deletion. + This bug could impact all scheduler plugins subscribing to Node/Delete event, making the queue keep the Pods rejected by those plugins incorrectly at Node deletion. Among the in-tree plugins, PodTopologySpread is the only victim. ([#127464](https://github.com/kubernetes/kubernetes/pull/127464), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] +- Fixed a bug with dual stack clusters using the beta feature MultiCIDRServiceAllocator which could not create dual stack Services or Services with IPs in the secondary range. Users who wanted to use this feature in version 1.30 with dual stack clusters could work around the issue by setting the feature gate DisableAllocatorDualWrite to true. ([#127598](https://github.com/kubernetes/kubernetes/pull/127598), [@aojea](https://github.com/aojea)) [SIG Network and Testing] +- Fixed a possible memory leak in the QueueingHint (alpha feature). ([#126962](https://github.com/kubernetes/kubernetes/pull/126962), [@sanposhiho](https://github.com/sanposhiho)) +- Fixed a potential memory leak in QueueingHint (alpha feature). ([#127016](https://github.com/kubernetes/kubernetes/pull/127016), [@sanposhiho](https://github.com/sanposhiho)) +- Fixed a race condition in the kube-proxy initialization that could cause UDP traffic to service VIP. ([#126532](https://github.com/kubernetes/kubernetes/pull/126532), [@wedaly](https://github.com/wedaly)) +- Fixed a race condition that could result in erroneous volume unmounts for flex volume plugins during kubelet restart. ([#127669](https://github.com/kubernetes/kubernetes/pull/127669), [@olyazavr](https://github.com/olyazavr)) +- Fixed a race condition that could result in erroneous volume unmounts for flex volume plugins on kubelet restart. ([#128495](https://github.com/kubernetes/kubernetes/pull/128495), [@olyazavr](https://github.com/olyazavr)) +- Fixed a regression in 1.29+ default configurations, where regular init containers may fail to start due to a temporary container runtime failure. ([#127162](https://github.com/kubernetes/kubernetes/pull/127162), [@gjkim42](https://github.com/gjkim42)) [SIG Node] +- Fixed a regression in default 1.29 configurations with the `SidecarContainers` feature enabled, where init containers may fail to start due to a temporary container runtime failure. ([#126543](https://github.com/kubernetes/kubernetes/pull/126543), [@gjkim42](https://github.com/gjkim42)) +- Fixed a regression introduced in v1.29 where conntrack entries for UDP connections + to deleted pods did not get cleaned up correctly, which could (among other things) + cause DNS problems when DNS pods were restarted. ([#127780](https://github.com/kubernetes/kubernetes/pull/127780), [@danwinship](https://github.com/danwinship)) +- Fixed a scheduler preemption issue where the victim pod was not deleted due to incorrect status patching. This issue occurred when the preemptor and victim pods had different QoS classes in their status, causing the preemption to fail entirely. ([#126644](https://github.com/kubernetes/kubernetes/pull/126644), [@Huang-Wei](https://github.com/Huang-Wei)) +- Fixed a suboptimal scheduler preemption behavior where potential preemption victims were violating Pod Disruption Budgets. ([#128307](https://github.com/kubernetes/kubernetes/pull/128307), [@NoicFank](https://github.com/NoicFank)) [SIG Scheduling] +- Fixed an issue in the kubelet that showed when writeable layers and read-only layers were at different paths within the same mount. + Kubernetes was previously detecting that the image filesystem was split, even when that was not really the case ([#128344](https://github.com/kubernetes/kubernetes/pull/128344), [@kannon92](https://github.com/kannon92)) [SIG Node] +- Fixed an issue in the kubelet that showed when writeable layers and read-only layers were at different paths within the same mount. + Kubernetes was previously detecting that the image filesystem was split, even when that was not really the case. ([#126562](https://github.com/kubernetes/kubernetes/pull/126562), [@kannon92](https://github.com/kannon92)) +- Fixed an issue where eviction manager was not deleting unused images or containers. ([#127874](https://github.com/kubernetes/kubernetes/pull/127874), [@AnishShah](https://github.com/AnishShah)) +- Fixed an issue where requests sent by the KMSv2 service would be rejected due to having an invalid authority header. ([#126930](https://github.com/kubernetes/kubernetes/pull/126930), [@Ruddickmg](https://github.com/Ruddickmg)) [SIG API Machinery and Auth] +- Fixed data race in kubelet/volumemanager. ([#127919](https://github.com/kubernetes/kubernetes/pull/127919), [@carlory](https://github.com/carlory)) [SIG Apps, Node and Storage] +- Fixed fake client to accept request without metadata.name to better emulate behavior of actual client. ([#126727](https://github.com/kubernetes/kubernetes/pull/126727), [@jpbetz](https://github.com/jpbetz)) +- Fixed the ability to set the `resolvConf` option in drop-in kubelet configuration files, which validates that drop-in kubelet configuration files are in a supported version. ([#127421](https://github.com/kubernetes/kubernetes/pull/127421), [@liggitt](https://github.com/liggitt)) +- Fixed the bug in `NodeUnschedulable` that only happens with QHint enabled, which the scheduler might miss some updates for the Pods rejected by NodeUnschedulable plugin and put the Pods in the queue for a longer time than needed. ([#127427](https://github.com/kubernetes/kubernetes/pull/127427), [@sanposhiho](https://github.com/sanposhiho)) +- Fixed the estimated cost in CEL for expressions that perform equality checks on IPs, CIDRs, Quantities, Formats and URLs. ([#126359](https://github.com/kubernetes/kubernetes/pull/126359), [@jpbetz](https://github.com/jpbetz)) +- Fixed the incorrect help message of a metric "graceful_shutdown_end_time_seconds". + Fixed incorrect value set for metrics "graceful_shutdown_start_time_seconds" and "graceful_shutdown_end_time_seconds" in certain cases during graceful node shutdown. ([#128189](https://github.com/kubernetes/kubernetes/pull/128189), [@zylxjtu](https://github.com/zylxjtu)) [SIG Node] +- Fixed the reporting of elapsed times during evaluation of `ValidatingAdmissionPolicy` decisions and annotations. The apiserver_validating_admission_policy_check_duration metrics will now show elapsed times and no longer be zero. ([#128463](https://github.com/kubernetes/kubernetes/pull/128463), [@knrc](https://github.com/knrc)) +- Fixed the wrong hierarchical structure for both the child span and the parent span (i.e. `SerializeObject` and `List`). In the past, some children's spans appeared parallel to their parents. ([#127551](https://github.com/kubernetes/kubernetes/pull/127551), [@carlory](https://github.com/carlory)) [SIG API Machinery and Instrumentation] +- Fixed: dynamic client-go can now handle subresources with an UnstructuredList response ([#126809](https://github.com/kubernetes/kubernetes/pull/126809), [@ryantxu](https://github.com/ryantxu)) [SIG API Machinery] +- Fixed a bug where restartable and non-restartable init containers were not accounted for in the message and annotations of eviction event. ([#124947](https://github.com/kubernetes/kubernetes/pull/124947), [@toVersus](https://github.com/toVersus)) [SIG Node] +- Fixed a kubelet and kube-apiserver memory leak in default 1.29 configurations related to tracing. ([#126957](https://github.com/kubernetes/kubernetes/pull/126957), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Architecture, Instrumentation and Node] +- Fixed the bug in PodTopologySpread that only happens with QHint enabled, + which the scheduler might miss some updates for the Pods rejected by PodTopologySpread plugin and put the Pods in the queue for a longer time than needed. ([#127447](https://github.com/kubernetes/kubernetes/pull/127447), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] +- For Dynamic Resource Allocation, labels in node selectors now are validated. Invalid labels already caused runtime errors before and are unlikely to occur in practice. ([#128932](https://github.com/kubernetes/kubernetes/pull/128932), [@pohly](https://github.com/pohly)) +- For Dynamic Resource Allocation, the new "v1beta1" kubelet gPRC was renamed so that the protobuf package name is unique. ([#128764](https://github.com/kubernetes/kubernetes/pull/128764), [@pohly](https://github.com/pohly)) [SIG Node and Testing] +- HostNetwork pods no longer depend on the PodIPs to be assigned to configure the defined hostAliases on the Pod ([#126460](https://github.com/kubernetes/kubernetes/pull/126460), [@aojea](https://github.com/aojea)) [SIG Network, Node and Testing] +- If a client makes an API streaming requests and specifies an `application/json;as=Table` content type, the API server now responds with a 406 (Not Acceptable) error. + This change helps to ensure that unsupported formats, such as `Table` representations are correctly rejected. ([#126996](https://github.com/kubernetes/kubernetes/pull/126996), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] +- If an old pod spec has used image volume source, we must allow it when updating the resource even if the feature-gate ImageVolume is disabled. ([#126733](https://github.com/kubernetes/kubernetes/pull/126733), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Node] +- Improved PVC Protection Controller's scalability by batch-processing PVCs by namespace with lazy live pod listing. ([#125372](https://github.com/kubernetes/kubernetes/pull/125372), [@hungnguyen243](https://github.com/hungnguyen243)) [SIG Apps, Node, Storage and Testing] +- Improved the scalability of the PVC Protection Controller by batch-processing PVCs by namespace and implementing lazy live pod listing. ([#126745](https://github.com/kubernetes/kubernetes/pull/126745), [@hungnguyen243](https://github.com/hungnguyen243)) [SIG Apps, Storage and Testing] +- kube-apiserver: fixed a 1.31 regression that stopped honoring build ID overrides with the --version flag ([#126665](https://github.com/kubernetes/kubernetes/pull/126665), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] +- kubeadm: added "disable success" and "disable denial" as parameters of the "cache" plugin in the Corefile managed by kubeadm. This is to prevent conflicting responses during CoreDNS cache updates. ([#128359](https://github.com/kubernetes/kubernetes/pull/128359), [@matteriben](https://github.com/matteriben)) [SIG Cluster Lifecycle] +- kubeadm: ensure that Pods from the upgrade preflight check `CreateJob` are properly terminated after a timeout. ([#127333](https://github.com/kubernetes/kubernetes/pull/127333), [@yuyabee](https://github.com/yuyabee)) [SIG Cluster Lifecycle] +- kubeadm: fixed an issue where the wrong member list was being reported when removing an etcd member. ([#127650](https://github.com/kubernetes/kubernetes/pull/127650), [@SataQiu](https://github.com/SataQiu)) +- kubeadm: when adding new control plane nodes with `kubeamd join`, ensure that the etcd member addition is performed only if a given member URL does not already exist in the list of members. Similarly, on "kubeadm reset" only remove an etcd member if its ID exists. ([#127491](https://github.com/kubernetes/kubernetes/pull/127491), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- kubelet now attempts to get an existing node if the request to create it fails with StatusForbidden. ([#126318](https://github.com/kubernetes/kubernetes/pull/126318), [@hoskeri](https://github.com/hoskeri)) [SIG Node] +- kubelet: Fix - the volume manager didn't check the device mount state in the actual state of the world before marking the volume as detached. It may cause a pod to be stuck in the Terminating state due to the above issue when it was deleted. ([#128219](https://github.com/kubernetes/kubernetes/pull/128219), [@carlory](https://github.com/carlory)) +- kubelet: Fixed a bug where kubelet wrongly drops the QOSClass field of the Pod's status when it rejects a Pod. ([#128083](https://github.com/kubernetes/kubernetes/pull/128083), [@carlory](https://github.com/carlory)) [SIG Node and Testing] +- kubelet: use the CRI stats provider if `PodAndContainerStatsFromCRI` feature is enabled ([#126488](https://github.com/kubernetes/kubernetes/pull/126488), [@haircommander](https://github.com/haircommander)) [SIG Node] +- Made kubelet's /metrics/slis endpoint always available. ([#128430](https://github.com/kubernetes/kubernetes/pull/128430), [@richabanker](https://github.com/richabanker)) [SIG Architecture, Instrumentation and Node] +- Node shutdown controller made a best effort to wait for CSI Drivers to complete the volume teardown process according to the pod priority groups. ([#125070](https://github.com/kubernetes/kubernetes/pull/125070), [@torredil](https://github.com/torredil)) [SIG Node, Storage and Testing] +- Reduced memory usage/allocations during wait for volume attachment. ([#126575](https://github.com/kubernetes/kubernetes/pull/126575), [@Lucaber](https://github.com/Lucaber)) [SIG Node and Storage] +- Removed unneeded permissions for system:controller:persistent-volume-binder and system:controller:expand-controller clusterroles ([#125995](https://github.com/kubernetes/kubernetes/pull/125995), [@carlory](https://github.com/carlory)) [SIG Auth and Storage] +- Reset streams when an error happens during port-forward allowing kubectl to maintain port-forward connection open. ([#128318](https://github.com/kubernetes/kubernetes/pull/128318), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI and Node] +- Send an error on `ResultChan` and close the `RetryWatcher` when the client is forbidden or unauthorized from watching the resource. ([#126038](https://github.com/kubernetes/kubernetes/pull/126038), [@mprahl](https://github.com/mprahl)) [SIG API Machinery] +- Terminated Pods on a node will not be re-admitted on kubelet restart. This fixes the problem of Completed Pods awaiting for the finalizer marked as Failed after the kubelet restart. ([#126343](https://github.com/kubernetes/kubernetes/pull/126343), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) [SIG Node and Testing] +- The CSI volume plugin stopped watching the VolumeAttachment object if the object is not found or the volume is not attached when kubelet waits for a volume attached. In the past, it would fail due to missing permission. ([#126961](https://github.com/kubernetes/kubernetes/pull/126961), [@carlory](https://github.com/carlory)) [SIG Storage] +- The Usage and VolumeCondition are both optional in the response and if CSIVolumeHealth feature gate is enabled kubelet needs to consider returning metrics if either one is set. ([#127021](https://github.com/kubernetes/kubernetes/pull/127021), [@Madhu-1](https://github.com/Madhu-1)) [SIG Storage] +- The `build-tag` flag is reintroduced to conversion-gen and defaulter-gen which allow users to inject custom build tag during code generation process. ([#128259](https://github.com/kubernetes/kubernetes/pull/128259), [@dinhxuanvu](https://github.com/dinhxuanvu)) +- Fixed problem with named ports not being available when specified in sidecar containers. ([#127976](https://github.com/kubernetes/kubernetes/pull/127976), [@chengjoey](https://github.com/chengjoey)) +- The scheduler started considering the resource requests of existing sidecar containers during the scoring process. ([#127878](https://github.com/kubernetes/kubernetes/pull/127878), [@AxeZhan](https://github.com/AxeZhan)) [SIG Scheduling and Testing] +- Tighten validation on the qosClass field of pod status. This field is immutable but it would be populated with the old status by kube-apiserver if it is unset in the new status when updating this field via the status subsource. ([#127744](https://github.com/kubernetes/kubernetes/pull/127744), [@carlory](https://github.com/carlory)) [SIG Apps, Instrumentation, Node, Storage and Testing] +- Upgraded coreDNS to v1.11.3. ([#126449](https://github.com/kubernetes/kubernetes/pull/126449), [@BenTheElder](https://github.com/BenTheElder)) [SIG Cloud Provider and Cluster Lifecycle] +- Use allocatedResources on PVC for node expansion in kubelet ([#126600](https://github.com/kubernetes/kubernetes/pull/126600), [@gnufied](https://github.com/gnufied)) [SIG Node, Storage and Testing] +- When entering a value other than "external" to the "--cloud-provider" flag for the kubelet, kube-controller-manager, and kube-apiserver, the user will now receive a warning in the logs about the disablement of internal cloud providers, this is in contrast to the previous warnings about deprecation. ([#127711](https://github.com/kubernetes/kubernetes/pull/127711), [@elmiko](https://github.com/elmiko)) [SIG API Machinery, Cloud Provider and Node] +- `StartupProbe` was explicitly stopped when the `successThreshold` was reached. + This eliminated the problem of executing `StartupProbe` more times than + the `successThreshold`. ([#121206](https://github.com/kubernetes/kubernetes/pull/121206), [@mochizuki875](https://github.com/mochizuki875)) +- kubelet: on Windows, consistently resolve filesystem links to volume identifiers instead of inconsistently normalizing to drive letters. ([#129103](https://github.com/kubernetes/kubernetes/pull/129103), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Storage and Windows] + +### Other (Cleanup or Flake) + +- Added a short output format argument for `kubectl explain`. You could now use `-o` as an abbreviation for `--output` in commands such as `kubectl explain <resource> --output plaintext-openapiv2`. ([#127869](https://github.com/kubernetes/kubernetes/pull/127869), [@ak20102763](https://github.com/ak20102763)) +- Added an example for kubectl delete with the --interactive flag. ([#127512](https://github.com/kubernetes/kubernetes/pull/127512), [@bergerhoffer](https://github.com/bergerhoffer)) [SIG CLI] +- Added: Log Line for Debugging possible merge errors for kubelet related Config requests. ([#124389](https://github.com/kubernetes/kubernetes/pull/124389), [@holgerson97](https://github.com/holgerson97)) +- Aggregated Discovery v2beta1 fixture is removed in `./api/discovery`. Please use v2 ([#127008](https://github.com/kubernetes/kubernetes/pull/127008), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery] +- Append the image pull error for the pods `status.containerStatuses[*].state.waiting.message` when + in image pull back-off (`reason` is `ImagePullBackOff`) instead of the generic `Back-off pulling image…` message. ([#127918](https://github.com/kubernetes/kubernetes/pull/127918), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing] +- CBOR-encoded watch responses now set the Content-Type header to "application/cbor-seq" instead of the nonconformant "application/cbor". ([#128501](https://github.com/kubernetes/kubernetes/pull/128501), [@benluddy](https://github.com/benluddy)) [SIG API Machinery, Etcd and Testing] +- CRI client now used the default timeout for `ImageFsInfo` RPC. ([#128052](https://github.com/kubernetes/kubernetes/pull/128052), [@saschagrunert](https://github.com/saschagrunert)) +- Clarified an API validation error for toleration if `operator` is `Exists` and `value` is not empty. ([#128119](https://github.com/kubernetes/kubernetes/pull/128119), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery and Apps] +- Device manager: stop using annotations to pass CDI device info to runtimes. Containerd versions older than v1.7.2 don't support passing CDI info through CRI and need to be upgraded. ([#126435](https://github.com/kubernetes/kubernetes/pull/126435), [@bart0sh](https://github.com/bart0sh)) [SIG Node] +- Dropped support for `InPlacePodVerticalScaling` feature in Windows. ([#128623](https://github.com/kubernetes/kubernetes/pull/128623), [@AnishShah](https://github.com/AnishShah)) [SIG Apps and Node] +- Enabled `CBORServingAndStorage` feature gate – built-in APIs can now be served in CBOR format for clients that request it. ([#128503](https://github.com/kubernetes/kubernetes/pull/128503), [@benluddy](https://github.com/benluddy)) [SIG API Machinery, Etcd and Testing] +- Fake clientsets now use a common, generic implementation. The corresponding structs are now private; callers must use the corresponding constructors. ([#126503](https://github.com/kubernetes/kubernetes/pull/126503), [@skitt](https://github.com/skitt)) [SIG API Machinery, Architecture, Auth and Instrumentation] +- Feature `AllowServiceLBStatusOnNonLB` remains deprecated and is now locked to false to support compatibility versions. ([#128139](https://github.com/kubernetes/kubernetes/pull/128139), [@Jefftree](https://github.com/Jefftree)) +- Feature gate "AllowServiceLBStatusOnNonLB" has been removed. This gate has been stable and unchanged for over a year. ([#126786](https://github.com/kubernetes/kubernetes/pull/126786), [@thockin](https://github.com/thockin)) [SIG Apps] +- Fixed a warning message about the gce in-tree cloud provider state. ([#126773](https://github.com/kubernetes/kubernetes/pull/126773), [@carlory](https://github.com/carlory)) +- Fixed spacing in `--validate flag` description in kubectl. ([#128081](https://github.com/kubernetes/kubernetes/pull/128081), [@soltysh](https://github.com/soltysh)) +- Fixes a bug in the `k8s.io/cloud-provider/service` controller, it may panic when a service is updated because the event recorder was used before it was initialized. All cloud providers should using the `v1.31.0` cloud provider service controller must ensure that the controllers is initialized before the informer start to process events or update it to the version 1.32.0. ([#128179](https://github.com/kubernetes/kubernetes/pull/128179), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider, Network and Testing] +- Fully removed `PostStartHookContext.StopCh`. ([#127341](https://github.com/kubernetes/kubernetes/pull/127341), [@mjudeikis](https://github.com/mjudeikis)) +- kube-apiserver `--admission-control-config-file` files are now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause an error. ([#128013](https://github.com/kubernetes/kubernetes/pull/128013), [@seans3](https://github.com/seans3)) +- kube-apiserver `--egress-selector-config-file` files were validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now cause an error. ([#128011](https://github.com/kubernetes/kubernetes/pull/128011), [@seans3](https://github.com/seans3)) [SIG API Machinery and Testing] +- kube-apiserver `ResourceQuotaConfiguration` admission plugin subsection within `--admission-control-config-file` files were validated strictly (EnableStrict). Duplicate and unknown fields in the configuration would cause an error. ([#128038](https://github.com/kubernetes/kubernetes/pull/128038), [@seans3](https://github.com/seans3)) +- kube-controller-manager `--leader-migration-config` files were now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration would cause an error. ([#128009](https://github.com/kubernetes/kubernetes/pull/128009), [@seans3](https://github.com/seans3)) [SIG API Machinery and Cloud Provider] +- kube-proxy initialization waits for all pre-sync events from node and serviceCIDR informers to be delivered. ([#126561](https://github.com/kubernetes/kubernetes/pull/126561), [@wedaly](https://github.com/wedaly)) [SIG Network] +- kube-proxy will no longer depend on conntrack binary for stale UDP connections cleanup ([#126847](https://github.com/kubernetes/kubernetes/pull/126847), [@aroradaman](https://github.com/aroradaman)) [SIG Cluster Lifecycle, Network and Testing] +- kubeadm: don't warn if `crictl` binary does not exist since kubeadm does not rely on `crictl` since v1.31. ([#126596](https://github.com/kubernetes/kubernetes/pull/126596), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cluster Lifecycle] +- kubeadm: increased the verbosity of API client dry-run actions during the subcommands "init", "join", "upgrade" and "reset". It also allowed dry-run on 'kubeadm join' even if there was no existing cluster by utilizing a faked, in-memory cluster-info ConfigMap. ([#126776](https://github.com/kubernetes/kubernetes/pull/126776), [@neolit123](https://github.com/neolit123)) +- kubeadm: make sure the extra environment variables written to a kubeadm managed PodSpec are sorted alpha-numerically by the environment variable name. ([#126743](https://github.com/kubernetes/kubernetes/pull/126743), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- kubeadm: removed the deprecated sub-phase of 'init kubelet-finilize' called `experimental-cert-rotation`, and use 'enable-client-cert-rotation' instead. ([#126913](https://github.com/kubernetes/kubernetes/pull/126913), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle] +- kubeadm: removed `socat` and `ebtables` from kubeadm preflight checks ([#127151](https://github.com/kubernetes/kubernetes/pull/127151), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cluster Lifecycle] +- kubeadm: removed preflight check for existence of the conntrack binary, as conntrack is no longer a kube-proxy dependency in version 1.32 and newer. ([#126953](https://github.com/kubernetes/kubernetes/pull/126953), [@aroradaman](https://github.com/aroradaman)) +- kubeadm: removed the deprecated and NO-OP flags `--feature-gates` for `kubeadm upgrade apply` and `--api-server-manifest`, `--controller-manager-manifest`, and `--scheduler-manifest` for `kubeadm upgrade diff`. ([#127123](https://github.com/kubernetes/kubernetes/pull/127123), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- kubeadm: removed the deprecated flag `--experimental-output`, please use the flag `--output` instead that serves the same purpose. Affected commands are: `kubeadm config images list`, `kubeadm token list`, `kubeadm upgrade plan`, `kubeadm certs check-expiration`. ([#126914](https://github.com/kubernetes/kubernetes/pull/126914), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle] +- kubeadm: switched the kube-scheduler static Pod to use the endpoints `/livez` (for startup and liveness probes) and `/readyz` (for the readiness probe). Previously, `/healthz` was used for all probes, which is deprecated behavior in the scope of this component. ([#126945](https://github.com/kubernetes/kubernetes/pull/126945), [@liangyuanpeng](https://github.com/liangyuanpeng)) [SIG Cluster Lifecycle] +- Optimized the code by filtering out empty strings for podUID when calling the `getPodAndContainerForDevice` method. ([#126997](https://github.com/kubernetes/kubernetes/pull/126997), [@lengrongfu](https://github.com/lengrongfu)) +- Output a log as v4-level when a probe is triggered and shift the periodic timer of ReadinessProbe after manual run. ([#119089](https://github.com/kubernetes/kubernetes/pull/119089), [@mochizuki875](https://github.com/mochizuki875)) +- Removed generally available feature gate `ValidatingAdmissionPolicy`. ([#126645](https://github.com/kubernetes/kubernetes/pull/126645), [@cici37](https://github.com/cici37)) [SIG API Machinery, Auth, and Testing] +- Removed generally available feature gate `CloudDualStackNodeIPs`. ([#126840](https://github.com/kubernetes/kubernetes/pull/126840), [@carlory](https://github.com/carlory)) [SIG API Machinery and Cloud Provider] +- Removed generally available feature gate `LegacyServiceAccountTokenCleanUp`. ([#126839](https://github.com/kubernetes/kubernetes/pull/126839), [@carlory](https://github.com/carlory)) [SIG Auth] +- Removed generally available feature gate `MinDomainsInPodTopologySpread`. ([#126863](https://github.com/kubernetes/kubernetes/pull/126863), [@carlory](https://github.com/carlory)) [SIG Scheduling] +- Removed generally available feature gate `NewVolumeManagerReconstruction`. ([#126775](https://github.com/kubernetes/kubernetes/pull/126775), [@carlory](https://github.com/carlory)) [SIG Node and Storage] +- Removed generally available feature gate `NodeOutOfServiceVolumeDetach` ([#127019](https://github.com/kubernetes/kubernetes/pull/127019), [@carlory](https://github.com/carlory)) [SIG Apps and Testing] +- Removed generally available feature gate `StableLoadBalancerNodeSet`. ([#126841](https://github.com/kubernetes/kubernetes/pull/126841), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider and Network] +- Removed generally available feature-gate `ZeroLimitedNominalConcurrencyShares` ([#126894](https://github.com/kubernetes/kubernetes/pull/126894), [@carlory](https://github.com/carlory)) [SIG API Machinery] +- Removed legacy cloud provider integration code and the "service-lb-controller", "cloud-node-lifecycle-controller" and the "node-route-controller" from kube-controller-manager. You can now either set the `--cloud-provider` command line argument to "external", or to the empty string. All other values are invalid. ([#128197](https://github.com/kubernetes/kubernetes/pull/128197), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps and Cloud Provider] +- Removed support for removing requests and limits during a pod resize. ([#128683](https://github.com/kubernetes/kubernetes/pull/128683), [@AnishShah](https://github.com/AnishShah)) [SIG Apps, Node and Testing] +- Removed support for the kubelet `--runonce` mode. + If you specify the kubelet command line flag `--runonce`, this is an error. + Setting `runOnce` in a kubelet configuration file is also an error, and specifying any + value for that configuration option is now deprecated. ([#126336](https://github.com/kubernetes/kubernetes/pull/126336), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node and Scalability] +- Removed the GAed feature gates for `ServerSideApply` and `ServerSideFieldValidation`. ([#127058](https://github.com/kubernetes/kubernetes/pull/127058), [@carlory](https://github.com/carlory)) +- Removed the `KMSv2` and `KMSv2KDF` feature gates. The associated features graduated to stable in the Kubernetes v1.29 release. ([#126698](https://github.com/kubernetes/kubernetes/pull/126698), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing] +- Removed the feature gate ComponentSLIs, which had been promoted to stable since v1.29. ([#127787](https://github.com/kubernetes/kubernetes/pull/127787), [@Jefftree](https://github.com/Jefftree)) [SIG Architecture and Instrumentation] +- Revised error handling for port forwards to Pods. Added stream resets preventing port-forward from blockage. ([#128681](https://github.com/kubernetes/kubernetes/pull/128681), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI and Testing] +- Short circuit if the compaction request from apiserver is disabled. ([#126627](https://github.com/kubernetes/kubernetes/pull/126627), [@fusida](https://github.com/fusida)) [SIG Etcd] +- Show a warning message to inform users that the `legacy` profile is planned to be deprecated. ([#127230](https://github.com/kubernetes/kubernetes/pull/127230), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI] +- The `dynamicResources` has been refactored to `DynamicResources`, now users can introduce the `DynamicResources` struct outside the `dynamicresources` package. ([#128399](https://github.com/kubernetes/kubernetes/pull/128399), [@JesseStutler](https://github.com/JesseStutler)) [SIG Node and Scheduling] +- The `flowcontrol.apiserver.k8s.io/v1beta3` API version of `FlowSchema` and `PriorityLevelConfiguration` is no longer served in v1.32. Migrate manifests and API clients to use the `flowcontrol.apiserver.k8s.io/v1` API version, available since v1.29. More information is at https://kubernetes.io/docs/reference/using-api/deprecation-guide/#flowcontrol-resources-v132 ([#127017](https://github.com/kubernetes/kubernetes/pull/127017), [@carlory](https://github.com/carlory)) [SIG API Machinery and Testing] +- The alpha Dynamic Resource Allocation gRPC API is still available, but might be removed in future releases. Driver authors should update their DRA drivers to use the v1beta1 gRPC API. ([#128646](https://github.com/kubernetes/kubernetes/pull/128646), [@pohly](https://github.com/pohly)) [SIG Node and Testing] +- The feature-gate "PodHostIPs" has been removed. It is GA and its value has been locked since Kubernetes v1.30. ([#128634](https://github.com/kubernetes/kubernetes/pull/128634), [@thockin](https://github.com/thockin)) [SIG Apps, Architecture, Node and Testing] +- The getters for the field name and typeDescription of the Reflector struct were renamed. ([#128035](https://github.com/kubernetes/kubernetes/pull/128035), [@alexanderstephan](https://github.com/alexanderstephan)) +- The kube-apiserver `--tracing-config-file` is now validated strictly (EnableStrict). Duplicate and unknown fields in the configuration will now result in an error. ([#128073](https://github.com/kubernetes/kubernetes/pull/128073), [@seans3](https://github.com/seans3)) +- The members name and typeDescription of the Reflector struct were exported to allow for better user extensibility. ([#127663](https://github.com/kubernetes/kubernetes/pull/127663), [@alexanderstephan](https://github.com/alexanderstephan)) +- Changed the percentage marker in `kubectl top node` from `%` to `(%)`. ([#126995](https://github.com/kubernetes/kubernetes/pull/126995), [@googs1025](https://github.com/googs1025)) [SIG CLI] +- Updated cni-plugins to [v1.5.1](https://github.com/containernetworking/plugins/releases/tag/v1.5.1). ([#126966](https://github.com/kubernetes/kubernetes/pull/126966), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing] +- Updated cni-plugins to [v1.6.0](https://github.com/containernetworking/plugins/releases/tag/v1.6.0). ([#128091](https://github.com/kubernetes/kubernetes/pull/128091), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing] +- Updated cri-tools to v1.31.0. ([#126590](https://github.com/kubernetes/kubernetes/pull/126590), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider and Node] +- Upgraded etcd client to v3.5.16. ([#127279](https://github.com/kubernetes/kubernetes/pull/127279), [@serathius](https://github.com/serathius)) [SIG API Machinery, Auth, Cloud Provider and Node] +- Upgraded github.com/coredns/corefile-migration to v1.0.24. ([#126851](https://github.com/kubernetes/kubernetes/pull/126851), [@BenTheElder](https://github.com/BenTheElder)) [SIG Architecture and Cluster Lifecycle] +- Upgraded the functionality of `kubectl kustomize` as described at + https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.4.2 + and https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.5.0. ([#127965](https://github.com/kubernetes/kubernetes/pull/127965), [@koba1t](https://github.com/koba1t)) +- `ComponentSLIs` feature is marked as GA and locked. ([#128317](https://github.com/kubernetes/kubernetes/pull/128317), [@Jefftree](https://github.com/Jefftree)) [SIG Architecture and Instrumentation] +- `kubectl apply --server-side` now supports `--subresource` congruent to `kubectl patch`. ([#127634](https://github.com/kubernetes/kubernetes/pull/127634), [@deads2k](https://github.com/deads2k)) [SIG CLI and Testing] +- kubelet: fixed an issue mounting CSI volumes on Windows nodes in 1.32.0 release candidates. ([#129083](https://github.com/kubernetes/kubernetes/pull/129083) [liggitt](https://github.com/liggitt)) [SIG API Machinery, architecture, auth, cli, cloud-provider, cluster-lifecycle, instrumentation,network,node, release, storage, windows ] diff --git a/releases/release-1.32/release-notes/sessions/maps-1728313621.json b/releases/release-1.32/release-notes/sessions/maps-1728313621.json index 1453f7ee2a9..0c0f8ba1394 100644 --- a/releases/release-1.32/release-notes/sessions/maps-1728313621.json +++ b/releases/release-1.32/release-notes/sessions/maps-1728313621.json @@ -1,527 +1,527 @@ -{ - "mail": "rayandas91@gmail.com", - "name": "Rayan Das", - "date": 1728313621, - "prs": [ - { - "nr": 127417, - "hash": "a6c062a5391396946f2e96a43bb4b5ac52cfae38" - }, - { - "nr": 126512, - "hash": "d5fc2654029cbb99a7984a87b1c796d3fe761d94" - }, - { - "nr": 127551, - "hash": "b0fc53b2a8e47da9cf8f925d4855ab6b6c7d3a9d" - }, - { - "nr": 127279, - "hash": "82fd689ca337899146bb5d952bf100b5c2e8ab94" - }, - { - "nr": 126543, - "hash": "34ba639d1c8b123bc8bcbdd22a72eda71fc837e3" - }, - { - "nr": 125634, - "hash": "a135a8d33a4a112f859005fac885dbba333c1bf0" - }, - { - "nr": 126840, - "hash": "33b17c5592ab2cd13e1bade2eb7ea07d57f35838" - }, - { - "nr": 125796, - "hash": "7a65e86eec37eb91daa3006cc84ee7f1ca3ea9b6" - }, - { - "nr": 126773, - "hash": "59d87357cad5a669858a6b1ad7174c46e00c12ad" - }, - { - "nr": 127019, - "hash": "28489f9456d14587c52768918681043757a6117e" - }, - { - "nr": 115834, - "hash": "fa9606a20a5c843a0f5c0b630688eb71fae28226" - }, - { - "nr": 126996, - "hash": "103f021ca1713ba01b6674c638bda790161a7071" - }, - { - "nr": 126851, - "hash": "ba96b7c0b68d51165656cd6bf5ed9fe940c2b616" - }, - { - "nr": 126749, - "hash": "b4cd49ab278c8f22e422714c49b0ad210d6b2908" - }, - { - "nr": 126022, - "hash": "2654c4d8dcc20501ee51365835cb861c763c153c" - }, - { - "nr": 127598, - "hash": "f4d35e85ea8cf135c87db368ea875b7ff4b1def1" - }, - { - "nr": 127239, - "hash": "2bcbf1aa7501c4b00bd5a34159551e56f6b7ad22" - }, - { - "nr": 125372, - "hash": "2636ef50ed2e0ed1728c8352a8940976dd368d5b" - }, - { - "nr": 120586, - "hash": "0b8198dcb993507d07d2ff52217b0738e070902c" - }, - { - "nr": 126567, - "hash": "74f9b92af0b5d8bb73c351714eff5fa56b153dfd" - }, - { - "nr": 126561, - "hash": "f6e47c046b20a1e8aa66478eb1505402f586fe2f" - }, - { - "nr": 127464, - "hash": "1e93db9a270061890176a72e69133834bd72875c" - }, - { - "nr": 127427, - "hash": "e089159758754dd41c4fd36417cdf8fb54466dd1" - }, - { - "nr": 127388, - "hash": "b603214eaf7208f9b9db15de676944cdd52fbf32" - }, - { - "nr": 127058, - "hash": "794eefe0ee4c4ce5fdb5d39ce723ab2b53934f46" - }, - { - "nr": 126318, - "hash": "fe1ebb8ed91a2e75fbe2fe15fc9fdd348373ae00" - }, - { - "nr": 126913, - "hash": "c4b6b05af87f8898cc98f8bf209bc51a2e167e25" - }, - { - "nr": 126287, - "hash": "4c65ab25e0f424f189668f4dae0d2dee642a3837" - }, - { - "nr": 126488, - "hash": "4045b7235c817db95520adc05ea1a2baad97dad9" - }, - { - "nr": 127574, - "hash": "9e3fa517b08d65ca4245e29314f2f380962dd0d3" - }, - { - "nr": 126733, - "hash": "95689625de9851778be378f542f37a7b3b313218" - }, - { - "nr": 127327, - "hash": "3ea75858e0f77ae0535969f56890cb65d407d66b" - }, - { - "nr": 125398, - "hash": "fa82d7558d0557406e030f881f688b397b5a214d" - }, - { - "nr": 126962, - "hash": "4f1b28028d92f2f2f77f0e4a9ea9aa4f136f7db0" - }, - { - "nr": 126538, - "hash": "43222c9887b2f07b378110ffa3b9503a462e93fc" - }, - { - "nr": 124703, - "hash": "7c848293bb170352ca808d856fe2f48ca69b7ed1" - }, - { - "nr": 127378, - "hash": "9fc2744fcdeda021c0c22656f01fb6ac9b2b5e9b" - }, - { - "nr": 114136, - "hash": "e4cc03501cffe48b8d09136b153ca68a8c45b6ac" - }, - { - "nr": 127096, - "hash": "5616e7ce287520c7610663b23965721fc3f35a7e" - }, - { - "nr": 126786, - "hash": "6bd846586b1acfc8124820c45177b4c24307582d" - }, - { - "nr": 126449, - "hash": "412170a89c7a0822d4b6b7b326489e14d2f77a68" - }, - { - "nr": 127012, - "hash": "c1d715520edc55e94cd8f2ec9fe94ed1c56b32d2" - }, - { - "nr": 127333, - "hash": "ca14443f0d844bb0635ea67eb870147b5d77d445" - }, - { - "nr": 124003, - "hash": "16c94a6c31a940e24f378d56b65cbb3dfcc24520" - }, - { - "nr": 126769, - "hash": "c913fb198b5f7f364a68cdb3b29cfe42ce8a608c" - }, - { - "nr": 124747, - "hash": "ae8c688b2bb7c4c215cdecc8a94ee4d23495411a" - }, - { - "nr": 126930, - "hash": "d8331226385b68daf3d2addedc192c04c9ac1ccb" - }, - { - "nr": 126644, - "hash": "e5d9c541f5c4f0a3151a17e4315db52c1c801a4e" - }, - { - "nr": 126665, - "hash": "8f20a9394857cd33507170e7219480ea7aeeb3aa" - }, - { - "nr": 127444, - "hash": "c532ff0126efd6fa4438817b4446f44ab864454a" - }, - { - "nr": 126997, - "hash": "f8b36f9a06f5d261221e5b1308586e208e88acbd" - }, - { - "nr": 126610, - "hash": "a8ea687e7dae7d6b37f9f2ae8209350f6d5ed64b" - }, - { - "nr": 127010, - "hash": "b0373ad5068105bdcdc2dc90710199fac50acbef" - }, - { - "nr": 127220, - "hash": "1d688f892482ce1866ce25eaa21b102487b6e4e3" - }, - { - "nr": 126995, - "hash": "4b6743073fcd2609ec681b0cc1aef26afa2c4477" - }, - { - "nr": 126627, - "hash": "e56f5cff44e028c39d17a28dca81c774add6b0b6" - }, - { - "nr": 126671, - "hash": "bad98fb8dc43a9bb1e2cd470854028c8d9644472" - }, - { - "nr": 126889, - "hash": "64a0580ba3d6458bd6ffc76ed966689de7d62329" - }, - { - "nr": 127491, - "hash": "ddd9db1afef7a03f99792a02748556df8f14da26" - }, - { - "nr": 125995, - "hash": "718b159e405bdc97e3b38deb40b3ee969d728840" - }, - { - "nr": 127093, - "hash": "e8314ad70c50e40ca246a47490592ec3ee65bd8c" - }, - { - "nr": 127151, - "hash": "6abba8419f9772f50055d37dd932f020db099f63" - }, - { - "nr": 127052, - "hash": "e9267d6fae22a9617c07a6ad43de1aca35de13c8" - }, - { - "nr": 126727, - "hash": "de476780be97d0c82f256c0b576ef787916ee2a1" - }, - { - "nr": 127242, - "hash": "c456393ab24bb8e63f76d63463745e85e52aae2a" - }, - { - "nr": 126359, - "hash": "4644def87e5c7998e630a688c88651fa060f8cf1" - }, - { - "nr": 127001, - "hash": "69f684047c028dda1bea42de0aca5969c91626ed" - }, - { - "nr": 126532, - "hash": "41c146eff6c80a032c0da01f27e34cc42108f3e3" - }, - { - "nr": 126839, - "hash": "d467d4626c8e1f0e8ec61b6a7f82a71d9e5af72e" - }, - { - "nr": 126343, - "hash": "7deb93955ba15ec32c7146ca081e9882ba06c746" - }, - { - "nr": 126038, - "hash": "67fbe3929a7c25fd3d06ebb519442723ae8e3d83" - }, - { - "nr": 126720, - "hash": "77f42c79ed37b5c46ef78a3b7ba638c16897e0c2" - }, - { - "nr": 127587, - "hash": "2048ee4353b614a90f6ac120092fc589c5ec80c8" - }, - { - "nr": 127167, - "hash": "ee447337027a1e86e6d496b2f0f7f28ed9af4c87" - }, - { - "nr": 127076, - "hash": "14978b105a5210c28815a1cb20ef9ea157b2d892" - }, - { - "nr": 126961, - "hash": "84871dc06442be096db200442ca318b2bca31e1f" - }, - { - "nr": 126590, - "hash": "316cb65f2da49c78812b50d8145900d5265ea12e" - }, - { - "nr": 126029, - "hash": "20c5d153b022b358b9274b9d94a6b656eab700a8" - }, - { - "nr": 126374, - "hash": "59de67ba57e48e8522d42d112c4c3268dd884cd9" - }, - { - "nr": 124947, - "hash": "8a37a9e951f01a9c17344ff4e03e304b52b1e490" - }, - { - "nr": 127512, - "hash": "d17dfeb36fa7f67fdd1386536ac64d1ea231e473" - }, - { - "nr": 125186, - "hash": "4a2ba449dfcfcedc6c9f92d4d3bc68434863949e" - }, - { - "nr": 126600, - "hash": "fc7a392651df949dd7163914e1b8669ca53c8cbd" - }, - { - "nr": 126945, - "hash": "0653b9d35bc627d227dfd9fea43b248a256e4f35" - }, - { - "nr": 127021, - "hash": "d0c793bdf7cfaf4b88276ee4705d1c6c253404cd" - }, - { - "nr": 127083, - "hash": "4834155af1ffbb3add5f7d7f1b6ec7ed0e90056d" - }, - { - "nr": 126914, - "hash": "c84a091cd428c40752b3d3522a046e80e633df5e" - }, - { - "nr": 126652, - "hash": "9a7764f246f521f41071f715cb474e118e41aef6" - }, - { - "nr": 127473, - "hash": "8fad18123f92c422f14b9471cbb199ade990ef2f" - }, - { - "nr": 126775, - "hash": "2a55d572517cd3c7ad4e832e1d0eb46509bed59f" - }, - { - "nr": 126863, - "hash": "a34fe7967bc482d4c97822f07976c8ea1f1cd220" - }, - { - "nr": 127016, - "hash": "3cd4e8ad79aed1dbe58d4eabcb5fb81127674e50" - }, - { - "nr": 127123, - "hash": "09feacb31ed4bcda4627b55883f54d57b8bee26c" - }, - { - "nr": 126745, - "hash": "317b179a8430a1c5b19a099accf56c2678146fe1" - }, - { - "nr": 126645, - "hash": "54f9014760e9172d06e54d2dd9730a6ea7184268" - }, - { - "nr": 127497, - "hash": "521f0bf2eacb9180eff6dd7cefcd79c2dce3f961" - }, - { - "nr": 127447, - "hash": "446fec1a4c0f842821a8fca32af5925a805dcd60" - }, - { - "nr": 126032, - "hash": "9d3a368b62a7e5ca5d1f239692ec86b5d4709ae5" - }, - { - "nr": 126743, - "hash": "363c7deb41c0e06c338c0afce5d9c005979fb37f" - }, - { - "nr": 127017, - "hash": "95f80023222311f24183389e95ba9fd3ea60cd1d" - }, - { - "nr": 126465, - "hash": "fd3ec789492b8ac7f4150fa697cf07aeb41d9fcd" - }, - { - "nr": 127524, - "hash": "698b870a29d62c3159a0d7945666e44bc3d3290d" - }, - { - "nr": 127009, - "hash": "2b1376ddc6886b089ac6e1fbbfc92353f37a965f" - }, - { - "nr": 126784, - "hash": "b0086c2ee62d15487fc79ed1dce511cdd3dcdd74" - }, - { - "nr": 126706, - "hash": "147ea9a804a86889203f9b8c30e551cc46148970" - }, - { - "nr": 126762, - "hash": "922dd12368cf129b4523a0048231eb8d6e7849ad" - }, - { - "nr": 126847, - "hash": "2508302983e5c7df4a39bbbe7d68f1e84267539b" - }, - { - "nr": 127008, - "hash": "8844cc160b9db484445b12fd69fef226613794fe" - }, - { - "nr": 126460, - "hash": "22555c33de9534722ad202df029e8ee9574af95c" - }, - { - "nr": 127711, - "hash": "af5027fe95d8b80077b9750a41cab164efdaff59" - }, - { - "nr": 126595, - "hash": "da8d2e0bddec879c1d63b9ffe30d290f1558ab21" - }, - { - "nr": 126977, - "hash": "92b6e230b63b7bff554632fe9199f379a70300bc" - }, - { - "nr": 127421, - "hash": "43b82481697ce8762997e4eda9fa8a506ea42829" - }, - { - "nr": 126596, - "hash": "62faace4a708df5678baf47588795d97ef4244a4" - }, - { - "nr": 126545, - "hash": "abd2b170ea0c6e379044c9ac7d6deb00387c8fe2" - }, - { - "nr": 127228, - "hash": "000c33934273228d68fc7b10378fbbb4de46bdbd" - }, - { - "nr": 126809, - "hash": "bb8ca385591f504568fb7395ed1afa36d2f02f72" - }, - { - "nr": 126976, - "hash": "5f84a82b40b12b82ac6cb08a18bf0621af1da710" - }, - { - "nr": 126529, - "hash": "34c3b9f20210ab2e9ee22a3ac200f4ff2793abc9" - }, - { - "nr": 126740, - "hash": "a98293af4221f5aa78268ecf3c8c2c1b6174ec09" - }, - { - "nr": 126553, - "hash": "d0ddaecbbc39898866fca8e258eaf30b92bfc1b5" - }, - { - "nr": 127230, - "hash": "c6f69758318f88def814a5dd9af9140c1a8e1132" - }, - { - "nr": 126999, - "hash": "063e2a1dddda336d9d7d6b44171474709ac68ad0" - }, - { - "nr": 126435, - "hash": "9a72f294423c973efbcd63c2dbea57b5631ed367" - }, - { - "nr": 126966, - "hash": "55f4182a86cdc25386cbadbf335100b40e04f8be" - }, - { - "nr": 126698, - "hash": "f6b13bb90da86c1d6a774cef3843e1ffe7a30d9b" - }, - { - "nr": 122890, - "hash": "d8a4be88880a7a13332db37ec09e5620ab073486" - }, - { - "nr": 127162, - "hash": "84fc51e97cf3faf1fb26a35bbc6e716137c6f66d" - }, - { - "nr": 126807, - "hash": "942313b15264834f479369ff0687647679a74030" - }, - { - "nr": 126841, - "hash": "5acf2f4132ed3babd1cbf06335310def630bf48f" - } - ] +{ + "mail": "rayandas91@gmail.com", + "name": "Rayan Das", + "date": 1728313621, + "prs": [ + { + "nr": 127417, + "hash": "a6c062a5391396946f2e96a43bb4b5ac52cfae38" + }, + { + "nr": 126512, + "hash": "d5fc2654029cbb99a7984a87b1c796d3fe761d94" + }, + { + "nr": 127551, + "hash": "b0fc53b2a8e47da9cf8f925d4855ab6b6c7d3a9d" + }, + { + "nr": 127279, + "hash": "82fd689ca337899146bb5d952bf100b5c2e8ab94" + }, + { + "nr": 126543, + "hash": "34ba639d1c8b123bc8bcbdd22a72eda71fc837e3" + }, + { + "nr": 125634, + "hash": "a135a8d33a4a112f859005fac885dbba333c1bf0" + }, + { + "nr": 126840, + "hash": "33b17c5592ab2cd13e1bade2eb7ea07d57f35838" + }, + { + "nr": 125796, + "hash": "7a65e86eec37eb91daa3006cc84ee7f1ca3ea9b6" + }, + { + "nr": 126773, + "hash": "59d87357cad5a669858a6b1ad7174c46e00c12ad" + }, + { + "nr": 127019, + "hash": "28489f9456d14587c52768918681043757a6117e" + }, + { + "nr": 115834, + "hash": "fa9606a20a5c843a0f5c0b630688eb71fae28226" + }, + { + "nr": 126996, + "hash": "103f021ca1713ba01b6674c638bda790161a7071" + }, + { + "nr": 126851, + "hash": "ba96b7c0b68d51165656cd6bf5ed9fe940c2b616" + }, + { + "nr": 126749, + "hash": "b4cd49ab278c8f22e422714c49b0ad210d6b2908" + }, + { + "nr": 126022, + "hash": "2654c4d8dcc20501ee51365835cb861c763c153c" + }, + { + "nr": 127598, + "hash": "f4d35e85ea8cf135c87db368ea875b7ff4b1def1" + }, + { + "nr": 127239, + "hash": "2bcbf1aa7501c4b00bd5a34159551e56f6b7ad22" + }, + { + "nr": 125372, + "hash": "2636ef50ed2e0ed1728c8352a8940976dd368d5b" + }, + { + "nr": 120586, + "hash": "0b8198dcb993507d07d2ff52217b0738e070902c" + }, + { + "nr": 126567, + "hash": "74f9b92af0b5d8bb73c351714eff5fa56b153dfd" + }, + { + "nr": 126561, + "hash": "f6e47c046b20a1e8aa66478eb1505402f586fe2f" + }, + { + "nr": 127464, + "hash": "1e93db9a270061890176a72e69133834bd72875c" + }, + { + "nr": 127427, + "hash": "e089159758754dd41c4fd36417cdf8fb54466dd1" + }, + { + "nr": 127388, + "hash": "b603214eaf7208f9b9db15de676944cdd52fbf32" + }, + { + "nr": 127058, + "hash": "794eefe0ee4c4ce5fdb5d39ce723ab2b53934f46" + }, + { + "nr": 126318, + "hash": "fe1ebb8ed91a2e75fbe2fe15fc9fdd348373ae00" + }, + { + "nr": 126913, + "hash": "c4b6b05af87f8898cc98f8bf209bc51a2e167e25" + }, + { + "nr": 126287, + "hash": "4c65ab25e0f424f189668f4dae0d2dee642a3837" + }, + { + "nr": 126488, + "hash": "4045b7235c817db95520adc05ea1a2baad97dad9" + }, + { + "nr": 127574, + "hash": "9e3fa517b08d65ca4245e29314f2f380962dd0d3" + }, + { + "nr": 126733, + "hash": "95689625de9851778be378f542f37a7b3b313218" + }, + { + "nr": 127327, + "hash": "3ea75858e0f77ae0535969f56890cb65d407d66b" + }, + { + "nr": 125398, + "hash": "fa82d7558d0557406e030f881f688b397b5a214d" + }, + { + "nr": 126962, + "hash": "4f1b28028d92f2f2f77f0e4a9ea9aa4f136f7db0" + }, + { + "nr": 126538, + "hash": "43222c9887b2f07b378110ffa3b9503a462e93fc" + }, + { + "nr": 124703, + "hash": "7c848293bb170352ca808d856fe2f48ca69b7ed1" + }, + { + "nr": 127378, + "hash": "9fc2744fcdeda021c0c22656f01fb6ac9b2b5e9b" + }, + { + "nr": 114136, + "hash": "e4cc03501cffe48b8d09136b153ca68a8c45b6ac" + }, + { + "nr": 127096, + "hash": "5616e7ce287520c7610663b23965721fc3f35a7e" + }, + { + "nr": 126786, + "hash": "6bd846586b1acfc8124820c45177b4c24307582d" + }, + { + "nr": 126449, + "hash": "412170a89c7a0822d4b6b7b326489e14d2f77a68" + }, + { + "nr": 127012, + "hash": "c1d715520edc55e94cd8f2ec9fe94ed1c56b32d2" + }, + { + "nr": 127333, + "hash": "ca14443f0d844bb0635ea67eb870147b5d77d445" + }, + { + "nr": 124003, + "hash": "16c94a6c31a940e24f378d56b65cbb3dfcc24520" + }, + { + "nr": 126769, + "hash": "c913fb198b5f7f364a68cdb3b29cfe42ce8a608c" + }, + { + "nr": 124747, + "hash": "ae8c688b2bb7c4c215cdecc8a94ee4d23495411a" + }, + { + "nr": 126930, + "hash": "d8331226385b68daf3d2addedc192c04c9ac1ccb" + }, + { + "nr": 126644, + "hash": "e5d9c541f5c4f0a3151a17e4315db52c1c801a4e" + }, + { + "nr": 126665, + "hash": "8f20a9394857cd33507170e7219480ea7aeeb3aa" + }, + { + "nr": 127444, + "hash": "c532ff0126efd6fa4438817b4446f44ab864454a" + }, + { + "nr": 126997, + "hash": "f8b36f9a06f5d261221e5b1308586e208e88acbd" + }, + { + "nr": 126610, + "hash": "a8ea687e7dae7d6b37f9f2ae8209350f6d5ed64b" + }, + { + "nr": 127010, + "hash": "b0373ad5068105bdcdc2dc90710199fac50acbef" + }, + { + "nr": 127220, + "hash": "1d688f892482ce1866ce25eaa21b102487b6e4e3" + }, + { + "nr": 126995, + "hash": "4b6743073fcd2609ec681b0cc1aef26afa2c4477" + }, + { + "nr": 126627, + "hash": "e56f5cff44e028c39d17a28dca81c774add6b0b6" + }, + { + "nr": 126671, + "hash": "bad98fb8dc43a9bb1e2cd470854028c8d9644472" + }, + { + "nr": 126889, + "hash": "64a0580ba3d6458bd6ffc76ed966689de7d62329" + }, + { + "nr": 127491, + "hash": "ddd9db1afef7a03f99792a02748556df8f14da26" + }, + { + "nr": 125995, + "hash": "718b159e405bdc97e3b38deb40b3ee969d728840" + }, + { + "nr": 127093, + "hash": "e8314ad70c50e40ca246a47490592ec3ee65bd8c" + }, + { + "nr": 127151, + "hash": "6abba8419f9772f50055d37dd932f020db099f63" + }, + { + "nr": 127052, + "hash": "e9267d6fae22a9617c07a6ad43de1aca35de13c8" + }, + { + "nr": 126727, + "hash": "de476780be97d0c82f256c0b576ef787916ee2a1" + }, + { + "nr": 127242, + "hash": "c456393ab24bb8e63f76d63463745e85e52aae2a" + }, + { + "nr": 126359, + "hash": "4644def87e5c7998e630a688c88651fa060f8cf1" + }, + { + "nr": 127001, + "hash": "69f684047c028dda1bea42de0aca5969c91626ed" + }, + { + "nr": 126532, + "hash": "41c146eff6c80a032c0da01f27e34cc42108f3e3" + }, + { + "nr": 126839, + "hash": "d467d4626c8e1f0e8ec61b6a7f82a71d9e5af72e" + }, + { + "nr": 126343, + "hash": "7deb93955ba15ec32c7146ca081e9882ba06c746" + }, + { + "nr": 126038, + "hash": "67fbe3929a7c25fd3d06ebb519442723ae8e3d83" + }, + { + "nr": 126720, + "hash": "77f42c79ed37b5c46ef78a3b7ba638c16897e0c2" + }, + { + "nr": 127587, + "hash": "2048ee4353b614a90f6ac120092fc589c5ec80c8" + }, + { + "nr": 127167, + "hash": "ee447337027a1e86e6d496b2f0f7f28ed9af4c87" + }, + { + "nr": 127076, + "hash": "14978b105a5210c28815a1cb20ef9ea157b2d892" + }, + { + "nr": 126961, + "hash": "84871dc06442be096db200442ca318b2bca31e1f" + }, + { + "nr": 126590, + "hash": "316cb65f2da49c78812b50d8145900d5265ea12e" + }, + { + "nr": 126029, + "hash": "20c5d153b022b358b9274b9d94a6b656eab700a8" + }, + { + "nr": 126374, + "hash": "59de67ba57e48e8522d42d112c4c3268dd884cd9" + }, + { + "nr": 124947, + "hash": "8a37a9e951f01a9c17344ff4e03e304b52b1e490" + }, + { + "nr": 127512, + "hash": "d17dfeb36fa7f67fdd1386536ac64d1ea231e473" + }, + { + "nr": 125186, + "hash": "4a2ba449dfcfcedc6c9f92d4d3bc68434863949e" + }, + { + "nr": 126600, + "hash": "fc7a392651df949dd7163914e1b8669ca53c8cbd" + }, + { + "nr": 126945, + "hash": "0653b9d35bc627d227dfd9fea43b248a256e4f35" + }, + { + "nr": 127021, + "hash": "d0c793bdf7cfaf4b88276ee4705d1c6c253404cd" + }, + { + "nr": 127083, + "hash": "4834155af1ffbb3add5f7d7f1b6ec7ed0e90056d" + }, + { + "nr": 126914, + "hash": "c84a091cd428c40752b3d3522a046e80e633df5e" + }, + { + "nr": 126652, + "hash": "9a7764f246f521f41071f715cb474e118e41aef6" + }, + { + "nr": 127473, + "hash": "8fad18123f92c422f14b9471cbb199ade990ef2f" + }, + { + "nr": 126775, + "hash": "2a55d572517cd3c7ad4e832e1d0eb46509bed59f" + }, + { + "nr": 126863, + "hash": "a34fe7967bc482d4c97822f07976c8ea1f1cd220" + }, + { + "nr": 127016, + "hash": "3cd4e8ad79aed1dbe58d4eabcb5fb81127674e50" + }, + { + "nr": 127123, + "hash": "09feacb31ed4bcda4627b55883f54d57b8bee26c" + }, + { + "nr": 126745, + "hash": "317b179a8430a1c5b19a099accf56c2678146fe1" + }, + { + "nr": 126645, + "hash": "54f9014760e9172d06e54d2dd9730a6ea7184268" + }, + { + "nr": 127497, + "hash": "521f0bf2eacb9180eff6dd7cefcd79c2dce3f961" + }, + { + "nr": 127447, + "hash": "446fec1a4c0f842821a8fca32af5925a805dcd60" + }, + { + "nr": 126032, + "hash": "9d3a368b62a7e5ca5d1f239692ec86b5d4709ae5" + }, + { + "nr": 126743, + "hash": "363c7deb41c0e06c338c0afce5d9c005979fb37f" + }, + { + "nr": 127017, + "hash": "95f80023222311f24183389e95ba9fd3ea60cd1d" + }, + { + "nr": 126465, + "hash": "fd3ec789492b8ac7f4150fa697cf07aeb41d9fcd" + }, + { + "nr": 127524, + "hash": "698b870a29d62c3159a0d7945666e44bc3d3290d" + }, + { + "nr": 127009, + "hash": "2b1376ddc6886b089ac6e1fbbfc92353f37a965f" + }, + { + "nr": 126784, + "hash": "b0086c2ee62d15487fc79ed1dce511cdd3dcdd74" + }, + { + "nr": 126706, + "hash": "147ea9a804a86889203f9b8c30e551cc46148970" + }, + { + "nr": 126762, + "hash": "922dd12368cf129b4523a0048231eb8d6e7849ad" + }, + { + "nr": 126847, + "hash": "2508302983e5c7df4a39bbbe7d68f1e84267539b" + }, + { + "nr": 127008, + "hash": "8844cc160b9db484445b12fd69fef226613794fe" + }, + { + "nr": 126460, + "hash": "22555c33de9534722ad202df029e8ee9574af95c" + }, + { + "nr": 127711, + "hash": "af5027fe95d8b80077b9750a41cab164efdaff59" + }, + { + "nr": 126595, + "hash": "da8d2e0bddec879c1d63b9ffe30d290f1558ab21" + }, + { + "nr": 126977, + "hash": "92b6e230b63b7bff554632fe9199f379a70300bc" + }, + { + "nr": 127421, + "hash": "43b82481697ce8762997e4eda9fa8a506ea42829" + }, + { + "nr": 126596, + "hash": "62faace4a708df5678baf47588795d97ef4244a4" + }, + { + "nr": 126545, + "hash": "abd2b170ea0c6e379044c9ac7d6deb00387c8fe2" + }, + { + "nr": 127228, + "hash": "000c33934273228d68fc7b10378fbbb4de46bdbd" + }, + { + "nr": 126809, + "hash": "bb8ca385591f504568fb7395ed1afa36d2f02f72" + }, + { + "nr": 126976, + "hash": "5f84a82b40b12b82ac6cb08a18bf0621af1da710" + }, + { + "nr": 126529, + "hash": "34c3b9f20210ab2e9ee22a3ac200f4ff2793abc9" + }, + { + "nr": 126740, + "hash": "a98293af4221f5aa78268ecf3c8c2c1b6174ec09" + }, + { + "nr": 126553, + "hash": "d0ddaecbbc39898866fca8e258eaf30b92bfc1b5" + }, + { + "nr": 127230, + "hash": "c6f69758318f88def814a5dd9af9140c1a8e1132" + }, + { + "nr": 126999, + "hash": "063e2a1dddda336d9d7d6b44171474709ac68ad0" + }, + { + "nr": 126435, + "hash": "9a72f294423c973efbcd63c2dbea57b5631ed367" + }, + { + "nr": 126966, + "hash": "55f4182a86cdc25386cbadbf335100b40e04f8be" + }, + { + "nr": 126698, + "hash": "f6b13bb90da86c1d6a774cef3843e1ffe7a30d9b" + }, + { + "nr": 122890, + "hash": "d8a4be88880a7a13332db37ec09e5620ab073486" + }, + { + "nr": 127162, + "hash": "84fc51e97cf3faf1fb26a35bbc6e716137c6f66d" + }, + { + "nr": 126807, + "hash": "942313b15264834f479369ff0687647679a74030" + }, + { + "nr": 126841, + "hash": "5acf2f4132ed3babd1cbf06335310def630bf48f" + } + ] } \ No newline at end of file diff --git a/releases/release-1.32/release-notes/sessions/maps-1729531290.json b/releases/release-1.32/release-notes/sessions/maps-1729531290.json index 5665ad148a8..7a2f3bddc18 100644 --- a/releases/release-1.32/release-notes/sessions/maps-1729531290.json +++ b/releases/release-1.32/release-notes/sessions/maps-1729531290.json @@ -1,171 +1,171 @@ -{ - "mail": "rayandas91@gmail.com", - "name": "Rayan Das", - "date": 1729531290, - "prs": [ - { - "nr": 125923, - "hash": "adc4d7b8f67d31ef9ee9c31b4e3813673470664d" - }, - { - "nr": 127976, - "hash": "6f93d3a27a50b6b16aa4db8f3e889c21144f9f8e" - }, - { - "nr": 127663, - "hash": "afa9da4de43bd4c1717caf0eb01357594b0791d4" - }, - { - "nr": 128062, - "hash": "dee57882fae00ae56da0ff7ed0e8037c970f8bfe" - }, - { - "nr": 128081, - "hash": "5bb33fbf3b81ee723df0b6e26a50e70afea3d175" - }, - { - "nr": 127489, - "hash": "c6021623a61c80d9c80d2b64bb05d4db479b086a" - }, - { - "nr": 127673, - "hash": "185aaabd7ab3570f41af7008b7f9126188d256aa" - }, - { - "nr": 128053, - "hash": "76ffd664efa078bb4b980b0e0557d126cb372bb0" - }, - { - "nr": 125070, - "hash": "c9593030a1431c8acb9307f9de78cdf19de2564f" - }, - { - "nr": 125171, - "hash": "61271fb846e9663b2fe44e7c4f9d50c45dcd9adc" - }, - { - "nr": 128099, - "hash": "629fcbe9eb8920b72870196b8453976a8b2e3bf0" - }, - { - "nr": 127930, - "hash": "0d80afec66a8a1dcf1deb76cc1e3ad481ab977bd" - }, - { - "nr": 127634, - "hash": "deff1e2369b0583d415bb4f154c36563ef926f0c" - }, - { - "nr": 125118, - "hash": "273dd007e037f27cc4af76fa36df6c952c2334d0" - }, - { - "nr": 125982, - "hash": "5c3cdb0a3ebcd9d5426447f44d20a53c723e53b7" - }, - { - "nr": 128038, - "hash": "9f200db0233836f801f964badc87d7ca73f22071" - }, - { - "nr": 126575, - "hash": "8f8e70edd948862cb0368f7d2ea6867333cbfdde" - }, - { - "nr": 128052, - "hash": "7988809a23788ba63e13e48b44472c221c32525c" - }, - { - "nr": 127650, - "hash": "045577bf718737b4b56119cb86a944c15fad61fb" - }, - { - "nr": 127302, - "hash": "1c5f6c8a6af2b816c838f0f50d531d7926aaa4c0" - }, - { - "nr": 128118, - "hash": "765f995187dbe4ad54d52aad6d0a698aca6c02d1" - }, - { - "nr": 126776, - "hash": "ac6ca5389b6e47587ac541d73c13a3309727c5b8" - }, - { - "nr": 127348, - "hash": "8a85fdfab51b17835d0a7e5e1ec6dad6422f8540" - }, - { - "nr": 128009, - "hash": "e4fe0470dfb3403a640a59474a746f1c19fb3583" - }, - { - "nr": 127611, - "hash": "caefe71587135d7b12fd1cf8b08103beb15bba42" - }, - { - "nr": 128110, - "hash": "781d2624d7e713429325c2fd4a5f6d564669314c" - }, - { - "nr": 127669, - "hash": "e8557a27be61e7610abfe5f6b3e4d58f5a780256" - }, - { - "nr": 124227, - "hash": "66e010b360c9266e39fa5757c2ce5b3ac3775de8" - }, - { - "nr": 127919, - "hash": "b1f183dca96b01d34b65f5764261d29f63fb2820" - }, - { - "nr": 128073, - "hash": "a49ab2b11389ca376de402174bf4aa164d3b703c" - }, - { - "nr": 127861, - "hash": "e41004be0a4af068e4e28830eed0a5fd9314f1a7" - }, - { - "nr": 127786, - "hash": "9783ecea3e9d5c4c855bc338379f5c4cef2a676a" - }, - { - "nr": 126924, - "hash": "86169d9d9a26b460bff3dfc97fe8ea8f9799128f" - }, - { - "nr": 127869, - "hash": "8bc309b259a22e51327e7d07cd292c80dcecc8b4" - }, - { - "nr": 127878, - "hash": "bed5810bb99efe936ffceee1b29e40976184785b" - }, - { - "nr": 128011, - "hash": "f3c1bd583303ebca6fbd40741616e87a9585fde8" - }, - { - "nr": 127787, - "hash": "5da7a2adf0d34bc8caeacfd9f6734a4abe079ce2" - }, - { - "nr": 127780, - "hash": "9ffefb08e96172b44ca4aee9c2b5303673230144" - }, - { - "nr": 127965, - "hash": "96b0d5ada80d4834a654c09fef4e2772323dffde" - }, - { - "nr": 128035, - "hash": "b6bf8ae7d35fc7041c1a91195dc1faf4166ba455" - }, - { - "nr": 128149, - "hash": "6daee82069df4ab8cafe14766db581b3a0fbafac" - } - ] +{ + "mail": "rayandas91@gmail.com", + "name": "Rayan Das", + "date": 1729531290, + "prs": [ + { + "nr": 125923, + "hash": "adc4d7b8f67d31ef9ee9c31b4e3813673470664d" + }, + { + "nr": 127976, + "hash": "6f93d3a27a50b6b16aa4db8f3e889c21144f9f8e" + }, + { + "nr": 127663, + "hash": "afa9da4de43bd4c1717caf0eb01357594b0791d4" + }, + { + "nr": 128062, + "hash": "dee57882fae00ae56da0ff7ed0e8037c970f8bfe" + }, + { + "nr": 128081, + "hash": "5bb33fbf3b81ee723df0b6e26a50e70afea3d175" + }, + { + "nr": 127489, + "hash": "c6021623a61c80d9c80d2b64bb05d4db479b086a" + }, + { + "nr": 127673, + "hash": "185aaabd7ab3570f41af7008b7f9126188d256aa" + }, + { + "nr": 128053, + "hash": "76ffd664efa078bb4b980b0e0557d126cb372bb0" + }, + { + "nr": 125070, + "hash": "c9593030a1431c8acb9307f9de78cdf19de2564f" + }, + { + "nr": 125171, + "hash": "61271fb846e9663b2fe44e7c4f9d50c45dcd9adc" + }, + { + "nr": 128099, + "hash": "629fcbe9eb8920b72870196b8453976a8b2e3bf0" + }, + { + "nr": 127930, + "hash": "0d80afec66a8a1dcf1deb76cc1e3ad481ab977bd" + }, + { + "nr": 127634, + "hash": "deff1e2369b0583d415bb4f154c36563ef926f0c" + }, + { + "nr": 125118, + "hash": "273dd007e037f27cc4af76fa36df6c952c2334d0" + }, + { + "nr": 125982, + "hash": "5c3cdb0a3ebcd9d5426447f44d20a53c723e53b7" + }, + { + "nr": 128038, + "hash": "9f200db0233836f801f964badc87d7ca73f22071" + }, + { + "nr": 126575, + "hash": "8f8e70edd948862cb0368f7d2ea6867333cbfdde" + }, + { + "nr": 128052, + "hash": "7988809a23788ba63e13e48b44472c221c32525c" + }, + { + "nr": 127650, + "hash": "045577bf718737b4b56119cb86a944c15fad61fb" + }, + { + "nr": 127302, + "hash": "1c5f6c8a6af2b816c838f0f50d531d7926aaa4c0" + }, + { + "nr": 128118, + "hash": "765f995187dbe4ad54d52aad6d0a698aca6c02d1" + }, + { + "nr": 126776, + "hash": "ac6ca5389b6e47587ac541d73c13a3309727c5b8" + }, + { + "nr": 127348, + "hash": "8a85fdfab51b17835d0a7e5e1ec6dad6422f8540" + }, + { + "nr": 128009, + "hash": "e4fe0470dfb3403a640a59474a746f1c19fb3583" + }, + { + "nr": 127611, + "hash": "caefe71587135d7b12fd1cf8b08103beb15bba42" + }, + { + "nr": 128110, + "hash": "781d2624d7e713429325c2fd4a5f6d564669314c" + }, + { + "nr": 127669, + "hash": "e8557a27be61e7610abfe5f6b3e4d58f5a780256" + }, + { + "nr": 124227, + "hash": "66e010b360c9266e39fa5757c2ce5b3ac3775de8" + }, + { + "nr": 127919, + "hash": "b1f183dca96b01d34b65f5764261d29f63fb2820" + }, + { + "nr": 128073, + "hash": "a49ab2b11389ca376de402174bf4aa164d3b703c" + }, + { + "nr": 127861, + "hash": "e41004be0a4af068e4e28830eed0a5fd9314f1a7" + }, + { + "nr": 127786, + "hash": "9783ecea3e9d5c4c855bc338379f5c4cef2a676a" + }, + { + "nr": 126924, + "hash": "86169d9d9a26b460bff3dfc97fe8ea8f9799128f" + }, + { + "nr": 127869, + "hash": "8bc309b259a22e51327e7d07cd292c80dcecc8b4" + }, + { + "nr": 127878, + "hash": "bed5810bb99efe936ffceee1b29e40976184785b" + }, + { + "nr": 128011, + "hash": "f3c1bd583303ebca6fbd40741616e87a9585fde8" + }, + { + "nr": 127787, + "hash": "5da7a2adf0d34bc8caeacfd9f6734a4abe079ce2" + }, + { + "nr": 127780, + "hash": "9ffefb08e96172b44ca4aee9c2b5303673230144" + }, + { + "nr": 127965, + "hash": "96b0d5ada80d4834a654c09fef4e2772323dffde" + }, + { + "nr": 128035, + "hash": "b6bf8ae7d35fc7041c1a91195dc1faf4166ba455" + }, + { + "nr": 128149, + "hash": "6daee82069df4ab8cafe14766db581b3a0fbafac" + } + ] } \ No newline at end of file diff --git a/releases/release-1.32/release-notes/sessions/maps-1731440047.json b/releases/release-1.32/release-notes/sessions/maps-1731440047.json index 649fdfc7754..e66232a888d 100644 --- a/releases/release-1.32/release-notes/sessions/maps-1731440047.json +++ b/releases/release-1.32/release-notes/sessions/maps-1731440047.json @@ -1,187 +1,187 @@ -{ - "mail": "lvishpal408@gmail.com", - "name": "Lavish pal", - "date": 1731440047, - "prs": [ - { - "nr": 124389, - "hash": "2af627050acb9f9a213c1d2885d2bd3c3cd0fb49" - }, - { - "nr": 128317, - "hash": "7c6560a9c112c9fe371296fc7701bb5cdc2a4fb3" - }, - { - "nr": 128083, - "hash": "987025961fee97a87b71030e76104a226d4d24c5" - }, - { - "nr": 126953, - "hash": "9c5eed3868bc8c08d559d064aa784b74bed6bb22" - }, - { - "nr": 127341, - "hash": "92d2181ccea5602f173e58719d5e71adc3f70106" - }, - { - "nr": 128259, - "hash": "fa7471470e015db57b4ba0a5324eafb918e365d9" - }, - { - "nr": 125337, - "hash": "88d5e702f312d7a0dda6f14d8146f005673ef1e9" - }, - { - "nr": 128124, - "hash": "e3e401b53377ca3ded186c831da4ec5f99c022b2" - }, - { - "nr": 126562, - "hash": "274196154badf526a890c3ad0a175670480658e3" - }, - { - "nr": 127155, - "hash": "3662f51cc2487382f6654982fe2f24035b9b56b8" - }, - { - "nr": 128318, - "hash": "1725ac1a7fe36920bc5f0337ab59e7672073674f" - }, - { - "nr": 128244, - "hash": "b4cb708457c9fe81a1b5440046b9f71ecd744f9a" - }, - { - "nr": 127565, - "hash": "bba1abe35d71a6aa81742dfc9589e79582394064" - }, - { - "nr": 119089, - "hash": "81db6adbeda1639e1ad4cc4be7553b6ec3bc4227" - }, - { - "nr": 128179, - "hash": "f31ac9c627778dd1b0e8c08f57d1a818f5c00ba1" - }, - { - "nr": 124285, - "hash": "7d3108a0fb0f5e3434c1d59f0bc7d704af706682" - }, - { - "nr": 128197, - "hash": "56b878bccc1fa7c8211715a19875361f0cc4e31c" - }, - { - "nr": 128172, - "hash": "0f26450414eadc1d042fde69bb86d190d612109b" - }, - { - "nr": 126347, - "hash": "e7569a485b27c373a6381ff7f25088067dd1da84" - }, - { - "nr": 128305, - "hash": "84dbdc51dedb10532734e61f7b244d93ed71af9e" - }, - { - "nr": 127918, - "hash": "d61429a371936b0d2a7c339902694474be7fb09f" - }, - { - "nr": 128168, - "hash": "4bc29034bc1710cd25bf9dc48a28531167bc0078" - }, - { - "nr": 127566, - "hash": "95ca5659cb579b0c24ab12d3d28df229d71a7344" - }, - { - "nr": 127661, - "hash": "efd1be5a899c375631466e76beceeac464c0bb54" - }, - { - "nr": 126644, - "hash": "750163ad03a4b96de3942c01e3d2e09e72db2a6d" - }, - { - "nr": 128169, - "hash": "8cfe69799fc2c8291442426df4fcb7769d9bcd6d" - }, - { - "nr": 126543, - "hash": "a8224910ce2829fa601f4ad98a8df7a57696f4f9" - }, - { - "nr": 127898, - "hash": "30f95b5f95b73a2c070f24f70137d373a854746c" - }, - { - "nr": 126957, - "hash": "22f83accfabffff7b0f93fd8a57294470d617409" - }, - { - "nr": 128091, - "hash": "08f6f3e2f11e99cbb5b917ee253cd9be987b3a1a" - }, - { - "nr": 128182, - "hash": "99ab33ea5f0801e5f878d24cc4a185c1240ccaf4" - }, - { - "nr": 127239, - "hash": "d898200cd8cee75bff806134868ecf65e3b98b17" - }, - { - "nr": 127187, - "hash": "e9a4c537bdd9977d25eb21b43dce6d2c042cde65" - }, - { - "nr": 128336, - "hash": "05c7069b3b6516ddcfaca1dfed6c117a11fa7f39" - }, - { - "nr": 127402, - "hash": "ec919d924092d3ff4709f2c93ec80631aed0447a" - }, - { - "nr": 128013, - "hash": "2a7c3e333a11487d0aad0b8c97c058e1ee46a03f" - }, - { - "nr": 128029, - "hash": "2624496270d1127d3fd96c1f53dbb1d2b2cd5646" - }, - { - "nr": 128119, - "hash": "2f191efa0b3fd3da065ff7eaa3b19f44698928e2" - }, - { - "nr": 128003, - "hash": "65bd534837128e3c4df90aca207e44fac447451f" - }, - { - "nr": 126981, - "hash": "8ccd0fa7eaff2bd987138f6166f1ef1da5bcc1df" - }, - { - "nr": 128100, - "hash": "71cdd1e63e61b0ee6a675d2596fcb4bded6c3183" - }, - { - "nr": 128101, - "hash": "0d0ef956587d6de521e5e0a4149b7ec76b37833c" - }, - { - "nr": 128139, - "hash": "20b430710f9c4ee8e3dd69fba0db306912664f7e" - }, - { - "nr": 126976, - "hash": "3d1e7b516c8e27cc6d8d152ee994b7c82943295f" - }, - { - "nr": 126897, - "hash": "7384c783309afcbdf1571b9067503db6943c4527" - } - ] +{ + "mail": "lvishpal408@gmail.com", + "name": "Lavish pal", + "date": 1731440047, + "prs": [ + { + "nr": 124389, + "hash": "2af627050acb9f9a213c1d2885d2bd3c3cd0fb49" + }, + { + "nr": 128317, + "hash": "7c6560a9c112c9fe371296fc7701bb5cdc2a4fb3" + }, + { + "nr": 128083, + "hash": "987025961fee97a87b71030e76104a226d4d24c5" + }, + { + "nr": 126953, + "hash": "9c5eed3868bc8c08d559d064aa784b74bed6bb22" + }, + { + "nr": 127341, + "hash": "92d2181ccea5602f173e58719d5e71adc3f70106" + }, + { + "nr": 128259, + "hash": "fa7471470e015db57b4ba0a5324eafb918e365d9" + }, + { + "nr": 125337, + "hash": "88d5e702f312d7a0dda6f14d8146f005673ef1e9" + }, + { + "nr": 128124, + "hash": "e3e401b53377ca3ded186c831da4ec5f99c022b2" + }, + { + "nr": 126562, + "hash": "274196154badf526a890c3ad0a175670480658e3" + }, + { + "nr": 127155, + "hash": "3662f51cc2487382f6654982fe2f24035b9b56b8" + }, + { + "nr": 128318, + "hash": "1725ac1a7fe36920bc5f0337ab59e7672073674f" + }, + { + "nr": 128244, + "hash": "b4cb708457c9fe81a1b5440046b9f71ecd744f9a" + }, + { + "nr": 127565, + "hash": "bba1abe35d71a6aa81742dfc9589e79582394064" + }, + { + "nr": 119089, + "hash": "81db6adbeda1639e1ad4cc4be7553b6ec3bc4227" + }, + { + "nr": 128179, + "hash": "f31ac9c627778dd1b0e8c08f57d1a818f5c00ba1" + }, + { + "nr": 124285, + "hash": "7d3108a0fb0f5e3434c1d59f0bc7d704af706682" + }, + { + "nr": 128197, + "hash": "56b878bccc1fa7c8211715a19875361f0cc4e31c" + }, + { + "nr": 128172, + "hash": "0f26450414eadc1d042fde69bb86d190d612109b" + }, + { + "nr": 126347, + "hash": "e7569a485b27c373a6381ff7f25088067dd1da84" + }, + { + "nr": 128305, + "hash": "84dbdc51dedb10532734e61f7b244d93ed71af9e" + }, + { + "nr": 127918, + "hash": "d61429a371936b0d2a7c339902694474be7fb09f" + }, + { + "nr": 128168, + "hash": "4bc29034bc1710cd25bf9dc48a28531167bc0078" + }, + { + "nr": 127566, + "hash": "95ca5659cb579b0c24ab12d3d28df229d71a7344" + }, + { + "nr": 127661, + "hash": "efd1be5a899c375631466e76beceeac464c0bb54" + }, + { + "nr": 126644, + "hash": "750163ad03a4b96de3942c01e3d2e09e72db2a6d" + }, + { + "nr": 128169, + "hash": "8cfe69799fc2c8291442426df4fcb7769d9bcd6d" + }, + { + "nr": 126543, + "hash": "a8224910ce2829fa601f4ad98a8df7a57696f4f9" + }, + { + "nr": 127898, + "hash": "30f95b5f95b73a2c070f24f70137d373a854746c" + }, + { + "nr": 126957, + "hash": "22f83accfabffff7b0f93fd8a57294470d617409" + }, + { + "nr": 128091, + "hash": "08f6f3e2f11e99cbb5b917ee253cd9be987b3a1a" + }, + { + "nr": 128182, + "hash": "99ab33ea5f0801e5f878d24cc4a185c1240ccaf4" + }, + { + "nr": 127239, + "hash": "d898200cd8cee75bff806134868ecf65e3b98b17" + }, + { + "nr": 127187, + "hash": "e9a4c537bdd9977d25eb21b43dce6d2c042cde65" + }, + { + "nr": 128336, + "hash": "05c7069b3b6516ddcfaca1dfed6c117a11fa7f39" + }, + { + "nr": 127402, + "hash": "ec919d924092d3ff4709f2c93ec80631aed0447a" + }, + { + "nr": 128013, + "hash": "2a7c3e333a11487d0aad0b8c97c058e1ee46a03f" + }, + { + "nr": 128029, + "hash": "2624496270d1127d3fd96c1f53dbb1d2b2cd5646" + }, + { + "nr": 128119, + "hash": "2f191efa0b3fd3da065ff7eaa3b19f44698928e2" + }, + { + "nr": 128003, + "hash": "65bd534837128e3c4df90aca207e44fac447451f" + }, + { + "nr": 126981, + "hash": "8ccd0fa7eaff2bd987138f6166f1ef1da5bcc1df" + }, + { + "nr": 128100, + "hash": "71cdd1e63e61b0ee6a675d2596fcb4bded6c3183" + }, + { + "nr": 128101, + "hash": "0d0ef956587d6de521e5e0a4149b7ec76b37833c" + }, + { + "nr": 128139, + "hash": "20b430710f9c4ee8e3dd69fba0db306912664f7e" + }, + { + "nr": 126976, + "hash": "3d1e7b516c8e27cc6d8d152ee994b7c82943295f" + }, + { + "nr": 126897, + "hash": "7384c783309afcbdf1571b9067503db6943c4527" + } + ] } \ No newline at end of file diff --git a/releases/release-1.32/release-notes/sessions/maps-1732261652.json b/releases/release-1.32/release-notes/sessions/maps-1732261652.json index 30e0a26ac2f..55566a47c57 100644 --- a/releases/release-1.32/release-notes/sessions/maps-1732261652.json +++ b/releases/release-1.32/release-notes/sessions/maps-1732261652.json @@ -1,135 +1,135 @@ -{ - "mail": "snehayad@buffalo.edu", - "name": "sn3hay", - "date": 1732261652, - "prs": [ - { - "nr": 127146, - "hash": "1bc0fba740a478fc0723a583e4d12eaa7606b5b3" - }, - { - "nr": 128396, - "hash": "0cc3d4dbc374eda54abe025fd508893c0fbdb3f8" - }, - { - "nr": 125296, - "hash": "873487222952c229dadcd082450ef4a20c21d70d" - }, - { - "nr": 126894, - "hash": "a3b86f79b52f5e0896c36fb9d85d53fdb0269a01" - }, - { - "nr": 128307, - "hash": "ab888e567c74aca648ba55f04e8dfcfca2a88d99" - }, - { - "nr": 128474, - "hash": "f9350b1ade19dcd8bc8f5292c04ba3aa71d9ff21" - }, - { - "nr": 127744, - "hash": "54e1ef27b2b6de93b631552177ebaf8a46a91dcf" - }, - { - "nr": 126862, - "hash": "a6a5c6cb5f4d6a80547d2b3bc1cd942766f4ad23" - }, - { - "nr": 128430, - "hash": "f258a4cc38bb8e61f7951dfeb467643d5829b2d5" - }, - { - "nr": 128342, - "hash": "f4e236dfabe6916c5654cc43f13c3535e55a1186" - }, - { - "nr": 124216, - "hash": "82e1aab49fd3fdf6f8a9de8e71e944335fd81731" - }, - { - "nr": 127277, - "hash": "c1e62b92569806928db67a96f0eb20ce96a3270e" - }, - { - "nr": 127318, - "hash": "cb66cc2259a7cb5901df2ac62ffe6de7376628af" - }, - { - "nr": 128046, - "hash": "c03f21c4d258cf86cf3d9f5be976da1156160a5c" - }, - { - "nr": 128463, - "hash": "fdd5075f624834545658823d18c908c80319ebfd" - }, - { - "nr": 128399, - "hash": "77f1d1d74ee423b418664ca3b4670995eb2aa74d" - }, - { - "nr": 127094, - "hash": "fdc4045cb159bcd672e21c7d0322f317be5cdb3e" - }, - { - "nr": 128359, - "hash": "db6d68d42fc3d13322062d592ce4b4fef7fe060d" - }, - { - "nr": 127134, - "hash": "8ad409a4ec859698097926852e550bb0dbd65724" - }, - { - "nr": 128533, - "hash": "30d95d37893c9e6e2b4ee5954285f505d393e9ac" - }, - { - "nr": 127483, - "hash": "1d68861dde6ead7991e950f63737b00a06e40226" - }, - { - "nr": 128219, - "hash": "f1b213dff05cb778d5f919a324982d925e688a22" - }, - { - "nr": 128344, - "hash": "54f21e95872907b9924af70500216d7a786e1032" - }, - { - "nr": 128444, - "hash": "e4d2e2920ea18d9c383bfd03fb82c5f36d7ae818" - }, - { - "nr": 126533, - "hash": "aa4e97ac08e2863711d0412269a3dfae608bb9fb" - }, - { - "nr": 127981, - "hash": "0db616fb42d130547b041c752c01ec13c73233d3" - }, - { - "nr": 128517, - "hash": "aa2375f2f5768d309f940658e49b6619f0331d7e" - }, - { - "nr": 126620, - "hash": "9bd33b1e5442203356eb47332504b9307762eda1" - }, - { - "nr": 128387, - "hash": "fa0c45456c98ddac4f128c93703c152fb5ba9a3c" - }, - { - "nr": 127506, - "hash": "0fc97e9b2b0846769c5d15b549efb5bafa79b0b4" - }, - { - "nr": 127266, - "hash": "7abfb51ceb2fb61990e5fc2efd86782bf6a9d37e" - }, - { - "nr": 127874, - "hash": "d017936cf9754e4d48d6158ed45dc9876f8aecff" - } - ] +{ + "mail": "snehayad@buffalo.edu", + "name": "sn3hay", + "date": 1732261652, + "prs": [ + { + "nr": 127146, + "hash": "1bc0fba740a478fc0723a583e4d12eaa7606b5b3" + }, + { + "nr": 128396, + "hash": "0cc3d4dbc374eda54abe025fd508893c0fbdb3f8" + }, + { + "nr": 125296, + "hash": "873487222952c229dadcd082450ef4a20c21d70d" + }, + { + "nr": 126894, + "hash": "a3b86f79b52f5e0896c36fb9d85d53fdb0269a01" + }, + { + "nr": 128307, + "hash": "ab888e567c74aca648ba55f04e8dfcfca2a88d99" + }, + { + "nr": 128474, + "hash": "f9350b1ade19dcd8bc8f5292c04ba3aa71d9ff21" + }, + { + "nr": 127744, + "hash": "54e1ef27b2b6de93b631552177ebaf8a46a91dcf" + }, + { + "nr": 126862, + "hash": "a6a5c6cb5f4d6a80547d2b3bc1cd942766f4ad23" + }, + { + "nr": 128430, + "hash": "f258a4cc38bb8e61f7951dfeb467643d5829b2d5" + }, + { + "nr": 128342, + "hash": "f4e236dfabe6916c5654cc43f13c3535e55a1186" + }, + { + "nr": 124216, + "hash": "82e1aab49fd3fdf6f8a9de8e71e944335fd81731" + }, + { + "nr": 127277, + "hash": "c1e62b92569806928db67a96f0eb20ce96a3270e" + }, + { + "nr": 127318, + "hash": "cb66cc2259a7cb5901df2ac62ffe6de7376628af" + }, + { + "nr": 128046, + "hash": "c03f21c4d258cf86cf3d9f5be976da1156160a5c" + }, + { + "nr": 128463, + "hash": "fdd5075f624834545658823d18c908c80319ebfd" + }, + { + "nr": 128399, + "hash": "77f1d1d74ee423b418664ca3b4670995eb2aa74d" + }, + { + "nr": 127094, + "hash": "fdc4045cb159bcd672e21c7d0322f317be5cdb3e" + }, + { + "nr": 128359, + "hash": "db6d68d42fc3d13322062d592ce4b4fef7fe060d" + }, + { + "nr": 127134, + "hash": "8ad409a4ec859698097926852e550bb0dbd65724" + }, + { + "nr": 128533, + "hash": "30d95d37893c9e6e2b4ee5954285f505d393e9ac" + }, + { + "nr": 127483, + "hash": "1d68861dde6ead7991e950f63737b00a06e40226" + }, + { + "nr": 128219, + "hash": "f1b213dff05cb778d5f919a324982d925e688a22" + }, + { + "nr": 128344, + "hash": "54f21e95872907b9924af70500216d7a786e1032" + }, + { + "nr": 128444, + "hash": "e4d2e2920ea18d9c383bfd03fb82c5f36d7ae818" + }, + { + "nr": 126533, + "hash": "aa4e97ac08e2863711d0412269a3dfae608bb9fb" + }, + { + "nr": 127981, + "hash": "0db616fb42d130547b041c752c01ec13c73233d3" + }, + { + "nr": 128517, + "hash": "aa2375f2f5768d309f940658e49b6619f0331d7e" + }, + { + "nr": 126620, + "hash": "9bd33b1e5442203356eb47332504b9307762eda1" + }, + { + "nr": 128387, + "hash": "fa0c45456c98ddac4f128c93703c152fb5ba9a3c" + }, + { + "nr": 127506, + "hash": "0fc97e9b2b0846769c5d15b549efb5bafa79b0b4" + }, + { + "nr": 127266, + "hash": "7abfb51ceb2fb61990e5fc2efd86782bf6a9d37e" + }, + { + "nr": 127874, + "hash": "d017936cf9754e4d48d6158ed45dc9876f8aecff" + } + ] } \ No newline at end of file diff --git a/releases/release-1.32/release-notes/sessions/maps-1733275958.json b/releases/release-1.32/release-notes/sessions/maps-1733275958.json index 0c3d957782c..c03b37beb17 100644 --- a/releases/release-1.32/release-notes/sessions/maps-1733275958.json +++ b/releases/release-1.32/release-notes/sessions/maps-1733275958.json @@ -1,215 +1,215 @@ -{ - "mail": "chu.karen.h@gmail.com", - "name": "Karen Chu", - "date": 1733275958, - "prs": [ - { - "nr": 128170, - "hash": "a0c911c2213518b383150ff0810e68ade533bad3" - }, - { - "nr": 128266, - "hash": "c5f37524fdeff48436043442e25a0fe46cc3d156" - }, - { - "nr": 121968, - "hash": "100d272b5e5bce80c30625be7b794f0e142ebb18" - }, - { - "nr": 127511, - "hash": "44ceaf1004930f0f8dde4b516198d2f0dd967599" - }, - { - "nr": 128415, - "hash": "11b8f60257844835648cca8344d5b4aff9550807" - }, - { - "nr": 128764, - "hash": "d9574b186bf8bda6e488352eda9d929f9726d748" - }, - { - "nr": 128932, - "hash": "3389079807bf53636deed6f3c191ea04c431b99a" - }, - { - "nr": 128190, - "hash": "968c94be78dd70eac09472c43d07e8b78e9daeec" - }, - { - "nr": 128501, - "hash": "42c05b8bc9fdddfded2583fc649344cce7620b81" - }, - { - "nr": 128539, - "hash": "f3bc0252a29a3c32d03fc81808d3d8447b895f04" - }, - { - "nr": 128676, - "hash": "d5090d7449cd16069e258e1fc5d09c01271f4241" - }, - { - "nr": 128503, - "hash": "e7bfa4da8c1b0dda33706924406c83d55963c3c7" - }, - { - "nr": 126806, - "hash": "d94c8ee285de90853462a500bedf9ba065dc9b34" - }, - { - "nr": 128472, - "hash": "71f3343567ccd7f86f4d30b5286f4c1ab19b3304" - }, - { - "nr": 128077, - "hash": "c86a66b1f0cded4df221b1c1ebd8644e81af3948" - }, - { - "nr": 121206, - "hash": "d596c806e48f846332f9e665f1d76690bbd70b8f" - }, - { - "nr": 127404, - "hash": "93a22ca84d6cc3269010ea9356feca36d358c169" - }, - { - "nr": 126336, - "hash": "17afcced8a1a02c5888096a756716258b4de06e3" - }, - { - "nr": 128560, - "hash": "c46aa52f3df40e121742759dbe693e3d68d6b2cd" - }, - { - "nr": 128646, - "hash": "7d314c3b3d84c93c2eb71e4cf1492a0c5ed4c72b" - }, - { - "nr": 128287, - "hash": "e26daacf7cea0e5e910e06f01e742de6abf2a6db" - }, - { - "nr": 123549, - "hash": "106626e6e94b913b42352f5e244049c5049158e5" - }, - { - "nr": 127857, - "hash": "63590054b3b3f3605e31d204c746badb1efd453b" - }, - { - "nr": 128556, - "hash": "0df695bc3abedb6dbdae1d2652c3a89a0925990f" - }, - { - "nr": 128407, - "hash": "a6e0aa902247907deffc2a20d81a6f77111d41fb" - }, - { - "nr": 128189, - "hash": "3361f437c20e884c53fa99963480cd084c66fbc7" - }, - { - "nr": 126653, - "hash": "49bb85e60d9d611e534c633e71d7ad246203720d" - }, - { - "nr": 124952, - "hash": "429f1621be930632be8b662d722acb1d12a52887" - }, - { - "nr": 126096, - "hash": "66568260992d5e114fe7f6354c7fab312e476d4d" - }, - { - "nr": 128432, - "hash": "e5d4546363627d689b6157ebde2c3f9caa96bf60" - }, - { - "nr": 128031, - "hash": "4db0812aeb834b3881296943dcd85f16afae065d" - }, - { - "nr": 128681, - "hash": "195aadc7d6eed370cc92e330fcf4220a6d0f4664" - }, - { - "nr": 127513, - "hash": "65afd7abfba97075be477891f609737d886c4d13" - }, - { - "nr": 125577, - "hash": "ceb1657a43aefb0cf3a40ed1f30106cce82400ae" - }, - { - "nr": 127360, - "hash": "089562eea569e5c8109878951d100d1ca3d7935c" - }, - { - "nr": 128186, - "hash": "d220f0833485f1ea3904f157e0b6393e09b4dd24" - }, - { - "nr": 127326, - "hash": "af33abcdb48232863447ce76301531ac3d1a5892" - }, - { - "nr": 128640, - "hash": "9092e68d92487e91fd3a66791e20cf06199d6dab" - }, - { - "nr": 128296, - "hash": "8c3fa5bbaedfda070192eb425d372f2c85d2d4bf" - }, - { - "nr": 128374, - "hash": "babd56ba663b3dfd30096fccc7210c98835c387d" - }, - { - "nr": 125757, - "hash": "d67e199cacc8a24cbb11f78e5a29b08b039e2a76" - }, - { - "nr": 128601, - "hash": "e571e4301c421f84f62665a95c99bb945631f5df" - }, - { - "nr": 128377, - "hash": "5984ae05c477853eb0ac8a425f73fb47e5dba588" - }, - { - "nr": 126503, - "hash": "db29158fe144fe43ac3cfed7d4c341363128b181" - }, - { - "nr": 128683, - "hash": "c79068b6d7852a1bd8d843a79240b66a0d204667" - }, - { - "nr": 128634, - "hash": "b7ebb9cc5670b079d7c67805acbd9e05b8cfc8de" - }, - { - "nr": 128495, - "hash": "3d3162e30d83747f459a80b4b384cad62d6d387e" - }, - { - "nr": 128247, - "hash": "0c0edba44017f22f6a111377d382c2e0f0a8b275" - }, - { - "nr": 128852, - "hash": "53dcf657056602ec7d67befd7ecc20a42e2c6f43" - }, - { - "nr": 128240, - "hash": "3f47f470024fd2233ba23848f5f126bc6ea1834a" - }, - { - "nr": 128623, - "hash": "40e72031d54c750658cf66e9b049715be3e2daab" - }, - { - "nr": 127581, - "hash": "21531238021be3860353a309deb40f60f656dcd6" - } - ] +{ + "mail": "chu.karen.h@gmail.com", + "name": "Karen Chu", + "date": 1733275958, + "prs": [ + { + "nr": 128170, + "hash": "a0c911c2213518b383150ff0810e68ade533bad3" + }, + { + "nr": 128266, + "hash": "c5f37524fdeff48436043442e25a0fe46cc3d156" + }, + { + "nr": 121968, + "hash": "100d272b5e5bce80c30625be7b794f0e142ebb18" + }, + { + "nr": 127511, + "hash": "44ceaf1004930f0f8dde4b516198d2f0dd967599" + }, + { + "nr": 128415, + "hash": "11b8f60257844835648cca8344d5b4aff9550807" + }, + { + "nr": 128764, + "hash": "d9574b186bf8bda6e488352eda9d929f9726d748" + }, + { + "nr": 128932, + "hash": "3389079807bf53636deed6f3c191ea04c431b99a" + }, + { + "nr": 128190, + "hash": "968c94be78dd70eac09472c43d07e8b78e9daeec" + }, + { + "nr": 128501, + "hash": "42c05b8bc9fdddfded2583fc649344cce7620b81" + }, + { + "nr": 128539, + "hash": "f3bc0252a29a3c32d03fc81808d3d8447b895f04" + }, + { + "nr": 128676, + "hash": "d5090d7449cd16069e258e1fc5d09c01271f4241" + }, + { + "nr": 128503, + "hash": "e7bfa4da8c1b0dda33706924406c83d55963c3c7" + }, + { + "nr": 126806, + "hash": "d94c8ee285de90853462a500bedf9ba065dc9b34" + }, + { + "nr": 128472, + "hash": "71f3343567ccd7f86f4d30b5286f4c1ab19b3304" + }, + { + "nr": 128077, + "hash": "c86a66b1f0cded4df221b1c1ebd8644e81af3948" + }, + { + "nr": 121206, + "hash": "d596c806e48f846332f9e665f1d76690bbd70b8f" + }, + { + "nr": 127404, + "hash": "93a22ca84d6cc3269010ea9356feca36d358c169" + }, + { + "nr": 126336, + "hash": "17afcced8a1a02c5888096a756716258b4de06e3" + }, + { + "nr": 128560, + "hash": "c46aa52f3df40e121742759dbe693e3d68d6b2cd" + }, + { + "nr": 128646, + "hash": "7d314c3b3d84c93c2eb71e4cf1492a0c5ed4c72b" + }, + { + "nr": 128287, + "hash": "e26daacf7cea0e5e910e06f01e742de6abf2a6db" + }, + { + "nr": 123549, + "hash": "106626e6e94b913b42352f5e244049c5049158e5" + }, + { + "nr": 127857, + "hash": "63590054b3b3f3605e31d204c746badb1efd453b" + }, + { + "nr": 128556, + "hash": "0df695bc3abedb6dbdae1d2652c3a89a0925990f" + }, + { + "nr": 128407, + "hash": "a6e0aa902247907deffc2a20d81a6f77111d41fb" + }, + { + "nr": 128189, + "hash": "3361f437c20e884c53fa99963480cd084c66fbc7" + }, + { + "nr": 126653, + "hash": "49bb85e60d9d611e534c633e71d7ad246203720d" + }, + { + "nr": 124952, + "hash": "429f1621be930632be8b662d722acb1d12a52887" + }, + { + "nr": 126096, + "hash": "66568260992d5e114fe7f6354c7fab312e476d4d" + }, + { + "nr": 128432, + "hash": "e5d4546363627d689b6157ebde2c3f9caa96bf60" + }, + { + "nr": 128031, + "hash": "4db0812aeb834b3881296943dcd85f16afae065d" + }, + { + "nr": 128681, + "hash": "195aadc7d6eed370cc92e330fcf4220a6d0f4664" + }, + { + "nr": 127513, + "hash": "65afd7abfba97075be477891f609737d886c4d13" + }, + { + "nr": 125577, + "hash": "ceb1657a43aefb0cf3a40ed1f30106cce82400ae" + }, + { + "nr": 127360, + "hash": "089562eea569e5c8109878951d100d1ca3d7935c" + }, + { + "nr": 128186, + "hash": "d220f0833485f1ea3904f157e0b6393e09b4dd24" + }, + { + "nr": 127326, + "hash": "af33abcdb48232863447ce76301531ac3d1a5892" + }, + { + "nr": 128640, + "hash": "9092e68d92487e91fd3a66791e20cf06199d6dab" + }, + { + "nr": 128296, + "hash": "8c3fa5bbaedfda070192eb425d372f2c85d2d4bf" + }, + { + "nr": 128374, + "hash": "babd56ba663b3dfd30096fccc7210c98835c387d" + }, + { + "nr": 125757, + "hash": "d67e199cacc8a24cbb11f78e5a29b08b039e2a76" + }, + { + "nr": 128601, + "hash": "e571e4301c421f84f62665a95c99bb945631f5df" + }, + { + "nr": 128377, + "hash": "5984ae05c477853eb0ac8a425f73fb47e5dba588" + }, + { + "nr": 126503, + "hash": "db29158fe144fe43ac3cfed7d4c341363128b181" + }, + { + "nr": 128683, + "hash": "c79068b6d7852a1bd8d843a79240b66a0d204667" + }, + { + "nr": 128634, + "hash": "b7ebb9cc5670b079d7c67805acbd9e05b8cfc8de" + }, + { + "nr": 128495, + "hash": "3d3162e30d83747f459a80b4b384cad62d6d387e" + }, + { + "nr": 128247, + "hash": "0c0edba44017f22f6a111377d382c2e0f0a8b275" + }, + { + "nr": 128852, + "hash": "53dcf657056602ec7d67befd7ecc20a42e2c6f43" + }, + { + "nr": 128240, + "hash": "3f47f470024fd2233ba23848f5f126bc6ea1834a" + }, + { + "nr": 128623, + "hash": "40e72031d54c750658cf66e9b049715be3e2daab" + }, + { + "nr": 127581, + "hash": "21531238021be3860353a309deb40f60f656dcd6" + } + ] } \ No newline at end of file diff --git a/releases/release-1.32/release-team.md b/releases/release-1.32/release-team.md index c56e9fd96b6..e356ee0dcab 100644 --- a/releases/release-1.32/release-team.md +++ b/releases/release-1.32/release-team.md @@ -1,16 +1,16 @@ -# Kubernetes 1.32 Release Team - -| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|-------------------|----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Release Team Lead | Frederico Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz`) | Mohammad Reza Saleh Sedghpour ([@salehsedghpour](https://github.com/salehsedghpour) / Slack: `@Mohammad Reza Saleh`), Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova`), Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/sreeram-venkitesh) / Slack: `@sreeram.venkitesh`), Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav`) | -| Emeritus Adviser | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`) | N/A | -| Enhancements | Tyler Schade ([@tjons](https://github.com/tjons) / Slack: `@Tyler Schade`) | Dipesh Rawat ([@dipesh-rawat](https://github.com/dipesh-rawat) / Slack: `@Dipesh`), Jenny Shu ([@jenshu](https://github.com/jenshu) / Slack `@Jenny Shu`), Sepideh Alavi ([@shecodesmagic](https://github.com/shecodesmagic) / Slack `@Sepideh`) | -| Release Notes | Satyam Soni ([@satyampsoni](https://github.com/satyampsoni) / Slack: `@satyampsoni`) | Jeff Dauda ([@jefftrojan](https://github.com/jefftrojan) / Slack: `@jefftrojan`), karen chu ([@karenhchu](https://github.com/karenhchu) / Slack: `@Karen Chu`), Lavish Pal ([lavishpal](https://github.com/lavishpal)/ Slack: `@Lavish Pal`), MelonyQIN ([@cloudmelon](https://github.com/cloudmelon) / Slack: `@MelonyQIN`), Rayan Das ([@rayandas](https://github.com/rayandas) / Slack: `@rayandas`), Sneha Yadav ([@sn3hay](https://github.com/sn3hay) / Slack: `@Sneha yadav`) | -| Communications | Matteo Bianchi ([@mbianchidev](https://github.com/mbianchidev) / Slack: `@mbianchidev`) | Edith Puclla ([@edithturn](https://github.com/edithturn) / Slack: `@Edith`), Rashan Smith ([@rashansmith](https://github.com/rashansmith) / Slack: `@Rashan`), Ryota Sawada ([@rytswd](https://github.com/rytswd) / Slack: `@Ryota`), William Rizzo ([@wrkode](https://github.com/wrkode) / Slack: `@Will-I-Am`), | -| Release Signal | Drew Hagen ([@drewhagen](https://github.com/drewhagen) / Slack: `@Drew Hagen`) | Amim Knabben ([@knabben](https://github.com/knabben) / Slack `@knabben`), ChengHao Yang ([@tico88612](tico88612) / Slack: `@tico88612`), Simon Bäumer ([@SimonBaeumer](https://github.com/SimonBaeumer) / Slack: `@sbaumer`), Wendy Ha ([@wendy-ha18](https://github.com/wendy-ha18) / Slack `@Wendy Ha`) | -| Docs | Daniel Chan ([@chanieljdan](https://github.com/chanieljdan) / Slack: `@dchan`) | Anshuman Tripathi ([@AnshumanTripathi](https://github.com/AnshumanTripathi) / Slack: `@Anshuman Tripathi`), James Spurin ([@spurin](https://github.com/spurin) / Slack: `@James Spurin`), Michelle Nguyen ([@michellengnx](https://github.com/michellengnx) / Slack: `@Michelle Nguyen`), Rodolfo Albuquerque ([@rdalbuquerque](https://github.com/rdalbuquerque) / Slack: `@Rodolfo Albuquerque`), Shedrack Akintayo ([@hacktivist123](https://github.com/hacktivist123) / Slack: `@Shedrack Akintayo`)| -| Branch Manager | Jim Angel ([@jimangel](https://github.com/jimangel) / Slack: `@jimangel`) | Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@Mickey`) | - -Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.32, once the 1.32 release cycle concludes. +# Kubernetes 1.32 Release Team + +| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|-------------------|----------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Release Team Lead | Frederico Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz`) | Mohammad Reza Saleh Sedghpour ([@salehsedghpour](https://github.com/salehsedghpour) / Slack: `@Mohammad Reza Saleh`), Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova`), Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/sreeram-venkitesh) / Slack: `@sreeram.venkitesh`), Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav`) | +| Emeritus Adviser | Kat Cosgrove ([@katcosgrove](https://github.com/katcosgrove) / Slack: `@katcosgrove`) | N/A | +| Enhancements | Tyler Schade ([@tjons](https://github.com/tjons) / Slack: `@Tyler Schade`) | Dipesh Rawat ([@dipesh-rawat](https://github.com/dipesh-rawat) / Slack: `@Dipesh`), Jenny Shu ([@jenshu](https://github.com/jenshu) / Slack `@Jenny Shu`), Sepideh Alavi ([@shecodesmagic](https://github.com/shecodesmagic) / Slack `@Sepideh`) | +| Release Notes | Satyam Soni ([@satyampsoni](https://github.com/satyampsoni) / Slack: `@satyampsoni`) | Jeff Dauda ([@jefftrojan](https://github.com/jefftrojan) / Slack: `@jefftrojan`), karen chu ([@karenhchu](https://github.com/karenhchu) / Slack: `@Karen Chu`), Lavish Pal ([lavishpal](https://github.com/lavishpal)/ Slack: `@Lavish Pal`), MelonyQIN ([@cloudmelon](https://github.com/cloudmelon) / Slack: `@MelonyQIN`), Rayan Das ([@rayandas](https://github.com/rayandas) / Slack: `@rayandas`), Sneha Yadav ([@sn3hay](https://github.com/sn3hay) / Slack: `@Sneha yadav`) | +| Communications | Matteo Bianchi ([@mbianchidev](https://github.com/mbianchidev) / Slack: `@mbianchidev`) | Edith Puclla ([@edithturn](https://github.com/edithturn) / Slack: `@Edith`), Rashan Smith ([@rashansmith](https://github.com/rashansmith) / Slack: `@Rashan`), Ryota Sawada ([@rytswd](https://github.com/rytswd) / Slack: `@Ryota`), William Rizzo ([@wrkode](https://github.com/wrkode) / Slack: `@Will-I-Am`), | +| Release Signal | Drew Hagen ([@drewhagen](https://github.com/drewhagen) / Slack: `@Drew Hagen`) | Amim Knabben ([@knabben](https://github.com/knabben) / Slack `@knabben`), ChengHao Yang ([@tico88612](tico88612) / Slack: `@tico88612`), Simon Bäumer ([@SimonBaeumer](https://github.com/SimonBaeumer) / Slack: `@sbaumer`), Wendy Ha ([@wendy-ha18](https://github.com/wendy-ha18) / Slack `@Wendy Ha`) | +| Docs | Daniel Chan ([@chanieljdan](https://github.com/chanieljdan) / Slack: `@dchan`) | Anshuman Tripathi ([@AnshumanTripathi](https://github.com/AnshumanTripathi) / Slack: `@Anshuman Tripathi`), James Spurin ([@spurin](https://github.com/spurin) / Slack: `@James Spurin`), Michelle Nguyen ([@michellengnx](https://github.com/michellengnx) / Slack: `@Michelle Nguyen`), Rodolfo Albuquerque ([@rdalbuquerque](https://github.com/rdalbuquerque) / Slack: `@Rodolfo Albuquerque`), Shedrack Akintayo ([@hacktivist123](https://github.com/hacktivist123) / Slack: `@Shedrack Akintayo`)| +| Branch Manager | Jim Angel ([@jimangel](https://github.com/jimangel) / Slack: `@jimangel`) | Mickey Boxell ([@mickeyboxell](https://github.com/mickeyboxell) / Slack: `@Mickey`) | + +Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.32, once the 1.32 release cycle concludes. diff --git a/releases/release-1.33/README.md b/releases/release-1.33/README.md index 268eff0f271..02a2d5156af 100644 --- a/releases/release-1.33/README.md +++ b/releases/release-1.33/README.md @@ -1,99 +1,99 @@ ---- -title: "Kubernetes 1.33 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes v1.33: Octarine (The Color of Magic) - -![Kubernetes v1.33: Octarine (The Color of Magine)](./logo/k8s133-octarine.svg) - -The theme for Kubernetes v1.33 is Octarine: The Color of Magic, inspired by Terry Pratchett’s Discworld series. -This release highlights the open-source magic that Kubernetes enables across the ecosystem. - -Kubernetes v1.33 is a testament to the enduring power of open-source innovation, where hundreds of contributors from -around the world work together to create something truly extraordinary. Each release builds upon the other, -creating something greater than we could achieve alone. - -The release logo was made by [Nina Polshakova](https://www.linkedin.com/in/ninapolshakova/) and [Aaron Ray](https://github.com/GoldenZephyr) using [Inkscape](https://inkscape.org/), an open source vector graphics editor. - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.33/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.33/release-team.md) -* [Meeting Minutes](https://bit.ly/k8s133-releasemtg) (members of [release-team@] receive meeting invites) -* [v1.33 Release Calendar](https://bit.ly/k8s-release-cal) -* Contact: [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail -* [Internal Contact Info](https://bit.ly/k8s133-contacts) (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Board](https://bit.ly/k8s133-enhancements) -* [Feature blog Tracking Board](https://bit.ly/k8s133-feature-blogs) -* [Bug Triage Tracking Board](https://bit.ly/k8s133-bugtriage) -* [CI Signal Project Board & Issue Tracking](https://bit.ly/k8s133-cisignal) -* [Retrospective Document](https://bit.ly/k8s133-retro) -* [kubernetes/sig-release v1.33 milestone](https://github.com/kubernetes/kubernetes/milestone/66) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## Summary - -The 1.33 release cycle is as follows: - -- **Monday 13th January 2025**: Week 1 — Release cycle begins -- **Thursday 6th February 2025**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) -- **[02:00 UTC Friday 14th February 2025 / 19:00 PDT Thursday 13th February 2025](https://everytimezone.com/s/db953795)**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) -- **[02:00 UTC Wednesday 5th March 2025 / 19:00 PDT Tuesday 4th March 2025](https://everytimezone.com/s/7fab9efc)**: Week 8 — [Feature blog freeze](../release_phases.md#feature-blog-freeze) -- **[02:00 UTC Friday 21st March 2025 / 19:00 PDT Thursday 20th March 2025](https://everytimezone.com/s/2c5e9275)**: Week 10 — [Code Freeze](../release_phases.md#code-freeze) and [Test Freeze](../release_phases.md#test-freeze) -- **Tuesday 1st - Friday 4th April 2025**: Week 13 - [KubeCon EU](https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/) -- **Tuesday 8th April 2025**: Week 13 — [Docs Freeze](../release_phases.md#docs-freeze) -- **Wednesday 23rd April 2025**: Week 15 — Kubernetes v1.33.0 released - -## Timeline - -| **What** | **Who** | **When** | **Week** | **Release Signal** | -|----------------------------------------------------------------------------------------|-------------------------------|---------------------------------------------------------------------------------------------------------------------|----------|--------------------------------------------------------------------------| -| Start of Release Cycle | Lead | Monday 13th January 2025 | week 1 | [master-blocking], [master-informing] | -| Start Enhancements Tracking | Enhancements Lead | Monday 13th January 2025 | week 1 | | -| Schedule finalized | Lead | Friday 17th January 2025 | week 1 | | -| Team finalized | Lead | Friday 17th January 2025 | week 1 | | -| Begin APAC-friendly meetings | Lead | Wednesday 22nd January 2025 | week 2 | | -| Start Release Notes Draft | Docs Lead | Tuesday 28th January 2025 | week 3 | | -| 1.33.0-alpha.1 released | Branch Manager | Tuesday 4th February 2025 | week 4 | | -| **Production Readiness Freeze** | Enhancements Lead | Thursday 6th February 2025 | week 4 | | -| **Begin [Enhancements Freeze]** | Enhancements Lead | [02:00 UTC Friday 14th February 2025 / 18:00 PST Thursday 13th February 2025](https://everytimezone.com/s/db953795) | week 5 | | -| 1.33.0-alpha.2 released | Branch Manager | Tuesday 18th February 2025 | week 6 | | -| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 27th February 2025 | week 7 | | -| Call for [Exceptions](Exception) | Lead | Monday 3rd March 2025 | week 8 | | -| Brace Yourself, Code Freeze is Coming | Comms / Release Signal | Monday 3rd March 2025 | week 8 | | -| 1.33.0-alpha.3 released | Branch Manager | Tuesday 4th March 2025 | week 8 | | -| **Begin Feature blog freeze** | Comms Lead | [02:00 UTC Wednesday 5th March 2025 / 18:00 PST Tuesday 4th March 2025](https://everytimezone.com/s/7fab9efc) | week 8 | | -| 1.33.0-beta.0 released | Branch Manager | Tuesday 11th March 2025 | week 9 | | -| **Begin [Code Freeze] and [Test Freeze]** | Branch Manager | [02:00 UTC Friday 21st March 2025 / 19:00 PDT Thursday 20th March 2025](https://everytimezone.com/s/2c5e9275) | week 10 | | -| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 24th March 2025 | week 11 | | -| Deprecations and Removals blog published | Comms | Monday 24th March 2025 | week 11 | | -| **Preparing for Feature blogs review — Initiating outreach** | Comms | Monday 24th March 2025 | week 11 | | -| Docs deadline — PRs ready for review | Docs Lead | Tuesday 25th March 2025 | week 11 | | -| Release Highlights deadline | Comms | Tuesday 25th March 2025 | week 11 | | -| **KubeCon EU** | | Tuesday 1st - Friday 4th April 2025 | week 12 | | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Monday 7th April 2025 | week 13 | | -| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 7th April 2025 | week 13 | | -| release-1.33 branch created | Branch Manager | Tuesday 8th April 2025 | week 13 | | -| release-1.33 jobs created | Branch Manager | Tuesday 8th April 2025 | week 13 | | -| Start final draft of Release Notes | Docs Lead | Tuesday 8th April 2025 | week 13 | | -| **Docs Freeze** | Docs Lead | Tuesday 8th April 2025 | week 13 | | -| 1.33.0-rc.0 released | Branch Manager | Tuesday 8th April 2025 | week 13 | [1.33-informing], [1.33-blocking], [master-blocking], [master-informing] | -| Release blog ready to review | Comms / Docs | [02:00 UTC Friday 11th April 2025 / 19:00 PDT Thursday 10th April 2025](https://everytimezone.com/s/f0425fb0) | week 13 | | -| 1.33.0-rc.1 released | Branch Manager | Tuesday 15th April 2025 | week 14 | | -| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Docs Lead | Wednesday 23rd April 2025 | week 15 | | -| **v1.33.0 released** | Branch Manager | Wednesday 23rd April 2025 | week 15 | | -| Release blog published | Comms | Wednesday 23rd April 2025 | week 15 | | -| [Thaw] | Branch Manager | Wednesday 23rd April 2025 | week 15 | | +--- +title: "Kubernetes 1.33 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes v1.33: Octarine (The Color of Magic) + +![Kubernetes v1.33: Octarine (The Color of Magine)](./logo/k8s133-octarine.svg) + +The theme for Kubernetes v1.33 is Octarine: The Color of Magic, inspired by Terry Pratchett’s Discworld series. +This release highlights the open-source magic that Kubernetes enables across the ecosystem. + +Kubernetes v1.33 is a testament to the enduring power of open-source innovation, where hundreds of contributors from +around the world work together to create something truly extraordinary. Each release builds upon the other, +creating something greater than we could achieve alone. + +The release logo was made by [Nina Polshakova](https://www.linkedin.com/in/ninapolshakova/) and [Aaron Ray](https://github.com/GoldenZephyr) using [Inkscape](https://inkscape.org/), an open source vector graphics editor. + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.33/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.33/release-team.md) +* [Meeting Minutes](https://bit.ly/k8s133-releasemtg) (members of [release-team@] receive meeting invites) +* [v1.33 Release Calendar](https://bit.ly/k8s-release-cal) +* Contact: [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) on slack, [release-team](mailto://release-team@kubernetes.io) on e-mail +* [Internal Contact Info](https://bit.ly/k8s133-contacts) (accessible only to members of [release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Board](https://bit.ly/k8s133-enhancements) +* [Feature blog Tracking Board](https://bit.ly/k8s133-feature-blogs) +* [Bug Triage Tracking Board](https://bit.ly/k8s133-bugtriage) +* [CI Signal Project Board & Issue Tracking](https://bit.ly/k8s133-cisignal) +* [Retrospective Document](https://bit.ly/k8s133-retro) +* [kubernetes/sig-release v1.33 milestone](https://github.com/kubernetes/kubernetes/milestone/66) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## Summary + +The 1.33 release cycle is as follows: + +- **Monday 13th January 2025**: Week 1 — Release cycle begins +- **Thursday 6th February 2025**: Week 4 — [Production Readiness Freeze](https://groups.google.com/g/kubernetes-sig-architecture/c/a6_y81N49aQ) +- **[02:00 UTC Friday 14th February 2025 / 19:00 PDT Thursday 13th February 2025](https://everytimezone.com/s/db953795)**: Week 5 — [Enhancements Freeze](../release_phases.md#enhancements-freeze) +- **[02:00 UTC Wednesday 5th March 2025 / 19:00 PDT Tuesday 4th March 2025](https://everytimezone.com/s/7fab9efc)**: Week 8 — [Feature blog freeze](../release_phases.md#feature-blog-freeze) +- **[02:00 UTC Friday 21st March 2025 / 19:00 PDT Thursday 20th March 2025](https://everytimezone.com/s/2c5e9275)**: Week 10 — [Code Freeze](../release_phases.md#code-freeze) and [Test Freeze](../release_phases.md#test-freeze) +- **Tuesday 1st - Friday 4th April 2025**: Week 13 - [KubeCon EU](https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/) +- **Tuesday 8th April 2025**: Week 13 — [Docs Freeze](../release_phases.md#docs-freeze) +- **Wednesday 23rd April 2025**: Week 15 — Kubernetes v1.33.0 released + +## Timeline + +| **What** | **Who** | **When** | **Week** | **Release Signal** | +|----------------------------------------------------------------------------------------|-------------------------------|---------------------------------------------------------------------------------------------------------------------|----------|--------------------------------------------------------------------------| +| Start of Release Cycle | Lead | Monday 13th January 2025 | week 1 | [master-blocking], [master-informing] | +| Start Enhancements Tracking | Enhancements Lead | Monday 13th January 2025 | week 1 | | +| Schedule finalized | Lead | Friday 17th January 2025 | week 1 | | +| Team finalized | Lead | Friday 17th January 2025 | week 1 | | +| Begin APAC-friendly meetings | Lead | Wednesday 22nd January 2025 | week 2 | | +| Start Release Notes Draft | Docs Lead | Tuesday 28th January 2025 | week 3 | | +| 1.33.0-alpha.1 released | Branch Manager | Tuesday 4th February 2025 | week 4 | | +| **Production Readiness Freeze** | Enhancements Lead | Thursday 6th February 2025 | week 4 | | +| **Begin [Enhancements Freeze]** | Enhancements Lead | [02:00 UTC Friday 14th February 2025 / 18:00 PST Thursday 13th February 2025](https://everytimezone.com/s/db953795) | week 5 | | +| 1.33.0-alpha.2 released | Branch Manager | Tuesday 18th February 2025 | week 6 | | +| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 27th February 2025 | week 7 | | +| Call for [Exceptions](Exception) | Lead | Monday 3rd March 2025 | week 8 | | +| Brace Yourself, Code Freeze is Coming | Comms / Release Signal | Monday 3rd March 2025 | week 8 | | +| 1.33.0-alpha.3 released | Branch Manager | Tuesday 4th March 2025 | week 8 | | +| **Begin Feature blog freeze** | Comms Lead | [02:00 UTC Wednesday 5th March 2025 / 18:00 PST Tuesday 4th March 2025](https://everytimezone.com/s/7fab9efc) | week 8 | | +| 1.33.0-beta.0 released | Branch Manager | Tuesday 11th March 2025 | week 9 | | +| **Begin [Code Freeze] and [Test Freeze]** | Branch Manager | [02:00 UTC Friday 21st March 2025 / 19:00 PDT Thursday 20th March 2025](https://everytimezone.com/s/2c5e9275) | week 10 | | +| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 24th March 2025 | week 11 | | +| Deprecations and Removals blog published | Comms | Monday 24th March 2025 | week 11 | | +| **Preparing for Feature blogs review — Initiating outreach** | Comms | Monday 24th March 2025 | week 11 | | +| Docs deadline — PRs ready for review | Docs Lead | Tuesday 25th March 2025 | week 11 | | +| Release Highlights deadline | Comms | Tuesday 25th March 2025 | week 11 | | +| **KubeCon EU** | | Tuesday 1st - Friday 4th April 2025 | week 12 | | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Monday 7th April 2025 | week 13 | | +| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 7th April 2025 | week 13 | | +| release-1.33 branch created | Branch Manager | Tuesday 8th April 2025 | week 13 | | +| release-1.33 jobs created | Branch Manager | Tuesday 8th April 2025 | week 13 | | +| Start final draft of Release Notes | Docs Lead | Tuesday 8th April 2025 | week 13 | | +| **Docs Freeze** | Docs Lead | Tuesday 8th April 2025 | week 13 | | +| 1.33.0-rc.0 released | Branch Manager | Tuesday 8th April 2025 | week 13 | [1.33-informing], [1.33-blocking], [master-blocking], [master-informing] | +| Release blog ready to review | Comms / Docs | [02:00 UTC Friday 11th April 2025 / 19:00 PDT Thursday 10th April 2025](https://everytimezone.com/s/f0425fb0) | week 13 | | +| 1.33.0-rc.1 released | Branch Manager | Tuesday 15th April 2025 | week 14 | | +| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Docs Lead | Wednesday 23rd April 2025 | week 15 | | +| **v1.33.0 released** | Branch Manager | Wednesday 23rd April 2025 | week 15 | | +| Release blog published | Comms | Wednesday 23rd April 2025 | week 15 | | +| [Thaw] | Branch Manager | Wednesday 23rd April 2025 | week 15 | | diff --git a/releases/release-1.33/exceptions.yaml b/releases/release-1.33/exceptions.yaml index 8731f4f6cad..e722fd2024d 100644 --- a/releases/release-1.33/exceptions.yaml +++ b/releases/release-1.33/exceptions.yaml @@ -1,92 +1,92 @@ -# Exception requests in v1.33 -# Google Group: https://groups.google.com/g/kubernetes-sig-release -# Release Team Lead: Nina Polshakova ([@npolshakova](https://github.com/npolshakova) - -# Enhancements Freeze Exceptions requested in v1.33 - -enhancementFreeze: - -- name: "Declarative Validation Of Kubernetes Native Types With validation-gen" - issue: 5073 - date_requested: 2025-02-14 - date_reviewed: 2025-02-14 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/B4lxvGi-UVs" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/5171" - status: "approved" - -- name: "Node memory swap support" - issue: 2400 - date_requested: 2025-02-14 - date_reviewed: 2025-02-14 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/7ksASRJFCEw" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/5174" - status: "approved" - -- name: "Streaming Encoding for LIST Responses" - issue: 5116 - date_requested: 2025-02-14 - date_reviewed: 2025-02-14 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/fDI9FdlClnA" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/5119" - status: "approved" - -- name: "Snapshottable API server cache" - issue: 4988 - date_requested: 2025-02-14 - date_reviewed: 2025-02-14 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/CVYYVtjOa78" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/5175" - status: "approved" - -- name: "Take taints/tolerations into consideration when calculating PodTopologySpread skew" - issue: 3094 - date_requested: 2025-02-15 - date_reviewed: 2025-02-15 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/KzuhBzIJIU0" - pull_requests: - - "https://github.com/kubernetes/enhancements/pull/5172" - status: "approved" - -# Code Freeze Exceptions requested in v1.33 - -codeFreeze: - -- name: "DRA: structured parameters" - issue: 4381 - date_requested: 2025-03-20 - date_reviewed: 2025-03-21 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/iHdoli5MTOA" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/129970" - status: "approved" - -- name: "Container Stop Signals" - issue: 4960 - date_requested: 2025-03-20 - date_reviewed: 2025-03-21 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/hBaNSMGXkq8" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/130556" - status: "approved" - -- name: "Configurable tolerance for Horizontal Pod Autoscalers" - issue: 4951 - date_requested: 2025-03-20 - date_reviewed: 2025-03-21 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/wgcvmhAK75I" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/130797" - status: "approved" - -- name: "Support PSI based on cgroupv2" - issue: 4205 - date_requested: 2025-03-21 - date_reviewed: 2025-03-21 - thread: "https://groups.google.com/g/kubernetes-sig-release/c/GcC8516exjA" - pull_requests: - - "https://github.com/kubernetes/kubernetes/pull/130701" +# Exception requests in v1.33 +# Google Group: https://groups.google.com/g/kubernetes-sig-release +# Release Team Lead: Nina Polshakova ([@npolshakova](https://github.com/npolshakova) + +# Enhancements Freeze Exceptions requested in v1.33 + +enhancementFreeze: + +- name: "Declarative Validation Of Kubernetes Native Types With validation-gen" + issue: 5073 + date_requested: 2025-02-14 + date_reviewed: 2025-02-14 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/B4lxvGi-UVs" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/5171" + status: "approved" + +- name: "Node memory swap support" + issue: 2400 + date_requested: 2025-02-14 + date_reviewed: 2025-02-14 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/7ksASRJFCEw" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/5174" + status: "approved" + +- name: "Streaming Encoding for LIST Responses" + issue: 5116 + date_requested: 2025-02-14 + date_reviewed: 2025-02-14 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/fDI9FdlClnA" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/5119" + status: "approved" + +- name: "Snapshottable API server cache" + issue: 4988 + date_requested: 2025-02-14 + date_reviewed: 2025-02-14 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/CVYYVtjOa78" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/5175" + status: "approved" + +- name: "Take taints/tolerations into consideration when calculating PodTopologySpread skew" + issue: 3094 + date_requested: 2025-02-15 + date_reviewed: 2025-02-15 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/KzuhBzIJIU0" + pull_requests: + - "https://github.com/kubernetes/enhancements/pull/5172" + status: "approved" + +# Code Freeze Exceptions requested in v1.33 + +codeFreeze: + +- name: "DRA: structured parameters" + issue: 4381 + date_requested: 2025-03-20 + date_reviewed: 2025-03-21 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/iHdoli5MTOA" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/129970" + status: "approved" + +- name: "Container Stop Signals" + issue: 4960 + date_requested: 2025-03-20 + date_reviewed: 2025-03-21 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/hBaNSMGXkq8" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/130556" + status: "approved" + +- name: "Configurable tolerance for Horizontal Pod Autoscalers" + issue: 4951 + date_requested: 2025-03-20 + date_reviewed: 2025-03-21 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/wgcvmhAK75I" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/130797" + status: "approved" + +- name: "Support PSI based on cgroupv2" + issue: 4205 + date_requested: 2025-03-21 + date_reviewed: 2025-03-21 + thread: "https://groups.google.com/g/kubernetes-sig-release/c/GcC8516exjA" + pull_requests: + - "https://github.com/kubernetes/kubernetes/pull/130701" status: "approved" \ No newline at end of file diff --git a/releases/release-1.33/logo/README.md b/releases/release-1.33/logo/README.md index 25de39ffb5b..c14e3ec17d7 100644 --- a/releases/release-1.33/logo/README.md +++ b/releases/release-1.33/logo/README.md @@ -1,28 +1,28 @@ -# Introducing Kubernetes v1.33 - Octarine (The Color of Magic) - -The theme for Kubernetes v1.33 is Octarine: The Color of Magic<sup>1</sup>, inspired by Terry Pratchett’s Discworld series. This release highlights the open-source magic<sup>2</sup> that Kubernetes enables across the ecosystem. - -If you’re familiar with the world of Discworld, you might recognize a small swamp dragon perched atop the tower of the Unseen University, gazing up at the Kubernetes moon above the city of Ankh-Morpork with 64 stars<sup>3</sup> in the background. - -As Kubernetes moves into its second decade, we celebrate both the wizardry of its maintainers, the curiosity of new contributors, and the collaborative spirit that fuels the project. The v1.33 release is a reminder that, as Pratchett wrote, “It’s still magic even if you know how it’s done.” Even if you know the ins and outs of the Kubernetes code base, stepping back at the end of the release cycle, you’ll realize that Kubernetes remains magical. - -Kubernetes v1.33 is a testament to the enduring power of open-source innovation, where hundreds of contributors<sup>4</sup> from around the world work together to create something truly extraordinary. Behind every new feature, the Kubernetes community works to maintain and improve the project, ensuring it remains secure, reliable, and released on time. Each release builds upon the other, creating something greater than we could achieve alone. - -The release logo was made by [Nina Polshakova](https://www.linkedin.com/in/ninapolshakova/) and [Aaron Ray](https://github.com/GoldenZephyr) using [Inkscape](https://inkscape.org/), an open source vector graphics editor. - -<sup>1</sup> Octarine is the mythical eighth color, visible only to those attuned to the arcane—wizards, witches, and, of course, cats. And occasionally, someone who’s stared at IPtable rules for too long. - -<sup>2</sup> Any sufficiently advanced technology is indistinguishable from magic…? - -<sup>3</sup> It’s not a coincidence 64 KEPs (Kubernetes Enhancement Proposals) are also included in v1.33. - -<sup>4</sup> See the Project Velocity section for v1.33 🚀 - -## How to use the logo? - -Three versions of the logo are provided: -- k8s133-octarine.svg -- k8s133-octarine.png -- k8s133-octarine-small.png - -The small logo is intended for use at smaller resolutions, such as a Slack react, or an icon. All other uses should use the main logo. +# Introducing Kubernetes v1.33 - Octarine (The Color of Magic) + +The theme for Kubernetes v1.33 is Octarine: The Color of Magic<sup>1</sup>, inspired by Terry Pratchett’s Discworld series. This release highlights the open-source magic<sup>2</sup> that Kubernetes enables across the ecosystem. + +If you’re familiar with the world of Discworld, you might recognize a small swamp dragon perched atop the tower of the Unseen University, gazing up at the Kubernetes moon above the city of Ankh-Morpork with 64 stars<sup>3</sup> in the background. + +As Kubernetes moves into its second decade, we celebrate both the wizardry of its maintainers, the curiosity of new contributors, and the collaborative spirit that fuels the project. The v1.33 release is a reminder that, as Pratchett wrote, “It’s still magic even if you know how it’s done.” Even if you know the ins and outs of the Kubernetes code base, stepping back at the end of the release cycle, you’ll realize that Kubernetes remains magical. + +Kubernetes v1.33 is a testament to the enduring power of open-source innovation, where hundreds of contributors<sup>4</sup> from around the world work together to create something truly extraordinary. Behind every new feature, the Kubernetes community works to maintain and improve the project, ensuring it remains secure, reliable, and released on time. Each release builds upon the other, creating something greater than we could achieve alone. + +The release logo was made by [Nina Polshakova](https://www.linkedin.com/in/ninapolshakova/) and [Aaron Ray](https://github.com/GoldenZephyr) using [Inkscape](https://inkscape.org/), an open source vector graphics editor. + +<sup>1</sup> Octarine is the mythical eighth color, visible only to those attuned to the arcane—wizards, witches, and, of course, cats. And occasionally, someone who’s stared at IPtable rules for too long. + +<sup>2</sup> Any sufficiently advanced technology is indistinguishable from magic…? + +<sup>3</sup> It’s not a coincidence 64 KEPs (Kubernetes Enhancement Proposals) are also included in v1.33. + +<sup>4</sup> See the Project Velocity section for v1.33 🚀 + +## How to use the logo? + +Three versions of the logo are provided: +- k8s133-octarine.svg +- k8s133-octarine.png +- k8s133-octarine-small.png + +The small logo is intended for use at smaller resolutions, such as a Slack react, or an icon. All other uses should use the main logo. diff --git a/releases/release-1.33/logo/k8s133-octarine.svg b/releases/release-1.33/logo/k8s133-octarine.svg index bf905464c82..72b7a924bb2 100644 --- a/releases/release-1.33/logo/k8s133-octarine.svg +++ b/releases/release-1.33/logo/k8s133-octarine.svg @@ -1,7829 +1,7829 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Created with Inkscape (http://www.inkscape.org/) --> - -<svg - width="194.58664mm" - height="170.103mm" - viewBox="0 0 194.58664 170.103" - version="1.1" - id="svg1" - xml:space="preserve" - inkscape:version="1.4 (e7c3feb1, 2024-10-09)" - sodipodi:docname="good.svg" - inkscape:export-filename="octarine.png" - inkscape:export-xdpi="96" - inkscape:export-ydpi="96" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:xlink="http://www.w3.org/1999/xlink" - xmlns="http://www.w3.org/2000/svg" - xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview - id="namedview1" - pagecolor="#ffffff" - bordercolor="#000000" - borderopacity="0.25" - inkscape:showpageshadow="2" - inkscape:pageopacity="0.0" - inkscape:pagecheckerboard="0" - inkscape:deskcolor="#d1d1d1" - inkscape:document-units="mm" - showguides="true" - inkscape:zoom="0.88649096" - inkscape:cx="371.12617" - inkscape:cy="333.33673" - inkscape:window-width="1728" - inkscape:window-height="950" - inkscape:window-x="0" - inkscape:window-y="38" - inkscape:window-maximized="0" - inkscape:current-layer="layer6-6"><inkscape:page - x="0" - y="-1.4757208e-14" - width="194.58664" - height="170.10298" - id="page2" - margin="0" - bleed="0" /></sodipodi:namedview><defs - id="defs1"><linearGradient - id="linearGradient118" - inkscape:collect="always"><stop - style="stop-color:#0e0503;stop-opacity:1;" - offset="0.2820513" - id="stop119" /><stop - style="stop-color:#481f1d;stop-opacity:1;" - offset="0.44444445" - id="stop118" /></linearGradient><linearGradient - id="linearGradient116" - inkscape:collect="always"><stop - style="stop-color:#140202;stop-opacity:1;" - offset="0.18518518" - id="stop116" /><stop - style="stop-color:#793b36;stop-opacity:1;" - offset="0.40455839" - id="stop117" /></linearGradient><linearGradient - id="linearGradient95" - inkscape:collect="always"><stop - style="stop-color:#572463;stop-opacity:1;" - offset="0" - id="stop95" /><stop - style="stop-color:#243d63;stop-opacity:1;" - offset="1" - id="stop96" /></linearGradient><linearGradient - id="swatch92" - inkscape:swatch="solid"><stop - style="stop-color:#000000;stop-opacity:1;" - offset="0" - id="stop93" /></linearGradient><linearGradient - id="swatch91" - inkscape:swatch="solid"><stop - style="stop-color:#243d63;stop-opacity:1;" - offset="0" - id="stop92" /></linearGradient><linearGradient - id="linearGradient256"><stop - style="stop-color:#ff0000;stop-opacity:0.71223283;" - offset="0" - id="stop86" /><stop - style="stop-color:#ff0000;stop-opacity:0;" - offset="1" - id="stop87" /></linearGradient><inkscape:path-effect - effect="powerstroke" - message="" - id="path-effect923" - is_visible="true" - lpeversion="1.3" - scale_width="1" - interpolator_type="CentripetalCatmullRom" - interpolator_beta="0.75" - start_linecap_type="round" - end_linecap_type="round" - offset_points="0,0.99218747" - linejoin_type="spiro" - miter_limit="4" - not_jump="true" - sort_points="true" /><inkscape:path-effect - effect="simplify" - id="path-effect922" - is_visible="true" - lpeversion="1.3" - threshold="0.012" - steps="1" - smooth_angles="0" - helper_size="0" - simplify_individual_paths="false" - simplify_just_coalesce="false" - step="1" /><inkscape:path-effect - effect="powerstroke" - message="" - id="path-effect228" - is_visible="true" - lpeversion="1.3" - scale_width="1" - interpolator_type="CentripetalCatmullRom" - interpolator_beta="0.75" - start_linecap_type="round" - end_linecap_type="round" - offset_points="67.651386,0.015502929" - linejoin_type="spiro" - miter_limit="4" - not_jump="true" - sort_points="true" /><inkscape:path-effect - effect="simplify" - id="path-effect227" - is_visible="true" - lpeversion="1.3" - threshold="0.012" - steps="1" - smooth_angles="0" - helper_size="0" - simplify_individual_paths="false" - simplify_just_coalesce="false" - step="1" /><inkscape:path-effect - effect="powerstroke" - message="" - id="path-effect172" - is_visible="true" - lpeversion="1.3" - scale_width="1" - interpolator_type="CentripetalCatmullRom" - interpolator_beta="0.75" - start_linecap_type="round" - end_linecap_type="round" - offset_points="4.9431876,0.23300209" - linejoin_type="spiro" - miter_limit="4" - not_jump="true" - sort_points="true" /><inkscape:path-effect - effect="simplify" - id="path-effect171" - is_visible="true" - lpeversion="1.3" - threshold="0.012" - steps="1" - smooth_angles="0" - helper_size="0" - simplify_individual_paths="false" - simplify_just_coalesce="false" - step="1" /><radialGradient - inkscape:collect="always" - xlink:href="#linearGradient256" - id="radialGradient257" - cx="103.1875" - cy="143.53647" - fx="103.1875" - fy="143.53647" - r="46.831249" - gradientTransform="matrix(1.0293254,0,0,2.4523443,-4.8996559,-194.82343)" - gradientUnits="userSpaceOnUse" /><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath323"><rect - style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.33007;stroke-dasharray:none;stroke-opacity:1" - id="rect324" - width="1317.684" - height="1325.7582" - x="1654.9097" - y="-2148.6746" - transform="scale(1,-1)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1234"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1234" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1235"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1235" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1236"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1236" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1237"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1237" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1238"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1238" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1239"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1239" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1242"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1242" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1243"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1243" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c 0,0 -0.08127,0.03743 -0.08127,0.03743 0,0 -0.08783,0.03715 -0.08783,0.03715 0,0 -0.09435,0.03686 -0.09435,0.03686 0,0 -0.100809,0.03658 -0.100809,0.03658 0,0 -0.107221,0.0363 -0.107221,0.0363 0,0 -0.113581,0.03602 -0.113581,0.03602 0,0 -0.119888,0.03574 -0.119888,0.03574 0,0 -0.126145,0.03545 -0.126145,0.03545 0,0 -0.132349,0.03517 -0.132349,0.03517 0,0 -0.138501,0.03489 -0.138501,0.03489 0,0 -0.144603,0.0346 -0.144603,0.0346 0,0 -0.150652,0.03432 -0.150652,0.03432 0,0 -0.156649,0.03404 -0.156649,0.03404 0,0 -0.162595,0.03375 -0.162595,0.03375 0,0 -0.16849,0.03347 -0.16849,0.03347 0,0 -0.174332,0.03319 -0.174332,0.03319 0,0 -0.180123,0.0329 -0.180123,0.0329 0,0 -0.185862,0.03262 -0.185862,0.03262 0,0 -0.19155,0.03234 -0.19155,0.03234 0,0 -0.197185,0.03205 -0.197185,0.03205 0,0 -0.202769,0.03177 -0.202769,0.03177 0,0 -0.208301,0.03149 -0.208301,0.03149 0,0 -0.213782,0.0312 -0.213782,0.0312 0,0 -0.219211,0.03092 -0.219211,0.03092 0,0 -0.224588,0.03063 -0.224588,0.03063 0,0 -0.229914,0.03035 -0.229914,0.03035 0,0 -0.235187,0.03007 -0.235187,0.03007 0,0 -0.240409,0.02978 -0.240409,0.02978 0,0 -0.24558,0.0295 -0.24558,0.0295 0,0 -0.250699,0.02921 -0.250699,0.02921 0,0 -0.255765,0.02893 -0.255765,0.02893 0,0 -0.260781,0.02864 -0.260781,0.02864 0,0 -0.265744,0.02836 -0.265744,0.02836 0,0 -0.270657,0.02807 -0.270657,0.02807 0,0 -0.275516,0.02779 -0.275516,0.02779 0,0 -0.280325,0.02751 -0.280325,0.02751 0,0 -0.285082,0.02722 -0.285082,0.02722 0,0 -0.289787,0.02693 -0.289787,0.02693 0,0 -0.29444,0.02665 -0.29444,0.02665 0,0 -0.299042,0.02636 -0.299042,0.02636 0,0 -0.303591,0.02608 -0.303591,0.02608 0,0 -0.30809,0.02579 -0.30809,0.02579 0,0 -0.312537,0.02551 -0.312537,0.02551 0,0 -0.316932,0.02522 -0.316932,0.02522 0,0 -0.321274,0.02494 -0.321274,0.02494 0,0 -0.325566,0.02465 -0.325566,0.02465 0,0 -0.329806,0.02436 -0.329806,0.02436 0,0 -0.333994,0.02408 -0.333994,0.02408 0,0 -0.338131,0.02379 -0.338131,0.02379 0,0 -0.342215,0.02351 -0.342215,0.02351 0,0 -0.346248,0.02322 -0.346248,0.02322 0,0 -0.350229,0.02293 -0.350229,0.02293 0,0 -0.354159,0.02265 -0.354159,0.02265 0,0 -0.358037,0.02236 -0.358037,0.02236 0,0 -0.361862,0.02207 -0.361862,0.02207 0,0 -0.365638,0.02179 -0.365638,0.02179 0,0 -0.36936,0.0215 -0.36936,0.0215 0,0 -0.373031,0.02121 -0.373031,0.02121 0,0 -0.37665,0.02093 -0.37665,0.02093 0,0 -0.380218,0.02064 -0.380218,0.02064 0,0 -0.383734,0.02035 -0.383734,0.02035 0,0 -0.387199,0.02006 -0.387199,0.02006 0,0 -0.390611,0.01978 -0.390611,0.01978 0,0 -0.393971,0.01949 -0.393971,0.01949 0,0 -0.397281,0.0192 -0.397281,0.0192 0,0 -0.400539,0.01891 -0.400539,0.01891 0,0 -0.403744,0.01863 -0.403744,0.01863 0,0 -0.406898,0.01834 -0.406898,0.01834 0,0 -0.41,0.01805 -0.41,0.01805 0,0 -0.413051,0.01776 -0.413051,0.01776 0,0 -0.41605,0.01748 -0.41605,0.01748 0,0 -0.418998,0.01719 -0.418998,0.01719 0,0 -0.421892,0.0169 -0.421892,0.0169 0,0 -0.424737,0.01661 -0.424737,0.01661 0,0 -0.427529,0.01632 -0.427529,0.01632 0,0 -0.430269,0.01603 -0.430269,0.01603 0,0 -0.432958,0.01575 -0.432958,0.01575 0,0 -0.435595,0.01546 -0.435595,0.01546 0,0 -0.43818,0.01517 -0.43818,0.01517 0,0 -0.440714,0.01488 -0.440714,0.01488 0,0 -0.443196,0.01459 -0.443196,0.01459 0,0 -0.445626,0.0143 -0.445626,0.0143 0,0 -0.448005,0.01401 -0.448005,0.01401 0,0 -0.450331,0.01372 -0.450331,0.01372 0,0 -0.452607,0.01343 -0.452607,0.01343 0,0 -0.45483,0.01314 -0.45483,0.01314 0,0 -0.457002,0.01286 -0.457002,0.01286 0,0 -0.459121,0.01257 -0.459121,0.01257 0,0 -0.461191,0.01228 -0.461191,0.01228 0,0 -0.463206,0.01199 -0.463206,0.01199 0,0 -0.465172,0.0117 -0.465172,0.0117 0,0 -0.467085,0.01141 -0.467085,0.01141 0,0 -0.468946,0.01112 -0.468946,0.01112 0,0 -0.470756,0.01083 -0.470756,0.01083 0,0 -0.472515,0.01054 -0.472515,0.01054 0,0 -0.47422,0.01025 -0.47422,0.01025 0,0 -0.475876,0.01 -0.475876,0.01 0,0 -0.477478,0.0097 -0.477478,0.0097 0,0 -0.47903,0.0094 -0.47903,0.0094 0,0 -0.480529,0.0091 -0.480529,0.0091 0,0 -0.481977,0.0088 -0.481977,0.0088 0,0 -0.483374,0.0085 -0.483374,0.0085 0,0 -0.484718,0.0082 -0.484718,0.0082 0,0 -0.486011,0.0079 -0.486011,0.0079 0,0 -0.487251,0.0076 -0.487251,0.0076 0,0 -0.488442,0.0073 -0.488442,0.0073 0,0 -0.489579,0.007 -0.489579,0.007 0,0 -0.490665,0.0068 -0.490665,0.0068 0,0 -0.491699,0.0065 -0.491699,0.0065 0,0 -0.492682,0.0062 -0.492682,0.0062 0,0 -0.493613,0.0059 -0.493613,0.0059 0,0 -0.494492,0.0056 -0.494492,0.0056 0,0 -0.495319,0.0053 -0.495319,0.0053 0,0 -0.496095,0.005 -0.496095,0.005 0,0 -0.49682,0.0047 -0.49682,0.0047 0,0 -0.497491,0.0044 -0.497491,0.0044 0,0 -0.498113,0.0041 -0.498113,0.0041 0,0 -0.498681,0.0038 -0.498681,0.0038 0,0 -0.499199,0.0035 -0.499199,0.0035 0,0 -0.499664,0.0033 -0.499664,0.0033 0,0 -0.500078,0.003 -0.500078,0.003 0,0 -0.500441,0.0027 -0.500441,0.0027 0,0 -0.500751,0.0024 -0.500751,0.0024 0,0 -0.501009,0.0021 -0.501009,0.0021 0,0 -0.501217,0.0018 -0.501217,0.0018 0,0 -0.501372,0.0015 -0.501372,0.0015 0,0 -0.501476,0.0012 -0.501476,0.0012 0,0 -0.501528,9.15e-4 -0.501528,9.15e-4 0,0 -0.501528,6.22e-4 -0.501528,6.22e-4 0,0 -0.501476,3.29e-4 -0.501476,3.29e-4 0,0 -0.501374,3.6e-5 -0.501374,3.6e-5 0,0 -0.501218,-2.58e-4 -0.501218,-2.58e-4 0,0 -0.501013,-5.51e-4 -0.501013,-5.51e-4 0,0 -0.500753,-8.45e-4 -0.500753,-8.45e-4 0,0 -0.500444,-0.0011 -0.500444,-0.0011 0,0 -0.500083,-0.0014 -0.500083,-0.0014 0,0 -0.499669,-0.0017 -0.499669,-0.0017 0,0 -0.499204,-0.002 -0.499204,-0.002 0,0 -0.498687,-0.0023 -0.498687,-0.0023 0,0 -0.498119,-0.0026 -0.498119,-0.0026 0,0 -0.497498,-0.0029 -0.497498,-0.0029 0,0 -0.496827,-0.0032 -0.496827,-0.0032 0,0 -0.496104,-0.0035 -0.496104,-0.0035 0,0 -0.495328,-0.0038 -0.495328,-0.0038 0,0 -0.494501,-0.0041 -0.494501,-0.0041 0,0 -0.493622,-0.0044 -0.493622,-0.0044 0,0 -0.492692,-0.0047 -0.492692,-0.0047 0,0 -0.49171,-0.005 -0.49171,-0.005 0,0 -0.490677,-0.0053 -0.490677,-0.0053 0,0 -0.489591,-0.0056 -0.489591,-0.0056 0,0 -0.488453,-0.0058 -0.488453,-0.0058 0,0 -0.487265,-0.0061 -0.487265,-0.0061 0,0 -0.486025,-0.0064 -0.486025,-0.0064 0,0 -0.484732,-0.0067 -0.484732,-0.0067 0,0 -0.483388,-0.007 -0.483388,-0.007 0,0 -0.481992,-0.0073 -0.481992,-0.0073 0,0 -0.480545,-0.0076 -0.480545,-0.0076 0,0 -0.479047,-0.0079 -0.479047,-0.0079 0,0 -0.477495,-0.0082 -0.477495,-0.0082 0,0 -0.475893,-0.0085 -0.475893,-0.0085 0,0 -0.474238,-0.0088 -0.474238,-0.0088 0,0 -0.472533,-0.0091 -0.472533,-0.0091 0,0 -0.470776,-0.0094 -0.470776,-0.0094 0,0 -0.468966,-0.0097 -0.468966,-0.0097 0,0 -0.467105,-0.01 -0.467105,-0.01 0,0 -0.465192,-0.01028 -0.465192,-0.01028 0,0 -0.463228,-0.01058 -0.463228,-0.01058 0,0 -0.461212,-0.01087 -0.461212,-0.01087 0,0 -0.459144,-0.01117 -0.459144,-0.01117 0,0 -0.457025,-0.01147 -0.457025,-0.01147 0,0 -0.454853,-0.01176 -0.454853,-0.01176 0,0 -0.452631,-0.01206 -0.452631,-0.01206 0,0 -0.450356,-0.01236 -0.450356,-0.01236 0,0 -0.44803,-0.01265 -0.44803,-0.01265 0,0 -0.445652,-0.01295 -0.445652,-0.01295 0,0 -0.443222,-0.01325 -0.443222,-0.01325 0,0 -0.440741,-0.01355 -0.440741,-0.01355 0,0 -0.438208,-0.01384 -0.438208,-0.01384 0,0 -0.435623,-0.01414 -0.435623,-0.01414 0,0 -0.432986,-0.01444 -0.432986,-0.01444 0,0 -0.430298,-0.01474 -0.430298,-0.01474 0,0 -0.427559,-0.01503 -0.427559,-0.01503 0,0 -0.424767,-0.01533 -0.424767,-0.01533 0,0 -0.421923,-0.01563 -0.421923,-0.01563 0,0 -0.419029,-0.01593 -0.419029,-0.01593 0,0 -0.416082,-0.01622 -0.416082,-0.01622 0,0 -0.413083,-0.01652 -0.413083,-0.01652 0,0 -0.410034,-0.01682 -0.410034,-0.01682 0,0 -0.406931,-0.01712 -0.406931,-0.01712 0,0 -0.403778,-0.01742 -0.403778,-0.01742 0,0 -0.400573,-0.01772 -0.400573,-0.01772 0,0 -0.397316,-0.01802 -0.397316,-0.01802 0,0 -0.394008,-0.01831 -0.394008,-0.01831 0,0 -0.390647,-0.01861 -0.390647,-0.01861 0,0 -0.387235,-0.01891 -0.387235,-0.01891 0,0 -0.383771,-0.01921 -0.383771,-0.01921 0,0 -0.380257,-0.01951 -0.380257,-0.01951 0,0 -0.376688,-0.01981 -0.376688,-0.01981 0,0 -0.373071,-0.02011 -0.373071,-0.02011 0,0 -0.369399,-0.02041 -0.369399,-0.02041 0,0 -0.365678,-0.02071 -0.365678,-0.02071 0,0 -0.361903,-0.02101 -0.361903,-0.02101 0,0 -0.358078,-0.0213 -0.358078,-0.0213 0,0 -0.354201,-0.0216 -0.354201,-0.0216 0,0 -0.350271,-0.0219 -0.350271,-0.0219 0,0 -0.346291,-0.0222 -0.346291,-0.0222 0,0 -0.342255,-0.0225 -0.342255,-0.0225 0,0 -0.33818,-0.0228 -0.33818,-0.0228 0,0 -0.33404,-0.0231 -0.33404,-0.0231 0,0 -0.32985,-0.0234 -0.32985,-0.0234 0,0 -0.32561,-0.0237 -0.32561,-0.0237 0,0 -0.32132,-0.024 -0.32132,-0.024 0,0 -0.31698,-0.0243 -0.31698,-0.0243 0,0 -0.31258,-0.0246 -0.31258,-0.0246 0,0 -0.30814,-0.0249 -0.30814,-0.0249 0,0 -0.30364,-0.0252 -0.30364,-0.0252 0,0 -0.29909,-0.02551 -0.29909,-0.02551 0,0 -0.29449,-0.02581 -0.29449,-0.02581 0,0 -0.28984,-0.02611 -0.28984,-0.02611 0,0 -0.28513,-0.02641 -0.28513,-0.02641 0,0 -0.28038,-0.02671 -0.28038,-0.02671 0,0 -0.27557,-0.02701 -0.27557,-0.02701 0,0 -0.2707,-0.02731 -0.2707,-0.02731 0,0 -0.2658,-0.02761 -0.2658,-0.02761 0,0 -0.26084,-0.02791 -0.26084,-0.02791 0,0 -0.25582,-0.02822 -0.25582,-0.02822 0,0 -0.25075,-0.02852 -0.25075,-0.02852 0,0 -0.24563,-0.02882 -0.24563,-0.02882 0,0 -0.24047,-0.02912 -0.24047,-0.02912 0,0 -0.23524,-0.02942 -0.23524,-0.02942 0,0 -0.22997,-0.02972 -0.22997,-0.02972 0,0 -0.22465,-0.03003 -0.22465,-0.03003 0,0 -0.21927,-0.03033 -0.21927,-0.03033 0,0 -0.21384,-0.03063 -0.21384,-0.03063 0,0 -0.20836,-0.03093 -0.20836,-0.03093 0,0 -0.20283,-0.03124 -0.20283,-0.03124 0,0 -0.19724,-0.03154 -0.19724,-0.03154 0,0 -0.19161,-0.03184 -0.19161,-0.03184 0,0 -0.18592,-0.03214 -0.18592,-0.03214 0,0 -0.18019,-0.03244 -0.18019,-0.03244 0,0 -0.17439,-0.03275 -0.17439,-0.03275 0,0 -0.16856,-0.03305 -0.16856,-0.03305 0,0 -0.16265,-0.03335 -0.16265,-0.03335 0,0 -0.15672,-0.03366 -0.15672,-0.03366 0,0 -0.15071,-0.03396 -0.15071,-0.03396 0,0 -0.14467,-0.03426 -0.14467,-0.03426 0,0 -0.13857,-0.03457 -0.13857,-0.03457 0,0 -0.13241,-0.03487 -0.13241,-0.03487 0,0 -0.12622,-0.03517 -0.12622,-0.03517 0,0 -0.11995,-0.03548 -0.11995,-0.03548 0,0 -0.11365,-0.03578 -0.11365,-0.03578 0,0 -0.10729,-0.03608 -0.10729,-0.03608 0,0 -0.10088,-0.03639 -0.10088,-0.03639 0,0 -0.0944,-0.03669 -0.0944,-0.03669 0,0 -0.0879,-0.037 -0.0879,-0.037 0,0 -0.0813,-0.0373 -0.0813,-0.0373 0,0 -0.08,-0.04012 -0.08,-0.04012 0,0 -0.0839,-0.04543 -0.0839,-0.04543 0,0 -0.0877,-0.0507 -0.0877,-0.0507 0,0 -0.0915,-0.05593 -0.0915,-0.05593 0,0 -0.0953,-0.06112 -0.0953,-0.06112 0,0 -0.099,-0.06627 -0.099,-0.06627 0,0 -0.10276,-0.07138 -0.10276,-0.07138 0,0 -0.10644,-0.07645 -0.10644,-0.07645 0,0 -0.11009,-0.08147 -0.11009,-0.08147 0,0 -0.1137,-0.08646 -0.1137,-0.08646 0,0 -0.11729,-0.09141 -0.11729,-0.09141 0,0 -0.12085,-0.09632 -0.12085,-0.09632 0,0 -0.12436,-0.101182 -0.12436,-0.101182 0,0 -0.12786,-0.106008 -0.12786,-0.106008 0,0 -0.13131,-0.110794 -0.13131,-0.110794 0,0 -0.13473,-0.115539 -0.13473,-0.115539 0,0 -0.13812,-0.120244 -0.13812,-0.120244 0,0 -0.14149,-0.124908 -0.14149,-0.124908 0,0 -0.14481,-0.129533 -0.14481,-0.129533 0,0 -0.1481,-0.134116 -0.1481,-0.134116 0,0 -0.15137,-0.13866 -0.15137,-0.13866 0,0 -0.15459,-0.143163 -0.15459,-0.143163 0,0 -0.15779,-0.147626 -0.15779,-0.147626 0,0 -0.16096,-0.152048 -0.16096,-0.152048 0,0 -0.16409,-0.15643 -0.16409,-0.15643 0,0 -0.16719,-0.160772 -0.16719,-0.160772 0,0 -0.17026,-0.165073 -0.17026,-0.165073 0,0 -0.1733,-0.169334 -0.1733,-0.169334 0,0 -0.17629,-0.173554 -0.17629,-0.173554 0,0 -0.17927,-0.177735 -0.17927,-0.177735 0,0 -0.18221,-0.181874 -0.18221,-0.181874 0,0 -0.18511,-0.185973 -0.18511,-0.185973 0,0 -0.18799,-0.190033 -0.18799,-0.190033 0,0 -0.19083,-0.194051 -0.19083,-0.194051 0,0 -0.19364,-0.19803 -0.19364,-0.19803 0,0 -0.19642,-0.201967 -0.19642,-0.201967 0,0 -0.19916,-0.205865 -0.19916,-0.205865 0,0 -0.20187,-0.209722 -0.20187,-0.209722 0,0 -0.20455,-0.213539 -0.20455,-0.213539 0,0 -0.2072,-0.217316 -0.2072,-0.217316 0,0 -0.20982,-0.221051 -0.20982,-0.221051 0,0 -0.2124,-0.224747 -0.2124,-0.224747 0,0 -0.21495,-0.228402 -0.21495,-0.228402 0,0 -0.21747,-0.232017 -0.21747,-0.232017 0,0 -0.21995,-0.235592 -0.21995,-0.235592 0,0 -0.22241,-0.239126 -0.22241,-0.239126 0,0 -0.22483,-0.24262 -0.22483,-0.24262 0,0 -0.22722,-0.246073 -0.22722,-0.246073 0,0 -0.22958,-0.249487 -0.22958,-0.249487 0,0 -0.2319,-0.252859 -0.2319,-0.252859 0,0 -0.23419,-0.256191 -0.23419,-0.256191 0,0 -0.23645,-0.259483 -0.23645,-0.259483 0,0 -0.23868,-0.262735 -0.23868,-0.262735 0,0 -0.24088,-0.265946 -0.24088,-0.265946 0,0 -0.24303,-0.269117 -0.24303,-0.269117 0,0 -0.24517,-0.272247 -0.24517,-0.272247 0,0 -0.24727,-0.275338 -0.24727,-0.275338 0,0 -0.24933,-0.278387 -0.24933,-0.278387 0,0 -0.25137,-0.281397 -0.25137,-0.281397 0,0 -0.25337,-0.284365 -0.25337,-0.284365 0,0 -0.25533,-0.287295 -0.25533,-0.287295 0,0 -0.25728,-0.290182 -0.25728,-0.290182 0,0 -0.25917,-0.29303 -0.25917,-0.29303 0,0 -0.26105,-0.295838 -0.26105,-0.295838 0,0 -0.26289,-0.298605 -0.26289,-0.298605 0,0 -0.2647,-0.301332 -0.2647,-0.301332 0,0 -0.26647,-0.304018 -0.26647,-0.304018 0,0 -0.26821,-0.306664 -0.26821,-0.306664 0,0 -0.26993,-0.30927 -0.26993,-0.30927 0,0 -0.2716,-0.311835 -0.2716,-0.311835 0,0 -0.27325,-0.31436 -0.27325,-0.31436 0,0 -0.27486,-0.316844 -0.27486,-0.316844 0,0 -0.27644,-0.319289 -0.27644,-0.319289 0,0 -0.27799,-0.321692 -0.27799,-0.321692 0,0 -0.27951,-0.324056 -0.27951,-0.324056 0,0 -0.28099,-0.326379 -0.28099,-0.326379 0,0 -0.28244,-0.328662 -0.28244,-0.328662 0,0 -0.28387,-0.330903 -0.28387,-0.330903 0,0 -0.28525,-0.333106 -0.28525,-0.333106 0,0 -0.2866,-0.335268 -0.2866,-0.335268 0,0 -0.28793,-0.337388 -0.28793,-0.337388 0,0 -0.28921,-0.33947 -0.28921,-0.33947 0,0 -0.29048,-0.341509 -0.29048,-0.341509 0,0 -0.2917,-0.34351 -0.2917,-0.34351 0,0 -0.29289,-0.34547 -0.29289,-0.34547 0,0 -0.29405,-0.347389 -0.29405,-0.347389 0,0 -0.29519,-0.349268 -0.29519,-0.349268 0,0 -0.29628,-0.351106 -0.29628,-0.351106 0,0 -0.29734,-0.352905 -0.29734,-0.352905 0,0 -0.29837,-0.354662 -0.29837,-0.354662 0,0 -0.29937,-0.356381 -0.29937,-0.356381 0,0 -0.30034,-0.358057 -0.30034,-0.358057 0,0 -0.30128,-0.359694 -0.30128,-0.359694 0,0 -0.30217,-0.36129 -0.30217,-0.36129 0,0 -0.30305,-0.362846 -0.30305,-0.362846 0,0 -0.30388,-0.364362 -0.30388,-0.364362 0,0 -0.30469,-0.365837 -0.30469,-0.365837 0,0 -0.30547,-0.367272 -0.30547,-0.367272 0,0 -0.3062,-0.368667 -0.3062,-0.368667 0,0 -0.30691,-0.37002 -0.30691,-0.37002 0,0 -0.30759,-0.371335 -0.30759,-0.371335 0,0 -0.30823,-0.372607 -0.30823,-0.372607 0,0 -0.30884,-0.373841 -0.30884,-0.373841 0,0 -0.30942,-0.375034 -0.30942,-0.375034 0,0 -0.30996,-0.376186 -0.30996,-0.376186 0,0 -0.31049,-0.377297 -0.31049,-0.377297 0,0 -0.31096,-0.378369 -0.31096,-0.378369 0,0 -0.31141,-0.379401 -0.31141,-0.379401 0,0 -0.31183,-0.380391 -0.31183,-0.380391 0,0 -0.31222,-0.381342 -0.31222,-0.381342 0,0 -0.31256,-0.382251 -0.31256,-0.382251 0,0 -0.31289,-0.383122 -0.31289,-0.383122 0,0 -0.31318,-0.38395 -0.31318,-0.38395 0,0 -0.31343,-0.38474 -0.31343,-0.38474 0,0 -0.31366,-0.385488 -0.31366,-0.385488 0,0 -0.31384,-0.386196 -0.31384,-0.386196 0,0 -0.31401,-0.386865 -0.31401,-0.386865 0,0 -0.31413,-0.387491 -0.31413,-0.387491 0,0 -0.31422,-0.388079 -0.31422,-0.388079 0,0 -0.31429,-0.388625 -0.31429,-0.388625 0,0 -0.31432,-0.389132 -0.31432,-0.389132 0,0 -0.31431,-0.389598 -0.31431,-0.389598 0,0 -0.31428,-0.390023 -0.31428,-0.390023 0,0 -0.31421,-0.390409 -0.31421,-0.390409 0,0 -0.31411,-0.390753 -0.31411,-0.390753 0,0 -0.31398,-0.391058 -0.31398,-0.391058 0,0 -0.31381,-0.391322 -0.31381,-0.391322 0,0 -0.31362,-0.391546 -0.31362,-0.391546 0,0 -0.31339,-0.391729 -0.31339,-0.391729 0,0 -0.31312,-0.391872 -0.31312,-0.391872 0,0 -0.31284,-0.391975 -0.31284,-0.391975 0,0 -0.3125,-0.392037 -0.3125,-0.392037 0,0 -0.31215,-0.392059 -0.31215,-0.392059 0,0 -0.31176,-0.39204 -0.31176,-0.39204 0,0 -0.31133,-0.391982 -0.31133,-0.391982 0,0 -0.31088,-0.391882 -0.31088,-0.391882 0,0 -0.31039,-0.391743 -0.31039,-0.391743 0,0 -0.30987,-0.391563 -0.30987,-0.391563 0,0 -0.30932,-0.391342 -0.30932,-0.391342 0,0 -0.30873,-0.391082 -0.30873,-0.391082 0,0 -0.30812,-0.39078 -0.30812,-0.39078 0,0 -0.30746,-0.39044 -0.30746,-0.39044 0,0 -0.30679,-0.390057 -0.30679,-0.390057 0,0 -0.30607,-0.389635 -0.30607,-0.389635 0,0 -0.30532,-0.389173 -0.30532,-0.389173 0,0 -0.30455,-0.388669 -0.30455,-0.388669 0,0 -0.30373,-0.388127 -0.30373,-0.388127 0,0 -0.30289,-0.387542 -0.30289,-0.387542 0,0 -0.30202,-0.386919 -0.30202,-0.386919 0,0 -0.30111,-0.386254 -0.30111,-0.386254 0,0 -0.30016,-0.385549 -0.30016,-0.385549 0,0 -0.2992,-0.384805 -0.2992,-0.384805 0,0 -0.29819,-0.384018 -0.29819,-0.384018 0,0 -0.29715,-0.383193 -0.29715,-0.383193 0,0 -0.29608,-0.382327 -0.29608,-0.382327 0,0 -0.29498,-0.381419 -0.29498,-0.381419 0,0 -0.29385,-0.380473 -0.29385,-0.380473 0,0 -0.29268,-0.379486 -0.29268,-0.379486 0,0 -0.29148,-0.378457 -0.29148,-0.378457 0,0 -0.29025,-0.37739 -0.29025,-0.37739 0,0 -0.28898,-0.376281 -0.28898,-0.376281 0,0 -0.28769,-0.375132 -0.28769,-0.375132 0,0 -0.28636,-0.373943 -0.28636,-0.373943 0,0 -0.28501,-0.372713 -0.28501,-0.372713 0,0 -0.2836,-0.371443 -0.2836,-0.371443 0,0 -0.28219,-0.370133 -0.28219,-0.370133 0,0 -0.28072,-0.368782 -0.28072,-0.368782 0,0 -0.27924,-0.367391 -0.27924,-0.367391 0,0 -0.27771,-0.36596 -0.27771,-0.36596 0,0 -0.27616,-0.364487 -0.27616,-0.364487 0,0 -0.27457,-0.362976 -0.27457,-0.362976 0,0 -0.27295,-0.361423 -0.27295,-0.361423 0,0 -0.2713,-0.35983 -0.2713,-0.35983 0,0 -0.26962,-0.358196 -0.26962,-0.358196 0,0 -0.2679,-0.356523 -0.2679,-0.356523 0,0 -0.26615,-0.354809 -0.26615,-0.354809 0,0 -0.26437,-0.353054 -0.26437,-0.353054 0,0 -0.26256,-0.35126 -0.26256,-0.35126 0,0 -0.26071,-0.349424 -0.26071,-0.349424 0,0 -0.25884,-0.347549 -0.25884,-0.347549 0,0 -0.25692,-0.345633 -0.25692,-0.345633 0,0 -0.25499,-0.343676 -0.25499,-0.343676 0,0 -0.253,-0.34168 -0.253,-0.34168 0,0 -0.251,-0.339643 -0.251,-0.339643 0,0 -0.24897,-0.337565 -0.24897,-0.337565 0,0 -0.24688,-0.335448 -0.24688,-0.335448 0,0 -0.24479,-0.33329 -0.24479,-0.33329 0,0 -0.24265,-0.33109 -0.24265,-0.33109 0,0 -0.24048,-0.328852 -0.24048,-0.328852 0,0 -0.23828,-0.326573 -0.23828,-0.326573 0,0 -0.23604,-0.324253 -0.23604,-0.324253 0,0 -0.23378,-0.321893 -0.23378,-0.321893 0,0 -0.23149,-0.319493 -0.23149,-0.319493 0,0 -0.22915,-0.317052 -0.22915,-0.317052 0,0 -0.22679,-0.314571 -0.22679,-0.314571 0,0 -0.22439,-0.312049 -0.22439,-0.312049 0,0 -0.22197,-0.309487 -0.22197,-0.309487 0,0 -0.2195,-0.306886 -0.2195,-0.306886 0,0 -0.21702,-0.304242 -0.21702,-0.304242 0,0 -0.21449,-0.30156 -0.21449,-0.30156 0,0 -0.21193,-0.298836 -0.21193,-0.298836 0,0 -0.20935,-0.296072 -0.20935,-0.296072 0,0 -0.20672,-0.293269 -0.20672,-0.293269 0,0 -0.20407,-0.290424 -0.20407,-0.290424 0,0 -0.20139,-0.287539 -0.20139,-0.287539 0,0 -0.19866,-0.284613 -0.19866,-0.284613 0,0 -0.19592,-0.281649 -0.19592,-0.281649 0,0 -0.19313,-0.278642 -0.19313,-0.278642 0,0 -0.19032,-0.275596 -0.19032,-0.275596 0,0 -0.18747,-0.272509 -0.18747,-0.272509 0,0 -0.18459,-0.269382 -0.18459,-0.269382 0,0 -0.18168,-0.266215 -0.18168,-0.266215 0,0 -0.17873,-0.263007 -0.17873,-0.263007 0,0 -0.17576,-0.259759 -0.17576,-0.259759 0,0 -0.17274,-0.25647 -0.17274,-0.25647 0,0 -0.16971,-0.253141 -0.16971,-0.253141 0,0 -0.16663,-0.249772 -0.16663,-0.249772 0,0 -0.16353,-0.246363 -0.16353,-0.246363 0,0 -0.16038,-0.242912 -0.16038,-0.242912 0,0 -0.15722,-0.239422 -0.15722,-0.239422 0,0 -0.15401,-0.235891 -0.15401,-0.235891 0,0 -0.15078,-0.23232 -0.15078,-0.23232 0,0 -0.14751,-0.228708 -0.14751,-0.228708 0,0 -0.14421,-0.225056 -0.14421,-0.225056 0,0 -0.14088,-0.221365 -0.14088,-0.221365 0,0 -0.13751,-0.217631 -0.13751,-0.217631 0,0 -0.13411,-0.213859 -0.13411,-0.213859 0,0 -0.13069,-0.210045 -0.13069,-0.210045 0,0 -0.12722,-0.206191 -0.12722,-0.206191 0,0 -0.12373,-0.202298 -0.12373,-0.202298 0,0 -0.12021,-0.198362 -0.12021,-0.198362 0,0 -0.11664,-0.194388 -0.11664,-0.194388 0,0 -0.11306,-0.190373 -0.11306,-0.190373 0,0 -0.10943,-0.186317 -0.10943,-0.186317 0,0 -0.10577,-0.182221 -0.10577,-0.182221 0,0 -0.10209,-0.178085 -0.10209,-0.178085 0,0 -0.0984,-0.173908 -0.0984,-0.173908 0,0 -0.0946,-0.169691 -0.0946,-0.169691 0,0 -0.0908,-0.165433 -0.0908,-0.165433 0,0 -0.087,-0.161136 -0.087,-0.161136 0,0 -0.0832,-0.156797 -0.0832,-0.156797 0,0 -0.0793,-0.152419 -0.0793,-0.152419 0,0 -0.0754,-0.148 -0.0754,-0.148 0,0 -0.0714,-0.143541 -0.0714,-0.143541 0,0 -0.0674,-0.139041 -0.0674,-0.139041 0,0 -0.0634,-0.1345 -0.0634,-0.1345 0,0 -0.0594,-0.129921 -0.0594,-0.129921 0,0 -0.0553,-0.125299 -0.0553,-0.125299 0,0 -0.0512,-0.120639 -0.0512,-0.120639 0,0 -0.0471,-0.115937 -0.0471,-0.115937 0,0 -0.0429,-0.111194 -0.0429,-0.111194 0,0 -0.0387,-0.106413 -0.0387,-0.106413 0,0 -0.0344,-0.10159 -0.0344,-0.10159 0,0 -0.0302,-0.09673 -0.0302,-0.09673 0,0 -0.0259,-0.09182 -0.0259,-0.09182 0,0 -0.0215,-0.08688 -0.0215,-0.08688 0,0 -0.0185,-0.08759 -0.0185,-0.08759 0,0 -0.0167,-0.09394 -0.0167,-0.09394 0,0 -0.015,-0.100245 -0.015,-0.100245 0,0 -0.0133,-0.106497 -0.0133,-0.106497 0,0 -0.0115,-0.1127 -0.0115,-0.1127 0,0 -0.01,-0.118851 -0.01,-0.118851 0,0 -0.008,-0.124953 -0.008,-0.124953 0,0 -0.006,-0.131002 -0.006,-0.131002 0,0 -0.005,-0.137003 -0.005,-0.137003 0,0 -0.003,-0.142952 -0.003,-0.142952 0,0 -0.002,-0.14885 -0.002,-0.14885 0,0 1.3e-4,-0.1547 1.3e-4,-0.1547 0,0 0.002,-0.160496 0.002,-0.160496 0,0 0.003,-0.1662445 0.003,-0.1662445 0,0 0.005,-0.1719407 0.005,-0.1719407 0,0 0.007,-0.1775869 0.007,-0.1775869 0,0 0.008,-0.1831825 0.008,-0.1831825 0,0 0.01,-0.1887275 0.01,-0.1887275 0,0 0.0112,-0.194222 0.0112,-0.194222 0,0 0.0128,-0.199666 0.0128,-0.199666 0,0 0.0143,-0.2050595 0.0143,-0.2050595 0,0 0.0158,-0.2104023 0.0158,-0.2104023 0,0 0.0173,-0.2156946 0.0173,-0.2156946 0,0 0.0188,-0.2209365 0.0188,-0.2209365 0,0 0.0203,-0.2261278 0.0203,-0.2261278 0,0 0.0218,-0.2312684 0.0218,-0.2312684 0,0 0.0232,-0.2363587 0.0232,-0.2363587 0,0 0.0247,-0.2413983 0.0247,-0.2413983 0,0 0.0261,-0.2463874 0.0261,-0.2463874 0,0 0.0276,-0.251326 0.0276,-0.251326 0,0 0.029,-0.256214 0.029,-0.256214 0,0 0.0304,-0.2610514 0.0304,-0.2610514 0,0 0.0318,-0.2658385 0.0318,-0.2658385 0,0 0.0331,-0.2705748 0.0331,-0.2705748 0,0 0.0345,-0.2752606 0.0345,-0.2752606 0,0 0.0359,-0.279896 0.0359,-0.279896 0,0 0.0372,-0.2844808 0.0372,-0.2844808 0,0 0.0385,-0.289015 0.0385,-0.289015 0,0 0.0399,-0.2934987 0.0399,-0.2934987 0,0 0.0412,-0.2979319 0.0412,-0.2979319 0,0 0.0425,-0.3023144 0.0425,-0.3023144 0,0 0.0438,-0.3066466 0.0438,-0.3066466 0,0 0.0451,-0.3109281 0.0451,-0.3109281 0,0 0.0463,-0.315159 0.0463,-0.315159 0,0 0.0476,-0.3193396 0.0476,-0.3193396 0,0 0.0488,-0.3234694 0.0488,-0.3234694 0,0 0.05,-0.3275488 0.05,-0.3275488 0,0 0.0513,-0.3315776 0.0513,-0.3315776 0,0 0.0525,-0.33555596 0.0525,-0.33555596 0,0 0.0537,-0.33948367 0.0537,-0.33948367 0,0 0.0548,-0.34336088 0.0548,-0.34336088 0,0 0.056,-0.34718754 0.056,-0.34718754 0,0 0.0572,-0.35096367 0.0572,-0.35096367 0,0 0.0583,-0.35468926 0.0583,-0.35468926 0,0 0.0595,-0.35836432 0.0595,-0.35836432 0,0 0.0606,-0.3619888 0.0606,-0.3619888 0,0 0.0617,-0.3655627 0.0617,-0.3655627 0,0 0.0628,-0.3690862 0.0628,-0.3690862 0,0 0.0639,-0.3725591 0.0639,-0.3725591 0,0 0.065,-0.3759814 0.065,-0.3759814 0,0 0.066,-0.3793532 0.066,-0.3793532 0,0 0.0671,-0.3826745 0.0671,-0.3826745 0,0 0.0682,-0.3859451 0.0682,-0.3859451 0,0 0.0692,-0.3891654 0.0692,-0.3891654 0,0 0.0702,-0.392335 0.0702,-0.392335 0,0 0.0712,-0.3954541 0.0712,-0.3954541 0,0 0.0722,-0.3985226 0.0722,-0.3985226 0,0 0.0732,-0.4015407 0.0732,-0.4015407 0,0 0.0742,-0.4045081 0.0742,-0.4045081 0,0 0.0752,-0.4074251 0.0752,-0.4074251 0,0 0.0761,-0.4102914 0.0761,-0.4102914 0,0 0.0771,-0.4131073 0.0771,-0.4131073 0,0 0.078,-0.4158726 0.078,-0.4158726 0,0 0.0789,-0.4185874 0.0789,-0.4185874 0,0 0.0798,-0.4212516 0.0798,-0.4212516 0,0 0.0807,-0.4238653 0.0807,-0.4238653 0,0 0.0816,-0.4264284 0.0816,-0.4264284 0,0 0.0825,-0.4289409 0.0825,-0.4289409 0,0 0.0833,-0.431403 0.0833,-0.431403 0,0 0.0842,-0.433815 0.0842,-0.433815 0,0 0.085,-0.436176 0.085,-0.436176 0,0 0.0858,-0.438486 0.0858,-0.438486 0,0 0.0867,-0.440746 0.0867,-0.440746 0,0 0.0875,-0.442955 0.0875,-0.442955 0,0 0.0883,-0.445114 0.0883,-0.445114 0,0 0.089,-0.447223 0.089,-0.447223 0,0 0.0898,-0.44928 0.0898,-0.44928 0,0 0.0906,-0.451287 0.0906,-0.451287 0,0 0.0913,-0.453244 0.0913,-0.453244 0,0 0.0921,-0.45515 0.0921,-0.45515 0,0 0.0928,-0.457006 0.0928,-0.457006 0,0 0.0935,-0.458811 0.0935,-0.458811 0,0 0.0942,-0.460565 0.0942,-0.460565 0,0 0.0949,-0.462269 0.0949,-0.462269 0,0 0.0956,-0.463923 0.0956,-0.463923 0,0 0.0962,-0.465525 0.0962,-0.465525 0,0 0.0969,-0.467078 0.0969,-0.467078 0,0 0.0975,-0.46858 0.0975,-0.46858 0,0 0.0981,-0.47003 0.0981,-0.47003 0,0 0.0988,-0.471432 0.0988,-0.471432 0,0 0.0994,-0.472782 0.0994,-0.472782 0,0 0.1,-0.474081 0.1,-0.474081 0,0 0.10056,-0.475331 0.10056,-0.475331 0,0 0.10113,-0.476529 0.10113,-0.476529 0,0 0.10169,-0.477677 0.10169,-0.477677 0,0 0.10224,-0.478774 0.10224,-0.478774 0,0 0.10278,-0.479821 0.10278,-0.479821 0,0 0.10331,-0.480818 0.10331,-0.480818 0,0 0.10383,-0.481764 0.10383,-0.481764 0,0 0.10433,-0.482659 0.10433,-0.482659 0,0 0.10482,-0.483503 0.10482,-0.483503 0,0 0.10531,-0.484298 0.10531,-0.484298 0,0 0.10577,-0.485042 0.10577,-0.485042 0,0 0.10623,-0.485734 0.10623,-0.485734 0,0 0.10669,-0.486378 0.10669,-0.486378 0,0 0.10711,-0.486969 0.10711,-0.486969 0,0 0.10754,-0.487511 0.10754,-0.487511 0,0 0.10796,-0.488002 0.10796,-0.488002 0,0 0.10835,-0.488442 0.10835,-0.488442 0,0 0.10874,-0.488832 0.10874,-0.488832 0,0 0.10913,-0.489172 0.10913,-0.489172 0,0 0.10948,-0.48946 0.10948,-0.48946 0,0 0.10985,-0.489699 0.10985,-0.489699 0,0 0.11018,-0.489886 0.11018,-0.489886 0,0 0.11052,-0.490024 0.11052,-0.490024 0,0 0.11084,-0.49011 0.11084,-0.49011 0,0 0.11115,-0.490146 0.11115,-0.490146 0,0 0.11144,-0.490132 0.11144,-0.490132 0,0 0.11173,-0.490067 0.11173,-0.490067 0,0 0.11201,-0.489951 0.11201,-0.489951 0,0 0.11227,-0.489785 0.11227,-0.489785 0,0 0.11251,-0.489569 0.11251,-0.489569 0,0 0.11276,-0.489302 0.11276,-0.489302 0,0 0.11299,-0.488984 0.11299,-0.488984 0,0 0.1132,-0.488615 0.1132,-0.488615 0,0 0.11341,-0.488197 0.11341,-0.488197 0,0 0.1136,-0.487728 0.1136,-0.487728 0,0 0.11379,-0.487208 0.11379,-0.487208 0,0 0.11395,-0.486637 0.11395,-0.486637 0,0 0.11412,-0.486016 0.11412,-0.486016 0,0 0.11426,-0.485345 0.11426,-0.485345 0,0 0.1144,-0.484623 0.1144,-0.484623 0,0 0.11452,-0.483851 0.11452,-0.483851 0,0 0.11464,-0.483027 0.11464,-0.483027 0,0 0.11473,-0.482154 0.11473,-0.482154 0,0 0.11483,-0.48123 0.11483,-0.48123 0,0 0.11491,-0.480255 0.11491,-0.480255 0,0 0.11497,-0.479229 0.11497,-0.479229 0,0 0.11503,-0.478154 0.11503,-0.478154 0,0 0.11507,-0.477027 0.11507,-0.477027 0,0 0.1151,-0.475851 0.1151,-0.475851 0,0 0.11513,-0.474623 0.11513,-0.474623 0,0 0.11513,-0.473346 0.11513,-0.473346 0,0 0.11513,-0.472016 0.11513,-0.472016 0,0 0.11512,-0.470638 0.11512,-0.470638 0,0 0.1151,-0.469208 0.1151,-0.469208 0,0 0.11505,-0.467728 0.11505,-0.467728 0,0 0.11501,-0.466198 0.11501,-0.466198 0,0 0.11495,-0.464616 0.11495,-0.464616 0,0 0.11488,-0.462984 0.11488,-0.462984 0,0 0.11479,-0.461303 0.11479,-0.461303 0,0 0.1147,-0.459569 0.1147,-0.459569 0,0 0.1146,-0.457786 0.1146,-0.457786 0,0 0.11447,-0.455952 0.11447,-0.455952 0,0 0.11435,-0.454068 0.11435,-0.454068 0,0 0.11421,-0.452132 0.11421,-0.452132 0,0 0.11405,-0.450148 0.11405,-0.450148 0,0 0.1139,-0.448111 0.1139,-0.448111 0,0 0.11371,-0.446024 0.11371,-0.446024 0,0 0.11354,-0.443887 0.11354,-0.443887 0,0 0.11333,-0.4417 0.11333,-0.4417 0,0 0.11312,-0.439461 0.11312,-0.439461 0,0 0.1129,-0.437173 0.1129,-0.437173 0,0 0.11267,-0.434833 0.11267,-0.434833 0,0 0.11243,-0.432444 0.11243,-0.432444 0,0 0.11217,-0.430003 0.11217,-0.430003 0,0 0.1119,-0.427512 0.1119,-0.427512 0,0 0.11163,-0.424971 0.11163,-0.424971 0,0 0.11133,-0.422379 0.11133,-0.422379 0,0 0.11103,-0.419736 0.11103,-0.419736 0,0 0.11072,-0.417043 0.11072,-0.417043 0,0 0.1104,-0.414299 0.1104,-0.414299 0,0 0.11006,-0.411505 0.11006,-0.411505 0,0 0.10971,-0.408661 0.10971,-0.408661 0,0 0.10935,-0.405765 0.10935,-0.405765 0,0 0.10898,-0.40282 0.10898,-0.40282 0,0 0.1086,-0.399823 0.1086,-0.399823 0,0 0.1082,-0.396776 0.1082,-0.396776 0,0 0.1078,-0.393679 0.1078,-0.393679 0,0 0.10739,-0.390531 0.10739,-0.390531 0,0 0.10695,-0.387332 0.10695,-0.387332 0,0 0.10651,-0.384083 0.10651,-0.384083 0,0 0.10607,-0.380784 0.10607,-0.380784 0,0 0.1056,-0.377434 0.1056,-0.377434 0,0 0.10512,-0.374033 0.10512,-0.374033 0,0 0.10464,-0.370581 0.10464,-0.370581 0,0 0.10414,-0.36708 0.10414,-0.36708 0,0 0.10364,-0.363528 0.10364,-0.363528 0,0 0.10311,-0.359925 0.10311,-0.359925 0,0 0.10258,-0.356271 0.10258,-0.356271 0,0 0.10204,-0.352568 0.10204,-0.352568 0,0 0.10148,-0.348813 0.10148,-0.348813 0,0 0.10091,-0.345008 0.10091,-0.345008 0,0 0.10034,-0.341153 0.10034,-0.341153 0,0 0.0998,-0.337246 0.0998,-0.337246 0,0 0.0991,-0.33329 0.0991,-0.33329 0,0 0.0985,-0.329283 0.0985,-0.329283 0,0 0.0979,-0.325225 0.0979,-0.325225 0,0 0.0973,-0.321117 0.0973,-0.321117 0,0 0.0966,-0.316958 0.0966,-0.316958 0,0 0.096,-0.312749 0.096,-0.312749 0,0 0.0953,-0.308489 0.0953,-0.308489 0,0 0.0946,-0.304178 0.0946,-0.304178 0,0 0.0939,-0.299818 0.0939,-0.299818 0,0 0.0932,-0.295406 0.0932,-0.295406 0,0 0.0925,-0.290944 0.0925,-0.290944 0,0 0.0918,-0.286431 0.0918,-0.286431 0,0 0.091,-0.281869 0.091,-0.281869 0,0 0.0903,-0.277255 0.0903,-0.277255 0,0 0.0895,-0.27259 0.0895,-0.27259 0,0 0.0888,-0.267876 0.0888,-0.267876 0,0 0.088,-0.26311 0.088,-0.26311 0,0 0.0872,-0.258295 0.0872,-0.258295 0,0 0.0864,-0.253429 0.0864,-0.253429 0,0 0.0855,-0.248511 0.0855,-0.248511 0,0 0.0847,-0.243544 0.0847,-0.243544 0,0 0.0839,-0.238526 0.0839,-0.238526 0,0 0.083,-0.233458 0.083,-0.233458 0,0 0.0821,-0.228338 0.0821,-0.228338 0,0 0.0813,-0.223169 0.0813,-0.223169 0,0 0.0804,-0.217949 0.0804,-0.217949 0,0 0.0795,-0.212678 0.0795,-0.212678 0,0 0.0786,-0.207357 0.0786,-0.207357 0,0 0.0776,-0.201986 0.0776,-0.201986 0,0 0.0767,-0.196562 0.0767,-0.196562 0,0 0.0758,-0.19109 0.0758,-0.19109 0,0 0.0748,-0.185567 0.0748,-0.185567 0,0 0.0738,-0.179993 0.0738,-0.179993 0,0 0.0728,-0.174368 0.0728,-0.174368 0,0 0.0719,-0.168693 0.0719,-0.168693 0,0 0.0709,-0.162968 0.0709,-0.162968 0,0 0.0698,-0.157192 0.0698,-0.157192 0,0 0.0688,-0.151365 0.0688,-0.151365 0,0 0.0678,-0.145488 0.0678,-0.145488 0,0 0.0667,-0.13956 0.0667,-0.13956 0,0 0.0657,-0.133582 0.0657,-0.133582 0,0 0.0646,-0.127553 0.0646,-0.127553 0,0 0.0635,-0.121474 0.0635,-0.121474 0,0 0.0624,-0.115344 0.0624,-0.115344 0,0 0.0613,-0.109163 0.0613,-0.109163 0,0 0.0602,-0.102933 0.0602,-0.102933 0,0 0.059,-0.09665 0.059,-0.09665 0,0 0.0579,-0.09032 0.0579,-0.09032 0,0 0.0567,-0.08394 0.0567,-0.08394 0,0 0.0556,-0.0775 0.0556,-0.0775 0,0 0.0544,-0.07102 0.0544,-0.07102 0,0 0.0568,-0.06907 0.0568,-0.06907 0,0 0.0629,-0.07166 0.0629,-0.07166 0,0 0.0688,-0.07423 0.0688,-0.07423 0,0 0.0748,-0.07678 0.0748,-0.07678 0,0 0.0807,-0.0793 0.0807,-0.0793 0,0 0.0865,-0.0818 0.0865,-0.0818 0,0 0.0923,-0.08429 0.0923,-0.08429 0,0 0.0981,-0.08674 0.0981,-0.08674 0,0 0.10377,-0.08918 0.10377,-0.08918 0,0 0.10943,-0.09159 0.10943,-0.09159 0,0 0.11503,-0.09398 0.11503,-0.09398 0,0 0.12061,-0.09635 0.12061,-0.09635 0,0 0.12612,-0.09869 0.12612,-0.09869 0,0 0.13159,-0.101017 0.13159,-0.101017 0,0 0.13701,-0.103318 0.13701,-0.103318 0,0 0.1424,-0.105595 0.1424,-0.105595 0,0 0.14772,-0.107851 0.14772,-0.107851 0,0 0.15302,-0.110084 0.15302,-0.110084 0,0 0.15825,-0.112294 0.15825,-0.112294 0,0 0.16344,-0.114482 0.16344,-0.114482 0,0 0.16859,-0.116648 0.16859,-0.116648 0,0 0.17369,-0.11879 0.17369,-0.11879 0,0 0.17875,-0.120911 0.17875,-0.120911 0,0 0.18375,-0.123009 0.18375,-0.123009 0,0 0.18871,-0.125084 0.18871,-0.125084 0,0 0.19362,-0.127138 0.19362,-0.127138 0,0 0.19849,-0.129168 0.19849,-0.129168 0,0 0.20331,-0.131175 0.20331,-0.131175 0,0 0.20809,-0.133161 0.20809,-0.133161 0,0 0.21282,-0.135125 0.21282,-0.135125 0,0 0.21749,-0.137064 0.21749,-0.137064 0,0 0.22213,-0.138983 0.22213,-0.138983 0,0 0.22672,-0.140878 0.22672,-0.140878 0,0 0.23127,-0.142751 0.23127,-0.142751 0,0 0.23575,-0.144602 0.23575,-0.144602 0,0 0.24021,-0.14643 0.24021,-0.14643 0,0 0.24461,-0.148235 0.24461,-0.148235 0,0 0.24897,-0.150018 0.24897,-0.150018 0,0 0.25327,-0.151779 0.25327,-0.151779 0,0 0.25754,-0.153516 0.25754,-0.153516 0,0 0.26176,-0.155233 0.26176,-0.155233 0,0 0.26593,-0.156925 0.26593,-0.156925 0,0 0.27005,-0.158596 0.27005,-0.158596 0,0 0.27413,-0.160244 0.27413,-0.160244 0,0 0.27816,-0.161869 0.27816,-0.161869 0,0 0.28214,-0.163473 0.28214,-0.163473 0,0 0.28608,-0.165053 0.28608,-0.165053 0,0 0.28997,-0.166611 0.28997,-0.166611 0,0 0.29382,-0.168147 0.29382,-0.168147 0,0 0.29762,-0.16966 0.29762,-0.16966 0,0 0.30137,-0.17115 0.30137,-0.17115 0,0 0.30508,-0.172619 0.30508,-0.172619 0,0 0.30873,-0.174064 0.30873,-0.174064 0,0 0.31235,-0.175487 0.31235,-0.175487 0,0 0.31591,-0.176888 0.31591,-0.176888 0,0 0.31944,-0.178266 0.31944,-0.178266 0,0 0.3229,-0.179622 0.3229,-0.179622 0,0 0.32634,-0.180954 0.32634,-0.180954 0,0 0.32971,-0.182266 0.32971,-0.182266 0,0 0.33305,-0.183553 0.33305,-0.183553 0,0 0.33634,-0.184819 0.33634,-0.184819 0,0 0.33958,-0.186063 0.33958,-0.186063 0,0 0.34277,-0.187282 0.34277,-0.187282 0,0 0.34592,-0.188482 0.34592,-0.188482 0,0 0.34902,-0.189656 0.34902,-0.189656 0,0 0.35208,-0.19081 0.35208,-0.19081 0,0 0.35509,-0.191941 0.35509,-0.191941 0,0 0.35804,-0.193049 0.35804,-0.193049 0,0 0.36097,-0.194134 0.36097,-0.194134 0,0 0.36383,-0.195198 0.36383,-0.195198 0,0 0.36666,-0.196238 0.36666,-0.196238 0,0 0.36943,-0.197256 0.36943,-0.197256 0,0 0.37217,-0.198253 0.37217,-0.198253 0,0 0.37484,-0.199225 0.37484,-0.199225 0,0 0.37749,-0.200176 0.37749,-0.200176 0,0 0.38007,-0.201105 0.38007,-0.201105 0,0 0.38262,-0.20201 0.38262,-0.20201 0,0 0.38512,-0.202893 0.38512,-0.202893 0,0 0.38757,-0.203754 0.38757,-0.203754 0,0 0.38997,-0.204592 0.38997,-0.204592 0,0 0.39233,-0.205409 0.39233,-0.205409 0,0 0.39464,-0.206201 0.39464,-0.206201 0,0 0.39691,-0.206972 0.39691,-0.206972 0,0 0.39913,-0.20772 0.39913,-0.20772 0,0 0.4013,-0.208446 0.4013,-0.208446 0,0 0.40342,-0.20915 0.40342,-0.20915 0,0 0.40551,-0.20983 0.40551,-0.20983 0,0 0.40753,-0.210488 0.40753,-0.210488 0,0 0.40953,-0.211125 0.40953,-0.211125 0,0 0.41146,-0.211737 0.41146,-0.211737 0,0 0.41336,-0.212328 0.41336,-0.212328 0,0 0.41521,-0.212897 0.41521,-0.212897 0,0 0.417,-0.213443 0.417,-0.213443 0,0 0.41876,-0.213965 0.41876,-0.213965 0,0 0.42047,-0.214467 0.42047,-0.214467 0,0 0.42213,-0.214945 0.42213,-0.214945 0,0 0.42375,-0.215401 0.42375,-0.215401 0,0 0.42531,-0.215834 0.42531,-0.215834 0,0 0.42684,-0.216245 0.42684,-0.216245 0,0 0.42831,-0.216633 0.42831,-0.216633 0,0 0.42974,-0.216999 0.42974,-0.216999 0,0 0.43112,-0.217342 0.43112,-0.217342 0,0 0.43246,-0.217664 0.43246,-0.217664 0,0 0.43374,-0.217961 0.43374,-0.217961 0,0 0.43499,-0.218238 0.43499,-0.218238 0,0 0.43619,-0.218491 0.43619,-0.218491 0,0 0.43734,-0.218722 0.43734,-0.218722 0,0 0.43844,-0.21893 0.43844,-0.21893 0,0 0.4395,-0.219116 0.4395,-0.219116 0,0 0.44051,-0.21928 0.44051,-0.21928 0,0 0.44147,-0.21942 0.44147,-0.21942 0,0 0.44239,-0.219539 0.44239,-0.219539 0,0 0.44327,-0.219635 0.44327,-0.219635 0,0 0.44409,-0.219708 0.44409,-0.219708 0,0 0.44486,-0.219759 0.44486,-0.219759 0,0 0.4456,-0.219788 0.4456,-0.219788 0,0 0.44629,-0.219793 0.44629,-0.219793 0,0 0.44692,-0.219777 0.44692,-0.219777 0,0 0.44752,-0.219738 0.44752,-0.219738 0,0 0.44806,-0.219676 0.44806,-0.219676 0,0 0.44856,-0.219593 0.44856,-0.219593 0,0 0.44901,-0.219485 0.44901,-0.219485 0,0 0.44943,-0.219357 0.44943,-0.219357 0,0 0.44978,-0.219205 0.44978,-0.219205 0,0 0.4501,-0.219032 0.4501,-0.219032 0,0 0.45036,-0.218836 0.45036,-0.218836 0,0 0.45058,-0.21861 0.45058,-0.21861 0,0 0.45076,-0.21838 0.45076,-0.21838 0,0 0.45089,-0.21811 0.45089,-0.21811 0,0 0.45097,-0.21782 0.45097,-0.21782 0,0 0.451,-0.21752 0.451,-0.21752 0,0 0.45099,-0.21718 0.45099,-0.21718 0,0 0.45094,-0.21683 0.45094,-0.21683 0,0 0.45083,-0.21645 0.45083,-0.21645 0,0 0.45068,-0.21606 0.45068,-0.21606 0,0 0.45048,-0.21563 0.45048,-0.21563 0,0 0.45024,-0.21519 0.45024,-0.21519 0,0 0.44995,-0.21472 0.44995,-0.21472 0,0 0.44961,-0.21423 0.44961,-0.21423 0,0 0.44923,-0.21372 0.44923,-0.21372 0,0 0.44879,-0.21319 0.44879,-0.21319 0,0 0.44833,-0.21263 0.44833,-0.21263 0,0 0.4478,-0.21205 0.4478,-0.21205 0,0 0.44723,-0.21145 0.44723,-0.21145 0,0 0.446614,-0.21083 0.446614,-0.21083 0,0 0.445954,-0.21018 0.445954,-0.21018 0,0 0.445246,-0.20951 0.445246,-0.20951 0,0 0.44449,-0.20882 0.44449,-0.20882 0,0 0.44369,-0.20811 0.44369,-0.20811 0,0 0.442842,-0.20737 0.442842,-0.20737 0,0 0.441947,-0.20661 0.441947,-0.20661 0,0 0.441007,-0.20583 0.441007,-0.20583 0,0 0.440019,-0.20503 0.440019,-0.20503 0,0 0.438986,-0.2042 0.438986,-0.2042 0,0 0.437906,-0.20335 0.437906,-0.20335 0,0 0.43678,-0.20248 0.43678,-0.20248 0,0 0.435606,-0.20158 0.435606,-0.20158 0,0 0.434387,-0.20067 0.434387,-0.20067 0,0 0.433121,-0.19973 0.433121,-0.19973 0,0 0.431808,-0.19877 0.431808,-0.19877 0,0 0.43045,-0.19778 0.43045,-0.19778 0,0 0.429044,-0.19678 0.429044,-0.19678 0,0 0.427593,-0.19575 0.427593,-0.19575 0,0 0.426094,-0.1947 0.426094,-0.1947 0,0 0.424549,-0.19363 0.424549,-0.19363 0,0 0.422959,-0.19252 0.422959,-0.19252 0,0 0.42132,-0.19141 0.42132,-0.19141 0,0 0.419637,-0.19027 0.419637,-0.19027 0,0 0.417906,-0.18911 0.417906,-0.18911 0,0 0.416129,-0.18791 0.416129,-0.18791 0,0 0.414305,-0.18671 0.414305,-0.18671 0,0 0.412436,-0.18548 0.412436,-0.18548 0,0 0.410518,-0.18423 0.410518,-0.18423 0,0 0.408557,-0.18294 0.408557,-0.18294 0,0 0.406546,-0.18165 0.406546,-0.18165 0,0 0.404491,-0.18033 0.404491,-0.18033 0,0 0.402389,-0.17899 0.402389,-0.17899 0,0 0.400239,-0.17762 0.400239,-0.17762 0,0 0.398045,-0.17622 0.398045,-0.17622 0,0 0.395803,-0.17482 0.395803,-0.17482 0,0 0.393514,-0.17339 0.393514,-0.17339 0,0 0.39118,-0.17193 0.39118,-0.17193 0,0 0.388799,-0.17045 0.388799,-0.17045 0,0 0.386372,-0.16894 0.386372,-0.16894 0,0 0.383897,-0.16743 0.383897,-0.16743 0,0 0.381377,-0.16588 0.381377,-0.16588 0,0 0.37881,-0.16431 0.37881,-0.16431 0,0 0.376196,-0.16271 0.376196,-0.16271 0,0 0.373537,-0.16111 0.373537,-0.16111 0,0 0.37083,-0.15947 0.37083,-0.15947 0,0 0.368078,-0.15781 0.368078,-0.15781 0,0 0.365278,-0.15613 0.365278,-0.15613 0,0 0.362432,-0.15442 0.362432,-0.15442 0,0 0.359541,-0.1527 0.359541,-0.1527 0,0 0.356601,-0.15095 0.356601,-0.15095 0,0 0.353617,-0.14918 0.353617,-0.14918 0,0 0.350584,-0.14739 0.350584,-0.14739 0,0 0.347507,-0.14557 0.347507,-0.14557 0,0 0.344382,-0.14373 0.344382,-0.14373 0,0 0.341212,-0.14187 0.341212,-0.14187 0,0 0.337994,-0.13998 0.337994,-0.13998 0,0 0.334729,-0.13808 0.334729,-0.13808 0,0 0.33142,-0.13615 0.33142,-0.13615 0,0 0.328063,-0.13421 0.328063,-0.13421 0,0 0.324659,-0.13222 0.324659,-0.13222 0,0 0.321209,-0.13023 0.321209,-0.13023 0,0 0.317714,-0.12821 0.317714,-0.12821 0,0 0.31417,-0.12618 0.31417,-0.12618 0,0 0.310582,-0.1241 0.310582,-0.1241 0,0 0.306946,-0.12202 0.306946,-0.12202 0,0 0.303263,-0.11992 0.303263,-0.11992 0,0 0.299535,-0.11778 0.299535,-0.11778 0,0 0.29576,-0.11563 0.29576,-0.11563 0,0 0.291939,-0.11345 0.291939,-0.11345 0,0 0.288071,-0.11125 0.288071,-0.11125 0,0 0.284156,-0.10904 0.284156,-0.10904 0,0 0.280195,-0.10678 0.280195,-0.10678 0,0 0.276188,-0.10453 0.276188,-0.10453 0,0 0.272134,-0.10223 0.272134,-0.10223 0,0 0.268034,-0.0999 0.268034,-0.0999 0,0 0.263887,-0.0976 0.263887,-0.0976 0,0 0.259694,-0.0952 0.259694,-0.0952 0,0 0.255454,-0.0928 0.255454,-0.0928 0,0 0.251168,-0.0905 0.251168,-0.0905 0,0 0.246836,-0.088 0.246836,-0.088 0,0 0.242456,-0.0856 0.242456,-0.0856 0,0 0.238031,-0.0831 0.238031,-0.0831 0,0 0.233559,-0.0806 0.233559,-0.0806 0,0 0.22904,-0.0781 0.22904,-0.0781 0,0 0.224476,-0.0756 0.224476,-0.0756 0,0 0.219864,-0.073 0.219864,-0.073 0,0 0.215206,-0.0704 0.215206,-0.0704 0,0 0.210502,-0.0678 0.210502,-0.0678 0,0 0.205751,-0.0652 0.205751,-0.0652 0,0 0.200954,-0.0626 0.200954,-0.0626 0,0 0.19611,-0.0599 0.19611,-0.0599 0,0 0.19122,-0.0572 0.19122,-0.0572 0,0 0.186283,-0.0545 0.186283,-0.0545 0,0 0.1813,-0.0517 0.1813,-0.0517 0,0 0.176271,-0.049 0.176271,-0.049 0,0 0.171194,-0.0462 0.171194,-0.0462 0,0 0.166072,-0.0434 0.166072,-0.0434 0,0 0.160903,-0.0406 0.160903,-0.0406 0,0 0.155688,-0.0377 0.155688,-0.0377 0,0 0.150425,-0.0348 0.150425,-0.0348 0,0 0.145118,-0.0319 0.145118,-0.0319 0,0 0.139762,-0.029 0.139762,-0.029 0,0 0.134361,-0.0261 0.134361,-0.0261 0,0 0.128914,-0.0231 0.128914,-0.0231 0,0 0.123419,-0.0201 0.123419,-0.0201 0,0 0.117879,-0.0171 0.117879,-0.0171 0,0 0.112291,-0.0141 0.112291,-0.0141 0,0 0.106658,-0.011 0.106658,-0.011 0,0 0.100977,-0.008 0.100977,-0.008 0,0 0.09525,-0.005 0.09525,-0.005 0,0 0.08948,-0.002 0.08948,-0.002 0,0 0.0895,0.001 0.0895,0.001 0,0 0.09531,0.004 0.09531,0.004 0,0 0.101076,0.008 0.101076,0.008 0,0 0.106795,0.0106 0.106795,0.0106 0,0 0.112468,0.0137 0.112468,0.0137 0,0 0.118093,0.0167 0.118093,0.0167 0,0 0.123671,0.0197 0.123671,0.0197 0,0 0.129204,0.0226 0.129204,0.0226 0,0 0.134688,0.0256 0.134688,0.0256 0,0 0.140128,0.0285 0.140128,0.0285 0,0 0.145518,0.0314 0.145518,0.0314 0,0 0.150864,0.0343 0.150864,0.0343 0,0 0.156161,0.0372 0.156161,0.0372 0,0 0.161413,0.04 0.161413,0.04 0,0 0.166618,0.0428 0.166618,0.0428 0,0 0.171775,0.0456 0.171775,0.0456 0,0 0.176886,0.0483 0.176886,0.0483 0,0 0.181951,0.0511 0.181951,0.0511 0,0 0.186968,0.0538 0.186968,0.0538 0,0 0.191938,0.0565 0.191938,0.0565 0,0 0.196863,0.0592 0.196863,0.0592 0,0 0.20174,0.0619 0.20174,0.0619 0,0 0.20657,0.0645 0.20657,0.0645 0,0 0.211354,0.0671 0.211354,0.0671 0,0 0.216091,0.0697 0.216091,0.0697 0,0 0.220781,0.0723 0.220781,0.0723 0,0 0.225424,0.0748 0.225424,0.0748 0,0 0.230021,0.0773 0.230021,0.0773 0,0 0.234571,0.0798 0.234571,0.0798 0,0 0.239074,0.0823 0.239074,0.0823 0,0 0.24353,0.0848 0.24353,0.0848 0,0 0.247939,0.0872 0.247939,0.0872 0,0 0.252303,0.0896 0.252303,0.0896 0,0 0.256618,0.092 0.256618,0.092 0,0 0.260888,0.0944 0.260888,0.0944 0,0 0.26511,0.0967 0.26511,0.0967 0,0 0.269285,0.099 0.269285,0.099 0,0 0.273415,0.10133 0.273415,0.10133 0,0 0.277497,0.1036 0.277497,0.1036 0,0 0.281532,0.10585 0.281532,0.10585 0,0 0.285521,0.10809 0.285521,0.10809 0,0 0.289462,0.1103 0.289462,0.1103 0,0 0.293358,0.11248 0.293358,0.11248 0,0 0.297206,0.11465 0.297206,0.11465 0,0 0.301008,0.11679 0.301008,0.11679 0,0 0.304762,0.11891 0.304762,0.11891 0,0 0.30847,0.12101 0.30847,0.12101 0,0 0.312132,0.12308 0.312132,0.12308 0,0 0.315746,0.12514 0.315746,0.12514 0,0 0.319314,0.12717 0.319314,0.12717 0,0 0.322835,0.12917 0.322835,0.12917 0,0 0.326309,0.13116 0.326309,0.13116 0,0 0.329736,0.13313 0.329736,0.13313 0,0 0.333117,0.13506 0.333117,0.13506 0,0 0.336451,0.13699 0.336451,0.13699 0,0 0.339739,0.13888 0.339739,0.13888 0,0 0.342978,0.14075 0.342978,0.14075 0,0 0.346172,0.14261 0.346172,0.14261 0,0 0.349319,0.14444 0.349319,0.14444 0,0 0.352419,0.14624 0.352419,0.14624 0,0 0.355472,0.14803 0.355472,0.14803 0,0 0.358479,0.14979 0.358479,0.14979 0,0 0.361438,0.15153 0.361438,0.15153 0,0 0.364352,0.15325 0.364352,0.15325 0,0 0.367218,0.15494 0.367218,0.15494 0,0 0.370037,0.15662 0.370037,0.15662 0,0 0.37281,0.15826 0.37281,0.15826 0,0 0.375535,0.1599 0.375535,0.1599 0,0 0.378215,0.1615 0.378215,0.1615 0,0 0.380848,0.16308 0.380848,0.16308 0,0 0.383433,0.16465 0.383433,0.16465 0,0 0.385971,0.16618 0.385971,0.16618 0,0 0.388464,0.1677 0.388464,0.1677 0,0 0.39091,0.1692 0.39091,0.1692 0,0 0.393307,0.17067 0.393307,0.17067 0,0 0.39566,0.17211 0.39566,0.17211 0,0 0.397964,0.17354 0.397964,0.17354 0,0 0.400223,0.17495 0.400223,0.17495 0,0 0.402435,0.17633 0.402435,0.17633 0,0 0.404599,0.17769 0.404599,0.17769 0,0 0.406717,0.17903 0.406717,0.17903 0,0 0.408788,0.18034 0.408788,0.18034 0,0 0.410813,0.18164 0.410813,0.18164 0,0 0.41279,0.18291 0.41279,0.18291 0,0 0.414721,0.18415 0.414721,0.18415 0,0 0.416605,0.18538 0.416605,0.18538 0,0 0.418443,0.18659 0.418443,0.18659 0,0 0.420233,0.18776 0.420233,0.18776 0,0 0.421977,0.18893 0.421977,0.18893 0,0 0.423674,0.19006 0.423674,0.19006 0,0 0.425325,0.19117 0.425325,0.19117 0,0 0.426928,0.19227 0.426928,0.19227 0,0 0.428485,0.19333 0.428485,0.19333 0,0 0.429994,0.19439 0.429994,0.19439 0,0 0.431458,0.1954 0.431458,0.1954 0,0 0.432875,0.19641 0.432875,0.19641 0,0 0.434244,0.19739 0.434244,0.19739 0,0 0.435567,0.19835 0.435567,0.19835 0,0 0.436843,0.19928 0.436843,0.19928 0,0 0.438072,0.2002 0.438072,0.2002 0,0 0.439256,0.20109 0.439256,0.20109 0,0 0.440391,0.20195 0.440391,0.20195 0,0 0.44148,0.2028 0.44148,0.2028 0,0 0.442522,0.20363 0.442522,0.20363 0,0 0.443518,0.20442 0.443518,0.20442 0,0 0.444467,0.2052 0.444467,0.2052 0,0 0.445369,0.20596 0.445369,0.20596 0,0 0.446224,0.2067 0.446224,0.2067 0,0 0.447032,0.20741 0.447032,0.20741 0,0 0.447795,0.20809 0.447795,0.20809 0,0 0.448509,0.20876 0.448509,0.20876 0,0 0.449178,0.20941 0.449178,0.20941 0,0 0.449798,0.21003 0.449798,0.21003 0,0 0.450374,0.21063 0.450374,0.21063 0,0 0.450901,0.21121 0.450901,0.21121 0,0 0.451383,0.21176 0.451383,0.21176 0,0 0.451817,0.2123 0.451817,0.2123 0,0 0.452204,0.2128 0.452204,0.2128 0,0 0.452546,0.2133 0.452546,0.2133 0,0 0.452839,0.21376 0.452839,0.21376 0,0 0.453087,0.2142 0.453087,0.2142 0,0 0.453287,0.21463 0.453287,0.21463 0,0 0.453441,0.21502 0.453441,0.21502 0,0 0.453548,0.2154 0.453548,0.2154 0,0 0.453608,0.21575 0.453608,0.21575 0,0 0.453622,0.21609 0.453622,0.21609 0,0 0.453588,0.2164 0.453588,0.2164 0,0 0.453508,0.21668 0.453508,0.21668 0,0 0.453382,0.21695 0.453382,0.21695 0,0 0.453208,0.21719 0.453208,0.21719 0,0 0.452987,0.2174 0.452987,0.2174 0,0 0.45272,0.217612 0.45272,0.217612 0,0 0.452407,0.217783 0.452407,0.217783 0,0 0.452046,0.217935 0.452046,0.217935 0,0 0.451638,0.218066 0.451638,0.218066 0,0 0.451184,0.218174 0.451184,0.218174 0,0 0.450683,0.21826 0.450683,0.21826 0,0 0.450135,0.218324 0.450135,0.218324 0,0 0.449541,0.218365 0.449541,0.218365 0,0 0.4489,0.218383 0.4489,0.218383 0,0 0.448211,0.21838 0.448211,0.21838 0,0 0.447477,0.218354 0.447477,0.218354 0,0 0.446695,0.218306 0.446695,0.218306 0,0 0.445867,0.218236 0.445867,0.218236 0,0 0.444992,0.218142 0.444992,0.218142 0,0 0.44407,0.218027 0.44407,0.218027 0,0 0.443101,0.217889 0.443101,0.217889 0,0 0.442086,0.21773 0.442086,0.21773 0,0 0.441024,0.217547 0.441024,0.217547 0,0 0.439914,0.217342 0.439914,0.217342 0,0 0.438759,0.217115 0.438759,0.217115 0,0 0.437557,0.216866 0.437557,0.216866 0,0 0.436307,0.216594 0.436307,0.216594 0,0 0.435011,0.2163 0.435011,0.2163 0,0 0.433669,0.215983 0.433669,0.215983 0,0 0.4322789,0.215645 0.4322789,0.215645 0,0 0.4308426,0.215283 0.4308426,0.215283 0,0 0.4293596,0.2149 0.4293596,0.2149 0,0 0.4278298,0.214494 0.4278298,0.214494 0,0 0.4262531,0.214066 0.4262531,0.214066 0,0 0.4246298,0.213615 0.4246298,0.213615 0,0 0.4229597,0.213142 0.4229597,0.213142 0,0 0.4212427,0.212647 0.4212427,0.212647 0,0 0.4194791,0.212129 0.4194791,0.212129 0,0 0.4176686,0.211589 0.4176686,0.211589 0,0 0.4158114,0.211027 0.4158114,0.211027 0,0 0.4139075,0.210442 0.4139075,0.210442 0,0 0.4119567,0.209835 0.4119567,0.209835 0,0 0.4099592,0.209206 0.4099592,0.209206 0,0 0.407915,0.208554 0.407915,0.208554 0,0 0.4058239,0.20788 0.4058239,0.20788 0,0 0.4036861,0.207183 0.4036861,0.207183 0,0 0.4015015,0.206464 0.4015015,0.206464 0,0 0.3992702,0.205723 0.3992702,0.205723 0,0 0.3969921,0.20496 0.3969921,0.20496 0,0 0.3946672,0.204174 0.3946672,0.204174 0,0 0.3922956,0.203365 0.3922956,0.203365 0,0 0.38987717,0.202535 0.38987717,0.202535 0,0 0.38741201,0.201682 0.38741201,0.201682 0,0 0.38490007,0.200807 0.38490007,0.200807 0,0 0.38234137,0.199909 0.38234137,0.199909 0,0 0.37973589,0.198989 0.37973589,0.198989 0,0 0.37708369,0.198047 0.37708369,0.198047 0,0 0.3743846,0.197082 0.3743846,0.197082 0,0 0.3716389,0.196095 0.3716389,0.196095 0,0 0.3688464,0.195085 0.3688464,0.195085 0,0 0.366007,0.194054 0.366007,0.194054 0,0 0.363121,0.192999 0.363121,0.192999 0,0 0.3601881,0.191923 0.3601881,0.191923 0,0 0.3572085,0.190825 0.3572085,0.190825 0,0 0.3541822,0.189703 0.3541822,0.189703 0,0 0.351109,0.188559 0.351109,0.188559 0,0 0.3479892,0.187394 0.3479892,0.187394 0,0 0.3448224,0.186205 0.3448224,0.186205 0,0 0.341609,0.184995 0.341609,0.184995 0,0 0.3383489,0.183762 0.3383489,0.183762 0,0 0.3350418,0.182506 0.3350418,0.182506 0,0 0.3316881,0.181229 0.3316881,0.181229 0,0 0.3282876,0.179929 0.3282876,0.179929 0,0 0.3248404,0.178607 0.3248404,0.178607 0,0 0.3213463,0.177261 0.3213463,0.177261 0,0 0.3178055,0.175895 0.3178055,0.175895 0,0 0.3142179,0.174505 0.3142179,0.174505 0,0 0.3105836,0.173094 0.3105836,0.173094 0,0 0.3069025,0.171659 0.3069025,0.171659 0,0 0.3031746,0.170203 0.3031746,0.170203 0,0 0.2994,0.168724 0.2994,0.168724 0,0 0.2955786,0.167223 0.2955786,0.167223 0,0 0.2917104,0.1657 0.2917104,0.1657 0,0 0.287795,0.164153 0.287795,0.164153 0,0 0.283834,0.162585 0.283834,0.162585 0,0 0.279826,0.160995 0.279826,0.160995 0,0 0.27577,0.159382 0.27577,0.159382 0,0 0.271668,0.157746 0.271668,0.157746 0,0 0.267519,0.156089 0.267519,0.156089 0,0 0.263324,0.154408 0.263324,0.154408 0,0 0.259081,0.152707 0.259081,0.152707 0,0 0.254793,0.150981 0.254793,0.150981 0,0 0.250456,0.149235 0.250456,0.149235 0,0 0.246074,0.147465 0.246074,0.147465 0,0 0.241645,0.145673 0.241645,0.145673 0,0 0.237168,0.14386 0.237168,0.14386 0,0 0.232646,0.142022 0.232646,0.142022 0,0 0.228076,0.140164 0.228076,0.140164 0,0 0.223459,0.138283 0.223459,0.138283 0,0 0.218796,0.136379 0.218796,0.136379 0,0 0.214087,0.134454 0.214087,0.134454 0,0 0.209329,0.132505 0.209329,0.132505 0,0 0.204526,0.130534 0.204526,0.130534 0,0 0.199676,0.128542 0.199676,0.128542 0,0 0.194779,0.126526 0.194779,0.126526 0,0 0.189835,0.124489 0.189835,0.124489 0,0 0.184844,0.122428 0.184844,0.122428 0,0 0.179807,0.120346 0.179807,0.120346 0,0 0.174723,0.118242 0.174723,0.118242 0,0 0.169592,0.116114 0.169592,0.116114 0,0 0.164415,0.113965 0.164415,0.113965 0,0 0.15919,0.111794 0.15919,0.111794 0,0 0.153919,0.109599 0.153919,0.109599 0,0 0.148601,0.107382 0.148601,0.107382 0,0 0.143236,0.105144 0.143236,0.105144 0,0 0.137825,0.102883 0.137825,0.102883 0,0 0.132366,0.100599 0.132366,0.100599 0,0 0.126862,0.09829 0.126862,0.09829 0,0 0.12131,0.09597 0.12131,0.09597 0,0 0.115711,0.09361 0.115711,0.09361 0,0 0.110066,0.09124 0.110066,0.09124 0,0 0.104374,0.08885 0.104374,0.08885 0,0 0.09864,0.08643 0.09864,0.08643 0,0 0.09285,0.08399 0.09285,0.08399 0,0 0.08702,0.08153 0.08702,0.08153 0,0 0.08114,0.07904 0.08114,0.07904 0,0 0.07521,0.07653 0.07521,0.07653 0,0 0.06924,0.074 0.06924,0.074 0,0 0.06322,0.07145 0.06322,0.07145 0,0 0.05715,0.06888 0.05715,0.06888 0,0 0.0547,0.07084 0.0547,0.07084 0,0 0.05589,0.0773 0.05589,0.0773 0,0 0.05707,0.08372 0.05707,0.08372 0,0 0.05823,0.09008 0.05823,0.09008 0,0 0.05938,0.0964 0.05938,0.0964 0,0 0.06052,0.102661 0.06052,0.102661 0,0 0.06165,0.108875 0.06165,0.108875 0,0 0.06277,0.115039 0.06277,0.115039 0,0 0.06387,0.121152 0.06387,0.121152 0,0 0.06497,0.127215 0.06497,0.127215 0,0 0.06605,0.133227 0.06605,0.133227 0,0 0.06712,0.13919 0.06712,0.13919 0,0 0.06818,0.145102 0.06818,0.145102 0,0 0.06923,0.150962 0.06923,0.150962 0,0 0.07027,0.156774 0.07027,0.156774 0,0 0.07129,0.162534 0.07129,0.162534 0,0 0.0723,0.168245 0.0723,0.168245 0,0 0.07331,0.173904 0.07331,0.173904 0,0 0.07429,0.179513 0.07429,0.179513 0,0 0.07527,0.185073 0.07527,0.185073 0,0 0.07624,0.190581 0.07624,0.190581 0,0 0.07719,0.196039 0.07719,0.196039 0,0 0.07814,0.201447 0.07814,0.201447 0,0 0.07907,0.206804 0.07907,0.206804 0,0 0.07999,0.212112 0.07999,0.212112 0,0 0.0809,0.217367 0.0809,0.217367 0,0 0.0818,0.222574 0.0818,0.222574 0,0 0.08268,0.22773 0.08268,0.22773 0,0 0.08356,0.232835 0.08356,0.232835 0,0 0.08442,0.23789 0.08442,0.23789 0,0 0.08527,0.242895 0.08527,0.242895 0,0 0.08611,0.247849 0.08611,0.247849 0,0 0.08693,0.252752 0.08693,0.252752 0,0 0.08775,0.257606 0.08775,0.257606 0,0 0.08855,0.262409 0.08855,0.262409 0,0 0.08935,0.267162 0.08935,0.267162 0,0 0.09013,0.271864 0.09013,0.271864 0,0 0.0909,0.276515 0.0909,0.276515 0,0 0.09166,0.281117 0.09166,0.281117 0,0 0.0924,0.285668 0.0924,0.285668 0,0 0.09314,0.290168 0.09314,0.290168 0,0 0.09386,0.294619 0.09386,0.294619 0,0 0.09457,0.299018 0.09457,0.299018 0,0 0.09527,0.303368 0.09527,0.303368 0,0 0.09596,0.307667 0.09596,0.307667 0,0 0.09664,0.311916 0.09664,0.311916 0,0 0.0973,0.316113 0.0973,0.316113 0,0 0.09795,0.320262 0.09795,0.320262 0,0 0.0986,0.324359 0.0986,0.324359 0,0 0.09923,0.328406 0.09923,0.328406 0,0 0.09984,0.332402 0.09984,0.332402 0,0 0.100452,0.336349 0.100452,0.336349 0,0 0.101047,0.340245 0.101047,0.340245 0,0 0.101631,0.344089 0.101631,0.344089 0,0 0.102203,0.347885 0.102203,0.347885 0,0 0.102764,0.35163 0.102764,0.35163 0,0 0.103313,0.355324 0.103313,0.355324 0,0 0.10385,0.358968 0.10385,0.358968 0,0 0.104376,0.362561 0.104376,0.362561 0,0 0.10489,0.366104 0.10489,0.366104 0,0 0.105393,0.369597 0.105393,0.369597 0,0 0.105883,0.373039 0.105883,0.373039 0,0 0.106364,0.37643 0.106364,0.37643 0,0 0.106831,0.379773 0.106831,0.379773 0,0 0.107287,0.383063 0.107287,0.383063 0,0 0.107732,0.386304 0.107732,0.386304 0,0 0.108164,0.389494 0.108164,0.389494 0,0 0.108586,0.392634 0.108586,0.392634 0,0 0.108996,0.395723 0.108996,0.395723 0,0 0.109394,0.398763 0.109394,0.398763 0,0 0.109781,0.401751 0.109781,0.401751 0,0 0.110156,0.40469 0.110156,0.40469 0,0 0.110519,0.407577 0.110519,0.407577 0,0 0.110871,0.410415 0.110871,0.410415 0,0 0.111211,0.413201 0.111211,0.413201 0,0 0.111539,0.415939 0.111539,0.415939 0,0 0.111857,0.418625 0.111857,0.418625 0,0 0.112162,0.42126 0.112162,0.42126 0,0 0.112456,0.423846 0.112456,0.423846 0,0 0.112738,0.426381 0.112738,0.426381 0,0 0.113008,0.428866 0.113008,0.428866 0,0 0.113268,0.4313 0.113268,0.4313 0,0 0.113514,0.433684 0.113514,0.433684 0,0 0.113751,0.436018 0.113751,0.436018 0,0 0.113975,0.4383 0.113975,0.4383 0,0 0.114187,0.440533 0.114187,0.440533 0,0 0.114389,0.442716 0.114389,0.442716 0,0 0.114577,0.444847 0.114577,0.444847 0,0 0.114756,0.446929 0.114756,0.446929 0,0 0.114921,0.44896 0.114921,0.44896 0,0 0.115076,0.45094 0.115076,0.45094 0,0 0.11522,0.452871 0.11522,0.452871 0,0 0.11535,0.454751 0.11535,0.454751 0,0 0.11547,0.45658 0.11547,0.45658 0,0 0.115579,0.45836 0.115579,0.45836 0,0 0.115675,0.460088 0.115675,0.460088 0,0 0.11576,0.461766 0.11576,0.461766 0,0 0.115833,0.463395 0.115833,0.463395 0,0 0.115895,0.464971 0.115895,0.464971 0,0 0.115945,0.466499 0.115945,0.466499 0,0 0.115984,0.467976 0.115984,0.467976 0,0 0.116011,0.469402 0.116011,0.469402 0,0 0.116026,0.470778 0.116026,0.470778 0,0 0.116029,0.472103 0.116029,0.472103 0,0 0.116022,0.473379 0.116022,0.473379 0,0 0.116003,0.474603 0.116003,0.474603 0,0 0.115971,0.475777 0.115971,0.475777 0,0 0.115929,0.476902 0.115929,0.476902 0,0 0.115874,0.477975 0.115874,0.477975 0,0 0.115809,0.478998 0.115809,0.478998 0,0 0.115731,0.479971 0.115731,0.479971 0,0 0.115642,0.480893 0.115642,0.480893 0,0 0.115542,0.481765 0.115542,0.481765 0,0 0.115429,0.482587 0.115429,0.482587 0,0 0.115305,0.483357 0.115305,0.483357 0,0 0.11517,0.484079 0.11517,0.484079 0,0 0.115023,0.484749 0.115023,0.484749 0,0 0.114864,0.485369 0.114864,0.485369 0,0 0.114694,0.485938 0.114694,0.485938 0,0 0.114512,0.486457 0.114512,0.486457 0,0 0.114318,0.486927 0.114318,0.486927 0,0 0.114113,0.487344 0.114113,0.487344 0,0 0.113897,0.487713 0.113897,0.487713 0,0 0.113669,0.48803 0.113669,0.48803 0,0 0.113428,0.488297 0.113428,0.488297 0,0 0.113177,0.488514 0.113177,0.488514 0,0 0.112914,0.48868 0.112914,0.48868 0,0 0.112639,0.488797 0.112639,0.488797 0,0 0.112353,0.488862 0.112353,0.488862 0,0 0.112056,0.488877 0.112056,0.488877 0,0 0.111745,0.488842 0.111745,0.488842 0,0 0.111425,0.488756 0.111425,0.488756 0,0 0.111092,0.48862 0.111092,0.48862 0,0 0.110747,0.488434 0.110747,0.488434 0,0 0.110392,0.488197 0.110392,0.488197 0,0 0.110024,0.487909 0.110024,0.487909 0,0 0.109645,0.487573 0.109645,0.487573 0,0 0.109254,0.487184 0.109254,0.487184 0,0 0.108852,0.486745 0.108852,0.486745 0,0 0.108439,0.486257 0.108439,0.486257 0,0 0.108012,0.485718 0.108012,0.485718 0,0 0.107576,0.485128 0.107576,0.485128 0,0 0.107127,0.484488 0.107127,0.484488 0,0 0.106666,0.483797 0.106666,0.483797 0,0 0.106195,0.483057 0.106195,0.483057 0,0 0.105711,0.482266 0.105711,0.482266 0,0 0.105216,0.481424 0.105216,0.481424 0,0 0.104709,0.480532 0.104709,0.480532 0,0 0.104191,0.479589 0.104191,0.479589 0,0 0.103661,0.478597 0.103661,0.478597 0,0 0.10312,0.477554 0.10312,0.477554 0,0 0.102566,0.47646 0.102566,0.47646 0,0 0.102002,0.475316 0.102002,0.475316 0,0 0.101426,0.474122 0.101426,0.474122 0,0 0.100837,0.472877 0.100837,0.472877 0,0 0.100238,0.471581 0.100238,0.471581 0,0 0.09963,0.470236 0.09963,0.470236 0,0 0.099,0.468841 0.099,0.468841 0,0 0.09837,0.467393 0.09837,0.467393 0,0 0.09772,0.465897 0.09772,0.465897 0,0 0.09707,0.46435 0.09707,0.46435 0,0 0.0964,0.462752 0.0964,0.462752 0,0 0.09572,0.461105 0.09572,0.461105 0,0 0.09502,0.459406 0.09502,0.459406 0,0 0.09432,0.457657 0.09432,0.457657 0,0 0.0936,0.455858 0.0936,0.455858 0,0 0.09288,0.454008 0.09288,0.454008 0,0 0.09214,0.452109 0.09214,0.452109 0,0 0.09139,0.450158 0.09139,0.450158 0,0 0.09063,0.448157 0.09063,0.448157 0,0 0.08985,0.446106 0.08985,0.446106 0,0 0.08907,0.444005 0.08907,0.444005 0,0 0.08827,0.441853 0.08827,0.441853 0,0 0.08746,0.43965 0.08746,0.43965 0,0 0.08664,0.437398 0.08664,0.437398 0,0 0.08581,0.435094 0.08581,0.435094 0,0 0.08497,0.432741 0.08497,0.432741 0,0 0.08411,0.430337 0.08411,0.430337 0,0 0.08325,0.427883 0.08325,0.427883 0,0 0.08237,0.4253776 0.08237,0.4253776 0,0 0.08148,0.4228227 0.08148,0.4228227 0,0 0.08058,0.4202173 0.08058,0.4202173 0,0 0.07967,0.4175613 0.07967,0.4175613 0,0 0.07874,0.414855 0.07874,0.414855 0,0 0.0778,0.4120983 0.0778,0.4120983 0,0 0.07686,0.4092912 0.07686,0.4092912 0,0 0.0759,0.4064336 0.0759,0.4064336 0,0 0.07493,0.4035257 0.07493,0.4035257 0,0 0.07395,0.4005674 0.07395,0.4005674 0,0 0.07295,0.3975587 0.07295,0.3975587 0,0 0.07195,0.3944995 0.07195,0.3944995 0,0 0.07093,0.3913901 0.07093,0.3913901 0,0 0.0699,0.3882301 0.0699,0.3882301 0,0 0.06886,0.3850199 0.06886,0.3850199 0,0 0.06781,0.3817591 0.06781,0.3817591 0,0 0.06674,0.378448 0.06674,0.378448 0,0 0.06567,0.3750865 0.06567,0.3750865 0,0 0.06458,0.3716747 0.06458,0.3716747 0,0 0.06348,0.3682123 0.06348,0.3682123 0,0 0.06237,0.3646996 0.06237,0.3646996 0,0 0.06125,0.3611366 0.06125,0.3611366 0,0 0.06012,0.357523 0.06012,0.357523 0,0 0.05897,0.35385916 0.05897,0.35385916 0,0 0.05782,0.35014487 0.05782,0.35014487 0,0 0.05665,0.34638018 0.05665,0.34638018 0,0 0.05547,0.3425651 0.05547,0.3425651 0,0 0.05428,0.33869962 0.05428,0.33869962 0,0 0.05308,0.33478373 0.05308,0.33478373 0,0 0.05186,0.33081744 0.05186,0.33081744 0,0 0.05064,0.3268008 0.05064,0.3268008 0,0 0.0494,0.3227337 0.0494,0.3227337 0,0 0.04815,0.3186162 0.04815,0.3186162 0,0 0.04689,0.3144484 0.04689,0.3144484 0,0 0.04562,0.3102301 0.04562,0.3102301 0,0 0.04433,0.3059614 0.04433,0.3059614 0,0 0.04304,0.3016424 0.04304,0.3016424 0,0 0.04173,0.2972729 0.04173,0.2972729 0,0 0.04041,0.292853 0.04041,0.292853 0,0 0.03908,0.2883828 0.03908,0.2883828 0,0 0.03774,0.2838622 0.03774,0.2838622 0,0 0.03638,0.279291 0.03638,0.279291 0,0 0.03502,0.2746697 0.03502,0.2746697 0,0 0.03364,0.2699977 0.03364,0.2699977 0,0 0.03225,0.2652755 0.03225,0.2652755 0,0 0.03085,0.2605029 0.03085,0.2605029 0,0 0.02944,0.2556798 0.02944,0.2556798 0,0 0.02802,0.2508064 0.02802,0.2508064 0,0 0.02658,0.2458826 0.02658,0.2458826 0,0 0.02514,0.2409083 0.02514,0.2409083 0,0 0.02368,0.2358837 0.02368,0.2358837 0,0 0.02221,0.2308086 0.02221,0.2308086 0,0 0.02073,0.2256832 0.02073,0.2256832 0,0 0.01924,0.2205074 0.01924,0.2205074 0,0 0.01773,0.2152811 0.01773,0.2152811 0,0 0.01622,0.2100045 0.01622,0.2100045 0,0 0.01469,0.2046775 0.01469,0.2046775 0,0 0.01315,0.1993001 0.01315,0.1993001 0,0 0.0116,0.1938722 0.0116,0.1938722 0,0 0.01004,0.188394 0.01004,0.188394 0,0 0.0085,0.1828655 0.0085,0.1828655 0,0 0.0069,0.1772863 0.0069,0.1772863 0,0 0.0053,0.171657 0.0053,0.171657 0,0 0.0037,0.1659772 0.0037,0.1659772 0,0 0.002,0.160247 0.002,0.160247 0,0 4.17e-4,0.1544663 4.17e-4,0.1544663 0,0 -0.0012,0.1486353 -0.0012,0.1486353 0,0 -0.0029,0.142754 -0.0029,0.142754 0,0 -0.0045,0.136822 -0.0045,0.136822 0,0 -0.0062,0.13084 -0.0062,0.13084 0,0 -0.0079,0.124807 -0.0079,0.124807 0,0 -0.0096,0.118725 -0.0096,0.118725 0,0 -0.01133,0.112591 -0.01133,0.112591 0,0 -0.01306,0.106407 -0.01306,0.106407 0,0 -0.01479,0.100173 -0.01479,0.100173 0,0 -0.01654,0.09389 -0.01654,0.09389 0,0 -0.0183,0.08755 -0.0183,0.08755 0,0 -0.02136,0.08687 -0.02136,0.08687 0,0 -0.0257,0.09185 -0.0257,0.09185 0,0 -0.03,0.09678 -0.03,0.09678 0,0 -0.03427,0.101675 -0.03427,0.101675 0,0 -0.0385,0.106529 -0.0385,0.106529 0,0 -0.04271,0.111342 -0.04271,0.111342 0,0 -0.04688,0.116115 -0.04688,0.116115 0,0 -0.05102,0.120846 -0.05102,0.120846 0,0 -0.05513,0.125537 -0.05513,0.125537 0,0 -0.0592,0.130189 -0.0592,0.130189 0,0 -0.06324,0.134798 -0.06324,0.134798 0,0 -0.06725,0.139367 -0.06725,0.139367 0,0 -0.07123,0.143897 -0.07123,0.143897 0,0 -0.07518,0.148384 -0.07518,0.148384 0,0 -0.07909,0.152832 -0.07909,0.152832 0,0 -0.08297,0.157239 -0.08297,0.157239 0,0 -0.08682,0.161605 -0.08682,0.161605 0,0 -0.09064,0.165931 -0.09064,0.165931 0,0 -0.09442,0.170216 -0.09442,0.170216 0,0 -0.09818,0.174461 -0.09818,0.174461 0,0 -0.101894,0.178664 -0.101894,0.178664 0,0 -0.105581,0.182827 -0.105581,0.182827 0,0 -0.109236,0.18695 -0.109236,0.18695 0,0 -0.112859,0.191032 -0.112859,0.191032 0,0 -0.11645,0.195074 -0.11645,0.195074 0,0 -0.120007,0.199074 -0.120007,0.199074 0,0 -0.123533,0.203034 -0.123533,0.203034 0,0 -0.127027,0.206954 -0.127027,0.206954 0,0 -0.130488,0.210833 -0.130488,0.210833 0,0 -0.133916,0.214671 -0.133916,0.214671 0,0 -0.137313,0.218468 -0.137313,0.218468 0,0 -0.140677,0.222226 -0.140677,0.222226 0,0 -0.144009,0.225942 -0.144009,0.225942 0,0 -0.147308,0.229618 -0.147308,0.229618 0,0 -0.150576,0.233253 -0.150576,0.233253 0,0 -0.153811,0.236847 -0.153811,0.236847 0,0 -0.157013,0.240402 -0.157013,0.240402 0,0 -0.160183,0.243915 -0.160183,0.243915 0,0 -0.163321,0.247388 -0.163321,0.247388 0,0 -0.166427,0.250819 -0.166427,0.250819 0,0 -0.169501,0.254212 -0.169501,0.254212 0,0 -0.172541,0.257562 -0.172541,0.257562 0,0 -0.17555,0.260872 -0.17555,0.260872 0,0 -0.178526,0.264142 -0.178526,0.264142 0,0 -0.181471,0.267371 -0.181471,0.267371 0,0 -0.184382,0.27056 -0.184382,0.27056 0,0 -0.187262,0.273707 -0.187262,0.273707 0,0 -0.190109,0.276814 -0.190109,0.276814 0,0 -0.192923,0.279881 -0.192923,0.279881 0,0 -0.195706,0.282907 -0.195706,0.282907 0,0 -0.198456,0.285892 -0.198456,0.285892 0,0 -0.201174,0.288837 -0.201174,0.288837 0,0 -0.20386,0.291741 -0.20386,0.291741 0,0 -0.206513,0.294604 -0.206513,0.294604 0,0 -0.209134,0.297428 -0.209134,0.297428 0,0 -0.211722,0.300209 -0.211722,0.300209 0,0 -0.214279,0.302951 -0.214279,0.302951 0,0 -0.216802,0.305652 -0.216802,0.305652 0,0 -0.219295,0.308313 -0.219295,0.308313 0,0 -0.221753,0.310932 -0.221753,0.310932 0,0 -0.224181,0.313512 -0.224181,0.313512 0,0 -0.226575,0.31605 -0.226575,0.31605 0,0 -0.228938,0.318547 -0.228938,0.318547 0,0 -0.231268,0.321006 -0.231268,0.321006 0,0 -0.233565,0.323421 -0.233565,0.323421 0,0 -0.235831,0.325798 -0.235831,0.325798 0,0 -0.238065,0.328134 -0.238065,0.328134 0,0 -0.240265,0.330428 -0.240265,0.330428 0,0 -0.242433,0.332682 -0.242433,0.332682 0,0 -0.24457,0.334896 -0.24457,0.334896 0,0 -0.246673,0.337069 -0.246673,0.337069 0,0 -0.248746,0.339202 -0.248746,0.339202 0,0 -0.250784,0.341293 -0.250784,0.341293 0,0 -0.252791,0.343344 -0.252791,0.343344 0,0 -0.254766,0.345354 -0.254766,0.345354 0,0 -0.256708,0.347325 -0.256708,0.347325 0,0 -0.258619,0.349254 -0.258619,0.349254 0,0 -0.260496,0.351142 -0.260496,0.351142 0,0 -0.262341,0.352991 -0.262341,0.352991 0,0 -0.264154,0.354798 -0.264154,0.354798 0,0 -0.265935,0.356565 -0.265935,0.356565 0,0 -0.267684,0.358291 -0.267684,0.358291 0,0 -0.269399,0.359976 -0.269399,0.359976 0,0 -0.271083,0.361622 -0.271083,0.361622 0,0 -0.272735,0.363226 -0.272735,0.363226 0,0 -0.274354,0.364789 -0.274354,0.364789 0,0 -0.275941,0.366313 -0.275941,0.366313 0,0 -0.277495,0.367795 -0.277495,0.367795 0,0 -0.279018,0.369237 -0.279018,0.369237 0,0 -0.280507,0.370638 -0.280507,0.370638 0,0 -0.281965,0.371999 -0.281965,0.371999 0,0 -0.28339,0.373319 -0.28339,0.373319 0,0 -0.284784,0.374598 -0.284784,0.374598 0,0 -0.286143,0.375837 -0.286143,0.375837 0,0 -0.287473,0.377036 -0.287473,0.377036 0,0 -0.288768,0.378193 -0.288768,0.378193 0,0 -0.290032,0.379309 -0.290032,0.379309 0,0 -0.291263,0.380386 -0.291263,0.380386 0,0 -0.292462,0.381422 -0.292462,0.381422 0,0 -0.293629,0.382417 -0.293629,0.382417 0,0 -0.294764,0.383371 -0.294764,0.383371 0,0 -0.295865,0.384285 -0.295865,0.384285 0,0 -0.296936,0.385159 -0.296936,0.385159 0,0 -0.297972,0.385991 -0.297972,0.385991 0,0 -0.298978,0.386783 -0.298978,0.386783 0,0 -0.299951,0.387534 -0.299951,0.387534 0,0 -0.300892,0.388245 -0.300892,0.388245 0,0 -0.301799,0.388916 -0.301799,0.388916 0,0 -0.302676,0.389545 -0.302676,0.389545 0,0 -0.303519,0.390133 -0.303519,0.390133 0,0 -0.304331,0.390682 -0.304331,0.390682 0,0 -0.305109,0.39119 -0.305109,0.39119 0,0 -0.305856,0.391657 -0.305856,0.391657 0,0 -0.30657,0.392083 -0.30657,0.392083 0,0 -0.307253,0.392469 -0.307253,0.392469 0,0 -0.307902,0.392814 -0.307902,0.392814 0,0 -0.30852,0.393119 -0.30852,0.393119 0,0 -0.309104,0.393383 -0.309104,0.393383 0,0 -0.309658,0.393606 -0.309658,0.393606 0,0 -0.310177,0.393789 -0.310177,0.393789 0,0 -0.310666,0.393931 -0.310666,0.393931 0,0 -0.311122,0.394033 -0.311122,0.394033 0,0 -0.311545,0.394093 -0.311545,0.394093 0,0 -0.311937,0.394114 -0.311937,0.394114 0,0 -0.312295,0.394093 -0.312295,0.394093 0,0 -0.312622,0.394033 -0.312622,0.394033 0,0 -0.312916,0.39393 -0.312916,0.39393 0,0 -0.313178,0.393789 -0.313178,0.393789 0,0 -0.313408,0.393606 -0.313408,0.393606 0,0 -0.313605,0.393382 -0.313605,0.393382 0,0 -0.31377,0.393119 -0.31377,0.393119 0,0 -0.313903,0.392813 -0.313903,0.392813 0,0 -0.314003,0.392469 -0.314003,0.392469 0,0 -0.314071,0.392082 -0.314071,0.392082 0,0 -0.3141063,0.391656 -0.3141063,0.391656 0,0 -0.3141102,0.391189 -0.3141102,0.391189 0,0 -0.3140812,0.390681 -0.3140812,0.390681 0,0 -0.3140201,0.390133 -0.3140201,0.390133 0,0 -0.3139265,0.389543 -0.3139265,0.389543 0,0 -0.3138007,0.388915 -0.3138007,0.388915 0,0 -0.3136425,0.388244 -0.3136425,0.388244 0,0 -0.313452,0.387533 -0.313452,0.387533 0,0 -0.3132292,0.386781 -0.3132292,0.386781 0,0 -0.3129741,0.38599 -0.3129741,0.38599 0,0 -0.3126867,0.385157 -0.3126867,0.385157 0,0 -0.312367,0.384283 -0.312367,0.384283 0,0 -0.3120149,0.38337 -0.3120149,0.38337 0,0 -0.3116305,0.382415 -0.3116305,0.382415 0,0 -0.3112139,0.38142 -0.3112139,0.38142 0,0 -0.3107648,0.380384 -0.3107648,0.380384 0,0 -0.3102836,0.379308 -0.3102836,0.379308 0,0 -0.3097699,0.378191 -0.3097699,0.378191 0,0 -0.3092239,0.377033 -0.3092239,0.377033 0,0 -0.3086458,0.375835 -0.3086458,0.375835 0,0 -0.3080351,0.374596 -0.3080351,0.374596 0,0 -0.3073923,0.373317 -0.3073923,0.373317 0,0 -0.306717,0.371996 -0.306717,0.371996 0,0 -0.3060096,0.370636 -0.3060096,0.370636 0,0 -0.3052697,0.369235 -0.3052697,0.369235 0,0 -0.3044975,0.367792 -0.3044975,0.367792 0,0 -0.3036931,0.36631 -0.3036931,0.36631 0,0 -0.3028563,0.364787 -0.3028563,0.364787 0,0 -0.3019873,0.363223 -0.3019873,0.363223 0,0 -0.3010858,0.361619 -0.3010858,0.361619 0,0 -0.30015211,0.359974 -0.30015211,0.359974 0,0 -0.29918607,0.358288 -0.29918607,0.358288 0,0 -0.29818772,0.356561 -0.29818772,0.356561 0,0 -0.29715706,0.354795 -0.29715706,0.354795 0,0 -0.29609407,0.352987 -0.29609407,0.352987 0,0 -0.29499878,0.35114 -0.29499878,0.35114 0,0 -0.29387119,0.34925 -0.29387119,0.34925 0,0 -0.2927112,0.347321 -0.2927112,0.347321 0,0 -0.291519,0.345351 -0.291519,0.345351 0,0 -0.2902945,0.343341 -0.2902945,0.343341 0,0 -0.2890376,0.341289 -0.2890376,0.341289 0,0 -0.2877484,0.339198 -0.2877484,0.339198 0,0 -0.2864269,0.337065 -0.2864269,0.337065 0,0 -0.2850731,0.334892 -0.2850731,0.334892 0,0 -0.2836869,0.332679 -0.2836869,0.332679 0,0 -0.2822685,0.330424 -0.2822685,0.330424 0,0 -0.2808178,0.328129 -0.2808178,0.328129 0,0 -0.2793347,0.325794 -0.2793347,0.325794 0,0 -0.2778193,0.323418 -0.2778193,0.323418 0,0 -0.2762715,0.321 -0.2762715,0.321 0,0 -0.2746916,0.318544 -0.2746916,0.318544 0,0 -0.2730793,0.316045 -0.2730793,0.316045 0,0 -0.2714346,0.313507 -0.2714346,0.313507 0,0 -0.2697576,0.310928 -0.2697576,0.310928 0,0 -0.2680483,0.308308 -0.2680483,0.308308 0,0 -0.2663068,0.305647 -0.2663068,0.305647 0,0 -0.2645329,0.302947 -0.2645329,0.302947 0,0 -0.2627266,0.300204 -0.2627266,0.300204 0,0 -0.2608881,0.297423 -0.2608881,0.297423 0,0 -0.2590172,0.294599 -0.2590172,0.294599 0,0 -0.2571141,0.291736 -0.2571141,0.291736 0,0 -0.2551786,0.288832 -0.2551786,0.288832 0,0 -0.2532108,0.285887 -0.2532108,0.285887 0,0 -0.2512107,0.282901 -0.2512107,0.282901 0,0 -0.2491782,0.279876 -0.2491782,0.279876 0,0 -0.2471136,0.276809 -0.2471136,0.276809 0,0 -0.2450164,0.273701 -0.2450164,0.273701 0,0 -0.2428871,0.270554 -0.2428871,0.270554 0,0 -0.2407254,0.267366 -0.2407254,0.267366 0,0 -0.2385312,0.264136 -0.2385312,0.264136 0,0 -0.236305,0.260866 -0.236305,0.260866 0,0 -0.234047,0.257557 -0.234047,0.257557 0,0 -0.231755,0.254205 -0.231755,0.254205 0,0 -0.229433,0.250814 -0.229433,0.250814 0,0 -0.227076,0.247381 -0.227076,0.247381 0,0 -0.224689,0.243909 -0.224689,0.243909 0,0 -0.222269,0.240395 -0.222269,0.240395 0,0 -0.219816,0.236842 -0.219816,0.236842 0,0 -0.217331,0.233247 -0.217331,0.233247 0,0 -0.214814,0.229611 -0.214814,0.229611 0,0 -0.212265,0.225935 -0.212265,0.225935 0,0 -0.209683,0.22222 -0.209683,0.22222 0,0 -0.207068,0.218461 -0.207068,0.218461 0,0 -0.204423,0.214665 -0.204423,0.214665 0,0 -0.201743,0.210826 -0.201743,0.210826 0,0 -0.199033,0.206946 -0.199033,0.206946 0,0 -0.196289,0.203028 -0.196289,0.203028 0,0 -0.193514,0.199067 -0.193514,0.199067 0,0 -0.190705,0.195066 -0.190705,0.195066 0,0 -0.187866,0.191025 -0.187866,0.191025 0,0 -0.184992,0.186943 -0.184992,0.186943 0,0 -0.182088,0.18282 -0.182088,0.18282 0,0 -0.17915,0.178657 -0.17915,0.178657 0,0 -0.176181,0.174453 -0.176181,0.174453 0,0 -0.173179,0.170208 -0.173179,0.170208 0,0 -0.170145,0.165924 -0.170145,0.165924 0,0 -0.167079,0.161597 -0.167079,0.161597 0,0 -0.163979,0.157231 -0.163979,0.157231 0,0 -0.160849,0.152825 -0.160849,0.152825 0,0 -0.157685,0.148376 -0.157685,0.148376 0,0 -0.154489,0.143889 -0.154489,0.143889 0,0 -0.151261,0.139359 -0.151261,0.139359 0,0 -0.148001,0.13479 -0.148001,0.13479 0,0 -0.144708,0.13018 -0.144708,0.13018 0,0 -0.141383,0.12553 -0.141383,0.12553 0,0 -0.138026,0.120838 -0.138026,0.120838 0,0 -0.134636,0.116106 -0.134636,0.116106 0,0 -0.131214,0.111333 -0.131214,0.111333 0,0 -0.12776,0.106521 -0.12776,0.106521 0,0 -0.124273,0.101666 -0.124273,0.101666 0,0 -0.120754,0.09677 -0.120754,0.09677 0,0 -0.117203,0.09184 -0.117203,0.09184 0,0 -0.11362,0.08686 -0.11362,0.08686 0,0 -0.110003,0.08185 -0.110003,0.08185 0,0 -0.106356,0.07679 -0.106356,0.07679 0,0 -0.102675,0.07169 -0.102675,0.07169 0,0 -0.09896,0.06655 -0.09896,0.06655 0,0 -0.09522,0.06137 -0.09522,0.06137 0,0 -0.09144,0.05616 -0.09144,0.05616 0,0 -0.08763,0.05089 -0.08763,0.05089 0,0 -0.08379,0.04559 -0.08379,0.04559 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.69013361,0,0,0.8224436,163.91455,102.92346)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1244"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1244" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1249"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1249" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1250"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1250" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1251"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1251" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1252"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1252" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c 0,0 -0.08127,0.03743 -0.08127,0.03743 0,0 -0.08783,0.03715 -0.08783,0.03715 0,0 -0.09435,0.03686 -0.09435,0.03686 0,0 -0.100809,0.03658 -0.100809,0.03658 0,0 -0.107221,0.0363 -0.107221,0.0363 0,0 -0.113581,0.03602 -0.113581,0.03602 0,0 -0.119888,0.03574 -0.119888,0.03574 0,0 -0.126145,0.03545 -0.126145,0.03545 0,0 -0.132349,0.03517 -0.132349,0.03517 0,0 -0.138501,0.03489 -0.138501,0.03489 0,0 -0.144603,0.0346 -0.144603,0.0346 0,0 -0.150652,0.03432 -0.150652,0.03432 0,0 -0.156649,0.03404 -0.156649,0.03404 0,0 -0.162595,0.03375 -0.162595,0.03375 0,0 -0.16849,0.03347 -0.16849,0.03347 0,0 -0.174332,0.03319 -0.174332,0.03319 0,0 -0.180123,0.0329 -0.180123,0.0329 0,0 -0.185862,0.03262 -0.185862,0.03262 0,0 -0.19155,0.03234 -0.19155,0.03234 0,0 -0.197185,0.03205 -0.197185,0.03205 0,0 -0.202769,0.03177 -0.202769,0.03177 0,0 -0.208301,0.03149 -0.208301,0.03149 0,0 -0.213782,0.0312 -0.213782,0.0312 0,0 -0.219211,0.03092 -0.219211,0.03092 0,0 -0.224588,0.03063 -0.224588,0.03063 0,0 -0.229914,0.03035 -0.229914,0.03035 0,0 -0.235187,0.03007 -0.235187,0.03007 0,0 -0.240409,0.02978 -0.240409,0.02978 0,0 -0.24558,0.0295 -0.24558,0.0295 0,0 -0.250699,0.02921 -0.250699,0.02921 0,0 -0.255765,0.02893 -0.255765,0.02893 0,0 -0.260781,0.02864 -0.260781,0.02864 0,0 -0.265744,0.02836 -0.265744,0.02836 0,0 -0.270657,0.02807 -0.270657,0.02807 0,0 -0.275516,0.02779 -0.275516,0.02779 0,0 -0.280325,0.02751 -0.280325,0.02751 0,0 -0.285082,0.02722 -0.285082,0.02722 0,0 -0.289787,0.02693 -0.289787,0.02693 0,0 -0.29444,0.02665 -0.29444,0.02665 0,0 -0.299042,0.02636 -0.299042,0.02636 0,0 -0.303591,0.02608 -0.303591,0.02608 0,0 -0.30809,0.02579 -0.30809,0.02579 0,0 -0.312537,0.02551 -0.312537,0.02551 0,0 -0.316932,0.02522 -0.316932,0.02522 0,0 -0.321274,0.02494 -0.321274,0.02494 0,0 -0.325566,0.02465 -0.325566,0.02465 0,0 -0.329806,0.02436 -0.329806,0.02436 0,0 -0.333994,0.02408 -0.333994,0.02408 0,0 -0.338131,0.02379 -0.338131,0.02379 0,0 -0.342215,0.02351 -0.342215,0.02351 0,0 -0.346248,0.02322 -0.346248,0.02322 0,0 -0.350229,0.02293 -0.350229,0.02293 0,0 -0.354159,0.02265 -0.354159,0.02265 0,0 -0.358037,0.02236 -0.358037,0.02236 0,0 -0.361862,0.02207 -0.361862,0.02207 0,0 -0.365638,0.02179 -0.365638,0.02179 0,0 -0.36936,0.0215 -0.36936,0.0215 0,0 -0.373031,0.02121 -0.373031,0.02121 0,0 -0.37665,0.02093 -0.37665,0.02093 0,0 -0.380218,0.02064 -0.380218,0.02064 0,0 -0.383734,0.02035 -0.383734,0.02035 0,0 -0.387199,0.02006 -0.387199,0.02006 0,0 -0.390611,0.01978 -0.390611,0.01978 0,0 -0.393971,0.01949 -0.393971,0.01949 0,0 -0.397281,0.0192 -0.397281,0.0192 0,0 -0.400539,0.01891 -0.400539,0.01891 0,0 -0.403744,0.01863 -0.403744,0.01863 0,0 -0.406898,0.01834 -0.406898,0.01834 0,0 -0.41,0.01805 -0.41,0.01805 0,0 -0.413051,0.01776 -0.413051,0.01776 0,0 -0.41605,0.01748 -0.41605,0.01748 0,0 -0.418998,0.01719 -0.418998,0.01719 0,0 -0.421892,0.0169 -0.421892,0.0169 0,0 -0.424737,0.01661 -0.424737,0.01661 0,0 -0.427529,0.01632 -0.427529,0.01632 0,0 -0.430269,0.01603 -0.430269,0.01603 0,0 -0.432958,0.01575 -0.432958,0.01575 0,0 -0.435595,0.01546 -0.435595,0.01546 0,0 -0.43818,0.01517 -0.43818,0.01517 0,0 -0.440714,0.01488 -0.440714,0.01488 0,0 -0.443196,0.01459 -0.443196,0.01459 0,0 -0.445626,0.0143 -0.445626,0.0143 0,0 -0.448005,0.01401 -0.448005,0.01401 0,0 -0.450331,0.01372 -0.450331,0.01372 0,0 -0.452607,0.01343 -0.452607,0.01343 0,0 -0.45483,0.01314 -0.45483,0.01314 0,0 -0.457002,0.01286 -0.457002,0.01286 0,0 -0.459121,0.01257 -0.459121,0.01257 0,0 -0.461191,0.01228 -0.461191,0.01228 0,0 -0.463206,0.01199 -0.463206,0.01199 0,0 -0.465172,0.0117 -0.465172,0.0117 0,0 -0.467085,0.01141 -0.467085,0.01141 0,0 -0.468946,0.01112 -0.468946,0.01112 0,0 -0.470756,0.01083 -0.470756,0.01083 0,0 -0.472515,0.01054 -0.472515,0.01054 0,0 -0.47422,0.01025 -0.47422,0.01025 0,0 -0.475876,0.01 -0.475876,0.01 0,0 -0.477478,0.0097 -0.477478,0.0097 0,0 -0.47903,0.0094 -0.47903,0.0094 0,0 -0.480529,0.0091 -0.480529,0.0091 0,0 -0.481977,0.0088 -0.481977,0.0088 0,0 -0.483374,0.0085 -0.483374,0.0085 0,0 -0.484718,0.0082 -0.484718,0.0082 0,0 -0.486011,0.0079 -0.486011,0.0079 0,0 -0.487251,0.0076 -0.487251,0.0076 0,0 -0.488442,0.0073 -0.488442,0.0073 0,0 -0.489579,0.007 -0.489579,0.007 0,0 -0.490665,0.0068 -0.490665,0.0068 0,0 -0.491699,0.0065 -0.491699,0.0065 0,0 -0.492682,0.0062 -0.492682,0.0062 0,0 -0.493613,0.0059 -0.493613,0.0059 0,0 -0.494492,0.0056 -0.494492,0.0056 0,0 -0.495319,0.0053 -0.495319,0.0053 0,0 -0.496095,0.005 -0.496095,0.005 0,0 -0.49682,0.0047 -0.49682,0.0047 0,0 -0.497491,0.0044 -0.497491,0.0044 0,0 -0.498113,0.0041 -0.498113,0.0041 0,0 -0.498681,0.0038 -0.498681,0.0038 0,0 -0.499199,0.0035 -0.499199,0.0035 0,0 -0.499664,0.0033 -0.499664,0.0033 0,0 -0.500078,0.003 -0.500078,0.003 0,0 -0.500441,0.0027 -0.500441,0.0027 0,0 -0.500751,0.0024 -0.500751,0.0024 0,0 -0.501009,0.0021 -0.501009,0.0021 0,0 -0.501217,0.0018 -0.501217,0.0018 0,0 -0.501372,0.0015 -0.501372,0.0015 0,0 -0.501476,0.0012 -0.501476,0.0012 0,0 -0.501528,9.15e-4 -0.501528,9.15e-4 0,0 -0.501528,6.22e-4 -0.501528,6.22e-4 0,0 -0.501476,3.29e-4 -0.501476,3.29e-4 0,0 -0.501374,3.6e-5 -0.501374,3.6e-5 0,0 -0.501218,-2.58e-4 -0.501218,-2.58e-4 0,0 -0.501013,-5.51e-4 -0.501013,-5.51e-4 0,0 -0.500753,-8.45e-4 -0.500753,-8.45e-4 0,0 -0.500444,-0.0011 -0.500444,-0.0011 0,0 -0.500083,-0.0014 -0.500083,-0.0014 0,0 -0.499669,-0.0017 -0.499669,-0.0017 0,0 -0.499204,-0.002 -0.499204,-0.002 0,0 -0.498687,-0.0023 -0.498687,-0.0023 0,0 -0.498119,-0.0026 -0.498119,-0.0026 0,0 -0.497498,-0.0029 -0.497498,-0.0029 0,0 -0.496827,-0.0032 -0.496827,-0.0032 0,0 -0.496104,-0.0035 -0.496104,-0.0035 0,0 -0.495328,-0.0038 -0.495328,-0.0038 0,0 -0.494501,-0.0041 -0.494501,-0.0041 0,0 -0.493622,-0.0044 -0.493622,-0.0044 0,0 -0.492692,-0.0047 -0.492692,-0.0047 0,0 -0.49171,-0.005 -0.49171,-0.005 0,0 -0.490677,-0.0053 -0.490677,-0.0053 0,0 -0.489591,-0.0056 -0.489591,-0.0056 0,0 -0.488453,-0.0058 -0.488453,-0.0058 0,0 -0.487265,-0.0061 -0.487265,-0.0061 0,0 -0.486025,-0.0064 -0.486025,-0.0064 0,0 -0.484732,-0.0067 -0.484732,-0.0067 0,0 -0.483388,-0.007 -0.483388,-0.007 0,0 -0.481992,-0.0073 -0.481992,-0.0073 0,0 -0.480545,-0.0076 -0.480545,-0.0076 0,0 -0.479047,-0.0079 -0.479047,-0.0079 0,0 -0.477495,-0.0082 -0.477495,-0.0082 0,0 -0.475893,-0.0085 -0.475893,-0.0085 0,0 -0.474238,-0.0088 -0.474238,-0.0088 0,0 -0.472533,-0.0091 -0.472533,-0.0091 0,0 -0.470776,-0.0094 -0.470776,-0.0094 0,0 -0.468966,-0.0097 -0.468966,-0.0097 0,0 -0.467105,-0.01 -0.467105,-0.01 0,0 -0.465192,-0.01028 -0.465192,-0.01028 0,0 -0.463228,-0.01058 -0.463228,-0.01058 0,0 -0.461212,-0.01087 -0.461212,-0.01087 0,0 -0.459144,-0.01117 -0.459144,-0.01117 0,0 -0.457025,-0.01147 -0.457025,-0.01147 0,0 -0.454853,-0.01176 -0.454853,-0.01176 0,0 -0.452631,-0.01206 -0.452631,-0.01206 0,0 -0.450356,-0.01236 -0.450356,-0.01236 0,0 -0.44803,-0.01265 -0.44803,-0.01265 0,0 -0.445652,-0.01295 -0.445652,-0.01295 0,0 -0.443222,-0.01325 -0.443222,-0.01325 0,0 -0.440741,-0.01355 -0.440741,-0.01355 0,0 -0.438208,-0.01384 -0.438208,-0.01384 0,0 -0.435623,-0.01414 -0.435623,-0.01414 0,0 -0.432986,-0.01444 -0.432986,-0.01444 0,0 -0.430298,-0.01474 -0.430298,-0.01474 0,0 -0.427559,-0.01503 -0.427559,-0.01503 0,0 -0.424767,-0.01533 -0.424767,-0.01533 0,0 -0.421923,-0.01563 -0.421923,-0.01563 0,0 -0.419029,-0.01593 -0.419029,-0.01593 0,0 -0.416082,-0.01622 -0.416082,-0.01622 0,0 -0.413083,-0.01652 -0.413083,-0.01652 0,0 -0.410034,-0.01682 -0.410034,-0.01682 0,0 -0.406931,-0.01712 -0.406931,-0.01712 0,0 -0.403778,-0.01742 -0.403778,-0.01742 0,0 -0.400573,-0.01772 -0.400573,-0.01772 0,0 -0.397316,-0.01802 -0.397316,-0.01802 0,0 -0.394008,-0.01831 -0.394008,-0.01831 0,0 -0.390647,-0.01861 -0.390647,-0.01861 0,0 -0.387235,-0.01891 -0.387235,-0.01891 0,0 -0.383771,-0.01921 -0.383771,-0.01921 0,0 -0.380257,-0.01951 -0.380257,-0.01951 0,0 -0.376688,-0.01981 -0.376688,-0.01981 0,0 -0.373071,-0.02011 -0.373071,-0.02011 0,0 -0.369399,-0.02041 -0.369399,-0.02041 0,0 -0.365678,-0.02071 -0.365678,-0.02071 0,0 -0.361903,-0.02101 -0.361903,-0.02101 0,0 -0.358078,-0.0213 -0.358078,-0.0213 0,0 -0.354201,-0.0216 -0.354201,-0.0216 0,0 -0.350271,-0.0219 -0.350271,-0.0219 0,0 -0.346291,-0.0222 -0.346291,-0.0222 0,0 -0.342255,-0.0225 -0.342255,-0.0225 0,0 -0.33818,-0.0228 -0.33818,-0.0228 0,0 -0.33404,-0.0231 -0.33404,-0.0231 0,0 -0.32985,-0.0234 -0.32985,-0.0234 0,0 -0.32561,-0.0237 -0.32561,-0.0237 0,0 -0.32132,-0.024 -0.32132,-0.024 0,0 -0.31698,-0.0243 -0.31698,-0.0243 0,0 -0.31258,-0.0246 -0.31258,-0.0246 0,0 -0.30814,-0.0249 -0.30814,-0.0249 0,0 -0.30364,-0.0252 -0.30364,-0.0252 0,0 -0.29909,-0.02551 -0.29909,-0.02551 0,0 -0.29449,-0.02581 -0.29449,-0.02581 0,0 -0.28984,-0.02611 -0.28984,-0.02611 0,0 -0.28513,-0.02641 -0.28513,-0.02641 0,0 -0.28038,-0.02671 -0.28038,-0.02671 0,0 -0.27557,-0.02701 -0.27557,-0.02701 0,0 -0.2707,-0.02731 -0.2707,-0.02731 0,0 -0.2658,-0.02761 -0.2658,-0.02761 0,0 -0.26084,-0.02791 -0.26084,-0.02791 0,0 -0.25582,-0.02822 -0.25582,-0.02822 0,0 -0.25075,-0.02852 -0.25075,-0.02852 0,0 -0.24563,-0.02882 -0.24563,-0.02882 0,0 -0.24047,-0.02912 -0.24047,-0.02912 0,0 -0.23524,-0.02942 -0.23524,-0.02942 0,0 -0.22997,-0.02972 -0.22997,-0.02972 0,0 -0.22465,-0.03003 -0.22465,-0.03003 0,0 -0.21927,-0.03033 -0.21927,-0.03033 0,0 -0.21384,-0.03063 -0.21384,-0.03063 0,0 -0.20836,-0.03093 -0.20836,-0.03093 0,0 -0.20283,-0.03124 -0.20283,-0.03124 0,0 -0.19724,-0.03154 -0.19724,-0.03154 0,0 -0.19161,-0.03184 -0.19161,-0.03184 0,0 -0.18592,-0.03214 -0.18592,-0.03214 0,0 -0.18019,-0.03244 -0.18019,-0.03244 0,0 -0.17439,-0.03275 -0.17439,-0.03275 0,0 -0.16856,-0.03305 -0.16856,-0.03305 0,0 -0.16265,-0.03335 -0.16265,-0.03335 0,0 -0.15672,-0.03366 -0.15672,-0.03366 0,0 -0.15071,-0.03396 -0.15071,-0.03396 0,0 -0.14467,-0.03426 -0.14467,-0.03426 0,0 -0.13857,-0.03457 -0.13857,-0.03457 0,0 -0.13241,-0.03487 -0.13241,-0.03487 0,0 -0.12622,-0.03517 -0.12622,-0.03517 0,0 -0.11995,-0.03548 -0.11995,-0.03548 0,0 -0.11365,-0.03578 -0.11365,-0.03578 0,0 -0.10729,-0.03608 -0.10729,-0.03608 0,0 -0.10088,-0.03639 -0.10088,-0.03639 0,0 -0.0944,-0.03669 -0.0944,-0.03669 0,0 -0.0879,-0.037 -0.0879,-0.037 0,0 -0.0813,-0.0373 -0.0813,-0.0373 0,0 -0.08,-0.04012 -0.08,-0.04012 0,0 -0.0839,-0.04543 -0.0839,-0.04543 0,0 -0.0877,-0.0507 -0.0877,-0.0507 0,0 -0.0915,-0.05593 -0.0915,-0.05593 0,0 -0.0953,-0.06112 -0.0953,-0.06112 0,0 -0.099,-0.06627 -0.099,-0.06627 0,0 -0.10276,-0.07138 -0.10276,-0.07138 0,0 -0.10644,-0.07645 -0.10644,-0.07645 0,0 -0.11009,-0.08147 -0.11009,-0.08147 0,0 -0.1137,-0.08646 -0.1137,-0.08646 0,0 -0.11729,-0.09141 -0.11729,-0.09141 0,0 -0.12085,-0.09632 -0.12085,-0.09632 0,0 -0.12436,-0.101182 -0.12436,-0.101182 0,0 -0.12786,-0.106008 -0.12786,-0.106008 0,0 -0.13131,-0.110794 -0.13131,-0.110794 0,0 -0.13473,-0.115539 -0.13473,-0.115539 0,0 -0.13812,-0.120244 -0.13812,-0.120244 0,0 -0.14149,-0.124908 -0.14149,-0.124908 0,0 -0.14481,-0.129533 -0.14481,-0.129533 0,0 -0.1481,-0.134116 -0.1481,-0.134116 0,0 -0.15137,-0.13866 -0.15137,-0.13866 0,0 -0.15459,-0.143163 -0.15459,-0.143163 0,0 -0.15779,-0.147626 -0.15779,-0.147626 0,0 -0.16096,-0.152048 -0.16096,-0.152048 0,0 -0.16409,-0.15643 -0.16409,-0.15643 0,0 -0.16719,-0.160772 -0.16719,-0.160772 0,0 -0.17026,-0.165073 -0.17026,-0.165073 0,0 -0.1733,-0.169334 -0.1733,-0.169334 0,0 -0.17629,-0.173554 -0.17629,-0.173554 0,0 -0.17927,-0.177735 -0.17927,-0.177735 0,0 -0.18221,-0.181874 -0.18221,-0.181874 0,0 -0.18511,-0.185973 -0.18511,-0.185973 0,0 -0.18799,-0.190033 -0.18799,-0.190033 0,0 -0.19083,-0.194051 -0.19083,-0.194051 0,0 -0.19364,-0.19803 -0.19364,-0.19803 0,0 -0.19642,-0.201967 -0.19642,-0.201967 0,0 -0.19916,-0.205865 -0.19916,-0.205865 0,0 -0.20187,-0.209722 -0.20187,-0.209722 0,0 -0.20455,-0.213539 -0.20455,-0.213539 0,0 -0.2072,-0.217316 -0.2072,-0.217316 0,0 -0.20982,-0.221051 -0.20982,-0.221051 0,0 -0.2124,-0.224747 -0.2124,-0.224747 0,0 -0.21495,-0.228402 -0.21495,-0.228402 0,0 -0.21747,-0.232017 -0.21747,-0.232017 0,0 -0.21995,-0.235592 -0.21995,-0.235592 0,0 -0.22241,-0.239126 -0.22241,-0.239126 0,0 -0.22483,-0.24262 -0.22483,-0.24262 0,0 -0.22722,-0.246073 -0.22722,-0.246073 0,0 -0.22958,-0.249487 -0.22958,-0.249487 0,0 -0.2319,-0.252859 -0.2319,-0.252859 0,0 -0.23419,-0.256191 -0.23419,-0.256191 0,0 -0.23645,-0.259483 -0.23645,-0.259483 0,0 -0.23868,-0.262735 -0.23868,-0.262735 0,0 -0.24088,-0.265946 -0.24088,-0.265946 0,0 -0.24303,-0.269117 -0.24303,-0.269117 0,0 -0.24517,-0.272247 -0.24517,-0.272247 0,0 -0.24727,-0.275338 -0.24727,-0.275338 0,0 -0.24933,-0.278387 -0.24933,-0.278387 0,0 -0.25137,-0.281397 -0.25137,-0.281397 0,0 -0.25337,-0.284365 -0.25337,-0.284365 0,0 -0.25533,-0.287295 -0.25533,-0.287295 0,0 -0.25728,-0.290182 -0.25728,-0.290182 0,0 -0.25917,-0.29303 -0.25917,-0.29303 0,0 -0.26105,-0.295838 -0.26105,-0.295838 0,0 -0.26289,-0.298605 -0.26289,-0.298605 0,0 -0.2647,-0.301332 -0.2647,-0.301332 0,0 -0.26647,-0.304018 -0.26647,-0.304018 0,0 -0.26821,-0.306664 -0.26821,-0.306664 0,0 -0.26993,-0.30927 -0.26993,-0.30927 0,0 -0.2716,-0.311835 -0.2716,-0.311835 0,0 -0.27325,-0.31436 -0.27325,-0.31436 0,0 -0.27486,-0.316844 -0.27486,-0.316844 0,0 -0.27644,-0.319289 -0.27644,-0.319289 0,0 -0.27799,-0.321692 -0.27799,-0.321692 0,0 -0.27951,-0.324056 -0.27951,-0.324056 0,0 -0.28099,-0.326379 -0.28099,-0.326379 0,0 -0.28244,-0.328662 -0.28244,-0.328662 0,0 -0.28387,-0.330903 -0.28387,-0.330903 0,0 -0.28525,-0.333106 -0.28525,-0.333106 0,0 -0.2866,-0.335268 -0.2866,-0.335268 0,0 -0.28793,-0.337388 -0.28793,-0.337388 0,0 -0.28921,-0.33947 -0.28921,-0.33947 0,0 -0.29048,-0.341509 -0.29048,-0.341509 0,0 -0.2917,-0.34351 -0.2917,-0.34351 0,0 -0.29289,-0.34547 -0.29289,-0.34547 0,0 -0.29405,-0.347389 -0.29405,-0.347389 0,0 -0.29519,-0.349268 -0.29519,-0.349268 0,0 -0.29628,-0.351106 -0.29628,-0.351106 0,0 -0.29734,-0.352905 -0.29734,-0.352905 0,0 -0.29837,-0.354662 -0.29837,-0.354662 0,0 -0.29937,-0.356381 -0.29937,-0.356381 0,0 -0.30034,-0.358057 -0.30034,-0.358057 0,0 -0.30128,-0.359694 -0.30128,-0.359694 0,0 -0.30217,-0.36129 -0.30217,-0.36129 0,0 -0.30305,-0.362846 -0.30305,-0.362846 0,0 -0.30388,-0.364362 -0.30388,-0.364362 0,0 -0.30469,-0.365837 -0.30469,-0.365837 0,0 -0.30547,-0.367272 -0.30547,-0.367272 0,0 -0.3062,-0.368667 -0.3062,-0.368667 0,0 -0.30691,-0.37002 -0.30691,-0.37002 0,0 -0.30759,-0.371335 -0.30759,-0.371335 0,0 -0.30823,-0.372607 -0.30823,-0.372607 0,0 -0.30884,-0.373841 -0.30884,-0.373841 0,0 -0.30942,-0.375034 -0.30942,-0.375034 0,0 -0.30996,-0.376186 -0.30996,-0.376186 0,0 -0.31049,-0.377297 -0.31049,-0.377297 0,0 -0.31096,-0.378369 -0.31096,-0.378369 0,0 -0.31141,-0.379401 -0.31141,-0.379401 0,0 -0.31183,-0.380391 -0.31183,-0.380391 0,0 -0.31222,-0.381342 -0.31222,-0.381342 0,0 -0.31256,-0.382251 -0.31256,-0.382251 0,0 -0.31289,-0.383122 -0.31289,-0.383122 0,0 -0.31318,-0.38395 -0.31318,-0.38395 0,0 -0.31343,-0.38474 -0.31343,-0.38474 0,0 -0.31366,-0.385488 -0.31366,-0.385488 0,0 -0.31384,-0.386196 -0.31384,-0.386196 0,0 -0.31401,-0.386865 -0.31401,-0.386865 0,0 -0.31413,-0.387491 -0.31413,-0.387491 0,0 -0.31422,-0.388079 -0.31422,-0.388079 0,0 -0.31429,-0.388625 -0.31429,-0.388625 0,0 -0.31432,-0.389132 -0.31432,-0.389132 0,0 -0.31431,-0.389598 -0.31431,-0.389598 0,0 -0.31428,-0.390023 -0.31428,-0.390023 0,0 -0.31421,-0.390409 -0.31421,-0.390409 0,0 -0.31411,-0.390753 -0.31411,-0.390753 0,0 -0.31398,-0.391058 -0.31398,-0.391058 0,0 -0.31381,-0.391322 -0.31381,-0.391322 0,0 -0.31362,-0.391546 -0.31362,-0.391546 0,0 -0.31339,-0.391729 -0.31339,-0.391729 0,0 -0.31312,-0.391872 -0.31312,-0.391872 0,0 -0.31284,-0.391975 -0.31284,-0.391975 0,0 -0.3125,-0.392037 -0.3125,-0.392037 0,0 -0.31215,-0.392059 -0.31215,-0.392059 0,0 -0.31176,-0.39204 -0.31176,-0.39204 0,0 -0.31133,-0.391982 -0.31133,-0.391982 0,0 -0.31088,-0.391882 -0.31088,-0.391882 0,0 -0.31039,-0.391743 -0.31039,-0.391743 0,0 -0.30987,-0.391563 -0.30987,-0.391563 0,0 -0.30932,-0.391342 -0.30932,-0.391342 0,0 -0.30873,-0.391082 -0.30873,-0.391082 0,0 -0.30812,-0.39078 -0.30812,-0.39078 0,0 -0.30746,-0.39044 -0.30746,-0.39044 0,0 -0.30679,-0.390057 -0.30679,-0.390057 0,0 -0.30607,-0.389635 -0.30607,-0.389635 0,0 -0.30532,-0.389173 -0.30532,-0.389173 0,0 -0.30455,-0.388669 -0.30455,-0.388669 0,0 -0.30373,-0.388127 -0.30373,-0.388127 0,0 -0.30289,-0.387542 -0.30289,-0.387542 0,0 -0.30202,-0.386919 -0.30202,-0.386919 0,0 -0.30111,-0.386254 -0.30111,-0.386254 0,0 -0.30016,-0.385549 -0.30016,-0.385549 0,0 -0.2992,-0.384805 -0.2992,-0.384805 0,0 -0.29819,-0.384018 -0.29819,-0.384018 0,0 -0.29715,-0.383193 -0.29715,-0.383193 0,0 -0.29608,-0.382327 -0.29608,-0.382327 0,0 -0.29498,-0.381419 -0.29498,-0.381419 0,0 -0.29385,-0.380473 -0.29385,-0.380473 0,0 -0.29268,-0.379486 -0.29268,-0.379486 0,0 -0.29148,-0.378457 -0.29148,-0.378457 0,0 -0.29025,-0.37739 -0.29025,-0.37739 0,0 -0.28898,-0.376281 -0.28898,-0.376281 0,0 -0.28769,-0.375132 -0.28769,-0.375132 0,0 -0.28636,-0.373943 -0.28636,-0.373943 0,0 -0.28501,-0.372713 -0.28501,-0.372713 0,0 -0.2836,-0.371443 -0.2836,-0.371443 0,0 -0.28219,-0.370133 -0.28219,-0.370133 0,0 -0.28072,-0.368782 -0.28072,-0.368782 0,0 -0.27924,-0.367391 -0.27924,-0.367391 0,0 -0.27771,-0.36596 -0.27771,-0.36596 0,0 -0.27616,-0.364487 -0.27616,-0.364487 0,0 -0.27457,-0.362976 -0.27457,-0.362976 0,0 -0.27295,-0.361423 -0.27295,-0.361423 0,0 -0.2713,-0.35983 -0.2713,-0.35983 0,0 -0.26962,-0.358196 -0.26962,-0.358196 0,0 -0.2679,-0.356523 -0.2679,-0.356523 0,0 -0.26615,-0.354809 -0.26615,-0.354809 0,0 -0.26437,-0.353054 -0.26437,-0.353054 0,0 -0.26256,-0.35126 -0.26256,-0.35126 0,0 -0.26071,-0.349424 -0.26071,-0.349424 0,0 -0.25884,-0.347549 -0.25884,-0.347549 0,0 -0.25692,-0.345633 -0.25692,-0.345633 0,0 -0.25499,-0.343676 -0.25499,-0.343676 0,0 -0.253,-0.34168 -0.253,-0.34168 0,0 -0.251,-0.339643 -0.251,-0.339643 0,0 -0.24897,-0.337565 -0.24897,-0.337565 0,0 -0.24688,-0.335448 -0.24688,-0.335448 0,0 -0.24479,-0.33329 -0.24479,-0.33329 0,0 -0.24265,-0.33109 -0.24265,-0.33109 0,0 -0.24048,-0.328852 -0.24048,-0.328852 0,0 -0.23828,-0.326573 -0.23828,-0.326573 0,0 -0.23604,-0.324253 -0.23604,-0.324253 0,0 -0.23378,-0.321893 -0.23378,-0.321893 0,0 -0.23149,-0.319493 -0.23149,-0.319493 0,0 -0.22915,-0.317052 -0.22915,-0.317052 0,0 -0.22679,-0.314571 -0.22679,-0.314571 0,0 -0.22439,-0.312049 -0.22439,-0.312049 0,0 -0.22197,-0.309487 -0.22197,-0.309487 0,0 -0.2195,-0.306886 -0.2195,-0.306886 0,0 -0.21702,-0.304242 -0.21702,-0.304242 0,0 -0.21449,-0.30156 -0.21449,-0.30156 0,0 -0.21193,-0.298836 -0.21193,-0.298836 0,0 -0.20935,-0.296072 -0.20935,-0.296072 0,0 -0.20672,-0.293269 -0.20672,-0.293269 0,0 -0.20407,-0.290424 -0.20407,-0.290424 0,0 -0.20139,-0.287539 -0.20139,-0.287539 0,0 -0.19866,-0.284613 -0.19866,-0.284613 0,0 -0.19592,-0.281649 -0.19592,-0.281649 0,0 -0.19313,-0.278642 -0.19313,-0.278642 0,0 -0.19032,-0.275596 -0.19032,-0.275596 0,0 -0.18747,-0.272509 -0.18747,-0.272509 0,0 -0.18459,-0.269382 -0.18459,-0.269382 0,0 -0.18168,-0.266215 -0.18168,-0.266215 0,0 -0.17873,-0.263007 -0.17873,-0.263007 0,0 -0.17576,-0.259759 -0.17576,-0.259759 0,0 -0.17274,-0.25647 -0.17274,-0.25647 0,0 -0.16971,-0.253141 -0.16971,-0.253141 0,0 -0.16663,-0.249772 -0.16663,-0.249772 0,0 -0.16353,-0.246363 -0.16353,-0.246363 0,0 -0.16038,-0.242912 -0.16038,-0.242912 0,0 -0.15722,-0.239422 -0.15722,-0.239422 0,0 -0.15401,-0.235891 -0.15401,-0.235891 0,0 -0.15078,-0.23232 -0.15078,-0.23232 0,0 -0.14751,-0.228708 -0.14751,-0.228708 0,0 -0.14421,-0.225056 -0.14421,-0.225056 0,0 -0.14088,-0.221365 -0.14088,-0.221365 0,0 -0.13751,-0.217631 -0.13751,-0.217631 0,0 -0.13411,-0.213859 -0.13411,-0.213859 0,0 -0.13069,-0.210045 -0.13069,-0.210045 0,0 -0.12722,-0.206191 -0.12722,-0.206191 0,0 -0.12373,-0.202298 -0.12373,-0.202298 0,0 -0.12021,-0.198362 -0.12021,-0.198362 0,0 -0.11664,-0.194388 -0.11664,-0.194388 0,0 -0.11306,-0.190373 -0.11306,-0.190373 0,0 -0.10943,-0.186317 -0.10943,-0.186317 0,0 -0.10577,-0.182221 -0.10577,-0.182221 0,0 -0.10209,-0.178085 -0.10209,-0.178085 0,0 -0.0984,-0.173908 -0.0984,-0.173908 0,0 -0.0946,-0.169691 -0.0946,-0.169691 0,0 -0.0908,-0.165433 -0.0908,-0.165433 0,0 -0.087,-0.161136 -0.087,-0.161136 0,0 -0.0832,-0.156797 -0.0832,-0.156797 0,0 -0.0793,-0.152419 -0.0793,-0.152419 0,0 -0.0754,-0.148 -0.0754,-0.148 0,0 -0.0714,-0.143541 -0.0714,-0.143541 0,0 -0.0674,-0.139041 -0.0674,-0.139041 0,0 -0.0634,-0.1345 -0.0634,-0.1345 0,0 -0.0594,-0.129921 -0.0594,-0.129921 0,0 -0.0553,-0.125299 -0.0553,-0.125299 0,0 -0.0512,-0.120639 -0.0512,-0.120639 0,0 -0.0471,-0.115937 -0.0471,-0.115937 0,0 -0.0429,-0.111194 -0.0429,-0.111194 0,0 -0.0387,-0.106413 -0.0387,-0.106413 0,0 -0.0344,-0.10159 -0.0344,-0.10159 0,0 -0.0302,-0.09673 -0.0302,-0.09673 0,0 -0.0259,-0.09182 -0.0259,-0.09182 0,0 -0.0215,-0.08688 -0.0215,-0.08688 0,0 -0.0185,-0.08759 -0.0185,-0.08759 0,0 -0.0167,-0.09394 -0.0167,-0.09394 0,0 -0.015,-0.100245 -0.015,-0.100245 0,0 -0.0133,-0.106497 -0.0133,-0.106497 0,0 -0.0115,-0.1127 -0.0115,-0.1127 0,0 -0.01,-0.118851 -0.01,-0.118851 0,0 -0.008,-0.124953 -0.008,-0.124953 0,0 -0.006,-0.131002 -0.006,-0.131002 0,0 -0.005,-0.137003 -0.005,-0.137003 0,0 -0.003,-0.142952 -0.003,-0.142952 0,0 -0.002,-0.14885 -0.002,-0.14885 0,0 1.3e-4,-0.1547 1.3e-4,-0.1547 0,0 0.002,-0.160496 0.002,-0.160496 0,0 0.003,-0.1662445 0.003,-0.1662445 0,0 0.005,-0.1719407 0.005,-0.1719407 0,0 0.007,-0.1775869 0.007,-0.1775869 0,0 0.008,-0.1831825 0.008,-0.1831825 0,0 0.01,-0.1887275 0.01,-0.1887275 0,0 0.0112,-0.194222 0.0112,-0.194222 0,0 0.0128,-0.199666 0.0128,-0.199666 0,0 0.0143,-0.2050595 0.0143,-0.2050595 0,0 0.0158,-0.2104023 0.0158,-0.2104023 0,0 0.0173,-0.2156946 0.0173,-0.2156946 0,0 0.0188,-0.2209365 0.0188,-0.2209365 0,0 0.0203,-0.2261278 0.0203,-0.2261278 0,0 0.0218,-0.2312684 0.0218,-0.2312684 0,0 0.0232,-0.2363587 0.0232,-0.2363587 0,0 0.0247,-0.2413983 0.0247,-0.2413983 0,0 0.0261,-0.2463874 0.0261,-0.2463874 0,0 0.0276,-0.251326 0.0276,-0.251326 0,0 0.029,-0.256214 0.029,-0.256214 0,0 0.0304,-0.2610514 0.0304,-0.2610514 0,0 0.0318,-0.2658385 0.0318,-0.2658385 0,0 0.0331,-0.2705748 0.0331,-0.2705748 0,0 0.0345,-0.2752606 0.0345,-0.2752606 0,0 0.0359,-0.279896 0.0359,-0.279896 0,0 0.0372,-0.2844808 0.0372,-0.2844808 0,0 0.0385,-0.289015 0.0385,-0.289015 0,0 0.0399,-0.2934987 0.0399,-0.2934987 0,0 0.0412,-0.2979319 0.0412,-0.2979319 0,0 0.0425,-0.3023144 0.0425,-0.3023144 0,0 0.0438,-0.3066466 0.0438,-0.3066466 0,0 0.0451,-0.3109281 0.0451,-0.3109281 0,0 0.0463,-0.315159 0.0463,-0.315159 0,0 0.0476,-0.3193396 0.0476,-0.3193396 0,0 0.0488,-0.3234694 0.0488,-0.3234694 0,0 0.05,-0.3275488 0.05,-0.3275488 0,0 0.0513,-0.3315776 0.0513,-0.3315776 0,0 0.0525,-0.33555596 0.0525,-0.33555596 0,0 0.0537,-0.33948367 0.0537,-0.33948367 0,0 0.0548,-0.34336088 0.0548,-0.34336088 0,0 0.056,-0.34718754 0.056,-0.34718754 0,0 0.0572,-0.35096367 0.0572,-0.35096367 0,0 0.0583,-0.35468926 0.0583,-0.35468926 0,0 0.0595,-0.35836432 0.0595,-0.35836432 0,0 0.0606,-0.3619888 0.0606,-0.3619888 0,0 0.0617,-0.3655627 0.0617,-0.3655627 0,0 0.0628,-0.3690862 0.0628,-0.3690862 0,0 0.0639,-0.3725591 0.0639,-0.3725591 0,0 0.065,-0.3759814 0.065,-0.3759814 0,0 0.066,-0.3793532 0.066,-0.3793532 0,0 0.0671,-0.3826745 0.0671,-0.3826745 0,0 0.0682,-0.3859451 0.0682,-0.3859451 0,0 0.0692,-0.3891654 0.0692,-0.3891654 0,0 0.0702,-0.392335 0.0702,-0.392335 0,0 0.0712,-0.3954541 0.0712,-0.3954541 0,0 0.0722,-0.3985226 0.0722,-0.3985226 0,0 0.0732,-0.4015407 0.0732,-0.4015407 0,0 0.0742,-0.4045081 0.0742,-0.4045081 0,0 0.0752,-0.4074251 0.0752,-0.4074251 0,0 0.0761,-0.4102914 0.0761,-0.4102914 0,0 0.0771,-0.4131073 0.0771,-0.4131073 0,0 0.078,-0.4158726 0.078,-0.4158726 0,0 0.0789,-0.4185874 0.0789,-0.4185874 0,0 0.0798,-0.4212516 0.0798,-0.4212516 0,0 0.0807,-0.4238653 0.0807,-0.4238653 0,0 0.0816,-0.4264284 0.0816,-0.4264284 0,0 0.0825,-0.4289409 0.0825,-0.4289409 0,0 0.0833,-0.431403 0.0833,-0.431403 0,0 0.0842,-0.433815 0.0842,-0.433815 0,0 0.085,-0.436176 0.085,-0.436176 0,0 0.0858,-0.438486 0.0858,-0.438486 0,0 0.0867,-0.440746 0.0867,-0.440746 0,0 0.0875,-0.442955 0.0875,-0.442955 0,0 0.0883,-0.445114 0.0883,-0.445114 0,0 0.089,-0.447223 0.089,-0.447223 0,0 0.0898,-0.44928 0.0898,-0.44928 0,0 0.0906,-0.451287 0.0906,-0.451287 0,0 0.0913,-0.453244 0.0913,-0.453244 0,0 0.0921,-0.45515 0.0921,-0.45515 0,0 0.0928,-0.457006 0.0928,-0.457006 0,0 0.0935,-0.458811 0.0935,-0.458811 0,0 0.0942,-0.460565 0.0942,-0.460565 0,0 0.0949,-0.462269 0.0949,-0.462269 0,0 0.0956,-0.463923 0.0956,-0.463923 0,0 0.0962,-0.465525 0.0962,-0.465525 0,0 0.0969,-0.467078 0.0969,-0.467078 0,0 0.0975,-0.46858 0.0975,-0.46858 0,0 0.0981,-0.47003 0.0981,-0.47003 0,0 0.0988,-0.471432 0.0988,-0.471432 0,0 0.0994,-0.472782 0.0994,-0.472782 0,0 0.1,-0.474081 0.1,-0.474081 0,0 0.10056,-0.475331 0.10056,-0.475331 0,0 0.10113,-0.476529 0.10113,-0.476529 0,0 0.10169,-0.477677 0.10169,-0.477677 0,0 0.10224,-0.478774 0.10224,-0.478774 0,0 0.10278,-0.479821 0.10278,-0.479821 0,0 0.10331,-0.480818 0.10331,-0.480818 0,0 0.10383,-0.481764 0.10383,-0.481764 0,0 0.10433,-0.482659 0.10433,-0.482659 0,0 0.10482,-0.483503 0.10482,-0.483503 0,0 0.10531,-0.484298 0.10531,-0.484298 0,0 0.10577,-0.485042 0.10577,-0.485042 0,0 0.10623,-0.485734 0.10623,-0.485734 0,0 0.10669,-0.486378 0.10669,-0.486378 0,0 0.10711,-0.486969 0.10711,-0.486969 0,0 0.10754,-0.487511 0.10754,-0.487511 0,0 0.10796,-0.488002 0.10796,-0.488002 0,0 0.10835,-0.488442 0.10835,-0.488442 0,0 0.10874,-0.488832 0.10874,-0.488832 0,0 0.10913,-0.489172 0.10913,-0.489172 0,0 0.10948,-0.48946 0.10948,-0.48946 0,0 0.10985,-0.489699 0.10985,-0.489699 0,0 0.11018,-0.489886 0.11018,-0.489886 0,0 0.11052,-0.490024 0.11052,-0.490024 0,0 0.11084,-0.49011 0.11084,-0.49011 0,0 0.11115,-0.490146 0.11115,-0.490146 0,0 0.11144,-0.490132 0.11144,-0.490132 0,0 0.11173,-0.490067 0.11173,-0.490067 0,0 0.11201,-0.489951 0.11201,-0.489951 0,0 0.11227,-0.489785 0.11227,-0.489785 0,0 0.11251,-0.489569 0.11251,-0.489569 0,0 0.11276,-0.489302 0.11276,-0.489302 0,0 0.11299,-0.488984 0.11299,-0.488984 0,0 0.1132,-0.488615 0.1132,-0.488615 0,0 0.11341,-0.488197 0.11341,-0.488197 0,0 0.1136,-0.487728 0.1136,-0.487728 0,0 0.11379,-0.487208 0.11379,-0.487208 0,0 0.11395,-0.486637 0.11395,-0.486637 0,0 0.11412,-0.486016 0.11412,-0.486016 0,0 0.11426,-0.485345 0.11426,-0.485345 0,0 0.1144,-0.484623 0.1144,-0.484623 0,0 0.11452,-0.483851 0.11452,-0.483851 0,0 0.11464,-0.483027 0.11464,-0.483027 0,0 0.11473,-0.482154 0.11473,-0.482154 0,0 0.11483,-0.48123 0.11483,-0.48123 0,0 0.11491,-0.480255 0.11491,-0.480255 0,0 0.11497,-0.479229 0.11497,-0.479229 0,0 0.11503,-0.478154 0.11503,-0.478154 0,0 0.11507,-0.477027 0.11507,-0.477027 0,0 0.1151,-0.475851 0.1151,-0.475851 0,0 0.11513,-0.474623 0.11513,-0.474623 0,0 0.11513,-0.473346 0.11513,-0.473346 0,0 0.11513,-0.472016 0.11513,-0.472016 0,0 0.11512,-0.470638 0.11512,-0.470638 0,0 0.1151,-0.469208 0.1151,-0.469208 0,0 0.11505,-0.467728 0.11505,-0.467728 0,0 0.11501,-0.466198 0.11501,-0.466198 0,0 0.11495,-0.464616 0.11495,-0.464616 0,0 0.11488,-0.462984 0.11488,-0.462984 0,0 0.11479,-0.461303 0.11479,-0.461303 0,0 0.1147,-0.459569 0.1147,-0.459569 0,0 0.1146,-0.457786 0.1146,-0.457786 0,0 0.11447,-0.455952 0.11447,-0.455952 0,0 0.11435,-0.454068 0.11435,-0.454068 0,0 0.11421,-0.452132 0.11421,-0.452132 0,0 0.11405,-0.450148 0.11405,-0.450148 0,0 0.1139,-0.448111 0.1139,-0.448111 0,0 0.11371,-0.446024 0.11371,-0.446024 0,0 0.11354,-0.443887 0.11354,-0.443887 0,0 0.11333,-0.4417 0.11333,-0.4417 0,0 0.11312,-0.439461 0.11312,-0.439461 0,0 0.1129,-0.437173 0.1129,-0.437173 0,0 0.11267,-0.434833 0.11267,-0.434833 0,0 0.11243,-0.432444 0.11243,-0.432444 0,0 0.11217,-0.430003 0.11217,-0.430003 0,0 0.1119,-0.427512 0.1119,-0.427512 0,0 0.11163,-0.424971 0.11163,-0.424971 0,0 0.11133,-0.422379 0.11133,-0.422379 0,0 0.11103,-0.419736 0.11103,-0.419736 0,0 0.11072,-0.417043 0.11072,-0.417043 0,0 0.1104,-0.414299 0.1104,-0.414299 0,0 0.11006,-0.411505 0.11006,-0.411505 0,0 0.10971,-0.408661 0.10971,-0.408661 0,0 0.10935,-0.405765 0.10935,-0.405765 0,0 0.10898,-0.40282 0.10898,-0.40282 0,0 0.1086,-0.399823 0.1086,-0.399823 0,0 0.1082,-0.396776 0.1082,-0.396776 0,0 0.1078,-0.393679 0.1078,-0.393679 0,0 0.10739,-0.390531 0.10739,-0.390531 0,0 0.10695,-0.387332 0.10695,-0.387332 0,0 0.10651,-0.384083 0.10651,-0.384083 0,0 0.10607,-0.380784 0.10607,-0.380784 0,0 0.1056,-0.377434 0.1056,-0.377434 0,0 0.10512,-0.374033 0.10512,-0.374033 0,0 0.10464,-0.370581 0.10464,-0.370581 0,0 0.10414,-0.36708 0.10414,-0.36708 0,0 0.10364,-0.363528 0.10364,-0.363528 0,0 0.10311,-0.359925 0.10311,-0.359925 0,0 0.10258,-0.356271 0.10258,-0.356271 0,0 0.10204,-0.352568 0.10204,-0.352568 0,0 0.10148,-0.348813 0.10148,-0.348813 0,0 0.10091,-0.345008 0.10091,-0.345008 0,0 0.10034,-0.341153 0.10034,-0.341153 0,0 0.0998,-0.337246 0.0998,-0.337246 0,0 0.0991,-0.33329 0.0991,-0.33329 0,0 0.0985,-0.329283 0.0985,-0.329283 0,0 0.0979,-0.325225 0.0979,-0.325225 0,0 0.0973,-0.321117 0.0973,-0.321117 0,0 0.0966,-0.316958 0.0966,-0.316958 0,0 0.096,-0.312749 0.096,-0.312749 0,0 0.0953,-0.308489 0.0953,-0.308489 0,0 0.0946,-0.304178 0.0946,-0.304178 0,0 0.0939,-0.299818 0.0939,-0.299818 0,0 0.0932,-0.295406 0.0932,-0.295406 0,0 0.0925,-0.290944 0.0925,-0.290944 0,0 0.0918,-0.286431 0.0918,-0.286431 0,0 0.091,-0.281869 0.091,-0.281869 0,0 0.0903,-0.277255 0.0903,-0.277255 0,0 0.0895,-0.27259 0.0895,-0.27259 0,0 0.0888,-0.267876 0.0888,-0.267876 0,0 0.088,-0.26311 0.088,-0.26311 0,0 0.0872,-0.258295 0.0872,-0.258295 0,0 0.0864,-0.253429 0.0864,-0.253429 0,0 0.0855,-0.248511 0.0855,-0.248511 0,0 0.0847,-0.243544 0.0847,-0.243544 0,0 0.0839,-0.238526 0.0839,-0.238526 0,0 0.083,-0.233458 0.083,-0.233458 0,0 0.0821,-0.228338 0.0821,-0.228338 0,0 0.0813,-0.223169 0.0813,-0.223169 0,0 0.0804,-0.217949 0.0804,-0.217949 0,0 0.0795,-0.212678 0.0795,-0.212678 0,0 0.0786,-0.207357 0.0786,-0.207357 0,0 0.0776,-0.201986 0.0776,-0.201986 0,0 0.0767,-0.196562 0.0767,-0.196562 0,0 0.0758,-0.19109 0.0758,-0.19109 0,0 0.0748,-0.185567 0.0748,-0.185567 0,0 0.0738,-0.179993 0.0738,-0.179993 0,0 0.0728,-0.174368 0.0728,-0.174368 0,0 0.0719,-0.168693 0.0719,-0.168693 0,0 0.0709,-0.162968 0.0709,-0.162968 0,0 0.0698,-0.157192 0.0698,-0.157192 0,0 0.0688,-0.151365 0.0688,-0.151365 0,0 0.0678,-0.145488 0.0678,-0.145488 0,0 0.0667,-0.13956 0.0667,-0.13956 0,0 0.0657,-0.133582 0.0657,-0.133582 0,0 0.0646,-0.127553 0.0646,-0.127553 0,0 0.0635,-0.121474 0.0635,-0.121474 0,0 0.0624,-0.115344 0.0624,-0.115344 0,0 0.0613,-0.109163 0.0613,-0.109163 0,0 0.0602,-0.102933 0.0602,-0.102933 0,0 0.059,-0.09665 0.059,-0.09665 0,0 0.0579,-0.09032 0.0579,-0.09032 0,0 0.0567,-0.08394 0.0567,-0.08394 0,0 0.0556,-0.0775 0.0556,-0.0775 0,0 0.0544,-0.07102 0.0544,-0.07102 0,0 0.0568,-0.06907 0.0568,-0.06907 0,0 0.0629,-0.07166 0.0629,-0.07166 0,0 0.0688,-0.07423 0.0688,-0.07423 0,0 0.0748,-0.07678 0.0748,-0.07678 0,0 0.0807,-0.0793 0.0807,-0.0793 0,0 0.0865,-0.0818 0.0865,-0.0818 0,0 0.0923,-0.08429 0.0923,-0.08429 0,0 0.0981,-0.08674 0.0981,-0.08674 0,0 0.10377,-0.08918 0.10377,-0.08918 0,0 0.10943,-0.09159 0.10943,-0.09159 0,0 0.11503,-0.09398 0.11503,-0.09398 0,0 0.12061,-0.09635 0.12061,-0.09635 0,0 0.12612,-0.09869 0.12612,-0.09869 0,0 0.13159,-0.101017 0.13159,-0.101017 0,0 0.13701,-0.103318 0.13701,-0.103318 0,0 0.1424,-0.105595 0.1424,-0.105595 0,0 0.14772,-0.107851 0.14772,-0.107851 0,0 0.15302,-0.110084 0.15302,-0.110084 0,0 0.15825,-0.112294 0.15825,-0.112294 0,0 0.16344,-0.114482 0.16344,-0.114482 0,0 0.16859,-0.116648 0.16859,-0.116648 0,0 0.17369,-0.11879 0.17369,-0.11879 0,0 0.17875,-0.120911 0.17875,-0.120911 0,0 0.18375,-0.123009 0.18375,-0.123009 0,0 0.18871,-0.125084 0.18871,-0.125084 0,0 0.19362,-0.127138 0.19362,-0.127138 0,0 0.19849,-0.129168 0.19849,-0.129168 0,0 0.20331,-0.131175 0.20331,-0.131175 0,0 0.20809,-0.133161 0.20809,-0.133161 0,0 0.21282,-0.135125 0.21282,-0.135125 0,0 0.21749,-0.137064 0.21749,-0.137064 0,0 0.22213,-0.138983 0.22213,-0.138983 0,0 0.22672,-0.140878 0.22672,-0.140878 0,0 0.23127,-0.142751 0.23127,-0.142751 0,0 0.23575,-0.144602 0.23575,-0.144602 0,0 0.24021,-0.14643 0.24021,-0.14643 0,0 0.24461,-0.148235 0.24461,-0.148235 0,0 0.24897,-0.150018 0.24897,-0.150018 0,0 0.25327,-0.151779 0.25327,-0.151779 0,0 0.25754,-0.153516 0.25754,-0.153516 0,0 0.26176,-0.155233 0.26176,-0.155233 0,0 0.26593,-0.156925 0.26593,-0.156925 0,0 0.27005,-0.158596 0.27005,-0.158596 0,0 0.27413,-0.160244 0.27413,-0.160244 0,0 0.27816,-0.161869 0.27816,-0.161869 0,0 0.28214,-0.163473 0.28214,-0.163473 0,0 0.28608,-0.165053 0.28608,-0.165053 0,0 0.28997,-0.166611 0.28997,-0.166611 0,0 0.29382,-0.168147 0.29382,-0.168147 0,0 0.29762,-0.16966 0.29762,-0.16966 0,0 0.30137,-0.17115 0.30137,-0.17115 0,0 0.30508,-0.172619 0.30508,-0.172619 0,0 0.30873,-0.174064 0.30873,-0.174064 0,0 0.31235,-0.175487 0.31235,-0.175487 0,0 0.31591,-0.176888 0.31591,-0.176888 0,0 0.31944,-0.178266 0.31944,-0.178266 0,0 0.3229,-0.179622 0.3229,-0.179622 0,0 0.32634,-0.180954 0.32634,-0.180954 0,0 0.32971,-0.182266 0.32971,-0.182266 0,0 0.33305,-0.183553 0.33305,-0.183553 0,0 0.33634,-0.184819 0.33634,-0.184819 0,0 0.33958,-0.186063 0.33958,-0.186063 0,0 0.34277,-0.187282 0.34277,-0.187282 0,0 0.34592,-0.188482 0.34592,-0.188482 0,0 0.34902,-0.189656 0.34902,-0.189656 0,0 0.35208,-0.19081 0.35208,-0.19081 0,0 0.35509,-0.191941 0.35509,-0.191941 0,0 0.35804,-0.193049 0.35804,-0.193049 0,0 0.36097,-0.194134 0.36097,-0.194134 0,0 0.36383,-0.195198 0.36383,-0.195198 0,0 0.36666,-0.196238 0.36666,-0.196238 0,0 0.36943,-0.197256 0.36943,-0.197256 0,0 0.37217,-0.198253 0.37217,-0.198253 0,0 0.37484,-0.199225 0.37484,-0.199225 0,0 0.37749,-0.200176 0.37749,-0.200176 0,0 0.38007,-0.201105 0.38007,-0.201105 0,0 0.38262,-0.20201 0.38262,-0.20201 0,0 0.38512,-0.202893 0.38512,-0.202893 0,0 0.38757,-0.203754 0.38757,-0.203754 0,0 0.38997,-0.204592 0.38997,-0.204592 0,0 0.39233,-0.205409 0.39233,-0.205409 0,0 0.39464,-0.206201 0.39464,-0.206201 0,0 0.39691,-0.206972 0.39691,-0.206972 0,0 0.39913,-0.20772 0.39913,-0.20772 0,0 0.4013,-0.208446 0.4013,-0.208446 0,0 0.40342,-0.20915 0.40342,-0.20915 0,0 0.40551,-0.20983 0.40551,-0.20983 0,0 0.40753,-0.210488 0.40753,-0.210488 0,0 0.40953,-0.211125 0.40953,-0.211125 0,0 0.41146,-0.211737 0.41146,-0.211737 0,0 0.41336,-0.212328 0.41336,-0.212328 0,0 0.41521,-0.212897 0.41521,-0.212897 0,0 0.417,-0.213443 0.417,-0.213443 0,0 0.41876,-0.213965 0.41876,-0.213965 0,0 0.42047,-0.214467 0.42047,-0.214467 0,0 0.42213,-0.214945 0.42213,-0.214945 0,0 0.42375,-0.215401 0.42375,-0.215401 0,0 0.42531,-0.215834 0.42531,-0.215834 0,0 0.42684,-0.216245 0.42684,-0.216245 0,0 0.42831,-0.216633 0.42831,-0.216633 0,0 0.42974,-0.216999 0.42974,-0.216999 0,0 0.43112,-0.217342 0.43112,-0.217342 0,0 0.43246,-0.217664 0.43246,-0.217664 0,0 0.43374,-0.217961 0.43374,-0.217961 0,0 0.43499,-0.218238 0.43499,-0.218238 0,0 0.43619,-0.218491 0.43619,-0.218491 0,0 0.43734,-0.218722 0.43734,-0.218722 0,0 0.43844,-0.21893 0.43844,-0.21893 0,0 0.4395,-0.219116 0.4395,-0.219116 0,0 0.44051,-0.21928 0.44051,-0.21928 0,0 0.44147,-0.21942 0.44147,-0.21942 0,0 0.44239,-0.219539 0.44239,-0.219539 0,0 0.44327,-0.219635 0.44327,-0.219635 0,0 0.44409,-0.219708 0.44409,-0.219708 0,0 0.44486,-0.219759 0.44486,-0.219759 0,0 0.4456,-0.219788 0.4456,-0.219788 0,0 0.44629,-0.219793 0.44629,-0.219793 0,0 0.44692,-0.219777 0.44692,-0.219777 0,0 0.44752,-0.219738 0.44752,-0.219738 0,0 0.44806,-0.219676 0.44806,-0.219676 0,0 0.44856,-0.219593 0.44856,-0.219593 0,0 0.44901,-0.219485 0.44901,-0.219485 0,0 0.44943,-0.219357 0.44943,-0.219357 0,0 0.44978,-0.219205 0.44978,-0.219205 0,0 0.4501,-0.219032 0.4501,-0.219032 0,0 0.45036,-0.218836 0.45036,-0.218836 0,0 0.45058,-0.21861 0.45058,-0.21861 0,0 0.45076,-0.21838 0.45076,-0.21838 0,0 0.45089,-0.21811 0.45089,-0.21811 0,0 0.45097,-0.21782 0.45097,-0.21782 0,0 0.451,-0.21752 0.451,-0.21752 0,0 0.45099,-0.21718 0.45099,-0.21718 0,0 0.45094,-0.21683 0.45094,-0.21683 0,0 0.45083,-0.21645 0.45083,-0.21645 0,0 0.45068,-0.21606 0.45068,-0.21606 0,0 0.45048,-0.21563 0.45048,-0.21563 0,0 0.45024,-0.21519 0.45024,-0.21519 0,0 0.44995,-0.21472 0.44995,-0.21472 0,0 0.44961,-0.21423 0.44961,-0.21423 0,0 0.44923,-0.21372 0.44923,-0.21372 0,0 0.44879,-0.21319 0.44879,-0.21319 0,0 0.44833,-0.21263 0.44833,-0.21263 0,0 0.4478,-0.21205 0.4478,-0.21205 0,0 0.44723,-0.21145 0.44723,-0.21145 0,0 0.446614,-0.21083 0.446614,-0.21083 0,0 0.445954,-0.21018 0.445954,-0.21018 0,0 0.445246,-0.20951 0.445246,-0.20951 0,0 0.44449,-0.20882 0.44449,-0.20882 0,0 0.44369,-0.20811 0.44369,-0.20811 0,0 0.442842,-0.20737 0.442842,-0.20737 0,0 0.441947,-0.20661 0.441947,-0.20661 0,0 0.441007,-0.20583 0.441007,-0.20583 0,0 0.440019,-0.20503 0.440019,-0.20503 0,0 0.438986,-0.2042 0.438986,-0.2042 0,0 0.437906,-0.20335 0.437906,-0.20335 0,0 0.43678,-0.20248 0.43678,-0.20248 0,0 0.435606,-0.20158 0.435606,-0.20158 0,0 0.434387,-0.20067 0.434387,-0.20067 0,0 0.433121,-0.19973 0.433121,-0.19973 0,0 0.431808,-0.19877 0.431808,-0.19877 0,0 0.43045,-0.19778 0.43045,-0.19778 0,0 0.429044,-0.19678 0.429044,-0.19678 0,0 0.427593,-0.19575 0.427593,-0.19575 0,0 0.426094,-0.1947 0.426094,-0.1947 0,0 0.424549,-0.19363 0.424549,-0.19363 0,0 0.422959,-0.19252 0.422959,-0.19252 0,0 0.42132,-0.19141 0.42132,-0.19141 0,0 0.419637,-0.19027 0.419637,-0.19027 0,0 0.417906,-0.18911 0.417906,-0.18911 0,0 0.416129,-0.18791 0.416129,-0.18791 0,0 0.414305,-0.18671 0.414305,-0.18671 0,0 0.412436,-0.18548 0.412436,-0.18548 0,0 0.410518,-0.18423 0.410518,-0.18423 0,0 0.408557,-0.18294 0.408557,-0.18294 0,0 0.406546,-0.18165 0.406546,-0.18165 0,0 0.404491,-0.18033 0.404491,-0.18033 0,0 0.402389,-0.17899 0.402389,-0.17899 0,0 0.400239,-0.17762 0.400239,-0.17762 0,0 0.398045,-0.17622 0.398045,-0.17622 0,0 0.395803,-0.17482 0.395803,-0.17482 0,0 0.393514,-0.17339 0.393514,-0.17339 0,0 0.39118,-0.17193 0.39118,-0.17193 0,0 0.388799,-0.17045 0.388799,-0.17045 0,0 0.386372,-0.16894 0.386372,-0.16894 0,0 0.383897,-0.16743 0.383897,-0.16743 0,0 0.381377,-0.16588 0.381377,-0.16588 0,0 0.37881,-0.16431 0.37881,-0.16431 0,0 0.376196,-0.16271 0.376196,-0.16271 0,0 0.373537,-0.16111 0.373537,-0.16111 0,0 0.37083,-0.15947 0.37083,-0.15947 0,0 0.368078,-0.15781 0.368078,-0.15781 0,0 0.365278,-0.15613 0.365278,-0.15613 0,0 0.362432,-0.15442 0.362432,-0.15442 0,0 0.359541,-0.1527 0.359541,-0.1527 0,0 0.356601,-0.15095 0.356601,-0.15095 0,0 0.353617,-0.14918 0.353617,-0.14918 0,0 0.350584,-0.14739 0.350584,-0.14739 0,0 0.347507,-0.14557 0.347507,-0.14557 0,0 0.344382,-0.14373 0.344382,-0.14373 0,0 0.341212,-0.14187 0.341212,-0.14187 0,0 0.337994,-0.13998 0.337994,-0.13998 0,0 0.334729,-0.13808 0.334729,-0.13808 0,0 0.33142,-0.13615 0.33142,-0.13615 0,0 0.328063,-0.13421 0.328063,-0.13421 0,0 0.324659,-0.13222 0.324659,-0.13222 0,0 0.321209,-0.13023 0.321209,-0.13023 0,0 0.317714,-0.12821 0.317714,-0.12821 0,0 0.31417,-0.12618 0.31417,-0.12618 0,0 0.310582,-0.1241 0.310582,-0.1241 0,0 0.306946,-0.12202 0.306946,-0.12202 0,0 0.303263,-0.11992 0.303263,-0.11992 0,0 0.299535,-0.11778 0.299535,-0.11778 0,0 0.29576,-0.11563 0.29576,-0.11563 0,0 0.291939,-0.11345 0.291939,-0.11345 0,0 0.288071,-0.11125 0.288071,-0.11125 0,0 0.284156,-0.10904 0.284156,-0.10904 0,0 0.280195,-0.10678 0.280195,-0.10678 0,0 0.276188,-0.10453 0.276188,-0.10453 0,0 0.272134,-0.10223 0.272134,-0.10223 0,0 0.268034,-0.0999 0.268034,-0.0999 0,0 0.263887,-0.0976 0.263887,-0.0976 0,0 0.259694,-0.0952 0.259694,-0.0952 0,0 0.255454,-0.0928 0.255454,-0.0928 0,0 0.251168,-0.0905 0.251168,-0.0905 0,0 0.246836,-0.088 0.246836,-0.088 0,0 0.242456,-0.0856 0.242456,-0.0856 0,0 0.238031,-0.0831 0.238031,-0.0831 0,0 0.233559,-0.0806 0.233559,-0.0806 0,0 0.22904,-0.0781 0.22904,-0.0781 0,0 0.224476,-0.0756 0.224476,-0.0756 0,0 0.219864,-0.073 0.219864,-0.073 0,0 0.215206,-0.0704 0.215206,-0.0704 0,0 0.210502,-0.0678 0.210502,-0.0678 0,0 0.205751,-0.0652 0.205751,-0.0652 0,0 0.200954,-0.0626 0.200954,-0.0626 0,0 0.19611,-0.0599 0.19611,-0.0599 0,0 0.19122,-0.0572 0.19122,-0.0572 0,0 0.186283,-0.0545 0.186283,-0.0545 0,0 0.1813,-0.0517 0.1813,-0.0517 0,0 0.176271,-0.049 0.176271,-0.049 0,0 0.171194,-0.0462 0.171194,-0.0462 0,0 0.166072,-0.0434 0.166072,-0.0434 0,0 0.160903,-0.0406 0.160903,-0.0406 0,0 0.155688,-0.0377 0.155688,-0.0377 0,0 0.150425,-0.0348 0.150425,-0.0348 0,0 0.145118,-0.0319 0.145118,-0.0319 0,0 0.139762,-0.029 0.139762,-0.029 0,0 0.134361,-0.0261 0.134361,-0.0261 0,0 0.128914,-0.0231 0.128914,-0.0231 0,0 0.123419,-0.0201 0.123419,-0.0201 0,0 0.117879,-0.0171 0.117879,-0.0171 0,0 0.112291,-0.0141 0.112291,-0.0141 0,0 0.106658,-0.011 0.106658,-0.011 0,0 0.100977,-0.008 0.100977,-0.008 0,0 0.09525,-0.005 0.09525,-0.005 0,0 0.08948,-0.002 0.08948,-0.002 0,0 0.0895,0.001 0.0895,0.001 0,0 0.09531,0.004 0.09531,0.004 0,0 0.101076,0.008 0.101076,0.008 0,0 0.106795,0.0106 0.106795,0.0106 0,0 0.112468,0.0137 0.112468,0.0137 0,0 0.118093,0.0167 0.118093,0.0167 0,0 0.123671,0.0197 0.123671,0.0197 0,0 0.129204,0.0226 0.129204,0.0226 0,0 0.134688,0.0256 0.134688,0.0256 0,0 0.140128,0.0285 0.140128,0.0285 0,0 0.145518,0.0314 0.145518,0.0314 0,0 0.150864,0.0343 0.150864,0.0343 0,0 0.156161,0.0372 0.156161,0.0372 0,0 0.161413,0.04 0.161413,0.04 0,0 0.166618,0.0428 0.166618,0.0428 0,0 0.171775,0.0456 0.171775,0.0456 0,0 0.176886,0.0483 0.176886,0.0483 0,0 0.181951,0.0511 0.181951,0.0511 0,0 0.186968,0.0538 0.186968,0.0538 0,0 0.191938,0.0565 0.191938,0.0565 0,0 0.196863,0.0592 0.196863,0.0592 0,0 0.20174,0.0619 0.20174,0.0619 0,0 0.20657,0.0645 0.20657,0.0645 0,0 0.211354,0.0671 0.211354,0.0671 0,0 0.216091,0.0697 0.216091,0.0697 0,0 0.220781,0.0723 0.220781,0.0723 0,0 0.225424,0.0748 0.225424,0.0748 0,0 0.230021,0.0773 0.230021,0.0773 0,0 0.234571,0.0798 0.234571,0.0798 0,0 0.239074,0.0823 0.239074,0.0823 0,0 0.24353,0.0848 0.24353,0.0848 0,0 0.247939,0.0872 0.247939,0.0872 0,0 0.252303,0.0896 0.252303,0.0896 0,0 0.256618,0.092 0.256618,0.092 0,0 0.260888,0.0944 0.260888,0.0944 0,0 0.26511,0.0967 0.26511,0.0967 0,0 0.269285,0.099 0.269285,0.099 0,0 0.273415,0.10133 0.273415,0.10133 0,0 0.277497,0.1036 0.277497,0.1036 0,0 0.281532,0.10585 0.281532,0.10585 0,0 0.285521,0.10809 0.285521,0.10809 0,0 0.289462,0.1103 0.289462,0.1103 0,0 0.293358,0.11248 0.293358,0.11248 0,0 0.297206,0.11465 0.297206,0.11465 0,0 0.301008,0.11679 0.301008,0.11679 0,0 0.304762,0.11891 0.304762,0.11891 0,0 0.30847,0.12101 0.30847,0.12101 0,0 0.312132,0.12308 0.312132,0.12308 0,0 0.315746,0.12514 0.315746,0.12514 0,0 0.319314,0.12717 0.319314,0.12717 0,0 0.322835,0.12917 0.322835,0.12917 0,0 0.326309,0.13116 0.326309,0.13116 0,0 0.329736,0.13313 0.329736,0.13313 0,0 0.333117,0.13506 0.333117,0.13506 0,0 0.336451,0.13699 0.336451,0.13699 0,0 0.339739,0.13888 0.339739,0.13888 0,0 0.342978,0.14075 0.342978,0.14075 0,0 0.346172,0.14261 0.346172,0.14261 0,0 0.349319,0.14444 0.349319,0.14444 0,0 0.352419,0.14624 0.352419,0.14624 0,0 0.355472,0.14803 0.355472,0.14803 0,0 0.358479,0.14979 0.358479,0.14979 0,0 0.361438,0.15153 0.361438,0.15153 0,0 0.364352,0.15325 0.364352,0.15325 0,0 0.367218,0.15494 0.367218,0.15494 0,0 0.370037,0.15662 0.370037,0.15662 0,0 0.37281,0.15826 0.37281,0.15826 0,0 0.375535,0.1599 0.375535,0.1599 0,0 0.378215,0.1615 0.378215,0.1615 0,0 0.380848,0.16308 0.380848,0.16308 0,0 0.383433,0.16465 0.383433,0.16465 0,0 0.385971,0.16618 0.385971,0.16618 0,0 0.388464,0.1677 0.388464,0.1677 0,0 0.39091,0.1692 0.39091,0.1692 0,0 0.393307,0.17067 0.393307,0.17067 0,0 0.39566,0.17211 0.39566,0.17211 0,0 0.397964,0.17354 0.397964,0.17354 0,0 0.400223,0.17495 0.400223,0.17495 0,0 0.402435,0.17633 0.402435,0.17633 0,0 0.404599,0.17769 0.404599,0.17769 0,0 0.406717,0.17903 0.406717,0.17903 0,0 0.408788,0.18034 0.408788,0.18034 0,0 0.410813,0.18164 0.410813,0.18164 0,0 0.41279,0.18291 0.41279,0.18291 0,0 0.414721,0.18415 0.414721,0.18415 0,0 0.416605,0.18538 0.416605,0.18538 0,0 0.418443,0.18659 0.418443,0.18659 0,0 0.420233,0.18776 0.420233,0.18776 0,0 0.421977,0.18893 0.421977,0.18893 0,0 0.423674,0.19006 0.423674,0.19006 0,0 0.425325,0.19117 0.425325,0.19117 0,0 0.426928,0.19227 0.426928,0.19227 0,0 0.428485,0.19333 0.428485,0.19333 0,0 0.429994,0.19439 0.429994,0.19439 0,0 0.431458,0.1954 0.431458,0.1954 0,0 0.432875,0.19641 0.432875,0.19641 0,0 0.434244,0.19739 0.434244,0.19739 0,0 0.435567,0.19835 0.435567,0.19835 0,0 0.436843,0.19928 0.436843,0.19928 0,0 0.438072,0.2002 0.438072,0.2002 0,0 0.439256,0.20109 0.439256,0.20109 0,0 0.440391,0.20195 0.440391,0.20195 0,0 0.44148,0.2028 0.44148,0.2028 0,0 0.442522,0.20363 0.442522,0.20363 0,0 0.443518,0.20442 0.443518,0.20442 0,0 0.444467,0.2052 0.444467,0.2052 0,0 0.445369,0.20596 0.445369,0.20596 0,0 0.446224,0.2067 0.446224,0.2067 0,0 0.447032,0.20741 0.447032,0.20741 0,0 0.447795,0.20809 0.447795,0.20809 0,0 0.448509,0.20876 0.448509,0.20876 0,0 0.449178,0.20941 0.449178,0.20941 0,0 0.449798,0.21003 0.449798,0.21003 0,0 0.450374,0.21063 0.450374,0.21063 0,0 0.450901,0.21121 0.450901,0.21121 0,0 0.451383,0.21176 0.451383,0.21176 0,0 0.451817,0.2123 0.451817,0.2123 0,0 0.452204,0.2128 0.452204,0.2128 0,0 0.452546,0.2133 0.452546,0.2133 0,0 0.452839,0.21376 0.452839,0.21376 0,0 0.453087,0.2142 0.453087,0.2142 0,0 0.453287,0.21463 0.453287,0.21463 0,0 0.453441,0.21502 0.453441,0.21502 0,0 0.453548,0.2154 0.453548,0.2154 0,0 0.453608,0.21575 0.453608,0.21575 0,0 0.453622,0.21609 0.453622,0.21609 0,0 0.453588,0.2164 0.453588,0.2164 0,0 0.453508,0.21668 0.453508,0.21668 0,0 0.453382,0.21695 0.453382,0.21695 0,0 0.453208,0.21719 0.453208,0.21719 0,0 0.452987,0.2174 0.452987,0.2174 0,0 0.45272,0.217612 0.45272,0.217612 0,0 0.452407,0.217783 0.452407,0.217783 0,0 0.452046,0.217935 0.452046,0.217935 0,0 0.451638,0.218066 0.451638,0.218066 0,0 0.451184,0.218174 0.451184,0.218174 0,0 0.450683,0.21826 0.450683,0.21826 0,0 0.450135,0.218324 0.450135,0.218324 0,0 0.449541,0.218365 0.449541,0.218365 0,0 0.4489,0.218383 0.4489,0.218383 0,0 0.448211,0.21838 0.448211,0.21838 0,0 0.447477,0.218354 0.447477,0.218354 0,0 0.446695,0.218306 0.446695,0.218306 0,0 0.445867,0.218236 0.445867,0.218236 0,0 0.444992,0.218142 0.444992,0.218142 0,0 0.44407,0.218027 0.44407,0.218027 0,0 0.443101,0.217889 0.443101,0.217889 0,0 0.442086,0.21773 0.442086,0.21773 0,0 0.441024,0.217547 0.441024,0.217547 0,0 0.439914,0.217342 0.439914,0.217342 0,0 0.438759,0.217115 0.438759,0.217115 0,0 0.437557,0.216866 0.437557,0.216866 0,0 0.436307,0.216594 0.436307,0.216594 0,0 0.435011,0.2163 0.435011,0.2163 0,0 0.433669,0.215983 0.433669,0.215983 0,0 0.4322789,0.215645 0.4322789,0.215645 0,0 0.4308426,0.215283 0.4308426,0.215283 0,0 0.4293596,0.2149 0.4293596,0.2149 0,0 0.4278298,0.214494 0.4278298,0.214494 0,0 0.4262531,0.214066 0.4262531,0.214066 0,0 0.4246298,0.213615 0.4246298,0.213615 0,0 0.4229597,0.213142 0.4229597,0.213142 0,0 0.4212427,0.212647 0.4212427,0.212647 0,0 0.4194791,0.212129 0.4194791,0.212129 0,0 0.4176686,0.211589 0.4176686,0.211589 0,0 0.4158114,0.211027 0.4158114,0.211027 0,0 0.4139075,0.210442 0.4139075,0.210442 0,0 0.4119567,0.209835 0.4119567,0.209835 0,0 0.4099592,0.209206 0.4099592,0.209206 0,0 0.407915,0.208554 0.407915,0.208554 0,0 0.4058239,0.20788 0.4058239,0.20788 0,0 0.4036861,0.207183 0.4036861,0.207183 0,0 0.4015015,0.206464 0.4015015,0.206464 0,0 0.3992702,0.205723 0.3992702,0.205723 0,0 0.3969921,0.20496 0.3969921,0.20496 0,0 0.3946672,0.204174 0.3946672,0.204174 0,0 0.3922956,0.203365 0.3922956,0.203365 0,0 0.38987717,0.202535 0.38987717,0.202535 0,0 0.38741201,0.201682 0.38741201,0.201682 0,0 0.38490007,0.200807 0.38490007,0.200807 0,0 0.38234137,0.199909 0.38234137,0.199909 0,0 0.37973589,0.198989 0.37973589,0.198989 0,0 0.37708369,0.198047 0.37708369,0.198047 0,0 0.3743846,0.197082 0.3743846,0.197082 0,0 0.3716389,0.196095 0.3716389,0.196095 0,0 0.3688464,0.195085 0.3688464,0.195085 0,0 0.366007,0.194054 0.366007,0.194054 0,0 0.363121,0.192999 0.363121,0.192999 0,0 0.3601881,0.191923 0.3601881,0.191923 0,0 0.3572085,0.190825 0.3572085,0.190825 0,0 0.3541822,0.189703 0.3541822,0.189703 0,0 0.351109,0.188559 0.351109,0.188559 0,0 0.3479892,0.187394 0.3479892,0.187394 0,0 0.3448224,0.186205 0.3448224,0.186205 0,0 0.341609,0.184995 0.341609,0.184995 0,0 0.3383489,0.183762 0.3383489,0.183762 0,0 0.3350418,0.182506 0.3350418,0.182506 0,0 0.3316881,0.181229 0.3316881,0.181229 0,0 0.3282876,0.179929 0.3282876,0.179929 0,0 0.3248404,0.178607 0.3248404,0.178607 0,0 0.3213463,0.177261 0.3213463,0.177261 0,0 0.3178055,0.175895 0.3178055,0.175895 0,0 0.3142179,0.174505 0.3142179,0.174505 0,0 0.3105836,0.173094 0.3105836,0.173094 0,0 0.3069025,0.171659 0.3069025,0.171659 0,0 0.3031746,0.170203 0.3031746,0.170203 0,0 0.2994,0.168724 0.2994,0.168724 0,0 0.2955786,0.167223 0.2955786,0.167223 0,0 0.2917104,0.1657 0.2917104,0.1657 0,0 0.287795,0.164153 0.287795,0.164153 0,0 0.283834,0.162585 0.283834,0.162585 0,0 0.279826,0.160995 0.279826,0.160995 0,0 0.27577,0.159382 0.27577,0.159382 0,0 0.271668,0.157746 0.271668,0.157746 0,0 0.267519,0.156089 0.267519,0.156089 0,0 0.263324,0.154408 0.263324,0.154408 0,0 0.259081,0.152707 0.259081,0.152707 0,0 0.254793,0.150981 0.254793,0.150981 0,0 0.250456,0.149235 0.250456,0.149235 0,0 0.246074,0.147465 0.246074,0.147465 0,0 0.241645,0.145673 0.241645,0.145673 0,0 0.237168,0.14386 0.237168,0.14386 0,0 0.232646,0.142022 0.232646,0.142022 0,0 0.228076,0.140164 0.228076,0.140164 0,0 0.223459,0.138283 0.223459,0.138283 0,0 0.218796,0.136379 0.218796,0.136379 0,0 0.214087,0.134454 0.214087,0.134454 0,0 0.209329,0.132505 0.209329,0.132505 0,0 0.204526,0.130534 0.204526,0.130534 0,0 0.199676,0.128542 0.199676,0.128542 0,0 0.194779,0.126526 0.194779,0.126526 0,0 0.189835,0.124489 0.189835,0.124489 0,0 0.184844,0.122428 0.184844,0.122428 0,0 0.179807,0.120346 0.179807,0.120346 0,0 0.174723,0.118242 0.174723,0.118242 0,0 0.169592,0.116114 0.169592,0.116114 0,0 0.164415,0.113965 0.164415,0.113965 0,0 0.15919,0.111794 0.15919,0.111794 0,0 0.153919,0.109599 0.153919,0.109599 0,0 0.148601,0.107382 0.148601,0.107382 0,0 0.143236,0.105144 0.143236,0.105144 0,0 0.137825,0.102883 0.137825,0.102883 0,0 0.132366,0.100599 0.132366,0.100599 0,0 0.126862,0.09829 0.126862,0.09829 0,0 0.12131,0.09597 0.12131,0.09597 0,0 0.115711,0.09361 0.115711,0.09361 0,0 0.110066,0.09124 0.110066,0.09124 0,0 0.104374,0.08885 0.104374,0.08885 0,0 0.09864,0.08643 0.09864,0.08643 0,0 0.09285,0.08399 0.09285,0.08399 0,0 0.08702,0.08153 0.08702,0.08153 0,0 0.08114,0.07904 0.08114,0.07904 0,0 0.07521,0.07653 0.07521,0.07653 0,0 0.06924,0.074 0.06924,0.074 0,0 0.06322,0.07145 0.06322,0.07145 0,0 0.05715,0.06888 0.05715,0.06888 0,0 0.0547,0.07084 0.0547,0.07084 0,0 0.05589,0.0773 0.05589,0.0773 0,0 0.05707,0.08372 0.05707,0.08372 0,0 0.05823,0.09008 0.05823,0.09008 0,0 0.05938,0.0964 0.05938,0.0964 0,0 0.06052,0.102661 0.06052,0.102661 0,0 0.06165,0.108875 0.06165,0.108875 0,0 0.06277,0.115039 0.06277,0.115039 0,0 0.06387,0.121152 0.06387,0.121152 0,0 0.06497,0.127215 0.06497,0.127215 0,0 0.06605,0.133227 0.06605,0.133227 0,0 0.06712,0.13919 0.06712,0.13919 0,0 0.06818,0.145102 0.06818,0.145102 0,0 0.06923,0.150962 0.06923,0.150962 0,0 0.07027,0.156774 0.07027,0.156774 0,0 0.07129,0.162534 0.07129,0.162534 0,0 0.0723,0.168245 0.0723,0.168245 0,0 0.07331,0.173904 0.07331,0.173904 0,0 0.07429,0.179513 0.07429,0.179513 0,0 0.07527,0.185073 0.07527,0.185073 0,0 0.07624,0.190581 0.07624,0.190581 0,0 0.07719,0.196039 0.07719,0.196039 0,0 0.07814,0.201447 0.07814,0.201447 0,0 0.07907,0.206804 0.07907,0.206804 0,0 0.07999,0.212112 0.07999,0.212112 0,0 0.0809,0.217367 0.0809,0.217367 0,0 0.0818,0.222574 0.0818,0.222574 0,0 0.08268,0.22773 0.08268,0.22773 0,0 0.08356,0.232835 0.08356,0.232835 0,0 0.08442,0.23789 0.08442,0.23789 0,0 0.08527,0.242895 0.08527,0.242895 0,0 0.08611,0.247849 0.08611,0.247849 0,0 0.08693,0.252752 0.08693,0.252752 0,0 0.08775,0.257606 0.08775,0.257606 0,0 0.08855,0.262409 0.08855,0.262409 0,0 0.08935,0.267162 0.08935,0.267162 0,0 0.09013,0.271864 0.09013,0.271864 0,0 0.0909,0.276515 0.0909,0.276515 0,0 0.09166,0.281117 0.09166,0.281117 0,0 0.0924,0.285668 0.0924,0.285668 0,0 0.09314,0.290168 0.09314,0.290168 0,0 0.09386,0.294619 0.09386,0.294619 0,0 0.09457,0.299018 0.09457,0.299018 0,0 0.09527,0.303368 0.09527,0.303368 0,0 0.09596,0.307667 0.09596,0.307667 0,0 0.09664,0.311916 0.09664,0.311916 0,0 0.0973,0.316113 0.0973,0.316113 0,0 0.09795,0.320262 0.09795,0.320262 0,0 0.0986,0.324359 0.0986,0.324359 0,0 0.09923,0.328406 0.09923,0.328406 0,0 0.09984,0.332402 0.09984,0.332402 0,0 0.100452,0.336349 0.100452,0.336349 0,0 0.101047,0.340245 0.101047,0.340245 0,0 0.101631,0.344089 0.101631,0.344089 0,0 0.102203,0.347885 0.102203,0.347885 0,0 0.102764,0.35163 0.102764,0.35163 0,0 0.103313,0.355324 0.103313,0.355324 0,0 0.10385,0.358968 0.10385,0.358968 0,0 0.104376,0.362561 0.104376,0.362561 0,0 0.10489,0.366104 0.10489,0.366104 0,0 0.105393,0.369597 0.105393,0.369597 0,0 0.105883,0.373039 0.105883,0.373039 0,0 0.106364,0.37643 0.106364,0.37643 0,0 0.106831,0.379773 0.106831,0.379773 0,0 0.107287,0.383063 0.107287,0.383063 0,0 0.107732,0.386304 0.107732,0.386304 0,0 0.108164,0.389494 0.108164,0.389494 0,0 0.108586,0.392634 0.108586,0.392634 0,0 0.108996,0.395723 0.108996,0.395723 0,0 0.109394,0.398763 0.109394,0.398763 0,0 0.109781,0.401751 0.109781,0.401751 0,0 0.110156,0.40469 0.110156,0.40469 0,0 0.110519,0.407577 0.110519,0.407577 0,0 0.110871,0.410415 0.110871,0.410415 0,0 0.111211,0.413201 0.111211,0.413201 0,0 0.111539,0.415939 0.111539,0.415939 0,0 0.111857,0.418625 0.111857,0.418625 0,0 0.112162,0.42126 0.112162,0.42126 0,0 0.112456,0.423846 0.112456,0.423846 0,0 0.112738,0.426381 0.112738,0.426381 0,0 0.113008,0.428866 0.113008,0.428866 0,0 0.113268,0.4313 0.113268,0.4313 0,0 0.113514,0.433684 0.113514,0.433684 0,0 0.113751,0.436018 0.113751,0.436018 0,0 0.113975,0.4383 0.113975,0.4383 0,0 0.114187,0.440533 0.114187,0.440533 0,0 0.114389,0.442716 0.114389,0.442716 0,0 0.114577,0.444847 0.114577,0.444847 0,0 0.114756,0.446929 0.114756,0.446929 0,0 0.114921,0.44896 0.114921,0.44896 0,0 0.115076,0.45094 0.115076,0.45094 0,0 0.11522,0.452871 0.11522,0.452871 0,0 0.11535,0.454751 0.11535,0.454751 0,0 0.11547,0.45658 0.11547,0.45658 0,0 0.115579,0.45836 0.115579,0.45836 0,0 0.115675,0.460088 0.115675,0.460088 0,0 0.11576,0.461766 0.11576,0.461766 0,0 0.115833,0.463395 0.115833,0.463395 0,0 0.115895,0.464971 0.115895,0.464971 0,0 0.115945,0.466499 0.115945,0.466499 0,0 0.115984,0.467976 0.115984,0.467976 0,0 0.116011,0.469402 0.116011,0.469402 0,0 0.116026,0.470778 0.116026,0.470778 0,0 0.116029,0.472103 0.116029,0.472103 0,0 0.116022,0.473379 0.116022,0.473379 0,0 0.116003,0.474603 0.116003,0.474603 0,0 0.115971,0.475777 0.115971,0.475777 0,0 0.115929,0.476902 0.115929,0.476902 0,0 0.115874,0.477975 0.115874,0.477975 0,0 0.115809,0.478998 0.115809,0.478998 0,0 0.115731,0.479971 0.115731,0.479971 0,0 0.115642,0.480893 0.115642,0.480893 0,0 0.115542,0.481765 0.115542,0.481765 0,0 0.115429,0.482587 0.115429,0.482587 0,0 0.115305,0.483357 0.115305,0.483357 0,0 0.11517,0.484079 0.11517,0.484079 0,0 0.115023,0.484749 0.115023,0.484749 0,0 0.114864,0.485369 0.114864,0.485369 0,0 0.114694,0.485938 0.114694,0.485938 0,0 0.114512,0.486457 0.114512,0.486457 0,0 0.114318,0.486927 0.114318,0.486927 0,0 0.114113,0.487344 0.114113,0.487344 0,0 0.113897,0.487713 0.113897,0.487713 0,0 0.113669,0.48803 0.113669,0.48803 0,0 0.113428,0.488297 0.113428,0.488297 0,0 0.113177,0.488514 0.113177,0.488514 0,0 0.112914,0.48868 0.112914,0.48868 0,0 0.112639,0.488797 0.112639,0.488797 0,0 0.112353,0.488862 0.112353,0.488862 0,0 0.112056,0.488877 0.112056,0.488877 0,0 0.111745,0.488842 0.111745,0.488842 0,0 0.111425,0.488756 0.111425,0.488756 0,0 0.111092,0.48862 0.111092,0.48862 0,0 0.110747,0.488434 0.110747,0.488434 0,0 0.110392,0.488197 0.110392,0.488197 0,0 0.110024,0.487909 0.110024,0.487909 0,0 0.109645,0.487573 0.109645,0.487573 0,0 0.109254,0.487184 0.109254,0.487184 0,0 0.108852,0.486745 0.108852,0.486745 0,0 0.108439,0.486257 0.108439,0.486257 0,0 0.108012,0.485718 0.108012,0.485718 0,0 0.107576,0.485128 0.107576,0.485128 0,0 0.107127,0.484488 0.107127,0.484488 0,0 0.106666,0.483797 0.106666,0.483797 0,0 0.106195,0.483057 0.106195,0.483057 0,0 0.105711,0.482266 0.105711,0.482266 0,0 0.105216,0.481424 0.105216,0.481424 0,0 0.104709,0.480532 0.104709,0.480532 0,0 0.104191,0.479589 0.104191,0.479589 0,0 0.103661,0.478597 0.103661,0.478597 0,0 0.10312,0.477554 0.10312,0.477554 0,0 0.102566,0.47646 0.102566,0.47646 0,0 0.102002,0.475316 0.102002,0.475316 0,0 0.101426,0.474122 0.101426,0.474122 0,0 0.100837,0.472877 0.100837,0.472877 0,0 0.100238,0.471581 0.100238,0.471581 0,0 0.09963,0.470236 0.09963,0.470236 0,0 0.099,0.468841 0.099,0.468841 0,0 0.09837,0.467393 0.09837,0.467393 0,0 0.09772,0.465897 0.09772,0.465897 0,0 0.09707,0.46435 0.09707,0.46435 0,0 0.0964,0.462752 0.0964,0.462752 0,0 0.09572,0.461105 0.09572,0.461105 0,0 0.09502,0.459406 0.09502,0.459406 0,0 0.09432,0.457657 0.09432,0.457657 0,0 0.0936,0.455858 0.0936,0.455858 0,0 0.09288,0.454008 0.09288,0.454008 0,0 0.09214,0.452109 0.09214,0.452109 0,0 0.09139,0.450158 0.09139,0.450158 0,0 0.09063,0.448157 0.09063,0.448157 0,0 0.08985,0.446106 0.08985,0.446106 0,0 0.08907,0.444005 0.08907,0.444005 0,0 0.08827,0.441853 0.08827,0.441853 0,0 0.08746,0.43965 0.08746,0.43965 0,0 0.08664,0.437398 0.08664,0.437398 0,0 0.08581,0.435094 0.08581,0.435094 0,0 0.08497,0.432741 0.08497,0.432741 0,0 0.08411,0.430337 0.08411,0.430337 0,0 0.08325,0.427883 0.08325,0.427883 0,0 0.08237,0.4253776 0.08237,0.4253776 0,0 0.08148,0.4228227 0.08148,0.4228227 0,0 0.08058,0.4202173 0.08058,0.4202173 0,0 0.07967,0.4175613 0.07967,0.4175613 0,0 0.07874,0.414855 0.07874,0.414855 0,0 0.0778,0.4120983 0.0778,0.4120983 0,0 0.07686,0.4092912 0.07686,0.4092912 0,0 0.0759,0.4064336 0.0759,0.4064336 0,0 0.07493,0.4035257 0.07493,0.4035257 0,0 0.07395,0.4005674 0.07395,0.4005674 0,0 0.07295,0.3975587 0.07295,0.3975587 0,0 0.07195,0.3944995 0.07195,0.3944995 0,0 0.07093,0.3913901 0.07093,0.3913901 0,0 0.0699,0.3882301 0.0699,0.3882301 0,0 0.06886,0.3850199 0.06886,0.3850199 0,0 0.06781,0.3817591 0.06781,0.3817591 0,0 0.06674,0.378448 0.06674,0.378448 0,0 0.06567,0.3750865 0.06567,0.3750865 0,0 0.06458,0.3716747 0.06458,0.3716747 0,0 0.06348,0.3682123 0.06348,0.3682123 0,0 0.06237,0.3646996 0.06237,0.3646996 0,0 0.06125,0.3611366 0.06125,0.3611366 0,0 0.06012,0.357523 0.06012,0.357523 0,0 0.05897,0.35385916 0.05897,0.35385916 0,0 0.05782,0.35014487 0.05782,0.35014487 0,0 0.05665,0.34638018 0.05665,0.34638018 0,0 0.05547,0.3425651 0.05547,0.3425651 0,0 0.05428,0.33869962 0.05428,0.33869962 0,0 0.05308,0.33478373 0.05308,0.33478373 0,0 0.05186,0.33081744 0.05186,0.33081744 0,0 0.05064,0.3268008 0.05064,0.3268008 0,0 0.0494,0.3227337 0.0494,0.3227337 0,0 0.04815,0.3186162 0.04815,0.3186162 0,0 0.04689,0.3144484 0.04689,0.3144484 0,0 0.04562,0.3102301 0.04562,0.3102301 0,0 0.04433,0.3059614 0.04433,0.3059614 0,0 0.04304,0.3016424 0.04304,0.3016424 0,0 0.04173,0.2972729 0.04173,0.2972729 0,0 0.04041,0.292853 0.04041,0.292853 0,0 0.03908,0.2883828 0.03908,0.2883828 0,0 0.03774,0.2838622 0.03774,0.2838622 0,0 0.03638,0.279291 0.03638,0.279291 0,0 0.03502,0.2746697 0.03502,0.2746697 0,0 0.03364,0.2699977 0.03364,0.2699977 0,0 0.03225,0.2652755 0.03225,0.2652755 0,0 0.03085,0.2605029 0.03085,0.2605029 0,0 0.02944,0.2556798 0.02944,0.2556798 0,0 0.02802,0.2508064 0.02802,0.2508064 0,0 0.02658,0.2458826 0.02658,0.2458826 0,0 0.02514,0.2409083 0.02514,0.2409083 0,0 0.02368,0.2358837 0.02368,0.2358837 0,0 0.02221,0.2308086 0.02221,0.2308086 0,0 0.02073,0.2256832 0.02073,0.2256832 0,0 0.01924,0.2205074 0.01924,0.2205074 0,0 0.01773,0.2152811 0.01773,0.2152811 0,0 0.01622,0.2100045 0.01622,0.2100045 0,0 0.01469,0.2046775 0.01469,0.2046775 0,0 0.01315,0.1993001 0.01315,0.1993001 0,0 0.0116,0.1938722 0.0116,0.1938722 0,0 0.01004,0.188394 0.01004,0.188394 0,0 0.0085,0.1828655 0.0085,0.1828655 0,0 0.0069,0.1772863 0.0069,0.1772863 0,0 0.0053,0.171657 0.0053,0.171657 0,0 0.0037,0.1659772 0.0037,0.1659772 0,0 0.002,0.160247 0.002,0.160247 0,0 4.17e-4,0.1544663 4.17e-4,0.1544663 0,0 -0.0012,0.1486353 -0.0012,0.1486353 0,0 -0.0029,0.142754 -0.0029,0.142754 0,0 -0.0045,0.136822 -0.0045,0.136822 0,0 -0.0062,0.13084 -0.0062,0.13084 0,0 -0.0079,0.124807 -0.0079,0.124807 0,0 -0.0096,0.118725 -0.0096,0.118725 0,0 -0.01133,0.112591 -0.01133,0.112591 0,0 -0.01306,0.106407 -0.01306,0.106407 0,0 -0.01479,0.100173 -0.01479,0.100173 0,0 -0.01654,0.09389 -0.01654,0.09389 0,0 -0.0183,0.08755 -0.0183,0.08755 0,0 -0.02136,0.08687 -0.02136,0.08687 0,0 -0.0257,0.09185 -0.0257,0.09185 0,0 -0.03,0.09678 -0.03,0.09678 0,0 -0.03427,0.101675 -0.03427,0.101675 0,0 -0.0385,0.106529 -0.0385,0.106529 0,0 -0.04271,0.111342 -0.04271,0.111342 0,0 -0.04688,0.116115 -0.04688,0.116115 0,0 -0.05102,0.120846 -0.05102,0.120846 0,0 -0.05513,0.125537 -0.05513,0.125537 0,0 -0.0592,0.130189 -0.0592,0.130189 0,0 -0.06324,0.134798 -0.06324,0.134798 0,0 -0.06725,0.139367 -0.06725,0.139367 0,0 -0.07123,0.143897 -0.07123,0.143897 0,0 -0.07518,0.148384 -0.07518,0.148384 0,0 -0.07909,0.152832 -0.07909,0.152832 0,0 -0.08297,0.157239 -0.08297,0.157239 0,0 -0.08682,0.161605 -0.08682,0.161605 0,0 -0.09064,0.165931 -0.09064,0.165931 0,0 -0.09442,0.170216 -0.09442,0.170216 0,0 -0.09818,0.174461 -0.09818,0.174461 0,0 -0.101894,0.178664 -0.101894,0.178664 0,0 -0.105581,0.182827 -0.105581,0.182827 0,0 -0.109236,0.18695 -0.109236,0.18695 0,0 -0.112859,0.191032 -0.112859,0.191032 0,0 -0.11645,0.195074 -0.11645,0.195074 0,0 -0.120007,0.199074 -0.120007,0.199074 0,0 -0.123533,0.203034 -0.123533,0.203034 0,0 -0.127027,0.206954 -0.127027,0.206954 0,0 -0.130488,0.210833 -0.130488,0.210833 0,0 -0.133916,0.214671 -0.133916,0.214671 0,0 -0.137313,0.218468 -0.137313,0.218468 0,0 -0.140677,0.222226 -0.140677,0.222226 0,0 -0.144009,0.225942 -0.144009,0.225942 0,0 -0.147308,0.229618 -0.147308,0.229618 0,0 -0.150576,0.233253 -0.150576,0.233253 0,0 -0.153811,0.236847 -0.153811,0.236847 0,0 -0.157013,0.240402 -0.157013,0.240402 0,0 -0.160183,0.243915 -0.160183,0.243915 0,0 -0.163321,0.247388 -0.163321,0.247388 0,0 -0.166427,0.250819 -0.166427,0.250819 0,0 -0.169501,0.254212 -0.169501,0.254212 0,0 -0.172541,0.257562 -0.172541,0.257562 0,0 -0.17555,0.260872 -0.17555,0.260872 0,0 -0.178526,0.264142 -0.178526,0.264142 0,0 -0.181471,0.267371 -0.181471,0.267371 0,0 -0.184382,0.27056 -0.184382,0.27056 0,0 -0.187262,0.273707 -0.187262,0.273707 0,0 -0.190109,0.276814 -0.190109,0.276814 0,0 -0.192923,0.279881 -0.192923,0.279881 0,0 -0.195706,0.282907 -0.195706,0.282907 0,0 -0.198456,0.285892 -0.198456,0.285892 0,0 -0.201174,0.288837 -0.201174,0.288837 0,0 -0.20386,0.291741 -0.20386,0.291741 0,0 -0.206513,0.294604 -0.206513,0.294604 0,0 -0.209134,0.297428 -0.209134,0.297428 0,0 -0.211722,0.300209 -0.211722,0.300209 0,0 -0.214279,0.302951 -0.214279,0.302951 0,0 -0.216802,0.305652 -0.216802,0.305652 0,0 -0.219295,0.308313 -0.219295,0.308313 0,0 -0.221753,0.310932 -0.221753,0.310932 0,0 -0.224181,0.313512 -0.224181,0.313512 0,0 -0.226575,0.31605 -0.226575,0.31605 0,0 -0.228938,0.318547 -0.228938,0.318547 0,0 -0.231268,0.321006 -0.231268,0.321006 0,0 -0.233565,0.323421 -0.233565,0.323421 0,0 -0.235831,0.325798 -0.235831,0.325798 0,0 -0.238065,0.328134 -0.238065,0.328134 0,0 -0.240265,0.330428 -0.240265,0.330428 0,0 -0.242433,0.332682 -0.242433,0.332682 0,0 -0.24457,0.334896 -0.24457,0.334896 0,0 -0.246673,0.337069 -0.246673,0.337069 0,0 -0.248746,0.339202 -0.248746,0.339202 0,0 -0.250784,0.341293 -0.250784,0.341293 0,0 -0.252791,0.343344 -0.252791,0.343344 0,0 -0.254766,0.345354 -0.254766,0.345354 0,0 -0.256708,0.347325 -0.256708,0.347325 0,0 -0.258619,0.349254 -0.258619,0.349254 0,0 -0.260496,0.351142 -0.260496,0.351142 0,0 -0.262341,0.352991 -0.262341,0.352991 0,0 -0.264154,0.354798 -0.264154,0.354798 0,0 -0.265935,0.356565 -0.265935,0.356565 0,0 -0.267684,0.358291 -0.267684,0.358291 0,0 -0.269399,0.359976 -0.269399,0.359976 0,0 -0.271083,0.361622 -0.271083,0.361622 0,0 -0.272735,0.363226 -0.272735,0.363226 0,0 -0.274354,0.364789 -0.274354,0.364789 0,0 -0.275941,0.366313 -0.275941,0.366313 0,0 -0.277495,0.367795 -0.277495,0.367795 0,0 -0.279018,0.369237 -0.279018,0.369237 0,0 -0.280507,0.370638 -0.280507,0.370638 0,0 -0.281965,0.371999 -0.281965,0.371999 0,0 -0.28339,0.373319 -0.28339,0.373319 0,0 -0.284784,0.374598 -0.284784,0.374598 0,0 -0.286143,0.375837 -0.286143,0.375837 0,0 -0.287473,0.377036 -0.287473,0.377036 0,0 -0.288768,0.378193 -0.288768,0.378193 0,0 -0.290032,0.379309 -0.290032,0.379309 0,0 -0.291263,0.380386 -0.291263,0.380386 0,0 -0.292462,0.381422 -0.292462,0.381422 0,0 -0.293629,0.382417 -0.293629,0.382417 0,0 -0.294764,0.383371 -0.294764,0.383371 0,0 -0.295865,0.384285 -0.295865,0.384285 0,0 -0.296936,0.385159 -0.296936,0.385159 0,0 -0.297972,0.385991 -0.297972,0.385991 0,0 -0.298978,0.386783 -0.298978,0.386783 0,0 -0.299951,0.387534 -0.299951,0.387534 0,0 -0.300892,0.388245 -0.300892,0.388245 0,0 -0.301799,0.388916 -0.301799,0.388916 0,0 -0.302676,0.389545 -0.302676,0.389545 0,0 -0.303519,0.390133 -0.303519,0.390133 0,0 -0.304331,0.390682 -0.304331,0.390682 0,0 -0.305109,0.39119 -0.305109,0.39119 0,0 -0.305856,0.391657 -0.305856,0.391657 0,0 -0.30657,0.392083 -0.30657,0.392083 0,0 -0.307253,0.392469 -0.307253,0.392469 0,0 -0.307902,0.392814 -0.307902,0.392814 0,0 -0.30852,0.393119 -0.30852,0.393119 0,0 -0.309104,0.393383 -0.309104,0.393383 0,0 -0.309658,0.393606 -0.309658,0.393606 0,0 -0.310177,0.393789 -0.310177,0.393789 0,0 -0.310666,0.393931 -0.310666,0.393931 0,0 -0.311122,0.394033 -0.311122,0.394033 0,0 -0.311545,0.394093 -0.311545,0.394093 0,0 -0.311937,0.394114 -0.311937,0.394114 0,0 -0.312295,0.394093 -0.312295,0.394093 0,0 -0.312622,0.394033 -0.312622,0.394033 0,0 -0.312916,0.39393 -0.312916,0.39393 0,0 -0.313178,0.393789 -0.313178,0.393789 0,0 -0.313408,0.393606 -0.313408,0.393606 0,0 -0.313605,0.393382 -0.313605,0.393382 0,0 -0.31377,0.393119 -0.31377,0.393119 0,0 -0.313903,0.392813 -0.313903,0.392813 0,0 -0.314003,0.392469 -0.314003,0.392469 0,0 -0.314071,0.392082 -0.314071,0.392082 0,0 -0.3141063,0.391656 -0.3141063,0.391656 0,0 -0.3141102,0.391189 -0.3141102,0.391189 0,0 -0.3140812,0.390681 -0.3140812,0.390681 0,0 -0.3140201,0.390133 -0.3140201,0.390133 0,0 -0.3139265,0.389543 -0.3139265,0.389543 0,0 -0.3138007,0.388915 -0.3138007,0.388915 0,0 -0.3136425,0.388244 -0.3136425,0.388244 0,0 -0.313452,0.387533 -0.313452,0.387533 0,0 -0.3132292,0.386781 -0.3132292,0.386781 0,0 -0.3129741,0.38599 -0.3129741,0.38599 0,0 -0.3126867,0.385157 -0.3126867,0.385157 0,0 -0.312367,0.384283 -0.312367,0.384283 0,0 -0.3120149,0.38337 -0.3120149,0.38337 0,0 -0.3116305,0.382415 -0.3116305,0.382415 0,0 -0.3112139,0.38142 -0.3112139,0.38142 0,0 -0.3107648,0.380384 -0.3107648,0.380384 0,0 -0.3102836,0.379308 -0.3102836,0.379308 0,0 -0.3097699,0.378191 -0.3097699,0.378191 0,0 -0.3092239,0.377033 -0.3092239,0.377033 0,0 -0.3086458,0.375835 -0.3086458,0.375835 0,0 -0.3080351,0.374596 -0.3080351,0.374596 0,0 -0.3073923,0.373317 -0.3073923,0.373317 0,0 -0.306717,0.371996 -0.306717,0.371996 0,0 -0.3060096,0.370636 -0.3060096,0.370636 0,0 -0.3052697,0.369235 -0.3052697,0.369235 0,0 -0.3044975,0.367792 -0.3044975,0.367792 0,0 -0.3036931,0.36631 -0.3036931,0.36631 0,0 -0.3028563,0.364787 -0.3028563,0.364787 0,0 -0.3019873,0.363223 -0.3019873,0.363223 0,0 -0.3010858,0.361619 -0.3010858,0.361619 0,0 -0.30015211,0.359974 -0.30015211,0.359974 0,0 -0.29918607,0.358288 -0.29918607,0.358288 0,0 -0.29818772,0.356561 -0.29818772,0.356561 0,0 -0.29715706,0.354795 -0.29715706,0.354795 0,0 -0.29609407,0.352987 -0.29609407,0.352987 0,0 -0.29499878,0.35114 -0.29499878,0.35114 0,0 -0.29387119,0.34925 -0.29387119,0.34925 0,0 -0.2927112,0.347321 -0.2927112,0.347321 0,0 -0.291519,0.345351 -0.291519,0.345351 0,0 -0.2902945,0.343341 -0.2902945,0.343341 0,0 -0.2890376,0.341289 -0.2890376,0.341289 0,0 -0.2877484,0.339198 -0.2877484,0.339198 0,0 -0.2864269,0.337065 -0.2864269,0.337065 0,0 -0.2850731,0.334892 -0.2850731,0.334892 0,0 -0.2836869,0.332679 -0.2836869,0.332679 0,0 -0.2822685,0.330424 -0.2822685,0.330424 0,0 -0.2808178,0.328129 -0.2808178,0.328129 0,0 -0.2793347,0.325794 -0.2793347,0.325794 0,0 -0.2778193,0.323418 -0.2778193,0.323418 0,0 -0.2762715,0.321 -0.2762715,0.321 0,0 -0.2746916,0.318544 -0.2746916,0.318544 0,0 -0.2730793,0.316045 -0.2730793,0.316045 0,0 -0.2714346,0.313507 -0.2714346,0.313507 0,0 -0.2697576,0.310928 -0.2697576,0.310928 0,0 -0.2680483,0.308308 -0.2680483,0.308308 0,0 -0.2663068,0.305647 -0.2663068,0.305647 0,0 -0.2645329,0.302947 -0.2645329,0.302947 0,0 -0.2627266,0.300204 -0.2627266,0.300204 0,0 -0.2608881,0.297423 -0.2608881,0.297423 0,0 -0.2590172,0.294599 -0.2590172,0.294599 0,0 -0.2571141,0.291736 -0.2571141,0.291736 0,0 -0.2551786,0.288832 -0.2551786,0.288832 0,0 -0.2532108,0.285887 -0.2532108,0.285887 0,0 -0.2512107,0.282901 -0.2512107,0.282901 0,0 -0.2491782,0.279876 -0.2491782,0.279876 0,0 -0.2471136,0.276809 -0.2471136,0.276809 0,0 -0.2450164,0.273701 -0.2450164,0.273701 0,0 -0.2428871,0.270554 -0.2428871,0.270554 0,0 -0.2407254,0.267366 -0.2407254,0.267366 0,0 -0.2385312,0.264136 -0.2385312,0.264136 0,0 -0.236305,0.260866 -0.236305,0.260866 0,0 -0.234047,0.257557 -0.234047,0.257557 0,0 -0.231755,0.254205 -0.231755,0.254205 0,0 -0.229433,0.250814 -0.229433,0.250814 0,0 -0.227076,0.247381 -0.227076,0.247381 0,0 -0.224689,0.243909 -0.224689,0.243909 0,0 -0.222269,0.240395 -0.222269,0.240395 0,0 -0.219816,0.236842 -0.219816,0.236842 0,0 -0.217331,0.233247 -0.217331,0.233247 0,0 -0.214814,0.229611 -0.214814,0.229611 0,0 -0.212265,0.225935 -0.212265,0.225935 0,0 -0.209683,0.22222 -0.209683,0.22222 0,0 -0.207068,0.218461 -0.207068,0.218461 0,0 -0.204423,0.214665 -0.204423,0.214665 0,0 -0.201743,0.210826 -0.201743,0.210826 0,0 -0.199033,0.206946 -0.199033,0.206946 0,0 -0.196289,0.203028 -0.196289,0.203028 0,0 -0.193514,0.199067 -0.193514,0.199067 0,0 -0.190705,0.195066 -0.190705,0.195066 0,0 -0.187866,0.191025 -0.187866,0.191025 0,0 -0.184992,0.186943 -0.184992,0.186943 0,0 -0.182088,0.18282 -0.182088,0.18282 0,0 -0.17915,0.178657 -0.17915,0.178657 0,0 -0.176181,0.174453 -0.176181,0.174453 0,0 -0.173179,0.170208 -0.173179,0.170208 0,0 -0.170145,0.165924 -0.170145,0.165924 0,0 -0.167079,0.161597 -0.167079,0.161597 0,0 -0.163979,0.157231 -0.163979,0.157231 0,0 -0.160849,0.152825 -0.160849,0.152825 0,0 -0.157685,0.148376 -0.157685,0.148376 0,0 -0.154489,0.143889 -0.154489,0.143889 0,0 -0.151261,0.139359 -0.151261,0.139359 0,0 -0.148001,0.13479 -0.148001,0.13479 0,0 -0.144708,0.13018 -0.144708,0.13018 0,0 -0.141383,0.12553 -0.141383,0.12553 0,0 -0.138026,0.120838 -0.138026,0.120838 0,0 -0.134636,0.116106 -0.134636,0.116106 0,0 -0.131214,0.111333 -0.131214,0.111333 0,0 -0.12776,0.106521 -0.12776,0.106521 0,0 -0.124273,0.101666 -0.124273,0.101666 0,0 -0.120754,0.09677 -0.120754,0.09677 0,0 -0.117203,0.09184 -0.117203,0.09184 0,0 -0.11362,0.08686 -0.11362,0.08686 0,0 -0.110003,0.08185 -0.110003,0.08185 0,0 -0.106356,0.07679 -0.106356,0.07679 0,0 -0.102675,0.07169 -0.102675,0.07169 0,0 -0.09896,0.06655 -0.09896,0.06655 0,0 -0.09522,0.06137 -0.09522,0.06137 0,0 -0.09144,0.05616 -0.09144,0.05616 0,0 -0.08763,0.05089 -0.08763,0.05089 0,0 -0.08379,0.04559 -0.08379,0.04559 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.69013361,0,0,0.8224436,163.91455,102.92346)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1253"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1253" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1259"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1259" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1260"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1260" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1261"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1261" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1262"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1262" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1263"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1263" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1271"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1271" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(8.281756,0,0,-11.708906,2242.8433,1995.4378)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1272"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1272" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1273"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1273" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1274"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1274" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1275"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1275" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" - d="m -18.609103,83.636516 c 0,0 -0.08127,0.03743 -0.08127,0.03743 0,0 -0.08783,0.03715 -0.08783,0.03715 0,0 -0.09435,0.03686 -0.09435,0.03686 0,0 -0.100809,0.03658 -0.100809,0.03658 0,0 -0.107221,0.0363 -0.107221,0.0363 0,0 -0.113581,0.03602 -0.113581,0.03602 0,0 -0.119888,0.03574 -0.119888,0.03574 0,0 -0.126145,0.03545 -0.126145,0.03545 0,0 -0.132349,0.03517 -0.132349,0.03517 0,0 -0.138501,0.03489 -0.138501,0.03489 0,0 -0.144603,0.0346 -0.144603,0.0346 0,0 -0.150652,0.03432 -0.150652,0.03432 0,0 -0.156649,0.03404 -0.156649,0.03404 0,0 -0.162595,0.03375 -0.162595,0.03375 0,0 -0.16849,0.03347 -0.16849,0.03347 0,0 -0.174332,0.03319 -0.174332,0.03319 0,0 -0.180123,0.0329 -0.180123,0.0329 0,0 -0.185862,0.03262 -0.185862,0.03262 0,0 -0.19155,0.03234 -0.19155,0.03234 0,0 -0.197185,0.03205 -0.197185,0.03205 0,0 -0.202769,0.03177 -0.202769,0.03177 0,0 -0.208301,0.03149 -0.208301,0.03149 0,0 -0.213782,0.0312 -0.213782,0.0312 0,0 -0.219211,0.03092 -0.219211,0.03092 0,0 -0.224588,0.03063 -0.224588,0.03063 0,0 -0.229914,0.03035 -0.229914,0.03035 0,0 -0.235187,0.03007 -0.235187,0.03007 0,0 -0.240409,0.02978 -0.240409,0.02978 0,0 -0.24558,0.0295 -0.24558,0.0295 0,0 -0.250699,0.02921 -0.250699,0.02921 0,0 -0.255765,0.02893 -0.255765,0.02893 0,0 -0.260781,0.02864 -0.260781,0.02864 0,0 -0.265744,0.02836 -0.265744,0.02836 0,0 -0.270657,0.02807 -0.270657,0.02807 0,0 -0.275516,0.02779 -0.275516,0.02779 0,0 -0.280325,0.02751 -0.280325,0.02751 0,0 -0.285082,0.02722 -0.285082,0.02722 0,0 -0.289787,0.02693 -0.289787,0.02693 0,0 -0.29444,0.02665 -0.29444,0.02665 0,0 -0.299042,0.02636 -0.299042,0.02636 0,0 -0.303591,0.02608 -0.303591,0.02608 0,0 -0.30809,0.02579 -0.30809,0.02579 0,0 -0.312537,0.02551 -0.312537,0.02551 0,0 -0.316932,0.02522 -0.316932,0.02522 0,0 -0.321274,0.02494 -0.321274,0.02494 0,0 -0.325566,0.02465 -0.325566,0.02465 0,0 -0.329806,0.02436 -0.329806,0.02436 0,0 -0.333994,0.02408 -0.333994,0.02408 0,0 -0.338131,0.02379 -0.338131,0.02379 0,0 -0.342215,0.02351 -0.342215,0.02351 0,0 -0.346248,0.02322 -0.346248,0.02322 0,0 -0.350229,0.02293 -0.350229,0.02293 0,0 -0.354159,0.02265 -0.354159,0.02265 0,0 -0.358037,0.02236 -0.358037,0.02236 0,0 -0.361862,0.02207 -0.361862,0.02207 0,0 -0.365638,0.02179 -0.365638,0.02179 0,0 -0.36936,0.0215 -0.36936,0.0215 0,0 -0.373031,0.02121 -0.373031,0.02121 0,0 -0.37665,0.02093 -0.37665,0.02093 0,0 -0.380218,0.02064 -0.380218,0.02064 0,0 -0.383734,0.02035 -0.383734,0.02035 0,0 -0.387199,0.02006 -0.387199,0.02006 0,0 -0.390611,0.01978 -0.390611,0.01978 0,0 -0.393971,0.01949 -0.393971,0.01949 0,0 -0.397281,0.0192 -0.397281,0.0192 0,0 -0.400539,0.01891 -0.400539,0.01891 0,0 -0.403744,0.01863 -0.403744,0.01863 0,0 -0.406898,0.01834 -0.406898,0.01834 0,0 -0.41,0.01805 -0.41,0.01805 0,0 -0.413051,0.01776 -0.413051,0.01776 0,0 -0.41605,0.01748 -0.41605,0.01748 0,0 -0.418998,0.01719 -0.418998,0.01719 0,0 -0.421892,0.0169 -0.421892,0.0169 0,0 -0.424737,0.01661 -0.424737,0.01661 0,0 -0.427529,0.01632 -0.427529,0.01632 0,0 -0.430269,0.01603 -0.430269,0.01603 0,0 -0.432958,0.01575 -0.432958,0.01575 0,0 -0.435595,0.01546 -0.435595,0.01546 0,0 -0.43818,0.01517 -0.43818,0.01517 0,0 -0.440714,0.01488 -0.440714,0.01488 0,0 -0.443196,0.01459 -0.443196,0.01459 0,0 -0.445626,0.0143 -0.445626,0.0143 0,0 -0.448005,0.01401 -0.448005,0.01401 0,0 -0.450331,0.01372 -0.450331,0.01372 0,0 -0.452607,0.01343 -0.452607,0.01343 0,0 -0.45483,0.01314 -0.45483,0.01314 0,0 -0.457002,0.01286 -0.457002,0.01286 0,0 -0.459121,0.01257 -0.459121,0.01257 0,0 -0.461191,0.01228 -0.461191,0.01228 0,0 -0.463206,0.01199 -0.463206,0.01199 0,0 -0.465172,0.0117 -0.465172,0.0117 0,0 -0.467085,0.01141 -0.467085,0.01141 0,0 -0.468946,0.01112 -0.468946,0.01112 0,0 -0.470756,0.01083 -0.470756,0.01083 0,0 -0.472515,0.01054 -0.472515,0.01054 0,0 -0.47422,0.01025 -0.47422,0.01025 0,0 -0.475876,0.01 -0.475876,0.01 0,0 -0.477478,0.0097 -0.477478,0.0097 0,0 -0.47903,0.0094 -0.47903,0.0094 0,0 -0.480529,0.0091 -0.480529,0.0091 0,0 -0.481977,0.0088 -0.481977,0.0088 0,0 -0.483374,0.0085 -0.483374,0.0085 0,0 -0.484718,0.0082 -0.484718,0.0082 0,0 -0.486011,0.0079 -0.486011,0.0079 0,0 -0.487251,0.0076 -0.487251,0.0076 0,0 -0.488442,0.0073 -0.488442,0.0073 0,0 -0.489579,0.007 -0.489579,0.007 0,0 -0.490665,0.0068 -0.490665,0.0068 0,0 -0.491699,0.0065 -0.491699,0.0065 0,0 -0.492682,0.0062 -0.492682,0.0062 0,0 -0.493613,0.0059 -0.493613,0.0059 0,0 -0.494492,0.0056 -0.494492,0.0056 0,0 -0.495319,0.0053 -0.495319,0.0053 0,0 -0.496095,0.005 -0.496095,0.005 0,0 -0.49682,0.0047 -0.49682,0.0047 0,0 -0.497491,0.0044 -0.497491,0.0044 0,0 -0.498113,0.0041 -0.498113,0.0041 0,0 -0.498681,0.0038 -0.498681,0.0038 0,0 -0.499199,0.0035 -0.499199,0.0035 0,0 -0.499664,0.0033 -0.499664,0.0033 0,0 -0.500078,0.003 -0.500078,0.003 0,0 -0.500441,0.0027 -0.500441,0.0027 0,0 -0.500751,0.0024 -0.500751,0.0024 0,0 -0.501009,0.0021 -0.501009,0.0021 0,0 -0.501217,0.0018 -0.501217,0.0018 0,0 -0.501372,0.0015 -0.501372,0.0015 0,0 -0.501476,0.0012 -0.501476,0.0012 0,0 -0.501528,9.15e-4 -0.501528,9.15e-4 0,0 -0.501528,6.22e-4 -0.501528,6.22e-4 0,0 -0.501476,3.29e-4 -0.501476,3.29e-4 0,0 -0.501374,3.6e-5 -0.501374,3.6e-5 0,0 -0.501218,-2.58e-4 -0.501218,-2.58e-4 0,0 -0.501013,-5.51e-4 -0.501013,-5.51e-4 0,0 -0.500753,-8.45e-4 -0.500753,-8.45e-4 0,0 -0.500444,-0.0011 -0.500444,-0.0011 0,0 -0.500083,-0.0014 -0.500083,-0.0014 0,0 -0.499669,-0.0017 -0.499669,-0.0017 0,0 -0.499204,-0.002 -0.499204,-0.002 0,0 -0.498687,-0.0023 -0.498687,-0.0023 0,0 -0.498119,-0.0026 -0.498119,-0.0026 0,0 -0.497498,-0.0029 -0.497498,-0.0029 0,0 -0.496827,-0.0032 -0.496827,-0.0032 0,0 -0.496104,-0.0035 -0.496104,-0.0035 0,0 -0.495328,-0.0038 -0.495328,-0.0038 0,0 -0.494501,-0.0041 -0.494501,-0.0041 0,0 -0.493622,-0.0044 -0.493622,-0.0044 0,0 -0.492692,-0.0047 -0.492692,-0.0047 0,0 -0.49171,-0.005 -0.49171,-0.005 0,0 -0.490677,-0.0053 -0.490677,-0.0053 0,0 -0.489591,-0.0056 -0.489591,-0.0056 0,0 -0.488453,-0.0058 -0.488453,-0.0058 0,0 -0.487265,-0.0061 -0.487265,-0.0061 0,0 -0.486025,-0.0064 -0.486025,-0.0064 0,0 -0.484732,-0.0067 -0.484732,-0.0067 0,0 -0.483388,-0.007 -0.483388,-0.007 0,0 -0.481992,-0.0073 -0.481992,-0.0073 0,0 -0.480545,-0.0076 -0.480545,-0.0076 0,0 -0.479047,-0.0079 -0.479047,-0.0079 0,0 -0.477495,-0.0082 -0.477495,-0.0082 0,0 -0.475893,-0.0085 -0.475893,-0.0085 0,0 -0.474238,-0.0088 -0.474238,-0.0088 0,0 -0.472533,-0.0091 -0.472533,-0.0091 0,0 -0.470776,-0.0094 -0.470776,-0.0094 0,0 -0.468966,-0.0097 -0.468966,-0.0097 0,0 -0.467105,-0.01 -0.467105,-0.01 0,0 -0.465192,-0.01028 -0.465192,-0.01028 0,0 -0.463228,-0.01058 -0.463228,-0.01058 0,0 -0.461212,-0.01087 -0.461212,-0.01087 0,0 -0.459144,-0.01117 -0.459144,-0.01117 0,0 -0.457025,-0.01147 -0.457025,-0.01147 0,0 -0.454853,-0.01176 -0.454853,-0.01176 0,0 -0.452631,-0.01206 -0.452631,-0.01206 0,0 -0.450356,-0.01236 -0.450356,-0.01236 0,0 -0.44803,-0.01265 -0.44803,-0.01265 0,0 -0.445652,-0.01295 -0.445652,-0.01295 0,0 -0.443222,-0.01325 -0.443222,-0.01325 0,0 -0.440741,-0.01355 -0.440741,-0.01355 0,0 -0.438208,-0.01384 -0.438208,-0.01384 0,0 -0.435623,-0.01414 -0.435623,-0.01414 0,0 -0.432986,-0.01444 -0.432986,-0.01444 0,0 -0.430298,-0.01474 -0.430298,-0.01474 0,0 -0.427559,-0.01503 -0.427559,-0.01503 0,0 -0.424767,-0.01533 -0.424767,-0.01533 0,0 -0.421923,-0.01563 -0.421923,-0.01563 0,0 -0.419029,-0.01593 -0.419029,-0.01593 0,0 -0.416082,-0.01622 -0.416082,-0.01622 0,0 -0.413083,-0.01652 -0.413083,-0.01652 0,0 -0.410034,-0.01682 -0.410034,-0.01682 0,0 -0.406931,-0.01712 -0.406931,-0.01712 0,0 -0.403778,-0.01742 -0.403778,-0.01742 0,0 -0.400573,-0.01772 -0.400573,-0.01772 0,0 -0.397316,-0.01802 -0.397316,-0.01802 0,0 -0.394008,-0.01831 -0.394008,-0.01831 0,0 -0.390647,-0.01861 -0.390647,-0.01861 0,0 -0.387235,-0.01891 -0.387235,-0.01891 0,0 -0.383771,-0.01921 -0.383771,-0.01921 0,0 -0.380257,-0.01951 -0.380257,-0.01951 0,0 -0.376688,-0.01981 -0.376688,-0.01981 0,0 -0.373071,-0.02011 -0.373071,-0.02011 0,0 -0.369399,-0.02041 -0.369399,-0.02041 0,0 -0.365678,-0.02071 -0.365678,-0.02071 0,0 -0.361903,-0.02101 -0.361903,-0.02101 0,0 -0.358078,-0.0213 -0.358078,-0.0213 0,0 -0.354201,-0.0216 -0.354201,-0.0216 0,0 -0.350271,-0.0219 -0.350271,-0.0219 0,0 -0.346291,-0.0222 -0.346291,-0.0222 0,0 -0.342255,-0.0225 -0.342255,-0.0225 0,0 -0.33818,-0.0228 -0.33818,-0.0228 0,0 -0.33404,-0.0231 -0.33404,-0.0231 0,0 -0.32985,-0.0234 -0.32985,-0.0234 0,0 -0.32561,-0.0237 -0.32561,-0.0237 0,0 -0.32132,-0.024 -0.32132,-0.024 0,0 -0.31698,-0.0243 -0.31698,-0.0243 0,0 -0.31258,-0.0246 -0.31258,-0.0246 0,0 -0.30814,-0.0249 -0.30814,-0.0249 0,0 -0.30364,-0.0252 -0.30364,-0.0252 0,0 -0.29909,-0.02551 -0.29909,-0.02551 0,0 -0.29449,-0.02581 -0.29449,-0.02581 0,0 -0.28984,-0.02611 -0.28984,-0.02611 0,0 -0.28513,-0.02641 -0.28513,-0.02641 0,0 -0.28038,-0.02671 -0.28038,-0.02671 0,0 -0.27557,-0.02701 -0.27557,-0.02701 0,0 -0.2707,-0.02731 -0.2707,-0.02731 0,0 -0.2658,-0.02761 -0.2658,-0.02761 0,0 -0.26084,-0.02791 -0.26084,-0.02791 0,0 -0.25582,-0.02822 -0.25582,-0.02822 0,0 -0.25075,-0.02852 -0.25075,-0.02852 0,0 -0.24563,-0.02882 -0.24563,-0.02882 0,0 -0.24047,-0.02912 -0.24047,-0.02912 0,0 -0.23524,-0.02942 -0.23524,-0.02942 0,0 -0.22997,-0.02972 -0.22997,-0.02972 0,0 -0.22465,-0.03003 -0.22465,-0.03003 0,0 -0.21927,-0.03033 -0.21927,-0.03033 0,0 -0.21384,-0.03063 -0.21384,-0.03063 0,0 -0.20836,-0.03093 -0.20836,-0.03093 0,0 -0.20283,-0.03124 -0.20283,-0.03124 0,0 -0.19724,-0.03154 -0.19724,-0.03154 0,0 -0.19161,-0.03184 -0.19161,-0.03184 0,0 -0.18592,-0.03214 -0.18592,-0.03214 0,0 -0.18019,-0.03244 -0.18019,-0.03244 0,0 -0.17439,-0.03275 -0.17439,-0.03275 0,0 -0.16856,-0.03305 -0.16856,-0.03305 0,0 -0.16265,-0.03335 -0.16265,-0.03335 0,0 -0.15672,-0.03366 -0.15672,-0.03366 0,0 -0.15071,-0.03396 -0.15071,-0.03396 0,0 -0.14467,-0.03426 -0.14467,-0.03426 0,0 -0.13857,-0.03457 -0.13857,-0.03457 0,0 -0.13241,-0.03487 -0.13241,-0.03487 0,0 -0.12622,-0.03517 -0.12622,-0.03517 0,0 -0.11995,-0.03548 -0.11995,-0.03548 0,0 -0.11365,-0.03578 -0.11365,-0.03578 0,0 -0.10729,-0.03608 -0.10729,-0.03608 0,0 -0.10088,-0.03639 -0.10088,-0.03639 0,0 -0.0944,-0.03669 -0.0944,-0.03669 0,0 -0.0879,-0.037 -0.0879,-0.037 0,0 -0.0813,-0.0373 -0.0813,-0.0373 0,0 -0.08,-0.04012 -0.08,-0.04012 0,0 -0.0839,-0.04543 -0.0839,-0.04543 0,0 -0.0877,-0.0507 -0.0877,-0.0507 0,0 -0.0915,-0.05593 -0.0915,-0.05593 0,0 -0.0953,-0.06112 -0.0953,-0.06112 0,0 -0.099,-0.06627 -0.099,-0.06627 0,0 -0.10276,-0.07138 -0.10276,-0.07138 0,0 -0.10644,-0.07645 -0.10644,-0.07645 0,0 -0.11009,-0.08147 -0.11009,-0.08147 0,0 -0.1137,-0.08646 -0.1137,-0.08646 0,0 -0.11729,-0.09141 -0.11729,-0.09141 0,0 -0.12085,-0.09632 -0.12085,-0.09632 0,0 -0.12436,-0.101182 -0.12436,-0.101182 0,0 -0.12786,-0.106008 -0.12786,-0.106008 0,0 -0.13131,-0.110794 -0.13131,-0.110794 0,0 -0.13473,-0.115539 -0.13473,-0.115539 0,0 -0.13812,-0.120244 -0.13812,-0.120244 0,0 -0.14149,-0.124908 -0.14149,-0.124908 0,0 -0.14481,-0.129533 -0.14481,-0.129533 0,0 -0.1481,-0.134116 -0.1481,-0.134116 0,0 -0.15137,-0.13866 -0.15137,-0.13866 0,0 -0.15459,-0.143163 -0.15459,-0.143163 0,0 -0.15779,-0.147626 -0.15779,-0.147626 0,0 -0.16096,-0.152048 -0.16096,-0.152048 0,0 -0.16409,-0.15643 -0.16409,-0.15643 0,0 -0.16719,-0.160772 -0.16719,-0.160772 0,0 -0.17026,-0.165073 -0.17026,-0.165073 0,0 -0.1733,-0.169334 -0.1733,-0.169334 0,0 -0.17629,-0.173554 -0.17629,-0.173554 0,0 -0.17927,-0.177735 -0.17927,-0.177735 0,0 -0.18221,-0.181874 -0.18221,-0.181874 0,0 -0.18511,-0.185973 -0.18511,-0.185973 0,0 -0.18799,-0.190033 -0.18799,-0.190033 0,0 -0.19083,-0.194051 -0.19083,-0.194051 0,0 -0.19364,-0.19803 -0.19364,-0.19803 0,0 -0.19642,-0.201967 -0.19642,-0.201967 0,0 -0.19916,-0.205865 -0.19916,-0.205865 0,0 -0.20187,-0.209722 -0.20187,-0.209722 0,0 -0.20455,-0.213539 -0.20455,-0.213539 0,0 -0.2072,-0.217316 -0.2072,-0.217316 0,0 -0.20982,-0.221051 -0.20982,-0.221051 0,0 -0.2124,-0.224747 -0.2124,-0.224747 0,0 -0.21495,-0.228402 -0.21495,-0.228402 0,0 -0.21747,-0.232017 -0.21747,-0.232017 0,0 -0.21995,-0.235592 -0.21995,-0.235592 0,0 -0.22241,-0.239126 -0.22241,-0.239126 0,0 -0.22483,-0.24262 -0.22483,-0.24262 0,0 -0.22722,-0.246073 -0.22722,-0.246073 0,0 -0.22958,-0.249487 -0.22958,-0.249487 0,0 -0.2319,-0.252859 -0.2319,-0.252859 0,0 -0.23419,-0.256191 -0.23419,-0.256191 0,0 -0.23645,-0.259483 -0.23645,-0.259483 0,0 -0.23868,-0.262735 -0.23868,-0.262735 0,0 -0.24088,-0.265946 -0.24088,-0.265946 0,0 -0.24303,-0.269117 -0.24303,-0.269117 0,0 -0.24517,-0.272247 -0.24517,-0.272247 0,0 -0.24727,-0.275338 -0.24727,-0.275338 0,0 -0.24933,-0.278387 -0.24933,-0.278387 0,0 -0.25137,-0.281397 -0.25137,-0.281397 0,0 -0.25337,-0.284365 -0.25337,-0.284365 0,0 -0.25533,-0.287295 -0.25533,-0.287295 0,0 -0.25728,-0.290182 -0.25728,-0.290182 0,0 -0.25917,-0.29303 -0.25917,-0.29303 0,0 -0.26105,-0.295838 -0.26105,-0.295838 0,0 -0.26289,-0.298605 -0.26289,-0.298605 0,0 -0.2647,-0.301332 -0.2647,-0.301332 0,0 -0.26647,-0.304018 -0.26647,-0.304018 0,0 -0.26821,-0.306664 -0.26821,-0.306664 0,0 -0.26993,-0.30927 -0.26993,-0.30927 0,0 -0.2716,-0.311835 -0.2716,-0.311835 0,0 -0.27325,-0.31436 -0.27325,-0.31436 0,0 -0.27486,-0.316844 -0.27486,-0.316844 0,0 -0.27644,-0.319289 -0.27644,-0.319289 0,0 -0.27799,-0.321692 -0.27799,-0.321692 0,0 -0.27951,-0.324056 -0.27951,-0.324056 0,0 -0.28099,-0.326379 -0.28099,-0.326379 0,0 -0.28244,-0.328662 -0.28244,-0.328662 0,0 -0.28387,-0.330903 -0.28387,-0.330903 0,0 -0.28525,-0.333106 -0.28525,-0.333106 0,0 -0.2866,-0.335268 -0.2866,-0.335268 0,0 -0.28793,-0.337388 -0.28793,-0.337388 0,0 -0.28921,-0.33947 -0.28921,-0.33947 0,0 -0.29048,-0.341509 -0.29048,-0.341509 0,0 -0.2917,-0.34351 -0.2917,-0.34351 0,0 -0.29289,-0.34547 -0.29289,-0.34547 0,0 -0.29405,-0.347389 -0.29405,-0.347389 0,0 -0.29519,-0.349268 -0.29519,-0.349268 0,0 -0.29628,-0.351106 -0.29628,-0.351106 0,0 -0.29734,-0.352905 -0.29734,-0.352905 0,0 -0.29837,-0.354662 -0.29837,-0.354662 0,0 -0.29937,-0.356381 -0.29937,-0.356381 0,0 -0.30034,-0.358057 -0.30034,-0.358057 0,0 -0.30128,-0.359694 -0.30128,-0.359694 0,0 -0.30217,-0.36129 -0.30217,-0.36129 0,0 -0.30305,-0.362846 -0.30305,-0.362846 0,0 -0.30388,-0.364362 -0.30388,-0.364362 0,0 -0.30469,-0.365837 -0.30469,-0.365837 0,0 -0.30547,-0.367272 -0.30547,-0.367272 0,0 -0.3062,-0.368667 -0.3062,-0.368667 0,0 -0.30691,-0.37002 -0.30691,-0.37002 0,0 -0.30759,-0.371335 -0.30759,-0.371335 0,0 -0.30823,-0.372607 -0.30823,-0.372607 0,0 -0.30884,-0.373841 -0.30884,-0.373841 0,0 -0.30942,-0.375034 -0.30942,-0.375034 0,0 -0.30996,-0.376186 -0.30996,-0.376186 0,0 -0.31049,-0.377297 -0.31049,-0.377297 0,0 -0.31096,-0.378369 -0.31096,-0.378369 0,0 -0.31141,-0.379401 -0.31141,-0.379401 0,0 -0.31183,-0.380391 -0.31183,-0.380391 0,0 -0.31222,-0.381342 -0.31222,-0.381342 0,0 -0.31256,-0.382251 -0.31256,-0.382251 0,0 -0.31289,-0.383122 -0.31289,-0.383122 0,0 -0.31318,-0.38395 -0.31318,-0.38395 0,0 -0.31343,-0.38474 -0.31343,-0.38474 0,0 -0.31366,-0.385488 -0.31366,-0.385488 0,0 -0.31384,-0.386196 -0.31384,-0.386196 0,0 -0.31401,-0.386865 -0.31401,-0.386865 0,0 -0.31413,-0.387491 -0.31413,-0.387491 0,0 -0.31422,-0.388079 -0.31422,-0.388079 0,0 -0.31429,-0.388625 -0.31429,-0.388625 0,0 -0.31432,-0.389132 -0.31432,-0.389132 0,0 -0.31431,-0.389598 -0.31431,-0.389598 0,0 -0.31428,-0.390023 -0.31428,-0.390023 0,0 -0.31421,-0.390409 -0.31421,-0.390409 0,0 -0.31411,-0.390753 -0.31411,-0.390753 0,0 -0.31398,-0.391058 -0.31398,-0.391058 0,0 -0.31381,-0.391322 -0.31381,-0.391322 0,0 -0.31362,-0.391546 -0.31362,-0.391546 0,0 -0.31339,-0.391729 -0.31339,-0.391729 0,0 -0.31312,-0.391872 -0.31312,-0.391872 0,0 -0.31284,-0.391975 -0.31284,-0.391975 0,0 -0.3125,-0.392037 -0.3125,-0.392037 0,0 -0.31215,-0.392059 -0.31215,-0.392059 0,0 -0.31176,-0.39204 -0.31176,-0.39204 0,0 -0.31133,-0.391982 -0.31133,-0.391982 0,0 -0.31088,-0.391882 -0.31088,-0.391882 0,0 -0.31039,-0.391743 -0.31039,-0.391743 0,0 -0.30987,-0.391563 -0.30987,-0.391563 0,0 -0.30932,-0.391342 -0.30932,-0.391342 0,0 -0.30873,-0.391082 -0.30873,-0.391082 0,0 -0.30812,-0.39078 -0.30812,-0.39078 0,0 -0.30746,-0.39044 -0.30746,-0.39044 0,0 -0.30679,-0.390057 -0.30679,-0.390057 0,0 -0.30607,-0.389635 -0.30607,-0.389635 0,0 -0.30532,-0.389173 -0.30532,-0.389173 0,0 -0.30455,-0.388669 -0.30455,-0.388669 0,0 -0.30373,-0.388127 -0.30373,-0.388127 0,0 -0.30289,-0.387542 -0.30289,-0.387542 0,0 -0.30202,-0.386919 -0.30202,-0.386919 0,0 -0.30111,-0.386254 -0.30111,-0.386254 0,0 -0.30016,-0.385549 -0.30016,-0.385549 0,0 -0.2992,-0.384805 -0.2992,-0.384805 0,0 -0.29819,-0.384018 -0.29819,-0.384018 0,0 -0.29715,-0.383193 -0.29715,-0.383193 0,0 -0.29608,-0.382327 -0.29608,-0.382327 0,0 -0.29498,-0.381419 -0.29498,-0.381419 0,0 -0.29385,-0.380473 -0.29385,-0.380473 0,0 -0.29268,-0.379486 -0.29268,-0.379486 0,0 -0.29148,-0.378457 -0.29148,-0.378457 0,0 -0.29025,-0.37739 -0.29025,-0.37739 0,0 -0.28898,-0.376281 -0.28898,-0.376281 0,0 -0.28769,-0.375132 -0.28769,-0.375132 0,0 -0.28636,-0.373943 -0.28636,-0.373943 0,0 -0.28501,-0.372713 -0.28501,-0.372713 0,0 -0.2836,-0.371443 -0.2836,-0.371443 0,0 -0.28219,-0.370133 -0.28219,-0.370133 0,0 -0.28072,-0.368782 -0.28072,-0.368782 0,0 -0.27924,-0.367391 -0.27924,-0.367391 0,0 -0.27771,-0.36596 -0.27771,-0.36596 0,0 -0.27616,-0.364487 -0.27616,-0.364487 0,0 -0.27457,-0.362976 -0.27457,-0.362976 0,0 -0.27295,-0.361423 -0.27295,-0.361423 0,0 -0.2713,-0.35983 -0.2713,-0.35983 0,0 -0.26962,-0.358196 -0.26962,-0.358196 0,0 -0.2679,-0.356523 -0.2679,-0.356523 0,0 -0.26615,-0.354809 -0.26615,-0.354809 0,0 -0.26437,-0.353054 -0.26437,-0.353054 0,0 -0.26256,-0.35126 -0.26256,-0.35126 0,0 -0.26071,-0.349424 -0.26071,-0.349424 0,0 -0.25884,-0.347549 -0.25884,-0.347549 0,0 -0.25692,-0.345633 -0.25692,-0.345633 0,0 -0.25499,-0.343676 -0.25499,-0.343676 0,0 -0.253,-0.34168 -0.253,-0.34168 0,0 -0.251,-0.339643 -0.251,-0.339643 0,0 -0.24897,-0.337565 -0.24897,-0.337565 0,0 -0.24688,-0.335448 -0.24688,-0.335448 0,0 -0.24479,-0.33329 -0.24479,-0.33329 0,0 -0.24265,-0.33109 -0.24265,-0.33109 0,0 -0.24048,-0.328852 -0.24048,-0.328852 0,0 -0.23828,-0.326573 -0.23828,-0.326573 0,0 -0.23604,-0.324253 -0.23604,-0.324253 0,0 -0.23378,-0.321893 -0.23378,-0.321893 0,0 -0.23149,-0.319493 -0.23149,-0.319493 0,0 -0.22915,-0.317052 -0.22915,-0.317052 0,0 -0.22679,-0.314571 -0.22679,-0.314571 0,0 -0.22439,-0.312049 -0.22439,-0.312049 0,0 -0.22197,-0.309487 -0.22197,-0.309487 0,0 -0.2195,-0.306886 -0.2195,-0.306886 0,0 -0.21702,-0.304242 -0.21702,-0.304242 0,0 -0.21449,-0.30156 -0.21449,-0.30156 0,0 -0.21193,-0.298836 -0.21193,-0.298836 0,0 -0.20935,-0.296072 -0.20935,-0.296072 0,0 -0.20672,-0.293269 -0.20672,-0.293269 0,0 -0.20407,-0.290424 -0.20407,-0.290424 0,0 -0.20139,-0.287539 -0.20139,-0.287539 0,0 -0.19866,-0.284613 -0.19866,-0.284613 0,0 -0.19592,-0.281649 -0.19592,-0.281649 0,0 -0.19313,-0.278642 -0.19313,-0.278642 0,0 -0.19032,-0.275596 -0.19032,-0.275596 0,0 -0.18747,-0.272509 -0.18747,-0.272509 0,0 -0.18459,-0.269382 -0.18459,-0.269382 0,0 -0.18168,-0.266215 -0.18168,-0.266215 0,0 -0.17873,-0.263007 -0.17873,-0.263007 0,0 -0.17576,-0.259759 -0.17576,-0.259759 0,0 -0.17274,-0.25647 -0.17274,-0.25647 0,0 -0.16971,-0.253141 -0.16971,-0.253141 0,0 -0.16663,-0.249772 -0.16663,-0.249772 0,0 -0.16353,-0.246363 -0.16353,-0.246363 0,0 -0.16038,-0.242912 -0.16038,-0.242912 0,0 -0.15722,-0.239422 -0.15722,-0.239422 0,0 -0.15401,-0.235891 -0.15401,-0.235891 0,0 -0.15078,-0.23232 -0.15078,-0.23232 0,0 -0.14751,-0.228708 -0.14751,-0.228708 0,0 -0.14421,-0.225056 -0.14421,-0.225056 0,0 -0.14088,-0.221365 -0.14088,-0.221365 0,0 -0.13751,-0.217631 -0.13751,-0.217631 0,0 -0.13411,-0.213859 -0.13411,-0.213859 0,0 -0.13069,-0.210045 -0.13069,-0.210045 0,0 -0.12722,-0.206191 -0.12722,-0.206191 0,0 -0.12373,-0.202298 -0.12373,-0.202298 0,0 -0.12021,-0.198362 -0.12021,-0.198362 0,0 -0.11664,-0.194388 -0.11664,-0.194388 0,0 -0.11306,-0.190373 -0.11306,-0.190373 0,0 -0.10943,-0.186317 -0.10943,-0.186317 0,0 -0.10577,-0.182221 -0.10577,-0.182221 0,0 -0.10209,-0.178085 -0.10209,-0.178085 0,0 -0.0984,-0.173908 -0.0984,-0.173908 0,0 -0.0946,-0.169691 -0.0946,-0.169691 0,0 -0.0908,-0.165433 -0.0908,-0.165433 0,0 -0.087,-0.161136 -0.087,-0.161136 0,0 -0.0832,-0.156797 -0.0832,-0.156797 0,0 -0.0793,-0.152419 -0.0793,-0.152419 0,0 -0.0754,-0.148 -0.0754,-0.148 0,0 -0.0714,-0.143541 -0.0714,-0.143541 0,0 -0.0674,-0.139041 -0.0674,-0.139041 0,0 -0.0634,-0.1345 -0.0634,-0.1345 0,0 -0.0594,-0.129921 -0.0594,-0.129921 0,0 -0.0553,-0.125299 -0.0553,-0.125299 0,0 -0.0512,-0.120639 -0.0512,-0.120639 0,0 -0.0471,-0.115937 -0.0471,-0.115937 0,0 -0.0429,-0.111194 -0.0429,-0.111194 0,0 -0.0387,-0.106413 -0.0387,-0.106413 0,0 -0.0344,-0.10159 -0.0344,-0.10159 0,0 -0.0302,-0.09673 -0.0302,-0.09673 0,0 -0.0259,-0.09182 -0.0259,-0.09182 0,0 -0.0215,-0.08688 -0.0215,-0.08688 0,0 -0.0185,-0.08759 -0.0185,-0.08759 0,0 -0.0167,-0.09394 -0.0167,-0.09394 0,0 -0.015,-0.100245 -0.015,-0.100245 0,0 -0.0133,-0.106497 -0.0133,-0.106497 0,0 -0.0115,-0.1127 -0.0115,-0.1127 0,0 -0.01,-0.118851 -0.01,-0.118851 0,0 -0.008,-0.124953 -0.008,-0.124953 0,0 -0.006,-0.131002 -0.006,-0.131002 0,0 -0.005,-0.137003 -0.005,-0.137003 0,0 -0.003,-0.142952 -0.003,-0.142952 0,0 -0.002,-0.14885 -0.002,-0.14885 0,0 1.3e-4,-0.1547 1.3e-4,-0.1547 0,0 0.002,-0.160496 0.002,-0.160496 0,0 0.003,-0.1662445 0.003,-0.1662445 0,0 0.005,-0.1719407 0.005,-0.1719407 0,0 0.007,-0.1775869 0.007,-0.1775869 0,0 0.008,-0.1831825 0.008,-0.1831825 0,0 0.01,-0.1887275 0.01,-0.1887275 0,0 0.0112,-0.194222 0.0112,-0.194222 0,0 0.0128,-0.199666 0.0128,-0.199666 0,0 0.0143,-0.2050595 0.0143,-0.2050595 0,0 0.0158,-0.2104023 0.0158,-0.2104023 0,0 0.0173,-0.2156946 0.0173,-0.2156946 0,0 0.0188,-0.2209365 0.0188,-0.2209365 0,0 0.0203,-0.2261278 0.0203,-0.2261278 0,0 0.0218,-0.2312684 0.0218,-0.2312684 0,0 0.0232,-0.2363587 0.0232,-0.2363587 0,0 0.0247,-0.2413983 0.0247,-0.2413983 0,0 0.0261,-0.2463874 0.0261,-0.2463874 0,0 0.0276,-0.251326 0.0276,-0.251326 0,0 0.029,-0.256214 0.029,-0.256214 0,0 0.0304,-0.2610514 0.0304,-0.2610514 0,0 0.0318,-0.2658385 0.0318,-0.2658385 0,0 0.0331,-0.2705748 0.0331,-0.2705748 0,0 0.0345,-0.2752606 0.0345,-0.2752606 0,0 0.0359,-0.279896 0.0359,-0.279896 0,0 0.0372,-0.2844808 0.0372,-0.2844808 0,0 0.0385,-0.289015 0.0385,-0.289015 0,0 0.0399,-0.2934987 0.0399,-0.2934987 0,0 0.0412,-0.2979319 0.0412,-0.2979319 0,0 0.0425,-0.3023144 0.0425,-0.3023144 0,0 0.0438,-0.3066466 0.0438,-0.3066466 0,0 0.0451,-0.3109281 0.0451,-0.3109281 0,0 0.0463,-0.315159 0.0463,-0.315159 0,0 0.0476,-0.3193396 0.0476,-0.3193396 0,0 0.0488,-0.3234694 0.0488,-0.3234694 0,0 0.05,-0.3275488 0.05,-0.3275488 0,0 0.0513,-0.3315776 0.0513,-0.3315776 0,0 0.0525,-0.33555596 0.0525,-0.33555596 0,0 0.0537,-0.33948367 0.0537,-0.33948367 0,0 0.0548,-0.34336088 0.0548,-0.34336088 0,0 0.056,-0.34718754 0.056,-0.34718754 0,0 0.0572,-0.35096367 0.0572,-0.35096367 0,0 0.0583,-0.35468926 0.0583,-0.35468926 0,0 0.0595,-0.35836432 0.0595,-0.35836432 0,0 0.0606,-0.3619888 0.0606,-0.3619888 0,0 0.0617,-0.3655627 0.0617,-0.3655627 0,0 0.0628,-0.3690862 0.0628,-0.3690862 0,0 0.0639,-0.3725591 0.0639,-0.3725591 0,0 0.065,-0.3759814 0.065,-0.3759814 0,0 0.066,-0.3793532 0.066,-0.3793532 0,0 0.0671,-0.3826745 0.0671,-0.3826745 0,0 0.0682,-0.3859451 0.0682,-0.3859451 0,0 0.0692,-0.3891654 0.0692,-0.3891654 0,0 0.0702,-0.392335 0.0702,-0.392335 0,0 0.0712,-0.3954541 0.0712,-0.3954541 0,0 0.0722,-0.3985226 0.0722,-0.3985226 0,0 0.0732,-0.4015407 0.0732,-0.4015407 0,0 0.0742,-0.4045081 0.0742,-0.4045081 0,0 0.0752,-0.4074251 0.0752,-0.4074251 0,0 0.0761,-0.4102914 0.0761,-0.4102914 0,0 0.0771,-0.4131073 0.0771,-0.4131073 0,0 0.078,-0.4158726 0.078,-0.4158726 0,0 0.0789,-0.4185874 0.0789,-0.4185874 0,0 0.0798,-0.4212516 0.0798,-0.4212516 0,0 0.0807,-0.4238653 0.0807,-0.4238653 0,0 0.0816,-0.4264284 0.0816,-0.4264284 0,0 0.0825,-0.4289409 0.0825,-0.4289409 0,0 0.0833,-0.431403 0.0833,-0.431403 0,0 0.0842,-0.433815 0.0842,-0.433815 0,0 0.085,-0.436176 0.085,-0.436176 0,0 0.0858,-0.438486 0.0858,-0.438486 0,0 0.0867,-0.440746 0.0867,-0.440746 0,0 0.0875,-0.442955 0.0875,-0.442955 0,0 0.0883,-0.445114 0.0883,-0.445114 0,0 0.089,-0.447223 0.089,-0.447223 0,0 0.0898,-0.44928 0.0898,-0.44928 0,0 0.0906,-0.451287 0.0906,-0.451287 0,0 0.0913,-0.453244 0.0913,-0.453244 0,0 0.0921,-0.45515 0.0921,-0.45515 0,0 0.0928,-0.457006 0.0928,-0.457006 0,0 0.0935,-0.458811 0.0935,-0.458811 0,0 0.0942,-0.460565 0.0942,-0.460565 0,0 0.0949,-0.462269 0.0949,-0.462269 0,0 0.0956,-0.463923 0.0956,-0.463923 0,0 0.0962,-0.465525 0.0962,-0.465525 0,0 0.0969,-0.467078 0.0969,-0.467078 0,0 0.0975,-0.46858 0.0975,-0.46858 0,0 0.0981,-0.47003 0.0981,-0.47003 0,0 0.0988,-0.471432 0.0988,-0.471432 0,0 0.0994,-0.472782 0.0994,-0.472782 0,0 0.1,-0.474081 0.1,-0.474081 0,0 0.10056,-0.475331 0.10056,-0.475331 0,0 0.10113,-0.476529 0.10113,-0.476529 0,0 0.10169,-0.477677 0.10169,-0.477677 0,0 0.10224,-0.478774 0.10224,-0.478774 0,0 0.10278,-0.479821 0.10278,-0.479821 0,0 0.10331,-0.480818 0.10331,-0.480818 0,0 0.10383,-0.481764 0.10383,-0.481764 0,0 0.10433,-0.482659 0.10433,-0.482659 0,0 0.10482,-0.483503 0.10482,-0.483503 0,0 0.10531,-0.484298 0.10531,-0.484298 0,0 0.10577,-0.485042 0.10577,-0.485042 0,0 0.10623,-0.485734 0.10623,-0.485734 0,0 0.10669,-0.486378 0.10669,-0.486378 0,0 0.10711,-0.486969 0.10711,-0.486969 0,0 0.10754,-0.487511 0.10754,-0.487511 0,0 0.10796,-0.488002 0.10796,-0.488002 0,0 0.10835,-0.488442 0.10835,-0.488442 0,0 0.10874,-0.488832 0.10874,-0.488832 0,0 0.10913,-0.489172 0.10913,-0.489172 0,0 0.10948,-0.48946 0.10948,-0.48946 0,0 0.10985,-0.489699 0.10985,-0.489699 0,0 0.11018,-0.489886 0.11018,-0.489886 0,0 0.11052,-0.490024 0.11052,-0.490024 0,0 0.11084,-0.49011 0.11084,-0.49011 0,0 0.11115,-0.490146 0.11115,-0.490146 0,0 0.11144,-0.490132 0.11144,-0.490132 0,0 0.11173,-0.490067 0.11173,-0.490067 0,0 0.11201,-0.489951 0.11201,-0.489951 0,0 0.11227,-0.489785 0.11227,-0.489785 0,0 0.11251,-0.489569 0.11251,-0.489569 0,0 0.11276,-0.489302 0.11276,-0.489302 0,0 0.11299,-0.488984 0.11299,-0.488984 0,0 0.1132,-0.488615 0.1132,-0.488615 0,0 0.11341,-0.488197 0.11341,-0.488197 0,0 0.1136,-0.487728 0.1136,-0.487728 0,0 0.11379,-0.487208 0.11379,-0.487208 0,0 0.11395,-0.486637 0.11395,-0.486637 0,0 0.11412,-0.486016 0.11412,-0.486016 0,0 0.11426,-0.485345 0.11426,-0.485345 0,0 0.1144,-0.484623 0.1144,-0.484623 0,0 0.11452,-0.483851 0.11452,-0.483851 0,0 0.11464,-0.483027 0.11464,-0.483027 0,0 0.11473,-0.482154 0.11473,-0.482154 0,0 0.11483,-0.48123 0.11483,-0.48123 0,0 0.11491,-0.480255 0.11491,-0.480255 0,0 0.11497,-0.479229 0.11497,-0.479229 0,0 0.11503,-0.478154 0.11503,-0.478154 0,0 0.11507,-0.477027 0.11507,-0.477027 0,0 0.1151,-0.475851 0.1151,-0.475851 0,0 0.11513,-0.474623 0.11513,-0.474623 0,0 0.11513,-0.473346 0.11513,-0.473346 0,0 0.11513,-0.472016 0.11513,-0.472016 0,0 0.11512,-0.470638 0.11512,-0.470638 0,0 0.1151,-0.469208 0.1151,-0.469208 0,0 0.11505,-0.467728 0.11505,-0.467728 0,0 0.11501,-0.466198 0.11501,-0.466198 0,0 0.11495,-0.464616 0.11495,-0.464616 0,0 0.11488,-0.462984 0.11488,-0.462984 0,0 0.11479,-0.461303 0.11479,-0.461303 0,0 0.1147,-0.459569 0.1147,-0.459569 0,0 0.1146,-0.457786 0.1146,-0.457786 0,0 0.11447,-0.455952 0.11447,-0.455952 0,0 0.11435,-0.454068 0.11435,-0.454068 0,0 0.11421,-0.452132 0.11421,-0.452132 0,0 0.11405,-0.450148 0.11405,-0.450148 0,0 0.1139,-0.448111 0.1139,-0.448111 0,0 0.11371,-0.446024 0.11371,-0.446024 0,0 0.11354,-0.443887 0.11354,-0.443887 0,0 0.11333,-0.4417 0.11333,-0.4417 0,0 0.11312,-0.439461 0.11312,-0.439461 0,0 0.1129,-0.437173 0.1129,-0.437173 0,0 0.11267,-0.434833 0.11267,-0.434833 0,0 0.11243,-0.432444 0.11243,-0.432444 0,0 0.11217,-0.430003 0.11217,-0.430003 0,0 0.1119,-0.427512 0.1119,-0.427512 0,0 0.11163,-0.424971 0.11163,-0.424971 0,0 0.11133,-0.422379 0.11133,-0.422379 0,0 0.11103,-0.419736 0.11103,-0.419736 0,0 0.11072,-0.417043 0.11072,-0.417043 0,0 0.1104,-0.414299 0.1104,-0.414299 0,0 0.11006,-0.411505 0.11006,-0.411505 0,0 0.10971,-0.408661 0.10971,-0.408661 0,0 0.10935,-0.405765 0.10935,-0.405765 0,0 0.10898,-0.40282 0.10898,-0.40282 0,0 0.1086,-0.399823 0.1086,-0.399823 0,0 0.1082,-0.396776 0.1082,-0.396776 0,0 0.1078,-0.393679 0.1078,-0.393679 0,0 0.10739,-0.390531 0.10739,-0.390531 0,0 0.10695,-0.387332 0.10695,-0.387332 0,0 0.10651,-0.384083 0.10651,-0.384083 0,0 0.10607,-0.380784 0.10607,-0.380784 0,0 0.1056,-0.377434 0.1056,-0.377434 0,0 0.10512,-0.374033 0.10512,-0.374033 0,0 0.10464,-0.370581 0.10464,-0.370581 0,0 0.10414,-0.36708 0.10414,-0.36708 0,0 0.10364,-0.363528 0.10364,-0.363528 0,0 0.10311,-0.359925 0.10311,-0.359925 0,0 0.10258,-0.356271 0.10258,-0.356271 0,0 0.10204,-0.352568 0.10204,-0.352568 0,0 0.10148,-0.348813 0.10148,-0.348813 0,0 0.10091,-0.345008 0.10091,-0.345008 0,0 0.10034,-0.341153 0.10034,-0.341153 0,0 0.0998,-0.337246 0.0998,-0.337246 0,0 0.0991,-0.33329 0.0991,-0.33329 0,0 0.0985,-0.329283 0.0985,-0.329283 0,0 0.0979,-0.325225 0.0979,-0.325225 0,0 0.0973,-0.321117 0.0973,-0.321117 0,0 0.0966,-0.316958 0.0966,-0.316958 0,0 0.096,-0.312749 0.096,-0.312749 0,0 0.0953,-0.308489 0.0953,-0.308489 0,0 0.0946,-0.304178 0.0946,-0.304178 0,0 0.0939,-0.299818 0.0939,-0.299818 0,0 0.0932,-0.295406 0.0932,-0.295406 0,0 0.0925,-0.290944 0.0925,-0.290944 0,0 0.0918,-0.286431 0.0918,-0.286431 0,0 0.091,-0.281869 0.091,-0.281869 0,0 0.0903,-0.277255 0.0903,-0.277255 0,0 0.0895,-0.27259 0.0895,-0.27259 0,0 0.0888,-0.267876 0.0888,-0.267876 0,0 0.088,-0.26311 0.088,-0.26311 0,0 0.0872,-0.258295 0.0872,-0.258295 0,0 0.0864,-0.253429 0.0864,-0.253429 0,0 0.0855,-0.248511 0.0855,-0.248511 0,0 0.0847,-0.243544 0.0847,-0.243544 0,0 0.0839,-0.238526 0.0839,-0.238526 0,0 0.083,-0.233458 0.083,-0.233458 0,0 0.0821,-0.228338 0.0821,-0.228338 0,0 0.0813,-0.223169 0.0813,-0.223169 0,0 0.0804,-0.217949 0.0804,-0.217949 0,0 0.0795,-0.212678 0.0795,-0.212678 0,0 0.0786,-0.207357 0.0786,-0.207357 0,0 0.0776,-0.201986 0.0776,-0.201986 0,0 0.0767,-0.196562 0.0767,-0.196562 0,0 0.0758,-0.19109 0.0758,-0.19109 0,0 0.0748,-0.185567 0.0748,-0.185567 0,0 0.0738,-0.179993 0.0738,-0.179993 0,0 0.0728,-0.174368 0.0728,-0.174368 0,0 0.0719,-0.168693 0.0719,-0.168693 0,0 0.0709,-0.162968 0.0709,-0.162968 0,0 0.0698,-0.157192 0.0698,-0.157192 0,0 0.0688,-0.151365 0.0688,-0.151365 0,0 0.0678,-0.145488 0.0678,-0.145488 0,0 0.0667,-0.13956 0.0667,-0.13956 0,0 0.0657,-0.133582 0.0657,-0.133582 0,0 0.0646,-0.127553 0.0646,-0.127553 0,0 0.0635,-0.121474 0.0635,-0.121474 0,0 0.0624,-0.115344 0.0624,-0.115344 0,0 0.0613,-0.109163 0.0613,-0.109163 0,0 0.0602,-0.102933 0.0602,-0.102933 0,0 0.059,-0.09665 0.059,-0.09665 0,0 0.0579,-0.09032 0.0579,-0.09032 0,0 0.0567,-0.08394 0.0567,-0.08394 0,0 0.0556,-0.0775 0.0556,-0.0775 0,0 0.0544,-0.07102 0.0544,-0.07102 0,0 0.0568,-0.06907 0.0568,-0.06907 0,0 0.0629,-0.07166 0.0629,-0.07166 0,0 0.0688,-0.07423 0.0688,-0.07423 0,0 0.0748,-0.07678 0.0748,-0.07678 0,0 0.0807,-0.0793 0.0807,-0.0793 0,0 0.0865,-0.0818 0.0865,-0.0818 0,0 0.0923,-0.08429 0.0923,-0.08429 0,0 0.0981,-0.08674 0.0981,-0.08674 0,0 0.10377,-0.08918 0.10377,-0.08918 0,0 0.10943,-0.09159 0.10943,-0.09159 0,0 0.11503,-0.09398 0.11503,-0.09398 0,0 0.12061,-0.09635 0.12061,-0.09635 0,0 0.12612,-0.09869 0.12612,-0.09869 0,0 0.13159,-0.101017 0.13159,-0.101017 0,0 0.13701,-0.103318 0.13701,-0.103318 0,0 0.1424,-0.105595 0.1424,-0.105595 0,0 0.14772,-0.107851 0.14772,-0.107851 0,0 0.15302,-0.110084 0.15302,-0.110084 0,0 0.15825,-0.112294 0.15825,-0.112294 0,0 0.16344,-0.114482 0.16344,-0.114482 0,0 0.16859,-0.116648 0.16859,-0.116648 0,0 0.17369,-0.11879 0.17369,-0.11879 0,0 0.17875,-0.120911 0.17875,-0.120911 0,0 0.18375,-0.123009 0.18375,-0.123009 0,0 0.18871,-0.125084 0.18871,-0.125084 0,0 0.19362,-0.127138 0.19362,-0.127138 0,0 0.19849,-0.129168 0.19849,-0.129168 0,0 0.20331,-0.131175 0.20331,-0.131175 0,0 0.20809,-0.133161 0.20809,-0.133161 0,0 0.21282,-0.135125 0.21282,-0.135125 0,0 0.21749,-0.137064 0.21749,-0.137064 0,0 0.22213,-0.138983 0.22213,-0.138983 0,0 0.22672,-0.140878 0.22672,-0.140878 0,0 0.23127,-0.142751 0.23127,-0.142751 0,0 0.23575,-0.144602 0.23575,-0.144602 0,0 0.24021,-0.14643 0.24021,-0.14643 0,0 0.24461,-0.148235 0.24461,-0.148235 0,0 0.24897,-0.150018 0.24897,-0.150018 0,0 0.25327,-0.151779 0.25327,-0.151779 0,0 0.25754,-0.153516 0.25754,-0.153516 0,0 0.26176,-0.155233 0.26176,-0.155233 0,0 0.26593,-0.156925 0.26593,-0.156925 0,0 0.27005,-0.158596 0.27005,-0.158596 0,0 0.27413,-0.160244 0.27413,-0.160244 0,0 0.27816,-0.161869 0.27816,-0.161869 0,0 0.28214,-0.163473 0.28214,-0.163473 0,0 0.28608,-0.165053 0.28608,-0.165053 0,0 0.28997,-0.166611 0.28997,-0.166611 0,0 0.29382,-0.168147 0.29382,-0.168147 0,0 0.29762,-0.16966 0.29762,-0.16966 0,0 0.30137,-0.17115 0.30137,-0.17115 0,0 0.30508,-0.172619 0.30508,-0.172619 0,0 0.30873,-0.174064 0.30873,-0.174064 0,0 0.31235,-0.175487 0.31235,-0.175487 0,0 0.31591,-0.176888 0.31591,-0.176888 0,0 0.31944,-0.178266 0.31944,-0.178266 0,0 0.3229,-0.179622 0.3229,-0.179622 0,0 0.32634,-0.180954 0.32634,-0.180954 0,0 0.32971,-0.182266 0.32971,-0.182266 0,0 0.33305,-0.183553 0.33305,-0.183553 0,0 0.33634,-0.184819 0.33634,-0.184819 0,0 0.33958,-0.186063 0.33958,-0.186063 0,0 0.34277,-0.187282 0.34277,-0.187282 0,0 0.34592,-0.188482 0.34592,-0.188482 0,0 0.34902,-0.189656 0.34902,-0.189656 0,0 0.35208,-0.19081 0.35208,-0.19081 0,0 0.35509,-0.191941 0.35509,-0.191941 0,0 0.35804,-0.193049 0.35804,-0.193049 0,0 0.36097,-0.194134 0.36097,-0.194134 0,0 0.36383,-0.195198 0.36383,-0.195198 0,0 0.36666,-0.196238 0.36666,-0.196238 0,0 0.36943,-0.197256 0.36943,-0.197256 0,0 0.37217,-0.198253 0.37217,-0.198253 0,0 0.37484,-0.199225 0.37484,-0.199225 0,0 0.37749,-0.200176 0.37749,-0.200176 0,0 0.38007,-0.201105 0.38007,-0.201105 0,0 0.38262,-0.20201 0.38262,-0.20201 0,0 0.38512,-0.202893 0.38512,-0.202893 0,0 0.38757,-0.203754 0.38757,-0.203754 0,0 0.38997,-0.204592 0.38997,-0.204592 0,0 0.39233,-0.205409 0.39233,-0.205409 0,0 0.39464,-0.206201 0.39464,-0.206201 0,0 0.39691,-0.206972 0.39691,-0.206972 0,0 0.39913,-0.20772 0.39913,-0.20772 0,0 0.4013,-0.208446 0.4013,-0.208446 0,0 0.40342,-0.20915 0.40342,-0.20915 0,0 0.40551,-0.20983 0.40551,-0.20983 0,0 0.40753,-0.210488 0.40753,-0.210488 0,0 0.40953,-0.211125 0.40953,-0.211125 0,0 0.41146,-0.211737 0.41146,-0.211737 0,0 0.41336,-0.212328 0.41336,-0.212328 0,0 0.41521,-0.212897 0.41521,-0.212897 0,0 0.417,-0.213443 0.417,-0.213443 0,0 0.41876,-0.213965 0.41876,-0.213965 0,0 0.42047,-0.214467 0.42047,-0.214467 0,0 0.42213,-0.214945 0.42213,-0.214945 0,0 0.42375,-0.215401 0.42375,-0.215401 0,0 0.42531,-0.215834 0.42531,-0.215834 0,0 0.42684,-0.216245 0.42684,-0.216245 0,0 0.42831,-0.216633 0.42831,-0.216633 0,0 0.42974,-0.216999 0.42974,-0.216999 0,0 0.43112,-0.217342 0.43112,-0.217342 0,0 0.43246,-0.217664 0.43246,-0.217664 0,0 0.43374,-0.217961 0.43374,-0.217961 0,0 0.43499,-0.218238 0.43499,-0.218238 0,0 0.43619,-0.218491 0.43619,-0.218491 0,0 0.43734,-0.218722 0.43734,-0.218722 0,0 0.43844,-0.21893 0.43844,-0.21893 0,0 0.4395,-0.219116 0.4395,-0.219116 0,0 0.44051,-0.21928 0.44051,-0.21928 0,0 0.44147,-0.21942 0.44147,-0.21942 0,0 0.44239,-0.219539 0.44239,-0.219539 0,0 0.44327,-0.219635 0.44327,-0.219635 0,0 0.44409,-0.219708 0.44409,-0.219708 0,0 0.44486,-0.219759 0.44486,-0.219759 0,0 0.4456,-0.219788 0.4456,-0.219788 0,0 0.44629,-0.219793 0.44629,-0.219793 0,0 0.44692,-0.219777 0.44692,-0.219777 0,0 0.44752,-0.219738 0.44752,-0.219738 0,0 0.44806,-0.219676 0.44806,-0.219676 0,0 0.44856,-0.219593 0.44856,-0.219593 0,0 0.44901,-0.219485 0.44901,-0.219485 0,0 0.44943,-0.219357 0.44943,-0.219357 0,0 0.44978,-0.219205 0.44978,-0.219205 0,0 0.4501,-0.219032 0.4501,-0.219032 0,0 0.45036,-0.218836 0.45036,-0.218836 0,0 0.45058,-0.21861 0.45058,-0.21861 0,0 0.45076,-0.21838 0.45076,-0.21838 0,0 0.45089,-0.21811 0.45089,-0.21811 0,0 0.45097,-0.21782 0.45097,-0.21782 0,0 0.451,-0.21752 0.451,-0.21752 0,0 0.45099,-0.21718 0.45099,-0.21718 0,0 0.45094,-0.21683 0.45094,-0.21683 0,0 0.45083,-0.21645 0.45083,-0.21645 0,0 0.45068,-0.21606 0.45068,-0.21606 0,0 0.45048,-0.21563 0.45048,-0.21563 0,0 0.45024,-0.21519 0.45024,-0.21519 0,0 0.44995,-0.21472 0.44995,-0.21472 0,0 0.44961,-0.21423 0.44961,-0.21423 0,0 0.44923,-0.21372 0.44923,-0.21372 0,0 0.44879,-0.21319 0.44879,-0.21319 0,0 0.44833,-0.21263 0.44833,-0.21263 0,0 0.4478,-0.21205 0.4478,-0.21205 0,0 0.44723,-0.21145 0.44723,-0.21145 0,0 0.446614,-0.21083 0.446614,-0.21083 0,0 0.445954,-0.21018 0.445954,-0.21018 0,0 0.445246,-0.20951 0.445246,-0.20951 0,0 0.44449,-0.20882 0.44449,-0.20882 0,0 0.44369,-0.20811 0.44369,-0.20811 0,0 0.442842,-0.20737 0.442842,-0.20737 0,0 0.441947,-0.20661 0.441947,-0.20661 0,0 0.441007,-0.20583 0.441007,-0.20583 0,0 0.440019,-0.20503 0.440019,-0.20503 0,0 0.438986,-0.2042 0.438986,-0.2042 0,0 0.437906,-0.20335 0.437906,-0.20335 0,0 0.43678,-0.20248 0.43678,-0.20248 0,0 0.435606,-0.20158 0.435606,-0.20158 0,0 0.434387,-0.20067 0.434387,-0.20067 0,0 0.433121,-0.19973 0.433121,-0.19973 0,0 0.431808,-0.19877 0.431808,-0.19877 0,0 0.43045,-0.19778 0.43045,-0.19778 0,0 0.429044,-0.19678 0.429044,-0.19678 0,0 0.427593,-0.19575 0.427593,-0.19575 0,0 0.426094,-0.1947 0.426094,-0.1947 0,0 0.424549,-0.19363 0.424549,-0.19363 0,0 0.422959,-0.19252 0.422959,-0.19252 0,0 0.42132,-0.19141 0.42132,-0.19141 0,0 0.419637,-0.19027 0.419637,-0.19027 0,0 0.417906,-0.18911 0.417906,-0.18911 0,0 0.416129,-0.18791 0.416129,-0.18791 0,0 0.414305,-0.18671 0.414305,-0.18671 0,0 0.412436,-0.18548 0.412436,-0.18548 0,0 0.410518,-0.18423 0.410518,-0.18423 0,0 0.408557,-0.18294 0.408557,-0.18294 0,0 0.406546,-0.18165 0.406546,-0.18165 0,0 0.404491,-0.18033 0.404491,-0.18033 0,0 0.402389,-0.17899 0.402389,-0.17899 0,0 0.400239,-0.17762 0.400239,-0.17762 0,0 0.398045,-0.17622 0.398045,-0.17622 0,0 0.395803,-0.17482 0.395803,-0.17482 0,0 0.393514,-0.17339 0.393514,-0.17339 0,0 0.39118,-0.17193 0.39118,-0.17193 0,0 0.388799,-0.17045 0.388799,-0.17045 0,0 0.386372,-0.16894 0.386372,-0.16894 0,0 0.383897,-0.16743 0.383897,-0.16743 0,0 0.381377,-0.16588 0.381377,-0.16588 0,0 0.37881,-0.16431 0.37881,-0.16431 0,0 0.376196,-0.16271 0.376196,-0.16271 0,0 0.373537,-0.16111 0.373537,-0.16111 0,0 0.37083,-0.15947 0.37083,-0.15947 0,0 0.368078,-0.15781 0.368078,-0.15781 0,0 0.365278,-0.15613 0.365278,-0.15613 0,0 0.362432,-0.15442 0.362432,-0.15442 0,0 0.359541,-0.1527 0.359541,-0.1527 0,0 0.356601,-0.15095 0.356601,-0.15095 0,0 0.353617,-0.14918 0.353617,-0.14918 0,0 0.350584,-0.14739 0.350584,-0.14739 0,0 0.347507,-0.14557 0.347507,-0.14557 0,0 0.344382,-0.14373 0.344382,-0.14373 0,0 0.341212,-0.14187 0.341212,-0.14187 0,0 0.337994,-0.13998 0.337994,-0.13998 0,0 0.334729,-0.13808 0.334729,-0.13808 0,0 0.33142,-0.13615 0.33142,-0.13615 0,0 0.328063,-0.13421 0.328063,-0.13421 0,0 0.324659,-0.13222 0.324659,-0.13222 0,0 0.321209,-0.13023 0.321209,-0.13023 0,0 0.317714,-0.12821 0.317714,-0.12821 0,0 0.31417,-0.12618 0.31417,-0.12618 0,0 0.310582,-0.1241 0.310582,-0.1241 0,0 0.306946,-0.12202 0.306946,-0.12202 0,0 0.303263,-0.11992 0.303263,-0.11992 0,0 0.299535,-0.11778 0.299535,-0.11778 0,0 0.29576,-0.11563 0.29576,-0.11563 0,0 0.291939,-0.11345 0.291939,-0.11345 0,0 0.288071,-0.11125 0.288071,-0.11125 0,0 0.284156,-0.10904 0.284156,-0.10904 0,0 0.280195,-0.10678 0.280195,-0.10678 0,0 0.276188,-0.10453 0.276188,-0.10453 0,0 0.272134,-0.10223 0.272134,-0.10223 0,0 0.268034,-0.0999 0.268034,-0.0999 0,0 0.263887,-0.0976 0.263887,-0.0976 0,0 0.259694,-0.0952 0.259694,-0.0952 0,0 0.255454,-0.0928 0.255454,-0.0928 0,0 0.251168,-0.0905 0.251168,-0.0905 0,0 0.246836,-0.088 0.246836,-0.088 0,0 0.242456,-0.0856 0.242456,-0.0856 0,0 0.238031,-0.0831 0.238031,-0.0831 0,0 0.233559,-0.0806 0.233559,-0.0806 0,0 0.22904,-0.0781 0.22904,-0.0781 0,0 0.224476,-0.0756 0.224476,-0.0756 0,0 0.219864,-0.073 0.219864,-0.073 0,0 0.215206,-0.0704 0.215206,-0.0704 0,0 0.210502,-0.0678 0.210502,-0.0678 0,0 0.205751,-0.0652 0.205751,-0.0652 0,0 0.200954,-0.0626 0.200954,-0.0626 0,0 0.19611,-0.0599 0.19611,-0.0599 0,0 0.19122,-0.0572 0.19122,-0.0572 0,0 0.186283,-0.0545 0.186283,-0.0545 0,0 0.1813,-0.0517 0.1813,-0.0517 0,0 0.176271,-0.049 0.176271,-0.049 0,0 0.171194,-0.0462 0.171194,-0.0462 0,0 0.166072,-0.0434 0.166072,-0.0434 0,0 0.160903,-0.0406 0.160903,-0.0406 0,0 0.155688,-0.0377 0.155688,-0.0377 0,0 0.150425,-0.0348 0.150425,-0.0348 0,0 0.145118,-0.0319 0.145118,-0.0319 0,0 0.139762,-0.029 0.139762,-0.029 0,0 0.134361,-0.0261 0.134361,-0.0261 0,0 0.128914,-0.0231 0.128914,-0.0231 0,0 0.123419,-0.0201 0.123419,-0.0201 0,0 0.117879,-0.0171 0.117879,-0.0171 0,0 0.112291,-0.0141 0.112291,-0.0141 0,0 0.106658,-0.011 0.106658,-0.011 0,0 0.100977,-0.008 0.100977,-0.008 0,0 0.09525,-0.005 0.09525,-0.005 0,0 0.08948,-0.002 0.08948,-0.002 0,0 0.0895,0.001 0.0895,0.001 0,0 0.09531,0.004 0.09531,0.004 0,0 0.101076,0.008 0.101076,0.008 0,0 0.106795,0.0106 0.106795,0.0106 0,0 0.112468,0.0137 0.112468,0.0137 0,0 0.118093,0.0167 0.118093,0.0167 0,0 0.123671,0.0197 0.123671,0.0197 0,0 0.129204,0.0226 0.129204,0.0226 0,0 0.134688,0.0256 0.134688,0.0256 0,0 0.140128,0.0285 0.140128,0.0285 0,0 0.145518,0.0314 0.145518,0.0314 0,0 0.150864,0.0343 0.150864,0.0343 0,0 0.156161,0.0372 0.156161,0.0372 0,0 0.161413,0.04 0.161413,0.04 0,0 0.166618,0.0428 0.166618,0.0428 0,0 0.171775,0.0456 0.171775,0.0456 0,0 0.176886,0.0483 0.176886,0.0483 0,0 0.181951,0.0511 0.181951,0.0511 0,0 0.186968,0.0538 0.186968,0.0538 0,0 0.191938,0.0565 0.191938,0.0565 0,0 0.196863,0.0592 0.196863,0.0592 0,0 0.20174,0.0619 0.20174,0.0619 0,0 0.20657,0.0645 0.20657,0.0645 0,0 0.211354,0.0671 0.211354,0.0671 0,0 0.216091,0.0697 0.216091,0.0697 0,0 0.220781,0.0723 0.220781,0.0723 0,0 0.225424,0.0748 0.225424,0.0748 0,0 0.230021,0.0773 0.230021,0.0773 0,0 0.234571,0.0798 0.234571,0.0798 0,0 0.239074,0.0823 0.239074,0.0823 0,0 0.24353,0.0848 0.24353,0.0848 0,0 0.247939,0.0872 0.247939,0.0872 0,0 0.252303,0.0896 0.252303,0.0896 0,0 0.256618,0.092 0.256618,0.092 0,0 0.260888,0.0944 0.260888,0.0944 0,0 0.26511,0.0967 0.26511,0.0967 0,0 0.269285,0.099 0.269285,0.099 0,0 0.273415,0.10133 0.273415,0.10133 0,0 0.277497,0.1036 0.277497,0.1036 0,0 0.281532,0.10585 0.281532,0.10585 0,0 0.285521,0.10809 0.285521,0.10809 0,0 0.289462,0.1103 0.289462,0.1103 0,0 0.293358,0.11248 0.293358,0.11248 0,0 0.297206,0.11465 0.297206,0.11465 0,0 0.301008,0.11679 0.301008,0.11679 0,0 0.304762,0.11891 0.304762,0.11891 0,0 0.30847,0.12101 0.30847,0.12101 0,0 0.312132,0.12308 0.312132,0.12308 0,0 0.315746,0.12514 0.315746,0.12514 0,0 0.319314,0.12717 0.319314,0.12717 0,0 0.322835,0.12917 0.322835,0.12917 0,0 0.326309,0.13116 0.326309,0.13116 0,0 0.329736,0.13313 0.329736,0.13313 0,0 0.333117,0.13506 0.333117,0.13506 0,0 0.336451,0.13699 0.336451,0.13699 0,0 0.339739,0.13888 0.339739,0.13888 0,0 0.342978,0.14075 0.342978,0.14075 0,0 0.346172,0.14261 0.346172,0.14261 0,0 0.349319,0.14444 0.349319,0.14444 0,0 0.352419,0.14624 0.352419,0.14624 0,0 0.355472,0.14803 0.355472,0.14803 0,0 0.358479,0.14979 0.358479,0.14979 0,0 0.361438,0.15153 0.361438,0.15153 0,0 0.364352,0.15325 0.364352,0.15325 0,0 0.367218,0.15494 0.367218,0.15494 0,0 0.370037,0.15662 0.370037,0.15662 0,0 0.37281,0.15826 0.37281,0.15826 0,0 0.375535,0.1599 0.375535,0.1599 0,0 0.378215,0.1615 0.378215,0.1615 0,0 0.380848,0.16308 0.380848,0.16308 0,0 0.383433,0.16465 0.383433,0.16465 0,0 0.385971,0.16618 0.385971,0.16618 0,0 0.388464,0.1677 0.388464,0.1677 0,0 0.39091,0.1692 0.39091,0.1692 0,0 0.393307,0.17067 0.393307,0.17067 0,0 0.39566,0.17211 0.39566,0.17211 0,0 0.397964,0.17354 0.397964,0.17354 0,0 0.400223,0.17495 0.400223,0.17495 0,0 0.402435,0.17633 0.402435,0.17633 0,0 0.404599,0.17769 0.404599,0.17769 0,0 0.406717,0.17903 0.406717,0.17903 0,0 0.408788,0.18034 0.408788,0.18034 0,0 0.410813,0.18164 0.410813,0.18164 0,0 0.41279,0.18291 0.41279,0.18291 0,0 0.414721,0.18415 0.414721,0.18415 0,0 0.416605,0.18538 0.416605,0.18538 0,0 0.418443,0.18659 0.418443,0.18659 0,0 0.420233,0.18776 0.420233,0.18776 0,0 0.421977,0.18893 0.421977,0.18893 0,0 0.423674,0.19006 0.423674,0.19006 0,0 0.425325,0.19117 0.425325,0.19117 0,0 0.426928,0.19227 0.426928,0.19227 0,0 0.428485,0.19333 0.428485,0.19333 0,0 0.429994,0.19439 0.429994,0.19439 0,0 0.431458,0.1954 0.431458,0.1954 0,0 0.432875,0.19641 0.432875,0.19641 0,0 0.434244,0.19739 0.434244,0.19739 0,0 0.435567,0.19835 0.435567,0.19835 0,0 0.436843,0.19928 0.436843,0.19928 0,0 0.438072,0.2002 0.438072,0.2002 0,0 0.439256,0.20109 0.439256,0.20109 0,0 0.440391,0.20195 0.440391,0.20195 0,0 0.44148,0.2028 0.44148,0.2028 0,0 0.442522,0.20363 0.442522,0.20363 0,0 0.443518,0.20442 0.443518,0.20442 0,0 0.444467,0.2052 0.444467,0.2052 0,0 0.445369,0.20596 0.445369,0.20596 0,0 0.446224,0.2067 0.446224,0.2067 0,0 0.447032,0.20741 0.447032,0.20741 0,0 0.447795,0.20809 0.447795,0.20809 0,0 0.448509,0.20876 0.448509,0.20876 0,0 0.449178,0.20941 0.449178,0.20941 0,0 0.449798,0.21003 0.449798,0.21003 0,0 0.450374,0.21063 0.450374,0.21063 0,0 0.450901,0.21121 0.450901,0.21121 0,0 0.451383,0.21176 0.451383,0.21176 0,0 0.451817,0.2123 0.451817,0.2123 0,0 0.452204,0.2128 0.452204,0.2128 0,0 0.452546,0.2133 0.452546,0.2133 0,0 0.452839,0.21376 0.452839,0.21376 0,0 0.453087,0.2142 0.453087,0.2142 0,0 0.453287,0.21463 0.453287,0.21463 0,0 0.453441,0.21502 0.453441,0.21502 0,0 0.453548,0.2154 0.453548,0.2154 0,0 0.453608,0.21575 0.453608,0.21575 0,0 0.453622,0.21609 0.453622,0.21609 0,0 0.453588,0.2164 0.453588,0.2164 0,0 0.453508,0.21668 0.453508,0.21668 0,0 0.453382,0.21695 0.453382,0.21695 0,0 0.453208,0.21719 0.453208,0.21719 0,0 0.452987,0.2174 0.452987,0.2174 0,0 0.45272,0.217612 0.45272,0.217612 0,0 0.452407,0.217783 0.452407,0.217783 0,0 0.452046,0.217935 0.452046,0.217935 0,0 0.451638,0.218066 0.451638,0.218066 0,0 0.451184,0.218174 0.451184,0.218174 0,0 0.450683,0.21826 0.450683,0.21826 0,0 0.450135,0.218324 0.450135,0.218324 0,0 0.449541,0.218365 0.449541,0.218365 0,0 0.4489,0.218383 0.4489,0.218383 0,0 0.448211,0.21838 0.448211,0.21838 0,0 0.447477,0.218354 0.447477,0.218354 0,0 0.446695,0.218306 0.446695,0.218306 0,0 0.445867,0.218236 0.445867,0.218236 0,0 0.444992,0.218142 0.444992,0.218142 0,0 0.44407,0.218027 0.44407,0.218027 0,0 0.443101,0.217889 0.443101,0.217889 0,0 0.442086,0.21773 0.442086,0.21773 0,0 0.441024,0.217547 0.441024,0.217547 0,0 0.439914,0.217342 0.439914,0.217342 0,0 0.438759,0.217115 0.438759,0.217115 0,0 0.437557,0.216866 0.437557,0.216866 0,0 0.436307,0.216594 0.436307,0.216594 0,0 0.435011,0.2163 0.435011,0.2163 0,0 0.433669,0.215983 0.433669,0.215983 0,0 0.4322789,0.215645 0.4322789,0.215645 0,0 0.4308426,0.215283 0.4308426,0.215283 0,0 0.4293596,0.2149 0.4293596,0.2149 0,0 0.4278298,0.214494 0.4278298,0.214494 0,0 0.4262531,0.214066 0.4262531,0.214066 0,0 0.4246298,0.213615 0.4246298,0.213615 0,0 0.4229597,0.213142 0.4229597,0.213142 0,0 0.4212427,0.212647 0.4212427,0.212647 0,0 0.4194791,0.212129 0.4194791,0.212129 0,0 0.4176686,0.211589 0.4176686,0.211589 0,0 0.4158114,0.211027 0.4158114,0.211027 0,0 0.4139075,0.210442 0.4139075,0.210442 0,0 0.4119567,0.209835 0.4119567,0.209835 0,0 0.4099592,0.209206 0.4099592,0.209206 0,0 0.407915,0.208554 0.407915,0.208554 0,0 0.4058239,0.20788 0.4058239,0.20788 0,0 0.4036861,0.207183 0.4036861,0.207183 0,0 0.4015015,0.206464 0.4015015,0.206464 0,0 0.3992702,0.205723 0.3992702,0.205723 0,0 0.3969921,0.20496 0.3969921,0.20496 0,0 0.3946672,0.204174 0.3946672,0.204174 0,0 0.3922956,0.203365 0.3922956,0.203365 0,0 0.38987717,0.202535 0.38987717,0.202535 0,0 0.38741201,0.201682 0.38741201,0.201682 0,0 0.38490007,0.200807 0.38490007,0.200807 0,0 0.38234137,0.199909 0.38234137,0.199909 0,0 0.37973589,0.198989 0.37973589,0.198989 0,0 0.37708369,0.198047 0.37708369,0.198047 0,0 0.3743846,0.197082 0.3743846,0.197082 0,0 0.3716389,0.196095 0.3716389,0.196095 0,0 0.3688464,0.195085 0.3688464,0.195085 0,0 0.366007,0.194054 0.366007,0.194054 0,0 0.363121,0.192999 0.363121,0.192999 0,0 0.3601881,0.191923 0.3601881,0.191923 0,0 0.3572085,0.190825 0.3572085,0.190825 0,0 0.3541822,0.189703 0.3541822,0.189703 0,0 0.351109,0.188559 0.351109,0.188559 0,0 0.3479892,0.187394 0.3479892,0.187394 0,0 0.3448224,0.186205 0.3448224,0.186205 0,0 0.341609,0.184995 0.341609,0.184995 0,0 0.3383489,0.183762 0.3383489,0.183762 0,0 0.3350418,0.182506 0.3350418,0.182506 0,0 0.3316881,0.181229 0.3316881,0.181229 0,0 0.3282876,0.179929 0.3282876,0.179929 0,0 0.3248404,0.178607 0.3248404,0.178607 0,0 0.3213463,0.177261 0.3213463,0.177261 0,0 0.3178055,0.175895 0.3178055,0.175895 0,0 0.3142179,0.174505 0.3142179,0.174505 0,0 0.3105836,0.173094 0.3105836,0.173094 0,0 0.3069025,0.171659 0.3069025,0.171659 0,0 0.3031746,0.170203 0.3031746,0.170203 0,0 0.2994,0.168724 0.2994,0.168724 0,0 0.2955786,0.167223 0.2955786,0.167223 0,0 0.2917104,0.1657 0.2917104,0.1657 0,0 0.287795,0.164153 0.287795,0.164153 0,0 0.283834,0.162585 0.283834,0.162585 0,0 0.279826,0.160995 0.279826,0.160995 0,0 0.27577,0.159382 0.27577,0.159382 0,0 0.271668,0.157746 0.271668,0.157746 0,0 0.267519,0.156089 0.267519,0.156089 0,0 0.263324,0.154408 0.263324,0.154408 0,0 0.259081,0.152707 0.259081,0.152707 0,0 0.254793,0.150981 0.254793,0.150981 0,0 0.250456,0.149235 0.250456,0.149235 0,0 0.246074,0.147465 0.246074,0.147465 0,0 0.241645,0.145673 0.241645,0.145673 0,0 0.237168,0.14386 0.237168,0.14386 0,0 0.232646,0.142022 0.232646,0.142022 0,0 0.228076,0.140164 0.228076,0.140164 0,0 0.223459,0.138283 0.223459,0.138283 0,0 0.218796,0.136379 0.218796,0.136379 0,0 0.214087,0.134454 0.214087,0.134454 0,0 0.209329,0.132505 0.209329,0.132505 0,0 0.204526,0.130534 0.204526,0.130534 0,0 0.199676,0.128542 0.199676,0.128542 0,0 0.194779,0.126526 0.194779,0.126526 0,0 0.189835,0.124489 0.189835,0.124489 0,0 0.184844,0.122428 0.184844,0.122428 0,0 0.179807,0.120346 0.179807,0.120346 0,0 0.174723,0.118242 0.174723,0.118242 0,0 0.169592,0.116114 0.169592,0.116114 0,0 0.164415,0.113965 0.164415,0.113965 0,0 0.15919,0.111794 0.15919,0.111794 0,0 0.153919,0.109599 0.153919,0.109599 0,0 0.148601,0.107382 0.148601,0.107382 0,0 0.143236,0.105144 0.143236,0.105144 0,0 0.137825,0.102883 0.137825,0.102883 0,0 0.132366,0.100599 0.132366,0.100599 0,0 0.126862,0.09829 0.126862,0.09829 0,0 0.12131,0.09597 0.12131,0.09597 0,0 0.115711,0.09361 0.115711,0.09361 0,0 0.110066,0.09124 0.110066,0.09124 0,0 0.104374,0.08885 0.104374,0.08885 0,0 0.09864,0.08643 0.09864,0.08643 0,0 0.09285,0.08399 0.09285,0.08399 0,0 0.08702,0.08153 0.08702,0.08153 0,0 0.08114,0.07904 0.08114,0.07904 0,0 0.07521,0.07653 0.07521,0.07653 0,0 0.06924,0.074 0.06924,0.074 0,0 0.06322,0.07145 0.06322,0.07145 0,0 0.05715,0.06888 0.05715,0.06888 0,0 0.0547,0.07084 0.0547,0.07084 0,0 0.05589,0.0773 0.05589,0.0773 0,0 0.05707,0.08372 0.05707,0.08372 0,0 0.05823,0.09008 0.05823,0.09008 0,0 0.05938,0.0964 0.05938,0.0964 0,0 0.06052,0.102661 0.06052,0.102661 0,0 0.06165,0.108875 0.06165,0.108875 0,0 0.06277,0.115039 0.06277,0.115039 0,0 0.06387,0.121152 0.06387,0.121152 0,0 0.06497,0.127215 0.06497,0.127215 0,0 0.06605,0.133227 0.06605,0.133227 0,0 0.06712,0.13919 0.06712,0.13919 0,0 0.06818,0.145102 0.06818,0.145102 0,0 0.06923,0.150962 0.06923,0.150962 0,0 0.07027,0.156774 0.07027,0.156774 0,0 0.07129,0.162534 0.07129,0.162534 0,0 0.0723,0.168245 0.0723,0.168245 0,0 0.07331,0.173904 0.07331,0.173904 0,0 0.07429,0.179513 0.07429,0.179513 0,0 0.07527,0.185073 0.07527,0.185073 0,0 0.07624,0.190581 0.07624,0.190581 0,0 0.07719,0.196039 0.07719,0.196039 0,0 0.07814,0.201447 0.07814,0.201447 0,0 0.07907,0.206804 0.07907,0.206804 0,0 0.07999,0.212112 0.07999,0.212112 0,0 0.0809,0.217367 0.0809,0.217367 0,0 0.0818,0.222574 0.0818,0.222574 0,0 0.08268,0.22773 0.08268,0.22773 0,0 0.08356,0.232835 0.08356,0.232835 0,0 0.08442,0.23789 0.08442,0.23789 0,0 0.08527,0.242895 0.08527,0.242895 0,0 0.08611,0.247849 0.08611,0.247849 0,0 0.08693,0.252752 0.08693,0.252752 0,0 0.08775,0.257606 0.08775,0.257606 0,0 0.08855,0.262409 0.08855,0.262409 0,0 0.08935,0.267162 0.08935,0.267162 0,0 0.09013,0.271864 0.09013,0.271864 0,0 0.0909,0.276515 0.0909,0.276515 0,0 0.09166,0.281117 0.09166,0.281117 0,0 0.0924,0.285668 0.0924,0.285668 0,0 0.09314,0.290168 0.09314,0.290168 0,0 0.09386,0.294619 0.09386,0.294619 0,0 0.09457,0.299018 0.09457,0.299018 0,0 0.09527,0.303368 0.09527,0.303368 0,0 0.09596,0.307667 0.09596,0.307667 0,0 0.09664,0.311916 0.09664,0.311916 0,0 0.0973,0.316113 0.0973,0.316113 0,0 0.09795,0.320262 0.09795,0.320262 0,0 0.0986,0.324359 0.0986,0.324359 0,0 0.09923,0.328406 0.09923,0.328406 0,0 0.09984,0.332402 0.09984,0.332402 0,0 0.100452,0.336349 0.100452,0.336349 0,0 0.101047,0.340245 0.101047,0.340245 0,0 0.101631,0.344089 0.101631,0.344089 0,0 0.102203,0.347885 0.102203,0.347885 0,0 0.102764,0.35163 0.102764,0.35163 0,0 0.103313,0.355324 0.103313,0.355324 0,0 0.10385,0.358968 0.10385,0.358968 0,0 0.104376,0.362561 0.104376,0.362561 0,0 0.10489,0.366104 0.10489,0.366104 0,0 0.105393,0.369597 0.105393,0.369597 0,0 0.105883,0.373039 0.105883,0.373039 0,0 0.106364,0.37643 0.106364,0.37643 0,0 0.106831,0.379773 0.106831,0.379773 0,0 0.107287,0.383063 0.107287,0.383063 0,0 0.107732,0.386304 0.107732,0.386304 0,0 0.108164,0.389494 0.108164,0.389494 0,0 0.108586,0.392634 0.108586,0.392634 0,0 0.108996,0.395723 0.108996,0.395723 0,0 0.109394,0.398763 0.109394,0.398763 0,0 0.109781,0.401751 0.109781,0.401751 0,0 0.110156,0.40469 0.110156,0.40469 0,0 0.110519,0.407577 0.110519,0.407577 0,0 0.110871,0.410415 0.110871,0.410415 0,0 0.111211,0.413201 0.111211,0.413201 0,0 0.111539,0.415939 0.111539,0.415939 0,0 0.111857,0.418625 0.111857,0.418625 0,0 0.112162,0.42126 0.112162,0.42126 0,0 0.112456,0.423846 0.112456,0.423846 0,0 0.112738,0.426381 0.112738,0.426381 0,0 0.113008,0.428866 0.113008,0.428866 0,0 0.113268,0.4313 0.113268,0.4313 0,0 0.113514,0.433684 0.113514,0.433684 0,0 0.113751,0.436018 0.113751,0.436018 0,0 0.113975,0.4383 0.113975,0.4383 0,0 0.114187,0.440533 0.114187,0.440533 0,0 0.114389,0.442716 0.114389,0.442716 0,0 0.114577,0.444847 0.114577,0.444847 0,0 0.114756,0.446929 0.114756,0.446929 0,0 0.114921,0.44896 0.114921,0.44896 0,0 0.115076,0.45094 0.115076,0.45094 0,0 0.11522,0.452871 0.11522,0.452871 0,0 0.11535,0.454751 0.11535,0.454751 0,0 0.11547,0.45658 0.11547,0.45658 0,0 0.115579,0.45836 0.115579,0.45836 0,0 0.115675,0.460088 0.115675,0.460088 0,0 0.11576,0.461766 0.11576,0.461766 0,0 0.115833,0.463395 0.115833,0.463395 0,0 0.115895,0.464971 0.115895,0.464971 0,0 0.115945,0.466499 0.115945,0.466499 0,0 0.115984,0.467976 0.115984,0.467976 0,0 0.116011,0.469402 0.116011,0.469402 0,0 0.116026,0.470778 0.116026,0.470778 0,0 0.116029,0.472103 0.116029,0.472103 0,0 0.116022,0.473379 0.116022,0.473379 0,0 0.116003,0.474603 0.116003,0.474603 0,0 0.115971,0.475777 0.115971,0.475777 0,0 0.115929,0.476902 0.115929,0.476902 0,0 0.115874,0.477975 0.115874,0.477975 0,0 0.115809,0.478998 0.115809,0.478998 0,0 0.115731,0.479971 0.115731,0.479971 0,0 0.115642,0.480893 0.115642,0.480893 0,0 0.115542,0.481765 0.115542,0.481765 0,0 0.115429,0.482587 0.115429,0.482587 0,0 0.115305,0.483357 0.115305,0.483357 0,0 0.11517,0.484079 0.11517,0.484079 0,0 0.115023,0.484749 0.115023,0.484749 0,0 0.114864,0.485369 0.114864,0.485369 0,0 0.114694,0.485938 0.114694,0.485938 0,0 0.114512,0.486457 0.114512,0.486457 0,0 0.114318,0.486927 0.114318,0.486927 0,0 0.114113,0.487344 0.114113,0.487344 0,0 0.113897,0.487713 0.113897,0.487713 0,0 0.113669,0.48803 0.113669,0.48803 0,0 0.113428,0.488297 0.113428,0.488297 0,0 0.113177,0.488514 0.113177,0.488514 0,0 0.112914,0.48868 0.112914,0.48868 0,0 0.112639,0.488797 0.112639,0.488797 0,0 0.112353,0.488862 0.112353,0.488862 0,0 0.112056,0.488877 0.112056,0.488877 0,0 0.111745,0.488842 0.111745,0.488842 0,0 0.111425,0.488756 0.111425,0.488756 0,0 0.111092,0.48862 0.111092,0.48862 0,0 0.110747,0.488434 0.110747,0.488434 0,0 0.110392,0.488197 0.110392,0.488197 0,0 0.110024,0.487909 0.110024,0.487909 0,0 0.109645,0.487573 0.109645,0.487573 0,0 0.109254,0.487184 0.109254,0.487184 0,0 0.108852,0.486745 0.108852,0.486745 0,0 0.108439,0.486257 0.108439,0.486257 0,0 0.108012,0.485718 0.108012,0.485718 0,0 0.107576,0.485128 0.107576,0.485128 0,0 0.107127,0.484488 0.107127,0.484488 0,0 0.106666,0.483797 0.106666,0.483797 0,0 0.106195,0.483057 0.106195,0.483057 0,0 0.105711,0.482266 0.105711,0.482266 0,0 0.105216,0.481424 0.105216,0.481424 0,0 0.104709,0.480532 0.104709,0.480532 0,0 0.104191,0.479589 0.104191,0.479589 0,0 0.103661,0.478597 0.103661,0.478597 0,0 0.10312,0.477554 0.10312,0.477554 0,0 0.102566,0.47646 0.102566,0.47646 0,0 0.102002,0.475316 0.102002,0.475316 0,0 0.101426,0.474122 0.101426,0.474122 0,0 0.100837,0.472877 0.100837,0.472877 0,0 0.100238,0.471581 0.100238,0.471581 0,0 0.09963,0.470236 0.09963,0.470236 0,0 0.099,0.468841 0.099,0.468841 0,0 0.09837,0.467393 0.09837,0.467393 0,0 0.09772,0.465897 0.09772,0.465897 0,0 0.09707,0.46435 0.09707,0.46435 0,0 0.0964,0.462752 0.0964,0.462752 0,0 0.09572,0.461105 0.09572,0.461105 0,0 0.09502,0.459406 0.09502,0.459406 0,0 0.09432,0.457657 0.09432,0.457657 0,0 0.0936,0.455858 0.0936,0.455858 0,0 0.09288,0.454008 0.09288,0.454008 0,0 0.09214,0.452109 0.09214,0.452109 0,0 0.09139,0.450158 0.09139,0.450158 0,0 0.09063,0.448157 0.09063,0.448157 0,0 0.08985,0.446106 0.08985,0.446106 0,0 0.08907,0.444005 0.08907,0.444005 0,0 0.08827,0.441853 0.08827,0.441853 0,0 0.08746,0.43965 0.08746,0.43965 0,0 0.08664,0.437398 0.08664,0.437398 0,0 0.08581,0.435094 0.08581,0.435094 0,0 0.08497,0.432741 0.08497,0.432741 0,0 0.08411,0.430337 0.08411,0.430337 0,0 0.08325,0.427883 0.08325,0.427883 0,0 0.08237,0.4253776 0.08237,0.4253776 0,0 0.08148,0.4228227 0.08148,0.4228227 0,0 0.08058,0.4202173 0.08058,0.4202173 0,0 0.07967,0.4175613 0.07967,0.4175613 0,0 0.07874,0.414855 0.07874,0.414855 0,0 0.0778,0.4120983 0.0778,0.4120983 0,0 0.07686,0.4092912 0.07686,0.4092912 0,0 0.0759,0.4064336 0.0759,0.4064336 0,0 0.07493,0.4035257 0.07493,0.4035257 0,0 0.07395,0.4005674 0.07395,0.4005674 0,0 0.07295,0.3975587 0.07295,0.3975587 0,0 0.07195,0.3944995 0.07195,0.3944995 0,0 0.07093,0.3913901 0.07093,0.3913901 0,0 0.0699,0.3882301 0.0699,0.3882301 0,0 0.06886,0.3850199 0.06886,0.3850199 0,0 0.06781,0.3817591 0.06781,0.3817591 0,0 0.06674,0.378448 0.06674,0.378448 0,0 0.06567,0.3750865 0.06567,0.3750865 0,0 0.06458,0.3716747 0.06458,0.3716747 0,0 0.06348,0.3682123 0.06348,0.3682123 0,0 0.06237,0.3646996 0.06237,0.3646996 0,0 0.06125,0.3611366 0.06125,0.3611366 0,0 0.06012,0.357523 0.06012,0.357523 0,0 0.05897,0.35385916 0.05897,0.35385916 0,0 0.05782,0.35014487 0.05782,0.35014487 0,0 0.05665,0.34638018 0.05665,0.34638018 0,0 0.05547,0.3425651 0.05547,0.3425651 0,0 0.05428,0.33869962 0.05428,0.33869962 0,0 0.05308,0.33478373 0.05308,0.33478373 0,0 0.05186,0.33081744 0.05186,0.33081744 0,0 0.05064,0.3268008 0.05064,0.3268008 0,0 0.0494,0.3227337 0.0494,0.3227337 0,0 0.04815,0.3186162 0.04815,0.3186162 0,0 0.04689,0.3144484 0.04689,0.3144484 0,0 0.04562,0.3102301 0.04562,0.3102301 0,0 0.04433,0.3059614 0.04433,0.3059614 0,0 0.04304,0.3016424 0.04304,0.3016424 0,0 0.04173,0.2972729 0.04173,0.2972729 0,0 0.04041,0.292853 0.04041,0.292853 0,0 0.03908,0.2883828 0.03908,0.2883828 0,0 0.03774,0.2838622 0.03774,0.2838622 0,0 0.03638,0.279291 0.03638,0.279291 0,0 0.03502,0.2746697 0.03502,0.2746697 0,0 0.03364,0.2699977 0.03364,0.2699977 0,0 0.03225,0.2652755 0.03225,0.2652755 0,0 0.03085,0.2605029 0.03085,0.2605029 0,0 0.02944,0.2556798 0.02944,0.2556798 0,0 0.02802,0.2508064 0.02802,0.2508064 0,0 0.02658,0.2458826 0.02658,0.2458826 0,0 0.02514,0.2409083 0.02514,0.2409083 0,0 0.02368,0.2358837 0.02368,0.2358837 0,0 0.02221,0.2308086 0.02221,0.2308086 0,0 0.02073,0.2256832 0.02073,0.2256832 0,0 0.01924,0.2205074 0.01924,0.2205074 0,0 0.01773,0.2152811 0.01773,0.2152811 0,0 0.01622,0.2100045 0.01622,0.2100045 0,0 0.01469,0.2046775 0.01469,0.2046775 0,0 0.01315,0.1993001 0.01315,0.1993001 0,0 0.0116,0.1938722 0.0116,0.1938722 0,0 0.01004,0.188394 0.01004,0.188394 0,0 0.0085,0.1828655 0.0085,0.1828655 0,0 0.0069,0.1772863 0.0069,0.1772863 0,0 0.0053,0.171657 0.0053,0.171657 0,0 0.0037,0.1659772 0.0037,0.1659772 0,0 0.002,0.160247 0.002,0.160247 0,0 4.17e-4,0.1544663 4.17e-4,0.1544663 0,0 -0.0012,0.1486353 -0.0012,0.1486353 0,0 -0.0029,0.142754 -0.0029,0.142754 0,0 -0.0045,0.136822 -0.0045,0.136822 0,0 -0.0062,0.13084 -0.0062,0.13084 0,0 -0.0079,0.124807 -0.0079,0.124807 0,0 -0.0096,0.118725 -0.0096,0.118725 0,0 -0.01133,0.112591 -0.01133,0.112591 0,0 -0.01306,0.106407 -0.01306,0.106407 0,0 -0.01479,0.100173 -0.01479,0.100173 0,0 -0.01654,0.09389 -0.01654,0.09389 0,0 -0.0183,0.08755 -0.0183,0.08755 0,0 -0.02136,0.08687 -0.02136,0.08687 0,0 -0.0257,0.09185 -0.0257,0.09185 0,0 -0.03,0.09678 -0.03,0.09678 0,0 -0.03427,0.101675 -0.03427,0.101675 0,0 -0.0385,0.106529 -0.0385,0.106529 0,0 -0.04271,0.111342 -0.04271,0.111342 0,0 -0.04688,0.116115 -0.04688,0.116115 0,0 -0.05102,0.120846 -0.05102,0.120846 0,0 -0.05513,0.125537 -0.05513,0.125537 0,0 -0.0592,0.130189 -0.0592,0.130189 0,0 -0.06324,0.134798 -0.06324,0.134798 0,0 -0.06725,0.139367 -0.06725,0.139367 0,0 -0.07123,0.143897 -0.07123,0.143897 0,0 -0.07518,0.148384 -0.07518,0.148384 0,0 -0.07909,0.152832 -0.07909,0.152832 0,0 -0.08297,0.157239 -0.08297,0.157239 0,0 -0.08682,0.161605 -0.08682,0.161605 0,0 -0.09064,0.165931 -0.09064,0.165931 0,0 -0.09442,0.170216 -0.09442,0.170216 0,0 -0.09818,0.174461 -0.09818,0.174461 0,0 -0.101894,0.178664 -0.101894,0.178664 0,0 -0.105581,0.182827 -0.105581,0.182827 0,0 -0.109236,0.18695 -0.109236,0.18695 0,0 -0.112859,0.191032 -0.112859,0.191032 0,0 -0.11645,0.195074 -0.11645,0.195074 0,0 -0.120007,0.199074 -0.120007,0.199074 0,0 -0.123533,0.203034 -0.123533,0.203034 0,0 -0.127027,0.206954 -0.127027,0.206954 0,0 -0.130488,0.210833 -0.130488,0.210833 0,0 -0.133916,0.214671 -0.133916,0.214671 0,0 -0.137313,0.218468 -0.137313,0.218468 0,0 -0.140677,0.222226 -0.140677,0.222226 0,0 -0.144009,0.225942 -0.144009,0.225942 0,0 -0.147308,0.229618 -0.147308,0.229618 0,0 -0.150576,0.233253 -0.150576,0.233253 0,0 -0.153811,0.236847 -0.153811,0.236847 0,0 -0.157013,0.240402 -0.157013,0.240402 0,0 -0.160183,0.243915 -0.160183,0.243915 0,0 -0.163321,0.247388 -0.163321,0.247388 0,0 -0.166427,0.250819 -0.166427,0.250819 0,0 -0.169501,0.254212 -0.169501,0.254212 0,0 -0.172541,0.257562 -0.172541,0.257562 0,0 -0.17555,0.260872 -0.17555,0.260872 0,0 -0.178526,0.264142 -0.178526,0.264142 0,0 -0.181471,0.267371 -0.181471,0.267371 0,0 -0.184382,0.27056 -0.184382,0.27056 0,0 -0.187262,0.273707 -0.187262,0.273707 0,0 -0.190109,0.276814 -0.190109,0.276814 0,0 -0.192923,0.279881 -0.192923,0.279881 0,0 -0.195706,0.282907 -0.195706,0.282907 0,0 -0.198456,0.285892 -0.198456,0.285892 0,0 -0.201174,0.288837 -0.201174,0.288837 0,0 -0.20386,0.291741 -0.20386,0.291741 0,0 -0.206513,0.294604 -0.206513,0.294604 0,0 -0.209134,0.297428 -0.209134,0.297428 0,0 -0.211722,0.300209 -0.211722,0.300209 0,0 -0.214279,0.302951 -0.214279,0.302951 0,0 -0.216802,0.305652 -0.216802,0.305652 0,0 -0.219295,0.308313 -0.219295,0.308313 0,0 -0.221753,0.310932 -0.221753,0.310932 0,0 -0.224181,0.313512 -0.224181,0.313512 0,0 -0.226575,0.31605 -0.226575,0.31605 0,0 -0.228938,0.318547 -0.228938,0.318547 0,0 -0.231268,0.321006 -0.231268,0.321006 0,0 -0.233565,0.323421 -0.233565,0.323421 0,0 -0.235831,0.325798 -0.235831,0.325798 0,0 -0.238065,0.328134 -0.238065,0.328134 0,0 -0.240265,0.330428 -0.240265,0.330428 0,0 -0.242433,0.332682 -0.242433,0.332682 0,0 -0.24457,0.334896 -0.24457,0.334896 0,0 -0.246673,0.337069 -0.246673,0.337069 0,0 -0.248746,0.339202 -0.248746,0.339202 0,0 -0.250784,0.341293 -0.250784,0.341293 0,0 -0.252791,0.343344 -0.252791,0.343344 0,0 -0.254766,0.345354 -0.254766,0.345354 0,0 -0.256708,0.347325 -0.256708,0.347325 0,0 -0.258619,0.349254 -0.258619,0.349254 0,0 -0.260496,0.351142 -0.260496,0.351142 0,0 -0.262341,0.352991 -0.262341,0.352991 0,0 -0.264154,0.354798 -0.264154,0.354798 0,0 -0.265935,0.356565 -0.265935,0.356565 0,0 -0.267684,0.358291 -0.267684,0.358291 0,0 -0.269399,0.359976 -0.269399,0.359976 0,0 -0.271083,0.361622 -0.271083,0.361622 0,0 -0.272735,0.363226 -0.272735,0.363226 0,0 -0.274354,0.364789 -0.274354,0.364789 0,0 -0.275941,0.366313 -0.275941,0.366313 0,0 -0.277495,0.367795 -0.277495,0.367795 0,0 -0.279018,0.369237 -0.279018,0.369237 0,0 -0.280507,0.370638 -0.280507,0.370638 0,0 -0.281965,0.371999 -0.281965,0.371999 0,0 -0.28339,0.373319 -0.28339,0.373319 0,0 -0.284784,0.374598 -0.284784,0.374598 0,0 -0.286143,0.375837 -0.286143,0.375837 0,0 -0.287473,0.377036 -0.287473,0.377036 0,0 -0.288768,0.378193 -0.288768,0.378193 0,0 -0.290032,0.379309 -0.290032,0.379309 0,0 -0.291263,0.380386 -0.291263,0.380386 0,0 -0.292462,0.381422 -0.292462,0.381422 0,0 -0.293629,0.382417 -0.293629,0.382417 0,0 -0.294764,0.383371 -0.294764,0.383371 0,0 -0.295865,0.384285 -0.295865,0.384285 0,0 -0.296936,0.385159 -0.296936,0.385159 0,0 -0.297972,0.385991 -0.297972,0.385991 0,0 -0.298978,0.386783 -0.298978,0.386783 0,0 -0.299951,0.387534 -0.299951,0.387534 0,0 -0.300892,0.388245 -0.300892,0.388245 0,0 -0.301799,0.388916 -0.301799,0.388916 0,0 -0.302676,0.389545 -0.302676,0.389545 0,0 -0.303519,0.390133 -0.303519,0.390133 0,0 -0.304331,0.390682 -0.304331,0.390682 0,0 -0.305109,0.39119 -0.305109,0.39119 0,0 -0.305856,0.391657 -0.305856,0.391657 0,0 -0.30657,0.392083 -0.30657,0.392083 0,0 -0.307253,0.392469 -0.307253,0.392469 0,0 -0.307902,0.392814 -0.307902,0.392814 0,0 -0.30852,0.393119 -0.30852,0.393119 0,0 -0.309104,0.393383 -0.309104,0.393383 0,0 -0.309658,0.393606 -0.309658,0.393606 0,0 -0.310177,0.393789 -0.310177,0.393789 0,0 -0.310666,0.393931 -0.310666,0.393931 0,0 -0.311122,0.394033 -0.311122,0.394033 0,0 -0.311545,0.394093 -0.311545,0.394093 0,0 -0.311937,0.394114 -0.311937,0.394114 0,0 -0.312295,0.394093 -0.312295,0.394093 0,0 -0.312622,0.394033 -0.312622,0.394033 0,0 -0.312916,0.39393 -0.312916,0.39393 0,0 -0.313178,0.393789 -0.313178,0.393789 0,0 -0.313408,0.393606 -0.313408,0.393606 0,0 -0.313605,0.393382 -0.313605,0.393382 0,0 -0.31377,0.393119 -0.31377,0.393119 0,0 -0.313903,0.392813 -0.313903,0.392813 0,0 -0.314003,0.392469 -0.314003,0.392469 0,0 -0.314071,0.392082 -0.314071,0.392082 0,0 -0.3141063,0.391656 -0.3141063,0.391656 0,0 -0.3141102,0.391189 -0.3141102,0.391189 0,0 -0.3140812,0.390681 -0.3140812,0.390681 0,0 -0.3140201,0.390133 -0.3140201,0.390133 0,0 -0.3139265,0.389543 -0.3139265,0.389543 0,0 -0.3138007,0.388915 -0.3138007,0.388915 0,0 -0.3136425,0.388244 -0.3136425,0.388244 0,0 -0.313452,0.387533 -0.313452,0.387533 0,0 -0.3132292,0.386781 -0.3132292,0.386781 0,0 -0.3129741,0.38599 -0.3129741,0.38599 0,0 -0.3126867,0.385157 -0.3126867,0.385157 0,0 -0.312367,0.384283 -0.312367,0.384283 0,0 -0.3120149,0.38337 -0.3120149,0.38337 0,0 -0.3116305,0.382415 -0.3116305,0.382415 0,0 -0.3112139,0.38142 -0.3112139,0.38142 0,0 -0.3107648,0.380384 -0.3107648,0.380384 0,0 -0.3102836,0.379308 -0.3102836,0.379308 0,0 -0.3097699,0.378191 -0.3097699,0.378191 0,0 -0.3092239,0.377033 -0.3092239,0.377033 0,0 -0.3086458,0.375835 -0.3086458,0.375835 0,0 -0.3080351,0.374596 -0.3080351,0.374596 0,0 -0.3073923,0.373317 -0.3073923,0.373317 0,0 -0.306717,0.371996 -0.306717,0.371996 0,0 -0.3060096,0.370636 -0.3060096,0.370636 0,0 -0.3052697,0.369235 -0.3052697,0.369235 0,0 -0.3044975,0.367792 -0.3044975,0.367792 0,0 -0.3036931,0.36631 -0.3036931,0.36631 0,0 -0.3028563,0.364787 -0.3028563,0.364787 0,0 -0.3019873,0.363223 -0.3019873,0.363223 0,0 -0.3010858,0.361619 -0.3010858,0.361619 0,0 -0.30015211,0.359974 -0.30015211,0.359974 0,0 -0.29918607,0.358288 -0.29918607,0.358288 0,0 -0.29818772,0.356561 -0.29818772,0.356561 0,0 -0.29715706,0.354795 -0.29715706,0.354795 0,0 -0.29609407,0.352987 -0.29609407,0.352987 0,0 -0.29499878,0.35114 -0.29499878,0.35114 0,0 -0.29387119,0.34925 -0.29387119,0.34925 0,0 -0.2927112,0.347321 -0.2927112,0.347321 0,0 -0.291519,0.345351 -0.291519,0.345351 0,0 -0.2902945,0.343341 -0.2902945,0.343341 0,0 -0.2890376,0.341289 -0.2890376,0.341289 0,0 -0.2877484,0.339198 -0.2877484,0.339198 0,0 -0.2864269,0.337065 -0.2864269,0.337065 0,0 -0.2850731,0.334892 -0.2850731,0.334892 0,0 -0.2836869,0.332679 -0.2836869,0.332679 0,0 -0.2822685,0.330424 -0.2822685,0.330424 0,0 -0.2808178,0.328129 -0.2808178,0.328129 0,0 -0.2793347,0.325794 -0.2793347,0.325794 0,0 -0.2778193,0.323418 -0.2778193,0.323418 0,0 -0.2762715,0.321 -0.2762715,0.321 0,0 -0.2746916,0.318544 -0.2746916,0.318544 0,0 -0.2730793,0.316045 -0.2730793,0.316045 0,0 -0.2714346,0.313507 -0.2714346,0.313507 0,0 -0.2697576,0.310928 -0.2697576,0.310928 0,0 -0.2680483,0.308308 -0.2680483,0.308308 0,0 -0.2663068,0.305647 -0.2663068,0.305647 0,0 -0.2645329,0.302947 -0.2645329,0.302947 0,0 -0.2627266,0.300204 -0.2627266,0.300204 0,0 -0.2608881,0.297423 -0.2608881,0.297423 0,0 -0.2590172,0.294599 -0.2590172,0.294599 0,0 -0.2571141,0.291736 -0.2571141,0.291736 0,0 -0.2551786,0.288832 -0.2551786,0.288832 0,0 -0.2532108,0.285887 -0.2532108,0.285887 0,0 -0.2512107,0.282901 -0.2512107,0.282901 0,0 -0.2491782,0.279876 -0.2491782,0.279876 0,0 -0.2471136,0.276809 -0.2471136,0.276809 0,0 -0.2450164,0.273701 -0.2450164,0.273701 0,0 -0.2428871,0.270554 -0.2428871,0.270554 0,0 -0.2407254,0.267366 -0.2407254,0.267366 0,0 -0.2385312,0.264136 -0.2385312,0.264136 0,0 -0.236305,0.260866 -0.236305,0.260866 0,0 -0.234047,0.257557 -0.234047,0.257557 0,0 -0.231755,0.254205 -0.231755,0.254205 0,0 -0.229433,0.250814 -0.229433,0.250814 0,0 -0.227076,0.247381 -0.227076,0.247381 0,0 -0.224689,0.243909 -0.224689,0.243909 0,0 -0.222269,0.240395 -0.222269,0.240395 0,0 -0.219816,0.236842 -0.219816,0.236842 0,0 -0.217331,0.233247 -0.217331,0.233247 0,0 -0.214814,0.229611 -0.214814,0.229611 0,0 -0.212265,0.225935 -0.212265,0.225935 0,0 -0.209683,0.22222 -0.209683,0.22222 0,0 -0.207068,0.218461 -0.207068,0.218461 0,0 -0.204423,0.214665 -0.204423,0.214665 0,0 -0.201743,0.210826 -0.201743,0.210826 0,0 -0.199033,0.206946 -0.199033,0.206946 0,0 -0.196289,0.203028 -0.196289,0.203028 0,0 -0.193514,0.199067 -0.193514,0.199067 0,0 -0.190705,0.195066 -0.190705,0.195066 0,0 -0.187866,0.191025 -0.187866,0.191025 0,0 -0.184992,0.186943 -0.184992,0.186943 0,0 -0.182088,0.18282 -0.182088,0.18282 0,0 -0.17915,0.178657 -0.17915,0.178657 0,0 -0.176181,0.174453 -0.176181,0.174453 0,0 -0.173179,0.170208 -0.173179,0.170208 0,0 -0.170145,0.165924 -0.170145,0.165924 0,0 -0.167079,0.161597 -0.167079,0.161597 0,0 -0.163979,0.157231 -0.163979,0.157231 0,0 -0.160849,0.152825 -0.160849,0.152825 0,0 -0.157685,0.148376 -0.157685,0.148376 0,0 -0.154489,0.143889 -0.154489,0.143889 0,0 -0.151261,0.139359 -0.151261,0.139359 0,0 -0.148001,0.13479 -0.148001,0.13479 0,0 -0.144708,0.13018 -0.144708,0.13018 0,0 -0.141383,0.12553 -0.141383,0.12553 0,0 -0.138026,0.120838 -0.138026,0.120838 0,0 -0.134636,0.116106 -0.134636,0.116106 0,0 -0.131214,0.111333 -0.131214,0.111333 0,0 -0.12776,0.106521 -0.12776,0.106521 0,0 -0.124273,0.101666 -0.124273,0.101666 0,0 -0.120754,0.09677 -0.120754,0.09677 0,0 -0.117203,0.09184 -0.117203,0.09184 0,0 -0.11362,0.08686 -0.11362,0.08686 0,0 -0.110003,0.08185 -0.110003,0.08185 0,0 -0.106356,0.07679 -0.106356,0.07679 0,0 -0.102675,0.07169 -0.102675,0.07169 0,0 -0.09896,0.06655 -0.09896,0.06655 0,0 -0.09522,0.06137 -0.09522,0.06137 0,0 -0.09144,0.05616 -0.09144,0.05616 0,0 -0.08763,0.05089 -0.08763,0.05089 0,0 -0.08379,0.04559 -0.08379,0.04559 z" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1276"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1276" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1277"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1277" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1278"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1278" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1279"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1279" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1280"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1280" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1281"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1281" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1282"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1282" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1283"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1283" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1284"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1284" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1285"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1285" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1286"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1286" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1287"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1287" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1288"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1288" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1289"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1289" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1290"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1290" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1291"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1291" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1292"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1292" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1293"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1293" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1294"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1294" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1295"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1295" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1296"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1296" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1297"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1297" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1298"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1298" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1299"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1299" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1300"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1300" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1301"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1301" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1303"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1303" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1306"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1306" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1307"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1307" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1308"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1308" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1309"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1309" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1310"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1310" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1311"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1311" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1312"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1312" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1313"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1313" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1314"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1314" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1315"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1315" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1316"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1316" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1317"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1317" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1318"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1318" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1319"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1319" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1320"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1320" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1321"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1321" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1322"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1322" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1323"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1323" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1324"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1324" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1325"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1325" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1326"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1326" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1327"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1327" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1328"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1328" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1329"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1329" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1330"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1330" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1331"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1331" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1332"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1332" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1333"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1333" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1334"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1334" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1335"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1335" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1336"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1336" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1337"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1337" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1338"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1338" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1339"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1339" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1340"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1340" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1341"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1341" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1342"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1342" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1343"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1343" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1344"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1344" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1345"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1345" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1346"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1346" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1347"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1347" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1348"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1348" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1349"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1349" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1350"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1350" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1351"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1351" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1352"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1352" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1353"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1353" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1354"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1354" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1355"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1355" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1356"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1356" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1357"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1357" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1358"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1358" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1359"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1359" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1362"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1362" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1363"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1363" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1364"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1364" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1365"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1365" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1366"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1366" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1367"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1367" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1368"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1368" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1369"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1369" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1370"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1370" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1371"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1371" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1372"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1372" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(103.99514,0,0,-102.35936,5740.6148,-7310.8116)" /></clipPath><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient313" - id="linearGradient314" - x1="105.00247" - y1="235.63889" - x2="105.00247" - y2="25.638" - gradientUnits="userSpaceOnUse" - gradientTransform="matrix(1.0003925,0,0,0.65287437,0.02349806,0.01035141)" /><linearGradient - id="linearGradient313" - inkscape:collect="always"><stop - style="stop-color:#3418ff;stop-opacity:1;" - offset="0" - id="stop313" /><stop - style="stop-color:#000000;stop-opacity:1;" - offset="0.92378908" - id="stop314" /></linearGradient><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1382-2"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1382-6" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1380-2"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1380-3" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(426.1216,0,0,-419.41964,60393.545,-19760.095)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1380-3-7"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1380-4-5" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(426.1216,0,0,-419.41964,60393.545,-19760.095)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1379-9"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1379-2" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(664.33371,0,0,-653.87936,88729.379,-38588.497)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1379-1-2"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1379-1-89" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(664.33371,0,0,-653.87936,88729.379,-38588.497)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1379-1-5-7"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1379-1-8-3" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(664.33371,0,0,-653.87936,88729.379,-38588.497)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1379-1-5-0-6"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1379-1-8-1-1" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(664.33371,0,0,-653.87936,88729.379,-38588.497)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1378-2"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1378-9" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,79609.296,-56626.814)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1377-3"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1377-1" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(280.95849,0,0,-276.53854,37057.419,-20413.175)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1376-9"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1376-4" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(1313.0988,0,0,-1292.4385,155795.37,-83760.107)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-7"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-8" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-4"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-5" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-61"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-0" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-9-6"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-7-3" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-9-2"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-3-0" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-9"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-0" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-6"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-9" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-5"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-6" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-3"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-2" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-4"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-8" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-0"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-28" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-50"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-29" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-2"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-88" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-04"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-1" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-91"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-5" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-8"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-25" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-7"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-7" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-96"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-07" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-78"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-86" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient96" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" - gradientUnits="userSpaceOnUse" /><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-1"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-7" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-6"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-6" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-5"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-64" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-4"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-1" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-7"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-0" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-0"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-2" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-8"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-04" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-76"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-3" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-2"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-74" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-3"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-8" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-16"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-9" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-60"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-649" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-09"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-040" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-165"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-78" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-56"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-5" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-10"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-58" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-80"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-37" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-84"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-88" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-57"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-4" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-9"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-81" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-45"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-91" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-91"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-34" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-103"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-00" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-61"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-72" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-36"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-40" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-31"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-005" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-91-3"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-5-3" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-91-5"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-5-6" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-91-9"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-5-9" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-7-6-75-0-72-96-91-0"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-6-6-7-8-29-09-5-7" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-36-6"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-40-3" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-36-6-4"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-40-3-4" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-36-6-5"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-40-3-5" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1375-4-0-0-36-6-1"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1375-5-9-3-40-3-9" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath1380-2-1"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path1380-3-4" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" - inkscape:transform-center-x="-0.033289879" - inkscape:transform-center-y="-4.3364857" - transform="matrix(426.1216,0,0,-419.41964,60393.545,-19760.095)" /></clipPath><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient116" - id="linearGradient117" - x1="72.351578" - y1="82.037689" - x2="72.351578" - y2="103.22458" - gradientUnits="userSpaceOnUse" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient118" - id="linearGradient119" - x1="92.533859" - y1="83.280731" - x2="92.533859" - y2="100.01224" - gradientUnits="userSpaceOnUse" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient1" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient2" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient3" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient4" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient5" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient6" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient7" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient8" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient9" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient10" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient11" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient12" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient13" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient14" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient15" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient16" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient17" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient18" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient19" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient20" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient21" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient22" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient23" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient24" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient25" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient26" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient27" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient28" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient29" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient30" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient31" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient32" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient33" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient34" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient35" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient36" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient37" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient38" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient39" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient40" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient41" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient42" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient43" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient44" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient45" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient46" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient47" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient48" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient49" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient50" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><linearGradient - inkscape:collect="always" - xlink:href="#linearGradient95" - id="linearGradient51" - gradientUnits="userSpaceOnUse" - x1="121.21132" - y1="86.880913" - x2="49.111881" - y2="143.21117" /><clipPath - clipPathUnits="userSpaceOnUse" - id="clipPath2867"><path - sodipodi:type="star" - style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" - id="path2867" - inkscape:flatsided="true" - sodipodi:sides="7" - sodipodi:cx="-64.822914" - sodipodi:cy="-12.170833" - sodipodi:r1="106.38389" - sodipodi:r2="95.848572" - sodipodi:arg1="1.1204961" - sodipodi:arg2="1.569295" - inkscape:rounded="0.08" - inkscape:randomized="0.001" - inkscape:transform-center-x="-0.033052427" - inkscape:transform-center-y="-4.3365328" - transform="matrix(0.93007027,0,0,0.82869014,170.65234,98.638253)" - d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" /></clipPath></defs><g - inkscape:groupmode="layer" - id="layer5" - inkscape:label="Background" - style="display:inline" - transform="translate(-6.7520832,-1.5246326)"><rect - style="display:inline;fill:url(#linearGradient314);stroke:none;stroke-width:0.547306;stroke-dasharray:none;stroke-opacity:0.529447" - id="rect228-8" - width="210.0833" - height="170.58136" - x="0.025514213" - y="0.010165247" - clip-path="url(#clipPath1382-2)" - transform="translate(-5.6894524,1.1264046)" - inkscape:export-filename="1-33-logo-hires.png" - inkscape:export-xdpi="300" - inkscape:export-ydpi="300" /><text - xml:space="preserve" - style="font-size:1.41111px;text-align:start;letter-spacing:0.0873125px;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:1.8;stroke-dasharray:none;stroke-opacity:1" - x="78.97776" - y="45.729488" - id="text86"><tspan - sodipodi:role="line" - id="tspan86" - style="stroke-width:1.8" - x="78.97776" - y="45.729488">Errol</tspan></text></g><g - inkscape:groupmode="layer" - id="layer9" - inkscape:label="City Fill" - style="display:none;stroke:#000000;stroke-opacity:1" - transform="translate(-6.7520832,-1.5246326)"><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 465.27626,591.14127 v -41.36575 h 15.44455 15.44454 l 0.46336,13.25825 c 0.25485,7.29204 0.46426,25.90663 0.46536,41.36575 l 0.002,28.10749 h -15.90991 -15.9099 z" - id="path324" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 465.39411,549.07836 c 0.12964,-0.38344 3.09949,-6.26358 6.59966,-13.06698 l 6.36397,-12.36982 5.38167,-0.0145 5.38168,-0.0145 2.48118,5.48008 c 2.60742,5.75888 3.71034,9.88204 4.44496,16.61701 l 0.44349,4.06586 h -15.66616 c -9.98312,0 -15.58065,-0.2529 -15.43045,-0.69716 z" - id="path325" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 500.94531,630.91602 c -0.30708,-0.87504 -0.68313,-17.89864 -0.83566,-37.83021 l -0.27733,-36.23922 h 17.01665 17.01665 v 37.36626 37.36626 l -10.71903,0.46395 c -5.89547,0.25517 -13.17691,0.46395 -16.18099,0.46395 -5.02741,0 -5.50637,-0.12658 -6.02029,-1.59099 z" - id="path326" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 502.96071,539.25561 c -2.59019,-1.64797 -5.3422,-6.15047 -9.3452,-15.28949 -4.10458,-9.37092 -4.17502,-9.91094 -1.4182,-10.87197 1.36169,-0.47469 7.39703,-0.79529 14.97144,-0.79529 14.40746,0 15.523,0.31723 18.26371,5.19366 0.8798,1.5654 3.08104,7.04861 4.89165,12.18491 l 3.29202,9.33874 -2.88046,0.42458 c -1.58425,0.23351 -7.97163,0.61193 -14.19417,0.84091 -10.57216,0.38906 -11.4623,0.32181 -13.58079,-1.02605 z" - id="path327" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 429.62879,521.31447 c -0.56752,-0.87504 -1.1317,-2.85845 -1.25374,-4.40756 l -0.2219,-2.81658 3.53554,-0.9816 c 2.40545,-0.66784 9.35732,-1.09182 21.74943,-1.32644 20.99241,-0.39746 18.53652,0.79927 19.2554,-9.38292 0.23339,-3.30573 0.61017,-7.52185 0.83728,-9.36917 l 0.41294,-3.35876 h 5.12474 5.12473 l 1.45533,5.79501 1.45532,5.795 -5.3389,9.93812 c -2.93639,5.46597 -5.65918,10.33587 -6.05063,10.82201 -0.54207,0.67318 -5.99693,0.88388 -22.88272,0.88388 h -22.17098 z" - id="path328" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 430.59339,503.6368 c -0.43793,-1.65286 -1.85571,-6.82358 -3.15062,-11.49048 -1.29491,-4.66691 -2.6733,-9.67853 -3.06309,-11.13693 l -0.70872,-2.65165 h 16.42681 16.4268 l 3.75396,13.24571 c 2.06467,7.28515 3.90875,13.64911 4.09794,14.14214 0.27176,0.70819 -3.15533,0.89642 -16.32142,0.89642 h -16.66541 z" - id="path329" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 459.5108,476.41319 c -2.54766,-6.30767 -5.08735,-10.78205 -6.73144,-11.8593 -1.35265,-0.88629 -4.03697,-1.35406 -9.60009,-1.67291 -6.32419,-0.36248 -7.89287,-0.67572 -8.66379,-1.73001 -1.31556,-1.79914 -2.0042,-7.64782 -1.43597,-12.19578 l 0.47871,-3.83147 h 21.54791 21.54792 l -0.36064,2.29809 c -0.19836,1.26396 -1.3798,8.74161 -2.62543,16.61701 l -2.26479,14.31892 h -5.5535 c -5.39656,0 -5.57569,-0.055 -6.33889,-1.94455 z" - id="path330" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 486.20522,484.19137 c -0.50285,-1.63949 -5.37261,-24.88527 -5.37261,-25.64617 0,-0.3259 0.50002,-1.09257 1.11117,-1.70371 0.91634,-0.91635 3.06923,-1.11117 12.27901,-1.11117 13.51351,0 14.06968,0.26128 16.26792,7.64256 1.95104,6.55124 3.82841,18.12522 3.28877,20.27531 l -0.4469,1.78061 h -13.37391 c -12.12106,0 -13.40946,-0.11592 -13.75345,-1.23743 z" - id="path331" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 473.76734,488.43401 c 0.009,-1.91786 1.36093,-13.77397 1.77387,-15.55635 0.25632,-1.10636 0.88627,-1.59099 2.06805,-1.59099 1.86534,0 1.96702,0.22469 4.63986,10.25305 0.82924,3.11127 1.6667,6.2137 1.86102,6.89429 0.31424,1.10062 -0.23832,1.23743 -4.99765,1.23743 -4.62695,0 -5.35016,-0.16743 -5.34515,-1.23743 z" - id="path332" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 490.29415,491.85669 c -1.73194,-1.0561 -3.80469,-4.42281 -3.80469,-6.17985 0,-0.13642 6.04577,-0.24804 13.43503,-0.24804 14.66226,0 14.89418,0.0756 11.90209,3.87942 -2.33224,2.96497 -5.3923,3.89908 -12.76326,3.89611 -5.20311,-0.002 -7.02061,-0.2814 -8.76917,-1.34764 z" - id="path333" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 261.98306,635.70546 c -13.02832,-3.04474 -13.77864,-3.85686 -8.25551,-8.93538 3.79905,-3.49324 4.44911,-5.06451 2.53778,-6.13415 -0.90524,-0.50659 -2.18778,-5.42477 -3.10719,-11.9152 -0.008,-0.054 0.54293,-0.054 1.22352,0 0.89321,0.0709 1.28354,-0.49189 1.40317,-2.02311 0.0911,-1.16673 0.53473,-5.9397 0.98574,-10.60661 1.41178,-14.60889 1.32366,-15.00776 -5.30485,-24.01085 l -3.62157,-4.91896 -0.44828,2.09054 c -0.24656,1.1498 -0.4869,7.659 -0.5341,14.46491 -0.12706,18.31903 -0.93204,36.84036 -1.59135,36.61432 -0.3182,-0.10907 -0.76031,-13.37277 -0.98249,-29.47487 -0.38122,-27.62782 -0.4817,-29.37537 -1.78425,-31.03128 -0.75915,-0.96511 -1.38027,-2.08008 -1.38027,-2.47773 0,-0.73898 24.91608,-0.22134 32.17336,0.66842 3.79513,0.46529 3.85141,-0.26944 0.12603,-1.64546 -2.11548,-0.78138 -1.96998,-0.83324 2.47959,-0.88388 2.59982,-0.0296 5.52651,-0.35779 6.50377,-0.72934 1.99555,-0.75871 7.50762,-5.51469 7.50762,-6.4778 0,-0.34366 -1.10643,-0.62483 -2.45873,-0.62483 -1.35231,0 -4.57217,-0.7955 -7.15526,-1.76777 -5.55631,-2.09139 -7.22926,-2.19585 -8.49357,-0.53033 -1.52321,2.00659 -1.14067,2.48482 1.57943,1.97453 2.48539,-0.46627 2.5497,-0.42497 2.10396,1.35104 -0.60447,2.4084 0.60249,2.83707 5.57568,1.98025 4.58717,-0.79031 5.2411,0.0238 0.89354,1.11244 -2.88227,0.72172 -9.34493,1.32631 -31.58776,2.95507 -10.5506,0.77257 -11.32821,0.63378 -11.35815,-2.0274 -0.008,-0.71799 0.61803,-0.8446 2.46404,-0.49829 l 2.47488,0.46429 v -16.2955 -16.29549 l -1.59099,0.0392 c -0.87505,0.0216 -4.61387,0.43356 -8.30851,0.91555 -6.28726,0.82022 -12.11935,0.59662 -13.22294,-0.50696 -1.21191,-1.21192 2.08649,-2.72648 7.29453,-3.3495 8.88604,-1.06301 10.87816,-2.32541 10.87816,-6.89347 0,-5.83671 -2.0944,-6.67577 -17.58775,-7.04601 l -12.28444,-0.29357 0.30047,13.34035 c 0.21968,9.75376 0.57829,13.91067 1.33381,15.46167 2.46844,5.06733 4.22486,0.83682 4.80582,-11.57526 l 0.45112,-9.63795 1.28828,8.3593 c 1.60932,10.44243 1.20877,14.84784 -2.43544,26.78603 -1.50806,4.94031 -2.74193,9.31553 -2.74193,9.72272 0,1.03402 13.84649,0.88412 16.94608,-0.18345 3.19034,-1.09883 5.22217,-4.2156 7.39832,-11.34884 0.96624,-3.16722 2.23787,-6.39499 2.82585,-7.17281 1.04381,-1.38083 1.06958,-1.37124 1.09154,0.40572 0.0124,1.00097 -0.76525,4.45173 -1.72803,7.66838 -2.60482,8.70267 -3.38844,18.50781 -3.43417,42.97076 -0.0227,12.12941 -0.24871,21.92525 -0.5023,21.76852 -0.2536,-0.15673 -0.68587,-8.81141 -0.96061,-19.23262 -0.54927,-20.83411 -1.09177,-26.62138 -2.64071,-28.17031 -1.60988,-1.60989 -8.54086,-2.81616 -11.69431,-2.03529 -4.03162,0.99832 -4.69401,2.98962 -5.14891,15.47883 l -0.38498,10.56973 -1.91388,-2.27903 c -1.86996,-2.22673 -1.90574,-2.44491 -1.55944,-9.50905 0.6552,-13.36529 1.71175,-25.64577 2.41842,-28.10978 1.07172,-3.73688 0.86301,-6.2076 -0.59008,-6.98527 -2.10582,-1.127 -14.88786,-1.66702 -20.97259,-0.88606 -7.10245,0.91158 -8.14157,1.94451 -8.14157,8.09301 v 4.28757 l -1.76278,-1.65605 c -1.6772,-1.57565 -1.74261,-1.93349 -1.34736,-7.37111 0.33551,-4.61559 0.19851,-5.98712 -0.71209,-7.12927 l -1.12752,-1.41421 -1.10852,1.41421 c -0.84249,1.07483 -0.99998,2.30512 -0.65623,5.12653 0.24876,2.04177 0.30178,3.71231 0.11783,3.71231 -0.18396,0 -1.97383,-1.89234 -3.9775,-4.20519 -3.595,-4.14978 -3.62892,-4.23246 -2.57315,-6.27409 1.40755,-2.72191 2.83694,-3.00145 8.93336,-1.74708 4.45711,0.91706 5.21758,0.91918 6.11974,0.017 0.90215,-0.90215 0.79388,-1.7233 -0.87133,-6.60801 -3.22917,-9.47244 -5.67081,-13.42789 -9.43042,-15.27723 -3.03346,-1.49216 -4.04244,-1.59418 -13.8779,-1.40323 -5.83363,0.11325 -11.67878,0.27118 -12.98923,0.35097 -2.03629,0.12397 -2.77117,-0.31749 -5.05554,-3.03693 l -2.6729,-3.18198 0.67301,-4.59619 c 0.82806,-5.65517 0.20572,-11.47687 -1.44479,-13.51515 -1.05072,-1.29759 -2.44297,-1.65074 -9.13238,-2.31643 -7.15418,-0.71194 -8.07509,-0.9683 -9.8424,-2.73982 l -1.94973,-1.9544 3.17576,0.33951 c 1.74666,0.18674 7.10797,0.50853 11.914,0.71509 l 8.73824,0.37557 -0.38381,-1.58912 c -0.21109,-0.87401 -0.76318,-5.44154 -1.22685,-10.15006 -0.79151,-8.03758 -0.75423,-8.81757 0.60971,-12.7588 1.86257,-5.38204 5.13585,-25.05973 8.27475,-49.74449 1.35997,-10.69499 2.50396,-19.76363 2.54221,-20.15254 0.0382,-0.38891 1.782,10.58892 3.87502,24.39518 2.09302,13.80626 4.6526,29.55707 5.68797,35.00179 2.69485,14.17152 2.99988,17.8094 3.08313,36.76955 0.0683,15.54956 0.55284,22.34238 1.67378,23.46332 1.58344,1.58344 6.03465,-7.26928 13.3212,-26.49373 5.24252,-13.8316 7.26267,-17.78968 9.99252,-19.57835 1.12366,-0.73625 4.42057,-1.22703 10.40428,-1.54877 11.51754,-0.61929 11.628,-0.71793 12.18425,-10.88015 0.45499,-8.31232 2.50915,-16.23473 6.43832,-24.83105 2.65346,-5.80534 2.55617,-6.24575 -1.37981,-6.24575 -0.94046,0 -1.70993,-0.21049 -1.70993,-0.46777 0,-0.25726 1.96536,-3.00833 4.36747,-6.11346 6.99787,-9.04594 15.11449,-22.50542 21.82601,-36.19326 5.84829,-11.92731 6.28359,-12.60299 6.9649,-10.81101 2.14947,5.65355 6.08179,14.71864 8.31784,19.17497 2.33646,4.65644 10.8868,18.47045 11.13989,17.9977 0.0601,-0.1123 -0.19217,-5.74366 -0.56063,-12.51413 -0.69324,-12.73818 -0.66079,-13.08399 2.2286,-23.7525 2.03882,-7.52795 4.02116,-20.82 3.22394,-21.61722 -1.15316,-1.15316 -11.03457,-2.89866 -13.64121,-2.40965 -1.34889,0.25305 -3.50866,1.3874 -4.7995,2.52077 -2.81875,2.4749 -4.38967,2.5911 -6.34937,0.46968 -1.71805,-1.85985 -3.72656,-6.44298 -3.72656,-8.50348 0,-2.99414 10.39753,-10.47873 13.11065,-9.43762 0.54274,0.20827 1.42485,1.42666 1.96027,2.70754 1.25012,2.99071 2.18394,3.71862 6.49583,5.06348 l 3.53554,1.10272 -5.32427,-0.41109 c -4.50509,-0.34785 -5.48013,-0.2233 -6.33728,0.80949 -0.8924,1.07529 -0.84927,1.34031 0.36224,2.22619 3.23666,2.36671 15.25864,4.68653 16.22062,3.13001 0.83869,-1.35702 -0.23556,-4.28761 -1.57603,-4.29947 -0.95396,-0.008 -1.01288,-0.14459 -0.26707,-0.61718 1.19632,-0.75808 0.71508,-1.73446 -4.95396,-10.05113 -5.01203,-7.3528 -10.63088,-13.36249 -12.49349,-13.36249 -3.30227,0 -4.07062,-5.10661 -0.83356,-5.53996 0.97227,-0.13015 2.04789,-0.50574 2.39027,-0.83463 0.34238,-0.32889 0.89309,-3.53042 1.22381,-7.11451 0.60676,-6.57557 1.87205,-9.84542 3.80975,-9.84542 0.565,0 2.06911,0.6352 3.34246,1.41156 5.86553,3.57622 6.33241,1.87478 4.31648,-15.73048 l -1.19429,-10.42982 -7.82812,-0.0705 c -12.87887,-0.11596 -12.69575,0.8686 -2.37299,-12.7586 10.78802,-14.24139 18.27506,-25.33664 25.94274,-38.44524 10.71834,-18.324 15.19026,-28.91695 12.82476,-30.37891 -0.47671,-0.29462 -1.58247,0.17796 -2.55568,1.09224 -2.33525,2.19385 -2.18254,0.86932 0.18464,-1.60147 1.15109,-1.20149 2.64287,-1.98324 3.78452,-1.98324 2.49443,0 6.6335,-2.84159 6.90863,-4.74298 0.12036,-0.83182 -0.43649,-2.79695 -1.23744,-4.36695 -1.87972,-3.68454 -1.83504,-4.20139 0.3274,-3.78801 1.87942,0.35927 4.58028,3.22601 4.58028,4.86157 0,0.53092 0.30822,0.9653 0.68492,0.9653 0.3767,0 0.50639,0.46523 0.28819,1.03385 -0.22461,0.58532 0.38387,1.75728 1.40253,2.70134 1.36357,1.26372 1.98773,2.84727 2.57757,6.53957 2.4185,15.13916 21.17432,49.90204 36.04095,66.79988 5.02369,5.71007 9.21042,11.20689 9.21042,12.09248 0,1.12923 -3.19972,1.97169 -9.70054,2.55406 l -6.20936,0.55626 -0.82921,5.3033 c -1.45042,9.27626 -1.91475,18.68207 -1.00607,20.37994 1.14579,2.14094 4.3117,2.02899 6.43147,-0.2274 3.12059,-3.32172 4.94708,-1.579 4.9537,4.72649 0.006,5.6186 1.13005,8.88087 3.47882,10.09547 2.17308,1.12375 2.88119,2.36734 2.88119,5.05999 0,1.36617 -0.63893,2.01112 -3.0052,3.03349 -3.16401,1.36705 -9.02729,7.13883 -13.45899,13.24896 l -2.63828,3.63748 1.10824,18.0057 c 1.2357,20.07682 2.38446,29.62911 3.61172,30.03283 1.21925,0.40108 3.87662,-2.77514 7.70149,-9.20519 6.38067,-10.72663 15.87341,-33.56608 15.87341,-38.19125 0,-0.99802 0.32347,-2.66538 0.71883,-3.70524 1.02693,-2.70102 2.62577,-1.14357 3.17608,3.09385 1.60679,12.37254 9.06073,29.80562 20.45885,47.84866 5.6427,8.9323 9.19704,15.6694 9.97919,18.91511 0.43602,1.80933 0.31353,1.94454 -1.76152,1.94454 -5.48483,0 -9.42767,8.18629 -13.05835,27.11232 -1.17708,6.13589 -1.96882,7.53591 -4.26172,7.53591 -0.85032,0 -2.07986,0.39775 -2.73232,0.88389 -1.51383,1.12794 -2.46662,5.48008 -1.19972,5.48008 1.75131,0 25.10642,-4.44992 25.57138,-4.87219 0.26109,-0.23711 0.63143,-19.8412 0.82298,-43.56463 0.37698,-46.68752 0.53084,-49.52961 4.76621,-88.03479 1.56139,-14.19517 3.89876,-37.03948 5.19416,-50.76514 1.29541,-13.72565 2.48931,-25.08976 2.65312,-25.25357 0.16381,-0.16381 0.86084,7.24789 1.54896,16.47045 1.61644,21.66417 4.98036,55.47454 7.2614,72.98329 3.8307,29.40356 3.89889,30.65086 4.2816,78.31207 l 0.3648,45.43161 h 5.21484 c 6.91773,0 7.31009,-0.58579 8.16817,-12.19476 1.09932,-14.8729 4.73728,-37.72462 11.11676,-69.82962 1.12054,-5.63918 2.20834,-9.77576 2.41733,-9.19239 0.20898,0.58336 1.84418,10.7657 3.63377,22.62741 3.33964,22.13569 5.21079,31.24832 6.72239,32.73843 1.37933,1.35972 2.67444,-1.09245 3.599,-6.81436 1.93816,-11.99501 2.85595,-13.12777 11.05298,-13.64183 3.0578,-0.19176 6.29656,-0.49945 7.19723,-0.68376 3.0448,-0.62306 3.60763,-3.70514 3.94708,-21.61449 0.2615,-13.79701 0.60749,-18.06452 2.11172,-26.04643 2.18975,-11.6195 4.06168,-25.40797 6.43178,-47.37615 1.87058,-17.33812 2.45542,-21.48233 2.96038,-20.97737 0.16598,0.16597 1.08281,6.30612 2.03741,13.64477 0.9546,7.33865 2.51769,19.07057 3.47354,26.07092 3.18457,23.32288 3.83122,34.21602 4.61743,77.78175 0.32987,18.27871 0.88696,34.18861 1.23798,35.35534 1.38677,4.60935 3.18872,2.05456 6.6275,-9.39638 2.58862,-8.62 4.97317,-9.68507 20.68506,-9.23906 7.61209,0.21609 9.10559,0.45468 10.82608,1.72956 2.43873,1.80709 4.28278,6.2587 8.17242,19.72852 1.62933,5.64236 3.153,10.25883 3.38595,10.25883 0.23295,0 0.84883,-16.30765 1.36861,-36.23922 1.52586,-58.5098 1.90698,-57.44887 2.03215,5.65686 l 0.11816,59.57374 h 11.31371 11.3137 V 395.9798 332.69374 h -11.3137 c -10.68151,0 -11.31371,-0.0758 -11.31371,-1.35638 0,-3.47796 0.31531,-3.59337 9.81781,-3.59337 9.88459,0 12.1025,-0.72221 12.1025,-3.94088 0,-0.95665 -0.64859,-5.78228 -1.4413,-10.72362 -0.79271,-4.94134 -3.18811,-22.33982 -5.3231,-38.66328 -2.13499,-16.32346 -3.99781,-29.79502 -4.13959,-29.9368 -0.33293,-0.33293 -0.97388,7.21155 -1.48705,17.50365 -1.05615,21.18245 -4.06348,44.69596 -7.05411,55.15433 l -1.71871,6.01041 0.37141,-4.5962 c 0.71351,-8.82955 1.77294,-18.10112 3.11076,-27.22361 2.55959,-17.45361 4.65464,-42.03847 6.23667,-73.18555 l 0.48486,-9.54594 3.37895,33.94112 c 3.54991,35.6583 6.65965,61.45753 8.69366,72.1249 0.97495,5.11311 1.29759,12.34025 1.64149,36.76955 0.45098,32.03568 0.62145,33.58757 3.68929,33.58757 3.85854,0 6.75927,5.70994 10.95623,21.56676 3.92798,14.84054 6.70534,19.05604 11.72494,17.7962 3.12564,-0.78449 3.53002,-3.06501 4.15867,-23.45306 0.6241,-20.2404 1.54937,-31.05907 4.89856,-57.27565 3.06375,-23.98222 4.11647,-33.80203 5.27916,-49.24412 1.14842,-15.25268 1.69285,-19.55278 2.54195,-20.07756 0.73289,-0.45295 1.23002,4.70231 1.67305,17.34934 0.68523,19.5612 5.50549,59.17578 8.38889,68.94291 1.22765,4.1585 1.46949,6.98437 1.51288,17.67767 0.0284,7.00035 -0.19057,16.27334 -0.48661,20.60665 l -0.53826,7.87873 18.56948,0.28065 c 20.52738,0.31025 21.43214,0.4924 24.82261,4.99757 4.5914,6.10093 9.65677,22.68464 9.65677,31.61567 0,7.48887 0.86325,9.70789 4.12958,10.61512 1.42336,0.39534 5.06418,0.72058 8.09072,0.72275 5.21556,0.004 10.43752,1.3211 10.38359,2.61951 -0.0129,0.31153 -0.56979,1.20281 -1.23744,1.98063 -1.01861,1.18668 -1.91162,1.37634 -5.5505,1.1788 -2.64629,-0.14365 -8.13226,0.47648 -14.07477,1.59099 -5.356,1.00452 -10.57274,1.8264 -11.59276,1.8264 -2.75991,0 -4.76139,-1.75652 -5.41892,-4.75567 -0.44607,-2.03465 -0.69214,-0.14816 -1.0354,7.93765 -0.42427,9.99411 -0.59938,10.9884 -3.03234,17.2183 -2.53622,6.49429 -3.08599,9.53231 -2.02653,11.19851 0.74888,1.17774 4.07703,2.34234 6.69385,2.34234 h 2.20758 l -1.98686,2.07383 c -1.24233,1.29671 -3.04223,2.25213 -4.80327,2.54966 -3.91433,0.66132 -5.49527,2.45267 -5.49527,6.22664 0,2.67625 -0.45543,3.59241 -3.53553,7.11222 -2.37366,2.71251 -3.53198,3.62007 -3.52471,2.76167 0.014,-1.64851 0.74066,-2.68188 2.28727,-3.25252 2.6877,-0.99164 0.4049,-10.54356 -5.77936,-24.18266 -3.36299,-7.41692 -4.84948,-6.05528 -10.20935,9.35186 -3.21705,9.24755 -5.16799,19.41251 -6.1676,32.13503 -0.49649,6.31899 -1.16257,10.62131 -1.78114,11.50443 -0.86106,1.22934 -0.98806,-0.29098 -0.98806,-11.82815 v -13.23881 l -6.18719,0.0169 c -7.31527,0.0199 -11.46581,0.85413 -12.70898,2.55428 -0.60107,0.82201 -0.90282,3.79996 -0.90282,8.90984 0,7.20614 0.10606,7.78124 1.73562,9.4108 1.16424,1.16424 2.52957,1.73563 4.14729,1.73563 3.19178,0 5.75071,2.12086 7.22887,5.99135 1.91738,5.02061 0.17667,7.43134 -2.02786,2.80839 -1.79958,-3.77374 -4.91396,-4.85795 -14.03728,-4.88679 -6.59307,-0.0208 -7.80247,0.16467 -9.54594,1.4643 -2.23916,1.66912 -3.08162,5.28211 -2.39749,10.28192 0.60515,4.42248 2.50082,5.47438 10.85449,6.02311 l 6.91417,0.45417 -1.55919,1.6597 c -1.4656,1.56005 -2.06121,1.65969 -9.92122,1.65969 h -8.36203 l -0.004,-3.71231 c -0.008,-6.90363 -0.90168,-15.55564 -1.49706,-14.49174 -0.31567,0.56407 -0.89144,10.20225 -1.27947,21.41816 l -0.70553,20.39258 -1.86238,1.80846 -1.86238,1.80846 0.47288,-13.78858 c 0.26009,-7.58372 0.92344,-20.31164 1.4741,-28.28427 0.55066,-7.97263 1.00576,-14.73434 1.01132,-15.02602 0.006,-0.29168 -3.96736,-0.53033 -8.82872,-0.53033 h -8.83884 l -0.0449,4.77297 c -0.0447,4.75524 -0.064,4.7073 -5.17714,-12.9047 l -5.13223,-17.67767 h -14.46664 c -14.11256,0 -14.55264,0.0441 -17.98061,1.80156 -2.66615,1.3669 -3.96665,2.63282 -5.3902,5.2469 -4.11147,7.54993 -4.82784,18.00332 -4.83524,70.55651 -0.005,37.70967 -0.1356,42.95674 -1.06671,42.95674 -0.93121,0 -1.06066,-5.26402 -1.06066,-43.13352 v -43.13351 h -17.72737 -17.72737 l 0.28524,41.89608 c 0.15689,23.04284 0.53456,42.61202 0.83928,43.48706 0.46083,1.32332 0.30223,1.59099 -0.94264,1.59099 h -1.49669 l -0.0345,-27.04683 c -0.0459,-35.90374 -0.9925,-62.48336 -2.43541,-68.38068 -0.92023,-3.76106 -9.95217,-23.22183 -11.56264,-24.91355 -0.25471,-0.26755 -4.59084,7.79344 -9.63587,17.9133 -5.04502,10.11987 -9.28139,18.0739 -9.41415,17.67561 -0.13277,-0.39829 0.61119,-2.73171 1.65324,-5.18538 2.75051,-6.47651 2.98433,-8.78872 0.95395,-9.43313 -1.63983,-0.52047 -31.60325,0.19255 -34.23184,0.81459 -1.2668,0.29978 -1.78864,-0.77482 -4.80317,-9.89102 -1.86008,-5.62503 -4.09067,-11.28837 -4.95685,-12.58518 -2.20286,-3.29803 -5.62349,-4.83031 -10.78599,-4.83164 -5.60705,-10e-4 -11.97672,-1.20763 -15.28207,-2.89389 -3.92768,-2.00376 -4.37221,-1.81328 -3.89492,1.66895 0.52947,3.86285 9.08446,26.04419 11.64029,30.18085 2.28453,3.69756 4.6356,5.21761 10.3872,6.71571 5.65126,1.47197 17.55726,1.49462 19.0157,0.0362 0.58336,-0.58336 1.66251,-1.06066 2.3981,-1.06066 1.92335,0 7.2604,4.80467 8.42007,7.58016 1.77925,4.25833 2.46237,20.37212 2.23415,52.70052 -0.19454,27.55677 -0.36035,31.64275 -1.28404,31.64201 -0.89985,-7.3e-4 -1.06066,-1.7668 -1.06066,-11.64827 0,-14.91064 0.10076,-14.76205 -10.05338,-14.8245 -3.80445,-0.0234 -7.78305,0.19986 -8.84132,0.49614 -3.24345,0.90803 -3.6908,2.69624 -3.71267,14.84076 -0.0182,10.1274 -0.13221,11.13682 -1.25749,11.13693 -1.108,1.2e-4 -1.23799,-0.8689 -1.24277,-8.30837 -0.006,-9.20175 -0.9254,-16.28263 -2.51304,-19.35278 -1.30384,-2.52136 -4.20892,-3.39083 -5.84998,-1.75085 -1.02009,1.01942 -1.17759,3.06484 -1.17759,15.29368 v 14.11688 l -3.03061,7.9e-4 -3.03061,7.8e-4 0.55574,-6.54074 c 0.30565,-3.5974 0.5288,-20.54145 0.49587,-37.65343 -0.0601,-31.25045 -0.67851,-42.35645 -2.8246,-50.73002 -1.29561,-5.05517 -4.50589,-12.55604 -5.37383,-12.55604 -0.35684,0 -1.06812,0.99724 -1.5806,2.21608 -0.86831,2.0651 -0.95518,1.69174 -1.2751,-5.48008 -0.24344,-5.45727 -0.71951,-8.46546 -1.6365,-10.34064 -3.90484,-7.98517 -8.28915,-0.86896 -8.36851,13.58302 -0.0223,4.07164 -0.24637,6.61723 -0.49779,5.65685 -0.40222,-1.53637 -0.5652,-1.33864 -1.35651,1.64579 -0.49465,1.86556 -2.21017,5.36574 -3.81227,7.77818 l -2.91291,4.38624 -0.2245,44.01739 c -0.19191,37.62903 -0.3715,44.0174 -1.23743,44.0174 -0.85932,0 -1.01294,-3.6461 -1.01294,-24.04163 v -24.04163 h -5.3033 c -6.31081,0 -5.96157,-1.33019 -3.56571,13.58091 0.95569,5.94785 1.95746,12.99372 2.22617,15.65749 0.54628,5.41527 0.13901,6.08731 -3.70041,6.10611 -1.21633,0.006 -2.63621,0.52256 -3.15529,1.148 -0.80186,0.96619 -0.7414,1.28516 0.40213,2.12132 0.74024,0.54129 2.03126,0.98415 2.86892,0.98415 0.83766,0 2.09157,0.62824 2.78647,1.3961 1.16842,1.29109 1.17851,1.52573 0.13407,3.11973 -1.36767,2.08734 -6.86217,3.46312 -18.69641,4.68144 -9.71138,0.99977 -12.59903,0.57081 -17.1277,-2.54437 -1.92714,-1.32564 -3.67066,-2.41026 -3.87449,-2.41026 -0.20383,0 -0.37061,0.95459 -0.37061,2.12132 0,1.41421 -0.35355,2.12132 -1.06066,2.12132 -0.76117,0 -1.06066,-0.77727 -1.06066,-2.75277 0,-2.91162 -0.7646,-3.61119 -3.94692,-3.61119 -1.55518,0 -1.70993,0.28797 -1.70993,3.18198 0,2.92271 -0.14404,3.18198 -1.76777,3.18198 -1.61553,0 -1.76776,-0.26571 -1.76776,-3.08545 v -3.08545 l -3.68234,0.66928 c -2.02529,0.36812 -4.57087,0.53888 -5.65685,0.37949 -1.81607,-0.26654 -1.97452,-0.10519 -1.97452,2.01077 0,1.59641 0.37875,2.39954 1.23743,2.62393 0.6806,0.17786 0.2033,0.36029 -1.06066,0.40541 -2.20089,0.0785 -2.29809,-0.0308 -2.29809,-2.58407 v -2.66609 l -5.12653,-1.58361 c -5.80209,-1.7923 -8.26081,-1.96376 -9.83147,-0.68561 -1.74564,1.42054 -3.99959,5.04394 -4.53539,7.29097 -0.91645,3.84339 -2.13258,4.55813 -7.66304,4.50368 -2.75931,-0.0272 -8.19891,-0.79303 -12.088,-1.70191 z m 14.35485,-0.74656 c -0.96062,-0.96062 -15.58538,-4.67834 -19.93071,-5.06653 -3.96715,-0.35441 -4.80833,-0.25368 -4.54245,0.54398 0.17947,0.53841 1.73402,1.40134 3.45454,1.91761 5.28628,1.58623 22.08141,3.66773 21.01862,2.60494 z m 74.22197,-3.17638 c 11.33945,-1.80295 13.60011,-2.5144 13.60011,-4.28009 0,-1.81371 -2.98187,-1.79651 -13.3876,0.0772 -10.58308,1.90565 -15.10419,3.86982 -11.89147,5.16619 1.47139,0.59371 2.33349,0.52261 11.67896,-0.9633 z m -70.86107,-0.75133 c 0.2613,-0.4228 0.14991,-1.0939 -0.24752,-1.49134 -1.17605,-1.17604 -9.80798,-3.31647 -15.42881,-3.82582 -4.45507,-0.40371 -5.2214,-0.31175 -5.2214,0.62656 0,2.65173 19.45852,7.01929 20.89773,4.6906 z m 69.16945,-4.4954 c 5.53527,-1.05907 8.22066,-2.10481 8.22066,-3.20125 0,-0.96358 -3.83573,-1.14044 -11.55503,-0.53277 -7.51611,0.59169 -11.77949,1.91591 -11.77949,3.65875 0,1.45796 7.68711,1.49624 15.11386,0.0753 z m -65.44716,-1.28996 c 0.3807,-2.00446 -4.25799,-3.50133 -12.06887,-3.89454 -5.90891,-0.29745 -6.89429,-0.19019 -6.89429,0.75048 0,0.72202 1.51215,1.58805 4.41941,2.53109 5.52937,1.79358 7.15851,2.08046 11.13058,1.96003 2.42969,-0.0737 3.23141,-0.39008 3.41317,-1.34706 z m 21.99687,-1.71555 c 0.47311,-1.71345 0.56718,-13.84432 0.27331,-35.24348 -0.33534,-24.41885 -0.2416,-32.75832 0.37247,-33.13784 0.95629,-0.59102 1.03164,-18.37113 0.17713,-41.78944 -0.56935,-15.60319 -0.42506,-14.85557 -4.56061,-23.63138 -1.36052,-2.88708 -2.74478,-2.74623 -2.18782,0.22261 0.62072,3.30878 -0.5645,3.34551 -2.67788,0.083 -1.60265,-2.47409 -2.90359,-3.09556 -3.71881,-1.77652 -0.95265,1.54142 -1.76777,0.56329 -1.76777,-2.12132 0,-1.55563 0.24434,-2.82843 0.54297,-2.82843 0.29862,0 1.71364,0.7955 3.14446,1.76777 3.03863,2.0648 3.38364,2.13505 3.38364,0.68895 0,-0.96702 0.21619,-0.96702 2.08621,0 2.77897,1.43707 5.18661,1.36116 7.14576,-0.22526 1.93462,-1.56656 1.50247,-3.29556 -1.12264,-4.49165 -1.40647,-0.64083 -2.77068,-0.63941 -5.89604,0.006 -5.33538,1.10201 -6.92747,1.05943 -7.41006,-0.19815 -0.5536,-1.44268 0.17165,-1.72724 4.18521,-1.64216 2.42725,0.0514 4.68867,-0.49689 7.44375,-1.80495 2.17652,-1.03336 4.76188,-1.87884 5.74524,-1.87884 3.17742,0 6.3193,-0.8832 6.7035,-1.88439 0.20903,-0.54473 -1.59551,-3.39122 -4.08277,-6.4402 -2.45155,-3.00519 -4.52709,-5.56701 -4.6123,-5.69291 -0.37776,-0.55813 -4.55856,2.14486 -5.21515,3.37173 -1.98137,3.70223 0.1392,6.02633 4.81621,5.27845 3.29574,-0.52701 4.35063,0.55242 2.08839,2.13696 -1.1065,0.77502 -3.18649,1.10236 -6.90612,1.08685 -4.45436,-0.0186 -6.01197,-0.36466 -9.54738,-2.12132 -4.4121,-2.19228 -7.30081,-2.60321 -9.61043,-1.36715 -1.64177,0.87865 -1.7607,2.30425 -0.2938,3.52167 0.87348,0.72492 1.3024,0.68568 2.29809,-0.21026 1.11304,-1.00153 1.37572,-0.9783 2.8935,0.25597 0.91813,0.74662 2.40355,1.35749 3.30093,1.35749 2.09431,0 3.86858,0.68331 3.86858,1.48987 0,0.34729 -1.77537,0.63145 -3.94527,0.63145 h -3.94527 l 0.48029,2.18676 c 0.41195,1.87558 0.29417,2.15126 -0.8277,1.93732 -0.7194,-0.13719 -1.40665,-0.93904 -1.52722,-1.78188 -0.12058,-0.84285 -1.49855,-2.98583 -3.06217,-4.76219 -2.4009,-2.72757 -2.77151,-3.55499 -2.38352,-5.32148 0.90176,-4.10566 -3.3229,-9.95598 -6.11167,-8.46348 -2.23799,1.19774 -1.48079,-0.51766 1.20616,-2.73246 2.0535,-1.69268 4.05055,-2.3663 10.96015,-3.69697 7.75734,-1.49393 8.44911,-1.75522 8.44911,-3.19133 0,-0.86029 -0.61634,-7.89072 -1.36965,-15.62318 -0.75331,-7.73244 -1.53255,-17.24097 -1.73165,-21.13006 l -0.36201,-7.07107 1.37246,7.77818 c 0.75486,4.27799 2.18275,13.98304 3.17309,21.56676 0.99034,7.58372 1.94628,14.10678 2.12431,14.49568 0.44608,0.97445 -0.23987,-13.90451 -1.49581,-32.44567 -0.57654,-8.51131 -0.87911,-15.64425 -0.67239,-15.85098 0.20673,-0.20673 0.37587,0.18708 0.37587,0.87513 0,0.68804 1.03414,4.1617 2.29809,7.71925 l 2.2981,6.46826 -0.17523,14.13619 c -0.10705,8.63537 0.11924,15.02846 0.58151,16.42918 0.76456,2.3166 3.9077,5.4014 4.88693,4.7962 1.24432,-0.76903 1.33845,-8.45877 0.37226,-30.41183 -2.85299,-64.82337 -2.91026,-106.04172 -0.15158,-109.09002 0.662,-0.73149 1.20363,-1.52863 1.20363,-1.77141 0,-1.22159 -6.57838,-1.9146 -18.208,-1.91815 l -12.9047,-0.004 v 13.35659 c 0,15.19206 -0.80954,30.94682 -2.87441,55.93988 -1.34796,16.31574 -2.3286,26.00055 -6.6229,65.40737 -3.38546,31.06684 -3.53181,31.94855 -5.75666,34.6809 -0.89152,1.0949 -1.04808,1.13488 -0.75449,0.19269 0.45158,-1.44925 1.61587,-12.73779 2.22482,-21.57108 l 0.44785,-6.49648 -13.30787,-0.22103 c -7.31933,-0.12157 -13.43277,-0.14917 -13.58542,-0.0614 -0.80388,0.46254 1.75085,2.31519 3.19255,2.31519 2.21039,0 4.22517,2.09459 5.22711,5.43416 0.47183,1.57267 1.03876,11.98585 1.35952,24.97143 0.3026,12.25062 0.78861,22.83071 1.08001,23.5113 0.2914,0.68059 1.00293,1.23744 1.58118,1.23744 0.85506,0 0.96057,0.66011 0.5651,3.53553 -0.51935,3.77605 -0.16303,4.22222 1.88886,2.36528 1.2212,-1.10517 1.29312,-1.06816 1.29312,0.66538 0,2.42504 1.18117,3.05628 2.86594,1.53159 1.31497,-1.19004 1.40098,-1.14131 2.46025,1.39389 0.60371,1.44486 1.48192,2.4992 1.95159,2.34298 1.09744,-0.36506 2.08817,-7.77324 1.55142,-11.60066 -0.23643,-1.68594 -1.31011,-4.10769 -2.50795,-5.65686 -6.00474,-7.76592 -6.43738,-8.74265 -5.89804,-13.31546 0.27523,-2.33345 0.53125,-10.55462 0.56893,-18.26925 l 0.0685,-14.02661 1.98397,-1.70652 c 3.09333,-2.66073 4.32128,-2.20381 2.25606,0.83948 -2.1818,3.21505 -2.81318,6.24849 -2.78158,13.36391 0.019,4.28544 0.40511,6.49902 1.59256,9.13066 1.72449,3.82185 1.58385,4.97552 -1.10117,9.03285 -2.30263,3.4795 -1.76897,4.9754 0.81458,2.28334 1.08842,-1.13414 5.57275,-6.83599 9.96516,-12.67076 4.39241,-5.83478 8.69725,-11.24415 9.56632,-12.02082 l 1.58012,-1.41213 -0.51121,1.76777 c -0.45658,1.57886 -2.55546,5.49636 -9.84998,18.38478 -2.11601,3.7387 -2.1903,4.14883 -1.92108,10.6066 0.49156,11.7909 0.39235,25.63325 -0.22599,31.53048 -0.70107,6.68635 -1.21728,6.189 7.77286,7.48884 7.13746,1.03197 8.25732,0.60337 8.83822,-3.38263 0.32524,-2.23173 0.50439,-2.48711 0.94141,-1.34201 1.99808,5.23541 1.43063,4.92538 10.86577,5.93661 6.22351,0.66702 7.94368,1.49358 7.94368,3.81701 0,1.45432 -1.85428,4.03496 -2.89927,4.03496 -0.30733,0 -0.65575,-1.51144 -0.77429,-3.35876 l -0.21552,-3.35876 -3.18198,-0.20787 c -3.57828,-0.23376 -5.97636,1.02738 -5.30085,2.78771 0.23813,0.62057 1.84644,2.14339 3.57401,3.38404 1.72758,1.24064 3.14105,2.4575 3.14105,2.70412 0,0.24661 -0.84276,1.66448 -1.87279,3.15082 -1.18374,1.70812 -1.99687,3.99376 -2.21003,6.2121 -0.37653,3.91863 -1.57403,4.12456 -1.57403,0.27068 v -2.47458 l -5.01569,2.69309 c -2.75862,1.4812 -5.17866,3.08956 -5.37786,3.57412 -0.19919,0.48456 1.60044,3.91066 3.99919,7.61354 8.72554,13.46941 10.13377,17.44175 6.65246,18.76534 -3.22846,1.22746 -6.48506,-1.98488 -13.65691,-13.47132 -6.8641,-10.99354 -11.1758,-14.9264 -13.89244,-12.67178 -1.3519,1.12196 -1.23369,4.0349 0.48551,11.96467 2.57754,11.88882 2.57762,11.91289 0.045,12.79578 -2.47373,0.86234 -3.63402,3.71387 -3.64089,8.94776 -0.004,3.30756 0.31867,3.57234 2.23847,1.83495 1.24205,-1.12404 1.291,-0.96347 1.23932,4.06586 -0.0522,5.07853 -0.0807,5.16163 -0.94697,2.76125 -1.31477,-3.64308 -3.28055,-3.3322 -4.47109,0.7071 -1.00153,3.39798 -1.35145,12.99513 -0.56425,15.47536 0.82843,2.61017 2.94329,3.18816 5.61768,1.5353 2.84397,-1.75766 8.29689,-1.97683 9.61674,-0.38651 0.83041,1.00059 3.43967,1.86008 11.45307,3.77266 1.96858,0.46984 3.98573,0.55054 4.93977,0.19762 1.53406,-0.56749 1.47539,-0.66634 -1.20595,-2.03199 -1.55014,-0.78952 -5.47712,-2.02752 -8.7266,-2.75112 l -5.90816,-1.31563 0.28436,-9.19239 c 0.24898,-8.04878 0.5027,-9.62463 2.03942,-12.6668 3.03069,-5.99972 7.74123,-7.90266 11.91702,-4.8142 3.2945,2.43666 3.81073,4.59869 4.40924,18.46644 0.63327,14.67323 1.12815,16.28874 5.02661,16.40916 1.25499,0.0388 3.0773,0.32525 4.04957,0.63663 3.03153,0.97086 3.4486,0.7812 4.19048,-1.90567 z m 10.15815,1.43199 c 4.92005,-0.63519 5.04666,-1.09784 4.30848,-15.74506 -0.89404,-17.73985 -0.75859,-21.08267 0.99305,-24.50835 1.90534,-3.72625 8.70821,-9.94961 11.45662,-10.48068 1.16998,-0.22606 3.05985,-0.59058 4.1997,-0.81004 3.03889,-0.58506 3.68666,-1.80012 3.43095,-6.43562 l -0.22758,-4.12552 -1.22354,2.47487 -1.22354,2.47487 0.4111,-6.0104 c 0.74853,-10.94358 1.51547,-18.07224 1.6356,-15.2028 0.18585,4.43944 2.00808,18.70288 2.9178,22.83905 0.45329,2.06094 1.58993,4.57344 2.52587,5.58333 2.58399,2.78818 2.0443,3.30427 -1.36564,1.30591 -5.11147,-2.99552 -11.66088,-2.06702 -16.26446,2.3058 -3.2155,3.05432 -4.00813,5.24169 -3.94524,10.88753 l 0.0575,5.16164 1.60283,-5.04324 c 2.02061,-6.35781 4.08315,-9.26453 7.75818,-10.93353 3.79127,-1.72179 5.83181,-1.6653 9.2208,0.25528 5.08006,2.87892 7.3357,9.95626 8.95448,28.09586 0.46854,5.25027 1.08958,9.81697 1.38008,10.14822 0.29051,0.33126 0.75607,-2.21433 1.03457,-5.65686 0.71125,-8.79138 1.52349,-9.4378 1.87114,-1.48915 0.18271,4.17774 0.65393,7.18315 1.23624,7.88479 1.20531,1.45231 5.28433,1.46604 6.72772,0.0226 1.67877,-1.67877 1.39826,-5.64293 -1.68364,-23.7942 -8.12833,-47.87286 -14.59486,-112.1132 -16.28408,-161.77083 -0.81,-23.81162 -1.04552,-26.58939 -2.36649,-27.91036 -0.73157,-0.73156 -1.05833,-5.47109 -1.39863,-20.28646 -0.24423,-10.63253 -0.96379,-28.08232 -1.59904,-38.77731 -1.42823,-24.04514 -1.22857,-28.7511 1.34976,-31.81528 1.52657,-1.81422 1.73494,-2.49003 1.12127,-3.63668 -0.62657,-1.17075 -1.13315,-1.31123 -3.00266,-0.83264 -1.23691,0.31664 -8.20757,0.57571 -15.49036,0.57571 h -13.24143 l -0.36753,1.76777 c -2.79406,13.43933 -3.19441,75.30928 -0.49313,76.20971 1.06054,0.35351 1.07515,12.0761 0.0573,45.9284 l -0.7703,25.61805 5.36622,6.27443 c 2.95143,3.45093 5.36622,6.69585 5.36622,7.21092 0,0.51508 -1.00981,1.77953 -2.24403,2.8099 -2.75569,2.30055 -2.35705,3.97601 1.10033,4.62463 3.34098,0.62677 4.21006,-0.0587 3.74077,-2.95059 -0.35779,-2.20484 -0.28078,-2.32921 1.01342,-1.63657 2.34525,1.25514 7.70322,6.72001 7.70322,7.85691 0,0.5876 -0.78672,1.42682 -1.74826,1.86493 -0.96154,0.4381 -1.95278,1.61142 -2.20275,2.60738 -0.36129,1.43953 -0.65393,1.64528 -1.42723,1.00349 -1.17398,-0.97431 -3.51406,-0.60378 -9.01765,1.42785 -4.69163,1.7319 -6.93668,1.59612 -3.45855,-0.20916 1.39899,-0.72613 2.29809,-1.73215 2.29809,-2.57135 0,-1.18767 0.2512,-1.28305 1.81406,-0.68885 2.01964,0.76786 3.47031,0.22602 5.55129,-2.07343 0.73652,-0.81384 2.0853,-1.47971 2.9973,-1.47971 1.15553,0 1.65817,-0.40576 1.65817,-1.33856 0,-2.09723 -1.43529,-2.17027 -7.10471,-0.36156 -2.89831,0.92465 -5.30509,1.68545 -5.34838,1.69065 -0.0433,0.005 0.0638,-0.73602 0.23797,-1.64717 0.32945,-1.72342 -1.04509,-2.62501 -5.63933,-3.69896 -2.29319,-0.53607 -2.64929,0.68604 -0.53033,1.82007 0.77782,0.41627 1.41422,1.19987 1.41422,1.74132 0,0.54145 0.83841,1.64395 1.86312,2.45 l 1.86313,1.46553 h -1.79396 c -1.37185,0 -1.97442,0.51771 -2.56098,2.2003 -0.65719,1.88522 -1.0215,2.13643 -2.54405,1.7543 -0.97735,-0.24531 -1.77701,-0.31021 -1.77701,-0.14424 0,0.16597 0.81992,1.88214 1.82205,3.8137 1.74141,3.3565 1.83887,4.16524 2.20185,18.27326 0.33324,12.95197 -0.29006,48.99872 -1.67414,96.81994 -0.4705,16.25596 -0.10507,18.53463 2.8373,17.69197 0.84175,-0.24107 3.05526,-0.63516 4.91893,-0.87576 z m 28.24993,-3.46697 c 9.31462,-1.80785 13.81119,-3.47342 7.57745,-2.80676 -1.73438,0.18548 -6.33539,0.49535 -10.22448,0.6886 l -7.07107,0.35135 5.28682,-1.39768 c 2.90774,-0.76872 5.77153,-1.88318 6.36396,-2.47657 0.80291,-0.80422 1.07714,-2.67738 1.07714,-7.35748 0,-6.60959 -0.14671,-7.09549 -2.2333,-7.39628 -1.92288,-0.2772 -2.05908,-2.9761 -0.20039,-3.97084 1.30803,-0.70004 1.49031,-1.27639 1.20479,-3.80949 -0.37323,-3.31124 -3.37131,-9.79729 -5.66477,-12.25515 -1.838,-1.96976 -4.40768,-2.02435 -7.46779,-0.15866 -4.22484,2.57582 -4.66259,4.71523 -4.69845,22.96285 -0.0362,18.41318 0.1884,19.44544 4.23093,19.44544 1.34495,0 6.66358,-0.8187 11.81916,-1.81933 z m -20.1605,-8.96405 c -0.14888,-1.65287 -0.27068,-0.30052 -0.27068,3.0052 0,3.30572 0.1218,4.65807 0.27068,3.0052 0.14887,-1.65286 0.14887,-4.35754 0,-6.0104 z m 120.75106,-35.24762 c 0,-20.65598 -0.17937,-25.38731 -0.99992,-26.37522 -0.91266,-1.09881 -1.09778,-1.10606 -2.12132,-0.0831 -1.31323,1.31248 -1.48508,8.82812 -0.52371,22.90432 l 0.59769,8.7513 -6.25455,-0.61957 c -15.05565,-1.49142 -19.75416,-0.35586 -22.72961,5.49341 -2.41783,4.75304 -2.77176,8.41043 -0.97157,10.03958 3.12919,2.83188 6.06791,-0.39154 5.37846,-5.89952 l -0.3983,-3.18198 3.06709,5.65685 c 2.58535,4.76836 3.56437,5.90955 6.23324,7.26569 2.81668,1.43125 4.02468,1.58734 10.94433,1.41421 l 7.77817,-0.19461 z m -33.39293,3.28565 c 2.01671,-4.22909 3.9477,-4.96272 13.56174,-5.15244 10.42279,-0.20568 11.56886,-0.457 12.43158,-2.72613 1.13191,-2.97715 0.8531,-17.70499 -0.38033,-20.09016 -1.10465,-2.13618 -1.59939,-2.30362 -9.355,-3.1661 -2.03496,-0.2263 -6.96703,-1.35386 -10.96016,-2.50569 -3.99313,-1.15182 -7.70133,-2.09619 -8.24045,-2.0986 -0.81939,-0.004 -0.92019,2.92491 -0.61441,17.85006 0.42733,20.8583 0.93164,23.39456 3.55703,17.88906 z m -148.71194,0.36542 c 1.81591,-3.39306 -0.4379,-9.23887 -3.56198,-9.23887 -1.66657,0 -1.67171,0.19771 0.0898,-3.44812 0.93317,-1.93143 1.37569,-4.05038 1.23744,-5.92527 -0.19736,-2.67637 -0.42065,-2.9724 -2.69009,-3.5663 -2.30808,-0.60401 -11.11015,-0.22749 -11.8443,0.50665 -0.75675,0.75675 5.18781,9.19134 9.4102,13.35189 2.72377,2.68389 4.55542,5.0842 4.55542,5.96974 0,3.49848 1.51109,4.76526 2.80355,2.35028 z m 27.87994,0.24924 c 0.70303,-1.83207 0.50013,-2.41704 -0.83835,-2.41704 -0.8968,0 -1.50631,-0.89267 -2.0838,-3.05187 -0.89534,-3.34753 -7.38429,-12.83032 -9.89821,-14.46498 -3.004,-1.95334 -2.74455,0.86306 0.72302,7.84811 4.17501,8.41014 7.80881,13.20427 10.00841,13.20427 0.91285,0 1.85287,-0.50332 2.08893,-1.11849 z m 75.84639,-7.19001 c -0.2511,-3.79186 -0.45819,-9.26365 -0.46021,-12.15953 l -0.004,-5.26523 -2.47487,2.39874 c -2.23458,2.16584 -2.47487,2.25358 -2.47487,0.90365 0,-2.23803 0.73796,-3.73208 1.84342,-3.73208 0.67777,0 0.985,-0.88222 0.985,-2.82843 0,-2.72632 -0.41039,-3.17225 -2.65165,-2.88121 -1.32407,0.17194 -1.09989,-0.3591 1.31069,-3.10459 2.64167,-3.00869 3.29809,-3.1101 3.5921,-0.55493 0.32094,2.78935 2.9618,2.73427 3.28251,-0.0685 0.17997,-1.57266 0.5208,-1.93704 1.55813,-1.66578 0.73028,0.19097 1.86451,-0.0452 2.52051,-0.52492 1.107,-0.80946 1.09666,-0.91202 -0.14391,-1.42684 -2.09101,-0.86773 -15.35397,-1.24867 -16.49142,-0.47366 -0.87438,0.59576 -0.85476,1.25265 0.14367,4.8113 0.63595,2.26674 1.33253,6.03053 1.54794,8.36398 0.21541,2.33345 1.07662,8.93606 1.9138,14.67246 l 1.52214,10.42983 h 2.46861 2.46861 z M 254.78844,551.58148 c 4.03621,-2.73904 5.52353,-3.41444 9.6695,-4.39094 3.82062,-0.89988 3.75216,-0.91137 -3.88909,-0.65273 -7.83984,0.26537 -12.12208,1.22263 -11.31453,2.52928 0.24081,0.38964 1.12625,0.70843 1.96765,0.70843 h 1.52982 l -1.57155,1.10075 c -0.86435,0.60542 -1.57155,1.40092 -1.57155,1.76777 0,1.2216 2.59972,0.68829 5.17975,-1.06256 z m 5.54121,-16.93807 c 1.35377,-1.8602 2.00696,-3.61699 2.00696,-5.3978 0,-3.54206 -3.52121,-6.70277 -12.35715,-11.09202 -5.46959,-2.71701 -6.71889,-3.63638 -6.94918,-5.11396 -0.23283,-1.49389 -0.29885,-1.40651 -0.38671,0.51183 -0.0831,1.81536 0.26164,2.48074 1.60189,3.0914 0.93931,0.42797 1.91397,1.45529 2.16592,2.28293 0.25193,0.82764 0.64142,7.45995 0.86552,14.73847 l 0.40744,13.23368 5.31917,-4.7484 c 2.92554,-2.61161 6.2223,-5.98937 7.32614,-7.50613 z m 29.43171,10.57049 c 0.2087,-0.2087 -0.14893,-0.96331 -0.79472,-1.67691 -0.6458,-0.7136 -1.17418,-2.29534 -1.17418,-3.51499 0,-1.46872 -0.46186,-2.46471 -1.36773,-2.94953 -1.60184,-0.85727 -10.36696,-0.89471 -12.42085,-0.053 -1.31403,0.53848 -1.27321,0.63514 0.57636,1.36452 1.09481,0.43174 2.26365,0.78498 2.59739,0.78498 1.24928,0 4.95797,3.71078 4.95797,4.96076 0,0.71473 0.55685,1.45897 1.23744,1.65388 1.3997,0.40084 5.8112,0.007 6.38832,-0.56966 z m 334.302,-4.21932 c 1.28947,-0.94203 1.38529,-2.14096 1.58233,-19.79899 l 0.20974,-18.79622 h -8.08636 c -11.77452,0 -11.42501,-0.43615 -11.42501,14.25707 0,13.03252 0.55867,15.35225 4.07536,16.922 1.54471,0.68951 2.40207,1.68506 2.79706,3.2479 1.11165,4.39832 7.28482,6.77055 10.84688,4.16824 z m -98.45116,-0.48327 c 4.73384,-0.42841 8.6678,-0.83394 8.74213,-0.90119 0.26895,-0.24329 -6.63843,-19.24172 -7.87301,-21.6544 -3.23824,-6.32833 -6.75731,-7.43465 -21.96063,-6.90391 -9.74352,0.34014 -15.2028,1.53095 -15.2028,3.31614 0,1.36872 3.33909,9.59544 6.21826,15.32031 3.16346,6.29015 5.95828,10.00204 8.21976,10.9169 2.10798,0.85276 11.85908,0.81089 21.85629,-0.0938 z m -154.1487,-1.81089 c 7.44154,-0.54627 7.76369,-0.86174 8.90887,-8.72389 0.69528,-4.77344 3.56523,-29.90198 3.58042,-31.34925 0.008,-0.7438 -30.31424,-0.24562 -31.99039,0.5256 -1.9467,0.8957 -1.44817,2.53259 0.91529,3.00528 l 2.15273,0.43055 -2.15273,1.30914 c -2.63628,1.60322 -2.72261,2.56249 -0.31308,3.47859 1.20033,0.45637 1.70021,1.0628 1.43843,1.74501 -0.22068,0.57506 0.0205,1.43949 0.53587,1.92095 0.77363,0.72268 0.6946,1.20338 -0.45309,2.75571 -2.14409,2.90004 -1.15514,7.28865 2.4108,10.69834 l 2.77317,2.65165 h -2.10936 c -1.16015,0 -2.29539,0.301 -2.52275,0.66888 -0.41267,0.6677 3.82037,2.14814 6.16355,2.1556 2.05479,0.007 1.3944,1.07731 -1.25537,2.03548 -3.14791,1.1383 -4.896,3.67726 -4.26441,6.19373 0.46484,1.85208 0.51911,1.86683 5.20447,1.41425 2.60411,-0.25154 7.54402,-0.66357 10.97758,-0.91562 z m -166.30409,-5.83483 c 1.62563,-1.31815 1.66853,-1.63742 1.63901,-12.19759 -0.037,-13.24887 -0.94294,-17.08562 -8.49294,-35.97006 -2.88171,-7.20787 -5.43449,-14.20823 -5.67284,-15.55634 l -0.43336,-2.45113 1.46737,2.11766 c 0.80705,1.16471 3.76116,7.17214 6.56468,13.34982 5.67203,12.49855 7.88876,15.43518 12.6113,16.70682 3.9604,1.06643 18.0014,0.61019 20.62499,-0.67016 3.44255,-1.68003 3.2925,-3.21347 -1.56052,-15.94779 -1.2868,-3.37656 -1.70394,-6.26349 -2.04347,-14.14213 -0.31112,-7.21938 -0.58325,-9.27536 -1.00516,-7.59412 -0.3182,1.26794 -1.05257,2.77938 -1.63193,3.35875 -1.49197,1.49197 -7.19351,1.33923 -16.29605,-0.43654 -4.20051,-0.81947 -10.23565,-1.53542 -13.41142,-1.59099 -5.15405,-0.0902 -5.9633,0.0764 -7.53566,1.55143 -4.48582,4.20814 -13.38075,26.26528 -14.39035,35.68433 -0.39437,3.67929 -0.28118,4.21389 1.0965,5.17885 1.89841,1.3297 5.51313,8.45808 8.56029,16.8813 4.1202,11.38935 5.79829,13.00644 13.5456,13.05316 3.60139,0.0217 5.08337,-0.2869 6.36396,-1.32527 z m 393.91596,-0.0921 c 3.39383,-0.94256 4.79382,-3.01596 4.79382,-7.09974 0,-2.55823 -0.45318,-3.85123 -2.05725,-5.86969 -1.30246,-1.63893 -2.22598,-3.81551 -2.51713,-5.93244 -0.51415,-3.73826 0.57099,-9.69125 2.03308,-11.15333 1.10239,-1.10239 0.65747,-4.31096 -1.59381,-11.49378 -2.23348,-7.12603 -8.74645,-23.47342 -9.35207,-23.47342 -0.78088,0 -3.04442,6.28601 -7.0887,19.68582 -4.6634,15.45112 -5.01003,17.07821 -3.742,17.5648 0.55481,0.21291 1.98702,-0.0181 3.18268,-0.51338 1.81152,-0.75035 2.279,-0.73431 2.80418,0.0962 0.34663,0.5482 0.5559,6.14376 0.46502,12.43458 -0.15371,10.64117 -0.0623,11.5758 1.31274,13.4182 2.18103,2.9224 6.53445,3.78725 11.75944,2.33613 z m -129.91002,-5.0627 c 4.14072,-1.03892 7.04349,-4.58897 13.22127,-16.16951 l 5.44311,-10.20334 -3.15179,-12.72756 c -1.73349,-7.00016 -3.80307,-14.69221 -4.59906,-17.09346 -1.33431,-4.02513 -3.04233,-6.56943 -3.86073,-5.75103 -0.96841,0.96841 -4.6978,36.10778 -4.51415,42.53368 l 0.0638,2.23148 0.58121,-2.12132 c 0.31966,-1.16672 0.79515,-5.48712 1.05663,-9.60087 0.51701,-8.13406 0.719,-8.79957 2.83081,-9.32719 1.28384,-0.32075 1.26755,-0.36088 -0.17678,-0.43535 -1.41723,-0.0731 -1.58946,-0.44886 -1.57698,-3.44078 0.0219,-5.24582 1.34529,-13.14082 2.30189,-13.73228 1.53326,-0.948 2.7534,1.23625 4.83738,8.65966 1.12151,3.99497 2.03911,7.52634 2.03911,7.84748 0,0.32114 -0.71595,0.61562 -1.59099,0.65438 -1.5202,0.0673 -1.51294,0.0922 0.16303,0.55897 1.51264,0.42126 1.93971,1.26597 3.10345,6.13833 l 1.34942,5.64985 -4.87121,8.89498 c -2.67917,4.89224 -5.34852,9.57193 -5.93188,10.39932 -1.03013,1.46103 -1.6939,1.51794 -23.0572,1.97689 l -21.99655,0.47255 -1.22787,-3.21513 c -1.57324,-4.11947 -1.25287,-5.59439 1.38034,-6.35496 1.16673,-0.337 10.3441,-0.89287 20.39416,-1.23527 10.05005,-0.34241 18.4823,-0.84098 18.73833,-1.10795 0.76419,-0.79686 -34.61019,0.20267 -38.20115,1.0794 -4.48635,1.09534 -5.10456,1.96888 -4.09529,5.78672 1.72505,6.52545 7.30842,9.65212 18.7203,10.4833 7.59353,0.55308 18.6955,0.13555 22.62742,-0.85099 z m 67.40616,-1.09306 c 1.62033,-4.16692 2.30341,-7.87452 2.70326,-14.67246 0.38446,-6.53643 0.29974,-7.21681 -1.12032,-8.99857 -2.05535,-2.57884 -6.00794,-3.57327 -14.54188,-3.65863 -8.30247,-0.083 -11.66726,0.93624 -11.66726,3.5343 0,2.25833 2.53771,3.77564 7.15841,4.28006 6.46814,0.70609 8.11077,2.61197 11.18242,12.97457 2.47878,8.36245 4.68445,10.65774 6.28537,6.54073 z m 110.74617,-13.18088 c 1.77117,-1.35095 3.45903,-3.87875 5.62764,-8.42816 3.31075,-6.94546 8.19952,-19.58744 8.19952,-21.20332 0,-1.63947 -3.48573,-2.69535 -10.9316,-3.31133 -3.9048,-0.32303 -7.65647,-0.81081 -8.33706,-1.08394 -1.41072,-0.56614 -1.60245,-1.81877 -0.45414,-2.96707 1.55788,-1.55788 1.52543,-9.94037 -0.091,-23.5111 -0.88671,-7.44433 -1.8384,-13.28074 -2.11485,-12.96979 -1.0593,1.19142 -3.01446,29.52018 -2.57674,37.3349 0.51162,9.13414 -0.16562,12.71829 -4.47604,23.68816 -1.60454,4.0835 -2.97912,8.68972 -3.05463,10.23605 -0.12774,2.61607 0.0347,2.87429 2.33758,3.71456 1.47791,0.53928 4.66357,0.80793 7.90812,0.6669 4.62037,-0.20084 5.81176,-0.52487 7.96321,-2.16586 z m -260.2641,-10.33042 c 0.2824,-2.01219 0.22389,-2.66207 -0.15916,-1.76776 -0.33315,0.77781 -0.79994,2.8461 -1.03731,4.59619 -0.2666,1.96564 -0.20576,2.64138 0.15916,1.76777 0.32491,-0.77782 0.7917,-2.84611 1.03731,-4.5962 z m 78.22268,4.04067 c 0,-0.11109 -2.38649,-8.76007 -5.3033,-19.21997 -2.91682,-10.45988 -5.29056,-19.35808 -5.27499,-19.77378 0.0724,-1.93318 2.8004,4.80315 7.80068,19.26253 3.00052,8.67664 5.62729,15.94751 5.83727,16.15749 1.17094,1.17093 1.72047,-1.39393 2.10222,-9.81175 0.26829,-5.91599 1.47037,-15.48344 3.24707,-25.84363 1.55159,-9.04756 3.04011,-18.67305 3.30784,-21.38998 l 0.48676,-4.93987 h -19.55952 c -24.28723,0 -24.12872,-0.0433 -25.5455,6.97446 -0.72731,3.60264 0.29498,11.15537 1.75377,12.9569 1.11683,1.37924 2.15577,1.61615 8.67322,1.97782 5.71565,0.31718 7.87308,0.72817 9.45936,1.802 l 2.05497,1.39111 -17.14734,0.18935 c -9.43104,0.10415 -17.14734,0.38972 -17.14734,0.63462 0,0.24489 2.45023,9.30788 5.44495,20.13997 l 5.44496,19.6947 h 17.18246 c 9.45035,0 17.18246,-0.0909 17.18246,-0.20197 z m 95.81297,-0.4871 c 3.71356,-0.86043 5.3033,-2.90568 5.3033,-6.82289 0,-3.43485 -6.0353,-27.85996 -8.53979,-34.56089 -1.99257,-5.33124 -5.05418,-8.50572 -8.80123,-9.12568 -5.2978,-0.87654 -21.62666,-2.28229 -21.85458,-1.88147 -0.32545,0.57234 -12.4232,38.80966 -12.4232,39.26597 0,0.20845 4.78319,0.379 10.62932,0.379 11.64947,0 14.54672,-0.66485 16.60832,-3.81126 0.65158,-0.99443 3.00163,-6.98722 5.22233,-13.31731 2.22071,-6.33009 4.40735,-12.14565 4.85922,-12.92346 2.20504,-3.79563 0.0755,4.48364 -6.8095,26.47407 -3.96801,12.67368 -4.13184,13.6029 -2.61968,14.85789 2.15719,1.7903 13.22516,2.67093 18.42549,1.46603 z m 15.12672,-1.79085 c 1.31577,-2.70204 0.0751,-9.7588 -2.12808,-12.10394 -1.48056,-1.57598 -1.48868,-1.65936 -0.19987,-2.05348 3.83215,-1.17185 4.99818,-2.37106 7.90345,-8.12824 3.29104,-6.52166 5.88774,-16.45599 4.6301,-17.71364 -1.23949,-1.23948 -10.18455,-2.19066 -16.13993,-1.71624 -8.04731,0.64107 -8.83884,0.90504 -8.83884,2.94773 0,4.01742 7.32367,29.77591 10.78004,37.91513 1.57877,3.71775 2.50198,3.91489 3.99313,0.85268 z M 426.9157,503.9356 c -0.7387,-5.50743 -5.01782,-17.91227 -6.85876,-19.88299 -2.49353,-2.66933 -5.78088,-3.024 -20.18806,-2.17804 -6.61145,0.38821 -12.59256,0.71033 -13.29135,0.71582 -0.93865,0.007 -0.12492,1.34106 3.1151,5.10557 2.4121,2.80258 4.98704,6.11489 5.72209,7.36071 1.49262,2.5298 4.40008,3.92304 10.81812,5.18396 5.95099,1.16916 17.87337,4.86679 18.39061,5.7037 0.23715,0.38372 0.9316,0.69768 1.54322,0.69768 0.88084,0 1.03656,-0.56267 0.74903,-2.70641 z M 243.04345,482.60038 c -0.25808,-14.54311 -0.60638,-20.18706 -1.38152,-22.38712 -1.35152,-3.83597 -6.09593,-9.37933 -8.05334,-9.4095 -1.9562,-0.0301 -2.85116,-1.18055 -3.46222,-4.45042 -0.27334,-1.4627 -0.79832,-2.84569 -1.16661,-3.0733 -1.1699,-0.72305 -4.61324,1.16582 -5.44229,2.9854 -0.88955,1.95234 -0.99386,9.06659 -0.16401,11.18571 0.68247,1.74273 1.19411,0.86451 1.82643,-3.13504 0.68433,-4.32846 2.23714,-6.74573 3.60441,-5.611 1.68083,1.39497 3.71028,9.60506 4.88277,19.75313 1.72679,14.94557 4.26675,26.86757 7.45708,35.00179 l 0.83201,2.12132 0.7062,-1.76777 c 0.44082,-1.10349 0.57651,-9.07484 0.36109,-21.2132 z m -80.40889,-0.70711 v -21.92031 h -9.8995 -9.89949 v 21.92031 21.92031 h 9.89949 9.8995 z m 515.04858,15.06094 c 2.27949,-7.65023 4.18663,-18.05219 5.35423,-29.20308 1.32328,-12.63764 3.37729,-20.50609 5.35302,-20.50609 1.02833,0 2.16561,3.0057 2.87615,7.6014 0.25555,1.65286 0.74217,3.0052 1.08137,3.0052 0.84819,0 0.78176,-11.80544 -0.0754,-13.40714 -1.31441,-2.456 -4.6017,-2.85632 -23.45496,-2.85632 h -18.27926 l 0.0169,13.61181 c 0.0172,13.91829 0.52341,18.34422 2.30123,20.12204 0.55437,0.55437 2.72562,1.24598 4.825,1.5369 2.09938,0.29093 4.47887,0.94901 5.28775,1.4624 2.90739,1.8453 5.44691,7.136 10.96343,22.8406 0.5123,1.45841 1.10617,2.65072 1.31973,2.6496 0.21355,-10e-4 1.30745,-3.08692 2.43089,-6.85732 z m -56.1281,0.132 c 1.41201,-1.70136 0.39772,-6.28777 -3.52282,-15.92952 -6.30867,-15.51486 -8.73349,-18.06565 -17.03572,-17.92077 -2.55225,0.0445 -5.30405,0.43612 -6.1151,0.87018 -1.32294,0.70802 -1.40517,1.09837 -0.79942,3.79437 0.99663,4.43569 7.52491,21.65877 9.52142,25.11968 0.95031,1.64734 2.59212,3.46423 3.64846,4.03755 2.71015,1.47091 13.08893,1.4916 14.30318,0.0285 z m 9.79366,-1.58114 c 1.0826,-2.03218 2.13645,-10.78685 3.63882,-30.22881 0.78136,-10.11163 1.80037,-21.80936 2.26446,-25.99497 0.97795,-8.82009 0.69956,-9.46809 -4.49895,-10.47252 -4.49163,-0.86785 -20.9504,-0.67686 -24.57495,0.28518 -4.17988,1.10942 -5.3575,2.94951 -7.54351,11.78713 -3.53647,14.29727 -3.21471,16.37046 2.69027,17.33436 7.42183,1.21149 9.50614,4.11292 19.54938,27.21336 4.75312,10.93265 6.75209,13.30945 8.47448,10.07627 z m -274.41639,-1.49381 c 2.22513,-1.11329 5.27701,-2.42332 6.78195,-2.91119 3.87564,-1.2564 2.05528,-2.11152 -4.52345,-2.12491 -6.21631,-0.0126 -8.46585,1.09117 -8.46585,4.15406 0,3.52934 0.71349,3.63073 6.20735,0.88204 z m 29.50154,-0.0972 c 0.28457,-0.46043 -3.33923,-0.68976 -10.38809,-0.6574 -6.70597,0.0308 -10.28698,0.28094 -9.4109,0.6574 2.01527,0.86599 19.26379,0.86599 19.79899,0 z m 122.45936,-1.37417 c 4.12249,-1.87167 5.41955,-4.63726 5.35289,-11.41334 -0.0553,-5.61762 -2.85564,-18.85491 -4.77329,-22.56322 -1.83045,-3.5397 -3.22709,-3.89369 -15.36231,-3.89369 -10.5654,0 -11.19577,0.0785 -12.69828,1.58099 l -1.58099,1.58099 3.304,15.36408 c 3.36676,15.65585 4.31215,18.10095 7.66504,19.82406 2.794,1.43589 14.56072,1.12381 18.09294,-0.47987 z m -154.0532,-10.46986 c 0.15487,-1.09053 0.71096,-1.59403 1.76776,-1.60065 2.63325,-0.0165 4.72379,-0.82004 4.72379,-1.8157 0,-1.48821 -2.40869,-2.41728 -6.26696,-2.41728 -5.26346,0 -7.18371,2.59367 -4.62491,6.24685 1.44542,2.06363 4.08374,1.81587 4.40032,-0.41322 z m 24.87633,1.21367 c 0.92246,-0.61681 0.89539,-0.80651 -0.20777,-1.45587 -0.85056,-0.50068 -1.12149,-1.20961 -0.8224,-2.15195 0.40348,-1.27125 0.21114,-1.36125 -2.0163,-0.94338 -1.7382,0.32609 -2.99378,0.11371 -4.2695,-0.72217 -2.14074,-1.40267 -4.70485,-0.84633 -4.70485,1.02082 0,2.93956 9.14572,6.175 12.02082,4.25255 z m 1.40315,-7.06797 c -1.54847,-2.89334 -5.18954,-3.7546 -17.66661,-4.17883 l -11.66726,-0.3967 4.24264,-2.89197 c 2.33346,-1.59059 8.14057,-5.18247 12.9047,-7.98195 l 8.66206,-5.08998 v -12.34737 -12.34737 h -8.3987 c -6.10602,0 -8.61077,0.25553 -9.17556,0.93606 -1.45447,1.75253 0.50132,2.58849 4.96456,2.12199 5.53749,-0.57878 5.42549,0.65846 -0.295,3.25891 -4.2877,1.94912 -4.43383,2.44851 -0.88388,3.02049 2.38735,0.38465 1.57084,2.15439 -1.41422,3.06523 l -2.82842,0.86305 2.31281,0.52953 c 1.27204,0.29125 2.46504,0.77586 2.6511,1.07692 0.60877,0.98499 -7.4678,5.77238 -10.40232,6.16598 -2.40699,0.32285 -3.00535,0.74912 -3.83342,2.73097 -1.5485,3.70609 -1.2962,5.22225 0.86902,5.22225 1.51452,0 1.78176,-0.26187 1.47281,-1.44326 -0.31667,-1.21096 -0.13077,-1.3689 1.15497,-0.98119 0.84281,0.25414 1.77525,0.68509 2.07208,0.95766 0.68452,0.62856 -2.46683,3.63286 -4.05521,3.86598 -1.7831,0.2617 -2.47202,1.81542 -2.48407,5.60225 -0.0184,5.77768 0.21885,5.93564 9.69901,6.45869 11.55015,0.63727 17.8154,1.63096 20.32411,3.22349 2.34012,1.48549 3.0378,0.9191 1.7748,-1.44083 z m 267.14188,-64.6796 c 0.0403,-30.66025 -0.24924,-35.01375 -2.47654,-37.24104 -2.20933,-2.20934 -7.60414,-2.54619 -11.7076,-0.73103 -2.6544,1.17416 -3.3909,1.92057 -4.09061,4.14567 -0.96928,3.08233 -1.79922,35.91537 -1.03642,41.00202 0.59169,3.94569 2.43989,5.90585 5.56854,5.90585 5.1258,0 6.05482,3.31391 10.01062,35.70889 0.99729,8.16709 2.03603,15.64474 2.30831,16.61701 0.65387,2.33484 1.37844,-30.95371 1.4237,-65.40737 z M 405.8348,463.68527 c -0.0435,-12.95004 -0.75933,-24.55082 -1.56469,-25.35618 -0.38492,-0.38492 -20.39211,1.49141 -23.64751,2.21772 -1.49514,0.33359 -1.57795,0.73419 -1.76777,8.55174 l -0.19915,8.20176 -7.07107,4.08834 c -3.88909,2.24859 -7.07107,4.52048 -7.07107,5.04864 0,0.70926 1.79026,1.08798 6.84845,1.44875 7.54982,0.53849 10.79651,1.76537 11.43828,4.32236 0.2674,1.06542 1.39498,2.09752 3.08805,2.82658 3.49353,1.50435 4.89023,1.69763 13.09668,1.81225 l 6.89429,0.0963 z m 7.78322,11.88348 c 0.75613,-0.75613 1.56996,-2.58577 1.80851,-4.06586 0.90141,-5.59277 1.08553,-5.95618 3.53669,-6.98033 1.33485,-0.55774 4.50747,-1.01407 7.05026,-1.01407 h 4.62327 l -0.18114,-54.624 -0.18114,-54.62399 h -11.3137 -11.31371 l 0.0931,54.80077 c 0.091,53.59121 0.48443,64.53537 2.40307,66.8472 1.13978,1.37335 1.82918,1.30594 3.47484,-0.33972 z M 302.6417,471.31066 c 0,-0.37571 -0.52022,-1.77403 -1.15604,-3.10737 -1.28981,-2.70475 -0.85366,-6.10901 0.78269,-6.10901 1.7851,0 4.61599,-1.60852 4.61599,-2.62281 0,-0.78545 -1.39714,-0.9394 -6.99188,-0.77038 -5.84408,0.17653 -7.21563,0.009 -8.3549,-1.01783 -1.95727,-1.76487 -5.23582,-2.24603 -6.90039,-1.01271 -2.01981,1.49654 -0.4456,3.03142 3.57375,3.48446 2.1186,0.2388 3.5609,0.84405 4.20596,1.76499 0.53993,0.77087 2.02725,1.61118 3.30516,1.86736 l 2.32347,0.46579 -2.2981,1.80024 c -1.26395,0.99014 -2.2981,2.11093 -2.2981,2.49067 0,0.90344 5.55752,3.41423 7.6014,3.43419 0.87505,0.009 1.59099,-0.29188 1.59099,-0.66759 z m -12.4322,-4.69584 c 1.60239,-0.61489 1.3792,-2.84352 -0.41029,-4.09694 -2.19691,-1.53877 -11.85197,-4.95622 -12.41415,-4.39404 -0.2607,0.2607 0.70152,1.44296 2.13827,2.62725 1.43675,1.1843 2.61227,2.75068 2.61227,3.48085 0,0.73018 0.55685,1.65194 1.23744,2.04834 1.3849,0.80663 5.12879,0.98984 6.83646,0.33454 z m 229.29117,-8.10106 c 2.72393,-1.02917 5.72171,-3.992 7.45965,-7.3727 3.43306,-6.67806 0.39873,-18.58989 -5.49547,-21.57345 -1.46799,-0.74308 -4.31685,-1.05928 -9.51954,-1.0566 -6.19346,0.003 -7.83501,0.24338 -9.8995,1.44855 -3.01017,1.75721 -3.27294,3.22322 -1.82364,10.17413 1.32817,6.36995 3.60091,9.60222 7.4876,10.64879 2.86385,0.77116 4.23554,2.34549 4.23554,4.86125 0,1.5703 2.46639,3.62212 4.35394,3.62212 0.66596,0 2.10661,-0.33844 3.20142,-0.75209 z m 48.48175,-2.07633 c 0.97392,-1.94958 1.23657,-4.30507 1.23744,-11.09751 10e-4,-7.93774 -0.12527,-8.76568 -1.58989,-10.42377 -1.88658,-2.13577 -7.22883,-2.99489 -13.64119,-2.19373 -5.89673,0.73675 -7.39524,2.4622 -7.39524,8.51519 0,5.60143 1.34165,8.63972 4.07873,9.23664 4.04299,0.88172 5.69541,1.90229 6.97435,4.30751 1.58338,2.97776 4.0922,4.5225 6.97814,4.29659 1.63934,-0.12832 2.40223,-0.72836 3.35766,-2.64092 z m -266.71982,0.33539 c 1.98096,-1.02439 2.81832,-3.335 1.50316,-4.14781 -0.32067,-0.19819 -2.42337,0.0675 -4.67266,0.59032 -6.79347,1.5792 -8.17295,4.63631 -2.09206,4.63631 1.74644,0 4.11415,-0.48547 5.26156,-1.07882 z m -139.55909,-2.02039 c -1.74781,-4.55471 -7.55384,-36.00417 -7.55409,-40.91819 -1.5e-4,-2.76532 -1.02398,-3.58135 -1.72443,-1.37444 -0.22295,0.70246 -1.65796,7.62327 -3.1889,15.37958 -1.53094,7.75629 -3.27839,16.38526 -3.88322,19.17548 -1.07573,4.96264 -0.91324,7.12915 0.6131,8.1743 0.41728,0.28573 4.21336,0.52438 8.43574,0.53033 6.24778,0.009 7.60719,-0.17123 7.3018,-0.96706 z m 192.77398,-5.23518 c 2.17023,-2.39808 3.31854,-6.39919 3.31854,-11.56299 0,-6.13233 -1.00926,-7.67979 -5.00883,-7.67979 -4.46098,0 -5.15949,1.32452 -4.64593,8.80953 0.60263,8.78297 1.49141,11.69657 3.568,11.69657 0.89371,0 2.13941,-0.56849 2.76822,-1.26332 z m 132.54146,0.17677 c 3.46042,-2.42377 3.73657,-10.44213 0.84089,-24.41608 -2.6286,-12.68502 -9.33832,-31.77302 -11.1687,-31.77302 -1.42924,0 -4.24144,11.18507 -6.13353,24.39519 -1.29344,9.03046 -1.29601,13.21819 -0.01,16.29611 1.04245,2.49494 1.31814,2.69277 4.82519,3.46238 2.15073,0.47197 3.66439,3.09865 4.38608,7.61125 0.26209,1.63877 1.10755,3.16249 2.25601,4.06587 2.20033,1.73078 2.96625,1.78562 5.00403,0.3583 z m 55.77224,-0.71434 c 0.79021,-1.20603 1.3472,-4.18409 1.68621,-9.01562 0.27842,-3.96809 0.75275,-7.79593 1.05407,-8.50631 0.85545,-2.01684 3.39516,-2.59749 11.36115,-2.59749 5.0777,0 7.37859,-0.25289 7.37859,-0.81098 0,-0.44604 -1.14976,-4.66216 -2.55503,-9.36916 -4.72494,-15.8264 -5.31842,-16.33636 -19.01173,-16.33636 -10.1003,0 -12.04527,0.56389 -12.83791,3.72203 -0.27955,1.11383 0.0156,3.69089 0.70624,6.16678 3.7318,13.37784 4.85292,18.54679 5.71694,26.35819 1.25558,11.35136 3.51022,14.95412 6.50147,10.38892 z m -281.636,-0.27546 c 1.48923,-0.34563 2.90081,-0.82154 3.13686,-1.0576 1.02049,-1.02049 -1.11741,-4.37165 -3.73456,-5.8539 l -2.81707,-1.59549 3.67058,-0.0116 c 3.94603,-0.0125 5.33232,-0.98648 3.40745,-2.39398 -1.08944,-0.79661 -1.09572,-0.95671 -0.0708,-1.8073 0.88873,-0.73758 1.12451,-2.39429 1.12451,-7.90145 0,-6.65245 0.0801,-7.02067 1.76777,-8.12647 2.03049,-1.33043 2.18167,-2.38677 0.74045,-5.17379 -1.77706,-3.43646 -4.28615,-3.95426 -19.12523,-3.94694 -14.39917,0.007 -20.64519,0.57781 -22.69027,2.07321 -1.22904,0.89869 -1.2022,1.28122 0.65348,9.31436 2.11149,9.14048 3.00179,10.99713 6.20851,12.94724 l 2.12609,1.29296 -1.85555,0.46572 c -1.51482,0.38019 -1.81491,0.81825 -1.63419,2.38559 0.15783,1.3688 0.62398,1.91988 1.62401,1.91988 2.05617,0 2.26039,2.30921 0.22968,2.59705 -1.17673,0.1668 -1.69411,0.76724 -1.85369,2.15126 -0.22925,1.98827 0.0598,2.16299 4.81756,2.91239 3.56286,0.56118 21.64639,0.41881 24.27442,-0.19111 z M 534.5619,443.3374 c 0.0382,-12.53338 -4.91092,-32.15481 -8.1104,-32.15481 -1.34328,0 -2.1289,1.59734 -3.22985,6.56706 -0.85762,3.87125 -0.82257,4.19574 0.64915,6.01041 2.44328,3.01258 4.06359,6.93588 6.48687,15.7068 1.23567,4.47245 2.41113,8.40435 2.61214,8.73755 0.72957,1.20936 1.58151,-1.39504 1.59209,-4.86701 z m 65.40955,-10.12225 c 1.34578,-4.14638 4.78454,-8.59753 6.64208,-8.59753 2.05974,0 4.14789,-2.00474 4.58528,-4.40212 0.9132,-5.00531 -3.33172,-18.03009 -8.8363,-27.1126 -1.28021,-2.11234 -2.70161,-3.84062 -3.15866,-3.84062 -1.38587,0 -1.69974,3.71905 -2.15864,25.57778 -0.52,24.7689 -0.0687,27.60263 2.92624,18.37509 z m -373.07933,-2.6879 c -0.71,-3.75005 -1.41688,-6.94427 -1.57086,-7.09824 -0.15398,-0.15398 -0.67939,2.28767 -1.16758,5.4259 -0.81249,5.22294 -0.78097,5.82371 0.37248,7.09825 0.69305,0.76581 1.79936,1.39238 2.45847,1.39238 1.12004,0 1.11399,-0.44572 -0.0925,-6.81829 z m 237.42426,5.1432 c 1.86163,-1.60131 1.94902,-1.9673 1.98398,-8.30851 0.0201,-3.64837 -0.19446,-7.4539 -0.47681,-8.45672 -0.71139,-2.52657 -3.27057,-3.47999 -9.34106,-3.47999 -6.86966,0 -8.25683,1.05833 -8.90322,6.79258 -0.25838,2.29217 -0.25314,6.04723 0.0116,8.34458 0.66971,5.81063 1.99434,6.78315 9.23896,6.78315 4.8072,0 5.79641,-0.22133 7.4865,-1.67509 z m 223.69852,1.0611 c 4.95944,-1.25312 4.94203,-1.17787 3.35915,-14.52389 -1.22313,-10.31281 -1.08878,-10.21388 -15.09848,-11.11626 -5.794,-0.37319 -13.87562,-0.58489 -17.95916,-0.47045 l -7.42462,0.20809 -0.19238,13.25825 -0.19238,13.25825 17.87005,-0.0837 c 9.82853,-0.046 18.66554,-0.28466 19.63782,-0.53033 z M 386.0803,421.79612 v -6.35703 l -19.62221,0.44486 c -10.79222,0.24467 -19.71272,0.51767 -19.82334,0.60667 -0.11061,0.089 0.0147,2.74947 0.27845,5.91217 l 0.47956,5.75036 h 19.34377 19.34377 z m 128.69343,-1.85441 c 0,-1.51873 -8.02005,-27.67436 -9.1873,-29.96236 -2.1305,-4.17612 -4.25616,-4.96669 -13.22822,-4.9198 -4.20008,0.022 -8.75021,0.42795 -10.11139,0.90221 -2.25495,0.78567 -2.45738,1.0806 -2.27812,3.31884 0.22324,2.78736 5.96284,20.1647 7.92134,23.98285 1.82947,3.56661 4.50657,5.83235 7.59966,6.43192 3.29196,0.63812 19.28403,0.8424 19.28403,0.24634 z M 389.72295,406.93995 c 3.15197,-9.06359 3.98071,-13.89289 2.618,-15.2556 -1.5611,-1.5611 -10.63553,-2.47937 -24.99898,-2.52971 -13.19137,-0.0462 -17.7788,0.50083 -20.42493,2.43572 -1.19091,0.87082 -1.24989,1.7611 -0.77245,11.66183 l 0.51689,10.71903 9.27959,0.22757 c 5.10377,0.12516 14.21165,0.21367 20.23974,0.19668 l 10.96015,-0.0309 z m -159.20614,2.15823 c 2.50435,-1.23973 4.49517,-4.00599 3.75036,-5.21112 -0.22332,-0.36135 -1.98471,-0.47001 -3.91421,-0.24149 -6.2576,0.74112 -10.24629,4.38074 -7.22333,6.59117 1.41209,1.03255 3.71993,0.67685 7.38718,-1.13856 z m 234.80594,1.35243 c 2.06776,-1.10664 1.7773,-4.86606 -1.80209,-23.32466 -1.7434,-8.99055 -3.52917,-18.41003 -3.96839,-20.93219 -0.43922,-2.52216 -0.94739,-4.43692 -1.12929,-4.25503 -0.18189,0.18189 -2.53951,10.77932 -5.23915,23.54985 -2.69964,12.77053 -5.08216,23.77598 -5.29449,24.45657 -0.35244,1.12973 0.33,1.23744 7.83981,1.23744 4.52423,0 8.84135,-0.32939 9.5936,-0.73198 z m -197.37668,-2.71499 c 0.39021,-0.72911 0.90433,-2.55875 1.14249,-4.06587 0.37732,-2.38776 0.17193,-2.98904 -1.59691,-4.67492 -3.79161,-3.61378 -19.43931,-4.70993 -20.5299,-1.43816 -0.30717,0.9215 5.14328,2.65732 10.77867,3.43272 5.36577,0.73829 7.05559,1.50921 6.02639,2.74933 -0.86675,1.04436 -0.59557,1.92232 1.26182,4.08511 1.35826,1.58159 2.03474,1.56113 2.91744,-0.0882 z m 246.82766,-30.49415 v -31.81981 l -4.77297,0.001 c -6.41087,10e-4 -9.4888,1.52678 -10.38259,5.14521 -0.91435,3.70166 0.14421,6.52095 2.44842,6.52095 1.64616,0 1.74699,0.22447 1.74699,3.88909 0,3.52184 -0.15383,3.91089 -1.62909,4.12004 -2.20082,0.312 -3.18025,3.12022 -2.75555,7.90078 0.41916,4.71833 1.626,7.53902 3.4271,8.01002 1.88064,0.4918 6.32982,10.44519 8.74654,19.56714 2.00866,7.58174 2.31314,8.48528 2.85933,8.48528 0.17151,0 0.31182,-14.31891 0.31182,-31.8198 z m -253.31925,30.52872 c 0.97554,-0.61939 -1.67633,-3.50845 -4.60185,-5.01345 -2.56865,-1.32141 -10.06437,-1.72236 -14.59923,-0.78093 -4.87948,1.01298 -8.18804,3.62936 -6.76215,5.34744 0.68928,0.83054 3.20952,1.02881 12.96658,1.02009 6.66106,-0.006 12.50955,-0.26387 12.99665,-0.57315 z m -22.09884,-6.86252 c 7.95703,-2.07182 7.98141,-4.97688 0.0408,-4.8645 -5.64146,0.0798 -11.22694,2.56945 -11.59421,5.1679 -0.23371,1.65344 -0.14551,1.68458 3.53553,1.2485 2.07637,-0.24598 5.6844,-0.94434 8.01785,-1.5519 z m -4.90689,-5.72809 c 1.20234,-0.7878 3.60552,-1.20269 7.57652,-1.30802 6.15033,-0.16315 11.82606,-1.88772 11.82606,-3.59336 0,-2.22244 -12.31613,-2.28305 -13.55646,-0.0667 -0.39948,0.71384 -1.54831,1.17211 -2.93834,1.17211 -2.80112,0 -5.42551,1.72958 -5.42551,3.57563 0,1.67105 0.2679,1.6945 2.51773,0.22035 z m 163.16202,-6.72223 c -0.70259,-1.22053 -2.22165,-2.80239 -3.37571,-3.51526 -3.90792,-2.41394 -10.98319,-2.57935 -10.98319,-0.25676 0,0.9421 7.8905,3.85684 10.50432,3.88027 0.63962,0.006 1.95844,0.45183 2.93071,0.99133 0.97227,0.5395 1.86531,1.01211 1.98453,1.05023 0.11921,0.0381 -0.35809,-0.92928 -1.06066,-2.14981 z m -155.04828,-1.6828 c 2.94532,-1.52308 3.94664,-6.76692 1.38123,-7.23332 -1.50598,-0.2738 -7.77006,5.32727 -7.77006,6.94764 0,1.71331 3.33935,1.86263 6.38883,0.28568 z m 28.76681,-3.68973 c -0.16253,-1.07484 -0.29985,-0.36328 -0.30516,1.58127 -0.005,1.94454 0.12767,2.82396 0.29551,1.95426 0.16784,-0.8697 0.17219,-2.46069 0.01,-3.53553 z m 79.14256,4.01795 c 1.07815,-0.40991 7.54238,-1.06724 14.36494,-1.46073 14.32254,-0.82604 15.58665,-1.01428 15.58665,-2.32117 0,-1.52069 -2.37755,-1.81571 -14.84925,-1.84264 l -11.66726,-0.0252 3.05907,-1.38823 c 2.18016,-0.98937 2.99107,-1.74676 2.82238,-2.63612 -0.36584,-1.92882 -3.59121,-1.89002 -7.49899,0.0902 -4.33217,2.19528 -7.22129,5.5008 -7.22129,8.2621 0,1.71873 0.29014,2.06707 1.72173,2.06707 0.94696,0 2.60387,-0.33538 3.68202,-0.7453 z m -93.45138,-0.64815 c 0.60193,-0.97394 -1.45406,-4.67958 -3.32244,-5.98825 -4.38755,-3.07315 -9.26551,1.49414 -5.74752,5.38148 0.85256,0.94207 2.18495,1.29311 4.90801,1.29311 2.05578,0 3.92865,-0.30885 4.16195,-0.68634 z m 137.5451,-5.26642 c 0,-1.21254 -6.93288,-3.59924 -13.43503,-4.62511 -6.78123,-1.0699 -17.12554,-0.94191 -18.73061,0.23174 -1.27466,0.93206 -1.26381,0.9994 0.29551,1.83392 0.89032,0.47648 5.80019,1.16802 10.91082,1.53676 5.11062,0.36873 10.56484,0.93877 12.12048,1.26674 4.77003,1.00568 8.83883,0.89334 8.83883,-0.24405 z m -122.54656,-3.04939 c -0.17928,-0.688 -0.33776,-0.2963 -0.35217,0.87042 -0.0144,1.16673 0.13227,1.72963 0.32597,1.2509 0.19369,-0.47874 0.20548,-1.43333 0.0262,-2.12132 z m -19.65628,-1.16127 c 0.99117,-1.19429 0.34254,-3.07833 -1.37654,-3.99836 -4.33458,-2.3198 -11.36997,1.78335 -7.21114,4.20565 1.83987,1.07162 7.64252,0.93156 8.58768,-0.20729 z m 116.70358,-2.57015 c 8.62809,-0.77749 10.77762,-1.93981 7.92004,-4.28261 -2.12393,-1.7413 -10.56043,-1.87966 -16.74367,-0.27461 -4.34898,1.12891 -11.63905,4.18379 -11.63905,4.87731 0,0.61001 12.2712,0.41806 20.46268,-0.32009 z m 267.45915,-5.23904 c 3.37688,-0.54816 7.03616,-1.42836 8.13173,-1.956 1.83147,-0.88204 1.9898,-1.2715 1.96526,-4.83427 -0.0147,-2.13122 -0.883,-8.71825 -1.92959,-14.63785 -1.04659,-5.9196 -2.60807,-16.97698 -3.46996,-24.57196 -0.86188,-7.59498 -1.76041,-13.80905 -1.99673,-13.80905 -0.23631,0 -0.82925,3.26153 -1.31764,7.24784 -0.48839,3.98631 -2.61948,17.53849 -4.73575,30.11595 -2.11626,12.57745 -3.84776,22.99843 -3.84776,23.15774 0,0.4262 0.47707,0.379 7.20044,-0.7124 z m -251.52776,-1.7909 c 0.78,-1.26206 -2.4245,-2.19282 -9.04746,-2.62787 -6.46548,-0.4247 -12.39377,0.10326 -11.47508,1.02195 1.38757,1.38757 19.76855,2.82591 20.52254,1.60592 z m -111.17927,-8.16721 c 0.3405,-6.22341 0.32837,-6.28588 -0.54919,-2.82842 -1.04578,4.12019 -1.33002,10.85907 -0.41606,9.86414 0.33939,-0.36947 0.77376,-3.53554 0.96525,-7.03572 z m 94.82867,2.25782 c 1.07894,-0.70695 1.67216,-1.61487 1.44387,-2.20981 -0.84488,-2.2017 -9.46652,-3.57682 -9.46652,-1.50987 0,0.55716 -0.607,1.20566 -1.34889,1.44113 -1.71907,0.54561 -2.51112,2.54788 -1.32671,3.35389 1.43362,0.97561 8.67968,0.24727 10.69825,-1.07534 z m 6.29626,-9.71962 c 1.45841,-0.40502 2.65165,-1.04751 2.65165,-1.42777 0,-1.76645 -8.21017,-2.6948 -12.72421,-1.43876 -2.11536,0.5886 -2.72899,2.64887 -0.92796,3.11562 2.40259,0.62264 8.34617,0.48806 11.00052,-0.24909 z m 54.97755,-1.77508 c 0,-0.21894 -0.7815,-5.54875 -1.73666,-11.84404 -2.22928,-14.69275 -4.1448,-30.85476 -6.38493,-53.8724 -2.10681,-21.64779 -2.46607,-24.39518 -3.18993,-24.39518 -0.98558,0 -1.37318,2.89837 -4.25524,31.81981 -2.84202,28.5197 -5.34261,50.10211 -6.08898,52.55371 -0.68608,2.25355 0.35486,4.57216 2.38565,5.31381 2.02859,0.74086 19.27009,1.12048 19.27009,0.42429 z m 83.10075,-9.51449 c 1.52556,-1.26608 1.34568,-3.08983 -2.47459,-25.08925 -1.62084,-9.33381 -3.12464,-18.0047 -3.34177,-19.26866 -0.43175,-2.51325 -1.31463,-3.00529 -1.90318,-1.06066 -0.20598,0.68059 -1.02278,7.2832 -1.81511,14.67247 -0.79234,7.38926 -1.95485,16.84846 -2.58336,21.02043 -1.2469,8.27674 -1.10283,9.43261 1.30325,10.45618 2.23488,0.95075 9.36968,0.46881 10.81476,-0.73051 z m -260.19491,-5.26754 c 1.22205,-2.9248 1.28218,-4.55797 0.26598,-7.22453 l -0.75858,-1.99058 -2.4234,2.64127 c -2.81493,3.06801 -2.90104,3.63772 -1.01692,6.7279 1.78732,2.93143 2.65796,2.89733 3.93292,-0.15406 z m 22.23778,-16.19959 c 0,-5.02186 -0.27899,-7.56126 -0.88389,-8.04523 -0.48613,-0.38895 -2.63397,-0.8787 -4.77297,-1.08832 -2.139,-0.20963 -4.60503,-0.60387 -5.48007,-0.87608 -2.53695,-0.78922 -2.01436,1.81267 0.93551,4.65781 1.38958,1.34024 3.9681,4.74375 5.73005,7.56333 1.76194,2.81959 3.48879,5.12653 3.83745,5.12653 0.34866,0 0.63392,-3.30212 0.63392,-7.33804 z M 345.06811,307.275 c 9.4433,-1.07126 11.31371,-1.49152 11.31371,-2.54209 0,-1.57959 -4.46854,-2.05351 -19.44544,-2.06233 -15.8133,-0.009 -23.19765,0.64237 -24.73851,2.18323 -0.83441,0.83441 -1.34455,0.87317 -2.60612,0.19799 -2.01965,-1.08088 -47.65819,-0.52212 -48.7775,0.59719 -0.85853,0.85853 3.12141,1.51222 14.25029,2.34052 9.57243,0.71247 62.15572,0.17576 70.00357,-0.71451 z m -74.51576,-6.07648 c 0.94811,-1.447 1.02129,-2.13904 0.37597,-3.55538 -1.01663,-2.23126 -2.5584,-2.82459 -4.74771,-1.82707 -1.32218,0.60243 -1.72267,1.33092 -1.72267,3.13352 0,1.29173 0.38183,2.73045 0.84852,3.19714 1.43511,1.4351 3.98644,0.97394 5.24589,-0.94821 z m 32.19578,1.07187 c 4.60174,-1.27816 4.44621,-5.12031 -0.25856,-6.38717 -4.23417,-1.14014 -26.84629,-0.61595 -28.37881,0.65787 -1.57009,1.30507 -1.47635,1.967 0.56809,4.01143 1.30529,1.3053 2.48868,1.73497 4.77297,1.73298 3.18173,-0.003 7.57909,-2.11426 7.70402,-3.69927 0.0388,-0.49185 0.29115,-0.10133 0.56087,0.86783 0.26972,0.96916 1.27215,2.15772 2.22762,2.64123 2.10256,1.06399 9.25156,1.16176 12.8038,0.1751 z m 31.56463,-1.33743 c 3.44338,-0.66579 3.35065,-0.60472 3.96636,-2.61212 0.29274,-0.95441 -0.0121,-2.07276 -0.84572,-3.10218 -1.24952,-1.54309 -1.74074,-1.61055 -11.86561,-1.62947 -11.91281,-0.0223 -13.7337,0.4726 -13.7337,3.73236 0,2.33202 0.68056,2.91394 4.21862,3.60721 3.55113,0.69583 14.66983,0.69838 18.26005,0.004 z m 11.46245,-0.76613 c 2.24962,-2.24961 1.49566,-5.5282 -1.50981,-6.56536 -3.46526,-1.19585 -5.67552,4.70747 -2.57549,6.87882 2.02243,1.41657 2.38294,1.3889 4.0853,-0.31346 z m -39.7639,-26.67614 -0.18763,-20.31218 -8.83883,0.21664 c -13.66891,0.33501 -22.46412,1.2472 -24.42715,2.53342 -1.56562,1.02584 -1.7358,1.61607 -1.7358,6.02028 0,3.35233 0.32568,5.20863 1.03899,5.92194 0.78268,0.78268 1.08795,3.28091 1.23744,10.12678 l 0.19844,9.08778 h 2.12132 c 1.71747,0 2.35669,-0.47116 3.35766,-2.47487 0.67998,-1.36118 1.23683,-3.49024 1.23744,-4.73124 0.002,-4.11403 1.24441,-3.1043 1.72718,1.40371 0.69148,6.45691 1.52199,7.03546 2.05142,1.42908 0.73006,-7.73091 0.57003,-15.07211 -0.32855,-15.07211 -0.5547,0 -0.53331,-0.31375 0.0711,-1.04195 1.05589,-1.27227 5.01426,-2.09066 7.02512,-1.45244 2.12434,0.67424 1.8585,2.03667 -0.29208,1.49691 -2.65142,-0.66546 -2.30802,1.62351 0.39673,2.64443 l 2.16451,0.81701 -0.21996,7.63257 c -0.25028,8.68468 -0.12615,8.90639 5.08334,9.07932 2.6917,0.0894 2.41932,0.19531 -1.76776,0.68762 -2.72236,0.3201 -10.09661,1.07174 -16.38722,1.67032 -11.57715,1.1016 -15.85461,2.0312 -14.66385,3.18681 1.07979,1.04792 4.16299,1.22623 23.10696,1.3364 l 18.21884,0.10595 z m 35.87482,18.22218 c 1.32871,-0.54154 1.30734,-0.60264 -0.35356,-1.01074 -2.96074,-0.7275 -16.97104,-1.84779 -23.11601,-1.84842 -5.67632,-5.8e-4 -8.30309,0.95483 -4.94348,1.79804 5.27659,1.32434 25.87934,2.09377 28.41305,1.06112 z m -5.87393,-4.09719 c 0.58453,-0.68059 1.29307,-1.87383 1.57454,-2.65165 0.91739,-2.53509 2.53162,-17.48179 2.53162,-23.4411 v -5.81717 l -3.35876,-0.53422 c -1.84731,-0.29381 -5.10517,-0.55196 -7.23967,-0.57366 -3.82203,-0.0388 -3.89319,-0.002 -4.68899,2.43543 -0.98589,3.01948 -1.91746,2.96143 -2.39025,-0.14895 -0.32531,-2.14012 -0.60774,-2.3641 -3.53553,-2.80384 -1.75009,-0.26285 -5.01162,-0.5015 -7.24785,-0.53033 l -4.06586,-0.0524 0.0104,14.67247 c 0.0119,16.79018 0.31447,18.08352 4.309,18.42052 3.61762,0.30521 4.31305,-0.96769 4.93825,-9.03884 0.29775,-3.84386 0.92192,-7.7261 1.38706,-8.6272 1.64737,-3.19143 3.67796,-4.82035 6.00896,-4.82035 2.34166,0 4.30174,1.52933 3.53992,2.76197 -0.23882,0.38644 0.22611,1.05602 1.0332,1.48796 1.37084,0.73365 1.43558,1.17804 0.98343,6.75045 -0.52388,6.45663 0.71347,11.60877 3.12614,13.01669 1.62407,0.94773 1.87078,0.90728 3.08437,-0.50577 z m -72.6395,-32.58913 c 3.89589,-0.93677 5.13973,-1.56652 5.95183,-3.01339 0.56467,-1.00602 0.82436,-2.35633 0.5771,-3.00069 -1.08187,-2.81931 -10.88474,-0.28487 -13.94474,3.60529 -3.07891,3.91421 -1.27793,4.4992 7.41581,2.40879 z m 91.5949,-0.40526 c 0,-1.27078 -3.90876,-4.58529 -6.87158,-5.82686 -2.65437,-1.11232 -6.29477,-1.25319 -6.90417,-0.26717 -0.7581,1.22664 1.62266,4.72931 4.01633,5.90899 2.99534,1.47618 9.75942,1.60444 9.75942,0.18504 z m -68.2358,-2.63385 c 11.00257,-0.87003 38.99461,-0.37303 46.20604,0.82039 5.12537,0.84821 7.18052,0.44731 7.18052,-1.40068 0,-2.42635 -2.33076,-4.16879 -6.71751,-5.0219 -2.33346,-0.45381 -13.92905,-0.9884 -25.76799,-1.18798 -25.53534,-0.43048 -30.1439,0.0778 -33.79327,3.72718 -1.27082,1.27082 -2.31059,2.86134 -2.31059,3.53448 0,1.02399 0.43311,1.14936 2.65165,0.7676 1.45841,-0.25096 7.10643,-0.80854 12.55115,-1.23909 z m -15.9099,-6.53755 c 4.08354,-0.57324 10.9248,-1.40502 15.20279,-1.84837 9.2508,-0.95873 12.1276,-1.75644 13.13716,-3.64281 0.5747,-1.07385 0.47461,-1.82825 -0.42465,-3.2007 -1.12422,-1.71577 -1.38608,-1.77498 -5.88389,-1.33021 -8.27001,0.81778 -18.02924,2.62863 -21.84361,4.05314 -4.93549,1.8432 -13.17582,8.67477 -8.93352,7.40625 0.7266,-0.21726 4.66217,-0.86404 8.74572,-1.4373 z m 76.95678,1.0474 c -0.61879,-1.67108 -7.69548,-6.59036 -10.8423,-7.5369 -4.4657,-1.34325 -19.84275,-2.57511 -28.63782,-2.29418 l -6.71752,0.21456 -0.22371,1.9442 c -0.35124,3.05253 0.97037,3.35053 22.85113,5.15259 7.38926,0.60856 15.34421,1.52629 17.67767,2.03938 5.43478,1.19506 6.17969,1.25578 5.89255,0.48035 z m -42.01286,-12.00686 c 21.28201,-0.45595 23.49497,-0.83668 18.84366,-3.24197 -5.63282,-2.91284 -24.00325,-3.99643 -36.46347,-2.15082 -13.08445,1.93808 -17.32411,3.35283 -17.32411,5.78094 0,1.01923 0.80833,1.08599 7.24784,0.59856 3.98632,-0.30174 16.44955,-0.74576 27.69608,-0.98671 z m -16.35712,-7.12414 c 2.22181,-0.46125 4.55575,-1.35471 5.18651,-1.98548 1.05772,-1.05772 1.01654,-1.25248 -0.52986,-2.5062 -3.44929,-2.79647 -15.31218,-0.32269 -17.08224,3.56217 -0.5857,1.28545 -0.56391,1.83844 0.0883,2.24154 0.92272,0.57028 5.73586,0.0584 12.33727,-1.31203 z m 43.28988,0.66782 c 0.24301,-0.39321 -0.46687,-1.62365 -1.57753,-2.73431 -2.17636,-2.17636 -6.33891,-3.03528 -20.34762,-4.19862 l -6.36396,-0.52849 10.14806,-0.52156 c 5.58144,-0.28686 10.81399,-0.87795 11.6279,-1.31354 1.4548,-0.77859 1.44482,-0.8199 -0.59045,-2.44277 -2.88064,-2.29694 -6.50286,-2.75356 -21.53907,-2.71523 -13.58916,0.0346 -19.87164,1.0337 -21.90466,3.48333 -1.27984,1.54212 0.99996,2.2082 9.88385,2.88773 4.08354,0.31235 6.90043,0.68672 6.25975,0.83194 -1.59184,0.3608 -2.11792,2.81488 -0.87077,4.06203 1.27045,1.27044 3.38179,1.59452 14.05646,2.15759 4.6669,0.24618 9.91717,0.70009 11.66726,1.0087 4.68937,0.82694 9.0475,0.83752 9.55078,0.0232 z m -10.75351,-17.28986 c 2.28249,-1.00103 0.93852,-2.81043 -3.40314,-4.58169 -5.70274,-2.32653 -13.78764,-2.38241 -19.54697,-0.1351 -5.69903,2.22378 -6.01803,3.83943 -1.01118,5.12146 2.69762,0.69074 22.21519,0.36111 23.96129,-0.40467 z m -20.8975,-7.4531 c 11.38803,-1.47923 13.06593,-6.38427 2.17095,-6.34638 -4.83021,0.0168 -9.20298,1.57878 -11.42947,4.08269 -2.62795,2.9554 -0.35156,3.51197 9.25852,2.26369 z m 12.11234,-8.21807 c 3.13606,-0.62721 3.08546,-3.25961 -0.0884,-4.59879 -3.04244,-1.28374 -10.82118,-1.11577 -14.15208,0.30559 -2.93575,1.25274 -4.10544,3.11506 -2.56797,4.08857 1.13108,0.7162 13.49783,0.86675 16.80843,0.20463 z" - id="path334" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 514.09258,457.88264 c -0.56909,-0.35994 -1.37262,-1.85882 -1.78563,-3.33084 -0.73928,-2.6349 -1.55261,-3.30354 -6.23593,-5.12654 -3.39312,-1.32078 -7.22385,-12.52118 -5.80809,-16.98185 1.10702,-3.48791 15.90002,-4.78657 21.46706,-1.88457 3.99216,2.08103 7.27674,11.80387 5.81787,17.22172 -1.97308,7.32747 -9.22904,12.77516 -13.45528,10.10208 z" - id="path335" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 495.12256,418.97177 c -2.70802,-0.6416 -4.82726,-2.38695 -6.25819,-5.15407 -0.93075,-1.79988 -6.61755,-17.19342 -6.61755,-17.91299 0,-0.1711 5.60996,-0.22421 12.46657,-0.11801 l 12.46657,0.1931 2.98896,9.97997 c 1.64392,5.48899 3.19948,10.81881 3.4568,11.84404 l 0.46785,1.86406 -8.32197,-0.0724 c -4.57709,-0.0398 -9.36916,-0.32048 -10.64904,-0.62372 z" - id="path336" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 478.50115,439.33291 c -0.73921,-1.29071 -1.9108,-2.05587 -3.64644,-2.38148 -4.75123,-0.89133 -5.62512,-5.70905 -3.54622,-19.55014 1.69766,-11.30287 1.18315,-10.46134 6.39606,-10.46134 h 4.49681 l 1.7931,5.87863 c 2.3307,7.64118 4.42314,17.31147 5.02602,23.22792 l 0.48008,4.71137 -4.95513,0.23838 c -4.7475,0.22839 -5.00078,0.15869 -6.04428,-1.66334 z" - id="path337" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 449.79685,435.30116 c -2.71985,-2.71985 -2.70861,-15.12294 0.0162,-17.84772 1.95399,-1.95399 12.03227,-1.92365 13.99806,0.0421 2.86338,2.86338 2.84736,15.53349 -0.0226,17.90542 -2.23148,1.84422 -12.11808,1.77367 -13.99159,-0.0998 z" - id="path338" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 450.47991,401.10632 c 0.72264,-3.2085 2.19356,-10.04976 3.26872,-15.2028 l 1.95484,-9.36916 h 2.55466 2.55467 l 2.58647,13.25825 c 1.42256,7.29204 2.58594,14.1333 2.58528,15.2028 l -0.001,1.94454 h -8.40867 -8.40866 z" - id="path339" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 408.00061,386.43385 v -16.97056 h 10.96016 10.96015 v 16.97056 16.97057 h -10.96015 -10.96016 z" - id="path340" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 411.36785,325.44589 c 0.89049,-7.48649 1.78944,-14.96414 1.99767,-16.617 l 0.3786,-3.00521 h 4.82404 4.82405 l 0.48566,4.77297 c 0.6339,6.22978 3.18446,24.82719 3.68513,26.87006 0.38911,1.58771 0.37115,1.59099 -8.71215,1.59099 h -9.10206 z" - id="path341" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 408.00061,362.03867 v -7.42462 h 10.96016 10.96015 v 7.42462 7.42462 h -10.96015 -10.96016 z" - id="path342" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 410.13073,348.3994 c -1.4085,-1.14053 -1.51247,-1.66196 -1.05752,-5.3033 l 0.50457,-4.0384 h 9.04875 9.04876 l 0.46243,3.0052 c 0.25433,1.65287 0.63591,4.03935 0.84795,5.3033 l 0.38553,2.2981 h -8.83919 c -7.43783,0 -9.08685,-0.20054 -10.40128,-1.2649 z" - id="path343" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 410.92262,475.28852 c -1.72498,-2.07848 -2.25184,-10.0128 -2.69556,-40.59463 l -0.454,-31.28947 h 11.07393 11.07393 v 29.60763 29.60763 l -5.69952,0.32994 c -6.93226,0.4013 -8.35205,1.47835 -9.22454,6.99765 -0.68877,4.35713 -2.70131,6.99553 -4.07424,5.34125 z" - id="path344" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 413.65747,305.2505 c 0,-2.2527 4.31027,-42.86367 4.57775,-43.13115 0.67012,-0.67011 1.02884,1.8728 2.47451,17.54138 0.80736,8.75045 1.71746,18.21684 2.02243,21.03643 l 0.5545,5.12652 h -4.8146 c -2.64803,0 -4.81459,-0.25793 -4.81459,-0.57318 z" - id="path345" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 572.32775,325.79945 c 4.73984,-15.69661 7.53205,-34.83523 9.04012,-61.9637 0.47408,-8.52804 0.94665,-15.21788 1.05016,-14.8663 0.10352,0.35158 1.15361,8.1169 2.33354,17.25625 1.17994,9.13936 3.48219,26.12066 5.11613,37.73623 2.89411,20.57408 2.93627,21.14446 1.63348,22.09709 -0.97448,0.71255 -3.80767,0.97787 -10.44221,0.97787 -8.34226,0 -9.07359,-0.10365 -8.73122,-1.23744 z" - id="path346" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 572.04938,395.9798 v -62.57895 h 10.60661 10.6066 v 62.57895 62.57895 h -10.6066 -10.60661 z" - id="path347" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 512.01526,399.33855 c -2.62612,-9.72672 -5.51766,-16.16487 -8.28427,-18.44535 -2.55395,-2.10518 -3.81286,-5.19007 -3.79684,-9.30392 0.016,-4.11103 0.69301,-5.66152 2.47203,-5.66152 1.9054,0 2.47189,-1.19521 2.45723,-5.18436 -0.0127,-3.45453 -0.84294,-5.0815 -2.30651,-4.51988 -2.92073,1.12079 -3.61941,-4.62579 -0.941,-7.73963 1.52168,-1.76906 2.23122,-1.99363 7.07107,-2.23803 l 5.37966,-0.27167 v 29.77578 c 0,16.37667 -0.0857,29.77577 -0.19045,29.77577 -0.10474,0 -0.94215,-2.78424 -1.86092,-6.18719 z" - id="path348" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 502.02108,339.88697 -1.59562,-1.29205 1.14137,-7.72356 c 0.62776,-4.24796 1.81761,-13.92842 2.64412,-21.51214 0.82651,-7.58372 1.60301,-13.89212 1.72556,-14.01865 0.4405,-0.45483 1.05053,2.61801 3.97624,20.02905 3.98096,23.69089 3.94689,23.25759 1.93965,24.66352 -2.26222,1.58452 -7.79561,1.50225 -9.83132,-0.14617 z" - id="path349" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 481.90963,394.74236 c -0.52705,-1.59097 -1.77615,-6.52918 -1.78018,-7.03783 -0.009,-1.09135 5.69232,-1.9701 12.80539,-1.97384 6.6152,-0.003 7.7356,0.17663 9.44027,1.51752 1.53098,1.20427 4.62045,6.60904 4.62045,8.0831 0,0.16221 -5.57845,0.29493 -12.39656,0.29493 -9.28968,0 -12.46995,-0.22152 -12.68937,-0.88388 z" - id="path350" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 422.50644,474.29187 c -0.63297,-2.23622 -1.31339,-4.62271 -1.51204,-5.3033 -0.33666,-1.15347 0.75803,-1.23744 16.13189,-1.23744 h 16.49305 l 1.48586,5.3033 1.48586,5.30331 h -16.46688 -16.46687 z" - id="path351" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 422.67586,504.15975 c -1.84579,-0.85534 -6.45966,-2.27105 -10.25305,-3.14602 -13.06378,-3.01324 -14.35498,-3.59377 -17.23654,-7.7496 -1.4187,-2.04608 -3.7886,-4.95842 -5.26644,-6.47186 -1.47784,-1.51345 -2.49625,-2.94245 -2.26313,-3.17556 0.23311,-0.23312 6.0991,-0.73522 13.03553,-1.11579 14.49073,-0.79504 17.21597,-0.32737 19.71238,3.38279 1.5307,2.27493 6.34988,17.97168 5.88493,19.16808 -0.14174,0.36472 -1.7679,-0.0367 -3.61368,-0.89204 z" - id="path352" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 408.47549,576.97283 c -0.68527,-7.25834 -0.57503,-31.43995 0.14333,-31.43995 0.34001,0 2.01055,0.5002 3.71231,1.11156 4.6477,1.66968 14.72777,3.80556 18.04179,3.82288 1.8074,0.009 3.56534,0.5317 4.59619,1.36543 1.57292,1.27216 1.68261,1.87637 1.89943,10.46241 0.20713,8.20229 0.0915,9.28344 -1.15775,10.82621 -1.32889,1.64112 -1.71356,1.70802 -9.05483,1.57496 -10.77044,-0.19523 -14.16863,0.97846 -16.94806,5.8536 -0.62837,1.10217 -0.85188,0.45341 -1.23241,-3.5771 z" - id="path353" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 705.68893,606.87439 c -0.004,-32.36705 -0.87475,-53.89624 -2.49464,-61.67515 -1.4864,-7.13792 -1.56849,-7.09098 12.39944,-7.09098 14.07117,0 13.59308,-0.32701 14.2442,9.74295 0.25704,3.97518 0.69109,7.78446 0.96456,8.46505 1.42748,3.55258 3.86941,-0.90057 3.87751,-7.07107 0.002,-1.65286 0.29504,-3.0052 0.65083,-3.0052 0.35578,0 1.85781,-1.64963 3.33785,-3.66583 2.57296,-3.50508 2.71204,-3.59035 3.17172,-1.94455 0.26441,0.94671 0.53043,5.22147 0.59114,9.49946 0.12536,8.83205 1.03283,12.31048 3.53634,13.55509 0.9559,0.47522 2.05746,1.59721 2.4479,2.49331 0.42727,0.98061 0.81107,14.31758 0.964,33.49895 l 0.25411,31.86968 -6.23754,1.8715 c -8.30996,2.49329 -15.23288,3.33205 -27.5019,3.33205 h -10.20189 z" - id="path354" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 771.80705,636.43874 c -8.34008,-1.6907 -12.94402,-2.90395 -14.2483,-3.75477 -1.13595,-0.741 -2.64991,-22.45525 -4.12896,-59.22037 -0.21904,-5.44472 -0.5776,-12.31462 -0.7968,-15.26644 l -0.39854,-5.36694 2.00812,0.22744 c 1.10447,0.1251 7.2584,0.72599 13.67539,1.3353 6.417,0.60932 12.22411,1.27299 12.9047,1.47484 1.16005,0.34403 1.23744,2.92888 1.23744,41.33152 0,38.5707 -0.0723,40.96021 -1.23744,40.89039 -0.68059,-0.0408 -4.73762,-0.78373 -9.01561,-1.65097 z" - id="path356" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 770.03928,546.85364 c -9.44988,-0.5902 -14.14213,-1.13748 -14.14213,-1.64946 0,-0.14554 1.94714,-5.46094 4.32698,-11.812 5.05867,-13.50002 8.71224,-21.09332 10.14921,-21.09332 0.60786,0 1.34623,1.22022 1.8185,3.0052 3.58368,13.54486 9.06316,27.36643 11.08391,27.95832 0.64512,0.18895 0.7552,-0.89236 0.43735,-4.29615 -0.30379,-3.25315 -0.17437,-4.70341 0.45439,-5.092 1.49325,-0.92289 2.2074,1.19469 1.95675,5.80217 -0.26506,4.87254 -2.32206,8.06702 -5.07129,7.87562 -0.80725,-0.0562 -5.7634,-0.37047 -11.01367,-0.69838 z" - id="path358" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 746.45298,542.88123 c -0.54737,-1.0695 -1.23005,-3.37644 -1.51708,-5.12653 -0.84875,-5.17498 -2.43412,-8.44838 -4.32111,-8.92198 -0.92873,-0.2331 -3.7612,-0.0118 -6.29436,0.49166 -2.94027,0.58444 -4.85104,0.67019 -5.28409,0.23714 -0.763,-0.763 3.09201,-12.70672 5.34094,-16.54746 2.90072,-4.95388 4.04115,-5.31139 16.94296,-5.31139 8.58791,0 11.8156,0.23854 12.49703,0.9236 1.63429,1.64299 -8.20283,28.1322 -12.57693,33.86695 -2.16792,2.84229 -3.47698,2.94839 -4.78736,0.38801 z" - id="path359" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 628.36887,494.73666 c -0.69308,-0.76585 -3.66334,-6.91225 -6.60057,-13.65866 -2.93723,-6.74641 -6.49559,-14.00875 -7.90746,-16.13852 -2.67636,-4.03724 -6.42287,-7.08784 -8.70472,-7.08784 -0.73279,0 -2.43583,-0.46106 -3.78452,-1.02458 -2.1004,-0.8776 -2.45216,-1.36153 -2.45216,-3.3735 0,-3.76011 3.95406,-18.91848 5.4675,-20.96036 2.11368,-2.85168 5.20997,-3.55217 15.7457,-3.56223 9.87762,-0.009 15.10631,0.61062 16.44596,1.95027 0.56308,0.56308 0.44643,4.12547 -0.42533,12.98925 -0.66065,6.71736 -1.66812,18.57734 -2.23882,26.35552 -1.15825,15.78605 -2.15781,22.99343 -3.43017,24.73349 -0.78657,1.0757 -0.95644,1.0578 -2.11541,-0.22284 z" - id="path360" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 645.72637,463.86205 c -1.51745,-12.79073 -4.31656,-31.6322 -5.12794,-34.51737 -1.02201,-3.63413 -2.96327,-5.43417 -5.8605,-5.43417 -1.50765,0 -2.85371,-0.54019 -3.71231,-1.4898 -1.2588,-1.39221 -1.3468,-2.81651 -1.34351,-21.74353 0.003,-17.58362 0.16283,-20.60666 1.21198,-22.93083 2.2503,-4.98504 9.94384,-6.44451 14.15291,-2.68481 l 2.30926,2.06271 0.19112,29.58031 c 0.10512,16.26918 -0.054,37.53527 -0.35355,47.25799 l -0.54468,17.67767 z" - id="path361" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 630.32084,367.51875 c 0.96968,-4.70141 5.51682,-31.9521 7.05138,-42.25842 0.92579,-6.21771 1.84785,-10.82762 2.04904,-10.24426 0.20119,0.58336 1.05447,6.94732 1.89617,14.14214 0.84171,7.19481 2.30613,17.28785 3.25427,22.42899 2.16253,11.72596 2.17685,13.30407 0.13279,14.64338 -1.1949,0.78293 -12.15861,3.23271 -14.4676,3.23271 -0.17442,0 -0.13664,-0.87504 0.0839,-1.94454 z" - id="path362" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 597.79315,415.42523 c 0.16258,-11.86171 0.57393,-22.48016 0.91412,-23.59655 l 0.61852,-2.02979 1.82165,2.75271 c 2.65292,4.00883 4.42384,7.69415 6.57429,13.68124 4.14703,11.54577 3.86473,16.36125 -1.03651,17.68101 -3.02337,0.81411 -4.7637,2.64048 -6.47441,6.79448 -0.62245,1.51147 -1.48757,3.54362 -1.92249,4.51589 -0.59675,1.33403 -0.71824,-3.52384 -0.49517,-19.79899 z" - id="path363" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 560.32918,456.6142 c -0.95179,-1.0695 -2.65711,-2.97869 -3.7896,-4.24264 -1.43233,-1.59859 -2.68797,-2.2981 -4.1252,-2.2981 -3.35062,0 -4.70204,-2.17581 -4.97975,-8.01749 -0.16548,-3.48104 0.0582,-5.46294 0.71546,-6.34028 1.17195,-1.5643 5.26773,-2.57348 10.53553,-2.59592 5.15813,-0.022 8.34509,1.12399 9.17162,3.29792 0.90092,2.36961 0.83004,16.6431 -0.0947,19.07543 -1.39153,3.66 -4.72628,4.16294 -7.43333,1.12108 z" - id="path364" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 539.71176,449.58238 c -1.14126,-0.42636 -2.08675,-4.25921 -2.66971,-10.82262 -0.55416,-6.239 -2.33884,-14.85755 -4.88498,-23.59041 -2.21414,-7.59417 -2.25937,-9.03313 -0.33854,-10.77146 1.30691,-1.18273 2.63736,-1.34703 10.90831,-1.34703 13.17292,0 13.58662,0.36165 18.33606,16.0292 1.37566,4.53806 2.5012,8.40861 2.5012,8.60121 0,0.1926 -3.65128,0.45712 -8.11396,0.58781 -10.78169,0.31575 -10.85453,0.38555 -11.65222,11.16498 -0.46873,6.33402 -0.8603,8.23263 -1.90249,9.22469 -0.72177,0.68704 -1.70442,1.10267 -2.18367,0.92363 z" - id="path365" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 515.66418,492.33492 c 0.81826,-2.13235 8.26594,-25.33185 10.05654,-31.32609 l 1.90845,-6.38875 10.36607,0.95408 c 6.80963,0.62675 11.39711,1.41006 13.37127,2.28313 2.91844,1.29067 4.01554,2.82278 2.02132,2.82278 -1.12926,0 -2.18876,2.44573 -6.53743,15.09094 -6.0104,17.47722 -5.46929,17.01407 -20.22275,17.30915 -9.39273,0.18787 -11.27251,0.0601 -10.96347,-0.74524 z" - id="path366" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 572.80783,503.57981 c -3.01649,-7.0372 -10.65794,-33.70617 -10.65794,-37.19665 0,-1.44072 1.03791,-1.80567 7.25517,-2.55109 5.05466,-0.60603 14.13087,0.19051 15.76211,1.3833 1.14629,0.83819 1.14891,1.19976 0.0447,6.16311 -2.10298,9.45248 -7.2782,18.29296 -10.70871,18.29296 -2.4715,0 -2.6738,1.02715 -0.75822,3.84991 1.96624,2.89742 2.88021,7.16595 2.19872,10.26876 -0.72338,3.29353 -1.66083,3.23066 -3.1358,-0.2103 z" - id="path367" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 548.00775,506.20342 c -0.97227,-0.18386 -2.66895,-0.68712 -3.77039,-1.11836 -2.50566,-0.98101 -2.48379,-1.1213 2.74716,-17.61722 2.14384,-6.76065 4.6734,-15.43796 5.62123,-19.28291 0.94784,-3.84496 1.88403,-7.15153 2.08043,-7.34793 0.96538,-0.96537 5.31137,12.64106 9.20993,28.83444 2.24714,9.33391 2.27842,12.08045 0.16553,14.53683 -1.50059,1.74453 -2.10416,1.90452 -7.95496,2.1086 -3.48214,0.12146 -7.12665,0.0704 -8.09893,-0.11345 z" - id="path368" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 589.97132,531.82238 c -1.22683,-0.55755 -2.49962,-1.75779 -2.82843,-2.66722 -0.3288,-0.90943 -0.51513,-6.26738 -0.41406,-11.90655 0.10106,-5.63918 -0.0107,-11.15949 -0.24828,-12.26735 -0.45093,-2.10239 -1.27752,-2.21848 -5.738,-0.8059 l -1.55988,0.494 1.68736,-6.26152 c 3.31455,-12.29981 8.83489,-29.24249 9.52791,-29.24249 0.4756,0 8.13539,20.15738 9.53885,25.10229 1.47705,5.20418 1.52574,6.87358 0.25778,8.83883 -2.79192,4.32729 -2.153,14.27883 1.11096,17.30376 2.5755,2.3869 2.66933,7.84911 0.17509,10.19233 -2.16144,2.03056 -8.29491,2.68062 -11.5093,1.21982 z" - id="path369" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 611.40369,497.33271 c -4.05709,-0.58281 -5.67862,-1.89267 -7.99312,-6.45683 -2.90876,-5.73603 -8.10195,-20.49403 -8.24488,-23.43028 -0.13155,-2.70261 -0.0562,-2.7977 2.69309,-3.39862 4.2671,-0.93268 8.54316,-0.0478 11.24886,2.32786 3.94604,3.46467 12.75186,23.86347 12.30172,28.49713 -0.20095,2.06859 -0.43853,2.24957 -3.39804,2.58847 -1.75008,0.2004 -4.72352,0.14293 -6.60763,-0.12773 z" - id="path370" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 616.42932,540.20132 c -1.10427,-0.6094 -2.10935,-1.89562 -2.34021,-2.99482 -0.62184,-2.96073 -1.38539,-4.02717 -3.06171,-4.27623 -3.06412,-0.45525 -3.92105,-3.15991 -4.21772,-13.31208 -0.15125,-5.17608 -0.0667,-10.52117 0.18779,-11.87799 0.79229,-4.22327 1.70975,-4.63373 10.35726,-4.63373 h 7.72766 l -0.0104,17.14734 c -0.0118,19.43002 -0.24582,20.57838 -4.24848,20.84927 -1.35224,0.0915 -3.32961,-0.31427 -4.39417,-0.90176 z" - id="path371" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 468.29951,501.24628 c -0.72298,-1.26453 -7.973,-21.84197 -7.973,-22.62943 0,-0.14251 2.41773,-0.25911 5.37273,-0.25911 h 5.37273 l -0.52597,4.41941 c -0.28928,2.43068 -0.71927,7.9196 -0.95553,12.19759 -0.36432,6.59686 -0.56039,7.54936 -1.29096,6.27154 z" - id="path372" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 56.568542,601.5055 v -36.88074 l 11.136932,-0.004 c 13.043488,-0.005 31.248365,-1.49358 46.160746,-3.7752 l 10.59653,-1.62129 -0.18276,38.58593 -0.18275,38.58592 -10.96016,0.44049 c -6.02808,0.24226 -21.222038,0.69004 -33.764344,0.99506 l -22.804194,0.5546 z" - id="path373" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 127.98633,598.2099 v -41.18112 l 3.35875,-0.42329 c 6.38033,-0.8041 27.88376,-2.69301 28.04744,-2.46376 0.48963,0.68579 -3.38614,70.32533 -4.26875,76.70053 -0.40195,2.90336 -0.44754,2.94322 -4.75603,4.15834 -2.3926,0.67479 -8.40722,1.93868 -13.3658,2.80865 l -9.01561,1.58176 z" - id="path374" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 57.5597,557.98111 c -0.738159,-1.92361 0.236,-6.22434 3.992175,-17.62471 6.201786,-18.82305 6.428956,-19.01315 22.362191,-18.71342 10.28478,0.19347 10.804888,0.27365 12.575054,1.93853 2.054333,1.93215 3.73073,6.88622 6.28748,18.58072 1.58219,7.23688 1.60136,7.64193 0.41273,8.71763 -3.18514,2.8825 -23.399378,7.28217 -36.174421,7.87343 -8.013573,0.37089 -9.049022,0.28632 -9.455209,-0.77218 z" - id="path375" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 193.74726,533.01041 c -3.1373,-1.15356 -5.19334,-4.55073 -8.5977,-14.20589 -2.7151,-7.70033 -5.14034,-12.52981 -7.45403,-14.8435 -1.55703,-1.55703 -1.74368,-2.22546 -1.40653,-5.03721 0.84489,-7.0463 7.69927,-25.19715 12.20468,-32.31881 3.31082,-5.23339 5.83986,-5.49227 22.79037,-2.33282 8.94707,1.66767 14.78289,1.76436 16.43164,0.27226 1.11856,-1.01228 1.22289,-0.59559 1.54917,6.18718 0.22902,4.76094 0.84105,8.61568 1.77219,11.16165 0.78229,2.139 2.12278,5.77855 2.97886,8.08789 1.92499,5.19278 1.3384,7.04055 -2.58055,8.12881 -3.43717,0.95448 -15.32672,0.96667 -18.7381,0.0192 -3.6701,-1.01932 -6.89067,-5.09653 -10.46599,-13.24984 -4.36434,-9.95262 -8.19531,-17.42255 -9.48351,-18.49166 -2.79559,-2.32014 -0.323,6.41486 6.24449,22.06008 5.37882,12.81356 6.87254,19.1588 7.27928,30.92217 0.33705,9.74755 0.27855,10.34892 -1.18645,12.19759 -1.39443,1.75963 -1.95636,1.93923 -5.90907,1.88872 -2.40245,-0.0307 -4.84539,-0.23132 -5.42875,-0.44583 z" - id="path376" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 247.97166,532.60078 c -0.23927,-6.69361 -0.65526,-12.93557 -0.92441,-13.87104 -0.47454,-1.64925 -0.33254,-1.61708 4.681,1.06066 7.2185,3.85541 9.90126,6.49069 9.90126,9.72604 0,2.18018 -0.69209,3.28855 -4.71874,7.55701 -2.59531,2.75116 -5.57044,5.60858 -6.61141,6.34981 l -1.89267,1.3477 z" - id="path377" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 683.92559,600.86398 c 0.19229,-24.28807 0.53989,-36.48606 1.07556,-37.74343 0.94173,-2.21054 4.04457,-3.44987 8.59934,-3.43471 6.55172,0.0218 6.60197,0.20862 7.22375,26.85923 0.28582,12.25063 0.54353,28.55828 0.57268,36.23923 l 0.053,13.96535 h -8.90422 -8.90422 z" - id="path378" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 631.62313,514.33619 c -2.89362,-0.8355 -2.90575,-1.69995 -0.12964,-9.23392 6.17096,-16.7471 5.899,-15.42857 5.73505,-27.80519 -0.12894,-9.73451 1.33887,-31.75194 2.17234,-32.58542 0.41269,-0.41269 2.66622,19.9865 2.66238,24.10013 -0.002,1.94455 -0.54244,5.03975 -1.20138,6.87824 -0.65894,1.83848 -1.00392,3.53684 -0.76662,3.77414 0.80014,0.80014 5.82007,1.68802 9.73587,1.72199 4.43243,0.0385 9.02278,0.96176 10.09067,2.02965 0.92366,0.92367 -1.89855,9.04771 -6.65778,19.16512 -3.82918,8.14025 -5.47629,10.32215 -8.89026,11.77683 -2.55681,1.08945 -9.27013,1.18339 -12.75063,0.17843 z" - id="path379" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 672.83738,495.87275 c -2.87315,-8.41301 -6.26462,-15.49626 -8.32137,-17.37963 -1.21297,-1.1107 -3.19901,-1.83258 -6.21461,-2.25883 -2.43756,-0.34454 -4.7289,-0.92341 -5.09186,-1.28637 -1.41312,-1.41312 -1.93112,-6.66613 -1.94733,-19.74793 l -0.0169,-13.61181 8.30851,0.0595 c 4.56968,0.0327 13.12942,0.273 19.02164,0.53395 13.27457,0.58789 13.70585,0.8354 13.63432,7.82465 l -0.0477,4.66338 -0.91456,-3.4018 c -1.13529,-4.22288 -2.11483,-5.33531 -3.77555,-4.28776 -1.92523,1.21441 -3.64375,8.19224 -5.11556,20.77103 -0.75083,6.417 -1.83445,14.11586 -2.40805,17.10858 -1.16874,6.09795 -3.81514,15.48473 -4.60004,16.31634 -0.28262,0.29945 -1.41255,-2.08704 -2.51095,-5.3033 z" - id="path380" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 651.24534,423.91051 v -12.72792 l 10.78338,0.0192 c 12.54502,0.0223 22.68618,0.88007 25.4728,2.15459 2.18972,1.00151 2.13794,0.83135 3.53434,11.61483 0.59365,4.58431 0.75749,8.27359 0.39903,8.98468 -1.08917,2.16058 -5.51095,2.67461 -23.04221,2.67864 l -17.14734,0.004 z" - id="path381" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 711.51591,532.07201 c -2.37326,-0.95344 -2.99492,-3.45901 -2.99492,-12.07082 0,-11.88681 0.88388,-15.39983 10.88975,-43.28182 3.3415,-9.3113 3.91887,-12.13667 2.37499,-11.62205 -1.34826,0.44942 -3.12201,3.87423 -7.94008,15.33095 -7.00265,16.65134 -7.55768,17.13013 -19.85743,17.13013 -9.0843,0 -11.8602,-0.83275 -12.19117,-3.65728 -0.11408,-0.97365 0.95503,-4.94878 2.37582,-8.83361 2.22175,-6.07488 2.63566,-8.17658 2.95773,-15.01853 0.28646,-6.08547 0.55957,-7.70206 1.16203,-6.87814 1.41389,1.9336 5.50176,1.94767 15.6003,0.0537 12.12062,-2.27322 17.50518,-2.39526 19.4594,-0.44105 3.53665,3.53665 11.92382,25.06311 13.3339,34.22272 0.57077,3.7076 0.49133,4.2761 -0.74109,5.3033 -1.9798,1.65013 -4.99152,7.88505 -7.55775,15.64622 -2.89603,8.75859 -4.8164,12.08556 -7.85624,13.6107 -2.65033,1.32972 -6.43548,1.54199 -9.01524,0.50559 z" - id="path382" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 654.47488,635.86577 c -0.58156,-1.96489 -2.68257,-51.77883 -3.03457,-71.94811 -0.40976,-23.47937 0.32476,-36.65185 2.70092,-48.43682 2.28945,-11.35494 8.44957,-28.24792 10.11581,-27.74078 1.10795,0.33721 4.21676,7.06354 7.12101,15.40724 2.68095,7.70217 3.20191,11.97999 1.45893,11.97999 -2.66992,0 -2.85331,2.1815 -2.85331,33.94112 0,16.91753 0.25332,43.56662 0.56292,59.2202 l 0.56292,28.46104 H 662.923 c -5.93828,0 -8.25835,-0.24273 -8.44812,-0.88388 z" - id="path383" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 622.1177,637.89742 c -7.26976,-0.84598 -13.44016,-1.76057 -13.71201,-2.03241 -0.63155,-0.63156 1.09404,-74.18255 1.82899,-77.95776 0.43929,-2.25652 0.56629,-1.50589 0.6281,3.71231 l 0.0775,6.54074 h 18.73833 18.73833 l -0.023,14.67246 c -0.0337,21.47399 -1.18968,52.58775 -2.03655,54.81517 -0.7103,1.86824 -0.89883,1.92787 -5.87786,1.85889 -2.82922,-0.0392 -11.09201,-0.76342 -18.36177,-1.6094 z" - id="path384" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 589.28686,598.03556 c 0.24968,-21.29276 0.64851,-43.56662 0.88629,-49.49748 l 0.43234,-10.78338 h 8.11549 8.11549 l -0.40734,4.06587 c -1.03811,10.36174 -2.03475,32.147 -2.79323,61.05641 -0.64911,24.74019 -1.03647,31.78658 -1.79784,32.70369 -0.76346,0.91964 -2.254,1.16898 -6.98781,1.16898 h -6.01734 z" - id="path385" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 570.63517,636.02291 c -6.8059,-0.68626 -12.4063,-1.28078 -12.44532,-1.32116 -0.039,-0.0404 -0.29819,-9.86554 -0.57592,-21.83368 -0.55705,-24.00524 -0.25289,-29.15142 1.72298,-29.15142 1.5678,0 2.09005,-1.35856 2.57896,-6.7088 0.45857,-5.01824 -0.75583,-12.41718 -2.21599,-13.50137 -1.6872,-1.25277 -2.49974,-4.3355 -2.49974,-9.48384 0,-6.00241 0.85584,-7.07555 5.64287,-7.07555 1.8813,0 7.82478,1.11159 13.20775,2.4702 5.38296,1.3586 9.86676,2.4723 9.96398,2.47487 0.0972,0.003 0.17678,19.25566 0.17678,42.78464 v 42.77996 l -1.59099,-0.0931 c -0.87505,-0.0512 -7.15946,-0.65454 -13.96536,-1.3408 z" - id="path386" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 537.59647,583.89342 c 0.30238,-50.54375 0.5542,-55.14711 3.43839,-62.8558 1.73753,-4.64396 5.22219,-7.69065 9.95781,-8.70626 1.89676,-0.40678 8.92191,-0.73875 15.61144,-0.7377 l 12.16279,0.002 4.88551,16.97397 c 2.68703,9.33568 4.71714,17.14234 4.51135,17.34813 -0.20579,0.20579 -1.96255,-0.25192 -3.90391,-1.01713 -4.43761,-1.74915 -10.55731,-2.86826 -19.45238,-3.55727 -8.996,-0.69684 -10.1716,-1.69353 -13.33105,-11.30221 -3.09881,-9.42427 -4.94405,-13.60001 -5.86509,-13.27257 -1.10634,0.39332 -0.68074,6.02008 0.98625,13.039 1.9961,8.40462 3.30566,19.35774 4.54323,37.99926 0.98415,14.8242 2.5238,52.04778 2.5238,61.0169 v 3.68337 h -8.17949 -8.17949 z" - id="path387" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 537.80057,601.92465 c 0.58636,-56.95687 0.9344,-69.90879 2.01209,-74.87836 1.39114,-6.41503 3.44996,-10.15219 6.82239,-12.38396 2.56385,-1.69667 3.75626,-1.9353 12.18362,-2.43818 5.1379,-0.30659 11.61757,-0.5743 14.39928,-0.59491 l 5.05765,-0.0375 1.47913,4.86974 c 3.08171,10.14584 7.97621,28.47478 7.6823,28.76868 -0.1685,0.16851 -2.13408,-0.32246 -4.36796,-1.09102 -2.23388,-0.76857 -6.82041,-1.74749 -10.19229,-2.17539 -15.36134,-1.94937 -15.21582,-1.91467 -17.18098,-4.09624 -1.02184,-1.13437 -2.73853,-4.72624 -3.81487,-7.98194 -2.89491,-8.75645 -5.12504,-13.51868 -6.16007,-13.15421 -1.23347,0.43434 -0.90031,6.23194 0.8627,15.01293 3.165,15.76377 4.82834,39.00627 6.61643,92.45421 l 0.27795,8.3085 h -7.99611 -7.99611 z" - id="path388" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 499.92449,551.54329 v -5.3033 h 16.97057 16.97056 v 5.3033 5.3033 h -16.97056 -16.97057 z" - id="path389" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 532.64056,524.5226 c -0.78194,-1.8617 -2.09321,-5.64268 -2.91392,-8.40217 -1.54549,-5.19641 -4.03313,-8.54777 -6.75515,-9.10059 -0.81413,-0.16534 -2.95504,-0.4911 -4.75756,-0.7239 -3.48414,-0.44998 -6.00847,-2.41901 -5.33874,-4.16431 0.97506,-2.54097 13.86303,-3.12971 21.23817,-0.9702 4.29357,1.2572 4.98481,2.95152 4.48619,10.99625 -0.43515,7.02073 -2.38143,15.03121 -3.76406,15.49209 -0.42527,0.14176 -1.41299,-1.26547 -2.19493,-3.12717 z" - id="path390" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 503.32268,635.25249 -2.33753,-2.39192 6.89429,-0.20239 c 3.79186,-0.11131 9.99673,-0.11131 13.78859,0 l 6.89429,0.20239 -7.9792,1.98073 c -4.38855,1.0894 -9.54153,2.16576 -11.45105,2.39192 -3.25312,0.38528 -3.61914,0.26049 -5.80939,-1.98073 z" - id="path391" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 449.81749,636.11781 c -1.77277,-1.12317 -2.01729,-6.20052 -1.67898,-34.86295 0.38355,-32.49515 -0.37648,-48.24671 -2.56688,-53.19847 -1.46414,-3.30995 -6.31678,-7.47326 -8.71061,-7.47326 -0.73315,0 -2.09963,0.50232 -3.03662,1.11625 -2.25354,1.47658 -11.31314,1.42746 -18.01872,-0.0977 -5.64779,-1.28456 -8.38263,-3.19519 -10.92694,-7.63382 -2.12167,-3.70134 -11.02026,-27.38424 -11.02026,-29.32957 0,-1.44604 0.013,-1.44656 3.00946,-0.12108 3.53209,1.56241 10.63432,2.81901 15.97555,2.82655 7.94879,0.0112 9.94607,2.40184 15.26031,18.26554 1.60558,4.79284 3.069,8.72885 3.25206,8.7467 0.18305,0.0179 7.83981,-0.20212 17.01501,-0.48882 9.17519,-0.2867 17.40029,-0.29335 18.278,-0.0148 1.935,0.61415 1.76244,2.21218 -0.9235,8.55223 -2.7583,6.51086 -3.21706,13.33762 -3.73844,55.63092 l -0.47725,38.71409 -5.36455,-0.0108 c -2.95051,-0.006 -5.79795,-0.28541 -6.32764,-0.62102 z" - id="path392" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 376.3171,593.08581 0.21726,-47.90648 2.59006,-3.69184 c 1.42453,-2.03051 2.97804,-4.86746 3.45225,-6.30432 l 0.86219,-2.61248 0.87363,2.06168 c 0.75132,1.77305 0.86589,0.77479 0.81837,-7.13071 -0.0578,-9.61555 0.70655,-13.87293 2.99895,-16.70392 1.13842,-1.4059 1.48491,-1.50139 2.47278,-0.68154 2.35909,1.95787 3.47703,8.26318 3.06205,17.27023 -0.21295,4.62204 -0.13259,8.12979 0.17859,7.795 0.31118,-0.33479 1.09047,-2.44961 1.73176,-4.6996 0.64128,-2.24999 1.442,-3.92029 1.77936,-3.71179 0.33737,0.2085 1.62251,3.1631 2.85587,6.56576 3.93904,10.86721 4.45663,17.42171 4.53685,57.45191 0.10312,51.45561 0.55959,50.20458 -18.31859,50.20458 h -10.32864 z" - id="path393" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 426.65347,601.08561 c -2.6736,-1.16362 -5.23741,-4.44404 -7.34013,-9.39175 -0.86253,-2.02953 -2.01727,-4.06271 -2.56608,-4.51819 -0.84575,-0.70191 -0.96867,-0.0643 -0.80639,4.18248 0.20827,5.45031 -0.49564,6.93892 -2.91769,6.17019 -2.15108,-0.68272 -2.56459,-3.44474 -1.09316,-7.30163 2.91233,-7.6337 6.91627,-9.19254 20.30605,-7.90565 4.97898,0.47853 9.24262,0.68012 9.47477,0.44797 0.23214,-0.23214 0.0266,-6.01319 -0.4567,-12.84678 -0.8487,-11.99956 -0.62171,-18.27687 0.69022,-19.08769 1.58017,-0.9766 2.111,6.07917 2.11475,28.10911 l 0.004,23.15775 -7.6014,-0.0277 c -4.79152,-0.0174 -8.41715,-0.38271 -9.80819,-0.98813 z" - id="path394" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 425.03421,635.39847 c -1.76374,-1.76373 -2.51665,-8.72195 -1.95006,-18.02199 0.55155,-9.05341 1.01923,-9.59807 8.6844,-10.1141 3.24375,-0.21837 6.8253,-0.0363 8.56072,0.43525 2.67762,0.72752 3.06512,1.11293 3.77698,3.75658 0.47041,1.74696 0.69498,6.88852 0.5518,12.63333 -0.31945,12.8174 -0.1894,12.66211 -10.60408,12.66211 -6.60653,0 -7.85571,-0.18713 -9.01976,-1.35118 z" - id="path395" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 412.09135,635.15866 c -1.09402,-1.91534 -1.70235,-24.44405 -0.75841,-28.08685 1.27707,-4.92834 4.66463,-4.29377 6.51217,1.21988 1.24352,3.71108 1.89427,24.92828 0.8258,26.92473 -1.16659,2.17979 -5.32232,2.14331 -6.57956,-0.0578 z" - id="path396" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 187.02974,637.69975 c -8.81717,-1.04836 -13.79854,-1.95212 -18.54766,-3.36504 l -5.49397,-1.63452 0.0128,-31.73962 c 0.0137,-33.96897 0.11762,-35.04117 3.52277,-36.33581 2.56553,-0.97541 3.2943,-3.51544 3.65178,-12.72792 0.17355,-4.47245 0.48595,-8.92722 0.69422,-9.89949 0.36744,-1.71537 0.46964,-1.66326 3.4476,1.75765 1.68791,1.93897 3.30135,3.29299 3.58542,3.00893 0.28407,-0.28407 0.0939,-2.75615 -0.42261,-5.49352 -0.6722,-3.56253 -0.72215,-5.19398 -0.17574,-5.74039 1.93954,-1.93954 2.34116,0.25073 1.87664,10.23438 -0.43483,9.34555 -0.37123,10.13791 0.9428,11.74691 1.40158,1.71619 1.41325,1.71758 2.1928,0.26099 0.43104,-0.80541 1.00351,-4.59124 1.27215,-8.41295 0.6451,-9.17736 1.26588,-9.85284 9.70069,-10.55545 6.44413,-0.5368 17.21475,0.066 18.8115,1.05288 0.97123,0.60026 0.93459,1.21401 -0.61327,10.27229 -1.26415,7.39806 -2.18186,33.03701 -2.18296,60.98796 l -0.001,27.04684 -10.07628,-0.10595 c -5.54194,-0.0583 -11.03086,-0.21945 -12.19759,-0.35817 z" - id="path397" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 214.47783,603.33886 c 0.24179,-19.15376 0.74409,-36.06303 1.11621,-37.57616 1.00863,-4.10134 2.29634,-5.02702 6.99307,-5.02702 4.47548,0 8.30341,1.29323 8.97004,3.03046 0.89289,2.32682 1.75488,26.74749 1.77121,50.17932 l 0.0169,24.21841 h -9.65352 -9.65352 z" - id="path398" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 239.88145,637.05387 c -2.50771,-4.74708 -3.91388,-22.46917 -3.9235,-49.44814 -0.009,-24.10124 0.79517,-34.78957 3.11039,-41.36167 0.75432,-2.14124 1.57292,-5.59621 1.81912,-7.6777 0.40887,-3.45672 0.33128,-3.76274 -0.89564,-3.53286 -0.99878,0.18714 -1.97799,2.07883 -3.81816,7.37612 -2.97368,8.56036 -4.30303,10.70338 -7.45691,12.02116 -2.42095,1.01153 -15.87761,1.46792 -15.87761,0.53849 0,-0.25471 1.11788,-3.92105 2.48417,-8.14742 2.87514,-8.89368 4.16826,-16.93604 3.54953,-22.07568 -0.86832,-7.21296 -2.67156,-17.77453 -3.20124,-18.74963 -0.29847,-0.54946 -0.68997,4.38261 -0.87,10.96016 -0.31849,11.63637 -1.22956,16.864 -2.68533,15.40823 -1.29869,-1.29869 -2.10556,-8.34778 -2.10556,-18.39482 v -10.15653 h 9.51114 c 15.19658,0 19.09384,1.41203 18.64318,6.75468 -0.31754,3.76451 -2.47262,5.10052 -9.46611,5.8684 -7.98485,0.87674 -10.65119,2.6286 -7.7126,5.06741 1.0913,0.90571 12.33909,0.65214 19.25321,-0.43403 l 3.0052,-0.47211 v 15.57694 15.57694 l -2.27248,-0.10426 c -3.2557,-0.14937 -3.30454,1.59507 -0.19099,6.8218 l 2.60502,4.37307 0.106,32.5342 c 0.10588,32.49446 -0.21811,39.38834 -1.96324,41.77495 -0.88547,1.21095 -0.95856,1.20662 -1.64759,-0.0977 z" - id="path399" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 246.37681,636.0477 c 0.18734,-0.97511 0.55654,-16.34277 0.82044,-34.15036 0.325,-21.93036 0.71747,-32.29823 1.21634,-32.13194 1.29177,0.43059 7.44816,9.96646 8.10861,12.55973 0.54174,2.12715 -0.96766,24.34385 -1.72276,25.35713 -0.11375,0.15265 -0.7433,-0.16555 -1.399,-0.7071 -1.09703,-0.90607 -1.15439,-0.7307 -0.71876,2.19733 0.26038,1.75009 0.67174,4.77297 0.91414,6.71751 0.2633,2.1122 1.04193,4.19682 1.93409,5.17815 l 1.49336,1.64261 -3.70729,3.19403 c -3.80815,3.28092 -4.69302,5.61098 -2.74485,7.22781 0.52934,0.43932 3.31358,1.40561 6.18719,2.14731 2.95047,0.76155 4.45525,1.40173 3.45697,1.47072 -0.97227,0.0672 -4.56031,0.33543 -7.97343,0.59607 l -6.20568,0.47391 z" - id="path400" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 346.12877,639.86989 c -3.50018,-0.54199 -9.30729,-1.66409 -12.9047,-2.49356 l -6.54074,-1.50812 v -2.74126 c 0,-1.50769 0.18663,-2.74126 0.41474,-2.74126 0.2281,0 1.75414,0.9619 3.3912,2.13755 3.94382,2.83223 7.774,3.19553 19.17503,1.81881 12.60549,-1.52217 15.96504,-2.44854 17.25797,-4.75876 0.93445,-1.66968 0.91691,-2.05501 -0.16899,-3.71231 -0.66642,-1.01709 -1.86166,-1.84925 -2.65608,-1.84925 -0.79442,0 -2.10286,-0.3524 -2.90765,-0.78311 -1.17365,-0.62811 -1.26941,-0.90588 -0.48385,-1.40339 0.53868,-0.34115 1.9746,-0.62514 3.19093,-0.6311 4.52502,-0.0222 4.64589,-2.20018 1.26688,-22.82797 -0.94085,-5.74353 -1.71063,-10.91425 -1.71063,-11.49049 0,-0.81808 1.00735,-1.0477 4.5962,-1.0477 h 4.59619 v 27.57716 27.57716 l -10.07627,-0.0685 c -5.54195,-0.0377 -12.94005,-0.51193 -16.44023,-1.05392 z" - id="path401" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 14.495689,644.18135 c 0.388909,-0.171 8.502959,-1.5986 18.031223,-3.17245 9.528264,-1.57385 18.175745,-3.03706 19.216624,-3.25159 l 1.892507,-0.39005 0.307954,-39.37645 c 0.337886,-43.20382 0.313826,-42.91984 5.017904,-59.22727 3.520346,-12.20384 5.328975,-16.63654 7.795909,-19.10669 2.151289,-2.15409 2.320712,-2.19417 10.949095,-2.58969 13.052774,-0.59834 12.78541,-0.28195 20.289751,-24.00992 2.826074,-8.93574 5.240944,-16.31723 5.366394,-16.40333 0.12545,-0.0861 8.81829,0.23669 19.31742,0.71728 10.49913,0.48059 19.13897,0.81963 19.19965,0.7534 0.0607,-0.0662 -0.37568,-4.46339 -0.96967,-9.77148 -1.05312,-9.41102 -1.04299,-9.76894 0.40749,-14.38996 1.90113,-6.05675 5.06622,-25.13553 8.26653,-49.82957 1.38447,-10.68286 2.59236,-19.49852 2.6842,-19.59035 0.0918,-0.0918 1.84133,11.03517 3.88778,24.72668 2.04645,13.69151 4.52137,29.03023 5.49983,34.08604 2.56322,13.24446 3.00161,18.51829 3.0859,37.12311 0.0705,15.56694 0.55634,21.99421 1.75251,23.18577 1.50819,1.50238 6.36621,-8.1452 12.97436,-25.76584 4.78877,-12.76931 7.08971,-17.67266 9.17885,-19.56038 1.61341,-1.45786 8.1028,-2.57289 15.0973,-2.59407 7.1628,-0.0217 7.88986,-0.87849 8.50223,-10.01937 0.57026,-8.51226 2.40492,-15.9016 5.95005,-23.96467 1.38937,-3.16 2.3531,-6.19637 2.14162,-6.74748 -0.2179,-0.56783 -1.33882,-1.002 -2.58695,-1.002 -1.21133,0 -2.09637,-0.25172 -1.96673,-0.55939 0.12963,-0.30766 2.30399,-3.33434 4.83189,-6.72597 7.64164,-10.25257 13.89668,-20.66144 20.83256,-34.66698 l 6.59366,-13.31451 2.35239,5.88989 c 3.2299,8.08696 10.23967,21.79802 14.3343,28.03773 1.86859,2.84751 3.46283,5.0749 3.54276,4.94975 0.0799,-0.12514 -0.0756,-3.56861 -0.34572,-7.65215 -0.966,-14.60625 -0.77069,-19.21845 1.05172,-24.83526 2.20797,-6.80511 5.13448,-24.48193 4.20675,-25.40966 -1.16776,-1.16775 -10.96547,-2.89274 -13.75424,-2.42158 -1.44418,0.24399 -3.15442,1.02776 -3.80054,1.74171 -1.98826,2.19701 -5.11367,3.18136 -6.48898,2.04369 -1.36299,-1.12747 -4.466,-7.5032 -4.47612,-9.19706 -0.01,-1.61664 5.41199,-6.72112 8.98194,-8.4565 3.49161,-1.69729 4.65558,-1.29281 6.41321,2.22863 0.68775,1.37793 2.28887,2.97067 3.68983,3.67053 l 2.47487,1.23633 -3.62573,10e-4 c -3.59825,0.001 -5.83285,1.25469 -4.90698,2.75278 1.39065,2.25012 15.92833,5.37538 16.9928,3.65304 0.83607,-1.35278 -0.24134,-4.28239 -1.57927,-4.29423 -0.99673,-0.009 -1.03787,-0.12862 -0.2216,-0.64529 0.8153,-0.51605 0.45629,-1.53672 -1.92377,-5.46924 -4.25549,-7.03124 -11.57742,-15.99808 -13.97482,-17.11433 -1.14088,-0.53121 -2.55163,-1.1997 -3.135,-1.48554 -0.58336,-0.28584 -1.1617,-1.36631 -1.28518,-2.40106 -0.19251,-1.61303 0.0927,-1.94479 1.99985,-2.32622 2.618,-0.5236 3.52023,-2.35264 3.54485,-7.1863 0.0222,-4.36486 1.0303,-8.55203 2.3851,-9.90683 0.98434,-0.98435 1.43665,-0.9303 4.59515,0.54906 5.42922,2.54292 6.0228,1.95527 5.51815,-5.46298 -0.23083,-3.3933 -0.79964,-9.43117 -1.26403,-13.41749 l -0.84432,-7.24784 -7.50156,-0.0837 c -13.20397,-0.14726 -13.14449,1.30767 -0.63292,-15.48186 19.28684,-25.8814 36.18464,-54.70511 37.16387,-63.39289 0.39282,-3.485 -0.78206,-4.12501 -3.02424,-1.64743 -0.70608,0.7802 -1.44813,1.25418 -1.64903,1.05328 -0.81971,-0.8197 3.75607,-4.59315 5.56977,-4.59315 2.49443,0 6.6335,-2.84159 6.90863,-4.74298 0.12036,-0.83182 -0.43649,-2.79695 -1.23744,-4.36695 -1.87972,-3.68454 -1.83504,-4.20139 0.3274,-3.78801 1.87942,0.35927 4.58028,3.22601 4.58028,4.86157 0,0.53092 0.30822,0.9653 0.68492,0.9653 0.3767,0 0.50639,0.46523 0.28819,1.03385 -0.22304,0.58124 0.36655,1.74211 1.34675,2.65165 1.2451,1.15534 1.89495,2.72953 2.27337,5.50689 1.89537,13.91112 19.7682,48.18494 33.92373,65.05383 8.48378,10.10996 11.72779,14.3767 11.48888,15.11089 -0.33822,1.0393 -6.85947,2.41183 -11.87152,2.49859 l -3.93853,0.0682 -0.87612,6.54074 c -1.47305,10.99714 -1.77397,17.78879 -0.86357,19.4899 1.14909,2.14709 4.31201,2.03834 6.43477,-0.22124 0.91341,-0.97227 2.09044,-1.76776 2.61564,-1.76776 1.32313,0 2.33336,2.99881 2.33806,6.94032 0.005,4.49716 1.19451,8.4508 2.80028,9.31018 2.41279,1.29129 3.55973,2.91463 3.55973,5.03834 0,1.79073 -0.43761,2.28501 -3.0052,3.39436 -3.16937,1.36936 -9.02804,7.1401 -13.48027,13.27795 l -2.65956,3.66648 1.09298,17.90028 c 1.13574,18.60052 2.21185,28.81886 3.13487,29.76749 1.87666,1.92875 6.42925,-4.46576 13.48316,-18.93828 5.84788,-11.99812 9.5402,-21.74877 10.65088,-28.12678 0.45597,-2.61839 1.09833,-4.92713 1.42747,-5.13055 0.97002,-0.59951 1.9705,1.95998 2.80219,7.16875 1.73271,10.85176 9.47289,28.14486 20.8552,46.59468 6.86987,11.13551 9.9631,17.4799 9.15772,18.78303 -0.22516,0.36432 -1.1153,0.6624 -1.97809,0.6624 -5.0893,0 -9.47903,8.72554 -12.15817,24.16704 -1.43373,8.26338 -2.53682,10.48119 -5.21313,10.48119 -2.37565,0 -3.43086,1.07913 -4.04169,4.13326 -0.36259,1.81295 -0.21779,2.23071 0.77319,2.23071 1.94479,0 24.71705,-4.39487 25.2428,-4.87167 0.26178,-0.2374 0.62512,-19.52352 0.80743,-42.85804 0.35501,-45.44121 0.64829,-51.1032 4.39515,-84.85282 2.83261,-25.51453 5.54657,-52.4025 6.709,-66.46803 0.44998,-5.44472 1.0394,-10.64711 1.30983,-11.56085 0.27801,-0.93939 1.03089,5.51355 1.73248,14.84924 1.75784,23.39041 4.32511,48.97409 7.54621,75.20046 3.73034,30.37251 4.24755,40.61534 4.24755,84.11838 v 37.15043 h 5.287 c 6.98919,0 7.36463,-0.5545 8.25191,-12.1876 0.91673,-12.01919 3.60789,-30.12222 7.70132,-51.80556 4.5805,-24.26345 5.35585,-27.77755 5.85054,-26.51651 0.22885,0.58337 1.41237,7.90192 2.63005,16.26346 4.05414,27.83889 6.45319,38.89087 8.44202,38.89087 1.15016,0 2.01225,-2.48814 3.53806,-10.21145 0.88461,-4.47776 1.8713,-7.51206 2.71814,-8.3589 1.63686,-1.63686 5.59663,-2.60372 10.75473,-2.62598 4.70086,-0.0203 6.7285,-1.25475 7.33034,-4.46283 0.24343,-1.29758 0.59333,-9.53553 0.77754,-18.30657 0.24972,-11.88961 0.69461,-17.8158 1.74844,-23.29068 2.16401,-11.24252 4.0108,-24.54486 6.36969,-45.88067 2.20745,-19.96602 2.80909,-24.31468 3.29649,-23.82727 0.2739,0.27389 5.00145,34.53568 6.99539,50.69733 1.63726,13.27065 2.42526,29.77172 2.85337,59.75052 0.67708,47.41377 1.85645,52.89745 7.46667,34.71722 3.47932,-11.27497 4.99118,-12.10102 21.29149,-11.63336 10.06546,0.28878 11.558,0.9018 13.86369,5.69408 0.80492,1.67303 2.96521,8.22059 4.80064,14.55015 1.83541,6.32956 3.55761,11.26163 3.82709,10.96015 0.26949,-0.30147 0.89217,-16.29893 1.38374,-35.54991 1.47389,-57.72123 1.88842,-56.51699 2.00805,5.83363 l 0.11364,59.22019 h 11.31371 11.3137 V 395.9798 332.69374 h -11.3137 c -10.68151,0 -11.31371,-0.0758 -11.31371,-1.35638 0,-3.47796 0.31531,-3.59337 9.81781,-3.59337 10.06807,0 12.1025,-0.6968 12.1025,-4.14516 0,-1.06901 -0.78942,-7.01718 -1.75427,-13.21816 -0.96485,-6.20098 -3.34389,-23.49117 -5.28676,-38.42264 -1.94287,-14.93148 -3.67103,-27.28668 -3.84035,-27.45601 -0.41936,-0.41935 -0.98803,6.1679 -1.87541,21.72368 -1.19558,20.95869 -3.85883,41.09713 -6.68616,50.55814 l -1.05656,3.53553 0.37297,-7.07107 c 0.20514,-3.88908 1.14115,-12.48043 2.08003,-19.09188 3.06852,-21.60819 5.18562,-45.51923 6.57381,-74.24621 l 0.51254,-10.6066 3.39608,33.94112 c 3.66324,36.61123 6.0435,56.48051 8.37987,69.9514 1.27835,7.3706 1.54246,12.64482 1.93245,38.58949 0.47105,31.33849 0.67326,33.23402 3.54524,33.23402 2.13111,0 4.73146,2.56201 6.2992,6.20633 0.81151,1.88639 2.77631,8.18248 4.36623,13.99131 4.49166,16.41045 7.0546,20.44807 12.16549,19.16532 3.11017,-0.7806 3.52613,-3.09099 4.15887,-23.0995 0.63339,-20.02909 1.58818,-31.13175 4.89512,-56.9221 2.73011,-21.29178 4.75216,-40.59757 5.62969,-53.7502 0.75131,-11.261 1.27871,-15.00539 2.19312,-15.57052 0.72974,-0.45102 1.22396,4.61925 1.69504,17.38977 0.83214,22.5589 6.02362,62.95244 9.3327,72.61537 0.98323,2.87114 1.08453,5.55834 0.69965,18.56001 -0.24752,8.36153 -0.65431,17.03243 -0.90397,19.26866 l -0.45394,4.06586 15.12495,0.0142 c 16.80472,0.0158 23.35834,0.68385 26.0477,2.65522 2.45921,1.80266 5.93353,8.40806 8.45194,16.06889 2.74252,8.34253 3.60628,12.81372 3.60628,18.66762 0,9.33522 1.48264,10.67731 11.79549,10.67731 10.69602,0 11.75894,1.11961 18.12509,19.09188 7.00072,19.76348 11.23148,29.2983 12.7724,28.78468 1.39088,-0.46363 1.71523,-4.49902 2.08618,-25.95625 0.31629,-18.29396 0.60486,-22.71273 1.9012,-29.11844 0.84061,-4.15343 3.36597,-20.38153 5.61188,-36.06244 3.22816,-22.53808 4.17872,-27.84418 4.53758,-25.32879 0.24968,1.75009 1.56539,12.25063 2.92381,23.33453 2.5697,20.96706 5.60425,40.32058 6.63634,42.32421 1.28305,2.4907 1.52268,6.75816 0.78977,14.06003 -0.42002,4.18491 -0.92921,8.3729 -1.13151,9.30665 l -0.36784,1.69773 10.82368,-0.46879 c 5.95299,-0.25783 14.17947,-0.66524 18.28105,-0.90537 l 7.45743,-0.43659 4.45838,15.11755 c 7.436,25.21433 7.14114,24.81679 18.82014,25.37105 11.66613,0.55365 12.28598,1.22265 17.34052,18.71537 5.37931,18.61649 6.44181,32.54163 5.80358,76.06176 l -0.37887,25.83468 17.76747,3.11105 c 9.77208,1.71108 17.62054,3.25798 17.44093,3.43756 -0.1796,0.17957 -20.77692,-0.0759 -45.77187,-0.56773 -35.74524,-0.70337 -61.82128,-0.72144 -122.16648,-0.0847 -54.08505,0.57073 -87.5697,0.5964 -113.49064,0.087 -20.22325,-0.39742 -74.70597,-0.93556 -121.07269,-1.19586 l -84.30314,-0.47328 1.73929,-1.73928 c 0.95661,-0.9566 2.07206,-2.89325 2.4788,-4.30364 2.94311,-10.20569 2.65043,-78.30831 -0.40033,-93.15067 -1.24848,-6.07404 -4.99474,-15.83327 -6.07789,-15.83327 -0.37139,0 -1.09457,0.99724 -1.60705,2.21608 -0.86831,2.0651 -0.95518,1.69174 -1.2751,-5.48008 -0.24344,-5.45727 -0.71951,-8.46546 -1.6365,-10.34064 -1.42535,-2.91475 -3.37666,-3.94563 -4.96824,-2.62473 -1.81654,1.5076 -3.32858,8.43875 -3.41344,15.64719 -0.0446,3.78534 -0.28394,6.33992 -0.53195,5.67685 -0.31181,-0.83367 -0.72507,-0.1471 -1.33962,2.22562 -0.48879,1.88717 -2.19506,5.38715 -3.79172,7.77774 l -2.90302,4.34652 -0.22124,47.90693 c -0.18971,41.0782 -0.36609,47.90692 -1.23744,47.90692 -0.86637,0 -1.01619,-4.11801 -1.01619,-27.93071 v -27.93072 h -5.37758 -5.37756 l 0.30323,2.65165 c 0.16679,1.45841 1.22387,8.89979 2.34907,16.5364 2.27496,15.4398 2.17821,16.16729 -2.15021,16.16729 -1.26594,0 -2.72641,0.51173 -3.24549,1.13717 -0.80186,0.96619 -0.7414,1.28516 0.40213,2.12132 0.74024,0.54129 2.06252,0.98415 2.93842,0.98415 0.87588,0 2.08365,0.70119 2.68392,1.55819 1.53473,2.19114 0.0815,4.1727 -3.92085,5.34625 -4.69602,1.37696 -21.06441,3.16147 -24.65508,2.68794 -1.89603,-0.25004 -4.66175,-1.40877 -6.88341,-2.88386 -2.04263,-1.35624 -3.87787,-2.46588 -4.07832,-2.46588 -0.20043,0 -0.36443,1.70138 -0.36443,3.78084 v 3.78085 l 8.66206,1.85291 c 4.76413,1.01911 9.45756,1.97676 10.42983,2.12812 0.97227,0.15135 -4.35755,0.11142 -11.84404,-0.0888 l -13.61181,-0.36396 v 1.94647 1.94648 L 188.62073,643.7108 c -72.04534,-0.13399 -140.855667,-0.013 -152.911838,0.26891 -12.05617,0.2819 -21.602112,0.37264 -21.213203,0.20164 z m 271.026381,-3.71077 c -2.22098,-0.13988 -6.03936,-0.14101 -8.48528,-0.003 -2.44592,0.13847 -0.62875,0.25291 4.03815,0.25431 4.66691,10e-4 6.66811,-0.1119 4.44713,-0.25177 z M 140.94888,637.7812 c 12.53291,-2.26555 14.30469,-2.99184 14.84019,-6.08324 0.83157,-4.80067 4.84648,-77.61026 4.31627,-78.27467 -0.21333,-0.2673 -14.33173,0.90531 -25.57828,2.12443 l -7.24784,0.78566 v 41.95823 41.95822 l 1.94454,-0.35031 c 1.0695,-0.19266 6.34581,-1.1459 11.72512,-2.11832 z m 505.20152,1.90158 c 1.51483,-0.96098 2.1691,-11.30098 2.69682,-42.62023 l 0.4989,-29.60936 h -18.84938 -18.84938 v -3.7824 c 0,-6.32853 -0.88563,-14.70669 -1.49066,-14.10167 -0.61688,0.61689 -1.69735,28.92824 -2.46735,64.65201 l -0.48223,22.37276 2.04334,0.40446 c 1.12384,0.22246 6.49812,0.89121 11.94284,1.48612 5.44473,0.59491 10.85409,1.19577 12.02082,1.33524 4.26971,0.5104 12.04561,0.4281 12.93628,-0.13693 z M 96.873629,638.14259 c 13.028441,-0.41084 24.722221,-0.90674 25.986171,-1.102 l 2.2981,-0.35502 v -39.22586 -39.22585 l -1.59099,0.34371 c -11.35394,2.45286 -33.765686,4.69621 -51.265242,5.13148 l -16.440233,0.40893 v 37.3765 37.37649 l 8.662059,0.009 c 4.764131,0.005 19.321692,-0.32684 32.350135,-0.73768 z M 210.01747,610.76348 c 0.007,-28.84039 0.85811,-51.99564 2.21376,-60.22323 1.56148,-9.47678 1.56748,-10.47935 0.0675,-11.28212 -2.18824,-1.17111 -15.51661,-1.73685 -21.3799,-0.9075 -7.01032,0.99159 -7.42847,1.55441 -8.03538,10.81533 -0.48326,7.37421 -1.27614,9.67555 -2.64417,7.67472 -0.458,-0.66986 -0.56439,-4.66722 -0.29154,-10.95425 0.36061,-8.30921 0.25401,-10.12668 -0.6636,-11.31371 l -1.09323,-1.41421 -1.11601,1.41421 c -1.09377,1.38605 -1.06746,3.98827 0.0947,9.36868 0.39376,1.82292 0.25033,1.75567 -2.28451,-1.07112 -4.58631,-5.11454 -4.94571,-4.53447 -5.3875,8.69539 -0.30615,9.16793 -0.88714,11.06909 -3.81786,12.49291 -1.04123,0.50585 -2.20919,1.87433 -2.59545,3.04106 -0.40565,1.22527 -0.8174,15.61769 -0.97478,34.07286 l -0.27247,31.95154 5.52527,1.73561 c 3.03889,0.95458 8.38904,2.08939 11.88922,2.52181 3.50018,0.43242 7.15945,0.90112 8.13173,1.04157 0.97227,0.14044 6.46118,0.29869 12.19759,0.35165 l 10.42982,0.0963 z m 24.01475,3.88909 c -0.0249,-30.01029 -0.92437,-49.55916 -2.38259,-51.78468 -1.7896,-2.73128 -10.21828,-4.11784 -13.86074,-2.28016 -3.25135,1.64036 -3.55779,4.91998 -4.0276,43.10468 l -0.43283,35.17856 h 10.36194 10.36194 z m 9.15417,20.32109 c 0.80566,-2.83525 0.99474,-10.28722 0.96371,-37.98183 -0.0378,-33.76255 -0.0686,-34.50538 -1.53264,-36.98674 -0.82172,-1.39273 -1.49405,-2.72273 -1.49405,-2.95556 0,-0.49017 25.16873,0.26844 31.46625,0.94841 4.43612,0.47899 4.77016,-0.17369 0.83314,-1.62789 -2.11548,-0.78138 -1.96998,-0.83324 2.47959,-0.88388 2.59982,-0.0296 5.52651,-0.35779 6.50377,-0.72934 1.99555,-0.75871 7.50762,-5.51469 7.50762,-6.4778 0,-0.34366 -1.10643,-0.62483 -2.45873,-0.62483 -1.35231,0 -4.57217,-0.7955 -7.15526,-1.76777 -5.55631,-2.09139 -7.22926,-2.19585 -8.49357,-0.53033 -1.51579,1.9968 -1.14344,2.50896 1.51086,2.07823 2.37056,-0.38469 2.48534,-0.30985 2.29809,1.49847 l -0.19708,1.90338 4.59619,-0.17955 c 3.28395,-0.12828 4.26517,0.0207 3.43675,0.52183 -1.51438,0.91607 -9.01144,1.92777 -18.28599,2.46764 -4.08354,0.2377 -11.37163,0.75577 -16.19574,1.15126 -9.07654,0.74414 -9.92645,0.56527 -9.95638,-2.09533 -0.008,-0.71799 0.61803,-0.8446 2.46404,-0.49829 l 2.47488,0.46429 v -16.38746 -16.38745 l -3.35876,0.45916 c -6.79802,0.92933 -18.20571,1.22521 -19.26866,0.49978 -2.11531,-1.44366 0.84043,-2.98913 7.04418,-3.68321 8.69029,-0.97226 10.63349,-2.31074 10.63349,-7.32436 0,-5.39254 -3.98981,-6.73802 -19.98059,-6.73802 h -9.88807 l 0.2987,13.25825 c 0.21683,9.62417 0.57933,13.83426 1.32253,15.3597 2.49211,5.11516 4.28774,0.79957 4.75426,-11.42634 0.19827,-5.19601 0.44029,-9.36012 0.53782,-9.25358 0.0975,0.10654 0.72074,4.04182 1.38492,8.74508 1.43478,10.16013 0.96053,14.6177 -2.85715,26.85486 -1.34336,4.30599 -2.44248,8.20392 -2.44248,8.66206 0,1.12371 13.63195,1.05066 16.94608,-0.0908 3.19672,-1.10103 5.29208,-4.31301 7.46854,-11.44852 0.96454,-3.16224 2.21968,-6.36553 2.7892,-7.11843 0.99605,-1.31679 1.03633,-1.29963 1.05797,0.45102 0.0124,1.00097 -0.76525,4.45173 -1.72803,7.66838 -1.9942,6.66258 -2.91297,14.99471 -3.55406,32.23099 -0.77765,20.9082 1.4954,55.9826 3.92188,60.51651 1.28577,2.4025 3.0556,1.31916 4.15278,-2.54198 z m 12.07916,2.8657 c 9.91112,-0.64677 10.37795,-1.08339 3.19666,-2.98974 -9.51762,-2.52657 -9.92292,-3.25475 -4.61088,-8.28418 3.87596,-3.66976 4.1877,-4.56275 2.21585,-6.34725 -0.80368,-0.72732 -1.49576,-2.63643 -1.76999,-4.88256 -0.24768,-2.02855 -0.63755,-4.37371 -0.86639,-5.21148 -0.31972,-1.17047 -0.12076,-1.49797 0.85915,-1.41421 1.12864,0.0965 1.37632,-0.94757 2.15486,-9.08339 1.74452,-18.23042 1.67075,-18.63089 -5.144,-27.91983 -3.21861,-4.38718 -3.38485,-4.50723 -3.84724,-2.77827 -0.26579,0.99386 -0.69619,15.94427 -0.95642,33.22312 -0.26023,17.27885 -0.64875,32.6069 -0.86336,34.06232 -0.38024,2.5786 -0.33895,2.63819 1.61557,2.33196 1.10318,-0.17284 4.71046,-0.49076 8.01619,-0.70649 z M 782.7672,597.16514 v -41.70582 l -1.59099,-0.3531 c -0.87504,-0.1942 -6.84125,-0.84044 -13.25825,-1.43608 -6.41699,-0.59565 -12.734,-1.2236 -14.03784,-1.39546 l -2.37057,-0.31245 0.42455,6.15449 c 0.23348,3.38497 0.75738,14.10944 1.16432,23.83216 0.40687,9.72272 1.20307,24.9295 1.76925,33.79285 0.56618,8.86335 1.02948,16.39499 1.02948,16.73696 0,0.34197 1.55146,1.13709 3.44771,1.76691 3.7145,1.23377 19.22029,4.47982 21.83135,4.57026 l 1.59099,0.0551 z m -258.97785,37.71194 10.78337,-2.65435 V 588.8778 545.53288 h -17.7316 -17.7316 l 0.29985,41.89608 c 0.32235,45.03834 0.45015,46.63113 3.96507,49.41539 2.42121,1.9179 6.0531,1.56792 20.41491,-1.96727 z m 63.10928,-40.08934 V 551.4116 l -5.48008,-1.49973 c -8.60977,-2.35623 -15.52454,-3.67188 -19.29859,-3.67188 -4.92779,0 -5.85507,1.57795 -5.52323,9.39876 0.21853,5.14992 0.48648,6.16951 2.13657,8.12984 2.2438,2.66567 3.25213,9.43946 2.26821,15.23749 -0.50197,2.95796 -0.88486,3.64991 -2.01975,3.64991 -1.07317,0 -1.52537,0.66085 -1.93542,2.82842 -0.8299,4.38698 0.19239,49.08112 1.13641,49.68351 0.66942,0.42717 20.91812,2.62279 26.77133,2.90289 l 1.94455,0.0931 z m 263.04372,5.89947 v -37.47666 l -8.66206,-0.004 c -13.24199,-0.005 -36.82421,-2.31692 -51.00821,-4.99975 -6.81262,-1.28859 -6.09066,-5.85425 -6.09066,38.51643 v 39.16997 l 11.13693,0.52322 c 12.50306,0.58739 38.15711,1.45829 48.08326,1.63232 l 6.54074,0.11468 z m -430.65291,35.40182 c 0.94573,-1.76711 0.93815,-18.15548 -0.0111,-24.0057 -0.92556,-5.7042 -2.32491,-8.4234 -4.63292,-9.00268 -3.6143,-0.90713 -4.14273,0.67486 -4.4219,13.23828 -0.28447,12.80183 0.21982,18.52979 1.76762,20.07759 1.58815,1.58816 6.3921,1.38576 7.2983,-0.30749 z m 24.16495,0.016 c 1.63917,-1.32732 1.66933,-1.57509 1.66933,-13.71434 0,-10.97241 -0.14503,-12.52286 -1.28969,-13.78769 -2.70965,-2.99413 -17.94379,-2.91925 -19.90133,0.0978 -1.33723,2.06102 -2.08895,12.32529 -1.45768,19.90362 0.7196,8.63876 0.99118,8.85233 11.25666,8.85233 6.87575,0 8.29749,-0.19766 9.72271,-1.35174 z m 19.29912,-38.06946 c 0.2951,-21.68166 0.77755,-41.33039 1.07213,-43.66385 0.29458,-2.33345 0.58238,15.40609 0.63955,39.42121 l 0.10396,43.66384 h 16.72589 16.72588 l -0.42617,-44.0174 c -0.42246,-43.63262 -0.88457,-52.53635 -3.06775,-59.10718 -1.4376,-4.32683 -10.28164,-22.03332 -11.0052,-22.03332 -0.30926,0 -4.52391,7.8754 -9.36588,17.50089 -4.84198,9.62549 -8.8176,16.8645 -8.83472,16.08668 -0.0171,-0.77781 0.76126,-3.11634 1.72974,-5.19674 2.2012,-4.72844 2.26931,-6.92095 0.23503,-7.56661 -1.18419,-0.37584 -33.0484,0.21179 -34.96406,0.6448 -0.23781,0.0538 -1.9623,-4.28191 -3.83222,-9.63482 -5.64325,-16.15469 -6.21534,-16.72343 -17.72182,-17.61774 -5.65599,-0.43959 -9.16583,-1.11509 -12.29166,-2.36562 -2.40633,-0.96269 -4.63207,-1.75033 -4.9461,-1.75033 -1.2716,0 0.49673,6.69755 4.58076,17.34955 8.24799,21.5125 9.64809,22.74978 26.55203,23.46412 7.23273,0.30565 8.70426,0.1868 9.67221,-0.78116 0.62791,-0.6279 1.7435,-1.14164 2.47909,-1.14164 1.92335,0 7.2604,4.80467 8.42007,7.58016 1.78096,4.26241 2.45586,20.39611 2.23106,53.33323 -0.26206,38.3951 -1.02968,35.25313 8.6127,35.25313 h 6.13893 z m 139.26963,38.33781 c 0.59586,-0.59587 1.23616,-2.10731 1.42289,-3.35876 0.18672,-1.25145 0.6916,-16.59428 1.12195,-34.09517 0.43035,-17.50089 1.23329,-38.18376 1.78432,-45.96194 0.55103,-7.77817 1.01324,-14.53988 1.02714,-15.02602 0.0189,-0.66114 -2.19366,-0.88388 -8.77981,-0.88388 h -8.8051 l -0.21051,4.34724 c -0.20962,4.32855 -0.23191,4.27305 -5.18491,-12.9047 l -4.9744,-17.25194 h -14.47104 c -14.02156,0 -14.58086,0.0549 -18.00658,1.76777 -2.73667,1.36833 -3.95947,2.55388 -5.41176,5.24689 -4.12476,7.64864 -4.82786,18.01605 -4.83524,71.29742 l -0.006,43.66384 h 8.93551 8.93551 L 554.0903,618.1881 c -1.81881,-57.56518 -3.97535,-81.2874 -8.9512,-98.46462 -1.00973,-3.48569 0.0101,4.80034 1.48784,12.08906 3.13752,15.47495 4.29775,31.73164 6.61873,92.73952 l 0.30265,7.95495 h -8.03788 -8.03786 l 0.32169,-30.93592 c 0.58774,-56.52185 0.94056,-69.53615 2.02032,-74.5248 1.38805,-6.41293 3.4471,-10.15158 6.82046,-12.38396 2.56385,-1.69667 3.75626,-1.9353 12.18362,-2.43817 5.1379,-0.3066 11.63624,-0.57431 14.44076,-0.59492 l 5.09913,-0.0375 1.11084,3.71231 c 2.78212,9.2975 8.24909,29.64466 8.02522,29.86853 -0.13677,0.13677 -2.79286,-0.48783 -5.90241,-1.388 -3.10955,-0.90016 -9.29892,-2.02151 -13.75415,-2.49187 -4.45522,-0.47035 -8.78866,-1.11687 -9.62985,-1.43669 -2.45185,-0.93219 -4.31736,-3.88899 -6.36831,-10.09363 -2.49896,-7.56001 -4.9988,-13.2209 -5.83833,-13.2209 -0.36839,0 -0.0573,1.19324 0.69135,2.65165 0.74863,1.45841 2.18537,5.35634 3.19276,8.66206 3.82224,12.5426 4.69341,13.36732 14.99509,14.19541 9.23188,0.7421 12.85899,1.46336 19.75719,3.92877 4.86112,1.73736 5.14346,1.95462 4.8145,3.70474 -0.19221,1.02254 -0.56107,21.18969 -0.81971,44.81589 l -0.47026,42.95674 h 6.38863 c 4.79554,0 6.65878,-0.27016 7.47202,-1.08339 z m 69.23768,-27.37766 c -0.31352,-15.65357 -0.57004,-42.57169 -0.57004,-59.81803 v -31.35697 l 1.94454,-1.55005 c 2.56416,-2.04396 2.52828,-4.49573 -0.18423,-12.59202 -3.07666,-9.18325 -6.75324,-16.83562 -8.08865,-16.83562 -1.74195,0 -3.57637,3.67849 -7.02387,14.08472 -5.73236,17.30302 -7.16365,30.94828 -6.60723,62.98992 0.35949,20.70054 2.39331,68.64304 3.0522,71.94811 0.30869,1.54845 0.55422,1.59099 9.18225,1.59099 h 8.86507 z m 7.3046,25.62296 c 1.62868,-4.99642 2.49075,-17.19965 2.87159,-40.64898 0.44378,-27.32527 -0.29468,-39.76094 -2.96481,-49.92677 -0.95947,-3.65298 -1.73073,-7.43726 -1.71389,-8.40954 0.0266,-1.53481 0.20873,-1.39503 1.38223,1.06066 0.74339,1.55564 2.01441,5.15046 2.82449,7.98849 0.89553,3.13742 2.26534,6.04772 3.49458,7.42462 l 2.02171,2.26456 8.47758,0.23446 c 7.97665,0.2206 8.50602,0.32506 8.95908,1.76777 0.26483,0.84332 0.65457,19.43195 0.86609,41.30806 l 0.38456,39.77476 10.6918,-0.004 c 11.80647,-0.005 22.1916,-1.29844 29.61651,-3.6898 l 4.86291,-1.5662 -0.26205,-32.19493 c -0.26799,-32.93333 -0.59015,-36.79111 -3.07238,-36.79111 -2.40947,0 -3.39737,-3.48035 -3.84037,-13.52978 -0.24749,-5.61395 -0.76629,-10.15095 -1.2117,-10.59635 -0.78552,-0.7855 -1.08088,-0.53395 -5.08112,4.32714 l -1.45466,1.76777 0.51611,-2.47488 c 0.28384,-1.36118 0.51654,-4.06586 0.51704,-6.01041 8.5e-4,-3.05863 -0.18887,-3.53553 -1.40629,-3.53553 -1.92178,0 -2.28205,2.60149 -1.55281,11.21191 0.5852,6.90994 0.0722,11.73136 -1.27562,11.98885 -0.97114,0.18554 -1.59226,-3.18945 -1.69105,-9.18937 -0.1598,-9.70729 -1.27081,-10.36668 -16.8542,-10.00322 -12.98505,0.30286 -12.91709,0.25069 -11.17038,8.57405 2.01083,9.58192 0.92007,8.46425 -2.0615,-2.11237 -3.13102,-11.10678 -3.51125,-17.16305 -1.76717,-28.14752 l 1.01046,-6.36396 0.40685,10.25305 c 0.38265,9.64349 1.16583,13.43503 2.77513,13.43503 1.88662,0 2.4689,-3.60862 2.70984,-16.79379 l 0.24873,-13.6118 H 694.903 c -11.34388,0 -14.90498,0.63195 -16.09542,2.85631 -0.89129,1.66539 -0.89129,6.05701 0,7.7224 0.84441,1.57779 4.29236,2.85495 7.72184,2.86026 3.19795,0.005 7.64389,1.21274 8.28547,2.25083 0.78196,1.26524 -1.87975,2.696 -4.9906,2.68263 -1.57853,-0.007 -5.71313,-0.47828 -9.18799,-1.04776 -3.47487,-0.56947 -6.49775,-0.85571 -6.71751,-0.63607 -0.21977,0.21963 -0.39958,26.06742 -0.39958,57.43952 0,59.83193 0.0755,61.35883 3.00726,60.79428 0.67965,-0.13087 1.59686,-1.34684 2.03895,-2.7031 z m 23.27528,-30.92626 c -0.27019,-18.57039 -0.77602,-35.63651 -1.12405,-37.92471 -0.87053,-5.72339 -2.00667,-6.79979 -7.17721,-6.79979 -5.47964,0 -8.71086,1.37244 -9.39209,3.98922 -0.28939,1.11165 -0.68049,18.32884 -0.86909,38.26041 l -0.34292,36.23922 h 9.69831 9.69832 z m -377.9858,28.18315 c 0,-4.43251 -0.46565,-5.0254 -3.94692,-5.0254 -1.57004,0 -1.70905,0.27479 -1.6991,3.35876 0.0124,3.83322 0.46867,4.81772 2.46404,5.31625 3.07165,0.76742 3.18198,0.64087 3.18198,-3.64961 z m -49.49747,2.88459 c 0,-0.92737 -13.38135,-4.52909 -18.30171,-4.92609 -3.62817,-0.29274 -4.44954,-0.17341 -4.18889,0.60854 0.4361,1.30828 5.1144,2.60211 13.65177,3.77551 8.97556,1.23364 8.83883,1.22525 8.83883,0.54204 z m 40.30509,-3.92596 v -3.79414 l -3.00521,0.58136 c -1.65286,0.31976 -4.19844,0.59523 -5.65685,0.61217 -2.45889,0.0285 -2.65165,0.18267 -2.65165,2.12007 0,1.86011 0.29085,2.14035 2.65165,2.55482 1.45841,0.25604 3.76534,0.71579 5.12652,1.02167 1.36118,0.30588 2.71352,0.5881 3.00521,0.62716 0.29168,0.0391 0.53033,-1.63633 0.53033,-3.72311 z m -13.43503,-0.28616 v -2.66609 l -5.12653,-1.58361 c -2.81958,-0.87099 -6.033,-1.58044 -7.14092,-1.57656 -2.33187,0.008 -5.57141,3.08056 -6.71889,6.3722 l -0.73908,2.12015 h 9.86271 9.86271 z m 49.33239,1.23449 c 11.33945,-1.80295 13.60011,-2.5144 13.60011,-4.28009 0,-1.81371 -2.98187,-1.79651 -13.3876,0.0772 -10.51131,1.89273 -14.07773,3.3893 -12.30394,5.16308 0.71928,0.71929 2.33597,0.5909 12.09143,-0.96019 z m -70.86107,-0.75133 c 0.2613,-0.4228 0.14991,-1.0939 -0.24752,-1.49134 -1.17605,-1.17604 -9.80798,-3.31647 -15.42881,-3.82582 -4.45507,-0.40371 -5.2214,-0.31175 -5.2214,0.62656 0,2.65173 19.45852,7.01929 20.89773,4.6906 z m 69.16945,-4.4954 c 5.53527,-1.05907 8.22066,-2.10481 8.22066,-3.20125 0,-0.95559 -3.82135,-1.1418 -11.30171,-0.5507 -9.08216,0.71767 -12.92248,2.05474 -11.67926,4.06632 0.63854,1.03317 8.60401,0.86352 14.76031,-0.31437 z m -65.44716,-1.28996 c 0.3807,-2.00446 -4.25799,-3.50133 -12.06887,-3.89454 -5.90891,-0.29745 -6.89429,-0.19019 -6.89429,0.75048 0,0.72202 1.51215,1.58805 4.41941,2.53109 5.52937,1.79358 7.15851,2.08046 11.13058,1.96003 2.42969,-0.0737 3.23141,-0.39008 3.41317,-1.34706 z m 21.99687,-1.71555 c 0.47311,-1.71345 0.56718,-13.84432 0.27331,-35.24348 -0.33534,-24.41885 -0.2416,-32.75832 0.37247,-33.13784 0.95272,-0.58882 1.03143,-18.22663 0.18649,-41.78944 -0.55193,-15.3913 -0.69812,-16.15819 -4.50473,-23.63138 -1.46605,-2.87814 -2.80986,-2.74537 -2.25306,0.22261 0.62072,3.30878 -0.5645,3.34551 -2.67788,0.083 -1.60265,-2.47409 -2.90359,-3.09556 -3.71881,-1.77652 -0.95265,1.54142 -1.76777,0.56329 -1.76777,-2.12132 0,-1.55563 0.24434,-2.82843 0.54297,-2.82843 0.29862,0 1.71364,0.7955 3.14446,1.76777 3.03863,2.0648 3.38364,2.13505 3.38364,0.68895 0,-0.96702 0.21619,-0.96702 2.08621,0 2.77897,1.43707 5.18661,1.36116 7.14576,-0.22526 1.93462,-1.56656 1.50247,-3.29556 -1.12264,-4.49165 -1.40647,-0.64083 -2.77068,-0.63941 -5.89604,0.006 -5.32295,1.09944 -6.92747,1.05944 -7.40485,-0.1846 -0.47418,-1.23569 0.9506,-1.70987 4.96676,-1.65299 1.76101,0.0249 4.18963,-0.60051 6.00402,-1.54623 1.67575,-0.87345 5.11107,-1.88043 7.63404,-2.23772 5.61658,-0.7954 6.27829,-1.35692 4.60625,-3.90876 -0.9714,-1.48254 -5.63709,-7.47567 -7.79388,-10.0113 -0.45131,-0.53059 -4.58643,2.12264 -5.25492,3.37173 -0.98932,1.84856 -0.91656,4.07635 0.15581,4.7704 0.48614,0.31464 2.31578,0.57207 4.06587,0.57207 1.75009,0 3.30538,0.3182 3.4562,0.7071 0.52253,1.34744 -3.12584,2.45398 -8.0524,2.44226 -4.05312,-0.01 -5.71502,-0.39201 -9.17438,-2.11089 -4.4121,-2.19228 -7.30081,-2.60321 -9.61043,-1.36715 -1.64177,0.87865 -1.7607,2.30425 -0.2938,3.52167 0.87348,0.72492 1.3024,0.68568 2.29809,-0.21026 1.11304,-1.00153 1.37572,-0.9783 2.8935,0.25597 0.91813,0.74662 2.40355,1.35749 3.30093,1.35749 2.09431,0 3.86858,0.68331 3.86858,1.48987 0,0.34729 -1.77537,0.63145 -3.94527,0.63145 h -3.94527 l 0.48029,2.18676 c 0.41195,1.87558 0.29417,2.15126 -0.8277,1.93732 -0.7194,-0.13719 -1.40236,-0.90635 -1.51771,-1.70924 -0.11534,-0.8029 -1.48746,-3.00609 -3.04917,-4.89596 -2.18717,-2.64677 -2.74095,-3.8287 -2.4106,-5.1449 1.02818,-4.09662 -3.22718,-10.12021 -6.07334,-8.59699 -2.10606,1.12712 -1.59829,-0.40337 0.80463,-2.42529 2.41814,-2.03473 4.73199,-2.78865 13.58985,-4.42796 5.59647,-1.03573 6.18718,-1.29631 6.18718,-2.72934 0,-0.87136 -0.61634,-7.91083 -1.36965,-15.64329 -0.75331,-7.73244 -1.53255,-17.24097 -1.73165,-21.13006 l -0.36201,-7.07107 1.37246,7.77818 c 0.75486,4.27799 2.1935,13.97951 3.19698,21.55893 1.00348,7.57942 1.99818,13.94338 2.21045,14.14213 0.42432,0.39731 -0.0289,-8.667 -1.58731,-31.74729 -0.56219,-8.32597 -1.00654,-15.32632 -0.98746,-15.55635 0.0191,-0.23003 1.21233,2.92284 2.65166,7.00638 l 2.61694,7.42463 -0.17523,14.13619 c -0.10705,8.63537 0.11924,15.02846 0.58151,16.42918 0.76887,2.32966 3.90962,5.40021 4.89854,4.78902 1.27518,-0.7881 1.35876,-7.7653 0.36418,-30.40465 -1.76087,-40.08261 -2.67353,-84.49904 -1.98615,-96.65997 0.52582,-9.30253 0.84253,-11.33775 1.95575,-12.56786 2.52594,-2.79112 0.79319,-3.18287 -15.21885,-3.44072 l -14.81493,-0.23856 v 13.41838 c 0,20.96169 -2.22957,54.02663 -6.01718,89.23569 -7.16539,66.60857 -6.77883,63.8043 -9.21568,66.85425 -1.0919,1.36662 -1.09989,1.36627 -0.73949,-0.0327 0.56587,-2.19648 1.67606,-12.68464 2.18329,-20.62599 l 0.4593,-7.19096 -13.31089,-0.23993 c -7.32098,-0.13196 -13.43578,-0.16525 -13.58843,-0.074 -0.79399,0.47477 1.74564,2.32145 3.19255,2.32145 2.21039,0 4.22517,2.09459 5.22711,5.43416 0.47183,1.57267 1.03876,11.98585 1.35952,24.97143 0.3026,12.25062 0.78861,22.83071 1.08001,23.5113 0.2914,0.68059 1.00293,1.23744 1.58118,1.23744 0.85506,0 0.96057,0.66011 0.5651,3.53553 -0.51935,3.77605 -0.16303,4.22222 1.88886,2.36528 1.2212,-1.10517 1.29312,-1.06816 1.29312,0.66538 0,2.40923 1.1784,3.05878 2.83287,1.56151 1.27119,-1.1504 1.37742,-1.08864 2.42026,1.40723 1.50592,3.60418 2.76539,2.82094 3.4648,-2.15468 0.80641,-5.73688 0.0843,-9.59449 -2.39668,-12.80312 -6.00474,-7.76592 -6.43738,-8.74265 -5.89804,-13.31546 0.27523,-2.33345 0.53125,-10.55462 0.56893,-18.26925 l 0.0685,-14.02661 1.98397,-1.70652 c 3.09333,-2.66073 4.32128,-2.20381 2.25606,0.83948 -2.1818,3.21505 -2.81318,6.24849 -2.78158,13.36391 0.019,4.28544 0.40511,6.49902 1.59256,9.13066 1.72449,3.82185 1.58385,4.97552 -1.10117,9.03285 -2.30263,3.4795 -1.76897,4.9754 0.81458,2.28334 1.08842,-1.13414 5.57275,-6.83599 9.96516,-12.67076 4.39241,-5.83478 8.69725,-11.24415 9.56632,-12.02082 l 1.58012,-1.41213 -0.51121,1.76777 c -0.45658,1.57886 -2.55546,5.49636 -9.84998,18.38478 -2.11601,3.7387 -2.1903,4.14883 -1.92108,10.6066 0.49156,11.7909 0.39235,25.63325 -0.22599,31.53048 -0.70107,6.68635 -1.21728,6.189 7.77286,7.48884 7.14644,1.03327 8.27958,0.59721 8.79009,-3.38263 0.36837,-2.87174 0.89705,-2.68837 1.67836,0.58212 0.62843,2.63058 2.0249,3.21177 9.5248,3.96404 6.8065,0.68272 8.59583,1.48736 8.59583,3.86545 0,1.45432 -1.85428,4.03496 -2.89927,4.03496 -0.30733,0 -0.65575,-1.51144 -0.77429,-3.35876 l -0.21552,-3.35876 -3.18198,-0.20787 c -3.57828,-0.23376 -5.97636,1.02738 -5.30085,2.78771 0.23813,0.62057 1.84644,2.14339 3.57401,3.38404 1.72758,1.24064 3.14105,2.4575 3.14105,2.70412 0,0.24661 -0.84276,1.66448 -1.87279,3.15082 -1.18374,1.70812 -1.99687,3.99376 -2.21003,6.2121 -0.37744,3.92805 -1.57403,4.12055 -1.57403,0.2532 0,-1.37063 -0.23865,-2.386 -0.53033,-2.25636 -2.89737,1.28772 -10.07628,5.8147 -10.07628,6.35405 0,0.38133 2.69564,4.99644 5.9903,10.2558 5.69926,9.09787 7.66267,13.7961 6.2959,15.06544 -0.34041,0.31615 -1.36385,0.80031 -2.2743,1.07593 -1.36884,0.41437 -2.22556,-0.0938 -4.94975,-2.93604 -1.81191,-1.89044 -4.9613,-6.17063 -6.99864,-9.51155 -7.08191,-11.61319 -11.9776,-16.30075 -14.68115,-14.05699 -1.41939,1.17799 -1.32129,3.99546 0.41851,12.02028 2.57754,11.88882 2.57762,11.91289 0.045,12.79578 -2.47373,0.86234 -3.63402,3.71387 -3.64089,8.94776 -0.004,3.30756 0.31867,3.57234 2.23847,1.83495 1.24129,-1.12336 1.29081,-0.97459 1.23544,3.71231 l -0.0577,4.88256 -1.02447,-2.3458 c -2.39166,-5.47635 -5.23268,0.0382 -5.28623,10.26086 -0.0441,8.41436 1.68922,10.70387 6.05892,8.00324 2.79448,-1.72708 8.25838,-1.92975 9.56546,-0.35481 0.83041,1.00059 3.43967,1.86008 11.45307,3.77266 1.96858,0.46984 3.98573,0.55054 4.93977,0.19762 1.53406,-0.56749 1.47539,-0.66634 -1.20595,-2.03199 -1.55014,-0.78952 -5.47712,-2.02752 -8.7266,-2.75112 l -5.90816,-1.31563 0.28436,-9.19239 c 0.24898,-8.04878 0.5027,-9.62463 2.03942,-12.6668 2.95517,-5.85021 7.45563,-7.80047 11.65343,-5.04996 3.43153,2.24842 4.05887,4.76245 4.66687,18.7022 0.63995,14.67224 1.13574,16.28879 5.03257,16.40916 1.25499,0.0388 3.0773,0.32525 4.04957,0.63663 3.03153,0.97086 3.4486,0.7812 4.19048,-1.90567 z m 10.15815,1.43199 c 4.92005,-0.63519 5.04666,-1.09784 4.30848,-15.74506 -0.94832,-18.81693 -0.81374,-21.2705 1.37121,-24.99882 2.37961,-4.06051 8.39104,-9.47241 11.10288,-9.99557 1.15655,-0.22312 3.03543,-0.58522 4.17528,-0.80468 3.03889,-0.58506 3.68666,-1.80012 3.43095,-6.43562 l -0.22758,-4.12552 -1.25568,2.47487 -1.25566,2.47487 0.37068,-4.24264 c 0.20388,-2.33345 0.59921,-7.58372 0.87851,-11.66726 l 0.50781,-7.42462 1.2129,10.6066 c 1.54935,13.54873 2.47048,17.58947 4.58168,20.09849 2.39323,2.8442 2.14398,3.05163 -1.30046,1.08224 -5.11695,-2.92566 -11.76928,-1.96078 -16.32659,2.36808 -3.2155,3.05432 -4.00813,5.24169 -3.94524,10.88753 l 0.0575,5.16164 1.60283,-5.04324 c 2.02061,-6.35781 4.08315,-9.26453 7.75818,-10.93353 3.87912,-1.76168 5.74285,-1.67952 9.30907,0.41043 5.10914,2.99415 7.23893,9.7059 8.86621,27.94071 0.46854,5.25027 1.08958,9.81697 1.38008,10.14822 0.29051,0.33126 0.75259,-2.09152 1.02684,-5.38393 0.69378,-8.32871 1.5247,-8.92978 1.8864,-1.36459 0.1823,3.81294 0.67941,6.82543 1.23722,7.49755 1.19822,1.44376 5.28031,1.4513 6.71921,0.0124 1.67868,-1.67868 1.3983,-5.64243 -1.68312,-23.7942 -8.15732,-48.05256 -14.56932,-111.76553 -16.2804,-161.77083 -0.81281,-23.75357 -1.06235,-26.68601 -2.40254,-28.23259 -0.73794,-0.85159 -1.06362,-5.58772 -1.38934,-20.20422 -0.23399,-10.50053 -0.9443,-27.84233 -1.57846,-38.53732 -1.42598,-24.04862 -1.22616,-28.75161 1.35174,-31.81528 1.51417,-1.79948 1.73206,-2.4954 1.13225,-3.61617 -0.62726,-1.17204 -1.14916,-1.30152 -3.35622,-0.83265 -1.4374,0.30537 -8.413,0.55521 -15.50133,0.55521 h -12.88787 l -0.36753,1.76777 c -2.79714,13.45381 -3.22116,75.30037 -0.52242,76.19994 1.09748,0.36583 1.11667,11.83301 0.0768,45.92316 l -0.78096,25.60303 5.37641,6.33698 c 2.95702,3.48534 5.3764,6.73701 5.3764,7.22594 0,0.48893 -1.00981,1.73199 -2.24403,2.76236 -2.75569,2.30055 -2.35705,3.97601 1.10033,4.62463 3.34098,0.62677 4.21006,-0.0587 3.74077,-2.95059 -0.35779,-2.20484 -0.28078,-2.32921 1.01342,-1.63657 2.40921,1.28937 7.70322,6.73426 7.70322,7.92276 0,0.62382 -0.66452,1.34513 -1.47673,1.60291 -0.81219,0.25778 -1.88224,1.43315 -2.37788,2.61193 -0.54495,1.29604 -1.09575,1.82838 -1.39344,1.34672 -0.7563,-1.22372 -2.95997,-0.96234 -8.38501,0.99458 -5.39441,1.94587 -7.91406,1.98915 -4.22138,0.0725 1.39899,-0.72613 2.29809,-1.73215 2.29809,-2.57135 0,-1.18767 0.2512,-1.28305 1.81406,-0.68885 2.01964,0.76786 3.47031,0.22602 5.55129,-2.07343 0.73652,-0.81384 2.0853,-1.47971 2.9973,-1.47971 1.15553,0 1.65817,-0.40576 1.65817,-1.33856 0,-2.08342 -1.42837,-2.17167 -6.92794,-0.42802 l -5.09288,1.61471 v -1.60604 c 0,-1.62855 -1.58105,-2.60361 -5.83363,-3.59769 -2.29319,-0.53607 -2.64929,0.68604 -0.53033,1.82007 0.77782,0.41627 1.41422,1.12291 1.41422,1.57029 0,0.44739 0.69186,1.54989 1.53747,2.45 1.53548,1.63445 1.53558,1.63656 0.0692,1.63656 -1.00742,0 -1.70906,0.69065 -2.23533,2.2003 -0.65719,1.88522 -1.0215,2.13643 -2.54405,1.7543 -0.97735,-0.24531 -1.77701,-0.30699 -1.77701,-0.13708 0,0.16992 0.82385,1.94918 1.83078,3.95393 1.75176,3.48767 1.84673,4.29137 2.20034,18.61965 0.32506,13.17215 -0.26689,47.02339 -1.67817,95.96771 -0.47947,16.62859 -0.12325,18.89737 2.83411,18.05042 0.84175,-0.24107 3.05526,-0.63516 4.91893,-0.87576 z m 30.21643,-3.79166 c 7.79344,-1.59914 11.12163,-3.0714 5.61095,-2.48207 -1.73438,0.18548 -6.33539,0.49535 -10.22448,0.6886 l -7.07107,0.35135 5.28682,-1.39768 c 2.90774,-0.76872 5.77153,-1.88318 6.36396,-2.47657 0.80291,-0.80422 1.07714,-2.67738 1.07714,-7.35748 0,-6.60959 -0.14671,-7.09549 -2.2333,-7.39628 -1.92288,-0.2772 -2.05908,-2.9761 -0.20039,-3.97084 1.30803,-0.70004 1.49031,-1.27639 1.20479,-3.80949 -0.37323,-3.31124 -3.37131,-9.79729 -5.66477,-12.25515 -1.838,-1.96976 -4.40768,-2.02435 -7.46779,-0.15866 -4.22484,2.57582 -4.66259,4.71523 -4.69845,22.96285 -0.0392,19.94319 -0.0794,19.81945 6.24837,19.22854 2.39852,-0.22397 7.69422,-1.09118 11.76822,-1.92712 z m -22.13829,-7.5787 c -0.16201,-1.0695 -0.29457,-0.19446 -0.29457,1.94454 0,2.139 0.13256,3.01404 0.29457,1.94454 0.16202,-1.06949 0.16202,-2.81958 0,-3.88908 z m 120.76235,-36.30828 c 0,-20.65598 -0.17937,-25.38731 -0.99992,-26.37522 -0.91266,-1.09881 -1.09778,-1.10606 -2.12132,-0.0831 -1.30631,1.30556 -1.48192,8.69674 -0.54393,22.89284 l 0.57748,8.73983 -5.88078,-0.6081 c -9.0731,-0.9382 -16.13907,-0.67869 -18.75797,0.68893 -2.81434,1.46967 -5.71598,6.28548 -6.28397,10.42938 -0.35373,2.5807 -0.17822,3.35318 1.00519,4.42414 3.13131,2.83381 6.07039,-0.38758 5.38069,-5.8975 l -0.3983,-3.18198 3.06709,5.65685 c 2.58535,4.76836 3.56437,5.90955 6.23324,7.26569 2.81668,1.43125 4.02468,1.58734 10.94433,1.41421 l 7.77817,-0.19461 z m -33.39166,3.28299 c 1.87848,-3.93922 4.49829,-4.85562 15.15065,-5.29965 6.26205,-0.26102 9.63805,-0.69184 10.25304,-1.3084 0.6662,-0.6679 0.9169,-3.70602 0.9169,-11.11168 0,-12.29682 0.0588,-12.1985 -7.86017,-13.14188 -3.06617,-0.36527 -8.43864,-1.49689 -11.93882,-2.51471 -3.50018,-1.01781 -7.28269,-2.00873 -8.40558,-2.20205 l -2.04162,-0.35149 0.33044,18.35233 c 0.18174,10.09378 0.5624,18.72765 0.84591,19.18639 0.84429,1.36608 1.51884,0.97134 2.74925,-1.60886 z m -148.71321,0.36808 c 1.81591,-3.39306 -0.4379,-9.23887 -3.56198,-9.23887 -1.66657,0 -1.67171,0.19771 0.0898,-3.44812 0.93317,-1.93143 1.37569,-4.05038 1.23744,-5.92527 -0.19738,-2.67674 -0.42034,-2.97218 -2.69009,-3.56471 -2.44199,-0.63747 -11.02519,-0.31404 -11.78326,0.44402 -0.80859,0.8086 4.96767,9.0956 9.34916,13.41293 2.72377,2.68389 4.55542,5.0842 4.55542,5.96974 0,3.49848 1.51109,4.76526 2.80355,2.35028 z m 27.87994,0.24924 c 0.70303,-1.83207 0.50013,-2.41704 -0.83835,-2.41704 -0.8968,0 -1.50631,-0.89267 -2.0838,-3.05187 -0.89534,-3.34753 -7.38429,-12.83032 -9.89821,-14.46498 -3.004,-1.95334 -2.74455,0.86306 0.72302,7.84811 4.17501,8.41014 7.80881,13.20427 10.00841,13.20427 0.91285,0 1.85287,-0.50332 2.08893,-1.11849 z m 75.84354,-7.83034 c -0.25356,-4.14404 -0.46102,-9.61583 -0.46102,-12.15953 v -4.6249 l -2.47487,2.39874 c -2.23458,2.16584 -2.47487,2.25358 -2.47487,0.90365 0,-2.23803 0.73796,-3.73208 1.84342,-3.73208 0.67777,0 0.985,-0.88222 0.985,-2.82843 0,-2.72632 -0.41039,-3.17225 -2.65165,-2.88121 -1.32407,0.17194 -1.09989,-0.3591 1.31069,-3.10459 2.64167,-3.00869 3.29809,-3.1101 3.5921,-0.55493 0.32094,2.78935 2.9618,2.73427 3.28251,-0.0685 0.17997,-1.57266 0.5208,-1.93704 1.55813,-1.66578 0.73028,0.19097 1.86451,-0.0452 2.52051,-0.52492 1.107,-0.80946 1.09666,-0.91202 -0.14391,-1.42684 -2.06926,-0.85871 -15.35347,-1.24915 -16.47437,-0.4842 -0.85268,0.58191 -0.83695,1.27249 0.10957,4.8113 0.60784,2.27253 1.29675,6.04107 1.5309,8.37452 0.23416,2.33345 1.11071,8.93606 1.94789,14.67246 l 1.52214,10.42983 h 2.46942 2.46941 z m 272.76242,-10.10878 c 1.5153,-0.35151 3.02148,-1.05987 3.34707,-1.57412 0.82503,-1.30312 0.0576,-5.21898 -1.87107,-9.54679 -2.29369,-5.14699 -4.42696,-6.1308 -13.42348,-6.19053 -3.88909,-0.0258 -7.94209,0.19675 -9.00667,0.49461 -3.04143,0.85096 -4.34365,3.51848 -4.294,8.79605 0.0692,7.35395 2.07845,8.47381 15.42199,8.59543 3.88909,0.0354 8.31086,-0.22314 9.82616,-0.57465 z m 9.17733,-2.24398 c 0.24307,-1.21534 0.44195,-11.07948 0.44195,-21.92031 v -19.7106 l -6.54074,0.004 c -7.5219,0.005 -11.5213,0.90019 -12.54282,2.80894 -0.39349,0.73523 -0.71543,4.71325 -0.71543,8.84003 0,7.02361 0.11095,7.61421 1.73562,9.23888 1.14635,1.14634 2.53339,1.73563 4.08531,1.73563 4.75325,0 6.7972,2.81272 9.10492,12.52949 2.11682,8.91291 3.53037,10.97812 4.43119,6.474 z M 83.729164,557.56858 c 9.386539,-1.85421 18.150616,-4.55561 20.153226,-6.21193 l 1.48421,-1.22758 -2.40262,-10.66237 c -2.69025,-11.93887 -4.427767,-16.03082 -7.476387,-17.60732 -2.829381,-1.46314 -21.600978,-1.53486 -25.045369,-0.0957 -2.96915,1.24059 -4.729749,4.10675 -7.911701,12.87983 -4.696946,12.95014 -6.929574,23.07903 -5.431651,24.64209 0.94998,0.99128 18.720207,-0.15447 26.630292,-1.71702 z m 764.422716,0.4427 c 1.20619,-0.88196 1.23921,-1.30973 0.42328,-5.48008 -1.16468,-5.95298 -6.82245,-24.15281 -8.57834,-27.59467 -1.9787,-3.87859 -4.59725,-4.9601 -13.05411,-5.39172 -16.65548,-0.85006 -17.69591,0.12816 -21.95277,20.64001 l -1.89844,9.14762 1.58576,1.28407 c 5.63154,4.56013 39.47798,10.3172 43.47462,7.39477 z m -731.05479,-3.12006 c 2.00014,-1.33554 2.73088,-4.22225 2.63743,-10.419 -0.11262,-7.46767 -1.85587,-16.24399 -6.30235,-31.72879 -3.20791,-11.17155 -5.9331,-22.46569 -5.90833,-24.4862 0.0406,-3.31432 3.58833,6.69643 7.76828,21.92031 2.40899,8.77385 6.05137,17.42083 8.01887,19.03675 8.16311,6.70443 23.39634,-36.22768 16.06628,-45.27992 -1.73419,-2.14163 -10.71445,-3.06485 -20.81484,-2.13989 -11.24581,1.02985 -13.12901,1.77492 -15.4447,6.11056 -2.58981,4.84886 -7.714565,20.43254 -8.138271,24.74737 -0.32814,3.34164 -0.231959,3.59906 1.753788,4.69396 2.566536,1.41514 4.327383,5.79399 7.211453,17.93346 2.70784,11.39771 4.57211,16.17354 7.16514,18.35543 2.10761,1.77343 4.47007,2.26901 5.98725,1.25596 z M 798.21211,552.369 c 1.9944,-2.12291 4.02401,-7.94998 6.18372,-17.75367 1.89865,-8.61874 4.11402,-15.70701 5.44147,-17.41054 0.47334,-0.60747 1.46103,-1.33013 2.19479,-1.60592 1.15662,-0.43471 1.27612,-0.99336 0.89796,-4.19882 -0.57806,-4.89978 -6.52116,-23.18497 -8.48069,-26.09271 -2.14812,-3.18765 -5.91233,-4.16344 -17.85268,-4.62792 -10.91044,-0.42441 -14.53946,0.22424 -16.00911,2.86147 -0.53139,0.9535 -0.81741,4.21125 -0.75568,8.60543 0.23907,17.00932 10.09494,39.44985 15.95013,36.31626 2.2491,-1.20372 5.22241,-8.71727 8.93168,-22.57042 3.42876,-12.80584 5.60672,-19.40931 6.2043,-18.8117 0.48472,0.48469 -2.42389,13.88648 -5.49111,25.30119 -5.63515,20.97112 -7.34267,35.67221 -4.62504,39.81982 1.58342,2.41659 5.22014,2.49881 7.41026,0.16753 z m -542.56333,-1.34586 c 1.89977,-1.25835 5.53406,-2.85612 8.07618,-3.55059 l 4.62206,-1.26267 -7.77817,0.2956 c -7.85866,0.29867 -12.11723,1.26281 -11.31453,2.56161 0.24081,0.38964 1.12625,0.70843 1.96765,0.70843 h 1.52982 l -1.57155,1.10075 c -0.86435,0.60542 -1.57155,1.40092 -1.57155,1.76777 0,1.33122 2.66149,0.61699 6.04009,-1.6209 z m -110.70574,-2.75326 c 6.42461,-0.43918 11.80018,-0.90297 11.94571,-1.03062 0.38739,-0.33982 -8.21416,-21.73079 -11.0644,-27.51578 -4.99259,-10.1332 -6.58661,-10.02401 -9.38045,0.64254 -1.53504,5.86062 -6.25763,17.78126 -8.3596,21.1011 l -1.40264,2.21532 0.38281,-4.22176 c 0.40498,-4.46622 -0.67215,-6.57361 -2.91921,-5.71133 -2.45727,0.94294 -2.18738,10.22147 0.39272,13.50153 1.70095,2.16241 2.84398,2.21949 20.40506,1.019 z m 638.57044,-0.63664 c 2.18836,-1.17119 3.49721,-4.53553 3.48555,-8.95954 -0.0124,-4.67826 -0.64913,-6.1162 -2.54877,-5.75533 -1.0748,0.20418 -1.39724,1.06415 -1.68306,4.489 l -0.35355,4.23642 -1.94546,-4.33306 c -2.79406,-6.22331 -3.98108,-9.60753 -6.15537,-17.55022 -3.63933,-13.29432 -5.47626,-11.55581 -15.27683,14.45866 l -4.39544,11.66726 2.57288,0.51238 c 1.41506,0.28181 7.02758,0.79217 12.4723,1.13414 5.44472,0.34197 10.47727,0.66825 11.18339,0.72506 0.70618,0.0568 1.8961,-0.22433 2.64436,-0.62477 z m -617.08869,-2.63069 c 0.54896,-1.0695 1.38894,-3.85373 1.86662,-6.18718 1.08064,-5.27888 2.36436,-7.84543 4.15876,-8.31468 0.76283,-0.19948 3.67727,0.10854 6.47653,0.68451 4.50876,0.92769 5.21017,0.92659 6.14641,-0.01 0.93773,-0.93772 0.9175,-1.48329 -0.17945,-4.84023 -2.03181,-6.21786 -5.23713,-12.84475 -7.20761,-14.90149 -2.84244,-2.96686 -5.95926,-3.68838 -15.7586,-3.64799 -10.24011,0.0422 -15.49291,0.69652 -15.98995,1.99179 -0.50626,1.31929 5.58981,17.91803 9.62567,26.20932 3.69189,7.58463 6.30852,10.96015 8.49606,10.96015 0.77838,0 1.7974,-0.83766 2.36556,-1.94454 z m 90.13267,-6.17773 c 4.41839,-4.15823 5.77915,-6.46376 5.77915,-9.79156 0,-3.31086 -3.73805,-6.59814 -12.39031,-10.89614 -4.99734,-2.48243 -6.72606,-3.69301 -6.79786,-4.76041 -0.0789,-1.17327 -0.15393,-1.12638 -0.41591,0.26009 -0.23281,1.23212 0.2125,2.11578 1.63973,3.2538 1.66443,1.32718 2.04084,2.29648 2.50091,6.44024 0.29787,2.68286 0.55792,9.15647 0.57789,14.3858 l 0.0363,9.50787 2.65165,-2.42735 c 1.45841,-1.33505 4.34671,-4.0226 6.41844,-5.97234 z m 33.2039,6.38908 c 0.2087,-0.2087 -0.14893,-0.96331 -0.79472,-1.67691 -0.6458,-0.7136 -1.17418,-2.29534 -1.17418,-3.51499 0,-1.46872 -0.46186,-2.46471 -1.36773,-2.94953 -1.60184,-0.85727 -10.36696,-0.89471 -12.42085,-0.053 -1.31403,0.53848 -1.27321,0.63514 0.57636,1.36452 1.09481,0.43174 2.26365,0.78498 2.59739,0.78498 1.24928,0 4.95797,3.71078 4.95797,4.96076 0,0.71473 0.55685,1.45897 1.23744,1.65388 1.3997,0.40084 5.8112,0.007 6.38832,-0.56966 z m 461.87469,-1.58593 c 3.19308,-4.05938 12.14774,-26.38534 13.21123,-32.93843 0.52545,-3.23831 -0.12113,-3.45058 -11.77856,-3.86686 -10.98667,-0.39232 -14.86862,0.34779 -17.69521,3.37365 -2.09233,2.23986 -6.93968,14.19165 -7.22458,17.81304 -0.17882,2.27353 -0.12501,2.31972 2.64593,2.27197 1.55563,-0.0268 4.4675,-0.30229 6.4708,-0.61216 3.36767,-0.5209 3.72589,-0.43601 4.74886,1.12524 0.60853,0.92876 1.59467,4.00945 2.19132,6.846 0.59666,2.83653 1.41422,5.77274 1.81677,6.5249 1.06003,1.98063 3.84228,1.71429 5.61344,-0.53735 z m -127.57269,-2.63335 c 1.28901,-0.94168 1.38596,-2.14719 1.59217,-19.79899 l 0.21959,-18.79626 h -8.09621 c -11.78588,0 -11.43485,-0.43767 -11.43485,14.25707 0,13.03252 0.55867,15.35225 4.07536,16.922 1.54471,0.68951 2.40207,1.68506 2.79706,3.2479 1.11164,4.3983 7.28477,6.77054 10.84688,4.16828 z m -98.3453,-0.46188 c 4.6582,-0.4086 8.56095,-0.8344 8.67277,-0.94622 0.26974,-0.26975 -6.31755,-18.44547 -7.87245,-21.72175 -2.69605,-5.68076 -6.05275,-6.97291 -18.10861,-6.97084 -9.1967,0.002 -16.85855,1.0205 -18.28844,2.43209 -1.26802,1.25181 0.24124,5.96193 4.90184,15.29764 3.62394,7.25919 6.36879,11.02518 8.73274,11.9815 2.06736,0.83634 11.97441,0.80367 21.96215,-0.0724 z m -156.69503,-1.63342 c 6.77706,-0.68257 8.95378,-1.15729 9.64574,-2.10359 0.49149,-0.67215 1.24771,-3.67469 1.68049,-6.6723 0.71239,-4.93433 3.5886,-30.07338 3.60353,-31.49615 0.008,-0.7438 -30.31424,-0.24562 -31.99039,0.5256 -1.9467,0.8957 -1.44817,2.53259 0.91529,3.00528 l 2.15273,0.43055 -2.15273,1.30914 c -2.63628,1.60322 -2.72261,2.56249 -0.31308,3.47859 1.20033,0.45637 1.70021,1.0628 1.43843,1.74501 -0.22068,0.57506 0.0205,1.43949 0.53587,1.92095 0.77363,0.72268 0.6946,1.20338 -0.45309,2.75571 -2.14409,2.90004 -1.15514,7.28865 2.4108,10.69834 l 2.77317,2.65165 h -2.10936 c -1.16015,0 -2.29539,0.301 -2.52275,0.66888 -0.41267,0.6677 3.82037,2.14814 6.16355,2.1556 2.05479,0.007 1.3944,1.07731 -1.25537,2.03548 -3.08787,1.11659 -4.89439,3.6837 -4.28918,6.09504 0.52429,2.08894 0.78282,2.10389 13.76635,0.79622 z m -163.86362,-6.03373 c 1.62422,-1.31701 1.66893,-1.64659 1.655,-12.19759 -0.0174,-13.1871 -0.88616,-16.87517 -8.46723,-35.9463 -2.86004,-7.19481 -5.40836,-14.03607 -5.66294,-15.2028 l -0.46286,-2.12132 1.443,1.76777 c 0.79365,0.97227 3.41648,6.16288 5.82851,11.53468 8.20675,18.27714 8.50371,18.51736 22.89219,18.51736 15.72237,0 15.88414,-0.28836 9.52047,-16.97057 -1.28098,-3.35806 -1.68562,-6.12235 -1.94074,-13.25825 -0.17728,-4.95859 -0.6029,-9.01561 -0.94582,-9.01561 -0.34293,0 -0.6235,0.53179 -0.6235,1.18176 0,4.06911 -4.96474,4.71668 -17.465,2.27806 -4.20051,-0.81947 -10.23565,-1.53542 -13.41142,-1.59099 -5.15405,-0.0902 -5.9633,0.0764 -7.53566,1.55143 -4.81804,4.5198 -14.62093,29.52173 -14.62093,37.29017 0,2.01728 0.38879,3.03281 1.40376,3.66667 1.79345,1.12003 5.15816,7.78778 8.27519,16.3987 4.24775,11.7346 5.9467,13.39502 13.75402,13.4421 3.60139,0.0217 5.08337,-0.2869 6.36396,-1.32527 z m 393.91596,-0.0921 c 3.40534,-0.94575 4.79382,-3.01456 4.79382,-7.14272 0,-2.5611 -0.42852,-3.83321 -1.86717,-5.54296 -3.19736,-3.79984 -3.75405,-12.04415 -1.0989,-16.27427 1.4434,-2.2996 1.2037,-5.15072 -1.02907,-12.24032 -1.77514,-5.63651 -8.5299,-23.13457 -9.18813,-23.80165 -0.18076,-0.18319 -0.62447,0.13501 -0.98601,0.70711 -1.25824,1.99101 -8.98934,26.40271 -10.47749,33.08375 -0.80552,3.61631 0.0745,4.34958 3.51157,2.9259 1.81152,-0.75035 2.279,-0.73431 2.80418,0.0962 0.34663,0.5482 0.5559,6.14376 0.46502,12.43458 -0.15371,10.64117 -0.0623,11.5758 1.31274,13.4182 2.18103,2.9224 6.53445,3.78725 11.75944,2.33613 z m 123.27423,-0.99045 c 2.16049,-1.4156 3.32396,-3.69655 6.41494,-12.57683 2.96638,-8.52221 5.93864,-14.564 8.02036,-16.30319 0.86048,-0.71897 1.36924,-1.78622 1.17966,-2.47487 -0.18335,-0.66594 -0.54539,-2.76715 -0.80461,-4.66934 -1.13265,-8.31207 -9.55726,-29.90007 -13.10608,-33.58415 -1.55217,-1.61139 -1.93048,-1.66954 -8.40235,-1.29165 -3.72734,0.21763 -8.84526,0.87502 -11.37317,1.46087 -8.26517,1.91547 -12.51708,2.17248 -14.4955,0.87617 -0.97237,-0.63713 -1.76795,-1.76869 -1.76795,-2.5146 0,-0.74589 -0.3182,-1.55283 -0.70711,-1.79319 -0.45428,-0.28076 -0.70711,2.22023 -0.70711,6.99453 0,8.55099 -0.78689,12.88505 -3.62999,19.99332 -4.21802,10.54586 -2.72774,12.25658 10.67729,12.25658 12.9369,0 13.95064,-0.72031 19.40571,-13.78859 3.84813,-9.21864 8.1767,-18.28547 8.5509,-17.91122 0.47341,0.47335 -2.51088,9.60394 -6.31633,19.32544 -5.51733,14.09469 -6.90156,20.30905 -7.24529,32.52691 -0.32621,11.59475 0.14108,13.6563 3.31211,14.61228 2.63307,0.79379 9.06143,0.12814 10.99452,-1.13847 z m -253.18425,-4.06965 c 4.14412,-1.04358 7.04521,-4.58993 13.26065,-16.2101 l 5.48247,-10.24984 -2.78222,-11.2711 c -3.54274,-14.35205 -6.13455,-22.53248 -7.49734,-23.66349 -0.59021,-0.48984 -1.22506,-0.73868 -1.41076,-0.55297 -0.96841,0.96841 -4.6978,36.10778 -4.51415,42.53368 l 0.0638,2.23148 0.58121,-2.12132 c 0.31966,-1.16672 0.79515,-5.48712 1.05663,-9.60087 0.51701,-8.13406 0.719,-8.79957 2.83081,-9.32719 1.28384,-0.32075 1.26755,-0.36088 -0.17678,-0.43535 -1.36594,-0.0704 -1.59099,-0.47487 -1.59099,-2.85928 0,-1.5275 0.34597,-5.26471 0.76882,-8.30492 1.28924,-9.26929 3.25766,-8.43729 6.36673,2.69105 1.12641,4.03176 2.05,7.56912 2.05242,7.8608 0.002,0.29168 -0.71153,0.56205 -1.58657,0.60081 -1.5202,0.0673 -1.51294,0.0922 0.16303,0.55897 1.51193,0.42106 1.93948,1.26527 3.09783,6.1167 l 1.34382,5.62822 -5.61995,10.25304 -5.61993,10.25305 -9.85227,0.44406 c -5.41874,0.24423 -15.46573,0.48287 -22.32663,0.53033 l -12.47437,0.0863 -1.13743,-2.84274 c -1.68969,-4.22294 -1.47723,-5.38191 1.16065,-6.33127 1.32773,-0.47784 10.01378,-1.08181 20.57094,-1.43036 10.05005,-0.33181 18.4823,-0.82363 18.73833,-1.09291 0.7531,-0.79213 -34.57565,0.21916 -38.20115,1.0935 -4.48422,1.08144 -5.10504,1.95718 -4.09529,5.77684 1.70042,6.43227 7.21449,9.58653 18.36675,10.50649 7.09713,0.58544 18.98547,0.13456 22.98097,-0.87158 z m 67.8013,-2.15632 c 1.54776,-4.24132 2.55582,-10.59977 2.55582,-16.12118 0,-8.12009 -2.97629,-10.01846 -15.9099,-10.14782 -8.30247,-0.083 -11.66726,0.93624 -11.66726,3.5343 0,2.18206 2.39934,3.69618 6.76345,4.2681 6.92191,0.90713 7.9264,2.00333 11.25212,12.27942 3.20791,9.91203 5.05211,11.54075 7.00577,6.18718 z M 644.3056,515.10266 c 3.42959,-0.95254 5.82794,-3.90611 9.45403,-11.64263 3.02276,-6.44927 7.38521,-18.11078 7.38521,-19.74183 0,-1.55305 -3.61311,-2.61868 -10.9316,-3.22412 -3.9048,-0.32303 -7.65647,-0.81081 -8.33706,-1.08394 -1.45243,-0.58288 -1.59557,-1.82525 -0.35356,-3.06863 1.32484,-1.3263 1.0821,-14.97943 -0.47016,-26.44482 -0.72398,-5.3475 -1.54219,-9.72272 -1.81824,-9.72272 -0.98843,0 -3.0534,29.71246 -2.60708,37.51302 0.48662,8.50493 -0.19661,11.89731 -4.83468,24.00527 -1.41526,3.69463 -2.62895,7.9827 -2.6971,9.52903 -0.11538,2.61869 0.0458,2.87055 2.35099,3.6724 3.07003,1.06791 9.3965,1.17072 12.85925,0.20897 z M 387.117,503.46003 c 0.29915,-1.84434 0.23201,-2.45939 -0.19295,-1.76777 -0.35844,0.58336 -0.84021,2.33345 -1.07061,3.88909 -0.25752,1.73877 -0.18319,2.41981 0.19295,1.76776 0.33652,-0.58336 0.8183,-2.33345 1.07061,-3.88908 z m 78.15926,3.56135 c 0,-0.18025 -2.41372,-8.9565 -5.36382,-19.50276 -2.95011,-10.54627 -5.20975,-19.32912 -5.02143,-19.51744 0.45985,-0.45984 5.21774,11.95643 9.25237,24.14514 1.80228,5.44472 3.58998,10.37679 3.97265,10.96015 1.28339,1.95648 1.88442,-0.48866 2.31489,-9.41749 0.23245,-4.82158 1.65438,-15.92928 3.22985,-25.23074 1.54802,-9.13935 3.04058,-18.92394 3.31681,-21.74353 l 0.50223,-5.12653 h -19.55952 c -24.28723,0 -24.12872,-0.0433 -25.5455,6.97446 -0.73525,3.64192 0.29498,11.15534 1.78133,12.99113 1.15131,1.42199 2.12707,1.64671 8.71948,2.00813 5.67612,0.31119 7.89583,0.72722 9.4318,1.76777 l 2.00871,1.3608 -17.14734,0.18935 c -9.43104,0.10415 -17.14734,0.42159 -17.14734,0.70543 0,0.28384 2.44212,9.34683 5.42694,20.13997 l 5.42695,19.62389 h 17.20047 c 9.46026,0 17.20047,-0.14748 17.20047,-0.32773 z m 95.81297,-0.36134 c 6.88001,-1.59409 6.88621,-5.75615 0.0456,-30.60215 -4.24418,-15.41542 -6.4635,-18.96768 -12.48601,-19.98518 -5.02078,-0.84825 -21.22704,-2.20069 -21.46496,-1.79128 -0.39415,0.67824 -12.41602,38.54843 -12.41301,39.10232 0.002,0.29169 4.78607,0.53033 10.6322,0.53033 15.97971,0 16.14349,-0.12353 21.56086,-16.26345 1.76225,-5.25027 3.80597,-10.81873 4.5416,-12.37437 3.06778,-6.48741 1.0745,1.5078 -6.24765,25.05986 -3.92729,12.63235 -4.10024,13.60792 -2.62881,14.82909 2.24444,1.86272 13.08403,2.74047 18.46018,1.49483 z m 14.40491,-0.2622 c 2.047,-2.4665 1.36206,-11.25552 -1.03201,-13.24242 -1.61176,-1.33765 -1.15982,-2.43693 1.29956,-3.16097 2.58361,-0.76061 5.82836,-5.53445 8.37983,-12.3288 1.95903,-5.21676 3.13181,-11.94398 2.23805,-12.83774 -1.20142,-1.20141 -10.227,-2.15265 -16.09795,-1.69662 -8.08219,0.62779 -8.83982,0.89414 -8.83351,3.10551 0.0127,4.45753 7.93207,31.80617 11.34181,39.16777 1.00913,2.17869 1.55424,2.37891 2.70422,0.99327 z m -148.40165,-1.43165 c 0,-2.30112 -4.00236,-15.58722 -5.69512,-18.9053 -1.52685,-2.99287 -2.63338,-3.76211 -6.38372,-4.43786 -2.64004,-0.4757 -28.1745,0.68991 -28.79923,1.31464 -0.19646,0.19645 1.23125,2.18967 3.17269,4.42936 1.94142,2.2397 4.39025,5.37898 5.44182,6.97618 2.37147,3.60194 3.11035,3.93637 15.29439,6.92247 5.43079,1.33099 11.07279,3.04364 12.53778,3.80588 3.61425,1.8805 4.43139,1.86107 4.43139,-0.10537 z M 243.07581,483.0256 c -0.26763,-14.90372 -0.61562,-20.59768 -1.39214,-22.77917 -1.40361,-3.94314 -6.09912,-9.46586 -8.04804,-9.46586 -1.97788,0 -2.87452,-1.13768 -3.48926,-4.42723 -0.27334,-1.4627 -0.79832,-2.84569 -1.16661,-3.0733 -1.19117,-0.73619 -4.92716,1.30816 -5.59351,3.0608 -0.7886,2.07419 -0.76731,9.2102 0.0333,11.15725 0.68347,1.66217 0.89647,1.22874 2.15464,-4.3844 2.31519,-10.32898 5.81791,-3.54933 8.11045,15.6981 1.80149,15.12477 4.14692,25.99012 7.53244,34.89456 0.6669,1.75403 0.76137,1.78838 1.46423,0.53246 0.50511,-0.90256 0.6344,-7.8546 0.39451,-21.21321 z m -80.44125,-1.13233 v -21.92031 h -9.8995 -9.89949 v 21.92031 21.92031 h 9.89949 9.8995 z m 515.32412,13.96536 c 2.86612,-10.39062 3.41856,-13.39936 5.10264,-27.79049 1.50023,-12.82005 2.84961,-18.66328 4.65615,-20.16257 0.92086,-0.76426 1.22081,-0.74841 1.74265,0.092 0.6657,1.07216 2.09031,7.08882 2.09031,8.82817 0,0.56422 0.3182,1.02586 0.70711,1.02586 0.92194,0 0.93495,-11.68805 0.0149,-13.40714 -1.31198,-2.45146 -4.57783,-2.86053 -21.86397,-2.73862 l -16.68827,0.1177 16.63942,0.47684 c 19.47925,0.55822 20.75292,0.88008 20.98605,5.30319 0.14102,2.67565 0.11018,2.72164 -0.58926,0.87886 -0.51107,-1.34647 -1.24003,-1.94454 -2.37013,-1.94454 -2.88204,0 -4.22162,5.14103 -7.4621,28.63783 -1.38474,10.04078 -3.3188,19.12812 -4.99974,23.4917 -0.71656,1.86012 -0.93411,1.51113 -4.1078,-6.58931 -5.2646,-13.43727 -6.71829,-15.16221 -13.65446,-16.20235 -6.01122,-0.90144 -5.8099,-0.32094 -6.21058,-17.90866 -0.19491,-8.55561 -0.59266,-15.79393 -0.88388,-16.08516 -0.75512,-0.75512 -0.62493,26.37304 0.14245,29.68096 0.87573,3.77502 2.0092,4.67952 6.65403,5.30984 6.45593,0.87609 8.9575,4.27295 14.24218,19.3394 1.46644,4.18077 2.8894,7.6014 3.16213,7.6014 0.27273,0 1.4833,-3.57973 2.69015,-7.95495 z m 89.95928,-15.02602 v -22.27386 h -9.19239 -9.19238 v 22.27386 22.27386 h 9.19238 9.19239 z m -146.36292,16.2536 c 1.4111,-1.70028 0.39045,-6.34965 -3.49464,-15.9191 -6.25536,-15.40771 -8.75756,-18.04903 -17.01964,-17.96595 -2.52791,0.0254 -5.315,0.4359 -6.19355,0.91217 -1.97654,1.07151 -1.93575,1.27151 3.11372,15.26508 4.32514,11.98621 6.52932,16.18045 9.29093,17.67929 2.71015,1.47091 13.08893,1.4916 14.30318,0.0285 z m 9.83651,-1.6555 c 1.17837,-2.20182 2.05804,-9.49002 3.59688,-29.8009 0.8103,-10.69499 1.77041,-21.51372 2.13357,-24.04163 1.81322,-12.62142 1.44287,-12.97459 -13.98334,-13.33451 -11.26115,-0.26274 -16.41214,0.43624 -18.74669,2.54389 -2.33114,2.10457 -6.86037,20.70999 -5.93708,24.38869 0.47929,1.90964 1.00366,2.1595 7.68468,3.66166 4.16367,0.93615 8.80285,7.8052 14.30117,21.17513 2.73228,6.64394 6.45808,14.36715 7.63933,15.83559 1.02701,1.27669 2.50114,1.0862 3.31148,-0.42792 z m -274.45924,-1.41945 c 2.22513,-1.11329 5.27701,-2.42332 6.78195,-2.91119 3.87564,-1.2564 2.05528,-2.11152 -4.52345,-2.12491 -6.21631,-0.0126 -8.46585,1.09117 -8.46585,4.15406 0,3.52934 0.71349,3.63073 6.20735,0.88204 z m 29.50154,-0.0972 c 0.28457,-0.46043 -3.33923,-0.68976 -10.38809,-0.6574 -6.70597,0.0308 -10.28698,0.28094 -9.4109,0.6574 2.01527,0.86599 19.26379,0.86599 19.79899,0 z m 122.45936,-1.37417 c 4.01399,-1.82241 5.40563,-4.66349 5.38821,-11.00019 -0.0154,-5.58842 -1.80693,-15.12678 -3.88904,-20.70538 -2.16776,-5.80809 -3.10462,-6.16468 -16.19618,-6.16468 -9.91706,0 -11.25167,0.14288 -12.58224,1.34703 -0.81866,0.74086 -1.48641,1.85456 -1.48392,2.47487 0.006,1.48638 5.45926,26.66204 6.3867,29.48491 0.73278,2.23035 3.00046,4.73563 4.92247,5.43823 0.58336,0.21326 4.08354,0.40587 7.77818,0.42803 5.15367,0.0309 7.40621,-0.27238 9.67582,-1.30282 z m -154.0532,-10.46986 c 0.15487,-1.09053 0.71096,-1.59403 1.76776,-1.60065 2.63325,-0.0165 4.72379,-0.82004 4.72379,-1.8157 0,-1.48821 -2.40869,-2.41728 -6.26696,-2.41728 -5.26346,0 -7.18371,2.59367 -4.62491,6.24685 1.44542,2.06363 4.08374,1.81587 4.40032,-0.41322 z m 24.87633,1.21367 c 0.92246,-0.61681 0.89539,-0.80651 -0.20777,-1.45587 -0.86171,-0.50724 -1.12256,-1.20625 -0.8135,-2.18003 0.40755,-1.28406 0.23201,-1.38441 -1.68516,-0.96332 -1.39886,0.30723 -2.90494,0.0745 -4.34837,-0.6719 -2.55989,-1.32378 -4.96602,-0.83281 -4.96602,1.01331 0,1.69517 1.42999,2.80145 5.10412,3.9487 3.70252,1.15612 5.52796,1.23769 6.9167,0.30911 z m 1.40315,-7.06797 c -1.54847,-2.89334 -5.18954,-3.7546 -17.66661,-4.17883 l -11.66726,-0.3967 3.18198,-2.20101 c 1.75009,-1.21055 7.55721,-4.80205 12.9047,-7.9811 l 9.72272,-5.78009 v -12.3482 -12.34822 h -8.3987 c -6.24067,0 -8.60488,0.24843 -9.20111,0.96684 -1.41089,1.70003 0.75245,2.69486 4.71664,2.169 5.15014,-0.6832 5.42507,0.73036 0.56046,2.88172 -4.33725,1.91814 -4.96821,2.96267 -1.9962,3.30464 2.87545,0.33086 2.37152,2.08715 -0.88389,3.08048 l -2.82842,0.86305 2.31281,0.52953 c 1.27204,0.29125 2.45279,0.75604 2.62388,1.03286 0.75667,1.22432 -8.38354,6.38508 -11.30857,6.38508 -1.42213,0 -2.06125,0.54863 -2.85659,2.45217 -1.59132,3.80856 -1.35608,5.32601 0.82566,5.32601 1.5021,0 1.78065,-0.26609 1.48041,-1.41421 -0.43033,-1.64558 -0.46496,-1.63389 2.02955,-0.68547 l 1.91673,0.72873 -1.6404,1.74614 c -0.90223,0.96037 -2.21014,1.74613 -2.90648,1.74613 -1.77756,0 -2.73005,2.15697 -2.73005,6.18233 0,5.49597 0.20696,5.59784 13.18686,6.49086 11.22449,0.77224 14.76708,1.44943 17.56861,3.35833 1.67913,1.14414 2.19102,0.21585 1.05327,-1.91005 z m 24.72167,-12.88403 c -0.0364,-12.98165 -0.74495,-24.17653 -1.58334,-25.01492 -0.37797,-0.37797 -20.45076,1.5189 -23.6576,2.23563 -1.5358,0.34326 -1.59099,0.63453 -1.59099,8.39669 v 8.0411 l -7.42462,4.33109 c -4.08354,2.3821 -7.42462,4.63815 -7.42462,5.01343 0,0.86773 1.82989,1.22967 8.68319,1.71747 6.26914,0.44623 9.34856,1.7316 9.95709,4.15619 0.26795,1.06761 1.3915,2.09355 3.08805,2.81979 3.78041,1.61826 4.63758,1.74157 12.74313,1.83331 l 7.24784,0.082 z m 7.77686,12.23703 c 0.75613,-0.75613 1.56996,-2.58577 1.80851,-4.06586 0.90141,-5.59277 1.08553,-5.95618 3.53669,-6.98033 1.33485,-0.55774 4.50747,-1.01407 7.05026,-1.01407 h 4.62327 l -0.18114,-54.624 -0.18114,-54.62399 h -11.3137 -11.31371 l 0.0899,54.80077 c 0.088,53.63512 0.48,64.52619 2.40626,66.8472 1.13978,1.37335 1.82918,1.30594 3.47484,-0.33972 z m 234.32977,-22.49008 c 0.58926,-30.12169 0.5066,-67.86372 -0.16031,-73.20535 -0.67174,-5.38031 -2.2738,-7.00062 -7.33687,-7.42049 -5.28698,-0.43844 -9.31337,1.60539 -10.47253,5.31595 -0.93298,2.98658 -1.80106,37.55936 -1.04435,41.59301 0.63658,3.39325 2.64887,5.25583 5.6783,5.25583 4.74376,0 5.7238,3.30848 9.37322,31.64275 1.46515,11.37543 2.85106,20.68272 3.0798,20.68288 0.22874,1.4e-4 0.62598,-10.73891 0.88274,-23.86458 z M 302.6417,471.37302 c 0,-0.34141 -0.50045,-1.8185 -1.11211,-3.2824 -1.22368,-2.92868 -0.84574,-5.99634 0.73876,-5.99634 1.7851,0 4.61599,-1.60852 4.61599,-2.62281 0,-0.78545 -1.39714,-0.9394 -6.99188,-0.77038 -5.84408,0.17653 -7.21563,0.009 -8.3549,-1.01783 -1.95727,-1.76487 -5.23582,-2.24603 -6.90039,-1.01271 -1.18032,0.87453 -1.24659,1.19787 -0.44375,2.16523 0.51908,0.62545 1.99409,1.13718 3.27781,1.13718 1.41039,0 3.12503,0.65701 4.33284,1.66022 1.09934,0.91312 2.93713,1.88966 4.08398,2.17009 l 2.08518,0.50987 -2.26196,1.77025 c -1.24408,0.97363 -2.26196,2.08093 -2.26196,2.46067 0,0.37974 1.35234,1.30428 3.00521,2.05454 3.17074,1.43926 6.18718,1.81681 6.18718,0.77442 z m -12.4322,-4.7582 c 1.60239,-0.61489 1.3792,-2.84352 -0.41029,-4.09694 -2.2806,-1.59739 -11.86225,-4.94625 -12.45353,-4.3526 -0.28236,0.28349 0.67987,1.47345 2.13827,2.64436 1.45841,1.1709 2.65165,2.71864 2.65165,3.43941 0,0.72077 0.55685,1.63483 1.23744,2.03123 1.3849,0.80663 5.12879,0.98984 6.83646,0.33454 z m 229.29117,-8.10106 c 2.72393,-1.02917 5.72171,-3.992 7.45965,-7.3727 3.21547,-6.25478 0.67702,-17.7214 -4.70356,-21.2469 -2.35787,-1.54493 -11.71959,-2.16279 -16.67333,-1.1004 -6.599,1.41523 -7.36452,3.1662 -5.26977,12.05355 1.36244,5.78047 3.71808,8.94478 7.39611,9.93517 2.86385,0.77116 4.23554,2.34549 4.23554,4.86125 0,1.5703 2.46639,3.62212 4.35394,3.62212 0.66596,0 2.10661,-0.33844 3.20142,-0.75209 z m 48.48175,-2.07633 c 0.97392,-1.94958 1.23657,-4.30507 1.23744,-11.09751 10e-4,-7.92538 -0.12755,-8.77164 -1.58989,-10.46555 -1.86975,-2.16582 -7.01909,-2.97932 -13.63019,-2.15332 -5.90878,0.73825 -7.40624,2.46021 -7.40624,8.51656 0,5.59593 1.34133,8.63622 4.07873,9.24489 4.04709,0.89989 4.54185,1.20424 6.61695,4.07043 2.57384,3.55508 4.51569,4.75392 7.33554,4.52876 1.63771,-0.13078 2.40318,-0.73361 3.35766,-2.64426 z m -266.71982,0.33539 c 1.98096,-1.02439 2.81832,-3.335 1.50316,-4.14781 -0.32067,-0.19819 -2.42337,0.0675 -4.67266,0.59032 -6.79347,1.5792 -8.17295,4.63631 -2.09206,4.63631 1.74644,0 4.11415,-0.48547 5.26156,-1.07882 z m -139.62274,-2.27994 c -2.22655,-7.19595 -7.49058,-36.08113 -7.49058,-41.10294 0,-2.40272 -0.97668,-2.94649 -1.74211,-0.96991 -0.26356,0.68059 -1.27193,5.53311 -2.24083,10.78338 -0.9689,5.25026 -2.6965,13.75972 -3.8391,18.90991 -2.41577,10.88888 -2.42779,11.04434 -0.96629,12.50583 0.87541,0.87542 2.76082,1.11117 8.88649,1.11117 7.07952,0 7.74105,-0.11073 7.39242,-1.23744 z m 603.05009,-0.15927 c 2.2889,-0.87025 2.36534,-3.39695 0.37498,-12.39187 -0.7745,-3.50018 -2.20144,-10.97784 -3.17088,-16.61701 -2.10067,-12.2196 -3.00726,-15.73946 -3.91009,-15.18148 -0.36996,0.22864 -0.67599,1.74926 -0.6801,3.37917 -0.0104,4.12189 -2.328,18.69766 -4.90194,30.82915 -1.18893,5.6034 -2.16163,10.29683 -2.16163,10.42983 0,0.57419 12.80535,0.17736 14.44966,-0.44779 z m -410.21246,-4.81636 c 2.12535,-2.34848 3.31854,-6.40587 3.31854,-11.28456 0,-6.15782 -1.11743,-7.95822 -4.93934,-7.95822 -4.53852,0 -5.23109,1.29388 -4.71542,8.80953 0.60263,8.78297 1.49141,11.69657 3.568,11.69657 0.89371,0 2.13941,-0.56849 2.76822,-1.26332 z m 132.54146,0.17677 c 4.76891,-3.34027 3.39635,-19.24121 -3.5074,-40.63275 -2.96719,-9.19394 -5.77968,-15.55635 -6.87667,-15.55635 -1.96726,0 -7.11598,25.35933 -7.11598,35.04881 0,3.86093 1.60045,7.95701 3.32683,8.51448 5.28435,1.70638 5.95743,2.50655 6.89902,8.20164 0.26875,1.62552 1.13099,3.16979 2.27017,4.06587 2.20033,1.73078 2.96625,1.78562 5.00403,0.3583 z m 55.75464,-0.68749 c 0.76039,-1.16051 1.352,-4.27845 1.71064,-9.01561 0.30153,-3.98286 0.75789,-7.75532 1.01412,-8.38323 0.82737,-2.02749 3.83294,-2.74743 11.4699,-2.74743 h 7.47974 l -0.43613,-2.18062 c -1.02099,-5.10498 -5.54919,-18.34183 -7.02565,-20.53739 -1.21464,-1.80624 -2.4545,-2.60763 -5.11413,-3.30557 -4.21832,-1.10697 -17.60874,-0.7967 -19.94266,0.46208 -2.50663,1.35193 -2.73286,4.03873 -0.90198,10.71226 3.74724,13.65861 4.24449,15.98562 5.22367,24.44554 1.33043,11.49479 3.55053,15.08574 6.52248,10.54997 z m -281.6184,-0.30231 c 1.48923,-0.34563 2.90081,-0.82154 3.13686,-1.0576 1.02049,-1.02049 -1.11741,-4.37165 -3.73456,-5.8539 l -2.81707,-1.59549 3.67058,-0.0116 c 3.94603,-0.0125 5.33232,-0.98648 3.40745,-2.39398 -1.08944,-0.79661 -1.09572,-0.95671 -0.0708,-1.8073 0.88873,-0.73758 1.12451,-2.39429 1.12451,-7.90145 0,-6.65245 0.0801,-7.02067 1.76777,-8.12647 0.97227,-0.63705 1.76776,-1.61478 1.76776,-2.17273 0,-1.96374 -2.03726,-4.92161 -4.01283,-5.82618 -4.48081,-2.05165 -34.31936,-1.55184 -38.42154,0.64358 -1.80153,0.96415 -1.77383,1.67187 0.415,10.60234 2.02695,8.26996 2.94242,10.0842 6.03855,11.96707 l 2.12609,1.29296 -1.85555,0.46572 c -1.51482,0.38019 -1.81491,0.81825 -1.63419,2.38559 0.15481,1.34258 0.62831,1.91988 1.57471,1.91988 2.08382,0 2.16464,1.67502 0.11834,2.45302 -1.29199,0.49122 -1.82524,1.21159 -1.82524,2.46576 0,1.78693 0.44233,2.03196 4.94975,2.74192 3.56286,0.56118 21.64639,0.41881 24.27442,-0.19111 z m 273.40254,-6.05538 c 0.0193,-12.26413 -4.96473,-31.46625 -8.16719,-31.46625 -1.30341,0 -2.82052,3.41355 -3.47902,7.82792 -0.41812,2.80287 -0.2501,3.50743 1.26607,5.3093 2.2559,2.68098 3.60871,5.97924 5.88947,14.35902 2.58183,9.48595 3.01571,10.5342 3.82833,9.24936 0.36062,-0.57019 0.65867,-2.94589 0.66234,-5.27935 z m 65.341,-9.21479 c 1.34603,-4.1531 4.928,-8.81643 6.77203,-8.81643 0.70642,0 2.03126,-0.60477 2.9441,-1.34394 1.42593,-1.15466 1.64625,-1.92864 1.56426,-5.49532 -0.11387,-4.95325 -2.68931,-13.00203 -6.58467,-20.57844 -4.41164,-8.58056 -5.86083,-9.80676 -6.66518,-5.63954 -0.64776,3.35596 -1.4089,44.04144 -0.85111,45.495 0.64237,1.67402 1.43358,0.6582 2.82057,-3.62133 z m -372.42288,0.55274 c -0.22522,-1.84732 -0.80185,-5.10885 -1.28139,-7.24785 l -0.87187,-3.88909 -0.90757,4.24264 c -1.22131,5.7093 -1.18269,7.431 0.20098,8.95994 2.21698,2.44974 3.3138,1.65753 2.85985,-2.06564 z m 236.57454,1.94816 c 2.12679,-1.67293 3.06392,-7.32537 2.26913,-13.68663 -0.75159,-6.01549 -1.28146,-6.42866 -8.60606,-6.71077 -5.32456,-0.20508 -6.51169,-0.0402 -7.91944,1.0997 -3.37302,2.7313 -3.61495,15.81752 -0.35272,19.07975 1.4255,1.4255 2.32597,1.62854 7.22218,1.62854 4.51815,0 5.93842,-0.27121 7.38691,-1.41059 z m 226.61616,0.14828 c 1.30362,-0.74462 1.58639,-1.51095 1.56554,-4.24264 -0.0423,-5.54694 -1.76923,-16.93753 -2.74633,-18.11487 -1.6305,-1.96462 -5.74929,-2.51347 -22.49902,-2.99807 l -16.4485,-0.47589 v 13.59748 13.59749 l 19.26866,-0.22737 c 14.04093,-0.16568 19.7003,-0.47392 20.85965,-1.13613 z M 386.0803,421.79612 v -6.35703 l -19.62221,0.44486 c -10.79222,0.24467 -19.72613,0.53108 -19.85314,0.63648 -0.12701,0.10538 -0.006,2.76587 0.26808,5.91217 l 0.49901,5.72055 h 19.35413 19.35413 z m 128.69343,-2.06203 c 0,-1.61844 -7.92795,-27.28621 -9.19487,-29.76957 -2.09314,-4.1029 -4.28764,-4.94558 -12.8671,-4.94093 -7.89651,0.004 -12.43124,0.89062 -13.06976,2.55459 -0.22293,0.58095 0.78054,4.77726 2.22993,9.32514 5.47207,17.17012 8.2025,21.74339 13.60677,22.79026 3.91654,0.75868 19.29503,0.79097 19.29503,0.0405 z M 389.72295,406.93995 c 3.15197,-9.06359 3.98071,-13.89289 2.618,-15.2556 -1.5611,-1.5611 -10.63553,-2.47937 -24.99898,-2.52971 -13.20835,-0.0463 -17.77813,0.50034 -20.4372,2.4447 -1.20647,0.88219 -1.26371,1.73468 -0.78297,11.66119 l 0.51865,10.70942 8.93655,0.22874 c 4.9151,0.12581 14.02771,0.2146 20.25025,0.19731 l 11.31371,-0.0314 z m -159.32996,2.28082 c 2.65797,-1.21873 4.74369,-3.92681 3.97825,-5.16532 -0.33748,-0.54606 -1.69732,-0.68476 -4.01828,-0.40988 -6.2576,0.74112 -10.24629,4.38074 -7.22333,6.59117 1.36219,0.99607 3.53941,0.69153 7.26336,-1.01597 z m 234.92976,1.22984 c 1.99124,-1.06568 1.7644,-5.15002 -1.11787,-20.12767 -1.34713,-7.00036 -3.13905,-16.38131 -3.98204,-20.84655 -1.09161,-5.78216 -1.69359,-7.71541 -2.0917,-6.71752 -0.30745,0.77061 -2.65986,11.42436 -5.22757,23.67498 -2.56771,12.25063 -4.8332,22.83071 -5.03443,23.5113 -0.33366,1.12857 0.35789,1.23744 7.86001,1.23744 4.52423,0 8.84135,-0.32939 9.5936,-0.73198 z m -197.37668,-2.71499 c 0.39021,-0.72911 0.91056,-2.58321 1.15634,-4.12022 0.40164,-2.51174 0.22711,-2.97946 -1.7246,-4.62172 -1.19432,-1.00495 -3.78742,-2.17374 -5.76247,-2.59731 -6.59616,-1.41463 -14.83507,-0.68491 -14.83507,1.31394 0,0.82192 5.87363,2.5792 10.96015,3.27908 5.36577,0.73829 7.05559,1.50921 6.02639,2.74933 -0.86675,1.04436 -0.59557,1.92232 1.26182,4.08511 1.35826,1.58159 2.03474,1.56113 2.91744,-0.0882 z m 246.82766,-30.49415 v -31.81981 l -4.77297,0.001 c -6.41087,10e-4 -9.4888,1.52678 -10.38259,5.14521 -0.89055,3.60531 0.17613,6.5813 2.27762,6.35444 1.77676,-0.1918 2.5132,1.71176 2.14667,5.54875 -0.1795,1.879 -0.58037,2.44577 -1.85797,2.62689 -2.84867,0.40384 -3.7728,5.48904 -2.16086,11.89063 0.54774,2.17528 1.32514,3.4383 2.42465,3.93927 2.41096,1.09851 5.53471,7.59963 8.42147,17.52672 3.17027,10.90204 3.07199,10.6066 3.52824,10.6066 0.20666,0 0.37574,-14.31891 0.37574,-31.8198 z m -253.31925,30.52872 c 0.97554,-0.61939 -1.67633,-3.50845 -4.60185,-5.01345 -4.66537,-2.40004 -16.92753,-1.39376 -20.50406,1.68264 -1.63214,1.4039 -1.76455,1.79073 -0.94923,2.77313 0.80529,0.97032 2.76512,1.14003 13.05849,1.13083 6.66106,-0.006 12.50955,-0.26387 12.99665,-0.57315 z m -22.09884,-6.86252 c 7.95703,-2.07182 7.98141,-4.97688 0.0408,-4.8645 -5.64146,0.0798 -11.22694,2.56945 -11.59421,5.1679 -0.23371,1.65344 -0.14551,1.68458 3.53553,1.2485 2.07637,-0.24598 5.6844,-0.94434 8.01785,-1.5519 z m -4.90689,-5.72809 c 1.20234,-0.7878 3.60552,-1.20269 7.57652,-1.30802 6.17641,-0.16384 11.82606,-1.88936 11.82606,-3.61193 0,-1.37391 -2.82788,-1.91427 -8.22093,-1.57086 -3.42094,0.21783 -4.82635,0.61286 -5.32025,1.49543 -0.41494,0.74144 -1.5427,1.1994 -2.95362,1.1994 -2.80112,0 -5.42551,1.72958 -5.42551,3.57563 0,1.67105 0.2679,1.6945 2.51773,0.22035 z m 163.16202,-6.72223 c -0.70259,-1.22053 -2.22165,-2.80239 -3.37571,-3.51526 -3.90792,-2.41394 -10.98319,-2.57935 -10.98319,-0.25676 0,0.9421 7.8905,3.85684 10.50432,3.88027 0.63962,0.006 1.95844,0.45183 2.93071,0.99133 0.97227,0.5395 1.86531,1.01211 1.98453,1.05023 0.11921,0.0381 -0.35809,-0.92928 -1.06066,-2.14981 z m -155.04828,-1.6828 c 2.9789,-1.54045 3.93773,-6.75233 1.33446,-7.25368 -1.51818,-0.29237 -7.72329,5.30999 -7.72329,6.97308 0,1.70812 3.34427,1.855 6.38883,0.2806 z m 109.93024,0.0766 c 2.72236,-0.54768 9.56362,-1.20328 15.20279,-1.4569 11.32604,-0.50937 12.72793,-0.74226 12.72793,-2.11436 0,-1.57182 -1.77289,-1.79518 -14.37675,-1.8113 l -12.13976,-0.0155 3.05907,-1.38823 c 3.50136,-1.58894 3.87989,-3.73363 0.72371,-4.10037 -4.63931,-0.53909 -12.62161,5.65046 -12.62161,9.7869 0,2.46754 0.36045,2.52093 7.42462,1.09979 z m -95.47225,-0.39652 c 0.60193,-0.97394 -1.45406,-4.67958 -3.32244,-5.98825 -4.38755,-3.07315 -9.26551,1.49414 -5.74752,5.38148 0.85256,0.94207 2.18495,1.29311 4.90801,1.29311 2.05578,0 3.92865,-0.30885 4.16195,-0.68634 z M 271.322,383.4369 c -0.16913,-0.87958 -0.31394,-0.32645 -0.32179,1.22919 -0.008,1.55563 0.13054,2.27529 0.30753,1.59923 0.17698,-0.67606 0.1834,-1.94885 0.0143,-2.82842 z m 123.24358,-2.22957 c 0,-3.55922 -28.06704,-7.40947 -32.16564,-4.4125 -1.27542,0.93261 -1.26528,0.99861 0.28063,1.82595 0.88214,0.47211 5.63291,1.14868 10.55726,1.50348 4.92437,0.35481 10.38527,0.93016 12.13536,1.27856 5.14723,1.02467 9.19239,0.93865 9.19239,-0.19549 z M 271.99731,378.4789 c -0.19616,-0.48613 -0.35666,-0.0884 -0.35666,0.88389 0,0.97227 0.1605,1.37002 0.35666,0.88388 0.19615,-0.48614 0.19615,-1.28163 0,-1.76777 z m -19.63457,-1.50136 c 0.99117,-1.19429 0.34254,-3.07833 -1.37654,-3.99836 -4.33458,-2.3198 -11.36997,1.78335 -7.21114,4.20565 1.83987,1.07162 7.64252,0.93156 8.58768,-0.20729 z m 117.07104,-2.57849 c 8.36099,-0.81288 10.35276,-1.97713 7.45413,-4.35717 -1.59541,-1.30998 -2.45717,-1.41756 -8.83883,-1.10354 -5.28339,0.25999 -8.41183,0.83518 -12.37437,2.27511 -8.61503,3.13059 -8.68084,3.91008 -0.3283,3.88845 3.8752,-0.01 10.21451,-0.32631 14.08737,-0.70285 z m 267.66349,-5.32277 c 3.69138,-0.59865 7.4302,-1.55929 8.30851,-2.13479 2.09409,-1.37209 2.07596,-3.92598 -0.11068,-15.59172 -1.63887,-8.74336 -2.92642,-18.03784 -4.76387,-34.38916 -0.46981,-4.18077 -1.0641,-7.60139 -1.32065,-7.60139 -0.25656,0 -0.84278,3.10243 -1.30272,6.89429 -0.45995,3.79186 -2.57924,17.30499 -4.70954,30.02917 -2.13031,12.7242 -3.87329,23.30428 -3.87329,23.5113 0,0.52564 0.24487,0.50303 7.77224,-0.7177 z m -252.09956,-1.69883 c 0.85818,-1.38857 -2.98408,-2.3669 -10.61891,-2.70382 -4.88126,-0.21541 -8.39503,-0.0638 -9.21977,0.3977 -1.24326,0.69577 -1.21476,0.77504 0.42517,1.18243 5.91955,1.47056 18.7405,2.21265 19.41351,1.12369 z M 273.86377,359.5638 c 0.28776,-4.38185 0.20306,-5.53142 -0.31261,-4.24264 -1.01218,2.52969 -1.68311,11.85569 -0.78849,10.96015 0.38851,-0.38891 0.884,-3.41179 1.1011,-6.71751 z m 93.78965,2.297 c 3.32841,-1.69151 3.46257,-2.8289 0.48065,-4.07483 -3.19785,-1.33614 -7.50961,-1.39554 -7.50961,-0.10344 0,0.52093 -0.7955,1.30961 -1.76777,1.75261 -1.87562,0.85459 -2.35858,2.60084 -0.88388,3.19589 2.01309,0.8123 7.41185,0.38275 9.68061,-0.77023 z m 7.28995,-10.11236 c 1.45841,-0.40502 2.65165,-1.04751 2.65165,-1.42777 0,-1.76645 -8.21017,-2.6948 -12.72421,-1.43876 -2.11536,0.5886 -2.72899,2.64887 -0.92796,3.11562 2.40259,0.62264 8.34617,0.48806 11.00052,-0.24909 z m 54.97743,-1.90736 c -7e-5,-0.29168 -0.80332,-5.89828 -1.78501,-12.4591 -2.25849,-15.0939 -4.07398,-30.53289 -6.3302,-53.83216 -2.03012,-20.9645 -2.39553,-23.68808 -3.17806,-23.68808 -1.03038,0 -1.42625,2.98273 -4.64547,35.00179 -1.75956,17.50089 -3.8369,36.22573 -4.61632,41.61076 -0.77941,5.38502 -1.23932,10.35114 -1.02201,11.03582 0.21731,0.68467 1.10405,1.58702 1.97053,2.00522 1.77079,0.85465 19.60673,1.15098 19.60654,0.32575 z m 82.02451,-8.86539 c 1.18625,-0.59694 1.83588,-1.58209 1.97484,-2.99477 0.21313,-2.16678 -6.63776,-43.41982 -7.32483,-44.10689 -0.91452,-0.91452 -1.60539,2.12632 -2.68979,11.83898 -0.6364,5.70005 -1.85489,15.57643 -2.70775,21.94752 l -1.55066,11.58381 1.63123,1.32089 c 1.9277,1.56095 7.92234,1.79163 10.66696,0.41046 z m -259.11855,-5.78436 c 1.21457,-2.90688 1.2818,-4.5574 0.29172,-7.1615 l -0.73286,-1.92756 -2.44912,2.37378 c -2.82459,2.73771 -2.97153,3.70577 -1.04266,6.86934 1.78732,2.93143 2.65796,2.89733 3.93292,-0.15406 z m 22.23778,-16.19959 c 0,-5.02186 -0.27899,-7.56126 -0.88389,-8.04523 -0.48613,-0.38895 -2.63397,-0.8787 -4.77297,-1.08832 -2.139,-0.20963 -4.60503,-0.60387 -5.48007,-0.87608 -2.39001,-0.74351 -2.08153,1.76388 0.52414,4.26027 1.16332,1.11453 3.74902,4.51514 5.746,7.55691 1.99698,3.04177 3.90895,5.53049 4.24883,5.53049 0.33987,0 0.61796,-3.30212 0.61796,-7.33804 z m 59.04341,-11.04959 c 15.16903,-0.81379 22.27387,-1.83801 22.27387,-3.21098 0,-1.6058 -4.56724,-2.07095 -20.15255,-2.05242 -15.90068,0.0189 -22.51534,0.58484 -23.87738,2.04291 -0.63266,0.67727 -1.37764,0.72871 -2.89466,0.19988 -2.72832,-0.9511 -47.63886,-0.27667 -48.64606,0.73053 -2.39505,2.39505 44.2022,3.85093 73.29678,2.29008 z m -63.5556,-6.74363 c 0.94811,-1.447 1.02129,-2.13904 0.37597,-3.55538 -1.01663,-2.23126 -2.5584,-2.82459 -4.74771,-1.82707 -1.32218,0.60243 -1.72267,1.33092 -1.72267,3.13352 0,1.29173 0.38183,2.73045 0.84852,3.19714 1.43511,1.4351 3.98644,0.97394 5.24589,-0.94821 z m 32.19578,1.07187 c 4.60174,-1.27816 4.44621,-5.12031 -0.25856,-6.38717 -4.23417,-1.14014 -26.84629,-0.61595 -28.37881,0.65787 -1.57009,1.30507 -1.47635,1.967 0.56809,4.01143 2.37546,2.37547 7.00186,2.39026 10.47475,0.0335 2.3883,-1.62073 2.52509,-1.63773 2.86041,-0.35544 0.1937,0.74068 1.09813,1.64557 2.00985,2.01087 2.23674,0.89618 9.54218,0.9128 12.72427,0.029 z m 31.6227,-1.34805 c 4.37944,-0.84592 5.41718,-2.79586 3.0462,-5.72389 -1.22902,-1.51779 -1.76384,-1.59042 -11.84924,-1.60926 -11.8689,-0.0222 -13.7337,0.47852 -13.7337,3.68751 0,3.52856 1.57041,4.04278 12.72792,4.1676 3.69463,0.0413 8.1086,-0.19355 9.80882,-0.52196 z m 11.40438,-0.75551 c 0.77782,-0.77782 1.41422,-2.05061 1.41422,-2.82843 0,-1.37903 -2.28015,-4.24264 -3.3782,-4.24264 -0.30238,0 -1.25697,0.49534 -2.12132,1.10075 -1.87855,1.31579 -2.07157,4.24578 -0.40129,6.09142 1.50916,1.6676 2.73086,1.63463 4.48659,-0.1211 z m -39.59797,-26.73188 v -20.36793 l -8.66206,0.25117 c -13.92528,0.40377 -23.04918,1.36002 -24.96717,2.61673 -1.55425,1.01838 -1.72611,1.61717 -1.72611,6.01393 0,3.35233 0.32568,5.20863 1.03899,5.92194 0.78268,0.78268 1.08795,3.28091 1.23744,10.12678 l 0.19844,9.08778 h 2.12132 c 1.71747,0 2.35669,-0.47116 3.35766,-2.47487 0.67998,-1.36118 1.23683,-3.49024 1.23744,-4.73124 0.002,-4.17901 1.24802,-3.07062 1.74289,1.55042 0.26977,2.51909 0.74035,4.73457 1.04573,4.92331 0.74585,0.46096 1.44143,-5.72182 1.44897,-12.87942 0.004,-3.84559 -0.26434,-5.83363 -0.78754,-5.83363 -0.5547,0 -0.53331,-0.31375 0.0711,-1.04195 1.05589,-1.27227 5.01426,-2.09066 7.02512,-1.45244 2.12434,0.67424 1.8585,2.03667 -0.29208,1.49691 -2.65142,-0.66546 -2.30802,1.62351 0.39673,2.64443 l 2.16451,0.81701 -0.21996,7.63257 c -0.25041,8.68926 -0.0952,8.96677 5.02442,8.98452 5.69569,0.0197 2.66251,0.58675 -7.3657,1.37691 -18.96116,1.494 -26.87777,2.82288 -25.39421,4.26264 1.07971,1.04784 4.16279,1.22623 23.09612,1.3364 l 18.208,0.10595 z m 35.70889,18.27792 c 1.32871,-0.54154 1.30734,-0.60264 -0.35356,-1.01074 -2.96074,-0.7275 -16.97104,-1.84779 -23.11601,-1.84842 -5.67632,-5.8e-4 -8.30309,0.95483 -4.94348,1.79804 5.27659,1.32434 25.87934,2.09377 28.41305,1.06112 z m -5.83223,-4.09719 c 0.60746,-0.68059 1.43427,-2.51023 1.83736,-4.06586 1.06644,-4.11567 2.2271,-15.68667 2.2271,-22.20267 v -5.64139 l -3.35876,-0.53422 c -1.84731,-0.29381 -5.10517,-0.55196 -7.23967,-0.57366 -3.82203,-0.0388 -3.89319,-0.002 -4.68899,2.43543 -0.98478,3.0161 -1.91683,2.96204 -2.39025,-0.13863 -0.31456,-2.06018 -0.66556,-2.37075 -3.18198,-2.8155 -1.55563,-0.27495 -4.81716,-0.51823 -7.24784,-0.54065 l -4.41942,-0.0408 0.0104,14.67247 c 0.0119,16.79018 0.31447,18.08352 4.309,18.42052 3.61762,0.30521 4.31305,-0.96769 4.93825,-9.03884 0.55447,-7.15817 1.15041,-9.07725 3.68187,-11.85656 2.32975,-2.55785 8.148,-1.80767 7.10291,0.91582 -0.19423,0.50615 0.32789,1.28475 1.16027,1.73022 1.42025,0.7601 1.48329,1.15523 1.02405,6.4198 -0.56591,6.4875 0.49213,11.4592 2.77965,13.06144 1.86893,1.30905 2.11613,1.29424 3.45603,-0.20697 z m -72.6812,-32.58913 c 3.89589,-0.93677 5.13973,-1.56652 5.95183,-3.01339 1.57819,-2.81173 0.64774,-4.17223 -2.85338,-4.17223 -3.55512,0 -8.52848,2.25232 -10.49575,4.75329 -3.09859,3.93924 -1.31238,4.52657 7.3973,2.43233 z m 91.5949,-0.40526 c 0,-1.27078 -3.90876,-4.58529 -6.87158,-5.82686 -2.97643,-1.24728 -6.50478,-1.22204 -6.99292,0.05 -0.56276,1.46652 1.57152,4.34187 4.17614,5.6262 2.93859,1.449 9.68836,1.55395 9.68836,0.15063 z m -68.2358,-2.63385 c 11.00257,-0.87003 38.99461,-0.37303 46.20604,0.82039 6.77135,1.1206 8.801,-0.21735 6.12514,-4.03768 -1.89787,-2.70959 -8.84988,-3.38368 -35.00707,-3.3944 -25.93739,-0.0106 -27.55354,0.1987 -30.736,3.98085 -2.67973,3.18468 -2.40243,4.43145 0.86074,3.86993 1.45841,-0.25096 7.10643,-0.80854 12.55115,-1.23909 z m -15.9099,-6.53755 c 4.08354,-0.57324 10.9248,-1.40502 15.20279,-1.84837 9.2508,-0.95873 12.1276,-1.75644 13.13716,-3.64281 0.5747,-1.07385 0.47461,-1.82825 -0.42465,-3.2007 -1.12422,-1.71577 -1.38608,-1.77498 -5.88389,-1.33021 -8.27001,0.81778 -18.02924,2.62863 -21.84361,4.05314 -4.93549,1.8432 -13.17582,8.67477 -8.93352,7.40625 0.7266,-0.21726 4.66217,-0.86404 8.74572,-1.4373 z m 76.95678,1.0474 c -0.61879,-1.67108 -7.69548,-6.59036 -10.8423,-7.5369 -4.4657,-1.34325 -19.84275,-2.57511 -28.63782,-2.29418 l -6.71752,0.21456 -0.22371,1.9442 c -0.35124,3.05253 0.97037,3.35053 22.85113,5.15259 7.38926,0.60856 15.34421,1.52629 17.67767,2.03938 5.43478,1.19506 6.17969,1.25578 5.89255,0.48035 z m -42.01286,-12.00686 c 21.28201,-0.45595 23.49497,-0.83668 18.84366,-3.24197 -5.63282,-2.91284 -24.00325,-3.99643 -36.46347,-2.15082 -13.08445,1.93808 -17.32411,3.35283 -17.32411,5.78094 0,1.01923 0.80833,1.08599 7.24784,0.59856 3.98632,-0.30174 16.44955,-0.74576 27.69608,-0.98671 z m -16.35712,-7.12414 c 2.22181,-0.46125 4.55575,-1.35471 5.18651,-1.98548 1.05772,-1.05772 1.01654,-1.25248 -0.52986,-2.5062 -3.44929,-2.79647 -15.31218,-0.32269 -17.08224,3.56217 -0.5857,1.28545 -0.56391,1.83844 0.0883,2.24154 0.92272,0.57028 5.73586,0.0584 12.33727,-1.31203 z m 43.28988,0.66782 c 0.24301,-0.39321 -0.46687,-1.62365 -1.57753,-2.73431 -2.17646,-2.17646 -6.3422,-3.03597 -20.34762,-4.19827 l -6.36396,-0.52815 10.10008,-0.49622 c 5.55504,-0.27293 10.75216,-0.84521 11.54914,-1.27175 1.38279,-0.74004 1.39274,-0.83777 0.21746,-2.13644 -2.26714,-2.50516 -6.32007,-3.09813 -21.15958,-3.09578 -14.71058,0.002 -20.84461,0.93445 -22.96532,3.48973 -1.27984,1.54212 0.99996,2.2082 9.88385,2.88773 4.08354,0.31235 6.90043,0.68672 6.25975,0.83194 -1.53756,0.3485 -2.09018,2.64647 -0.9962,4.14258 0.70961,0.97045 2.82828,1.30755 11.41568,1.81637 5.79941,0.34363 12.13537,0.89846 14.07991,1.23297 5.03726,0.86653 9.38944,0.89272 9.90434,0.0596 z m -10.75351,-17.28986 c 2.28249,-1.00103 0.93852,-2.81043 -3.40314,-4.58169 -5.72494,-2.33558 -13.78488,-2.38312 -19.5991,-0.1156 -5.84569,2.2798 -6.1861,3.79272 -1.13961,5.06503 2.84686,0.71775 22.34397,0.42075 24.14185,-0.36774 z m -20.8975,-7.4531 c 11.38803,-1.47923 13.06593,-6.38427 2.17095,-6.34638 -4.83021,0.0168 -9.20298,1.57878 -11.42947,4.08269 -2.62795,2.9554 -0.35156,3.51197 9.25852,2.26369 z m 12.11234,-8.21807 c 3.13606,-0.62721 3.08546,-3.25961 -0.0884,-4.59879 -3.04244,-1.28374 -10.82118,-1.11577 -14.15208,0.30559 -2.93575,1.25274 -4.10544,3.11506 -2.56797,4.08857 1.13108,0.7162 13.49783,0.86675 16.80843,0.20463 z" - id="path402" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 645.71306,559.60371 c -0.419,-1.32196 -1.28113,-4.47186 -1.91585,-6.99976 -2.14298,-8.53497 -4.43995,-11.31371 -9.35217,-11.31371 -4.11702,0 -4.74215,-1.21114 -5.00179,-9.69056 -0.20892,-6.82294 -0.0777,-7.88051 1.16912,-9.42023 1.31996,-1.63009 1.90295,-1.75026 9.69038,-1.99747 l 8.28593,-0.26303 -0.51722,20.05481 c -0.28448,11.03014 -0.76008,20.50002 -1.0569,21.04416 -0.38269,0.70155 -0.76128,0.29017 -1.3015,-1.41421 z" - id="path403" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 619.21281,562.52759 c -3.37647,-0.65368 -3.98423,-1.27309 -4.79654,-4.88844 -0.78764,-3.5055 0.17009,-8.50706 1.8665,-9.74751 1.66608,-1.21827 8.21711,-1.914 13.15878,-1.3975 7.06371,0.73831 9.2471,2.43749 11.1821,8.70228 0.76121,2.46452 1.20345,4.9515 0.98276,5.52662 -0.2207,0.57512 -1.56285,1.36831 -2.98256,1.76265 -2.90836,0.80782 -15.31654,0.8346 -19.41104,0.0419 z" - id="path404" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 750.24029,480.83261 v -21.56676 h 8.48528 8.48528 v 21.56676 21.56676 h -8.48528 -8.48528 z" - id="path405" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 752.69647,446.71471 c 2.55448,-12.1509 3.99749,-20.50145 4.91821,-28.46105 l 0.85883,-7.42462 1.25091,7.07107 c 0.688,3.88908 2.3357,12.57508 3.66157,19.30221 1.32586,6.72713 2.41065,13.00034 2.41065,13.94048 0,2.46772 -1.93819,3.17331 -8.71683,3.17331 h -5.98138 z" - id="path406" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 675.0927,634.80511 c -0.66025,-1.48189 -0.86639,-15.34752 -0.86639,-58.27763 0,-30.98321 0.1591,-56.48716 0.35356,-56.67546 0.19445,-0.1883 2.74004,0.0867 5.65685,0.61123 11.85329,2.13137 18.58424,0.45186 14.17629,-3.53729 -0.91588,-0.82886 -2.99692,-1.3731 -6.18718,-1.6181 -7.69335,-0.59081 -9.88602,-2.409 -9.28176,-7.69653 0.41304,-3.61427 3.5052,-4.50248 15.679,-4.50376 l 10.49727,-0.001 -0.29313,12.9047 c -0.16121,7.09759 -0.6214,13.68841 -1.02263,14.64627 l -0.72951,1.74157 -0.97102,-1.74157 c -0.67886,-1.21758 -1.04857,-5.25189 -1.22879,-13.40883 -0.14177,-6.417 -0.49766,-11.91944 -0.79085,-12.22765 -0.5101,-0.53623 -1.59752,5.79727 -2.94923,17.1774 -0.80622,6.7875 0.0983,13.54256 3.21792,24.03051 1.32848,4.46634 2.34037,8.19566 2.24864,8.28739 -0.0917,0.0917 -3.49084,-0.034 -7.55359,-0.2794 -7.06905,-0.42698 -7.48242,-0.54145 -9.60943,-2.66112 -1.64926,-1.64358 -2.79058,-4.05546 -4.42432,-9.34969 -2.29026,-7.42175 -3.88099,-9.95601 -4.77952,-7.61448 -0.47921,1.2488 0.18932,4.9604 2.20135,12.22165 1.67989,6.0626 2.49298,18.8978 2.49331,39.3583 3.8e-4,23.84815 -1.22561,42.4416 -3.25203,49.3207 -0.53189,1.80563 -1.59483,1.51485 -2.58481,-0.70711 z" - id="path407" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 445.41021,527.86559 c -3.66902,-0.35243 -7.59211,-1.24077 -9.8995,-2.24162 l -3.82202,-1.65785 4.94975,-0.4425 c 2.72236,-0.24337 12.40331,-0.48202 21.51323,-0.53033 l 16.5635,-0.0878 -1.56268,1.66339 c -0.85947,0.91487 -2.74458,2.00941 -4.18912,2.43232 -3.71948,1.08892 -16.37913,1.55354 -23.55316,0.86442 z" - id="path408" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 478.71129,523.2724 c 0,-0.73293 4.57024,-9.55933 4.94975,-9.55933 0.3795,0 4.94974,8.8264 4.94974,9.55933 0,0.18709 -2.22738,0.34017 -4.94974,0.34017 -2.72236,0 -4.94975,-0.15308 -4.94975,-0.34017 z" - id="path409" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 143.54268,481.89327 v -21.2132 h 9.19238 9.19239 v 21.2132 21.2132 h -9.19239 -9.19238 z" - id="path410" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 150.44306,455.16488 c -5.32448,-0.27789 -5.87324,-1.22562 -4.46778,-7.71617 0.57165,-2.63993 2.38395,-11.63782 4.02735,-19.99532 l 2.98798,-15.19546 1.26007,8.8315 c 0.69304,4.85732 2.42666,14.33241 3.85249,21.05576 1.42583,6.72334 2.47184,12.32758 2.32447,12.45386 -0.53819,0.46113 -6.02875,0.77229 -9.98458,0.56583 z" - id="path411" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 239.89892,496.74251 c -2.62063,-8.03517 -3.92762,-14.68713 -5.48788,-27.93072 -0.64145,-5.44472 -1.59076,-11.57003 -2.10958,-13.6118 -0.93036,-3.66144 -0.92139,-3.71231 0.6546,-3.71231 2.04384,0 7.19863,5.73793 8.22655,9.15717 0.75165,2.5003 1.82017,38.70993 1.2217,41.40096 -0.19718,0.88664 -1.13182,-1.09177 -2.50539,-5.3033 z" - id="path412" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" - d="m 388.68891,475.22641 c -3.68817,-0.99154 -4.46231,-1.54096 -5.7164,-4.05699 -1.22459,-2.45686 -3.81135,-3.37273 -10.95873,-3.88007 -3.54177,-0.2514 -6.43958,-0.69808 -6.43958,-0.99262 0,-0.29455 3.17237,-2.37057 7.0497,-4.6134 l 7.04969,-4.07786 0.19815,-8.18542 0.19815,-8.18542 11.57879,-1.26699 c 6.36833,-0.69684 11.76682,-1.07895 11.99663,-0.84914 0.81939,0.81939 1.44011,10.8051 1.48316,23.85966 l 0.0437,13.25826 -6.54073,-0.0477 c -3.59741,-0.0263 -8.07155,-0.45927 -9.94254,-0.96228 z" - id="path413" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.33417;stroke-dasharray:none;stroke-opacity:1" - d="m 434.99131,444.12045 c 0.47973,-0.5301 2.27805,-1.06471 4.34297,-1.2911 2.82092,-0.30926 4.26577,-0.33543 20.76023,-0.37593 l 16.4292,-0.0403 -0.0645,0.86918 c -0.0355,0.47805 -0.0826,0.89902 -0.10467,0.93548 -0.0221,0.0365 -9.37112,0.0663 -20.77567,0.0663 -20.17216,0 -20.73153,-0.004 -20.58751,-0.16358 z" - id="path414" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.956221;stroke-dasharray:none;stroke-opacity:1" - d="m 483.87179,449.54396 c -1.77707,-0.90106 -2.88878,-2.4072 -3.26625,-4.42514 -0.20534,-1.09771 -0.62939,-3.05846 -0.69975,-3.23552 -0.0512,-0.12892 -0.0171,-0.13726 0.27956,-0.0684 0.50681,0.11763 3.11881,0.0957 5.95056,-0.0499 1.38549,-0.0713 2.59141,-0.13024 2.67982,-0.13107 0.14717,-0.001 0.15587,0.0601 0.10293,0.72769 -0.22181,2.79737 -0.80033,4.81166 -1.71385,5.96735 -0.5554,0.70263 -1.91676,1.52356 -2.52654,1.52356 -0.10889,0 -0.47181,-0.13884 -0.80648,-0.30853 z" - id="path415" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.71213;stroke-dasharray:none;stroke-opacity:1" - d="m 450.0365,410.25063 c -0.62799,-0.0434 -1.17574,-0.11281 -1.21722,-0.15428 -0.0608,-0.0608 0.21786,-1.48279 0.42372,-2.16203 0.0442,-0.14587 0.51482,-0.15468 8.26104,-0.15468 h 8.21416 v 0.20493 c 0,0.28928 -0.25408,1.1102 -0.42376,1.36917 -0.0785,0.11978 -0.26695,0.2697 -0.4188,0.33315 -0.34783,0.14533 -1.92391,0.36046 -3.53266,0.48219 -1.62688,0.1231 -9.8468,0.18239 -11.30648,0.0815 z" - id="path416" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.070345;stroke-dasharray:none;stroke-opacity:1" - d="m 124.95419,108.01436 c 0.32572,-1.50794 0.76978,-3.05852 1.07041,-3.73764 l 0.10408,-0.23512 0.0739,0.1024 c 0.22389,0.31043 0.58475,1.03897 0.95773,1.93354 0.22996,0.55156 0.71858,1.81217 0.71858,1.85392 0,0.0167 -0.48836,0.0279 -1.21284,0.0279 -1.21324,0 -1.44364,0.0156 -1.6425,0.11131 l -0.091,0.0438 z" - id="path417" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.956221;stroke-dasharray:none;stroke-opacity:1" - d="m 456.19763,375.4958 c 0.0245,-0.10938 0.53177,-2.41632 1.12728,-5.12653 0.59551,-2.7102 1.11243,-4.92765 1.14871,-4.92765 0.0363,0 0.14928,0.44747 0.25111,0.99437 0.10184,0.5469 0.52378,2.80137 0.93766,5.00993 0.41388,2.20856 0.75251,4.06803 0.75251,4.13216 0,0.0933 -0.42557,0.11659 -2.1309,0.11659 h -2.1309 z" - id="path418" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.956221;stroke-dasharray:none;stroke-opacity:1" - d="m 476.14803,470.50495 c 0,-0.26853 0.52455,-3.3857 0.60744,-3.6098 0.0649,-0.17549 0.10288,-0.14601 0.42702,0.33169 0.52346,0.77145 1.5288,2.87867 1.5288,3.20443 0,0.0374 -0.36792,0.0539 -0.81759,0.0366 -0.52269,-0.0201 -0.98497,0.0136 -1.28163,0.0935 -0.44958,0.12103 -0.46404,0.11928 -0.46404,-0.0564 z" - id="path419" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.956221;stroke-dasharray:none;stroke-opacity:1" - d="m 533.08248,445.83082 c -0.15464,-0.48613 -0.68156,-2.29588 -1.17092,-4.02167 -2.58401,-9.11279 -3.51212,-11.90972 -4.81781,-14.51883 -0.73431,-1.46735 -1.38398,-2.51145 -2.38895,-3.83935 -0.9658,-1.27615 -0.98275,-1.30546 -1.09375,-1.89077 -0.11852,-0.62494 0.0172,-1.71874 0.45181,-3.64158 0.76297,-3.37552 1.22169,-4.66589 1.95474,-5.49868 0.42559,-0.48349 0.5156,-0.45593 1.10015,0.33684 2.7039,3.6671 5.77821,16.43622 6.48032,26.91599 0.16208,2.41937 0.0836,5.58754 -0.16677,6.73258 -0.0651,0.2978 -0.0781,0.27633 -0.34882,-0.57453 z" - id="path420" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.0708661;stroke-dasharray:none;stroke-opacity:1" - d="m 589.23432,546.99514 c -0.0343,-0.0257 -0.19281,-0.11727 -0.35214,-0.20361 l -0.2897,-0.15699 0.12831,-0.12452 c 0.13714,-0.13309 0.24615,-0.33658 0.24727,-0.46158 4.2e-4,-0.0461 0.0117,-0.0648 0.0285,-0.0469 0.0254,0.0271 0.31946,1.02098 0.30605,1.03439 -0.003,0.003 -0.0339,-0.0152 -0.0683,-0.0408 z" - id="path421" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.10022;stroke-dasharray:none;stroke-opacity:1" - d="m 362.25964,580.0298 c 0,-0.0225 -0.33883,-2.3642 -0.75295,-5.20387 -0.88731,-6.08431 -1.16025,-7.99435 -1.43248,-10.02439 -0.11083,-0.82643 -0.21065,-1.55628 -0.22182,-1.62189 -0.0161,-0.0948 0.0611,-0.24013 0.37593,-0.7071 0.5403,-0.80152 0.59043,-0.85401 0.87268,-0.91375 0.55592,-0.11766 0.91892,-0.40108 2.64306,-2.06354 l 0.97618,-0.94126 0.0301,2.83651 c 0.0442,4.17018 0.19509,8.42045 0.42623,12.0068 0.27732,4.30272 0.40039,6.16639 0.42247,6.3971 l 0.0264,0.27622 h -1.68289 c -1.00008,0 -1.6829,-0.0166 -1.6829,-0.0408 z" - id="path422" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.0501099;stroke-dasharray:none;stroke-opacity:1" - d="m 380.47869,477.36681 c -0.17015,-0.0879 -0.40382,-0.21812 -0.51928,-0.28947 -0.43551,-0.26911 -0.55131,-0.33362 -0.91703,-0.51087 -2.26898,-1.09966 -6.31994,-1.87016 -12.8826,-2.45029 -2.06954,-0.18295 -4.07306,-0.32167 -7.35833,-0.50951 -3.15476,-0.18037 -3.77534,-0.23582 -5.07128,-0.45316 -0.66903,-0.1122 -1.47227,-0.29419 -1.67765,-0.3801 l -0.0677,-0.0283 0.15241,-0.13766 0.15241,-0.13766 5.81918,0.19777 c 5.9998,0.2039 6.48436,0.22117 7.77476,0.2771 8.46105,0.36674 12.10064,1.06015 13.72868,2.61558 0.35557,0.33971 0.61321,0.69735 0.87344,1.21243 0.1599,0.31649 0.32151,0.69994 0.30941,0.73408 -0.004,0.0109 -0.14625,-0.052 -0.3164,-0.13991 z" - id="path424" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.20044;stroke-dasharray:none;stroke-opacity:1" - d="m 506.51591,527.1702 c -0.3598,-1.23604 -0.81183,-2.22131 -1.69157,-3.68706 -0.30741,-0.51218 -0.74274,-1.40853 -0.9674,-1.99189 -0.95788,-2.48725 -3.8265,-7.24461 -5.28476,-8.76433 l -0.43739,-0.45583 0.59944,-0.0642 c 1.23179,-0.13191 2.53775,0.0987 3.66514,0.64727 0.70408,0.34259 1.11317,0.71439 2.7267,2.47822 0.95616,1.04522 1.34075,1.33294 2.24959,1.6829 0.61555,0.23703 0.97505,0.44246 2.17286,1.24167 0.85915,0.57323 1.45251,1.31852 1.90698,2.39523 0.52069,1.23358 0.63215,1.77857 0.51103,2.49871 -0.35136,2.08901 -1.80332,3.48183 -4.13128,3.96304 -0.93532,0.19334 -1.27522,0.20784 -1.31934,0.0563 z" - id="path875" - transform="scale(0.26458333)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.20044;stroke-dasharray:none;stroke-opacity:1" - d="m 506.51591,527.1702 c -0.3598,-1.23604 -0.81183,-2.22131 -1.69157,-3.68706 -0.30741,-0.51218 -0.74274,-1.40853 -0.9674,-1.99189 -0.95788,-2.48725 -3.8265,-7.24461 -5.28476,-8.76433 l -0.43739,-0.45583 0.59944,-0.0642 c 1.23179,-0.13191 2.53775,0.0987 3.66514,0.64727 0.70408,0.34259 1.11317,0.71439 2.7267,2.47822 0.95616,1.04522 1.34075,1.33294 2.24959,1.6829 0.61555,0.23703 0.97505,0.44246 2.17286,1.24167 0.85915,0.57323 1.45251,1.31852 1.90698,2.39523 0.52069,1.23358 0.63215,1.77857 0.51103,2.49871 -0.35136,2.08901 -1.80332,3.48183 -4.13128,3.96304 -0.93532,0.19334 -1.27522,0.20784 -1.31934,0.0563 z" - id="path876" - transform="scale(0.26458333)" /></g><g - inkscape:groupmode="layer" - id="layer6-6" - inkscape:label="Stars" - style="display:inline" - transform="translate(4.2941758,-2.1192025)"><g - transform="matrix(6.4422558e-4,0,0,-6.5294437e-4,32.818706,56.908701)" - fill="#000000" - stroke="none" - id="g10-9-6-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1380-2)" - inkscape:label="kep-4988"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-2-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-6-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-7-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-5-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-6-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-9-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-8-14" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-7-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-2-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(6.4422558e-4,0,0,-6.5294437e-4,12.907233,69.951702)" - fill="#000000" - stroke="none" - id="g10-9-6-7-1" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1380-2-1)" - inkscape:label="kep-5116"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-2-8-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-6-6-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-7-8-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-5-8-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-6-4-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-9-3-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-8-14-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-7-9-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-2-2-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.6763163e-4,0,0,-6.3255603e-4,27.955433,43.108321)" - fill="#000000" - stroke="none" - id="g10-9-6-0-0" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1380-3-7)" - inkscape:label="kep-4742"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-2-2-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-6-0-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-7-1-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-5-9-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-6-6-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-9-2-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-8-1-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-7-2-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-2-0-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(8.9639248e-4,0,0,-8.7088266e-4,33.508839,42.971073)" - fill="#000000" - stroke="none" - id="g10-9-9-04" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1379-9)" - inkscape:label="kep-3619"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-6-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-0-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-2-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-7-72" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-61-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-3-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-2-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-1-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-5-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(6.5590029e-4,0,0,-5.9469996e-4,22.95667,69.206581)" - fill="#000000" - stroke="none" - id="g10-9-9-0-0" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1379-1-2)" - inkscape:label="kep-4818"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-6-5-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-0-6-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-2-7-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-7-7-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-61-4-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-3-0-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-2-6-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-1-4-91" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-5-7-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(4.1541922e-4,0,0,-4.1152215e-4,25.124893,52.427604)" - fill="#000000" - stroke="none" - id="g10-9-9-0-6-7" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1379-1-5-7)" - inkscape:transform-center-x="-2.6393443" - inkscape:transform-center-y="0.68625508" - inkscape:label="kep-3857"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-6-5-0-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-0-6-6-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-2-7-6-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-7-7-4-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-61-4-6-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-3-0-2-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-2-6-8-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-1-4-9-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-5-7-6-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(4.5817283e-4,0,0,-4.4383979e-4,21.3532,55.190403)" - fill="#000000" - stroke="none" - id="g10-9-9-0-6-1-6" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1379-1-5-0-6)" - inkscape:transform-center-x="-2.9109772" - inkscape:transform-center-y="0.74014832" - inkscape:label="kep-4444"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-6-5-0-3-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-0-6-6-7-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-2-7-6-7-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-7-7-4-2-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-61-4-6-6-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-3-0-2-4-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-2-6-8-5-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-1-4-9-2-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-5-7-6-0-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(6.8592096e-4,0,0,-6.2476592e-4,61.564666,29.168087)" - fill="#000000" - stroke="none" - id="g10-9-4-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1378-2)" - inkscape:label="kep-5142"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-9-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-1-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-0-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-75-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-8-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-7-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-0-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-4-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-8-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(0.00104055,0,0,-9.799295e-4,37.219206,27.469522)" - fill="#000000" - stroke="none" - id="g10-9-96-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1377-3)" - inkscape:label="kep-3015"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-1-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-04-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-22-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-2-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-0-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-5-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-5-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-2-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-9-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(7.1332839e-4,0,0,-6.4117629e-4,41.538644,32.094558)" - fill="#000000" - stroke="none" - id="g10-9-3-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1376-9)" - inkscape:label="kep-5055"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-8-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-040-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-9-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-1-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-9-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-6-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-25-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-44-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-99-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(0.00136846,0,0,-0.00123004,29.153449,37.887245)" - fill="#000000" - stroke="none" - id="g10-9-5-31" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-7)" - inkscape:label="kep-4815"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(4.5817611e-4,0,0,-4.2488434e-4,95.300349,33.270839)" - fill="#000000" - stroke="none" - id="g10-9-5-3-7" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-4)" - inkscape:label="kep-5109"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-18" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-75" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-88" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-31" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-89" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,122.71037,22.059913)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0)" - inkscape:label="kep-4817"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(7.1563206e-4,0,0,-6.6990496e-4,163.95521,55.708186)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-1" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-1)" - inkscape:label="kep-3314"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,172.69799,69.759122)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-19" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-6)" - inkscape:label="kep-127"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(3.9466997e-4,0,0,-4.3323491e-4,147.68231,55.624727)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-3" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-5)" - inkscape:label="kep-5100"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-79" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-06" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-08" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,132.28323,44.678266)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-4" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-4)" - inkscape:label="kep-4960"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-52" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(2.2129076e-4,0,0,-2.5321686e-4,32.327821,63.362073)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-46" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-7)" - inkscape:label="kep-4603"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-39" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-25" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,48.145726,63.397537)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-7" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-0)" - inkscape:label="kep-4265"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-65" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-71" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-33" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-38" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-10" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-76" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,48.939476,36.211599)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-13" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-8)" - inkscape:label="kep-2902"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-34" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-15" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-83" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-59" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(3.7407141e-4,0,0,-3.6756505e-4,76.781528,26.89701)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-6" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-76)" - inkscape:label="kep-1287"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-15" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-08" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-12" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-69" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.8673454e-4,0,0,-6.0603295e-4,85.088815,19.871046)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-32" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-2)" - inkscape:label="kep-5067"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-03" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-00" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-49" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-27" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-252" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,86.774892,45.736599)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-0" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-3)" - inkscape:label="kep-4639"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-89" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-31" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-83" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-42" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-24" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-17" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,6.4738505,66.506391)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-133" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-16)" - inkscape:label="kep-4381"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-37" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-98" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-67" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-04" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-84" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-81" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-85" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-21" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,148.75757,35.113378)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-08" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-60)" - inkscape:label="kep-4205"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-14" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-96" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-77" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-37" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-22" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(3.9696001e-4,0,0,-3.0119066e-4,113.416,34.657369)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-37" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-09)" - inkscape:label="kep-2625"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-11" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-30" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-32" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-17" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-65" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-42" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-217" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,82.276975,8.2319113)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-9" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-165)" - inkscape:label="kep-3503"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-73" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-64" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-97" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-21" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-63" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,64.549892,20.865766)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-03" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-56)" - inkscape:label="kep-4008"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-46" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-60" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-25" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-89" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-50" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-08" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,49.733225,22.188682)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-5" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-10)" - inkscape:label="kep-5080"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-738" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-23" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-07" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-77" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-69" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-19" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-08" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,39.943642,35.682433)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-69" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-80)" - inkscape:label="kep-4355"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-21" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-77" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-76" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-71" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-58" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-84" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-56" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,26.185311,36.2116)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-8" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-84)" - inkscape:label="kep-753"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-75" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-24" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-50" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-57" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-32" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-72" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-13" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-49" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,14.808225,40.180348)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-2" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-57)" - inkscape:label="kep-4951"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-216" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-20" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-22" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-97" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-43" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-56" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-14" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-03" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-12" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,44.772288,53.211078)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-76" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-9)" - inkscape:label="kep-5073"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-01" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-02" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-51" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-971" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-31" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-20" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-68" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-74" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(2.8153918e-4,0,0,-3.1443857e-4,27.805557,70.399315)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-89" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-45)" - inkscape:label="kep-3998"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-60" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-64" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-94" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-54" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-66" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-399" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-52" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-13" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,39.943642,74.311599)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-85" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-91)" - inkscape:label="kep-3850"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-73" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-38" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-95" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-53" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-86" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-03" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-36" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-18" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-70" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,3.1665619,78.941808)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-54" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-103)" - inkscape:label="kep-2590"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-24" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-99" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-94" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-98" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-16" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-33" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-46" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,169.46796,48.677738)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-58" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-36)" - inkscape:label="kep-1710"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-50" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-998" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-02" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-49" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-01" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-200" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-63" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-083" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(2.8896359e-4,0,0,-3.0287814e-4,163.33456,39.678253)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-58-8" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-36-6)" - inkscape:label="kep-3973"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-50-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-998-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-02-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-49-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-01-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-200-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-63-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-9-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-083-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(4.1667524e-4,0,0,-4.1085713e-4,129.47643,40.10405)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-58-8-7" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-36-6-4)" - inkscape:label="kep-3104"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-50-4-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-998-6-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-02-6-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-49-7-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-01-2-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-200-7-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-63-4-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-9-1-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-083-0-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(3.9574017e-4,0,0,-3.6721459e-4,140.00778,46.988767)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-31" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-31)" - inkscape:label="kep-5018"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-80" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-17" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-91" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-03" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-59" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-48" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-46" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-92" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-90" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(4.0649057e-4,0,0,-3.9460054e-4,95.094419,7.9737163)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-8" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-61)" - inkscape:label="kep-2535"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-77" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-03" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(3.8525768e-4,0,0,-3.7287134e-4,67.451555,20.147135)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-9-2" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-9-6)" - inkscape:label="kep-740"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-3-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-2-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-4-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-3-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-7-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-1-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-2-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-2-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-0-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(3.3349184e-4,0,0,-3.6100506e-4,132.16428,25.059427)" - fill="#000000" - stroke="none" - id="g10-9-5-3-8-2" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-9-2)" - inkscape:label="kep-5040"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-74-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-19-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-09-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-8-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-85-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-84-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-37-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-1-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-3-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,18.610732,46.356197)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-1" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-9)" - inkscape:label="kep-4974"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,34.735436,53.395408)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-3" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-6)" - inkscape:label="kep-4876"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-40" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-04" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,34.279408,47.186403)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-8" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-5)" - inkscape:label="kep-4858"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-27" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,39.24895,58.142783)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-5" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-3)" - inkscape:label="kep-4427"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-14" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,110.20017,57.877953)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-48" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-04)" - inkscape:label="kep-4004"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-70" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-86" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-47" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-93" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-92" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-30" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(3.0093531e-4,0,0,-3.3008288e-4,121.24525,53.771506)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-9" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-91)" - inkscape:label="kep-3866"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-25" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-74" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-94" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-59" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-35" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-70" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-19" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(4.3076765e-4,0,0,-3.499633e-4,107.18369,46.416409)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-9-9" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-91-3)" - inkscape:label="kep-2644"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-25-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-74-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-9-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-94-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-59-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-35-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-70-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-8-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-19-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(3.0331458e-4,0,0,-2.6336702e-4,147.98062,43.017833)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-9-1" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-91-5)" - inkscape:label="kep-2589"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-25-43" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-74-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-9-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-94-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-59-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-35-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-70-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-8-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-19-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,139.03975,38.034201)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-9-8" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-91-9)" - inkscape:label="kep-2433"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-25-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-74-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-9-95" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-94-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-59-39" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-35-49" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-70-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-8-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-19-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,151.03679,35.047667)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-9-7" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-91-0)" - inkscape:label="kep-1880"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-25-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-74-90" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-9-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-94-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-59-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-35-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-70-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-8-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-19-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,104.85532,44.662555)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-49" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-8)" - inkscape:label="kep-1495"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-20" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-196" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-21" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-20" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-31" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-90" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(3.5313937e-4,0,0,-3.4653273e-4,176.00833,72.069741)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-92" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-61)" - inkscape:label="kep-4832"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-81" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-247" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-86" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-37" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-72" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-37" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-25" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-37" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,85.924985,10.300628)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-0" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-7)" - inkscape:label="kep-4049"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-48" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-58" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-26" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-06" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-64" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,119.79535,18.345915)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-10" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-96)" - inkscape:label="kep-4816"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-13" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-77" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-26" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-45" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-202" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-90" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-99" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-51" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,97.500169,51.263369)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-46" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-78)" - inkscape:label="kep-4540"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-76" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-097" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-59" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-33" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-83" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,24.574183,58.096011)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-4" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-4)" - inkscape:label="kep-4412"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-96" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-10" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-05" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,24.691113,46.309425)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-80" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-0)" - inkscape:label="kep-4193"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-09" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-19" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-62" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-44" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,29.90621,48.297241)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-35" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-50)" - inkscape:label="kep-3633"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-7" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-14" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-94" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-26" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,22.703296,47.94645)" - fill="#000000" - stroke="none" - id="g10-9-5-3-9-1-6-3-81-54-2" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-7-6-75-0-72-96-2)" - inkscape:label="kep-3257"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-7-9-98-1-24-3-88" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-5-6-1-4-78-6-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-9-48-33-8-63-4-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-7-0-3-96-77-31-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-8-8-7-7-23-9-38" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-5-10-9-7-72-1-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-3-22-86-3-5-09-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-3-9-7-7-3-4-38" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-8-7-04-1-768-56-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(8.5309509e-4,0,0,-8.5444109e-4,131.3979,39.532802)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-58-8-1" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-36-6-5)" - inkscape:label="kep-3094"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-50-4-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-998-6-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-02-6-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-49-7-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-01-2-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-200-7-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-63-4-1" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-9-1-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-083-0-5" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g - transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,141.27906,27.480348)" - fill="#000000" - stroke="none" - id="g10-9-5-3-4-6-58-8-6" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1375-4-0-0-36-6-1)" - inkscape:label="kep-2862"><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5-9-0-5-5-4-50-4-8" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9-3-2-7-1-3-998-6-2" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6-3-94-0-0-3-02-6-0" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2-8-3-8-3-3-49-7-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1-0-5-1-7-8-01-2-4" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7-5-1-9-8-6-200-7-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8-6-7-9-8-0-63-4-3" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5-6-43-7-6-4-9-1-6" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7-4-1-8-0-8-083-0-9" - style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g></g><g - inkscape:groupmode="layer" - id="layer11" - inkscape:label="BackgroundCity" - style="display:none" - transform="translate(-6.7520832,-1.5246326)"><g - transform="matrix(0.06562196,0,0,-0.11510962,50.821684,288.35387)" - fill="#000000" - stroke="none" - id="g2" - style="display:inline"><path - d="m 1566,1958 c -4,-42 -14,-100 -23,-130 -9,-30 -19,-110 -22,-183 l -6,-130 -19,38 c -20,37 -20,37 -83,37 -58,0 -64,-2 -75,-25 -21,-47 -29,-25 -28,73 0,58 -5,121 -15,157 -8,33 -18,74 -21,90 -6,25 -9,19 -20,-44 -7,-40 -18,-85 -24,-100 -6,-15 -10,-32 -9,-37 1,-5 1,-24 0,-41 -1,-32 -3,-33 -41,-33 -34,0 -41,-4 -46,-25 -10,-41 -21,-29 -40,45 l -18,69 -28,-82 c -15,-45 -27,-94 -27,-109 -1,-23 -5,-28 -26,-28 h -26 l 1,103 c 1,62 -5,123 -14,157 -8,30 -21,98 -29,150 l -13,95 -13,-80 c -7,-44 -20,-111 -28,-150 -8,-38 -14,-113 -13,-166 l 1,-96 -83,-9 c -82,-9 -82,-9 -92,-41 -8,-29 -13,-33 -42,-33 -28,0 -35,-5 -40,-25 -3,-14 -12,-25 -19,-25 -7,0 -15,-7 -19,-15 -4,-11 -21,-15 -66,-15 -53,0 -60,-2 -60,-20 0,-16 -7,-20 -32,-21 -24,0 -39,-8 -57,-31 -23,-28 -24,-38 -22,-126 2,-70 -1,-97 -11,-103 -7,-5 -40,-9 -73,-10 -33,0 -71,-5 -85,-10 -15,-5 12,-5 65,-1 50,4 137,6 195,5 58,-1 278,-2 490,-2 212,0 486,-1 610,-2 257,-3 312,-3 690,-1 151,2 358,1 460,-1 165,-3 174,-2 87,6 l -98,10 2,91 c 1,77 -2,98 -22,139 -23,46 -24,47 -71,47 -47,0 -48,1 -71,47 l -24,46 -73,-2 -73,-2 5,26 c 3,14 2,28 -3,30 -4,3 -15,42 -25,86 l -17,82 -19,-78 c -10,-42 -21,-82 -25,-88 -3,-6 -5,-35 -4,-64 1,-31 -2,-53 -8,-53 -5,0 -25,25 -43,55 -32,54 -33,55 -80,55 -44,0 -48,2 -46,23 1,12 -9,37 -22,55 -24,32 -25,32 -108,32 h -85 l 5,45 c 3,25 2,48 -2,50 -12,7 -40,136 -40,180 0,49 -15,37 -18,-14 -2,-23 -12,-75 -22,-118 -11,-42 -20,-100 -20,-130 0,-48 -2,-53 -22,-53 -18,0 -27,11 -41,45 -14,32 -25,45 -39,45 -18,0 -20,6 -17,68 2,37 -2,80 -9,97 -6,17 -20,80 -30,140 l -19,110 z m 48,-185 c 6,-20 4,-21 -38,-21 h -46 l 16,36 c 8,20 18,63 21,97 l 6,60 17,-75 c 9,-41 20,-85 24,-97 z m -666,-35 10,-38 h -45 c -35,0 -44,3 -40,14 3,8 11,43 17,78 24,144 22,141 35,58 7,-41 17,-92 23,-112 z m 332,51 c 6,-22 14,-47 17,-55 4,-10 -3,-14 -27,-14 -25,0 -31,3 -26,16 3,9 9,33 12,55 4,21 8,39 10,39 2,0 8,-18 14,-41 z m 549,-101 c 9,-25 8,-26 -27,-30 l -38,-3 12,40 c 7,22 16,54 20,70 l 7,30 8,-40 c 4,-22 12,-52 18,-67 z m -209,-93 v -145 h -45 -45 v 145 145 h 45 45 z m -321,43 v -73 l -16,33 c -9,17 -23,32 -30,32 -7,0 -13,9 -13,21 0,11 5,17 10,14 6,-3 10,1 10,10 0,9 -4,13 -10,10 -5,-3 -10,1 -10,9 0,11 9,16 30,16 h 30 z m -339,-73 v -125 h -30 c -20,0 -30,-5 -30,-15 0,-8 -7,-15 -15,-15 -13,0 -15,22 -15,140 v 140 h 45 45 z m 144,18 c 7,-21 4,-23 -32,-23 h -40 l 21,56 21,57 11,-34 c 7,-19 15,-44 19,-56 z m 732,54 c 2,-7 3,-62 2,-123 l -3,-109 -14,63 c -12,55 -16,62 -37,62 -22,0 -24,4 -24,54 0,34 5,56 13,59 24,10 58,7 63,-6 z m -556,-57 20,-40 h -49 c -45,0 -51,3 -70,34 -12,18 -21,36 -21,40 0,3 22,6 50,6 48,0 50,-1 70,-40 z m 389,4 c 26,-33 27,-54 3,-54 -11,0 -24,-10 -30,-22 -9,-19 -10,-12 -9,40 0,34 4,62 8,62 4,0 17,-12 28,-26 z m -491,-26 c 28,-55 29,-88 2,-88 -11,0 -20,7 -20,15 0,8 -9,15 -20,15 -13,0 -20,7 -20,19 0,24 20,81 28,81 4,0 17,-19 30,-42 z m 307,-8 16,-30 h -41 c -36,0 -40,-2 -40,-25 0,-16 -6,-25 -15,-25 -9,0 -15,9 -15,23 -1,12 -7,33 -15,47 -22,38 -19,40 40,40 50,0 56,-2 70,-30 z m 826,-67 c 8,-21 6,-23 -25,-23 h -34 l 14,38 c 7,20 14,46 15,57 0,13 5,7 11,-15 5,-19 14,-45 19,-57 z m -943,52 c 7,-14 12,-36 11,-48 0,-18 -3,-17 -15,11 -8,17 -18,32 -24,32 -5,0 -7,7 -4,15 9,22 19,18 32,-10 z m 642,11 c 0,-8 3,-21 6,-30 5,-14 -6,-16 -80,-16 h -86 v 30 30 h 80 c 62,0 80,-3 80,-14 z m -905,-21 c 0,-22 -4,-25 -37,-25 -34,0 -38,3 -38,25 0,22 4,25 38,25 33,0 37,-3 37,-25 z m 245,-25 c 8,-16 8,-24 -4,-35 -16,-17 -56,-20 -56,-5 0,6 -9,10 -19,10 -17,0 -31,18 -31,41 0,5 22,9 50,9 39,0 51,-4 60,-20 z m 446,4 c -3,-9 -9,-41 -12,-72 -10,-83 -15,-86 -54,-32 -27,38 -42,50 -66,52 -30,3 -31,3 -17,36 13,32 13,32 84,32 61,0 70,-2 65,-16 z m -276,-24 c 0,-23 -5,-30 -19,-30 -11,0 -23,5 -26,10 -3,6 -15,10 -26,10 -12,0 -19,7 -19,20 0,17 7,20 45,20 43,0 45,-1 45,-30 z m -660,-25 v -45 h -45 c -25,0 -45,5 -45,10 0,6 -18,10 -40,10 -45,0 -44,-1 -30,34 8,23 15,25 77,29 37,2 71,4 76,5 4,1 7,-18 7,-43 z m 284,8 c -4,-16 -11,-38 -15,-51 -5,-13 -9,-35 -9,-50 0,-24 -4,-20 -30,26 -30,51 -32,52 -75,52 -41,0 -45,2 -45,25 0,25 1,25 90,25 h 90 z m 664,-55 c -8,-4 7,-8 35,-8 26,0 47,-3 47,-7 0,-3 -11,-21 -26,-40 -21,-28 -31,-33 -65,-33 -21,0 -39,3 -39,6 0,3 9,19 21,35 11,16 17,34 14,39 -4,6 -3,30 1,53 l 7,42 9,-39 c 6,-29 5,-42 -4,-48 z m 211,60 c -1,-18 -2,-19 -6,-5 -8,30 -28,13 -34,-29 -3,-21 -11,-50 -18,-63 l -13,-24 -20,32 c -15,23 -27,31 -49,31 -27,0 -29,3 -29,40 v 40 h 85 c 82,0 85,-1 84,-22 z m 44,-27 c 34,5 69,6 77,3 21,-6 73,-94 56,-94 -7,0 -21,-16 -32,-35 -15,-29 -24,-35 -51,-35 -31,0 -33,2 -33,33 0,21 11,48 31,75 17,24 29,45 27,48 -3,2 -18,-14 -33,-36 -27,-38 -30,-40 -81,-40 -57,0 -62,4 -39,34 8,10 13,30 11,45 -2,14 -1,19 1,10 3,-13 14,-14 66,-8 z m -773,-11 c 19,-46 8,-60 -49,-60 -44,0 -50,3 -59,28 -5,15 -13,35 -17,45 -6,15 0,17 53,17 57,0 60,-1 72,-30 z m 197,-20 c 32,-66 30,-70 -27,-70 -27,0 -50,3 -50,7 0,3 12,26 26,50 14,25 24,46 22,49 -3,2 -15,-14 -27,-36 -22,-39 -24,-40 -76,-40 h -54 l 26,45 25,46 57,-3 c 55,-3 56,-3 78,-48 z m 833,-10 v -50 h -35 -35 v 50 50 h 35 35 z m -1158,-78 c -29,-31 -33,-32 -109,-32 -73,0 -103,9 -103,32 0,4 40,8 89,8 h 88 l 7,48 c 3,27 9,52 13,56 4,3 15,-13 25,-37 l 19,-44 z m 428,113 c 0,-21 -27,-55 -44,-56 -12,0 -15,-3 -8,-6 14,-6 17,-33 2,-33 -7,0 -50,82 -50,96 0,2 23,4 50,4 28,0 50,-2 50,-5 z m 116,-22 c 38,-52 38,-53 -3,-53 -32,0 -41,5 -60,35 -13,19 -23,37 -23,40 0,3 15,5 33,5 25,0 38,-7 53,-27 z m -628,-28 22,-45 h -68 -68 l -22,45 -22,45 h 68 68 z m 556,5 c 14,-22 22,-40 16,-40 -5,0 -10,-9 -10,-20 0,-11 5,-20 10,-20 6,0 10,-7 10,-15 0,-10 -11,-15 -35,-15 -36,0 -39,4 -35,49 1,18 -2,22 -14,18 -9,-4 -16,-4 -16,-1 0,6 42,84 46,84 1,0 13,-18 28,-40 z m -871,18 c 5,-14 -23,-68 -34,-68 -4,0 -11,9 -14,20 -5,15 -15,20 -40,20 -24,0 -38,6 -45,20 -10,19 -8,20 59,20 46,0 71,-4 74,-12 z m 173,-40 c 15,-29 15,-30 -1,-24 -9,3 -42,9 -73,12 -34,4 -62,13 -71,23 -12,14 -12,13 -6,-7 4,-16 1,-29 -9,-41 -13,-14 -14,-23 -6,-42 9,-20 10,-21 7,-3 -3,12 0,29 5,38 14,26 39,1 33,-33 -4,-19 -3,-21 3,-7 8,17 9,17 25,-7 13,-21 17,-49 17,-131 0,-117 0,-116 -76,-116 h -44 v 124 c 0,76 4,127 10,131 8,5 8,11 0,20 -8,10 -6,23 8,52 l 20,38 71,2 c 70,2 71,2 87,-29 z m 1529,24 c 6,-4 18,-22 27,-40 14,-25 14,-32 3,-32 -7,0 -20,-19 -27,-42 -11,-31 -21,-44 -36,-46 -31,-5 -29,34 4,99 14,28 23,54 20,57 -4,3 -16,-18 -28,-46 -14,-34 -28,-52 -39,-52 -23,0 -59,51 -59,84 0,25 2,26 63,26 34,0 67,-4 72,-8 z m -524,-54 c 7,-13 6,-18 -4,-18 -11,0 -13,-27 -9,-140 l 5,-140 h -35 -35 l -6,68 c -14,141 -9,199 19,244 25,40 27,41 41,22 8,-10 19,-27 24,-36 z m -1223,-9 c 18,-31 21,-44 13,-52 -9,-9 -14,-8 -21,3 -6,9 -5,17 3,22 8,5 6,8 -5,8 -10,0 -18,-7 -18,-15 0,-10 -10,-15 -29,-15 -24,0 -34,8 -52,40 -12,22 -25,38 -27,35 -2,-2 5,-20 17,-40 14,-25 21,-53 21,-91 0,-53 0,-54 -30,-54 -28,0 -30,3 -30,34 0,19 -5,38 -11,42 -12,7 -7,31 16,87 15,37 16,37 73,37 56,0 57,-1 80,-41 z m 682,9 c 0,-22 -10,-48 -19,-48 -4,0 -13,11 -19,25 -9,19 -19,25 -42,25 -16,0 -30,4 -30,10 0,5 24,8 55,7 44,-2 55,-5 55,-19 z m -515,2 c 38,0 45,-4 62,-32 l 18,-31 80,2 c 77,2 79,2 62,-17 -14,-15 -17,-38 -17,-120 v -102 h -31 c -29,0 -30,2 -29,38 1,20 1,66 1,102 -1,59 -4,66 -26,76 -13,7 -25,8 -27,4 -2,-4 -28,-5 -58,-3 -51,5 -58,8 -80,42 -34,49 -36,55 -16,48 10,-4 37,-7 61,-7 z m 863,-35 c 1,-42 0,-45 -23,-45 -14,0 -25,5 -25,10 0,6 -7,10 -15,10 -10,0 -15,11 -15,35 0,34 1,35 38,35 h 38 z m 322,10 c 0,-44 -20,-46 -21,-2 l -1,32 -8,-29 c -6,-20 -5,-37 6,-57 l 15,-29 h -39 c -32,0 -41,5 -51,26 -6,15 -14,24 -17,21 -3,-3 0,-14 7,-25 20,-28 14,-212 -7,-212 -13,0 -15,21 -13,136 l 2,136 44,-4 c 23,-2 43,0 43,4 0,5 -16,8 -35,8 -24,0 -35,5 -35,15 0,12 13,15 55,15 h 55 z m -1520,12 c 0,-7 -6,-21 -13,-31 -12,-16 -14,-16 -26,-2 -8,9 -20,16 -27,16 -8,0 -14,7 -14,15 0,11 11,15 40,15 26,0 40,-4 40,-13 z m 1760,8 c 0,-3 -12,-23 -26,-45 -30,-44 -49,-51 -57,-19 -5,17 -12,21 -36,17 -36,-5 -36,-5 -15,27 14,22 24,25 75,25 33,0 59,-2 59,-5 z M 1230,1153 v -113 h -65 -65 v 101 102 l 38,42 37,43 28,-31 c 26,-30 27,-35 27,-144 z m 129,145 20,-33 -64,-3 c -61,-3 -67,-1 -90,25 -13,15 -25,31 -25,36 0,4 31,7 69,7 67,0 70,-1 90,-32 z m 222,-9 21,-42 -32,7 c -18,3 -50,6 -71,6 -33,0 -41,4 -54,31 -9,17 -19,29 -21,26 -3,-3 1,-18 9,-34 8,-15 17,-74 21,-130 l 6,-103 h -35 -35 v 118 c 0,154 5,162 100,162 h 70 z m 763,24 c 4,-10 15,-29 26,-43 12,-15 18,-18 14,-7 -4,10 -1,17 6,17 6,0 10,-8 8,-17 -2,-10 -11,-18 -21,-17 -9,0 -37,1 -62,2 l -45,2 26,40 c 29,44 40,49 48,23 z m -504,-53 c 0,-55 -6,-63 -20,-25 -7,18 -17,25 -35,25 -20,0 -25,5 -25,25 0,23 4,25 40,25 h 40 z m 789,9 c 13,-22 21,-42 18,-45 -10,-10 -185,9 -181,20 24,69 20,66 82,66 58,0 59,0 81,-41 z m -2106,-5 29,-34 H 441 329 l 28,35 c 26,33 32,35 83,34 50,0 58,-4 83,-35 z m 1670,-1 c -6,-16 -5,-16 10,-4 15,12 17,10 17,-18 0,-21 5,-31 15,-31 12,0 15,-15 15,-79 v -78 l -37,-7 c -21,-3 -62,-6 -90,-6 h -53 v 96 c 0,52 -5,104 -10,115 -10,18 -7,19 50,19 58,0 60,-1 60,-26 0,-14 4,-23 10,-19 6,3 7,17 4,31 -4,14 -2,24 5,24 6,0 8,-8 4,-17 z m -1495,-47 3,-46 h -35 c -36,0 -36,0 -36,43 0,52 3,56 38,53 24,-3 27,-8 30,-50 z m 968,-7 c -3,-34 -6,-86 -6,-115 0,-54 0,-54 -31,-54 h -31 l 3,115 3,115 h 35 34 z m 100,-9 h 74 v -79 c 0,-44 -4,-82 -8,-85 -4,-3 -42,-2 -83,1 l -74,5 5,117 c 2,64 6,99 8,79 l 3,-38 z m -798,40 c 18,0 22,-6 22,-29 0,-28 -1,-29 -50,-28 -35,2 -54,-3 -60,-13 -7,-11 -10,-1 -10,34 v 49 l 38,-7 c 20,-3 47,-6 60,-6 z m 412,-89 v -98 l -46,-7 c -100,-13 -94,-20 -94,99 v 105 h 70 70 z m 164,93 46,-7 v -99 -99 l -57,3 -58,3 -3,63 c -2,43 0,62 7,57 7,-4 11,4 11,19 0,14 -4,26 -10,26 -5,0 -10,9 -10,20 0,22 6,23 74,14 z m 266,-14 c 10,-19 8,-20 -50,-20 -53,0 -60,2 -60,20 0,17 7,20 50,20 39,0 52,-4 60,-20 z m -792,-50 -2,-60 h -42 c -31,0 -46,5 -58,23 -12,15 -16,17 -12,5 3,-12 0,-18 -9,-18 -19,0 -19,14 0,30 8,7 35,11 63,8 l 49,-3 -5,38 c -3,24 -1,37 7,37 8,0 11,-20 9,-60 z m 1362,-47 v -96 l -50,5 c -28,3 -52,7 -54,9 -2,2 -7,45 -11,94 l -7,90 61,-3 61,-4 z m -1940,2 v -85 h -50 -50 v 85 85 h 50 50 z m 110,60 c 0,-14 -4,-25 -10,-25 -6,0 -10,-28 -10,-63 v -63 l -40,4 -40,4 v 84 84 h 50 c 47,0 50,-2 50,-25 z m 1502,-7 c 1,-18 2,-59 2,-90 l 1,-58 h -37 -38 v 83 c 0,46 3,87 7,90 3,4 19,7 35,7 25,0 28,-4 30,-32 z m 545,22 h 53 v -86 -85 l -130,2 -130,3 v 89 90 l 77,-7 c 42,-3 100,-6 130,-6 z M 730,1095 v -65 h -42 c -24,0 -67,3 -95,6 l -53,7 v 58 59 h 95 95 z m 188,-18 c 3,-32 0,-37 -17,-37 -18,0 -21,6 -21,41 0,33 3,40 18,37 12,-2 18,-14 20,-41 z m 102,-2 c 0,-35 0,-35 -45,-35 -45,0 -45,0 -45,35 0,35 0,35 45,35 45,0 45,0 45,-35 z" - id="path1-8" /><path - d="m 399,1207 c -5,-28 -2,-47 6,-49 14,-2 19,32 6,45 -6,6 -11,8 -12,4 z" - id="path2-6" /></g><g - transform="matrix(-0.07010876,0,0,-0.11510962,200.61217,288.63498)" - fill="#000000" - stroke="none" - id="g2-8" - style="display:inline" - clip-path="url(#clipPath323)"><path - d="m 1566,1958 c -4,-42 -14,-100 -23,-130 -9,-30 -19,-110 -22,-183 l -6,-130 -19,38 c -20,37 -20,37 -83,37 -58,0 -64,-2 -75,-25 -21,-47 -29,-25 -28,73 0,58 -5,121 -15,157 -8,33 -18,74 -21,90 -6,25 -9,19 -20,-44 -7,-40 -18,-85 -24,-100 -6,-15 -10,-32 -9,-37 1,-5 1,-24 0,-41 -1,-32 -3,-33 -41,-33 -34,0 -41,-4 -46,-25 -10,-41 -21,-29 -40,45 l -18,69 -28,-82 c -15,-45 -27,-94 -27,-109 -1,-23 -5,-28 -26,-28 h -26 l 1,103 c 1,62 -5,123 -14,157 -8,30 -21,98 -29,150 l -13,95 -13,-80 c -7,-44 -20,-111 -28,-150 -8,-38 -14,-113 -13,-166 l 1,-96 -83,-9 c -82,-9 -82,-9 -92,-41 -8,-29 -13,-33 -42,-33 -28,0 -35,-5 -40,-25 -3,-14 -12,-25 -19,-25 -7,0 -15,-7 -19,-15 -4,-11 -21,-15 -66,-15 -53,0 -60,-2 -60,-20 0,-16 -7,-20 -32,-21 -24,0 -39,-8 -57,-31 -23,-28 -24,-38 -22,-126 2,-70 -1,-97 -11,-103 -7,-5 -40,-9 -73,-10 -33,0 -71,-5 -85,-10 -15,-5 12,-5 65,-1 50,4 137,6 195,5 58,-1 278,-2 490,-2 212,0 486,-1 610,-2 257,-3 312,-3 690,-1 151,2 358,1 460,-1 165,-3 174,-2 87,6 l -98,10 2,91 c 1,77 -2,98 -22,139 -23,46 -24,47 -71,47 -47,0 -48,1 -71,47 l -24,46 -73,-2 -73,-2 5,26 c 3,14 2,28 -3,30 -4,3 -15,42 -25,86 l -17,82 -19,-78 c -10,-42 -21,-82 -25,-88 -3,-6 -5,-35 -4,-64 1,-31 -2,-53 -8,-53 -5,0 -25,25 -43,55 -32,54 -33,55 -80,55 -44,0 -48,2 -46,23 1,12 -9,37 -22,55 -24,32 -25,32 -108,32 h -85 l 5,45 c 3,25 2,48 -2,50 -12,7 -40,136 -40,180 0,49 -15,37 -18,-14 -2,-23 -12,-75 -22,-118 -11,-42 -20,-100 -20,-130 0,-48 -2,-53 -22,-53 -18,0 -27,11 -41,45 -14,32 -25,45 -39,45 -18,0 -20,6 -17,68 2,37 -2,80 -9,97 -6,17 -20,80 -30,140 l -19,110 z m 48,-185 c 6,-20 4,-21 -38,-21 h -46 l 16,36 c 8,20 18,63 21,97 l 6,60 17,-75 c 9,-41 20,-85 24,-97 z m -666,-35 10,-38 h -45 c -35,0 -44,3 -40,14 3,8 11,43 17,78 24,144 22,141 35,58 7,-41 17,-92 23,-112 z m 332,51 c 6,-22 14,-47 17,-55 4,-10 -3,-14 -27,-14 -25,0 -31,3 -26,16 3,9 9,33 12,55 4,21 8,39 10,39 2,0 8,-18 14,-41 z m 549,-101 c 9,-25 8,-26 -27,-30 l -38,-3 12,40 c 7,22 16,54 20,70 l 7,30 8,-40 c 4,-22 12,-52 18,-67 z m -209,-93 v -145 h -45 -45 v 145 145 h 45 45 z m -321,43 v -73 l -16,33 c -9,17 -23,32 -30,32 -7,0 -13,9 -13,21 0,11 5,17 10,14 6,-3 10,1 10,10 0,9 -4,13 -10,10 -5,-3 -10,1 -10,9 0,11 9,16 30,16 h 30 z m -339,-73 v -125 h -30 c -20,0 -30,-5 -30,-15 0,-8 -7,-15 -15,-15 -13,0 -15,22 -15,140 v 140 h 45 45 z m 144,18 c 7,-21 4,-23 -32,-23 h -40 l 21,56 21,57 11,-34 c 7,-19 15,-44 19,-56 z m 732,54 c 2,-7 3,-62 2,-123 l -3,-109 -14,63 c -12,55 -16,62 -37,62 -22,0 -24,4 -24,54 0,34 5,56 13,59 24,10 58,7 63,-6 z m -556,-57 20,-40 h -49 c -45,0 -51,3 -70,34 -12,18 -21,36 -21,40 0,3 22,6 50,6 48,0 50,-1 70,-40 z m 389,4 c 26,-33 27,-54 3,-54 -11,0 -24,-10 -30,-22 -9,-19 -10,-12 -9,40 0,34 4,62 8,62 4,0 17,-12 28,-26 z m -491,-26 c 28,-55 29,-88 2,-88 -11,0 -20,7 -20,15 0,8 -9,15 -20,15 -13,0 -20,7 -20,19 0,24 20,81 28,81 4,0 17,-19 30,-42 z m 307,-8 16,-30 h -41 c -36,0 -40,-2 -40,-25 0,-16 -6,-25 -15,-25 -9,0 -15,9 -15,23 -1,12 -7,33 -15,47 -22,38 -19,40 40,40 50,0 56,-2 70,-30 z m 826,-67 c 8,-21 6,-23 -25,-23 h -34 l 14,38 c 7,20 14,46 15,57 0,13 5,7 11,-15 5,-19 14,-45 19,-57 z m -943,52 c 7,-14 12,-36 11,-48 0,-18 -3,-17 -15,11 -8,17 -18,32 -24,32 -5,0 -7,7 -4,15 9,22 19,18 32,-10 z m 642,11 c 0,-8 3,-21 6,-30 5,-14 -6,-16 -80,-16 h -86 v 30 30 h 80 c 62,0 80,-3 80,-14 z m -905,-21 c 0,-22 -4,-25 -37,-25 -34,0 -38,3 -38,25 0,22 4,25 38,25 33,0 37,-3 37,-25 z m 245,-25 c 8,-16 8,-24 -4,-35 -16,-17 -56,-20 -56,-5 0,6 -9,10 -19,10 -17,0 -31,18 -31,41 0,5 22,9 50,9 39,0 51,-4 60,-20 z m 446,4 c -3,-9 -9,-41 -12,-72 -10,-83 -15,-86 -54,-32 -27,38 -42,50 -66,52 -30,3 -31,3 -17,36 13,32 13,32 84,32 61,0 70,-2 65,-16 z m -276,-24 c 0,-23 -5,-30 -19,-30 -11,0 -23,5 -26,10 -3,6 -15,10 -26,10 -12,0 -19,7 -19,20 0,17 7,20 45,20 43,0 45,-1 45,-30 z m -660,-25 v -45 h -45 c -25,0 -45,5 -45,10 0,6 -18,10 -40,10 -45,0 -44,-1 -30,34 8,23 15,25 77,29 37,2 71,4 76,5 4,1 7,-18 7,-43 z m 284,8 c -4,-16 -11,-38 -15,-51 -5,-13 -9,-35 -9,-50 0,-24 -4,-20 -30,26 -30,51 -32,52 -75,52 -41,0 -45,2 -45,25 0,25 1,25 90,25 h 90 z m 664,-55 c -8,-4 7,-8 35,-8 26,0 47,-3 47,-7 0,-3 -11,-21 -26,-40 -21,-28 -31,-33 -65,-33 -21,0 -39,3 -39,6 0,3 9,19 21,35 11,16 17,34 14,39 -4,6 -3,30 1,53 l 7,42 9,-39 c 6,-29 5,-42 -4,-48 z m 211,60 c -1,-18 -2,-19 -6,-5 -8,30 -28,13 -34,-29 -3,-21 -11,-50 -18,-63 l -13,-24 -20,32 c -15,23 -27,31 -49,31 -27,0 -29,3 -29,40 v 40 h 85 c 82,0 85,-1 84,-22 z m 44,-27 c 34,5 69,6 77,3 21,-6 73,-94 56,-94 -7,0 -21,-16 -32,-35 -15,-29 -24,-35 -51,-35 -31,0 -33,2 -33,33 0,21 11,48 31,75 17,24 29,45 27,48 -3,2 -18,-14 -33,-36 -27,-38 -30,-40 -81,-40 -57,0 -62,4 -39,34 8,10 13,30 11,45 -2,14 -1,19 1,10 3,-13 14,-14 66,-8 z m -773,-11 c 19,-46 8,-60 -49,-60 -44,0 -50,3 -59,28 -5,15 -13,35 -17,45 -6,15 0,17 53,17 57,0 60,-1 72,-30 z m 197,-20 c 32,-66 30,-70 -27,-70 -27,0 -50,3 -50,7 0,3 12,26 26,50 14,25 24,46 22,49 -3,2 -15,-14 -27,-36 -22,-39 -24,-40 -76,-40 h -54 l 26,45 25,46 57,-3 c 55,-3 56,-3 78,-48 z m 833,-10 v -50 h -35 -35 v 50 50 h 35 35 z m -1158,-78 c -29,-31 -33,-32 -109,-32 -73,0 -103,9 -103,32 0,4 40,8 89,8 h 88 l 7,48 c 3,27 9,52 13,56 4,3 15,-13 25,-37 l 19,-44 z m 428,113 c 0,-21 -27,-55 -44,-56 -12,0 -15,-3 -8,-6 14,-6 17,-33 2,-33 -7,0 -50,82 -50,96 0,2 23,4 50,4 28,0 50,-2 50,-5 z m 116,-22 c 38,-52 38,-53 -3,-53 -32,0 -41,5 -60,35 -13,19 -23,37 -23,40 0,3 15,5 33,5 25,0 38,-7 53,-27 z m -628,-28 22,-45 h -68 -68 l -22,45 -22,45 h 68 68 z m 556,5 c 14,-22 22,-40 16,-40 -5,0 -10,-9 -10,-20 0,-11 5,-20 10,-20 6,0 10,-7 10,-15 0,-10 -11,-15 -35,-15 -36,0 -39,4 -35,49 1,18 -2,22 -14,18 -9,-4 -16,-4 -16,-1 0,6 42,84 46,84 1,0 13,-18 28,-40 z m -871,18 c 5,-14 -23,-68 -34,-68 -4,0 -11,9 -14,20 -5,15 -15,20 -40,20 -24,0 -38,6 -45,20 -10,19 -8,20 59,20 46,0 71,-4 74,-12 z m 173,-40 c 15,-29 15,-30 -1,-24 -9,3 -42,9 -73,12 -34,4 -62,13 -71,23 -12,14 -12,13 -6,-7 4,-16 1,-29 -9,-41 -13,-14 -14,-23 -6,-42 9,-20 10,-21 7,-3 -3,12 0,29 5,38 14,26 39,1 33,-33 -4,-19 -3,-21 3,-7 8,17 9,17 25,-7 13,-21 17,-49 17,-131 0,-117 0,-116 -76,-116 h -44 v 124 c 0,76 4,127 10,131 8,5 8,11 0,20 -8,10 -6,23 8,52 l 20,38 71,2 c 70,2 71,2 87,-29 z m 1529,24 c 6,-4 18,-22 27,-40 14,-25 14,-32 3,-32 -7,0 -20,-19 -27,-42 -11,-31 -21,-44 -36,-46 -31,-5 -29,34 4,99 14,28 23,54 20,57 -4,3 -16,-18 -28,-46 -14,-34 -28,-52 -39,-52 -23,0 -59,51 -59,84 0,25 2,26 63,26 34,0 67,-4 72,-8 z m -524,-54 c 7,-13 6,-18 -4,-18 -11,0 -13,-27 -9,-140 l 5,-140 h -35 -35 l -6,68 c -14,141 -9,199 19,244 25,40 27,41 41,22 8,-10 19,-27 24,-36 z m -1223,-9 c 18,-31 21,-44 13,-52 -9,-9 -14,-8 -21,3 -6,9 -5,17 3,22 8,5 6,8 -5,8 -10,0 -18,-7 -18,-15 0,-10 -10,-15 -29,-15 -24,0 -34,8 -52,40 -12,22 -25,38 -27,35 -2,-2 5,-20 17,-40 14,-25 21,-53 21,-91 0,-53 0,-54 -30,-54 -28,0 -30,3 -30,34 0,19 -5,38 -11,42 -12,7 -7,31 16,87 15,37 16,37 73,37 56,0 57,-1 80,-41 z m 682,9 c 0,-22 -10,-48 -19,-48 -4,0 -13,11 -19,25 -9,19 -19,25 -42,25 -16,0 -30,4 -30,10 0,5 24,8 55,7 44,-2 55,-5 55,-19 z m -515,2 c 38,0 45,-4 62,-32 l 18,-31 80,2 c 77,2 79,2 62,-17 -14,-15 -17,-38 -17,-120 v -102 h -31 c -29,0 -30,2 -29,38 1,20 1,66 1,102 -1,59 -4,66 -26,76 -13,7 -25,8 -27,4 -2,-4 -28,-5 -58,-3 -51,5 -58,8 -80,42 -34,49 -36,55 -16,48 10,-4 37,-7 61,-7 z m 863,-35 c 1,-42 0,-45 -23,-45 -14,0 -25,5 -25,10 0,6 -7,10 -15,10 -10,0 -15,11 -15,35 0,34 1,35 38,35 h 38 z m 322,10 c 0,-44 -20,-46 -21,-2 l -1,32 -8,-29 c -6,-20 -5,-37 6,-57 l 15,-29 h -39 c -32,0 -41,5 -51,26 -6,15 -14,24 -17,21 -3,-3 0,-14 7,-25 20,-28 14,-212 -7,-212 -13,0 -15,21 -13,136 l 2,136 44,-4 c 23,-2 43,0 43,4 0,5 -16,8 -35,8 -24,0 -35,5 -35,15 0,12 13,15 55,15 h 55 z m -1520,12 c 0,-7 -6,-21 -13,-31 -12,-16 -14,-16 -26,-2 -8,9 -20,16 -27,16 -8,0 -14,7 -14,15 0,11 11,15 40,15 26,0 40,-4 40,-13 z m 1760,8 c 0,-3 -12,-23 -26,-45 -30,-44 -49,-51 -57,-19 -5,17 -12,21 -36,17 -36,-5 -36,-5 -15,27 14,22 24,25 75,25 33,0 59,-2 59,-5 z M 1230,1153 v -113 h -65 -65 v 101 102 l 38,42 37,43 28,-31 c 26,-30 27,-35 27,-144 z m 129,145 20,-33 -64,-3 c -61,-3 -67,-1 -90,25 -13,15 -25,31 -25,36 0,4 31,7 69,7 67,0 70,-1 90,-32 z m 222,-9 21,-42 -32,7 c -18,3 -50,6 -71,6 -33,0 -41,4 -54,31 -9,17 -19,29 -21,26 -3,-3 1,-18 9,-34 8,-15 17,-74 21,-130 l 6,-103 h -35 -35 v 118 c 0,154 5,162 100,162 h 70 z m 763,24 c 4,-10 15,-29 26,-43 12,-15 18,-18 14,-7 -4,10 -1,17 6,17 6,0 10,-8 8,-17 -2,-10 -11,-18 -21,-17 -9,0 -37,1 -62,2 l -45,2 26,40 c 29,44 40,49 48,23 z m -504,-53 c 0,-55 -6,-63 -20,-25 -7,18 -17,25 -35,25 -20,0 -25,5 -25,25 0,23 4,25 40,25 h 40 z m 789,9 c 13,-22 21,-42 18,-45 -10,-10 -185,9 -181,20 24,69 20,66 82,66 58,0 59,0 81,-41 z m -2106,-5 29,-34 H 441 329 l 28,35 c 26,33 32,35 83,34 50,0 58,-4 83,-35 z m 1670,-1 c -6,-16 -5,-16 10,-4 15,12 17,10 17,-18 0,-21 5,-31 15,-31 12,0 15,-15 15,-79 v -78 l -37,-7 c -21,-3 -62,-6 -90,-6 h -53 v 96 c 0,52 -5,104 -10,115 -10,18 -7,19 50,19 58,0 60,-1 60,-26 0,-14 4,-23 10,-19 6,3 7,17 4,31 -4,14 -2,24 5,24 6,0 8,-8 4,-17 z m -1495,-47 3,-46 h -35 c -36,0 -36,0 -36,43 0,52 3,56 38,53 24,-3 27,-8 30,-50 z m 968,-7 c -3,-34 -6,-86 -6,-115 0,-54 0,-54 -31,-54 h -31 l 3,115 3,115 h 35 34 z m 100,-9 h 74 v -79 c 0,-44 -4,-82 -8,-85 -4,-3 -42,-2 -83,1 l -74,5 5,117 c 2,64 6,99 8,79 l 3,-38 z m -798,40 c 18,0 22,-6 22,-29 0,-28 -1,-29 -50,-28 -35,2 -54,-3 -60,-13 -7,-11 -10,-1 -10,34 v 49 l 38,-7 c 20,-3 47,-6 60,-6 z m 412,-89 v -98 l -46,-7 c -100,-13 -94,-20 -94,99 v 105 h 70 70 z m 164,93 46,-7 v -99 -99 l -57,3 -58,3 -3,63 c -2,43 0,62 7,57 7,-4 11,4 11,19 0,14 -4,26 -10,26 -5,0 -10,9 -10,20 0,22 6,23 74,14 z m 266,-14 c 10,-19 8,-20 -50,-20 -53,0 -60,2 -60,20 0,17 7,20 50,20 39,0 52,-4 60,-20 z m -792,-50 -2,-60 h -42 c -31,0 -46,5 -58,23 -12,15 -16,17 -12,5 3,-12 0,-18 -9,-18 -19,0 -19,14 0,30 8,7 35,11 63,8 l 49,-3 -5,38 c -3,24 -1,37 7,37 8,0 11,-20 9,-60 z m 1362,-47 v -96 l -50,5 c -28,3 -52,7 -54,9 -2,2 -7,45 -11,94 l -7,90 61,-3 61,-4 z m -1940,2 v -85 h -50 -50 v 85 85 h 50 50 z m 110,60 c 0,-14 -4,-25 -10,-25 -6,0 -10,-28 -10,-63 v -63 l -40,4 -40,4 v 84 84 h 50 c 47,0 50,-2 50,-25 z m 1502,-7 c 1,-18 2,-59 2,-90 l 1,-58 h -37 -38 v 83 c 0,46 3,87 7,90 3,4 19,7 35,7 25,0 28,-4 30,-32 z m 545,22 h 53 v -86 -85 l -130,2 -130,3 v 89 90 l 77,-7 c 42,-3 100,-6 130,-6 z M 730,1095 v -65 h -42 c -24,0 -67,3 -95,6 l -53,7 v 58 59 h 95 95 z m 188,-18 c 3,-32 0,-37 -17,-37 -18,0 -21,6 -21,41 0,33 3,40 18,37 12,-2 18,-14 20,-41 z m 102,-2 c 0,-35 0,-35 -45,-35 -45,0 -45,0 -45,35 0,35 0,35 45,35 45,0 45,0 45,-35 z" - id="path1-8-9" /><path - d="m 399,1207 c -5,-28 -2,-47 6,-49 14,-2 19,32 6,45 -6,6 -11,8 -12,4 z" - id="path2-6-1" /></g></g><g - inkscape:groupmode="layer" - id="layer4" - inkscape:label="Moon" - style="display:inline;fill:#7e87d8;fill-opacity:0.893993;stroke-width:0.6;stroke-dasharray:none" - transform="translate(-6.7520832,-1.5246326)"><g - transform="matrix(0.00649006,0,0,-0.00625884,109.86763,30.00882)" - fill="#000000" - stroke="none" - id="g10" - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1372)"><path - d="m 1380,2857 c -41,-19 -127,-60 -190,-92 -63,-32 -187,-93 -275,-135 C 386,2374 389,2376 354,2307 346,2292 310,2150 274,1992 238,1834 184,1595 153,1460 92,1196 86,1133 116,1073 133,1039 294,832 687,338 765,239 837,159 862,143 l 42,-28 570,-3 c 415,-2 582,0 611,9 74,21 72,19 396,429 37,47 142,179 233,295 177,223 206,275 191,348 -23,108 -229,1012 -242,1059 -26,95 -61,126 -241,214 -986,481 -908,452 -1042,391 z m 220,-24 c 36,-15 67,-30 70,-33 6,-6 85,-45 295,-145 121,-58 190,-91 254,-125 9,-5 84,-41 166,-81 83,-40 152,-76 155,-80 3,-3 15,-11 28,-18 12,-6 22,-18 22,-26 0,-8 5,-15 10,-15 9,0 26,-30 36,-65 8,-26 36,-143 40,-165 13,-76 51,-240 57,-246 4,-4 7,-19 7,-33 0,-14 7,-45 15,-69 9,-24 13,-48 10,-53 -4,-5 -3,-15 2,-21 8,-14 12,-29 19,-68 2,-14 13,-59 24,-100 11,-41 20,-85 20,-98 0,-12 4,-30 9,-40 13,-26 31,-132 31,-188 0,-48 -27,-117 -54,-139 -7,-5 -39,-46 -72,-90 -32,-44 -69,-91 -80,-105 -12,-14 -61,-74 -108,-135 -48,-60 -92,-117 -99,-125 -7,-8 -30,-37 -52,-65 -21,-27 -44,-55 -51,-60 -6,-6 -41,-51 -78,-100 -65,-87 -151,-184 -164,-186 -4,0 -16,-3 -27,-7 -11,-3 -274,-7 -584,-9 -556,-3 -564,-3 -606,18 -23,11 -53,35 -68,52 -34,42 -159,198 -222,278 -27,35 -52,66 -55,69 -6,5 -116,146 -155,199 -11,15 -38,49 -60,77 -22,27 -43,53 -47,59 -4,5 -31,39 -61,75 -68,84 -81,105 -96,162 -14,48 -9,83 25,198 7,25 20,81 27,125 8,44 19,90 25,101 6,12 9,24 6,26 -2,3 3,34 12,69 8,35 18,75 20,89 3,14 12,54 20,90 9,36 20,85 26,110 5,25 13,54 18,65 4,11 13,49 20,85 6,36 15,83 19,105 21,111 80,176 206,226 33,13 71,31 85,40 30,19 400,200 416,203 6,1 22,9 35,17 13,8 51,28 84,43 33,16 110,53 170,82 129,63 161,66 255,27 z" - id="path1-7" - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" - id="path2-5" - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" - id="path3-9" - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" - id="path4-6" - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" - id="path5-2" - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" - id="path6-1" - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" - id="path7-7" - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" - id="path8-8" - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" - id="path9-5" - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" - id="path10-7" - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /></g><path - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" - d="m 127.55304,38.270573 c -0.50292,-0.0212 -0.6649,-0.05716 -0.93097,-0.206661 -0.34854,-0.195847 -0.31254,-0.158532 -2.12597,-2.203731 -1.35028,-1.522854 -1.54387,-1.743845 -2.04389,-2.333232 -0.43311,-0.510506 -0.73955,-0.859118 -1.74056,-1.980051 -0.56941,-0.637649 -0.6934,-0.825677 -0.82557,-1.251955 -0.0624,-0.201106 -0.0678,-0.248623 -0.0553,-0.480692 0.014,-0.259024 0.0208,-0.286401 0.30777,-1.247328 0.0337,-0.113032 0.0918,-0.346421 0.12888,-0.518641 0.12969,-0.601858 0.24262,-1.039486 0.30413,-1.178571 0.035,-0.07935 0.062,-0.188385 0.062,-0.251249 0,-0.161416 0.68766,-2.907058 0.83353,-3.328026 0.0996,-0.287368 0.15955,-0.530057 0.29326,-1.186369 0.15741,-0.772708 0.23368,-0.98096 0.47855,-1.306721 0.14755,-0.196276 0.29684,-0.330055 0.56437,-0.505733 0.24928,-0.163688 0.45409,-0.260555 0.97193,-0.459702 0.21321,-0.08199 0.54706,-0.225547 0.74186,-0.319004 0.74188,-0.355906 3.23844,-1.451445 3.62196,-1.589386 0.0997,-0.03584 0.2932,-0.121317 0.43009,-0.189936 0.23178,-0.116182 0.48484,-0.227791 1.94398,-0.857365 1.10351,-0.47614 1.32049,-0.546135 1.69507,-0.546825 0.37398,-6.87e-4 0.81457,0.139614 1.59389,0.507554 0.45861,0.216532 0.84481,0.386089 2.88415,1.266253 0.61225,0.264244 1.36674,0.595795 1.67664,0.736781 0.30991,0.140986 0.97886,0.438201 1.48656,0.660475 1.11561,0.488429 1.51194,0.672991 1.80256,0.839437 0.26368,0.151015 0.3292,0.207928 0.3553,0.308612 0.0118,0.04549 0.0496,0.09244 0.0943,0.117124 0.0936,0.05164 0.18791,0.192029 0.27165,0.404275 0.0959,0.242996 0.32148,1.088048 0.4855,1.818439 0.16451,0.732515 0.37888,1.531494 0.43383,1.616953 0.0204,0.03185 0.0476,0.145689 0.0603,0.252996 0.0237,0.200502 0.0833,0.434505 0.17851,0.701095 0.0397,0.111331 0.0504,0.184521 0.0398,0.274559 -0.0116,0.09943 -0.002,0.146437 0.0487,0.247348 0.0347,0.06852 0.0966,0.271947 0.13748,0.452054 0.041,0.180107 0.11947,0.484346 0.17462,0.676088 0.14941,0.519451 0.20393,0.747121 0.23142,0.966276 0.0136,0.108667 0.0522,0.265248 0.0859,0.347957 0.0875,0.215367 0.16261,0.526941 0.21838,0.905991 0.0885,0.601704 0.0576,0.908646 -0.13082,1.298522 -0.0814,0.168524 -0.15254,0.263645 -0.35947,0.480929 -0.14187,0.148971 -0.4536,0.504139 -0.69272,0.789262 -0.23913,0.285123 -0.51807,0.611572 -0.61985,0.725441 -0.20438,0.228661 -1.84377,2.0828 -2.21822,2.508808 -0.13029,0.14823 -0.34712,0.383358 -0.48185,0.522506 -0.13472,0.139148 -0.4091,0.446538 -0.60972,0.683089 -0.52107,0.614385 -0.96838,1.104042 -1.29089,1.413087 -0.22884,0.219286 -0.3037,0.275659 -0.41142,0.30984 -0.19778,0.06276 -0.91724,0.08059 -4.44527,0.110141 -3.43101,0.02874 -4.96024,0.02856 -5.65447,-7.57e-4 z m 8.8229,-2.575462 c 0.14919,-0.07222 0.30386,-0.226181 0.37514,-0.373421 0.0463,-0.09559 0.0535,-0.14491 0.0436,-0.299851 -0.0102,-0.158836 -0.0304,-0.222989 -0.14085,-0.447115 -0.0709,-0.14392 -0.23645,-0.424017 -0.36785,-0.62244 -0.26627,-0.402069 -0.31804,-0.535394 -0.26096,-0.671994 0.0554,-0.132719 0.17944,-0.256911 0.48308,-0.483832 0.51597,-0.385616 1.01452,-0.872024 1.53413,-1.496768 0.38472,-0.462561 0.65542,-0.881747 0.65542,-1.014934 0,-0.05183 0.11035,-0.221172 0.223,-0.34221 0.10066,-0.108147 0.22547,-0.09458 1.0303,0.111991 0.6695,0.171834 0.72301,0.181666 0.99837,0.183423 0.25232,0.0015 0.30437,-0.0054 0.39214,-0.05285 0.13059,-0.07059 0.23962,-0.186077 0.35443,-0.375387 0.11811,-0.194741 0.11363,-0.322055 -0.019,-0.537725 -0.17936,-0.291803 -0.31119,-0.345683 -1.22077,-0.498921 -0.76405,-0.128721 -0.97122,-0.190539 -1.09982,-0.328184 -0.0579,-0.06201 -0.0638,-0.09291 -0.0831,-0.438823 -0.0288,-0.515817 -0.0863,-1.113283 -0.13324,-1.384096 -0.1252,-0.72312 -0.36418,-1.38804 -0.72081,-2.005595 l -0.17134,-0.29667 0.16798,-0.172681 c 0.15445,-0.158774 0.41148,-0.343992 0.85542,-0.61641 0.32788,-0.201201 0.64035,-0.512008 0.72968,-0.725797 0.0872,-0.208688 -0.006,-0.519746 -0.21081,-0.704511 -0.13341,-0.120288 -0.18505,-0.133464 -0.52322,-0.133464 -0.25156,0 -0.29167,0.0066 -0.41745,0.06859 -0.0766,0.03773 -0.24161,0.148178 -0.36684,0.245446 -0.63683,0.49464 -0.86546,0.662503 -0.99991,0.734156 l -0.14737,0.07855 -0.21065,-0.108813 c -0.11585,-0.05985 -0.41557,-0.240224 -0.66604,-0.400837 -0.73611,-0.472036 -0.86173,-0.541173 -1.34464,-0.740032 -0.35055,-0.144354 -0.58746,-0.213432 -1.19133,-0.347371 -0.69389,-0.153906 -0.85254,-0.225694 -0.935,-0.423052 -0.0393,-0.09394 -0.0467,-0.499691 -0.0187,-1.016764 0.0283,-0.521861 -0.0534,-0.879321 -0.23775,-1.041234 -0.2394,-0.210181 -0.55264,-0.263668 -0.81562,-0.13926 -0.386,0.182601 -0.50579,0.500628 -0.46365,1.230898 0.0352,0.609593 0.0285,0.960124 -0.0201,1.05013 -0.085,0.157544 -0.14807,0.191372 -0.42921,0.230399 -0.31872,0.04425 -0.69574,0.142735 -1.3044,0.340735 -0.25343,0.08245 -0.47743,0.149904 -0.49778,0.149904 -0.0964,0 -0.70939,0.346053 -1.21853,0.687881 -0.64314,0.431806 -0.68082,0.446198 -0.89016,0.340116 -0.0709,-0.03593 -0.24569,-0.159546 -0.38839,-0.274693 -0.72128,-0.581996 -0.92658,-0.717837 -1.22112,-0.807972 -0.33064,-0.101187 -0.57797,-0.0287 -0.81183,0.23792 -0.15992,0.18233 -0.18433,0.273776 -0.13036,0.488578 0.0848,0.337758 0.18588,0.452188 0.73613,0.833689 0.66294,0.459637 0.97404,0.748329 0.97404,0.903913 0,0.02566 -0.0448,0.0889 -0.0995,0.140519 -0.12303,0.116067 -0.23267,0.316147 -0.43264,0.78953 -0.21197,0.501749 -0.39275,1.052702 -0.44,1.340948 -0.0217,0.13219 -0.0509,0.433887 -0.065,0.670438 -0.0471,0.789766 -0.0904,1.050522 -0.18455,1.111692 -0.17755,0.115308 -0.70929,0.226659 -1.21561,0.254562 -0.61029,0.03363 -0.93779,0.191795 -1.09464,0.528632 -0.079,0.169671 -0.0817,0.380677 -0.006,0.527601 0.0805,0.157711 0.30609,0.367159 0.41818,0.388188 0.23774,0.0446 0.82813,-0.03911 1.56026,-0.221205 0.51669,-0.128512 0.62185,-0.133242 0.72737,-0.03271 0.0907,0.08637 0.25666,0.348903 0.56766,0.89775 0.12188,0.215069 0.27409,0.464965 0.33828,0.555326 0.17906,0.252084 0.56842,0.641249 1.35603,1.355354 l 0.7189,0.651811 -0.0463,0.0654 c -0.15909,0.22472 -0.73303,1.159737 -0.80887,1.317735 -0.0791,0.164758 -0.0909,0.213672 -0.09,0.371399 5.7e-4,0.156116 0.0134,0.205776 0.0885,0.353277 0.10179,0.199575 0.19247,0.271367 0.39618,0.313659 0.19544,0.04057 0.502,0.02149 0.62743,-0.03906 0.21142,-0.10205 0.30587,-0.238817 0.71815,-1.03989 0.2141,-0.415974 0.39862,-0.766649 0.41005,-0.779277 0.0251,-0.02778 0.28914,0.0075 0.94351,0.125927 1.09473,0.19821 2.61618,0.164005 3.57013,-0.08026 l 0.253,-0.06478 0.0654,0.07828 c 0.19031,0.227946 0.65338,1.118013 0.71057,1.365774 0.0457,0.198274 0.29126,0.425524 0.5523,0.511261 0.12183,0.04001 0.46113,0.01088 0.58787,-0.05048 z" - id="path237" - clip-path="url(#clipPath1371)" - transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" - d="m 135.80683,35.482258 c -0.15771,-0.09547 -0.24272,-0.249712 -0.6235,-1.131256 -0.21878,-0.506484 -0.31638,-0.683089 -0.37748,-0.683089 -0.0248,0 -0.0838,-0.03985 -0.13096,-0.08855 -0.10257,-0.105833 -0.19494,-0.114499 -0.41468,-0.0389 -0.38976,0.134097 -1.30034,0.276 -1.90024,0.29613 -0.71574,0.02402 -1.62918,-0.107396 -2.34912,-0.337952 -0.151,-0.04836 -0.299,-0.0816 -0.3289,-0.07388 -0.0299,0.0077 -0.0731,0.04735 -0.096,0.08805 -0.0277,0.04929 -0.0699,0.08008 -0.1265,0.09218 -0.11478,0.02457 -0.13991,0.04907 -0.15998,0.156066 -0.0232,0.123516 -0.2112,0.550348 -0.43633,0.990543 -0.25449,0.497545 -0.34389,0.631946 -0.44986,0.676219 -0.28745,0.120105 -0.69584,-0.09694 -0.69584,-0.369811 0,-0.123792 0.16543,-0.455241 0.46651,-0.934701 0.28161,-0.448446 0.46836,-0.815298 0.48744,-0.957574 0.0185,-0.137852 -0.0442,-0.253663 -0.18862,-0.348067 -0.0661,-0.04324 -0.23405,-0.153217 -0.3732,-0.244399 -0.44502,-0.291626 -0.94881,-0.77899 -1.39214,-1.346765 -0.36404,-0.466226 -0.58033,-0.827882 -0.88163,-1.47413 -0.10798,-0.231614 -0.19079,-0.31735 -0.28391,-0.293976 -0.0471,0.01183 -0.0659,0.0012 -0.0896,-0.05088 -0.0379,-0.08328 -0.0627,-0.08253 -0.36663,0.01121 -0.48502,0.149611 -1.56891,0.403646 -1.72224,0.403646 -0.15701,0 -0.43458,-0.205219 -0.50518,-0.373501 -0.0405,-0.09633 -0.0128,-0.169247 0.12234,-0.32319 0.14102,-0.160606 0.2745,-0.199927 0.98871,-0.291239 0.5853,-0.07483 0.99228,-0.144001 1.18638,-0.201631 0.15335,-0.04554 0.17128,-0.05817 0.20605,-0.145055 0.0552,-0.137763 0.089,-0.409291 0.11918,-0.954999 0.0717,-1.296151 0.33796,-2.161908 0.91043,-2.960053 0.24747,-0.345025 0.26942,-0.414827 0.16839,-0.535676 -0.0328,-0.03933 -0.0672,-0.09428 -0.076,-0.122114 -0.0193,-0.05991 -0.28283,-0.256671 -0.83824,-0.625707 -0.48522,-0.322421 -0.80896,-0.578192 -0.86224,-0.681222 -0.0239,-0.04611 -0.0329,-0.103405 -0.0234,-0.146917 0.0251,-0.114616 0.15367,-0.296216 0.26841,-0.379336 0.24404,-0.176783 0.4387,-0.07948 1.2624,0.630955 0.55145,0.475632 0.7033,0.582387 0.82839,0.582387 0.0401,0 0.0948,0.01672 0.12184,0.03714 0.11431,0.08646 0.18852,0.05294 0.49185,-0.222164 0.6969,-0.632062 2.05307,-1.226765 3.35221,-1.470001 0.43632,-0.08169 0.52191,-0.113572 0.56942,-0.212074 0.021,-0.04349 0.0608,-0.09569 0.0885,-0.115995 0.0457,-0.03346 0.05,-0.06384 0.0463,-0.323522 -0.002,-0.157629 -0.0222,-0.485833 -0.0441,-0.729342 -0.0631,-0.698082 -0.0478,-0.903084 0.0775,-1.041651 0.19001,-0.210102 0.58397,-0.191926 0.78424,0.03619 0.10929,0.124469 0.11969,0.240078 0.0745,0.828372 -0.0844,1.100166 -0.0835,1.137064 0.031,1.328228 0.0589,0.09831 0.18681,0.141524 0.79777,0.26948 1.27608,0.267262 2.24646,0.704421 3.21299,1.447464 0.16897,0.129897 0.34365,0.254963 0.38818,0.277925 0.0905,0.04665 0.18469,0.05504 0.18469,0.01645 0,-0.01391 0.0427,-0.02525 0.0949,-0.02519 0.11942,1.01e-4 0.336,-0.143784 0.91711,-0.609467 0.61122,-0.489799 0.83922,-0.629682 1.02715,-0.630181 0.0796,-2.02e-4 0.24788,0.123519 0.35504,0.261198 0.10587,0.136026 0.12129,0.249037 0.0491,0.359329 -0.117,0.178562 -1.24338,0.932408 -1.62575,1.088044 -0.1456,0.05927 -0.14705,0.06088 -0.15122,0.168574 -0.002,0.05981 -0.0119,0.143193 -0.021,0.18531 -0.0232,0.10561 0.0402,0.261036 0.3046,0.747621 0.52232,0.961094 0.65273,1.506002 0.69055,2.885293 0.0129,0.469744 0.0301,0.736908 0.0496,0.772808 0.0165,0.03018 0.0642,0.06238 0.10606,0.07158 0.0419,0.0092 0.0761,0.03236 0.0761,0.05147 0,0.05792 0.0935,0.07734 1.34088,0.278425 0.67495,0.108806 0.7572,0.131616 0.86651,0.240308 0.0862,0.08574 0.0948,0.106703 0.0946,0.230132 -3e-4,0.162063 -0.10264,0.363169 -0.23158,0.454978 -0.16045,0.114254 -0.34853,0.08343 -1.56445,-0.256391 -0.47917,-0.133919 -0.68749,-0.170164 -0.76407,-0.132941 -0.032,0.01554 -0.088,0.0347 -0.12449,0.04255 -0.0934,0.02012 -0.17786,0.142 -0.41668,0.601289 -0.34083,0.655474 -0.66562,1.102116 -1.16352,1.60002 -0.31915,0.319149 -0.5776,0.530128 -0.98464,0.803794 -0.49609,0.333545 -0.62024,0.456272 -0.58233,0.575694 0.008,0.02661 -0.002,0.06418 -0.026,0.0874 -0.0598,0.05977 -0.0217,0.151384 0.23396,0.562206 0.30026,0.482567 0.65646,1.108078 0.69156,1.214439 0.016,0.04846 0.0227,0.113123 0.0148,0.143693 -0.0224,0.08744 -0.16318,0.241987 -0.27034,0.29666 -0.1394,0.07111 -0.36119,0.06748 -0.4858,-0.0079 z m -3.0904,-2.814227 c 0.68156,-0.06518 1.17418,-0.155772 1.17418,-0.215927 0,-0.165427 -1.27531,-2.174041 -1.56926,-2.471609 -0.11387,-0.115264 -0.17183,-0.1061 -0.31996,0.0506 -0.34347,0.363307 -1.57684,2.216892 -1.57684,2.369758 0,0.08353 1.15776,0.298275 1.63409,0.303094 0.14039,0.0015 0.4364,-0.01474 0.65779,-0.03592 z m 2.66412,-0.852259 c 0.21449,-0.161945 0.69424,-0.590695 0.97392,-0.870395 0.29201,-0.292024 0.49339,-0.532824 0.65647,-0.784968 0.12296,-0.190098 0.371,-0.678832 0.371,-0.730995 0,-0.01882 -0.0608,-0.0373 -0.15811,-0.04799 -0.087,-0.0096 -0.52244,-0.06822 -0.96772,-0.130356 -1.83284,-0.255756 -2.1003,-0.280074 -2.18978,-0.199103 -0.0524,0.04743 -0.0394,0.120217 0.0868,0.485631 0.33783,0.978204 0.95398,2.384639 1.04468,2.384639 0.023,0 0.10518,-0.04791 0.18274,-0.106468 z m -6.08496,-0.05166 c 0.0342,-0.05914 0.18176,-0.392144 0.3278,-0.740014 0.14604,-0.347869 0.34117,-0.807872 0.43363,-1.022226 0.29896,-0.693091 0.34469,-0.886097 0.2347,-0.990616 -0.0897,-0.08523 -0.13739,-0.09267 -0.37004,-0.05777 -0.12,0.01801 -0.81588,0.107669 -1.54641,0.199258 -0.73053,0.09159 -1.34783,0.174415 -1.37179,0.184054 -0.0373,0.01501 -0.006,0.08201 0.21505,0.465266 0.32976,0.570945 0.49551,0.79716 0.84049,1.147135 0.46007,0.46673 1.0177,0.922437 1.12873,0.922437 0.0269,0 0.071,-0.04387 0.10784,-0.107524 z m 3.21617,-3.165218 c 0.29192,-0.07798 0.52198,-0.263659 0.64084,-0.517228 0.0583,-0.124487 0.0676,-0.17686 0.0676,-0.384465 0,-0.212821 -0.008,-0.257102 -0.0719,-0.386651 -0.18691,-0.380628 -0.5552,-0.565456 -1.087,-0.545492 -0.17899,0.0067 -0.25984,0.02213 -0.3506,0.06682 -0.19784,0.09744 -0.33954,0.242373 -0.4444,0.454536 -0.0891,0.180351 -0.0954,0.208236 -0.0954,0.422116 0,0.194993 0.01,0.249679 0.0664,0.368157 0.12627,0.264508 0.33824,0.440401 0.62661,0.51992 0.15566,0.04293 0.49126,0.04412 0.64785,0.0024 z m 5.14521,-0.397192 c 0.0774,-0.222091 0.0523,-1.001639 -0.0482,-1.494925 -0.12158,-0.597031 -0.56104,-1.590137 -0.70366,-1.590137 -0.0499,0 -1.75724,1.444642 -2.07353,1.754439 -0.20643,0.202182 -0.29548,0.327695 -0.27339,0.385274 0.0322,0.08393 0.4684,0.239424 1.88759,0.672866 0.54963,0.167867 1.02779,0.314281 1.06258,0.325368 0.10471,0.03336 0.12042,0.02777 0.14853,-0.05289 z m -9.86783,-0.288561 c 1.14165,-0.325063 1.83781,-0.549236 1.95937,-0.630944 0.0449,-0.03013 0.0853,-0.08091 0.0898,-0.112854 0.0243,-0.169247 -0.44538,-0.626272 -1.7028,-1.656787 -0.33361,-0.273413 -0.61332,-0.497115 -0.62157,-0.497115 -0.036,0 -0.43587,0.875623 -0.52699,1.154033 -0.1675,0.511772 -0.27258,1.050522 -0.28564,1.464477 -0.0115,0.367856 0.002,0.569242 0.0367,0.569242 0.0178,0 0.49089,-0.130524 1.05116,-0.290052 z m 5.86705,-2.281211 c 0.5325,-0.278606 2.512,-1.442857 2.51069,-1.476675 -5.9e-4,-0.0233 -0.75497,-0.533554 -0.97889,-0.662402 -0.27491,-0.158194 -0.64653,-0.326939 -0.99379,-0.451263 -0.26722,-0.09567 -1.28676,-0.36568 -1.30644,-0.345995 -0.006,0.0058 0.006,0.151602 0.0273,0.323991 0.0208,0.172387 0.0672,0.723286 0.10338,1.224218 0.0851,1.180742 0.11301,1.395024 0.19553,1.499002 0.0486,0.06127 0.17271,0.03017 0.44229,-0.110876 z m -2.3762,-0.02195 c 0.0545,-0.16608 0.15028,-0.837396 0.23278,-1.631824 0.0427,-0.410486 0.0952,-0.858878 0.11677,-0.996427 0.0443,-0.282249 0.0377,-0.298172 -0.11494,-0.276359 -0.21456,0.03066 -0.87763,0.195122 -1.20989,0.300081 -0.41725,0.131799 -0.92147,0.375448 -1.33489,0.645037 -0.31183,0.203327 -0.54395,0.391074 -0.54395,0.439938 0,0.04058 0.53968,0.401001 1.31557,0.878603 1.09744,0.675514 1.25447,0.759281 1.40415,0.749061 0.0936,-0.0064 0.10368,-0.01453 0.1344,-0.10811 z" - id="path238" - clip-path="url(#clipPath1370)" - transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" - d="m 130.76375,25.291305 c -0.065,-0.07184 -0.34419,-0.252648 -1.02785,-0.665671 -0.61398,-0.37093 -0.72828,-0.457061 -0.72828,-0.548808 0,-0.109686 0.22982,-0.287287 0.61683,-0.47669 0.61789,-0.302386 1.23142,-0.499177 1.45731,-0.467435 0.16589,0.02331 0.23485,0.07338 0.21725,0.15771 -0.008,0.03735 -0.0487,0.372533 -0.0908,0.744846 -0.10606,0.937203 -0.1611,1.184007 -0.28307,1.269444 -0.0749,0.05246 -0.10398,0.05004 -0.1614,-0.01339 z" - id="path239" - clip-path="url(#clipPath1369)" - transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" - d="m 127.13596,27.715937 c -0.17548,-0.09054 -0.16912,-0.390715 0.0246,-1.157213 0.12658,-0.501132 0.2771,-0.826352 0.44272,-0.956635 0.0849,-0.06674 0.079,-0.06974 0.41775,0.213036 0.61006,0.509244 1.36616,1.214213 1.36616,1.273781 0,0.05745 -0.29115,0.165093 -0.90617,0.335004 -1.20751,0.3336 -1.24756,0.342296 -1.34499,0.292027 z" - id="path240" - clip-path="url(#clipPath1368)" - transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" - d="m 128.84181,31.236583 c -0.17172,-0.107684 -0.774,-0.719775 -0.97845,-0.994374 -0.20447,-0.274654 -0.33446,-0.521305 -0.31201,-0.592046 0.0322,-0.101633 0.30514,-0.161759 1.22859,-0.270696 0.18784,-0.02216 0.38139,-0.05305 0.43009,-0.06863 0.0487,-0.01558 0.22892,-0.02845 0.4005,-0.02856 0.41647,-3.03e-4 0.41557,-0.0019 0.23228,0.426257 -0.0536,0.125234 -0.16254,0.387084 -0.24207,0.581892 -0.30869,0.7561 -0.46011,1.024633 -0.57775,1.024633 -0.0308,0 -0.11236,-0.03531 -0.18118,-0.07847 z" - id="path241" - clip-path="url(#clipPath1367)" - transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" - d="m 131.63878,32.412098 c -0.38139,-0.04628 -0.64615,-0.143791 -0.6722,-0.247571 -0.0218,-0.08687 0.0621,-0.259842 0.26341,-0.543101 0.23174,-0.326051 0.44804,-0.652811 0.60478,-0.913567 0.14488,-0.24104 0.28658,-0.393903 0.34453,-0.371665 0.14456,0.05547 0.96625,1.287037 1.10359,1.654049 0.13812,0.369158 0.0368,0.415924 -0.92305,0.425976 -0.34788,0.0036 -0.67235,0.0018 -0.72106,-0.0041 z" - id="path242" - clip-path="url(#clipPath1366)" - transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" - d="m 135.2176,31.349427 c -0.0922,-0.09945 -0.18658,-0.308962 -0.21335,-0.473448 -0.0149,-0.09161 -0.0468,-0.173033 -0.0861,-0.219741 -0.12361,-0.146895 -0.459,-1.101313 -0.4413,-1.255785 0.008,-0.06735 0.016,-0.07187 0.14416,-0.07918 0.19539,-0.01114 1.79702,0.219117 2.08321,0.299499 0.0952,0.02674 0.17163,0.08389 0.17163,0.128348 0,0.254901 -1.31641,1.667125 -1.55403,1.667125 -0.0233,0 -0.0702,-0.03007 -0.1042,-0.06682 z" - id="path243" - clip-path="url(#clipPath1365)" - transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" - d="m 136.85053,27.7611 c -0.44093,-0.129612 -0.87343,-0.284476 -1.04647,-0.374713 -0.0854,-0.04452 -0.165,-0.08524 -0.17689,-0.09046 -0.0119,-0.0052 -0.0137,0.01544 -0.004,0.04592 0.0172,0.05434 0.0161,0.05464 -0.0602,0.01522 -0.0427,-0.02211 -0.13033,-0.04741 -0.1946,-0.05622 -0.0681,-0.0093 -0.1473,-0.04163 -0.18983,-0.07742 -0.0717,-0.06036 -0.0723,-0.06276 -0.032,-0.140771 0.0591,-0.114361 0.38607,-0.425191 0.89434,-0.850279 0.65349,-0.546562 0.74934,-0.616738 0.8028,-0.587747 0.14825,0.08039 0.31651,0.417122 0.4125,0.825537 0.11714,0.498444 0.1815,1.168481 0.12619,1.313942 -0.0213,0.05601 -0.0395,0.06474 -0.13282,0.06371 -0.0595,-6.34e-4 -0.23907,-0.03968 -0.3991,-0.08671 z" - id="path244" - clip-path="url(#clipPath1364)" - transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" - d="m 133.40106,25.22417 c -0.041,-0.323286 -0.15017,-2.102903 -0.13043,-2.126167 0.003,-0.0041 0.0825,0.0048 0.17573,0.01975 0.4069,0.065 1.3374,0.458288 1.75969,0.743753 0.13718,0.09273 0.32889,0.266149 0.32889,0.297507 0,0.08815 -1.90669,1.185325 -2.05989,1.185325 -0.0511,0 -0.0608,-0.01567 -0.074,-0.120174 z" - id="path245" - clip-path="url(#clipPath1363)" - transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path - style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" - d="m 131.89962,28.280454 c -0.23588,-0.10709 -0.43645,-0.363097 -0.43712,-0.557948 -0.002,-0.291031 0.43192,-0.708389 0.73483,-0.708389 0.20594,0 0.5447,0.237524 0.65939,0.462343 0.12147,0.238099 0.0356,0.528392 -0.20059,0.678188 -0.27178,0.172355 -0.55152,0.218873 -0.75651,0.125806 z" - id="path246" - clip-path="url(#clipPath1362)" - transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /></g><g - inkscape:groupmode="layer" - id="layer7" - inkscape:label="Aura" - style="display:none" - transform="translate(-6.7520832,-1.5246326)"><ellipse - style="fill:url(#radialGradient257);fill-rule:evenodd;stroke-width:0.288226" - id="path255" - cx="101.31387" - cy="157.17741" - rx="48.20459" - ry="114.84635" /></g><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-dasharray:none;stroke-opacity:1" - d="m 3.638022,169.93386 c 0.181901,-0.0707 2.5320995,-0.49141 5.2226632,-0.93493 2.6905638,-0.44353 4.9229858,-0.83752 4.9609378,-0.87553 0.03795,-0.038 0.06956,-4.33548 0.07024,-9.54991 0.0011,-8.2918 0.03032,-9.69537 0.23314,-11.19191 0.322393,-2.37882 0.793573,-4.38488 1.631355,-6.94549 0.795589,-2.43165 1.319369,-3.47618 1.891504,-3.77204 0.231095,-0.1195 1.105027,-0.25198 2.21484,-0.33574 2.38097,-0.1797 2.700382,-0.23292 3.191859,-0.53181 0.613156,-0.37288 1.476385,-3.9336 2.929302,-8.40385 0.7053,-2.17002 1.042589,-1.69805 1.134968,-1.7335 0.09238,-0.0354 2.333043,0.0247 4.979255,0.13371 2.985889,0.12298 4.858903,0.15122 4.936786,0.0744 0.07911,-0.078 0.06648,-0.7228 -0.03417,-1.74447 -0.23141,-2.34904 -0.201552,-3.71823 0.102211,-4.68709 0.521393,-1.66301 1.559507,-8.23756 2.469841,-15.64195 0.246348,-2.00372 0.397494,-2.86188 0.466007,-2.64584 0.05577,0.17586 0.4341,2.55217 0.840727,5.28069 0.834872,5.60205 1.704314,10.92113 1.978967,12.1069 0.223618,0.96543 0.299961,2.31272 0.475062,8.38375 0.128445,4.45345 0.263049,5.96768 0.530474,5.96768 0.404741,0 1.617506,-2.66495 4.006072,-8.803 0.977199,-2.51116 1.426866,-3.24056 2.184739,-3.5438 0.27999,-0.11203 1.246809,-0.2694 2.14849,-0.34972 2.871277,-0.25576 3.214844,-0.35394 3.416369,-0.97626 0.07414,-0.22896 0.198271,-1.10053 0.275844,-1.93683 0.418134,-4.50783 2.097625,-8.61785 3.828293,-9.36854 0.377055,-0.16355 1.515333,-0.22937 5.810724,-0.33597 l 5.341813,-0.13257 -0.08208,-1.00191 c -0.190257,-2.32252 -0.347764,-8.572749 -0.23194,-9.204005 0.06675,-0.363802 0.277038,-1.253249 0.467302,-1.976549 0.984928,-3.744243 2.186938,-13.326295 2.448769,-19.520847 0.115202,-2.725507 0.18677,-3.226197 0.448667,-3.138897 0.245195,0.08173 0.342953,0.722386 0.690915,4.52796 0.51073,5.585775 0.748559,7.672829 1.567804,13.758333 0.869675,6.460122 1.043906,8.356133 1.337223,14.552085 0.303874,6.41892 0.33523,6.54844 1.585291,6.54844 1.116187,0 1.681786,-0.78845 2.514875,-3.50573 1.002551,-3.27003 1.439703,-4.50027 1.969547,-5.54273 l 0.544788,-1.07186 0.0397,0.83889 c 0.0456,0.96347 -0.134636,1.59352 -0.964938,3.37322 -1.272886,2.72836 -1.663224,4.86379 -1.015182,5.55377 0.169696,0.18068 0.556649,0.39318 0.859896,0.47223 0.303249,0.0791 0.616862,0.18906 0.69692,0.24448 0.293582,0.2032 0.449752,0.69646 0.449752,1.42054 v 0.74187 l -0.496279,-0.5217 c -0.651137,-0.68449 -0.90877,-0.71749 -5.15289,-0.66018 -4.114517,0.0556 -4.140414,0.0634 -4.140414,1.25142 0,0.40482 0.0886,1.46013 0.196895,2.34513 0.108291,0.885 0.376563,3.75221 0.596159,6.37158 0.523425,6.24354 0.779285,7.73497 1.34566,7.84405 0.40627,0.0782 0.804323,-0.55889 2.436286,-3.89958 2.584418,-5.2904 2.956121,-5.76371 4.857843,-6.18584 l 0.370866,-0.0823 -0.04014,0.69715 c -0.03959,0.6877 -0.04656,0.69818 -0.514197,0.77364 -0.683032,0.1102 -1.364956,0.57673 -1.885407,1.28985 -0.969995,1.3291 -2.998343,5.92538 -2.998343,6.79431 0,0.32566 0.100782,0.55617 0.342074,0.7824 0.315317,0.29563 0.438629,0.31922 1.576475,0.30154 1.832896,-0.0285 2.587167,-0.36102 3.257095,-1.43603 l 0.247324,-0.39688 5.3e-4,1.28985 5.29e-4,1.28984 h 0.836176 c 0.651195,0 0.993859,-0.0805 1.548971,-0.3638 0.664438,-0.33912 0.752438,-0.4433 1.29698,-1.53554 0.43062,-0.86373 0.699545,-1.23981 1.023051,-1.43068 0.581683,-0.34321 0.909955,-1.0605 1.307121,-2.85616 0.527981,-2.3871 0.664715,-2.53117 2.715633,-2.8613 0.895109,-0.14408 1.310277,-0.27611 1.536443,-0.48857 0.376198,-0.35342 0.715521,-1.36973 1.188892,-3.56082 0.573553,-2.65482 0.94451,-3.19507 2.502826,-3.64506 0.436189,-0.12596 2.609077,-0.59686 4.828647,-1.04645 l 4.03557,-0.81744 0.0829,-10.97079 c 0.0456,-6.033928 0.14944,-11.804221 0.23079,-12.822867 0.27292,-3.417424 0.42516,-4.991801 1.20885,-12.501562 0.73915,-7.082965 1.83501,-18.135849 1.86458,-18.806157 0.041,-0.929852 0.27722,1.072607 0.57982,4.915532 0.58007,7.366616 1.03593,11.967448 1.85472,18.719271 0.63417,5.229476 0.83591,7.217881 0.99322,9.789583 0.1058,1.729589 0.37179,16.83457 0.39195,22.25807 l 0.003,0.82683 1.09141,-0.002 c 0.61236,-0.001 1.23657,-0.0753 1.42213,-0.16904 0.46878,-0.23683 0.61353,-0.8033 0.85624,-3.35084 0.3666,-3.8478 0.73671,-6.41656 1.66546,-11.55942 0.75527,-4.182181 1.7458,-9.194979 1.83694,-9.296198 0.0505,-0.05606 0.40464,1.968002 0.78702,4.497916 1.15623,7.649852 1.75308,10.486822 2.20624,10.486822 0.27472,0 0.39462,-0.32459 0.78185,-2.11667 0.44624,-2.06519 0.7115,-2.69345 1.25607,-2.97507 0.22945,-0.11865 1.11413,-0.29214 1.96595,-0.38554 1.67044,-0.18316 2.08852,-0.328508 2.2627,-0.78665 0.16665,-0.438325 0.26041,-1.844013 0.40975,-6.143222 0.0771,-2.219113 0.21837,-4.338566 0.3307,-4.960937 0.79639,-4.412287 0.99402,-5.812719 1.78689,-12.66212 0.29058,-2.510234 0.5862,-4.92125 0.65693,-5.357812 0.0707,-0.436563 0.12905,-0.84832 0.1296,-0.915017 0.003,-0.315486 0.14738,0.08447 0.26358,0.728115 0.20233,1.120786 1.28496,9.302676 1.64575,12.437676 0.56068,4.871871 0.66367,6.933237 0.87836,17.580997 0.12691,6.29388 0.2755,9.47398 0.46584,9.96999 0.12051,0.31402 0.5192,0.26533 0.6778,-0.0828 0.075,-0.16459 0.359,-1.01291 0.63111,-1.88515 0.93947,-3.01143 1.07599,-3.11458 4.25156,-3.21234 2.77195,-0.0853 3.91548,0.0348 4.42684,0.4651 0.59755,0.50279 1.10768,1.63688 1.84572,4.10324 0.74295,2.48271 0.90862,2.94507 1.05532,2.94507 0.13409,0 0.22906,-2.03531 0.4661,-9.98802 0.39004,-13.085677 0.72558,-18.53671 1.52282,-24.738538 0.91501,-7.117929 1.30902,-11.390701 1.67078,-18.11927 0.1272,-2.3657 0.27279,-4.257275 0.32352,-4.203501 0.0507,0.05377 0.4588,3.699412 0.90679,8.101417 0.92217,9.061312 1.53354,14.340962 2.10636,18.190104 0.55953,3.759711 0.67489,5.801426 0.67791,11.997187 0.003,5.591015 0.0878,6.971831 0.45438,7.376931 0.11477,0.12683 0.44758,0.30217 0.73956,0.38965 0.9974,0.29882 1.41387,1.19274 2.69899,5.79312 0.67052,2.40026 1.116,3.51019 1.62029,4.03694 0.65316,0.68226 1.56664,0.59607 1.97468,-0.18632 0.18467,-0.35408 0.24685,-1.00528 0.33212,-3.47834 0.20467,-5.93578 0.594,-10.551071 1.50096,-17.793231 0.62708,-5.007318 0.93195,-7.874793 1.32216,-12.435416 0.33049,-3.862644 0.51493,-5.2241 0.72537,-5.354153 0.1536,-0.09494 0.24766,0.706596 0.40318,3.435924 0.49606,8.705164 1.32003,15.373297 2.57472,20.835937 0.2425,1.055825 0.26334,3.987579 0.0558,7.844959 -0.0814,1.51345 -0.12628,2.7732 -0.0996,2.79945 0.0266,0.0263 2.10227,0.10729 4.61251,0.18011 5.0007,0.14505 5.57772,0.23103 6.40095,0.95385 1.29526,1.13725 2.6399,5.31202 2.98778,9.27633 0.13531,1.5419 0.24408,1.87015 0.70153,2.11693 0.16205,0.0874 1.21026,0.23485 2.32937,0.32762 1.7985,0.1491 2.09369,0.20769 2.54239,0.50463 0.61787,0.40889 1.22423,1.6123 2.23657,4.43883 2.06545,5.76691 3.14053,7.96496 3.56379,7.28632 0.15832,-0.25387 0.25007,-1.9698 0.40726,-7.61705 0.0729,-2.61938 0.18784,-5.11969 0.2554,-5.55625 0.0676,-0.43656 0.36106,-2.28203 0.65222,-4.10104 0.51815,-3.2372 1.55624,-10.37154 1.88152,-12.93079 0.0901,-0.70901 0.18671,-1.26626 0.21463,-1.23832 0.0279,0.0279 0.37198,2.60234 0.76453,5.72089 0.91416,7.26237 1.3153,9.94957 1.75486,11.75551 0.29645,1.21797 0.35474,1.75715 0.35752,3.30729 0.002,1.01865 -0.0467,2.37298 -0.10778,3.00964 l -0.11107,1.15755 1.10327,0.001 c 0.60681,7.6e-4 2.69987,-0.0674 4.65127,-0.15146 3.00634,-0.12951 3.57517,-0.12468 3.72598,0.0317 0.0979,0.10149 0.66286,1.81483 1.25547,3.80742 1.1973,4.02571 1.58646,5.1401 1.9957,5.71484 0.46146,0.64806 0.94905,0.80879 2.83224,0.93365 2.5493,0.16902 3.06309,0.42491 3.68378,1.83464 0.32027,0.72746 1.14468,3.44476 1.6853,5.55491 0.6838,2.66907 0.68481,2.68797 0.74657,13.96112 l 0.058,10.58768 2.47146,0.42932 c 5.08375,0.88311 6.85849,1.25431 6.48333,1.35604 -0.19458,0.0528 -2.96278,0.0355 -6.15156,-0.0383 -3.1888,-0.0738 -22.97257,-0.14658 -43.96395,-0.16174 -93.489493,0.26898 -77.45748,-0.0332 -95.349224,-0.41856 l 18.208054,0.50106 -22.47446,-0.19685 21.39017,0.19845 -58.531055,0.28505 c -20.427487,0.0481 -38.6291664,0.11748 -40.4481768,0.15423 -2.2106493,0.0447 -3.1976271,0.0242 -2.9765625,-0.0617 z" - id="path889" - inkscape:label="sig_city" - clip-path="url(#clipPath2867)" - sodipodi:nodetypes="cssssssssscssssssssssssssssscssssssssssscssscsscscssscsscssssssscccsssssssssscssssssscccsssssssssssssscsssssssssssssssscsssssssssssscssssssssssssssscsccsssssssscssscsccccccc" - transform="matrix(1,0,0,0.9974191,-13.189295,0.54804504)" /><g - inkscape:groupmode="layer" - id="layer8" - inkscape:label="CastleFill" - style="display:inline" - transform="translate(-6.7520832,-1.5246326)"><rect - style="display:inline;fill:#000000;stroke:#000000;stroke-width:2.37143;stroke-dasharray:none" - id="rect1" - width="35.074867" - height="74.894661" - x="59.792244" - y="84.462715" - ry="0" /><rect - style="fill:#000000;stroke:#000000;stroke-width:1.96206;stroke-dasharray:none" - id="rect2" - width="17.957724" - height="5.3187361" - x="55.964165" - y="99.647202" - transform="matrix(0.99992303,0.01240712,-0.02014741,0.99979702,0,0)" /><rect - style="display:inline;fill:#000000;stroke:#000000;stroke-width:2.59431;stroke-dasharray:none" - id="rect2-5" - width="13.975468" - height="11.948432" - x="56.187912" - y="100.5384" - transform="matrix(0.99935823,0.03582086,-0.00697568,0.99997567,0,0)" /><g - id="g113" - inkscape:label="wall" - style="fill:#642a23;fill-opacity:1;stroke-width:0;stroke-dasharray:none" - transform="translate(-6.2125015,0.73088253)"><path - style="fill:url(#linearGradient117);fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 67.862846,100.3003 c -4.049175,-0.10841 -6.104713,-0.28672 -6.104713,-0.529647 0,-0.33079 4.673045,-0.81327 11.659913,-1.203873 5.619677,-0.31416 7.552597,-0.4762 7.790977,-0.65317 0.20341,-0.15102 -0.49984,-0.24002 -2.570303,-0.32535 -1.393857,-0.0574 -1.559945,-0.0945 -1.954277,-0.43474 -0.408692,-0.35273 -0.424916,-0.43418 -0.314012,-1.57669 0.419408,-4.32065 0.377861,-4.64897 -0.59295,-4.68521 -0.516361,-0.0192 -1.450824,-0.48498 -1.450824,-0.72303 0,-0.0504 0.310825,-0.0299 0.690717,0.0453 0.379891,0.0752 0.82428,0.0989 0.987525,0.0523 0.452287,-0.12892 0.354572,-0.573 -0.196943,-0.895228 -0.433205,-0.253108 -0.669944,-0.282393 -1.930167,-0.238897 -1.67234,0.05771 -2.670118,0.359174 -3.064877,0.925895 -0.25864,0.3713 -0.253526,0.38191 0.184037,0.38191 0.346065,0 0.474102,0.0847 0.554077,0.36656 0.05721,0.20161 0.139379,0.48652 0.182576,0.63314 0.04323,0.14663 -0.05892,1.55622 -0.226953,3.13245 l -0.305528,2.86585 -0.232635,-0.99972 c -0.127934,-0.54984 -0.432755,-2.013 -0.677341,-3.25146 -0.244584,-1.23845 -0.487024,-2.28315 -0.538748,-2.32156 -0.05172,-0.0384 -0.0941,0.43505 -0.09421,1.05209 -2.41e-4,1.79122 -0.334457,3.92916 -0.740043,4.73391 -0.389606,0.77305 -1.110344,1.25175 -1.886191,1.25278 -0.791256,8.4e-4 -0.8467,-0.23185 -0.722919,-3.0364 0.122592,-2.77741 -0.01678,-4.10842 -0.455461,-4.34854 -0.537791,-0.29441 -0.74755,-0.839098 -0.826105,-2.145174 -0.170618,-2.836517 0.293253,-2.990225 9.837829,-3.260152 2.616947,-0.07398 5.505456,-0.169149 6.418916,-0.211399 l 1.66082,-0.07691 v 7.805795 7.8058 l -5.790472,-0.0215 c -3.184771,-0.0118 -7.366051,-0.0637 -9.291728,-0.11531 z" - id="path257" - clip-path="url(#clipPath1359)" /><path - style="fill:url(#linearGradient119);fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 97.757843,98.16983 c -0.5433,-0.15576 -1.10447,-0.66126 -1.55432,-1.40008 -0.33833,-0.55572 -0.40424,-0.89447 -0.40172,-2.06442 10e-4,-0.76978 0.0691,-1.91383 0.14996,-2.54233 0.16616,-1.29164 -0.004,-1.7231 -0.684,-1.7231 -0.57628,0 -0.64283,-0.09 -0.40807,-0.55184 0.18983,-0.373293 0.16162,-0.431821 -0.38146,-0.792034 -0.50381,-0.334182 -0.73138,-0.388871 -1.61593,-0.38827 -2.82804,0.0029 -4.34881,2.135854 -4.35225,6.107204 -0.001,2.08896 -0.45378,2.68958 -2.02387,2.68958 -1.15014,0 -1.65797,-0.236 -1.94455,-0.90367 -0.1439,-0.33521 -0.23891,-2.2834 -0.29322,-6.01145 l -0.0803,-5.515521 3.11413,0.05874 c 2.23381,0.04204 3.26641,0.11383 3.65279,0.253913 0.50895,0.184443 0.53534,0.232979 0.4786,0.880216 -0.0485,0.554136 0.0114,0.738067 0.3142,0.962827 0.75134,0.55777 1.34333,0.242809 1.51027,-0.803537 0.0616,-0.386116 0.22497,-0.785899 0.36304,-0.888405 0.3386,-0.251365 2.17868,-0.231926 4.59036,0.04849 2.783627,0.323662 2.708677,0.288077 2.707777,1.284833 -0.001,1.169129 -0.30941,4.232284 -0.64115,6.368134 -0.600677,3.86735 -1.312537,5.27129 -2.500237,4.93076 z" - id="path258" - clip-path="url(#clipPath1358)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 93.821493,99.597633 c -3.77262,-0.12759 -7.60689,-0.51484 -7.30651,-0.73786 0.53667,-0.398413 11.72376,0.008 15.080747,0.54617 1.18035,0.1897 0.0797,0.26839 -3.559657,0.25452 -1.46151,-0.006 -3.35802,-0.0338 -4.21458,-0.0627 z" - id="path261" - clip-path="url(#clipPath1355)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 74.28177,106.02374 c -5.083119,-0.0859 -9.58817,-0.30196 -13.046533,-0.62559 -1.73232,-0.16211 -2.040004,-0.22277 -1.449468,-0.28572 1.190842,-0.12702 7.830004,-0.34097 14.002237,-0.45132 3.226716,-0.0576 4.930571,-0.0573 7.002447,8.5e-4 3.33953,0.0946 4.17257,0.17782 4.72353,0.47155 0.53592,0.28572 0.77165,0.25517 0.882,-0.11427 0.0745,-0.24898 0.12774,-0.29434 0.44886,-0.38172 0.86888,-0.23638 3.34698,-0.44249 6.82412,-0.56761 2.42079,-0.0872 9.264947,-0.0869 11.181077,2.5e-4 2.49835,0.11368 4.36983,0.33502 4.5375,0.53639 0.51116,0.61403 -6.73204,1.15476 -18.676997,1.39425 -2.86905,0.0576 -13.492975,0.0719 -16.428773,0.0224 z" - id="path264" - clip-path="url(#clipPath1352)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 80.521133,228.79568 c -0.69125,-0.1323 -1.55457,-0.24531 -1.918467,-0.25128 -1.995033,-0.0328 -2.082278,-0.25517 -2.305438,-5.87586 -0.246479,-6.20784 -0.602802,-7.04204 -3.412079,-7.98806 -3.201852,-1.07824 -6.115695,1.2312 -6.799141,5.38879 -0.108463,0.65984 -0.197436,2.19199 -0.197711,3.40484 l -3.57e-4,2.20517 3.187017,0.5649 c 1.851348,0.32814 3.669719,0.73831 4.338779,0.97866 l 1.151766,0.41381 -0.493342,0.19189 c -0.43094,0.16762 -0.577945,0.16676 -1.162206,-0.008 -0.367873,-0.10914 -1.609638,-0.32371 -2.759484,-0.47655 -2.569042,-0.34145 -3.755114,-0.65169 -3.988721,-1.04332 -0.27394,-0.45921 -1.008494,-0.60734 -2.687505,-0.54191 -1.371227,0.0533 -1.617016,0.10664 -2.626331,0.56918 -0.920812,0.42195 -1.193108,0.48946 -1.573381,0.39019 -1.108631,-0.28946 -1.60306,-1.98282 -1.284092,-4.39786 0.484767,-3.67039 1.700641,-4.66431 2.510572,-2.05226 0.12503,0.40323 0.268249,0.78583 0.318266,0.85021 0.218047,0.28074 0.394481,-0.38772 0.491616,-1.86261 0.111065,-1.6863 -0.04541,-2.86402 -0.391891,-2.94977 -0.115902,-0.0287 -0.439035,0.23627 -0.71812,0.58877 l -0.507578,0.64084 -0.05191,-1.24763 c -0.08047,-1.93489 0.568541,-3.21774 1.627888,-3.21774 0.224909,0 0.5885,-0.0933 0.807976,-0.2075 0.577589,-0.30033 0.524734,-1.15874 -0.215974,-3.50739 -1.287356,-4.08198 -1.471367,-5.39982 -0.821379,-5.88236 0.701434,-0.52072 1.667294,-0.22294 3.183294,0.98142 1.246491,0.99028 2.168062,1.96793 4.352116,4.61698 1.767188,2.14345 3.546745,3.87345 4.456365,4.33231 0.72004,0.36325 1.594606,0.42746 2.528802,0.1857 0.703547,-0.18207 0.921386,-0.46907 0.918559,-1.21019 -0.0039,-1.05128 -0.848024,-2.25808 -4.707094,-6.73027 -1.086565,-1.2592 -1.953777,-2.33889 -1.927137,-2.3993 0.05509,-0.12497 4.899901,-2.17454 4.988215,-2.11021 0.03165,0.023 0.25351,1.47153 0.493057,3.2189 0.239543,1.74735 0.469871,3.23771 0.511844,3.31189 0.04197,0.0742 0.08268,-1.03877 0.09049,-2.47323 0.01975,-3.63119 0.374419,-4.94433 1.643396,-6.08436 1.140466,-1.02458 0.99246,-1.31239 -1.314179,-2.55564 -0.56737,-0.30581 -1.165878,-0.70816 -1.330011,-0.89411 -0.283369,-0.32108 -0.27943,-0.35224 0.07811,-0.61768 0.553414,-0.41082 3.109783,-0.5193 3.652096,-0.15495 0.333554,0.22409 0.359124,0.34511 0.252084,1.1931 -0.142736,1.13083 0.0721,1.37587 1.02799,1.17234 1.09811,-0.23381 1.79698,-1.6349 1.21688,-2.43959 -0.31933,-0.44294 -1.58772,-0.68399 -4.652013,-0.88402 -4.499903,-0.29374 -4.654973,-0.39557 -5.162315,-3.38991 -0.16758,-0.98903 -0.37222,-1.85524 -0.454759,-1.92488 -0.08253,-0.0696 -0.153609,0.50019 -0.157949,1.2663 -0.01104,1.95057 -0.243795,3.28323 -0.62855,3.59885 -0.231332,0.18978 -0.552335,0.26003 -1.188079,0.26003 -1.018591,0 -3.99159,-0.31765 -5.746701,-0.614 l -1.226751,-0.20714 v -0.49378 c 0,-0.27158 0.216608,-1.42145 0.48135,-2.55524 0.661431,-2.83267 0.701926,-6.83147 0.098,-9.67658 -0.72209,-3.40175 -0.595039,-3.80058 2.396991,-7.52411 3.061263,-3.80972 4.43168,-6.12132 3.628977,-6.12132 -0.345589,0 -2.453385,1.68337 -3.838727,3.06579 -6.088051,6.07511 -7.779882,7.64223 -8.045487,7.45247 -0.06057,-0.0432 0.345087,-0.6004 0.901477,-1.23804 1.27172,-1.45744 1.40588,-2.02455 0.720652,-3.04635 -0.88938,-1.32622 -1.049999,-1.83779 -1.144615,-3.64546 -0.15499,-2.96123 0.509316,-4.67879 2.400202,-6.20574 1.281983,-1.03524 1.060512,-1.14037 -0.949778,-0.45084 -2.7972,0.95945 -2.761061,0.86093 -2.740799,7.47125 0.01501,4.89046 -0.09379,6.2256 -0.559957,6.87223 -0.580583,0.80535 0.420499,2.35413 2.949751,4.56357 1.418775,1.23936 1.728432,1.88864 1.723356,3.61333 -0.0039,1.3303 -0.277879,3.00394 -0.521304,3.18465 -0.08778,0.0652 -0.418186,-0.24878 -0.758017,-0.72031 -0.818944,-1.13632 -1.063241,-1.22847 -1.817446,-0.6858 -0.328657,0.23649 -0.644894,0.42998 -0.702752,0.42998 -0.05786,0 -0.161344,-0.38928 -0.229977,-0.86502 -0.06864,-0.47577 -0.206774,-0.90263 -0.306988,-0.94862 -0.100237,-0.046 -0.538267,0.17581 -0.973441,0.49289 -0.435174,0.31706 -0.791227,0.52766 -0.791227,0.46801 0,-0.0597 0.125461,-0.46792 0.278791,-0.90722 0.15333,-0.43929 0.254333,-1.0478 0.224438,-1.35219 -0.04841,-0.49287 -0.108412,-0.5581 -0.548187,-0.59566 -0.271609,-0.0231 -0.572822,-0.15174 -0.669365,-0.28568 -0.364013,-0.50493 -0.532117,-2.92733 -0.620125,-8.93613 -0.04993,-3.40902 -0.172176,-6.79805 -0.271663,-7.53116 -0.442833,-3.26341 -1.267445,-4.36184 -3.4387,-4.58059 -0.998609,-0.10049 -1.419,-0.21996 -1.419,-0.4029 0,-0.0806 13.276729,-0.0435 13.411028,0.0375 0.07734,0.0466 -0.325436,4.69352 -0.584633,6.74538 -0.152798,1.20965 -0.431865,2.76648 -0.620127,3.45962 -0.188261,0.69316 -0.297091,1.29299 -0.241837,1.33295 0.172768,0.12497 1.162504,-0.82783 1.631268,-1.57045 0.565527,-0.89591 1.232432,-3.31096 1.389813,-5.03293 0.224836,-2.46003 0.650364,-5.56904 1.448847,-10.58561 1.614918,-10.14604 2.680126,-18.13474 3.4836,-26.12585 0.86538,-8.60682 1.085488,-12.34936 1.087724,-18.49468 l 0.0018,-4.69865 4.533646,8.4e-4 c 6.889878,0.003 10.824778,0.26927 11.036588,0.74965 0.0691,0.15674 -0.33791,0.5226 -0.67388,0.60574 -1.2889,0.31896 -1.15758,19.08038 0.2942,42.03084 0.15303,2.41929 0.29226,5.92829 0.30939,7.79774 0.0402,4.39674 -0.0752,4.6325 -1.68411,3.43809 -1.25712,-0.93326 -1.39773,-1.82046 -1.06621,-6.72717 0.28471,-4.21352 0.12374,-6.09698 -0.62474,-7.31185 -0.71531,-1.16094 -1.64649,-3.58207 -2.342324,-6.09008 -0.891704,-3.21405 -0.969624,-3.19049 -0.537576,0.16245 0.297135,2.30592 1.27101,13.01221 1.41861,15.59551 0.0934,1.63429 0.0836,1.6024 -0.512331,-1.6662 -1.197627,-6.56907 -3.017345,-14.65591 -3.359366,-14.92904 -0.103893,-0.0829 -0.13052,0.0679 -0.07052,0.3999 0.05303,0.29323 0.221063,1.79281 0.373436,3.33236 0.481956,4.86975 0.817454,7.93765 1.085973,9.93048 0.582837,4.32554 0.979684,7.63972 0.920093,7.68395 -0.03477,0.0258 -1.14731,0.1978 -2.47233,0.38215 -4.751192,0.66118 -6.240138,0.94662 -7.01378,1.34464 -1.28998,0.66364 -3.770696,3.00793 -4.781559,4.51858 -1.014338,1.51584 -0.898958,2.07351 0.227714,1.10063 0.606521,-0.52373 0.987488,-0.93167 2.864734,-3.06758 0.933002,-1.06155 1.378877,-1.12968 2.313641,-0.35341 1.047514,0.86991 1.263036,1.33445 1.275794,2.74983 l 0.01117,1.22927 1.191796,0.90346 c 1.292406,0.97973 1.591232,1.31741 1.591232,1.79811 0,0.48927 0.48938,0.90484 1.0655,0.90484 0.773207,0 1.008507,-0.29553 0.748404,-0.94003 -0.118009,-0.29243 -0.165665,-0.59044 -0.105886,-0.66226 0.05979,-0.0719 0.86489,-0.13052 1.789134,-0.13052 1.984841,0 2.248469,-0.0567 2.248469,-0.4841 0,-0.3946 -0.48363,-0.55097 -2.19864,-0.71083 -1.448631,-0.13508 -2.083431,-0.40385 -2.228906,-0.94384 -0.141491,-0.52518 -0.391548,-0.49681 -1.228288,0.13932 -0.385716,0.29324 -0.763632,0.53317 -0.839807,0.53317 -0.07617,0 -0.271932,-0.19155 -0.435013,-0.42567 -0.29219,-0.41947 -0.289143,-0.43038 0.209047,-0.74852 0.465259,-0.29709 0.621857,-0.31829 1.964385,-0.26599 1.193953,0.0465 1.619709,0.12613 2.344935,0.4387 2.002993,0.86315 2.530874,1.01002 4.168259,1.15967 2.58279,0.23609 5.68673,-0.19011 6.15937,-0.84572 0.46139,-0.64003 -0.44229,-1.15494 -1.60587,-0.91499 -2.5425,0.52428 -4.00906,-0.56377 -2.46739,-1.83061 0.33559,-0.27579 0.92137,-0.6312 1.30172,-0.78983 l 0.69155,-0.28841 1.3466,1.20707 c 3.427,3.07183 3.63166,3.33136 2.80998,3.56328 -0.23208,0.0655 -1.10064,0.15874 -1.93017,0.2072 -1.92826,0.11265 -3.08404,0.35254 -4.17325,0.86632 -1.23226,0.58125 -2.57307,0.81176 -4.14736,0.71297 -1.8336,-0.11501 -2.470375,0.22321 -1.902617,1.01079 0.442832,0.61428 1.632177,0.65293 3.635417,0.11807 1.81861,-0.4855 3.8293,-0.22227 4.52106,0.59189 0.14502,0.17062 0.0914,0.29658 -0.23697,0.55594 -0.98415,0.77772 -2.64785,0.78763 -4.31069,0.0256 -1.482856,-0.67948 -1.85185,-0.61197 -1.076027,0.19689 0.204237,0.21291 0.324637,0.38714 0.267557,0.38714 -0.0571,0 -0.786421,-0.33728 -1.620792,-0.74949 -0.910694,-0.44992 -1.627636,-0.71798 -1.79374,-0.67065 -0.223795,0.0639 -0.276706,0.3345 -0.276706,1.41596 0,1.20812 0.03179,1.33713 0.329423,1.33713 0.181175,0 0.550194,-0.18396 0.820034,-0.40877 0.585708,-0.48803 0.740085,-0.42799 1.512564,0.58815 1.172127,1.54184 2.684247,1.23289 1.936747,-0.39573 -0.2005,-0.43685 -0.2166,-0.58814 -0.0586,-0.55051 0.26592,0.0631 1.1954,1.28456 1.20122,1.57828 0.002,0.11632 0.32537,0.68644 0.7179,1.2668 0.50939,0.75312 0.76482,1.34129 0.89219,2.05443 0.24887,1.39335 0.63847,11.60101 0.63847,16.728 0,3.92489 -0.0242,4.26248 -0.30243,4.22829 -0.23384,-0.0287 -0.33324,0.10723 -0.43823,0.59983 -0.20631,0.96775 -0.15574,8.15809 0.10724,15.23277 0.27103,7.29195 0.20651,10.47642 -0.22752,11.23011 -0.32356,0.56187 -0.29045,0.5581 -2.01189,0.22883 z m 1.15134,-10.60725 c 0.016,-3.61939 -0.0776,-4.85054 -0.36777,-4.85054 -0.18956,0 -0.20973,9.51185 -0.0205,9.65384 0.25864,0.19405 0.37265,-1.2164 0.38826,-4.8033 z m -2.24785,0.27041 c 0.17216,-0.33301 0.12357,-5.75836 -0.0738,-8.25338 -0.48068,-6.07464 -1.433081,-9.94985 -1.433227,-5.83165 -9.7e-5,2.76129 0.733622,12.85333 1.008717,13.87444 0.12335,0.45796 0.32615,0.54367 0.49832,0.21059 z m -1.915281,-26.08158 c 1.524721,-1.16137 2.304321,-3.08115 1.822781,-4.48859 -0.44633,-1.30449 -0.736905,-1.07634 -1.952752,1.53337 -1.584106,3.40014 -1.547482,4.23291 0.129968,2.95522 z m -1.028702,-4.39874 c -0.0018,-0.81888 -0.585585,-4.67019 -0.832856,-5.49347 -0.368221,-1.22599 -1.458695,-2.95457 -2.300013,-3.6459 -0.368054,-0.30244 -1.109353,-0.70976 -1.647325,-0.90517 -0.832252,-0.30228 -1.135896,-0.34464 -2.035938,-0.28406 -1.93442,0.13024 -4.148639,1.36896 -4.428814,2.47767 -0.1275,0.50451 0.501792,2.11534 0.905213,2.31714 0.300132,0.15017 2.058928,0.12013 2.467208,-0.0419 0.503898,-0.20019 1.039206,-1.13855 1.058444,-1.85536 0.01795,-0.66979 -0.06733,-0.75331 0.856527,0.83879 0.58882,1.01473 1.22111,1.35303 2.48772,1.33101 1.371,-0.0238 1.653605,0.19225 1.890467,1.44536 0.228635,1.20962 0.06378,2.3953 -0.391136,2.81286 -0.307426,0.28219 -0.491434,0.30651 -2.636031,0.34846 -1.268043,0.0249 -2.825045,0.003 -3.459998,-0.0465 l -1.154466,-0.0916 0.776606,-0.29027 c 2.107421,-0.78768 1.766576,-3.01699 -0.495717,-3.24226 -0.64535,-0.0643 -0.804024,-0.0242 -1.268045,0.32031 -0.901228,0.66905 -1.418455,2.66124 -0.856296,3.29818 0.702512,0.79596 1.959184,0.96545 7.339402,0.98985 l 3.725668,0.017 z m -3.037924,-1.55597 c 0.874969,-0.64955 0.654744,-1.94838 -0.398953,-2.3529 -1.055781,-0.40531 -2.147049,-0.0444 -2.467007,0.81583 -0.538655,1.44829 1.507421,2.54565 2.86596,1.53707 z m 6.797747,-1.84446 c 0.90688,-1.47764 0.47024,-5.67223 -0.62289,-5.98364 -0.46783,-0.13331 -0.76979,0.2254 -0.970808,1.1531 -0.253096,1.16806 -0.228923,2.38687 0.07222,3.64107 0.380148,1.58325 0.988108,2.05853 1.521478,1.18947 z m -9.527816,-8.4435 c 1.506997,-0.39001 1.166427,-1.97223 -0.598858,-2.78217 -0.822409,-0.37734 -1.288521,-0.26395 -1.526153,0.37122 -0.415254,1.10995 -0.127461,2.07054 0.715149,2.38704 0.549758,0.2065 0.694756,0.20897 1.409862,0.0238 z m 1.723527,-15.06021 c -0.0029,-0.39668 -0.230785,-1.43721 -0.50649,-2.31228 -0.979768,-3.10978 -1.046119,-5.66782 -0.179302,-6.91225 l 0.293673,-0.42159 0.167677,0.33029 c 0.09221,0.18167 0.235838,1.70991 0.319137,3.3961 0.175355,3.54924 0.482893,4.93817 1.03714,4.68386 0.355963,-0.16331 0.418458,-1.08127 0.20861,-3.064 -0.163158,-1.54161 -0.164224,-2.15385 -0.0046,-2.58624 0.115089,-0.3116 0.283815,-0.56652 0.374937,-0.56652 0.361724,0 0.739843,1.50837 0.918903,3.66562 0.206143,2.48344 0.337902,3.1546 0.633647,3.22779 0.299846,0.0743 0.42254,-0.63717 0.42254,-2.44994 0,-2.63815 -0.673715,-6.35026 -1.476058,-8.13292 l -0.409232,-0.90923 h -0.837585 c -0.585777,0 -1.001171,-0.0896 -1.381709,-0.29852 -0.299272,-0.16419 -0.669079,-0.26293 -0.821803,-0.21942 -0.399739,0.11383 -0.938656,1.53213 -1.190716,3.13357 -0.558449,3.54807 0.503441,9.55736 1.787064,10.11312 0.503667,0.21807 0.649397,0.0648 0.644042,-0.67744 z m -3.167641,-0.53166 c 0.121665,-1.21405 -0.690362,-5.72548 -1.348326,-7.49108 -0.508014,-1.36325 -0.948082,-1.14276 -0.952367,0.47715 -0.0027,0.94252 0.662033,3.8536 1.551821,6.79805 0.311384,1.03042 0.657268,1.13012 0.748872,0.21588 z m 2.805855,-15.48517 c 0.910274,-1.47307 1.713618,-3.33214 1.713618,-3.96556 0,-0.49504 -0.103233,-0.64485 -0.801481,-1.16323 -0.440813,-0.32725 -0.905401,-0.56882 -1.032414,-0.53686 -0.233335,0.0587 -0.240314,0.20607 -0.110291,2.32821 0.0586,0.95617 0.05553,0.96344 -0.569522,1.35175 -0.608989,0.37831 -0.628062,0.41868 -0.616646,1.30469 0.02484,1.92909 0.503358,2.1591 1.416733,0.681 z m -1.701981,-4.55612 c 0.462089,-1.03085 1.179128,-1.80033 2.049978,-2.1999 0.744092,-0.34141 1.243314,-0.31923 1.337991,0.0595 0.124763,0.49895 0.394883,0.59836 1.620679,0.59633 2.130866,-0.003 4.618508,-0.59872 5.059578,-1.21054 0.26181,-0.36317 0.10278,-0.80087 -0.47657,-1.31206 -0.59148,-0.52186 -0.9233,-1.33986 -1.163231,-2.86763 -0.200255,-1.27512 -0.04965,-4.71044 0.197981,-4.51617 0.0779,0.0613 0.35456,0.7104 0.61477,1.44279 0.26022,0.73242 0.54619,1.38592 0.63551,1.45222 0.55487,0.41193 0.42657,-2.75022 -0.16138,-3.97715 -0.4655,-0.97143 -0.85892,-1.29535 -2.053057,-1.69044 -0.709166,-0.23463 -1.261146,-0.30712 -2.365871,-0.31068 -2.169929,-0.008 -3.331827,0.48291 -3.612038,1.52303 -0.142123,0.52751 0.14157,0.52869 1.253461,0.004 0.467153,-0.21993 0.891073,-0.39987 0.942044,-0.39987 0.05097,0 -0.111002,0.19823 -0.35995,0.44053 -0.673699,0.65572 -1.176544,1.58705 -1.324995,2.45407 l -0.132019,0.771 -0.593677,-0.76645 c -0.326519,-0.42154 -0.666999,-0.76645 -0.756624,-0.76645 -0.342736,0 -0.372581,0.70872 -0.09673,2.29685 0.336075,1.93481 0.352485,2.51868 0.09049,3.21918 -0.211606,0.56578 -1.659358,1.8152 -2.103335,1.8152 -0.151062,0 -0.222979,0.0384 -0.159785,0.0853 0.06319,0.0469 -0.114277,0.30184 -0.394351,0.56652 -0.675981,0.63877 -1.039331,1.18341 -1.191685,1.78633 -0.142024,0.56207 0.03792,1.69402 0.269335,1.69402 0.08403,0 0.45919,-0.54886 0.833734,-1.21969 0.775181,-1.38842 0.820162,-1.36458 1.045565,0.55376 0.07304,0.62149 0.170696,1.17551 0.217038,1.23119 0.206831,0.24845 0.419735,0.0413 0.777132,-0.75595 z m 3.874442,-17.91355 c 0.07225,-0.7096 0.08051,-2.36988 0.01834,-3.6895 -0.111573,-2.36917 -0.973391,-11.67622 -1.089153,-11.76216 -0.137328,-0.10196 -0.314954,11.67955 -0.201684,13.37741 0.123252,1.84748 0.374285,3.44565 0.580056,3.69283 0.258055,0.30999 0.570413,-0.42019 0.692422,-1.61858 z m 4.238158,-4.03413 c 0.571456,-0.22707 1.068756,-1.23328 1.169156,-2.36562 0.0498,-0.5621 0.17117,-1.21834 0.26964,-1.4583 0.17786,-0.43344 0.18483,-0.43572 1.0615,-0.34939 l 0.88245,0.087 v -0.45282 c 0,-0.33081 -0.19076,-0.62422 -0.70799,-1.08887 -0.76952,-0.69133 -1.35631,-1.70841 -1.70215,-2.95029 -0.12135,-0.43562 -0.30853,-0.81381 -0.41603,-0.8404 -0.235339,-0.0581 -0.353472,0.83669 -0.497013,3.76513 -0.113731,2.32036 -0.333722,3.78476 -0.657825,4.37898 -0.190649,0.34954 -0.262705,0.37353 -0.896177,0.29833 -0.868831,-0.10314 -0.928676,0.16375 -0.164009,0.7314 0.55303,0.41055 1.055001,0.48469 1.658456,0.24495 z m -1.426524,-2.55455 c 0.329345,-0.42804 0.317765,-5.57833 -0.0154,-6.80307 -0.440901,-1.6213 -1.303252,-1.88625 -1.784318,-0.54824 -0.324599,0.90284 -0.176893,5.02302 0.218387,6.09176 0.545754,1.47558 1.084707,1.90489 1.581228,1.25955 z" - id="path265" - clip-path="url(#clipPath1351)" /><path - style="fill:#421c18;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 84.610033,228.70515 c -0.28675,-0.32566 -0.31667,-0.73269 -0.30134,-4.09881 0.01,-2.05552 0.10901,-5.11689 0.22157,-6.80307 0.44291,-6.63913 0.6396,-14.51454 0.64917,-25.99251 0.0113,-13.38915 0.0627,-12.78706 -1.25089,-14.56143 -0.33968,-0.45878 -0.59078,-0.83414 -0.55802,-0.83414 0.0328,0 0.30831,0.0645 0.61231,0.14298 0.7264,0.18799 1.29637,-0.0264 1.29637,-0.48758 0,-0.82617 0.95438,-1.45589 1.73588,-1.14538 0.55998,0.22249 1.00698,0.66844 0.89234,0.89023 -0.0597,0.11544 -0.51058,0.34828 -1.00195,0.51729 -1.05162,0.36172 -1.44673,0.585 -1.44673,0.81758 0,0.46175 1.37671,0.29823 4.06953,-0.48339 1.05393,-0.3059 2.25321,-0.58441 2.66504,-0.61886 0.65267,-0.0547 0.79821,-0.0161 1.13371,0.30062 0.50413,0.47579 0.8541,0.356 0.97895,-0.33502 0.11133,-0.61524 0.71955,-1.19807 1.25062,-1.19807 1.03205,0 1.32947,-0.63852 0.6709,-1.44042 -0.79479,-0.96783 -3.81502,-2.82502 -4.59406,-2.82502 -0.4917,0 -0.52198,0.1383 -0.21606,0.98748 0.1706,0.47353 0.16621,0.63334 -0.022,0.80169 -0.51591,0.46148 -3.06387,0.10854 -3.06387,-0.42447 0,-0.2591 0.51886,-0.6587 1.66083,-1.27908 0.72418,-0.39342 0.86129,-0.8193 0.44251,-1.37438 -0.12004,-0.15895 -1.30882,-1.20275 -2.64198,-2.31951 -1.33316,-1.1168 -2.50893,-2.1264 -2.61282,-2.2436 -0.13284,-0.14983 -0.0935,-2.68433 0.1327,-8.54399 0.36483,-9.45127 0.49484,-19.56937 0.25503,-19.84566 -0.12758,-0.14699 -0.20437,-0.12335 -0.37668,0.11559 -0.20118,0.2791 -0.22471,0.25554 -0.33359,-0.33422 -0.31398,-1.70062 -0.51202,-9.04693 -0.41493,-15.39224 0.10996,-7.18074 0.24442,-9.10555 0.83503,-11.94633 0.19626,-0.94403 0.35771,-1.76634 0.35876,-1.82737 10e-4,-0.0611 2.5672,-0.07 5.70257,-0.0199 5.66981,0.0906 9.037297,-0.0269 9.444527,-0.32913 0.26645,-0.19779 0.58403,-0.17351 0.91162,0.0696 0.49944,0.37078 0.33775,0.82675 -0.51012,1.4385 -0.6352,0.45831 -0.82209,0.70178 -0.94266,1.22801 -0.249127,1.08768 -0.12034,6.36382 0.278,11.3866 0.63484,8.00482 0.75424,10.11986 0.9219,16.32865 0.089,3.29906 0.21516,6.16413 0.28016,6.36683 0.13814,0.43041 0.41759,0.60049 0.60906,0.37048 0.0979,-0.11734 0.16577,-0.10108 0.24887,0.0597 0.21192,0.41001 0.47002,3.96826 0.65658,9.05231 0.39006,10.62887 1.72254,23.89135 3.87165,38.53501 1.65787,11.29638 2.87605,17.70522 5.37138,28.25853 0.79179,3.3486 0.98583,5.42431 0.56372,6.03029 -0.50747,0.72852 -2.52132,0.90391 -3.27547,0.28526 -0.57503,-0.47172 -0.79043,-1.79206 -0.91017,-5.57873 -0.0637,-2.01406 -0.1786,-3.54362 -0.25512,-3.39903 -0.0768,0.1446 -0.35488,1.82245 -0.61829,3.72856 -0.26342,1.90613 -0.53297,3.6695 -0.59904,3.91862 -0.0791,0.29923 -0.2587,-0.69615 -0.52849,-2.93249 -0.76933,-6.37789 -1.74518,-9.05155 -3.80567,-10.42684 -1.17477,-0.78413 -2.30707,-1.06707 -4.005377,-1.0008 -1.54701,0.0603 -2.65068,0.42049 -3.77514,1.23181 -1.11973,0.80788 -1.7374,1.67159 -2.39129,3.34365 l -0.57381,1.46732 -0.0128,-1.36126 c -0.016,-1.76294 0.35243,-2.53872 1.72776,-3.64157 1.41142,-1.13175 3.20434,-1.77783 5.11301,-1.84247 1.660267,-0.0563 2.655937,0.15811 3.910437,0.84176 1.12119,0.61102 1.44603,0.61363 1.44603,0.0117 0,-0.37697 -0.13044,-0.53807 -0.72093,-0.89035 -0.56557,-0.33742 -0.79452,-0.60698 -1.06237,-1.25076 -0.52156,-1.25366 -1.04457,-3.78695 -1.54055,-7.46239 -0.49132,-3.6406 -0.5921,-4.16743 -0.81705,-4.27063 -0.22718,-0.10415 -0.31135,0.52361 -0.521337,3.89016 -0.10575,1.69685 -0.31727,3.8408 -0.46981,4.76429 -0.15254,0.9235 -0.24781,1.87447 -0.21169,2.1133 0.0618,0.40833 0.10955,0.36667 0.80257,-0.69881 0.851627,-1.30939 1.028827,-1.24526 0.921447,0.3335 -0.0932,1.36877 -0.41835,1.60822 -2.556537,1.88214 -2.7767,0.35577 -4.32319,1.0588 -6.23475,2.83442 -2.50847,2.3301 -2.62778,3.01293 -1.85419,10.6121 0.30582,3.00432 0.32901,4.87635 0.0692,5.57142 -0.21172,0.56604 -0.66175,0.7601 -1.76262,0.7601 -0.37059,0 -1.2743,0.11866 -2.00827,0.26344 -1.66921,0.32956 -1.53725,0.33586 -1.91385,-0.0917 z m 3.81127,-9.43131 c 0,-1.71304 -0.0605,-3.15961 -0.13464,-3.21455 -0.32438,-0.24073 -0.40749,0.25945 -0.46284,2.78619 -0.0645,2.9406 0.0418,3.9557 0.38733,3.69909 0.14854,-0.11031 0.21019,-1.0694 0.21019,-3.27073 z m 1.068,-11.4677 c 0.17767,-0.58648 0.42237,-1.20988 0.54375,-1.38533 l 0.22067,-0.31897 0.24979,0.41895 c 0.27103,0.4545 0.59835,0.54277 0.77141,0.20796 0.32842,-0.63537 0.5085,-3.00609 0.40904,-5.38523 -0.11476,-2.74594 -0.33083,-3.82515 -1.12616,-5.62695 -0.45982,-1.04173 -0.48752,-1.24341 -0.4723,-3.43929 0.0128,-1.75434 0.1755,-3.35706 0.6588,-6.46481 0.73845,-4.7486 1.12669,-8.42522 0.92954,-8.80314 -0.13011,-0.24941 -0.14661,-0.25033 -0.37405,-0.0209 -0.57074,0.57546 -1.44212,5.07218 -1.98115,10.22373 -0.60471,5.77956 -1.38532,9.99519 -2.14423,11.5801 -0.35515,0.74168 -0.35343,1.07016 0.007,1.17259 0.48013,0.13683 1.30297,-0.60336 1.48794,-1.33836 0.20211,-0.8032 0.70749,-1.2191 1.33851,-1.10153 1.03602,0.19305 0.95931,1.54575 -0.12357,2.17807 -0.25665,0.14987 -0.54923,0.43377 -0.65018,0.63088 -0.26612,0.51964 -0.22463,2.23185 0.0858,3.54011 0.1479,0.62315 0.26715,1.163 0.26513,1.19967 -0.003,0.0369 -0.51744,-0.58383 -1.14529,-1.37884 -1.69017,-2.14018 -2.0824,-2.30742 -2.0824,-0.88799 0,1.00756 0.20247,1.38173 1.15798,2.14011 0.85703,0.6802 1.05198,1.15634 1.27183,3.1065 0.0649,0.57587 0.17699,0.99573 0.24901,0.93306 0.072,-0.0625 0.27632,-0.59379 0.454,-1.1803 z m 4.41714,-6.3315 c -0.26921,-5.87191 -0.58353,-7.17988 -1.90526,-7.9283 -0.98998,-0.56055 -1.20915,-0.41197 -0.70235,0.47614 0.81519,1.42855 1.51128,4.81239 2.27331,11.05113 0.4021,3.29201 0.41693,3.35495 0.47099,1.99941 0.0307,-0.76975 -0.0307,-3.28904 -0.1367,-5.59838 z m 3.397,4.13982 c 0.54857,-0.76098 1.40181,-10.13809 0.92248,-10.13809 -0.16519,0 -0.29199,0.4554 -0.8439,3.02932 -0.17643,0.82307 -0.34294,1.48007 -0.36994,1.46004 -0.027,-0.0201 -0.22118,-0.87338 -0.43155,-1.89634 -0.21036,-1.02295 -0.45571,-1.91688 -0.54522,-1.98652 -0.20314,-0.1581 -0.2026,-0.11105 0.0209,1.7928 0.0989,0.84309 0.24784,2.91891 0.33076,4.61294 0.0829,1.694 0.20786,3.14859 0.27765,3.23239 0.18785,0.22563 0.42822,0.18552 0.63875,-0.10666 z m 7.879437,-2.80821 c 0.37323,-0.79491 0.42791,-2.044 0.20121,-4.59784 -0.12695,-1.42932 -0.28163,-2.59875 -0.3439,-2.59875 -0.34254,0 -0.91452,6.81681 -0.61983,7.38698 0.17523,0.33912 0.55882,0.24336 0.76252,-0.19039 z m -1.84311,-3.88184 c 0.46431,-3.78707 0.49342,-4.92326 0.12848,-5.01252 -0.36696,-0.0896 -0.99333,1.04262 -1.1586,2.09447 -0.1847,1.17492 0.24408,6.81764 0.50331,6.62517 0.0438,-0.0325 0.28089,-1.70072 0.5269,-3.70712 z m -15.997047,-7.64683 c 10e-4,-3.02565 -0.10335,-3.80746 -0.45451,-3.39529 -0.1917,0.22505 -0.23706,6.70204 -0.0479,6.84246 0.37416,0.27777 0.50124,-0.59416 0.50244,-3.44717 z m 15.430407,1.72268 c 0.91615,-0.40905 1.37525,-0.69964 1.76821,-1.1192 0.37776,-0.40328 0.39997,-0.98112 0.0462,-1.19912 -0.78677,-0.48477 -1.24631,-2.38213 -1.46997,-6.06912 -0.0623,-1.02638 -0.15215,-1.78432 -0.19963,-1.68434 -0.0476,0.0999 -0.39217,1.53955 -0.76589,3.19907 l -0.67949,3.01731 -0.0178,-3.085 c -0.0215,-3.92597 -0.2222,-5.37657 -0.98641,-7.13172 -0.33048,-0.75898 -0.705507,-1.81752 -0.833427,-2.35232 -0.36007,-1.50557 -0.56914,-1.41076 -0.8028,0.36408 -0.17978,1.36505 -0.69017,1.8761 -2.44648,2.44937 -1.46723,0.47891 -1.50334,0.60307 -1.30455,4.48599 0.26316,5.1406 0.1093,6.32121 -0.83692,6.42518 -0.7032,0.0773 -1.12549,0.66941 -1.12549,1.57821 0,1.33478 0.0459,1.34559 4.83608,1.13614 2.438217,-0.10665 2.544477,-0.10035 2.872797,0.16813 0.40726,0.33309 0.89156,0.2876 1.94478,-0.18266 z m -2.03255,-18.81776 c 0.52435,-1.00734 1.41624,-5.5328 1.41624,-7.18621 0,-0.87378 -0.11412,-1.2447 -0.38275,-1.2447 -0.73306,0 -2.196137,7.55496 -1.66285,8.58663 0.16379,0.31692 0.41576,0.25457 0.62936,-0.15572 z m -2.561627,-4.49364 c -0.22838,-3.97279 -0.87958,-8.336 -1.24408,-8.336 -0.0868,0 -0.21098,0.15755 -0.27608,0.35012 -0.19279,0.57061 0.0711,6.26537 0.36081,7.78087 0.30252,1.5828 0.76806,3.28699 0.95988,3.51379 0.26569,0.31414 0.33838,-0.89204 0.19947,-3.30878 z m -5.55232,-3.87063 c -0.28321,-2.34599 -0.5171,-4.46038 -0.51977,-4.69865 l -0.005,-0.4332 h 3.65573 3.65574 l -0.0715,1.29964 c -0.0392,0.71479 -0.14919,2.41124 -0.24432,3.76988 -0.0951,1.35862 -0.16399,2.76822 -0.15314,3.13243 l 0.0197,0.66219 0.16279,-0.59984 c 0.64294,-2.37028 1.615747,-7.05047 1.699027,-8.17387 0.085,-1.15057 0.0506,-1.4276 -0.22694,-1.82311 -0.41808,-0.59537 -1.101337,-0.83232 -2.454847,-0.85139 -1.0392,-0.0146 -1.08424,-0.0299 -1.2278,-0.41508 -0.082,-0.21992 -0.1334,-1.9894 -0.11451,-3.93219 0.0292,-2.98374 -0.0114,-3.64991 -0.26926,-4.28955 -0.67422,-1.67989 -2.3668,-2.11932 -4.65237,-1.20784 -0.71407,0.28476 -0.90478,0.44775 -1.192,1.01875 -0.74915,1.4893 -1.33532,5.18985 -1.35516,8.55526 l -0.0144,2.41041 0.49123,0.52653 c 0.91886,0.98486 1.51068,2.61339 2.5618,7.04907 0.84879,3.58192 0.88965,3.26102 0.25458,-1.99944 z m 2.61753,0.75983 c 0,-2.74155 -0.11095,-3.49353 -0.45578,-3.08875 -0.18556,0.21783 -0.23893,5.5779 -0.059,5.92595 0.0835,0.16187 0.16646,0.18056 0.31421,0.071 0.13478,-0.10005 0.20057,-1.0533 0.20057,-2.90812 z m -7.1148,-19.55597 c 0.32941,-0.8878 0.39506,-6.08051 0.078,-6.16006 -0.27386,-0.0687 -0.69968,0.98243 -1.06512,2.6293 -0.27878,1.25623 -0.26546,3.51918 0.0237,4.03873 0.24143,0.43367 0.7047,0.18945 0.96345,-0.50797 z m 9.40662,-1.20678 c 0.26412,-0.65887 0.37032,-7.15594 0.15354,-9.38865 -0.20652,-2.12596 -0.32029,-2.66589 -0.56179,-2.66589 -0.29764,0 -0.39383,0.56696 -0.57262,3.37589 -0.17523,2.7531 0.0114,7.7058 0.33019,8.79289 0.13517,0.46012 0.44208,0.40624 0.65071,-0.11412 z m -6.79647,-5.58971 c 0.0128,-4.13672 -0.13159,-5.76318 -0.44164,-4.99858 -0.16812,0.4147 -0.21465,8.86823 -0.0522,9.47139 0.11749,0.43627 0.12053,0.4374 0.3001,0.1166 0.10829,-0.19349 0.18633,-2.04219 0.19373,-4.58944 z m 3.40215,-2.79918 c 0.006,-3.07914 -0.0611,-5.83836 -0.15079,-6.13161 l -0.1633,-0.53318 -0.12504,0.79978 c -0.162,1.03608 -0.19719,9.983 -0.0441,11.18745 0.0997,0.78201 0.14454,0.87403 0.29411,0.59982 0.10524,-0.19318 0.18164,-2.58333 0.18908,-5.92226 z m -5.99588,-0.65445 c 0.85193,-1.66347 1.88923,-10.07528 1.22208,-9.91019 -0.97423,0.24109 -2.3909,10.23139 -1.45085,10.23139 0.0354,0 0.13829,-0.1446 0.22877,-0.3212 z m 9.43253,-11.01408 c 0.39501,-0.0851 0.85957,-0.24793 1.03239,-0.36196 0.7721,-0.50951 0.0876,-1.54914 -1.38385,-2.10185 -1.536,-0.57695 -1.58597,-0.73264 -1.62461,-5.06218 -0.0371,-4.15148 -0.17069,-4.82808 -1.05285,-5.32757 -1.56035,-0.88353 -4.19803,-0.35495 -5.49769,1.10172 -1.13443,1.2715 -0.42301,1.48411 1.07053,0.31995 0.75755,-0.5905 1.19612,-0.81576 1.85394,-0.95221 1.05904,-0.2197 1.9989,-0.0509 2.65032,0.47606 l 0.43813,0.35439 -0.71819,-0.0942 c -2.52994,-0.3319 -3.0332,-0.2128 -3.7494,0.88728 -0.65023,0.99879 -0.82621,2.07187 -0.82776,5.04752 -0.001,2.74589 0.12708,3.35118 0.76483,3.60461 0.20314,0.0807 1.4268,0.19202 2.71925,0.24739 3.17833,0.13625 4.62655,0.5807 3.26633,1.00263 -0.78489,0.24346 -4.56959,0.25936 -5.47789,0.0228 -1.42648,-0.3712 -1.99164,-1.43912 -2.43846,-4.60762 -0.36902,-2.61651 -0.44326,-2.92694 -0.63817,-2.66839 -0.13205,0.17528 -0.52871,6.03079 -0.53074,7.8362 l -7.2e-4,0.58598 4.71318,-0.078 c 2.70742,-0.0448 5.01879,-0.14387 5.43136,-0.23269 z" - id="path266" - clip-path="url(#clipPath1350)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 47.466964,160.41209 c -0.799326,-0.0576 -1.753698,-0.19783 -2.120824,-0.3117 -0.622305,-0.19304 -0.663712,-0.24113 -0.611507,-0.71028 0.0537,-0.48248 0.08547,-0.50499 0.771867,-0.54646 0.813012,-0.0492 0.983209,-0.1825 0.987106,-0.77352 0.0036,-0.52576 -0.325805,-0.73145 -1.097376,-0.68553 -0.581013,0.0346 -0.607874,0.0155 -0.661597,-0.46716 -0.0521,-0.46821 -0.01003,-0.51744 0.603821,-0.70788 0.538481,-0.16703 0.877355,-0.17951 1.842797,-0.0679 1.86544,0.21561 1.742549,-0.0254 -0.268456,-0.52619 -2.011132,-0.50095 -3.157765,-1.34407 -3.708409,-2.7268 -0.596507,-1.4979 -1.763314,-5.38032 -1.706562,-5.6784 0.132117,-0.694 1.687195,-0.93878 7.602012,-1.19654 3.71564,-0.16195 9.561618,-0.0899 11.472617,0.14122 1.252395,0.15149 2.059369,0.52762 2.69609,1.25661 0.757878,0.86772 0.525174,1.69028 -0.518373,1.83231 -0.717805,0.0979 -0.826436,0.55623 -0.773033,3.2629 0.04639,2.35074 0.02352,2.57263 -0.29172,2.83252 -0.188121,0.15511 -0.531511,0.282 -0.76309,0.282 -0.682999,0 -0.491425,0.35801 0.398814,0.74535 0.510899,0.22225 0.756344,0.40384 0.651311,0.48181 -0.09268,0.0688 -0.966623,0.15442 -1.942049,0.19024 -2.926899,0.10739 -3.25497,0.24313 -1.549063,0.64057 0.747934,0.17425 1.267422,0.41445 1.885279,0.87173 1.552908,1.14927 1.077166,1.67585 -1.693854,1.87485 -1.992118,0.14314 -9.150878,0.13435 -11.205801,-0.0132 z m 10.230823,-7.18243 c 0.34103,-0.25318 0.373867,-0.41201 0.334915,-1.61994 -0.07572,-2.34815 -0.789963,-3.94259 -1.950078,-4.35327 -0.605105,-0.21424 -0.664868,-0.21247 -1.288471,0.038 -0.94934,0.3811 -1.167657,1.00893 -1.188573,3.41804 -0.01559,1.78705 0.0154,1.98811 0.358299,2.32949 0.472581,0.4705 0.966962,0.58208 2.298237,0.51879 0.773683,-0.0369 1.159064,-0.12569 1.435671,-0.33098 z m -9.224775,0.0428 c 0.399895,-0.11881 0.810634,-0.33186 0.912761,-0.47355 0.175197,-0.24301 0.09725,-2.4801 -0.123519,-3.54542 -0.222778,-1.07505 -1.866009,-1.77358 -3.05448,-1.29842 -0.886032,0.35424 -1.237602,1.00115 -1.237602,2.27729 0,0.93442 0.07132,1.17947 0.541935,1.86245 0.515039,0.74745 1.439927,1.39363 1.994689,1.39363 0.131525,0 0.566324,-0.0971 0.966211,-0.21598 z" - id="path267" - clip-path="url(#clipPath1349)" /><path - style="fill:#3a1914;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 104.48832,145.32523 c -0.001,-0.89868 -0.084,-2.67746 -0.18353,-3.95286 -0.16714,-2.14365 -0.15687,-2.33865 0.13736,-2.58011 0.48663,-0.39949 1.57724,-0.7661 2.89579,-0.97344 3.65371,-0.57452 18.47021,-0.20874 20.45242,0.5049 0.46771,0.1684 0.49023,0.22072 0.47581,1.106 -0.0178,1.13881 -0.45849,2.40031 -1.83506,5.26127 l -1.05827,2.19937 -10.44092,0.0343 -10.44091,0.0343 z m 19.9383,-0.76981 c 0.18767,-0.0745 0.41732,-0.35949 0.51032,-0.63314 0.2741,-0.80647 0.43139,-3.57867 0.21969,-3.87231 -0.25875,-0.35896 -1.55872,-0.72415 -2.20356,-0.619 -0.67101,0.10943 -0.91038,0.39662 -1.66926,2.00295 -0.85378,1.80718 -0.82175,2.49617 0.13379,2.87727 0.87983,0.35096 2.42485,0.47636 3.00904,0.24423 z m -14.03539,-0.41702 c 0.59339,-0.27513 0.9226,-0.84969 0.9226,-1.61028 0,-1.11525 -0.73425,-2.48305 -1.60935,-2.99807 -0.73355,-0.43171 -2.33023,0.0416 -2.69594,0.79911 -0.11399,0.23631 -0.24821,0.96946 -0.29805,1.62928 -0.11019,1.45899 0.18766,2.0334 1.1919,2.29878 0.69946,0.18486 1.96406,0.12452 2.48884,-0.11881 z m 6.96367,-0.0477 c 0.95195,-0.46306 1.05638,-3.03995 0.1772,-4.37394 -0.66846,-1.01433 -1.58694,-1.27479 -2.0585,-0.58377 -0.81362,1.19228 -1.73237,3.76341 -1.55684,4.35676 0.12275,0.41523 0.53269,0.73676 1.07778,0.84548 0.56639,0.11295 1.91189,-0.0264 2.36032,-0.24453 z" - id="path268" - clip-path="url(#clipPath1348)" /><path - style="fill:#3a1915;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 104.78128,150.272 c -0.0683,-1.18256 -0.10066,-2.16412 -0.0725,-2.18125 0.0282,-0.0172 4.55586,-0.0721 10.06128,-0.12219 l 10.0099,-0.0909 v 2.27228 2.27228 h -9.93747 -9.93743 z" - id="path269" - clip-path="url(#clipPath1347)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 109.38366,195.59559 c -0.12352,-0.0949 -0.22443,-0.46974 -0.22443,-0.833 0,-0.59275 0.0708,-0.71045 0.69066,-1.1482 0.47017,-0.33206 1.11497,-0.59141 2.01992,-0.81247 1.92943,-0.4713 1.79641,-0.63333 -0.91509,-1.11459 l -2.24437,-0.39837 1.25685,-0.1405 c 0.75238,-0.084 1.25682,-0.20455 1.25682,-0.30024 0,-0.0879 -0.48475,-0.44721 -1.07728,-0.79838 -1.45391,-0.86169 -2.06481,-1.74478 -2.06481,-2.98481 0,-0.77262 0.0654,-0.95656 0.46483,-1.30905 0.31898,-0.28141 0.62553,-0.41011 0.97693,-0.41011 0.81727,0 0.78678,-0.22981 -0.0677,-0.51043 -0.96268,-0.31616 -1.12388,-0.48898 -0.8327,-0.89287 0.33138,-0.45968 0.12034,-0.68206 -0.72711,-0.76645 -0.90551,-0.0903 -1.14717,-0.24143 -0.98639,-0.61747 0.16714,-0.39083 0.90981,-0.64317 2.216,-0.75289 0.6109,-0.0513 1.11077,-0.13902 1.11077,-0.19499 0,-0.056 -0.58578,-0.20651 -1.30175,-0.33459 -0.71595,-0.12805 -1.53931,-0.32191 -1.82969,-0.43079 -0.49197,-0.18446 -0.5059,-0.20989 -0.20465,-0.37342 0.89419,-0.48542 4.60905,-0.71957 11.46069,-0.72237 l 5.16207,-0.003 v 0.37455 c 0,1.07016 -1.4102,10.30479 -1.90568,12.47921 -0.55518,2.43648 -0.6479,2.49147 -4.42764,2.62513 -1.60243,0.0567 -3.47906,0.16896 -4.17033,0.24955 -2.31473,0.26983 -3.39427,0.30535 -3.63587,0.11955 z m 7.48205,-6.12409 c 2.58115,-0.24026 2.91923,-0.51771 3.24683,-2.66465 0.28493,-1.86736 -0.11565,-3.20737 -1.24358,-4.16118 -1.18078,-0.99838 -2.97537,-1.13304 -4.58055,-0.34372 -1.44341,0.70978 -1.89058,1.83077 -1.89464,4.74956 -0.004,1.84667 0.0114,1.91562 0.43804,2.2327 0.51113,0.37946 1.4843,0.42464 4.0339,0.18729 z" - id="path270" - clip-path="url(#clipPath1346)" /><path - style="fill:#301816;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 106.22262,169.11954 c -0.14365,-0.64494 -0.11666,-2.27003 0.0446,-2.70148 0.0988,-0.26421 0.27173,-0.34855 0.83495,-0.40718 0.39066,-0.0406 0.88103,-0.14327 1.08965,-0.22818 0.58554,-0.23802 1.53202,-1.09838 1.47027,-1.33645 -0.0759,-0.29311 -1.01505,-0.67751 -1.76633,-0.72302 -0.61236,-0.037 -0.62134,-0.0302 -0.58357,0.4547 0.0308,0.39565 -0.035,0.50972 -0.3353,0.58045 -0.24994,0.0589 -0.48898,0.003 -0.72176,-0.17033 -0.34439,-0.25569 -0.34392,-0.26746 0.0452,-1.11366 0.60564,-1.31735 0.58079,-1.29814 1.81622,-1.40192 1.38756,-0.11662 3.51774,-0.88532 5.01319,-1.80926 1.36841,-0.8454 1.33938,-1.04091 -0.19634,-1.32346 l -1.16175,-0.21374 1.14358,-0.14953 c 1.20688,-0.15783 1.81003,-0.4378 1.81003,-0.84017 0,-0.33874 -0.75422,-0.66964 -1.70831,-0.74947 -0.44296,-0.037 -0.80537,-0.11178 -0.80537,-0.16607 0,-0.0544 0.62617,-0.26137 1.3915,-0.46019 1.84332,-0.47891 2.73811,-0.91422 2.73811,-1.33213 0,-0.45112 -0.43051,-0.51673 -2.6766,-0.40779 -1.60921,0.078 -1.95585,0.06 -2.14695,-0.11076 -0.19122,-0.1711 -0.14801,-0.24272 0.26954,-0.446 0.43523,-0.21191 0.99784,-0.24775 4.50076,-0.2866 l 4.00336,-0.0444 v 4.65943 4.65941 l -4.9996,2.2116 c -4.42512,1.9575 -6.3687,2.89254 -8.38179,4.03245 l -0.57553,0.32587 z" - id="path271" - clip-path="url(#clipPath1345)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 106.3134,160.86541 c -0.43354,-0.78246 -0.75542,-2.44481 -0.86448,-4.46441 l -0.1126,-2.08601 0.46689,-0.34661 c 0.41531,-0.30831 0.60804,-0.34663 1.74371,-0.34663 1.5038,0 1.83707,0.10651 2.17122,0.6947 0.366,0.6441 0.32356,3.55062 -0.0658,4.5038 -0.52845,1.29379 -1.52046,2.18529 -2.61197,2.34736 -0.4436,0.0659 -0.5468,0.023 -0.72696,-0.3022 z" - id="path272" - clip-path="url(#clipPath1344)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 79.084733,169.03514 c -2.541013,-0.61354 -2.6474,-0.84283 -0.811491,-1.74892 1.224961,-0.60455 1.554971,-0.82717 1.398481,-0.94336 -0.0426,-0.0316 -0.59607,-0.0959 -1.229952,-0.14298 -1.255327,-0.0932 -2.140061,-0.35406 -2.140061,-0.63091 0,-0.38524 -0.706573,-0.64553 -2.057657,-0.75801 -1.612802,-0.13434 -2.341327,-0.36001 -2.341327,-0.72548 0,-0.66901 2.019229,-0.75316 3.173865,-0.1323 1.564391,0.84123 1.33776,0.82451 6.943632,0.51302 1.4023,-0.0778 1.49504,-0.0671 1.43639,0.16786 -0.0743,0.2977 -1.46421,0.85099 -2.13773,0.85099 -1.29452,0 -1.59825,1.58768 -0.58321,3.04875 l 0.56742,0.8168 -0.48075,-0.006 c -0.26441,-0.003 -1.04634,-0.14254 -1.73761,-0.30945 z" - id="path273" - clip-path="url(#clipPath1343)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 76.903621,163.88635 c -1.387754,-0.41567 0.09591,-1.19399 3.049242,-1.59963 1.07571,-0.14775 1.26201,-0.1427 1.509,0.0406 0.25597,0.19006 0.25436,0.24024 -0.0178,0.54857 -0.41888,0.4746 -0.93534,0.69711 -2.17264,0.93614 -1.184055,0.22873 -1.788948,0.24772 -2.367832,0.0744 z" - id="path274" - clip-path="url(#clipPath1342)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 66.410054,202.80954 c -0.392658,-0.0305 -1.085386,-0.0876 -1.539404,-0.12686 -0.982704,-0.0851 -1.670093,-0.13009 -2.698164,-0.17704 -2.170479,-0.099 -3.424075,-0.12803 -6.601988,-0.15317 -3.78242,-0.0299 -4.877646,-0.0529 -5.697386,-0.12027 -0.34342,-0.0282 -0.645471,-0.0846 -0.619473,-0.11603 0.156963,-0.18855 4.590867,-0.47315 9.919386,-0.6367 5.763875,-0.1769 10.968374,-0.62727 12.579978,-1.08858 0.199615,-0.0571 0.301866,-0.10416 0.446069,-0.20564 0.247483,-0.17397 0.368364,-0.29987 0.368364,-0.38368 0,-0.19907 -0.549664,-0.17782 -2.205951,0.0853 -1.338519,0.21261 -1.709725,0.25519 -2.253562,0.25836 -0.521987,0.003 -0.607005,-0.0132 -0.746483,-0.14402 -0.105518,-0.0989 -0.0739,-0.28283 0.106787,-0.62104 0.26177,-0.49005 0.307097,-0.71756 0.167026,-0.83845 -0.06789,-0.0586 -0.10063,-0.0664 -0.309471,-0.0741 -0.240007,-0.008 -0.545799,0.0341 -1.233362,0.17368 -0.315211,0.0639 -0.728655,0.0984 -0.868517,0.0724 -0.199695,-0.0372 -0.161441,-0.16587 0.14086,-0.47368 0.551802,-0.56188 0.696253,-0.66697 1.009586,-0.7346 0.416874,-0.0899 0.95892,0.0369 3.339776,0.78183 1.819876,0.56939 2.827085,0.77809 3.889344,0.80592 0.429409,0.0103 0.50428,0.008 0.703217,-0.0375 0.216939,-0.0489 0.355613,-0.0634 0.355613,-0.0373 0,0.008 -0.02326,0.0469 -0.05167,0.0883 -0.188397,0.27505 -1.729709,1.39865 -2.519309,1.83655 -1.33357,0.73956 -2.782046,1.034 -4.618217,0.93871 -1.607587,-0.0834 -2.89765,-0.1276 -3.13312,-0.10724 -0.149758,0.0132 -0.185201,0.0238 -0.177504,0.0549 0.01559,0.0629 0.29845,0.14896 1.390329,0.42313 1.570121,0.39428 2.158339,0.55936 2.158339,0.60572 0,0.0267 -0.638415,0.003 -1.301114,-0.0487 z" - id="path276" - clip-path="url(#clipPath1340)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 72.091333,198.07203 c -0.595513,-0.0504 -0.91566,-0.10035 -1.131881,-0.17683 -0.181767,-0.0643 -0.192108,-0.10269 -0.05737,-0.21338 0.138947,-0.11427 0.173953,-0.17959 0.172158,-0.32162 -0.0027,-0.21294 -0.172789,-0.45064 -0.522322,-0.7299 -0.839428,-0.67063 -2.421529,-1.29285 -3.967536,-1.56039 -0.244401,-0.0424 -0.462395,-0.0875 -0.484434,-0.10036 -0.194437,-0.11368 0.799846,-0.23638 2.443689,-0.30143 0.80865,-0.0321 3.086478,-0.0164 3.468336,0.0237 0.644333,0.0679 1.030227,0.1707 1.249092,0.33318 0.194595,0.14446 0.236701,0.25128 0.214162,0.54336 -0.0604,0.78302 -0.06019,0.80684 0.0093,1.01299 0.129689,0.38529 0.437431,0.74258 0.792111,0.91964 0.534686,0.26689 0.484697,0.42771 -0.164698,0.52984 -0.218549,0.0343 -1.734961,0.0652 -2.020495,0.041 z" - id="path277" - clip-path="url(#clipPath1339)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 53.976247,200.88696 c -0.253131,-0.0964 0.02817,-0.34704 0.699634,-0.62367 0.844165,-0.34778 1.037451,-0.45484 1.037451,-0.57466 0,-0.12716 -0.334561,-0.18973 -1.253743,-0.23453 -0.984521,-0.0481 -1.238142,-0.11061 -0.960145,-0.23729 0.635155,-0.28932 3.37848,-0.67661 5.927501,-0.8368 0.70442,-0.0442 2.904923,-0.0722 3.570786,-0.0453 l 0.476106,0.0191 -0.206312,0.029 c -0.113465,0.0161 -0.699081,0.078 -1.301353,0.138 -0.602272,0.0601 -1.257854,0.13594 -1.456854,0.16908 -1.404253,0.23319 -2.770256,0.70136 -3.485022,1.19441 -0.517323,0.35687 -0.864467,0.53528 -1.453798,0.7472 -0.530737,0.19084 -0.849537,0.26214 -1.222001,0.27327 -0.18745,0.006 -0.328288,-8.4e-4 -0.37225,-0.0179 z" - id="path278" - clip-path="url(#clipPath1338)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 95.537373,227.76565 c -0.63007,-0.46775 -0.83151,-1.46241 -0.93087,-4.59606 -0.0772,-2.43636 0.1126,-6.97257 0.34719,-8.29038 0.30787,-1.73051 0.91813,-2.51925 2.40417,-3.10726 1.04686,-0.41422 2.02284,-0.4868 2.765187,-0.20562 0.99795,0.37797 1.92555,1.47006 3.03046,3.56791 0.87253,1.65661 0.89948,2.34277 0.10296,2.62333 -0.62653,0.22072 -0.98406,0.6351 -1.04891,1.21568 -0.0725,0.6481 0.16753,0.84334 0.95527,0.77743 0.67211,-0.0563 0.82081,0.0734 1.0562,0.92119 0.19417,0.69955 0.19575,3.25885 0.004,3.79239 -0.20572,0.56714 -0.67214,0.92627 -1.50607,1.15956 -0.39862,0.11149 -1.98167,0.41477 -3.517887,0.67392 -1.53623,0.25913 -2.84743,0.5096 -2.91377,0.55658 -0.18688,0.13229 2.20817,0.0979 6.849537,-0.0984 2.3043,-0.0974 4.20113,-0.16877 4.2151,-0.15846 0.0444,0.0327 -6.19897,1.00469 -7.389097,1.15024 -0.62848,0.0769 -1.80814,0.16606 -2.62148,0.19821 -1.46113,0.0578 -1.48267,0.0556 -1.80037,-0.18026 z m 5.212917,-8.62539 c 0.12985,-0.34463 0.12568,-4.51957 -0.004,-4.86771 -0.0791,-0.21141 -0.13636,-0.24751 -0.25392,-0.16038 -0.16991,0.126 -0.29805,4.17137 -0.15472,4.88165 0.0936,0.46319 0.27019,0.52579 0.4131,0.1465 z" - id="path279" - clip-path="url(#clipPath1337)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 100.74625,231.75262 c -2.195017,-0.32782 0.87237,-1.1628 6.94328,-1.89006 4.06778,-0.48731 5.3785,-0.52596 5.68485,-0.16761 0.20247,0.23679 0.0957,0.35589 -0.52962,0.59114 -0.82406,0.31001 -2.25402,0.55318 -4.69663,0.7986 -1.08232,0.1087 -2.7963,0.29861 -3.8088,0.42189 -2.39257,0.29132 -3.00784,0.33344 -3.59308,0.24604 z" - id="path280" - clip-path="url(#clipPath1336)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 98.086523,229.57017 c -0.43096,-0.12496 -0.43755,-0.22227 -0.0338,-0.50003 0.62304,-0.42866 2.840707,-0.77002 6.452207,-0.99316 3.01602,-0.18633 5.26243,-0.0936 5.13636,0.21194 -0.13261,0.32125 -2.47361,0.84164 -5.175,1.15029 -1.64321,0.18775 -5.883947,0.27481 -6.379737,0.13096 z" - id="path281" - clip-path="url(#clipPath1335)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 68.155533,229.32608 c -3.258317,-0.3963 -6.601985,-1.21901 -6.601985,-1.62441 0,-0.16802 0.826975,-0.29064 1.955105,-0.28988 2.018225,8.4e-4 4.606044,0.27895 6.297376,0.67551 1.141175,0.26759 1.396576,0.40186 1.396576,0.73436 0,0.44185 -0.382216,0.57084 -1.647006,0.55585 -0.595465,-0.008 -1.22549,-0.0302 -1.400066,-0.0515 z" - id="path282" - clip-path="url(#clipPath1334)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 65.425864,231.04385 c -3.526788,-0.50041 -5.781636,-0.99377 -6.475022,-1.41672 -0.595829,-0.36343 -0.279488,-0.44736 1.460056,-0.38729 1.699963,0.0587 3.879192,0.31409 6.030659,0.70678 2.534439,0.46261 3.241232,0.77541 2.60981,1.15498 -0.39828,0.23942 -1.674342,0.2191 -3.625503,-0.0578 z" - id="path283" - clip-path="url(#clipPath1333)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 63.129991,232.3583 c -3.636158,-0.322 -6.706953,-0.80557 -7.81359,-1.23042 -1.548017,-0.59429 2.662866,-0.35397 6.110186,0.3487 1.066221,0.21733 4.691356,1.00794 4.888011,1.06602 0.293315,0.0866 -0.914435,0.0167 -3.184607,-0.1843 z" - id="path284" - clip-path="url(#clipPath1332)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 73.210256,212.00232 c -1.649746,-0.83224 -5.816488,-6.30053 -5.816488,-7.63338 0,-0.42327 0.180071,-0.42598 0.907261,-0.0132 1.101968,0.62467 3.81874,3.44596 4.565183,4.74085 0.367821,0.63806 0.422716,0.83448 0.410084,1.46714 -0.01657,0.82874 0.0037,0.84101 0.948387,0.57319 0.46324,-0.13142 0.572518,-0.1361 0.662028,-0.0285 0.138807,0.16674 -0.178394,0.74694 -0.52674,0.96343 -0.357945,0.22246 -0.601007,0.2079 -1.149715,-0.0688 z" - id="path285" - clip-path="url(#clipPath1331)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 59.349734,211.78845 c -0.04328,-0.19438 -0.07933,-0.61775 -0.08008,-0.94076 l -0.0015,-0.58731 -1.174394,-0.8265 c -2.951949,-2.07746 -3.798693,-2.82585 -5.486816,-4.84948 l -1.047124,-1.25523 3.060662,-0.0282 c 3.31934,-0.0306 3.836326,0.0203 4.259976,0.42022 0.57396,0.54168 0.188181,2.09567 -0.889752,3.58411 -0.344835,0.47613 -0.626971,0.9533 -0.626971,1.06034 0,0.22238 0.312888,0.25652 0.809911,0.0883 1.274248,-0.43102 2.96985,1.52369 2.321295,2.67604 -0.216021,0.38381 -0.818889,1.01182 -0.971321,1.01182 -0.05242,0 -0.130677,-0.15905 -0.173972,-0.35346 z" - id="path286" - clip-path="url(#clipPath1330)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 96.152583,191.966 c -0.27813,-0.0522 -0.55605,-0.13229 -0.61767,-0.17797 -0.1845,-0.13698 0.64597,-0.39278 1.74691,-0.53794 1.6342,-0.21543 7.053397,-0.16211 6.862237,0.0676 -0.34172,0.41046 -6.566897,0.91554 -7.991477,0.64839 z" - id="path287" - clip-path="url(#clipPath1329)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 47.37154,144.65819 c -1.215045,-0.19331 -1.339468,-0.45429 -0.510101,-1.07 1.090356,-0.80947 3.281517,-1.24215 6.249185,-1.23402 2.145522,0.006 3.201831,0.1498 4.443644,0.60544 0.749214,0.2749 2.60271,1.34184 2.60271,1.49822 0,0.0439 -0.471347,0.1065 -1.047436,0.13902 -1.80013,0.10153 -11.177071,0.15059 -11.738002,0.0613 z" - id="path288" - clip-path="url(#clipPath1328)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 42.743281,142.54618 c -1.03426,-0.38132 0.574223,-1.47998 2.960579,-2.02218 2.710287,-0.6158 6.307398,-0.30823 5.371733,0.45933 -0.499625,0.40985 -1.805861,0.71981 -4.947835,1.17414 -0.907775,0.13126 -1.973728,0.2971 -2.368787,0.36851 -0.556699,0.10065 -0.785196,0.1052 -1.01569,0.0203 z" - id="path290" - clip-path="url(#clipPath1326)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 40.136239,145.59784 c -0.153036,-0.0457 -0.370318,-0.1875 -0.482833,-0.31498 -0.1809,-0.20495 -0.183663,-0.26892 -0.02392,-0.55276 0.238841,-0.42435 1.122183,-0.97505 1.850308,-1.15352 0.321859,-0.079 1.127961,-0.22809 1.791333,-0.33157 1.875892,-0.29262 2.285304,-0.2553 2.285304,0.20842 0,0.15681 -0.117578,0.42636 -0.261294,0.59898 -0.838755,1.00752 -3.895529,1.92324 -5.1589,1.54543 z" - id="path291" - clip-path="url(#clipPath1325)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 44.566189,139.93092 c 0,-0.21889 0.255235,-0.66488 0.497941,-0.8701 0.295865,-0.25017 0.983872,-0.52433 1.556953,-0.6204 0.116562,-0.0195 0.504821,-0.0394 0.862799,-0.0441 1.009164,-0.0132 1.46036,-0.1462 1.574148,-0.46346 0.06582,-0.18358 0.129414,-0.23173 0.44464,-0.33675 0.657301,-0.21899 1.646776,-0.32874 2.963734,-0.32874 1.672181,0 2.991316,0.2056 3.290277,0.51282 0.07822,0.0804 0.07947,0.0948 0.01579,0.18614 -0.368528,0.52907 -3.611913,1.21857 -5.957603,1.26652 -0.938148,0.0191 -1.193103,-0.008 -1.536775,-0.15747 -0.490794,-0.21497 -1.349651,-0.0408 -2.432651,0.4936 -0.519521,0.2563 -1.066087,0.47337 -1.191978,0.47337 -0.06912,0 -0.08734,-0.0233 -0.08734,-0.11134 z" - id="path292" - clip-path="url(#clipPath1324)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 52.062415,132.94309 c -0.831577,-0.0755 -1.391828,-0.22627 -1.649378,-0.44404 -0.250142,-0.21149 -0.248709,-0.40282 0.005,-0.6774 0.210471,-0.22773 0.792233,-0.59034 1.168824,-0.7285 0.778167,-0.28552 1.731536,-0.26245 2.55724,0.0619 0.711646,0.2795 1.293007,1.00446 1.091964,1.36167 -0.174977,0.3109 -0.688734,0.42742 -1.961752,0.44492 -0.481419,0.008 -1.026803,-0.003 -1.211965,-0.0186 z" - id="path295" - clip-path="url(#clipPath1321)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 75.044859,137.65332 c -0.446458,-0.0352 -1.237241,-0.1219 -1.636539,-0.17971 -0.583595,-0.0845 -4.120584,-0.73179 -4.166899,-0.76266 -0.03723,-0.0248 1.475453,-0.0531 4.726136,-0.0883 2.607024,-0.0282 3.572537,0.0351 3.866842,0.25357 0.157969,0.11734 0.132511,0.19138 -0.126832,0.36884 -0.271178,0.18556 -0.674701,0.31849 -1.153645,0.38002 -0.360361,0.0463 -1.102562,0.0601 -1.509079,0.0282 z" - id="path296" - clip-path="url(#clipPath1320)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 89.500823,175.2794 c -0.39951,-0.081 -0.86734,-0.24213 -1.66636,-0.57381 -1.04784,-0.43498 -2.19005,-1.10219 -2.19005,-1.27931 0,-0.0619 0.0299,-0.0712 0.29358,-0.0891 0.47512,-0.0323 0.2589,-0.31289 -0.49316,-0.63984 -0.67932,-0.29531 -0.8129,-0.35699 -0.98508,-0.45481 -0.43461,-0.24689 -0.27379,-0.3397 0.43876,-0.25323 0.66517,0.0807 1.96985,0.35581 2.35865,0.49733 0.27592,0.10035 0.56529,0.30157 0.66624,0.46312 0.0854,0.13625 0.0932,0.34028 0.0173,0.44899 -0.0288,0.0414 -0.10166,0.13039 -0.16178,0.19754 -0.12468,0.13947 -0.14821,0.26707 -0.061,0.33181 0.0858,0.0637 0.48252,0.0682 0.81528,0.008 0.14837,-0.0262 1.01238,-0.23798 1.92,-0.47068 2.68819,-0.68922 2.51322,-0.65018 2.91981,-0.6515 0.39029,-8.4e-4 0.51204,0.0294 0.70872,0.1788 0.25972,0.19723 0.25882,0.69499 -0.001,0.85764 -0.13988,0.0873 -0.34879,0.0735 -0.55874,-0.0369 -0.19445,-0.10225 -0.39076,-0.11691 -0.66152,-0.0491 -0.4769,0.11955 -0.89977,0.3631 -1.59662,0.91969 -0.57584,0.45993 -0.88843,0.60984 -1.31055,0.62852 -0.16361,0.008 -0.29383,-0.003 -0.45199,-0.0349 z" - id="path304" - clip-path="url(#clipPath1312)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 116.53461,188.73879 c -0.0584,-0.0479 -0.15808,-0.25401 -0.28453,-0.5891 -0.15491,-0.40994 -0.24705,-0.59445 -0.43497,-0.87095 -0.36705,-0.54 -0.89875,-1.02563 -1.36016,-1.24224 -0.46511,-0.21835 -0.6274,-0.30407 -0.73411,-0.38782 -0.1545,-0.12131 -0.15549,-0.1708 -0.004,-0.21693 0.0995,-0.0305 0.22621,-0.0425 0.62223,-0.0592 0.30788,-0.0132 0.32649,-0.0158 0.4907,-0.0761 0.4059,-0.14894 0.76328,-0.49847 0.94612,-0.92536 0.0868,-0.20238 0.11019,-0.32056 0.13951,-0.6998 0.0513,-0.66705 0.11717,-0.99138 0.20149,-0.99138 0.0733,0 0.18647,0.21503 0.35935,0.68314 0.15806,0.42823 0.32043,0.71551 0.60314,1.06783 0.31696,0.39506 0.84093,0.83088 1.19009,0.98991 0.58168,0.26491 0.83302,0.41792 0.83302,0.50709 0,0.0857 -0.14958,0.11808 -0.65085,0.14122 -0.37935,0.0174 -0.49817,0.0444 -0.75068,0.16971 -0.39368,0.19547 -0.69409,0.53573 -0.83369,0.94432 -0.0388,0.11369 -0.0612,0.24239 -0.0765,0.44437 -0.0484,0.62583 -0.10638,1.00373 -0.16813,1.09236 -0.0411,0.059 -0.0387,0.0586 -0.0871,0.0189 z" - id="path305" - clip-path="url(#clipPath1311)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 107.15005,178.75753 c -0.2077,-0.0375 -0.31513,-0.17566 -0.36904,-0.47449 -0.0377,-0.20919 -0.0314,-0.90734 0.0101,-1.08153 0.15116,-0.63788 0.72321,-0.86917 2.33962,-0.94575 0.55566,-0.0262 2.78953,-0.0103 3.43263,0.0242 1.25974,0.068 1.99366,0.16081 1.99366,0.25202 0,0.0386 -0.0741,0.0578 -0.54067,0.13976 -1.18432,0.20818 -3.64525,0.96638 -5.14878,1.58631 -0.92336,0.38069 -1.47981,0.54259 -1.71743,0.49966 z" - id="path306" - clip-path="url(#clipPath1310)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 107.46473,174.02483 c -0.34904,-0.0408 -0.56205,-0.12424 -0.83404,-0.32617 -0.18531,-0.1374 -0.21783,-0.17145 -0.32863,-0.34256 -0.19002,-0.29367 -0.2572,-0.54507 -0.22858,-0.85646 0.0665,-0.72434 0.56811,-1.09271 1.68301,-1.23612 0.32536,-0.0418 1.45382,-0.042 1.8516,-2.1e-4 1.19808,0.12585 2.01967,0.38305 2.23153,0.69867 0.0964,0.14356 0.0683,0.23919 -0.10536,0.35751 -0.12984,0.0883 -0.2763,0.14358 -0.52586,0.19748 -0.29722,0.0643 -0.56757,0.0888 -1.17398,0.10636 -0.53284,0.0154 -0.82084,0.0408 -1.07729,0.0948 -0.41692,0.0877 -0.66671,0.2746 -0.61909,0.46308 0.008,0.0329 0.0557,0.11661 0.10511,0.18601 0.11286,0.15805 0.13242,0.2567 0.071,0.3585 -0.10892,0.18111 -0.3713,0.28339 -0.78028,0.30424 -0.0864,0.003 -0.2076,0.003 -0.26933,-0.004 z" - id="path307" - clip-path="url(#clipPath1309)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 120.02195,173.95471 c -1.51179,-0.052 -3.27876,-0.55276 -4.1602,-1.17902 -0.64772,-0.46023 -0.57712,-0.85156 0.18768,-1.04018 0.49447,-0.12189 1.12337,-0.0858 1.61128,0.0923 0.18351,0.067 0.2518,0.10973 0.53579,0.33488 0.23353,0.18519 0.62153,0.2867 1.09601,0.28674 0.41115,4e-5 0.73971,-0.0613 1.15589,-0.21614 0.22858,-0.0851 0.47079,-0.15136 0.6082,-0.16665 0.081,-0.008 0.11095,-0.004 0.15431,0.0211 0.054,0.0323 0.054,0.0323 0.0138,0.10826 -0.0215,0.0418 -0.0995,0.1361 -0.17306,0.20957 -0.1642,0.16365 -0.20034,0.2362 -0.20034,0.4014 0,0.15828 0.0424,0.25733 0.17445,0.40624 0.1555,0.17578 0.27362,0.23717 0.71213,0.37054 0.19654,0.0598 0.325,0.14167 0.29051,0.18541 -0.035,0.0446 -0.20465,0.10211 -0.38147,0.12966 -0.33614,0.0524 -1.03093,0.0763 -1.62597,0.0558 z" - id="path308" - clip-path="url(#clipPath1308)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 118.39479,178.16185 c -1.85405,-0.0307 -3.88537,-0.13141 -4.03449,-0.19979 -0.0953,-0.0438 0.47139,-0.0869 1.62179,-0.12351 0.86232,-0.0276 5.31764,-0.0391 6.57598,-0.0171 1.67207,0.0291 2.61064,0.0698 2.85037,0.12379 l 0.10093,0.0227 -0.0971,0.0202 c -0.32879,0.0686 -1.59244,0.13405 -3.24702,0.16831 -0.68108,0.0146 -3.04268,0.0174 -3.77053,0.004 z" - id="path309" - clip-path="url(#clipPath1307)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 110.91332,204.27467 c -0.0102,-0.0599 -0.068,-0.40323 -0.12925,-0.76288 -0.20209,-1.18608 -0.27956,-1.74288 -0.30333,-2.17961 -0.0277,-0.5092 -0.0647,-0.78203 -0.16754,-1.23508 -0.15215,-0.67088 -0.34963,-1.22208 -0.65684,-1.83407 -0.0943,-0.18789 -0.18352,-0.37263 -0.19799,-0.41047 -0.0673,-0.17544 -0.0895,-0.25798 -0.0988,-0.3683 -0.008,-0.10182 -0.004,-0.13112 0.0242,-0.20239 0.14346,-0.35038 0.81402,-0.46208 2.77148,-0.46164 0.77263,1.9e-4 2.8564,0.0305 3.1978,0.0465 1.34649,0.0631 2.43355,0.20128 2.91217,0.37012 0.2422,0.0854 0.30076,0.14679 0.2213,0.23191 -0.0623,0.067 -0.21346,0.16778 -0.3215,0.2148 -0.21866,0.0951 -0.42871,0.13712 -0.6868,0.13756 -0.21898,2.5e-4 -0.3684,-0.0278 -0.59372,-0.11163 -0.36236,-0.13478 -0.67023,-0.14874 -0.83074,-0.0377 -0.12907,0.0892 -0.15451,0.29734 -0.0656,0.53829 0.0719,0.19525 0.0825,0.24959 0.0749,0.3829 -0.0114,0.20868 -0.10168,0.36529 -0.29119,0.5076 -0.22298,0.16747 -0.61032,0.24857 -0.8585,0.17972 -0.19358,-0.0538 -0.36627,-0.23106 -0.45134,-0.46346 -0.0294,-0.0804 -0.0348,-0.12716 -0.0359,-0.31813 -0.001,-0.21994 -3.5e-4,-0.22693 0.0573,-0.40057 0.1926,-0.58057 0.0684,-0.71711 -0.47124,-0.51854 -0.31113,0.11441 -0.88901,0.40371 -1.2458,0.62356 -0.72946,0.44949 -1.33779,1.04438 -1.50168,1.46847 -0.0518,0.1339 -0.0504,0.28345 0.004,0.33651 0.0715,0.0711 0.10651,0.0811 0.28193,0.0811 0.18154,-8e-5 0.26525,-0.017 0.54051,-0.10914 0.15056,-0.0505 0.16161,-0.0524 0.27831,-0.0475 0.0946,0.003 0.1407,0.0132 0.20816,0.0394 0.11641,0.046 0.27809,0.17057 0.35973,0.27737 0.0842,0.11031 0.17089,0.30211 0.20171,0.44669 0.0356,0.16704 0.0623,0.53974 0.051,0.70688 -0.0345,0.50781 -0.32567,0.78198 -0.69248,0.65223 -0.31166,-0.11031 -0.58717,0.0538 -0.76935,0.45794 -0.0726,0.16109 -0.114,0.3455 -0.13438,0.59895 -0.0102,0.11296 -0.0273,0.29023 -0.0401,0.39393 -0.0114,0.10358 -0.0236,0.22152 -0.0241,0.26187 l -3.7e-4,0.0733 -0.14069,0.10695 c -0.0776,0.0589 -0.21015,0.18076 -0.29515,0.27124 -0.0849,0.0904 -0.15589,0.16431 -0.15786,0.16431 -0.001,0 -0.0114,-0.0491 -0.0213,-0.10899 z" - id="path310" - clip-path="url(#clipPath1306)" /><path - style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 65.685797,111.94195 c -0.543138,-0.64421 -1.221185,-1.43445 -1.506769,-1.75609 -1.09238,-1.23032 -2.020495,-2.04906 -2.617366,-2.30895 -0.779332,-0.33933 -1.337268,-1.00316 -1.109136,-1.31962 0.02826,-0.0392 0.115141,-0.0958 0.193016,-0.12569 0.227117,-0.0872 0.550395,-0.0434 1.10469,0.14958 0.519699,0.1809 0.789501,0.24056 1.441809,0.3187 0.680142,0.0814 1.426088,0.10036 2.060433,0.0526 0.506618,-0.0384 0.597317,-0.037 0.822056,0.0117 0.276198,0.0596 0.489708,0.20565 0.608035,0.41589 0.258961,0.4601 0.295415,1.57271 0.129018,3.93759 -0.06512,0.92557 -0.122858,1.70829 -0.128327,1.73941 -0.0056,0.0312 -0.454313,-0.47049 -0.997451,-1.11468 z" - id="path313" - clip-path="url(#clipPath1303)" /><path - style="display:inline;fill:#642a23;fill-opacity:1;stroke:#8494e5;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 405.3932,657.38674 c -0.60874,-0.11084 -1.78999,-0.83972 -2.625,-1.61974 -1.94998,-1.82155 -2.09581,-4.48485 -0.34162,-6.23904 2.38047,-2.38047 10.47153,-2.86795 16.73395,-1.00821 5.52502,1.64075 4.22392,3.04348 -3.4405,3.70922 -5.62081,0.48824 -6.66376,1.00075 -6.21299,3.0531 0.16583,0.755 0.11958,1.47554 -0.10277,1.6012 -0.77066,0.43553 -2.90962,0.70401 -4.01107,0.50347 z" - id="path911" - clip-path="url(#clipPath1284)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:#642a23;fill-opacity:1;stroke:#8494e5;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 449.1286,656.73315 c -5.36063,-0.90246 -11.57054,-3.59856 -12.22663,-5.30832 -0.9164,-2.38809 5.09282,-2.98035 9.02119,-0.88912 2.62992,1.40001 6.14847,1.67675 9.32354,0.7333 2.33734,-0.69452 2.73845,-0.65482 2.02839,0.20075 -1.10344,1.32956 -0.42627,3.45575 1.36966,4.30046 0.90461,0.42549 1.48586,0.9325 1.29166,1.12669 -0.45987,0.45988 -7.76052,0.34926 -10.80781,-0.16376 z" - id="path912" - clip-path="url(#clipPath1283)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:#642a23;fill-opacity:1;stroke:#8494e5;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 404.05349,674.4591 c -0.16692,-0.43499 -0.30349,-1.65994 -0.30349,-2.72211 0,-2.91955 1.55701,-4.40162 5.25,-4.9973 4.97891,-0.8031 24.10377,-0.27902 21.75,0.59601 -0.4125,0.15335 -3.3375,1.004 -6.5,1.89033 -3.1625,0.88634 -8.40925,2.60432 -11.65944,3.81774 -6.35447,2.37237 -8.06124,2.65533 -8.53707,1.41533 z" - id="path913" - clip-path="url(#clipPath1282)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:#642a23;fill-opacity:1;stroke:#8494e5;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 439,672.75 c -1.925,-0.17788 4.375,-0.32884 14,-0.33547 9.92636,-0.007 16.09347,0.14606 14.25,0.35327 -3.94422,0.44335 -23.39205,0.43109 -28.25,-0.0178 z" - id="path914" - clip-path="url(#clipPath1281)" - transform="scale(0.26458333)" /><path - d="m 74.297661,173.59234 c 0,0 -0.08035,0.0237 0,0 l -0.03396,0.009 c 0.0013,-3.4e-4 0.0027,-6.8e-4 0.004,-0.001 l -0.03825,0.009 c 0.0013,-2.8e-4 0.0027,-5.7e-4 0.0041,-8.6e-4 l -0.03835,0.007 c 0.0013,-2.3e-4 0.0027,-4.6e-4 0.0041,-7e-4 l -0.03826,0.006 c 0.0014,-1.8e-4 0.0027,-3.6e-4 0.0041,-5.4e-4 l -0.03799,0.004 c 0.0014,-1.2e-4 0.0028,-2.5e-4 0.0042,-3.8e-4 l -0.03755,0.003 c 0.0014,-7e-5 0.0028,-1.4e-4 0.0042,-2.2e-4 l -0.03696,0.001 c 0.0014,-3e-5 0.0028,-5e-5 0.0042,-7e-5 l -0.03622,-1.1e-4 c 0.0014,3e-5 0.0028,6e-5 0.0042,9e-5 l -0.03536,-0.001 c 0.0014,8e-5 0.0028,1.6e-4 0.0043,2.4e-4 l -0.0344,-0.003 c 0.0014,1.3e-4 0.0029,2.7e-4 0.0043,4e-4 l -0.03335,-0.004 c 0.0014,1.9e-4 0.0029,3.7e-4 0.0043,5.5e-4 l -0.03223,-0.005 c 0.0014,2.3e-4 0.0029,4.6e-4 0.0044,7e-4 l -0.03106,-0.005 c 0.0015,2.8e-4 0.0029,5.6e-4 0.0044,8.5e-4 l -0.02987,-0.006 c 0.0015,3.3e-4 0.0029,6.6e-4 0.0044,10e-4 l -0.02865,-0.007 c 0.0015,3.7e-4 0.003,7.5e-4 0.0045,0.001 l -0.02742,-0.007 c 0.0015,4.3e-4 0.003,8.5e-4 0.0045,0.001 l -0.02621,-0.008 c 0.0015,4.7e-4 0.003,9.5e-4 0.0045,0.001 l -0.02501,-0.008 c 0.0015,5.3e-4 0.003,0.001 0.0046,0.002 l -0.02384,-0.009 c 0.0015,5.7e-4 0.003,0.001 0.0046,0.002 l -0.02269,-0.009 c 0.0015,6.2e-4 0.0031,0.001 0.0046,0.002 l -0.02158,-0.009 c 0.0015,6.6e-4 0.0031,0.001 0.0046,0.002 l -0.02051,-0.009 c 0.0015,7.1e-4 0.0031,0.001 0.0047,0.002 l -0.01949,-0.009 c 0.0016,7.6e-4 0.0031,0.002 0.0047,0.002 l -0.0185,-0.009 c 0.0016,8e-4 0.0031,0.002 0.0047,0.002 l -0.01756,-0.009 c 0.0016,8.4e-4 0.0032,0.002 0.0048,0.003 l -0.01667,-0.009 c 0.0016,8.9e-4 0.0032,0.002 0.0048,0.003 l -0.01582,-0.009 c 0.0016,9.3e-4 0.0032,0.002 0.0048,0.003 l -0.01501,-0.009 c 0.0016,9.8e-4 0.0032,0.002 0.0048,0.003 l -0.01424,-0.009 c 0.0016,0.001 0.0032,0.002 0.0049,0.003 l -0.01352,-0.009 c 0.0016,0.001 0.0033,0.002 0.0049,0.003 l -0.01283,-0.009 c 0.0016,0.001 0.0033,0.002 0.0049,0.003 l -0.01219,-0.008 c 0.0016,0.001 0.0033,0.002 0.005,0.003 l -0.01157,-0.008 c 0.0017,0.001 0.0033,0.002 0.005,0.004 l -0.011,-0.008 c 0.0017,0.001 0.0033,0.002 0.005,0.004 l -0.01045,-0.008 c 1.4e-5,1e-5 2.8e-5,2e-5 4.2e-5,3e-5 -0.0048,-0.004 -0.0047,-0.004 -0.0046,-0.004 -0.0045,-0.004 -0.0043,-0.003 -0.0041,-0.003 -0.0042,-0.003 -0.0039,-0.003 -0.0037,-0.003 -0.0039,-0.003 -0.0036,-0.003 -0.0032,-0.003 -0.0036,-0.003 -0.0032,-0.003 -0.0028,-0.002 4.43e-4,3.9e-4 8.86e-4,7.8e-4 0.0013,0.001 -0.0057,-0.005 -0.0039,-0.003 -0.0022,-0.002 -0.0053,-0.005 -0.0036,-0.003 -0.0018,-0.002 -0.005,-0.005 -0.0032,-0.003 -0.0015,-0.001 -0.0047,-0.004 -0.0029,-0.003 -0.0011,-0.001 -0.0044,-0.004 -0.0026,-0.002 -8.14e-4,-7.3e-4 -0.0041,-0.004 -0.0023,-0.002 -5.13e-4,-4.6e-4 -0.0038,-0.004 -0.002,-0.002 -2.28e-4,-1.8e-4 -0.0036,-0.004 -0.0018,-0.002 4.4e-5,8e-5 -0.0033,-0.003 -0.0015,-0.002 3.03e-4,3.5e-4 -0.0031,-0.003 -0.0013,-0.001 5.5e-4,6.1e-4 -0.0029,-0.003 -0.001,-0.001 7.84e-4,8.6e-4 -0.0027,-0.003 -8.33e-4,-8.6e-4 0.001,0.001 -0.0025,-0.003 -6.27e-4,-6.4e-4 0.0012,0.001 -0.0023,-0.002 -4.31e-4,-4.4e-4 0.0014,0.002 -0.0021,-0.002 -2.43e-4,-2.4e-4 0.0016,0.002 -0.0019,-0.002 -6.4e-5,-5e-5 0.0018,0.002 -0.0018,-0.002 1.07e-4,1.4e-4 0.002,0.002 -0.0016,-0.002 2.7e-4,3.4e-4 0.0022,0.003 -0.0015,-0.002 4.27e-4,5.1e-4 0.0023,0.003 -0.0013,-0.002 5.77e-4,6.9e-4 0.0025,0.003 -0.0012,-0.001 7.21e-4,8.7e-4 0.0026,0.003 -0.0011,-0.001 8.59e-4,0.001 0.0028,0.003 -9.35e-4,-0.001 9.92e-4,0.001 0.0029,0.004 -8.17e-4,-9.8e-4 0.0011,0.001 0.0031,0.004 -7.02e-4,-8.5e-4 0.0012,0.002 0.0032,0.004 -5.92e-4,-7.2e-4 0.0014,0.002 0.0033,0.004 -4.87e-4,-6e-4 0.0015,0.002 0.0034,0.004 -3.85e-4,-4.7e-4 0.0016,0.002 0.0036,0.004 -2.88e-4,-3.5e-4 0.0017,0.002 0.0037,0.005 -1.94e-4,-2.4e-4 0.0018,0.002 0.0038,0.005 -1.04e-4,-1.2e-4 0.0019,0.002 0.0039,0.005 -1.7e-5,-2e-5 0.002,0.003 0.004,0.005 6.7e-5,9e-5 0.0021,0.003 0.0041,0.005 1.48e-4,2e-4 0.0022,0.003 0.0042,0.005 2.26e-4,3e-4 0.0022,0.003 0.0043,0.006 3.01e-4,4.1e-4 0.0023,0.003 0.0044,0.006 3.74e-4,5.1e-4 0.0024,0.003 0.0044,0.006 4.45e-4,6.1e-4 0.0025,0.003 0.0045,0.006 5.12e-4,7e-4 0.0026,0.003 0.0046,0.006 5.79e-4,7.9e-4 0.0026,0.004 0.0047,0.006 6.43e-4,8.8e-4 0.0027,0.004 0.0048,0.007 7.05e-4,9.7e-4 0.0028,0.004 0.0049,0.007 7.65e-4,0.001 0.0028,0.004 0.0049,0.007 8.23e-4,0.001 0.0029,0.004 0.005,0.007 8.79e-4,0.001 0.003,0.004 0.0051,0.007 9.35e-4,0.001 0.003,0.004 0.0051,0.007 9.88e-4,0.001 0.0031,0.004 0.0052,0.007 0.001,0.001 0.0032,0.004 0.0053,0.007 0.0011,0.002 0.0032,0.005 0.0053,0.008 0.0011,0.002 0.0033,0.005 0.0054,0.008 0.0012,0.002 0.0033,0.005 0.0055,0.008 0.0012,0.002 0.0034,0.005 0.0055,0.008 0.0013,0.002 0.0034,0.005 0.0056,0.008 0.0013,0.002 0.0035,0.005 0.0056,0.008 0.0014,0.002 0.0035,0.005 0.0057,0.008 0.0014,0.002 0.0036,0.005 0.0058,0.008 0.0015,0.002 0.0036,0.005 0.0058,0.008 0.0015,0.002 0.0037,0.005 0.0059,0.009 0.0015,0.002 0.0037,0.005 0.0059,0.009 0.0016,0.002 0.0038,0.006 0.006,0.009 0.0016,0.002 0.0038,0.006 0.006,0.009 0.0017,0.002 0.0039,0.006 0.0061,0.009 0.0017,0.002 0.0039,0.006 0.0061,0.009 0.0017,0.003 0.0039,0.006 0.0062,0.009 0.0018,0.003 0.004,0.006 0.0062,0.009 0.0018,0.003 0.004,0.006 0.0063,0.009 0.0018,0.003 0.0041,0.006 0.0063,0.009 0.0019,0.003 0.0041,0.006 0.0064,0.009 0.0019,0.003 0.0041,0.006 0.0064,0.009 0.0019,0.003 0.0042,0.006 0.0064,0.01 0.002,0.003 0.0042,0.006 0.0065,0.01 0.002,0.003 0.0043,0.006 0.0065,0.01 0.002,0.003 0.0043,0.006 0.0066,0.01 0.0021,0.003 0.0043,0.006 0.0066,0.01 0.0021,0.003 0.0044,0.007 0.0067,0.01 0.0021,0.003 0.0044,0.007 0.0067,0.01 0.0021,0.003 0.0044,0.007 0.0067,0.0101 0.0022,0.003 0.0045,0.007 0.0068,0.0101 0.0022,0.003 0.0045,0.007 0.0068,0.0102 0.0022,0.003 0.0046,0.007 0.0069,0.0103 0.0023,0.003 0.0046,0.007 0.0069,0.0103 0.0023,0.003 0.0046,0.007 0.0069,0.0104 0.0023,0.003 0.0047,0.007 0.007,0.0104 0.0024,0.004 0.0047,0.007 0.007,0.0105 0.0024,0.004 0.0047,0.007 0.0071,0.0106 0.0024,0.004 0.0048,0.007 0.0071,0.0106 0.0024,0.004 0.0048,0.007 0.0071,0.0107 0.0025,0.004 0.0048,0.007 0.0072,0.0107 0.0025,0.004 0.0049,0.007 0.0072,0.0108 0.0025,0.004 0.0049,0.007 0.0073,0.0108 0.0025,0.004 0.0049,0.007 0.0073,0.0109 0.0026,0.004 0.005,0.007 0.0073,0.0109 0.0026,0.004 0.005,0.007 0.0074,0.011 0.0026,0.004 0.005,0.007 0.0074,0.011 0.0027,0.004 0.005,0.008 0.0074,0.0111 0.0027,0.004 0.0051,0.008 0.0075,0.0111 0.0027,0.004 0.0051,0.008 0.0075,0.0111 0.0027,0.004 0.0051,0.008 0.0076,0.0112 0.0028,0.004 0.0052,0.008 0.0076,0.0112 0.0028,0.004 0.0052,0.008 0.0076,0.0113 0.0028,0.004 0.0052,0.008 0.0077,0.0113 0.0028,0.004 0.0053,0.008 0.0077,0.0113 0.0029,0.004 0.0053,0.008 0.0077,0.0114 0.0029,0.004 0.0053,0.008 0.0078,0.0114 0.0029,0.004 0.0054,0.008 0.0078,0.0114 0.0029,0.004 0.0054,0.008 0.0078,0.0115 0.003,0.004 0.0054,0.008 0.0079,0.0115 0.003,0.004 0.0055,0.008 0.0079,0.0115 0.003,0.004 0.0055,0.008 0.008,0.0115 0.0031,0.004 0.0055,0.008 0.008,0.0116 0.0031,0.004 0.0056,0.008 0.008,0.0116 0.0031,0.005 0.0056,0.008 0.0081,0.0116 0.0031,0.005 0.0056,0.008 0.0081,0.0117 0.0032,0.005 0.0057,0.008 0.0081,0.0117 0.0032,0.005 0.0057,0.008 0.0082,0.0117 0.0032,0.005 0.0057,0.008 0.0082,0.0117 0.0033,0.005 0.0058,0.008 0.0083,0.0118 0.0033,0.005 0.0058,0.008 0.0083,0.0118 0.0033,0.005 0.0058,0.008 0.0083,0.0118 0.0034,0.005 0.0059,0.008 0.0084,0.0118 0.0034,0.005 0.0059,0.008 0.0084,0.0118 0.0034,0.005 0.0059,0.008 0.0084,0.0118 0.0034,0.005 0.006,0.008 0.0085,0.0119 0.0035,0.005 0.006,0.008 0.0085,0.0119 0.0035,0.005 0.006,0.008 0.0086,0.0119 0.0035,0.005 0.0061,0.008 0.0086,0.0119 0.0036,0.005 0.0061,0.008 0.0086,0.0119 0.0036,0.005 0.0061,0.008 0.0087,0.0119 0.0036,0.005 0.0062,0.008 0.0087,0.0119 0.0037,0.005 0.0062,0.008 0.0088,0.0119 0.0037,0.005 0.0063,0.008 0.0088,0.0119 0.0037,0.005 0.0063,0.009 0.0089,0.012 0.0038,0.005 0.0063,0.009 0.0089,0.0119 0.0038,0.005 0.0064,0.009 0.0089,0.012 0.0039,0.005 0.0064,0.009 0.009,0.012 0.0039,0.005 0.0065,0.009 0.009,0.012 0.0039,0.005 0.0065,0.009 0.0091,0.012 0.004,0.005 0.0066,0.009 0.0091,0.012 0.004,0.005 0.0066,0.009 0.0092,0.012 0.0041,0.005 0.0066,0.009 0.0092,0.012 0.0041,0.005 0.0067,0.009 0.0093,0.012 0.0041,0.005 0.0067,0.009 0.0093,0.012 0.0042,0.005 0.0068,0.009 0.0094,0.012 0.0042,0.005 0.0068,0.009 0.0094,0.012 0.0043,0.005 0.0069,0.009 0.0095,0.012 0.0043,0.005 0.0069,0.009 0.0095,0.012 0.0044,0.005 0.007,0.009 0.0096,0.012 0.0044,0.005 0.007,0.009 0.0096,0.012 0.0045,0.006 0.0071,0.009 0.0097,0.012 0.0045,0.006 0.0071,0.009 0.0097,0.0119 0.0046,0.006 0.0072,0.009 0.0098,0.0119 0.0046,0.006 0.0072,0.009 0.0098,0.0119 0.0047,0.006 0.0073,0.009 0.0099,0.0119 0.0047,0.006 0.0074,0.009 0.01,0.0119 0.0048,0.006 0.0074,0.009 0.01003,0.0119 0.0048,0.006 0.0075,0.009 0.01009,0.0119 0.0049,0.006 0.0075,0.009 0.01015,0.0119 0.005,0.006 0.0076,0.009 0.01022,0.0119 0.005,0.006 0.0077,0.009 0.01029,0.0119 0.0051,0.006 0.0077,0.009 0.01036,0.0119 0.0052,0.006 0.0078,0.009 0.01043,0.0119 0.0052,0.006 0.0079,0.009 0.0105,0.0118 0.0053,0.006 0.0079,0.009 0.01057,0.0118 0.0054,0.006 0.008,0.009 0.01064,0.0118 0.0054,0.006 0.0081,0.009 0.01072,0.0118 0.0055,0.006 0.0082,0.009 0.0108,0.0118 0.0056,0.006 0.0082,0.009 0.01088,0.0118 0.0057,0.006 0.0083,0.009 0.01096,0.0118 0.0057,0.006 0.0084,0.009 0.01105,0.0117 0.0058,0.006 0.0085,0.009 0.01113,0.0117 0.0059,0.006 0.0086,0.009 0.01122,0.0117 0.006,0.006 0.0087,0.009 0.01131,0.0117 0.0061,0.006 0.0088,0.009 0.01141,0.0117 0.0062,0.006 0.0088,0.009 0.0115,0.0117 0.0063,0.006 0.0089,0.009 0.0116,0.0116 0.0064,0.006 0.009,0.009 0.0117,0.0116 0.0065,0.006 0.0091,0.009 0.0118,0.0116 0.0066,0.006 0.0092,0.009 0.01191,0.0116 0.0067,0.006 0.0094,0.009 0.01202,0.0115 0.0068,0.006 0.0095,0.009 0.01213,0.0115 0.0069,0.006 0.0096,0.009 0.01225,0.0115 0.007,0.007 0.0097,0.009 0.01237,0.0115 0.0071,0.007 0.0098,0.009 0.01249,0.0114 0.0073,0.007 0.0099,0.009 0.01261,0.0114 0.0074,0.007 0.01007,0.009 0.01274,0.0114 0.0075,0.007 0.0102,0.009 0.01287,0.0114 0.0077,0.007 0.01034,0.009 0.01301,0.0113 0.0078,0.007 0.01048,0.009 0.01315,0.0113 0.0079,0.007 0.01062,0.009 0.01329,0.0113 0.0081,0.007 0.01077,0.009 0.01344,0.0112 0.0082,0.007 0.01092,0.009 0.0136,0.0112 0.0084,0.007 0.01108,0.009 0.01375,0.0111 0.0085,0.007 0.01124,0.009 0.01391,0.0111 0.0087,0.007 0.01141,0.009 0.01408,0.0111 0.0089,0.007 0.01158,0.009 0.01425,0.011 0.0091,0.007 0.01175,0.009 0.01443,0.011 0.0092,0.007 0.01193,0.009 0.01461,0.0109 0.0094,0.007 0.01212,0.009 0.01479,0.0109 0.0096,0.007 0.01231,0.009 0.01499,0.0108 0.0098,0.007 0.01251,0.009 0.01518,0.0108 0.01001,0.007 0.01271,0.009 0.01538,0.0107 0.01022,0.007 0.01292,0.009 0.01559,0.0106 0.01043,0.007 0.01313,0.009 0.01581,0.0106 0.01065,0.007 0.01335,0.009 0.01602,0.0105 0.01088,0.007 0.01358,0.009 0.01625,0.0104 0.01111,0.007 0.01381,0.009 0.01648,0.0103 0.0029,0.002 0.0057,0.004 0.0086,0.005 0.0027,0.002 0.0054,0.003 0.0081,0.005 0.0029,0.002 0.0059,0.004 0.0089,0.005 0.0027,0.002 0.0054,0.003 0.0081,0.005 0.003,0.002 0.0061,0.004 0.0091,0.005 0.0027,0.002 0.0054,0.003 0.0081,0.005 0.0031,0.002 0.0062,0.004 0.0093,0.005 0.0027,0.002 0.0054,0.003 0.0081,0.005 0.0032,0.002 0.0064,0.004 0.0096,0.005 0.0027,0.002 0.0055,0.003 0.0081,0.004 0.0033,0.002 0.0066,0.004 0.0099,0.005 0.0028,0.001 0.0055,0.003 0.0081,0.004 0.0034,0.002 0.0068,0.004 0.01014,0.005 0.0028,0.001 0.0055,0.003 0.0081,0.004 0.0035,0.002 0.0069,0.004 0.01042,0.005 0.0028,0.001 0.0055,0.003 0.0081,0.004 a 0.99218747,0.99218747 90 0 0 0.898062,-1.76952 c -9.54e-4,-4.9e-4 -0.0019,-9.8e-4 -0.0029,-0.001 0.0042,0.002 0.0032,0.002 0.0022,0.001 0.004,0.002 0.003,0.002 0.0019,0.001 0.0038,0.002 0.0027,0.002 0.0016,9e-4 0.0037,0.002 0.0025,0.001 0.0014,7.7e-4 0.0035,0.002 0.0023,0.001 0.0011,6.5e-4 0.0033,0.002 0.0021,0.001 8.66e-4,5.1e-4 0.0032,0.002 0.0019,0.001 6.24e-4,3.8e-4 -0.0013,-7.8e-4 -0.0025,-0.002 -0.0038,-0.002 0.0057,0.004 0.003,0.002 2.72e-4,1.1e-4 0.0055,0.004 0.0028,0.002 4.4e-5,-3e-5 0.0053,0.003 0.0025,0.002 -1.77e-4,-1.7e-4 0.005,0.003 0.0023,0.002 -3.92e-4,-3.2e-4 0.0048,0.003 0.0021,0.001 -6.01e-4,-4.6e-4 0.0046,0.003 0.0019,0.001 -8.05e-4,-6.2e-4 0.0044,0.003 0.0017,0.001 -0.001,-7.7e-4 0.0042,0.003 0.0015,0.001 -0.0012,-9.2e-4 0.004,0.003 0.0013,9.5e-4 -0.0014,-0.001 0.0038,0.003 0.0012,8.3e-4 -0.0016,-0.001 0.0037,0.003 9.76e-4,7.1e-4 -0.0017,-0.001 0.0035,0.003 8.04e-4,5.9e-4 -0.0019,-0.002 0.0033,0.003 6.37e-4,4.7e-4 -0.0021,-0.002 0.0032,0.003 4.75e-4,3.5e-4 -0.0022,-0.002 0.003,0.002 3.18e-4,2.3e-4 -0.0024,-0.002 0.0029,0.002 1.66e-4,1e-4 -0.0025,-0.002 0.0027,0.002 1.8e-5,-1e-5 -0.0027,-0.002 0.0026,0.002 -1.24e-4,-1.4e-4 -0.0028,-0.002 0.0024,0.002 -2.64e-4,-2.6e-4 -0.003,-0.003 0.0023,0.002 -3.98e-4,-3.7e-4 -0.0031,-0.003 0.0022,0.002 -5.28e-4,-5e-4 -0.0032,-0.003 0.002,0.002 -6.54e-4,-6.2e-4 -0.0033,-0.003 0.0019,0.002 -7.76e-4,-7.3e-4 -0.0035,-0.003 0.0018,0.002 -8.95e-4,-8.6e-4 -0.0036,-0.003 0.0017,0.002 -0.001,-9.7e-4 -0.0037,-0.003 0.0016,0.001 -0.0011,-0.001 -0.0038,-0.004 0.0014,0.001 -0.0012,-0.001 -0.0039,-0.004 0.0013,0.001 -0.0013,-0.001 -0.004,-0.004 0.0012,0.001 -0.0014,-0.001 -0.0041,-0.004 0.0011,0.001 -0.0015,-0.002 -0.0042,-0.004 0.001,0.001 -0.0016,-0.002 -0.0043,-0.004 9.44e-4,9.4e-4 -0.0017,-0.002 -0.0044,-0.004 8.52e-4,8.5e-4 -0.0018,-0.002 -0.0045,-0.005 7.63e-4,7.7e-4 -0.0019,-0.002 -0.0046,-0.005 6.77e-4,6.9e-4 -0.002,-0.002 -0.0046,-0.005 5.94e-4,6.1e-4 -0.0021,-0.002 -0.0047,-0.005 5.13e-4,5.3e-4 -0.0021,-0.002 -0.0048,-0.005 4.34e-4,4.5e-4 -0.0022,-0.002 -0.0049,-0.005 3.58e-4,3.7e-4 -0.0023,-0.002 -0.005,-0.005 2.84e-4,3e-4 -0.0024,-0.003 -0.005,-0.005 2.12e-4,2.2e-4 -0.0024,-0.003 -0.0051,-0.006 1.42e-4,1.5e-4 -0.0025,-0.003 -0.0052,-0.006 7.5e-5,7e-5 -0.0026,-0.003 -0.0052,-0.006 8e-6,-1e-5 -0.0026,-0.003 -0.0053,-0.006 -5.6e-5,-8e-5 -0.0027,-0.003 -0.0053,-0.006 -1.18e-4,-1.5e-4 -0.0028,-0.003 -0.0054,-0.006 -1.79e-4,-2.2e-4 -0.0028,-0.003 -0.0055,-0.006 -2.37e-4,-2.9e-4 -0.0029,-0.003 -0.0055,-0.006 -2.95e-4,-3.5e-4 -0.0029,-0.003 -0.0056,-0.007 -3.51e-4,-4.3e-4 -0.003,-0.004 -0.0056,-0.007 -4.04e-4,-4.8e-4 -0.003,-0.004 -0.0057,-0.007 -4.57e-4,-5.6e-4 -0.0031,-0.004 -0.0057,-0.007 -5.08e-4,-6.2e-4 -0.0031,-0.004 -0.0058,-0.007 -5.58e-4,-6.8e-4 -0.0032,-0.004 -0.0058,-0.007 -6.06e-4,-7.4e-4 -0.0032,-0.004 -0.0058,-0.007 -6.53e-4,-8.1e-4 -0.0033,-0.004 -0.0059,-0.007 -7e-4,-8.7e-4 -0.0033,-0.004 -0.0059,-0.007 -7.44e-4,-9.3e-4 -0.0033,-0.004 -0.006,-0.007 -7.88e-4,-9.9e-4 -0.0034,-0.004 -0.006,-0.007 -8.3e-4,-0.001 -0.0034,-0.004 -0.006,-0.008 -8.71e-4,-0.001 -0.0035,-0.004 -0.0061,-0.008 -9.12e-4,-0.001 -0.0035,-0.004 -0.0061,-0.008 -9.5e-4,-0.001 -0.0035,-0.005 -0.0061,-0.008 -9.88e-4,-0.001 -0.0036,-0.005 -0.0062,-0.008 -0.001,-0.001 -0.0036,-0.005 -0.0062,-0.008 -0.0011,-0.001 -0.0036,-0.005 -0.0062,-0.008 -0.0011,-0.001 -0.0037,-0.005 -0.0063,-0.008 -0.0011,-0.001 -0.0037,-0.005 -0.0063,-0.008 -0.0012,-0.002 -0.0037,-0.005 -0.0063,-0.008 -0.0012,-0.002 -0.0038,-0.005 -0.0063,-0.008 -0.0012,-0.002 -0.0038,-0.005 -0.0064,-0.008 -0.0013,-0.002 -0.0038,-0.005 -0.0064,-0.009 -0.0013,-0.002 -0.0038,-0.005 -0.0064,-0.009 -0.0013,-0.002 -0.0039,-0.005 -0.0064,-0.009 -0.0014,-0.002 -0.0039,-0.005 -0.0065,-0.009 -0.0014,-0.002 -0.0039,-0.005 -0.0065,-0.009 -0.0014,-0.002 -0.004,-0.005 -0.0065,-0.009 -0.0014,-0.002 -0.004,-0.005 -0.0065,-0.009 -0.0015,-0.002 -0.004,-0.006 -0.0065,-0.009 -0.0015,-0.002 -0.004,-0.006 -0.0066,-0.009 -0.0015,-0.002 -0.004,-0.006 -0.0066,-0.009 -0.0015,-0.002 -0.0041,-0.006 -0.0066,-0.009 -0.0016,-0.002 -0.0041,-0.006 -0.0066,-0.009 -0.0016,-0.002 -0.0041,-0.006 -0.0066,-0.009 -0.0016,-0.002 -0.0041,-0.006 -0.0066,-0.009 -0.0016,-0.002 -0.0041,-0.006 -0.0067,-0.009 -0.0017,-0.002 -0.0042,-0.006 -0.0067,-0.009 -0.0017,-0.002 -0.0042,-0.006 -0.0067,-0.009 -0.0017,-0.002 -0.0042,-0.006 -0.0067,-0.01 -0.0017,-0.002 -0.0042,-0.006 -0.0067,-0.01 -0.0017,-0.002 -0.0042,-0.006 -0.0067,-0.01 -0.0018,-0.003 -0.0043,-0.006 -0.0067,-0.01 -0.0018,-0.003 -0.0043,-0.006 -0.0067,-0.01 -0.0018,-0.003 -0.0043,-0.006 -0.0068,-0.01 -0.0018,-0.003 -0.0043,-0.006 -0.0068,-0.01 -0.0018,-0.003 -0.0043,-0.006 -0.0068,-0.01 -0.0019,-0.003 -0.0043,-0.006 -0.0068,-0.01 -0.0019,-0.003 -0.0043,-0.006 -0.0068,-0.01 -0.0019,-0.003 -0.0044,-0.006 -0.0068,-0.01 -0.0019,-0.003 -0.0044,-0.006 -0.0068,-0.01 -0.0019,-0.003 -0.0044,-0.006 -0.0068,-0.01 -0.002,-0.003 -0.0044,-0.006 -0.0068,-0.01 -0.002,-0.003 -0.0044,-0.006 -0.0068,-0.0101 -0.002,-0.003 -0.0044,-0.007 -0.0069,-0.0101 -0.002,-0.003 -0.0044,-0.007 -0.0069,-0.0101 -0.002,-0.003 -0.0045,-0.007 -0.0069,-0.0102 -0.002,-0.003 -0.0045,-0.007 -0.0069,-0.0102 -0.0021,-0.003 -0.0045,-0.007 -0.0069,-0.0102 -0.0021,-0.003 -0.0045,-0.007 -0.0069,-0.0102 -0.0021,-0.003 -0.0045,-0.007 -0.0069,-0.0102 -0.0021,-0.003 -0.0045,-0.007 -0.0069,-0.0103 -0.0021,-0.003 -0.0045,-0.007 -0.0069,-0.0103 -0.0022,-0.003 -0.0045,-0.007 -0.0069,-0.0103 -0.0022,-0.003 -0.0045,-0.007 -0.0069,-0.0103 -0.0022,-0.003 -0.0046,-0.007 -0.0069,-0.0103 -0.0022,-0.003 -0.0046,-0.007 -0.0069,-0.0104 -0.0022,-0.003 -0.0046,-0.007 -0.0069,-0.0104 -0.0022,-0.003 -0.0046,-0.007 -0.007,-0.0104 -0.0023,-0.003 -0.0046,-0.007 -0.007,-0.0104 -0.0023,-0.003 -0.0046,-0.007 -0.007,-0.0104 -0.0023,-0.003 -0.0046,-0.007 -0.007,-0.0104 -0.0023,-0.003 -0.0046,-0.007 -0.007,-0.0104 -0.0023,-0.003 -0.0047,-0.007 -0.007,-0.0104 -0.0023,-0.003 -0.0047,-0.007 -0.007,-0.0105 -0.0024,-0.004 -0.0047,-0.007 -0.007,-0.0104 -0.0024,-0.004 -0.0047,-0.007 -0.007,-0.0105 -0.0024,-0.004 -0.0047,-0.007 -0.007,-0.0105 -0.0024,-0.004 -0.0047,-0.007 -0.007,-0.0105 -0.0024,-0.004 -0.0047,-0.007 -0.007,-0.0105 -0.0024,-0.004 -0.0047,-0.007 -0.007,-0.0105 -0.0025,-0.004 -0.0047,-0.007 -0.007,-0.0105 -0.0025,-0.004 -0.0048,-0.007 -0.007,-0.0105 -0.0025,-0.004 -0.0048,-0.007 -0.007,-0.0105 -0.0025,-0.004 -0.0048,-0.007 -0.0071,-0.0105 -0.0025,-0.004 -0.0048,-0.007 -0.0071,-0.0105 -0.0026,-0.004 -0.0048,-0.007 -0.0071,-0.0105 -0.0026,-0.004 -0.0048,-0.007 -0.0071,-0.0105 -0.0026,-0.004 -0.0048,-0.007 -0.0071,-0.0105 -0.0026,-0.004 -0.0049,-0.007 -0.0071,-0.0105 -0.0026,-0.004 -0.0049,-0.007 -0.0071,-0.0105 -0.0027,-0.004 -0.0049,-0.007 -0.0071,-0.0105 -0.0027,-0.004 -0.0049,-0.007 -0.0071,-0.0105 -0.0027,-0.004 -0.0049,-0.007 -0.0071,-0.0105 -0.0027,-0.004 -0.0049,-0.007 -0.0071,-0.0105 -0.0028,-0.004 -0.005,-0.007 -0.0072,-0.0105 -0.0028,-0.004 -0.005,-0.007 -0.0072,-0.0105 -0.0028,-0.004 -0.005,-0.007 -0.0072,-0.0104 -0.0028,-0.004 -0.005,-0.007 -0.0072,-0.0105 -0.0029,-0.004 -0.005,-0.007 -0.0072,-0.0104 -0.0029,-0.004 -0.0051,-0.007 -0.0072,-0.0104 -0.0029,-0.004 -0.0051,-0.007 -0.0072,-0.0104 -0.0029,-0.004 -0.0051,-0.007 -0.0073,-0.0104 -0.003,-0.004 -0.0051,-0.007 -0.0073,-0.0104 -0.003,-0.004 -0.0051,-0.007 -0.0073,-0.0104 -0.003,-0.004 -0.0052,-0.007 -0.0073,-0.0104 -0.0031,-0.004 -0.0052,-0.007 -0.0073,-0.0104 -0.0031,-0.004 -0.0052,-0.007 -0.0073,-0.0104 -0.0031,-0.004 -0.0053,-0.007 -0.0074,-0.0104 -0.0032,-0.004 -0.0053,-0.007 -0.0074,-0.0104 -0.0032,-0.004 -0.0053,-0.007 -0.0074,-0.0103 -0.0033,-0.005 -0.0054,-0.007 -0.0074,-0.0103 -0.0033,-0.005 -0.0054,-0.007 -0.0075,-0.0103 -0.0033,-0.005 -0.0054,-0.007 -0.0075,-0.0103 -0.0034,-0.005 -0.0055,-0.007 -0.0075,-0.0103 -0.0034,-0.005 -0.0055,-0.007 -0.0076,-0.0103 -0.0035,-0.005 -0.0055,-0.008 -0.0076,-0.0103 -0.0035,-0.005 -0.0056,-0.008 -0.0076,-0.0103 -0.0036,-0.005 -0.0056,-0.008 -0.0077,-0.0103 -0.0036,-0.005 -0.0057,-0.008 -0.0077,-0.0103 -0.0037,-0.005 -0.0057,-0.008 -0.0077,-0.0103 -0.0037,-0.005 -0.0058,-0.008 -0.0078,-0.0103 -0.0038,-0.005 -0.0058,-0.008 -0.0078,-0.0103 -0.0039,-0.005 -0.0059,-0.008 -0.0079,-0.0103 -0.0039,-0.005 -0.0059,-0.008 -0.0079,-0.0103 -0.004,-0.005 -0.006,-0.008 -0.008,-0.0103 -0.0041,-0.005 -0.0061,-0.008 -0.008,-0.0103 -0.0041,-0.005 -0.0061,-0.008 -0.0081,-0.0103 -0.0042,-0.005 -0.0062,-0.008 -0.0082,-0.0103 -0.0043,-0.005 -0.0063,-0.008 -0.0082,-0.0103 -0.0044,-0.005 -0.0063,-0.008 -0.0083,-0.0103 -0.0045,-0.006 -0.0064,-0.008 -0.0084,-0.0103 -0.0046,-0.006 -0.0065,-0.008 -0.0084,-0.0103 -0.0047,-0.006 -0.0066,-0.008 -0.0085,-0.0103 -0.0048,-0.006 -0.0067,-0.008 -0.0086,-0.0103 -0.0049,-0.006 -0.0068,-0.008 -0.0087,-0.0103 -0.005,-0.006 -0.0069,-0.008 -0.0088,-0.0103 -0.0051,-0.006 -0.007,-0.008 -0.0089,-0.0104 -0.0052,-0.006 -0.0071,-0.008 -0.009,-0.0104 -0.0054,-0.006 -0.0073,-0.008 -0.0091,-0.0104 -0.0055,-0.006 -0.0074,-0.008 -0.0093,-0.0104 -0.0057,-0.006 -0.0075,-0.008 -0.0094,-0.0104 -0.0058,-0.006 -0.0077,-0.008 -0.0095,-0.0105 -0.006,-0.007 -0.0078,-0.009 -0.0097,-0.0105 -0.0062,-0.007 -0.008,-0.009 -0.0098,-0.0105 -0.0063,-0.007 -0.0082,-0.009 -0.01,-0.0106 -0.0065,-0.007 -0.0083,-0.009 -0.01016,-0.0106 -0.0067,-0.007 -0.0085,-0.009 -0.01035,-0.0107 -0.0069,-0.007 -0.0087,-0.009 -0.01054,-0.0107 -0.0072,-0.007 -0.009,-0.009 -0.01075,-0.0108 -0.0074,-0.007 -0.0092,-0.009 -0.01097,-0.0108 -0.0077,-0.007 -0.0094,-0.009 -0.0112,-0.0109 -0.0079,-0.008 -0.0097,-0.009 -0.01145,-0.0109 -0.0082,-0.008 -0.01,-0.009 -0.01171,-0.011 -0.0085,-0.008 -0.01025,-0.009 -0.01199,-0.011 -0.0088,-0.008 -0.01055,-0.01 -0.01229,-0.0111 -0.0091,-0.008 -0.01088,-0.01 -0.01261,-0.0111 -0.0026,-0.002 -0.0052,-0.005 -0.0078,-0.007 -0.0017,-0.001 -0.0035,-0.003 -0.0052,-0.004 -0.0027,-0.002 -0.0054,-0.005 -0.0082,-0.007 -0.0017,-0.001 -0.0034,-0.003 -0.0051,-0.004 -0.0028,-0.002 -0.0057,-0.005 -0.0086,-0.007 -0.0017,-0.001 -0.0034,-0.003 -0.0051,-0.004 -0.003,-0.002 -0.006,-0.005 -0.009,-0.007 -0.0017,-0.001 -0.0034,-0.003 -0.0051,-0.004 -0.0031,-0.003 -0.0063,-0.005 -0.0095,-0.007 -0.0017,-0.001 -0.0034,-0.003 -0.0051,-0.004 -0.0033,-0.003 -0.0066,-0.005 -0.0099,-0.008 -0.0017,-0.001 -0.0034,-0.003 -0.005,-0.004 -0.0035,-0.003 -0.007,-0.005 -0.01045,-0.008 -0.0017,-0.001 -0.0033,-0.002 -0.005,-0.004 -0.0036,-0.003 -0.0073,-0.005 -0.011,-0.008 -0.0017,-0.001 -0.0033,-0.002 -0.005,-0.004 -0.0038,-0.003 -0.0077,-0.006 -0.01158,-0.008 -0.0017,-0.001 -0.0033,-0.002 -0.005,-0.003 -0.004,-0.003 -0.0081,-0.006 -0.01219,-0.008 -0.0016,-0.001 -0.0033,-0.002 -0.0049,-0.003 -0.0043,-0.003 -0.0085,-0.006 -0.01283,-0.009 -0.0016,-0.001 -0.0033,-0.002 -0.0049,-0.003 -0.0045,-0.003 -0.009,-0.006 -0.01352,-0.009 -0.0016,-0.001 -0.0033,-0.002 -0.0049,-0.003 -0.0047,-0.003 -0.0095,-0.006 -0.01424,-0.009 -0.0016,-9.8e-4 -0.0032,-0.002 -0.0048,-0.003 -0.005,-0.003 -0.01,-0.006 -0.01501,-0.009 -0.0016,-9.5e-4 -0.0032,-0.002 -0.0048,-0.003 -0.0052,-0.003 -0.01052,-0.006 -0.01582,-0.009 -0.0016,-9e-4 -0.0032,-0.002 -0.0048,-0.003 -0.0055,-0.003 -0.01108,-0.006 -0.01667,-0.009 -0.0016,-8.6e-4 -0.0032,-0.002 -0.0048,-0.003 -0.0058,-0.003 -0.01168,-0.006 -0.01756,-0.009 -0.0016,-8.1e-4 -0.0032,-0.002 -0.0047,-0.002 -0.0061,-0.003 -0.0123,-0.006 -0.0185,-0.009 -0.0016,-7.7e-4 -0.0031,-0.002 -0.0047,-0.002 -0.0065,-0.003 -0.01296,-0.006 -0.01949,-0.009 -0.0016,-7.1e-4 -0.0031,-0.001 -0.0047,-0.002 -0.0068,-0.003 -0.01364,-0.006 -0.02051,-0.009 -0.0016,-6.7e-4 -0.0031,-0.001 -0.0046,-0.002 -0.0072,-0.003 -0.01435,-0.006 -0.02158,-0.009 -0.0015,-6.2e-4 -0.0031,-0.001 -0.0046,-0.002 -0.0075,-0.003 -0.01509,-0.006 -0.02269,-0.009 -0.0015,-5.7e-4 -0.0031,-0.001 -0.0046,-0.002 -0.0079,-0.003 -0.01585,-0.006 -0.02384,-0.009 -0.0015,-5.3e-4 -0.003,-0.001 -0.0046,-0.002 -0.0083,-0.003 -0.01664,-0.006 -0.02501,-0.008 -0.0015,-4.9e-4 -0.003,-9.6e-4 -0.0045,-0.001 -0.0087,-0.003 -0.01744,-0.005 -0.02621,-0.008 -0.0015,-4.4e-4 -0.003,-8.6e-4 -0.0045,-0.001 -0.0091,-0.003 -0.01825,-0.005 -0.02742,-0.007 -0.0015,-3.8e-4 -0.003,-7.6e-4 -0.0045,-0.001 -0.0095,-0.002 -0.01906,-0.005 -0.02865,-0.007 -0.0015,-3.4e-4 -0.003,-6.7e-4 -0.0044,-0.001 -0.0099,-0.002 -0.01988,-0.004 -0.02986,-0.006 -0.0015,-2.9e-4 -0.0029,-5.7e-4 -0.0044,-8.5e-4 -0.01032,-0.002 -0.02068,-0.004 -0.03106,-0.005 -0.0015,-2.4e-4 -0.0029,-4.7e-4 -0.0044,-7e-4 -0.01072,-0.002 -0.02146,-0.003 -0.03223,-0.005 -0.0015,-1.8e-4 -0.0029,-3.6e-4 -0.0043,-5.4e-4 -0.01109,-0.001 -0.02221,-0.003 -0.03335,-0.004 -0.0015,-1.3e-4 -0.0029,-2.7e-4 -0.0043,-4e-4 -0.01145,-0.001 -0.02292,-0.002 -0.0344,-0.003 -0.0014,-8e-5 -0.0029,-1.6e-4 -0.0043,-2.4e-4 -0.01178,-6.7e-4 -0.02357,-0.001 -0.03536,-0.001 -0.0014,-3e-5 -0.0028,-6e-5 -0.0042,-9e-5 -0.01207,-2.6e-4 -0.02415,-3e-4 -0.03622,-1.1e-4 -0.0014,2e-5 -0.0028,4e-5 -0.0042,6e-5 -0.01233,1.9e-4 -0.02465,6.1e-4 -0.03696,0.001 -0.0014,7e-5 -0.0028,1.4e-4 -0.0042,2.2e-4 -0.01253,6.6e-4 -0.02505,0.002 -0.03755,0.003 -0.0014,1.2e-4 -0.0028,2.5e-4 -0.0042,3.7e-4 -0.01269,0.001 -0.02536,0.003 -0.03799,0.004 -0.0014,1.8e-4 -0.0028,3.6e-4 -0.0041,5.4e-4 -0.01279,0.002 -0.02554,0.004 -0.03826,0.006 -0.0014,2.4e-4 -0.0028,4.7e-4 -0.0041,6.9e-4 -0.01283,0.002 -0.02561,0.005 -0.03835,0.007 -0.0014,2.9e-4 -0.0027,5.7e-4 -0.0041,8.5e-4 -0.01281,0.003 -0.02556,0.006 -0.03825,0.009 -0.0014,3.5e-4 -0.0027,6.9e-4 -0.004,0.001 -0.01407,0.004 -0.02804,0.007 -0.04196,0.0115 -0.08035,0.0237 0,0 0,0 a 0.99218747,0.99218747 90 0 0 0.560948,1.90344 z" - id="path-1-4" - inkscape:path-effect="#path-effect922;#path-effect923" - inkscape:original-d="m 74.017187,172.64062 c 0.339885,-0.10753 1.02753,1.5721 1.719792,1.91823" - style="display:inline;fill:#642a23;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - clip-path="url(#clipPath1275)" /><path - style="display:inline;fill:#642a23;fill-opacity:1;stroke:#8494e5;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 338.875,652.11873 c -4.78873,-0.56154 -6.41302,-2.01841 -4.41234,-3.95754 0.46071,-0.44654 2.08124,-1.46096 3.60116,-2.25426 l 2.7635,-1.44237 1.08258,1.48662 c 1.13648,1.56063 2.579,2.86175 3.8401,3.46367 0.5681,0.27116 0.73344,0.50356 0.68173,0.95825 -0.19964,1.75546 -2.64861,2.32118 -7.55673,1.74563 z" - id="path930" - clip-path="url(#clipPath1273)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:#642a23;fill-opacity:1;stroke:#8494e5;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 335.80393,661.62101 c -4.36072,-1.47674 -10.64595,-4.62634 -11.65256,-5.83924 -0.23558,-0.28385 -0.1271,-0.37913 0.58335,-0.51241 2.0501,-0.3846 1.26487,-1.23057 -3.04722,-3.28295 -1.82188,-0.86714 -3.3125,-1.6574 -3.3125,-1.75614 0,-0.32809 4.08121,0.10651 7.25,0.77203 3.28095,0.68908 5.34453,1.46723 6.22449,2.34719 0.61802,0.61802 0.6904,1.82744 0.13686,2.28684 -0.68181,0.56585 -0.92685,1.23352 -0.59809,1.62965 0.61281,0.73839 2.81944,0.39742 11.42884,-1.76598 8.8803,-2.23148 10.83558,-2.51137 12.29002,-1.75925 1.11354,0.57584 1.41894,2.1938 0.56069,2.9705 -0.56359,0.51005 -1.10428,0.51566 -2.51017,0.0261 -1.87816,-0.65407 -4.1214,0.21471 -7.81244,3.02569 -3.81396,2.90459 -5.48813,3.23061 -9.54127,1.85802 z" - id="path931" - clip-path="url(#clipPath1272)" - transform="scale(0.26458333)" /></g><g - id="g83" - inkscape:label="towers" - style="fill:url(#linearGradient96);fill-opacity:1;stroke:#000405;stroke-opacity:1" - transform="translate(-6.2125015,0.73088253)"><path - style="display:inline;fill:url(#linearGradient1);fill-opacity:1;stroke:#000405;stroke-width:0.0877061;stroke-dasharray:none;stroke-opacity:1" - d="m 54.123967,136.4609 c -1.079856,-0.13038 -1.570619,-0.48306 -1.642707,-1.18063 -0.0742,-0.71797 0.47904,-1.35527 1.320569,-1.52129 0.681288,-0.13434 1.649731,0.17588 2.507415,0.8033 0.553524,0.40491 1.166186,1.15415 1.216902,1.4882 0.02922,0.19244 -0.09598,0.30104 -0.436319,0.37853 -0.342911,0.078 -2.399983,0.1002 -2.96586,0.0318 z" - id="path294" - clip-path="url(#clipPath1322)" /><path - style="display:inline;fill:url(#linearGradient2);fill-opacity:1;stroke:#000405;stroke-width:0.175409;stroke-dasharray:none;stroke-opacity:1" - d="m 62.655884,103.86133 c -0.619979,-0.18299 -1.077302,-0.73339 -1.077302,-1.29657 0,-0.74323 0.729124,-1.36128 1.605855,-1.36128 0.882828,0 1.628147,0.61784 1.624081,1.3463 -0.0053,0.94359 -1.1129,1.61843 -2.152634,1.31155 z" - id="path263" - clip-path="url(#clipPath1353)" /><path - style="display:inline;fill:url(#linearGradient3);fill-opacity:1;stroke:#000405;stroke-width:0.350823;stroke-dasharray:none;stroke-opacity:1" - d="m 75.228731,103.63988 c -0.823982,-0.15279 -1.261174,-0.57508 -1.261174,-1.21821 0,-0.67225 -0.273103,-0.66619 -1.175529,0.026 -1.287306,0.98754 -2.949607,1.37981 -4.517033,1.06593 -1.506317,-0.30163 -2.417597,-1.24717 -1.70898,-1.77326 0.568771,-0.42224 2.555834,-0.53064 8.837944,-0.48208 5.406974,0.0419 5.888034,0.0647 6.552634,0.3117 1.2786,0.47522 1.27575,1.45653 -0.005,1.92908 -0.61808,0.22797 -5.680387,0.33396 -6.722277,0.14078 z" - id="path259" - clip-path="url(#clipPath1357)" /><path - style="display:inline;fill:url(#linearGradient4);fill-opacity:1;stroke:#000405;stroke-width:0.350823;stroke-dasharray:none;stroke-opacity:1" - d="m 72.125463,167.30153 c -1.006299,-0.27794 -1.211156,-0.44693 -1.089448,-0.8987 0.127756,-0.47429 -0.144295,-0.72519 -1.620343,-1.49433 -0.577858,-0.30111 -0.9682,-0.56789 -0.867428,-0.59282 0.255544,-0.0632 2.730973,0.57752 4.329141,1.1206 1.522485,0.51736 2.526574,1.04144 2.526574,1.31873 0,0.53456 -2.071568,0.87988 -3.278496,0.54652 z" - id="path275" - clip-path="url(#clipPath1341)" /><path - style="display:inline;fill:url(#linearGradient5);fill-opacity:1;stroke:#000405;stroke-width:0.175409;stroke-dasharray:none;stroke-opacity:1" - d="m 102.06564,103.07937 c -0.17209,-0.068 -0.43335,-0.24978 -0.58068,-0.40409 -0.2271,-0.23784 -0.27203,-0.35346 -0.29522,-0.75954 -0.0319,-0.55568 0.14959,-0.85958 0.71348,-1.19674 0.9678,-0.57856 2.3815,8.4e-4 2.48049,1.01697 0.10118,1.04107 -1.18937,1.78913 -2.31807,1.3434 z" - id="path262" - clip-path="url(#clipPath1354)" /><path - style="display:inline;fill:url(#linearGradient6);fill-opacity:1;stroke:#000405;stroke-width:0.350823;stroke-dasharray:none;stroke-opacity:1" - d="m 89.319043,103.15769 c -0.29624,-0.0312 -0.88785,-0.0907 -1.31468,-0.132 -1.05094,-0.10181 -1.46833,-0.43715 -1.46833,-1.17948 0,-1.17994 0.61853,-1.30024 6.62728,-1.28914 6.04162,0.0103 6.65936,0.13126 6.65936,1.29507 0,0.64068 -0.40758,1.03107 -1.22627,1.17458 -0.57265,0.10035 -8.50589,0.21243 -9.27736,0.13097 z" - id="path260" - clip-path="url(#clipPath1356)" /><path - style="display:inline;fill:url(#linearGradient7);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" - d="m 106.04798,131.87501 c -0.16873,-0.008 -0.31768,-0.0219 -0.33094,-0.0318 -0.0114,-0.008 0.0178,-0.0504 0.0688,-0.0903 0.50005,-0.38894 3.53155,-1.29019 5.69505,-1.69311 4.20092,-0.78237 8.22391,-0.6535 9.06272,0.29029 0.20149,0.2267 0.198,0.43614 -0.0101,0.59116 -0.50898,0.37964 -2.09194,0.57085 -6.14865,0.74275 -0.61099,0.026 -1.47511,0.0625 -1.92026,0.0818 -2.48177,0.10636 -5.38061,0.15564 -6.41681,0.10914 z" - id="path298" - clip-path="url(#clipPath1318)" /><path - style="display:inline;fill:url(#linearGradient8);fill-opacity:1;stroke:#000405;stroke-width:0.0877061;stroke-dasharray:none;stroke-opacity:1" - d="m 47.373172,136.79663 c -0.452308,-0.0949 -0.580646,-0.33387 -0.357083,-0.66502 0.245089,-0.36308 0.68911,-0.71122 1.791979,-1.40507 1.573974,-0.99026 2.083402,-1.13957 2.338922,-0.68555 0.03558,0.0631 0.08688,0.26595 0.113998,0.45052 0.111217,0.75687 -0.05135,1.13234 -0.693203,1.60109 -0.642152,0.46895 -1.410375,0.69247 -2.522819,0.73404 -0.311269,0.0117 -0.517216,0.003 -0.671805,-0.03 z" - id="path293" - clip-path="url(#clipPath1323)" /><path - style="display:inline;fill:url(#linearGradient9);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" - d="m 127.30333,134.5664 c -0.44301,-0.0296 -1.25878,-0.11648 -1.76159,-0.18753 -1.2529,-0.17704 -1.84811,-0.24951 -2.88713,-0.35154 -1.95372,-0.19185 -3.87138,-0.30192 -5.92077,-0.33989 -1.30219,-0.0242 -1.63289,-0.0408 -2.33667,-0.11852 -1.00233,-0.11047 -1.72466,-0.29181 -1.92842,-0.48411 -0.0865,-0.0816 -0.0851,-0.12159 0.0101,-0.22409 0.66083,-0.72197 6.69162,-0.70821 11.52643,0.0262 2.09267,0.31791 3.43069,0.61327 4.47355,0.98751 0.64585,0.23174 0.9254,0.40282 0.84358,0.5163 -0.0452,0.0625 -0.26642,0.13391 -0.5129,0.16526 -0.18963,0.0243 -1.19459,0.0311 -1.50505,0.0103 z" - id="path299" - clip-path="url(#clipPath1317)" /><path - style="display:inline;fill:url(#linearGradient10);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" - d="m 103.97432,136.81351 c -0.21092,-0.0727 -0.27612,-0.18585 -0.27487,-0.47668 0.001,-0.25145 0.10244,-0.74138 0.19438,-0.93916 0.18747,-0.40349 0.59828,-0.81704 1.25034,-1.25888 1.21668,-0.82444 3.0918,-1.55222 4.4712,-1.73533 0.33675,-0.0448 0.86333,-0.04 1.07905,0.008 0.16418,0.0378 0.37255,0.16199 0.44376,0.2644 0.0849,0.1219 0.11895,0.30748 0.0722,0.3896 -0.12695,0.22193 -0.88421,0.5652 -1.90382,0.86297 -0.59022,0.17236 -1.05254,0.27903 -1.76158,0.40646 -0.32297,0.058 -0.67287,0.12233 -0.77762,0.14269 -0.41442,0.081 -0.57431,0.17313 -0.37296,0.21493 0.048,0.008 0.63718,0.0174 1.30931,0.0167 1.16349,-8.4e-4 1.69419,-0.0155 3.50727,-0.0939 4.59081,-0.19835 7.67164,-0.19422 9.23745,0.0117 0.86071,0.11354 1.34161,0.27719 1.48809,0.50638 0.17682,0.27667 -0.40071,0.4634 -1.74854,0.56532 -0.89166,0.0674 -1.52499,0.0853 -3.81071,0.10696 -3.46399,0.0328 -5.26097,0.10782 -7.35638,0.30688 -1.24252,0.11808 -1.9772,0.22603 -2.74553,0.4035 -0.80472,0.18592 -1.51482,0.30632 -1.87264,0.31749 -0.24323,0.008 -0.359,0.003 -0.42851,-0.0224 z" - id="path297" - clip-path="url(#clipPath1319)" /><path - style="display:inline;fill:url(#linearGradient11);fill-opacity:1;stroke:#000405;stroke-width:0.248069;stroke-dasharray:none;stroke-opacity:1" - d="m 62.207634,144.7876 c -0.16012,-0.0832 -0.458504,-0.32292 -0.663057,-0.53255 -0.566503,-0.58056 -0.484563,-1.081 0.225295,-1.37591 0.11448,-0.0475 0.171209,-0.14771 0.129454,-0.22851 -0.130322,-0.25216 -1.389238,-0.51968 -3.853276,-0.81888 -3.695947,-0.44877 -5.608794,-0.8551 -5.473929,-1.16283 0.304238,-0.69409 6.914315,-0.68074 9.0429,0.0182 0.797005,0.26172 1.795701,0.83074 2.075119,1.18231 0.236656,0.29779 0.240979,0.35643 0.07421,1.00614 -0.307533,1.19821 -0.776293,2.06335 -1.11798,2.06335 -0.08117,0 -0.278604,-0.0681 -0.438732,-0.1514 z" - id="path289" - clip-path="url(#clipPath1327)" /><path - style="display:inline;fill:url(#linearGradient12);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" - d="m 121.68529,129.09165 c -1.04355,-0.0518 -2.54312,-0.16641 -4.3325,-0.33078 -2.10279,-0.19318 -3.32856,-0.36398 -3.46074,-0.48222 -0.0306,-0.0274 -0.0207,-0.0384 0.0531,-0.0599 0.14623,-0.0423 0.59404,-0.0887 1.12229,-0.11631 0.77444,-0.0406 3.93155,-0.0576 4.74515,-0.0254 2.42662,0.0955 3.97384,0.32289 4.39055,0.64535 0.19955,0.15437 0.0971,0.27114 -0.29606,0.33688 -0.26816,0.0448 -1.58579,0.064 -2.22181,0.0323 z" - id="path301" - clip-path="url(#clipPath1315)" /><path - style="display:inline;fill:url(#linearGradient13);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" - d="m 130.49324,137.2651 c -3.48586,-0.43773 -6.49649,-1.0932 -6.7508,-1.46975 -0.0465,-0.0688 0.0102,-0.22423 0.11425,-0.31893 0.10575,-0.0952 0.34969,-0.19225 0.62173,-0.24732 0.29246,-0.0592 1.1415,-0.0713 1.63463,-0.0237 1.08736,0.10562 2.24249,0.35863 3.27758,0.7178 l 0.32496,0.11281 0.25775,0.26886 c 0.2559,0.26697 0.5082,0.55075 0.74492,0.83789 l 0.1234,0.14969 -0.0868,-0.003 c -0.0477,-0.003 -0.16557,-0.0132 -0.26154,-0.0248 z" - id="path300" - clip-path="url(#clipPath1316)" /><path - style="display:inline;fill:url(#linearGradient14);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" - d="m 111.50101,127.20593 c -0.69704,-0.0459 -1.17239,-0.18419 -1.3095,-0.38105 -0.11362,-0.16318 0.0265,-0.47848 0.28853,-0.64793 0.22329,-0.14459 0.47106,-0.21568 0.84288,-0.24198 0.38552,-0.0274 0.57944,-0.0866 0.69235,-0.21202 0.0996,-0.11061 0.0842,-0.28623 -0.0372,-0.42221 -0.0467,-0.0524 -0.0849,-0.10972 -0.0849,-0.12745 0,-0.0539 0.10168,-0.10387 0.30154,-0.14811 0.55167,-0.12204 2.38308,0.0335 3.21218,0.27287 0.56488,0.16309 0.95814,0.37737 1.10693,0.60315 0.0971,0.14728 0.0922,0.24265 -0.0197,0.37638 -0.45724,0.54925 -3.14932,1.04965 -4.99398,0.92828 z" - id="path302" - clip-path="url(#clipPath1314)" /><path - style="display:inline;fill:url(#linearGradient15);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" - d="m 115.39243,123.06003 c -0.97704,-0.0336 -1.73377,-0.12862 -2.16309,-0.27169 -0.34078,-0.11354 -0.4093,-0.2178 -0.25874,-0.39365 0.35833,-0.41862 1.97752,-0.70149 4.01717,-0.70181 0.99284,-1.8e-4 1.61341,0.046 2.25281,0.16772 0.70222,0.1336 1.1207,0.36505 1.02578,0.56724 -0.18727,0.39892 -2.59104,0.71069 -4.87393,0.63219 z" - id="path303" - clip-path="url(#clipPath1313)" /><path - style="display:inline;fill:url(#linearGradient16);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 151.93788,550.22433 c -2.38766,-0.7189 -2.90401,-1.60603 -1.97756,-3.3976 1.15847,-2.24023 5.06252,-3.89414 11.96437,-5.06857 7.36888,-1.25391 9.74627,-1.29591 10.17459,-0.17975 1.56915,4.08915 -13.63735,10.61023 -20.1614,8.64592 z" - id="path900" - clip-path="url(#clipPath1295)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient17);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 180.5,546.78218 c -5.68147,-0.63858 -6.47108,-1.41581 -3.7578,-3.69889 3.74812,-3.15384 12.60124,-4.98252 24.0078,-4.95901 11.58768,0.0239 16.73523,1.30683 23.80738,5.93362 l 2.94262,1.92514 -3.75,0.3242 c -6.16814,0.53327 -39.47678,0.89903 -43.25,0.47494 z" - id="path899" - clip-path="url(#clipPath1296)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient18);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 193.25,501.68457 c -3.61377,-1.08355 -3.88128,-2.28991 -0.97468,-4.39543 2.66863,-1.93315 6.14716,-2.6684 9.58071,-2.02505 2.85318,0.5346 4.50402,1.52331 6.08977,3.64725 0.95709,1.28192 0.96402,1.39314 0.1383,2.21911 -0.71767,0.71789 -1.93449,0.8878 -6.97669,0.97419 -3.35908,0.0576 -6.89491,-0.13148 -7.85741,-0.42007 z" - id="path894" - clip-path="url(#clipPath1301)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient19);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 177.97053,516.20232 c -0.18616,-0.30122 -0.0528,-1.08152 0.29642,-1.734 0.69794,-1.30411 8.59366,-6.70088 11.67889,-7.98258 1.78788,-0.74274 2.01111,-0.74308 2.75,-0.004 0.5047,0.50471 0.80416,1.65667 0.80416,3.09348 0,2.04315 -0.2116,2.47224 -1.96777,3.99033 -1.08227,0.93555 -3.09186,2.03481 -4.46575,2.44282 -2.91783,0.8665 -8.60538,0.9879 -9.09595,0.19414 z" - id="path897" - clip-path="url(#clipPath1298)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient20);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 202.75,515.18941 c -4.144,-1.23351 -5.37238,-4.9375 -2.53801,-7.653 3.69442,-3.53947 11.7474,-1.07631 15.88091,4.85749 1.03343,1.48352 1.18798,2.02523 0.71327,2.5 -0.78287,0.78296 -11.65094,1.01145 -14.05617,0.29551 z" - id="path895" - clip-path="url(#clipPath1300)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient21);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 168.75,528.45218 c 0,-0.16379 0.4471,-0.9257 0.99355,-1.69313 1.40385,-1.97152 4.51962,-3.06685 9.91864,-3.48683 4.12573,-0.32093 4.79994,-0.51122 5.85935,-1.65374 1.78109,-1.92082 5.5326,-2.50912 14.4314,-2.26307 5.21054,0.14407 8.08737,0.44169 9.2923,0.96132 l 1.74523,0.75265 -1.24523,0.8055 c -1.49311,0.96585 -7.78513,2.58465 -13.08458,3.36639 -3.43681,0.50698 -6.66172,0.57496 -16.66066,0.35125 -2.399,-0.0537 -3.71795,0.25587 -6.58381,1.54518 -3.51968,1.58345 -4.66619,1.90643 -4.66619,1.31448 z" - id="path896" - clip-path="url(#clipPath1299)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient22);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 233.8357,546.2546 c -3.08453,-2.23442 -3.45071,-5.01038 -0.79417,-6.02039 3.51547,-1.33658 -1.76614,-2.86262 -15.54153,-4.4905 -11.76692,-1.39053 -18.75,-2.87466 -18.75,-3.98498 0,-2.41606 23.93084,-2.60189 33.00322,-0.25629 3.31387,0.85678 8.21976,3.43301 9.19857,4.83045 0.61897,0.88372 0.58499,1.45663 -0.26923,4.5392 -1.07424,3.87651 -1.53424,4.90816 -2.715,6.08892 -1.11126,1.11126 -1.78062,0.99682 -4.13186,-0.70641 z" - id="path898" - clip-path="url(#clipPath1297)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient23);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 161.84442,538.85133 c -2.77413,-0.42947 -1.54539,-2.84683 2.48626,-4.89134 5.83117,-2.95707 18.25236,-4.8826 24.65387,-3.82184 1.89063,0.31329 3.76229,0.8944 4.15924,1.29136 0.62899,0.62898 0.5504,0.834 -0.61152,1.59532 -2.05437,1.34608 -7.26735,2.61783 -15.25482,3.72157 -4.0026,0.55308 -8.85245,1.29321 -10.77745,1.64472 -1.925,0.35151 -4.02001,0.5586 -4.65558,0.46021 z" - id="path901" - clip-path="url(#clipPath1294)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient24);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 236.97704,392.4105 c -1.93113,-0.38381 -3.87186,-2.53458 -3.99899,-4.43177 -0.0943,-1.40723 0.21758,-2.13004 1.5106,-3.50104 1.35129,-1.43278 1.98482,-1.72769 3.71145,-1.72769 2.60858,0 5.29831,1.09565 6.02553,2.45447 0.75915,1.41848 0.4913,4.42046 -0.4722,5.29242 -0.97315,0.88069 -4.24139,2.27753 -5.11237,2.18502 -0.35258,-0.0375 -1.10139,-0.15958 -1.66402,-0.27141 z" - id="path903" - clip-path="url(#clipPath1292)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient25);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 392.42937,515.99623 c -0.54069,-1.40901 0.36503,-4.26201 1.91258,-6.02457 3.72705,-4.24487 15.29084,-9.20885 21.47183,-9.21719 2.44421,-0.003 3.48959,0.20737 3.98378,0.80284 0.57425,0.69193 0.50486,0.94103 -0.48555,1.74302 -1.43531,1.16224 -7.40787,3.07308 -13.18701,4.21901 -2.40625,0.47713 -4.375,1.06171 -4.375,1.29908 0,0.53807 10.10049,0.52259 28.06509,-0.043 15.36454,-0.48375 26.24372,-0.0365 29.20447,1.20056 4.67645,1.95394 -0.20486,2.61549 -24.01956,3.2553 -19.11202,0.51346 -27.33434,1.16202 -34.65769,2.73374 -4.71115,1.0111 -7.53266,1.02224 -7.91294,0.0312 z" - id="path902" - clip-path="url(#clipPath1293)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient26);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 385.97904,389.32321 c -2.16304,-0.99662 -3.72904,-2.90643 -3.72904,-4.54773 0,-1.823 2.57996,-4.12027 5.04791,-4.49481 5.88992,-0.89387 9.5541,4.45991 5.48433,8.01322 -0.91726,0.80086 -1.91851,1.45918 -2.225,1.46294 -0.30648,0.004 -1.00724,0.11723 -1.55724,0.25218 -0.55,0.13494 -1.90943,-0.17367 -3.02096,-0.6858 z" - id="path904" - clip-path="url(#clipPath1291)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient27);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 419.59958,480.29838 c -1.04524,-0.21958 -2.16518,-0.66398 -2.48877,-0.98757 -0.94115,-0.94116 0.22788,-2.25402 2.43817,-2.73815 3.64648,-0.79871 4.33429,-1.23531 4.07586,-2.58723 -0.23343,-1.2211 -0.19453,-1.23543 3.35266,-1.23543 6.46508,0 13.2725,1.92199 13.2725,3.74732 0,0.39985 -0.61875,1.04286 -1.375,1.42891 -3.5347,1.80439 -15.16486,3.23567 -19.27542,2.37215 z" - id="path906" - clip-path="url(#clipPath1289)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient28);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 401.29496,497.55249 c 3.433,-1.98977 18.14422,-5.67007 27.45504,-6.86842 6.48007,-0.83403 18.57717,-0.8343 21.8692,-5e-4 2.76266,0.69972 5.1308,2.21014 5.1308,3.27246 0,2.22217 -13.03227,3.49837 -41.5,4.06393 -12.82734,0.25483 -14.12072,0.20816 -12.95504,-0.46747 z" - id="path905" - clip-path="url(#clipPath1290)" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient29);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 429.375,464.16703 c -3.0054,-0.67304 -2.72674,-1.70383 0.75,-2.77428 4.23942,-1.30528 19.48827,-1.29515 22.375,0.0149 1.82763,0.82938 1.92324,0.96439 1.10938,1.56654 -2.12171,1.56977 -18.8701,2.39417 -24.23438,1.19288 z" - id="path907" - clip-path="url(#clipPath1288)" - transform="scale(0.26458333)" /><path - style="fill:url(#linearGradient30);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 455.5,487.41384 c -9.3724,-0.78753 -19.43813,-1.76964 -21.5,-2.09775 l -2.5,-0.39782 2.44602,-0.40156 c 3.25879,-0.53499 26.20515,0.0106 30.25518,0.71944 7.13013,1.24782 6.35846,2.53578 -1.4512,2.42214 -2.8875,-0.042 -6.15,-0.15202 -7.25,-0.24445 z" - id="path908" - transform="scale(0.26458333)" - clip-path="url(#clipPath1287)" - inkscape:label="t4" /><path - style="fill:url(#linearGradient31);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 471,507.23917 c -6.18268,-0.84316 -13.92009,-1.41828 -33,-2.45289 -8.11931,-0.44027 -12.25743,-1.2018 -12.42345,-2.28628 -0.19249,-1.25731 5.02462,-1.89339 15.67345,-1.91093 10.55265,-0.0174 17.04342,0.44428 27.5,1.95595 9.32431,1.34799 19.5,4.08285 19.5,5.2409 0,0.74299 -10.15216,0.4212 -17.25,-0.54675 z" - id="path909" - transform="scale(0.26458333)" - clip-path="url(#clipPath1286)" - inkscape:label="t2" /><path - style="fill:url(#linearGradient32);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 485.70952,517.48748 c -7.00135,-1.12651 -13.93167,-2.68134 -16.78226,-3.76514 -1.27523,-0.48484 -1.30268,-0.56103 -0.49279,-1.36789 1.41878,-1.41346 11.2927,-1.09339 16.98849,0.55069 2.43263,0.70218 4.87566,1.68577 5.42896,2.18577 1.32805,1.20011 3.07628,3.67113 2.55713,3.61435 -0.22498,-0.0246 -3.68977,-0.57261 -7.69953,-1.21778 z" - id="path910" - transform="scale(0.26458333)" - clip-path="url(#clipPath1285)" - inkscape:label="t3" /><path - style="display:inline;fill:url(#linearGradient33);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 284.68584,391.74134 c -4.02532,-0.68018 -4.62873,-1.27647 -5.04586,-4.98623 -0.21437,-1.90646 -1.36341,-1.73327 -4.60381,0.69388 -1.63011,1.221 -4.21761,2.6221 -5.75,3.11356 -3.37973,1.08391 -9.84278,1.2117 -13.11863,0.25938 -2.86903,-0.83406 -5.37741,-2.90288 -5.5433,-4.57193 -0.10054,-1.0116 0.25721,-1.44073 1.87576,-2.25 1.90194,-0.95097 3.17569,-1.00785 25.97915,-1.16 C 310.00284,382.62966 313,383.03425 313,387.5 c 0,2.60547 -1.50004,3.62191 -6.25,4.23506 -4.39386,0.56717 -18.72065,0.57126 -22.06416,0.006 z" - id="path915" - clip-path="url(#clipPath1280)" - inkscape:label="tower-acc1" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient34);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 337,389.72757 c -8.34708,-0.50638 -10.25,-1.37037 -10.25,-4.65381 0,-3.35409 1.69024,-4.21377 9.65093,-4.9086 7.50572,-0.65511 34.18937,-0.21472 37.19492,0.61388 2.65812,0.73281 3.75415,1.94658 3.75415,4.15742 0,2.16627 -0.27386,2.6192 -2.17947,3.60463 -2.8304,1.46366 -23.17659,2.09609 -38.17053,1.18648 z" - id="path916" - clip-path="url(#clipPath1279)" - inkscape:label="tower-acc2" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient35);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 272.24676,632.31078 c -0.68928,-0.22504 -1.98174,-0.7859 -2.87214,-1.24634 -1.4053,-0.72671 -1.54148,-0.96114 -1.03212,-1.77676 0.94705,-1.51646 -0.54793,-3.14293 -5.03416,-5.47693 -4.34497,-2.2605 -5.54795,-3.30056 -3.22524,-2.78843 12.95572,2.85658 25.1669,7.33708 25.1669,9.23418 0,0.25874 -0.59517,0.86041 -1.32259,1.33704 -1.47133,0.96405 -9.42822,1.45264 -11.68065,0.71724 z" - id="path917" - clip-path="url(#clipPath1278)" - inkscape:label="tower-acc5" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient36);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="M 299.49021,639.01992 C 294.06335,637.7631 290.75,636.56255 290.75,635.853 c 0,-0.80186 1.67336,-1.95461 5.90909,-4.07067 2.39202,-1.19499 4.0744,-2.33367 3.95976,-2.68005 -0.12242,-0.36988 -1.83291,-0.72808 -4.43289,-0.92829 -4.64647,-0.3578 -7.93596,-1.45029 -7.93596,-2.63564 0,-1.38933 -2.9285,-2.35409 -8.42672,-2.7761 -7.53666,-0.57847 -9.92535,-1.70821 -7.59744,-3.59323 0.86804,-0.7029 1.98625,-0.91902 4.75494,-0.91902 3.98906,0 6.09535,0.56361 8.83952,2.36534 2.93925,1.92981 6.89234,2.23263 17.48399,1.33932 10.17792,-0.85841 12.19571,-0.81766 12.19571,0.24632 0,1.09749 -3.36289,2.56962 -7.06888,3.09445 -1.85835,0.26317 -3.77994,0.8415 -4.27019,1.28518 -2.12528,1.92335 -1.56621,6.35216 1.34864,10.68361 0.95724,1.42245 1.74043,2.67616 1.74043,2.78602 0,0.46302 -3.0741,0.0548 -7.75979,-1.03032 z" - id="path918" - clip-path="url(#clipPath1277)" - inkscape:label="tower-acc4" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient37);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" - d="m 289.625,619.19782 c -4.1805,-1.61491 1.90005,-4.35627 13.22579,-5.96272 3.88618,-0.55122 5.89921,-0.18204 5.89921,1.08188 0,1.19319 -3.11637,3.33502 -6.09977,4.19227 -3.69169,1.06077 -11.05418,1.44998 -13.02523,0.68857 z" - id="path919" - clip-path="url(#clipPath1276)" - inkscape:label="tower-acc3" - transform="scale(0.26458333)" /><path - style="display:inline;fill:url(#linearGradient38);fill-opacity:1;stroke:#000405;stroke-width:0.347717;stroke-dasharray:none;stroke-opacity:1" - d="m 297.86094,661.63457 c -2.51887,-1.02422 -8.97335,-4.57183 -9.82791,-5.40177 -0.50102,-0.48659 -1.49192,-1.74566 -2.20199,-2.79795 -1.63965,-2.42985 -3.01091,-3.91837 -3.97919,-4.31944 -0.55309,-0.2291 -0.67074,-0.37203 -0.43122,-0.5239 0.3787,-0.24014 3.69568,-0.241 7.32937,-0.002 3.41919,0.22498 6.2707,-0.0391 7.09888,-0.65744 0.91379,-0.68224 0.84862,-1.52915 -0.17052,-2.21595 -1.13721,-0.76636 -2.83993,-1.09615 -6.97602,-1.35113 -3.31881,-0.20459 -6.01964,-0.68954 -7.1965,-1.29215 -1.05144,-0.5384 -1.88084,-1.5355 -1.88084,-2.26114 0,-0.39581 -0.11646,-0.93727 -0.2588,-1.20323 -0.52922,-0.98886 -1.61506,-0.51572 -4.23008,1.84321 -0.75014,0.67668 -1.72754,1.40374 -2.172,1.61569 -0.73738,0.35163 -0.86461,0.34834 -1.45358,-0.0376 -0.84095,-0.55101 -2.13554,-2.34639 -2.13554,-2.96163 0,-0.70317 1.26444,-1.85305 2.3947,-2.17773 2.04118,-0.58637 5.14839,-0.78958 8.00643,-0.52361 4.08242,0.37991 7.22438,1.25182 10.72387,2.97596 4.45691,2.19583 7.21454,2.84503 14.17027,3.33595 4.68539,0.33068 11.10779,0.0406 14.95473,-0.67549 5.53742,-1.03076 7.99872,-2.84121 6.59233,-4.84912 -0.95507,-1.36355 -2.89621,-1.57312 -7.21733,-0.77922 -3.43506,0.63111 -5.14898,0.63076 -7.19591,-10e-4 -1.24825,-0.38555 -1.83889,-0.73981 -2.55502,-1.53248 -0.86489,-0.95733 -0.92302,-1.1187 -0.81351,-2.25837 0.13737,-1.42961 0.94711,-2.57869 2.82366,-4.00697 1.40011,-1.06564 5.2907,-3.0516 6.70417,-3.42215 l 0.96339,-0.25256 2.75081,2.627 c 1.51294,1.44485 4.28567,3.94142 6.16161,5.54792 4.52729,3.87705 8.21231,7.54423 8.42251,8.38175 0.41474,1.65243 -1.42378,2.10784 -10.76171,2.66572 -6.95642,0.4156 -10.22664,1.16816 -14.75,3.39436 -1.2375,0.60904 -3.375,1.41032 -4.75,1.78062 -2.42157,0.65215 -2.68824,0.67165 -8.5,0.62172 -8.90469,-0.0765 -9.88175,0.13294 -9.52366,2.0417 0.26593,1.41757 1.45253,2.59223 3.10335,3.07213 1.80636,0.52513 5.6563,0.34028 8.29531,-0.39828 1.03125,-0.28861 2.71875,-0.75782 3.75,-1.04269 5.49381,-1.5176 13.76556,-0.42928 15.88545,2.09006 1.22305,1.45352 0.57038,2.64295 -2.15838,3.93345 -2.0337,0.96179 -4.50091,1.3491 -7.58734,1.19109 -2.79994,-0.14335 -3.92103,-0.47594 -7.76473,-2.30355 -2.44706,-1.16354 -4.22008,-1.879 -4.65643,-1.879 -0.54803,0 -0.10036,0.85641 1.26247,2.41515 1.86798,2.13653 1.82211,2.43499 -0.2451,1.59442 z" - id="path929" - clip-path="url(#clipPath1274)" - inkscape:label="tower-acc6" - transform="scale(0.26458333)" /><g - id="g892" - style="display:inline;fill:url(#linearGradient51);fill-opacity:1;stroke:#000405;stroke-opacity:1" - clip-path="url(#clipPath1244)"><path - style="fill:url(#linearGradient39);fill-opacity:1;stroke:#000405;stroke-width:0.0423327;stroke-dasharray:none;stroke-opacity:1" - d="m 80.317473,62.187896 c -1.776378,-0.0438 -2.440923,-0.168563 -2.390527,-0.449081 0.03552,-0.197614 0.562306,-0.628529 1.003717,-0.821029 0.83031,-0.362089 2.1551,-0.648276 3.56331,-0.76974 0.4814,-0.04146 1.86489,-0.03444 2.36773,0.01172 1.34381,0.124525 2.30376,0.382174 2.81866,0.756643 0.20413,0.148433 0.29731,0.271624 0.34846,0.460785 0.12182,0.450766 -0.45974,0.670062 -2.03159,0.765932 -1.03153,0.06284 -3.98759,0.086 -5.67976,0.04424 z" - id="path200" /><path - style="fill:url(#linearGradient40);fill-opacity:1;stroke:#000405;stroke-width:0.0423327;stroke-dasharray:none;stroke-opacity:1" - d="m 76.00853,65.489215 c -0.22038,-0.02344 -0.459133,-0.08395 -0.51407,-0.130386 -0.09168,-0.07765 -0.09099,-0.135512 0.0032,-0.277763 0.127105,-0.19168 0.514648,-0.500313 1.212079,-0.965317 0.997655,-0.665169 3.025834,-1.126703 5.128194,-1.167005 1.50158,-0.02872 2.60941,0.154002 3.09837,0.511197 0.1909,0.139468 0.26436,0.251086 0.27796,0.422345 0.0102,0.116174 -0.001,0.147466 -0.0809,0.249064 -0.33354,0.423722 -1.74545,0.821191 -3.66803,1.03262 -0.45752,0.05025 -2.33642,0.206023 -3.249843,0.26934 -0.831241,0.05757 -1.928795,0.08541 -2.206988,0.05596 z" - id="path201" /><path - style="fill:url(#linearGradient41);fill-opacity:1;stroke:#000405;stroke-width:0.0423327;stroke-dasharray:none;stroke-opacity:1" - d="m 83.433143,68.570782 c -2.45886,-0.03575 -4.51947,-0.220379 -5.407642,-0.484344 -1.005958,-0.298976 -0.883794,-0.683861 0.364454,-1.148237 0.972068,-0.361605 2.842148,-0.797516 4.129128,-0.962475 0.76946,-0.09859 1.14464,-0.121888 1.97249,-0.122328 1.53508,-7.9e-4 2.66873,0.156345 4.71861,0.65443 1.04394,0.253665 1.87455,0.513717 2.27301,0.711653 0.17464,0.08673 0.41079,0.254778 0.46446,0.33049 0.15782,0.222445 -0.13062,0.439938 -0.79741,0.601236 -1.29881,0.314241 -4.18357,0.471114 -7.7171,0.419634 z" - id="path202" /><path - style="fill:url(#linearGradient42);fill-opacity:1;stroke:#000405;stroke-width:0.0423327;stroke-dasharray:none;stroke-opacity:1" - d="m 79.601913,71.750417 c -5.681063,-0.04879 -8.444294,-0.257166 -8.849345,-0.667073 -0.191674,-0.193966 0.331849,-0.48093 1.499912,-0.822099 1.117744,-0.326489 1.890447,-0.463672 3.384023,-0.600797 4.67945,-0.429596 12.51472,-0.351511 15.57032,0.155144 0.69447,0.115149 1.20717,0.271406 1.99073,0.606642 2.0285,0.867894 0.58663,1.203658 -5.60522,1.30527 -1.9149,0.03135 -5.73026,0.04234 -7.99042,0.02285 z" - id="path203" /><path - style="fill:url(#linearGradient43);fill-opacity:1;stroke:#000405;stroke-width:0.0423327;stroke-dasharray:none;stroke-opacity:1" - d="m 95.344243,75.12245 c -0.0655,-0.0043 -0.40856,-0.03252 -0.7621,-0.06299 -0.58346,-0.05025 -0.89771,-0.08438 -2.42812,-0.263583 -2.32993,-0.272871 -6.25375,-0.503798 -9.61533,-0.565899 -1.58068,-0.02931 -2.30314,-0.08204 -2.92186,-0.213729 -0.53889,-0.11471 -0.846966,-0.265649 -1.012359,-0.496005 -0.09146,-0.127455 -0.102458,-0.162541 -0.114671,-0.366411 -0.06027,-1.006162 0.88503,-1.134628 6.00177,-0.815638 3.77014,0.23503 8.08935,0.607784 9.63931,0.831885 0.52715,0.07618 0.87225,0.1603 1.22455,0.298346 0.79604,0.311913 1.33776,0.702599 1.5471,1.115715 0.0922,0.181924 0.10168,0.235689 0.0557,0.317465 -0.0971,0.172738 -0.39156,0.236949 -1.06233,0.231793 -0.23774,-0.0029 -0.48599,-0.0074 -0.55158,-0.01025 z" - id="path204" /><path - style="fill:url(#linearGradient44);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" - d="m 68.114605,75.160555 c -0.251015,-0.07487 -0.246618,-0.294509 0.01362,-0.675644 0.614251,-0.89989 2.723722,-1.610121 5.231133,-1.761281 1.877864,-0.113244 3.453455,0.09449 3.867718,0.509791 0.147885,0.148258 0.154989,0.191036 0.06003,0.36124 -0.16294,0.292033 -0.530083,0.48367 -1.248765,0.651822 -1.253917,0.293395 -3.760855,0.655206 -6.114866,0.88253 -1.112739,0.107386 -1.530011,0.114856 -1.80878,0.0315 z" - id="path205" /><path - style="fill:url(#linearGradient45);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" - d="m 65.247382,77.851743 c -0.217985,-0.0504 -0.27407,-0.09713 -0.27407,-0.227865 0,-0.403168 0.858626,-0.839532 2.247135,-1.142026 1.764787,-0.384473 6.860545,-1.003613 10.613196,-1.289522 4.41499,-0.336378 12.55537,0.308838 15.0095,1.189639 0.89991,0.322988 1.03013,0.614962 0.36266,0.813236 -0.85634,0.254367 -2.49298,0.260389 -8.87878,0.03266 -4.1286,-0.147233 -9.693542,-0.0088 -12.77597,0.315166 -2.364567,0.249401 -3.286963,0.317948 -4.638151,0.344625 -0.815697,0.01596 -1.504851,0.0011 -1.66552,-0.0359 z" - id="path206" /><path - style="fill:url(#linearGradient46);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" - d="m 60.004871,82.08924 c 0.01933,-0.01172 0.553012,-0.361151 1.185979,-0.775116 1.382154,-0.903963 1.70709,-1.074577 2.713305,-1.424786 1.837539,-0.639515 4.468314,-1.122159 8.168532,-1.498606 2.007383,-0.204236 4.513992,-0.405541 5.653848,-0.454062 l 0.904859,-0.03854 0.372639,0.276637 c 0.42802,0.317757 0.60329,0.687523 0.52553,1.108681 -0.15783,0.855238 -1.207033,1.120432 -5.743761,1.451918 -5.454501,0.398538 -9.922726,0.832998 -12.860162,1.250479 -0.947229,0.134633 -0.974482,0.13771 -0.920769,0.10343 z" - id="path207" /><path - style="fill:url(#linearGradient47);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" - d="m 103.68063,81.980024 c -2.68283,-0.499052 -6.138847,-0.810788 -12.396427,-1.118204 -6.28127,-0.308559 -9.08954,-0.59167 -10.13969,-1.022174 -0.36299,-0.148801 -0.44055,-0.277061 -0.36011,-0.595435 0.15655,-0.61946 0.56365,-0.803639 1.96388,-0.888463 0.90785,-0.05508 3.53761,0.0029 5.75305,0.124085 0.62614,0.03458 2.10612,0.10548 3.28884,0.157546 5.69075,0.250442 7.92165,0.579129 9.674117,1.425372 0.72781,0.351453 3.47787,2.122169 3.26854,2.104544 -0.0452,-0.0029 -0.51882,-0.08819 -1.0522,-0.187314 z" - id="path208" /><path - style="fill:url(#linearGradient48);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" - d="m 65.458212,84.581117 c -0.136973,-0.10548 -0.04729,-0.332438 0.310927,-0.78672 0.850047,-1.078034 2.147709,-1.570187 4.923257,-1.8672 2.186631,-0.23399 3.782067,-0.281954 9.165157,-0.275523 9.65143,0.01172 16.92956,0.341741 19.18353,0.870341 0.58828,0.138004 0.71241,0.194934 1.053207,0.483421 0.6222,0.526667 0.94364,1.107408 0.73895,1.33501 -0.25423,0.282643 -1.393247,0.30453 -3.435147,0.06593 -2.29937,-0.268607 -4.49344,-0.378029 -9.74006,-0.485778 -7.67049,-0.157503 -16.602476,0.06329 -19.648839,0.485924 -1.223632,0.169721 -2.44841,0.253519 -2.550982,0.174526 z" - id="path209" /><path - style="fill:url(#linearGradient49);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" - d="m 105.43159,85.493929 c -1.43365,-0.192238 -2.55818,-0.694923 -3.22806,-1.442995 -0.20868,-0.233053 -0.43384,-0.538241 -0.50038,-0.678208 -0.11069,-0.233037 -0.10777,-0.266571 0.035,-0.397791 0.1415,-0.129799 0.23896,-0.145328 1.03388,-0.164314 0.77079,-0.0186 0.9592,-8.06e-4 1.5466,0.144888 0.82804,0.205423 1.90334,0.624163 2.54466,0.990912 0.51592,0.29505 1.79256,1.25631 1.79256,1.349732 0,0.03062 -0.0608,0.09318 -0.13517,0.138882 -0.16182,0.09962 -2.45861,0.143423 -3.08929,0.05874 z" - id="path210" /><path - style="fill:url(#linearGradient50);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" - d="m 56.548821,85.781684 c -0.06797,-0.0608 -0.07142,-0.135219 -0.01168,-0.251862 0.135572,-0.264726 0.668609,-0.861875 1.002721,-1.123304 1.691349,-1.323451 5.684958,-2.147177 6.622426,-1.365936 0.260448,0.217039 0.147846,0.583056 -0.37813,1.22909 l -0.455287,0.55922 -2.108251,0.352815 c -1.15954,0.194054 -2.54923,0.42784 -3.088203,0.519548 -1.104722,0.187959 -1.44413,0.205203 -1.583601,0.08043 z" - id="path211" /></g></g></g><g - inkscape:label="Castle" - inkscape:groupmode="layer" - id="layer1" - style="display:inline" - transform="translate(-6.7520832,-1.5246326)"><g - transform="matrix(0.11310049,0,0,-0.07077356,-89.486071,240.59322)" - fill="#000000" - stroke="none" - id="g43" - clip-path="url(#clipPath1271)" - style="stroke-width:25.5846;stroke-dasharray:none"><path - id="path1" - style="stroke-width:25.5846;stroke-dasharray:none" - d="m 1506.7484,2864.5131 c -0.3527,-0.085 -0.7068,-0.1654 -1.06,-0.2483 0.079,-1.1765 0.2713,-2.4208 0.3655,-3.607 0.08,0.4823 0.1637,0.9526 0.2422,1.4458 0.083,0.5214 0.1338,1.0572 0.201,1.5844 0.048,0.3749 0.1916,0.4788 0.2513,0.8251 z m 11.1303,-37.0778 c -0.089,-0.1469 -0.175,-0.2995 -0.265,-0.4454 -0.2619,-0.4248 -0.5324,-0.834 -0.7996,-1.2486 0.1287,0.1146 0.2575,0.229 0.3838,0.3505 0.2163,0.2246 0.3811,0.4039 0.5346,0.5622 0.05,0.2631 0.096,0.5171 0.1462,0.7813 z m -48.1991,-60.487 c -0.025,-0.022 -0.048,-0.044 -0.073,-0.066 0,-0.01 0.01,-0.01 0.014,-0.015 0.019,0.028 0.04,0.053 0.059,0.08 z m -13.7255,-80.0845 c -8.3891,-0.797 -5.9506,-7.3619 6.0494,-26.8628 12.3935,-20.3607 2.7832,-39.8625 -20.3872,-44.0874 -0.8853,-2.4406 -1.7661,-4.8838 -2.6683,-7.309 -0.8649,-2.2702 -1.7868,-4.4826 -2.6866,-6.7175 -0.4949,-1.2428 -0.909,-2.5599 -1.2794,-3.9064 -0.4101,-1.5106 -0.8434,-2.9996 -1.2291,-4.527 -0.1243,-0.5099 -0.2534,-1.0165 -0.3883,-1.5188 3.5626,-31.5072 -98.6461,-243.2951 -168.3658,-345.9379 -30,-46 -54.9979,-84.9999 -54.9979,-88.9999 0,-4 19.9956,-6.995 43.9956,-6.995 h 42.9995 l 7.0044,-71.0014 c 8,-76 4.9979,-89.0009 -18.0021,-70.0009 -23,20 -35.9997,3.9998 -35.9997,-45.0002 0,-33 -4.0009,-43.9998 -16.0009,-43.9998 -10,0 -13.9984,-7.0055 -11.9984,-17.0055 2,-10 9.0003,-16.9906 15.0003,-15.9906 18,4 103.0015,-140.0063 90.0015,-153.0063 -9,-9 -77.0025,10.0072 -77.0025,22.0072 0,10 10.0024,11.9956 33.0024,8.9956 l 32.0018,-5.0016 -27.0033,10.9963 c -16,6 -27.9992,17.0079 -27.9992,24.0079 0,13.0101 -5.2237,19.4937 -13.6798,19.8751 -0.1219,-0.4002 -0.2476,-0.7976 -0.361,-1.2048 -0.1169,-0.6394 -0.4458,-1.5248 -0.5666,-2.3146 -0.3429,-1.5434 -0.7062,-3.0761 -1.0691,-4.6074 -0.413,-1.7989 -0.9245,-3.5391 -1.4621,-5.2499 -0.4707,-1.4554 -0.9344,-2.9143 -1.4347,-4.3444 -0.1361,-0.3589 -0.2677,-0.7246 -0.4067,-1.0807 -0.1383,-0.3532 -0.7545,-1.9649 -0.4706,-1.2486 -0.1421,-0.4746 -0.3167,-0.9313 -0.4843,-1.3873 0.059,0.1646 0.1192,0.3335 0.091,0.2483 -0.044,-0.1365 -0.088,-0.2724 -0.1325,-0.4089 -0.1616,-0.7017 -0.3839,-1.3901 -0.562,-2.0737 -0.478,-1.6656 -0.2581,-0.8375 -0.594,-2.4095 -0.2191,-1.0462 -0.4337,-2.1034 -0.6305,-3.1617 -0.064,-0.3659 -0.089,-0.7399 -0.1005,-1.1171 -0.042,-1.5967 -0.1951,-3.1793 -0.2925,-4.768 -0.08,-1.6231 -0.1086,-3.2503 -0.1325,-4.8775 -0.026,-2.1372 -0.031,-4.2732 -0.036,-6.4109 0,-2.1947 -0.01,-4.3913 -0.01,-6.5861 -8e-4,-2.1926 2e-4,-4.3861 0,-6.5788 -10e-5,-2.242 10e-5,-4.4827 0,-6.7248 -0.017,-3.0473 -0.293,-6.0676 -0.6259,-9.0613 -0.3666,-2.7239 -0.8181,-5.4071 -1.389,-8.0392 -0.4548,-2.0488 -0.9884,-4.053 -1.4987,-6.0676 -0.5578,-2.0589 -1.1723,-4.0748 -1.8505,-6.0385 -0.6979,-1.9232 -1.4856,-3.747 -2.2982,-5.5493 -0.97,-2.1195 -2.0813,-4.0454 -3.2715,-5.8486 0.2216,0.1163 0.4445,0.2301 0.6671,0.3432 0.9144,0.4088 1.7605,0.955 2.5816,1.5771 0.982,0.7889 1.9196,1.6565 2.8511,2.5264 1.0071,0.9355 2.0053,1.8873 3.0155,2.8184 0.8477,0.8085 1.6455,1.6774 2.4354,2.5629 0.4631,0.5758 0.9252,1.1552 1.389,1.7305 0.1407,0.2391 0.2806,0.4821 0.4295,0.7156 0.095,0.1326 0.2104,0.2388 0.3106,0.3651 0.1618,0.3346 0.2932,0.6897 0.4432,1.0368 0.3179,0.8068 0.6946,1.5671 1.1697,2.2562 0.4845,0.6118 1.0476,1.1136 1.654,1.5407 0.4707,0.3118 0.9814,0.5324 1.4896,0.7374 0.6974,0.279 1.4098,0.4946 2.1246,0.701 0.611,0.205 1.2286,0.3716 1.8413,0.5695 0.548,0.1594 1.0833,0.3804 1.622,0.5769 0.5288,0.2064 1.069,0.368 1.6175,0.4819 0.2481,0.049 0.4966,0.082 0.7447,0.1095 0.079,0.019 0.1539,0.048 0.2331,0.066 1.2548,0.3402 2.5073,0.6706 3.7786,0.9127 1.2744,0.242 2.5618,0.3375 3.8426,0.5111 1.6017,0.2705 3.2191,0.3366 4.8341,0.3651 0.883,0.021 1.763,0.036 2.6454,0.022 0.8825,-0.014 1.7686,-0.053 2.6501,-0.1168 2.2936,-0.225 4.5757,-0.5915 6.8582,-0.9346 1.9166,-0.2876 3.8344,-0.5226 5.7524,-0.7959 1.6639,-0.2164 3.3193,-0.5041 4.9666,-0.8543 1.7053,-0.3574 3.3793,-0.884 5.0626,-1.3581 1.9316,-0.5879 3.8662,-1.1594 5.8027,-1.7232 1.4634,-0.4257 2.9323,-0.8384 4.4,-1.2413 0.9408,-0.2805 1.8805,-0.5408 2.8374,-0.7301 0.7345,-0.1552 1.4634,-0.3817 2.1794,-0.628 0.6901,-0.2377 1.3414,-0.5722 2.0013,-0.9054 0.3306,-0.075 0.6596,-0.1612 0.9869,-0.2556 0.4581,-0.158 0.9013,-0.3573 1.3433,-0.5695 0.6186,-0.3583 1.2235,-0.7456 1.8002,-1.1902 13.6765,-3.8726 12.9614,-47.5221 -5.0899,-263.1882 -10,-113 -15.0051,-130.0055 -30.0051,-106.0055 -6,9 -5.0033,17.0069 1.9967,21.0069 6,4 -9.9991,9.9973 -34.9991,13.9973 -26,4 -46.9975,10.9979 -46.9975,15.9979 0,13 74.0003,11.0063 88.0003,-2.9937 20,-20 14.0004,0 -13.9996,47.9938 -15,25 -35.9981,74.0068 -47.9981,110.0068 l -22.0047,64.9994 -27.9992,-73.0093 c -27,-69 -76.9978,-164.9904 -112.9978,-215.9904 -14,-20 -14,-22.0072 0,-22.0072 24,0 34.0015,-25.9938 46.0015,-114.9938 6,-43 13.9969,-81.0055 16.9969,-84.0055 3,-3 38.0026,-5.9947 77.0026,-5.9947 h 71.9994 l -3.0019,-64.9994 c -2,-36 -5.9958,-74.00587 -7.9958,-85.00587 -5,-20 -5.0042,-20 7.9958,0 6,11 13.0049,44.99144 15.0049,74.99537 1,30 6.9944,100.0069 12.9944,155.0069 22,211 40.0022,471.0002 40.0022,581.0002 v 114.0008 h 69.9982 c 40,0 69.9982,-4.0033 69.9982,-10.0033 0,-5 -2.9998,-9.996 -6.9998,-9.996 -10,0 -9.9948,-250.0014 1.0052,-540.0014 9,-223 7.9996,-233.998 -8.0004,-216.998 -15,14 -17.0036,29.9962 -13.0036,99.9962 3,45 1.002,90.0032 -3.998,99.0032 -5,9 -13.0027,41.001 -19.0027,70.001 l -8.9965,53.0028 4.9985,-65.0067 c 2,-36 6.0011,-107.9939 9.0011,-159.9939 l 4.0025,-95.0019 -9.0056,86.9919 c -5,48 -13.9937,116.0053 -18.9937,150.0053 l -10.0017,62.9987 4.9986,-74.9953 c 2,-41 6.9978,-110.0059 10.9978,-152.0059 l 6.0037,-76.996 -29.0045,-6.002 c -16,-4 -36.9974,-9.0039 -46.9974,-12.0039 -16,-4 -58.0038,-71.0003 -57.0038,-90.00024 1,-4 10.0047,10.00284 22.0047,31.00284 19,38 20.9984,38.9996 33.9984,20.9996 8,-10 12.0011,-25.9972 9.0011,-35.9972 -3,-9 1.0017,-22.00219 10.0017,-29.00219 8,-7 15.0003,-19.0012 15.0003,-26.0012 0,-8 3.9971,-13.99728 9.9971,-13.99728 5,0 6.9979,6.9976 3.9979,14.9976 -4,10 3e-4,12.99597 15.0003,9.99597 12,-2 20.9995,0.009 20.9995,6.00927 0,5 -8.9989,8.99564 -19.9989,8.99564 -11,0 -19.9988,5.99695 -19.9988,12.99695 0,8.99994 -1.9965,8.99964 -8.9965,-1.00033 -7,-11 -9.0042,-11 -14.0042,0 -7,18.99997 30.9994,21.00107 49.9994,3.00098 18,-19 82.9972,-14.99869 82.9972,4.00131 0,7.99998 -5.997,11.00228 -16.997,7.00228 -23,-8.99841 -34.9969,14.0032 -16.9969,32.0032 8,8 15.9969,12.9963 16.9969,10.9963 1,-2 11.9974,-18.9972 24.9974,-35.9972 23,-33.99946 24.0012,-32.9975 -19.9988,-36.9975 -7,-1 -18.9935,-6.00425 -25.9935,-13.00425 -7,-6 -21.0063,-10.00262 -32.0063,-8.00262 -11,2 -19.9989,-10e-4 -19.9989,-4.00131 0,-16 13.0064,-19.99597 32.0064,-9.99597 26,14 58.9933,-9.00054 32.9933,-24.00054 -11,-5 -21.9973,-3.99837 -31.9973,5.00163 -14,11 -16.0004,10.99935 -8.0004,-2.00065 6,-10 2.0016,-8.99902 -11.9984,3.00098 -20,17 -19.9988,16.99705 -19.9988,-9.00295 0,-18 2.0004,-22.00425 8.0004,-13.00425 6,11 8.9957,10.00599 14.9957,-3.99401 8,-22 25.0015,-22.00697 17.0015,0.99303 -3,9 -2.9993,14.01057 1.0007,10.01057 4,-3 8.0017,-12.00654 10.0017,-20.00654 1,-7 4.9965,-19.00088 8.9965,-25.00088 4,-7 8.0004,-28.99445 8.0004,-49.99445 -1,-21 0.998,-95.99654 3.998,-167.99654 2,-76 1.002,-120.00514 -3.998,-105.00514 -5,14 -6.0019,-67.00178 -3.0019,-184.00178 5,-196 4.0017,-209.0007 -11.9983,-203.0007 -10,4 -23.9973,7.00229 -31.9973,7.00229 -11,0 -14.0042,17.99828 -14.0042,83.99828 0,65 -4.0009,87.99653 -16.0009,100.99653 -38,38 -74.0006,-7.00089 -74.0006,-92.00089 v -51.99511 l 40.0022,-10.99629 c 22,-6 40.0022,-17.00055 40.0022,-24.00055 0,-19 64.9994,-36.00121 100.9994,-26.00121 34,10 54.9978,3.99978 83.9978,-23.00022 17,-16 29.0044,-18.003648 80.0044,-12.00393 32,3 66.998,10.99794 76.998,15.99794 19,10 14.0042,39.00545 -7.9958,39.00545 -8,0 -14.0042,5.00327 -14.0042,10.00327 0,6 8.9982,9.99597 18.9982,9.99597 22,0 22.0001,-8.99865 -6.9999,205.00135 -11,77 -18.9982,148.99393 -18.9982,159.99393 0,11 -3.0043,30.00644 -7.0043,42.00644 -7,21 -3.9991,21.99226 38.0009,20.99226 25,0 43.0023,-4.99564 40.0023,-8.99564 -3,-5 -9.9957,-7.00098 -14.9957,-3.00098 -6,3 -9.0044,0.005 -7.0044,-7.99532 2,-7 -0.9998,-14.0049 -6.9998,-15.0049 -5,-1 -7.9999,6.0049 -6.9999,15.0049 3,13 1.0017,14.00099 -11.9983,3.00099 -16,-14 -23.0005,-36.00154 -8.0005,-27.00154 4,2 8.9965,-3.9976 8.9965,-14.9976 1,-11 -1.9946,-17.00491 -5.9946,-15.00491 -4,3 -8.0005,-4.99793 -8.0005,-15.99793 -2,-24 -1.9995,-23.00326 59.0005,56.99674 43,58 44.996,65.00493 51.996,149.00493 9,120 13.0004,134.99839 37.0004,128.99839 29,-8 22.9999,13.001 -22.0001,70.001 -41,52 -42.0038,51.99674 -108.0038,56.99674 l -65.9956,5.00164 -1.0007,31.99585 c -1,18 2.0038,30.0019 6.0038,28.0019 4,-3 12.9982,1.0029 18.9982,9.0029 9,10 8.0021,14.9993 -3.9979,19.9993 -9,3 -13.0017,1.9986 -10.0017,-4.0014 3,-6 1.0014,-10.0032 -4.9986,-10.0032 -7,0 -9.0038,7.0052 -6.0038,16.0052 3,9 6.0038,17.9919 6.0038,19.9919 0,2 5.999,4.0087 12.999,4.0087 8,0 23.9952,8.9989 35.9952,18.9989 20,18 21.0025,20.0005 4.0025,24.0005 -17,4 -17,4.9947 0,5.9947 9,0 17.0015,6.0036 17.0015,11.0036 0,6 -8.0015,10.0036 -17.0015,11.0036 -12,0 -7.9983,3.9963 10.0017,10.9963 30,11 27.9981,28.9995 -3.0019,20.9995 -11,-3 -19.9988,0 -19.9988,6.002 0,6 15.9976,9.9956 39.9976,8.9956 l 39.9977,-1.0003 v -67 -65.9997 l -60.9971,-42.9921 c -33,-23 -59.0032,-45.00811 -56.0032,-47.00811 2,-3 32.0003,14.00511 66.0003,38.00511 l 61.0017,41.9992 v 73.0019 c 0,65 2.0027,72.9947 19.0027,72.9947 14,0 18.9968,10.0018 23.9968,50.0018 10,82 29.0019,130.9956 54.0019,142.9956 22,10 27.0044,31.0035 7.0044,33.0035 -34,3 -84.007,18.0009 -84.007,25.0009 0,14 34.0044,10.005 58.0044,-6.995 12,-8 22.0001,-13.0033 22.0001,-10.0033 0,2 -18.0023,37.9967 -40.0023,78.9967 -46,84 -90.0016,207.0081 -90.0016,248.0081 0,15 -3.9971,30.9965 -9.9971,33.9965 -6,3 -10.0017,-4.0059 -10.0017,-18.0059 0,-57 -93.9958,-287.9934 -109.9958,-269.9934 -4,4 -9.999,65.0004 -12.999,135.0004 l -6.0038,125.9974 29.0045,46.0004 c 16,25 35.9962,46.0005 44.9962,46.0005 20,0 20,39.0004 0,46.0004 -10,4 -15.0003,20.0018 -15.0003,50.0018 0,44 -12.0032,57.0021 -27.0032,29.0021 -5,-8 -12.9949,-11.0092 -20.9949,-6.0092 -9,5 -9.9985,25.0033 -4.9985,77.0033 l 8.0004,69.0006 37.9918,3.001 c 20,2 37.005,7.9973 37.005,13.9973 0,6 -21.0021,38.0016 -47.0021,72.0016 -69,91 -165.0029,307.9983 -165.0029,373.9983 0,12 -3.9965,21.9999 -8.9965,21.9999 -4,0 -9.0023,12.0015 -11.0023,27.0015 -2,16 -9.9989,27.0022 -19.9989,29.0022 -5.25,0.75 -9.2477,1.1272 -12.044,0.8616 z m 19.0439,-146.8656 c 20,0 35.0016,-5.9976 39.0016,-14.9976 4,-12 -4.0015,-15.0049 -46.0015,-15.0049 -44,0 -49.0009,2.0049 -38.0009,15.0049 7,8 27.0008,14.9976 45.0008,14.9976 z m -15.0003,-39.9985 c 16.25,0.5 30.0051,-4.0045 30.0051,-14.0045 0,-8 -16.0035,-15.9917 -42.0035,-18.9917 -50,-7 -53.9978,-5.009 -32.9978,16.991 10,10 28.7462,15.5052 44.9962,16.0052 z m 23.5033,-40.9988 c 12.75,0 25.5003,-3.0029 40.5003,-9.0029 46,-17 29.0029,-30.0025 -38.9971,-30.0025 -66,0 -85.0035,13.0025 -42.0035,30.0025 15,6 27.7503,9.0029 40.5003,9.0029 z m -13.8763,-50.0017 c 35.125,0 69.3798,-2.9957 81.3798,-8.9957 36,-20 18.9918,-25.0008 -86.0082,-25.0008 -103,0 -126.9966,7.0008 -81.9966,25.0008 15.5,6 51.5,8.9957 86.625,8.9957 z m -24.3166,-39.7283 c 4.1533,0.275 9.3751,0.1968 15.9141,-0.1899 8.7188,-0.5157 19.7792,-1.5813 33.7792,-3.0813 36,-4 70.9947,-9.0039 78.9947,-12.0039 8,-3 17.0027,-10.9913 19.0027,-17.9913 4,-10 -3.9997,-11.0016 -35.9997,-5.0016 -23,5 -61.0024,7.9956 -84.0024,8.9956 -33,0 -42.9995,3.9979 -42.9995,15.9979 0,8.4375 2.8511,12.4498 15.3109,13.2745 z m -42.666,-7.1411 c 16.5468,-1.875 23.11,-9.3803 13.36,-19.1303 -3,-3 -23.0054,-8.997 -45.0054,-12.997 -37,-7 -38.9966,-6.0037 -30.9966,10.9963 6,10 23.9996,19.0069 42.9996,21.0069 7.5,0.75 14.1267,0.7491 19.6424,0.1241 z m 41.7339,-33.3831 c 16.875,0.5 33.1237,-1.2461 62.6237,-4.7461 29,-4 53.9992,-11.9989 56.9992,-18.9989 4,-10 -12.9994,-11.9954 -71.9994,-7.9954 -42,3 -100.9986,0.9911 -128.9986,-5.0089 -29,-5 -52.9967,-6.0003 -52.9967,-1.0003 0,13 17.9969,20.0022 67.9969,29.0022 32,5.5 49.4999,8.2474 66.3749,8.7474 z m -16.3755,-39.7503 c 6,0 11.9984,-6.9913 11.9984,-17.9913 0,-15 -9.9965,-19.0078 -59.9965,-24.0078 -33,-4 -73.0004,-9.997 -88.0004,-12.997 l -27.0032,-6.0019 20.9995,21.9999 c 19,19 61.0022,30.9981 142.0022,38.9981 z m 40.5048,-6.3232 c 5.5366,0.3946 12.7097,0.3567 21.991,-0.095 12.375,-0.5782 28.5059,-1.8278 49.5059,-3.5778 67,-4 84.996,-10.0022 102.996,-29.0022 l 22.0046,-23.0003 -25.0065,7.0023 c -14,4 -61.994,9.997 -106.994,12.997 -54,4 -83.0017,9.9986 -83.0017,17.9986 0,11.25 1.895,16.4936 18.5047,17.6773 z m -48.8205,-46.5335 c 22.625,0.2968 50.3131,-0.139 84.3131,-1.139 76,-3 112.0048,-7.9983 117.0048,-16.9983 16,-24 8.9961,-29.0069 -28.0039,-21.0069 -48,9 -218.996,8.9997 -255.996,-1.0003 -26,-6 -27.0021,-4.9957 -18.0021,13.0043 10.5,18.75 32.8091,26.2495 100.6841,27.1402 z m -126.8832,-15.2312 c 9.6035,-0.2051 15.3238,-5.028 11.1988,-15.903 -4,-8 -7.0004,-15.005 -8.0004,-15.005 0,0 -16.0031,-4.0029 -34.0031,-9.0029 -29,-9 -30.9955,-7.9971 -21.9955,9.0029 10,18.75 36.7943,31.2498 52.8002,30.908 z m 355.1951,-0.9127 c 10,0 27.005,-8.992 37.005,-19.992 18,-20 16.9995,-20.0065 -8.0005,-20.0065 -16,0 -30.0049,8.0065 -37.0049,20.0065 -9,17 -7.9996,19.992 8.0004,19.992 z m -177.9927,-28.9949 v -109.9995 -111.0071 h -95.0048 c -52,0 -95.0001,4.0102 -95.0001,9.0102 0,5 35.0032,11.9907 78.0032,15.9907 91,7 117.9986,12.0046 77.9986,14.0046 -28,1 -28.0013,2.002 -24.0013,51.002 3,27 0.9981,46.9998 -3.0019,43.9998 -4,-2 -11.0003,1.0023 -15.0003,7.0023 -4,8 -2.9974,8.9943 4.0026,4.9943 7,-4 11.9983,-1.999 11.9983,3.001 0,15 -37.0014,13.9997 -46.0014,-1.0003 -4,-6 -2.9987,-8.9943 2.0013,-4.9943 5,3 7.0025,-19.0094 4.0025,-51.0094 l -4.0025,-56.9895 -6.9998,49.9945 -5.9947,50.0017 -1.0052,-46.0004 c -2,-33 -6.9975,-48.9954 -17.9975,-52.9954 -14,-5 -14.9984,1.9941 -11.9984,48.9941 1,30 0,55.0034 -4.0025,55.0034 -5,0 -7.9959,14.9965 -7.9959,33.9965 0,39 1.9975,39.9998 97.9975,43.9998 z m 9.9925,-4.0013 h 35.0037 c 25,0 33.9966,-3.997 30.9966,-12.997 -3,-8 -0.9975,-16.0062 4.0025,-19.0062 6,-4 10.0017,3.0046 10.0017,14.0046 0,16 4.9978,17.9973 32.9978,13.9973 17,-3 33.9991,-5.9954 34.9991,-7.9954 2,-2 1.0073,-41.9999 -2.9927,-88.9999 -5,-62 -11.004,-86.0062 -21.004,-86.0062 -17,0 -28.0034,42.0043 -20.0034,80.0043 3,18 1.006,30.0025 -4.994,30.0025 -6,0 -8.0077,3.9956 -5.0077,8.9956 3,5 -0.9966,11.0049 -8.9966,15.0049 -26,9 -44.9962,-22.0026 -44.9962,-75.0026 0,-42 -3.0079,-49.0014 -20.0079,-49.0014 -18,0 -19.9989,6.9996 -19.9989,87.9996 z m 40.4729,-191.9095 c 37.0313,0.4687 112.0269,-6.0916 119.5269,-12.0916 3,-3 -27.9969,-2.9933 -67.9969,-1.9933 -39,2 -72.004,6.9963 -72.004,10.9963 0,2 8.1303,2.9323 20.474,3.0886 z m 39.5316,-25.0958 c 53,0 59.9965,-1.9919 59.9965,-19.9919 0,-18 -6.9965,-20.0066 -59.9965,-20.0066 -53,0 -60.0056,2.0066 -60.0056,20.0066 0,18 7.0056,19.9919 60.0056,19.9919 z m 85.003,0 c 8,0 15.0003,-8.9919 15.0003,-19.9919 0,-11 -7.0003,-20.0066 -15.0003,-20.0066 -8,0 -15.0048,9.0066 -15.0048,20.0066 0,11 7.0048,19.9919 15.0048,19.9919 z m -350.0046,-9.996 c 8,0 15.0048,-8.9919 15.0048,-19.9919 0,-11 -7.0048,-20.0066 -15.0048,-20.0066 -8,0 -15.0003,9.0066 -15.0003,20.0066 0,11 7.0003,19.9919 15.0003,19.9919 z m 98.998,0 c 68,0 76.0066,-1.9916 76.0066,-18.9916 0,-15 -8.0068,-19.0062 -40.0068,-19.0062 -31,-1 -39.9977,2.9979 -39.9977,15.9979 0,14 -0.9984,13.9997 -11.9984,-1.0003 -16,-20 -51.9985,-15.998 -55.9985,6.002 -3,15 6.9948,16.9982 71.9948,16.9982 z m 204.626,-39.6261 c 49.875,0.875 100.8765,-1.868 105.3765,-9.368 12,-19 -288.0005,-29.0046 -409.0005,-14.0046 -55,7 -50.0004,8.0043 64.9996,13.0043 78,3 128.0005,0.991 132.0005,-5.009 5,-6 7.9959,-4.9917 7.9959,3.0083 0,7 48.753,11.494 98.628,12.369 z m -324.7514,-34.2447 c 2.375,0.375 5.629,-0.6252 9.129,-3.1252 6,-4 19.9999,-6.0016 28.9999,-5.0016 15,3 16.9963,-3.9995 15.9963,-42.9995 l -1.9967,-45.0001 -18.0021,33.9965 c -10,19 -21.9993,37.9989 -27.9993,40.9989 -5,3 -10.0017,11.0052 -10.0017,16.0052 0,3 1.4996,4.7508 3.8746,5.1258 z m 356.2642,-0.2337 c 3.2344,0.7969 6.614,-1.6428 8.864,-6.8928 2,-6 -2.001,-14.9989 -9.001,-18.9989 -10,-6 -10.998,-42.9995 -3.998,-176.9995 5,-92 9.0005,-207.9967 8.0005,-257.9967 0,-51 2.9998,-79.0067 6.9998,-65.0067 4,14 7.0004,-30.9962 8.0004,-99.9962 2,-228 40.9974,-706.00488 75.9974,-930.00488 20,-128 19.0015,-139.99468 -4.9985,-139.99468 -18,0 -20.0047,7.00034 -22.0047,68.00034 l -0.9961,67.00001 -6.0037,-64.99936 -5.9946,-64.99936 -6.0038,79.99697 c -3,44 -11.9988,93.99947 -19.9988,109.99947 -26,54 -83.9981,38.99912 -98.9981,-25.00088 l -8.0005,-34.99684 -0.996,32.99619 c -2,55 61.9922,95.00503 96.9922,60.00503 8,-8 12.0076,-9.00033 12.0076,-1.00033 0,6 -5.0024,12.9976 -11.0024,14.9976 -5,2 -14.0021,50.99883 -18.0021,107.99883 -6,81 -8.9971,91.00011 -9.9971,45.00011 -1,-33 -3.0038,-77.9962 -6.0038,-99.9962 -4,-32 -2.9975,-35.00491 4.0025,-15.00491 l 8.9965,25.00088 1.0052,-27.00153 c 1,-22 -4.0026,-27.00252 -26.0026,-30.00252 -18,-2 -36,-14.99782 -51,-37.99782 -23,-33 -24.0021,-40.00101 -18.0021,-137.00101 6,-86 3.9995,-102.99719 -8.0005,-102.99719 -8,0 -21.9972,-3.00229 -31.9972,-7.00229 -16,-6 -17.0017,6.00146 -10.0017,183.00146 6,193 8.0019,483.00184 3.0019,519.00184 -2,11 -7.0029,26.99652 -12.0029,33.99652 -5,10 -3.9982,12.00229 3.0018,7.00229 7,-4 12.003,-0.99739 12.003,8.00261 0,17 14.9968,21.99499 23.9968,6.99499 3,-5 -1.0017,-11.9976 -10.0017,-14.9976 -9,-4 -13.9978,-8.99663 -10.9978,-11.99663 3,-3 19.0037,1.99597 35.0037,9.99597 23,12 31.9991,13.00098 34.9991,3.00098 3,-7 5.9946,-4.99803 5.9946,6.00197 1,9 6.0023,16.99826 11.0023,16.99826 16,0 11.9983,17.99848 -10.0017,39.99848 -24,24 -31.0013,24.99433 -24.0013,4.99433 4,-9 0,-14.9903 -7.9959,-14.9903 -24,0 -29.0023,12.00088 -11.0023,25.00088 16,12 15.0016,15.99811 -11.9984,49.99442 l -27.9993,37.9979 4.9986,220.9992 c 3,121 2.0033,201.0065 -1.9967,176.0065 -9,-57 -12.0019,306.9979 -3.0019,372.9979 l 5.9992,48.0011 63.0029,-2.0007 c 35,-1 66.9989,1.0017 70.9989,5.0017 1,1 2.0562,1.6255 3.1343,1.8911 z m -384.9809,-70.8553 c -1.5821,-0.04 -3.318,-0.3873 -5.099,-0.8324 1.4801,-4.1074 3.3412,-5.4074 6.0586,0.701 -0.3377,0.011 -0.6117,0.1401 -0.9596,0.1314 z m -57.1545,-59.5742 c 0.109,-1.0486 0.051,-2.024 0.2605,-3.1251 0.068,0.1895 0.1217,0.3922 0.1873,0.5841 -0.1493,0.8578 -0.2977,1.6974 -0.4478,2.541 z m 81.7818,-41.2471 c 0.063,-0.057 0.1513,-0.1401 0.2148,-0.1971 0.2214,-0.018 0.4411,-0.047 0.6625,-0.066 -0.2964,0.075 -0.5793,0.1956 -0.8773,0.2628 z m 501.2181,-44.2188 c 16,0 28.9954,-3.996 28.9954,-9.996 0,-5 -15.9997,-9.996 -35.9997,-9.996 -21,0 -32.9954,3.996 -28.9954,9.996 3,6 18.9997,9.996 35.9997,9.996 z m -34.4553,-46.643 c 2.7656,-0.1719 5.958,-0.6008 9.458,-1.3508 14,-2 22.9948,-10.0053 20.9948,-16.0053 -5,-14 -56.9991,-21.0022 -56.9991,-7.0022 0,6 4.9977,11.0036 10.9977,11.0036 5,0 7.9986,4.0029 4.9986,9.0029 -2.25,3 2.2531,4.8674 10.55,4.3518 z m 46.4537,-43.3573 c 25,0 48.9961,-3.9959 51.9961,-9.9959 4,-6 -10.9944,-7.001 -41.9944,-3.001 -63,8 -67.0017,12.9969 -10.0017,12.9969 z m -17.4995,-21.1237 c 19.25,0.375 33.9984,-3.8801 37.4984,-12.8801 4,-11 -9.9972,-14.9913 -60.9972,-17.9913 -37,-3 -69.0033,-3.0006 -71.0033,-2.0006 -2,2 11.0005,9.9986 30.0005,17.9986 21.5,9.5 45.2516,14.4984 64.5016,14.8734 z m -558.1213,-19.3713 c 7.125,-1.5 13.6268,-6.501 16.6268,-14.501 4,-11 -1.0028,-15.005 -19.0028,-15.005 -24,0 -32.0021,10.0003 -18.0021,23.0003 5.5,6 13.2531,8.0057 20.3781,6.5057 z m 561.1232,-19.8824 c 22.25,-0.125 50.5033,-3.6239 74.5033,-10.6239 20,-5 36.9957,-13.9913 36.9957,-17.9913 0,-5 -16.9957,-5 -36.9957,0 -21,5 -55.0059,8.9957 -75.0059,8.9957 -21,0 -37.9964,4.9959 -37.9964,9.9959 0,6.5 16.249,9.7486 38.499,9.6236 z m -58.2511,-0.4965 c 5.875,0.062 9.7504,-2.6271 9.7504,-9.1271 0,-5 -14.9973,-13.9916 -31.9973,-18.9916 -24,-6 -12.0004,-7.0009 42.9996,-3.0009 51,3 77.9972,0.9904 82.9972,-7.0096 5,-8 -11.0013,-10.9963 -53.0013,-10.9963 -33,0 -70.9984,-3.996 -84.9984,-9.996 -23,-8 -25.0001,-7.0031 -22.0001,12.9969 3,21 38.6249,45.9371 56.2499,46.1246 z m -495.2509,-19.123 c 8,0 19.0019,-9.0066 25.0019,-20.0066 9,-18 7.9998,-19.9919 -15.0002,-19.9919 -18,0 -25.002,4.9919 -25.002,19.9919 0,11 7.0003,20.0066 15.0003,20.0066 z m -29.5025,-1.0003 c 3.5,-0.5 4.5051,-6.5059 4.5051,-18.0059 0,-10 -8.9989,-20.9933 -19.9989,-23.9933 -24,-6 -26.0025,5.9942 -4.0025,26.9942 10,10.5 15.9963,15.505 19.4963,15.005 z m 14.5022,-49.0015 c 17,0 30.0005,-4.0029 30.0005,-9.0029 0,-11 -59.0008,-25.991 -67.0008,-16.991 -4,3 -13.0041,-0.01 -21.0041,-7.0096 -13,-10 -13.9925,-8.999 -9.9925,3.001 3,8 13.0001,14.0046 22.0001,14.0046 9,-1 16.0008,1.995 16.0008,6.995 0,5 13.996,9.0029 29.996,9.0029 z m 567.1133,-3.2273 c 47.3082,-1.1727 96.1363,-6.0206 102.8863,-12.7706 5,-5 1.9996,-31.9997 -8.0004,-65.9997 l -16.997,-57.004 h -92.0028 l -92.9943,1.0003 -1.0052,49.0014 c -1,27 -2.0019,54.0054 -3.0019,61.0054 -1,7 10.0059,14.9919 24.0059,19.9919 8.25,2.5 23.4993,4.0023 41.9212,4.6585 13.8164,0.4922 29.4187,0.5078 45.1882,0.1168 z m -599.8644,-37.5232 c 12.75,0.25 22.754,-2.7512 22.754,-9.2512 0,-5 -12.0032,-11.998 -27.0032,-15.998 -16,-3 -33.9977,-7.0032 -39.9977,-10.0032 -19,-5 -16.0014,14.0081 4.9986,25.0081 11,6.5 26.4983,9.9943 39.2483,10.2443 z m 45.3755,-30.4333 c 16.957,-1.0371 32.7479,-5.8151 41.3729,-14.8151 9,-8 16.0009,-16.0056 16.0009,-17.0056 0,-1 -28.999,-2.994 -63.999,-3.994 -52,-1 -64.0011,0.9967 -60.0011,11.9967 6.875,16.875 38.3645,25.5465 66.6263,23.818 z m -78.122,-10.3173 c 4.5,-0.25 5.4965,-2.4985 5.4965,-6.4985 0,-14 -22.9989,-31.9958 -41.9989,-31.9958 -22,0 -13.9983,26.9962 10.0017,32.9962 14,4 22.0007,5.7481 26.5007,5.4981 z m 75.8694,-40.1226 c 28.875,0.125 55.1268,-1.3737 67.6268,-4.3737 21,-6 33.0036,-43.9998 13.0036,-43.9998 -6,0 -8.0037,-20.0001 -6.0037,-45.0001 3,-31 0.9995,-45.0074 -8.0005,-45.0074 -8,0 -6.9981,-3.996 3.0019,-9.996 12,-8 7.9997,-9.9963 -15.0003,-10.9963 -24,-1 -26.0017,-2.0023 -10.0017,-7.0023 11,-4 21.0007,-15.0005 23.0007,-24.0005 3,-16 -5.9955,-17.9986 -72.9955,-17.9986 -61,0 -75.0059,2.9979 -75.0059,15.9979 0,8 4.0005,13.0033 8.0005,10.0033 5,-3 9.0056,0.9956 9.0056,8.9956 0,8 -4.0056,12.003 -9.0056,9.003 -4,-3 -8.0005,1.0029 -8.0005,9.0029 0,10 8.0008,13.9963 23.0008,10.9963 17,-3 16.002,-2.0053 -3.998,5.9947 -20,8 -28.9984,21.0084 -33.9984,48.0084 -3,20 -9.003,46.9974 -12.003,58.9974 -4,18 0.011,21.9939 24.0059,25.9939 23,3.5 54.4923,5.2563 83.3673,5.3813 z m 629.6319,-27.3739 v -33.0035 -32.9962 h -88.0049 -89.001 l -0.996,31.0028 -1.0007,31.9959 89.001,1.0003 z m -151.9994,-81.0046 c 19,0 21.9956,-4.9995 21.9956,-42.9995 0,-39 -13.0012,-67 -31.0012,-67 -4,0 -8.9932,25.0034 -10.9932,55.0034 -3,51 -2.0012,54.9961 19.9988,54.9961 z m -235.0056,-120.9958 c 5,0 7.0031,-5.0036 5.0031,-11.0036 -5,-16 -48.0027,-23.9956 -48.0027,-8.9956 0,8 16.9996,15.9992 42.9996,19.9992 z m -68.3762,-19.3713 c 7.875,-0.125 16.8787,-3.6239 21.3787,-10.6239 4,-7 20.0029,-8.0013 41.0029,-4.0013 24,4 32.9947,2.9914 27.9947,-4.0086 -3,-6 -11.9989,-10.9963 -19.9989,-10.9963 -13,0 -13,-28.0017 0,-50.00175 4,-5.99865 -0.9984,-7.00098 -11.9984,-3.00098 -32,11.00003 -34.0008,15.00223 -16.0008,29.00223 17,12 17.0006,13.0045 1.0006,14.0045 -10,0 -18.0022,4.996 -18.0022,9.996 0,6 -8.9988,9.996 -19.9988,9.996 -11,0 -19.9988,5.0032 -19.9988,10.0032 0,6.5 6.746,9.7559 14.621,9.6309 z m -42.3736,-10.748 c 4.75,-0.375 17.2491,-5.3808 36.7491,-14.8808 22,-11 29.0007,-20.0012 23.0007,-26.0012 -6,-6 -17.9993,-8.0013 -27.9993,-4.0013 -9,4 -13.9977,9.0043 -10.9977,13.0043 4,3 -1.0024,11.9916 -11.0024,18.9916 -11.5,9 -14.5004,13.2624 -9.7504,12.8874 z M 1697,970.00304 c 12,0 24.9993,-4.00327 27.9993,-10.00327 3,-5 -3.0002,-9.99597 -15.0002,-9.99597 -12,0 -17.9957,-4.00327 -14.9957,-10.00327 3,-5 0,-10.00327 -6.9999,-10.00327 -8,0 -14.0042,9.00654 -14.0042,20.00654 0,14 7.0007,19.99924 23.0007,19.99924 z m 70.9258,-6.25752 c 5.2031,0 10.8266,-2.24673 13.0766,-6.74673 4,-5 11.9937,-6.00066 18.9937,-2.00066 8,5 11.0037,3.99902 6.0037,-3.00098 -3,-5 9e-4,-12.9903 6.0038,-14.9903 7,-3 2.9983,-6.00927 -10.0017,-6.00927 -28,-1 -59.0016,25.00317 -39.0016,32.00317 1.5,0.5 3.1911,0.74477 4.9255,0.74477 z m -286.3027,-4.24226 c 2.625,0.75 10.3748,-1.00545 22.3748,-5.50545 9,-3 13.0056,-10.99096 9.0056,-16.99096 -4,-6 0,-8.00861 9.9926,-4.00861 10,4 24.0063,10.00425 32.0063,13.00425 9,4 14.9957,0.99771 14.9957,-7.00229 0,-7 -2.9952,-9.00196 -6.9952,-6.00196 -3,4 -11.0022,-0.99597 -18.0022,-9.99597 -11,-15 -13.9997,-15 -35.9997,0 -13,10 -18.9996,16.99826 -13.9996,16.99826 6,0 3.0014,5.00327 -4.9986,10.00327 -8.5,5.5 -11.0047,8.74946 -8.3797,9.49946 z m 241.3795,-60.50884 c 23,-1 32.9956,-3.99466 21.9956,-5.99466 -10,-3 -28.9944,-11.99925 -41.9944,-19.99925 -21,-14 -23.0007,-13.99803 -23.0007,6.00197 0,18 5.9995,20.99194 42.9995,19.99194 z m 71.9949,-21.9926 c 44,0 62.9996,-2.00131 42.9996,-4.00131 -21,-2 -56.9954,-2 -79.9954,0 -24,2 -7.0042,4.00131 36.9958,4.00131 z m -39.9976,-27.00153 h 74.9967 l -4.994,-61.99837 c -3,-35 -8.0023,-83.99948 -11.0023,-109.99948 -6,-46 -6.9958,-48.0011 -36.9958,-48.0011 -18,0 -42.0019,-3.00196 -54.0019,-6.00196 -18,-5 -23.0007,-2.00272 -23.0007,13.99728 0,12 9.0007,23.00153 23.0007,27.00153 21,7 20.9996,8.0049 -8.0004,15.0049 -21,5 -24.0017,7.99565 -10.0017,8.99565 19,2 19.0019,1.9976 3.0019,14.9976 -21,15 -23.9986,66.00001 -4.9986,67.00001 9,0 8.9948,2.00927 -1.0052,6.00927 -6,2 -9.9992,8.99728 -5.9992,13.99728 3,5 0,8.99564 -5.0031,8.99564 -19,0 -12.0002,19.99957 6.9998,20.99957 16,1 16,2.00196 0,6.00196 -42,11 -11.9962,23.00022 57.0038,23.00022 z M 1610.7542,403.29216 c 15,1.64062 25.4977,-14.2948 38.2477,-53.2948 8,-23 8.0007,-35.99782 1.0007,-37.99782 -5,-2 -10.0063,-9.99859 -10.0063,-17.99859 0,-9 5.0063,-12.00295 10.0063,-9.00295 6,4 10.0017,-10.99782 10.0017,-37.99782 0,-44 -1.0035,-43.99609 -42.0035,-54.99609 -43,-11 -43.0031,-11.00959 16.9969,-7.00959 l 60.0057,4.00131 -49.9994,-12.99695 c -27,-7 -56.0023,-10.99532 -62.0023,-7.99532 -9,3 -12.0023,32.99185 -11.0023,108.99185 2,92 4.0046,106.00242 22.0046,119.00242 6.25,4.25 11.7502,6.74747 16.7502,7.29435 z m -55.2263,-159.48281 c 0.4687,-0.1875 0.9712,-2.06212 1.4712,-5.81212 2,-15 2,-41.99772 0,-59.99772 -2,-18 -3.9979,-5.99847 -3.9979,27.00153 0,24.75 1.1204,39.37081 2.5267,38.80831 z m 129.4738,-74.80548 c 18,0 24.9988,-3.00262 19.9988,-8.00262 -15,-14 -105.0019,-25.00425 -105.0019,-13.00425 0,11 29.0031,18.00687 85.0031,21.00687 z m 42.9995,-21.00687 c 10,0.25 11.9984,-2.49532 11.9984,-7.99532 0,-5 -16.9958,-11.9976 -36.9958,-14.9976 -21,-3 -48.0056,-8.0036 -60.0056,-11.0036 -13,-2 -23.0007,-0.006 -23.0007,4.99433 0,5 21.0072,13.00622 48.0072,19.00622 32,6.5 49.9965,9.74597 59.9965,9.99597 z" /><path - d="m 1532,1788 c -7,-7 -12,-17 -12,-22 0,-6 5,-3 11,7 11,19 34,23 44,7 4,-6 -1,-7 -10,-3 -25,9 -35,-14 -35,-79 0,-58 0,-58 29,-58 17,0 33,-4 36,-10 4,-6 -8,-10 -29,-10 -39,0 -43,6 -49,90 -2,30 -4,21 -5,-27 l -2,-73 h 50 c 38,0 50,4 50,15 0,9 -7,18 -16,22 -12,4 -15,19 -13,68 1,34 -1,67 -5,73 -9,15 -29,15 -44,0 z" - id="path2" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1515,1530 c -4,-39 -5,-73 -2,-76 2,-3 8,27 11,67 4,39 5,73 3,76 -3,2 -8,-28 -12,-67 z" - id="path3" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1564,1450 c 0,-80 2,-112 3,-72 2,39 2,105 0,145 -1,39 -3,7 -3,-73 z" - id="path4" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1534,1410 c 0,-63 1,-89 3,-57 2,31 2,83 0,115 -2,31 -3,5 -3,-58 z" - id="path5" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1590,1410 c 0,-51 3,-91 6,-87 7,7 6,168 -1,175 -3,3 -5,-37 -5,-88 z" - id="path6" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1507,1358 c -3,-23 -2,-48 2,-55 3,-7 8,12 9,42 3,65 -3,72 -11,13 z" - id="path7" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1542,1288 c -12,-16 -22,-166 -11,-170 4,-2 13,-32 18,-68 l 10,-65 -5,68 -5,67 h 34 33 l -2,-62 -3,-63 11,74 c 8,59 8,75 -3,82 -7,4 -17,5 -22,2 -5,-3 -8,23 -6,58 4,66 -3,89 -25,89 -8,0 -18,-6 -24,-12 z" - id="path8" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1591,1059 c 0,-30 4,-74 9,-99 5,-31 6,-15 3,50 -6,105 -13,134 -12,49 z" - id="path9" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1573,1035 c 0,-38 2,-53 4,-32 2,20 2,52 0,70 -2,17 -4,1 -4,-38 z" - id="path10" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1625,990 c -4,-34 -5,-63 -2,-66 3,-3 8,22 12,56 4,34 5,63 2,66 -3,3 -8,-22 -12,-56 z" - id="path11" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1611,888 c 0,-16 -8,-29 -19,-33 -17,-5 -18,-14 -14,-80 3,-52 1,-75 -7,-75 -6,0 -11,-10 -11,-21 0,-19 4,-21 35,-16 19,3 35,2 35,-4 0,-5 9,-1 20,8 13,11 16,21 10,27 -6,6 -11,33 -12,61 l -1,50 -8,-55 -7,-55 1,70 c 0,39 -3,77 -6,85 -3,8 -8,26 -10,40 -4,25 -4,25 -6,-2 z m 48,-202 c -12,-10 -79,-16 -79,-6 0,5 19,10 42,10 23,0 39,-2 37,-4 z" - id="path12" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1537,853 c -4,-21 -9,-83 -12,-138 -4,-55 -11,-113 -15,-128 -6,-17 -6,-25 0,-22 6,4 10,13 10,21 0,8 5,14 10,14 13,0 13,-27 0,-35 -6,-4 -8,-23 -5,-43 l 5,-37 -15,30 c -12,26 -14,27 -15,8 0,-12 5,-25 10,-28 6,-3 11,-18 11,-33 l 2,-27 5,25 c 4,20 6,22 11,8 3,-10 7,13 8,50 1,37 -3,81 -9,99 -9,24 -9,61 0,149 12,112 11,165 -1,87 z" - id="path13" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1503,685 c 0,-44 2,-61 4,-37 2,23 2,59 0,80 -2,20 -4,1 -4,-43 z" - id="path14" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1546,645 c 4,-11 11,-60 15,-110 l 7,-90 -2,97 c -1,69 -5,101 -15,110 -12,11 -13,10 -5,-7 z" - id="path15" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1587,585 c 2,-33 3,-71 3,-84 0,-14 2,-22 5,-19 3,3 7,43 9,89 3,62 2,71 -3,34 l -7,-50 -6,45 c -3,29 -4,23 -1,-15 z" - id="path16" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1644,636 c -3,-7 -4,-35 -2,-62 l 3,-49 5,63 c 5,63 4,73 -6,48 z" - id="path17" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1660,568 c -3,-31 -1,-53 3,-49 5,5 7,30 5,57 l -3,49 z" - id="path18" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1513,290 c 0,-41 2,-58 4,-37 2,20 2,54 0,75 -2,20 -4,3 -4,-38 z" - id="path19" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1756,1418 c -17,-54 -16,-68 4,-68 16,0 20,7 20,34 0,35 -17,58 -24,34 z" - id="path20" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1687,1413 c -4,-3 -7,-19 -7,-35 0,-21 5,-28 20,-28 20,0 26,22 14,54 -7,17 -16,20 -27,9 z" - id="path21" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1817,1413 c -2,-4 -7,-20 -11,-34 -5,-21 -2,-28 14,-32 16,-4 20,0 22,19 0,13 1,29 2,36 1,13 -20,23 -27,11 z" - id="path22" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1217,1304 c -4,-4 -7,-25 -7,-46 0,-32 3,-38 21,-38 18,0 20,5 17,42 -3,39 -16,57 -31,42 z" - id="path23" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1137,1287 c -10,-25 5,-68 22,-65 9,2 16,9 15,16 -1,6 -2,23 -2,37 -2,26 -26,35 -35,12 z" - id="path24" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1742,808 c -7,-7 -12,-32 -12,-56 0,-43 0,-43 33,-40 29,3 32,6 35,41 5,55 -26,85 -56,55 z m 42,-40 c 8,-6 7,-8 -1,-8 -7,0 -14,-10 -14,-22 -1,-21 -2,-21 -6,-3 -3,11 -10,23 -17,27 -8,6 -7,8 2,8 6,0 13,10 13,23 1,20 2,20 6,2 3,-11 10,-23 17,-27 z" - id="path25" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1623,325 c 0,-33 2,-45 4,-27 2,18 2,45 0,60 -2,15 -4,0 -4,-33 z" - id="path26" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - id="path27" - d="m 1546.3714,2899.028 c -1.4278,-0.1532 -2.2894,-1.0012 -2.6272,-2.4971 0.8682,0.4571 1.8704,1.0124 3.1801,1.8765 0.1835,0.1209 0.2539,-0.4842 0.3792,-0.7302 0.1968,-0.3864 0.3416,-0.6777 0.4889,-0.9711 0.2815,0.5748 0.6242,1.0882 1.0052,1.4895 0.1536,0.1618 0.3243,0.2783 0.4889,0.4089 -1.1133,0.3252 -2.1077,0.5072 -2.8876,0.4235 z m 20.2456,-10.9305 c 0.026,-0.056 0.048,-0.1122 0.073,-0.168 0.016,0.026 0.033,0.049 0.05,0.073 -0.04,0.03 -0.083,0.065 -0.1234,0.095 z m 0.4935,-12.6611 c 0.1222,-0.4909 0.2551,-0.9751 0.3746,-1.4677 0.099,0.1112 0.2018,0.2053 0.3016,0.314 -0.2329,0.3782 -0.4597,0.7622 -0.6762,1.1537 z m -12.6792,-7.9369 c 0,-0.026 -0.01,-0.054 -0.01,-0.08 0.2026,0.018 0.4,0.094 0.2833,0.08 -0.091,-0.011 -0.1829,0 -0.2741,0 z m 28.5613,-6.1772 0.036,-0.066 c 0.047,-0.013 0.094,-0.023 0.1416,-0.037 -0.059,0.034 -0.1191,0.067 -0.1781,0.1022 z m 28.6206,-21.1237 c 0.1124,-0.1435 0.2301,-0.2778 0.3473,-0.4162 -0.105,0.1465 -0.2304,0.2775 -0.3473,0.4162 z m 7.3014,-5.6004 c -0.01,-0.028 0,-0.023 0,-0.022 l 0.01,0.01 v 0.015 z m -26.2356,-6.6518 c 0.3105,-0.7533 0.7065,-1.4437 1.1697,-2.081 -0.3899,0.6934 -0.7811,1.3857 -1.1697,2.081 z m 37.1146,-43.8319 c -0.7283,-0.2375 -1.4504,-0.476 -2.2343,-0.6936 0.7499,0.19 1.4947,0.4204 2.2343,0.6936 z m -59.7178,-9.6381 c -0.6455,-0.073 -1.3136,-0.1711 -2.0241,-0.2994 -0.9544,-0.1724 -1.9033,-0.4001 -2.8465,-0.6791 1.6229,0.3372 3.2455,0.6699 4.8706,0.9785 z m 30.8595,-12.9094 c -0.7545,-0.116 -1.5138,-0.2093 -2.2708,-0.3212 0.5806,0.077 1.14,0.141 1.9967,0.2774 0.091,0.015 0.1828,0.029 0.2741,0.044 z m -3.6141,-0.5111 c -2.9376,-0.3008 -5.8684,-0.6886 -8.8001,-1.1098 -0.5558,-0.08 -1.11,-0.1782 -1.6631,-0.2921 l 3.1755,0.3505 c 2.4414,0.2929 4.8539,0.7005 7.2877,1.0514 z" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1382,1750 c -1,-69 2,-120 7,-115 4,6 5,62 1,125 l -7,115 z" - id="path28" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1400,1818 c 0,-29 5,-60 10,-68 7,-11 10,3 10,47 0,34 -4,65 -10,68 -6,4 -10,-14 -10,-47 z" - id="path29" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1432,1797 c -2,-56 -5,-76 -14,-71 -7,4 -8,3 -4,-5 12,-19 26,-2 26,30 0,18 4,28 10,24 13,-8 13,8 1,21 -5,5 -11,25 -14,44 -2,19 -5,0 -5,-43 z" - id="path30" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1376,1594 c -6,-15 -4,-15 11,-3 15,11 16,11 6,-1 -7,-8 -13,-23 -14,-34 0,-21 0,-21 -10,-1 -6,14 -8,6 -4,-27 5,-39 2,-51 -14,-67 -12,-12 -21,-31 -20,-43 1,-22 1,-22 9,2 8,25 8,25 10,-5 2,-29 3,-29 9,-5 6,23 31,41 31,21 0,-11 48,-2 56,11 4,5 1,15 -5,21 -6,6 -10,36 -10,67 2,50 2,52 9,20 7,-32 7,-33 9,-7 0,16 -4,37 -9,48 -13,23 -55,25 -64,3 z m 47,-145 c -7,-7 -21,-7 -44,-1 l -34,10 45,1 c 31,1 41,-2 33,-10 z" - id="path31" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1372,1398 c 3,-15 1,-29 -4,-30 -6,-2 -8,-15 -6,-28 2,-21 5,-19 17,18 12,35 12,45 1,55 -10,10 -12,7 -8,-15 z" - id="path32" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1357,1257 c -7,-52 2,-145 15,-153 5,-3 7,5 4,18 -13,56 -15,99 -7,120 6,17 9,6 9,-40 0,-35 3,-66 7,-70 4,-4 5,14 3,41 -3,26 -1,47 4,47 4,0 9,-26 9,-57 1,-32 4,-49 6,-39 8,32 -8,167 -19,160 -6,-4 -14,-1 -18,5 -4,7 -10,-7 -13,-32 z" - id="path33" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1330,1235 c -3,-21 -2,-24 10,-95 5,-32 8,-36 8,-15 0,41 -15,135 -18,110 z" - id="path34" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - id="path35" - d="m 1269.2465,1098.8439 c -0.28,0.063 -0.677,0.03 -1.1983,-0.091 -2.5019,-0.5801 -7.7965,-3.2565 -16.0465,-7.7565 -22,-12 -23.0024,-16.9999 -21.0024,-99.99985 2,-48 -0.9986,-92.00037 -3.9986,-99.00037 -8,-11 4.9989,-40.99677 30.9989,-72.99677 8,-11 12.0002,-34.00323 9.0002,-60.00323 -3,-37 -5.0024,-39.99782 -12.0024,-20.99782 -6,18 -9.9944,20.00329 -15.9944,10.00329 -6,-10 -9.0001,-8.00348 -9.0001,6.99652 0,17 -2.006,18.00578 -11.006,5.00578 -8,-11 -8.9986,-8.00646 -3.9986,12.99354 4,19 1.9985,26.00559 -5.0015,22.00559 -7,-4 -9.9965,25.9931 -9.9965,96.9931 1,167.00002 -3.9989,201.00552 -30.9989,205.00552 -21,3 -22.0045,1.9992 -6.0045,-15.0008 14,-16 17.0039,-42.9976 17.0039,-170.99764 V 758.99628 l 45.0006,-26.99484 c 60,-36 60,-63.00546 0,-122.00546 -24,-24 -42.0027,-46.99894 -39.0027,-51.99894 3,-4 -1.9965,-4.99901 -9.9965,-1.99901 -27,10 -18.004,-17.99608 29.996,-90.99608 41,-64 44.9991,-74.00117 39.9991,-114.00117 -3,-24 -5.9979,-60.00155 -5.9979,-80.00155 0,-27 -2.9965,-31.99782 -9.9965,-20.99782 -1.6563,2.76047 -3.1436,4.77405 -4.448,6.1457 -0.2787,-1.35328 -0.4432,-2.73298 -0.3907,-4.1467 0.2619,-5.63335 1.1627,-11.20751 2.3249,-16.65288 1.3116,-5.23629 2.411,-10.54197 3.2692,-15.92596 0.8221,-5.23485 1.0165,-10.56494 1.1527,-15.88467 0.016,-0.80515 0.036,-1.61465 0.052,-2.42028 0.048,-2.36262 -0.021,-4.58296 -0.1498,-6.72393 2.2831,-8.90932 6.4842,-16.37979 11.1883,-18.39581 8,-3 4.997,-10.99634 -10.003,-23.99634 -31,-27 -28.997,-38.99993 10.003,-49.99993 82,-25.000008 117.0015,-24.001994 117.0015,3.99801 0,8 6.9945,26.0054 15.9945,39.0054 15,23 15.0004,23.99286 -19.9996,30.99286 -20,3 -36.0004,10.0008 -36.0004,15.0008 0,12 -33.997,11.0005 -45.997,-0.9995 -19,-19 -29.9975,6.00422 -25.9975,58.00422 4,56 17.9946,69.99633 24.9946,23.99633 2,-15 4.0015,-3.99491 5.0015,23.00509 0,37 -1.9972,44.99336 -7.9972,29.99336 -7,-16 -9.0038,-12.00069 -8.0038,17.99931 2,24 7.001,37.0064 16.001,37.0064 11,0 13.0037,8.00012 8.0037,33.00012 -19,91 -19,108.99739 0,104.99739 12,-2 31.9942,-31.00354 53.9942,-76.00354 23,-46 41.0014,-71.99726 52.0014,-71.99726 29,0 27.0028,22.99807 -7.9972,86.99807 l -32.9983,61.00273 23.9982,16.00031 23.9981,16.00031 3.9986,-48.00093 4.0051,-47.00143 v 51.99894 c -1,29 4.9988,58.99925 12.9988,67.99925 12,15 10.9962,18.99963 -8.0038,33.99963 -24,18 -19.9998,31.00112 9.0002,31.00112 13,0 17.0016,-5.99783 14.0016,-20.99783 -3,-13 0,-19.00031 7.9972,-16.00031 7,2 12.0023,11.99683 12.0023,22.99683 0,15 -7.9984,20.00559 -41.9984,22.00559 -40,3 -42.0035,4.99664 -46.0035,39.99664 l -3.9986,36.99814 -0.9964,-38.99714 c -2,-39 -1.9997,-39.00012 -37.9997,-33.00012 -20,3 -38.0056,8.00329 -40.0056,10.00329 -2,2 0,27.99645 5.0015,56.99645 5,31 5,81.00068 0,115.00068 -8,57 -6.996,63.00347 26.004,126.00347 19,37 30.9967,68.99681 27.9967,72.99681 -4,3 -24.9963,-26.0008 -47.9963,-65.00078 -23,-38 -48.0036,-76.00056 -55.0036,-82.00056 -8,-7 -5.9978,3.1e-4 3.0022,16.00031 13,20 15.0008,32.00192 7.0008,46.00192 -17,32 -12.0028,111.99951 7.9972,133.99951 9.2969,10.3906 13.2074,15.4015 11.2469,15.8434 z m 77.7514,-459.84581 c 34,1 41.0027,-2.00031 39.0027,-16.00031 -2,-10 1.9972,-20.99583 7.9972,-24.99583 6,-5 1.0013,-8.00429 -12.9987,-8.00429 -13,0 -22.0003,3.00528 -18.0003,6.00528 8,9 -14.9961,30.99813 -38.9961,36.99813 -10,2 0,4.99702 22.9952,5.99702 z m -21.3736,-39.99664 c 5.125,-0.25 13.3737,-4.5018 30.3737,-13.0018 15,-8 31.9998,-11.99553 37.9998,-8.99553 6,3 1.0042,-5.00708 -11.9958,-19.00708 -16,-18 -30.0036,-23.99782 -55.0036,-20.99782 -30,2 -30.0008,2.00347 -7.0008,-6.99653 22,-9 20.9998,-9.00577 -9.0002,-5.00577 -18,3 -57.9982,5.00577 -88.9982,5.00577 -85,0 -58.0001,7.99354 46.9999,12.99354 51,3 97.9992,9.99982 104.9992,16.99982 8,9 3.9997,10.00627 -18.0003,4.00627 -24,-6 -27.9952,-4.00447 -22.9952,8.99553 4,12 1.997,14.00329 -10.003,10.00329 -11,-4 -14.0002,-2.00249 -9.0002,4.99751 4.5,7.5 6.4997,11.2528 11.6247,11.0028 z m -45.6258,-12.0023 c 24,0 24.0007,0.002 -1.9993,-3.99801 -14,-2 -31.9998,-10.99882 -37.9998,-18.99882 -7,-8 -17.9981,-14.0013 -23.9981,-14.0013 -6,0 -4.0014,4.99503 3.9986,9.99503 13,8 11.9984,10.00279 -5.0016,11.00279 -27,2 32.0002,17.00031 65.0002,16.00031 z m -44.4992,-68.83355 c 19.9065,-0.13649 24.4996,-4.28902 24.4996,-19.16402 0,-11 -4.9994,-30.00441 -10.9994,-41.00441 -7,-13 -7,-17.99304 0,-13.99304 15,9 31.9996,-27.00242 19.9996,-45.00242 -8,-13 -9.0002,-11.99969 -9.0002,16.00031 0,3 -8.9966,13.99633 -18.9966,23.99633 -11,11 -27.0041,33.00043 -35.0041,49.00043 l -14.998,29.00211 34.9976,0.99951 c 3.5,0.125 6.6578,0.1847 9.5015,0.1652 z m 97.7314,-11.31668 c 0.346,0.0836 0.7319,0.0813 1.1592,0 5.3184,-1.01172 16.8575,-14.84647 32.6075,-42.84647 13,-21 21.0003,-44.99894 18.0003,-51.99894 -3,-8 0,-10.00528 6.0044,-6.00528 7,4 9.9972,2.00248 7.9972,-4.99752 -8,-24 -21.0021,-10.99956 -50.0021,49.00044 -16.875,35.85937 -20.9563,55.59338 -15.7665,56.84777 z M 1186.0833,251.87651 c -0.023,-0.06 -0.045,-0.12125 -0.065,-0.18173 0.025,0.0464 0.05,0.0922 0.072,0.14042 -10e-5,0.0139 -0.01,0.0274 -0.01,0.0413 z m 115.1716,-75.16924 c 20.4199,-0.66407 49.8689,-6.20393 61.7439,-13.70393 4,-2 4.9993,-8.00181 1.9993,-13.00181 -7,-11 -84.9996,9.99733 -84.9996,21.99733 0,3.75 9.0045,5.10684 21.2564,4.70841 z m -31.4353,-25.53276 c 27.4221,-1.645 80.1805,-14.75669 80.1805,-23.17856 0,-11 -18.0008,-9.99323 -63.0008,3.00677 -21,5 -34.9983,13.99931 -32.9983,17.99931 0.75,1.125 2.813,1.81086 5.8481,2.13117 2.6558,0.28028 6.0531,0.2763 9.9705,0.0413 z m -34.8217,-22.1708 c 11,0 38.0051,-7.00081 60.0051,-15.00081 l 39.9991,-14.0013 -44.0042,5.99702 c -48,5 -93,24.00509 -56,23.00509 z" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1342,924 c -1,-15 3,-24 13,-24 18,0 20,24 2,38 -10,8 -13,5 -15,-14 z" - id="path36" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1325,864 c -9,-9 -14,-23 -11,-31 3,-8 6,-17 6,-19 0,-2 7,-4 15,-4 9,0 15,10 16,23 1,21 1,21 8,-3 5,-16 13,-24 24,-22 13,2 17,-5 17,-33 0,-35 0,-35 -42,-34 -24,1 -35,3 -25,6 20,5 23,39 3,46 -9,4 -16,-3 -20,-19 -9,-36 0,-44 51,-44 h 45 l -4,55 c -7,80 -45,116 -83,79 z" - id="path37" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1431,821 c 1,-28 6,-48 10,-45 12,7 11,81 -1,89 -6,4 -9,-14 -9,-44 z" - id="path38" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1360,770 c 0,-11 7,-20 15,-20 8,0 15,9 15,20 0,11 -7,20 -15,20 -8,0 -15,-9 -15,-20 z" - id="path39" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1422,715 c -16,-54 -15,-64 4,-37 8,12 14,35 12,50 -4,25 -5,24 -16,-13 z" - id="path40" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1428,435 c 2,-72 6,-132 8,-134 7,-8 2,153 -6,209 -5,34 -6,6 -2,-75 z" - id="path41" - style="stroke-width:25.5846;stroke-dasharray:none" /><path - d="m 1454,305 c 0,-60 1,-84 3,-52 2,32 2,81 0,110 -2,29 -3,3 -3,-58 z" - id="path42" - style="stroke-width:25.5846;stroke-dasharray:none" /></g><path - style="fill:#ffffff;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" - id="path146" - d="m 66.86156,115.5964 c -0.23684,-0.0397 -0.472943,-0.0811 -0.706797,-0.12965 -0.266577,-0.0498 -0.521614,-0.1273 -0.784448,-0.18637 -0.181058,-0.0377 -0.357128,-0.0875 -0.537262,-0.12687 -0.116613,-0.0322 -0.232529,-0.0658 -0.352847,-0.0896 -0.198366,-0.0321 -0.394279,-0.0702 -0.590418,-0.10899 -0.261794,-0.0567 -0.527422,-0.10358 -0.793457,-0.14782 -0.312408,-0.0505 -0.625986,-0.097 -0.938496,-0.14714 -0.259428,-0.0331 -0.51374,-0.084 -0.772656,-0.11882 -0.241141,-0.0248 -0.478889,-0.0639 -0.7192,-0.0923 -0.15199,-0.0146 -0.303896,-0.0262 -0.455242,-0.0441 0,0 0.01066,0.006 0.01066,0.006 v 0 c 0.151339,0.0179 0.303239,0.0299 0.455204,0.0441 0.240298,0.0284 0.478052,0.0674 0.71918,0.0923 0.258884,0.0349 0.513209,0.0857 0.772617,0.11881 0.312518,0.0501 0.626095,0.0967 0.93849,0.14716 0.265992,0.0444 0.531631,0.0911 0.793407,0.14785 0.196173,0.0388 0.392152,0.0771 0.590533,0.10914 0.120282,0.0238 0.236161,0.0576 0.352823,0.0896 0.180051,0.0396 0.356185,0.0889 0.537162,0.12686 0.26282,0.0592 0.517899,0.13668 0.784498,0.18637 0.233904,0.0485 0.47004,0.0898 0.706922,0.12951 z" - clip-path="url(#clipPath1263)" - transform="translate(-6.2125015,0.73088253)" /><path - style="fill:#ffffff;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" - id="path147" - d="m 63.516352,141.15431 c 0.133341,0.17837 0.304463,0.33844 0.449588,0.51109 0.100719,0.11735 0.19641,0.23717 0.282556,0.36083 0,0 0.01206,0.003 0.01206,0.003 v 0 c -0.08608,-0.12365 -0.181806,-0.24344 -0.282525,-0.36091 -0.144966,-0.17269 -0.316254,-0.33265 -0.449502,-0.51101 z" - clip-path="url(#clipPath1262)" - transform="translate(-6.2125015,0.73088253)" /><path - style="fill:#ffffff;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" - id="path148" - d="m 63.1799,140.79499 c 0.207336,0.15195 0.35678,0.33827 0.520785,0.51533 0.142694,0.16452 0.300201,0.32297 0.478178,0.46749 0.09331,0.065 0.187334,0.12745 0.298866,0.17451 0.0154,0.004 0.03089,0.008 0.04631,0.0146 0,0 -0.01066,-0.006 -0.01066,-0.006 v 0 c -0.0154,-0.004 -0.03082,-0.008 -0.04622,-0.0146 -0.104033,-0.0431 -0.187076,-0.1065 -0.276034,-0.16437 -0.178136,-0.14445 -0.335639,-0.30291 -0.478354,-0.4674 -0.164027,-0.17703 -0.313356,-0.36342 -0.520551,-0.51545 z" - clip-path="url(#clipPath1261)" - transform="translate(-6.2125015,0.73088253)" /><path - style="fill:#ffffff;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" - id="path149" - d="m 46.924925,161.3955 c 0.08197,0.20533 0.139438,0.41533 0.203218,0.62402 0.02893,0.1024 0.01282,0.054 0.04719,0.14561 0,0 0.01206,0.003 0.01206,0.003 v 0 c -0.03452,-0.0917 -0.01834,-0.0432 -0.04729,-0.14562 -0.06383,-0.20869 -0.121323,-0.41869 -0.203125,-0.62403 z" - clip-path="url(#clipPath1260)" - transform="translate(-6.2125015,0.73088253)" /><path - style="fill:#ffffff;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" - id="path150" - d="m 46.244861,161.33032 c 0.161718,0.10226 0.338457,0.19054 0.499626,0.29322 0.133184,0.0951 0.24284,0.20579 0.336932,0.32329 0.04837,0.055 0.08531,0.11456 0.121463,0.17441 0,0 0.01219,0.003 0.01219,0.003 v 0 c -0.03609,-0.0599 -0.07297,-0.11939 -0.121398,-0.17452 -0.09402,-0.11764 -0.203682,-0.22847 -0.336761,-0.3236 -0.161067,-0.10283 -0.337873,-0.19084 -0.499601,-0.29321 z" - clip-path="url(#clipPath1259)" - transform="translate(-6.2125015,0.73088253)" /><path - style="fill:#000000;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" - id="path159" - d="m 108.05184,169.03115 c -0.36246,0.15504 -0.6806,0.35665 -0.98488,0.56788 -0.18489,0.12437 -0.35539,0.2599 -0.53987,0.38446 -0.0178,0.0132 -0.23187,0.14923 -0.25921,0.16678 -0.14642,0.0941 -0.30264,0.18138 -0.48091,0.23931 -0.0566,0.0214 -0.11641,0.0392 -0.16519,0.07 0,0 0.0114,0.004 0.0114,0.004 v 0 c 0.0487,-0.0307 0.10828,-0.0485 0.16477,-0.0698 0.1782,-0.0581 0.33436,-0.14533 0.48091,-0.23967 0.0265,-0.0172 0.24137,-0.15481 0.25922,-0.16684 0.1845,-0.12452 0.3551,-0.26006 0.53978,-0.38447 0.30422,-0.2113 0.62243,-0.41286 0.98511,-0.56762 z" - clip-path="url(#clipPath1253)" - transform="translate(-6.2125015,0.73088253)" /><path - d="m 135.53096,140.68105 c 0.0295,0.0498 0.0794,0.13384 0.13202,0.21822 0.0338,0.0542 0.0757,0.1198 0.12277,0.1889 0.0351,0.0516 0.0758,0.10914 0.12133,0.16894 0.0363,0.0477 0.0772,0.0989 0.12253,0.15129 0.0371,0.0429 0.0781,0.0876 0.12294,0.13261 0.003,0.003 0.005,0.005 0.008,0.008 0.0384,0.0382 0.0837,0.0806 0.1353,0.12399 0.0269,0.0226 0.0566,0.0464 0.089,0.0707 0.004,0.003 0.009,0.007 0.0146,0.0113 0.008,0.006 0.0156,0.0124 0.0255,0.0204 0.0164,0.0132 0.0369,0.0296 0.0582,0.0457 0.0119,0.009 0.0253,0.0188 0.0399,0.0288 0.0107,0.007 0.0229,0.0154 0.0364,0.0236 0.0104,0.006 0.0225,0.0132 0.036,0.0201 0.0105,0.005 0.0232,0.0113 0.0377,0.017 0.006,0.002 0.0121,0.005 0.019,0.007 0.0126,0.004 0.0208,0.006 0.0226,0.007 0.007,0.002 0.0123,0.003 0.017,0.004 0.009,0.002 0.0158,0.004 0.022,0.006 0.004,0.001 0.006,0.002 0.007,0.002 0.001,3.9e-4 -0.001,-2.2e-4 -0.007,-0.003 -0.002,-8.2e-4 -0.0131,-0.006 -0.0269,-0.0149 -0.0105,-0.007 -0.0209,-0.0142 -0.03,-0.0229 -0.009,-0.009 -0.0169,-0.0186 -0.0245,-0.0287 0.0124,0.0166 0.0255,0.0319 0.0389,0.046 0.0142,0.015 0.0286,0.0284 0.0422,0.0402 0.0159,0.0137 0.0312,0.0258 0.0443,0.0358 0.013,0.01 0.0265,0.0198 0.0395,0.0297 0.009,0.007 0.0159,0.0123 0.0219,0.0174 0.005,0.005 0.01,0.009 0.0134,0.0122 0.004,0.004 0.007,0.007 0.009,0.0103 0.002,0.002 0.003,0.004 0.005,0.006 l -0.008,-0.0126 c -0.0118,-0.0194 -0.0174,-0.036 -0.0197,-0.0437 -0.003,-0.01 -0.004,-0.017 -0.005,-0.0189 -4.7e-4,-0.003 -5.1e-4,-0.004 -2.2e-4,-9.4e-4 3.1e-4,0.003 8.7e-4,0.0108 0.002,0.0226 7.8e-4,0.007 0.002,0.0178 0.004,0.0302 0.002,0.0101 0.005,0.0251 0.0113,0.0424 0.006,0.0194 0.0143,0.0416 0.0224,0.0633 0.006,0.0163 0.0123,0.0322 0.0183,0.0473 0.005,0.0127 0.01,0.0245 0.0142,0.0353 0.004,0.01 0.007,0.0178 0.01,0.0251 0.003,0.008 0.004,0.0123 0.005,0.0156 7.5e-4,0.003 9.3e-4,0.004 8.7e-4,0.003 -3e-4,2e-4 -5.9e-4,0.003 -0.001,0.008 -9.2e-4,0.005 -0.002,0.0118 -0.004,0.0193 -0.002,0.009 -0.005,0.0187 -0.008,0.0285 -0.004,0.0133 -0.008,0.0264 -0.0122,0.0385 a 0.23300209,0.23300209 90 0 0 0.4421,0.14732 c 0.005,-0.0149 0.0109,-0.0333 0.0168,-0.0532 0.004,-0.0145 0.009,-0.0316 0.0137,-0.0503 0.004,-0.0149 0.008,-0.0327 0.0109,-0.0522 0.003,-0.0176 0.006,-0.0384 0.007,-0.0614 9.8e-4,-0.0175 0.001,-0.0368 -2.6e-4,-0.0573 -0.001,-0.0165 -0.003,-0.0333 -0.006,-0.0501 -0.003,-0.0185 -0.008,-0.0358 -0.0123,-0.0519 -0.005,-0.0177 -0.0108,-0.0337 -0.0159,-0.0473 -0.005,-0.013 -0.01,-0.0252 -0.014,-0.0358 -0.005,-0.0121 -0.009,-0.0235 -0.0138,-0.0342 -0.005,-0.0129 -0.0101,-0.0256 -0.0148,-0.0381 -0.006,-0.0166 -0.0122,-0.0334 -0.0179,-0.0505 0.003,0.008 0.005,0.0169 0.005,0.0202 9.9e-4,0.005 0.001,0.007 0.001,0.006 -1.2e-4,-0.001 -5.7e-4,-0.007 -0.002,-0.0167 -6.2e-4,-0.006 -0.002,-0.0168 -0.004,-0.0287 -0.002,-0.01 -0.004,-0.0245 -0.01,-0.0416 -0.004,-0.0146 -0.0126,-0.0376 -0.028,-0.0629 -0.003,-0.005 -0.007,-0.0108 -0.0105,-0.016 -0.007,-0.0102 -0.0148,-0.0201 -0.0228,-0.0298 -0.0132,-0.0162 -0.027,-0.0313 -0.0412,-0.0455 -0.0138,-0.0138 -0.0277,-0.0264 -0.0412,-0.0378 -0.0145,-0.0123 -0.0286,-0.0233 -0.0412,-0.0329 -0.0131,-0.01 -0.0262,-0.0195 -0.0394,-0.0296 -0.009,-0.007 -0.0159,-0.0124 -0.0212,-0.017 -0.004,-0.004 -0.007,-0.007 -0.01,-0.009 -0.002,-0.002 -0.003,-0.004 -0.004,-0.005 -0.008,-0.0111 -0.017,-0.0221 -0.0272,-0.0316 -0.0101,-0.01 -0.0216,-0.0175 -0.0332,-0.0252 -0.0179,-0.0119 -0.0338,-0.0192 -0.0391,-0.0216 -0.015,-0.007 -0.0272,-0.011 -0.034,-0.0134 -0.0106,-0.004 -0.0199,-0.006 -0.0273,-0.009 -0.0127,-0.004 -0.0246,-0.007 -0.0344,-0.009 -0.006,-0.002 -0.0108,-0.003 -0.0149,-0.004 -0.004,-0.001 -0.002,-6.3e-4 1.6e-4,1.1e-4 0.006,0.002 0.007,0.002 0.008,0.003 0.002,9.7e-4 0.003,0.001 0.002,0.001 -8.4e-4,-4.3e-4 -0.003,-0.001 -0.006,-0.003 -0.004,-0.002 -0.008,-0.005 -0.0137,-0.009 -0.007,-0.005 -0.0147,-0.0104 -0.0229,-0.0166 -0.0149,-0.0113 -0.0303,-0.0236 -0.047,-0.037 -0.009,-0.007 -0.0186,-0.0149 -0.0284,-0.0227 -0.008,-0.006 -0.0156,-0.0123 -0.0241,-0.0186 -0.025,-0.0187 -0.0478,-0.037 -0.0687,-0.0546 -0.0401,-0.0337 -0.0758,-0.0671 -0.10674,-0.0979 -0.002,-0.002 -0.004,-0.004 -0.006,-0.006 -0.0361,-0.0362 -0.0697,-0.0728 -0.10063,-0.10859 -0.0378,-0.0437 -0.0726,-0.0872 -0.10404,-0.1285 -0.0395,-0.0519 -0.0754,-0.10257 -0.107,-0.14906 -0.0424,-0.0623 -0.0808,-0.12237 -0.11261,-0.1733 -0.0495,-0.0794 -0.0971,-0.15944 -0.12632,-0.20885 a 0.23300209,0.23300209 90 0 0 -0.40106,0.2373 z" - id="path-1" - inkscape:path-effect="#path-effect171;#path-effect172" - inkscape:original-d="m 135.73149,140.5624 c 0.21544,0.36411 0.45099,0.73822 0.7922,0.99414 0.0534,0.04 0.14062,0.11936 0.20194,0.1398 0.0157,0.005 0.0852,0.0204 0.0932,0.0311 0.0603,0.0803 0.15042,0.10807 0.21747,0.20193 0.0122,0.017 0.008,0.0563 0.0155,0.0777 0.0735,0.22038 0.12069,0.21266 0.0466,0.43494" - style="fill:#ffffff;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.64787;stroke-dasharray:none;stroke-opacity:1" - transform="matrix(1.3572309,0,0,1.0075839,-58.289281,-4.3350325)" - clip-path="url(#clipPath1252)" /><path - style="fill:#000000;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" - id="path192" - d="m 130.36716,135.26594 c 0.14701,0.19505 0.29419,0.38946 0.45486,0.57847 0.1336,0.14636 0.26835,0.29152 0.39424,0.44158 0.16637,0.18422 0.3162,0.3761 0.47081,0.56576 0.1565,0.19293 0.3086,0.38636 0.44328,0.58825 0.20204,0.32538 0.39036,0.65529 0.59462,0.97994 0.10562,0.17431 0.20505,0.35133 0.29192,0.53132 0.0436,0.11675 0.0889,0.23305 0.12593,0.351 0.0626,0.18176 -0.0739,0.20303 -0.28263,0.23193 -0.28363,0.0375 -0.55367,-0.0316 -0.82467,-0.0841 -0.14465,-0.0288 -0.28937,-0.0576 -0.43475,-0.0845 0,0 0.53028,0.30098 0.53028,0.30098 v 0 c 0.14346,0.0266 0.28656,0.054 0.42948,0.0822 0.27949,0.0547 0.55722,0.11573 0.84769,0.0679 0.2343,-0.0425 0.39805,-0.0948 0.33893,-0.29834 -0.0353,-0.1197 -0.0825,-0.23717 -0.12212,-0.35607 -0.0852,-0.18353 -0.19595,-0.36061 -0.29792,-0.53912 -0.20993,-0.323 -0.40275,-0.65181 -0.59536,-0.98064 -0.0273,-0.0425 -0.12238,-0.19413 -0.15808,-0.24334 -0.0861,-0.11866 -0.19535,-0.22763 -0.27841,-0.34766 -0.15452,-0.18933 -0.30251,-0.38166 -0.46867,-0.56555 -0.12453,-0.15109 -0.25485,-0.29871 -0.39451,-0.44235 -0.16103,-0.18715 -0.31367,-0.37743 -0.45274,-0.57417 z" - clip-path="url(#clipPath1251)" - transform="translate(-6.2125015,0.73088253)" /><path - style="fill:#000000;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" - id="path193" - d="m 131.97657,139.50486 c 0.19757,-0.2437 0.38607,-0.49181 0.53099,-0.75543 0.074,-0.17871 0.0114,-0.30381 -0.11996,-0.45218 -0.14208,-0.13376 -0.22909,-0.29234 -0.32777,-0.44452 -0.12491,-0.19208 -0.25022,-0.38366 -0.40451,-0.56379 -0.20431,-0.25717 -0.43778,-0.50043 -0.65912,-0.7496 -0.11679,-0.1276 -0.23235,-0.25582 -0.35239,-0.3818 0,0 -0.60852,-0.19561 -0.60852,-0.19561 v 0 c 0.12466,0.1254 0.24218,0.25428 0.36167,0.38242 0.21811,0.24717 0.44919,0.48818 0.64617,0.74492 0.15709,0.1784 0.29217,0.36522 0.41116,0.55937 0.0996,0.15192 0.17682,0.31573 0.31927,0.44963 0.12748,0.13464 0.21517,0.23895 0.15412,0.41105 -0.13479,0.26309 -0.32063,0.50938 -0.53062,0.74345 z" - clip-path="url(#clipPath1250)" - transform="translate(-6.2125015,0.73088253)" /><path - style="fill:#000000;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" - id="path194" - d="m 130.78821,135.3877 c 0.18608,0.12306 0.34799,0.25889 0.46583,0.42216 0.0679,0.0989 0.1326,0.19857 0.20532,0.29555 0.0744,0.10225 0.1557,0.20127 0.22019,0.30722 0.0781,0.13112 0.15905,0.26126 0.23738,0.39226 0.12695,0.20892 0.25007,0.41854 0.35598,0.63388 0.0879,0.15533 0.14287,0.31842 0.20304,0.48026 0.047,0.11427 0.0914,0.22891 0.13873,0.34304 0.0716,0.16627 0.13202,0.33504 0.19951,0.50225 0,0 0.60168,0.21113 0.60168,0.21113 v 0 c -0.0701,-0.16578 -0.12826,-0.33409 -0.19457,-0.50076 -0.048,-0.11369 -0.0904,-0.22829 -0.13952,-0.34165 -0.0619,-0.1636 -0.11743,-0.32905 -0.20729,-0.48592 -0.10486,-0.21552 -0.22525,-0.42591 -0.34913,-0.63557 -0.0795,-0.12994 -0.15648,-0.26055 -0.23539,-0.39072 -0.06,-0.10899 -0.14168,-0.20855 -0.2177,-0.31158 -0.0712,-0.0977 -0.14129,-0.19558 -0.20837,-0.29502 -0.11019,-0.16731 -0.26265,-0.31363 -0.45693,-0.43263 z" - clip-path="url(#clipPath1249)" - transform="translate(-6.2125015,0.73088253)" /><path - d="m 96.458666,82.466746 c 2e-5,4.2e-5 4.1e-5,8.7e-5 6.3e-5,1.32e-4 0.0012,0.0026 0.0026,0.0051 0.0045,0.0072 0.0019,0.0021 0.0043,0.0037 0.0069,0.005 0.0025,0.0013 0.0052,0.0023 0.0078,0.0034 0.0026,0.0011 0.0051,0.0025 0.0076,0.0039 0.0014,8.1e-4 0.0028,0.0016 0.0042,0.0023 0.0015,8.2e-4 0.003,0.0016 0.0045,0.0024 0.0023,0.0012 0.0026,0.0014 0.0049,0.0026 0.0021,0.0011 0.0042,0.0023 0.0063,0.0034 0.0022,0.0012 0.0044,0.0025 0.0066,0.0037 a 0.02561287,0.02561287 90 0 0 0.051,0.0048 c -3.2e-5,-6.3e-5 -6.5e-5,-1.28e-4 -9.9e-5,-1.95e-4 -0.0018,-0.0036 -0.0037,-0.0071 -0.0061,-0.01034 -0.0024,-0.0032 -0.0054,-0.006 -0.0085,-0.0084 -0.0064,-0.0049 -0.01361,-0.0085 -0.02054,-0.01256 -0.0024,-0.0014 -0.0049,-0.0028 -0.0073,-0.0041 -0.0022,-0.0012 -0.0045,-0.0024 -0.0067,-0.0036 -0.0013,-6.88e-4 -0.0036,-0.002 -0.0049,-0.0026 -0.0014,-7.74e-4 -0.0028,-0.0015 -0.0042,-0.0023 -0.0019,-0.0011 -0.0039,-0.0022 -0.0058,-0.0032 -0.0019,-0.0011 -0.004,-0.002 -0.006,-0.0028 -0.0016,-6.4e-4 -0.003,-0.0012 -0.0041,-0.0016 a 0.01630398,0.01630398 90 0 0 -0.02998,0.01282 z" - id="path-1-8" - inkscape:path-effect="#path-effect227;#path-effect228" - inkscape:original-d="m 96.472664,82.460083 c 6.89e-4,0.0014 8.21e-4,0.0032 0.0021,0.0041 0.0052,0.0038 0.01198,0.005 0.01757,0.0083 0.01573,0.0092 0.04855,0.02372 0.05684,0.04031" - style="fill:#008080;fill-rule:nonzero;stroke:none;stroke-width:1.64787;stroke-dasharray:none;stroke-opacity:1" - transform="matrix(1.3572309,0,0,1.0075839,-58.289281,-4.3350325)" - clip-path="url(#clipPath1243)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.755906;stroke-dasharray:none;stroke-opacity:1" - d="m 506.49471,527.29297 c -0.004,-0.015 -0.0231,-0.0934 -0.0424,-0.17413 -0.0335,-0.14023 -0.16153,-0.5255 -0.40532,-1.21937 -0.11223,-0.31942 -0.25539,-0.62758 -0.50498,-1.08697 -0.22442,-0.41305 -0.78611,-1.37018 -1.00693,-1.71581 l -0.22773,-0.35643 -0.20138,-0.49513 c -0.11076,-0.27232 -0.2704,-0.67794 -0.35476,-0.90138 -0.0844,-0.22344 -0.19238,-0.50117 -0.24005,-0.61719 -0.0929,-0.22618 -0.30092,-0.6835 -0.32304,-0.7103 -0.007,-0.009 -0.13617,-0.25574 -0.28619,-0.54843 -0.44703,-0.87218 -0.7716,-1.44206 -1.71742,-3.01544 -0.57699,-0.95981 -0.63478,-1.04879 -0.98594,-1.51808 -0.32778,-0.43804 -0.62997,-0.85889 -0.94015,-1.30931 -0.34576,-0.5021 -0.49798,-0.68777 -0.861,-1.05019 -0.23104,-0.23066 -0.30936,-0.3179 -0.29046,-0.32352 0.0688,-0.0205 0.45333,-0.0743 0.67916,-0.0951 0.29092,-0.0268 0.90448,-0.0306 1.2139,-0.008 0.84603,0.0628 1.72235,0.29888 2.4375,0.65658 0.29058,0.14534 0.43169,0.22772 0.67798,0.39578 0.40039,0.27322 0.70766,0.56315 1.05916,0.99939 0.55956,0.69444 0.87719,1.06156 1.23105,1.42289 0.68071,0.69507 1.22512,1.0948 1.69587,1.2452 0.63466,0.20277 1.25091,0.50905 1.72656,0.85809 0.0559,0.041 0.18243,0.12223 0.28125,0.18053 0.83763,0.49409 1.53457,1.12879 1.93794,1.76486 0.13357,0.21062 0.28193,0.52337 0.36009,0.75908 0.0354,0.10673 0.10159,0.26436 0.1471,0.3503 0.18031,0.34043 0.32798,0.73191 0.4038,1.07046 0.16458,0.73493 0.10358,1.46278 -0.18936,2.25967 -0.25267,0.68732 -0.52381,1.12291 -0.98647,1.58483 -0.94173,0.9402 -2.3668,1.51885 -3.96216,1.60886 -0.33172,0.0187 -0.31712,0.0193 -0.3256,-0.0121 z m 1.2718,-1.99219 c 0.0395,-0.0474 0.0377,-0.0613 -0.005,-0.0416 -0.0197,0.009 -0.0368,0.0299 -0.0381,0.0465 -0.003,0.0393 0.008,0.0381 0.0435,-0.005 z" - id="path881" - transform="matrix(0.43740606,0,0,0.48806439,-93.304199,-115.12258)" - clip-path="url(#clipPath1242)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.404409;stroke-dasharray:none;stroke-opacity:1" - d="m 155.60818,534.11587 c -0.0491,-0.0813 -0.82181,-1.81183 -1.27966,-2.86587 -3.32639,-7.65785 -7.17256,-18.3142 -7.54863,-20.9145 l -0.0419,-0.28951 0.33411,-0.15767 c 0.62458,-0.29475 1.6435,-0.52694 3.19371,-0.72778 1.80091,-0.23332 2.81102,-0.26987 12.33629,-0.44629 3.69661,-0.0685 4.99806,-0.0376 6.96037,0.165 2.2816,0.23558 3.64957,0.58384 4.9375,1.25701 0.84583,0.44208 0.81383,0.38358 0.4618,0.84423 -5.48675,7.1799 -11.84308,14.85468 -17.95205,21.67576 -1.38001,1.54087 -1.36313,1.52329 -1.40157,1.45962 z" - id="path885" - transform="matrix(0.26458333,0,0,0.26458333,-6.2125015,0.73088253)" - clip-path="url(#clipPath1239)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.404409;stroke-dasharray:none;stroke-opacity:1" - d="m 465.375,635 v -1.65625 h 15.875 15.875 V 635 636.65625 H 481.25 465.375 Z" - id="path886" - transform="matrix(0.26458333,0,0,0.26458333,-6.2125015,0.73088253)" - clip-path="url(#clipPath1238)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.368001;stroke-dasharray:none;stroke-opacity:1" - id="path925" - d="m 89.740768,169.59487 c 0.219027,0.29006 0.454083,0.56731 0.673129,0.8573 0.194532,0.31337 0.425159,0.60089 0.688411,0.85871 0.138526,0.1221 0.290349,0.2277 0.457838,0.30541 0.154975,0.0584 0.308528,0.12044 0.463222,0.17963 0,0 -7.94e-4,-5.2e-4 -7.94e-4,-5.2e-4 v 0 c -0.154694,-0.0592 -0.308253,-0.12123 -0.463222,-0.17965 -0.166891,-0.0774 -0.318113,-0.18275 -0.456152,-0.30441 -0.263263,-0.25782 -0.493905,-0.54533 -0.68843,-0.85871 -0.219035,-0.28999 -0.454091,-0.56723 -0.673113,-0.85729 z" - clip-path="url(#clipPath1237)" - transform="translate(-6.2125015,0.73088253)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.368001;stroke-dasharray:none;stroke-opacity:1" - id="path926" - d="m 90.674723,170.27215 c 0.163505,0.24696 0.328697,0.49347 0.510088,0.72775 0.108979,0.11813 0.230899,0.22551 0.358441,0.32326 0.07653,0.0561 0.149374,0.11765 0.217792,0.18335 0,0 7.94e-4,2.7e-4 7.94e-4,2.7e-4 v 0 c -0.06841,-0.0657 -0.141256,-0.1273 -0.217789,-0.18336 -0.12755,-0.0977 -0.24946,-0.20514 -0.358455,-0.32325 -0.181398,-0.23427 -0.346596,-0.48078 -0.51009,-0.72774 z" - clip-path="url(#clipPath1236)" - transform="translate(-6.2125015,0.73088253)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.368001;stroke-dasharray:none;stroke-opacity:1" - id="path927" - d="m 92.069546,171.48419 c -0.244361,-0.11515 -0.500872,-0.20147 -0.749941,-0.30508 -0.144346,-0.0538 -0.245321,-0.17078 -0.356552,-0.2719 -0.162092,-0.16839 -0.292005,-0.36021 -0.39561,-0.56887 -0.03594,-0.0987 -0.09968,-0.18036 -0.159526,-0.26483 -0.0057,-0.0109 -0.0114,-0.0217 -0.01712,-0.0326 0,0 -7.94e-4,-5.2e-4 -7.94e-4,-5.2e-4 v 0 c 0.0057,0.0109 0.0114,0.0218 0.01712,0.0326 0.05984,0.0845 0.123602,0.16609 0.159538,0.26482 0.103606,0.20867 0.233511,0.4005 0.395595,0.5689 0.111738,0.10158 0.213185,0.21889 0.35824,0.27289 0.249076,0.10359 0.505582,0.18994 0.749946,0.30508 z" - clip-path="url(#clipPath1235)" - transform="translate(-6.2125015,0.73088253)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.368001;stroke-dasharray:none;stroke-opacity:1" - id="path928" - d="m 90.273401,169.86312 c 0.178469,0.0849 0.325191,0.21017 0.4661,0.34582 0.114766,0.12399 0.188693,0.27713 0.289724,0.41147 0.0923,0.11815 0.1783,0.24079 0.25713,0.36831 0.01275,0.0186 0.02551,0.0373 0.03824,0.0559 0,0 7.94e-4,2.7e-4 7.94e-4,2.7e-4 v 0 c -0.01275,-0.0186 -0.02551,-0.0373 -0.03825,-0.0559 -0.07883,-0.12752 -0.164827,-0.25017 -0.257124,-0.36832 -0.101042,-0.13433 -0.174972,-0.28748 -0.289722,-0.41148 -0.140893,-0.13564 -0.28766,-0.26087 -0.466087,-0.34583 z" - clip-path="url(#clipPath1234)" - transform="translate(-6.2125015,0.73088253)" /><path - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.768001;stroke-dasharray:none;stroke-opacity:1" - d="m 99.881091,160.60536 c -0.475316,-1.56567 -0.765427,-5.19335 -0.453636,-5.67249 0.114305,-0.17566 0.935035,-0.34103 1.857815,-0.37433 2.16102,-0.078 2.4279,0.24818 2.33178,2.8498 -0.0666,1.80132 -0.43365,2.81032 -1.33277,3.66313 -0.26363,0.25005 -1.62838,0.92295 -1.8719,0.92295 -0.0603,0 -0.29936,-0.62508 -0.531289,-1.38906 z" - id="path1383" /><g - transform="matrix(0.0305803,0,0,-0.02484812,38.426646,76.274964)" - fill="#000000" - stroke="none" - id="g2-2" - inkscape:label="dragon" - style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"><path - id="path1-9" - d="m 1338.961,1860.0367 c -4.3008,0 -10.3216,-11.7432 -12.9021,-25.4424 -7.7411,-35.2266 1.722,-111.5528 18.9248,-153.6291 14.6223,-34.248 13.7571,-36.2089 -5.166,-87.0918 -10.3216,-28.377 -26.665,-57.724 -35.2663,-64.5735 -19.7832,-15.6564 -20.6425,-34.249 -3.4397,-54.798 17.2027,-19.5704 7.743,-43.0576 -19.7815,-46.9716 -19.7831,-2.9356 -23.2211,-7.8272 -23.2211,-33.2687 0,-29.3554 -16.3478,-62.624 -30.9701,-62.624 -3.4405,0 -15.4858,29.3535 -24.9473,66.5371 -15.4824,55.7754 -17.1934,79.2647 -12.0326,156.5676 3.4405,60.668 2.5813,90.016 -3.4397,90.016 -23.2238,0 -56.7749,-22.5052 -92.0406,-62.6243 -21.5034,-24.463 -38.7061,-38.1545 -38.7061,-31.3049 0,31.3126 -22.3601,35.2266 -78.26904,14.6777 -133.32117,-49.9044 -290.73371,-197.6602 -343.20204,-322.9105 -40.42642,-97.8516 -32.67511,-122.3233 23.23377,-67.5263 37.846,38.1622 74.82767,39.1435 107.51287,2.9384 l 24.07795,-26.4171 24.09053,25.4423 c 36.12574,40.1194 65.36367,44.0372 92.0279,13.7031 12.0419,-13.6992 23.22704,-25.4424 24.94732,-25.4424 1.72027,0 15.4875,13.6993 30.96995,29.3555 33.54535,36.2052 43.00269,37.1791 43.00269,4.8879 0,-13.6991 0.866,-27.4052 1.7261,-31.3193 0.8601,-4.8926 -12.04448,-17.6095 -28.38704,-30.3302 -22.36355,-17.6132 -29.25303,-30.3282 -30.11317,-52.8341 -0.86014,-27.3985 -16.33251,-49.9006 -41.27647,-59.6858 -5.16082,-1.957 -9.47159,-27.39841 -10.33172,-58.71099 0,-47.94734 -3.43803,-57.7392 -23.22117,-75.35251 -24.08382,-21.52738 -30.10142,-52.84564 -13.75883,-64.58786 14.62233,-9.78517 2.57957,-60.66328 -22.36439,-92.95434 -17.20273,-23.48441 -19.78315,-33.27435 -12.90205,-53.82321 12.04191,-36.20514 11.18599,-40.12015 -17.19852,-69.47567 -25.80411,-25.44144 -33.55374,-54.79505 -17.21113,-66.53725 4.30067,-2.93556 2.57872,-18.58228 -6.02265,-39.13113 -9.4615,-23.48442 -20.64076,-34.25001 -36.12321,-36.20704 -18.92301,-2.93556 -22.36438,-7.83388 -22.36438,-35.23236 0,-41.09771 -39.56797,-83.17013 -70.53288,-74.36347 -15.48247,4.89258 -21.49334,0.98329 -28.37443,-19.56555 -7.74124,-23.48443 -12.04612,-25.44242 -60.21376,-25.44242 -61.92985,0 -112.6779,24.46293 -154.82459,73.38879 -16.3426,18.59183 -32.68266,34.24331 -36.12321,34.24331 -15.48245,0 -5.1625,-44.03803 19.78146,-83.17871 48.16765,-75.34583 128.15615,-122.30986 210.72925,-122.30986 88.59408,0 207.29039,68.49045 268.3601,155.57847 32.68518,46.96883 92.90566,173.19849 123.01042,260.2865 18.06297,51.86141 79.99277,140.91793 90.31447,129.17573 2.5804,-1.95704 -0.01,-16.64149 -5.166,-31.31925 -7.1232,-21.60952 -6.2992,-43.35922 0.4788,-54.89825 2.2307,-0.0615 4.4311,-0.48414 6.6275,-0.88868 3.2936,-0.75973 6.5671,-1.6284 9.8403,-2.49408 5.2384,-1.32759 10.3436,-3.20248 15.4849,-4.93081 5.2369,-1.84912 10.5018,-3.60795 15.8126,-5.16014 3.955,-1.12917 7.9135,-2.24062 11.8688,-3.36843 2.2303,-0.65905 4.484,-1.18367 6.7661,-1.53371 2.6445,-0.51093 5.292,-1.02397 7.9504,-1.43339 3.3329,-0.56222 6.6681,-1.08065 10.0167,-1.50503 2.6565,-0.31981 5.3196,-0.46794 7.9882,-0.57335 2.5331,-0.0504 5.0774,-0.17438 7.6102,-0.0717 2.5623,0.061 5.0899,0.50001 7.6102,0.98903 1.2902,0.25963 2.586,0.49479 3.8807,0.71669 0.2121,0.0364 0.4099,0.0567 0.6174,0.086 9.6345,4.56114 16.4676,12.55534 16.4676,22.23164 0,4.89259 -7.7462,17.61331 -18.0677,29.35551 l -17.1986,19.56556 28.387,38.15644 c 2.2591,2.99834 4.6276,5.2311 6.955,7.95523 0.4168,1.89172 0.8067,3.79043 1.2474,5.67616 0.4633,2.10975 0.7629,4.25782 1.0457,6.40719 0.2561,2.81683 0.5512,5.64645 0.4536,8.48559 -0.023,2.31895 -0.028,4.63495 -0.126,6.95186 -0.081,1.7532 -0.1719,3.50952 -0.4157,5.24616 -0.2488,1.87213 -0.4821,3.75523 -0.5796,5.64749 0,1.66955 -3e-4,3.33294 0,5.00248 4e-4,1.95152 0,3.91089 0,5.8625 0,2.54187 0.014,5.0837 0.025,7.62554 -0.5657,5.19697 -1.0155,10.4097 -0.7938,15.63813 0.2536,1.77162 0.3196,3.59254 0.756,5.31782 0.9216,3.65205 2.4902,6.78736 4.4602,9.54627 0,0.004 0,0.01 0,0.0144 0.4634,1.38408 0.9721,2.74425 1.575,4.05645 1.3463,2.94298 2.7175,5.85867 5.002,8.0269 2.0501,1.67781 4.0117,2.80395 6.4133,3.68379 1.5812,0.63102 3.1729,1.2648 4.7626,1.86337 1.0862,0.48901 2.1344,1.04152 3.1122,1.77739 1.7291,1.11779 3.4481,2.27266 5.2792,3.16775 1.135,0.55615 2.2662,1.12692 3.4146,1.64838 1.9032,0.89709 3.8496,1.71374 5.8839,2.13573 1.4062,0.28942 2.7023,0.40128 3.8934,0.35835 4.1869,-0.15096 7.0046,-2.17854 8.2528,-4.81614 7.3033,-2.19652 13.8092,-11.21462 13.8092,-27.9508 v -13.74606 c 0.2194,-3.32651 -0.2953,-6.75096 0.075,-10.0623 0.3926,-4.36369 0.9524,-8.71138 1.7009,-13.01504 1.165,-6.90011 2.1409,-13.84806 3.4649,-20.71226 1.2739,-5.98042 2.8162,-11.88047 4.2839,-17.80252 0.2121,-0.77166 0.4233,-1.54135 0.6426,-2.30773 0.7376,-2.48618 1.6252,-5.14034 2.7467,-7.4392 0.098,-0.17614 -0.076,0.39073 -0.1006,0.58767 2.1786,-3.01916 4.5497,-5.90257 7.1439,-8.47124 1.6627,-0.56088 3.3361,-1.08993 5.0021,-1.63405 2.6625,-0.88594 5.3514,-1.65474 8.026,-2.49407 2.414,-0.73254 4.8341,-1.41205 7.2699,-2.03539 0.2195,9.7e-4 0.3547,0.0287 0.5797,0.0287 30.1048,0 40.4213,30.33403 33.5402,102.74429 -3.4405,37.18364 -2.5779,68.48758 2.5829,79.25125 11.1819,23.48449 15.4834,11.74702 22.3645,-63.59879 2.5804,-28.37701 9.4548,-57.73442 14.6155,-65.56257 16.3427,-22.50589 42.1468,-15.65245 51.6082,13.70307 11.1819,30.33402 5.1633,177.10392 -10.319,295.50457 -10.3217,75.3458 -10.3217,77.3028 12.902,132.0997 12.902,29.3556 33.5437,61.6581 45.5856,70.4647 22.3635,16.635 26.6667,17.6067 157.4074,12.7142 68.8111,-1.957 86.8738,0 116.1186,17.6161 54.1886,31.3125 79.1358,94.9199 63.6534,160.4806 -10.3216,44.0333 -36.1334,66.5392 -85.1611,73.3888 -26.6642,3.914 -37.8418,11.7355 -43.0026,27.3917 -13.7622,40.1191 -60.2138,90.9973 -98.9199,107.6321 -30.1048,13.6992 -44.7188,28.3828 -73.1032,79.2657 -24.9441,44.0333 -41.2924,62.6241 -53.3343,62.6241 -16.3427,0 -17.2063,-3.9207 -12.0454,-45.9969 2.5804,-26.42 7.7514,-58.7005 10.3318,-72.3999 4.3007,-20.5488 0.8601,-26.4266 -12.9021,-31.3192 -13.7622,-3.9141 -22.3728,3.9227 -39.5755,38.1708 -25.8042,49.9044 -71.3838,111.5452 -82.5656,111.5452 z m 150.2132,-47.5163 c 3.6035,-1.1754 10.5207,-11.19 21.8099,-30.7603 12.902,-24.463 22.3586,-46.9706 20.6383,-50.8848 -13.7622,-29.3554 -45.5855,22.502 -45.5855,74.3635 0,5.5041 0.9752,7.9869 3.1373,7.2816 z m -140.7508,-1.4048 c 3.4405,0 19.784,-23.4862 35.2664,-50.8847 14.6223,-28.377 32.6853,-61.6466 38.7061,-73.3888 11.1819,-20.5489 12.8945,-20.5509 43.8595,-6.8515 17.2027,8.8066 54.1877,16.627 80.852,16.627 41.2865,0.9786 53.3276,-2.9327 80.8519,-26.417 30.965,-27.3986 31.831,-29.3574 14.6282,-36.207 -23.2237,-9.7852 -25.8091,-52.8371 -5.1658,-85.1282 15.4825,-25.4414 30.9691,-27.3899 47.3117,-5.8624 14.6223,20.5488 79.136,13.6982 102.3596,-10.7648 22.3636,-22.5059 22.3603,-78.2919 0.8567,-118.411 -24.9438,-45.9903 -62.7907,-56.7454 -177.1889,-49.8958 -113.538,7.8282 -141.0599,-2.9432 -178.0457,-71.4394 -24.944,-45.9903 -67.0932,-213.3129 -67.0932,-265.1742 0,-32.29109 -12.9021,-67.51197 -25.8042,-67.51197 -4.3006,0 -8.5989,31.3102 -10.3191,70.45027 -1.7203,45.0118 -6.0209,71.428 -12.902,74.3636 -15.4825,4.8925 -14.623,-68.4877 3.4398,-196.67341 11.1817,-81.21693 12.0377,-107.6407 4.2964,-116.44736 -6.8811,-7.82814 -12.9037,-8.81334 -18.9246,-1.96372 -10.3217,11.7422 -51.6083,191.79896 -51.6083,225.06859 0,23.4844 -12.0326,38.1621 -24.9346,29.3553 -4.3008,-3.914 -2.5847,-29.3545 4.2964,-62.62407 13.7622,-65.56062 14.6182,-90.03023 4.2965,-90.03023 -4.3007,0 -9.4615,17.60758 -12.9021,38.15639 -8.6014,60.66803 -85.1518,125.25891 -97.1936,82.20411 -2.5805,-6.8497 6.0259,-14.67679 18.0678,-18.59084 28.3845,-7.8282 55.0463,-45.01564 61.9273,-87.09191 5.1608,-34.24808 -9.4632,-77.30475 -44.7288,-124.27356 -10.3216,-15.65628 -24.0796,-43.05762 -30.1006,-61.64946 -15.4825,-48.92584 -24.9473,-42.06572 -24.9473,15.66679 v 50.87047 l -27.5302,-6.8372 C 1034.4635,769.97442 1000.9273,722.02806 951.89957,599.7134 877.92783,410.85959 826.31293,339.4164 721.37625,279.72685 c -81.71297,-45.9903 -184.06334,-42.06476 -256.31481,11.75368 -28.38451,21.52738 -19.78734,25.43953 17.19853,7.82621 47.30753,-22.50589 130.74159,-18.5899 177.18897,6.85155 100.63599,54.79696 159.12526,172.21708 219.33482,433.48115 21.50341,91.98062 44.72711,184.92825 51.6082,208.41265 24.94395,77.30291 68.81715,160.48161 114.40494,215.27851 44.7271,53.8185 45.5812,54.7989 62.784,36.2071 12.042,-12.7207 20.64,-14.6759 26.6609,-7.8262 6.021,6.8495 0.8619,17.6122 -19.7814,33.2686 -22.3637,18.5918 -39.5688,23.4786 -79.9953,23.4786 -28.3844,0 -58.48255,-3.9083 -66.22377,-8.8009 -20.64329,-10.7637 -19.79071,6.8439 5.15326,96.8675 20.64329,75.3458 16.34765,107.6378 -7.7362,54.7978 -17.20272,-38.1622 -38.70446,-145.7912 -32.6835,-163.4046 6.02095,-17.6133 -6.01759,-16.6385 -26.66087,0.9748 -22.36355,18.5917 -48.17521,18.5956 -72.25904,-0.9748 -11.18178,-8.8065 -21.50089,-13.6963 -23.22116,-11.7393 -5.16082,4.8925 59.35529,132.095 92.04049,181.0209 35.2656,53.8184 22.36103,68.4952 -15.48498,18.5909 -32.6852,-43.0549 -89.45755,-152.6565 -89.45755,-174.1839 0,-6.8495 -3.43552,-18.5888 -7.7362,-26.4169 -6.88109,-11.7422 -10.32248,-11.7355 -22.36439,1.9636 -21.50342,24.463 -63.64842,24.463 -97.19375,0 -11.18178,-7.8282 -21.51014,-12.7216 -24.09054,-10.7646 -1.72028,1.957 10.32751,27.3994 27.53024,54.7979 64.51025,109.594 191.80962,225.0608 300.18682,271.0511 l 54.17854,23.4788 3.4523,-45.9828 c 6.8811,-76.3242 41.2839,-166.3612 87.7313,-224.0938 22.3637,-28.3769 46.4408,-51.8594 53.3219,-51.8594 14.6223,0 15.4883,15.6573 1.7261,25.4424 -6.021,4.8926 1.7119,11.7518 21.495,19.5799 75.692,30.334 125.5858,100.7768 143.6486,204.4996 6.021,32.291 19.7791,81.2227 30.1007,108.6211 17.2027,44.0333 18.0703,52.8323 7.7488,75.3382 -15.4824,33.2696 -37.8452,143.8534 -29.2438,143.8534 z m -190.0911,-205.4887 c 3.4406,0 6.0227,-43.0565 6.0227,-94.9179 0,-68.4962 4.294,-108.6135 14.6156,-139.9261 8.6014,-24.4629 16.3384,-47.9559 17.1985,-52.8485 0.8601,-4.8926 -9.4589,-12.7197 -23.2211,-18.5909 -21.5036,-7.8281 -26.6669,-5.8673 -41.2891,13.7031 -16.3426,23.4844 -16.336,27.3956 -1.7135,129.1614 9.4615,59.6895 -11.1794,42.081 -23.2213,-19.5655 l -9.4623,-56.7616 -16.3417,44.0331 c -25.8042,74.3673 -22.3704,95.9015 27.5176,148.7414 24.0839,25.4414 46.4541,46.9715 49.8946,46.9715 z m 246.8274,-497.4095 c 0.4483,0.2521 0.9026,0.2295 1.3481,-0.043 5.9386,-3.6312 11.5875,-53.7084 15.8881,-145.4445 4.3008,-84.15245 2.5812,-129.1604 -3.4397,-133.07446 -17.2027,-12.72073 -33.5554,145.80373 -23.2338,233.86936 3.1047,28.2547 6.2985,42.9281 9.4373,44.6927 z" - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:16.5485;stroke-dasharray:none;stroke-opacity:1" /><path - d="m 1489.4773,1590.9507 c -20.6433,-36.205 5.1608,-102.7443 40.4264,-102.7443 32.6851,0 46.4473,82.1954 18.0629,110.5724 -22.3636,23.4845 -42.1468,20.5489 -58.4893,-7.8281 z m 39.5662,-40.1192 c 0,-20.5488 -3.4405,-32.291 -8.6013,-28.377 -4.3007,2.9356 -8.6014,18.5918 -8.6014,35.2267 0,15.6562 4.3007,28.377 8.6014,28.377 5.1608,0 8.6013,-15.6564 8.6013,-35.2267 z" - id="path2-1" - style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.928018;stroke-dasharray:none;stroke-opacity:1" /><ellipse - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.336927;stroke-dasharray:none;stroke-opacity:1" - id="path78-9" - cx="31.049107" - cy="11.949494" - rx="0.33780217" - ry="0.48663026" - transform="matrix(46.353874,0,0,-58.421794,83.628303,2251.9596)" /><ellipse - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.336927;stroke-dasharray:none;stroke-opacity:1" - id="path78-9-8" - transform="matrix(42.420402,23.551599,18.686654,-53.464269,83.628303,2251.9596)" - ry="0.48663026" - rx="0.30880055" - cy="24.209803" - cx="26.588318" /><g - id="g112" - style="display:inline;fill:#52973a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - inkscape:label="color"><path - style="display:inline;fill:#52973a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 39.244427,129.23998 c -2.739791,-0.3886 -4.840195,-1.00945 -6.835138,-2.02036 -2.079358,-1.05369 -1.995649,-1.39852 0.150861,-0.62146 2.323784,0.84125 8.09469,1.04156 11.16319,0.38749 4.824112,-1.0283 9.075872,-3.80336 12.168346,-7.94209 3.65872,-4.89656 5.652133,-9.87268 11.643016,-29.064221 2.023697,-6.482837 4.146527,-10.899231 7.165357,-14.90701 2.14073,-2.842021 6.646987,-7.366854 7.336611,-7.366854 0.23902,0 0.974474,0.333669 1.634339,0.74149 1.402783,0.866969 2.341984,0.668046 2.178876,-0.461483 -0.0712,-0.493048 -0.758351,-1.182205 -1.852341,-1.857736 -1.713535,-1.058104 -1.809875,-1.073922 -6.540738,-1.073922 -2.64087,0 -5.119782,0.07955 -5.50869,0.176777 -0.613228,0.153308 -0.692353,0.0241 -0.595971,-0.973244 0.06112,-0.632512 0.568719,-2.503732 1.127987,-4.158268 1.36612,-4.04152 1.687231,-6.182196 0.927357,-6.182196 -1.34479,0 -3.885966,6.228328 -4.349117,10.659521 -0.118907,1.137622 -0.348781,2.068401 -0.510835,2.068401 -0.162052,0 -0.81556,-0.317604 -1.452235,-0.705785 -1.564269,-0.953735 -4.300965,-0.944871 -5.88205,0.01905 -0.653908,0.39866 -1.272348,0.64141 -1.374313,0.539445 -0.260832,-0.260834 3.144923,-5.600256 6.173185,-9.678102 1.402111,-1.888075 2.555579,-3.790836 2.563262,-4.228359 0.01682,-0.957427 -0.103602,-0.971884 -1.472387,-0.176776 -2.213058,1.285531 -9.120242,11.123565 -9.120242,12.990131 0,0.413431 -0.212744,1.042636 -0.472765,1.398233 -0.452175,0.618386 -0.542065,0.605934 -2.063994,-0.285979 -1.99015,-1.166305 -4.250862,-1.226208 -6.689235,-0.177247 -0.965624,0.415397 -1.854378,0.656574 -1.975008,0.535945 -0.391782,-0.391783 3.829789,-5.534338 6.757018,-8.231139 3.596577,-3.313458 8.332313,-6.70178 12.270507,-8.779295 3.518213,-1.855962 10.446601,-4.544066 10.934614,-4.242456 0.18191,0.112426 0.333097,0.791643 0.335971,1.509371 0.015,3.744636 2.532344,9.952831 5.538503,13.658866 3.219269,3.96876 7.184194,6.458136 7.184194,4.510591 0,-0.350018 -0.185704,-0.8221 -0.412675,-1.049071 -0.314528,-0.314528 -0.251464,-0.470772 0.265165,-0.656967 7.921205,-2.854816 10.778488,-5.959034 13.180838,-14.319992 0.59385,-2.06675 1.50003,-4.691884 2.01373,-5.833631 1.60315,-3.563089 1.63841,-3.879093 0.68548,-6.143166 -0.88989,-2.114276 -2.29751,-6.853965 -2.29751,-7.736078 0,-0.88638 1.27422,0.561476 3.93737,4.473905 2.85062,4.187823 2.52331,4.06489 7.3321,2.753874 1.62777,-0.443779 3.21207,-0.581093 5.70343,-0.494326 3.34359,0.116448 3.51061,0.162198 5.43593,1.489019 1.95708,1.348706 2.44389,1.989878 1.51082,1.989878 -0.938,0 -1.64579,1.261082 -1.64579,2.932352 0,1.329381 0.20742,1.875469 1.09729,2.888977 1.28462,1.463099 2.70151,1.650188 4.10954,0.542632 1.67362,-1.316466 6.67471,-0.769733 8.24458,0.901319 1.67464,1.782575 1.17075,5.689732 -1.01578,7.876262 -2.12042,2.12042 -3.28442,2.323786 -13.49629,2.357978 -10.03805,0.03361 -10.53349,0.128607 -12.87328,2.468405 -1.64997,1.649974 -2.72383,3.590398 -4.21104,7.609239 -1.51129,4.083913 -2.63311,8.388475 -3.0487,11.698234 -0.31957,2.545057 -1.23962,4.547206 -1.82198,3.964847 -0.17732,-0.177325 -0.47901,-1.904649 -0.67042,-3.838494 -0.43752,-4.420521 -0.63054,-5.107072 -1.43578,-5.107072 -1.354745,0 -1.269393,3.279713 0.37049,14.236276 0.74574,4.982487 0.64005,6.269821 -0.51473,6.269821 -0.790201,0 -3.041342,-6.681134 -4.247256,-12.605374 -0.822436,-4.040337 -0.808294,-4.011636 -1.976717,-4.011636 -0.911365,0 -1.036834,0.125643 -1.036834,1.038263 0,0.571045 0.317084,2.360909 0.704628,3.977476 0.752096,3.137199 0.910446,5.049626 0.391557,4.728935 -0.174917,-0.108102 -0.500929,-0.952762 -0.724477,-1.877022 -0.610205,-2.522911 -2.433508,-4.785119 -4.783344,-5.934786 -1.684668,-0.824232 -2.119585,-0.909498 -2.877536,-0.564154 -1.359452,0.619407 -0.904269,1.505281 1.321809,2.572496 2.230165,1.069174 3.173743,2.094815 4.058464,4.411431 0.568397,1.488329 0.570413,1.716081 0.0303,3.426728 -0.347677,1.10116 -1.372225,2.820101 -2.56731,4.307313 -1.093809,1.36118 -2.479859,3.460262 -3.080104,4.664631 -0.600249,1.204366 -1.220739,2.109799 -1.378869,2.012069 -0.15813,-0.0977 -0.28751,-1.520647 -0.28751,-3.162033 0,-1.641386 -0.119324,-2.981852 -0.265165,-2.978815 -0.145841,0.003 -1.181614,0.22118 -2.301721,0.484757 -4.125328,0.970755 -6.074196,3.162143 -10.898354,12.254541 -3.983786,7.5085 -6.282512,10.94567 -9.297396,13.90197 -5.972302,5.85624 -14.610279,9.03531 -21.785091,8.01766 z M 119.66737,48.76824 c 0.94261,-1.017092 1.4248,-3.140536 1.0749,-4.733604 -0.3367,-1.532981 -2.04892,-2.845666 -3.71179,-2.845666 -3.62287,0 -4.35763,5.720715 -0.99786,7.769112 1.5677,0.955795 2.62415,0.900617 3.63475,-0.189842 z" - id="path73" - transform="matrix(12.264462,0,0,-15.457433,83.628303,2251.9596)" /><path - style="display:inline;fill:#52973a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="" - id="path74" - transform="matrix(12.264462,0,0,-15.457433,83.628303,2251.9596)" /><path - style="display:inline;fill:#52973a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 116.22738,33.292422 c -0.80231,-0.865708 -1.69126,-3.091757 -1.66337,-4.165286 0.0166,-0.63779 1.58976,1.242292 2.51021,2.9999 0.92478,1.765881 0.39076,2.500778 -0.84684,1.165386 z" - id="path75" - transform="matrix(12.264462,0,0,-15.457433,83.628303,2251.9596)" /><path - style="display:inline;fill:#52973a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 85.850803,60.722795 c -1.238263,-1.334626 -1.339304,-2.034848 -0.785332,-5.442415 0.569914,-3.505628 0.625759,-5.606128 0.149047,-5.606128 -0.630326,0 -1.412453,1.608622 -2.056973,4.230634 l -0.63669,2.59016 -1.006687,-2.243197 c -1.408373,-3.138273 -1.535011,-4.791487 -0.485362,-6.336205 0.765277,-1.12622 5.838904,-5.662365 6.336145,-5.664915 0.29989,-0.0015 0.663285,4.198699 0.672853,7.777076 0.0086,3.226136 0.509142,5.781609 1.717258,8.767787 l 0.757958,1.873496 -1.227756,0.512989 c -1.751199,0.731698 -2.411383,0.643413 -3.434461,-0.459282 z" - id="path76" - transform="matrix(12.264462,0,0,-15.457433,83.628303,2251.9596)" /><path - style="display:inline;fill:#52973a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" - d="m 108.25521,90.985839 c -1.34328,-3.334412 -1.68492,-16.209296 -0.43013,-16.209296 0.64556,0 1.65838,14.057634 1.14674,15.91661 l -0.33872,1.230729 z" - id="path77" - transform="matrix(12.264462,0,0,-15.457433,83.628303,2251.9596)" /></g><ellipse - style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:14.706;stroke-dasharray:none;stroke-opacity:1" - id="path78" - cx="1527.7689" - cy="-1568.9342" - rx="15.384632" - ry="20.356005" - transform="scale(1,-1)" /><ellipse - style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:14.706;stroke-dasharray:none;stroke-opacity:1" - id="path78-8" - cx="1666.5011" - cy="-1597.9689" - rx="15.384632" - ry="20.356005" - transform="scale(1,-1)" /><ellipse - style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:3.90166;stroke-dasharray:none;stroke-opacity:1" - id="path79" - cx="1679.5411" - cy="-1442.3765" - transform="scale(1,-1)" - rx="18.520985" - ry="4.3340855" /><ellipse - style="display:inline;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:3.91351;stroke-dasharray:none;stroke-opacity:1" - id="path79-3" - cx="1996.2277" - cy="-863.93048" - transform="matrix(0.95322755,0.30225359,0.19575483,-0.98065287,0,0)" - rx="18.842587" - ry="4.2860298" /><ellipse - style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.61495;stroke-dasharray:none;stroke-opacity:1" - id="path80" - cx="1527.1923" - cy="-1582.0159" - transform="scale(1,-1)" - rx="3.5237315" - ry="4.5354805" /><ellipse - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.85432;stroke-dasharray:none;stroke-opacity:1" - id="path80-4" - cx="1663.7374" - cy="-1610.024" - transform="scale(1,-1)" - rx="3.603127" - ry="4.9075909" /><ellipse - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.87743;stroke-dasharray:none;stroke-opacity:1" - id="path80-9" - cx="1535.7697" - cy="-1571.3352" - transform="scale(1,-1)" - rx="2.1387122" - ry="2.9050188" /><ellipse - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.87743;stroke-dasharray:none;stroke-opacity:1" - id="path80-9-2" - cx="1674.3413" - cy="-1600.762" - transform="scale(1,-1)" - rx="2.1387122" - ry="2.9050188" - inkscape:label="path80-9-2" /></g><path - style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0891369;stroke-dasharray:none;stroke-opacity:1" - id="path102" - sodipodi:type="arc" - sodipodi:cx="162.8199" - sodipodi:cy="-86.444908" - sodipodi:rx="8.4982691" - sodipodi:ry="2.4543352" - sodipodi:start="1.6005493" - sodipodi:end="4.7044995" - sodipodi:arc-type="arc" - d="m 162.56709,-83.991659 a 8.4982691,2.4543352 0 0 1 -8.24495,-2.480079 8.4982691,2.4543352 0 0 1 8.43071,-2.427429" - sodipodi:open="true" - transform="matrix(0.00546584,0.99998506,-0.99911352,0.04209731,0,0)" /><path - style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0762234;stroke-dasharray:none;stroke-opacity:1" - id="path102-9" - sodipodi:type="arc" - sodipodi:cx="127.05698" - sodipodi:cy="-85.96701" - sodipodi:rx="7.3881531" - sodipodi:ry="2.064383" - sodipodi:start="1.6005493" - sodipodi:end="4.7044995" - sodipodi:arc-type="arc" - d="m 126.83719,-83.903541 a 7.3881531,2.064383 0 0 1 -7.16793,-2.086036 7.3881531,2.064383 0 0 1 7.32943,-2.041752" - sodipodi:open="true" - transform="matrix(0.00528788,0.99998602,-0.99905293,0.04351147,0,0)" /><path - style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0762234;stroke-dasharray:none;stroke-opacity:1" - id="path102-9-6" - sodipodi:type="arc" - sodipodi:cx="139.45692" - sodipodi:cy="-68.345413" - sodipodi:rx="7.3881531" - sodipodi:ry="2.064383" - sodipodi:start="1.6005493" - sodipodi:end="4.7044995" - sodipodi:arc-type="arc" - d="m 139.23714,-66.281944 a 7.3881531,2.064383 0 0 1 -7.16793,-2.086036 7.3881531,2.064383 0 0 1 7.32943,-2.041752" - sodipodi:open="true" - transform="matrix(0.00528788,0.99998602,-0.99905293,0.04351147,0,0)" /><path - style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0659133;stroke-dasharray:none;stroke-opacity:1" - id="path102-9-8" - sodipodi:type="arc" - sodipodi:cx="101.56506" - sodipodi:cy="-85.665581" - sodipodi:rx="6.2000918" - sodipodi:ry="1.839493" - sodipodi:start="1.6005493" - sodipodi:end="4.7044995" - sodipodi:arc-type="arc" - d="m 101.38062,-83.826902 a 6.2000918,1.839493 0 0 1 -6.015278,-1.858787 6.2000918,1.839493 0 0 1 6.150808,-1.819328" - sodipodi:open="true" - transform="matrix(0.00561531,0.99998423,-0.99916002,0.04097862,0,0)" /><path - style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0538416;stroke-dasharray:none;stroke-opacity:1" - id="path102-9-8-6" - sodipodi:type="arc" - sodipodi:cx="102.20966" - sodipodi:cy="-67.39135" - sodipodi:rx="6.1569166" - sodipodi:ry="1.2360113" - sodipodi:start="1.6005493" - sodipodi:end="4.7044995" - sodipodi:arc-type="arc" - d="m 102.0265,-66.155886 a 6.1569166,1.2360113 0 0 1 -5.973385,-1.248975 6.1569166,1.2360113 0 0 1 6.107975,-1.222462" - sodipodi:open="true" - transform="matrix(0.00379577,0.9999928,-0.99816442,0.06056224,0,0)" /><path - style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0339301;stroke-dasharray:none;stroke-opacity:1" - id="path102-9-8-1" - sodipodi:type="arc" - sodipodi:cx="147.72276" - sodipodi:cy="-101.66624" - sodipodi:rx="2.95385" - sodipodi:ry="1.0231339" - sodipodi:start="1.6005493" - sodipodi:end="4.7044995" - sodipodi:arc-type="arc" - d="m 147.63489,-100.64356 a 2.95385,1.0231339 0 0 1 -2.8658,-1.03386 2.95385,1.0231339 0 0 1 2.93037,-1.01192" - sodipodi:open="true" - transform="matrix(0.00655715,0.9999785,-0.99938379,0.0351003,0,0)" /><path - style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.030348;stroke-dasharray:none;stroke-opacity:1" - id="path102-9-8-1-0" - sodipodi:type="arc" - sodipodi:cx="148.84627" - sodipodi:cy="-109.28197" - sodipodi:rx="2.9564469" - sodipodi:ry="0.81778532" - sodipodi:start="1.6005493" - sodipodi:end="4.7044995" - sodipodi:arc-type="arc" - d="m 148.75832,-108.46454 a 2.9564469,0.81778532 0 0 1 -2.86832,-0.82637 2.9564469,0.81778532 0 0 1 2.93294,-0.80882" - sodipodi:open="true" - transform="matrix(0.00523466,0.9999863,-0.9990336,0.04395305,0,0)" /><path - style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.030348;stroke-dasharray:none;stroke-opacity:1" - id="path102-9-8-1-4" - sodipodi:type="arc" - sodipodi:cx="103.3895" - sodipodi:cy="-157.88454" - sodipodi:rx="2.9564469" - sodipodi:ry="0.81778532" - sodipodi:start="1.6005493" - sodipodi:end="4.7044995" - sodipodi:arc-type="arc" - d="m 103.30155,-157.06711 a 2.9564469,0.81778532 0 0 1 -2.86832,-0.82637 2.9564469,0.81778532 0 0 1 2.93295,-0.80882" - sodipodi:open="true" - transform="matrix(-0.33208498,0.94324947,-0.9554013,-0.2953106,0,0)" /><path - style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0339301;stroke-dasharray:none;stroke-opacity:1" - id="path102-9-8-1-9" - sodipodi:type="arc" - sodipodi:cx="154.58771" - sodipodi:cy="-48.470818" - sodipodi:rx="2.95385" - sodipodi:ry="1.0231339" - sodipodi:start="1.6005493" - sodipodi:end="4.7044995" - sodipodi:arc-type="arc" - d="m 154.49983,-47.448137 a 2.95385,1.0231339 0 0 1 -2.8658,-1.033865 2.95385,1.0231339 0 0 1 2.93037,-1.011918" - sodipodi:open="true" - transform="matrix(0.00655715,0.9999785,-0.99938379,0.0351003,0,0)" /></g><text - xml:space="preserve" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.4355px;line-height:0.05;font-family:'.Al Bayan PUA';-inkscape-font-specification:'.Al Bayan PUA';text-align:start;letter-spacing:0.645697px;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;fill:#7e87d8;fill-opacity:0.893993;stroke:#a0a0a0;stroke-width:0;stroke-dasharray:none;stroke-opacity:0.922261" - x="194.71634" - y="86.151222" - id="text88" - transform="scale(0.71625963,1.3961418)"><tspan - sodipodi:role="line" - id="tspan88" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="194.71634" - y="86.151222">Kubernetes </tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="194.71634" - y="87.638718" - id="tspan95" /><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="194.71634" - y="89.126205" - id="tspan96" /><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="194.71634" - y="90.613701" - id="tspan97" /><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="194.71634" - y="92.101196" - id="tspan98" /><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="194.71634" - y="93.588692" - id="tspan99" /><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="194.71634" - y="95.07618" - id="tspan101">v1.33:</tspan><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="194.71634" - y="96.563675" - id="tspan89" /><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="194.71634" - y="98.05117" - id="tspan90" /><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="194.71634" - y="99.538658" - id="tspan91" /><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="194.71634" - y="101.02615" - id="tspan92" /><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="194.71634" - y="102.51365" - id="tspan93" /><tspan - sodipodi:role="line" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" - x="195.03918" - y="104.00114" - id="tspan94"> Octarine</tspan></text><g - inkscape:groupmode="layer" - id="layer10" - inkscape:label="OutsideOutline" - style="display:none" - transform="translate(-6.7520832,-1.5246326)"><path - d="m 101.25731,2.3092676 c -2.783001,1.1592221 -8.620459,3.6607 -12.896759,5.613074 -4.276276,1.952374 -12.6931,5.6740874 -18.666338,8.2365774 -35.90731,15.618993 -35.703678,15.49697 -38.079397,19.706774 -0.543022,0.915174 -2.986619,9.578834 -5.430215,19.21867 -2.443598,9.63984 -6.108989,24.22164 -8.213197,32.4582 -4.140538,16.107097 -4.547804,19.950857 -2.511473,23.611557 1.15392,2.07439 12.082223,14.7038 38.758167,44.84359 5.294462,6.04014 10.181657,10.92108 11.878598,11.89727 l 2.850862,1.70832 38.690282,0.18304 c 28.16948,0.12201 39.50507,0 41.47351,-0.5491 5.02296,-1.28125 4.88719,-1.15923 26.87957,-26.17401 2.51147,-2.86756 9.63863,-10.9211 15.81549,-17.99845 12.01436,-13.60561 13.98281,-16.77822 12.96465,-21.23208 -1.56119,-6.589277 -15.544,-61.743816 -16.42641,-64.611365 -1.76481,-5.79611 -4.14054,-7.687471 -16.35851,-13.0565 C 105.05847,-3.1817852 110.35301,-1.4124452 101.25731,2.3092676 Z m 14.93326,1.4642801 c 2.44364,0.915175 4.54786,1.8303499 4.75148,2.0133839 0.40728,0.366071 5.76964,2.745528 20.02398,8.8466974 8.2132,3.538677 12.89676,5.552061 17.24092,7.626458 0.61091,0.305061 5.70175,2.501482 11.26771,4.941946 5.63385,2.440468 10.3174,4.636889 10.52104,4.880936 0.20365,0.183037 1.01817,0.671128 1.90058,1.098208 0.81453,0.366072 1.4933,1.098212 1.4933,1.586307 0,0.48809 0.33939,0.915175 0.67877,0.915175 0.61091,0 1.76483,1.83035 2.44362,3.965757 0.54301,1.586306 2.44358,8.724667 2.71509,10.066917 0.88241,4.63689 3.46177,14.6428 3.86903,15.00887 0.2715,0.24406 0.47516,1.15922 0.47516,2.01338 0,0.85417 0.47514,2.74553 1.01815,4.20981 0.61091,1.46428 0.88242,2.92856 0.67878,3.23362 -0.2715,0.30506 -0.20362,0.91517 0.13576,1.28124 0.54302,0.85417 0.81454,1.76934 1.28968,4.1488 0.13578,0.85416 0.88242,3.59969 1.62906,6.10116 0.74666,2.50148 1.35755,5.186 1.35755,5.97915 0,0.73214 0.27152,1.83035 0.61091,2.44047 0.88241,1.5863 2.10421,8.053547 2.10421,11.470217 0,2.92857 -1.8327,7.13837 -3.6654,8.48063 -0.47514,0.30505 -2.64723,2.80653 -4.88719,5.49104 -2.17208,2.68451 -4.68356,5.55207 -5.43022,6.40623 -0.81453,0.85417 -4.14053,4.51486 -7.33078,8.23658 -3.25814,3.66069 -6.24476,7.13837 -6.71991,7.62646 -0.47514,0.4881 -2.03631,2.25743 -3.52963,3.96576 -1.42544,1.64731 -2.98661,3.35564 -3.46176,3.6607 -0.40727,0.36606 -2.78299,3.11159 -5.29446,6.10117 -4.41205,5.30801 -10.24954,11.22615 -11.13193,11.34817 -0.27152,0 -1.08606,0.18303 -1.83271,0.42708 -0.74665,0.18303 -18.59851,0.42708 -39.64078,0.54911 -37.740027,0.18303 -38.283047,0.18303 -41.133912,-1.09821 -1.561185,-0.67113 -3.597517,-2.13541 -4.615681,-3.17261 -2.307843,-2.56249 -10.792556,-12.08032 -15.068854,-16.96125 -1.832699,-2.13541 -3.529641,-4.02677 -3.733275,-4.20981 -0.407267,-0.30506 -7.873817,-8.9077 -10.521047,-12.14132 -0.746655,-0.91517 -2.579354,-2.98958 -4.072662,-4.6979 -1.49331,-1.64732 -2.918741,-3.23362 -3.190252,-3.59968 -0.27151,-0.30507 -2.104208,-2.37946 -4.140538,-4.57588 -4.615681,-5.12499 -5.49809,-6.40623 -6.516254,-9.8839 -0.950287,-2.92855 -0.6109,-5.06398 1.69694,-12.080337 0.475146,-1.52529 1.357554,-4.94194 1.832698,-7.62646 0.54302,-2.68451 1.289676,-5.49105 1.696941,-6.16217 0.407266,-0.73215 0.610899,-1.46428 0.407266,-1.58631 -0.135756,-0.18304 0.203632,-2.07439 0.814531,-4.20981 0.543021,-2.1354 1.221797,-4.57587 1.357554,-5.43003 0.203632,-0.85417 0.814532,-3.29464 1.357553,-5.49106 0.6109,-2.19642 1.357554,-5.18599 1.76482,-6.71128 0.339389,-1.52529 0.882409,-3.29463 1.221797,-3.96576 0.271512,-0.67112 0.882412,-2.98956 1.357555,-5.18598 0.407266,-2.196417 1.018164,-5.063966 1.289676,-6.406221 1.425431,-6.772296 5.430216,-10.738056 13.982811,-13.788639 2.239965,-0.793154 4.819319,-1.891363 5.769607,-2.440467 2.036332,-1.159223 27.15108,-12.202337 28.237122,-12.385375 0.407266,-0.06102 1.493309,-0.549105 2.37572,-1.037199 0.882407,-0.48809 3.461744,-1.708327 5.701705,-2.623502 2.23997,-0.9761854 7.46653,-3.2336204 11.539188,-5.0029564 8.756261,-3.8437369 10.928401,-4.02677 17.309001,-1.6473159 z" - id="path1-7-4" - style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.576494;stroke-dasharray:none;stroke-opacity:1" /></g></svg> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="194.58664mm" + height="170.103mm" + viewBox="0 0 194.58664 170.103" + version="1.1" + id="svg1" + xml:space="preserve" + inkscape:version="1.4 (e7c3feb1, 2024-10-09)" + sodipodi:docname="good.svg" + inkscape:export-filename="octarine.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview + id="namedview1" + pagecolor="#ffffff" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#d1d1d1" + inkscape:document-units="mm" + showguides="true" + inkscape:zoom="0.88649096" + inkscape:cx="371.12617" + inkscape:cy="333.33673" + inkscape:window-width="1728" + inkscape:window-height="950" + inkscape:window-x="0" + inkscape:window-y="38" + inkscape:window-maximized="0" + inkscape:current-layer="layer6-6"><inkscape:page + x="0" + y="-1.4757208e-14" + width="194.58664" + height="170.10298" + id="page2" + margin="0" + bleed="0" /></sodipodi:namedview><defs + id="defs1"><linearGradient + id="linearGradient118" + inkscape:collect="always"><stop + style="stop-color:#0e0503;stop-opacity:1;" + offset="0.2820513" + id="stop119" /><stop + style="stop-color:#481f1d;stop-opacity:1;" + offset="0.44444445" + id="stop118" /></linearGradient><linearGradient + id="linearGradient116" + inkscape:collect="always"><stop + style="stop-color:#140202;stop-opacity:1;" + offset="0.18518518" + id="stop116" /><stop + style="stop-color:#793b36;stop-opacity:1;" + offset="0.40455839" + id="stop117" /></linearGradient><linearGradient + id="linearGradient95" + inkscape:collect="always"><stop + style="stop-color:#572463;stop-opacity:1;" + offset="0" + id="stop95" /><stop + style="stop-color:#243d63;stop-opacity:1;" + offset="1" + id="stop96" /></linearGradient><linearGradient + id="swatch92" + inkscape:swatch="solid"><stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop93" /></linearGradient><linearGradient + id="swatch91" + inkscape:swatch="solid"><stop + style="stop-color:#243d63;stop-opacity:1;" + offset="0" + id="stop92" /></linearGradient><linearGradient + id="linearGradient256"><stop + style="stop-color:#ff0000;stop-opacity:0.71223283;" + offset="0" + id="stop86" /><stop + style="stop-color:#ff0000;stop-opacity:0;" + offset="1" + id="stop87" /></linearGradient><inkscape:path-effect + effect="powerstroke" + message="" + id="path-effect923" + is_visible="true" + lpeversion="1.3" + scale_width="1" + interpolator_type="CentripetalCatmullRom" + interpolator_beta="0.75" + start_linecap_type="round" + end_linecap_type="round" + offset_points="0,0.99218747" + linejoin_type="spiro" + miter_limit="4" + not_jump="true" + sort_points="true" /><inkscape:path-effect + effect="simplify" + id="path-effect922" + is_visible="true" + lpeversion="1.3" + threshold="0.012" + steps="1" + smooth_angles="0" + helper_size="0" + simplify_individual_paths="false" + simplify_just_coalesce="false" + step="1" /><inkscape:path-effect + effect="powerstroke" + message="" + id="path-effect228" + is_visible="true" + lpeversion="1.3" + scale_width="1" + interpolator_type="CentripetalCatmullRom" + interpolator_beta="0.75" + start_linecap_type="round" + end_linecap_type="round" + offset_points="67.651386,0.015502929" + linejoin_type="spiro" + miter_limit="4" + not_jump="true" + sort_points="true" /><inkscape:path-effect + effect="simplify" + id="path-effect227" + is_visible="true" + lpeversion="1.3" + threshold="0.012" + steps="1" + smooth_angles="0" + helper_size="0" + simplify_individual_paths="false" + simplify_just_coalesce="false" + step="1" /><inkscape:path-effect + effect="powerstroke" + message="" + id="path-effect172" + is_visible="true" + lpeversion="1.3" + scale_width="1" + interpolator_type="CentripetalCatmullRom" + interpolator_beta="0.75" + start_linecap_type="round" + end_linecap_type="round" + offset_points="4.9431876,0.23300209" + linejoin_type="spiro" + miter_limit="4" + not_jump="true" + sort_points="true" /><inkscape:path-effect + effect="simplify" + id="path-effect171" + is_visible="true" + lpeversion="1.3" + threshold="0.012" + steps="1" + smooth_angles="0" + helper_size="0" + simplify_individual_paths="false" + simplify_just_coalesce="false" + step="1" /><radialGradient + inkscape:collect="always" + xlink:href="#linearGradient256" + id="radialGradient257" + cx="103.1875" + cy="143.53647" + fx="103.1875" + fy="143.53647" + r="46.831249" + gradientTransform="matrix(1.0293254,0,0,2.4523443,-4.8996559,-194.82343)" + gradientUnits="userSpaceOnUse" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath323"><rect + style="fill:#000000;fill-opacity:1;stroke:none;stroke-width:4.33007;stroke-dasharray:none;stroke-opacity:1" + id="rect324" + width="1317.684" + height="1325.7582" + x="1654.9097" + y="-2148.6746" + transform="scale(1,-1)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1234"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1234" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1235"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1235" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1236"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1236" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1237"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1237" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1238"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1238" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1239"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1239" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1242"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1242" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1243"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1243" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c 0,0 -0.08127,0.03743 -0.08127,0.03743 0,0 -0.08783,0.03715 -0.08783,0.03715 0,0 -0.09435,0.03686 -0.09435,0.03686 0,0 -0.100809,0.03658 -0.100809,0.03658 0,0 -0.107221,0.0363 -0.107221,0.0363 0,0 -0.113581,0.03602 -0.113581,0.03602 0,0 -0.119888,0.03574 -0.119888,0.03574 0,0 -0.126145,0.03545 -0.126145,0.03545 0,0 -0.132349,0.03517 -0.132349,0.03517 0,0 -0.138501,0.03489 -0.138501,0.03489 0,0 -0.144603,0.0346 -0.144603,0.0346 0,0 -0.150652,0.03432 -0.150652,0.03432 0,0 -0.156649,0.03404 -0.156649,0.03404 0,0 -0.162595,0.03375 -0.162595,0.03375 0,0 -0.16849,0.03347 -0.16849,0.03347 0,0 -0.174332,0.03319 -0.174332,0.03319 0,0 -0.180123,0.0329 -0.180123,0.0329 0,0 -0.185862,0.03262 -0.185862,0.03262 0,0 -0.19155,0.03234 -0.19155,0.03234 0,0 -0.197185,0.03205 -0.197185,0.03205 0,0 -0.202769,0.03177 -0.202769,0.03177 0,0 -0.208301,0.03149 -0.208301,0.03149 0,0 -0.213782,0.0312 -0.213782,0.0312 0,0 -0.219211,0.03092 -0.219211,0.03092 0,0 -0.224588,0.03063 -0.224588,0.03063 0,0 -0.229914,0.03035 -0.229914,0.03035 0,0 -0.235187,0.03007 -0.235187,0.03007 0,0 -0.240409,0.02978 -0.240409,0.02978 0,0 -0.24558,0.0295 -0.24558,0.0295 0,0 -0.250699,0.02921 -0.250699,0.02921 0,0 -0.255765,0.02893 -0.255765,0.02893 0,0 -0.260781,0.02864 -0.260781,0.02864 0,0 -0.265744,0.02836 -0.265744,0.02836 0,0 -0.270657,0.02807 -0.270657,0.02807 0,0 -0.275516,0.02779 -0.275516,0.02779 0,0 -0.280325,0.02751 -0.280325,0.02751 0,0 -0.285082,0.02722 -0.285082,0.02722 0,0 -0.289787,0.02693 -0.289787,0.02693 0,0 -0.29444,0.02665 -0.29444,0.02665 0,0 -0.299042,0.02636 -0.299042,0.02636 0,0 -0.303591,0.02608 -0.303591,0.02608 0,0 -0.30809,0.02579 -0.30809,0.02579 0,0 -0.312537,0.02551 -0.312537,0.02551 0,0 -0.316932,0.02522 -0.316932,0.02522 0,0 -0.321274,0.02494 -0.321274,0.02494 0,0 -0.325566,0.02465 -0.325566,0.02465 0,0 -0.329806,0.02436 -0.329806,0.02436 0,0 -0.333994,0.02408 -0.333994,0.02408 0,0 -0.338131,0.02379 -0.338131,0.02379 0,0 -0.342215,0.02351 -0.342215,0.02351 0,0 -0.346248,0.02322 -0.346248,0.02322 0,0 -0.350229,0.02293 -0.350229,0.02293 0,0 -0.354159,0.02265 -0.354159,0.02265 0,0 -0.358037,0.02236 -0.358037,0.02236 0,0 -0.361862,0.02207 -0.361862,0.02207 0,0 -0.365638,0.02179 -0.365638,0.02179 0,0 -0.36936,0.0215 -0.36936,0.0215 0,0 -0.373031,0.02121 -0.373031,0.02121 0,0 -0.37665,0.02093 -0.37665,0.02093 0,0 -0.380218,0.02064 -0.380218,0.02064 0,0 -0.383734,0.02035 -0.383734,0.02035 0,0 -0.387199,0.02006 -0.387199,0.02006 0,0 -0.390611,0.01978 -0.390611,0.01978 0,0 -0.393971,0.01949 -0.393971,0.01949 0,0 -0.397281,0.0192 -0.397281,0.0192 0,0 -0.400539,0.01891 -0.400539,0.01891 0,0 -0.403744,0.01863 -0.403744,0.01863 0,0 -0.406898,0.01834 -0.406898,0.01834 0,0 -0.41,0.01805 -0.41,0.01805 0,0 -0.413051,0.01776 -0.413051,0.01776 0,0 -0.41605,0.01748 -0.41605,0.01748 0,0 -0.418998,0.01719 -0.418998,0.01719 0,0 -0.421892,0.0169 -0.421892,0.0169 0,0 -0.424737,0.01661 -0.424737,0.01661 0,0 -0.427529,0.01632 -0.427529,0.01632 0,0 -0.430269,0.01603 -0.430269,0.01603 0,0 -0.432958,0.01575 -0.432958,0.01575 0,0 -0.435595,0.01546 -0.435595,0.01546 0,0 -0.43818,0.01517 -0.43818,0.01517 0,0 -0.440714,0.01488 -0.440714,0.01488 0,0 -0.443196,0.01459 -0.443196,0.01459 0,0 -0.445626,0.0143 -0.445626,0.0143 0,0 -0.448005,0.01401 -0.448005,0.01401 0,0 -0.450331,0.01372 -0.450331,0.01372 0,0 -0.452607,0.01343 -0.452607,0.01343 0,0 -0.45483,0.01314 -0.45483,0.01314 0,0 -0.457002,0.01286 -0.457002,0.01286 0,0 -0.459121,0.01257 -0.459121,0.01257 0,0 -0.461191,0.01228 -0.461191,0.01228 0,0 -0.463206,0.01199 -0.463206,0.01199 0,0 -0.465172,0.0117 -0.465172,0.0117 0,0 -0.467085,0.01141 -0.467085,0.01141 0,0 -0.468946,0.01112 -0.468946,0.01112 0,0 -0.470756,0.01083 -0.470756,0.01083 0,0 -0.472515,0.01054 -0.472515,0.01054 0,0 -0.47422,0.01025 -0.47422,0.01025 0,0 -0.475876,0.01 -0.475876,0.01 0,0 -0.477478,0.0097 -0.477478,0.0097 0,0 -0.47903,0.0094 -0.47903,0.0094 0,0 -0.480529,0.0091 -0.480529,0.0091 0,0 -0.481977,0.0088 -0.481977,0.0088 0,0 -0.483374,0.0085 -0.483374,0.0085 0,0 -0.484718,0.0082 -0.484718,0.0082 0,0 -0.486011,0.0079 -0.486011,0.0079 0,0 -0.487251,0.0076 -0.487251,0.0076 0,0 -0.488442,0.0073 -0.488442,0.0073 0,0 -0.489579,0.007 -0.489579,0.007 0,0 -0.490665,0.0068 -0.490665,0.0068 0,0 -0.491699,0.0065 -0.491699,0.0065 0,0 -0.492682,0.0062 -0.492682,0.0062 0,0 -0.493613,0.0059 -0.493613,0.0059 0,0 -0.494492,0.0056 -0.494492,0.0056 0,0 -0.495319,0.0053 -0.495319,0.0053 0,0 -0.496095,0.005 -0.496095,0.005 0,0 -0.49682,0.0047 -0.49682,0.0047 0,0 -0.497491,0.0044 -0.497491,0.0044 0,0 -0.498113,0.0041 -0.498113,0.0041 0,0 -0.498681,0.0038 -0.498681,0.0038 0,0 -0.499199,0.0035 -0.499199,0.0035 0,0 -0.499664,0.0033 -0.499664,0.0033 0,0 -0.500078,0.003 -0.500078,0.003 0,0 -0.500441,0.0027 -0.500441,0.0027 0,0 -0.500751,0.0024 -0.500751,0.0024 0,0 -0.501009,0.0021 -0.501009,0.0021 0,0 -0.501217,0.0018 -0.501217,0.0018 0,0 -0.501372,0.0015 -0.501372,0.0015 0,0 -0.501476,0.0012 -0.501476,0.0012 0,0 -0.501528,9.15e-4 -0.501528,9.15e-4 0,0 -0.501528,6.22e-4 -0.501528,6.22e-4 0,0 -0.501476,3.29e-4 -0.501476,3.29e-4 0,0 -0.501374,3.6e-5 -0.501374,3.6e-5 0,0 -0.501218,-2.58e-4 -0.501218,-2.58e-4 0,0 -0.501013,-5.51e-4 -0.501013,-5.51e-4 0,0 -0.500753,-8.45e-4 -0.500753,-8.45e-4 0,0 -0.500444,-0.0011 -0.500444,-0.0011 0,0 -0.500083,-0.0014 -0.500083,-0.0014 0,0 -0.499669,-0.0017 -0.499669,-0.0017 0,0 -0.499204,-0.002 -0.499204,-0.002 0,0 -0.498687,-0.0023 -0.498687,-0.0023 0,0 -0.498119,-0.0026 -0.498119,-0.0026 0,0 -0.497498,-0.0029 -0.497498,-0.0029 0,0 -0.496827,-0.0032 -0.496827,-0.0032 0,0 -0.496104,-0.0035 -0.496104,-0.0035 0,0 -0.495328,-0.0038 -0.495328,-0.0038 0,0 -0.494501,-0.0041 -0.494501,-0.0041 0,0 -0.493622,-0.0044 -0.493622,-0.0044 0,0 -0.492692,-0.0047 -0.492692,-0.0047 0,0 -0.49171,-0.005 -0.49171,-0.005 0,0 -0.490677,-0.0053 -0.490677,-0.0053 0,0 -0.489591,-0.0056 -0.489591,-0.0056 0,0 -0.488453,-0.0058 -0.488453,-0.0058 0,0 -0.487265,-0.0061 -0.487265,-0.0061 0,0 -0.486025,-0.0064 -0.486025,-0.0064 0,0 -0.484732,-0.0067 -0.484732,-0.0067 0,0 -0.483388,-0.007 -0.483388,-0.007 0,0 -0.481992,-0.0073 -0.481992,-0.0073 0,0 -0.480545,-0.0076 -0.480545,-0.0076 0,0 -0.479047,-0.0079 -0.479047,-0.0079 0,0 -0.477495,-0.0082 -0.477495,-0.0082 0,0 -0.475893,-0.0085 -0.475893,-0.0085 0,0 -0.474238,-0.0088 -0.474238,-0.0088 0,0 -0.472533,-0.0091 -0.472533,-0.0091 0,0 -0.470776,-0.0094 -0.470776,-0.0094 0,0 -0.468966,-0.0097 -0.468966,-0.0097 0,0 -0.467105,-0.01 -0.467105,-0.01 0,0 -0.465192,-0.01028 -0.465192,-0.01028 0,0 -0.463228,-0.01058 -0.463228,-0.01058 0,0 -0.461212,-0.01087 -0.461212,-0.01087 0,0 -0.459144,-0.01117 -0.459144,-0.01117 0,0 -0.457025,-0.01147 -0.457025,-0.01147 0,0 -0.454853,-0.01176 -0.454853,-0.01176 0,0 -0.452631,-0.01206 -0.452631,-0.01206 0,0 -0.450356,-0.01236 -0.450356,-0.01236 0,0 -0.44803,-0.01265 -0.44803,-0.01265 0,0 -0.445652,-0.01295 -0.445652,-0.01295 0,0 -0.443222,-0.01325 -0.443222,-0.01325 0,0 -0.440741,-0.01355 -0.440741,-0.01355 0,0 -0.438208,-0.01384 -0.438208,-0.01384 0,0 -0.435623,-0.01414 -0.435623,-0.01414 0,0 -0.432986,-0.01444 -0.432986,-0.01444 0,0 -0.430298,-0.01474 -0.430298,-0.01474 0,0 -0.427559,-0.01503 -0.427559,-0.01503 0,0 -0.424767,-0.01533 -0.424767,-0.01533 0,0 -0.421923,-0.01563 -0.421923,-0.01563 0,0 -0.419029,-0.01593 -0.419029,-0.01593 0,0 -0.416082,-0.01622 -0.416082,-0.01622 0,0 -0.413083,-0.01652 -0.413083,-0.01652 0,0 -0.410034,-0.01682 -0.410034,-0.01682 0,0 -0.406931,-0.01712 -0.406931,-0.01712 0,0 -0.403778,-0.01742 -0.403778,-0.01742 0,0 -0.400573,-0.01772 -0.400573,-0.01772 0,0 -0.397316,-0.01802 -0.397316,-0.01802 0,0 -0.394008,-0.01831 -0.394008,-0.01831 0,0 -0.390647,-0.01861 -0.390647,-0.01861 0,0 -0.387235,-0.01891 -0.387235,-0.01891 0,0 -0.383771,-0.01921 -0.383771,-0.01921 0,0 -0.380257,-0.01951 -0.380257,-0.01951 0,0 -0.376688,-0.01981 -0.376688,-0.01981 0,0 -0.373071,-0.02011 -0.373071,-0.02011 0,0 -0.369399,-0.02041 -0.369399,-0.02041 0,0 -0.365678,-0.02071 -0.365678,-0.02071 0,0 -0.361903,-0.02101 -0.361903,-0.02101 0,0 -0.358078,-0.0213 -0.358078,-0.0213 0,0 -0.354201,-0.0216 -0.354201,-0.0216 0,0 -0.350271,-0.0219 -0.350271,-0.0219 0,0 -0.346291,-0.0222 -0.346291,-0.0222 0,0 -0.342255,-0.0225 -0.342255,-0.0225 0,0 -0.33818,-0.0228 -0.33818,-0.0228 0,0 -0.33404,-0.0231 -0.33404,-0.0231 0,0 -0.32985,-0.0234 -0.32985,-0.0234 0,0 -0.32561,-0.0237 -0.32561,-0.0237 0,0 -0.32132,-0.024 -0.32132,-0.024 0,0 -0.31698,-0.0243 -0.31698,-0.0243 0,0 -0.31258,-0.0246 -0.31258,-0.0246 0,0 -0.30814,-0.0249 -0.30814,-0.0249 0,0 -0.30364,-0.0252 -0.30364,-0.0252 0,0 -0.29909,-0.02551 -0.29909,-0.02551 0,0 -0.29449,-0.02581 -0.29449,-0.02581 0,0 -0.28984,-0.02611 -0.28984,-0.02611 0,0 -0.28513,-0.02641 -0.28513,-0.02641 0,0 -0.28038,-0.02671 -0.28038,-0.02671 0,0 -0.27557,-0.02701 -0.27557,-0.02701 0,0 -0.2707,-0.02731 -0.2707,-0.02731 0,0 -0.2658,-0.02761 -0.2658,-0.02761 0,0 -0.26084,-0.02791 -0.26084,-0.02791 0,0 -0.25582,-0.02822 -0.25582,-0.02822 0,0 -0.25075,-0.02852 -0.25075,-0.02852 0,0 -0.24563,-0.02882 -0.24563,-0.02882 0,0 -0.24047,-0.02912 -0.24047,-0.02912 0,0 -0.23524,-0.02942 -0.23524,-0.02942 0,0 -0.22997,-0.02972 -0.22997,-0.02972 0,0 -0.22465,-0.03003 -0.22465,-0.03003 0,0 -0.21927,-0.03033 -0.21927,-0.03033 0,0 -0.21384,-0.03063 -0.21384,-0.03063 0,0 -0.20836,-0.03093 -0.20836,-0.03093 0,0 -0.20283,-0.03124 -0.20283,-0.03124 0,0 -0.19724,-0.03154 -0.19724,-0.03154 0,0 -0.19161,-0.03184 -0.19161,-0.03184 0,0 -0.18592,-0.03214 -0.18592,-0.03214 0,0 -0.18019,-0.03244 -0.18019,-0.03244 0,0 -0.17439,-0.03275 -0.17439,-0.03275 0,0 -0.16856,-0.03305 -0.16856,-0.03305 0,0 -0.16265,-0.03335 -0.16265,-0.03335 0,0 -0.15672,-0.03366 -0.15672,-0.03366 0,0 -0.15071,-0.03396 -0.15071,-0.03396 0,0 -0.14467,-0.03426 -0.14467,-0.03426 0,0 -0.13857,-0.03457 -0.13857,-0.03457 0,0 -0.13241,-0.03487 -0.13241,-0.03487 0,0 -0.12622,-0.03517 -0.12622,-0.03517 0,0 -0.11995,-0.03548 -0.11995,-0.03548 0,0 -0.11365,-0.03578 -0.11365,-0.03578 0,0 -0.10729,-0.03608 -0.10729,-0.03608 0,0 -0.10088,-0.03639 -0.10088,-0.03639 0,0 -0.0944,-0.03669 -0.0944,-0.03669 0,0 -0.0879,-0.037 -0.0879,-0.037 0,0 -0.0813,-0.0373 -0.0813,-0.0373 0,0 -0.08,-0.04012 -0.08,-0.04012 0,0 -0.0839,-0.04543 -0.0839,-0.04543 0,0 -0.0877,-0.0507 -0.0877,-0.0507 0,0 -0.0915,-0.05593 -0.0915,-0.05593 0,0 -0.0953,-0.06112 -0.0953,-0.06112 0,0 -0.099,-0.06627 -0.099,-0.06627 0,0 -0.10276,-0.07138 -0.10276,-0.07138 0,0 -0.10644,-0.07645 -0.10644,-0.07645 0,0 -0.11009,-0.08147 -0.11009,-0.08147 0,0 -0.1137,-0.08646 -0.1137,-0.08646 0,0 -0.11729,-0.09141 -0.11729,-0.09141 0,0 -0.12085,-0.09632 -0.12085,-0.09632 0,0 -0.12436,-0.101182 -0.12436,-0.101182 0,0 -0.12786,-0.106008 -0.12786,-0.106008 0,0 -0.13131,-0.110794 -0.13131,-0.110794 0,0 -0.13473,-0.115539 -0.13473,-0.115539 0,0 -0.13812,-0.120244 -0.13812,-0.120244 0,0 -0.14149,-0.124908 -0.14149,-0.124908 0,0 -0.14481,-0.129533 -0.14481,-0.129533 0,0 -0.1481,-0.134116 -0.1481,-0.134116 0,0 -0.15137,-0.13866 -0.15137,-0.13866 0,0 -0.15459,-0.143163 -0.15459,-0.143163 0,0 -0.15779,-0.147626 -0.15779,-0.147626 0,0 -0.16096,-0.152048 -0.16096,-0.152048 0,0 -0.16409,-0.15643 -0.16409,-0.15643 0,0 -0.16719,-0.160772 -0.16719,-0.160772 0,0 -0.17026,-0.165073 -0.17026,-0.165073 0,0 -0.1733,-0.169334 -0.1733,-0.169334 0,0 -0.17629,-0.173554 -0.17629,-0.173554 0,0 -0.17927,-0.177735 -0.17927,-0.177735 0,0 -0.18221,-0.181874 -0.18221,-0.181874 0,0 -0.18511,-0.185973 -0.18511,-0.185973 0,0 -0.18799,-0.190033 -0.18799,-0.190033 0,0 -0.19083,-0.194051 -0.19083,-0.194051 0,0 -0.19364,-0.19803 -0.19364,-0.19803 0,0 -0.19642,-0.201967 -0.19642,-0.201967 0,0 -0.19916,-0.205865 -0.19916,-0.205865 0,0 -0.20187,-0.209722 -0.20187,-0.209722 0,0 -0.20455,-0.213539 -0.20455,-0.213539 0,0 -0.2072,-0.217316 -0.2072,-0.217316 0,0 -0.20982,-0.221051 -0.20982,-0.221051 0,0 -0.2124,-0.224747 -0.2124,-0.224747 0,0 -0.21495,-0.228402 -0.21495,-0.228402 0,0 -0.21747,-0.232017 -0.21747,-0.232017 0,0 -0.21995,-0.235592 -0.21995,-0.235592 0,0 -0.22241,-0.239126 -0.22241,-0.239126 0,0 -0.22483,-0.24262 -0.22483,-0.24262 0,0 -0.22722,-0.246073 -0.22722,-0.246073 0,0 -0.22958,-0.249487 -0.22958,-0.249487 0,0 -0.2319,-0.252859 -0.2319,-0.252859 0,0 -0.23419,-0.256191 -0.23419,-0.256191 0,0 -0.23645,-0.259483 -0.23645,-0.259483 0,0 -0.23868,-0.262735 -0.23868,-0.262735 0,0 -0.24088,-0.265946 -0.24088,-0.265946 0,0 -0.24303,-0.269117 -0.24303,-0.269117 0,0 -0.24517,-0.272247 -0.24517,-0.272247 0,0 -0.24727,-0.275338 -0.24727,-0.275338 0,0 -0.24933,-0.278387 -0.24933,-0.278387 0,0 -0.25137,-0.281397 -0.25137,-0.281397 0,0 -0.25337,-0.284365 -0.25337,-0.284365 0,0 -0.25533,-0.287295 -0.25533,-0.287295 0,0 -0.25728,-0.290182 -0.25728,-0.290182 0,0 -0.25917,-0.29303 -0.25917,-0.29303 0,0 -0.26105,-0.295838 -0.26105,-0.295838 0,0 -0.26289,-0.298605 -0.26289,-0.298605 0,0 -0.2647,-0.301332 -0.2647,-0.301332 0,0 -0.26647,-0.304018 -0.26647,-0.304018 0,0 -0.26821,-0.306664 -0.26821,-0.306664 0,0 -0.26993,-0.30927 -0.26993,-0.30927 0,0 -0.2716,-0.311835 -0.2716,-0.311835 0,0 -0.27325,-0.31436 -0.27325,-0.31436 0,0 -0.27486,-0.316844 -0.27486,-0.316844 0,0 -0.27644,-0.319289 -0.27644,-0.319289 0,0 -0.27799,-0.321692 -0.27799,-0.321692 0,0 -0.27951,-0.324056 -0.27951,-0.324056 0,0 -0.28099,-0.326379 -0.28099,-0.326379 0,0 -0.28244,-0.328662 -0.28244,-0.328662 0,0 -0.28387,-0.330903 -0.28387,-0.330903 0,0 -0.28525,-0.333106 -0.28525,-0.333106 0,0 -0.2866,-0.335268 -0.2866,-0.335268 0,0 -0.28793,-0.337388 -0.28793,-0.337388 0,0 -0.28921,-0.33947 -0.28921,-0.33947 0,0 -0.29048,-0.341509 -0.29048,-0.341509 0,0 -0.2917,-0.34351 -0.2917,-0.34351 0,0 -0.29289,-0.34547 -0.29289,-0.34547 0,0 -0.29405,-0.347389 -0.29405,-0.347389 0,0 -0.29519,-0.349268 -0.29519,-0.349268 0,0 -0.29628,-0.351106 -0.29628,-0.351106 0,0 -0.29734,-0.352905 -0.29734,-0.352905 0,0 -0.29837,-0.354662 -0.29837,-0.354662 0,0 -0.29937,-0.356381 -0.29937,-0.356381 0,0 -0.30034,-0.358057 -0.30034,-0.358057 0,0 -0.30128,-0.359694 -0.30128,-0.359694 0,0 -0.30217,-0.36129 -0.30217,-0.36129 0,0 -0.30305,-0.362846 -0.30305,-0.362846 0,0 -0.30388,-0.364362 -0.30388,-0.364362 0,0 -0.30469,-0.365837 -0.30469,-0.365837 0,0 -0.30547,-0.367272 -0.30547,-0.367272 0,0 -0.3062,-0.368667 -0.3062,-0.368667 0,0 -0.30691,-0.37002 -0.30691,-0.37002 0,0 -0.30759,-0.371335 -0.30759,-0.371335 0,0 -0.30823,-0.372607 -0.30823,-0.372607 0,0 -0.30884,-0.373841 -0.30884,-0.373841 0,0 -0.30942,-0.375034 -0.30942,-0.375034 0,0 -0.30996,-0.376186 -0.30996,-0.376186 0,0 -0.31049,-0.377297 -0.31049,-0.377297 0,0 -0.31096,-0.378369 -0.31096,-0.378369 0,0 -0.31141,-0.379401 -0.31141,-0.379401 0,0 -0.31183,-0.380391 -0.31183,-0.380391 0,0 -0.31222,-0.381342 -0.31222,-0.381342 0,0 -0.31256,-0.382251 -0.31256,-0.382251 0,0 -0.31289,-0.383122 -0.31289,-0.383122 0,0 -0.31318,-0.38395 -0.31318,-0.38395 0,0 -0.31343,-0.38474 -0.31343,-0.38474 0,0 -0.31366,-0.385488 -0.31366,-0.385488 0,0 -0.31384,-0.386196 -0.31384,-0.386196 0,0 -0.31401,-0.386865 -0.31401,-0.386865 0,0 -0.31413,-0.387491 -0.31413,-0.387491 0,0 -0.31422,-0.388079 -0.31422,-0.388079 0,0 -0.31429,-0.388625 -0.31429,-0.388625 0,0 -0.31432,-0.389132 -0.31432,-0.389132 0,0 -0.31431,-0.389598 -0.31431,-0.389598 0,0 -0.31428,-0.390023 -0.31428,-0.390023 0,0 -0.31421,-0.390409 -0.31421,-0.390409 0,0 -0.31411,-0.390753 -0.31411,-0.390753 0,0 -0.31398,-0.391058 -0.31398,-0.391058 0,0 -0.31381,-0.391322 -0.31381,-0.391322 0,0 -0.31362,-0.391546 -0.31362,-0.391546 0,0 -0.31339,-0.391729 -0.31339,-0.391729 0,0 -0.31312,-0.391872 -0.31312,-0.391872 0,0 -0.31284,-0.391975 -0.31284,-0.391975 0,0 -0.3125,-0.392037 -0.3125,-0.392037 0,0 -0.31215,-0.392059 -0.31215,-0.392059 0,0 -0.31176,-0.39204 -0.31176,-0.39204 0,0 -0.31133,-0.391982 -0.31133,-0.391982 0,0 -0.31088,-0.391882 -0.31088,-0.391882 0,0 -0.31039,-0.391743 -0.31039,-0.391743 0,0 -0.30987,-0.391563 -0.30987,-0.391563 0,0 -0.30932,-0.391342 -0.30932,-0.391342 0,0 -0.30873,-0.391082 -0.30873,-0.391082 0,0 -0.30812,-0.39078 -0.30812,-0.39078 0,0 -0.30746,-0.39044 -0.30746,-0.39044 0,0 -0.30679,-0.390057 -0.30679,-0.390057 0,0 -0.30607,-0.389635 -0.30607,-0.389635 0,0 -0.30532,-0.389173 -0.30532,-0.389173 0,0 -0.30455,-0.388669 -0.30455,-0.388669 0,0 -0.30373,-0.388127 -0.30373,-0.388127 0,0 -0.30289,-0.387542 -0.30289,-0.387542 0,0 -0.30202,-0.386919 -0.30202,-0.386919 0,0 -0.30111,-0.386254 -0.30111,-0.386254 0,0 -0.30016,-0.385549 -0.30016,-0.385549 0,0 -0.2992,-0.384805 -0.2992,-0.384805 0,0 -0.29819,-0.384018 -0.29819,-0.384018 0,0 -0.29715,-0.383193 -0.29715,-0.383193 0,0 -0.29608,-0.382327 -0.29608,-0.382327 0,0 -0.29498,-0.381419 -0.29498,-0.381419 0,0 -0.29385,-0.380473 -0.29385,-0.380473 0,0 -0.29268,-0.379486 -0.29268,-0.379486 0,0 -0.29148,-0.378457 -0.29148,-0.378457 0,0 -0.29025,-0.37739 -0.29025,-0.37739 0,0 -0.28898,-0.376281 -0.28898,-0.376281 0,0 -0.28769,-0.375132 -0.28769,-0.375132 0,0 -0.28636,-0.373943 -0.28636,-0.373943 0,0 -0.28501,-0.372713 -0.28501,-0.372713 0,0 -0.2836,-0.371443 -0.2836,-0.371443 0,0 -0.28219,-0.370133 -0.28219,-0.370133 0,0 -0.28072,-0.368782 -0.28072,-0.368782 0,0 -0.27924,-0.367391 -0.27924,-0.367391 0,0 -0.27771,-0.36596 -0.27771,-0.36596 0,0 -0.27616,-0.364487 -0.27616,-0.364487 0,0 -0.27457,-0.362976 -0.27457,-0.362976 0,0 -0.27295,-0.361423 -0.27295,-0.361423 0,0 -0.2713,-0.35983 -0.2713,-0.35983 0,0 -0.26962,-0.358196 -0.26962,-0.358196 0,0 -0.2679,-0.356523 -0.2679,-0.356523 0,0 -0.26615,-0.354809 -0.26615,-0.354809 0,0 -0.26437,-0.353054 -0.26437,-0.353054 0,0 -0.26256,-0.35126 -0.26256,-0.35126 0,0 -0.26071,-0.349424 -0.26071,-0.349424 0,0 -0.25884,-0.347549 -0.25884,-0.347549 0,0 -0.25692,-0.345633 -0.25692,-0.345633 0,0 -0.25499,-0.343676 -0.25499,-0.343676 0,0 -0.253,-0.34168 -0.253,-0.34168 0,0 -0.251,-0.339643 -0.251,-0.339643 0,0 -0.24897,-0.337565 -0.24897,-0.337565 0,0 -0.24688,-0.335448 -0.24688,-0.335448 0,0 -0.24479,-0.33329 -0.24479,-0.33329 0,0 -0.24265,-0.33109 -0.24265,-0.33109 0,0 -0.24048,-0.328852 -0.24048,-0.328852 0,0 -0.23828,-0.326573 -0.23828,-0.326573 0,0 -0.23604,-0.324253 -0.23604,-0.324253 0,0 -0.23378,-0.321893 -0.23378,-0.321893 0,0 -0.23149,-0.319493 -0.23149,-0.319493 0,0 -0.22915,-0.317052 -0.22915,-0.317052 0,0 -0.22679,-0.314571 -0.22679,-0.314571 0,0 -0.22439,-0.312049 -0.22439,-0.312049 0,0 -0.22197,-0.309487 -0.22197,-0.309487 0,0 -0.2195,-0.306886 -0.2195,-0.306886 0,0 -0.21702,-0.304242 -0.21702,-0.304242 0,0 -0.21449,-0.30156 -0.21449,-0.30156 0,0 -0.21193,-0.298836 -0.21193,-0.298836 0,0 -0.20935,-0.296072 -0.20935,-0.296072 0,0 -0.20672,-0.293269 -0.20672,-0.293269 0,0 -0.20407,-0.290424 -0.20407,-0.290424 0,0 -0.20139,-0.287539 -0.20139,-0.287539 0,0 -0.19866,-0.284613 -0.19866,-0.284613 0,0 -0.19592,-0.281649 -0.19592,-0.281649 0,0 -0.19313,-0.278642 -0.19313,-0.278642 0,0 -0.19032,-0.275596 -0.19032,-0.275596 0,0 -0.18747,-0.272509 -0.18747,-0.272509 0,0 -0.18459,-0.269382 -0.18459,-0.269382 0,0 -0.18168,-0.266215 -0.18168,-0.266215 0,0 -0.17873,-0.263007 -0.17873,-0.263007 0,0 -0.17576,-0.259759 -0.17576,-0.259759 0,0 -0.17274,-0.25647 -0.17274,-0.25647 0,0 -0.16971,-0.253141 -0.16971,-0.253141 0,0 -0.16663,-0.249772 -0.16663,-0.249772 0,0 -0.16353,-0.246363 -0.16353,-0.246363 0,0 -0.16038,-0.242912 -0.16038,-0.242912 0,0 -0.15722,-0.239422 -0.15722,-0.239422 0,0 -0.15401,-0.235891 -0.15401,-0.235891 0,0 -0.15078,-0.23232 -0.15078,-0.23232 0,0 -0.14751,-0.228708 -0.14751,-0.228708 0,0 -0.14421,-0.225056 -0.14421,-0.225056 0,0 -0.14088,-0.221365 -0.14088,-0.221365 0,0 -0.13751,-0.217631 -0.13751,-0.217631 0,0 -0.13411,-0.213859 -0.13411,-0.213859 0,0 -0.13069,-0.210045 -0.13069,-0.210045 0,0 -0.12722,-0.206191 -0.12722,-0.206191 0,0 -0.12373,-0.202298 -0.12373,-0.202298 0,0 -0.12021,-0.198362 -0.12021,-0.198362 0,0 -0.11664,-0.194388 -0.11664,-0.194388 0,0 -0.11306,-0.190373 -0.11306,-0.190373 0,0 -0.10943,-0.186317 -0.10943,-0.186317 0,0 -0.10577,-0.182221 -0.10577,-0.182221 0,0 -0.10209,-0.178085 -0.10209,-0.178085 0,0 -0.0984,-0.173908 -0.0984,-0.173908 0,0 -0.0946,-0.169691 -0.0946,-0.169691 0,0 -0.0908,-0.165433 -0.0908,-0.165433 0,0 -0.087,-0.161136 -0.087,-0.161136 0,0 -0.0832,-0.156797 -0.0832,-0.156797 0,0 -0.0793,-0.152419 -0.0793,-0.152419 0,0 -0.0754,-0.148 -0.0754,-0.148 0,0 -0.0714,-0.143541 -0.0714,-0.143541 0,0 -0.0674,-0.139041 -0.0674,-0.139041 0,0 -0.0634,-0.1345 -0.0634,-0.1345 0,0 -0.0594,-0.129921 -0.0594,-0.129921 0,0 -0.0553,-0.125299 -0.0553,-0.125299 0,0 -0.0512,-0.120639 -0.0512,-0.120639 0,0 -0.0471,-0.115937 -0.0471,-0.115937 0,0 -0.0429,-0.111194 -0.0429,-0.111194 0,0 -0.0387,-0.106413 -0.0387,-0.106413 0,0 -0.0344,-0.10159 -0.0344,-0.10159 0,0 -0.0302,-0.09673 -0.0302,-0.09673 0,0 -0.0259,-0.09182 -0.0259,-0.09182 0,0 -0.0215,-0.08688 -0.0215,-0.08688 0,0 -0.0185,-0.08759 -0.0185,-0.08759 0,0 -0.0167,-0.09394 -0.0167,-0.09394 0,0 -0.015,-0.100245 -0.015,-0.100245 0,0 -0.0133,-0.106497 -0.0133,-0.106497 0,0 -0.0115,-0.1127 -0.0115,-0.1127 0,0 -0.01,-0.118851 -0.01,-0.118851 0,0 -0.008,-0.124953 -0.008,-0.124953 0,0 -0.006,-0.131002 -0.006,-0.131002 0,0 -0.005,-0.137003 -0.005,-0.137003 0,0 -0.003,-0.142952 -0.003,-0.142952 0,0 -0.002,-0.14885 -0.002,-0.14885 0,0 1.3e-4,-0.1547 1.3e-4,-0.1547 0,0 0.002,-0.160496 0.002,-0.160496 0,0 0.003,-0.1662445 0.003,-0.1662445 0,0 0.005,-0.1719407 0.005,-0.1719407 0,0 0.007,-0.1775869 0.007,-0.1775869 0,0 0.008,-0.1831825 0.008,-0.1831825 0,0 0.01,-0.1887275 0.01,-0.1887275 0,0 0.0112,-0.194222 0.0112,-0.194222 0,0 0.0128,-0.199666 0.0128,-0.199666 0,0 0.0143,-0.2050595 0.0143,-0.2050595 0,0 0.0158,-0.2104023 0.0158,-0.2104023 0,0 0.0173,-0.2156946 0.0173,-0.2156946 0,0 0.0188,-0.2209365 0.0188,-0.2209365 0,0 0.0203,-0.2261278 0.0203,-0.2261278 0,0 0.0218,-0.2312684 0.0218,-0.2312684 0,0 0.0232,-0.2363587 0.0232,-0.2363587 0,0 0.0247,-0.2413983 0.0247,-0.2413983 0,0 0.0261,-0.2463874 0.0261,-0.2463874 0,0 0.0276,-0.251326 0.0276,-0.251326 0,0 0.029,-0.256214 0.029,-0.256214 0,0 0.0304,-0.2610514 0.0304,-0.2610514 0,0 0.0318,-0.2658385 0.0318,-0.2658385 0,0 0.0331,-0.2705748 0.0331,-0.2705748 0,0 0.0345,-0.2752606 0.0345,-0.2752606 0,0 0.0359,-0.279896 0.0359,-0.279896 0,0 0.0372,-0.2844808 0.0372,-0.2844808 0,0 0.0385,-0.289015 0.0385,-0.289015 0,0 0.0399,-0.2934987 0.0399,-0.2934987 0,0 0.0412,-0.2979319 0.0412,-0.2979319 0,0 0.0425,-0.3023144 0.0425,-0.3023144 0,0 0.0438,-0.3066466 0.0438,-0.3066466 0,0 0.0451,-0.3109281 0.0451,-0.3109281 0,0 0.0463,-0.315159 0.0463,-0.315159 0,0 0.0476,-0.3193396 0.0476,-0.3193396 0,0 0.0488,-0.3234694 0.0488,-0.3234694 0,0 0.05,-0.3275488 0.05,-0.3275488 0,0 0.0513,-0.3315776 0.0513,-0.3315776 0,0 0.0525,-0.33555596 0.0525,-0.33555596 0,0 0.0537,-0.33948367 0.0537,-0.33948367 0,0 0.0548,-0.34336088 0.0548,-0.34336088 0,0 0.056,-0.34718754 0.056,-0.34718754 0,0 0.0572,-0.35096367 0.0572,-0.35096367 0,0 0.0583,-0.35468926 0.0583,-0.35468926 0,0 0.0595,-0.35836432 0.0595,-0.35836432 0,0 0.0606,-0.3619888 0.0606,-0.3619888 0,0 0.0617,-0.3655627 0.0617,-0.3655627 0,0 0.0628,-0.3690862 0.0628,-0.3690862 0,0 0.0639,-0.3725591 0.0639,-0.3725591 0,0 0.065,-0.3759814 0.065,-0.3759814 0,0 0.066,-0.3793532 0.066,-0.3793532 0,0 0.0671,-0.3826745 0.0671,-0.3826745 0,0 0.0682,-0.3859451 0.0682,-0.3859451 0,0 0.0692,-0.3891654 0.0692,-0.3891654 0,0 0.0702,-0.392335 0.0702,-0.392335 0,0 0.0712,-0.3954541 0.0712,-0.3954541 0,0 0.0722,-0.3985226 0.0722,-0.3985226 0,0 0.0732,-0.4015407 0.0732,-0.4015407 0,0 0.0742,-0.4045081 0.0742,-0.4045081 0,0 0.0752,-0.4074251 0.0752,-0.4074251 0,0 0.0761,-0.4102914 0.0761,-0.4102914 0,0 0.0771,-0.4131073 0.0771,-0.4131073 0,0 0.078,-0.4158726 0.078,-0.4158726 0,0 0.0789,-0.4185874 0.0789,-0.4185874 0,0 0.0798,-0.4212516 0.0798,-0.4212516 0,0 0.0807,-0.4238653 0.0807,-0.4238653 0,0 0.0816,-0.4264284 0.0816,-0.4264284 0,0 0.0825,-0.4289409 0.0825,-0.4289409 0,0 0.0833,-0.431403 0.0833,-0.431403 0,0 0.0842,-0.433815 0.0842,-0.433815 0,0 0.085,-0.436176 0.085,-0.436176 0,0 0.0858,-0.438486 0.0858,-0.438486 0,0 0.0867,-0.440746 0.0867,-0.440746 0,0 0.0875,-0.442955 0.0875,-0.442955 0,0 0.0883,-0.445114 0.0883,-0.445114 0,0 0.089,-0.447223 0.089,-0.447223 0,0 0.0898,-0.44928 0.0898,-0.44928 0,0 0.0906,-0.451287 0.0906,-0.451287 0,0 0.0913,-0.453244 0.0913,-0.453244 0,0 0.0921,-0.45515 0.0921,-0.45515 0,0 0.0928,-0.457006 0.0928,-0.457006 0,0 0.0935,-0.458811 0.0935,-0.458811 0,0 0.0942,-0.460565 0.0942,-0.460565 0,0 0.0949,-0.462269 0.0949,-0.462269 0,0 0.0956,-0.463923 0.0956,-0.463923 0,0 0.0962,-0.465525 0.0962,-0.465525 0,0 0.0969,-0.467078 0.0969,-0.467078 0,0 0.0975,-0.46858 0.0975,-0.46858 0,0 0.0981,-0.47003 0.0981,-0.47003 0,0 0.0988,-0.471432 0.0988,-0.471432 0,0 0.0994,-0.472782 0.0994,-0.472782 0,0 0.1,-0.474081 0.1,-0.474081 0,0 0.10056,-0.475331 0.10056,-0.475331 0,0 0.10113,-0.476529 0.10113,-0.476529 0,0 0.10169,-0.477677 0.10169,-0.477677 0,0 0.10224,-0.478774 0.10224,-0.478774 0,0 0.10278,-0.479821 0.10278,-0.479821 0,0 0.10331,-0.480818 0.10331,-0.480818 0,0 0.10383,-0.481764 0.10383,-0.481764 0,0 0.10433,-0.482659 0.10433,-0.482659 0,0 0.10482,-0.483503 0.10482,-0.483503 0,0 0.10531,-0.484298 0.10531,-0.484298 0,0 0.10577,-0.485042 0.10577,-0.485042 0,0 0.10623,-0.485734 0.10623,-0.485734 0,0 0.10669,-0.486378 0.10669,-0.486378 0,0 0.10711,-0.486969 0.10711,-0.486969 0,0 0.10754,-0.487511 0.10754,-0.487511 0,0 0.10796,-0.488002 0.10796,-0.488002 0,0 0.10835,-0.488442 0.10835,-0.488442 0,0 0.10874,-0.488832 0.10874,-0.488832 0,0 0.10913,-0.489172 0.10913,-0.489172 0,0 0.10948,-0.48946 0.10948,-0.48946 0,0 0.10985,-0.489699 0.10985,-0.489699 0,0 0.11018,-0.489886 0.11018,-0.489886 0,0 0.11052,-0.490024 0.11052,-0.490024 0,0 0.11084,-0.49011 0.11084,-0.49011 0,0 0.11115,-0.490146 0.11115,-0.490146 0,0 0.11144,-0.490132 0.11144,-0.490132 0,0 0.11173,-0.490067 0.11173,-0.490067 0,0 0.11201,-0.489951 0.11201,-0.489951 0,0 0.11227,-0.489785 0.11227,-0.489785 0,0 0.11251,-0.489569 0.11251,-0.489569 0,0 0.11276,-0.489302 0.11276,-0.489302 0,0 0.11299,-0.488984 0.11299,-0.488984 0,0 0.1132,-0.488615 0.1132,-0.488615 0,0 0.11341,-0.488197 0.11341,-0.488197 0,0 0.1136,-0.487728 0.1136,-0.487728 0,0 0.11379,-0.487208 0.11379,-0.487208 0,0 0.11395,-0.486637 0.11395,-0.486637 0,0 0.11412,-0.486016 0.11412,-0.486016 0,0 0.11426,-0.485345 0.11426,-0.485345 0,0 0.1144,-0.484623 0.1144,-0.484623 0,0 0.11452,-0.483851 0.11452,-0.483851 0,0 0.11464,-0.483027 0.11464,-0.483027 0,0 0.11473,-0.482154 0.11473,-0.482154 0,0 0.11483,-0.48123 0.11483,-0.48123 0,0 0.11491,-0.480255 0.11491,-0.480255 0,0 0.11497,-0.479229 0.11497,-0.479229 0,0 0.11503,-0.478154 0.11503,-0.478154 0,0 0.11507,-0.477027 0.11507,-0.477027 0,0 0.1151,-0.475851 0.1151,-0.475851 0,0 0.11513,-0.474623 0.11513,-0.474623 0,0 0.11513,-0.473346 0.11513,-0.473346 0,0 0.11513,-0.472016 0.11513,-0.472016 0,0 0.11512,-0.470638 0.11512,-0.470638 0,0 0.1151,-0.469208 0.1151,-0.469208 0,0 0.11505,-0.467728 0.11505,-0.467728 0,0 0.11501,-0.466198 0.11501,-0.466198 0,0 0.11495,-0.464616 0.11495,-0.464616 0,0 0.11488,-0.462984 0.11488,-0.462984 0,0 0.11479,-0.461303 0.11479,-0.461303 0,0 0.1147,-0.459569 0.1147,-0.459569 0,0 0.1146,-0.457786 0.1146,-0.457786 0,0 0.11447,-0.455952 0.11447,-0.455952 0,0 0.11435,-0.454068 0.11435,-0.454068 0,0 0.11421,-0.452132 0.11421,-0.452132 0,0 0.11405,-0.450148 0.11405,-0.450148 0,0 0.1139,-0.448111 0.1139,-0.448111 0,0 0.11371,-0.446024 0.11371,-0.446024 0,0 0.11354,-0.443887 0.11354,-0.443887 0,0 0.11333,-0.4417 0.11333,-0.4417 0,0 0.11312,-0.439461 0.11312,-0.439461 0,0 0.1129,-0.437173 0.1129,-0.437173 0,0 0.11267,-0.434833 0.11267,-0.434833 0,0 0.11243,-0.432444 0.11243,-0.432444 0,0 0.11217,-0.430003 0.11217,-0.430003 0,0 0.1119,-0.427512 0.1119,-0.427512 0,0 0.11163,-0.424971 0.11163,-0.424971 0,0 0.11133,-0.422379 0.11133,-0.422379 0,0 0.11103,-0.419736 0.11103,-0.419736 0,0 0.11072,-0.417043 0.11072,-0.417043 0,0 0.1104,-0.414299 0.1104,-0.414299 0,0 0.11006,-0.411505 0.11006,-0.411505 0,0 0.10971,-0.408661 0.10971,-0.408661 0,0 0.10935,-0.405765 0.10935,-0.405765 0,0 0.10898,-0.40282 0.10898,-0.40282 0,0 0.1086,-0.399823 0.1086,-0.399823 0,0 0.1082,-0.396776 0.1082,-0.396776 0,0 0.1078,-0.393679 0.1078,-0.393679 0,0 0.10739,-0.390531 0.10739,-0.390531 0,0 0.10695,-0.387332 0.10695,-0.387332 0,0 0.10651,-0.384083 0.10651,-0.384083 0,0 0.10607,-0.380784 0.10607,-0.380784 0,0 0.1056,-0.377434 0.1056,-0.377434 0,0 0.10512,-0.374033 0.10512,-0.374033 0,0 0.10464,-0.370581 0.10464,-0.370581 0,0 0.10414,-0.36708 0.10414,-0.36708 0,0 0.10364,-0.363528 0.10364,-0.363528 0,0 0.10311,-0.359925 0.10311,-0.359925 0,0 0.10258,-0.356271 0.10258,-0.356271 0,0 0.10204,-0.352568 0.10204,-0.352568 0,0 0.10148,-0.348813 0.10148,-0.348813 0,0 0.10091,-0.345008 0.10091,-0.345008 0,0 0.10034,-0.341153 0.10034,-0.341153 0,0 0.0998,-0.337246 0.0998,-0.337246 0,0 0.0991,-0.33329 0.0991,-0.33329 0,0 0.0985,-0.329283 0.0985,-0.329283 0,0 0.0979,-0.325225 0.0979,-0.325225 0,0 0.0973,-0.321117 0.0973,-0.321117 0,0 0.0966,-0.316958 0.0966,-0.316958 0,0 0.096,-0.312749 0.096,-0.312749 0,0 0.0953,-0.308489 0.0953,-0.308489 0,0 0.0946,-0.304178 0.0946,-0.304178 0,0 0.0939,-0.299818 0.0939,-0.299818 0,0 0.0932,-0.295406 0.0932,-0.295406 0,0 0.0925,-0.290944 0.0925,-0.290944 0,0 0.0918,-0.286431 0.0918,-0.286431 0,0 0.091,-0.281869 0.091,-0.281869 0,0 0.0903,-0.277255 0.0903,-0.277255 0,0 0.0895,-0.27259 0.0895,-0.27259 0,0 0.0888,-0.267876 0.0888,-0.267876 0,0 0.088,-0.26311 0.088,-0.26311 0,0 0.0872,-0.258295 0.0872,-0.258295 0,0 0.0864,-0.253429 0.0864,-0.253429 0,0 0.0855,-0.248511 0.0855,-0.248511 0,0 0.0847,-0.243544 0.0847,-0.243544 0,0 0.0839,-0.238526 0.0839,-0.238526 0,0 0.083,-0.233458 0.083,-0.233458 0,0 0.0821,-0.228338 0.0821,-0.228338 0,0 0.0813,-0.223169 0.0813,-0.223169 0,0 0.0804,-0.217949 0.0804,-0.217949 0,0 0.0795,-0.212678 0.0795,-0.212678 0,0 0.0786,-0.207357 0.0786,-0.207357 0,0 0.0776,-0.201986 0.0776,-0.201986 0,0 0.0767,-0.196562 0.0767,-0.196562 0,0 0.0758,-0.19109 0.0758,-0.19109 0,0 0.0748,-0.185567 0.0748,-0.185567 0,0 0.0738,-0.179993 0.0738,-0.179993 0,0 0.0728,-0.174368 0.0728,-0.174368 0,0 0.0719,-0.168693 0.0719,-0.168693 0,0 0.0709,-0.162968 0.0709,-0.162968 0,0 0.0698,-0.157192 0.0698,-0.157192 0,0 0.0688,-0.151365 0.0688,-0.151365 0,0 0.0678,-0.145488 0.0678,-0.145488 0,0 0.0667,-0.13956 0.0667,-0.13956 0,0 0.0657,-0.133582 0.0657,-0.133582 0,0 0.0646,-0.127553 0.0646,-0.127553 0,0 0.0635,-0.121474 0.0635,-0.121474 0,0 0.0624,-0.115344 0.0624,-0.115344 0,0 0.0613,-0.109163 0.0613,-0.109163 0,0 0.0602,-0.102933 0.0602,-0.102933 0,0 0.059,-0.09665 0.059,-0.09665 0,0 0.0579,-0.09032 0.0579,-0.09032 0,0 0.0567,-0.08394 0.0567,-0.08394 0,0 0.0556,-0.0775 0.0556,-0.0775 0,0 0.0544,-0.07102 0.0544,-0.07102 0,0 0.0568,-0.06907 0.0568,-0.06907 0,0 0.0629,-0.07166 0.0629,-0.07166 0,0 0.0688,-0.07423 0.0688,-0.07423 0,0 0.0748,-0.07678 0.0748,-0.07678 0,0 0.0807,-0.0793 0.0807,-0.0793 0,0 0.0865,-0.0818 0.0865,-0.0818 0,0 0.0923,-0.08429 0.0923,-0.08429 0,0 0.0981,-0.08674 0.0981,-0.08674 0,0 0.10377,-0.08918 0.10377,-0.08918 0,0 0.10943,-0.09159 0.10943,-0.09159 0,0 0.11503,-0.09398 0.11503,-0.09398 0,0 0.12061,-0.09635 0.12061,-0.09635 0,0 0.12612,-0.09869 0.12612,-0.09869 0,0 0.13159,-0.101017 0.13159,-0.101017 0,0 0.13701,-0.103318 0.13701,-0.103318 0,0 0.1424,-0.105595 0.1424,-0.105595 0,0 0.14772,-0.107851 0.14772,-0.107851 0,0 0.15302,-0.110084 0.15302,-0.110084 0,0 0.15825,-0.112294 0.15825,-0.112294 0,0 0.16344,-0.114482 0.16344,-0.114482 0,0 0.16859,-0.116648 0.16859,-0.116648 0,0 0.17369,-0.11879 0.17369,-0.11879 0,0 0.17875,-0.120911 0.17875,-0.120911 0,0 0.18375,-0.123009 0.18375,-0.123009 0,0 0.18871,-0.125084 0.18871,-0.125084 0,0 0.19362,-0.127138 0.19362,-0.127138 0,0 0.19849,-0.129168 0.19849,-0.129168 0,0 0.20331,-0.131175 0.20331,-0.131175 0,0 0.20809,-0.133161 0.20809,-0.133161 0,0 0.21282,-0.135125 0.21282,-0.135125 0,0 0.21749,-0.137064 0.21749,-0.137064 0,0 0.22213,-0.138983 0.22213,-0.138983 0,0 0.22672,-0.140878 0.22672,-0.140878 0,0 0.23127,-0.142751 0.23127,-0.142751 0,0 0.23575,-0.144602 0.23575,-0.144602 0,0 0.24021,-0.14643 0.24021,-0.14643 0,0 0.24461,-0.148235 0.24461,-0.148235 0,0 0.24897,-0.150018 0.24897,-0.150018 0,0 0.25327,-0.151779 0.25327,-0.151779 0,0 0.25754,-0.153516 0.25754,-0.153516 0,0 0.26176,-0.155233 0.26176,-0.155233 0,0 0.26593,-0.156925 0.26593,-0.156925 0,0 0.27005,-0.158596 0.27005,-0.158596 0,0 0.27413,-0.160244 0.27413,-0.160244 0,0 0.27816,-0.161869 0.27816,-0.161869 0,0 0.28214,-0.163473 0.28214,-0.163473 0,0 0.28608,-0.165053 0.28608,-0.165053 0,0 0.28997,-0.166611 0.28997,-0.166611 0,0 0.29382,-0.168147 0.29382,-0.168147 0,0 0.29762,-0.16966 0.29762,-0.16966 0,0 0.30137,-0.17115 0.30137,-0.17115 0,0 0.30508,-0.172619 0.30508,-0.172619 0,0 0.30873,-0.174064 0.30873,-0.174064 0,0 0.31235,-0.175487 0.31235,-0.175487 0,0 0.31591,-0.176888 0.31591,-0.176888 0,0 0.31944,-0.178266 0.31944,-0.178266 0,0 0.3229,-0.179622 0.3229,-0.179622 0,0 0.32634,-0.180954 0.32634,-0.180954 0,0 0.32971,-0.182266 0.32971,-0.182266 0,0 0.33305,-0.183553 0.33305,-0.183553 0,0 0.33634,-0.184819 0.33634,-0.184819 0,0 0.33958,-0.186063 0.33958,-0.186063 0,0 0.34277,-0.187282 0.34277,-0.187282 0,0 0.34592,-0.188482 0.34592,-0.188482 0,0 0.34902,-0.189656 0.34902,-0.189656 0,0 0.35208,-0.19081 0.35208,-0.19081 0,0 0.35509,-0.191941 0.35509,-0.191941 0,0 0.35804,-0.193049 0.35804,-0.193049 0,0 0.36097,-0.194134 0.36097,-0.194134 0,0 0.36383,-0.195198 0.36383,-0.195198 0,0 0.36666,-0.196238 0.36666,-0.196238 0,0 0.36943,-0.197256 0.36943,-0.197256 0,0 0.37217,-0.198253 0.37217,-0.198253 0,0 0.37484,-0.199225 0.37484,-0.199225 0,0 0.37749,-0.200176 0.37749,-0.200176 0,0 0.38007,-0.201105 0.38007,-0.201105 0,0 0.38262,-0.20201 0.38262,-0.20201 0,0 0.38512,-0.202893 0.38512,-0.202893 0,0 0.38757,-0.203754 0.38757,-0.203754 0,0 0.38997,-0.204592 0.38997,-0.204592 0,0 0.39233,-0.205409 0.39233,-0.205409 0,0 0.39464,-0.206201 0.39464,-0.206201 0,0 0.39691,-0.206972 0.39691,-0.206972 0,0 0.39913,-0.20772 0.39913,-0.20772 0,0 0.4013,-0.208446 0.4013,-0.208446 0,0 0.40342,-0.20915 0.40342,-0.20915 0,0 0.40551,-0.20983 0.40551,-0.20983 0,0 0.40753,-0.210488 0.40753,-0.210488 0,0 0.40953,-0.211125 0.40953,-0.211125 0,0 0.41146,-0.211737 0.41146,-0.211737 0,0 0.41336,-0.212328 0.41336,-0.212328 0,0 0.41521,-0.212897 0.41521,-0.212897 0,0 0.417,-0.213443 0.417,-0.213443 0,0 0.41876,-0.213965 0.41876,-0.213965 0,0 0.42047,-0.214467 0.42047,-0.214467 0,0 0.42213,-0.214945 0.42213,-0.214945 0,0 0.42375,-0.215401 0.42375,-0.215401 0,0 0.42531,-0.215834 0.42531,-0.215834 0,0 0.42684,-0.216245 0.42684,-0.216245 0,0 0.42831,-0.216633 0.42831,-0.216633 0,0 0.42974,-0.216999 0.42974,-0.216999 0,0 0.43112,-0.217342 0.43112,-0.217342 0,0 0.43246,-0.217664 0.43246,-0.217664 0,0 0.43374,-0.217961 0.43374,-0.217961 0,0 0.43499,-0.218238 0.43499,-0.218238 0,0 0.43619,-0.218491 0.43619,-0.218491 0,0 0.43734,-0.218722 0.43734,-0.218722 0,0 0.43844,-0.21893 0.43844,-0.21893 0,0 0.4395,-0.219116 0.4395,-0.219116 0,0 0.44051,-0.21928 0.44051,-0.21928 0,0 0.44147,-0.21942 0.44147,-0.21942 0,0 0.44239,-0.219539 0.44239,-0.219539 0,0 0.44327,-0.219635 0.44327,-0.219635 0,0 0.44409,-0.219708 0.44409,-0.219708 0,0 0.44486,-0.219759 0.44486,-0.219759 0,0 0.4456,-0.219788 0.4456,-0.219788 0,0 0.44629,-0.219793 0.44629,-0.219793 0,0 0.44692,-0.219777 0.44692,-0.219777 0,0 0.44752,-0.219738 0.44752,-0.219738 0,0 0.44806,-0.219676 0.44806,-0.219676 0,0 0.44856,-0.219593 0.44856,-0.219593 0,0 0.44901,-0.219485 0.44901,-0.219485 0,0 0.44943,-0.219357 0.44943,-0.219357 0,0 0.44978,-0.219205 0.44978,-0.219205 0,0 0.4501,-0.219032 0.4501,-0.219032 0,0 0.45036,-0.218836 0.45036,-0.218836 0,0 0.45058,-0.21861 0.45058,-0.21861 0,0 0.45076,-0.21838 0.45076,-0.21838 0,0 0.45089,-0.21811 0.45089,-0.21811 0,0 0.45097,-0.21782 0.45097,-0.21782 0,0 0.451,-0.21752 0.451,-0.21752 0,0 0.45099,-0.21718 0.45099,-0.21718 0,0 0.45094,-0.21683 0.45094,-0.21683 0,0 0.45083,-0.21645 0.45083,-0.21645 0,0 0.45068,-0.21606 0.45068,-0.21606 0,0 0.45048,-0.21563 0.45048,-0.21563 0,0 0.45024,-0.21519 0.45024,-0.21519 0,0 0.44995,-0.21472 0.44995,-0.21472 0,0 0.44961,-0.21423 0.44961,-0.21423 0,0 0.44923,-0.21372 0.44923,-0.21372 0,0 0.44879,-0.21319 0.44879,-0.21319 0,0 0.44833,-0.21263 0.44833,-0.21263 0,0 0.4478,-0.21205 0.4478,-0.21205 0,0 0.44723,-0.21145 0.44723,-0.21145 0,0 0.446614,-0.21083 0.446614,-0.21083 0,0 0.445954,-0.21018 0.445954,-0.21018 0,0 0.445246,-0.20951 0.445246,-0.20951 0,0 0.44449,-0.20882 0.44449,-0.20882 0,0 0.44369,-0.20811 0.44369,-0.20811 0,0 0.442842,-0.20737 0.442842,-0.20737 0,0 0.441947,-0.20661 0.441947,-0.20661 0,0 0.441007,-0.20583 0.441007,-0.20583 0,0 0.440019,-0.20503 0.440019,-0.20503 0,0 0.438986,-0.2042 0.438986,-0.2042 0,0 0.437906,-0.20335 0.437906,-0.20335 0,0 0.43678,-0.20248 0.43678,-0.20248 0,0 0.435606,-0.20158 0.435606,-0.20158 0,0 0.434387,-0.20067 0.434387,-0.20067 0,0 0.433121,-0.19973 0.433121,-0.19973 0,0 0.431808,-0.19877 0.431808,-0.19877 0,0 0.43045,-0.19778 0.43045,-0.19778 0,0 0.429044,-0.19678 0.429044,-0.19678 0,0 0.427593,-0.19575 0.427593,-0.19575 0,0 0.426094,-0.1947 0.426094,-0.1947 0,0 0.424549,-0.19363 0.424549,-0.19363 0,0 0.422959,-0.19252 0.422959,-0.19252 0,0 0.42132,-0.19141 0.42132,-0.19141 0,0 0.419637,-0.19027 0.419637,-0.19027 0,0 0.417906,-0.18911 0.417906,-0.18911 0,0 0.416129,-0.18791 0.416129,-0.18791 0,0 0.414305,-0.18671 0.414305,-0.18671 0,0 0.412436,-0.18548 0.412436,-0.18548 0,0 0.410518,-0.18423 0.410518,-0.18423 0,0 0.408557,-0.18294 0.408557,-0.18294 0,0 0.406546,-0.18165 0.406546,-0.18165 0,0 0.404491,-0.18033 0.404491,-0.18033 0,0 0.402389,-0.17899 0.402389,-0.17899 0,0 0.400239,-0.17762 0.400239,-0.17762 0,0 0.398045,-0.17622 0.398045,-0.17622 0,0 0.395803,-0.17482 0.395803,-0.17482 0,0 0.393514,-0.17339 0.393514,-0.17339 0,0 0.39118,-0.17193 0.39118,-0.17193 0,0 0.388799,-0.17045 0.388799,-0.17045 0,0 0.386372,-0.16894 0.386372,-0.16894 0,0 0.383897,-0.16743 0.383897,-0.16743 0,0 0.381377,-0.16588 0.381377,-0.16588 0,0 0.37881,-0.16431 0.37881,-0.16431 0,0 0.376196,-0.16271 0.376196,-0.16271 0,0 0.373537,-0.16111 0.373537,-0.16111 0,0 0.37083,-0.15947 0.37083,-0.15947 0,0 0.368078,-0.15781 0.368078,-0.15781 0,0 0.365278,-0.15613 0.365278,-0.15613 0,0 0.362432,-0.15442 0.362432,-0.15442 0,0 0.359541,-0.1527 0.359541,-0.1527 0,0 0.356601,-0.15095 0.356601,-0.15095 0,0 0.353617,-0.14918 0.353617,-0.14918 0,0 0.350584,-0.14739 0.350584,-0.14739 0,0 0.347507,-0.14557 0.347507,-0.14557 0,0 0.344382,-0.14373 0.344382,-0.14373 0,0 0.341212,-0.14187 0.341212,-0.14187 0,0 0.337994,-0.13998 0.337994,-0.13998 0,0 0.334729,-0.13808 0.334729,-0.13808 0,0 0.33142,-0.13615 0.33142,-0.13615 0,0 0.328063,-0.13421 0.328063,-0.13421 0,0 0.324659,-0.13222 0.324659,-0.13222 0,0 0.321209,-0.13023 0.321209,-0.13023 0,0 0.317714,-0.12821 0.317714,-0.12821 0,0 0.31417,-0.12618 0.31417,-0.12618 0,0 0.310582,-0.1241 0.310582,-0.1241 0,0 0.306946,-0.12202 0.306946,-0.12202 0,0 0.303263,-0.11992 0.303263,-0.11992 0,0 0.299535,-0.11778 0.299535,-0.11778 0,0 0.29576,-0.11563 0.29576,-0.11563 0,0 0.291939,-0.11345 0.291939,-0.11345 0,0 0.288071,-0.11125 0.288071,-0.11125 0,0 0.284156,-0.10904 0.284156,-0.10904 0,0 0.280195,-0.10678 0.280195,-0.10678 0,0 0.276188,-0.10453 0.276188,-0.10453 0,0 0.272134,-0.10223 0.272134,-0.10223 0,0 0.268034,-0.0999 0.268034,-0.0999 0,0 0.263887,-0.0976 0.263887,-0.0976 0,0 0.259694,-0.0952 0.259694,-0.0952 0,0 0.255454,-0.0928 0.255454,-0.0928 0,0 0.251168,-0.0905 0.251168,-0.0905 0,0 0.246836,-0.088 0.246836,-0.088 0,0 0.242456,-0.0856 0.242456,-0.0856 0,0 0.238031,-0.0831 0.238031,-0.0831 0,0 0.233559,-0.0806 0.233559,-0.0806 0,0 0.22904,-0.0781 0.22904,-0.0781 0,0 0.224476,-0.0756 0.224476,-0.0756 0,0 0.219864,-0.073 0.219864,-0.073 0,0 0.215206,-0.0704 0.215206,-0.0704 0,0 0.210502,-0.0678 0.210502,-0.0678 0,0 0.205751,-0.0652 0.205751,-0.0652 0,0 0.200954,-0.0626 0.200954,-0.0626 0,0 0.19611,-0.0599 0.19611,-0.0599 0,0 0.19122,-0.0572 0.19122,-0.0572 0,0 0.186283,-0.0545 0.186283,-0.0545 0,0 0.1813,-0.0517 0.1813,-0.0517 0,0 0.176271,-0.049 0.176271,-0.049 0,0 0.171194,-0.0462 0.171194,-0.0462 0,0 0.166072,-0.0434 0.166072,-0.0434 0,0 0.160903,-0.0406 0.160903,-0.0406 0,0 0.155688,-0.0377 0.155688,-0.0377 0,0 0.150425,-0.0348 0.150425,-0.0348 0,0 0.145118,-0.0319 0.145118,-0.0319 0,0 0.139762,-0.029 0.139762,-0.029 0,0 0.134361,-0.0261 0.134361,-0.0261 0,0 0.128914,-0.0231 0.128914,-0.0231 0,0 0.123419,-0.0201 0.123419,-0.0201 0,0 0.117879,-0.0171 0.117879,-0.0171 0,0 0.112291,-0.0141 0.112291,-0.0141 0,0 0.106658,-0.011 0.106658,-0.011 0,0 0.100977,-0.008 0.100977,-0.008 0,0 0.09525,-0.005 0.09525,-0.005 0,0 0.08948,-0.002 0.08948,-0.002 0,0 0.0895,0.001 0.0895,0.001 0,0 0.09531,0.004 0.09531,0.004 0,0 0.101076,0.008 0.101076,0.008 0,0 0.106795,0.0106 0.106795,0.0106 0,0 0.112468,0.0137 0.112468,0.0137 0,0 0.118093,0.0167 0.118093,0.0167 0,0 0.123671,0.0197 0.123671,0.0197 0,0 0.129204,0.0226 0.129204,0.0226 0,0 0.134688,0.0256 0.134688,0.0256 0,0 0.140128,0.0285 0.140128,0.0285 0,0 0.145518,0.0314 0.145518,0.0314 0,0 0.150864,0.0343 0.150864,0.0343 0,0 0.156161,0.0372 0.156161,0.0372 0,0 0.161413,0.04 0.161413,0.04 0,0 0.166618,0.0428 0.166618,0.0428 0,0 0.171775,0.0456 0.171775,0.0456 0,0 0.176886,0.0483 0.176886,0.0483 0,0 0.181951,0.0511 0.181951,0.0511 0,0 0.186968,0.0538 0.186968,0.0538 0,0 0.191938,0.0565 0.191938,0.0565 0,0 0.196863,0.0592 0.196863,0.0592 0,0 0.20174,0.0619 0.20174,0.0619 0,0 0.20657,0.0645 0.20657,0.0645 0,0 0.211354,0.0671 0.211354,0.0671 0,0 0.216091,0.0697 0.216091,0.0697 0,0 0.220781,0.0723 0.220781,0.0723 0,0 0.225424,0.0748 0.225424,0.0748 0,0 0.230021,0.0773 0.230021,0.0773 0,0 0.234571,0.0798 0.234571,0.0798 0,0 0.239074,0.0823 0.239074,0.0823 0,0 0.24353,0.0848 0.24353,0.0848 0,0 0.247939,0.0872 0.247939,0.0872 0,0 0.252303,0.0896 0.252303,0.0896 0,0 0.256618,0.092 0.256618,0.092 0,0 0.260888,0.0944 0.260888,0.0944 0,0 0.26511,0.0967 0.26511,0.0967 0,0 0.269285,0.099 0.269285,0.099 0,0 0.273415,0.10133 0.273415,0.10133 0,0 0.277497,0.1036 0.277497,0.1036 0,0 0.281532,0.10585 0.281532,0.10585 0,0 0.285521,0.10809 0.285521,0.10809 0,0 0.289462,0.1103 0.289462,0.1103 0,0 0.293358,0.11248 0.293358,0.11248 0,0 0.297206,0.11465 0.297206,0.11465 0,0 0.301008,0.11679 0.301008,0.11679 0,0 0.304762,0.11891 0.304762,0.11891 0,0 0.30847,0.12101 0.30847,0.12101 0,0 0.312132,0.12308 0.312132,0.12308 0,0 0.315746,0.12514 0.315746,0.12514 0,0 0.319314,0.12717 0.319314,0.12717 0,0 0.322835,0.12917 0.322835,0.12917 0,0 0.326309,0.13116 0.326309,0.13116 0,0 0.329736,0.13313 0.329736,0.13313 0,0 0.333117,0.13506 0.333117,0.13506 0,0 0.336451,0.13699 0.336451,0.13699 0,0 0.339739,0.13888 0.339739,0.13888 0,0 0.342978,0.14075 0.342978,0.14075 0,0 0.346172,0.14261 0.346172,0.14261 0,0 0.349319,0.14444 0.349319,0.14444 0,0 0.352419,0.14624 0.352419,0.14624 0,0 0.355472,0.14803 0.355472,0.14803 0,0 0.358479,0.14979 0.358479,0.14979 0,0 0.361438,0.15153 0.361438,0.15153 0,0 0.364352,0.15325 0.364352,0.15325 0,0 0.367218,0.15494 0.367218,0.15494 0,0 0.370037,0.15662 0.370037,0.15662 0,0 0.37281,0.15826 0.37281,0.15826 0,0 0.375535,0.1599 0.375535,0.1599 0,0 0.378215,0.1615 0.378215,0.1615 0,0 0.380848,0.16308 0.380848,0.16308 0,0 0.383433,0.16465 0.383433,0.16465 0,0 0.385971,0.16618 0.385971,0.16618 0,0 0.388464,0.1677 0.388464,0.1677 0,0 0.39091,0.1692 0.39091,0.1692 0,0 0.393307,0.17067 0.393307,0.17067 0,0 0.39566,0.17211 0.39566,0.17211 0,0 0.397964,0.17354 0.397964,0.17354 0,0 0.400223,0.17495 0.400223,0.17495 0,0 0.402435,0.17633 0.402435,0.17633 0,0 0.404599,0.17769 0.404599,0.17769 0,0 0.406717,0.17903 0.406717,0.17903 0,0 0.408788,0.18034 0.408788,0.18034 0,0 0.410813,0.18164 0.410813,0.18164 0,0 0.41279,0.18291 0.41279,0.18291 0,0 0.414721,0.18415 0.414721,0.18415 0,0 0.416605,0.18538 0.416605,0.18538 0,0 0.418443,0.18659 0.418443,0.18659 0,0 0.420233,0.18776 0.420233,0.18776 0,0 0.421977,0.18893 0.421977,0.18893 0,0 0.423674,0.19006 0.423674,0.19006 0,0 0.425325,0.19117 0.425325,0.19117 0,0 0.426928,0.19227 0.426928,0.19227 0,0 0.428485,0.19333 0.428485,0.19333 0,0 0.429994,0.19439 0.429994,0.19439 0,0 0.431458,0.1954 0.431458,0.1954 0,0 0.432875,0.19641 0.432875,0.19641 0,0 0.434244,0.19739 0.434244,0.19739 0,0 0.435567,0.19835 0.435567,0.19835 0,0 0.436843,0.19928 0.436843,0.19928 0,0 0.438072,0.2002 0.438072,0.2002 0,0 0.439256,0.20109 0.439256,0.20109 0,0 0.440391,0.20195 0.440391,0.20195 0,0 0.44148,0.2028 0.44148,0.2028 0,0 0.442522,0.20363 0.442522,0.20363 0,0 0.443518,0.20442 0.443518,0.20442 0,0 0.444467,0.2052 0.444467,0.2052 0,0 0.445369,0.20596 0.445369,0.20596 0,0 0.446224,0.2067 0.446224,0.2067 0,0 0.447032,0.20741 0.447032,0.20741 0,0 0.447795,0.20809 0.447795,0.20809 0,0 0.448509,0.20876 0.448509,0.20876 0,0 0.449178,0.20941 0.449178,0.20941 0,0 0.449798,0.21003 0.449798,0.21003 0,0 0.450374,0.21063 0.450374,0.21063 0,0 0.450901,0.21121 0.450901,0.21121 0,0 0.451383,0.21176 0.451383,0.21176 0,0 0.451817,0.2123 0.451817,0.2123 0,0 0.452204,0.2128 0.452204,0.2128 0,0 0.452546,0.2133 0.452546,0.2133 0,0 0.452839,0.21376 0.452839,0.21376 0,0 0.453087,0.2142 0.453087,0.2142 0,0 0.453287,0.21463 0.453287,0.21463 0,0 0.453441,0.21502 0.453441,0.21502 0,0 0.453548,0.2154 0.453548,0.2154 0,0 0.453608,0.21575 0.453608,0.21575 0,0 0.453622,0.21609 0.453622,0.21609 0,0 0.453588,0.2164 0.453588,0.2164 0,0 0.453508,0.21668 0.453508,0.21668 0,0 0.453382,0.21695 0.453382,0.21695 0,0 0.453208,0.21719 0.453208,0.21719 0,0 0.452987,0.2174 0.452987,0.2174 0,0 0.45272,0.217612 0.45272,0.217612 0,0 0.452407,0.217783 0.452407,0.217783 0,0 0.452046,0.217935 0.452046,0.217935 0,0 0.451638,0.218066 0.451638,0.218066 0,0 0.451184,0.218174 0.451184,0.218174 0,0 0.450683,0.21826 0.450683,0.21826 0,0 0.450135,0.218324 0.450135,0.218324 0,0 0.449541,0.218365 0.449541,0.218365 0,0 0.4489,0.218383 0.4489,0.218383 0,0 0.448211,0.21838 0.448211,0.21838 0,0 0.447477,0.218354 0.447477,0.218354 0,0 0.446695,0.218306 0.446695,0.218306 0,0 0.445867,0.218236 0.445867,0.218236 0,0 0.444992,0.218142 0.444992,0.218142 0,0 0.44407,0.218027 0.44407,0.218027 0,0 0.443101,0.217889 0.443101,0.217889 0,0 0.442086,0.21773 0.442086,0.21773 0,0 0.441024,0.217547 0.441024,0.217547 0,0 0.439914,0.217342 0.439914,0.217342 0,0 0.438759,0.217115 0.438759,0.217115 0,0 0.437557,0.216866 0.437557,0.216866 0,0 0.436307,0.216594 0.436307,0.216594 0,0 0.435011,0.2163 0.435011,0.2163 0,0 0.433669,0.215983 0.433669,0.215983 0,0 0.4322789,0.215645 0.4322789,0.215645 0,0 0.4308426,0.215283 0.4308426,0.215283 0,0 0.4293596,0.2149 0.4293596,0.2149 0,0 0.4278298,0.214494 0.4278298,0.214494 0,0 0.4262531,0.214066 0.4262531,0.214066 0,0 0.4246298,0.213615 0.4246298,0.213615 0,0 0.4229597,0.213142 0.4229597,0.213142 0,0 0.4212427,0.212647 0.4212427,0.212647 0,0 0.4194791,0.212129 0.4194791,0.212129 0,0 0.4176686,0.211589 0.4176686,0.211589 0,0 0.4158114,0.211027 0.4158114,0.211027 0,0 0.4139075,0.210442 0.4139075,0.210442 0,0 0.4119567,0.209835 0.4119567,0.209835 0,0 0.4099592,0.209206 0.4099592,0.209206 0,0 0.407915,0.208554 0.407915,0.208554 0,0 0.4058239,0.20788 0.4058239,0.20788 0,0 0.4036861,0.207183 0.4036861,0.207183 0,0 0.4015015,0.206464 0.4015015,0.206464 0,0 0.3992702,0.205723 0.3992702,0.205723 0,0 0.3969921,0.20496 0.3969921,0.20496 0,0 0.3946672,0.204174 0.3946672,0.204174 0,0 0.3922956,0.203365 0.3922956,0.203365 0,0 0.38987717,0.202535 0.38987717,0.202535 0,0 0.38741201,0.201682 0.38741201,0.201682 0,0 0.38490007,0.200807 0.38490007,0.200807 0,0 0.38234137,0.199909 0.38234137,0.199909 0,0 0.37973589,0.198989 0.37973589,0.198989 0,0 0.37708369,0.198047 0.37708369,0.198047 0,0 0.3743846,0.197082 0.3743846,0.197082 0,0 0.3716389,0.196095 0.3716389,0.196095 0,0 0.3688464,0.195085 0.3688464,0.195085 0,0 0.366007,0.194054 0.366007,0.194054 0,0 0.363121,0.192999 0.363121,0.192999 0,0 0.3601881,0.191923 0.3601881,0.191923 0,0 0.3572085,0.190825 0.3572085,0.190825 0,0 0.3541822,0.189703 0.3541822,0.189703 0,0 0.351109,0.188559 0.351109,0.188559 0,0 0.3479892,0.187394 0.3479892,0.187394 0,0 0.3448224,0.186205 0.3448224,0.186205 0,0 0.341609,0.184995 0.341609,0.184995 0,0 0.3383489,0.183762 0.3383489,0.183762 0,0 0.3350418,0.182506 0.3350418,0.182506 0,0 0.3316881,0.181229 0.3316881,0.181229 0,0 0.3282876,0.179929 0.3282876,0.179929 0,0 0.3248404,0.178607 0.3248404,0.178607 0,0 0.3213463,0.177261 0.3213463,0.177261 0,0 0.3178055,0.175895 0.3178055,0.175895 0,0 0.3142179,0.174505 0.3142179,0.174505 0,0 0.3105836,0.173094 0.3105836,0.173094 0,0 0.3069025,0.171659 0.3069025,0.171659 0,0 0.3031746,0.170203 0.3031746,0.170203 0,0 0.2994,0.168724 0.2994,0.168724 0,0 0.2955786,0.167223 0.2955786,0.167223 0,0 0.2917104,0.1657 0.2917104,0.1657 0,0 0.287795,0.164153 0.287795,0.164153 0,0 0.283834,0.162585 0.283834,0.162585 0,0 0.279826,0.160995 0.279826,0.160995 0,0 0.27577,0.159382 0.27577,0.159382 0,0 0.271668,0.157746 0.271668,0.157746 0,0 0.267519,0.156089 0.267519,0.156089 0,0 0.263324,0.154408 0.263324,0.154408 0,0 0.259081,0.152707 0.259081,0.152707 0,0 0.254793,0.150981 0.254793,0.150981 0,0 0.250456,0.149235 0.250456,0.149235 0,0 0.246074,0.147465 0.246074,0.147465 0,0 0.241645,0.145673 0.241645,0.145673 0,0 0.237168,0.14386 0.237168,0.14386 0,0 0.232646,0.142022 0.232646,0.142022 0,0 0.228076,0.140164 0.228076,0.140164 0,0 0.223459,0.138283 0.223459,0.138283 0,0 0.218796,0.136379 0.218796,0.136379 0,0 0.214087,0.134454 0.214087,0.134454 0,0 0.209329,0.132505 0.209329,0.132505 0,0 0.204526,0.130534 0.204526,0.130534 0,0 0.199676,0.128542 0.199676,0.128542 0,0 0.194779,0.126526 0.194779,0.126526 0,0 0.189835,0.124489 0.189835,0.124489 0,0 0.184844,0.122428 0.184844,0.122428 0,0 0.179807,0.120346 0.179807,0.120346 0,0 0.174723,0.118242 0.174723,0.118242 0,0 0.169592,0.116114 0.169592,0.116114 0,0 0.164415,0.113965 0.164415,0.113965 0,0 0.15919,0.111794 0.15919,0.111794 0,0 0.153919,0.109599 0.153919,0.109599 0,0 0.148601,0.107382 0.148601,0.107382 0,0 0.143236,0.105144 0.143236,0.105144 0,0 0.137825,0.102883 0.137825,0.102883 0,0 0.132366,0.100599 0.132366,0.100599 0,0 0.126862,0.09829 0.126862,0.09829 0,0 0.12131,0.09597 0.12131,0.09597 0,0 0.115711,0.09361 0.115711,0.09361 0,0 0.110066,0.09124 0.110066,0.09124 0,0 0.104374,0.08885 0.104374,0.08885 0,0 0.09864,0.08643 0.09864,0.08643 0,0 0.09285,0.08399 0.09285,0.08399 0,0 0.08702,0.08153 0.08702,0.08153 0,0 0.08114,0.07904 0.08114,0.07904 0,0 0.07521,0.07653 0.07521,0.07653 0,0 0.06924,0.074 0.06924,0.074 0,0 0.06322,0.07145 0.06322,0.07145 0,0 0.05715,0.06888 0.05715,0.06888 0,0 0.0547,0.07084 0.0547,0.07084 0,0 0.05589,0.0773 0.05589,0.0773 0,0 0.05707,0.08372 0.05707,0.08372 0,0 0.05823,0.09008 0.05823,0.09008 0,0 0.05938,0.0964 0.05938,0.0964 0,0 0.06052,0.102661 0.06052,0.102661 0,0 0.06165,0.108875 0.06165,0.108875 0,0 0.06277,0.115039 0.06277,0.115039 0,0 0.06387,0.121152 0.06387,0.121152 0,0 0.06497,0.127215 0.06497,0.127215 0,0 0.06605,0.133227 0.06605,0.133227 0,0 0.06712,0.13919 0.06712,0.13919 0,0 0.06818,0.145102 0.06818,0.145102 0,0 0.06923,0.150962 0.06923,0.150962 0,0 0.07027,0.156774 0.07027,0.156774 0,0 0.07129,0.162534 0.07129,0.162534 0,0 0.0723,0.168245 0.0723,0.168245 0,0 0.07331,0.173904 0.07331,0.173904 0,0 0.07429,0.179513 0.07429,0.179513 0,0 0.07527,0.185073 0.07527,0.185073 0,0 0.07624,0.190581 0.07624,0.190581 0,0 0.07719,0.196039 0.07719,0.196039 0,0 0.07814,0.201447 0.07814,0.201447 0,0 0.07907,0.206804 0.07907,0.206804 0,0 0.07999,0.212112 0.07999,0.212112 0,0 0.0809,0.217367 0.0809,0.217367 0,0 0.0818,0.222574 0.0818,0.222574 0,0 0.08268,0.22773 0.08268,0.22773 0,0 0.08356,0.232835 0.08356,0.232835 0,0 0.08442,0.23789 0.08442,0.23789 0,0 0.08527,0.242895 0.08527,0.242895 0,0 0.08611,0.247849 0.08611,0.247849 0,0 0.08693,0.252752 0.08693,0.252752 0,0 0.08775,0.257606 0.08775,0.257606 0,0 0.08855,0.262409 0.08855,0.262409 0,0 0.08935,0.267162 0.08935,0.267162 0,0 0.09013,0.271864 0.09013,0.271864 0,0 0.0909,0.276515 0.0909,0.276515 0,0 0.09166,0.281117 0.09166,0.281117 0,0 0.0924,0.285668 0.0924,0.285668 0,0 0.09314,0.290168 0.09314,0.290168 0,0 0.09386,0.294619 0.09386,0.294619 0,0 0.09457,0.299018 0.09457,0.299018 0,0 0.09527,0.303368 0.09527,0.303368 0,0 0.09596,0.307667 0.09596,0.307667 0,0 0.09664,0.311916 0.09664,0.311916 0,0 0.0973,0.316113 0.0973,0.316113 0,0 0.09795,0.320262 0.09795,0.320262 0,0 0.0986,0.324359 0.0986,0.324359 0,0 0.09923,0.328406 0.09923,0.328406 0,0 0.09984,0.332402 0.09984,0.332402 0,0 0.100452,0.336349 0.100452,0.336349 0,0 0.101047,0.340245 0.101047,0.340245 0,0 0.101631,0.344089 0.101631,0.344089 0,0 0.102203,0.347885 0.102203,0.347885 0,0 0.102764,0.35163 0.102764,0.35163 0,0 0.103313,0.355324 0.103313,0.355324 0,0 0.10385,0.358968 0.10385,0.358968 0,0 0.104376,0.362561 0.104376,0.362561 0,0 0.10489,0.366104 0.10489,0.366104 0,0 0.105393,0.369597 0.105393,0.369597 0,0 0.105883,0.373039 0.105883,0.373039 0,0 0.106364,0.37643 0.106364,0.37643 0,0 0.106831,0.379773 0.106831,0.379773 0,0 0.107287,0.383063 0.107287,0.383063 0,0 0.107732,0.386304 0.107732,0.386304 0,0 0.108164,0.389494 0.108164,0.389494 0,0 0.108586,0.392634 0.108586,0.392634 0,0 0.108996,0.395723 0.108996,0.395723 0,0 0.109394,0.398763 0.109394,0.398763 0,0 0.109781,0.401751 0.109781,0.401751 0,0 0.110156,0.40469 0.110156,0.40469 0,0 0.110519,0.407577 0.110519,0.407577 0,0 0.110871,0.410415 0.110871,0.410415 0,0 0.111211,0.413201 0.111211,0.413201 0,0 0.111539,0.415939 0.111539,0.415939 0,0 0.111857,0.418625 0.111857,0.418625 0,0 0.112162,0.42126 0.112162,0.42126 0,0 0.112456,0.423846 0.112456,0.423846 0,0 0.112738,0.426381 0.112738,0.426381 0,0 0.113008,0.428866 0.113008,0.428866 0,0 0.113268,0.4313 0.113268,0.4313 0,0 0.113514,0.433684 0.113514,0.433684 0,0 0.113751,0.436018 0.113751,0.436018 0,0 0.113975,0.4383 0.113975,0.4383 0,0 0.114187,0.440533 0.114187,0.440533 0,0 0.114389,0.442716 0.114389,0.442716 0,0 0.114577,0.444847 0.114577,0.444847 0,0 0.114756,0.446929 0.114756,0.446929 0,0 0.114921,0.44896 0.114921,0.44896 0,0 0.115076,0.45094 0.115076,0.45094 0,0 0.11522,0.452871 0.11522,0.452871 0,0 0.11535,0.454751 0.11535,0.454751 0,0 0.11547,0.45658 0.11547,0.45658 0,0 0.115579,0.45836 0.115579,0.45836 0,0 0.115675,0.460088 0.115675,0.460088 0,0 0.11576,0.461766 0.11576,0.461766 0,0 0.115833,0.463395 0.115833,0.463395 0,0 0.115895,0.464971 0.115895,0.464971 0,0 0.115945,0.466499 0.115945,0.466499 0,0 0.115984,0.467976 0.115984,0.467976 0,0 0.116011,0.469402 0.116011,0.469402 0,0 0.116026,0.470778 0.116026,0.470778 0,0 0.116029,0.472103 0.116029,0.472103 0,0 0.116022,0.473379 0.116022,0.473379 0,0 0.116003,0.474603 0.116003,0.474603 0,0 0.115971,0.475777 0.115971,0.475777 0,0 0.115929,0.476902 0.115929,0.476902 0,0 0.115874,0.477975 0.115874,0.477975 0,0 0.115809,0.478998 0.115809,0.478998 0,0 0.115731,0.479971 0.115731,0.479971 0,0 0.115642,0.480893 0.115642,0.480893 0,0 0.115542,0.481765 0.115542,0.481765 0,0 0.115429,0.482587 0.115429,0.482587 0,0 0.115305,0.483357 0.115305,0.483357 0,0 0.11517,0.484079 0.11517,0.484079 0,0 0.115023,0.484749 0.115023,0.484749 0,0 0.114864,0.485369 0.114864,0.485369 0,0 0.114694,0.485938 0.114694,0.485938 0,0 0.114512,0.486457 0.114512,0.486457 0,0 0.114318,0.486927 0.114318,0.486927 0,0 0.114113,0.487344 0.114113,0.487344 0,0 0.113897,0.487713 0.113897,0.487713 0,0 0.113669,0.48803 0.113669,0.48803 0,0 0.113428,0.488297 0.113428,0.488297 0,0 0.113177,0.488514 0.113177,0.488514 0,0 0.112914,0.48868 0.112914,0.48868 0,0 0.112639,0.488797 0.112639,0.488797 0,0 0.112353,0.488862 0.112353,0.488862 0,0 0.112056,0.488877 0.112056,0.488877 0,0 0.111745,0.488842 0.111745,0.488842 0,0 0.111425,0.488756 0.111425,0.488756 0,0 0.111092,0.48862 0.111092,0.48862 0,0 0.110747,0.488434 0.110747,0.488434 0,0 0.110392,0.488197 0.110392,0.488197 0,0 0.110024,0.487909 0.110024,0.487909 0,0 0.109645,0.487573 0.109645,0.487573 0,0 0.109254,0.487184 0.109254,0.487184 0,0 0.108852,0.486745 0.108852,0.486745 0,0 0.108439,0.486257 0.108439,0.486257 0,0 0.108012,0.485718 0.108012,0.485718 0,0 0.107576,0.485128 0.107576,0.485128 0,0 0.107127,0.484488 0.107127,0.484488 0,0 0.106666,0.483797 0.106666,0.483797 0,0 0.106195,0.483057 0.106195,0.483057 0,0 0.105711,0.482266 0.105711,0.482266 0,0 0.105216,0.481424 0.105216,0.481424 0,0 0.104709,0.480532 0.104709,0.480532 0,0 0.104191,0.479589 0.104191,0.479589 0,0 0.103661,0.478597 0.103661,0.478597 0,0 0.10312,0.477554 0.10312,0.477554 0,0 0.102566,0.47646 0.102566,0.47646 0,0 0.102002,0.475316 0.102002,0.475316 0,0 0.101426,0.474122 0.101426,0.474122 0,0 0.100837,0.472877 0.100837,0.472877 0,0 0.100238,0.471581 0.100238,0.471581 0,0 0.09963,0.470236 0.09963,0.470236 0,0 0.099,0.468841 0.099,0.468841 0,0 0.09837,0.467393 0.09837,0.467393 0,0 0.09772,0.465897 0.09772,0.465897 0,0 0.09707,0.46435 0.09707,0.46435 0,0 0.0964,0.462752 0.0964,0.462752 0,0 0.09572,0.461105 0.09572,0.461105 0,0 0.09502,0.459406 0.09502,0.459406 0,0 0.09432,0.457657 0.09432,0.457657 0,0 0.0936,0.455858 0.0936,0.455858 0,0 0.09288,0.454008 0.09288,0.454008 0,0 0.09214,0.452109 0.09214,0.452109 0,0 0.09139,0.450158 0.09139,0.450158 0,0 0.09063,0.448157 0.09063,0.448157 0,0 0.08985,0.446106 0.08985,0.446106 0,0 0.08907,0.444005 0.08907,0.444005 0,0 0.08827,0.441853 0.08827,0.441853 0,0 0.08746,0.43965 0.08746,0.43965 0,0 0.08664,0.437398 0.08664,0.437398 0,0 0.08581,0.435094 0.08581,0.435094 0,0 0.08497,0.432741 0.08497,0.432741 0,0 0.08411,0.430337 0.08411,0.430337 0,0 0.08325,0.427883 0.08325,0.427883 0,0 0.08237,0.4253776 0.08237,0.4253776 0,0 0.08148,0.4228227 0.08148,0.4228227 0,0 0.08058,0.4202173 0.08058,0.4202173 0,0 0.07967,0.4175613 0.07967,0.4175613 0,0 0.07874,0.414855 0.07874,0.414855 0,0 0.0778,0.4120983 0.0778,0.4120983 0,0 0.07686,0.4092912 0.07686,0.4092912 0,0 0.0759,0.4064336 0.0759,0.4064336 0,0 0.07493,0.4035257 0.07493,0.4035257 0,0 0.07395,0.4005674 0.07395,0.4005674 0,0 0.07295,0.3975587 0.07295,0.3975587 0,0 0.07195,0.3944995 0.07195,0.3944995 0,0 0.07093,0.3913901 0.07093,0.3913901 0,0 0.0699,0.3882301 0.0699,0.3882301 0,0 0.06886,0.3850199 0.06886,0.3850199 0,0 0.06781,0.3817591 0.06781,0.3817591 0,0 0.06674,0.378448 0.06674,0.378448 0,0 0.06567,0.3750865 0.06567,0.3750865 0,0 0.06458,0.3716747 0.06458,0.3716747 0,0 0.06348,0.3682123 0.06348,0.3682123 0,0 0.06237,0.3646996 0.06237,0.3646996 0,0 0.06125,0.3611366 0.06125,0.3611366 0,0 0.06012,0.357523 0.06012,0.357523 0,0 0.05897,0.35385916 0.05897,0.35385916 0,0 0.05782,0.35014487 0.05782,0.35014487 0,0 0.05665,0.34638018 0.05665,0.34638018 0,0 0.05547,0.3425651 0.05547,0.3425651 0,0 0.05428,0.33869962 0.05428,0.33869962 0,0 0.05308,0.33478373 0.05308,0.33478373 0,0 0.05186,0.33081744 0.05186,0.33081744 0,0 0.05064,0.3268008 0.05064,0.3268008 0,0 0.0494,0.3227337 0.0494,0.3227337 0,0 0.04815,0.3186162 0.04815,0.3186162 0,0 0.04689,0.3144484 0.04689,0.3144484 0,0 0.04562,0.3102301 0.04562,0.3102301 0,0 0.04433,0.3059614 0.04433,0.3059614 0,0 0.04304,0.3016424 0.04304,0.3016424 0,0 0.04173,0.2972729 0.04173,0.2972729 0,0 0.04041,0.292853 0.04041,0.292853 0,0 0.03908,0.2883828 0.03908,0.2883828 0,0 0.03774,0.2838622 0.03774,0.2838622 0,0 0.03638,0.279291 0.03638,0.279291 0,0 0.03502,0.2746697 0.03502,0.2746697 0,0 0.03364,0.2699977 0.03364,0.2699977 0,0 0.03225,0.2652755 0.03225,0.2652755 0,0 0.03085,0.2605029 0.03085,0.2605029 0,0 0.02944,0.2556798 0.02944,0.2556798 0,0 0.02802,0.2508064 0.02802,0.2508064 0,0 0.02658,0.2458826 0.02658,0.2458826 0,0 0.02514,0.2409083 0.02514,0.2409083 0,0 0.02368,0.2358837 0.02368,0.2358837 0,0 0.02221,0.2308086 0.02221,0.2308086 0,0 0.02073,0.2256832 0.02073,0.2256832 0,0 0.01924,0.2205074 0.01924,0.2205074 0,0 0.01773,0.2152811 0.01773,0.2152811 0,0 0.01622,0.2100045 0.01622,0.2100045 0,0 0.01469,0.2046775 0.01469,0.2046775 0,0 0.01315,0.1993001 0.01315,0.1993001 0,0 0.0116,0.1938722 0.0116,0.1938722 0,0 0.01004,0.188394 0.01004,0.188394 0,0 0.0085,0.1828655 0.0085,0.1828655 0,0 0.0069,0.1772863 0.0069,0.1772863 0,0 0.0053,0.171657 0.0053,0.171657 0,0 0.0037,0.1659772 0.0037,0.1659772 0,0 0.002,0.160247 0.002,0.160247 0,0 4.17e-4,0.1544663 4.17e-4,0.1544663 0,0 -0.0012,0.1486353 -0.0012,0.1486353 0,0 -0.0029,0.142754 -0.0029,0.142754 0,0 -0.0045,0.136822 -0.0045,0.136822 0,0 -0.0062,0.13084 -0.0062,0.13084 0,0 -0.0079,0.124807 -0.0079,0.124807 0,0 -0.0096,0.118725 -0.0096,0.118725 0,0 -0.01133,0.112591 -0.01133,0.112591 0,0 -0.01306,0.106407 -0.01306,0.106407 0,0 -0.01479,0.100173 -0.01479,0.100173 0,0 -0.01654,0.09389 -0.01654,0.09389 0,0 -0.0183,0.08755 -0.0183,0.08755 0,0 -0.02136,0.08687 -0.02136,0.08687 0,0 -0.0257,0.09185 -0.0257,0.09185 0,0 -0.03,0.09678 -0.03,0.09678 0,0 -0.03427,0.101675 -0.03427,0.101675 0,0 -0.0385,0.106529 -0.0385,0.106529 0,0 -0.04271,0.111342 -0.04271,0.111342 0,0 -0.04688,0.116115 -0.04688,0.116115 0,0 -0.05102,0.120846 -0.05102,0.120846 0,0 -0.05513,0.125537 -0.05513,0.125537 0,0 -0.0592,0.130189 -0.0592,0.130189 0,0 -0.06324,0.134798 -0.06324,0.134798 0,0 -0.06725,0.139367 -0.06725,0.139367 0,0 -0.07123,0.143897 -0.07123,0.143897 0,0 -0.07518,0.148384 -0.07518,0.148384 0,0 -0.07909,0.152832 -0.07909,0.152832 0,0 -0.08297,0.157239 -0.08297,0.157239 0,0 -0.08682,0.161605 -0.08682,0.161605 0,0 -0.09064,0.165931 -0.09064,0.165931 0,0 -0.09442,0.170216 -0.09442,0.170216 0,0 -0.09818,0.174461 -0.09818,0.174461 0,0 -0.101894,0.178664 -0.101894,0.178664 0,0 -0.105581,0.182827 -0.105581,0.182827 0,0 -0.109236,0.18695 -0.109236,0.18695 0,0 -0.112859,0.191032 -0.112859,0.191032 0,0 -0.11645,0.195074 -0.11645,0.195074 0,0 -0.120007,0.199074 -0.120007,0.199074 0,0 -0.123533,0.203034 -0.123533,0.203034 0,0 -0.127027,0.206954 -0.127027,0.206954 0,0 -0.130488,0.210833 -0.130488,0.210833 0,0 -0.133916,0.214671 -0.133916,0.214671 0,0 -0.137313,0.218468 -0.137313,0.218468 0,0 -0.140677,0.222226 -0.140677,0.222226 0,0 -0.144009,0.225942 -0.144009,0.225942 0,0 -0.147308,0.229618 -0.147308,0.229618 0,0 -0.150576,0.233253 -0.150576,0.233253 0,0 -0.153811,0.236847 -0.153811,0.236847 0,0 -0.157013,0.240402 -0.157013,0.240402 0,0 -0.160183,0.243915 -0.160183,0.243915 0,0 -0.163321,0.247388 -0.163321,0.247388 0,0 -0.166427,0.250819 -0.166427,0.250819 0,0 -0.169501,0.254212 -0.169501,0.254212 0,0 -0.172541,0.257562 -0.172541,0.257562 0,0 -0.17555,0.260872 -0.17555,0.260872 0,0 -0.178526,0.264142 -0.178526,0.264142 0,0 -0.181471,0.267371 -0.181471,0.267371 0,0 -0.184382,0.27056 -0.184382,0.27056 0,0 -0.187262,0.273707 -0.187262,0.273707 0,0 -0.190109,0.276814 -0.190109,0.276814 0,0 -0.192923,0.279881 -0.192923,0.279881 0,0 -0.195706,0.282907 -0.195706,0.282907 0,0 -0.198456,0.285892 -0.198456,0.285892 0,0 -0.201174,0.288837 -0.201174,0.288837 0,0 -0.20386,0.291741 -0.20386,0.291741 0,0 -0.206513,0.294604 -0.206513,0.294604 0,0 -0.209134,0.297428 -0.209134,0.297428 0,0 -0.211722,0.300209 -0.211722,0.300209 0,0 -0.214279,0.302951 -0.214279,0.302951 0,0 -0.216802,0.305652 -0.216802,0.305652 0,0 -0.219295,0.308313 -0.219295,0.308313 0,0 -0.221753,0.310932 -0.221753,0.310932 0,0 -0.224181,0.313512 -0.224181,0.313512 0,0 -0.226575,0.31605 -0.226575,0.31605 0,0 -0.228938,0.318547 -0.228938,0.318547 0,0 -0.231268,0.321006 -0.231268,0.321006 0,0 -0.233565,0.323421 -0.233565,0.323421 0,0 -0.235831,0.325798 -0.235831,0.325798 0,0 -0.238065,0.328134 -0.238065,0.328134 0,0 -0.240265,0.330428 -0.240265,0.330428 0,0 -0.242433,0.332682 -0.242433,0.332682 0,0 -0.24457,0.334896 -0.24457,0.334896 0,0 -0.246673,0.337069 -0.246673,0.337069 0,0 -0.248746,0.339202 -0.248746,0.339202 0,0 -0.250784,0.341293 -0.250784,0.341293 0,0 -0.252791,0.343344 -0.252791,0.343344 0,0 -0.254766,0.345354 -0.254766,0.345354 0,0 -0.256708,0.347325 -0.256708,0.347325 0,0 -0.258619,0.349254 -0.258619,0.349254 0,0 -0.260496,0.351142 -0.260496,0.351142 0,0 -0.262341,0.352991 -0.262341,0.352991 0,0 -0.264154,0.354798 -0.264154,0.354798 0,0 -0.265935,0.356565 -0.265935,0.356565 0,0 -0.267684,0.358291 -0.267684,0.358291 0,0 -0.269399,0.359976 -0.269399,0.359976 0,0 -0.271083,0.361622 -0.271083,0.361622 0,0 -0.272735,0.363226 -0.272735,0.363226 0,0 -0.274354,0.364789 -0.274354,0.364789 0,0 -0.275941,0.366313 -0.275941,0.366313 0,0 -0.277495,0.367795 -0.277495,0.367795 0,0 -0.279018,0.369237 -0.279018,0.369237 0,0 -0.280507,0.370638 -0.280507,0.370638 0,0 -0.281965,0.371999 -0.281965,0.371999 0,0 -0.28339,0.373319 -0.28339,0.373319 0,0 -0.284784,0.374598 -0.284784,0.374598 0,0 -0.286143,0.375837 -0.286143,0.375837 0,0 -0.287473,0.377036 -0.287473,0.377036 0,0 -0.288768,0.378193 -0.288768,0.378193 0,0 -0.290032,0.379309 -0.290032,0.379309 0,0 -0.291263,0.380386 -0.291263,0.380386 0,0 -0.292462,0.381422 -0.292462,0.381422 0,0 -0.293629,0.382417 -0.293629,0.382417 0,0 -0.294764,0.383371 -0.294764,0.383371 0,0 -0.295865,0.384285 -0.295865,0.384285 0,0 -0.296936,0.385159 -0.296936,0.385159 0,0 -0.297972,0.385991 -0.297972,0.385991 0,0 -0.298978,0.386783 -0.298978,0.386783 0,0 -0.299951,0.387534 -0.299951,0.387534 0,0 -0.300892,0.388245 -0.300892,0.388245 0,0 -0.301799,0.388916 -0.301799,0.388916 0,0 -0.302676,0.389545 -0.302676,0.389545 0,0 -0.303519,0.390133 -0.303519,0.390133 0,0 -0.304331,0.390682 -0.304331,0.390682 0,0 -0.305109,0.39119 -0.305109,0.39119 0,0 -0.305856,0.391657 -0.305856,0.391657 0,0 -0.30657,0.392083 -0.30657,0.392083 0,0 -0.307253,0.392469 -0.307253,0.392469 0,0 -0.307902,0.392814 -0.307902,0.392814 0,0 -0.30852,0.393119 -0.30852,0.393119 0,0 -0.309104,0.393383 -0.309104,0.393383 0,0 -0.309658,0.393606 -0.309658,0.393606 0,0 -0.310177,0.393789 -0.310177,0.393789 0,0 -0.310666,0.393931 -0.310666,0.393931 0,0 -0.311122,0.394033 -0.311122,0.394033 0,0 -0.311545,0.394093 -0.311545,0.394093 0,0 -0.311937,0.394114 -0.311937,0.394114 0,0 -0.312295,0.394093 -0.312295,0.394093 0,0 -0.312622,0.394033 -0.312622,0.394033 0,0 -0.312916,0.39393 -0.312916,0.39393 0,0 -0.313178,0.393789 -0.313178,0.393789 0,0 -0.313408,0.393606 -0.313408,0.393606 0,0 -0.313605,0.393382 -0.313605,0.393382 0,0 -0.31377,0.393119 -0.31377,0.393119 0,0 -0.313903,0.392813 -0.313903,0.392813 0,0 -0.314003,0.392469 -0.314003,0.392469 0,0 -0.314071,0.392082 -0.314071,0.392082 0,0 -0.3141063,0.391656 -0.3141063,0.391656 0,0 -0.3141102,0.391189 -0.3141102,0.391189 0,0 -0.3140812,0.390681 -0.3140812,0.390681 0,0 -0.3140201,0.390133 -0.3140201,0.390133 0,0 -0.3139265,0.389543 -0.3139265,0.389543 0,0 -0.3138007,0.388915 -0.3138007,0.388915 0,0 -0.3136425,0.388244 -0.3136425,0.388244 0,0 -0.313452,0.387533 -0.313452,0.387533 0,0 -0.3132292,0.386781 -0.3132292,0.386781 0,0 -0.3129741,0.38599 -0.3129741,0.38599 0,0 -0.3126867,0.385157 -0.3126867,0.385157 0,0 -0.312367,0.384283 -0.312367,0.384283 0,0 -0.3120149,0.38337 -0.3120149,0.38337 0,0 -0.3116305,0.382415 -0.3116305,0.382415 0,0 -0.3112139,0.38142 -0.3112139,0.38142 0,0 -0.3107648,0.380384 -0.3107648,0.380384 0,0 -0.3102836,0.379308 -0.3102836,0.379308 0,0 -0.3097699,0.378191 -0.3097699,0.378191 0,0 -0.3092239,0.377033 -0.3092239,0.377033 0,0 -0.3086458,0.375835 -0.3086458,0.375835 0,0 -0.3080351,0.374596 -0.3080351,0.374596 0,0 -0.3073923,0.373317 -0.3073923,0.373317 0,0 -0.306717,0.371996 -0.306717,0.371996 0,0 -0.3060096,0.370636 -0.3060096,0.370636 0,0 -0.3052697,0.369235 -0.3052697,0.369235 0,0 -0.3044975,0.367792 -0.3044975,0.367792 0,0 -0.3036931,0.36631 -0.3036931,0.36631 0,0 -0.3028563,0.364787 -0.3028563,0.364787 0,0 -0.3019873,0.363223 -0.3019873,0.363223 0,0 -0.3010858,0.361619 -0.3010858,0.361619 0,0 -0.30015211,0.359974 -0.30015211,0.359974 0,0 -0.29918607,0.358288 -0.29918607,0.358288 0,0 -0.29818772,0.356561 -0.29818772,0.356561 0,0 -0.29715706,0.354795 -0.29715706,0.354795 0,0 -0.29609407,0.352987 -0.29609407,0.352987 0,0 -0.29499878,0.35114 -0.29499878,0.35114 0,0 -0.29387119,0.34925 -0.29387119,0.34925 0,0 -0.2927112,0.347321 -0.2927112,0.347321 0,0 -0.291519,0.345351 -0.291519,0.345351 0,0 -0.2902945,0.343341 -0.2902945,0.343341 0,0 -0.2890376,0.341289 -0.2890376,0.341289 0,0 -0.2877484,0.339198 -0.2877484,0.339198 0,0 -0.2864269,0.337065 -0.2864269,0.337065 0,0 -0.2850731,0.334892 -0.2850731,0.334892 0,0 -0.2836869,0.332679 -0.2836869,0.332679 0,0 -0.2822685,0.330424 -0.2822685,0.330424 0,0 -0.2808178,0.328129 -0.2808178,0.328129 0,0 -0.2793347,0.325794 -0.2793347,0.325794 0,0 -0.2778193,0.323418 -0.2778193,0.323418 0,0 -0.2762715,0.321 -0.2762715,0.321 0,0 -0.2746916,0.318544 -0.2746916,0.318544 0,0 -0.2730793,0.316045 -0.2730793,0.316045 0,0 -0.2714346,0.313507 -0.2714346,0.313507 0,0 -0.2697576,0.310928 -0.2697576,0.310928 0,0 -0.2680483,0.308308 -0.2680483,0.308308 0,0 -0.2663068,0.305647 -0.2663068,0.305647 0,0 -0.2645329,0.302947 -0.2645329,0.302947 0,0 -0.2627266,0.300204 -0.2627266,0.300204 0,0 -0.2608881,0.297423 -0.2608881,0.297423 0,0 -0.2590172,0.294599 -0.2590172,0.294599 0,0 -0.2571141,0.291736 -0.2571141,0.291736 0,0 -0.2551786,0.288832 -0.2551786,0.288832 0,0 -0.2532108,0.285887 -0.2532108,0.285887 0,0 -0.2512107,0.282901 -0.2512107,0.282901 0,0 -0.2491782,0.279876 -0.2491782,0.279876 0,0 -0.2471136,0.276809 -0.2471136,0.276809 0,0 -0.2450164,0.273701 -0.2450164,0.273701 0,0 -0.2428871,0.270554 -0.2428871,0.270554 0,0 -0.2407254,0.267366 -0.2407254,0.267366 0,0 -0.2385312,0.264136 -0.2385312,0.264136 0,0 -0.236305,0.260866 -0.236305,0.260866 0,0 -0.234047,0.257557 -0.234047,0.257557 0,0 -0.231755,0.254205 -0.231755,0.254205 0,0 -0.229433,0.250814 -0.229433,0.250814 0,0 -0.227076,0.247381 -0.227076,0.247381 0,0 -0.224689,0.243909 -0.224689,0.243909 0,0 -0.222269,0.240395 -0.222269,0.240395 0,0 -0.219816,0.236842 -0.219816,0.236842 0,0 -0.217331,0.233247 -0.217331,0.233247 0,0 -0.214814,0.229611 -0.214814,0.229611 0,0 -0.212265,0.225935 -0.212265,0.225935 0,0 -0.209683,0.22222 -0.209683,0.22222 0,0 -0.207068,0.218461 -0.207068,0.218461 0,0 -0.204423,0.214665 -0.204423,0.214665 0,0 -0.201743,0.210826 -0.201743,0.210826 0,0 -0.199033,0.206946 -0.199033,0.206946 0,0 -0.196289,0.203028 -0.196289,0.203028 0,0 -0.193514,0.199067 -0.193514,0.199067 0,0 -0.190705,0.195066 -0.190705,0.195066 0,0 -0.187866,0.191025 -0.187866,0.191025 0,0 -0.184992,0.186943 -0.184992,0.186943 0,0 -0.182088,0.18282 -0.182088,0.18282 0,0 -0.17915,0.178657 -0.17915,0.178657 0,0 -0.176181,0.174453 -0.176181,0.174453 0,0 -0.173179,0.170208 -0.173179,0.170208 0,0 -0.170145,0.165924 -0.170145,0.165924 0,0 -0.167079,0.161597 -0.167079,0.161597 0,0 -0.163979,0.157231 -0.163979,0.157231 0,0 -0.160849,0.152825 -0.160849,0.152825 0,0 -0.157685,0.148376 -0.157685,0.148376 0,0 -0.154489,0.143889 -0.154489,0.143889 0,0 -0.151261,0.139359 -0.151261,0.139359 0,0 -0.148001,0.13479 -0.148001,0.13479 0,0 -0.144708,0.13018 -0.144708,0.13018 0,0 -0.141383,0.12553 -0.141383,0.12553 0,0 -0.138026,0.120838 -0.138026,0.120838 0,0 -0.134636,0.116106 -0.134636,0.116106 0,0 -0.131214,0.111333 -0.131214,0.111333 0,0 -0.12776,0.106521 -0.12776,0.106521 0,0 -0.124273,0.101666 -0.124273,0.101666 0,0 -0.120754,0.09677 -0.120754,0.09677 0,0 -0.117203,0.09184 -0.117203,0.09184 0,0 -0.11362,0.08686 -0.11362,0.08686 0,0 -0.110003,0.08185 -0.110003,0.08185 0,0 -0.106356,0.07679 -0.106356,0.07679 0,0 -0.102675,0.07169 -0.102675,0.07169 0,0 -0.09896,0.06655 -0.09896,0.06655 0,0 -0.09522,0.06137 -0.09522,0.06137 0,0 -0.09144,0.05616 -0.09144,0.05616 0,0 -0.08763,0.05089 -0.08763,0.05089 0,0 -0.08379,0.04559 -0.08379,0.04559 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.69013361,0,0,0.8224436,163.91455,102.92346)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1244"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1244" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1249"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1249" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1250"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1250" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1251"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1251" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1252"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1252" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c 0,0 -0.08127,0.03743 -0.08127,0.03743 0,0 -0.08783,0.03715 -0.08783,0.03715 0,0 -0.09435,0.03686 -0.09435,0.03686 0,0 -0.100809,0.03658 -0.100809,0.03658 0,0 -0.107221,0.0363 -0.107221,0.0363 0,0 -0.113581,0.03602 -0.113581,0.03602 0,0 -0.119888,0.03574 -0.119888,0.03574 0,0 -0.126145,0.03545 -0.126145,0.03545 0,0 -0.132349,0.03517 -0.132349,0.03517 0,0 -0.138501,0.03489 -0.138501,0.03489 0,0 -0.144603,0.0346 -0.144603,0.0346 0,0 -0.150652,0.03432 -0.150652,0.03432 0,0 -0.156649,0.03404 -0.156649,0.03404 0,0 -0.162595,0.03375 -0.162595,0.03375 0,0 -0.16849,0.03347 -0.16849,0.03347 0,0 -0.174332,0.03319 -0.174332,0.03319 0,0 -0.180123,0.0329 -0.180123,0.0329 0,0 -0.185862,0.03262 -0.185862,0.03262 0,0 -0.19155,0.03234 -0.19155,0.03234 0,0 -0.197185,0.03205 -0.197185,0.03205 0,0 -0.202769,0.03177 -0.202769,0.03177 0,0 -0.208301,0.03149 -0.208301,0.03149 0,0 -0.213782,0.0312 -0.213782,0.0312 0,0 -0.219211,0.03092 -0.219211,0.03092 0,0 -0.224588,0.03063 -0.224588,0.03063 0,0 -0.229914,0.03035 -0.229914,0.03035 0,0 -0.235187,0.03007 -0.235187,0.03007 0,0 -0.240409,0.02978 -0.240409,0.02978 0,0 -0.24558,0.0295 -0.24558,0.0295 0,0 -0.250699,0.02921 -0.250699,0.02921 0,0 -0.255765,0.02893 -0.255765,0.02893 0,0 -0.260781,0.02864 -0.260781,0.02864 0,0 -0.265744,0.02836 -0.265744,0.02836 0,0 -0.270657,0.02807 -0.270657,0.02807 0,0 -0.275516,0.02779 -0.275516,0.02779 0,0 -0.280325,0.02751 -0.280325,0.02751 0,0 -0.285082,0.02722 -0.285082,0.02722 0,0 -0.289787,0.02693 -0.289787,0.02693 0,0 -0.29444,0.02665 -0.29444,0.02665 0,0 -0.299042,0.02636 -0.299042,0.02636 0,0 -0.303591,0.02608 -0.303591,0.02608 0,0 -0.30809,0.02579 -0.30809,0.02579 0,0 -0.312537,0.02551 -0.312537,0.02551 0,0 -0.316932,0.02522 -0.316932,0.02522 0,0 -0.321274,0.02494 -0.321274,0.02494 0,0 -0.325566,0.02465 -0.325566,0.02465 0,0 -0.329806,0.02436 -0.329806,0.02436 0,0 -0.333994,0.02408 -0.333994,0.02408 0,0 -0.338131,0.02379 -0.338131,0.02379 0,0 -0.342215,0.02351 -0.342215,0.02351 0,0 -0.346248,0.02322 -0.346248,0.02322 0,0 -0.350229,0.02293 -0.350229,0.02293 0,0 -0.354159,0.02265 -0.354159,0.02265 0,0 -0.358037,0.02236 -0.358037,0.02236 0,0 -0.361862,0.02207 -0.361862,0.02207 0,0 -0.365638,0.02179 -0.365638,0.02179 0,0 -0.36936,0.0215 -0.36936,0.0215 0,0 -0.373031,0.02121 -0.373031,0.02121 0,0 -0.37665,0.02093 -0.37665,0.02093 0,0 -0.380218,0.02064 -0.380218,0.02064 0,0 -0.383734,0.02035 -0.383734,0.02035 0,0 -0.387199,0.02006 -0.387199,0.02006 0,0 -0.390611,0.01978 -0.390611,0.01978 0,0 -0.393971,0.01949 -0.393971,0.01949 0,0 -0.397281,0.0192 -0.397281,0.0192 0,0 -0.400539,0.01891 -0.400539,0.01891 0,0 -0.403744,0.01863 -0.403744,0.01863 0,0 -0.406898,0.01834 -0.406898,0.01834 0,0 -0.41,0.01805 -0.41,0.01805 0,0 -0.413051,0.01776 -0.413051,0.01776 0,0 -0.41605,0.01748 -0.41605,0.01748 0,0 -0.418998,0.01719 -0.418998,0.01719 0,0 -0.421892,0.0169 -0.421892,0.0169 0,0 -0.424737,0.01661 -0.424737,0.01661 0,0 -0.427529,0.01632 -0.427529,0.01632 0,0 -0.430269,0.01603 -0.430269,0.01603 0,0 -0.432958,0.01575 -0.432958,0.01575 0,0 -0.435595,0.01546 -0.435595,0.01546 0,0 -0.43818,0.01517 -0.43818,0.01517 0,0 -0.440714,0.01488 -0.440714,0.01488 0,0 -0.443196,0.01459 -0.443196,0.01459 0,0 -0.445626,0.0143 -0.445626,0.0143 0,0 -0.448005,0.01401 -0.448005,0.01401 0,0 -0.450331,0.01372 -0.450331,0.01372 0,0 -0.452607,0.01343 -0.452607,0.01343 0,0 -0.45483,0.01314 -0.45483,0.01314 0,0 -0.457002,0.01286 -0.457002,0.01286 0,0 -0.459121,0.01257 -0.459121,0.01257 0,0 -0.461191,0.01228 -0.461191,0.01228 0,0 -0.463206,0.01199 -0.463206,0.01199 0,0 -0.465172,0.0117 -0.465172,0.0117 0,0 -0.467085,0.01141 -0.467085,0.01141 0,0 -0.468946,0.01112 -0.468946,0.01112 0,0 -0.470756,0.01083 -0.470756,0.01083 0,0 -0.472515,0.01054 -0.472515,0.01054 0,0 -0.47422,0.01025 -0.47422,0.01025 0,0 -0.475876,0.01 -0.475876,0.01 0,0 -0.477478,0.0097 -0.477478,0.0097 0,0 -0.47903,0.0094 -0.47903,0.0094 0,0 -0.480529,0.0091 -0.480529,0.0091 0,0 -0.481977,0.0088 -0.481977,0.0088 0,0 -0.483374,0.0085 -0.483374,0.0085 0,0 -0.484718,0.0082 -0.484718,0.0082 0,0 -0.486011,0.0079 -0.486011,0.0079 0,0 -0.487251,0.0076 -0.487251,0.0076 0,0 -0.488442,0.0073 -0.488442,0.0073 0,0 -0.489579,0.007 -0.489579,0.007 0,0 -0.490665,0.0068 -0.490665,0.0068 0,0 -0.491699,0.0065 -0.491699,0.0065 0,0 -0.492682,0.0062 -0.492682,0.0062 0,0 -0.493613,0.0059 -0.493613,0.0059 0,0 -0.494492,0.0056 -0.494492,0.0056 0,0 -0.495319,0.0053 -0.495319,0.0053 0,0 -0.496095,0.005 -0.496095,0.005 0,0 -0.49682,0.0047 -0.49682,0.0047 0,0 -0.497491,0.0044 -0.497491,0.0044 0,0 -0.498113,0.0041 -0.498113,0.0041 0,0 -0.498681,0.0038 -0.498681,0.0038 0,0 -0.499199,0.0035 -0.499199,0.0035 0,0 -0.499664,0.0033 -0.499664,0.0033 0,0 -0.500078,0.003 -0.500078,0.003 0,0 -0.500441,0.0027 -0.500441,0.0027 0,0 -0.500751,0.0024 -0.500751,0.0024 0,0 -0.501009,0.0021 -0.501009,0.0021 0,0 -0.501217,0.0018 -0.501217,0.0018 0,0 -0.501372,0.0015 -0.501372,0.0015 0,0 -0.501476,0.0012 -0.501476,0.0012 0,0 -0.501528,9.15e-4 -0.501528,9.15e-4 0,0 -0.501528,6.22e-4 -0.501528,6.22e-4 0,0 -0.501476,3.29e-4 -0.501476,3.29e-4 0,0 -0.501374,3.6e-5 -0.501374,3.6e-5 0,0 -0.501218,-2.58e-4 -0.501218,-2.58e-4 0,0 -0.501013,-5.51e-4 -0.501013,-5.51e-4 0,0 -0.500753,-8.45e-4 -0.500753,-8.45e-4 0,0 -0.500444,-0.0011 -0.500444,-0.0011 0,0 -0.500083,-0.0014 -0.500083,-0.0014 0,0 -0.499669,-0.0017 -0.499669,-0.0017 0,0 -0.499204,-0.002 -0.499204,-0.002 0,0 -0.498687,-0.0023 -0.498687,-0.0023 0,0 -0.498119,-0.0026 -0.498119,-0.0026 0,0 -0.497498,-0.0029 -0.497498,-0.0029 0,0 -0.496827,-0.0032 -0.496827,-0.0032 0,0 -0.496104,-0.0035 -0.496104,-0.0035 0,0 -0.495328,-0.0038 -0.495328,-0.0038 0,0 -0.494501,-0.0041 -0.494501,-0.0041 0,0 -0.493622,-0.0044 -0.493622,-0.0044 0,0 -0.492692,-0.0047 -0.492692,-0.0047 0,0 -0.49171,-0.005 -0.49171,-0.005 0,0 -0.490677,-0.0053 -0.490677,-0.0053 0,0 -0.489591,-0.0056 -0.489591,-0.0056 0,0 -0.488453,-0.0058 -0.488453,-0.0058 0,0 -0.487265,-0.0061 -0.487265,-0.0061 0,0 -0.486025,-0.0064 -0.486025,-0.0064 0,0 -0.484732,-0.0067 -0.484732,-0.0067 0,0 -0.483388,-0.007 -0.483388,-0.007 0,0 -0.481992,-0.0073 -0.481992,-0.0073 0,0 -0.480545,-0.0076 -0.480545,-0.0076 0,0 -0.479047,-0.0079 -0.479047,-0.0079 0,0 -0.477495,-0.0082 -0.477495,-0.0082 0,0 -0.475893,-0.0085 -0.475893,-0.0085 0,0 -0.474238,-0.0088 -0.474238,-0.0088 0,0 -0.472533,-0.0091 -0.472533,-0.0091 0,0 -0.470776,-0.0094 -0.470776,-0.0094 0,0 -0.468966,-0.0097 -0.468966,-0.0097 0,0 -0.467105,-0.01 -0.467105,-0.01 0,0 -0.465192,-0.01028 -0.465192,-0.01028 0,0 -0.463228,-0.01058 -0.463228,-0.01058 0,0 -0.461212,-0.01087 -0.461212,-0.01087 0,0 -0.459144,-0.01117 -0.459144,-0.01117 0,0 -0.457025,-0.01147 -0.457025,-0.01147 0,0 -0.454853,-0.01176 -0.454853,-0.01176 0,0 -0.452631,-0.01206 -0.452631,-0.01206 0,0 -0.450356,-0.01236 -0.450356,-0.01236 0,0 -0.44803,-0.01265 -0.44803,-0.01265 0,0 -0.445652,-0.01295 -0.445652,-0.01295 0,0 -0.443222,-0.01325 -0.443222,-0.01325 0,0 -0.440741,-0.01355 -0.440741,-0.01355 0,0 -0.438208,-0.01384 -0.438208,-0.01384 0,0 -0.435623,-0.01414 -0.435623,-0.01414 0,0 -0.432986,-0.01444 -0.432986,-0.01444 0,0 -0.430298,-0.01474 -0.430298,-0.01474 0,0 -0.427559,-0.01503 -0.427559,-0.01503 0,0 -0.424767,-0.01533 -0.424767,-0.01533 0,0 -0.421923,-0.01563 -0.421923,-0.01563 0,0 -0.419029,-0.01593 -0.419029,-0.01593 0,0 -0.416082,-0.01622 -0.416082,-0.01622 0,0 -0.413083,-0.01652 -0.413083,-0.01652 0,0 -0.410034,-0.01682 -0.410034,-0.01682 0,0 -0.406931,-0.01712 -0.406931,-0.01712 0,0 -0.403778,-0.01742 -0.403778,-0.01742 0,0 -0.400573,-0.01772 -0.400573,-0.01772 0,0 -0.397316,-0.01802 -0.397316,-0.01802 0,0 -0.394008,-0.01831 -0.394008,-0.01831 0,0 -0.390647,-0.01861 -0.390647,-0.01861 0,0 -0.387235,-0.01891 -0.387235,-0.01891 0,0 -0.383771,-0.01921 -0.383771,-0.01921 0,0 -0.380257,-0.01951 -0.380257,-0.01951 0,0 -0.376688,-0.01981 -0.376688,-0.01981 0,0 -0.373071,-0.02011 -0.373071,-0.02011 0,0 -0.369399,-0.02041 -0.369399,-0.02041 0,0 -0.365678,-0.02071 -0.365678,-0.02071 0,0 -0.361903,-0.02101 -0.361903,-0.02101 0,0 -0.358078,-0.0213 -0.358078,-0.0213 0,0 -0.354201,-0.0216 -0.354201,-0.0216 0,0 -0.350271,-0.0219 -0.350271,-0.0219 0,0 -0.346291,-0.0222 -0.346291,-0.0222 0,0 -0.342255,-0.0225 -0.342255,-0.0225 0,0 -0.33818,-0.0228 -0.33818,-0.0228 0,0 -0.33404,-0.0231 -0.33404,-0.0231 0,0 -0.32985,-0.0234 -0.32985,-0.0234 0,0 -0.32561,-0.0237 -0.32561,-0.0237 0,0 -0.32132,-0.024 -0.32132,-0.024 0,0 -0.31698,-0.0243 -0.31698,-0.0243 0,0 -0.31258,-0.0246 -0.31258,-0.0246 0,0 -0.30814,-0.0249 -0.30814,-0.0249 0,0 -0.30364,-0.0252 -0.30364,-0.0252 0,0 -0.29909,-0.02551 -0.29909,-0.02551 0,0 -0.29449,-0.02581 -0.29449,-0.02581 0,0 -0.28984,-0.02611 -0.28984,-0.02611 0,0 -0.28513,-0.02641 -0.28513,-0.02641 0,0 -0.28038,-0.02671 -0.28038,-0.02671 0,0 -0.27557,-0.02701 -0.27557,-0.02701 0,0 -0.2707,-0.02731 -0.2707,-0.02731 0,0 -0.2658,-0.02761 -0.2658,-0.02761 0,0 -0.26084,-0.02791 -0.26084,-0.02791 0,0 -0.25582,-0.02822 -0.25582,-0.02822 0,0 -0.25075,-0.02852 -0.25075,-0.02852 0,0 -0.24563,-0.02882 -0.24563,-0.02882 0,0 -0.24047,-0.02912 -0.24047,-0.02912 0,0 -0.23524,-0.02942 -0.23524,-0.02942 0,0 -0.22997,-0.02972 -0.22997,-0.02972 0,0 -0.22465,-0.03003 -0.22465,-0.03003 0,0 -0.21927,-0.03033 -0.21927,-0.03033 0,0 -0.21384,-0.03063 -0.21384,-0.03063 0,0 -0.20836,-0.03093 -0.20836,-0.03093 0,0 -0.20283,-0.03124 -0.20283,-0.03124 0,0 -0.19724,-0.03154 -0.19724,-0.03154 0,0 -0.19161,-0.03184 -0.19161,-0.03184 0,0 -0.18592,-0.03214 -0.18592,-0.03214 0,0 -0.18019,-0.03244 -0.18019,-0.03244 0,0 -0.17439,-0.03275 -0.17439,-0.03275 0,0 -0.16856,-0.03305 -0.16856,-0.03305 0,0 -0.16265,-0.03335 -0.16265,-0.03335 0,0 -0.15672,-0.03366 -0.15672,-0.03366 0,0 -0.15071,-0.03396 -0.15071,-0.03396 0,0 -0.14467,-0.03426 -0.14467,-0.03426 0,0 -0.13857,-0.03457 -0.13857,-0.03457 0,0 -0.13241,-0.03487 -0.13241,-0.03487 0,0 -0.12622,-0.03517 -0.12622,-0.03517 0,0 -0.11995,-0.03548 -0.11995,-0.03548 0,0 -0.11365,-0.03578 -0.11365,-0.03578 0,0 -0.10729,-0.03608 -0.10729,-0.03608 0,0 -0.10088,-0.03639 -0.10088,-0.03639 0,0 -0.0944,-0.03669 -0.0944,-0.03669 0,0 -0.0879,-0.037 -0.0879,-0.037 0,0 -0.0813,-0.0373 -0.0813,-0.0373 0,0 -0.08,-0.04012 -0.08,-0.04012 0,0 -0.0839,-0.04543 -0.0839,-0.04543 0,0 -0.0877,-0.0507 -0.0877,-0.0507 0,0 -0.0915,-0.05593 -0.0915,-0.05593 0,0 -0.0953,-0.06112 -0.0953,-0.06112 0,0 -0.099,-0.06627 -0.099,-0.06627 0,0 -0.10276,-0.07138 -0.10276,-0.07138 0,0 -0.10644,-0.07645 -0.10644,-0.07645 0,0 -0.11009,-0.08147 -0.11009,-0.08147 0,0 -0.1137,-0.08646 -0.1137,-0.08646 0,0 -0.11729,-0.09141 -0.11729,-0.09141 0,0 -0.12085,-0.09632 -0.12085,-0.09632 0,0 -0.12436,-0.101182 -0.12436,-0.101182 0,0 -0.12786,-0.106008 -0.12786,-0.106008 0,0 -0.13131,-0.110794 -0.13131,-0.110794 0,0 -0.13473,-0.115539 -0.13473,-0.115539 0,0 -0.13812,-0.120244 -0.13812,-0.120244 0,0 -0.14149,-0.124908 -0.14149,-0.124908 0,0 -0.14481,-0.129533 -0.14481,-0.129533 0,0 -0.1481,-0.134116 -0.1481,-0.134116 0,0 -0.15137,-0.13866 -0.15137,-0.13866 0,0 -0.15459,-0.143163 -0.15459,-0.143163 0,0 -0.15779,-0.147626 -0.15779,-0.147626 0,0 -0.16096,-0.152048 -0.16096,-0.152048 0,0 -0.16409,-0.15643 -0.16409,-0.15643 0,0 -0.16719,-0.160772 -0.16719,-0.160772 0,0 -0.17026,-0.165073 -0.17026,-0.165073 0,0 -0.1733,-0.169334 -0.1733,-0.169334 0,0 -0.17629,-0.173554 -0.17629,-0.173554 0,0 -0.17927,-0.177735 -0.17927,-0.177735 0,0 -0.18221,-0.181874 -0.18221,-0.181874 0,0 -0.18511,-0.185973 -0.18511,-0.185973 0,0 -0.18799,-0.190033 -0.18799,-0.190033 0,0 -0.19083,-0.194051 -0.19083,-0.194051 0,0 -0.19364,-0.19803 -0.19364,-0.19803 0,0 -0.19642,-0.201967 -0.19642,-0.201967 0,0 -0.19916,-0.205865 -0.19916,-0.205865 0,0 -0.20187,-0.209722 -0.20187,-0.209722 0,0 -0.20455,-0.213539 -0.20455,-0.213539 0,0 -0.2072,-0.217316 -0.2072,-0.217316 0,0 -0.20982,-0.221051 -0.20982,-0.221051 0,0 -0.2124,-0.224747 -0.2124,-0.224747 0,0 -0.21495,-0.228402 -0.21495,-0.228402 0,0 -0.21747,-0.232017 -0.21747,-0.232017 0,0 -0.21995,-0.235592 -0.21995,-0.235592 0,0 -0.22241,-0.239126 -0.22241,-0.239126 0,0 -0.22483,-0.24262 -0.22483,-0.24262 0,0 -0.22722,-0.246073 -0.22722,-0.246073 0,0 -0.22958,-0.249487 -0.22958,-0.249487 0,0 -0.2319,-0.252859 -0.2319,-0.252859 0,0 -0.23419,-0.256191 -0.23419,-0.256191 0,0 -0.23645,-0.259483 -0.23645,-0.259483 0,0 -0.23868,-0.262735 -0.23868,-0.262735 0,0 -0.24088,-0.265946 -0.24088,-0.265946 0,0 -0.24303,-0.269117 -0.24303,-0.269117 0,0 -0.24517,-0.272247 -0.24517,-0.272247 0,0 -0.24727,-0.275338 -0.24727,-0.275338 0,0 -0.24933,-0.278387 -0.24933,-0.278387 0,0 -0.25137,-0.281397 -0.25137,-0.281397 0,0 -0.25337,-0.284365 -0.25337,-0.284365 0,0 -0.25533,-0.287295 -0.25533,-0.287295 0,0 -0.25728,-0.290182 -0.25728,-0.290182 0,0 -0.25917,-0.29303 -0.25917,-0.29303 0,0 -0.26105,-0.295838 -0.26105,-0.295838 0,0 -0.26289,-0.298605 -0.26289,-0.298605 0,0 -0.2647,-0.301332 -0.2647,-0.301332 0,0 -0.26647,-0.304018 -0.26647,-0.304018 0,0 -0.26821,-0.306664 -0.26821,-0.306664 0,0 -0.26993,-0.30927 -0.26993,-0.30927 0,0 -0.2716,-0.311835 -0.2716,-0.311835 0,0 -0.27325,-0.31436 -0.27325,-0.31436 0,0 -0.27486,-0.316844 -0.27486,-0.316844 0,0 -0.27644,-0.319289 -0.27644,-0.319289 0,0 -0.27799,-0.321692 -0.27799,-0.321692 0,0 -0.27951,-0.324056 -0.27951,-0.324056 0,0 -0.28099,-0.326379 -0.28099,-0.326379 0,0 -0.28244,-0.328662 -0.28244,-0.328662 0,0 -0.28387,-0.330903 -0.28387,-0.330903 0,0 -0.28525,-0.333106 -0.28525,-0.333106 0,0 -0.2866,-0.335268 -0.2866,-0.335268 0,0 -0.28793,-0.337388 -0.28793,-0.337388 0,0 -0.28921,-0.33947 -0.28921,-0.33947 0,0 -0.29048,-0.341509 -0.29048,-0.341509 0,0 -0.2917,-0.34351 -0.2917,-0.34351 0,0 -0.29289,-0.34547 -0.29289,-0.34547 0,0 -0.29405,-0.347389 -0.29405,-0.347389 0,0 -0.29519,-0.349268 -0.29519,-0.349268 0,0 -0.29628,-0.351106 -0.29628,-0.351106 0,0 -0.29734,-0.352905 -0.29734,-0.352905 0,0 -0.29837,-0.354662 -0.29837,-0.354662 0,0 -0.29937,-0.356381 -0.29937,-0.356381 0,0 -0.30034,-0.358057 -0.30034,-0.358057 0,0 -0.30128,-0.359694 -0.30128,-0.359694 0,0 -0.30217,-0.36129 -0.30217,-0.36129 0,0 -0.30305,-0.362846 -0.30305,-0.362846 0,0 -0.30388,-0.364362 -0.30388,-0.364362 0,0 -0.30469,-0.365837 -0.30469,-0.365837 0,0 -0.30547,-0.367272 -0.30547,-0.367272 0,0 -0.3062,-0.368667 -0.3062,-0.368667 0,0 -0.30691,-0.37002 -0.30691,-0.37002 0,0 -0.30759,-0.371335 -0.30759,-0.371335 0,0 -0.30823,-0.372607 -0.30823,-0.372607 0,0 -0.30884,-0.373841 -0.30884,-0.373841 0,0 -0.30942,-0.375034 -0.30942,-0.375034 0,0 -0.30996,-0.376186 -0.30996,-0.376186 0,0 -0.31049,-0.377297 -0.31049,-0.377297 0,0 -0.31096,-0.378369 -0.31096,-0.378369 0,0 -0.31141,-0.379401 -0.31141,-0.379401 0,0 -0.31183,-0.380391 -0.31183,-0.380391 0,0 -0.31222,-0.381342 -0.31222,-0.381342 0,0 -0.31256,-0.382251 -0.31256,-0.382251 0,0 -0.31289,-0.383122 -0.31289,-0.383122 0,0 -0.31318,-0.38395 -0.31318,-0.38395 0,0 -0.31343,-0.38474 -0.31343,-0.38474 0,0 -0.31366,-0.385488 -0.31366,-0.385488 0,0 -0.31384,-0.386196 -0.31384,-0.386196 0,0 -0.31401,-0.386865 -0.31401,-0.386865 0,0 -0.31413,-0.387491 -0.31413,-0.387491 0,0 -0.31422,-0.388079 -0.31422,-0.388079 0,0 -0.31429,-0.388625 -0.31429,-0.388625 0,0 -0.31432,-0.389132 -0.31432,-0.389132 0,0 -0.31431,-0.389598 -0.31431,-0.389598 0,0 -0.31428,-0.390023 -0.31428,-0.390023 0,0 -0.31421,-0.390409 -0.31421,-0.390409 0,0 -0.31411,-0.390753 -0.31411,-0.390753 0,0 -0.31398,-0.391058 -0.31398,-0.391058 0,0 -0.31381,-0.391322 -0.31381,-0.391322 0,0 -0.31362,-0.391546 -0.31362,-0.391546 0,0 -0.31339,-0.391729 -0.31339,-0.391729 0,0 -0.31312,-0.391872 -0.31312,-0.391872 0,0 -0.31284,-0.391975 -0.31284,-0.391975 0,0 -0.3125,-0.392037 -0.3125,-0.392037 0,0 -0.31215,-0.392059 -0.31215,-0.392059 0,0 -0.31176,-0.39204 -0.31176,-0.39204 0,0 -0.31133,-0.391982 -0.31133,-0.391982 0,0 -0.31088,-0.391882 -0.31088,-0.391882 0,0 -0.31039,-0.391743 -0.31039,-0.391743 0,0 -0.30987,-0.391563 -0.30987,-0.391563 0,0 -0.30932,-0.391342 -0.30932,-0.391342 0,0 -0.30873,-0.391082 -0.30873,-0.391082 0,0 -0.30812,-0.39078 -0.30812,-0.39078 0,0 -0.30746,-0.39044 -0.30746,-0.39044 0,0 -0.30679,-0.390057 -0.30679,-0.390057 0,0 -0.30607,-0.389635 -0.30607,-0.389635 0,0 -0.30532,-0.389173 -0.30532,-0.389173 0,0 -0.30455,-0.388669 -0.30455,-0.388669 0,0 -0.30373,-0.388127 -0.30373,-0.388127 0,0 -0.30289,-0.387542 -0.30289,-0.387542 0,0 -0.30202,-0.386919 -0.30202,-0.386919 0,0 -0.30111,-0.386254 -0.30111,-0.386254 0,0 -0.30016,-0.385549 -0.30016,-0.385549 0,0 -0.2992,-0.384805 -0.2992,-0.384805 0,0 -0.29819,-0.384018 -0.29819,-0.384018 0,0 -0.29715,-0.383193 -0.29715,-0.383193 0,0 -0.29608,-0.382327 -0.29608,-0.382327 0,0 -0.29498,-0.381419 -0.29498,-0.381419 0,0 -0.29385,-0.380473 -0.29385,-0.380473 0,0 -0.29268,-0.379486 -0.29268,-0.379486 0,0 -0.29148,-0.378457 -0.29148,-0.378457 0,0 -0.29025,-0.37739 -0.29025,-0.37739 0,0 -0.28898,-0.376281 -0.28898,-0.376281 0,0 -0.28769,-0.375132 -0.28769,-0.375132 0,0 -0.28636,-0.373943 -0.28636,-0.373943 0,0 -0.28501,-0.372713 -0.28501,-0.372713 0,0 -0.2836,-0.371443 -0.2836,-0.371443 0,0 -0.28219,-0.370133 -0.28219,-0.370133 0,0 -0.28072,-0.368782 -0.28072,-0.368782 0,0 -0.27924,-0.367391 -0.27924,-0.367391 0,0 -0.27771,-0.36596 -0.27771,-0.36596 0,0 -0.27616,-0.364487 -0.27616,-0.364487 0,0 -0.27457,-0.362976 -0.27457,-0.362976 0,0 -0.27295,-0.361423 -0.27295,-0.361423 0,0 -0.2713,-0.35983 -0.2713,-0.35983 0,0 -0.26962,-0.358196 -0.26962,-0.358196 0,0 -0.2679,-0.356523 -0.2679,-0.356523 0,0 -0.26615,-0.354809 -0.26615,-0.354809 0,0 -0.26437,-0.353054 -0.26437,-0.353054 0,0 -0.26256,-0.35126 -0.26256,-0.35126 0,0 -0.26071,-0.349424 -0.26071,-0.349424 0,0 -0.25884,-0.347549 -0.25884,-0.347549 0,0 -0.25692,-0.345633 -0.25692,-0.345633 0,0 -0.25499,-0.343676 -0.25499,-0.343676 0,0 -0.253,-0.34168 -0.253,-0.34168 0,0 -0.251,-0.339643 -0.251,-0.339643 0,0 -0.24897,-0.337565 -0.24897,-0.337565 0,0 -0.24688,-0.335448 -0.24688,-0.335448 0,0 -0.24479,-0.33329 -0.24479,-0.33329 0,0 -0.24265,-0.33109 -0.24265,-0.33109 0,0 -0.24048,-0.328852 -0.24048,-0.328852 0,0 -0.23828,-0.326573 -0.23828,-0.326573 0,0 -0.23604,-0.324253 -0.23604,-0.324253 0,0 -0.23378,-0.321893 -0.23378,-0.321893 0,0 -0.23149,-0.319493 -0.23149,-0.319493 0,0 -0.22915,-0.317052 -0.22915,-0.317052 0,0 -0.22679,-0.314571 -0.22679,-0.314571 0,0 -0.22439,-0.312049 -0.22439,-0.312049 0,0 -0.22197,-0.309487 -0.22197,-0.309487 0,0 -0.2195,-0.306886 -0.2195,-0.306886 0,0 -0.21702,-0.304242 -0.21702,-0.304242 0,0 -0.21449,-0.30156 -0.21449,-0.30156 0,0 -0.21193,-0.298836 -0.21193,-0.298836 0,0 -0.20935,-0.296072 -0.20935,-0.296072 0,0 -0.20672,-0.293269 -0.20672,-0.293269 0,0 -0.20407,-0.290424 -0.20407,-0.290424 0,0 -0.20139,-0.287539 -0.20139,-0.287539 0,0 -0.19866,-0.284613 -0.19866,-0.284613 0,0 -0.19592,-0.281649 -0.19592,-0.281649 0,0 -0.19313,-0.278642 -0.19313,-0.278642 0,0 -0.19032,-0.275596 -0.19032,-0.275596 0,0 -0.18747,-0.272509 -0.18747,-0.272509 0,0 -0.18459,-0.269382 -0.18459,-0.269382 0,0 -0.18168,-0.266215 -0.18168,-0.266215 0,0 -0.17873,-0.263007 -0.17873,-0.263007 0,0 -0.17576,-0.259759 -0.17576,-0.259759 0,0 -0.17274,-0.25647 -0.17274,-0.25647 0,0 -0.16971,-0.253141 -0.16971,-0.253141 0,0 -0.16663,-0.249772 -0.16663,-0.249772 0,0 -0.16353,-0.246363 -0.16353,-0.246363 0,0 -0.16038,-0.242912 -0.16038,-0.242912 0,0 -0.15722,-0.239422 -0.15722,-0.239422 0,0 -0.15401,-0.235891 -0.15401,-0.235891 0,0 -0.15078,-0.23232 -0.15078,-0.23232 0,0 -0.14751,-0.228708 -0.14751,-0.228708 0,0 -0.14421,-0.225056 -0.14421,-0.225056 0,0 -0.14088,-0.221365 -0.14088,-0.221365 0,0 -0.13751,-0.217631 -0.13751,-0.217631 0,0 -0.13411,-0.213859 -0.13411,-0.213859 0,0 -0.13069,-0.210045 -0.13069,-0.210045 0,0 -0.12722,-0.206191 -0.12722,-0.206191 0,0 -0.12373,-0.202298 -0.12373,-0.202298 0,0 -0.12021,-0.198362 -0.12021,-0.198362 0,0 -0.11664,-0.194388 -0.11664,-0.194388 0,0 -0.11306,-0.190373 -0.11306,-0.190373 0,0 -0.10943,-0.186317 -0.10943,-0.186317 0,0 -0.10577,-0.182221 -0.10577,-0.182221 0,0 -0.10209,-0.178085 -0.10209,-0.178085 0,0 -0.0984,-0.173908 -0.0984,-0.173908 0,0 -0.0946,-0.169691 -0.0946,-0.169691 0,0 -0.0908,-0.165433 -0.0908,-0.165433 0,0 -0.087,-0.161136 -0.087,-0.161136 0,0 -0.0832,-0.156797 -0.0832,-0.156797 0,0 -0.0793,-0.152419 -0.0793,-0.152419 0,0 -0.0754,-0.148 -0.0754,-0.148 0,0 -0.0714,-0.143541 -0.0714,-0.143541 0,0 -0.0674,-0.139041 -0.0674,-0.139041 0,0 -0.0634,-0.1345 -0.0634,-0.1345 0,0 -0.0594,-0.129921 -0.0594,-0.129921 0,0 -0.0553,-0.125299 -0.0553,-0.125299 0,0 -0.0512,-0.120639 -0.0512,-0.120639 0,0 -0.0471,-0.115937 -0.0471,-0.115937 0,0 -0.0429,-0.111194 -0.0429,-0.111194 0,0 -0.0387,-0.106413 -0.0387,-0.106413 0,0 -0.0344,-0.10159 -0.0344,-0.10159 0,0 -0.0302,-0.09673 -0.0302,-0.09673 0,0 -0.0259,-0.09182 -0.0259,-0.09182 0,0 -0.0215,-0.08688 -0.0215,-0.08688 0,0 -0.0185,-0.08759 -0.0185,-0.08759 0,0 -0.0167,-0.09394 -0.0167,-0.09394 0,0 -0.015,-0.100245 -0.015,-0.100245 0,0 -0.0133,-0.106497 -0.0133,-0.106497 0,0 -0.0115,-0.1127 -0.0115,-0.1127 0,0 -0.01,-0.118851 -0.01,-0.118851 0,0 -0.008,-0.124953 -0.008,-0.124953 0,0 -0.006,-0.131002 -0.006,-0.131002 0,0 -0.005,-0.137003 -0.005,-0.137003 0,0 -0.003,-0.142952 -0.003,-0.142952 0,0 -0.002,-0.14885 -0.002,-0.14885 0,0 1.3e-4,-0.1547 1.3e-4,-0.1547 0,0 0.002,-0.160496 0.002,-0.160496 0,0 0.003,-0.1662445 0.003,-0.1662445 0,0 0.005,-0.1719407 0.005,-0.1719407 0,0 0.007,-0.1775869 0.007,-0.1775869 0,0 0.008,-0.1831825 0.008,-0.1831825 0,0 0.01,-0.1887275 0.01,-0.1887275 0,0 0.0112,-0.194222 0.0112,-0.194222 0,0 0.0128,-0.199666 0.0128,-0.199666 0,0 0.0143,-0.2050595 0.0143,-0.2050595 0,0 0.0158,-0.2104023 0.0158,-0.2104023 0,0 0.0173,-0.2156946 0.0173,-0.2156946 0,0 0.0188,-0.2209365 0.0188,-0.2209365 0,0 0.0203,-0.2261278 0.0203,-0.2261278 0,0 0.0218,-0.2312684 0.0218,-0.2312684 0,0 0.0232,-0.2363587 0.0232,-0.2363587 0,0 0.0247,-0.2413983 0.0247,-0.2413983 0,0 0.0261,-0.2463874 0.0261,-0.2463874 0,0 0.0276,-0.251326 0.0276,-0.251326 0,0 0.029,-0.256214 0.029,-0.256214 0,0 0.0304,-0.2610514 0.0304,-0.2610514 0,0 0.0318,-0.2658385 0.0318,-0.2658385 0,0 0.0331,-0.2705748 0.0331,-0.2705748 0,0 0.0345,-0.2752606 0.0345,-0.2752606 0,0 0.0359,-0.279896 0.0359,-0.279896 0,0 0.0372,-0.2844808 0.0372,-0.2844808 0,0 0.0385,-0.289015 0.0385,-0.289015 0,0 0.0399,-0.2934987 0.0399,-0.2934987 0,0 0.0412,-0.2979319 0.0412,-0.2979319 0,0 0.0425,-0.3023144 0.0425,-0.3023144 0,0 0.0438,-0.3066466 0.0438,-0.3066466 0,0 0.0451,-0.3109281 0.0451,-0.3109281 0,0 0.0463,-0.315159 0.0463,-0.315159 0,0 0.0476,-0.3193396 0.0476,-0.3193396 0,0 0.0488,-0.3234694 0.0488,-0.3234694 0,0 0.05,-0.3275488 0.05,-0.3275488 0,0 0.0513,-0.3315776 0.0513,-0.3315776 0,0 0.0525,-0.33555596 0.0525,-0.33555596 0,0 0.0537,-0.33948367 0.0537,-0.33948367 0,0 0.0548,-0.34336088 0.0548,-0.34336088 0,0 0.056,-0.34718754 0.056,-0.34718754 0,0 0.0572,-0.35096367 0.0572,-0.35096367 0,0 0.0583,-0.35468926 0.0583,-0.35468926 0,0 0.0595,-0.35836432 0.0595,-0.35836432 0,0 0.0606,-0.3619888 0.0606,-0.3619888 0,0 0.0617,-0.3655627 0.0617,-0.3655627 0,0 0.0628,-0.3690862 0.0628,-0.3690862 0,0 0.0639,-0.3725591 0.0639,-0.3725591 0,0 0.065,-0.3759814 0.065,-0.3759814 0,0 0.066,-0.3793532 0.066,-0.3793532 0,0 0.0671,-0.3826745 0.0671,-0.3826745 0,0 0.0682,-0.3859451 0.0682,-0.3859451 0,0 0.0692,-0.3891654 0.0692,-0.3891654 0,0 0.0702,-0.392335 0.0702,-0.392335 0,0 0.0712,-0.3954541 0.0712,-0.3954541 0,0 0.0722,-0.3985226 0.0722,-0.3985226 0,0 0.0732,-0.4015407 0.0732,-0.4015407 0,0 0.0742,-0.4045081 0.0742,-0.4045081 0,0 0.0752,-0.4074251 0.0752,-0.4074251 0,0 0.0761,-0.4102914 0.0761,-0.4102914 0,0 0.0771,-0.4131073 0.0771,-0.4131073 0,0 0.078,-0.4158726 0.078,-0.4158726 0,0 0.0789,-0.4185874 0.0789,-0.4185874 0,0 0.0798,-0.4212516 0.0798,-0.4212516 0,0 0.0807,-0.4238653 0.0807,-0.4238653 0,0 0.0816,-0.4264284 0.0816,-0.4264284 0,0 0.0825,-0.4289409 0.0825,-0.4289409 0,0 0.0833,-0.431403 0.0833,-0.431403 0,0 0.0842,-0.433815 0.0842,-0.433815 0,0 0.085,-0.436176 0.085,-0.436176 0,0 0.0858,-0.438486 0.0858,-0.438486 0,0 0.0867,-0.440746 0.0867,-0.440746 0,0 0.0875,-0.442955 0.0875,-0.442955 0,0 0.0883,-0.445114 0.0883,-0.445114 0,0 0.089,-0.447223 0.089,-0.447223 0,0 0.0898,-0.44928 0.0898,-0.44928 0,0 0.0906,-0.451287 0.0906,-0.451287 0,0 0.0913,-0.453244 0.0913,-0.453244 0,0 0.0921,-0.45515 0.0921,-0.45515 0,0 0.0928,-0.457006 0.0928,-0.457006 0,0 0.0935,-0.458811 0.0935,-0.458811 0,0 0.0942,-0.460565 0.0942,-0.460565 0,0 0.0949,-0.462269 0.0949,-0.462269 0,0 0.0956,-0.463923 0.0956,-0.463923 0,0 0.0962,-0.465525 0.0962,-0.465525 0,0 0.0969,-0.467078 0.0969,-0.467078 0,0 0.0975,-0.46858 0.0975,-0.46858 0,0 0.0981,-0.47003 0.0981,-0.47003 0,0 0.0988,-0.471432 0.0988,-0.471432 0,0 0.0994,-0.472782 0.0994,-0.472782 0,0 0.1,-0.474081 0.1,-0.474081 0,0 0.10056,-0.475331 0.10056,-0.475331 0,0 0.10113,-0.476529 0.10113,-0.476529 0,0 0.10169,-0.477677 0.10169,-0.477677 0,0 0.10224,-0.478774 0.10224,-0.478774 0,0 0.10278,-0.479821 0.10278,-0.479821 0,0 0.10331,-0.480818 0.10331,-0.480818 0,0 0.10383,-0.481764 0.10383,-0.481764 0,0 0.10433,-0.482659 0.10433,-0.482659 0,0 0.10482,-0.483503 0.10482,-0.483503 0,0 0.10531,-0.484298 0.10531,-0.484298 0,0 0.10577,-0.485042 0.10577,-0.485042 0,0 0.10623,-0.485734 0.10623,-0.485734 0,0 0.10669,-0.486378 0.10669,-0.486378 0,0 0.10711,-0.486969 0.10711,-0.486969 0,0 0.10754,-0.487511 0.10754,-0.487511 0,0 0.10796,-0.488002 0.10796,-0.488002 0,0 0.10835,-0.488442 0.10835,-0.488442 0,0 0.10874,-0.488832 0.10874,-0.488832 0,0 0.10913,-0.489172 0.10913,-0.489172 0,0 0.10948,-0.48946 0.10948,-0.48946 0,0 0.10985,-0.489699 0.10985,-0.489699 0,0 0.11018,-0.489886 0.11018,-0.489886 0,0 0.11052,-0.490024 0.11052,-0.490024 0,0 0.11084,-0.49011 0.11084,-0.49011 0,0 0.11115,-0.490146 0.11115,-0.490146 0,0 0.11144,-0.490132 0.11144,-0.490132 0,0 0.11173,-0.490067 0.11173,-0.490067 0,0 0.11201,-0.489951 0.11201,-0.489951 0,0 0.11227,-0.489785 0.11227,-0.489785 0,0 0.11251,-0.489569 0.11251,-0.489569 0,0 0.11276,-0.489302 0.11276,-0.489302 0,0 0.11299,-0.488984 0.11299,-0.488984 0,0 0.1132,-0.488615 0.1132,-0.488615 0,0 0.11341,-0.488197 0.11341,-0.488197 0,0 0.1136,-0.487728 0.1136,-0.487728 0,0 0.11379,-0.487208 0.11379,-0.487208 0,0 0.11395,-0.486637 0.11395,-0.486637 0,0 0.11412,-0.486016 0.11412,-0.486016 0,0 0.11426,-0.485345 0.11426,-0.485345 0,0 0.1144,-0.484623 0.1144,-0.484623 0,0 0.11452,-0.483851 0.11452,-0.483851 0,0 0.11464,-0.483027 0.11464,-0.483027 0,0 0.11473,-0.482154 0.11473,-0.482154 0,0 0.11483,-0.48123 0.11483,-0.48123 0,0 0.11491,-0.480255 0.11491,-0.480255 0,0 0.11497,-0.479229 0.11497,-0.479229 0,0 0.11503,-0.478154 0.11503,-0.478154 0,0 0.11507,-0.477027 0.11507,-0.477027 0,0 0.1151,-0.475851 0.1151,-0.475851 0,0 0.11513,-0.474623 0.11513,-0.474623 0,0 0.11513,-0.473346 0.11513,-0.473346 0,0 0.11513,-0.472016 0.11513,-0.472016 0,0 0.11512,-0.470638 0.11512,-0.470638 0,0 0.1151,-0.469208 0.1151,-0.469208 0,0 0.11505,-0.467728 0.11505,-0.467728 0,0 0.11501,-0.466198 0.11501,-0.466198 0,0 0.11495,-0.464616 0.11495,-0.464616 0,0 0.11488,-0.462984 0.11488,-0.462984 0,0 0.11479,-0.461303 0.11479,-0.461303 0,0 0.1147,-0.459569 0.1147,-0.459569 0,0 0.1146,-0.457786 0.1146,-0.457786 0,0 0.11447,-0.455952 0.11447,-0.455952 0,0 0.11435,-0.454068 0.11435,-0.454068 0,0 0.11421,-0.452132 0.11421,-0.452132 0,0 0.11405,-0.450148 0.11405,-0.450148 0,0 0.1139,-0.448111 0.1139,-0.448111 0,0 0.11371,-0.446024 0.11371,-0.446024 0,0 0.11354,-0.443887 0.11354,-0.443887 0,0 0.11333,-0.4417 0.11333,-0.4417 0,0 0.11312,-0.439461 0.11312,-0.439461 0,0 0.1129,-0.437173 0.1129,-0.437173 0,0 0.11267,-0.434833 0.11267,-0.434833 0,0 0.11243,-0.432444 0.11243,-0.432444 0,0 0.11217,-0.430003 0.11217,-0.430003 0,0 0.1119,-0.427512 0.1119,-0.427512 0,0 0.11163,-0.424971 0.11163,-0.424971 0,0 0.11133,-0.422379 0.11133,-0.422379 0,0 0.11103,-0.419736 0.11103,-0.419736 0,0 0.11072,-0.417043 0.11072,-0.417043 0,0 0.1104,-0.414299 0.1104,-0.414299 0,0 0.11006,-0.411505 0.11006,-0.411505 0,0 0.10971,-0.408661 0.10971,-0.408661 0,0 0.10935,-0.405765 0.10935,-0.405765 0,0 0.10898,-0.40282 0.10898,-0.40282 0,0 0.1086,-0.399823 0.1086,-0.399823 0,0 0.1082,-0.396776 0.1082,-0.396776 0,0 0.1078,-0.393679 0.1078,-0.393679 0,0 0.10739,-0.390531 0.10739,-0.390531 0,0 0.10695,-0.387332 0.10695,-0.387332 0,0 0.10651,-0.384083 0.10651,-0.384083 0,0 0.10607,-0.380784 0.10607,-0.380784 0,0 0.1056,-0.377434 0.1056,-0.377434 0,0 0.10512,-0.374033 0.10512,-0.374033 0,0 0.10464,-0.370581 0.10464,-0.370581 0,0 0.10414,-0.36708 0.10414,-0.36708 0,0 0.10364,-0.363528 0.10364,-0.363528 0,0 0.10311,-0.359925 0.10311,-0.359925 0,0 0.10258,-0.356271 0.10258,-0.356271 0,0 0.10204,-0.352568 0.10204,-0.352568 0,0 0.10148,-0.348813 0.10148,-0.348813 0,0 0.10091,-0.345008 0.10091,-0.345008 0,0 0.10034,-0.341153 0.10034,-0.341153 0,0 0.0998,-0.337246 0.0998,-0.337246 0,0 0.0991,-0.33329 0.0991,-0.33329 0,0 0.0985,-0.329283 0.0985,-0.329283 0,0 0.0979,-0.325225 0.0979,-0.325225 0,0 0.0973,-0.321117 0.0973,-0.321117 0,0 0.0966,-0.316958 0.0966,-0.316958 0,0 0.096,-0.312749 0.096,-0.312749 0,0 0.0953,-0.308489 0.0953,-0.308489 0,0 0.0946,-0.304178 0.0946,-0.304178 0,0 0.0939,-0.299818 0.0939,-0.299818 0,0 0.0932,-0.295406 0.0932,-0.295406 0,0 0.0925,-0.290944 0.0925,-0.290944 0,0 0.0918,-0.286431 0.0918,-0.286431 0,0 0.091,-0.281869 0.091,-0.281869 0,0 0.0903,-0.277255 0.0903,-0.277255 0,0 0.0895,-0.27259 0.0895,-0.27259 0,0 0.0888,-0.267876 0.0888,-0.267876 0,0 0.088,-0.26311 0.088,-0.26311 0,0 0.0872,-0.258295 0.0872,-0.258295 0,0 0.0864,-0.253429 0.0864,-0.253429 0,0 0.0855,-0.248511 0.0855,-0.248511 0,0 0.0847,-0.243544 0.0847,-0.243544 0,0 0.0839,-0.238526 0.0839,-0.238526 0,0 0.083,-0.233458 0.083,-0.233458 0,0 0.0821,-0.228338 0.0821,-0.228338 0,0 0.0813,-0.223169 0.0813,-0.223169 0,0 0.0804,-0.217949 0.0804,-0.217949 0,0 0.0795,-0.212678 0.0795,-0.212678 0,0 0.0786,-0.207357 0.0786,-0.207357 0,0 0.0776,-0.201986 0.0776,-0.201986 0,0 0.0767,-0.196562 0.0767,-0.196562 0,0 0.0758,-0.19109 0.0758,-0.19109 0,0 0.0748,-0.185567 0.0748,-0.185567 0,0 0.0738,-0.179993 0.0738,-0.179993 0,0 0.0728,-0.174368 0.0728,-0.174368 0,0 0.0719,-0.168693 0.0719,-0.168693 0,0 0.0709,-0.162968 0.0709,-0.162968 0,0 0.0698,-0.157192 0.0698,-0.157192 0,0 0.0688,-0.151365 0.0688,-0.151365 0,0 0.0678,-0.145488 0.0678,-0.145488 0,0 0.0667,-0.13956 0.0667,-0.13956 0,0 0.0657,-0.133582 0.0657,-0.133582 0,0 0.0646,-0.127553 0.0646,-0.127553 0,0 0.0635,-0.121474 0.0635,-0.121474 0,0 0.0624,-0.115344 0.0624,-0.115344 0,0 0.0613,-0.109163 0.0613,-0.109163 0,0 0.0602,-0.102933 0.0602,-0.102933 0,0 0.059,-0.09665 0.059,-0.09665 0,0 0.0579,-0.09032 0.0579,-0.09032 0,0 0.0567,-0.08394 0.0567,-0.08394 0,0 0.0556,-0.0775 0.0556,-0.0775 0,0 0.0544,-0.07102 0.0544,-0.07102 0,0 0.0568,-0.06907 0.0568,-0.06907 0,0 0.0629,-0.07166 0.0629,-0.07166 0,0 0.0688,-0.07423 0.0688,-0.07423 0,0 0.0748,-0.07678 0.0748,-0.07678 0,0 0.0807,-0.0793 0.0807,-0.0793 0,0 0.0865,-0.0818 0.0865,-0.0818 0,0 0.0923,-0.08429 0.0923,-0.08429 0,0 0.0981,-0.08674 0.0981,-0.08674 0,0 0.10377,-0.08918 0.10377,-0.08918 0,0 0.10943,-0.09159 0.10943,-0.09159 0,0 0.11503,-0.09398 0.11503,-0.09398 0,0 0.12061,-0.09635 0.12061,-0.09635 0,0 0.12612,-0.09869 0.12612,-0.09869 0,0 0.13159,-0.101017 0.13159,-0.101017 0,0 0.13701,-0.103318 0.13701,-0.103318 0,0 0.1424,-0.105595 0.1424,-0.105595 0,0 0.14772,-0.107851 0.14772,-0.107851 0,0 0.15302,-0.110084 0.15302,-0.110084 0,0 0.15825,-0.112294 0.15825,-0.112294 0,0 0.16344,-0.114482 0.16344,-0.114482 0,0 0.16859,-0.116648 0.16859,-0.116648 0,0 0.17369,-0.11879 0.17369,-0.11879 0,0 0.17875,-0.120911 0.17875,-0.120911 0,0 0.18375,-0.123009 0.18375,-0.123009 0,0 0.18871,-0.125084 0.18871,-0.125084 0,0 0.19362,-0.127138 0.19362,-0.127138 0,0 0.19849,-0.129168 0.19849,-0.129168 0,0 0.20331,-0.131175 0.20331,-0.131175 0,0 0.20809,-0.133161 0.20809,-0.133161 0,0 0.21282,-0.135125 0.21282,-0.135125 0,0 0.21749,-0.137064 0.21749,-0.137064 0,0 0.22213,-0.138983 0.22213,-0.138983 0,0 0.22672,-0.140878 0.22672,-0.140878 0,0 0.23127,-0.142751 0.23127,-0.142751 0,0 0.23575,-0.144602 0.23575,-0.144602 0,0 0.24021,-0.14643 0.24021,-0.14643 0,0 0.24461,-0.148235 0.24461,-0.148235 0,0 0.24897,-0.150018 0.24897,-0.150018 0,0 0.25327,-0.151779 0.25327,-0.151779 0,0 0.25754,-0.153516 0.25754,-0.153516 0,0 0.26176,-0.155233 0.26176,-0.155233 0,0 0.26593,-0.156925 0.26593,-0.156925 0,0 0.27005,-0.158596 0.27005,-0.158596 0,0 0.27413,-0.160244 0.27413,-0.160244 0,0 0.27816,-0.161869 0.27816,-0.161869 0,0 0.28214,-0.163473 0.28214,-0.163473 0,0 0.28608,-0.165053 0.28608,-0.165053 0,0 0.28997,-0.166611 0.28997,-0.166611 0,0 0.29382,-0.168147 0.29382,-0.168147 0,0 0.29762,-0.16966 0.29762,-0.16966 0,0 0.30137,-0.17115 0.30137,-0.17115 0,0 0.30508,-0.172619 0.30508,-0.172619 0,0 0.30873,-0.174064 0.30873,-0.174064 0,0 0.31235,-0.175487 0.31235,-0.175487 0,0 0.31591,-0.176888 0.31591,-0.176888 0,0 0.31944,-0.178266 0.31944,-0.178266 0,0 0.3229,-0.179622 0.3229,-0.179622 0,0 0.32634,-0.180954 0.32634,-0.180954 0,0 0.32971,-0.182266 0.32971,-0.182266 0,0 0.33305,-0.183553 0.33305,-0.183553 0,0 0.33634,-0.184819 0.33634,-0.184819 0,0 0.33958,-0.186063 0.33958,-0.186063 0,0 0.34277,-0.187282 0.34277,-0.187282 0,0 0.34592,-0.188482 0.34592,-0.188482 0,0 0.34902,-0.189656 0.34902,-0.189656 0,0 0.35208,-0.19081 0.35208,-0.19081 0,0 0.35509,-0.191941 0.35509,-0.191941 0,0 0.35804,-0.193049 0.35804,-0.193049 0,0 0.36097,-0.194134 0.36097,-0.194134 0,0 0.36383,-0.195198 0.36383,-0.195198 0,0 0.36666,-0.196238 0.36666,-0.196238 0,0 0.36943,-0.197256 0.36943,-0.197256 0,0 0.37217,-0.198253 0.37217,-0.198253 0,0 0.37484,-0.199225 0.37484,-0.199225 0,0 0.37749,-0.200176 0.37749,-0.200176 0,0 0.38007,-0.201105 0.38007,-0.201105 0,0 0.38262,-0.20201 0.38262,-0.20201 0,0 0.38512,-0.202893 0.38512,-0.202893 0,0 0.38757,-0.203754 0.38757,-0.203754 0,0 0.38997,-0.204592 0.38997,-0.204592 0,0 0.39233,-0.205409 0.39233,-0.205409 0,0 0.39464,-0.206201 0.39464,-0.206201 0,0 0.39691,-0.206972 0.39691,-0.206972 0,0 0.39913,-0.20772 0.39913,-0.20772 0,0 0.4013,-0.208446 0.4013,-0.208446 0,0 0.40342,-0.20915 0.40342,-0.20915 0,0 0.40551,-0.20983 0.40551,-0.20983 0,0 0.40753,-0.210488 0.40753,-0.210488 0,0 0.40953,-0.211125 0.40953,-0.211125 0,0 0.41146,-0.211737 0.41146,-0.211737 0,0 0.41336,-0.212328 0.41336,-0.212328 0,0 0.41521,-0.212897 0.41521,-0.212897 0,0 0.417,-0.213443 0.417,-0.213443 0,0 0.41876,-0.213965 0.41876,-0.213965 0,0 0.42047,-0.214467 0.42047,-0.214467 0,0 0.42213,-0.214945 0.42213,-0.214945 0,0 0.42375,-0.215401 0.42375,-0.215401 0,0 0.42531,-0.215834 0.42531,-0.215834 0,0 0.42684,-0.216245 0.42684,-0.216245 0,0 0.42831,-0.216633 0.42831,-0.216633 0,0 0.42974,-0.216999 0.42974,-0.216999 0,0 0.43112,-0.217342 0.43112,-0.217342 0,0 0.43246,-0.217664 0.43246,-0.217664 0,0 0.43374,-0.217961 0.43374,-0.217961 0,0 0.43499,-0.218238 0.43499,-0.218238 0,0 0.43619,-0.218491 0.43619,-0.218491 0,0 0.43734,-0.218722 0.43734,-0.218722 0,0 0.43844,-0.21893 0.43844,-0.21893 0,0 0.4395,-0.219116 0.4395,-0.219116 0,0 0.44051,-0.21928 0.44051,-0.21928 0,0 0.44147,-0.21942 0.44147,-0.21942 0,0 0.44239,-0.219539 0.44239,-0.219539 0,0 0.44327,-0.219635 0.44327,-0.219635 0,0 0.44409,-0.219708 0.44409,-0.219708 0,0 0.44486,-0.219759 0.44486,-0.219759 0,0 0.4456,-0.219788 0.4456,-0.219788 0,0 0.44629,-0.219793 0.44629,-0.219793 0,0 0.44692,-0.219777 0.44692,-0.219777 0,0 0.44752,-0.219738 0.44752,-0.219738 0,0 0.44806,-0.219676 0.44806,-0.219676 0,0 0.44856,-0.219593 0.44856,-0.219593 0,0 0.44901,-0.219485 0.44901,-0.219485 0,0 0.44943,-0.219357 0.44943,-0.219357 0,0 0.44978,-0.219205 0.44978,-0.219205 0,0 0.4501,-0.219032 0.4501,-0.219032 0,0 0.45036,-0.218836 0.45036,-0.218836 0,0 0.45058,-0.21861 0.45058,-0.21861 0,0 0.45076,-0.21838 0.45076,-0.21838 0,0 0.45089,-0.21811 0.45089,-0.21811 0,0 0.45097,-0.21782 0.45097,-0.21782 0,0 0.451,-0.21752 0.451,-0.21752 0,0 0.45099,-0.21718 0.45099,-0.21718 0,0 0.45094,-0.21683 0.45094,-0.21683 0,0 0.45083,-0.21645 0.45083,-0.21645 0,0 0.45068,-0.21606 0.45068,-0.21606 0,0 0.45048,-0.21563 0.45048,-0.21563 0,0 0.45024,-0.21519 0.45024,-0.21519 0,0 0.44995,-0.21472 0.44995,-0.21472 0,0 0.44961,-0.21423 0.44961,-0.21423 0,0 0.44923,-0.21372 0.44923,-0.21372 0,0 0.44879,-0.21319 0.44879,-0.21319 0,0 0.44833,-0.21263 0.44833,-0.21263 0,0 0.4478,-0.21205 0.4478,-0.21205 0,0 0.44723,-0.21145 0.44723,-0.21145 0,0 0.446614,-0.21083 0.446614,-0.21083 0,0 0.445954,-0.21018 0.445954,-0.21018 0,0 0.445246,-0.20951 0.445246,-0.20951 0,0 0.44449,-0.20882 0.44449,-0.20882 0,0 0.44369,-0.20811 0.44369,-0.20811 0,0 0.442842,-0.20737 0.442842,-0.20737 0,0 0.441947,-0.20661 0.441947,-0.20661 0,0 0.441007,-0.20583 0.441007,-0.20583 0,0 0.440019,-0.20503 0.440019,-0.20503 0,0 0.438986,-0.2042 0.438986,-0.2042 0,0 0.437906,-0.20335 0.437906,-0.20335 0,0 0.43678,-0.20248 0.43678,-0.20248 0,0 0.435606,-0.20158 0.435606,-0.20158 0,0 0.434387,-0.20067 0.434387,-0.20067 0,0 0.433121,-0.19973 0.433121,-0.19973 0,0 0.431808,-0.19877 0.431808,-0.19877 0,0 0.43045,-0.19778 0.43045,-0.19778 0,0 0.429044,-0.19678 0.429044,-0.19678 0,0 0.427593,-0.19575 0.427593,-0.19575 0,0 0.426094,-0.1947 0.426094,-0.1947 0,0 0.424549,-0.19363 0.424549,-0.19363 0,0 0.422959,-0.19252 0.422959,-0.19252 0,0 0.42132,-0.19141 0.42132,-0.19141 0,0 0.419637,-0.19027 0.419637,-0.19027 0,0 0.417906,-0.18911 0.417906,-0.18911 0,0 0.416129,-0.18791 0.416129,-0.18791 0,0 0.414305,-0.18671 0.414305,-0.18671 0,0 0.412436,-0.18548 0.412436,-0.18548 0,0 0.410518,-0.18423 0.410518,-0.18423 0,0 0.408557,-0.18294 0.408557,-0.18294 0,0 0.406546,-0.18165 0.406546,-0.18165 0,0 0.404491,-0.18033 0.404491,-0.18033 0,0 0.402389,-0.17899 0.402389,-0.17899 0,0 0.400239,-0.17762 0.400239,-0.17762 0,0 0.398045,-0.17622 0.398045,-0.17622 0,0 0.395803,-0.17482 0.395803,-0.17482 0,0 0.393514,-0.17339 0.393514,-0.17339 0,0 0.39118,-0.17193 0.39118,-0.17193 0,0 0.388799,-0.17045 0.388799,-0.17045 0,0 0.386372,-0.16894 0.386372,-0.16894 0,0 0.383897,-0.16743 0.383897,-0.16743 0,0 0.381377,-0.16588 0.381377,-0.16588 0,0 0.37881,-0.16431 0.37881,-0.16431 0,0 0.376196,-0.16271 0.376196,-0.16271 0,0 0.373537,-0.16111 0.373537,-0.16111 0,0 0.37083,-0.15947 0.37083,-0.15947 0,0 0.368078,-0.15781 0.368078,-0.15781 0,0 0.365278,-0.15613 0.365278,-0.15613 0,0 0.362432,-0.15442 0.362432,-0.15442 0,0 0.359541,-0.1527 0.359541,-0.1527 0,0 0.356601,-0.15095 0.356601,-0.15095 0,0 0.353617,-0.14918 0.353617,-0.14918 0,0 0.350584,-0.14739 0.350584,-0.14739 0,0 0.347507,-0.14557 0.347507,-0.14557 0,0 0.344382,-0.14373 0.344382,-0.14373 0,0 0.341212,-0.14187 0.341212,-0.14187 0,0 0.337994,-0.13998 0.337994,-0.13998 0,0 0.334729,-0.13808 0.334729,-0.13808 0,0 0.33142,-0.13615 0.33142,-0.13615 0,0 0.328063,-0.13421 0.328063,-0.13421 0,0 0.324659,-0.13222 0.324659,-0.13222 0,0 0.321209,-0.13023 0.321209,-0.13023 0,0 0.317714,-0.12821 0.317714,-0.12821 0,0 0.31417,-0.12618 0.31417,-0.12618 0,0 0.310582,-0.1241 0.310582,-0.1241 0,0 0.306946,-0.12202 0.306946,-0.12202 0,0 0.303263,-0.11992 0.303263,-0.11992 0,0 0.299535,-0.11778 0.299535,-0.11778 0,0 0.29576,-0.11563 0.29576,-0.11563 0,0 0.291939,-0.11345 0.291939,-0.11345 0,0 0.288071,-0.11125 0.288071,-0.11125 0,0 0.284156,-0.10904 0.284156,-0.10904 0,0 0.280195,-0.10678 0.280195,-0.10678 0,0 0.276188,-0.10453 0.276188,-0.10453 0,0 0.272134,-0.10223 0.272134,-0.10223 0,0 0.268034,-0.0999 0.268034,-0.0999 0,0 0.263887,-0.0976 0.263887,-0.0976 0,0 0.259694,-0.0952 0.259694,-0.0952 0,0 0.255454,-0.0928 0.255454,-0.0928 0,0 0.251168,-0.0905 0.251168,-0.0905 0,0 0.246836,-0.088 0.246836,-0.088 0,0 0.242456,-0.0856 0.242456,-0.0856 0,0 0.238031,-0.0831 0.238031,-0.0831 0,0 0.233559,-0.0806 0.233559,-0.0806 0,0 0.22904,-0.0781 0.22904,-0.0781 0,0 0.224476,-0.0756 0.224476,-0.0756 0,0 0.219864,-0.073 0.219864,-0.073 0,0 0.215206,-0.0704 0.215206,-0.0704 0,0 0.210502,-0.0678 0.210502,-0.0678 0,0 0.205751,-0.0652 0.205751,-0.0652 0,0 0.200954,-0.0626 0.200954,-0.0626 0,0 0.19611,-0.0599 0.19611,-0.0599 0,0 0.19122,-0.0572 0.19122,-0.0572 0,0 0.186283,-0.0545 0.186283,-0.0545 0,0 0.1813,-0.0517 0.1813,-0.0517 0,0 0.176271,-0.049 0.176271,-0.049 0,0 0.171194,-0.0462 0.171194,-0.0462 0,0 0.166072,-0.0434 0.166072,-0.0434 0,0 0.160903,-0.0406 0.160903,-0.0406 0,0 0.155688,-0.0377 0.155688,-0.0377 0,0 0.150425,-0.0348 0.150425,-0.0348 0,0 0.145118,-0.0319 0.145118,-0.0319 0,0 0.139762,-0.029 0.139762,-0.029 0,0 0.134361,-0.0261 0.134361,-0.0261 0,0 0.128914,-0.0231 0.128914,-0.0231 0,0 0.123419,-0.0201 0.123419,-0.0201 0,0 0.117879,-0.0171 0.117879,-0.0171 0,0 0.112291,-0.0141 0.112291,-0.0141 0,0 0.106658,-0.011 0.106658,-0.011 0,0 0.100977,-0.008 0.100977,-0.008 0,0 0.09525,-0.005 0.09525,-0.005 0,0 0.08948,-0.002 0.08948,-0.002 0,0 0.0895,0.001 0.0895,0.001 0,0 0.09531,0.004 0.09531,0.004 0,0 0.101076,0.008 0.101076,0.008 0,0 0.106795,0.0106 0.106795,0.0106 0,0 0.112468,0.0137 0.112468,0.0137 0,0 0.118093,0.0167 0.118093,0.0167 0,0 0.123671,0.0197 0.123671,0.0197 0,0 0.129204,0.0226 0.129204,0.0226 0,0 0.134688,0.0256 0.134688,0.0256 0,0 0.140128,0.0285 0.140128,0.0285 0,0 0.145518,0.0314 0.145518,0.0314 0,0 0.150864,0.0343 0.150864,0.0343 0,0 0.156161,0.0372 0.156161,0.0372 0,0 0.161413,0.04 0.161413,0.04 0,0 0.166618,0.0428 0.166618,0.0428 0,0 0.171775,0.0456 0.171775,0.0456 0,0 0.176886,0.0483 0.176886,0.0483 0,0 0.181951,0.0511 0.181951,0.0511 0,0 0.186968,0.0538 0.186968,0.0538 0,0 0.191938,0.0565 0.191938,0.0565 0,0 0.196863,0.0592 0.196863,0.0592 0,0 0.20174,0.0619 0.20174,0.0619 0,0 0.20657,0.0645 0.20657,0.0645 0,0 0.211354,0.0671 0.211354,0.0671 0,0 0.216091,0.0697 0.216091,0.0697 0,0 0.220781,0.0723 0.220781,0.0723 0,0 0.225424,0.0748 0.225424,0.0748 0,0 0.230021,0.0773 0.230021,0.0773 0,0 0.234571,0.0798 0.234571,0.0798 0,0 0.239074,0.0823 0.239074,0.0823 0,0 0.24353,0.0848 0.24353,0.0848 0,0 0.247939,0.0872 0.247939,0.0872 0,0 0.252303,0.0896 0.252303,0.0896 0,0 0.256618,0.092 0.256618,0.092 0,0 0.260888,0.0944 0.260888,0.0944 0,0 0.26511,0.0967 0.26511,0.0967 0,0 0.269285,0.099 0.269285,0.099 0,0 0.273415,0.10133 0.273415,0.10133 0,0 0.277497,0.1036 0.277497,0.1036 0,0 0.281532,0.10585 0.281532,0.10585 0,0 0.285521,0.10809 0.285521,0.10809 0,0 0.289462,0.1103 0.289462,0.1103 0,0 0.293358,0.11248 0.293358,0.11248 0,0 0.297206,0.11465 0.297206,0.11465 0,0 0.301008,0.11679 0.301008,0.11679 0,0 0.304762,0.11891 0.304762,0.11891 0,0 0.30847,0.12101 0.30847,0.12101 0,0 0.312132,0.12308 0.312132,0.12308 0,0 0.315746,0.12514 0.315746,0.12514 0,0 0.319314,0.12717 0.319314,0.12717 0,0 0.322835,0.12917 0.322835,0.12917 0,0 0.326309,0.13116 0.326309,0.13116 0,0 0.329736,0.13313 0.329736,0.13313 0,0 0.333117,0.13506 0.333117,0.13506 0,0 0.336451,0.13699 0.336451,0.13699 0,0 0.339739,0.13888 0.339739,0.13888 0,0 0.342978,0.14075 0.342978,0.14075 0,0 0.346172,0.14261 0.346172,0.14261 0,0 0.349319,0.14444 0.349319,0.14444 0,0 0.352419,0.14624 0.352419,0.14624 0,0 0.355472,0.14803 0.355472,0.14803 0,0 0.358479,0.14979 0.358479,0.14979 0,0 0.361438,0.15153 0.361438,0.15153 0,0 0.364352,0.15325 0.364352,0.15325 0,0 0.367218,0.15494 0.367218,0.15494 0,0 0.370037,0.15662 0.370037,0.15662 0,0 0.37281,0.15826 0.37281,0.15826 0,0 0.375535,0.1599 0.375535,0.1599 0,0 0.378215,0.1615 0.378215,0.1615 0,0 0.380848,0.16308 0.380848,0.16308 0,0 0.383433,0.16465 0.383433,0.16465 0,0 0.385971,0.16618 0.385971,0.16618 0,0 0.388464,0.1677 0.388464,0.1677 0,0 0.39091,0.1692 0.39091,0.1692 0,0 0.393307,0.17067 0.393307,0.17067 0,0 0.39566,0.17211 0.39566,0.17211 0,0 0.397964,0.17354 0.397964,0.17354 0,0 0.400223,0.17495 0.400223,0.17495 0,0 0.402435,0.17633 0.402435,0.17633 0,0 0.404599,0.17769 0.404599,0.17769 0,0 0.406717,0.17903 0.406717,0.17903 0,0 0.408788,0.18034 0.408788,0.18034 0,0 0.410813,0.18164 0.410813,0.18164 0,0 0.41279,0.18291 0.41279,0.18291 0,0 0.414721,0.18415 0.414721,0.18415 0,0 0.416605,0.18538 0.416605,0.18538 0,0 0.418443,0.18659 0.418443,0.18659 0,0 0.420233,0.18776 0.420233,0.18776 0,0 0.421977,0.18893 0.421977,0.18893 0,0 0.423674,0.19006 0.423674,0.19006 0,0 0.425325,0.19117 0.425325,0.19117 0,0 0.426928,0.19227 0.426928,0.19227 0,0 0.428485,0.19333 0.428485,0.19333 0,0 0.429994,0.19439 0.429994,0.19439 0,0 0.431458,0.1954 0.431458,0.1954 0,0 0.432875,0.19641 0.432875,0.19641 0,0 0.434244,0.19739 0.434244,0.19739 0,0 0.435567,0.19835 0.435567,0.19835 0,0 0.436843,0.19928 0.436843,0.19928 0,0 0.438072,0.2002 0.438072,0.2002 0,0 0.439256,0.20109 0.439256,0.20109 0,0 0.440391,0.20195 0.440391,0.20195 0,0 0.44148,0.2028 0.44148,0.2028 0,0 0.442522,0.20363 0.442522,0.20363 0,0 0.443518,0.20442 0.443518,0.20442 0,0 0.444467,0.2052 0.444467,0.2052 0,0 0.445369,0.20596 0.445369,0.20596 0,0 0.446224,0.2067 0.446224,0.2067 0,0 0.447032,0.20741 0.447032,0.20741 0,0 0.447795,0.20809 0.447795,0.20809 0,0 0.448509,0.20876 0.448509,0.20876 0,0 0.449178,0.20941 0.449178,0.20941 0,0 0.449798,0.21003 0.449798,0.21003 0,0 0.450374,0.21063 0.450374,0.21063 0,0 0.450901,0.21121 0.450901,0.21121 0,0 0.451383,0.21176 0.451383,0.21176 0,0 0.451817,0.2123 0.451817,0.2123 0,0 0.452204,0.2128 0.452204,0.2128 0,0 0.452546,0.2133 0.452546,0.2133 0,0 0.452839,0.21376 0.452839,0.21376 0,0 0.453087,0.2142 0.453087,0.2142 0,0 0.453287,0.21463 0.453287,0.21463 0,0 0.453441,0.21502 0.453441,0.21502 0,0 0.453548,0.2154 0.453548,0.2154 0,0 0.453608,0.21575 0.453608,0.21575 0,0 0.453622,0.21609 0.453622,0.21609 0,0 0.453588,0.2164 0.453588,0.2164 0,0 0.453508,0.21668 0.453508,0.21668 0,0 0.453382,0.21695 0.453382,0.21695 0,0 0.453208,0.21719 0.453208,0.21719 0,0 0.452987,0.2174 0.452987,0.2174 0,0 0.45272,0.217612 0.45272,0.217612 0,0 0.452407,0.217783 0.452407,0.217783 0,0 0.452046,0.217935 0.452046,0.217935 0,0 0.451638,0.218066 0.451638,0.218066 0,0 0.451184,0.218174 0.451184,0.218174 0,0 0.450683,0.21826 0.450683,0.21826 0,0 0.450135,0.218324 0.450135,0.218324 0,0 0.449541,0.218365 0.449541,0.218365 0,0 0.4489,0.218383 0.4489,0.218383 0,0 0.448211,0.21838 0.448211,0.21838 0,0 0.447477,0.218354 0.447477,0.218354 0,0 0.446695,0.218306 0.446695,0.218306 0,0 0.445867,0.218236 0.445867,0.218236 0,0 0.444992,0.218142 0.444992,0.218142 0,0 0.44407,0.218027 0.44407,0.218027 0,0 0.443101,0.217889 0.443101,0.217889 0,0 0.442086,0.21773 0.442086,0.21773 0,0 0.441024,0.217547 0.441024,0.217547 0,0 0.439914,0.217342 0.439914,0.217342 0,0 0.438759,0.217115 0.438759,0.217115 0,0 0.437557,0.216866 0.437557,0.216866 0,0 0.436307,0.216594 0.436307,0.216594 0,0 0.435011,0.2163 0.435011,0.2163 0,0 0.433669,0.215983 0.433669,0.215983 0,0 0.4322789,0.215645 0.4322789,0.215645 0,0 0.4308426,0.215283 0.4308426,0.215283 0,0 0.4293596,0.2149 0.4293596,0.2149 0,0 0.4278298,0.214494 0.4278298,0.214494 0,0 0.4262531,0.214066 0.4262531,0.214066 0,0 0.4246298,0.213615 0.4246298,0.213615 0,0 0.4229597,0.213142 0.4229597,0.213142 0,0 0.4212427,0.212647 0.4212427,0.212647 0,0 0.4194791,0.212129 0.4194791,0.212129 0,0 0.4176686,0.211589 0.4176686,0.211589 0,0 0.4158114,0.211027 0.4158114,0.211027 0,0 0.4139075,0.210442 0.4139075,0.210442 0,0 0.4119567,0.209835 0.4119567,0.209835 0,0 0.4099592,0.209206 0.4099592,0.209206 0,0 0.407915,0.208554 0.407915,0.208554 0,0 0.4058239,0.20788 0.4058239,0.20788 0,0 0.4036861,0.207183 0.4036861,0.207183 0,0 0.4015015,0.206464 0.4015015,0.206464 0,0 0.3992702,0.205723 0.3992702,0.205723 0,0 0.3969921,0.20496 0.3969921,0.20496 0,0 0.3946672,0.204174 0.3946672,0.204174 0,0 0.3922956,0.203365 0.3922956,0.203365 0,0 0.38987717,0.202535 0.38987717,0.202535 0,0 0.38741201,0.201682 0.38741201,0.201682 0,0 0.38490007,0.200807 0.38490007,0.200807 0,0 0.38234137,0.199909 0.38234137,0.199909 0,0 0.37973589,0.198989 0.37973589,0.198989 0,0 0.37708369,0.198047 0.37708369,0.198047 0,0 0.3743846,0.197082 0.3743846,0.197082 0,0 0.3716389,0.196095 0.3716389,0.196095 0,0 0.3688464,0.195085 0.3688464,0.195085 0,0 0.366007,0.194054 0.366007,0.194054 0,0 0.363121,0.192999 0.363121,0.192999 0,0 0.3601881,0.191923 0.3601881,0.191923 0,0 0.3572085,0.190825 0.3572085,0.190825 0,0 0.3541822,0.189703 0.3541822,0.189703 0,0 0.351109,0.188559 0.351109,0.188559 0,0 0.3479892,0.187394 0.3479892,0.187394 0,0 0.3448224,0.186205 0.3448224,0.186205 0,0 0.341609,0.184995 0.341609,0.184995 0,0 0.3383489,0.183762 0.3383489,0.183762 0,0 0.3350418,0.182506 0.3350418,0.182506 0,0 0.3316881,0.181229 0.3316881,0.181229 0,0 0.3282876,0.179929 0.3282876,0.179929 0,0 0.3248404,0.178607 0.3248404,0.178607 0,0 0.3213463,0.177261 0.3213463,0.177261 0,0 0.3178055,0.175895 0.3178055,0.175895 0,0 0.3142179,0.174505 0.3142179,0.174505 0,0 0.3105836,0.173094 0.3105836,0.173094 0,0 0.3069025,0.171659 0.3069025,0.171659 0,0 0.3031746,0.170203 0.3031746,0.170203 0,0 0.2994,0.168724 0.2994,0.168724 0,0 0.2955786,0.167223 0.2955786,0.167223 0,0 0.2917104,0.1657 0.2917104,0.1657 0,0 0.287795,0.164153 0.287795,0.164153 0,0 0.283834,0.162585 0.283834,0.162585 0,0 0.279826,0.160995 0.279826,0.160995 0,0 0.27577,0.159382 0.27577,0.159382 0,0 0.271668,0.157746 0.271668,0.157746 0,0 0.267519,0.156089 0.267519,0.156089 0,0 0.263324,0.154408 0.263324,0.154408 0,0 0.259081,0.152707 0.259081,0.152707 0,0 0.254793,0.150981 0.254793,0.150981 0,0 0.250456,0.149235 0.250456,0.149235 0,0 0.246074,0.147465 0.246074,0.147465 0,0 0.241645,0.145673 0.241645,0.145673 0,0 0.237168,0.14386 0.237168,0.14386 0,0 0.232646,0.142022 0.232646,0.142022 0,0 0.228076,0.140164 0.228076,0.140164 0,0 0.223459,0.138283 0.223459,0.138283 0,0 0.218796,0.136379 0.218796,0.136379 0,0 0.214087,0.134454 0.214087,0.134454 0,0 0.209329,0.132505 0.209329,0.132505 0,0 0.204526,0.130534 0.204526,0.130534 0,0 0.199676,0.128542 0.199676,0.128542 0,0 0.194779,0.126526 0.194779,0.126526 0,0 0.189835,0.124489 0.189835,0.124489 0,0 0.184844,0.122428 0.184844,0.122428 0,0 0.179807,0.120346 0.179807,0.120346 0,0 0.174723,0.118242 0.174723,0.118242 0,0 0.169592,0.116114 0.169592,0.116114 0,0 0.164415,0.113965 0.164415,0.113965 0,0 0.15919,0.111794 0.15919,0.111794 0,0 0.153919,0.109599 0.153919,0.109599 0,0 0.148601,0.107382 0.148601,0.107382 0,0 0.143236,0.105144 0.143236,0.105144 0,0 0.137825,0.102883 0.137825,0.102883 0,0 0.132366,0.100599 0.132366,0.100599 0,0 0.126862,0.09829 0.126862,0.09829 0,0 0.12131,0.09597 0.12131,0.09597 0,0 0.115711,0.09361 0.115711,0.09361 0,0 0.110066,0.09124 0.110066,0.09124 0,0 0.104374,0.08885 0.104374,0.08885 0,0 0.09864,0.08643 0.09864,0.08643 0,0 0.09285,0.08399 0.09285,0.08399 0,0 0.08702,0.08153 0.08702,0.08153 0,0 0.08114,0.07904 0.08114,0.07904 0,0 0.07521,0.07653 0.07521,0.07653 0,0 0.06924,0.074 0.06924,0.074 0,0 0.06322,0.07145 0.06322,0.07145 0,0 0.05715,0.06888 0.05715,0.06888 0,0 0.0547,0.07084 0.0547,0.07084 0,0 0.05589,0.0773 0.05589,0.0773 0,0 0.05707,0.08372 0.05707,0.08372 0,0 0.05823,0.09008 0.05823,0.09008 0,0 0.05938,0.0964 0.05938,0.0964 0,0 0.06052,0.102661 0.06052,0.102661 0,0 0.06165,0.108875 0.06165,0.108875 0,0 0.06277,0.115039 0.06277,0.115039 0,0 0.06387,0.121152 0.06387,0.121152 0,0 0.06497,0.127215 0.06497,0.127215 0,0 0.06605,0.133227 0.06605,0.133227 0,0 0.06712,0.13919 0.06712,0.13919 0,0 0.06818,0.145102 0.06818,0.145102 0,0 0.06923,0.150962 0.06923,0.150962 0,0 0.07027,0.156774 0.07027,0.156774 0,0 0.07129,0.162534 0.07129,0.162534 0,0 0.0723,0.168245 0.0723,0.168245 0,0 0.07331,0.173904 0.07331,0.173904 0,0 0.07429,0.179513 0.07429,0.179513 0,0 0.07527,0.185073 0.07527,0.185073 0,0 0.07624,0.190581 0.07624,0.190581 0,0 0.07719,0.196039 0.07719,0.196039 0,0 0.07814,0.201447 0.07814,0.201447 0,0 0.07907,0.206804 0.07907,0.206804 0,0 0.07999,0.212112 0.07999,0.212112 0,0 0.0809,0.217367 0.0809,0.217367 0,0 0.0818,0.222574 0.0818,0.222574 0,0 0.08268,0.22773 0.08268,0.22773 0,0 0.08356,0.232835 0.08356,0.232835 0,0 0.08442,0.23789 0.08442,0.23789 0,0 0.08527,0.242895 0.08527,0.242895 0,0 0.08611,0.247849 0.08611,0.247849 0,0 0.08693,0.252752 0.08693,0.252752 0,0 0.08775,0.257606 0.08775,0.257606 0,0 0.08855,0.262409 0.08855,0.262409 0,0 0.08935,0.267162 0.08935,0.267162 0,0 0.09013,0.271864 0.09013,0.271864 0,0 0.0909,0.276515 0.0909,0.276515 0,0 0.09166,0.281117 0.09166,0.281117 0,0 0.0924,0.285668 0.0924,0.285668 0,0 0.09314,0.290168 0.09314,0.290168 0,0 0.09386,0.294619 0.09386,0.294619 0,0 0.09457,0.299018 0.09457,0.299018 0,0 0.09527,0.303368 0.09527,0.303368 0,0 0.09596,0.307667 0.09596,0.307667 0,0 0.09664,0.311916 0.09664,0.311916 0,0 0.0973,0.316113 0.0973,0.316113 0,0 0.09795,0.320262 0.09795,0.320262 0,0 0.0986,0.324359 0.0986,0.324359 0,0 0.09923,0.328406 0.09923,0.328406 0,0 0.09984,0.332402 0.09984,0.332402 0,0 0.100452,0.336349 0.100452,0.336349 0,0 0.101047,0.340245 0.101047,0.340245 0,0 0.101631,0.344089 0.101631,0.344089 0,0 0.102203,0.347885 0.102203,0.347885 0,0 0.102764,0.35163 0.102764,0.35163 0,0 0.103313,0.355324 0.103313,0.355324 0,0 0.10385,0.358968 0.10385,0.358968 0,0 0.104376,0.362561 0.104376,0.362561 0,0 0.10489,0.366104 0.10489,0.366104 0,0 0.105393,0.369597 0.105393,0.369597 0,0 0.105883,0.373039 0.105883,0.373039 0,0 0.106364,0.37643 0.106364,0.37643 0,0 0.106831,0.379773 0.106831,0.379773 0,0 0.107287,0.383063 0.107287,0.383063 0,0 0.107732,0.386304 0.107732,0.386304 0,0 0.108164,0.389494 0.108164,0.389494 0,0 0.108586,0.392634 0.108586,0.392634 0,0 0.108996,0.395723 0.108996,0.395723 0,0 0.109394,0.398763 0.109394,0.398763 0,0 0.109781,0.401751 0.109781,0.401751 0,0 0.110156,0.40469 0.110156,0.40469 0,0 0.110519,0.407577 0.110519,0.407577 0,0 0.110871,0.410415 0.110871,0.410415 0,0 0.111211,0.413201 0.111211,0.413201 0,0 0.111539,0.415939 0.111539,0.415939 0,0 0.111857,0.418625 0.111857,0.418625 0,0 0.112162,0.42126 0.112162,0.42126 0,0 0.112456,0.423846 0.112456,0.423846 0,0 0.112738,0.426381 0.112738,0.426381 0,0 0.113008,0.428866 0.113008,0.428866 0,0 0.113268,0.4313 0.113268,0.4313 0,0 0.113514,0.433684 0.113514,0.433684 0,0 0.113751,0.436018 0.113751,0.436018 0,0 0.113975,0.4383 0.113975,0.4383 0,0 0.114187,0.440533 0.114187,0.440533 0,0 0.114389,0.442716 0.114389,0.442716 0,0 0.114577,0.444847 0.114577,0.444847 0,0 0.114756,0.446929 0.114756,0.446929 0,0 0.114921,0.44896 0.114921,0.44896 0,0 0.115076,0.45094 0.115076,0.45094 0,0 0.11522,0.452871 0.11522,0.452871 0,0 0.11535,0.454751 0.11535,0.454751 0,0 0.11547,0.45658 0.11547,0.45658 0,0 0.115579,0.45836 0.115579,0.45836 0,0 0.115675,0.460088 0.115675,0.460088 0,0 0.11576,0.461766 0.11576,0.461766 0,0 0.115833,0.463395 0.115833,0.463395 0,0 0.115895,0.464971 0.115895,0.464971 0,0 0.115945,0.466499 0.115945,0.466499 0,0 0.115984,0.467976 0.115984,0.467976 0,0 0.116011,0.469402 0.116011,0.469402 0,0 0.116026,0.470778 0.116026,0.470778 0,0 0.116029,0.472103 0.116029,0.472103 0,0 0.116022,0.473379 0.116022,0.473379 0,0 0.116003,0.474603 0.116003,0.474603 0,0 0.115971,0.475777 0.115971,0.475777 0,0 0.115929,0.476902 0.115929,0.476902 0,0 0.115874,0.477975 0.115874,0.477975 0,0 0.115809,0.478998 0.115809,0.478998 0,0 0.115731,0.479971 0.115731,0.479971 0,0 0.115642,0.480893 0.115642,0.480893 0,0 0.115542,0.481765 0.115542,0.481765 0,0 0.115429,0.482587 0.115429,0.482587 0,0 0.115305,0.483357 0.115305,0.483357 0,0 0.11517,0.484079 0.11517,0.484079 0,0 0.115023,0.484749 0.115023,0.484749 0,0 0.114864,0.485369 0.114864,0.485369 0,0 0.114694,0.485938 0.114694,0.485938 0,0 0.114512,0.486457 0.114512,0.486457 0,0 0.114318,0.486927 0.114318,0.486927 0,0 0.114113,0.487344 0.114113,0.487344 0,0 0.113897,0.487713 0.113897,0.487713 0,0 0.113669,0.48803 0.113669,0.48803 0,0 0.113428,0.488297 0.113428,0.488297 0,0 0.113177,0.488514 0.113177,0.488514 0,0 0.112914,0.48868 0.112914,0.48868 0,0 0.112639,0.488797 0.112639,0.488797 0,0 0.112353,0.488862 0.112353,0.488862 0,0 0.112056,0.488877 0.112056,0.488877 0,0 0.111745,0.488842 0.111745,0.488842 0,0 0.111425,0.488756 0.111425,0.488756 0,0 0.111092,0.48862 0.111092,0.48862 0,0 0.110747,0.488434 0.110747,0.488434 0,0 0.110392,0.488197 0.110392,0.488197 0,0 0.110024,0.487909 0.110024,0.487909 0,0 0.109645,0.487573 0.109645,0.487573 0,0 0.109254,0.487184 0.109254,0.487184 0,0 0.108852,0.486745 0.108852,0.486745 0,0 0.108439,0.486257 0.108439,0.486257 0,0 0.108012,0.485718 0.108012,0.485718 0,0 0.107576,0.485128 0.107576,0.485128 0,0 0.107127,0.484488 0.107127,0.484488 0,0 0.106666,0.483797 0.106666,0.483797 0,0 0.106195,0.483057 0.106195,0.483057 0,0 0.105711,0.482266 0.105711,0.482266 0,0 0.105216,0.481424 0.105216,0.481424 0,0 0.104709,0.480532 0.104709,0.480532 0,0 0.104191,0.479589 0.104191,0.479589 0,0 0.103661,0.478597 0.103661,0.478597 0,0 0.10312,0.477554 0.10312,0.477554 0,0 0.102566,0.47646 0.102566,0.47646 0,0 0.102002,0.475316 0.102002,0.475316 0,0 0.101426,0.474122 0.101426,0.474122 0,0 0.100837,0.472877 0.100837,0.472877 0,0 0.100238,0.471581 0.100238,0.471581 0,0 0.09963,0.470236 0.09963,0.470236 0,0 0.099,0.468841 0.099,0.468841 0,0 0.09837,0.467393 0.09837,0.467393 0,0 0.09772,0.465897 0.09772,0.465897 0,0 0.09707,0.46435 0.09707,0.46435 0,0 0.0964,0.462752 0.0964,0.462752 0,0 0.09572,0.461105 0.09572,0.461105 0,0 0.09502,0.459406 0.09502,0.459406 0,0 0.09432,0.457657 0.09432,0.457657 0,0 0.0936,0.455858 0.0936,0.455858 0,0 0.09288,0.454008 0.09288,0.454008 0,0 0.09214,0.452109 0.09214,0.452109 0,0 0.09139,0.450158 0.09139,0.450158 0,0 0.09063,0.448157 0.09063,0.448157 0,0 0.08985,0.446106 0.08985,0.446106 0,0 0.08907,0.444005 0.08907,0.444005 0,0 0.08827,0.441853 0.08827,0.441853 0,0 0.08746,0.43965 0.08746,0.43965 0,0 0.08664,0.437398 0.08664,0.437398 0,0 0.08581,0.435094 0.08581,0.435094 0,0 0.08497,0.432741 0.08497,0.432741 0,0 0.08411,0.430337 0.08411,0.430337 0,0 0.08325,0.427883 0.08325,0.427883 0,0 0.08237,0.4253776 0.08237,0.4253776 0,0 0.08148,0.4228227 0.08148,0.4228227 0,0 0.08058,0.4202173 0.08058,0.4202173 0,0 0.07967,0.4175613 0.07967,0.4175613 0,0 0.07874,0.414855 0.07874,0.414855 0,0 0.0778,0.4120983 0.0778,0.4120983 0,0 0.07686,0.4092912 0.07686,0.4092912 0,0 0.0759,0.4064336 0.0759,0.4064336 0,0 0.07493,0.4035257 0.07493,0.4035257 0,0 0.07395,0.4005674 0.07395,0.4005674 0,0 0.07295,0.3975587 0.07295,0.3975587 0,0 0.07195,0.3944995 0.07195,0.3944995 0,0 0.07093,0.3913901 0.07093,0.3913901 0,0 0.0699,0.3882301 0.0699,0.3882301 0,0 0.06886,0.3850199 0.06886,0.3850199 0,0 0.06781,0.3817591 0.06781,0.3817591 0,0 0.06674,0.378448 0.06674,0.378448 0,0 0.06567,0.3750865 0.06567,0.3750865 0,0 0.06458,0.3716747 0.06458,0.3716747 0,0 0.06348,0.3682123 0.06348,0.3682123 0,0 0.06237,0.3646996 0.06237,0.3646996 0,0 0.06125,0.3611366 0.06125,0.3611366 0,0 0.06012,0.357523 0.06012,0.357523 0,0 0.05897,0.35385916 0.05897,0.35385916 0,0 0.05782,0.35014487 0.05782,0.35014487 0,0 0.05665,0.34638018 0.05665,0.34638018 0,0 0.05547,0.3425651 0.05547,0.3425651 0,0 0.05428,0.33869962 0.05428,0.33869962 0,0 0.05308,0.33478373 0.05308,0.33478373 0,0 0.05186,0.33081744 0.05186,0.33081744 0,0 0.05064,0.3268008 0.05064,0.3268008 0,0 0.0494,0.3227337 0.0494,0.3227337 0,0 0.04815,0.3186162 0.04815,0.3186162 0,0 0.04689,0.3144484 0.04689,0.3144484 0,0 0.04562,0.3102301 0.04562,0.3102301 0,0 0.04433,0.3059614 0.04433,0.3059614 0,0 0.04304,0.3016424 0.04304,0.3016424 0,0 0.04173,0.2972729 0.04173,0.2972729 0,0 0.04041,0.292853 0.04041,0.292853 0,0 0.03908,0.2883828 0.03908,0.2883828 0,0 0.03774,0.2838622 0.03774,0.2838622 0,0 0.03638,0.279291 0.03638,0.279291 0,0 0.03502,0.2746697 0.03502,0.2746697 0,0 0.03364,0.2699977 0.03364,0.2699977 0,0 0.03225,0.2652755 0.03225,0.2652755 0,0 0.03085,0.2605029 0.03085,0.2605029 0,0 0.02944,0.2556798 0.02944,0.2556798 0,0 0.02802,0.2508064 0.02802,0.2508064 0,0 0.02658,0.2458826 0.02658,0.2458826 0,0 0.02514,0.2409083 0.02514,0.2409083 0,0 0.02368,0.2358837 0.02368,0.2358837 0,0 0.02221,0.2308086 0.02221,0.2308086 0,0 0.02073,0.2256832 0.02073,0.2256832 0,0 0.01924,0.2205074 0.01924,0.2205074 0,0 0.01773,0.2152811 0.01773,0.2152811 0,0 0.01622,0.2100045 0.01622,0.2100045 0,0 0.01469,0.2046775 0.01469,0.2046775 0,0 0.01315,0.1993001 0.01315,0.1993001 0,0 0.0116,0.1938722 0.0116,0.1938722 0,0 0.01004,0.188394 0.01004,0.188394 0,0 0.0085,0.1828655 0.0085,0.1828655 0,0 0.0069,0.1772863 0.0069,0.1772863 0,0 0.0053,0.171657 0.0053,0.171657 0,0 0.0037,0.1659772 0.0037,0.1659772 0,0 0.002,0.160247 0.002,0.160247 0,0 4.17e-4,0.1544663 4.17e-4,0.1544663 0,0 -0.0012,0.1486353 -0.0012,0.1486353 0,0 -0.0029,0.142754 -0.0029,0.142754 0,0 -0.0045,0.136822 -0.0045,0.136822 0,0 -0.0062,0.13084 -0.0062,0.13084 0,0 -0.0079,0.124807 -0.0079,0.124807 0,0 -0.0096,0.118725 -0.0096,0.118725 0,0 -0.01133,0.112591 -0.01133,0.112591 0,0 -0.01306,0.106407 -0.01306,0.106407 0,0 -0.01479,0.100173 -0.01479,0.100173 0,0 -0.01654,0.09389 -0.01654,0.09389 0,0 -0.0183,0.08755 -0.0183,0.08755 0,0 -0.02136,0.08687 -0.02136,0.08687 0,0 -0.0257,0.09185 -0.0257,0.09185 0,0 -0.03,0.09678 -0.03,0.09678 0,0 -0.03427,0.101675 -0.03427,0.101675 0,0 -0.0385,0.106529 -0.0385,0.106529 0,0 -0.04271,0.111342 -0.04271,0.111342 0,0 -0.04688,0.116115 -0.04688,0.116115 0,0 -0.05102,0.120846 -0.05102,0.120846 0,0 -0.05513,0.125537 -0.05513,0.125537 0,0 -0.0592,0.130189 -0.0592,0.130189 0,0 -0.06324,0.134798 -0.06324,0.134798 0,0 -0.06725,0.139367 -0.06725,0.139367 0,0 -0.07123,0.143897 -0.07123,0.143897 0,0 -0.07518,0.148384 -0.07518,0.148384 0,0 -0.07909,0.152832 -0.07909,0.152832 0,0 -0.08297,0.157239 -0.08297,0.157239 0,0 -0.08682,0.161605 -0.08682,0.161605 0,0 -0.09064,0.165931 -0.09064,0.165931 0,0 -0.09442,0.170216 -0.09442,0.170216 0,0 -0.09818,0.174461 -0.09818,0.174461 0,0 -0.101894,0.178664 -0.101894,0.178664 0,0 -0.105581,0.182827 -0.105581,0.182827 0,0 -0.109236,0.18695 -0.109236,0.18695 0,0 -0.112859,0.191032 -0.112859,0.191032 0,0 -0.11645,0.195074 -0.11645,0.195074 0,0 -0.120007,0.199074 -0.120007,0.199074 0,0 -0.123533,0.203034 -0.123533,0.203034 0,0 -0.127027,0.206954 -0.127027,0.206954 0,0 -0.130488,0.210833 -0.130488,0.210833 0,0 -0.133916,0.214671 -0.133916,0.214671 0,0 -0.137313,0.218468 -0.137313,0.218468 0,0 -0.140677,0.222226 -0.140677,0.222226 0,0 -0.144009,0.225942 -0.144009,0.225942 0,0 -0.147308,0.229618 -0.147308,0.229618 0,0 -0.150576,0.233253 -0.150576,0.233253 0,0 -0.153811,0.236847 -0.153811,0.236847 0,0 -0.157013,0.240402 -0.157013,0.240402 0,0 -0.160183,0.243915 -0.160183,0.243915 0,0 -0.163321,0.247388 -0.163321,0.247388 0,0 -0.166427,0.250819 -0.166427,0.250819 0,0 -0.169501,0.254212 -0.169501,0.254212 0,0 -0.172541,0.257562 -0.172541,0.257562 0,0 -0.17555,0.260872 -0.17555,0.260872 0,0 -0.178526,0.264142 -0.178526,0.264142 0,0 -0.181471,0.267371 -0.181471,0.267371 0,0 -0.184382,0.27056 -0.184382,0.27056 0,0 -0.187262,0.273707 -0.187262,0.273707 0,0 -0.190109,0.276814 -0.190109,0.276814 0,0 -0.192923,0.279881 -0.192923,0.279881 0,0 -0.195706,0.282907 -0.195706,0.282907 0,0 -0.198456,0.285892 -0.198456,0.285892 0,0 -0.201174,0.288837 -0.201174,0.288837 0,0 -0.20386,0.291741 -0.20386,0.291741 0,0 -0.206513,0.294604 -0.206513,0.294604 0,0 -0.209134,0.297428 -0.209134,0.297428 0,0 -0.211722,0.300209 -0.211722,0.300209 0,0 -0.214279,0.302951 -0.214279,0.302951 0,0 -0.216802,0.305652 -0.216802,0.305652 0,0 -0.219295,0.308313 -0.219295,0.308313 0,0 -0.221753,0.310932 -0.221753,0.310932 0,0 -0.224181,0.313512 -0.224181,0.313512 0,0 -0.226575,0.31605 -0.226575,0.31605 0,0 -0.228938,0.318547 -0.228938,0.318547 0,0 -0.231268,0.321006 -0.231268,0.321006 0,0 -0.233565,0.323421 -0.233565,0.323421 0,0 -0.235831,0.325798 -0.235831,0.325798 0,0 -0.238065,0.328134 -0.238065,0.328134 0,0 -0.240265,0.330428 -0.240265,0.330428 0,0 -0.242433,0.332682 -0.242433,0.332682 0,0 -0.24457,0.334896 -0.24457,0.334896 0,0 -0.246673,0.337069 -0.246673,0.337069 0,0 -0.248746,0.339202 -0.248746,0.339202 0,0 -0.250784,0.341293 -0.250784,0.341293 0,0 -0.252791,0.343344 -0.252791,0.343344 0,0 -0.254766,0.345354 -0.254766,0.345354 0,0 -0.256708,0.347325 -0.256708,0.347325 0,0 -0.258619,0.349254 -0.258619,0.349254 0,0 -0.260496,0.351142 -0.260496,0.351142 0,0 -0.262341,0.352991 -0.262341,0.352991 0,0 -0.264154,0.354798 -0.264154,0.354798 0,0 -0.265935,0.356565 -0.265935,0.356565 0,0 -0.267684,0.358291 -0.267684,0.358291 0,0 -0.269399,0.359976 -0.269399,0.359976 0,0 -0.271083,0.361622 -0.271083,0.361622 0,0 -0.272735,0.363226 -0.272735,0.363226 0,0 -0.274354,0.364789 -0.274354,0.364789 0,0 -0.275941,0.366313 -0.275941,0.366313 0,0 -0.277495,0.367795 -0.277495,0.367795 0,0 -0.279018,0.369237 -0.279018,0.369237 0,0 -0.280507,0.370638 -0.280507,0.370638 0,0 -0.281965,0.371999 -0.281965,0.371999 0,0 -0.28339,0.373319 -0.28339,0.373319 0,0 -0.284784,0.374598 -0.284784,0.374598 0,0 -0.286143,0.375837 -0.286143,0.375837 0,0 -0.287473,0.377036 -0.287473,0.377036 0,0 -0.288768,0.378193 -0.288768,0.378193 0,0 -0.290032,0.379309 -0.290032,0.379309 0,0 -0.291263,0.380386 -0.291263,0.380386 0,0 -0.292462,0.381422 -0.292462,0.381422 0,0 -0.293629,0.382417 -0.293629,0.382417 0,0 -0.294764,0.383371 -0.294764,0.383371 0,0 -0.295865,0.384285 -0.295865,0.384285 0,0 -0.296936,0.385159 -0.296936,0.385159 0,0 -0.297972,0.385991 -0.297972,0.385991 0,0 -0.298978,0.386783 -0.298978,0.386783 0,0 -0.299951,0.387534 -0.299951,0.387534 0,0 -0.300892,0.388245 -0.300892,0.388245 0,0 -0.301799,0.388916 -0.301799,0.388916 0,0 -0.302676,0.389545 -0.302676,0.389545 0,0 -0.303519,0.390133 -0.303519,0.390133 0,0 -0.304331,0.390682 -0.304331,0.390682 0,0 -0.305109,0.39119 -0.305109,0.39119 0,0 -0.305856,0.391657 -0.305856,0.391657 0,0 -0.30657,0.392083 -0.30657,0.392083 0,0 -0.307253,0.392469 -0.307253,0.392469 0,0 -0.307902,0.392814 -0.307902,0.392814 0,0 -0.30852,0.393119 -0.30852,0.393119 0,0 -0.309104,0.393383 -0.309104,0.393383 0,0 -0.309658,0.393606 -0.309658,0.393606 0,0 -0.310177,0.393789 -0.310177,0.393789 0,0 -0.310666,0.393931 -0.310666,0.393931 0,0 -0.311122,0.394033 -0.311122,0.394033 0,0 -0.311545,0.394093 -0.311545,0.394093 0,0 -0.311937,0.394114 -0.311937,0.394114 0,0 -0.312295,0.394093 -0.312295,0.394093 0,0 -0.312622,0.394033 -0.312622,0.394033 0,0 -0.312916,0.39393 -0.312916,0.39393 0,0 -0.313178,0.393789 -0.313178,0.393789 0,0 -0.313408,0.393606 -0.313408,0.393606 0,0 -0.313605,0.393382 -0.313605,0.393382 0,0 -0.31377,0.393119 -0.31377,0.393119 0,0 -0.313903,0.392813 -0.313903,0.392813 0,0 -0.314003,0.392469 -0.314003,0.392469 0,0 -0.314071,0.392082 -0.314071,0.392082 0,0 -0.3141063,0.391656 -0.3141063,0.391656 0,0 -0.3141102,0.391189 -0.3141102,0.391189 0,0 -0.3140812,0.390681 -0.3140812,0.390681 0,0 -0.3140201,0.390133 -0.3140201,0.390133 0,0 -0.3139265,0.389543 -0.3139265,0.389543 0,0 -0.3138007,0.388915 -0.3138007,0.388915 0,0 -0.3136425,0.388244 -0.3136425,0.388244 0,0 -0.313452,0.387533 -0.313452,0.387533 0,0 -0.3132292,0.386781 -0.3132292,0.386781 0,0 -0.3129741,0.38599 -0.3129741,0.38599 0,0 -0.3126867,0.385157 -0.3126867,0.385157 0,0 -0.312367,0.384283 -0.312367,0.384283 0,0 -0.3120149,0.38337 -0.3120149,0.38337 0,0 -0.3116305,0.382415 -0.3116305,0.382415 0,0 -0.3112139,0.38142 -0.3112139,0.38142 0,0 -0.3107648,0.380384 -0.3107648,0.380384 0,0 -0.3102836,0.379308 -0.3102836,0.379308 0,0 -0.3097699,0.378191 -0.3097699,0.378191 0,0 -0.3092239,0.377033 -0.3092239,0.377033 0,0 -0.3086458,0.375835 -0.3086458,0.375835 0,0 -0.3080351,0.374596 -0.3080351,0.374596 0,0 -0.3073923,0.373317 -0.3073923,0.373317 0,0 -0.306717,0.371996 -0.306717,0.371996 0,0 -0.3060096,0.370636 -0.3060096,0.370636 0,0 -0.3052697,0.369235 -0.3052697,0.369235 0,0 -0.3044975,0.367792 -0.3044975,0.367792 0,0 -0.3036931,0.36631 -0.3036931,0.36631 0,0 -0.3028563,0.364787 -0.3028563,0.364787 0,0 -0.3019873,0.363223 -0.3019873,0.363223 0,0 -0.3010858,0.361619 -0.3010858,0.361619 0,0 -0.30015211,0.359974 -0.30015211,0.359974 0,0 -0.29918607,0.358288 -0.29918607,0.358288 0,0 -0.29818772,0.356561 -0.29818772,0.356561 0,0 -0.29715706,0.354795 -0.29715706,0.354795 0,0 -0.29609407,0.352987 -0.29609407,0.352987 0,0 -0.29499878,0.35114 -0.29499878,0.35114 0,0 -0.29387119,0.34925 -0.29387119,0.34925 0,0 -0.2927112,0.347321 -0.2927112,0.347321 0,0 -0.291519,0.345351 -0.291519,0.345351 0,0 -0.2902945,0.343341 -0.2902945,0.343341 0,0 -0.2890376,0.341289 -0.2890376,0.341289 0,0 -0.2877484,0.339198 -0.2877484,0.339198 0,0 -0.2864269,0.337065 -0.2864269,0.337065 0,0 -0.2850731,0.334892 -0.2850731,0.334892 0,0 -0.2836869,0.332679 -0.2836869,0.332679 0,0 -0.2822685,0.330424 -0.2822685,0.330424 0,0 -0.2808178,0.328129 -0.2808178,0.328129 0,0 -0.2793347,0.325794 -0.2793347,0.325794 0,0 -0.2778193,0.323418 -0.2778193,0.323418 0,0 -0.2762715,0.321 -0.2762715,0.321 0,0 -0.2746916,0.318544 -0.2746916,0.318544 0,0 -0.2730793,0.316045 -0.2730793,0.316045 0,0 -0.2714346,0.313507 -0.2714346,0.313507 0,0 -0.2697576,0.310928 -0.2697576,0.310928 0,0 -0.2680483,0.308308 -0.2680483,0.308308 0,0 -0.2663068,0.305647 -0.2663068,0.305647 0,0 -0.2645329,0.302947 -0.2645329,0.302947 0,0 -0.2627266,0.300204 -0.2627266,0.300204 0,0 -0.2608881,0.297423 -0.2608881,0.297423 0,0 -0.2590172,0.294599 -0.2590172,0.294599 0,0 -0.2571141,0.291736 -0.2571141,0.291736 0,0 -0.2551786,0.288832 -0.2551786,0.288832 0,0 -0.2532108,0.285887 -0.2532108,0.285887 0,0 -0.2512107,0.282901 -0.2512107,0.282901 0,0 -0.2491782,0.279876 -0.2491782,0.279876 0,0 -0.2471136,0.276809 -0.2471136,0.276809 0,0 -0.2450164,0.273701 -0.2450164,0.273701 0,0 -0.2428871,0.270554 -0.2428871,0.270554 0,0 -0.2407254,0.267366 -0.2407254,0.267366 0,0 -0.2385312,0.264136 -0.2385312,0.264136 0,0 -0.236305,0.260866 -0.236305,0.260866 0,0 -0.234047,0.257557 -0.234047,0.257557 0,0 -0.231755,0.254205 -0.231755,0.254205 0,0 -0.229433,0.250814 -0.229433,0.250814 0,0 -0.227076,0.247381 -0.227076,0.247381 0,0 -0.224689,0.243909 -0.224689,0.243909 0,0 -0.222269,0.240395 -0.222269,0.240395 0,0 -0.219816,0.236842 -0.219816,0.236842 0,0 -0.217331,0.233247 -0.217331,0.233247 0,0 -0.214814,0.229611 -0.214814,0.229611 0,0 -0.212265,0.225935 -0.212265,0.225935 0,0 -0.209683,0.22222 -0.209683,0.22222 0,0 -0.207068,0.218461 -0.207068,0.218461 0,0 -0.204423,0.214665 -0.204423,0.214665 0,0 -0.201743,0.210826 -0.201743,0.210826 0,0 -0.199033,0.206946 -0.199033,0.206946 0,0 -0.196289,0.203028 -0.196289,0.203028 0,0 -0.193514,0.199067 -0.193514,0.199067 0,0 -0.190705,0.195066 -0.190705,0.195066 0,0 -0.187866,0.191025 -0.187866,0.191025 0,0 -0.184992,0.186943 -0.184992,0.186943 0,0 -0.182088,0.18282 -0.182088,0.18282 0,0 -0.17915,0.178657 -0.17915,0.178657 0,0 -0.176181,0.174453 -0.176181,0.174453 0,0 -0.173179,0.170208 -0.173179,0.170208 0,0 -0.170145,0.165924 -0.170145,0.165924 0,0 -0.167079,0.161597 -0.167079,0.161597 0,0 -0.163979,0.157231 -0.163979,0.157231 0,0 -0.160849,0.152825 -0.160849,0.152825 0,0 -0.157685,0.148376 -0.157685,0.148376 0,0 -0.154489,0.143889 -0.154489,0.143889 0,0 -0.151261,0.139359 -0.151261,0.139359 0,0 -0.148001,0.13479 -0.148001,0.13479 0,0 -0.144708,0.13018 -0.144708,0.13018 0,0 -0.141383,0.12553 -0.141383,0.12553 0,0 -0.138026,0.120838 -0.138026,0.120838 0,0 -0.134636,0.116106 -0.134636,0.116106 0,0 -0.131214,0.111333 -0.131214,0.111333 0,0 -0.12776,0.106521 -0.12776,0.106521 0,0 -0.124273,0.101666 -0.124273,0.101666 0,0 -0.120754,0.09677 -0.120754,0.09677 0,0 -0.117203,0.09184 -0.117203,0.09184 0,0 -0.11362,0.08686 -0.11362,0.08686 0,0 -0.110003,0.08185 -0.110003,0.08185 0,0 -0.106356,0.07679 -0.106356,0.07679 0,0 -0.102675,0.07169 -0.102675,0.07169 0,0 -0.09896,0.06655 -0.09896,0.06655 0,0 -0.09522,0.06137 -0.09522,0.06137 0,0 -0.09144,0.05616 -0.09144,0.05616 0,0 -0.08763,0.05089 -0.08763,0.05089 0,0 -0.08379,0.04559 -0.08379,0.04559 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.69013361,0,0,0.8224436,163.91455,102.92346)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1253"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1253" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1259"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1259" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1260"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1260" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1261"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1261" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1262"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1262" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1263"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1263" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1271"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1271" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(8.281756,0,0,-11.708906,2242.8433,1995.4378)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1272"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1272" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1273"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1273" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1274"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1274" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1275"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1275" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" + d="m -18.609103,83.636516 c 0,0 -0.08127,0.03743 -0.08127,0.03743 0,0 -0.08783,0.03715 -0.08783,0.03715 0,0 -0.09435,0.03686 -0.09435,0.03686 0,0 -0.100809,0.03658 -0.100809,0.03658 0,0 -0.107221,0.0363 -0.107221,0.0363 0,0 -0.113581,0.03602 -0.113581,0.03602 0,0 -0.119888,0.03574 -0.119888,0.03574 0,0 -0.126145,0.03545 -0.126145,0.03545 0,0 -0.132349,0.03517 -0.132349,0.03517 0,0 -0.138501,0.03489 -0.138501,0.03489 0,0 -0.144603,0.0346 -0.144603,0.0346 0,0 -0.150652,0.03432 -0.150652,0.03432 0,0 -0.156649,0.03404 -0.156649,0.03404 0,0 -0.162595,0.03375 -0.162595,0.03375 0,0 -0.16849,0.03347 -0.16849,0.03347 0,0 -0.174332,0.03319 -0.174332,0.03319 0,0 -0.180123,0.0329 -0.180123,0.0329 0,0 -0.185862,0.03262 -0.185862,0.03262 0,0 -0.19155,0.03234 -0.19155,0.03234 0,0 -0.197185,0.03205 -0.197185,0.03205 0,0 -0.202769,0.03177 -0.202769,0.03177 0,0 -0.208301,0.03149 -0.208301,0.03149 0,0 -0.213782,0.0312 -0.213782,0.0312 0,0 -0.219211,0.03092 -0.219211,0.03092 0,0 -0.224588,0.03063 -0.224588,0.03063 0,0 -0.229914,0.03035 -0.229914,0.03035 0,0 -0.235187,0.03007 -0.235187,0.03007 0,0 -0.240409,0.02978 -0.240409,0.02978 0,0 -0.24558,0.0295 -0.24558,0.0295 0,0 -0.250699,0.02921 -0.250699,0.02921 0,0 -0.255765,0.02893 -0.255765,0.02893 0,0 -0.260781,0.02864 -0.260781,0.02864 0,0 -0.265744,0.02836 -0.265744,0.02836 0,0 -0.270657,0.02807 -0.270657,0.02807 0,0 -0.275516,0.02779 -0.275516,0.02779 0,0 -0.280325,0.02751 -0.280325,0.02751 0,0 -0.285082,0.02722 -0.285082,0.02722 0,0 -0.289787,0.02693 -0.289787,0.02693 0,0 -0.29444,0.02665 -0.29444,0.02665 0,0 -0.299042,0.02636 -0.299042,0.02636 0,0 -0.303591,0.02608 -0.303591,0.02608 0,0 -0.30809,0.02579 -0.30809,0.02579 0,0 -0.312537,0.02551 -0.312537,0.02551 0,0 -0.316932,0.02522 -0.316932,0.02522 0,0 -0.321274,0.02494 -0.321274,0.02494 0,0 -0.325566,0.02465 -0.325566,0.02465 0,0 -0.329806,0.02436 -0.329806,0.02436 0,0 -0.333994,0.02408 -0.333994,0.02408 0,0 -0.338131,0.02379 -0.338131,0.02379 0,0 -0.342215,0.02351 -0.342215,0.02351 0,0 -0.346248,0.02322 -0.346248,0.02322 0,0 -0.350229,0.02293 -0.350229,0.02293 0,0 -0.354159,0.02265 -0.354159,0.02265 0,0 -0.358037,0.02236 -0.358037,0.02236 0,0 -0.361862,0.02207 -0.361862,0.02207 0,0 -0.365638,0.02179 -0.365638,0.02179 0,0 -0.36936,0.0215 -0.36936,0.0215 0,0 -0.373031,0.02121 -0.373031,0.02121 0,0 -0.37665,0.02093 -0.37665,0.02093 0,0 -0.380218,0.02064 -0.380218,0.02064 0,0 -0.383734,0.02035 -0.383734,0.02035 0,0 -0.387199,0.02006 -0.387199,0.02006 0,0 -0.390611,0.01978 -0.390611,0.01978 0,0 -0.393971,0.01949 -0.393971,0.01949 0,0 -0.397281,0.0192 -0.397281,0.0192 0,0 -0.400539,0.01891 -0.400539,0.01891 0,0 -0.403744,0.01863 -0.403744,0.01863 0,0 -0.406898,0.01834 -0.406898,0.01834 0,0 -0.41,0.01805 -0.41,0.01805 0,0 -0.413051,0.01776 -0.413051,0.01776 0,0 -0.41605,0.01748 -0.41605,0.01748 0,0 -0.418998,0.01719 -0.418998,0.01719 0,0 -0.421892,0.0169 -0.421892,0.0169 0,0 -0.424737,0.01661 -0.424737,0.01661 0,0 -0.427529,0.01632 -0.427529,0.01632 0,0 -0.430269,0.01603 -0.430269,0.01603 0,0 -0.432958,0.01575 -0.432958,0.01575 0,0 -0.435595,0.01546 -0.435595,0.01546 0,0 -0.43818,0.01517 -0.43818,0.01517 0,0 -0.440714,0.01488 -0.440714,0.01488 0,0 -0.443196,0.01459 -0.443196,0.01459 0,0 -0.445626,0.0143 -0.445626,0.0143 0,0 -0.448005,0.01401 -0.448005,0.01401 0,0 -0.450331,0.01372 -0.450331,0.01372 0,0 -0.452607,0.01343 -0.452607,0.01343 0,0 -0.45483,0.01314 -0.45483,0.01314 0,0 -0.457002,0.01286 -0.457002,0.01286 0,0 -0.459121,0.01257 -0.459121,0.01257 0,0 -0.461191,0.01228 -0.461191,0.01228 0,0 -0.463206,0.01199 -0.463206,0.01199 0,0 -0.465172,0.0117 -0.465172,0.0117 0,0 -0.467085,0.01141 -0.467085,0.01141 0,0 -0.468946,0.01112 -0.468946,0.01112 0,0 -0.470756,0.01083 -0.470756,0.01083 0,0 -0.472515,0.01054 -0.472515,0.01054 0,0 -0.47422,0.01025 -0.47422,0.01025 0,0 -0.475876,0.01 -0.475876,0.01 0,0 -0.477478,0.0097 -0.477478,0.0097 0,0 -0.47903,0.0094 -0.47903,0.0094 0,0 -0.480529,0.0091 -0.480529,0.0091 0,0 -0.481977,0.0088 -0.481977,0.0088 0,0 -0.483374,0.0085 -0.483374,0.0085 0,0 -0.484718,0.0082 -0.484718,0.0082 0,0 -0.486011,0.0079 -0.486011,0.0079 0,0 -0.487251,0.0076 -0.487251,0.0076 0,0 -0.488442,0.0073 -0.488442,0.0073 0,0 -0.489579,0.007 -0.489579,0.007 0,0 -0.490665,0.0068 -0.490665,0.0068 0,0 -0.491699,0.0065 -0.491699,0.0065 0,0 -0.492682,0.0062 -0.492682,0.0062 0,0 -0.493613,0.0059 -0.493613,0.0059 0,0 -0.494492,0.0056 -0.494492,0.0056 0,0 -0.495319,0.0053 -0.495319,0.0053 0,0 -0.496095,0.005 -0.496095,0.005 0,0 -0.49682,0.0047 -0.49682,0.0047 0,0 -0.497491,0.0044 -0.497491,0.0044 0,0 -0.498113,0.0041 -0.498113,0.0041 0,0 -0.498681,0.0038 -0.498681,0.0038 0,0 -0.499199,0.0035 -0.499199,0.0035 0,0 -0.499664,0.0033 -0.499664,0.0033 0,0 -0.500078,0.003 -0.500078,0.003 0,0 -0.500441,0.0027 -0.500441,0.0027 0,0 -0.500751,0.0024 -0.500751,0.0024 0,0 -0.501009,0.0021 -0.501009,0.0021 0,0 -0.501217,0.0018 -0.501217,0.0018 0,0 -0.501372,0.0015 -0.501372,0.0015 0,0 -0.501476,0.0012 -0.501476,0.0012 0,0 -0.501528,9.15e-4 -0.501528,9.15e-4 0,0 -0.501528,6.22e-4 -0.501528,6.22e-4 0,0 -0.501476,3.29e-4 -0.501476,3.29e-4 0,0 -0.501374,3.6e-5 -0.501374,3.6e-5 0,0 -0.501218,-2.58e-4 -0.501218,-2.58e-4 0,0 -0.501013,-5.51e-4 -0.501013,-5.51e-4 0,0 -0.500753,-8.45e-4 -0.500753,-8.45e-4 0,0 -0.500444,-0.0011 -0.500444,-0.0011 0,0 -0.500083,-0.0014 -0.500083,-0.0014 0,0 -0.499669,-0.0017 -0.499669,-0.0017 0,0 -0.499204,-0.002 -0.499204,-0.002 0,0 -0.498687,-0.0023 -0.498687,-0.0023 0,0 -0.498119,-0.0026 -0.498119,-0.0026 0,0 -0.497498,-0.0029 -0.497498,-0.0029 0,0 -0.496827,-0.0032 -0.496827,-0.0032 0,0 -0.496104,-0.0035 -0.496104,-0.0035 0,0 -0.495328,-0.0038 -0.495328,-0.0038 0,0 -0.494501,-0.0041 -0.494501,-0.0041 0,0 -0.493622,-0.0044 -0.493622,-0.0044 0,0 -0.492692,-0.0047 -0.492692,-0.0047 0,0 -0.49171,-0.005 -0.49171,-0.005 0,0 -0.490677,-0.0053 -0.490677,-0.0053 0,0 -0.489591,-0.0056 -0.489591,-0.0056 0,0 -0.488453,-0.0058 -0.488453,-0.0058 0,0 -0.487265,-0.0061 -0.487265,-0.0061 0,0 -0.486025,-0.0064 -0.486025,-0.0064 0,0 -0.484732,-0.0067 -0.484732,-0.0067 0,0 -0.483388,-0.007 -0.483388,-0.007 0,0 -0.481992,-0.0073 -0.481992,-0.0073 0,0 -0.480545,-0.0076 -0.480545,-0.0076 0,0 -0.479047,-0.0079 -0.479047,-0.0079 0,0 -0.477495,-0.0082 -0.477495,-0.0082 0,0 -0.475893,-0.0085 -0.475893,-0.0085 0,0 -0.474238,-0.0088 -0.474238,-0.0088 0,0 -0.472533,-0.0091 -0.472533,-0.0091 0,0 -0.470776,-0.0094 -0.470776,-0.0094 0,0 -0.468966,-0.0097 -0.468966,-0.0097 0,0 -0.467105,-0.01 -0.467105,-0.01 0,0 -0.465192,-0.01028 -0.465192,-0.01028 0,0 -0.463228,-0.01058 -0.463228,-0.01058 0,0 -0.461212,-0.01087 -0.461212,-0.01087 0,0 -0.459144,-0.01117 -0.459144,-0.01117 0,0 -0.457025,-0.01147 -0.457025,-0.01147 0,0 -0.454853,-0.01176 -0.454853,-0.01176 0,0 -0.452631,-0.01206 -0.452631,-0.01206 0,0 -0.450356,-0.01236 -0.450356,-0.01236 0,0 -0.44803,-0.01265 -0.44803,-0.01265 0,0 -0.445652,-0.01295 -0.445652,-0.01295 0,0 -0.443222,-0.01325 -0.443222,-0.01325 0,0 -0.440741,-0.01355 -0.440741,-0.01355 0,0 -0.438208,-0.01384 -0.438208,-0.01384 0,0 -0.435623,-0.01414 -0.435623,-0.01414 0,0 -0.432986,-0.01444 -0.432986,-0.01444 0,0 -0.430298,-0.01474 -0.430298,-0.01474 0,0 -0.427559,-0.01503 -0.427559,-0.01503 0,0 -0.424767,-0.01533 -0.424767,-0.01533 0,0 -0.421923,-0.01563 -0.421923,-0.01563 0,0 -0.419029,-0.01593 -0.419029,-0.01593 0,0 -0.416082,-0.01622 -0.416082,-0.01622 0,0 -0.413083,-0.01652 -0.413083,-0.01652 0,0 -0.410034,-0.01682 -0.410034,-0.01682 0,0 -0.406931,-0.01712 -0.406931,-0.01712 0,0 -0.403778,-0.01742 -0.403778,-0.01742 0,0 -0.400573,-0.01772 -0.400573,-0.01772 0,0 -0.397316,-0.01802 -0.397316,-0.01802 0,0 -0.394008,-0.01831 -0.394008,-0.01831 0,0 -0.390647,-0.01861 -0.390647,-0.01861 0,0 -0.387235,-0.01891 -0.387235,-0.01891 0,0 -0.383771,-0.01921 -0.383771,-0.01921 0,0 -0.380257,-0.01951 -0.380257,-0.01951 0,0 -0.376688,-0.01981 -0.376688,-0.01981 0,0 -0.373071,-0.02011 -0.373071,-0.02011 0,0 -0.369399,-0.02041 -0.369399,-0.02041 0,0 -0.365678,-0.02071 -0.365678,-0.02071 0,0 -0.361903,-0.02101 -0.361903,-0.02101 0,0 -0.358078,-0.0213 -0.358078,-0.0213 0,0 -0.354201,-0.0216 -0.354201,-0.0216 0,0 -0.350271,-0.0219 -0.350271,-0.0219 0,0 -0.346291,-0.0222 -0.346291,-0.0222 0,0 -0.342255,-0.0225 -0.342255,-0.0225 0,0 -0.33818,-0.0228 -0.33818,-0.0228 0,0 -0.33404,-0.0231 -0.33404,-0.0231 0,0 -0.32985,-0.0234 -0.32985,-0.0234 0,0 -0.32561,-0.0237 -0.32561,-0.0237 0,0 -0.32132,-0.024 -0.32132,-0.024 0,0 -0.31698,-0.0243 -0.31698,-0.0243 0,0 -0.31258,-0.0246 -0.31258,-0.0246 0,0 -0.30814,-0.0249 -0.30814,-0.0249 0,0 -0.30364,-0.0252 -0.30364,-0.0252 0,0 -0.29909,-0.02551 -0.29909,-0.02551 0,0 -0.29449,-0.02581 -0.29449,-0.02581 0,0 -0.28984,-0.02611 -0.28984,-0.02611 0,0 -0.28513,-0.02641 -0.28513,-0.02641 0,0 -0.28038,-0.02671 -0.28038,-0.02671 0,0 -0.27557,-0.02701 -0.27557,-0.02701 0,0 -0.2707,-0.02731 -0.2707,-0.02731 0,0 -0.2658,-0.02761 -0.2658,-0.02761 0,0 -0.26084,-0.02791 -0.26084,-0.02791 0,0 -0.25582,-0.02822 -0.25582,-0.02822 0,0 -0.25075,-0.02852 -0.25075,-0.02852 0,0 -0.24563,-0.02882 -0.24563,-0.02882 0,0 -0.24047,-0.02912 -0.24047,-0.02912 0,0 -0.23524,-0.02942 -0.23524,-0.02942 0,0 -0.22997,-0.02972 -0.22997,-0.02972 0,0 -0.22465,-0.03003 -0.22465,-0.03003 0,0 -0.21927,-0.03033 -0.21927,-0.03033 0,0 -0.21384,-0.03063 -0.21384,-0.03063 0,0 -0.20836,-0.03093 -0.20836,-0.03093 0,0 -0.20283,-0.03124 -0.20283,-0.03124 0,0 -0.19724,-0.03154 -0.19724,-0.03154 0,0 -0.19161,-0.03184 -0.19161,-0.03184 0,0 -0.18592,-0.03214 -0.18592,-0.03214 0,0 -0.18019,-0.03244 -0.18019,-0.03244 0,0 -0.17439,-0.03275 -0.17439,-0.03275 0,0 -0.16856,-0.03305 -0.16856,-0.03305 0,0 -0.16265,-0.03335 -0.16265,-0.03335 0,0 -0.15672,-0.03366 -0.15672,-0.03366 0,0 -0.15071,-0.03396 -0.15071,-0.03396 0,0 -0.14467,-0.03426 -0.14467,-0.03426 0,0 -0.13857,-0.03457 -0.13857,-0.03457 0,0 -0.13241,-0.03487 -0.13241,-0.03487 0,0 -0.12622,-0.03517 -0.12622,-0.03517 0,0 -0.11995,-0.03548 -0.11995,-0.03548 0,0 -0.11365,-0.03578 -0.11365,-0.03578 0,0 -0.10729,-0.03608 -0.10729,-0.03608 0,0 -0.10088,-0.03639 -0.10088,-0.03639 0,0 -0.0944,-0.03669 -0.0944,-0.03669 0,0 -0.0879,-0.037 -0.0879,-0.037 0,0 -0.0813,-0.0373 -0.0813,-0.0373 0,0 -0.08,-0.04012 -0.08,-0.04012 0,0 -0.0839,-0.04543 -0.0839,-0.04543 0,0 -0.0877,-0.0507 -0.0877,-0.0507 0,0 -0.0915,-0.05593 -0.0915,-0.05593 0,0 -0.0953,-0.06112 -0.0953,-0.06112 0,0 -0.099,-0.06627 -0.099,-0.06627 0,0 -0.10276,-0.07138 -0.10276,-0.07138 0,0 -0.10644,-0.07645 -0.10644,-0.07645 0,0 -0.11009,-0.08147 -0.11009,-0.08147 0,0 -0.1137,-0.08646 -0.1137,-0.08646 0,0 -0.11729,-0.09141 -0.11729,-0.09141 0,0 -0.12085,-0.09632 -0.12085,-0.09632 0,0 -0.12436,-0.101182 -0.12436,-0.101182 0,0 -0.12786,-0.106008 -0.12786,-0.106008 0,0 -0.13131,-0.110794 -0.13131,-0.110794 0,0 -0.13473,-0.115539 -0.13473,-0.115539 0,0 -0.13812,-0.120244 -0.13812,-0.120244 0,0 -0.14149,-0.124908 -0.14149,-0.124908 0,0 -0.14481,-0.129533 -0.14481,-0.129533 0,0 -0.1481,-0.134116 -0.1481,-0.134116 0,0 -0.15137,-0.13866 -0.15137,-0.13866 0,0 -0.15459,-0.143163 -0.15459,-0.143163 0,0 -0.15779,-0.147626 -0.15779,-0.147626 0,0 -0.16096,-0.152048 -0.16096,-0.152048 0,0 -0.16409,-0.15643 -0.16409,-0.15643 0,0 -0.16719,-0.160772 -0.16719,-0.160772 0,0 -0.17026,-0.165073 -0.17026,-0.165073 0,0 -0.1733,-0.169334 -0.1733,-0.169334 0,0 -0.17629,-0.173554 -0.17629,-0.173554 0,0 -0.17927,-0.177735 -0.17927,-0.177735 0,0 -0.18221,-0.181874 -0.18221,-0.181874 0,0 -0.18511,-0.185973 -0.18511,-0.185973 0,0 -0.18799,-0.190033 -0.18799,-0.190033 0,0 -0.19083,-0.194051 -0.19083,-0.194051 0,0 -0.19364,-0.19803 -0.19364,-0.19803 0,0 -0.19642,-0.201967 -0.19642,-0.201967 0,0 -0.19916,-0.205865 -0.19916,-0.205865 0,0 -0.20187,-0.209722 -0.20187,-0.209722 0,0 -0.20455,-0.213539 -0.20455,-0.213539 0,0 -0.2072,-0.217316 -0.2072,-0.217316 0,0 -0.20982,-0.221051 -0.20982,-0.221051 0,0 -0.2124,-0.224747 -0.2124,-0.224747 0,0 -0.21495,-0.228402 -0.21495,-0.228402 0,0 -0.21747,-0.232017 -0.21747,-0.232017 0,0 -0.21995,-0.235592 -0.21995,-0.235592 0,0 -0.22241,-0.239126 -0.22241,-0.239126 0,0 -0.22483,-0.24262 -0.22483,-0.24262 0,0 -0.22722,-0.246073 -0.22722,-0.246073 0,0 -0.22958,-0.249487 -0.22958,-0.249487 0,0 -0.2319,-0.252859 -0.2319,-0.252859 0,0 -0.23419,-0.256191 -0.23419,-0.256191 0,0 -0.23645,-0.259483 -0.23645,-0.259483 0,0 -0.23868,-0.262735 -0.23868,-0.262735 0,0 -0.24088,-0.265946 -0.24088,-0.265946 0,0 -0.24303,-0.269117 -0.24303,-0.269117 0,0 -0.24517,-0.272247 -0.24517,-0.272247 0,0 -0.24727,-0.275338 -0.24727,-0.275338 0,0 -0.24933,-0.278387 -0.24933,-0.278387 0,0 -0.25137,-0.281397 -0.25137,-0.281397 0,0 -0.25337,-0.284365 -0.25337,-0.284365 0,0 -0.25533,-0.287295 -0.25533,-0.287295 0,0 -0.25728,-0.290182 -0.25728,-0.290182 0,0 -0.25917,-0.29303 -0.25917,-0.29303 0,0 -0.26105,-0.295838 -0.26105,-0.295838 0,0 -0.26289,-0.298605 -0.26289,-0.298605 0,0 -0.2647,-0.301332 -0.2647,-0.301332 0,0 -0.26647,-0.304018 -0.26647,-0.304018 0,0 -0.26821,-0.306664 -0.26821,-0.306664 0,0 -0.26993,-0.30927 -0.26993,-0.30927 0,0 -0.2716,-0.311835 -0.2716,-0.311835 0,0 -0.27325,-0.31436 -0.27325,-0.31436 0,0 -0.27486,-0.316844 -0.27486,-0.316844 0,0 -0.27644,-0.319289 -0.27644,-0.319289 0,0 -0.27799,-0.321692 -0.27799,-0.321692 0,0 -0.27951,-0.324056 -0.27951,-0.324056 0,0 -0.28099,-0.326379 -0.28099,-0.326379 0,0 -0.28244,-0.328662 -0.28244,-0.328662 0,0 -0.28387,-0.330903 -0.28387,-0.330903 0,0 -0.28525,-0.333106 -0.28525,-0.333106 0,0 -0.2866,-0.335268 -0.2866,-0.335268 0,0 -0.28793,-0.337388 -0.28793,-0.337388 0,0 -0.28921,-0.33947 -0.28921,-0.33947 0,0 -0.29048,-0.341509 -0.29048,-0.341509 0,0 -0.2917,-0.34351 -0.2917,-0.34351 0,0 -0.29289,-0.34547 -0.29289,-0.34547 0,0 -0.29405,-0.347389 -0.29405,-0.347389 0,0 -0.29519,-0.349268 -0.29519,-0.349268 0,0 -0.29628,-0.351106 -0.29628,-0.351106 0,0 -0.29734,-0.352905 -0.29734,-0.352905 0,0 -0.29837,-0.354662 -0.29837,-0.354662 0,0 -0.29937,-0.356381 -0.29937,-0.356381 0,0 -0.30034,-0.358057 -0.30034,-0.358057 0,0 -0.30128,-0.359694 -0.30128,-0.359694 0,0 -0.30217,-0.36129 -0.30217,-0.36129 0,0 -0.30305,-0.362846 -0.30305,-0.362846 0,0 -0.30388,-0.364362 -0.30388,-0.364362 0,0 -0.30469,-0.365837 -0.30469,-0.365837 0,0 -0.30547,-0.367272 -0.30547,-0.367272 0,0 -0.3062,-0.368667 -0.3062,-0.368667 0,0 -0.30691,-0.37002 -0.30691,-0.37002 0,0 -0.30759,-0.371335 -0.30759,-0.371335 0,0 -0.30823,-0.372607 -0.30823,-0.372607 0,0 -0.30884,-0.373841 -0.30884,-0.373841 0,0 -0.30942,-0.375034 -0.30942,-0.375034 0,0 -0.30996,-0.376186 -0.30996,-0.376186 0,0 -0.31049,-0.377297 -0.31049,-0.377297 0,0 -0.31096,-0.378369 -0.31096,-0.378369 0,0 -0.31141,-0.379401 -0.31141,-0.379401 0,0 -0.31183,-0.380391 -0.31183,-0.380391 0,0 -0.31222,-0.381342 -0.31222,-0.381342 0,0 -0.31256,-0.382251 -0.31256,-0.382251 0,0 -0.31289,-0.383122 -0.31289,-0.383122 0,0 -0.31318,-0.38395 -0.31318,-0.38395 0,0 -0.31343,-0.38474 -0.31343,-0.38474 0,0 -0.31366,-0.385488 -0.31366,-0.385488 0,0 -0.31384,-0.386196 -0.31384,-0.386196 0,0 -0.31401,-0.386865 -0.31401,-0.386865 0,0 -0.31413,-0.387491 -0.31413,-0.387491 0,0 -0.31422,-0.388079 -0.31422,-0.388079 0,0 -0.31429,-0.388625 -0.31429,-0.388625 0,0 -0.31432,-0.389132 -0.31432,-0.389132 0,0 -0.31431,-0.389598 -0.31431,-0.389598 0,0 -0.31428,-0.390023 -0.31428,-0.390023 0,0 -0.31421,-0.390409 -0.31421,-0.390409 0,0 -0.31411,-0.390753 -0.31411,-0.390753 0,0 -0.31398,-0.391058 -0.31398,-0.391058 0,0 -0.31381,-0.391322 -0.31381,-0.391322 0,0 -0.31362,-0.391546 -0.31362,-0.391546 0,0 -0.31339,-0.391729 -0.31339,-0.391729 0,0 -0.31312,-0.391872 -0.31312,-0.391872 0,0 -0.31284,-0.391975 -0.31284,-0.391975 0,0 -0.3125,-0.392037 -0.3125,-0.392037 0,0 -0.31215,-0.392059 -0.31215,-0.392059 0,0 -0.31176,-0.39204 -0.31176,-0.39204 0,0 -0.31133,-0.391982 -0.31133,-0.391982 0,0 -0.31088,-0.391882 -0.31088,-0.391882 0,0 -0.31039,-0.391743 -0.31039,-0.391743 0,0 -0.30987,-0.391563 -0.30987,-0.391563 0,0 -0.30932,-0.391342 -0.30932,-0.391342 0,0 -0.30873,-0.391082 -0.30873,-0.391082 0,0 -0.30812,-0.39078 -0.30812,-0.39078 0,0 -0.30746,-0.39044 -0.30746,-0.39044 0,0 -0.30679,-0.390057 -0.30679,-0.390057 0,0 -0.30607,-0.389635 -0.30607,-0.389635 0,0 -0.30532,-0.389173 -0.30532,-0.389173 0,0 -0.30455,-0.388669 -0.30455,-0.388669 0,0 -0.30373,-0.388127 -0.30373,-0.388127 0,0 -0.30289,-0.387542 -0.30289,-0.387542 0,0 -0.30202,-0.386919 -0.30202,-0.386919 0,0 -0.30111,-0.386254 -0.30111,-0.386254 0,0 -0.30016,-0.385549 -0.30016,-0.385549 0,0 -0.2992,-0.384805 -0.2992,-0.384805 0,0 -0.29819,-0.384018 -0.29819,-0.384018 0,0 -0.29715,-0.383193 -0.29715,-0.383193 0,0 -0.29608,-0.382327 -0.29608,-0.382327 0,0 -0.29498,-0.381419 -0.29498,-0.381419 0,0 -0.29385,-0.380473 -0.29385,-0.380473 0,0 -0.29268,-0.379486 -0.29268,-0.379486 0,0 -0.29148,-0.378457 -0.29148,-0.378457 0,0 -0.29025,-0.37739 -0.29025,-0.37739 0,0 -0.28898,-0.376281 -0.28898,-0.376281 0,0 -0.28769,-0.375132 -0.28769,-0.375132 0,0 -0.28636,-0.373943 -0.28636,-0.373943 0,0 -0.28501,-0.372713 -0.28501,-0.372713 0,0 -0.2836,-0.371443 -0.2836,-0.371443 0,0 -0.28219,-0.370133 -0.28219,-0.370133 0,0 -0.28072,-0.368782 -0.28072,-0.368782 0,0 -0.27924,-0.367391 -0.27924,-0.367391 0,0 -0.27771,-0.36596 -0.27771,-0.36596 0,0 -0.27616,-0.364487 -0.27616,-0.364487 0,0 -0.27457,-0.362976 -0.27457,-0.362976 0,0 -0.27295,-0.361423 -0.27295,-0.361423 0,0 -0.2713,-0.35983 -0.2713,-0.35983 0,0 -0.26962,-0.358196 -0.26962,-0.358196 0,0 -0.2679,-0.356523 -0.2679,-0.356523 0,0 -0.26615,-0.354809 -0.26615,-0.354809 0,0 -0.26437,-0.353054 -0.26437,-0.353054 0,0 -0.26256,-0.35126 -0.26256,-0.35126 0,0 -0.26071,-0.349424 -0.26071,-0.349424 0,0 -0.25884,-0.347549 -0.25884,-0.347549 0,0 -0.25692,-0.345633 -0.25692,-0.345633 0,0 -0.25499,-0.343676 -0.25499,-0.343676 0,0 -0.253,-0.34168 -0.253,-0.34168 0,0 -0.251,-0.339643 -0.251,-0.339643 0,0 -0.24897,-0.337565 -0.24897,-0.337565 0,0 -0.24688,-0.335448 -0.24688,-0.335448 0,0 -0.24479,-0.33329 -0.24479,-0.33329 0,0 -0.24265,-0.33109 -0.24265,-0.33109 0,0 -0.24048,-0.328852 -0.24048,-0.328852 0,0 -0.23828,-0.326573 -0.23828,-0.326573 0,0 -0.23604,-0.324253 -0.23604,-0.324253 0,0 -0.23378,-0.321893 -0.23378,-0.321893 0,0 -0.23149,-0.319493 -0.23149,-0.319493 0,0 -0.22915,-0.317052 -0.22915,-0.317052 0,0 -0.22679,-0.314571 -0.22679,-0.314571 0,0 -0.22439,-0.312049 -0.22439,-0.312049 0,0 -0.22197,-0.309487 -0.22197,-0.309487 0,0 -0.2195,-0.306886 -0.2195,-0.306886 0,0 -0.21702,-0.304242 -0.21702,-0.304242 0,0 -0.21449,-0.30156 -0.21449,-0.30156 0,0 -0.21193,-0.298836 -0.21193,-0.298836 0,0 -0.20935,-0.296072 -0.20935,-0.296072 0,0 -0.20672,-0.293269 -0.20672,-0.293269 0,0 -0.20407,-0.290424 -0.20407,-0.290424 0,0 -0.20139,-0.287539 -0.20139,-0.287539 0,0 -0.19866,-0.284613 -0.19866,-0.284613 0,0 -0.19592,-0.281649 -0.19592,-0.281649 0,0 -0.19313,-0.278642 -0.19313,-0.278642 0,0 -0.19032,-0.275596 -0.19032,-0.275596 0,0 -0.18747,-0.272509 -0.18747,-0.272509 0,0 -0.18459,-0.269382 -0.18459,-0.269382 0,0 -0.18168,-0.266215 -0.18168,-0.266215 0,0 -0.17873,-0.263007 -0.17873,-0.263007 0,0 -0.17576,-0.259759 -0.17576,-0.259759 0,0 -0.17274,-0.25647 -0.17274,-0.25647 0,0 -0.16971,-0.253141 -0.16971,-0.253141 0,0 -0.16663,-0.249772 -0.16663,-0.249772 0,0 -0.16353,-0.246363 -0.16353,-0.246363 0,0 -0.16038,-0.242912 -0.16038,-0.242912 0,0 -0.15722,-0.239422 -0.15722,-0.239422 0,0 -0.15401,-0.235891 -0.15401,-0.235891 0,0 -0.15078,-0.23232 -0.15078,-0.23232 0,0 -0.14751,-0.228708 -0.14751,-0.228708 0,0 -0.14421,-0.225056 -0.14421,-0.225056 0,0 -0.14088,-0.221365 -0.14088,-0.221365 0,0 -0.13751,-0.217631 -0.13751,-0.217631 0,0 -0.13411,-0.213859 -0.13411,-0.213859 0,0 -0.13069,-0.210045 -0.13069,-0.210045 0,0 -0.12722,-0.206191 -0.12722,-0.206191 0,0 -0.12373,-0.202298 -0.12373,-0.202298 0,0 -0.12021,-0.198362 -0.12021,-0.198362 0,0 -0.11664,-0.194388 -0.11664,-0.194388 0,0 -0.11306,-0.190373 -0.11306,-0.190373 0,0 -0.10943,-0.186317 -0.10943,-0.186317 0,0 -0.10577,-0.182221 -0.10577,-0.182221 0,0 -0.10209,-0.178085 -0.10209,-0.178085 0,0 -0.0984,-0.173908 -0.0984,-0.173908 0,0 -0.0946,-0.169691 -0.0946,-0.169691 0,0 -0.0908,-0.165433 -0.0908,-0.165433 0,0 -0.087,-0.161136 -0.087,-0.161136 0,0 -0.0832,-0.156797 -0.0832,-0.156797 0,0 -0.0793,-0.152419 -0.0793,-0.152419 0,0 -0.0754,-0.148 -0.0754,-0.148 0,0 -0.0714,-0.143541 -0.0714,-0.143541 0,0 -0.0674,-0.139041 -0.0674,-0.139041 0,0 -0.0634,-0.1345 -0.0634,-0.1345 0,0 -0.0594,-0.129921 -0.0594,-0.129921 0,0 -0.0553,-0.125299 -0.0553,-0.125299 0,0 -0.0512,-0.120639 -0.0512,-0.120639 0,0 -0.0471,-0.115937 -0.0471,-0.115937 0,0 -0.0429,-0.111194 -0.0429,-0.111194 0,0 -0.0387,-0.106413 -0.0387,-0.106413 0,0 -0.0344,-0.10159 -0.0344,-0.10159 0,0 -0.0302,-0.09673 -0.0302,-0.09673 0,0 -0.0259,-0.09182 -0.0259,-0.09182 0,0 -0.0215,-0.08688 -0.0215,-0.08688 0,0 -0.0185,-0.08759 -0.0185,-0.08759 0,0 -0.0167,-0.09394 -0.0167,-0.09394 0,0 -0.015,-0.100245 -0.015,-0.100245 0,0 -0.0133,-0.106497 -0.0133,-0.106497 0,0 -0.0115,-0.1127 -0.0115,-0.1127 0,0 -0.01,-0.118851 -0.01,-0.118851 0,0 -0.008,-0.124953 -0.008,-0.124953 0,0 -0.006,-0.131002 -0.006,-0.131002 0,0 -0.005,-0.137003 -0.005,-0.137003 0,0 -0.003,-0.142952 -0.003,-0.142952 0,0 -0.002,-0.14885 -0.002,-0.14885 0,0 1.3e-4,-0.1547 1.3e-4,-0.1547 0,0 0.002,-0.160496 0.002,-0.160496 0,0 0.003,-0.1662445 0.003,-0.1662445 0,0 0.005,-0.1719407 0.005,-0.1719407 0,0 0.007,-0.1775869 0.007,-0.1775869 0,0 0.008,-0.1831825 0.008,-0.1831825 0,0 0.01,-0.1887275 0.01,-0.1887275 0,0 0.0112,-0.194222 0.0112,-0.194222 0,0 0.0128,-0.199666 0.0128,-0.199666 0,0 0.0143,-0.2050595 0.0143,-0.2050595 0,0 0.0158,-0.2104023 0.0158,-0.2104023 0,0 0.0173,-0.2156946 0.0173,-0.2156946 0,0 0.0188,-0.2209365 0.0188,-0.2209365 0,0 0.0203,-0.2261278 0.0203,-0.2261278 0,0 0.0218,-0.2312684 0.0218,-0.2312684 0,0 0.0232,-0.2363587 0.0232,-0.2363587 0,0 0.0247,-0.2413983 0.0247,-0.2413983 0,0 0.0261,-0.2463874 0.0261,-0.2463874 0,0 0.0276,-0.251326 0.0276,-0.251326 0,0 0.029,-0.256214 0.029,-0.256214 0,0 0.0304,-0.2610514 0.0304,-0.2610514 0,0 0.0318,-0.2658385 0.0318,-0.2658385 0,0 0.0331,-0.2705748 0.0331,-0.2705748 0,0 0.0345,-0.2752606 0.0345,-0.2752606 0,0 0.0359,-0.279896 0.0359,-0.279896 0,0 0.0372,-0.2844808 0.0372,-0.2844808 0,0 0.0385,-0.289015 0.0385,-0.289015 0,0 0.0399,-0.2934987 0.0399,-0.2934987 0,0 0.0412,-0.2979319 0.0412,-0.2979319 0,0 0.0425,-0.3023144 0.0425,-0.3023144 0,0 0.0438,-0.3066466 0.0438,-0.3066466 0,0 0.0451,-0.3109281 0.0451,-0.3109281 0,0 0.0463,-0.315159 0.0463,-0.315159 0,0 0.0476,-0.3193396 0.0476,-0.3193396 0,0 0.0488,-0.3234694 0.0488,-0.3234694 0,0 0.05,-0.3275488 0.05,-0.3275488 0,0 0.0513,-0.3315776 0.0513,-0.3315776 0,0 0.0525,-0.33555596 0.0525,-0.33555596 0,0 0.0537,-0.33948367 0.0537,-0.33948367 0,0 0.0548,-0.34336088 0.0548,-0.34336088 0,0 0.056,-0.34718754 0.056,-0.34718754 0,0 0.0572,-0.35096367 0.0572,-0.35096367 0,0 0.0583,-0.35468926 0.0583,-0.35468926 0,0 0.0595,-0.35836432 0.0595,-0.35836432 0,0 0.0606,-0.3619888 0.0606,-0.3619888 0,0 0.0617,-0.3655627 0.0617,-0.3655627 0,0 0.0628,-0.3690862 0.0628,-0.3690862 0,0 0.0639,-0.3725591 0.0639,-0.3725591 0,0 0.065,-0.3759814 0.065,-0.3759814 0,0 0.066,-0.3793532 0.066,-0.3793532 0,0 0.0671,-0.3826745 0.0671,-0.3826745 0,0 0.0682,-0.3859451 0.0682,-0.3859451 0,0 0.0692,-0.3891654 0.0692,-0.3891654 0,0 0.0702,-0.392335 0.0702,-0.392335 0,0 0.0712,-0.3954541 0.0712,-0.3954541 0,0 0.0722,-0.3985226 0.0722,-0.3985226 0,0 0.0732,-0.4015407 0.0732,-0.4015407 0,0 0.0742,-0.4045081 0.0742,-0.4045081 0,0 0.0752,-0.4074251 0.0752,-0.4074251 0,0 0.0761,-0.4102914 0.0761,-0.4102914 0,0 0.0771,-0.4131073 0.0771,-0.4131073 0,0 0.078,-0.4158726 0.078,-0.4158726 0,0 0.0789,-0.4185874 0.0789,-0.4185874 0,0 0.0798,-0.4212516 0.0798,-0.4212516 0,0 0.0807,-0.4238653 0.0807,-0.4238653 0,0 0.0816,-0.4264284 0.0816,-0.4264284 0,0 0.0825,-0.4289409 0.0825,-0.4289409 0,0 0.0833,-0.431403 0.0833,-0.431403 0,0 0.0842,-0.433815 0.0842,-0.433815 0,0 0.085,-0.436176 0.085,-0.436176 0,0 0.0858,-0.438486 0.0858,-0.438486 0,0 0.0867,-0.440746 0.0867,-0.440746 0,0 0.0875,-0.442955 0.0875,-0.442955 0,0 0.0883,-0.445114 0.0883,-0.445114 0,0 0.089,-0.447223 0.089,-0.447223 0,0 0.0898,-0.44928 0.0898,-0.44928 0,0 0.0906,-0.451287 0.0906,-0.451287 0,0 0.0913,-0.453244 0.0913,-0.453244 0,0 0.0921,-0.45515 0.0921,-0.45515 0,0 0.0928,-0.457006 0.0928,-0.457006 0,0 0.0935,-0.458811 0.0935,-0.458811 0,0 0.0942,-0.460565 0.0942,-0.460565 0,0 0.0949,-0.462269 0.0949,-0.462269 0,0 0.0956,-0.463923 0.0956,-0.463923 0,0 0.0962,-0.465525 0.0962,-0.465525 0,0 0.0969,-0.467078 0.0969,-0.467078 0,0 0.0975,-0.46858 0.0975,-0.46858 0,0 0.0981,-0.47003 0.0981,-0.47003 0,0 0.0988,-0.471432 0.0988,-0.471432 0,0 0.0994,-0.472782 0.0994,-0.472782 0,0 0.1,-0.474081 0.1,-0.474081 0,0 0.10056,-0.475331 0.10056,-0.475331 0,0 0.10113,-0.476529 0.10113,-0.476529 0,0 0.10169,-0.477677 0.10169,-0.477677 0,0 0.10224,-0.478774 0.10224,-0.478774 0,0 0.10278,-0.479821 0.10278,-0.479821 0,0 0.10331,-0.480818 0.10331,-0.480818 0,0 0.10383,-0.481764 0.10383,-0.481764 0,0 0.10433,-0.482659 0.10433,-0.482659 0,0 0.10482,-0.483503 0.10482,-0.483503 0,0 0.10531,-0.484298 0.10531,-0.484298 0,0 0.10577,-0.485042 0.10577,-0.485042 0,0 0.10623,-0.485734 0.10623,-0.485734 0,0 0.10669,-0.486378 0.10669,-0.486378 0,0 0.10711,-0.486969 0.10711,-0.486969 0,0 0.10754,-0.487511 0.10754,-0.487511 0,0 0.10796,-0.488002 0.10796,-0.488002 0,0 0.10835,-0.488442 0.10835,-0.488442 0,0 0.10874,-0.488832 0.10874,-0.488832 0,0 0.10913,-0.489172 0.10913,-0.489172 0,0 0.10948,-0.48946 0.10948,-0.48946 0,0 0.10985,-0.489699 0.10985,-0.489699 0,0 0.11018,-0.489886 0.11018,-0.489886 0,0 0.11052,-0.490024 0.11052,-0.490024 0,0 0.11084,-0.49011 0.11084,-0.49011 0,0 0.11115,-0.490146 0.11115,-0.490146 0,0 0.11144,-0.490132 0.11144,-0.490132 0,0 0.11173,-0.490067 0.11173,-0.490067 0,0 0.11201,-0.489951 0.11201,-0.489951 0,0 0.11227,-0.489785 0.11227,-0.489785 0,0 0.11251,-0.489569 0.11251,-0.489569 0,0 0.11276,-0.489302 0.11276,-0.489302 0,0 0.11299,-0.488984 0.11299,-0.488984 0,0 0.1132,-0.488615 0.1132,-0.488615 0,0 0.11341,-0.488197 0.11341,-0.488197 0,0 0.1136,-0.487728 0.1136,-0.487728 0,0 0.11379,-0.487208 0.11379,-0.487208 0,0 0.11395,-0.486637 0.11395,-0.486637 0,0 0.11412,-0.486016 0.11412,-0.486016 0,0 0.11426,-0.485345 0.11426,-0.485345 0,0 0.1144,-0.484623 0.1144,-0.484623 0,0 0.11452,-0.483851 0.11452,-0.483851 0,0 0.11464,-0.483027 0.11464,-0.483027 0,0 0.11473,-0.482154 0.11473,-0.482154 0,0 0.11483,-0.48123 0.11483,-0.48123 0,0 0.11491,-0.480255 0.11491,-0.480255 0,0 0.11497,-0.479229 0.11497,-0.479229 0,0 0.11503,-0.478154 0.11503,-0.478154 0,0 0.11507,-0.477027 0.11507,-0.477027 0,0 0.1151,-0.475851 0.1151,-0.475851 0,0 0.11513,-0.474623 0.11513,-0.474623 0,0 0.11513,-0.473346 0.11513,-0.473346 0,0 0.11513,-0.472016 0.11513,-0.472016 0,0 0.11512,-0.470638 0.11512,-0.470638 0,0 0.1151,-0.469208 0.1151,-0.469208 0,0 0.11505,-0.467728 0.11505,-0.467728 0,0 0.11501,-0.466198 0.11501,-0.466198 0,0 0.11495,-0.464616 0.11495,-0.464616 0,0 0.11488,-0.462984 0.11488,-0.462984 0,0 0.11479,-0.461303 0.11479,-0.461303 0,0 0.1147,-0.459569 0.1147,-0.459569 0,0 0.1146,-0.457786 0.1146,-0.457786 0,0 0.11447,-0.455952 0.11447,-0.455952 0,0 0.11435,-0.454068 0.11435,-0.454068 0,0 0.11421,-0.452132 0.11421,-0.452132 0,0 0.11405,-0.450148 0.11405,-0.450148 0,0 0.1139,-0.448111 0.1139,-0.448111 0,0 0.11371,-0.446024 0.11371,-0.446024 0,0 0.11354,-0.443887 0.11354,-0.443887 0,0 0.11333,-0.4417 0.11333,-0.4417 0,0 0.11312,-0.439461 0.11312,-0.439461 0,0 0.1129,-0.437173 0.1129,-0.437173 0,0 0.11267,-0.434833 0.11267,-0.434833 0,0 0.11243,-0.432444 0.11243,-0.432444 0,0 0.11217,-0.430003 0.11217,-0.430003 0,0 0.1119,-0.427512 0.1119,-0.427512 0,0 0.11163,-0.424971 0.11163,-0.424971 0,0 0.11133,-0.422379 0.11133,-0.422379 0,0 0.11103,-0.419736 0.11103,-0.419736 0,0 0.11072,-0.417043 0.11072,-0.417043 0,0 0.1104,-0.414299 0.1104,-0.414299 0,0 0.11006,-0.411505 0.11006,-0.411505 0,0 0.10971,-0.408661 0.10971,-0.408661 0,0 0.10935,-0.405765 0.10935,-0.405765 0,0 0.10898,-0.40282 0.10898,-0.40282 0,0 0.1086,-0.399823 0.1086,-0.399823 0,0 0.1082,-0.396776 0.1082,-0.396776 0,0 0.1078,-0.393679 0.1078,-0.393679 0,0 0.10739,-0.390531 0.10739,-0.390531 0,0 0.10695,-0.387332 0.10695,-0.387332 0,0 0.10651,-0.384083 0.10651,-0.384083 0,0 0.10607,-0.380784 0.10607,-0.380784 0,0 0.1056,-0.377434 0.1056,-0.377434 0,0 0.10512,-0.374033 0.10512,-0.374033 0,0 0.10464,-0.370581 0.10464,-0.370581 0,0 0.10414,-0.36708 0.10414,-0.36708 0,0 0.10364,-0.363528 0.10364,-0.363528 0,0 0.10311,-0.359925 0.10311,-0.359925 0,0 0.10258,-0.356271 0.10258,-0.356271 0,0 0.10204,-0.352568 0.10204,-0.352568 0,0 0.10148,-0.348813 0.10148,-0.348813 0,0 0.10091,-0.345008 0.10091,-0.345008 0,0 0.10034,-0.341153 0.10034,-0.341153 0,0 0.0998,-0.337246 0.0998,-0.337246 0,0 0.0991,-0.33329 0.0991,-0.33329 0,0 0.0985,-0.329283 0.0985,-0.329283 0,0 0.0979,-0.325225 0.0979,-0.325225 0,0 0.0973,-0.321117 0.0973,-0.321117 0,0 0.0966,-0.316958 0.0966,-0.316958 0,0 0.096,-0.312749 0.096,-0.312749 0,0 0.0953,-0.308489 0.0953,-0.308489 0,0 0.0946,-0.304178 0.0946,-0.304178 0,0 0.0939,-0.299818 0.0939,-0.299818 0,0 0.0932,-0.295406 0.0932,-0.295406 0,0 0.0925,-0.290944 0.0925,-0.290944 0,0 0.0918,-0.286431 0.0918,-0.286431 0,0 0.091,-0.281869 0.091,-0.281869 0,0 0.0903,-0.277255 0.0903,-0.277255 0,0 0.0895,-0.27259 0.0895,-0.27259 0,0 0.0888,-0.267876 0.0888,-0.267876 0,0 0.088,-0.26311 0.088,-0.26311 0,0 0.0872,-0.258295 0.0872,-0.258295 0,0 0.0864,-0.253429 0.0864,-0.253429 0,0 0.0855,-0.248511 0.0855,-0.248511 0,0 0.0847,-0.243544 0.0847,-0.243544 0,0 0.0839,-0.238526 0.0839,-0.238526 0,0 0.083,-0.233458 0.083,-0.233458 0,0 0.0821,-0.228338 0.0821,-0.228338 0,0 0.0813,-0.223169 0.0813,-0.223169 0,0 0.0804,-0.217949 0.0804,-0.217949 0,0 0.0795,-0.212678 0.0795,-0.212678 0,0 0.0786,-0.207357 0.0786,-0.207357 0,0 0.0776,-0.201986 0.0776,-0.201986 0,0 0.0767,-0.196562 0.0767,-0.196562 0,0 0.0758,-0.19109 0.0758,-0.19109 0,0 0.0748,-0.185567 0.0748,-0.185567 0,0 0.0738,-0.179993 0.0738,-0.179993 0,0 0.0728,-0.174368 0.0728,-0.174368 0,0 0.0719,-0.168693 0.0719,-0.168693 0,0 0.0709,-0.162968 0.0709,-0.162968 0,0 0.0698,-0.157192 0.0698,-0.157192 0,0 0.0688,-0.151365 0.0688,-0.151365 0,0 0.0678,-0.145488 0.0678,-0.145488 0,0 0.0667,-0.13956 0.0667,-0.13956 0,0 0.0657,-0.133582 0.0657,-0.133582 0,0 0.0646,-0.127553 0.0646,-0.127553 0,0 0.0635,-0.121474 0.0635,-0.121474 0,0 0.0624,-0.115344 0.0624,-0.115344 0,0 0.0613,-0.109163 0.0613,-0.109163 0,0 0.0602,-0.102933 0.0602,-0.102933 0,0 0.059,-0.09665 0.059,-0.09665 0,0 0.0579,-0.09032 0.0579,-0.09032 0,0 0.0567,-0.08394 0.0567,-0.08394 0,0 0.0556,-0.0775 0.0556,-0.0775 0,0 0.0544,-0.07102 0.0544,-0.07102 0,0 0.0568,-0.06907 0.0568,-0.06907 0,0 0.0629,-0.07166 0.0629,-0.07166 0,0 0.0688,-0.07423 0.0688,-0.07423 0,0 0.0748,-0.07678 0.0748,-0.07678 0,0 0.0807,-0.0793 0.0807,-0.0793 0,0 0.0865,-0.0818 0.0865,-0.0818 0,0 0.0923,-0.08429 0.0923,-0.08429 0,0 0.0981,-0.08674 0.0981,-0.08674 0,0 0.10377,-0.08918 0.10377,-0.08918 0,0 0.10943,-0.09159 0.10943,-0.09159 0,0 0.11503,-0.09398 0.11503,-0.09398 0,0 0.12061,-0.09635 0.12061,-0.09635 0,0 0.12612,-0.09869 0.12612,-0.09869 0,0 0.13159,-0.101017 0.13159,-0.101017 0,0 0.13701,-0.103318 0.13701,-0.103318 0,0 0.1424,-0.105595 0.1424,-0.105595 0,0 0.14772,-0.107851 0.14772,-0.107851 0,0 0.15302,-0.110084 0.15302,-0.110084 0,0 0.15825,-0.112294 0.15825,-0.112294 0,0 0.16344,-0.114482 0.16344,-0.114482 0,0 0.16859,-0.116648 0.16859,-0.116648 0,0 0.17369,-0.11879 0.17369,-0.11879 0,0 0.17875,-0.120911 0.17875,-0.120911 0,0 0.18375,-0.123009 0.18375,-0.123009 0,0 0.18871,-0.125084 0.18871,-0.125084 0,0 0.19362,-0.127138 0.19362,-0.127138 0,0 0.19849,-0.129168 0.19849,-0.129168 0,0 0.20331,-0.131175 0.20331,-0.131175 0,0 0.20809,-0.133161 0.20809,-0.133161 0,0 0.21282,-0.135125 0.21282,-0.135125 0,0 0.21749,-0.137064 0.21749,-0.137064 0,0 0.22213,-0.138983 0.22213,-0.138983 0,0 0.22672,-0.140878 0.22672,-0.140878 0,0 0.23127,-0.142751 0.23127,-0.142751 0,0 0.23575,-0.144602 0.23575,-0.144602 0,0 0.24021,-0.14643 0.24021,-0.14643 0,0 0.24461,-0.148235 0.24461,-0.148235 0,0 0.24897,-0.150018 0.24897,-0.150018 0,0 0.25327,-0.151779 0.25327,-0.151779 0,0 0.25754,-0.153516 0.25754,-0.153516 0,0 0.26176,-0.155233 0.26176,-0.155233 0,0 0.26593,-0.156925 0.26593,-0.156925 0,0 0.27005,-0.158596 0.27005,-0.158596 0,0 0.27413,-0.160244 0.27413,-0.160244 0,0 0.27816,-0.161869 0.27816,-0.161869 0,0 0.28214,-0.163473 0.28214,-0.163473 0,0 0.28608,-0.165053 0.28608,-0.165053 0,0 0.28997,-0.166611 0.28997,-0.166611 0,0 0.29382,-0.168147 0.29382,-0.168147 0,0 0.29762,-0.16966 0.29762,-0.16966 0,0 0.30137,-0.17115 0.30137,-0.17115 0,0 0.30508,-0.172619 0.30508,-0.172619 0,0 0.30873,-0.174064 0.30873,-0.174064 0,0 0.31235,-0.175487 0.31235,-0.175487 0,0 0.31591,-0.176888 0.31591,-0.176888 0,0 0.31944,-0.178266 0.31944,-0.178266 0,0 0.3229,-0.179622 0.3229,-0.179622 0,0 0.32634,-0.180954 0.32634,-0.180954 0,0 0.32971,-0.182266 0.32971,-0.182266 0,0 0.33305,-0.183553 0.33305,-0.183553 0,0 0.33634,-0.184819 0.33634,-0.184819 0,0 0.33958,-0.186063 0.33958,-0.186063 0,0 0.34277,-0.187282 0.34277,-0.187282 0,0 0.34592,-0.188482 0.34592,-0.188482 0,0 0.34902,-0.189656 0.34902,-0.189656 0,0 0.35208,-0.19081 0.35208,-0.19081 0,0 0.35509,-0.191941 0.35509,-0.191941 0,0 0.35804,-0.193049 0.35804,-0.193049 0,0 0.36097,-0.194134 0.36097,-0.194134 0,0 0.36383,-0.195198 0.36383,-0.195198 0,0 0.36666,-0.196238 0.36666,-0.196238 0,0 0.36943,-0.197256 0.36943,-0.197256 0,0 0.37217,-0.198253 0.37217,-0.198253 0,0 0.37484,-0.199225 0.37484,-0.199225 0,0 0.37749,-0.200176 0.37749,-0.200176 0,0 0.38007,-0.201105 0.38007,-0.201105 0,0 0.38262,-0.20201 0.38262,-0.20201 0,0 0.38512,-0.202893 0.38512,-0.202893 0,0 0.38757,-0.203754 0.38757,-0.203754 0,0 0.38997,-0.204592 0.38997,-0.204592 0,0 0.39233,-0.205409 0.39233,-0.205409 0,0 0.39464,-0.206201 0.39464,-0.206201 0,0 0.39691,-0.206972 0.39691,-0.206972 0,0 0.39913,-0.20772 0.39913,-0.20772 0,0 0.4013,-0.208446 0.4013,-0.208446 0,0 0.40342,-0.20915 0.40342,-0.20915 0,0 0.40551,-0.20983 0.40551,-0.20983 0,0 0.40753,-0.210488 0.40753,-0.210488 0,0 0.40953,-0.211125 0.40953,-0.211125 0,0 0.41146,-0.211737 0.41146,-0.211737 0,0 0.41336,-0.212328 0.41336,-0.212328 0,0 0.41521,-0.212897 0.41521,-0.212897 0,0 0.417,-0.213443 0.417,-0.213443 0,0 0.41876,-0.213965 0.41876,-0.213965 0,0 0.42047,-0.214467 0.42047,-0.214467 0,0 0.42213,-0.214945 0.42213,-0.214945 0,0 0.42375,-0.215401 0.42375,-0.215401 0,0 0.42531,-0.215834 0.42531,-0.215834 0,0 0.42684,-0.216245 0.42684,-0.216245 0,0 0.42831,-0.216633 0.42831,-0.216633 0,0 0.42974,-0.216999 0.42974,-0.216999 0,0 0.43112,-0.217342 0.43112,-0.217342 0,0 0.43246,-0.217664 0.43246,-0.217664 0,0 0.43374,-0.217961 0.43374,-0.217961 0,0 0.43499,-0.218238 0.43499,-0.218238 0,0 0.43619,-0.218491 0.43619,-0.218491 0,0 0.43734,-0.218722 0.43734,-0.218722 0,0 0.43844,-0.21893 0.43844,-0.21893 0,0 0.4395,-0.219116 0.4395,-0.219116 0,0 0.44051,-0.21928 0.44051,-0.21928 0,0 0.44147,-0.21942 0.44147,-0.21942 0,0 0.44239,-0.219539 0.44239,-0.219539 0,0 0.44327,-0.219635 0.44327,-0.219635 0,0 0.44409,-0.219708 0.44409,-0.219708 0,0 0.44486,-0.219759 0.44486,-0.219759 0,0 0.4456,-0.219788 0.4456,-0.219788 0,0 0.44629,-0.219793 0.44629,-0.219793 0,0 0.44692,-0.219777 0.44692,-0.219777 0,0 0.44752,-0.219738 0.44752,-0.219738 0,0 0.44806,-0.219676 0.44806,-0.219676 0,0 0.44856,-0.219593 0.44856,-0.219593 0,0 0.44901,-0.219485 0.44901,-0.219485 0,0 0.44943,-0.219357 0.44943,-0.219357 0,0 0.44978,-0.219205 0.44978,-0.219205 0,0 0.4501,-0.219032 0.4501,-0.219032 0,0 0.45036,-0.218836 0.45036,-0.218836 0,0 0.45058,-0.21861 0.45058,-0.21861 0,0 0.45076,-0.21838 0.45076,-0.21838 0,0 0.45089,-0.21811 0.45089,-0.21811 0,0 0.45097,-0.21782 0.45097,-0.21782 0,0 0.451,-0.21752 0.451,-0.21752 0,0 0.45099,-0.21718 0.45099,-0.21718 0,0 0.45094,-0.21683 0.45094,-0.21683 0,0 0.45083,-0.21645 0.45083,-0.21645 0,0 0.45068,-0.21606 0.45068,-0.21606 0,0 0.45048,-0.21563 0.45048,-0.21563 0,0 0.45024,-0.21519 0.45024,-0.21519 0,0 0.44995,-0.21472 0.44995,-0.21472 0,0 0.44961,-0.21423 0.44961,-0.21423 0,0 0.44923,-0.21372 0.44923,-0.21372 0,0 0.44879,-0.21319 0.44879,-0.21319 0,0 0.44833,-0.21263 0.44833,-0.21263 0,0 0.4478,-0.21205 0.4478,-0.21205 0,0 0.44723,-0.21145 0.44723,-0.21145 0,0 0.446614,-0.21083 0.446614,-0.21083 0,0 0.445954,-0.21018 0.445954,-0.21018 0,0 0.445246,-0.20951 0.445246,-0.20951 0,0 0.44449,-0.20882 0.44449,-0.20882 0,0 0.44369,-0.20811 0.44369,-0.20811 0,0 0.442842,-0.20737 0.442842,-0.20737 0,0 0.441947,-0.20661 0.441947,-0.20661 0,0 0.441007,-0.20583 0.441007,-0.20583 0,0 0.440019,-0.20503 0.440019,-0.20503 0,0 0.438986,-0.2042 0.438986,-0.2042 0,0 0.437906,-0.20335 0.437906,-0.20335 0,0 0.43678,-0.20248 0.43678,-0.20248 0,0 0.435606,-0.20158 0.435606,-0.20158 0,0 0.434387,-0.20067 0.434387,-0.20067 0,0 0.433121,-0.19973 0.433121,-0.19973 0,0 0.431808,-0.19877 0.431808,-0.19877 0,0 0.43045,-0.19778 0.43045,-0.19778 0,0 0.429044,-0.19678 0.429044,-0.19678 0,0 0.427593,-0.19575 0.427593,-0.19575 0,0 0.426094,-0.1947 0.426094,-0.1947 0,0 0.424549,-0.19363 0.424549,-0.19363 0,0 0.422959,-0.19252 0.422959,-0.19252 0,0 0.42132,-0.19141 0.42132,-0.19141 0,0 0.419637,-0.19027 0.419637,-0.19027 0,0 0.417906,-0.18911 0.417906,-0.18911 0,0 0.416129,-0.18791 0.416129,-0.18791 0,0 0.414305,-0.18671 0.414305,-0.18671 0,0 0.412436,-0.18548 0.412436,-0.18548 0,0 0.410518,-0.18423 0.410518,-0.18423 0,0 0.408557,-0.18294 0.408557,-0.18294 0,0 0.406546,-0.18165 0.406546,-0.18165 0,0 0.404491,-0.18033 0.404491,-0.18033 0,0 0.402389,-0.17899 0.402389,-0.17899 0,0 0.400239,-0.17762 0.400239,-0.17762 0,0 0.398045,-0.17622 0.398045,-0.17622 0,0 0.395803,-0.17482 0.395803,-0.17482 0,0 0.393514,-0.17339 0.393514,-0.17339 0,0 0.39118,-0.17193 0.39118,-0.17193 0,0 0.388799,-0.17045 0.388799,-0.17045 0,0 0.386372,-0.16894 0.386372,-0.16894 0,0 0.383897,-0.16743 0.383897,-0.16743 0,0 0.381377,-0.16588 0.381377,-0.16588 0,0 0.37881,-0.16431 0.37881,-0.16431 0,0 0.376196,-0.16271 0.376196,-0.16271 0,0 0.373537,-0.16111 0.373537,-0.16111 0,0 0.37083,-0.15947 0.37083,-0.15947 0,0 0.368078,-0.15781 0.368078,-0.15781 0,0 0.365278,-0.15613 0.365278,-0.15613 0,0 0.362432,-0.15442 0.362432,-0.15442 0,0 0.359541,-0.1527 0.359541,-0.1527 0,0 0.356601,-0.15095 0.356601,-0.15095 0,0 0.353617,-0.14918 0.353617,-0.14918 0,0 0.350584,-0.14739 0.350584,-0.14739 0,0 0.347507,-0.14557 0.347507,-0.14557 0,0 0.344382,-0.14373 0.344382,-0.14373 0,0 0.341212,-0.14187 0.341212,-0.14187 0,0 0.337994,-0.13998 0.337994,-0.13998 0,0 0.334729,-0.13808 0.334729,-0.13808 0,0 0.33142,-0.13615 0.33142,-0.13615 0,0 0.328063,-0.13421 0.328063,-0.13421 0,0 0.324659,-0.13222 0.324659,-0.13222 0,0 0.321209,-0.13023 0.321209,-0.13023 0,0 0.317714,-0.12821 0.317714,-0.12821 0,0 0.31417,-0.12618 0.31417,-0.12618 0,0 0.310582,-0.1241 0.310582,-0.1241 0,0 0.306946,-0.12202 0.306946,-0.12202 0,0 0.303263,-0.11992 0.303263,-0.11992 0,0 0.299535,-0.11778 0.299535,-0.11778 0,0 0.29576,-0.11563 0.29576,-0.11563 0,0 0.291939,-0.11345 0.291939,-0.11345 0,0 0.288071,-0.11125 0.288071,-0.11125 0,0 0.284156,-0.10904 0.284156,-0.10904 0,0 0.280195,-0.10678 0.280195,-0.10678 0,0 0.276188,-0.10453 0.276188,-0.10453 0,0 0.272134,-0.10223 0.272134,-0.10223 0,0 0.268034,-0.0999 0.268034,-0.0999 0,0 0.263887,-0.0976 0.263887,-0.0976 0,0 0.259694,-0.0952 0.259694,-0.0952 0,0 0.255454,-0.0928 0.255454,-0.0928 0,0 0.251168,-0.0905 0.251168,-0.0905 0,0 0.246836,-0.088 0.246836,-0.088 0,0 0.242456,-0.0856 0.242456,-0.0856 0,0 0.238031,-0.0831 0.238031,-0.0831 0,0 0.233559,-0.0806 0.233559,-0.0806 0,0 0.22904,-0.0781 0.22904,-0.0781 0,0 0.224476,-0.0756 0.224476,-0.0756 0,0 0.219864,-0.073 0.219864,-0.073 0,0 0.215206,-0.0704 0.215206,-0.0704 0,0 0.210502,-0.0678 0.210502,-0.0678 0,0 0.205751,-0.0652 0.205751,-0.0652 0,0 0.200954,-0.0626 0.200954,-0.0626 0,0 0.19611,-0.0599 0.19611,-0.0599 0,0 0.19122,-0.0572 0.19122,-0.0572 0,0 0.186283,-0.0545 0.186283,-0.0545 0,0 0.1813,-0.0517 0.1813,-0.0517 0,0 0.176271,-0.049 0.176271,-0.049 0,0 0.171194,-0.0462 0.171194,-0.0462 0,0 0.166072,-0.0434 0.166072,-0.0434 0,0 0.160903,-0.0406 0.160903,-0.0406 0,0 0.155688,-0.0377 0.155688,-0.0377 0,0 0.150425,-0.0348 0.150425,-0.0348 0,0 0.145118,-0.0319 0.145118,-0.0319 0,0 0.139762,-0.029 0.139762,-0.029 0,0 0.134361,-0.0261 0.134361,-0.0261 0,0 0.128914,-0.0231 0.128914,-0.0231 0,0 0.123419,-0.0201 0.123419,-0.0201 0,0 0.117879,-0.0171 0.117879,-0.0171 0,0 0.112291,-0.0141 0.112291,-0.0141 0,0 0.106658,-0.011 0.106658,-0.011 0,0 0.100977,-0.008 0.100977,-0.008 0,0 0.09525,-0.005 0.09525,-0.005 0,0 0.08948,-0.002 0.08948,-0.002 0,0 0.0895,0.001 0.0895,0.001 0,0 0.09531,0.004 0.09531,0.004 0,0 0.101076,0.008 0.101076,0.008 0,0 0.106795,0.0106 0.106795,0.0106 0,0 0.112468,0.0137 0.112468,0.0137 0,0 0.118093,0.0167 0.118093,0.0167 0,0 0.123671,0.0197 0.123671,0.0197 0,0 0.129204,0.0226 0.129204,0.0226 0,0 0.134688,0.0256 0.134688,0.0256 0,0 0.140128,0.0285 0.140128,0.0285 0,0 0.145518,0.0314 0.145518,0.0314 0,0 0.150864,0.0343 0.150864,0.0343 0,0 0.156161,0.0372 0.156161,0.0372 0,0 0.161413,0.04 0.161413,0.04 0,0 0.166618,0.0428 0.166618,0.0428 0,0 0.171775,0.0456 0.171775,0.0456 0,0 0.176886,0.0483 0.176886,0.0483 0,0 0.181951,0.0511 0.181951,0.0511 0,0 0.186968,0.0538 0.186968,0.0538 0,0 0.191938,0.0565 0.191938,0.0565 0,0 0.196863,0.0592 0.196863,0.0592 0,0 0.20174,0.0619 0.20174,0.0619 0,0 0.20657,0.0645 0.20657,0.0645 0,0 0.211354,0.0671 0.211354,0.0671 0,0 0.216091,0.0697 0.216091,0.0697 0,0 0.220781,0.0723 0.220781,0.0723 0,0 0.225424,0.0748 0.225424,0.0748 0,0 0.230021,0.0773 0.230021,0.0773 0,0 0.234571,0.0798 0.234571,0.0798 0,0 0.239074,0.0823 0.239074,0.0823 0,0 0.24353,0.0848 0.24353,0.0848 0,0 0.247939,0.0872 0.247939,0.0872 0,0 0.252303,0.0896 0.252303,0.0896 0,0 0.256618,0.092 0.256618,0.092 0,0 0.260888,0.0944 0.260888,0.0944 0,0 0.26511,0.0967 0.26511,0.0967 0,0 0.269285,0.099 0.269285,0.099 0,0 0.273415,0.10133 0.273415,0.10133 0,0 0.277497,0.1036 0.277497,0.1036 0,0 0.281532,0.10585 0.281532,0.10585 0,0 0.285521,0.10809 0.285521,0.10809 0,0 0.289462,0.1103 0.289462,0.1103 0,0 0.293358,0.11248 0.293358,0.11248 0,0 0.297206,0.11465 0.297206,0.11465 0,0 0.301008,0.11679 0.301008,0.11679 0,0 0.304762,0.11891 0.304762,0.11891 0,0 0.30847,0.12101 0.30847,0.12101 0,0 0.312132,0.12308 0.312132,0.12308 0,0 0.315746,0.12514 0.315746,0.12514 0,0 0.319314,0.12717 0.319314,0.12717 0,0 0.322835,0.12917 0.322835,0.12917 0,0 0.326309,0.13116 0.326309,0.13116 0,0 0.329736,0.13313 0.329736,0.13313 0,0 0.333117,0.13506 0.333117,0.13506 0,0 0.336451,0.13699 0.336451,0.13699 0,0 0.339739,0.13888 0.339739,0.13888 0,0 0.342978,0.14075 0.342978,0.14075 0,0 0.346172,0.14261 0.346172,0.14261 0,0 0.349319,0.14444 0.349319,0.14444 0,0 0.352419,0.14624 0.352419,0.14624 0,0 0.355472,0.14803 0.355472,0.14803 0,0 0.358479,0.14979 0.358479,0.14979 0,0 0.361438,0.15153 0.361438,0.15153 0,0 0.364352,0.15325 0.364352,0.15325 0,0 0.367218,0.15494 0.367218,0.15494 0,0 0.370037,0.15662 0.370037,0.15662 0,0 0.37281,0.15826 0.37281,0.15826 0,0 0.375535,0.1599 0.375535,0.1599 0,0 0.378215,0.1615 0.378215,0.1615 0,0 0.380848,0.16308 0.380848,0.16308 0,0 0.383433,0.16465 0.383433,0.16465 0,0 0.385971,0.16618 0.385971,0.16618 0,0 0.388464,0.1677 0.388464,0.1677 0,0 0.39091,0.1692 0.39091,0.1692 0,0 0.393307,0.17067 0.393307,0.17067 0,0 0.39566,0.17211 0.39566,0.17211 0,0 0.397964,0.17354 0.397964,0.17354 0,0 0.400223,0.17495 0.400223,0.17495 0,0 0.402435,0.17633 0.402435,0.17633 0,0 0.404599,0.17769 0.404599,0.17769 0,0 0.406717,0.17903 0.406717,0.17903 0,0 0.408788,0.18034 0.408788,0.18034 0,0 0.410813,0.18164 0.410813,0.18164 0,0 0.41279,0.18291 0.41279,0.18291 0,0 0.414721,0.18415 0.414721,0.18415 0,0 0.416605,0.18538 0.416605,0.18538 0,0 0.418443,0.18659 0.418443,0.18659 0,0 0.420233,0.18776 0.420233,0.18776 0,0 0.421977,0.18893 0.421977,0.18893 0,0 0.423674,0.19006 0.423674,0.19006 0,0 0.425325,0.19117 0.425325,0.19117 0,0 0.426928,0.19227 0.426928,0.19227 0,0 0.428485,0.19333 0.428485,0.19333 0,0 0.429994,0.19439 0.429994,0.19439 0,0 0.431458,0.1954 0.431458,0.1954 0,0 0.432875,0.19641 0.432875,0.19641 0,0 0.434244,0.19739 0.434244,0.19739 0,0 0.435567,0.19835 0.435567,0.19835 0,0 0.436843,0.19928 0.436843,0.19928 0,0 0.438072,0.2002 0.438072,0.2002 0,0 0.439256,0.20109 0.439256,0.20109 0,0 0.440391,0.20195 0.440391,0.20195 0,0 0.44148,0.2028 0.44148,0.2028 0,0 0.442522,0.20363 0.442522,0.20363 0,0 0.443518,0.20442 0.443518,0.20442 0,0 0.444467,0.2052 0.444467,0.2052 0,0 0.445369,0.20596 0.445369,0.20596 0,0 0.446224,0.2067 0.446224,0.2067 0,0 0.447032,0.20741 0.447032,0.20741 0,0 0.447795,0.20809 0.447795,0.20809 0,0 0.448509,0.20876 0.448509,0.20876 0,0 0.449178,0.20941 0.449178,0.20941 0,0 0.449798,0.21003 0.449798,0.21003 0,0 0.450374,0.21063 0.450374,0.21063 0,0 0.450901,0.21121 0.450901,0.21121 0,0 0.451383,0.21176 0.451383,0.21176 0,0 0.451817,0.2123 0.451817,0.2123 0,0 0.452204,0.2128 0.452204,0.2128 0,0 0.452546,0.2133 0.452546,0.2133 0,0 0.452839,0.21376 0.452839,0.21376 0,0 0.453087,0.2142 0.453087,0.2142 0,0 0.453287,0.21463 0.453287,0.21463 0,0 0.453441,0.21502 0.453441,0.21502 0,0 0.453548,0.2154 0.453548,0.2154 0,0 0.453608,0.21575 0.453608,0.21575 0,0 0.453622,0.21609 0.453622,0.21609 0,0 0.453588,0.2164 0.453588,0.2164 0,0 0.453508,0.21668 0.453508,0.21668 0,0 0.453382,0.21695 0.453382,0.21695 0,0 0.453208,0.21719 0.453208,0.21719 0,0 0.452987,0.2174 0.452987,0.2174 0,0 0.45272,0.217612 0.45272,0.217612 0,0 0.452407,0.217783 0.452407,0.217783 0,0 0.452046,0.217935 0.452046,0.217935 0,0 0.451638,0.218066 0.451638,0.218066 0,0 0.451184,0.218174 0.451184,0.218174 0,0 0.450683,0.21826 0.450683,0.21826 0,0 0.450135,0.218324 0.450135,0.218324 0,0 0.449541,0.218365 0.449541,0.218365 0,0 0.4489,0.218383 0.4489,0.218383 0,0 0.448211,0.21838 0.448211,0.21838 0,0 0.447477,0.218354 0.447477,0.218354 0,0 0.446695,0.218306 0.446695,0.218306 0,0 0.445867,0.218236 0.445867,0.218236 0,0 0.444992,0.218142 0.444992,0.218142 0,0 0.44407,0.218027 0.44407,0.218027 0,0 0.443101,0.217889 0.443101,0.217889 0,0 0.442086,0.21773 0.442086,0.21773 0,0 0.441024,0.217547 0.441024,0.217547 0,0 0.439914,0.217342 0.439914,0.217342 0,0 0.438759,0.217115 0.438759,0.217115 0,0 0.437557,0.216866 0.437557,0.216866 0,0 0.436307,0.216594 0.436307,0.216594 0,0 0.435011,0.2163 0.435011,0.2163 0,0 0.433669,0.215983 0.433669,0.215983 0,0 0.4322789,0.215645 0.4322789,0.215645 0,0 0.4308426,0.215283 0.4308426,0.215283 0,0 0.4293596,0.2149 0.4293596,0.2149 0,0 0.4278298,0.214494 0.4278298,0.214494 0,0 0.4262531,0.214066 0.4262531,0.214066 0,0 0.4246298,0.213615 0.4246298,0.213615 0,0 0.4229597,0.213142 0.4229597,0.213142 0,0 0.4212427,0.212647 0.4212427,0.212647 0,0 0.4194791,0.212129 0.4194791,0.212129 0,0 0.4176686,0.211589 0.4176686,0.211589 0,0 0.4158114,0.211027 0.4158114,0.211027 0,0 0.4139075,0.210442 0.4139075,0.210442 0,0 0.4119567,0.209835 0.4119567,0.209835 0,0 0.4099592,0.209206 0.4099592,0.209206 0,0 0.407915,0.208554 0.407915,0.208554 0,0 0.4058239,0.20788 0.4058239,0.20788 0,0 0.4036861,0.207183 0.4036861,0.207183 0,0 0.4015015,0.206464 0.4015015,0.206464 0,0 0.3992702,0.205723 0.3992702,0.205723 0,0 0.3969921,0.20496 0.3969921,0.20496 0,0 0.3946672,0.204174 0.3946672,0.204174 0,0 0.3922956,0.203365 0.3922956,0.203365 0,0 0.38987717,0.202535 0.38987717,0.202535 0,0 0.38741201,0.201682 0.38741201,0.201682 0,0 0.38490007,0.200807 0.38490007,0.200807 0,0 0.38234137,0.199909 0.38234137,0.199909 0,0 0.37973589,0.198989 0.37973589,0.198989 0,0 0.37708369,0.198047 0.37708369,0.198047 0,0 0.3743846,0.197082 0.3743846,0.197082 0,0 0.3716389,0.196095 0.3716389,0.196095 0,0 0.3688464,0.195085 0.3688464,0.195085 0,0 0.366007,0.194054 0.366007,0.194054 0,0 0.363121,0.192999 0.363121,0.192999 0,0 0.3601881,0.191923 0.3601881,0.191923 0,0 0.3572085,0.190825 0.3572085,0.190825 0,0 0.3541822,0.189703 0.3541822,0.189703 0,0 0.351109,0.188559 0.351109,0.188559 0,0 0.3479892,0.187394 0.3479892,0.187394 0,0 0.3448224,0.186205 0.3448224,0.186205 0,0 0.341609,0.184995 0.341609,0.184995 0,0 0.3383489,0.183762 0.3383489,0.183762 0,0 0.3350418,0.182506 0.3350418,0.182506 0,0 0.3316881,0.181229 0.3316881,0.181229 0,0 0.3282876,0.179929 0.3282876,0.179929 0,0 0.3248404,0.178607 0.3248404,0.178607 0,0 0.3213463,0.177261 0.3213463,0.177261 0,0 0.3178055,0.175895 0.3178055,0.175895 0,0 0.3142179,0.174505 0.3142179,0.174505 0,0 0.3105836,0.173094 0.3105836,0.173094 0,0 0.3069025,0.171659 0.3069025,0.171659 0,0 0.3031746,0.170203 0.3031746,0.170203 0,0 0.2994,0.168724 0.2994,0.168724 0,0 0.2955786,0.167223 0.2955786,0.167223 0,0 0.2917104,0.1657 0.2917104,0.1657 0,0 0.287795,0.164153 0.287795,0.164153 0,0 0.283834,0.162585 0.283834,0.162585 0,0 0.279826,0.160995 0.279826,0.160995 0,0 0.27577,0.159382 0.27577,0.159382 0,0 0.271668,0.157746 0.271668,0.157746 0,0 0.267519,0.156089 0.267519,0.156089 0,0 0.263324,0.154408 0.263324,0.154408 0,0 0.259081,0.152707 0.259081,0.152707 0,0 0.254793,0.150981 0.254793,0.150981 0,0 0.250456,0.149235 0.250456,0.149235 0,0 0.246074,0.147465 0.246074,0.147465 0,0 0.241645,0.145673 0.241645,0.145673 0,0 0.237168,0.14386 0.237168,0.14386 0,0 0.232646,0.142022 0.232646,0.142022 0,0 0.228076,0.140164 0.228076,0.140164 0,0 0.223459,0.138283 0.223459,0.138283 0,0 0.218796,0.136379 0.218796,0.136379 0,0 0.214087,0.134454 0.214087,0.134454 0,0 0.209329,0.132505 0.209329,0.132505 0,0 0.204526,0.130534 0.204526,0.130534 0,0 0.199676,0.128542 0.199676,0.128542 0,0 0.194779,0.126526 0.194779,0.126526 0,0 0.189835,0.124489 0.189835,0.124489 0,0 0.184844,0.122428 0.184844,0.122428 0,0 0.179807,0.120346 0.179807,0.120346 0,0 0.174723,0.118242 0.174723,0.118242 0,0 0.169592,0.116114 0.169592,0.116114 0,0 0.164415,0.113965 0.164415,0.113965 0,0 0.15919,0.111794 0.15919,0.111794 0,0 0.153919,0.109599 0.153919,0.109599 0,0 0.148601,0.107382 0.148601,0.107382 0,0 0.143236,0.105144 0.143236,0.105144 0,0 0.137825,0.102883 0.137825,0.102883 0,0 0.132366,0.100599 0.132366,0.100599 0,0 0.126862,0.09829 0.126862,0.09829 0,0 0.12131,0.09597 0.12131,0.09597 0,0 0.115711,0.09361 0.115711,0.09361 0,0 0.110066,0.09124 0.110066,0.09124 0,0 0.104374,0.08885 0.104374,0.08885 0,0 0.09864,0.08643 0.09864,0.08643 0,0 0.09285,0.08399 0.09285,0.08399 0,0 0.08702,0.08153 0.08702,0.08153 0,0 0.08114,0.07904 0.08114,0.07904 0,0 0.07521,0.07653 0.07521,0.07653 0,0 0.06924,0.074 0.06924,0.074 0,0 0.06322,0.07145 0.06322,0.07145 0,0 0.05715,0.06888 0.05715,0.06888 0,0 0.0547,0.07084 0.0547,0.07084 0,0 0.05589,0.0773 0.05589,0.0773 0,0 0.05707,0.08372 0.05707,0.08372 0,0 0.05823,0.09008 0.05823,0.09008 0,0 0.05938,0.0964 0.05938,0.0964 0,0 0.06052,0.102661 0.06052,0.102661 0,0 0.06165,0.108875 0.06165,0.108875 0,0 0.06277,0.115039 0.06277,0.115039 0,0 0.06387,0.121152 0.06387,0.121152 0,0 0.06497,0.127215 0.06497,0.127215 0,0 0.06605,0.133227 0.06605,0.133227 0,0 0.06712,0.13919 0.06712,0.13919 0,0 0.06818,0.145102 0.06818,0.145102 0,0 0.06923,0.150962 0.06923,0.150962 0,0 0.07027,0.156774 0.07027,0.156774 0,0 0.07129,0.162534 0.07129,0.162534 0,0 0.0723,0.168245 0.0723,0.168245 0,0 0.07331,0.173904 0.07331,0.173904 0,0 0.07429,0.179513 0.07429,0.179513 0,0 0.07527,0.185073 0.07527,0.185073 0,0 0.07624,0.190581 0.07624,0.190581 0,0 0.07719,0.196039 0.07719,0.196039 0,0 0.07814,0.201447 0.07814,0.201447 0,0 0.07907,0.206804 0.07907,0.206804 0,0 0.07999,0.212112 0.07999,0.212112 0,0 0.0809,0.217367 0.0809,0.217367 0,0 0.0818,0.222574 0.0818,0.222574 0,0 0.08268,0.22773 0.08268,0.22773 0,0 0.08356,0.232835 0.08356,0.232835 0,0 0.08442,0.23789 0.08442,0.23789 0,0 0.08527,0.242895 0.08527,0.242895 0,0 0.08611,0.247849 0.08611,0.247849 0,0 0.08693,0.252752 0.08693,0.252752 0,0 0.08775,0.257606 0.08775,0.257606 0,0 0.08855,0.262409 0.08855,0.262409 0,0 0.08935,0.267162 0.08935,0.267162 0,0 0.09013,0.271864 0.09013,0.271864 0,0 0.0909,0.276515 0.0909,0.276515 0,0 0.09166,0.281117 0.09166,0.281117 0,0 0.0924,0.285668 0.0924,0.285668 0,0 0.09314,0.290168 0.09314,0.290168 0,0 0.09386,0.294619 0.09386,0.294619 0,0 0.09457,0.299018 0.09457,0.299018 0,0 0.09527,0.303368 0.09527,0.303368 0,0 0.09596,0.307667 0.09596,0.307667 0,0 0.09664,0.311916 0.09664,0.311916 0,0 0.0973,0.316113 0.0973,0.316113 0,0 0.09795,0.320262 0.09795,0.320262 0,0 0.0986,0.324359 0.0986,0.324359 0,0 0.09923,0.328406 0.09923,0.328406 0,0 0.09984,0.332402 0.09984,0.332402 0,0 0.100452,0.336349 0.100452,0.336349 0,0 0.101047,0.340245 0.101047,0.340245 0,0 0.101631,0.344089 0.101631,0.344089 0,0 0.102203,0.347885 0.102203,0.347885 0,0 0.102764,0.35163 0.102764,0.35163 0,0 0.103313,0.355324 0.103313,0.355324 0,0 0.10385,0.358968 0.10385,0.358968 0,0 0.104376,0.362561 0.104376,0.362561 0,0 0.10489,0.366104 0.10489,0.366104 0,0 0.105393,0.369597 0.105393,0.369597 0,0 0.105883,0.373039 0.105883,0.373039 0,0 0.106364,0.37643 0.106364,0.37643 0,0 0.106831,0.379773 0.106831,0.379773 0,0 0.107287,0.383063 0.107287,0.383063 0,0 0.107732,0.386304 0.107732,0.386304 0,0 0.108164,0.389494 0.108164,0.389494 0,0 0.108586,0.392634 0.108586,0.392634 0,0 0.108996,0.395723 0.108996,0.395723 0,0 0.109394,0.398763 0.109394,0.398763 0,0 0.109781,0.401751 0.109781,0.401751 0,0 0.110156,0.40469 0.110156,0.40469 0,0 0.110519,0.407577 0.110519,0.407577 0,0 0.110871,0.410415 0.110871,0.410415 0,0 0.111211,0.413201 0.111211,0.413201 0,0 0.111539,0.415939 0.111539,0.415939 0,0 0.111857,0.418625 0.111857,0.418625 0,0 0.112162,0.42126 0.112162,0.42126 0,0 0.112456,0.423846 0.112456,0.423846 0,0 0.112738,0.426381 0.112738,0.426381 0,0 0.113008,0.428866 0.113008,0.428866 0,0 0.113268,0.4313 0.113268,0.4313 0,0 0.113514,0.433684 0.113514,0.433684 0,0 0.113751,0.436018 0.113751,0.436018 0,0 0.113975,0.4383 0.113975,0.4383 0,0 0.114187,0.440533 0.114187,0.440533 0,0 0.114389,0.442716 0.114389,0.442716 0,0 0.114577,0.444847 0.114577,0.444847 0,0 0.114756,0.446929 0.114756,0.446929 0,0 0.114921,0.44896 0.114921,0.44896 0,0 0.115076,0.45094 0.115076,0.45094 0,0 0.11522,0.452871 0.11522,0.452871 0,0 0.11535,0.454751 0.11535,0.454751 0,0 0.11547,0.45658 0.11547,0.45658 0,0 0.115579,0.45836 0.115579,0.45836 0,0 0.115675,0.460088 0.115675,0.460088 0,0 0.11576,0.461766 0.11576,0.461766 0,0 0.115833,0.463395 0.115833,0.463395 0,0 0.115895,0.464971 0.115895,0.464971 0,0 0.115945,0.466499 0.115945,0.466499 0,0 0.115984,0.467976 0.115984,0.467976 0,0 0.116011,0.469402 0.116011,0.469402 0,0 0.116026,0.470778 0.116026,0.470778 0,0 0.116029,0.472103 0.116029,0.472103 0,0 0.116022,0.473379 0.116022,0.473379 0,0 0.116003,0.474603 0.116003,0.474603 0,0 0.115971,0.475777 0.115971,0.475777 0,0 0.115929,0.476902 0.115929,0.476902 0,0 0.115874,0.477975 0.115874,0.477975 0,0 0.115809,0.478998 0.115809,0.478998 0,0 0.115731,0.479971 0.115731,0.479971 0,0 0.115642,0.480893 0.115642,0.480893 0,0 0.115542,0.481765 0.115542,0.481765 0,0 0.115429,0.482587 0.115429,0.482587 0,0 0.115305,0.483357 0.115305,0.483357 0,0 0.11517,0.484079 0.11517,0.484079 0,0 0.115023,0.484749 0.115023,0.484749 0,0 0.114864,0.485369 0.114864,0.485369 0,0 0.114694,0.485938 0.114694,0.485938 0,0 0.114512,0.486457 0.114512,0.486457 0,0 0.114318,0.486927 0.114318,0.486927 0,0 0.114113,0.487344 0.114113,0.487344 0,0 0.113897,0.487713 0.113897,0.487713 0,0 0.113669,0.48803 0.113669,0.48803 0,0 0.113428,0.488297 0.113428,0.488297 0,0 0.113177,0.488514 0.113177,0.488514 0,0 0.112914,0.48868 0.112914,0.48868 0,0 0.112639,0.488797 0.112639,0.488797 0,0 0.112353,0.488862 0.112353,0.488862 0,0 0.112056,0.488877 0.112056,0.488877 0,0 0.111745,0.488842 0.111745,0.488842 0,0 0.111425,0.488756 0.111425,0.488756 0,0 0.111092,0.48862 0.111092,0.48862 0,0 0.110747,0.488434 0.110747,0.488434 0,0 0.110392,0.488197 0.110392,0.488197 0,0 0.110024,0.487909 0.110024,0.487909 0,0 0.109645,0.487573 0.109645,0.487573 0,0 0.109254,0.487184 0.109254,0.487184 0,0 0.108852,0.486745 0.108852,0.486745 0,0 0.108439,0.486257 0.108439,0.486257 0,0 0.108012,0.485718 0.108012,0.485718 0,0 0.107576,0.485128 0.107576,0.485128 0,0 0.107127,0.484488 0.107127,0.484488 0,0 0.106666,0.483797 0.106666,0.483797 0,0 0.106195,0.483057 0.106195,0.483057 0,0 0.105711,0.482266 0.105711,0.482266 0,0 0.105216,0.481424 0.105216,0.481424 0,0 0.104709,0.480532 0.104709,0.480532 0,0 0.104191,0.479589 0.104191,0.479589 0,0 0.103661,0.478597 0.103661,0.478597 0,0 0.10312,0.477554 0.10312,0.477554 0,0 0.102566,0.47646 0.102566,0.47646 0,0 0.102002,0.475316 0.102002,0.475316 0,0 0.101426,0.474122 0.101426,0.474122 0,0 0.100837,0.472877 0.100837,0.472877 0,0 0.100238,0.471581 0.100238,0.471581 0,0 0.09963,0.470236 0.09963,0.470236 0,0 0.099,0.468841 0.099,0.468841 0,0 0.09837,0.467393 0.09837,0.467393 0,0 0.09772,0.465897 0.09772,0.465897 0,0 0.09707,0.46435 0.09707,0.46435 0,0 0.0964,0.462752 0.0964,0.462752 0,0 0.09572,0.461105 0.09572,0.461105 0,0 0.09502,0.459406 0.09502,0.459406 0,0 0.09432,0.457657 0.09432,0.457657 0,0 0.0936,0.455858 0.0936,0.455858 0,0 0.09288,0.454008 0.09288,0.454008 0,0 0.09214,0.452109 0.09214,0.452109 0,0 0.09139,0.450158 0.09139,0.450158 0,0 0.09063,0.448157 0.09063,0.448157 0,0 0.08985,0.446106 0.08985,0.446106 0,0 0.08907,0.444005 0.08907,0.444005 0,0 0.08827,0.441853 0.08827,0.441853 0,0 0.08746,0.43965 0.08746,0.43965 0,0 0.08664,0.437398 0.08664,0.437398 0,0 0.08581,0.435094 0.08581,0.435094 0,0 0.08497,0.432741 0.08497,0.432741 0,0 0.08411,0.430337 0.08411,0.430337 0,0 0.08325,0.427883 0.08325,0.427883 0,0 0.08237,0.4253776 0.08237,0.4253776 0,0 0.08148,0.4228227 0.08148,0.4228227 0,0 0.08058,0.4202173 0.08058,0.4202173 0,0 0.07967,0.4175613 0.07967,0.4175613 0,0 0.07874,0.414855 0.07874,0.414855 0,0 0.0778,0.4120983 0.0778,0.4120983 0,0 0.07686,0.4092912 0.07686,0.4092912 0,0 0.0759,0.4064336 0.0759,0.4064336 0,0 0.07493,0.4035257 0.07493,0.4035257 0,0 0.07395,0.4005674 0.07395,0.4005674 0,0 0.07295,0.3975587 0.07295,0.3975587 0,0 0.07195,0.3944995 0.07195,0.3944995 0,0 0.07093,0.3913901 0.07093,0.3913901 0,0 0.0699,0.3882301 0.0699,0.3882301 0,0 0.06886,0.3850199 0.06886,0.3850199 0,0 0.06781,0.3817591 0.06781,0.3817591 0,0 0.06674,0.378448 0.06674,0.378448 0,0 0.06567,0.3750865 0.06567,0.3750865 0,0 0.06458,0.3716747 0.06458,0.3716747 0,0 0.06348,0.3682123 0.06348,0.3682123 0,0 0.06237,0.3646996 0.06237,0.3646996 0,0 0.06125,0.3611366 0.06125,0.3611366 0,0 0.06012,0.357523 0.06012,0.357523 0,0 0.05897,0.35385916 0.05897,0.35385916 0,0 0.05782,0.35014487 0.05782,0.35014487 0,0 0.05665,0.34638018 0.05665,0.34638018 0,0 0.05547,0.3425651 0.05547,0.3425651 0,0 0.05428,0.33869962 0.05428,0.33869962 0,0 0.05308,0.33478373 0.05308,0.33478373 0,0 0.05186,0.33081744 0.05186,0.33081744 0,0 0.05064,0.3268008 0.05064,0.3268008 0,0 0.0494,0.3227337 0.0494,0.3227337 0,0 0.04815,0.3186162 0.04815,0.3186162 0,0 0.04689,0.3144484 0.04689,0.3144484 0,0 0.04562,0.3102301 0.04562,0.3102301 0,0 0.04433,0.3059614 0.04433,0.3059614 0,0 0.04304,0.3016424 0.04304,0.3016424 0,0 0.04173,0.2972729 0.04173,0.2972729 0,0 0.04041,0.292853 0.04041,0.292853 0,0 0.03908,0.2883828 0.03908,0.2883828 0,0 0.03774,0.2838622 0.03774,0.2838622 0,0 0.03638,0.279291 0.03638,0.279291 0,0 0.03502,0.2746697 0.03502,0.2746697 0,0 0.03364,0.2699977 0.03364,0.2699977 0,0 0.03225,0.2652755 0.03225,0.2652755 0,0 0.03085,0.2605029 0.03085,0.2605029 0,0 0.02944,0.2556798 0.02944,0.2556798 0,0 0.02802,0.2508064 0.02802,0.2508064 0,0 0.02658,0.2458826 0.02658,0.2458826 0,0 0.02514,0.2409083 0.02514,0.2409083 0,0 0.02368,0.2358837 0.02368,0.2358837 0,0 0.02221,0.2308086 0.02221,0.2308086 0,0 0.02073,0.2256832 0.02073,0.2256832 0,0 0.01924,0.2205074 0.01924,0.2205074 0,0 0.01773,0.2152811 0.01773,0.2152811 0,0 0.01622,0.2100045 0.01622,0.2100045 0,0 0.01469,0.2046775 0.01469,0.2046775 0,0 0.01315,0.1993001 0.01315,0.1993001 0,0 0.0116,0.1938722 0.0116,0.1938722 0,0 0.01004,0.188394 0.01004,0.188394 0,0 0.0085,0.1828655 0.0085,0.1828655 0,0 0.0069,0.1772863 0.0069,0.1772863 0,0 0.0053,0.171657 0.0053,0.171657 0,0 0.0037,0.1659772 0.0037,0.1659772 0,0 0.002,0.160247 0.002,0.160247 0,0 4.17e-4,0.1544663 4.17e-4,0.1544663 0,0 -0.0012,0.1486353 -0.0012,0.1486353 0,0 -0.0029,0.142754 -0.0029,0.142754 0,0 -0.0045,0.136822 -0.0045,0.136822 0,0 -0.0062,0.13084 -0.0062,0.13084 0,0 -0.0079,0.124807 -0.0079,0.124807 0,0 -0.0096,0.118725 -0.0096,0.118725 0,0 -0.01133,0.112591 -0.01133,0.112591 0,0 -0.01306,0.106407 -0.01306,0.106407 0,0 -0.01479,0.100173 -0.01479,0.100173 0,0 -0.01654,0.09389 -0.01654,0.09389 0,0 -0.0183,0.08755 -0.0183,0.08755 0,0 -0.02136,0.08687 -0.02136,0.08687 0,0 -0.0257,0.09185 -0.0257,0.09185 0,0 -0.03,0.09678 -0.03,0.09678 0,0 -0.03427,0.101675 -0.03427,0.101675 0,0 -0.0385,0.106529 -0.0385,0.106529 0,0 -0.04271,0.111342 -0.04271,0.111342 0,0 -0.04688,0.116115 -0.04688,0.116115 0,0 -0.05102,0.120846 -0.05102,0.120846 0,0 -0.05513,0.125537 -0.05513,0.125537 0,0 -0.0592,0.130189 -0.0592,0.130189 0,0 -0.06324,0.134798 -0.06324,0.134798 0,0 -0.06725,0.139367 -0.06725,0.139367 0,0 -0.07123,0.143897 -0.07123,0.143897 0,0 -0.07518,0.148384 -0.07518,0.148384 0,0 -0.07909,0.152832 -0.07909,0.152832 0,0 -0.08297,0.157239 -0.08297,0.157239 0,0 -0.08682,0.161605 -0.08682,0.161605 0,0 -0.09064,0.165931 -0.09064,0.165931 0,0 -0.09442,0.170216 -0.09442,0.170216 0,0 -0.09818,0.174461 -0.09818,0.174461 0,0 -0.101894,0.178664 -0.101894,0.178664 0,0 -0.105581,0.182827 -0.105581,0.182827 0,0 -0.109236,0.18695 -0.109236,0.18695 0,0 -0.112859,0.191032 -0.112859,0.191032 0,0 -0.11645,0.195074 -0.11645,0.195074 0,0 -0.120007,0.199074 -0.120007,0.199074 0,0 -0.123533,0.203034 -0.123533,0.203034 0,0 -0.127027,0.206954 -0.127027,0.206954 0,0 -0.130488,0.210833 -0.130488,0.210833 0,0 -0.133916,0.214671 -0.133916,0.214671 0,0 -0.137313,0.218468 -0.137313,0.218468 0,0 -0.140677,0.222226 -0.140677,0.222226 0,0 -0.144009,0.225942 -0.144009,0.225942 0,0 -0.147308,0.229618 -0.147308,0.229618 0,0 -0.150576,0.233253 -0.150576,0.233253 0,0 -0.153811,0.236847 -0.153811,0.236847 0,0 -0.157013,0.240402 -0.157013,0.240402 0,0 -0.160183,0.243915 -0.160183,0.243915 0,0 -0.163321,0.247388 -0.163321,0.247388 0,0 -0.166427,0.250819 -0.166427,0.250819 0,0 -0.169501,0.254212 -0.169501,0.254212 0,0 -0.172541,0.257562 -0.172541,0.257562 0,0 -0.17555,0.260872 -0.17555,0.260872 0,0 -0.178526,0.264142 -0.178526,0.264142 0,0 -0.181471,0.267371 -0.181471,0.267371 0,0 -0.184382,0.27056 -0.184382,0.27056 0,0 -0.187262,0.273707 -0.187262,0.273707 0,0 -0.190109,0.276814 -0.190109,0.276814 0,0 -0.192923,0.279881 -0.192923,0.279881 0,0 -0.195706,0.282907 -0.195706,0.282907 0,0 -0.198456,0.285892 -0.198456,0.285892 0,0 -0.201174,0.288837 -0.201174,0.288837 0,0 -0.20386,0.291741 -0.20386,0.291741 0,0 -0.206513,0.294604 -0.206513,0.294604 0,0 -0.209134,0.297428 -0.209134,0.297428 0,0 -0.211722,0.300209 -0.211722,0.300209 0,0 -0.214279,0.302951 -0.214279,0.302951 0,0 -0.216802,0.305652 -0.216802,0.305652 0,0 -0.219295,0.308313 -0.219295,0.308313 0,0 -0.221753,0.310932 -0.221753,0.310932 0,0 -0.224181,0.313512 -0.224181,0.313512 0,0 -0.226575,0.31605 -0.226575,0.31605 0,0 -0.228938,0.318547 -0.228938,0.318547 0,0 -0.231268,0.321006 -0.231268,0.321006 0,0 -0.233565,0.323421 -0.233565,0.323421 0,0 -0.235831,0.325798 -0.235831,0.325798 0,0 -0.238065,0.328134 -0.238065,0.328134 0,0 -0.240265,0.330428 -0.240265,0.330428 0,0 -0.242433,0.332682 -0.242433,0.332682 0,0 -0.24457,0.334896 -0.24457,0.334896 0,0 -0.246673,0.337069 -0.246673,0.337069 0,0 -0.248746,0.339202 -0.248746,0.339202 0,0 -0.250784,0.341293 -0.250784,0.341293 0,0 -0.252791,0.343344 -0.252791,0.343344 0,0 -0.254766,0.345354 -0.254766,0.345354 0,0 -0.256708,0.347325 -0.256708,0.347325 0,0 -0.258619,0.349254 -0.258619,0.349254 0,0 -0.260496,0.351142 -0.260496,0.351142 0,0 -0.262341,0.352991 -0.262341,0.352991 0,0 -0.264154,0.354798 -0.264154,0.354798 0,0 -0.265935,0.356565 -0.265935,0.356565 0,0 -0.267684,0.358291 -0.267684,0.358291 0,0 -0.269399,0.359976 -0.269399,0.359976 0,0 -0.271083,0.361622 -0.271083,0.361622 0,0 -0.272735,0.363226 -0.272735,0.363226 0,0 -0.274354,0.364789 -0.274354,0.364789 0,0 -0.275941,0.366313 -0.275941,0.366313 0,0 -0.277495,0.367795 -0.277495,0.367795 0,0 -0.279018,0.369237 -0.279018,0.369237 0,0 -0.280507,0.370638 -0.280507,0.370638 0,0 -0.281965,0.371999 -0.281965,0.371999 0,0 -0.28339,0.373319 -0.28339,0.373319 0,0 -0.284784,0.374598 -0.284784,0.374598 0,0 -0.286143,0.375837 -0.286143,0.375837 0,0 -0.287473,0.377036 -0.287473,0.377036 0,0 -0.288768,0.378193 -0.288768,0.378193 0,0 -0.290032,0.379309 -0.290032,0.379309 0,0 -0.291263,0.380386 -0.291263,0.380386 0,0 -0.292462,0.381422 -0.292462,0.381422 0,0 -0.293629,0.382417 -0.293629,0.382417 0,0 -0.294764,0.383371 -0.294764,0.383371 0,0 -0.295865,0.384285 -0.295865,0.384285 0,0 -0.296936,0.385159 -0.296936,0.385159 0,0 -0.297972,0.385991 -0.297972,0.385991 0,0 -0.298978,0.386783 -0.298978,0.386783 0,0 -0.299951,0.387534 -0.299951,0.387534 0,0 -0.300892,0.388245 -0.300892,0.388245 0,0 -0.301799,0.388916 -0.301799,0.388916 0,0 -0.302676,0.389545 -0.302676,0.389545 0,0 -0.303519,0.390133 -0.303519,0.390133 0,0 -0.304331,0.390682 -0.304331,0.390682 0,0 -0.305109,0.39119 -0.305109,0.39119 0,0 -0.305856,0.391657 -0.305856,0.391657 0,0 -0.30657,0.392083 -0.30657,0.392083 0,0 -0.307253,0.392469 -0.307253,0.392469 0,0 -0.307902,0.392814 -0.307902,0.392814 0,0 -0.30852,0.393119 -0.30852,0.393119 0,0 -0.309104,0.393383 -0.309104,0.393383 0,0 -0.309658,0.393606 -0.309658,0.393606 0,0 -0.310177,0.393789 -0.310177,0.393789 0,0 -0.310666,0.393931 -0.310666,0.393931 0,0 -0.311122,0.394033 -0.311122,0.394033 0,0 -0.311545,0.394093 -0.311545,0.394093 0,0 -0.311937,0.394114 -0.311937,0.394114 0,0 -0.312295,0.394093 -0.312295,0.394093 0,0 -0.312622,0.394033 -0.312622,0.394033 0,0 -0.312916,0.39393 -0.312916,0.39393 0,0 -0.313178,0.393789 -0.313178,0.393789 0,0 -0.313408,0.393606 -0.313408,0.393606 0,0 -0.313605,0.393382 -0.313605,0.393382 0,0 -0.31377,0.393119 -0.31377,0.393119 0,0 -0.313903,0.392813 -0.313903,0.392813 0,0 -0.314003,0.392469 -0.314003,0.392469 0,0 -0.314071,0.392082 -0.314071,0.392082 0,0 -0.3141063,0.391656 -0.3141063,0.391656 0,0 -0.3141102,0.391189 -0.3141102,0.391189 0,0 -0.3140812,0.390681 -0.3140812,0.390681 0,0 -0.3140201,0.390133 -0.3140201,0.390133 0,0 -0.3139265,0.389543 -0.3139265,0.389543 0,0 -0.3138007,0.388915 -0.3138007,0.388915 0,0 -0.3136425,0.388244 -0.3136425,0.388244 0,0 -0.313452,0.387533 -0.313452,0.387533 0,0 -0.3132292,0.386781 -0.3132292,0.386781 0,0 -0.3129741,0.38599 -0.3129741,0.38599 0,0 -0.3126867,0.385157 -0.3126867,0.385157 0,0 -0.312367,0.384283 -0.312367,0.384283 0,0 -0.3120149,0.38337 -0.3120149,0.38337 0,0 -0.3116305,0.382415 -0.3116305,0.382415 0,0 -0.3112139,0.38142 -0.3112139,0.38142 0,0 -0.3107648,0.380384 -0.3107648,0.380384 0,0 -0.3102836,0.379308 -0.3102836,0.379308 0,0 -0.3097699,0.378191 -0.3097699,0.378191 0,0 -0.3092239,0.377033 -0.3092239,0.377033 0,0 -0.3086458,0.375835 -0.3086458,0.375835 0,0 -0.3080351,0.374596 -0.3080351,0.374596 0,0 -0.3073923,0.373317 -0.3073923,0.373317 0,0 -0.306717,0.371996 -0.306717,0.371996 0,0 -0.3060096,0.370636 -0.3060096,0.370636 0,0 -0.3052697,0.369235 -0.3052697,0.369235 0,0 -0.3044975,0.367792 -0.3044975,0.367792 0,0 -0.3036931,0.36631 -0.3036931,0.36631 0,0 -0.3028563,0.364787 -0.3028563,0.364787 0,0 -0.3019873,0.363223 -0.3019873,0.363223 0,0 -0.3010858,0.361619 -0.3010858,0.361619 0,0 -0.30015211,0.359974 -0.30015211,0.359974 0,0 -0.29918607,0.358288 -0.29918607,0.358288 0,0 -0.29818772,0.356561 -0.29818772,0.356561 0,0 -0.29715706,0.354795 -0.29715706,0.354795 0,0 -0.29609407,0.352987 -0.29609407,0.352987 0,0 -0.29499878,0.35114 -0.29499878,0.35114 0,0 -0.29387119,0.34925 -0.29387119,0.34925 0,0 -0.2927112,0.347321 -0.2927112,0.347321 0,0 -0.291519,0.345351 -0.291519,0.345351 0,0 -0.2902945,0.343341 -0.2902945,0.343341 0,0 -0.2890376,0.341289 -0.2890376,0.341289 0,0 -0.2877484,0.339198 -0.2877484,0.339198 0,0 -0.2864269,0.337065 -0.2864269,0.337065 0,0 -0.2850731,0.334892 -0.2850731,0.334892 0,0 -0.2836869,0.332679 -0.2836869,0.332679 0,0 -0.2822685,0.330424 -0.2822685,0.330424 0,0 -0.2808178,0.328129 -0.2808178,0.328129 0,0 -0.2793347,0.325794 -0.2793347,0.325794 0,0 -0.2778193,0.323418 -0.2778193,0.323418 0,0 -0.2762715,0.321 -0.2762715,0.321 0,0 -0.2746916,0.318544 -0.2746916,0.318544 0,0 -0.2730793,0.316045 -0.2730793,0.316045 0,0 -0.2714346,0.313507 -0.2714346,0.313507 0,0 -0.2697576,0.310928 -0.2697576,0.310928 0,0 -0.2680483,0.308308 -0.2680483,0.308308 0,0 -0.2663068,0.305647 -0.2663068,0.305647 0,0 -0.2645329,0.302947 -0.2645329,0.302947 0,0 -0.2627266,0.300204 -0.2627266,0.300204 0,0 -0.2608881,0.297423 -0.2608881,0.297423 0,0 -0.2590172,0.294599 -0.2590172,0.294599 0,0 -0.2571141,0.291736 -0.2571141,0.291736 0,0 -0.2551786,0.288832 -0.2551786,0.288832 0,0 -0.2532108,0.285887 -0.2532108,0.285887 0,0 -0.2512107,0.282901 -0.2512107,0.282901 0,0 -0.2491782,0.279876 -0.2491782,0.279876 0,0 -0.2471136,0.276809 -0.2471136,0.276809 0,0 -0.2450164,0.273701 -0.2450164,0.273701 0,0 -0.2428871,0.270554 -0.2428871,0.270554 0,0 -0.2407254,0.267366 -0.2407254,0.267366 0,0 -0.2385312,0.264136 -0.2385312,0.264136 0,0 -0.236305,0.260866 -0.236305,0.260866 0,0 -0.234047,0.257557 -0.234047,0.257557 0,0 -0.231755,0.254205 -0.231755,0.254205 0,0 -0.229433,0.250814 -0.229433,0.250814 0,0 -0.227076,0.247381 -0.227076,0.247381 0,0 -0.224689,0.243909 -0.224689,0.243909 0,0 -0.222269,0.240395 -0.222269,0.240395 0,0 -0.219816,0.236842 -0.219816,0.236842 0,0 -0.217331,0.233247 -0.217331,0.233247 0,0 -0.214814,0.229611 -0.214814,0.229611 0,0 -0.212265,0.225935 -0.212265,0.225935 0,0 -0.209683,0.22222 -0.209683,0.22222 0,0 -0.207068,0.218461 -0.207068,0.218461 0,0 -0.204423,0.214665 -0.204423,0.214665 0,0 -0.201743,0.210826 -0.201743,0.210826 0,0 -0.199033,0.206946 -0.199033,0.206946 0,0 -0.196289,0.203028 -0.196289,0.203028 0,0 -0.193514,0.199067 -0.193514,0.199067 0,0 -0.190705,0.195066 -0.190705,0.195066 0,0 -0.187866,0.191025 -0.187866,0.191025 0,0 -0.184992,0.186943 -0.184992,0.186943 0,0 -0.182088,0.18282 -0.182088,0.18282 0,0 -0.17915,0.178657 -0.17915,0.178657 0,0 -0.176181,0.174453 -0.176181,0.174453 0,0 -0.173179,0.170208 -0.173179,0.170208 0,0 -0.170145,0.165924 -0.170145,0.165924 0,0 -0.167079,0.161597 -0.167079,0.161597 0,0 -0.163979,0.157231 -0.163979,0.157231 0,0 -0.160849,0.152825 -0.160849,0.152825 0,0 -0.157685,0.148376 -0.157685,0.148376 0,0 -0.154489,0.143889 -0.154489,0.143889 0,0 -0.151261,0.139359 -0.151261,0.139359 0,0 -0.148001,0.13479 -0.148001,0.13479 0,0 -0.144708,0.13018 -0.144708,0.13018 0,0 -0.141383,0.12553 -0.141383,0.12553 0,0 -0.138026,0.120838 -0.138026,0.120838 0,0 -0.134636,0.116106 -0.134636,0.116106 0,0 -0.131214,0.111333 -0.131214,0.111333 0,0 -0.12776,0.106521 -0.12776,0.106521 0,0 -0.124273,0.101666 -0.124273,0.101666 0,0 -0.120754,0.09677 -0.120754,0.09677 0,0 -0.117203,0.09184 -0.117203,0.09184 0,0 -0.11362,0.08686 -0.11362,0.08686 0,0 -0.110003,0.08185 -0.110003,0.08185 0,0 -0.106356,0.07679 -0.106356,0.07679 0,0 -0.102675,0.07169 -0.102675,0.07169 0,0 -0.09896,0.06655 -0.09896,0.06655 0,0 -0.09522,0.06137 -0.09522,0.06137 0,0 -0.09144,0.05616 -0.09144,0.05616 0,0 -0.08763,0.05089 -0.08763,0.05089 0,0 -0.08379,0.04559 -0.08379,0.04559 z" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1276"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1276" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1277"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1277" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1278"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1278" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1279"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1279" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1280"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1280" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1281"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1281" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1282"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1282" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1283"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1283" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1284"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1284" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1285"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1285" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1286"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1286" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1287"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1287" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1288"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1288" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1289"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1289" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1290"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1290" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1291"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1291" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1292"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1292" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1293"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1293" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1294"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1294" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1295"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1295" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1296"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1296" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1297"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1297" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1298"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1298" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1299"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1299" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1300"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1300" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1301"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1301" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(3.5401726,0,0,3.1320224,644.00547,372.80543)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1303"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1303" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1306"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1306" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1307"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1307" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1308"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1308" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1309"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1309" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1310"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1310" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1311"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1311" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1312"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1312" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1313"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1313" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1314"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1314" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1315"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1315" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1316"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1316" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1317"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1317" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1318"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1318" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1319"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1319" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1320"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1320" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1321"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1321" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1322"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1322" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1323"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1323" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1324"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1324" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1325"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1325" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1326"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1326" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1327"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1327" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1328"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1328" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1329"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1329" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1330"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1330" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1331"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1331" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1332"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1332" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1333"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1333" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1334"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1334" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1335"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1335" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1336"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1336" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1337"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1337" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1338"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1338" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1339"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1339" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1340"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1340" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1341"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1341" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1342"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1342" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1343"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1343" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1344"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1344" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1345"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1345" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1346"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1346" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1347"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1347" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1348"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1348" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1349"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1349" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1350"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1350" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1351"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1351" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1352"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1352" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1353"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1353" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1354"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1354" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1355"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1355" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1356"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1356" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1357"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1357" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1358"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1358" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1359"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1359" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1362"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1362" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1363"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1363" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1364"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1364" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1365"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1365" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1366"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1366" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1367"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1367" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1368"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1368" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1369"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1369" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1370"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1370" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1371"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1371" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1372"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1372" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(103.99514,0,0,-102.35936,5740.6148,-7310.8116)" /></clipPath><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient313" + id="linearGradient314" + x1="105.00247" + y1="235.63889" + x2="105.00247" + y2="25.638" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.0003925,0,0,0.65287437,0.02349806,0.01035141)" /><linearGradient + id="linearGradient313" + inkscape:collect="always"><stop + style="stop-color:#3418ff;stop-opacity:1;" + offset="0" + id="stop313" /><stop + style="stop-color:#000000;stop-opacity:1;" + offset="0.92378908" + id="stop314" /></linearGradient><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1382-2"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1382-6" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(0.93667067,0,0,0.82868093,170.39311,98.638103)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1380-2"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1380-3" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(426.1216,0,0,-419.41964,60393.545,-19760.095)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1380-3-7"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1380-4-5" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(426.1216,0,0,-419.41964,60393.545,-19760.095)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1379-9"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1379-2" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(664.33371,0,0,-653.87936,88729.379,-38588.497)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1379-1-2"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1379-1-89" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(664.33371,0,0,-653.87936,88729.379,-38588.497)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1379-1-5-7"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1379-1-8-3" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(664.33371,0,0,-653.87936,88729.379,-38588.497)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1379-1-5-0-6"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1379-1-8-1-1" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(664.33371,0,0,-653.87936,88729.379,-38588.497)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1378-2"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1378-9" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,79609.296,-56626.814)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1377-3"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1377-1" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(280.95849,0,0,-276.53854,37057.419,-20413.175)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1376-9"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1376-4" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(1313.0988,0,0,-1292.4385,155795.37,-83760.107)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-7"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-8" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-4"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-5" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-61"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-0" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-9-6"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-7-3" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-9-2"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-3-0" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-9"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-0" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-6"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-9" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-5"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-6" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-3"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-2" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-4"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-8" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-0"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-28" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-50"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-29" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-2"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-88" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-04"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-1" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-91"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-5" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-8"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-25" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-7"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-7" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-96"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-07" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-78"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-86" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient96" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" + gradientUnits="userSpaceOnUse" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-1"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-7" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-6"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-6" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-5"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-64" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-4"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-1" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-7"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-0" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-0"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-2" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-8"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-04" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-76"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-3" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-2"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-74" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-3"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-8" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-16"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-9" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-60"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-649" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-09"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-040" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-165"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-78" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-56"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-5" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-10"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-58" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-80"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-37" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-84"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-88" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-57"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-4" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-9"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-81" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-45"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-91" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-91"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-34" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-103"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-00" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-61"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-72" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-36"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-40" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-31"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-005" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-91-3"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-5-3" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-91-5"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-5-6" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-91-9"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-5-9" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-7-6-75-0-72-96-91-0"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-6-6-7-8-29-09-5-7" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-36-6"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-40-3" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-36-6-4"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-40-3-4" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-36-6-5"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-40-3-5" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1375-4-0-0-36-6-1"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1375-5-9-3-40-3-9" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(684.47062,0,0,-673.70242,65380.844,-61138.997)" /></clipPath><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath1380-2-1"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path1380-3-4" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" + inkscape:transform-center-x="-0.033289879" + inkscape:transform-center-y="-4.3364857" + transform="matrix(426.1216,0,0,-419.41964,60393.545,-19760.095)" /></clipPath><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient116" + id="linearGradient117" + x1="72.351578" + y1="82.037689" + x2="72.351578" + y2="103.22458" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient118" + id="linearGradient119" + x1="92.533859" + y1="83.280731" + x2="92.533859" + y2="100.01224" + gradientUnits="userSpaceOnUse" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient1" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient2" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient3" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient4" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient5" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient6" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient7" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient8" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient9" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient10" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient11" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient12" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient13" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient14" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient15" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient16" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient17" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient18" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient19" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient20" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient21" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient22" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient23" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient24" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient25" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient26" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient27" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient28" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient29" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient30" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient31" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient32" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient33" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient34" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient35" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient36" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient37" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient38" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient39" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient40" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient41" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient42" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient43" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient44" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient45" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient46" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient47" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient48" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient49" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient50" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><linearGradient + inkscape:collect="always" + xlink:href="#linearGradient95" + id="linearGradient51" + gradientUnits="userSpaceOnUse" + x1="121.21132" + y1="86.880913" + x2="49.111881" + y2="143.21117" /><clipPath + clipPathUnits="userSpaceOnUse" + id="clipPath2867"><path + sodipodi:type="star" + style="display:inline;fill:#ffffff;fill-opacity:0.622281;stroke:#000000;stroke-width:0.600001;stroke-dasharray:none;stroke-opacity:1" + id="path2867" + inkscape:flatsided="true" + sodipodi:sides="7" + sodipodi:cx="-64.822914" + sodipodi:cy="-12.170833" + sodipodi:r1="106.38389" + sodipodi:r2="95.848572" + sodipodi:arg1="1.1204961" + sodipodi:arg2="1.569295" + inkscape:rounded="0.08" + inkscape:randomized="0.001" + inkscape:transform-center-x="-0.033052427" + inkscape:transform-center-y="-4.3365328" + transform="matrix(0.93007027,0,0,0.82869014,170.65234,98.638253)" + d="m -18.609103,83.636516 c -6.653061,3.205897 -85.592537,3.332039 -92.251647,0.136186 -6.65911,-3.195853 -56.00886,-64.837706 -57.66093,-72.03936 -1.65208,-7.2016537 15.92277,-84.35475 20.51441,-90.137028 4.59165,-5.782278 75.543693,-40.130874 82.931521,-40.146004 7.387827,-0.0151 78.774683,34.112532 83.391648,39.879739 4.616966,5.767208 22.326683,82.7121257 20.689626,89.911623 -1.637056,7.199497 -50.961567,69.188947 -57.614628,72.394844 z" /></clipPath></defs><g + inkscape:groupmode="layer" + id="layer5" + inkscape:label="Background" + style="display:inline" + transform="translate(-6.7520832,-1.5246326)"><rect + style="display:inline;fill:url(#linearGradient314);stroke:none;stroke-width:0.547306;stroke-dasharray:none;stroke-opacity:0.529447" + id="rect228-8" + width="210.0833" + height="170.58136" + x="0.025514213" + y="0.010165247" + clip-path="url(#clipPath1382-2)" + transform="translate(-5.6894524,1.1264046)" + inkscape:export-filename="1-33-logo-hires.png" + inkscape:export-xdpi="300" + inkscape:export-ydpi="300" /><text + xml:space="preserve" + style="font-size:1.41111px;text-align:start;letter-spacing:0.0873125px;writing-mode:lr-tb;direction:ltr;text-anchor:start;fill:#b3b3b3;fill-opacity:1;stroke:#000000;stroke-width:1.8;stroke-dasharray:none;stroke-opacity:1" + x="78.97776" + y="45.729488" + id="text86"><tspan + sodipodi:role="line" + id="tspan86" + style="stroke-width:1.8" + x="78.97776" + y="45.729488">Errol</tspan></text></g><g + inkscape:groupmode="layer" + id="layer9" + inkscape:label="City Fill" + style="display:none;stroke:#000000;stroke-opacity:1" + transform="translate(-6.7520832,-1.5246326)"><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 465.27626,591.14127 v -41.36575 h 15.44455 15.44454 l 0.46336,13.25825 c 0.25485,7.29204 0.46426,25.90663 0.46536,41.36575 l 0.002,28.10749 h -15.90991 -15.9099 z" + id="path324" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 465.39411,549.07836 c 0.12964,-0.38344 3.09949,-6.26358 6.59966,-13.06698 l 6.36397,-12.36982 5.38167,-0.0145 5.38168,-0.0145 2.48118,5.48008 c 2.60742,5.75888 3.71034,9.88204 4.44496,16.61701 l 0.44349,4.06586 h -15.66616 c -9.98312,0 -15.58065,-0.2529 -15.43045,-0.69716 z" + id="path325" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 500.94531,630.91602 c -0.30708,-0.87504 -0.68313,-17.89864 -0.83566,-37.83021 l -0.27733,-36.23922 h 17.01665 17.01665 v 37.36626 37.36626 l -10.71903,0.46395 c -5.89547,0.25517 -13.17691,0.46395 -16.18099,0.46395 -5.02741,0 -5.50637,-0.12658 -6.02029,-1.59099 z" + id="path326" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 502.96071,539.25561 c -2.59019,-1.64797 -5.3422,-6.15047 -9.3452,-15.28949 -4.10458,-9.37092 -4.17502,-9.91094 -1.4182,-10.87197 1.36169,-0.47469 7.39703,-0.79529 14.97144,-0.79529 14.40746,0 15.523,0.31723 18.26371,5.19366 0.8798,1.5654 3.08104,7.04861 4.89165,12.18491 l 3.29202,9.33874 -2.88046,0.42458 c -1.58425,0.23351 -7.97163,0.61193 -14.19417,0.84091 -10.57216,0.38906 -11.4623,0.32181 -13.58079,-1.02605 z" + id="path327" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 429.62879,521.31447 c -0.56752,-0.87504 -1.1317,-2.85845 -1.25374,-4.40756 l -0.2219,-2.81658 3.53554,-0.9816 c 2.40545,-0.66784 9.35732,-1.09182 21.74943,-1.32644 20.99241,-0.39746 18.53652,0.79927 19.2554,-9.38292 0.23339,-3.30573 0.61017,-7.52185 0.83728,-9.36917 l 0.41294,-3.35876 h 5.12474 5.12473 l 1.45533,5.79501 1.45532,5.795 -5.3389,9.93812 c -2.93639,5.46597 -5.65918,10.33587 -6.05063,10.82201 -0.54207,0.67318 -5.99693,0.88388 -22.88272,0.88388 h -22.17098 z" + id="path328" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 430.59339,503.6368 c -0.43793,-1.65286 -1.85571,-6.82358 -3.15062,-11.49048 -1.29491,-4.66691 -2.6733,-9.67853 -3.06309,-11.13693 l -0.70872,-2.65165 h 16.42681 16.4268 l 3.75396,13.24571 c 2.06467,7.28515 3.90875,13.64911 4.09794,14.14214 0.27176,0.70819 -3.15533,0.89642 -16.32142,0.89642 h -16.66541 z" + id="path329" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 459.5108,476.41319 c -2.54766,-6.30767 -5.08735,-10.78205 -6.73144,-11.8593 -1.35265,-0.88629 -4.03697,-1.35406 -9.60009,-1.67291 -6.32419,-0.36248 -7.89287,-0.67572 -8.66379,-1.73001 -1.31556,-1.79914 -2.0042,-7.64782 -1.43597,-12.19578 l 0.47871,-3.83147 h 21.54791 21.54792 l -0.36064,2.29809 c -0.19836,1.26396 -1.3798,8.74161 -2.62543,16.61701 l -2.26479,14.31892 h -5.5535 c -5.39656,0 -5.57569,-0.055 -6.33889,-1.94455 z" + id="path330" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 486.20522,484.19137 c -0.50285,-1.63949 -5.37261,-24.88527 -5.37261,-25.64617 0,-0.3259 0.50002,-1.09257 1.11117,-1.70371 0.91634,-0.91635 3.06923,-1.11117 12.27901,-1.11117 13.51351,0 14.06968,0.26128 16.26792,7.64256 1.95104,6.55124 3.82841,18.12522 3.28877,20.27531 l -0.4469,1.78061 h -13.37391 c -12.12106,0 -13.40946,-0.11592 -13.75345,-1.23743 z" + id="path331" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 473.76734,488.43401 c 0.009,-1.91786 1.36093,-13.77397 1.77387,-15.55635 0.25632,-1.10636 0.88627,-1.59099 2.06805,-1.59099 1.86534,0 1.96702,0.22469 4.63986,10.25305 0.82924,3.11127 1.6667,6.2137 1.86102,6.89429 0.31424,1.10062 -0.23832,1.23743 -4.99765,1.23743 -4.62695,0 -5.35016,-0.16743 -5.34515,-1.23743 z" + id="path332" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 490.29415,491.85669 c -1.73194,-1.0561 -3.80469,-4.42281 -3.80469,-6.17985 0,-0.13642 6.04577,-0.24804 13.43503,-0.24804 14.66226,0 14.89418,0.0756 11.90209,3.87942 -2.33224,2.96497 -5.3923,3.89908 -12.76326,3.89611 -5.20311,-0.002 -7.02061,-0.2814 -8.76917,-1.34764 z" + id="path333" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 261.98306,635.70546 c -13.02832,-3.04474 -13.77864,-3.85686 -8.25551,-8.93538 3.79905,-3.49324 4.44911,-5.06451 2.53778,-6.13415 -0.90524,-0.50659 -2.18778,-5.42477 -3.10719,-11.9152 -0.008,-0.054 0.54293,-0.054 1.22352,0 0.89321,0.0709 1.28354,-0.49189 1.40317,-2.02311 0.0911,-1.16673 0.53473,-5.9397 0.98574,-10.60661 1.41178,-14.60889 1.32366,-15.00776 -5.30485,-24.01085 l -3.62157,-4.91896 -0.44828,2.09054 c -0.24656,1.1498 -0.4869,7.659 -0.5341,14.46491 -0.12706,18.31903 -0.93204,36.84036 -1.59135,36.61432 -0.3182,-0.10907 -0.76031,-13.37277 -0.98249,-29.47487 -0.38122,-27.62782 -0.4817,-29.37537 -1.78425,-31.03128 -0.75915,-0.96511 -1.38027,-2.08008 -1.38027,-2.47773 0,-0.73898 24.91608,-0.22134 32.17336,0.66842 3.79513,0.46529 3.85141,-0.26944 0.12603,-1.64546 -2.11548,-0.78138 -1.96998,-0.83324 2.47959,-0.88388 2.59982,-0.0296 5.52651,-0.35779 6.50377,-0.72934 1.99555,-0.75871 7.50762,-5.51469 7.50762,-6.4778 0,-0.34366 -1.10643,-0.62483 -2.45873,-0.62483 -1.35231,0 -4.57217,-0.7955 -7.15526,-1.76777 -5.55631,-2.09139 -7.22926,-2.19585 -8.49357,-0.53033 -1.52321,2.00659 -1.14067,2.48482 1.57943,1.97453 2.48539,-0.46627 2.5497,-0.42497 2.10396,1.35104 -0.60447,2.4084 0.60249,2.83707 5.57568,1.98025 4.58717,-0.79031 5.2411,0.0238 0.89354,1.11244 -2.88227,0.72172 -9.34493,1.32631 -31.58776,2.95507 -10.5506,0.77257 -11.32821,0.63378 -11.35815,-2.0274 -0.008,-0.71799 0.61803,-0.8446 2.46404,-0.49829 l 2.47488,0.46429 v -16.2955 -16.29549 l -1.59099,0.0392 c -0.87505,0.0216 -4.61387,0.43356 -8.30851,0.91555 -6.28726,0.82022 -12.11935,0.59662 -13.22294,-0.50696 -1.21191,-1.21192 2.08649,-2.72648 7.29453,-3.3495 8.88604,-1.06301 10.87816,-2.32541 10.87816,-6.89347 0,-5.83671 -2.0944,-6.67577 -17.58775,-7.04601 l -12.28444,-0.29357 0.30047,13.34035 c 0.21968,9.75376 0.57829,13.91067 1.33381,15.46167 2.46844,5.06733 4.22486,0.83682 4.80582,-11.57526 l 0.45112,-9.63795 1.28828,8.3593 c 1.60932,10.44243 1.20877,14.84784 -2.43544,26.78603 -1.50806,4.94031 -2.74193,9.31553 -2.74193,9.72272 0,1.03402 13.84649,0.88412 16.94608,-0.18345 3.19034,-1.09883 5.22217,-4.2156 7.39832,-11.34884 0.96624,-3.16722 2.23787,-6.39499 2.82585,-7.17281 1.04381,-1.38083 1.06958,-1.37124 1.09154,0.40572 0.0124,1.00097 -0.76525,4.45173 -1.72803,7.66838 -2.60482,8.70267 -3.38844,18.50781 -3.43417,42.97076 -0.0227,12.12941 -0.24871,21.92525 -0.5023,21.76852 -0.2536,-0.15673 -0.68587,-8.81141 -0.96061,-19.23262 -0.54927,-20.83411 -1.09177,-26.62138 -2.64071,-28.17031 -1.60988,-1.60989 -8.54086,-2.81616 -11.69431,-2.03529 -4.03162,0.99832 -4.69401,2.98962 -5.14891,15.47883 l -0.38498,10.56973 -1.91388,-2.27903 c -1.86996,-2.22673 -1.90574,-2.44491 -1.55944,-9.50905 0.6552,-13.36529 1.71175,-25.64577 2.41842,-28.10978 1.07172,-3.73688 0.86301,-6.2076 -0.59008,-6.98527 -2.10582,-1.127 -14.88786,-1.66702 -20.97259,-0.88606 -7.10245,0.91158 -8.14157,1.94451 -8.14157,8.09301 v 4.28757 l -1.76278,-1.65605 c -1.6772,-1.57565 -1.74261,-1.93349 -1.34736,-7.37111 0.33551,-4.61559 0.19851,-5.98712 -0.71209,-7.12927 l -1.12752,-1.41421 -1.10852,1.41421 c -0.84249,1.07483 -0.99998,2.30512 -0.65623,5.12653 0.24876,2.04177 0.30178,3.71231 0.11783,3.71231 -0.18396,0 -1.97383,-1.89234 -3.9775,-4.20519 -3.595,-4.14978 -3.62892,-4.23246 -2.57315,-6.27409 1.40755,-2.72191 2.83694,-3.00145 8.93336,-1.74708 4.45711,0.91706 5.21758,0.91918 6.11974,0.017 0.90215,-0.90215 0.79388,-1.7233 -0.87133,-6.60801 -3.22917,-9.47244 -5.67081,-13.42789 -9.43042,-15.27723 -3.03346,-1.49216 -4.04244,-1.59418 -13.8779,-1.40323 -5.83363,0.11325 -11.67878,0.27118 -12.98923,0.35097 -2.03629,0.12397 -2.77117,-0.31749 -5.05554,-3.03693 l -2.6729,-3.18198 0.67301,-4.59619 c 0.82806,-5.65517 0.20572,-11.47687 -1.44479,-13.51515 -1.05072,-1.29759 -2.44297,-1.65074 -9.13238,-2.31643 -7.15418,-0.71194 -8.07509,-0.9683 -9.8424,-2.73982 l -1.94973,-1.9544 3.17576,0.33951 c 1.74666,0.18674 7.10797,0.50853 11.914,0.71509 l 8.73824,0.37557 -0.38381,-1.58912 c -0.21109,-0.87401 -0.76318,-5.44154 -1.22685,-10.15006 -0.79151,-8.03758 -0.75423,-8.81757 0.60971,-12.7588 1.86257,-5.38204 5.13585,-25.05973 8.27475,-49.74449 1.35997,-10.69499 2.50396,-19.76363 2.54221,-20.15254 0.0382,-0.38891 1.782,10.58892 3.87502,24.39518 2.09302,13.80626 4.6526,29.55707 5.68797,35.00179 2.69485,14.17152 2.99988,17.8094 3.08313,36.76955 0.0683,15.54956 0.55284,22.34238 1.67378,23.46332 1.58344,1.58344 6.03465,-7.26928 13.3212,-26.49373 5.24252,-13.8316 7.26267,-17.78968 9.99252,-19.57835 1.12366,-0.73625 4.42057,-1.22703 10.40428,-1.54877 11.51754,-0.61929 11.628,-0.71793 12.18425,-10.88015 0.45499,-8.31232 2.50915,-16.23473 6.43832,-24.83105 2.65346,-5.80534 2.55617,-6.24575 -1.37981,-6.24575 -0.94046,0 -1.70993,-0.21049 -1.70993,-0.46777 0,-0.25726 1.96536,-3.00833 4.36747,-6.11346 6.99787,-9.04594 15.11449,-22.50542 21.82601,-36.19326 5.84829,-11.92731 6.28359,-12.60299 6.9649,-10.81101 2.14947,5.65355 6.08179,14.71864 8.31784,19.17497 2.33646,4.65644 10.8868,18.47045 11.13989,17.9977 0.0601,-0.1123 -0.19217,-5.74366 -0.56063,-12.51413 -0.69324,-12.73818 -0.66079,-13.08399 2.2286,-23.7525 2.03882,-7.52795 4.02116,-20.82 3.22394,-21.61722 -1.15316,-1.15316 -11.03457,-2.89866 -13.64121,-2.40965 -1.34889,0.25305 -3.50866,1.3874 -4.7995,2.52077 -2.81875,2.4749 -4.38967,2.5911 -6.34937,0.46968 -1.71805,-1.85985 -3.72656,-6.44298 -3.72656,-8.50348 0,-2.99414 10.39753,-10.47873 13.11065,-9.43762 0.54274,0.20827 1.42485,1.42666 1.96027,2.70754 1.25012,2.99071 2.18394,3.71862 6.49583,5.06348 l 3.53554,1.10272 -5.32427,-0.41109 c -4.50509,-0.34785 -5.48013,-0.2233 -6.33728,0.80949 -0.8924,1.07529 -0.84927,1.34031 0.36224,2.22619 3.23666,2.36671 15.25864,4.68653 16.22062,3.13001 0.83869,-1.35702 -0.23556,-4.28761 -1.57603,-4.29947 -0.95396,-0.008 -1.01288,-0.14459 -0.26707,-0.61718 1.19632,-0.75808 0.71508,-1.73446 -4.95396,-10.05113 -5.01203,-7.3528 -10.63088,-13.36249 -12.49349,-13.36249 -3.30227,0 -4.07062,-5.10661 -0.83356,-5.53996 0.97227,-0.13015 2.04789,-0.50574 2.39027,-0.83463 0.34238,-0.32889 0.89309,-3.53042 1.22381,-7.11451 0.60676,-6.57557 1.87205,-9.84542 3.80975,-9.84542 0.565,0 2.06911,0.6352 3.34246,1.41156 5.86553,3.57622 6.33241,1.87478 4.31648,-15.73048 l -1.19429,-10.42982 -7.82812,-0.0705 c -12.87887,-0.11596 -12.69575,0.8686 -2.37299,-12.7586 10.78802,-14.24139 18.27506,-25.33664 25.94274,-38.44524 10.71834,-18.324 15.19026,-28.91695 12.82476,-30.37891 -0.47671,-0.29462 -1.58247,0.17796 -2.55568,1.09224 -2.33525,2.19385 -2.18254,0.86932 0.18464,-1.60147 1.15109,-1.20149 2.64287,-1.98324 3.78452,-1.98324 2.49443,0 6.6335,-2.84159 6.90863,-4.74298 0.12036,-0.83182 -0.43649,-2.79695 -1.23744,-4.36695 -1.87972,-3.68454 -1.83504,-4.20139 0.3274,-3.78801 1.87942,0.35927 4.58028,3.22601 4.58028,4.86157 0,0.53092 0.30822,0.9653 0.68492,0.9653 0.3767,0 0.50639,0.46523 0.28819,1.03385 -0.22461,0.58532 0.38387,1.75728 1.40253,2.70134 1.36357,1.26372 1.98773,2.84727 2.57757,6.53957 2.4185,15.13916 21.17432,49.90204 36.04095,66.79988 5.02369,5.71007 9.21042,11.20689 9.21042,12.09248 0,1.12923 -3.19972,1.97169 -9.70054,2.55406 l -6.20936,0.55626 -0.82921,5.3033 c -1.45042,9.27626 -1.91475,18.68207 -1.00607,20.37994 1.14579,2.14094 4.3117,2.02899 6.43147,-0.2274 3.12059,-3.32172 4.94708,-1.579 4.9537,4.72649 0.006,5.6186 1.13005,8.88087 3.47882,10.09547 2.17308,1.12375 2.88119,2.36734 2.88119,5.05999 0,1.36617 -0.63893,2.01112 -3.0052,3.03349 -3.16401,1.36705 -9.02729,7.13883 -13.45899,13.24896 l -2.63828,3.63748 1.10824,18.0057 c 1.2357,20.07682 2.38446,29.62911 3.61172,30.03283 1.21925,0.40108 3.87662,-2.77514 7.70149,-9.20519 6.38067,-10.72663 15.87341,-33.56608 15.87341,-38.19125 0,-0.99802 0.32347,-2.66538 0.71883,-3.70524 1.02693,-2.70102 2.62577,-1.14357 3.17608,3.09385 1.60679,12.37254 9.06073,29.80562 20.45885,47.84866 5.6427,8.9323 9.19704,15.6694 9.97919,18.91511 0.43602,1.80933 0.31353,1.94454 -1.76152,1.94454 -5.48483,0 -9.42767,8.18629 -13.05835,27.11232 -1.17708,6.13589 -1.96882,7.53591 -4.26172,7.53591 -0.85032,0 -2.07986,0.39775 -2.73232,0.88389 -1.51383,1.12794 -2.46662,5.48008 -1.19972,5.48008 1.75131,0 25.10642,-4.44992 25.57138,-4.87219 0.26109,-0.23711 0.63143,-19.8412 0.82298,-43.56463 0.37698,-46.68752 0.53084,-49.52961 4.76621,-88.03479 1.56139,-14.19517 3.89876,-37.03948 5.19416,-50.76514 1.29541,-13.72565 2.48931,-25.08976 2.65312,-25.25357 0.16381,-0.16381 0.86084,7.24789 1.54896,16.47045 1.61644,21.66417 4.98036,55.47454 7.2614,72.98329 3.8307,29.40356 3.89889,30.65086 4.2816,78.31207 l 0.3648,45.43161 h 5.21484 c 6.91773,0 7.31009,-0.58579 8.16817,-12.19476 1.09932,-14.8729 4.73728,-37.72462 11.11676,-69.82962 1.12054,-5.63918 2.20834,-9.77576 2.41733,-9.19239 0.20898,0.58336 1.84418,10.7657 3.63377,22.62741 3.33964,22.13569 5.21079,31.24832 6.72239,32.73843 1.37933,1.35972 2.67444,-1.09245 3.599,-6.81436 1.93816,-11.99501 2.85595,-13.12777 11.05298,-13.64183 3.0578,-0.19176 6.29656,-0.49945 7.19723,-0.68376 3.0448,-0.62306 3.60763,-3.70514 3.94708,-21.61449 0.2615,-13.79701 0.60749,-18.06452 2.11172,-26.04643 2.18975,-11.6195 4.06168,-25.40797 6.43178,-47.37615 1.87058,-17.33812 2.45542,-21.48233 2.96038,-20.97737 0.16598,0.16597 1.08281,6.30612 2.03741,13.64477 0.9546,7.33865 2.51769,19.07057 3.47354,26.07092 3.18457,23.32288 3.83122,34.21602 4.61743,77.78175 0.32987,18.27871 0.88696,34.18861 1.23798,35.35534 1.38677,4.60935 3.18872,2.05456 6.6275,-9.39638 2.58862,-8.62 4.97317,-9.68507 20.68506,-9.23906 7.61209,0.21609 9.10559,0.45468 10.82608,1.72956 2.43873,1.80709 4.28278,6.2587 8.17242,19.72852 1.62933,5.64236 3.153,10.25883 3.38595,10.25883 0.23295,0 0.84883,-16.30765 1.36861,-36.23922 1.52586,-58.5098 1.90698,-57.44887 2.03215,5.65686 l 0.11816,59.57374 h 11.31371 11.3137 V 395.9798 332.69374 h -11.3137 c -10.68151,0 -11.31371,-0.0758 -11.31371,-1.35638 0,-3.47796 0.31531,-3.59337 9.81781,-3.59337 9.88459,0 12.1025,-0.72221 12.1025,-3.94088 0,-0.95665 -0.64859,-5.78228 -1.4413,-10.72362 -0.79271,-4.94134 -3.18811,-22.33982 -5.3231,-38.66328 -2.13499,-16.32346 -3.99781,-29.79502 -4.13959,-29.9368 -0.33293,-0.33293 -0.97388,7.21155 -1.48705,17.50365 -1.05615,21.18245 -4.06348,44.69596 -7.05411,55.15433 l -1.71871,6.01041 0.37141,-4.5962 c 0.71351,-8.82955 1.77294,-18.10112 3.11076,-27.22361 2.55959,-17.45361 4.65464,-42.03847 6.23667,-73.18555 l 0.48486,-9.54594 3.37895,33.94112 c 3.54991,35.6583 6.65965,61.45753 8.69366,72.1249 0.97495,5.11311 1.29759,12.34025 1.64149,36.76955 0.45098,32.03568 0.62145,33.58757 3.68929,33.58757 3.85854,0 6.75927,5.70994 10.95623,21.56676 3.92798,14.84054 6.70534,19.05604 11.72494,17.7962 3.12564,-0.78449 3.53002,-3.06501 4.15867,-23.45306 0.6241,-20.2404 1.54937,-31.05907 4.89856,-57.27565 3.06375,-23.98222 4.11647,-33.80203 5.27916,-49.24412 1.14842,-15.25268 1.69285,-19.55278 2.54195,-20.07756 0.73289,-0.45295 1.23002,4.70231 1.67305,17.34934 0.68523,19.5612 5.50549,59.17578 8.38889,68.94291 1.22765,4.1585 1.46949,6.98437 1.51288,17.67767 0.0284,7.00035 -0.19057,16.27334 -0.48661,20.60665 l -0.53826,7.87873 18.56948,0.28065 c 20.52738,0.31025 21.43214,0.4924 24.82261,4.99757 4.5914,6.10093 9.65677,22.68464 9.65677,31.61567 0,7.48887 0.86325,9.70789 4.12958,10.61512 1.42336,0.39534 5.06418,0.72058 8.09072,0.72275 5.21556,0.004 10.43752,1.3211 10.38359,2.61951 -0.0129,0.31153 -0.56979,1.20281 -1.23744,1.98063 -1.01861,1.18668 -1.91162,1.37634 -5.5505,1.1788 -2.64629,-0.14365 -8.13226,0.47648 -14.07477,1.59099 -5.356,1.00452 -10.57274,1.8264 -11.59276,1.8264 -2.75991,0 -4.76139,-1.75652 -5.41892,-4.75567 -0.44607,-2.03465 -0.69214,-0.14816 -1.0354,7.93765 -0.42427,9.99411 -0.59938,10.9884 -3.03234,17.2183 -2.53622,6.49429 -3.08599,9.53231 -2.02653,11.19851 0.74888,1.17774 4.07703,2.34234 6.69385,2.34234 h 2.20758 l -1.98686,2.07383 c -1.24233,1.29671 -3.04223,2.25213 -4.80327,2.54966 -3.91433,0.66132 -5.49527,2.45267 -5.49527,6.22664 0,2.67625 -0.45543,3.59241 -3.53553,7.11222 -2.37366,2.71251 -3.53198,3.62007 -3.52471,2.76167 0.014,-1.64851 0.74066,-2.68188 2.28727,-3.25252 2.6877,-0.99164 0.4049,-10.54356 -5.77936,-24.18266 -3.36299,-7.41692 -4.84948,-6.05528 -10.20935,9.35186 -3.21705,9.24755 -5.16799,19.41251 -6.1676,32.13503 -0.49649,6.31899 -1.16257,10.62131 -1.78114,11.50443 -0.86106,1.22934 -0.98806,-0.29098 -0.98806,-11.82815 v -13.23881 l -6.18719,0.0169 c -7.31527,0.0199 -11.46581,0.85413 -12.70898,2.55428 -0.60107,0.82201 -0.90282,3.79996 -0.90282,8.90984 0,7.20614 0.10606,7.78124 1.73562,9.4108 1.16424,1.16424 2.52957,1.73563 4.14729,1.73563 3.19178,0 5.75071,2.12086 7.22887,5.99135 1.91738,5.02061 0.17667,7.43134 -2.02786,2.80839 -1.79958,-3.77374 -4.91396,-4.85795 -14.03728,-4.88679 -6.59307,-0.0208 -7.80247,0.16467 -9.54594,1.4643 -2.23916,1.66912 -3.08162,5.28211 -2.39749,10.28192 0.60515,4.42248 2.50082,5.47438 10.85449,6.02311 l 6.91417,0.45417 -1.55919,1.6597 c -1.4656,1.56005 -2.06121,1.65969 -9.92122,1.65969 h -8.36203 l -0.004,-3.71231 c -0.008,-6.90363 -0.90168,-15.55564 -1.49706,-14.49174 -0.31567,0.56407 -0.89144,10.20225 -1.27947,21.41816 l -0.70553,20.39258 -1.86238,1.80846 -1.86238,1.80846 0.47288,-13.78858 c 0.26009,-7.58372 0.92344,-20.31164 1.4741,-28.28427 0.55066,-7.97263 1.00576,-14.73434 1.01132,-15.02602 0.006,-0.29168 -3.96736,-0.53033 -8.82872,-0.53033 h -8.83884 l -0.0449,4.77297 c -0.0447,4.75524 -0.064,4.7073 -5.17714,-12.9047 l -5.13223,-17.67767 h -14.46664 c -14.11256,0 -14.55264,0.0441 -17.98061,1.80156 -2.66615,1.3669 -3.96665,2.63282 -5.3902,5.2469 -4.11147,7.54993 -4.82784,18.00332 -4.83524,70.55651 -0.005,37.70967 -0.1356,42.95674 -1.06671,42.95674 -0.93121,0 -1.06066,-5.26402 -1.06066,-43.13352 v -43.13351 h -17.72737 -17.72737 l 0.28524,41.89608 c 0.15689,23.04284 0.53456,42.61202 0.83928,43.48706 0.46083,1.32332 0.30223,1.59099 -0.94264,1.59099 h -1.49669 l -0.0345,-27.04683 c -0.0459,-35.90374 -0.9925,-62.48336 -2.43541,-68.38068 -0.92023,-3.76106 -9.95217,-23.22183 -11.56264,-24.91355 -0.25471,-0.26755 -4.59084,7.79344 -9.63587,17.9133 -5.04502,10.11987 -9.28139,18.0739 -9.41415,17.67561 -0.13277,-0.39829 0.61119,-2.73171 1.65324,-5.18538 2.75051,-6.47651 2.98433,-8.78872 0.95395,-9.43313 -1.63983,-0.52047 -31.60325,0.19255 -34.23184,0.81459 -1.2668,0.29978 -1.78864,-0.77482 -4.80317,-9.89102 -1.86008,-5.62503 -4.09067,-11.28837 -4.95685,-12.58518 -2.20286,-3.29803 -5.62349,-4.83031 -10.78599,-4.83164 -5.60705,-10e-4 -11.97672,-1.20763 -15.28207,-2.89389 -3.92768,-2.00376 -4.37221,-1.81328 -3.89492,1.66895 0.52947,3.86285 9.08446,26.04419 11.64029,30.18085 2.28453,3.69756 4.6356,5.21761 10.3872,6.71571 5.65126,1.47197 17.55726,1.49462 19.0157,0.0362 0.58336,-0.58336 1.66251,-1.06066 2.3981,-1.06066 1.92335,0 7.2604,4.80467 8.42007,7.58016 1.77925,4.25833 2.46237,20.37212 2.23415,52.70052 -0.19454,27.55677 -0.36035,31.64275 -1.28404,31.64201 -0.89985,-7.3e-4 -1.06066,-1.7668 -1.06066,-11.64827 0,-14.91064 0.10076,-14.76205 -10.05338,-14.8245 -3.80445,-0.0234 -7.78305,0.19986 -8.84132,0.49614 -3.24345,0.90803 -3.6908,2.69624 -3.71267,14.84076 -0.0182,10.1274 -0.13221,11.13682 -1.25749,11.13693 -1.108,1.2e-4 -1.23799,-0.8689 -1.24277,-8.30837 -0.006,-9.20175 -0.9254,-16.28263 -2.51304,-19.35278 -1.30384,-2.52136 -4.20892,-3.39083 -5.84998,-1.75085 -1.02009,1.01942 -1.17759,3.06484 -1.17759,15.29368 v 14.11688 l -3.03061,7.9e-4 -3.03061,7.8e-4 0.55574,-6.54074 c 0.30565,-3.5974 0.5288,-20.54145 0.49587,-37.65343 -0.0601,-31.25045 -0.67851,-42.35645 -2.8246,-50.73002 -1.29561,-5.05517 -4.50589,-12.55604 -5.37383,-12.55604 -0.35684,0 -1.06812,0.99724 -1.5806,2.21608 -0.86831,2.0651 -0.95518,1.69174 -1.2751,-5.48008 -0.24344,-5.45727 -0.71951,-8.46546 -1.6365,-10.34064 -3.90484,-7.98517 -8.28915,-0.86896 -8.36851,13.58302 -0.0223,4.07164 -0.24637,6.61723 -0.49779,5.65685 -0.40222,-1.53637 -0.5652,-1.33864 -1.35651,1.64579 -0.49465,1.86556 -2.21017,5.36574 -3.81227,7.77818 l -2.91291,4.38624 -0.2245,44.01739 c -0.19191,37.62903 -0.3715,44.0174 -1.23743,44.0174 -0.85932,0 -1.01294,-3.6461 -1.01294,-24.04163 v -24.04163 h -5.3033 c -6.31081,0 -5.96157,-1.33019 -3.56571,13.58091 0.95569,5.94785 1.95746,12.99372 2.22617,15.65749 0.54628,5.41527 0.13901,6.08731 -3.70041,6.10611 -1.21633,0.006 -2.63621,0.52256 -3.15529,1.148 -0.80186,0.96619 -0.7414,1.28516 0.40213,2.12132 0.74024,0.54129 2.03126,0.98415 2.86892,0.98415 0.83766,0 2.09157,0.62824 2.78647,1.3961 1.16842,1.29109 1.17851,1.52573 0.13407,3.11973 -1.36767,2.08734 -6.86217,3.46312 -18.69641,4.68144 -9.71138,0.99977 -12.59903,0.57081 -17.1277,-2.54437 -1.92714,-1.32564 -3.67066,-2.41026 -3.87449,-2.41026 -0.20383,0 -0.37061,0.95459 -0.37061,2.12132 0,1.41421 -0.35355,2.12132 -1.06066,2.12132 -0.76117,0 -1.06066,-0.77727 -1.06066,-2.75277 0,-2.91162 -0.7646,-3.61119 -3.94692,-3.61119 -1.55518,0 -1.70993,0.28797 -1.70993,3.18198 0,2.92271 -0.14404,3.18198 -1.76777,3.18198 -1.61553,0 -1.76776,-0.26571 -1.76776,-3.08545 v -3.08545 l -3.68234,0.66928 c -2.02529,0.36812 -4.57087,0.53888 -5.65685,0.37949 -1.81607,-0.26654 -1.97452,-0.10519 -1.97452,2.01077 0,1.59641 0.37875,2.39954 1.23743,2.62393 0.6806,0.17786 0.2033,0.36029 -1.06066,0.40541 -2.20089,0.0785 -2.29809,-0.0308 -2.29809,-2.58407 v -2.66609 l -5.12653,-1.58361 c -5.80209,-1.7923 -8.26081,-1.96376 -9.83147,-0.68561 -1.74564,1.42054 -3.99959,5.04394 -4.53539,7.29097 -0.91645,3.84339 -2.13258,4.55813 -7.66304,4.50368 -2.75931,-0.0272 -8.19891,-0.79303 -12.088,-1.70191 z m 14.35485,-0.74656 c -0.96062,-0.96062 -15.58538,-4.67834 -19.93071,-5.06653 -3.96715,-0.35441 -4.80833,-0.25368 -4.54245,0.54398 0.17947,0.53841 1.73402,1.40134 3.45454,1.91761 5.28628,1.58623 22.08141,3.66773 21.01862,2.60494 z m 74.22197,-3.17638 c 11.33945,-1.80295 13.60011,-2.5144 13.60011,-4.28009 0,-1.81371 -2.98187,-1.79651 -13.3876,0.0772 -10.58308,1.90565 -15.10419,3.86982 -11.89147,5.16619 1.47139,0.59371 2.33349,0.52261 11.67896,-0.9633 z m -70.86107,-0.75133 c 0.2613,-0.4228 0.14991,-1.0939 -0.24752,-1.49134 -1.17605,-1.17604 -9.80798,-3.31647 -15.42881,-3.82582 -4.45507,-0.40371 -5.2214,-0.31175 -5.2214,0.62656 0,2.65173 19.45852,7.01929 20.89773,4.6906 z m 69.16945,-4.4954 c 5.53527,-1.05907 8.22066,-2.10481 8.22066,-3.20125 0,-0.96358 -3.83573,-1.14044 -11.55503,-0.53277 -7.51611,0.59169 -11.77949,1.91591 -11.77949,3.65875 0,1.45796 7.68711,1.49624 15.11386,0.0753 z m -65.44716,-1.28996 c 0.3807,-2.00446 -4.25799,-3.50133 -12.06887,-3.89454 -5.90891,-0.29745 -6.89429,-0.19019 -6.89429,0.75048 0,0.72202 1.51215,1.58805 4.41941,2.53109 5.52937,1.79358 7.15851,2.08046 11.13058,1.96003 2.42969,-0.0737 3.23141,-0.39008 3.41317,-1.34706 z m 21.99687,-1.71555 c 0.47311,-1.71345 0.56718,-13.84432 0.27331,-35.24348 -0.33534,-24.41885 -0.2416,-32.75832 0.37247,-33.13784 0.95629,-0.59102 1.03164,-18.37113 0.17713,-41.78944 -0.56935,-15.60319 -0.42506,-14.85557 -4.56061,-23.63138 -1.36052,-2.88708 -2.74478,-2.74623 -2.18782,0.22261 0.62072,3.30878 -0.5645,3.34551 -2.67788,0.083 -1.60265,-2.47409 -2.90359,-3.09556 -3.71881,-1.77652 -0.95265,1.54142 -1.76777,0.56329 -1.76777,-2.12132 0,-1.55563 0.24434,-2.82843 0.54297,-2.82843 0.29862,0 1.71364,0.7955 3.14446,1.76777 3.03863,2.0648 3.38364,2.13505 3.38364,0.68895 0,-0.96702 0.21619,-0.96702 2.08621,0 2.77897,1.43707 5.18661,1.36116 7.14576,-0.22526 1.93462,-1.56656 1.50247,-3.29556 -1.12264,-4.49165 -1.40647,-0.64083 -2.77068,-0.63941 -5.89604,0.006 -5.33538,1.10201 -6.92747,1.05943 -7.41006,-0.19815 -0.5536,-1.44268 0.17165,-1.72724 4.18521,-1.64216 2.42725,0.0514 4.68867,-0.49689 7.44375,-1.80495 2.17652,-1.03336 4.76188,-1.87884 5.74524,-1.87884 3.17742,0 6.3193,-0.8832 6.7035,-1.88439 0.20903,-0.54473 -1.59551,-3.39122 -4.08277,-6.4402 -2.45155,-3.00519 -4.52709,-5.56701 -4.6123,-5.69291 -0.37776,-0.55813 -4.55856,2.14486 -5.21515,3.37173 -1.98137,3.70223 0.1392,6.02633 4.81621,5.27845 3.29574,-0.52701 4.35063,0.55242 2.08839,2.13696 -1.1065,0.77502 -3.18649,1.10236 -6.90612,1.08685 -4.45436,-0.0186 -6.01197,-0.36466 -9.54738,-2.12132 -4.4121,-2.19228 -7.30081,-2.60321 -9.61043,-1.36715 -1.64177,0.87865 -1.7607,2.30425 -0.2938,3.52167 0.87348,0.72492 1.3024,0.68568 2.29809,-0.21026 1.11304,-1.00153 1.37572,-0.9783 2.8935,0.25597 0.91813,0.74662 2.40355,1.35749 3.30093,1.35749 2.09431,0 3.86858,0.68331 3.86858,1.48987 0,0.34729 -1.77537,0.63145 -3.94527,0.63145 h -3.94527 l 0.48029,2.18676 c 0.41195,1.87558 0.29417,2.15126 -0.8277,1.93732 -0.7194,-0.13719 -1.40665,-0.93904 -1.52722,-1.78188 -0.12058,-0.84285 -1.49855,-2.98583 -3.06217,-4.76219 -2.4009,-2.72757 -2.77151,-3.55499 -2.38352,-5.32148 0.90176,-4.10566 -3.3229,-9.95598 -6.11167,-8.46348 -2.23799,1.19774 -1.48079,-0.51766 1.20616,-2.73246 2.0535,-1.69268 4.05055,-2.3663 10.96015,-3.69697 7.75734,-1.49393 8.44911,-1.75522 8.44911,-3.19133 0,-0.86029 -0.61634,-7.89072 -1.36965,-15.62318 -0.75331,-7.73244 -1.53255,-17.24097 -1.73165,-21.13006 l -0.36201,-7.07107 1.37246,7.77818 c 0.75486,4.27799 2.18275,13.98304 3.17309,21.56676 0.99034,7.58372 1.94628,14.10678 2.12431,14.49568 0.44608,0.97445 -0.23987,-13.90451 -1.49581,-32.44567 -0.57654,-8.51131 -0.87911,-15.64425 -0.67239,-15.85098 0.20673,-0.20673 0.37587,0.18708 0.37587,0.87513 0,0.68804 1.03414,4.1617 2.29809,7.71925 l 2.2981,6.46826 -0.17523,14.13619 c -0.10705,8.63537 0.11924,15.02846 0.58151,16.42918 0.76456,2.3166 3.9077,5.4014 4.88693,4.7962 1.24432,-0.76903 1.33845,-8.45877 0.37226,-30.41183 -2.85299,-64.82337 -2.91026,-106.04172 -0.15158,-109.09002 0.662,-0.73149 1.20363,-1.52863 1.20363,-1.77141 0,-1.22159 -6.57838,-1.9146 -18.208,-1.91815 l -12.9047,-0.004 v 13.35659 c 0,15.19206 -0.80954,30.94682 -2.87441,55.93988 -1.34796,16.31574 -2.3286,26.00055 -6.6229,65.40737 -3.38546,31.06684 -3.53181,31.94855 -5.75666,34.6809 -0.89152,1.0949 -1.04808,1.13488 -0.75449,0.19269 0.45158,-1.44925 1.61587,-12.73779 2.22482,-21.57108 l 0.44785,-6.49648 -13.30787,-0.22103 c -7.31933,-0.12157 -13.43277,-0.14917 -13.58542,-0.0614 -0.80388,0.46254 1.75085,2.31519 3.19255,2.31519 2.21039,0 4.22517,2.09459 5.22711,5.43416 0.47183,1.57267 1.03876,11.98585 1.35952,24.97143 0.3026,12.25062 0.78861,22.83071 1.08001,23.5113 0.2914,0.68059 1.00293,1.23744 1.58118,1.23744 0.85506,0 0.96057,0.66011 0.5651,3.53553 -0.51935,3.77605 -0.16303,4.22222 1.88886,2.36528 1.2212,-1.10517 1.29312,-1.06816 1.29312,0.66538 0,2.42504 1.18117,3.05628 2.86594,1.53159 1.31497,-1.19004 1.40098,-1.14131 2.46025,1.39389 0.60371,1.44486 1.48192,2.4992 1.95159,2.34298 1.09744,-0.36506 2.08817,-7.77324 1.55142,-11.60066 -0.23643,-1.68594 -1.31011,-4.10769 -2.50795,-5.65686 -6.00474,-7.76592 -6.43738,-8.74265 -5.89804,-13.31546 0.27523,-2.33345 0.53125,-10.55462 0.56893,-18.26925 l 0.0685,-14.02661 1.98397,-1.70652 c 3.09333,-2.66073 4.32128,-2.20381 2.25606,0.83948 -2.1818,3.21505 -2.81318,6.24849 -2.78158,13.36391 0.019,4.28544 0.40511,6.49902 1.59256,9.13066 1.72449,3.82185 1.58385,4.97552 -1.10117,9.03285 -2.30263,3.4795 -1.76897,4.9754 0.81458,2.28334 1.08842,-1.13414 5.57275,-6.83599 9.96516,-12.67076 4.39241,-5.83478 8.69725,-11.24415 9.56632,-12.02082 l 1.58012,-1.41213 -0.51121,1.76777 c -0.45658,1.57886 -2.55546,5.49636 -9.84998,18.38478 -2.11601,3.7387 -2.1903,4.14883 -1.92108,10.6066 0.49156,11.7909 0.39235,25.63325 -0.22599,31.53048 -0.70107,6.68635 -1.21728,6.189 7.77286,7.48884 7.13746,1.03197 8.25732,0.60337 8.83822,-3.38263 0.32524,-2.23173 0.50439,-2.48711 0.94141,-1.34201 1.99808,5.23541 1.43063,4.92538 10.86577,5.93661 6.22351,0.66702 7.94368,1.49358 7.94368,3.81701 0,1.45432 -1.85428,4.03496 -2.89927,4.03496 -0.30733,0 -0.65575,-1.51144 -0.77429,-3.35876 l -0.21552,-3.35876 -3.18198,-0.20787 c -3.57828,-0.23376 -5.97636,1.02738 -5.30085,2.78771 0.23813,0.62057 1.84644,2.14339 3.57401,3.38404 1.72758,1.24064 3.14105,2.4575 3.14105,2.70412 0,0.24661 -0.84276,1.66448 -1.87279,3.15082 -1.18374,1.70812 -1.99687,3.99376 -2.21003,6.2121 -0.37653,3.91863 -1.57403,4.12456 -1.57403,0.27068 v -2.47458 l -5.01569,2.69309 c -2.75862,1.4812 -5.17866,3.08956 -5.37786,3.57412 -0.19919,0.48456 1.60044,3.91066 3.99919,7.61354 8.72554,13.46941 10.13377,17.44175 6.65246,18.76534 -3.22846,1.22746 -6.48506,-1.98488 -13.65691,-13.47132 -6.8641,-10.99354 -11.1758,-14.9264 -13.89244,-12.67178 -1.3519,1.12196 -1.23369,4.0349 0.48551,11.96467 2.57754,11.88882 2.57762,11.91289 0.045,12.79578 -2.47373,0.86234 -3.63402,3.71387 -3.64089,8.94776 -0.004,3.30756 0.31867,3.57234 2.23847,1.83495 1.24205,-1.12404 1.291,-0.96347 1.23932,4.06586 -0.0522,5.07853 -0.0807,5.16163 -0.94697,2.76125 -1.31477,-3.64308 -3.28055,-3.3322 -4.47109,0.7071 -1.00153,3.39798 -1.35145,12.99513 -0.56425,15.47536 0.82843,2.61017 2.94329,3.18816 5.61768,1.5353 2.84397,-1.75766 8.29689,-1.97683 9.61674,-0.38651 0.83041,1.00059 3.43967,1.86008 11.45307,3.77266 1.96858,0.46984 3.98573,0.55054 4.93977,0.19762 1.53406,-0.56749 1.47539,-0.66634 -1.20595,-2.03199 -1.55014,-0.78952 -5.47712,-2.02752 -8.7266,-2.75112 l -5.90816,-1.31563 0.28436,-9.19239 c 0.24898,-8.04878 0.5027,-9.62463 2.03942,-12.6668 3.03069,-5.99972 7.74123,-7.90266 11.91702,-4.8142 3.2945,2.43666 3.81073,4.59869 4.40924,18.46644 0.63327,14.67323 1.12815,16.28874 5.02661,16.40916 1.25499,0.0388 3.0773,0.32525 4.04957,0.63663 3.03153,0.97086 3.4486,0.7812 4.19048,-1.90567 z m 10.15815,1.43199 c 4.92005,-0.63519 5.04666,-1.09784 4.30848,-15.74506 -0.89404,-17.73985 -0.75859,-21.08267 0.99305,-24.50835 1.90534,-3.72625 8.70821,-9.94961 11.45662,-10.48068 1.16998,-0.22606 3.05985,-0.59058 4.1997,-0.81004 3.03889,-0.58506 3.68666,-1.80012 3.43095,-6.43562 l -0.22758,-4.12552 -1.22354,2.47487 -1.22354,2.47487 0.4111,-6.0104 c 0.74853,-10.94358 1.51547,-18.07224 1.6356,-15.2028 0.18585,4.43944 2.00808,18.70288 2.9178,22.83905 0.45329,2.06094 1.58993,4.57344 2.52587,5.58333 2.58399,2.78818 2.0443,3.30427 -1.36564,1.30591 -5.11147,-2.99552 -11.66088,-2.06702 -16.26446,2.3058 -3.2155,3.05432 -4.00813,5.24169 -3.94524,10.88753 l 0.0575,5.16164 1.60283,-5.04324 c 2.02061,-6.35781 4.08315,-9.26453 7.75818,-10.93353 3.79127,-1.72179 5.83181,-1.6653 9.2208,0.25528 5.08006,2.87892 7.3357,9.95626 8.95448,28.09586 0.46854,5.25027 1.08958,9.81697 1.38008,10.14822 0.29051,0.33126 0.75607,-2.21433 1.03457,-5.65686 0.71125,-8.79138 1.52349,-9.4378 1.87114,-1.48915 0.18271,4.17774 0.65393,7.18315 1.23624,7.88479 1.20531,1.45231 5.28433,1.46604 6.72772,0.0226 1.67877,-1.67877 1.39826,-5.64293 -1.68364,-23.7942 -8.12833,-47.87286 -14.59486,-112.1132 -16.28408,-161.77083 -0.81,-23.81162 -1.04552,-26.58939 -2.36649,-27.91036 -0.73157,-0.73156 -1.05833,-5.47109 -1.39863,-20.28646 -0.24423,-10.63253 -0.96379,-28.08232 -1.59904,-38.77731 -1.42823,-24.04514 -1.22857,-28.7511 1.34976,-31.81528 1.52657,-1.81422 1.73494,-2.49003 1.12127,-3.63668 -0.62657,-1.17075 -1.13315,-1.31123 -3.00266,-0.83264 -1.23691,0.31664 -8.20757,0.57571 -15.49036,0.57571 h -13.24143 l -0.36753,1.76777 c -2.79406,13.43933 -3.19441,75.30928 -0.49313,76.20971 1.06054,0.35351 1.07515,12.0761 0.0573,45.9284 l -0.7703,25.61805 5.36622,6.27443 c 2.95143,3.45093 5.36622,6.69585 5.36622,7.21092 0,0.51508 -1.00981,1.77953 -2.24403,2.8099 -2.75569,2.30055 -2.35705,3.97601 1.10033,4.62463 3.34098,0.62677 4.21006,-0.0587 3.74077,-2.95059 -0.35779,-2.20484 -0.28078,-2.32921 1.01342,-1.63657 2.34525,1.25514 7.70322,6.72001 7.70322,7.85691 0,0.5876 -0.78672,1.42682 -1.74826,1.86493 -0.96154,0.4381 -1.95278,1.61142 -2.20275,2.60738 -0.36129,1.43953 -0.65393,1.64528 -1.42723,1.00349 -1.17398,-0.97431 -3.51406,-0.60378 -9.01765,1.42785 -4.69163,1.7319 -6.93668,1.59612 -3.45855,-0.20916 1.39899,-0.72613 2.29809,-1.73215 2.29809,-2.57135 0,-1.18767 0.2512,-1.28305 1.81406,-0.68885 2.01964,0.76786 3.47031,0.22602 5.55129,-2.07343 0.73652,-0.81384 2.0853,-1.47971 2.9973,-1.47971 1.15553,0 1.65817,-0.40576 1.65817,-1.33856 0,-2.09723 -1.43529,-2.17027 -7.10471,-0.36156 -2.89831,0.92465 -5.30509,1.68545 -5.34838,1.69065 -0.0433,0.005 0.0638,-0.73602 0.23797,-1.64717 0.32945,-1.72342 -1.04509,-2.62501 -5.63933,-3.69896 -2.29319,-0.53607 -2.64929,0.68604 -0.53033,1.82007 0.77782,0.41627 1.41422,1.19987 1.41422,1.74132 0,0.54145 0.83841,1.64395 1.86312,2.45 l 1.86313,1.46553 h -1.79396 c -1.37185,0 -1.97442,0.51771 -2.56098,2.2003 -0.65719,1.88522 -1.0215,2.13643 -2.54405,1.7543 -0.97735,-0.24531 -1.77701,-0.31021 -1.77701,-0.14424 0,0.16597 0.81992,1.88214 1.82205,3.8137 1.74141,3.3565 1.83887,4.16524 2.20185,18.27326 0.33324,12.95197 -0.29006,48.99872 -1.67414,96.81994 -0.4705,16.25596 -0.10507,18.53463 2.8373,17.69197 0.84175,-0.24107 3.05526,-0.63516 4.91893,-0.87576 z m 28.24993,-3.46697 c 9.31462,-1.80785 13.81119,-3.47342 7.57745,-2.80676 -1.73438,0.18548 -6.33539,0.49535 -10.22448,0.6886 l -7.07107,0.35135 5.28682,-1.39768 c 2.90774,-0.76872 5.77153,-1.88318 6.36396,-2.47657 0.80291,-0.80422 1.07714,-2.67738 1.07714,-7.35748 0,-6.60959 -0.14671,-7.09549 -2.2333,-7.39628 -1.92288,-0.2772 -2.05908,-2.9761 -0.20039,-3.97084 1.30803,-0.70004 1.49031,-1.27639 1.20479,-3.80949 -0.37323,-3.31124 -3.37131,-9.79729 -5.66477,-12.25515 -1.838,-1.96976 -4.40768,-2.02435 -7.46779,-0.15866 -4.22484,2.57582 -4.66259,4.71523 -4.69845,22.96285 -0.0362,18.41318 0.1884,19.44544 4.23093,19.44544 1.34495,0 6.66358,-0.8187 11.81916,-1.81933 z m -20.1605,-8.96405 c -0.14888,-1.65287 -0.27068,-0.30052 -0.27068,3.0052 0,3.30572 0.1218,4.65807 0.27068,3.0052 0.14887,-1.65286 0.14887,-4.35754 0,-6.0104 z m 120.75106,-35.24762 c 0,-20.65598 -0.17937,-25.38731 -0.99992,-26.37522 -0.91266,-1.09881 -1.09778,-1.10606 -2.12132,-0.0831 -1.31323,1.31248 -1.48508,8.82812 -0.52371,22.90432 l 0.59769,8.7513 -6.25455,-0.61957 c -15.05565,-1.49142 -19.75416,-0.35586 -22.72961,5.49341 -2.41783,4.75304 -2.77176,8.41043 -0.97157,10.03958 3.12919,2.83188 6.06791,-0.39154 5.37846,-5.89952 l -0.3983,-3.18198 3.06709,5.65685 c 2.58535,4.76836 3.56437,5.90955 6.23324,7.26569 2.81668,1.43125 4.02468,1.58734 10.94433,1.41421 l 7.77817,-0.19461 z m -33.39293,3.28565 c 2.01671,-4.22909 3.9477,-4.96272 13.56174,-5.15244 10.42279,-0.20568 11.56886,-0.457 12.43158,-2.72613 1.13191,-2.97715 0.8531,-17.70499 -0.38033,-20.09016 -1.10465,-2.13618 -1.59939,-2.30362 -9.355,-3.1661 -2.03496,-0.2263 -6.96703,-1.35386 -10.96016,-2.50569 -3.99313,-1.15182 -7.70133,-2.09619 -8.24045,-2.0986 -0.81939,-0.004 -0.92019,2.92491 -0.61441,17.85006 0.42733,20.8583 0.93164,23.39456 3.55703,17.88906 z m -148.71194,0.36542 c 1.81591,-3.39306 -0.4379,-9.23887 -3.56198,-9.23887 -1.66657,0 -1.67171,0.19771 0.0898,-3.44812 0.93317,-1.93143 1.37569,-4.05038 1.23744,-5.92527 -0.19736,-2.67637 -0.42065,-2.9724 -2.69009,-3.5663 -2.30808,-0.60401 -11.11015,-0.22749 -11.8443,0.50665 -0.75675,0.75675 5.18781,9.19134 9.4102,13.35189 2.72377,2.68389 4.55542,5.0842 4.55542,5.96974 0,3.49848 1.51109,4.76526 2.80355,2.35028 z m 27.87994,0.24924 c 0.70303,-1.83207 0.50013,-2.41704 -0.83835,-2.41704 -0.8968,0 -1.50631,-0.89267 -2.0838,-3.05187 -0.89534,-3.34753 -7.38429,-12.83032 -9.89821,-14.46498 -3.004,-1.95334 -2.74455,0.86306 0.72302,7.84811 4.17501,8.41014 7.80881,13.20427 10.00841,13.20427 0.91285,0 1.85287,-0.50332 2.08893,-1.11849 z m 75.84639,-7.19001 c -0.2511,-3.79186 -0.45819,-9.26365 -0.46021,-12.15953 l -0.004,-5.26523 -2.47487,2.39874 c -2.23458,2.16584 -2.47487,2.25358 -2.47487,0.90365 0,-2.23803 0.73796,-3.73208 1.84342,-3.73208 0.67777,0 0.985,-0.88222 0.985,-2.82843 0,-2.72632 -0.41039,-3.17225 -2.65165,-2.88121 -1.32407,0.17194 -1.09989,-0.3591 1.31069,-3.10459 2.64167,-3.00869 3.29809,-3.1101 3.5921,-0.55493 0.32094,2.78935 2.9618,2.73427 3.28251,-0.0685 0.17997,-1.57266 0.5208,-1.93704 1.55813,-1.66578 0.73028,0.19097 1.86451,-0.0452 2.52051,-0.52492 1.107,-0.80946 1.09666,-0.91202 -0.14391,-1.42684 -2.09101,-0.86773 -15.35397,-1.24867 -16.49142,-0.47366 -0.87438,0.59576 -0.85476,1.25265 0.14367,4.8113 0.63595,2.26674 1.33253,6.03053 1.54794,8.36398 0.21541,2.33345 1.07662,8.93606 1.9138,14.67246 l 1.52214,10.42983 h 2.46861 2.46861 z M 254.78844,551.58148 c 4.03621,-2.73904 5.52353,-3.41444 9.6695,-4.39094 3.82062,-0.89988 3.75216,-0.91137 -3.88909,-0.65273 -7.83984,0.26537 -12.12208,1.22263 -11.31453,2.52928 0.24081,0.38964 1.12625,0.70843 1.96765,0.70843 h 1.52982 l -1.57155,1.10075 c -0.86435,0.60542 -1.57155,1.40092 -1.57155,1.76777 0,1.2216 2.59972,0.68829 5.17975,-1.06256 z m 5.54121,-16.93807 c 1.35377,-1.8602 2.00696,-3.61699 2.00696,-5.3978 0,-3.54206 -3.52121,-6.70277 -12.35715,-11.09202 -5.46959,-2.71701 -6.71889,-3.63638 -6.94918,-5.11396 -0.23283,-1.49389 -0.29885,-1.40651 -0.38671,0.51183 -0.0831,1.81536 0.26164,2.48074 1.60189,3.0914 0.93931,0.42797 1.91397,1.45529 2.16592,2.28293 0.25193,0.82764 0.64142,7.45995 0.86552,14.73847 l 0.40744,13.23368 5.31917,-4.7484 c 2.92554,-2.61161 6.2223,-5.98937 7.32614,-7.50613 z m 29.43171,10.57049 c 0.2087,-0.2087 -0.14893,-0.96331 -0.79472,-1.67691 -0.6458,-0.7136 -1.17418,-2.29534 -1.17418,-3.51499 0,-1.46872 -0.46186,-2.46471 -1.36773,-2.94953 -1.60184,-0.85727 -10.36696,-0.89471 -12.42085,-0.053 -1.31403,0.53848 -1.27321,0.63514 0.57636,1.36452 1.09481,0.43174 2.26365,0.78498 2.59739,0.78498 1.24928,0 4.95797,3.71078 4.95797,4.96076 0,0.71473 0.55685,1.45897 1.23744,1.65388 1.3997,0.40084 5.8112,0.007 6.38832,-0.56966 z m 334.302,-4.21932 c 1.28947,-0.94203 1.38529,-2.14096 1.58233,-19.79899 l 0.20974,-18.79622 h -8.08636 c -11.77452,0 -11.42501,-0.43615 -11.42501,14.25707 0,13.03252 0.55867,15.35225 4.07536,16.922 1.54471,0.68951 2.40207,1.68506 2.79706,3.2479 1.11165,4.39832 7.28482,6.77055 10.84688,4.16824 z m -98.45116,-0.48327 c 4.73384,-0.42841 8.6678,-0.83394 8.74213,-0.90119 0.26895,-0.24329 -6.63843,-19.24172 -7.87301,-21.6544 -3.23824,-6.32833 -6.75731,-7.43465 -21.96063,-6.90391 -9.74352,0.34014 -15.2028,1.53095 -15.2028,3.31614 0,1.36872 3.33909,9.59544 6.21826,15.32031 3.16346,6.29015 5.95828,10.00204 8.21976,10.9169 2.10798,0.85276 11.85908,0.81089 21.85629,-0.0938 z m -154.1487,-1.81089 c 7.44154,-0.54627 7.76369,-0.86174 8.90887,-8.72389 0.69528,-4.77344 3.56523,-29.90198 3.58042,-31.34925 0.008,-0.7438 -30.31424,-0.24562 -31.99039,0.5256 -1.9467,0.8957 -1.44817,2.53259 0.91529,3.00528 l 2.15273,0.43055 -2.15273,1.30914 c -2.63628,1.60322 -2.72261,2.56249 -0.31308,3.47859 1.20033,0.45637 1.70021,1.0628 1.43843,1.74501 -0.22068,0.57506 0.0205,1.43949 0.53587,1.92095 0.77363,0.72268 0.6946,1.20338 -0.45309,2.75571 -2.14409,2.90004 -1.15514,7.28865 2.4108,10.69834 l 2.77317,2.65165 h -2.10936 c -1.16015,0 -2.29539,0.301 -2.52275,0.66888 -0.41267,0.6677 3.82037,2.14814 6.16355,2.1556 2.05479,0.007 1.3944,1.07731 -1.25537,2.03548 -3.14791,1.1383 -4.896,3.67726 -4.26441,6.19373 0.46484,1.85208 0.51911,1.86683 5.20447,1.41425 2.60411,-0.25154 7.54402,-0.66357 10.97758,-0.91562 z m -166.30409,-5.83483 c 1.62563,-1.31815 1.66853,-1.63742 1.63901,-12.19759 -0.037,-13.24887 -0.94294,-17.08562 -8.49294,-35.97006 -2.88171,-7.20787 -5.43449,-14.20823 -5.67284,-15.55634 l -0.43336,-2.45113 1.46737,2.11766 c 0.80705,1.16471 3.76116,7.17214 6.56468,13.34982 5.67203,12.49855 7.88876,15.43518 12.6113,16.70682 3.9604,1.06643 18.0014,0.61019 20.62499,-0.67016 3.44255,-1.68003 3.2925,-3.21347 -1.56052,-15.94779 -1.2868,-3.37656 -1.70394,-6.26349 -2.04347,-14.14213 -0.31112,-7.21938 -0.58325,-9.27536 -1.00516,-7.59412 -0.3182,1.26794 -1.05257,2.77938 -1.63193,3.35875 -1.49197,1.49197 -7.19351,1.33923 -16.29605,-0.43654 -4.20051,-0.81947 -10.23565,-1.53542 -13.41142,-1.59099 -5.15405,-0.0902 -5.9633,0.0764 -7.53566,1.55143 -4.48582,4.20814 -13.38075,26.26528 -14.39035,35.68433 -0.39437,3.67929 -0.28118,4.21389 1.0965,5.17885 1.89841,1.3297 5.51313,8.45808 8.56029,16.8813 4.1202,11.38935 5.79829,13.00644 13.5456,13.05316 3.60139,0.0217 5.08337,-0.2869 6.36396,-1.32527 z m 393.91596,-0.0921 c 3.39383,-0.94256 4.79382,-3.01596 4.79382,-7.09974 0,-2.55823 -0.45318,-3.85123 -2.05725,-5.86969 -1.30246,-1.63893 -2.22598,-3.81551 -2.51713,-5.93244 -0.51415,-3.73826 0.57099,-9.69125 2.03308,-11.15333 1.10239,-1.10239 0.65747,-4.31096 -1.59381,-11.49378 -2.23348,-7.12603 -8.74645,-23.47342 -9.35207,-23.47342 -0.78088,0 -3.04442,6.28601 -7.0887,19.68582 -4.6634,15.45112 -5.01003,17.07821 -3.742,17.5648 0.55481,0.21291 1.98702,-0.0181 3.18268,-0.51338 1.81152,-0.75035 2.279,-0.73431 2.80418,0.0962 0.34663,0.5482 0.5559,6.14376 0.46502,12.43458 -0.15371,10.64117 -0.0623,11.5758 1.31274,13.4182 2.18103,2.9224 6.53445,3.78725 11.75944,2.33613 z m -129.91002,-5.0627 c 4.14072,-1.03892 7.04349,-4.58897 13.22127,-16.16951 l 5.44311,-10.20334 -3.15179,-12.72756 c -1.73349,-7.00016 -3.80307,-14.69221 -4.59906,-17.09346 -1.33431,-4.02513 -3.04233,-6.56943 -3.86073,-5.75103 -0.96841,0.96841 -4.6978,36.10778 -4.51415,42.53368 l 0.0638,2.23148 0.58121,-2.12132 c 0.31966,-1.16672 0.79515,-5.48712 1.05663,-9.60087 0.51701,-8.13406 0.719,-8.79957 2.83081,-9.32719 1.28384,-0.32075 1.26755,-0.36088 -0.17678,-0.43535 -1.41723,-0.0731 -1.58946,-0.44886 -1.57698,-3.44078 0.0219,-5.24582 1.34529,-13.14082 2.30189,-13.73228 1.53326,-0.948 2.7534,1.23625 4.83738,8.65966 1.12151,3.99497 2.03911,7.52634 2.03911,7.84748 0,0.32114 -0.71595,0.61562 -1.59099,0.65438 -1.5202,0.0673 -1.51294,0.0922 0.16303,0.55897 1.51264,0.42126 1.93971,1.26597 3.10345,6.13833 l 1.34942,5.64985 -4.87121,8.89498 c -2.67917,4.89224 -5.34852,9.57193 -5.93188,10.39932 -1.03013,1.46103 -1.6939,1.51794 -23.0572,1.97689 l -21.99655,0.47255 -1.22787,-3.21513 c -1.57324,-4.11947 -1.25287,-5.59439 1.38034,-6.35496 1.16673,-0.337 10.3441,-0.89287 20.39416,-1.23527 10.05005,-0.34241 18.4823,-0.84098 18.73833,-1.10795 0.76419,-0.79686 -34.61019,0.20267 -38.20115,1.0794 -4.48635,1.09534 -5.10456,1.96888 -4.09529,5.78672 1.72505,6.52545 7.30842,9.65212 18.7203,10.4833 7.59353,0.55308 18.6955,0.13555 22.62742,-0.85099 z m 67.40616,-1.09306 c 1.62033,-4.16692 2.30341,-7.87452 2.70326,-14.67246 0.38446,-6.53643 0.29974,-7.21681 -1.12032,-8.99857 -2.05535,-2.57884 -6.00794,-3.57327 -14.54188,-3.65863 -8.30247,-0.083 -11.66726,0.93624 -11.66726,3.5343 0,2.25833 2.53771,3.77564 7.15841,4.28006 6.46814,0.70609 8.11077,2.61197 11.18242,12.97457 2.47878,8.36245 4.68445,10.65774 6.28537,6.54073 z m 110.74617,-13.18088 c 1.77117,-1.35095 3.45903,-3.87875 5.62764,-8.42816 3.31075,-6.94546 8.19952,-19.58744 8.19952,-21.20332 0,-1.63947 -3.48573,-2.69535 -10.9316,-3.31133 -3.9048,-0.32303 -7.65647,-0.81081 -8.33706,-1.08394 -1.41072,-0.56614 -1.60245,-1.81877 -0.45414,-2.96707 1.55788,-1.55788 1.52543,-9.94037 -0.091,-23.5111 -0.88671,-7.44433 -1.8384,-13.28074 -2.11485,-12.96979 -1.0593,1.19142 -3.01446,29.52018 -2.57674,37.3349 0.51162,9.13414 -0.16562,12.71829 -4.47604,23.68816 -1.60454,4.0835 -2.97912,8.68972 -3.05463,10.23605 -0.12774,2.61607 0.0347,2.87429 2.33758,3.71456 1.47791,0.53928 4.66357,0.80793 7.90812,0.6669 4.62037,-0.20084 5.81176,-0.52487 7.96321,-2.16586 z m -260.2641,-10.33042 c 0.2824,-2.01219 0.22389,-2.66207 -0.15916,-1.76776 -0.33315,0.77781 -0.79994,2.8461 -1.03731,4.59619 -0.2666,1.96564 -0.20576,2.64138 0.15916,1.76777 0.32491,-0.77782 0.7917,-2.84611 1.03731,-4.5962 z m 78.22268,4.04067 c 0,-0.11109 -2.38649,-8.76007 -5.3033,-19.21997 -2.91682,-10.45988 -5.29056,-19.35808 -5.27499,-19.77378 0.0724,-1.93318 2.8004,4.80315 7.80068,19.26253 3.00052,8.67664 5.62729,15.94751 5.83727,16.15749 1.17094,1.17093 1.72047,-1.39393 2.10222,-9.81175 0.26829,-5.91599 1.47037,-15.48344 3.24707,-25.84363 1.55159,-9.04756 3.04011,-18.67305 3.30784,-21.38998 l 0.48676,-4.93987 h -19.55952 c -24.28723,0 -24.12872,-0.0433 -25.5455,6.97446 -0.72731,3.60264 0.29498,11.15537 1.75377,12.9569 1.11683,1.37924 2.15577,1.61615 8.67322,1.97782 5.71565,0.31718 7.87308,0.72817 9.45936,1.802 l 2.05497,1.39111 -17.14734,0.18935 c -9.43104,0.10415 -17.14734,0.38972 -17.14734,0.63462 0,0.24489 2.45023,9.30788 5.44495,20.13997 l 5.44496,19.6947 h 17.18246 c 9.45035,0 17.18246,-0.0909 17.18246,-0.20197 z m 95.81297,-0.4871 c 3.71356,-0.86043 5.3033,-2.90568 5.3033,-6.82289 0,-3.43485 -6.0353,-27.85996 -8.53979,-34.56089 -1.99257,-5.33124 -5.05418,-8.50572 -8.80123,-9.12568 -5.2978,-0.87654 -21.62666,-2.28229 -21.85458,-1.88147 -0.32545,0.57234 -12.4232,38.80966 -12.4232,39.26597 0,0.20845 4.78319,0.379 10.62932,0.379 11.64947,0 14.54672,-0.66485 16.60832,-3.81126 0.65158,-0.99443 3.00163,-6.98722 5.22233,-13.31731 2.22071,-6.33009 4.40735,-12.14565 4.85922,-12.92346 2.20504,-3.79563 0.0755,4.48364 -6.8095,26.47407 -3.96801,12.67368 -4.13184,13.6029 -2.61968,14.85789 2.15719,1.7903 13.22516,2.67093 18.42549,1.46603 z m 15.12672,-1.79085 c 1.31577,-2.70204 0.0751,-9.7588 -2.12808,-12.10394 -1.48056,-1.57598 -1.48868,-1.65936 -0.19987,-2.05348 3.83215,-1.17185 4.99818,-2.37106 7.90345,-8.12824 3.29104,-6.52166 5.88774,-16.45599 4.6301,-17.71364 -1.23949,-1.23948 -10.18455,-2.19066 -16.13993,-1.71624 -8.04731,0.64107 -8.83884,0.90504 -8.83884,2.94773 0,4.01742 7.32367,29.77591 10.78004,37.91513 1.57877,3.71775 2.50198,3.91489 3.99313,0.85268 z M 426.9157,503.9356 c -0.7387,-5.50743 -5.01782,-17.91227 -6.85876,-19.88299 -2.49353,-2.66933 -5.78088,-3.024 -20.18806,-2.17804 -6.61145,0.38821 -12.59256,0.71033 -13.29135,0.71582 -0.93865,0.007 -0.12492,1.34106 3.1151,5.10557 2.4121,2.80258 4.98704,6.11489 5.72209,7.36071 1.49262,2.5298 4.40008,3.92304 10.81812,5.18396 5.95099,1.16916 17.87337,4.86679 18.39061,5.7037 0.23715,0.38372 0.9316,0.69768 1.54322,0.69768 0.88084,0 1.03656,-0.56267 0.74903,-2.70641 z M 243.04345,482.60038 c -0.25808,-14.54311 -0.60638,-20.18706 -1.38152,-22.38712 -1.35152,-3.83597 -6.09593,-9.37933 -8.05334,-9.4095 -1.9562,-0.0301 -2.85116,-1.18055 -3.46222,-4.45042 -0.27334,-1.4627 -0.79832,-2.84569 -1.16661,-3.0733 -1.1699,-0.72305 -4.61324,1.16582 -5.44229,2.9854 -0.88955,1.95234 -0.99386,9.06659 -0.16401,11.18571 0.68247,1.74273 1.19411,0.86451 1.82643,-3.13504 0.68433,-4.32846 2.23714,-6.74573 3.60441,-5.611 1.68083,1.39497 3.71028,9.60506 4.88277,19.75313 1.72679,14.94557 4.26675,26.86757 7.45708,35.00179 l 0.83201,2.12132 0.7062,-1.76777 c 0.44082,-1.10349 0.57651,-9.07484 0.36109,-21.2132 z m -80.40889,-0.70711 v -21.92031 h -9.8995 -9.89949 v 21.92031 21.92031 h 9.89949 9.8995 z m 515.04858,15.06094 c 2.27949,-7.65023 4.18663,-18.05219 5.35423,-29.20308 1.32328,-12.63764 3.37729,-20.50609 5.35302,-20.50609 1.02833,0 2.16561,3.0057 2.87615,7.6014 0.25555,1.65286 0.74217,3.0052 1.08137,3.0052 0.84819,0 0.78176,-11.80544 -0.0754,-13.40714 -1.31441,-2.456 -4.6017,-2.85632 -23.45496,-2.85632 h -18.27926 l 0.0169,13.61181 c 0.0172,13.91829 0.52341,18.34422 2.30123,20.12204 0.55437,0.55437 2.72562,1.24598 4.825,1.5369 2.09938,0.29093 4.47887,0.94901 5.28775,1.4624 2.90739,1.8453 5.44691,7.136 10.96343,22.8406 0.5123,1.45841 1.10617,2.65072 1.31973,2.6496 0.21355,-10e-4 1.30745,-3.08692 2.43089,-6.85732 z m -56.1281,0.132 c 1.41201,-1.70136 0.39772,-6.28777 -3.52282,-15.92952 -6.30867,-15.51486 -8.73349,-18.06565 -17.03572,-17.92077 -2.55225,0.0445 -5.30405,0.43612 -6.1151,0.87018 -1.32294,0.70802 -1.40517,1.09837 -0.79942,3.79437 0.99663,4.43569 7.52491,21.65877 9.52142,25.11968 0.95031,1.64734 2.59212,3.46423 3.64846,4.03755 2.71015,1.47091 13.08893,1.4916 14.30318,0.0285 z m 9.79366,-1.58114 c 1.0826,-2.03218 2.13645,-10.78685 3.63882,-30.22881 0.78136,-10.11163 1.80037,-21.80936 2.26446,-25.99497 0.97795,-8.82009 0.69956,-9.46809 -4.49895,-10.47252 -4.49163,-0.86785 -20.9504,-0.67686 -24.57495,0.28518 -4.17988,1.10942 -5.3575,2.94951 -7.54351,11.78713 -3.53647,14.29727 -3.21471,16.37046 2.69027,17.33436 7.42183,1.21149 9.50614,4.11292 19.54938,27.21336 4.75312,10.93265 6.75209,13.30945 8.47448,10.07627 z m -274.41639,-1.49381 c 2.22513,-1.11329 5.27701,-2.42332 6.78195,-2.91119 3.87564,-1.2564 2.05528,-2.11152 -4.52345,-2.12491 -6.21631,-0.0126 -8.46585,1.09117 -8.46585,4.15406 0,3.52934 0.71349,3.63073 6.20735,0.88204 z m 29.50154,-0.0972 c 0.28457,-0.46043 -3.33923,-0.68976 -10.38809,-0.6574 -6.70597,0.0308 -10.28698,0.28094 -9.4109,0.6574 2.01527,0.86599 19.26379,0.86599 19.79899,0 z m 122.45936,-1.37417 c 4.12249,-1.87167 5.41955,-4.63726 5.35289,-11.41334 -0.0553,-5.61762 -2.85564,-18.85491 -4.77329,-22.56322 -1.83045,-3.5397 -3.22709,-3.89369 -15.36231,-3.89369 -10.5654,0 -11.19577,0.0785 -12.69828,1.58099 l -1.58099,1.58099 3.304,15.36408 c 3.36676,15.65585 4.31215,18.10095 7.66504,19.82406 2.794,1.43589 14.56072,1.12381 18.09294,-0.47987 z m -154.0532,-10.46986 c 0.15487,-1.09053 0.71096,-1.59403 1.76776,-1.60065 2.63325,-0.0165 4.72379,-0.82004 4.72379,-1.8157 0,-1.48821 -2.40869,-2.41728 -6.26696,-2.41728 -5.26346,0 -7.18371,2.59367 -4.62491,6.24685 1.44542,2.06363 4.08374,1.81587 4.40032,-0.41322 z m 24.87633,1.21367 c 0.92246,-0.61681 0.89539,-0.80651 -0.20777,-1.45587 -0.85056,-0.50068 -1.12149,-1.20961 -0.8224,-2.15195 0.40348,-1.27125 0.21114,-1.36125 -2.0163,-0.94338 -1.7382,0.32609 -2.99378,0.11371 -4.2695,-0.72217 -2.14074,-1.40267 -4.70485,-0.84633 -4.70485,1.02082 0,2.93956 9.14572,6.175 12.02082,4.25255 z m 1.40315,-7.06797 c -1.54847,-2.89334 -5.18954,-3.7546 -17.66661,-4.17883 l -11.66726,-0.3967 4.24264,-2.89197 c 2.33346,-1.59059 8.14057,-5.18247 12.9047,-7.98195 l 8.66206,-5.08998 v -12.34737 -12.34737 h -8.3987 c -6.10602,0 -8.61077,0.25553 -9.17556,0.93606 -1.45447,1.75253 0.50132,2.58849 4.96456,2.12199 5.53749,-0.57878 5.42549,0.65846 -0.295,3.25891 -4.2877,1.94912 -4.43383,2.44851 -0.88388,3.02049 2.38735,0.38465 1.57084,2.15439 -1.41422,3.06523 l -2.82842,0.86305 2.31281,0.52953 c 1.27204,0.29125 2.46504,0.77586 2.6511,1.07692 0.60877,0.98499 -7.4678,5.77238 -10.40232,6.16598 -2.40699,0.32285 -3.00535,0.74912 -3.83342,2.73097 -1.5485,3.70609 -1.2962,5.22225 0.86902,5.22225 1.51452,0 1.78176,-0.26187 1.47281,-1.44326 -0.31667,-1.21096 -0.13077,-1.3689 1.15497,-0.98119 0.84281,0.25414 1.77525,0.68509 2.07208,0.95766 0.68452,0.62856 -2.46683,3.63286 -4.05521,3.86598 -1.7831,0.2617 -2.47202,1.81542 -2.48407,5.60225 -0.0184,5.77768 0.21885,5.93564 9.69901,6.45869 11.55015,0.63727 17.8154,1.63096 20.32411,3.22349 2.34012,1.48549 3.0378,0.9191 1.7748,-1.44083 z m 267.14188,-64.6796 c 0.0403,-30.66025 -0.24924,-35.01375 -2.47654,-37.24104 -2.20933,-2.20934 -7.60414,-2.54619 -11.7076,-0.73103 -2.6544,1.17416 -3.3909,1.92057 -4.09061,4.14567 -0.96928,3.08233 -1.79922,35.91537 -1.03642,41.00202 0.59169,3.94569 2.43989,5.90585 5.56854,5.90585 5.1258,0 6.05482,3.31391 10.01062,35.70889 0.99729,8.16709 2.03603,15.64474 2.30831,16.61701 0.65387,2.33484 1.37844,-30.95371 1.4237,-65.40737 z M 405.8348,463.68527 c -0.0435,-12.95004 -0.75933,-24.55082 -1.56469,-25.35618 -0.38492,-0.38492 -20.39211,1.49141 -23.64751,2.21772 -1.49514,0.33359 -1.57795,0.73419 -1.76777,8.55174 l -0.19915,8.20176 -7.07107,4.08834 c -3.88909,2.24859 -7.07107,4.52048 -7.07107,5.04864 0,0.70926 1.79026,1.08798 6.84845,1.44875 7.54982,0.53849 10.79651,1.76537 11.43828,4.32236 0.2674,1.06542 1.39498,2.09752 3.08805,2.82658 3.49353,1.50435 4.89023,1.69763 13.09668,1.81225 l 6.89429,0.0963 z m 7.78322,11.88348 c 0.75613,-0.75613 1.56996,-2.58577 1.80851,-4.06586 0.90141,-5.59277 1.08553,-5.95618 3.53669,-6.98033 1.33485,-0.55774 4.50747,-1.01407 7.05026,-1.01407 h 4.62327 l -0.18114,-54.624 -0.18114,-54.62399 h -11.3137 -11.31371 l 0.0931,54.80077 c 0.091,53.59121 0.48443,64.53537 2.40307,66.8472 1.13978,1.37335 1.82918,1.30594 3.47484,-0.33972 z M 302.6417,471.31066 c 0,-0.37571 -0.52022,-1.77403 -1.15604,-3.10737 -1.28981,-2.70475 -0.85366,-6.10901 0.78269,-6.10901 1.7851,0 4.61599,-1.60852 4.61599,-2.62281 0,-0.78545 -1.39714,-0.9394 -6.99188,-0.77038 -5.84408,0.17653 -7.21563,0.009 -8.3549,-1.01783 -1.95727,-1.76487 -5.23582,-2.24603 -6.90039,-1.01271 -2.01981,1.49654 -0.4456,3.03142 3.57375,3.48446 2.1186,0.2388 3.5609,0.84405 4.20596,1.76499 0.53993,0.77087 2.02725,1.61118 3.30516,1.86736 l 2.32347,0.46579 -2.2981,1.80024 c -1.26395,0.99014 -2.2981,2.11093 -2.2981,2.49067 0,0.90344 5.55752,3.41423 7.6014,3.43419 0.87505,0.009 1.59099,-0.29188 1.59099,-0.66759 z m -12.4322,-4.69584 c 1.60239,-0.61489 1.3792,-2.84352 -0.41029,-4.09694 -2.19691,-1.53877 -11.85197,-4.95622 -12.41415,-4.39404 -0.2607,0.2607 0.70152,1.44296 2.13827,2.62725 1.43675,1.1843 2.61227,2.75068 2.61227,3.48085 0,0.73018 0.55685,1.65194 1.23744,2.04834 1.3849,0.80663 5.12879,0.98984 6.83646,0.33454 z m 229.29117,-8.10106 c 2.72393,-1.02917 5.72171,-3.992 7.45965,-7.3727 3.43306,-6.67806 0.39873,-18.58989 -5.49547,-21.57345 -1.46799,-0.74308 -4.31685,-1.05928 -9.51954,-1.0566 -6.19346,0.003 -7.83501,0.24338 -9.8995,1.44855 -3.01017,1.75721 -3.27294,3.22322 -1.82364,10.17413 1.32817,6.36995 3.60091,9.60222 7.4876,10.64879 2.86385,0.77116 4.23554,2.34549 4.23554,4.86125 0,1.5703 2.46639,3.62212 4.35394,3.62212 0.66596,0 2.10661,-0.33844 3.20142,-0.75209 z m 48.48175,-2.07633 c 0.97392,-1.94958 1.23657,-4.30507 1.23744,-11.09751 10e-4,-7.93774 -0.12527,-8.76568 -1.58989,-10.42377 -1.88658,-2.13577 -7.22883,-2.99489 -13.64119,-2.19373 -5.89673,0.73675 -7.39524,2.4622 -7.39524,8.51519 0,5.60143 1.34165,8.63972 4.07873,9.23664 4.04299,0.88172 5.69541,1.90229 6.97435,4.30751 1.58338,2.97776 4.0922,4.5225 6.97814,4.29659 1.63934,-0.12832 2.40223,-0.72836 3.35766,-2.64092 z m -266.71982,0.33539 c 1.98096,-1.02439 2.81832,-3.335 1.50316,-4.14781 -0.32067,-0.19819 -2.42337,0.0675 -4.67266,0.59032 -6.79347,1.5792 -8.17295,4.63631 -2.09206,4.63631 1.74644,0 4.11415,-0.48547 5.26156,-1.07882 z m -139.55909,-2.02039 c -1.74781,-4.55471 -7.55384,-36.00417 -7.55409,-40.91819 -1.5e-4,-2.76532 -1.02398,-3.58135 -1.72443,-1.37444 -0.22295,0.70246 -1.65796,7.62327 -3.1889,15.37958 -1.53094,7.75629 -3.27839,16.38526 -3.88322,19.17548 -1.07573,4.96264 -0.91324,7.12915 0.6131,8.1743 0.41728,0.28573 4.21336,0.52438 8.43574,0.53033 6.24778,0.009 7.60719,-0.17123 7.3018,-0.96706 z m 192.77398,-5.23518 c 2.17023,-2.39808 3.31854,-6.39919 3.31854,-11.56299 0,-6.13233 -1.00926,-7.67979 -5.00883,-7.67979 -4.46098,0 -5.15949,1.32452 -4.64593,8.80953 0.60263,8.78297 1.49141,11.69657 3.568,11.69657 0.89371,0 2.13941,-0.56849 2.76822,-1.26332 z m 132.54146,0.17677 c 3.46042,-2.42377 3.73657,-10.44213 0.84089,-24.41608 -2.6286,-12.68502 -9.33832,-31.77302 -11.1687,-31.77302 -1.42924,0 -4.24144,11.18507 -6.13353,24.39519 -1.29344,9.03046 -1.29601,13.21819 -0.01,16.29611 1.04245,2.49494 1.31814,2.69277 4.82519,3.46238 2.15073,0.47197 3.66439,3.09865 4.38608,7.61125 0.26209,1.63877 1.10755,3.16249 2.25601,4.06587 2.20033,1.73078 2.96625,1.78562 5.00403,0.3583 z m 55.77224,-0.71434 c 0.79021,-1.20603 1.3472,-4.18409 1.68621,-9.01562 0.27842,-3.96809 0.75275,-7.79593 1.05407,-8.50631 0.85545,-2.01684 3.39516,-2.59749 11.36115,-2.59749 5.0777,0 7.37859,-0.25289 7.37859,-0.81098 0,-0.44604 -1.14976,-4.66216 -2.55503,-9.36916 -4.72494,-15.8264 -5.31842,-16.33636 -19.01173,-16.33636 -10.1003,0 -12.04527,0.56389 -12.83791,3.72203 -0.27955,1.11383 0.0156,3.69089 0.70624,6.16678 3.7318,13.37784 4.85292,18.54679 5.71694,26.35819 1.25558,11.35136 3.51022,14.95412 6.50147,10.38892 z m -281.636,-0.27546 c 1.48923,-0.34563 2.90081,-0.82154 3.13686,-1.0576 1.02049,-1.02049 -1.11741,-4.37165 -3.73456,-5.8539 l -2.81707,-1.59549 3.67058,-0.0116 c 3.94603,-0.0125 5.33232,-0.98648 3.40745,-2.39398 -1.08944,-0.79661 -1.09572,-0.95671 -0.0708,-1.8073 0.88873,-0.73758 1.12451,-2.39429 1.12451,-7.90145 0,-6.65245 0.0801,-7.02067 1.76777,-8.12647 2.03049,-1.33043 2.18167,-2.38677 0.74045,-5.17379 -1.77706,-3.43646 -4.28615,-3.95426 -19.12523,-3.94694 -14.39917,0.007 -20.64519,0.57781 -22.69027,2.07321 -1.22904,0.89869 -1.2022,1.28122 0.65348,9.31436 2.11149,9.14048 3.00179,10.99713 6.20851,12.94724 l 2.12609,1.29296 -1.85555,0.46572 c -1.51482,0.38019 -1.81491,0.81825 -1.63419,2.38559 0.15783,1.3688 0.62398,1.91988 1.62401,1.91988 2.05617,0 2.26039,2.30921 0.22968,2.59705 -1.17673,0.1668 -1.69411,0.76724 -1.85369,2.15126 -0.22925,1.98827 0.0598,2.16299 4.81756,2.91239 3.56286,0.56118 21.64639,0.41881 24.27442,-0.19111 z M 534.5619,443.3374 c 0.0382,-12.53338 -4.91092,-32.15481 -8.1104,-32.15481 -1.34328,0 -2.1289,1.59734 -3.22985,6.56706 -0.85762,3.87125 -0.82257,4.19574 0.64915,6.01041 2.44328,3.01258 4.06359,6.93588 6.48687,15.7068 1.23567,4.47245 2.41113,8.40435 2.61214,8.73755 0.72957,1.20936 1.58151,-1.39504 1.59209,-4.86701 z m 65.40955,-10.12225 c 1.34578,-4.14638 4.78454,-8.59753 6.64208,-8.59753 2.05974,0 4.14789,-2.00474 4.58528,-4.40212 0.9132,-5.00531 -3.33172,-18.03009 -8.8363,-27.1126 -1.28021,-2.11234 -2.70161,-3.84062 -3.15866,-3.84062 -1.38587,0 -1.69974,3.71905 -2.15864,25.57778 -0.52,24.7689 -0.0687,27.60263 2.92624,18.37509 z m -373.07933,-2.6879 c -0.71,-3.75005 -1.41688,-6.94427 -1.57086,-7.09824 -0.15398,-0.15398 -0.67939,2.28767 -1.16758,5.4259 -0.81249,5.22294 -0.78097,5.82371 0.37248,7.09825 0.69305,0.76581 1.79936,1.39238 2.45847,1.39238 1.12004,0 1.11399,-0.44572 -0.0925,-6.81829 z m 237.42426,5.1432 c 1.86163,-1.60131 1.94902,-1.9673 1.98398,-8.30851 0.0201,-3.64837 -0.19446,-7.4539 -0.47681,-8.45672 -0.71139,-2.52657 -3.27057,-3.47999 -9.34106,-3.47999 -6.86966,0 -8.25683,1.05833 -8.90322,6.79258 -0.25838,2.29217 -0.25314,6.04723 0.0116,8.34458 0.66971,5.81063 1.99434,6.78315 9.23896,6.78315 4.8072,0 5.79641,-0.22133 7.4865,-1.67509 z m 223.69852,1.0611 c 4.95944,-1.25312 4.94203,-1.17787 3.35915,-14.52389 -1.22313,-10.31281 -1.08878,-10.21388 -15.09848,-11.11626 -5.794,-0.37319 -13.87562,-0.58489 -17.95916,-0.47045 l -7.42462,0.20809 -0.19238,13.25825 -0.19238,13.25825 17.87005,-0.0837 c 9.82853,-0.046 18.66554,-0.28466 19.63782,-0.53033 z M 386.0803,421.79612 v -6.35703 l -19.62221,0.44486 c -10.79222,0.24467 -19.71272,0.51767 -19.82334,0.60667 -0.11061,0.089 0.0147,2.74947 0.27845,5.91217 l 0.47956,5.75036 h 19.34377 19.34377 z m 128.69343,-1.85441 c 0,-1.51873 -8.02005,-27.67436 -9.1873,-29.96236 -2.1305,-4.17612 -4.25616,-4.96669 -13.22822,-4.9198 -4.20008,0.022 -8.75021,0.42795 -10.11139,0.90221 -2.25495,0.78567 -2.45738,1.0806 -2.27812,3.31884 0.22324,2.78736 5.96284,20.1647 7.92134,23.98285 1.82947,3.56661 4.50657,5.83235 7.59966,6.43192 3.29196,0.63812 19.28403,0.8424 19.28403,0.24634 z M 389.72295,406.93995 c 3.15197,-9.06359 3.98071,-13.89289 2.618,-15.2556 -1.5611,-1.5611 -10.63553,-2.47937 -24.99898,-2.52971 -13.19137,-0.0462 -17.7788,0.50083 -20.42493,2.43572 -1.19091,0.87082 -1.24989,1.7611 -0.77245,11.66183 l 0.51689,10.71903 9.27959,0.22757 c 5.10377,0.12516 14.21165,0.21367 20.23974,0.19668 l 10.96015,-0.0309 z m -159.20614,2.15823 c 2.50435,-1.23973 4.49517,-4.00599 3.75036,-5.21112 -0.22332,-0.36135 -1.98471,-0.47001 -3.91421,-0.24149 -6.2576,0.74112 -10.24629,4.38074 -7.22333,6.59117 1.41209,1.03255 3.71993,0.67685 7.38718,-1.13856 z m 234.80594,1.35243 c 2.06776,-1.10664 1.7773,-4.86606 -1.80209,-23.32466 -1.7434,-8.99055 -3.52917,-18.41003 -3.96839,-20.93219 -0.43922,-2.52216 -0.94739,-4.43692 -1.12929,-4.25503 -0.18189,0.18189 -2.53951,10.77932 -5.23915,23.54985 -2.69964,12.77053 -5.08216,23.77598 -5.29449,24.45657 -0.35244,1.12973 0.33,1.23744 7.83981,1.23744 4.52423,0 8.84135,-0.32939 9.5936,-0.73198 z m -197.37668,-2.71499 c 0.39021,-0.72911 0.90433,-2.55875 1.14249,-4.06587 0.37732,-2.38776 0.17193,-2.98904 -1.59691,-4.67492 -3.79161,-3.61378 -19.43931,-4.70993 -20.5299,-1.43816 -0.30717,0.9215 5.14328,2.65732 10.77867,3.43272 5.36577,0.73829 7.05559,1.50921 6.02639,2.74933 -0.86675,1.04436 -0.59557,1.92232 1.26182,4.08511 1.35826,1.58159 2.03474,1.56113 2.91744,-0.0882 z m 246.82766,-30.49415 v -31.81981 l -4.77297,0.001 c -6.41087,10e-4 -9.4888,1.52678 -10.38259,5.14521 -0.91435,3.70166 0.14421,6.52095 2.44842,6.52095 1.64616,0 1.74699,0.22447 1.74699,3.88909 0,3.52184 -0.15383,3.91089 -1.62909,4.12004 -2.20082,0.312 -3.18025,3.12022 -2.75555,7.90078 0.41916,4.71833 1.626,7.53902 3.4271,8.01002 1.88064,0.4918 6.32982,10.44519 8.74654,19.56714 2.00866,7.58174 2.31314,8.48528 2.85933,8.48528 0.17151,0 0.31182,-14.31891 0.31182,-31.8198 z m -253.31925,30.52872 c 0.97554,-0.61939 -1.67633,-3.50845 -4.60185,-5.01345 -2.56865,-1.32141 -10.06437,-1.72236 -14.59923,-0.78093 -4.87948,1.01298 -8.18804,3.62936 -6.76215,5.34744 0.68928,0.83054 3.20952,1.02881 12.96658,1.02009 6.66106,-0.006 12.50955,-0.26387 12.99665,-0.57315 z m -22.09884,-6.86252 c 7.95703,-2.07182 7.98141,-4.97688 0.0408,-4.8645 -5.64146,0.0798 -11.22694,2.56945 -11.59421,5.1679 -0.23371,1.65344 -0.14551,1.68458 3.53553,1.2485 2.07637,-0.24598 5.6844,-0.94434 8.01785,-1.5519 z m -4.90689,-5.72809 c 1.20234,-0.7878 3.60552,-1.20269 7.57652,-1.30802 6.15033,-0.16315 11.82606,-1.88772 11.82606,-3.59336 0,-2.22244 -12.31613,-2.28305 -13.55646,-0.0667 -0.39948,0.71384 -1.54831,1.17211 -2.93834,1.17211 -2.80112,0 -5.42551,1.72958 -5.42551,3.57563 0,1.67105 0.2679,1.6945 2.51773,0.22035 z m 163.16202,-6.72223 c -0.70259,-1.22053 -2.22165,-2.80239 -3.37571,-3.51526 -3.90792,-2.41394 -10.98319,-2.57935 -10.98319,-0.25676 0,0.9421 7.8905,3.85684 10.50432,3.88027 0.63962,0.006 1.95844,0.45183 2.93071,0.99133 0.97227,0.5395 1.86531,1.01211 1.98453,1.05023 0.11921,0.0381 -0.35809,-0.92928 -1.06066,-2.14981 z m -155.04828,-1.6828 c 2.94532,-1.52308 3.94664,-6.76692 1.38123,-7.23332 -1.50598,-0.2738 -7.77006,5.32727 -7.77006,6.94764 0,1.71331 3.33935,1.86263 6.38883,0.28568 z m 28.76681,-3.68973 c -0.16253,-1.07484 -0.29985,-0.36328 -0.30516,1.58127 -0.005,1.94454 0.12767,2.82396 0.29551,1.95426 0.16784,-0.8697 0.17219,-2.46069 0.01,-3.53553 z m 79.14256,4.01795 c 1.07815,-0.40991 7.54238,-1.06724 14.36494,-1.46073 14.32254,-0.82604 15.58665,-1.01428 15.58665,-2.32117 0,-1.52069 -2.37755,-1.81571 -14.84925,-1.84264 l -11.66726,-0.0252 3.05907,-1.38823 c 2.18016,-0.98937 2.99107,-1.74676 2.82238,-2.63612 -0.36584,-1.92882 -3.59121,-1.89002 -7.49899,0.0902 -4.33217,2.19528 -7.22129,5.5008 -7.22129,8.2621 0,1.71873 0.29014,2.06707 1.72173,2.06707 0.94696,0 2.60387,-0.33538 3.68202,-0.7453 z m -93.45138,-0.64815 c 0.60193,-0.97394 -1.45406,-4.67958 -3.32244,-5.98825 -4.38755,-3.07315 -9.26551,1.49414 -5.74752,5.38148 0.85256,0.94207 2.18495,1.29311 4.90801,1.29311 2.05578,0 3.92865,-0.30885 4.16195,-0.68634 z m 137.5451,-5.26642 c 0,-1.21254 -6.93288,-3.59924 -13.43503,-4.62511 -6.78123,-1.0699 -17.12554,-0.94191 -18.73061,0.23174 -1.27466,0.93206 -1.26381,0.9994 0.29551,1.83392 0.89032,0.47648 5.80019,1.16802 10.91082,1.53676 5.11062,0.36873 10.56484,0.93877 12.12048,1.26674 4.77003,1.00568 8.83883,0.89334 8.83883,-0.24405 z m -122.54656,-3.04939 c -0.17928,-0.688 -0.33776,-0.2963 -0.35217,0.87042 -0.0144,1.16673 0.13227,1.72963 0.32597,1.2509 0.19369,-0.47874 0.20548,-1.43333 0.0262,-2.12132 z m -19.65628,-1.16127 c 0.99117,-1.19429 0.34254,-3.07833 -1.37654,-3.99836 -4.33458,-2.3198 -11.36997,1.78335 -7.21114,4.20565 1.83987,1.07162 7.64252,0.93156 8.58768,-0.20729 z m 116.70358,-2.57015 c 8.62809,-0.77749 10.77762,-1.93981 7.92004,-4.28261 -2.12393,-1.7413 -10.56043,-1.87966 -16.74367,-0.27461 -4.34898,1.12891 -11.63905,4.18379 -11.63905,4.87731 0,0.61001 12.2712,0.41806 20.46268,-0.32009 z m 267.45915,-5.23904 c 3.37688,-0.54816 7.03616,-1.42836 8.13173,-1.956 1.83147,-0.88204 1.9898,-1.2715 1.96526,-4.83427 -0.0147,-2.13122 -0.883,-8.71825 -1.92959,-14.63785 -1.04659,-5.9196 -2.60807,-16.97698 -3.46996,-24.57196 -0.86188,-7.59498 -1.76041,-13.80905 -1.99673,-13.80905 -0.23631,0 -0.82925,3.26153 -1.31764,7.24784 -0.48839,3.98631 -2.61948,17.53849 -4.73575,30.11595 -2.11626,12.57745 -3.84776,22.99843 -3.84776,23.15774 0,0.4262 0.47707,0.379 7.20044,-0.7124 z m -251.52776,-1.7909 c 0.78,-1.26206 -2.4245,-2.19282 -9.04746,-2.62787 -6.46548,-0.4247 -12.39377,0.10326 -11.47508,1.02195 1.38757,1.38757 19.76855,2.82591 20.52254,1.60592 z m -111.17927,-8.16721 c 0.3405,-6.22341 0.32837,-6.28588 -0.54919,-2.82842 -1.04578,4.12019 -1.33002,10.85907 -0.41606,9.86414 0.33939,-0.36947 0.77376,-3.53554 0.96525,-7.03572 z m 94.82867,2.25782 c 1.07894,-0.70695 1.67216,-1.61487 1.44387,-2.20981 -0.84488,-2.2017 -9.46652,-3.57682 -9.46652,-1.50987 0,0.55716 -0.607,1.20566 -1.34889,1.44113 -1.71907,0.54561 -2.51112,2.54788 -1.32671,3.35389 1.43362,0.97561 8.67968,0.24727 10.69825,-1.07534 z m 6.29626,-9.71962 c 1.45841,-0.40502 2.65165,-1.04751 2.65165,-1.42777 0,-1.76645 -8.21017,-2.6948 -12.72421,-1.43876 -2.11536,0.5886 -2.72899,2.64887 -0.92796,3.11562 2.40259,0.62264 8.34617,0.48806 11.00052,-0.24909 z m 54.97755,-1.77508 c 0,-0.21894 -0.7815,-5.54875 -1.73666,-11.84404 -2.22928,-14.69275 -4.1448,-30.85476 -6.38493,-53.8724 -2.10681,-21.64779 -2.46607,-24.39518 -3.18993,-24.39518 -0.98558,0 -1.37318,2.89837 -4.25524,31.81981 -2.84202,28.5197 -5.34261,50.10211 -6.08898,52.55371 -0.68608,2.25355 0.35486,4.57216 2.38565,5.31381 2.02859,0.74086 19.27009,1.12048 19.27009,0.42429 z m 83.10075,-9.51449 c 1.52556,-1.26608 1.34568,-3.08983 -2.47459,-25.08925 -1.62084,-9.33381 -3.12464,-18.0047 -3.34177,-19.26866 -0.43175,-2.51325 -1.31463,-3.00529 -1.90318,-1.06066 -0.20598,0.68059 -1.02278,7.2832 -1.81511,14.67247 -0.79234,7.38926 -1.95485,16.84846 -2.58336,21.02043 -1.2469,8.27674 -1.10283,9.43261 1.30325,10.45618 2.23488,0.95075 9.36968,0.46881 10.81476,-0.73051 z m -260.19491,-5.26754 c 1.22205,-2.9248 1.28218,-4.55797 0.26598,-7.22453 l -0.75858,-1.99058 -2.4234,2.64127 c -2.81493,3.06801 -2.90104,3.63772 -1.01692,6.7279 1.78732,2.93143 2.65796,2.89733 3.93292,-0.15406 z m 22.23778,-16.19959 c 0,-5.02186 -0.27899,-7.56126 -0.88389,-8.04523 -0.48613,-0.38895 -2.63397,-0.8787 -4.77297,-1.08832 -2.139,-0.20963 -4.60503,-0.60387 -5.48007,-0.87608 -2.53695,-0.78922 -2.01436,1.81267 0.93551,4.65781 1.38958,1.34024 3.9681,4.74375 5.73005,7.56333 1.76194,2.81959 3.48879,5.12653 3.83745,5.12653 0.34866,0 0.63392,-3.30212 0.63392,-7.33804 z M 345.06811,307.275 c 9.4433,-1.07126 11.31371,-1.49152 11.31371,-2.54209 0,-1.57959 -4.46854,-2.05351 -19.44544,-2.06233 -15.8133,-0.009 -23.19765,0.64237 -24.73851,2.18323 -0.83441,0.83441 -1.34455,0.87317 -2.60612,0.19799 -2.01965,-1.08088 -47.65819,-0.52212 -48.7775,0.59719 -0.85853,0.85853 3.12141,1.51222 14.25029,2.34052 9.57243,0.71247 62.15572,0.17576 70.00357,-0.71451 z m -74.51576,-6.07648 c 0.94811,-1.447 1.02129,-2.13904 0.37597,-3.55538 -1.01663,-2.23126 -2.5584,-2.82459 -4.74771,-1.82707 -1.32218,0.60243 -1.72267,1.33092 -1.72267,3.13352 0,1.29173 0.38183,2.73045 0.84852,3.19714 1.43511,1.4351 3.98644,0.97394 5.24589,-0.94821 z m 32.19578,1.07187 c 4.60174,-1.27816 4.44621,-5.12031 -0.25856,-6.38717 -4.23417,-1.14014 -26.84629,-0.61595 -28.37881,0.65787 -1.57009,1.30507 -1.47635,1.967 0.56809,4.01143 1.30529,1.3053 2.48868,1.73497 4.77297,1.73298 3.18173,-0.003 7.57909,-2.11426 7.70402,-3.69927 0.0388,-0.49185 0.29115,-0.10133 0.56087,0.86783 0.26972,0.96916 1.27215,2.15772 2.22762,2.64123 2.10256,1.06399 9.25156,1.16176 12.8038,0.1751 z m 31.56463,-1.33743 c 3.44338,-0.66579 3.35065,-0.60472 3.96636,-2.61212 0.29274,-0.95441 -0.0121,-2.07276 -0.84572,-3.10218 -1.24952,-1.54309 -1.74074,-1.61055 -11.86561,-1.62947 -11.91281,-0.0223 -13.7337,0.4726 -13.7337,3.73236 0,2.33202 0.68056,2.91394 4.21862,3.60721 3.55113,0.69583 14.66983,0.69838 18.26005,0.004 z m 11.46245,-0.76613 c 2.24962,-2.24961 1.49566,-5.5282 -1.50981,-6.56536 -3.46526,-1.19585 -5.67552,4.70747 -2.57549,6.87882 2.02243,1.41657 2.38294,1.3889 4.0853,-0.31346 z m -39.7639,-26.67614 -0.18763,-20.31218 -8.83883,0.21664 c -13.66891,0.33501 -22.46412,1.2472 -24.42715,2.53342 -1.56562,1.02584 -1.7358,1.61607 -1.7358,6.02028 0,3.35233 0.32568,5.20863 1.03899,5.92194 0.78268,0.78268 1.08795,3.28091 1.23744,10.12678 l 0.19844,9.08778 h 2.12132 c 1.71747,0 2.35669,-0.47116 3.35766,-2.47487 0.67998,-1.36118 1.23683,-3.49024 1.23744,-4.73124 0.002,-4.11403 1.24441,-3.1043 1.72718,1.40371 0.69148,6.45691 1.52199,7.03546 2.05142,1.42908 0.73006,-7.73091 0.57003,-15.07211 -0.32855,-15.07211 -0.5547,0 -0.53331,-0.31375 0.0711,-1.04195 1.05589,-1.27227 5.01426,-2.09066 7.02512,-1.45244 2.12434,0.67424 1.8585,2.03667 -0.29208,1.49691 -2.65142,-0.66546 -2.30802,1.62351 0.39673,2.64443 l 2.16451,0.81701 -0.21996,7.63257 c -0.25028,8.68468 -0.12615,8.90639 5.08334,9.07932 2.6917,0.0894 2.41932,0.19531 -1.76776,0.68762 -2.72236,0.3201 -10.09661,1.07174 -16.38722,1.67032 -11.57715,1.1016 -15.85461,2.0312 -14.66385,3.18681 1.07979,1.04792 4.16299,1.22623 23.10696,1.3364 l 18.21884,0.10595 z m 35.87482,18.22218 c 1.32871,-0.54154 1.30734,-0.60264 -0.35356,-1.01074 -2.96074,-0.7275 -16.97104,-1.84779 -23.11601,-1.84842 -5.67632,-5.8e-4 -8.30309,0.95483 -4.94348,1.79804 5.27659,1.32434 25.87934,2.09377 28.41305,1.06112 z m -5.87393,-4.09719 c 0.58453,-0.68059 1.29307,-1.87383 1.57454,-2.65165 0.91739,-2.53509 2.53162,-17.48179 2.53162,-23.4411 v -5.81717 l -3.35876,-0.53422 c -1.84731,-0.29381 -5.10517,-0.55196 -7.23967,-0.57366 -3.82203,-0.0388 -3.89319,-0.002 -4.68899,2.43543 -0.98589,3.01948 -1.91746,2.96143 -2.39025,-0.14895 -0.32531,-2.14012 -0.60774,-2.3641 -3.53553,-2.80384 -1.75009,-0.26285 -5.01162,-0.5015 -7.24785,-0.53033 l -4.06586,-0.0524 0.0104,14.67247 c 0.0119,16.79018 0.31447,18.08352 4.309,18.42052 3.61762,0.30521 4.31305,-0.96769 4.93825,-9.03884 0.29775,-3.84386 0.92192,-7.7261 1.38706,-8.6272 1.64737,-3.19143 3.67796,-4.82035 6.00896,-4.82035 2.34166,0 4.30174,1.52933 3.53992,2.76197 -0.23882,0.38644 0.22611,1.05602 1.0332,1.48796 1.37084,0.73365 1.43558,1.17804 0.98343,6.75045 -0.52388,6.45663 0.71347,11.60877 3.12614,13.01669 1.62407,0.94773 1.87078,0.90728 3.08437,-0.50577 z m -72.6395,-32.58913 c 3.89589,-0.93677 5.13973,-1.56652 5.95183,-3.01339 0.56467,-1.00602 0.82436,-2.35633 0.5771,-3.00069 -1.08187,-2.81931 -10.88474,-0.28487 -13.94474,3.60529 -3.07891,3.91421 -1.27793,4.4992 7.41581,2.40879 z m 91.5949,-0.40526 c 0,-1.27078 -3.90876,-4.58529 -6.87158,-5.82686 -2.65437,-1.11232 -6.29477,-1.25319 -6.90417,-0.26717 -0.7581,1.22664 1.62266,4.72931 4.01633,5.90899 2.99534,1.47618 9.75942,1.60444 9.75942,0.18504 z m -68.2358,-2.63385 c 11.00257,-0.87003 38.99461,-0.37303 46.20604,0.82039 5.12537,0.84821 7.18052,0.44731 7.18052,-1.40068 0,-2.42635 -2.33076,-4.16879 -6.71751,-5.0219 -2.33346,-0.45381 -13.92905,-0.9884 -25.76799,-1.18798 -25.53534,-0.43048 -30.1439,0.0778 -33.79327,3.72718 -1.27082,1.27082 -2.31059,2.86134 -2.31059,3.53448 0,1.02399 0.43311,1.14936 2.65165,0.7676 1.45841,-0.25096 7.10643,-0.80854 12.55115,-1.23909 z m -15.9099,-6.53755 c 4.08354,-0.57324 10.9248,-1.40502 15.20279,-1.84837 9.2508,-0.95873 12.1276,-1.75644 13.13716,-3.64281 0.5747,-1.07385 0.47461,-1.82825 -0.42465,-3.2007 -1.12422,-1.71577 -1.38608,-1.77498 -5.88389,-1.33021 -8.27001,0.81778 -18.02924,2.62863 -21.84361,4.05314 -4.93549,1.8432 -13.17582,8.67477 -8.93352,7.40625 0.7266,-0.21726 4.66217,-0.86404 8.74572,-1.4373 z m 76.95678,1.0474 c -0.61879,-1.67108 -7.69548,-6.59036 -10.8423,-7.5369 -4.4657,-1.34325 -19.84275,-2.57511 -28.63782,-2.29418 l -6.71752,0.21456 -0.22371,1.9442 c -0.35124,3.05253 0.97037,3.35053 22.85113,5.15259 7.38926,0.60856 15.34421,1.52629 17.67767,2.03938 5.43478,1.19506 6.17969,1.25578 5.89255,0.48035 z m -42.01286,-12.00686 c 21.28201,-0.45595 23.49497,-0.83668 18.84366,-3.24197 -5.63282,-2.91284 -24.00325,-3.99643 -36.46347,-2.15082 -13.08445,1.93808 -17.32411,3.35283 -17.32411,5.78094 0,1.01923 0.80833,1.08599 7.24784,0.59856 3.98632,-0.30174 16.44955,-0.74576 27.69608,-0.98671 z m -16.35712,-7.12414 c 2.22181,-0.46125 4.55575,-1.35471 5.18651,-1.98548 1.05772,-1.05772 1.01654,-1.25248 -0.52986,-2.5062 -3.44929,-2.79647 -15.31218,-0.32269 -17.08224,3.56217 -0.5857,1.28545 -0.56391,1.83844 0.0883,2.24154 0.92272,0.57028 5.73586,0.0584 12.33727,-1.31203 z m 43.28988,0.66782 c 0.24301,-0.39321 -0.46687,-1.62365 -1.57753,-2.73431 -2.17636,-2.17636 -6.33891,-3.03528 -20.34762,-4.19862 l -6.36396,-0.52849 10.14806,-0.52156 c 5.58144,-0.28686 10.81399,-0.87795 11.6279,-1.31354 1.4548,-0.77859 1.44482,-0.8199 -0.59045,-2.44277 -2.88064,-2.29694 -6.50286,-2.75356 -21.53907,-2.71523 -13.58916,0.0346 -19.87164,1.0337 -21.90466,3.48333 -1.27984,1.54212 0.99996,2.2082 9.88385,2.88773 4.08354,0.31235 6.90043,0.68672 6.25975,0.83194 -1.59184,0.3608 -2.11792,2.81488 -0.87077,4.06203 1.27045,1.27044 3.38179,1.59452 14.05646,2.15759 4.6669,0.24618 9.91717,0.70009 11.66726,1.0087 4.68937,0.82694 9.0475,0.83752 9.55078,0.0232 z m -10.75351,-17.28986 c 2.28249,-1.00103 0.93852,-2.81043 -3.40314,-4.58169 -5.70274,-2.32653 -13.78764,-2.38241 -19.54697,-0.1351 -5.69903,2.22378 -6.01803,3.83943 -1.01118,5.12146 2.69762,0.69074 22.21519,0.36111 23.96129,-0.40467 z m -20.8975,-7.4531 c 11.38803,-1.47923 13.06593,-6.38427 2.17095,-6.34638 -4.83021,0.0168 -9.20298,1.57878 -11.42947,4.08269 -2.62795,2.9554 -0.35156,3.51197 9.25852,2.26369 z m 12.11234,-8.21807 c 3.13606,-0.62721 3.08546,-3.25961 -0.0884,-4.59879 -3.04244,-1.28374 -10.82118,-1.11577 -14.15208,0.30559 -2.93575,1.25274 -4.10544,3.11506 -2.56797,4.08857 1.13108,0.7162 13.49783,0.86675 16.80843,0.20463 z" + id="path334" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 514.09258,457.88264 c -0.56909,-0.35994 -1.37262,-1.85882 -1.78563,-3.33084 -0.73928,-2.6349 -1.55261,-3.30354 -6.23593,-5.12654 -3.39312,-1.32078 -7.22385,-12.52118 -5.80809,-16.98185 1.10702,-3.48791 15.90002,-4.78657 21.46706,-1.88457 3.99216,2.08103 7.27674,11.80387 5.81787,17.22172 -1.97308,7.32747 -9.22904,12.77516 -13.45528,10.10208 z" + id="path335" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 495.12256,418.97177 c -2.70802,-0.6416 -4.82726,-2.38695 -6.25819,-5.15407 -0.93075,-1.79988 -6.61755,-17.19342 -6.61755,-17.91299 0,-0.1711 5.60996,-0.22421 12.46657,-0.11801 l 12.46657,0.1931 2.98896,9.97997 c 1.64392,5.48899 3.19948,10.81881 3.4568,11.84404 l 0.46785,1.86406 -8.32197,-0.0724 c -4.57709,-0.0398 -9.36916,-0.32048 -10.64904,-0.62372 z" + id="path336" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 478.50115,439.33291 c -0.73921,-1.29071 -1.9108,-2.05587 -3.64644,-2.38148 -4.75123,-0.89133 -5.62512,-5.70905 -3.54622,-19.55014 1.69766,-11.30287 1.18315,-10.46134 6.39606,-10.46134 h 4.49681 l 1.7931,5.87863 c 2.3307,7.64118 4.42314,17.31147 5.02602,23.22792 l 0.48008,4.71137 -4.95513,0.23838 c -4.7475,0.22839 -5.00078,0.15869 -6.04428,-1.66334 z" + id="path337" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 449.79685,435.30116 c -2.71985,-2.71985 -2.70861,-15.12294 0.0162,-17.84772 1.95399,-1.95399 12.03227,-1.92365 13.99806,0.0421 2.86338,2.86338 2.84736,15.53349 -0.0226,17.90542 -2.23148,1.84422 -12.11808,1.77367 -13.99159,-0.0998 z" + id="path338" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 450.47991,401.10632 c 0.72264,-3.2085 2.19356,-10.04976 3.26872,-15.2028 l 1.95484,-9.36916 h 2.55466 2.55467 l 2.58647,13.25825 c 1.42256,7.29204 2.58594,14.1333 2.58528,15.2028 l -0.001,1.94454 h -8.40867 -8.40866 z" + id="path339" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 408.00061,386.43385 v -16.97056 h 10.96016 10.96015 v 16.97056 16.97057 h -10.96015 -10.96016 z" + id="path340" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 411.36785,325.44589 c 0.89049,-7.48649 1.78944,-14.96414 1.99767,-16.617 l 0.3786,-3.00521 h 4.82404 4.82405 l 0.48566,4.77297 c 0.6339,6.22978 3.18446,24.82719 3.68513,26.87006 0.38911,1.58771 0.37115,1.59099 -8.71215,1.59099 h -9.10206 z" + id="path341" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 408.00061,362.03867 v -7.42462 h 10.96016 10.96015 v 7.42462 7.42462 h -10.96015 -10.96016 z" + id="path342" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 410.13073,348.3994 c -1.4085,-1.14053 -1.51247,-1.66196 -1.05752,-5.3033 l 0.50457,-4.0384 h 9.04875 9.04876 l 0.46243,3.0052 c 0.25433,1.65287 0.63591,4.03935 0.84795,5.3033 l 0.38553,2.2981 h -8.83919 c -7.43783,0 -9.08685,-0.20054 -10.40128,-1.2649 z" + id="path343" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 410.92262,475.28852 c -1.72498,-2.07848 -2.25184,-10.0128 -2.69556,-40.59463 l -0.454,-31.28947 h 11.07393 11.07393 v 29.60763 29.60763 l -5.69952,0.32994 c -6.93226,0.4013 -8.35205,1.47835 -9.22454,6.99765 -0.68877,4.35713 -2.70131,6.99553 -4.07424,5.34125 z" + id="path344" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 413.65747,305.2505 c 0,-2.2527 4.31027,-42.86367 4.57775,-43.13115 0.67012,-0.67011 1.02884,1.8728 2.47451,17.54138 0.80736,8.75045 1.71746,18.21684 2.02243,21.03643 l 0.5545,5.12652 h -4.8146 c -2.64803,0 -4.81459,-0.25793 -4.81459,-0.57318 z" + id="path345" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 572.32775,325.79945 c 4.73984,-15.69661 7.53205,-34.83523 9.04012,-61.9637 0.47408,-8.52804 0.94665,-15.21788 1.05016,-14.8663 0.10352,0.35158 1.15361,8.1169 2.33354,17.25625 1.17994,9.13936 3.48219,26.12066 5.11613,37.73623 2.89411,20.57408 2.93627,21.14446 1.63348,22.09709 -0.97448,0.71255 -3.80767,0.97787 -10.44221,0.97787 -8.34226,0 -9.07359,-0.10365 -8.73122,-1.23744 z" + id="path346" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 572.04938,395.9798 v -62.57895 h 10.60661 10.6066 v 62.57895 62.57895 h -10.6066 -10.60661 z" + id="path347" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 512.01526,399.33855 c -2.62612,-9.72672 -5.51766,-16.16487 -8.28427,-18.44535 -2.55395,-2.10518 -3.81286,-5.19007 -3.79684,-9.30392 0.016,-4.11103 0.69301,-5.66152 2.47203,-5.66152 1.9054,0 2.47189,-1.19521 2.45723,-5.18436 -0.0127,-3.45453 -0.84294,-5.0815 -2.30651,-4.51988 -2.92073,1.12079 -3.61941,-4.62579 -0.941,-7.73963 1.52168,-1.76906 2.23122,-1.99363 7.07107,-2.23803 l 5.37966,-0.27167 v 29.77578 c 0,16.37667 -0.0857,29.77577 -0.19045,29.77577 -0.10474,0 -0.94215,-2.78424 -1.86092,-6.18719 z" + id="path348" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 502.02108,339.88697 -1.59562,-1.29205 1.14137,-7.72356 c 0.62776,-4.24796 1.81761,-13.92842 2.64412,-21.51214 0.82651,-7.58372 1.60301,-13.89212 1.72556,-14.01865 0.4405,-0.45483 1.05053,2.61801 3.97624,20.02905 3.98096,23.69089 3.94689,23.25759 1.93965,24.66352 -2.26222,1.58452 -7.79561,1.50225 -9.83132,-0.14617 z" + id="path349" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 481.90963,394.74236 c -0.52705,-1.59097 -1.77615,-6.52918 -1.78018,-7.03783 -0.009,-1.09135 5.69232,-1.9701 12.80539,-1.97384 6.6152,-0.003 7.7356,0.17663 9.44027,1.51752 1.53098,1.20427 4.62045,6.60904 4.62045,8.0831 0,0.16221 -5.57845,0.29493 -12.39656,0.29493 -9.28968,0 -12.46995,-0.22152 -12.68937,-0.88388 z" + id="path350" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 422.50644,474.29187 c -0.63297,-2.23622 -1.31339,-4.62271 -1.51204,-5.3033 -0.33666,-1.15347 0.75803,-1.23744 16.13189,-1.23744 h 16.49305 l 1.48586,5.3033 1.48586,5.30331 h -16.46688 -16.46687 z" + id="path351" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 422.67586,504.15975 c -1.84579,-0.85534 -6.45966,-2.27105 -10.25305,-3.14602 -13.06378,-3.01324 -14.35498,-3.59377 -17.23654,-7.7496 -1.4187,-2.04608 -3.7886,-4.95842 -5.26644,-6.47186 -1.47784,-1.51345 -2.49625,-2.94245 -2.26313,-3.17556 0.23311,-0.23312 6.0991,-0.73522 13.03553,-1.11579 14.49073,-0.79504 17.21597,-0.32737 19.71238,3.38279 1.5307,2.27493 6.34988,17.97168 5.88493,19.16808 -0.14174,0.36472 -1.7679,-0.0367 -3.61368,-0.89204 z" + id="path352" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 408.47549,576.97283 c -0.68527,-7.25834 -0.57503,-31.43995 0.14333,-31.43995 0.34001,0 2.01055,0.5002 3.71231,1.11156 4.6477,1.66968 14.72777,3.80556 18.04179,3.82288 1.8074,0.009 3.56534,0.5317 4.59619,1.36543 1.57292,1.27216 1.68261,1.87637 1.89943,10.46241 0.20713,8.20229 0.0915,9.28344 -1.15775,10.82621 -1.32889,1.64112 -1.71356,1.70802 -9.05483,1.57496 -10.77044,-0.19523 -14.16863,0.97846 -16.94806,5.8536 -0.62837,1.10217 -0.85188,0.45341 -1.23241,-3.5771 z" + id="path353" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 705.68893,606.87439 c -0.004,-32.36705 -0.87475,-53.89624 -2.49464,-61.67515 -1.4864,-7.13792 -1.56849,-7.09098 12.39944,-7.09098 14.07117,0 13.59308,-0.32701 14.2442,9.74295 0.25704,3.97518 0.69109,7.78446 0.96456,8.46505 1.42748,3.55258 3.86941,-0.90057 3.87751,-7.07107 0.002,-1.65286 0.29504,-3.0052 0.65083,-3.0052 0.35578,0 1.85781,-1.64963 3.33785,-3.66583 2.57296,-3.50508 2.71204,-3.59035 3.17172,-1.94455 0.26441,0.94671 0.53043,5.22147 0.59114,9.49946 0.12536,8.83205 1.03283,12.31048 3.53634,13.55509 0.9559,0.47522 2.05746,1.59721 2.4479,2.49331 0.42727,0.98061 0.81107,14.31758 0.964,33.49895 l 0.25411,31.86968 -6.23754,1.8715 c -8.30996,2.49329 -15.23288,3.33205 -27.5019,3.33205 h -10.20189 z" + id="path354" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 771.80705,636.43874 c -8.34008,-1.6907 -12.94402,-2.90395 -14.2483,-3.75477 -1.13595,-0.741 -2.64991,-22.45525 -4.12896,-59.22037 -0.21904,-5.44472 -0.5776,-12.31462 -0.7968,-15.26644 l -0.39854,-5.36694 2.00812,0.22744 c 1.10447,0.1251 7.2584,0.72599 13.67539,1.3353 6.417,0.60932 12.22411,1.27299 12.9047,1.47484 1.16005,0.34403 1.23744,2.92888 1.23744,41.33152 0,38.5707 -0.0723,40.96021 -1.23744,40.89039 -0.68059,-0.0408 -4.73762,-0.78373 -9.01561,-1.65097 z" + id="path356" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 770.03928,546.85364 c -9.44988,-0.5902 -14.14213,-1.13748 -14.14213,-1.64946 0,-0.14554 1.94714,-5.46094 4.32698,-11.812 5.05867,-13.50002 8.71224,-21.09332 10.14921,-21.09332 0.60786,0 1.34623,1.22022 1.8185,3.0052 3.58368,13.54486 9.06316,27.36643 11.08391,27.95832 0.64512,0.18895 0.7552,-0.89236 0.43735,-4.29615 -0.30379,-3.25315 -0.17437,-4.70341 0.45439,-5.092 1.49325,-0.92289 2.2074,1.19469 1.95675,5.80217 -0.26506,4.87254 -2.32206,8.06702 -5.07129,7.87562 -0.80725,-0.0562 -5.7634,-0.37047 -11.01367,-0.69838 z" + id="path358" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 746.45298,542.88123 c -0.54737,-1.0695 -1.23005,-3.37644 -1.51708,-5.12653 -0.84875,-5.17498 -2.43412,-8.44838 -4.32111,-8.92198 -0.92873,-0.2331 -3.7612,-0.0118 -6.29436,0.49166 -2.94027,0.58444 -4.85104,0.67019 -5.28409,0.23714 -0.763,-0.763 3.09201,-12.70672 5.34094,-16.54746 2.90072,-4.95388 4.04115,-5.31139 16.94296,-5.31139 8.58791,0 11.8156,0.23854 12.49703,0.9236 1.63429,1.64299 -8.20283,28.1322 -12.57693,33.86695 -2.16792,2.84229 -3.47698,2.94839 -4.78736,0.38801 z" + id="path359" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 628.36887,494.73666 c -0.69308,-0.76585 -3.66334,-6.91225 -6.60057,-13.65866 -2.93723,-6.74641 -6.49559,-14.00875 -7.90746,-16.13852 -2.67636,-4.03724 -6.42287,-7.08784 -8.70472,-7.08784 -0.73279,0 -2.43583,-0.46106 -3.78452,-1.02458 -2.1004,-0.8776 -2.45216,-1.36153 -2.45216,-3.3735 0,-3.76011 3.95406,-18.91848 5.4675,-20.96036 2.11368,-2.85168 5.20997,-3.55217 15.7457,-3.56223 9.87762,-0.009 15.10631,0.61062 16.44596,1.95027 0.56308,0.56308 0.44643,4.12547 -0.42533,12.98925 -0.66065,6.71736 -1.66812,18.57734 -2.23882,26.35552 -1.15825,15.78605 -2.15781,22.99343 -3.43017,24.73349 -0.78657,1.0757 -0.95644,1.0578 -2.11541,-0.22284 z" + id="path360" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 645.72637,463.86205 c -1.51745,-12.79073 -4.31656,-31.6322 -5.12794,-34.51737 -1.02201,-3.63413 -2.96327,-5.43417 -5.8605,-5.43417 -1.50765,0 -2.85371,-0.54019 -3.71231,-1.4898 -1.2588,-1.39221 -1.3468,-2.81651 -1.34351,-21.74353 0.003,-17.58362 0.16283,-20.60666 1.21198,-22.93083 2.2503,-4.98504 9.94384,-6.44451 14.15291,-2.68481 l 2.30926,2.06271 0.19112,29.58031 c 0.10512,16.26918 -0.054,37.53527 -0.35355,47.25799 l -0.54468,17.67767 z" + id="path361" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 630.32084,367.51875 c 0.96968,-4.70141 5.51682,-31.9521 7.05138,-42.25842 0.92579,-6.21771 1.84785,-10.82762 2.04904,-10.24426 0.20119,0.58336 1.05447,6.94732 1.89617,14.14214 0.84171,7.19481 2.30613,17.28785 3.25427,22.42899 2.16253,11.72596 2.17685,13.30407 0.13279,14.64338 -1.1949,0.78293 -12.15861,3.23271 -14.4676,3.23271 -0.17442,0 -0.13664,-0.87504 0.0839,-1.94454 z" + id="path362" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 597.79315,415.42523 c 0.16258,-11.86171 0.57393,-22.48016 0.91412,-23.59655 l 0.61852,-2.02979 1.82165,2.75271 c 2.65292,4.00883 4.42384,7.69415 6.57429,13.68124 4.14703,11.54577 3.86473,16.36125 -1.03651,17.68101 -3.02337,0.81411 -4.7637,2.64048 -6.47441,6.79448 -0.62245,1.51147 -1.48757,3.54362 -1.92249,4.51589 -0.59675,1.33403 -0.71824,-3.52384 -0.49517,-19.79899 z" + id="path363" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 560.32918,456.6142 c -0.95179,-1.0695 -2.65711,-2.97869 -3.7896,-4.24264 -1.43233,-1.59859 -2.68797,-2.2981 -4.1252,-2.2981 -3.35062,0 -4.70204,-2.17581 -4.97975,-8.01749 -0.16548,-3.48104 0.0582,-5.46294 0.71546,-6.34028 1.17195,-1.5643 5.26773,-2.57348 10.53553,-2.59592 5.15813,-0.022 8.34509,1.12399 9.17162,3.29792 0.90092,2.36961 0.83004,16.6431 -0.0947,19.07543 -1.39153,3.66 -4.72628,4.16294 -7.43333,1.12108 z" + id="path364" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 539.71176,449.58238 c -1.14126,-0.42636 -2.08675,-4.25921 -2.66971,-10.82262 -0.55416,-6.239 -2.33884,-14.85755 -4.88498,-23.59041 -2.21414,-7.59417 -2.25937,-9.03313 -0.33854,-10.77146 1.30691,-1.18273 2.63736,-1.34703 10.90831,-1.34703 13.17292,0 13.58662,0.36165 18.33606,16.0292 1.37566,4.53806 2.5012,8.40861 2.5012,8.60121 0,0.1926 -3.65128,0.45712 -8.11396,0.58781 -10.78169,0.31575 -10.85453,0.38555 -11.65222,11.16498 -0.46873,6.33402 -0.8603,8.23263 -1.90249,9.22469 -0.72177,0.68704 -1.70442,1.10267 -2.18367,0.92363 z" + id="path365" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 515.66418,492.33492 c 0.81826,-2.13235 8.26594,-25.33185 10.05654,-31.32609 l 1.90845,-6.38875 10.36607,0.95408 c 6.80963,0.62675 11.39711,1.41006 13.37127,2.28313 2.91844,1.29067 4.01554,2.82278 2.02132,2.82278 -1.12926,0 -2.18876,2.44573 -6.53743,15.09094 -6.0104,17.47722 -5.46929,17.01407 -20.22275,17.30915 -9.39273,0.18787 -11.27251,0.0601 -10.96347,-0.74524 z" + id="path366" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 572.80783,503.57981 c -3.01649,-7.0372 -10.65794,-33.70617 -10.65794,-37.19665 0,-1.44072 1.03791,-1.80567 7.25517,-2.55109 5.05466,-0.60603 14.13087,0.19051 15.76211,1.3833 1.14629,0.83819 1.14891,1.19976 0.0447,6.16311 -2.10298,9.45248 -7.2782,18.29296 -10.70871,18.29296 -2.4715,0 -2.6738,1.02715 -0.75822,3.84991 1.96624,2.89742 2.88021,7.16595 2.19872,10.26876 -0.72338,3.29353 -1.66083,3.23066 -3.1358,-0.2103 z" + id="path367" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 548.00775,506.20342 c -0.97227,-0.18386 -2.66895,-0.68712 -3.77039,-1.11836 -2.50566,-0.98101 -2.48379,-1.1213 2.74716,-17.61722 2.14384,-6.76065 4.6734,-15.43796 5.62123,-19.28291 0.94784,-3.84496 1.88403,-7.15153 2.08043,-7.34793 0.96538,-0.96537 5.31137,12.64106 9.20993,28.83444 2.24714,9.33391 2.27842,12.08045 0.16553,14.53683 -1.50059,1.74453 -2.10416,1.90452 -7.95496,2.1086 -3.48214,0.12146 -7.12665,0.0704 -8.09893,-0.11345 z" + id="path368" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 589.97132,531.82238 c -1.22683,-0.55755 -2.49962,-1.75779 -2.82843,-2.66722 -0.3288,-0.90943 -0.51513,-6.26738 -0.41406,-11.90655 0.10106,-5.63918 -0.0107,-11.15949 -0.24828,-12.26735 -0.45093,-2.10239 -1.27752,-2.21848 -5.738,-0.8059 l -1.55988,0.494 1.68736,-6.26152 c 3.31455,-12.29981 8.83489,-29.24249 9.52791,-29.24249 0.4756,0 8.13539,20.15738 9.53885,25.10229 1.47705,5.20418 1.52574,6.87358 0.25778,8.83883 -2.79192,4.32729 -2.153,14.27883 1.11096,17.30376 2.5755,2.3869 2.66933,7.84911 0.17509,10.19233 -2.16144,2.03056 -8.29491,2.68062 -11.5093,1.21982 z" + id="path369" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 611.40369,497.33271 c -4.05709,-0.58281 -5.67862,-1.89267 -7.99312,-6.45683 -2.90876,-5.73603 -8.10195,-20.49403 -8.24488,-23.43028 -0.13155,-2.70261 -0.0562,-2.7977 2.69309,-3.39862 4.2671,-0.93268 8.54316,-0.0478 11.24886,2.32786 3.94604,3.46467 12.75186,23.86347 12.30172,28.49713 -0.20095,2.06859 -0.43853,2.24957 -3.39804,2.58847 -1.75008,0.2004 -4.72352,0.14293 -6.60763,-0.12773 z" + id="path370" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 616.42932,540.20132 c -1.10427,-0.6094 -2.10935,-1.89562 -2.34021,-2.99482 -0.62184,-2.96073 -1.38539,-4.02717 -3.06171,-4.27623 -3.06412,-0.45525 -3.92105,-3.15991 -4.21772,-13.31208 -0.15125,-5.17608 -0.0667,-10.52117 0.18779,-11.87799 0.79229,-4.22327 1.70975,-4.63373 10.35726,-4.63373 h 7.72766 l -0.0104,17.14734 c -0.0118,19.43002 -0.24582,20.57838 -4.24848,20.84927 -1.35224,0.0915 -3.32961,-0.31427 -4.39417,-0.90176 z" + id="path371" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 468.29951,501.24628 c -0.72298,-1.26453 -7.973,-21.84197 -7.973,-22.62943 0,-0.14251 2.41773,-0.25911 5.37273,-0.25911 h 5.37273 l -0.52597,4.41941 c -0.28928,2.43068 -0.71927,7.9196 -0.95553,12.19759 -0.36432,6.59686 -0.56039,7.54936 -1.29096,6.27154 z" + id="path372" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 56.568542,601.5055 v -36.88074 l 11.136932,-0.004 c 13.043488,-0.005 31.248365,-1.49358 46.160746,-3.7752 l 10.59653,-1.62129 -0.18276,38.58593 -0.18275,38.58592 -10.96016,0.44049 c -6.02808,0.24226 -21.222038,0.69004 -33.764344,0.99506 l -22.804194,0.5546 z" + id="path373" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 127.98633,598.2099 v -41.18112 l 3.35875,-0.42329 c 6.38033,-0.8041 27.88376,-2.69301 28.04744,-2.46376 0.48963,0.68579 -3.38614,70.32533 -4.26875,76.70053 -0.40195,2.90336 -0.44754,2.94322 -4.75603,4.15834 -2.3926,0.67479 -8.40722,1.93868 -13.3658,2.80865 l -9.01561,1.58176 z" + id="path374" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 57.5597,557.98111 c -0.738159,-1.92361 0.236,-6.22434 3.992175,-17.62471 6.201786,-18.82305 6.428956,-19.01315 22.362191,-18.71342 10.28478,0.19347 10.804888,0.27365 12.575054,1.93853 2.054333,1.93215 3.73073,6.88622 6.28748,18.58072 1.58219,7.23688 1.60136,7.64193 0.41273,8.71763 -3.18514,2.8825 -23.399378,7.28217 -36.174421,7.87343 -8.013573,0.37089 -9.049022,0.28632 -9.455209,-0.77218 z" + id="path375" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 193.74726,533.01041 c -3.1373,-1.15356 -5.19334,-4.55073 -8.5977,-14.20589 -2.7151,-7.70033 -5.14034,-12.52981 -7.45403,-14.8435 -1.55703,-1.55703 -1.74368,-2.22546 -1.40653,-5.03721 0.84489,-7.0463 7.69927,-25.19715 12.20468,-32.31881 3.31082,-5.23339 5.83986,-5.49227 22.79037,-2.33282 8.94707,1.66767 14.78289,1.76436 16.43164,0.27226 1.11856,-1.01228 1.22289,-0.59559 1.54917,6.18718 0.22902,4.76094 0.84105,8.61568 1.77219,11.16165 0.78229,2.139 2.12278,5.77855 2.97886,8.08789 1.92499,5.19278 1.3384,7.04055 -2.58055,8.12881 -3.43717,0.95448 -15.32672,0.96667 -18.7381,0.0192 -3.6701,-1.01932 -6.89067,-5.09653 -10.46599,-13.24984 -4.36434,-9.95262 -8.19531,-17.42255 -9.48351,-18.49166 -2.79559,-2.32014 -0.323,6.41486 6.24449,22.06008 5.37882,12.81356 6.87254,19.1588 7.27928,30.92217 0.33705,9.74755 0.27855,10.34892 -1.18645,12.19759 -1.39443,1.75963 -1.95636,1.93923 -5.90907,1.88872 -2.40245,-0.0307 -4.84539,-0.23132 -5.42875,-0.44583 z" + id="path376" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 247.97166,532.60078 c -0.23927,-6.69361 -0.65526,-12.93557 -0.92441,-13.87104 -0.47454,-1.64925 -0.33254,-1.61708 4.681,1.06066 7.2185,3.85541 9.90126,6.49069 9.90126,9.72604 0,2.18018 -0.69209,3.28855 -4.71874,7.55701 -2.59531,2.75116 -5.57044,5.60858 -6.61141,6.34981 l -1.89267,1.3477 z" + id="path377" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 683.92559,600.86398 c 0.19229,-24.28807 0.53989,-36.48606 1.07556,-37.74343 0.94173,-2.21054 4.04457,-3.44987 8.59934,-3.43471 6.55172,0.0218 6.60197,0.20862 7.22375,26.85923 0.28582,12.25063 0.54353,28.55828 0.57268,36.23923 l 0.053,13.96535 h -8.90422 -8.90422 z" + id="path378" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 631.62313,514.33619 c -2.89362,-0.8355 -2.90575,-1.69995 -0.12964,-9.23392 6.17096,-16.7471 5.899,-15.42857 5.73505,-27.80519 -0.12894,-9.73451 1.33887,-31.75194 2.17234,-32.58542 0.41269,-0.41269 2.66622,19.9865 2.66238,24.10013 -0.002,1.94455 -0.54244,5.03975 -1.20138,6.87824 -0.65894,1.83848 -1.00392,3.53684 -0.76662,3.77414 0.80014,0.80014 5.82007,1.68802 9.73587,1.72199 4.43243,0.0385 9.02278,0.96176 10.09067,2.02965 0.92366,0.92367 -1.89855,9.04771 -6.65778,19.16512 -3.82918,8.14025 -5.47629,10.32215 -8.89026,11.77683 -2.55681,1.08945 -9.27013,1.18339 -12.75063,0.17843 z" + id="path379" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 672.83738,495.87275 c -2.87315,-8.41301 -6.26462,-15.49626 -8.32137,-17.37963 -1.21297,-1.1107 -3.19901,-1.83258 -6.21461,-2.25883 -2.43756,-0.34454 -4.7289,-0.92341 -5.09186,-1.28637 -1.41312,-1.41312 -1.93112,-6.66613 -1.94733,-19.74793 l -0.0169,-13.61181 8.30851,0.0595 c 4.56968,0.0327 13.12942,0.273 19.02164,0.53395 13.27457,0.58789 13.70585,0.8354 13.63432,7.82465 l -0.0477,4.66338 -0.91456,-3.4018 c -1.13529,-4.22288 -2.11483,-5.33531 -3.77555,-4.28776 -1.92523,1.21441 -3.64375,8.19224 -5.11556,20.77103 -0.75083,6.417 -1.83445,14.11586 -2.40805,17.10858 -1.16874,6.09795 -3.81514,15.48473 -4.60004,16.31634 -0.28262,0.29945 -1.41255,-2.08704 -2.51095,-5.3033 z" + id="path380" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 651.24534,423.91051 v -12.72792 l 10.78338,0.0192 c 12.54502,0.0223 22.68618,0.88007 25.4728,2.15459 2.18972,1.00151 2.13794,0.83135 3.53434,11.61483 0.59365,4.58431 0.75749,8.27359 0.39903,8.98468 -1.08917,2.16058 -5.51095,2.67461 -23.04221,2.67864 l -17.14734,0.004 z" + id="path381" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 711.51591,532.07201 c -2.37326,-0.95344 -2.99492,-3.45901 -2.99492,-12.07082 0,-11.88681 0.88388,-15.39983 10.88975,-43.28182 3.3415,-9.3113 3.91887,-12.13667 2.37499,-11.62205 -1.34826,0.44942 -3.12201,3.87423 -7.94008,15.33095 -7.00265,16.65134 -7.55768,17.13013 -19.85743,17.13013 -9.0843,0 -11.8602,-0.83275 -12.19117,-3.65728 -0.11408,-0.97365 0.95503,-4.94878 2.37582,-8.83361 2.22175,-6.07488 2.63566,-8.17658 2.95773,-15.01853 0.28646,-6.08547 0.55957,-7.70206 1.16203,-6.87814 1.41389,1.9336 5.50176,1.94767 15.6003,0.0537 12.12062,-2.27322 17.50518,-2.39526 19.4594,-0.44105 3.53665,3.53665 11.92382,25.06311 13.3339,34.22272 0.57077,3.7076 0.49133,4.2761 -0.74109,5.3033 -1.9798,1.65013 -4.99152,7.88505 -7.55775,15.64622 -2.89603,8.75859 -4.8164,12.08556 -7.85624,13.6107 -2.65033,1.32972 -6.43548,1.54199 -9.01524,0.50559 z" + id="path382" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 654.47488,635.86577 c -0.58156,-1.96489 -2.68257,-51.77883 -3.03457,-71.94811 -0.40976,-23.47937 0.32476,-36.65185 2.70092,-48.43682 2.28945,-11.35494 8.44957,-28.24792 10.11581,-27.74078 1.10795,0.33721 4.21676,7.06354 7.12101,15.40724 2.68095,7.70217 3.20191,11.97999 1.45893,11.97999 -2.66992,0 -2.85331,2.1815 -2.85331,33.94112 0,16.91753 0.25332,43.56662 0.56292,59.2202 l 0.56292,28.46104 H 662.923 c -5.93828,0 -8.25835,-0.24273 -8.44812,-0.88388 z" + id="path383" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 622.1177,637.89742 c -7.26976,-0.84598 -13.44016,-1.76057 -13.71201,-2.03241 -0.63155,-0.63156 1.09404,-74.18255 1.82899,-77.95776 0.43929,-2.25652 0.56629,-1.50589 0.6281,3.71231 l 0.0775,6.54074 h 18.73833 18.73833 l -0.023,14.67246 c -0.0337,21.47399 -1.18968,52.58775 -2.03655,54.81517 -0.7103,1.86824 -0.89883,1.92787 -5.87786,1.85889 -2.82922,-0.0392 -11.09201,-0.76342 -18.36177,-1.6094 z" + id="path384" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 589.28686,598.03556 c 0.24968,-21.29276 0.64851,-43.56662 0.88629,-49.49748 l 0.43234,-10.78338 h 8.11549 8.11549 l -0.40734,4.06587 c -1.03811,10.36174 -2.03475,32.147 -2.79323,61.05641 -0.64911,24.74019 -1.03647,31.78658 -1.79784,32.70369 -0.76346,0.91964 -2.254,1.16898 -6.98781,1.16898 h -6.01734 z" + id="path385" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 570.63517,636.02291 c -6.8059,-0.68626 -12.4063,-1.28078 -12.44532,-1.32116 -0.039,-0.0404 -0.29819,-9.86554 -0.57592,-21.83368 -0.55705,-24.00524 -0.25289,-29.15142 1.72298,-29.15142 1.5678,0 2.09005,-1.35856 2.57896,-6.7088 0.45857,-5.01824 -0.75583,-12.41718 -2.21599,-13.50137 -1.6872,-1.25277 -2.49974,-4.3355 -2.49974,-9.48384 0,-6.00241 0.85584,-7.07555 5.64287,-7.07555 1.8813,0 7.82478,1.11159 13.20775,2.4702 5.38296,1.3586 9.86676,2.4723 9.96398,2.47487 0.0972,0.003 0.17678,19.25566 0.17678,42.78464 v 42.77996 l -1.59099,-0.0931 c -0.87505,-0.0512 -7.15946,-0.65454 -13.96536,-1.3408 z" + id="path386" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 537.59647,583.89342 c 0.30238,-50.54375 0.5542,-55.14711 3.43839,-62.8558 1.73753,-4.64396 5.22219,-7.69065 9.95781,-8.70626 1.89676,-0.40678 8.92191,-0.73875 15.61144,-0.7377 l 12.16279,0.002 4.88551,16.97397 c 2.68703,9.33568 4.71714,17.14234 4.51135,17.34813 -0.20579,0.20579 -1.96255,-0.25192 -3.90391,-1.01713 -4.43761,-1.74915 -10.55731,-2.86826 -19.45238,-3.55727 -8.996,-0.69684 -10.1716,-1.69353 -13.33105,-11.30221 -3.09881,-9.42427 -4.94405,-13.60001 -5.86509,-13.27257 -1.10634,0.39332 -0.68074,6.02008 0.98625,13.039 1.9961,8.40462 3.30566,19.35774 4.54323,37.99926 0.98415,14.8242 2.5238,52.04778 2.5238,61.0169 v 3.68337 h -8.17949 -8.17949 z" + id="path387" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 537.80057,601.92465 c 0.58636,-56.95687 0.9344,-69.90879 2.01209,-74.87836 1.39114,-6.41503 3.44996,-10.15219 6.82239,-12.38396 2.56385,-1.69667 3.75626,-1.9353 12.18362,-2.43818 5.1379,-0.30659 11.61757,-0.5743 14.39928,-0.59491 l 5.05765,-0.0375 1.47913,4.86974 c 3.08171,10.14584 7.97621,28.47478 7.6823,28.76868 -0.1685,0.16851 -2.13408,-0.32246 -4.36796,-1.09102 -2.23388,-0.76857 -6.82041,-1.74749 -10.19229,-2.17539 -15.36134,-1.94937 -15.21582,-1.91467 -17.18098,-4.09624 -1.02184,-1.13437 -2.73853,-4.72624 -3.81487,-7.98194 -2.89491,-8.75645 -5.12504,-13.51868 -6.16007,-13.15421 -1.23347,0.43434 -0.90031,6.23194 0.8627,15.01293 3.165,15.76377 4.82834,39.00627 6.61643,92.45421 l 0.27795,8.3085 h -7.99611 -7.99611 z" + id="path388" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 499.92449,551.54329 v -5.3033 h 16.97057 16.97056 v 5.3033 5.3033 h -16.97056 -16.97057 z" + id="path389" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 532.64056,524.5226 c -0.78194,-1.8617 -2.09321,-5.64268 -2.91392,-8.40217 -1.54549,-5.19641 -4.03313,-8.54777 -6.75515,-9.10059 -0.81413,-0.16534 -2.95504,-0.4911 -4.75756,-0.7239 -3.48414,-0.44998 -6.00847,-2.41901 -5.33874,-4.16431 0.97506,-2.54097 13.86303,-3.12971 21.23817,-0.9702 4.29357,1.2572 4.98481,2.95152 4.48619,10.99625 -0.43515,7.02073 -2.38143,15.03121 -3.76406,15.49209 -0.42527,0.14176 -1.41299,-1.26547 -2.19493,-3.12717 z" + id="path390" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 503.32268,635.25249 -2.33753,-2.39192 6.89429,-0.20239 c 3.79186,-0.11131 9.99673,-0.11131 13.78859,0 l 6.89429,0.20239 -7.9792,1.98073 c -4.38855,1.0894 -9.54153,2.16576 -11.45105,2.39192 -3.25312,0.38528 -3.61914,0.26049 -5.80939,-1.98073 z" + id="path391" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 449.81749,636.11781 c -1.77277,-1.12317 -2.01729,-6.20052 -1.67898,-34.86295 0.38355,-32.49515 -0.37648,-48.24671 -2.56688,-53.19847 -1.46414,-3.30995 -6.31678,-7.47326 -8.71061,-7.47326 -0.73315,0 -2.09963,0.50232 -3.03662,1.11625 -2.25354,1.47658 -11.31314,1.42746 -18.01872,-0.0977 -5.64779,-1.28456 -8.38263,-3.19519 -10.92694,-7.63382 -2.12167,-3.70134 -11.02026,-27.38424 -11.02026,-29.32957 0,-1.44604 0.013,-1.44656 3.00946,-0.12108 3.53209,1.56241 10.63432,2.81901 15.97555,2.82655 7.94879,0.0112 9.94607,2.40184 15.26031,18.26554 1.60558,4.79284 3.069,8.72885 3.25206,8.7467 0.18305,0.0179 7.83981,-0.20212 17.01501,-0.48882 9.17519,-0.2867 17.40029,-0.29335 18.278,-0.0148 1.935,0.61415 1.76244,2.21218 -0.9235,8.55223 -2.7583,6.51086 -3.21706,13.33762 -3.73844,55.63092 l -0.47725,38.71409 -5.36455,-0.0108 c -2.95051,-0.006 -5.79795,-0.28541 -6.32764,-0.62102 z" + id="path392" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 376.3171,593.08581 0.21726,-47.90648 2.59006,-3.69184 c 1.42453,-2.03051 2.97804,-4.86746 3.45225,-6.30432 l 0.86219,-2.61248 0.87363,2.06168 c 0.75132,1.77305 0.86589,0.77479 0.81837,-7.13071 -0.0578,-9.61555 0.70655,-13.87293 2.99895,-16.70392 1.13842,-1.4059 1.48491,-1.50139 2.47278,-0.68154 2.35909,1.95787 3.47703,8.26318 3.06205,17.27023 -0.21295,4.62204 -0.13259,8.12979 0.17859,7.795 0.31118,-0.33479 1.09047,-2.44961 1.73176,-4.6996 0.64128,-2.24999 1.442,-3.92029 1.77936,-3.71179 0.33737,0.2085 1.62251,3.1631 2.85587,6.56576 3.93904,10.86721 4.45663,17.42171 4.53685,57.45191 0.10312,51.45561 0.55959,50.20458 -18.31859,50.20458 h -10.32864 z" + id="path393" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 426.65347,601.08561 c -2.6736,-1.16362 -5.23741,-4.44404 -7.34013,-9.39175 -0.86253,-2.02953 -2.01727,-4.06271 -2.56608,-4.51819 -0.84575,-0.70191 -0.96867,-0.0643 -0.80639,4.18248 0.20827,5.45031 -0.49564,6.93892 -2.91769,6.17019 -2.15108,-0.68272 -2.56459,-3.44474 -1.09316,-7.30163 2.91233,-7.6337 6.91627,-9.19254 20.30605,-7.90565 4.97898,0.47853 9.24262,0.68012 9.47477,0.44797 0.23214,-0.23214 0.0266,-6.01319 -0.4567,-12.84678 -0.8487,-11.99956 -0.62171,-18.27687 0.69022,-19.08769 1.58017,-0.9766 2.111,6.07917 2.11475,28.10911 l 0.004,23.15775 -7.6014,-0.0277 c -4.79152,-0.0174 -8.41715,-0.38271 -9.80819,-0.98813 z" + id="path394" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 425.03421,635.39847 c -1.76374,-1.76373 -2.51665,-8.72195 -1.95006,-18.02199 0.55155,-9.05341 1.01923,-9.59807 8.6844,-10.1141 3.24375,-0.21837 6.8253,-0.0363 8.56072,0.43525 2.67762,0.72752 3.06512,1.11293 3.77698,3.75658 0.47041,1.74696 0.69498,6.88852 0.5518,12.63333 -0.31945,12.8174 -0.1894,12.66211 -10.60408,12.66211 -6.60653,0 -7.85571,-0.18713 -9.01976,-1.35118 z" + id="path395" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 412.09135,635.15866 c -1.09402,-1.91534 -1.70235,-24.44405 -0.75841,-28.08685 1.27707,-4.92834 4.66463,-4.29377 6.51217,1.21988 1.24352,3.71108 1.89427,24.92828 0.8258,26.92473 -1.16659,2.17979 -5.32232,2.14331 -6.57956,-0.0578 z" + id="path396" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 187.02974,637.69975 c -8.81717,-1.04836 -13.79854,-1.95212 -18.54766,-3.36504 l -5.49397,-1.63452 0.0128,-31.73962 c 0.0137,-33.96897 0.11762,-35.04117 3.52277,-36.33581 2.56553,-0.97541 3.2943,-3.51544 3.65178,-12.72792 0.17355,-4.47245 0.48595,-8.92722 0.69422,-9.89949 0.36744,-1.71537 0.46964,-1.66326 3.4476,1.75765 1.68791,1.93897 3.30135,3.29299 3.58542,3.00893 0.28407,-0.28407 0.0939,-2.75615 -0.42261,-5.49352 -0.6722,-3.56253 -0.72215,-5.19398 -0.17574,-5.74039 1.93954,-1.93954 2.34116,0.25073 1.87664,10.23438 -0.43483,9.34555 -0.37123,10.13791 0.9428,11.74691 1.40158,1.71619 1.41325,1.71758 2.1928,0.26099 0.43104,-0.80541 1.00351,-4.59124 1.27215,-8.41295 0.6451,-9.17736 1.26588,-9.85284 9.70069,-10.55545 6.44413,-0.5368 17.21475,0.066 18.8115,1.05288 0.97123,0.60026 0.93459,1.21401 -0.61327,10.27229 -1.26415,7.39806 -2.18186,33.03701 -2.18296,60.98796 l -0.001,27.04684 -10.07628,-0.10595 c -5.54194,-0.0583 -11.03086,-0.21945 -12.19759,-0.35817 z" + id="path397" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 214.47783,603.33886 c 0.24179,-19.15376 0.74409,-36.06303 1.11621,-37.57616 1.00863,-4.10134 2.29634,-5.02702 6.99307,-5.02702 4.47548,0 8.30341,1.29323 8.97004,3.03046 0.89289,2.32682 1.75488,26.74749 1.77121,50.17932 l 0.0169,24.21841 h -9.65352 -9.65352 z" + id="path398" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 239.88145,637.05387 c -2.50771,-4.74708 -3.91388,-22.46917 -3.9235,-49.44814 -0.009,-24.10124 0.79517,-34.78957 3.11039,-41.36167 0.75432,-2.14124 1.57292,-5.59621 1.81912,-7.6777 0.40887,-3.45672 0.33128,-3.76274 -0.89564,-3.53286 -0.99878,0.18714 -1.97799,2.07883 -3.81816,7.37612 -2.97368,8.56036 -4.30303,10.70338 -7.45691,12.02116 -2.42095,1.01153 -15.87761,1.46792 -15.87761,0.53849 0,-0.25471 1.11788,-3.92105 2.48417,-8.14742 2.87514,-8.89368 4.16826,-16.93604 3.54953,-22.07568 -0.86832,-7.21296 -2.67156,-17.77453 -3.20124,-18.74963 -0.29847,-0.54946 -0.68997,4.38261 -0.87,10.96016 -0.31849,11.63637 -1.22956,16.864 -2.68533,15.40823 -1.29869,-1.29869 -2.10556,-8.34778 -2.10556,-18.39482 v -10.15653 h 9.51114 c 15.19658,0 19.09384,1.41203 18.64318,6.75468 -0.31754,3.76451 -2.47262,5.10052 -9.46611,5.8684 -7.98485,0.87674 -10.65119,2.6286 -7.7126,5.06741 1.0913,0.90571 12.33909,0.65214 19.25321,-0.43403 l 3.0052,-0.47211 v 15.57694 15.57694 l -2.27248,-0.10426 c -3.2557,-0.14937 -3.30454,1.59507 -0.19099,6.8218 l 2.60502,4.37307 0.106,32.5342 c 0.10588,32.49446 -0.21811,39.38834 -1.96324,41.77495 -0.88547,1.21095 -0.95856,1.20662 -1.64759,-0.0977 z" + id="path399" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 246.37681,636.0477 c 0.18734,-0.97511 0.55654,-16.34277 0.82044,-34.15036 0.325,-21.93036 0.71747,-32.29823 1.21634,-32.13194 1.29177,0.43059 7.44816,9.96646 8.10861,12.55973 0.54174,2.12715 -0.96766,24.34385 -1.72276,25.35713 -0.11375,0.15265 -0.7433,-0.16555 -1.399,-0.7071 -1.09703,-0.90607 -1.15439,-0.7307 -0.71876,2.19733 0.26038,1.75009 0.67174,4.77297 0.91414,6.71751 0.2633,2.1122 1.04193,4.19682 1.93409,5.17815 l 1.49336,1.64261 -3.70729,3.19403 c -3.80815,3.28092 -4.69302,5.61098 -2.74485,7.22781 0.52934,0.43932 3.31358,1.40561 6.18719,2.14731 2.95047,0.76155 4.45525,1.40173 3.45697,1.47072 -0.97227,0.0672 -4.56031,0.33543 -7.97343,0.59607 l -6.20568,0.47391 z" + id="path400" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 346.12877,639.86989 c -3.50018,-0.54199 -9.30729,-1.66409 -12.9047,-2.49356 l -6.54074,-1.50812 v -2.74126 c 0,-1.50769 0.18663,-2.74126 0.41474,-2.74126 0.2281,0 1.75414,0.9619 3.3912,2.13755 3.94382,2.83223 7.774,3.19553 19.17503,1.81881 12.60549,-1.52217 15.96504,-2.44854 17.25797,-4.75876 0.93445,-1.66968 0.91691,-2.05501 -0.16899,-3.71231 -0.66642,-1.01709 -1.86166,-1.84925 -2.65608,-1.84925 -0.79442,0 -2.10286,-0.3524 -2.90765,-0.78311 -1.17365,-0.62811 -1.26941,-0.90588 -0.48385,-1.40339 0.53868,-0.34115 1.9746,-0.62514 3.19093,-0.6311 4.52502,-0.0222 4.64589,-2.20018 1.26688,-22.82797 -0.94085,-5.74353 -1.71063,-10.91425 -1.71063,-11.49049 0,-0.81808 1.00735,-1.0477 4.5962,-1.0477 h 4.59619 v 27.57716 27.57716 l -10.07627,-0.0685 c -5.54195,-0.0377 -12.94005,-0.51193 -16.44023,-1.05392 z" + id="path401" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 14.495689,644.18135 c 0.388909,-0.171 8.502959,-1.5986 18.031223,-3.17245 9.528264,-1.57385 18.175745,-3.03706 19.216624,-3.25159 l 1.892507,-0.39005 0.307954,-39.37645 c 0.337886,-43.20382 0.313826,-42.91984 5.017904,-59.22727 3.520346,-12.20384 5.328975,-16.63654 7.795909,-19.10669 2.151289,-2.15409 2.320712,-2.19417 10.949095,-2.58969 13.052774,-0.59834 12.78541,-0.28195 20.289751,-24.00992 2.826074,-8.93574 5.240944,-16.31723 5.366394,-16.40333 0.12545,-0.0861 8.81829,0.23669 19.31742,0.71728 10.49913,0.48059 19.13897,0.81963 19.19965,0.7534 0.0607,-0.0662 -0.37568,-4.46339 -0.96967,-9.77148 -1.05312,-9.41102 -1.04299,-9.76894 0.40749,-14.38996 1.90113,-6.05675 5.06622,-25.13553 8.26653,-49.82957 1.38447,-10.68286 2.59236,-19.49852 2.6842,-19.59035 0.0918,-0.0918 1.84133,11.03517 3.88778,24.72668 2.04645,13.69151 4.52137,29.03023 5.49983,34.08604 2.56322,13.24446 3.00161,18.51829 3.0859,37.12311 0.0705,15.56694 0.55634,21.99421 1.75251,23.18577 1.50819,1.50238 6.36621,-8.1452 12.97436,-25.76584 4.78877,-12.76931 7.08971,-17.67266 9.17885,-19.56038 1.61341,-1.45786 8.1028,-2.57289 15.0973,-2.59407 7.1628,-0.0217 7.88986,-0.87849 8.50223,-10.01937 0.57026,-8.51226 2.40492,-15.9016 5.95005,-23.96467 1.38937,-3.16 2.3531,-6.19637 2.14162,-6.74748 -0.2179,-0.56783 -1.33882,-1.002 -2.58695,-1.002 -1.21133,0 -2.09637,-0.25172 -1.96673,-0.55939 0.12963,-0.30766 2.30399,-3.33434 4.83189,-6.72597 7.64164,-10.25257 13.89668,-20.66144 20.83256,-34.66698 l 6.59366,-13.31451 2.35239,5.88989 c 3.2299,8.08696 10.23967,21.79802 14.3343,28.03773 1.86859,2.84751 3.46283,5.0749 3.54276,4.94975 0.0799,-0.12514 -0.0756,-3.56861 -0.34572,-7.65215 -0.966,-14.60625 -0.77069,-19.21845 1.05172,-24.83526 2.20797,-6.80511 5.13448,-24.48193 4.20675,-25.40966 -1.16776,-1.16775 -10.96547,-2.89274 -13.75424,-2.42158 -1.44418,0.24399 -3.15442,1.02776 -3.80054,1.74171 -1.98826,2.19701 -5.11367,3.18136 -6.48898,2.04369 -1.36299,-1.12747 -4.466,-7.5032 -4.47612,-9.19706 -0.01,-1.61664 5.41199,-6.72112 8.98194,-8.4565 3.49161,-1.69729 4.65558,-1.29281 6.41321,2.22863 0.68775,1.37793 2.28887,2.97067 3.68983,3.67053 l 2.47487,1.23633 -3.62573,10e-4 c -3.59825,0.001 -5.83285,1.25469 -4.90698,2.75278 1.39065,2.25012 15.92833,5.37538 16.9928,3.65304 0.83607,-1.35278 -0.24134,-4.28239 -1.57927,-4.29423 -0.99673,-0.009 -1.03787,-0.12862 -0.2216,-0.64529 0.8153,-0.51605 0.45629,-1.53672 -1.92377,-5.46924 -4.25549,-7.03124 -11.57742,-15.99808 -13.97482,-17.11433 -1.14088,-0.53121 -2.55163,-1.1997 -3.135,-1.48554 -0.58336,-0.28584 -1.1617,-1.36631 -1.28518,-2.40106 -0.19251,-1.61303 0.0927,-1.94479 1.99985,-2.32622 2.618,-0.5236 3.52023,-2.35264 3.54485,-7.1863 0.0222,-4.36486 1.0303,-8.55203 2.3851,-9.90683 0.98434,-0.98435 1.43665,-0.9303 4.59515,0.54906 5.42922,2.54292 6.0228,1.95527 5.51815,-5.46298 -0.23083,-3.3933 -0.79964,-9.43117 -1.26403,-13.41749 l -0.84432,-7.24784 -7.50156,-0.0837 c -13.20397,-0.14726 -13.14449,1.30767 -0.63292,-15.48186 19.28684,-25.8814 36.18464,-54.70511 37.16387,-63.39289 0.39282,-3.485 -0.78206,-4.12501 -3.02424,-1.64743 -0.70608,0.7802 -1.44813,1.25418 -1.64903,1.05328 -0.81971,-0.8197 3.75607,-4.59315 5.56977,-4.59315 2.49443,0 6.6335,-2.84159 6.90863,-4.74298 0.12036,-0.83182 -0.43649,-2.79695 -1.23744,-4.36695 -1.87972,-3.68454 -1.83504,-4.20139 0.3274,-3.78801 1.87942,0.35927 4.58028,3.22601 4.58028,4.86157 0,0.53092 0.30822,0.9653 0.68492,0.9653 0.3767,0 0.50639,0.46523 0.28819,1.03385 -0.22304,0.58124 0.36655,1.74211 1.34675,2.65165 1.2451,1.15534 1.89495,2.72953 2.27337,5.50689 1.89537,13.91112 19.7682,48.18494 33.92373,65.05383 8.48378,10.10996 11.72779,14.3767 11.48888,15.11089 -0.33822,1.0393 -6.85947,2.41183 -11.87152,2.49859 l -3.93853,0.0682 -0.87612,6.54074 c -1.47305,10.99714 -1.77397,17.78879 -0.86357,19.4899 1.14909,2.14709 4.31201,2.03834 6.43477,-0.22124 0.91341,-0.97227 2.09044,-1.76776 2.61564,-1.76776 1.32313,0 2.33336,2.99881 2.33806,6.94032 0.005,4.49716 1.19451,8.4508 2.80028,9.31018 2.41279,1.29129 3.55973,2.91463 3.55973,5.03834 0,1.79073 -0.43761,2.28501 -3.0052,3.39436 -3.16937,1.36936 -9.02804,7.1401 -13.48027,13.27795 l -2.65956,3.66648 1.09298,17.90028 c 1.13574,18.60052 2.21185,28.81886 3.13487,29.76749 1.87666,1.92875 6.42925,-4.46576 13.48316,-18.93828 5.84788,-11.99812 9.5402,-21.74877 10.65088,-28.12678 0.45597,-2.61839 1.09833,-4.92713 1.42747,-5.13055 0.97002,-0.59951 1.9705,1.95998 2.80219,7.16875 1.73271,10.85176 9.47289,28.14486 20.8552,46.59468 6.86987,11.13551 9.9631,17.4799 9.15772,18.78303 -0.22516,0.36432 -1.1153,0.6624 -1.97809,0.6624 -5.0893,0 -9.47903,8.72554 -12.15817,24.16704 -1.43373,8.26338 -2.53682,10.48119 -5.21313,10.48119 -2.37565,0 -3.43086,1.07913 -4.04169,4.13326 -0.36259,1.81295 -0.21779,2.23071 0.77319,2.23071 1.94479,0 24.71705,-4.39487 25.2428,-4.87167 0.26178,-0.2374 0.62512,-19.52352 0.80743,-42.85804 0.35501,-45.44121 0.64829,-51.1032 4.39515,-84.85282 2.83261,-25.51453 5.54657,-52.4025 6.709,-66.46803 0.44998,-5.44472 1.0394,-10.64711 1.30983,-11.56085 0.27801,-0.93939 1.03089,5.51355 1.73248,14.84924 1.75784,23.39041 4.32511,48.97409 7.54621,75.20046 3.73034,30.37251 4.24755,40.61534 4.24755,84.11838 v 37.15043 h 5.287 c 6.98919,0 7.36463,-0.5545 8.25191,-12.1876 0.91673,-12.01919 3.60789,-30.12222 7.70132,-51.80556 4.5805,-24.26345 5.35585,-27.77755 5.85054,-26.51651 0.22885,0.58337 1.41237,7.90192 2.63005,16.26346 4.05414,27.83889 6.45319,38.89087 8.44202,38.89087 1.15016,0 2.01225,-2.48814 3.53806,-10.21145 0.88461,-4.47776 1.8713,-7.51206 2.71814,-8.3589 1.63686,-1.63686 5.59663,-2.60372 10.75473,-2.62598 4.70086,-0.0203 6.7285,-1.25475 7.33034,-4.46283 0.24343,-1.29758 0.59333,-9.53553 0.77754,-18.30657 0.24972,-11.88961 0.69461,-17.8158 1.74844,-23.29068 2.16401,-11.24252 4.0108,-24.54486 6.36969,-45.88067 2.20745,-19.96602 2.80909,-24.31468 3.29649,-23.82727 0.2739,0.27389 5.00145,34.53568 6.99539,50.69733 1.63726,13.27065 2.42526,29.77172 2.85337,59.75052 0.67708,47.41377 1.85645,52.89745 7.46667,34.71722 3.47932,-11.27497 4.99118,-12.10102 21.29149,-11.63336 10.06546,0.28878 11.558,0.9018 13.86369,5.69408 0.80492,1.67303 2.96521,8.22059 4.80064,14.55015 1.83541,6.32956 3.55761,11.26163 3.82709,10.96015 0.26949,-0.30147 0.89217,-16.29893 1.38374,-35.54991 1.47389,-57.72123 1.88842,-56.51699 2.00805,5.83363 l 0.11364,59.22019 h 11.31371 11.3137 V 395.9798 332.69374 h -11.3137 c -10.68151,0 -11.31371,-0.0758 -11.31371,-1.35638 0,-3.47796 0.31531,-3.59337 9.81781,-3.59337 10.06807,0 12.1025,-0.6968 12.1025,-4.14516 0,-1.06901 -0.78942,-7.01718 -1.75427,-13.21816 -0.96485,-6.20098 -3.34389,-23.49117 -5.28676,-38.42264 -1.94287,-14.93148 -3.67103,-27.28668 -3.84035,-27.45601 -0.41936,-0.41935 -0.98803,6.1679 -1.87541,21.72368 -1.19558,20.95869 -3.85883,41.09713 -6.68616,50.55814 l -1.05656,3.53553 0.37297,-7.07107 c 0.20514,-3.88908 1.14115,-12.48043 2.08003,-19.09188 3.06852,-21.60819 5.18562,-45.51923 6.57381,-74.24621 l 0.51254,-10.6066 3.39608,33.94112 c 3.66324,36.61123 6.0435,56.48051 8.37987,69.9514 1.27835,7.3706 1.54246,12.64482 1.93245,38.58949 0.47105,31.33849 0.67326,33.23402 3.54524,33.23402 2.13111,0 4.73146,2.56201 6.2992,6.20633 0.81151,1.88639 2.77631,8.18248 4.36623,13.99131 4.49166,16.41045 7.0546,20.44807 12.16549,19.16532 3.11017,-0.7806 3.52613,-3.09099 4.15887,-23.0995 0.63339,-20.02909 1.58818,-31.13175 4.89512,-56.9221 2.73011,-21.29178 4.75216,-40.59757 5.62969,-53.7502 0.75131,-11.261 1.27871,-15.00539 2.19312,-15.57052 0.72974,-0.45102 1.22396,4.61925 1.69504,17.38977 0.83214,22.5589 6.02362,62.95244 9.3327,72.61537 0.98323,2.87114 1.08453,5.55834 0.69965,18.56001 -0.24752,8.36153 -0.65431,17.03243 -0.90397,19.26866 l -0.45394,4.06586 15.12495,0.0142 c 16.80472,0.0158 23.35834,0.68385 26.0477,2.65522 2.45921,1.80266 5.93353,8.40806 8.45194,16.06889 2.74252,8.34253 3.60628,12.81372 3.60628,18.66762 0,9.33522 1.48264,10.67731 11.79549,10.67731 10.69602,0 11.75894,1.11961 18.12509,19.09188 7.00072,19.76348 11.23148,29.2983 12.7724,28.78468 1.39088,-0.46363 1.71523,-4.49902 2.08618,-25.95625 0.31629,-18.29396 0.60486,-22.71273 1.9012,-29.11844 0.84061,-4.15343 3.36597,-20.38153 5.61188,-36.06244 3.22816,-22.53808 4.17872,-27.84418 4.53758,-25.32879 0.24968,1.75009 1.56539,12.25063 2.92381,23.33453 2.5697,20.96706 5.60425,40.32058 6.63634,42.32421 1.28305,2.4907 1.52268,6.75816 0.78977,14.06003 -0.42002,4.18491 -0.92921,8.3729 -1.13151,9.30665 l -0.36784,1.69773 10.82368,-0.46879 c 5.95299,-0.25783 14.17947,-0.66524 18.28105,-0.90537 l 7.45743,-0.43659 4.45838,15.11755 c 7.436,25.21433 7.14114,24.81679 18.82014,25.37105 11.66613,0.55365 12.28598,1.22265 17.34052,18.71537 5.37931,18.61649 6.44181,32.54163 5.80358,76.06176 l -0.37887,25.83468 17.76747,3.11105 c 9.77208,1.71108 17.62054,3.25798 17.44093,3.43756 -0.1796,0.17957 -20.77692,-0.0759 -45.77187,-0.56773 -35.74524,-0.70337 -61.82128,-0.72144 -122.16648,-0.0847 -54.08505,0.57073 -87.5697,0.5964 -113.49064,0.087 -20.22325,-0.39742 -74.70597,-0.93556 -121.07269,-1.19586 l -84.30314,-0.47328 1.73929,-1.73928 c 0.95661,-0.9566 2.07206,-2.89325 2.4788,-4.30364 2.94311,-10.20569 2.65043,-78.30831 -0.40033,-93.15067 -1.24848,-6.07404 -4.99474,-15.83327 -6.07789,-15.83327 -0.37139,0 -1.09457,0.99724 -1.60705,2.21608 -0.86831,2.0651 -0.95518,1.69174 -1.2751,-5.48008 -0.24344,-5.45727 -0.71951,-8.46546 -1.6365,-10.34064 -1.42535,-2.91475 -3.37666,-3.94563 -4.96824,-2.62473 -1.81654,1.5076 -3.32858,8.43875 -3.41344,15.64719 -0.0446,3.78534 -0.28394,6.33992 -0.53195,5.67685 -0.31181,-0.83367 -0.72507,-0.1471 -1.33962,2.22562 -0.48879,1.88717 -2.19506,5.38715 -3.79172,7.77774 l -2.90302,4.34652 -0.22124,47.90693 c -0.18971,41.0782 -0.36609,47.90692 -1.23744,47.90692 -0.86637,0 -1.01619,-4.11801 -1.01619,-27.93071 v -27.93072 h -5.37758 -5.37756 l 0.30323,2.65165 c 0.16679,1.45841 1.22387,8.89979 2.34907,16.5364 2.27496,15.4398 2.17821,16.16729 -2.15021,16.16729 -1.26594,0 -2.72641,0.51173 -3.24549,1.13717 -0.80186,0.96619 -0.7414,1.28516 0.40213,2.12132 0.74024,0.54129 2.06252,0.98415 2.93842,0.98415 0.87588,0 2.08365,0.70119 2.68392,1.55819 1.53473,2.19114 0.0815,4.1727 -3.92085,5.34625 -4.69602,1.37696 -21.06441,3.16147 -24.65508,2.68794 -1.89603,-0.25004 -4.66175,-1.40877 -6.88341,-2.88386 -2.04263,-1.35624 -3.87787,-2.46588 -4.07832,-2.46588 -0.20043,0 -0.36443,1.70138 -0.36443,3.78084 v 3.78085 l 8.66206,1.85291 c 4.76413,1.01911 9.45756,1.97676 10.42983,2.12812 0.97227,0.15135 -4.35755,0.11142 -11.84404,-0.0888 l -13.61181,-0.36396 v 1.94647 1.94648 L 188.62073,643.7108 c -72.04534,-0.13399 -140.855667,-0.013 -152.911838,0.26891 -12.05617,0.2819 -21.602112,0.37264 -21.213203,0.20164 z m 271.026381,-3.71077 c -2.22098,-0.13988 -6.03936,-0.14101 -8.48528,-0.003 -2.44592,0.13847 -0.62875,0.25291 4.03815,0.25431 4.66691,10e-4 6.66811,-0.1119 4.44713,-0.25177 z M 140.94888,637.7812 c 12.53291,-2.26555 14.30469,-2.99184 14.84019,-6.08324 0.83157,-4.80067 4.84648,-77.61026 4.31627,-78.27467 -0.21333,-0.2673 -14.33173,0.90531 -25.57828,2.12443 l -7.24784,0.78566 v 41.95823 41.95822 l 1.94454,-0.35031 c 1.0695,-0.19266 6.34581,-1.1459 11.72512,-2.11832 z m 505.20152,1.90158 c 1.51483,-0.96098 2.1691,-11.30098 2.69682,-42.62023 l 0.4989,-29.60936 h -18.84938 -18.84938 v -3.7824 c 0,-6.32853 -0.88563,-14.70669 -1.49066,-14.10167 -0.61688,0.61689 -1.69735,28.92824 -2.46735,64.65201 l -0.48223,22.37276 2.04334,0.40446 c 1.12384,0.22246 6.49812,0.89121 11.94284,1.48612 5.44473,0.59491 10.85409,1.19577 12.02082,1.33524 4.26971,0.5104 12.04561,0.4281 12.93628,-0.13693 z M 96.873629,638.14259 c 13.028441,-0.41084 24.722221,-0.90674 25.986171,-1.102 l 2.2981,-0.35502 v -39.22586 -39.22585 l -1.59099,0.34371 c -11.35394,2.45286 -33.765686,4.69621 -51.265242,5.13148 l -16.440233,0.40893 v 37.3765 37.37649 l 8.662059,0.009 c 4.764131,0.005 19.321692,-0.32684 32.350135,-0.73768 z M 210.01747,610.76348 c 0.007,-28.84039 0.85811,-51.99564 2.21376,-60.22323 1.56148,-9.47678 1.56748,-10.47935 0.0675,-11.28212 -2.18824,-1.17111 -15.51661,-1.73685 -21.3799,-0.9075 -7.01032,0.99159 -7.42847,1.55441 -8.03538,10.81533 -0.48326,7.37421 -1.27614,9.67555 -2.64417,7.67472 -0.458,-0.66986 -0.56439,-4.66722 -0.29154,-10.95425 0.36061,-8.30921 0.25401,-10.12668 -0.6636,-11.31371 l -1.09323,-1.41421 -1.11601,1.41421 c -1.09377,1.38605 -1.06746,3.98827 0.0947,9.36868 0.39376,1.82292 0.25033,1.75567 -2.28451,-1.07112 -4.58631,-5.11454 -4.94571,-4.53447 -5.3875,8.69539 -0.30615,9.16793 -0.88714,11.06909 -3.81786,12.49291 -1.04123,0.50585 -2.20919,1.87433 -2.59545,3.04106 -0.40565,1.22527 -0.8174,15.61769 -0.97478,34.07286 l -0.27247,31.95154 5.52527,1.73561 c 3.03889,0.95458 8.38904,2.08939 11.88922,2.52181 3.50018,0.43242 7.15945,0.90112 8.13173,1.04157 0.97227,0.14044 6.46118,0.29869 12.19759,0.35165 l 10.42982,0.0963 z m 24.01475,3.88909 c -0.0249,-30.01029 -0.92437,-49.55916 -2.38259,-51.78468 -1.7896,-2.73128 -10.21828,-4.11784 -13.86074,-2.28016 -3.25135,1.64036 -3.55779,4.91998 -4.0276,43.10468 l -0.43283,35.17856 h 10.36194 10.36194 z m 9.15417,20.32109 c 0.80566,-2.83525 0.99474,-10.28722 0.96371,-37.98183 -0.0378,-33.76255 -0.0686,-34.50538 -1.53264,-36.98674 -0.82172,-1.39273 -1.49405,-2.72273 -1.49405,-2.95556 0,-0.49017 25.16873,0.26844 31.46625,0.94841 4.43612,0.47899 4.77016,-0.17369 0.83314,-1.62789 -2.11548,-0.78138 -1.96998,-0.83324 2.47959,-0.88388 2.59982,-0.0296 5.52651,-0.35779 6.50377,-0.72934 1.99555,-0.75871 7.50762,-5.51469 7.50762,-6.4778 0,-0.34366 -1.10643,-0.62483 -2.45873,-0.62483 -1.35231,0 -4.57217,-0.7955 -7.15526,-1.76777 -5.55631,-2.09139 -7.22926,-2.19585 -8.49357,-0.53033 -1.51579,1.9968 -1.14344,2.50896 1.51086,2.07823 2.37056,-0.38469 2.48534,-0.30985 2.29809,1.49847 l -0.19708,1.90338 4.59619,-0.17955 c 3.28395,-0.12828 4.26517,0.0207 3.43675,0.52183 -1.51438,0.91607 -9.01144,1.92777 -18.28599,2.46764 -4.08354,0.2377 -11.37163,0.75577 -16.19574,1.15126 -9.07654,0.74414 -9.92645,0.56527 -9.95638,-2.09533 -0.008,-0.71799 0.61803,-0.8446 2.46404,-0.49829 l 2.47488,0.46429 v -16.38746 -16.38745 l -3.35876,0.45916 c -6.79802,0.92933 -18.20571,1.22521 -19.26866,0.49978 -2.11531,-1.44366 0.84043,-2.98913 7.04418,-3.68321 8.69029,-0.97226 10.63349,-2.31074 10.63349,-7.32436 0,-5.39254 -3.98981,-6.73802 -19.98059,-6.73802 h -9.88807 l 0.2987,13.25825 c 0.21683,9.62417 0.57933,13.83426 1.32253,15.3597 2.49211,5.11516 4.28774,0.79957 4.75426,-11.42634 0.19827,-5.19601 0.44029,-9.36012 0.53782,-9.25358 0.0975,0.10654 0.72074,4.04182 1.38492,8.74508 1.43478,10.16013 0.96053,14.6177 -2.85715,26.85486 -1.34336,4.30599 -2.44248,8.20392 -2.44248,8.66206 0,1.12371 13.63195,1.05066 16.94608,-0.0908 3.19672,-1.10103 5.29208,-4.31301 7.46854,-11.44852 0.96454,-3.16224 2.21968,-6.36553 2.7892,-7.11843 0.99605,-1.31679 1.03633,-1.29963 1.05797,0.45102 0.0124,1.00097 -0.76525,4.45173 -1.72803,7.66838 -1.9942,6.66258 -2.91297,14.99471 -3.55406,32.23099 -0.77765,20.9082 1.4954,55.9826 3.92188,60.51651 1.28577,2.4025 3.0556,1.31916 4.15278,-2.54198 z m 12.07916,2.8657 c 9.91112,-0.64677 10.37795,-1.08339 3.19666,-2.98974 -9.51762,-2.52657 -9.92292,-3.25475 -4.61088,-8.28418 3.87596,-3.66976 4.1877,-4.56275 2.21585,-6.34725 -0.80368,-0.72732 -1.49576,-2.63643 -1.76999,-4.88256 -0.24768,-2.02855 -0.63755,-4.37371 -0.86639,-5.21148 -0.31972,-1.17047 -0.12076,-1.49797 0.85915,-1.41421 1.12864,0.0965 1.37632,-0.94757 2.15486,-9.08339 1.74452,-18.23042 1.67075,-18.63089 -5.144,-27.91983 -3.21861,-4.38718 -3.38485,-4.50723 -3.84724,-2.77827 -0.26579,0.99386 -0.69619,15.94427 -0.95642,33.22312 -0.26023,17.27885 -0.64875,32.6069 -0.86336,34.06232 -0.38024,2.5786 -0.33895,2.63819 1.61557,2.33196 1.10318,-0.17284 4.71046,-0.49076 8.01619,-0.70649 z M 782.7672,597.16514 v -41.70582 l -1.59099,-0.3531 c -0.87504,-0.1942 -6.84125,-0.84044 -13.25825,-1.43608 -6.41699,-0.59565 -12.734,-1.2236 -14.03784,-1.39546 l -2.37057,-0.31245 0.42455,6.15449 c 0.23348,3.38497 0.75738,14.10944 1.16432,23.83216 0.40687,9.72272 1.20307,24.9295 1.76925,33.79285 0.56618,8.86335 1.02948,16.39499 1.02948,16.73696 0,0.34197 1.55146,1.13709 3.44771,1.76691 3.7145,1.23377 19.22029,4.47982 21.83135,4.57026 l 1.59099,0.0551 z m -258.97785,37.71194 10.78337,-2.65435 V 588.8778 545.53288 h -17.7316 -17.7316 l 0.29985,41.89608 c 0.32235,45.03834 0.45015,46.63113 3.96507,49.41539 2.42121,1.9179 6.0531,1.56792 20.41491,-1.96727 z m 63.10928,-40.08934 V 551.4116 l -5.48008,-1.49973 c -8.60977,-2.35623 -15.52454,-3.67188 -19.29859,-3.67188 -4.92779,0 -5.85507,1.57795 -5.52323,9.39876 0.21853,5.14992 0.48648,6.16951 2.13657,8.12984 2.2438,2.66567 3.25213,9.43946 2.26821,15.23749 -0.50197,2.95796 -0.88486,3.64991 -2.01975,3.64991 -1.07317,0 -1.52537,0.66085 -1.93542,2.82842 -0.8299,4.38698 0.19239,49.08112 1.13641,49.68351 0.66942,0.42717 20.91812,2.62279 26.77133,2.90289 l 1.94455,0.0931 z m 263.04372,5.89947 v -37.47666 l -8.66206,-0.004 c -13.24199,-0.005 -36.82421,-2.31692 -51.00821,-4.99975 -6.81262,-1.28859 -6.09066,-5.85425 -6.09066,38.51643 v 39.16997 l 11.13693,0.52322 c 12.50306,0.58739 38.15711,1.45829 48.08326,1.63232 l 6.54074,0.11468 z m -430.65291,35.40182 c 0.94573,-1.76711 0.93815,-18.15548 -0.0111,-24.0057 -0.92556,-5.7042 -2.32491,-8.4234 -4.63292,-9.00268 -3.6143,-0.90713 -4.14273,0.67486 -4.4219,13.23828 -0.28447,12.80183 0.21982,18.52979 1.76762,20.07759 1.58815,1.58816 6.3921,1.38576 7.2983,-0.30749 z m 24.16495,0.016 c 1.63917,-1.32732 1.66933,-1.57509 1.66933,-13.71434 0,-10.97241 -0.14503,-12.52286 -1.28969,-13.78769 -2.70965,-2.99413 -17.94379,-2.91925 -19.90133,0.0978 -1.33723,2.06102 -2.08895,12.32529 -1.45768,19.90362 0.7196,8.63876 0.99118,8.85233 11.25666,8.85233 6.87575,0 8.29749,-0.19766 9.72271,-1.35174 z m 19.29912,-38.06946 c 0.2951,-21.68166 0.77755,-41.33039 1.07213,-43.66385 0.29458,-2.33345 0.58238,15.40609 0.63955,39.42121 l 0.10396,43.66384 h 16.72589 16.72588 l -0.42617,-44.0174 c -0.42246,-43.63262 -0.88457,-52.53635 -3.06775,-59.10718 -1.4376,-4.32683 -10.28164,-22.03332 -11.0052,-22.03332 -0.30926,0 -4.52391,7.8754 -9.36588,17.50089 -4.84198,9.62549 -8.8176,16.8645 -8.83472,16.08668 -0.0171,-0.77781 0.76126,-3.11634 1.72974,-5.19674 2.2012,-4.72844 2.26931,-6.92095 0.23503,-7.56661 -1.18419,-0.37584 -33.0484,0.21179 -34.96406,0.6448 -0.23781,0.0538 -1.9623,-4.28191 -3.83222,-9.63482 -5.64325,-16.15469 -6.21534,-16.72343 -17.72182,-17.61774 -5.65599,-0.43959 -9.16583,-1.11509 -12.29166,-2.36562 -2.40633,-0.96269 -4.63207,-1.75033 -4.9461,-1.75033 -1.2716,0 0.49673,6.69755 4.58076,17.34955 8.24799,21.5125 9.64809,22.74978 26.55203,23.46412 7.23273,0.30565 8.70426,0.1868 9.67221,-0.78116 0.62791,-0.6279 1.7435,-1.14164 2.47909,-1.14164 1.92335,0 7.2604,4.80467 8.42007,7.58016 1.78096,4.26241 2.45586,20.39611 2.23106,53.33323 -0.26206,38.3951 -1.02968,35.25313 8.6127,35.25313 h 6.13893 z m 139.26963,38.33781 c 0.59586,-0.59587 1.23616,-2.10731 1.42289,-3.35876 0.18672,-1.25145 0.6916,-16.59428 1.12195,-34.09517 0.43035,-17.50089 1.23329,-38.18376 1.78432,-45.96194 0.55103,-7.77817 1.01324,-14.53988 1.02714,-15.02602 0.0189,-0.66114 -2.19366,-0.88388 -8.77981,-0.88388 h -8.8051 l -0.21051,4.34724 c -0.20962,4.32855 -0.23191,4.27305 -5.18491,-12.9047 l -4.9744,-17.25194 h -14.47104 c -14.02156,0 -14.58086,0.0549 -18.00658,1.76777 -2.73667,1.36833 -3.95947,2.55388 -5.41176,5.24689 -4.12476,7.64864 -4.82786,18.01605 -4.83524,71.29742 l -0.006,43.66384 h 8.93551 8.93551 L 554.0903,618.1881 c -1.81881,-57.56518 -3.97535,-81.2874 -8.9512,-98.46462 -1.00973,-3.48569 0.0101,4.80034 1.48784,12.08906 3.13752,15.47495 4.29775,31.73164 6.61873,92.73952 l 0.30265,7.95495 h -8.03788 -8.03786 l 0.32169,-30.93592 c 0.58774,-56.52185 0.94056,-69.53615 2.02032,-74.5248 1.38805,-6.41293 3.4471,-10.15158 6.82046,-12.38396 2.56385,-1.69667 3.75626,-1.9353 12.18362,-2.43817 5.1379,-0.3066 11.63624,-0.57431 14.44076,-0.59492 l 5.09913,-0.0375 1.11084,3.71231 c 2.78212,9.2975 8.24909,29.64466 8.02522,29.86853 -0.13677,0.13677 -2.79286,-0.48783 -5.90241,-1.388 -3.10955,-0.90016 -9.29892,-2.02151 -13.75415,-2.49187 -4.45522,-0.47035 -8.78866,-1.11687 -9.62985,-1.43669 -2.45185,-0.93219 -4.31736,-3.88899 -6.36831,-10.09363 -2.49896,-7.56001 -4.9988,-13.2209 -5.83833,-13.2209 -0.36839,0 -0.0573,1.19324 0.69135,2.65165 0.74863,1.45841 2.18537,5.35634 3.19276,8.66206 3.82224,12.5426 4.69341,13.36732 14.99509,14.19541 9.23188,0.7421 12.85899,1.46336 19.75719,3.92877 4.86112,1.73736 5.14346,1.95462 4.8145,3.70474 -0.19221,1.02254 -0.56107,21.18969 -0.81971,44.81589 l -0.47026,42.95674 h 6.38863 c 4.79554,0 6.65878,-0.27016 7.47202,-1.08339 z m 69.23768,-27.37766 c -0.31352,-15.65357 -0.57004,-42.57169 -0.57004,-59.81803 v -31.35697 l 1.94454,-1.55005 c 2.56416,-2.04396 2.52828,-4.49573 -0.18423,-12.59202 -3.07666,-9.18325 -6.75324,-16.83562 -8.08865,-16.83562 -1.74195,0 -3.57637,3.67849 -7.02387,14.08472 -5.73236,17.30302 -7.16365,30.94828 -6.60723,62.98992 0.35949,20.70054 2.39331,68.64304 3.0522,71.94811 0.30869,1.54845 0.55422,1.59099 9.18225,1.59099 h 8.86507 z m 7.3046,25.62296 c 1.62868,-4.99642 2.49075,-17.19965 2.87159,-40.64898 0.44378,-27.32527 -0.29468,-39.76094 -2.96481,-49.92677 -0.95947,-3.65298 -1.73073,-7.43726 -1.71389,-8.40954 0.0266,-1.53481 0.20873,-1.39503 1.38223,1.06066 0.74339,1.55564 2.01441,5.15046 2.82449,7.98849 0.89553,3.13742 2.26534,6.04772 3.49458,7.42462 l 2.02171,2.26456 8.47758,0.23446 c 7.97665,0.2206 8.50602,0.32506 8.95908,1.76777 0.26483,0.84332 0.65457,19.43195 0.86609,41.30806 l 0.38456,39.77476 10.6918,-0.004 c 11.80647,-0.005 22.1916,-1.29844 29.61651,-3.6898 l 4.86291,-1.5662 -0.26205,-32.19493 c -0.26799,-32.93333 -0.59015,-36.79111 -3.07238,-36.79111 -2.40947,0 -3.39737,-3.48035 -3.84037,-13.52978 -0.24749,-5.61395 -0.76629,-10.15095 -1.2117,-10.59635 -0.78552,-0.7855 -1.08088,-0.53395 -5.08112,4.32714 l -1.45466,1.76777 0.51611,-2.47488 c 0.28384,-1.36118 0.51654,-4.06586 0.51704,-6.01041 8.5e-4,-3.05863 -0.18887,-3.53553 -1.40629,-3.53553 -1.92178,0 -2.28205,2.60149 -1.55281,11.21191 0.5852,6.90994 0.0722,11.73136 -1.27562,11.98885 -0.97114,0.18554 -1.59226,-3.18945 -1.69105,-9.18937 -0.1598,-9.70729 -1.27081,-10.36668 -16.8542,-10.00322 -12.98505,0.30286 -12.91709,0.25069 -11.17038,8.57405 2.01083,9.58192 0.92007,8.46425 -2.0615,-2.11237 -3.13102,-11.10678 -3.51125,-17.16305 -1.76717,-28.14752 l 1.01046,-6.36396 0.40685,10.25305 c 0.38265,9.64349 1.16583,13.43503 2.77513,13.43503 1.88662,0 2.4689,-3.60862 2.70984,-16.79379 l 0.24873,-13.6118 H 694.903 c -11.34388,0 -14.90498,0.63195 -16.09542,2.85631 -0.89129,1.66539 -0.89129,6.05701 0,7.7224 0.84441,1.57779 4.29236,2.85495 7.72184,2.86026 3.19795,0.005 7.64389,1.21274 8.28547,2.25083 0.78196,1.26524 -1.87975,2.696 -4.9906,2.68263 -1.57853,-0.007 -5.71313,-0.47828 -9.18799,-1.04776 -3.47487,-0.56947 -6.49775,-0.85571 -6.71751,-0.63607 -0.21977,0.21963 -0.39958,26.06742 -0.39958,57.43952 0,59.83193 0.0755,61.35883 3.00726,60.79428 0.67965,-0.13087 1.59686,-1.34684 2.03895,-2.7031 z m 23.27528,-30.92626 c -0.27019,-18.57039 -0.77602,-35.63651 -1.12405,-37.92471 -0.87053,-5.72339 -2.00667,-6.79979 -7.17721,-6.79979 -5.47964,0 -8.71086,1.37244 -9.39209,3.98922 -0.28939,1.11165 -0.68049,18.32884 -0.86909,38.26041 l -0.34292,36.23922 h 9.69831 9.69832 z m -377.9858,28.18315 c 0,-4.43251 -0.46565,-5.0254 -3.94692,-5.0254 -1.57004,0 -1.70905,0.27479 -1.6991,3.35876 0.0124,3.83322 0.46867,4.81772 2.46404,5.31625 3.07165,0.76742 3.18198,0.64087 3.18198,-3.64961 z m -49.49747,2.88459 c 0,-0.92737 -13.38135,-4.52909 -18.30171,-4.92609 -3.62817,-0.29274 -4.44954,-0.17341 -4.18889,0.60854 0.4361,1.30828 5.1144,2.60211 13.65177,3.77551 8.97556,1.23364 8.83883,1.22525 8.83883,0.54204 z m 40.30509,-3.92596 v -3.79414 l -3.00521,0.58136 c -1.65286,0.31976 -4.19844,0.59523 -5.65685,0.61217 -2.45889,0.0285 -2.65165,0.18267 -2.65165,2.12007 0,1.86011 0.29085,2.14035 2.65165,2.55482 1.45841,0.25604 3.76534,0.71579 5.12652,1.02167 1.36118,0.30588 2.71352,0.5881 3.00521,0.62716 0.29168,0.0391 0.53033,-1.63633 0.53033,-3.72311 z m -13.43503,-0.28616 v -2.66609 l -5.12653,-1.58361 c -2.81958,-0.87099 -6.033,-1.58044 -7.14092,-1.57656 -2.33187,0.008 -5.57141,3.08056 -6.71889,6.3722 l -0.73908,2.12015 h 9.86271 9.86271 z m 49.33239,1.23449 c 11.33945,-1.80295 13.60011,-2.5144 13.60011,-4.28009 0,-1.81371 -2.98187,-1.79651 -13.3876,0.0772 -10.51131,1.89273 -14.07773,3.3893 -12.30394,5.16308 0.71928,0.71929 2.33597,0.5909 12.09143,-0.96019 z m -70.86107,-0.75133 c 0.2613,-0.4228 0.14991,-1.0939 -0.24752,-1.49134 -1.17605,-1.17604 -9.80798,-3.31647 -15.42881,-3.82582 -4.45507,-0.40371 -5.2214,-0.31175 -5.2214,0.62656 0,2.65173 19.45852,7.01929 20.89773,4.6906 z m 69.16945,-4.4954 c 5.53527,-1.05907 8.22066,-2.10481 8.22066,-3.20125 0,-0.95559 -3.82135,-1.1418 -11.30171,-0.5507 -9.08216,0.71767 -12.92248,2.05474 -11.67926,4.06632 0.63854,1.03317 8.60401,0.86352 14.76031,-0.31437 z m -65.44716,-1.28996 c 0.3807,-2.00446 -4.25799,-3.50133 -12.06887,-3.89454 -5.90891,-0.29745 -6.89429,-0.19019 -6.89429,0.75048 0,0.72202 1.51215,1.58805 4.41941,2.53109 5.52937,1.79358 7.15851,2.08046 11.13058,1.96003 2.42969,-0.0737 3.23141,-0.39008 3.41317,-1.34706 z m 21.99687,-1.71555 c 0.47311,-1.71345 0.56718,-13.84432 0.27331,-35.24348 -0.33534,-24.41885 -0.2416,-32.75832 0.37247,-33.13784 0.95272,-0.58882 1.03143,-18.22663 0.18649,-41.78944 -0.55193,-15.3913 -0.69812,-16.15819 -4.50473,-23.63138 -1.46605,-2.87814 -2.80986,-2.74537 -2.25306,0.22261 0.62072,3.30878 -0.5645,3.34551 -2.67788,0.083 -1.60265,-2.47409 -2.90359,-3.09556 -3.71881,-1.77652 -0.95265,1.54142 -1.76777,0.56329 -1.76777,-2.12132 0,-1.55563 0.24434,-2.82843 0.54297,-2.82843 0.29862,0 1.71364,0.7955 3.14446,1.76777 3.03863,2.0648 3.38364,2.13505 3.38364,0.68895 0,-0.96702 0.21619,-0.96702 2.08621,0 2.77897,1.43707 5.18661,1.36116 7.14576,-0.22526 1.93462,-1.56656 1.50247,-3.29556 -1.12264,-4.49165 -1.40647,-0.64083 -2.77068,-0.63941 -5.89604,0.006 -5.32295,1.09944 -6.92747,1.05944 -7.40485,-0.1846 -0.47418,-1.23569 0.9506,-1.70987 4.96676,-1.65299 1.76101,0.0249 4.18963,-0.60051 6.00402,-1.54623 1.67575,-0.87345 5.11107,-1.88043 7.63404,-2.23772 5.61658,-0.7954 6.27829,-1.35692 4.60625,-3.90876 -0.9714,-1.48254 -5.63709,-7.47567 -7.79388,-10.0113 -0.45131,-0.53059 -4.58643,2.12264 -5.25492,3.37173 -0.98932,1.84856 -0.91656,4.07635 0.15581,4.7704 0.48614,0.31464 2.31578,0.57207 4.06587,0.57207 1.75009,0 3.30538,0.3182 3.4562,0.7071 0.52253,1.34744 -3.12584,2.45398 -8.0524,2.44226 -4.05312,-0.01 -5.71502,-0.39201 -9.17438,-2.11089 -4.4121,-2.19228 -7.30081,-2.60321 -9.61043,-1.36715 -1.64177,0.87865 -1.7607,2.30425 -0.2938,3.52167 0.87348,0.72492 1.3024,0.68568 2.29809,-0.21026 1.11304,-1.00153 1.37572,-0.9783 2.8935,0.25597 0.91813,0.74662 2.40355,1.35749 3.30093,1.35749 2.09431,0 3.86858,0.68331 3.86858,1.48987 0,0.34729 -1.77537,0.63145 -3.94527,0.63145 h -3.94527 l 0.48029,2.18676 c 0.41195,1.87558 0.29417,2.15126 -0.8277,1.93732 -0.7194,-0.13719 -1.40236,-0.90635 -1.51771,-1.70924 -0.11534,-0.8029 -1.48746,-3.00609 -3.04917,-4.89596 -2.18717,-2.64677 -2.74095,-3.8287 -2.4106,-5.1449 1.02818,-4.09662 -3.22718,-10.12021 -6.07334,-8.59699 -2.10606,1.12712 -1.59829,-0.40337 0.80463,-2.42529 2.41814,-2.03473 4.73199,-2.78865 13.58985,-4.42796 5.59647,-1.03573 6.18718,-1.29631 6.18718,-2.72934 0,-0.87136 -0.61634,-7.91083 -1.36965,-15.64329 -0.75331,-7.73244 -1.53255,-17.24097 -1.73165,-21.13006 l -0.36201,-7.07107 1.37246,7.77818 c 0.75486,4.27799 2.1935,13.97951 3.19698,21.55893 1.00348,7.57942 1.99818,13.94338 2.21045,14.14213 0.42432,0.39731 -0.0289,-8.667 -1.58731,-31.74729 -0.56219,-8.32597 -1.00654,-15.32632 -0.98746,-15.55635 0.0191,-0.23003 1.21233,2.92284 2.65166,7.00638 l 2.61694,7.42463 -0.17523,14.13619 c -0.10705,8.63537 0.11924,15.02846 0.58151,16.42918 0.76887,2.32966 3.90962,5.40021 4.89854,4.78902 1.27518,-0.7881 1.35876,-7.7653 0.36418,-30.40465 -1.76087,-40.08261 -2.67353,-84.49904 -1.98615,-96.65997 0.52582,-9.30253 0.84253,-11.33775 1.95575,-12.56786 2.52594,-2.79112 0.79319,-3.18287 -15.21885,-3.44072 l -14.81493,-0.23856 v 13.41838 c 0,20.96169 -2.22957,54.02663 -6.01718,89.23569 -7.16539,66.60857 -6.77883,63.8043 -9.21568,66.85425 -1.0919,1.36662 -1.09989,1.36627 -0.73949,-0.0327 0.56587,-2.19648 1.67606,-12.68464 2.18329,-20.62599 l 0.4593,-7.19096 -13.31089,-0.23993 c -7.32098,-0.13196 -13.43578,-0.16525 -13.58843,-0.074 -0.79399,0.47477 1.74564,2.32145 3.19255,2.32145 2.21039,0 4.22517,2.09459 5.22711,5.43416 0.47183,1.57267 1.03876,11.98585 1.35952,24.97143 0.3026,12.25062 0.78861,22.83071 1.08001,23.5113 0.2914,0.68059 1.00293,1.23744 1.58118,1.23744 0.85506,0 0.96057,0.66011 0.5651,3.53553 -0.51935,3.77605 -0.16303,4.22222 1.88886,2.36528 1.2212,-1.10517 1.29312,-1.06816 1.29312,0.66538 0,2.40923 1.1784,3.05878 2.83287,1.56151 1.27119,-1.1504 1.37742,-1.08864 2.42026,1.40723 1.50592,3.60418 2.76539,2.82094 3.4648,-2.15468 0.80641,-5.73688 0.0843,-9.59449 -2.39668,-12.80312 -6.00474,-7.76592 -6.43738,-8.74265 -5.89804,-13.31546 0.27523,-2.33345 0.53125,-10.55462 0.56893,-18.26925 l 0.0685,-14.02661 1.98397,-1.70652 c 3.09333,-2.66073 4.32128,-2.20381 2.25606,0.83948 -2.1818,3.21505 -2.81318,6.24849 -2.78158,13.36391 0.019,4.28544 0.40511,6.49902 1.59256,9.13066 1.72449,3.82185 1.58385,4.97552 -1.10117,9.03285 -2.30263,3.4795 -1.76897,4.9754 0.81458,2.28334 1.08842,-1.13414 5.57275,-6.83599 9.96516,-12.67076 4.39241,-5.83478 8.69725,-11.24415 9.56632,-12.02082 l 1.58012,-1.41213 -0.51121,1.76777 c -0.45658,1.57886 -2.55546,5.49636 -9.84998,18.38478 -2.11601,3.7387 -2.1903,4.14883 -1.92108,10.6066 0.49156,11.7909 0.39235,25.63325 -0.22599,31.53048 -0.70107,6.68635 -1.21728,6.189 7.77286,7.48884 7.14644,1.03327 8.27958,0.59721 8.79009,-3.38263 0.36837,-2.87174 0.89705,-2.68837 1.67836,0.58212 0.62843,2.63058 2.0249,3.21177 9.5248,3.96404 6.8065,0.68272 8.59583,1.48736 8.59583,3.86545 0,1.45432 -1.85428,4.03496 -2.89927,4.03496 -0.30733,0 -0.65575,-1.51144 -0.77429,-3.35876 l -0.21552,-3.35876 -3.18198,-0.20787 c -3.57828,-0.23376 -5.97636,1.02738 -5.30085,2.78771 0.23813,0.62057 1.84644,2.14339 3.57401,3.38404 1.72758,1.24064 3.14105,2.4575 3.14105,2.70412 0,0.24661 -0.84276,1.66448 -1.87279,3.15082 -1.18374,1.70812 -1.99687,3.99376 -2.21003,6.2121 -0.37744,3.92805 -1.57403,4.12055 -1.57403,0.2532 0,-1.37063 -0.23865,-2.386 -0.53033,-2.25636 -2.89737,1.28772 -10.07628,5.8147 -10.07628,6.35405 0,0.38133 2.69564,4.99644 5.9903,10.2558 5.69926,9.09787 7.66267,13.7961 6.2959,15.06544 -0.34041,0.31615 -1.36385,0.80031 -2.2743,1.07593 -1.36884,0.41437 -2.22556,-0.0938 -4.94975,-2.93604 -1.81191,-1.89044 -4.9613,-6.17063 -6.99864,-9.51155 -7.08191,-11.61319 -11.9776,-16.30075 -14.68115,-14.05699 -1.41939,1.17799 -1.32129,3.99546 0.41851,12.02028 2.57754,11.88882 2.57762,11.91289 0.045,12.79578 -2.47373,0.86234 -3.63402,3.71387 -3.64089,8.94776 -0.004,3.30756 0.31867,3.57234 2.23847,1.83495 1.24129,-1.12336 1.29081,-0.97459 1.23544,3.71231 l -0.0577,4.88256 -1.02447,-2.3458 c -2.39166,-5.47635 -5.23268,0.0382 -5.28623,10.26086 -0.0441,8.41436 1.68922,10.70387 6.05892,8.00324 2.79448,-1.72708 8.25838,-1.92975 9.56546,-0.35481 0.83041,1.00059 3.43967,1.86008 11.45307,3.77266 1.96858,0.46984 3.98573,0.55054 4.93977,0.19762 1.53406,-0.56749 1.47539,-0.66634 -1.20595,-2.03199 -1.55014,-0.78952 -5.47712,-2.02752 -8.7266,-2.75112 l -5.90816,-1.31563 0.28436,-9.19239 c 0.24898,-8.04878 0.5027,-9.62463 2.03942,-12.6668 2.95517,-5.85021 7.45563,-7.80047 11.65343,-5.04996 3.43153,2.24842 4.05887,4.76245 4.66687,18.7022 0.63995,14.67224 1.13574,16.28879 5.03257,16.40916 1.25499,0.0388 3.0773,0.32525 4.04957,0.63663 3.03153,0.97086 3.4486,0.7812 4.19048,-1.90567 z m 10.15815,1.43199 c 4.92005,-0.63519 5.04666,-1.09784 4.30848,-15.74506 -0.94832,-18.81693 -0.81374,-21.2705 1.37121,-24.99882 2.37961,-4.06051 8.39104,-9.47241 11.10288,-9.99557 1.15655,-0.22312 3.03543,-0.58522 4.17528,-0.80468 3.03889,-0.58506 3.68666,-1.80012 3.43095,-6.43562 l -0.22758,-4.12552 -1.25568,2.47487 -1.25566,2.47487 0.37068,-4.24264 c 0.20388,-2.33345 0.59921,-7.58372 0.87851,-11.66726 l 0.50781,-7.42462 1.2129,10.6066 c 1.54935,13.54873 2.47048,17.58947 4.58168,20.09849 2.39323,2.8442 2.14398,3.05163 -1.30046,1.08224 -5.11695,-2.92566 -11.76928,-1.96078 -16.32659,2.36808 -3.2155,3.05432 -4.00813,5.24169 -3.94524,10.88753 l 0.0575,5.16164 1.60283,-5.04324 c 2.02061,-6.35781 4.08315,-9.26453 7.75818,-10.93353 3.87912,-1.76168 5.74285,-1.67952 9.30907,0.41043 5.10914,2.99415 7.23893,9.7059 8.86621,27.94071 0.46854,5.25027 1.08958,9.81697 1.38008,10.14822 0.29051,0.33126 0.75259,-2.09152 1.02684,-5.38393 0.69378,-8.32871 1.5247,-8.92978 1.8864,-1.36459 0.1823,3.81294 0.67941,6.82543 1.23722,7.49755 1.19822,1.44376 5.28031,1.4513 6.71921,0.0124 1.67868,-1.67868 1.3983,-5.64243 -1.68312,-23.7942 -8.15732,-48.05256 -14.56932,-111.76553 -16.2804,-161.77083 -0.81281,-23.75357 -1.06235,-26.68601 -2.40254,-28.23259 -0.73794,-0.85159 -1.06362,-5.58772 -1.38934,-20.20422 -0.23399,-10.50053 -0.9443,-27.84233 -1.57846,-38.53732 -1.42598,-24.04862 -1.22616,-28.75161 1.35174,-31.81528 1.51417,-1.79948 1.73206,-2.4954 1.13225,-3.61617 -0.62726,-1.17204 -1.14916,-1.30152 -3.35622,-0.83265 -1.4374,0.30537 -8.413,0.55521 -15.50133,0.55521 h -12.88787 l -0.36753,1.76777 c -2.79714,13.45381 -3.22116,75.30037 -0.52242,76.19994 1.09748,0.36583 1.11667,11.83301 0.0768,45.92316 l -0.78096,25.60303 5.37641,6.33698 c 2.95702,3.48534 5.3764,6.73701 5.3764,7.22594 0,0.48893 -1.00981,1.73199 -2.24403,2.76236 -2.75569,2.30055 -2.35705,3.97601 1.10033,4.62463 3.34098,0.62677 4.21006,-0.0587 3.74077,-2.95059 -0.35779,-2.20484 -0.28078,-2.32921 1.01342,-1.63657 2.40921,1.28937 7.70322,6.73426 7.70322,7.92276 0,0.62382 -0.66452,1.34513 -1.47673,1.60291 -0.81219,0.25778 -1.88224,1.43315 -2.37788,2.61193 -0.54495,1.29604 -1.09575,1.82838 -1.39344,1.34672 -0.7563,-1.22372 -2.95997,-0.96234 -8.38501,0.99458 -5.39441,1.94587 -7.91406,1.98915 -4.22138,0.0725 1.39899,-0.72613 2.29809,-1.73215 2.29809,-2.57135 0,-1.18767 0.2512,-1.28305 1.81406,-0.68885 2.01964,0.76786 3.47031,0.22602 5.55129,-2.07343 0.73652,-0.81384 2.0853,-1.47971 2.9973,-1.47971 1.15553,0 1.65817,-0.40576 1.65817,-1.33856 0,-2.08342 -1.42837,-2.17167 -6.92794,-0.42802 l -5.09288,1.61471 v -1.60604 c 0,-1.62855 -1.58105,-2.60361 -5.83363,-3.59769 -2.29319,-0.53607 -2.64929,0.68604 -0.53033,1.82007 0.77782,0.41627 1.41422,1.12291 1.41422,1.57029 0,0.44739 0.69186,1.54989 1.53747,2.45 1.53548,1.63445 1.53558,1.63656 0.0692,1.63656 -1.00742,0 -1.70906,0.69065 -2.23533,2.2003 -0.65719,1.88522 -1.0215,2.13643 -2.54405,1.7543 -0.97735,-0.24531 -1.77701,-0.30699 -1.77701,-0.13708 0,0.16992 0.82385,1.94918 1.83078,3.95393 1.75176,3.48767 1.84673,4.29137 2.20034,18.61965 0.32506,13.17215 -0.26689,47.02339 -1.67817,95.96771 -0.47947,16.62859 -0.12325,18.89737 2.83411,18.05042 0.84175,-0.24107 3.05526,-0.63516 4.91893,-0.87576 z m 30.21643,-3.79166 c 7.79344,-1.59914 11.12163,-3.0714 5.61095,-2.48207 -1.73438,0.18548 -6.33539,0.49535 -10.22448,0.6886 l -7.07107,0.35135 5.28682,-1.39768 c 2.90774,-0.76872 5.77153,-1.88318 6.36396,-2.47657 0.80291,-0.80422 1.07714,-2.67738 1.07714,-7.35748 0,-6.60959 -0.14671,-7.09549 -2.2333,-7.39628 -1.92288,-0.2772 -2.05908,-2.9761 -0.20039,-3.97084 1.30803,-0.70004 1.49031,-1.27639 1.20479,-3.80949 -0.37323,-3.31124 -3.37131,-9.79729 -5.66477,-12.25515 -1.838,-1.96976 -4.40768,-2.02435 -7.46779,-0.15866 -4.22484,2.57582 -4.66259,4.71523 -4.69845,22.96285 -0.0392,19.94319 -0.0794,19.81945 6.24837,19.22854 2.39852,-0.22397 7.69422,-1.09118 11.76822,-1.92712 z m -22.13829,-7.5787 c -0.16201,-1.0695 -0.29457,-0.19446 -0.29457,1.94454 0,2.139 0.13256,3.01404 0.29457,1.94454 0.16202,-1.06949 0.16202,-2.81958 0,-3.88908 z m 120.76235,-36.30828 c 0,-20.65598 -0.17937,-25.38731 -0.99992,-26.37522 -0.91266,-1.09881 -1.09778,-1.10606 -2.12132,-0.0831 -1.30631,1.30556 -1.48192,8.69674 -0.54393,22.89284 l 0.57748,8.73983 -5.88078,-0.6081 c -9.0731,-0.9382 -16.13907,-0.67869 -18.75797,0.68893 -2.81434,1.46967 -5.71598,6.28548 -6.28397,10.42938 -0.35373,2.5807 -0.17822,3.35318 1.00519,4.42414 3.13131,2.83381 6.07039,-0.38758 5.38069,-5.8975 l -0.3983,-3.18198 3.06709,5.65685 c 2.58535,4.76836 3.56437,5.90955 6.23324,7.26569 2.81668,1.43125 4.02468,1.58734 10.94433,1.41421 l 7.77817,-0.19461 z m -33.39166,3.28299 c 1.87848,-3.93922 4.49829,-4.85562 15.15065,-5.29965 6.26205,-0.26102 9.63805,-0.69184 10.25304,-1.3084 0.6662,-0.6679 0.9169,-3.70602 0.9169,-11.11168 0,-12.29682 0.0588,-12.1985 -7.86017,-13.14188 -3.06617,-0.36527 -8.43864,-1.49689 -11.93882,-2.51471 -3.50018,-1.01781 -7.28269,-2.00873 -8.40558,-2.20205 l -2.04162,-0.35149 0.33044,18.35233 c 0.18174,10.09378 0.5624,18.72765 0.84591,19.18639 0.84429,1.36608 1.51884,0.97134 2.74925,-1.60886 z m -148.71321,0.36808 c 1.81591,-3.39306 -0.4379,-9.23887 -3.56198,-9.23887 -1.66657,0 -1.67171,0.19771 0.0898,-3.44812 0.93317,-1.93143 1.37569,-4.05038 1.23744,-5.92527 -0.19738,-2.67674 -0.42034,-2.97218 -2.69009,-3.56471 -2.44199,-0.63747 -11.02519,-0.31404 -11.78326,0.44402 -0.80859,0.8086 4.96767,9.0956 9.34916,13.41293 2.72377,2.68389 4.55542,5.0842 4.55542,5.96974 0,3.49848 1.51109,4.76526 2.80355,2.35028 z m 27.87994,0.24924 c 0.70303,-1.83207 0.50013,-2.41704 -0.83835,-2.41704 -0.8968,0 -1.50631,-0.89267 -2.0838,-3.05187 -0.89534,-3.34753 -7.38429,-12.83032 -9.89821,-14.46498 -3.004,-1.95334 -2.74455,0.86306 0.72302,7.84811 4.17501,8.41014 7.80881,13.20427 10.00841,13.20427 0.91285,0 1.85287,-0.50332 2.08893,-1.11849 z m 75.84354,-7.83034 c -0.25356,-4.14404 -0.46102,-9.61583 -0.46102,-12.15953 v -4.6249 l -2.47487,2.39874 c -2.23458,2.16584 -2.47487,2.25358 -2.47487,0.90365 0,-2.23803 0.73796,-3.73208 1.84342,-3.73208 0.67777,0 0.985,-0.88222 0.985,-2.82843 0,-2.72632 -0.41039,-3.17225 -2.65165,-2.88121 -1.32407,0.17194 -1.09989,-0.3591 1.31069,-3.10459 2.64167,-3.00869 3.29809,-3.1101 3.5921,-0.55493 0.32094,2.78935 2.9618,2.73427 3.28251,-0.0685 0.17997,-1.57266 0.5208,-1.93704 1.55813,-1.66578 0.73028,0.19097 1.86451,-0.0452 2.52051,-0.52492 1.107,-0.80946 1.09666,-0.91202 -0.14391,-1.42684 -2.06926,-0.85871 -15.35347,-1.24915 -16.47437,-0.4842 -0.85268,0.58191 -0.83695,1.27249 0.10957,4.8113 0.60784,2.27253 1.29675,6.04107 1.5309,8.37452 0.23416,2.33345 1.11071,8.93606 1.94789,14.67246 l 1.52214,10.42983 h 2.46942 2.46941 z m 272.76242,-10.10878 c 1.5153,-0.35151 3.02148,-1.05987 3.34707,-1.57412 0.82503,-1.30312 0.0576,-5.21898 -1.87107,-9.54679 -2.29369,-5.14699 -4.42696,-6.1308 -13.42348,-6.19053 -3.88909,-0.0258 -7.94209,0.19675 -9.00667,0.49461 -3.04143,0.85096 -4.34365,3.51848 -4.294,8.79605 0.0692,7.35395 2.07845,8.47381 15.42199,8.59543 3.88909,0.0354 8.31086,-0.22314 9.82616,-0.57465 z m 9.17733,-2.24398 c 0.24307,-1.21534 0.44195,-11.07948 0.44195,-21.92031 v -19.7106 l -6.54074,0.004 c -7.5219,0.005 -11.5213,0.90019 -12.54282,2.80894 -0.39349,0.73523 -0.71543,4.71325 -0.71543,8.84003 0,7.02361 0.11095,7.61421 1.73562,9.23888 1.14635,1.14634 2.53339,1.73563 4.08531,1.73563 4.75325,0 6.7972,2.81272 9.10492,12.52949 2.11682,8.91291 3.53037,10.97812 4.43119,6.474 z M 83.729164,557.56858 c 9.386539,-1.85421 18.150616,-4.55561 20.153226,-6.21193 l 1.48421,-1.22758 -2.40262,-10.66237 c -2.69025,-11.93887 -4.427767,-16.03082 -7.476387,-17.60732 -2.829381,-1.46314 -21.600978,-1.53486 -25.045369,-0.0957 -2.96915,1.24059 -4.729749,4.10675 -7.911701,12.87983 -4.696946,12.95014 -6.929574,23.07903 -5.431651,24.64209 0.94998,0.99128 18.720207,-0.15447 26.630292,-1.71702 z m 764.422716,0.4427 c 1.20619,-0.88196 1.23921,-1.30973 0.42328,-5.48008 -1.16468,-5.95298 -6.82245,-24.15281 -8.57834,-27.59467 -1.9787,-3.87859 -4.59725,-4.9601 -13.05411,-5.39172 -16.65548,-0.85006 -17.69591,0.12816 -21.95277,20.64001 l -1.89844,9.14762 1.58576,1.28407 c 5.63154,4.56013 39.47798,10.3172 43.47462,7.39477 z m -731.05479,-3.12006 c 2.00014,-1.33554 2.73088,-4.22225 2.63743,-10.419 -0.11262,-7.46767 -1.85587,-16.24399 -6.30235,-31.72879 -3.20791,-11.17155 -5.9331,-22.46569 -5.90833,-24.4862 0.0406,-3.31432 3.58833,6.69643 7.76828,21.92031 2.40899,8.77385 6.05137,17.42083 8.01887,19.03675 8.16311,6.70443 23.39634,-36.22768 16.06628,-45.27992 -1.73419,-2.14163 -10.71445,-3.06485 -20.81484,-2.13989 -11.24581,1.02985 -13.12901,1.77492 -15.4447,6.11056 -2.58981,4.84886 -7.714565,20.43254 -8.138271,24.74737 -0.32814,3.34164 -0.231959,3.59906 1.753788,4.69396 2.566536,1.41514 4.327383,5.79399 7.211453,17.93346 2.70784,11.39771 4.57211,16.17354 7.16514,18.35543 2.10761,1.77343 4.47007,2.26901 5.98725,1.25596 z M 798.21211,552.369 c 1.9944,-2.12291 4.02401,-7.94998 6.18372,-17.75367 1.89865,-8.61874 4.11402,-15.70701 5.44147,-17.41054 0.47334,-0.60747 1.46103,-1.33013 2.19479,-1.60592 1.15662,-0.43471 1.27612,-0.99336 0.89796,-4.19882 -0.57806,-4.89978 -6.52116,-23.18497 -8.48069,-26.09271 -2.14812,-3.18765 -5.91233,-4.16344 -17.85268,-4.62792 -10.91044,-0.42441 -14.53946,0.22424 -16.00911,2.86147 -0.53139,0.9535 -0.81741,4.21125 -0.75568,8.60543 0.23907,17.00932 10.09494,39.44985 15.95013,36.31626 2.2491,-1.20372 5.22241,-8.71727 8.93168,-22.57042 3.42876,-12.80584 5.60672,-19.40931 6.2043,-18.8117 0.48472,0.48469 -2.42389,13.88648 -5.49111,25.30119 -5.63515,20.97112 -7.34267,35.67221 -4.62504,39.81982 1.58342,2.41659 5.22014,2.49881 7.41026,0.16753 z m -542.56333,-1.34586 c 1.89977,-1.25835 5.53406,-2.85612 8.07618,-3.55059 l 4.62206,-1.26267 -7.77817,0.2956 c -7.85866,0.29867 -12.11723,1.26281 -11.31453,2.56161 0.24081,0.38964 1.12625,0.70843 1.96765,0.70843 h 1.52982 l -1.57155,1.10075 c -0.86435,0.60542 -1.57155,1.40092 -1.57155,1.76777 0,1.33122 2.66149,0.61699 6.04009,-1.6209 z m -110.70574,-2.75326 c 6.42461,-0.43918 11.80018,-0.90297 11.94571,-1.03062 0.38739,-0.33982 -8.21416,-21.73079 -11.0644,-27.51578 -4.99259,-10.1332 -6.58661,-10.02401 -9.38045,0.64254 -1.53504,5.86062 -6.25763,17.78126 -8.3596,21.1011 l -1.40264,2.21532 0.38281,-4.22176 c 0.40498,-4.46622 -0.67215,-6.57361 -2.91921,-5.71133 -2.45727,0.94294 -2.18738,10.22147 0.39272,13.50153 1.70095,2.16241 2.84398,2.21949 20.40506,1.019 z m 638.57044,-0.63664 c 2.18836,-1.17119 3.49721,-4.53553 3.48555,-8.95954 -0.0124,-4.67826 -0.64913,-6.1162 -2.54877,-5.75533 -1.0748,0.20418 -1.39724,1.06415 -1.68306,4.489 l -0.35355,4.23642 -1.94546,-4.33306 c -2.79406,-6.22331 -3.98108,-9.60753 -6.15537,-17.55022 -3.63933,-13.29432 -5.47626,-11.55581 -15.27683,14.45866 l -4.39544,11.66726 2.57288,0.51238 c 1.41506,0.28181 7.02758,0.79217 12.4723,1.13414 5.44472,0.34197 10.47727,0.66825 11.18339,0.72506 0.70618,0.0568 1.8961,-0.22433 2.64436,-0.62477 z m -617.08869,-2.63069 c 0.54896,-1.0695 1.38894,-3.85373 1.86662,-6.18718 1.08064,-5.27888 2.36436,-7.84543 4.15876,-8.31468 0.76283,-0.19948 3.67727,0.10854 6.47653,0.68451 4.50876,0.92769 5.21017,0.92659 6.14641,-0.01 0.93773,-0.93772 0.9175,-1.48329 -0.17945,-4.84023 -2.03181,-6.21786 -5.23713,-12.84475 -7.20761,-14.90149 -2.84244,-2.96686 -5.95926,-3.68838 -15.7586,-3.64799 -10.24011,0.0422 -15.49291,0.69652 -15.98995,1.99179 -0.50626,1.31929 5.58981,17.91803 9.62567,26.20932 3.69189,7.58463 6.30852,10.96015 8.49606,10.96015 0.77838,0 1.7974,-0.83766 2.36556,-1.94454 z m 90.13267,-6.17773 c 4.41839,-4.15823 5.77915,-6.46376 5.77915,-9.79156 0,-3.31086 -3.73805,-6.59814 -12.39031,-10.89614 -4.99734,-2.48243 -6.72606,-3.69301 -6.79786,-4.76041 -0.0789,-1.17327 -0.15393,-1.12638 -0.41591,0.26009 -0.23281,1.23212 0.2125,2.11578 1.63973,3.2538 1.66443,1.32718 2.04084,2.29648 2.50091,6.44024 0.29787,2.68286 0.55792,9.15647 0.57789,14.3858 l 0.0363,9.50787 2.65165,-2.42735 c 1.45841,-1.33505 4.34671,-4.0226 6.41844,-5.97234 z m 33.2039,6.38908 c 0.2087,-0.2087 -0.14893,-0.96331 -0.79472,-1.67691 -0.6458,-0.7136 -1.17418,-2.29534 -1.17418,-3.51499 0,-1.46872 -0.46186,-2.46471 -1.36773,-2.94953 -1.60184,-0.85727 -10.36696,-0.89471 -12.42085,-0.053 -1.31403,0.53848 -1.27321,0.63514 0.57636,1.36452 1.09481,0.43174 2.26365,0.78498 2.59739,0.78498 1.24928,0 4.95797,3.71078 4.95797,4.96076 0,0.71473 0.55685,1.45897 1.23744,1.65388 1.3997,0.40084 5.8112,0.007 6.38832,-0.56966 z m 461.87469,-1.58593 c 3.19308,-4.05938 12.14774,-26.38534 13.21123,-32.93843 0.52545,-3.23831 -0.12113,-3.45058 -11.77856,-3.86686 -10.98667,-0.39232 -14.86862,0.34779 -17.69521,3.37365 -2.09233,2.23986 -6.93968,14.19165 -7.22458,17.81304 -0.17882,2.27353 -0.12501,2.31972 2.64593,2.27197 1.55563,-0.0268 4.4675,-0.30229 6.4708,-0.61216 3.36767,-0.5209 3.72589,-0.43601 4.74886,1.12524 0.60853,0.92876 1.59467,4.00945 2.19132,6.846 0.59666,2.83653 1.41422,5.77274 1.81677,6.5249 1.06003,1.98063 3.84228,1.71429 5.61344,-0.53735 z m -127.57269,-2.63335 c 1.28901,-0.94168 1.38596,-2.14719 1.59217,-19.79899 l 0.21959,-18.79626 h -8.09621 c -11.78588,0 -11.43485,-0.43767 -11.43485,14.25707 0,13.03252 0.55867,15.35225 4.07536,16.922 1.54471,0.68951 2.40207,1.68506 2.79706,3.2479 1.11164,4.3983 7.28477,6.77054 10.84688,4.16828 z m -98.3453,-0.46188 c 4.6582,-0.4086 8.56095,-0.8344 8.67277,-0.94622 0.26974,-0.26975 -6.31755,-18.44547 -7.87245,-21.72175 -2.69605,-5.68076 -6.05275,-6.97291 -18.10861,-6.97084 -9.1967,0.002 -16.85855,1.0205 -18.28844,2.43209 -1.26802,1.25181 0.24124,5.96193 4.90184,15.29764 3.62394,7.25919 6.36879,11.02518 8.73274,11.9815 2.06736,0.83634 11.97441,0.80367 21.96215,-0.0724 z m -156.69503,-1.63342 c 6.77706,-0.68257 8.95378,-1.15729 9.64574,-2.10359 0.49149,-0.67215 1.24771,-3.67469 1.68049,-6.6723 0.71239,-4.93433 3.5886,-30.07338 3.60353,-31.49615 0.008,-0.7438 -30.31424,-0.24562 -31.99039,0.5256 -1.9467,0.8957 -1.44817,2.53259 0.91529,3.00528 l 2.15273,0.43055 -2.15273,1.30914 c -2.63628,1.60322 -2.72261,2.56249 -0.31308,3.47859 1.20033,0.45637 1.70021,1.0628 1.43843,1.74501 -0.22068,0.57506 0.0205,1.43949 0.53587,1.92095 0.77363,0.72268 0.6946,1.20338 -0.45309,2.75571 -2.14409,2.90004 -1.15514,7.28865 2.4108,10.69834 l 2.77317,2.65165 h -2.10936 c -1.16015,0 -2.29539,0.301 -2.52275,0.66888 -0.41267,0.6677 3.82037,2.14814 6.16355,2.1556 2.05479,0.007 1.3944,1.07731 -1.25537,2.03548 -3.08787,1.11659 -4.89439,3.6837 -4.28918,6.09504 0.52429,2.08894 0.78282,2.10389 13.76635,0.79622 z m -163.86362,-6.03373 c 1.62422,-1.31701 1.66893,-1.64659 1.655,-12.19759 -0.0174,-13.1871 -0.88616,-16.87517 -8.46723,-35.9463 -2.86004,-7.19481 -5.40836,-14.03607 -5.66294,-15.2028 l -0.46286,-2.12132 1.443,1.76777 c 0.79365,0.97227 3.41648,6.16288 5.82851,11.53468 8.20675,18.27714 8.50371,18.51736 22.89219,18.51736 15.72237,0 15.88414,-0.28836 9.52047,-16.97057 -1.28098,-3.35806 -1.68562,-6.12235 -1.94074,-13.25825 -0.17728,-4.95859 -0.6029,-9.01561 -0.94582,-9.01561 -0.34293,0 -0.6235,0.53179 -0.6235,1.18176 0,4.06911 -4.96474,4.71668 -17.465,2.27806 -4.20051,-0.81947 -10.23565,-1.53542 -13.41142,-1.59099 -5.15405,-0.0902 -5.9633,0.0764 -7.53566,1.55143 -4.81804,4.5198 -14.62093,29.52173 -14.62093,37.29017 0,2.01728 0.38879,3.03281 1.40376,3.66667 1.79345,1.12003 5.15816,7.78778 8.27519,16.3987 4.24775,11.7346 5.9467,13.39502 13.75402,13.4421 3.60139,0.0217 5.08337,-0.2869 6.36396,-1.32527 z m 393.91596,-0.0921 c 3.40534,-0.94575 4.79382,-3.01456 4.79382,-7.14272 0,-2.5611 -0.42852,-3.83321 -1.86717,-5.54296 -3.19736,-3.79984 -3.75405,-12.04415 -1.0989,-16.27427 1.4434,-2.2996 1.2037,-5.15072 -1.02907,-12.24032 -1.77514,-5.63651 -8.5299,-23.13457 -9.18813,-23.80165 -0.18076,-0.18319 -0.62447,0.13501 -0.98601,0.70711 -1.25824,1.99101 -8.98934,26.40271 -10.47749,33.08375 -0.80552,3.61631 0.0745,4.34958 3.51157,2.9259 1.81152,-0.75035 2.279,-0.73431 2.80418,0.0962 0.34663,0.5482 0.5559,6.14376 0.46502,12.43458 -0.15371,10.64117 -0.0623,11.5758 1.31274,13.4182 2.18103,2.9224 6.53445,3.78725 11.75944,2.33613 z m 123.27423,-0.99045 c 2.16049,-1.4156 3.32396,-3.69655 6.41494,-12.57683 2.96638,-8.52221 5.93864,-14.564 8.02036,-16.30319 0.86048,-0.71897 1.36924,-1.78622 1.17966,-2.47487 -0.18335,-0.66594 -0.54539,-2.76715 -0.80461,-4.66934 -1.13265,-8.31207 -9.55726,-29.90007 -13.10608,-33.58415 -1.55217,-1.61139 -1.93048,-1.66954 -8.40235,-1.29165 -3.72734,0.21763 -8.84526,0.87502 -11.37317,1.46087 -8.26517,1.91547 -12.51708,2.17248 -14.4955,0.87617 -0.97237,-0.63713 -1.76795,-1.76869 -1.76795,-2.5146 0,-0.74589 -0.3182,-1.55283 -0.70711,-1.79319 -0.45428,-0.28076 -0.70711,2.22023 -0.70711,6.99453 0,8.55099 -0.78689,12.88505 -3.62999,19.99332 -4.21802,10.54586 -2.72774,12.25658 10.67729,12.25658 12.9369,0 13.95064,-0.72031 19.40571,-13.78859 3.84813,-9.21864 8.1767,-18.28547 8.5509,-17.91122 0.47341,0.47335 -2.51088,9.60394 -6.31633,19.32544 -5.51733,14.09469 -6.90156,20.30905 -7.24529,32.52691 -0.32621,11.59475 0.14108,13.6563 3.31211,14.61228 2.63307,0.79379 9.06143,0.12814 10.99452,-1.13847 z m -253.18425,-4.06965 c 4.14412,-1.04358 7.04521,-4.58993 13.26065,-16.2101 l 5.48247,-10.24984 -2.78222,-11.2711 c -3.54274,-14.35205 -6.13455,-22.53248 -7.49734,-23.66349 -0.59021,-0.48984 -1.22506,-0.73868 -1.41076,-0.55297 -0.96841,0.96841 -4.6978,36.10778 -4.51415,42.53368 l 0.0638,2.23148 0.58121,-2.12132 c 0.31966,-1.16672 0.79515,-5.48712 1.05663,-9.60087 0.51701,-8.13406 0.719,-8.79957 2.83081,-9.32719 1.28384,-0.32075 1.26755,-0.36088 -0.17678,-0.43535 -1.36594,-0.0704 -1.59099,-0.47487 -1.59099,-2.85928 0,-1.5275 0.34597,-5.26471 0.76882,-8.30492 1.28924,-9.26929 3.25766,-8.43729 6.36673,2.69105 1.12641,4.03176 2.05,7.56912 2.05242,7.8608 0.002,0.29168 -0.71153,0.56205 -1.58657,0.60081 -1.5202,0.0673 -1.51294,0.0922 0.16303,0.55897 1.51193,0.42106 1.93948,1.26527 3.09783,6.1167 l 1.34382,5.62822 -5.61995,10.25304 -5.61993,10.25305 -9.85227,0.44406 c -5.41874,0.24423 -15.46573,0.48287 -22.32663,0.53033 l -12.47437,0.0863 -1.13743,-2.84274 c -1.68969,-4.22294 -1.47723,-5.38191 1.16065,-6.33127 1.32773,-0.47784 10.01378,-1.08181 20.57094,-1.43036 10.05005,-0.33181 18.4823,-0.82363 18.73833,-1.09291 0.7531,-0.79213 -34.57565,0.21916 -38.20115,1.0935 -4.48422,1.08144 -5.10504,1.95718 -4.09529,5.77684 1.70042,6.43227 7.21449,9.58653 18.36675,10.50649 7.09713,0.58544 18.98547,0.13456 22.98097,-0.87158 z m 67.8013,-2.15632 c 1.54776,-4.24132 2.55582,-10.59977 2.55582,-16.12118 0,-8.12009 -2.97629,-10.01846 -15.9099,-10.14782 -8.30247,-0.083 -11.66726,0.93624 -11.66726,3.5343 0,2.18206 2.39934,3.69618 6.76345,4.2681 6.92191,0.90713 7.9264,2.00333 11.25212,12.27942 3.20791,9.91203 5.05211,11.54075 7.00577,6.18718 z M 644.3056,515.10266 c 3.42959,-0.95254 5.82794,-3.90611 9.45403,-11.64263 3.02276,-6.44927 7.38521,-18.11078 7.38521,-19.74183 0,-1.55305 -3.61311,-2.61868 -10.9316,-3.22412 -3.9048,-0.32303 -7.65647,-0.81081 -8.33706,-1.08394 -1.45243,-0.58288 -1.59557,-1.82525 -0.35356,-3.06863 1.32484,-1.3263 1.0821,-14.97943 -0.47016,-26.44482 -0.72398,-5.3475 -1.54219,-9.72272 -1.81824,-9.72272 -0.98843,0 -3.0534,29.71246 -2.60708,37.51302 0.48662,8.50493 -0.19661,11.89731 -4.83468,24.00527 -1.41526,3.69463 -2.62895,7.9827 -2.6971,9.52903 -0.11538,2.61869 0.0458,2.87055 2.35099,3.6724 3.07003,1.06791 9.3965,1.17072 12.85925,0.20897 z M 387.117,503.46003 c 0.29915,-1.84434 0.23201,-2.45939 -0.19295,-1.76777 -0.35844,0.58336 -0.84021,2.33345 -1.07061,3.88909 -0.25752,1.73877 -0.18319,2.41981 0.19295,1.76776 0.33652,-0.58336 0.8183,-2.33345 1.07061,-3.88908 z m 78.15926,3.56135 c 0,-0.18025 -2.41372,-8.9565 -5.36382,-19.50276 -2.95011,-10.54627 -5.20975,-19.32912 -5.02143,-19.51744 0.45985,-0.45984 5.21774,11.95643 9.25237,24.14514 1.80228,5.44472 3.58998,10.37679 3.97265,10.96015 1.28339,1.95648 1.88442,-0.48866 2.31489,-9.41749 0.23245,-4.82158 1.65438,-15.92928 3.22985,-25.23074 1.54802,-9.13935 3.04058,-18.92394 3.31681,-21.74353 l 0.50223,-5.12653 h -19.55952 c -24.28723,0 -24.12872,-0.0433 -25.5455,6.97446 -0.73525,3.64192 0.29498,11.15534 1.78133,12.99113 1.15131,1.42199 2.12707,1.64671 8.71948,2.00813 5.67612,0.31119 7.89583,0.72722 9.4318,1.76777 l 2.00871,1.3608 -17.14734,0.18935 c -9.43104,0.10415 -17.14734,0.42159 -17.14734,0.70543 0,0.28384 2.44212,9.34683 5.42694,20.13997 l 5.42695,19.62389 h 17.20047 c 9.46026,0 17.20047,-0.14748 17.20047,-0.32773 z m 95.81297,-0.36134 c 6.88001,-1.59409 6.88621,-5.75615 0.0456,-30.60215 -4.24418,-15.41542 -6.4635,-18.96768 -12.48601,-19.98518 -5.02078,-0.84825 -21.22704,-2.20069 -21.46496,-1.79128 -0.39415,0.67824 -12.41602,38.54843 -12.41301,39.10232 0.002,0.29169 4.78607,0.53033 10.6322,0.53033 15.97971,0 16.14349,-0.12353 21.56086,-16.26345 1.76225,-5.25027 3.80597,-10.81873 4.5416,-12.37437 3.06778,-6.48741 1.0745,1.5078 -6.24765,25.05986 -3.92729,12.63235 -4.10024,13.60792 -2.62881,14.82909 2.24444,1.86272 13.08403,2.74047 18.46018,1.49483 z m 14.40491,-0.2622 c 2.047,-2.4665 1.36206,-11.25552 -1.03201,-13.24242 -1.61176,-1.33765 -1.15982,-2.43693 1.29956,-3.16097 2.58361,-0.76061 5.82836,-5.53445 8.37983,-12.3288 1.95903,-5.21676 3.13181,-11.94398 2.23805,-12.83774 -1.20142,-1.20141 -10.227,-2.15265 -16.09795,-1.69662 -8.08219,0.62779 -8.83982,0.89414 -8.83351,3.10551 0.0127,4.45753 7.93207,31.80617 11.34181,39.16777 1.00913,2.17869 1.55424,2.37891 2.70422,0.99327 z m -148.40165,-1.43165 c 0,-2.30112 -4.00236,-15.58722 -5.69512,-18.9053 -1.52685,-2.99287 -2.63338,-3.76211 -6.38372,-4.43786 -2.64004,-0.4757 -28.1745,0.68991 -28.79923,1.31464 -0.19646,0.19645 1.23125,2.18967 3.17269,4.42936 1.94142,2.2397 4.39025,5.37898 5.44182,6.97618 2.37147,3.60194 3.11035,3.93637 15.29439,6.92247 5.43079,1.33099 11.07279,3.04364 12.53778,3.80588 3.61425,1.8805 4.43139,1.86107 4.43139,-0.10537 z M 243.07581,483.0256 c -0.26763,-14.90372 -0.61562,-20.59768 -1.39214,-22.77917 -1.40361,-3.94314 -6.09912,-9.46586 -8.04804,-9.46586 -1.97788,0 -2.87452,-1.13768 -3.48926,-4.42723 -0.27334,-1.4627 -0.79832,-2.84569 -1.16661,-3.0733 -1.19117,-0.73619 -4.92716,1.30816 -5.59351,3.0608 -0.7886,2.07419 -0.76731,9.2102 0.0333,11.15725 0.68347,1.66217 0.89647,1.22874 2.15464,-4.3844 2.31519,-10.32898 5.81791,-3.54933 8.11045,15.6981 1.80149,15.12477 4.14692,25.99012 7.53244,34.89456 0.6669,1.75403 0.76137,1.78838 1.46423,0.53246 0.50511,-0.90256 0.6344,-7.8546 0.39451,-21.21321 z m -80.44125,-1.13233 v -21.92031 h -9.8995 -9.89949 v 21.92031 21.92031 h 9.89949 9.8995 z m 515.32412,13.96536 c 2.86612,-10.39062 3.41856,-13.39936 5.10264,-27.79049 1.50023,-12.82005 2.84961,-18.66328 4.65615,-20.16257 0.92086,-0.76426 1.22081,-0.74841 1.74265,0.092 0.6657,1.07216 2.09031,7.08882 2.09031,8.82817 0,0.56422 0.3182,1.02586 0.70711,1.02586 0.92194,0 0.93495,-11.68805 0.0149,-13.40714 -1.31198,-2.45146 -4.57783,-2.86053 -21.86397,-2.73862 l -16.68827,0.1177 16.63942,0.47684 c 19.47925,0.55822 20.75292,0.88008 20.98605,5.30319 0.14102,2.67565 0.11018,2.72164 -0.58926,0.87886 -0.51107,-1.34647 -1.24003,-1.94454 -2.37013,-1.94454 -2.88204,0 -4.22162,5.14103 -7.4621,28.63783 -1.38474,10.04078 -3.3188,19.12812 -4.99974,23.4917 -0.71656,1.86012 -0.93411,1.51113 -4.1078,-6.58931 -5.2646,-13.43727 -6.71829,-15.16221 -13.65446,-16.20235 -6.01122,-0.90144 -5.8099,-0.32094 -6.21058,-17.90866 -0.19491,-8.55561 -0.59266,-15.79393 -0.88388,-16.08516 -0.75512,-0.75512 -0.62493,26.37304 0.14245,29.68096 0.87573,3.77502 2.0092,4.67952 6.65403,5.30984 6.45593,0.87609 8.9575,4.27295 14.24218,19.3394 1.46644,4.18077 2.8894,7.6014 3.16213,7.6014 0.27273,0 1.4833,-3.57973 2.69015,-7.95495 z m 89.95928,-15.02602 v -22.27386 h -9.19239 -9.19238 v 22.27386 22.27386 h 9.19238 9.19239 z m -146.36292,16.2536 c 1.4111,-1.70028 0.39045,-6.34965 -3.49464,-15.9191 -6.25536,-15.40771 -8.75756,-18.04903 -17.01964,-17.96595 -2.52791,0.0254 -5.315,0.4359 -6.19355,0.91217 -1.97654,1.07151 -1.93575,1.27151 3.11372,15.26508 4.32514,11.98621 6.52932,16.18045 9.29093,17.67929 2.71015,1.47091 13.08893,1.4916 14.30318,0.0285 z m 9.83651,-1.6555 c 1.17837,-2.20182 2.05804,-9.49002 3.59688,-29.8009 0.8103,-10.69499 1.77041,-21.51372 2.13357,-24.04163 1.81322,-12.62142 1.44287,-12.97459 -13.98334,-13.33451 -11.26115,-0.26274 -16.41214,0.43624 -18.74669,2.54389 -2.33114,2.10457 -6.86037,20.70999 -5.93708,24.38869 0.47929,1.90964 1.00366,2.1595 7.68468,3.66166 4.16367,0.93615 8.80285,7.8052 14.30117,21.17513 2.73228,6.64394 6.45808,14.36715 7.63933,15.83559 1.02701,1.27669 2.50114,1.0862 3.31148,-0.42792 z m -274.45924,-1.41945 c 2.22513,-1.11329 5.27701,-2.42332 6.78195,-2.91119 3.87564,-1.2564 2.05528,-2.11152 -4.52345,-2.12491 -6.21631,-0.0126 -8.46585,1.09117 -8.46585,4.15406 0,3.52934 0.71349,3.63073 6.20735,0.88204 z m 29.50154,-0.0972 c 0.28457,-0.46043 -3.33923,-0.68976 -10.38809,-0.6574 -6.70597,0.0308 -10.28698,0.28094 -9.4109,0.6574 2.01527,0.86599 19.26379,0.86599 19.79899,0 z m 122.45936,-1.37417 c 4.01399,-1.82241 5.40563,-4.66349 5.38821,-11.00019 -0.0154,-5.58842 -1.80693,-15.12678 -3.88904,-20.70538 -2.16776,-5.80809 -3.10462,-6.16468 -16.19618,-6.16468 -9.91706,0 -11.25167,0.14288 -12.58224,1.34703 -0.81866,0.74086 -1.48641,1.85456 -1.48392,2.47487 0.006,1.48638 5.45926,26.66204 6.3867,29.48491 0.73278,2.23035 3.00046,4.73563 4.92247,5.43823 0.58336,0.21326 4.08354,0.40587 7.77818,0.42803 5.15367,0.0309 7.40621,-0.27238 9.67582,-1.30282 z m -154.0532,-10.46986 c 0.15487,-1.09053 0.71096,-1.59403 1.76776,-1.60065 2.63325,-0.0165 4.72379,-0.82004 4.72379,-1.8157 0,-1.48821 -2.40869,-2.41728 -6.26696,-2.41728 -5.26346,0 -7.18371,2.59367 -4.62491,6.24685 1.44542,2.06363 4.08374,1.81587 4.40032,-0.41322 z m 24.87633,1.21367 c 0.92246,-0.61681 0.89539,-0.80651 -0.20777,-1.45587 -0.86171,-0.50724 -1.12256,-1.20625 -0.8135,-2.18003 0.40755,-1.28406 0.23201,-1.38441 -1.68516,-0.96332 -1.39886,0.30723 -2.90494,0.0745 -4.34837,-0.6719 -2.55989,-1.32378 -4.96602,-0.83281 -4.96602,1.01331 0,1.69517 1.42999,2.80145 5.10412,3.9487 3.70252,1.15612 5.52796,1.23769 6.9167,0.30911 z m 1.40315,-7.06797 c -1.54847,-2.89334 -5.18954,-3.7546 -17.66661,-4.17883 l -11.66726,-0.3967 3.18198,-2.20101 c 1.75009,-1.21055 7.55721,-4.80205 12.9047,-7.9811 l 9.72272,-5.78009 v -12.3482 -12.34822 h -8.3987 c -6.24067,0 -8.60488,0.24843 -9.20111,0.96684 -1.41089,1.70003 0.75245,2.69486 4.71664,2.169 5.15014,-0.6832 5.42507,0.73036 0.56046,2.88172 -4.33725,1.91814 -4.96821,2.96267 -1.9962,3.30464 2.87545,0.33086 2.37152,2.08715 -0.88389,3.08048 l -2.82842,0.86305 2.31281,0.52953 c 1.27204,0.29125 2.45279,0.75604 2.62388,1.03286 0.75667,1.22432 -8.38354,6.38508 -11.30857,6.38508 -1.42213,0 -2.06125,0.54863 -2.85659,2.45217 -1.59132,3.80856 -1.35608,5.32601 0.82566,5.32601 1.5021,0 1.78065,-0.26609 1.48041,-1.41421 -0.43033,-1.64558 -0.46496,-1.63389 2.02955,-0.68547 l 1.91673,0.72873 -1.6404,1.74614 c -0.90223,0.96037 -2.21014,1.74613 -2.90648,1.74613 -1.77756,0 -2.73005,2.15697 -2.73005,6.18233 0,5.49597 0.20696,5.59784 13.18686,6.49086 11.22449,0.77224 14.76708,1.44943 17.56861,3.35833 1.67913,1.14414 2.19102,0.21585 1.05327,-1.91005 z m 24.72167,-12.88403 c -0.0364,-12.98165 -0.74495,-24.17653 -1.58334,-25.01492 -0.37797,-0.37797 -20.45076,1.5189 -23.6576,2.23563 -1.5358,0.34326 -1.59099,0.63453 -1.59099,8.39669 v 8.0411 l -7.42462,4.33109 c -4.08354,2.3821 -7.42462,4.63815 -7.42462,5.01343 0,0.86773 1.82989,1.22967 8.68319,1.71747 6.26914,0.44623 9.34856,1.7316 9.95709,4.15619 0.26795,1.06761 1.3915,2.09355 3.08805,2.81979 3.78041,1.61826 4.63758,1.74157 12.74313,1.83331 l 7.24784,0.082 z m 7.77686,12.23703 c 0.75613,-0.75613 1.56996,-2.58577 1.80851,-4.06586 0.90141,-5.59277 1.08553,-5.95618 3.53669,-6.98033 1.33485,-0.55774 4.50747,-1.01407 7.05026,-1.01407 h 4.62327 l -0.18114,-54.624 -0.18114,-54.62399 h -11.3137 -11.31371 l 0.0899,54.80077 c 0.088,53.63512 0.48,64.52619 2.40626,66.8472 1.13978,1.37335 1.82918,1.30594 3.47484,-0.33972 z m 234.32977,-22.49008 c 0.58926,-30.12169 0.5066,-67.86372 -0.16031,-73.20535 -0.67174,-5.38031 -2.2738,-7.00062 -7.33687,-7.42049 -5.28698,-0.43844 -9.31337,1.60539 -10.47253,5.31595 -0.93298,2.98658 -1.80106,37.55936 -1.04435,41.59301 0.63658,3.39325 2.64887,5.25583 5.6783,5.25583 4.74376,0 5.7238,3.30848 9.37322,31.64275 1.46515,11.37543 2.85106,20.68272 3.0798,20.68288 0.22874,1.4e-4 0.62598,-10.73891 0.88274,-23.86458 z M 302.6417,471.37302 c 0,-0.34141 -0.50045,-1.8185 -1.11211,-3.2824 -1.22368,-2.92868 -0.84574,-5.99634 0.73876,-5.99634 1.7851,0 4.61599,-1.60852 4.61599,-2.62281 0,-0.78545 -1.39714,-0.9394 -6.99188,-0.77038 -5.84408,0.17653 -7.21563,0.009 -8.3549,-1.01783 -1.95727,-1.76487 -5.23582,-2.24603 -6.90039,-1.01271 -1.18032,0.87453 -1.24659,1.19787 -0.44375,2.16523 0.51908,0.62545 1.99409,1.13718 3.27781,1.13718 1.41039,0 3.12503,0.65701 4.33284,1.66022 1.09934,0.91312 2.93713,1.88966 4.08398,2.17009 l 2.08518,0.50987 -2.26196,1.77025 c -1.24408,0.97363 -2.26196,2.08093 -2.26196,2.46067 0,0.37974 1.35234,1.30428 3.00521,2.05454 3.17074,1.43926 6.18718,1.81681 6.18718,0.77442 z m -12.4322,-4.7582 c 1.60239,-0.61489 1.3792,-2.84352 -0.41029,-4.09694 -2.2806,-1.59739 -11.86225,-4.94625 -12.45353,-4.3526 -0.28236,0.28349 0.67987,1.47345 2.13827,2.64436 1.45841,1.1709 2.65165,2.71864 2.65165,3.43941 0,0.72077 0.55685,1.63483 1.23744,2.03123 1.3849,0.80663 5.12879,0.98984 6.83646,0.33454 z m 229.29117,-8.10106 c 2.72393,-1.02917 5.72171,-3.992 7.45965,-7.3727 3.21547,-6.25478 0.67702,-17.7214 -4.70356,-21.2469 -2.35787,-1.54493 -11.71959,-2.16279 -16.67333,-1.1004 -6.599,1.41523 -7.36452,3.1662 -5.26977,12.05355 1.36244,5.78047 3.71808,8.94478 7.39611,9.93517 2.86385,0.77116 4.23554,2.34549 4.23554,4.86125 0,1.5703 2.46639,3.62212 4.35394,3.62212 0.66596,0 2.10661,-0.33844 3.20142,-0.75209 z m 48.48175,-2.07633 c 0.97392,-1.94958 1.23657,-4.30507 1.23744,-11.09751 10e-4,-7.92538 -0.12755,-8.77164 -1.58989,-10.46555 -1.86975,-2.16582 -7.01909,-2.97932 -13.63019,-2.15332 -5.90878,0.73825 -7.40624,2.46021 -7.40624,8.51656 0,5.59593 1.34133,8.63622 4.07873,9.24489 4.04709,0.89989 4.54185,1.20424 6.61695,4.07043 2.57384,3.55508 4.51569,4.75392 7.33554,4.52876 1.63771,-0.13078 2.40318,-0.73361 3.35766,-2.64426 z m -266.71982,0.33539 c 1.98096,-1.02439 2.81832,-3.335 1.50316,-4.14781 -0.32067,-0.19819 -2.42337,0.0675 -4.67266,0.59032 -6.79347,1.5792 -8.17295,4.63631 -2.09206,4.63631 1.74644,0 4.11415,-0.48547 5.26156,-1.07882 z m -139.62274,-2.27994 c -2.22655,-7.19595 -7.49058,-36.08113 -7.49058,-41.10294 0,-2.40272 -0.97668,-2.94649 -1.74211,-0.96991 -0.26356,0.68059 -1.27193,5.53311 -2.24083,10.78338 -0.9689,5.25026 -2.6965,13.75972 -3.8391,18.90991 -2.41577,10.88888 -2.42779,11.04434 -0.96629,12.50583 0.87541,0.87542 2.76082,1.11117 8.88649,1.11117 7.07952,0 7.74105,-0.11073 7.39242,-1.23744 z m 603.05009,-0.15927 c 2.2889,-0.87025 2.36534,-3.39695 0.37498,-12.39187 -0.7745,-3.50018 -2.20144,-10.97784 -3.17088,-16.61701 -2.10067,-12.2196 -3.00726,-15.73946 -3.91009,-15.18148 -0.36996,0.22864 -0.67599,1.74926 -0.6801,3.37917 -0.0104,4.12189 -2.328,18.69766 -4.90194,30.82915 -1.18893,5.6034 -2.16163,10.29683 -2.16163,10.42983 0,0.57419 12.80535,0.17736 14.44966,-0.44779 z m -410.21246,-4.81636 c 2.12535,-2.34848 3.31854,-6.40587 3.31854,-11.28456 0,-6.15782 -1.11743,-7.95822 -4.93934,-7.95822 -4.53852,0 -5.23109,1.29388 -4.71542,8.80953 0.60263,8.78297 1.49141,11.69657 3.568,11.69657 0.89371,0 2.13941,-0.56849 2.76822,-1.26332 z m 132.54146,0.17677 c 4.76891,-3.34027 3.39635,-19.24121 -3.5074,-40.63275 -2.96719,-9.19394 -5.77968,-15.55635 -6.87667,-15.55635 -1.96726,0 -7.11598,25.35933 -7.11598,35.04881 0,3.86093 1.60045,7.95701 3.32683,8.51448 5.28435,1.70638 5.95743,2.50655 6.89902,8.20164 0.26875,1.62552 1.13099,3.16979 2.27017,4.06587 2.20033,1.73078 2.96625,1.78562 5.00403,0.3583 z m 55.75464,-0.68749 c 0.76039,-1.16051 1.352,-4.27845 1.71064,-9.01561 0.30153,-3.98286 0.75789,-7.75532 1.01412,-8.38323 0.82737,-2.02749 3.83294,-2.74743 11.4699,-2.74743 h 7.47974 l -0.43613,-2.18062 c -1.02099,-5.10498 -5.54919,-18.34183 -7.02565,-20.53739 -1.21464,-1.80624 -2.4545,-2.60763 -5.11413,-3.30557 -4.21832,-1.10697 -17.60874,-0.7967 -19.94266,0.46208 -2.50663,1.35193 -2.73286,4.03873 -0.90198,10.71226 3.74724,13.65861 4.24449,15.98562 5.22367,24.44554 1.33043,11.49479 3.55053,15.08574 6.52248,10.54997 z m -281.6184,-0.30231 c 1.48923,-0.34563 2.90081,-0.82154 3.13686,-1.0576 1.02049,-1.02049 -1.11741,-4.37165 -3.73456,-5.8539 l -2.81707,-1.59549 3.67058,-0.0116 c 3.94603,-0.0125 5.33232,-0.98648 3.40745,-2.39398 -1.08944,-0.79661 -1.09572,-0.95671 -0.0708,-1.8073 0.88873,-0.73758 1.12451,-2.39429 1.12451,-7.90145 0,-6.65245 0.0801,-7.02067 1.76777,-8.12647 0.97227,-0.63705 1.76776,-1.61478 1.76776,-2.17273 0,-1.96374 -2.03726,-4.92161 -4.01283,-5.82618 -4.48081,-2.05165 -34.31936,-1.55184 -38.42154,0.64358 -1.80153,0.96415 -1.77383,1.67187 0.415,10.60234 2.02695,8.26996 2.94242,10.0842 6.03855,11.96707 l 2.12609,1.29296 -1.85555,0.46572 c -1.51482,0.38019 -1.81491,0.81825 -1.63419,2.38559 0.15481,1.34258 0.62831,1.91988 1.57471,1.91988 2.08382,0 2.16464,1.67502 0.11834,2.45302 -1.29199,0.49122 -1.82524,1.21159 -1.82524,2.46576 0,1.78693 0.44233,2.03196 4.94975,2.74192 3.56286,0.56118 21.64639,0.41881 24.27442,-0.19111 z m 273.40254,-6.05538 c 0.0193,-12.26413 -4.96473,-31.46625 -8.16719,-31.46625 -1.30341,0 -2.82052,3.41355 -3.47902,7.82792 -0.41812,2.80287 -0.2501,3.50743 1.26607,5.3093 2.2559,2.68098 3.60871,5.97924 5.88947,14.35902 2.58183,9.48595 3.01571,10.5342 3.82833,9.24936 0.36062,-0.57019 0.65867,-2.94589 0.66234,-5.27935 z m 65.341,-9.21479 c 1.34603,-4.1531 4.928,-8.81643 6.77203,-8.81643 0.70642,0 2.03126,-0.60477 2.9441,-1.34394 1.42593,-1.15466 1.64625,-1.92864 1.56426,-5.49532 -0.11387,-4.95325 -2.68931,-13.00203 -6.58467,-20.57844 -4.41164,-8.58056 -5.86083,-9.80676 -6.66518,-5.63954 -0.64776,3.35596 -1.4089,44.04144 -0.85111,45.495 0.64237,1.67402 1.43358,0.6582 2.82057,-3.62133 z m -372.42288,0.55274 c -0.22522,-1.84732 -0.80185,-5.10885 -1.28139,-7.24785 l -0.87187,-3.88909 -0.90757,4.24264 c -1.22131,5.7093 -1.18269,7.431 0.20098,8.95994 2.21698,2.44974 3.3138,1.65753 2.85985,-2.06564 z m 236.57454,1.94816 c 2.12679,-1.67293 3.06392,-7.32537 2.26913,-13.68663 -0.75159,-6.01549 -1.28146,-6.42866 -8.60606,-6.71077 -5.32456,-0.20508 -6.51169,-0.0402 -7.91944,1.0997 -3.37302,2.7313 -3.61495,15.81752 -0.35272,19.07975 1.4255,1.4255 2.32597,1.62854 7.22218,1.62854 4.51815,0 5.93842,-0.27121 7.38691,-1.41059 z m 226.61616,0.14828 c 1.30362,-0.74462 1.58639,-1.51095 1.56554,-4.24264 -0.0423,-5.54694 -1.76923,-16.93753 -2.74633,-18.11487 -1.6305,-1.96462 -5.74929,-2.51347 -22.49902,-2.99807 l -16.4485,-0.47589 v 13.59748 13.59749 l 19.26866,-0.22737 c 14.04093,-0.16568 19.7003,-0.47392 20.85965,-1.13613 z M 386.0803,421.79612 v -6.35703 l -19.62221,0.44486 c -10.79222,0.24467 -19.72613,0.53108 -19.85314,0.63648 -0.12701,0.10538 -0.006,2.76587 0.26808,5.91217 l 0.49901,5.72055 h 19.35413 19.35413 z m 128.69343,-2.06203 c 0,-1.61844 -7.92795,-27.28621 -9.19487,-29.76957 -2.09314,-4.1029 -4.28764,-4.94558 -12.8671,-4.94093 -7.89651,0.004 -12.43124,0.89062 -13.06976,2.55459 -0.22293,0.58095 0.78054,4.77726 2.22993,9.32514 5.47207,17.17012 8.2025,21.74339 13.60677,22.79026 3.91654,0.75868 19.29503,0.79097 19.29503,0.0405 z M 389.72295,406.93995 c 3.15197,-9.06359 3.98071,-13.89289 2.618,-15.2556 -1.5611,-1.5611 -10.63553,-2.47937 -24.99898,-2.52971 -13.20835,-0.0463 -17.77813,0.50034 -20.4372,2.4447 -1.20647,0.88219 -1.26371,1.73468 -0.78297,11.66119 l 0.51865,10.70942 8.93655,0.22874 c 4.9151,0.12581 14.02771,0.2146 20.25025,0.19731 l 11.31371,-0.0314 z m -159.32996,2.28082 c 2.65797,-1.21873 4.74369,-3.92681 3.97825,-5.16532 -0.33748,-0.54606 -1.69732,-0.68476 -4.01828,-0.40988 -6.2576,0.74112 -10.24629,4.38074 -7.22333,6.59117 1.36219,0.99607 3.53941,0.69153 7.26336,-1.01597 z m 234.92976,1.22984 c 1.99124,-1.06568 1.7644,-5.15002 -1.11787,-20.12767 -1.34713,-7.00036 -3.13905,-16.38131 -3.98204,-20.84655 -1.09161,-5.78216 -1.69359,-7.71541 -2.0917,-6.71752 -0.30745,0.77061 -2.65986,11.42436 -5.22757,23.67498 -2.56771,12.25063 -4.8332,22.83071 -5.03443,23.5113 -0.33366,1.12857 0.35789,1.23744 7.86001,1.23744 4.52423,0 8.84135,-0.32939 9.5936,-0.73198 z m -197.37668,-2.71499 c 0.39021,-0.72911 0.91056,-2.58321 1.15634,-4.12022 0.40164,-2.51174 0.22711,-2.97946 -1.7246,-4.62172 -1.19432,-1.00495 -3.78742,-2.17374 -5.76247,-2.59731 -6.59616,-1.41463 -14.83507,-0.68491 -14.83507,1.31394 0,0.82192 5.87363,2.5792 10.96015,3.27908 5.36577,0.73829 7.05559,1.50921 6.02639,2.74933 -0.86675,1.04436 -0.59557,1.92232 1.26182,4.08511 1.35826,1.58159 2.03474,1.56113 2.91744,-0.0882 z m 246.82766,-30.49415 v -31.81981 l -4.77297,0.001 c -6.41087,10e-4 -9.4888,1.52678 -10.38259,5.14521 -0.89055,3.60531 0.17613,6.5813 2.27762,6.35444 1.77676,-0.1918 2.5132,1.71176 2.14667,5.54875 -0.1795,1.879 -0.58037,2.44577 -1.85797,2.62689 -2.84867,0.40384 -3.7728,5.48904 -2.16086,11.89063 0.54774,2.17528 1.32514,3.4383 2.42465,3.93927 2.41096,1.09851 5.53471,7.59963 8.42147,17.52672 3.17027,10.90204 3.07199,10.6066 3.52824,10.6066 0.20666,0 0.37574,-14.31891 0.37574,-31.8198 z m -253.31925,30.52872 c 0.97554,-0.61939 -1.67633,-3.50845 -4.60185,-5.01345 -4.66537,-2.40004 -16.92753,-1.39376 -20.50406,1.68264 -1.63214,1.4039 -1.76455,1.79073 -0.94923,2.77313 0.80529,0.97032 2.76512,1.14003 13.05849,1.13083 6.66106,-0.006 12.50955,-0.26387 12.99665,-0.57315 z m -22.09884,-6.86252 c 7.95703,-2.07182 7.98141,-4.97688 0.0408,-4.8645 -5.64146,0.0798 -11.22694,2.56945 -11.59421,5.1679 -0.23371,1.65344 -0.14551,1.68458 3.53553,1.2485 2.07637,-0.24598 5.6844,-0.94434 8.01785,-1.5519 z m -4.90689,-5.72809 c 1.20234,-0.7878 3.60552,-1.20269 7.57652,-1.30802 6.17641,-0.16384 11.82606,-1.88936 11.82606,-3.61193 0,-1.37391 -2.82788,-1.91427 -8.22093,-1.57086 -3.42094,0.21783 -4.82635,0.61286 -5.32025,1.49543 -0.41494,0.74144 -1.5427,1.1994 -2.95362,1.1994 -2.80112,0 -5.42551,1.72958 -5.42551,3.57563 0,1.67105 0.2679,1.6945 2.51773,0.22035 z m 163.16202,-6.72223 c -0.70259,-1.22053 -2.22165,-2.80239 -3.37571,-3.51526 -3.90792,-2.41394 -10.98319,-2.57935 -10.98319,-0.25676 0,0.9421 7.8905,3.85684 10.50432,3.88027 0.63962,0.006 1.95844,0.45183 2.93071,0.99133 0.97227,0.5395 1.86531,1.01211 1.98453,1.05023 0.11921,0.0381 -0.35809,-0.92928 -1.06066,-2.14981 z m -155.04828,-1.6828 c 2.9789,-1.54045 3.93773,-6.75233 1.33446,-7.25368 -1.51818,-0.29237 -7.72329,5.30999 -7.72329,6.97308 0,1.70812 3.34427,1.855 6.38883,0.2806 z m 109.93024,0.0766 c 2.72236,-0.54768 9.56362,-1.20328 15.20279,-1.4569 11.32604,-0.50937 12.72793,-0.74226 12.72793,-2.11436 0,-1.57182 -1.77289,-1.79518 -14.37675,-1.8113 l -12.13976,-0.0155 3.05907,-1.38823 c 3.50136,-1.58894 3.87989,-3.73363 0.72371,-4.10037 -4.63931,-0.53909 -12.62161,5.65046 -12.62161,9.7869 0,2.46754 0.36045,2.52093 7.42462,1.09979 z m -95.47225,-0.39652 c 0.60193,-0.97394 -1.45406,-4.67958 -3.32244,-5.98825 -4.38755,-3.07315 -9.26551,1.49414 -5.74752,5.38148 0.85256,0.94207 2.18495,1.29311 4.90801,1.29311 2.05578,0 3.92865,-0.30885 4.16195,-0.68634 z M 271.322,383.4369 c -0.16913,-0.87958 -0.31394,-0.32645 -0.32179,1.22919 -0.008,1.55563 0.13054,2.27529 0.30753,1.59923 0.17698,-0.67606 0.1834,-1.94885 0.0143,-2.82842 z m 123.24358,-2.22957 c 0,-3.55922 -28.06704,-7.40947 -32.16564,-4.4125 -1.27542,0.93261 -1.26528,0.99861 0.28063,1.82595 0.88214,0.47211 5.63291,1.14868 10.55726,1.50348 4.92437,0.35481 10.38527,0.93016 12.13536,1.27856 5.14723,1.02467 9.19239,0.93865 9.19239,-0.19549 z M 271.99731,378.4789 c -0.19616,-0.48613 -0.35666,-0.0884 -0.35666,0.88389 0,0.97227 0.1605,1.37002 0.35666,0.88388 0.19615,-0.48614 0.19615,-1.28163 0,-1.76777 z m -19.63457,-1.50136 c 0.99117,-1.19429 0.34254,-3.07833 -1.37654,-3.99836 -4.33458,-2.3198 -11.36997,1.78335 -7.21114,4.20565 1.83987,1.07162 7.64252,0.93156 8.58768,-0.20729 z m 117.07104,-2.57849 c 8.36099,-0.81288 10.35276,-1.97713 7.45413,-4.35717 -1.59541,-1.30998 -2.45717,-1.41756 -8.83883,-1.10354 -5.28339,0.25999 -8.41183,0.83518 -12.37437,2.27511 -8.61503,3.13059 -8.68084,3.91008 -0.3283,3.88845 3.8752,-0.01 10.21451,-0.32631 14.08737,-0.70285 z m 267.66349,-5.32277 c 3.69138,-0.59865 7.4302,-1.55929 8.30851,-2.13479 2.09409,-1.37209 2.07596,-3.92598 -0.11068,-15.59172 -1.63887,-8.74336 -2.92642,-18.03784 -4.76387,-34.38916 -0.46981,-4.18077 -1.0641,-7.60139 -1.32065,-7.60139 -0.25656,0 -0.84278,3.10243 -1.30272,6.89429 -0.45995,3.79186 -2.57924,17.30499 -4.70954,30.02917 -2.13031,12.7242 -3.87329,23.30428 -3.87329,23.5113 0,0.52564 0.24487,0.50303 7.77224,-0.7177 z m -252.09956,-1.69883 c 0.85818,-1.38857 -2.98408,-2.3669 -10.61891,-2.70382 -4.88126,-0.21541 -8.39503,-0.0638 -9.21977,0.3977 -1.24326,0.69577 -1.21476,0.77504 0.42517,1.18243 5.91955,1.47056 18.7405,2.21265 19.41351,1.12369 z M 273.86377,359.5638 c 0.28776,-4.38185 0.20306,-5.53142 -0.31261,-4.24264 -1.01218,2.52969 -1.68311,11.85569 -0.78849,10.96015 0.38851,-0.38891 0.884,-3.41179 1.1011,-6.71751 z m 93.78965,2.297 c 3.32841,-1.69151 3.46257,-2.8289 0.48065,-4.07483 -3.19785,-1.33614 -7.50961,-1.39554 -7.50961,-0.10344 0,0.52093 -0.7955,1.30961 -1.76777,1.75261 -1.87562,0.85459 -2.35858,2.60084 -0.88388,3.19589 2.01309,0.8123 7.41185,0.38275 9.68061,-0.77023 z m 7.28995,-10.11236 c 1.45841,-0.40502 2.65165,-1.04751 2.65165,-1.42777 0,-1.76645 -8.21017,-2.6948 -12.72421,-1.43876 -2.11536,0.5886 -2.72899,2.64887 -0.92796,3.11562 2.40259,0.62264 8.34617,0.48806 11.00052,-0.24909 z m 54.97743,-1.90736 c -7e-5,-0.29168 -0.80332,-5.89828 -1.78501,-12.4591 -2.25849,-15.0939 -4.07398,-30.53289 -6.3302,-53.83216 -2.03012,-20.9645 -2.39553,-23.68808 -3.17806,-23.68808 -1.03038,0 -1.42625,2.98273 -4.64547,35.00179 -1.75956,17.50089 -3.8369,36.22573 -4.61632,41.61076 -0.77941,5.38502 -1.23932,10.35114 -1.02201,11.03582 0.21731,0.68467 1.10405,1.58702 1.97053,2.00522 1.77079,0.85465 19.60673,1.15098 19.60654,0.32575 z m 82.02451,-8.86539 c 1.18625,-0.59694 1.83588,-1.58209 1.97484,-2.99477 0.21313,-2.16678 -6.63776,-43.41982 -7.32483,-44.10689 -0.91452,-0.91452 -1.60539,2.12632 -2.68979,11.83898 -0.6364,5.70005 -1.85489,15.57643 -2.70775,21.94752 l -1.55066,11.58381 1.63123,1.32089 c 1.9277,1.56095 7.92234,1.79163 10.66696,0.41046 z m -259.11855,-5.78436 c 1.21457,-2.90688 1.2818,-4.5574 0.29172,-7.1615 l -0.73286,-1.92756 -2.44912,2.37378 c -2.82459,2.73771 -2.97153,3.70577 -1.04266,6.86934 1.78732,2.93143 2.65796,2.89733 3.93292,-0.15406 z m 22.23778,-16.19959 c 0,-5.02186 -0.27899,-7.56126 -0.88389,-8.04523 -0.48613,-0.38895 -2.63397,-0.8787 -4.77297,-1.08832 -2.139,-0.20963 -4.60503,-0.60387 -5.48007,-0.87608 -2.39001,-0.74351 -2.08153,1.76388 0.52414,4.26027 1.16332,1.11453 3.74902,4.51514 5.746,7.55691 1.99698,3.04177 3.90895,5.53049 4.24883,5.53049 0.33987,0 0.61796,-3.30212 0.61796,-7.33804 z m 59.04341,-11.04959 c 15.16903,-0.81379 22.27387,-1.83801 22.27387,-3.21098 0,-1.6058 -4.56724,-2.07095 -20.15255,-2.05242 -15.90068,0.0189 -22.51534,0.58484 -23.87738,2.04291 -0.63266,0.67727 -1.37764,0.72871 -2.89466,0.19988 -2.72832,-0.9511 -47.63886,-0.27667 -48.64606,0.73053 -2.39505,2.39505 44.2022,3.85093 73.29678,2.29008 z m -63.5556,-6.74363 c 0.94811,-1.447 1.02129,-2.13904 0.37597,-3.55538 -1.01663,-2.23126 -2.5584,-2.82459 -4.74771,-1.82707 -1.32218,0.60243 -1.72267,1.33092 -1.72267,3.13352 0,1.29173 0.38183,2.73045 0.84852,3.19714 1.43511,1.4351 3.98644,0.97394 5.24589,-0.94821 z m 32.19578,1.07187 c 4.60174,-1.27816 4.44621,-5.12031 -0.25856,-6.38717 -4.23417,-1.14014 -26.84629,-0.61595 -28.37881,0.65787 -1.57009,1.30507 -1.47635,1.967 0.56809,4.01143 2.37546,2.37547 7.00186,2.39026 10.47475,0.0335 2.3883,-1.62073 2.52509,-1.63773 2.86041,-0.35544 0.1937,0.74068 1.09813,1.64557 2.00985,2.01087 2.23674,0.89618 9.54218,0.9128 12.72427,0.029 z m 31.6227,-1.34805 c 4.37944,-0.84592 5.41718,-2.79586 3.0462,-5.72389 -1.22902,-1.51779 -1.76384,-1.59042 -11.84924,-1.60926 -11.8689,-0.0222 -13.7337,0.47852 -13.7337,3.68751 0,3.52856 1.57041,4.04278 12.72792,4.1676 3.69463,0.0413 8.1086,-0.19355 9.80882,-0.52196 z m 11.40438,-0.75551 c 0.77782,-0.77782 1.41422,-2.05061 1.41422,-2.82843 0,-1.37903 -2.28015,-4.24264 -3.3782,-4.24264 -0.30238,0 -1.25697,0.49534 -2.12132,1.10075 -1.87855,1.31579 -2.07157,4.24578 -0.40129,6.09142 1.50916,1.6676 2.73086,1.63463 4.48659,-0.1211 z m -39.59797,-26.73188 v -20.36793 l -8.66206,0.25117 c -13.92528,0.40377 -23.04918,1.36002 -24.96717,2.61673 -1.55425,1.01838 -1.72611,1.61717 -1.72611,6.01393 0,3.35233 0.32568,5.20863 1.03899,5.92194 0.78268,0.78268 1.08795,3.28091 1.23744,10.12678 l 0.19844,9.08778 h 2.12132 c 1.71747,0 2.35669,-0.47116 3.35766,-2.47487 0.67998,-1.36118 1.23683,-3.49024 1.23744,-4.73124 0.002,-4.17901 1.24802,-3.07062 1.74289,1.55042 0.26977,2.51909 0.74035,4.73457 1.04573,4.92331 0.74585,0.46096 1.44143,-5.72182 1.44897,-12.87942 0.004,-3.84559 -0.26434,-5.83363 -0.78754,-5.83363 -0.5547,0 -0.53331,-0.31375 0.0711,-1.04195 1.05589,-1.27227 5.01426,-2.09066 7.02512,-1.45244 2.12434,0.67424 1.8585,2.03667 -0.29208,1.49691 -2.65142,-0.66546 -2.30802,1.62351 0.39673,2.64443 l 2.16451,0.81701 -0.21996,7.63257 c -0.25041,8.68926 -0.0952,8.96677 5.02442,8.98452 5.69569,0.0197 2.66251,0.58675 -7.3657,1.37691 -18.96116,1.494 -26.87777,2.82288 -25.39421,4.26264 1.07971,1.04784 4.16279,1.22623 23.09612,1.3364 l 18.208,0.10595 z m 35.70889,18.27792 c 1.32871,-0.54154 1.30734,-0.60264 -0.35356,-1.01074 -2.96074,-0.7275 -16.97104,-1.84779 -23.11601,-1.84842 -5.67632,-5.8e-4 -8.30309,0.95483 -4.94348,1.79804 5.27659,1.32434 25.87934,2.09377 28.41305,1.06112 z m -5.83223,-4.09719 c 0.60746,-0.68059 1.43427,-2.51023 1.83736,-4.06586 1.06644,-4.11567 2.2271,-15.68667 2.2271,-22.20267 v -5.64139 l -3.35876,-0.53422 c -1.84731,-0.29381 -5.10517,-0.55196 -7.23967,-0.57366 -3.82203,-0.0388 -3.89319,-0.002 -4.68899,2.43543 -0.98478,3.0161 -1.91683,2.96204 -2.39025,-0.13863 -0.31456,-2.06018 -0.66556,-2.37075 -3.18198,-2.8155 -1.55563,-0.27495 -4.81716,-0.51823 -7.24784,-0.54065 l -4.41942,-0.0408 0.0104,14.67247 c 0.0119,16.79018 0.31447,18.08352 4.309,18.42052 3.61762,0.30521 4.31305,-0.96769 4.93825,-9.03884 0.55447,-7.15817 1.15041,-9.07725 3.68187,-11.85656 2.32975,-2.55785 8.148,-1.80767 7.10291,0.91582 -0.19423,0.50615 0.32789,1.28475 1.16027,1.73022 1.42025,0.7601 1.48329,1.15523 1.02405,6.4198 -0.56591,6.4875 0.49213,11.4592 2.77965,13.06144 1.86893,1.30905 2.11613,1.29424 3.45603,-0.20697 z m -72.6812,-32.58913 c 3.89589,-0.93677 5.13973,-1.56652 5.95183,-3.01339 1.57819,-2.81173 0.64774,-4.17223 -2.85338,-4.17223 -3.55512,0 -8.52848,2.25232 -10.49575,4.75329 -3.09859,3.93924 -1.31238,4.52657 7.3973,2.43233 z m 91.5949,-0.40526 c 0,-1.27078 -3.90876,-4.58529 -6.87158,-5.82686 -2.97643,-1.24728 -6.50478,-1.22204 -6.99292,0.05 -0.56276,1.46652 1.57152,4.34187 4.17614,5.6262 2.93859,1.449 9.68836,1.55395 9.68836,0.15063 z m -68.2358,-2.63385 c 11.00257,-0.87003 38.99461,-0.37303 46.20604,0.82039 6.77135,1.1206 8.801,-0.21735 6.12514,-4.03768 -1.89787,-2.70959 -8.84988,-3.38368 -35.00707,-3.3944 -25.93739,-0.0106 -27.55354,0.1987 -30.736,3.98085 -2.67973,3.18468 -2.40243,4.43145 0.86074,3.86993 1.45841,-0.25096 7.10643,-0.80854 12.55115,-1.23909 z m -15.9099,-6.53755 c 4.08354,-0.57324 10.9248,-1.40502 15.20279,-1.84837 9.2508,-0.95873 12.1276,-1.75644 13.13716,-3.64281 0.5747,-1.07385 0.47461,-1.82825 -0.42465,-3.2007 -1.12422,-1.71577 -1.38608,-1.77498 -5.88389,-1.33021 -8.27001,0.81778 -18.02924,2.62863 -21.84361,4.05314 -4.93549,1.8432 -13.17582,8.67477 -8.93352,7.40625 0.7266,-0.21726 4.66217,-0.86404 8.74572,-1.4373 z m 76.95678,1.0474 c -0.61879,-1.67108 -7.69548,-6.59036 -10.8423,-7.5369 -4.4657,-1.34325 -19.84275,-2.57511 -28.63782,-2.29418 l -6.71752,0.21456 -0.22371,1.9442 c -0.35124,3.05253 0.97037,3.35053 22.85113,5.15259 7.38926,0.60856 15.34421,1.52629 17.67767,2.03938 5.43478,1.19506 6.17969,1.25578 5.89255,0.48035 z m -42.01286,-12.00686 c 21.28201,-0.45595 23.49497,-0.83668 18.84366,-3.24197 -5.63282,-2.91284 -24.00325,-3.99643 -36.46347,-2.15082 -13.08445,1.93808 -17.32411,3.35283 -17.32411,5.78094 0,1.01923 0.80833,1.08599 7.24784,0.59856 3.98632,-0.30174 16.44955,-0.74576 27.69608,-0.98671 z m -16.35712,-7.12414 c 2.22181,-0.46125 4.55575,-1.35471 5.18651,-1.98548 1.05772,-1.05772 1.01654,-1.25248 -0.52986,-2.5062 -3.44929,-2.79647 -15.31218,-0.32269 -17.08224,3.56217 -0.5857,1.28545 -0.56391,1.83844 0.0883,2.24154 0.92272,0.57028 5.73586,0.0584 12.33727,-1.31203 z m 43.28988,0.66782 c 0.24301,-0.39321 -0.46687,-1.62365 -1.57753,-2.73431 -2.17646,-2.17646 -6.3422,-3.03597 -20.34762,-4.19827 l -6.36396,-0.52815 10.10008,-0.49622 c 5.55504,-0.27293 10.75216,-0.84521 11.54914,-1.27175 1.38279,-0.74004 1.39274,-0.83777 0.21746,-2.13644 -2.26714,-2.50516 -6.32007,-3.09813 -21.15958,-3.09578 -14.71058,0.002 -20.84461,0.93445 -22.96532,3.48973 -1.27984,1.54212 0.99996,2.2082 9.88385,2.88773 4.08354,0.31235 6.90043,0.68672 6.25975,0.83194 -1.53756,0.3485 -2.09018,2.64647 -0.9962,4.14258 0.70961,0.97045 2.82828,1.30755 11.41568,1.81637 5.79941,0.34363 12.13537,0.89846 14.07991,1.23297 5.03726,0.86653 9.38944,0.89272 9.90434,0.0596 z m -10.75351,-17.28986 c 2.28249,-1.00103 0.93852,-2.81043 -3.40314,-4.58169 -5.72494,-2.33558 -13.78488,-2.38312 -19.5991,-0.1156 -5.84569,2.2798 -6.1861,3.79272 -1.13961,5.06503 2.84686,0.71775 22.34397,0.42075 24.14185,-0.36774 z m -20.8975,-7.4531 c 11.38803,-1.47923 13.06593,-6.38427 2.17095,-6.34638 -4.83021,0.0168 -9.20298,1.57878 -11.42947,4.08269 -2.62795,2.9554 -0.35156,3.51197 9.25852,2.26369 z m 12.11234,-8.21807 c 3.13606,-0.62721 3.08546,-3.25961 -0.0884,-4.59879 -3.04244,-1.28374 -10.82118,-1.11577 -14.15208,0.30559 -2.93575,1.25274 -4.10544,3.11506 -2.56797,4.08857 1.13108,0.7162 13.49783,0.86675 16.80843,0.20463 z" + id="path402" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 645.71306,559.60371 c -0.419,-1.32196 -1.28113,-4.47186 -1.91585,-6.99976 -2.14298,-8.53497 -4.43995,-11.31371 -9.35217,-11.31371 -4.11702,0 -4.74215,-1.21114 -5.00179,-9.69056 -0.20892,-6.82294 -0.0777,-7.88051 1.16912,-9.42023 1.31996,-1.63009 1.90295,-1.75026 9.69038,-1.99747 l 8.28593,-0.26303 -0.51722,20.05481 c -0.28448,11.03014 -0.76008,20.50002 -1.0569,21.04416 -0.38269,0.70155 -0.76128,0.29017 -1.3015,-1.41421 z" + id="path403" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 619.21281,562.52759 c -3.37647,-0.65368 -3.98423,-1.27309 -4.79654,-4.88844 -0.78764,-3.5055 0.17009,-8.50706 1.8665,-9.74751 1.66608,-1.21827 8.21711,-1.914 13.15878,-1.3975 7.06371,0.73831 9.2471,2.43749 11.1821,8.70228 0.76121,2.46452 1.20345,4.9515 0.98276,5.52662 -0.2207,0.57512 -1.56285,1.36831 -2.98256,1.76265 -2.90836,0.80782 -15.31654,0.8346 -19.41104,0.0419 z" + id="path404" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 750.24029,480.83261 v -21.56676 h 8.48528 8.48528 v 21.56676 21.56676 h -8.48528 -8.48528 z" + id="path405" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 752.69647,446.71471 c 2.55448,-12.1509 3.99749,-20.50145 4.91821,-28.46105 l 0.85883,-7.42462 1.25091,7.07107 c 0.688,3.88908 2.3357,12.57508 3.66157,19.30221 1.32586,6.72713 2.41065,13.00034 2.41065,13.94048 0,2.46772 -1.93819,3.17331 -8.71683,3.17331 h -5.98138 z" + id="path406" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 675.0927,634.80511 c -0.66025,-1.48189 -0.86639,-15.34752 -0.86639,-58.27763 0,-30.98321 0.1591,-56.48716 0.35356,-56.67546 0.19445,-0.1883 2.74004,0.0867 5.65685,0.61123 11.85329,2.13137 18.58424,0.45186 14.17629,-3.53729 -0.91588,-0.82886 -2.99692,-1.3731 -6.18718,-1.6181 -7.69335,-0.59081 -9.88602,-2.409 -9.28176,-7.69653 0.41304,-3.61427 3.5052,-4.50248 15.679,-4.50376 l 10.49727,-0.001 -0.29313,12.9047 c -0.16121,7.09759 -0.6214,13.68841 -1.02263,14.64627 l -0.72951,1.74157 -0.97102,-1.74157 c -0.67886,-1.21758 -1.04857,-5.25189 -1.22879,-13.40883 -0.14177,-6.417 -0.49766,-11.91944 -0.79085,-12.22765 -0.5101,-0.53623 -1.59752,5.79727 -2.94923,17.1774 -0.80622,6.7875 0.0983,13.54256 3.21792,24.03051 1.32848,4.46634 2.34037,8.19566 2.24864,8.28739 -0.0917,0.0917 -3.49084,-0.034 -7.55359,-0.2794 -7.06905,-0.42698 -7.48242,-0.54145 -9.60943,-2.66112 -1.64926,-1.64358 -2.79058,-4.05546 -4.42432,-9.34969 -2.29026,-7.42175 -3.88099,-9.95601 -4.77952,-7.61448 -0.47921,1.2488 0.18932,4.9604 2.20135,12.22165 1.67989,6.0626 2.49298,18.8978 2.49331,39.3583 3.8e-4,23.84815 -1.22561,42.4416 -3.25203,49.3207 -0.53189,1.80563 -1.59483,1.51485 -2.58481,-0.70711 z" + id="path407" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 445.41021,527.86559 c -3.66902,-0.35243 -7.59211,-1.24077 -9.8995,-2.24162 l -3.82202,-1.65785 4.94975,-0.4425 c 2.72236,-0.24337 12.40331,-0.48202 21.51323,-0.53033 l 16.5635,-0.0878 -1.56268,1.66339 c -0.85947,0.91487 -2.74458,2.00941 -4.18912,2.43232 -3.71948,1.08892 -16.37913,1.55354 -23.55316,0.86442 z" + id="path408" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 478.71129,523.2724 c 0,-0.73293 4.57024,-9.55933 4.94975,-9.55933 0.3795,0 4.94974,8.8264 4.94974,9.55933 0,0.18709 -2.22738,0.34017 -4.94974,0.34017 -2.72236,0 -4.94975,-0.15308 -4.94975,-0.34017 z" + id="path409" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 143.54268,481.89327 v -21.2132 h 9.19238 9.19239 v 21.2132 21.2132 h -9.19239 -9.19238 z" + id="path410" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 150.44306,455.16488 c -5.32448,-0.27789 -5.87324,-1.22562 -4.46778,-7.71617 0.57165,-2.63993 2.38395,-11.63782 4.02735,-19.99532 l 2.98798,-15.19546 1.26007,8.8315 c 0.69304,4.85732 2.42666,14.33241 3.85249,21.05576 1.42583,6.72334 2.47184,12.32758 2.32447,12.45386 -0.53819,0.46113 -6.02875,0.77229 -9.98458,0.56583 z" + id="path411" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 239.89892,496.74251 c -2.62063,-8.03517 -3.92762,-14.68713 -5.48788,-27.93072 -0.64145,-5.44472 -1.59076,-11.57003 -2.10958,-13.6118 -0.93036,-3.66144 -0.92139,-3.71231 0.6546,-3.71231 2.04384,0 7.19863,5.73793 8.22655,9.15717 0.75165,2.5003 1.82017,38.70993 1.2217,41.40096 -0.19718,0.88664 -1.13182,-1.09177 -2.50539,-5.3033 z" + id="path412" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.60352;stroke-dasharray:none;stroke-opacity:1" + d="m 388.68891,475.22641 c -3.68817,-0.99154 -4.46231,-1.54096 -5.7164,-4.05699 -1.22459,-2.45686 -3.81135,-3.37273 -10.95873,-3.88007 -3.54177,-0.2514 -6.43958,-0.69808 -6.43958,-0.99262 0,-0.29455 3.17237,-2.37057 7.0497,-4.6134 l 7.04969,-4.07786 0.19815,-8.18542 0.19815,-8.18542 11.57879,-1.26699 c 6.36833,-0.69684 11.76682,-1.07895 11.99663,-0.84914 0.81939,0.81939 1.44011,10.8051 1.48316,23.85966 l 0.0437,13.25826 -6.54073,-0.0477 c -3.59741,-0.0263 -8.07155,-0.45927 -9.94254,-0.96228 z" + id="path413" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.33417;stroke-dasharray:none;stroke-opacity:1" + d="m 434.99131,444.12045 c 0.47973,-0.5301 2.27805,-1.06471 4.34297,-1.2911 2.82092,-0.30926 4.26577,-0.33543 20.76023,-0.37593 l 16.4292,-0.0403 -0.0645,0.86918 c -0.0355,0.47805 -0.0826,0.89902 -0.10467,0.93548 -0.0221,0.0365 -9.37112,0.0663 -20.77567,0.0663 -20.17216,0 -20.73153,-0.004 -20.58751,-0.16358 z" + id="path414" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.956221;stroke-dasharray:none;stroke-opacity:1" + d="m 483.87179,449.54396 c -1.77707,-0.90106 -2.88878,-2.4072 -3.26625,-4.42514 -0.20534,-1.09771 -0.62939,-3.05846 -0.69975,-3.23552 -0.0512,-0.12892 -0.0171,-0.13726 0.27956,-0.0684 0.50681,0.11763 3.11881,0.0957 5.95056,-0.0499 1.38549,-0.0713 2.59141,-0.13024 2.67982,-0.13107 0.14717,-0.001 0.15587,0.0601 0.10293,0.72769 -0.22181,2.79737 -0.80033,4.81166 -1.71385,5.96735 -0.5554,0.70263 -1.91676,1.52356 -2.52654,1.52356 -0.10889,0 -0.47181,-0.13884 -0.80648,-0.30853 z" + id="path415" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:1.71213;stroke-dasharray:none;stroke-opacity:1" + d="m 450.0365,410.25063 c -0.62799,-0.0434 -1.17574,-0.11281 -1.21722,-0.15428 -0.0608,-0.0608 0.21786,-1.48279 0.42372,-2.16203 0.0442,-0.14587 0.51482,-0.15468 8.26104,-0.15468 h 8.21416 v 0.20493 c 0,0.28928 -0.25408,1.1102 -0.42376,1.36917 -0.0785,0.11978 -0.26695,0.2697 -0.4188,0.33315 -0.34783,0.14533 -1.92391,0.36046 -3.53266,0.48219 -1.62688,0.1231 -9.8468,0.18239 -11.30648,0.0815 z" + id="path416" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.070345;stroke-dasharray:none;stroke-opacity:1" + d="m 124.95419,108.01436 c 0.32572,-1.50794 0.76978,-3.05852 1.07041,-3.73764 l 0.10408,-0.23512 0.0739,0.1024 c 0.22389,0.31043 0.58475,1.03897 0.95773,1.93354 0.22996,0.55156 0.71858,1.81217 0.71858,1.85392 0,0.0167 -0.48836,0.0279 -1.21284,0.0279 -1.21324,0 -1.44364,0.0156 -1.6425,0.11131 l -0.091,0.0438 z" + id="path417" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.956221;stroke-dasharray:none;stroke-opacity:1" + d="m 456.19763,375.4958 c 0.0245,-0.10938 0.53177,-2.41632 1.12728,-5.12653 0.59551,-2.7102 1.11243,-4.92765 1.14871,-4.92765 0.0363,0 0.14928,0.44747 0.25111,0.99437 0.10184,0.5469 0.52378,2.80137 0.93766,5.00993 0.41388,2.20856 0.75251,4.06803 0.75251,4.13216 0,0.0933 -0.42557,0.11659 -2.1309,0.11659 h -2.1309 z" + id="path418" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.956221;stroke-dasharray:none;stroke-opacity:1" + d="m 476.14803,470.50495 c 0,-0.26853 0.52455,-3.3857 0.60744,-3.6098 0.0649,-0.17549 0.10288,-0.14601 0.42702,0.33169 0.52346,0.77145 1.5288,2.87867 1.5288,3.20443 0,0.0374 -0.36792,0.0539 -0.81759,0.0366 -0.52269,-0.0201 -0.98497,0.0136 -1.28163,0.0935 -0.44958,0.12103 -0.46404,0.11928 -0.46404,-0.0564 z" + id="path419" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.956221;stroke-dasharray:none;stroke-opacity:1" + d="m 533.08248,445.83082 c -0.15464,-0.48613 -0.68156,-2.29588 -1.17092,-4.02167 -2.58401,-9.11279 -3.51212,-11.90972 -4.81781,-14.51883 -0.73431,-1.46735 -1.38398,-2.51145 -2.38895,-3.83935 -0.9658,-1.27615 -0.98275,-1.30546 -1.09375,-1.89077 -0.11852,-0.62494 0.0172,-1.71874 0.45181,-3.64158 0.76297,-3.37552 1.22169,-4.66589 1.95474,-5.49868 0.42559,-0.48349 0.5156,-0.45593 1.10015,0.33684 2.7039,3.6671 5.77821,16.43622 6.48032,26.91599 0.16208,2.41937 0.0836,5.58754 -0.16677,6.73258 -0.0651,0.2978 -0.0781,0.27633 -0.34882,-0.57453 z" + id="path420" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.0708661;stroke-dasharray:none;stroke-opacity:1" + d="m 589.23432,546.99514 c -0.0343,-0.0257 -0.19281,-0.11727 -0.35214,-0.20361 l -0.2897,-0.15699 0.12831,-0.12452 c 0.13714,-0.13309 0.24615,-0.33658 0.24727,-0.46158 4.2e-4,-0.0461 0.0117,-0.0648 0.0285,-0.0469 0.0254,0.0271 0.31946,1.02098 0.30605,1.03439 -0.003,0.003 -0.0339,-0.0152 -0.0683,-0.0408 z" + id="path421" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.10022;stroke-dasharray:none;stroke-opacity:1" + d="m 362.25964,580.0298 c 0,-0.0225 -0.33883,-2.3642 -0.75295,-5.20387 -0.88731,-6.08431 -1.16025,-7.99435 -1.43248,-10.02439 -0.11083,-0.82643 -0.21065,-1.55628 -0.22182,-1.62189 -0.0161,-0.0948 0.0611,-0.24013 0.37593,-0.7071 0.5403,-0.80152 0.59043,-0.85401 0.87268,-0.91375 0.55592,-0.11766 0.91892,-0.40108 2.64306,-2.06354 l 0.97618,-0.94126 0.0301,2.83651 c 0.0442,4.17018 0.19509,8.42045 0.42623,12.0068 0.27732,4.30272 0.40039,6.16639 0.42247,6.3971 l 0.0264,0.27622 h -1.68289 c -1.00008,0 -1.6829,-0.0166 -1.6829,-0.0408 z" + id="path422" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.0501099;stroke-dasharray:none;stroke-opacity:1" + d="m 380.47869,477.36681 c -0.17015,-0.0879 -0.40382,-0.21812 -0.51928,-0.28947 -0.43551,-0.26911 -0.55131,-0.33362 -0.91703,-0.51087 -2.26898,-1.09966 -6.31994,-1.87016 -12.8826,-2.45029 -2.06954,-0.18295 -4.07306,-0.32167 -7.35833,-0.50951 -3.15476,-0.18037 -3.77534,-0.23582 -5.07128,-0.45316 -0.66903,-0.1122 -1.47227,-0.29419 -1.67765,-0.3801 l -0.0677,-0.0283 0.15241,-0.13766 0.15241,-0.13766 5.81918,0.19777 c 5.9998,0.2039 6.48436,0.22117 7.77476,0.2771 8.46105,0.36674 12.10064,1.06015 13.72868,2.61558 0.35557,0.33971 0.61321,0.69735 0.87344,1.21243 0.1599,0.31649 0.32151,0.69994 0.30941,0.73408 -0.004,0.0109 -0.14625,-0.052 -0.3164,-0.13991 z" + id="path424" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.20044;stroke-dasharray:none;stroke-opacity:1" + d="m 506.51591,527.1702 c -0.3598,-1.23604 -0.81183,-2.22131 -1.69157,-3.68706 -0.30741,-0.51218 -0.74274,-1.40853 -0.9674,-1.99189 -0.95788,-2.48725 -3.8265,-7.24461 -5.28476,-8.76433 l -0.43739,-0.45583 0.59944,-0.0642 c 1.23179,-0.13191 2.53775,0.0987 3.66514,0.64727 0.70408,0.34259 1.11317,0.71439 2.7267,2.47822 0.95616,1.04522 1.34075,1.33294 2.24959,1.6829 0.61555,0.23703 0.97505,0.44246 2.17286,1.24167 0.85915,0.57323 1.45251,1.31852 1.90698,2.39523 0.52069,1.23358 0.63215,1.77857 0.51103,2.49871 -0.35136,2.08901 -1.80332,3.48183 -4.13128,3.96304 -0.93532,0.19334 -1.27522,0.20784 -1.31934,0.0563 z" + id="path875" + transform="scale(0.26458333)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.20044;stroke-dasharray:none;stroke-opacity:1" + d="m 506.51591,527.1702 c -0.3598,-1.23604 -0.81183,-2.22131 -1.69157,-3.68706 -0.30741,-0.51218 -0.74274,-1.40853 -0.9674,-1.99189 -0.95788,-2.48725 -3.8265,-7.24461 -5.28476,-8.76433 l -0.43739,-0.45583 0.59944,-0.0642 c 1.23179,-0.13191 2.53775,0.0987 3.66514,0.64727 0.70408,0.34259 1.11317,0.71439 2.7267,2.47822 0.95616,1.04522 1.34075,1.33294 2.24959,1.6829 0.61555,0.23703 0.97505,0.44246 2.17286,1.24167 0.85915,0.57323 1.45251,1.31852 1.90698,2.39523 0.52069,1.23358 0.63215,1.77857 0.51103,2.49871 -0.35136,2.08901 -1.80332,3.48183 -4.13128,3.96304 -0.93532,0.19334 -1.27522,0.20784 -1.31934,0.0563 z" + id="path876" + transform="scale(0.26458333)" /></g><g + inkscape:groupmode="layer" + id="layer6-6" + inkscape:label="Stars" + style="display:inline" + transform="translate(4.2941758,-2.1192025)"><g + transform="matrix(6.4422558e-4,0,0,-6.5294437e-4,32.818706,56.908701)" + fill="#000000" + stroke="none" + id="g10-9-6-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1380-2)" + inkscape:label="kep-4988"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-2-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-6-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-7-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-5-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-6-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-9-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-8-14" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-7-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-2-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(6.4422558e-4,0,0,-6.5294437e-4,12.907233,69.951702)" + fill="#000000" + stroke="none" + id="g10-9-6-7-1" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1380-2-1)" + inkscape:label="kep-5116"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-2-8-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-6-6-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-7-8-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-5-8-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-6-4-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-9-3-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-8-14-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-7-9-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-2-2-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.6763163e-4,0,0,-6.3255603e-4,27.955433,43.108321)" + fill="#000000" + stroke="none" + id="g10-9-6-0-0" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1380-3-7)" + inkscape:label="kep-4742"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-2-2-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-6-0-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-7-1-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-5-9-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-6-6-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-9-2-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-8-1-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-7-2-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-2-0-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(8.9639248e-4,0,0,-8.7088266e-4,33.508839,42.971073)" + fill="#000000" + stroke="none" + id="g10-9-9-04" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1379-9)" + inkscape:label="kep-3619"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-6-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-0-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-2-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-7-72" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-61-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-3-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-2-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-1-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-5-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(6.5590029e-4,0,0,-5.9469996e-4,22.95667,69.206581)" + fill="#000000" + stroke="none" + id="g10-9-9-0-0" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1379-1-2)" + inkscape:label="kep-4818"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-6-5-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-0-6-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-2-7-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-7-7-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-61-4-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-3-0-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-2-6-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-1-4-91" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-5-7-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(4.1541922e-4,0,0,-4.1152215e-4,25.124893,52.427604)" + fill="#000000" + stroke="none" + id="g10-9-9-0-6-7" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1379-1-5-7)" + inkscape:transform-center-x="-2.6393443" + inkscape:transform-center-y="0.68625508" + inkscape:label="kep-3857"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-6-5-0-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-0-6-6-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-2-7-6-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-7-7-4-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-61-4-6-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-3-0-2-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-2-6-8-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-1-4-9-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-5-7-6-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(4.5817283e-4,0,0,-4.4383979e-4,21.3532,55.190403)" + fill="#000000" + stroke="none" + id="g10-9-9-0-6-1-6" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1379-1-5-0-6)" + inkscape:transform-center-x="-2.9109772" + inkscape:transform-center-y="0.74014832" + inkscape:label="kep-4444"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-6-5-0-3-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-0-6-6-7-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-2-7-6-7-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-7-7-4-2-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-61-4-6-6-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-3-0-2-4-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-2-6-8-5-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-1-4-9-2-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-5-7-6-0-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(6.8592096e-4,0,0,-6.2476592e-4,61.564666,29.168087)" + fill="#000000" + stroke="none" + id="g10-9-4-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1378-2)" + inkscape:label="kep-5142"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-9-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-1-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-0-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-75-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-8-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-7-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-0-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-4-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-8-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(0.00104055,0,0,-9.799295e-4,37.219206,27.469522)" + fill="#000000" + stroke="none" + id="g10-9-96-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1377-3)" + inkscape:label="kep-3015"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-1-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-04-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-22-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-2-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-0-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-5-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-5-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-2-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-9-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(7.1332839e-4,0,0,-6.4117629e-4,41.538644,32.094558)" + fill="#000000" + stroke="none" + id="g10-9-3-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1376-9)" + inkscape:label="kep-5055"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-8-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-040-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-9-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-1-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-9-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-6-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-25-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-44-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-99-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(0.00136846,0,0,-0.00123004,29.153449,37.887245)" + fill="#000000" + stroke="none" + id="g10-9-5-31" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-7)" + inkscape:label="kep-4815"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(4.5817611e-4,0,0,-4.2488434e-4,95.300349,33.270839)" + fill="#000000" + stroke="none" + id="g10-9-5-3-7" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-4)" + inkscape:label="kep-5109"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-18" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-75" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-88" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-31" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-89" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,122.71037,22.059913)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0)" + inkscape:label="kep-4817"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(7.1563206e-4,0,0,-6.6990496e-4,163.95521,55.708186)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-1" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-1)" + inkscape:label="kep-3314"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,172.69799,69.759122)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-19" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-6)" + inkscape:label="kep-127"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(3.9466997e-4,0,0,-4.3323491e-4,147.68231,55.624727)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-3" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-5)" + inkscape:label="kep-5100"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-79" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-06" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-08" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,132.28323,44.678266)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-4" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-4)" + inkscape:label="kep-4960"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-52" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(2.2129076e-4,0,0,-2.5321686e-4,32.327821,63.362073)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-46" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-7)" + inkscape:label="kep-4603"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-39" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-25" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,48.145726,63.397537)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-7" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-0)" + inkscape:label="kep-4265"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-65" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-71" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-33" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-38" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-10" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-76" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,48.939476,36.211599)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-13" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-8)" + inkscape:label="kep-2902"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-34" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-15" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-83" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-59" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(3.7407141e-4,0,0,-3.6756505e-4,76.781528,26.89701)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-6" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-76)" + inkscape:label="kep-1287"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-15" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-08" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-12" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-69" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.8673454e-4,0,0,-6.0603295e-4,85.088815,19.871046)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-32" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-2)" + inkscape:label="kep-5067"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-03" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-00" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-49" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-27" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-252" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,86.774892,45.736599)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-0" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-3)" + inkscape:label="kep-4639"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-89" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-31" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-83" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-42" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-24" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-17" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,6.4738505,66.506391)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-133" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-16)" + inkscape:label="kep-4381"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-37" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-98" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-67" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-04" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-84" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-81" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-85" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-21" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,148.75757,35.113378)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-08" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-60)" + inkscape:label="kep-4205"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-14" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-96" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-77" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-37" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-22" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(3.9696001e-4,0,0,-3.0119066e-4,113.416,34.657369)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-37" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-09)" + inkscape:label="kep-2625"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-11" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-30" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-32" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-17" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-65" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-42" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-217" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,82.276975,8.2319113)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-9" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-165)" + inkscape:label="kep-3503"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-73" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-64" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-97" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-21" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-63" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,64.549892,20.865766)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-03" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-56)" + inkscape:label="kep-4008"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-46" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-60" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-25" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-89" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-50" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-08" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,49.733225,22.188682)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-5" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-10)" + inkscape:label="kep-5080"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-738" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-23" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-07" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-77" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-69" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-19" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-08" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,39.943642,35.682433)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-69" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-80)" + inkscape:label="kep-4355"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-21" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-77" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-76" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-71" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-58" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-84" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-56" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,26.185311,36.2116)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-8" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-84)" + inkscape:label="kep-753"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-75" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-24" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-50" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-57" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-32" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-72" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-13" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-49" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,14.808225,40.180348)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-2" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-57)" + inkscape:label="kep-4951"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-216" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-20" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-22" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-97" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-43" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-56" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-14" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-03" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-12" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,44.772288,53.211078)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-76" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-9)" + inkscape:label="kep-5073"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-01" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-02" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-51" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-971" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-31" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-20" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-68" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-74" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(2.8153918e-4,0,0,-3.1443857e-4,27.805557,70.399315)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-89" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-45)" + inkscape:label="kep-3998"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-60" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-64" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-94" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-54" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-66" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-399" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-52" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-13" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,39.943642,74.311599)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-85" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-91)" + inkscape:label="kep-3850"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-73" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-38" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-95" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-53" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-86" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-03" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-36" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-18" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-70" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,3.1665619,78.941808)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-54" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-103)" + inkscape:label="kep-2590"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-24" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-99" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-94" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-98" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-16" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-33" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-46" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,169.46796,48.677738)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-58" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-36)" + inkscape:label="kep-1710"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-50" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-998" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-02" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-49" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-01" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-200" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-63" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-083" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(2.8896359e-4,0,0,-3.0287814e-4,163.33456,39.678253)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-58-8" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-36-6)" + inkscape:label="kep-3973"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-50-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-998-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-02-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-49-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-01-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-200-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-63-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-9-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-083-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(4.1667524e-4,0,0,-4.1085713e-4,129.47643,40.10405)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-58-8-7" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-36-6-4)" + inkscape:label="kep-3104"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-50-4-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-998-6-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-02-6-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-49-7-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-01-2-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-200-7-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-63-4-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-9-1-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-083-0-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(3.9574017e-4,0,0,-3.6721459e-4,140.00778,46.988767)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-31" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-31)" + inkscape:label="kep-5018"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-80" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-17" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-91" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-03" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-59" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-48" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-46" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-92" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-90" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(4.0649057e-4,0,0,-3.9460054e-4,95.094419,7.9737163)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-8" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-61)" + inkscape:label="kep-2535"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-77" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-03" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(3.8525768e-4,0,0,-3.7287134e-4,67.451555,20.147135)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-9-2" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-9-6)" + inkscape:label="kep-740"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-3-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-2-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-4-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-3-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-7-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-1-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-2-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-2-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-0-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(3.3349184e-4,0,0,-3.6100506e-4,132.16428,25.059427)" + fill="#000000" + stroke="none" + id="g10-9-5-3-8-2" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-9-2)" + inkscape:label="kep-5040"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-74-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-19-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-09-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-8-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-85-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-84-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-37-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-1-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-3-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,18.610732,46.356197)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-1" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-9)" + inkscape:label="kep-4974"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,34.735436,53.395408)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-3" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-6)" + inkscape:label="kep-4876"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-40" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-04" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,34.279408,47.186403)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-8" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-5)" + inkscape:label="kep-4858"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-27" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,39.24895,58.142783)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-5" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-3)" + inkscape:label="kep-4427"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-14" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,110.20017,57.877953)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-48" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-04)" + inkscape:label="kep-4004"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-70" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-86" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-47" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-93" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-92" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-30" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(3.0093531e-4,0,0,-3.3008288e-4,121.24525,53.771506)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-9" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-91)" + inkscape:label="kep-3866"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-25" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-74" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-94" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-59" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-35" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-70" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-19" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(4.3076765e-4,0,0,-3.499633e-4,107.18369,46.416409)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-9-9" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-91-3)" + inkscape:label="kep-2644"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-25-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-74-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-9-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-94-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-59-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-35-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-70-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-8-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-19-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(3.0331458e-4,0,0,-2.6336702e-4,147.98062,43.017833)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-9-1" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-91-5)" + inkscape:label="kep-2589"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-25-43" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-74-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-9-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-94-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-59-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-35-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-70-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-8-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-19-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,139.03975,38.034201)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-9-8" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-91-9)" + inkscape:label="kep-2433"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-25-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-74-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-9-95" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-94-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-59-39" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-35-49" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-70-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-8-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-19-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,151.03679,35.047667)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-9-7" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-91-0)" + inkscape:label="kep-1880"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-25-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-74-90" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-9-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-94-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-59-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-35-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-70-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-8-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-19-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,104.85532,44.662555)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-49" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-8)" + inkscape:label="kep-1495"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-20" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-196" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-21" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-20" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-31" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-90" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(3.5313937e-4,0,0,-3.4653273e-4,176.00833,72.069741)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-92" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-61)" + inkscape:label="kep-4832"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-81" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-247" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-86" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-37" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-72" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-37" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-25" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-37" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,85.924985,10.300628)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-0" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-7)" + inkscape:label="kep-4049"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-48" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-58" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-26" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-06" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-64" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,119.79535,18.345915)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-10" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-96)" + inkscape:label="kep-4816"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-13" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-77" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-26" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-45" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-202" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-90" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-99" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-51" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,97.500169,51.263369)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-46" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-78)" + inkscape:label="kep-4540"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-76" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-097" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-59" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-33" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-83" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,24.574183,58.096011)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-4" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-4)" + inkscape:label="kep-4412"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-96" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-10" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-05" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,24.691113,46.309425)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-80" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-0)" + inkscape:label="kep-4193"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-09" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-19" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-62" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-44" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,29.90621,48.297241)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-35" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-50)" + inkscape:label="kep-3633"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-7" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-14" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-94" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-26" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(1.7330129e-4,0,0,-1.7839818e-4,22.703296,47.94645)" + fill="#000000" + stroke="none" + id="g10-9-5-3-9-1-6-3-81-54-2" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-7-6-75-0-72-96-2)" + inkscape:label="kep-3257"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-7-9-98-1-24-3-88" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-5-6-1-4-78-6-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-9-48-33-8-63-4-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-7-0-3-96-77-31-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-8-8-7-7-23-9-38" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-5-10-9-7-72-1-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-3-22-86-3-5-09-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-3-9-7-7-3-4-38" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-8-7-04-1-768-56-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(8.5309509e-4,0,0,-8.5444109e-4,131.3979,39.532802)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-58-8-1" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-36-6-5)" + inkscape:label="kep-3094"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-50-4-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-998-6-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-02-6-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-49-7-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-01-2-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-200-7-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-63-4-1" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-9-1-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-083-0-5" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g><g + transform="matrix(5.2354898e-4,0,0,-4.9708811e-4,141.27906,27.480348)" + fill="#000000" + stroke="none" + id="g10-9-5-3-4-6-58-8-6" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1375-4-0-0-36-6-1)" + inkscape:label="kep-2862"><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5-9-0-5-5-4-50-4-8" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9-3-2-7-1-3-998-6-2" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6-3-94-0-0-3-02-6-0" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2-8-3-8-3-3-49-7-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1-0-5-1-7-8-01-2-4" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7-5-1-9-8-6-200-7-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8-6-7-9-8-0-63-4-3" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5-6-43-7-6-4-9-1-6" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7-4-1-8-0-8-083-0-9" + style="fill:#ffffff;fill-opacity:1;stroke:#ffff00;stroke-width:71.4583;stroke-dasharray:none;stroke-opacity:1" /></g></g><g + inkscape:groupmode="layer" + id="layer11" + inkscape:label="BackgroundCity" + style="display:none" + transform="translate(-6.7520832,-1.5246326)"><g + transform="matrix(0.06562196,0,0,-0.11510962,50.821684,288.35387)" + fill="#000000" + stroke="none" + id="g2" + style="display:inline"><path + d="m 1566,1958 c -4,-42 -14,-100 -23,-130 -9,-30 -19,-110 -22,-183 l -6,-130 -19,38 c -20,37 -20,37 -83,37 -58,0 -64,-2 -75,-25 -21,-47 -29,-25 -28,73 0,58 -5,121 -15,157 -8,33 -18,74 -21,90 -6,25 -9,19 -20,-44 -7,-40 -18,-85 -24,-100 -6,-15 -10,-32 -9,-37 1,-5 1,-24 0,-41 -1,-32 -3,-33 -41,-33 -34,0 -41,-4 -46,-25 -10,-41 -21,-29 -40,45 l -18,69 -28,-82 c -15,-45 -27,-94 -27,-109 -1,-23 -5,-28 -26,-28 h -26 l 1,103 c 1,62 -5,123 -14,157 -8,30 -21,98 -29,150 l -13,95 -13,-80 c -7,-44 -20,-111 -28,-150 -8,-38 -14,-113 -13,-166 l 1,-96 -83,-9 c -82,-9 -82,-9 -92,-41 -8,-29 -13,-33 -42,-33 -28,0 -35,-5 -40,-25 -3,-14 -12,-25 -19,-25 -7,0 -15,-7 -19,-15 -4,-11 -21,-15 -66,-15 -53,0 -60,-2 -60,-20 0,-16 -7,-20 -32,-21 -24,0 -39,-8 -57,-31 -23,-28 -24,-38 -22,-126 2,-70 -1,-97 -11,-103 -7,-5 -40,-9 -73,-10 -33,0 -71,-5 -85,-10 -15,-5 12,-5 65,-1 50,4 137,6 195,5 58,-1 278,-2 490,-2 212,0 486,-1 610,-2 257,-3 312,-3 690,-1 151,2 358,1 460,-1 165,-3 174,-2 87,6 l -98,10 2,91 c 1,77 -2,98 -22,139 -23,46 -24,47 -71,47 -47,0 -48,1 -71,47 l -24,46 -73,-2 -73,-2 5,26 c 3,14 2,28 -3,30 -4,3 -15,42 -25,86 l -17,82 -19,-78 c -10,-42 -21,-82 -25,-88 -3,-6 -5,-35 -4,-64 1,-31 -2,-53 -8,-53 -5,0 -25,25 -43,55 -32,54 -33,55 -80,55 -44,0 -48,2 -46,23 1,12 -9,37 -22,55 -24,32 -25,32 -108,32 h -85 l 5,45 c 3,25 2,48 -2,50 -12,7 -40,136 -40,180 0,49 -15,37 -18,-14 -2,-23 -12,-75 -22,-118 -11,-42 -20,-100 -20,-130 0,-48 -2,-53 -22,-53 -18,0 -27,11 -41,45 -14,32 -25,45 -39,45 -18,0 -20,6 -17,68 2,37 -2,80 -9,97 -6,17 -20,80 -30,140 l -19,110 z m 48,-185 c 6,-20 4,-21 -38,-21 h -46 l 16,36 c 8,20 18,63 21,97 l 6,60 17,-75 c 9,-41 20,-85 24,-97 z m -666,-35 10,-38 h -45 c -35,0 -44,3 -40,14 3,8 11,43 17,78 24,144 22,141 35,58 7,-41 17,-92 23,-112 z m 332,51 c 6,-22 14,-47 17,-55 4,-10 -3,-14 -27,-14 -25,0 -31,3 -26,16 3,9 9,33 12,55 4,21 8,39 10,39 2,0 8,-18 14,-41 z m 549,-101 c 9,-25 8,-26 -27,-30 l -38,-3 12,40 c 7,22 16,54 20,70 l 7,30 8,-40 c 4,-22 12,-52 18,-67 z m -209,-93 v -145 h -45 -45 v 145 145 h 45 45 z m -321,43 v -73 l -16,33 c -9,17 -23,32 -30,32 -7,0 -13,9 -13,21 0,11 5,17 10,14 6,-3 10,1 10,10 0,9 -4,13 -10,10 -5,-3 -10,1 -10,9 0,11 9,16 30,16 h 30 z m -339,-73 v -125 h -30 c -20,0 -30,-5 -30,-15 0,-8 -7,-15 -15,-15 -13,0 -15,22 -15,140 v 140 h 45 45 z m 144,18 c 7,-21 4,-23 -32,-23 h -40 l 21,56 21,57 11,-34 c 7,-19 15,-44 19,-56 z m 732,54 c 2,-7 3,-62 2,-123 l -3,-109 -14,63 c -12,55 -16,62 -37,62 -22,0 -24,4 -24,54 0,34 5,56 13,59 24,10 58,7 63,-6 z m -556,-57 20,-40 h -49 c -45,0 -51,3 -70,34 -12,18 -21,36 -21,40 0,3 22,6 50,6 48,0 50,-1 70,-40 z m 389,4 c 26,-33 27,-54 3,-54 -11,0 -24,-10 -30,-22 -9,-19 -10,-12 -9,40 0,34 4,62 8,62 4,0 17,-12 28,-26 z m -491,-26 c 28,-55 29,-88 2,-88 -11,0 -20,7 -20,15 0,8 -9,15 -20,15 -13,0 -20,7 -20,19 0,24 20,81 28,81 4,0 17,-19 30,-42 z m 307,-8 16,-30 h -41 c -36,0 -40,-2 -40,-25 0,-16 -6,-25 -15,-25 -9,0 -15,9 -15,23 -1,12 -7,33 -15,47 -22,38 -19,40 40,40 50,0 56,-2 70,-30 z m 826,-67 c 8,-21 6,-23 -25,-23 h -34 l 14,38 c 7,20 14,46 15,57 0,13 5,7 11,-15 5,-19 14,-45 19,-57 z m -943,52 c 7,-14 12,-36 11,-48 0,-18 -3,-17 -15,11 -8,17 -18,32 -24,32 -5,0 -7,7 -4,15 9,22 19,18 32,-10 z m 642,11 c 0,-8 3,-21 6,-30 5,-14 -6,-16 -80,-16 h -86 v 30 30 h 80 c 62,0 80,-3 80,-14 z m -905,-21 c 0,-22 -4,-25 -37,-25 -34,0 -38,3 -38,25 0,22 4,25 38,25 33,0 37,-3 37,-25 z m 245,-25 c 8,-16 8,-24 -4,-35 -16,-17 -56,-20 -56,-5 0,6 -9,10 -19,10 -17,0 -31,18 -31,41 0,5 22,9 50,9 39,0 51,-4 60,-20 z m 446,4 c -3,-9 -9,-41 -12,-72 -10,-83 -15,-86 -54,-32 -27,38 -42,50 -66,52 -30,3 -31,3 -17,36 13,32 13,32 84,32 61,0 70,-2 65,-16 z m -276,-24 c 0,-23 -5,-30 -19,-30 -11,0 -23,5 -26,10 -3,6 -15,10 -26,10 -12,0 -19,7 -19,20 0,17 7,20 45,20 43,0 45,-1 45,-30 z m -660,-25 v -45 h -45 c -25,0 -45,5 -45,10 0,6 -18,10 -40,10 -45,0 -44,-1 -30,34 8,23 15,25 77,29 37,2 71,4 76,5 4,1 7,-18 7,-43 z m 284,8 c -4,-16 -11,-38 -15,-51 -5,-13 -9,-35 -9,-50 0,-24 -4,-20 -30,26 -30,51 -32,52 -75,52 -41,0 -45,2 -45,25 0,25 1,25 90,25 h 90 z m 664,-55 c -8,-4 7,-8 35,-8 26,0 47,-3 47,-7 0,-3 -11,-21 -26,-40 -21,-28 -31,-33 -65,-33 -21,0 -39,3 -39,6 0,3 9,19 21,35 11,16 17,34 14,39 -4,6 -3,30 1,53 l 7,42 9,-39 c 6,-29 5,-42 -4,-48 z m 211,60 c -1,-18 -2,-19 -6,-5 -8,30 -28,13 -34,-29 -3,-21 -11,-50 -18,-63 l -13,-24 -20,32 c -15,23 -27,31 -49,31 -27,0 -29,3 -29,40 v 40 h 85 c 82,0 85,-1 84,-22 z m 44,-27 c 34,5 69,6 77,3 21,-6 73,-94 56,-94 -7,0 -21,-16 -32,-35 -15,-29 -24,-35 -51,-35 -31,0 -33,2 -33,33 0,21 11,48 31,75 17,24 29,45 27,48 -3,2 -18,-14 -33,-36 -27,-38 -30,-40 -81,-40 -57,0 -62,4 -39,34 8,10 13,30 11,45 -2,14 -1,19 1,10 3,-13 14,-14 66,-8 z m -773,-11 c 19,-46 8,-60 -49,-60 -44,0 -50,3 -59,28 -5,15 -13,35 -17,45 -6,15 0,17 53,17 57,0 60,-1 72,-30 z m 197,-20 c 32,-66 30,-70 -27,-70 -27,0 -50,3 -50,7 0,3 12,26 26,50 14,25 24,46 22,49 -3,2 -15,-14 -27,-36 -22,-39 -24,-40 -76,-40 h -54 l 26,45 25,46 57,-3 c 55,-3 56,-3 78,-48 z m 833,-10 v -50 h -35 -35 v 50 50 h 35 35 z m -1158,-78 c -29,-31 -33,-32 -109,-32 -73,0 -103,9 -103,32 0,4 40,8 89,8 h 88 l 7,48 c 3,27 9,52 13,56 4,3 15,-13 25,-37 l 19,-44 z m 428,113 c 0,-21 -27,-55 -44,-56 -12,0 -15,-3 -8,-6 14,-6 17,-33 2,-33 -7,0 -50,82 -50,96 0,2 23,4 50,4 28,0 50,-2 50,-5 z m 116,-22 c 38,-52 38,-53 -3,-53 -32,0 -41,5 -60,35 -13,19 -23,37 -23,40 0,3 15,5 33,5 25,0 38,-7 53,-27 z m -628,-28 22,-45 h -68 -68 l -22,45 -22,45 h 68 68 z m 556,5 c 14,-22 22,-40 16,-40 -5,0 -10,-9 -10,-20 0,-11 5,-20 10,-20 6,0 10,-7 10,-15 0,-10 -11,-15 -35,-15 -36,0 -39,4 -35,49 1,18 -2,22 -14,18 -9,-4 -16,-4 -16,-1 0,6 42,84 46,84 1,0 13,-18 28,-40 z m -871,18 c 5,-14 -23,-68 -34,-68 -4,0 -11,9 -14,20 -5,15 -15,20 -40,20 -24,0 -38,6 -45,20 -10,19 -8,20 59,20 46,0 71,-4 74,-12 z m 173,-40 c 15,-29 15,-30 -1,-24 -9,3 -42,9 -73,12 -34,4 -62,13 -71,23 -12,14 -12,13 -6,-7 4,-16 1,-29 -9,-41 -13,-14 -14,-23 -6,-42 9,-20 10,-21 7,-3 -3,12 0,29 5,38 14,26 39,1 33,-33 -4,-19 -3,-21 3,-7 8,17 9,17 25,-7 13,-21 17,-49 17,-131 0,-117 0,-116 -76,-116 h -44 v 124 c 0,76 4,127 10,131 8,5 8,11 0,20 -8,10 -6,23 8,52 l 20,38 71,2 c 70,2 71,2 87,-29 z m 1529,24 c 6,-4 18,-22 27,-40 14,-25 14,-32 3,-32 -7,0 -20,-19 -27,-42 -11,-31 -21,-44 -36,-46 -31,-5 -29,34 4,99 14,28 23,54 20,57 -4,3 -16,-18 -28,-46 -14,-34 -28,-52 -39,-52 -23,0 -59,51 -59,84 0,25 2,26 63,26 34,0 67,-4 72,-8 z m -524,-54 c 7,-13 6,-18 -4,-18 -11,0 -13,-27 -9,-140 l 5,-140 h -35 -35 l -6,68 c -14,141 -9,199 19,244 25,40 27,41 41,22 8,-10 19,-27 24,-36 z m -1223,-9 c 18,-31 21,-44 13,-52 -9,-9 -14,-8 -21,3 -6,9 -5,17 3,22 8,5 6,8 -5,8 -10,0 -18,-7 -18,-15 0,-10 -10,-15 -29,-15 -24,0 -34,8 -52,40 -12,22 -25,38 -27,35 -2,-2 5,-20 17,-40 14,-25 21,-53 21,-91 0,-53 0,-54 -30,-54 -28,0 -30,3 -30,34 0,19 -5,38 -11,42 -12,7 -7,31 16,87 15,37 16,37 73,37 56,0 57,-1 80,-41 z m 682,9 c 0,-22 -10,-48 -19,-48 -4,0 -13,11 -19,25 -9,19 -19,25 -42,25 -16,0 -30,4 -30,10 0,5 24,8 55,7 44,-2 55,-5 55,-19 z m -515,2 c 38,0 45,-4 62,-32 l 18,-31 80,2 c 77,2 79,2 62,-17 -14,-15 -17,-38 -17,-120 v -102 h -31 c -29,0 -30,2 -29,38 1,20 1,66 1,102 -1,59 -4,66 -26,76 -13,7 -25,8 -27,4 -2,-4 -28,-5 -58,-3 -51,5 -58,8 -80,42 -34,49 -36,55 -16,48 10,-4 37,-7 61,-7 z m 863,-35 c 1,-42 0,-45 -23,-45 -14,0 -25,5 -25,10 0,6 -7,10 -15,10 -10,0 -15,11 -15,35 0,34 1,35 38,35 h 38 z m 322,10 c 0,-44 -20,-46 -21,-2 l -1,32 -8,-29 c -6,-20 -5,-37 6,-57 l 15,-29 h -39 c -32,0 -41,5 -51,26 -6,15 -14,24 -17,21 -3,-3 0,-14 7,-25 20,-28 14,-212 -7,-212 -13,0 -15,21 -13,136 l 2,136 44,-4 c 23,-2 43,0 43,4 0,5 -16,8 -35,8 -24,0 -35,5 -35,15 0,12 13,15 55,15 h 55 z m -1520,12 c 0,-7 -6,-21 -13,-31 -12,-16 -14,-16 -26,-2 -8,9 -20,16 -27,16 -8,0 -14,7 -14,15 0,11 11,15 40,15 26,0 40,-4 40,-13 z m 1760,8 c 0,-3 -12,-23 -26,-45 -30,-44 -49,-51 -57,-19 -5,17 -12,21 -36,17 -36,-5 -36,-5 -15,27 14,22 24,25 75,25 33,0 59,-2 59,-5 z M 1230,1153 v -113 h -65 -65 v 101 102 l 38,42 37,43 28,-31 c 26,-30 27,-35 27,-144 z m 129,145 20,-33 -64,-3 c -61,-3 -67,-1 -90,25 -13,15 -25,31 -25,36 0,4 31,7 69,7 67,0 70,-1 90,-32 z m 222,-9 21,-42 -32,7 c -18,3 -50,6 -71,6 -33,0 -41,4 -54,31 -9,17 -19,29 -21,26 -3,-3 1,-18 9,-34 8,-15 17,-74 21,-130 l 6,-103 h -35 -35 v 118 c 0,154 5,162 100,162 h 70 z m 763,24 c 4,-10 15,-29 26,-43 12,-15 18,-18 14,-7 -4,10 -1,17 6,17 6,0 10,-8 8,-17 -2,-10 -11,-18 -21,-17 -9,0 -37,1 -62,2 l -45,2 26,40 c 29,44 40,49 48,23 z m -504,-53 c 0,-55 -6,-63 -20,-25 -7,18 -17,25 -35,25 -20,0 -25,5 -25,25 0,23 4,25 40,25 h 40 z m 789,9 c 13,-22 21,-42 18,-45 -10,-10 -185,9 -181,20 24,69 20,66 82,66 58,0 59,0 81,-41 z m -2106,-5 29,-34 H 441 329 l 28,35 c 26,33 32,35 83,34 50,0 58,-4 83,-35 z m 1670,-1 c -6,-16 -5,-16 10,-4 15,12 17,10 17,-18 0,-21 5,-31 15,-31 12,0 15,-15 15,-79 v -78 l -37,-7 c -21,-3 -62,-6 -90,-6 h -53 v 96 c 0,52 -5,104 -10,115 -10,18 -7,19 50,19 58,0 60,-1 60,-26 0,-14 4,-23 10,-19 6,3 7,17 4,31 -4,14 -2,24 5,24 6,0 8,-8 4,-17 z m -1495,-47 3,-46 h -35 c -36,0 -36,0 -36,43 0,52 3,56 38,53 24,-3 27,-8 30,-50 z m 968,-7 c -3,-34 -6,-86 -6,-115 0,-54 0,-54 -31,-54 h -31 l 3,115 3,115 h 35 34 z m 100,-9 h 74 v -79 c 0,-44 -4,-82 -8,-85 -4,-3 -42,-2 -83,1 l -74,5 5,117 c 2,64 6,99 8,79 l 3,-38 z m -798,40 c 18,0 22,-6 22,-29 0,-28 -1,-29 -50,-28 -35,2 -54,-3 -60,-13 -7,-11 -10,-1 -10,34 v 49 l 38,-7 c 20,-3 47,-6 60,-6 z m 412,-89 v -98 l -46,-7 c -100,-13 -94,-20 -94,99 v 105 h 70 70 z m 164,93 46,-7 v -99 -99 l -57,3 -58,3 -3,63 c -2,43 0,62 7,57 7,-4 11,4 11,19 0,14 -4,26 -10,26 -5,0 -10,9 -10,20 0,22 6,23 74,14 z m 266,-14 c 10,-19 8,-20 -50,-20 -53,0 -60,2 -60,20 0,17 7,20 50,20 39,0 52,-4 60,-20 z m -792,-50 -2,-60 h -42 c -31,0 -46,5 -58,23 -12,15 -16,17 -12,5 3,-12 0,-18 -9,-18 -19,0 -19,14 0,30 8,7 35,11 63,8 l 49,-3 -5,38 c -3,24 -1,37 7,37 8,0 11,-20 9,-60 z m 1362,-47 v -96 l -50,5 c -28,3 -52,7 -54,9 -2,2 -7,45 -11,94 l -7,90 61,-3 61,-4 z m -1940,2 v -85 h -50 -50 v 85 85 h 50 50 z m 110,60 c 0,-14 -4,-25 -10,-25 -6,0 -10,-28 -10,-63 v -63 l -40,4 -40,4 v 84 84 h 50 c 47,0 50,-2 50,-25 z m 1502,-7 c 1,-18 2,-59 2,-90 l 1,-58 h -37 -38 v 83 c 0,46 3,87 7,90 3,4 19,7 35,7 25,0 28,-4 30,-32 z m 545,22 h 53 v -86 -85 l -130,2 -130,3 v 89 90 l 77,-7 c 42,-3 100,-6 130,-6 z M 730,1095 v -65 h -42 c -24,0 -67,3 -95,6 l -53,7 v 58 59 h 95 95 z m 188,-18 c 3,-32 0,-37 -17,-37 -18,0 -21,6 -21,41 0,33 3,40 18,37 12,-2 18,-14 20,-41 z m 102,-2 c 0,-35 0,-35 -45,-35 -45,0 -45,0 -45,35 0,35 0,35 45,35 45,0 45,0 45,-35 z" + id="path1-8" /><path + d="m 399,1207 c -5,-28 -2,-47 6,-49 14,-2 19,32 6,45 -6,6 -11,8 -12,4 z" + id="path2-6" /></g><g + transform="matrix(-0.07010876,0,0,-0.11510962,200.61217,288.63498)" + fill="#000000" + stroke="none" + id="g2-8" + style="display:inline" + clip-path="url(#clipPath323)"><path + d="m 1566,1958 c -4,-42 -14,-100 -23,-130 -9,-30 -19,-110 -22,-183 l -6,-130 -19,38 c -20,37 -20,37 -83,37 -58,0 -64,-2 -75,-25 -21,-47 -29,-25 -28,73 0,58 -5,121 -15,157 -8,33 -18,74 -21,90 -6,25 -9,19 -20,-44 -7,-40 -18,-85 -24,-100 -6,-15 -10,-32 -9,-37 1,-5 1,-24 0,-41 -1,-32 -3,-33 -41,-33 -34,0 -41,-4 -46,-25 -10,-41 -21,-29 -40,45 l -18,69 -28,-82 c -15,-45 -27,-94 -27,-109 -1,-23 -5,-28 -26,-28 h -26 l 1,103 c 1,62 -5,123 -14,157 -8,30 -21,98 -29,150 l -13,95 -13,-80 c -7,-44 -20,-111 -28,-150 -8,-38 -14,-113 -13,-166 l 1,-96 -83,-9 c -82,-9 -82,-9 -92,-41 -8,-29 -13,-33 -42,-33 -28,0 -35,-5 -40,-25 -3,-14 -12,-25 -19,-25 -7,0 -15,-7 -19,-15 -4,-11 -21,-15 -66,-15 -53,0 -60,-2 -60,-20 0,-16 -7,-20 -32,-21 -24,0 -39,-8 -57,-31 -23,-28 -24,-38 -22,-126 2,-70 -1,-97 -11,-103 -7,-5 -40,-9 -73,-10 -33,0 -71,-5 -85,-10 -15,-5 12,-5 65,-1 50,4 137,6 195,5 58,-1 278,-2 490,-2 212,0 486,-1 610,-2 257,-3 312,-3 690,-1 151,2 358,1 460,-1 165,-3 174,-2 87,6 l -98,10 2,91 c 1,77 -2,98 -22,139 -23,46 -24,47 -71,47 -47,0 -48,1 -71,47 l -24,46 -73,-2 -73,-2 5,26 c 3,14 2,28 -3,30 -4,3 -15,42 -25,86 l -17,82 -19,-78 c -10,-42 -21,-82 -25,-88 -3,-6 -5,-35 -4,-64 1,-31 -2,-53 -8,-53 -5,0 -25,25 -43,55 -32,54 -33,55 -80,55 -44,0 -48,2 -46,23 1,12 -9,37 -22,55 -24,32 -25,32 -108,32 h -85 l 5,45 c 3,25 2,48 -2,50 -12,7 -40,136 -40,180 0,49 -15,37 -18,-14 -2,-23 -12,-75 -22,-118 -11,-42 -20,-100 -20,-130 0,-48 -2,-53 -22,-53 -18,0 -27,11 -41,45 -14,32 -25,45 -39,45 -18,0 -20,6 -17,68 2,37 -2,80 -9,97 -6,17 -20,80 -30,140 l -19,110 z m 48,-185 c 6,-20 4,-21 -38,-21 h -46 l 16,36 c 8,20 18,63 21,97 l 6,60 17,-75 c 9,-41 20,-85 24,-97 z m -666,-35 10,-38 h -45 c -35,0 -44,3 -40,14 3,8 11,43 17,78 24,144 22,141 35,58 7,-41 17,-92 23,-112 z m 332,51 c 6,-22 14,-47 17,-55 4,-10 -3,-14 -27,-14 -25,0 -31,3 -26,16 3,9 9,33 12,55 4,21 8,39 10,39 2,0 8,-18 14,-41 z m 549,-101 c 9,-25 8,-26 -27,-30 l -38,-3 12,40 c 7,22 16,54 20,70 l 7,30 8,-40 c 4,-22 12,-52 18,-67 z m -209,-93 v -145 h -45 -45 v 145 145 h 45 45 z m -321,43 v -73 l -16,33 c -9,17 -23,32 -30,32 -7,0 -13,9 -13,21 0,11 5,17 10,14 6,-3 10,1 10,10 0,9 -4,13 -10,10 -5,-3 -10,1 -10,9 0,11 9,16 30,16 h 30 z m -339,-73 v -125 h -30 c -20,0 -30,-5 -30,-15 0,-8 -7,-15 -15,-15 -13,0 -15,22 -15,140 v 140 h 45 45 z m 144,18 c 7,-21 4,-23 -32,-23 h -40 l 21,56 21,57 11,-34 c 7,-19 15,-44 19,-56 z m 732,54 c 2,-7 3,-62 2,-123 l -3,-109 -14,63 c -12,55 -16,62 -37,62 -22,0 -24,4 -24,54 0,34 5,56 13,59 24,10 58,7 63,-6 z m -556,-57 20,-40 h -49 c -45,0 -51,3 -70,34 -12,18 -21,36 -21,40 0,3 22,6 50,6 48,0 50,-1 70,-40 z m 389,4 c 26,-33 27,-54 3,-54 -11,0 -24,-10 -30,-22 -9,-19 -10,-12 -9,40 0,34 4,62 8,62 4,0 17,-12 28,-26 z m -491,-26 c 28,-55 29,-88 2,-88 -11,0 -20,7 -20,15 0,8 -9,15 -20,15 -13,0 -20,7 -20,19 0,24 20,81 28,81 4,0 17,-19 30,-42 z m 307,-8 16,-30 h -41 c -36,0 -40,-2 -40,-25 0,-16 -6,-25 -15,-25 -9,0 -15,9 -15,23 -1,12 -7,33 -15,47 -22,38 -19,40 40,40 50,0 56,-2 70,-30 z m 826,-67 c 8,-21 6,-23 -25,-23 h -34 l 14,38 c 7,20 14,46 15,57 0,13 5,7 11,-15 5,-19 14,-45 19,-57 z m -943,52 c 7,-14 12,-36 11,-48 0,-18 -3,-17 -15,11 -8,17 -18,32 -24,32 -5,0 -7,7 -4,15 9,22 19,18 32,-10 z m 642,11 c 0,-8 3,-21 6,-30 5,-14 -6,-16 -80,-16 h -86 v 30 30 h 80 c 62,0 80,-3 80,-14 z m -905,-21 c 0,-22 -4,-25 -37,-25 -34,0 -38,3 -38,25 0,22 4,25 38,25 33,0 37,-3 37,-25 z m 245,-25 c 8,-16 8,-24 -4,-35 -16,-17 -56,-20 -56,-5 0,6 -9,10 -19,10 -17,0 -31,18 -31,41 0,5 22,9 50,9 39,0 51,-4 60,-20 z m 446,4 c -3,-9 -9,-41 -12,-72 -10,-83 -15,-86 -54,-32 -27,38 -42,50 -66,52 -30,3 -31,3 -17,36 13,32 13,32 84,32 61,0 70,-2 65,-16 z m -276,-24 c 0,-23 -5,-30 -19,-30 -11,0 -23,5 -26,10 -3,6 -15,10 -26,10 -12,0 -19,7 -19,20 0,17 7,20 45,20 43,0 45,-1 45,-30 z m -660,-25 v -45 h -45 c -25,0 -45,5 -45,10 0,6 -18,10 -40,10 -45,0 -44,-1 -30,34 8,23 15,25 77,29 37,2 71,4 76,5 4,1 7,-18 7,-43 z m 284,8 c -4,-16 -11,-38 -15,-51 -5,-13 -9,-35 -9,-50 0,-24 -4,-20 -30,26 -30,51 -32,52 -75,52 -41,0 -45,2 -45,25 0,25 1,25 90,25 h 90 z m 664,-55 c -8,-4 7,-8 35,-8 26,0 47,-3 47,-7 0,-3 -11,-21 -26,-40 -21,-28 -31,-33 -65,-33 -21,0 -39,3 -39,6 0,3 9,19 21,35 11,16 17,34 14,39 -4,6 -3,30 1,53 l 7,42 9,-39 c 6,-29 5,-42 -4,-48 z m 211,60 c -1,-18 -2,-19 -6,-5 -8,30 -28,13 -34,-29 -3,-21 -11,-50 -18,-63 l -13,-24 -20,32 c -15,23 -27,31 -49,31 -27,0 -29,3 -29,40 v 40 h 85 c 82,0 85,-1 84,-22 z m 44,-27 c 34,5 69,6 77,3 21,-6 73,-94 56,-94 -7,0 -21,-16 -32,-35 -15,-29 -24,-35 -51,-35 -31,0 -33,2 -33,33 0,21 11,48 31,75 17,24 29,45 27,48 -3,2 -18,-14 -33,-36 -27,-38 -30,-40 -81,-40 -57,0 -62,4 -39,34 8,10 13,30 11,45 -2,14 -1,19 1,10 3,-13 14,-14 66,-8 z m -773,-11 c 19,-46 8,-60 -49,-60 -44,0 -50,3 -59,28 -5,15 -13,35 -17,45 -6,15 0,17 53,17 57,0 60,-1 72,-30 z m 197,-20 c 32,-66 30,-70 -27,-70 -27,0 -50,3 -50,7 0,3 12,26 26,50 14,25 24,46 22,49 -3,2 -15,-14 -27,-36 -22,-39 -24,-40 -76,-40 h -54 l 26,45 25,46 57,-3 c 55,-3 56,-3 78,-48 z m 833,-10 v -50 h -35 -35 v 50 50 h 35 35 z m -1158,-78 c -29,-31 -33,-32 -109,-32 -73,0 -103,9 -103,32 0,4 40,8 89,8 h 88 l 7,48 c 3,27 9,52 13,56 4,3 15,-13 25,-37 l 19,-44 z m 428,113 c 0,-21 -27,-55 -44,-56 -12,0 -15,-3 -8,-6 14,-6 17,-33 2,-33 -7,0 -50,82 -50,96 0,2 23,4 50,4 28,0 50,-2 50,-5 z m 116,-22 c 38,-52 38,-53 -3,-53 -32,0 -41,5 -60,35 -13,19 -23,37 -23,40 0,3 15,5 33,5 25,0 38,-7 53,-27 z m -628,-28 22,-45 h -68 -68 l -22,45 -22,45 h 68 68 z m 556,5 c 14,-22 22,-40 16,-40 -5,0 -10,-9 -10,-20 0,-11 5,-20 10,-20 6,0 10,-7 10,-15 0,-10 -11,-15 -35,-15 -36,0 -39,4 -35,49 1,18 -2,22 -14,18 -9,-4 -16,-4 -16,-1 0,6 42,84 46,84 1,0 13,-18 28,-40 z m -871,18 c 5,-14 -23,-68 -34,-68 -4,0 -11,9 -14,20 -5,15 -15,20 -40,20 -24,0 -38,6 -45,20 -10,19 -8,20 59,20 46,0 71,-4 74,-12 z m 173,-40 c 15,-29 15,-30 -1,-24 -9,3 -42,9 -73,12 -34,4 -62,13 -71,23 -12,14 -12,13 -6,-7 4,-16 1,-29 -9,-41 -13,-14 -14,-23 -6,-42 9,-20 10,-21 7,-3 -3,12 0,29 5,38 14,26 39,1 33,-33 -4,-19 -3,-21 3,-7 8,17 9,17 25,-7 13,-21 17,-49 17,-131 0,-117 0,-116 -76,-116 h -44 v 124 c 0,76 4,127 10,131 8,5 8,11 0,20 -8,10 -6,23 8,52 l 20,38 71,2 c 70,2 71,2 87,-29 z m 1529,24 c 6,-4 18,-22 27,-40 14,-25 14,-32 3,-32 -7,0 -20,-19 -27,-42 -11,-31 -21,-44 -36,-46 -31,-5 -29,34 4,99 14,28 23,54 20,57 -4,3 -16,-18 -28,-46 -14,-34 -28,-52 -39,-52 -23,0 -59,51 -59,84 0,25 2,26 63,26 34,0 67,-4 72,-8 z m -524,-54 c 7,-13 6,-18 -4,-18 -11,0 -13,-27 -9,-140 l 5,-140 h -35 -35 l -6,68 c -14,141 -9,199 19,244 25,40 27,41 41,22 8,-10 19,-27 24,-36 z m -1223,-9 c 18,-31 21,-44 13,-52 -9,-9 -14,-8 -21,3 -6,9 -5,17 3,22 8,5 6,8 -5,8 -10,0 -18,-7 -18,-15 0,-10 -10,-15 -29,-15 -24,0 -34,8 -52,40 -12,22 -25,38 -27,35 -2,-2 5,-20 17,-40 14,-25 21,-53 21,-91 0,-53 0,-54 -30,-54 -28,0 -30,3 -30,34 0,19 -5,38 -11,42 -12,7 -7,31 16,87 15,37 16,37 73,37 56,0 57,-1 80,-41 z m 682,9 c 0,-22 -10,-48 -19,-48 -4,0 -13,11 -19,25 -9,19 -19,25 -42,25 -16,0 -30,4 -30,10 0,5 24,8 55,7 44,-2 55,-5 55,-19 z m -515,2 c 38,0 45,-4 62,-32 l 18,-31 80,2 c 77,2 79,2 62,-17 -14,-15 -17,-38 -17,-120 v -102 h -31 c -29,0 -30,2 -29,38 1,20 1,66 1,102 -1,59 -4,66 -26,76 -13,7 -25,8 -27,4 -2,-4 -28,-5 -58,-3 -51,5 -58,8 -80,42 -34,49 -36,55 -16,48 10,-4 37,-7 61,-7 z m 863,-35 c 1,-42 0,-45 -23,-45 -14,0 -25,5 -25,10 0,6 -7,10 -15,10 -10,0 -15,11 -15,35 0,34 1,35 38,35 h 38 z m 322,10 c 0,-44 -20,-46 -21,-2 l -1,32 -8,-29 c -6,-20 -5,-37 6,-57 l 15,-29 h -39 c -32,0 -41,5 -51,26 -6,15 -14,24 -17,21 -3,-3 0,-14 7,-25 20,-28 14,-212 -7,-212 -13,0 -15,21 -13,136 l 2,136 44,-4 c 23,-2 43,0 43,4 0,5 -16,8 -35,8 -24,0 -35,5 -35,15 0,12 13,15 55,15 h 55 z m -1520,12 c 0,-7 -6,-21 -13,-31 -12,-16 -14,-16 -26,-2 -8,9 -20,16 -27,16 -8,0 -14,7 -14,15 0,11 11,15 40,15 26,0 40,-4 40,-13 z m 1760,8 c 0,-3 -12,-23 -26,-45 -30,-44 -49,-51 -57,-19 -5,17 -12,21 -36,17 -36,-5 -36,-5 -15,27 14,22 24,25 75,25 33,0 59,-2 59,-5 z M 1230,1153 v -113 h -65 -65 v 101 102 l 38,42 37,43 28,-31 c 26,-30 27,-35 27,-144 z m 129,145 20,-33 -64,-3 c -61,-3 -67,-1 -90,25 -13,15 -25,31 -25,36 0,4 31,7 69,7 67,0 70,-1 90,-32 z m 222,-9 21,-42 -32,7 c -18,3 -50,6 -71,6 -33,0 -41,4 -54,31 -9,17 -19,29 -21,26 -3,-3 1,-18 9,-34 8,-15 17,-74 21,-130 l 6,-103 h -35 -35 v 118 c 0,154 5,162 100,162 h 70 z m 763,24 c 4,-10 15,-29 26,-43 12,-15 18,-18 14,-7 -4,10 -1,17 6,17 6,0 10,-8 8,-17 -2,-10 -11,-18 -21,-17 -9,0 -37,1 -62,2 l -45,2 26,40 c 29,44 40,49 48,23 z m -504,-53 c 0,-55 -6,-63 -20,-25 -7,18 -17,25 -35,25 -20,0 -25,5 -25,25 0,23 4,25 40,25 h 40 z m 789,9 c 13,-22 21,-42 18,-45 -10,-10 -185,9 -181,20 24,69 20,66 82,66 58,0 59,0 81,-41 z m -2106,-5 29,-34 H 441 329 l 28,35 c 26,33 32,35 83,34 50,0 58,-4 83,-35 z m 1670,-1 c -6,-16 -5,-16 10,-4 15,12 17,10 17,-18 0,-21 5,-31 15,-31 12,0 15,-15 15,-79 v -78 l -37,-7 c -21,-3 -62,-6 -90,-6 h -53 v 96 c 0,52 -5,104 -10,115 -10,18 -7,19 50,19 58,0 60,-1 60,-26 0,-14 4,-23 10,-19 6,3 7,17 4,31 -4,14 -2,24 5,24 6,0 8,-8 4,-17 z m -1495,-47 3,-46 h -35 c -36,0 -36,0 -36,43 0,52 3,56 38,53 24,-3 27,-8 30,-50 z m 968,-7 c -3,-34 -6,-86 -6,-115 0,-54 0,-54 -31,-54 h -31 l 3,115 3,115 h 35 34 z m 100,-9 h 74 v -79 c 0,-44 -4,-82 -8,-85 -4,-3 -42,-2 -83,1 l -74,5 5,117 c 2,64 6,99 8,79 l 3,-38 z m -798,40 c 18,0 22,-6 22,-29 0,-28 -1,-29 -50,-28 -35,2 -54,-3 -60,-13 -7,-11 -10,-1 -10,34 v 49 l 38,-7 c 20,-3 47,-6 60,-6 z m 412,-89 v -98 l -46,-7 c -100,-13 -94,-20 -94,99 v 105 h 70 70 z m 164,93 46,-7 v -99 -99 l -57,3 -58,3 -3,63 c -2,43 0,62 7,57 7,-4 11,4 11,19 0,14 -4,26 -10,26 -5,0 -10,9 -10,20 0,22 6,23 74,14 z m 266,-14 c 10,-19 8,-20 -50,-20 -53,0 -60,2 -60,20 0,17 7,20 50,20 39,0 52,-4 60,-20 z m -792,-50 -2,-60 h -42 c -31,0 -46,5 -58,23 -12,15 -16,17 -12,5 3,-12 0,-18 -9,-18 -19,0 -19,14 0,30 8,7 35,11 63,8 l 49,-3 -5,38 c -3,24 -1,37 7,37 8,0 11,-20 9,-60 z m 1362,-47 v -96 l -50,5 c -28,3 -52,7 -54,9 -2,2 -7,45 -11,94 l -7,90 61,-3 61,-4 z m -1940,2 v -85 h -50 -50 v 85 85 h 50 50 z m 110,60 c 0,-14 -4,-25 -10,-25 -6,0 -10,-28 -10,-63 v -63 l -40,4 -40,4 v 84 84 h 50 c 47,0 50,-2 50,-25 z m 1502,-7 c 1,-18 2,-59 2,-90 l 1,-58 h -37 -38 v 83 c 0,46 3,87 7,90 3,4 19,7 35,7 25,0 28,-4 30,-32 z m 545,22 h 53 v -86 -85 l -130,2 -130,3 v 89 90 l 77,-7 c 42,-3 100,-6 130,-6 z M 730,1095 v -65 h -42 c -24,0 -67,3 -95,6 l -53,7 v 58 59 h 95 95 z m 188,-18 c 3,-32 0,-37 -17,-37 -18,0 -21,6 -21,41 0,33 3,40 18,37 12,-2 18,-14 20,-41 z m 102,-2 c 0,-35 0,-35 -45,-35 -45,0 -45,0 -45,35 0,35 0,35 45,35 45,0 45,0 45,-35 z" + id="path1-8-9" /><path + d="m 399,1207 c -5,-28 -2,-47 6,-49 14,-2 19,32 6,45 -6,6 -11,8 -12,4 z" + id="path2-6-1" /></g></g><g + inkscape:groupmode="layer" + id="layer4" + inkscape:label="Moon" + style="display:inline;fill:#7e87d8;fill-opacity:0.893993;stroke-width:0.6;stroke-dasharray:none" + transform="translate(-6.7520832,-1.5246326)"><g + transform="matrix(0.00649006,0,0,-0.00625884,109.86763,30.00882)" + fill="#000000" + stroke="none" + id="g10" + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1372)"><path + d="m 1380,2857 c -41,-19 -127,-60 -190,-92 -63,-32 -187,-93 -275,-135 C 386,2374 389,2376 354,2307 346,2292 310,2150 274,1992 238,1834 184,1595 153,1460 92,1196 86,1133 116,1073 133,1039 294,832 687,338 765,239 837,159 862,143 l 42,-28 570,-3 c 415,-2 582,0 611,9 74,21 72,19 396,429 37,47 142,179 233,295 177,223 206,275 191,348 -23,108 -229,1012 -242,1059 -26,95 -61,126 -241,214 -986,481 -908,452 -1042,391 z m 220,-24 c 36,-15 67,-30 70,-33 6,-6 85,-45 295,-145 121,-58 190,-91 254,-125 9,-5 84,-41 166,-81 83,-40 152,-76 155,-80 3,-3 15,-11 28,-18 12,-6 22,-18 22,-26 0,-8 5,-15 10,-15 9,0 26,-30 36,-65 8,-26 36,-143 40,-165 13,-76 51,-240 57,-246 4,-4 7,-19 7,-33 0,-14 7,-45 15,-69 9,-24 13,-48 10,-53 -4,-5 -3,-15 2,-21 8,-14 12,-29 19,-68 2,-14 13,-59 24,-100 11,-41 20,-85 20,-98 0,-12 4,-30 9,-40 13,-26 31,-132 31,-188 0,-48 -27,-117 -54,-139 -7,-5 -39,-46 -72,-90 -32,-44 -69,-91 -80,-105 -12,-14 -61,-74 -108,-135 -48,-60 -92,-117 -99,-125 -7,-8 -30,-37 -52,-65 -21,-27 -44,-55 -51,-60 -6,-6 -41,-51 -78,-100 -65,-87 -151,-184 -164,-186 -4,0 -16,-3 -27,-7 -11,-3 -274,-7 -584,-9 -556,-3 -564,-3 -606,18 -23,11 -53,35 -68,52 -34,42 -159,198 -222,278 -27,35 -52,66 -55,69 -6,5 -116,146 -155,199 -11,15 -38,49 -60,77 -22,27 -43,53 -47,59 -4,5 -31,39 -61,75 -68,84 -81,105 -96,162 -14,48 -9,83 25,198 7,25 20,81 27,125 8,44 19,90 25,101 6,12 9,24 6,26 -2,3 3,34 12,69 8,35 18,75 20,89 3,14 12,54 20,90 9,36 20,85 26,110 5,25 13,54 18,65 4,11 13,49 20,85 6,36 15,83 19,105 21,111 80,176 206,226 33,13 71,31 85,40 30,19 400,200 416,203 6,1 22,9 35,17 13,8 51,28 84,43 33,16 110,53 170,82 129,63 161,66 255,27 z" + id="path1-7" + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1465,2538 c -43,-24 -55,-72 -45,-185 9,-93 -4,-123 -50,-123 -16,0 -64,-13 -107,-28 -43,-16 -80,-29 -83,-30 -32,-5 -98,-47 -184,-116 -43,-34 -53,-31 -123,34 -106,101 -161,116 -206,59 -22,-28 -23,-36 -14,-70 7,-30 22,-49 59,-77 120,-90 150,-127 117,-148 -13,-8 -38,-66 -73,-169 -20,-60 -28,-105 -31,-188 -2,-60 -9,-115 -15,-122 -13,-15 -86,-35 -132,-35 -58,0 -102,-18 -121,-49 -24,-41 -21,-73 9,-106 24,-26 28,-27 82,-20 31,4 85,16 120,27 51,15 66,17 78,7 9,-7 36,-56 62,-108 41,-85 59,-109 159,-210 l 113,-114 -24,-41 c -13,-23 -35,-62 -50,-88 -15,-25 -29,-57 -31,-70 -7,-35 13,-86 38,-95 60,-20 100,-4 126,51 10,23 33,72 51,110 l 32,68 37,-6 c 20,-3 59,-11 86,-17 83,-20 285,-14 365,10 19,6 37,11 40,11 14,0 90,-157 90,-186 0,-6 11,-21 25,-34 50,-47 125,-23 144,44 8,32 -11,82 -65,168 -38,60 -33,79 40,137 86,67 235,260 236,304 0,7 9,23 19,35 19,26 8,28 177,-21 64,-18 99,-12 123,22 27,38 30,53 15,82 -20,41 -36,49 -130,65 -124,22 -139,30 -140,79 -3,185 -30,310 -92,432 l -22,42 25,30 c 14,16 45,41 69,55 59,35 106,90 106,125 0,16 -9,40 -21,55 -16,21 -29,26 -64,26 -39,0 -50,-6 -120,-70 -42,-38 -84,-70 -94,-70 -9,0 -52,27 -96,60 -44,33 -96,67 -115,76 -19,9 -47,22 -62,29 -15,7 -62,21 -105,31 -114,26 -116,29 -110,148 6,109 -3,147 -38,170 -28,19 -52,20 -80,4 z m 80,-38 c 17,-18 17,-30 9,-138 -5,-64 -6,-118 -2,-120 4,-2 8,-9 8,-16 0,-7 37,-19 90,-30 133,-27 264,-95 367,-189 25,-23 44,-34 48,-27 3,6 11,8 16,4 5,-3 49,31 97,75 95,89 119,97 154,50 16,-21 17,-30 8,-50 -11,-24 -170,-139 -191,-139 -6,0 -9,-6 -6,-14 3,-7 1,-18 -4,-23 -5,-5 7,-39 31,-85 58,-111 80,-206 80,-350 0,-100 2,-118 16,-118 8,0 13,-4 10,-8 -3,-5 45,-16 105,-25 61,-10 119,-21 129,-27 23,-12 30,-43 16,-71 -23,-45 -38,-46 -158,-7 -62,21 -115,34 -118,30 -3,-4 -11,-7 -18,-7 -7,0 -23,-25 -36,-56 -49,-121 -143,-241 -245,-314 -50,-35 -69,-55 -67,-67 2,-10 0,-18 -5,-18 -5,0 4,-24 21,-52 17,-29 45,-81 62,-115 30,-59 31,-62 14,-87 -20,-31 -65,-35 -88,-8 -9,9 -33,63 -53,119 -21,56 -41,100 -46,97 -4,-2 -12,3 -17,11 -7,13 -13,14 -38,5 -48,-19 -172,-40 -234,-40 -69,0 -192,22 -244,44 -32,13 -38,13 -43,1 -3,-8 -11,-15 -19,-15 -8,0 -14,-7 -14,-15 0,-23 -78,-197 -92,-206 -36,-23 -88,5 -88,47 0,13 23,63 52,111 28,48 53,101 55,118 2,26 -3,34 -42,58 -97,62 -220,222 -266,349 -15,39 -25,55 -35,51 -8,-3 -14,0 -14,7 0,8 -7,9 -17,5 -44,-18 -190,-57 -212,-57 -25,-1 -61,34 -61,57 0,7 8,23 18,35 14,18 37,24 131,36 65,9 119,21 127,29 10,10 15,49 18,132 5,150 39,270 106,370 21,31 25,44 16,53 -6,6 -11,15 -11,20 0,5 -41,38 -92,74 -50,36 -95,76 -98,87 -5,14 0,31 12,48 36,47 56,40 152,-53 48,-48 90,-83 94,-80 4,4 13,2 20,-4 11,-9 20,-5 43,20 77,82 244,165 379,189 41,7 65,16 65,24 0,7 5,15 10,17 7,2 7,40 0,118 -8,97 -7,118 5,137 19,29 65,31 90,3 z" + id="path2-5" + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1354,2050 c -40,-10 -94,-30 -120,-43 -64,-32 -154,-99 -151,-111 2,-5 70,-55 151,-110 131,-90 149,-99 160,-85 6,10 17,86 25,170 7,85 15,164 18,177 6,26 8,26 -83,2 z m 48,-49 c -2,-7 -7,-64 -13,-125 -7,-72 -15,-116 -25,-126 -9,-10 -17,-11 -22,-5 -4,6 -20,19 -36,30 -16,11 -39,27 -51,35 -12,8 -40,27 -63,42 -53,35 -58,45 -36,69 32,35 175,100 214,97 24,-2 34,-8 32,-17 z" + id="path3-9" + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1584,2002 c 3,-37 8,-112 11,-167 8,-125 12,-145 30,-145 8,0 82,45 165,99 l 149,100 -52,41 c -67,54 -148,95 -237,119 l -73,20 z m 172,-28 c 39,-19 82,-46 95,-60 l 24,-26 -30,-23 c -16,-13 -57,-41 -92,-62 -35,-21 -74,-45 -88,-53 -13,-8 -26,-12 -30,-9 -3,3 -8,68 -12,144 l -6,138 34,-6 c 19,-4 66,-23 105,-43 z" + id="path4-6" + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 951,1718 c -34,-75 -61,-194 -61,-273 0,-30 1,-55 3,-55 1,0 79,25 172,54 124,40 171,59 173,71 4,19 -54,82 -181,197 l -77,70 z m 148,-91 c 50,-49 91,-94 91,-101 0,-7 -28,-20 -62,-30 -35,-10 -81,-24 -103,-31 -22,-8 -52,-16 -67,-19 -44,-7 -47,30 -13,174 12,52 41,103 56,98 4,-2 49,-43 98,-91 z" + id="path5-2" + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 2000,1752 c -9,-9 -67,-65 -129,-123 -78,-73 -112,-111 -108,-122 3,-9 70,-36 164,-67 87,-29 164,-55 171,-58 17,-6 16,136 -3,214 -16,70 -60,174 -72,173 -4,0 -15,-8 -23,-17 z m 30,-57 c 6,-7 13,-20 14,-27 1,-7 5,-18 8,-24 10,-15 28,-131 28,-176 0,-29 -4,-38 -16,-38 -23,0 -155,48 -173,63 -12,10 -13,9 -6,-3 6,-12 5,-13 -6,-2 -7,6 -21,12 -31,12 -10,0 -21,7 -25,16 -4,12 21,42 88,105 52,49 97,89 100,89 4,0 12,-7 19,-15 z" + id="path6-1" + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1454,1561 c -55,-24 -84,-98 -60,-154 18,-45 56,-70 107,-70 105,0 153,129 75,202 -26,25 -89,36 -122,22 z m 95,-47 c 47,-39 42,-102 -10,-129 -39,-21 -64,-19 -94,8 -39,33 -37,82 4,119 39,35 61,35 100,2 z" + id="path7-7" + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1175,1284 c -49,-7 -127,-18 -172,-24 l -83,-12 42,-82 c 31,-59 63,-102 121,-159 44,-44 82,-75 86,-70 4,4 16,31 26,58 10,28 38,101 62,163 36,90 42,116 33,128 -7,7 -15,13 -19,13 -3,-1 -46,-7 -96,-15 z m 75,-29 c 6,-4 3,-21 -6,-43 -9,-20 -17,-41 -18,-47 -2,-5 -8,-23 -15,-40 -6,-16 -19,-50 -28,-73 -9,-24 -23,-46 -31,-49 -31,-12 -182,176 -169,210 5,13 33,20 142,33 22,3 41,6 42,8 5,5 75,6 83,1 z" + id="path8-8" + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1705,1280 c -8,-13 115,-350 128,-350 5,0 46,37 91,83 56,56 94,105 120,155 20,39 33,72 29,72 -4,0 -79,11 -166,25 -178,28 -193,29 -202,15 z m 205,-46 c 105,-18 110,-20 110,-38 0,-34 -146,-206 -174,-206 -13,0 -36,46 -36,71 0,10 -3,19 -8,21 -9,4 -52,136 -52,159 0,19 10,18 160,-7 z" + id="path9-5" + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1391,1029 c -50,-83 -89,-154 -86,-158 5,-9 88,-27 160,-36 45,-5 209,16 222,29 3,2 -35,75 -83,160 -60,105 -94,156 -105,156 -12,0 -48,-51 -108,-151 z m 174,4 c 68,-117 77,-148 44,-159 -39,-12 -151,-13 -201,-1 -60,14 -62,29 -10,106 20,31 48,78 61,104 13,26 30,47 37,47 6,0 38,-43 69,-97 z" + id="path10-7" + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:70.2643;stroke-dasharray:none;stroke-opacity:1" /></g><path + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" + d="m 127.55304,38.270573 c -0.50292,-0.0212 -0.6649,-0.05716 -0.93097,-0.206661 -0.34854,-0.195847 -0.31254,-0.158532 -2.12597,-2.203731 -1.35028,-1.522854 -1.54387,-1.743845 -2.04389,-2.333232 -0.43311,-0.510506 -0.73955,-0.859118 -1.74056,-1.980051 -0.56941,-0.637649 -0.6934,-0.825677 -0.82557,-1.251955 -0.0624,-0.201106 -0.0678,-0.248623 -0.0553,-0.480692 0.014,-0.259024 0.0208,-0.286401 0.30777,-1.247328 0.0337,-0.113032 0.0918,-0.346421 0.12888,-0.518641 0.12969,-0.601858 0.24262,-1.039486 0.30413,-1.178571 0.035,-0.07935 0.062,-0.188385 0.062,-0.251249 0,-0.161416 0.68766,-2.907058 0.83353,-3.328026 0.0996,-0.287368 0.15955,-0.530057 0.29326,-1.186369 0.15741,-0.772708 0.23368,-0.98096 0.47855,-1.306721 0.14755,-0.196276 0.29684,-0.330055 0.56437,-0.505733 0.24928,-0.163688 0.45409,-0.260555 0.97193,-0.459702 0.21321,-0.08199 0.54706,-0.225547 0.74186,-0.319004 0.74188,-0.355906 3.23844,-1.451445 3.62196,-1.589386 0.0997,-0.03584 0.2932,-0.121317 0.43009,-0.189936 0.23178,-0.116182 0.48484,-0.227791 1.94398,-0.857365 1.10351,-0.47614 1.32049,-0.546135 1.69507,-0.546825 0.37398,-6.87e-4 0.81457,0.139614 1.59389,0.507554 0.45861,0.216532 0.84481,0.386089 2.88415,1.266253 0.61225,0.264244 1.36674,0.595795 1.67664,0.736781 0.30991,0.140986 0.97886,0.438201 1.48656,0.660475 1.11561,0.488429 1.51194,0.672991 1.80256,0.839437 0.26368,0.151015 0.3292,0.207928 0.3553,0.308612 0.0118,0.04549 0.0496,0.09244 0.0943,0.117124 0.0936,0.05164 0.18791,0.192029 0.27165,0.404275 0.0959,0.242996 0.32148,1.088048 0.4855,1.818439 0.16451,0.732515 0.37888,1.531494 0.43383,1.616953 0.0204,0.03185 0.0476,0.145689 0.0603,0.252996 0.0237,0.200502 0.0833,0.434505 0.17851,0.701095 0.0397,0.111331 0.0504,0.184521 0.0398,0.274559 -0.0116,0.09943 -0.002,0.146437 0.0487,0.247348 0.0347,0.06852 0.0966,0.271947 0.13748,0.452054 0.041,0.180107 0.11947,0.484346 0.17462,0.676088 0.14941,0.519451 0.20393,0.747121 0.23142,0.966276 0.0136,0.108667 0.0522,0.265248 0.0859,0.347957 0.0875,0.215367 0.16261,0.526941 0.21838,0.905991 0.0885,0.601704 0.0576,0.908646 -0.13082,1.298522 -0.0814,0.168524 -0.15254,0.263645 -0.35947,0.480929 -0.14187,0.148971 -0.4536,0.504139 -0.69272,0.789262 -0.23913,0.285123 -0.51807,0.611572 -0.61985,0.725441 -0.20438,0.228661 -1.84377,2.0828 -2.21822,2.508808 -0.13029,0.14823 -0.34712,0.383358 -0.48185,0.522506 -0.13472,0.139148 -0.4091,0.446538 -0.60972,0.683089 -0.52107,0.614385 -0.96838,1.104042 -1.29089,1.413087 -0.22884,0.219286 -0.3037,0.275659 -0.41142,0.30984 -0.19778,0.06276 -0.91724,0.08059 -4.44527,0.110141 -3.43101,0.02874 -4.96024,0.02856 -5.65447,-7.57e-4 z m 8.8229,-2.575462 c 0.14919,-0.07222 0.30386,-0.226181 0.37514,-0.373421 0.0463,-0.09559 0.0535,-0.14491 0.0436,-0.299851 -0.0102,-0.158836 -0.0304,-0.222989 -0.14085,-0.447115 -0.0709,-0.14392 -0.23645,-0.424017 -0.36785,-0.62244 -0.26627,-0.402069 -0.31804,-0.535394 -0.26096,-0.671994 0.0554,-0.132719 0.17944,-0.256911 0.48308,-0.483832 0.51597,-0.385616 1.01452,-0.872024 1.53413,-1.496768 0.38472,-0.462561 0.65542,-0.881747 0.65542,-1.014934 0,-0.05183 0.11035,-0.221172 0.223,-0.34221 0.10066,-0.108147 0.22547,-0.09458 1.0303,0.111991 0.6695,0.171834 0.72301,0.181666 0.99837,0.183423 0.25232,0.0015 0.30437,-0.0054 0.39214,-0.05285 0.13059,-0.07059 0.23962,-0.186077 0.35443,-0.375387 0.11811,-0.194741 0.11363,-0.322055 -0.019,-0.537725 -0.17936,-0.291803 -0.31119,-0.345683 -1.22077,-0.498921 -0.76405,-0.128721 -0.97122,-0.190539 -1.09982,-0.328184 -0.0579,-0.06201 -0.0638,-0.09291 -0.0831,-0.438823 -0.0288,-0.515817 -0.0863,-1.113283 -0.13324,-1.384096 -0.1252,-0.72312 -0.36418,-1.38804 -0.72081,-2.005595 l -0.17134,-0.29667 0.16798,-0.172681 c 0.15445,-0.158774 0.41148,-0.343992 0.85542,-0.61641 0.32788,-0.201201 0.64035,-0.512008 0.72968,-0.725797 0.0872,-0.208688 -0.006,-0.519746 -0.21081,-0.704511 -0.13341,-0.120288 -0.18505,-0.133464 -0.52322,-0.133464 -0.25156,0 -0.29167,0.0066 -0.41745,0.06859 -0.0766,0.03773 -0.24161,0.148178 -0.36684,0.245446 -0.63683,0.49464 -0.86546,0.662503 -0.99991,0.734156 l -0.14737,0.07855 -0.21065,-0.108813 c -0.11585,-0.05985 -0.41557,-0.240224 -0.66604,-0.400837 -0.73611,-0.472036 -0.86173,-0.541173 -1.34464,-0.740032 -0.35055,-0.144354 -0.58746,-0.213432 -1.19133,-0.347371 -0.69389,-0.153906 -0.85254,-0.225694 -0.935,-0.423052 -0.0393,-0.09394 -0.0467,-0.499691 -0.0187,-1.016764 0.0283,-0.521861 -0.0534,-0.879321 -0.23775,-1.041234 -0.2394,-0.210181 -0.55264,-0.263668 -0.81562,-0.13926 -0.386,0.182601 -0.50579,0.500628 -0.46365,1.230898 0.0352,0.609593 0.0285,0.960124 -0.0201,1.05013 -0.085,0.157544 -0.14807,0.191372 -0.42921,0.230399 -0.31872,0.04425 -0.69574,0.142735 -1.3044,0.340735 -0.25343,0.08245 -0.47743,0.149904 -0.49778,0.149904 -0.0964,0 -0.70939,0.346053 -1.21853,0.687881 -0.64314,0.431806 -0.68082,0.446198 -0.89016,0.340116 -0.0709,-0.03593 -0.24569,-0.159546 -0.38839,-0.274693 -0.72128,-0.581996 -0.92658,-0.717837 -1.22112,-0.807972 -0.33064,-0.101187 -0.57797,-0.0287 -0.81183,0.23792 -0.15992,0.18233 -0.18433,0.273776 -0.13036,0.488578 0.0848,0.337758 0.18588,0.452188 0.73613,0.833689 0.66294,0.459637 0.97404,0.748329 0.97404,0.903913 0,0.02566 -0.0448,0.0889 -0.0995,0.140519 -0.12303,0.116067 -0.23267,0.316147 -0.43264,0.78953 -0.21197,0.501749 -0.39275,1.052702 -0.44,1.340948 -0.0217,0.13219 -0.0509,0.433887 -0.065,0.670438 -0.0471,0.789766 -0.0904,1.050522 -0.18455,1.111692 -0.17755,0.115308 -0.70929,0.226659 -1.21561,0.254562 -0.61029,0.03363 -0.93779,0.191795 -1.09464,0.528632 -0.079,0.169671 -0.0817,0.380677 -0.006,0.527601 0.0805,0.157711 0.30609,0.367159 0.41818,0.388188 0.23774,0.0446 0.82813,-0.03911 1.56026,-0.221205 0.51669,-0.128512 0.62185,-0.133242 0.72737,-0.03271 0.0907,0.08637 0.25666,0.348903 0.56766,0.89775 0.12188,0.215069 0.27409,0.464965 0.33828,0.555326 0.17906,0.252084 0.56842,0.641249 1.35603,1.355354 l 0.7189,0.651811 -0.0463,0.0654 c -0.15909,0.22472 -0.73303,1.159737 -0.80887,1.317735 -0.0791,0.164758 -0.0909,0.213672 -0.09,0.371399 5.7e-4,0.156116 0.0134,0.205776 0.0885,0.353277 0.10179,0.199575 0.19247,0.271367 0.39618,0.313659 0.19544,0.04057 0.502,0.02149 0.62743,-0.03906 0.21142,-0.10205 0.30587,-0.238817 0.71815,-1.03989 0.2141,-0.415974 0.39862,-0.766649 0.41005,-0.779277 0.0251,-0.02778 0.28914,0.0075 0.94351,0.125927 1.09473,0.19821 2.61618,0.164005 3.57013,-0.08026 l 0.253,-0.06478 0.0654,0.07828 c 0.19031,0.227946 0.65338,1.118013 0.71057,1.365774 0.0457,0.198274 0.29126,0.425524 0.5523,0.511261 0.12183,0.04001 0.46113,0.01088 0.58787,-0.05048 z" + id="path237" + clip-path="url(#clipPath1371)" + transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" + d="m 135.80683,35.482258 c -0.15771,-0.09547 -0.24272,-0.249712 -0.6235,-1.131256 -0.21878,-0.506484 -0.31638,-0.683089 -0.37748,-0.683089 -0.0248,0 -0.0838,-0.03985 -0.13096,-0.08855 -0.10257,-0.105833 -0.19494,-0.114499 -0.41468,-0.0389 -0.38976,0.134097 -1.30034,0.276 -1.90024,0.29613 -0.71574,0.02402 -1.62918,-0.107396 -2.34912,-0.337952 -0.151,-0.04836 -0.299,-0.0816 -0.3289,-0.07388 -0.0299,0.0077 -0.0731,0.04735 -0.096,0.08805 -0.0277,0.04929 -0.0699,0.08008 -0.1265,0.09218 -0.11478,0.02457 -0.13991,0.04907 -0.15998,0.156066 -0.0232,0.123516 -0.2112,0.550348 -0.43633,0.990543 -0.25449,0.497545 -0.34389,0.631946 -0.44986,0.676219 -0.28745,0.120105 -0.69584,-0.09694 -0.69584,-0.369811 0,-0.123792 0.16543,-0.455241 0.46651,-0.934701 0.28161,-0.448446 0.46836,-0.815298 0.48744,-0.957574 0.0185,-0.137852 -0.0442,-0.253663 -0.18862,-0.348067 -0.0661,-0.04324 -0.23405,-0.153217 -0.3732,-0.244399 -0.44502,-0.291626 -0.94881,-0.77899 -1.39214,-1.346765 -0.36404,-0.466226 -0.58033,-0.827882 -0.88163,-1.47413 -0.10798,-0.231614 -0.19079,-0.31735 -0.28391,-0.293976 -0.0471,0.01183 -0.0659,0.0012 -0.0896,-0.05088 -0.0379,-0.08328 -0.0627,-0.08253 -0.36663,0.01121 -0.48502,0.149611 -1.56891,0.403646 -1.72224,0.403646 -0.15701,0 -0.43458,-0.205219 -0.50518,-0.373501 -0.0405,-0.09633 -0.0128,-0.169247 0.12234,-0.32319 0.14102,-0.160606 0.2745,-0.199927 0.98871,-0.291239 0.5853,-0.07483 0.99228,-0.144001 1.18638,-0.201631 0.15335,-0.04554 0.17128,-0.05817 0.20605,-0.145055 0.0552,-0.137763 0.089,-0.409291 0.11918,-0.954999 0.0717,-1.296151 0.33796,-2.161908 0.91043,-2.960053 0.24747,-0.345025 0.26942,-0.414827 0.16839,-0.535676 -0.0328,-0.03933 -0.0672,-0.09428 -0.076,-0.122114 -0.0193,-0.05991 -0.28283,-0.256671 -0.83824,-0.625707 -0.48522,-0.322421 -0.80896,-0.578192 -0.86224,-0.681222 -0.0239,-0.04611 -0.0329,-0.103405 -0.0234,-0.146917 0.0251,-0.114616 0.15367,-0.296216 0.26841,-0.379336 0.24404,-0.176783 0.4387,-0.07948 1.2624,0.630955 0.55145,0.475632 0.7033,0.582387 0.82839,0.582387 0.0401,0 0.0948,0.01672 0.12184,0.03714 0.11431,0.08646 0.18852,0.05294 0.49185,-0.222164 0.6969,-0.632062 2.05307,-1.226765 3.35221,-1.470001 0.43632,-0.08169 0.52191,-0.113572 0.56942,-0.212074 0.021,-0.04349 0.0608,-0.09569 0.0885,-0.115995 0.0457,-0.03346 0.05,-0.06384 0.0463,-0.323522 -0.002,-0.157629 -0.0222,-0.485833 -0.0441,-0.729342 -0.0631,-0.698082 -0.0478,-0.903084 0.0775,-1.041651 0.19001,-0.210102 0.58397,-0.191926 0.78424,0.03619 0.10929,0.124469 0.11969,0.240078 0.0745,0.828372 -0.0844,1.100166 -0.0835,1.137064 0.031,1.328228 0.0589,0.09831 0.18681,0.141524 0.79777,0.26948 1.27608,0.267262 2.24646,0.704421 3.21299,1.447464 0.16897,0.129897 0.34365,0.254963 0.38818,0.277925 0.0905,0.04665 0.18469,0.05504 0.18469,0.01645 0,-0.01391 0.0427,-0.02525 0.0949,-0.02519 0.11942,1.01e-4 0.336,-0.143784 0.91711,-0.609467 0.61122,-0.489799 0.83922,-0.629682 1.02715,-0.630181 0.0796,-2.02e-4 0.24788,0.123519 0.35504,0.261198 0.10587,0.136026 0.12129,0.249037 0.0491,0.359329 -0.117,0.178562 -1.24338,0.932408 -1.62575,1.088044 -0.1456,0.05927 -0.14705,0.06088 -0.15122,0.168574 -0.002,0.05981 -0.0119,0.143193 -0.021,0.18531 -0.0232,0.10561 0.0402,0.261036 0.3046,0.747621 0.52232,0.961094 0.65273,1.506002 0.69055,2.885293 0.0129,0.469744 0.0301,0.736908 0.0496,0.772808 0.0165,0.03018 0.0642,0.06238 0.10606,0.07158 0.0419,0.0092 0.0761,0.03236 0.0761,0.05147 0,0.05792 0.0935,0.07734 1.34088,0.278425 0.67495,0.108806 0.7572,0.131616 0.86651,0.240308 0.0862,0.08574 0.0948,0.106703 0.0946,0.230132 -3e-4,0.162063 -0.10264,0.363169 -0.23158,0.454978 -0.16045,0.114254 -0.34853,0.08343 -1.56445,-0.256391 -0.47917,-0.133919 -0.68749,-0.170164 -0.76407,-0.132941 -0.032,0.01554 -0.088,0.0347 -0.12449,0.04255 -0.0934,0.02012 -0.17786,0.142 -0.41668,0.601289 -0.34083,0.655474 -0.66562,1.102116 -1.16352,1.60002 -0.31915,0.319149 -0.5776,0.530128 -0.98464,0.803794 -0.49609,0.333545 -0.62024,0.456272 -0.58233,0.575694 0.008,0.02661 -0.002,0.06418 -0.026,0.0874 -0.0598,0.05977 -0.0217,0.151384 0.23396,0.562206 0.30026,0.482567 0.65646,1.108078 0.69156,1.214439 0.016,0.04846 0.0227,0.113123 0.0148,0.143693 -0.0224,0.08744 -0.16318,0.241987 -0.27034,0.29666 -0.1394,0.07111 -0.36119,0.06748 -0.4858,-0.0079 z m -3.0904,-2.814227 c 0.68156,-0.06518 1.17418,-0.155772 1.17418,-0.215927 0,-0.165427 -1.27531,-2.174041 -1.56926,-2.471609 -0.11387,-0.115264 -0.17183,-0.1061 -0.31996,0.0506 -0.34347,0.363307 -1.57684,2.216892 -1.57684,2.369758 0,0.08353 1.15776,0.298275 1.63409,0.303094 0.14039,0.0015 0.4364,-0.01474 0.65779,-0.03592 z m 2.66412,-0.852259 c 0.21449,-0.161945 0.69424,-0.590695 0.97392,-0.870395 0.29201,-0.292024 0.49339,-0.532824 0.65647,-0.784968 0.12296,-0.190098 0.371,-0.678832 0.371,-0.730995 0,-0.01882 -0.0608,-0.0373 -0.15811,-0.04799 -0.087,-0.0096 -0.52244,-0.06822 -0.96772,-0.130356 -1.83284,-0.255756 -2.1003,-0.280074 -2.18978,-0.199103 -0.0524,0.04743 -0.0394,0.120217 0.0868,0.485631 0.33783,0.978204 0.95398,2.384639 1.04468,2.384639 0.023,0 0.10518,-0.04791 0.18274,-0.106468 z m -6.08496,-0.05166 c 0.0342,-0.05914 0.18176,-0.392144 0.3278,-0.740014 0.14604,-0.347869 0.34117,-0.807872 0.43363,-1.022226 0.29896,-0.693091 0.34469,-0.886097 0.2347,-0.990616 -0.0897,-0.08523 -0.13739,-0.09267 -0.37004,-0.05777 -0.12,0.01801 -0.81588,0.107669 -1.54641,0.199258 -0.73053,0.09159 -1.34783,0.174415 -1.37179,0.184054 -0.0373,0.01501 -0.006,0.08201 0.21505,0.465266 0.32976,0.570945 0.49551,0.79716 0.84049,1.147135 0.46007,0.46673 1.0177,0.922437 1.12873,0.922437 0.0269,0 0.071,-0.04387 0.10784,-0.107524 z m 3.21617,-3.165218 c 0.29192,-0.07798 0.52198,-0.263659 0.64084,-0.517228 0.0583,-0.124487 0.0676,-0.17686 0.0676,-0.384465 0,-0.212821 -0.008,-0.257102 -0.0719,-0.386651 -0.18691,-0.380628 -0.5552,-0.565456 -1.087,-0.545492 -0.17899,0.0067 -0.25984,0.02213 -0.3506,0.06682 -0.19784,0.09744 -0.33954,0.242373 -0.4444,0.454536 -0.0891,0.180351 -0.0954,0.208236 -0.0954,0.422116 0,0.194993 0.01,0.249679 0.0664,0.368157 0.12627,0.264508 0.33824,0.440401 0.62661,0.51992 0.15566,0.04293 0.49126,0.04412 0.64785,0.0024 z m 5.14521,-0.397192 c 0.0774,-0.222091 0.0523,-1.001639 -0.0482,-1.494925 -0.12158,-0.597031 -0.56104,-1.590137 -0.70366,-1.590137 -0.0499,0 -1.75724,1.444642 -2.07353,1.754439 -0.20643,0.202182 -0.29548,0.327695 -0.27339,0.385274 0.0322,0.08393 0.4684,0.239424 1.88759,0.672866 0.54963,0.167867 1.02779,0.314281 1.06258,0.325368 0.10471,0.03336 0.12042,0.02777 0.14853,-0.05289 z m -9.86783,-0.288561 c 1.14165,-0.325063 1.83781,-0.549236 1.95937,-0.630944 0.0449,-0.03013 0.0853,-0.08091 0.0898,-0.112854 0.0243,-0.169247 -0.44538,-0.626272 -1.7028,-1.656787 -0.33361,-0.273413 -0.61332,-0.497115 -0.62157,-0.497115 -0.036,0 -0.43587,0.875623 -0.52699,1.154033 -0.1675,0.511772 -0.27258,1.050522 -0.28564,1.464477 -0.0115,0.367856 0.002,0.569242 0.0367,0.569242 0.0178,0 0.49089,-0.130524 1.05116,-0.290052 z m 5.86705,-2.281211 c 0.5325,-0.278606 2.512,-1.442857 2.51069,-1.476675 -5.9e-4,-0.0233 -0.75497,-0.533554 -0.97889,-0.662402 -0.27491,-0.158194 -0.64653,-0.326939 -0.99379,-0.451263 -0.26722,-0.09567 -1.28676,-0.36568 -1.30644,-0.345995 -0.006,0.0058 0.006,0.151602 0.0273,0.323991 0.0208,0.172387 0.0672,0.723286 0.10338,1.224218 0.0851,1.180742 0.11301,1.395024 0.19553,1.499002 0.0486,0.06127 0.17271,0.03017 0.44229,-0.110876 z m -2.3762,-0.02195 c 0.0545,-0.16608 0.15028,-0.837396 0.23278,-1.631824 0.0427,-0.410486 0.0952,-0.858878 0.11677,-0.996427 0.0443,-0.282249 0.0377,-0.298172 -0.11494,-0.276359 -0.21456,0.03066 -0.87763,0.195122 -1.20989,0.300081 -0.41725,0.131799 -0.92147,0.375448 -1.33489,0.645037 -0.31183,0.203327 -0.54395,0.391074 -0.54395,0.439938 0,0.04058 0.53968,0.401001 1.31557,0.878603 1.09744,0.675514 1.25447,0.759281 1.40415,0.749061 0.0936,-0.0064 0.10368,-0.01453 0.1344,-0.10811 z" + id="path238" + clip-path="url(#clipPath1370)" + transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" + d="m 130.76375,25.291305 c -0.065,-0.07184 -0.34419,-0.252648 -1.02785,-0.665671 -0.61398,-0.37093 -0.72828,-0.457061 -0.72828,-0.548808 0,-0.109686 0.22982,-0.287287 0.61683,-0.47669 0.61789,-0.302386 1.23142,-0.499177 1.45731,-0.467435 0.16589,0.02331 0.23485,0.07338 0.21725,0.15771 -0.008,0.03735 -0.0487,0.372533 -0.0908,0.744846 -0.10606,0.937203 -0.1611,1.184007 -0.28307,1.269444 -0.0749,0.05246 -0.10398,0.05004 -0.1614,-0.01339 z" + id="path239" + clip-path="url(#clipPath1369)" + transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" + d="m 127.13596,27.715937 c -0.17548,-0.09054 -0.16912,-0.390715 0.0246,-1.157213 0.12658,-0.501132 0.2771,-0.826352 0.44272,-0.956635 0.0849,-0.06674 0.079,-0.06974 0.41775,0.213036 0.61006,0.509244 1.36616,1.214213 1.36616,1.273781 0,0.05745 -0.29115,0.165093 -0.90617,0.335004 -1.20751,0.3336 -1.24756,0.342296 -1.34499,0.292027 z" + id="path240" + clip-path="url(#clipPath1368)" + transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" + d="m 128.84181,31.236583 c -0.17172,-0.107684 -0.774,-0.719775 -0.97845,-0.994374 -0.20447,-0.274654 -0.33446,-0.521305 -0.31201,-0.592046 0.0322,-0.101633 0.30514,-0.161759 1.22859,-0.270696 0.18784,-0.02216 0.38139,-0.05305 0.43009,-0.06863 0.0487,-0.01558 0.22892,-0.02845 0.4005,-0.02856 0.41647,-3.03e-4 0.41557,-0.0019 0.23228,0.426257 -0.0536,0.125234 -0.16254,0.387084 -0.24207,0.581892 -0.30869,0.7561 -0.46011,1.024633 -0.57775,1.024633 -0.0308,0 -0.11236,-0.03531 -0.18118,-0.07847 z" + id="path241" + clip-path="url(#clipPath1367)" + transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" + d="m 131.63878,32.412098 c -0.38139,-0.04628 -0.64615,-0.143791 -0.6722,-0.247571 -0.0218,-0.08687 0.0621,-0.259842 0.26341,-0.543101 0.23174,-0.326051 0.44804,-0.652811 0.60478,-0.913567 0.14488,-0.24104 0.28658,-0.393903 0.34453,-0.371665 0.14456,0.05547 0.96625,1.287037 1.10359,1.654049 0.13812,0.369158 0.0368,0.415924 -0.92305,0.425976 -0.34788,0.0036 -0.67235,0.0018 -0.72106,-0.0041 z" + id="path242" + clip-path="url(#clipPath1366)" + transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" + d="m 135.2176,31.349427 c -0.0922,-0.09945 -0.18658,-0.308962 -0.21335,-0.473448 -0.0149,-0.09161 -0.0468,-0.173033 -0.0861,-0.219741 -0.12361,-0.146895 -0.459,-1.101313 -0.4413,-1.255785 0.008,-0.06735 0.016,-0.07187 0.14416,-0.07918 0.19539,-0.01114 1.79702,0.219117 2.08321,0.299499 0.0952,0.02674 0.17163,0.08389 0.17163,0.128348 0,0.254901 -1.31641,1.667125 -1.55403,1.667125 -0.0233,0 -0.0702,-0.03007 -0.1042,-0.06682 z" + id="path243" + clip-path="url(#clipPath1365)" + transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" + d="m 136.85053,27.7611 c -0.44093,-0.129612 -0.87343,-0.284476 -1.04647,-0.374713 -0.0854,-0.04452 -0.165,-0.08524 -0.17689,-0.09046 -0.0119,-0.0052 -0.0137,0.01544 -0.004,0.04592 0.0172,0.05434 0.0161,0.05464 -0.0602,0.01522 -0.0427,-0.02211 -0.13033,-0.04741 -0.1946,-0.05622 -0.0681,-0.0093 -0.1473,-0.04163 -0.18983,-0.07742 -0.0717,-0.06036 -0.0723,-0.06276 -0.032,-0.140771 0.0591,-0.114361 0.38607,-0.425191 0.89434,-0.850279 0.65349,-0.546562 0.74934,-0.616738 0.8028,-0.587747 0.14825,0.08039 0.31651,0.417122 0.4125,0.825537 0.11714,0.498444 0.1815,1.168481 0.12619,1.313942 -0.0213,0.05601 -0.0395,0.06474 -0.13282,0.06371 -0.0595,-6.34e-4 -0.23907,-0.03968 -0.3991,-0.08671 z" + id="path244" + clip-path="url(#clipPath1364)" + transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" + d="m 133.40106,25.22417 c -0.041,-0.323286 -0.15017,-2.102903 -0.13043,-2.126167 0.003,-0.0041 0.0825,0.0048 0.17573,0.01975 0.4069,0.065 1.3374,0.458288 1.75969,0.743753 0.13718,0.09273 0.32889,0.266149 0.32889,0.297507 0,0.08815 -1.90669,1.185325 -2.05989,1.185325 -0.0511,0 -0.0608,-0.01567 -0.074,-0.120174 z" + id="path245" + clip-path="url(#clipPath1363)" + transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /><path + style="fill:#7e87d8;fill-opacity:0.893993;stroke:#ffffff;stroke-width:0.6;stroke-dasharray:none;stroke-opacity:1" + d="m 131.89962,28.280454 c -0.23588,-0.10709 -0.43645,-0.363097 -0.43712,-0.557948 -0.002,-0.291031 0.43192,-0.708389 0.73483,-0.708389 0.20594,0 0.5447,0.237524 0.65939,0.462343 0.12147,0.238099 0.0356,0.528392 -0.20059,0.678188 -0.27178,0.172355 -0.55152,0.218873 -0.75651,0.125806 z" + id="path246" + clip-path="url(#clipPath1362)" + transform="matrix(0.72056785,0,0,0.77309696,24.344762,-0.49081057)" /></g><g + inkscape:groupmode="layer" + id="layer7" + inkscape:label="Aura" + style="display:none" + transform="translate(-6.7520832,-1.5246326)"><ellipse + style="fill:url(#radialGradient257);fill-rule:evenodd;stroke-width:0.288226" + id="path255" + cx="101.31387" + cy="157.17741" + rx="48.20459" + ry="114.84635" /></g><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.1;stroke-dasharray:none;stroke-opacity:1" + d="m 3.638022,169.93386 c 0.181901,-0.0707 2.5320995,-0.49141 5.2226632,-0.93493 2.6905638,-0.44353 4.9229858,-0.83752 4.9609378,-0.87553 0.03795,-0.038 0.06956,-4.33548 0.07024,-9.54991 0.0011,-8.2918 0.03032,-9.69537 0.23314,-11.19191 0.322393,-2.37882 0.793573,-4.38488 1.631355,-6.94549 0.795589,-2.43165 1.319369,-3.47618 1.891504,-3.77204 0.231095,-0.1195 1.105027,-0.25198 2.21484,-0.33574 2.38097,-0.1797 2.700382,-0.23292 3.191859,-0.53181 0.613156,-0.37288 1.476385,-3.9336 2.929302,-8.40385 0.7053,-2.17002 1.042589,-1.69805 1.134968,-1.7335 0.09238,-0.0354 2.333043,0.0247 4.979255,0.13371 2.985889,0.12298 4.858903,0.15122 4.936786,0.0744 0.07911,-0.078 0.06648,-0.7228 -0.03417,-1.74447 -0.23141,-2.34904 -0.201552,-3.71823 0.102211,-4.68709 0.521393,-1.66301 1.559507,-8.23756 2.469841,-15.64195 0.246348,-2.00372 0.397494,-2.86188 0.466007,-2.64584 0.05577,0.17586 0.4341,2.55217 0.840727,5.28069 0.834872,5.60205 1.704314,10.92113 1.978967,12.1069 0.223618,0.96543 0.299961,2.31272 0.475062,8.38375 0.128445,4.45345 0.263049,5.96768 0.530474,5.96768 0.404741,0 1.617506,-2.66495 4.006072,-8.803 0.977199,-2.51116 1.426866,-3.24056 2.184739,-3.5438 0.27999,-0.11203 1.246809,-0.2694 2.14849,-0.34972 2.871277,-0.25576 3.214844,-0.35394 3.416369,-0.97626 0.07414,-0.22896 0.198271,-1.10053 0.275844,-1.93683 0.418134,-4.50783 2.097625,-8.61785 3.828293,-9.36854 0.377055,-0.16355 1.515333,-0.22937 5.810724,-0.33597 l 5.341813,-0.13257 -0.08208,-1.00191 c -0.190257,-2.32252 -0.347764,-8.572749 -0.23194,-9.204005 0.06675,-0.363802 0.277038,-1.253249 0.467302,-1.976549 0.984928,-3.744243 2.186938,-13.326295 2.448769,-19.520847 0.115202,-2.725507 0.18677,-3.226197 0.448667,-3.138897 0.245195,0.08173 0.342953,0.722386 0.690915,4.52796 0.51073,5.585775 0.748559,7.672829 1.567804,13.758333 0.869675,6.460122 1.043906,8.356133 1.337223,14.552085 0.303874,6.41892 0.33523,6.54844 1.585291,6.54844 1.116187,0 1.681786,-0.78845 2.514875,-3.50573 1.002551,-3.27003 1.439703,-4.50027 1.969547,-5.54273 l 0.544788,-1.07186 0.0397,0.83889 c 0.0456,0.96347 -0.134636,1.59352 -0.964938,3.37322 -1.272886,2.72836 -1.663224,4.86379 -1.015182,5.55377 0.169696,0.18068 0.556649,0.39318 0.859896,0.47223 0.303249,0.0791 0.616862,0.18906 0.69692,0.24448 0.293582,0.2032 0.449752,0.69646 0.449752,1.42054 v 0.74187 l -0.496279,-0.5217 c -0.651137,-0.68449 -0.90877,-0.71749 -5.15289,-0.66018 -4.114517,0.0556 -4.140414,0.0634 -4.140414,1.25142 0,0.40482 0.0886,1.46013 0.196895,2.34513 0.108291,0.885 0.376563,3.75221 0.596159,6.37158 0.523425,6.24354 0.779285,7.73497 1.34566,7.84405 0.40627,0.0782 0.804323,-0.55889 2.436286,-3.89958 2.584418,-5.2904 2.956121,-5.76371 4.857843,-6.18584 l 0.370866,-0.0823 -0.04014,0.69715 c -0.03959,0.6877 -0.04656,0.69818 -0.514197,0.77364 -0.683032,0.1102 -1.364956,0.57673 -1.885407,1.28985 -0.969995,1.3291 -2.998343,5.92538 -2.998343,6.79431 0,0.32566 0.100782,0.55617 0.342074,0.7824 0.315317,0.29563 0.438629,0.31922 1.576475,0.30154 1.832896,-0.0285 2.587167,-0.36102 3.257095,-1.43603 l 0.247324,-0.39688 5.3e-4,1.28985 5.29e-4,1.28984 h 0.836176 c 0.651195,0 0.993859,-0.0805 1.548971,-0.3638 0.664438,-0.33912 0.752438,-0.4433 1.29698,-1.53554 0.43062,-0.86373 0.699545,-1.23981 1.023051,-1.43068 0.581683,-0.34321 0.909955,-1.0605 1.307121,-2.85616 0.527981,-2.3871 0.664715,-2.53117 2.715633,-2.8613 0.895109,-0.14408 1.310277,-0.27611 1.536443,-0.48857 0.376198,-0.35342 0.715521,-1.36973 1.188892,-3.56082 0.573553,-2.65482 0.94451,-3.19507 2.502826,-3.64506 0.436189,-0.12596 2.609077,-0.59686 4.828647,-1.04645 l 4.03557,-0.81744 0.0829,-10.97079 c 0.0456,-6.033928 0.14944,-11.804221 0.23079,-12.822867 0.27292,-3.417424 0.42516,-4.991801 1.20885,-12.501562 0.73915,-7.082965 1.83501,-18.135849 1.86458,-18.806157 0.041,-0.929852 0.27722,1.072607 0.57982,4.915532 0.58007,7.366616 1.03593,11.967448 1.85472,18.719271 0.63417,5.229476 0.83591,7.217881 0.99322,9.789583 0.1058,1.729589 0.37179,16.83457 0.39195,22.25807 l 0.003,0.82683 1.09141,-0.002 c 0.61236,-0.001 1.23657,-0.0753 1.42213,-0.16904 0.46878,-0.23683 0.61353,-0.8033 0.85624,-3.35084 0.3666,-3.8478 0.73671,-6.41656 1.66546,-11.55942 0.75527,-4.182181 1.7458,-9.194979 1.83694,-9.296198 0.0505,-0.05606 0.40464,1.968002 0.78702,4.497916 1.15623,7.649852 1.75308,10.486822 2.20624,10.486822 0.27472,0 0.39462,-0.32459 0.78185,-2.11667 0.44624,-2.06519 0.7115,-2.69345 1.25607,-2.97507 0.22945,-0.11865 1.11413,-0.29214 1.96595,-0.38554 1.67044,-0.18316 2.08852,-0.328508 2.2627,-0.78665 0.16665,-0.438325 0.26041,-1.844013 0.40975,-6.143222 0.0771,-2.219113 0.21837,-4.338566 0.3307,-4.960937 0.79639,-4.412287 0.99402,-5.812719 1.78689,-12.66212 0.29058,-2.510234 0.5862,-4.92125 0.65693,-5.357812 0.0707,-0.436563 0.12905,-0.84832 0.1296,-0.915017 0.003,-0.315486 0.14738,0.08447 0.26358,0.728115 0.20233,1.120786 1.28496,9.302676 1.64575,12.437676 0.56068,4.871871 0.66367,6.933237 0.87836,17.580997 0.12691,6.29388 0.2755,9.47398 0.46584,9.96999 0.12051,0.31402 0.5192,0.26533 0.6778,-0.0828 0.075,-0.16459 0.359,-1.01291 0.63111,-1.88515 0.93947,-3.01143 1.07599,-3.11458 4.25156,-3.21234 2.77195,-0.0853 3.91548,0.0348 4.42684,0.4651 0.59755,0.50279 1.10768,1.63688 1.84572,4.10324 0.74295,2.48271 0.90862,2.94507 1.05532,2.94507 0.13409,0 0.22906,-2.03531 0.4661,-9.98802 0.39004,-13.085677 0.72558,-18.53671 1.52282,-24.738538 0.91501,-7.117929 1.30902,-11.390701 1.67078,-18.11927 0.1272,-2.3657 0.27279,-4.257275 0.32352,-4.203501 0.0507,0.05377 0.4588,3.699412 0.90679,8.101417 0.92217,9.061312 1.53354,14.340962 2.10636,18.190104 0.55953,3.759711 0.67489,5.801426 0.67791,11.997187 0.003,5.591015 0.0878,6.971831 0.45438,7.376931 0.11477,0.12683 0.44758,0.30217 0.73956,0.38965 0.9974,0.29882 1.41387,1.19274 2.69899,5.79312 0.67052,2.40026 1.116,3.51019 1.62029,4.03694 0.65316,0.68226 1.56664,0.59607 1.97468,-0.18632 0.18467,-0.35408 0.24685,-1.00528 0.33212,-3.47834 0.20467,-5.93578 0.594,-10.551071 1.50096,-17.793231 0.62708,-5.007318 0.93195,-7.874793 1.32216,-12.435416 0.33049,-3.862644 0.51493,-5.2241 0.72537,-5.354153 0.1536,-0.09494 0.24766,0.706596 0.40318,3.435924 0.49606,8.705164 1.32003,15.373297 2.57472,20.835937 0.2425,1.055825 0.26334,3.987579 0.0558,7.844959 -0.0814,1.51345 -0.12628,2.7732 -0.0996,2.79945 0.0266,0.0263 2.10227,0.10729 4.61251,0.18011 5.0007,0.14505 5.57772,0.23103 6.40095,0.95385 1.29526,1.13725 2.6399,5.31202 2.98778,9.27633 0.13531,1.5419 0.24408,1.87015 0.70153,2.11693 0.16205,0.0874 1.21026,0.23485 2.32937,0.32762 1.7985,0.1491 2.09369,0.20769 2.54239,0.50463 0.61787,0.40889 1.22423,1.6123 2.23657,4.43883 2.06545,5.76691 3.14053,7.96496 3.56379,7.28632 0.15832,-0.25387 0.25007,-1.9698 0.40726,-7.61705 0.0729,-2.61938 0.18784,-5.11969 0.2554,-5.55625 0.0676,-0.43656 0.36106,-2.28203 0.65222,-4.10104 0.51815,-3.2372 1.55624,-10.37154 1.88152,-12.93079 0.0901,-0.70901 0.18671,-1.26626 0.21463,-1.23832 0.0279,0.0279 0.37198,2.60234 0.76453,5.72089 0.91416,7.26237 1.3153,9.94957 1.75486,11.75551 0.29645,1.21797 0.35474,1.75715 0.35752,3.30729 0.002,1.01865 -0.0467,2.37298 -0.10778,3.00964 l -0.11107,1.15755 1.10327,0.001 c 0.60681,7.6e-4 2.69987,-0.0674 4.65127,-0.15146 3.00634,-0.12951 3.57517,-0.12468 3.72598,0.0317 0.0979,0.10149 0.66286,1.81483 1.25547,3.80742 1.1973,4.02571 1.58646,5.1401 1.9957,5.71484 0.46146,0.64806 0.94905,0.80879 2.83224,0.93365 2.5493,0.16902 3.06309,0.42491 3.68378,1.83464 0.32027,0.72746 1.14468,3.44476 1.6853,5.55491 0.6838,2.66907 0.68481,2.68797 0.74657,13.96112 l 0.058,10.58768 2.47146,0.42932 c 5.08375,0.88311 6.85849,1.25431 6.48333,1.35604 -0.19458,0.0528 -2.96278,0.0355 -6.15156,-0.0383 -3.1888,-0.0738 -22.97257,-0.14658 -43.96395,-0.16174 -93.489493,0.26898 -77.45748,-0.0332 -95.349224,-0.41856 l 18.208054,0.50106 -22.47446,-0.19685 21.39017,0.19845 -58.531055,0.28505 c -20.427487,0.0481 -38.6291664,0.11748 -40.4481768,0.15423 -2.2106493,0.0447 -3.1976271,0.0242 -2.9765625,-0.0617 z" + id="path889" + inkscape:label="sig_city" + clip-path="url(#clipPath2867)" + sodipodi:nodetypes="cssssssssscssssssssssssssssscssssssssssscssscsscscssscsscssssssscccsssssssssscssssssscccsssssssssssssscsssssssssssssssscsssssssssssscssssssssssssssscsccsssssssscssscsccccccc" + transform="matrix(1,0,0,0.9974191,-13.189295,0.54804504)" /><g + inkscape:groupmode="layer" + id="layer8" + inkscape:label="CastleFill" + style="display:inline" + transform="translate(-6.7520832,-1.5246326)"><rect + style="display:inline;fill:#000000;stroke:#000000;stroke-width:2.37143;stroke-dasharray:none" + id="rect1" + width="35.074867" + height="74.894661" + x="59.792244" + y="84.462715" + ry="0" /><rect + style="fill:#000000;stroke:#000000;stroke-width:1.96206;stroke-dasharray:none" + id="rect2" + width="17.957724" + height="5.3187361" + x="55.964165" + y="99.647202" + transform="matrix(0.99992303,0.01240712,-0.02014741,0.99979702,0,0)" /><rect + style="display:inline;fill:#000000;stroke:#000000;stroke-width:2.59431;stroke-dasharray:none" + id="rect2-5" + width="13.975468" + height="11.948432" + x="56.187912" + y="100.5384" + transform="matrix(0.99935823,0.03582086,-0.00697568,0.99997567,0,0)" /><g + id="g113" + inkscape:label="wall" + style="fill:#642a23;fill-opacity:1;stroke-width:0;stroke-dasharray:none" + transform="translate(-6.2125015,0.73088253)"><path + style="fill:url(#linearGradient117);fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 67.862846,100.3003 c -4.049175,-0.10841 -6.104713,-0.28672 -6.104713,-0.529647 0,-0.33079 4.673045,-0.81327 11.659913,-1.203873 5.619677,-0.31416 7.552597,-0.4762 7.790977,-0.65317 0.20341,-0.15102 -0.49984,-0.24002 -2.570303,-0.32535 -1.393857,-0.0574 -1.559945,-0.0945 -1.954277,-0.43474 -0.408692,-0.35273 -0.424916,-0.43418 -0.314012,-1.57669 0.419408,-4.32065 0.377861,-4.64897 -0.59295,-4.68521 -0.516361,-0.0192 -1.450824,-0.48498 -1.450824,-0.72303 0,-0.0504 0.310825,-0.0299 0.690717,0.0453 0.379891,0.0752 0.82428,0.0989 0.987525,0.0523 0.452287,-0.12892 0.354572,-0.573 -0.196943,-0.895228 -0.433205,-0.253108 -0.669944,-0.282393 -1.930167,-0.238897 -1.67234,0.05771 -2.670118,0.359174 -3.064877,0.925895 -0.25864,0.3713 -0.253526,0.38191 0.184037,0.38191 0.346065,0 0.474102,0.0847 0.554077,0.36656 0.05721,0.20161 0.139379,0.48652 0.182576,0.63314 0.04323,0.14663 -0.05892,1.55622 -0.226953,3.13245 l -0.305528,2.86585 -0.232635,-0.99972 c -0.127934,-0.54984 -0.432755,-2.013 -0.677341,-3.25146 -0.244584,-1.23845 -0.487024,-2.28315 -0.538748,-2.32156 -0.05172,-0.0384 -0.0941,0.43505 -0.09421,1.05209 -2.41e-4,1.79122 -0.334457,3.92916 -0.740043,4.73391 -0.389606,0.77305 -1.110344,1.25175 -1.886191,1.25278 -0.791256,8.4e-4 -0.8467,-0.23185 -0.722919,-3.0364 0.122592,-2.77741 -0.01678,-4.10842 -0.455461,-4.34854 -0.537791,-0.29441 -0.74755,-0.839098 -0.826105,-2.145174 -0.170618,-2.836517 0.293253,-2.990225 9.837829,-3.260152 2.616947,-0.07398 5.505456,-0.169149 6.418916,-0.211399 l 1.66082,-0.07691 v 7.805795 7.8058 l -5.790472,-0.0215 c -3.184771,-0.0118 -7.366051,-0.0637 -9.291728,-0.11531 z" + id="path257" + clip-path="url(#clipPath1359)" /><path + style="fill:url(#linearGradient119);fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 97.757843,98.16983 c -0.5433,-0.15576 -1.10447,-0.66126 -1.55432,-1.40008 -0.33833,-0.55572 -0.40424,-0.89447 -0.40172,-2.06442 10e-4,-0.76978 0.0691,-1.91383 0.14996,-2.54233 0.16616,-1.29164 -0.004,-1.7231 -0.684,-1.7231 -0.57628,0 -0.64283,-0.09 -0.40807,-0.55184 0.18983,-0.373293 0.16162,-0.431821 -0.38146,-0.792034 -0.50381,-0.334182 -0.73138,-0.388871 -1.61593,-0.38827 -2.82804,0.0029 -4.34881,2.135854 -4.35225,6.107204 -0.001,2.08896 -0.45378,2.68958 -2.02387,2.68958 -1.15014,0 -1.65797,-0.236 -1.94455,-0.90367 -0.1439,-0.33521 -0.23891,-2.2834 -0.29322,-6.01145 l -0.0803,-5.515521 3.11413,0.05874 c 2.23381,0.04204 3.26641,0.11383 3.65279,0.253913 0.50895,0.184443 0.53534,0.232979 0.4786,0.880216 -0.0485,0.554136 0.0114,0.738067 0.3142,0.962827 0.75134,0.55777 1.34333,0.242809 1.51027,-0.803537 0.0616,-0.386116 0.22497,-0.785899 0.36304,-0.888405 0.3386,-0.251365 2.17868,-0.231926 4.59036,0.04849 2.783627,0.323662 2.708677,0.288077 2.707777,1.284833 -0.001,1.169129 -0.30941,4.232284 -0.64115,6.368134 -0.600677,3.86735 -1.312537,5.27129 -2.500237,4.93076 z" + id="path258" + clip-path="url(#clipPath1358)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 93.821493,99.597633 c -3.77262,-0.12759 -7.60689,-0.51484 -7.30651,-0.73786 0.53667,-0.398413 11.72376,0.008 15.080747,0.54617 1.18035,0.1897 0.0797,0.26839 -3.559657,0.25452 -1.46151,-0.006 -3.35802,-0.0338 -4.21458,-0.0627 z" + id="path261" + clip-path="url(#clipPath1355)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 74.28177,106.02374 c -5.083119,-0.0859 -9.58817,-0.30196 -13.046533,-0.62559 -1.73232,-0.16211 -2.040004,-0.22277 -1.449468,-0.28572 1.190842,-0.12702 7.830004,-0.34097 14.002237,-0.45132 3.226716,-0.0576 4.930571,-0.0573 7.002447,8.5e-4 3.33953,0.0946 4.17257,0.17782 4.72353,0.47155 0.53592,0.28572 0.77165,0.25517 0.882,-0.11427 0.0745,-0.24898 0.12774,-0.29434 0.44886,-0.38172 0.86888,-0.23638 3.34698,-0.44249 6.82412,-0.56761 2.42079,-0.0872 9.264947,-0.0869 11.181077,2.5e-4 2.49835,0.11368 4.36983,0.33502 4.5375,0.53639 0.51116,0.61403 -6.73204,1.15476 -18.676997,1.39425 -2.86905,0.0576 -13.492975,0.0719 -16.428773,0.0224 z" + id="path264" + clip-path="url(#clipPath1352)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 80.521133,228.79568 c -0.69125,-0.1323 -1.55457,-0.24531 -1.918467,-0.25128 -1.995033,-0.0328 -2.082278,-0.25517 -2.305438,-5.87586 -0.246479,-6.20784 -0.602802,-7.04204 -3.412079,-7.98806 -3.201852,-1.07824 -6.115695,1.2312 -6.799141,5.38879 -0.108463,0.65984 -0.197436,2.19199 -0.197711,3.40484 l -3.57e-4,2.20517 3.187017,0.5649 c 1.851348,0.32814 3.669719,0.73831 4.338779,0.97866 l 1.151766,0.41381 -0.493342,0.19189 c -0.43094,0.16762 -0.577945,0.16676 -1.162206,-0.008 -0.367873,-0.10914 -1.609638,-0.32371 -2.759484,-0.47655 -2.569042,-0.34145 -3.755114,-0.65169 -3.988721,-1.04332 -0.27394,-0.45921 -1.008494,-0.60734 -2.687505,-0.54191 -1.371227,0.0533 -1.617016,0.10664 -2.626331,0.56918 -0.920812,0.42195 -1.193108,0.48946 -1.573381,0.39019 -1.108631,-0.28946 -1.60306,-1.98282 -1.284092,-4.39786 0.484767,-3.67039 1.700641,-4.66431 2.510572,-2.05226 0.12503,0.40323 0.268249,0.78583 0.318266,0.85021 0.218047,0.28074 0.394481,-0.38772 0.491616,-1.86261 0.111065,-1.6863 -0.04541,-2.86402 -0.391891,-2.94977 -0.115902,-0.0287 -0.439035,0.23627 -0.71812,0.58877 l -0.507578,0.64084 -0.05191,-1.24763 c -0.08047,-1.93489 0.568541,-3.21774 1.627888,-3.21774 0.224909,0 0.5885,-0.0933 0.807976,-0.2075 0.577589,-0.30033 0.524734,-1.15874 -0.215974,-3.50739 -1.287356,-4.08198 -1.471367,-5.39982 -0.821379,-5.88236 0.701434,-0.52072 1.667294,-0.22294 3.183294,0.98142 1.246491,0.99028 2.168062,1.96793 4.352116,4.61698 1.767188,2.14345 3.546745,3.87345 4.456365,4.33231 0.72004,0.36325 1.594606,0.42746 2.528802,0.1857 0.703547,-0.18207 0.921386,-0.46907 0.918559,-1.21019 -0.0039,-1.05128 -0.848024,-2.25808 -4.707094,-6.73027 -1.086565,-1.2592 -1.953777,-2.33889 -1.927137,-2.3993 0.05509,-0.12497 4.899901,-2.17454 4.988215,-2.11021 0.03165,0.023 0.25351,1.47153 0.493057,3.2189 0.239543,1.74735 0.469871,3.23771 0.511844,3.31189 0.04197,0.0742 0.08268,-1.03877 0.09049,-2.47323 0.01975,-3.63119 0.374419,-4.94433 1.643396,-6.08436 1.140466,-1.02458 0.99246,-1.31239 -1.314179,-2.55564 -0.56737,-0.30581 -1.165878,-0.70816 -1.330011,-0.89411 -0.283369,-0.32108 -0.27943,-0.35224 0.07811,-0.61768 0.553414,-0.41082 3.109783,-0.5193 3.652096,-0.15495 0.333554,0.22409 0.359124,0.34511 0.252084,1.1931 -0.142736,1.13083 0.0721,1.37587 1.02799,1.17234 1.09811,-0.23381 1.79698,-1.6349 1.21688,-2.43959 -0.31933,-0.44294 -1.58772,-0.68399 -4.652013,-0.88402 -4.499903,-0.29374 -4.654973,-0.39557 -5.162315,-3.38991 -0.16758,-0.98903 -0.37222,-1.85524 -0.454759,-1.92488 -0.08253,-0.0696 -0.153609,0.50019 -0.157949,1.2663 -0.01104,1.95057 -0.243795,3.28323 -0.62855,3.59885 -0.231332,0.18978 -0.552335,0.26003 -1.188079,0.26003 -1.018591,0 -3.99159,-0.31765 -5.746701,-0.614 l -1.226751,-0.20714 v -0.49378 c 0,-0.27158 0.216608,-1.42145 0.48135,-2.55524 0.661431,-2.83267 0.701926,-6.83147 0.098,-9.67658 -0.72209,-3.40175 -0.595039,-3.80058 2.396991,-7.52411 3.061263,-3.80972 4.43168,-6.12132 3.628977,-6.12132 -0.345589,0 -2.453385,1.68337 -3.838727,3.06579 -6.088051,6.07511 -7.779882,7.64223 -8.045487,7.45247 -0.06057,-0.0432 0.345087,-0.6004 0.901477,-1.23804 1.27172,-1.45744 1.40588,-2.02455 0.720652,-3.04635 -0.88938,-1.32622 -1.049999,-1.83779 -1.144615,-3.64546 -0.15499,-2.96123 0.509316,-4.67879 2.400202,-6.20574 1.281983,-1.03524 1.060512,-1.14037 -0.949778,-0.45084 -2.7972,0.95945 -2.761061,0.86093 -2.740799,7.47125 0.01501,4.89046 -0.09379,6.2256 -0.559957,6.87223 -0.580583,0.80535 0.420499,2.35413 2.949751,4.56357 1.418775,1.23936 1.728432,1.88864 1.723356,3.61333 -0.0039,1.3303 -0.277879,3.00394 -0.521304,3.18465 -0.08778,0.0652 -0.418186,-0.24878 -0.758017,-0.72031 -0.818944,-1.13632 -1.063241,-1.22847 -1.817446,-0.6858 -0.328657,0.23649 -0.644894,0.42998 -0.702752,0.42998 -0.05786,0 -0.161344,-0.38928 -0.229977,-0.86502 -0.06864,-0.47577 -0.206774,-0.90263 -0.306988,-0.94862 -0.100237,-0.046 -0.538267,0.17581 -0.973441,0.49289 -0.435174,0.31706 -0.791227,0.52766 -0.791227,0.46801 0,-0.0597 0.125461,-0.46792 0.278791,-0.90722 0.15333,-0.43929 0.254333,-1.0478 0.224438,-1.35219 -0.04841,-0.49287 -0.108412,-0.5581 -0.548187,-0.59566 -0.271609,-0.0231 -0.572822,-0.15174 -0.669365,-0.28568 -0.364013,-0.50493 -0.532117,-2.92733 -0.620125,-8.93613 -0.04993,-3.40902 -0.172176,-6.79805 -0.271663,-7.53116 -0.442833,-3.26341 -1.267445,-4.36184 -3.4387,-4.58059 -0.998609,-0.10049 -1.419,-0.21996 -1.419,-0.4029 0,-0.0806 13.276729,-0.0435 13.411028,0.0375 0.07734,0.0466 -0.325436,4.69352 -0.584633,6.74538 -0.152798,1.20965 -0.431865,2.76648 -0.620127,3.45962 -0.188261,0.69316 -0.297091,1.29299 -0.241837,1.33295 0.172768,0.12497 1.162504,-0.82783 1.631268,-1.57045 0.565527,-0.89591 1.232432,-3.31096 1.389813,-5.03293 0.224836,-2.46003 0.650364,-5.56904 1.448847,-10.58561 1.614918,-10.14604 2.680126,-18.13474 3.4836,-26.12585 0.86538,-8.60682 1.085488,-12.34936 1.087724,-18.49468 l 0.0018,-4.69865 4.533646,8.4e-4 c 6.889878,0.003 10.824778,0.26927 11.036588,0.74965 0.0691,0.15674 -0.33791,0.5226 -0.67388,0.60574 -1.2889,0.31896 -1.15758,19.08038 0.2942,42.03084 0.15303,2.41929 0.29226,5.92829 0.30939,7.79774 0.0402,4.39674 -0.0752,4.6325 -1.68411,3.43809 -1.25712,-0.93326 -1.39773,-1.82046 -1.06621,-6.72717 0.28471,-4.21352 0.12374,-6.09698 -0.62474,-7.31185 -0.71531,-1.16094 -1.64649,-3.58207 -2.342324,-6.09008 -0.891704,-3.21405 -0.969624,-3.19049 -0.537576,0.16245 0.297135,2.30592 1.27101,13.01221 1.41861,15.59551 0.0934,1.63429 0.0836,1.6024 -0.512331,-1.6662 -1.197627,-6.56907 -3.017345,-14.65591 -3.359366,-14.92904 -0.103893,-0.0829 -0.13052,0.0679 -0.07052,0.3999 0.05303,0.29323 0.221063,1.79281 0.373436,3.33236 0.481956,4.86975 0.817454,7.93765 1.085973,9.93048 0.582837,4.32554 0.979684,7.63972 0.920093,7.68395 -0.03477,0.0258 -1.14731,0.1978 -2.47233,0.38215 -4.751192,0.66118 -6.240138,0.94662 -7.01378,1.34464 -1.28998,0.66364 -3.770696,3.00793 -4.781559,4.51858 -1.014338,1.51584 -0.898958,2.07351 0.227714,1.10063 0.606521,-0.52373 0.987488,-0.93167 2.864734,-3.06758 0.933002,-1.06155 1.378877,-1.12968 2.313641,-0.35341 1.047514,0.86991 1.263036,1.33445 1.275794,2.74983 l 0.01117,1.22927 1.191796,0.90346 c 1.292406,0.97973 1.591232,1.31741 1.591232,1.79811 0,0.48927 0.48938,0.90484 1.0655,0.90484 0.773207,0 1.008507,-0.29553 0.748404,-0.94003 -0.118009,-0.29243 -0.165665,-0.59044 -0.105886,-0.66226 0.05979,-0.0719 0.86489,-0.13052 1.789134,-0.13052 1.984841,0 2.248469,-0.0567 2.248469,-0.4841 0,-0.3946 -0.48363,-0.55097 -2.19864,-0.71083 -1.448631,-0.13508 -2.083431,-0.40385 -2.228906,-0.94384 -0.141491,-0.52518 -0.391548,-0.49681 -1.228288,0.13932 -0.385716,0.29324 -0.763632,0.53317 -0.839807,0.53317 -0.07617,0 -0.271932,-0.19155 -0.435013,-0.42567 -0.29219,-0.41947 -0.289143,-0.43038 0.209047,-0.74852 0.465259,-0.29709 0.621857,-0.31829 1.964385,-0.26599 1.193953,0.0465 1.619709,0.12613 2.344935,0.4387 2.002993,0.86315 2.530874,1.01002 4.168259,1.15967 2.58279,0.23609 5.68673,-0.19011 6.15937,-0.84572 0.46139,-0.64003 -0.44229,-1.15494 -1.60587,-0.91499 -2.5425,0.52428 -4.00906,-0.56377 -2.46739,-1.83061 0.33559,-0.27579 0.92137,-0.6312 1.30172,-0.78983 l 0.69155,-0.28841 1.3466,1.20707 c 3.427,3.07183 3.63166,3.33136 2.80998,3.56328 -0.23208,0.0655 -1.10064,0.15874 -1.93017,0.2072 -1.92826,0.11265 -3.08404,0.35254 -4.17325,0.86632 -1.23226,0.58125 -2.57307,0.81176 -4.14736,0.71297 -1.8336,-0.11501 -2.470375,0.22321 -1.902617,1.01079 0.442832,0.61428 1.632177,0.65293 3.635417,0.11807 1.81861,-0.4855 3.8293,-0.22227 4.52106,0.59189 0.14502,0.17062 0.0914,0.29658 -0.23697,0.55594 -0.98415,0.77772 -2.64785,0.78763 -4.31069,0.0256 -1.482856,-0.67948 -1.85185,-0.61197 -1.076027,0.19689 0.204237,0.21291 0.324637,0.38714 0.267557,0.38714 -0.0571,0 -0.786421,-0.33728 -1.620792,-0.74949 -0.910694,-0.44992 -1.627636,-0.71798 -1.79374,-0.67065 -0.223795,0.0639 -0.276706,0.3345 -0.276706,1.41596 0,1.20812 0.03179,1.33713 0.329423,1.33713 0.181175,0 0.550194,-0.18396 0.820034,-0.40877 0.585708,-0.48803 0.740085,-0.42799 1.512564,0.58815 1.172127,1.54184 2.684247,1.23289 1.936747,-0.39573 -0.2005,-0.43685 -0.2166,-0.58814 -0.0586,-0.55051 0.26592,0.0631 1.1954,1.28456 1.20122,1.57828 0.002,0.11632 0.32537,0.68644 0.7179,1.2668 0.50939,0.75312 0.76482,1.34129 0.89219,2.05443 0.24887,1.39335 0.63847,11.60101 0.63847,16.728 0,3.92489 -0.0242,4.26248 -0.30243,4.22829 -0.23384,-0.0287 -0.33324,0.10723 -0.43823,0.59983 -0.20631,0.96775 -0.15574,8.15809 0.10724,15.23277 0.27103,7.29195 0.20651,10.47642 -0.22752,11.23011 -0.32356,0.56187 -0.29045,0.5581 -2.01189,0.22883 z m 1.15134,-10.60725 c 0.016,-3.61939 -0.0776,-4.85054 -0.36777,-4.85054 -0.18956,0 -0.20973,9.51185 -0.0205,9.65384 0.25864,0.19405 0.37265,-1.2164 0.38826,-4.8033 z m -2.24785,0.27041 c 0.17216,-0.33301 0.12357,-5.75836 -0.0738,-8.25338 -0.48068,-6.07464 -1.433081,-9.94985 -1.433227,-5.83165 -9.7e-5,2.76129 0.733622,12.85333 1.008717,13.87444 0.12335,0.45796 0.32615,0.54367 0.49832,0.21059 z m -1.915281,-26.08158 c 1.524721,-1.16137 2.304321,-3.08115 1.822781,-4.48859 -0.44633,-1.30449 -0.736905,-1.07634 -1.952752,1.53337 -1.584106,3.40014 -1.547482,4.23291 0.129968,2.95522 z m -1.028702,-4.39874 c -0.0018,-0.81888 -0.585585,-4.67019 -0.832856,-5.49347 -0.368221,-1.22599 -1.458695,-2.95457 -2.300013,-3.6459 -0.368054,-0.30244 -1.109353,-0.70976 -1.647325,-0.90517 -0.832252,-0.30228 -1.135896,-0.34464 -2.035938,-0.28406 -1.93442,0.13024 -4.148639,1.36896 -4.428814,2.47767 -0.1275,0.50451 0.501792,2.11534 0.905213,2.31714 0.300132,0.15017 2.058928,0.12013 2.467208,-0.0419 0.503898,-0.20019 1.039206,-1.13855 1.058444,-1.85536 0.01795,-0.66979 -0.06733,-0.75331 0.856527,0.83879 0.58882,1.01473 1.22111,1.35303 2.48772,1.33101 1.371,-0.0238 1.653605,0.19225 1.890467,1.44536 0.228635,1.20962 0.06378,2.3953 -0.391136,2.81286 -0.307426,0.28219 -0.491434,0.30651 -2.636031,0.34846 -1.268043,0.0249 -2.825045,0.003 -3.459998,-0.0465 l -1.154466,-0.0916 0.776606,-0.29027 c 2.107421,-0.78768 1.766576,-3.01699 -0.495717,-3.24226 -0.64535,-0.0643 -0.804024,-0.0242 -1.268045,0.32031 -0.901228,0.66905 -1.418455,2.66124 -0.856296,3.29818 0.702512,0.79596 1.959184,0.96545 7.339402,0.98985 l 3.725668,0.017 z m -3.037924,-1.55597 c 0.874969,-0.64955 0.654744,-1.94838 -0.398953,-2.3529 -1.055781,-0.40531 -2.147049,-0.0444 -2.467007,0.81583 -0.538655,1.44829 1.507421,2.54565 2.86596,1.53707 z m 6.797747,-1.84446 c 0.90688,-1.47764 0.47024,-5.67223 -0.62289,-5.98364 -0.46783,-0.13331 -0.76979,0.2254 -0.970808,1.1531 -0.253096,1.16806 -0.228923,2.38687 0.07222,3.64107 0.380148,1.58325 0.988108,2.05853 1.521478,1.18947 z m -9.527816,-8.4435 c 1.506997,-0.39001 1.166427,-1.97223 -0.598858,-2.78217 -0.822409,-0.37734 -1.288521,-0.26395 -1.526153,0.37122 -0.415254,1.10995 -0.127461,2.07054 0.715149,2.38704 0.549758,0.2065 0.694756,0.20897 1.409862,0.0238 z m 1.723527,-15.06021 c -0.0029,-0.39668 -0.230785,-1.43721 -0.50649,-2.31228 -0.979768,-3.10978 -1.046119,-5.66782 -0.179302,-6.91225 l 0.293673,-0.42159 0.167677,0.33029 c 0.09221,0.18167 0.235838,1.70991 0.319137,3.3961 0.175355,3.54924 0.482893,4.93817 1.03714,4.68386 0.355963,-0.16331 0.418458,-1.08127 0.20861,-3.064 -0.163158,-1.54161 -0.164224,-2.15385 -0.0046,-2.58624 0.115089,-0.3116 0.283815,-0.56652 0.374937,-0.56652 0.361724,0 0.739843,1.50837 0.918903,3.66562 0.206143,2.48344 0.337902,3.1546 0.633647,3.22779 0.299846,0.0743 0.42254,-0.63717 0.42254,-2.44994 0,-2.63815 -0.673715,-6.35026 -1.476058,-8.13292 l -0.409232,-0.90923 h -0.837585 c -0.585777,0 -1.001171,-0.0896 -1.381709,-0.29852 -0.299272,-0.16419 -0.669079,-0.26293 -0.821803,-0.21942 -0.399739,0.11383 -0.938656,1.53213 -1.190716,3.13357 -0.558449,3.54807 0.503441,9.55736 1.787064,10.11312 0.503667,0.21807 0.649397,0.0648 0.644042,-0.67744 z m -3.167641,-0.53166 c 0.121665,-1.21405 -0.690362,-5.72548 -1.348326,-7.49108 -0.508014,-1.36325 -0.948082,-1.14276 -0.952367,0.47715 -0.0027,0.94252 0.662033,3.8536 1.551821,6.79805 0.311384,1.03042 0.657268,1.13012 0.748872,0.21588 z m 2.805855,-15.48517 c 0.910274,-1.47307 1.713618,-3.33214 1.713618,-3.96556 0,-0.49504 -0.103233,-0.64485 -0.801481,-1.16323 -0.440813,-0.32725 -0.905401,-0.56882 -1.032414,-0.53686 -0.233335,0.0587 -0.240314,0.20607 -0.110291,2.32821 0.0586,0.95617 0.05553,0.96344 -0.569522,1.35175 -0.608989,0.37831 -0.628062,0.41868 -0.616646,1.30469 0.02484,1.92909 0.503358,2.1591 1.416733,0.681 z m -1.701981,-4.55612 c 0.462089,-1.03085 1.179128,-1.80033 2.049978,-2.1999 0.744092,-0.34141 1.243314,-0.31923 1.337991,0.0595 0.124763,0.49895 0.394883,0.59836 1.620679,0.59633 2.130866,-0.003 4.618508,-0.59872 5.059578,-1.21054 0.26181,-0.36317 0.10278,-0.80087 -0.47657,-1.31206 -0.59148,-0.52186 -0.9233,-1.33986 -1.163231,-2.86763 -0.200255,-1.27512 -0.04965,-4.71044 0.197981,-4.51617 0.0779,0.0613 0.35456,0.7104 0.61477,1.44279 0.26022,0.73242 0.54619,1.38592 0.63551,1.45222 0.55487,0.41193 0.42657,-2.75022 -0.16138,-3.97715 -0.4655,-0.97143 -0.85892,-1.29535 -2.053057,-1.69044 -0.709166,-0.23463 -1.261146,-0.30712 -2.365871,-0.31068 -2.169929,-0.008 -3.331827,0.48291 -3.612038,1.52303 -0.142123,0.52751 0.14157,0.52869 1.253461,0.004 0.467153,-0.21993 0.891073,-0.39987 0.942044,-0.39987 0.05097,0 -0.111002,0.19823 -0.35995,0.44053 -0.673699,0.65572 -1.176544,1.58705 -1.324995,2.45407 l -0.132019,0.771 -0.593677,-0.76645 c -0.326519,-0.42154 -0.666999,-0.76645 -0.756624,-0.76645 -0.342736,0 -0.372581,0.70872 -0.09673,2.29685 0.336075,1.93481 0.352485,2.51868 0.09049,3.21918 -0.211606,0.56578 -1.659358,1.8152 -2.103335,1.8152 -0.151062,0 -0.222979,0.0384 -0.159785,0.0853 0.06319,0.0469 -0.114277,0.30184 -0.394351,0.56652 -0.675981,0.63877 -1.039331,1.18341 -1.191685,1.78633 -0.142024,0.56207 0.03792,1.69402 0.269335,1.69402 0.08403,0 0.45919,-0.54886 0.833734,-1.21969 0.775181,-1.38842 0.820162,-1.36458 1.045565,0.55376 0.07304,0.62149 0.170696,1.17551 0.217038,1.23119 0.206831,0.24845 0.419735,0.0413 0.777132,-0.75595 z m 3.874442,-17.91355 c 0.07225,-0.7096 0.08051,-2.36988 0.01834,-3.6895 -0.111573,-2.36917 -0.973391,-11.67622 -1.089153,-11.76216 -0.137328,-0.10196 -0.314954,11.67955 -0.201684,13.37741 0.123252,1.84748 0.374285,3.44565 0.580056,3.69283 0.258055,0.30999 0.570413,-0.42019 0.692422,-1.61858 z m 4.238158,-4.03413 c 0.571456,-0.22707 1.068756,-1.23328 1.169156,-2.36562 0.0498,-0.5621 0.17117,-1.21834 0.26964,-1.4583 0.17786,-0.43344 0.18483,-0.43572 1.0615,-0.34939 l 0.88245,0.087 v -0.45282 c 0,-0.33081 -0.19076,-0.62422 -0.70799,-1.08887 -0.76952,-0.69133 -1.35631,-1.70841 -1.70215,-2.95029 -0.12135,-0.43562 -0.30853,-0.81381 -0.41603,-0.8404 -0.235339,-0.0581 -0.353472,0.83669 -0.497013,3.76513 -0.113731,2.32036 -0.333722,3.78476 -0.657825,4.37898 -0.190649,0.34954 -0.262705,0.37353 -0.896177,0.29833 -0.868831,-0.10314 -0.928676,0.16375 -0.164009,0.7314 0.55303,0.41055 1.055001,0.48469 1.658456,0.24495 z m -1.426524,-2.55455 c 0.329345,-0.42804 0.317765,-5.57833 -0.0154,-6.80307 -0.440901,-1.6213 -1.303252,-1.88625 -1.784318,-0.54824 -0.324599,0.90284 -0.176893,5.02302 0.218387,6.09176 0.545754,1.47558 1.084707,1.90489 1.581228,1.25955 z" + id="path265" + clip-path="url(#clipPath1351)" /><path + style="fill:#421c18;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 84.610033,228.70515 c -0.28675,-0.32566 -0.31667,-0.73269 -0.30134,-4.09881 0.01,-2.05552 0.10901,-5.11689 0.22157,-6.80307 0.44291,-6.63913 0.6396,-14.51454 0.64917,-25.99251 0.0113,-13.38915 0.0627,-12.78706 -1.25089,-14.56143 -0.33968,-0.45878 -0.59078,-0.83414 -0.55802,-0.83414 0.0328,0 0.30831,0.0645 0.61231,0.14298 0.7264,0.18799 1.29637,-0.0264 1.29637,-0.48758 0,-0.82617 0.95438,-1.45589 1.73588,-1.14538 0.55998,0.22249 1.00698,0.66844 0.89234,0.89023 -0.0597,0.11544 -0.51058,0.34828 -1.00195,0.51729 -1.05162,0.36172 -1.44673,0.585 -1.44673,0.81758 0,0.46175 1.37671,0.29823 4.06953,-0.48339 1.05393,-0.3059 2.25321,-0.58441 2.66504,-0.61886 0.65267,-0.0547 0.79821,-0.0161 1.13371,0.30062 0.50413,0.47579 0.8541,0.356 0.97895,-0.33502 0.11133,-0.61524 0.71955,-1.19807 1.25062,-1.19807 1.03205,0 1.32947,-0.63852 0.6709,-1.44042 -0.79479,-0.96783 -3.81502,-2.82502 -4.59406,-2.82502 -0.4917,0 -0.52198,0.1383 -0.21606,0.98748 0.1706,0.47353 0.16621,0.63334 -0.022,0.80169 -0.51591,0.46148 -3.06387,0.10854 -3.06387,-0.42447 0,-0.2591 0.51886,-0.6587 1.66083,-1.27908 0.72418,-0.39342 0.86129,-0.8193 0.44251,-1.37438 -0.12004,-0.15895 -1.30882,-1.20275 -2.64198,-2.31951 -1.33316,-1.1168 -2.50893,-2.1264 -2.61282,-2.2436 -0.13284,-0.14983 -0.0935,-2.68433 0.1327,-8.54399 0.36483,-9.45127 0.49484,-19.56937 0.25503,-19.84566 -0.12758,-0.14699 -0.20437,-0.12335 -0.37668,0.11559 -0.20118,0.2791 -0.22471,0.25554 -0.33359,-0.33422 -0.31398,-1.70062 -0.51202,-9.04693 -0.41493,-15.39224 0.10996,-7.18074 0.24442,-9.10555 0.83503,-11.94633 0.19626,-0.94403 0.35771,-1.76634 0.35876,-1.82737 10e-4,-0.0611 2.5672,-0.07 5.70257,-0.0199 5.66981,0.0906 9.037297,-0.0269 9.444527,-0.32913 0.26645,-0.19779 0.58403,-0.17351 0.91162,0.0696 0.49944,0.37078 0.33775,0.82675 -0.51012,1.4385 -0.6352,0.45831 -0.82209,0.70178 -0.94266,1.22801 -0.249127,1.08768 -0.12034,6.36382 0.278,11.3866 0.63484,8.00482 0.75424,10.11986 0.9219,16.32865 0.089,3.29906 0.21516,6.16413 0.28016,6.36683 0.13814,0.43041 0.41759,0.60049 0.60906,0.37048 0.0979,-0.11734 0.16577,-0.10108 0.24887,0.0597 0.21192,0.41001 0.47002,3.96826 0.65658,9.05231 0.39006,10.62887 1.72254,23.89135 3.87165,38.53501 1.65787,11.29638 2.87605,17.70522 5.37138,28.25853 0.79179,3.3486 0.98583,5.42431 0.56372,6.03029 -0.50747,0.72852 -2.52132,0.90391 -3.27547,0.28526 -0.57503,-0.47172 -0.79043,-1.79206 -0.91017,-5.57873 -0.0637,-2.01406 -0.1786,-3.54362 -0.25512,-3.39903 -0.0768,0.1446 -0.35488,1.82245 -0.61829,3.72856 -0.26342,1.90613 -0.53297,3.6695 -0.59904,3.91862 -0.0791,0.29923 -0.2587,-0.69615 -0.52849,-2.93249 -0.76933,-6.37789 -1.74518,-9.05155 -3.80567,-10.42684 -1.17477,-0.78413 -2.30707,-1.06707 -4.005377,-1.0008 -1.54701,0.0603 -2.65068,0.42049 -3.77514,1.23181 -1.11973,0.80788 -1.7374,1.67159 -2.39129,3.34365 l -0.57381,1.46732 -0.0128,-1.36126 c -0.016,-1.76294 0.35243,-2.53872 1.72776,-3.64157 1.41142,-1.13175 3.20434,-1.77783 5.11301,-1.84247 1.660267,-0.0563 2.655937,0.15811 3.910437,0.84176 1.12119,0.61102 1.44603,0.61363 1.44603,0.0117 0,-0.37697 -0.13044,-0.53807 -0.72093,-0.89035 -0.56557,-0.33742 -0.79452,-0.60698 -1.06237,-1.25076 -0.52156,-1.25366 -1.04457,-3.78695 -1.54055,-7.46239 -0.49132,-3.6406 -0.5921,-4.16743 -0.81705,-4.27063 -0.22718,-0.10415 -0.31135,0.52361 -0.521337,3.89016 -0.10575,1.69685 -0.31727,3.8408 -0.46981,4.76429 -0.15254,0.9235 -0.24781,1.87447 -0.21169,2.1133 0.0618,0.40833 0.10955,0.36667 0.80257,-0.69881 0.851627,-1.30939 1.028827,-1.24526 0.921447,0.3335 -0.0932,1.36877 -0.41835,1.60822 -2.556537,1.88214 -2.7767,0.35577 -4.32319,1.0588 -6.23475,2.83442 -2.50847,2.3301 -2.62778,3.01293 -1.85419,10.6121 0.30582,3.00432 0.32901,4.87635 0.0692,5.57142 -0.21172,0.56604 -0.66175,0.7601 -1.76262,0.7601 -0.37059,0 -1.2743,0.11866 -2.00827,0.26344 -1.66921,0.32956 -1.53725,0.33586 -1.91385,-0.0917 z m 3.81127,-9.43131 c 0,-1.71304 -0.0605,-3.15961 -0.13464,-3.21455 -0.32438,-0.24073 -0.40749,0.25945 -0.46284,2.78619 -0.0645,2.9406 0.0418,3.9557 0.38733,3.69909 0.14854,-0.11031 0.21019,-1.0694 0.21019,-3.27073 z m 1.068,-11.4677 c 0.17767,-0.58648 0.42237,-1.20988 0.54375,-1.38533 l 0.22067,-0.31897 0.24979,0.41895 c 0.27103,0.4545 0.59835,0.54277 0.77141,0.20796 0.32842,-0.63537 0.5085,-3.00609 0.40904,-5.38523 -0.11476,-2.74594 -0.33083,-3.82515 -1.12616,-5.62695 -0.45982,-1.04173 -0.48752,-1.24341 -0.4723,-3.43929 0.0128,-1.75434 0.1755,-3.35706 0.6588,-6.46481 0.73845,-4.7486 1.12669,-8.42522 0.92954,-8.80314 -0.13011,-0.24941 -0.14661,-0.25033 -0.37405,-0.0209 -0.57074,0.57546 -1.44212,5.07218 -1.98115,10.22373 -0.60471,5.77956 -1.38532,9.99519 -2.14423,11.5801 -0.35515,0.74168 -0.35343,1.07016 0.007,1.17259 0.48013,0.13683 1.30297,-0.60336 1.48794,-1.33836 0.20211,-0.8032 0.70749,-1.2191 1.33851,-1.10153 1.03602,0.19305 0.95931,1.54575 -0.12357,2.17807 -0.25665,0.14987 -0.54923,0.43377 -0.65018,0.63088 -0.26612,0.51964 -0.22463,2.23185 0.0858,3.54011 0.1479,0.62315 0.26715,1.163 0.26513,1.19967 -0.003,0.0369 -0.51744,-0.58383 -1.14529,-1.37884 -1.69017,-2.14018 -2.0824,-2.30742 -2.0824,-0.88799 0,1.00756 0.20247,1.38173 1.15798,2.14011 0.85703,0.6802 1.05198,1.15634 1.27183,3.1065 0.0649,0.57587 0.17699,0.99573 0.24901,0.93306 0.072,-0.0625 0.27632,-0.59379 0.454,-1.1803 z m 4.41714,-6.3315 c -0.26921,-5.87191 -0.58353,-7.17988 -1.90526,-7.9283 -0.98998,-0.56055 -1.20915,-0.41197 -0.70235,0.47614 0.81519,1.42855 1.51128,4.81239 2.27331,11.05113 0.4021,3.29201 0.41693,3.35495 0.47099,1.99941 0.0307,-0.76975 -0.0307,-3.28904 -0.1367,-5.59838 z m 3.397,4.13982 c 0.54857,-0.76098 1.40181,-10.13809 0.92248,-10.13809 -0.16519,0 -0.29199,0.4554 -0.8439,3.02932 -0.17643,0.82307 -0.34294,1.48007 -0.36994,1.46004 -0.027,-0.0201 -0.22118,-0.87338 -0.43155,-1.89634 -0.21036,-1.02295 -0.45571,-1.91688 -0.54522,-1.98652 -0.20314,-0.1581 -0.2026,-0.11105 0.0209,1.7928 0.0989,0.84309 0.24784,2.91891 0.33076,4.61294 0.0829,1.694 0.20786,3.14859 0.27765,3.23239 0.18785,0.22563 0.42822,0.18552 0.63875,-0.10666 z m 7.879437,-2.80821 c 0.37323,-0.79491 0.42791,-2.044 0.20121,-4.59784 -0.12695,-1.42932 -0.28163,-2.59875 -0.3439,-2.59875 -0.34254,0 -0.91452,6.81681 -0.61983,7.38698 0.17523,0.33912 0.55882,0.24336 0.76252,-0.19039 z m -1.84311,-3.88184 c 0.46431,-3.78707 0.49342,-4.92326 0.12848,-5.01252 -0.36696,-0.0896 -0.99333,1.04262 -1.1586,2.09447 -0.1847,1.17492 0.24408,6.81764 0.50331,6.62517 0.0438,-0.0325 0.28089,-1.70072 0.5269,-3.70712 z m -15.997047,-7.64683 c 10e-4,-3.02565 -0.10335,-3.80746 -0.45451,-3.39529 -0.1917,0.22505 -0.23706,6.70204 -0.0479,6.84246 0.37416,0.27777 0.50124,-0.59416 0.50244,-3.44717 z m 15.430407,1.72268 c 0.91615,-0.40905 1.37525,-0.69964 1.76821,-1.1192 0.37776,-0.40328 0.39997,-0.98112 0.0462,-1.19912 -0.78677,-0.48477 -1.24631,-2.38213 -1.46997,-6.06912 -0.0623,-1.02638 -0.15215,-1.78432 -0.19963,-1.68434 -0.0476,0.0999 -0.39217,1.53955 -0.76589,3.19907 l -0.67949,3.01731 -0.0178,-3.085 c -0.0215,-3.92597 -0.2222,-5.37657 -0.98641,-7.13172 -0.33048,-0.75898 -0.705507,-1.81752 -0.833427,-2.35232 -0.36007,-1.50557 -0.56914,-1.41076 -0.8028,0.36408 -0.17978,1.36505 -0.69017,1.8761 -2.44648,2.44937 -1.46723,0.47891 -1.50334,0.60307 -1.30455,4.48599 0.26316,5.1406 0.1093,6.32121 -0.83692,6.42518 -0.7032,0.0773 -1.12549,0.66941 -1.12549,1.57821 0,1.33478 0.0459,1.34559 4.83608,1.13614 2.438217,-0.10665 2.544477,-0.10035 2.872797,0.16813 0.40726,0.33309 0.89156,0.2876 1.94478,-0.18266 z m -2.03255,-18.81776 c 0.52435,-1.00734 1.41624,-5.5328 1.41624,-7.18621 0,-0.87378 -0.11412,-1.2447 -0.38275,-1.2447 -0.73306,0 -2.196137,7.55496 -1.66285,8.58663 0.16379,0.31692 0.41576,0.25457 0.62936,-0.15572 z m -2.561627,-4.49364 c -0.22838,-3.97279 -0.87958,-8.336 -1.24408,-8.336 -0.0868,0 -0.21098,0.15755 -0.27608,0.35012 -0.19279,0.57061 0.0711,6.26537 0.36081,7.78087 0.30252,1.5828 0.76806,3.28699 0.95988,3.51379 0.26569,0.31414 0.33838,-0.89204 0.19947,-3.30878 z m -5.55232,-3.87063 c -0.28321,-2.34599 -0.5171,-4.46038 -0.51977,-4.69865 l -0.005,-0.4332 h 3.65573 3.65574 l -0.0715,1.29964 c -0.0392,0.71479 -0.14919,2.41124 -0.24432,3.76988 -0.0951,1.35862 -0.16399,2.76822 -0.15314,3.13243 l 0.0197,0.66219 0.16279,-0.59984 c 0.64294,-2.37028 1.615747,-7.05047 1.699027,-8.17387 0.085,-1.15057 0.0506,-1.4276 -0.22694,-1.82311 -0.41808,-0.59537 -1.101337,-0.83232 -2.454847,-0.85139 -1.0392,-0.0146 -1.08424,-0.0299 -1.2278,-0.41508 -0.082,-0.21992 -0.1334,-1.9894 -0.11451,-3.93219 0.0292,-2.98374 -0.0114,-3.64991 -0.26926,-4.28955 -0.67422,-1.67989 -2.3668,-2.11932 -4.65237,-1.20784 -0.71407,0.28476 -0.90478,0.44775 -1.192,1.01875 -0.74915,1.4893 -1.33532,5.18985 -1.35516,8.55526 l -0.0144,2.41041 0.49123,0.52653 c 0.91886,0.98486 1.51068,2.61339 2.5618,7.04907 0.84879,3.58192 0.88965,3.26102 0.25458,-1.99944 z m 2.61753,0.75983 c 0,-2.74155 -0.11095,-3.49353 -0.45578,-3.08875 -0.18556,0.21783 -0.23893,5.5779 -0.059,5.92595 0.0835,0.16187 0.16646,0.18056 0.31421,0.071 0.13478,-0.10005 0.20057,-1.0533 0.20057,-2.90812 z m -7.1148,-19.55597 c 0.32941,-0.8878 0.39506,-6.08051 0.078,-6.16006 -0.27386,-0.0687 -0.69968,0.98243 -1.06512,2.6293 -0.27878,1.25623 -0.26546,3.51918 0.0237,4.03873 0.24143,0.43367 0.7047,0.18945 0.96345,-0.50797 z m 9.40662,-1.20678 c 0.26412,-0.65887 0.37032,-7.15594 0.15354,-9.38865 -0.20652,-2.12596 -0.32029,-2.66589 -0.56179,-2.66589 -0.29764,0 -0.39383,0.56696 -0.57262,3.37589 -0.17523,2.7531 0.0114,7.7058 0.33019,8.79289 0.13517,0.46012 0.44208,0.40624 0.65071,-0.11412 z m -6.79647,-5.58971 c 0.0128,-4.13672 -0.13159,-5.76318 -0.44164,-4.99858 -0.16812,0.4147 -0.21465,8.86823 -0.0522,9.47139 0.11749,0.43627 0.12053,0.4374 0.3001,0.1166 0.10829,-0.19349 0.18633,-2.04219 0.19373,-4.58944 z m 3.40215,-2.79918 c 0.006,-3.07914 -0.0611,-5.83836 -0.15079,-6.13161 l -0.1633,-0.53318 -0.12504,0.79978 c -0.162,1.03608 -0.19719,9.983 -0.0441,11.18745 0.0997,0.78201 0.14454,0.87403 0.29411,0.59982 0.10524,-0.19318 0.18164,-2.58333 0.18908,-5.92226 z m -5.99588,-0.65445 c 0.85193,-1.66347 1.88923,-10.07528 1.22208,-9.91019 -0.97423,0.24109 -2.3909,10.23139 -1.45085,10.23139 0.0354,0 0.13829,-0.1446 0.22877,-0.3212 z m 9.43253,-11.01408 c 0.39501,-0.0851 0.85957,-0.24793 1.03239,-0.36196 0.7721,-0.50951 0.0876,-1.54914 -1.38385,-2.10185 -1.536,-0.57695 -1.58597,-0.73264 -1.62461,-5.06218 -0.0371,-4.15148 -0.17069,-4.82808 -1.05285,-5.32757 -1.56035,-0.88353 -4.19803,-0.35495 -5.49769,1.10172 -1.13443,1.2715 -0.42301,1.48411 1.07053,0.31995 0.75755,-0.5905 1.19612,-0.81576 1.85394,-0.95221 1.05904,-0.2197 1.9989,-0.0509 2.65032,0.47606 l 0.43813,0.35439 -0.71819,-0.0942 c -2.52994,-0.3319 -3.0332,-0.2128 -3.7494,0.88728 -0.65023,0.99879 -0.82621,2.07187 -0.82776,5.04752 -0.001,2.74589 0.12708,3.35118 0.76483,3.60461 0.20314,0.0807 1.4268,0.19202 2.71925,0.24739 3.17833,0.13625 4.62655,0.5807 3.26633,1.00263 -0.78489,0.24346 -4.56959,0.25936 -5.47789,0.0228 -1.42648,-0.3712 -1.99164,-1.43912 -2.43846,-4.60762 -0.36902,-2.61651 -0.44326,-2.92694 -0.63817,-2.66839 -0.13205,0.17528 -0.52871,6.03079 -0.53074,7.8362 l -7.2e-4,0.58598 4.71318,-0.078 c 2.70742,-0.0448 5.01879,-0.14387 5.43136,-0.23269 z" + id="path266" + clip-path="url(#clipPath1350)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 47.466964,160.41209 c -0.799326,-0.0576 -1.753698,-0.19783 -2.120824,-0.3117 -0.622305,-0.19304 -0.663712,-0.24113 -0.611507,-0.71028 0.0537,-0.48248 0.08547,-0.50499 0.771867,-0.54646 0.813012,-0.0492 0.983209,-0.1825 0.987106,-0.77352 0.0036,-0.52576 -0.325805,-0.73145 -1.097376,-0.68553 -0.581013,0.0346 -0.607874,0.0155 -0.661597,-0.46716 -0.0521,-0.46821 -0.01003,-0.51744 0.603821,-0.70788 0.538481,-0.16703 0.877355,-0.17951 1.842797,-0.0679 1.86544,0.21561 1.742549,-0.0254 -0.268456,-0.52619 -2.011132,-0.50095 -3.157765,-1.34407 -3.708409,-2.7268 -0.596507,-1.4979 -1.763314,-5.38032 -1.706562,-5.6784 0.132117,-0.694 1.687195,-0.93878 7.602012,-1.19654 3.71564,-0.16195 9.561618,-0.0899 11.472617,0.14122 1.252395,0.15149 2.059369,0.52762 2.69609,1.25661 0.757878,0.86772 0.525174,1.69028 -0.518373,1.83231 -0.717805,0.0979 -0.826436,0.55623 -0.773033,3.2629 0.04639,2.35074 0.02352,2.57263 -0.29172,2.83252 -0.188121,0.15511 -0.531511,0.282 -0.76309,0.282 -0.682999,0 -0.491425,0.35801 0.398814,0.74535 0.510899,0.22225 0.756344,0.40384 0.651311,0.48181 -0.09268,0.0688 -0.966623,0.15442 -1.942049,0.19024 -2.926899,0.10739 -3.25497,0.24313 -1.549063,0.64057 0.747934,0.17425 1.267422,0.41445 1.885279,0.87173 1.552908,1.14927 1.077166,1.67585 -1.693854,1.87485 -1.992118,0.14314 -9.150878,0.13435 -11.205801,-0.0132 z m 10.230823,-7.18243 c 0.34103,-0.25318 0.373867,-0.41201 0.334915,-1.61994 -0.07572,-2.34815 -0.789963,-3.94259 -1.950078,-4.35327 -0.605105,-0.21424 -0.664868,-0.21247 -1.288471,0.038 -0.94934,0.3811 -1.167657,1.00893 -1.188573,3.41804 -0.01559,1.78705 0.0154,1.98811 0.358299,2.32949 0.472581,0.4705 0.966962,0.58208 2.298237,0.51879 0.773683,-0.0369 1.159064,-0.12569 1.435671,-0.33098 z m -9.224775,0.0428 c 0.399895,-0.11881 0.810634,-0.33186 0.912761,-0.47355 0.175197,-0.24301 0.09725,-2.4801 -0.123519,-3.54542 -0.222778,-1.07505 -1.866009,-1.77358 -3.05448,-1.29842 -0.886032,0.35424 -1.237602,1.00115 -1.237602,2.27729 0,0.93442 0.07132,1.17947 0.541935,1.86245 0.515039,0.74745 1.439927,1.39363 1.994689,1.39363 0.131525,0 0.566324,-0.0971 0.966211,-0.21598 z" + id="path267" + clip-path="url(#clipPath1349)" /><path + style="fill:#3a1914;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 104.48832,145.32523 c -0.001,-0.89868 -0.084,-2.67746 -0.18353,-3.95286 -0.16714,-2.14365 -0.15687,-2.33865 0.13736,-2.58011 0.48663,-0.39949 1.57724,-0.7661 2.89579,-0.97344 3.65371,-0.57452 18.47021,-0.20874 20.45242,0.5049 0.46771,0.1684 0.49023,0.22072 0.47581,1.106 -0.0178,1.13881 -0.45849,2.40031 -1.83506,5.26127 l -1.05827,2.19937 -10.44092,0.0343 -10.44091,0.0343 z m 19.9383,-0.76981 c 0.18767,-0.0745 0.41732,-0.35949 0.51032,-0.63314 0.2741,-0.80647 0.43139,-3.57867 0.21969,-3.87231 -0.25875,-0.35896 -1.55872,-0.72415 -2.20356,-0.619 -0.67101,0.10943 -0.91038,0.39662 -1.66926,2.00295 -0.85378,1.80718 -0.82175,2.49617 0.13379,2.87727 0.87983,0.35096 2.42485,0.47636 3.00904,0.24423 z m -14.03539,-0.41702 c 0.59339,-0.27513 0.9226,-0.84969 0.9226,-1.61028 0,-1.11525 -0.73425,-2.48305 -1.60935,-2.99807 -0.73355,-0.43171 -2.33023,0.0416 -2.69594,0.79911 -0.11399,0.23631 -0.24821,0.96946 -0.29805,1.62928 -0.11019,1.45899 0.18766,2.0334 1.1919,2.29878 0.69946,0.18486 1.96406,0.12452 2.48884,-0.11881 z m 6.96367,-0.0477 c 0.95195,-0.46306 1.05638,-3.03995 0.1772,-4.37394 -0.66846,-1.01433 -1.58694,-1.27479 -2.0585,-0.58377 -0.81362,1.19228 -1.73237,3.76341 -1.55684,4.35676 0.12275,0.41523 0.53269,0.73676 1.07778,0.84548 0.56639,0.11295 1.91189,-0.0264 2.36032,-0.24453 z" + id="path268" + clip-path="url(#clipPath1348)" /><path + style="fill:#3a1915;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 104.78128,150.272 c -0.0683,-1.18256 -0.10066,-2.16412 -0.0725,-2.18125 0.0282,-0.0172 4.55586,-0.0721 10.06128,-0.12219 l 10.0099,-0.0909 v 2.27228 2.27228 h -9.93747 -9.93743 z" + id="path269" + clip-path="url(#clipPath1347)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 109.38366,195.59559 c -0.12352,-0.0949 -0.22443,-0.46974 -0.22443,-0.833 0,-0.59275 0.0708,-0.71045 0.69066,-1.1482 0.47017,-0.33206 1.11497,-0.59141 2.01992,-0.81247 1.92943,-0.4713 1.79641,-0.63333 -0.91509,-1.11459 l -2.24437,-0.39837 1.25685,-0.1405 c 0.75238,-0.084 1.25682,-0.20455 1.25682,-0.30024 0,-0.0879 -0.48475,-0.44721 -1.07728,-0.79838 -1.45391,-0.86169 -2.06481,-1.74478 -2.06481,-2.98481 0,-0.77262 0.0654,-0.95656 0.46483,-1.30905 0.31898,-0.28141 0.62553,-0.41011 0.97693,-0.41011 0.81727,0 0.78678,-0.22981 -0.0677,-0.51043 -0.96268,-0.31616 -1.12388,-0.48898 -0.8327,-0.89287 0.33138,-0.45968 0.12034,-0.68206 -0.72711,-0.76645 -0.90551,-0.0903 -1.14717,-0.24143 -0.98639,-0.61747 0.16714,-0.39083 0.90981,-0.64317 2.216,-0.75289 0.6109,-0.0513 1.11077,-0.13902 1.11077,-0.19499 0,-0.056 -0.58578,-0.20651 -1.30175,-0.33459 -0.71595,-0.12805 -1.53931,-0.32191 -1.82969,-0.43079 -0.49197,-0.18446 -0.5059,-0.20989 -0.20465,-0.37342 0.89419,-0.48542 4.60905,-0.71957 11.46069,-0.72237 l 5.16207,-0.003 v 0.37455 c 0,1.07016 -1.4102,10.30479 -1.90568,12.47921 -0.55518,2.43648 -0.6479,2.49147 -4.42764,2.62513 -1.60243,0.0567 -3.47906,0.16896 -4.17033,0.24955 -2.31473,0.26983 -3.39427,0.30535 -3.63587,0.11955 z m 7.48205,-6.12409 c 2.58115,-0.24026 2.91923,-0.51771 3.24683,-2.66465 0.28493,-1.86736 -0.11565,-3.20737 -1.24358,-4.16118 -1.18078,-0.99838 -2.97537,-1.13304 -4.58055,-0.34372 -1.44341,0.70978 -1.89058,1.83077 -1.89464,4.74956 -0.004,1.84667 0.0114,1.91562 0.43804,2.2327 0.51113,0.37946 1.4843,0.42464 4.0339,0.18729 z" + id="path270" + clip-path="url(#clipPath1346)" /><path + style="fill:#301816;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 106.22262,169.11954 c -0.14365,-0.64494 -0.11666,-2.27003 0.0446,-2.70148 0.0988,-0.26421 0.27173,-0.34855 0.83495,-0.40718 0.39066,-0.0406 0.88103,-0.14327 1.08965,-0.22818 0.58554,-0.23802 1.53202,-1.09838 1.47027,-1.33645 -0.0759,-0.29311 -1.01505,-0.67751 -1.76633,-0.72302 -0.61236,-0.037 -0.62134,-0.0302 -0.58357,0.4547 0.0308,0.39565 -0.035,0.50972 -0.3353,0.58045 -0.24994,0.0589 -0.48898,0.003 -0.72176,-0.17033 -0.34439,-0.25569 -0.34392,-0.26746 0.0452,-1.11366 0.60564,-1.31735 0.58079,-1.29814 1.81622,-1.40192 1.38756,-0.11662 3.51774,-0.88532 5.01319,-1.80926 1.36841,-0.8454 1.33938,-1.04091 -0.19634,-1.32346 l -1.16175,-0.21374 1.14358,-0.14953 c 1.20688,-0.15783 1.81003,-0.4378 1.81003,-0.84017 0,-0.33874 -0.75422,-0.66964 -1.70831,-0.74947 -0.44296,-0.037 -0.80537,-0.11178 -0.80537,-0.16607 0,-0.0544 0.62617,-0.26137 1.3915,-0.46019 1.84332,-0.47891 2.73811,-0.91422 2.73811,-1.33213 0,-0.45112 -0.43051,-0.51673 -2.6766,-0.40779 -1.60921,0.078 -1.95585,0.06 -2.14695,-0.11076 -0.19122,-0.1711 -0.14801,-0.24272 0.26954,-0.446 0.43523,-0.21191 0.99784,-0.24775 4.50076,-0.2866 l 4.00336,-0.0444 v 4.65943 4.65941 l -4.9996,2.2116 c -4.42512,1.9575 -6.3687,2.89254 -8.38179,4.03245 l -0.57553,0.32587 z" + id="path271" + clip-path="url(#clipPath1345)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 106.3134,160.86541 c -0.43354,-0.78246 -0.75542,-2.44481 -0.86448,-4.46441 l -0.1126,-2.08601 0.46689,-0.34661 c 0.41531,-0.30831 0.60804,-0.34663 1.74371,-0.34663 1.5038,0 1.83707,0.10651 2.17122,0.6947 0.366,0.6441 0.32356,3.55062 -0.0658,4.5038 -0.52845,1.29379 -1.52046,2.18529 -2.61197,2.34736 -0.4436,0.0659 -0.5468,0.023 -0.72696,-0.3022 z" + id="path272" + clip-path="url(#clipPath1344)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 79.084733,169.03514 c -2.541013,-0.61354 -2.6474,-0.84283 -0.811491,-1.74892 1.224961,-0.60455 1.554971,-0.82717 1.398481,-0.94336 -0.0426,-0.0316 -0.59607,-0.0959 -1.229952,-0.14298 -1.255327,-0.0932 -2.140061,-0.35406 -2.140061,-0.63091 0,-0.38524 -0.706573,-0.64553 -2.057657,-0.75801 -1.612802,-0.13434 -2.341327,-0.36001 -2.341327,-0.72548 0,-0.66901 2.019229,-0.75316 3.173865,-0.1323 1.564391,0.84123 1.33776,0.82451 6.943632,0.51302 1.4023,-0.0778 1.49504,-0.0671 1.43639,0.16786 -0.0743,0.2977 -1.46421,0.85099 -2.13773,0.85099 -1.29452,0 -1.59825,1.58768 -0.58321,3.04875 l 0.56742,0.8168 -0.48075,-0.006 c -0.26441,-0.003 -1.04634,-0.14254 -1.73761,-0.30945 z" + id="path273" + clip-path="url(#clipPath1343)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 76.903621,163.88635 c -1.387754,-0.41567 0.09591,-1.19399 3.049242,-1.59963 1.07571,-0.14775 1.26201,-0.1427 1.509,0.0406 0.25597,0.19006 0.25436,0.24024 -0.0178,0.54857 -0.41888,0.4746 -0.93534,0.69711 -2.17264,0.93614 -1.184055,0.22873 -1.788948,0.24772 -2.367832,0.0744 z" + id="path274" + clip-path="url(#clipPath1342)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 66.410054,202.80954 c -0.392658,-0.0305 -1.085386,-0.0876 -1.539404,-0.12686 -0.982704,-0.0851 -1.670093,-0.13009 -2.698164,-0.17704 -2.170479,-0.099 -3.424075,-0.12803 -6.601988,-0.15317 -3.78242,-0.0299 -4.877646,-0.0529 -5.697386,-0.12027 -0.34342,-0.0282 -0.645471,-0.0846 -0.619473,-0.11603 0.156963,-0.18855 4.590867,-0.47315 9.919386,-0.6367 5.763875,-0.1769 10.968374,-0.62727 12.579978,-1.08858 0.199615,-0.0571 0.301866,-0.10416 0.446069,-0.20564 0.247483,-0.17397 0.368364,-0.29987 0.368364,-0.38368 0,-0.19907 -0.549664,-0.17782 -2.205951,0.0853 -1.338519,0.21261 -1.709725,0.25519 -2.253562,0.25836 -0.521987,0.003 -0.607005,-0.0132 -0.746483,-0.14402 -0.105518,-0.0989 -0.0739,-0.28283 0.106787,-0.62104 0.26177,-0.49005 0.307097,-0.71756 0.167026,-0.83845 -0.06789,-0.0586 -0.10063,-0.0664 -0.309471,-0.0741 -0.240007,-0.008 -0.545799,0.0341 -1.233362,0.17368 -0.315211,0.0639 -0.728655,0.0984 -0.868517,0.0724 -0.199695,-0.0372 -0.161441,-0.16587 0.14086,-0.47368 0.551802,-0.56188 0.696253,-0.66697 1.009586,-0.7346 0.416874,-0.0899 0.95892,0.0369 3.339776,0.78183 1.819876,0.56939 2.827085,0.77809 3.889344,0.80592 0.429409,0.0103 0.50428,0.008 0.703217,-0.0375 0.216939,-0.0489 0.355613,-0.0634 0.355613,-0.0373 0,0.008 -0.02326,0.0469 -0.05167,0.0883 -0.188397,0.27505 -1.729709,1.39865 -2.519309,1.83655 -1.33357,0.73956 -2.782046,1.034 -4.618217,0.93871 -1.607587,-0.0834 -2.89765,-0.1276 -3.13312,-0.10724 -0.149758,0.0132 -0.185201,0.0238 -0.177504,0.0549 0.01559,0.0629 0.29845,0.14896 1.390329,0.42313 1.570121,0.39428 2.158339,0.55936 2.158339,0.60572 0,0.0267 -0.638415,0.003 -1.301114,-0.0487 z" + id="path276" + clip-path="url(#clipPath1340)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 72.091333,198.07203 c -0.595513,-0.0504 -0.91566,-0.10035 -1.131881,-0.17683 -0.181767,-0.0643 -0.192108,-0.10269 -0.05737,-0.21338 0.138947,-0.11427 0.173953,-0.17959 0.172158,-0.32162 -0.0027,-0.21294 -0.172789,-0.45064 -0.522322,-0.7299 -0.839428,-0.67063 -2.421529,-1.29285 -3.967536,-1.56039 -0.244401,-0.0424 -0.462395,-0.0875 -0.484434,-0.10036 -0.194437,-0.11368 0.799846,-0.23638 2.443689,-0.30143 0.80865,-0.0321 3.086478,-0.0164 3.468336,0.0237 0.644333,0.0679 1.030227,0.1707 1.249092,0.33318 0.194595,0.14446 0.236701,0.25128 0.214162,0.54336 -0.0604,0.78302 -0.06019,0.80684 0.0093,1.01299 0.129689,0.38529 0.437431,0.74258 0.792111,0.91964 0.534686,0.26689 0.484697,0.42771 -0.164698,0.52984 -0.218549,0.0343 -1.734961,0.0652 -2.020495,0.041 z" + id="path277" + clip-path="url(#clipPath1339)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 53.976247,200.88696 c -0.253131,-0.0964 0.02817,-0.34704 0.699634,-0.62367 0.844165,-0.34778 1.037451,-0.45484 1.037451,-0.57466 0,-0.12716 -0.334561,-0.18973 -1.253743,-0.23453 -0.984521,-0.0481 -1.238142,-0.11061 -0.960145,-0.23729 0.635155,-0.28932 3.37848,-0.67661 5.927501,-0.8368 0.70442,-0.0442 2.904923,-0.0722 3.570786,-0.0453 l 0.476106,0.0191 -0.206312,0.029 c -0.113465,0.0161 -0.699081,0.078 -1.301353,0.138 -0.602272,0.0601 -1.257854,0.13594 -1.456854,0.16908 -1.404253,0.23319 -2.770256,0.70136 -3.485022,1.19441 -0.517323,0.35687 -0.864467,0.53528 -1.453798,0.7472 -0.530737,0.19084 -0.849537,0.26214 -1.222001,0.27327 -0.18745,0.006 -0.328288,-8.4e-4 -0.37225,-0.0179 z" + id="path278" + clip-path="url(#clipPath1338)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 95.537373,227.76565 c -0.63007,-0.46775 -0.83151,-1.46241 -0.93087,-4.59606 -0.0772,-2.43636 0.1126,-6.97257 0.34719,-8.29038 0.30787,-1.73051 0.91813,-2.51925 2.40417,-3.10726 1.04686,-0.41422 2.02284,-0.4868 2.765187,-0.20562 0.99795,0.37797 1.92555,1.47006 3.03046,3.56791 0.87253,1.65661 0.89948,2.34277 0.10296,2.62333 -0.62653,0.22072 -0.98406,0.6351 -1.04891,1.21568 -0.0725,0.6481 0.16753,0.84334 0.95527,0.77743 0.67211,-0.0563 0.82081,0.0734 1.0562,0.92119 0.19417,0.69955 0.19575,3.25885 0.004,3.79239 -0.20572,0.56714 -0.67214,0.92627 -1.50607,1.15956 -0.39862,0.11149 -1.98167,0.41477 -3.517887,0.67392 -1.53623,0.25913 -2.84743,0.5096 -2.91377,0.55658 -0.18688,0.13229 2.20817,0.0979 6.849537,-0.0984 2.3043,-0.0974 4.20113,-0.16877 4.2151,-0.15846 0.0444,0.0327 -6.19897,1.00469 -7.389097,1.15024 -0.62848,0.0769 -1.80814,0.16606 -2.62148,0.19821 -1.46113,0.0578 -1.48267,0.0556 -1.80037,-0.18026 z m 5.212917,-8.62539 c 0.12985,-0.34463 0.12568,-4.51957 -0.004,-4.86771 -0.0791,-0.21141 -0.13636,-0.24751 -0.25392,-0.16038 -0.16991,0.126 -0.29805,4.17137 -0.15472,4.88165 0.0936,0.46319 0.27019,0.52579 0.4131,0.1465 z" + id="path279" + clip-path="url(#clipPath1337)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 100.74625,231.75262 c -2.195017,-0.32782 0.87237,-1.1628 6.94328,-1.89006 4.06778,-0.48731 5.3785,-0.52596 5.68485,-0.16761 0.20247,0.23679 0.0957,0.35589 -0.52962,0.59114 -0.82406,0.31001 -2.25402,0.55318 -4.69663,0.7986 -1.08232,0.1087 -2.7963,0.29861 -3.8088,0.42189 -2.39257,0.29132 -3.00784,0.33344 -3.59308,0.24604 z" + id="path280" + clip-path="url(#clipPath1336)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 98.086523,229.57017 c -0.43096,-0.12496 -0.43755,-0.22227 -0.0338,-0.50003 0.62304,-0.42866 2.840707,-0.77002 6.452207,-0.99316 3.01602,-0.18633 5.26243,-0.0936 5.13636,0.21194 -0.13261,0.32125 -2.47361,0.84164 -5.175,1.15029 -1.64321,0.18775 -5.883947,0.27481 -6.379737,0.13096 z" + id="path281" + clip-path="url(#clipPath1335)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 68.155533,229.32608 c -3.258317,-0.3963 -6.601985,-1.21901 -6.601985,-1.62441 0,-0.16802 0.826975,-0.29064 1.955105,-0.28988 2.018225,8.4e-4 4.606044,0.27895 6.297376,0.67551 1.141175,0.26759 1.396576,0.40186 1.396576,0.73436 0,0.44185 -0.382216,0.57084 -1.647006,0.55585 -0.595465,-0.008 -1.22549,-0.0302 -1.400066,-0.0515 z" + id="path282" + clip-path="url(#clipPath1334)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 65.425864,231.04385 c -3.526788,-0.50041 -5.781636,-0.99377 -6.475022,-1.41672 -0.595829,-0.36343 -0.279488,-0.44736 1.460056,-0.38729 1.699963,0.0587 3.879192,0.31409 6.030659,0.70678 2.534439,0.46261 3.241232,0.77541 2.60981,1.15498 -0.39828,0.23942 -1.674342,0.2191 -3.625503,-0.0578 z" + id="path283" + clip-path="url(#clipPath1333)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 63.129991,232.3583 c -3.636158,-0.322 -6.706953,-0.80557 -7.81359,-1.23042 -1.548017,-0.59429 2.662866,-0.35397 6.110186,0.3487 1.066221,0.21733 4.691356,1.00794 4.888011,1.06602 0.293315,0.0866 -0.914435,0.0167 -3.184607,-0.1843 z" + id="path284" + clip-path="url(#clipPath1332)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 73.210256,212.00232 c -1.649746,-0.83224 -5.816488,-6.30053 -5.816488,-7.63338 0,-0.42327 0.180071,-0.42598 0.907261,-0.0132 1.101968,0.62467 3.81874,3.44596 4.565183,4.74085 0.367821,0.63806 0.422716,0.83448 0.410084,1.46714 -0.01657,0.82874 0.0037,0.84101 0.948387,0.57319 0.46324,-0.13142 0.572518,-0.1361 0.662028,-0.0285 0.138807,0.16674 -0.178394,0.74694 -0.52674,0.96343 -0.357945,0.22246 -0.601007,0.2079 -1.149715,-0.0688 z" + id="path285" + clip-path="url(#clipPath1331)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 59.349734,211.78845 c -0.04328,-0.19438 -0.07933,-0.61775 -0.08008,-0.94076 l -0.0015,-0.58731 -1.174394,-0.8265 c -2.951949,-2.07746 -3.798693,-2.82585 -5.486816,-4.84948 l -1.047124,-1.25523 3.060662,-0.0282 c 3.31934,-0.0306 3.836326,0.0203 4.259976,0.42022 0.57396,0.54168 0.188181,2.09567 -0.889752,3.58411 -0.344835,0.47613 -0.626971,0.9533 -0.626971,1.06034 0,0.22238 0.312888,0.25652 0.809911,0.0883 1.274248,-0.43102 2.96985,1.52369 2.321295,2.67604 -0.216021,0.38381 -0.818889,1.01182 -0.971321,1.01182 -0.05242,0 -0.130677,-0.15905 -0.173972,-0.35346 z" + id="path286" + clip-path="url(#clipPath1330)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 96.152583,191.966 c -0.27813,-0.0522 -0.55605,-0.13229 -0.61767,-0.17797 -0.1845,-0.13698 0.64597,-0.39278 1.74691,-0.53794 1.6342,-0.21543 7.053397,-0.16211 6.862237,0.0676 -0.34172,0.41046 -6.566897,0.91554 -7.991477,0.64839 z" + id="path287" + clip-path="url(#clipPath1329)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 47.37154,144.65819 c -1.215045,-0.19331 -1.339468,-0.45429 -0.510101,-1.07 1.090356,-0.80947 3.281517,-1.24215 6.249185,-1.23402 2.145522,0.006 3.201831,0.1498 4.443644,0.60544 0.749214,0.2749 2.60271,1.34184 2.60271,1.49822 0,0.0439 -0.471347,0.1065 -1.047436,0.13902 -1.80013,0.10153 -11.177071,0.15059 -11.738002,0.0613 z" + id="path288" + clip-path="url(#clipPath1328)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 42.743281,142.54618 c -1.03426,-0.38132 0.574223,-1.47998 2.960579,-2.02218 2.710287,-0.6158 6.307398,-0.30823 5.371733,0.45933 -0.499625,0.40985 -1.805861,0.71981 -4.947835,1.17414 -0.907775,0.13126 -1.973728,0.2971 -2.368787,0.36851 -0.556699,0.10065 -0.785196,0.1052 -1.01569,0.0203 z" + id="path290" + clip-path="url(#clipPath1326)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 40.136239,145.59784 c -0.153036,-0.0457 -0.370318,-0.1875 -0.482833,-0.31498 -0.1809,-0.20495 -0.183663,-0.26892 -0.02392,-0.55276 0.238841,-0.42435 1.122183,-0.97505 1.850308,-1.15352 0.321859,-0.079 1.127961,-0.22809 1.791333,-0.33157 1.875892,-0.29262 2.285304,-0.2553 2.285304,0.20842 0,0.15681 -0.117578,0.42636 -0.261294,0.59898 -0.838755,1.00752 -3.895529,1.92324 -5.1589,1.54543 z" + id="path291" + clip-path="url(#clipPath1325)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 44.566189,139.93092 c 0,-0.21889 0.255235,-0.66488 0.497941,-0.8701 0.295865,-0.25017 0.983872,-0.52433 1.556953,-0.6204 0.116562,-0.0195 0.504821,-0.0394 0.862799,-0.0441 1.009164,-0.0132 1.46036,-0.1462 1.574148,-0.46346 0.06582,-0.18358 0.129414,-0.23173 0.44464,-0.33675 0.657301,-0.21899 1.646776,-0.32874 2.963734,-0.32874 1.672181,0 2.991316,0.2056 3.290277,0.51282 0.07822,0.0804 0.07947,0.0948 0.01579,0.18614 -0.368528,0.52907 -3.611913,1.21857 -5.957603,1.26652 -0.938148,0.0191 -1.193103,-0.008 -1.536775,-0.15747 -0.490794,-0.21497 -1.349651,-0.0408 -2.432651,0.4936 -0.519521,0.2563 -1.066087,0.47337 -1.191978,0.47337 -0.06912,0 -0.08734,-0.0233 -0.08734,-0.11134 z" + id="path292" + clip-path="url(#clipPath1324)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 52.062415,132.94309 c -0.831577,-0.0755 -1.391828,-0.22627 -1.649378,-0.44404 -0.250142,-0.21149 -0.248709,-0.40282 0.005,-0.6774 0.210471,-0.22773 0.792233,-0.59034 1.168824,-0.7285 0.778167,-0.28552 1.731536,-0.26245 2.55724,0.0619 0.711646,0.2795 1.293007,1.00446 1.091964,1.36167 -0.174977,0.3109 -0.688734,0.42742 -1.961752,0.44492 -0.481419,0.008 -1.026803,-0.003 -1.211965,-0.0186 z" + id="path295" + clip-path="url(#clipPath1321)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 75.044859,137.65332 c -0.446458,-0.0352 -1.237241,-0.1219 -1.636539,-0.17971 -0.583595,-0.0845 -4.120584,-0.73179 -4.166899,-0.76266 -0.03723,-0.0248 1.475453,-0.0531 4.726136,-0.0883 2.607024,-0.0282 3.572537,0.0351 3.866842,0.25357 0.157969,0.11734 0.132511,0.19138 -0.126832,0.36884 -0.271178,0.18556 -0.674701,0.31849 -1.153645,0.38002 -0.360361,0.0463 -1.102562,0.0601 -1.509079,0.0282 z" + id="path296" + clip-path="url(#clipPath1320)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 89.500823,175.2794 c -0.39951,-0.081 -0.86734,-0.24213 -1.66636,-0.57381 -1.04784,-0.43498 -2.19005,-1.10219 -2.19005,-1.27931 0,-0.0619 0.0299,-0.0712 0.29358,-0.0891 0.47512,-0.0323 0.2589,-0.31289 -0.49316,-0.63984 -0.67932,-0.29531 -0.8129,-0.35699 -0.98508,-0.45481 -0.43461,-0.24689 -0.27379,-0.3397 0.43876,-0.25323 0.66517,0.0807 1.96985,0.35581 2.35865,0.49733 0.27592,0.10035 0.56529,0.30157 0.66624,0.46312 0.0854,0.13625 0.0932,0.34028 0.0173,0.44899 -0.0288,0.0414 -0.10166,0.13039 -0.16178,0.19754 -0.12468,0.13947 -0.14821,0.26707 -0.061,0.33181 0.0858,0.0637 0.48252,0.0682 0.81528,0.008 0.14837,-0.0262 1.01238,-0.23798 1.92,-0.47068 2.68819,-0.68922 2.51322,-0.65018 2.91981,-0.6515 0.39029,-8.4e-4 0.51204,0.0294 0.70872,0.1788 0.25972,0.19723 0.25882,0.69499 -0.001,0.85764 -0.13988,0.0873 -0.34879,0.0735 -0.55874,-0.0369 -0.19445,-0.10225 -0.39076,-0.11691 -0.66152,-0.0491 -0.4769,0.11955 -0.89977,0.3631 -1.59662,0.91969 -0.57584,0.45993 -0.88843,0.60984 -1.31055,0.62852 -0.16361,0.008 -0.29383,-0.003 -0.45199,-0.0349 z" + id="path304" + clip-path="url(#clipPath1312)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 116.53461,188.73879 c -0.0584,-0.0479 -0.15808,-0.25401 -0.28453,-0.5891 -0.15491,-0.40994 -0.24705,-0.59445 -0.43497,-0.87095 -0.36705,-0.54 -0.89875,-1.02563 -1.36016,-1.24224 -0.46511,-0.21835 -0.6274,-0.30407 -0.73411,-0.38782 -0.1545,-0.12131 -0.15549,-0.1708 -0.004,-0.21693 0.0995,-0.0305 0.22621,-0.0425 0.62223,-0.0592 0.30788,-0.0132 0.32649,-0.0158 0.4907,-0.0761 0.4059,-0.14894 0.76328,-0.49847 0.94612,-0.92536 0.0868,-0.20238 0.11019,-0.32056 0.13951,-0.6998 0.0513,-0.66705 0.11717,-0.99138 0.20149,-0.99138 0.0733,0 0.18647,0.21503 0.35935,0.68314 0.15806,0.42823 0.32043,0.71551 0.60314,1.06783 0.31696,0.39506 0.84093,0.83088 1.19009,0.98991 0.58168,0.26491 0.83302,0.41792 0.83302,0.50709 0,0.0857 -0.14958,0.11808 -0.65085,0.14122 -0.37935,0.0174 -0.49817,0.0444 -0.75068,0.16971 -0.39368,0.19547 -0.69409,0.53573 -0.83369,0.94432 -0.0388,0.11369 -0.0612,0.24239 -0.0765,0.44437 -0.0484,0.62583 -0.10638,1.00373 -0.16813,1.09236 -0.0411,0.059 -0.0387,0.0586 -0.0871,0.0189 z" + id="path305" + clip-path="url(#clipPath1311)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 107.15005,178.75753 c -0.2077,-0.0375 -0.31513,-0.17566 -0.36904,-0.47449 -0.0377,-0.20919 -0.0314,-0.90734 0.0101,-1.08153 0.15116,-0.63788 0.72321,-0.86917 2.33962,-0.94575 0.55566,-0.0262 2.78953,-0.0103 3.43263,0.0242 1.25974,0.068 1.99366,0.16081 1.99366,0.25202 0,0.0386 -0.0741,0.0578 -0.54067,0.13976 -1.18432,0.20818 -3.64525,0.96638 -5.14878,1.58631 -0.92336,0.38069 -1.47981,0.54259 -1.71743,0.49966 z" + id="path306" + clip-path="url(#clipPath1310)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 107.46473,174.02483 c -0.34904,-0.0408 -0.56205,-0.12424 -0.83404,-0.32617 -0.18531,-0.1374 -0.21783,-0.17145 -0.32863,-0.34256 -0.19002,-0.29367 -0.2572,-0.54507 -0.22858,-0.85646 0.0665,-0.72434 0.56811,-1.09271 1.68301,-1.23612 0.32536,-0.0418 1.45382,-0.042 1.8516,-2.1e-4 1.19808,0.12585 2.01967,0.38305 2.23153,0.69867 0.0964,0.14356 0.0683,0.23919 -0.10536,0.35751 -0.12984,0.0883 -0.2763,0.14358 -0.52586,0.19748 -0.29722,0.0643 -0.56757,0.0888 -1.17398,0.10636 -0.53284,0.0154 -0.82084,0.0408 -1.07729,0.0948 -0.41692,0.0877 -0.66671,0.2746 -0.61909,0.46308 0.008,0.0329 0.0557,0.11661 0.10511,0.18601 0.11286,0.15805 0.13242,0.2567 0.071,0.3585 -0.10892,0.18111 -0.3713,0.28339 -0.78028,0.30424 -0.0864,0.003 -0.2076,0.003 -0.26933,-0.004 z" + id="path307" + clip-path="url(#clipPath1309)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 120.02195,173.95471 c -1.51179,-0.052 -3.27876,-0.55276 -4.1602,-1.17902 -0.64772,-0.46023 -0.57712,-0.85156 0.18768,-1.04018 0.49447,-0.12189 1.12337,-0.0858 1.61128,0.0923 0.18351,0.067 0.2518,0.10973 0.53579,0.33488 0.23353,0.18519 0.62153,0.2867 1.09601,0.28674 0.41115,4e-5 0.73971,-0.0613 1.15589,-0.21614 0.22858,-0.0851 0.47079,-0.15136 0.6082,-0.16665 0.081,-0.008 0.11095,-0.004 0.15431,0.0211 0.054,0.0323 0.054,0.0323 0.0138,0.10826 -0.0215,0.0418 -0.0995,0.1361 -0.17306,0.20957 -0.1642,0.16365 -0.20034,0.2362 -0.20034,0.4014 0,0.15828 0.0424,0.25733 0.17445,0.40624 0.1555,0.17578 0.27362,0.23717 0.71213,0.37054 0.19654,0.0598 0.325,0.14167 0.29051,0.18541 -0.035,0.0446 -0.20465,0.10211 -0.38147,0.12966 -0.33614,0.0524 -1.03093,0.0763 -1.62597,0.0558 z" + id="path308" + clip-path="url(#clipPath1308)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 118.39479,178.16185 c -1.85405,-0.0307 -3.88537,-0.13141 -4.03449,-0.19979 -0.0953,-0.0438 0.47139,-0.0869 1.62179,-0.12351 0.86232,-0.0276 5.31764,-0.0391 6.57598,-0.0171 1.67207,0.0291 2.61064,0.0698 2.85037,0.12379 l 0.10093,0.0227 -0.0971,0.0202 c -0.32879,0.0686 -1.59244,0.13405 -3.24702,0.16831 -0.68108,0.0146 -3.04268,0.0174 -3.77053,0.004 z" + id="path309" + clip-path="url(#clipPath1307)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 110.91332,204.27467 c -0.0102,-0.0599 -0.068,-0.40323 -0.12925,-0.76288 -0.20209,-1.18608 -0.27956,-1.74288 -0.30333,-2.17961 -0.0277,-0.5092 -0.0647,-0.78203 -0.16754,-1.23508 -0.15215,-0.67088 -0.34963,-1.22208 -0.65684,-1.83407 -0.0943,-0.18789 -0.18352,-0.37263 -0.19799,-0.41047 -0.0673,-0.17544 -0.0895,-0.25798 -0.0988,-0.3683 -0.008,-0.10182 -0.004,-0.13112 0.0242,-0.20239 0.14346,-0.35038 0.81402,-0.46208 2.77148,-0.46164 0.77263,1.9e-4 2.8564,0.0305 3.1978,0.0465 1.34649,0.0631 2.43355,0.20128 2.91217,0.37012 0.2422,0.0854 0.30076,0.14679 0.2213,0.23191 -0.0623,0.067 -0.21346,0.16778 -0.3215,0.2148 -0.21866,0.0951 -0.42871,0.13712 -0.6868,0.13756 -0.21898,2.5e-4 -0.3684,-0.0278 -0.59372,-0.11163 -0.36236,-0.13478 -0.67023,-0.14874 -0.83074,-0.0377 -0.12907,0.0892 -0.15451,0.29734 -0.0656,0.53829 0.0719,0.19525 0.0825,0.24959 0.0749,0.3829 -0.0114,0.20868 -0.10168,0.36529 -0.29119,0.5076 -0.22298,0.16747 -0.61032,0.24857 -0.8585,0.17972 -0.19358,-0.0538 -0.36627,-0.23106 -0.45134,-0.46346 -0.0294,-0.0804 -0.0348,-0.12716 -0.0359,-0.31813 -0.001,-0.21994 -3.5e-4,-0.22693 0.0573,-0.40057 0.1926,-0.58057 0.0684,-0.71711 -0.47124,-0.51854 -0.31113,0.11441 -0.88901,0.40371 -1.2458,0.62356 -0.72946,0.44949 -1.33779,1.04438 -1.50168,1.46847 -0.0518,0.1339 -0.0504,0.28345 0.004,0.33651 0.0715,0.0711 0.10651,0.0811 0.28193,0.0811 0.18154,-8e-5 0.26525,-0.017 0.54051,-0.10914 0.15056,-0.0505 0.16161,-0.0524 0.27831,-0.0475 0.0946,0.003 0.1407,0.0132 0.20816,0.0394 0.11641,0.046 0.27809,0.17057 0.35973,0.27737 0.0842,0.11031 0.17089,0.30211 0.20171,0.44669 0.0356,0.16704 0.0623,0.53974 0.051,0.70688 -0.0345,0.50781 -0.32567,0.78198 -0.69248,0.65223 -0.31166,-0.11031 -0.58717,0.0538 -0.76935,0.45794 -0.0726,0.16109 -0.114,0.3455 -0.13438,0.59895 -0.0102,0.11296 -0.0273,0.29023 -0.0401,0.39393 -0.0114,0.10358 -0.0236,0.22152 -0.0241,0.26187 l -3.7e-4,0.0733 -0.14069,0.10695 c -0.0776,0.0589 -0.21015,0.18076 -0.29515,0.27124 -0.0849,0.0904 -0.15589,0.16431 -0.15786,0.16431 -0.001,0 -0.0114,-0.0491 -0.0213,-0.10899 z" + id="path310" + clip-path="url(#clipPath1306)" /><path + style="fill:#642a23;fill-opacity:1;stroke:#a56121;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 65.685797,111.94195 c -0.543138,-0.64421 -1.221185,-1.43445 -1.506769,-1.75609 -1.09238,-1.23032 -2.020495,-2.04906 -2.617366,-2.30895 -0.779332,-0.33933 -1.337268,-1.00316 -1.109136,-1.31962 0.02826,-0.0392 0.115141,-0.0958 0.193016,-0.12569 0.227117,-0.0872 0.550395,-0.0434 1.10469,0.14958 0.519699,0.1809 0.789501,0.24056 1.441809,0.3187 0.680142,0.0814 1.426088,0.10036 2.060433,0.0526 0.506618,-0.0384 0.597317,-0.037 0.822056,0.0117 0.276198,0.0596 0.489708,0.20565 0.608035,0.41589 0.258961,0.4601 0.295415,1.57271 0.129018,3.93759 -0.06512,0.92557 -0.122858,1.70829 -0.128327,1.73941 -0.0056,0.0312 -0.454313,-0.47049 -0.997451,-1.11468 z" + id="path313" + clip-path="url(#clipPath1303)" /><path + style="display:inline;fill:#642a23;fill-opacity:1;stroke:#8494e5;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 405.3932,657.38674 c -0.60874,-0.11084 -1.78999,-0.83972 -2.625,-1.61974 -1.94998,-1.82155 -2.09581,-4.48485 -0.34162,-6.23904 2.38047,-2.38047 10.47153,-2.86795 16.73395,-1.00821 5.52502,1.64075 4.22392,3.04348 -3.4405,3.70922 -5.62081,0.48824 -6.66376,1.00075 -6.21299,3.0531 0.16583,0.755 0.11958,1.47554 -0.10277,1.6012 -0.77066,0.43553 -2.90962,0.70401 -4.01107,0.50347 z" + id="path911" + clip-path="url(#clipPath1284)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:#642a23;fill-opacity:1;stroke:#8494e5;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 449.1286,656.73315 c -5.36063,-0.90246 -11.57054,-3.59856 -12.22663,-5.30832 -0.9164,-2.38809 5.09282,-2.98035 9.02119,-0.88912 2.62992,1.40001 6.14847,1.67675 9.32354,0.7333 2.33734,-0.69452 2.73845,-0.65482 2.02839,0.20075 -1.10344,1.32956 -0.42627,3.45575 1.36966,4.30046 0.90461,0.42549 1.48586,0.9325 1.29166,1.12669 -0.45987,0.45988 -7.76052,0.34926 -10.80781,-0.16376 z" + id="path912" + clip-path="url(#clipPath1283)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:#642a23;fill-opacity:1;stroke:#8494e5;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 404.05349,674.4591 c -0.16692,-0.43499 -0.30349,-1.65994 -0.30349,-2.72211 0,-2.91955 1.55701,-4.40162 5.25,-4.9973 4.97891,-0.8031 24.10377,-0.27902 21.75,0.59601 -0.4125,0.15335 -3.3375,1.004 -6.5,1.89033 -3.1625,0.88634 -8.40925,2.60432 -11.65944,3.81774 -6.35447,2.37237 -8.06124,2.65533 -8.53707,1.41533 z" + id="path913" + clip-path="url(#clipPath1282)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:#642a23;fill-opacity:1;stroke:#8494e5;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 439,672.75 c -1.925,-0.17788 4.375,-0.32884 14,-0.33547 9.92636,-0.007 16.09347,0.14606 14.25,0.35327 -3.94422,0.44335 -23.39205,0.43109 -28.25,-0.0178 z" + id="path914" + clip-path="url(#clipPath1281)" + transform="scale(0.26458333)" /><path + d="m 74.297661,173.59234 c 0,0 -0.08035,0.0237 0,0 l -0.03396,0.009 c 0.0013,-3.4e-4 0.0027,-6.8e-4 0.004,-0.001 l -0.03825,0.009 c 0.0013,-2.8e-4 0.0027,-5.7e-4 0.0041,-8.6e-4 l -0.03835,0.007 c 0.0013,-2.3e-4 0.0027,-4.6e-4 0.0041,-7e-4 l -0.03826,0.006 c 0.0014,-1.8e-4 0.0027,-3.6e-4 0.0041,-5.4e-4 l -0.03799,0.004 c 0.0014,-1.2e-4 0.0028,-2.5e-4 0.0042,-3.8e-4 l -0.03755,0.003 c 0.0014,-7e-5 0.0028,-1.4e-4 0.0042,-2.2e-4 l -0.03696,0.001 c 0.0014,-3e-5 0.0028,-5e-5 0.0042,-7e-5 l -0.03622,-1.1e-4 c 0.0014,3e-5 0.0028,6e-5 0.0042,9e-5 l -0.03536,-0.001 c 0.0014,8e-5 0.0028,1.6e-4 0.0043,2.4e-4 l -0.0344,-0.003 c 0.0014,1.3e-4 0.0029,2.7e-4 0.0043,4e-4 l -0.03335,-0.004 c 0.0014,1.9e-4 0.0029,3.7e-4 0.0043,5.5e-4 l -0.03223,-0.005 c 0.0014,2.3e-4 0.0029,4.6e-4 0.0044,7e-4 l -0.03106,-0.005 c 0.0015,2.8e-4 0.0029,5.6e-4 0.0044,8.5e-4 l -0.02987,-0.006 c 0.0015,3.3e-4 0.0029,6.6e-4 0.0044,10e-4 l -0.02865,-0.007 c 0.0015,3.7e-4 0.003,7.5e-4 0.0045,0.001 l -0.02742,-0.007 c 0.0015,4.3e-4 0.003,8.5e-4 0.0045,0.001 l -0.02621,-0.008 c 0.0015,4.7e-4 0.003,9.5e-4 0.0045,0.001 l -0.02501,-0.008 c 0.0015,5.3e-4 0.003,0.001 0.0046,0.002 l -0.02384,-0.009 c 0.0015,5.7e-4 0.003,0.001 0.0046,0.002 l -0.02269,-0.009 c 0.0015,6.2e-4 0.0031,0.001 0.0046,0.002 l -0.02158,-0.009 c 0.0015,6.6e-4 0.0031,0.001 0.0046,0.002 l -0.02051,-0.009 c 0.0015,7.1e-4 0.0031,0.001 0.0047,0.002 l -0.01949,-0.009 c 0.0016,7.6e-4 0.0031,0.002 0.0047,0.002 l -0.0185,-0.009 c 0.0016,8e-4 0.0031,0.002 0.0047,0.002 l -0.01756,-0.009 c 0.0016,8.4e-4 0.0032,0.002 0.0048,0.003 l -0.01667,-0.009 c 0.0016,8.9e-4 0.0032,0.002 0.0048,0.003 l -0.01582,-0.009 c 0.0016,9.3e-4 0.0032,0.002 0.0048,0.003 l -0.01501,-0.009 c 0.0016,9.8e-4 0.0032,0.002 0.0048,0.003 l -0.01424,-0.009 c 0.0016,0.001 0.0032,0.002 0.0049,0.003 l -0.01352,-0.009 c 0.0016,0.001 0.0033,0.002 0.0049,0.003 l -0.01283,-0.009 c 0.0016,0.001 0.0033,0.002 0.0049,0.003 l -0.01219,-0.008 c 0.0016,0.001 0.0033,0.002 0.005,0.003 l -0.01157,-0.008 c 0.0017,0.001 0.0033,0.002 0.005,0.004 l -0.011,-0.008 c 0.0017,0.001 0.0033,0.002 0.005,0.004 l -0.01045,-0.008 c 1.4e-5,1e-5 2.8e-5,2e-5 4.2e-5,3e-5 -0.0048,-0.004 -0.0047,-0.004 -0.0046,-0.004 -0.0045,-0.004 -0.0043,-0.003 -0.0041,-0.003 -0.0042,-0.003 -0.0039,-0.003 -0.0037,-0.003 -0.0039,-0.003 -0.0036,-0.003 -0.0032,-0.003 -0.0036,-0.003 -0.0032,-0.003 -0.0028,-0.002 4.43e-4,3.9e-4 8.86e-4,7.8e-4 0.0013,0.001 -0.0057,-0.005 -0.0039,-0.003 -0.0022,-0.002 -0.0053,-0.005 -0.0036,-0.003 -0.0018,-0.002 -0.005,-0.005 -0.0032,-0.003 -0.0015,-0.001 -0.0047,-0.004 -0.0029,-0.003 -0.0011,-0.001 -0.0044,-0.004 -0.0026,-0.002 -8.14e-4,-7.3e-4 -0.0041,-0.004 -0.0023,-0.002 -5.13e-4,-4.6e-4 -0.0038,-0.004 -0.002,-0.002 -2.28e-4,-1.8e-4 -0.0036,-0.004 -0.0018,-0.002 4.4e-5,8e-5 -0.0033,-0.003 -0.0015,-0.002 3.03e-4,3.5e-4 -0.0031,-0.003 -0.0013,-0.001 5.5e-4,6.1e-4 -0.0029,-0.003 -0.001,-0.001 7.84e-4,8.6e-4 -0.0027,-0.003 -8.33e-4,-8.6e-4 0.001,0.001 -0.0025,-0.003 -6.27e-4,-6.4e-4 0.0012,0.001 -0.0023,-0.002 -4.31e-4,-4.4e-4 0.0014,0.002 -0.0021,-0.002 -2.43e-4,-2.4e-4 0.0016,0.002 -0.0019,-0.002 -6.4e-5,-5e-5 0.0018,0.002 -0.0018,-0.002 1.07e-4,1.4e-4 0.002,0.002 -0.0016,-0.002 2.7e-4,3.4e-4 0.0022,0.003 -0.0015,-0.002 4.27e-4,5.1e-4 0.0023,0.003 -0.0013,-0.002 5.77e-4,6.9e-4 0.0025,0.003 -0.0012,-0.001 7.21e-4,8.7e-4 0.0026,0.003 -0.0011,-0.001 8.59e-4,0.001 0.0028,0.003 -9.35e-4,-0.001 9.92e-4,0.001 0.0029,0.004 -8.17e-4,-9.8e-4 0.0011,0.001 0.0031,0.004 -7.02e-4,-8.5e-4 0.0012,0.002 0.0032,0.004 -5.92e-4,-7.2e-4 0.0014,0.002 0.0033,0.004 -4.87e-4,-6e-4 0.0015,0.002 0.0034,0.004 -3.85e-4,-4.7e-4 0.0016,0.002 0.0036,0.004 -2.88e-4,-3.5e-4 0.0017,0.002 0.0037,0.005 -1.94e-4,-2.4e-4 0.0018,0.002 0.0038,0.005 -1.04e-4,-1.2e-4 0.0019,0.002 0.0039,0.005 -1.7e-5,-2e-5 0.002,0.003 0.004,0.005 6.7e-5,9e-5 0.0021,0.003 0.0041,0.005 1.48e-4,2e-4 0.0022,0.003 0.0042,0.005 2.26e-4,3e-4 0.0022,0.003 0.0043,0.006 3.01e-4,4.1e-4 0.0023,0.003 0.0044,0.006 3.74e-4,5.1e-4 0.0024,0.003 0.0044,0.006 4.45e-4,6.1e-4 0.0025,0.003 0.0045,0.006 5.12e-4,7e-4 0.0026,0.003 0.0046,0.006 5.79e-4,7.9e-4 0.0026,0.004 0.0047,0.006 6.43e-4,8.8e-4 0.0027,0.004 0.0048,0.007 7.05e-4,9.7e-4 0.0028,0.004 0.0049,0.007 7.65e-4,0.001 0.0028,0.004 0.0049,0.007 8.23e-4,0.001 0.0029,0.004 0.005,0.007 8.79e-4,0.001 0.003,0.004 0.0051,0.007 9.35e-4,0.001 0.003,0.004 0.0051,0.007 9.88e-4,0.001 0.0031,0.004 0.0052,0.007 0.001,0.001 0.0032,0.004 0.0053,0.007 0.0011,0.002 0.0032,0.005 0.0053,0.008 0.0011,0.002 0.0033,0.005 0.0054,0.008 0.0012,0.002 0.0033,0.005 0.0055,0.008 0.0012,0.002 0.0034,0.005 0.0055,0.008 0.0013,0.002 0.0034,0.005 0.0056,0.008 0.0013,0.002 0.0035,0.005 0.0056,0.008 0.0014,0.002 0.0035,0.005 0.0057,0.008 0.0014,0.002 0.0036,0.005 0.0058,0.008 0.0015,0.002 0.0036,0.005 0.0058,0.008 0.0015,0.002 0.0037,0.005 0.0059,0.009 0.0015,0.002 0.0037,0.005 0.0059,0.009 0.0016,0.002 0.0038,0.006 0.006,0.009 0.0016,0.002 0.0038,0.006 0.006,0.009 0.0017,0.002 0.0039,0.006 0.0061,0.009 0.0017,0.002 0.0039,0.006 0.0061,0.009 0.0017,0.003 0.0039,0.006 0.0062,0.009 0.0018,0.003 0.004,0.006 0.0062,0.009 0.0018,0.003 0.004,0.006 0.0063,0.009 0.0018,0.003 0.0041,0.006 0.0063,0.009 0.0019,0.003 0.0041,0.006 0.0064,0.009 0.0019,0.003 0.0041,0.006 0.0064,0.009 0.0019,0.003 0.0042,0.006 0.0064,0.01 0.002,0.003 0.0042,0.006 0.0065,0.01 0.002,0.003 0.0043,0.006 0.0065,0.01 0.002,0.003 0.0043,0.006 0.0066,0.01 0.0021,0.003 0.0043,0.006 0.0066,0.01 0.0021,0.003 0.0044,0.007 0.0067,0.01 0.0021,0.003 0.0044,0.007 0.0067,0.01 0.0021,0.003 0.0044,0.007 0.0067,0.0101 0.0022,0.003 0.0045,0.007 0.0068,0.0101 0.0022,0.003 0.0045,0.007 0.0068,0.0102 0.0022,0.003 0.0046,0.007 0.0069,0.0103 0.0023,0.003 0.0046,0.007 0.0069,0.0103 0.0023,0.003 0.0046,0.007 0.0069,0.0104 0.0023,0.003 0.0047,0.007 0.007,0.0104 0.0024,0.004 0.0047,0.007 0.007,0.0105 0.0024,0.004 0.0047,0.007 0.0071,0.0106 0.0024,0.004 0.0048,0.007 0.0071,0.0106 0.0024,0.004 0.0048,0.007 0.0071,0.0107 0.0025,0.004 0.0048,0.007 0.0072,0.0107 0.0025,0.004 0.0049,0.007 0.0072,0.0108 0.0025,0.004 0.0049,0.007 0.0073,0.0108 0.0025,0.004 0.0049,0.007 0.0073,0.0109 0.0026,0.004 0.005,0.007 0.0073,0.0109 0.0026,0.004 0.005,0.007 0.0074,0.011 0.0026,0.004 0.005,0.007 0.0074,0.011 0.0027,0.004 0.005,0.008 0.0074,0.0111 0.0027,0.004 0.0051,0.008 0.0075,0.0111 0.0027,0.004 0.0051,0.008 0.0075,0.0111 0.0027,0.004 0.0051,0.008 0.0076,0.0112 0.0028,0.004 0.0052,0.008 0.0076,0.0112 0.0028,0.004 0.0052,0.008 0.0076,0.0113 0.0028,0.004 0.0052,0.008 0.0077,0.0113 0.0028,0.004 0.0053,0.008 0.0077,0.0113 0.0029,0.004 0.0053,0.008 0.0077,0.0114 0.0029,0.004 0.0053,0.008 0.0078,0.0114 0.0029,0.004 0.0054,0.008 0.0078,0.0114 0.0029,0.004 0.0054,0.008 0.0078,0.0115 0.003,0.004 0.0054,0.008 0.0079,0.0115 0.003,0.004 0.0055,0.008 0.0079,0.0115 0.003,0.004 0.0055,0.008 0.008,0.0115 0.0031,0.004 0.0055,0.008 0.008,0.0116 0.0031,0.004 0.0056,0.008 0.008,0.0116 0.0031,0.005 0.0056,0.008 0.0081,0.0116 0.0031,0.005 0.0056,0.008 0.0081,0.0117 0.0032,0.005 0.0057,0.008 0.0081,0.0117 0.0032,0.005 0.0057,0.008 0.0082,0.0117 0.0032,0.005 0.0057,0.008 0.0082,0.0117 0.0033,0.005 0.0058,0.008 0.0083,0.0118 0.0033,0.005 0.0058,0.008 0.0083,0.0118 0.0033,0.005 0.0058,0.008 0.0083,0.0118 0.0034,0.005 0.0059,0.008 0.0084,0.0118 0.0034,0.005 0.0059,0.008 0.0084,0.0118 0.0034,0.005 0.0059,0.008 0.0084,0.0118 0.0034,0.005 0.006,0.008 0.0085,0.0119 0.0035,0.005 0.006,0.008 0.0085,0.0119 0.0035,0.005 0.006,0.008 0.0086,0.0119 0.0035,0.005 0.0061,0.008 0.0086,0.0119 0.0036,0.005 0.0061,0.008 0.0086,0.0119 0.0036,0.005 0.0061,0.008 0.0087,0.0119 0.0036,0.005 0.0062,0.008 0.0087,0.0119 0.0037,0.005 0.0062,0.008 0.0088,0.0119 0.0037,0.005 0.0063,0.008 0.0088,0.0119 0.0037,0.005 0.0063,0.009 0.0089,0.012 0.0038,0.005 0.0063,0.009 0.0089,0.0119 0.0038,0.005 0.0064,0.009 0.0089,0.012 0.0039,0.005 0.0064,0.009 0.009,0.012 0.0039,0.005 0.0065,0.009 0.009,0.012 0.0039,0.005 0.0065,0.009 0.0091,0.012 0.004,0.005 0.0066,0.009 0.0091,0.012 0.004,0.005 0.0066,0.009 0.0092,0.012 0.0041,0.005 0.0066,0.009 0.0092,0.012 0.0041,0.005 0.0067,0.009 0.0093,0.012 0.0041,0.005 0.0067,0.009 0.0093,0.012 0.0042,0.005 0.0068,0.009 0.0094,0.012 0.0042,0.005 0.0068,0.009 0.0094,0.012 0.0043,0.005 0.0069,0.009 0.0095,0.012 0.0043,0.005 0.0069,0.009 0.0095,0.012 0.0044,0.005 0.007,0.009 0.0096,0.012 0.0044,0.005 0.007,0.009 0.0096,0.012 0.0045,0.006 0.0071,0.009 0.0097,0.012 0.0045,0.006 0.0071,0.009 0.0097,0.0119 0.0046,0.006 0.0072,0.009 0.0098,0.0119 0.0046,0.006 0.0072,0.009 0.0098,0.0119 0.0047,0.006 0.0073,0.009 0.0099,0.0119 0.0047,0.006 0.0074,0.009 0.01,0.0119 0.0048,0.006 0.0074,0.009 0.01003,0.0119 0.0048,0.006 0.0075,0.009 0.01009,0.0119 0.0049,0.006 0.0075,0.009 0.01015,0.0119 0.005,0.006 0.0076,0.009 0.01022,0.0119 0.005,0.006 0.0077,0.009 0.01029,0.0119 0.0051,0.006 0.0077,0.009 0.01036,0.0119 0.0052,0.006 0.0078,0.009 0.01043,0.0119 0.0052,0.006 0.0079,0.009 0.0105,0.0118 0.0053,0.006 0.0079,0.009 0.01057,0.0118 0.0054,0.006 0.008,0.009 0.01064,0.0118 0.0054,0.006 0.0081,0.009 0.01072,0.0118 0.0055,0.006 0.0082,0.009 0.0108,0.0118 0.0056,0.006 0.0082,0.009 0.01088,0.0118 0.0057,0.006 0.0083,0.009 0.01096,0.0118 0.0057,0.006 0.0084,0.009 0.01105,0.0117 0.0058,0.006 0.0085,0.009 0.01113,0.0117 0.0059,0.006 0.0086,0.009 0.01122,0.0117 0.006,0.006 0.0087,0.009 0.01131,0.0117 0.0061,0.006 0.0088,0.009 0.01141,0.0117 0.0062,0.006 0.0088,0.009 0.0115,0.0117 0.0063,0.006 0.0089,0.009 0.0116,0.0116 0.0064,0.006 0.009,0.009 0.0117,0.0116 0.0065,0.006 0.0091,0.009 0.0118,0.0116 0.0066,0.006 0.0092,0.009 0.01191,0.0116 0.0067,0.006 0.0094,0.009 0.01202,0.0115 0.0068,0.006 0.0095,0.009 0.01213,0.0115 0.0069,0.006 0.0096,0.009 0.01225,0.0115 0.007,0.007 0.0097,0.009 0.01237,0.0115 0.0071,0.007 0.0098,0.009 0.01249,0.0114 0.0073,0.007 0.0099,0.009 0.01261,0.0114 0.0074,0.007 0.01007,0.009 0.01274,0.0114 0.0075,0.007 0.0102,0.009 0.01287,0.0114 0.0077,0.007 0.01034,0.009 0.01301,0.0113 0.0078,0.007 0.01048,0.009 0.01315,0.0113 0.0079,0.007 0.01062,0.009 0.01329,0.0113 0.0081,0.007 0.01077,0.009 0.01344,0.0112 0.0082,0.007 0.01092,0.009 0.0136,0.0112 0.0084,0.007 0.01108,0.009 0.01375,0.0111 0.0085,0.007 0.01124,0.009 0.01391,0.0111 0.0087,0.007 0.01141,0.009 0.01408,0.0111 0.0089,0.007 0.01158,0.009 0.01425,0.011 0.0091,0.007 0.01175,0.009 0.01443,0.011 0.0092,0.007 0.01193,0.009 0.01461,0.0109 0.0094,0.007 0.01212,0.009 0.01479,0.0109 0.0096,0.007 0.01231,0.009 0.01499,0.0108 0.0098,0.007 0.01251,0.009 0.01518,0.0108 0.01001,0.007 0.01271,0.009 0.01538,0.0107 0.01022,0.007 0.01292,0.009 0.01559,0.0106 0.01043,0.007 0.01313,0.009 0.01581,0.0106 0.01065,0.007 0.01335,0.009 0.01602,0.0105 0.01088,0.007 0.01358,0.009 0.01625,0.0104 0.01111,0.007 0.01381,0.009 0.01648,0.0103 0.0029,0.002 0.0057,0.004 0.0086,0.005 0.0027,0.002 0.0054,0.003 0.0081,0.005 0.0029,0.002 0.0059,0.004 0.0089,0.005 0.0027,0.002 0.0054,0.003 0.0081,0.005 0.003,0.002 0.0061,0.004 0.0091,0.005 0.0027,0.002 0.0054,0.003 0.0081,0.005 0.0031,0.002 0.0062,0.004 0.0093,0.005 0.0027,0.002 0.0054,0.003 0.0081,0.005 0.0032,0.002 0.0064,0.004 0.0096,0.005 0.0027,0.002 0.0055,0.003 0.0081,0.004 0.0033,0.002 0.0066,0.004 0.0099,0.005 0.0028,0.001 0.0055,0.003 0.0081,0.004 0.0034,0.002 0.0068,0.004 0.01014,0.005 0.0028,0.001 0.0055,0.003 0.0081,0.004 0.0035,0.002 0.0069,0.004 0.01042,0.005 0.0028,0.001 0.0055,0.003 0.0081,0.004 a 0.99218747,0.99218747 90 0 0 0.898062,-1.76952 c -9.54e-4,-4.9e-4 -0.0019,-9.8e-4 -0.0029,-0.001 0.0042,0.002 0.0032,0.002 0.0022,0.001 0.004,0.002 0.003,0.002 0.0019,0.001 0.0038,0.002 0.0027,0.002 0.0016,9e-4 0.0037,0.002 0.0025,0.001 0.0014,7.7e-4 0.0035,0.002 0.0023,0.001 0.0011,6.5e-4 0.0033,0.002 0.0021,0.001 8.66e-4,5.1e-4 0.0032,0.002 0.0019,0.001 6.24e-4,3.8e-4 -0.0013,-7.8e-4 -0.0025,-0.002 -0.0038,-0.002 0.0057,0.004 0.003,0.002 2.72e-4,1.1e-4 0.0055,0.004 0.0028,0.002 4.4e-5,-3e-5 0.0053,0.003 0.0025,0.002 -1.77e-4,-1.7e-4 0.005,0.003 0.0023,0.002 -3.92e-4,-3.2e-4 0.0048,0.003 0.0021,0.001 -6.01e-4,-4.6e-4 0.0046,0.003 0.0019,0.001 -8.05e-4,-6.2e-4 0.0044,0.003 0.0017,0.001 -0.001,-7.7e-4 0.0042,0.003 0.0015,0.001 -0.0012,-9.2e-4 0.004,0.003 0.0013,9.5e-4 -0.0014,-0.001 0.0038,0.003 0.0012,8.3e-4 -0.0016,-0.001 0.0037,0.003 9.76e-4,7.1e-4 -0.0017,-0.001 0.0035,0.003 8.04e-4,5.9e-4 -0.0019,-0.002 0.0033,0.003 6.37e-4,4.7e-4 -0.0021,-0.002 0.0032,0.003 4.75e-4,3.5e-4 -0.0022,-0.002 0.003,0.002 3.18e-4,2.3e-4 -0.0024,-0.002 0.0029,0.002 1.66e-4,1e-4 -0.0025,-0.002 0.0027,0.002 1.8e-5,-1e-5 -0.0027,-0.002 0.0026,0.002 -1.24e-4,-1.4e-4 -0.0028,-0.002 0.0024,0.002 -2.64e-4,-2.6e-4 -0.003,-0.003 0.0023,0.002 -3.98e-4,-3.7e-4 -0.0031,-0.003 0.0022,0.002 -5.28e-4,-5e-4 -0.0032,-0.003 0.002,0.002 -6.54e-4,-6.2e-4 -0.0033,-0.003 0.0019,0.002 -7.76e-4,-7.3e-4 -0.0035,-0.003 0.0018,0.002 -8.95e-4,-8.6e-4 -0.0036,-0.003 0.0017,0.002 -0.001,-9.7e-4 -0.0037,-0.003 0.0016,0.001 -0.0011,-0.001 -0.0038,-0.004 0.0014,0.001 -0.0012,-0.001 -0.0039,-0.004 0.0013,0.001 -0.0013,-0.001 -0.004,-0.004 0.0012,0.001 -0.0014,-0.001 -0.0041,-0.004 0.0011,0.001 -0.0015,-0.002 -0.0042,-0.004 0.001,0.001 -0.0016,-0.002 -0.0043,-0.004 9.44e-4,9.4e-4 -0.0017,-0.002 -0.0044,-0.004 8.52e-4,8.5e-4 -0.0018,-0.002 -0.0045,-0.005 7.63e-4,7.7e-4 -0.0019,-0.002 -0.0046,-0.005 6.77e-4,6.9e-4 -0.002,-0.002 -0.0046,-0.005 5.94e-4,6.1e-4 -0.0021,-0.002 -0.0047,-0.005 5.13e-4,5.3e-4 -0.0021,-0.002 -0.0048,-0.005 4.34e-4,4.5e-4 -0.0022,-0.002 -0.0049,-0.005 3.58e-4,3.7e-4 -0.0023,-0.002 -0.005,-0.005 2.84e-4,3e-4 -0.0024,-0.003 -0.005,-0.005 2.12e-4,2.2e-4 -0.0024,-0.003 -0.0051,-0.006 1.42e-4,1.5e-4 -0.0025,-0.003 -0.0052,-0.006 7.5e-5,7e-5 -0.0026,-0.003 -0.0052,-0.006 8e-6,-1e-5 -0.0026,-0.003 -0.0053,-0.006 -5.6e-5,-8e-5 -0.0027,-0.003 -0.0053,-0.006 -1.18e-4,-1.5e-4 -0.0028,-0.003 -0.0054,-0.006 -1.79e-4,-2.2e-4 -0.0028,-0.003 -0.0055,-0.006 -2.37e-4,-2.9e-4 -0.0029,-0.003 -0.0055,-0.006 -2.95e-4,-3.5e-4 -0.0029,-0.003 -0.0056,-0.007 -3.51e-4,-4.3e-4 -0.003,-0.004 -0.0056,-0.007 -4.04e-4,-4.8e-4 -0.003,-0.004 -0.0057,-0.007 -4.57e-4,-5.6e-4 -0.0031,-0.004 -0.0057,-0.007 -5.08e-4,-6.2e-4 -0.0031,-0.004 -0.0058,-0.007 -5.58e-4,-6.8e-4 -0.0032,-0.004 -0.0058,-0.007 -6.06e-4,-7.4e-4 -0.0032,-0.004 -0.0058,-0.007 -6.53e-4,-8.1e-4 -0.0033,-0.004 -0.0059,-0.007 -7e-4,-8.7e-4 -0.0033,-0.004 -0.0059,-0.007 -7.44e-4,-9.3e-4 -0.0033,-0.004 -0.006,-0.007 -7.88e-4,-9.9e-4 -0.0034,-0.004 -0.006,-0.007 -8.3e-4,-0.001 -0.0034,-0.004 -0.006,-0.008 -8.71e-4,-0.001 -0.0035,-0.004 -0.0061,-0.008 -9.12e-4,-0.001 -0.0035,-0.004 -0.0061,-0.008 -9.5e-4,-0.001 -0.0035,-0.005 -0.0061,-0.008 -9.88e-4,-0.001 -0.0036,-0.005 -0.0062,-0.008 -0.001,-0.001 -0.0036,-0.005 -0.0062,-0.008 -0.0011,-0.001 -0.0036,-0.005 -0.0062,-0.008 -0.0011,-0.001 -0.0037,-0.005 -0.0063,-0.008 -0.0011,-0.001 -0.0037,-0.005 -0.0063,-0.008 -0.0012,-0.002 -0.0037,-0.005 -0.0063,-0.008 -0.0012,-0.002 -0.0038,-0.005 -0.0063,-0.008 -0.0012,-0.002 -0.0038,-0.005 -0.0064,-0.008 -0.0013,-0.002 -0.0038,-0.005 -0.0064,-0.009 -0.0013,-0.002 -0.0038,-0.005 -0.0064,-0.009 -0.0013,-0.002 -0.0039,-0.005 -0.0064,-0.009 -0.0014,-0.002 -0.0039,-0.005 -0.0065,-0.009 -0.0014,-0.002 -0.0039,-0.005 -0.0065,-0.009 -0.0014,-0.002 -0.004,-0.005 -0.0065,-0.009 -0.0014,-0.002 -0.004,-0.005 -0.0065,-0.009 -0.0015,-0.002 -0.004,-0.006 -0.0065,-0.009 -0.0015,-0.002 -0.004,-0.006 -0.0066,-0.009 -0.0015,-0.002 -0.004,-0.006 -0.0066,-0.009 -0.0015,-0.002 -0.0041,-0.006 -0.0066,-0.009 -0.0016,-0.002 -0.0041,-0.006 -0.0066,-0.009 -0.0016,-0.002 -0.0041,-0.006 -0.0066,-0.009 -0.0016,-0.002 -0.0041,-0.006 -0.0066,-0.009 -0.0016,-0.002 -0.0041,-0.006 -0.0067,-0.009 -0.0017,-0.002 -0.0042,-0.006 -0.0067,-0.009 -0.0017,-0.002 -0.0042,-0.006 -0.0067,-0.009 -0.0017,-0.002 -0.0042,-0.006 -0.0067,-0.01 -0.0017,-0.002 -0.0042,-0.006 -0.0067,-0.01 -0.0017,-0.002 -0.0042,-0.006 -0.0067,-0.01 -0.0018,-0.003 -0.0043,-0.006 -0.0067,-0.01 -0.0018,-0.003 -0.0043,-0.006 -0.0067,-0.01 -0.0018,-0.003 -0.0043,-0.006 -0.0068,-0.01 -0.0018,-0.003 -0.0043,-0.006 -0.0068,-0.01 -0.0018,-0.003 -0.0043,-0.006 -0.0068,-0.01 -0.0019,-0.003 -0.0043,-0.006 -0.0068,-0.01 -0.0019,-0.003 -0.0043,-0.006 -0.0068,-0.01 -0.0019,-0.003 -0.0044,-0.006 -0.0068,-0.01 -0.0019,-0.003 -0.0044,-0.006 -0.0068,-0.01 -0.0019,-0.003 -0.0044,-0.006 -0.0068,-0.01 -0.002,-0.003 -0.0044,-0.006 -0.0068,-0.01 -0.002,-0.003 -0.0044,-0.006 -0.0068,-0.0101 -0.002,-0.003 -0.0044,-0.007 -0.0069,-0.0101 -0.002,-0.003 -0.0044,-0.007 -0.0069,-0.0101 -0.002,-0.003 -0.0045,-0.007 -0.0069,-0.0102 -0.002,-0.003 -0.0045,-0.007 -0.0069,-0.0102 -0.0021,-0.003 -0.0045,-0.007 -0.0069,-0.0102 -0.0021,-0.003 -0.0045,-0.007 -0.0069,-0.0102 -0.0021,-0.003 -0.0045,-0.007 -0.0069,-0.0102 -0.0021,-0.003 -0.0045,-0.007 -0.0069,-0.0103 -0.0021,-0.003 -0.0045,-0.007 -0.0069,-0.0103 -0.0022,-0.003 -0.0045,-0.007 -0.0069,-0.0103 -0.0022,-0.003 -0.0045,-0.007 -0.0069,-0.0103 -0.0022,-0.003 -0.0046,-0.007 -0.0069,-0.0103 -0.0022,-0.003 -0.0046,-0.007 -0.0069,-0.0104 -0.0022,-0.003 -0.0046,-0.007 -0.0069,-0.0104 -0.0022,-0.003 -0.0046,-0.007 -0.007,-0.0104 -0.0023,-0.003 -0.0046,-0.007 -0.007,-0.0104 -0.0023,-0.003 -0.0046,-0.007 -0.007,-0.0104 -0.0023,-0.003 -0.0046,-0.007 -0.007,-0.0104 -0.0023,-0.003 -0.0046,-0.007 -0.007,-0.0104 -0.0023,-0.003 -0.0047,-0.007 -0.007,-0.0104 -0.0023,-0.003 -0.0047,-0.007 -0.007,-0.0105 -0.0024,-0.004 -0.0047,-0.007 -0.007,-0.0104 -0.0024,-0.004 -0.0047,-0.007 -0.007,-0.0105 -0.0024,-0.004 -0.0047,-0.007 -0.007,-0.0105 -0.0024,-0.004 -0.0047,-0.007 -0.007,-0.0105 -0.0024,-0.004 -0.0047,-0.007 -0.007,-0.0105 -0.0024,-0.004 -0.0047,-0.007 -0.007,-0.0105 -0.0025,-0.004 -0.0047,-0.007 -0.007,-0.0105 -0.0025,-0.004 -0.0048,-0.007 -0.007,-0.0105 -0.0025,-0.004 -0.0048,-0.007 -0.007,-0.0105 -0.0025,-0.004 -0.0048,-0.007 -0.0071,-0.0105 -0.0025,-0.004 -0.0048,-0.007 -0.0071,-0.0105 -0.0026,-0.004 -0.0048,-0.007 -0.0071,-0.0105 -0.0026,-0.004 -0.0048,-0.007 -0.0071,-0.0105 -0.0026,-0.004 -0.0048,-0.007 -0.0071,-0.0105 -0.0026,-0.004 -0.0049,-0.007 -0.0071,-0.0105 -0.0026,-0.004 -0.0049,-0.007 -0.0071,-0.0105 -0.0027,-0.004 -0.0049,-0.007 -0.0071,-0.0105 -0.0027,-0.004 -0.0049,-0.007 -0.0071,-0.0105 -0.0027,-0.004 -0.0049,-0.007 -0.0071,-0.0105 -0.0027,-0.004 -0.0049,-0.007 -0.0071,-0.0105 -0.0028,-0.004 -0.005,-0.007 -0.0072,-0.0105 -0.0028,-0.004 -0.005,-0.007 -0.0072,-0.0105 -0.0028,-0.004 -0.005,-0.007 -0.0072,-0.0104 -0.0028,-0.004 -0.005,-0.007 -0.0072,-0.0105 -0.0029,-0.004 -0.005,-0.007 -0.0072,-0.0104 -0.0029,-0.004 -0.0051,-0.007 -0.0072,-0.0104 -0.0029,-0.004 -0.0051,-0.007 -0.0072,-0.0104 -0.0029,-0.004 -0.0051,-0.007 -0.0073,-0.0104 -0.003,-0.004 -0.0051,-0.007 -0.0073,-0.0104 -0.003,-0.004 -0.0051,-0.007 -0.0073,-0.0104 -0.003,-0.004 -0.0052,-0.007 -0.0073,-0.0104 -0.0031,-0.004 -0.0052,-0.007 -0.0073,-0.0104 -0.0031,-0.004 -0.0052,-0.007 -0.0073,-0.0104 -0.0031,-0.004 -0.0053,-0.007 -0.0074,-0.0104 -0.0032,-0.004 -0.0053,-0.007 -0.0074,-0.0104 -0.0032,-0.004 -0.0053,-0.007 -0.0074,-0.0103 -0.0033,-0.005 -0.0054,-0.007 -0.0074,-0.0103 -0.0033,-0.005 -0.0054,-0.007 -0.0075,-0.0103 -0.0033,-0.005 -0.0054,-0.007 -0.0075,-0.0103 -0.0034,-0.005 -0.0055,-0.007 -0.0075,-0.0103 -0.0034,-0.005 -0.0055,-0.007 -0.0076,-0.0103 -0.0035,-0.005 -0.0055,-0.008 -0.0076,-0.0103 -0.0035,-0.005 -0.0056,-0.008 -0.0076,-0.0103 -0.0036,-0.005 -0.0056,-0.008 -0.0077,-0.0103 -0.0036,-0.005 -0.0057,-0.008 -0.0077,-0.0103 -0.0037,-0.005 -0.0057,-0.008 -0.0077,-0.0103 -0.0037,-0.005 -0.0058,-0.008 -0.0078,-0.0103 -0.0038,-0.005 -0.0058,-0.008 -0.0078,-0.0103 -0.0039,-0.005 -0.0059,-0.008 -0.0079,-0.0103 -0.0039,-0.005 -0.0059,-0.008 -0.0079,-0.0103 -0.004,-0.005 -0.006,-0.008 -0.008,-0.0103 -0.0041,-0.005 -0.0061,-0.008 -0.008,-0.0103 -0.0041,-0.005 -0.0061,-0.008 -0.0081,-0.0103 -0.0042,-0.005 -0.0062,-0.008 -0.0082,-0.0103 -0.0043,-0.005 -0.0063,-0.008 -0.0082,-0.0103 -0.0044,-0.005 -0.0063,-0.008 -0.0083,-0.0103 -0.0045,-0.006 -0.0064,-0.008 -0.0084,-0.0103 -0.0046,-0.006 -0.0065,-0.008 -0.0084,-0.0103 -0.0047,-0.006 -0.0066,-0.008 -0.0085,-0.0103 -0.0048,-0.006 -0.0067,-0.008 -0.0086,-0.0103 -0.0049,-0.006 -0.0068,-0.008 -0.0087,-0.0103 -0.005,-0.006 -0.0069,-0.008 -0.0088,-0.0103 -0.0051,-0.006 -0.007,-0.008 -0.0089,-0.0104 -0.0052,-0.006 -0.0071,-0.008 -0.009,-0.0104 -0.0054,-0.006 -0.0073,-0.008 -0.0091,-0.0104 -0.0055,-0.006 -0.0074,-0.008 -0.0093,-0.0104 -0.0057,-0.006 -0.0075,-0.008 -0.0094,-0.0104 -0.0058,-0.006 -0.0077,-0.008 -0.0095,-0.0105 -0.006,-0.007 -0.0078,-0.009 -0.0097,-0.0105 -0.0062,-0.007 -0.008,-0.009 -0.0098,-0.0105 -0.0063,-0.007 -0.0082,-0.009 -0.01,-0.0106 -0.0065,-0.007 -0.0083,-0.009 -0.01016,-0.0106 -0.0067,-0.007 -0.0085,-0.009 -0.01035,-0.0107 -0.0069,-0.007 -0.0087,-0.009 -0.01054,-0.0107 -0.0072,-0.007 -0.009,-0.009 -0.01075,-0.0108 -0.0074,-0.007 -0.0092,-0.009 -0.01097,-0.0108 -0.0077,-0.007 -0.0094,-0.009 -0.0112,-0.0109 -0.0079,-0.008 -0.0097,-0.009 -0.01145,-0.0109 -0.0082,-0.008 -0.01,-0.009 -0.01171,-0.011 -0.0085,-0.008 -0.01025,-0.009 -0.01199,-0.011 -0.0088,-0.008 -0.01055,-0.01 -0.01229,-0.0111 -0.0091,-0.008 -0.01088,-0.01 -0.01261,-0.0111 -0.0026,-0.002 -0.0052,-0.005 -0.0078,-0.007 -0.0017,-0.001 -0.0035,-0.003 -0.0052,-0.004 -0.0027,-0.002 -0.0054,-0.005 -0.0082,-0.007 -0.0017,-0.001 -0.0034,-0.003 -0.0051,-0.004 -0.0028,-0.002 -0.0057,-0.005 -0.0086,-0.007 -0.0017,-0.001 -0.0034,-0.003 -0.0051,-0.004 -0.003,-0.002 -0.006,-0.005 -0.009,-0.007 -0.0017,-0.001 -0.0034,-0.003 -0.0051,-0.004 -0.0031,-0.003 -0.0063,-0.005 -0.0095,-0.007 -0.0017,-0.001 -0.0034,-0.003 -0.0051,-0.004 -0.0033,-0.003 -0.0066,-0.005 -0.0099,-0.008 -0.0017,-0.001 -0.0034,-0.003 -0.005,-0.004 -0.0035,-0.003 -0.007,-0.005 -0.01045,-0.008 -0.0017,-0.001 -0.0033,-0.002 -0.005,-0.004 -0.0036,-0.003 -0.0073,-0.005 -0.011,-0.008 -0.0017,-0.001 -0.0033,-0.002 -0.005,-0.004 -0.0038,-0.003 -0.0077,-0.006 -0.01158,-0.008 -0.0017,-0.001 -0.0033,-0.002 -0.005,-0.003 -0.004,-0.003 -0.0081,-0.006 -0.01219,-0.008 -0.0016,-0.001 -0.0033,-0.002 -0.0049,-0.003 -0.0043,-0.003 -0.0085,-0.006 -0.01283,-0.009 -0.0016,-0.001 -0.0033,-0.002 -0.0049,-0.003 -0.0045,-0.003 -0.009,-0.006 -0.01352,-0.009 -0.0016,-0.001 -0.0033,-0.002 -0.0049,-0.003 -0.0047,-0.003 -0.0095,-0.006 -0.01424,-0.009 -0.0016,-9.8e-4 -0.0032,-0.002 -0.0048,-0.003 -0.005,-0.003 -0.01,-0.006 -0.01501,-0.009 -0.0016,-9.5e-4 -0.0032,-0.002 -0.0048,-0.003 -0.0052,-0.003 -0.01052,-0.006 -0.01582,-0.009 -0.0016,-9e-4 -0.0032,-0.002 -0.0048,-0.003 -0.0055,-0.003 -0.01108,-0.006 -0.01667,-0.009 -0.0016,-8.6e-4 -0.0032,-0.002 -0.0048,-0.003 -0.0058,-0.003 -0.01168,-0.006 -0.01756,-0.009 -0.0016,-8.1e-4 -0.0032,-0.002 -0.0047,-0.002 -0.0061,-0.003 -0.0123,-0.006 -0.0185,-0.009 -0.0016,-7.7e-4 -0.0031,-0.002 -0.0047,-0.002 -0.0065,-0.003 -0.01296,-0.006 -0.01949,-0.009 -0.0016,-7.1e-4 -0.0031,-0.001 -0.0047,-0.002 -0.0068,-0.003 -0.01364,-0.006 -0.02051,-0.009 -0.0016,-6.7e-4 -0.0031,-0.001 -0.0046,-0.002 -0.0072,-0.003 -0.01435,-0.006 -0.02158,-0.009 -0.0015,-6.2e-4 -0.0031,-0.001 -0.0046,-0.002 -0.0075,-0.003 -0.01509,-0.006 -0.02269,-0.009 -0.0015,-5.7e-4 -0.0031,-0.001 -0.0046,-0.002 -0.0079,-0.003 -0.01585,-0.006 -0.02384,-0.009 -0.0015,-5.3e-4 -0.003,-0.001 -0.0046,-0.002 -0.0083,-0.003 -0.01664,-0.006 -0.02501,-0.008 -0.0015,-4.9e-4 -0.003,-9.6e-4 -0.0045,-0.001 -0.0087,-0.003 -0.01744,-0.005 -0.02621,-0.008 -0.0015,-4.4e-4 -0.003,-8.6e-4 -0.0045,-0.001 -0.0091,-0.003 -0.01825,-0.005 -0.02742,-0.007 -0.0015,-3.8e-4 -0.003,-7.6e-4 -0.0045,-0.001 -0.0095,-0.002 -0.01906,-0.005 -0.02865,-0.007 -0.0015,-3.4e-4 -0.003,-6.7e-4 -0.0044,-0.001 -0.0099,-0.002 -0.01988,-0.004 -0.02986,-0.006 -0.0015,-2.9e-4 -0.0029,-5.7e-4 -0.0044,-8.5e-4 -0.01032,-0.002 -0.02068,-0.004 -0.03106,-0.005 -0.0015,-2.4e-4 -0.0029,-4.7e-4 -0.0044,-7e-4 -0.01072,-0.002 -0.02146,-0.003 -0.03223,-0.005 -0.0015,-1.8e-4 -0.0029,-3.6e-4 -0.0043,-5.4e-4 -0.01109,-0.001 -0.02221,-0.003 -0.03335,-0.004 -0.0015,-1.3e-4 -0.0029,-2.7e-4 -0.0043,-4e-4 -0.01145,-0.001 -0.02292,-0.002 -0.0344,-0.003 -0.0014,-8e-5 -0.0029,-1.6e-4 -0.0043,-2.4e-4 -0.01178,-6.7e-4 -0.02357,-0.001 -0.03536,-0.001 -0.0014,-3e-5 -0.0028,-6e-5 -0.0042,-9e-5 -0.01207,-2.6e-4 -0.02415,-3e-4 -0.03622,-1.1e-4 -0.0014,2e-5 -0.0028,4e-5 -0.0042,6e-5 -0.01233,1.9e-4 -0.02465,6.1e-4 -0.03696,0.001 -0.0014,7e-5 -0.0028,1.4e-4 -0.0042,2.2e-4 -0.01253,6.6e-4 -0.02505,0.002 -0.03755,0.003 -0.0014,1.2e-4 -0.0028,2.5e-4 -0.0042,3.7e-4 -0.01269,0.001 -0.02536,0.003 -0.03799,0.004 -0.0014,1.8e-4 -0.0028,3.6e-4 -0.0041,5.4e-4 -0.01279,0.002 -0.02554,0.004 -0.03826,0.006 -0.0014,2.4e-4 -0.0028,4.7e-4 -0.0041,6.9e-4 -0.01283,0.002 -0.02561,0.005 -0.03835,0.007 -0.0014,2.9e-4 -0.0027,5.7e-4 -0.0041,8.5e-4 -0.01281,0.003 -0.02556,0.006 -0.03825,0.009 -0.0014,3.5e-4 -0.0027,6.9e-4 -0.004,0.001 -0.01407,0.004 -0.02804,0.007 -0.04196,0.0115 -0.08035,0.0237 0,0 0,0 a 0.99218747,0.99218747 90 0 0 0.560948,1.90344 z" + id="path-1-4" + inkscape:path-effect="#path-effect922;#path-effect923" + inkscape:original-d="m 74.017187,172.64062 c 0.339885,-0.10753 1.02753,1.5721 1.719792,1.91823" + style="display:inline;fill:#642a23;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + clip-path="url(#clipPath1275)" /><path + style="display:inline;fill:#642a23;fill-opacity:1;stroke:#8494e5;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 338.875,652.11873 c -4.78873,-0.56154 -6.41302,-2.01841 -4.41234,-3.95754 0.46071,-0.44654 2.08124,-1.46096 3.60116,-2.25426 l 2.7635,-1.44237 1.08258,1.48662 c 1.13648,1.56063 2.579,2.86175 3.8401,3.46367 0.5681,0.27116 0.73344,0.50356 0.68173,0.95825 -0.19964,1.75546 -2.64861,2.32118 -7.55673,1.74563 z" + id="path930" + clip-path="url(#clipPath1273)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:#642a23;fill-opacity:1;stroke:#8494e5;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 335.80393,661.62101 c -4.36072,-1.47674 -10.64595,-4.62634 -11.65256,-5.83924 -0.23558,-0.28385 -0.1271,-0.37913 0.58335,-0.51241 2.0501,-0.3846 1.26487,-1.23057 -3.04722,-3.28295 -1.82188,-0.86714 -3.3125,-1.6574 -3.3125,-1.75614 0,-0.32809 4.08121,0.10651 7.25,0.77203 3.28095,0.68908 5.34453,1.46723 6.22449,2.34719 0.61802,0.61802 0.6904,1.82744 0.13686,2.28684 -0.68181,0.56585 -0.92685,1.23352 -0.59809,1.62965 0.61281,0.73839 2.81944,0.39742 11.42884,-1.76598 8.8803,-2.23148 10.83558,-2.51137 12.29002,-1.75925 1.11354,0.57584 1.41894,2.1938 0.56069,2.9705 -0.56359,0.51005 -1.10428,0.51566 -2.51017,0.0261 -1.87816,-0.65407 -4.1214,0.21471 -7.81244,3.02569 -3.81396,2.90459 -5.48813,3.23061 -9.54127,1.85802 z" + id="path931" + clip-path="url(#clipPath1272)" + transform="scale(0.26458333)" /></g><g + id="g83" + inkscape:label="towers" + style="fill:url(#linearGradient96);fill-opacity:1;stroke:#000405;stroke-opacity:1" + transform="translate(-6.2125015,0.73088253)"><path + style="display:inline;fill:url(#linearGradient1);fill-opacity:1;stroke:#000405;stroke-width:0.0877061;stroke-dasharray:none;stroke-opacity:1" + d="m 54.123967,136.4609 c -1.079856,-0.13038 -1.570619,-0.48306 -1.642707,-1.18063 -0.0742,-0.71797 0.47904,-1.35527 1.320569,-1.52129 0.681288,-0.13434 1.649731,0.17588 2.507415,0.8033 0.553524,0.40491 1.166186,1.15415 1.216902,1.4882 0.02922,0.19244 -0.09598,0.30104 -0.436319,0.37853 -0.342911,0.078 -2.399983,0.1002 -2.96586,0.0318 z" + id="path294" + clip-path="url(#clipPath1322)" /><path + style="display:inline;fill:url(#linearGradient2);fill-opacity:1;stroke:#000405;stroke-width:0.175409;stroke-dasharray:none;stroke-opacity:1" + d="m 62.655884,103.86133 c -0.619979,-0.18299 -1.077302,-0.73339 -1.077302,-1.29657 0,-0.74323 0.729124,-1.36128 1.605855,-1.36128 0.882828,0 1.628147,0.61784 1.624081,1.3463 -0.0053,0.94359 -1.1129,1.61843 -2.152634,1.31155 z" + id="path263" + clip-path="url(#clipPath1353)" /><path + style="display:inline;fill:url(#linearGradient3);fill-opacity:1;stroke:#000405;stroke-width:0.350823;stroke-dasharray:none;stroke-opacity:1" + d="m 75.228731,103.63988 c -0.823982,-0.15279 -1.261174,-0.57508 -1.261174,-1.21821 0,-0.67225 -0.273103,-0.66619 -1.175529,0.026 -1.287306,0.98754 -2.949607,1.37981 -4.517033,1.06593 -1.506317,-0.30163 -2.417597,-1.24717 -1.70898,-1.77326 0.568771,-0.42224 2.555834,-0.53064 8.837944,-0.48208 5.406974,0.0419 5.888034,0.0647 6.552634,0.3117 1.2786,0.47522 1.27575,1.45653 -0.005,1.92908 -0.61808,0.22797 -5.680387,0.33396 -6.722277,0.14078 z" + id="path259" + clip-path="url(#clipPath1357)" /><path + style="display:inline;fill:url(#linearGradient4);fill-opacity:1;stroke:#000405;stroke-width:0.350823;stroke-dasharray:none;stroke-opacity:1" + d="m 72.125463,167.30153 c -1.006299,-0.27794 -1.211156,-0.44693 -1.089448,-0.8987 0.127756,-0.47429 -0.144295,-0.72519 -1.620343,-1.49433 -0.577858,-0.30111 -0.9682,-0.56789 -0.867428,-0.59282 0.255544,-0.0632 2.730973,0.57752 4.329141,1.1206 1.522485,0.51736 2.526574,1.04144 2.526574,1.31873 0,0.53456 -2.071568,0.87988 -3.278496,0.54652 z" + id="path275" + clip-path="url(#clipPath1341)" /><path + style="display:inline;fill:url(#linearGradient5);fill-opacity:1;stroke:#000405;stroke-width:0.175409;stroke-dasharray:none;stroke-opacity:1" + d="m 102.06564,103.07937 c -0.17209,-0.068 -0.43335,-0.24978 -0.58068,-0.40409 -0.2271,-0.23784 -0.27203,-0.35346 -0.29522,-0.75954 -0.0319,-0.55568 0.14959,-0.85958 0.71348,-1.19674 0.9678,-0.57856 2.3815,8.4e-4 2.48049,1.01697 0.10118,1.04107 -1.18937,1.78913 -2.31807,1.3434 z" + id="path262" + clip-path="url(#clipPath1354)" /><path + style="display:inline;fill:url(#linearGradient6);fill-opacity:1;stroke:#000405;stroke-width:0.350823;stroke-dasharray:none;stroke-opacity:1" + d="m 89.319043,103.15769 c -0.29624,-0.0312 -0.88785,-0.0907 -1.31468,-0.132 -1.05094,-0.10181 -1.46833,-0.43715 -1.46833,-1.17948 0,-1.17994 0.61853,-1.30024 6.62728,-1.28914 6.04162,0.0103 6.65936,0.13126 6.65936,1.29507 0,0.64068 -0.40758,1.03107 -1.22627,1.17458 -0.57265,0.10035 -8.50589,0.21243 -9.27736,0.13097 z" + id="path260" + clip-path="url(#clipPath1356)" /><path + style="display:inline;fill:url(#linearGradient7);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" + d="m 106.04798,131.87501 c -0.16873,-0.008 -0.31768,-0.0219 -0.33094,-0.0318 -0.0114,-0.008 0.0178,-0.0504 0.0688,-0.0903 0.50005,-0.38894 3.53155,-1.29019 5.69505,-1.69311 4.20092,-0.78237 8.22391,-0.6535 9.06272,0.29029 0.20149,0.2267 0.198,0.43614 -0.0101,0.59116 -0.50898,0.37964 -2.09194,0.57085 -6.14865,0.74275 -0.61099,0.026 -1.47511,0.0625 -1.92026,0.0818 -2.48177,0.10636 -5.38061,0.15564 -6.41681,0.10914 z" + id="path298" + clip-path="url(#clipPath1318)" /><path + style="display:inline;fill:url(#linearGradient8);fill-opacity:1;stroke:#000405;stroke-width:0.0877061;stroke-dasharray:none;stroke-opacity:1" + d="m 47.373172,136.79663 c -0.452308,-0.0949 -0.580646,-0.33387 -0.357083,-0.66502 0.245089,-0.36308 0.68911,-0.71122 1.791979,-1.40507 1.573974,-0.99026 2.083402,-1.13957 2.338922,-0.68555 0.03558,0.0631 0.08688,0.26595 0.113998,0.45052 0.111217,0.75687 -0.05135,1.13234 -0.693203,1.60109 -0.642152,0.46895 -1.410375,0.69247 -2.522819,0.73404 -0.311269,0.0117 -0.517216,0.003 -0.671805,-0.03 z" + id="path293" + clip-path="url(#clipPath1323)" /><path + style="display:inline;fill:url(#linearGradient9);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" + d="m 127.30333,134.5664 c -0.44301,-0.0296 -1.25878,-0.11648 -1.76159,-0.18753 -1.2529,-0.17704 -1.84811,-0.24951 -2.88713,-0.35154 -1.95372,-0.19185 -3.87138,-0.30192 -5.92077,-0.33989 -1.30219,-0.0242 -1.63289,-0.0408 -2.33667,-0.11852 -1.00233,-0.11047 -1.72466,-0.29181 -1.92842,-0.48411 -0.0865,-0.0816 -0.0851,-0.12159 0.0101,-0.22409 0.66083,-0.72197 6.69162,-0.70821 11.52643,0.0262 2.09267,0.31791 3.43069,0.61327 4.47355,0.98751 0.64585,0.23174 0.9254,0.40282 0.84358,0.5163 -0.0452,0.0625 -0.26642,0.13391 -0.5129,0.16526 -0.18963,0.0243 -1.19459,0.0311 -1.50505,0.0103 z" + id="path299" + clip-path="url(#clipPath1317)" /><path + style="display:inline;fill:url(#linearGradient10);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" + d="m 103.97432,136.81351 c -0.21092,-0.0727 -0.27612,-0.18585 -0.27487,-0.47668 0.001,-0.25145 0.10244,-0.74138 0.19438,-0.93916 0.18747,-0.40349 0.59828,-0.81704 1.25034,-1.25888 1.21668,-0.82444 3.0918,-1.55222 4.4712,-1.73533 0.33675,-0.0448 0.86333,-0.04 1.07905,0.008 0.16418,0.0378 0.37255,0.16199 0.44376,0.2644 0.0849,0.1219 0.11895,0.30748 0.0722,0.3896 -0.12695,0.22193 -0.88421,0.5652 -1.90382,0.86297 -0.59022,0.17236 -1.05254,0.27903 -1.76158,0.40646 -0.32297,0.058 -0.67287,0.12233 -0.77762,0.14269 -0.41442,0.081 -0.57431,0.17313 -0.37296,0.21493 0.048,0.008 0.63718,0.0174 1.30931,0.0167 1.16349,-8.4e-4 1.69419,-0.0155 3.50727,-0.0939 4.59081,-0.19835 7.67164,-0.19422 9.23745,0.0117 0.86071,0.11354 1.34161,0.27719 1.48809,0.50638 0.17682,0.27667 -0.40071,0.4634 -1.74854,0.56532 -0.89166,0.0674 -1.52499,0.0853 -3.81071,0.10696 -3.46399,0.0328 -5.26097,0.10782 -7.35638,0.30688 -1.24252,0.11808 -1.9772,0.22603 -2.74553,0.4035 -0.80472,0.18592 -1.51482,0.30632 -1.87264,0.31749 -0.24323,0.008 -0.359,0.003 -0.42851,-0.0224 z" + id="path297" + clip-path="url(#clipPath1319)" /><path + style="display:inline;fill:url(#linearGradient11);fill-opacity:1;stroke:#000405;stroke-width:0.248069;stroke-dasharray:none;stroke-opacity:1" + d="m 62.207634,144.7876 c -0.16012,-0.0832 -0.458504,-0.32292 -0.663057,-0.53255 -0.566503,-0.58056 -0.484563,-1.081 0.225295,-1.37591 0.11448,-0.0475 0.171209,-0.14771 0.129454,-0.22851 -0.130322,-0.25216 -1.389238,-0.51968 -3.853276,-0.81888 -3.695947,-0.44877 -5.608794,-0.8551 -5.473929,-1.16283 0.304238,-0.69409 6.914315,-0.68074 9.0429,0.0182 0.797005,0.26172 1.795701,0.83074 2.075119,1.18231 0.236656,0.29779 0.240979,0.35643 0.07421,1.00614 -0.307533,1.19821 -0.776293,2.06335 -1.11798,2.06335 -0.08117,0 -0.278604,-0.0681 -0.438732,-0.1514 z" + id="path289" + clip-path="url(#clipPath1327)" /><path + style="display:inline;fill:url(#linearGradient12);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" + d="m 121.68529,129.09165 c -1.04355,-0.0518 -2.54312,-0.16641 -4.3325,-0.33078 -2.10279,-0.19318 -3.32856,-0.36398 -3.46074,-0.48222 -0.0306,-0.0274 -0.0207,-0.0384 0.0531,-0.0599 0.14623,-0.0423 0.59404,-0.0887 1.12229,-0.11631 0.77444,-0.0406 3.93155,-0.0576 4.74515,-0.0254 2.42662,0.0955 3.97384,0.32289 4.39055,0.64535 0.19955,0.15437 0.0971,0.27114 -0.29606,0.33688 -0.26816,0.0448 -1.58579,0.064 -2.22181,0.0323 z" + id="path301" + clip-path="url(#clipPath1315)" /><path + style="display:inline;fill:url(#linearGradient13);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" + d="m 130.49324,137.2651 c -3.48586,-0.43773 -6.49649,-1.0932 -6.7508,-1.46975 -0.0465,-0.0688 0.0102,-0.22423 0.11425,-0.31893 0.10575,-0.0952 0.34969,-0.19225 0.62173,-0.24732 0.29246,-0.0592 1.1415,-0.0713 1.63463,-0.0237 1.08736,0.10562 2.24249,0.35863 3.27758,0.7178 l 0.32496,0.11281 0.25775,0.26886 c 0.2559,0.26697 0.5082,0.55075 0.74492,0.83789 l 0.1234,0.14969 -0.0868,-0.003 c -0.0477,-0.003 -0.16557,-0.0132 -0.26154,-0.0248 z" + id="path300" + clip-path="url(#clipPath1316)" /><path + style="display:inline;fill:url(#linearGradient14);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" + d="m 111.50101,127.20593 c -0.69704,-0.0459 -1.17239,-0.18419 -1.3095,-0.38105 -0.11362,-0.16318 0.0265,-0.47848 0.28853,-0.64793 0.22329,-0.14459 0.47106,-0.21568 0.84288,-0.24198 0.38552,-0.0274 0.57944,-0.0866 0.69235,-0.21202 0.0996,-0.11061 0.0842,-0.28623 -0.0372,-0.42221 -0.0467,-0.0524 -0.0849,-0.10972 -0.0849,-0.12745 0,-0.0539 0.10168,-0.10387 0.30154,-0.14811 0.55167,-0.12204 2.38308,0.0335 3.21218,0.27287 0.56488,0.16309 0.95814,0.37737 1.10693,0.60315 0.0971,0.14728 0.0922,0.24265 -0.0197,0.37638 -0.45724,0.54925 -3.14932,1.04965 -4.99398,0.92828 z" + id="path302" + clip-path="url(#clipPath1314)" /><path + style="display:inline;fill:url(#linearGradient15);fill-opacity:1;stroke:#000405;stroke-width:0.0620175;stroke-dasharray:none;stroke-opacity:1" + d="m 115.39243,123.06003 c -0.97704,-0.0336 -1.73377,-0.12862 -2.16309,-0.27169 -0.34078,-0.11354 -0.4093,-0.2178 -0.25874,-0.39365 0.35833,-0.41862 1.97752,-0.70149 4.01717,-0.70181 0.99284,-1.8e-4 1.61341,0.046 2.25281,0.16772 0.70222,0.1336 1.1207,0.36505 1.02578,0.56724 -0.18727,0.39892 -2.59104,0.71069 -4.87393,0.63219 z" + id="path303" + clip-path="url(#clipPath1313)" /><path + style="display:inline;fill:url(#linearGradient16);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 151.93788,550.22433 c -2.38766,-0.7189 -2.90401,-1.60603 -1.97756,-3.3976 1.15847,-2.24023 5.06252,-3.89414 11.96437,-5.06857 7.36888,-1.25391 9.74627,-1.29591 10.17459,-0.17975 1.56915,4.08915 -13.63735,10.61023 -20.1614,8.64592 z" + id="path900" + clip-path="url(#clipPath1295)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient17);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 180.5,546.78218 c -5.68147,-0.63858 -6.47108,-1.41581 -3.7578,-3.69889 3.74812,-3.15384 12.60124,-4.98252 24.0078,-4.95901 11.58768,0.0239 16.73523,1.30683 23.80738,5.93362 l 2.94262,1.92514 -3.75,0.3242 c -6.16814,0.53327 -39.47678,0.89903 -43.25,0.47494 z" + id="path899" + clip-path="url(#clipPath1296)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient18);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 193.25,501.68457 c -3.61377,-1.08355 -3.88128,-2.28991 -0.97468,-4.39543 2.66863,-1.93315 6.14716,-2.6684 9.58071,-2.02505 2.85318,0.5346 4.50402,1.52331 6.08977,3.64725 0.95709,1.28192 0.96402,1.39314 0.1383,2.21911 -0.71767,0.71789 -1.93449,0.8878 -6.97669,0.97419 -3.35908,0.0576 -6.89491,-0.13148 -7.85741,-0.42007 z" + id="path894" + clip-path="url(#clipPath1301)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient19);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 177.97053,516.20232 c -0.18616,-0.30122 -0.0528,-1.08152 0.29642,-1.734 0.69794,-1.30411 8.59366,-6.70088 11.67889,-7.98258 1.78788,-0.74274 2.01111,-0.74308 2.75,-0.004 0.5047,0.50471 0.80416,1.65667 0.80416,3.09348 0,2.04315 -0.2116,2.47224 -1.96777,3.99033 -1.08227,0.93555 -3.09186,2.03481 -4.46575,2.44282 -2.91783,0.8665 -8.60538,0.9879 -9.09595,0.19414 z" + id="path897" + clip-path="url(#clipPath1298)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient20);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 202.75,515.18941 c -4.144,-1.23351 -5.37238,-4.9375 -2.53801,-7.653 3.69442,-3.53947 11.7474,-1.07631 15.88091,4.85749 1.03343,1.48352 1.18798,2.02523 0.71327,2.5 -0.78287,0.78296 -11.65094,1.01145 -14.05617,0.29551 z" + id="path895" + clip-path="url(#clipPath1300)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient21);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 168.75,528.45218 c 0,-0.16379 0.4471,-0.9257 0.99355,-1.69313 1.40385,-1.97152 4.51962,-3.06685 9.91864,-3.48683 4.12573,-0.32093 4.79994,-0.51122 5.85935,-1.65374 1.78109,-1.92082 5.5326,-2.50912 14.4314,-2.26307 5.21054,0.14407 8.08737,0.44169 9.2923,0.96132 l 1.74523,0.75265 -1.24523,0.8055 c -1.49311,0.96585 -7.78513,2.58465 -13.08458,3.36639 -3.43681,0.50698 -6.66172,0.57496 -16.66066,0.35125 -2.399,-0.0537 -3.71795,0.25587 -6.58381,1.54518 -3.51968,1.58345 -4.66619,1.90643 -4.66619,1.31448 z" + id="path896" + clip-path="url(#clipPath1299)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient22);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 233.8357,546.2546 c -3.08453,-2.23442 -3.45071,-5.01038 -0.79417,-6.02039 3.51547,-1.33658 -1.76614,-2.86262 -15.54153,-4.4905 -11.76692,-1.39053 -18.75,-2.87466 -18.75,-3.98498 0,-2.41606 23.93084,-2.60189 33.00322,-0.25629 3.31387,0.85678 8.21976,3.43301 9.19857,4.83045 0.61897,0.88372 0.58499,1.45663 -0.26923,4.5392 -1.07424,3.87651 -1.53424,4.90816 -2.715,6.08892 -1.11126,1.11126 -1.78062,0.99682 -4.13186,-0.70641 z" + id="path898" + clip-path="url(#clipPath1297)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient23);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 161.84442,538.85133 c -2.77413,-0.42947 -1.54539,-2.84683 2.48626,-4.89134 5.83117,-2.95707 18.25236,-4.8826 24.65387,-3.82184 1.89063,0.31329 3.76229,0.8944 4.15924,1.29136 0.62899,0.62898 0.5504,0.834 -0.61152,1.59532 -2.05437,1.34608 -7.26735,2.61783 -15.25482,3.72157 -4.0026,0.55308 -8.85245,1.29321 -10.77745,1.64472 -1.925,0.35151 -4.02001,0.5586 -4.65558,0.46021 z" + id="path901" + clip-path="url(#clipPath1294)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient24);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 236.97704,392.4105 c -1.93113,-0.38381 -3.87186,-2.53458 -3.99899,-4.43177 -0.0943,-1.40723 0.21758,-2.13004 1.5106,-3.50104 1.35129,-1.43278 1.98482,-1.72769 3.71145,-1.72769 2.60858,0 5.29831,1.09565 6.02553,2.45447 0.75915,1.41848 0.4913,4.42046 -0.4722,5.29242 -0.97315,0.88069 -4.24139,2.27753 -5.11237,2.18502 -0.35258,-0.0375 -1.10139,-0.15958 -1.66402,-0.27141 z" + id="path903" + clip-path="url(#clipPath1292)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient25);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 392.42937,515.99623 c -0.54069,-1.40901 0.36503,-4.26201 1.91258,-6.02457 3.72705,-4.24487 15.29084,-9.20885 21.47183,-9.21719 2.44421,-0.003 3.48959,0.20737 3.98378,0.80284 0.57425,0.69193 0.50486,0.94103 -0.48555,1.74302 -1.43531,1.16224 -7.40787,3.07308 -13.18701,4.21901 -2.40625,0.47713 -4.375,1.06171 -4.375,1.29908 0,0.53807 10.10049,0.52259 28.06509,-0.043 15.36454,-0.48375 26.24372,-0.0365 29.20447,1.20056 4.67645,1.95394 -0.20486,2.61549 -24.01956,3.2553 -19.11202,0.51346 -27.33434,1.16202 -34.65769,2.73374 -4.71115,1.0111 -7.53266,1.02224 -7.91294,0.0312 z" + id="path902" + clip-path="url(#clipPath1293)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient26);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 385.97904,389.32321 c -2.16304,-0.99662 -3.72904,-2.90643 -3.72904,-4.54773 0,-1.823 2.57996,-4.12027 5.04791,-4.49481 5.88992,-0.89387 9.5541,4.45991 5.48433,8.01322 -0.91726,0.80086 -1.91851,1.45918 -2.225,1.46294 -0.30648,0.004 -1.00724,0.11723 -1.55724,0.25218 -0.55,0.13494 -1.90943,-0.17367 -3.02096,-0.6858 z" + id="path904" + clip-path="url(#clipPath1291)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient27);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 419.59958,480.29838 c -1.04524,-0.21958 -2.16518,-0.66398 -2.48877,-0.98757 -0.94115,-0.94116 0.22788,-2.25402 2.43817,-2.73815 3.64648,-0.79871 4.33429,-1.23531 4.07586,-2.58723 -0.23343,-1.2211 -0.19453,-1.23543 3.35266,-1.23543 6.46508,0 13.2725,1.92199 13.2725,3.74732 0,0.39985 -0.61875,1.04286 -1.375,1.42891 -3.5347,1.80439 -15.16486,3.23567 -19.27542,2.37215 z" + id="path906" + clip-path="url(#clipPath1289)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient28);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 401.29496,497.55249 c 3.433,-1.98977 18.14422,-5.67007 27.45504,-6.86842 6.48007,-0.83403 18.57717,-0.8343 21.8692,-5e-4 2.76266,0.69972 5.1308,2.21014 5.1308,3.27246 0,2.22217 -13.03227,3.49837 -41.5,4.06393 -12.82734,0.25483 -14.12072,0.20816 -12.95504,-0.46747 z" + id="path905" + clip-path="url(#clipPath1290)" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient29);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 429.375,464.16703 c -3.0054,-0.67304 -2.72674,-1.70383 0.75,-2.77428 4.23942,-1.30528 19.48827,-1.29515 22.375,0.0149 1.82763,0.82938 1.92324,0.96439 1.10938,1.56654 -2.12171,1.56977 -18.8701,2.39417 -24.23438,1.19288 z" + id="path907" + clip-path="url(#clipPath1288)" + transform="scale(0.26458333)" /><path + style="fill:url(#linearGradient30);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 455.5,487.41384 c -9.3724,-0.78753 -19.43813,-1.76964 -21.5,-2.09775 l -2.5,-0.39782 2.44602,-0.40156 c 3.25879,-0.53499 26.20515,0.0106 30.25518,0.71944 7.13013,1.24782 6.35846,2.53578 -1.4512,2.42214 -2.8875,-0.042 -6.15,-0.15202 -7.25,-0.24445 z" + id="path908" + transform="scale(0.26458333)" + clip-path="url(#clipPath1287)" + inkscape:label="t4" /><path + style="fill:url(#linearGradient31);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 471,507.23917 c -6.18268,-0.84316 -13.92009,-1.41828 -33,-2.45289 -8.11931,-0.44027 -12.25743,-1.2018 -12.42345,-2.28628 -0.19249,-1.25731 5.02462,-1.89339 15.67345,-1.91093 10.55265,-0.0174 17.04342,0.44428 27.5,1.95595 9.32431,1.34799 19.5,4.08285 19.5,5.2409 0,0.74299 -10.15216,0.4212 -17.25,-0.54675 z" + id="path909" + transform="scale(0.26458333)" + clip-path="url(#clipPath1286)" + inkscape:label="t2" /><path + style="fill:url(#linearGradient32);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 485.70952,517.48748 c -7.00135,-1.12651 -13.93167,-2.68134 -16.78226,-3.76514 -1.27523,-0.48484 -1.30268,-0.56103 -0.49279,-1.36789 1.41878,-1.41346 11.2927,-1.09339 16.98849,0.55069 2.43263,0.70218 4.87566,1.68577 5.42896,2.18577 1.32805,1.20011 3.07628,3.67113 2.55713,3.61435 -0.22498,-0.0246 -3.68977,-0.57261 -7.69953,-1.21778 z" + id="path910" + transform="scale(0.26458333)" + clip-path="url(#clipPath1285)" + inkscape:label="t3" /><path + style="display:inline;fill:url(#linearGradient33);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 284.68584,391.74134 c -4.02532,-0.68018 -4.62873,-1.27647 -5.04586,-4.98623 -0.21437,-1.90646 -1.36341,-1.73327 -4.60381,0.69388 -1.63011,1.221 -4.21761,2.6221 -5.75,3.11356 -3.37973,1.08391 -9.84278,1.2117 -13.11863,0.25938 -2.86903,-0.83406 -5.37741,-2.90288 -5.5433,-4.57193 -0.10054,-1.0116 0.25721,-1.44073 1.87576,-2.25 1.90194,-0.95097 3.17569,-1.00785 25.97915,-1.16 C 310.00284,382.62966 313,383.03425 313,387.5 c 0,2.60547 -1.50004,3.62191 -6.25,4.23506 -4.39386,0.56717 -18.72065,0.57126 -22.06416,0.006 z" + id="path915" + clip-path="url(#clipPath1280)" + inkscape:label="tower-acc1" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient34);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 337,389.72757 c -8.34708,-0.50638 -10.25,-1.37037 -10.25,-4.65381 0,-3.35409 1.69024,-4.21377 9.65093,-4.9086 7.50572,-0.65511 34.18937,-0.21472 37.19492,0.61388 2.65812,0.73281 3.75415,1.94658 3.75415,4.15742 0,2.16627 -0.27386,2.6192 -2.17947,3.60463 -2.8304,1.46366 -23.17659,2.09609 -38.17053,1.18648 z" + id="path916" + clip-path="url(#clipPath1279)" + inkscape:label="tower-acc2" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient35);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 272.24676,632.31078 c -0.68928,-0.22504 -1.98174,-0.7859 -2.87214,-1.24634 -1.4053,-0.72671 -1.54148,-0.96114 -1.03212,-1.77676 0.94705,-1.51646 -0.54793,-3.14293 -5.03416,-5.47693 -4.34497,-2.2605 -5.54795,-3.30056 -3.22524,-2.78843 12.95572,2.85658 25.1669,7.33708 25.1669,9.23418 0,0.25874 -0.59517,0.86041 -1.32259,1.33704 -1.47133,0.96405 -9.42822,1.45264 -11.68065,0.71724 z" + id="path917" + clip-path="url(#clipPath1278)" + inkscape:label="tower-acc5" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient36);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="M 299.49021,639.01992 C 294.06335,637.7631 290.75,636.56255 290.75,635.853 c 0,-0.80186 1.67336,-1.95461 5.90909,-4.07067 2.39202,-1.19499 4.0744,-2.33367 3.95976,-2.68005 -0.12242,-0.36988 -1.83291,-0.72808 -4.43289,-0.92829 -4.64647,-0.3578 -7.93596,-1.45029 -7.93596,-2.63564 0,-1.38933 -2.9285,-2.35409 -8.42672,-2.7761 -7.53666,-0.57847 -9.92535,-1.70821 -7.59744,-3.59323 0.86804,-0.7029 1.98625,-0.91902 4.75494,-0.91902 3.98906,0 6.09535,0.56361 8.83952,2.36534 2.93925,1.92981 6.89234,2.23263 17.48399,1.33932 10.17792,-0.85841 12.19571,-0.81766 12.19571,0.24632 0,1.09749 -3.36289,2.56962 -7.06888,3.09445 -1.85835,0.26317 -3.77994,0.8415 -4.27019,1.28518 -2.12528,1.92335 -1.56621,6.35216 1.34864,10.68361 0.95724,1.42245 1.74043,2.67616 1.74043,2.78602 0,0.46302 -3.0741,0.0548 -7.75979,-1.03032 z" + id="path918" + clip-path="url(#clipPath1277)" + inkscape:label="tower-acc4" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient37);fill-opacity:1;stroke:#000405;stroke-width:1.13386;stroke-dasharray:none;stroke-opacity:1" + d="m 289.625,619.19782 c -4.1805,-1.61491 1.90005,-4.35627 13.22579,-5.96272 3.88618,-0.55122 5.89921,-0.18204 5.89921,1.08188 0,1.19319 -3.11637,3.33502 -6.09977,4.19227 -3.69169,1.06077 -11.05418,1.44998 -13.02523,0.68857 z" + id="path919" + clip-path="url(#clipPath1276)" + inkscape:label="tower-acc3" + transform="scale(0.26458333)" /><path + style="display:inline;fill:url(#linearGradient38);fill-opacity:1;stroke:#000405;stroke-width:0.347717;stroke-dasharray:none;stroke-opacity:1" + d="m 297.86094,661.63457 c -2.51887,-1.02422 -8.97335,-4.57183 -9.82791,-5.40177 -0.50102,-0.48659 -1.49192,-1.74566 -2.20199,-2.79795 -1.63965,-2.42985 -3.01091,-3.91837 -3.97919,-4.31944 -0.55309,-0.2291 -0.67074,-0.37203 -0.43122,-0.5239 0.3787,-0.24014 3.69568,-0.241 7.32937,-0.002 3.41919,0.22498 6.2707,-0.0391 7.09888,-0.65744 0.91379,-0.68224 0.84862,-1.52915 -0.17052,-2.21595 -1.13721,-0.76636 -2.83993,-1.09615 -6.97602,-1.35113 -3.31881,-0.20459 -6.01964,-0.68954 -7.1965,-1.29215 -1.05144,-0.5384 -1.88084,-1.5355 -1.88084,-2.26114 0,-0.39581 -0.11646,-0.93727 -0.2588,-1.20323 -0.52922,-0.98886 -1.61506,-0.51572 -4.23008,1.84321 -0.75014,0.67668 -1.72754,1.40374 -2.172,1.61569 -0.73738,0.35163 -0.86461,0.34834 -1.45358,-0.0376 -0.84095,-0.55101 -2.13554,-2.34639 -2.13554,-2.96163 0,-0.70317 1.26444,-1.85305 2.3947,-2.17773 2.04118,-0.58637 5.14839,-0.78958 8.00643,-0.52361 4.08242,0.37991 7.22438,1.25182 10.72387,2.97596 4.45691,2.19583 7.21454,2.84503 14.17027,3.33595 4.68539,0.33068 11.10779,0.0406 14.95473,-0.67549 5.53742,-1.03076 7.99872,-2.84121 6.59233,-4.84912 -0.95507,-1.36355 -2.89621,-1.57312 -7.21733,-0.77922 -3.43506,0.63111 -5.14898,0.63076 -7.19591,-10e-4 -1.24825,-0.38555 -1.83889,-0.73981 -2.55502,-1.53248 -0.86489,-0.95733 -0.92302,-1.1187 -0.81351,-2.25837 0.13737,-1.42961 0.94711,-2.57869 2.82366,-4.00697 1.40011,-1.06564 5.2907,-3.0516 6.70417,-3.42215 l 0.96339,-0.25256 2.75081,2.627 c 1.51294,1.44485 4.28567,3.94142 6.16161,5.54792 4.52729,3.87705 8.21231,7.54423 8.42251,8.38175 0.41474,1.65243 -1.42378,2.10784 -10.76171,2.66572 -6.95642,0.4156 -10.22664,1.16816 -14.75,3.39436 -1.2375,0.60904 -3.375,1.41032 -4.75,1.78062 -2.42157,0.65215 -2.68824,0.67165 -8.5,0.62172 -8.90469,-0.0765 -9.88175,0.13294 -9.52366,2.0417 0.26593,1.41757 1.45253,2.59223 3.10335,3.07213 1.80636,0.52513 5.6563,0.34028 8.29531,-0.39828 1.03125,-0.28861 2.71875,-0.75782 3.75,-1.04269 5.49381,-1.5176 13.76556,-0.42928 15.88545,2.09006 1.22305,1.45352 0.57038,2.64295 -2.15838,3.93345 -2.0337,0.96179 -4.50091,1.3491 -7.58734,1.19109 -2.79994,-0.14335 -3.92103,-0.47594 -7.76473,-2.30355 -2.44706,-1.16354 -4.22008,-1.879 -4.65643,-1.879 -0.54803,0 -0.10036,0.85641 1.26247,2.41515 1.86798,2.13653 1.82211,2.43499 -0.2451,1.59442 z" + id="path929" + clip-path="url(#clipPath1274)" + inkscape:label="tower-acc6" + transform="scale(0.26458333)" /><g + id="g892" + style="display:inline;fill:url(#linearGradient51);fill-opacity:1;stroke:#000405;stroke-opacity:1" + clip-path="url(#clipPath1244)"><path + style="fill:url(#linearGradient39);fill-opacity:1;stroke:#000405;stroke-width:0.0423327;stroke-dasharray:none;stroke-opacity:1" + d="m 80.317473,62.187896 c -1.776378,-0.0438 -2.440923,-0.168563 -2.390527,-0.449081 0.03552,-0.197614 0.562306,-0.628529 1.003717,-0.821029 0.83031,-0.362089 2.1551,-0.648276 3.56331,-0.76974 0.4814,-0.04146 1.86489,-0.03444 2.36773,0.01172 1.34381,0.124525 2.30376,0.382174 2.81866,0.756643 0.20413,0.148433 0.29731,0.271624 0.34846,0.460785 0.12182,0.450766 -0.45974,0.670062 -2.03159,0.765932 -1.03153,0.06284 -3.98759,0.086 -5.67976,0.04424 z" + id="path200" /><path + style="fill:url(#linearGradient40);fill-opacity:1;stroke:#000405;stroke-width:0.0423327;stroke-dasharray:none;stroke-opacity:1" + d="m 76.00853,65.489215 c -0.22038,-0.02344 -0.459133,-0.08395 -0.51407,-0.130386 -0.09168,-0.07765 -0.09099,-0.135512 0.0032,-0.277763 0.127105,-0.19168 0.514648,-0.500313 1.212079,-0.965317 0.997655,-0.665169 3.025834,-1.126703 5.128194,-1.167005 1.50158,-0.02872 2.60941,0.154002 3.09837,0.511197 0.1909,0.139468 0.26436,0.251086 0.27796,0.422345 0.0102,0.116174 -0.001,0.147466 -0.0809,0.249064 -0.33354,0.423722 -1.74545,0.821191 -3.66803,1.03262 -0.45752,0.05025 -2.33642,0.206023 -3.249843,0.26934 -0.831241,0.05757 -1.928795,0.08541 -2.206988,0.05596 z" + id="path201" /><path + style="fill:url(#linearGradient41);fill-opacity:1;stroke:#000405;stroke-width:0.0423327;stroke-dasharray:none;stroke-opacity:1" + d="m 83.433143,68.570782 c -2.45886,-0.03575 -4.51947,-0.220379 -5.407642,-0.484344 -1.005958,-0.298976 -0.883794,-0.683861 0.364454,-1.148237 0.972068,-0.361605 2.842148,-0.797516 4.129128,-0.962475 0.76946,-0.09859 1.14464,-0.121888 1.97249,-0.122328 1.53508,-7.9e-4 2.66873,0.156345 4.71861,0.65443 1.04394,0.253665 1.87455,0.513717 2.27301,0.711653 0.17464,0.08673 0.41079,0.254778 0.46446,0.33049 0.15782,0.222445 -0.13062,0.439938 -0.79741,0.601236 -1.29881,0.314241 -4.18357,0.471114 -7.7171,0.419634 z" + id="path202" /><path + style="fill:url(#linearGradient42);fill-opacity:1;stroke:#000405;stroke-width:0.0423327;stroke-dasharray:none;stroke-opacity:1" + d="m 79.601913,71.750417 c -5.681063,-0.04879 -8.444294,-0.257166 -8.849345,-0.667073 -0.191674,-0.193966 0.331849,-0.48093 1.499912,-0.822099 1.117744,-0.326489 1.890447,-0.463672 3.384023,-0.600797 4.67945,-0.429596 12.51472,-0.351511 15.57032,0.155144 0.69447,0.115149 1.20717,0.271406 1.99073,0.606642 2.0285,0.867894 0.58663,1.203658 -5.60522,1.30527 -1.9149,0.03135 -5.73026,0.04234 -7.99042,0.02285 z" + id="path203" /><path + style="fill:url(#linearGradient43);fill-opacity:1;stroke:#000405;stroke-width:0.0423327;stroke-dasharray:none;stroke-opacity:1" + d="m 95.344243,75.12245 c -0.0655,-0.0043 -0.40856,-0.03252 -0.7621,-0.06299 -0.58346,-0.05025 -0.89771,-0.08438 -2.42812,-0.263583 -2.32993,-0.272871 -6.25375,-0.503798 -9.61533,-0.565899 -1.58068,-0.02931 -2.30314,-0.08204 -2.92186,-0.213729 -0.53889,-0.11471 -0.846966,-0.265649 -1.012359,-0.496005 -0.09146,-0.127455 -0.102458,-0.162541 -0.114671,-0.366411 -0.06027,-1.006162 0.88503,-1.134628 6.00177,-0.815638 3.77014,0.23503 8.08935,0.607784 9.63931,0.831885 0.52715,0.07618 0.87225,0.1603 1.22455,0.298346 0.79604,0.311913 1.33776,0.702599 1.5471,1.115715 0.0922,0.181924 0.10168,0.235689 0.0557,0.317465 -0.0971,0.172738 -0.39156,0.236949 -1.06233,0.231793 -0.23774,-0.0029 -0.48599,-0.0074 -0.55158,-0.01025 z" + id="path204" /><path + style="fill:url(#linearGradient44);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" + d="m 68.114605,75.160555 c -0.251015,-0.07487 -0.246618,-0.294509 0.01362,-0.675644 0.614251,-0.89989 2.723722,-1.610121 5.231133,-1.761281 1.877864,-0.113244 3.453455,0.09449 3.867718,0.509791 0.147885,0.148258 0.154989,0.191036 0.06003,0.36124 -0.16294,0.292033 -0.530083,0.48367 -1.248765,0.651822 -1.253917,0.293395 -3.760855,0.655206 -6.114866,0.88253 -1.112739,0.107386 -1.530011,0.114856 -1.80878,0.0315 z" + id="path205" /><path + style="fill:url(#linearGradient45);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" + d="m 65.247382,77.851743 c -0.217985,-0.0504 -0.27407,-0.09713 -0.27407,-0.227865 0,-0.403168 0.858626,-0.839532 2.247135,-1.142026 1.764787,-0.384473 6.860545,-1.003613 10.613196,-1.289522 4.41499,-0.336378 12.55537,0.308838 15.0095,1.189639 0.89991,0.322988 1.03013,0.614962 0.36266,0.813236 -0.85634,0.254367 -2.49298,0.260389 -8.87878,0.03266 -4.1286,-0.147233 -9.693542,-0.0088 -12.77597,0.315166 -2.364567,0.249401 -3.286963,0.317948 -4.638151,0.344625 -0.815697,0.01596 -1.504851,0.0011 -1.66552,-0.0359 z" + id="path206" /><path + style="fill:url(#linearGradient46);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" + d="m 60.004871,82.08924 c 0.01933,-0.01172 0.553012,-0.361151 1.185979,-0.775116 1.382154,-0.903963 1.70709,-1.074577 2.713305,-1.424786 1.837539,-0.639515 4.468314,-1.122159 8.168532,-1.498606 2.007383,-0.204236 4.513992,-0.405541 5.653848,-0.454062 l 0.904859,-0.03854 0.372639,0.276637 c 0.42802,0.317757 0.60329,0.687523 0.52553,1.108681 -0.15783,0.855238 -1.207033,1.120432 -5.743761,1.451918 -5.454501,0.398538 -9.922726,0.832998 -12.860162,1.250479 -0.947229,0.134633 -0.974482,0.13771 -0.920769,0.10343 z" + id="path207" /><path + style="fill:url(#linearGradient47);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" + d="m 103.68063,81.980024 c -2.68283,-0.499052 -6.138847,-0.810788 -12.396427,-1.118204 -6.28127,-0.308559 -9.08954,-0.59167 -10.13969,-1.022174 -0.36299,-0.148801 -0.44055,-0.277061 -0.36011,-0.595435 0.15655,-0.61946 0.56365,-0.803639 1.96388,-0.888463 0.90785,-0.05508 3.53761,0.0029 5.75305,0.124085 0.62614,0.03458 2.10612,0.10548 3.28884,0.157546 5.69075,0.250442 7.92165,0.579129 9.674117,1.425372 0.72781,0.351453 3.47787,2.122169 3.26854,2.104544 -0.0452,-0.0029 -0.51882,-0.08819 -1.0522,-0.187314 z" + id="path208" /><path + style="fill:url(#linearGradient48);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" + d="m 65.458212,84.581117 c -0.136973,-0.10548 -0.04729,-0.332438 0.310927,-0.78672 0.850047,-1.078034 2.147709,-1.570187 4.923257,-1.8672 2.186631,-0.23399 3.782067,-0.281954 9.165157,-0.275523 9.65143,0.01172 16.92956,0.341741 19.18353,0.870341 0.58828,0.138004 0.71241,0.194934 1.053207,0.483421 0.6222,0.526667 0.94364,1.107408 0.73895,1.33501 -0.25423,0.282643 -1.393247,0.30453 -3.435147,0.06593 -2.29937,-0.268607 -4.49344,-0.378029 -9.74006,-0.485778 -7.67049,-0.157503 -16.602476,0.06329 -19.648839,0.485924 -1.223632,0.169721 -2.44841,0.253519 -2.550982,0.174526 z" + id="path209" /><path + style="fill:url(#linearGradient49);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" + d="m 105.43159,85.493929 c -1.43365,-0.192238 -2.55818,-0.694923 -3.22806,-1.442995 -0.20868,-0.233053 -0.43384,-0.538241 -0.50038,-0.678208 -0.11069,-0.233037 -0.10777,-0.266571 0.035,-0.397791 0.1415,-0.129799 0.23896,-0.145328 1.03388,-0.164314 0.77079,-0.0186 0.9592,-8.06e-4 1.5466,0.144888 0.82804,0.205423 1.90334,0.624163 2.54466,0.990912 0.51592,0.29505 1.79256,1.25631 1.79256,1.349732 0,0.03062 -0.0608,0.09318 -0.13517,0.138882 -0.16182,0.09962 -2.45861,0.143423 -3.08929,0.05874 z" + id="path210" /><path + style="fill:url(#linearGradient50);fill-opacity:1;stroke:#000405;stroke-width:0.119735;stroke-dasharray:none;stroke-opacity:1" + d="m 56.548821,85.781684 c -0.06797,-0.0608 -0.07142,-0.135219 -0.01168,-0.251862 0.135572,-0.264726 0.668609,-0.861875 1.002721,-1.123304 1.691349,-1.323451 5.684958,-2.147177 6.622426,-1.365936 0.260448,0.217039 0.147846,0.583056 -0.37813,1.22909 l -0.455287,0.55922 -2.108251,0.352815 c -1.15954,0.194054 -2.54923,0.42784 -3.088203,0.519548 -1.104722,0.187959 -1.44413,0.205203 -1.583601,0.08043 z" + id="path211" /></g></g></g><g + inkscape:label="Castle" + inkscape:groupmode="layer" + id="layer1" + style="display:inline" + transform="translate(-6.7520832,-1.5246326)"><g + transform="matrix(0.11310049,0,0,-0.07077356,-89.486071,240.59322)" + fill="#000000" + stroke="none" + id="g43" + clip-path="url(#clipPath1271)" + style="stroke-width:25.5846;stroke-dasharray:none"><path + id="path1" + style="stroke-width:25.5846;stroke-dasharray:none" + d="m 1506.7484,2864.5131 c -0.3527,-0.085 -0.7068,-0.1654 -1.06,-0.2483 0.079,-1.1765 0.2713,-2.4208 0.3655,-3.607 0.08,0.4823 0.1637,0.9526 0.2422,1.4458 0.083,0.5214 0.1338,1.0572 0.201,1.5844 0.048,0.3749 0.1916,0.4788 0.2513,0.8251 z m 11.1303,-37.0778 c -0.089,-0.1469 -0.175,-0.2995 -0.265,-0.4454 -0.2619,-0.4248 -0.5324,-0.834 -0.7996,-1.2486 0.1287,0.1146 0.2575,0.229 0.3838,0.3505 0.2163,0.2246 0.3811,0.4039 0.5346,0.5622 0.05,0.2631 0.096,0.5171 0.1462,0.7813 z m -48.1991,-60.487 c -0.025,-0.022 -0.048,-0.044 -0.073,-0.066 0,-0.01 0.01,-0.01 0.014,-0.015 0.019,0.028 0.04,0.053 0.059,0.08 z m -13.7255,-80.0845 c -8.3891,-0.797 -5.9506,-7.3619 6.0494,-26.8628 12.3935,-20.3607 2.7832,-39.8625 -20.3872,-44.0874 -0.8853,-2.4406 -1.7661,-4.8838 -2.6683,-7.309 -0.8649,-2.2702 -1.7868,-4.4826 -2.6866,-6.7175 -0.4949,-1.2428 -0.909,-2.5599 -1.2794,-3.9064 -0.4101,-1.5106 -0.8434,-2.9996 -1.2291,-4.527 -0.1243,-0.5099 -0.2534,-1.0165 -0.3883,-1.5188 3.5626,-31.5072 -98.6461,-243.2951 -168.3658,-345.9379 -30,-46 -54.9979,-84.9999 -54.9979,-88.9999 0,-4 19.9956,-6.995 43.9956,-6.995 h 42.9995 l 7.0044,-71.0014 c 8,-76 4.9979,-89.0009 -18.0021,-70.0009 -23,20 -35.9997,3.9998 -35.9997,-45.0002 0,-33 -4.0009,-43.9998 -16.0009,-43.9998 -10,0 -13.9984,-7.0055 -11.9984,-17.0055 2,-10 9.0003,-16.9906 15.0003,-15.9906 18,4 103.0015,-140.0063 90.0015,-153.0063 -9,-9 -77.0025,10.0072 -77.0025,22.0072 0,10 10.0024,11.9956 33.0024,8.9956 l 32.0018,-5.0016 -27.0033,10.9963 c -16,6 -27.9992,17.0079 -27.9992,24.0079 0,13.0101 -5.2237,19.4937 -13.6798,19.8751 -0.1219,-0.4002 -0.2476,-0.7976 -0.361,-1.2048 -0.1169,-0.6394 -0.4458,-1.5248 -0.5666,-2.3146 -0.3429,-1.5434 -0.7062,-3.0761 -1.0691,-4.6074 -0.413,-1.7989 -0.9245,-3.5391 -1.4621,-5.2499 -0.4707,-1.4554 -0.9344,-2.9143 -1.4347,-4.3444 -0.1361,-0.3589 -0.2677,-0.7246 -0.4067,-1.0807 -0.1383,-0.3532 -0.7545,-1.9649 -0.4706,-1.2486 -0.1421,-0.4746 -0.3167,-0.9313 -0.4843,-1.3873 0.059,0.1646 0.1192,0.3335 0.091,0.2483 -0.044,-0.1365 -0.088,-0.2724 -0.1325,-0.4089 -0.1616,-0.7017 -0.3839,-1.3901 -0.562,-2.0737 -0.478,-1.6656 -0.2581,-0.8375 -0.594,-2.4095 -0.2191,-1.0462 -0.4337,-2.1034 -0.6305,-3.1617 -0.064,-0.3659 -0.089,-0.7399 -0.1005,-1.1171 -0.042,-1.5967 -0.1951,-3.1793 -0.2925,-4.768 -0.08,-1.6231 -0.1086,-3.2503 -0.1325,-4.8775 -0.026,-2.1372 -0.031,-4.2732 -0.036,-6.4109 0,-2.1947 -0.01,-4.3913 -0.01,-6.5861 -8e-4,-2.1926 2e-4,-4.3861 0,-6.5788 -10e-5,-2.242 10e-5,-4.4827 0,-6.7248 -0.017,-3.0473 -0.293,-6.0676 -0.6259,-9.0613 -0.3666,-2.7239 -0.8181,-5.4071 -1.389,-8.0392 -0.4548,-2.0488 -0.9884,-4.053 -1.4987,-6.0676 -0.5578,-2.0589 -1.1723,-4.0748 -1.8505,-6.0385 -0.6979,-1.9232 -1.4856,-3.747 -2.2982,-5.5493 -0.97,-2.1195 -2.0813,-4.0454 -3.2715,-5.8486 0.2216,0.1163 0.4445,0.2301 0.6671,0.3432 0.9144,0.4088 1.7605,0.955 2.5816,1.5771 0.982,0.7889 1.9196,1.6565 2.8511,2.5264 1.0071,0.9355 2.0053,1.8873 3.0155,2.8184 0.8477,0.8085 1.6455,1.6774 2.4354,2.5629 0.4631,0.5758 0.9252,1.1552 1.389,1.7305 0.1407,0.2391 0.2806,0.4821 0.4295,0.7156 0.095,0.1326 0.2104,0.2388 0.3106,0.3651 0.1618,0.3346 0.2932,0.6897 0.4432,1.0368 0.3179,0.8068 0.6946,1.5671 1.1697,2.2562 0.4845,0.6118 1.0476,1.1136 1.654,1.5407 0.4707,0.3118 0.9814,0.5324 1.4896,0.7374 0.6974,0.279 1.4098,0.4946 2.1246,0.701 0.611,0.205 1.2286,0.3716 1.8413,0.5695 0.548,0.1594 1.0833,0.3804 1.622,0.5769 0.5288,0.2064 1.069,0.368 1.6175,0.4819 0.2481,0.049 0.4966,0.082 0.7447,0.1095 0.079,0.019 0.1539,0.048 0.2331,0.066 1.2548,0.3402 2.5073,0.6706 3.7786,0.9127 1.2744,0.242 2.5618,0.3375 3.8426,0.5111 1.6017,0.2705 3.2191,0.3366 4.8341,0.3651 0.883,0.021 1.763,0.036 2.6454,0.022 0.8825,-0.014 1.7686,-0.053 2.6501,-0.1168 2.2936,-0.225 4.5757,-0.5915 6.8582,-0.9346 1.9166,-0.2876 3.8344,-0.5226 5.7524,-0.7959 1.6639,-0.2164 3.3193,-0.5041 4.9666,-0.8543 1.7053,-0.3574 3.3793,-0.884 5.0626,-1.3581 1.9316,-0.5879 3.8662,-1.1594 5.8027,-1.7232 1.4634,-0.4257 2.9323,-0.8384 4.4,-1.2413 0.9408,-0.2805 1.8805,-0.5408 2.8374,-0.7301 0.7345,-0.1552 1.4634,-0.3817 2.1794,-0.628 0.6901,-0.2377 1.3414,-0.5722 2.0013,-0.9054 0.3306,-0.075 0.6596,-0.1612 0.9869,-0.2556 0.4581,-0.158 0.9013,-0.3573 1.3433,-0.5695 0.6186,-0.3583 1.2235,-0.7456 1.8002,-1.1902 13.6765,-3.8726 12.9614,-47.5221 -5.0899,-263.1882 -10,-113 -15.0051,-130.0055 -30.0051,-106.0055 -6,9 -5.0033,17.0069 1.9967,21.0069 6,4 -9.9991,9.9973 -34.9991,13.9973 -26,4 -46.9975,10.9979 -46.9975,15.9979 0,13 74.0003,11.0063 88.0003,-2.9937 20,-20 14.0004,0 -13.9996,47.9938 -15,25 -35.9981,74.0068 -47.9981,110.0068 l -22.0047,64.9994 -27.9992,-73.0093 c -27,-69 -76.9978,-164.9904 -112.9978,-215.9904 -14,-20 -14,-22.0072 0,-22.0072 24,0 34.0015,-25.9938 46.0015,-114.9938 6,-43 13.9969,-81.0055 16.9969,-84.0055 3,-3 38.0026,-5.9947 77.0026,-5.9947 h 71.9994 l -3.0019,-64.9994 c -2,-36 -5.9958,-74.00587 -7.9958,-85.00587 -5,-20 -5.0042,-20 7.9958,0 6,11 13.0049,44.99144 15.0049,74.99537 1,30 6.9944,100.0069 12.9944,155.0069 22,211 40.0022,471.0002 40.0022,581.0002 v 114.0008 h 69.9982 c 40,0 69.9982,-4.0033 69.9982,-10.0033 0,-5 -2.9998,-9.996 -6.9998,-9.996 -10,0 -9.9948,-250.0014 1.0052,-540.0014 9,-223 7.9996,-233.998 -8.0004,-216.998 -15,14 -17.0036,29.9962 -13.0036,99.9962 3,45 1.002,90.0032 -3.998,99.0032 -5,9 -13.0027,41.001 -19.0027,70.001 l -8.9965,53.0028 4.9985,-65.0067 c 2,-36 6.0011,-107.9939 9.0011,-159.9939 l 4.0025,-95.0019 -9.0056,86.9919 c -5,48 -13.9937,116.0053 -18.9937,150.0053 l -10.0017,62.9987 4.9986,-74.9953 c 2,-41 6.9978,-110.0059 10.9978,-152.0059 l 6.0037,-76.996 -29.0045,-6.002 c -16,-4 -36.9974,-9.0039 -46.9974,-12.0039 -16,-4 -58.0038,-71.0003 -57.0038,-90.00024 1,-4 10.0047,10.00284 22.0047,31.00284 19,38 20.9984,38.9996 33.9984,20.9996 8,-10 12.0011,-25.9972 9.0011,-35.9972 -3,-9 1.0017,-22.00219 10.0017,-29.00219 8,-7 15.0003,-19.0012 15.0003,-26.0012 0,-8 3.9971,-13.99728 9.9971,-13.99728 5,0 6.9979,6.9976 3.9979,14.9976 -4,10 3e-4,12.99597 15.0003,9.99597 12,-2 20.9995,0.009 20.9995,6.00927 0,5 -8.9989,8.99564 -19.9989,8.99564 -11,0 -19.9988,5.99695 -19.9988,12.99695 0,8.99994 -1.9965,8.99964 -8.9965,-1.00033 -7,-11 -9.0042,-11 -14.0042,0 -7,18.99997 30.9994,21.00107 49.9994,3.00098 18,-19 82.9972,-14.99869 82.9972,4.00131 0,7.99998 -5.997,11.00228 -16.997,7.00228 -23,-8.99841 -34.9969,14.0032 -16.9969,32.0032 8,8 15.9969,12.9963 16.9969,10.9963 1,-2 11.9974,-18.9972 24.9974,-35.9972 23,-33.99946 24.0012,-32.9975 -19.9988,-36.9975 -7,-1 -18.9935,-6.00425 -25.9935,-13.00425 -7,-6 -21.0063,-10.00262 -32.0063,-8.00262 -11,2 -19.9989,-10e-4 -19.9989,-4.00131 0,-16 13.0064,-19.99597 32.0064,-9.99597 26,14 58.9933,-9.00054 32.9933,-24.00054 -11,-5 -21.9973,-3.99837 -31.9973,5.00163 -14,11 -16.0004,10.99935 -8.0004,-2.00065 6,-10 2.0016,-8.99902 -11.9984,3.00098 -20,17 -19.9988,16.99705 -19.9988,-9.00295 0,-18 2.0004,-22.00425 8.0004,-13.00425 6,11 8.9957,10.00599 14.9957,-3.99401 8,-22 25.0015,-22.00697 17.0015,0.99303 -3,9 -2.9993,14.01057 1.0007,10.01057 4,-3 8.0017,-12.00654 10.0017,-20.00654 1,-7 4.9965,-19.00088 8.9965,-25.00088 4,-7 8.0004,-28.99445 8.0004,-49.99445 -1,-21 0.998,-95.99654 3.998,-167.99654 2,-76 1.002,-120.00514 -3.998,-105.00514 -5,14 -6.0019,-67.00178 -3.0019,-184.00178 5,-196 4.0017,-209.0007 -11.9983,-203.0007 -10,4 -23.9973,7.00229 -31.9973,7.00229 -11,0 -14.0042,17.99828 -14.0042,83.99828 0,65 -4.0009,87.99653 -16.0009,100.99653 -38,38 -74.0006,-7.00089 -74.0006,-92.00089 v -51.99511 l 40.0022,-10.99629 c 22,-6 40.0022,-17.00055 40.0022,-24.00055 0,-19 64.9994,-36.00121 100.9994,-26.00121 34,10 54.9978,3.99978 83.9978,-23.00022 17,-16 29.0044,-18.003648 80.0044,-12.00393 32,3 66.998,10.99794 76.998,15.99794 19,10 14.0042,39.00545 -7.9958,39.00545 -8,0 -14.0042,5.00327 -14.0042,10.00327 0,6 8.9982,9.99597 18.9982,9.99597 22,0 22.0001,-8.99865 -6.9999,205.00135 -11,77 -18.9982,148.99393 -18.9982,159.99393 0,11 -3.0043,30.00644 -7.0043,42.00644 -7,21 -3.9991,21.99226 38.0009,20.99226 25,0 43.0023,-4.99564 40.0023,-8.99564 -3,-5 -9.9957,-7.00098 -14.9957,-3.00098 -6,3 -9.0044,0.005 -7.0044,-7.99532 2,-7 -0.9998,-14.0049 -6.9998,-15.0049 -5,-1 -7.9999,6.0049 -6.9999,15.0049 3,13 1.0017,14.00099 -11.9983,3.00099 -16,-14 -23.0005,-36.00154 -8.0005,-27.00154 4,2 8.9965,-3.9976 8.9965,-14.9976 1,-11 -1.9946,-17.00491 -5.9946,-15.00491 -4,3 -8.0005,-4.99793 -8.0005,-15.99793 -2,-24 -1.9995,-23.00326 59.0005,56.99674 43,58 44.996,65.00493 51.996,149.00493 9,120 13.0004,134.99839 37.0004,128.99839 29,-8 22.9999,13.001 -22.0001,70.001 -41,52 -42.0038,51.99674 -108.0038,56.99674 l -65.9956,5.00164 -1.0007,31.99585 c -1,18 2.0038,30.0019 6.0038,28.0019 4,-3 12.9982,1.0029 18.9982,9.0029 9,10 8.0021,14.9993 -3.9979,19.9993 -9,3 -13.0017,1.9986 -10.0017,-4.0014 3,-6 1.0014,-10.0032 -4.9986,-10.0032 -7,0 -9.0038,7.0052 -6.0038,16.0052 3,9 6.0038,17.9919 6.0038,19.9919 0,2 5.999,4.0087 12.999,4.0087 8,0 23.9952,8.9989 35.9952,18.9989 20,18 21.0025,20.0005 4.0025,24.0005 -17,4 -17,4.9947 0,5.9947 9,0 17.0015,6.0036 17.0015,11.0036 0,6 -8.0015,10.0036 -17.0015,11.0036 -12,0 -7.9983,3.9963 10.0017,10.9963 30,11 27.9981,28.9995 -3.0019,20.9995 -11,-3 -19.9988,0 -19.9988,6.002 0,6 15.9976,9.9956 39.9976,8.9956 l 39.9977,-1.0003 v -67 -65.9997 l -60.9971,-42.9921 c -33,-23 -59.0032,-45.00811 -56.0032,-47.00811 2,-3 32.0003,14.00511 66.0003,38.00511 l 61.0017,41.9992 v 73.0019 c 0,65 2.0027,72.9947 19.0027,72.9947 14,0 18.9968,10.0018 23.9968,50.0018 10,82 29.0019,130.9956 54.0019,142.9956 22,10 27.0044,31.0035 7.0044,33.0035 -34,3 -84.007,18.0009 -84.007,25.0009 0,14 34.0044,10.005 58.0044,-6.995 12,-8 22.0001,-13.0033 22.0001,-10.0033 0,2 -18.0023,37.9967 -40.0023,78.9967 -46,84 -90.0016,207.0081 -90.0016,248.0081 0,15 -3.9971,30.9965 -9.9971,33.9965 -6,3 -10.0017,-4.0059 -10.0017,-18.0059 0,-57 -93.9958,-287.9934 -109.9958,-269.9934 -4,4 -9.999,65.0004 -12.999,135.0004 l -6.0038,125.9974 29.0045,46.0004 c 16,25 35.9962,46.0005 44.9962,46.0005 20,0 20,39.0004 0,46.0004 -10,4 -15.0003,20.0018 -15.0003,50.0018 0,44 -12.0032,57.0021 -27.0032,29.0021 -5,-8 -12.9949,-11.0092 -20.9949,-6.0092 -9,5 -9.9985,25.0033 -4.9985,77.0033 l 8.0004,69.0006 37.9918,3.001 c 20,2 37.005,7.9973 37.005,13.9973 0,6 -21.0021,38.0016 -47.0021,72.0016 -69,91 -165.0029,307.9983 -165.0029,373.9983 0,12 -3.9965,21.9999 -8.9965,21.9999 -4,0 -9.0023,12.0015 -11.0023,27.0015 -2,16 -9.9989,27.0022 -19.9989,29.0022 -5.25,0.75 -9.2477,1.1272 -12.044,0.8616 z m 19.0439,-146.8656 c 20,0 35.0016,-5.9976 39.0016,-14.9976 4,-12 -4.0015,-15.0049 -46.0015,-15.0049 -44,0 -49.0009,2.0049 -38.0009,15.0049 7,8 27.0008,14.9976 45.0008,14.9976 z m -15.0003,-39.9985 c 16.25,0.5 30.0051,-4.0045 30.0051,-14.0045 0,-8 -16.0035,-15.9917 -42.0035,-18.9917 -50,-7 -53.9978,-5.009 -32.9978,16.991 10,10 28.7462,15.5052 44.9962,16.0052 z m 23.5033,-40.9988 c 12.75,0 25.5003,-3.0029 40.5003,-9.0029 46,-17 29.0029,-30.0025 -38.9971,-30.0025 -66,0 -85.0035,13.0025 -42.0035,30.0025 15,6 27.7503,9.0029 40.5003,9.0029 z m -13.8763,-50.0017 c 35.125,0 69.3798,-2.9957 81.3798,-8.9957 36,-20 18.9918,-25.0008 -86.0082,-25.0008 -103,0 -126.9966,7.0008 -81.9966,25.0008 15.5,6 51.5,8.9957 86.625,8.9957 z m -24.3166,-39.7283 c 4.1533,0.275 9.3751,0.1968 15.9141,-0.1899 8.7188,-0.5157 19.7792,-1.5813 33.7792,-3.0813 36,-4 70.9947,-9.0039 78.9947,-12.0039 8,-3 17.0027,-10.9913 19.0027,-17.9913 4,-10 -3.9997,-11.0016 -35.9997,-5.0016 -23,5 -61.0024,7.9956 -84.0024,8.9956 -33,0 -42.9995,3.9979 -42.9995,15.9979 0,8.4375 2.8511,12.4498 15.3109,13.2745 z m -42.666,-7.1411 c 16.5468,-1.875 23.11,-9.3803 13.36,-19.1303 -3,-3 -23.0054,-8.997 -45.0054,-12.997 -37,-7 -38.9966,-6.0037 -30.9966,10.9963 6,10 23.9996,19.0069 42.9996,21.0069 7.5,0.75 14.1267,0.7491 19.6424,0.1241 z m 41.7339,-33.3831 c 16.875,0.5 33.1237,-1.2461 62.6237,-4.7461 29,-4 53.9992,-11.9989 56.9992,-18.9989 4,-10 -12.9994,-11.9954 -71.9994,-7.9954 -42,3 -100.9986,0.9911 -128.9986,-5.0089 -29,-5 -52.9967,-6.0003 -52.9967,-1.0003 0,13 17.9969,20.0022 67.9969,29.0022 32,5.5 49.4999,8.2474 66.3749,8.7474 z m -16.3755,-39.7503 c 6,0 11.9984,-6.9913 11.9984,-17.9913 0,-15 -9.9965,-19.0078 -59.9965,-24.0078 -33,-4 -73.0004,-9.997 -88.0004,-12.997 l -27.0032,-6.0019 20.9995,21.9999 c 19,19 61.0022,30.9981 142.0022,38.9981 z m 40.5048,-6.3232 c 5.5366,0.3946 12.7097,0.3567 21.991,-0.095 12.375,-0.5782 28.5059,-1.8278 49.5059,-3.5778 67,-4 84.996,-10.0022 102.996,-29.0022 l 22.0046,-23.0003 -25.0065,7.0023 c -14,4 -61.994,9.997 -106.994,12.997 -54,4 -83.0017,9.9986 -83.0017,17.9986 0,11.25 1.895,16.4936 18.5047,17.6773 z m -48.8205,-46.5335 c 22.625,0.2968 50.3131,-0.139 84.3131,-1.139 76,-3 112.0048,-7.9983 117.0048,-16.9983 16,-24 8.9961,-29.0069 -28.0039,-21.0069 -48,9 -218.996,8.9997 -255.996,-1.0003 -26,-6 -27.0021,-4.9957 -18.0021,13.0043 10.5,18.75 32.8091,26.2495 100.6841,27.1402 z m -126.8832,-15.2312 c 9.6035,-0.2051 15.3238,-5.028 11.1988,-15.903 -4,-8 -7.0004,-15.005 -8.0004,-15.005 0,0 -16.0031,-4.0029 -34.0031,-9.0029 -29,-9 -30.9955,-7.9971 -21.9955,9.0029 10,18.75 36.7943,31.2498 52.8002,30.908 z m 355.1951,-0.9127 c 10,0 27.005,-8.992 37.005,-19.992 18,-20 16.9995,-20.0065 -8.0005,-20.0065 -16,0 -30.0049,8.0065 -37.0049,20.0065 -9,17 -7.9996,19.992 8.0004,19.992 z m -177.9927,-28.9949 v -109.9995 -111.0071 h -95.0048 c -52,0 -95.0001,4.0102 -95.0001,9.0102 0,5 35.0032,11.9907 78.0032,15.9907 91,7 117.9986,12.0046 77.9986,14.0046 -28,1 -28.0013,2.002 -24.0013,51.002 3,27 0.9981,46.9998 -3.0019,43.9998 -4,-2 -11.0003,1.0023 -15.0003,7.0023 -4,8 -2.9974,8.9943 4.0026,4.9943 7,-4 11.9983,-1.999 11.9983,3.001 0,15 -37.0014,13.9997 -46.0014,-1.0003 -4,-6 -2.9987,-8.9943 2.0013,-4.9943 5,3 7.0025,-19.0094 4.0025,-51.0094 l -4.0025,-56.9895 -6.9998,49.9945 -5.9947,50.0017 -1.0052,-46.0004 c -2,-33 -6.9975,-48.9954 -17.9975,-52.9954 -14,-5 -14.9984,1.9941 -11.9984,48.9941 1,30 0,55.0034 -4.0025,55.0034 -5,0 -7.9959,14.9965 -7.9959,33.9965 0,39 1.9975,39.9998 97.9975,43.9998 z m 9.9925,-4.0013 h 35.0037 c 25,0 33.9966,-3.997 30.9966,-12.997 -3,-8 -0.9975,-16.0062 4.0025,-19.0062 6,-4 10.0017,3.0046 10.0017,14.0046 0,16 4.9978,17.9973 32.9978,13.9973 17,-3 33.9991,-5.9954 34.9991,-7.9954 2,-2 1.0073,-41.9999 -2.9927,-88.9999 -5,-62 -11.004,-86.0062 -21.004,-86.0062 -17,0 -28.0034,42.0043 -20.0034,80.0043 3,18 1.006,30.0025 -4.994,30.0025 -6,0 -8.0077,3.9956 -5.0077,8.9956 3,5 -0.9966,11.0049 -8.9966,15.0049 -26,9 -44.9962,-22.0026 -44.9962,-75.0026 0,-42 -3.0079,-49.0014 -20.0079,-49.0014 -18,0 -19.9989,6.9996 -19.9989,87.9996 z m 40.4729,-191.9095 c 37.0313,0.4687 112.0269,-6.0916 119.5269,-12.0916 3,-3 -27.9969,-2.9933 -67.9969,-1.9933 -39,2 -72.004,6.9963 -72.004,10.9963 0,2 8.1303,2.9323 20.474,3.0886 z m 39.5316,-25.0958 c 53,0 59.9965,-1.9919 59.9965,-19.9919 0,-18 -6.9965,-20.0066 -59.9965,-20.0066 -53,0 -60.0056,2.0066 -60.0056,20.0066 0,18 7.0056,19.9919 60.0056,19.9919 z m 85.003,0 c 8,0 15.0003,-8.9919 15.0003,-19.9919 0,-11 -7.0003,-20.0066 -15.0003,-20.0066 -8,0 -15.0048,9.0066 -15.0048,20.0066 0,11 7.0048,19.9919 15.0048,19.9919 z m -350.0046,-9.996 c 8,0 15.0048,-8.9919 15.0048,-19.9919 0,-11 -7.0048,-20.0066 -15.0048,-20.0066 -8,0 -15.0003,9.0066 -15.0003,20.0066 0,11 7.0003,19.9919 15.0003,19.9919 z m 98.998,0 c 68,0 76.0066,-1.9916 76.0066,-18.9916 0,-15 -8.0068,-19.0062 -40.0068,-19.0062 -31,-1 -39.9977,2.9979 -39.9977,15.9979 0,14 -0.9984,13.9997 -11.9984,-1.0003 -16,-20 -51.9985,-15.998 -55.9985,6.002 -3,15 6.9948,16.9982 71.9948,16.9982 z m 204.626,-39.6261 c 49.875,0.875 100.8765,-1.868 105.3765,-9.368 12,-19 -288.0005,-29.0046 -409.0005,-14.0046 -55,7 -50.0004,8.0043 64.9996,13.0043 78,3 128.0005,0.991 132.0005,-5.009 5,-6 7.9959,-4.9917 7.9959,3.0083 0,7 48.753,11.494 98.628,12.369 z m -324.7514,-34.2447 c 2.375,0.375 5.629,-0.6252 9.129,-3.1252 6,-4 19.9999,-6.0016 28.9999,-5.0016 15,3 16.9963,-3.9995 15.9963,-42.9995 l -1.9967,-45.0001 -18.0021,33.9965 c -10,19 -21.9993,37.9989 -27.9993,40.9989 -5,3 -10.0017,11.0052 -10.0017,16.0052 0,3 1.4996,4.7508 3.8746,5.1258 z m 356.2642,-0.2337 c 3.2344,0.7969 6.614,-1.6428 8.864,-6.8928 2,-6 -2.001,-14.9989 -9.001,-18.9989 -10,-6 -10.998,-42.9995 -3.998,-176.9995 5,-92 9.0005,-207.9967 8.0005,-257.9967 0,-51 2.9998,-79.0067 6.9998,-65.0067 4,14 7.0004,-30.9962 8.0004,-99.9962 2,-228 40.9974,-706.00488 75.9974,-930.00488 20,-128 19.0015,-139.99468 -4.9985,-139.99468 -18,0 -20.0047,7.00034 -22.0047,68.00034 l -0.9961,67.00001 -6.0037,-64.99936 -5.9946,-64.99936 -6.0038,79.99697 c -3,44 -11.9988,93.99947 -19.9988,109.99947 -26,54 -83.9981,38.99912 -98.9981,-25.00088 l -8.0005,-34.99684 -0.996,32.99619 c -2,55 61.9922,95.00503 96.9922,60.00503 8,-8 12.0076,-9.00033 12.0076,-1.00033 0,6 -5.0024,12.9976 -11.0024,14.9976 -5,2 -14.0021,50.99883 -18.0021,107.99883 -6,81 -8.9971,91.00011 -9.9971,45.00011 -1,-33 -3.0038,-77.9962 -6.0038,-99.9962 -4,-32 -2.9975,-35.00491 4.0025,-15.00491 l 8.9965,25.00088 1.0052,-27.00153 c 1,-22 -4.0026,-27.00252 -26.0026,-30.00252 -18,-2 -36,-14.99782 -51,-37.99782 -23,-33 -24.0021,-40.00101 -18.0021,-137.00101 6,-86 3.9995,-102.99719 -8.0005,-102.99719 -8,0 -21.9972,-3.00229 -31.9972,-7.00229 -16,-6 -17.0017,6.00146 -10.0017,183.00146 6,193 8.0019,483.00184 3.0019,519.00184 -2,11 -7.0029,26.99652 -12.0029,33.99652 -5,10 -3.9982,12.00229 3.0018,7.00229 7,-4 12.003,-0.99739 12.003,8.00261 0,17 14.9968,21.99499 23.9968,6.99499 3,-5 -1.0017,-11.9976 -10.0017,-14.9976 -9,-4 -13.9978,-8.99663 -10.9978,-11.99663 3,-3 19.0037,1.99597 35.0037,9.99597 23,12 31.9991,13.00098 34.9991,3.00098 3,-7 5.9946,-4.99803 5.9946,6.00197 1,9 6.0023,16.99826 11.0023,16.99826 16,0 11.9983,17.99848 -10.0017,39.99848 -24,24 -31.0013,24.99433 -24.0013,4.99433 4,-9 0,-14.9903 -7.9959,-14.9903 -24,0 -29.0023,12.00088 -11.0023,25.00088 16,12 15.0016,15.99811 -11.9984,49.99442 l -27.9993,37.9979 4.9986,220.9992 c 3,121 2.0033,201.0065 -1.9967,176.0065 -9,-57 -12.0019,306.9979 -3.0019,372.9979 l 5.9992,48.0011 63.0029,-2.0007 c 35,-1 66.9989,1.0017 70.9989,5.0017 1,1 2.0562,1.6255 3.1343,1.8911 z m -384.9809,-70.8553 c -1.5821,-0.04 -3.318,-0.3873 -5.099,-0.8324 1.4801,-4.1074 3.3412,-5.4074 6.0586,0.701 -0.3377,0.011 -0.6117,0.1401 -0.9596,0.1314 z m -57.1545,-59.5742 c 0.109,-1.0486 0.051,-2.024 0.2605,-3.1251 0.068,0.1895 0.1217,0.3922 0.1873,0.5841 -0.1493,0.8578 -0.2977,1.6974 -0.4478,2.541 z m 81.7818,-41.2471 c 0.063,-0.057 0.1513,-0.1401 0.2148,-0.1971 0.2214,-0.018 0.4411,-0.047 0.6625,-0.066 -0.2964,0.075 -0.5793,0.1956 -0.8773,0.2628 z m 501.2181,-44.2188 c 16,0 28.9954,-3.996 28.9954,-9.996 0,-5 -15.9997,-9.996 -35.9997,-9.996 -21,0 -32.9954,3.996 -28.9954,9.996 3,6 18.9997,9.996 35.9997,9.996 z m -34.4553,-46.643 c 2.7656,-0.1719 5.958,-0.6008 9.458,-1.3508 14,-2 22.9948,-10.0053 20.9948,-16.0053 -5,-14 -56.9991,-21.0022 -56.9991,-7.0022 0,6 4.9977,11.0036 10.9977,11.0036 5,0 7.9986,4.0029 4.9986,9.0029 -2.25,3 2.2531,4.8674 10.55,4.3518 z m 46.4537,-43.3573 c 25,0 48.9961,-3.9959 51.9961,-9.9959 4,-6 -10.9944,-7.001 -41.9944,-3.001 -63,8 -67.0017,12.9969 -10.0017,12.9969 z m -17.4995,-21.1237 c 19.25,0.375 33.9984,-3.8801 37.4984,-12.8801 4,-11 -9.9972,-14.9913 -60.9972,-17.9913 -37,-3 -69.0033,-3.0006 -71.0033,-2.0006 -2,2 11.0005,9.9986 30.0005,17.9986 21.5,9.5 45.2516,14.4984 64.5016,14.8734 z m -558.1213,-19.3713 c 7.125,-1.5 13.6268,-6.501 16.6268,-14.501 4,-11 -1.0028,-15.005 -19.0028,-15.005 -24,0 -32.0021,10.0003 -18.0021,23.0003 5.5,6 13.2531,8.0057 20.3781,6.5057 z m 561.1232,-19.8824 c 22.25,-0.125 50.5033,-3.6239 74.5033,-10.6239 20,-5 36.9957,-13.9913 36.9957,-17.9913 0,-5 -16.9957,-5 -36.9957,0 -21,5 -55.0059,8.9957 -75.0059,8.9957 -21,0 -37.9964,4.9959 -37.9964,9.9959 0,6.5 16.249,9.7486 38.499,9.6236 z m -58.2511,-0.4965 c 5.875,0.062 9.7504,-2.6271 9.7504,-9.1271 0,-5 -14.9973,-13.9916 -31.9973,-18.9916 -24,-6 -12.0004,-7.0009 42.9996,-3.0009 51,3 77.9972,0.9904 82.9972,-7.0096 5,-8 -11.0013,-10.9963 -53.0013,-10.9963 -33,0 -70.9984,-3.996 -84.9984,-9.996 -23,-8 -25.0001,-7.0031 -22.0001,12.9969 3,21 38.6249,45.9371 56.2499,46.1246 z m -495.2509,-19.123 c 8,0 19.0019,-9.0066 25.0019,-20.0066 9,-18 7.9998,-19.9919 -15.0002,-19.9919 -18,0 -25.002,4.9919 -25.002,19.9919 0,11 7.0003,20.0066 15.0003,20.0066 z m -29.5025,-1.0003 c 3.5,-0.5 4.5051,-6.5059 4.5051,-18.0059 0,-10 -8.9989,-20.9933 -19.9989,-23.9933 -24,-6 -26.0025,5.9942 -4.0025,26.9942 10,10.5 15.9963,15.505 19.4963,15.005 z m 14.5022,-49.0015 c 17,0 30.0005,-4.0029 30.0005,-9.0029 0,-11 -59.0008,-25.991 -67.0008,-16.991 -4,3 -13.0041,-0.01 -21.0041,-7.0096 -13,-10 -13.9925,-8.999 -9.9925,3.001 3,8 13.0001,14.0046 22.0001,14.0046 9,-1 16.0008,1.995 16.0008,6.995 0,5 13.996,9.0029 29.996,9.0029 z m 567.1133,-3.2273 c 47.3082,-1.1727 96.1363,-6.0206 102.8863,-12.7706 5,-5 1.9996,-31.9997 -8.0004,-65.9997 l -16.997,-57.004 h -92.0028 l -92.9943,1.0003 -1.0052,49.0014 c -1,27 -2.0019,54.0054 -3.0019,61.0054 -1,7 10.0059,14.9919 24.0059,19.9919 8.25,2.5 23.4993,4.0023 41.9212,4.6585 13.8164,0.4922 29.4187,0.5078 45.1882,0.1168 z m -599.8644,-37.5232 c 12.75,0.25 22.754,-2.7512 22.754,-9.2512 0,-5 -12.0032,-11.998 -27.0032,-15.998 -16,-3 -33.9977,-7.0032 -39.9977,-10.0032 -19,-5 -16.0014,14.0081 4.9986,25.0081 11,6.5 26.4983,9.9943 39.2483,10.2443 z m 45.3755,-30.4333 c 16.957,-1.0371 32.7479,-5.8151 41.3729,-14.8151 9,-8 16.0009,-16.0056 16.0009,-17.0056 0,-1 -28.999,-2.994 -63.999,-3.994 -52,-1 -64.0011,0.9967 -60.0011,11.9967 6.875,16.875 38.3645,25.5465 66.6263,23.818 z m -78.122,-10.3173 c 4.5,-0.25 5.4965,-2.4985 5.4965,-6.4985 0,-14 -22.9989,-31.9958 -41.9989,-31.9958 -22,0 -13.9983,26.9962 10.0017,32.9962 14,4 22.0007,5.7481 26.5007,5.4981 z m 75.8694,-40.1226 c 28.875,0.125 55.1268,-1.3737 67.6268,-4.3737 21,-6 33.0036,-43.9998 13.0036,-43.9998 -6,0 -8.0037,-20.0001 -6.0037,-45.0001 3,-31 0.9995,-45.0074 -8.0005,-45.0074 -8,0 -6.9981,-3.996 3.0019,-9.996 12,-8 7.9997,-9.9963 -15.0003,-10.9963 -24,-1 -26.0017,-2.0023 -10.0017,-7.0023 11,-4 21.0007,-15.0005 23.0007,-24.0005 3,-16 -5.9955,-17.9986 -72.9955,-17.9986 -61,0 -75.0059,2.9979 -75.0059,15.9979 0,8 4.0005,13.0033 8.0005,10.0033 5,-3 9.0056,0.9956 9.0056,8.9956 0,8 -4.0056,12.003 -9.0056,9.003 -4,-3 -8.0005,1.0029 -8.0005,9.0029 0,10 8.0008,13.9963 23.0008,10.9963 17,-3 16.002,-2.0053 -3.998,5.9947 -20,8 -28.9984,21.0084 -33.9984,48.0084 -3,20 -9.003,46.9974 -12.003,58.9974 -4,18 0.011,21.9939 24.0059,25.9939 23,3.5 54.4923,5.2563 83.3673,5.3813 z m 629.6319,-27.3739 v -33.0035 -32.9962 h -88.0049 -89.001 l -0.996,31.0028 -1.0007,31.9959 89.001,1.0003 z m -151.9994,-81.0046 c 19,0 21.9956,-4.9995 21.9956,-42.9995 0,-39 -13.0012,-67 -31.0012,-67 -4,0 -8.9932,25.0034 -10.9932,55.0034 -3,51 -2.0012,54.9961 19.9988,54.9961 z m -235.0056,-120.9958 c 5,0 7.0031,-5.0036 5.0031,-11.0036 -5,-16 -48.0027,-23.9956 -48.0027,-8.9956 0,8 16.9996,15.9992 42.9996,19.9992 z m -68.3762,-19.3713 c 7.875,-0.125 16.8787,-3.6239 21.3787,-10.6239 4,-7 20.0029,-8.0013 41.0029,-4.0013 24,4 32.9947,2.9914 27.9947,-4.0086 -3,-6 -11.9989,-10.9963 -19.9989,-10.9963 -13,0 -13,-28.0017 0,-50.00175 4,-5.99865 -0.9984,-7.00098 -11.9984,-3.00098 -32,11.00003 -34.0008,15.00223 -16.0008,29.00223 17,12 17.0006,13.0045 1.0006,14.0045 -10,0 -18.0022,4.996 -18.0022,9.996 0,6 -8.9988,9.996 -19.9988,9.996 -11,0 -19.9988,5.0032 -19.9988,10.0032 0,6.5 6.746,9.7559 14.621,9.6309 z m -42.3736,-10.748 c 4.75,-0.375 17.2491,-5.3808 36.7491,-14.8808 22,-11 29.0007,-20.0012 23.0007,-26.0012 -6,-6 -17.9993,-8.0013 -27.9993,-4.0013 -9,4 -13.9977,9.0043 -10.9977,13.0043 4,3 -1.0024,11.9916 -11.0024,18.9916 -11.5,9 -14.5004,13.2624 -9.7504,12.8874 z M 1697,970.00304 c 12,0 24.9993,-4.00327 27.9993,-10.00327 3,-5 -3.0002,-9.99597 -15.0002,-9.99597 -12,0 -17.9957,-4.00327 -14.9957,-10.00327 3,-5 0,-10.00327 -6.9999,-10.00327 -8,0 -14.0042,9.00654 -14.0042,20.00654 0,14 7.0007,19.99924 23.0007,19.99924 z m 70.9258,-6.25752 c 5.2031,0 10.8266,-2.24673 13.0766,-6.74673 4,-5 11.9937,-6.00066 18.9937,-2.00066 8,5 11.0037,3.99902 6.0037,-3.00098 -3,-5 9e-4,-12.9903 6.0038,-14.9903 7,-3 2.9983,-6.00927 -10.0017,-6.00927 -28,-1 -59.0016,25.00317 -39.0016,32.00317 1.5,0.5 3.1911,0.74477 4.9255,0.74477 z m -286.3027,-4.24226 c 2.625,0.75 10.3748,-1.00545 22.3748,-5.50545 9,-3 13.0056,-10.99096 9.0056,-16.99096 -4,-6 0,-8.00861 9.9926,-4.00861 10,4 24.0063,10.00425 32.0063,13.00425 9,4 14.9957,0.99771 14.9957,-7.00229 0,-7 -2.9952,-9.00196 -6.9952,-6.00196 -3,4 -11.0022,-0.99597 -18.0022,-9.99597 -11,-15 -13.9997,-15 -35.9997,0 -13,10 -18.9996,16.99826 -13.9996,16.99826 6,0 3.0014,5.00327 -4.9986,10.00327 -8.5,5.5 -11.0047,8.74946 -8.3797,9.49946 z m 241.3795,-60.50884 c 23,-1 32.9956,-3.99466 21.9956,-5.99466 -10,-3 -28.9944,-11.99925 -41.9944,-19.99925 -21,-14 -23.0007,-13.99803 -23.0007,6.00197 0,18 5.9995,20.99194 42.9995,19.99194 z m 71.9949,-21.9926 c 44,0 62.9996,-2.00131 42.9996,-4.00131 -21,-2 -56.9954,-2 -79.9954,0 -24,2 -7.0042,4.00131 36.9958,4.00131 z m -39.9976,-27.00153 h 74.9967 l -4.994,-61.99837 c -3,-35 -8.0023,-83.99948 -11.0023,-109.99948 -6,-46 -6.9958,-48.0011 -36.9958,-48.0011 -18,0 -42.0019,-3.00196 -54.0019,-6.00196 -18,-5 -23.0007,-2.00272 -23.0007,13.99728 0,12 9.0007,23.00153 23.0007,27.00153 21,7 20.9996,8.0049 -8.0004,15.0049 -21,5 -24.0017,7.99565 -10.0017,8.99565 19,2 19.0019,1.9976 3.0019,14.9976 -21,15 -23.9986,66.00001 -4.9986,67.00001 9,0 8.9948,2.00927 -1.0052,6.00927 -6,2 -9.9992,8.99728 -5.9992,13.99728 3,5 0,8.99564 -5.0031,8.99564 -19,0 -12.0002,19.99957 6.9998,20.99957 16,1 16,2.00196 0,6.00196 -42,11 -11.9962,23.00022 57.0038,23.00022 z M 1610.7542,403.29216 c 15,1.64062 25.4977,-14.2948 38.2477,-53.2948 8,-23 8.0007,-35.99782 1.0007,-37.99782 -5,-2 -10.0063,-9.99859 -10.0063,-17.99859 0,-9 5.0063,-12.00295 10.0063,-9.00295 6,4 10.0017,-10.99782 10.0017,-37.99782 0,-44 -1.0035,-43.99609 -42.0035,-54.99609 -43,-11 -43.0031,-11.00959 16.9969,-7.00959 l 60.0057,4.00131 -49.9994,-12.99695 c -27,-7 -56.0023,-10.99532 -62.0023,-7.99532 -9,3 -12.0023,32.99185 -11.0023,108.99185 2,92 4.0046,106.00242 22.0046,119.00242 6.25,4.25 11.7502,6.74747 16.7502,7.29435 z m -55.2263,-159.48281 c 0.4687,-0.1875 0.9712,-2.06212 1.4712,-5.81212 2,-15 2,-41.99772 0,-59.99772 -2,-18 -3.9979,-5.99847 -3.9979,27.00153 0,24.75 1.1204,39.37081 2.5267,38.80831 z m 129.4738,-74.80548 c 18,0 24.9988,-3.00262 19.9988,-8.00262 -15,-14 -105.0019,-25.00425 -105.0019,-13.00425 0,11 29.0031,18.00687 85.0031,21.00687 z m 42.9995,-21.00687 c 10,0.25 11.9984,-2.49532 11.9984,-7.99532 0,-5 -16.9958,-11.9976 -36.9958,-14.9976 -21,-3 -48.0056,-8.0036 -60.0056,-11.0036 -13,-2 -23.0007,-0.006 -23.0007,4.99433 0,5 21.0072,13.00622 48.0072,19.00622 32,6.5 49.9965,9.74597 59.9965,9.99597 z" /><path + d="m 1532,1788 c -7,-7 -12,-17 -12,-22 0,-6 5,-3 11,7 11,19 34,23 44,7 4,-6 -1,-7 -10,-3 -25,9 -35,-14 -35,-79 0,-58 0,-58 29,-58 17,0 33,-4 36,-10 4,-6 -8,-10 -29,-10 -39,0 -43,6 -49,90 -2,30 -4,21 -5,-27 l -2,-73 h 50 c 38,0 50,4 50,15 0,9 -7,18 -16,22 -12,4 -15,19 -13,68 1,34 -1,67 -5,73 -9,15 -29,15 -44,0 z" + id="path2" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1515,1530 c -4,-39 -5,-73 -2,-76 2,-3 8,27 11,67 4,39 5,73 3,76 -3,2 -8,-28 -12,-67 z" + id="path3" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1564,1450 c 0,-80 2,-112 3,-72 2,39 2,105 0,145 -1,39 -3,7 -3,-73 z" + id="path4" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1534,1410 c 0,-63 1,-89 3,-57 2,31 2,83 0,115 -2,31 -3,5 -3,-58 z" + id="path5" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1590,1410 c 0,-51 3,-91 6,-87 7,7 6,168 -1,175 -3,3 -5,-37 -5,-88 z" + id="path6" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1507,1358 c -3,-23 -2,-48 2,-55 3,-7 8,12 9,42 3,65 -3,72 -11,13 z" + id="path7" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1542,1288 c -12,-16 -22,-166 -11,-170 4,-2 13,-32 18,-68 l 10,-65 -5,68 -5,67 h 34 33 l -2,-62 -3,-63 11,74 c 8,59 8,75 -3,82 -7,4 -17,5 -22,2 -5,-3 -8,23 -6,58 4,66 -3,89 -25,89 -8,0 -18,-6 -24,-12 z" + id="path8" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1591,1059 c 0,-30 4,-74 9,-99 5,-31 6,-15 3,50 -6,105 -13,134 -12,49 z" + id="path9" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1573,1035 c 0,-38 2,-53 4,-32 2,20 2,52 0,70 -2,17 -4,1 -4,-38 z" + id="path10" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1625,990 c -4,-34 -5,-63 -2,-66 3,-3 8,22 12,56 4,34 5,63 2,66 -3,3 -8,-22 -12,-56 z" + id="path11" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1611,888 c 0,-16 -8,-29 -19,-33 -17,-5 -18,-14 -14,-80 3,-52 1,-75 -7,-75 -6,0 -11,-10 -11,-21 0,-19 4,-21 35,-16 19,3 35,2 35,-4 0,-5 9,-1 20,8 13,11 16,21 10,27 -6,6 -11,33 -12,61 l -1,50 -8,-55 -7,-55 1,70 c 0,39 -3,77 -6,85 -3,8 -8,26 -10,40 -4,25 -4,25 -6,-2 z m 48,-202 c -12,-10 -79,-16 -79,-6 0,5 19,10 42,10 23,0 39,-2 37,-4 z" + id="path12" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1537,853 c -4,-21 -9,-83 -12,-138 -4,-55 -11,-113 -15,-128 -6,-17 -6,-25 0,-22 6,4 10,13 10,21 0,8 5,14 10,14 13,0 13,-27 0,-35 -6,-4 -8,-23 -5,-43 l 5,-37 -15,30 c -12,26 -14,27 -15,8 0,-12 5,-25 10,-28 6,-3 11,-18 11,-33 l 2,-27 5,25 c 4,20 6,22 11,8 3,-10 7,13 8,50 1,37 -3,81 -9,99 -9,24 -9,61 0,149 12,112 11,165 -1,87 z" + id="path13" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1503,685 c 0,-44 2,-61 4,-37 2,23 2,59 0,80 -2,20 -4,1 -4,-43 z" + id="path14" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1546,645 c 4,-11 11,-60 15,-110 l 7,-90 -2,97 c -1,69 -5,101 -15,110 -12,11 -13,10 -5,-7 z" + id="path15" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1587,585 c 2,-33 3,-71 3,-84 0,-14 2,-22 5,-19 3,3 7,43 9,89 3,62 2,71 -3,34 l -7,-50 -6,45 c -3,29 -4,23 -1,-15 z" + id="path16" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1644,636 c -3,-7 -4,-35 -2,-62 l 3,-49 5,63 c 5,63 4,73 -6,48 z" + id="path17" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1660,568 c -3,-31 -1,-53 3,-49 5,5 7,30 5,57 l -3,49 z" + id="path18" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1513,290 c 0,-41 2,-58 4,-37 2,20 2,54 0,75 -2,20 -4,3 -4,-38 z" + id="path19" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1756,1418 c -17,-54 -16,-68 4,-68 16,0 20,7 20,34 0,35 -17,58 -24,34 z" + id="path20" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1687,1413 c -4,-3 -7,-19 -7,-35 0,-21 5,-28 20,-28 20,0 26,22 14,54 -7,17 -16,20 -27,9 z" + id="path21" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1817,1413 c -2,-4 -7,-20 -11,-34 -5,-21 -2,-28 14,-32 16,-4 20,0 22,19 0,13 1,29 2,36 1,13 -20,23 -27,11 z" + id="path22" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1217,1304 c -4,-4 -7,-25 -7,-46 0,-32 3,-38 21,-38 18,0 20,5 17,42 -3,39 -16,57 -31,42 z" + id="path23" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1137,1287 c -10,-25 5,-68 22,-65 9,2 16,9 15,16 -1,6 -2,23 -2,37 -2,26 -26,35 -35,12 z" + id="path24" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1742,808 c -7,-7 -12,-32 -12,-56 0,-43 0,-43 33,-40 29,3 32,6 35,41 5,55 -26,85 -56,55 z m 42,-40 c 8,-6 7,-8 -1,-8 -7,0 -14,-10 -14,-22 -1,-21 -2,-21 -6,-3 -3,11 -10,23 -17,27 -8,6 -7,8 2,8 6,0 13,10 13,23 1,20 2,20 6,2 3,-11 10,-23 17,-27 z" + id="path25" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1623,325 c 0,-33 2,-45 4,-27 2,18 2,45 0,60 -2,15 -4,0 -4,-33 z" + id="path26" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + id="path27" + d="m 1546.3714,2899.028 c -1.4278,-0.1532 -2.2894,-1.0012 -2.6272,-2.4971 0.8682,0.4571 1.8704,1.0124 3.1801,1.8765 0.1835,0.1209 0.2539,-0.4842 0.3792,-0.7302 0.1968,-0.3864 0.3416,-0.6777 0.4889,-0.9711 0.2815,0.5748 0.6242,1.0882 1.0052,1.4895 0.1536,0.1618 0.3243,0.2783 0.4889,0.4089 -1.1133,0.3252 -2.1077,0.5072 -2.8876,0.4235 z m 20.2456,-10.9305 c 0.026,-0.056 0.048,-0.1122 0.073,-0.168 0.016,0.026 0.033,0.049 0.05,0.073 -0.04,0.03 -0.083,0.065 -0.1234,0.095 z m 0.4935,-12.6611 c 0.1222,-0.4909 0.2551,-0.9751 0.3746,-1.4677 0.099,0.1112 0.2018,0.2053 0.3016,0.314 -0.2329,0.3782 -0.4597,0.7622 -0.6762,1.1537 z m -12.6792,-7.9369 c 0,-0.026 -0.01,-0.054 -0.01,-0.08 0.2026,0.018 0.4,0.094 0.2833,0.08 -0.091,-0.011 -0.1829,0 -0.2741,0 z m 28.5613,-6.1772 0.036,-0.066 c 0.047,-0.013 0.094,-0.023 0.1416,-0.037 -0.059,0.034 -0.1191,0.067 -0.1781,0.1022 z m 28.6206,-21.1237 c 0.1124,-0.1435 0.2301,-0.2778 0.3473,-0.4162 -0.105,0.1465 -0.2304,0.2775 -0.3473,0.4162 z m 7.3014,-5.6004 c -0.01,-0.028 0,-0.023 0,-0.022 l 0.01,0.01 v 0.015 z m -26.2356,-6.6518 c 0.3105,-0.7533 0.7065,-1.4437 1.1697,-2.081 -0.3899,0.6934 -0.7811,1.3857 -1.1697,2.081 z m 37.1146,-43.8319 c -0.7283,-0.2375 -1.4504,-0.476 -2.2343,-0.6936 0.7499,0.19 1.4947,0.4204 2.2343,0.6936 z m -59.7178,-9.6381 c -0.6455,-0.073 -1.3136,-0.1711 -2.0241,-0.2994 -0.9544,-0.1724 -1.9033,-0.4001 -2.8465,-0.6791 1.6229,0.3372 3.2455,0.6699 4.8706,0.9785 z m 30.8595,-12.9094 c -0.7545,-0.116 -1.5138,-0.2093 -2.2708,-0.3212 0.5806,0.077 1.14,0.141 1.9967,0.2774 0.091,0.015 0.1828,0.029 0.2741,0.044 z m -3.6141,-0.5111 c -2.9376,-0.3008 -5.8684,-0.6886 -8.8001,-1.1098 -0.5558,-0.08 -1.11,-0.1782 -1.6631,-0.2921 l 3.1755,0.3505 c 2.4414,0.2929 4.8539,0.7005 7.2877,1.0514 z" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1382,1750 c -1,-69 2,-120 7,-115 4,6 5,62 1,125 l -7,115 z" + id="path28" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1400,1818 c 0,-29 5,-60 10,-68 7,-11 10,3 10,47 0,34 -4,65 -10,68 -6,4 -10,-14 -10,-47 z" + id="path29" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1432,1797 c -2,-56 -5,-76 -14,-71 -7,4 -8,3 -4,-5 12,-19 26,-2 26,30 0,18 4,28 10,24 13,-8 13,8 1,21 -5,5 -11,25 -14,44 -2,19 -5,0 -5,-43 z" + id="path30" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1376,1594 c -6,-15 -4,-15 11,-3 15,11 16,11 6,-1 -7,-8 -13,-23 -14,-34 0,-21 0,-21 -10,-1 -6,14 -8,6 -4,-27 5,-39 2,-51 -14,-67 -12,-12 -21,-31 -20,-43 1,-22 1,-22 9,2 8,25 8,25 10,-5 2,-29 3,-29 9,-5 6,23 31,41 31,21 0,-11 48,-2 56,11 4,5 1,15 -5,21 -6,6 -10,36 -10,67 2,50 2,52 9,20 7,-32 7,-33 9,-7 0,16 -4,37 -9,48 -13,23 -55,25 -64,3 z m 47,-145 c -7,-7 -21,-7 -44,-1 l -34,10 45,1 c 31,1 41,-2 33,-10 z" + id="path31" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1372,1398 c 3,-15 1,-29 -4,-30 -6,-2 -8,-15 -6,-28 2,-21 5,-19 17,18 12,35 12,45 1,55 -10,10 -12,7 -8,-15 z" + id="path32" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1357,1257 c -7,-52 2,-145 15,-153 5,-3 7,5 4,18 -13,56 -15,99 -7,120 6,17 9,6 9,-40 0,-35 3,-66 7,-70 4,-4 5,14 3,41 -3,26 -1,47 4,47 4,0 9,-26 9,-57 1,-32 4,-49 6,-39 8,32 -8,167 -19,160 -6,-4 -14,-1 -18,5 -4,7 -10,-7 -13,-32 z" + id="path33" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1330,1235 c -3,-21 -2,-24 10,-95 5,-32 8,-36 8,-15 0,41 -15,135 -18,110 z" + id="path34" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + id="path35" + d="m 1269.2465,1098.8439 c -0.28,0.063 -0.677,0.03 -1.1983,-0.091 -2.5019,-0.5801 -7.7965,-3.2565 -16.0465,-7.7565 -22,-12 -23.0024,-16.9999 -21.0024,-99.99985 2,-48 -0.9986,-92.00037 -3.9986,-99.00037 -8,-11 4.9989,-40.99677 30.9989,-72.99677 8,-11 12.0002,-34.00323 9.0002,-60.00323 -3,-37 -5.0024,-39.99782 -12.0024,-20.99782 -6,18 -9.9944,20.00329 -15.9944,10.00329 -6,-10 -9.0001,-8.00348 -9.0001,6.99652 0,17 -2.006,18.00578 -11.006,5.00578 -8,-11 -8.9986,-8.00646 -3.9986,12.99354 4,19 1.9985,26.00559 -5.0015,22.00559 -7,-4 -9.9965,25.9931 -9.9965,96.9931 1,167.00002 -3.9989,201.00552 -30.9989,205.00552 -21,3 -22.0045,1.9992 -6.0045,-15.0008 14,-16 17.0039,-42.9976 17.0039,-170.99764 V 758.99628 l 45.0006,-26.99484 c 60,-36 60,-63.00546 0,-122.00546 -24,-24 -42.0027,-46.99894 -39.0027,-51.99894 3,-4 -1.9965,-4.99901 -9.9965,-1.99901 -27,10 -18.004,-17.99608 29.996,-90.99608 41,-64 44.9991,-74.00117 39.9991,-114.00117 -3,-24 -5.9979,-60.00155 -5.9979,-80.00155 0,-27 -2.9965,-31.99782 -9.9965,-20.99782 -1.6563,2.76047 -3.1436,4.77405 -4.448,6.1457 -0.2787,-1.35328 -0.4432,-2.73298 -0.3907,-4.1467 0.2619,-5.63335 1.1627,-11.20751 2.3249,-16.65288 1.3116,-5.23629 2.411,-10.54197 3.2692,-15.92596 0.8221,-5.23485 1.0165,-10.56494 1.1527,-15.88467 0.016,-0.80515 0.036,-1.61465 0.052,-2.42028 0.048,-2.36262 -0.021,-4.58296 -0.1498,-6.72393 2.2831,-8.90932 6.4842,-16.37979 11.1883,-18.39581 8,-3 4.997,-10.99634 -10.003,-23.99634 -31,-27 -28.997,-38.99993 10.003,-49.99993 82,-25.000008 117.0015,-24.001994 117.0015,3.99801 0,8 6.9945,26.0054 15.9945,39.0054 15,23 15.0004,23.99286 -19.9996,30.99286 -20,3 -36.0004,10.0008 -36.0004,15.0008 0,12 -33.997,11.0005 -45.997,-0.9995 -19,-19 -29.9975,6.00422 -25.9975,58.00422 4,56 17.9946,69.99633 24.9946,23.99633 2,-15 4.0015,-3.99491 5.0015,23.00509 0,37 -1.9972,44.99336 -7.9972,29.99336 -7,-16 -9.0038,-12.00069 -8.0038,17.99931 2,24 7.001,37.0064 16.001,37.0064 11,0 13.0037,8.00012 8.0037,33.00012 -19,91 -19,108.99739 0,104.99739 12,-2 31.9942,-31.00354 53.9942,-76.00354 23,-46 41.0014,-71.99726 52.0014,-71.99726 29,0 27.0028,22.99807 -7.9972,86.99807 l -32.9983,61.00273 23.9982,16.00031 23.9981,16.00031 3.9986,-48.00093 4.0051,-47.00143 v 51.99894 c -1,29 4.9988,58.99925 12.9988,67.99925 12,15 10.9962,18.99963 -8.0038,33.99963 -24,18 -19.9998,31.00112 9.0002,31.00112 13,0 17.0016,-5.99783 14.0016,-20.99783 -3,-13 0,-19.00031 7.9972,-16.00031 7,2 12.0023,11.99683 12.0023,22.99683 0,15 -7.9984,20.00559 -41.9984,22.00559 -40,3 -42.0035,4.99664 -46.0035,39.99664 l -3.9986,36.99814 -0.9964,-38.99714 c -2,-39 -1.9997,-39.00012 -37.9997,-33.00012 -20,3 -38.0056,8.00329 -40.0056,10.00329 -2,2 0,27.99645 5.0015,56.99645 5,31 5,81.00068 0,115.00068 -8,57 -6.996,63.00347 26.004,126.00347 19,37 30.9967,68.99681 27.9967,72.99681 -4,3 -24.9963,-26.0008 -47.9963,-65.00078 -23,-38 -48.0036,-76.00056 -55.0036,-82.00056 -8,-7 -5.9978,3.1e-4 3.0022,16.00031 13,20 15.0008,32.00192 7.0008,46.00192 -17,32 -12.0028,111.99951 7.9972,133.99951 9.2969,10.3906 13.2074,15.4015 11.2469,15.8434 z m 77.7514,-459.84581 c 34,1 41.0027,-2.00031 39.0027,-16.00031 -2,-10 1.9972,-20.99583 7.9972,-24.99583 6,-5 1.0013,-8.00429 -12.9987,-8.00429 -13,0 -22.0003,3.00528 -18.0003,6.00528 8,9 -14.9961,30.99813 -38.9961,36.99813 -10,2 0,4.99702 22.9952,5.99702 z m -21.3736,-39.99664 c 5.125,-0.25 13.3737,-4.5018 30.3737,-13.0018 15,-8 31.9998,-11.99553 37.9998,-8.99553 6,3 1.0042,-5.00708 -11.9958,-19.00708 -16,-18 -30.0036,-23.99782 -55.0036,-20.99782 -30,2 -30.0008,2.00347 -7.0008,-6.99653 22,-9 20.9998,-9.00577 -9.0002,-5.00577 -18,3 -57.9982,5.00577 -88.9982,5.00577 -85,0 -58.0001,7.99354 46.9999,12.99354 51,3 97.9992,9.99982 104.9992,16.99982 8,9 3.9997,10.00627 -18.0003,4.00627 -24,-6 -27.9952,-4.00447 -22.9952,8.99553 4,12 1.997,14.00329 -10.003,10.00329 -11,-4 -14.0002,-2.00249 -9.0002,4.99751 4.5,7.5 6.4997,11.2528 11.6247,11.0028 z m -45.6258,-12.0023 c 24,0 24.0007,0.002 -1.9993,-3.99801 -14,-2 -31.9998,-10.99882 -37.9998,-18.99882 -7,-8 -17.9981,-14.0013 -23.9981,-14.0013 -6,0 -4.0014,4.99503 3.9986,9.99503 13,8 11.9984,10.00279 -5.0016,11.00279 -27,2 32.0002,17.00031 65.0002,16.00031 z m -44.4992,-68.83355 c 19.9065,-0.13649 24.4996,-4.28902 24.4996,-19.16402 0,-11 -4.9994,-30.00441 -10.9994,-41.00441 -7,-13 -7,-17.99304 0,-13.99304 15,9 31.9996,-27.00242 19.9996,-45.00242 -8,-13 -9.0002,-11.99969 -9.0002,16.00031 0,3 -8.9966,13.99633 -18.9966,23.99633 -11,11 -27.0041,33.00043 -35.0041,49.00043 l -14.998,29.00211 34.9976,0.99951 c 3.5,0.125 6.6578,0.1847 9.5015,0.1652 z m 97.7314,-11.31668 c 0.346,0.0836 0.7319,0.0813 1.1592,0 5.3184,-1.01172 16.8575,-14.84647 32.6075,-42.84647 13,-21 21.0003,-44.99894 18.0003,-51.99894 -3,-8 0,-10.00528 6.0044,-6.00528 7,4 9.9972,2.00248 7.9972,-4.99752 -8,-24 -21.0021,-10.99956 -50.0021,49.00044 -16.875,35.85937 -20.9563,55.59338 -15.7665,56.84777 z M 1186.0833,251.87651 c -0.023,-0.06 -0.045,-0.12125 -0.065,-0.18173 0.025,0.0464 0.05,0.0922 0.072,0.14042 -10e-5,0.0139 -0.01,0.0274 -0.01,0.0413 z m 115.1716,-75.16924 c 20.4199,-0.66407 49.8689,-6.20393 61.7439,-13.70393 4,-2 4.9993,-8.00181 1.9993,-13.00181 -7,-11 -84.9996,9.99733 -84.9996,21.99733 0,3.75 9.0045,5.10684 21.2564,4.70841 z m -31.4353,-25.53276 c 27.4221,-1.645 80.1805,-14.75669 80.1805,-23.17856 0,-11 -18.0008,-9.99323 -63.0008,3.00677 -21,5 -34.9983,13.99931 -32.9983,17.99931 0.75,1.125 2.813,1.81086 5.8481,2.13117 2.6558,0.28028 6.0531,0.2763 9.9705,0.0413 z m -34.8217,-22.1708 c 11,0 38.0051,-7.00081 60.0051,-15.00081 l 39.9991,-14.0013 -44.0042,5.99702 c -48,5 -93,24.00509 -56,23.00509 z" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1342,924 c -1,-15 3,-24 13,-24 18,0 20,24 2,38 -10,8 -13,5 -15,-14 z" + id="path36" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1325,864 c -9,-9 -14,-23 -11,-31 3,-8 6,-17 6,-19 0,-2 7,-4 15,-4 9,0 15,10 16,23 1,21 1,21 8,-3 5,-16 13,-24 24,-22 13,2 17,-5 17,-33 0,-35 0,-35 -42,-34 -24,1 -35,3 -25,6 20,5 23,39 3,46 -9,4 -16,-3 -20,-19 -9,-36 0,-44 51,-44 h 45 l -4,55 c -7,80 -45,116 -83,79 z" + id="path37" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1431,821 c 1,-28 6,-48 10,-45 12,7 11,81 -1,89 -6,4 -9,-14 -9,-44 z" + id="path38" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1360,770 c 0,-11 7,-20 15,-20 8,0 15,9 15,20 0,11 -7,20 -15,20 -8,0 -15,-9 -15,-20 z" + id="path39" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1422,715 c -16,-54 -15,-64 4,-37 8,12 14,35 12,50 -4,25 -5,24 -16,-13 z" + id="path40" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1428,435 c 2,-72 6,-132 8,-134 7,-8 2,153 -6,209 -5,34 -6,6 -2,-75 z" + id="path41" + style="stroke-width:25.5846;stroke-dasharray:none" /><path + d="m 1454,305 c 0,-60 1,-84 3,-52 2,32 2,81 0,110 -2,29 -3,3 -3,-58 z" + id="path42" + style="stroke-width:25.5846;stroke-dasharray:none" /></g><path + style="fill:#ffffff;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" + id="path146" + d="m 66.86156,115.5964 c -0.23684,-0.0397 -0.472943,-0.0811 -0.706797,-0.12965 -0.266577,-0.0498 -0.521614,-0.1273 -0.784448,-0.18637 -0.181058,-0.0377 -0.357128,-0.0875 -0.537262,-0.12687 -0.116613,-0.0322 -0.232529,-0.0658 -0.352847,-0.0896 -0.198366,-0.0321 -0.394279,-0.0702 -0.590418,-0.10899 -0.261794,-0.0567 -0.527422,-0.10358 -0.793457,-0.14782 -0.312408,-0.0505 -0.625986,-0.097 -0.938496,-0.14714 -0.259428,-0.0331 -0.51374,-0.084 -0.772656,-0.11882 -0.241141,-0.0248 -0.478889,-0.0639 -0.7192,-0.0923 -0.15199,-0.0146 -0.303896,-0.0262 -0.455242,-0.0441 0,0 0.01066,0.006 0.01066,0.006 v 0 c 0.151339,0.0179 0.303239,0.0299 0.455204,0.0441 0.240298,0.0284 0.478052,0.0674 0.71918,0.0923 0.258884,0.0349 0.513209,0.0857 0.772617,0.11881 0.312518,0.0501 0.626095,0.0967 0.93849,0.14716 0.265992,0.0444 0.531631,0.0911 0.793407,0.14785 0.196173,0.0388 0.392152,0.0771 0.590533,0.10914 0.120282,0.0238 0.236161,0.0576 0.352823,0.0896 0.180051,0.0396 0.356185,0.0889 0.537162,0.12686 0.26282,0.0592 0.517899,0.13668 0.784498,0.18637 0.233904,0.0485 0.47004,0.0898 0.706922,0.12951 z" + clip-path="url(#clipPath1263)" + transform="translate(-6.2125015,0.73088253)" /><path + style="fill:#ffffff;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" + id="path147" + d="m 63.516352,141.15431 c 0.133341,0.17837 0.304463,0.33844 0.449588,0.51109 0.100719,0.11735 0.19641,0.23717 0.282556,0.36083 0,0 0.01206,0.003 0.01206,0.003 v 0 c -0.08608,-0.12365 -0.181806,-0.24344 -0.282525,-0.36091 -0.144966,-0.17269 -0.316254,-0.33265 -0.449502,-0.51101 z" + clip-path="url(#clipPath1262)" + transform="translate(-6.2125015,0.73088253)" /><path + style="fill:#ffffff;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" + id="path148" + d="m 63.1799,140.79499 c 0.207336,0.15195 0.35678,0.33827 0.520785,0.51533 0.142694,0.16452 0.300201,0.32297 0.478178,0.46749 0.09331,0.065 0.187334,0.12745 0.298866,0.17451 0.0154,0.004 0.03089,0.008 0.04631,0.0146 0,0 -0.01066,-0.006 -0.01066,-0.006 v 0 c -0.0154,-0.004 -0.03082,-0.008 -0.04622,-0.0146 -0.104033,-0.0431 -0.187076,-0.1065 -0.276034,-0.16437 -0.178136,-0.14445 -0.335639,-0.30291 -0.478354,-0.4674 -0.164027,-0.17703 -0.313356,-0.36342 -0.520551,-0.51545 z" + clip-path="url(#clipPath1261)" + transform="translate(-6.2125015,0.73088253)" /><path + style="fill:#ffffff;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" + id="path149" + d="m 46.924925,161.3955 c 0.08197,0.20533 0.139438,0.41533 0.203218,0.62402 0.02893,0.1024 0.01282,0.054 0.04719,0.14561 0,0 0.01206,0.003 0.01206,0.003 v 0 c -0.03452,-0.0917 -0.01834,-0.0432 -0.04729,-0.14562 -0.06383,-0.20869 -0.121323,-0.41869 -0.203125,-0.62403 z" + clip-path="url(#clipPath1260)" + transform="translate(-6.2125015,0.73088253)" /><path + style="fill:#ffffff;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" + id="path150" + d="m 46.244861,161.33032 c 0.161718,0.10226 0.338457,0.19054 0.499626,0.29322 0.133184,0.0951 0.24284,0.20579 0.336932,0.32329 0.04837,0.055 0.08531,0.11456 0.121463,0.17441 0,0 0.01219,0.003 0.01219,0.003 v 0 c -0.03609,-0.0599 -0.07297,-0.11939 -0.121398,-0.17452 -0.09402,-0.11764 -0.203682,-0.22847 -0.336761,-0.3236 -0.161067,-0.10283 -0.337873,-0.19084 -0.499601,-0.29321 z" + clip-path="url(#clipPath1259)" + transform="translate(-6.2125015,0.73088253)" /><path + style="fill:#000000;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" + id="path159" + d="m 108.05184,169.03115 c -0.36246,0.15504 -0.6806,0.35665 -0.98488,0.56788 -0.18489,0.12437 -0.35539,0.2599 -0.53987,0.38446 -0.0178,0.0132 -0.23187,0.14923 -0.25921,0.16678 -0.14642,0.0941 -0.30264,0.18138 -0.48091,0.23931 -0.0566,0.0214 -0.11641,0.0392 -0.16519,0.07 0,0 0.0114,0.004 0.0114,0.004 v 0 c 0.0487,-0.0307 0.10828,-0.0485 0.16477,-0.0698 0.1782,-0.0581 0.33436,-0.14533 0.48091,-0.23967 0.0265,-0.0172 0.24137,-0.15481 0.25922,-0.16684 0.1845,-0.12452 0.3551,-0.26006 0.53978,-0.38447 0.30422,-0.2113 0.62243,-0.41286 0.98511,-0.56762 z" + clip-path="url(#clipPath1253)" + transform="translate(-6.2125015,0.73088253)" /><path + d="m 135.53096,140.68105 c 0.0295,0.0498 0.0794,0.13384 0.13202,0.21822 0.0338,0.0542 0.0757,0.1198 0.12277,0.1889 0.0351,0.0516 0.0758,0.10914 0.12133,0.16894 0.0363,0.0477 0.0772,0.0989 0.12253,0.15129 0.0371,0.0429 0.0781,0.0876 0.12294,0.13261 0.003,0.003 0.005,0.005 0.008,0.008 0.0384,0.0382 0.0837,0.0806 0.1353,0.12399 0.0269,0.0226 0.0566,0.0464 0.089,0.0707 0.004,0.003 0.009,0.007 0.0146,0.0113 0.008,0.006 0.0156,0.0124 0.0255,0.0204 0.0164,0.0132 0.0369,0.0296 0.0582,0.0457 0.0119,0.009 0.0253,0.0188 0.0399,0.0288 0.0107,0.007 0.0229,0.0154 0.0364,0.0236 0.0104,0.006 0.0225,0.0132 0.036,0.0201 0.0105,0.005 0.0232,0.0113 0.0377,0.017 0.006,0.002 0.0121,0.005 0.019,0.007 0.0126,0.004 0.0208,0.006 0.0226,0.007 0.007,0.002 0.0123,0.003 0.017,0.004 0.009,0.002 0.0158,0.004 0.022,0.006 0.004,0.001 0.006,0.002 0.007,0.002 0.001,3.9e-4 -0.001,-2.2e-4 -0.007,-0.003 -0.002,-8.2e-4 -0.0131,-0.006 -0.0269,-0.0149 -0.0105,-0.007 -0.0209,-0.0142 -0.03,-0.0229 -0.009,-0.009 -0.0169,-0.0186 -0.0245,-0.0287 0.0124,0.0166 0.0255,0.0319 0.0389,0.046 0.0142,0.015 0.0286,0.0284 0.0422,0.0402 0.0159,0.0137 0.0312,0.0258 0.0443,0.0358 0.013,0.01 0.0265,0.0198 0.0395,0.0297 0.009,0.007 0.0159,0.0123 0.0219,0.0174 0.005,0.005 0.01,0.009 0.0134,0.0122 0.004,0.004 0.007,0.007 0.009,0.0103 0.002,0.002 0.003,0.004 0.005,0.006 l -0.008,-0.0126 c -0.0118,-0.0194 -0.0174,-0.036 -0.0197,-0.0437 -0.003,-0.01 -0.004,-0.017 -0.005,-0.0189 -4.7e-4,-0.003 -5.1e-4,-0.004 -2.2e-4,-9.4e-4 3.1e-4,0.003 8.7e-4,0.0108 0.002,0.0226 7.8e-4,0.007 0.002,0.0178 0.004,0.0302 0.002,0.0101 0.005,0.0251 0.0113,0.0424 0.006,0.0194 0.0143,0.0416 0.0224,0.0633 0.006,0.0163 0.0123,0.0322 0.0183,0.0473 0.005,0.0127 0.01,0.0245 0.0142,0.0353 0.004,0.01 0.007,0.0178 0.01,0.0251 0.003,0.008 0.004,0.0123 0.005,0.0156 7.5e-4,0.003 9.3e-4,0.004 8.7e-4,0.003 -3e-4,2e-4 -5.9e-4,0.003 -0.001,0.008 -9.2e-4,0.005 -0.002,0.0118 -0.004,0.0193 -0.002,0.009 -0.005,0.0187 -0.008,0.0285 -0.004,0.0133 -0.008,0.0264 -0.0122,0.0385 a 0.23300209,0.23300209 90 0 0 0.4421,0.14732 c 0.005,-0.0149 0.0109,-0.0333 0.0168,-0.0532 0.004,-0.0145 0.009,-0.0316 0.0137,-0.0503 0.004,-0.0149 0.008,-0.0327 0.0109,-0.0522 0.003,-0.0176 0.006,-0.0384 0.007,-0.0614 9.8e-4,-0.0175 0.001,-0.0368 -2.6e-4,-0.0573 -0.001,-0.0165 -0.003,-0.0333 -0.006,-0.0501 -0.003,-0.0185 -0.008,-0.0358 -0.0123,-0.0519 -0.005,-0.0177 -0.0108,-0.0337 -0.0159,-0.0473 -0.005,-0.013 -0.01,-0.0252 -0.014,-0.0358 -0.005,-0.0121 -0.009,-0.0235 -0.0138,-0.0342 -0.005,-0.0129 -0.0101,-0.0256 -0.0148,-0.0381 -0.006,-0.0166 -0.0122,-0.0334 -0.0179,-0.0505 0.003,0.008 0.005,0.0169 0.005,0.0202 9.9e-4,0.005 0.001,0.007 0.001,0.006 -1.2e-4,-0.001 -5.7e-4,-0.007 -0.002,-0.0167 -6.2e-4,-0.006 -0.002,-0.0168 -0.004,-0.0287 -0.002,-0.01 -0.004,-0.0245 -0.01,-0.0416 -0.004,-0.0146 -0.0126,-0.0376 -0.028,-0.0629 -0.003,-0.005 -0.007,-0.0108 -0.0105,-0.016 -0.007,-0.0102 -0.0148,-0.0201 -0.0228,-0.0298 -0.0132,-0.0162 -0.027,-0.0313 -0.0412,-0.0455 -0.0138,-0.0138 -0.0277,-0.0264 -0.0412,-0.0378 -0.0145,-0.0123 -0.0286,-0.0233 -0.0412,-0.0329 -0.0131,-0.01 -0.0262,-0.0195 -0.0394,-0.0296 -0.009,-0.007 -0.0159,-0.0124 -0.0212,-0.017 -0.004,-0.004 -0.007,-0.007 -0.01,-0.009 -0.002,-0.002 -0.003,-0.004 -0.004,-0.005 -0.008,-0.0111 -0.017,-0.0221 -0.0272,-0.0316 -0.0101,-0.01 -0.0216,-0.0175 -0.0332,-0.0252 -0.0179,-0.0119 -0.0338,-0.0192 -0.0391,-0.0216 -0.015,-0.007 -0.0272,-0.011 -0.034,-0.0134 -0.0106,-0.004 -0.0199,-0.006 -0.0273,-0.009 -0.0127,-0.004 -0.0246,-0.007 -0.0344,-0.009 -0.006,-0.002 -0.0108,-0.003 -0.0149,-0.004 -0.004,-0.001 -0.002,-6.3e-4 1.6e-4,1.1e-4 0.006,0.002 0.007,0.002 0.008,0.003 0.002,9.7e-4 0.003,0.001 0.002,0.001 -8.4e-4,-4.3e-4 -0.003,-0.001 -0.006,-0.003 -0.004,-0.002 -0.008,-0.005 -0.0137,-0.009 -0.007,-0.005 -0.0147,-0.0104 -0.0229,-0.0166 -0.0149,-0.0113 -0.0303,-0.0236 -0.047,-0.037 -0.009,-0.007 -0.0186,-0.0149 -0.0284,-0.0227 -0.008,-0.006 -0.0156,-0.0123 -0.0241,-0.0186 -0.025,-0.0187 -0.0478,-0.037 -0.0687,-0.0546 -0.0401,-0.0337 -0.0758,-0.0671 -0.10674,-0.0979 -0.002,-0.002 -0.004,-0.004 -0.006,-0.006 -0.0361,-0.0362 -0.0697,-0.0728 -0.10063,-0.10859 -0.0378,-0.0437 -0.0726,-0.0872 -0.10404,-0.1285 -0.0395,-0.0519 -0.0754,-0.10257 -0.107,-0.14906 -0.0424,-0.0623 -0.0808,-0.12237 -0.11261,-0.1733 -0.0495,-0.0794 -0.0971,-0.15944 -0.12632,-0.20885 a 0.23300209,0.23300209 90 0 0 -0.40106,0.2373 z" + id="path-1" + inkscape:path-effect="#path-effect171;#path-effect172" + inkscape:original-d="m 135.73149,140.5624 c 0.21544,0.36411 0.45099,0.73822 0.7922,0.99414 0.0534,0.04 0.14062,0.11936 0.20194,0.1398 0.0157,0.005 0.0852,0.0204 0.0932,0.0311 0.0603,0.0803 0.15042,0.10807 0.21747,0.20193 0.0122,0.017 0.008,0.0563 0.0155,0.0777 0.0735,0.22038 0.12069,0.21266 0.0466,0.43494" + style="fill:#ffffff;fill-rule:nonzero;stroke:#ffffff;stroke-width:1.64787;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(1.3572309,0,0,1.0075839,-58.289281,-4.3350325)" + clip-path="url(#clipPath1252)" /><path + style="fill:#000000;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" + id="path192" + d="m 130.36716,135.26594 c 0.14701,0.19505 0.29419,0.38946 0.45486,0.57847 0.1336,0.14636 0.26835,0.29152 0.39424,0.44158 0.16637,0.18422 0.3162,0.3761 0.47081,0.56576 0.1565,0.19293 0.3086,0.38636 0.44328,0.58825 0.20204,0.32538 0.39036,0.65529 0.59462,0.97994 0.10562,0.17431 0.20505,0.35133 0.29192,0.53132 0.0436,0.11675 0.0889,0.23305 0.12593,0.351 0.0626,0.18176 -0.0739,0.20303 -0.28263,0.23193 -0.28363,0.0375 -0.55367,-0.0316 -0.82467,-0.0841 -0.14465,-0.0288 -0.28937,-0.0576 -0.43475,-0.0845 0,0 0.53028,0.30098 0.53028,0.30098 v 0 c 0.14346,0.0266 0.28656,0.054 0.42948,0.0822 0.27949,0.0547 0.55722,0.11573 0.84769,0.0679 0.2343,-0.0425 0.39805,-0.0948 0.33893,-0.29834 -0.0353,-0.1197 -0.0825,-0.23717 -0.12212,-0.35607 -0.0852,-0.18353 -0.19595,-0.36061 -0.29792,-0.53912 -0.20993,-0.323 -0.40275,-0.65181 -0.59536,-0.98064 -0.0273,-0.0425 -0.12238,-0.19413 -0.15808,-0.24334 -0.0861,-0.11866 -0.19535,-0.22763 -0.27841,-0.34766 -0.15452,-0.18933 -0.30251,-0.38166 -0.46867,-0.56555 -0.12453,-0.15109 -0.25485,-0.29871 -0.39451,-0.44235 -0.16103,-0.18715 -0.31367,-0.37743 -0.45274,-0.57417 z" + clip-path="url(#clipPath1251)" + transform="translate(-6.2125015,0.73088253)" /><path + style="fill:#000000;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" + id="path193" + d="m 131.97657,139.50486 c 0.19757,-0.2437 0.38607,-0.49181 0.53099,-0.75543 0.074,-0.17871 0.0114,-0.30381 -0.11996,-0.45218 -0.14208,-0.13376 -0.22909,-0.29234 -0.32777,-0.44452 -0.12491,-0.19208 -0.25022,-0.38366 -0.40451,-0.56379 -0.20431,-0.25717 -0.43778,-0.50043 -0.65912,-0.7496 -0.11679,-0.1276 -0.23235,-0.25582 -0.35239,-0.3818 0,0 -0.60852,-0.19561 -0.60852,-0.19561 v 0 c 0.12466,0.1254 0.24218,0.25428 0.36167,0.38242 0.21811,0.24717 0.44919,0.48818 0.64617,0.74492 0.15709,0.1784 0.29217,0.36522 0.41116,0.55937 0.0996,0.15192 0.17682,0.31573 0.31927,0.44963 0.12748,0.13464 0.21517,0.23895 0.15412,0.41105 -0.13479,0.26309 -0.32063,0.50938 -0.53062,0.74345 z" + clip-path="url(#clipPath1250)" + transform="translate(-6.2125015,0.73088253)" /><path + style="fill:#000000;stroke:#000000;stroke-width:0.509864;stroke-dasharray:none;stroke-opacity:1" + id="path194" + d="m 130.78821,135.3877 c 0.18608,0.12306 0.34799,0.25889 0.46583,0.42216 0.0679,0.0989 0.1326,0.19857 0.20532,0.29555 0.0744,0.10225 0.1557,0.20127 0.22019,0.30722 0.0781,0.13112 0.15905,0.26126 0.23738,0.39226 0.12695,0.20892 0.25007,0.41854 0.35598,0.63388 0.0879,0.15533 0.14287,0.31842 0.20304,0.48026 0.047,0.11427 0.0914,0.22891 0.13873,0.34304 0.0716,0.16627 0.13202,0.33504 0.19951,0.50225 0,0 0.60168,0.21113 0.60168,0.21113 v 0 c -0.0701,-0.16578 -0.12826,-0.33409 -0.19457,-0.50076 -0.048,-0.11369 -0.0904,-0.22829 -0.13952,-0.34165 -0.0619,-0.1636 -0.11743,-0.32905 -0.20729,-0.48592 -0.10486,-0.21552 -0.22525,-0.42591 -0.34913,-0.63557 -0.0795,-0.12994 -0.15648,-0.26055 -0.23539,-0.39072 -0.06,-0.10899 -0.14168,-0.20855 -0.2177,-0.31158 -0.0712,-0.0977 -0.14129,-0.19558 -0.20837,-0.29502 -0.11019,-0.16731 -0.26265,-0.31363 -0.45693,-0.43263 z" + clip-path="url(#clipPath1249)" + transform="translate(-6.2125015,0.73088253)" /><path + d="m 96.458666,82.466746 c 2e-5,4.2e-5 4.1e-5,8.7e-5 6.3e-5,1.32e-4 0.0012,0.0026 0.0026,0.0051 0.0045,0.0072 0.0019,0.0021 0.0043,0.0037 0.0069,0.005 0.0025,0.0013 0.0052,0.0023 0.0078,0.0034 0.0026,0.0011 0.0051,0.0025 0.0076,0.0039 0.0014,8.1e-4 0.0028,0.0016 0.0042,0.0023 0.0015,8.2e-4 0.003,0.0016 0.0045,0.0024 0.0023,0.0012 0.0026,0.0014 0.0049,0.0026 0.0021,0.0011 0.0042,0.0023 0.0063,0.0034 0.0022,0.0012 0.0044,0.0025 0.0066,0.0037 a 0.02561287,0.02561287 90 0 0 0.051,0.0048 c -3.2e-5,-6.3e-5 -6.5e-5,-1.28e-4 -9.9e-5,-1.95e-4 -0.0018,-0.0036 -0.0037,-0.0071 -0.0061,-0.01034 -0.0024,-0.0032 -0.0054,-0.006 -0.0085,-0.0084 -0.0064,-0.0049 -0.01361,-0.0085 -0.02054,-0.01256 -0.0024,-0.0014 -0.0049,-0.0028 -0.0073,-0.0041 -0.0022,-0.0012 -0.0045,-0.0024 -0.0067,-0.0036 -0.0013,-6.88e-4 -0.0036,-0.002 -0.0049,-0.0026 -0.0014,-7.74e-4 -0.0028,-0.0015 -0.0042,-0.0023 -0.0019,-0.0011 -0.0039,-0.0022 -0.0058,-0.0032 -0.0019,-0.0011 -0.004,-0.002 -0.006,-0.0028 -0.0016,-6.4e-4 -0.003,-0.0012 -0.0041,-0.0016 a 0.01630398,0.01630398 90 0 0 -0.02998,0.01282 z" + id="path-1-8" + inkscape:path-effect="#path-effect227;#path-effect228" + inkscape:original-d="m 96.472664,82.460083 c 6.89e-4,0.0014 8.21e-4,0.0032 0.0021,0.0041 0.0052,0.0038 0.01198,0.005 0.01757,0.0083 0.01573,0.0092 0.04855,0.02372 0.05684,0.04031" + style="fill:#008080;fill-rule:nonzero;stroke:none;stroke-width:1.64787;stroke-dasharray:none;stroke-opacity:1" + transform="matrix(1.3572309,0,0,1.0075839,-58.289281,-4.3350325)" + clip-path="url(#clipPath1243)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.755906;stroke-dasharray:none;stroke-opacity:1" + d="m 506.49471,527.29297 c -0.004,-0.015 -0.0231,-0.0934 -0.0424,-0.17413 -0.0335,-0.14023 -0.16153,-0.5255 -0.40532,-1.21937 -0.11223,-0.31942 -0.25539,-0.62758 -0.50498,-1.08697 -0.22442,-0.41305 -0.78611,-1.37018 -1.00693,-1.71581 l -0.22773,-0.35643 -0.20138,-0.49513 c -0.11076,-0.27232 -0.2704,-0.67794 -0.35476,-0.90138 -0.0844,-0.22344 -0.19238,-0.50117 -0.24005,-0.61719 -0.0929,-0.22618 -0.30092,-0.6835 -0.32304,-0.7103 -0.007,-0.009 -0.13617,-0.25574 -0.28619,-0.54843 -0.44703,-0.87218 -0.7716,-1.44206 -1.71742,-3.01544 -0.57699,-0.95981 -0.63478,-1.04879 -0.98594,-1.51808 -0.32778,-0.43804 -0.62997,-0.85889 -0.94015,-1.30931 -0.34576,-0.5021 -0.49798,-0.68777 -0.861,-1.05019 -0.23104,-0.23066 -0.30936,-0.3179 -0.29046,-0.32352 0.0688,-0.0205 0.45333,-0.0743 0.67916,-0.0951 0.29092,-0.0268 0.90448,-0.0306 1.2139,-0.008 0.84603,0.0628 1.72235,0.29888 2.4375,0.65658 0.29058,0.14534 0.43169,0.22772 0.67798,0.39578 0.40039,0.27322 0.70766,0.56315 1.05916,0.99939 0.55956,0.69444 0.87719,1.06156 1.23105,1.42289 0.68071,0.69507 1.22512,1.0948 1.69587,1.2452 0.63466,0.20277 1.25091,0.50905 1.72656,0.85809 0.0559,0.041 0.18243,0.12223 0.28125,0.18053 0.83763,0.49409 1.53457,1.12879 1.93794,1.76486 0.13357,0.21062 0.28193,0.52337 0.36009,0.75908 0.0354,0.10673 0.10159,0.26436 0.1471,0.3503 0.18031,0.34043 0.32798,0.73191 0.4038,1.07046 0.16458,0.73493 0.10358,1.46278 -0.18936,2.25967 -0.25267,0.68732 -0.52381,1.12291 -0.98647,1.58483 -0.94173,0.9402 -2.3668,1.51885 -3.96216,1.60886 -0.33172,0.0187 -0.31712,0.0193 -0.3256,-0.0121 z m 1.2718,-1.99219 c 0.0395,-0.0474 0.0377,-0.0613 -0.005,-0.0416 -0.0197,0.009 -0.0368,0.0299 -0.0381,0.0465 -0.003,0.0393 0.008,0.0381 0.0435,-0.005 z" + id="path881" + transform="matrix(0.43740606,0,0,0.48806439,-93.304199,-115.12258)" + clip-path="url(#clipPath1242)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.404409;stroke-dasharray:none;stroke-opacity:1" + d="m 155.60818,534.11587 c -0.0491,-0.0813 -0.82181,-1.81183 -1.27966,-2.86587 -3.32639,-7.65785 -7.17256,-18.3142 -7.54863,-20.9145 l -0.0419,-0.28951 0.33411,-0.15767 c 0.62458,-0.29475 1.6435,-0.52694 3.19371,-0.72778 1.80091,-0.23332 2.81102,-0.26987 12.33629,-0.44629 3.69661,-0.0685 4.99806,-0.0376 6.96037,0.165 2.2816,0.23558 3.64957,0.58384 4.9375,1.25701 0.84583,0.44208 0.81383,0.38358 0.4618,0.84423 -5.48675,7.1799 -11.84308,14.85468 -17.95205,21.67576 -1.38001,1.54087 -1.36313,1.52329 -1.40157,1.45962 z" + id="path885" + transform="matrix(0.26458333,0,0,0.26458333,-6.2125015,0.73088253)" + clip-path="url(#clipPath1239)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.404409;stroke-dasharray:none;stroke-opacity:1" + d="m 465.375,635 v -1.65625 h 15.875 15.875 V 635 636.65625 H 481.25 465.375 Z" + id="path886" + transform="matrix(0.26458333,0,0,0.26458333,-6.2125015,0.73088253)" + clip-path="url(#clipPath1238)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.368001;stroke-dasharray:none;stroke-opacity:1" + id="path925" + d="m 89.740768,169.59487 c 0.219027,0.29006 0.454083,0.56731 0.673129,0.8573 0.194532,0.31337 0.425159,0.60089 0.688411,0.85871 0.138526,0.1221 0.290349,0.2277 0.457838,0.30541 0.154975,0.0584 0.308528,0.12044 0.463222,0.17963 0,0 -7.94e-4,-5.2e-4 -7.94e-4,-5.2e-4 v 0 c -0.154694,-0.0592 -0.308253,-0.12123 -0.463222,-0.17965 -0.166891,-0.0774 -0.318113,-0.18275 -0.456152,-0.30441 -0.263263,-0.25782 -0.493905,-0.54533 -0.68843,-0.85871 -0.219035,-0.28999 -0.454091,-0.56723 -0.673113,-0.85729 z" + clip-path="url(#clipPath1237)" + transform="translate(-6.2125015,0.73088253)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.368001;stroke-dasharray:none;stroke-opacity:1" + id="path926" + d="m 90.674723,170.27215 c 0.163505,0.24696 0.328697,0.49347 0.510088,0.72775 0.108979,0.11813 0.230899,0.22551 0.358441,0.32326 0.07653,0.0561 0.149374,0.11765 0.217792,0.18335 0,0 7.94e-4,2.7e-4 7.94e-4,2.7e-4 v 0 c -0.06841,-0.0657 -0.141256,-0.1273 -0.217789,-0.18336 -0.12755,-0.0977 -0.24946,-0.20514 -0.358455,-0.32325 -0.181398,-0.23427 -0.346596,-0.48078 -0.51009,-0.72774 z" + clip-path="url(#clipPath1236)" + transform="translate(-6.2125015,0.73088253)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.368001;stroke-dasharray:none;stroke-opacity:1" + id="path927" + d="m 92.069546,171.48419 c -0.244361,-0.11515 -0.500872,-0.20147 -0.749941,-0.30508 -0.144346,-0.0538 -0.245321,-0.17078 -0.356552,-0.2719 -0.162092,-0.16839 -0.292005,-0.36021 -0.39561,-0.56887 -0.03594,-0.0987 -0.09968,-0.18036 -0.159526,-0.26483 -0.0057,-0.0109 -0.0114,-0.0217 -0.01712,-0.0326 0,0 -7.94e-4,-5.2e-4 -7.94e-4,-5.2e-4 v 0 c 0.0057,0.0109 0.0114,0.0218 0.01712,0.0326 0.05984,0.0845 0.123602,0.16609 0.159538,0.26482 0.103606,0.20867 0.233511,0.4005 0.395595,0.5689 0.111738,0.10158 0.213185,0.21889 0.35824,0.27289 0.249076,0.10359 0.505582,0.18994 0.749946,0.30508 z" + clip-path="url(#clipPath1235)" + transform="translate(-6.2125015,0.73088253)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.368001;stroke-dasharray:none;stroke-opacity:1" + id="path928" + d="m 90.273401,169.86312 c 0.178469,0.0849 0.325191,0.21017 0.4661,0.34582 0.114766,0.12399 0.188693,0.27713 0.289724,0.41147 0.0923,0.11815 0.1783,0.24079 0.25713,0.36831 0.01275,0.0186 0.02551,0.0373 0.03824,0.0559 0,0 7.94e-4,2.7e-4 7.94e-4,2.7e-4 v 0 c -0.01275,-0.0186 -0.02551,-0.0373 -0.03825,-0.0559 -0.07883,-0.12752 -0.164827,-0.25017 -0.257124,-0.36832 -0.101042,-0.13433 -0.174972,-0.28748 -0.289722,-0.41148 -0.140893,-0.13564 -0.28766,-0.26087 -0.466087,-0.34583 z" + clip-path="url(#clipPath1234)" + transform="translate(-6.2125015,0.73088253)" /><path + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.768001;stroke-dasharray:none;stroke-opacity:1" + d="m 99.881091,160.60536 c -0.475316,-1.56567 -0.765427,-5.19335 -0.453636,-5.67249 0.114305,-0.17566 0.935035,-0.34103 1.857815,-0.37433 2.16102,-0.078 2.4279,0.24818 2.33178,2.8498 -0.0666,1.80132 -0.43365,2.81032 -1.33277,3.66313 -0.26363,0.25005 -1.62838,0.92295 -1.8719,0.92295 -0.0603,0 -0.29936,-0.62508 -0.531289,-1.38906 z" + id="path1383" /><g + transform="matrix(0.0305803,0,0,-0.02484812,38.426646,76.274964)" + fill="#000000" + stroke="none" + id="g2-2" + inkscape:label="dragon" + style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1"><path + id="path1-9" + d="m 1338.961,1860.0367 c -4.3008,0 -10.3216,-11.7432 -12.9021,-25.4424 -7.7411,-35.2266 1.722,-111.5528 18.9248,-153.6291 14.6223,-34.248 13.7571,-36.2089 -5.166,-87.0918 -10.3216,-28.377 -26.665,-57.724 -35.2663,-64.5735 -19.7832,-15.6564 -20.6425,-34.249 -3.4397,-54.798 17.2027,-19.5704 7.743,-43.0576 -19.7815,-46.9716 -19.7831,-2.9356 -23.2211,-7.8272 -23.2211,-33.2687 0,-29.3554 -16.3478,-62.624 -30.9701,-62.624 -3.4405,0 -15.4858,29.3535 -24.9473,66.5371 -15.4824,55.7754 -17.1934,79.2647 -12.0326,156.5676 3.4405,60.668 2.5813,90.016 -3.4397,90.016 -23.2238,0 -56.7749,-22.5052 -92.0406,-62.6243 -21.5034,-24.463 -38.7061,-38.1545 -38.7061,-31.3049 0,31.3126 -22.3601,35.2266 -78.26904,14.6777 -133.32117,-49.9044 -290.73371,-197.6602 -343.20204,-322.9105 -40.42642,-97.8516 -32.67511,-122.3233 23.23377,-67.5263 37.846,38.1622 74.82767,39.1435 107.51287,2.9384 l 24.07795,-26.4171 24.09053,25.4423 c 36.12574,40.1194 65.36367,44.0372 92.0279,13.7031 12.0419,-13.6992 23.22704,-25.4424 24.94732,-25.4424 1.72027,0 15.4875,13.6993 30.96995,29.3555 33.54535,36.2052 43.00269,37.1791 43.00269,4.8879 0,-13.6991 0.866,-27.4052 1.7261,-31.3193 0.8601,-4.8926 -12.04448,-17.6095 -28.38704,-30.3302 -22.36355,-17.6132 -29.25303,-30.3282 -30.11317,-52.8341 -0.86014,-27.3985 -16.33251,-49.9006 -41.27647,-59.6858 -5.16082,-1.957 -9.47159,-27.39841 -10.33172,-58.71099 0,-47.94734 -3.43803,-57.7392 -23.22117,-75.35251 -24.08382,-21.52738 -30.10142,-52.84564 -13.75883,-64.58786 14.62233,-9.78517 2.57957,-60.66328 -22.36439,-92.95434 -17.20273,-23.48441 -19.78315,-33.27435 -12.90205,-53.82321 12.04191,-36.20514 11.18599,-40.12015 -17.19852,-69.47567 -25.80411,-25.44144 -33.55374,-54.79505 -17.21113,-66.53725 4.30067,-2.93556 2.57872,-18.58228 -6.02265,-39.13113 -9.4615,-23.48442 -20.64076,-34.25001 -36.12321,-36.20704 -18.92301,-2.93556 -22.36438,-7.83388 -22.36438,-35.23236 0,-41.09771 -39.56797,-83.17013 -70.53288,-74.36347 -15.48247,4.89258 -21.49334,0.98329 -28.37443,-19.56555 -7.74124,-23.48443 -12.04612,-25.44242 -60.21376,-25.44242 -61.92985,0 -112.6779,24.46293 -154.82459,73.38879 -16.3426,18.59183 -32.68266,34.24331 -36.12321,34.24331 -15.48245,0 -5.1625,-44.03803 19.78146,-83.17871 48.16765,-75.34583 128.15615,-122.30986 210.72925,-122.30986 88.59408,0 207.29039,68.49045 268.3601,155.57847 32.68518,46.96883 92.90566,173.19849 123.01042,260.2865 18.06297,51.86141 79.99277,140.91793 90.31447,129.17573 2.5804,-1.95704 -0.01,-16.64149 -5.166,-31.31925 -7.1232,-21.60952 -6.2992,-43.35922 0.4788,-54.89825 2.2307,-0.0615 4.4311,-0.48414 6.6275,-0.88868 3.2936,-0.75973 6.5671,-1.6284 9.8403,-2.49408 5.2384,-1.32759 10.3436,-3.20248 15.4849,-4.93081 5.2369,-1.84912 10.5018,-3.60795 15.8126,-5.16014 3.955,-1.12917 7.9135,-2.24062 11.8688,-3.36843 2.2303,-0.65905 4.484,-1.18367 6.7661,-1.53371 2.6445,-0.51093 5.292,-1.02397 7.9504,-1.43339 3.3329,-0.56222 6.6681,-1.08065 10.0167,-1.50503 2.6565,-0.31981 5.3196,-0.46794 7.9882,-0.57335 2.5331,-0.0504 5.0774,-0.17438 7.6102,-0.0717 2.5623,0.061 5.0899,0.50001 7.6102,0.98903 1.2902,0.25963 2.586,0.49479 3.8807,0.71669 0.2121,0.0364 0.4099,0.0567 0.6174,0.086 9.6345,4.56114 16.4676,12.55534 16.4676,22.23164 0,4.89259 -7.7462,17.61331 -18.0677,29.35551 l -17.1986,19.56556 28.387,38.15644 c 2.2591,2.99834 4.6276,5.2311 6.955,7.95523 0.4168,1.89172 0.8067,3.79043 1.2474,5.67616 0.4633,2.10975 0.7629,4.25782 1.0457,6.40719 0.2561,2.81683 0.5512,5.64645 0.4536,8.48559 -0.023,2.31895 -0.028,4.63495 -0.126,6.95186 -0.081,1.7532 -0.1719,3.50952 -0.4157,5.24616 -0.2488,1.87213 -0.4821,3.75523 -0.5796,5.64749 0,1.66955 -3e-4,3.33294 0,5.00248 4e-4,1.95152 0,3.91089 0,5.8625 0,2.54187 0.014,5.0837 0.025,7.62554 -0.5657,5.19697 -1.0155,10.4097 -0.7938,15.63813 0.2536,1.77162 0.3196,3.59254 0.756,5.31782 0.9216,3.65205 2.4902,6.78736 4.4602,9.54627 0,0.004 0,0.01 0,0.0144 0.4634,1.38408 0.9721,2.74425 1.575,4.05645 1.3463,2.94298 2.7175,5.85867 5.002,8.0269 2.0501,1.67781 4.0117,2.80395 6.4133,3.68379 1.5812,0.63102 3.1729,1.2648 4.7626,1.86337 1.0862,0.48901 2.1344,1.04152 3.1122,1.77739 1.7291,1.11779 3.4481,2.27266 5.2792,3.16775 1.135,0.55615 2.2662,1.12692 3.4146,1.64838 1.9032,0.89709 3.8496,1.71374 5.8839,2.13573 1.4062,0.28942 2.7023,0.40128 3.8934,0.35835 4.1869,-0.15096 7.0046,-2.17854 8.2528,-4.81614 7.3033,-2.19652 13.8092,-11.21462 13.8092,-27.9508 v -13.74606 c 0.2194,-3.32651 -0.2953,-6.75096 0.075,-10.0623 0.3926,-4.36369 0.9524,-8.71138 1.7009,-13.01504 1.165,-6.90011 2.1409,-13.84806 3.4649,-20.71226 1.2739,-5.98042 2.8162,-11.88047 4.2839,-17.80252 0.2121,-0.77166 0.4233,-1.54135 0.6426,-2.30773 0.7376,-2.48618 1.6252,-5.14034 2.7467,-7.4392 0.098,-0.17614 -0.076,0.39073 -0.1006,0.58767 2.1786,-3.01916 4.5497,-5.90257 7.1439,-8.47124 1.6627,-0.56088 3.3361,-1.08993 5.0021,-1.63405 2.6625,-0.88594 5.3514,-1.65474 8.026,-2.49407 2.414,-0.73254 4.8341,-1.41205 7.2699,-2.03539 0.2195,9.7e-4 0.3547,0.0287 0.5797,0.0287 30.1048,0 40.4213,30.33403 33.5402,102.74429 -3.4405,37.18364 -2.5779,68.48758 2.5829,79.25125 11.1819,23.48449 15.4834,11.74702 22.3645,-63.59879 2.5804,-28.37701 9.4548,-57.73442 14.6155,-65.56257 16.3427,-22.50589 42.1468,-15.65245 51.6082,13.70307 11.1819,30.33402 5.1633,177.10392 -10.319,295.50457 -10.3217,75.3458 -10.3217,77.3028 12.902,132.0997 12.902,29.3556 33.5437,61.6581 45.5856,70.4647 22.3635,16.635 26.6667,17.6067 157.4074,12.7142 68.8111,-1.957 86.8738,0 116.1186,17.6161 54.1886,31.3125 79.1358,94.9199 63.6534,160.4806 -10.3216,44.0333 -36.1334,66.5392 -85.1611,73.3888 -26.6642,3.914 -37.8418,11.7355 -43.0026,27.3917 -13.7622,40.1191 -60.2138,90.9973 -98.9199,107.6321 -30.1048,13.6992 -44.7188,28.3828 -73.1032,79.2657 -24.9441,44.0333 -41.2924,62.6241 -53.3343,62.6241 -16.3427,0 -17.2063,-3.9207 -12.0454,-45.9969 2.5804,-26.42 7.7514,-58.7005 10.3318,-72.3999 4.3007,-20.5488 0.8601,-26.4266 -12.9021,-31.3192 -13.7622,-3.9141 -22.3728,3.9227 -39.5755,38.1708 -25.8042,49.9044 -71.3838,111.5452 -82.5656,111.5452 z m 150.2132,-47.5163 c 3.6035,-1.1754 10.5207,-11.19 21.8099,-30.7603 12.902,-24.463 22.3586,-46.9706 20.6383,-50.8848 -13.7622,-29.3554 -45.5855,22.502 -45.5855,74.3635 0,5.5041 0.9752,7.9869 3.1373,7.2816 z m -140.7508,-1.4048 c 3.4405,0 19.784,-23.4862 35.2664,-50.8847 14.6223,-28.377 32.6853,-61.6466 38.7061,-73.3888 11.1819,-20.5489 12.8945,-20.5509 43.8595,-6.8515 17.2027,8.8066 54.1877,16.627 80.852,16.627 41.2865,0.9786 53.3276,-2.9327 80.8519,-26.417 30.965,-27.3986 31.831,-29.3574 14.6282,-36.207 -23.2237,-9.7852 -25.8091,-52.8371 -5.1658,-85.1282 15.4825,-25.4414 30.9691,-27.3899 47.3117,-5.8624 14.6223,20.5488 79.136,13.6982 102.3596,-10.7648 22.3636,-22.5059 22.3603,-78.2919 0.8567,-118.411 -24.9438,-45.9903 -62.7907,-56.7454 -177.1889,-49.8958 -113.538,7.8282 -141.0599,-2.9432 -178.0457,-71.4394 -24.944,-45.9903 -67.0932,-213.3129 -67.0932,-265.1742 0,-32.29109 -12.9021,-67.51197 -25.8042,-67.51197 -4.3006,0 -8.5989,31.3102 -10.3191,70.45027 -1.7203,45.0118 -6.0209,71.428 -12.902,74.3636 -15.4825,4.8925 -14.623,-68.4877 3.4398,-196.67341 11.1817,-81.21693 12.0377,-107.6407 4.2964,-116.44736 -6.8811,-7.82814 -12.9037,-8.81334 -18.9246,-1.96372 -10.3217,11.7422 -51.6083,191.79896 -51.6083,225.06859 0,23.4844 -12.0326,38.1621 -24.9346,29.3553 -4.3008,-3.914 -2.5847,-29.3545 4.2964,-62.62407 13.7622,-65.56062 14.6182,-90.03023 4.2965,-90.03023 -4.3007,0 -9.4615,17.60758 -12.9021,38.15639 -8.6014,60.66803 -85.1518,125.25891 -97.1936,82.20411 -2.5805,-6.8497 6.0259,-14.67679 18.0678,-18.59084 28.3845,-7.8282 55.0463,-45.01564 61.9273,-87.09191 5.1608,-34.24808 -9.4632,-77.30475 -44.7288,-124.27356 -10.3216,-15.65628 -24.0796,-43.05762 -30.1006,-61.64946 -15.4825,-48.92584 -24.9473,-42.06572 -24.9473,15.66679 v 50.87047 l -27.5302,-6.8372 C 1034.4635,769.97442 1000.9273,722.02806 951.89957,599.7134 877.92783,410.85959 826.31293,339.4164 721.37625,279.72685 c -81.71297,-45.9903 -184.06334,-42.06476 -256.31481,11.75368 -28.38451,21.52738 -19.78734,25.43953 17.19853,7.82621 47.30753,-22.50589 130.74159,-18.5899 177.18897,6.85155 100.63599,54.79696 159.12526,172.21708 219.33482,433.48115 21.50341,91.98062 44.72711,184.92825 51.6082,208.41265 24.94395,77.30291 68.81715,160.48161 114.40494,215.27851 44.7271,53.8185 45.5812,54.7989 62.784,36.2071 12.042,-12.7207 20.64,-14.6759 26.6609,-7.8262 6.021,6.8495 0.8619,17.6122 -19.7814,33.2686 -22.3637,18.5918 -39.5688,23.4786 -79.9953,23.4786 -28.3844,0 -58.48255,-3.9083 -66.22377,-8.8009 -20.64329,-10.7637 -19.79071,6.8439 5.15326,96.8675 20.64329,75.3458 16.34765,107.6378 -7.7362,54.7978 -17.20272,-38.1622 -38.70446,-145.7912 -32.6835,-163.4046 6.02095,-17.6133 -6.01759,-16.6385 -26.66087,0.9748 -22.36355,18.5917 -48.17521,18.5956 -72.25904,-0.9748 -11.18178,-8.8065 -21.50089,-13.6963 -23.22116,-11.7393 -5.16082,4.8925 59.35529,132.095 92.04049,181.0209 35.2656,53.8184 22.36103,68.4952 -15.48498,18.5909 -32.6852,-43.0549 -89.45755,-152.6565 -89.45755,-174.1839 0,-6.8495 -3.43552,-18.5888 -7.7362,-26.4169 -6.88109,-11.7422 -10.32248,-11.7355 -22.36439,1.9636 -21.50342,24.463 -63.64842,24.463 -97.19375,0 -11.18178,-7.8282 -21.51014,-12.7216 -24.09054,-10.7646 -1.72028,1.957 10.32751,27.3994 27.53024,54.7979 64.51025,109.594 191.80962,225.0608 300.18682,271.0511 l 54.17854,23.4788 3.4523,-45.9828 c 6.8811,-76.3242 41.2839,-166.3612 87.7313,-224.0938 22.3637,-28.3769 46.4408,-51.8594 53.3219,-51.8594 14.6223,0 15.4883,15.6573 1.7261,25.4424 -6.021,4.8926 1.7119,11.7518 21.495,19.5799 75.692,30.334 125.5858,100.7768 143.6486,204.4996 6.021,32.291 19.7791,81.2227 30.1007,108.6211 17.2027,44.0333 18.0703,52.8323 7.7488,75.3382 -15.4824,33.2696 -37.8452,143.8534 -29.2438,143.8534 z m -190.0911,-205.4887 c 3.4406,0 6.0227,-43.0565 6.0227,-94.9179 0,-68.4962 4.294,-108.6135 14.6156,-139.9261 8.6014,-24.4629 16.3384,-47.9559 17.1985,-52.8485 0.8601,-4.8926 -9.4589,-12.7197 -23.2211,-18.5909 -21.5036,-7.8281 -26.6669,-5.8673 -41.2891,13.7031 -16.3426,23.4844 -16.336,27.3956 -1.7135,129.1614 9.4615,59.6895 -11.1794,42.081 -23.2213,-19.5655 l -9.4623,-56.7616 -16.3417,44.0331 c -25.8042,74.3673 -22.3704,95.9015 27.5176,148.7414 24.0839,25.4414 46.4541,46.9715 49.8946,46.9715 z m 246.8274,-497.4095 c 0.4483,0.2521 0.9026,0.2295 1.3481,-0.043 5.9386,-3.6312 11.5875,-53.7084 15.8881,-145.4445 4.3008,-84.15245 2.5812,-129.1604 -3.4397,-133.07446 -17.2027,-12.72073 -33.5554,145.80373 -23.2338,233.86936 3.1047,28.2547 6.2985,42.9281 9.4373,44.6927 z" + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:16.5485;stroke-dasharray:none;stroke-opacity:1" /><path + d="m 1489.4773,1590.9507 c -20.6433,-36.205 5.1608,-102.7443 40.4264,-102.7443 32.6851,0 46.4473,82.1954 18.0629,110.5724 -22.3636,23.4845 -42.1468,20.5489 -58.4893,-7.8281 z m 39.5662,-40.1192 c 0,-20.5488 -3.4405,-32.291 -8.6013,-28.377 -4.3007,2.9356 -8.6014,18.5918 -8.6014,35.2267 0,15.6562 4.3007,28.377 8.6014,28.377 5.1608,0 8.6013,-15.6564 8.6013,-35.2267 z" + id="path2-1" + style="fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0.928018;stroke-dasharray:none;stroke-opacity:1" /><ellipse + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.336927;stroke-dasharray:none;stroke-opacity:1" + id="path78-9" + cx="31.049107" + cy="11.949494" + rx="0.33780217" + ry="0.48663026" + transform="matrix(46.353874,0,0,-58.421794,83.628303,2251.9596)" /><ellipse + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.336927;stroke-dasharray:none;stroke-opacity:1" + id="path78-9-8" + transform="matrix(42.420402,23.551599,18.686654,-53.464269,83.628303,2251.9596)" + ry="0.48663026" + rx="0.30880055" + cy="24.209803" + cx="26.588318" /><g + id="g112" + style="display:inline;fill:#52973a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + inkscape:label="color"><path + style="display:inline;fill:#52973a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 39.244427,129.23998 c -2.739791,-0.3886 -4.840195,-1.00945 -6.835138,-2.02036 -2.079358,-1.05369 -1.995649,-1.39852 0.150861,-0.62146 2.323784,0.84125 8.09469,1.04156 11.16319,0.38749 4.824112,-1.0283 9.075872,-3.80336 12.168346,-7.94209 3.65872,-4.89656 5.652133,-9.87268 11.643016,-29.064221 2.023697,-6.482837 4.146527,-10.899231 7.165357,-14.90701 2.14073,-2.842021 6.646987,-7.366854 7.336611,-7.366854 0.23902,0 0.974474,0.333669 1.634339,0.74149 1.402783,0.866969 2.341984,0.668046 2.178876,-0.461483 -0.0712,-0.493048 -0.758351,-1.182205 -1.852341,-1.857736 -1.713535,-1.058104 -1.809875,-1.073922 -6.540738,-1.073922 -2.64087,0 -5.119782,0.07955 -5.50869,0.176777 -0.613228,0.153308 -0.692353,0.0241 -0.595971,-0.973244 0.06112,-0.632512 0.568719,-2.503732 1.127987,-4.158268 1.36612,-4.04152 1.687231,-6.182196 0.927357,-6.182196 -1.34479,0 -3.885966,6.228328 -4.349117,10.659521 -0.118907,1.137622 -0.348781,2.068401 -0.510835,2.068401 -0.162052,0 -0.81556,-0.317604 -1.452235,-0.705785 -1.564269,-0.953735 -4.300965,-0.944871 -5.88205,0.01905 -0.653908,0.39866 -1.272348,0.64141 -1.374313,0.539445 -0.260832,-0.260834 3.144923,-5.600256 6.173185,-9.678102 1.402111,-1.888075 2.555579,-3.790836 2.563262,-4.228359 0.01682,-0.957427 -0.103602,-0.971884 -1.472387,-0.176776 -2.213058,1.285531 -9.120242,11.123565 -9.120242,12.990131 0,0.413431 -0.212744,1.042636 -0.472765,1.398233 -0.452175,0.618386 -0.542065,0.605934 -2.063994,-0.285979 -1.99015,-1.166305 -4.250862,-1.226208 -6.689235,-0.177247 -0.965624,0.415397 -1.854378,0.656574 -1.975008,0.535945 -0.391782,-0.391783 3.829789,-5.534338 6.757018,-8.231139 3.596577,-3.313458 8.332313,-6.70178 12.270507,-8.779295 3.518213,-1.855962 10.446601,-4.544066 10.934614,-4.242456 0.18191,0.112426 0.333097,0.791643 0.335971,1.509371 0.015,3.744636 2.532344,9.952831 5.538503,13.658866 3.219269,3.96876 7.184194,6.458136 7.184194,4.510591 0,-0.350018 -0.185704,-0.8221 -0.412675,-1.049071 -0.314528,-0.314528 -0.251464,-0.470772 0.265165,-0.656967 7.921205,-2.854816 10.778488,-5.959034 13.180838,-14.319992 0.59385,-2.06675 1.50003,-4.691884 2.01373,-5.833631 1.60315,-3.563089 1.63841,-3.879093 0.68548,-6.143166 -0.88989,-2.114276 -2.29751,-6.853965 -2.29751,-7.736078 0,-0.88638 1.27422,0.561476 3.93737,4.473905 2.85062,4.187823 2.52331,4.06489 7.3321,2.753874 1.62777,-0.443779 3.21207,-0.581093 5.70343,-0.494326 3.34359,0.116448 3.51061,0.162198 5.43593,1.489019 1.95708,1.348706 2.44389,1.989878 1.51082,1.989878 -0.938,0 -1.64579,1.261082 -1.64579,2.932352 0,1.329381 0.20742,1.875469 1.09729,2.888977 1.28462,1.463099 2.70151,1.650188 4.10954,0.542632 1.67362,-1.316466 6.67471,-0.769733 8.24458,0.901319 1.67464,1.782575 1.17075,5.689732 -1.01578,7.876262 -2.12042,2.12042 -3.28442,2.323786 -13.49629,2.357978 -10.03805,0.03361 -10.53349,0.128607 -12.87328,2.468405 -1.64997,1.649974 -2.72383,3.590398 -4.21104,7.609239 -1.51129,4.083913 -2.63311,8.388475 -3.0487,11.698234 -0.31957,2.545057 -1.23962,4.547206 -1.82198,3.964847 -0.17732,-0.177325 -0.47901,-1.904649 -0.67042,-3.838494 -0.43752,-4.420521 -0.63054,-5.107072 -1.43578,-5.107072 -1.354745,0 -1.269393,3.279713 0.37049,14.236276 0.74574,4.982487 0.64005,6.269821 -0.51473,6.269821 -0.790201,0 -3.041342,-6.681134 -4.247256,-12.605374 -0.822436,-4.040337 -0.808294,-4.011636 -1.976717,-4.011636 -0.911365,0 -1.036834,0.125643 -1.036834,1.038263 0,0.571045 0.317084,2.360909 0.704628,3.977476 0.752096,3.137199 0.910446,5.049626 0.391557,4.728935 -0.174917,-0.108102 -0.500929,-0.952762 -0.724477,-1.877022 -0.610205,-2.522911 -2.433508,-4.785119 -4.783344,-5.934786 -1.684668,-0.824232 -2.119585,-0.909498 -2.877536,-0.564154 -1.359452,0.619407 -0.904269,1.505281 1.321809,2.572496 2.230165,1.069174 3.173743,2.094815 4.058464,4.411431 0.568397,1.488329 0.570413,1.716081 0.0303,3.426728 -0.347677,1.10116 -1.372225,2.820101 -2.56731,4.307313 -1.093809,1.36118 -2.479859,3.460262 -3.080104,4.664631 -0.600249,1.204366 -1.220739,2.109799 -1.378869,2.012069 -0.15813,-0.0977 -0.28751,-1.520647 -0.28751,-3.162033 0,-1.641386 -0.119324,-2.981852 -0.265165,-2.978815 -0.145841,0.003 -1.181614,0.22118 -2.301721,0.484757 -4.125328,0.970755 -6.074196,3.162143 -10.898354,12.254541 -3.983786,7.5085 -6.282512,10.94567 -9.297396,13.90197 -5.972302,5.85624 -14.610279,9.03531 -21.785091,8.01766 z M 119.66737,48.76824 c 0.94261,-1.017092 1.4248,-3.140536 1.0749,-4.733604 -0.3367,-1.532981 -2.04892,-2.845666 -3.71179,-2.845666 -3.62287,0 -4.35763,5.720715 -0.99786,7.769112 1.5677,0.955795 2.62415,0.900617 3.63475,-0.189842 z" + id="path73" + transform="matrix(12.264462,0,0,-15.457433,83.628303,2251.9596)" /><path + style="display:inline;fill:#52973a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="" + id="path74" + transform="matrix(12.264462,0,0,-15.457433,83.628303,2251.9596)" /><path + style="display:inline;fill:#52973a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 116.22738,33.292422 c -0.80231,-0.865708 -1.69126,-3.091757 -1.66337,-4.165286 0.0166,-0.63779 1.58976,1.242292 2.51021,2.9999 0.92478,1.765881 0.39076,2.500778 -0.84684,1.165386 z" + id="path75" + transform="matrix(12.264462,0,0,-15.457433,83.628303,2251.9596)" /><path + style="display:inline;fill:#52973a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 85.850803,60.722795 c -1.238263,-1.334626 -1.339304,-2.034848 -0.785332,-5.442415 0.569914,-3.505628 0.625759,-5.606128 0.149047,-5.606128 -0.630326,0 -1.412453,1.608622 -2.056973,4.230634 l -0.63669,2.59016 -1.006687,-2.243197 c -1.408373,-3.138273 -1.535011,-4.791487 -0.485362,-6.336205 0.765277,-1.12622 5.838904,-5.662365 6.336145,-5.664915 0.29989,-0.0015 0.663285,4.198699 0.672853,7.777076 0.0086,3.226136 0.509142,5.781609 1.717258,8.767787 l 0.757958,1.873496 -1.227756,0.512989 c -1.751199,0.731698 -2.411383,0.643413 -3.434461,-0.459282 z" + id="path76" + transform="matrix(12.264462,0,0,-15.457433,83.628303,2251.9596)" /><path + style="display:inline;fill:#52973a;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-dasharray:none;stroke-opacity:1" + d="m 108.25521,90.985839 c -1.34328,-3.334412 -1.68492,-16.209296 -0.43013,-16.209296 0.64556,0 1.65838,14.057634 1.14674,15.91661 l -0.33872,1.230729 z" + id="path77" + transform="matrix(12.264462,0,0,-15.457433,83.628303,2251.9596)" /></g><ellipse + style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:14.706;stroke-dasharray:none;stroke-opacity:1" + id="path78" + cx="1527.7689" + cy="-1568.9342" + rx="15.384632" + ry="20.356005" + transform="scale(1,-1)" /><ellipse + style="display:inline;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:14.706;stroke-dasharray:none;stroke-opacity:1" + id="path78-8" + cx="1666.5011" + cy="-1597.9689" + rx="15.384632" + ry="20.356005" + transform="scale(1,-1)" /><ellipse + style="fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:3.90166;stroke-dasharray:none;stroke-opacity:1" + id="path79" + cx="1679.5411" + cy="-1442.3765" + transform="scale(1,-1)" + rx="18.520985" + ry="4.3340855" /><ellipse + style="display:inline;fill:#1a1a1a;fill-opacity:1;stroke:#000000;stroke-width:3.91351;stroke-dasharray:none;stroke-opacity:1" + id="path79-3" + cx="1996.2277" + cy="-863.93048" + transform="matrix(0.95322755,0.30225359,0.19575483,-0.98065287,0,0)" + rx="18.842587" + ry="4.2860298" /><ellipse + style="fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.61495;stroke-dasharray:none;stroke-opacity:1" + id="path80" + cx="1527.1923" + cy="-1582.0159" + transform="scale(1,-1)" + rx="3.5237315" + ry="4.5354805" /><ellipse + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:4.85432;stroke-dasharray:none;stroke-opacity:1" + id="path80-4" + cx="1663.7374" + cy="-1610.024" + transform="scale(1,-1)" + rx="3.603127" + ry="4.9075909" /><ellipse + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.87743;stroke-dasharray:none;stroke-opacity:1" + id="path80-9" + cx="1535.7697" + cy="-1571.3352" + transform="scale(1,-1)" + rx="2.1387122" + ry="2.9050188" /><ellipse + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.87743;stroke-dasharray:none;stroke-opacity:1" + id="path80-9-2" + cx="1674.3413" + cy="-1600.762" + transform="scale(1,-1)" + rx="2.1387122" + ry="2.9050188" + inkscape:label="path80-9-2" /></g><path + style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0891369;stroke-dasharray:none;stroke-opacity:1" + id="path102" + sodipodi:type="arc" + sodipodi:cx="162.8199" + sodipodi:cy="-86.444908" + sodipodi:rx="8.4982691" + sodipodi:ry="2.4543352" + sodipodi:start="1.6005493" + sodipodi:end="4.7044995" + sodipodi:arc-type="arc" + d="m 162.56709,-83.991659 a 8.4982691,2.4543352 0 0 1 -8.24495,-2.480079 8.4982691,2.4543352 0 0 1 8.43071,-2.427429" + sodipodi:open="true" + transform="matrix(0.00546584,0.99998506,-0.99911352,0.04209731,0,0)" /><path + style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0762234;stroke-dasharray:none;stroke-opacity:1" + id="path102-9" + sodipodi:type="arc" + sodipodi:cx="127.05698" + sodipodi:cy="-85.96701" + sodipodi:rx="7.3881531" + sodipodi:ry="2.064383" + sodipodi:start="1.6005493" + sodipodi:end="4.7044995" + sodipodi:arc-type="arc" + d="m 126.83719,-83.903541 a 7.3881531,2.064383 0 0 1 -7.16793,-2.086036 7.3881531,2.064383 0 0 1 7.32943,-2.041752" + sodipodi:open="true" + transform="matrix(0.00528788,0.99998602,-0.99905293,0.04351147,0,0)" /><path + style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0762234;stroke-dasharray:none;stroke-opacity:1" + id="path102-9-6" + sodipodi:type="arc" + sodipodi:cx="139.45692" + sodipodi:cy="-68.345413" + sodipodi:rx="7.3881531" + sodipodi:ry="2.064383" + sodipodi:start="1.6005493" + sodipodi:end="4.7044995" + sodipodi:arc-type="arc" + d="m 139.23714,-66.281944 a 7.3881531,2.064383 0 0 1 -7.16793,-2.086036 7.3881531,2.064383 0 0 1 7.32943,-2.041752" + sodipodi:open="true" + transform="matrix(0.00528788,0.99998602,-0.99905293,0.04351147,0,0)" /><path + style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0659133;stroke-dasharray:none;stroke-opacity:1" + id="path102-9-8" + sodipodi:type="arc" + sodipodi:cx="101.56506" + sodipodi:cy="-85.665581" + sodipodi:rx="6.2000918" + sodipodi:ry="1.839493" + sodipodi:start="1.6005493" + sodipodi:end="4.7044995" + sodipodi:arc-type="arc" + d="m 101.38062,-83.826902 a 6.2000918,1.839493 0 0 1 -6.015278,-1.858787 6.2000918,1.839493 0 0 1 6.150808,-1.819328" + sodipodi:open="true" + transform="matrix(0.00561531,0.99998423,-0.99916002,0.04097862,0,0)" /><path + style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0538416;stroke-dasharray:none;stroke-opacity:1" + id="path102-9-8-6" + sodipodi:type="arc" + sodipodi:cx="102.20966" + sodipodi:cy="-67.39135" + sodipodi:rx="6.1569166" + sodipodi:ry="1.2360113" + sodipodi:start="1.6005493" + sodipodi:end="4.7044995" + sodipodi:arc-type="arc" + d="m 102.0265,-66.155886 a 6.1569166,1.2360113 0 0 1 -5.973385,-1.248975 6.1569166,1.2360113 0 0 1 6.107975,-1.222462" + sodipodi:open="true" + transform="matrix(0.00379577,0.9999928,-0.99816442,0.06056224,0,0)" /><path + style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0339301;stroke-dasharray:none;stroke-opacity:1" + id="path102-9-8-1" + sodipodi:type="arc" + sodipodi:cx="147.72276" + sodipodi:cy="-101.66624" + sodipodi:rx="2.95385" + sodipodi:ry="1.0231339" + sodipodi:start="1.6005493" + sodipodi:end="4.7044995" + sodipodi:arc-type="arc" + d="m 147.63489,-100.64356 a 2.95385,1.0231339 0 0 1 -2.8658,-1.03386 2.95385,1.0231339 0 0 1 2.93037,-1.01192" + sodipodi:open="true" + transform="matrix(0.00655715,0.9999785,-0.99938379,0.0351003,0,0)" /><path + style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.030348;stroke-dasharray:none;stroke-opacity:1" + id="path102-9-8-1-0" + sodipodi:type="arc" + sodipodi:cx="148.84627" + sodipodi:cy="-109.28197" + sodipodi:rx="2.9564469" + sodipodi:ry="0.81778532" + sodipodi:start="1.6005493" + sodipodi:end="4.7044995" + sodipodi:arc-type="arc" + d="m 148.75832,-108.46454 a 2.9564469,0.81778532 0 0 1 -2.86832,-0.82637 2.9564469,0.81778532 0 0 1 2.93294,-0.80882" + sodipodi:open="true" + transform="matrix(0.00523466,0.9999863,-0.9990336,0.04395305,0,0)" /><path + style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.030348;stroke-dasharray:none;stroke-opacity:1" + id="path102-9-8-1-4" + sodipodi:type="arc" + sodipodi:cx="103.3895" + sodipodi:cy="-157.88454" + sodipodi:rx="2.9564469" + sodipodi:ry="0.81778532" + sodipodi:start="1.6005493" + sodipodi:end="4.7044995" + sodipodi:arc-type="arc" + d="m 103.30155,-157.06711 a 2.9564469,0.81778532 0 0 1 -2.86832,-0.82637 2.9564469,0.81778532 0 0 1 2.93295,-0.80882" + sodipodi:open="true" + transform="matrix(-0.33208498,0.94324947,-0.9554013,-0.2953106,0,0)" /><path + style="display:inline;fill:#d48808;fill-opacity:1;stroke:#000000;stroke-width:0.0339301;stroke-dasharray:none;stroke-opacity:1" + id="path102-9-8-1-9" + sodipodi:type="arc" + sodipodi:cx="154.58771" + sodipodi:cy="-48.470818" + sodipodi:rx="2.95385" + sodipodi:ry="1.0231339" + sodipodi:start="1.6005493" + sodipodi:end="4.7044995" + sodipodi:arc-type="arc" + d="m 154.49983,-47.448137 a 2.95385,1.0231339 0 0 1 -2.8658,-1.033865 2.95385,1.0231339 0 0 1 2.93037,-1.011918" + sodipodi:open="true" + transform="matrix(0.00655715,0.9999785,-0.99938379,0.0351003,0,0)" /></g><text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.4355px;line-height:0.05;font-family:'.Al Bayan PUA';-inkscape-font-specification:'.Al Bayan PUA';text-align:start;letter-spacing:0.645697px;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;fill:#7e87d8;fill-opacity:0.893993;stroke:#a0a0a0;stroke-width:0;stroke-dasharray:none;stroke-opacity:0.922261" + x="194.71634" + y="86.151222" + id="text88" + transform="scale(0.71625963,1.3961418)"><tspan + sodipodi:role="line" + id="tspan88" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="194.71634" + y="86.151222">Kubernetes </tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="194.71634" + y="87.638718" + id="tspan95" /><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="194.71634" + y="89.126205" + id="tspan96" /><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="194.71634" + y="90.613701" + id="tspan97" /><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="194.71634" + y="92.101196" + id="tspan98" /><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="194.71634" + y="93.588692" + id="tspan99" /><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="194.71634" + y="95.07618" + id="tspan101">v1.33:</tspan><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="194.71634" + y="96.563675" + id="tspan89" /><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="194.71634" + y="98.05117" + id="tspan90" /><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="194.71634" + y="99.538658" + id="tspan91" /><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="194.71634" + y="101.02615" + id="tspan92" /><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="194.71634" + y="102.51365" + id="tspan93" /><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Copperplate;-inkscape-font-specification:Copperplate;text-align:center;text-anchor:middle;fill:#d48808;fill-opacity:0.893993;stroke-width:0;stroke-dasharray:none" + x="195.03918" + y="104.00114" + id="tspan94"> Octarine</tspan></text><g + inkscape:groupmode="layer" + id="layer10" + inkscape:label="OutsideOutline" + style="display:none" + transform="translate(-6.7520832,-1.5246326)"><path + d="m 101.25731,2.3092676 c -2.783001,1.1592221 -8.620459,3.6607 -12.896759,5.613074 -4.276276,1.952374 -12.6931,5.6740874 -18.666338,8.2365774 -35.90731,15.618993 -35.703678,15.49697 -38.079397,19.706774 -0.543022,0.915174 -2.986619,9.578834 -5.430215,19.21867 -2.443598,9.63984 -6.108989,24.22164 -8.213197,32.4582 -4.140538,16.107097 -4.547804,19.950857 -2.511473,23.611557 1.15392,2.07439 12.082223,14.7038 38.758167,44.84359 5.294462,6.04014 10.181657,10.92108 11.878598,11.89727 l 2.850862,1.70832 38.690282,0.18304 c 28.16948,0.12201 39.50507,0 41.47351,-0.5491 5.02296,-1.28125 4.88719,-1.15923 26.87957,-26.17401 2.51147,-2.86756 9.63863,-10.9211 15.81549,-17.99845 12.01436,-13.60561 13.98281,-16.77822 12.96465,-21.23208 -1.56119,-6.589277 -15.544,-61.743816 -16.42641,-64.611365 -1.76481,-5.79611 -4.14054,-7.687471 -16.35851,-13.0565 C 105.05847,-3.1817852 110.35301,-1.4124452 101.25731,2.3092676 Z m 14.93326,1.4642801 c 2.44364,0.915175 4.54786,1.8303499 4.75148,2.0133839 0.40728,0.366071 5.76964,2.745528 20.02398,8.8466974 8.2132,3.538677 12.89676,5.552061 17.24092,7.626458 0.61091,0.305061 5.70175,2.501482 11.26771,4.941946 5.63385,2.440468 10.3174,4.636889 10.52104,4.880936 0.20365,0.183037 1.01817,0.671128 1.90058,1.098208 0.81453,0.366072 1.4933,1.098212 1.4933,1.586307 0,0.48809 0.33939,0.915175 0.67877,0.915175 0.61091,0 1.76483,1.83035 2.44362,3.965757 0.54301,1.586306 2.44358,8.724667 2.71509,10.066917 0.88241,4.63689 3.46177,14.6428 3.86903,15.00887 0.2715,0.24406 0.47516,1.15922 0.47516,2.01338 0,0.85417 0.47514,2.74553 1.01815,4.20981 0.61091,1.46428 0.88242,2.92856 0.67878,3.23362 -0.2715,0.30506 -0.20362,0.91517 0.13576,1.28124 0.54302,0.85417 0.81454,1.76934 1.28968,4.1488 0.13578,0.85416 0.88242,3.59969 1.62906,6.10116 0.74666,2.50148 1.35755,5.186 1.35755,5.97915 0,0.73214 0.27152,1.83035 0.61091,2.44047 0.88241,1.5863 2.10421,8.053547 2.10421,11.470217 0,2.92857 -1.8327,7.13837 -3.6654,8.48063 -0.47514,0.30505 -2.64723,2.80653 -4.88719,5.49104 -2.17208,2.68451 -4.68356,5.55207 -5.43022,6.40623 -0.81453,0.85417 -4.14053,4.51486 -7.33078,8.23658 -3.25814,3.66069 -6.24476,7.13837 -6.71991,7.62646 -0.47514,0.4881 -2.03631,2.25743 -3.52963,3.96576 -1.42544,1.64731 -2.98661,3.35564 -3.46176,3.6607 -0.40727,0.36606 -2.78299,3.11159 -5.29446,6.10117 -4.41205,5.30801 -10.24954,11.22615 -11.13193,11.34817 -0.27152,0 -1.08606,0.18303 -1.83271,0.42708 -0.74665,0.18303 -18.59851,0.42708 -39.64078,0.54911 -37.740027,0.18303 -38.283047,0.18303 -41.133912,-1.09821 -1.561185,-0.67113 -3.597517,-2.13541 -4.615681,-3.17261 -2.307843,-2.56249 -10.792556,-12.08032 -15.068854,-16.96125 -1.832699,-2.13541 -3.529641,-4.02677 -3.733275,-4.20981 -0.407267,-0.30506 -7.873817,-8.9077 -10.521047,-12.14132 -0.746655,-0.91517 -2.579354,-2.98958 -4.072662,-4.6979 -1.49331,-1.64732 -2.918741,-3.23362 -3.190252,-3.59968 -0.27151,-0.30507 -2.104208,-2.37946 -4.140538,-4.57588 -4.615681,-5.12499 -5.49809,-6.40623 -6.516254,-9.8839 -0.950287,-2.92855 -0.6109,-5.06398 1.69694,-12.080337 0.475146,-1.52529 1.357554,-4.94194 1.832698,-7.62646 0.54302,-2.68451 1.289676,-5.49105 1.696941,-6.16217 0.407266,-0.73215 0.610899,-1.46428 0.407266,-1.58631 -0.135756,-0.18304 0.203632,-2.07439 0.814531,-4.20981 0.543021,-2.1354 1.221797,-4.57587 1.357554,-5.43003 0.203632,-0.85417 0.814532,-3.29464 1.357553,-5.49106 0.6109,-2.19642 1.357554,-5.18599 1.76482,-6.71128 0.339389,-1.52529 0.882409,-3.29463 1.221797,-3.96576 0.271512,-0.67112 0.882412,-2.98956 1.357555,-5.18598 0.407266,-2.196417 1.018164,-5.063966 1.289676,-6.406221 1.425431,-6.772296 5.430216,-10.738056 13.982811,-13.788639 2.239965,-0.793154 4.819319,-1.891363 5.769607,-2.440467 2.036332,-1.159223 27.15108,-12.202337 28.237122,-12.385375 0.407266,-0.06102 1.493309,-0.549105 2.37572,-1.037199 0.882407,-0.48809 3.461744,-1.708327 5.701705,-2.623502 2.23997,-0.9761854 7.46653,-3.2336204 11.539188,-5.0029564 8.756261,-3.8437369 10.928401,-4.02677 17.309001,-1.6473159 z" + id="path1-7-4" + style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.576494;stroke-dasharray:none;stroke-opacity:1" /></g></svg> diff --git a/releases/release-1.33/release-notes/maps/pr-122550-map.yaml b/releases/release-1.33/release-notes/maps/pr-122550-map.yaml index 9cfc5a6c6f7..3a7689bd283 100644 --- a/releases/release-1.33/release-notes/maps/pr-122550-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-122550-map.yaml @@ -1,21 +1,21 @@ -pr: 122550 -releasenote: - text: |- - When the `StrictIPCIDRValidation` feature gate is enabled, Kubernetes will be - slightly stricter about what values will be accepted as IP addresses and network - address ranges ("CIDR blocks"). - - In particular, octets within IPv4 addresses are not allowed to have any leading - `0`s, and IPv4-mapped IPv6 values (e.g. `::ffff:192.168.0.1`) are forbidden. - These sorts of values can potentially cause security problems when different - components interpret the same string as referring to different IP addresses - (as in CVE-2021-29923). - - This tightening applies only to fields in build-in API kinds, and not to - custom resource kinds, values in Kubernetes configuration files, or - command-line arguments. - - (When the feature gate is disabled, creating an object with such an invalid - IP or CIDR value will result in a warning from the API server about the fact - that it will be rejected in the future). -pr_body: "" +pr: 122550 +releasenote: + text: |- + When the `StrictIPCIDRValidation` feature gate is enabled, Kubernetes will be + slightly stricter about what values will be accepted as IP addresses and network + address ranges ("CIDR blocks"). + + In particular, octets within IPv4 addresses are not allowed to have any leading + `0`s, and IPv4-mapped IPv6 values (e.g. `::ffff:192.168.0.1`) are forbidden. + These sorts of values can potentially cause security problems when different + components interpret the same string as referring to different IP addresses + (as in CVE-2021-29923). + + This tightening applies only to fields in build-in API kinds, and not to + custom resource kinds, values in Kubernetes configuration files, or + command-line arguments. + + (When the feature gate is disabled, creating an object with such an invalid + IP or CIDR value will result in a warning from the API server about the fact + that it will be rejected in the future). +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-122646-map.yaml b/releases/release-1.33/release-notes/maps/pr-122646-map.yaml index 365208b00d9..6d8db8528db 100644 --- a/releases/release-1.33/release-notes/maps/pr-122646-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-122646-map.yaml @@ -1,5 +1,5 @@ -pr: 122646 -releasenote: - text: 'kube-apiserver: shortening the grace period during a pod deletion no longer - moves the `metadata.deletionTimestamp` into the past.' -pr_body: "" +pr: 122646 +releasenote: + text: 'kube-apiserver: shortening the grace period during a pod deletion no longer + moves the `metadata.deletionTimestamp` into the past.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-124360-map.yaml b/releases/release-1.33/release-notes/maps/pr-124360-map.yaml index d1e87143f89..9a417e6a38f 100644 --- a/releases/release-1.33/release-notes/maps/pr-124360-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-124360-map.yaml @@ -1,8 +1,8 @@ -pr: 124360 -releasenote: - text: "It introduces a new scope name `VolumeAttributesClass`. \n\nIt matches all - PVC objects that have the volume attributes class mentioned. \n\nIf you want to - limit the count of PVCs that have a specific volume attributes class. In that - case, you can create a quota object with the scope name `VolumeAttributesClass` - and a `matchExpressions` that match the volume attributes class." -pr_body: "" +pr: 124360 +releasenote: + text: "It introduces a new scope name `VolumeAttributesClass`. \n\nIt matches all + PVC objects that have the volume attributes class mentioned. \n\nIf you want to + limit the count of PVCs that have a specific volume attributes class. In that + case, you can create a quota object with the scope name `VolumeAttributesClass` + and a `matchExpressions` that match the volume attributes class." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-125230-map.yaml b/releases/release-1.33/release-notes/maps/pr-125230-map.yaml index d12bd1ae85f..d3f8765208b 100644 --- a/releases/release-1.33/release-notes/maps/pr-125230-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-125230-map.yaml @@ -1,4 +1,4 @@ -pr: 125230 -releasenote: - text: "kubectl: Added alpha support for customizing kubectl behavior using preferences from a `kuberc` file, separate from `kubeconfig`." -pr_body: "" +pr: 125230 +releasenote: + text: "kubectl: Added alpha support for customizing kubectl behavior using preferences from a `kuberc` file, separate from `kubeconfig`." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-125901-map.yaml b/releases/release-1.33/release-notes/maps/pr-125901-map.yaml index b851fdbf412..5060994d383 100644 --- a/releases/release-1.33/release-notes/maps/pr-125901-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-125901-map.yaml @@ -1,7 +1,7 @@ -pr: 125901 -releasenote: - text: Implemented logging and event recording for probe results with an `Unknown` - status in the kubelet's prober module. This helped improve the diagnosis and monitoring - of cases where container probes returned an `Unknown` result, enhancing the observability - and reliability of health checks. -pr_body: "" +pr: 125901 +releasenote: + text: Implemented logging and event recording for probe results with an `Unknown` + status in the kubelet's prober module. This helped improve the diagnosis and monitoring + of cases where container probes returned an `Unknown` result, enhancing the observability + and reliability of health checks. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-127053-map.yaml b/releases/release-1.33/release-notes/maps/pr-127053-map.yaml index 6bf5f9681f3..24295c6f4d3 100644 --- a/releases/release-1.33/release-notes/maps/pr-127053-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-127053-map.yaml @@ -1,5 +1,5 @@ -pr: 127053 -releasenote: - text: Respect the incoming trace context for authenticated requests to the kube-apiserver - for APIServer tracing. -pr_body: "" +pr: 127053 +releasenote: + text: Respect the incoming trace context for authenticated requests to the kube-apiserver + for APIServer tracing. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-127092-map.yaml b/releases/release-1.33/release-notes/maps/pr-127092-map.yaml index 31598cb4e30..d5552a97034 100644 --- a/releases/release-1.33/release-notes/maps/pr-127092-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-127092-map.yaml @@ -1,9 +1,9 @@ -pr: 127092 -releasenote: - text: Automatically copy `topology.k8s.io/zone`, `topology.k8s.io/region` and `kubernetes.io/hostname` - labels from Node objects to Pods when they are scheduled to a node (via the `pods/binding` - endpoint) to allow applications that need to be explicitly aware of their assigned - node topology to access this information via the downward API, rather than requiring - permission to `get node` objects (exposing the entire API surface of the Node - object to otherwise unprivileged workloads). -pr_body: "" +pr: 127092 +releasenote: + text: Automatically copy `topology.k8s.io/zone`, `topology.k8s.io/region` and `kubernetes.io/hostname` + labels from Node objects to Pods when they are scheduled to a node (via the `pods/binding` + endpoint) to allow applications that need to be explicitly aware of their assigned + node topology to access this information via the downward API, rather than requiring + permission to `get node` objects (exposing the entire API surface of the Node + object to otherwise unprivileged workloads). +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-127193-map.yaml b/releases/release-1.33/release-notes/maps/pr-127193-map.yaml index ec699ea7167..55b3c481b1d 100644 --- a/releases/release-1.33/release-notes/maps/pr-127193-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-127193-map.yaml @@ -1,6 +1,6 @@ -pr: 127193 -releasenote: - text: Fixed a bug in HorizontalPodAutoscaler. HPAs with `ContainerResource` metrics - no longer return an error when container metrics are missing. Instead they use - the same logic as `Resource` metrics to perform calculations. -pr_body: "" +pr: 127193 +releasenote: + text: Fixed a bug in HorizontalPodAutoscaler. HPAs with `ContainerResource` metrics + no longer return an error when container metrics are missing. Instead they use + the same logic as `Resource` metrics to perform calculations. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-127525-map.yaml b/releases/release-1.33/release-notes/maps/pr-127525-map.yaml index 32cd31572b2..ef1dd556551 100644 --- a/releases/release-1.33/release-notes/maps/pr-127525-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-127525-map.yaml @@ -1,9 +1,9 @@ -pr: 127525 -releasenote: - text: When `cpu-manager-policy=static` is configured, containers meeting the qualifications - for static cpu assignment (i.e. Containers with integer CPU `requests` in pods - with `Guaranteed` QOS) will not have cfs quota enforced. Because this fix changes - a long-established behavior, users observing a regressions can use the `DisableCPUQuotaWithExclusiveCPUs` - feature gate (enabled by default) to restore the previous behavior. Please file an issue if - you encounter problems and have to use the Feature Gate. -pr_body: "" +pr: 127525 +releasenote: + text: When `cpu-manager-policy=static` is configured, containers meeting the qualifications + for static cpu assignment (i.e. Containers with integer CPU `requests` in pods + with `Guaranteed` QOS) will not have cfs quota enforced. Because this fix changes + a long-established behavior, users observing a regressions can use the `DisableCPUQuotaWithExclusiveCPUs` + feature gate (enabled by default) to restore the previous behavior. Please file an issue if + you encounter problems and have to use the Feature Gate. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-127577-map.yaml b/releases/release-1.33/release-notes/maps/pr-127577-map.yaml index 90dae371be9..bcea42c8a03 100644 --- a/releases/release-1.33/release-notes/maps/pr-127577-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-127577-map.yaml @@ -1,8 +1,8 @@ -pr: 127577 -releasenote: - text: "`mergeDefaultEvictionSettings` indicates that defaults for the evictionHard, - evictionSoft, evictionSoftGracePeriod, and evictionMinimumReclaim fields should - be merged into values specified for those fields in this configuration. Signals - specified in this configuration take precedence. Signals not specified in this - configuration inherit their defaults." -pr_body: "" +pr: 127577 +releasenote: + text: "`mergeDefaultEvictionSettings` indicates that defaults for the evictionHard, + evictionSoft, evictionSoftGracePeriod, and evictionMinimumReclaim fields should + be merged into values specified for those fields in this configuration. Signals + specified in this configuration take precedence. Signals not specified in this + configuration inherit their defaults." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-127696-map.yaml b/releases/release-1.33/release-notes/maps/pr-127696-map.yaml index 35c8d271d20..aeb56f62a73 100644 --- a/releases/release-1.33/release-notes/maps/pr-127696-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-127696-map.yaml @@ -1,6 +1,6 @@ -pr: 127696 -releasenote: - text: Implemented a warning message to inform users about the debug container's capabilities - granted by debugging profile may not work as expected if a non-root user is specified - in target Pod's `.Spec.SecurityContext.RunAsUser` field. -pr_body: "" +pr: 127696 +releasenote: + text: Implemented a warning message to inform users about the debug container's capabilities + granted by debugging profile may not work as expected if a non-root user is specified + in target Pod's `.Spec.SecurityContext.RunAsUser` field. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-127709-map.yaml b/releases/release-1.33/release-notes/maps/pr-127709-map.yaml index 5cf5dceb2ec..62bccb12c28 100644 --- a/releases/release-1.33/release-notes/maps/pr-127709-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-127709-map.yaml @@ -1,6 +1,6 @@ -pr: 127709 -releasenote: - text: Implemented full support for contextual logging in `client-go/rest`. `BackoffManagerWithContext` - was used instead of `BackoffManager` to ensure that the caller could interrupt - the sleep. -pr_body: "" +pr: 127709 +releasenote: + text: Implemented full support for contextual logging in `client-go/rest`. `BackoffManagerWithContext` + was used instead of `BackoffManager` to ensure that the caller could interrupt + the sleep. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-127897-map.yaml b/releases/release-1.33/release-notes/maps/pr-127897-map.yaml index 55761858e3c..1d6be35fc30 100644 --- a/releases/release-1.33/release-notes/maps/pr-127897-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-127897-map.yaml @@ -1,11 +1,11 @@ -pr: 127897 -releasenote: - text: Kubernetes components that accepted X.509 client certificate - authentication now read the user UID from a certificate subject - name RDN with object ID `1.3.6.1.4.1.57683.2`. An RDN with this - object ID had to contain a string value and appear no more than - once in the certificate subject. Reading the user UID from this - RDN could be disabled by setting the beta feature gate - `AllowParsingUserUIDFromCertAuth` to `false`(until the feature - gate graduated to GA). -pr_body: "" +pr: 127897 +releasenote: + text: Kubernetes components that accepted X.509 client certificate + authentication now read the user UID from a certificate subject + name RDN with object ID `1.3.6.1.4.1.57683.2`. An RDN with this + object ID had to contain a string value and appear no more than + once in the certificate subject. Reading the user UID from this + RDN could be disabled by setting the beta feature gate + `AllowParsingUserUIDFromCertAuth` to `false`(until the feature + gate graduated to GA). +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128086-map.yaml b/releases/release-1.33/release-notes/maps/pr-128086-map.yaml index 2c5421ee0a9..1a5d770ab3d 100644 --- a/releases/release-1.33/release-notes/maps/pr-128086-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128086-map.yaml @@ -1,5 +1,5 @@ -pr: 128086 -releasenote: - text: Fixed a storage bug related to multipath. iSCSI and Fibre Channel devices - attached to nodes via multipath now resolve correctly when partitioned. -pr_body: "" +pr: 128086 +releasenote: + text: Fixed a storage bug related to multipath. iSCSI and Fibre Channel devices + attached to nodes via multipath now resolve correctly when partitioned. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128152-map.yaml b/releases/release-1.33/release-notes/maps/pr-128152-map.yaml index 72096ccfdfa..0a2af4cca61 100644 --- a/releases/release-1.33/release-notes/maps/pr-128152-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128152-map.yaml @@ -1,7 +1,7 @@ -pr: 128152 -releasenote: - text: |- - New configuration is introduced to the kubelet that allows it to track container images and the list of authentication information that lead to their successful pulls . This data is persisted across reboots of the host and restarts of the kubelet. - - The kubelet ensures any image requiring credential verification is always pulled if authentication information from an image pull is not yet present, thus enforcing authentication / re-authentication. This means an image pull might be attempted even in cases where a pod requests the `IfNotPresent` image pull policy, and might lead to the pod not starting if its pull policy is `Never` and is unable to present authentication information that lead to a previous successful pull of the image it is requesting. -pr_body: "" +pr: 128152 +releasenote: + text: |- + New configuration is introduced to the kubelet that allows it to track container images and the list of authentication information that lead to their successful pulls . This data is persisted across reboots of the host and restarts of the kubelet. + + The kubelet ensures any image requiring credential verification is always pulled if authentication information from an image pull is not yet present, thus enforcing authentication / re-authentication. This means an image pull might be attempted even in cases where a pod requests the `IfNotPresent` image pull policy, and might lead to the pod not starting if its pull policy is `Never` and is unable to present authentication information that lead to a previous successful pull of the image it is requesting. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128184-map.yaml b/releases/release-1.33/release-notes/maps/pr-128184-map.yaml index 62ae65f2af9..4eff6962b80 100644 --- a/releases/release-1.33/release-notes/maps/pr-128184-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128184-map.yaml @@ -1,9 +1,9 @@ -pr: 128184 -releasenote: - text: The `StorageCapacityScoring` feature gate was added to score nodes by available - storage capacity. It's in alpha and disabled by default. The `VolumeCapacityPriority` - alpha feature was replaced with this, and the default behavior was changed. The - `VolumeCapacityPriority` preferred a node with the least allocatable, but the - `StorageCapacityScoring` preferred a node with the maximum allocatable. See [KEP-4049](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning/README.md) - for details. -pr_body: "" +pr: 128184 +releasenote: + text: The `StorageCapacityScoring` feature gate was added to score nodes by available + storage capacity. It's in alpha and disabled by default. The `VolumeCapacityPriority` + alpha feature was replaced with this, and the default behavior was changed. The + `VolumeCapacityPriority` preferred a node with the least allocatable, but the + `StorageCapacityScoring` preferred a node with the maximum allocatable. See [KEP-4049](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning/README.md) + for details. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128212-map.yaml b/releases/release-1.33/release-notes/maps/pr-128212-map.yaml index 50c1142c31c..24115dc3b7f 100644 --- a/releases/release-1.33/release-notes/maps/pr-128212-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128212-map.yaml @@ -1,5 +1,5 @@ -pr: 128212 -releasenote: - text: Implemented validation for `NodeSelectorRequirement` values in Kubernetes - when creating pods. -pr_body: "" +pr: 128212 +releasenote: + text: Implemented validation for `NodeSelectorRequirement` values in Kubernetes + when creating pods. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128367-map.yaml b/releases/release-1.33/release-notes/maps/pr-128367-map.yaml index d8296467c4d..a3d3c509908 100644 --- a/releases/release-1.33/release-notes/maps/pr-128367-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128367-map.yaml @@ -1,5 +1,5 @@ -pr: 128367 -releasenote: - text: Added support for in-place vertical scaling of Pods with sidecars (containers - defined within `initContainers` where the `restartPolicy` is set to `Always`). -pr_body: "" +pr: 128367 +releasenote: + text: Added support for in-place vertical scaling of Pods with sidecars (containers + defined within `initContainers` where the `restartPolicy` is set to `Always`). +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128372-map.yaml b/releases/release-1.33/release-notes/maps/pr-128372-map.yaml index ad768cb8431..5afed5531f3 100644 --- a/releases/release-1.33/release-notes/maps/pr-128372-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128372-map.yaml @@ -1,10 +1,10 @@ -pr: 128372 -releasenote: - text: Expanded the on-disk kubelet credential provider configuration to allow an - optional `tokenAttribute` field to be configured. When it is set, the Kubelet - will provision a token with the given audience bound to the current pod and its - service account. This KSA token along with required annotations on the KSA defined - in configuration will be sent to the credential provider plugin via its standard - input (along with the image information that is already sent today). The KSA annotations - to be sent are configurable in the kubelet credential provider configuration. -pr_body: "" +pr: 128372 +releasenote: + text: Expanded the on-disk kubelet credential provider configuration to allow an + optional `tokenAttribute` field to be configured. When it is set, the Kubelet + will provision a token with the given audience bound to the current pod and its + service account. This KSA token along with required annotations on the KSA defined + in configuration will be sent to the credential provider plugin via its standard + input (along with the image information that is already sent today). The KSA annotations + to be sent are configurable in the kubelet credential provider configuration. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128499-map.yaml b/releases/release-1.33/release-notes/maps/pr-128499-map.yaml index d4218bbfc8b..f62cb32cb36 100644 --- a/releases/release-1.33/release-notes/maps/pr-128499-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128499-map.yaml @@ -1,6 +1,6 @@ -pr: 128499 -releasenote: - text: |- - The `ClusterTrustBundle` API is moving to v1beta1. - In order for the `ClusterTrustBundleProjection` feature to work on the kubelet side, the `ClusterTrustBundle` API must be available at v1beta1 version and the `ClusterTrustBundleProjection` feature gate must be enabled. If the API becomes later after kubelet started running, restart the kubelet to enable the feature. -pr_body: "" +pr: 128499 +releasenote: + text: |- + The `ClusterTrustBundle` API is moving to v1beta1. + In order for the `ClusterTrustBundleProjection` feature to work on the kubelet side, the `ClusterTrustBundle` API must be available at v1beta1 version and the `ClusterTrustBundleProjection` feature gate must be enabled. If the API becomes later after kubelet started running, restart the kubelet to enable the feature. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128516-map.yaml b/releases/release-1.33/release-notes/maps/pr-128516-map.yaml index 2081bad4274..ee17694d06f 100644 --- a/releases/release-1.33/release-notes/maps/pr-128516-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128516-map.yaml @@ -1,4 +1,4 @@ -pr: 128516 -releasenote: - text: Fixed an issue where pods did not correctly have a pending phase after the node reboot. -pr_body: "" +pr: 128516 +releasenote: + text: Fixed an issue where pods did not correctly have a pending phase after the node reboot. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128546-map.yaml b/releases/release-1.33/release-notes/maps/pr-128546-map.yaml index 6c895d952e0..01c343e3fc0 100644 --- a/releases/release-1.33/release-notes/maps/pr-128546-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128546-map.yaml @@ -1,6 +1,6 @@ -pr: 128546 -releasenote: - text: Implemented a new status field, `.status.terminatingReplicas`, for Deployments - and ReplicaSets to track terminating pods. The new field is present when the `DeploymentPodReplacementPolicy` - feature gate is enabled. -pr_body: "" +pr: 128546 +releasenote: + text: Implemented a new status field, `.status.terminatingReplicas`, for Deployments + and ReplicaSets to track terminating pods. The new field is present when the `DeploymentPodReplacementPolicy` + feature gate is enabled. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128586-map.yaml b/releases/release-1.33/release-notes/maps/pr-128586-map.yaml index f5b9bdb7930..e5117f31bcc 100644 --- a/releases/release-1.33/release-notes/maps/pr-128586-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128586-map.yaml @@ -1,5 +1,5 @@ -pr: 128586 -releasenote: - text: Added DRA support for a "one-of" prioritized list of selection criteria to - satisfy a device request in a resource claim. -pr_body: "" +pr: 128586 +releasenote: + text: Added DRA support for a "one-of" prioritized list of selection criteria to + satisfy a device request in a resource claim. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128621-map.yaml b/releases/release-1.33/release-notes/maps/pr-128621-map.yaml index 61b21697924..e6c16af7dfd 100644 --- a/releases/release-1.33/release-notes/maps/pr-128621-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128621-map.yaml @@ -1,4 +1,4 @@ -pr: 128621 -releasenote: - text: Fixed CVE-2024-51744. -pr_body: "" +pr: 128621 +releasenote: + text: Fixed CVE-2024-51744. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128662-map.yaml b/releases/release-1.33/release-notes/maps/pr-128662-map.yaml index b08e2087bdd..1ff60e256f8 100644 --- a/releases/release-1.33/release-notes/maps/pr-128662-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128662-map.yaml @@ -1,5 +1,5 @@ -pr: 128662 -releasenote: - text: Fixed `kubectl wait --for=create` behavior with label selectors, to properly - wait for resources with matching labels to appear. -pr_body: "" +pr: 128662 +releasenote: + text: Fixed `kubectl wait --for=create` behavior with label selectors, to properly + wait for resources with matching labels to appear. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128786-map.yaml b/releases/release-1.33/release-notes/maps/pr-128786-map.yaml index 09395194473..5fb12ee1aed 100644 --- a/releases/release-1.33/release-notes/maps/pr-128786-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128786-map.yaml @@ -1,8 +1,8 @@ -pr: 128786 -releasenote: - text: |- - The apiserver now returns warnings when objects are created with "invalid" IP - or CIDR values (e.g. 192.168.000.005", with extra zeros). - Non-standard formats may introduce security risks and are likely to be - forbidden in a future Kubernetes release. -pr_body: "" +pr: 128786 +releasenote: + text: |- + The apiserver now returns warnings when objects are created with "invalid" IP + or CIDR values (e.g. 192.168.000.005", with extra zeros). + Non-standard formats may introduce security risks and are likely to be + forbidden in a future Kubernetes release. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128810-map.yaml b/releases/release-1.33/release-notes/maps/pr-128810-map.yaml index 686bd1b5622..3f9f4289d3a 100644 --- a/releases/release-1.33/release-notes/maps/pr-128810-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128810-map.yaml @@ -1,6 +1,6 @@ -pr: 128810 -releasenote: - text: Implemented the `scheduler_cache_size` metric. Additionally, the `scheduler_scheduler_cache_size` - metric is now deprecated in favor of `scheduler_cache_size`, and will be removed in - v1.34. -pr_body: "" +pr: 128810 +releasenote: + text: Implemented the `scheduler_cache_size` metric. Additionally, the `scheduler_scheduler_cache_size` + metric is now deprecated in favor of `scheduler_cache_size`, and will be removed in + v1.34. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128811-map.yaml b/releases/release-1.33/release-notes/maps/pr-128811-map.yaml index 6a7cbd41a14..8fcced539f3 100644 --- a/releases/release-1.33/release-notes/maps/pr-128811-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128811-map.yaml @@ -1,4 +1,4 @@ -pr: 128811 -releasenote: - text: Added a `/statusz` HTTP endpoint to the kubelet. -pr_body: "" +pr: 128811 +releasenote: + text: Added a `/statusz` HTTP endpoint to the kubelet. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128818-map.yaml b/releases/release-1.33/release-notes/maps/pr-128818-map.yaml index d223049b1b7..f6b986f4a17 100644 --- a/releases/release-1.33/release-notes/maps/pr-128818-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128818-map.yaml @@ -1,4 +1,4 @@ -pr: 128818 -releasenote: - text: Added a `/statusz` HTTP endpoint to the kube-scheduler. -pr_body: "" +pr: 128818 +releasenote: + text: Added a `/statusz` HTTP endpoint to the kube-scheduler. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128824-map.yaml b/releases/release-1.33/release-notes/maps/pr-128824-map.yaml index 4ee0e5544ac..57b55c0f50e 100644 --- a/releases/release-1.33/release-notes/maps/pr-128824-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128824-map.yaml @@ -1,4 +1,4 @@ -pr: 128824 -releasenote: - text: Added a `/flagz` endpoint for kube-controller-manager endpoint. -pr_body: "" +pr: 128824 +releasenote: + text: Added a `/flagz` endpoint for kube-controller-manager endpoint. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128850-map.yaml b/releases/release-1.33/release-notes/maps/pr-128850-map.yaml index 76cddf8daf0..efe5c4313a7 100644 --- a/releases/release-1.33/release-notes/maps/pr-128850-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128850-map.yaml @@ -1,6 +1,6 @@ -pr: 128850 -releasenote: - text: "Fixed an issue with Kubernetes-style sidecar containers - (in other words: init containers with an Always restart policy) and Services. Before the fix, - named ports exposed by a sidecar could not be accessed using a Service." -pr_body: "" +pr: 128850 +releasenote: + text: "Fixed an issue with Kubernetes-style sidecar containers + (in other words: init containers with an Always restart policy) and Services. Before the fix, + named ports exposed by a sidecar could not be accessed using a Service." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128856-map.yaml b/releases/release-1.33/release-notes/maps/pr-128856-map.yaml index 55b9d33a025..ae78a217fd9 100644 --- a/releases/release-1.33/release-notes/maps/pr-128856-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128856-map.yaml @@ -1,4 +1,4 @@ -pr: 128856 -releasenote: - text: Fixed a linting issue in `TestNodeDeletionReleaseCIDR`. -pr_body: "" +pr: 128856 +releasenote: + text: Fixed a linting issue in `TestNodeDeletionReleaseCIDR`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128857-map.yaml b/releases/release-1.33/release-notes/maps/pr-128857-map.yaml index 8271bd8dd15..9a52393e12e 100644 --- a/releases/release-1.33/release-notes/maps/pr-128857-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128857-map.yaml @@ -1,4 +1,4 @@ -pr: 128857 -releasenote: - text: Added a `/flagz` endpoint for kubelet endpoint. -pr_body: "" +pr: 128857 +releasenote: + text: Added a `/flagz` endpoint for kubelet endpoint. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128886-map.yaml b/releases/release-1.33/release-notes/maps/pr-128886-map.yaml index 33e94ab3479..c7f2c1f0f90 100644 --- a/releases/release-1.33/release-notes/maps/pr-128886-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128886-map.yaml @@ -1,6 +1,6 @@ -pr: 128886 -releasenote: - text: Implemented logging for failed transactions and the full table in `kube-proxy` - with `nftables` when using log level 4 or higher. Logging is rate-limited to one - entry every 24 hours to avoid performance issues. -pr_body: "" +pr: 128886 +releasenote: + text: Implemented logging for failed transactions and the full table in `kube-proxy` + with `nftables` when using log level 4 or higher. Logging is rate-limited to one + entry every 24 hours to avoid performance issues. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128906-map.yaml b/releases/release-1.33/release-notes/maps/pr-128906-map.yaml index abdc62d1ac0..eb3d6852d78 100644 --- a/releases/release-1.33/release-notes/maps/pr-128906-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128906-map.yaml @@ -1,6 +1,6 @@ -pr: 128906 -releasenote: - text: |- - Removed the deprecated `pod_scheduling_duration_seconds` metric. Users need to - migrate to `pod_scheduling_sli_duration_seconds`. -pr_body: "" +pr: 128906 +releasenote: + text: |- + Removed the deprecated `pod_scheduling_duration_seconds` metric. Users need to + migrate to `pod_scheduling_sli_duration_seconds`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128926-map.yaml b/releases/release-1.33/release-notes/maps/pr-128926-map.yaml index b95cc4f5739..5905bc86986 100644 --- a/releases/release-1.33/release-notes/maps/pr-128926-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128926-map.yaml @@ -1,4 +1,4 @@ -pr: 128926 -releasenote: - text: Changed the dependency version for CoreDNS. Kubernetes tools now install CoreDNS `v1.12.0`. -pr_body: "" +pr: 128926 +releasenote: + text: Changed the dependency version for CoreDNS. Kubernetes tools now install CoreDNS `v1.12.0`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128929-map.yaml b/releases/release-1.33/release-notes/maps/pr-128929-map.yaml index 94bf603a3f5..65933926cf5 100644 --- a/releases/release-1.33/release-notes/maps/pr-128929-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128929-map.yaml @@ -1,4 +1,4 @@ -pr: 128929 -releasenote: - text: Fixed a bug where the kube-proxy `EndpointSliceCache` memory experienced a leak. -pr_body: "" +pr: 128929 +releasenote: + text: Fixed a bug where the kube-proxy `EndpointSliceCache` memory experienced a leak. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128950-map.yaml b/releases/release-1.33/release-notes/maps/pr-128950-map.yaml index 2cbde9610be..640f5218e77 100644 --- a/releases/release-1.33/release-notes/maps/pr-128950-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128950-map.yaml @@ -1,7 +1,7 @@ -pr: 128950 -releasenote: - text: Upgraded the `kubectl autoscale` subcommand to use `autoscaling/v2` rather than `autoscaling/v1` APIs. - The command now attempts to use the `autoscaling/v2` API first. If the `autoscaling/v2` - API is unavailable or an error occurs, it falls fall back to the `autoscaling/v1` - API. -pr_body: "" +pr: 128950 +releasenote: + text: Upgraded the `kubectl autoscale` subcommand to use `autoscaling/v2` rather than `autoscaling/v1` APIs. + The command now attempts to use the `autoscaling/v2` API first. If the `autoscaling/v2` + API is unavailable or an error occurs, it falls fall back to the `autoscaling/v1` + API. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128971-map.yaml b/releases/release-1.33/release-notes/maps/pr-128971-map.yaml index 5fc4044f62c..b3ad83805e9 100644 --- a/releases/release-1.33/release-notes/maps/pr-128971-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128971-map.yaml @@ -1,6 +1,6 @@ -pr: 128971 -releasenote: - text: |- - TODO, as the current Rease Note is very big, we are keeping it for now to - update it later (Before the final cut). -pr_body: "" +pr: 128971 +releasenote: + text: |- + TODO, as the current Rease Note is very big, we are keeping it for now to + update it later (Before the final cut). +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128972-map.yaml b/releases/release-1.33/release-notes/maps/pr-128972-map.yaml index c5c882e8dc5..70ebbe91746 100644 --- a/releases/release-1.33/release-notes/maps/pr-128972-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128972-map.yaml @@ -1,4 +1,4 @@ -pr: 128972 -releasenote: - text: Added e2e tests for volume group snapshots. -pr_body: "" +pr: 128972 +releasenote: + text: Added e2e tests for volume group snapshots. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128985-map.yaml b/releases/release-1.33/release-notes/maps/pr-128985-map.yaml index c06fe8d0440..1359cace3a7 100644 --- a/releases/release-1.33/release-notes/maps/pr-128985-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128985-map.yaml @@ -1,4 +1,4 @@ -pr: 128985 -releasenote: - text: Added a `/flagz` endpoint for kube-proxy. -pr_body: "" +pr: 128985 +releasenote: + text: Added a `/flagz` endpoint for kube-proxy. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128987-map.yaml b/releases/release-1.33/release-notes/maps/pr-128987-map.yaml index 687efcab933..532b961fedc 100644 --- a/releases/release-1.33/release-notes/maps/pr-128987-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128987-map.yaml @@ -1,4 +1,4 @@ -pr: 128987 -releasenote: - text: Added a `/statusz` endpoint for kube-scheduler. -pr_body: "" +pr: 128987 +releasenote: + text: Added a `/statusz` endpoint for kube-scheduler. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128989-map.yaml b/releases/release-1.33/release-notes/maps/pr-128989-map.yaml index ef9ac59e9b8..f0c6160094c 100644 --- a/releases/release-1.33/release-notes/maps/pr-128989-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128989-map.yaml @@ -1,4 +1,4 @@ -pr: 128989 -releasenote: - text: Added a `/status` endpoint for kube-proxy. -pr_body: "" +pr: 128989 +releasenote: + text: Added a `/status` endpoint for kube-proxy. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-128991-map.yaml b/releases/release-1.33/release-notes/maps/pr-128991-map.yaml index 07af5ea4e0e..967c5b9f60e 100644 --- a/releases/release-1.33/release-notes/maps/pr-128991-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-128991-map.yaml @@ -1,4 +1,4 @@ -pr: 128991 -releasenote: - text: Added a `/statusz` endpoint for kube-controller-manager. -pr_body: "" +pr: 128991 +releasenote: + text: Added a `/statusz` endpoint for kube-controller-manager. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129006-map.yaml b/releases/release-1.33/release-notes/maps/pr-129006-map.yaml index 98ce7da9366..d9f21f5c847 100644 --- a/releases/release-1.33/release-notes/maps/pr-129006-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129006-map.yaml @@ -1,5 +1,5 @@ -pr: 129006 -releasenote: - text: "kubeadm: Avoided loading the file passed to `--kubeconfig` - during `kubeadm init` phases more than once." -pr_body: "" +pr: 129006 +releasenote: + text: "kubeadm: Avoided loading the file passed to `--kubeconfig` + during `kubeadm init` phases more than once." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129017-map.yaml b/releases/release-1.33/release-notes/maps/pr-129017-map.yaml index 13b11008129..572916764fa 100644 --- a/releases/release-1.33/release-notes/maps/pr-129017-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129017-map.yaml @@ -1,5 +1,5 @@ -pr: 129017 -releasenote: - text: Added a validation for the `revisionHistoryLimit` field in the `.spec` of a StatefulSet, - to prevent it from being set to a negative value. -pr_body: "" +pr: 129017 +releasenote: + text: Added a validation for the `revisionHistoryLimit` field in the `.spec` of a StatefulSet, + to prevent it from being set to a negative value. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129023-map.yaml b/releases/release-1.33/release-notes/maps/pr-129023-map.yaml index fe9812010dc..63a655c8984 100644 --- a/releases/release-1.33/release-notes/maps/pr-129023-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129023-map.yaml @@ -1,6 +1,6 @@ -pr: 129023 -releasenote: - text: |- - Renamed `UpdatePodTolerations` action type to `UpdatePodToleration`. - Action required for custom plugin developers to update their code to follow the rename. -pr_body: "" +pr: 129023 +releasenote: + text: |- + Renamed `UpdatePodTolerations` action type to `UpdatePodToleration`. + Action required for custom plugin developers to update their code to follow the rename. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129028-map.yaml b/releases/release-1.33/release-notes/maps/pr-129028-map.yaml index 00b362bdaf8..db10feb18a9 100644 --- a/releases/release-1.33/release-notes/maps/pr-129028-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129028-map.yaml @@ -1,4 +1,4 @@ -pr: 129028 -releasenote: - text: Added unit test helpers to validate CEL and patterns in CustomResourceDefinitions. -pr_body: "" +pr: 129028 +releasenote: + text: Added unit test helpers to validate CEL and patterns in CustomResourceDefinitions. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129058-map.yaml b/releases/release-1.33/release-notes/maps/pr-129058-map.yaml index 162b1da0a91..64b3e9599b8 100644 --- a/releases/release-1.33/release-notes/maps/pr-129058-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129058-map.yaml @@ -1,6 +1,6 @@ -pr: 129058 -releasenote: - text: Revised scheduling behavior to correctly handle nominated node changes. Trigger - rescheduling of pods if necessary when pods with nominated node names got deleted - or nominated on a different node. -pr_body: "" +pr: 129058 +releasenote: + text: Revised scheduling behavior to correctly handle nominated node changes. Trigger + rescheduling of pods if necessary when pods with nominated node names got deleted + or nominated on a different node. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129072-map.yaml b/releases/release-1.33/release-notes/maps/pr-129072-map.yaml index 99f2e068771..bec7e80534c 100644 --- a/releases/release-1.33/release-notes/maps/pr-129072-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129072-map.yaml @@ -1,4 +1,4 @@ -pr: 129072 -releasenote: - text: Added validation of `containerLogMaxFiles` within kubelet configuration files. -pr_body: "" +pr: 129072 +releasenote: + text: Added validation of `containerLogMaxFiles` within kubelet configuration files. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129106-map.yaml b/releases/release-1.33/release-notes/maps/pr-129106-map.yaml index 179e02b6c7f..f79485451b8 100644 --- a/releases/release-1.33/release-notes/maps/pr-129106-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129106-map.yaml @@ -1,5 +1,5 @@ -pr: 129106 -releasenote: - text: Added an example of set-based requirements for the `-l` / `--selector` command - line option to `kubectl`. -pr_body: "" +pr: 129106 +releasenote: + text: Added an example of set-based requirements for the `-l` / `--selector` command + line option to `kubectl`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129116-map.yaml b/releases/release-1.33/release-notes/maps/pr-129116-map.yaml index 0290747268b..527f97e9766 100644 --- a/releases/release-1.33/release-notes/maps/pr-129116-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129116-map.yaml @@ -1,4 +1,4 @@ -pr: 129116 -releasenote: - text: Updated cri-tools to `v1.32.0`. -pr_body: "" +pr: 129116 +releasenote: + text: Updated cri-tools to `v1.32.0`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129119-map.yaml b/releases/release-1.33/release-notes/maps/pr-129119-map.yaml index 395a12c0ded..3f9f296fdab 100644 --- a/releases/release-1.33/release-notes/maps/pr-129119-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129119-map.yaml @@ -1,4 +1,4 @@ -pr: 129119 -releasenote: - text: Improved scheduling performance of pods with required topology spreading. -pr_body: "" +pr: 129119 +releasenote: + text: Improved scheduling performance of pods with required topology spreading. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129131-map.yaml b/releases/release-1.33/release-notes/maps/pr-129131-map.yaml index 183d3c7f76a..1b87b1a2183 100644 --- a/releases/release-1.33/release-notes/maps/pr-129131-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129131-map.yaml @@ -1,7 +1,7 @@ -pr: 129131 -releasenote: - text: 'kubeadm: removed preflight check for `ip`, `iptables`, `ethtool` and `tc` - on Linux nodes. kubelet and kube-proxy will continue to report `iptables` errors - if its usage is required. The tools `ip`, `ethtool` and `tc` had legacy usage - in the kubelet but are no longer required.' -pr_body: "" +pr: 129131 +releasenote: + text: 'kubeadm: removed preflight check for `ip`, `iptables`, `ethtool` and `tc` + on Linux nodes. kubelet and kube-proxy will continue to report `iptables` errors + if its usage is required. The tools `ip`, `ethtool` and `tc` had legacy usage + in the kubelet but are no longer required.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129142-map.yaml b/releases/release-1.33/release-notes/maps/pr-129142-map.yaml index 9f0427f9e2b..5e62fd4a9b3 100644 --- a/releases/release-1.33/release-notes/maps/pr-129142-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129142-map.yaml @@ -1,5 +1,5 @@ -pr: 129142 -releasenote: - text: Changed the signature of `PublishResources()` for ResourceSlices to accept a `resourceslice.DriverResources` - parameter instead of a `Resources` parameter. -pr_body: "" +pr: 129142 +releasenote: + text: Changed the signature of `PublishResources()` for ResourceSlices to accept a `resourceslice.DriverResources` + parameter instead of a `Resources` parameter. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129151-map.yaml b/releases/release-1.33/release-notes/maps/pr-129151-map.yaml index 9170824b581..c445141b1f4 100644 --- a/releases/release-1.33/release-notes/maps/pr-129151-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129151-map.yaml @@ -1,6 +1,6 @@ -pr: 129151 -releasenote: - text: Improved reboot event reporting. The kubelet will only emit one reboot Event - when a server-level reboot is detected, even if the kubelet cannot write its status - to the associated Node (which triggers a retry). -pr_body: "" +pr: 129151 +releasenote: + text: Improved reboot event reporting. The kubelet will only emit one reboot Event + when a server-level reboot is detected, even if the kubelet cannot write its status + to the associated Node (which triggers a retry). +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129170-map.yaml b/releases/release-1.33/release-notes/maps/pr-129170-map.yaml index cfdb38638fe..82df2789ca4 100644 --- a/releases/release-1.33/release-notes/maps/pr-129170-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129170-map.yaml @@ -1,5 +1,5 @@ -pr: 129170 -releasenote: - text: Fixed a data race that could occur when a single Go type was serialized to - CBOR concurrently for the first time within a program. -pr_body: "" +pr: 129170 +releasenote: + text: Fixed a data race that could occur when a single Go type was serialized to + CBOR concurrently for the first time within a program. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129173-map.yaml b/releases/release-1.33/release-notes/maps/pr-129173-map.yaml index e1543bf71a4..8bd82af2d4a 100644 --- a/releases/release-1.33/release-notes/maps/pr-129173-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129173-map.yaml @@ -1,5 +1,5 @@ -pr: 129173 -releasenote: - text: Extended the schema of kube-proxy's metrics / endpoints to incorporate information - about the corresponding IP family. -pr_body: "" +pr: 129173 +releasenote: + text: Extended the schema of kube-proxy's metrics / endpoints to incorporate information + about the corresponding IP family. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129174-map.yaml b/releases/release-1.33/release-notes/maps/pr-129174-map.yaml index 807fbe8f7f5..b08cc40ea25 100644 --- a/releases/release-1.33/release-notes/maps/pr-129174-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129174-map.yaml @@ -1,4 +1,4 @@ -pr: 129174 -releasenote: - text: Removed the limitation on exposing port 10250 externally using a Service. -pr_body: "" +pr: 129174 +releasenote: + text: Removed the limitation on exposing port 10250 externally using a Service. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129175-map.yaml b/releases/release-1.33/release-notes/maps/pr-129175-map.yaml index 512d4fd7c6d..c5c0035cd7e 100644 --- a/releases/release-1.33/release-notes/maps/pr-129175-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129175-map.yaml @@ -1,4 +1,4 @@ -pr: 129175 -releasenote: - text: Renamed coredns metrics, see https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics. -pr_body: "" +pr: 129175 +releasenote: + text: Renamed coredns metrics, see https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129186-map.yaml b/releases/release-1.33/release-notes/maps/pr-129186-map.yaml index fd9f47072c1..48206bcd7b7 100644 --- a/releases/release-1.33/release-notes/maps/pr-129186-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129186-map.yaml @@ -1,5 +1,5 @@ -pr: 129186 -releasenote: - text: 'kube-apiserver: inactive serving code is removed for `authentication.k8s.io/v1alpha1` - APIs.' -pr_body: "" +pr: 129186 +releasenote: + text: 'kube-apiserver: inactive serving code is removed for `authentication.k8s.io/v1alpha1` + APIs.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129207-map.yaml b/releases/release-1.33/release-notes/maps/pr-129207-map.yaml index e5339936240..f4d09642f1a 100644 --- a/releases/release-1.33/release-notes/maps/pr-129207-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129207-map.yaml @@ -1,5 +1,5 @@ -pr: 129207 -releasenote: - text: Removed support for `v1alpha1` version of `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` - API kinds. -pr_body: "" +pr: 129207 +releasenote: + text: Removed support for `v1alpha1` version of `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` + API kinds. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129219-map.yaml b/releases/release-1.33/release-notes/maps/pr-129219-map.yaml index b1d5b5e1124..fce28e2401c 100644 --- a/releases/release-1.33/release-notes/maps/pr-129219-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129219-map.yaml @@ -1,6 +1,6 @@ -pr: 129219 -releasenote: - text: |- - When using the Alpha `DRAResourceClaimDeviceStatus` feature, IP address values - in the `NetworkDeviceData` are now validated more strictly. -pr_body: "" +pr: 129219 +releasenote: + text: |- + When using the Alpha `DRAResourceClaimDeviceStatus` feature, IP address values + in the `NetworkDeviceData` are now validated more strictly. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129232-map.yaml b/releases/release-1.33/release-notes/maps/pr-129232-map.yaml index bf7195fd9a7..fd27252bc60 100644 --- a/releases/release-1.33/release-notes/maps/pr-129232-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129232-map.yaml @@ -1,4 +1,4 @@ -pr: 129232 -releasenote: - text: Renamed some metrics related to CoreDNS, see the [README](https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics) for v1.11.0 of CoreDNS. -pr_body: "" +pr: 129232 +releasenote: + text: Renamed some metrics related to CoreDNS, see the [README](https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics) for v1.11.0 of CoreDNS. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129257-map.yaml b/releases/release-1.33/release-notes/maps/pr-129257-map.yaml index 335251397f3..743f5469ed8 100644 --- a/releases/release-1.33/release-notes/maps/pr-129257-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129257-map.yaml @@ -1,6 +1,6 @@ -pr: 129257 -releasenote: - text: '`kubectl apply` now coerces `null` values for labels and annotations in manifests - to empty string values, consistent with typed JSON metadata decoding, rather than - dropping all labels and annotations.' -pr_body: "" +pr: 129257 +releasenote: + text: '`kubectl apply` now coerces `null` values for labels and annotations in manifests + to empty string values, consistent with typed JSON metadata decoding, rather than + dropping all labels and annotations.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129271-map.yaml b/releases/release-1.33/release-notes/maps/pr-129271-map.yaml index 411c933d0e5..34b170532f8 100644 --- a/releases/release-1.33/release-notes/maps/pr-129271-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129271-map.yaml @@ -1,5 +1,5 @@ -pr: 129271 -releasenote: - text: Extended the schema of the kube-proxy `healthz` and `livez` HTTP endpoints to incorporate - information about the corresponding IP family. -pr_body: "" +pr: 129271 +releasenote: + text: Extended the schema of the kube-proxy `healthz` and `livez` HTTP endpoints to incorporate + information about the corresponding IP family. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129278-map.yaml b/releases/release-1.33/release-notes/maps/pr-129278-map.yaml index 359f4d5f629..83121a3f727 100644 --- a/releases/release-1.33/release-notes/maps/pr-129278-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129278-map.yaml @@ -1,6 +1,6 @@ -pr: 129278 -releasenote: - text: 'kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the - flag `--container-runtime-endpoint` from the `/var/lib/kubelet/kubeadm-flags.env` - file on `kubeadm upgrade`.' -pr_body: "" +pr: 129278 +releasenote: + text: 'kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the + flag `--container-runtime-endpoint` from the `/var/lib/kubelet/kubeadm-flags.env` + file on `kubeadm upgrade`.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129279-map.yaml b/releases/release-1.33/release-notes/maps/pr-129279-map.yaml index 31bef07553d..a989ecead9b 100644 --- a/releases/release-1.33/release-notes/maps/pr-129279-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129279-map.yaml @@ -1,6 +1,6 @@ -pr: 129279 -releasenote: - text: 'kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the - `kubeadm.alpha.kubernetes.io/cri-socket` annotation from a given node on `kubeadm - upgrade`.' -pr_body: "" +pr: 129279 +releasenote: + text: 'kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the + `kubeadm.alpha.kubernetes.io/cri-socket` annotation from a given node on `kubeadm + upgrade`.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129295-map.yaml b/releases/release-1.33/release-notes/maps/pr-129295-map.yaml index 22803e85264..12f75239385 100644 --- a/releases/release-1.33/release-notes/maps/pr-129295-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129295-map.yaml @@ -1,4 +1,4 @@ -pr: 129295 -releasenote: - text: Removed general available feature gate `PersistentVolumeLastPhaseTransitionTime`. -pr_body: "" +pr: 129295 +releasenote: + text: Removed general available feature gate `PersistentVolumeLastPhaseTransitionTime`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129296-map.yaml b/releases/release-1.33/release-notes/maps/pr-129296-map.yaml index ea62d9aae0c..1042b50d94c 100644 --- a/releases/release-1.33/release-notes/maps/pr-129296-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129296-map.yaml @@ -1,4 +1,4 @@ -pr: 129296 -releasenote: - text: Removed general available feature gate `CPUManager`. -pr_body: "" +pr: 129296 +releasenote: + text: Removed general available feature gate `CPUManager`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129297-map.yaml b/releases/release-1.33/release-notes/maps/pr-129297-map.yaml index b325b173916..42ad47e8cd0 100644 --- a/releases/release-1.33/release-notes/maps/pr-129297-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129297-map.yaml @@ -1,8 +1,8 @@ -pr: 129297 -releasenote: - text: Promoted the feature gate `CSIMigrationPortworx` to GA. If your applications - are using Portworx volumes, please make sure that the corresponding Portworx CSI - driver is installed on your cluster **before** upgrading to 1.31 or later because - all operations for the in-tree `portworxVolume` type are redirected to the pxd.portworx.com - CSI driver when the feature gate is enabled. -pr_body: "" +pr: 129297 +releasenote: + text: Promoted the feature gate `CSIMigrationPortworx` to GA. If your applications + are using Portworx volumes, please make sure that the corresponding Portworx CSI + driver is installed on your cluster **before** upgrading to 1.31 or later because + all operations for the in-tree `portworxVolume` type are redirected to the pxd.portworx.com + CSI driver when the feature gate is enabled. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129301-map.yaml b/releases/release-1.33/release-notes/maps/pr-129301-map.yaml index 9a2cb6d46ef..37acc5292d1 100644 --- a/releases/release-1.33/release-notes/maps/pr-129301-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129301-map.yaml @@ -1,5 +1,5 @@ -pr: 129301 -releasenote: - text: Fixed a panic in kube-controller-manager handling StatefulSet objects when - `revisionHistoryLimit` is negative. -pr_body: "" +pr: 129301 +releasenote: + text: Fixed a panic in kube-controller-manager handling StatefulSet objects when + `revisionHistoryLimit` is negative. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129307-map.yaml b/releases/release-1.33/release-notes/maps/pr-129307-map.yaml index 6238490b002..27dc6a81046 100644 --- a/releases/release-1.33/release-notes/maps/pr-129307-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129307-map.yaml @@ -1,5 +1,5 @@ -pr: 129307 -releasenote: - text: Fixed an issue in register-gen where imports for k8s.io/apimachinery/pkg/runtime - and k8s.io/apimachinery/pkg/runtime/schema were missing. -pr_body: "" +pr: 129307 +releasenote: + text: Fixed an issue in register-gen where imports for k8s.io/apimachinery/pkg/runtime + and k8s.io/apimachinery/pkg/runtime/schema were missing. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129317-map.yaml b/releases/release-1.33/release-notes/maps/pr-129317-map.yaml index 750766a6dc3..2f3da15bf30 100644 --- a/releases/release-1.33/release-notes/maps/pr-129317-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129317-map.yaml @@ -1,4 +1,4 @@ -pr: 129317 -releasenote: - text: 'kubeadm: removed preflight check for `touch` on Linux nodes.' -pr_body: "" +pr: 129317 +releasenote: + text: 'kubeadm: removed preflight check for `touch` on Linux nodes.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129334-map.yaml b/releases/release-1.33/release-notes/maps/pr-129334-map.yaml index d0775d57e23..d24f4dd142f 100644 --- a/releases/release-1.33/release-notes/maps/pr-129334-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129334-map.yaml @@ -1,7 +1,7 @@ -pr: 129334 -releasenote: - text: Improved how the API server responds to **list** requests where the response - format negotiates to JSON. List responses in JSON are marshalled one element at - the time, drastically reducing memory needed to serve large collections. Streaming - list responses can be disabled via the `StreamingJSONListEncoding` feature gate. -pr_body: "" +pr: 129334 +releasenote: + text: Improved how the API server responds to **list** requests where the response + format negotiates to JSON. List responses in JSON are marshalled one element at + the time, drastically reducing memory needed to serve large collections. Streaming + list responses can be disabled via the `StreamingJSONListEncoding` feature gate. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129368-map.yaml b/releases/release-1.33/release-notes/maps/pr-129368-map.yaml index 0f4a194c022..cf783d6cc59 100644 --- a/releases/release-1.33/release-notes/maps/pr-129368-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129368-map.yaml @@ -1,4 +1,4 @@ -pr: 129368 -releasenote: - text: "fix: Adopted go1.23 behavior change in mount point parsing on Windows." -pr_body: "" +pr: 129368 +releasenote: + text: "fix: Adopted go1.23 behavior change in mount point parsing on Windows." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129370-map.yaml b/releases/release-1.33/release-notes/maps/pr-129370-map.yaml index c430f619da4..8f159aef752 100644 --- a/releases/release-1.33/release-notes/maps/pr-129370-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129370-map.yaml @@ -1,7 +1,7 @@ -pr: 129370 -releasenote: - text: CSI drivers that calls `IsLikelyNotMountPoint` should not assume false means - that the path is a mount point. Each CSI driver needs to make sure correct usage - of return value of `IsLikelyNotMountPoint` because if the file is an irregular file - but not a mount point is acceptable. -pr_body: "" +pr: 129370 +releasenote: + text: CSI drivers that calls `IsLikelyNotMountPoint` should not assume false means + that the path is a mount point. Each CSI driver needs to make sure correct usage + of return value of `IsLikelyNotMountPoint` because if the file is an irregular file + but not a mount point is acceptable. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129375-map.yaml b/releases/release-1.33/release-notes/maps/pr-129375-map.yaml index a9657a6720f..129d1d495c2 100644 --- a/releases/release-1.33/release-notes/maps/pr-129375-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129375-map.yaml @@ -1,4 +1,4 @@ -pr: 129375 -releasenote: - text: Removed general available feature-gate `AppArmor`. -pr_body: "" +pr: 129375 +releasenote: + text: Removed general available feature-gate `AppArmor`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129401-map.yaml b/releases/release-1.33/release-notes/maps/pr-129401-map.yaml index f8da036c30a..f8c640ea4c6 100644 --- a/releases/release-1.33/release-notes/maps/pr-129401-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129401-map.yaml @@ -1,4 +1,4 @@ -pr: 129401 -releasenote: - text: 'kubeadm: run kernel version and OS version preflight checks for `kubeadm upgrade`.' -pr_body: "" +pr: 129401 +releasenote: + text: 'kubeadm: run kernel version and OS version preflight checks for `kubeadm upgrade`.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129407-map.yaml b/releases/release-1.33/release-notes/maps/pr-129407-map.yaml index cd1561edd5a..01f4c19daa5 100644 --- a/releases/release-1.33/release-notes/maps/pr-129407-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129407-map.yaml @@ -1,8 +1,8 @@ -pr: 129407 -releasenote: - text: Improved how the API server responds to **list** requests where the response - format negotiates to Protobuf. List responses in Protobuf are marshalled one element - at the time, drastically reducing memory needed to serve large collections. Streaming - list responses can be disabled via the `StreamingCollectionEncodingToProtobuf` - feature gate. -pr_body: "" +pr: 129407 +releasenote: + text: Improved how the API server responds to **list** requests where the response + format negotiates to Protobuf. List responses in Protobuf are marshalled one element + at the time, drastically reducing memory needed to serve large collections. Streaming + list responses can be disabled via the `StreamingCollectionEncodingToProtobuf` + feature gate. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129418-map.yaml b/releases/release-1.33/release-notes/maps/pr-129418-map.yaml index 99ee04a5576..dce89cacd4a 100644 --- a/releases/release-1.33/release-notes/maps/pr-129418-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129418-map.yaml @@ -1,5 +1,5 @@ -pr: 129418 -releasenote: - text: 'kubeadm: if an addon is disabled in the ClusterConfiguration, skip it during - upgrade.' -pr_body: "" +pr: 129418 +releasenote: + text: 'kubeadm: if an addon is disabled in the ClusterConfiguration, skip it during + upgrade.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129422-map.yaml b/releases/release-1.33/release-notes/maps/pr-129422-map.yaml index 329f711ee84..0a3ce191aec 100644 --- a/releases/release-1.33/release-notes/maps/pr-129422-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129422-map.yaml @@ -1,4 +1,4 @@ -pr: 129422 -releasenote: - text: Kubernetes is now built with go `1.23.4`. -pr_body: "" +pr: 129422 +releasenote: + text: Kubernetes is now built with go `1.23.4`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129450-map.yaml b/releases/release-1.33/release-notes/maps/pr-129450-map.yaml index 3c564b730e0..bd762d7cfd9 100644 --- a/releases/release-1.33/release-notes/maps/pr-129450-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129450-map.yaml @@ -1,6 +1,6 @@ -pr: 129450 -releasenote: - text: |- - kubeadm: removed preflight check for nsenter on Linux nodes - kubeadm: added preflight check for `losetup` on Linux nodes. It's required by kubelet for keeping a block device opened. -pr_body: "" +pr: 129450 +releasenote: + text: |- + kubeadm: removed preflight check for nsenter on Linux nodes + kubeadm: added preflight check for `losetup` on Linux nodes. It's required by kubelet for keeping a block device opened. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129452-map.yaml b/releases/release-1.33/release-notes/maps/pr-129452-map.yaml index 84df0ffc56c..b9024b36935 100644 --- a/releases/release-1.33/release-notes/maps/pr-129452-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129452-map.yaml @@ -1,5 +1,5 @@ -pr: 129452 -releasenote: - text: 'kubeadm: fixed a bug where the `node.skipPhases` in UpgradeConfiguration - is not respected by the `kubeadm upgrade node` subcommand.' -pr_body: "" +pr: 129452 +releasenote: + text: 'kubeadm: fixed a bug where the `node.skipPhases` in UpgradeConfiguration + is not respected by the `kubeadm upgrade node` subcommand.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129457-map.yaml b/releases/release-1.33/release-notes/maps/pr-129457-map.yaml index 5ff5f57ee3d..135f06feb5f 100644 --- a/releases/release-1.33/release-notes/maps/pr-129457-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129457-map.yaml @@ -1,5 +1,5 @@ -pr: 129457 -releasenote: - text: '[kubectl] Improved the describe output for projected volume sources to clearly - indicate whether Secret and ConfigMap entries are optional.' -pr_body: "" +pr: 129457 +releasenote: + text: '[kubectl] Improved the describe output for projected volume sources to clearly + indicate whether Secret and ConfigMap entries are optional.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129486-map.yaml b/releases/release-1.33/release-notes/maps/pr-129486-map.yaml index 16fc80d3249..c3b649addd0 100644 --- a/releases/release-1.33/release-notes/maps/pr-129486-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129486-map.yaml @@ -1,4 +1,4 @@ -pr: 129486 -releasenote: - text: Fixed a bug to ensure container-level swap metrics are collected. -pr_body: "" +pr: 129486 +releasenote: + text: Fixed a bug to ensure container-level swap metrics are collected. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129497-map.yaml b/releases/release-1.33/release-notes/maps/pr-129497-map.yaml index 805eb66b1e6..9eaf65157e6 100644 --- a/releases/release-1.33/release-notes/maps/pr-129497-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129497-map.yaml @@ -1,4 +1,4 @@ -pr: 129497 -releasenote: - text: Removed generally available feature-gate `AppArmorFields`. -pr_body: "" +pr: 129497 +releasenote: + text: Removed generally available feature-gate `AppArmorFields`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129498-map.yaml b/releases/release-1.33/release-notes/maps/pr-129498-map.yaml index 5f939978c71..33f80cfa2c0 100644 --- a/releases/release-1.33/release-notes/maps/pr-129498-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129498-map.yaml @@ -1,5 +1,5 @@ -pr: 129498 -releasenote: - text: Removed the `JobPodFailurePolicy` feature gate, which graduated to GA in 1.31 - and was unconditionally enabled. -pr_body: "" +pr: 129498 +releasenote: + text: Removed the `JobPodFailurePolicy` feature gate, which graduated to GA in 1.31 + and was unconditionally enabled. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129500-map.yaml b/releases/release-1.33/release-notes/maps/pr-129500-map.yaml index fe27cc75bce..ac791caa67b 100644 --- a/releases/release-1.33/release-notes/maps/pr-129500-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129500-map.yaml @@ -1,4 +1,4 @@ -pr: 129500 -releasenote: - text: Removed general available feature-gate `PDBUnhealthyPodEvictionPolicy`. -pr_body: "" +pr: 129500 +releasenote: + text: Removed general available feature-gate `PDBUnhealthyPodEvictionPolicy`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129506-map.yaml b/releases/release-1.33/release-notes/maps/pr-129506-map.yaml index 03b31e8992a..33521895ec9 100644 --- a/releases/release-1.33/release-notes/maps/pr-129506-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129506-map.yaml @@ -1,4 +1,4 @@ -pr: 129506 -releasenote: - text: Enabled ratcheting validation on `status` subresources for CustomResourceDefinitions. -pr_body: "" +pr: 129506 +releasenote: + text: Enabled ratcheting validation on `status` subresources for CustomResourceDefinitions. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129543-map.yaml b/releases/release-1.33/release-notes/maps/pr-129543-map.yaml index ce45026efd4..4cbd0d4f00e 100644 --- a/releases/release-1.33/release-notes/maps/pr-129543-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129543-map.yaml @@ -1,8 +1,8 @@ -pr: 129543 -releasenote: - text: "DRA API: The maximum number of pods that can use the same - ResourceClaim is now 256 instead of 32. Downgrading a cluster - where this relaxed limit is in use to Kubernetes 1.32.0 is not - supported, as version 1.32.0 would refuse to update ResourceClaims - with more than 32 entries in the `status.reservedFor` field." -pr_body: "" +pr: 129543 +releasenote: + text: "DRA API: The maximum number of pods that can use the same + ResourceClaim is now 256 instead of 32. Downgrading a cluster + where this relaxed limit is in use to Kubernetes 1.32.0 is not + supported, as version 1.32.0 would refuse to update ResourceClaims + with more than 32 entries in the `status.reservedFor` field." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129560-map.yaml b/releases/release-1.33/release-notes/maps/pr-129560-map.yaml index 964793af282..beb74034c87 100644 --- a/releases/release-1.33/release-notes/maps/pr-129560-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129560-map.yaml @@ -1,9 +1,9 @@ -pr: 129560 -releasenote: - text: 'DRA: when asking for "All" devices on a node, Kubernetes <= 1.32 proceeded - to schedule pods onto nodes with no devices by not allocating any devices for - those pods. Kubernetes 1.33 changes that to only picking nodes which have at least - one device. Users who want the "proceed with scheduling also without devices" - semantic can use the upcoming prioritized list feature with one sub-request for - "all" devices and a second alternative with "count: 0".' -pr_body: "" +pr: 129560 +releasenote: + text: 'DRA: when asking for "All" devices on a node, Kubernetes <= 1.32 proceeded + to schedule pods onto nodes with no devices by not allocating any devices for + those pods. Kubernetes 1.33 changes that to only picking nodes which have at least + one device. Users who want the "proceed with scheduling also without devices" + semantic can use the upcoming prioritized list feature with one sub-request for + "all" devices and a second alternative with "count: 0".' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129568-map.yaml b/releases/release-1.33/release-notes/maps/pr-129568-map.yaml index b613dc07667..ef7f56697ee 100644 --- a/releases/release-1.33/release-notes/maps/pr-129568-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129568-map.yaml @@ -1,7 +1,7 @@ -pr: 129568 -releasenote: - text: "`--feature-gate=InOrderInformers` (default on), causes informers to process - watch streams in order as opposed to grouping updates for the same item close - together. Binaries embedding client-go, but not wiring the feature gates can disable - by setting the `KUBE_FEATURE_InOrderInformers=false`." -pr_body: "" +pr: 129568 +releasenote: + text: "`--feature-gate=InOrderInformers` (default on), causes informers to process + watch streams in order as opposed to grouping updates for the same item close + together. Binaries embedding client-go, but not wiring the feature gates can disable + by setting the `KUBE_FEATURE_InOrderInformers=false`." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129583-map.yaml b/releases/release-1.33/release-notes/maps/pr-129583-map.yaml index 032648c55ca..09023175b23 100644 --- a/releases/release-1.33/release-notes/maps/pr-129583-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129583-map.yaml @@ -1,4 +1,4 @@ -pr: 129583 -releasenote: - text: Promoted the feature gate `HonorPVReclaimPolicy` to GA. -pr_body: "" +pr: 129583 +releasenote: + text: Promoted the feature gate `HonorPVReclaimPolicy` to GA. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129589-map.yaml b/releases/release-1.33/release-notes/maps/pr-129589-map.yaml index d745b559fb9..e1373cf327b 100644 --- a/releases/release-1.33/release-notes/maps/pr-129589-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129589-map.yaml @@ -1,5 +1,5 @@ -pr: 129589 -releasenote: - text: 'kubeadm: removed the feature gate `EtcdLearnerMode` which graduated to GA in - 1.32.' -pr_body: "" +pr: 129589 +releasenote: + text: 'kubeadm: removed the feature gate `EtcdLearnerMode` which graduated to GA in + 1.32.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129591-map.yaml b/releases/release-1.33/release-notes/maps/pr-129591-map.yaml index 69fb1cf8941..d00bf49a018 100644 --- a/releases/release-1.33/release-notes/maps/pr-129591-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129591-map.yaml @@ -1,5 +1,5 @@ -pr: 129591 -releasenote: - text: 'kube-apiserver: Promoted the `ServiceAccountTokenNodeBinding` feature gate - general availability. It is now locked to enabled.' -pr_body: "" +pr: 129591 +releasenote: + text: 'kube-apiserver: Promoted the `ServiceAccountTokenNodeBinding` feature gate + general availability. It is now locked to enabled.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129594-map.yaml b/releases/release-1.33/release-notes/maps/pr-129594-map.yaml index 94dfcf7f80b..b04599ec47f 100644 --- a/releases/release-1.33/release-notes/maps/pr-129594-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129594-map.yaml @@ -1,5 +1,5 @@ -pr: 129594 -releasenote: - text: 'kubeadm: fixed a bug where an image is not pulled if there is an error with - the sandbox image from CRI.' -pr_body: "" +pr: 129594 +releasenote: + text: 'kubeadm: fixed a bug where an image is not pulled if there is an error with + the sandbox image from CRI.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129620-map.yaml b/releases/release-1.33/release-notes/maps/pr-129620-map.yaml index 2032d7aef26..2a8c1c76958 100644 --- a/releases/release-1.33/release-notes/maps/pr-129620-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129620-map.yaml @@ -1,7 +1,7 @@ -pr: 129620 -releasenote: - text: 'kubeadm: graduated the `WaitForAllControlPlaneComponents` feature gate to Beta. - When checking the health status of a control plane component, make sure that the - address and port defined as arguments in the respective component''s static Pod - manifest are used.' -pr_body: "" +pr: 129620 +releasenote: + text: 'kubeadm: graduated the `WaitForAllControlPlaneComponents` feature gate to Beta. + When checking the health status of a control plane component, make sure that the + address and port defined as arguments in the respective component''s static Pod + manifest are used.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129630-map.yaml b/releases/release-1.33/release-notes/maps/pr-129630-map.yaml index 4a3bac7e526..cb1af8bc2f9 100644 --- a/releases/release-1.33/release-notes/maps/pr-129630-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129630-map.yaml @@ -1,7 +1,7 @@ -pr: 129630 -releasenote: - text: Fixed in-tree to CSI migration for Portworx volumes, in clusters where Portworx - security feature is enabled (it's a Portworx feature, not Kubernetes feature). - It required secret data from the secret mentioned in-tree SC, to be passed in - CSI requests which was not happening before this fix. -pr_body: "" +pr: 129630 +releasenote: + text: Fixed in-tree to CSI migration for Portworx volumes, in clusters where Portworx + security feature is enabled (it's a Portworx feature, not Kubernetes feature). + It required secret data from the secret mentioned in-tree SC, to be passed in + CSI requests which was not happening before this fix. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129635-map.yaml b/releases/release-1.33/release-notes/maps/pr-129635-map.yaml index bba783a3e3e..1be9aa9d4ab 100644 --- a/releases/release-1.33/release-notes/maps/pr-129635-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129635-map.yaml @@ -1,5 +1,5 @@ -pr: 129635 -releasenote: - text: Calculated pod resources are now cached when adding pods to NodeInfo in the - scheduler framework, improving performance when processing unschedulable pods. -pr_body: "" +pr: 129635 +releasenote: + text: Calculated pod resources are now cached when adding pods to NodeInfo in the + scheduler framework, improving performance when processing unschedulable pods. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129644-map.yaml b/releases/release-1.33/release-notes/maps/pr-129644-map.yaml index b3a16a3ba1c..cfc528d3dbe 100644 --- a/releases/release-1.33/release-notes/maps/pr-129644-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129644-map.yaml @@ -1,5 +1,5 @@ -pr: 129644 -releasenote: - text: 'kubeadm: improved the `kubeadm reset` message for manual cleanups and referenced - https://k8s.io/docs/reference/setup-tools/kubeadm/kubeadm-reset/.' -pr_body: "" +pr: 129644 +releasenote: + text: 'kubeadm: improved the `kubeadm reset` message for manual cleanups and referenced + https://k8s.io/docs/reference/setup-tools/kubeadm/kubeadm-reset/.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129653-map.yaml b/releases/release-1.33/release-notes/maps/pr-129653-map.yaml index 9d6eca6fccf..3b2a8ce3c2e 100644 --- a/releases/release-1.33/release-notes/maps/pr-129653-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129653-map.yaml @@ -1,8 +1,8 @@ -pr: 129653 -releasenote: - text: |- - The nftables mode of kube-proxy is now GA. (The iptables mode remains the - default; you can select the nftables mode by passing `--proxy-mode nftables` - or using a config file with `mode: nftables`. See the kube-proxy documentation - for more details). -pr_body: "" +pr: 129653 +releasenote: + text: |- + The nftables mode of kube-proxy is now GA. (The iptables mode remains the + default; you can select the nftables mode by passing `--proxy-mode nftables` + or using a config file with `mode: nftables`. See the kube-proxy documentation + for more details). +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129656-map.yaml b/releases/release-1.33/release-notes/maps/pr-129656-map.yaml index 16a2b440c55..bcef5e20ef6 100644 --- a/releases/release-1.33/release-notes/maps/pr-129656-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129656-map.yaml @@ -1,5 +1,5 @@ -pr: 129656 -releasenote: - text: Graduated the `KubeletFineGrainedAuthz` feature gate to beta; the feature gate is - now enabled by default. -pr_body: "" +pr: 129656 +releasenote: + text: Graduated the `KubeletFineGrainedAuthz` feature gate to beta; the feature gate is + now enabled by default. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129658-map.yaml b/releases/release-1.33/release-notes/maps/pr-129658-map.yaml index 839569457c5..fcc7e06df7c 100644 --- a/releases/release-1.33/release-notes/maps/pr-129658-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129658-map.yaml @@ -1,5 +1,5 @@ -pr: 129658 -releasenote: - text: Provides an additional function argument to directly specify the version for - the tools that the consumers wished to use. -pr_body: "" +pr: 129658 +releasenote: + text: Provides an additional function argument to directly specify the version for + the tools that the consumers wished to use. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129661-map.yaml b/releases/release-1.33/release-notes/maps/pr-129661-map.yaml index 9b70a012037..ac78f2483ac 100644 --- a/releases/release-1.33/release-notes/maps/pr-129661-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129661-map.yaml @@ -1,5 +1,5 @@ -pr: 129661 -releasenote: - text: 'DRA: CEL expressions using attribute strings exceeded the cost limit because - their cost estimation was incomplete.' -pr_body: "" +pr: 129661 +releasenote: + text: 'DRA: CEL expressions using attribute strings exceeded the cost limit because + their cost estimation was incomplete.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129670-map.yaml b/releases/release-1.33/release-notes/maps/pr-129670-map.yaml index d8a3040fa4a..c577458d66a 100644 --- a/releases/release-1.33/release-notes/maps/pr-129670-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129670-map.yaml @@ -1,6 +1,6 @@ -pr: 129670 -releasenote: - text: Fixed a bug where adding an ephemeral container to a pod which references - a new secret or config map doesn't give the pod access to that new secret or config - map. (#114984, @cslink). -pr_body: "" +pr: 129670 +releasenote: + text: Fixed a bug where adding an ephemeral container to a pod which references + a new secret or config map doesn't give the pod access to that new secret or config + map. (#114984, @cslink). +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129688-map.yaml b/releases/release-1.33/release-notes/maps/pr-129688-map.yaml index 2421e1e0a6a..e3110814d2c 100644 --- a/releases/release-1.33/release-notes/maps/pr-129688-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129688-map.yaml @@ -1,4 +1,4 @@ -pr: 129688 -releasenote: - text: Kubernetes is now built with Go `1.24.0`. -pr_body: "" +pr: 129688 +releasenote: + text: Kubernetes is now built with Go `1.24.0`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129692-map.yaml b/releases/release-1.33/release-notes/maps/pr-129692-map.yaml index bb3e67a303d..1e65829c8ec 100644 --- a/releases/release-1.33/release-notes/maps/pr-129692-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129692-map.yaml @@ -1,4 +1,4 @@ -pr: 129692 -releasenote: - text: Removed generally available feature gate `KubeProxyDrainingTerminatingNodes`. -pr_body: "" +pr: 129692 +releasenote: + text: Removed generally available feature gate `KubeProxyDrainingTerminatingNodes`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129713-map.yaml b/releases/release-1.33/release-notes/maps/pr-129713-map.yaml index 2ef1db4b1ef..b9bf001fce9 100644 --- a/releases/release-1.33/release-notes/maps/pr-129713-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129713-map.yaml @@ -1,6 +1,6 @@ -pr: 129713 -releasenote: - text: Graduated the `DisableNodeKubeProxyVersion` feature gate to enable by default, - the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for - its associated Node. -pr_body: "" +pr: 129713 +releasenote: + text: Graduated the `DisableNodeKubeProxyVersion` feature gate to enable by default, + the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for + its associated Node. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129731-map.yaml b/releases/release-1.33/release-notes/maps/pr-129731-map.yaml index 2a3fa01d0b6..b625410b29b 100644 --- a/releases/release-1.33/release-notes/maps/pr-129731-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129731-map.yaml @@ -1,6 +1,6 @@ -pr: 129731 -releasenote: - text: The `SidecarContainers` feature has graduated to GA. 'SidecarContainers' feature - gate was locked to default value and will be removed in v1.36. If you were setting - this feature gate explicitly, please remove it now. -pr_body: "" +pr: 129731 +releasenote: + text: The `SidecarContainers` feature has graduated to GA. 'SidecarContainers' feature + gate was locked to default value and will be removed in v1.36. If you were setting + this feature gate explicitly, please remove it now. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129770-map.yaml b/releases/release-1.33/release-notes/maps/pr-129770-map.yaml index ba415bb97d4..a9c92f1af39 100644 --- a/releases/release-1.33/release-notes/maps/pr-129770-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129770-map.yaml @@ -1,4 +1,4 @@ -pr: 129770 -releasenote: - text: Promoted the feature gate `AnyVolumeDataSource` to GA. -pr_body: "" +pr: 129770 +releasenote: + text: Promoted the feature gate `AnyVolumeDataSource` to GA. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129776-map.yaml b/releases/release-1.33/release-notes/maps/pr-129776-map.yaml index f78fc438c5f..bb54b0809e2 100644 --- a/releases/release-1.33/release-notes/maps/pr-129776-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129776-map.yaml @@ -1,4 +1,4 @@ -pr: 129776 -releasenote: - text: Updated CNI plugins to `v1.6.2`. -pr_body: "" +pr: 129776 +releasenote: + text: Updated CNI plugins to `v1.6.2`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129790-map.yaml b/releases/release-1.33/release-notes/maps/pr-129790-map.yaml index 0610b670aab..68d95cd4051 100644 --- a/releases/release-1.33/release-notes/maps/pr-129790-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129790-map.yaml @@ -1,6 +1,6 @@ -pr: 129790 -releasenote: - text: Fixed the bug where Events failed to be created when the referenced object name - was not a valid Event name. Now, a UUID is used as the name instead of the referenced - object name and the timestamp suffix. -pr_body: "" +pr: 129790 +releasenote: + text: Fixed the bug where Events failed to be created when the referenced object name + was not a valid Event name. Now, a UUID is used as the name instead of the referenced + object name and the timestamp suffix. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129816-map.yaml b/releases/release-1.33/release-notes/maps/pr-129816-map.yaml index c77c191f603..4c915210620 100644 --- a/releases/release-1.33/release-notes/maps/pr-129816-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129816-map.yaml @@ -1,7 +1,7 @@ -pr: 129816 -releasenote: - text: "kube-apiserver: `--service-account-max-token-expiration` can now be used in - combination with an external token signer `--service-account-signing-endpoint`, - as long as the `--service-account-max-token-expiration` is not longer than the external - token signer's max expiration." -pr_body: "" +pr: 129816 +releasenote: + text: "kube-apiserver: `--service-account-max-token-expiration` can now be used in + combination with an external token signer `--service-account-signing-endpoint`, + as long as the `--service-account-max-token-expiration` is not longer than the external + token signer's max expiration." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129823-map.yaml b/releases/release-1.33/release-notes/maps/pr-129823-map.yaml index 40395c7c6be..1dfa55957b3 100644 --- a/releases/release-1.33/release-notes/maps/pr-129823-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129823-map.yaml @@ -1,6 +1,6 @@ -pr: 129823 -releasenote: - text: 'DRA: the explanation for why a pod which wasn''t using ResourceClaims was - unscheduleable included a useless "no new claims to deallocate" when it was unscheduleable - for some other reasons.' -pr_body: "" +pr: 129823 +releasenote: + text: 'DRA: the explanation for why a pod which wasn''t using ResourceClaims was + unscheduleable included a useless "no new claims to deallocate" when it was unscheduleable + for some other reasons.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129826-map.yaml b/releases/release-1.33/release-notes/maps/pr-129826-map.yaml index 4c3e6ff6ff9..54b5dae10ed 100644 --- a/releases/release-1.33/release-notes/maps/pr-129826-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129826-map.yaml @@ -1,5 +1,5 @@ -pr: 129826 -releasenote: - text: kubelet no longer logs multiple errors when running on a system with no iptables - binaries installed. -pr_body: "" +pr: 129826 +releasenote: + text: kubelet no longer logs multiple errors when running on a system with no iptables + binaries installed. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129832-map.yaml b/releases/release-1.33/release-notes/maps/pr-129832-map.yaml index 1ee93683fa0..276e757abf6 100644 --- a/releases/release-1.33/release-notes/maps/pr-129832-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129832-map.yaml @@ -1,7 +1,7 @@ -pr: 129832 -releasenote: - text: 'kubelet + DRA: For DRA driver plugins (and only for those!), the kubelet - now supports a rolling update with `maxSurge > 0` in the driver''s DaemonSet. - A DRA driver must support this, which can be done via the k8s.io/dynamic-resource-allocation/kubeletplugin - helper package.' -pr_body: "" +pr: 129832 +releasenote: + text: 'kubelet + DRA: For DRA driver plugins (and only for those!), the kubelet + now supports a rolling update with `maxSurge > 0` in the driver''s DaemonSet. + A DRA driver must support this, which can be done via the k8s.io/dynamic-resource-allocation/kubeletplugin + helper package.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129844-map.yaml b/releases/release-1.33/release-notes/maps/pr-129844-map.yaml index 00fdac09292..86d8e69416a 100644 --- a/releases/release-1.33/release-notes/maps/pr-129844-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129844-map.yaml @@ -1,4 +1,4 @@ -pr: 129844 -releasenote: - text: '`cel-go` has been bumped to `v0.23.2`.' -pr_body: "" +pr: 129844 +releasenote: + text: '`cel-go` has been bumped to `v0.23.2`.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129859-map.yaml b/releases/release-1.33/release-notes/maps/pr-129859-map.yaml index 8e4c3214e62..8f433ebc89e 100644 --- a/releases/release-1.33/release-notes/maps/pr-129859-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129859-map.yaml @@ -1,6 +1,6 @@ -pr: 129859 -releasenote: - text: 'kubeadm: fixed the bug where the v1beta4 `Timeouts.EtcdAPICall` field was not - respected in etcd client operations, and the default timeout of 2 minutes was - always used.' -pr_body: "" +pr: 129859 +releasenote: + text: 'kubeadm: fixed the bug where the v1beta4 `Timeouts.EtcdAPICall` field was not + respected in etcd client operations, and the default timeout of 2 minutes was + always used.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129872-map.yaml b/releases/release-1.33/release-notes/maps/pr-129872-map.yaml index e311d5613e2..511810eb06e 100644 --- a/releases/release-1.33/release-notes/maps/pr-129872-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129872-map.yaml @@ -1,4 +1,4 @@ -pr: 129872 -releasenote: - text: Included `WebSockets` HTTPS proxy support. -pr_body: "" +pr: 129872 +releasenote: + text: Included `WebSockets` HTTPS proxy support. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129887-map.yaml b/releases/release-1.33/release-notes/maps/pr-129887-map.yaml index 538b48e8887..beb73e74312 100644 --- a/releases/release-1.33/release-notes/maps/pr-129887-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129887-map.yaml @@ -1,6 +1,6 @@ -pr: 129887 -releasenote: - text: Changed the error message displayed when a pod is trying to attach a volume - that does not match the label/selector from "x node(s) had volume node affinity - conflict" to "x node(s) didn't match PersistentVolume's node affinity". -pr_body: "" +pr: 129887 +releasenote: + text: Changed the error message displayed when a pod is trying to attach a volume + that does not match the label/selector from "x node(s) had volume node affinity + conflict" to "x node(s) didn't match PersistentVolume's node affinity". +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129893-map.yaml b/releases/release-1.33/release-notes/maps/pr-129893-map.yaml index ed9d2c65f97..64e0fd6a5a3 100644 --- a/releases/release-1.33/release-notes/maps/pr-129893-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129893-map.yaml @@ -1,5 +1,5 @@ -pr: 129893 -releasenote: - text: Fixed compressed kubelet log file permissions to use uncompressed kubelet - log file permissions. -pr_body: "" +pr: 129893 +releasenote: + text: Fixed compressed kubelet log file permissions to use uncompressed kubelet + log file permissions. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129923-map.yaml b/releases/release-1.33/release-notes/maps/pr-129923-map.yaml index b857916d6b2..da8460d3699 100644 --- a/releases/release-1.33/release-notes/maps/pr-129923-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129923-map.yaml @@ -1,4 +1,4 @@ -pr: 129923 -releasenote: - text: Disabled the git-repo volume plugin by default, with the option to re-enable it. -pr_body: "" +pr: 129923 +releasenote: + text: Disabled the git-repo volume plugin by default, with the option to re-enable it. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129929-map.yaml b/releases/release-1.33/release-notes/maps/pr-129929-map.yaml index e83b72c89c8..1f44fb3ae36 100644 --- a/releases/release-1.33/release-notes/maps/pr-129929-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129929-map.yaml @@ -1,4 +1,4 @@ -pr: 129929 -releasenote: - text: The `SeparateCacheWatchRPC` feature gate is deprecated and disabled by default. -pr_body: "" +pr: 129929 +releasenote: + text: The `SeparateCacheWatchRPC` feature gate is deprecated and disabled by default. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129930-map.yaml b/releases/release-1.33/release-notes/maps/pr-129930-map.yaml index 5cc94b236fa..39071355040 100644 --- a/releases/release-1.33/release-notes/maps/pr-129930-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129930-map.yaml @@ -1,5 +1,5 @@ -pr: 129930 -releasenote: - text: The `WatchFromStorageWithoutResourceVersion` feature was deprecated and - can no longer be enabled. -pr_body: "" +pr: 129930 +releasenote: + text: The `WatchFromStorageWithoutResourceVersion` feature was deprecated and + can no longer be enabled. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129933-map.yaml b/releases/release-1.33/release-notes/maps/pr-129933-map.yaml index e7c7cffe8b2..1ed276cbbf1 100644 --- a/releases/release-1.33/release-notes/maps/pr-129933-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129933-map.yaml @@ -1,4 +1,4 @@ -pr: 129933 -releasenote: - text: Flipped `StorageNamespaceIndex` feature gate to `false` and deprecated it. -pr_body: "" +pr: 129933 +releasenote: + text: Flipped `StorageNamespaceIndex` feature gate to `false` and deprecated it. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129934-map.yaml b/releases/release-1.33/release-notes/maps/pr-129934-map.yaml index f9bb1a026a7..641a0bd517e 100644 --- a/releases/release-1.33/release-notes/maps/pr-129934-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129934-map.yaml @@ -1,4 +1,4 @@ -pr: 129934 -releasenote: - text: Graduated `BtreeWatchCache` feature gate to GA. -pr_body: "" +pr: 129934 +releasenote: + text: Graduated `BtreeWatchCache` feature gate to GA. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129946-map.yaml b/releases/release-1.33/release-notes/maps/pr-129946-map.yaml index 428299456d3..e3adad11bc0 100644 --- a/releases/release-1.33/release-notes/maps/pr-129946-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129946-map.yaml @@ -1,4 +1,4 @@ -pr: 129946 -releasenote: - text: Fixed a regression in 1.32 that prevented pods with `postStart` hooks from starting. -pr_body: "" +pr: 129946 +releasenote: + text: Fixed a regression in 1.32 that prevented pods with `postStart` hooks from starting. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129950-map.yaml b/releases/release-1.33/release-notes/maps/pr-129950-map.yaml index 059df618d42..efd4975c95d 100644 --- a/releases/release-1.33/release-notes/maps/pr-129950-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129950-map.yaml @@ -1,4 +1,4 @@ -pr: 129950 -releasenote: - text: Added metrics to expose the main known reasons for resource alignment errors. -pr_body: "" +pr: 129950 +releasenote: + text: Added metrics to expose the main known reasons for resource alignment errors. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129954-map.yaml b/releases/release-1.33/release-notes/maps/pr-129954-map.yaml index 6d7fde9c536..caf16301023 100644 --- a/releases/release-1.33/release-notes/maps/pr-129954-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129954-map.yaml @@ -1,4 +1,4 @@ -pr: 129954 -releasenote: - text: Started reporting swap capacity as part of `node.status.nodeSystemInfo`. -pr_body: "" +pr: 129954 +releasenote: + text: Started reporting swap capacity as part of `node.status.nodeSystemInfo`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129956-map.yaml b/releases/release-1.33/release-notes/maps/pr-129956-map.yaml index a3fe352c7b6..738e9168fa0 100644 --- a/releases/release-1.33/release-notes/maps/pr-129956-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129956-map.yaml @@ -1,10 +1,10 @@ -pr: 129956 -releasenote: - text: "kubeadm: Promoted the feature gate `ControlPlaneKubeletLocalMode` to Beta. - By default, Kubeadm will use the local kube-apiserver endpoint for the kubelet - when creating a cluster with `kubeadm init` or when joining control plane nodes - with `kubeadm join`. Enabling the feature gate also affects the `kubeadm init - phase kubeconfig kubelet` phase, where the flag `--control-plane-endpoint` no - longer affects the generated kubeconfig `Server` field, but the flag `--apiserver-advertise-address` - can now be used for the same purpose." -pr_body: "" +pr: 129956 +releasenote: + text: "kubeadm: Promoted the feature gate `ControlPlaneKubeletLocalMode` to Beta. + By default, Kubeadm will use the local kube-apiserver endpoint for the kubelet + when creating a cluster with `kubeadm init` or when joining control plane nodes + with `kubeadm join`. Enabling the feature gate also affects the `kubeadm init + phase kubeconfig kubelet` phase, where the flag `--control-plane-endpoint` no + longer affects the generated kubeconfig `Server` field, but the flag `--apiserver-advertise-address` + can now be used for the same purpose." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129962-map.yaml b/releases/release-1.33/release-notes/maps/pr-129962-map.yaml index 498986b4dc9..208d1a8d672 100644 --- a/releases/release-1.33/release-notes/maps/pr-129962-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129962-map.yaml @@ -1,4 +1,4 @@ -pr: 129962 -releasenote: - text: Changed the version of Go that Kubernetes builds against. Kubernetes is now built with Go `1.23.5`. -pr_body: "" +pr: 129962 +releasenote: + text: Changed the version of Go that Kubernetes builds against. Kubernetes is now built with Go `1.23.5`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129970-map.yaml b/releases/release-1.33/release-notes/maps/pr-129970-map.yaml index d5fa5f4f3bb..bce2bc0d13f 100644 --- a/releases/release-1.33/release-notes/maps/pr-129970-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129970-map.yaml @@ -1,5 +1,5 @@ -pr: 129970 -releasenote: - text: The resource.k8s.io/v1beta1 API is deprecated and will be removed in 1.36. - Use v1beta2 instead. -pr_body: "" +pr: 129970 +releasenote: + text: The resource.k8s.io/v1beta1 API is deprecated and will be removed in 1.36. + Use v1beta2 instead. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129993-map.yaml b/releases/release-1.33/release-notes/maps/pr-129993-map.yaml index ebbf2c954e9..3be329c36ba 100644 --- a/releases/release-1.33/release-notes/maps/pr-129993-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129993-map.yaml @@ -1,5 +1,5 @@ -pr: 129993 -releasenote: - text: Fixed a regression with the `ServiceAccountNodeAudienceRestriction` feature - where `azureFile` volumes encountered 'failed to get service account token attributes' errors. -pr_body: "" +pr: 129993 +releasenote: + text: Fixed a regression with the `ServiceAccountNodeAudienceRestriction` feature + where `azureFile` volumes encountered 'failed to get service account token attributes' errors. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-129996-map.yaml b/releases/release-1.33/release-notes/maps/pr-129996-map.yaml index dc980c950ce..83e6a53862f 100644 --- a/releases/release-1.33/release-notes/maps/pr-129996-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-129996-map.yaml @@ -1,5 +1,5 @@ -pr: 129996 -releasenote: - text: The response from kube-apiserver's `/flagz` endpoint would respond correctly - with parsed flags value. -pr_body: "" +pr: 129996 +releasenote: + text: The response from kube-apiserver's `/flagz` endpoint would respond correctly + with parsed flags value. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130007-map.yaml b/releases/release-1.33/release-notes/maps/pr-130007-map.yaml index 6bca8907a31..b92f1da6c3b 100644 --- a/releases/release-1.33/release-notes/maps/pr-130007-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130007-map.yaml @@ -1,7 +1,7 @@ -pr: 130007 -releasenote: - text: |- - A new alpha feature gate, `MutableCSINodeAllocatableCount`, has been introduced. - - When this feature gate is enabled, the `CSINode.Spec.Drivers[*].Allocatable.Count` field becomes mutable, and a new field, `NodeAllocatableUpdatePeriodSeconds`, is available in the `CSIDriver` object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. -pr_body: "" +pr: 130007 +releasenote: + text: |- + A new alpha feature gate, `MutableCSINodeAllocatableCount`, has been introduced. + + When this feature gate is enabled, the `CSINode.Spec.Drivers[*].Allocatable.Count` field becomes mutable, and a new field, `NodeAllocatableUpdatePeriodSeconds`, is available in the `CSIDriver` object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130013-map.yaml b/releases/release-1.33/release-notes/maps/pr-130013-map.yaml index c14a21abaf0..e9c7617d23b 100644 --- a/releases/release-1.33/release-notes/maps/pr-130013-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130013-map.yaml @@ -1,4 +1,4 @@ -pr: 130013 -releasenote: - text: Promoted the `CRDValidationRatcheting` feature gate to GA in 1.33. -pr_body: "" +pr: 130013 +releasenote: + text: Promoted the `CRDValidationRatcheting` feature gate to GA in 1.33. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130017-map.yaml b/releases/release-1.33/release-notes/maps/pr-130017-map.yaml index 2f645132c7e..847bf19f004 100644 --- a/releases/release-1.33/release-notes/maps/pr-130017-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130017-map.yaml @@ -1,6 +1,6 @@ -pr: 130017 -releasenote: - text: NodeRestriction admission now validates that the audience value, the kubelet - requested a service account token for, is part of the pod spec volume. The kube-apiserver - featuregate `ServiceAccountNodeAudienceRestriction` is enabled by default in 1.33. -pr_body: "" +pr: 130017 +releasenote: + text: NodeRestriction admission now validates that the audience value, the kubelet + requested a service account token for, is part of the pod spec volume. The kube-apiserver + featuregate `ServiceAccountNodeAudienceRestriction` is enabled by default in 1.33. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130019-map.yaml b/releases/release-1.33/release-notes/maps/pr-130019-map.yaml index e1179c8e412..cfaf8ab4e44 100644 --- a/releases/release-1.33/release-notes/maps/pr-130019-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130019-map.yaml @@ -1,5 +1,5 @@ -pr: 130019 -releasenote: - text: Updated `/version` response to report binary version information separate from - compatibility version. -pr_body: "" +pr: 130019 +releasenote: + text: Updated `/version` response to report binary version information separate from + compatibility version. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130023-map.yaml b/releases/release-1.33/release-notes/maps/pr-130023-map.yaml index 36f9069fdc1..02eda02e225 100644 --- a/releases/release-1.33/release-notes/maps/pr-130023-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130023-map.yaml @@ -1,6 +1,6 @@ -pr: 130023 -releasenote: - text: 'kubeadm: `kubeadm upgrade plan` now supports `--etcd-upgrade` flag to - control whether the etcd upgrade plan should be displayed. Add an `EtcdUpgrade` - field into `UpgradeConfiguration.Plan` for v1beta4.' -pr_body: "" +pr: 130023 +releasenote: + text: 'kubeadm: `kubeadm upgrade plan` now supports `--etcd-upgrade` flag to + control whether the etcd upgrade plan should be displayed. Add an `EtcdUpgrade` + field into `UpgradeConfiguration.Plan` for v1beta4.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130028-map.yaml b/releases/release-1.33/release-notes/maps/pr-130028-map.yaml index 8643a8f7868..8d445bd167f 100644 --- a/releases/release-1.33/release-notes/maps/pr-130028-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130028-map.yaml @@ -1,4 +1,4 @@ -pr: 130028 -releasenote: - text: 'kubelet: Added `KubeletConfiguration.subidsPerPod`.' -pr_body: "" +pr: 130028 +releasenote: + text: 'kubelet: Added `KubeletConfiguration.subidsPerPod`.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130032-map.yaml b/releases/release-1.33/release-notes/maps/pr-130032-map.yaml index 68cb9bd47f4..77422a4030a 100644 --- a/releases/release-1.33/release-notes/maps/pr-130032-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130032-map.yaml @@ -1,5 +1,5 @@ -pr: 130032 -releasenote: - text: 'kube-proxy: Fixed a potential memory leak that could occur in clusters with - a high volume of UDP workflows.' -pr_body: "" +pr: 130032 +releasenote: + text: 'kube-proxy: Fixed a potential memory leak that could occur in clusters with + a high volume of UDP workflows.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130033-map.yaml b/releases/release-1.33/release-notes/maps/pr-130033-map.yaml index 544815d90b6..7035c7c3268 100644 --- a/releases/release-1.33/release-notes/maps/pr-130033-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130033-map.yaml @@ -1,4 +1,4 @@ -pr: 130033 -releasenote: - text: Added resource completion in kubectl debug command. -pr_body: "" +pr: 130033 +releasenote: + text: Added resource completion in kubectl debug command. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130035-map.yaml b/releases/release-1.33/release-notes/maps/pr-130035-map.yaml index 1cc45c0da1b..d01233049a2 100644 --- a/releases/release-1.33/release-notes/maps/pr-130035-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130035-map.yaml @@ -1,5 +1,5 @@ -pr: 130035 -releasenote: - text: Added an alpha feature gate `OrderedNamespaceDeletion`. When enabled, the - pods resources are deleted before all other resources during namespace deletion. -pr_body: "" +pr: 130035 +releasenote: + text: Added an alpha feature gate `OrderedNamespaceDeletion`. When enabled, the + pods resources are deleted before all other resources during namespace deletion. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130037-map.yaml b/releases/release-1.33/release-notes/maps/pr-130037-map.yaml index 03fa4ef6dd2..9a16ebead00 100644 --- a/releases/release-1.33/release-notes/maps/pr-130037-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130037-map.yaml @@ -1,5 +1,5 @@ -pr: 130037 -releasenote: - text: Fixed `SELinuxWarningController` defaults when running kube-controller-manager - in a container. -pr_body: "" +pr: 130037 +releasenote: + text: Fixed `SELinuxWarningController` defaults when running kube-controller-manager + in a container. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130040-map.yaml b/releases/release-1.33/release-notes/maps/pr-130040-map.yaml index 402641afd4b..1d841aa642a 100644 --- a/releases/release-1.33/release-notes/maps/pr-130040-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130040-map.yaml @@ -1,6 +1,6 @@ -pr: 130040 -releasenote: - text: "kubeadm: Improved `kubeadm init` and `kubeadm join` to provide consistent - error messages when the kubelet failed or when failed to wait for control plane - components." -pr_body: "" +pr: 130040 +releasenote: + text: "kubeadm: Improved `kubeadm init` and `kubeadm join` to provide consistent + error messages when the kubelet failed or when failed to wait for control plane + components." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130045-map.yaml b/releases/release-1.33/release-notes/maps/pr-130045-map.yaml index e68e476d569..18be960ca66 100644 --- a/releases/release-1.33/release-notes/maps/pr-130045-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130045-map.yaml @@ -1,4 +1,4 @@ -pr: 130045 -releasenote: - text: "kubeadm: Added preflight check for `cp` on Linux nodes and `xcopy` on Windows nodes. These binaries are required for kubeadm to work properly." -pr_body: "" +pr: 130045 +releasenote: + text: "kubeadm: Added preflight check for `cp` on Linux nodes and `xcopy` on Windows nodes. These binaries are required for kubeadm to work properly." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130047-map.yaml b/releases/release-1.33/release-notes/maps/pr-130047-map.yaml index c41fbe32c1f..a316ec58d9d 100644 --- a/releases/release-1.33/release-notes/maps/pr-130047-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130047-map.yaml @@ -1,5 +1,5 @@ -pr: 130047 -releasenote: - text: Extended the kube-apiserver loopback client certificate validity to 14 months - to align with the updated Kubernetes support lifecycle. -pr_body: "" +pr: 130047 +releasenote: + text: Extended the kube-apiserver loopback client certificate validity to 14 months + to align with the updated Kubernetes support lifecycle. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130058-map.yaml b/releases/release-1.33/release-notes/maps/pr-130058-map.yaml index aeae8e3d1de..a8a8ceb570c 100644 --- a/releases/release-1.33/release-notes/maps/pr-130058-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130058-map.yaml @@ -1,6 +1,6 @@ -pr: 130058 -releasenote: - text: Introduced the `LegacySidecarContainers` feature gate enabling the legacy - code path that predates the `SidecarContainers` feature. This temporary feature - gate is disabled by default, only available in v1.33, and will be removed in v1.34. -pr_body: "" +pr: 130058 +releasenote: + text: Introduced the `LegacySidecarContainers` feature gate enabling the legacy + code path that predates the `SidecarContainers` feature. This temporary feature + gate is disabled by default, only available in v1.33, and will be removed in v1.34. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130060-map.yaml b/releases/release-1.33/release-notes/maps/pr-130060-map.yaml index 6117c8245fd..cec2fff1917 100644 --- a/releases/release-1.33/release-notes/maps/pr-130060-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130060-map.yaml @@ -1,7 +1,7 @@ -pr: 130060 -releasenote: - text: 'kube-apiserver: Fixed a bug where the `ResourceQuota` admission plugin - did not respect any scope changes when a resource was updated, such as - setting or unsetting the `terminationGracePeriodSeconds` field of an - existing pod.' -pr_body: "" +pr: 130060 +releasenote: + text: 'kube-apiserver: Fixed a bug where the `ResourceQuota` admission plugin + did not respect any scope changes when a resource was updated, such as + setting or unsetting the `terminationGracePeriodSeconds` field of an + existing pod.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130061-map.yaml b/releases/release-1.33/release-notes/maps/pr-130061-map.yaml index d4e1d509d8c..2a40e065f7d 100644 --- a/releases/release-1.33/release-notes/maps/pr-130061-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130061-map.yaml @@ -1,4 +1,4 @@ -pr: 130061 -releasenote: - text: Promoted the Job's JobBackoffLimitPerIndex feature-gate to stable. -pr_body: "" +pr: 130061 +releasenote: + text: Promoted the Job's JobBackoffLimitPerIndex feature-gate to stable. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130074-map.yaml b/releases/release-1.33/release-notes/maps/pr-130074-map.yaml index 7710096dd2e..f866a5fe55f 100644 --- a/releases/release-1.33/release-notes/maps/pr-130074-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130074-map.yaml @@ -1,4 +1,4 @@ -pr: 130074 -releasenote: - text: Kubernetes is now built with Go `v1.23.6`. -pr_body: "" +pr: 130074 +releasenote: + text: Kubernetes is now built with Go `v1.23.6`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130098-map.yaml b/releases/release-1.33/release-notes/maps/pr-130098-map.yaml index 32881b5d208..29e1d9a8daa 100644 --- a/releases/release-1.33/release-notes/maps/pr-130098-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130098-map.yaml @@ -1,5 +1,5 @@ -pr: 130098 -releasenote: - text: The v1 Endpoints API is now officially deprecated (though still fully supported). - The API will not be removed, but all users should use the EndpointSlice API instead. -pr_body: "" +pr: 130098 +releasenote: + text: The v1 Endpoints API is now officially deprecated (though still fully supported). + The API will not be removed, but all users should use the EndpointSlice API instead. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130101-map.yaml b/releases/release-1.33/release-notes/maps/pr-130101-map.yaml index 9d8e7c0f4e0..12be0c42a42 100644 --- a/releases/release-1.33/release-notes/maps/pr-130101-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130101-map.yaml @@ -1,6 +1,6 @@ -pr: 130101 -releasenote: - text: |- - Various controllers that write out IP address or CIDR values to API objects now - ensure that they always write out the values in canonical form. -pr_body: "" +pr: 130101 +releasenote: + text: |- + Various controllers that write out IP address or CIDR values to API objects now + ensure that they always write out the values in canonical form. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130113-map.yaml b/releases/release-1.33/release-notes/maps/pr-130113-map.yaml index 0dc17dcf4f7..436e7e3d2ff 100644 --- a/releases/release-1.33/release-notes/maps/pr-130113-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130113-map.yaml @@ -1,6 +1,6 @@ -pr: 130113 -releasenote: - text: Resolved a performance regression in default 1.31+ configurations, related - to the ConsistentListFromCache feature, where rapid create/update API requests - across different namespaces encounter increased latency. -pr_body: "" +pr: 130113 +releasenote: + text: Resolved a performance regression in default 1.31+ configurations, related + to the ConsistentListFromCache feature, where rapid create/update API requests + across different namespaces encounter increased latency. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130116-map.yaml b/releases/release-1.33/release-notes/maps/pr-130116-map.yaml index 59d19b47c1c..7e9b00f2c70 100644 --- a/releases/release-1.33/release-notes/maps/pr-130116-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130116-map.yaml @@ -1,4 +1,4 @@ -pr: 130116 -releasenote: - text: 'KEP-3857: Recursive Read-only (RRO) mounts: promote to GA.' -pr_body: "" +pr: 130116 +releasenote: + text: 'KEP-3857: Recursive Read-only (RRO) mounts: promote to GA.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130128-map.yaml b/releases/release-1.33/release-notes/maps/pr-130128-map.yaml index edde97b605f..d8df2a1d45f 100644 --- a/releases/release-1.33/release-notes/maps/pr-130128-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130128-map.yaml @@ -1,5 +1,5 @@ -pr: 130128 -releasenote: - text: Promoted `RelaxedDNSSearchValidation` to beta, allowing for Pod search domains - to be a single dot "." or contain an underscore "_". -pr_body: "" +pr: 130128 +releasenote: + text: Promoted `RelaxedDNSSearchValidation` to beta, allowing for Pod search domains + to be a single dot "." or contain an underscore "_". +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130133-map.yaml b/releases/release-1.33/release-notes/maps/pr-130133-map.yaml index 2fc18df4248..30e257b54b4 100644 --- a/releases/release-1.33/release-notes/maps/pr-130133-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130133-map.yaml @@ -1,4 +1,4 @@ -pr: 130133 -releasenote: - text: Added metrics to track allocation of Uncore (aka last-level aka L3) Cache blocks. -pr_body: "" +pr: 130133 +releasenote: + text: Added metrics to track allocation of Uncore (aka last-level aka L3) Cache blocks. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130135-map.yaml b/releases/release-1.33/release-notes/maps/pr-130135-map.yaml index d9fe9d7f629..726dc06c92a 100644 --- a/releases/release-1.33/release-notes/maps/pr-130135-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130135-map.yaml @@ -1,7 +1,7 @@ -pr: 130135 -releasenote: - text: |- - Graduated image volume sources to beta: - - Allowed `subPath`/`subPathExpr` for image volumes. - - Added kubelet metrics `kubelet_image_volume_requested_total`, `kubelet_image_volume_mounted_succeed_total` and `kubelet_image_volume_mounted_errors_total`. -pr_body: "" +pr: 130135 +releasenote: + text: |- + Graduated image volume sources to beta: + - Allowed `subPath`/`subPathExpr` for image volumes. + - Added kubelet metrics `kubelet_image_volume_requested_total`, `kubelet_image_volume_mounted_succeed_total` and `kubelet_image_volume_mounted_errors_total`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130138-map.yaml b/releases/release-1.33/release-notes/maps/pr-130138-map.yaml index c5a3df08a34..f70afac2d70 100644 --- a/releases/release-1.33/release-notes/maps/pr-130138-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130138-map.yaml @@ -1,4 +1,4 @@ -pr: 130138 -releasenote: - text: Enabled user namespaces support (feature gate `UserNamespacesSupport`) by default. -pr_body: "" +pr: 130138 +releasenote: + text: Enabled user namespaces support (feature gate `UserNamespacesSupport`) by default. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130162-map.yaml b/releases/release-1.33/release-notes/maps/pr-130162-map.yaml index 852d210e59b..632910e8274 100644 --- a/releases/release-1.33/release-notes/maps/pr-130162-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130162-map.yaml @@ -1,6 +1,6 @@ -pr: 130162 -releasenote: - text: |- - 1. kube-apiserver: removed the deprecated the `--cloud-provider` and `--cloud-config` CLI parameters. - 2. removed generally available feature-gate `DisableCloudProviders` and `DisableKubeletCloudCredentialProviders`. -pr_body: "" +pr: 130162 +releasenote: + text: |- + 1. kube-apiserver: removed the deprecated the `--cloud-provider` and `--cloud-config` CLI parameters. + 2. removed generally available feature-gate `DisableCloudProviders` and `DisableKubeletCloudCredentialProviders`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130181-map.yaml b/releases/release-1.33/release-notes/maps/pr-130181-map.yaml index 281eb18459f..8580cd571ec 100644 --- a/releases/release-1.33/release-notes/maps/pr-130181-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130181-map.yaml @@ -1,6 +1,6 @@ -pr: 130181 -releasenote: - text: Changed metadata management for Pods to populate `.metadata.generation` on - writes. New pods will have a `metadata.generation` of 1; updates to mutable fields - in the Pod `.spec` will result in `metadata.generation` being incremented by 1. -pr_body: "" +pr: 130181 +releasenote: + text: Changed metadata management for Pods to populate `.metadata.generation` on + writes. New pods will have a `metadata.generation` of 1; updates to mutable fields + in the Pod `.spec` will result in `metadata.generation` being incremented by 1. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130183-map.yaml b/releases/release-1.33/release-notes/maps/pr-130183-map.yaml index 495204215f1..ddb414b1818 100644 --- a/releases/release-1.33/release-notes/maps/pr-130183-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130183-map.yaml @@ -1,6 +1,6 @@ -pr: 130183 -releasenote: - text: '`InPlacePodVerticalScaling`: Memory limits cannot be decreased unless the memory - resize restart policy is set to `RestartContainer`. Container resizePolicy is - no longer mutable.' -pr_body: "" +pr: 130183 +releasenote: + text: '`InPlacePodVerticalScaling`: Memory limits cannot be decreased unless the memory + resize restart policy is set to `RestartContainer`. Container resizePolicy is + no longer mutable.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130189-map.yaml b/releases/release-1.33/release-notes/maps/pr-130189-map.yaml index 095a8889e96..be8ef87ccc7 100644 --- a/releases/release-1.33/release-notes/maps/pr-130189-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130189-map.yaml @@ -1,6 +1,6 @@ -pr: 130189 -releasenote: - text: If scheduling fails on PreBind or Bind, scheduler will retry the failed pod - immediately after backoff time, regardless of the reason for failing. In this - case EventsToRegister (QHints) will not be taken into consideration before retry. -pr_body: "" +pr: 130189 +releasenote: + text: If scheduling fails on PreBind or Bind, scheduler will retry the failed pod + immediately after backoff time, regardless of the reason for failing. In this + case EventsToRegister (QHints) will not be taken into consideration before retry. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130200-map.yaml b/releases/release-1.33/release-notes/maps/pr-130200-map.yaml index 9269a33bfc2..97ca985db11 100644 --- a/releases/release-1.33/release-notes/maps/pr-130200-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130200-map.yaml @@ -1,4 +1,4 @@ -pr: 130200 -releasenote: - text: "`kubeproxy_conntrack_reconciler_sync_duration_seconds` metric can now be used to track conntrack reconciliation latency." -pr_body: "" +pr: 130200 +releasenote: + text: "`kubeproxy_conntrack_reconciler_sync_duration_seconds` metric can now be used to track conntrack reconciliation latency." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130202-map.yaml b/releases/release-1.33/release-notes/maps/pr-130202-map.yaml index b53dde74e51..c0b55a47f4e 100644 --- a/releases/release-1.33/release-notes/maps/pr-130202-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130202-map.yaml @@ -1,5 +1,5 @@ -pr: 130202 -releasenote: - text: 'kubeadm: fixed panic when no UpgradeConfiguration was found in the config - file.' -pr_body: "" +pr: 130202 +releasenote: + text: 'kubeadm: fixed panic when no UpgradeConfiguration was found in the config + file.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130204-map.yaml b/releases/release-1.33/release-notes/maps/pr-130204-map.yaml index a01cba1bf22..8987ea78e72 100644 --- a/releases/release-1.33/release-notes/maps/pr-130204-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130204-map.yaml @@ -1,4 +1,4 @@ -pr: 130204 -releasenote: - text: "`kubeproxy_conntrack_reconciler_deleted_entries_total` metric can be used to track cumulative sum of conntrack flows cleared by reconciler." -pr_body: "" +pr: 130204 +releasenote: + text: "`kubeproxy_conntrack_reconciler_deleted_entries_total` metric can be used to track cumulative sum of conntrack flows cleared by reconciler." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130210-map.yaml b/releases/release-1.33/release-notes/maps/pr-130210-map.yaml index 0b6c30f8419..081401469ae 100644 --- a/releases/release-1.33/release-notes/maps/pr-130210-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130210-map.yaml @@ -1,7 +1,7 @@ -pr: 130210 -releasenote: - text: 'KEP-3619: fined-grained supplemental groups policy is graduated to Beta. - Note that kubelet now rejects pods with `.spec.securityContext.supplementalGroupsPolicy: - Strict` when scheduled to the node that does not support the feature (`.status.features.supplementalGroupsPolicy: - false`).' -pr_body: "" +pr: 130210 +releasenote: + text: 'KEP-3619: fined-grained supplemental groups policy is graduated to Beta. + Note that kubelet now rejects pods with `.spec.securityContext.supplementalGroupsPolicy: + Strict` when scheduled to the node that does not support the feature (`.status.features.supplementalGroupsPolicy: + false`).' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130225-map.yaml b/releases/release-1.33/release-notes/maps/pr-130225-map.yaml index d6a3f2962d0..82d9f729aaa 100644 --- a/releases/release-1.33/release-notes/maps/pr-130225-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130225-map.yaml @@ -1,8 +1,8 @@ -pr: 130225 -releasenote: - text: 'DRA: Starting Kubernetes 1.33, only users with access to an admin namespace - with the `kubernetes.io/dra-admin-access` label are authorized to create ResourceClaim - or ResourceClaimTemplate objects with the `adminAccess` field in this admin namespace - if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates - in their pod or deployment specs.' -pr_body: "" +pr: 130225 +releasenote: + text: 'DRA: Starting Kubernetes 1.33, only users with access to an admin namespace + with the `kubernetes.io/dra-admin-access` label are authorized to create ResourceClaim + or ResourceClaimTemplate objects with the `adminAccess` field in this admin namespace + if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates + in their pod or deployment specs.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130233-map.yaml b/releases/release-1.33/release-notes/maps/pr-130233-map.yaml index 0b4e1ca6202..da599f11c0b 100644 --- a/releases/release-1.33/release-notes/maps/pr-130233-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130233-map.yaml @@ -1,6 +1,6 @@ -pr: 130233 -releasenote: - text: |- - Validation now requires new StatefulSets with a `.spec.serviceName` field value to pass DNS1123 validation. Previously created StatefulSets with an invalid `.spec.serviceName` field value could not create any pods, and should be deleted. - - Published OpenAPI for the StatefulSet schema is corrected to indicate the `.spec.serviceName` is optional. -pr_body: "" +pr: 130233 +releasenote: + text: |- + Validation now requires new StatefulSets with a `.spec.serviceName` field value to pass DNS1123 validation. Previously created StatefulSets with an invalid `.spec.serviceName` field value could not create any pods, and should be deleted. + - Published OpenAPI for the StatefulSet schema is corrected to indicate the `.spec.serviceName` is optional. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130238-map.yaml b/releases/release-1.33/release-notes/maps/pr-130238-map.yaml index 982b8e7d03b..21806891e12 100644 --- a/releases/release-1.33/release-notes/maps/pr-130238-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130238-map.yaml @@ -1,4 +1,4 @@ -pr: 130238 -releasenote: - text: Promoted kubectl `--subresource` flag to stable. -pr_body: "" +pr: 130238 +releasenote: + text: Promoted kubectl `--subresource` flag to stable. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130243-map.yaml b/releases/release-1.33/release-notes/maps/pr-130243-map.yaml index 5d5ed594b48..573fafb2453 100644 --- a/releases/release-1.33/release-notes/maps/pr-130243-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130243-map.yaml @@ -1,7 +1,7 @@ -pr: 130243 -releasenote: - text: Removed a warning related to Linux user namespaces and kernel version. Previously, - if the feature gate `UserNamespacesSupport` was enabled, the kubelet warned when - detecting a Linux kernel version earlier than 6.3.0. While user namespace support - generally requires kernel 6.3 or newer, it can also work on older kernels. -pr_body: "" +pr: 130243 +releasenote: + text: Removed a warning related to Linux user namespaces and kernel version. Previously, + if the feature gate `UserNamespacesSupport` was enabled, the kubelet warned when + detecting a Linux kernel version earlier than 6.3.0. While user namespace support + generally requires kernel 6.3 or newer, it can also work on older kernels. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130250-map.yaml b/releases/release-1.33/release-notes/maps/pr-130250-map.yaml index 64de46159df..96516400ba6 100644 --- a/releases/release-1.33/release-notes/maps/pr-130250-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130250-map.yaml @@ -1,4 +1,4 @@ -pr: 130250 -releasenote: - text: Removed alpha support for Windows HostNetwork containers. -pr_body: "" +pr: 130250 +releasenote: + text: Removed alpha support for Windows HostNetwork containers. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130256-map.yaml b/releases/release-1.33/release-notes/maps/pr-130256-map.yaml index 39d1bc75fca..b58e5b3b22f 100644 --- a/releases/release-1.33/release-notes/maps/pr-130256-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130256-map.yaml @@ -1,4 +1,4 @@ -pr: 130256 -releasenote: - text: Fixed rare and sporadic network issues that occurred when the host was under heavy load. -pr_body: "" +pr: 130256 +releasenote: + text: Fixed rare and sporadic network issues that occurred when the host was under heavy load. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130260-map.yaml b/releases/release-1.33/release-notes/maps/pr-130260-map.yaml index dffd47d34b2..7d9a6951ad0 100644 --- a/releases/release-1.33/release-notes/maps/pr-130260-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130260-map.yaml @@ -1,5 +1,5 @@ -pr: 130260 -releasenote: - text: The `BalancedAllocation` plugin now skips all best-effort (zero-requested) - pods. -pr_body: "" +pr: 130260 +releasenote: + text: The `BalancedAllocation` plugin now skips all best-effort (zero-requested) + pods. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130290-map.yaml b/releases/release-1.33/release-notes/maps/pr-130290-map.yaml index fc1e9e04db8..4ade34b4f3a 100644 --- a/releases/release-1.33/release-notes/maps/pr-130290-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130290-map.yaml @@ -1,6 +1,6 @@ -pr: 130290 -releasenote: - text: Added a new option `strict-cpu-reservation` for CPU Manager static policy. - When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly - used for system daemons and interrupt processing no longer available for any workload. -pr_body: "" +pr: 130290 +releasenote: + text: Added a new option `strict-cpu-reservation` for CPU Manager static policy. + When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly + used for system daemons and interrupt processing no longer available for any workload. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130291-map.yaml b/releases/release-1.33/release-notes/maps/pr-130291-map.yaml index 0c1c7f3750b..91378809f9d 100644 --- a/releases/release-1.33/release-notes/maps/pr-130291-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130291-map.yaml @@ -1,4 +1,4 @@ -pr: 130291 -releasenote: - text: Introduced API type coordination.k8s.io/v1beta1/LeaseCandidate. -pr_body: "" +pr: 130291 +releasenote: + text: Introduced API type coordination.k8s.io/v1beta1/LeaseCandidate. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130328-map.yaml b/releases/release-1.33/release-notes/maps/pr-130328-map.yaml index 75fe6ed5cff..342d47ab167 100644 --- a/releases/release-1.33/release-notes/maps/pr-130328-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130328-map.yaml @@ -1,5 +1,5 @@ -pr: 130328 -releasenote: - text: The `/flagz` endpoint in kube-apiserver now correctly returns parsed flag values - when the `ComponentFlagz` feature-gate is enabled. -pr_body: "" +pr: 130328 +releasenote: + text: The `/flagz` endpoint in kube-apiserver now correctly returns parsed flag values + when the `ComponentFlagz` feature-gate is enabled. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130335-map.yaml b/releases/release-1.33/release-notes/maps/pr-130335-map.yaml index 82b81e24948..a99c20c938d 100644 --- a/releases/release-1.33/release-notes/maps/pr-130335-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130335-map.yaml @@ -1,5 +1,5 @@ -pr: 130335 -releasenote: - text: Fixed an issue where kubelet would unmount volumes of running pods upon restart - if the referenced PVC was being deleted by the user. -pr_body: "" +pr: 130335 +releasenote: + text: Fixed an issue where kubelet would unmount volumes of running pods upon restart + if the referenced PVC was being deleted by the user. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130345-map.yaml b/releases/release-1.33/release-notes/maps/pr-130345-map.yaml index 66b71f51b66..17ebfbdf1f0 100644 --- a/releases/release-1.33/release-notes/maps/pr-130345-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130345-map.yaml @@ -1,4 +1,4 @@ -pr: 130345 -releasenote: - text: 'kubeadm: Used generic terminology in logs instead of directly mentioning YAML or JSON.' -pr_body: "" +pr: 130345 +releasenote: + text: 'kubeadm: Used generic terminology in logs instead of directly mentioning YAML or JSON.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130347-map.yaml b/releases/release-1.33/release-notes/maps/pr-130347-map.yaml index d62319bd213..a4233a76318 100644 --- a/releases/release-1.33/release-notes/maps/pr-130347-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130347-map.yaml @@ -1,4 +1,4 @@ -pr: 130347 -releasenote: - text: '`apidiscovery.k8s.io/v2beta1` API group is disabled by default.' -pr_body: "" +pr: 130347 +releasenote: + text: '`apidiscovery.k8s.io/v2beta1` API group is disabled by default.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130348-map.yaml b/releases/release-1.33/release-notes/maps/pr-130348-map.yaml index 1928cdb0891..14f895d4be6 100644 --- a/releases/release-1.33/release-notes/maps/pr-130348-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130348-map.yaml @@ -1,5 +1,5 @@ -pr: 130348 -releasenote: - text: Fixed a regression in 1.32 where nodes could fail to report status and renew serving - certificates after the kubelet restarted. -pr_body: "" +pr: 130348 +releasenote: + text: Fixed a regression in 1.32 where nodes could fail to report status and renew serving + certificates after the kubelet restarted. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130352-map.yaml b/releases/release-1.33/release-notes/maps/pr-130352-map.yaml index 78082b7e485..e7388ed556f 100644 --- a/releases/release-1.33/release-notes/maps/pr-130352-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130352-map.yaml @@ -1,6 +1,6 @@ -pr: 130352 -releasenote: - text: When the `PodObservedGenerationTracking` feature gate was set, the kubelet - populated `status.observedGeneration` to reflect the latest `metadata.generation` - it observed for the pod. -pr_body: "" +pr: 130352 +releasenote: + text: When the `PodObservedGenerationTracking` feature gate was set, the kubelet + populated `status.observedGeneration` to reflect the latest `metadata.generation` + it observed for the pod. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130354-map.yaml b/releases/release-1.33/release-notes/maps/pr-130354-map.yaml index d9d3cd955ef..e8506b5bc4e 100644 --- a/releases/release-1.33/release-notes/maps/pr-130354-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130354-map.yaml @@ -1,6 +1,6 @@ -pr: 130354 -releasenote: - text: |- - Added a new cli flag "--emulation-forward-compatible". - Added a new cli flag "--runtime-config-emulation-forward-compatible". -pr_body: "" +pr: 130354 +releasenote: + text: |- + Added a new cli flag "--emulation-forward-compatible". + Added a new cli flag "--runtime-config-emulation-forward-compatible". +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130394-map.yaml b/releases/release-1.33/release-notes/maps/pr-130394-map.yaml index 7b4d1649eb1..a0c0b66d1eb 100644 --- a/releases/release-1.33/release-notes/maps/pr-130394-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130394-map.yaml @@ -1,4 +1,4 @@ -pr: 130394 -releasenote: - text: Allowed `ImageVolume` for Restricted PSA profiles. -pr_body: "" +pr: 130394 +releasenote: + text: Allowed `ImageVolume` for Restricted PSA profiles. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130398-map.yaml b/releases/release-1.33/release-notes/maps/pr-130398-map.yaml index 398304a9422..d6433581d0a 100644 --- a/releases/release-1.33/release-notes/maps/pr-130398-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130398-map.yaml @@ -1,4 +1,4 @@ -pr: 130398 -releasenote: - text: Added progress tracking for volume permission and ownership changes. -pr_body: "" +pr: 130398 +releasenote: + text: Added progress tracking for volume permission and ownership changes. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130401-map.yaml b/releases/release-1.33/release-notes/maps/pr-130401-map.yaml index 29b35ccb170..f28d22aed21 100644 --- a/releases/release-1.33/release-notes/maps/pr-130401-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130401-map.yaml @@ -1,7 +1,7 @@ -pr: 130401 -releasenote: - text: Fixed the behavior of the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` - environment variable in the nftables proxier. The kernel version check is now skipped - only when this variable is explicitly set to a non-empty value. To skip the check, set the - `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable. -pr_body: "" +pr: 130401 +releasenote: + text: Fixed the behavior of the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` + environment variable in the nftables proxier. The kernel version check is now skipped + only when this variable is explicitly set to a non-empty value. To skip the check, set the + `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130405-map.yaml b/releases/release-1.33/release-notes/maps/pr-130405-map.yaml index ef3014b07aa..38c4d004935 100644 --- a/releases/release-1.33/release-notes/maps/pr-130405-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130405-map.yaml @@ -1,14 +1,14 @@ -pr: 130405 -releasenote: - text: |- - The following roles have had `Watch` added to them (prefixed with `system:controller:`): - - - `cronjob-controller`. - - `endpoint-controller`. - - `endpointslice-controller`. - - `endpointslicemirroring-controller`. - - `horizontal-pod-autoscaler`. - - `node-controller`. - - `pod-garbage-collector`. - - `storage-version-migrator-controller`. -pr_body: "" +pr: 130405 +releasenote: + text: |- + The following roles have had `Watch` added to them (prefixed with `system:controller:`): + + - `cronjob-controller`. + - `endpoint-controller`. + - `endpointslice-controller`. + - `endpointslicemirroring-controller`. + - `horizontal-pod-autoscaler`. + - `node-controller`. + - `pod-garbage-collector`. + - `storage-version-migrator-controller`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130423-map.yaml b/releases/release-1.33/release-notes/maps/pr-130423-map.yaml index c8a049f9335..7548dd0a169 100644 --- a/releases/release-1.33/release-notes/maps/pr-130423-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130423-map.yaml @@ -1,5 +1,5 @@ -pr: 130423 -releasenote: - text: Added `ListFromCacheSnapshot` feature gate that allows apiserver to serve LISTs - with exact RV and continuations from cache. -pr_body: "" +pr: 130423 +releasenote: + text: Added `ListFromCacheSnapshot` feature gate that allows apiserver to serve LISTs + with exact RV and continuations from cache. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130447-map.yaml b/releases/release-1.33/release-notes/maps/pr-130447-map.yaml index fdaf66780f1..430c5017407 100644 --- a/releases/release-1.33/release-notes/maps/pr-130447-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130447-map.yaml @@ -1,7 +1,7 @@ -pr: 130447 -releasenote: - text: 'DRA: Device taints enable DRA drivers or admins to mark device as unusable, - which prevents allocating them. Pods may also get evicted at runtime if a device - becomes unusable, depending on the severity of the taint and whether the claim - tolerates the taint.' -pr_body: "" +pr: 130447 +releasenote: + text: 'DRA: Device taints enable DRA drivers or admins to mark device as unusable, + which prevents allocating them. Pods may also get evicted at runtime if a device + becomes unusable, depending on the severity of the taint and whether the claim + tolerates the taint.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130450-map.yaml b/releases/release-1.33/release-notes/maps/pr-130450-map.yaml index d2549a1ca71..024d36e9767 100644 --- a/releases/release-1.33/release-notes/maps/pr-130450-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130450-map.yaml @@ -1,5 +1,5 @@ -pr: 130450 -releasenote: - text: Fixed an issue in the CEL CIDR library where subnets contained within another - CIDR were incorrectly rejected as not being contained. -pr_body: "" +pr: 130450 +releasenote: + text: Fixed an issue in the CEL CIDR library where subnets contained within another + CIDR were incorrectly rejected as not being contained. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130463-map.yaml b/releases/release-1.33/release-notes/maps/pr-130463-map.yaml index 6fb623bc2e1..a2be9840a8b 100644 --- a/releases/release-1.33/release-notes/maps/pr-130463-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130463-map.yaml @@ -1,5 +1,5 @@ -pr: 130463 -releasenote: - text: Graduated the `MatchLabelKeys` (MismatchLabelKeys) feature in PodAffinity (PodAntiAffinity) - to GA. -pr_body: "" +pr: 130463 +releasenote: + text: Graduated the `MatchLabelKeys` (MismatchLabelKeys) feature in PodAffinity (PodAntiAffinity) + to GA. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130475-map.yaml b/releases/release-1.33/release-notes/maps/pr-130475-map.yaml index ae2bdc44081..73c73f5e00e 100644 --- a/releases/release-1.33/release-notes/maps/pr-130475-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130475-map.yaml @@ -1,5 +1,5 @@ -pr: 130475 -releasenote: - text: Added a mechanism that calculates a digest of etcd and the watch cache every - 5 minutes and exposes it as the `apiserver_storage_digest` metric. -pr_body: "" +pr: 130475 +releasenote: + text: Added a mechanism that calculates a digest of etcd and the watch cache every + 5 minutes and exposes it as the `apiserver_storage_digest` metric. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130484-map.yaml b/releases/release-1.33/release-notes/maps/pr-130484-map.yaml index a06482540e5..e022cc27d93 100644 --- a/releases/release-1.33/release-notes/maps/pr-130484-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130484-map.yaml @@ -1,7 +1,7 @@ -pr: 130484 -releasenote: - text: Fixed a 1.32 regression kube-proxy, when using a Service with External or - LoadBalancer IPs on UDP services , was consuming a large amount of CPU because - it was not filtering by the Service destination port and trying to delete all - the UDP entries associated to the service. -pr_body: "" +pr: 130484 +releasenote: + text: Fixed a 1.32 regression kube-proxy, when using a Service with External or + LoadBalancer IPs on UDP services , was consuming a large amount of CPU because + it was not filtering by the Service destination port and trying to delete all + the UDP entries associated to the service. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130485-map.yaml b/releases/release-1.33/release-notes/maps/pr-130485-map.yaml index 777b71aee3c..d4c87d71ca8 100644 --- a/releases/release-1.33/release-notes/maps/pr-130485-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130485-map.yaml @@ -1,5 +1,5 @@ -pr: 130485 -releasenote: - text: Allowed dynamic configuration of the service account name and audience that - the kubelet could request a token for, as part of the node audience restriction feature. -pr_body: "" +pr: 130485 +releasenote: + text: Allowed dynamic configuration of the service account name and audience that + the kubelet could request a token for, as part of the node audience restriction feature. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130491-map.yaml b/releases/release-1.33/release-notes/maps/pr-130491-map.yaml index 25bce65da53..3d2745ba6d3 100644 --- a/releases/release-1.33/release-notes/maps/pr-130491-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130491-map.yaml @@ -1,4 +1,4 @@ -pr: 130491 -releasenote: - text: Added metrics to capture CPU distribution across NUMA nodes. -pr_body: "" +pr: 130491 +releasenote: + text: Added metrics to capture CPU distribution across NUMA nodes. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130507-map.yaml b/releases/release-1.33/release-notes/maps/pr-130507-map.yaml index 93683a87727..3304cbbcedf 100644 --- a/releases/release-1.33/release-notes/maps/pr-130507-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130507-map.yaml @@ -1,4 +1,4 @@ -pr: 130507 -releasenote: - text: Enabled the `OrderedNamespaceDeletion` feature gate by default. -pr_body: "" +pr: 130507 +releasenote: + text: Enabled the `OrderedNamespaceDeletion` feature gate by default. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130535-map.yaml b/releases/release-1.33/release-notes/maps/pr-130535-map.yaml index 6dac3515379..cb0feb983e2 100644 --- a/releases/release-1.33/release-notes/maps/pr-130535-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130535-map.yaml @@ -1,4 +1,4 @@ -pr: 130535 -releasenote: - text: CPUManager Policy Options support is GA. -pr_body: "" +pr: 130535 +releasenote: + text: CPUManager Policy Options support is GA. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130536-map.yaml b/releases/release-1.33/release-notes/maps/pr-130536-map.yaml index 0636a28d28d..a09d13ceb57 100644 --- a/releases/release-1.33/release-notes/maps/pr-130536-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130536-map.yaml @@ -1,4 +1,4 @@ -pr: 130536 -releasenote: - text: Promoted the `JobSuccessPolicy` to Stable. -pr_body: "" +pr: 130536 +releasenote: + text: Promoted the `JobSuccessPolicy` to Stable. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130537-map.yaml b/releases/release-1.33/release-notes/maps/pr-130537-map.yaml index b1e7c37c55d..08fc6b45dc8 100644 --- a/releases/release-1.33/release-notes/maps/pr-130537-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130537-map.yaml @@ -1,4 +1,4 @@ -pr: 130537 -releasenote: - text: Scheduling Framework exposes NodeInfo to the ScorePlugin. -pr_body: "" +pr: 130537 +releasenote: + text: Scheduling Framework exposes NodeInfo to the ScorePlugin. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130541-map.yaml b/releases/release-1.33/release-notes/maps/pr-130541-map.yaml index 8f140b182f2..cd3ea4e8bcf 100644 --- a/releases/release-1.33/release-notes/maps/pr-130541-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130541-map.yaml @@ -1,4 +1,4 @@ -pr: 130541 -releasenote: - text: '`DistributeCPUsAcrossNUMA` policy option is promoted to Beta.' -pr_body: "" +pr: 130541 +releasenote: + text: '`DistributeCPUsAcrossNUMA` policy option is promoted to Beta.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130544-map.yaml b/releases/release-1.33/release-notes/maps/pr-130544-map.yaml index 75f07d96c8a..1648539f286 100644 --- a/releases/release-1.33/release-notes/maps/pr-130544-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130544-map.yaml @@ -1,5 +1,5 @@ -pr: 130544 -releasenote: - text: SELinuxChangePolicy and SELinuxMount graduated to Beta. SELinuxMount stays - off by default. -pr_body: "" +pr: 130544 +releasenote: + text: SELinuxChangePolicy and SELinuxMount graduated to Beta. SELinuxMount stays + off by default. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130550-map.yaml b/releases/release-1.33/release-notes/maps/pr-130550-map.yaml index 841b6431873..6c7512cd461 100644 --- a/releases/release-1.33/release-notes/maps/pr-130550-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130550-map.yaml @@ -1,5 +1,5 @@ -pr: 130550 -releasenote: - text: Graduate the asynchronous preemption feature in the scheduler to beta. \nNow - the feature flag (SchedulerAsyncPreemption) is enabled by default. -pr_body: "" +pr: 130550 +releasenote: + text: Graduate the asynchronous preemption feature in the scheduler to beta. \nNow + the feature flag (SchedulerAsyncPreemption) is enabled by default. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130553-map.yaml b/releases/release-1.33/release-notes/maps/pr-130553-map.yaml index d62b10c2573..357b9cee82c 100644 --- a/releases/release-1.33/release-notes/maps/pr-130553-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130553-map.yaml @@ -1,7 +1,7 @@ -pr: 130553 -releasenote: - text: 'kube-apiserver: the `StorageObjectInUseProtection` admission plugin added - the `kubernetes.io/vac-protection` finalizer to the given VolumeAttributesClass - object when it is created if the feature-gate `VolumeAttributesClass` is turned - on and `storage.k8s.io/v1beta1` is enabled.' -pr_body: "" +pr: 130553 +releasenote: + text: 'kube-apiserver: the `StorageObjectInUseProtection` admission plugin added + the `kubernetes.io/vac-protection` finalizer to the given VolumeAttributesClass + object when it is created if the feature-gate `VolumeAttributesClass` is turned + on and `storage.k8s.io/v1beta1` is enabled.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130556-map.yaml b/releases/release-1.33/release-notes/maps/pr-130556-map.yaml index cec69e9d0f4..238af9c2eff 100644 --- a/releases/release-1.33/release-notes/maps/pr-130556-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130556-map.yaml @@ -1,5 +1,5 @@ -pr: 130556 -releasenote: - text: Added support for configuring custom stop signals with a new StopSignal container - lifecycle. -pr_body: "" +pr: 130556 +releasenote: + text: Added support for configuring custom stop signals with a new StopSignal container + lifecycle. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130559-map.yaml b/releases/release-1.33/release-notes/maps/pr-130559-map.yaml index ba63dfa7741..71bfd7bc325 100644 --- a/releases/release-1.33/release-notes/maps/pr-130559-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130559-map.yaml @@ -1,5 +1,5 @@ -pr: 130559 -releasenote: - text: Fixed a bug in the exclusive assignment availability check for the `InPlacePodVerticalScalingExclusiveCPUs` - feature gate. -pr_body: "" +pr: 130559 +releasenote: + text: Fixed a bug in the exclusive assignment availability check for the `InPlacePodVerticalScalingExclusiveCPUs` + feature gate. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130560-map.yaml b/releases/release-1.33/release-notes/maps/pr-130560-map.yaml index a078419d0fb..c918d922703 100644 --- a/releases/release-1.33/release-notes/maps/pr-130560-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130560-map.yaml @@ -1,8 +1,8 @@ -pr: 130560 -releasenote: - text: The `RemoteRequestHeaderUID` feature moves to beta and is now enabled by default. - This makes the kube-apiserver propagate UIDs in the `X-Remote-Uid` header in requests - to the aggregated API servers. The header is not honored by default for incoming - requests, but that can be enabled by setting the `--requestheader-uid-headers` - flag explicitly. -pr_body: "" +pr: 130560 +releasenote: + text: The `RemoteRequestHeaderUID` feature moves to beta and is now enabled by default. + This makes the kube-apiserver propagate UIDs in the `X-Remote-Uid` header in requests + to the aggregated API servers. The header is not honored by default for incoming + requests, but that can be enabled by setting the `--requestheader-uid-headers` + flag explicitly. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130564-map.yaml b/releases/release-1.33/release-notes/maps/pr-130564-map.yaml index f485b260c6c..de815b3d3c2 100644 --- a/releases/release-1.33/release-notes/maps/pr-130564-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130564-map.yaml @@ -1,7 +1,7 @@ -pr: 130564 -releasenote: - text: |- - Endpoints resources created by the Endpoints controller now include a label indicating this. - Users who manually create Endpoints can also add this label, but they should consider - using `EndpointSlices` instead. -pr_body: "" +pr: 130564 +releasenote: + text: |- + Endpoints resources created by the Endpoints controller now include a label indicating this. + Users who manually create Endpoints can also add this label, but they should consider + using `EndpointSlices` instead. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130571-map.yaml b/releases/release-1.33/release-notes/maps/pr-130571-map.yaml index 661d1d7088a..762f96fabd3 100644 --- a/releases/release-1.33/release-notes/maps/pr-130571-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130571-map.yaml @@ -1,7 +1,7 @@ -pr: 130571 -releasenote: - text: |- - Added `apiserver.latency.k8s.io/authentication` annotation to the audit log to record the - time spent authenticating slow requests. Also added `apiserver.latency.k8s.io/authorization` - annotation to record the time spent authorizing slow requests. -pr_body: "" +pr: 130571 +releasenote: + text: |- + Added `apiserver.latency.k8s.io/authentication` annotation to the audit log to record the + time spent authenticating slow requests. Also added `apiserver.latency.k8s.io/authorization` + annotation to record the time spent authorizing slow requests. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130573-map.yaml b/releases/release-1.33/release-notes/maps/pr-130573-map.yaml index dea350a3efb..c32f6ebd339 100644 --- a/releases/release-1.33/release-notes/maps/pr-130573-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130573-map.yaml @@ -1,5 +1,5 @@ -pr: 130573 -releasenote: - text: The kubelet will set the `observedGeneration` field on pod conditions when - the `PodObservedGenerationTracking` feature gate is set. -pr_body: "" +pr: 130573 +releasenote: + text: The kubelet will set the `observedGeneration` field on pod conditions when + the `PodObservedGenerationTracking` feature gate is set. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130574-map.yaml b/releases/release-1.33/release-notes/maps/pr-130574-map.yaml index 973b4c9a478..7fe97932426 100644 --- a/releases/release-1.33/release-notes/maps/pr-130574-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130574-map.yaml @@ -1,5 +1,5 @@ -pr: 130574 -releasenote: - text: For the `InPlacePodVerticalScaling` feature, the API server will no longer set - the resize status to `Proposed` upon receiving a resize request. -pr_body: "" +pr: 130574 +releasenote: + text: For the `InPlacePodVerticalScaling` feature, the API server will no longer set + the resize status to `Proposed` upon receiving a resize request. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130577-map.yaml b/releases/release-1.33/release-notes/maps/pr-130577-map.yaml index 25a929da1c5..c5db2ff7881 100644 --- a/releases/release-1.33/release-notes/maps/pr-130577-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130577-map.yaml @@ -1,5 +1,5 @@ -pr: 130577 -releasenote: - text: Changed the Pod API to support `hugepage resources` at `spec` level for pod-level - resources. -pr_body: "" +pr: 130577 +releasenote: + text: Changed the Pod API to support `hugepage resources` at `spec` level for pod-level + resources. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130591-map.yaml b/releases/release-1.33/release-notes/maps/pr-130591-map.yaml index baf38a18f61..b646e15fc23 100644 --- a/releases/release-1.33/release-notes/maps/pr-130591-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130591-map.yaml @@ -1,6 +1,6 @@ -pr: 130591 -releasenote: - text: Reduced log verbosity for high-frequency, low-value log entries in Job, IPAM, - and ReplicaSet controllers by adjusting them to V(2), V(4) and V(4) respectively. - This change minimizes log noise while maintaining access to these logs when needed. -pr_body: "" +pr: 130591 +releasenote: + text: Reduced log verbosity for high-frequency, low-value log entries in Job, IPAM, + and ReplicaSet controllers by adjusting them to V(2), V(4) and V(4) respectively. + This change minimizes log noise while maintaining access to these logs when needed. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130599-map.yaml b/releases/release-1.33/release-notes/maps/pr-130599-map.yaml index 011d334aed2..1f4151a2b23 100644 --- a/releases/release-1.33/release-notes/maps/pr-130599-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130599-map.yaml @@ -1,5 +1,5 @@ -pr: 130599 -releasenote: - text: Pod resource checkpointing is now tracked by the `allocated_pods_state` and - `actuated_pods_state` files, replacing the previously used `pod_status_manager_state`. -pr_body: "" +pr: 130599 +releasenote: + text: Pod resource checkpointing is now tracked by the `allocated_pods_state` and + `actuated_pods_state` files, replacing the previously used `pod_status_manager_state`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130616-map.yaml b/releases/release-1.33/release-notes/maps/pr-130616-map.yaml index 5d3f486a903..874e34f4ed8 100644 --- a/releases/release-1.33/release-notes/maps/pr-130616-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130616-map.yaml @@ -1,8 +1,8 @@ -pr: 130616 -releasenote: - text: |- - Fixed a test failure in `TestSetVolumeOwnershipOwner` for `fsGroup=3000` and - symlink cases in `volume_linux_test.go`. The tests were failing due to invalid - ownership verification and the issue has been resolved by adjusting file - permission change handling, ensuring correct behavior when run as root. -pr_body: "" +pr: 130616 +releasenote: + text: |- + Fixed a test failure in `TestSetVolumeOwnershipOwner` for `fsGroup=3000` and + symlink cases in `volume_linux_test.go`. The tests were failing due to invalid + ownership verification and the issue has been resolved by adjusting file + permission change handling, ensuring correct behavior when run as root. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130621-map.yaml b/releases/release-1.33/release-notes/maps/pr-130621-map.yaml index fbca867a348..9082c8f1320 100644 --- a/releases/release-1.33/release-notes/maps/pr-130621-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130621-map.yaml @@ -1,5 +1,5 @@ -pr: 130621 -releasenote: - text: '`PodLifecycleSleepAction` is now turned on by default allowing users to create - containers with sleep lifecycle action with a duration of zero seconds.' -pr_body: "" +pr: 130621 +releasenote: + text: '`PodLifecycleSleepAction` is now turned on by default allowing users to create + containers with sleep lifecycle action with a duration of zero seconds.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130626-map.yaml b/releases/release-1.33/release-notes/maps/pr-130626-map.yaml index 97efd2afae9..df881b8dbf1 100644 --- a/releases/release-1.33/release-notes/maps/pr-130626-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130626-map.yaml @@ -1,5 +1,5 @@ -pr: 130626 -releasenote: - text: '`client-gen` now sorts input group/versions to ensure stable output generation - even with unsorted inputs.' -pr_body: "" +pr: 130626 +releasenote: + text: '`client-gen` now sorts input group/versions to ensure stable output generation + even with unsorted inputs.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130649-map.yaml b/releases/release-1.33/release-notes/maps/pr-130649-map.yaml index d721d314944..3f05182f73f 100644 --- a/releases/release-1.33/release-notes/maps/pr-130649-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130649-map.yaml @@ -1,5 +1,5 @@ -pr: 130649 -releasenote: - text: The kube-scheduler will set the `observedGeneration` field on pod conditions - when the `PodObservedGenerationTracking` feature gate is set. -pr_body: "" +pr: 130649 +releasenote: + text: The kube-scheduler will set the `observedGeneration` field on pod conditions + when the `PodObservedGenerationTracking` feature gate is set. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130650-map.yaml b/releases/release-1.33/release-notes/maps/pr-130650-map.yaml index 1f7ad1657a7..e5b3aa012b0 100644 --- a/releases/release-1.33/release-notes/maps/pr-130650-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130650-map.yaml @@ -1,5 +1,5 @@ -pr: 130650 -releasenote: - text: The kube-controller-manager will set the `observedGeneration` field on pod - conditions when the `PodObservedGenerationTracking` feature gate is set. -pr_body: "" +pr: 130650 +releasenote: + text: The kube-controller-manager will set the `observedGeneration` field on pod + conditions when the `PodObservedGenerationTracking` feature gate is set. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130655-map.yaml b/releases/release-1.33/release-notes/maps/pr-130655-map.yaml index 2b5d1463eba..571b72a844d 100644 --- a/releases/release-1.33/release-notes/maps/pr-130655-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130655-map.yaml @@ -1,5 +1,5 @@ -pr: 130655 -releasenote: - text: "e2e.test: [Feature:OffByDefault] was added to test names when specifying a - feature gate that is not enabled by default." -pr_body: "" +pr: 130655 +releasenote: + text: "e2e.test: [Feature:OffByDefault] was added to test names when specifying a + feature gate that is not enabled by default." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130658-map.yaml b/releases/release-1.33/release-notes/maps/pr-130658-map.yaml index 94524698ed7..272cceb8a04 100644 --- a/releases/release-1.33/release-notes/maps/pr-130658-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130658-map.yaml @@ -1,4 +1,4 @@ -pr: 130658 -releasenote: - text: Promoted `JobSuccessPolicy` E2E to Conformance. -pr_body: "" +pr: 130658 +releasenote: + text: Promoted `JobSuccessPolicy` E2E to Conformance. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130666-map.yaml b/releases/release-1.33/release-notes/maps/pr-130666-map.yaml index 3a3d2540e65..ef18321d34b 100644 --- a/releases/release-1.33/release-notes/maps/pr-130666-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130666-map.yaml @@ -1,5 +1,5 @@ -pr: 130666 -releasenote: - text: YAML input that might previously have been misinterpreted as JSON is now correctly - accepted. -pr_body: "" +pr: 130666 +releasenote: + text: YAML input that might previously have been misinterpreted as JSON is now correctly + accepted. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130673-map.yaml b/releases/release-1.33/release-notes/maps/pr-130673-map.yaml index 3b18077ca11..69b469e5f4b 100644 --- a/releases/release-1.33/release-notes/maps/pr-130673-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130673-map.yaml @@ -1,9 +1,9 @@ -pr: 130673 -releasenote: - text: |- - The Service `trafficDistribution` field, including the PreferClose option, has graduated - to GA. Services that do not have the field configured will continue to operate - with their existing behavior. Refer to the documentation - https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution - for more details. -pr_body: "" +pr: 130673 +releasenote: + text: |- + The Service `trafficDistribution` field, including the PreferClose option, has graduated + to GA. Services that do not have the field configured will continue to operate + with their existing behavior. Refer to the documentation + https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution + for more details. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130701-map.yaml b/releases/release-1.33/release-notes/maps/pr-130701-map.yaml index 517116edddf..6ac6e0d854e 100644 --- a/releases/release-1.33/release-notes/maps/pr-130701-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130701-map.yaml @@ -1,4 +1,4 @@ -pr: 130701 -releasenote: - text: Added Pressure Stall Information (PSI) metrics to node metrics. -pr_body: "" +pr: 130701 +releasenote: + text: Added Pressure Stall Information (PSI) metrics to node metrics. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130711-map.yaml b/releases/release-1.33/release-notes/maps/pr-130711-map.yaml index 4b740d6c9e7..0536e9066fc 100644 --- a/releases/release-1.33/release-notes/maps/pr-130711-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130711-map.yaml @@ -1,11 +1,11 @@ -pr: 130711 -releasenote: - text: Added the ability to reduce both the initial delay and the maximum delay accrued - between container restarts for a node for containers in `CrashLoopBackOff` across - the cluster to the recommended values of `1s` initial delay and `60s` maximum - delay. To set this for a node, turn on the feature gate `ReduceDefaultCrashLoopBackOffDecay`. - If you are also using the feature gate `KubeletCrashLoopBackOffMax` with a configured - per-node `CrashLoopBackOff.MaxContainerRestartPeriod`, the effective kubelet configuration - will follow the conflict resolution policy described further in the documentation - [here](TODO:link). -pr_body: "" +pr: 130711 +releasenote: + text: Added the ability to reduce both the initial delay and the maximum delay accrued + between container restarts for a node for containers in `CrashLoopBackOff` across + the cluster to the recommended values of `1s` initial delay and `60s` maximum + delay. To set this for a node, turn on the feature gate `ReduceDefaultCrashLoopBackOffDecay`. + If you are also using the feature gate `KubeletCrashLoopBackOffMax` with a configured + per-node `CrashLoopBackOff.MaxContainerRestartPeriod`, the effective kubelet configuration + will follow the conflict resolution policy described further in the documentation + [here](TODO:link). +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130725-map.yaml b/releases/release-1.33/release-notes/maps/pr-130725-map.yaml index 3928b6541ce..d9c52fe8570 100644 --- a/releases/release-1.33/release-notes/maps/pr-130725-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130725-map.yaml @@ -1,7 +1,7 @@ -pr: 130725 -releasenote: - text: |- - The minimum value validation of ReplicationController's `replicas` and `minReadySeconds` fields have been migrated to declarative validation. The requiredness of both fields is also declaratively validated. - If the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. - If the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields. -pr_body: "" +pr: 130725 +releasenote: + text: |- + The minimum value validation of ReplicationController's `replicas` and `minReadySeconds` fields have been migrated to declarative validation. The requiredness of both fields is also declaratively validated. + If the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. + If the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130728-map.yaml b/releases/release-1.33/release-notes/maps/pr-130728-map.yaml index 8fcf18fdc97..065e8342249 100644 --- a/releases/release-1.33/release-notes/maps/pr-130728-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130728-map.yaml @@ -1,6 +1,6 @@ -pr: 130728 -releasenote: - text: |- - The `DeclarativeValidation` feature gate is enabled by default. When enabled, mismatches with existing hand written validation is reported via metrics. - The `DeclarativeValidationTakeover` feature gate remains disabled by default. While disabled, validation errors produced by hand written validation are always return to the caller. To switch to declarative validation is primary source of errors for migrated fields, enable this feature gate. -pr_body: "" +pr: 130728 +releasenote: + text: |- + The `DeclarativeValidation` feature gate is enabled by default. When enabled, mismatches with existing hand written validation is reported via metrics. + The `DeclarativeValidationTakeover` feature gate remains disabled by default. While disabled, validation errors produced by hand written validation are always return to the caller. To switch to declarative validation is primary source of errors for migrated fields, enable this feature gate. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130733-map.yaml b/releases/release-1.33/release-notes/maps/pr-130733-map.yaml index 79eae77413b..f3023c58e22 100644 --- a/releases/release-1.33/release-notes/maps/pr-130733-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130733-map.yaml @@ -1,6 +1,6 @@ -pr: 130733 -releasenote: - text: 'The pod `status.resize` field is now deprecated and will no longer be set. - The status of a pod resize will be exposed under two new conditions: `PodResizeInProgress` - and `PodResizePending` instead.' -pr_body: "" +pr: 130733 +releasenote: + text: 'The pod `status.resize` field is now deprecated and will no longer be set. + The status of a pod resize will be exposed under two new conditions: `PodResizeInProgress` + and `PodResizePending` instead.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130738-map.yaml b/releases/release-1.33/release-notes/maps/pr-130738-map.yaml index 0cd9bb3b5dc..04cab9c313f 100644 --- a/releases/release-1.33/release-notes/maps/pr-130738-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130738-map.yaml @@ -1,6 +1,6 @@ -pr: 130738 -releasenote: - text: 'DRA: Starting Kubernetes 1.33, regular users with namespaced cluster `edit` - role assigned have `read` permission to `resourceclaims`, `resourceclaims/status`,`resourceclaimtemplates`. - And `write` permission for `resourceclaims`, `resourceclaimtemplates`.' -pr_body: "" +pr: 130738 +releasenote: + text: 'DRA: Starting Kubernetes 1.33, regular users with namespaced cluster `edit` + role assigned have `read` permission to `resourceclaims`, `resourceclaims/status`,`resourceclaimtemplates`. + And `write` permission for `resourceclaims`, `resourceclaimtemplates`.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130742-map.yaml b/releases/release-1.33/release-notes/maps/pr-130742-map.yaml index cbcf3bf2446..6597dd3e6c0 100644 --- a/releases/release-1.33/release-notes/maps/pr-130742-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130742-map.yaml @@ -1,7 +1,7 @@ -pr: 130742 -releasenote: - text: The EndpointSlice `hints` field has graduated to GA. The beta annotation `service.kubernetes.io/topology-mode` - is now considered deprecated and will not graduate to GA. It remains operational - for backward compatibility. Users are encouraged to use the `spec.trafficDistribution` - field in the Service API for topology-aware routing configuration. -pr_body: "" +pr: 130742 +releasenote: + text: The EndpointSlice `hints` field has graduated to GA. The beta annotation `service.kubernetes.io/topology-mode` + is now considered deprecated and will not graduate to GA. It remains operational + for backward compatibility. Users are encouraged to use the `spec.trafficDistribution` + field in the Service API for topology-aware routing configuration. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130751-map.yaml b/releases/release-1.33/release-notes/maps/pr-130751-map.yaml index 6f09b055423..7cb2b5d08d3 100644 --- a/releases/release-1.33/release-notes/maps/pr-130751-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130751-map.yaml @@ -1,6 +1,6 @@ -pr: 130751 -releasenote: - text: |- - Introduced API type coordination.k8s.io/v1beta1/LeaseCandidate - CoordinatedLeaderElection feature is Beta. -pr_body: "" +pr: 130751 +releasenote: + text: |- + Introduced API type coordination.k8s.io/v1beta1/LeaseCandidate + CoordinatedLeaderElection feature is Beta. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130764-map.yaml b/releases/release-1.33/release-notes/maps/pr-130764-map.yaml index 472f30dd57e..b7b2d058018 100644 --- a/releases/release-1.33/release-notes/maps/pr-130764-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130764-map.yaml @@ -1,5 +1,5 @@ -pr: 130764 -releasenote: - text: Added feature gate `DRAPartitionableDevices`, when enabled, Dynamic Resource - Allocation support partitionable devices allocation. -pr_body: "" +pr: 130764 +releasenote: + text: Added feature gate `DRAPartitionableDevices`, when enabled, Dynamic Resource + Allocation support partitionable devices allocation. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130772-map.yaml b/releases/release-1.33/release-notes/maps/pr-130772-map.yaml index 5c59d1e6964..57f69e30456 100644 --- a/releases/release-1.33/release-notes/maps/pr-130772-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130772-map.yaml @@ -1,7 +1,7 @@ -pr: 130772 -releasenote: - text: Added SchedulerPopFromBackoffQ feature gate that is in beta and enabled by - default. Improved scheduling queue behavior by popping pods from the backoffQ - when the activeQ is empty. This allows to process potentially schedulable pods - ASAP, eliminating a penalty effect of the backoff queue. -pr_body: "" +pr: 130772 +releasenote: + text: Added SchedulerPopFromBackoffQ feature gate that is in beta and enabled by + default. Improved scheduling queue behavior by popping pods from the backoffQ + when the activeQ is empty. This allows to process potentially schedulable pods + ASAP, eliminating a penalty effect of the backoff queue. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130797-map.yaml b/releases/release-1.33/release-notes/maps/pr-130797-map.yaml index d491cbb9ccd..36f41fd2623 100644 --- a/releases/release-1.33/release-notes/maps/pr-130797-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130797-map.yaml @@ -1,5 +1,5 @@ -pr: 130797 -releasenote: - text: Added a new 'tolerance' field to HorizontalPodAutoscaler, overriding the cluster-wide - default. Enabled via the HPAConfigurableTolerance alpha feature gate. -pr_body: "" +pr: 130797 +releasenote: + text: Added a new 'tolerance' field to HorizontalPodAutoscaler, overriding the cluster-wide + default. Enabled via the HPAConfigurableTolerance alpha feature gate. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130798-map.yaml b/releases/release-1.33/release-notes/maps/pr-130798-map.yaml index 2f70a5c46ef..4ea8338bfb6 100644 --- a/releases/release-1.33/release-notes/maps/pr-130798-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130798-map.yaml @@ -1,4 +1,4 @@ -pr: 130798 -releasenote: - text: Bumped `ProcMountType` feature to on by default beta. -pr_body: "" +pr: 130798 +releasenote: + text: Bumped `ProcMountType` feature to on by default beta. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130814-map.yaml b/releases/release-1.33/release-notes/maps/pr-130814-map.yaml index 3369c74e533..97309ebfe4b 100644 --- a/releases/release-1.33/release-notes/maps/pr-130814-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130814-map.yaml @@ -1,5 +1,5 @@ -pr: 130814 -releasenote: - text: DRAResourceClaimDeviceStatus is now turned on by default allowing DRA-Drivers - to report device status data for each allocated device. -pr_body: "" +pr: 130814 +releasenote: + text: DRAResourceClaimDeviceStatus is now turned on by default allowing DRA-Drivers + to report device status data for each allocated device. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130831-map.yaml b/releases/release-1.33/release-notes/maps/pr-130831-map.yaml index 23df238c6c5..02499cc7618 100644 --- a/releases/release-1.33/release-notes/maps/pr-130831-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130831-map.yaml @@ -1,5 +1,5 @@ -pr: 130831 -releasenote: - text: Disabled InPlace Pod Resize for Swap enabled containers that does not have - memory ResizePolicy as RestartContainer. -pr_body: "" +pr: 130831 +releasenote: + text: Disabled InPlace Pod Resize for Swap enabled containers that does not have + memory ResizePolicy as RestartContainer. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130844-map.yaml b/releases/release-1.33/release-notes/maps/pr-130844-map.yaml index 236de1b5ccf..27e11450928 100644 --- a/releases/release-1.33/release-notes/maps/pr-130844-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130844-map.yaml @@ -1,9 +1,9 @@ -pr: 130844 -releasenote: - text: |- - When the `ImprovedTrafficDistribution` feature gate is enabled, a new - `trafficDistribution` value `PreferSameNode` is available, which attempts to - always route Service connections to an endpoint on the same node as - the client. Additionally, `PreferSameZone` is introduced as an alias for - `PreferClose`. -pr_body: "" +pr: 130844 +releasenote: + text: |- + When the `ImprovedTrafficDistribution` feature gate is enabled, a new + `trafficDistribution` value `PreferSameNode` is available, which attempts to + always route Service connections to an endpoint on the same node as + the client. Additionally, `PreferSameZone` is introduced as an alias for + `PreferClose`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130875-map.yaml b/releases/release-1.33/release-notes/maps/pr-130875-map.yaml index 1c749801f73..d605e08bea4 100644 --- a/releases/release-1.33/release-notes/maps/pr-130875-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130875-map.yaml @@ -1,11 +1,11 @@ -pr: 130875 -releasenote: - text: "Fixed the example validation rule in godoc:\n\nWhen configuring a JWT authenticator:\n\nIf - username.expression uses 'claims.email', then 'claims.email_verified' must be - used in\nusername.expression or extra[*].valueExpression or claimValidationRules[*].expression.\nAn - example claim validation rule expression that matches the validation automatically\napplied - when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) - == true'. \nBy explicitly comparing the value to true, we let type-checking see - the result will be a boolean, \nand to make sure a non-boolean `email_verified` - claim will be caught at runtime." -pr_body: "" +pr: 130875 +releasenote: + text: "Fixed the example validation rule in godoc:\n\nWhen configuring a JWT authenticator:\n\nIf + username.expression uses 'claims.email', then 'claims.email_verified' must be + used in\nusername.expression or extra[*].valueExpression or claimValidationRules[*].expression.\nAn + example claim validation rule expression that matches the validation automatically\napplied + when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) + == true'. \nBy explicitly comparing the value to true, we let type-checking see + the result will be a boolean, \nand to make sure a non-boolean `email_verified` + claim will be caught at runtime." +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130876-map.yaml b/releases/release-1.33/release-notes/maps/pr-130876-map.yaml index a8127494465..92b558e07c8 100644 --- a/releases/release-1.33/release-notes/maps/pr-130876-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130876-map.yaml @@ -1,5 +1,5 @@ -pr: 130876 -releasenote: - text: Graduated the `WinDSR` feature in the kube-proxy to beta. The `WinDSR` feature - gate is now enabled by default. -pr_body: "" +pr: 130876 +releasenote: + text: Graduated the `WinDSR` feature in the kube-proxy to beta. The `WinDSR` feature + gate is now enabled by default. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130880-map.yaml b/releases/release-1.33/release-notes/maps/pr-130880-map.yaml index 814b7c602fd..b81992a8c02 100644 --- a/releases/release-1.33/release-notes/maps/pr-130880-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130880-map.yaml @@ -1,6 +1,6 @@ -pr: 130880 -releasenote: - text: The feature gate `InPlacePodVerticalScalingAllocatedStatus` is deprecated and - no longer used. The `AllocatedResources` field in `ContainerStatus` is now guarded - by the `InPlacePodVerticalScaling` feature gate. -pr_body: "" +pr: 130880 +releasenote: + text: The feature gate `InPlacePodVerticalScalingAllocatedStatus` is deprecated and + no longer used. The `AllocatedResources` field in `ContainerStatus` is now guarded + by the `InPlacePodVerticalScaling` feature gate. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130899-map.yaml b/releases/release-1.33/release-notes/maps/pr-130899-map.yaml index 08bab688d17..fe25797de13 100644 --- a/releases/release-1.33/release-notes/maps/pr-130899-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130899-map.yaml @@ -1,5 +1,5 @@ -pr: 130899 -releasenote: - text: Errors returned by apiserver from uninitialized cache will include last error - from etcd. -pr_body: "" +pr: 130899 +releasenote: + text: Errors returned by apiserver from uninitialized cache will include last error + from etcd. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130902-map.yaml b/releases/release-1.33/release-notes/maps/pr-130902-map.yaml index 93679032a60..56d75bf2377 100644 --- a/releases/release-1.33/release-notes/maps/pr-130902-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130902-map.yaml @@ -1,4 +1,4 @@ -pr: 130902 -releasenote: - text: Errors that occur during pod resize actuation will now surface in the `PodResizeInProgress` condition. -pr_body: "" +pr: 130902 +releasenote: + text: Errors that occur during pod resize actuation will now surface in the `PodResizeInProgress` condition. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130905-map.yaml b/releases/release-1.33/release-notes/maps/pr-130905-map.yaml index 47f0100483c..4f143b00a3e 100644 --- a/releases/release-1.33/release-notes/maps/pr-130905-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130905-map.yaml @@ -1,5 +1,5 @@ -pr: 130905 -releasenote: - text: Promoted in-place Pod vertical scaling to beta. The `InPlacePodVerticalScaling` - feature gate is now enabled by default. -pr_body: "" +pr: 130905 +releasenote: + text: Promoted in-place Pod vertical scaling to beta. The `InPlacePodVerticalScaling` + feature gate is now enabled by default. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130908-map.yaml b/releases/release-1.33/release-notes/maps/pr-130908-map.yaml index 64e11c9bbed..c5c8ae02f7d 100644 --- a/releases/release-1.33/release-notes/maps/pr-130908-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130908-map.yaml @@ -1,7 +1,7 @@ -pr: 130908 -releasenote: - text: 'e2e framework: `framework.WithFeatureGate` `[Alpha]`, `[Beta]` and `[Feature:OffByDefault]` - tags are now set 1:1 with `Alpha`, `Beta`, `Feature:OffByDefault` Ginkgo labels, - replacing`Feature:Alpha` and `Feature:Beta` labels. `BetaOffByDefault` is also - added as a Ginkgo label only for off-by-default beta features.' -pr_body: "" +pr: 130908 +releasenote: + text: 'e2e framework: `framework.WithFeatureGate` `[Alpha]`, `[Beta]` and `[Feature:OffByDefault]` + tags are now set 1:1 with `Alpha`, `Beta`, `Feature:OffByDefault` Ginkgo labels, + replacing`Feature:Alpha` and `Feature:Beta` labels. `BetaOffByDefault` is also + added as a Ginkgo label only for off-by-default beta features.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130920-map.yaml b/releases/release-1.33/release-notes/maps/pr-130920-map.yaml index cfabdc68a2f..f236073f66c 100644 --- a/releases/release-1.33/release-notes/maps/pr-130920-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130920-map.yaml @@ -1,4 +1,4 @@ -pr: 130920 -releasenote: - text: Promoted `NodeInclusionPolicyInPodTopologySpread` to Stable in v1.33. -pr_body: "" +pr: 130920 +releasenote: + text: Promoted `NodeInclusionPolicyInPodTopologySpread` to Stable in v1.33. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-130935-map.yaml b/releases/release-1.33/release-notes/maps/pr-130935-map.yaml index 57c3e560fc3..c20b3b7d169 100644 --- a/releases/release-1.33/release-notes/maps/pr-130935-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-130935-map.yaml @@ -1,4 +1,4 @@ -pr: 130935 -releasenote: - text: Added Windows Server, Version 2025 for windows-servercore-cache test image. -pr_body: "" +pr: 130935 +releasenote: + text: Added Windows Server, Version 2025 for windows-servercore-cache test image. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-131020-map.yaml b/releases/release-1.33/release-notes/maps/pr-131020-map.yaml index 10e635a97a1..e8885a354d3 100644 --- a/releases/release-1.33/release-notes/maps/pr-131020-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-131020-map.yaml @@ -1,5 +1,5 @@ -pr: 131020 -releasenote: - text: Fixed a bug where kube-apiserver could emit a subsequent watch event - even if the previous event failed to decrypt and was not emitted. -pr_body: "" +pr: 131020 +releasenote: + text: Fixed a bug where kube-apiserver could emit a subsequent watch event + even if the previous event failed to decrypt and was not emitted. +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-131036-map.yaml b/releases/release-1.33/release-notes/maps/pr-131036-map.yaml index 8c4286354b5..9963e85c49b 100644 --- a/releases/release-1.33/release-notes/maps/pr-131036-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-131036-map.yaml @@ -1,6 +1,6 @@ -pr: 131036 -releasenote: - text: 'kubeadm: make sure that it is possible to health check the kube-apiserver - when it has --anonymous-auth=false set and the WaitForAllControlPlaneComponents - feature gate is enabled.' -pr_body: "" +pr: 131036 +releasenote: + text: 'kubeadm: make sure that it is possible to health check the kube-apiserver + when it has --anonymous-auth=false set and the WaitForAllControlPlaneComponents + feature gate is enabled.' +pr_body: "" diff --git a/releases/release-1.33/release-notes/maps/pr-131103-map.yaml b/releases/release-1.33/release-notes/maps/pr-131103-map.yaml index 08c880f1024..ea4b5d33de1 100644 --- a/releases/release-1.33/release-notes/maps/pr-131103-map.yaml +++ b/releases/release-1.33/release-notes/maps/pr-131103-map.yaml @@ -1,4 +1,4 @@ -pr: 131103 -releasenote: - text: Updated the etcd client library to `v3.5.21`. -pr_body: "" +pr: 131103 +releasenote: + text: Updated the etcd client library to `v3.5.21`. +pr_body: "" diff --git a/releases/release-1.33/release-notes/release-notes-draft.json b/releases/release-1.33/release-notes/release-notes-draft.json index f7c0ece8424..011b5135895 100644 --- a/releases/release-1.33/release-notes/release-notes-draft.json +++ b/releases/release-1.33/release-notes/release-notes-draft.json @@ -1,6307 +1,6307 @@ -{ - "122550": { - "commit": "2261137135631d24248e94dff3bc6375ad9308b2", - "text": "When the `StrictIPCIDRValidation` feature gate is enabled, Kubernetes will be\nslightly stricter about what values will be accepted as IP addresses and network\naddress ranges (“CIDR blocks”).\n\nIn particular, octets within IPv4 addresses are not allowed to have any leading\n`0`s, and IPv4-mapped IPv6 values (e.g. `::ffff:192.168.0.1`) are forbidden.\nThese sorts of values can potentially cause security problems when different\ncomponents interpret the same string as referring to different IP addresses\n(as in CVE-2021-29923).\n\nThis tightening applies only to fields in build-in API kinds, and not to\ncustom resource kinds, values in Kubernetes configuration files, or\ncommand-line arguments.\n\n(When the feature gate is disabled, creating an object with such an invalid\nIP or CIDR value will result in a warning from the API server about the fact\nthat it will be rejected in the future.)", - "markdown": "When the `StrictIPCIDRValidation` feature gate is enabled, Kubernetes will be\n slightly stricter about what values will be accepted as IP addresses and network\n address ranges (“CIDR blocks”).\n \n In particular, octets within IPv4 addresses are not allowed to have any leading\n `0`s, and IPv4-mapped IPv6 values (e.g. `::ffff:192.168.0.1`) are forbidden.\n These sorts of values can potentially cause security problems when different\n components interpret the same string as referring to different IP addresses\n (as in CVE-2021-29923).\n \n This tightening applies only to fields in build-in API kinds, and not to\n custom resource kinds, values in Kubernetes configuration files, or\n command-line arguments.\n \n (When the feature gate is disabled, creating an object with such an invalid\n IP or CIDR value will result in a warning from the API server about the fact\n that it will be rejected in the future.) ([#122550](https://github.com/kubernetes/kubernetes/pull/122550), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network, Node, Scheduling and Testing]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122550", - "pr_number": 122550, - "areas": [ - "test", - "network-policy" - ], - "kinds": [ - "cleanup", - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "network", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "122646": { - "commit": "2ca9e2d28f0146fe881c8b9007f2926b07ff403d", - "text": "kube-apiserver: shortening the grace period during a pod deletion no longer moves the `metadata.deletionTimestamp` into the past", - "markdown": "kube-apiserver: shortening the grace period during a pod deletion no longer moves the `metadata.deletionTimestamp` into the past ([#122646](https://github.com/kubernetes/kubernetes/pull/122646), [@liggitt](https://github.com/liggitt)) [SIG API Machinery]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122646", - "pr_number": 122646, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "124360": { - "commit": "68899f8e6d5861e7b6197c51b0dee9f8a486e3e0", - "text": "It introduces a new scope name `VolumeAttributesClass`. \n\nIt matches all PVC objects that have the volume attributes class mentioned. \n\nIf you want to limit the count of PVCs that have a specific volume attributes class. In that case, you can create a quota object with the scope name `VolumeAttributesClass` and a `matchExpressions` that match the volume attributes class.", - "markdown": "It introduces a new scope name `VolumeAttributesClass`. \n \n It matches all PVC objects that have the volume attributes class mentioned. \n \n If you want to limit the count of PVCs that have a specific volume attributes class. In that case, you can create a quota object with the scope name `VolumeAttributesClass` and a `matchExpressions` that match the volume attributes class. ([#124360](https://github.com/kubernetes/kubernetes/pull/124360), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/3751-volume-attributes-class", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/124360", - "pr_number": 124360, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125230": { - "commit": "c7a90b670c40a315bea3667921302675008bc39c", - "text": "kubectl: Added alpha support for customizing kubectl behavior using preferences from a `kuberc` file, separate from `kubeconfig`.", - "markdown": "kubectl: Added alpha support for customizing kubectl behavior using preferences from a `kuberc` file, separate from `kubeconfig`. ([#125230](https://github.com/kubernetes/kubernetes/pull/125230), [@ardaguclu](https://github.com/ardaguclu)) [SIG API Machinery, CLI and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/3104-introduce-kuberc/README.md", - "type": "KEP" - } - ], - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125230", - "pr_number": 125230, - "areas": [ - "test", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "125901": { - "commit": "f34d791b13accaf3b0a3f44a3ea9e8956f717794", - "text": "Implemented logging and event recording for probe results with an `Unknown` status in the kubelet's prober module. This helped improve the diagnosis and monitoring of cases where container probes returned an `Unknown` result, enhancing the observability and reliability of health checks.", - "markdown": "Implemented logging and event recording for probe results with an `Unknown` status in the kubelet's prober module. This helped improve the diagnosis and monitoring of cases where container probes returned an `Unknown` result, enhancing the observability and reliability of health checks. ([#125901](https://github.com/kubernetes/kubernetes/pull/125901), [@jralmaraz](https://github.com/jralmaraz))", - "documentation": [ - { - "description": "[Usage]: [Kubernetes Probes Documentation](", - "url": "https://github.com/kubernetes/website/blob/cfc5ea3a3b87b7895943ecca4656cf832f45c8c7/content/en/docs/concepts/workloads/pods/pod-lifecycle.md#container-probes)", - "type": "external" - } - ], - "author": "jralmaraz", - "author_url": "https://github.com/jralmaraz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125901", - "pr_number": 125901, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "127053": { - "commit": "b2b6c4d0235085d090ca73b62a1361302db81afd", - "text": "Respect the incoming trace context for authenticated requests to the kube-apiserver for APIServer tracing.", - "markdown": "Respect the incoming trace context for authenticated requests to the kube-apiserver for APIServer tracing. ([#127053](https://github.com/kubernetes/kubernetes/pull/127053), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/0034-distributed-tracing-kep.md", - "type": "KEP" - } - ], - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127053", - "pr_number": 127053, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cli", - "cloud-provider", - "instrumentation", - "network", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127092": { - "commit": "507eee87e5a6675c93ae404be003203d94b701b4", - "text": "Automatically copy `topology.k8s.io/zone`, `topology.k8s.io/region` and `kubernetes.io/hostname` labels from Node objects to Pods when they are scheduled to a node (via the `pods/binding` endpoint) to allow applications that need to be explicitly aware of their assigned node topology to access this information via the downward API, rather than requiring permission to `get node` objects (exposing the entire API surface of the Node object to otherwise unprivileged workloads).", - "markdown": "Automatically copy `topology.k8s.io/zone`, `topology.k8s.io/region` and `kubernetes.io/hostname` labels from Node objects to Pods when they are scheduled to a node (via the `pods/binding` endpoint) to allow applications that need to be explicitly aware of their assigned node topology to access this information via the downward API, rather than requiring permission to `get node` objects (exposing the entire API surface of the Node object to otherwise unprivileged workloads). ([#127092](https://github.com/kubernetes/kubernetes/pull/127092), [@munnerz](https://github.com/munnerz)) [SIG API Machinery, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4742-node-topology-downward-api", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://github.com/kubernetes/website/pull/49928", - "type": "external" - } - ], - "author": "munnerz", - "author_url": "https://github.com/munnerz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127092", - "pr_number": 127092, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127193": { - "commit": "77749c21f628eae68001bfa79821c2ce8aa40cdc", - "text": "Fixed a bug in HorizontalPodAutoscaler. HPAs with `ContainerResource` metrics no longer return an error when container metrics are missing. Instead they use the same logic as `Resource` metrics to perform calculations.", - "markdown": "Fixed a bug in HorizontalPodAutoscaler. HPAs with `ContainerResource` metrics no longer return an error when container metrics are missing. Instead they use the same logic as `Resource` metrics to perform calculations. ([#127193](https://github.com/kubernetes/kubernetes/pull/127193), [@DP19](https://github.com/DP19)) [SIG Apps and Autoscaling]", - "author": "DP19", - "author_url": "https://github.com/DP19", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127193", - "pr_number": 127193, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "autoscaling" - ], - "duplicate": true, - "is_mapped": true - }, - "127375": { - "commit": "165da9ad0fc7e895a9b72a463062cbf754f89f2b", - "text": "No", - "markdown": "No ([#127375](https://github.com/kubernetes/kubernetes/pull/127375), [@omerap12](https://github.com/omerap12)) [SIG API Machinery]", - "author": "omerap12", - "author_url": "https://github.com/omerap12", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127375", - "pr_number": 127375, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "do_not_publish": true - }, - "127525": { - "commit": "cd2959b798e15b43dbca94c59bf307df798f3fdc", - "text": "When `cpu-manager-policy=static` is configured, containers meeting the qualifications for static cpu assignment (i.e. Containers with integer CPU `requests` in pods with `Guaranteed` QOS) will not have cfs quota enforced. Because this fix changes a long-established behavior, users observing a regressions can use the `DisableCPUQuotaWithExclusiveCPUs` feature gate (enabled by default) to restore the previous behavior. Please file an issue if you encounter problems and have to use the Feature Gate.", - "markdown": "When `cpu-manager-policy=static` is configured, containers meeting the qualifications for static cpu assignment (i.e. Containers with integer CPU `requests` in pods with `Guaranteed` QOS) will not have cfs quota enforced. Because this fix changes a long-established behavior, users observing a regressions can use the `DisableCPUQuotaWithExclusiveCPUs` feature gate (enabled by default) to restore the previous behavior. Please file an issue if you encounter problems and have to use the Feature Gate. ([#127525](https://github.com/kubernetes/kubernetes/pull/127525), [@scott-grimes](https://github.com/scott-grimes)) [SIG Node and Testing]", - "author": "scott-grimes", - "author_url": "https://github.com/scott-grimes", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127525", - "pr_number": 127525, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "127577": { - "commit": "1b4c3483cea4aae55d2eb815a0ff855b587c9a67", - "text": "`mergeDefaultEvictionSettings` indicates that defaults for the `evictionHard`, `evictionSoft`, `evictionSoftGracePeriod`, and `evictionMinimumReclaim` fields should be merged into values specified for those fields in this configuration. Signals specified in this configuration take precedence. Signals not specified in this configuration inherit their defaults.", - "markdown": "`mergeDefaultEvictionSettings` indicates that defaults for the `evictionHard`, `evictionSoft`, `evictionSoftGracePeriod`, and `evictionMinimumReclaim` fields should be merged into values specified for those fields in this configuration. Signals specified in this configuration take precedence. Signals not specified in this configuration inherit their defaults. ([#127577](https://github.com/kubernetes/kubernetes/pull/127577), [@vaibhav2107](https://github.com/vaibhav2107)) [SIG API Machinery and Node]", - "author": "vaibhav2107", - "author_url": "https://github.com/vaibhav2107", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127577", - "pr_number": 127577, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "127696": { - "commit": "07a275437f304456b2a32159ec6550a71d020a64", - "text": "Show a warning message to inform users that the debug container's capabilities granted by debugging profile may not work as expected if a non-root user is specified in target Pod's `.Spec.SecurityContext.RunAsUser` field.", - "markdown": "Show a warning message to inform users that the debug container's capabilities granted by debugging profile may not work as expected if a non-root user is specified in target Pod's `.Spec.SecurityContext.RunAsUser` field. ([#127696](https://github.com/kubernetes/kubernetes/pull/127696), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI and Testing]", - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127696", - "pr_number": 127696, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "127709": { - "commit": "427cd18f726be3e3c4f657258dc17a97beca92d5", - "text": "Implemented full support for contextual logging in `client-go/rest`. `BackoffManagerWithContext` was used instead of `BackoffManager` to ensure that the caller could interrupt the sleep.", - "markdown": "Implemented full support for contextual logging in `client-go/rest`. `BackoffManagerWithContext` was used instead of `BackoffManager` to ensure that the caller could interrupt the sleep. ([#127709](https://github.com/kubernetes/kubernetes/pull/127709), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Auth, Cloud Provider, Instrumentation, Network and Node]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127709", - "pr_number": 127709, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cloud-provider", - "instrumentation", - "network", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "127897": { - "commit": "ed8999ed64d4f6e05859f83456f279949bac7907", - "text": "Kubernetes components that accepted X.509 client certificate authentication now read the user UID from a certificate subject name RDN with object ID `1.3.6.1.4.1.57683.2`. An RDN with this object ID had to contain a string value and appear no more than once in the certificate subject. Reading the user UID from this RDN could be disabled by setting the beta feature gate `AllowParsingUserUIDFromCertAuth` to `false`(until the feature gate graduated to GA).", - "markdown": "Kubernetes components that accepted X.509 client certificate authentication now read the user UID from a certificate subject name RDN with object ID `1.3.6.1.4.1.57683.2`. An RDN with this object ID had to contain a string value and appear no more than once in the certificate subject. Reading the user UID from this RDN could be disabled by setting the beta feature gate `AllowParsingUserUIDFromCertAuth` to `false`(until the feature gate graduated to GA). ([#127897](https://github.com/kubernetes/kubernetes/pull/127897), [@modulitos](https://github.com/modulitos)) [SIG API Machinery, Auth and Testing]", - "author": "modulitos", - "author_url": "https://github.com/modulitos", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127897", - "pr_number": 127897, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128086": { - "commit": "5948c7b5a9f606644bb3d5eb2ea831d648c2aa1c", - "text": "Fixed a storage bug related to multipath. iSCSI and Fibre Channel devices attached to nodes via multipath now resolve correctly when partitioned.", - "markdown": "Fixed a storage bug related to multipath. iSCSI and Fibre Channel devices attached to nodes via multipath now resolve correctly when partitioned. ([#128086](https://github.com/kubernetes/kubernetes/pull/128086), [@RomanBednar](https://github.com/RomanBednar))", - "author": "RomanBednar", - "author_url": "https://github.com/RomanBednar", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128086", - "pr_number": 128086, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "128152": { - "commit": "fcb2418f7b6cbeda85191f70d99cd4b90e84e32f", - "text": "New configuration is introduced to the kubelet that allows it to track container images and the list of authentication information that lead to their successful pulls . This data is persisted across reboots of the host and restarts of the kubelet.\n\nThe kubelet ensures any image requiring credential verification is always pulled if authentication information from an image pull is not yet present, thus enforcing authentication / re-authentication. This means an image pull might be attempted even in cases where a pod requests the `IfNotPresent` image pull policy, and might lead to the pod not starting if its pull policy is `Never` and is unable to present authentication information that lead to a previous successful pull of the image it is requesting.", - "markdown": "New configuration is introduced to the kubelet that allows it to track container images and the list of authentication information that lead to their successful pulls . This data is persisted across reboots of the host and restarts of the kubelet.\n \n The kubelet ensures any image requiring credential verification is always pulled if authentication information from an image pull is not yet present, thus enforcing authentication / re-authentication. This means an image pull might be attempted even in cases where a pod requests the `IfNotPresent` image pull policy, and might lead to the pod not starting if its pull policy is `Never` and is unable to present authentication information that lead to a previous successful pull of the image it is requesting. ([#128152](https://github.com/kubernetes/kubernetes/pull/128152), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Architecture, Auth, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2535-ensure-secret-pulled-images/README.md", - "type": "KEP" - } - ], - "author": "stlaz", - "author_url": "https://github.com/stlaz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128152", - "pr_number": 128152, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128184": { - "commit": "83c5f99f97b5916c4949f8df8a8d070ecc0ad66f", - "text": "The `StorageCapacityScoring` feature gate was added to score nodes by available storage capacity. It's in alpha and disabled by default. The `VolumeCapacityPriority` alpha feature was replaced with this, and the default behavior was changed. The `VolumeCapacityPriority` preferred a node with the least allocatable, but the `StorageCapacityScoring` preferred a node with the maximum allocatable. See [KEP-4049](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning/README.md) for details.", - "markdown": "The `StorageCapacityScoring` feature gate was added to score nodes by available storage capacity. It's in alpha and disabled by default. The `VolumeCapacityPriority` alpha feature was replaced with this, and the default behavior was changed. The `VolumeCapacityPriority` preferred a node with the least allocatable, but the `StorageCapacityScoring` preferred a node with the maximum allocatable. See [KEP-4049](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning/README.md) for details. ([#128184](https://github.com/kubernetes/kubernetes/pull/128184), [@cupnes](https://github.com/cupnes)) [SIG Scheduling, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning", - "type": "KEP" - } - ], - "author": "cupnes", - "author_url": "https://github.com/cupnes", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128184", - "pr_number": 128184, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature", - "deprecation" - ], - "sigs": [ - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128212": { - "commit": "3bec2450efd29787df0f27415de4e8049979654f", - "text": "Implemented validation for `NodeSelectorRequirement` values in Kubernetes when creating pods.", - "markdown": "Implemented validation for `NodeSelectorRequirement` values in Kubernetes when creating pods. ([#128212](https://github.com/kubernetes/kubernetes/pull/128212), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps and Scheduling]", - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128212", - "pr_number": 128212, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "apps", - "scheduling" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128367": { - "commit": "0634e21fb525743e68d677c53753b43a8b7471bc", - "text": "Added support for in-place vertical scaling of Pods with sidecars (containers defined within `initContainers` where the `restartPolicy` is set to `Always`).", - "markdown": "Added support for in-place vertical scaling of Pods with sidecars (containers defined within `initContainers` where the `restartPolicy` is set to `Always`). ([#128367](https://github.com/kubernetes/kubernetes/pull/128367), [@vivzbansal](https://github.com/vivzbansal)) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "vivzbansal", - "author_url": "https://github.com/vivzbansal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128367", - "pr_number": 128367, - "areas": [ - "test", - "kubelet", - "kubectl", - "e2e-test-framework" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "cli", - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "128372": { - "commit": "e0ab1a16adc67936d6810b54a4295dbce47df829", - "text": "Expanded the on-disk kubelet credential provider configuration to allow an optional `tokenAttribute` field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration.", - "markdown": "Expanded the on-disk kubelet credential provider configuration to allow an optional `tokenAttribute` field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration. ([#128372](https://github.com/kubernetes/kubernetes/pull/128372), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128372", - "pr_number": 128372, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128499": { - "commit": "309c4c17fb1dec52328f3e6b4482bc2a4037c45a", - "text": "The `ClusterTrustBundle` API is moving to `v1beta1`.\nIn order for the `ClusterTrustBundleProjection` feature to work on the kubelet side, the `ClusterTrustBundle` API must be available at `v1beta1` version and the `ClusterTrustBundleProjection` feature gate must be enabled. If the API becomes later after kubelet started running, restart the kubelet to enable the feature.", - "markdown": "The `ClusterTrustBundle` API is moving to `v1beta1`.\n In order for the `ClusterTrustBundleProjection` feature to work on the kubelet side, the `ClusterTrustBundle` API must be available at `v1beta1` version and the `ClusterTrustBundleProjection` feature gate must be enabled. If the API becomes later after kubelet started running, restart the kubelet to enable the feature. ([#128499](https://github.com/kubernetes/kubernetes/pull/128499), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Apps, Auth, Etcd, Node, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3257", - "type": "KEP" - } - ], - "author": "stlaz", - "author_url": "https://github.com/stlaz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128499", - "pr_number": 128499, - "areas": [ - "test", - "kubelet", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "etcd", - "node", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128516": { - "commit": "e9eff7445ebbce978c8245e664dda88c19675c52", - "text": "Fixed an issue where pods did not correctly have a pending phase after the node reboot.", - "markdown": "Fixed an issue where pods did not correctly have a pending phase after the node reboot. ([#128516](https://github.com/kubernetes/kubernetes/pull/128516), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing]", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128516", - "pr_number": 128516, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "128546": { - "commit": "5aeea45357176e7224f908329fb7958d88a7eeac", - "text": "Implemented a new status field, `.status.terminatingReplicas`, for Deployments and ReplicaSets to track terminating pods. The new field is present when the `DeploymentPodReplacementPolicy` feature gate is enabled.", - "markdown": "Implemented a new status field, `.status.terminatingReplicas`, for Deployments and ReplicaSets to track terminating pods. The new field is present when the `DeploymentPodReplacementPolicy` feature gate is enabled. ([#128546](https://github.com/kubernetes/kubernetes/pull/128546), [@atiratree](https://github.com/atiratree)) [SIG API Machinery, Apps and Testing]", - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128546", - "pr_number": 128546, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128586": { - "commit": "9d45ea8b9d0be4f2f90159ff272851b8e985c904", - "text": "Added DRA support for a \"one-of\" prioritized list of selection criteria to satisfy a device request in a resource claim.", - "markdown": "Added DRA support for a \"one-of\" prioritized list of selection criteria to satisfy a device request in a resource claim. ([#128586](https://github.com/kubernetes/kubernetes/pull/128586), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]", - "author": "mortent", - "author_url": "https://github.com/mortent", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128586", - "pr_number": 128586, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "etcd", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128621": { - "commit": "a892f0fd80c548c4caedc35933bb441572135c35", - "text": "Fixed CVE-2024-51744.", - "markdown": "Fixed CVE-2024-51744. ([#128621](https://github.com/kubernetes/kubernetes/pull/128621), [@kmala](https://github.com/kmala)) [SIG Auth, Cloud Provider and Node]", - "author": "kmala", - "author_url": "https://github.com/kmala", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128621", - "pr_number": 128621, - "areas": [ - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "cloud-provider", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "128662": { - "commit": "0cc926220067cd814cecd8f3d0c3b9235e6a68db", - "text": "Fixed `kubectl wait --for=create` behavior with label selectors, to properly wait for resources with matching labels to appear.", - "markdown": "Fixed `kubectl wait --for=create` behavior with label selectors, to properly wait for resources with matching labels to appear. ([#128662](https://github.com/kubernetes/kubernetes/pull/128662), [@omerap12](https://github.com/omerap12)) [SIG CLI and Testing]", - "author": "omerap12", - "author_url": "https://github.com/omerap12", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128662", - "pr_number": 128662, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "128786": { - "commit": "3782b558a28fc5cc7d3f451fd03cbbb802d12a62", - "text": "The apiserver now returns warnings when objects are created with \"invalid\" IP\nor CIDR values (e.g. 192.168.000.005\", with extra zeros).\nNon-standard formats may introduce security risks and are likely to be\nforbidden in a future Kubernetes release.", - "markdown": "The apiserver now returns warnings when objects are created with \"invalid\" IP\n or CIDR values (e.g. 192.168.000.005\", with extra zeros).\n Non-standard formats may introduce security risks and are likely to be\n forbidden in a future Kubernetes release. ([#128786](https://github.com/kubernetes/kubernetes/pull/128786), [@danwinship](https://github.com/danwinship)) [SIG Apps, Network and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4858", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128786", - "pr_number": 128786, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "network", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128810": { - "commit": "6c108faaf621f2fe807f6d634d43458cc545fe58", - "text": "Implemented the `scheduler_cache_size` metric. \nAdditionally, the `scheduler_scheduler_cache_size` metric is now deprecated in favor of `scheduler_cache_size`, \nand will be removed in v1.34.", - "markdown": "Implemented the `scheduler_cache_size` metric. \nAdditionally, the `scheduler_scheduler_cache_size` metric is now deprecated in favor of `scheduler_cache_size`, \nand will be removed in v1.34. ([#128810](https://github.com/kubernetes/kubernetes/pull/128810), [@googs1025](https://github.com/googs1025))", - "author": "googs1025", - "author_url": "https://github.com/googs1025", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128810", - "pr_number": 128810, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "128811": { - "commit": "3ec9c7f4d20be445af83d0bd5c4e77a9f22ab6cc", - "text": "Added a `/statusz` HTTP endpoint to the kubelet.", - "markdown": "Added a `/statusz` HTTP endpoint to the kubelet. ([#128811](https://github.com/kubernetes/kubernetes/pull/128811), [@zhifei92](https://github.com/zhifei92)) [SIG Architecture, Instrumentation and Node]", - "author": "zhifei92", - "author_url": "https://github.com/zhifei92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128811", - "pr_number": 128811, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "architecture", - "instrumentation", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128818": { - "commit": "438bc5d44e5b72cad99d6eb521d2eb3572c5b034", - "text": "Added a `/statusz` HTTP endpoint to the kube-scheduler.", - "markdown": "Added a `/statusz` HTTP endpoint to the kube-scheduler. ([#128818](https://github.com/kubernetes/kubernetes/pull/128818), [@yongruilin](https://github.com/yongruilin)) [SIG Architecture, Instrumentation, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", - "type": "KEP" - } - ], - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128818", - "pr_number": 128818, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "architecture", - "instrumentation", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128824": { - "commit": "9693eea5c3a3d8b7ee7d9f2a16d1ca8f90395aa6", - "text": "Added a `/flagz` endpoint for kube-controller-manager endpoint", - "markdown": "Added a `/flagz` endpoint for kube-controller-manager endpoint ([#128824](https://github.com/kubernetes/kubernetes/pull/128824), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Instrumentation]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", - "type": "KEP" - } - ], - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128824", - "pr_number": 128824, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128850": { - "commit": "beeb1d2b847ba302406f3a4b9390afe0853968b9", - "text": "Fixed an issue with Kubernetes-style sidecar containers (in other words: init containers \nwith an Always restart policy) and Services. Before the fix, named ports \nexposed by a sidecar could not be accessed using a Service.", - "markdown": "Fixed an issue with Kubernetes-style sidecar containers (in other words: init containers \nwith an Always restart policy) and Services. Before the fix, named ports \nexposed by a sidecar could not be accessed using a Service. ([#128850](https://github.com/kubernetes/kubernetes/pull/128850), [@toVersus](https://github.com/toVersus)) [SIG Network and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/753", - "type": "KEP" - } - ], - "author": "toVersus", - "author_url": "https://github.com/toVersus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128850", - "pr_number": 128850, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "128856": { - "commit": "62e469abb2be372b45a6c095f7716a185cb5e827", - "text": "Fixed a linting issue in `TestNodeDeletionReleaseCIDR`.", - "markdown": "Fixed a linting issue in `TestNodeDeletionReleaseCIDR`. ([#128856](https://github.com/kubernetes/kubernetes/pull/128856), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network]", - "author": "adrianmoisey", - "author_url": "https://github.com/adrianmoisey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128856", - "pr_number": 128856, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true, - "is_mapped": true - }, - "128857": { - "commit": "953b40b34ec78d5e9df772820dd2242087785a70", - "text": "Added a `/flagz` endpoint for kubelet endpoint", - "markdown": "Added a `/flagz` endpoint for kubelet endpoint ([#128857](https://github.com/kubernetes/kubernetes/pull/128857), [@zhifei92](https://github.com/zhifei92)) [SIG Architecture, Instrumentation and Node]", - "author": "zhifei92", - "author_url": "https://github.com/zhifei92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128857", - "pr_number": 128857, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "architecture", - "instrumentation", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128886": { - "commit": "30ef6110a180395ad55d1afa5dc60c90a761ae64", - "text": "Implemented logging for failed transactions and the full table in `kube-proxy` with \n`nftables` when using log level 4 or higher. Logging is rate-limited to one entry every 24 hours \nto avoid performance issues.", - "markdown": "Implemented logging for failed transactions and the full table in `kube-proxy` with \n`nftables` when using log level 4 or higher. Logging is rate-limited to one entry every 24 hours \nto avoid performance issues. ([#128886](https://github.com/kubernetes/kubernetes/pull/128886), [@npinaeva](https://github.com/npinaeva))", - "author": "npinaeva", - "author_url": "https://github.com/npinaeva", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128886", - "pr_number": 128886, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "128906": { - "commit": "9f2f7a084cc8b961f0a0b2d9c2cbd822418d7cff", - "text": "Removed the deprecated `pod_scheduling_duration_seconds` metric. Users need to\nmigrate to `pod_scheduling_sli_duration_seconds`.", - "markdown": "Removed the deprecated `pod_scheduling_duration_seconds` metric. Users need to\n migrate to `pod_scheduling_sli_duration_seconds`. ([#128906](https://github.com/kubernetes/kubernetes/pull/128906), [@sanposhiho](https://github.com/sanposhiho)) [SIG Instrumentation and Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128906", - "pr_number": 128906, - "areas": [ - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "instrumentation", - "scheduling" - ], - "duplicate": true, - "is_mapped": true - }, - "128926": { - "commit": "b733c4a620e36ebb9889b75655003564f230d8f3", - "text": "Changed the dependency version for CoreDNS. Kubernetes tools now install CoreDNS `v1.12.0`.", - "markdown": "Changed the dependency version for CoreDNS. Kubernetes tools now install CoreDNS `v1.12.0`. ([#128926](https://github.com/kubernetes/kubernetes/pull/128926), [@bzsuni](https://github.com/bzsuni)) [SIG Cloud Provider and Cluster Lifecycle]", - "author": "bzsuni", - "author_url": "https://github.com/bzsuni", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128926", - "pr_number": 128926, - "areas": [ - "provider/gcp", - "kubeadm", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "cluster-lifecycle" - ], - "duplicate": true, - "is_mapped": true - }, - "128929": { - "commit": "aa931aa63572f4d6d9a814a8ed9bb0d9d1662dc5", - "text": "Fixed a bug where the kube-proxy `EndpointSliceCache` memory experienced a leak.", - "markdown": "Fixed a bug where the kube-proxy `EndpointSliceCache` memory experienced a leak. ([#128929](https://github.com/kubernetes/kubernetes/pull/128929), [@orange30](https://github.com/orange30))", - "author": "orange30", - "author_url": "https://github.com/orange30", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128929", - "pr_number": 128929, - "areas": [ - "test", - "kube-proxy", - "release-eng" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "128950": { - "commit": "fc53d1b297e8b393855b06b993f1e712a24883b7", - "text": "Upgraded the `kubectl autoscale` subcommand to use `autoscaling/v2` rather than `autoscaling/v1` APIs. \nThe command now attempts to use the `autoscaling/v2` API first. If the `autoscaling/v2` API is \nunavailable or an error occurs, it falls fall back to the `autoscaling/v1` API.", - "markdown": "Upgraded the `kubectl autoscale` subcommand to use `autoscaling/v2` rather than `autoscaling/v1` APIs. \nThe command now attempts to use the `autoscaling/v2` API first. If the `autoscaling/v2` API is \nunavailable or an error occurs, it falls fall back to the `autoscaling/v1` API. ([#128950](https://github.com/kubernetes/kubernetes/pull/128950), [@googs1025](https://github.com/googs1025)) [SIG Autoscaling and CLI]", - "author": "googs1025", - "author_url": "https://github.com/googs1025", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128950", - "pr_number": 128950, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "autoscaling", - "cli" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128971": { - "commit": "45d0fddaf1f24f7b559eb936308ce2aeb9871850", - "text": "Graduated `MultiCIDRServiceAllocator` to stable and `DisableAllocatorDualWrite` to beta (disabled by default).\nAction required for Kubernetes distributions that manage the cluster Service CIDR.\nThis feature allows users to define the cluster Service CIDR via a new API object: ServiceCIDR.\nDistributions or administrators of Kubernetes may want to control that new Service CIDRs added to the cluster\ndoes not overlap with other networks on the cluster, that only belong to a specific range of IPs or just simple retain the existing behavior of only having one ServiceCIDR per cluster. An example of a Validation Admission Policy to achieve this is [here](https://raw.githubusercontent.com/kubernetes/website/refs/heads/main/content/en/examples/policy/service-cluster-cidr-address-range.yaml)", - "markdown": "Graduated `MultiCIDRServiceAllocator` to stable and `DisableAllocatorDualWrite` to beta (disabled by default).\nAction required for Kubernetes distributions that manage the cluster Service CIDR.\nThis feature allows users to define the cluster Service CIDR via a new API object: ServiceCIDR.\nDistributions or administrators of Kubernetes may want to control that new Service CIDRs added to the cluster\ndoes not overlap with other networks on the cluster, that only belong to a specific range of IPs or just simple retain the existing behavior of only having one ServiceCIDR per cluster. An example of a Validation Admission Policy to achieve this is [here](https://raw.githubusercontent.com/kubernetes/website/refs/heads/main/content/en/examples/policy/service-cluster-cidr-address-range.yaml) ([#128971](https://github.com/kubernetes/kubernetes/pull/128971), [@aojea](https://github.com/aojea)) [SIG Apps, Architecture, Auth, CLI, Etcd, Network, Release and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1880", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/tasks/network/extend-service-ip-ranges/", - "type": "official" - }, - { - "description": "[Kubernetes ClusterIP allocation]", - "url": "https://kubernetes.io/docs/reference/networking/virtual-ips/#ip-address-allocation-tracking", - "type": "official" - } - ], - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128971", - "pr_number": 128971, - "areas": [ - "test", - "kube-proxy", - "apiserver", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "architecture", - "auth", - "cli", - "etcd", - "network", - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true, - "is_mapped": true - }, - "128972": { - "commit": "b358cf3a791bce0df23a52bb32b0e47e23746a8d", - "text": "Added e2e tests for volume group snapshots.", - "markdown": "Added e2e tests for volume group snapshots. ([#128972](https://github.com/kubernetes/kubernetes/pull/128972), [@manishym](https://github.com/manishym)) [SIG Cloud Provider, Storage and Testing]", - "author": "manishym", - "author_url": "https://github.com/manishym", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128972", - "pr_number": 128972, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cloud-provider", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128985": { - "commit": "a19c27d3e30c95de607e7def3894aed19ded4c59", - "text": "Added a `/flagz` endpoint for kube-proxy", - "markdown": "Added a `/flagz` endpoint for kube-proxy ([#128985](https://github.com/kubernetes/kubernetes/pull/128985), [@yongruilin](https://github.com/yongruilin)) [SIG Instrumentation and Network]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", - "type": "KEP" - } - ], - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128985", - "pr_number": 128985, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "network" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128987": { - "commit": "a0be82d80d2906590167eb81502e69cd1f90b08c", - "text": "Added a `/statusz` endpoint for kube-scheduler", - "markdown": "Added a `/statusz` endpoint for kube-scheduler ([#128987](https://github.com/kubernetes/kubernetes/pull/128987), [@Henrywu573](https://github.com/Henrywu573)) [SIG Instrumentation, Scheduling and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4827-component-statusz/README.md", - "type": "KEP" - }, - { - "description": "3. curl -k --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt --key /etc/kubernetes/pki/apiserver-kubelet-client.key", - "url": "https://localhost:10259/statusz", - "type": "external" - } - ], - "author": "Henrywu573", - "author_url": "https://github.com/Henrywu573", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128987", - "pr_number": 128987, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128989": { - "commit": "54eddbd50f510d668725ae83c02c458570b504f1", - "text": "Added a `/status` endpoint for kube-proxy", - "markdown": "Added a `/status` endpoint for kube-proxy ([#128989](https://github.com/kubernetes/kubernetes/pull/128989), [@Henrywu573](https://github.com/Henrywu573)) [SIG Instrumentation and Network]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", - "type": "KEP" - }, - { - "description": "root@kind-control-plane:/# curl", - "url": "http://localhost:10249/statusz", - "type": "external" - } - ], - "author": "Henrywu573", - "author_url": "https://github.com/Henrywu573", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128989", - "pr_number": 128989, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "instrumentation", - "network" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "128991": { - "commit": "22f25efc2cf890e719c6059d282d85e59f3c7894", - "text": "Added a `/statusz` endpoint for kube-controller-manager", - "markdown": "Added a `/statusz` endpoint for kube-controller-manager ([#128991](https://github.com/kubernetes/kubernetes/pull/128991), [@Henrywu573](https://github.com/Henrywu573)) [SIG API Machinery, Cloud Provider, Instrumentation and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", - "type": "KEP" - }, - { - "description": "root@kind-control-plane:/etc/kubernetes/manifests# curl -k --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt --key /etc/kubernetes/pki/apiserver-kubelet-client.key", - "url": "https://localhost:10257/statusz", - "type": "external" - } - ], - "author": "Henrywu573", - "author_url": "https://github.com/Henrywu573", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128991", - "pr_number": 128991, - "areas": [ - "test", - "cloudprovider" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "129006": { - "commit": "1f415b4e13e631a8d840551a8bfc2380af61b452", - "text": "kubeadm: Avoided loading the file passed to `--kubeconfig` during `kubeadm init` phases more than once.", - "markdown": "kubeadm: Avoided loading the file passed to `--kubeconfig` during `kubeadm init` phases more than once. ([#129006](https://github.com/kubernetes/kubernetes/pull/129006), [@kokes](https://github.com/kokes))", - "author": "kokes", - "author_url": "https://github.com/kokes", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129006", - "pr_number": 129006, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "129017": { - "commit": "7c887412c882afc130d78e4bb6efad056b0fe376", - "text": "Added a validation for the `revisionHistoryLimit` field in the `.spec` of a StatefulSet, to prevent it from being set to a negative value.", - "markdown": "Added a validation for the `revisionHistoryLimit` field in the `.spec` of a StatefulSet, to prevent it from being set to a negative value. ([#129017](https://github.com/kubernetes/kubernetes/pull/129017), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129017", - "pr_number": 129017, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "129023": { - "commit": "078664b424ba58087e1422590c55f7fbc46bbffd", - "text": "Renamed `UpdatePodTolerations` action type to `UpdatePodToleration`.\nAction required for custom plugin developers to update their code to follow the rename.", - "markdown": "Renamed `UpdatePodTolerations` action type to `UpdatePodToleration`.\n Action required for custom plugin developers to update their code to follow the rename. ([#129023](https://github.com/kubernetes/kubernetes/pull/129023), [@zhifei92](https://github.com/zhifei92)) [SIG Scheduling and Testing]", - "author": "zhifei92", - "author_url": "https://github.com/zhifei92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129023", - "pr_number": 129023, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "action_required": true, - "is_mapped": true - }, - "129028": { - "commit": "50fc400f178d2078d0ca46aee955ee26375fc437", - "text": "Added unit test helpers to validate CEL and patterns in CustomResourceDefinitions.", - "markdown": "Added unit test helpers to validate CEL and patterns in CustomResourceDefinitions. ([#129028](https://github.com/kubernetes/kubernetes/pull/129028), [@sttts](https://github.com/sttts))", - "author": "sttts", - "author_url": "https://github.com/sttts", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129028", - "pr_number": 129028, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "129058": { - "commit": "6bb5901e2da3596cea5ec9cc82155bd282741acb", - "text": "Revised scheduling behavior to correctly handle nominated node changes. Trigger rescheduling of pods \nif necessary when pods with nominated node names got deleted or nominated on a different node.", - "markdown": "Revised scheduling behavior to correctly handle nominated node changes. Trigger rescheduling of pods \nif necessary when pods with nominated node names got deleted or nominated on a different node. ([#129058](https://github.com/kubernetes/kubernetes/pull/129058), [@dom4ha](https://github.com/dom4ha)) [SIG Scheduling, Storage and Testing]", - "author": "dom4ha", - "author_url": "https://github.com/dom4ha", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129058", - "pr_number": 129058, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "129072": { - "commit": "c3d00023039f7929171ae332afcc327ae0d09e13", - "text": "Added validation of `containerLogMaxFiles` within kubelet configuration files.", - "markdown": "Added validation of `containerLogMaxFiles` within kubelet configuration files. ([#129072](https://github.com/kubernetes/kubernetes/pull/129072), [@kannon92](https://github.com/kannon92))", - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129072", - "pr_number": 129072, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "129106": { - "commit": "d1b702b0b83b7c4ea8d06b2dbd9d33e337117b9d", - "text": "Added an example of set-based requirements for the `-l` / `--selector` command line option to `kubectl`.", - "markdown": "Added an example of set-based requirements for the `-l` / `--selector` command line option to `kubectl`. ([#129106](https://github.com/kubernetes/kubernetes/pull/129106), [@rotsix](https://github.com/rotsix))", - "author": "rotsix", - "author_url": "https://github.com/rotsix", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129106", - "pr_number": 129106, - "areas": [ - "kubectl" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "129116": { - "commit": "5ba2b78eae18645744b51d94d279582bdcccec23", - "text": "Updated cri-tools to `v1.32.0`.", - "markdown": "Updated cri-tools to `v1.32.0`. ([#129116](https://github.com/kubernetes/kubernetes/pull/129116), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129116", - "pr_number": 129116, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "is_mapped": true - }, - "129119": { - "commit": "1c2b2cce10eb8fb136e16bdbcff6d45990dcdd2a", - "text": "Improved scheduling performance of pods with required topology spreading.", - "markdown": "Improved scheduling performance of pods with required topology spreading. ([#129119](https://github.com/kubernetes/kubernetes/pull/129119), [@macsko](https://github.com/macsko))", - "author": "macsko", - "author_url": "https://github.com/macsko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129119", - "pr_number": 129119, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "129131": { - "commit": "e81857488529551d95cdb1738660b82ed52301ba", - "text": "kubeadm: removed preflight check for `ip`, `iptables`, `ethtool` and `tc` on Linux nodes. kubelet and kube-proxy will continue to report `iptables` errors if its usage is required. The tools `ip`, `ethtool` and `tc` had legacy usage in the kubelet but are no longer required.", - "markdown": "Kubeadm: removed preflight check for `ip`, `iptables`, `ethtool` and `tc` on Linux nodes. kubelet and kube-proxy will continue to report `iptables` errors if its usage is required. The tools `ip`, `ethtool` and `tc` had legacy usage in the kubelet but are no longer required. ([#129131](https://github.com/kubernetes/kubernetes/pull/129131), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129131", - "pr_number": 129131, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "129142": { - "commit": "bf2a52a57aa33b9761d1a77f60b1637888ac2251", - "text": "Changed the signature of `PublishResources()` for ResourceSlices to accept a `resourceslice.DriverResources` parameter \ninstead of a `Resources` parameter.", - "markdown": "Changed the signature of `PublishResources()` for ResourceSlices to accept a `resourceslice.DriverResources` parameter \ninstead of a `Resources` parameter. ([#129142](https://github.com/kubernetes/kubernetes/pull/129142), [@googs1025](https://github.com/googs1025)) [SIG Node and Testing]", - "author": "googs1025", - "author_url": "https://github.com/googs1025", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129142", - "pr_number": 129142, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129151": { - "commit": "2b2644159f2b4efdddaf5b22f666244725dfc77f", - "text": "Improved reboot event reporting. The kubelet will only emit one reboot Event when a server-level reboot is detected, even if the kubelet cannot write its status to the associated Node (which triggers a retry).", - "markdown": "Improved reboot event reporting. The kubelet will only emit one reboot Event when a server-level reboot is detected, even if the kubelet cannot write its status to the associated Node (which triggers a retry). ([#129151](https://github.com/kubernetes/kubernetes/pull/129151), [@rphillips](https://github.com/rphillips))", - "author": "rphillips", - "author_url": "https://github.com/rphillips", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129151", - "pr_number": 129151, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "129170": { - "commit": "5c207d6fb028ce2f79373626c73dd8c60d0b57ae", - "text": "Fixed a data race that could occur when a single Go type was serialized to CBOR concurrently for the first time within a program.", - "markdown": "Fixed a data race that could occur when a single Go type was serialized to CBOR concurrently for the first time within a program. ([#129170](https://github.com/kubernetes/kubernetes/pull/129170), [@benluddy](https://github.com/benluddy))", - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129170", - "pr_number": 129170, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "129173": { - "commit": "efea0a0ed79df4d339bee432b442be11ef93c1aa", - "text": "Extended the schema of kube-proxy's metrics / endpoints to incorporate information about the corresponding IP family.", - "markdown": "Extended the schema of kube-proxy's metrics / endpoints to incorporate information about the corresponding IP family. ([#129173](https://github.com/kubernetes/kubernetes/pull/129173), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129173", - "pr_number": 129173, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true, - "is_mapped": true - }, - "129174": { - "commit": "7a504aa97bf3006848b1dc9281aa039ad180ae81", - "text": "Removed the limitation on exposing port 10250 externally using a Service.", - "markdown": "Removed the limitation on exposing port 10250 externally using a Service. ([#129174](https://github.com/kubernetes/kubernetes/pull/129174), [@RyanAoh](https://github.com/RyanAoh)) [SIG Apps and Network]", - "author": "RyanAoh", - "author_url": "https://github.com/RyanAoh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129174", - "pr_number": 129174, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true, - "is_mapped": true - }, - "129175": { - "commit": "1a1f5221260ec868bc0ef78fb2b805d41b4e83c7", - "text": "Renamed coredns metrics, see https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics.", - "markdown": "Renamed coredns metrics, see https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics. ([#129175](https://github.com/kubernetes/kubernetes/pull/129175), [@DamianSawicki](https://github.com/DamianSawicki)) [SIG Cloud Provider]", - "author": "DamianSawicki", - "author_url": "https://github.com/DamianSawicki", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129175", - "pr_number": 129175, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "is_mapped": true - }, - "129186": { - "commit": "58aafb61d4a474c47b7e0883ca30cee1d3913f54", - "text": "kube-apiserver: inactive serving code is removed for `authentication.k8s.io/v1alpha1` APIs", - "markdown": "kube-apiserver: inactive serving code is removed for `authentication.k8s.io/v1alpha1` APIs ([#129186](https://github.com/kubernetes/kubernetes/pull/129186), [@liggitt](https://github.com/liggitt)) [SIG Auth and Testing]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129186", - "pr_number": 129186, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "129207": { - "commit": "cc03c6058be16f45dda9e6c8b782747ec0d692f6", - "text": "Removed support for `v1alpha1` version of `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` API kinds.", - "markdown": "Removed support for `v1alpha1` version of `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` API kinds. ([#129207](https://github.com/kubernetes/kubernetes/pull/129207), [@Jefftree](https://github.com/Jefftree)) [SIG Etcd and Testing]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129207", - "pr_number": 129207, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "etcd", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "129219": { - "commit": "9bf60d06e08024cbf10ea33a59e7336f65b7d2df", - "text": "When using the Alpha `DRAResourceClaimDeviceStatus` feature, IP address values\nin the `NetworkDeviceData` are now validated more strictly.", - "markdown": "When using the Alpha `DRAResourceClaimDeviceStatus` feature, IP address values\n in the `NetworkDeviceData` are now validated more strictly. ([#129219](https://github.com/kubernetes/kubernetes/pull/129219), [@danwinship](https://github.com/danwinship)) [SIG Network]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4858", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129219", - "pr_number": 129219, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "129232": { - "commit": "9709d36dda75ff82d1a8121edb23568a1d65ab82", - "text": "Renamed some metrics related to CoreDNS, see the [README](https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics) for `v1.11.0` of CoreDNS.", - "markdown": "Renamed some metrics related to CoreDNS, see the [README](https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics) for `v1.11.0` of CoreDNS. ([#129232](https://github.com/kubernetes/kubernetes/pull/129232), [@DamianSawicki](https://github.com/DamianSawicki))", - "author": "DamianSawicki", - "author_url": "https://github.com/DamianSawicki", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129232", - "pr_number": 129232, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "is_mapped": true - }, - "129257": { - "commit": "2a609cd6e26162fd44c5660bfdf206168efdd60c", - "text": "`kubectl apply` now coerces `null` values for labels and annotations in manifests to empty string values, consistent with typed JSON metadata decoding, rather than dropping all labels and annotations", - "markdown": "`kubectl apply` now coerces `null` values for labels and annotations in manifests to empty string values, consistent with typed JSON metadata decoding, rather than dropping all labels and annotations ([#129257](https://github.com/kubernetes/kubernetes/pull/129257), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129257", - "pr_number": 129257, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "129271": { - "commit": "3a4c2a0bbbacfe875bae4664c5ca12fcb0fa2cf4", - "text": "Extended the schema of the kube-proxy `healthz` and `livez` HTTP endpoints to incorporate information about the corresponding IP family.", - "markdown": "Extended the schema of the kube-proxy `healthz` and `livez` HTTP endpoints to incorporate information about the corresponding IP family. ([#129271](https://github.com/kubernetes/kubernetes/pull/129271), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows]", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129271", - "pr_number": 129271, - "areas": [ - "kube-proxy", - "ipvs" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "windows" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "129278": { - "commit": "fab7593a29afcc6aa2baaf67320a45f35874882f", - "text": "kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the flag `--container-runtime-endpoint` from the `/var/lib/kubelet/kubeadm-flags.env` file on `kubeadm upgrade`.", - "markdown": "kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the flag `--container-runtime-endpoint` from the `/var/lib/kubelet/kubeadm-flags.env` file on `kubeadm upgrade`. ([#129278](https://github.com/kubernetes/kubernetes/pull/129278), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/4656-add-kubelet-instance-configuration", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129278", - "pr_number": 129278, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "129279": { - "commit": "80379db5d5f4f9257a07627d5d4caec088db0c59", - "text": "kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from a given node on `kubeadm upgrade`.", - "markdown": "kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from a given node on `kubeadm upgrade`. ([#129279](https://github.com/kubernetes/kubernetes/pull/129279), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle and Testing]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/4656-add-kubelet-instance-configuration", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129279", - "pr_number": 129279, - "areas": [ - "test", - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "129295": { - "commit": "157f42bff333811956531ea692cc1fdfa0d6a0a4", - "text": "Removed general available feature gate `PersistentVolumeLastPhaseTransitionTime`.", - "markdown": "Removed general available feature gate `PersistentVolumeLastPhaseTransitionTime`. ([#129295](https://github.com/kubernetes/kubernetes/pull/129295), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129295", - "pr_number": 129295, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "129296": { - "commit": "3eb5fa2b1b44aa7e188af9f13a04f60cfc8421a5", - "text": "Removed general available feature gate `CPUManager`.", - "markdown": "Removed general available feature gate `CPUManager`. ([#129296](https://github.com/kubernetes/kubernetes/pull/129296), [@carlory](https://github.com/carlory)) [SIG API Machinery, Node and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129296", - "pr_number": 129296, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129297": { - "commit": "0caa36cfb055b76213371461c5e16ad0a6584089", - "text": "Promoted the feature gate `CSIMigrationPortworx` to GA. If your applications are using Portworx volumes, please make sure that the corresponding Portworx CSI driver is installed on your cluster **before** upgrading to 1.31 or later because all operations for the in-tree `portworxVolume` type are redirected to the pxd.portworx.com CSI driver when the feature gate is enabled.", - "markdown": "Promoted the feature gate `CSIMigrationPortworx` to GA. If your applications are using Portworx volumes, please make sure that the corresponding Portworx CSI driver is installed on your cluster **before** upgrading to 1.31 or later because all operations for the in-tree `portworxVolume` type are redirected to the pxd.portworx.com CSI driver when the feature gate is enabled. ([#129297](https://github.com/kubernetes/kubernetes/pull/129297), [@gohilankit](https://github.com/gohilankit))", - "author": "gohilankit", - "author_url": "https://github.com/gohilankit", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129297", - "pr_number": 129297, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true, - "is_mapped": true - }, - "129301": { - "commit": "a4b8a3b2e33a3b591884f69b64f439e6b880dc40", - "text": "Fixed a panic in kube-controller-manager handling StatefulSet objects when `revisionHistoryLimit` is negative.", - "markdown": "Fixed a panic in kube-controller-manager handling StatefulSet objects when `revisionHistoryLimit` is negative. ([#129301](https://github.com/kubernetes/kubernetes/pull/129301), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129301", - "pr_number": 129301, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "129307": { - "commit": "7f3d23554bb50eb1d1a47d962cc196d9591b5bf2", - "text": "Fixed an issue in register-gen where imports for k8s.io/apimachinery/pkg/runtime and k8s.io/apimachinery/pkg/runtime/schema were missing.", - "markdown": "Fixed an issue in register-gen where imports for k8s.io/apimachinery/pkg/runtime and k8s.io/apimachinery/pkg/runtime/schema were missing. ([#129307](https://github.com/kubernetes/kubernetes/pull/129307), [@LionelJouin](https://github.com/LionelJouin))", - "author": "LionelJouin", - "author_url": "https://github.com/LionelJouin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129307", - "pr_number": 129307, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "129317": { - "commit": "646e7f04d91d6f5bb8d1dfa64a4a09cd95115728", - "text": "kubeadm: removed preflight check for `touch` on Linux nodes.", - "markdown": "kubeadm: removed preflight check for `touch` on Linux nodes. ([#129317](https://github.com/kubernetes/kubernetes/pull/129317), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129317", - "pr_number": 129317, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "129334": { - "commit": "2fc329c857035676492aa6e6a995ef31448465f0", - "text": "Improved how the API server responds to **list** requests where the response format negotiates to JSON. \nList responses in JSON are marshalled one element at the time, drastically reducing memory needed to serve \nlarge collections. Streaming list responses can be disabled via the `StreamingJSONListEncoding` feature gate.", - "markdown": "Improved how the API server responds to **list** requests where the response format negotiates to JSON. \nList responses in JSON are marshalled one element at the time, drastically reducing memory needed to serve \nlarge collections. Streaming list responses can be disabled via the `StreamingJSONListEncoding` feature gate. ([#129334](https://github.com/kubernetes/kubernetes/pull/129334), [@serathius](https://github.com/serathius)) [SIG API Machinery, Architecture and Release]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129334", - "pr_number": 129334, - "areas": [ - "apiserver", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "release" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "129368": { - "commit": "80bf507facbd11711ef322f2c992c68994228785", - "text": "Fix: Adopted go1.23 behavior change in mount point parsing on Windows.", - "markdown": "Fix: Adopted go1.23 behavior change in mount point parsing on Windows. ([#129368](https://github.com/kubernetes/kubernetes/pull/129368), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage and Windows]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129368", - "pr_number": 129368, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "windows" - ], - "duplicate": true, - "is_mapped": true - }, - "129370": { - "commit": "b84cb65f932ae02d06db26c5f9290489e97f9048", - "text": "[Action Required] CSI drivers that calls `IsLikelyNotMountPoint` should not assume false means that the path is a mount point. \nEach CSI driver needs to make sure correct usage of return value of `IsLikelyNotMountPoint` \nbecause if the file is an irregular file but not a mount point is acceptable", - "markdown": "[Action Required] CSI drivers that calls `IsLikelyNotMountPoint` should not assume false means that the path is a mount point. \nEach CSI driver needs to make sure correct usage of return value of `IsLikelyNotMountPoint`\nbecause if the file is an irregular file but not a mount point is acceptable ([#129370](https://github.com/kubernetes/kubernetes/pull/129370), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage and Windows]", - "author": "andyzhangx", - "author_url": "https://github.com/andyzhangx", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129370", - "pr_number": 129370, - "kinds": [ - "bug" - ], - "sigs": [ - "storage", - "windows" - ], - "duplicate": true, - "action_required": true, - "is_mapped": true - }, - "129375": { - "commit": "c5b83f7c6c3bfd391edce4c6adb3bbf95b9ddab3", - "text": "Removed general available feature-gate `AppArmor`.", - "markdown": "Removed general available feature-gate `AppArmor`. ([#129375](https://github.com/kubernetes/kubernetes/pull/129375), [@carlory](https://github.com/carlory)) [SIG Auth and Node]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129375", - "pr_number": 129375, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "129401": { - "commit": "3c229949f992d9f798bcfd9f79dab88c21500c36", - "text": "kubeadm: run kernel version and OS version preflight checks for `kubeadm upgrade`.", - "markdown": "kubeadm: run kernel version and OS version preflight checks for `kubeadm upgrade`. ([#129401](https://github.com/kubernetes/kubernetes/pull/129401), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129401", - "pr_number": 129401, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "129407": { - "commit": "1b6e321e2311757a521615917f99dbe8e58f623c", - "text": "Improved how the API server responds to **list** requests where the response format negotiates to Protobuf. List responses in Protobuf are marshalled one element at the time, drastically reducing memory needed to serve large collections. Streaming list responses can be disabled via the `StreamingCollectionEncodingToProtobuf` feature gate.", - "markdown": "Improved how the API server responds to **list** requests where the response format negotiates to Protobuf. List responses in Protobuf are marshalled one element at the time, drastically reducing memory needed to serve large collections. Streaming list responses can be disabled via the `StreamingCollectionEncodingToProtobuf` feature gate. ([#129407](https://github.com/kubernetes/kubernetes/pull/129407), [@serathius](https://github.com/serathius)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Network, Node, Release, Scheduling, Storage and Testing]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129407", - "pr_number": 129407, - "areas": [ - "test", - "kube-proxy", - "apiserver", - "kubectl", - "provider/gcp", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "cli", - "cloud-provider", - "network", - "node", - "release", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129418": { - "commit": "7606b77fff3c3739cf0a2bdedcfe2280cefbd63d", - "text": "kubeadm: if an addon is disabled in the ClusterConfiguration, skip it during upgrade.", - "markdown": "kubeadm: if an addon is disabled in the ClusterConfiguration, skip it during upgrade. ([#129418](https://github.com/kubernetes/kubernetes/pull/129418), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129418", - "pr_number": 129418, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "129450": { - "commit": "fcc1e9002af912ccfca0e5553bc8b7890b18115a", - "text": "kubeadm: removed preflight check for nsenter on Linux nodes\nkubeadm: added preflight check for `losetup` on Linux nodes. It's required by kubelet for keeping a block device opened.", - "markdown": "kubeadm: removed preflight check for nsenter on Linux nodes\nkubeadm: added preflight check for `losetup` on Linux nodes. It's required by kubelet for keeping a block device opened. ([#129450](https://github.com/kubernetes/kubernetes/pull/129450), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129450", - "pr_number": 129450, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "129452": { - "commit": "87cf098f34b6782d20cbfaced2b4260a595ac066", - "text": "kubeadm: fixed a bug where the `node.skipPhases` in UpgradeConfiguration is not respected by the `kubeadm upgrade node` subcommand.", - "markdown": "kubeadm: fixed a bug where the `node.skipPhases` in UpgradeConfiguration is not respected by the `kubeadm upgrade node` subcommand. ([#129452](https://github.com/kubernetes/kubernetes/pull/129452), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129452", - "pr_number": 129452, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "129457": { - "commit": "4114a9b4e45a4df96f0383d87b2649640a6ffbf1", - "text": "[kubectl] Improved the describe output for projected volume sources to clearly indicate whether Secret and ConfigMap entries are optional.", - "markdown": "[kubectl] Improved the describe output for projected volume sources to clearly indicate whether Secret and ConfigMap entries are optional. ([#129457](https://github.com/kubernetes/kubernetes/pull/129457), [@gshaibi](https://github.com/gshaibi))", - "author": "gshaibi", - "author_url": "https://github.com/gshaibi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129457", - "pr_number": 129457, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "129486": { - "commit": "f82439f53654a2f86797c1b949cd337e4e1ba9ce", - "text": "Fixed a bug to ensure container-level swap metrics are collected.", - "markdown": "Fixed a bug to ensure container-level swap metrics are collected. ([#129486](https://github.com/kubernetes/kubernetes/pull/129486), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md", - "type": "KEP" - } - ], - "author": "iholder101", - "author_url": "https://github.com/iholder101", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129486", - "pr_number": 129486, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129497": { - "commit": "c75960c414eee173a0363eed257358fd5022651d", - "text": "Removed generally available feature-gate `AppArmorFields`.", - "markdown": "Removed generally available feature-gate `AppArmorFields`. ([#129497](https://github.com/kubernetes/kubernetes/pull/129497), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129497", - "pr_number": 129497, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "129498": { - "commit": "e8ed01179a402568874d33b67de78ec205debc6c", - "text": "Removed the `JobPodFailurePolicy` feature gate, which graduated to GA in 1.31 and was unconditionally enabled.", - "markdown": "Removed the `JobPodFailurePolicy` feature gate, which graduated to GA in 1.31 and was unconditionally enabled. ([#129498](https://github.com/kubernetes/kubernetes/pull/129498), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129498", - "pr_number": 129498, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "129500": { - "commit": "f1b3fdf7e6d40714b1a43757221832aa1c4a49d1", - "text": "Removed general available feature-gate `PDBUnhealthyPodEvictionPolicy`.", - "markdown": "Removed general available feature-gate `PDBUnhealthyPodEvictionPolicy`. ([#129500](https://github.com/kubernetes/kubernetes/pull/129500), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Auth]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129500", - "pr_number": 129500, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "auth" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129506": { - "commit": "728a4d2a484e0bf09a6f33e59230246a62d3cc11", - "text": "Enabled ratcheting validation on `status` subresources for CustomResourceDefinitions.", - "markdown": "Enabled ratcheting validation on `status` subresources for CustomResourceDefinitions. ([#129506](https://github.com/kubernetes/kubernetes/pull/129506), [@JoelSpeed](https://github.com/JoelSpeed))", - "author": "JoelSpeed", - "author_url": "https://github.com/JoelSpeed", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129506", - "pr_number": 129506, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "129543": { - "commit": "db1da72beed99f1fcb2955c2624c7dd3531384ea", - "text": "DRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the `status.reservedFor` field.", - "markdown": "DRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the `status.reservedFor` field. ([#129543](https://github.com/kubernetes/kubernetes/pull/129543), [@pohly](https://github.com/pohly)) [SIG API Machinery, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129543", - "pr_number": 129543, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129545": { - "commit": "5da75638ee9ebb58794b538293767a7aa0120603", - "text": "...\n+ /home/prow/go/src/k8s.io/kubernetes/_output/bin/ginkgo --nodes=25 --poll-progress-after=60m --poll-progress-interval=5m --source-root=/home/prow/go/src/k8s.io/kubernetes/cluster/.. --timeout=24h --silence-skips --force-newlines --no-color /home/prow/go/src/k8s.io/kubernetes/_output/bin/e2e.test -- --kubeconfig=/root/.kube/kind-test-config --host=https://127.0.0.1:43881 --provider=skeleton --gce-project= --gce-zone= --gce-region= --gce-multizone=false --gke-cluster= --kube-master= --cluster-tag= --cloud-config-file= --repo-root=/home/prow/go/src/k8s.io/kubernetes/cluster/.. --node-instance-group= --prefix=e2e --network=e2e --node-tag= --master-tag= --docker-config-file= --dns-domain=cluster.local --prepull-images=false --report-complete-ginkgo --report-complete-junit --provider=skeleton --num-nodes=2 --ginkgo.focus=. '--ginkgo.skip=\\[Serial\\]|\\[Slow\\]|\\[Disruptive\\]|\\[Flaky\\]|\\[Feature:.+\\]|PodSecurityPolicy|LoadBalancer|load.balancer|Simple.pod.should.support.exec.through.an.HTTP.proxy|subPath.should.support.existing|NFS|nfs|inline.execution.and.attach|should.be.rejected.when.no.endpoints.exist' --ginkgo.label-filter= --report-dir=/logs/artifacts --disable-log-dump=true\nRunning Suite: Kubernetes e2e suite - /home/prow/go/src/k8s.io/kubernetes/_output/bin\n=====================================================================================\nRandom Seed: 1737026902 - will randomize all specs\n\nWill run 2025 of 6644 specs\nRunning in parallel across 25 processes\n•\n...\n•\n{\"component\":\"entrypoint\",\"file\":\"sigs.k8s.io/prow/pkg/entrypoint/run.go:169\",\"func\":\"sigs.k8s.io/prow/pkg/entrypoint.Options.ExecuteProcess\",\"level\":\"error\",\"msg\":\"Process did not finish before 1h0m0s timeout\",\"severity\":\"error\",\"time\":\"2025-01-16T12:17:50Z\"}\nwrapper.sh] [EARLY EXIT] Interrupted, entering handler ...\n...\n+ signal_handler\n+ [ -n 69647 ]\n+ kill -TERM 69647\n+ cleanup\n+ [ false = true ]\n+ [ true = true ]\n+ kind export logs /logs/artifacts\n...\nwrapper.sh] [EARLY EXIT] Completed handler ...\n ------------------------------\n Progress Report for Ginkgo Process #2\n Automatically polling progress:\n [sig-cli] Kubectl client Kubectl cluster-info dump should check if cluster-info dump succeeds (Spec Runtime: 1h0m0.082s)\n k8s.io/kubernetes/test/e2e/kubectl/kubectl.go:1376\n In [It] (Node Runtime: 1h0m0s)\n k8s.io/kubernetes/test/e2e/kubectl/kubectl.go:1376\n\n Begin Captured GinkgoWriter Output \u003e\u003e\n I0116 11:29:39.530877 69841 util.go:502] \u003e\u003e\u003e kubeConfig: /root/.kube/kind-test-config\n \u003c\u003c End Captured GinkgoWriter Output\n\n Spec Goroutine\n goroutine 7161 [select]\n github.com/onsi/gomega/internal.(*AsyncAssertion).match(0xc002b1a700, {0x53308c8, 0xc000c48ed0}, 0x1, {0x0, 0x0, 0x0})\n github.com/onsi/gomega@v1.35.1/internal/async_assertion.go:546\n github.com/onsi/gomega/internal.(*AsyncAssertion).Should(0xc002b1a700, {0x53308c8, 0xc000c48ed0}, {0x0, 0x0, 0x0})\n github.com/onsi/gomega@v1.35.1/internal/async_assertion.go:145\n \u003e k8s.io/kubernetes/test/e2e/kubectl.init.func5.19.1({0x7f29e05fbe50?, 0xc002b104e0})\n k8s.io/kubernetes/test/e2e/kubectl/kubectl.go:1380\n github.com/onsi/ginkgo/v2/internal.extractBodyFunction.func2({0x5357590?, 0xc002b104e0?})\n github.com/onsi/ginkgo/v2@v2.21.0/internal/node.go:465\n github.com/onsi/ginkgo/v2/internal.(*Suite).runNode.func3()\n github.com/onsi/ginkgo/v2@v2.21.0/internal/suite.go:894\n github.com/onsi/ginkgo/v2/internal.(*Suite).runNode in goroutine 6404\n github.com/onsi/ginkgo/v2@v2.21.0/internal/suite.go:881\n\n Begin Additional Progress Reports \u003e\u003e\n fake error to block test\n \u003c\u003c End Additional Progress Reports\n ------------------------------\n{\"component\":\"entrypoint\",\"file\":\"sigs.k8s.io/prow/pkg/entrypoint/run.go:267\",\"func\":\"sigs.k8s.io/prow/pkg/entrypoint.gracefullyTerminate\",\"level\":\"error\",\"msg\":\"Process did not exit before 15m0s grace period\",\"severity\":\"error\",\"time\":\"2025-01-16T12:32:50Z\"}\n{\"component\":\"entrypoint\",\"error\":\"os: process already finished\",\"file\":\"sigs.k8s.io/prow/pkg/entrypoint/run.go:269\",\"func\":\"sigs.k8s.io/prow/pkg/entrypoint.gracefullyTerminate\",\"level\":\"error\",\"msg\":\"Could not kill process after grace period\",\"severity\":\"error\",\"time\":\"2025-01-16T12:32:50Z\"}", - "markdown": "...\n + /home/prow/go/src/k8s.io/kubernetes/_output/bin/ginkgo --nodes=25 --poll-progress-after=60m --poll-progress-interval=5m --source-root=/home/prow/go/src/k8s.io/kubernetes/cluster/.. --timeout=24h --silence-skips --force-newlines --no-color /home/prow/go/src/k8s.io/kubernetes/_output/bin/e2e.test -- --kubeconfig=/root/.kube/kind-test-config --host=https://127.0.0.1:43881 --provider=skeleton --gce-project= --gce-zone= --gce-region= --gce-multizone=false --gke-cluster= --kube-master= --cluster-tag= --cloud-config-file= --repo-root=/home/prow/go/src/k8s.io/kubernetes/cluster/.. --node-instance-group= --prefix=e2e --network=e2e --node-tag= --master-tag= --docker-config-file= --dns-domain=cluster.local --prepull-images=false --report-complete-ginkgo --report-complete-junit --provider=skeleton --num-nodes=2 --ginkgo.focus=. '--ginkgo.skip=\\[Serial\\]|\\[Slow\\]|\\[Disruptive\\]|\\[Flaky\\]|\\[Feature:.+\\]|PodSecurityPolicy|LoadBalancer|load.balancer|Simple.pod.should.support.exec.through.an.HTTP.proxy|subPath.should.support.existing|NFS|nfs|inline.execution.and.attach|should.be.rejected.when.no.endpoints.exist' --ginkgo.label-filter= --report-dir=/logs/artifacts --disable-log-dump=true\n Running Suite: Kubernetes e2e suite - /home/prow/go/src/k8s.io/kubernetes/_output/bin\n =====================================================================================\n Random Seed: 1737026902 - will randomize all specs\n \n Will run 2025 of 6644 specs\n Running in parallel across 25 processes\n •\n ...\n •\n {\"component\":\"entrypoint\",\"file\":\"sigs.k8s.io/prow/pkg/entrypoint/run.go:169\",\"func\":\"sigs.k8s.io/prow/pkg/entrypoint.Options.ExecuteProcess\",\"level\":\"error\",\"msg\":\"Process did not finish before 1h0m0s timeout\",\"severity\":\"error\",\"time\":\"2025-01-16T12:17:50Z\"}\n wrapper.sh] [EARLY EXIT] Interrupted, entering handler ...\n ...\n + signal_handler\n + [ -n 69647 ]\n + kill -TERM 69647\n + cleanup\n + [ false = true ]\n + [ true = true ]\n + kind export logs /logs/artifacts\n ...\n wrapper.sh] [EARLY EXIT] Completed handler ...\n ------------------------------\n Progress Report for Ginkgo Process #2\n Automatically polling progress:\n [sig-cli] Kubectl client Kubectl cluster-info dump should check if cluster-info dump succeeds (Spec Runtime: 1h0m0.082s)\n k8s.io/kubernetes/test/e2e/kubectl/kubectl.go:1376\n In [It] (Node Runtime: 1h0m0s)\n k8s.io/kubernetes/test/e2e/kubectl/kubectl.go:1376\n \n Begin Captured GinkgoWriter Output \u003e\u003e\n I0116 11:29:39.530877 69841 util.go:502] \u003e\u003e\u003e kubeConfig: /root/.kube/kind-test-config\n \u003c\u003c End Captured GinkgoWriter Output\n \n Spec Goroutine\n goroutine 7161 [select]\n github.com/onsi/gomega/internal.(*AsyncAssertion).match(0xc002b1a700, {0x53308c8, 0xc000c48ed0}, 0x1, {0x0, 0x0, 0x0})\n github.com/onsi/gomega@v1.35.1/internal/async_assertion.go:546\n github.com/onsi/gomega/internal.(*AsyncAssertion).Should(0xc002b1a700, {0x53308c8, 0xc000c48ed0}, {0x0, 0x0, 0x0})\n github.com/onsi/gomega@v1.35.1/internal/async_assertion.go:145\n \u003e k8s.io/kubernetes/test/e2e/kubectl.init.func5.19.1({0x7f29e05fbe50?, 0xc002b104e0})\n k8s.io/kubernetes/test/e2e/kubectl/kubectl.go:1380\n github.com/onsi/ginkgo/v2/internal.extractBodyFunction.func2({0x5357590?, 0xc002b104e0?})\n github.com/onsi/ginkgo/v2@v2.21.0/internal/node.go:465\n github.com/onsi/ginkgo/v2/internal.(*Suite).runNode.func3()\n github.com/onsi/ginkgo/v2@v2.21.0/internal/suite.go:894\n github.com/onsi/ginkgo/v2/internal.(*Suite).runNode in goroutine 6404\n github.com/onsi/ginkgo/v2@v2.21.0/internal/suite.go:881\n \n Begin Additional Progress Reports \u003e\u003e\n fake error to block test\n \u003c\u003c End Additional Progress Reports\n ------------------------------\n {\"component\":\"entrypoint\",\"file\":\"sigs.k8s.io/prow/pkg/entrypoint/run.go:267\",\"func\":\"sigs.k8s.io/prow/pkg/entrypoint.gracefullyTerminate\",\"level\":\"error\",\"msg\":\"Process did not exit before 15m0s grace period\",\"severity\":\"error\",\"time\":\"2025-01-16T12:32:50Z\"}\n {\"component\":\"entrypoint\",\"error\":\"os: process already finished\",\"file\":\"sigs.k8s.io/prow/pkg/entrypoint/run.go:269\",\"func\":\"sigs.k8s.io/prow/pkg/entrypoint.gracefullyTerminate\",\"level\":\"error\",\"msg\":\"Could not kill process after grace period\",\"severity\":\"error\",\"time\":\"2025-01-16T12:32:50Z\"} ([#129545](https://github.com/kubernetes/kubernetes/pull/129545), [@pohly](https://github.com/pohly)) [SIG CLI, Node and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129545", - "pr_number": 129545, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli", - "node", - "testing" - ], - "duplicate": true, - "do_not_publish": true - }, - "129560": { - "commit": "481cc1a39217e1c058f6b2fb7517a8d03ee40382", - "text": "DRA: when asking for \"All\" devices on a node, Kubernetes \u003c= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the \"proceed with scheduling also without devices\" semantic can use the upcoming prioritized list feature with one sub-request for \"all\" devices and a second alternative with \"count: 0\".", - "markdown": "DRA: when asking for \"All\" devices on a node, Kubernetes \u003c= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the \"proceed with scheduling also without devices\" semantic can use the upcoming prioritized list feature with one sub-request for \"all\" devices and a second alternative with \"count: 0\". ([#129560](https://github.com/kubernetes/kubernetes/pull/129560), [@bart0sh](https://github.com/bart0sh)) [SIG API Machinery and Node]", - "author": "bart0sh", - "author_url": "https://github.com/bart0sh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129560", - "pr_number": 129560, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "node" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129568": { - "commit": "a8ef3639f9db66d8c894a880fd35a9cd011b2cb9", - "text": "--feature-gate=InOrderInformers (default on), causes informers to process watch streams in order as opposed to grouping updates for the same item close together. Binaries embedding client-go, but not wiring the featuregates can disable by setting the `KUBE_FEATURE_InOrderInformers=false`.", - "markdown": "--feature-gate=InOrderInformers (default on), causes informers to process watch streams in order as opposed to grouping updates for the same item close together. Binaries embedding client-go, but not wiring the featuregates can disable by setting the `KUBE_FEATURE_InOrderInformers=false`. ([#129568](https://github.com/kubernetes/kubernetes/pull/129568), [@deads2k](https://github.com/deads2k))", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129568", - "pr_number": 129568, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "129583": { - "commit": "a743616631aaa52fc16c5991349a8d0c9650cc83", - "text": "Promoted the feature gate `HonorPVReclaimPolicy` to GA.", - "markdown": "Promoted the feature gate `HonorPVReclaimPolicy` to GA. ([#129583](https://github.com/kubernetes/kubernetes/pull/129583), [@carlory](https://github.com/carlory)) [SIG Apps, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2644", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129583", - "pr_number": 129583, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "129589": { - "commit": "a31857681714780ce60562f87d40dc6cfbfdeda4", - "text": "kubeadm: removed the feature gate `EtcdLearnerMode` which graduated to GA in 1.32.", - "markdown": "kubeadm: removed the feature gate `EtcdLearnerMode` which graduated to GA in 1.32. ([#129589](https://github.com/kubernetes/kubernetes/pull/129589), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129589", - "pr_number": 129589, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "129591": { - "commit": "c9f695138b7a0319aec70aa6cb37b0846ff9b656", - "text": "kube-apiserver: Promoted the `ServiceAccountTokenNodeBinding` feature gate general availability. It is now locked to enabled.", - "markdown": "kube-apiserver: Promoted the `ServiceAccountTokenNodeBinding` feature gate general availability. It is now locked to enabled. ([#129591](https://github.com/kubernetes/kubernetes/pull/129591), [@liggitt](https://github.com/liggitt)) [SIG Auth and Testing]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129591", - "pr_number": 129591, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "129594": { - "commit": "e38489303019d442b87611182eb63c94d6e54f03", - "text": "kubeadm: fixed a bug where an image is not pulled if there is an error with the sandbox image from CRI.", - "markdown": "kubeadm: fixed a bug where an image is not pulled if there is an error with the sandbox image from CRI. ([#129594](https://github.com/kubernetes/kubernetes/pull/129594), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129594", - "pr_number": 129594, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "129620": { - "commit": "569d1896e6319ac36aad86ca9cb86a43b077018f", - "text": "kubeadm: graduated the `WaitForAllControlPlaneComponents` feature gate to Beta. When checking the health status of a control plane component, make sure that the address and port defined as arguments in the respective component's static Pod manifest are used.", - "markdown": "kubeadm: graduated the `WaitForAllControlPlaneComponents` feature gate to Beta. When checking the health status of a control plane component, make sure that the address and port defined as arguments in the respective component's static Pod manifest are used. ([#129620](https://github.com/kubernetes/kubernetes/pull/129620), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129620", - "pr_number": 129620, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "129630": { - "commit": "92eec10d14568a49a09f90a03a1f39b1fbf7485b", - "text": "Fixed in-tree to CSI migration for Portworx volumes, in clusters where Portworx security feature is enabled (it's a Portworx feature, not Kubernetes feature). It required secret data from the secret mentioned in-tree SC, to be passed in CSI requests which was not happening before this fix.", - "markdown": "Fixed in-tree to CSI migration for Portworx volumes, in clusters where Portworx security feature is enabled (it's a Portworx feature, not Kubernetes feature). It required secret data from the secret mentioned in-tree SC, to be passed in CSI requests which was not happening before this fix. ([#129630](https://github.com/kubernetes/kubernetes/pull/129630), [@gohilankit](https://github.com/gohilankit))", - "author": "gohilankit", - "author_url": "https://github.com/gohilankit", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129630", - "pr_number": 129630, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "129635": { - "commit": "a716ea756d87f60900dbbb500fc27ae30f7bd384", - "text": "Calculated pod resources are now cached when adding pods to NodeInfo in the scheduler framework, improving performance when processing unschedulable pods.", - "markdown": "Calculated pod resources are now cached when adding pods to NodeInfo in the scheduler framework, improving performance when processing unschedulable pods. ([#129635](https://github.com/kubernetes/kubernetes/pull/129635), [@macsko](https://github.com/macsko))", - "author": "macsko", - "author_url": "https://github.com/macsko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129635", - "pr_number": 129635, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "129644": { - "commit": "b92b3d33e2980d06bfc08883448c2151704d5011", - "text": "kubeadm: improved the `kubeadm reset` message for manual cleanups and referenced https://k8s.io/docs/reference/setup-tools/kubeadm/kubeadm-reset/.", - "markdown": "kubeadm: improved the `kubeadm reset` message for manual cleanups and referenced https://k8s.io/docs/reference/setup-tools/kubeadm/kubeadm-reset/. ([#129644](https://github.com/kubernetes/kubernetes/pull/129644), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129644", - "pr_number": 129644, - "areas": [ - "kubeadm" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "129653": { - "commit": "d7774fce9a7fcec890d7c0beffacd6ae34152b01", - "text": "The nftables mode of kube-proxy is now GA. (The iptables mode remains the\ndefault; you can select the nftables mode by passing `--proxy-mode nftables`\nor using a config file with `mode: nftables`. See the kube-proxy documentation\nfor more details.)", - "markdown": "The nftables mode of kube-proxy is now GA. (The iptables mode remains the\n default; you can select the nftables mode by passing `--proxy-mode nftables`\n or using a config file with `mode: nftables`. See the kube-proxy documentation\n for more details.) ([#129653](https://github.com/kubernetes/kubernetes/pull/129653), [@danwinship](https://github.com/danwinship))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/3866-nftables-proxy/README.md", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129653", - "pr_number": 129653, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "documentation", - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129656": { - "commit": "2bda5dd8c794d933145938affca30f012986e8fa", - "text": "Graduated the `KubeletFineGrainedAuthz` feature gate to beta; the gate is now enabled by default.", - "markdown": "Graduated the `KubeletFineGrainedAuthz` feature gate to beta; the gate is now enabled by default. ([#129656](https://github.com/kubernetes/kubernetes/pull/129656), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Auth, CLI, Node, Storage and Testing]", - "documentation": [ - { - "description": "-[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2862", - "type": "KEP" - } - ], - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129656", - "pr_number": 129656, - "areas": [ - "test", - "kubelet", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "cli", - "node", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "129658": { - "commit": "a78983906f4cf6f94029a3e6cf3171ef42b395d7", - "text": "Provides an additional function argument to directly specify the version for the tools that the consumers wished to use.", - "markdown": "Provides an additional function argument to directly specify the version for the tools that the consumers wished to use. ([#129658](https://github.com/kubernetes/kubernetes/pull/129658), [@unmarshall](https://github.com/unmarshall))", - "author": "unmarshall", - "author_url": "https://github.com/unmarshall", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129658", - "pr_number": 129658, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "129661": { - "commit": "488fac490463d9499ff22dc7500f2c93497417dc", - "text": "DRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete.", - "markdown": "DRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete. ([#129661](https://github.com/kubernetes/kubernetes/pull/129661), [@pohly](https://github.com/pohly))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129661", - "pr_number": 129661, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "129670": { - "commit": "2deb8af139c3fdf1097a9ac44e5dc22a9fb13dfe", - "text": "Fixed a bug where adding an ephemeral container to a pod which references a new secret or config map doesn't give the pod access to that new secret or config map. (#114984, @cslink)", - "markdown": "Fixed a bug where adding an ephemeral container to a pod which references a new secret or config map doesn't give the pod access to that new secret or config map. (#114984, @cslink) ([#129670](https://github.com/kubernetes/kubernetes/pull/129670), [@cslink](https://github.com/cslink))", - "author": "cslink", - "author_url": "https://github.com/cslink", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129670", - "pr_number": 129670, - "kinds": [ - "bug" - ], - "sigs": [ - "auth" - ], - "is_mapped": true - }, - "129688": { - "commit": "b8c95e1954ef222988c0dfe5b45d5cc96c09bcb8", - "text": "Kubernetes is now built with Go `1.24.0`.", - "markdown": "Kubernetes is now built with Go `1.24.0`. ([#129688](https://github.com/kubernetes/kubernetes/pull/129688), [@cpanato](https://github.com/cpanato)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling, Storage and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129688", - "pr_number": 129688, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "release-eng", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "release", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "129692": { - "commit": "ecbe8319f4df1148b6427a20b59bc3cec72a235d", - "text": "Removed generally available feature gate `KubeProxyDrainingTerminatingNodes`.", - "markdown": "Removed generally available feature gate `KubeProxyDrainingTerminatingNodes`. ([#129692](https://github.com/kubernetes/kubernetes/pull/129692), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", - "author": "alexanderConstantinescu", - "author_url": "https://github.com/alexanderConstantinescu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129692", - "pr_number": 129692, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "129713": { - "commit": "68b456b76fafc0f4ff0a63f031202743792823cd", - "text": "Graduated the `DisableNodeKubeProxyVersion` feature gate to enable by default, the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for its associated Node.", - "markdown": "Graduated the `DisableNodeKubeProxyVersion` feature gate to enable by default, the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for its associated Node. ([#129713](https://github.com/kubernetes/kubernetes/pull/129713), [@HirazawaUi](https://github.com/HirazawaUi))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4004-deprecate-kube-proxy-version", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129713", - "pr_number": 129713, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "129731": { - "commit": "fab0d7657410025ad36041141c27b2c5e2413b6f", - "text": "The `SidecarContainers` feature has graduated to GA. 'SidecarContainers' feature gate was locked to default value and will be removed in v1.36. If you were setting this feature gate explicitly, please remove it now.", - "markdown": "The `SidecarContainers` feature has graduated to GA. 'SidecarContainers' feature gate was locked to default value and will be removed in v1.36. If you were setting this feature gate explicitly, please remove it now. ([#129731](https://github.com/kubernetes/kubernetes/pull/129731), [@gjkim42](https://github.com/gjkim42)) [SIG Apps, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/753-sidecar-containers/README.md", - "type": "KEP" - } - ], - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129731", - "pr_number": 129731, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "129770": { - "commit": "0a0852914475447ba1fec39ff0370e79c17c7885", - "text": "Promoted the feature gate `AnyVolumeDataSource` to GA.", - "markdown": "Promoted the feature gate `AnyVolumeDataSource` to GA. ([#129770](https://github.com/kubernetes/kubernetes/pull/129770), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu)) [SIG Apps, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1495-volume-populators", - "type": "KEP" - } - ], - "author": "sunnylovestiramisu", - "author_url": "https://github.com/sunnylovestiramisu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129770", - "pr_number": 129770, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129776": { - "commit": "48dce2e9b3def93556cd7694edf22a74ecb34aa9", - "text": "Updated CNI plugins to `v1.6.2`.", - "markdown": "Updated CNI plugins to `v1.6.2`. ([#129776](https://github.com/kubernetes/kubernetes/pull/129776), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129776", - "pr_number": 129776, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "129790": { - "commit": "052d7a5310b0bab58f81519253e08f456f39e8f3", - "text": "Fixed the bug where Events failed to be created when the referenced object name was not a valid Event name. Now, a UUID is used as the name instead of the referenced object name and the timestamp suffix.", - "markdown": "Fixed the bug where Events failed to be created when the referenced object name was not a valid Event name. Now, a UUID is used as the name instead of the referenced object name and the timestamp suffix. ([#129790](https://github.com/kubernetes/kubernetes/pull/129790), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129790", - "pr_number": 129790, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "129816": { - "commit": "76506f1d871f19333fa548b45ccb78db407c2c8c", - "text": "kube-apiserver: `--service-account-max-token-expiration` can now be used in combination with an external token signer `--service-account-signing-endpoint`, as long as the `--service-account-max-token-expiration` is not longer than the external token signer's max expiration.", - "markdown": "kube-apiserver: `--service-account-max-token-expiration` can now be used in combination with an external token signer `--service-account-signing-endpoint`, as long as the `--service-account-max-token-expiration` is not longer than the external token signer's max expiration. ([#129816](https://github.com/kubernetes/kubernetes/pull/129816), [@sambdavidson](https://github.com/sambdavidson)) [SIG API Machinery and Auth]", - "author": "sambdavidson", - "author_url": "https://github.com/sambdavidson", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129816", - "pr_number": 129816, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "is_mapped": true - }, - "129823": { - "commit": "fc268ecd09c83c564868dbca1984b9ff2c654482", - "text": "DRA: the explanation for why a pod which wasn't using ResourceClaims was unscheduleable included a useless \"no new claims to deallocate\" when it was unscheduleable for some other reasons.", - "markdown": "DRA: the explanation for why a pod which wasn't using ResourceClaims was unscheduleable included a useless \"no new claims to deallocate\" when it was unscheduleable for some other reasons. ([#129823](https://github.com/kubernetes/kubernetes/pull/129823), [@googs1025](https://github.com/googs1025)) [SIG Node and Scheduling]", - "author": "googs1025", - "author_url": "https://github.com/googs1025", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129823", - "pr_number": 129823, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node", - "scheduling" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129826": { - "commit": "e9a3d99f3743117a161828f5f92d99ac1033d470", - "text": "kubelet no longer logs multiple errors when running on a system with no iptables binaries installed.", - "markdown": "kubelet no longer logs multiple errors when running on a system with no iptables binaries installed. ([#129826](https://github.com/kubernetes/kubernetes/pull/129826), [@danwinship](https://github.com/danwinship)) [SIG Network and Node]", - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129826", - "pr_number": 129826, - "areas": [ - "kubelet", - "kube-proxy", - "ipvs" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "129832": { - "commit": "64621d17a6b36ac546fa0af4fde9eb976a39b477", - "text": "kubelet + DRA: For DRA driver plugins (and only for those!), the kubelet now supports a rolling update with `maxSurge \u003e 0` in the driver's DaemonSet. A DRA driver must support this, which can be done via the k8s.io/dynamic-resource-allocation/kubeletplugin helper package.", - "markdown": "kubelet + DRA: For DRA driver plugins (and only for those!), the kubelet now supports a rolling update with `maxSurge \u003e 0` in the driver's DaemonSet. A DRA driver must support this, which can be done via the k8s.io/dynamic-resource-allocation/kubeletplugin helper package. ([#129832](https://github.com/kubernetes/kubernetes/pull/129832), [@pohly](https://github.com/pohly)) [SIG Node, Storage and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129832", - "pr_number": 129832, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "129844": { - "commit": "28ba942659a6fb8c8b9a22234176250fe004af06", - "text": "`cel-go` has been bumped to `v0.23.2`.", - "markdown": "`cel-go` has been bumped to `v0.23.2`. ([#129844](https://github.com/kubernetes/kubernetes/pull/129844), [@cici37](https://github.com/cici37)) [SIG API Machinery, Auth, Cloud Provider and Node]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129844", - "pr_number": 129844, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "129859": { - "commit": "6ef2458aaa32547a90c05b7a262577d0e52b8cbb", - "text": "kubeadm: fixed the bug where the `v1beta4` `Timeouts.EtcdAPICall` field was not respected in etcd client operations, and the default timeout of 2 minutes was always used.", - "markdown": "kubeadm: fixed the bug where the `v1beta4` `Timeouts.EtcdAPICall` field was not respected in etcd client operations, and the default timeout of 2 minutes was always used. ([#129859](https://github.com/kubernetes/kubernetes/pull/129859), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129859", - "pr_number": 129859, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "129872": { - "commit": "6f13ba03dac1865174b4edf2b43f6a0f453a8ac7", - "text": "Includes WebSockets HTTPS proxy support", - "markdown": "Includes WebSockets HTTPS proxy support ([#129872](https://github.com/kubernetes/kubernetes/pull/129872), [@seans3](https://github.com/seans3)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network and Node]", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129872", - "pr_number": 129872, - "areas": [ - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cli", - "cloud-provider", - "instrumentation", - "network", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "129887": { - "commit": "58704903c5f3616967ea9e71cb173d7a44868aa3", - "text": "Changed the error message displayed when a pod is trying to attach a volume that does not match the label/selector from \"x node(s) had volume node affinity conflict\" to \"x node(s) didn't match PersistentVolume's node affinity\".", - "markdown": "Changed the error message displayed when a pod is trying to attach a volume that does not match the label/selector from \"x node(s) had volume node affinity conflict\" to \"x node(s) didn't match PersistentVolume's node affinity\". ([#129887](https://github.com/kubernetes/kubernetes/pull/129887), [@rhrmo](https://github.com/rhrmo)) [SIG Scheduling and Storage]", - "author": "rhrmo", - "author_url": "https://github.com/rhrmo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129887", - "pr_number": 129887, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling", - "storage" - ], - "duplicate": true, - "is_mapped": true - }, - "129893": { - "commit": "26b1d3424ae9b91622a2968fb69831df7ef0e1cc", - "text": "Fixed compressed kubelet log file permissions to use uncompressed kubelet log file permissions.", - "markdown": "Fixed compressed kubelet log file permissions to use uncompressed kubelet log file permissions. ([#129893](https://github.com/kubernetes/kubernetes/pull/129893), [@simonfogliato](https://github.com/simonfogliato))", - "author": "simonfogliato", - "author_url": "https://github.com/simonfogliato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129893", - "pr_number": 129893, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "129923": { - "commit": "8de738e3365763a64b0dabe82fa91fb34ea856c8", - "text": "Disabled the git-repo volume plugin by default, with the option to re-enable it.", - "markdown": "Disabled the git-repo volume plugin by default, with the option to re-enable it. ([#129923](https://github.com/kubernetes/kubernetes/pull/129923), [@vinayakankugoyal](https://github.com/vinayakankugoyal))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5040", - "type": "KEP" - } - ], - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129923", - "pr_number": 129923, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true, - "is_mapped": true - }, - "129929": { - "commit": "9a03243789677637762eb0f907e1b4e45a0136c1", - "text": "The `SeparateCacheWatchRPC` feature gate is deprecated and disabled by default.", - "markdown": "The `SeparateCacheWatchRPC` feature gate is deprecated and disabled by default. ([#129929](https://github.com/kubernetes/kubernetes/pull/129929), [@serathius](https://github.com/serathius)) [SIG API Machinery]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129929", - "pr_number": 129929, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "129930": { - "commit": "925cf7db71c5e36072f99e8b7129523f659ee3a1", - "text": "The `WatchFromStorageWithoutResourceVersion` feature was deprecated and can no longer be enabled.", - "markdown": "The `WatchFromStorageWithoutResourceVersion` feature was deprecated and can no longer be enabled. ([#129930](https://github.com/kubernetes/kubernetes/pull/129930), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129930", - "pr_number": 129930, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "129933": { - "commit": "7a8a4c201ace91b95b1a25a17cf0d1ed7e4dd7d6", - "text": "Flipped `StorageNamespaceIndex` feature gate to `false` and deprecated it.", - "markdown": "Flipped `StorageNamespaceIndex` feature gate to `false` and deprecated it. ([#129933](https://github.com/kubernetes/kubernetes/pull/129933), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129933", - "pr_number": 129933, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "129934": { - "commit": "e2b0cfa3a1fb2c425a975b8c6ba0e9509bd35452", - "text": "Graduated `BtreeWatchCache` feature gate to GA.", - "markdown": "Graduated `BtreeWatchCache` feature gate to GA. ([#129934](https://github.com/kubernetes/kubernetes/pull/129934), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129934", - "pr_number": 129934, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "129946": { - "commit": "a552570d2c0d5a2589c402695c74e1a85deed617", - "text": "Fixed a regression in 1.32 that prevented pods with `postStart` hooks from starting.", - "markdown": "Fixed a regression in 1.32 that prevented pods with `postStart` hooks from starting. ([#129946](https://github.com/kubernetes/kubernetes/pull/129946), [@alex-petrov-vt](https://github.com/alex-petrov-vt))", - "author": "alex-petrov-vt", - "author_url": "https://github.com/alex-petrov-vt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129946", - "pr_number": 129946, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "129950": { - "commit": "05bfdbc6ddba7f41295fed61555d626b310926e4", - "text": "Add metrics to expose the main known reasons for resource alingment errors", - "markdown": "Add metrics to expose the main known reasons for resource alingment errors ([#129950](https://github.com/kubernetes/kubernetes/pull/129950), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129950", - "pr_number": 129950, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129954": { - "commit": "2499a2c0a0f61f259156925cdd25dfb65df334f1", - "text": "Start reporting swap capacity as part of `node.status.nodeSystemInfo`.", - "markdown": "Start reporting swap capacity as part of `node.status.nodeSystemInfo`. ([#129954](https://github.com/kubernetes/kubernetes/pull/129954), [@iholder101](https://github.com/iholder101)) [SIG API Machinery, Apps and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md", - "type": "KEP" - } - ], - "author": "iholder101", - "author_url": "https://github.com/iholder101", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129954", - "pr_number": 129954, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129956": { - "commit": "d2ad0cc7c05ee8a9a713b7a48accf2b5593d0350", - "text": "kubeadm: Promoted the feature gate `ControlPlaneKubeletLocalMode` to Beta. By default, Kubeadm will use the local kube-apiserver endpoint for the kubelet when creating a cluster with `kubeadm init` or when joining control plane nodes with `kubeadm join`. Enabling the feature gate also affects the `kubeadm init phase kubeconfig kubelet` phase, where the flag `--control-plane-endpoint` no longer affects the generated kubeconfig `Server` field, but the flag `--apiserver-advertise-address` can now be used for the same purpose.", - "markdown": "kubeadm: Promoted the feature gate `ControlPlaneKubeletLocalMode` to Beta. By default, Kubeadm will use the local kube-apiserver endpoint for the kubelet when creating a cluster with `kubeadm init` or when joining control plane nodes with `kubeadm join`. Enabling the feature gate also affects the `kubeadm init phase kubeconfig kubelet` phase, where the flag `--control-plane-endpoint` no longer affects the generated kubeconfig `Server` field, but the flag `--apiserver-advertise-address` can now be used for the same purpose. ([#129956](https://github.com/kubernetes/kubernetes/pull/129956), [@chrischdi](https://github.com/chrischdi))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/bcd6c468b88903b49d1784a9364516142a8e83f9/keps/sig-cluster-lifecycle/kubeadm/4471-cp-join-kubelet-local-apiserver/README.md", - "type": "KEP" - } - ], - "author": "chrischdi", - "author_url": "https://github.com/chrischdi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129956", - "pr_number": 129956, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "129970": { - "commit": "070f0ad3bdfc17da90defdb45bb644aaf07dd43e", - "text": "The `resource.k8s.io/v1beta1` API is deprecated and will be removed in 1.36. Use `v1beta2` instead.", - "markdown": "The `resource.k8s.io/v1beta1` API is deprecated and will be removed in 1.36. Use `v1beta2` instead. ([#129970](https://github.com/kubernetes/kubernetes/pull/129970), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing]", - "author": "mortent", - "author_url": "https://github.com/mortent", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129970", - "pr_number": 129970, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "etcd", - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "129993": { - "commit": "7b38ff48af860a0348c1db860636ed478ca63d3d", - "text": "Fixed a regression with the `ServiceAccountNodeAudienceRestriction` feature where `azureFile` volumes encountered 'failed to get service account token attributes' errors.", - "markdown": "Fixed a regression with the `ServiceAccountNodeAudienceRestriction` feature where `azureFile` volumes encountered 'failed to get service account token attributes' errors. ([#129993](https://github.com/kubernetes/kubernetes/pull/129993), [@aramase](https://github.com/aramase)) [SIG Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129993", - "pr_number": 129993, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "129996": { - "commit": "1e38c868936137a89c4f47075ed229e0b68f341e", - "text": "The response from kube-apiserver's `/flagz` endpoint would respond correctly with parsed flags value.", - "markdown": "The response from kube-apiserver's `/flagz` endpoint would respond correctly with parsed flags value. ([#129996](https://github.com/kubernetes/kubernetes/pull/129996), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Instrumentation and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", - "type": "KEP" - } - ], - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129996", - "pr_number": 129996, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "architecture", - "instrumentation", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "130007": { - "commit": "c766a52356a277da5e9f29f77aab5212f1b083c6", - "text": "A new alpha feature gate, `MutableCSINodeAllocatableCount`, has been introduced.\n\nWhen this feature gate is enabled, the `CSINode.Spec.Drivers[*].Allocatable.Count` field becomes mutable, and a new field, `NodeAllocatableUpdatePeriodSeconds`, is available in the `CSIDriver` object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on.", - "markdown": "A new alpha feature gate, `MutableCSINodeAllocatableCount`, has been introduced.\n \n When this feature gate is enabled, the `CSINode.Spec.Drivers[*].Allocatable.Count` field becomes mutable, and a new field, `NodeAllocatableUpdatePeriodSeconds`, is available in the `CSIDriver` object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. ([#130007](https://github.com/kubernetes/kubernetes/pull/130007), [@torredil](https://github.com/torredil)) [SIG Apps, Node, Scheduling and Storage]", - "author": "torredil", - "author_url": "https://github.com/torredil", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130007", - "pr_number": 130007, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "node", - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130013": { - "commit": "bff54e4020a273feff6da2dfffc4ade4200e9200", - "text": "Promoted the `CRDValidationRatcheting` feature gate to GA in 1.33", - "markdown": "Promoted the `CRDValidationRatcheting` feature gate to GA in 1.33 ([#130013](https://github.com/kubernetes/kubernetes/pull/130013), [@yongruilin](https://github.com/yongruilin))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4008", - "type": "external" - } - ], - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130013", - "pr_number": 130013, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "130017": { - "commit": "ee22760391bae28954a69dff499d1cead9a9fcf0", - "text": "NodeRestriction admission now validates that the audience value, the kubelet requested a service account token for, is part of the pod spec volume. The kube-apiserver featuregate `ServiceAccountNodeAudienceRestriction` is enabled by default in 1.33.", - "markdown": "NodeRestriction admission now validates that the audience value, the kubelet requested a service account token for, is part of the pod spec volume. The kube-apiserver featuregate `ServiceAccountNodeAudienceRestriction` is enabled by default in 1.33. ([#130017](https://github.com/kubernetes/kubernetes/pull/130017), [@aramase](https://github.com/aramase))", - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130017", - "pr_number": 130017, - "kinds": [ - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true, - "is_mapped": true - }, - "130019": { - "commit": "23d63770284cb30a2eb90b79ace0f1c7e32fb16f", - "text": "Update `/version` response to report binary version information separate from compatibility version", - "markdown": "Update `/version` response to report binary version information separate from compatibility version ([#130019](https://github.com/kubernetes/kubernetes/pull/130019), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Release and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/4330-compatibility-versions/README.md", - "type": "KEP" - } - ], - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130019", - "pr_number": 130019, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130023": { - "commit": "bd8532054c13d053eb2cbdc072e282459584c987", - "text": "kubeadm: `kubeadm upgrade plan` now supports `--etcd-upgrade` flag to control whether the etcd upgrade plan should be displayed. Add an `EtcdUpgrade` field into `UpgradeConfiguration.Plan` for v1beta4.", - "markdown": "kubeadm: `kubeadm upgrade plan` now supports `--etcd-upgrade` flag to control whether the etcd upgrade plan should be displayed. Add an `EtcdUpgrade` field into `UpgradeConfiguration.Plan` for v1beta4. ([#130023](https://github.com/kubernetes/kubernetes/pull/130023), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130023", - "pr_number": 130023, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "130028": { - "commit": "4467dd3d6c21e88258fd9eefe9b512a5e86829c2", - "text": "kubelet: added `KubeletConfiguration.subidsPerPod`.", - "markdown": "kubelet: added `KubeletConfiguration.subidsPerPod`. ([#130028](https://github.com/kubernetes/kubernetes/pull/130028), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG API Machinery and Node]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/127", - "type": "KEP" - } - ], - "author": "AkihiroSuda", - "author_url": "https://github.com/AkihiroSuda", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130028", - "pr_number": 130028, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130032": { - "commit": "994a46907fe09e03a01012e9439b9c1eeda21a6e", - "text": "kube-proxy: Fixed a potential memory leak that could occur in clusters with a high volume of UDP workflows.", - "markdown": "kube-proxy: Fixed a potential memory leak that could occur in clusters with a high volume of UDP workflows. ([#130032](https://github.com/kubernetes/kubernetes/pull/130032), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130032", - "pr_number": 130032, - "areas": [ - "kube-proxy", - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "130033": { - "commit": "990b02bf3952a14249fe74add831a5bb02576995", - "text": "Adding resource completion in kubectl debug command", - "markdown": "Adding resource completion in kubectl debug command ([#130033](https://github.com/kubernetes/kubernetes/pull/130033), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130033", - "pr_number": 130033, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "130035": { - "commit": "b38bf6c312ae2bde2565060236901307accd8440", - "text": "Added an alpha feature gate `OrderedNamespaceDeletion`. When enabled, the pods resources are deleted before all other resources during namespace deletion.", - "markdown": "Added an alpha feature gate `OrderedNamespaceDeletion`. When enabled, the pods resources are deleted before all other resources during namespace deletion. ([#130035](https://github.com/kubernetes/kubernetes/pull/130035), [@cici37](https://github.com/cici37)) [SIG API Machinery, Apps and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5080", - "type": "KEP" - } - ], - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130035", - "pr_number": 130035, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130037": { - "commit": "d1126b66cb06e4f67cc1612ff32da51e8541e01b", - "text": "Fixed `SELinuxWarningController` defaults when running kube-controller-manager in a container.", - "markdown": "Fixed `SELinuxWarningController` defaults when running kube-controller-manager in a container. ([#130037](https://github.com/kubernetes/kubernetes/pull/130037), [@jsafrane](https://github.com/jsafrane)) [SIG Apps and Storage]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling", - "type": "KEP" - } - ], - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130037", - "pr_number": 130037, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130040": { - "commit": "e30c8a3ddee009e7de2d21d69d12f159f74c2e16", - "text": "kubeadm: Improved `kubeadm init` and `kubeadm join` to provide consistent error messages when the kubelet failed or when failed to wait for control plane components.", - "markdown": "kubeadm: Improved `kubeadm init` and `kubeadm join` to provide consistent error messages when the kubelet failed or when failed to wait for control plane components. ([#130040](https://github.com/kubernetes/kubernetes/pull/130040), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130040", - "pr_number": 130040, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "130045": { - "commit": "3e4e2437e4f919421aa9919bbe1e3e38a2728408", - "text": "kubeadm: Added preflight check for `cp` on Linux nodes and `xcopy` on Windows nodes. These binaries are required for kubeadm to work properly.", - "markdown": "kubeadm: Added preflight check for `cp` on Linux nodes and `xcopy` on Windows nodes. These binaries are required for kubeadm to work properly. ([#130045](https://github.com/kubernetes/kubernetes/pull/130045), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130045", - "pr_number": 130045, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "130047": { - "commit": "77667834b072db7e26a69d78c5e9f3181e12959f", - "text": "Extended the kube-apiserver loopback client certificate validity to 14 months to align with the updated Kubernetes support lifecycle.", - "markdown": "Extended the kube-apiserver loopback client certificate validity to 14 months to align with the updated Kubernetes support lifecycle. ([#130047](https://github.com/kubernetes/kubernetes/pull/130047), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery and Auth]", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130047", - "pr_number": 130047, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130058": { - "commit": "fbdf8905ea251f15120426fa308596dedafbdee0", - "text": "Introduced the `LegacySidecarContainers` feature gate enabling the legacy code path that predates the `SidecarContainers` feature. This temporary feature gate is disabled by default, only available in v1.33, and will be removed in v1.34.", - "markdown": "Introduced the `LegacySidecarContainers` feature gate enabling the legacy code path that predates the `SidecarContainers` feature. This temporary feature gate is disabled by default, only available in v1.33, and will be removed in v1.34. ([#130058](https://github.com/kubernetes/kubernetes/pull/130058), [@gjkim42](https://github.com/gjkim42))", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130058", - "pr_number": 130058, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130060": { - "commit": "ffad281e3eab096f87b53ae7e533469e513db4b2", - "text": "kube-apiserver: Fixed a bug where the `ResourceQuota` admission plugin did not respect any scope changes when a resource was updated, such as setting or unsetting the `terminationGracePeriodSeconds` field of an existing pod.", - "markdown": "kube-apiserver: Fixed a bug where the `ResourceQuota` admission plugin did not respect any scope changes when a resource was updated, such as setting or unsetting the `terminationGracePeriodSeconds` field of an existing pod. ([#130060](https://github.com/kubernetes/kubernetes/pull/130060), [@carlory](https://github.com/carlory)) [SIG API Machinery, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/986", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130060", - "pr_number": 130060, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "130061": { - "commit": "d04883c90c2dd6ae5d6fb827b315c5fdb40b1e4d", - "text": "Promoted the Job's `JobBackoffLimitPerIndex` feature-gate to stable.", - "markdown": "Promoted the Job's `JobBackoffLimitPerIndex` feature-gate to stable. ([#130061](https://github.com/kubernetes/kubernetes/pull/130061), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps, Architecture and Testing]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3850-backoff-limits-per-index-for-indexed-jobs", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130061", - "pr_number": 130061, - "areas": [ - "test", - "conformance", - "code-generation" - ], - "kinds": [ - "documentation", - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130098": { - "commit": "4f925a63a0d828bbb210824221c1a36f14af2929", - "text": "The v1 Endpoints API is now officially deprecated (though still fully supported). The API will not be removed, but all users should use the EndpointSlice API instead.", - "markdown": "The v1 Endpoints API is now officially deprecated (though still fully supported). The API will not be removed, but all users should use the EndpointSlice API instead. ([#130098](https://github.com/kubernetes/kubernetes/pull/130098), [@danwinship](https://github.com/danwinship)) [SIG API Machinery and Network]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4974", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130098", - "pr_number": 130098, - "areas": [ - "code-generation" - ], - "kinds": [ - "documentation", - "api-change", - "deprecation" - ], - "sigs": [ - "api-machinery", - "network" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130101": { - "commit": "5822bb52320747902750e4add316192f7344e542", - "text": "Various controllers that write out IP address or CIDR values to API objects now\nensure that they always write out the values in canonical form.", - "markdown": "Various controllers that write out IP address or CIDR values to API objects now\n ensure that they always write out the values in canonical form. ([#130101](https://github.com/kubernetes/kubernetes/pull/130101), [@danwinship](https://github.com/danwinship)) [SIG Apps, Network and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4858", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130101", - "pr_number": 130101, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "apps", - "network", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130113": { - "commit": "75909b89201386c8a555eadc79d14fb11f91747c", - "text": "Resolved a performance regression in default 1.31+ configurations, related to the `ConsistentListFromCache` feature, where rapid create/update API requests across different namespaces encounter increased latency.", - "markdown": "Resolved a performance regression in default 1.31+ configurations, related to the `ConsistentListFromCache` feature, where rapid create/update API requests across different namespaces encounter increased latency. ([#130113](https://github.com/kubernetes/kubernetes/pull/130113), [@AwesomePatrol](https://github.com/AwesomePatrol))", - "author": "AwesomePatrol", - "author_url": "https://github.com/AwesomePatrol", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130113", - "pr_number": 130113, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "130116": { - "commit": "4f3fd12bc1b667f6792a9d0fe68f3dc5900ca545", - "text": "KEP-3857: Recursive Read-only (RRO) mounts: promote to GA", - "markdown": "KEP-3857: Recursive Read-only (RRO) mounts: promote to GA ([#130116](https://github.com/kubernetes/kubernetes/pull/130116), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Apps, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3857", - "type": "KEP" - } - ], - "author": "AkihiroSuda", - "author_url": "https://github.com/AkihiroSuda", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130116", - "pr_number": 130116, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130128": { - "commit": "821bc2e15e3abadb996d477f2bfb59466cec01e0", - "text": "Promoted `RelaxedDNSSearchValidation` to beta, allowing for Pod search domains to be a single dot \".\" or contain an underscore \"_\".", - "markdown": "Promoted `RelaxedDNSSearchValidation` to beta, allowing for Pod search domains to be a single dot \".\" or contain an underscore \"_\". ([#130128](https://github.com/kubernetes/kubernetes/pull/130128), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network]", - "author": "adrianmoisey", - "author_url": "https://github.com/adrianmoisey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130128", - "pr_number": 130128, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "network" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130133": { - "commit": "83d33a927a27e3800459ce0fb4771a6852ae812f", - "text": "Add metrics to track allocation of Uncore (aka last-level aka L3) Cache blocks", - "markdown": "Add metrics to track allocation of Uncore (aka last-level aka L3) Cache blocks ([#130133](https://github.com/kubernetes/kubernetes/pull/130133), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130133", - "pr_number": 130133, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "130135": { - "commit": "7b6c56e5fb530c80e3510977a752be5ce6e23a27", - "text": "Graduated image volume sources to beta:\n - Allowed `subPath`/`subPathExpr` for image volumes\n - Added kubelet metrics `kubelet_image_volume_requested_total`, `kubelet_image_volume_mounted_succeed_total` and `kubelet_image_volume_mounted_errors_total`", - "markdown": "Graduated image volume sources to beta:\n - Allowed `subPath`/`subPathExpr` for image volumes\n - Added kubelet metrics `kubelet_image_volume_requested_total`, `kubelet_image_volume_mounted_succeed_total` and `kubelet_image_volume_mounted_errors_total` ([#130135](https://github.com/kubernetes/kubernetes/pull/130135), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Apps, Node and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/4639", - "type": "KEP" - } - ], - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130135", - "pr_number": 130135, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130138": { - "commit": "761f5646be17737c46ad870b81c854616b62fed9", - "text": "Enabled user namespaces support (feature gate `UserNamespacesSupport`) by default.", - "markdown": "Enabled user namespaces support (feature gate `UserNamespacesSupport`) by default. ([#130138](https://github.com/kubernetes/kubernetes/pull/130138), [@rata](https://github.com/rata)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/2e2f53025277c2725976eb30076a6834049afa40/keps/sig-node/127-user-namespaces/README.md", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/", - "type": "official" - }, - { - "description": "[Other doc]", - "url": "https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/", - "type": "official" - } - ], - "author": "rata", - "author_url": "https://github.com/rata", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130138", - "pr_number": 130138, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130162": { - "commit": "9a2a278a20d8b10a34809097a9a5e4e62a9cd9ef", - "text": "1. kube-apiserver: removed the deprecated the `--cloud-provider` and `--cloud-config` CLI parameters.\n2. removed generally available feature-gate `DisableCloudProviders` and `DisableKubeletCloudCredentialProviders`", - "markdown": "1. kube-apiserver: removed the deprecated the `--cloud-provider` and `--cloud-config` CLI parameters.\n 2. removed generally available feature-gate `DisableCloudProviders` and `DisableKubeletCloudCredentialProviders` ([#130162](https://github.com/kubernetes/kubernetes/pull/130162), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2395", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130162", - "pr_number": 130162, - "areas": [ - "test", - "apiserver", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "130181": { - "commit": "b14fad5adc4154065942102e68e7b4421cf7269a", - "text": "Changed metadata management for Pods to populate `.metadata.generation` on writes. New pods will have a `metadata.generation` of 1; updates to mutable fields in the Pod `.spec` will result in `metadata.generation` being incremented by 1.", - "markdown": "Changed metadata management for Pods to populate `.metadata.generation` on writes. New pods will have a `metadata.generation` of 1; updates to mutable fields in the Pod `.spec` will result in `metadata.generation` being incremented by 1. ([#130181](https://github.com/kubernetes/kubernetes/pull/130181), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/d85f53a0a668c07aed41b532e65c4c7ba508f28d/keps/sig-node/5067-pod-generation/README.md", - "type": "KEP" - } - ], - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130181", - "pr_number": 130181, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130183": { - "commit": "f90682bf42f747f98a99b9e5b0ae415b2504c338", - "text": "InPlacePodVerticalScaling: Memory limits cannot be decreased unless the memory resize restart policy is set to `RestartContainer`. Container resizePolicy is no longer mutable.", - "markdown": "InPlacePodVerticalScaling: Memory limits cannot be decreased unless the memory resize restart policy is set to `RestartContainer`. Container resizePolicy is no longer mutable. ([#130183](https://github.com/kubernetes/kubernetes/pull/130183), [@tallclair](https://github.com/tallclair)) [SIG Apps and Node]", - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130183", - "pr_number": 130183, - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130189": { - "commit": "609bf0020142256778818b3a9133bcf924d235bc", - "text": "If scheduling fails on PreBind or Bind, scheduler will retry the failed pod immediately after backoff time, regardless of the reason for failing. In this case EventsToRegister (QHints) will not be taken into consideration before retry.", - "markdown": "If scheduling fails on PreBind or Bind, scheduler will retry the failed pod immediately after backoff time, regardless of the reason for failing. In this case EventsToRegister (QHints) will not be taken into consideration before retry. ([#130189](https://github.com/kubernetes/kubernetes/pull/130189), [@ania-borowiec](https://github.com/ania-borowiec))", - "author": "ania-borowiec", - "author_url": "https://github.com/ania-borowiec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130189", - "pr_number": 130189, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "130200": { - "commit": "05ab777e288d6c19bac46082a877727f1df253e1", - "text": "`kubeproxy_conntrack_reconciler_sync_duration_seconds` metric can now be used to track conntrack reconciliation latency.", - "markdown": "`kubeproxy_conntrack_reconciler_sync_duration_seconds` metric can now be used to track conntrack reconciliation latency. ([#130200](https://github.com/kubernetes/kubernetes/pull/130200), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130200", - "pr_number": 130200, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "is_mapped": true - }, - "130202": { - "commit": "0d996fee31ba1c65bab36078411a34990642ae75", - "text": "kubeadm: fixed panic when no UpgradeConfiguration was found in the config file.", - "markdown": "kubeadm: fixed panic when no UpgradeConfiguration was found in the config file. ([#130202](https://github.com/kubernetes/kubernetes/pull/130202), [@SataQiu](https://github.com/SataQiu))", - "author": "SataQiu", - "author_url": "https://github.com/SataQiu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130202", - "pr_number": 130202, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "130204": { - "commit": "87fcae2bc765e4f752bcf7dfbd0c57f75ec751a3", - "text": "`kubeproxy_conntrack_reconciler_deleted_entries_total` metric can be used to track cumulative sum of conntrack flows cleared by reconciler.", - "markdown": "`kubeproxy_conntrack_reconciler_deleted_entries_total` metric can be used to track cumulative sum of conntrack flows cleared by reconciler. ([#130204](https://github.com/kubernetes/kubernetes/pull/130204), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130204", - "pr_number": 130204, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "is_mapped": true - }, - "130210": { - "commit": "451d032915f290610183bef4ada81eee42892767", - "text": "KEP-3619: fined-grained supplemental groups policy is graduated to Beta. Note that kubelet now rejects pods with `.spec.securityContext.supplementalGroupsPolicy: Strict` when scheduled to the node that does not support the feature (`.status.features.supplementalGroupsPolicy: false`).", - "markdown": "KEP-3619: fined-grained supplemental groups policy is graduated to Beta. Note that kubelet now rejects pods with `.spec.securityContext.supplementalGroupsPolicy: Strict` when scheduled to the node that does not support the feature (`.status.features.supplementalGroupsPolicy: false`). ([#130210](https://github.com/kubernetes/kubernetes/pull/130210), [@everpeace](https://github.com/everpeace)) [SIG Apps, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3619-supplemental-groups-policy", - "type": "KEP" - } - ], - "author": "everpeace", - "author_url": "https://github.com/everpeace", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130210", - "pr_number": 130210, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130225": { - "commit": "2b79593ececcb94e408d0bbf55812c2b402a84f5", - "text": "DRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the `kubernetes.io/dra-admin-access` label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the `adminAccess` field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs.", - "markdown": "DRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the `kubernetes.io/dra-admin-access` label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the `adminAccess` field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs. ([#130225](https://github.com/kubernetes/kubernetes/pull/130225), [@ritazh](https://github.com/ritazh)) [SIG API Machinery, Apps, Auth, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5018", - "type": "KEP" - } - ], - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130225", - "pr_number": 130225, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130233": { - "commit": "94cc4babc2b3c73c7e5fe4edee4a011163addba0", - "text": "Validation now requires new StatefulSets with a `.spec.serviceName` field value to pass DNS1123 validation. Previously created StatefulSets with an invalid `.spec.serviceName` field value could not create any pods, and should be deleted.\n- Published OpenAPI for the StatefulSet schema is corrected to indicate the `.spec.serviceName` is optional.", - "markdown": "Validation now requires new StatefulSets with a `.spec.serviceName` field value to pass DNS1123 validation. Previously created StatefulSets with an invalid `.spec.serviceName` field value could not create any pods, and should be deleted.\n - Published OpenAPI for the StatefulSet schema is corrected to indicate the `.spec.serviceName` is optional. ([#130233](https://github.com/kubernetes/kubernetes/pull/130233), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps and Testing]", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130233", - "pr_number": 130233, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130238": { - "commit": "717d9f13f355539f2e8b58331e050e3155973db6", - "text": "Promoted kubectl `--subresource` flag to stable.", - "markdown": "Promoted kubectl `--subresource` flag to stable. ([#130238](https://github.com/kubernetes/kubernetes/pull/130238), [@soltysh](https://github.com/soltysh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2590", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130238", - "pr_number": 130238, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "130243": { - "commit": "1c9840c58eafc01ddec038eb7fe2857120a2eb19", - "text": "Removed a warning related to Linux user namespaces and kernel version. Previously, if the feature gate `UserNamespacesSupport` was enabled, the kubelet warned when detecting a Linux kernel version earlier than 6.3.0. While user namespace support generally requires kernel 6.3 or newer, it can also work on older kernels.", - "markdown": "Removed a warning related to Linux user namespaces and kernel version. Previously, if the feature gate `UserNamespacesSupport` was enabled, the kubelet warned when detecting a Linux kernel version earlier than 6.3.0. While user namespace support generally requires kernel 6.3 or newer, it can also work on older kernels. ([#130243](https://github.com/kubernetes/kubernetes/pull/130243), [@rata](https://github.com/rata))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/127-user-namespaces/README.md", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/. Here I explained already why 6.3 _might_ be what most users need, but it is definitely not a requirement and older kernels can work just fine.", - "type": "official" - } - ], - "author": "rata", - "author_url": "https://github.com/rata", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130243", - "pr_number": 130243, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "130250": { - "commit": "917a5569810e626f20b06951ed0e3cbf9b618470", - "text": "Removed alpha support for Windows HostNetwork containers.", - "markdown": "Removed alpha support for Windows HostNetwork containers. ([#130250](https://github.com/kubernetes/kubernetes/pull/130250), [@marosset](https://github.com/marosset)) [SIG Network, Node and Windows]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/issues/3503", - "type": "KEP" - } - ], - "author": "marosset", - "author_url": "https://github.com/marosset", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130250", - "pr_number": 130250, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "node", - "windows" - ], - "duplicate": true, - "is_mapped": true - }, - "130256": { - "commit": "1aef26a7eb119418d7eb23e1a2a7fedca572730c", - "text": "Fixed a rare and sporadic network issues that occurred when the host was under heavy load.", - "markdown": "Fixed a rare and sporadic network issues that occurred when the host was under heavy load. ([#130256](https://github.com/kubernetes/kubernetes/pull/130256), [@adrianmoisey](https://github.com/adrianmoisey))", - "author": "adrianmoisey", - "author_url": "https://github.com/adrianmoisey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130256", - "pr_number": 130256, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug", - "flake" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "130260": { - "commit": "c7088e64378b0494e243e052c472d14c3d88e121", - "text": "The `BalancedAllocation` plugin now skips all best-effort (zero-requested) pods.", - "markdown": "The `BalancedAllocation` plugin now skips all best-effort (zero-requested) pods. ([#130260](https://github.com/kubernetes/kubernetes/pull/130260), [@Bowser1704](https://github.com/Bowser1704))", - "author": "Bowser1704", - "author_url": "https://github.com/Bowser1704", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130260", - "pr_number": 130260, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "130290": { - "commit": "dc6f70c12d57bf35541772d83f64f5caec9a4117", - "text": "Added a new option `strict-cpu-reservation` for CPU Manager static policy. When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly used for system daemons and interrupt processing no longer available for any workload.", - "markdown": "Added a new option `strict-cpu-reservation` for CPU Manager static policy. When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly used for system daemons and interrupt processing no longer available for any workload. ([#130290](https://github.com/kubernetes/kubernetes/pull/130290), [@psasnal](https://github.com/psasnal)) [SIG Node and Testing]", - "author": "psasnal", - "author_url": "https://github.com/psasnal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130290", - "pr_number": 130290, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130291": { - "commit": "ef1c659569409471b4bdfeb83ba69cb1772ed37d", - "text": "Introduced API type `coordination.k8s.io/v1beta1/LeaseCandidate`", - "markdown": "Introduced API type `coordination.k8s.io/v1beta1/LeaseCandidate` ([#130291](https://github.com/kubernetes/kubernetes/pull/130291), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Etcd and Testing]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130291", - "pr_number": 130291, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "etcd", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130328": { - "commit": "f876a7d469ccc535e9de13a62b7d4cc464a36b01", - "text": "The `/flagz` endpoint in kube-apiserver now correctly returns parsed flag values when the `ComponentFlagz` feature-gate is enabled.", - "markdown": "The `/flagz` endpoint in kube-apiserver now correctly returns parsed flag values when the `ComponentFlagz` feature-gate is enabled. ([#130328](https://github.com/kubernetes/kubernetes/pull/130328), [@richabanker](https://github.com/richabanker)) [SIG API Machinery and Instrumentation]", - "author": "richabanker", - "author_url": "https://github.com/richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130328", - "pr_number": 130328, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "130329": { - "commit": "ba7144910333a3b43a78c8a9925bfa10b11620e9", - "text": "No", - "markdown": "No ([#130329](https://github.com/kubernetes/kubernetes/pull/130329), [@zylxjtu](https://github.com/zylxjtu)) [SIG Testing and Windows]", - "author": "zylxjtu", - "author_url": "https://github.com/zylxjtu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130329", - "pr_number": 130329, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "testing", - "windows" - ], - "duplicate": true, - "do_not_publish": true - }, - "130335": { - "commit": "5227bad0df4ded599e17dc18a4f7e09e41aefdd9", - "text": "Fixed an issue where kubelet would unmount volumes of running pods upon restart if the referenced PVC was being deleted by the user.", - "markdown": "Fixed an issue where kubelet would unmount volumes of running pods upon restart if the referenced PVC was being deleted by the user. ([#130335](https://github.com/kubernetes/kubernetes/pull/130335), [@carlory](https://github.com/carlory)) [SIG Node, Storage and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130335", - "pr_number": 130335, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "130345": { - "commit": "eacb9beec194566226011a379c7b8ab0bfb1bc4b", - "text": "kubeadm: Use generic terminology in logs instead of direct mentions of YAML/JSON ", - "markdown": "kubeadm: Use generic terminology in logs instead of direct mentions of YAML/JSON ([#130345](https://github.com/kubernetes/kubernetes/pull/130345), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130345", - "pr_number": 130345, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "130347": { - "commit": "8906223b000d94ad3947c1582c5ba452c6766e6c", - "text": "`apidiscovery.k8s.io/v2beta1` API group is disabled by default", - "markdown": "`apidiscovery.k8s.io/v2beta1` API group is disabled by default ([#130347](https://github.com/kubernetes/kubernetes/pull/130347), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery and Testing]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130347", - "pr_number": 130347, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130348": { - "commit": "6025e23ab691286100ef6bb03c5c6a50461e88b7", - "text": "Fixed a regression in 1.32 where nodes could fail to report status and renew serving certificates after the kubelet restarted.", - "markdown": "Fixed a regression in 1.32 where nodes could fail to report status and renew serving certificates after the kubelet restarted. ([#130348](https://github.com/kubernetes/kubernetes/pull/130348), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130348", - "pr_number": 130348, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "130352": { - "commit": "2effa5e3cf92af7dbcff87822b3293354823f567", - "text": "When the `PodObservedGenerationTracking` feature gate was set, the kubelet populated `status.observedGeneration` to reflect the latest `metadata.generation` it observed for the pod.", - "markdown": "When the `PodObservedGenerationTracking` feature gate was set, the kubelet populated `status.observedGeneration` to reflect the latest `metadata.generation` it observed for the pod. ([#130352](https://github.com/kubernetes/kubernetes/pull/130352), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, CLI, Node, Release, Scheduling, Storage, Testing and Windows]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/5067", - "type": "external" - } - ], - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130352", - "pr_number": 130352, - "areas": [ - "test", - "kubelet", - "kubectl", - "release-eng", - "code-generation", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "cli", - "node", - "release", - "scheduling", - "storage", - "testing", - "windows" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130354": { - "commit": "8b08487283d563efa0bc849ac3a3701463bc49bd", - "text": "Added a new cli flag `--emulation-forward-compatible` \nAdded a new cli flag `--runtime-config-emulation-forward-compatible`", - "markdown": "Added a new cli flag `--emulation-forward-compatible` \nAdded a new cli flag `--runtime-config-emulation-forward-compatible` ([#130354](https://github.com/kubernetes/kubernetes/pull/130354), [@siyuanfoundation](https://github.com/siyuanfoundation)) [SIG API Machinery, Etcd and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4330", - "type": "KEP" - } - ], - "author": "siyuanfoundation", - "author_url": "https://github.com/siyuanfoundation", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130354", - "pr_number": 130354, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "etcd", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130394": { - "commit": "3985b78f062af889f10a0982226913eda9149c48", - "text": "Allowed `ImageVolume` for Restricted PSA profiles.", - "markdown": "Allowed `ImageVolume` for Restricted PSA profiles. ([#130394](https://github.com/kubernetes/kubernetes/pull/130394), [@Barakmor1](https://github.com/Barakmor1))", - "author": "Barakmor1", - "author_url": "https://github.com/Barakmor1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130394", - "pr_number": 130394, - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130398": { - "commit": "9fe95e7586c8778d3b33737a48b7fbf7fa6416f9", - "text": "Added progress tracking for volume permission and ownership changes.", - "markdown": "Added progress tracking for volume permission and ownership changes. ([#130398](https://github.com/kubernetes/kubernetes/pull/130398), [@gnufied](https://github.com/gnufied)) [SIG Node and Storage]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130398", - "pr_number": 130398, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "storage" - ], - "duplicate": true, - "is_mapped": true - }, - "130401": { - "commit": "60d0d67fefd62c05275b75bbaa5391754f1bca5e", - "text": "Fixed the behavior of the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable in the nftables proxier. The kernel version check is now skipped only when this variable is explicitly set to a non-empty value. To skip the check, set the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable.", - "markdown": "Fixed the behavior of the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable in the nftables proxier. The kernel version check is now skipped only when this variable is explicitly set to a non-empty value. To skip the check, set the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable. ([#130401](https://github.com/kubernetes/kubernetes/pull/130401), [@ryota-sakamoto](https://github.com/ryota-sakamoto))", - "author": "ryota-sakamoto", - "author_url": "https://github.com/ryota-sakamoto", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130401", - "pr_number": 130401, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "action_required": true, - "is_mapped": true - }, - "130405": { - "commit": "20cecaee97f34f874a84902bf8dbe2bc359db9f0", - "text": "The following roles have had `Watch` added to them (prefixed with `system:controller:`):\n\n- `cronjob-controller`\n- `endpoint-controller`\n- `endpointslice-controller`\n- `endpointslicemirroring-controller`\n- `horizontal-pod-autoscaler`\n- `node-controller`\n- `pod-garbage-collector`\n- `storage-version-migrator-controller`", - "markdown": "The following roles have had `Watch` added to them (prefixed with `system:controller:`):\n \n - `cronjob-controller`\n - `endpoint-controller`\n - `endpointslice-controller`\n - `endpointslicemirroring-controller`\n - `horizontal-pod-autoscaler`\n - `node-controller`\n - `pod-garbage-collector`\n - `storage-version-migrator-controller` ([#130405](https://github.com/kubernetes/kubernetes/pull/130405), [@kariya-mitsuru](https://github.com/kariya-mitsuru))", - "author": "kariya-mitsuru", - "author_url": "https://github.com/kariya-mitsuru", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130405", - "pr_number": 130405, - "kinds": [ - "bug" - ], - "sigs": [ - "auth" - ], - "is_mapped": true - }, - "130423": { - "commit": "aa35eff1b636f587f418f9cc16a020353735d125", - "text": "Added `ListFromCacheSnapshot` feature gate that allows apiserver to serve LISTs with exact RV and continuations from cache", - "markdown": "Added `ListFromCacheSnapshot` feature gate that allows apiserver to serve LISTs with exact RV and continuations from cache ([#130423](https://github.com/kubernetes/kubernetes/pull/130423), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd and Testing]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130423", - "pr_number": 130423, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "etcd", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130424": { - "commit": "39c640fe9051b60bacbacf47f64cb697fb807861", - "text": "NONE", - "markdown": "NONE ([#130424](https://github.com/kubernetes/kubernetes/pull/130424), [@ahrtr](https://github.com/ahrtr)) [SIG Etcd]", - "author": "ahrtr", - "author_url": "https://github.com/ahrtr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130424", - "pr_number": 130424, - "areas": [ - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "etcd" - ], - "feature": true, - "do_not_publish": true - }, - "130447": { - "commit": "ab3cec07014e58ef49050f953fb8426efbc85192", - "text": "DRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint.", - "markdown": "DRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint. ([#130447](https://github.com/kubernetes/kubernetes/pull/130447), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130447", - "pr_number": 130447, - "areas": [ - "test", - "kubelet", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "etcd", - "instrumentation", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130450": { - "commit": "c9d54b92ca8d52048e1d59deae9a6c4bb5ed9db7", - "text": "Fixed an issue in the CEL CIDR library where subnets contained within another CIDR were incorrectly rejected as not being contained.", - "markdown": "Fixed an issue in the CEL CIDR library where subnets contained within another CIDR were incorrectly rejected as not being contained. ([#130450](https://github.com/kubernetes/kubernetes/pull/130450), [@JoelSpeed](https://github.com/JoelSpeed))", - "author": "JoelSpeed", - "author_url": "https://github.com/JoelSpeed", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130450", - "pr_number": 130450, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "130463": { - "commit": "f1c634f93e8e64e7e404b0304ade437cac691696", - "text": "Graduate the `MatchLabelKeys` (MismatchLabelKeys) feature in PodAffinity (PodAntiAffinity) to GA", - "markdown": "Graduate the`MatchLabelKeys` (MismatchLabelKeys) feature in PodAffinity (PodAntiAffinity) to GA ([#130463](https://github.com/kubernetes/kubernetes/pull/130463), [@sanposhiho](https://github.com/sanposhiho)) [SIG API Machinery, Apps, Node, Scheduling and Testing]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130463", - "pr_number": 130463, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130475": { - "commit": "4c311c9fcf6a67c665127d67fb30cd602ba5b88d", - "text": "Added a mechanism that calculates a digest of etcd and the watch cache every 5 minutes and exposes it as the `apiserver_storage_digest` metric.", - "markdown": "Added a mechanism that calculates a digest of etcd and the watch cache every 5 minutes and exposes it as the `apiserver_storage_digest` metric. ([#130475](https://github.com/kubernetes/kubernetes/pull/130475), [@serathius](https://github.com/serathius)) [SIG API Machinery, Instrumentation and Testing]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130475", - "pr_number": 130475, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130484": { - "commit": "ca22563752f768a8f04a8ffa677f05d3cf6649d8", - "text": "Fixed a 1.32 regression kube-proxy, when using a Service with External or LoadBalancer IPs on UDP services , was consuming a large amount of CPU because it was not filtering by the Service destination port and trying to delete all the UDP entries associated to the service.", - "markdown": "Fixed a 1.32 regression kube-proxy, when using a Service with External or LoadBalancer IPs on UDP services , was consuming a large amount of CPU because it was not filtering by the Service destination port and trying to delete all the UDP entries associated to the service. ([#130484](https://github.com/kubernetes/kubernetes/pull/130484), [@aojea](https://github.com/aojea)) [SIG Network]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130484", - "pr_number": 130484, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "130485": { - "commit": "6216201e163073a0c1b9780640e9f17c8d56b769", - "text": "Allowed dynamic configuration of the service account name and audience that the kubelet could request a token for, as part of the node audience restriction feature.", - "markdown": "Allowed dynamic configuration of the service account name and audience that the kubelet could request a token for, as part of the node audience restriction feature. ([#130485](https://github.com/kubernetes/kubernetes/pull/130485), [@aramase](https://github.com/aramase)) [SIG Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130485", - "pr_number": 130485, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130491": { - "commit": "1039822a7432bdf822b6dc32f20100499ec7d22e", - "text": "Added metrics to capture CPU distribution across NUMA nodes", - "markdown": "Added metrics to capture CPU distribution across NUMA nodes ([#130491](https://github.com/kubernetes/kubernetes/pull/130491), [@swatisehgal](https://github.com/swatisehgal)) [SIG Node and Testing]", - "author": "swatisehgal", - "author_url": "https://github.com/swatisehgal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130491", - "pr_number": 130491, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "130507": { - "commit": "76b80b1c15567ee2191465e9654f1d5d2e593282", - "text": "Enabled the `OrderedNamespaceDeletion` feature gate by default.", - "markdown": "Enabled the `OrderedNamespaceDeletion` feature gate by default. ([#130507](https://github.com/kubernetes/kubernetes/pull/130507), [@cici37](https://github.com/cici37)) [SIG API Machinery and Apps]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130507", - "pr_number": 130507, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130535": { - "commit": "6bc352f6a9317b34cc52ac3094a441787efcc18a", - "text": "CPUManager Policy Options support is GA", - "markdown": "CPUManager Policy Options support is GA ([#130535](https://github.com/kubernetes/kubernetes/pull/130535), [@ffromani](https://github.com/ffromani)) [SIG API Machinery, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2625", - "type": "KEP" - } - ], - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130535", - "pr_number": 130535, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130536": { - "commit": "04fb7ac18bd86793304646e318802f58bb3dfe32", - "text": "Promoted the `JobSuccessPolicy` to Stable.", - "markdown": "Promoted the `JobSuccessPolicy` to Stable. ([#130536](https://github.com/kubernetes/kubernetes/pull/130536), [@tenzen-y](https://github.com/tenzen-y)) [SIG API Machinery, Apps, Architecture and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3998-job-success-completion-policy", - "type": "KEP" - } - ], - "author": "tenzen-y", - "author_url": "https://github.com/tenzen-y", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130536", - "pr_number": 130536, - "areas": [ - "test", - "conformance", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130537": { - "commit": "0f7becbc443966e5cf4ac37aa20a1a509fab73eb", - "text": "Scheduling Framework exposes NodeInfo to the ScorePlugin.", - "markdown": "Scheduling Framework exposes NodeInfo to the ScorePlugin. ([#130537](https://github.com/kubernetes/kubernetes/pull/130537), [@saintube](https://github.com/saintube)) [SIG Scheduling, Storage and Testing]", - "author": "saintube", - "author_url": "https://github.com/saintube", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130537", - "pr_number": 130537, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130541": { - "commit": "648620da0ebdc87af8053d564d648c12c6606231", - "text": "`DistributeCPUsAcrossNUMA` policy option is promoted to Beta.", - "markdown": "`DistributeCPUsAcrossNUMA` policy option is promoted to Beta. ([#130541](https://github.com/kubernetes/kubernetes/pull/130541), [@swatisehgal](https://github.com/swatisehgal)) [SIG Node]", - "author": "swatisehgal", - "author_url": "https://github.com/swatisehgal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130541", - "pr_number": 130541, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "130544": { - "commit": "6b8341fc2e1b220612ee0b40cb99a86f456bd253", - "text": "SELinuxChangePolicy and SELinuxMount graduated to Beta. SELinuxMount stays off by default.", - "markdown": "SELinuxChangePolicy and SELinuxMount graduated to Beta. SELinuxMount stays off by default. ([#130544](https://github.com/kubernetes/kubernetes/pull/130544), [@jsafrane](https://github.com/jsafrane)) [SIG Auth, Node and Storage]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/jsafrane/enhancements/blob/selinux-rename-metrics/keps/sig-storage/1710-selinux-relabeling/README.md", - "type": "external" - } - ], - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130544", - "pr_number": 130544, - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "node", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130550": { - "commit": "83f8513db86649c5dfde1e1f287b867f9da418ee", - "text": "Graduated the asynchronous preemption feature in the scheduler to beta. \nNow the feature flag (SchedulerAsyncPreemption) is enabled by default.", - "markdown": "Graduated the asynchronous preemption feature in the scheduler to beta. \nNow the feature flag (SchedulerAsyncPreemption) is enabled by default. ([#130550](https://github.com/kubernetes/kubernetes/pull/130550), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130550", - "pr_number": 130550, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "130553": { - "commit": "94d66387d0ff7e8f82b5177f189baa3c12670849", - "text": "kube-apiserver: the `StorageObjectInUseProtection` admission plugin added the `kubernetes.io/vac-protection` finalizer to the given VolumeAttributesClass object when it is created if the feature-gate `VolumeAttributesClass` is turned on and `storage.k8s.io/v1beta1` is enabled.", - "markdown": "kube-apiserver: the `StorageObjectInUseProtection` admission plugin added the `kubernetes.io/vac-protection` finalizer to the given VolumeAttributesClass object when it is created if the feature-gate `VolumeAttributesClass` is turned on and `storage.k8s.io/v1beta1` is enabled. ([#130553](https://github.com/kubernetes/kubernetes/pull/130553), [@Phaow](https://github.com/Phaow)) [SIG Storage and Testing]", - "author": "Phaow", - "author_url": "https://github.com/Phaow", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130553", - "pr_number": 130553, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130556": { - "commit": "ff25881bc1fe9da1dda4ec82d294b92078ae2763", - "text": "Added support for configuring custom stop signals with a new StopSignal container lifecycle", - "markdown": "Added support for configuring custom stop signals with a new StopSignal container lifecycle ([#130556](https://github.com/kubernetes/kubernetes/pull/130556), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG API Machinery, Apps, Node and Testing]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/4960", - "type": "KEP" - } - ], - "author": "sreeram-venkitesh", - "author_url": "https://github.com/sreeram-venkitesh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130556", - "pr_number": 130556, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130559": { - "commit": "f5101231837cd3bdff420e04905024b5cd14e802", - "text": "Fixed a bug in the exclusive assignment availability check for the `InPlacePodVerticalScalingExclusiveCPUs` feature gate.", - "markdown": "Fixed a bug in the exclusive assignment availability check for the `InPlacePodVerticalScalingExclusiveCPUs` feature gate. ([#130559](https://github.com/kubernetes/kubernetes/pull/130559), [@esotsal](https://github.com/esotsal))", - "author": "esotsal", - "author_url": "https://github.com/esotsal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130559", - "pr_number": 130559, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "130560": { - "commit": "8312d8e85eb7e9590a0bf2e31dd6295b0486ac0c", - "text": "The `RemoteRequestHeaderUID` feature moves to beta and is now enabled by default. This makes the kube-apiserver propagate UIDs in the `X-Remote-Uid` header in requests to the aggregated API servers. The header is not honored by default for incoming requests, but that can be enabled by setting the `--requestheader-uid-headers` flag explicitly.", - "markdown": "The `RemoteRequestHeaderUID` feature moves to beta and is now enabled by default. This makes the kube-apiserver propagate UIDs in the `X-Remote-Uid` header in requests to the aggregated API servers. The header is not honored by default for incoming requests, but that can be enabled by setting the `--requestheader-uid-headers` flag explicitly. ([#130560](https://github.com/kubernetes/kubernetes/pull/130560), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Auth and Testing]", - "author": "stlaz", - "author_url": "https://github.com/stlaz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130560", - "pr_number": 130560, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130564": { - "commit": "8873c7e875bd3d1ba7c6351739f30ee7c62700f2", - "text": "Endpoints resources created by the Endpoints controller now include a label indicating this.\nUsers who manually create Endpoints can also add this label, but they should consider\nusing `EndpointSlices` instead.", - "markdown": "Endpoints resources created by the Endpoints controller now include a label indicating this.\nUsers who manually create Endpoints can also add this label, but they should consider\nusing `EndpointSlices` instead. ([#130564](https://github.com/kubernetes/kubernetes/pull/130564), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4974-deprecate-endpoints", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130564", - "pr_number": 130564, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "network" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130571": { - "commit": "2b025e645975d6d51bf38c008f972c632cf49657", - "text": "Added `apiserver.latency.k8s.io/authentication` annotation to the audit log to record the\ntime spent authenticating slow requests. Also added `apiserver.latency.k8s.io/authorization`\nannotation to record the time spent authorizing slow requests.", - "markdown": "Added `apiserver.latency.k8s.io/authentication` annotation to the audit log to record the\n time spent authenticating slow requests. Also added `apiserver.latency.k8s.io/authorization`\n annotation to record the time spent authorizing slow requests. ([#130571](https://github.com/kubernetes/kubernetes/pull/130571), [@hakuna-matatah](https://github.com/hakuna-matatah))", - "author": "hakuna-matatah", - "author_url": "https://github.com/hakuna-matatah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130571", - "pr_number": 130571, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true, - "is_mapped": true - }, - "130573": { - "commit": "9f8a84930dc7eeadf803a7a6cca8559bfd3cfc58", - "text": "The kubelet will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set.", - "markdown": "The kubelet will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set. ([#130573](https://github.com/kubernetes/kubernetes/pull/130573), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node, Scheduling, Storage, Testing and Windows]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/5067", - "type": "external" - } - ], - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130573", - "pr_number": 130573, - "areas": [ - "test", - "kubelet", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "node", - "scheduling", - "storage", - "testing", - "windows" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130574": { - "commit": "07d66d9c268c7f8a52b7ba8c339bf21df1ec3ff1", - "text": "For the `InPlacePodVerticalScaling` feature, the API server will no longer set the resize status to `Proposed` upon receiving a resize request.", - "markdown": "For the `InPlacePodVerticalScaling` feature, the API server will no longer set the resize status to `Proposed` upon receiving a resize request. ([#130574](https://github.com/kubernetes/kubernetes/pull/130574), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node and Testing]", - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130574", - "pr_number": 130574, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "bug", - "cleanup", - "api-change" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130577": { - "commit": "838f3c085261adadfed90d570cc2c65670c73a03", - "text": "Changed the Pod API to support `hugepage resources` at `spec` level for pod-level resources.", - "markdown": "Changed the Pod API to support `hugepage resources` at `spec` level for pod-level resources. ([#130577](https://github.com/kubernetes/kubernetes/pull/130577), [@KevinTMtz](https://github.com/KevinTMtz)) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]", - "documentation": [ - { - "description": "[Other doc]", - "url": "https://docs.google.com/document/d/1JaqE2eRmFAPlRayv8vsAWE4SmQCVXQLr9rFPhEaPlvQ/edit?usp=sharing", - "type": "external" - } - ], - "author": "KevinTMtz", - "author_url": "https://github.com/KevinTMtz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130577", - "pr_number": 130577, - "areas": [ - "test", - "kubelet", - "kubectl" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "apps", - "cli", - "node", - "scheduling", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "130591": { - "commit": "1c756849d627dfb352eda2f3a0664eadbd488a0a", - "text": "Reduced log verbosity for high-frequency, low-value log entries in Job, IPAM, and ReplicaSet controllers by adjusting them to V(2), V(4) and V(4) respectively. This change minimizes log noise while maintaining access to these logs when needed.", - "markdown": "Reduced log verbosity for high-frequency, low-value log entries in Job, IPAM, and ReplicaSet controllers by adjusting them to V(2), V(4) and V(4) respectively. This change minimizes log noise while maintaining access to these logs when needed. ([#130591](https://github.com/kubernetes/kubernetes/pull/130591), [@fmuyassarov](https://github.com/fmuyassarov)) [SIG Apps and Network]", - "author": "fmuyassarov", - "author_url": "https://github.com/fmuyassarov", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130591", - "pr_number": 130591, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true, - "is_mapped": true - }, - "130599": { - "commit": "82667879bb20447f87f3a25677d875522ddc0c16", - "text": "Pod resource checkpointing is now tracked by the `allocated_pods_state` and `actuated_pods_state` files, replacing the previously used `pod_status_manager_state`.", - "markdown": "Pod resource checkpointing is now tracked by the `allocated_pods_state` and `actuated_pods_state` files, replacing the previously used `pod_status_manager_state`. ([#130599](https://github.com/kubernetes/kubernetes/pull/130599), [@tallclair](https://github.com/tallclair))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources#actuating-resizes", - "type": "KEP" - } - ], - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130599", - "pr_number": 130599, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "130616": { - "commit": "45fa12f8aff3a079db7b56c79fde90321339d16b", - "text": "Fixed a test failure in `TestSetVolumeOwnershipOwner` for `fsGroup=3000` and\nsymlink cases in `volume_linux_test.go`. The tests were failing due to invalid\nownership verification and the issue has been resolved by adjusting file\npermission change handling, ensuring correct behavior when run as root.", - "markdown": "Fixed a test failure in `TestSetVolumeOwnershipOwner` for `fsGroup=3000` and\n symlink cases in `volume_linux_test.go`. The tests were failing due to invalid\n ownership verification and the issue has been resolved by adjusting file\n permission change handling, ensuring correct behavior when run as root. ([#130616](https://github.com/kubernetes/kubernetes/pull/130616), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130616", - "pr_number": 130616, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "do_not_publish": true, - "is_mapped": true - }, - "130621": { - "commit": "2546557012b75441a15f8f8664a5d329816488bc", - "text": "`PodLifecycleSleepAction` is now turned on by default allowing users to create containers with sleep lifecycle action with a duration of zero seconds", - "markdown": "`PodLifecycleSleepAction` is now turned on by default allowing users to create containers with sleep lifecycle action with a duration of zero seconds ([#130621](https://github.com/kubernetes/kubernetes/pull/130621), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Node]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/4818", - "type": "KEP" - } - ], - "author": "sreeram-venkitesh", - "author_url": "https://github.com/sreeram-venkitesh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130621", - "pr_number": 130621, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "130626": { - "commit": "67e1a1ebbb926e720e7bd1ac7e0cac0436e26f2b", - "text": "`client-gen` now sorts input group/versions to ensure stable output generation even with unsorted inputs", - "markdown": "`client-gen` now sorts input group/versions to ensure stable output generation even with unsorted inputs ([#130626](https://github.com/kubernetes/kubernetes/pull/130626), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130626", - "pr_number": 130626, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "130649": { - "commit": "5c4071cc1d18f98f389412824c61c395d07d9a5c", - "text": "The kube-scheduler will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set.", - "markdown": "The kube-scheduler will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set. ([#130649](https://github.com/kubernetes/kubernetes/pull/130649), [@natasha41575](https://github.com/natasha41575)) [SIG Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/5067", - "type": "external" - } - ], - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130649", - "pr_number": 130649, - "areas": [ - "test", - "kubelet", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130650": { - "commit": "652f681c2bfc83014389e5b204881bfce3e40a8d", - "text": "The kube-controller-manager will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set.", - "markdown": "The kube-controller-manager will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set. ([#130650](https://github.com/kubernetes/kubernetes/pull/130650), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, Node, Scheduling, Storage, Testing and Windows]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/5067", - "type": "external" - } - ], - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130650", - "pr_number": 130650, - "areas": [ - "test", - "kubelet", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "scheduling", - "storage", - "testing", - "windows" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130651": { - "commit": "cd060979bfae61630c829d4a88f1fba2c60b3ad1", - "text": "NONE", - "markdown": "NONE ([#130651](https://github.com/kubernetes/kubernetes/pull/130651), [@ahrtr](https://github.com/ahrtr)) [SIG Etcd]", - "author": "ahrtr", - "author_url": "https://github.com/ahrtr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130651", - "pr_number": 130651, - "areas": [ - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "etcd" - ], - "feature": true, - "do_not_publish": true - }, - "130655": { - "commit": "cad46631a82ec34e0623181f65c0c0a6382e5deb", - "text": "e2e.test: [Feature:OffByDefault] was added to test names when specifying a feature gate that is not enabled by default.", - "markdown": "E2e.test: [Feature:OffByDefault] was added to test names when specifying a feature gate that is not enabled by default. ([#130655](https://github.com/kubernetes/kubernetes/pull/130655), [@BenTheElder](https://github.com/BenTheElder)) [SIG Auth and Testing]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130655", - "pr_number": 130655, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "130658": { - "commit": "2cb9e77fdec42bde190cf5d1c0e54e57052a2343", - "text": "Promote JobSuccessPolicy E2E to Conformance", - "markdown": "Promote JobSuccessPolicy E2E to Conformance ([#130658](https://github.com/kubernetes/kubernetes/pull/130658), [@tenzen-y](https://github.com/tenzen-y)) [SIG API Machinery, Apps, Architecture and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3998-job-success-completion-policy", - "type": "KEP" - } - ], - "author": "tenzen-y", - "author_url": "https://github.com/tenzen-y", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130658", - "pr_number": 130658, - "areas": [ - "test", - "conformance", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130666": { - "commit": "0791d6ef704f2bffb9160b833fdf52bae20df036", - "text": "YAML input that might previously have been misinterpreted as JSON is now correctly accepted.", - "markdown": "YAML input that might previously have been misinterpreted as JSON is now correctly accepted. ([#130666](https://github.com/kubernetes/kubernetes/pull/130666), [@thockin](https://github.com/thockin))", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130666", - "pr_number": 130666, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "130673": { - "commit": "caf541857f46109e217e0b6d2fe6ec9496bfb361", - "text": "The Service trafficDistribution field, including the PreferClose option, has graduated\nto GA. Services that do not have the field configured will continue to operate\nwith their existing behavior. Refer to the documentation\nhttps://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution\nfor more details.", - "markdown": "The Service trafficDistribution field, including the PreferClose option, has graduated\n to GA. Services that do not have the field configured will continue to operate\n with their existing behavior. Refer to the documentation\n https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution\n for more details. ([#130673](https://github.com/kubernetes/kubernetes/pull/130673), [@gauravkghildiyal](https://github.com/gauravkghildiyal)) [SIG Apps, Network and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/66a23dbda468230aad30c6e2d8f2215f7796a0c3/keps/sig-network/4444-service-traffic-distribution", - "type": "KEP" - } - ], - "author": "gauravkghildiyal", - "author_url": "https://github.com/gauravkghildiyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130673", - "pr_number": 130673, - "areas": [ - "test", - "kube-proxy", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change", - "feature" - ], - "sigs": [ - "apps", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130701": { - "commit": "62555cadc741a8aef31acab05e9ed60f897edb1b", - "text": "Added Pressure Stall Information (PSI) metrics to node metrics.", - "markdown": "Added Pressure Stall Information (PSI) metrics to node metrics. ([#130701](https://github.com/kubernetes/kubernetes/pull/130701), [@roycaihw](https://github.com/roycaihw)) [SIG Node and Testing]", - "author": "roycaihw", - "author_url": "https://github.com/roycaihw", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130701", - "pr_number": 130701, - "areas": [ - "test", - "kubelet", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130711": { - "commit": "396c3ebe4c94a9977c1f67a8d4601ad69a5f28c6", - "text": "Added the ability to reduce both the initial delay and the maximum delay accrued between container restarts for a node for containers in `CrashLoopBackOff` across the cluster to the recommended values of `1s` initial delay and `60s` maximum delay. To set this for a node, turn on the feature gate `ReduceDefaultCrashLoopBackOffDecay`. If you are also using the feature gate `KubeletCrashLoopBackOffMax` with a configured per-node `CrashLoopBackOff.MaxContainerRestartPeriod`, the effective kubelet configuration will follow the conflict resolution policy described further in the documentation [here](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#reduced-container-restart-delay).", - "markdown": "Added the ability to reduce both the initial delay and the maximum delay accrued between container restarts for a node for containers in `CrashLoopBackOff` across the cluster to the recommended values of `1s` initial delay and `60s` maximum delay. To set this for a node, turn on the feature gate `ReduceDefaultCrashLoopBackOffDecay`. If you are also using the feature gate `KubeletCrashLoopBackOffMax` with a configured per-node `CrashLoopBackOff.MaxContainerRestartPeriod`, the effective kubelet configuration will follow the conflict resolution policy described further in the documentation [here](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#reduced-container-restart-delay). ([#130711](https://github.com/kubernetes/kubernetes/pull/130711), [@lauralorenz](https://github.com/lauralorenz)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/d367cd52eb4de2fe58c6e11a5d103d942ad60efb/keps/sig-node/4603-tune-crashloopbackoff/README.md", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://github.com/kubernetes/website/pull/50065", - "type": "external" - } - ], - "author": "lauralorenz", - "author_url": "https://github.com/lauralorenz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130711", - "pr_number": 130711, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "action_required": true, - "is_mapped": true - }, - "130725": { - "commit": "6ef1a1f98e90ea541eedb45274886fc3d255ea1d", - "text": "The minimum value validation of ReplicationController's `replicas` and `minReadySeconds` fields have been migrated to declarative validation. The requiredness of both fields is also declaratively validated.\nIf the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.\nIf the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields.", - "markdown": "The minimum value validation of ReplicationController's `replicas` and `minReadySeconds` fields have been migrated to declarative validation. The requiredness of both fields is also declaratively validated.\n If the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.\n If the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields. ([#130725](https://github.com/kubernetes/kubernetes/pull/130725), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Instrumentation, Network, Node and Storage]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130725", - "pr_number": 130725, - "areas": [ - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "code-generation", - "dependency", - "stable-metrics" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "cli", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "storage" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130728": { - "commit": "e981d1302b42dff964b1350c187109b87f61a99c", - "text": "The `DeclarativeValidation` feature gate is enabled by default. When enabled, mismatches with existing hand written validation is reported via metrics.\nThe `DeclarativeValidationTakeover` feature gate remains disabled by default. While disabled, validation errors produced by hand written validation are always return to the caller. To switch to declarative validation is primary source of errors for migrated fields, enable this feature gate.", - "markdown": "The `DeclarativeValidation` feature gate is enabled by default. When enabled, mismatches with existing hand written validation is reported via metrics.\n The `DeclarativeValidationTakeover` feature gate remains disabled by default. While disabled, validation errors produced by hand written validation are always return to the caller. To switch to declarative validation is primary source of errors for migrated fields, enable this feature gate. ([#130728](https://github.com/kubernetes/kubernetes/pull/130728), [@jpbetz](https://github.com/jpbetz))", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130728", - "pr_number": 130728, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "130733": { - "commit": "473ec01548c81fc356308448dd47923d0f234612", - "text": "The pod `status.resize` field is now deprecated and will no longer be set. The status of a pod resize will be exposed under two new conditions: `PodResizeInProgress` and `PodResizePending` instead.", - "markdown": "The pod `status.resize` field is now deprecated and will no longer be set. The status of a pod resize will be exposed under two new conditions: `PodResizeInProgress` and `PodResizePending` instead. ([#130733](https://github.com/kubernetes/kubernetes/pull/130733), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/1287", - "type": "external" - } - ], - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130733", - "pr_number": 130733, - "areas": [ - "test", - "kubelet", - "kubectl", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature", - "deprecation" - ], - "sigs": [ - "api-machinery", - "apps", - "cli", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130738": { - "commit": "b29c2f5343a385cf0867ee867b2def3999659ec2", - "text": "DRA: Starting Kubernetes 1.33, regular users with namespaced cluster `edit` role assigned have `read` permission to `resourceclaims`, `resourceclaims/status`,`resourceclaimtemplates`. And `write` permission for `resourceclaims`, `resourceclaimtemplates`.", - "markdown": "DRA: Starting Kubernetes 1.33, regular users with namespaced cluster `edit` role assigned have `read` permission to `resourceclaims`, `resourceclaims/status`,`resourceclaimtemplates`. And `write` permission for `resourceclaims`, `resourceclaimtemplates`. ([#130738](https://github.com/kubernetes/kubernetes/pull/130738), [@ritazh](https://github.com/ritazh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130738", - "pr_number": 130738, - "kinds": [ - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true, - "is_mapped": true - }, - "130742": { - "commit": "c12006e8b460e7fb690a94600c89f3a01caefcbb", - "text": "The EndpointSlice `hints` field has graduated to GA. The beta annotation `service.kubernetes.io/topology-mode` is now considered deprecated and will not graduate to GA. It remains operational for backward compatibility. Users are encouraged to use the `spec.trafficDistribution` field in the Service API for topology-aware routing configuration.", - "markdown": "The EndpointSlice `hints` field has graduated to GA. The beta annotation `service.kubernetes.io/topology-mode` is now considered deprecated and will not graduate to GA. It remains operational for backward compatibility. Users are encouraged to use the `spec.trafficDistribution` field in the Service API for topology-aware routing configuration. ([#130742](https://github.com/kubernetes/kubernetes/pull/130742), [@gauravkghildiyal](https://github.com/gauravkghildiyal))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/efd94f0918a8a48d9a1afcef3cb54cb630d8d4ce/keps/sig-network/2433-topology-aware-hints", - "type": "KEP" - } - ], - "author": "gauravkghildiyal", - "author_url": "https://github.com/gauravkghildiyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130742", - "pr_number": 130742, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "documentation", - "cleanup", - "feature", - "deprecation" - ], - "sigs": [ - "network" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130751": { - "commit": "be127ae0e27644edead7007834b5c8437fb6eb0b", - "text": "Introduced API type `coordination.k8s.io/v1beta1/LeaseCandidate`\n`CoordinatedLeaderElection` feature moves to Beta", - "markdown": "Introduced API type `coordination.k8s.io/v1beta1/LeaseCandidate`\n`CoordinatedLeaderElection` feature moves to Beta ([#130751](https://github.com/kubernetes/kubernetes/pull/130751), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Etcd and Testing]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/4355-coordinated-leader-election", - "type": "KEP" - } - ], - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130751", - "pr_number": 130751, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "etcd", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130764": { - "commit": "d8607b91a78d01d5e0903e69765feb66651af2cf", - "text": "Added feature gate `DRAPartitionableDevices`, when enabled, Dynamic Resource Allocation support partitionable devices allocation.", - "markdown": "Added feature gate `DRAPartitionableDevices`, when enabled, Dynamic Resource Allocation support partitionable devices allocation. ([#130764](https://github.com/kubernetes/kubernetes/pull/130764), [@cici37](https://github.com/cici37)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130764", - "pr_number": 130764, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130772": { - "commit": "322083c948032449f3d810217947bf14fcaa72f6", - "text": "Added `SchedulerPopFromBackoffQ` feature gate that is in beta and enabled by default. Improved scheduling queue behavior by popping pods from the backoffQ when the activeQ is empty. This allows to process potentially schedulable pods ASAP, eliminating a penalty effect of the backoff queue.", - "markdown": "Added `SchedulerPopFromBackoffQ` feature gate that is in beta and enabled by default. Improved scheduling queue behavior by popping pods from the backoffQ when the activeQ is empty. This allows to process potentially schedulable pods ASAP, eliminating a penalty effect of the backoff queue. ([#130772](https://github.com/kubernetes/kubernetes/pull/130772), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing]", - "author": "macsko", - "author_url": "https://github.com/macsko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130772", - "pr_number": 130772, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130797": { - "commit": "34e80be1330556848521314ece92e9277efb26d4", - "text": "Added a new `tolerance` field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate.", - "markdown": "Added a new `tolerance` field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. ([#130797](https://github.com/kubernetes/kubernetes/pull/130797), [@jm-franc](https://github.com/jm-franc)) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/23e8eae624f53771990d2643e20c0937cc54b1f8/keps/sig-autoscaling/4951-configurable-hpa-tolerance", - "type": "KEP" - } - ], - "author": "jm-franc", - "author_url": "https://github.com/jm-franc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130797", - "pr_number": 130797, - "areas": [ - "test", - "apiserver", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "autoscaling", - "etcd", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130798": { - "commit": "caf03a865270f87e4bb65fa087238ecc072a56fb", - "text": "Bumped `ProcMountType` feature to on by default beta", - "markdown": "Bumped `ProcMountType` feature to on by default beta ([#130798](https://github.com/kubernetes/kubernetes/pull/130798), [@haircommander](https://github.com/haircommander)) [SIG Node]", - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130798", - "pr_number": 130798, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "130814": { - "commit": "f9e92a1aa76ddf8a990fc512fe9970154ab1b5fa", - "text": "`DRAResourceClaimDeviceStatus` is now turned on by default allowing DRA-Drivers to report device status data for each allocated device.", - "markdown": "`DRAResourceClaimDeviceStatus` is now turned on by default allowing DRA-Drivers to report device status data for each allocated device. ([#130814](https://github.com/kubernetes/kubernetes/pull/130814), [@LionelJouin](https://github.com/LionelJouin)) [SIG Network and Node]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/4817", - "type": "KEP" - } - ], - "author": "LionelJouin", - "author_url": "https://github.com/LionelJouin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130814", - "pr_number": 130814, - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130831": { - "commit": "d383020cc8478fab2d7f2d642386034919017611", - "text": "Disabled InPlace Pod Resize for Swap enabled containers that does not have memory ResizePolicy as RestartContainer", - "markdown": "Disabled InPlace Pod Resize for Swap enabled containers that does not have memory ResizePolicy as RestartContainer ([#130831](https://github.com/kubernetes/kubernetes/pull/130831), [@ajaysundark](https://github.com/ajaysundark)) [SIG Node and Testing]", - "author": "ajaysundark", - "author_url": "https://github.com/ajaysundark", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130831", - "pr_number": 130831, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "130844": { - "commit": "68ba091fca6927534e187d8b2595882352497f2f", - "text": "When the `PreferSameTrafficDistribution` feature gate is enabled, a new\n`trafficDistribution` value `PreferSameNode` is available, which attempts to\nalways route Service connections to an endpoint on the same node as\nthe client. Additionally, `PreferSameZone` is introduced as an alias for\n`PreferClose`.", - "markdown": "When the `PreferSameTrafficDistribution` feature gate is enabled, a new\n`trafficDistribution` value `PreferSameNode` is available, which attempts to\nalways route Service connections to an endpoint on the same node as\nthe client. Additionally, `PreferSameZone` is introduced as an alias for\n`PreferClose`. ([#130844](https://github.com/kubernetes/kubernetes/pull/130844), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network and Windows]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3015", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130844", - "pr_number": 130844, - "areas": [ - "kube-proxy", - "code-generation", - "ipvs" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "network", - "windows" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130870": { - "commit": "5639e1fd08dc71ab1c9e759931ecf037721eab90", - "text": "[root@raji-x86-workspace1 kubernetes]# make quick-release KUBE_CROSS_VERSION=v1.32.0-go1.23.6-bullseye.0\n+++ [0313 08:15:47] Verifying Prerequisites....\n+++ [0313 08:15:48] Building Docker image kube-build:build-c08a296a0e-5-v1.33.0-go1.24.0-bullseye.0\n+++ [0313 08:17:39] Creating data container kube-build-data-c08a296a0e-5-v1.33.0-go1.24.0-bullseye.0\n+++ [0313 08:17:39] Syncing sources to container\n+++ [0313 08:17:57] Running build command...\ngo: downloading go1.24.0 (linux/amd64)\n+++ [0313 08:18:35] Building go targets for linux/amd64\n k8s.io/apiextensions-apiserver (static)\n k8s.io/component-base/logs/kube-log-runner (static)\n k8s.io/kube-aggregator (static)\n k8s.io/kubernetes/cluster/gce/gci/mounter (static)\n k8s.io/kubernetes/cmd/kube-apiserver (static)\n k8s.io/kubernetes/cmd/kube-controller-manager (static)\n k8s.io/kubernetes/cmd/kube-proxy (static)\n k8s.io/kubernetes/cmd/kube-scheduler (static)\n k8s.io/kubernetes/cmd/kubeadm (static)\n k8s.io/kubernetes/cmd/kubelet (non-static)\n+++ [0313 08:22:08] Building go targets for linux/amd64\n k8s.io/component-base/logs/kube-log-runner (static)\n k8s.io/kubernetes/cmd/kube-proxy (static)\n k8s.io/kubernetes/cmd/kubeadm (static)\n k8s.io/kubernetes/cmd/kubelet (non-static)\n+++ [0313 08:22:41] Building go targets for linux/amd64\n k8s.io/kubernetes/cmd/kubectl (static)\n k8s.io/kubernetes/cmd/kubectl-convert (static)\n+++ [0313 08:23:06] Building go targets for linux/amd64\n github.com/onsi/ginkgo/v2/ginkgo (non-static)\n k8s.io/kubernetes/test/conformance/image/go-runner (non-static)\n k8s.io/kubernetes/test/e2e/e2e.test (test)\n\n[root@raji-x86-workspace1 kubernetes]#", - "markdown": "[root@raji-x86-workspace1 kubernetes]# make quick-release KUBE_CROSS_VERSION=v1.32.0-go1.23.6-bullseye.0\n +++ [0313 08:15:47] Verifying Prerequisites....\n +++ [0313 08:15:48] Building Docker image kube-build:build-c08a296a0e-5-v1.33.0-go1.24.0-bullseye.0\n +++ [0313 08:17:39] Creating data container kube-build-data-c08a296a0e-5-v1.33.0-go1.24.0-bullseye.0\n +++ [0313 08:17:39] Syncing sources to container\n +++ [0313 08:17:57] Running build command...\n go: downloading go1.24.0 (linux/amd64)\n +++ [0313 08:18:35] Building go targets for linux/amd64\n k8s.io/apiextensions-apiserver (static)\n k8s.io/component-base/logs/kube-log-runner (static)\n k8s.io/kube-aggregator (static)\n k8s.io/kubernetes/cluster/gce/gci/mounter (static)\n k8s.io/kubernetes/cmd/kube-apiserver (static)\n k8s.io/kubernetes/cmd/kube-controller-manager (static)\n k8s.io/kubernetes/cmd/kube-proxy (static)\n k8s.io/kubernetes/cmd/kube-scheduler (static)\n k8s.io/kubernetes/cmd/kubeadm (static)\n k8s.io/kubernetes/cmd/kubelet (non-static)\n +++ [0313 08:22:08] Building go targets for linux/amd64\n k8s.io/component-base/logs/kube-log-runner (static)\n k8s.io/kubernetes/cmd/kube-proxy (static)\n k8s.io/kubernetes/cmd/kubeadm (static)\n k8s.io/kubernetes/cmd/kubelet (non-static)\n +++ [0313 08:22:41] Building go targets for linux/amd64\n k8s.io/kubernetes/cmd/kubectl (static)\n k8s.io/kubernetes/cmd/kubectl-convert (static)\n +++ [0313 08:23:06] Building go targets for linux/amd64\n github.com/onsi/ginkgo/v2/ginkgo (non-static)\n k8s.io/kubernetes/test/conformance/image/go-runner (non-static)\n k8s.io/kubernetes/test/e2e/e2e.test (test)\n \n [root@raji-x86-workspace1 kubernetes]# ([#130870](https://github.com/kubernetes/kubernetes/pull/130870), [@Rajalakshmi-Girish](https://github.com/Rajalakshmi-Girish)) [SIG Release]", - "author": "Rajalakshmi-Girish", - "author_url": "https://github.com/Rajalakshmi-Girish", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130870", - "pr_number": 130870, - "kinds": [ - "cleanup" - ], - "sigs": [ - "release" - ], - "do_not_publish": true - }, - "130875": { - "commit": "c608791a110a96b15a45c17d22f6ed29b01d7e9b", - "text": "Fixed the example validation rule in godoc:\n\nWhen configuring a JWT authenticator:\n\nIf username.expression uses 'claims.email', then 'claims.email_verified' must be used in\nusername.expression or extra[*].valueExpression or claimValidationRules[*].expression.\nAn example claim validation rule expression that matches the validation automatically\napplied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'. \nBy explicitly comparing the value to true, we let type-checking see the result will be a boolean, \nand to make sure a non-boolean `email_verified` claim will be caught at runtime.", - "markdown": "Fixed the example validation rule in godoc:\n\nWhen configuring a JWT authenticator:\n \n If username.expression uses 'claims.email', then 'claims.email_verified' must be used in\n username.expression or extra[*].valueExpression or claimValidationRules[*].expression.\n An example claim validation rule expression that matches the validation automatically\n applied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'. \n By explicitly comparing the value to true, we let type-checking see the result will be a boolean, \n and to make sure a non-boolean `email_verified` claim will be caught at runtime. ([#130875](https://github.com/kubernetes/kubernetes/pull/130875), [@aramase](https://github.com/aramase)) [SIG Auth and Release]", - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130875", - "pr_number": 130875, - "areas": [ - "release-eng" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "auth", - "release" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130876": { - "commit": "664d4058160523b6f19058acc5af44de5ebf68ea", - "text": "Graduated the `WinDSR` feature in the kube-proxy to beta. The `WinDSR` feature gate is now enabled by default.", - "markdown": "Graduated the `WinDSR` feature in the kube-proxy to beta. The `WinDSR` feature gate is now enabled by default. ([#130876](https://github.com/kubernetes/kubernetes/pull/130876), [@rzlink](https://github.com/rzlink)) [SIG Windows]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/5100-windows-dsr-and-overlay-support", - "type": "KEP" - } - ], - "author": "rzlink", - "author_url": "https://github.com/rzlink", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130876", - "pr_number": 130876, - "kinds": [ - "feature" - ], - "sigs": [ - "windows" - ], - "feature": true, - "is_mapped": true - }, - "130880": { - "commit": "e87e840413aeb3e8ed899965480b3d86b49e4819", - "text": "The feature gate `InPlacePodVerticalScalingAllocatedStatus` is deprecated and no longer used. The `AllocatedResources` field in `ContainerStatus` is now guarded by the `InPlacePodVerticalScaling` feature gate.", - "markdown": "The feature gate `InPlacePodVerticalScalingAllocatedStatus` is deprecated and no longer used. The `AllocatedResources` field in `ContainerStatus` is now guarded by the `InPlacePodVerticalScaling` feature gate. ([#130880](https://github.com/kubernetes/kubernetes/pull/130880), [@tallclair](https://github.com/tallclair)) [SIG CLI, Node and Scheduling]", - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130880", - "pr_number": 130880, - "areas": [ - "kubelet", - "kubectl" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "cli", - "node", - "scheduling" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130899": { - "commit": "e5558a81c93fef5463b02ae7c2a8c0c4b15ecc3a", - "text": "Errors returned by apiserver from uninitialized cache will include last error from etcd", - "markdown": "Errors returned by apiserver from uninitialized cache will include last error from etcd ([#130899](https://github.com/kubernetes/kubernetes/pull/130899), [@serathius](https://github.com/serathius)) [SIG API Machinery and Testing]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130899", - "pr_number": 130899, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130902": { - "commit": "16abcd78bd493c2694754e46f9227fef7976ed91", - "text": "Errors that occur during pod resize actuation will now surface in the `PodResizeInProgress` condition.", - "markdown": "Errors that occur during pod resize actuation will now surface in the `PodResizeInProgress` condition. ([#130902](https://github.com/kubernetes/kubernetes/pull/130902), [@natasha41575](https://github.com/natasha41575))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/1287", - "type": "external" - } - ], - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130902", - "pr_number": 130902, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "130905": { - "commit": "7fb8bd8aca7b70bb599059526ad01d81fad6a131", - "text": "Promoted in-place Pod vertical scaling to beta. The `InPlacePodVerticalScaling` feature gate is now enabled by default.", - "markdown": "Promoted in-place Pod vertical scaling to beta. The `InPlacePodVerticalScaling` feature gate is now enabled by default. ([#130905](https://github.com/kubernetes/kubernetes/pull/130905), [@tallclair](https://github.com/tallclair))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", - "type": "KEP" - } - ], - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130905", - "pr_number": 130905, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "130908": { - "commit": "63bd5816952b531cd026e830a4eab2d02c227ff2", - "text": "e2e framework: `framework.WithFeatureGate` `[Alpha]`, `[Beta]` and `[Feature:OffByDefault]` tags are now set 1:1 with `Alpha`, `Beta`, `Feature:OffByDefault` Ginkgo labels, replacing`Feature:Alpha` and `Feature:Beta` labels. `BetaOffByDefault` is also added as a Ginkgo label only for off-by-default beta features", - "markdown": "e2e framework: `framework.WithFeatureGate` `[Alpha]`, `[Beta]` and `[Feature:OffByDefault]` tags are now set 1:1 with `Alpha`, `Beta`, `Feature:OffByDefault` Ginkgo labels, replacing`Feature:Alpha` and `Feature:Beta` labels. `BetaOffByDefault` is also added as a Ginkgo label only for off-by-default beta features ([#130908](https://github.com/kubernetes/kubernetes/pull/130908), [@BenTheElder](https://github.com/BenTheElder)) [SIG Testing]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130908", - "pr_number": 130908, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ], - "is_mapped": true - }, - "130920": { - "commit": "41dd679feee0299ebebe82409d3caeddf02f4aa9", - "text": "Promoted NodeInclusionPolicyInPodTopologySpread to Stable in v1.33", - "markdown": "Promoted NodeInclusionPolicyInPodTopologySpread to Stable in v1.33 ([#130920](https://github.com/kubernetes/kubernetes/pull/130920), [@kerthcet](https://github.com/kerthcet)) [SIG Apps, Node, Scheduling and Testing]", - "author": "kerthcet", - "author_url": "https://github.com/kerthcet", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130920", - "pr_number": 130920, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130935": { - "commit": "17ecb5c974f64a67c71c7c228bf75b2a66b99d1c", - "text": "Added Windows Server, Version 2025 for windows-servercore-cache test image", - "markdown": "Added Windows Server, Version 2025 for windows-servercore-cache test image ([#130935](https://github.com/kubernetes/kubernetes/pull/130935), [@aramase](https://github.com/aramase)) [SIG Testing and Windows]", - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130935", - "pr_number": 130935, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing", - "windows" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "131020": { - "commit": "b4d139094698687043b36f1c378dfeb1b654198a", - "text": "Fixed a bug where kube-apiserver could emit a subsequent watch event even if the previous event failed to decrypt and was not emitted.", - "markdown": "Fixed a bug where kube-apiserver could emit a subsequent watch event even if the previous event failed to decrypt and was not emitted. ([#131020](https://github.com/kubernetes/kubernetes/pull/131020), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Etcd]", - "author": "wojtek-t", - "author_url": "https://github.com/wojtek-t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131020", - "pr_number": 131020, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "etcd" - ], - "duplicate": true, - "is_mapped": true - }, - "131036": { - "commit": "49b85354fe5b02538d6449092a0cae46d2eb209a", - "text": "kubeadm: make sure that it is possible to health check the kube-apiserver when it has `--anonymous-auth=false` set and the `WaitForAllControlPlaneComponents` feature gate is enabled.", - "markdown": "kubeadm: make sure that it is possible to health check the kube-apiserver when it has `--anonymous-auth=false` set and the `WaitForAllControlPlaneComponents` feature gate is enabled. ([#131036](https://github.com/kubernetes/kubernetes/pull/131036), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131036", - "pr_number": 131036, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "131103": { - "commit": "f4d1686120d2367dd4c00df53e93dad51c414435", - "text": "Updated the etcd client library to `v3.5.21`", - "markdown": "Updated the etcd client library to `v3.5.21` ([#131103](https://github.com/kubernetes/kubernetes/pull/131103), [@ahrtr](https://github.com/ahrtr)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node and Storage]", - "author": "ahrtr", - "author_url": "https://github.com/ahrtr", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131103", - "pr_number": 131103, - "areas": [ - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "etcd", - "instrumentation", - "network", - "node", - "storage" - ], - "duplicate": true, - "is_mapped": true - }, - "131263": { - "commit": "0266d3bcb37f6a5e649ae0af7f1bf243938e4d56", - "text": "kube-apiserv r: Fixes an issue updating the default ServiceCIDR API object and creating dual-stack Service API objects when `--service-cluster-ip-range` flag passed to kube-apiserver is changed from single-stack to dual-stack", - "markdown": "kube-apiserver: Fixes an issue updating the default ServiceCIDR API object and creating dual-stack Service API objects when `--service-cluster-ip-range` flag passed to kube-apiserver is changed from single-stack to dual-stack ([#131263](https://github.com/kubernetes/kubernetes/pull/131263), [@aojea](https://github.com/aojea)) [SIG API Machinery, Network and Testing]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131263", - "pr_number": 131263, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "network", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "131359": { - "commit": "660df229bf3929741cf31659187060d0c651dcf9", - "text": "kube-apiserver disabled the beta WatchList feature by default in 1.33 in favor of the `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` features.\nkube-controller-manager no longer opts into enabling the WatchListClient feature in 1.33.", - "markdown": "kube-apiserver disabled the beta WatchList feature by default in 1.33 in favor of the `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` features.\nkube-controller-manager no longer opts into enabling the WatchListClient feature in 1.33. ([#131359](https://github.com/kubernetes/kubernetes/pull/131359), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Network and Testing]", - "author": "deads2k", - "author_url": "https://github.com/deads2k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131359", - "pr_number": 131359, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "duplicate": true, - "is_mapped": true - } +{ + "122550": { + "commit": "2261137135631d24248e94dff3bc6375ad9308b2", + "text": "When the `StrictIPCIDRValidation` feature gate is enabled, Kubernetes will be\nslightly stricter about what values will be accepted as IP addresses and network\naddress ranges (“CIDR blocks”).\n\nIn particular, octets within IPv4 addresses are not allowed to have any leading\n`0`s, and IPv4-mapped IPv6 values (e.g. `::ffff:192.168.0.1`) are forbidden.\nThese sorts of values can potentially cause security problems when different\ncomponents interpret the same string as referring to different IP addresses\n(as in CVE-2021-29923).\n\nThis tightening applies only to fields in build-in API kinds, and not to\ncustom resource kinds, values in Kubernetes configuration files, or\ncommand-line arguments.\n\n(When the feature gate is disabled, creating an object with such an invalid\nIP or CIDR value will result in a warning from the API server about the fact\nthat it will be rejected in the future.)", + "markdown": "When the `StrictIPCIDRValidation` feature gate is enabled, Kubernetes will be\n slightly stricter about what values will be accepted as IP addresses and network\n address ranges (“CIDR blocks”).\n \n In particular, octets within IPv4 addresses are not allowed to have any leading\n `0`s, and IPv4-mapped IPv6 values (e.g. `::ffff:192.168.0.1`) are forbidden.\n These sorts of values can potentially cause security problems when different\n components interpret the same string as referring to different IP addresses\n (as in CVE-2021-29923).\n \n This tightening applies only to fields in build-in API kinds, and not to\n custom resource kinds, values in Kubernetes configuration files, or\n command-line arguments.\n \n (When the feature gate is disabled, creating an object with such an invalid\n IP or CIDR value will result in a warning from the API server about the fact\n that it will be rejected in the future.) ([#122550](https://github.com/kubernetes/kubernetes/pull/122550), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network, Node, Scheduling and Testing]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122550", + "pr_number": 122550, + "areas": [ + "test", + "network-policy" + ], + "kinds": [ + "cleanup", + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "network", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "122646": { + "commit": "2ca9e2d28f0146fe881c8b9007f2926b07ff403d", + "text": "kube-apiserver: shortening the grace period during a pod deletion no longer moves the `metadata.deletionTimestamp` into the past", + "markdown": "kube-apiserver: shortening the grace period during a pod deletion no longer moves the `metadata.deletionTimestamp` into the past ([#122646](https://github.com/kubernetes/kubernetes/pull/122646), [@liggitt](https://github.com/liggitt)) [SIG API Machinery]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122646", + "pr_number": 122646, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "124360": { + "commit": "68899f8e6d5861e7b6197c51b0dee9f8a486e3e0", + "text": "It introduces a new scope name `VolumeAttributesClass`. \n\nIt matches all PVC objects that have the volume attributes class mentioned. \n\nIf you want to limit the count of PVCs that have a specific volume attributes class. In that case, you can create a quota object with the scope name `VolumeAttributesClass` and a `matchExpressions` that match the volume attributes class.", + "markdown": "It introduces a new scope name `VolumeAttributesClass`. \n \n It matches all PVC objects that have the volume attributes class mentioned. \n \n If you want to limit the count of PVCs that have a specific volume attributes class. In that case, you can create a quota object with the scope name `VolumeAttributesClass` and a `matchExpressions` that match the volume attributes class. ([#124360](https://github.com/kubernetes/kubernetes/pull/124360), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/3751-volume-attributes-class", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/124360", + "pr_number": 124360, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125230": { + "commit": "c7a90b670c40a315bea3667921302675008bc39c", + "text": "kubectl: Added alpha support for customizing kubectl behavior using preferences from a `kuberc` file, separate from `kubeconfig`.", + "markdown": "kubectl: Added alpha support for customizing kubectl behavior using preferences from a `kuberc` file, separate from `kubeconfig`. ([#125230](https://github.com/kubernetes/kubernetes/pull/125230), [@ardaguclu](https://github.com/ardaguclu)) [SIG API Machinery, CLI and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-cli/3104-introduce-kuberc/README.md", + "type": "KEP" + } + ], + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125230", + "pr_number": 125230, + "areas": [ + "test", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "125901": { + "commit": "f34d791b13accaf3b0a3f44a3ea9e8956f717794", + "text": "Implemented logging and event recording for probe results with an `Unknown` status in the kubelet's prober module. This helped improve the diagnosis and monitoring of cases where container probes returned an `Unknown` result, enhancing the observability and reliability of health checks.", + "markdown": "Implemented logging and event recording for probe results with an `Unknown` status in the kubelet's prober module. This helped improve the diagnosis and monitoring of cases where container probes returned an `Unknown` result, enhancing the observability and reliability of health checks. ([#125901](https://github.com/kubernetes/kubernetes/pull/125901), [@jralmaraz](https://github.com/jralmaraz))", + "documentation": [ + { + "description": "[Usage]: [Kubernetes Probes Documentation](", + "url": "https://github.com/kubernetes/website/blob/cfc5ea3a3b87b7895943ecca4656cf832f45c8c7/content/en/docs/concepts/workloads/pods/pod-lifecycle.md#container-probes)", + "type": "external" + } + ], + "author": "jralmaraz", + "author_url": "https://github.com/jralmaraz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125901", + "pr_number": 125901, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "127053": { + "commit": "b2b6c4d0235085d090ca73b62a1361302db81afd", + "text": "Respect the incoming trace context for authenticated requests to the kube-apiserver for APIServer tracing.", + "markdown": "Respect the incoming trace context for authenticated requests to the kube-apiserver for APIServer tracing. ([#127053](https://github.com/kubernetes/kubernetes/pull/127053), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/0034-distributed-tracing-kep.md", + "type": "KEP" + } + ], + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127053", + "pr_number": 127053, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "instrumentation", + "network", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127092": { + "commit": "507eee87e5a6675c93ae404be003203d94b701b4", + "text": "Automatically copy `topology.k8s.io/zone`, `topology.k8s.io/region` and `kubernetes.io/hostname` labels from Node objects to Pods when they are scheduled to a node (via the `pods/binding` endpoint) to allow applications that need to be explicitly aware of their assigned node topology to access this information via the downward API, rather than requiring permission to `get node` objects (exposing the entire API surface of the Node object to otherwise unprivileged workloads).", + "markdown": "Automatically copy `topology.k8s.io/zone`, `topology.k8s.io/region` and `kubernetes.io/hostname` labels from Node objects to Pods when they are scheduled to a node (via the `pods/binding` endpoint) to allow applications that need to be explicitly aware of their assigned node topology to access this information via the downward API, rather than requiring permission to `get node` objects (exposing the entire API surface of the Node object to otherwise unprivileged workloads). ([#127092](https://github.com/kubernetes/kubernetes/pull/127092), [@munnerz](https://github.com/munnerz)) [SIG API Machinery, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4742-node-topology-downward-api", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://github.com/kubernetes/website/pull/49928", + "type": "external" + } + ], + "author": "munnerz", + "author_url": "https://github.com/munnerz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127092", + "pr_number": 127092, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127193": { + "commit": "77749c21f628eae68001bfa79821c2ce8aa40cdc", + "text": "Fixed a bug in HorizontalPodAutoscaler. HPAs with `ContainerResource` metrics no longer return an error when container metrics are missing. Instead they use the same logic as `Resource` metrics to perform calculations.", + "markdown": "Fixed a bug in HorizontalPodAutoscaler. HPAs with `ContainerResource` metrics no longer return an error when container metrics are missing. Instead they use the same logic as `Resource` metrics to perform calculations. ([#127193](https://github.com/kubernetes/kubernetes/pull/127193), [@DP19](https://github.com/DP19)) [SIG Apps and Autoscaling]", + "author": "DP19", + "author_url": "https://github.com/DP19", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127193", + "pr_number": 127193, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "autoscaling" + ], + "duplicate": true, + "is_mapped": true + }, + "127375": { + "commit": "165da9ad0fc7e895a9b72a463062cbf754f89f2b", + "text": "No", + "markdown": "No ([#127375](https://github.com/kubernetes/kubernetes/pull/127375), [@omerap12](https://github.com/omerap12)) [SIG API Machinery]", + "author": "omerap12", + "author_url": "https://github.com/omerap12", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127375", + "pr_number": 127375, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "do_not_publish": true + }, + "127525": { + "commit": "cd2959b798e15b43dbca94c59bf307df798f3fdc", + "text": "When `cpu-manager-policy=static` is configured, containers meeting the qualifications for static cpu assignment (i.e. Containers with integer CPU `requests` in pods with `Guaranteed` QOS) will not have cfs quota enforced. Because this fix changes a long-established behavior, users observing a regressions can use the `DisableCPUQuotaWithExclusiveCPUs` feature gate (enabled by default) to restore the previous behavior. Please file an issue if you encounter problems and have to use the Feature Gate.", + "markdown": "When `cpu-manager-policy=static` is configured, containers meeting the qualifications for static cpu assignment (i.e. Containers with integer CPU `requests` in pods with `Guaranteed` QOS) will not have cfs quota enforced. Because this fix changes a long-established behavior, users observing a regressions can use the `DisableCPUQuotaWithExclusiveCPUs` feature gate (enabled by default) to restore the previous behavior. Please file an issue if you encounter problems and have to use the Feature Gate. ([#127525](https://github.com/kubernetes/kubernetes/pull/127525), [@scott-grimes](https://github.com/scott-grimes)) [SIG Node and Testing]", + "author": "scott-grimes", + "author_url": "https://github.com/scott-grimes", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127525", + "pr_number": 127525, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "127577": { + "commit": "1b4c3483cea4aae55d2eb815a0ff855b587c9a67", + "text": "`mergeDefaultEvictionSettings` indicates that defaults for the `evictionHard`, `evictionSoft`, `evictionSoftGracePeriod`, and `evictionMinimumReclaim` fields should be merged into values specified for those fields in this configuration. Signals specified in this configuration take precedence. Signals not specified in this configuration inherit their defaults.", + "markdown": "`mergeDefaultEvictionSettings` indicates that defaults for the `evictionHard`, `evictionSoft`, `evictionSoftGracePeriod`, and `evictionMinimumReclaim` fields should be merged into values specified for those fields in this configuration. Signals specified in this configuration take precedence. Signals not specified in this configuration inherit their defaults. ([#127577](https://github.com/kubernetes/kubernetes/pull/127577), [@vaibhav2107](https://github.com/vaibhav2107)) [SIG API Machinery and Node]", + "author": "vaibhav2107", + "author_url": "https://github.com/vaibhav2107", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127577", + "pr_number": 127577, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "127696": { + "commit": "07a275437f304456b2a32159ec6550a71d020a64", + "text": "Show a warning message to inform users that the debug container's capabilities granted by debugging profile may not work as expected if a non-root user is specified in target Pod's `.Spec.SecurityContext.RunAsUser` field.", + "markdown": "Show a warning message to inform users that the debug container's capabilities granted by debugging profile may not work as expected if a non-root user is specified in target Pod's `.Spec.SecurityContext.RunAsUser` field. ([#127696](https://github.com/kubernetes/kubernetes/pull/127696), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI and Testing]", + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127696", + "pr_number": 127696, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "127709": { + "commit": "427cd18f726be3e3c4f657258dc17a97beca92d5", + "text": "Implemented full support for contextual logging in `client-go/rest`. `BackoffManagerWithContext` was used instead of `BackoffManager` to ensure that the caller could interrupt the sleep.", + "markdown": "Implemented full support for contextual logging in `client-go/rest`. `BackoffManagerWithContext` was used instead of `BackoffManager` to ensure that the caller could interrupt the sleep. ([#127709](https://github.com/kubernetes/kubernetes/pull/127709), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Auth, Cloud Provider, Instrumentation, Network and Node]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127709", + "pr_number": 127709, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cloud-provider", + "instrumentation", + "network", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "127897": { + "commit": "ed8999ed64d4f6e05859f83456f279949bac7907", + "text": "Kubernetes components that accepted X.509 client certificate authentication now read the user UID from a certificate subject name RDN with object ID `1.3.6.1.4.1.57683.2`. An RDN with this object ID had to contain a string value and appear no more than once in the certificate subject. Reading the user UID from this RDN could be disabled by setting the beta feature gate `AllowParsingUserUIDFromCertAuth` to `false`(until the feature gate graduated to GA).", + "markdown": "Kubernetes components that accepted X.509 client certificate authentication now read the user UID from a certificate subject name RDN with object ID `1.3.6.1.4.1.57683.2`. An RDN with this object ID had to contain a string value and appear no more than once in the certificate subject. Reading the user UID from this RDN could be disabled by setting the beta feature gate `AllowParsingUserUIDFromCertAuth` to `false`(until the feature gate graduated to GA). ([#127897](https://github.com/kubernetes/kubernetes/pull/127897), [@modulitos](https://github.com/modulitos)) [SIG API Machinery, Auth and Testing]", + "author": "modulitos", + "author_url": "https://github.com/modulitos", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127897", + "pr_number": 127897, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128086": { + "commit": "5948c7b5a9f606644bb3d5eb2ea831d648c2aa1c", + "text": "Fixed a storage bug related to multipath. iSCSI and Fibre Channel devices attached to nodes via multipath now resolve correctly when partitioned.", + "markdown": "Fixed a storage bug related to multipath. iSCSI and Fibre Channel devices attached to nodes via multipath now resolve correctly when partitioned. ([#128086](https://github.com/kubernetes/kubernetes/pull/128086), [@RomanBednar](https://github.com/RomanBednar))", + "author": "RomanBednar", + "author_url": "https://github.com/RomanBednar", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128086", + "pr_number": 128086, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "128152": { + "commit": "fcb2418f7b6cbeda85191f70d99cd4b90e84e32f", + "text": "New configuration is introduced to the kubelet that allows it to track container images and the list of authentication information that lead to their successful pulls . This data is persisted across reboots of the host and restarts of the kubelet.\n\nThe kubelet ensures any image requiring credential verification is always pulled if authentication information from an image pull is not yet present, thus enforcing authentication / re-authentication. This means an image pull might be attempted even in cases where a pod requests the `IfNotPresent` image pull policy, and might lead to the pod not starting if its pull policy is `Never` and is unable to present authentication information that lead to a previous successful pull of the image it is requesting.", + "markdown": "New configuration is introduced to the kubelet that allows it to track container images and the list of authentication information that lead to their successful pulls . This data is persisted across reboots of the host and restarts of the kubelet.\n \n The kubelet ensures any image requiring credential verification is always pulled if authentication information from an image pull is not yet present, thus enforcing authentication / re-authentication. This means an image pull might be attempted even in cases where a pod requests the `IfNotPresent` image pull policy, and might lead to the pod not starting if its pull policy is `Never` and is unable to present authentication information that lead to a previous successful pull of the image it is requesting. ([#128152](https://github.com/kubernetes/kubernetes/pull/128152), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Architecture, Auth, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2535-ensure-secret-pulled-images/README.md", + "type": "KEP" + } + ], + "author": "stlaz", + "author_url": "https://github.com/stlaz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128152", + "pr_number": 128152, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128184": { + "commit": "83c5f99f97b5916c4949f8df8a8d070ecc0ad66f", + "text": "The `StorageCapacityScoring` feature gate was added to score nodes by available storage capacity. It's in alpha and disabled by default. The `VolumeCapacityPriority` alpha feature was replaced with this, and the default behavior was changed. The `VolumeCapacityPriority` preferred a node with the least allocatable, but the `StorageCapacityScoring` preferred a node with the maximum allocatable. See [KEP-4049](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning/README.md) for details.", + "markdown": "The `StorageCapacityScoring` feature gate was added to score nodes by available storage capacity. It's in alpha and disabled by default. The `VolumeCapacityPriority` alpha feature was replaced with this, and the default behavior was changed. The `VolumeCapacityPriority` preferred a node with the least allocatable, but the `StorageCapacityScoring` preferred a node with the maximum allocatable. See [KEP-4049](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning/README.md) for details. ([#128184](https://github.com/kubernetes/kubernetes/pull/128184), [@cupnes](https://github.com/cupnes)) [SIG Scheduling, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning", + "type": "KEP" + } + ], + "author": "cupnes", + "author_url": "https://github.com/cupnes", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128184", + "pr_number": 128184, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature", + "deprecation" + ], + "sigs": [ + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128212": { + "commit": "3bec2450efd29787df0f27415de4e8049979654f", + "text": "Implemented validation for `NodeSelectorRequirement` values in Kubernetes when creating pods.", + "markdown": "Implemented validation for `NodeSelectorRequirement` values in Kubernetes when creating pods. ([#128212](https://github.com/kubernetes/kubernetes/pull/128212), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps and Scheduling]", + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128212", + "pr_number": 128212, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "apps", + "scheduling" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128367": { + "commit": "0634e21fb525743e68d677c53753b43a8b7471bc", + "text": "Added support for in-place vertical scaling of Pods with sidecars (containers defined within `initContainers` where the `restartPolicy` is set to `Always`).", + "markdown": "Added support for in-place vertical scaling of Pods with sidecars (containers defined within `initContainers` where the `restartPolicy` is set to `Always`). ([#128367](https://github.com/kubernetes/kubernetes/pull/128367), [@vivzbansal](https://github.com/vivzbansal)) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "vivzbansal", + "author_url": "https://github.com/vivzbansal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128367", + "pr_number": 128367, + "areas": [ + "test", + "kubelet", + "kubectl", + "e2e-test-framework" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "cli", + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "128372": { + "commit": "e0ab1a16adc67936d6810b54a4295dbce47df829", + "text": "Expanded the on-disk kubelet credential provider configuration to allow an optional `tokenAttribute` field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration.", + "markdown": "Expanded the on-disk kubelet credential provider configuration to allow an optional `tokenAttribute` field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration. ([#128372](https://github.com/kubernetes/kubernetes/pull/128372), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128372", + "pr_number": 128372, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128499": { + "commit": "309c4c17fb1dec52328f3e6b4482bc2a4037c45a", + "text": "The `ClusterTrustBundle` API is moving to `v1beta1`.\nIn order for the `ClusterTrustBundleProjection` feature to work on the kubelet side, the `ClusterTrustBundle` API must be available at `v1beta1` version and the `ClusterTrustBundleProjection` feature gate must be enabled. If the API becomes later after kubelet started running, restart the kubelet to enable the feature.", + "markdown": "The `ClusterTrustBundle` API is moving to `v1beta1`.\n In order for the `ClusterTrustBundleProjection` feature to work on the kubelet side, the `ClusterTrustBundle` API must be available at `v1beta1` version and the `ClusterTrustBundleProjection` feature gate must be enabled. If the API becomes later after kubelet started running, restart the kubelet to enable the feature. ([#128499](https://github.com/kubernetes/kubernetes/pull/128499), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Apps, Auth, Etcd, Node, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3257", + "type": "KEP" + } + ], + "author": "stlaz", + "author_url": "https://github.com/stlaz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128499", + "pr_number": 128499, + "areas": [ + "test", + "kubelet", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "etcd", + "node", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128516": { + "commit": "e9eff7445ebbce978c8245e664dda88c19675c52", + "text": "Fixed an issue where pods did not correctly have a pending phase after the node reboot.", + "markdown": "Fixed an issue where pods did not correctly have a pending phase after the node reboot. ([#128516](https://github.com/kubernetes/kubernetes/pull/128516), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing]", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128516", + "pr_number": 128516, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "128546": { + "commit": "5aeea45357176e7224f908329fb7958d88a7eeac", + "text": "Implemented a new status field, `.status.terminatingReplicas`, for Deployments and ReplicaSets to track terminating pods. The new field is present when the `DeploymentPodReplacementPolicy` feature gate is enabled.", + "markdown": "Implemented a new status field, `.status.terminatingReplicas`, for Deployments and ReplicaSets to track terminating pods. The new field is present when the `DeploymentPodReplacementPolicy` feature gate is enabled. ([#128546](https://github.com/kubernetes/kubernetes/pull/128546), [@atiratree](https://github.com/atiratree)) [SIG API Machinery, Apps and Testing]", + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128546", + "pr_number": 128546, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128586": { + "commit": "9d45ea8b9d0be4f2f90159ff272851b8e985c904", + "text": "Added DRA support for a \"one-of\" prioritized list of selection criteria to satisfy a device request in a resource claim.", + "markdown": "Added DRA support for a \"one-of\" prioritized list of selection criteria to satisfy a device request in a resource claim. ([#128586](https://github.com/kubernetes/kubernetes/pull/128586), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing]", + "author": "mortent", + "author_url": "https://github.com/mortent", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128586", + "pr_number": 128586, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "etcd", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128621": { + "commit": "a892f0fd80c548c4caedc35933bb441572135c35", + "text": "Fixed CVE-2024-51744.", + "markdown": "Fixed CVE-2024-51744. ([#128621](https://github.com/kubernetes/kubernetes/pull/128621), [@kmala](https://github.com/kmala)) [SIG Auth, Cloud Provider and Node]", + "author": "kmala", + "author_url": "https://github.com/kmala", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128621", + "pr_number": 128621, + "areas": [ + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "cloud-provider", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "128662": { + "commit": "0cc926220067cd814cecd8f3d0c3b9235e6a68db", + "text": "Fixed `kubectl wait --for=create` behavior with label selectors, to properly wait for resources with matching labels to appear.", + "markdown": "Fixed `kubectl wait --for=create` behavior with label selectors, to properly wait for resources with matching labels to appear. ([#128662](https://github.com/kubernetes/kubernetes/pull/128662), [@omerap12](https://github.com/omerap12)) [SIG CLI and Testing]", + "author": "omerap12", + "author_url": "https://github.com/omerap12", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128662", + "pr_number": 128662, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "128786": { + "commit": "3782b558a28fc5cc7d3f451fd03cbbb802d12a62", + "text": "The apiserver now returns warnings when objects are created with \"invalid\" IP\nor CIDR values (e.g. 192.168.000.005\", with extra zeros).\nNon-standard formats may introduce security risks and are likely to be\nforbidden in a future Kubernetes release.", + "markdown": "The apiserver now returns warnings when objects are created with \"invalid\" IP\n or CIDR values (e.g. 192.168.000.005\", with extra zeros).\n Non-standard formats may introduce security risks and are likely to be\n forbidden in a future Kubernetes release. ([#128786](https://github.com/kubernetes/kubernetes/pull/128786), [@danwinship](https://github.com/danwinship)) [SIG Apps, Network and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4858", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128786", + "pr_number": 128786, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "network", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128810": { + "commit": "6c108faaf621f2fe807f6d634d43458cc545fe58", + "text": "Implemented the `scheduler_cache_size` metric. \nAdditionally, the `scheduler_scheduler_cache_size` metric is now deprecated in favor of `scheduler_cache_size`, \nand will be removed in v1.34.", + "markdown": "Implemented the `scheduler_cache_size` metric. \nAdditionally, the `scheduler_scheduler_cache_size` metric is now deprecated in favor of `scheduler_cache_size`, \nand will be removed in v1.34. ([#128810](https://github.com/kubernetes/kubernetes/pull/128810), [@googs1025](https://github.com/googs1025))", + "author": "googs1025", + "author_url": "https://github.com/googs1025", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128810", + "pr_number": 128810, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "128811": { + "commit": "3ec9c7f4d20be445af83d0bd5c4e77a9f22ab6cc", + "text": "Added a `/statusz` HTTP endpoint to the kubelet.", + "markdown": "Added a `/statusz` HTTP endpoint to the kubelet. ([#128811](https://github.com/kubernetes/kubernetes/pull/128811), [@zhifei92](https://github.com/zhifei92)) [SIG Architecture, Instrumentation and Node]", + "author": "zhifei92", + "author_url": "https://github.com/zhifei92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128811", + "pr_number": 128811, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "architecture", + "instrumentation", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128818": { + "commit": "438bc5d44e5b72cad99d6eb521d2eb3572c5b034", + "text": "Added a `/statusz` HTTP endpoint to the kube-scheduler.", + "markdown": "Added a `/statusz` HTTP endpoint to the kube-scheduler. ([#128818](https://github.com/kubernetes/kubernetes/pull/128818), [@yongruilin](https://github.com/yongruilin)) [SIG Architecture, Instrumentation, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", + "type": "KEP" + } + ], + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128818", + "pr_number": 128818, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "architecture", + "instrumentation", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128824": { + "commit": "9693eea5c3a3d8b7ee7d9f2a16d1ca8f90395aa6", + "text": "Added a `/flagz` endpoint for kube-controller-manager endpoint", + "markdown": "Added a `/flagz` endpoint for kube-controller-manager endpoint ([#128824](https://github.com/kubernetes/kubernetes/pull/128824), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Instrumentation]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", + "type": "KEP" + } + ], + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128824", + "pr_number": 128824, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128850": { + "commit": "beeb1d2b847ba302406f3a4b9390afe0853968b9", + "text": "Fixed an issue with Kubernetes-style sidecar containers (in other words: init containers \nwith an Always restart policy) and Services. Before the fix, named ports \nexposed by a sidecar could not be accessed using a Service.", + "markdown": "Fixed an issue with Kubernetes-style sidecar containers (in other words: init containers \nwith an Always restart policy) and Services. Before the fix, named ports \nexposed by a sidecar could not be accessed using a Service. ([#128850](https://github.com/kubernetes/kubernetes/pull/128850), [@toVersus](https://github.com/toVersus)) [SIG Network and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/753", + "type": "KEP" + } + ], + "author": "toVersus", + "author_url": "https://github.com/toVersus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128850", + "pr_number": 128850, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "128856": { + "commit": "62e469abb2be372b45a6c095f7716a185cb5e827", + "text": "Fixed a linting issue in `TestNodeDeletionReleaseCIDR`.", + "markdown": "Fixed a linting issue in `TestNodeDeletionReleaseCIDR`. ([#128856](https://github.com/kubernetes/kubernetes/pull/128856), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network]", + "author": "adrianmoisey", + "author_url": "https://github.com/adrianmoisey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128856", + "pr_number": 128856, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true, + "is_mapped": true + }, + "128857": { + "commit": "953b40b34ec78d5e9df772820dd2242087785a70", + "text": "Added a `/flagz` endpoint for kubelet endpoint", + "markdown": "Added a `/flagz` endpoint for kubelet endpoint ([#128857](https://github.com/kubernetes/kubernetes/pull/128857), [@zhifei92](https://github.com/zhifei92)) [SIG Architecture, Instrumentation and Node]", + "author": "zhifei92", + "author_url": "https://github.com/zhifei92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128857", + "pr_number": 128857, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "architecture", + "instrumentation", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128886": { + "commit": "30ef6110a180395ad55d1afa5dc60c90a761ae64", + "text": "Implemented logging for failed transactions and the full table in `kube-proxy` with \n`nftables` when using log level 4 or higher. Logging is rate-limited to one entry every 24 hours \nto avoid performance issues.", + "markdown": "Implemented logging for failed transactions and the full table in `kube-proxy` with \n`nftables` when using log level 4 or higher. Logging is rate-limited to one entry every 24 hours \nto avoid performance issues. ([#128886](https://github.com/kubernetes/kubernetes/pull/128886), [@npinaeva](https://github.com/npinaeva))", + "author": "npinaeva", + "author_url": "https://github.com/npinaeva", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128886", + "pr_number": 128886, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "128906": { + "commit": "9f2f7a084cc8b961f0a0b2d9c2cbd822418d7cff", + "text": "Removed the deprecated `pod_scheduling_duration_seconds` metric. Users need to\nmigrate to `pod_scheduling_sli_duration_seconds`.", + "markdown": "Removed the deprecated `pod_scheduling_duration_seconds` metric. Users need to\n migrate to `pod_scheduling_sli_duration_seconds`. ([#128906](https://github.com/kubernetes/kubernetes/pull/128906), [@sanposhiho](https://github.com/sanposhiho)) [SIG Instrumentation and Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128906", + "pr_number": 128906, + "areas": [ + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "instrumentation", + "scheduling" + ], + "duplicate": true, + "is_mapped": true + }, + "128926": { + "commit": "b733c4a620e36ebb9889b75655003564f230d8f3", + "text": "Changed the dependency version for CoreDNS. Kubernetes tools now install CoreDNS `v1.12.0`.", + "markdown": "Changed the dependency version for CoreDNS. Kubernetes tools now install CoreDNS `v1.12.0`. ([#128926](https://github.com/kubernetes/kubernetes/pull/128926), [@bzsuni](https://github.com/bzsuni)) [SIG Cloud Provider and Cluster Lifecycle]", + "author": "bzsuni", + "author_url": "https://github.com/bzsuni", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128926", + "pr_number": 128926, + "areas": [ + "provider/gcp", + "kubeadm", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "cluster-lifecycle" + ], + "duplicate": true, + "is_mapped": true + }, + "128929": { + "commit": "aa931aa63572f4d6d9a814a8ed9bb0d9d1662dc5", + "text": "Fixed a bug where the kube-proxy `EndpointSliceCache` memory experienced a leak.", + "markdown": "Fixed a bug where the kube-proxy `EndpointSliceCache` memory experienced a leak. ([#128929](https://github.com/kubernetes/kubernetes/pull/128929), [@orange30](https://github.com/orange30))", + "author": "orange30", + "author_url": "https://github.com/orange30", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128929", + "pr_number": 128929, + "areas": [ + "test", + "kube-proxy", + "release-eng" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "128950": { + "commit": "fc53d1b297e8b393855b06b993f1e712a24883b7", + "text": "Upgraded the `kubectl autoscale` subcommand to use `autoscaling/v2` rather than `autoscaling/v1` APIs. \nThe command now attempts to use the `autoscaling/v2` API first. If the `autoscaling/v2` API is \nunavailable or an error occurs, it falls fall back to the `autoscaling/v1` API.", + "markdown": "Upgraded the `kubectl autoscale` subcommand to use `autoscaling/v2` rather than `autoscaling/v1` APIs. \nThe command now attempts to use the `autoscaling/v2` API first. If the `autoscaling/v2` API is \nunavailable or an error occurs, it falls fall back to the `autoscaling/v1` API. ([#128950](https://github.com/kubernetes/kubernetes/pull/128950), [@googs1025](https://github.com/googs1025)) [SIG Autoscaling and CLI]", + "author": "googs1025", + "author_url": "https://github.com/googs1025", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128950", + "pr_number": 128950, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "autoscaling", + "cli" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128971": { + "commit": "45d0fddaf1f24f7b559eb936308ce2aeb9871850", + "text": "Graduated `MultiCIDRServiceAllocator` to stable and `DisableAllocatorDualWrite` to beta (disabled by default).\nAction required for Kubernetes distributions that manage the cluster Service CIDR.\nThis feature allows users to define the cluster Service CIDR via a new API object: ServiceCIDR.\nDistributions or administrators of Kubernetes may want to control that new Service CIDRs added to the cluster\ndoes not overlap with other networks on the cluster, that only belong to a specific range of IPs or just simple retain the existing behavior of only having one ServiceCIDR per cluster. An example of a Validation Admission Policy to achieve this is [here](https://raw.githubusercontent.com/kubernetes/website/refs/heads/main/content/en/examples/policy/service-cluster-cidr-address-range.yaml)", + "markdown": "Graduated `MultiCIDRServiceAllocator` to stable and `DisableAllocatorDualWrite` to beta (disabled by default).\nAction required for Kubernetes distributions that manage the cluster Service CIDR.\nThis feature allows users to define the cluster Service CIDR via a new API object: ServiceCIDR.\nDistributions or administrators of Kubernetes may want to control that new Service CIDRs added to the cluster\ndoes not overlap with other networks on the cluster, that only belong to a specific range of IPs or just simple retain the existing behavior of only having one ServiceCIDR per cluster. An example of a Validation Admission Policy to achieve this is [here](https://raw.githubusercontent.com/kubernetes/website/refs/heads/main/content/en/examples/policy/service-cluster-cidr-address-range.yaml) ([#128971](https://github.com/kubernetes/kubernetes/pull/128971), [@aojea](https://github.com/aojea)) [SIG Apps, Architecture, Auth, CLI, Etcd, Network, Release and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1880", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/tasks/network/extend-service-ip-ranges/", + "type": "official" + }, + { + "description": "[Kubernetes ClusterIP allocation]", + "url": "https://kubernetes.io/docs/reference/networking/virtual-ips/#ip-address-allocation-tracking", + "type": "official" + } + ], + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128971", + "pr_number": 128971, + "areas": [ + "test", + "kube-proxy", + "apiserver", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "architecture", + "auth", + "cli", + "etcd", + "network", + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true, + "is_mapped": true + }, + "128972": { + "commit": "b358cf3a791bce0df23a52bb32b0e47e23746a8d", + "text": "Added e2e tests for volume group snapshots.", + "markdown": "Added e2e tests for volume group snapshots. ([#128972](https://github.com/kubernetes/kubernetes/pull/128972), [@manishym](https://github.com/manishym)) [SIG Cloud Provider, Storage and Testing]", + "author": "manishym", + "author_url": "https://github.com/manishym", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128972", + "pr_number": 128972, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cloud-provider", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128985": { + "commit": "a19c27d3e30c95de607e7def3894aed19ded4c59", + "text": "Added a `/flagz` endpoint for kube-proxy", + "markdown": "Added a `/flagz` endpoint for kube-proxy ([#128985](https://github.com/kubernetes/kubernetes/pull/128985), [@yongruilin](https://github.com/yongruilin)) [SIG Instrumentation and Network]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", + "type": "KEP" + } + ], + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128985", + "pr_number": 128985, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "network" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128987": { + "commit": "a0be82d80d2906590167eb81502e69cd1f90b08c", + "text": "Added a `/statusz` endpoint for kube-scheduler", + "markdown": "Added a `/statusz` endpoint for kube-scheduler ([#128987](https://github.com/kubernetes/kubernetes/pull/128987), [@Henrywu573](https://github.com/Henrywu573)) [SIG Instrumentation, Scheduling and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4827-component-statusz/README.md", + "type": "KEP" + }, + { + "description": "3. curl -k --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt --key /etc/kubernetes/pki/apiserver-kubelet-client.key", + "url": "https://localhost:10259/statusz", + "type": "external" + } + ], + "author": "Henrywu573", + "author_url": "https://github.com/Henrywu573", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128987", + "pr_number": 128987, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128989": { + "commit": "54eddbd50f510d668725ae83c02c458570b504f1", + "text": "Added a `/status` endpoint for kube-proxy", + "markdown": "Added a `/status` endpoint for kube-proxy ([#128989](https://github.com/kubernetes/kubernetes/pull/128989), [@Henrywu573](https://github.com/Henrywu573)) [SIG Instrumentation and Network]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", + "type": "KEP" + }, + { + "description": "root@kind-control-plane:/# curl", + "url": "http://localhost:10249/statusz", + "type": "external" + } + ], + "author": "Henrywu573", + "author_url": "https://github.com/Henrywu573", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128989", + "pr_number": 128989, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "instrumentation", + "network" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "128991": { + "commit": "22f25efc2cf890e719c6059d282d85e59f3c7894", + "text": "Added a `/statusz` endpoint for kube-controller-manager", + "markdown": "Added a `/statusz` endpoint for kube-controller-manager ([#128991](https://github.com/kubernetes/kubernetes/pull/128991), [@Henrywu573](https://github.com/Henrywu573)) [SIG API Machinery, Cloud Provider, Instrumentation and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", + "type": "KEP" + }, + { + "description": "root@kind-control-plane:/etc/kubernetes/manifests# curl -k --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt --key /etc/kubernetes/pki/apiserver-kubelet-client.key", + "url": "https://localhost:10257/statusz", + "type": "external" + } + ], + "author": "Henrywu573", + "author_url": "https://github.com/Henrywu573", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128991", + "pr_number": 128991, + "areas": [ + "test", + "cloudprovider" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "129006": { + "commit": "1f415b4e13e631a8d840551a8bfc2380af61b452", + "text": "kubeadm: Avoided loading the file passed to `--kubeconfig` during `kubeadm init` phases more than once.", + "markdown": "kubeadm: Avoided loading the file passed to `--kubeconfig` during `kubeadm init` phases more than once. ([#129006](https://github.com/kubernetes/kubernetes/pull/129006), [@kokes](https://github.com/kokes))", + "author": "kokes", + "author_url": "https://github.com/kokes", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129006", + "pr_number": 129006, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "129017": { + "commit": "7c887412c882afc130d78e4bb6efad056b0fe376", + "text": "Added a validation for the `revisionHistoryLimit` field in the `.spec` of a StatefulSet, to prevent it from being set to a negative value.", + "markdown": "Added a validation for the `revisionHistoryLimit` field in the `.spec` of a StatefulSet, to prevent it from being set to a negative value. ([#129017](https://github.com/kubernetes/kubernetes/pull/129017), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129017", + "pr_number": 129017, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "129023": { + "commit": "078664b424ba58087e1422590c55f7fbc46bbffd", + "text": "Renamed `UpdatePodTolerations` action type to `UpdatePodToleration`.\nAction required for custom plugin developers to update their code to follow the rename.", + "markdown": "Renamed `UpdatePodTolerations` action type to `UpdatePodToleration`.\n Action required for custom plugin developers to update their code to follow the rename. ([#129023](https://github.com/kubernetes/kubernetes/pull/129023), [@zhifei92](https://github.com/zhifei92)) [SIG Scheduling and Testing]", + "author": "zhifei92", + "author_url": "https://github.com/zhifei92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129023", + "pr_number": 129023, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "action_required": true, + "is_mapped": true + }, + "129028": { + "commit": "50fc400f178d2078d0ca46aee955ee26375fc437", + "text": "Added unit test helpers to validate CEL and patterns in CustomResourceDefinitions.", + "markdown": "Added unit test helpers to validate CEL and patterns in CustomResourceDefinitions. ([#129028](https://github.com/kubernetes/kubernetes/pull/129028), [@sttts](https://github.com/sttts))", + "author": "sttts", + "author_url": "https://github.com/sttts", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129028", + "pr_number": 129028, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "129058": { + "commit": "6bb5901e2da3596cea5ec9cc82155bd282741acb", + "text": "Revised scheduling behavior to correctly handle nominated node changes. Trigger rescheduling of pods \nif necessary when pods with nominated node names got deleted or nominated on a different node.", + "markdown": "Revised scheduling behavior to correctly handle nominated node changes. Trigger rescheduling of pods \nif necessary when pods with nominated node names got deleted or nominated on a different node. ([#129058](https://github.com/kubernetes/kubernetes/pull/129058), [@dom4ha](https://github.com/dom4ha)) [SIG Scheduling, Storage and Testing]", + "author": "dom4ha", + "author_url": "https://github.com/dom4ha", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129058", + "pr_number": 129058, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "129072": { + "commit": "c3d00023039f7929171ae332afcc327ae0d09e13", + "text": "Added validation of `containerLogMaxFiles` within kubelet configuration files.", + "markdown": "Added validation of `containerLogMaxFiles` within kubelet configuration files. ([#129072](https://github.com/kubernetes/kubernetes/pull/129072), [@kannon92](https://github.com/kannon92))", + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129072", + "pr_number": 129072, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "129106": { + "commit": "d1b702b0b83b7c4ea8d06b2dbd9d33e337117b9d", + "text": "Added an example of set-based requirements for the `-l` / `--selector` command line option to `kubectl`.", + "markdown": "Added an example of set-based requirements for the `-l` / `--selector` command line option to `kubectl`. ([#129106](https://github.com/kubernetes/kubernetes/pull/129106), [@rotsix](https://github.com/rotsix))", + "author": "rotsix", + "author_url": "https://github.com/rotsix", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129106", + "pr_number": 129106, + "areas": [ + "kubectl" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "129116": { + "commit": "5ba2b78eae18645744b51d94d279582bdcccec23", + "text": "Updated cri-tools to `v1.32.0`.", + "markdown": "Updated cri-tools to `v1.32.0`. ([#129116](https://github.com/kubernetes/kubernetes/pull/129116), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129116", + "pr_number": 129116, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "is_mapped": true + }, + "129119": { + "commit": "1c2b2cce10eb8fb136e16bdbcff6d45990dcdd2a", + "text": "Improved scheduling performance of pods with required topology spreading.", + "markdown": "Improved scheduling performance of pods with required topology spreading. ([#129119](https://github.com/kubernetes/kubernetes/pull/129119), [@macsko](https://github.com/macsko))", + "author": "macsko", + "author_url": "https://github.com/macsko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129119", + "pr_number": 129119, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "129131": { + "commit": "e81857488529551d95cdb1738660b82ed52301ba", + "text": "kubeadm: removed preflight check for `ip`, `iptables`, `ethtool` and `tc` on Linux nodes. kubelet and kube-proxy will continue to report `iptables` errors if its usage is required. The tools `ip`, `ethtool` and `tc` had legacy usage in the kubelet but are no longer required.", + "markdown": "Kubeadm: removed preflight check for `ip`, `iptables`, `ethtool` and `tc` on Linux nodes. kubelet and kube-proxy will continue to report `iptables` errors if its usage is required. The tools `ip`, `ethtool` and `tc` had legacy usage in the kubelet but are no longer required. ([#129131](https://github.com/kubernetes/kubernetes/pull/129131), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129131", + "pr_number": 129131, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "129142": { + "commit": "bf2a52a57aa33b9761d1a77f60b1637888ac2251", + "text": "Changed the signature of `PublishResources()` for ResourceSlices to accept a `resourceslice.DriverResources` parameter \ninstead of a `Resources` parameter.", + "markdown": "Changed the signature of `PublishResources()` for ResourceSlices to accept a `resourceslice.DriverResources` parameter \ninstead of a `Resources` parameter. ([#129142](https://github.com/kubernetes/kubernetes/pull/129142), [@googs1025](https://github.com/googs1025)) [SIG Node and Testing]", + "author": "googs1025", + "author_url": "https://github.com/googs1025", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129142", + "pr_number": 129142, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129151": { + "commit": "2b2644159f2b4efdddaf5b22f666244725dfc77f", + "text": "Improved reboot event reporting. The kubelet will only emit one reboot Event when a server-level reboot is detected, even if the kubelet cannot write its status to the associated Node (which triggers a retry).", + "markdown": "Improved reboot event reporting. The kubelet will only emit one reboot Event when a server-level reboot is detected, even if the kubelet cannot write its status to the associated Node (which triggers a retry). ([#129151](https://github.com/kubernetes/kubernetes/pull/129151), [@rphillips](https://github.com/rphillips))", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129151", + "pr_number": 129151, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "129170": { + "commit": "5c207d6fb028ce2f79373626c73dd8c60d0b57ae", + "text": "Fixed a data race that could occur when a single Go type was serialized to CBOR concurrently for the first time within a program.", + "markdown": "Fixed a data race that could occur when a single Go type was serialized to CBOR concurrently for the first time within a program. ([#129170](https://github.com/kubernetes/kubernetes/pull/129170), [@benluddy](https://github.com/benluddy))", + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129170", + "pr_number": 129170, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "129173": { + "commit": "efea0a0ed79df4d339bee432b442be11ef93c1aa", + "text": "Extended the schema of kube-proxy's metrics / endpoints to incorporate information about the corresponding IP family.", + "markdown": "Extended the schema of kube-proxy's metrics / endpoints to incorporate information about the corresponding IP family. ([#129173](https://github.com/kubernetes/kubernetes/pull/129173), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129173", + "pr_number": 129173, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true, + "is_mapped": true + }, + "129174": { + "commit": "7a504aa97bf3006848b1dc9281aa039ad180ae81", + "text": "Removed the limitation on exposing port 10250 externally using a Service.", + "markdown": "Removed the limitation on exposing port 10250 externally using a Service. ([#129174](https://github.com/kubernetes/kubernetes/pull/129174), [@RyanAoh](https://github.com/RyanAoh)) [SIG Apps and Network]", + "author": "RyanAoh", + "author_url": "https://github.com/RyanAoh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129174", + "pr_number": 129174, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true, + "is_mapped": true + }, + "129175": { + "commit": "1a1f5221260ec868bc0ef78fb2b805d41b4e83c7", + "text": "Renamed coredns metrics, see https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics.", + "markdown": "Renamed coredns metrics, see https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics. ([#129175](https://github.com/kubernetes/kubernetes/pull/129175), [@DamianSawicki](https://github.com/DamianSawicki)) [SIG Cloud Provider]", + "author": "DamianSawicki", + "author_url": "https://github.com/DamianSawicki", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129175", + "pr_number": 129175, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "is_mapped": true + }, + "129186": { + "commit": "58aafb61d4a474c47b7e0883ca30cee1d3913f54", + "text": "kube-apiserver: inactive serving code is removed for `authentication.k8s.io/v1alpha1` APIs", + "markdown": "kube-apiserver: inactive serving code is removed for `authentication.k8s.io/v1alpha1` APIs ([#129186](https://github.com/kubernetes/kubernetes/pull/129186), [@liggitt](https://github.com/liggitt)) [SIG Auth and Testing]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129186", + "pr_number": 129186, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "129207": { + "commit": "cc03c6058be16f45dda9e6c8b782747ec0d692f6", + "text": "Removed support for `v1alpha1` version of `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` API kinds.", + "markdown": "Removed support for `v1alpha1` version of `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` API kinds. ([#129207](https://github.com/kubernetes/kubernetes/pull/129207), [@Jefftree](https://github.com/Jefftree)) [SIG Etcd and Testing]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129207", + "pr_number": 129207, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "etcd", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "129219": { + "commit": "9bf60d06e08024cbf10ea33a59e7336f65b7d2df", + "text": "When using the Alpha `DRAResourceClaimDeviceStatus` feature, IP address values\nin the `NetworkDeviceData` are now validated more strictly.", + "markdown": "When using the Alpha `DRAResourceClaimDeviceStatus` feature, IP address values\n in the `NetworkDeviceData` are now validated more strictly. ([#129219](https://github.com/kubernetes/kubernetes/pull/129219), [@danwinship](https://github.com/danwinship)) [SIG Network]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4858", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129219", + "pr_number": 129219, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "129232": { + "commit": "9709d36dda75ff82d1a8121edb23568a1d65ab82", + "text": "Renamed some metrics related to CoreDNS, see the [README](https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics) for `v1.11.0` of CoreDNS.", + "markdown": "Renamed some metrics related to CoreDNS, see the [README](https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics) for `v1.11.0` of CoreDNS. ([#129232](https://github.com/kubernetes/kubernetes/pull/129232), [@DamianSawicki](https://github.com/DamianSawicki))", + "author": "DamianSawicki", + "author_url": "https://github.com/DamianSawicki", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129232", + "pr_number": 129232, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "is_mapped": true + }, + "129257": { + "commit": "2a609cd6e26162fd44c5660bfdf206168efdd60c", + "text": "`kubectl apply` now coerces `null` values for labels and annotations in manifests to empty string values, consistent with typed JSON metadata decoding, rather than dropping all labels and annotations", + "markdown": "`kubectl apply` now coerces `null` values for labels and annotations in manifests to empty string values, consistent with typed JSON metadata decoding, rather than dropping all labels and annotations ([#129257](https://github.com/kubernetes/kubernetes/pull/129257), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129257", + "pr_number": 129257, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "129271": { + "commit": "3a4c2a0bbbacfe875bae4664c5ca12fcb0fa2cf4", + "text": "Extended the schema of the kube-proxy `healthz` and `livez` HTTP endpoints to incorporate information about the corresponding IP family.", + "markdown": "Extended the schema of the kube-proxy `healthz` and `livez` HTTP endpoints to incorporate information about the corresponding IP family. ([#129271](https://github.com/kubernetes/kubernetes/pull/129271), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows]", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129271", + "pr_number": 129271, + "areas": [ + "kube-proxy", + "ipvs" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "windows" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "129278": { + "commit": "fab7593a29afcc6aa2baaf67320a45f35874882f", + "text": "kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the flag `--container-runtime-endpoint` from the `/var/lib/kubelet/kubeadm-flags.env` file on `kubeadm upgrade`.", + "markdown": "kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the flag `--container-runtime-endpoint` from the `/var/lib/kubelet/kubeadm-flags.env` file on `kubeadm upgrade`. ([#129278](https://github.com/kubernetes/kubernetes/pull/129278), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/4656-add-kubelet-instance-configuration", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129278", + "pr_number": 129278, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "129279": { + "commit": "80379db5d5f4f9257a07627d5d4caec088db0c59", + "text": "kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from a given node on `kubeadm upgrade`.", + "markdown": "kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from a given node on `kubeadm upgrade`. ([#129279](https://github.com/kubernetes/kubernetes/pull/129279), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle and Testing]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/4656-add-kubelet-instance-configuration", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129279", + "pr_number": 129279, + "areas": [ + "test", + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "129295": { + "commit": "157f42bff333811956531ea692cc1fdfa0d6a0a4", + "text": "Removed general available feature gate `PersistentVolumeLastPhaseTransitionTime`.", + "markdown": "Removed general available feature gate `PersistentVolumeLastPhaseTransitionTime`. ([#129295](https://github.com/kubernetes/kubernetes/pull/129295), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129295", + "pr_number": 129295, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "129296": { + "commit": "3eb5fa2b1b44aa7e188af9f13a04f60cfc8421a5", + "text": "Removed general available feature gate `CPUManager`.", + "markdown": "Removed general available feature gate `CPUManager`. ([#129296](https://github.com/kubernetes/kubernetes/pull/129296), [@carlory](https://github.com/carlory)) [SIG API Machinery, Node and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129296", + "pr_number": 129296, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129297": { + "commit": "0caa36cfb055b76213371461c5e16ad0a6584089", + "text": "Promoted the feature gate `CSIMigrationPortworx` to GA. If your applications are using Portworx volumes, please make sure that the corresponding Portworx CSI driver is installed on your cluster **before** upgrading to 1.31 or later because all operations for the in-tree `portworxVolume` type are redirected to the pxd.portworx.com CSI driver when the feature gate is enabled.", + "markdown": "Promoted the feature gate `CSIMigrationPortworx` to GA. If your applications are using Portworx volumes, please make sure that the corresponding Portworx CSI driver is installed on your cluster **before** upgrading to 1.31 or later because all operations for the in-tree `portworxVolume` type are redirected to the pxd.portworx.com CSI driver when the feature gate is enabled. ([#129297](https://github.com/kubernetes/kubernetes/pull/129297), [@gohilankit](https://github.com/gohilankit))", + "author": "gohilankit", + "author_url": "https://github.com/gohilankit", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129297", + "pr_number": 129297, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true, + "is_mapped": true + }, + "129301": { + "commit": "a4b8a3b2e33a3b591884f69b64f439e6b880dc40", + "text": "Fixed a panic in kube-controller-manager handling StatefulSet objects when `revisionHistoryLimit` is negative.", + "markdown": "Fixed a panic in kube-controller-manager handling StatefulSet objects when `revisionHistoryLimit` is negative. ([#129301](https://github.com/kubernetes/kubernetes/pull/129301), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129301", + "pr_number": 129301, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "129307": { + "commit": "7f3d23554bb50eb1d1a47d962cc196d9591b5bf2", + "text": "Fixed an issue in register-gen where imports for k8s.io/apimachinery/pkg/runtime and k8s.io/apimachinery/pkg/runtime/schema were missing.", + "markdown": "Fixed an issue in register-gen where imports for k8s.io/apimachinery/pkg/runtime and k8s.io/apimachinery/pkg/runtime/schema were missing. ([#129307](https://github.com/kubernetes/kubernetes/pull/129307), [@LionelJouin](https://github.com/LionelJouin))", + "author": "LionelJouin", + "author_url": "https://github.com/LionelJouin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129307", + "pr_number": 129307, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "129317": { + "commit": "646e7f04d91d6f5bb8d1dfa64a4a09cd95115728", + "text": "kubeadm: removed preflight check for `touch` on Linux nodes.", + "markdown": "kubeadm: removed preflight check for `touch` on Linux nodes. ([#129317](https://github.com/kubernetes/kubernetes/pull/129317), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129317", + "pr_number": 129317, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "129334": { + "commit": "2fc329c857035676492aa6e6a995ef31448465f0", + "text": "Improved how the API server responds to **list** requests where the response format negotiates to JSON. \nList responses in JSON are marshalled one element at the time, drastically reducing memory needed to serve \nlarge collections. Streaming list responses can be disabled via the `StreamingJSONListEncoding` feature gate.", + "markdown": "Improved how the API server responds to **list** requests where the response format negotiates to JSON. \nList responses in JSON are marshalled one element at the time, drastically reducing memory needed to serve \nlarge collections. Streaming list responses can be disabled via the `StreamingJSONListEncoding` feature gate. ([#129334](https://github.com/kubernetes/kubernetes/pull/129334), [@serathius](https://github.com/serathius)) [SIG API Machinery, Architecture and Release]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129334", + "pr_number": 129334, + "areas": [ + "apiserver", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "release" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "129368": { + "commit": "80bf507facbd11711ef322f2c992c68994228785", + "text": "Fix: Adopted go1.23 behavior change in mount point parsing on Windows.", + "markdown": "Fix: Adopted go1.23 behavior change in mount point parsing on Windows. ([#129368](https://github.com/kubernetes/kubernetes/pull/129368), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage and Windows]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129368", + "pr_number": 129368, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "windows" + ], + "duplicate": true, + "is_mapped": true + }, + "129370": { + "commit": "b84cb65f932ae02d06db26c5f9290489e97f9048", + "text": "[Action Required] CSI drivers that calls `IsLikelyNotMountPoint` should not assume false means that the path is a mount point. \nEach CSI driver needs to make sure correct usage of return value of `IsLikelyNotMountPoint` \nbecause if the file is an irregular file but not a mount point is acceptable", + "markdown": "[Action Required] CSI drivers that calls `IsLikelyNotMountPoint` should not assume false means that the path is a mount point. \nEach CSI driver needs to make sure correct usage of return value of `IsLikelyNotMountPoint`\nbecause if the file is an irregular file but not a mount point is acceptable ([#129370](https://github.com/kubernetes/kubernetes/pull/129370), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage and Windows]", + "author": "andyzhangx", + "author_url": "https://github.com/andyzhangx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129370", + "pr_number": 129370, + "kinds": [ + "bug" + ], + "sigs": [ + "storage", + "windows" + ], + "duplicate": true, + "action_required": true, + "is_mapped": true + }, + "129375": { + "commit": "c5b83f7c6c3bfd391edce4c6adb3bbf95b9ddab3", + "text": "Removed general available feature-gate `AppArmor`.", + "markdown": "Removed general available feature-gate `AppArmor`. ([#129375](https://github.com/kubernetes/kubernetes/pull/129375), [@carlory](https://github.com/carlory)) [SIG Auth and Node]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129375", + "pr_number": 129375, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "129401": { + "commit": "3c229949f992d9f798bcfd9f79dab88c21500c36", + "text": "kubeadm: run kernel version and OS version preflight checks for `kubeadm upgrade`.", + "markdown": "kubeadm: run kernel version and OS version preflight checks for `kubeadm upgrade`. ([#129401](https://github.com/kubernetes/kubernetes/pull/129401), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129401", + "pr_number": 129401, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "129407": { + "commit": "1b6e321e2311757a521615917f99dbe8e58f623c", + "text": "Improved how the API server responds to **list** requests where the response format negotiates to Protobuf. List responses in Protobuf are marshalled one element at the time, drastically reducing memory needed to serve large collections. Streaming list responses can be disabled via the `StreamingCollectionEncodingToProtobuf` feature gate.", + "markdown": "Improved how the API server responds to **list** requests where the response format negotiates to Protobuf. List responses in Protobuf are marshalled one element at the time, drastically reducing memory needed to serve large collections. Streaming list responses can be disabled via the `StreamingCollectionEncodingToProtobuf` feature gate. ([#129407](https://github.com/kubernetes/kubernetes/pull/129407), [@serathius](https://github.com/serathius)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Network, Node, Release, Scheduling, Storage and Testing]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129407", + "pr_number": 129407, + "areas": [ + "test", + "kube-proxy", + "apiserver", + "kubectl", + "provider/gcp", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "cli", + "cloud-provider", + "network", + "node", + "release", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129418": { + "commit": "7606b77fff3c3739cf0a2bdedcfe2280cefbd63d", + "text": "kubeadm: if an addon is disabled in the ClusterConfiguration, skip it during upgrade.", + "markdown": "kubeadm: if an addon is disabled in the ClusterConfiguration, skip it during upgrade. ([#129418](https://github.com/kubernetes/kubernetes/pull/129418), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129418", + "pr_number": 129418, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "129450": { + "commit": "fcc1e9002af912ccfca0e5553bc8b7890b18115a", + "text": "kubeadm: removed preflight check for nsenter on Linux nodes\nkubeadm: added preflight check for `losetup` on Linux nodes. It's required by kubelet for keeping a block device opened.", + "markdown": "kubeadm: removed preflight check for nsenter on Linux nodes\nkubeadm: added preflight check for `losetup` on Linux nodes. It's required by kubelet for keeping a block device opened. ([#129450](https://github.com/kubernetes/kubernetes/pull/129450), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129450", + "pr_number": 129450, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "129452": { + "commit": "87cf098f34b6782d20cbfaced2b4260a595ac066", + "text": "kubeadm: fixed a bug where the `node.skipPhases` in UpgradeConfiguration is not respected by the `kubeadm upgrade node` subcommand.", + "markdown": "kubeadm: fixed a bug where the `node.skipPhases` in UpgradeConfiguration is not respected by the `kubeadm upgrade node` subcommand. ([#129452](https://github.com/kubernetes/kubernetes/pull/129452), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129452", + "pr_number": 129452, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "129457": { + "commit": "4114a9b4e45a4df96f0383d87b2649640a6ffbf1", + "text": "[kubectl] Improved the describe output for projected volume sources to clearly indicate whether Secret and ConfigMap entries are optional.", + "markdown": "[kubectl] Improved the describe output for projected volume sources to clearly indicate whether Secret and ConfigMap entries are optional. ([#129457](https://github.com/kubernetes/kubernetes/pull/129457), [@gshaibi](https://github.com/gshaibi))", + "author": "gshaibi", + "author_url": "https://github.com/gshaibi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129457", + "pr_number": 129457, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "129486": { + "commit": "f82439f53654a2f86797c1b949cd337e4e1ba9ce", + "text": "Fixed a bug to ensure container-level swap metrics are collected.", + "markdown": "Fixed a bug to ensure container-level swap metrics are collected. ([#129486](https://github.com/kubernetes/kubernetes/pull/129486), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md", + "type": "KEP" + } + ], + "author": "iholder101", + "author_url": "https://github.com/iholder101", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129486", + "pr_number": 129486, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129497": { + "commit": "c75960c414eee173a0363eed257358fd5022651d", + "text": "Removed generally available feature-gate `AppArmorFields`.", + "markdown": "Removed generally available feature-gate `AppArmorFields`. ([#129497](https://github.com/kubernetes/kubernetes/pull/129497), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129497", + "pr_number": 129497, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "129498": { + "commit": "e8ed01179a402568874d33b67de78ec205debc6c", + "text": "Removed the `JobPodFailurePolicy` feature gate, which graduated to GA in 1.31 and was unconditionally enabled.", + "markdown": "Removed the `JobPodFailurePolicy` feature gate, which graduated to GA in 1.31 and was unconditionally enabled. ([#129498](https://github.com/kubernetes/kubernetes/pull/129498), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3329-retriable-and-non-retriable-failures", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129498", + "pr_number": 129498, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "129500": { + "commit": "f1b3fdf7e6d40714b1a43757221832aa1c4a49d1", + "text": "Removed general available feature-gate `PDBUnhealthyPodEvictionPolicy`.", + "markdown": "Removed general available feature-gate `PDBUnhealthyPodEvictionPolicy`. ([#129500](https://github.com/kubernetes/kubernetes/pull/129500), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Auth]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129500", + "pr_number": 129500, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "auth" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129506": { + "commit": "728a4d2a484e0bf09a6f33e59230246a62d3cc11", + "text": "Enabled ratcheting validation on `status` subresources for CustomResourceDefinitions.", + "markdown": "Enabled ratcheting validation on `status` subresources for CustomResourceDefinitions. ([#129506](https://github.com/kubernetes/kubernetes/pull/129506), [@JoelSpeed](https://github.com/JoelSpeed))", + "author": "JoelSpeed", + "author_url": "https://github.com/JoelSpeed", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129506", + "pr_number": 129506, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "129543": { + "commit": "db1da72beed99f1fcb2955c2624c7dd3531384ea", + "text": "DRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the `status.reservedFor` field.", + "markdown": "DRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the `status.reservedFor` field. ([#129543](https://github.com/kubernetes/kubernetes/pull/129543), [@pohly](https://github.com/pohly)) [SIG API Machinery, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129543", + "pr_number": 129543, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129545": { + "commit": "5da75638ee9ebb58794b538293767a7aa0120603", + "text": "...\n+ /home/prow/go/src/k8s.io/kubernetes/_output/bin/ginkgo --nodes=25 --poll-progress-after=60m --poll-progress-interval=5m --source-root=/home/prow/go/src/k8s.io/kubernetes/cluster/.. --timeout=24h --silence-skips --force-newlines --no-color /home/prow/go/src/k8s.io/kubernetes/_output/bin/e2e.test -- --kubeconfig=/root/.kube/kind-test-config --host=https://127.0.0.1:43881 --provider=skeleton --gce-project= --gce-zone= --gce-region= --gce-multizone=false --gke-cluster= --kube-master= --cluster-tag= --cloud-config-file= --repo-root=/home/prow/go/src/k8s.io/kubernetes/cluster/.. --node-instance-group= --prefix=e2e --network=e2e --node-tag= --master-tag= --docker-config-file= --dns-domain=cluster.local --prepull-images=false --report-complete-ginkgo --report-complete-junit --provider=skeleton --num-nodes=2 --ginkgo.focus=. '--ginkgo.skip=\\[Serial\\]|\\[Slow\\]|\\[Disruptive\\]|\\[Flaky\\]|\\[Feature:.+\\]|PodSecurityPolicy|LoadBalancer|load.balancer|Simple.pod.should.support.exec.through.an.HTTP.proxy|subPath.should.support.existing|NFS|nfs|inline.execution.and.attach|should.be.rejected.when.no.endpoints.exist' --ginkgo.label-filter= --report-dir=/logs/artifacts --disable-log-dump=true\nRunning Suite: Kubernetes e2e suite - /home/prow/go/src/k8s.io/kubernetes/_output/bin\n=====================================================================================\nRandom Seed: 1737026902 - will randomize all specs\n\nWill run 2025 of 6644 specs\nRunning in parallel across 25 processes\n•\n...\n•\n{\"component\":\"entrypoint\",\"file\":\"sigs.k8s.io/prow/pkg/entrypoint/run.go:169\",\"func\":\"sigs.k8s.io/prow/pkg/entrypoint.Options.ExecuteProcess\",\"level\":\"error\",\"msg\":\"Process did not finish before 1h0m0s timeout\",\"severity\":\"error\",\"time\":\"2025-01-16T12:17:50Z\"}\nwrapper.sh] [EARLY EXIT] Interrupted, entering handler ...\n...\n+ signal_handler\n+ [ -n 69647 ]\n+ kill -TERM 69647\n+ cleanup\n+ [ false = true ]\n+ [ true = true ]\n+ kind export logs /logs/artifacts\n...\nwrapper.sh] [EARLY EXIT] Completed handler ...\n ------------------------------\n Progress Report for Ginkgo Process #2\n Automatically polling progress:\n [sig-cli] Kubectl client Kubectl cluster-info dump should check if cluster-info dump succeeds (Spec Runtime: 1h0m0.082s)\n k8s.io/kubernetes/test/e2e/kubectl/kubectl.go:1376\n In [It] (Node Runtime: 1h0m0s)\n k8s.io/kubernetes/test/e2e/kubectl/kubectl.go:1376\n\n Begin Captured GinkgoWriter Output \u003e\u003e\n I0116 11:29:39.530877 69841 util.go:502] \u003e\u003e\u003e kubeConfig: /root/.kube/kind-test-config\n \u003c\u003c End Captured GinkgoWriter Output\n\n Spec Goroutine\n goroutine 7161 [select]\n github.com/onsi/gomega/internal.(*AsyncAssertion).match(0xc002b1a700, {0x53308c8, 0xc000c48ed0}, 0x1, {0x0, 0x0, 0x0})\n github.com/onsi/gomega@v1.35.1/internal/async_assertion.go:546\n github.com/onsi/gomega/internal.(*AsyncAssertion).Should(0xc002b1a700, {0x53308c8, 0xc000c48ed0}, {0x0, 0x0, 0x0})\n github.com/onsi/gomega@v1.35.1/internal/async_assertion.go:145\n \u003e k8s.io/kubernetes/test/e2e/kubectl.init.func5.19.1({0x7f29e05fbe50?, 0xc002b104e0})\n k8s.io/kubernetes/test/e2e/kubectl/kubectl.go:1380\n github.com/onsi/ginkgo/v2/internal.extractBodyFunction.func2({0x5357590?, 0xc002b104e0?})\n github.com/onsi/ginkgo/v2@v2.21.0/internal/node.go:465\n github.com/onsi/ginkgo/v2/internal.(*Suite).runNode.func3()\n github.com/onsi/ginkgo/v2@v2.21.0/internal/suite.go:894\n github.com/onsi/ginkgo/v2/internal.(*Suite).runNode in goroutine 6404\n github.com/onsi/ginkgo/v2@v2.21.0/internal/suite.go:881\n\n Begin Additional Progress Reports \u003e\u003e\n fake error to block test\n \u003c\u003c End Additional Progress Reports\n ------------------------------\n{\"component\":\"entrypoint\",\"file\":\"sigs.k8s.io/prow/pkg/entrypoint/run.go:267\",\"func\":\"sigs.k8s.io/prow/pkg/entrypoint.gracefullyTerminate\",\"level\":\"error\",\"msg\":\"Process did not exit before 15m0s grace period\",\"severity\":\"error\",\"time\":\"2025-01-16T12:32:50Z\"}\n{\"component\":\"entrypoint\",\"error\":\"os: process already finished\",\"file\":\"sigs.k8s.io/prow/pkg/entrypoint/run.go:269\",\"func\":\"sigs.k8s.io/prow/pkg/entrypoint.gracefullyTerminate\",\"level\":\"error\",\"msg\":\"Could not kill process after grace period\",\"severity\":\"error\",\"time\":\"2025-01-16T12:32:50Z\"}", + "markdown": "...\n + /home/prow/go/src/k8s.io/kubernetes/_output/bin/ginkgo --nodes=25 --poll-progress-after=60m --poll-progress-interval=5m --source-root=/home/prow/go/src/k8s.io/kubernetes/cluster/.. --timeout=24h --silence-skips --force-newlines --no-color /home/prow/go/src/k8s.io/kubernetes/_output/bin/e2e.test -- --kubeconfig=/root/.kube/kind-test-config --host=https://127.0.0.1:43881 --provider=skeleton --gce-project= --gce-zone= --gce-region= --gce-multizone=false --gke-cluster= --kube-master= --cluster-tag= --cloud-config-file= --repo-root=/home/prow/go/src/k8s.io/kubernetes/cluster/.. --node-instance-group= --prefix=e2e --network=e2e --node-tag= --master-tag= --docker-config-file= --dns-domain=cluster.local --prepull-images=false --report-complete-ginkgo --report-complete-junit --provider=skeleton --num-nodes=2 --ginkgo.focus=. '--ginkgo.skip=\\[Serial\\]|\\[Slow\\]|\\[Disruptive\\]|\\[Flaky\\]|\\[Feature:.+\\]|PodSecurityPolicy|LoadBalancer|load.balancer|Simple.pod.should.support.exec.through.an.HTTP.proxy|subPath.should.support.existing|NFS|nfs|inline.execution.and.attach|should.be.rejected.when.no.endpoints.exist' --ginkgo.label-filter= --report-dir=/logs/artifacts --disable-log-dump=true\n Running Suite: Kubernetes e2e suite - /home/prow/go/src/k8s.io/kubernetes/_output/bin\n =====================================================================================\n Random Seed: 1737026902 - will randomize all specs\n \n Will run 2025 of 6644 specs\n Running in parallel across 25 processes\n •\n ...\n •\n {\"component\":\"entrypoint\",\"file\":\"sigs.k8s.io/prow/pkg/entrypoint/run.go:169\",\"func\":\"sigs.k8s.io/prow/pkg/entrypoint.Options.ExecuteProcess\",\"level\":\"error\",\"msg\":\"Process did not finish before 1h0m0s timeout\",\"severity\":\"error\",\"time\":\"2025-01-16T12:17:50Z\"}\n wrapper.sh] [EARLY EXIT] Interrupted, entering handler ...\n ...\n + signal_handler\n + [ -n 69647 ]\n + kill -TERM 69647\n + cleanup\n + [ false = true ]\n + [ true = true ]\n + kind export logs /logs/artifacts\n ...\n wrapper.sh] [EARLY EXIT] Completed handler ...\n ------------------------------\n Progress Report for Ginkgo Process #2\n Automatically polling progress:\n [sig-cli] Kubectl client Kubectl cluster-info dump should check if cluster-info dump succeeds (Spec Runtime: 1h0m0.082s)\n k8s.io/kubernetes/test/e2e/kubectl/kubectl.go:1376\n In [It] (Node Runtime: 1h0m0s)\n k8s.io/kubernetes/test/e2e/kubectl/kubectl.go:1376\n \n Begin Captured GinkgoWriter Output \u003e\u003e\n I0116 11:29:39.530877 69841 util.go:502] \u003e\u003e\u003e kubeConfig: /root/.kube/kind-test-config\n \u003c\u003c End Captured GinkgoWriter Output\n \n Spec Goroutine\n goroutine 7161 [select]\n github.com/onsi/gomega/internal.(*AsyncAssertion).match(0xc002b1a700, {0x53308c8, 0xc000c48ed0}, 0x1, {0x0, 0x0, 0x0})\n github.com/onsi/gomega@v1.35.1/internal/async_assertion.go:546\n github.com/onsi/gomega/internal.(*AsyncAssertion).Should(0xc002b1a700, {0x53308c8, 0xc000c48ed0}, {0x0, 0x0, 0x0})\n github.com/onsi/gomega@v1.35.1/internal/async_assertion.go:145\n \u003e k8s.io/kubernetes/test/e2e/kubectl.init.func5.19.1({0x7f29e05fbe50?, 0xc002b104e0})\n k8s.io/kubernetes/test/e2e/kubectl/kubectl.go:1380\n github.com/onsi/ginkgo/v2/internal.extractBodyFunction.func2({0x5357590?, 0xc002b104e0?})\n github.com/onsi/ginkgo/v2@v2.21.0/internal/node.go:465\n github.com/onsi/ginkgo/v2/internal.(*Suite).runNode.func3()\n github.com/onsi/ginkgo/v2@v2.21.0/internal/suite.go:894\n github.com/onsi/ginkgo/v2/internal.(*Suite).runNode in goroutine 6404\n github.com/onsi/ginkgo/v2@v2.21.0/internal/suite.go:881\n \n Begin Additional Progress Reports \u003e\u003e\n fake error to block test\n \u003c\u003c End Additional Progress Reports\n ------------------------------\n {\"component\":\"entrypoint\",\"file\":\"sigs.k8s.io/prow/pkg/entrypoint/run.go:267\",\"func\":\"sigs.k8s.io/prow/pkg/entrypoint.gracefullyTerminate\",\"level\":\"error\",\"msg\":\"Process did not exit before 15m0s grace period\",\"severity\":\"error\",\"time\":\"2025-01-16T12:32:50Z\"}\n {\"component\":\"entrypoint\",\"error\":\"os: process already finished\",\"file\":\"sigs.k8s.io/prow/pkg/entrypoint/run.go:269\",\"func\":\"sigs.k8s.io/prow/pkg/entrypoint.gracefullyTerminate\",\"level\":\"error\",\"msg\":\"Could not kill process after grace period\",\"severity\":\"error\",\"time\":\"2025-01-16T12:32:50Z\"} ([#129545](https://github.com/kubernetes/kubernetes/pull/129545), [@pohly](https://github.com/pohly)) [SIG CLI, Node and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129545", + "pr_number": 129545, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli", + "node", + "testing" + ], + "duplicate": true, + "do_not_publish": true + }, + "129560": { + "commit": "481cc1a39217e1c058f6b2fb7517a8d03ee40382", + "text": "DRA: when asking for \"All\" devices on a node, Kubernetes \u003c= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the \"proceed with scheduling also without devices\" semantic can use the upcoming prioritized list feature with one sub-request for \"all\" devices and a second alternative with \"count: 0\".", + "markdown": "DRA: when asking for \"All\" devices on a node, Kubernetes \u003c= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the \"proceed with scheduling also without devices\" semantic can use the upcoming prioritized list feature with one sub-request for \"all\" devices and a second alternative with \"count: 0\". ([#129560](https://github.com/kubernetes/kubernetes/pull/129560), [@bart0sh](https://github.com/bart0sh)) [SIG API Machinery and Node]", + "author": "bart0sh", + "author_url": "https://github.com/bart0sh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129560", + "pr_number": 129560, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "node" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129568": { + "commit": "a8ef3639f9db66d8c894a880fd35a9cd011b2cb9", + "text": "--feature-gate=InOrderInformers (default on), causes informers to process watch streams in order as opposed to grouping updates for the same item close together. Binaries embedding client-go, but not wiring the featuregates can disable by setting the `KUBE_FEATURE_InOrderInformers=false`.", + "markdown": "--feature-gate=InOrderInformers (default on), causes informers to process watch streams in order as opposed to grouping updates for the same item close together. Binaries embedding client-go, but not wiring the featuregates can disable by setting the `KUBE_FEATURE_InOrderInformers=false`. ([#129568](https://github.com/kubernetes/kubernetes/pull/129568), [@deads2k](https://github.com/deads2k))", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129568", + "pr_number": 129568, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "129583": { + "commit": "a743616631aaa52fc16c5991349a8d0c9650cc83", + "text": "Promoted the feature gate `HonorPVReclaimPolicy` to GA.", + "markdown": "Promoted the feature gate `HonorPVReclaimPolicy` to GA. ([#129583](https://github.com/kubernetes/kubernetes/pull/129583), [@carlory](https://github.com/carlory)) [SIG Apps, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2644", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129583", + "pr_number": 129583, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "129589": { + "commit": "a31857681714780ce60562f87d40dc6cfbfdeda4", + "text": "kubeadm: removed the feature gate `EtcdLearnerMode` which graduated to GA in 1.32.", + "markdown": "kubeadm: removed the feature gate `EtcdLearnerMode` which graduated to GA in 1.32. ([#129589](https://github.com/kubernetes/kubernetes/pull/129589), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129589", + "pr_number": 129589, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "129591": { + "commit": "c9f695138b7a0319aec70aa6cb37b0846ff9b656", + "text": "kube-apiserver: Promoted the `ServiceAccountTokenNodeBinding` feature gate general availability. It is now locked to enabled.", + "markdown": "kube-apiserver: Promoted the `ServiceAccountTokenNodeBinding` feature gate general availability. It is now locked to enabled. ([#129591](https://github.com/kubernetes/kubernetes/pull/129591), [@liggitt](https://github.com/liggitt)) [SIG Auth and Testing]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129591", + "pr_number": 129591, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "129594": { + "commit": "e38489303019d442b87611182eb63c94d6e54f03", + "text": "kubeadm: fixed a bug where an image is not pulled if there is an error with the sandbox image from CRI.", + "markdown": "kubeadm: fixed a bug where an image is not pulled if there is an error with the sandbox image from CRI. ([#129594](https://github.com/kubernetes/kubernetes/pull/129594), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129594", + "pr_number": 129594, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "129620": { + "commit": "569d1896e6319ac36aad86ca9cb86a43b077018f", + "text": "kubeadm: graduated the `WaitForAllControlPlaneComponents` feature gate to Beta. When checking the health status of a control plane component, make sure that the address and port defined as arguments in the respective component's static Pod manifest are used.", + "markdown": "kubeadm: graduated the `WaitForAllControlPlaneComponents` feature gate to Beta. When checking the health status of a control plane component, make sure that the address and port defined as arguments in the respective component's static Pod manifest are used. ([#129620](https://github.com/kubernetes/kubernetes/pull/129620), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129620", + "pr_number": 129620, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "129630": { + "commit": "92eec10d14568a49a09f90a03a1f39b1fbf7485b", + "text": "Fixed in-tree to CSI migration for Portworx volumes, in clusters where Portworx security feature is enabled (it's a Portworx feature, not Kubernetes feature). It required secret data from the secret mentioned in-tree SC, to be passed in CSI requests which was not happening before this fix.", + "markdown": "Fixed in-tree to CSI migration for Portworx volumes, in clusters where Portworx security feature is enabled (it's a Portworx feature, not Kubernetes feature). It required secret data from the secret mentioned in-tree SC, to be passed in CSI requests which was not happening before this fix. ([#129630](https://github.com/kubernetes/kubernetes/pull/129630), [@gohilankit](https://github.com/gohilankit))", + "author": "gohilankit", + "author_url": "https://github.com/gohilankit", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129630", + "pr_number": 129630, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "129635": { + "commit": "a716ea756d87f60900dbbb500fc27ae30f7bd384", + "text": "Calculated pod resources are now cached when adding pods to NodeInfo in the scheduler framework, improving performance when processing unschedulable pods.", + "markdown": "Calculated pod resources are now cached when adding pods to NodeInfo in the scheduler framework, improving performance when processing unschedulable pods. ([#129635](https://github.com/kubernetes/kubernetes/pull/129635), [@macsko](https://github.com/macsko))", + "author": "macsko", + "author_url": "https://github.com/macsko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129635", + "pr_number": 129635, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "129644": { + "commit": "b92b3d33e2980d06bfc08883448c2151704d5011", + "text": "kubeadm: improved the `kubeadm reset` message for manual cleanups and referenced https://k8s.io/docs/reference/setup-tools/kubeadm/kubeadm-reset/.", + "markdown": "kubeadm: improved the `kubeadm reset` message for manual cleanups and referenced https://k8s.io/docs/reference/setup-tools/kubeadm/kubeadm-reset/. ([#129644](https://github.com/kubernetes/kubernetes/pull/129644), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129644", + "pr_number": 129644, + "areas": [ + "kubeadm" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "129653": { + "commit": "d7774fce9a7fcec890d7c0beffacd6ae34152b01", + "text": "The nftables mode of kube-proxy is now GA. (The iptables mode remains the\ndefault; you can select the nftables mode by passing `--proxy-mode nftables`\nor using a config file with `mode: nftables`. See the kube-proxy documentation\nfor more details.)", + "markdown": "The nftables mode of kube-proxy is now GA. (The iptables mode remains the\n default; you can select the nftables mode by passing `--proxy-mode nftables`\n or using a config file with `mode: nftables`. See the kube-proxy documentation\n for more details.) ([#129653](https://github.com/kubernetes/kubernetes/pull/129653), [@danwinship](https://github.com/danwinship))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/3866-nftables-proxy/README.md", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129653", + "pr_number": 129653, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "documentation", + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129656": { + "commit": "2bda5dd8c794d933145938affca30f012986e8fa", + "text": "Graduated the `KubeletFineGrainedAuthz` feature gate to beta; the gate is now enabled by default.", + "markdown": "Graduated the `KubeletFineGrainedAuthz` feature gate to beta; the gate is now enabled by default. ([#129656](https://github.com/kubernetes/kubernetes/pull/129656), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Auth, CLI, Node, Storage and Testing]", + "documentation": [ + { + "description": "-[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2862", + "type": "KEP" + } + ], + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129656", + "pr_number": 129656, + "areas": [ + "test", + "kubelet", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "cli", + "node", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "129658": { + "commit": "a78983906f4cf6f94029a3e6cf3171ef42b395d7", + "text": "Provides an additional function argument to directly specify the version for the tools that the consumers wished to use.", + "markdown": "Provides an additional function argument to directly specify the version for the tools that the consumers wished to use. ([#129658](https://github.com/kubernetes/kubernetes/pull/129658), [@unmarshall](https://github.com/unmarshall))", + "author": "unmarshall", + "author_url": "https://github.com/unmarshall", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129658", + "pr_number": 129658, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "129661": { + "commit": "488fac490463d9499ff22dc7500f2c93497417dc", + "text": "DRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete.", + "markdown": "DRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete. ([#129661](https://github.com/kubernetes/kubernetes/pull/129661), [@pohly](https://github.com/pohly))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129661", + "pr_number": 129661, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "129670": { + "commit": "2deb8af139c3fdf1097a9ac44e5dc22a9fb13dfe", + "text": "Fixed a bug where adding an ephemeral container to a pod which references a new secret or config map doesn't give the pod access to that new secret or config map. (#114984, @cslink)", + "markdown": "Fixed a bug where adding an ephemeral container to a pod which references a new secret or config map doesn't give the pod access to that new secret or config map. (#114984, @cslink) ([#129670](https://github.com/kubernetes/kubernetes/pull/129670), [@cslink](https://github.com/cslink))", + "author": "cslink", + "author_url": "https://github.com/cslink", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129670", + "pr_number": 129670, + "kinds": [ + "bug" + ], + "sigs": [ + "auth" + ], + "is_mapped": true + }, + "129688": { + "commit": "b8c95e1954ef222988c0dfe5b45d5cc96c09bcb8", + "text": "Kubernetes is now built with Go `1.24.0`.", + "markdown": "Kubernetes is now built with Go `1.24.0`. ([#129688](https://github.com/kubernetes/kubernetes/pull/129688), [@cpanato](https://github.com/cpanato)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling, Storage and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129688", + "pr_number": 129688, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "release-eng", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "release", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "129692": { + "commit": "ecbe8319f4df1148b6427a20b59bc3cec72a235d", + "text": "Removed generally available feature gate `KubeProxyDrainingTerminatingNodes`.", + "markdown": "Removed generally available feature gate `KubeProxyDrainingTerminatingNodes`. ([#129692](https://github.com/kubernetes/kubernetes/pull/129692), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu))", + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129692", + "pr_number": 129692, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "129713": { + "commit": "68b456b76fafc0f4ff0a63f031202743792823cd", + "text": "Graduated the `DisableNodeKubeProxyVersion` feature gate to enable by default, the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for its associated Node.", + "markdown": "Graduated the `DisableNodeKubeProxyVersion` feature gate to enable by default, the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for its associated Node. ([#129713](https://github.com/kubernetes/kubernetes/pull/129713), [@HirazawaUi](https://github.com/HirazawaUi))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4004-deprecate-kube-proxy-version", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129713", + "pr_number": 129713, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "129731": { + "commit": "fab0d7657410025ad36041141c27b2c5e2413b6f", + "text": "The `SidecarContainers` feature has graduated to GA. 'SidecarContainers' feature gate was locked to default value and will be removed in v1.36. If you were setting this feature gate explicitly, please remove it now.", + "markdown": "The `SidecarContainers` feature has graduated to GA. 'SidecarContainers' feature gate was locked to default value and will be removed in v1.36. If you were setting this feature gate explicitly, please remove it now. ([#129731](https://github.com/kubernetes/kubernetes/pull/129731), [@gjkim42](https://github.com/gjkim42)) [SIG Apps, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/753-sidecar-containers/README.md", + "type": "KEP" + } + ], + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129731", + "pr_number": 129731, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "129770": { + "commit": "0a0852914475447ba1fec39ff0370e79c17c7885", + "text": "Promoted the feature gate `AnyVolumeDataSource` to GA.", + "markdown": "Promoted the feature gate `AnyVolumeDataSource` to GA. ([#129770](https://github.com/kubernetes/kubernetes/pull/129770), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu)) [SIG Apps, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1495-volume-populators", + "type": "KEP" + } + ], + "author": "sunnylovestiramisu", + "author_url": "https://github.com/sunnylovestiramisu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129770", + "pr_number": 129770, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129776": { + "commit": "48dce2e9b3def93556cd7694edf22a74ecb34aa9", + "text": "Updated CNI plugins to `v1.6.2`.", + "markdown": "Updated CNI plugins to `v1.6.2`. ([#129776](https://github.com/kubernetes/kubernetes/pull/129776), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129776", + "pr_number": 129776, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "129790": { + "commit": "052d7a5310b0bab58f81519253e08f456f39e8f3", + "text": "Fixed the bug where Events failed to be created when the referenced object name was not a valid Event name. Now, a UUID is used as the name instead of the referenced object name and the timestamp suffix.", + "markdown": "Fixed the bug where Events failed to be created when the referenced object name was not a valid Event name. Now, a UUID is used as the name instead of the referenced object name and the timestamp suffix. ([#129790](https://github.com/kubernetes/kubernetes/pull/129790), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129790", + "pr_number": 129790, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "129816": { + "commit": "76506f1d871f19333fa548b45ccb78db407c2c8c", + "text": "kube-apiserver: `--service-account-max-token-expiration` can now be used in combination with an external token signer `--service-account-signing-endpoint`, as long as the `--service-account-max-token-expiration` is not longer than the external token signer's max expiration.", + "markdown": "kube-apiserver: `--service-account-max-token-expiration` can now be used in combination with an external token signer `--service-account-signing-endpoint`, as long as the `--service-account-max-token-expiration` is not longer than the external token signer's max expiration. ([#129816](https://github.com/kubernetes/kubernetes/pull/129816), [@sambdavidson](https://github.com/sambdavidson)) [SIG API Machinery and Auth]", + "author": "sambdavidson", + "author_url": "https://github.com/sambdavidson", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129816", + "pr_number": 129816, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "is_mapped": true + }, + "129823": { + "commit": "fc268ecd09c83c564868dbca1984b9ff2c654482", + "text": "DRA: the explanation for why a pod which wasn't using ResourceClaims was unscheduleable included a useless \"no new claims to deallocate\" when it was unscheduleable for some other reasons.", + "markdown": "DRA: the explanation for why a pod which wasn't using ResourceClaims was unscheduleable included a useless \"no new claims to deallocate\" when it was unscheduleable for some other reasons. ([#129823](https://github.com/kubernetes/kubernetes/pull/129823), [@googs1025](https://github.com/googs1025)) [SIG Node and Scheduling]", + "author": "googs1025", + "author_url": "https://github.com/googs1025", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129823", + "pr_number": 129823, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node", + "scheduling" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129826": { + "commit": "e9a3d99f3743117a161828f5f92d99ac1033d470", + "text": "kubelet no longer logs multiple errors when running on a system with no iptables binaries installed.", + "markdown": "kubelet no longer logs multiple errors when running on a system with no iptables binaries installed. ([#129826](https://github.com/kubernetes/kubernetes/pull/129826), [@danwinship](https://github.com/danwinship)) [SIG Network and Node]", + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129826", + "pr_number": 129826, + "areas": [ + "kubelet", + "kube-proxy", + "ipvs" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "129832": { + "commit": "64621d17a6b36ac546fa0af4fde9eb976a39b477", + "text": "kubelet + DRA: For DRA driver plugins (and only for those!), the kubelet now supports a rolling update with `maxSurge \u003e 0` in the driver's DaemonSet. A DRA driver must support this, which can be done via the k8s.io/dynamic-resource-allocation/kubeletplugin helper package.", + "markdown": "kubelet + DRA: For DRA driver plugins (and only for those!), the kubelet now supports a rolling update with `maxSurge \u003e 0` in the driver's DaemonSet. A DRA driver must support this, which can be done via the k8s.io/dynamic-resource-allocation/kubeletplugin helper package. ([#129832](https://github.com/kubernetes/kubernetes/pull/129832), [@pohly](https://github.com/pohly)) [SIG Node, Storage and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129832", + "pr_number": 129832, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "129844": { + "commit": "28ba942659a6fb8c8b9a22234176250fe004af06", + "text": "`cel-go` has been bumped to `v0.23.2`.", + "markdown": "`cel-go` has been bumped to `v0.23.2`. ([#129844](https://github.com/kubernetes/kubernetes/pull/129844), [@cici37](https://github.com/cici37)) [SIG API Machinery, Auth, Cloud Provider and Node]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129844", + "pr_number": 129844, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "129859": { + "commit": "6ef2458aaa32547a90c05b7a262577d0e52b8cbb", + "text": "kubeadm: fixed the bug where the `v1beta4` `Timeouts.EtcdAPICall` field was not respected in etcd client operations, and the default timeout of 2 minutes was always used.", + "markdown": "kubeadm: fixed the bug where the `v1beta4` `Timeouts.EtcdAPICall` field was not respected in etcd client operations, and the default timeout of 2 minutes was always used. ([#129859](https://github.com/kubernetes/kubernetes/pull/129859), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129859", + "pr_number": 129859, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "129872": { + "commit": "6f13ba03dac1865174b4edf2b43f6a0f453a8ac7", + "text": "Includes WebSockets HTTPS proxy support", + "markdown": "Includes WebSockets HTTPS proxy support ([#129872](https://github.com/kubernetes/kubernetes/pull/129872), [@seans3](https://github.com/seans3)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network and Node]", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129872", + "pr_number": 129872, + "areas": [ + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "instrumentation", + "network", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "129887": { + "commit": "58704903c5f3616967ea9e71cb173d7a44868aa3", + "text": "Changed the error message displayed when a pod is trying to attach a volume that does not match the label/selector from \"x node(s) had volume node affinity conflict\" to \"x node(s) didn't match PersistentVolume's node affinity\".", + "markdown": "Changed the error message displayed when a pod is trying to attach a volume that does not match the label/selector from \"x node(s) had volume node affinity conflict\" to \"x node(s) didn't match PersistentVolume's node affinity\". ([#129887](https://github.com/kubernetes/kubernetes/pull/129887), [@rhrmo](https://github.com/rhrmo)) [SIG Scheduling and Storage]", + "author": "rhrmo", + "author_url": "https://github.com/rhrmo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129887", + "pr_number": 129887, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling", + "storage" + ], + "duplicate": true, + "is_mapped": true + }, + "129893": { + "commit": "26b1d3424ae9b91622a2968fb69831df7ef0e1cc", + "text": "Fixed compressed kubelet log file permissions to use uncompressed kubelet log file permissions.", + "markdown": "Fixed compressed kubelet log file permissions to use uncompressed kubelet log file permissions. ([#129893](https://github.com/kubernetes/kubernetes/pull/129893), [@simonfogliato](https://github.com/simonfogliato))", + "author": "simonfogliato", + "author_url": "https://github.com/simonfogliato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129893", + "pr_number": 129893, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "129923": { + "commit": "8de738e3365763a64b0dabe82fa91fb34ea856c8", + "text": "Disabled the git-repo volume plugin by default, with the option to re-enable it.", + "markdown": "Disabled the git-repo volume plugin by default, with the option to re-enable it. ([#129923](https://github.com/kubernetes/kubernetes/pull/129923), [@vinayakankugoyal](https://github.com/vinayakankugoyal))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5040", + "type": "KEP" + } + ], + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129923", + "pr_number": 129923, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true, + "is_mapped": true + }, + "129929": { + "commit": "9a03243789677637762eb0f907e1b4e45a0136c1", + "text": "The `SeparateCacheWatchRPC` feature gate is deprecated and disabled by default.", + "markdown": "The `SeparateCacheWatchRPC` feature gate is deprecated and disabled by default. ([#129929](https://github.com/kubernetes/kubernetes/pull/129929), [@serathius](https://github.com/serathius)) [SIG API Machinery]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129929", + "pr_number": 129929, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "129930": { + "commit": "925cf7db71c5e36072f99e8b7129523f659ee3a1", + "text": "The `WatchFromStorageWithoutResourceVersion` feature was deprecated and can no longer be enabled.", + "markdown": "The `WatchFromStorageWithoutResourceVersion` feature was deprecated and can no longer be enabled. ([#129930](https://github.com/kubernetes/kubernetes/pull/129930), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129930", + "pr_number": 129930, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "129933": { + "commit": "7a8a4c201ace91b95b1a25a17cf0d1ed7e4dd7d6", + "text": "Flipped `StorageNamespaceIndex` feature gate to `false` and deprecated it.", + "markdown": "Flipped `StorageNamespaceIndex` feature gate to `false` and deprecated it. ([#129933](https://github.com/kubernetes/kubernetes/pull/129933), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129933", + "pr_number": 129933, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "129934": { + "commit": "e2b0cfa3a1fb2c425a975b8c6ba0e9509bd35452", + "text": "Graduated `BtreeWatchCache` feature gate to GA.", + "markdown": "Graduated `BtreeWatchCache` feature gate to GA. ([#129934](https://github.com/kubernetes/kubernetes/pull/129934), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129934", + "pr_number": 129934, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "129946": { + "commit": "a552570d2c0d5a2589c402695c74e1a85deed617", + "text": "Fixed a regression in 1.32 that prevented pods with `postStart` hooks from starting.", + "markdown": "Fixed a regression in 1.32 that prevented pods with `postStart` hooks from starting. ([#129946](https://github.com/kubernetes/kubernetes/pull/129946), [@alex-petrov-vt](https://github.com/alex-petrov-vt))", + "author": "alex-petrov-vt", + "author_url": "https://github.com/alex-petrov-vt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129946", + "pr_number": 129946, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "129950": { + "commit": "05bfdbc6ddba7f41295fed61555d626b310926e4", + "text": "Add metrics to expose the main known reasons for resource alingment errors", + "markdown": "Add metrics to expose the main known reasons for resource alingment errors ([#129950](https://github.com/kubernetes/kubernetes/pull/129950), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129950", + "pr_number": 129950, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129954": { + "commit": "2499a2c0a0f61f259156925cdd25dfb65df334f1", + "text": "Start reporting swap capacity as part of `node.status.nodeSystemInfo`.", + "markdown": "Start reporting swap capacity as part of `node.status.nodeSystemInfo`. ([#129954](https://github.com/kubernetes/kubernetes/pull/129954), [@iholder101](https://github.com/iholder101)) [SIG API Machinery, Apps and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md", + "type": "KEP" + } + ], + "author": "iholder101", + "author_url": "https://github.com/iholder101", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129954", + "pr_number": 129954, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129956": { + "commit": "d2ad0cc7c05ee8a9a713b7a48accf2b5593d0350", + "text": "kubeadm: Promoted the feature gate `ControlPlaneKubeletLocalMode` to Beta. By default, Kubeadm will use the local kube-apiserver endpoint for the kubelet when creating a cluster with `kubeadm init` or when joining control plane nodes with `kubeadm join`. Enabling the feature gate also affects the `kubeadm init phase kubeconfig kubelet` phase, where the flag `--control-plane-endpoint` no longer affects the generated kubeconfig `Server` field, but the flag `--apiserver-advertise-address` can now be used for the same purpose.", + "markdown": "kubeadm: Promoted the feature gate `ControlPlaneKubeletLocalMode` to Beta. By default, Kubeadm will use the local kube-apiserver endpoint for the kubelet when creating a cluster with `kubeadm init` or when joining control plane nodes with `kubeadm join`. Enabling the feature gate also affects the `kubeadm init phase kubeconfig kubelet` phase, where the flag `--control-plane-endpoint` no longer affects the generated kubeconfig `Server` field, but the flag `--apiserver-advertise-address` can now be used for the same purpose. ([#129956](https://github.com/kubernetes/kubernetes/pull/129956), [@chrischdi](https://github.com/chrischdi))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/bcd6c468b88903b49d1784a9364516142a8e83f9/keps/sig-cluster-lifecycle/kubeadm/4471-cp-join-kubelet-local-apiserver/README.md", + "type": "KEP" + } + ], + "author": "chrischdi", + "author_url": "https://github.com/chrischdi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129956", + "pr_number": 129956, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "129970": { + "commit": "070f0ad3bdfc17da90defdb45bb644aaf07dd43e", + "text": "The `resource.k8s.io/v1beta1` API is deprecated and will be removed in 1.36. Use `v1beta2` instead.", + "markdown": "The `resource.k8s.io/v1beta1` API is deprecated and will be removed in 1.36. Use `v1beta2` instead. ([#129970](https://github.com/kubernetes/kubernetes/pull/129970), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing]", + "author": "mortent", + "author_url": "https://github.com/mortent", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129970", + "pr_number": 129970, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "etcd", + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "129993": { + "commit": "7b38ff48af860a0348c1db860636ed478ca63d3d", + "text": "Fixed a regression with the `ServiceAccountNodeAudienceRestriction` feature where `azureFile` volumes encountered 'failed to get service account token attributes' errors.", + "markdown": "Fixed a regression with the `ServiceAccountNodeAudienceRestriction` feature where `azureFile` volumes encountered 'failed to get service account token attributes' errors. ([#129993](https://github.com/kubernetes/kubernetes/pull/129993), [@aramase](https://github.com/aramase)) [SIG Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129993", + "pr_number": 129993, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "129996": { + "commit": "1e38c868936137a89c4f47075ed229e0b68f341e", + "text": "The response from kube-apiserver's `/flagz` endpoint would respond correctly with parsed flags value.", + "markdown": "The response from kube-apiserver's `/flagz` endpoint would respond correctly with parsed flags value. ([#129996](https://github.com/kubernetes/kubernetes/pull/129996), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Instrumentation and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", + "type": "KEP" + } + ], + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129996", + "pr_number": 129996, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "architecture", + "instrumentation", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "130007": { + "commit": "c766a52356a277da5e9f29f77aab5212f1b083c6", + "text": "A new alpha feature gate, `MutableCSINodeAllocatableCount`, has been introduced.\n\nWhen this feature gate is enabled, the `CSINode.Spec.Drivers[*].Allocatable.Count` field becomes mutable, and a new field, `NodeAllocatableUpdatePeriodSeconds`, is available in the `CSIDriver` object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on.", + "markdown": "A new alpha feature gate, `MutableCSINodeAllocatableCount`, has been introduced.\n \n When this feature gate is enabled, the `CSINode.Spec.Drivers[*].Allocatable.Count` field becomes mutable, and a new field, `NodeAllocatableUpdatePeriodSeconds`, is available in the `CSIDriver` object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. ([#130007](https://github.com/kubernetes/kubernetes/pull/130007), [@torredil](https://github.com/torredil)) [SIG Apps, Node, Scheduling and Storage]", + "author": "torredil", + "author_url": "https://github.com/torredil", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130007", + "pr_number": 130007, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "node", + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130013": { + "commit": "bff54e4020a273feff6da2dfffc4ade4200e9200", + "text": "Promoted the `CRDValidationRatcheting` feature gate to GA in 1.33", + "markdown": "Promoted the `CRDValidationRatcheting` feature gate to GA in 1.33 ([#130013](https://github.com/kubernetes/kubernetes/pull/130013), [@yongruilin](https://github.com/yongruilin))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4008", + "type": "external" + } + ], + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130013", + "pr_number": 130013, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "130017": { + "commit": "ee22760391bae28954a69dff499d1cead9a9fcf0", + "text": "NodeRestriction admission now validates that the audience value, the kubelet requested a service account token for, is part of the pod spec volume. The kube-apiserver featuregate `ServiceAccountNodeAudienceRestriction` is enabled by default in 1.33.", + "markdown": "NodeRestriction admission now validates that the audience value, the kubelet requested a service account token for, is part of the pod spec volume. The kube-apiserver featuregate `ServiceAccountNodeAudienceRestriction` is enabled by default in 1.33. ([#130017](https://github.com/kubernetes/kubernetes/pull/130017), [@aramase](https://github.com/aramase))", + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130017", + "pr_number": 130017, + "kinds": [ + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true, + "is_mapped": true + }, + "130019": { + "commit": "23d63770284cb30a2eb90b79ace0f1c7e32fb16f", + "text": "Update `/version` response to report binary version information separate from compatibility version", + "markdown": "Update `/version` response to report binary version information separate from compatibility version ([#130019](https://github.com/kubernetes/kubernetes/pull/130019), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Release and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-architecture/4330-compatibility-versions/README.md", + "type": "KEP" + } + ], + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130019", + "pr_number": 130019, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130023": { + "commit": "bd8532054c13d053eb2cbdc072e282459584c987", + "text": "kubeadm: `kubeadm upgrade plan` now supports `--etcd-upgrade` flag to control whether the etcd upgrade plan should be displayed. Add an `EtcdUpgrade` field into `UpgradeConfiguration.Plan` for v1beta4.", + "markdown": "kubeadm: `kubeadm upgrade plan` now supports `--etcd-upgrade` flag to control whether the etcd upgrade plan should be displayed. Add an `EtcdUpgrade` field into `UpgradeConfiguration.Plan` for v1beta4. ([#130023](https://github.com/kubernetes/kubernetes/pull/130023), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130023", + "pr_number": 130023, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "130028": { + "commit": "4467dd3d6c21e88258fd9eefe9b512a5e86829c2", + "text": "kubelet: added `KubeletConfiguration.subidsPerPod`.", + "markdown": "kubelet: added `KubeletConfiguration.subidsPerPod`. ([#130028](https://github.com/kubernetes/kubernetes/pull/130028), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG API Machinery and Node]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/127", + "type": "KEP" + } + ], + "author": "AkihiroSuda", + "author_url": "https://github.com/AkihiroSuda", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130028", + "pr_number": 130028, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130032": { + "commit": "994a46907fe09e03a01012e9439b9c1eeda21a6e", + "text": "kube-proxy: Fixed a potential memory leak that could occur in clusters with a high volume of UDP workflows.", + "markdown": "kube-proxy: Fixed a potential memory leak that could occur in clusters with a high volume of UDP workflows. ([#130032](https://github.com/kubernetes/kubernetes/pull/130032), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130032", + "pr_number": 130032, + "areas": [ + "kube-proxy", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "130033": { + "commit": "990b02bf3952a14249fe74add831a5bb02576995", + "text": "Adding resource completion in kubectl debug command", + "markdown": "Adding resource completion in kubectl debug command ([#130033](https://github.com/kubernetes/kubernetes/pull/130033), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130033", + "pr_number": 130033, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "130035": { + "commit": "b38bf6c312ae2bde2565060236901307accd8440", + "text": "Added an alpha feature gate `OrderedNamespaceDeletion`. When enabled, the pods resources are deleted before all other resources during namespace deletion.", + "markdown": "Added an alpha feature gate `OrderedNamespaceDeletion`. When enabled, the pods resources are deleted before all other resources during namespace deletion. ([#130035](https://github.com/kubernetes/kubernetes/pull/130035), [@cici37](https://github.com/cici37)) [SIG API Machinery, Apps and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5080", + "type": "KEP" + } + ], + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130035", + "pr_number": 130035, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130037": { + "commit": "d1126b66cb06e4f67cc1612ff32da51e8541e01b", + "text": "Fixed `SELinuxWarningController` defaults when running kube-controller-manager in a container.", + "markdown": "Fixed `SELinuxWarningController` defaults when running kube-controller-manager in a container. ([#130037](https://github.com/kubernetes/kubernetes/pull/130037), [@jsafrane](https://github.com/jsafrane)) [SIG Apps and Storage]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/1710-selinux-relabeling", + "type": "KEP" + } + ], + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130037", + "pr_number": 130037, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130040": { + "commit": "e30c8a3ddee009e7de2d21d69d12f159f74c2e16", + "text": "kubeadm: Improved `kubeadm init` and `kubeadm join` to provide consistent error messages when the kubelet failed or when failed to wait for control plane components.", + "markdown": "kubeadm: Improved `kubeadm init` and `kubeadm join` to provide consistent error messages when the kubelet failed or when failed to wait for control plane components. ([#130040](https://github.com/kubernetes/kubernetes/pull/130040), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130040", + "pr_number": 130040, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "130045": { + "commit": "3e4e2437e4f919421aa9919bbe1e3e38a2728408", + "text": "kubeadm: Added preflight check for `cp` on Linux nodes and `xcopy` on Windows nodes. These binaries are required for kubeadm to work properly.", + "markdown": "kubeadm: Added preflight check for `cp` on Linux nodes and `xcopy` on Windows nodes. These binaries are required for kubeadm to work properly. ([#130045](https://github.com/kubernetes/kubernetes/pull/130045), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130045", + "pr_number": 130045, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "130047": { + "commit": "77667834b072db7e26a69d78c5e9f3181e12959f", + "text": "Extended the kube-apiserver loopback client certificate validity to 14 months to align with the updated Kubernetes support lifecycle.", + "markdown": "Extended the kube-apiserver loopback client certificate validity to 14 months to align with the updated Kubernetes support lifecycle. ([#130047](https://github.com/kubernetes/kubernetes/pull/130047), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery and Auth]", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130047", + "pr_number": 130047, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130058": { + "commit": "fbdf8905ea251f15120426fa308596dedafbdee0", + "text": "Introduced the `LegacySidecarContainers` feature gate enabling the legacy code path that predates the `SidecarContainers` feature. This temporary feature gate is disabled by default, only available in v1.33, and will be removed in v1.34.", + "markdown": "Introduced the `LegacySidecarContainers` feature gate enabling the legacy code path that predates the `SidecarContainers` feature. This temporary feature gate is disabled by default, only available in v1.33, and will be removed in v1.34. ([#130058](https://github.com/kubernetes/kubernetes/pull/130058), [@gjkim42](https://github.com/gjkim42))", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130058", + "pr_number": 130058, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130060": { + "commit": "ffad281e3eab096f87b53ae7e533469e513db4b2", + "text": "kube-apiserver: Fixed a bug where the `ResourceQuota` admission plugin did not respect any scope changes when a resource was updated, such as setting or unsetting the `terminationGracePeriodSeconds` field of an existing pod.", + "markdown": "kube-apiserver: Fixed a bug where the `ResourceQuota` admission plugin did not respect any scope changes when a resource was updated, such as setting or unsetting the `terminationGracePeriodSeconds` field of an existing pod. ([#130060](https://github.com/kubernetes/kubernetes/pull/130060), [@carlory](https://github.com/carlory)) [SIG API Machinery, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/986", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130060", + "pr_number": 130060, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "130061": { + "commit": "d04883c90c2dd6ae5d6fb827b315c5fdb40b1e4d", + "text": "Promoted the Job's `JobBackoffLimitPerIndex` feature-gate to stable.", + "markdown": "Promoted the Job's `JobBackoffLimitPerIndex` feature-gate to stable. ([#130061](https://github.com/kubernetes/kubernetes/pull/130061), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps, Architecture and Testing]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3850-backoff-limits-per-index-for-indexed-jobs", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130061", + "pr_number": 130061, + "areas": [ + "test", + "conformance", + "code-generation" + ], + "kinds": [ + "documentation", + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130098": { + "commit": "4f925a63a0d828bbb210824221c1a36f14af2929", + "text": "The v1 Endpoints API is now officially deprecated (though still fully supported). The API will not be removed, but all users should use the EndpointSlice API instead.", + "markdown": "The v1 Endpoints API is now officially deprecated (though still fully supported). The API will not be removed, but all users should use the EndpointSlice API instead. ([#130098](https://github.com/kubernetes/kubernetes/pull/130098), [@danwinship](https://github.com/danwinship)) [SIG API Machinery and Network]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4974", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130098", + "pr_number": 130098, + "areas": [ + "code-generation" + ], + "kinds": [ + "documentation", + "api-change", + "deprecation" + ], + "sigs": [ + "api-machinery", + "network" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130101": { + "commit": "5822bb52320747902750e4add316192f7344e542", + "text": "Various controllers that write out IP address or CIDR values to API objects now\nensure that they always write out the values in canonical form.", + "markdown": "Various controllers that write out IP address or CIDR values to API objects now\n ensure that they always write out the values in canonical form. ([#130101](https://github.com/kubernetes/kubernetes/pull/130101), [@danwinship](https://github.com/danwinship)) [SIG Apps, Network and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4858", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130101", + "pr_number": 130101, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "apps", + "network", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130113": { + "commit": "75909b89201386c8a555eadc79d14fb11f91747c", + "text": "Resolved a performance regression in default 1.31+ configurations, related to the `ConsistentListFromCache` feature, where rapid create/update API requests across different namespaces encounter increased latency.", + "markdown": "Resolved a performance regression in default 1.31+ configurations, related to the `ConsistentListFromCache` feature, where rapid create/update API requests across different namespaces encounter increased latency. ([#130113](https://github.com/kubernetes/kubernetes/pull/130113), [@AwesomePatrol](https://github.com/AwesomePatrol))", + "author": "AwesomePatrol", + "author_url": "https://github.com/AwesomePatrol", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130113", + "pr_number": 130113, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "130116": { + "commit": "4f3fd12bc1b667f6792a9d0fe68f3dc5900ca545", + "text": "KEP-3857: Recursive Read-only (RRO) mounts: promote to GA", + "markdown": "KEP-3857: Recursive Read-only (RRO) mounts: promote to GA ([#130116](https://github.com/kubernetes/kubernetes/pull/130116), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Apps, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3857", + "type": "KEP" + } + ], + "author": "AkihiroSuda", + "author_url": "https://github.com/AkihiroSuda", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130116", + "pr_number": 130116, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130128": { + "commit": "821bc2e15e3abadb996d477f2bfb59466cec01e0", + "text": "Promoted `RelaxedDNSSearchValidation` to beta, allowing for Pod search domains to be a single dot \".\" or contain an underscore \"_\".", + "markdown": "Promoted `RelaxedDNSSearchValidation` to beta, allowing for Pod search domains to be a single dot \".\" or contain an underscore \"_\". ([#130128](https://github.com/kubernetes/kubernetes/pull/130128), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network]", + "author": "adrianmoisey", + "author_url": "https://github.com/adrianmoisey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130128", + "pr_number": 130128, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "network" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130133": { + "commit": "83d33a927a27e3800459ce0fb4771a6852ae812f", + "text": "Add metrics to track allocation of Uncore (aka last-level aka L3) Cache blocks", + "markdown": "Add metrics to track allocation of Uncore (aka last-level aka L3) Cache blocks ([#130133](https://github.com/kubernetes/kubernetes/pull/130133), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130133", + "pr_number": 130133, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "130135": { + "commit": "7b6c56e5fb530c80e3510977a752be5ce6e23a27", + "text": "Graduated image volume sources to beta:\n - Allowed `subPath`/`subPathExpr` for image volumes\n - Added kubelet metrics `kubelet_image_volume_requested_total`, `kubelet_image_volume_mounted_succeed_total` and `kubelet_image_volume_mounted_errors_total`", + "markdown": "Graduated image volume sources to beta:\n - Allowed `subPath`/`subPathExpr` for image volumes\n - Added kubelet metrics `kubelet_image_volume_requested_total`, `kubelet_image_volume_mounted_succeed_total` and `kubelet_image_volume_mounted_errors_total` ([#130135](https://github.com/kubernetes/kubernetes/pull/130135), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Apps, Node and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/4639", + "type": "KEP" + } + ], + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130135", + "pr_number": 130135, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130138": { + "commit": "761f5646be17737c46ad870b81c854616b62fed9", + "text": "Enabled user namespaces support (feature gate `UserNamespacesSupport`) by default.", + "markdown": "Enabled user namespaces support (feature gate `UserNamespacesSupport`) by default. ([#130138](https://github.com/kubernetes/kubernetes/pull/130138), [@rata](https://github.com/rata)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/2e2f53025277c2725976eb30076a6834049afa40/keps/sig-node/127-user-namespaces/README.md", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/", + "type": "official" + }, + { + "description": "[Other doc]", + "url": "https://kubernetes.io/docs/tasks/configure-pod-container/user-namespaces/", + "type": "official" + } + ], + "author": "rata", + "author_url": "https://github.com/rata", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130138", + "pr_number": 130138, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130162": { + "commit": "9a2a278a20d8b10a34809097a9a5e4e62a9cd9ef", + "text": "1. kube-apiserver: removed the deprecated the `--cloud-provider` and `--cloud-config` CLI parameters.\n2. removed generally available feature-gate `DisableCloudProviders` and `DisableKubeletCloudCredentialProviders`", + "markdown": "1. kube-apiserver: removed the deprecated the `--cloud-provider` and `--cloud-config` CLI parameters.\n 2. removed generally available feature-gate `DisableCloudProviders` and `DisableKubeletCloudCredentialProviders` ([#130162](https://github.com/kubernetes/kubernetes/pull/130162), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2395", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130162", + "pr_number": 130162, + "areas": [ + "test", + "apiserver", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "130181": { + "commit": "b14fad5adc4154065942102e68e7b4421cf7269a", + "text": "Changed metadata management for Pods to populate `.metadata.generation` on writes. New pods will have a `metadata.generation` of 1; updates to mutable fields in the Pod `.spec` will result in `metadata.generation` being incremented by 1.", + "markdown": "Changed metadata management for Pods to populate `.metadata.generation` on writes. New pods will have a `metadata.generation` of 1; updates to mutable fields in the Pod `.spec` will result in `metadata.generation` being incremented by 1. ([#130181](https://github.com/kubernetes/kubernetes/pull/130181), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/d85f53a0a668c07aed41b532e65c4c7ba508f28d/keps/sig-node/5067-pod-generation/README.md", + "type": "KEP" + } + ], + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130181", + "pr_number": 130181, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130183": { + "commit": "f90682bf42f747f98a99b9e5b0ae415b2504c338", + "text": "InPlacePodVerticalScaling: Memory limits cannot be decreased unless the memory resize restart policy is set to `RestartContainer`. Container resizePolicy is no longer mutable.", + "markdown": "InPlacePodVerticalScaling: Memory limits cannot be decreased unless the memory resize restart policy is set to `RestartContainer`. Container resizePolicy is no longer mutable. ([#130183](https://github.com/kubernetes/kubernetes/pull/130183), [@tallclair](https://github.com/tallclair)) [SIG Apps and Node]", + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130183", + "pr_number": 130183, + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130189": { + "commit": "609bf0020142256778818b3a9133bcf924d235bc", + "text": "If scheduling fails on PreBind or Bind, scheduler will retry the failed pod immediately after backoff time, regardless of the reason for failing. In this case EventsToRegister (QHints) will not be taken into consideration before retry.", + "markdown": "If scheduling fails on PreBind or Bind, scheduler will retry the failed pod immediately after backoff time, regardless of the reason for failing. In this case EventsToRegister (QHints) will not be taken into consideration before retry. ([#130189](https://github.com/kubernetes/kubernetes/pull/130189), [@ania-borowiec](https://github.com/ania-borowiec))", + "author": "ania-borowiec", + "author_url": "https://github.com/ania-borowiec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130189", + "pr_number": 130189, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "130200": { + "commit": "05ab777e288d6c19bac46082a877727f1df253e1", + "text": "`kubeproxy_conntrack_reconciler_sync_duration_seconds` metric can now be used to track conntrack reconciliation latency.", + "markdown": "`kubeproxy_conntrack_reconciler_sync_duration_seconds` metric can now be used to track conntrack reconciliation latency. ([#130200](https://github.com/kubernetes/kubernetes/pull/130200), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130200", + "pr_number": 130200, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "is_mapped": true + }, + "130202": { + "commit": "0d996fee31ba1c65bab36078411a34990642ae75", + "text": "kubeadm: fixed panic when no UpgradeConfiguration was found in the config file.", + "markdown": "kubeadm: fixed panic when no UpgradeConfiguration was found in the config file. ([#130202](https://github.com/kubernetes/kubernetes/pull/130202), [@SataQiu](https://github.com/SataQiu))", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130202", + "pr_number": 130202, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "130204": { + "commit": "87fcae2bc765e4f752bcf7dfbd0c57f75ec751a3", + "text": "`kubeproxy_conntrack_reconciler_deleted_entries_total` metric can be used to track cumulative sum of conntrack flows cleared by reconciler.", + "markdown": "`kubeproxy_conntrack_reconciler_deleted_entries_total` metric can be used to track cumulative sum of conntrack flows cleared by reconciler. ([#130204](https://github.com/kubernetes/kubernetes/pull/130204), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130204", + "pr_number": 130204, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "is_mapped": true + }, + "130210": { + "commit": "451d032915f290610183bef4ada81eee42892767", + "text": "KEP-3619: fined-grained supplemental groups policy is graduated to Beta. Note that kubelet now rejects pods with `.spec.securityContext.supplementalGroupsPolicy: Strict` when scheduled to the node that does not support the feature (`.status.features.supplementalGroupsPolicy: false`).", + "markdown": "KEP-3619: fined-grained supplemental groups policy is graduated to Beta. Note that kubelet now rejects pods with `.spec.securityContext.supplementalGroupsPolicy: Strict` when scheduled to the node that does not support the feature (`.status.features.supplementalGroupsPolicy: false`). ([#130210](https://github.com/kubernetes/kubernetes/pull/130210), [@everpeace](https://github.com/everpeace)) [SIG Apps, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3619-supplemental-groups-policy", + "type": "KEP" + } + ], + "author": "everpeace", + "author_url": "https://github.com/everpeace", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130210", + "pr_number": 130210, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130225": { + "commit": "2b79593ececcb94e408d0bbf55812c2b402a84f5", + "text": "DRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the `kubernetes.io/dra-admin-access` label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the `adminAccess` field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs.", + "markdown": "DRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the `kubernetes.io/dra-admin-access` label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the `adminAccess` field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs. ([#130225](https://github.com/kubernetes/kubernetes/pull/130225), [@ritazh](https://github.com/ritazh)) [SIG API Machinery, Apps, Auth, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5018", + "type": "KEP" + } + ], + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130225", + "pr_number": 130225, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130233": { + "commit": "94cc4babc2b3c73c7e5fe4edee4a011163addba0", + "text": "Validation now requires new StatefulSets with a `.spec.serviceName` field value to pass DNS1123 validation. Previously created StatefulSets with an invalid `.spec.serviceName` field value could not create any pods, and should be deleted.\n- Published OpenAPI for the StatefulSet schema is corrected to indicate the `.spec.serviceName` is optional.", + "markdown": "Validation now requires new StatefulSets with a `.spec.serviceName` field value to pass DNS1123 validation. Previously created StatefulSets with an invalid `.spec.serviceName` field value could not create any pods, and should be deleted.\n - Published OpenAPI for the StatefulSet schema is corrected to indicate the `.spec.serviceName` is optional. ([#130233](https://github.com/kubernetes/kubernetes/pull/130233), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps and Testing]", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130233", + "pr_number": 130233, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130238": { + "commit": "717d9f13f355539f2e8b58331e050e3155973db6", + "text": "Promoted kubectl `--subresource` flag to stable.", + "markdown": "Promoted kubectl `--subresource` flag to stable. ([#130238](https://github.com/kubernetes/kubernetes/pull/130238), [@soltysh](https://github.com/soltysh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2590", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130238", + "pr_number": 130238, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "130243": { + "commit": "1c9840c58eafc01ddec038eb7fe2857120a2eb19", + "text": "Removed a warning related to Linux user namespaces and kernel version. Previously, if the feature gate `UserNamespacesSupport` was enabled, the kubelet warned when detecting a Linux kernel version earlier than 6.3.0. While user namespace support generally requires kernel 6.3 or newer, it can also work on older kernels.", + "markdown": "Removed a warning related to Linux user namespaces and kernel version. Previously, if the feature gate `UserNamespacesSupport` was enabled, the kubelet warned when detecting a Linux kernel version earlier than 6.3.0. While user namespace support generally requires kernel 6.3 or newer, it can also work on older kernels. ([#130243](https://github.com/kubernetes/kubernetes/pull/130243), [@rata](https://github.com/rata))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/127-user-namespaces/README.md", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/. Here I explained already why 6.3 _might_ be what most users need, but it is definitely not a requirement and older kernels can work just fine.", + "type": "official" + } + ], + "author": "rata", + "author_url": "https://github.com/rata", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130243", + "pr_number": 130243, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "130250": { + "commit": "917a5569810e626f20b06951ed0e3cbf9b618470", + "text": "Removed alpha support for Windows HostNetwork containers.", + "markdown": "Removed alpha support for Windows HostNetwork containers. ([#130250](https://github.com/kubernetes/kubernetes/pull/130250), [@marosset](https://github.com/marosset)) [SIG Network, Node and Windows]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/issues/3503", + "type": "KEP" + } + ], + "author": "marosset", + "author_url": "https://github.com/marosset", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130250", + "pr_number": 130250, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "node", + "windows" + ], + "duplicate": true, + "is_mapped": true + }, + "130256": { + "commit": "1aef26a7eb119418d7eb23e1a2a7fedca572730c", + "text": "Fixed a rare and sporadic network issues that occurred when the host was under heavy load.", + "markdown": "Fixed a rare and sporadic network issues that occurred when the host was under heavy load. ([#130256](https://github.com/kubernetes/kubernetes/pull/130256), [@adrianmoisey](https://github.com/adrianmoisey))", + "author": "adrianmoisey", + "author_url": "https://github.com/adrianmoisey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130256", + "pr_number": 130256, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug", + "flake" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "130260": { + "commit": "c7088e64378b0494e243e052c472d14c3d88e121", + "text": "The `BalancedAllocation` plugin now skips all best-effort (zero-requested) pods.", + "markdown": "The `BalancedAllocation` plugin now skips all best-effort (zero-requested) pods. ([#130260](https://github.com/kubernetes/kubernetes/pull/130260), [@Bowser1704](https://github.com/Bowser1704))", + "author": "Bowser1704", + "author_url": "https://github.com/Bowser1704", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130260", + "pr_number": 130260, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "130290": { + "commit": "dc6f70c12d57bf35541772d83f64f5caec9a4117", + "text": "Added a new option `strict-cpu-reservation` for CPU Manager static policy. When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly used for system daemons and interrupt processing no longer available for any workload.", + "markdown": "Added a new option `strict-cpu-reservation` for CPU Manager static policy. When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly used for system daemons and interrupt processing no longer available for any workload. ([#130290](https://github.com/kubernetes/kubernetes/pull/130290), [@psasnal](https://github.com/psasnal)) [SIG Node and Testing]", + "author": "psasnal", + "author_url": "https://github.com/psasnal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130290", + "pr_number": 130290, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130291": { + "commit": "ef1c659569409471b4bdfeb83ba69cb1772ed37d", + "text": "Introduced API type `coordination.k8s.io/v1beta1/LeaseCandidate`", + "markdown": "Introduced API type `coordination.k8s.io/v1beta1/LeaseCandidate` ([#130291](https://github.com/kubernetes/kubernetes/pull/130291), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Etcd and Testing]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130291", + "pr_number": 130291, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "etcd", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130328": { + "commit": "f876a7d469ccc535e9de13a62b7d4cc464a36b01", + "text": "The `/flagz` endpoint in kube-apiserver now correctly returns parsed flag values when the `ComponentFlagz` feature-gate is enabled.", + "markdown": "The `/flagz` endpoint in kube-apiserver now correctly returns parsed flag values when the `ComponentFlagz` feature-gate is enabled. ([#130328](https://github.com/kubernetes/kubernetes/pull/130328), [@richabanker](https://github.com/richabanker)) [SIG API Machinery and Instrumentation]", + "author": "richabanker", + "author_url": "https://github.com/richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130328", + "pr_number": 130328, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "130329": { + "commit": "ba7144910333a3b43a78c8a9925bfa10b11620e9", + "text": "No", + "markdown": "No ([#130329](https://github.com/kubernetes/kubernetes/pull/130329), [@zylxjtu](https://github.com/zylxjtu)) [SIG Testing and Windows]", + "author": "zylxjtu", + "author_url": "https://github.com/zylxjtu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130329", + "pr_number": 130329, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "testing", + "windows" + ], + "duplicate": true, + "do_not_publish": true + }, + "130335": { + "commit": "5227bad0df4ded599e17dc18a4f7e09e41aefdd9", + "text": "Fixed an issue where kubelet would unmount volumes of running pods upon restart if the referenced PVC was being deleted by the user.", + "markdown": "Fixed an issue where kubelet would unmount volumes of running pods upon restart if the referenced PVC was being deleted by the user. ([#130335](https://github.com/kubernetes/kubernetes/pull/130335), [@carlory](https://github.com/carlory)) [SIG Node, Storage and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130335", + "pr_number": 130335, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "130345": { + "commit": "eacb9beec194566226011a379c7b8ab0bfb1bc4b", + "text": "kubeadm: Use generic terminology in logs instead of direct mentions of YAML/JSON ", + "markdown": "kubeadm: Use generic terminology in logs instead of direct mentions of YAML/JSON ([#130345](https://github.com/kubernetes/kubernetes/pull/130345), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130345", + "pr_number": 130345, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "130347": { + "commit": "8906223b000d94ad3947c1582c5ba452c6766e6c", + "text": "`apidiscovery.k8s.io/v2beta1` API group is disabled by default", + "markdown": "`apidiscovery.k8s.io/v2beta1` API group is disabled by default ([#130347](https://github.com/kubernetes/kubernetes/pull/130347), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery and Testing]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130347", + "pr_number": 130347, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130348": { + "commit": "6025e23ab691286100ef6bb03c5c6a50461e88b7", + "text": "Fixed a regression in 1.32 where nodes could fail to report status and renew serving certificates after the kubelet restarted.", + "markdown": "Fixed a regression in 1.32 where nodes could fail to report status and renew serving certificates after the kubelet restarted. ([#130348](https://github.com/kubernetes/kubernetes/pull/130348), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130348", + "pr_number": 130348, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "130352": { + "commit": "2effa5e3cf92af7dbcff87822b3293354823f567", + "text": "When the `PodObservedGenerationTracking` feature gate was set, the kubelet populated `status.observedGeneration` to reflect the latest `metadata.generation` it observed for the pod.", + "markdown": "When the `PodObservedGenerationTracking` feature gate was set, the kubelet populated `status.observedGeneration` to reflect the latest `metadata.generation` it observed for the pod. ([#130352](https://github.com/kubernetes/kubernetes/pull/130352), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, CLI, Node, Release, Scheduling, Storage, Testing and Windows]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/5067", + "type": "external" + } + ], + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130352", + "pr_number": 130352, + "areas": [ + "test", + "kubelet", + "kubectl", + "release-eng", + "code-generation", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "cli", + "node", + "release", + "scheduling", + "storage", + "testing", + "windows" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130354": { + "commit": "8b08487283d563efa0bc849ac3a3701463bc49bd", + "text": "Added a new cli flag `--emulation-forward-compatible` \nAdded a new cli flag `--runtime-config-emulation-forward-compatible`", + "markdown": "Added a new cli flag `--emulation-forward-compatible` \nAdded a new cli flag `--runtime-config-emulation-forward-compatible` ([#130354](https://github.com/kubernetes/kubernetes/pull/130354), [@siyuanfoundation](https://github.com/siyuanfoundation)) [SIG API Machinery, Etcd and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4330", + "type": "KEP" + } + ], + "author": "siyuanfoundation", + "author_url": "https://github.com/siyuanfoundation", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130354", + "pr_number": 130354, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "etcd", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130394": { + "commit": "3985b78f062af889f10a0982226913eda9149c48", + "text": "Allowed `ImageVolume` for Restricted PSA profiles.", + "markdown": "Allowed `ImageVolume` for Restricted PSA profiles. ([#130394](https://github.com/kubernetes/kubernetes/pull/130394), [@Barakmor1](https://github.com/Barakmor1))", + "author": "Barakmor1", + "author_url": "https://github.com/Barakmor1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130394", + "pr_number": 130394, + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130398": { + "commit": "9fe95e7586c8778d3b33737a48b7fbf7fa6416f9", + "text": "Added progress tracking for volume permission and ownership changes.", + "markdown": "Added progress tracking for volume permission and ownership changes. ([#130398](https://github.com/kubernetes/kubernetes/pull/130398), [@gnufied](https://github.com/gnufied)) [SIG Node and Storage]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130398", + "pr_number": 130398, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "storage" + ], + "duplicate": true, + "is_mapped": true + }, + "130401": { + "commit": "60d0d67fefd62c05275b75bbaa5391754f1bca5e", + "text": "Fixed the behavior of the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable in the nftables proxier. The kernel version check is now skipped only when this variable is explicitly set to a non-empty value. To skip the check, set the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable.", + "markdown": "Fixed the behavior of the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable in the nftables proxier. The kernel version check is now skipped only when this variable is explicitly set to a non-empty value. To skip the check, set the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable. ([#130401](https://github.com/kubernetes/kubernetes/pull/130401), [@ryota-sakamoto](https://github.com/ryota-sakamoto))", + "author": "ryota-sakamoto", + "author_url": "https://github.com/ryota-sakamoto", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130401", + "pr_number": 130401, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "action_required": true, + "is_mapped": true + }, + "130405": { + "commit": "20cecaee97f34f874a84902bf8dbe2bc359db9f0", + "text": "The following roles have had `Watch` added to them (prefixed with `system:controller:`):\n\n- `cronjob-controller`\n- `endpoint-controller`\n- `endpointslice-controller`\n- `endpointslicemirroring-controller`\n- `horizontal-pod-autoscaler`\n- `node-controller`\n- `pod-garbage-collector`\n- `storage-version-migrator-controller`", + "markdown": "The following roles have had `Watch` added to them (prefixed with `system:controller:`):\n \n - `cronjob-controller`\n - `endpoint-controller`\n - `endpointslice-controller`\n - `endpointslicemirroring-controller`\n - `horizontal-pod-autoscaler`\n - `node-controller`\n - `pod-garbage-collector`\n - `storage-version-migrator-controller` ([#130405](https://github.com/kubernetes/kubernetes/pull/130405), [@kariya-mitsuru](https://github.com/kariya-mitsuru))", + "author": "kariya-mitsuru", + "author_url": "https://github.com/kariya-mitsuru", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130405", + "pr_number": 130405, + "kinds": [ + "bug" + ], + "sigs": [ + "auth" + ], + "is_mapped": true + }, + "130423": { + "commit": "aa35eff1b636f587f418f9cc16a020353735d125", + "text": "Added `ListFromCacheSnapshot` feature gate that allows apiserver to serve LISTs with exact RV and continuations from cache", + "markdown": "Added `ListFromCacheSnapshot` feature gate that allows apiserver to serve LISTs with exact RV and continuations from cache ([#130423](https://github.com/kubernetes/kubernetes/pull/130423), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd and Testing]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130423", + "pr_number": 130423, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "etcd", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130424": { + "commit": "39c640fe9051b60bacbacf47f64cb697fb807861", + "text": "NONE", + "markdown": "NONE ([#130424](https://github.com/kubernetes/kubernetes/pull/130424), [@ahrtr](https://github.com/ahrtr)) [SIG Etcd]", + "author": "ahrtr", + "author_url": "https://github.com/ahrtr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130424", + "pr_number": 130424, + "areas": [ + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "etcd" + ], + "feature": true, + "do_not_publish": true + }, + "130447": { + "commit": "ab3cec07014e58ef49050f953fb8426efbc85192", + "text": "DRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint.", + "markdown": "DRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint. ([#130447](https://github.com/kubernetes/kubernetes/pull/130447), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130447", + "pr_number": 130447, + "areas": [ + "test", + "kubelet", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "etcd", + "instrumentation", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130450": { + "commit": "c9d54b92ca8d52048e1d59deae9a6c4bb5ed9db7", + "text": "Fixed an issue in the CEL CIDR library where subnets contained within another CIDR were incorrectly rejected as not being contained.", + "markdown": "Fixed an issue in the CEL CIDR library where subnets contained within another CIDR were incorrectly rejected as not being contained. ([#130450](https://github.com/kubernetes/kubernetes/pull/130450), [@JoelSpeed](https://github.com/JoelSpeed))", + "author": "JoelSpeed", + "author_url": "https://github.com/JoelSpeed", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130450", + "pr_number": 130450, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "130463": { + "commit": "f1c634f93e8e64e7e404b0304ade437cac691696", + "text": "Graduate the `MatchLabelKeys` (MismatchLabelKeys) feature in PodAffinity (PodAntiAffinity) to GA", + "markdown": "Graduate the`MatchLabelKeys` (MismatchLabelKeys) feature in PodAffinity (PodAntiAffinity) to GA ([#130463](https://github.com/kubernetes/kubernetes/pull/130463), [@sanposhiho](https://github.com/sanposhiho)) [SIG API Machinery, Apps, Node, Scheduling and Testing]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130463", + "pr_number": 130463, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130475": { + "commit": "4c311c9fcf6a67c665127d67fb30cd602ba5b88d", + "text": "Added a mechanism that calculates a digest of etcd and the watch cache every 5 minutes and exposes it as the `apiserver_storage_digest` metric.", + "markdown": "Added a mechanism that calculates a digest of etcd and the watch cache every 5 minutes and exposes it as the `apiserver_storage_digest` metric. ([#130475](https://github.com/kubernetes/kubernetes/pull/130475), [@serathius](https://github.com/serathius)) [SIG API Machinery, Instrumentation and Testing]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130475", + "pr_number": 130475, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130484": { + "commit": "ca22563752f768a8f04a8ffa677f05d3cf6649d8", + "text": "Fixed a 1.32 regression kube-proxy, when using a Service with External or LoadBalancer IPs on UDP services , was consuming a large amount of CPU because it was not filtering by the Service destination port and trying to delete all the UDP entries associated to the service.", + "markdown": "Fixed a 1.32 regression kube-proxy, when using a Service with External or LoadBalancer IPs on UDP services , was consuming a large amount of CPU because it was not filtering by the Service destination port and trying to delete all the UDP entries associated to the service. ([#130484](https://github.com/kubernetes/kubernetes/pull/130484), [@aojea](https://github.com/aojea)) [SIG Network]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130484", + "pr_number": 130484, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "130485": { + "commit": "6216201e163073a0c1b9780640e9f17c8d56b769", + "text": "Allowed dynamic configuration of the service account name and audience that the kubelet could request a token for, as part of the node audience restriction feature.", + "markdown": "Allowed dynamic configuration of the service account name and audience that the kubelet could request a token for, as part of the node audience restriction feature. ([#130485](https://github.com/kubernetes/kubernetes/pull/130485), [@aramase](https://github.com/aramase)) [SIG Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130485", + "pr_number": 130485, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130491": { + "commit": "1039822a7432bdf822b6dc32f20100499ec7d22e", + "text": "Added metrics to capture CPU distribution across NUMA nodes", + "markdown": "Added metrics to capture CPU distribution across NUMA nodes ([#130491](https://github.com/kubernetes/kubernetes/pull/130491), [@swatisehgal](https://github.com/swatisehgal)) [SIG Node and Testing]", + "author": "swatisehgal", + "author_url": "https://github.com/swatisehgal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130491", + "pr_number": 130491, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "130507": { + "commit": "76b80b1c15567ee2191465e9654f1d5d2e593282", + "text": "Enabled the `OrderedNamespaceDeletion` feature gate by default.", + "markdown": "Enabled the `OrderedNamespaceDeletion` feature gate by default. ([#130507](https://github.com/kubernetes/kubernetes/pull/130507), [@cici37](https://github.com/cici37)) [SIG API Machinery and Apps]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130507", + "pr_number": 130507, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130535": { + "commit": "6bc352f6a9317b34cc52ac3094a441787efcc18a", + "text": "CPUManager Policy Options support is GA", + "markdown": "CPUManager Policy Options support is GA ([#130535](https://github.com/kubernetes/kubernetes/pull/130535), [@ffromani](https://github.com/ffromani)) [SIG API Machinery, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2625", + "type": "KEP" + } + ], + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130535", + "pr_number": 130535, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130536": { + "commit": "04fb7ac18bd86793304646e318802f58bb3dfe32", + "text": "Promoted the `JobSuccessPolicy` to Stable.", + "markdown": "Promoted the `JobSuccessPolicy` to Stable. ([#130536](https://github.com/kubernetes/kubernetes/pull/130536), [@tenzen-y](https://github.com/tenzen-y)) [SIG API Machinery, Apps, Architecture and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3998-job-success-completion-policy", + "type": "KEP" + } + ], + "author": "tenzen-y", + "author_url": "https://github.com/tenzen-y", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130536", + "pr_number": 130536, + "areas": [ + "test", + "conformance", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130537": { + "commit": "0f7becbc443966e5cf4ac37aa20a1a509fab73eb", + "text": "Scheduling Framework exposes NodeInfo to the ScorePlugin.", + "markdown": "Scheduling Framework exposes NodeInfo to the ScorePlugin. ([#130537](https://github.com/kubernetes/kubernetes/pull/130537), [@saintube](https://github.com/saintube)) [SIG Scheduling, Storage and Testing]", + "author": "saintube", + "author_url": "https://github.com/saintube", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130537", + "pr_number": 130537, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130541": { + "commit": "648620da0ebdc87af8053d564d648c12c6606231", + "text": "`DistributeCPUsAcrossNUMA` policy option is promoted to Beta.", + "markdown": "`DistributeCPUsAcrossNUMA` policy option is promoted to Beta. ([#130541](https://github.com/kubernetes/kubernetes/pull/130541), [@swatisehgal](https://github.com/swatisehgal)) [SIG Node]", + "author": "swatisehgal", + "author_url": "https://github.com/swatisehgal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130541", + "pr_number": 130541, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "130544": { + "commit": "6b8341fc2e1b220612ee0b40cb99a86f456bd253", + "text": "SELinuxChangePolicy and SELinuxMount graduated to Beta. SELinuxMount stays off by default.", + "markdown": "SELinuxChangePolicy and SELinuxMount graduated to Beta. SELinuxMount stays off by default. ([#130544](https://github.com/kubernetes/kubernetes/pull/130544), [@jsafrane](https://github.com/jsafrane)) [SIG Auth, Node and Storage]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/jsafrane/enhancements/blob/selinux-rename-metrics/keps/sig-storage/1710-selinux-relabeling/README.md", + "type": "external" + } + ], + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130544", + "pr_number": 130544, + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "node", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130550": { + "commit": "83f8513db86649c5dfde1e1f287b867f9da418ee", + "text": "Graduated the asynchronous preemption feature in the scheduler to beta. \nNow the feature flag (SchedulerAsyncPreemption) is enabled by default.", + "markdown": "Graduated the asynchronous preemption feature in the scheduler to beta. \nNow the feature flag (SchedulerAsyncPreemption) is enabled by default. ([#130550](https://github.com/kubernetes/kubernetes/pull/130550), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130550", + "pr_number": 130550, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "130553": { + "commit": "94d66387d0ff7e8f82b5177f189baa3c12670849", + "text": "kube-apiserver: the `StorageObjectInUseProtection` admission plugin added the `kubernetes.io/vac-protection` finalizer to the given VolumeAttributesClass object when it is created if the feature-gate `VolumeAttributesClass` is turned on and `storage.k8s.io/v1beta1` is enabled.", + "markdown": "kube-apiserver: the `StorageObjectInUseProtection` admission plugin added the `kubernetes.io/vac-protection` finalizer to the given VolumeAttributesClass object when it is created if the feature-gate `VolumeAttributesClass` is turned on and `storage.k8s.io/v1beta1` is enabled. ([#130553](https://github.com/kubernetes/kubernetes/pull/130553), [@Phaow](https://github.com/Phaow)) [SIG Storage and Testing]", + "author": "Phaow", + "author_url": "https://github.com/Phaow", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130553", + "pr_number": 130553, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130556": { + "commit": "ff25881bc1fe9da1dda4ec82d294b92078ae2763", + "text": "Added support for configuring custom stop signals with a new StopSignal container lifecycle", + "markdown": "Added support for configuring custom stop signals with a new StopSignal container lifecycle ([#130556](https://github.com/kubernetes/kubernetes/pull/130556), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG API Machinery, Apps, Node and Testing]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/4960", + "type": "KEP" + } + ], + "author": "sreeram-venkitesh", + "author_url": "https://github.com/sreeram-venkitesh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130556", + "pr_number": 130556, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130559": { + "commit": "f5101231837cd3bdff420e04905024b5cd14e802", + "text": "Fixed a bug in the exclusive assignment availability check for the `InPlacePodVerticalScalingExclusiveCPUs` feature gate.", + "markdown": "Fixed a bug in the exclusive assignment availability check for the `InPlacePodVerticalScalingExclusiveCPUs` feature gate. ([#130559](https://github.com/kubernetes/kubernetes/pull/130559), [@esotsal](https://github.com/esotsal))", + "author": "esotsal", + "author_url": "https://github.com/esotsal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130559", + "pr_number": 130559, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "130560": { + "commit": "8312d8e85eb7e9590a0bf2e31dd6295b0486ac0c", + "text": "The `RemoteRequestHeaderUID` feature moves to beta and is now enabled by default. This makes the kube-apiserver propagate UIDs in the `X-Remote-Uid` header in requests to the aggregated API servers. The header is not honored by default for incoming requests, but that can be enabled by setting the `--requestheader-uid-headers` flag explicitly.", + "markdown": "The `RemoteRequestHeaderUID` feature moves to beta and is now enabled by default. This makes the kube-apiserver propagate UIDs in the `X-Remote-Uid` header in requests to the aggregated API servers. The header is not honored by default for incoming requests, but that can be enabled by setting the `--requestheader-uid-headers` flag explicitly. ([#130560](https://github.com/kubernetes/kubernetes/pull/130560), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Auth and Testing]", + "author": "stlaz", + "author_url": "https://github.com/stlaz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130560", + "pr_number": 130560, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130564": { + "commit": "8873c7e875bd3d1ba7c6351739f30ee7c62700f2", + "text": "Endpoints resources created by the Endpoints controller now include a label indicating this.\nUsers who manually create Endpoints can also add this label, but they should consider\nusing `EndpointSlices` instead.", + "markdown": "Endpoints resources created by the Endpoints controller now include a label indicating this.\nUsers who manually create Endpoints can also add this label, but they should consider\nusing `EndpointSlices` instead. ([#130564](https://github.com/kubernetes/kubernetes/pull/130564), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4974-deprecate-endpoints", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130564", + "pr_number": 130564, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "network" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130571": { + "commit": "2b025e645975d6d51bf38c008f972c632cf49657", + "text": "Added `apiserver.latency.k8s.io/authentication` annotation to the audit log to record the\ntime spent authenticating slow requests. Also added `apiserver.latency.k8s.io/authorization`\nannotation to record the time spent authorizing slow requests.", + "markdown": "Added `apiserver.latency.k8s.io/authentication` annotation to the audit log to record the\n time spent authenticating slow requests. Also added `apiserver.latency.k8s.io/authorization`\n annotation to record the time spent authorizing slow requests. ([#130571](https://github.com/kubernetes/kubernetes/pull/130571), [@hakuna-matatah](https://github.com/hakuna-matatah))", + "author": "hakuna-matatah", + "author_url": "https://github.com/hakuna-matatah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130571", + "pr_number": 130571, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true, + "is_mapped": true + }, + "130573": { + "commit": "9f8a84930dc7eeadf803a7a6cca8559bfd3cfc58", + "text": "The kubelet will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set.", + "markdown": "The kubelet will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set. ([#130573](https://github.com/kubernetes/kubernetes/pull/130573), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node, Scheduling, Storage, Testing and Windows]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/5067", + "type": "external" + } + ], + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130573", + "pr_number": 130573, + "areas": [ + "test", + "kubelet", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "node", + "scheduling", + "storage", + "testing", + "windows" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130574": { + "commit": "07d66d9c268c7f8a52b7ba8c339bf21df1ec3ff1", + "text": "For the `InPlacePodVerticalScaling` feature, the API server will no longer set the resize status to `Proposed` upon receiving a resize request.", + "markdown": "For the `InPlacePodVerticalScaling` feature, the API server will no longer set the resize status to `Proposed` upon receiving a resize request. ([#130574](https://github.com/kubernetes/kubernetes/pull/130574), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node and Testing]", + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130574", + "pr_number": 130574, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "bug", + "cleanup", + "api-change" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130577": { + "commit": "838f3c085261adadfed90d570cc2c65670c73a03", + "text": "Changed the Pod API to support `hugepage resources` at `spec` level for pod-level resources.", + "markdown": "Changed the Pod API to support `hugepage resources` at `spec` level for pod-level resources. ([#130577](https://github.com/kubernetes/kubernetes/pull/130577), [@KevinTMtz](https://github.com/KevinTMtz)) [SIG Apps, CLI, Node, Scheduling, Storage and Testing]", + "documentation": [ + { + "description": "[Other doc]", + "url": "https://docs.google.com/document/d/1JaqE2eRmFAPlRayv8vsAWE4SmQCVXQLr9rFPhEaPlvQ/edit?usp=sharing", + "type": "external" + } + ], + "author": "KevinTMtz", + "author_url": "https://github.com/KevinTMtz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130577", + "pr_number": 130577, + "areas": [ + "test", + "kubelet", + "kubectl" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "apps", + "cli", + "node", + "scheduling", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "130591": { + "commit": "1c756849d627dfb352eda2f3a0664eadbd488a0a", + "text": "Reduced log verbosity for high-frequency, low-value log entries in Job, IPAM, and ReplicaSet controllers by adjusting them to V(2), V(4) and V(4) respectively. This change minimizes log noise while maintaining access to these logs when needed.", + "markdown": "Reduced log verbosity for high-frequency, low-value log entries in Job, IPAM, and ReplicaSet controllers by adjusting them to V(2), V(4) and V(4) respectively. This change minimizes log noise while maintaining access to these logs when needed. ([#130591](https://github.com/kubernetes/kubernetes/pull/130591), [@fmuyassarov](https://github.com/fmuyassarov)) [SIG Apps and Network]", + "author": "fmuyassarov", + "author_url": "https://github.com/fmuyassarov", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130591", + "pr_number": 130591, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true, + "is_mapped": true + }, + "130599": { + "commit": "82667879bb20447f87f3a25677d875522ddc0c16", + "text": "Pod resource checkpointing is now tracked by the `allocated_pods_state` and `actuated_pods_state` files, replacing the previously used `pod_status_manager_state`.", + "markdown": "Pod resource checkpointing is now tracked by the `allocated_pods_state` and `actuated_pods_state` files, replacing the previously used `pod_status_manager_state`. ([#130599](https://github.com/kubernetes/kubernetes/pull/130599), [@tallclair](https://github.com/tallclair))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources#actuating-resizes", + "type": "KEP" + } + ], + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130599", + "pr_number": 130599, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "130616": { + "commit": "45fa12f8aff3a079db7b56c79fde90321339d16b", + "text": "Fixed a test failure in `TestSetVolumeOwnershipOwner` for `fsGroup=3000` and\nsymlink cases in `volume_linux_test.go`. The tests were failing due to invalid\nownership verification and the issue has been resolved by adjusting file\npermission change handling, ensuring correct behavior when run as root.", + "markdown": "Fixed a test failure in `TestSetVolumeOwnershipOwner` for `fsGroup=3000` and\n symlink cases in `volume_linux_test.go`. The tests were failing due to invalid\n ownership verification and the issue has been resolved by adjusting file\n permission change handling, ensuring correct behavior when run as root. ([#130616](https://github.com/kubernetes/kubernetes/pull/130616), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130616", + "pr_number": 130616, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "do_not_publish": true, + "is_mapped": true + }, + "130621": { + "commit": "2546557012b75441a15f8f8664a5d329816488bc", + "text": "`PodLifecycleSleepAction` is now turned on by default allowing users to create containers with sleep lifecycle action with a duration of zero seconds", + "markdown": "`PodLifecycleSleepAction` is now turned on by default allowing users to create containers with sleep lifecycle action with a duration of zero seconds ([#130621](https://github.com/kubernetes/kubernetes/pull/130621), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Node]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/4818", + "type": "KEP" + } + ], + "author": "sreeram-venkitesh", + "author_url": "https://github.com/sreeram-venkitesh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130621", + "pr_number": 130621, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "130626": { + "commit": "67e1a1ebbb926e720e7bd1ac7e0cac0436e26f2b", + "text": "`client-gen` now sorts input group/versions to ensure stable output generation even with unsorted inputs", + "markdown": "`client-gen` now sorts input group/versions to ensure stable output generation even with unsorted inputs ([#130626](https://github.com/kubernetes/kubernetes/pull/130626), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130626", + "pr_number": 130626, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "130649": { + "commit": "5c4071cc1d18f98f389412824c61c395d07d9a5c", + "text": "The kube-scheduler will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set.", + "markdown": "The kube-scheduler will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set. ([#130649](https://github.com/kubernetes/kubernetes/pull/130649), [@natasha41575](https://github.com/natasha41575)) [SIG Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/5067", + "type": "external" + } + ], + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130649", + "pr_number": 130649, + "areas": [ + "test", + "kubelet", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130650": { + "commit": "652f681c2bfc83014389e5b204881bfce3e40a8d", + "text": "The kube-controller-manager will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set.", + "markdown": "The kube-controller-manager will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set. ([#130650](https://github.com/kubernetes/kubernetes/pull/130650), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, Node, Scheduling, Storage, Testing and Windows]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/5067", + "type": "external" + } + ], + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130650", + "pr_number": 130650, + "areas": [ + "test", + "kubelet", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "scheduling", + "storage", + "testing", + "windows" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130651": { + "commit": "cd060979bfae61630c829d4a88f1fba2c60b3ad1", + "text": "NONE", + "markdown": "NONE ([#130651](https://github.com/kubernetes/kubernetes/pull/130651), [@ahrtr](https://github.com/ahrtr)) [SIG Etcd]", + "author": "ahrtr", + "author_url": "https://github.com/ahrtr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130651", + "pr_number": 130651, + "areas": [ + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "etcd" + ], + "feature": true, + "do_not_publish": true + }, + "130655": { + "commit": "cad46631a82ec34e0623181f65c0c0a6382e5deb", + "text": "e2e.test: [Feature:OffByDefault] was added to test names when specifying a feature gate that is not enabled by default.", + "markdown": "E2e.test: [Feature:OffByDefault] was added to test names when specifying a feature gate that is not enabled by default. ([#130655](https://github.com/kubernetes/kubernetes/pull/130655), [@BenTheElder](https://github.com/BenTheElder)) [SIG Auth and Testing]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130655", + "pr_number": 130655, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "130658": { + "commit": "2cb9e77fdec42bde190cf5d1c0e54e57052a2343", + "text": "Promote JobSuccessPolicy E2E to Conformance", + "markdown": "Promote JobSuccessPolicy E2E to Conformance ([#130658](https://github.com/kubernetes/kubernetes/pull/130658), [@tenzen-y](https://github.com/tenzen-y)) [SIG API Machinery, Apps, Architecture and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/3998-job-success-completion-policy", + "type": "KEP" + } + ], + "author": "tenzen-y", + "author_url": "https://github.com/tenzen-y", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130658", + "pr_number": 130658, + "areas": [ + "test", + "conformance", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130666": { + "commit": "0791d6ef704f2bffb9160b833fdf52bae20df036", + "text": "YAML input that might previously have been misinterpreted as JSON is now correctly accepted.", + "markdown": "YAML input that might previously have been misinterpreted as JSON is now correctly accepted. ([#130666](https://github.com/kubernetes/kubernetes/pull/130666), [@thockin](https://github.com/thockin))", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130666", + "pr_number": 130666, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "130673": { + "commit": "caf541857f46109e217e0b6d2fe6ec9496bfb361", + "text": "The Service trafficDistribution field, including the PreferClose option, has graduated\nto GA. Services that do not have the field configured will continue to operate\nwith their existing behavior. Refer to the documentation\nhttps://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution\nfor more details.", + "markdown": "The Service trafficDistribution field, including the PreferClose option, has graduated\n to GA. Services that do not have the field configured will continue to operate\n with their existing behavior. Refer to the documentation\n https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution\n for more details. ([#130673](https://github.com/kubernetes/kubernetes/pull/130673), [@gauravkghildiyal](https://github.com/gauravkghildiyal)) [SIG Apps, Network and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/66a23dbda468230aad30c6e2d8f2215f7796a0c3/keps/sig-network/4444-service-traffic-distribution", + "type": "KEP" + } + ], + "author": "gauravkghildiyal", + "author_url": "https://github.com/gauravkghildiyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130673", + "pr_number": 130673, + "areas": [ + "test", + "kube-proxy", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change", + "feature" + ], + "sigs": [ + "apps", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130701": { + "commit": "62555cadc741a8aef31acab05e9ed60f897edb1b", + "text": "Added Pressure Stall Information (PSI) metrics to node metrics.", + "markdown": "Added Pressure Stall Information (PSI) metrics to node metrics. ([#130701](https://github.com/kubernetes/kubernetes/pull/130701), [@roycaihw](https://github.com/roycaihw)) [SIG Node and Testing]", + "author": "roycaihw", + "author_url": "https://github.com/roycaihw", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130701", + "pr_number": 130701, + "areas": [ + "test", + "kubelet", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130711": { + "commit": "396c3ebe4c94a9977c1f67a8d4601ad69a5f28c6", + "text": "Added the ability to reduce both the initial delay and the maximum delay accrued between container restarts for a node for containers in `CrashLoopBackOff` across the cluster to the recommended values of `1s` initial delay and `60s` maximum delay. To set this for a node, turn on the feature gate `ReduceDefaultCrashLoopBackOffDecay`. If you are also using the feature gate `KubeletCrashLoopBackOffMax` with a configured per-node `CrashLoopBackOff.MaxContainerRestartPeriod`, the effective kubelet configuration will follow the conflict resolution policy described further in the documentation [here](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#reduced-container-restart-delay).", + "markdown": "Added the ability to reduce both the initial delay and the maximum delay accrued between container restarts for a node for containers in `CrashLoopBackOff` across the cluster to the recommended values of `1s` initial delay and `60s` maximum delay. To set this for a node, turn on the feature gate `ReduceDefaultCrashLoopBackOffDecay`. If you are also using the feature gate `KubeletCrashLoopBackOffMax` with a configured per-node `CrashLoopBackOff.MaxContainerRestartPeriod`, the effective kubelet configuration will follow the conflict resolution policy described further in the documentation [here](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#reduced-container-restart-delay). ([#130711](https://github.com/kubernetes/kubernetes/pull/130711), [@lauralorenz](https://github.com/lauralorenz)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/d367cd52eb4de2fe58c6e11a5d103d942ad60efb/keps/sig-node/4603-tune-crashloopbackoff/README.md", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://github.com/kubernetes/website/pull/50065", + "type": "external" + } + ], + "author": "lauralorenz", + "author_url": "https://github.com/lauralorenz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130711", + "pr_number": 130711, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "action_required": true, + "is_mapped": true + }, + "130725": { + "commit": "6ef1a1f98e90ea541eedb45274886fc3d255ea1d", + "text": "The minimum value validation of ReplicationController's `replicas` and `minReadySeconds` fields have been migrated to declarative validation. The requiredness of both fields is also declaratively validated.\nIf the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.\nIf the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields.", + "markdown": "The minimum value validation of ReplicationController's `replicas` and `minReadySeconds` fields have been migrated to declarative validation. The requiredness of both fields is also declaratively validated.\n If the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.\n If the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields. ([#130725](https://github.com/kubernetes/kubernetes/pull/130725), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Instrumentation, Network, Node and Storage]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130725", + "pr_number": 130725, + "areas": [ + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "code-generation", + "dependency", + "stable-metrics" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "cli", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "storage" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130728": { + "commit": "e981d1302b42dff964b1350c187109b87f61a99c", + "text": "The `DeclarativeValidation` feature gate is enabled by default. When enabled, mismatches with existing hand written validation is reported via metrics.\nThe `DeclarativeValidationTakeover` feature gate remains disabled by default. While disabled, validation errors produced by hand written validation are always return to the caller. To switch to declarative validation is primary source of errors for migrated fields, enable this feature gate.", + "markdown": "The `DeclarativeValidation` feature gate is enabled by default. When enabled, mismatches with existing hand written validation is reported via metrics.\n The `DeclarativeValidationTakeover` feature gate remains disabled by default. While disabled, validation errors produced by hand written validation are always return to the caller. To switch to declarative validation is primary source of errors for migrated fields, enable this feature gate. ([#130728](https://github.com/kubernetes/kubernetes/pull/130728), [@jpbetz](https://github.com/jpbetz))", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130728", + "pr_number": 130728, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "130733": { + "commit": "473ec01548c81fc356308448dd47923d0f234612", + "text": "The pod `status.resize` field is now deprecated and will no longer be set. The status of a pod resize will be exposed under two new conditions: `PodResizeInProgress` and `PodResizePending` instead.", + "markdown": "The pod `status.resize` field is now deprecated and will no longer be set. The status of a pod resize will be exposed under two new conditions: `PodResizeInProgress` and `PodResizePending` instead. ([#130733](https://github.com/kubernetes/kubernetes/pull/130733), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/1287", + "type": "external" + } + ], + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130733", + "pr_number": 130733, + "areas": [ + "test", + "kubelet", + "kubectl", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature", + "deprecation" + ], + "sigs": [ + "api-machinery", + "apps", + "cli", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130738": { + "commit": "b29c2f5343a385cf0867ee867b2def3999659ec2", + "text": "DRA: Starting Kubernetes 1.33, regular users with namespaced cluster `edit` role assigned have `read` permission to `resourceclaims`, `resourceclaims/status`,`resourceclaimtemplates`. And `write` permission for `resourceclaims`, `resourceclaimtemplates`.", + "markdown": "DRA: Starting Kubernetes 1.33, regular users with namespaced cluster `edit` role assigned have `read` permission to `resourceclaims`, `resourceclaims/status`,`resourceclaimtemplates`. And `write` permission for `resourceclaims`, `resourceclaimtemplates`. ([#130738](https://github.com/kubernetes/kubernetes/pull/130738), [@ritazh](https://github.com/ritazh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130738", + "pr_number": 130738, + "kinds": [ + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true, + "is_mapped": true + }, + "130742": { + "commit": "c12006e8b460e7fb690a94600c89f3a01caefcbb", + "text": "The EndpointSlice `hints` field has graduated to GA. The beta annotation `service.kubernetes.io/topology-mode` is now considered deprecated and will not graduate to GA. It remains operational for backward compatibility. Users are encouraged to use the `spec.trafficDistribution` field in the Service API for topology-aware routing configuration.", + "markdown": "The EndpointSlice `hints` field has graduated to GA. The beta annotation `service.kubernetes.io/topology-mode` is now considered deprecated and will not graduate to GA. It remains operational for backward compatibility. Users are encouraged to use the `spec.trafficDistribution` field in the Service API for topology-aware routing configuration. ([#130742](https://github.com/kubernetes/kubernetes/pull/130742), [@gauravkghildiyal](https://github.com/gauravkghildiyal))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/efd94f0918a8a48d9a1afcef3cb54cb630d8d4ce/keps/sig-network/2433-topology-aware-hints", + "type": "KEP" + } + ], + "author": "gauravkghildiyal", + "author_url": "https://github.com/gauravkghildiyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130742", + "pr_number": 130742, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "documentation", + "cleanup", + "feature", + "deprecation" + ], + "sigs": [ + "network" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130751": { + "commit": "be127ae0e27644edead7007834b5c8437fb6eb0b", + "text": "Introduced API type `coordination.k8s.io/v1beta1/LeaseCandidate`\n`CoordinatedLeaderElection` feature moves to Beta", + "markdown": "Introduced API type `coordination.k8s.io/v1beta1/LeaseCandidate`\n`CoordinatedLeaderElection` feature moves to Beta ([#130751](https://github.com/kubernetes/kubernetes/pull/130751), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Etcd and Testing]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/4355-coordinated-leader-election", + "type": "KEP" + } + ], + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130751", + "pr_number": 130751, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "etcd", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130764": { + "commit": "d8607b91a78d01d5e0903e69765feb66651af2cf", + "text": "Added feature gate `DRAPartitionableDevices`, when enabled, Dynamic Resource Allocation support partitionable devices allocation.", + "markdown": "Added feature gate `DRAPartitionableDevices`, when enabled, Dynamic Resource Allocation support partitionable devices allocation. ([#130764](https://github.com/kubernetes/kubernetes/pull/130764), [@cici37](https://github.com/cici37)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130764", + "pr_number": 130764, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130772": { + "commit": "322083c948032449f3d810217947bf14fcaa72f6", + "text": "Added `SchedulerPopFromBackoffQ` feature gate that is in beta and enabled by default. Improved scheduling queue behavior by popping pods from the backoffQ when the activeQ is empty. This allows to process potentially schedulable pods ASAP, eliminating a penalty effect of the backoff queue.", + "markdown": "Added `SchedulerPopFromBackoffQ` feature gate that is in beta and enabled by default. Improved scheduling queue behavior by popping pods from the backoffQ when the activeQ is empty. This allows to process potentially schedulable pods ASAP, eliminating a penalty effect of the backoff queue. ([#130772](https://github.com/kubernetes/kubernetes/pull/130772), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing]", + "author": "macsko", + "author_url": "https://github.com/macsko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130772", + "pr_number": 130772, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130797": { + "commit": "34e80be1330556848521314ece92e9277efb26d4", + "text": "Added a new `tolerance` field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate.", + "markdown": "Added a new `tolerance` field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. ([#130797](https://github.com/kubernetes/kubernetes/pull/130797), [@jm-franc](https://github.com/jm-franc)) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/23e8eae624f53771990d2643e20c0937cc54b1f8/keps/sig-autoscaling/4951-configurable-hpa-tolerance", + "type": "KEP" + } + ], + "author": "jm-franc", + "author_url": "https://github.com/jm-franc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130797", + "pr_number": 130797, + "areas": [ + "test", + "apiserver", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "autoscaling", + "etcd", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130798": { + "commit": "caf03a865270f87e4bb65fa087238ecc072a56fb", + "text": "Bumped `ProcMountType` feature to on by default beta", + "markdown": "Bumped `ProcMountType` feature to on by default beta ([#130798](https://github.com/kubernetes/kubernetes/pull/130798), [@haircommander](https://github.com/haircommander)) [SIG Node]", + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130798", + "pr_number": 130798, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "130814": { + "commit": "f9e92a1aa76ddf8a990fc512fe9970154ab1b5fa", + "text": "`DRAResourceClaimDeviceStatus` is now turned on by default allowing DRA-Drivers to report device status data for each allocated device.", + "markdown": "`DRAResourceClaimDeviceStatus` is now turned on by default allowing DRA-Drivers to report device status data for each allocated device. ([#130814](https://github.com/kubernetes/kubernetes/pull/130814), [@LionelJouin](https://github.com/LionelJouin)) [SIG Network and Node]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/4817", + "type": "KEP" + } + ], + "author": "LionelJouin", + "author_url": "https://github.com/LionelJouin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130814", + "pr_number": 130814, + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130831": { + "commit": "d383020cc8478fab2d7f2d642386034919017611", + "text": "Disabled InPlace Pod Resize for Swap enabled containers that does not have memory ResizePolicy as RestartContainer", + "markdown": "Disabled InPlace Pod Resize for Swap enabled containers that does not have memory ResizePolicy as RestartContainer ([#130831](https://github.com/kubernetes/kubernetes/pull/130831), [@ajaysundark](https://github.com/ajaysundark)) [SIG Node and Testing]", + "author": "ajaysundark", + "author_url": "https://github.com/ajaysundark", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130831", + "pr_number": 130831, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "130844": { + "commit": "68ba091fca6927534e187d8b2595882352497f2f", + "text": "When the `PreferSameTrafficDistribution` feature gate is enabled, a new\n`trafficDistribution` value `PreferSameNode` is available, which attempts to\nalways route Service connections to an endpoint on the same node as\nthe client. Additionally, `PreferSameZone` is introduced as an alias for\n`PreferClose`.", + "markdown": "When the `PreferSameTrafficDistribution` feature gate is enabled, a new\n`trafficDistribution` value `PreferSameNode` is available, which attempts to\nalways route Service connections to an endpoint on the same node as\nthe client. Additionally, `PreferSameZone` is introduced as an alias for\n`PreferClose`. ([#130844](https://github.com/kubernetes/kubernetes/pull/130844), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network and Windows]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3015", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130844", + "pr_number": 130844, + "areas": [ + "kube-proxy", + "code-generation", + "ipvs" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "network", + "windows" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130870": { + "commit": "5639e1fd08dc71ab1c9e759931ecf037721eab90", + "text": "[root@raji-x86-workspace1 kubernetes]# make quick-release KUBE_CROSS_VERSION=v1.32.0-go1.23.6-bullseye.0\n+++ [0313 08:15:47] Verifying Prerequisites....\n+++ [0313 08:15:48] Building Docker image kube-build:build-c08a296a0e-5-v1.33.0-go1.24.0-bullseye.0\n+++ [0313 08:17:39] Creating data container kube-build-data-c08a296a0e-5-v1.33.0-go1.24.0-bullseye.0\n+++ [0313 08:17:39] Syncing sources to container\n+++ [0313 08:17:57] Running build command...\ngo: downloading go1.24.0 (linux/amd64)\n+++ [0313 08:18:35] Building go targets for linux/amd64\n k8s.io/apiextensions-apiserver (static)\n k8s.io/component-base/logs/kube-log-runner (static)\n k8s.io/kube-aggregator (static)\n k8s.io/kubernetes/cluster/gce/gci/mounter (static)\n k8s.io/kubernetes/cmd/kube-apiserver (static)\n k8s.io/kubernetes/cmd/kube-controller-manager (static)\n k8s.io/kubernetes/cmd/kube-proxy (static)\n k8s.io/kubernetes/cmd/kube-scheduler (static)\n k8s.io/kubernetes/cmd/kubeadm (static)\n k8s.io/kubernetes/cmd/kubelet (non-static)\n+++ [0313 08:22:08] Building go targets for linux/amd64\n k8s.io/component-base/logs/kube-log-runner (static)\n k8s.io/kubernetes/cmd/kube-proxy (static)\n k8s.io/kubernetes/cmd/kubeadm (static)\n k8s.io/kubernetes/cmd/kubelet (non-static)\n+++ [0313 08:22:41] Building go targets for linux/amd64\n k8s.io/kubernetes/cmd/kubectl (static)\n k8s.io/kubernetes/cmd/kubectl-convert (static)\n+++ [0313 08:23:06] Building go targets for linux/amd64\n github.com/onsi/ginkgo/v2/ginkgo (non-static)\n k8s.io/kubernetes/test/conformance/image/go-runner (non-static)\n k8s.io/kubernetes/test/e2e/e2e.test (test)\n\n[root@raji-x86-workspace1 kubernetes]#", + "markdown": "[root@raji-x86-workspace1 kubernetes]# make quick-release KUBE_CROSS_VERSION=v1.32.0-go1.23.6-bullseye.0\n +++ [0313 08:15:47] Verifying Prerequisites....\n +++ [0313 08:15:48] Building Docker image kube-build:build-c08a296a0e-5-v1.33.0-go1.24.0-bullseye.0\n +++ [0313 08:17:39] Creating data container kube-build-data-c08a296a0e-5-v1.33.0-go1.24.0-bullseye.0\n +++ [0313 08:17:39] Syncing sources to container\n +++ [0313 08:17:57] Running build command...\n go: downloading go1.24.0 (linux/amd64)\n +++ [0313 08:18:35] Building go targets for linux/amd64\n k8s.io/apiextensions-apiserver (static)\n k8s.io/component-base/logs/kube-log-runner (static)\n k8s.io/kube-aggregator (static)\n k8s.io/kubernetes/cluster/gce/gci/mounter (static)\n k8s.io/kubernetes/cmd/kube-apiserver (static)\n k8s.io/kubernetes/cmd/kube-controller-manager (static)\n k8s.io/kubernetes/cmd/kube-proxy (static)\n k8s.io/kubernetes/cmd/kube-scheduler (static)\n k8s.io/kubernetes/cmd/kubeadm (static)\n k8s.io/kubernetes/cmd/kubelet (non-static)\n +++ [0313 08:22:08] Building go targets for linux/amd64\n k8s.io/component-base/logs/kube-log-runner (static)\n k8s.io/kubernetes/cmd/kube-proxy (static)\n k8s.io/kubernetes/cmd/kubeadm (static)\n k8s.io/kubernetes/cmd/kubelet (non-static)\n +++ [0313 08:22:41] Building go targets for linux/amd64\n k8s.io/kubernetes/cmd/kubectl (static)\n k8s.io/kubernetes/cmd/kubectl-convert (static)\n +++ [0313 08:23:06] Building go targets for linux/amd64\n github.com/onsi/ginkgo/v2/ginkgo (non-static)\n k8s.io/kubernetes/test/conformance/image/go-runner (non-static)\n k8s.io/kubernetes/test/e2e/e2e.test (test)\n \n [root@raji-x86-workspace1 kubernetes]# ([#130870](https://github.com/kubernetes/kubernetes/pull/130870), [@Rajalakshmi-Girish](https://github.com/Rajalakshmi-Girish)) [SIG Release]", + "author": "Rajalakshmi-Girish", + "author_url": "https://github.com/Rajalakshmi-Girish", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130870", + "pr_number": 130870, + "kinds": [ + "cleanup" + ], + "sigs": [ + "release" + ], + "do_not_publish": true + }, + "130875": { + "commit": "c608791a110a96b15a45c17d22f6ed29b01d7e9b", + "text": "Fixed the example validation rule in godoc:\n\nWhen configuring a JWT authenticator:\n\nIf username.expression uses 'claims.email', then 'claims.email_verified' must be used in\nusername.expression or extra[*].valueExpression or claimValidationRules[*].expression.\nAn example claim validation rule expression that matches the validation automatically\napplied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'. \nBy explicitly comparing the value to true, we let type-checking see the result will be a boolean, \nand to make sure a non-boolean `email_verified` claim will be caught at runtime.", + "markdown": "Fixed the example validation rule in godoc:\n\nWhen configuring a JWT authenticator:\n \n If username.expression uses 'claims.email', then 'claims.email_verified' must be used in\n username.expression or extra[*].valueExpression or claimValidationRules[*].expression.\n An example claim validation rule expression that matches the validation automatically\n applied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'. \n By explicitly comparing the value to true, we let type-checking see the result will be a boolean, \n and to make sure a non-boolean `email_verified` claim will be caught at runtime. ([#130875](https://github.com/kubernetes/kubernetes/pull/130875), [@aramase](https://github.com/aramase)) [SIG Auth and Release]", + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130875", + "pr_number": 130875, + "areas": [ + "release-eng" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "auth", + "release" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130876": { + "commit": "664d4058160523b6f19058acc5af44de5ebf68ea", + "text": "Graduated the `WinDSR` feature in the kube-proxy to beta. The `WinDSR` feature gate is now enabled by default.", + "markdown": "Graduated the `WinDSR` feature in the kube-proxy to beta. The `WinDSR` feature gate is now enabled by default. ([#130876](https://github.com/kubernetes/kubernetes/pull/130876), [@rzlink](https://github.com/rzlink)) [SIG Windows]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/5100-windows-dsr-and-overlay-support", + "type": "KEP" + } + ], + "author": "rzlink", + "author_url": "https://github.com/rzlink", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130876", + "pr_number": 130876, + "kinds": [ + "feature" + ], + "sigs": [ + "windows" + ], + "feature": true, + "is_mapped": true + }, + "130880": { + "commit": "e87e840413aeb3e8ed899965480b3d86b49e4819", + "text": "The feature gate `InPlacePodVerticalScalingAllocatedStatus` is deprecated and no longer used. The `AllocatedResources` field in `ContainerStatus` is now guarded by the `InPlacePodVerticalScaling` feature gate.", + "markdown": "The feature gate `InPlacePodVerticalScalingAllocatedStatus` is deprecated and no longer used. The `AllocatedResources` field in `ContainerStatus` is now guarded by the `InPlacePodVerticalScaling` feature gate. ([#130880](https://github.com/kubernetes/kubernetes/pull/130880), [@tallclair](https://github.com/tallclair)) [SIG CLI, Node and Scheduling]", + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130880", + "pr_number": 130880, + "areas": [ + "kubelet", + "kubectl" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "cli", + "node", + "scheduling" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130899": { + "commit": "e5558a81c93fef5463b02ae7c2a8c0c4b15ecc3a", + "text": "Errors returned by apiserver from uninitialized cache will include last error from etcd", + "markdown": "Errors returned by apiserver from uninitialized cache will include last error from etcd ([#130899](https://github.com/kubernetes/kubernetes/pull/130899), [@serathius](https://github.com/serathius)) [SIG API Machinery and Testing]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130899", + "pr_number": 130899, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130902": { + "commit": "16abcd78bd493c2694754e46f9227fef7976ed91", + "text": "Errors that occur during pod resize actuation will now surface in the `PodResizeInProgress` condition.", + "markdown": "Errors that occur during pod resize actuation will now surface in the `PodResizeInProgress` condition. ([#130902](https://github.com/kubernetes/kubernetes/pull/130902), [@natasha41575](https://github.com/natasha41575))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/1287", + "type": "external" + } + ], + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130902", + "pr_number": 130902, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "130905": { + "commit": "7fb8bd8aca7b70bb599059526ad01d81fad6a131", + "text": "Promoted in-place Pod vertical scaling to beta. The `InPlacePodVerticalScaling` feature gate is now enabled by default.", + "markdown": "Promoted in-place Pod vertical scaling to beta. The `InPlacePodVerticalScaling` feature gate is now enabled by default. ([#130905](https://github.com/kubernetes/kubernetes/pull/130905), [@tallclair](https://github.com/tallclair))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/1287-in-place-update-pod-resources", + "type": "KEP" + } + ], + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130905", + "pr_number": 130905, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "130908": { + "commit": "63bd5816952b531cd026e830a4eab2d02c227ff2", + "text": "e2e framework: `framework.WithFeatureGate` `[Alpha]`, `[Beta]` and `[Feature:OffByDefault]` tags are now set 1:1 with `Alpha`, `Beta`, `Feature:OffByDefault` Ginkgo labels, replacing`Feature:Alpha` and `Feature:Beta` labels. `BetaOffByDefault` is also added as a Ginkgo label only for off-by-default beta features", + "markdown": "e2e framework: `framework.WithFeatureGate` `[Alpha]`, `[Beta]` and `[Feature:OffByDefault]` tags are now set 1:1 with `Alpha`, `Beta`, `Feature:OffByDefault` Ginkgo labels, replacing`Feature:Alpha` and `Feature:Beta` labels. `BetaOffByDefault` is also added as a Ginkgo label only for off-by-default beta features ([#130908](https://github.com/kubernetes/kubernetes/pull/130908), [@BenTheElder](https://github.com/BenTheElder)) [SIG Testing]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130908", + "pr_number": 130908, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ], + "is_mapped": true + }, + "130920": { + "commit": "41dd679feee0299ebebe82409d3caeddf02f4aa9", + "text": "Promoted NodeInclusionPolicyInPodTopologySpread to Stable in v1.33", + "markdown": "Promoted NodeInclusionPolicyInPodTopologySpread to Stable in v1.33 ([#130920](https://github.com/kubernetes/kubernetes/pull/130920), [@kerthcet](https://github.com/kerthcet)) [SIG Apps, Node, Scheduling and Testing]", + "author": "kerthcet", + "author_url": "https://github.com/kerthcet", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130920", + "pr_number": 130920, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130935": { + "commit": "17ecb5c974f64a67c71c7c228bf75b2a66b99d1c", + "text": "Added Windows Server, Version 2025 for windows-servercore-cache test image", + "markdown": "Added Windows Server, Version 2025 for windows-servercore-cache test image ([#130935](https://github.com/kubernetes/kubernetes/pull/130935), [@aramase](https://github.com/aramase)) [SIG Testing and Windows]", + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130935", + "pr_number": 130935, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing", + "windows" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "131020": { + "commit": "b4d139094698687043b36f1c378dfeb1b654198a", + "text": "Fixed a bug where kube-apiserver could emit a subsequent watch event even if the previous event failed to decrypt and was not emitted.", + "markdown": "Fixed a bug where kube-apiserver could emit a subsequent watch event even if the previous event failed to decrypt and was not emitted. ([#131020](https://github.com/kubernetes/kubernetes/pull/131020), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Etcd]", + "author": "wojtek-t", + "author_url": "https://github.com/wojtek-t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131020", + "pr_number": 131020, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "etcd" + ], + "duplicate": true, + "is_mapped": true + }, + "131036": { + "commit": "49b85354fe5b02538d6449092a0cae46d2eb209a", + "text": "kubeadm: make sure that it is possible to health check the kube-apiserver when it has `--anonymous-auth=false` set and the `WaitForAllControlPlaneComponents` feature gate is enabled.", + "markdown": "kubeadm: make sure that it is possible to health check the kube-apiserver when it has `--anonymous-auth=false` set and the `WaitForAllControlPlaneComponents` feature gate is enabled. ([#131036](https://github.com/kubernetes/kubernetes/pull/131036), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131036", + "pr_number": 131036, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "131103": { + "commit": "f4d1686120d2367dd4c00df53e93dad51c414435", + "text": "Updated the etcd client library to `v3.5.21`", + "markdown": "Updated the etcd client library to `v3.5.21` ([#131103](https://github.com/kubernetes/kubernetes/pull/131103), [@ahrtr](https://github.com/ahrtr)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node and Storage]", + "author": "ahrtr", + "author_url": "https://github.com/ahrtr", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131103", + "pr_number": 131103, + "areas": [ + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "etcd", + "instrumentation", + "network", + "node", + "storage" + ], + "duplicate": true, + "is_mapped": true + }, + "131263": { + "commit": "0266d3bcb37f6a5e649ae0af7f1bf243938e4d56", + "text": "kube-apiserv r: Fixes an issue updating the default ServiceCIDR API object and creating dual-stack Service API objects when `--service-cluster-ip-range` flag passed to kube-apiserver is changed from single-stack to dual-stack", + "markdown": "kube-apiserver: Fixes an issue updating the default ServiceCIDR API object and creating dual-stack Service API objects when `--service-cluster-ip-range` flag passed to kube-apiserver is changed from single-stack to dual-stack ([#131263](https://github.com/kubernetes/kubernetes/pull/131263), [@aojea](https://github.com/aojea)) [SIG API Machinery, Network and Testing]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131263", + "pr_number": 131263, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "network", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "131359": { + "commit": "660df229bf3929741cf31659187060d0c651dcf9", + "text": "kube-apiserver disabled the beta WatchList feature by default in 1.33 in favor of the `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` features.\nkube-controller-manager no longer opts into enabling the WatchListClient feature in 1.33.", + "markdown": "kube-apiserver disabled the beta WatchList feature by default in 1.33 in favor of the `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` features.\nkube-controller-manager no longer opts into enabling the WatchListClient feature in 1.33. ([#131359](https://github.com/kubernetes/kubernetes/pull/131359), [@deads2k](https://github.com/deads2k)) [SIG API Machinery, Network and Testing]", + "author": "deads2k", + "author_url": "https://github.com/deads2k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131359", + "pr_number": 131359, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "duplicate": true, + "is_mapped": true + } } \ No newline at end of file diff --git a/releases/release-1.33/release-notes/release-notes-draft.md b/releases/release-1.33/release-notes/release-notes-draft.md index 5c2944ebb9a..1d14418f52c 100644 --- a/releases/release-1.33/release-notes/release-notes-draft.md +++ b/releases/release-1.33/release-notes/release-notes-draft.md @@ -1,367 +1,367 @@ -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- Added the ability to reduce both the initial delay and the maximum delay accrued between container restarts for a node for containers in `CrashLoopBackOff` across the cluster to the recommended values of `1s` initial delay and `60s` maximum delay. To set this for a node, turn on the feature gate `ReduceDefaultCrashLoopBackOffDecay`. If you are also using the feature gate `KubeletCrashLoopBackOffMax` with a configured per-node `CrashLoopBackOff.MaxContainerRestartPeriod`, the effective kubelet configuration will follow the conflict resolution policy described further in the documentation [here](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#reduced-container-restart-delay). ([#130711](https://github.com/kubernetes/kubernetes/pull/130711), [@lauralorenz](https://github.com/lauralorenz)) [SIG Node and Testing] - - [Action Required] CSI drivers that call IsLikelyNotMountPoint should not assume false means that the path is a mount point. Each CSI driver needs to make sure correct usage of return value of IsLikelyNotMountPoint because if the file is an irregular file but not a mount point is acceptable ([#129370](https://github.com/kubernetes/kubernetes/pull/129370), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage and Windows] - - Fixed the behavior of the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable in the nftables proxier. The kernel version check is now skipped only when this variable is explicitly set to a non-empty value. To skip the check, set the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable. ([#130401](https://github.com/kubernetes/kubernetes/pull/130401), [@ryota-sakamoto](https://github.com/ryota-sakamoto)) - - Renamed `UpdatePodTolerations` action type to `UpdatePodToleration`. - Action required for custom plugin developers to update their code to follow the rename. ([#129023](https://github.com/kubernetes/kubernetes/pull/129023), [@zhifei92](https://github.com/zhifei92)) [SIG Scheduling and Testing] - -## Changes by Kind - -### Deprecation - -- The EndpointSlice `hints` field has graduated to GA. The beta annotation `service.kubernetes.io/topology-mode` is now considered deprecated and will not graduate to GA. It remains operational for backward compatibility. Users are encouraged to use the `spec.trafficDistribution` field in the Service API for topology-aware routing configuration. ([#130742](https://github.com/kubernetes/kubernetes/pull/130742), [@gauravkghildiyal](https://github.com/gauravkghildiyal)) [SIG Network] -- The `StorageCapacityScoring` feature gate was added to score nodes by available storage capacity. It's in alpha and disabled by default. The `VolumeCapacityPriority` alpha feature was replaced with this, and the default behavior was changed. The `VolumeCapacityPriority` preferred a node with the least allocatable, but the `StorageCapacityScoring` preferred a node with the maximum allocatable. See [KEP-4049](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning/README.md) for details. ([#128184](https://github.com/kubernetes/kubernetes/pull/128184), [@cupnes](https://github.com/cupnes)) [SIG Scheduling, Storage and Testing] -- The `WatchFromStorageWithoutResourceVersion` feature was deprecated and can no longer be enabled. ([#129930](https://github.com/kubernetes/kubernetes/pull/129930), [@serathius](https://github.com/serathius)) -- The pod `status.resize` field is now deprecated and will no longer be set. The status of a pod resize will be exposed under two new conditions: `PodResizeInProgress` and `PodResizePending` instead. ([#130733](https://github.com/kubernetes/kubernetes/pull/130733), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing] -- The v1 Endpoints API is now officially deprecated (though still fully supported). The API will not be removed, but all users should use the EndpointSlice API instead. ([#130098](https://github.com/kubernetes/kubernetes/pull/130098), [@danwinship](https://github.com/danwinship)) [SIG API Machinery and Network] - -### API Change - -- A new alpha feature gate, `MutableCSINodeAllocatableCount`, has been introduced. - - When this feature gate is enabled, the `CSINode.Spec.Drivers[*].Allocatable.Count` field becomes mutable, and a new field, `NodeAllocatableUpdatePeriodSeconds`, is available in the `CSIDriver` object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. ([#130007](https://github.com/kubernetes/kubernetes/pull/130007), [@torredil](https://github.com/torredil)) [SIG Apps, Node, Scheduling and Storage] -- Added feature gate `DRAPartitionableDevices`, when enabled, Dynamic Resource Allocation support partitionable devices allocation. ([#130764](https://github.com/kubernetes/kubernetes/pull/130764), [@cici37](https://github.com/cici37)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing] -- Added DRA support for a "one-of" prioritized list of selection criteria to satisfy a device request in a resource claim. ([#128586](https://github.com/kubernetes/kubernetes/pull/128586), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing] -- Added a `/flagz` endpoint for kubelet endpoint ([#128857](https://github.com/kubernetes/kubernetes/pull/128857), [@zhifei92](https://github.com/zhifei92)) [SIG Architecture, Instrumentation and Node] -- Added a new `tolerance` field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. ([#130797](https://github.com/kubernetes/kubernetes/pull/130797), [@jm-franc](https://github.com/jm-franc)) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing] -- Added support for configuring custom stop signals with a new StopSignal container lifecycle ([#130556](https://github.com/kubernetes/kubernetes/pull/130556), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG API Machinery, Apps, Node and Testing] -- Added support for in-place vertical scaling of Pods with sidecars (containers defined within `initContainers` where the `restartPolicy` is set to `Always`). ([#128367](https://github.com/kubernetes/kubernetes/pull/128367), [@vivzbansal](https://github.com/vivzbansal)) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing] -- CPUManager Policy Options support is GA ([#130535](https://github.com/kubernetes/kubernetes/pull/130535), [@ffromani](https://github.com/ffromani)) [SIG API Machinery, Node and Testing] -- Changed the Pod API to support `hugepage resources` at `spec` level for pod-level resources. ([#130577](https://github.com/kubernetes/kubernetes/pull/130577), [@KevinTMtz](https://github.com/KevinTMtz)) [SIG Apps, CLI, Node, Scheduling, Storage and Testing] -- DRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the `status.reservedFor` field. ([#129543](https://github.com/kubernetes/kubernetes/pull/129543), [@pohly](https://github.com/pohly)) [SIG API Machinery, Node and Testing] -- DRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete. ([#129661](https://github.com/kubernetes/kubernetes/pull/129661), [@pohly](https://github.com/pohly)) [SIG Node] -- DRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint. ([#130447](https://github.com/kubernetes/kubernetes/pull/130447), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing] -- DRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the `kubernetes.io/dra-admin-access` label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the `adminAccess` field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs. ([#130225](https://github.com/kubernetes/kubernetes/pull/130225), [@ritazh](https://github.com/ritazh)) [SIG API Machinery, Apps, Auth, Node and Testing] -- DRA: when asking for "All" devices on a node, Kubernetes <= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the "proceed with scheduling also without devices" semantic can use the upcoming prioritized list feature with one sub-request for "all" devices and a second alternative with "count: 0". ([#129560](https://github.com/kubernetes/kubernetes/pull/129560), [@bart0sh](https://github.com/bart0sh)) [SIG API Machinery and Node] -- Expanded the on-disk kubelet credential provider configuration to allow an optional `tokenAttribute` field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration. ([#128372](https://github.com/kubernetes/kubernetes/pull/128372), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Node and Testing] -- Fixed the example validation rule in godoc: - - When configuring a JWT authenticator: - - If username.expression uses 'claims.email', then 'claims.email_verified' must be used in - username.expression or extra[*].valueExpression or claimValidationRules[*].expression. - An example claim validation rule expression that matches the validation automatically - applied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'. - By explicitly comparing the value to true, we let type-checking see the result will be a boolean, - and to make sure a non-boolean `email_verified` claim will be caught at runtime. ([#130875](https://github.com/kubernetes/kubernetes/pull/130875), [@aramase](https://github.com/aramase)) [SIG Auth and Release] -- For the `InPlacePodVerticalScaling` feature, the API server will no longer set the resize status to `Proposed` upon receiving a resize request. ([#130574](https://github.com/kubernetes/kubernetes/pull/130574), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node and Testing] -- Graduate the `MatchLabelKeys` (MismatchLabelKeys) feature in PodAffinity (PodAntiAffinity) to GA ([#130463](https://github.com/kubernetes/kubernetes/pull/130463), [@sanposhiho](https://github.com/sanposhiho)) [SIG API Machinery, Apps, Node, Scheduling and Testing] -- Graduated image volume sources to beta: - - Allowed `subPath`/`subPathExpr` for image volumes - - Added kubelet metrics `kubelet_image_volume_requested_total`, `kubelet_image_volume_mounted_succeed_total` and `kubelet_image_volume_mounted_errors_total` ([#130135](https://github.com/kubernetes/kubernetes/pull/130135), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Apps, Node and Testing] -- Implemented a new status field, `.status.terminatingReplicas`, for Deployments and ReplicaSets to track terminating pods. The new field is present when the `DeploymentPodReplacementPolicy` feature gate is enabled. ([#128546](https://github.com/kubernetes/kubernetes/pull/128546), [@atiratree](https://github.com/atiratree)) [SIG API Machinery, Apps and Testing] -- Implemented validation for `NodeSelectorRequirement` values in Kubernetes when creating pods. ([#128212](https://github.com/kubernetes/kubernetes/pull/128212), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps and Scheduling] -- Improved how the API server responds to **list** requests where the response format negotiates to Protobuf. List responses in Protobuf are marshalled one element at the time, drastically reducing memory needed to serve large collections. Streaming list responses can be disabled via the `StreamingCollectionEncodingToProtobuf` feature gate. ([#129407](https://github.com/kubernetes/kubernetes/pull/129407), [@serathius](https://github.com/serathius)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Network, Node, Release, Scheduling, Storage and Testing] -- InPlacePodVerticalScaling: Memory limits cannot be decreased unless the memory resize restart policy is set to `RestartContainer`. Container resizePolicy is no longer mutable. ([#130183](https://github.com/kubernetes/kubernetes/pull/130183), [@tallclair](https://github.com/tallclair)) [SIG Apps and Node] -- Introduced API type `coordination.k8s.io/v1beta1/LeaseCandidate` - `CoordinatedLeaderElection` feature moves to Beta ([#130751](https://github.com/kubernetes/kubernetes/pull/130751), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Etcd and Testing] -- Introduced API type `coordination.k8s.io/v1beta1/LeaseCandidate` ([#130291](https://github.com/kubernetes/kubernetes/pull/130291), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Etcd and Testing] -- It introduces a new scope name `VolumeAttributesClass`. - - It matches all PVC objects that have the volume attributes class mentioned. - - If you want to limit the count of PVCs that have a specific volume attributes class. In that case, you can create a quota object with the scope name `VolumeAttributesClass` and a `matchExpressions` that match the volume attributes class. ([#124360](https://github.com/kubernetes/kubernetes/pull/124360), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Testing] -- KEP-3857: Recursive Read-only (RRO) mounts: promote to GA ([#130116](https://github.com/kubernetes/kubernetes/pull/130116), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Apps, Node and Testing] -- kubectl: Added alpha support for customizing kubectl behavior using preferences from a `kuberc` file, separate from `kubeconfig`. ([#125230](https://github.com/kubernetes/kubernetes/pull/125230), [@ardaguclu](https://github.com/ardaguclu)) [SIG API Machinery, CLI and Testing] -- kubelet: added `KubeletConfiguration.subidsPerPod`. ([#130028](https://github.com/kubernetes/kubernetes/pull/130028), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG API Machinery and Node] -- Kubernetes components that accepted X.509 client certificate authentication now read the user UID from a certificate subject name RDN with object ID `1.3.6.1.4.1.57683.2`. An RDN with this object ID had to contain a string value and appear no more than once in the certificate subject. Reading the user UID from this RDN could be disabled by setting the beta feature gate `AllowParsingUserUIDFromCertAuth` to `false`(until the feature gate graduated to GA). ([#127897](https://github.com/kubernetes/kubernetes/pull/127897), [@modulitos](https://github.com/modulitos)) [SIG API Machinery, Auth and Testing] -- `MergeDefaultEvictionSettings` indicates that defaults for the evictionHard, evictionSoft, evictionSoftGracePeriod, and evictionMinimumReclaim fields should be merged into values specified for those fields in this configuration. Signals specified in this configuration take precedence. Signals not specified in this configuration inherit their defaults. ([#127577](https://github.com/kubernetes/kubernetes/pull/127577), [@vaibhav2107](https://github.com/vaibhav2107)) [SIG API Machinery and Node] -- New configuration is introduced to the kubelet that allows it to track container images and the list of authentication information that leads to their successful pulls. This data is persisted across reboots of the host and restarts of the kubelet. - - The kubelet ensures any image requiring credential verification is always pulled if authentication information from an image pull is not yet present, thus enforcing authentication / re-authentication. This means an image pull might be attempted even in cases where a pod requests the `IfNotPresent` image pull policy, and might lead to the pod not starting if its pull policy is `Never` and is unable to present authentication information that led to a previous successful pull of the image it is requesting. ([#128152](https://github.com/kubernetes/kubernetes/pull/128152), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Architecture, Auth, Node and Testing] -- Promoted JobSuccessPolicy E2E to Conformance ([#130658](https://github.com/kubernetes/kubernetes/pull/130658), [@tenzen-y](https://github.com/tenzen-y)) [SIG API Machinery, Apps, Architecture and Testing] -- Promoted `NodeInclusionPolicyInPodTopologySpread` to Stable in v1.33 ([#130920](https://github.com/kubernetes/kubernetes/pull/130920), [@kerthcet](https://github.com/kerthcet)) [SIG Apps, Node, Scheduling and Testing] -- Promoted the `JobSuccessPolicy` to Stable. ([#130536](https://github.com/kubernetes/kubernetes/pull/130536), [@tenzen-y](https://github.com/tenzen-y)) [SIG API Machinery, Apps, Architecture and Testing] -- Promoted the Job's `JobBackoffLimitPerIndex` feature-gate to stable. ([#130061](https://github.com/kubernetes/kubernetes/pull/130061), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps, Architecture and Testing] -- Promoted the feature gate `AnyVolumeDataSource` to GA. ([#129770](https://github.com/kubernetes/kubernetes/pull/129770), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu)) [SIG Apps, Storage and Testing] -- Removed general available feature gate `CPUManager`. ([#129296](https://github.com/kubernetes/kubernetes/pull/129296), [@carlory](https://github.com/carlory)) [SIG API Machinery, Node and Testing] -- Removed general available feature-gate `PDBUnhealthyPodEvictionPolicy`. ([#129500](https://github.com/kubernetes/kubernetes/pull/129500), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Auth] -- Start reporting swap capacity as part of `node.status.nodeSystemInfo`. ([#129954](https://github.com/kubernetes/kubernetes/pull/129954), [@iholder101](https://github.com/iholder101)) [SIG API Machinery, Apps and Node] -- Graduated the `MultiCIDRServiceAllocator` feature gate to stable, and the `DisableAllocatorDualWrite` feature gate to beta (disabled by default). -**Action required** for Kubernetes cluster administrators and for distributions that manage the cluster Service CIDR. -Kubernetes now allows users to define the cluster Service CIDR via an API object: ServiceCIDR. -Distributions or administrators of Kubernetes may want to control that new Service CIDRs added to the cluster do not overlap with other networks on the cluster, that only belong to a specific range of IPs. Administrators may also prefer to retain the existing behavior of only having one ServiceCIDR per cluster. You can use `ValidatingAdmissionPolicy` to achieve this. ([#128971](https://github.com/kubernetes/kubernetes/pull/128971), [@aojea](https://github.com/aojea)) [SIG Apps, Architecture, Auth, CLI, Etcd, Network, Release and Testing] -- The `ClusterTrustBundle` API is moving to `v1beta1`. - In order for the `ClusterTrustBundleProjection` feature to work on the kubelet side, the `ClusterTrustBundle` API must be available at `v1beta1` version and the `ClusterTrustBundleProjection` feature gate must be enabled. If the API becomes later after kubelet started running, restart the kubelet to enable the feature. ([#128499](https://github.com/kubernetes/kubernetes/pull/128499), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Apps, Auth, Etcd, Node, Storage and Testing] -- The Service trafficDistribution field, including the PreferClose option, has graduated - to GA. Services that do not have the field configured will continue to operate - with their existing behavior. Refer to the documentation - https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution - for more details. ([#130673](https://github.com/kubernetes/kubernetes/pull/130673), [@gauravkghildiyal](https://github.com/gauravkghildiyal)) [SIG Apps, Network and Testing] -- The feature gate `InPlacePodVerticalScalingAllocatedStatus` is deprecated and no longer used. The `AllocatedResources` field in `ContainerStatus` is now guarded by the `InPlacePodVerticalScaling` feature gate. ([#130880](https://github.com/kubernetes/kubernetes/pull/130880), [@tallclair](https://github.com/tallclair)) [SIG CLI, Node and Scheduling] -- The kube-controller-manager will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set. ([#130650](https://github.com/kubernetes/kubernetes/pull/130650), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, Node, Scheduling, Storage, Testing and Windows] -- The kube-scheduler will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set. ([#130649](https://github.com/kubernetes/kubernetes/pull/130649), [@natasha41575](https://github.com/natasha41575)) [SIG Node, Scheduling and Testing] -- The kubelet will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set. ([#130573](https://github.com/kubernetes/kubernetes/pull/130573), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node, Scheduling, Storage, Testing and Windows] -- The minimum value validation of ReplicationController's `replicas` and `minReadySeconds` fields have been migrated to declarative validation. The requiredness of both fields is also declaratively validated. - If the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. - If the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields. ([#130725](https://github.com/kubernetes/kubernetes/pull/130725), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Instrumentation, Network, Node and Storage] -- The `resource.k8s.io/v1beta1` API is deprecated and will be removed in 1.36. Use `v1beta2` instead. ([#129970](https://github.com/kubernetes/kubernetes/pull/129970), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing] -- Validation now requires new StatefulSets with a `.spec.serviceName` field value to pass DNS1123 validation. Previously created StatefulSets with an invalid `.spec.serviceName` field value could not create any pods, and should be deleted. - - Published OpenAPI for the StatefulSet schema is corrected to indicate the `.spec.serviceName` is optional. ([#130233](https://github.com/kubernetes/kubernetes/pull/130233), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps and Testing] -- When the `PreferSameTrafficDistribution` feature gate is enabled, a new `trafficDistribution` value `PreferSameNode` is available, which attempts to always route Service connections to an endpoint on the same node as the client. Additionally, `PreferSameZone` is introduced as an alias for `PreferClose`. ([#130844](https://github.com/kubernetes/kubernetes/pull/130844), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network and Windows] -- When the `PodObservedGenerationTracking` feature gate was set, the kubelet populated `status.observedGeneration` to reflect the latest `metadata.generation` it observed for the pod. ([#130352](https://github.com/kubernetes/kubernetes/pull/130352), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, CLI, Node, Release, Scheduling, Storage, Testing and Windows] -- When the `StrictIPCIDRValidation` feature gate is enabled, Kubernetes will be - slightly stricter about what values will be accepted as IP addresses and network - address ranges (“CIDR blocks”). - - In particular, octets within IPv4 addresses are not allowed to have any leading - `0`s, and IPv4-mapped IPv6 values (e.g. `::ffff:192.168.0.1`) are forbidden. - These sorts of values can potentially cause security problems when different - components interpret the same string as referring to different IP addresses - (as in CVE-2021-29923). - - This tightening applies only to fields in built-in API kinds, and not to - custom resource kinds, values in Kubernetes configuration files, or - command-line arguments. - - (When the feature gate is disabled, creating an object with such an invalid - IP or CIDR value will result in a warning from the API server about the fact - that it will be rejected in the future.) ([#122550](https://github.com/kubernetes/kubernetes/pull/122550), [#128786](https://github.com/kubernetes/kubernetes/pull/128786), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network, Node, Scheduling and Testing] -- `apidiscovery.k8s.io/v2beta1` API group is disabled by default ([#130347](https://github.com/kubernetes/kubernetes/pull/130347), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery and Testing] -- `kubectl apply` now coerces `null` values for labels and annotations in manifests to empty string values, -consistent with typed JSON metadata decoding, rather than dropping all labels and annotations ([#129257](https://github.com/kubernetes/kubernetes/pull/129257), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] - -### Feature - -- Added `ListFromCacheSnapshot` feature gate that allows apiserver to serve LISTs with exact RV and continuations from cache ([#130423](https://github.com/kubernetes/kubernetes/pull/130423), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd and Testing] -- Added Pressure Stall Information (PSI) metrics to node metrics. ([#130701](https://github.com/kubernetes/kubernetes/pull/130701), [@roycaihw](https://github.com/roycaihw)) [SIG Node and Testing] -- Added Windows Server, Version 2025 for windows-servercore-cache test image ([#130935](https://github.com/kubernetes/kubernetes/pull/130935), [@aramase](https://github.com/aramase)) [SIG Testing and Windows] -- Added metrics to expose the main known reasons for resource alignment errors ([#129950](https://github.com/kubernetes/kubernetes/pull/129950), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] -- Added `SchedulerPopFromBackoffQ` feature gate that is in beta and enabled by default. Improved scheduling queue behavior by popping pods from the backoffQ when the activeQ is empty. This allows to process potentially schedulable pods ASAP, eliminating a penalty effect of the backoff queue. ([#130772](https://github.com/kubernetes/kubernetes/pull/130772), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing] -- Added `apiserver.latency.k8s.io/authentication` annotation to the audit log to record the - time spent authenticating slow requests. Also added `apiserver.latency.k8s.io/authorization` - annotation to record the time spent authorizing slow requests. ([#130571](https://github.com/kubernetes/kubernetes/pull/130571), [@hakuna-matatah](https://github.com/hakuna-matatah)) -- Added a `/flagz` endpoint for kube-proxy ([#128985](https://github.com/kubernetes/kubernetes/pull/128985), [@yongruilin](https://github.com/yongruilin)) [SIG Instrumentation and Network] -- Added a `/status` endpoint for kube-proxy ([#128989](https://github.com/kubernetes/kubernetes/pull/128989), [@Henrywu573](https://github.com/Henrywu573)) [SIG Instrumentation and Network] -- Added a `/statusz` HTTP endpoint to the kube-scheduler. ([#128818](https://github.com/kubernetes/kubernetes/pull/128818), [@yongruilin](https://github.com/yongruilin)) [SIG Architecture, Instrumentation, Scheduling and Testing] -- Added a `/statusz` HTTP endpoint to the kubelet. ([#128811](https://github.com/kubernetes/kubernetes/pull/128811), [@zhifei92](https://github.com/zhifei92)) [SIG Architecture, Instrumentation and Node] -- Added a `/statusz` endpoint for kube-controller-manager ([#128991](https://github.com/kubernetes/kubernetes/pull/128991), [@Henrywu573](https://github.com/Henrywu573)) [SIG API Machinery, Cloud Provider, Instrumentation and Testing] -- Added a `/statusz` endpoint for kube-scheduler ([#128987](https://github.com/kubernetes/kubernetes/pull/128987), [@Henrywu573](https://github.com/Henrywu573)) [SIG Instrumentation, Scheduling and Testing] -- Added a mechanism that calculates a digest of etcd and the watch cache every 5 minutes and exposes it as the `apiserver_storage_digest` metric. ([#130475](https://github.com/kubernetes/kubernetes/pull/130475), [@serathius](https://github.com/serathius)) [SIG API Machinery, Instrumentation and Testing] -- Added a new CLI flag `--emulation-forward-compatible` - Added a new CLI `--runtime-config-emulation-forward-compatible` ([#130354](https://github.com/kubernetes/kubernetes/pull/130354), [@siyuanfoundation](https://github.com/siyuanfoundation)) [SIG API Machinery, Etcd and Testing] -- Added a new option `strict-cpu-reservation` for CPU Manager static policy. When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly used for system daemons and interrupt processing no longer available for any workload. ([#130290](https://github.com/kubernetes/kubernetes/pull/130290), [@psasnal](https://github.com/psasnal)) [SIG Node and Testing] -- Added an alpha feature gate `OrderedNamespaceDeletion`. When enabled, the pods resources are deleted before all other resources during namespace deletion. ([#130035](https://github.com/kubernetes/kubernetes/pull/130035), [@cici37](https://github.com/cici37)) [SIG API Machinery, Apps and Testing] -- Added e2e tests for volume group snapshots. ([#128972](https://github.com/kubernetes/kubernetes/pull/128972), [@manishym](https://github.com/manishym)) [SIG Cloud Provider, Storage and Testing] -- Added unit test helpers to validate CEL and patterns in CustomResourceDefinitions. ([#129028](https://github.com/kubernetes/kubernetes/pull/129028), [@sttts](https://github.com/sttts)) -- Added validation of `containerLogMaxFiles` within kubelet configuration files. ([#129072](https://github.com/kubernetes/kubernetes/pull/129072), [@kannon92](https://github.com/kannon92)) -- Adding resource completion in kubectl debug command ([#130033](https://github.com/kubernetes/kubernetes/pull/130033), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI] -- Adds a `/flagz` endpoint for kube-controller-manager endpoint ([#128824](https://github.com/kubernetes/kubernetes/pull/128824), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Instrumentation] -- Allowed `ImageVolume` for Restricted PSA profiles. ([#130394](https://github.com/kubernetes/kubernetes/pull/130394), [@Barakmor1](https://github.com/Barakmor1)) -- Allowed dynamic configuration of the service account name and audience that the kubelet could request a token for, as part of the node audience restriction feature. ([#130485](https://github.com/kubernetes/kubernetes/pull/130485), [@aramase](https://github.com/aramase)) [SIG Auth and Testing] -- Automatically copy `topology.k8s.io/zone`, `topology.k8s.io/region` and `kubernetes.io/hostname` labels from Node objects to Pods when they are scheduled to a node (via the `pods/binding` endpoint) to allow applications that need to be explicitly aware of their assigned node topology to access this information via the downward API, rather than requiring permission to `get node` objects (exposing the entire API surface of the Node object to otherwise unprivileged workloads). ([#127092](https://github.com/kubernetes/kubernetes/pull/127092), [@munnerz](https://github.com/munnerz)) [SIG API Machinery, Node and Testing] -- Bumped `ProcMountType` feature to on by default beta ([#130798](https://github.com/kubernetes/kubernetes/pull/130798), [@haircommander](https://github.com/haircommander)) [SIG Node] -- Calculated pod resources are now cached when adding pods to NodeInfo in the scheduler framework, improving performance when processing unschedulable pods. ([#129635](https://github.com/kubernetes/kubernetes/pull/129635), [@macsko](https://github.com/macsko)) [SIG Scheduling] -- `cel-go` has been bumped to `v0.23.2`. ([#129844](https://github.com/kubernetes/kubernetes/pull/129844), [@cici37](https://github.com/cici37)) [SIG API Machinery, Auth, Cloud Provider and Node] -- Changed metadata management for Pods to populate `.metadata.generation` on writes. New pods will have a `metadata.generation` of 1; updates to mutable fields in the Pod `.spec` will result in `metadata.generation` being incremented by 1. ([#130181](https://github.com/kubernetes/kubernetes/pull/130181), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node and Testing] -- DRA: Starting Kubernetes 1.33, regular users with namespaced cluster `edit` role assigned have `read` permission to `resourceclaims`, `resourceclaims/status`,`resourceclaimtemplates`. And `write` permission for `resourceclaims`, `resourceclaimtemplates`. ([#130738](https://github.com/kubernetes/kubernetes/pull/130738), [@ritazh](https://github.com/ritazh)) [SIG Auth] -- `DRAResourceClaimDeviceStatus` is now turned on by default allowing DRA-Drivers to report device status data for each allocated device. ([#130814](https://github.com/kubernetes/kubernetes/pull/130814), [@LionelJouin](https://github.com/LionelJouin)) [SIG Network and Node] -- `DistributeCPUsAcrossNUMA` policy option is promoted to Beta. ([#130541](https://github.com/kubernetes/kubernetes/pull/130541), [@swatisehgal](https://github.com/swatisehgal)) [SIG Node] -- Enabled the `OrderedNamespaceDeletion` feature gate by default. ([#130507](https://github.com/kubernetes/kubernetes/pull/130507), [@cici37](https://github.com/cici37)) [SIG API Machinery and Apps] -- Enabled user namespaces support (feature gate `UserNamespacesSupport`) by default. ([#130138](https://github.com/kubernetes/kubernetes/pull/130138), [@rata](https://github.com/rata)) [SIG Node and Testing] -- Endpoints resources created by the Endpoints controller now include a label indicating this. - Users who manually create Endpoints can also add this label, but they should consider - using `EndpointSlices` instead. ([#130564](https://github.com/kubernetes/kubernetes/pull/130564), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network] -- Errors returned by apiserver from uninitialized cache will include last error from etcd ([#130899](https://github.com/kubernetes/kubernetes/pull/130899), [@serathius](https://github.com/serathius)) [SIG API Machinery and Testing] -- Errors that occur during pod resize actuation will now surface in the `PodResizeInProgress` condition. ([#130902](https://github.com/kubernetes/kubernetes/pull/130902), [@natasha41575](https://github.com/natasha41575)) -- Extended the kube-apiserver loopback client certificate validity to 14 months to align with the updated Kubernetes support lifecycle. ([#130047](https://github.com/kubernetes/kubernetes/pull/130047), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery and Auth] -- Extended the schema of the kube-proxy `healthz` and `livez` HTTP endpoints to incorporate information about the corresponding IP family. ([#129271](https://github.com/kubernetes/kubernetes/pull/129271), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows] -- Fixed `SELinuxWarningController` defaults when running kube-controller-manager in a container. ([#130037](https://github.com/kubernetes/kubernetes/pull/130037), [@jsafrane](https://github.com/jsafrane)) [SIG Apps and Storage] -- Fixed a bug to ensure container-level swap metrics are collected. ([#129486](https://github.com/kubernetes/kubernetes/pull/129486), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing] -- git-repo volume plugin has been disabled by default, with the option to turn it back ([#129923](https://github.com/kubernetes/kubernetes/pull/129923), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) -- Graduated the `WinDSR` feature in the kube-proxy to beta. The `WinDSR` feature gate is now enabled by default. ([#130876](https://github.com/kubernetes/kubernetes/pull/130876), [@rzlink](https://github.com/rzlink)) [SIG Windows] -- Graduated the asynchronous preemption feature in the scheduler to beta. - Now the feature flag (SchedulerAsyncPreemption) is enabled by default. ([#130550](https://github.com/kubernetes/kubernetes/pull/130550), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] -- Graduated `BtreeWatchCache` feature gate to GA. ([#129934](https://github.com/kubernetes/kubernetes/pull/129934), [@serathius](https://github.com/serathius)) -- Graduated the `DisableNodeKubeProxyVersion` feature gate to enable by default, the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for its associated Node. ([#129713](https://github.com/kubernetes/kubernetes/pull/129713), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node] -- Graduated the `KubeletFineGrainedAuthz` feature gate to beta; the gate is now enabled by default. ([#129656](https://github.com/kubernetes/kubernetes/pull/129656), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Auth, CLI, Node, Storage and Testing] -- If scheduling fails on PreBind or Bind, scheduler will retry the failed pod immediately after backoff time, regardless of the reason for failing. In this case EventsToRegister (QHints) will not be taken into consideration before retry. ([#130189](https://github.com/kubernetes/kubernetes/pull/130189), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling] -- Implemented full support for contextual logging in `client-go/rest`. `BackoffManagerWithContext` was used instead of `BackoffManager` to ensure that the caller could interrupt the sleep. ([#127709](https://github.com/kubernetes/kubernetes/pull/127709), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Auth, Cloud Provider, Instrumentation, Network and Node] -- Improved how the API server responds to **list** requests where the response format negotiates to JSON. -List responses in JSON are marshalled one element at a time, drastically reducing the memory needed to serve -large collections. Streaming list responses can be disabled via the `StreamingJSONListEncoding` feature gate. ([#129334](https://github.com/kubernetes/kubernetes/pull/129334), [@serathius](https://github.com/serathius)) [SIG API Machinery, Architecture and Release] -- Improved scheduling performance of pods with required topology spreading. ([#129119](https://github.com/kubernetes/kubernetes/pull/129119), [@macsko](https://github.com/macsko)) [SIG Scheduling] -- Introduced the `LegacySidecarContainers` feature gate enabling the legacy code path that predates the `SidecarContainers` feature. This temporary feature gate is disabled by default, only available in v1.33, and will be removed in v1.34. ([#130058](https://github.com/kubernetes/kubernetes/pull/130058), [@gjkim42](https://github.com/gjkim42)) [SIG Node] -- KEP-3619: fine-grained supplemental groups policy is graduated to Beta. Note that kubelet now rejects pods with `.spec.securityContext.supplementalGroupsPolicy: Strict` when scheduled to the node that does not support the feature (`.status.features.supplementalGroupsPolicy: false`). ([#130210](https://github.com/kubernetes/kubernetes/pull/130210), [@everpeace](https://github.com/everpeace)) [SIG Apps, Node and Testing] -- kube-apiserver: Promoted the `ServiceAccountTokenNodeBinding` feature gate general availability. It is now locked to enabled. ([#129591](https://github.com/kubernetes/kubernetes/pull/129591), [@liggitt](https://github.com/liggitt)) [SIG Auth and Testing] -- kube-apiserver: the `StorageObjectInUseProtection` admission plugin added the `kubernetes.io/vac-protection` finalizer to the given VolumeAttributesClass object when it is created if the feature-gate `VolumeAttributesClass` is turned on and `storage.k8s.io/v1beta1` is enabled. ([#130553](https://github.com/kubernetes/kubernetes/pull/130553), [@Phaow](https://github.com/Phaow)) [SIG Storage and Testing] -- kubeadm: `kubeadm upgrade plan` now supports `--etcd-upgrade` flag to control whether the etcd upgrade plan should be displayed. Add an `EtcdUpgrade` field into `UpgradeConfiguration.Plan` for v1beta4. ([#130023](https://github.com/kubernetes/kubernetes/pull/130023), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] -- kubeadm: Added preflight check for `cp` on Linux nodes and `xcopy` on Windows nodes. These binaries are required for kubeadm to work properly. ([#130045](https://github.com/kubernetes/kubernetes/pull/130045), [@carlory](https://github.com/carlory)) -- kubeadm: Improved `kubeadm init` and `kubeadm join` to provide consistent error messages when the kubelet failed or when failed to wait for control plane components. ([#130040](https://github.com/kubernetes/kubernetes/pull/130040), [@HirazawaUi](https://github.com/HirazawaUi)) -- kubeadm: Promoted the feature gate `ControlPlaneKubeletLocalMode` to Beta. By default, kubeadm will use the local kube-apiserver endpoint for the kubelet when creating a cluster with `kubeadm init` or when joining control plane nodes with `kubeadm join`. Enabling the feature gate also affects the `kubeadm init phase kubeconfig kubelet` phase, where the flag `--control-plane-endpoint` no longer affects the generated kubeconfig `Server` field, but the flag `--apiserver-advertise-address` can now be used for the same purpose. ([#129956](https://github.com/kubernetes/kubernetes/pull/129956), [@chrischdi](https://github.com/chrischdi)) -- kubeadm: graduated the WaitForAllControlPlaneComponents feature gate to Beta. When checking the health status of a control plane component, make sure that the address and port defined as arguments in the respective component's static Pod manifest are used. ([#129620](https://github.com/kubernetes/kubernetes/pull/129620), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from a given node on `kubeadm upgrade`. ([#129279](https://github.com/kubernetes/kubernetes/pull/129279), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle and Testing] -- kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the flag `--container-runtime-endpoint` from the `/var/lib/kubelet/kubeadm-flags.env` file on `kubeadm upgrade`. ([#129278](https://github.com/kubernetes/kubernetes/pull/129278), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle] -- kubeadm: removed preflight check for nsenter on Linux nodes - kubeadm: added preflight check for `losetup` on Linux nodes. It's required by kubelet for keeping a block device opened. ([#129450](https://github.com/kubernetes/kubernetes/pull/129450), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle] -- kubeadm: removed the feature gate EtcdLearnerMode which graduated to GA in 1.32. ([#129589](https://github.com/kubernetes/kubernetes/pull/129589), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- kubelet + DRA: For DRA driver plugins (and only for those!), the kubelet now supports a rolling update with `maxSurge > 0` in the driver's DaemonSet. A DRA driver must support this, which can be done via the k8s.io/dynamic-resource-allocation/kubeletplugin helper package. ([#129832](https://github.com/kubernetes/kubernetes/pull/129832), [@pohly](https://github.com/pohly)) [SIG Node, Storage and Testing] -- Kubernetes is now built with Go `1.24.2` ([#131369](https://github.com/kubernetes/kubernetes/pull/131369), [@ameukam](https://github.com/ameukam)) [SIG Release and Testing] -- NodeRestriction admission now validates that the audience value, the kubelet requested a service account token for, is part of the pod spec volume. The kube-apiserver featuregate `ServiceAccountNodeAudienceRestriction` is enabled by default in 1.33. ([#130017](https://github.com/kubernetes/kubernetes/pull/130017), [@aramase](https://github.com/aramase)) -- Pod resource checkpointing is now tracked by the `allocated_pods_state` and `actuated_pods_state` files, replacing the previously used `pod_status_manager_state`. ([#130599](https://github.com/kubernetes/kubernetes/pull/130599), [@tallclair](https://github.com/tallclair)) -- `PodLifecycleSleepAction` is now turned on by default allowing users to create containers with sleep lifecycle action with a duration of zero seconds ([#130621](https://github.com/kubernetes/kubernetes/pull/130621), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Node] -- Promoted `RelaxedDNSSearchValidation` to beta, allowing for Pod search domains to be a single dot "." or contain an underscore "_". ([#130128](https://github.com/kubernetes/kubernetes/pull/130128), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network] -- Promoted in-place Pod vertical scaling to beta. The `InPlacePodVerticalScaling` feature gate is now enabled by default. ([#130905](https://github.com/kubernetes/kubernetes/pull/130905), [@tallclair](https://github.com/tallclair)) [SIG Node] -- Promoted kubectl `--subresource` flag to stable. ([#130238](https://github.com/kubernetes/kubernetes/pull/130238), [@soltysh](https://github.com/soltysh)) -- Promoted the `CRDValidationRatcheting` feature gate to GA in 1.33 ([#130013](https://github.com/kubernetes/kubernetes/pull/130013), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery] -- Promoted the feature gate `CSIMigrationPortworx` to GA. If your applications are using Portworx volumes, -please make sure that the corresponding Portworx CSI driver is installed on your cluster **before** upgrading to 1.31 or later -because all operations for the in-tree `portworxVolume` type are redirected to the pxd.portworx.com CSI driver -when the feature gate is enabled. ([#129297](https://github.com/kubernetes/kubernetes/pull/129297), [@gohilankit](https://github.com/gohilankit)) [SIG Storage] -- Promoted the feature gate `HonorPVReclaimPolicy` to GA. ([#129583](https://github.com/kubernetes/kubernetes/pull/129583), [@carlory](https://github.com/carlory)) [SIG Apps, Storage and Testing] -- Respect the incoming trace context for authenticated requests to the kube-apiserver for APIServer tracing. ([#127053](https://github.com/kubernetes/kubernetes/pull/127053), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node and Testing] -- SELinuxChangePolicy and SELinuxMount graduated to Beta. SELinuxMount stays off by default. ([#130544](https://github.com/kubernetes/kubernetes/pull/130544), [@jsafrane](https://github.com/jsafrane)) [SIG Auth, Node and Storage] -- Scheduling Framework exposes NodeInfo to the ScorePlugin. ([#130537](https://github.com/kubernetes/kubernetes/pull/130537), [@saintube](https://github.com/saintube)) [SIG Scheduling, Storage and Testing] -- The `RemoteRequestHeaderUID` feature moves to beta and is now enabled by default. This makes the kube-apiserver propagate UIDs in the `X-Remote-Uid` header in requests to the aggregated API servers. The header is not honored by default for incoming requests, but that can be enabled by setting the `--requestheader-uid-headers` flag explicitly. ([#130560](https://github.com/kubernetes/kubernetes/pull/130560), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Auth and Testing] -- The `DeclarativeValidation` feature gate is enabled by default. When enabled, mismatches with existing hand written validation is reported via metrics. - The `DeclarativeValidationTakeover` feature gate remains disabled by default. While disabled, validation errors produced by hand written validation are always return to the caller. To switch to declarative validation is primary source of errors for migrated fields, enable this feature gate. ([#130728](https://github.com/kubernetes/kubernetes/pull/130728), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery] -- The `SidecarContainers` feature has graduated to GA. 'SidecarContainers' feature gate was locked to default value and will be removed in v1.36. If you were setting this feature gate explicitly, please remove it now. ([#129731](https://github.com/kubernetes/kubernetes/pull/129731), [@gjkim42](https://github.com/gjkim42)) [SIG Apps, Node, Scheduling and Testing] -- The nftables mode of kube-proxy is now GA. (The iptables mode remains the - default; you can select the nftables mode by passing `--proxy-mode nftables` - or using a config file with `mode: nftables`. See the kube-proxy documentation - for more details.) ([#129653](https://github.com/kubernetes/kubernetes/pull/129653), [@danwinship](https://github.com/danwinship)) [SIG Network] -- Updated `/version` response to report binary version information separate from compatibility version ([#130019](https://github.com/kubernetes/kubernetes/pull/130019), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Release and Testing] -- Upgraded the `kubectl autoscale` subcommand to use `autoscaling/v2` rather than `autoscaling/v1` APIs. -The command now attempts to use the `autoscaling/v2` API first. If the `autoscaling/v2` API is -unavailable or an error occurs, it falls back to the `autoscaling/v1` API. ([#128950](https://github.com/kubernetes/kubernetes/pull/128950), [@googs1025](https://github.com/googs1025)) [SIG Autoscaling and CLI] -- User namespaces support (feature gate UserNamespacesSupport) is now enabled by ([#130138](https://github.com/kubernetes/kubernetes/pull/130138), [@rata](https://github.com/rata)) [SIG Node and Testing] -- Various controllers that write out IP address or CIDR values to API objects now - ensure that they always write out the values in canonical form. ([#130101](https://github.com/kubernetes/kubernetes/pull/130101), [@danwinship](https://github.com/danwinship)) [SIG Apps, Network and Node] -- `kubeproxy_conntrack_reconciler_deleted_entries_total` metric can be used to track cumulative sum of conntrack flows cleared by reconciler. ([#130204](https://github.com/kubernetes/kubernetes/pull/130204), [@aroradaman](https://github.com/aroradaman)) -- `kubeproxy_conntrack_reconciler_sync_duration_seconds` metric can now be used to track conntrack reconciliation latency. ([#130200](https://github.com/kubernetes/kubernetes/pull/130200), [@aroradaman](https://github.com/aroradaman)) -- The `StorageCapacityScoring` feature gate was added to score nodes by available storage capacity. It's in alpha and disabled by default. The `VolumeCapacityPriority` alpha feature was replaced with this, and the default behavior was changed. The `VolumeCapacityPriority` preferred a node with the least allocatable, but the `StorageCapacityScoring` preferred a node with the maximum allocatable. See [KEP-4049](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning/README.md) for details. ([#128184](https://github.com/kubernetes/kubernetes/pull/128184), [@cupnes](https://github.com/cupnes)) [SIG Scheduling, Storage and Testing] - -### Documentation - -- Added an example of set-based requirements for the `-l` / `--selector` command line option to `kubectl`. ([#129106](https://github.com/kubernetes/kubernetes/pull/129106), [@rotsix](https://github.com/rotsix)) -- kubeadm: improved the `kubeadm reset` message for manual cleanups and referenced https://k8s.io/docs/reference/setup-tools/kubeadm/kubeadm-reset/. ([#129644](https://github.com/kubernetes/kubernetes/pull/129644), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] - -### Bug or Regression - -- --feature-gate=InOrderInformers (default on), causes informers to process watch streams in order as opposed to grouping updates for the same item close together. Binaries embedding client-go, but not wiring the featuregates can disable by setting the `KUBE_FEATURE_InOrderInformers=false`. ([#129568](https://github.com/kubernetes/kubernetes/pull/129568), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] -- Added a validation for the `revisionHistoryLimit` field in the `.spec` of a StatefulSet, to prevent it from being set to a negative value. ([#129017](https://github.com/kubernetes/kubernetes/pull/129017), [@ardaguclu](https://github.com/ardaguclu)) -- Added progress tracking for volume permission and ownership changes. ([#130398](https://github.com/kubernetes/kubernetes/pull/130398), [@gnufied](https://github.com/gnufied)) [SIG Node and Storage] -- Changed the signature of `PublishResources()` for ResourceSlices to accept a `resourceslice.DriverResources` parameter -instead of a `Resources` parameter. ([#129142](https://github.com/kubernetes/kubernetes/pull/129142), [@googs1025](https://github.com/googs1025)) [SIG Node and Testing] -- DRA: the explanation for why a pod which wasn't using ResourceClaims was unscheduleable included a useless "no new claims to deallocate" when it was unscheduleable for some other reasons. ([#129823](https://github.com/kubernetes/kubernetes/pull/129823), [@googs1025](https://github.com/googs1025)) [SIG Node and Scheduling] -- Disabled InPlace Pod Resize for Swap enabled containers that does not have memory ResizePolicy as RestartContainer ([#130831](https://github.com/kubernetes/kubernetes/pull/130831), [@ajaysundark](https://github.com/ajaysundark)) [SIG Node and Testing] -- Enabled ratcheting validation on `status` subresources for CustomResourceDefinitions. ([#129506](https://github.com/kubernetes/kubernetes/pull/129506), [@JoelSpeed](https://github.com/JoelSpeed)) -- Fix: Adopted go1.23 behavior change in mount point parsing on Windows. ([#129368](https://github.com/kubernetes/kubernetes/pull/129368), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage and Windows] -- Fixed CVE-2024-51744. ([#128621](https://github.com/kubernetes/kubernetes/pull/128621), [@kmala](https://github.com/kmala)) [SIG Auth, Cloud Provider and Node] -- Fixed `kubectl wait --for=create` behavior with label selectors, to properly wait for resources with matching labels to appear. ([#128662](https://github.com/kubernetes/kubernetes/pull/128662), [@omerap12](https://github.com/omerap12)) [SIG CLI and Testing] -- Fixed a bug in HorizontalPodAutoscaler. HPAs with `ContainerResource` metrics no longer return an error when container metrics are missing. Instead they use the same logic as `Resource` metrics to perform calculations. ([#127193](https://github.com/kubernetes/kubernetes/pull/127193), [@DP19](https://github.com/DP19)) [SIG Apps and Autoscaling] -- Fixed a bug in the exclusive assignment availability check for the `InPlacePodVerticalScalingExclusiveCPUs` feature gate. ([#130559](https://github.com/kubernetes/kubernetes/pull/130559), [@esotsal](https://github.com/esotsal)) -- Fixed a bug where adding an ephemeral container to a pod which references a new secret or config map doesn't give the pod access to that new secret or config map. (#114984, @cslink) ([#129670](https://github.com/kubernetes/kubernetes/pull/129670), [@cslink](https://github.com/cslink)) [SIG Auth] -- Fixed a bug where kube-apiserver could emit a subsequent watch event even if the previous event failed to decrypt and was not emitted. ([#131020](https://github.com/kubernetes/kubernetes/pull/131020), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Etcd] -- Fixed a bug where the kube-proxy `EndpointSliceCache` memory experienced a leak. ([#128929](https://github.com/kubernetes/kubernetes/pull/128929), [@orange30](https://github.com/orange30)) -- Fixed a data race that could occur when a single Go type was serialized to CBOR concurrently for the first time within a program. ([#129170](https://github.com/kubernetes/kubernetes/pull/129170), [@benluddy](https://github.com/benluddy)) [SIG API Machinery] -- Fixed a panic in kube-controller-manager handling StatefulSet objects when `revisionHistoryLimit` is negative. ([#129301](https://github.com/kubernetes/kubernetes/pull/129301), [@ardaguclu](https://github.com/ardaguclu)) -- Fixed a regression in 1.32 that prevented pods with `postStart` hooks from starting. ([#129946](https://github.com/kubernetes/kubernetes/pull/129946), [@alex-petrov-vt](https://github.com/alex-petrov-vt)) -- Fixed a regression in 1.32 where nodes could fail to report status and renew serving certificates after the kubelet restarted. ([#130348](https://github.com/kubernetes/kubernetes/pull/130348), [@aojea](https://github.com/aojea)) -- Fixed a regression with the `ServiceAccountNodeAudienceRestriction` feature where `azureFile` volumes encountered 'failed to get service account token attributes' errors. ([#129993](https://github.com/kubernetes/kubernetes/pull/129993), [@aramase](https://github.com/aramase)) [SIG Auth and Testing] -- Fixed a storage bug related to multipath. iSCSI and Fibre Channel devices attached to nodes via multipath now resolve correctly when partitioned. ([#128086](https://github.com/kubernetes/kubernetes/pull/128086), [@RomanBednar](https://github.com/RomanBednar)) -- Fixed a test failure in `TestSetVolumeOwnershipOwner` for `fsGroup=3000` and - symlink cases in `volume_linux_test.go`. The tests were failing due to invalid - ownership verification and the issue has been resolved by adjusting file - permission change handling, ensuring correct behavior when run as root. ([#130616](https://github.com/kubernetes/kubernetes/pull/130616), [@gnufied](https://github.com/gnufied)) -- Fixed an issue in register-gen where imports for k8s.io/apimachinery/pkg/runtime and k8s.io/apimachinery/pkg/runtime/schema were missing. ([#129307](https://github.com/kubernetes/kubernetes/pull/129307), [@LionelJouin](https://github.com/LionelJouin)) [SIG API Machinery] -- Fixed an issue in the CEL CIDR library where subnets contained within another CIDR were incorrectly rejected as not being contained. ([#130450](https://github.com/kubernetes/kubernetes/pull/130450), [@JoelSpeed](https://github.com/JoelSpeed)) -- Fixed an issue where kubelet would unmount volumes of running pods upon restart if the referenced PVC was being deleted by the user. ([#130335](https://github.com/kubernetes/kubernetes/pull/130335), [@carlory](https://github.com/carlory)) [SIG Node, Storage and Testing] -- Fixed an issue where pods did not correctly have a pending phase after the node reboot. ([#128516](https://github.com/kubernetes/kubernetes/pull/128516), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing] -- Fixed an issue with Kubernetes-style sidecar containers (in other words: init containers -with an Always restart policy) and Services. Before the fix, named ports -exposed by a sidecar could not be accessed using a Service. ([#128850](https://github.com/kubernetes/kubernetes/pull/128850), [@toVersus](https://github.com/toVersus)) [SIG Network and Testing] -- Fixed compressed kubelet log file permissions to use uncompressed kubelet log file permissions. ([#129893](https://github.com/kubernetes/kubernetes/pull/129893), [@simonfogliato](https://github.com/simonfogliato)) [SIG Node] -- Fixed in-tree to CSI migration for Portworx volumes, in clusters where Portworx security feature is enabled (it's a Portworx feature, not Kubernetes feature). It required secret data from the secret mentioned in-tree SC, to be passed in CSI requests which was not happening before this fix. ([#129630](https://github.com/kubernetes/kubernetes/pull/129630), [@gohilankit](https://github.com/gohilankit)) [SIG Storage] -- Fixed a rare and sporadic network issues that occurred when the host was under heavy load. ([#130256](https://github.com/kubernetes/kubernetes/pull/130256), [@adrianmoisey](https://github.com/adrianmoisey)) -- Fixed the bug where Events failed to be created when the referenced object name was not a valid Event name. Now, a UUID is used as the name instead of the referenced object name and the timestamp suffix. ([#129790](https://github.com/kubernetes/kubernetes/pull/129790), [@aojea](https://github.com/aojea)) -- Fixed a 1.32 regression kube-proxy, when using a Service with External or LoadBalancer IPs on UDP services , was consuming a large amount of CPU because it was not filtering by the Service destination port and trying to delete all the UDP entries associated to the service. ([#130484](https://github.com/kubernetes/kubernetes/pull/130484), [@aojea](https://github.com/aojea)) [SIG Network] -- Implemented logging and event recording for probe results with an `Unknown` status in the kubelet's prober module. This helped improve the diagnosis and monitoring of cases where container probes returned an `Unknown` result, enhancing the observability and reliability of health checks. ([#125901](https://github.com/kubernetes/kubernetes/pull/125901), [@jralmaraz](https://github.com/jralmaraz)) -- Improved reboot event reporting. The kubelet will only emit one reboot Event when a server-level reboot -is detected, even if the kubelet cannot write its status to the associated Node (which triggers a retry). ([#129151](https://github.com/kubernetes/kubernetes/pull/129151), [@rphillips](https://github.com/rphillips)) [SIG Node] -- Includes WebSockets HTTPS proxy support ([#129872](https://github.com/kubernetes/kubernetes/pull/129872), [@seans3](https://github.com/seans3)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network and Node] -- kube-apiserver: `--service-account-max-token-expiration` can now be used in combination with an external token signer `--service-account-signing-endpoint`, as long as the `--service-account-max-token-expiration` is not longer than the external token signer's max expiration. ([#129816](https://github.com/kubernetes/kubernetes/pull/129816), [@sambdavidson](https://github.com/sambdavidson)) [SIG API Machinery and Auth] -- kube-apiserver: Fixed a bug where the `ResourceQuota` admission plugin did not respect any scope changes when a resource was updated, such as setting or unsetting the `terminationGracePeriodSeconds` field of an existing pod. ([#130060](https://github.com/kubernetes/kubernetes/pull/130060), [@carlory](https://github.com/carlory)) [SIG API Machinery, Scheduling and Testing] -- kube-apiserver: shortening the grace period during a pod deletion no longer moves the `metadata.deletionTimestamp` into the past ([#122646](https://github.com/kubernetes/kubernetes/pull/122646), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] -- kube-proxy: Fixed a potential memory leak that could occur in clusters with a high volume of UDP workflows. ([#130032](https://github.com/kubernetes/kubernetes/pull/130032), [@aroradaman](https://github.com/aroradaman)) -- kubeadm: Avoided loading the file passed to `--kubeconfig` during `kubeadm init` phases more than once. ([#129006](https://github.com/kubernetes/kubernetes/pull/129006), [@kokes](https://github.com/kokes)) -- kubeadm: fixed a bug where an image is not pulled if there is an error with the sandbox image from CRI. ([#129594](https://github.com/kubernetes/kubernetes/pull/129594), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- kubeadm: fixed a bug where the `node.skipPhases` in UpgradeConfiguration is not respected by the `kubeadm upgrade node` subcommand. ([#129452](https://github.com/kubernetes/kubernetes/pull/129452), [@SataQiu](https://github.com/SataQiu)) -- kubeadm: fixed panic when no UpgradeConfiguration was found in the config file. ([#130202](https://github.com/kubernetes/kubernetes/pull/130202), [@SataQiu](https://github.com/SataQiu)) -- kubeadm: fixed the bug where the `v1beta4` `Timeouts.EtcdAPICall` field was not respected in etcd client operations, and the default timeout of 2 minutes was always used. ([#129859](https://github.com/kubernetes/kubernetes/pull/129859), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- kubeadm: if an addon is disabled in the ClusterConfiguration, skip it during upgrade. ([#129418](https://github.com/kubernetes/kubernetes/pull/129418), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- kubeadm: make sure that it is possible to health check the kube-apiserver when it has `--anonymous-auth=false` set and the `WaitForAllControlPlaneComponents` feature gate is enabled. ([#131036](https://github.com/kubernetes/kubernetes/pull/131036), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] -- kubeadm: run kernel version and OS version preflight checks for `kubeadm upgrade`. ([#129401](https://github.com/kubernetes/kubernetes/pull/129401), [@pacoxu](https://github.com/pacoxu)) -- Provides an additional function argument to directly specify the version for the tools that the consumers wished to use. ([#129658](https://github.com/kubernetes/kubernetes/pull/129658), [@unmarshall](https://github.com/unmarshall)) -- Removed a warning related to Linux user namespaces and kernel version. Previously, if the feature gate `UserNamespacesSupport` was enabled, the kubelet warned when detecting a Linux kernel version earlier than 6.3.0. While user namespace support generally requires kernel 6.3 or newer, it can also work on older kernels. ([#130243](https://github.com/kubernetes/kubernetes/pull/130243), [@rata](https://github.com/rata)) -- Removed the limitation on exposing port 10250 externally using a Service. ([#129174](https://github.com/kubernetes/kubernetes/pull/129174), [@RyanAoh](https://github.com/RyanAoh)) [SIG Apps and Network] -- Resolved a performance regression in default 1.31+ configurations, related to the `ConsistentListFromCache` feature, where rapid create/update API requests across different namespaces encounter increased latency. ([#130113](https://github.com/kubernetes/kubernetes/pull/130113), [@AwesomePatrol](https://github.com/AwesomePatrol)) -- Revised scheduling behavior to correctly handle nominated node changes. Trigger rescheduling of pods -if necessary when pods with nominated node names got deleted or nominated on a different node. ([#129058](https://github.com/kubernetes/kubernetes/pull/129058), [@dom4ha](https://github.com/dom4ha)) [SIG Scheduling, Storage and Testing] -- The `/flagz` endpoint in kube-apiserver now correctly returns parsed flag values when the `ComponentFlagz` feature-gate is enabled. ([#130328](https://github.com/kubernetes/kubernetes/pull/130328), [@richabanker](https://github.com/richabanker)) [SIG API Machinery and Instrumentation] -- The `BalancedAllocation` plugin now skips all best-effort (zero-requested) pods. ([#130260](https://github.com/kubernetes/kubernetes/pull/130260), [@Bowser1704](https://github.com/Bowser1704)) -- The following roles have had `Watch` added to them (prefixed with `system:controller:`): - - - `cronjob-controller` - - `endpoint-controller` - - `endpointslice-controller` - - `endpointslicemirroring-controller` - - `horizontal-pod-autoscaler` - - `node-controller` - - `pod-garbage-collector` - - `storage-version-migrator-controller` ([#130405](https://github.com/kubernetes/kubernetes/pull/130405), [@kariya-mitsuru](https://github.com/kariya-mitsuru)) [SIG Auth] -- The response from kube-apiserver's `/flagz` endpoint would respond correctly with parsed flags value. ([#129996](https://github.com/kubernetes/kubernetes/pull/129996), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Instrumentation and Testing] -- When `cpu-manager-policy=static` is configured, containers meeting the qualifications for static cpu assignment (i.e. Containers with integer CPU `requests` in pods with `Guaranteed` QOS) will not have cfs quota enforced. Because this fix changes a long-established behavior, users observing a regressions can use the `DisableCPUQuotaWithExclusiveCPUs` feature gate (enabled by default) to restore the previous behavior. Please file an issue if you encounter problems and have to use the Feature Gate. ([#127525](https://github.com/kubernetes/kubernetes/pull/127525), [@scott-grimes](https://github.com/scott-grimes)) [SIG Node and Testing] -- When using the Alpha `DRAResourceClaimDeviceStatus` feature, IP address values - in the `NetworkDeviceData` are now validated more strictly. ([#129219](https://github.com/kubernetes/kubernetes/pull/129219), [@danwinship](https://github.com/danwinship)) [SIG Network] -- YAML input that might previously have been misinterpreted as JSON is now correctly accepted. ([#130666](https://github.com/kubernetes/kubernetes/pull/130666), [@thockin](https://github.com/thockin)) -- [kubectl] Improved the describe output for projected volume sources to clearly indicate whether Secret and ConfigMap entries are optional. ([#129457](https://github.com/kubernetes/kubernetes/pull/129457), [@gshaibi](https://github.com/gshaibi)) [SIG CLI] -- kube-apiserver: Fixes an issue updating the default ServiceCIDR API object and creating dual-stack Service API objects when `--service-cluster-ip-range` flag passed to kube-apiserver is changed from single-stack to dual-stack. ([#131263](https://github.com/kubernetes/kubernetes/pull/131263), [@aojea](https://github.com/aojea)) [SIG API Machinery, Network and Testing] - -### Other (Cleanup or Flake) - -- 1. kube-apiserver: removed the deprecated the `--cloud-provider` and `--cloud-config` CLI parameters. - 2. removed generally available feature-gate `DisableCloudProviders` and `DisableKubeletCloudCredentialProviders` ([#130162](https://github.com/kubernetes/kubernetes/pull/130162), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider, Node and Testing] -- Added metrics to capture CPU distribution across NUMA nodes ([#130491](https://github.com/kubernetes/kubernetes/pull/130491), [@swatisehgal](https://github.com/swatisehgal)) [SIG Node and Testing] -- Add metrics to track allocation of Uncore (aka last-level aka L3) Cache blocks ([#130133](https://github.com/kubernetes/kubernetes/pull/130133), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] -- Changed the dependency version for CoreDNS. Kubernetes tools now install CoreDNS `v1.12.0`. ([#128926](https://github.com/kubernetes/kubernetes/pull/128926), [@bzsuni](https://github.com/bzsuni)) [SIG Cloud Provider and Cluster Lifecycle] -- Changed the error message displayed when a pod is trying to attach a volume that does not match the label/selector from "x node(s) had volume node affinity conflict" to "x node(s) didn't match PersistentVolume's node affinity". ([#129887](https://github.com/kubernetes/kubernetes/pull/129887), [@rhrmo](https://github.com/rhrmo)) [SIG Scheduling and Storage] -- `client-gen` now sorts input group/versions to ensure stable output generation even with unsorted inputs ([#130626](https://github.com/kubernetes/kubernetes/pull/130626), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery] -- e2e framework: `framework.WithFeatureGate` `[Alpha]`, `[Beta]` and `[Feature:OffByDefault]` tags are now set 1:1 with `Alpha`, `Beta`, `Feature:OffByDefault` Ginkgo labels, replacing`Feature:Alpha` and `Feature:Beta` labels. `BetaOffByDefault` is also added as a Ginkgo label only for off-by-default beta features ([#130908](https://github.com/kubernetes/kubernetes/pull/130908), [@BenTheElder](https://github.com/BenTheElder)) [SIG Testing] -- E2e.test: [Feature:OffByDefault] was added to test names when specifying a feature gate that is not enabled by default. ([#130655](https://github.com/kubernetes/kubernetes/pull/130655), [@BenTheElder](https://github.com/BenTheElder)) [SIG Auth and Testing] -- Extended the schema of kube-proxy's metrics / endpoints to incorporate information about the corresponding IP family. ([#129173](https://github.com/kubernetes/kubernetes/pull/129173), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows] -- Fixed a linting issue in `TestNodeDeletionReleaseCIDR`. ([#128856](https://github.com/kubernetes/kubernetes/pull/128856), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network] -- Flipped `StorageNamespaceIndex` feature gate to `false` and deprecated it. ([#129933](https://github.com/kubernetes/kubernetes/pull/129933), [@serathius](https://github.com/serathius)) -- Implemented logging for failed transactions and the full table in `kube-proxy` with -`nftables` when using log level 4 or higher. Logging is rate-limited to one entry every 24 hours -to avoid performance issues. ([#128886](https://github.com/kubernetes/kubernetes/pull/128886), [@npinaeva](https://github.com/npinaeva)) -- Implemented the `scheduler_cache_size` metric. -Additionally, the `scheduler_scheduler_cache_size` metric is now deprecated in favor of `scheduler_cache_size`, -and will be removed in v1.34. ([#128810](https://github.com/kubernetes/kubernetes/pull/128810), [@googs1025](https://github.com/googs1025)) -- kube-apiserver: Inactive serving code is removed for `authentication.k8s.io/v1alpha1` APIs ([#129186](https://github.com/kubernetes/kubernetes/pull/129186), [@liggitt](https://github.com/liggitt)) [SIG Auth and Testing] -- kubeadm: Use generic terminology in logs instead of direct mentions of YAML/JSON ([#130345](https://github.com/kubernetes/kubernetes/pull/130345), [@HirazawaUi](https://github.com/HirazawaUi)) -- kubeadm: removed preflight check for `ip`, `iptables`, `ethtool` and `tc` on Linux nodes. -kubelet and kube-proxy will continue to report `iptables` errors if its usage is required. The tools `ip`, `ethtool` and `tc` had legacy usage in the kubelet but are no longer required. ([#129131](https://github.com/kubernetes/kubernetes/pull/129131), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle] -- kubeadm: removed preflight check for `touch` on Linux nodes. ([#129317](https://github.com/kubernetes/kubernetes/pull/129317), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle] -- kubelet no longer logs multiple errors when running on a system with no iptables binaries installed. ([#129826](https://github.com/kubernetes/kubernetes/pull/129826), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] -- Reduced log verbosity for high-frequency, low-value log entries in Job, IPAM, and ReplicaSet controllers by adjusting them to V(2), V(4) and V(4) respectively. This change minimizes log noise while maintaining access to these logs when needed. ([#130591](https://github.com/kubernetes/kubernetes/pull/130591), [@fmuyassarov](https://github.com/fmuyassarov)) [SIG Apps and Network] -- Removed alpha support for Windows HostNetwork containers. ([#130250](https://github.com/kubernetes/kubernetes/pull/130250), [@marosset](https://github.com/marosset)) [SIG Network, Node and Windows] -- Removed general available feature gate `PersistentVolumeLastPhaseTransitionTime`. ([#129295](https://github.com/kubernetes/kubernetes/pull/129295), [@carlory](https://github.com/carlory)) [SIG Storage] -- Removed general available feature-gate `AppArmor`. ([#129375](https://github.com/kubernetes/kubernetes/pull/129375), [@carlory](https://github.com/carlory)) [SIG Auth and Node] -- Removed generally available feature gate `KubeProxyDrainingTerminatingNodes`. ([#129692](https://github.com/kubernetes/kubernetes/pull/129692), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Network] -- Removed generally available feature-gate `AppArmorFields`. ([#129497](https://github.com/kubernetes/kubernetes/pull/129497), [@carlory](https://github.com/carlory)) [SIG Node] -- Removed support for `v1alpha1` version of `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` API kinds. ([#129207](https://github.com/kubernetes/kubernetes/pull/129207), [@Jefftree](https://github.com/Jefftree)) [SIG Etcd and Testing] -- Removed the `JobPodFailurePolicy` feature gate, which graduated to GA in 1.31 and was unconditionally enabled. ([#129498](https://github.com/kubernetes/kubernetes/pull/129498), [@carlory](https://github.com/carlory)) -- Removed the deprecated `pod_scheduling_duration_seconds` metric. Users need to - migrate to `pod_scheduling_sli_duration_seconds`. ([#128906](https://github.com/kubernetes/kubernetes/pull/128906), [@sanposhiho](https://github.com/sanposhiho)) [SIG Instrumentation and Scheduling] -- Renamed some metrics related to CoreDNS, see the [README](https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics) for `v1.11.0` of CoreDNS. ([#129232](https://github.com/kubernetes/kubernetes/pull/129232), [@DamianSawicki](https://github.com/DamianSawicki)) -- Show a warning message to inform users that the debug container's capabilities granted by debugging profile may not work as expected if a non-root user is specified in target Pod's `.Spec.SecurityContext.RunAsUser` field. ([#127696](https://github.com/kubernetes/kubernetes/pull/127696), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI and Testing] -- The `SeparateCacheWatchRPC` feature gate is deprecated and disabled by default. ([#129929](https://github.com/kubernetes/kubernetes/pull/129929), [@serathius](https://github.com/serathius)) [SIG API Machinery] -- Renamed coredns metrics, see https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics. ([#129175](https://github.com/kubernetes/kubernetes/pull/129175), [@DamianSawicki](https://github.com/DamianSawicki)) [SIG Cloud Provider] -- Updated CNI plugins to `v1.6.2`. ([#129776](https://github.com/kubernetes/kubernetes/pull/129776), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing] -- Updated cri-tools to `v1.32.0`. ([#129116](https://github.com/kubernetes/kubernetes/pull/129116), [@saschagrunert](https://github.com/saschagrunert)) -- Updated the etcd client library to `v3.5.21` ([#131103](https://github.com/kubernetes/kubernetes/pull/131103), [@ahrtr](https://github.com/ahrtr)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node and Storage] +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- Added the ability to reduce both the initial delay and the maximum delay accrued between container restarts for a node for containers in `CrashLoopBackOff` across the cluster to the recommended values of `1s` initial delay and `60s` maximum delay. To set this for a node, turn on the feature gate `ReduceDefaultCrashLoopBackOffDecay`. If you are also using the feature gate `KubeletCrashLoopBackOffMax` with a configured per-node `CrashLoopBackOff.MaxContainerRestartPeriod`, the effective kubelet configuration will follow the conflict resolution policy described further in the documentation [here](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#reduced-container-restart-delay). ([#130711](https://github.com/kubernetes/kubernetes/pull/130711), [@lauralorenz](https://github.com/lauralorenz)) [SIG Node and Testing] + - [Action Required] CSI drivers that call IsLikelyNotMountPoint should not assume false means that the path is a mount point. Each CSI driver needs to make sure correct usage of return value of IsLikelyNotMountPoint because if the file is an irregular file but not a mount point is acceptable ([#129370](https://github.com/kubernetes/kubernetes/pull/129370), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage and Windows] + - Fixed the behavior of the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable in the nftables proxier. The kernel version check is now skipped only when this variable is explicitly set to a non-empty value. To skip the check, set the `KUBE_PROXY_NFTABLES_SKIP_KERNEL_VERSION_CHECK` environment variable. ([#130401](https://github.com/kubernetes/kubernetes/pull/130401), [@ryota-sakamoto](https://github.com/ryota-sakamoto)) + - Renamed `UpdatePodTolerations` action type to `UpdatePodToleration`. + Action required for custom plugin developers to update their code to follow the rename. ([#129023](https://github.com/kubernetes/kubernetes/pull/129023), [@zhifei92](https://github.com/zhifei92)) [SIG Scheduling and Testing] + +## Changes by Kind + +### Deprecation + +- The EndpointSlice `hints` field has graduated to GA. The beta annotation `service.kubernetes.io/topology-mode` is now considered deprecated and will not graduate to GA. It remains operational for backward compatibility. Users are encouraged to use the `spec.trafficDistribution` field in the Service API for topology-aware routing configuration. ([#130742](https://github.com/kubernetes/kubernetes/pull/130742), [@gauravkghildiyal](https://github.com/gauravkghildiyal)) [SIG Network] +- The `StorageCapacityScoring` feature gate was added to score nodes by available storage capacity. It's in alpha and disabled by default. The `VolumeCapacityPriority` alpha feature was replaced with this, and the default behavior was changed. The `VolumeCapacityPriority` preferred a node with the least allocatable, but the `StorageCapacityScoring` preferred a node with the maximum allocatable. See [KEP-4049](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning/README.md) for details. ([#128184](https://github.com/kubernetes/kubernetes/pull/128184), [@cupnes](https://github.com/cupnes)) [SIG Scheduling, Storage and Testing] +- The `WatchFromStorageWithoutResourceVersion` feature was deprecated and can no longer be enabled. ([#129930](https://github.com/kubernetes/kubernetes/pull/129930), [@serathius](https://github.com/serathius)) +- The pod `status.resize` field is now deprecated and will no longer be set. The status of a pod resize will be exposed under two new conditions: `PodResizeInProgress` and `PodResizePending` instead. ([#130733](https://github.com/kubernetes/kubernetes/pull/130733), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing] +- The v1 Endpoints API is now officially deprecated (though still fully supported). The API will not be removed, but all users should use the EndpointSlice API instead. ([#130098](https://github.com/kubernetes/kubernetes/pull/130098), [@danwinship](https://github.com/danwinship)) [SIG API Machinery and Network] + +### API Change + +- A new alpha feature gate, `MutableCSINodeAllocatableCount`, has been introduced. + + When this feature gate is enabled, the `CSINode.Spec.Drivers[*].Allocatable.Count` field becomes mutable, and a new field, `NodeAllocatableUpdatePeriodSeconds`, is available in the `CSIDriver` object. This allows periodic updates to a node's reported allocatable volume capacity, preventing stateful pods from becoming stuck due to outdated information that kube-scheduler relies on. ([#130007](https://github.com/kubernetes/kubernetes/pull/130007), [@torredil](https://github.com/torredil)) [SIG Apps, Node, Scheduling and Storage] +- Added feature gate `DRAPartitionableDevices`, when enabled, Dynamic Resource Allocation support partitionable devices allocation. ([#130764](https://github.com/kubernetes/kubernetes/pull/130764), [@cici37](https://github.com/cici37)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing] +- Added DRA support for a "one-of" prioritized list of selection criteria to satisfy a device request in a resource claim. ([#128586](https://github.com/kubernetes/kubernetes/pull/128586), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Etcd, Node, Scheduling and Testing] +- Added a `/flagz` endpoint for kubelet endpoint ([#128857](https://github.com/kubernetes/kubernetes/pull/128857), [@zhifei92](https://github.com/zhifei92)) [SIG Architecture, Instrumentation and Node] +- Added a new `tolerance` field to HorizontalPodAutoscaler, overriding the cluster-wide default. Enabled via the HPAConfigurableTolerance alpha feature gate. ([#130797](https://github.com/kubernetes/kubernetes/pull/130797), [@jm-franc](https://github.com/jm-franc)) [SIG API Machinery, Apps, Autoscaling, Etcd, Node, Scheduling and Testing] +- Added support for configuring custom stop signals with a new StopSignal container lifecycle ([#130556](https://github.com/kubernetes/kubernetes/pull/130556), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG API Machinery, Apps, Node and Testing] +- Added support for in-place vertical scaling of Pods with sidecars (containers defined within `initContainers` where the `restartPolicy` is set to `Always`). ([#128367](https://github.com/kubernetes/kubernetes/pull/128367), [@vivzbansal](https://github.com/vivzbansal)) [SIG API Machinery, Apps, CLI, Node, Scheduling and Testing] +- CPUManager Policy Options support is GA ([#130535](https://github.com/kubernetes/kubernetes/pull/130535), [@ffromani](https://github.com/ffromani)) [SIG API Machinery, Node and Testing] +- Changed the Pod API to support `hugepage resources` at `spec` level for pod-level resources. ([#130577](https://github.com/kubernetes/kubernetes/pull/130577), [@KevinTMtz](https://github.com/KevinTMtz)) [SIG Apps, CLI, Node, Scheduling, Storage and Testing] +- DRA API: The maximum number of pods that can use the same ResourceClaim is now 256 instead of 32. Downgrading a cluster where this relaxed limit is in use to Kubernetes 1.32.0 is not supported, as version 1.32.0 would refuse to update ResourceClaims with more than 32 entries in the `status.reservedFor` field. ([#129543](https://github.com/kubernetes/kubernetes/pull/129543), [@pohly](https://github.com/pohly)) [SIG API Machinery, Node and Testing] +- DRA: CEL expressions using attribute strings exceeded the cost limit because their cost estimation was incomplete. ([#129661](https://github.com/kubernetes/kubernetes/pull/129661), [@pohly](https://github.com/pohly)) [SIG Node] +- DRA: Device taints enable DRA drivers or admins to mark device as unusable, which prevents allocating them. Pods may also get evicted at runtime if a device becomes unusable, depending on the severity of the taint and whether the claim tolerates the taint. ([#130447](https://github.com/kubernetes/kubernetes/pull/130447), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Instrumentation, Node, Scheduling and Testing] +- DRA: Starting Kubernetes 1.33, only users with access to an admin namespace with the `kubernetes.io/dra-admin-access` label are authorized to create ResourceClaim or ResourceClaimTemplate objects with the `adminAccess` field in this admin namespace if they want to and only they can reference these ResourceClaims or ResourceClaimTemplates in their pod or deployment specs. ([#130225](https://github.com/kubernetes/kubernetes/pull/130225), [@ritazh](https://github.com/ritazh)) [SIG API Machinery, Apps, Auth, Node and Testing] +- DRA: when asking for "All" devices on a node, Kubernetes <= 1.32 proceeded to schedule pods onto nodes with no devices by not allocating any devices for those pods. Kubernetes 1.33 changes that to only picking nodes which have at least one device. Users who want the "proceed with scheduling also without devices" semantic can use the upcoming prioritized list feature with one sub-request for "all" devices and a second alternative with "count: 0". ([#129560](https://github.com/kubernetes/kubernetes/pull/129560), [@bart0sh](https://github.com/bart0sh)) [SIG API Machinery and Node] +- Expanded the on-disk kubelet credential provider configuration to allow an optional `tokenAttribute` field to be configured. When it is set, the kubelet will provision a token with the given audience bound to the current pod and its service account. This KSA token along with required annotations on the KSA defined in configuration will be sent to the credential provider plugin via its standard input (along with the image information that is already sent today). The KSA annotations to be sent are configurable in the kubelet credential provider configuration. ([#128372](https://github.com/kubernetes/kubernetes/pull/128372), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Node and Testing] +- Fixed the example validation rule in godoc: + + When configuring a JWT authenticator: + + If username.expression uses 'claims.email', then 'claims.email_verified' must be used in + username.expression or extra[*].valueExpression or claimValidationRules[*].expression. + An example claim validation rule expression that matches the validation automatically + applied when username.claim is set to 'email' is 'claims.?email_verified.orValue(true) == true'. + By explicitly comparing the value to true, we let type-checking see the result will be a boolean, + and to make sure a non-boolean `email_verified` claim will be caught at runtime. ([#130875](https://github.com/kubernetes/kubernetes/pull/130875), [@aramase](https://github.com/aramase)) [SIG Auth and Release] +- For the `InPlacePodVerticalScaling` feature, the API server will no longer set the resize status to `Proposed` upon receiving a resize request. ([#130574](https://github.com/kubernetes/kubernetes/pull/130574), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node and Testing] +- Graduate the `MatchLabelKeys` (MismatchLabelKeys) feature in PodAffinity (PodAntiAffinity) to GA ([#130463](https://github.com/kubernetes/kubernetes/pull/130463), [@sanposhiho](https://github.com/sanposhiho)) [SIG API Machinery, Apps, Node, Scheduling and Testing] +- Graduated image volume sources to beta: + - Allowed `subPath`/`subPathExpr` for image volumes + - Added kubelet metrics `kubelet_image_volume_requested_total`, `kubelet_image_volume_mounted_succeed_total` and `kubelet_image_volume_mounted_errors_total` ([#130135](https://github.com/kubernetes/kubernetes/pull/130135), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Apps, Node and Testing] +- Implemented a new status field, `.status.terminatingReplicas`, for Deployments and ReplicaSets to track terminating pods. The new field is present when the `DeploymentPodReplacementPolicy` feature gate is enabled. ([#128546](https://github.com/kubernetes/kubernetes/pull/128546), [@atiratree](https://github.com/atiratree)) [SIG API Machinery, Apps and Testing] +- Implemented validation for `NodeSelectorRequirement` values in Kubernetes when creating pods. ([#128212](https://github.com/kubernetes/kubernetes/pull/128212), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps and Scheduling] +- Improved how the API server responds to **list** requests where the response format negotiates to Protobuf. List responses in Protobuf are marshalled one element at the time, drastically reducing memory needed to serve large collections. Streaming list responses can be disabled via the `StreamingCollectionEncodingToProtobuf` feature gate. ([#129407](https://github.com/kubernetes/kubernetes/pull/129407), [@serathius](https://github.com/serathius)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Network, Node, Release, Scheduling, Storage and Testing] +- InPlacePodVerticalScaling: Memory limits cannot be decreased unless the memory resize restart policy is set to `RestartContainer`. Container resizePolicy is no longer mutable. ([#130183](https://github.com/kubernetes/kubernetes/pull/130183), [@tallclair](https://github.com/tallclair)) [SIG Apps and Node] +- Introduced API type `coordination.k8s.io/v1beta1/LeaseCandidate` + `CoordinatedLeaderElection` feature moves to Beta ([#130751](https://github.com/kubernetes/kubernetes/pull/130751), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Etcd and Testing] +- Introduced API type `coordination.k8s.io/v1beta1/LeaseCandidate` ([#130291](https://github.com/kubernetes/kubernetes/pull/130291), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery, Etcd and Testing] +- It introduces a new scope name `VolumeAttributesClass`. + + It matches all PVC objects that have the volume attributes class mentioned. + + If you want to limit the count of PVCs that have a specific volume attributes class. In that case, you can create a quota object with the scope name `VolumeAttributesClass` and a `matchExpressions` that match the volume attributes class. ([#124360](https://github.com/kubernetes/kubernetes/pull/124360), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Testing] +- KEP-3857: Recursive Read-only (RRO) mounts: promote to GA ([#130116](https://github.com/kubernetes/kubernetes/pull/130116), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Apps, Node and Testing] +- kubectl: Added alpha support for customizing kubectl behavior using preferences from a `kuberc` file, separate from `kubeconfig`. ([#125230](https://github.com/kubernetes/kubernetes/pull/125230), [@ardaguclu](https://github.com/ardaguclu)) [SIG API Machinery, CLI and Testing] +- kubelet: added `KubeletConfiguration.subidsPerPod`. ([#130028](https://github.com/kubernetes/kubernetes/pull/130028), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG API Machinery and Node] +- Kubernetes components that accepted X.509 client certificate authentication now read the user UID from a certificate subject name RDN with object ID `1.3.6.1.4.1.57683.2`. An RDN with this object ID had to contain a string value and appear no more than once in the certificate subject. Reading the user UID from this RDN could be disabled by setting the beta feature gate `AllowParsingUserUIDFromCertAuth` to `false`(until the feature gate graduated to GA). ([#127897](https://github.com/kubernetes/kubernetes/pull/127897), [@modulitos](https://github.com/modulitos)) [SIG API Machinery, Auth and Testing] +- `MergeDefaultEvictionSettings` indicates that defaults for the evictionHard, evictionSoft, evictionSoftGracePeriod, and evictionMinimumReclaim fields should be merged into values specified for those fields in this configuration. Signals specified in this configuration take precedence. Signals not specified in this configuration inherit their defaults. ([#127577](https://github.com/kubernetes/kubernetes/pull/127577), [@vaibhav2107](https://github.com/vaibhav2107)) [SIG API Machinery and Node] +- New configuration is introduced to the kubelet that allows it to track container images and the list of authentication information that leads to their successful pulls. This data is persisted across reboots of the host and restarts of the kubelet. + + The kubelet ensures any image requiring credential verification is always pulled if authentication information from an image pull is not yet present, thus enforcing authentication / re-authentication. This means an image pull might be attempted even in cases where a pod requests the `IfNotPresent` image pull policy, and might lead to the pod not starting if its pull policy is `Never` and is unable to present authentication information that led to a previous successful pull of the image it is requesting. ([#128152](https://github.com/kubernetes/kubernetes/pull/128152), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Architecture, Auth, Node and Testing] +- Promoted JobSuccessPolicy E2E to Conformance ([#130658](https://github.com/kubernetes/kubernetes/pull/130658), [@tenzen-y](https://github.com/tenzen-y)) [SIG API Machinery, Apps, Architecture and Testing] +- Promoted `NodeInclusionPolicyInPodTopologySpread` to Stable in v1.33 ([#130920](https://github.com/kubernetes/kubernetes/pull/130920), [@kerthcet](https://github.com/kerthcet)) [SIG Apps, Node, Scheduling and Testing] +- Promoted the `JobSuccessPolicy` to Stable. ([#130536](https://github.com/kubernetes/kubernetes/pull/130536), [@tenzen-y](https://github.com/tenzen-y)) [SIG API Machinery, Apps, Architecture and Testing] +- Promoted the Job's `JobBackoffLimitPerIndex` feature-gate to stable. ([#130061](https://github.com/kubernetes/kubernetes/pull/130061), [@mimowo](https://github.com/mimowo)) [SIG API Machinery, Apps, Architecture and Testing] +- Promoted the feature gate `AnyVolumeDataSource` to GA. ([#129770](https://github.com/kubernetes/kubernetes/pull/129770), [@sunnylovestiramisu](https://github.com/sunnylovestiramisu)) [SIG Apps, Storage and Testing] +- Removed general available feature gate `CPUManager`. ([#129296](https://github.com/kubernetes/kubernetes/pull/129296), [@carlory](https://github.com/carlory)) [SIG API Machinery, Node and Testing] +- Removed general available feature-gate `PDBUnhealthyPodEvictionPolicy`. ([#129500](https://github.com/kubernetes/kubernetes/pull/129500), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps and Auth] +- Start reporting swap capacity as part of `node.status.nodeSystemInfo`. ([#129954](https://github.com/kubernetes/kubernetes/pull/129954), [@iholder101](https://github.com/iholder101)) [SIG API Machinery, Apps and Node] +- Graduated the `MultiCIDRServiceAllocator` feature gate to stable, and the `DisableAllocatorDualWrite` feature gate to beta (disabled by default). +**Action required** for Kubernetes cluster administrators and for distributions that manage the cluster Service CIDR. +Kubernetes now allows users to define the cluster Service CIDR via an API object: ServiceCIDR. +Distributions or administrators of Kubernetes may want to control that new Service CIDRs added to the cluster do not overlap with other networks on the cluster, that only belong to a specific range of IPs. Administrators may also prefer to retain the existing behavior of only having one ServiceCIDR per cluster. You can use `ValidatingAdmissionPolicy` to achieve this. ([#128971](https://github.com/kubernetes/kubernetes/pull/128971), [@aojea](https://github.com/aojea)) [SIG Apps, Architecture, Auth, CLI, Etcd, Network, Release and Testing] +- The `ClusterTrustBundle` API is moving to `v1beta1`. + In order for the `ClusterTrustBundleProjection` feature to work on the kubelet side, the `ClusterTrustBundle` API must be available at `v1beta1` version and the `ClusterTrustBundleProjection` feature gate must be enabled. If the API becomes later after kubelet started running, restart the kubelet to enable the feature. ([#128499](https://github.com/kubernetes/kubernetes/pull/128499), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Apps, Auth, Etcd, Node, Storage and Testing] +- The Service trafficDistribution field, including the PreferClose option, has graduated + to GA. Services that do not have the field configured will continue to operate + with their existing behavior. Refer to the documentation + https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution + for more details. ([#130673](https://github.com/kubernetes/kubernetes/pull/130673), [@gauravkghildiyal](https://github.com/gauravkghildiyal)) [SIG Apps, Network and Testing] +- The feature gate `InPlacePodVerticalScalingAllocatedStatus` is deprecated and no longer used. The `AllocatedResources` field in `ContainerStatus` is now guarded by the `InPlacePodVerticalScaling` feature gate. ([#130880](https://github.com/kubernetes/kubernetes/pull/130880), [@tallclair](https://github.com/tallclair)) [SIG CLI, Node and Scheduling] +- The kube-controller-manager will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set. ([#130650](https://github.com/kubernetes/kubernetes/pull/130650), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, Node, Scheduling, Storage, Testing and Windows] +- The kube-scheduler will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set. ([#130649](https://github.com/kubernetes/kubernetes/pull/130649), [@natasha41575](https://github.com/natasha41575)) [SIG Node, Scheduling and Testing] +- The kubelet will set the `observedGeneration` field on pod conditions when the `PodObservedGenerationTracking` feature gate is set. ([#130573](https://github.com/kubernetes/kubernetes/pull/130573), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node, Scheduling, Storage, Testing and Windows] +- The minimum value validation of ReplicationController's `replicas` and `minReadySeconds` fields have been migrated to declarative validation. The requiredness of both fields is also declaratively validated. + If the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. + If the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields. ([#130725](https://github.com/kubernetes/kubernetes/pull/130725), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Instrumentation, Network, Node and Storage] +- The `resource.k8s.io/v1beta1` API is deprecated and will be removed in 1.36. Use `v1beta2` instead. ([#129970](https://github.com/kubernetes/kubernetes/pull/129970), [@mortent](https://github.com/mortent)) [SIG API Machinery, Apps, Auth, Etcd, Node, Scheduling and Testing] +- Validation now requires new StatefulSets with a `.spec.serviceName` field value to pass DNS1123 validation. Previously created StatefulSets with an invalid `.spec.serviceName` field value could not create any pods, and should be deleted. + - Published OpenAPI for the StatefulSet schema is corrected to indicate the `.spec.serviceName` is optional. ([#130233](https://github.com/kubernetes/kubernetes/pull/130233), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, Apps and Testing] +- When the `PreferSameTrafficDistribution` feature gate is enabled, a new `trafficDistribution` value `PreferSameNode` is available, which attempts to always route Service connections to an endpoint on the same node as the client. Additionally, `PreferSameZone` is introduced as an alias for `PreferClose`. ([#130844](https://github.com/kubernetes/kubernetes/pull/130844), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network and Windows] +- When the `PodObservedGenerationTracking` feature gate was set, the kubelet populated `status.observedGeneration` to reflect the latest `metadata.generation` it observed for the pod. ([#130352](https://github.com/kubernetes/kubernetes/pull/130352), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, CLI, Node, Release, Scheduling, Storage, Testing and Windows] +- When the `StrictIPCIDRValidation` feature gate is enabled, Kubernetes will be + slightly stricter about what values will be accepted as IP addresses and network + address ranges (“CIDR blocks”). + + In particular, octets within IPv4 addresses are not allowed to have any leading + `0`s, and IPv4-mapped IPv6 values (e.g. `::ffff:192.168.0.1`) are forbidden. + These sorts of values can potentially cause security problems when different + components interpret the same string as referring to different IP addresses + (as in CVE-2021-29923). + + This tightening applies only to fields in built-in API kinds, and not to + custom resource kinds, values in Kubernetes configuration files, or + command-line arguments. + + (When the feature gate is disabled, creating an object with such an invalid + IP or CIDR value will result in a warning from the API server about the fact + that it will be rejected in the future.) ([#122550](https://github.com/kubernetes/kubernetes/pull/122550), [#128786](https://github.com/kubernetes/kubernetes/pull/128786), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network, Node, Scheduling and Testing] +- `apidiscovery.k8s.io/v2beta1` API group is disabled by default ([#130347](https://github.com/kubernetes/kubernetes/pull/130347), [@Jefftree](https://github.com/Jefftree)) [SIG API Machinery and Testing] +- `kubectl apply` now coerces `null` values for labels and annotations in manifests to empty string values, +consistent with typed JSON metadata decoding, rather than dropping all labels and annotations ([#129257](https://github.com/kubernetes/kubernetes/pull/129257), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] + +### Feature + +- Added `ListFromCacheSnapshot` feature gate that allows apiserver to serve LISTs with exact RV and continuations from cache ([#130423](https://github.com/kubernetes/kubernetes/pull/130423), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd and Testing] +- Added Pressure Stall Information (PSI) metrics to node metrics. ([#130701](https://github.com/kubernetes/kubernetes/pull/130701), [@roycaihw](https://github.com/roycaihw)) [SIG Node and Testing] +- Added Windows Server, Version 2025 for windows-servercore-cache test image ([#130935](https://github.com/kubernetes/kubernetes/pull/130935), [@aramase](https://github.com/aramase)) [SIG Testing and Windows] +- Added metrics to expose the main known reasons for resource alignment errors ([#129950](https://github.com/kubernetes/kubernetes/pull/129950), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] +- Added `SchedulerPopFromBackoffQ` feature gate that is in beta and enabled by default. Improved scheduling queue behavior by popping pods from the backoffQ when the activeQ is empty. This allows to process potentially schedulable pods ASAP, eliminating a penalty effect of the backoff queue. ([#130772](https://github.com/kubernetes/kubernetes/pull/130772), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing] +- Added `apiserver.latency.k8s.io/authentication` annotation to the audit log to record the + time spent authenticating slow requests. Also added `apiserver.latency.k8s.io/authorization` + annotation to record the time spent authorizing slow requests. ([#130571](https://github.com/kubernetes/kubernetes/pull/130571), [@hakuna-matatah](https://github.com/hakuna-matatah)) +- Added a `/flagz` endpoint for kube-proxy ([#128985](https://github.com/kubernetes/kubernetes/pull/128985), [@yongruilin](https://github.com/yongruilin)) [SIG Instrumentation and Network] +- Added a `/status` endpoint for kube-proxy ([#128989](https://github.com/kubernetes/kubernetes/pull/128989), [@Henrywu573](https://github.com/Henrywu573)) [SIG Instrumentation and Network] +- Added a `/statusz` HTTP endpoint to the kube-scheduler. ([#128818](https://github.com/kubernetes/kubernetes/pull/128818), [@yongruilin](https://github.com/yongruilin)) [SIG Architecture, Instrumentation, Scheduling and Testing] +- Added a `/statusz` HTTP endpoint to the kubelet. ([#128811](https://github.com/kubernetes/kubernetes/pull/128811), [@zhifei92](https://github.com/zhifei92)) [SIG Architecture, Instrumentation and Node] +- Added a `/statusz` endpoint for kube-controller-manager ([#128991](https://github.com/kubernetes/kubernetes/pull/128991), [@Henrywu573](https://github.com/Henrywu573)) [SIG API Machinery, Cloud Provider, Instrumentation and Testing] +- Added a `/statusz` endpoint for kube-scheduler ([#128987](https://github.com/kubernetes/kubernetes/pull/128987), [@Henrywu573](https://github.com/Henrywu573)) [SIG Instrumentation, Scheduling and Testing] +- Added a mechanism that calculates a digest of etcd and the watch cache every 5 minutes and exposes it as the `apiserver_storage_digest` metric. ([#130475](https://github.com/kubernetes/kubernetes/pull/130475), [@serathius](https://github.com/serathius)) [SIG API Machinery, Instrumentation and Testing] +- Added a new CLI flag `--emulation-forward-compatible` + Added a new CLI `--runtime-config-emulation-forward-compatible` ([#130354](https://github.com/kubernetes/kubernetes/pull/130354), [@siyuanfoundation](https://github.com/siyuanfoundation)) [SIG API Machinery, Etcd and Testing] +- Added a new option `strict-cpu-reservation` for CPU Manager static policy. When this option is enabled, CPU cores in `reservedSystemCPUs` will be strictly used for system daemons and interrupt processing no longer available for any workload. ([#130290](https://github.com/kubernetes/kubernetes/pull/130290), [@psasnal](https://github.com/psasnal)) [SIG Node and Testing] +- Added an alpha feature gate `OrderedNamespaceDeletion`. When enabled, the pods resources are deleted before all other resources during namespace deletion. ([#130035](https://github.com/kubernetes/kubernetes/pull/130035), [@cici37](https://github.com/cici37)) [SIG API Machinery, Apps and Testing] +- Added e2e tests for volume group snapshots. ([#128972](https://github.com/kubernetes/kubernetes/pull/128972), [@manishym](https://github.com/manishym)) [SIG Cloud Provider, Storage and Testing] +- Added unit test helpers to validate CEL and patterns in CustomResourceDefinitions. ([#129028](https://github.com/kubernetes/kubernetes/pull/129028), [@sttts](https://github.com/sttts)) +- Added validation of `containerLogMaxFiles` within kubelet configuration files. ([#129072](https://github.com/kubernetes/kubernetes/pull/129072), [@kannon92](https://github.com/kannon92)) +- Adding resource completion in kubectl debug command ([#130033](https://github.com/kubernetes/kubernetes/pull/130033), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI] +- Adds a `/flagz` endpoint for kube-controller-manager endpoint ([#128824](https://github.com/kubernetes/kubernetes/pull/128824), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Instrumentation] +- Allowed `ImageVolume` for Restricted PSA profiles. ([#130394](https://github.com/kubernetes/kubernetes/pull/130394), [@Barakmor1](https://github.com/Barakmor1)) +- Allowed dynamic configuration of the service account name and audience that the kubelet could request a token for, as part of the node audience restriction feature. ([#130485](https://github.com/kubernetes/kubernetes/pull/130485), [@aramase](https://github.com/aramase)) [SIG Auth and Testing] +- Automatically copy `topology.k8s.io/zone`, `topology.k8s.io/region` and `kubernetes.io/hostname` labels from Node objects to Pods when they are scheduled to a node (via the `pods/binding` endpoint) to allow applications that need to be explicitly aware of their assigned node topology to access this information via the downward API, rather than requiring permission to `get node` objects (exposing the entire API surface of the Node object to otherwise unprivileged workloads). ([#127092](https://github.com/kubernetes/kubernetes/pull/127092), [@munnerz](https://github.com/munnerz)) [SIG API Machinery, Node and Testing] +- Bumped `ProcMountType` feature to on by default beta ([#130798](https://github.com/kubernetes/kubernetes/pull/130798), [@haircommander](https://github.com/haircommander)) [SIG Node] +- Calculated pod resources are now cached when adding pods to NodeInfo in the scheduler framework, improving performance when processing unschedulable pods. ([#129635](https://github.com/kubernetes/kubernetes/pull/129635), [@macsko](https://github.com/macsko)) [SIG Scheduling] +- `cel-go` has been bumped to `v0.23.2`. ([#129844](https://github.com/kubernetes/kubernetes/pull/129844), [@cici37](https://github.com/cici37)) [SIG API Machinery, Auth, Cloud Provider and Node] +- Changed metadata management for Pods to populate `.metadata.generation` on writes. New pods will have a `metadata.generation` of 1; updates to mutable fields in the Pod `.spec` will result in `metadata.generation` being incremented by 1. ([#130181](https://github.com/kubernetes/kubernetes/pull/130181), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node and Testing] +- DRA: Starting Kubernetes 1.33, regular users with namespaced cluster `edit` role assigned have `read` permission to `resourceclaims`, `resourceclaims/status`,`resourceclaimtemplates`. And `write` permission for `resourceclaims`, `resourceclaimtemplates`. ([#130738](https://github.com/kubernetes/kubernetes/pull/130738), [@ritazh](https://github.com/ritazh)) [SIG Auth] +- `DRAResourceClaimDeviceStatus` is now turned on by default allowing DRA-Drivers to report device status data for each allocated device. ([#130814](https://github.com/kubernetes/kubernetes/pull/130814), [@LionelJouin](https://github.com/LionelJouin)) [SIG Network and Node] +- `DistributeCPUsAcrossNUMA` policy option is promoted to Beta. ([#130541](https://github.com/kubernetes/kubernetes/pull/130541), [@swatisehgal](https://github.com/swatisehgal)) [SIG Node] +- Enabled the `OrderedNamespaceDeletion` feature gate by default. ([#130507](https://github.com/kubernetes/kubernetes/pull/130507), [@cici37](https://github.com/cici37)) [SIG API Machinery and Apps] +- Enabled user namespaces support (feature gate `UserNamespacesSupport`) by default. ([#130138](https://github.com/kubernetes/kubernetes/pull/130138), [@rata](https://github.com/rata)) [SIG Node and Testing] +- Endpoints resources created by the Endpoints controller now include a label indicating this. + Users who manually create Endpoints can also add this label, but they should consider + using `EndpointSlices` instead. ([#130564](https://github.com/kubernetes/kubernetes/pull/130564), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network] +- Errors returned by apiserver from uninitialized cache will include last error from etcd ([#130899](https://github.com/kubernetes/kubernetes/pull/130899), [@serathius](https://github.com/serathius)) [SIG API Machinery and Testing] +- Errors that occur during pod resize actuation will now surface in the `PodResizeInProgress` condition. ([#130902](https://github.com/kubernetes/kubernetes/pull/130902), [@natasha41575](https://github.com/natasha41575)) +- Extended the kube-apiserver loopback client certificate validity to 14 months to align with the updated Kubernetes support lifecycle. ([#130047](https://github.com/kubernetes/kubernetes/pull/130047), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery and Auth] +- Extended the schema of the kube-proxy `healthz` and `livez` HTTP endpoints to incorporate information about the corresponding IP family. ([#129271](https://github.com/kubernetes/kubernetes/pull/129271), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows] +- Fixed `SELinuxWarningController` defaults when running kube-controller-manager in a container. ([#130037](https://github.com/kubernetes/kubernetes/pull/130037), [@jsafrane](https://github.com/jsafrane)) [SIG Apps and Storage] +- Fixed a bug to ensure container-level swap metrics are collected. ([#129486](https://github.com/kubernetes/kubernetes/pull/129486), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing] +- git-repo volume plugin has been disabled by default, with the option to turn it back ([#129923](https://github.com/kubernetes/kubernetes/pull/129923), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) +- Graduated the `WinDSR` feature in the kube-proxy to beta. The `WinDSR` feature gate is now enabled by default. ([#130876](https://github.com/kubernetes/kubernetes/pull/130876), [@rzlink](https://github.com/rzlink)) [SIG Windows] +- Graduated the asynchronous preemption feature in the scheduler to beta. + Now the feature flag (SchedulerAsyncPreemption) is enabled by default. ([#130550](https://github.com/kubernetes/kubernetes/pull/130550), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] +- Graduated `BtreeWatchCache` feature gate to GA. ([#129934](https://github.com/kubernetes/kubernetes/pull/129934), [@serathius](https://github.com/serathius)) +- Graduated the `DisableNodeKubeProxyVersion` feature gate to enable by default, the kubelet no longer attempts to set the `.status.kubeProxyVersion` field for its associated Node. ([#129713](https://github.com/kubernetes/kubernetes/pull/129713), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node] +- Graduated the `KubeletFineGrainedAuthz` feature gate to beta; the gate is now enabled by default. ([#129656](https://github.com/kubernetes/kubernetes/pull/129656), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG Auth, CLI, Node, Storage and Testing] +- If scheduling fails on PreBind or Bind, scheduler will retry the failed pod immediately after backoff time, regardless of the reason for failing. In this case EventsToRegister (QHints) will not be taken into consideration before retry. ([#130189](https://github.com/kubernetes/kubernetes/pull/130189), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling] +- Implemented full support for contextual logging in `client-go/rest`. `BackoffManagerWithContext` was used instead of `BackoffManager` to ensure that the caller could interrupt the sleep. ([#127709](https://github.com/kubernetes/kubernetes/pull/127709), [@pohly](https://github.com/pohly)) [SIG API Machinery, Architecture, Auth, Cloud Provider, Instrumentation, Network and Node] +- Improved how the API server responds to **list** requests where the response format negotiates to JSON. +List responses in JSON are marshalled one element at a time, drastically reducing the memory needed to serve +large collections. Streaming list responses can be disabled via the `StreamingJSONListEncoding` feature gate. ([#129334](https://github.com/kubernetes/kubernetes/pull/129334), [@serathius](https://github.com/serathius)) [SIG API Machinery, Architecture and Release] +- Improved scheduling performance of pods with required topology spreading. ([#129119](https://github.com/kubernetes/kubernetes/pull/129119), [@macsko](https://github.com/macsko)) [SIG Scheduling] +- Introduced the `LegacySidecarContainers` feature gate enabling the legacy code path that predates the `SidecarContainers` feature. This temporary feature gate is disabled by default, only available in v1.33, and will be removed in v1.34. ([#130058](https://github.com/kubernetes/kubernetes/pull/130058), [@gjkim42](https://github.com/gjkim42)) [SIG Node] +- KEP-3619: fine-grained supplemental groups policy is graduated to Beta. Note that kubelet now rejects pods with `.spec.securityContext.supplementalGroupsPolicy: Strict` when scheduled to the node that does not support the feature (`.status.features.supplementalGroupsPolicy: false`). ([#130210](https://github.com/kubernetes/kubernetes/pull/130210), [@everpeace](https://github.com/everpeace)) [SIG Apps, Node and Testing] +- kube-apiserver: Promoted the `ServiceAccountTokenNodeBinding` feature gate general availability. It is now locked to enabled. ([#129591](https://github.com/kubernetes/kubernetes/pull/129591), [@liggitt](https://github.com/liggitt)) [SIG Auth and Testing] +- kube-apiserver: the `StorageObjectInUseProtection` admission plugin added the `kubernetes.io/vac-protection` finalizer to the given VolumeAttributesClass object when it is created if the feature-gate `VolumeAttributesClass` is turned on and `storage.k8s.io/v1beta1` is enabled. ([#130553](https://github.com/kubernetes/kubernetes/pull/130553), [@Phaow](https://github.com/Phaow)) [SIG Storage and Testing] +- kubeadm: `kubeadm upgrade plan` now supports `--etcd-upgrade` flag to control whether the etcd upgrade plan should be displayed. Add an `EtcdUpgrade` field into `UpgradeConfiguration.Plan` for v1beta4. ([#130023](https://github.com/kubernetes/kubernetes/pull/130023), [@SataQiu](https://github.com/SataQiu)) [SIG Cluster Lifecycle] +- kubeadm: Added preflight check for `cp` on Linux nodes and `xcopy` on Windows nodes. These binaries are required for kubeadm to work properly. ([#130045](https://github.com/kubernetes/kubernetes/pull/130045), [@carlory](https://github.com/carlory)) +- kubeadm: Improved `kubeadm init` and `kubeadm join` to provide consistent error messages when the kubelet failed or when failed to wait for control plane components. ([#130040](https://github.com/kubernetes/kubernetes/pull/130040), [@HirazawaUi](https://github.com/HirazawaUi)) +- kubeadm: Promoted the feature gate `ControlPlaneKubeletLocalMode` to Beta. By default, kubeadm will use the local kube-apiserver endpoint for the kubelet when creating a cluster with `kubeadm init` or when joining control plane nodes with `kubeadm join`. Enabling the feature gate also affects the `kubeadm init phase kubeconfig kubelet` phase, where the flag `--control-plane-endpoint` no longer affects the generated kubeconfig `Server` field, but the flag `--apiserver-advertise-address` can now be used for the same purpose. ([#129956](https://github.com/kubernetes/kubernetes/pull/129956), [@chrischdi](https://github.com/chrischdi)) +- kubeadm: graduated the WaitForAllControlPlaneComponents feature gate to Beta. When checking the health status of a control plane component, make sure that the address and port defined as arguments in the respective component's static Pod manifest are used. ([#129620](https://github.com/kubernetes/kubernetes/pull/129620), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from a given node on `kubeadm upgrade`. ([#129279](https://github.com/kubernetes/kubernetes/pull/129279), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle and Testing] +- kubeadm: if the `NodeLocalCRISocket` feature gate is enabled, remove the flag `--container-runtime-endpoint` from the `/var/lib/kubelet/kubeadm-flags.env` file on `kubeadm upgrade`. ([#129278](https://github.com/kubernetes/kubernetes/pull/129278), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Cluster Lifecycle] +- kubeadm: removed preflight check for nsenter on Linux nodes + kubeadm: added preflight check for `losetup` on Linux nodes. It's required by kubelet for keeping a block device opened. ([#129450](https://github.com/kubernetes/kubernetes/pull/129450), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle] +- kubeadm: removed the feature gate EtcdLearnerMode which graduated to GA in 1.32. ([#129589](https://github.com/kubernetes/kubernetes/pull/129589), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- kubelet + DRA: For DRA driver plugins (and only for those!), the kubelet now supports a rolling update with `maxSurge > 0` in the driver's DaemonSet. A DRA driver must support this, which can be done via the k8s.io/dynamic-resource-allocation/kubeletplugin helper package. ([#129832](https://github.com/kubernetes/kubernetes/pull/129832), [@pohly](https://github.com/pohly)) [SIG Node, Storage and Testing] +- Kubernetes is now built with Go `1.24.2` ([#131369](https://github.com/kubernetes/kubernetes/pull/131369), [@ameukam](https://github.com/ameukam)) [SIG Release and Testing] +- NodeRestriction admission now validates that the audience value, the kubelet requested a service account token for, is part of the pod spec volume. The kube-apiserver featuregate `ServiceAccountNodeAudienceRestriction` is enabled by default in 1.33. ([#130017](https://github.com/kubernetes/kubernetes/pull/130017), [@aramase](https://github.com/aramase)) +- Pod resource checkpointing is now tracked by the `allocated_pods_state` and `actuated_pods_state` files, replacing the previously used `pod_status_manager_state`. ([#130599](https://github.com/kubernetes/kubernetes/pull/130599), [@tallclair](https://github.com/tallclair)) +- `PodLifecycleSleepAction` is now turned on by default allowing users to create containers with sleep lifecycle action with a duration of zero seconds ([#130621](https://github.com/kubernetes/kubernetes/pull/130621), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Node] +- Promoted `RelaxedDNSSearchValidation` to beta, allowing for Pod search domains to be a single dot "." or contain an underscore "_". ([#130128](https://github.com/kubernetes/kubernetes/pull/130128), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network] +- Promoted in-place Pod vertical scaling to beta. The `InPlacePodVerticalScaling` feature gate is now enabled by default. ([#130905](https://github.com/kubernetes/kubernetes/pull/130905), [@tallclair](https://github.com/tallclair)) [SIG Node] +- Promoted kubectl `--subresource` flag to stable. ([#130238](https://github.com/kubernetes/kubernetes/pull/130238), [@soltysh](https://github.com/soltysh)) +- Promoted the `CRDValidationRatcheting` feature gate to GA in 1.33 ([#130013](https://github.com/kubernetes/kubernetes/pull/130013), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery] +- Promoted the feature gate `CSIMigrationPortworx` to GA. If your applications are using Portworx volumes, +please make sure that the corresponding Portworx CSI driver is installed on your cluster **before** upgrading to 1.31 or later +because all operations for the in-tree `portworxVolume` type are redirected to the pxd.portworx.com CSI driver +when the feature gate is enabled. ([#129297](https://github.com/kubernetes/kubernetes/pull/129297), [@gohilankit](https://github.com/gohilankit)) [SIG Storage] +- Promoted the feature gate `HonorPVReclaimPolicy` to GA. ([#129583](https://github.com/kubernetes/kubernetes/pull/129583), [@carlory](https://github.com/carlory)) [SIG Apps, Storage and Testing] +- Respect the incoming trace context for authenticated requests to the kube-apiserver for APIServer tracing. ([#127053](https://github.com/kubernetes/kubernetes/pull/127053), [@dashpole](https://github.com/dashpole)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network, Node and Testing] +- SELinuxChangePolicy and SELinuxMount graduated to Beta. SELinuxMount stays off by default. ([#130544](https://github.com/kubernetes/kubernetes/pull/130544), [@jsafrane](https://github.com/jsafrane)) [SIG Auth, Node and Storage] +- Scheduling Framework exposes NodeInfo to the ScorePlugin. ([#130537](https://github.com/kubernetes/kubernetes/pull/130537), [@saintube](https://github.com/saintube)) [SIG Scheduling, Storage and Testing] +- The `RemoteRequestHeaderUID` feature moves to beta and is now enabled by default. This makes the kube-apiserver propagate UIDs in the `X-Remote-Uid` header in requests to the aggregated API servers. The header is not honored by default for incoming requests, but that can be enabled by setting the `--requestheader-uid-headers` flag explicitly. ([#130560](https://github.com/kubernetes/kubernetes/pull/130560), [@stlaz](https://github.com/stlaz)) [SIG API Machinery, Auth and Testing] +- The `DeclarativeValidation` feature gate is enabled by default. When enabled, mismatches with existing hand written validation is reported via metrics. + The `DeclarativeValidationTakeover` feature gate remains disabled by default. While disabled, validation errors produced by hand written validation are always return to the caller. To switch to declarative validation is primary source of errors for migrated fields, enable this feature gate. ([#130728](https://github.com/kubernetes/kubernetes/pull/130728), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery] +- The `SidecarContainers` feature has graduated to GA. 'SidecarContainers' feature gate was locked to default value and will be removed in v1.36. If you were setting this feature gate explicitly, please remove it now. ([#129731](https://github.com/kubernetes/kubernetes/pull/129731), [@gjkim42](https://github.com/gjkim42)) [SIG Apps, Node, Scheduling and Testing] +- The nftables mode of kube-proxy is now GA. (The iptables mode remains the + default; you can select the nftables mode by passing `--proxy-mode nftables` + or using a config file with `mode: nftables`. See the kube-proxy documentation + for more details.) ([#129653](https://github.com/kubernetes/kubernetes/pull/129653), [@danwinship](https://github.com/danwinship)) [SIG Network] +- Updated `/version` response to report binary version information separate from compatibility version ([#130019](https://github.com/kubernetes/kubernetes/pull/130019), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Release and Testing] +- Upgraded the `kubectl autoscale` subcommand to use `autoscaling/v2` rather than `autoscaling/v1` APIs. +The command now attempts to use the `autoscaling/v2` API first. If the `autoscaling/v2` API is +unavailable or an error occurs, it falls back to the `autoscaling/v1` API. ([#128950](https://github.com/kubernetes/kubernetes/pull/128950), [@googs1025](https://github.com/googs1025)) [SIG Autoscaling and CLI] +- User namespaces support (feature gate UserNamespacesSupport) is now enabled by ([#130138](https://github.com/kubernetes/kubernetes/pull/130138), [@rata](https://github.com/rata)) [SIG Node and Testing] +- Various controllers that write out IP address or CIDR values to API objects now + ensure that they always write out the values in canonical form. ([#130101](https://github.com/kubernetes/kubernetes/pull/130101), [@danwinship](https://github.com/danwinship)) [SIG Apps, Network and Node] +- `kubeproxy_conntrack_reconciler_deleted_entries_total` metric can be used to track cumulative sum of conntrack flows cleared by reconciler. ([#130204](https://github.com/kubernetes/kubernetes/pull/130204), [@aroradaman](https://github.com/aroradaman)) +- `kubeproxy_conntrack_reconciler_sync_duration_seconds` metric can now be used to track conntrack reconciliation latency. ([#130200](https://github.com/kubernetes/kubernetes/pull/130200), [@aroradaman](https://github.com/aroradaman)) +- The `StorageCapacityScoring` feature gate was added to score nodes by available storage capacity. It's in alpha and disabled by default. The `VolumeCapacityPriority` alpha feature was replaced with this, and the default behavior was changed. The `VolumeCapacityPriority` preferred a node with the least allocatable, but the `StorageCapacityScoring` preferred a node with the maximum allocatable. See [KEP-4049](https://github.com/kubernetes/enhancements/blob/master/keps/sig-storage/4049-storage-capacity-scoring-of-nodes-for-dynamic-provisioning/README.md) for details. ([#128184](https://github.com/kubernetes/kubernetes/pull/128184), [@cupnes](https://github.com/cupnes)) [SIG Scheduling, Storage and Testing] + +### Documentation + +- Added an example of set-based requirements for the `-l` / `--selector` command line option to `kubectl`. ([#129106](https://github.com/kubernetes/kubernetes/pull/129106), [@rotsix](https://github.com/rotsix)) +- kubeadm: improved the `kubeadm reset` message for manual cleanups and referenced https://k8s.io/docs/reference/setup-tools/kubeadm/kubeadm-reset/. ([#129644](https://github.com/kubernetes/kubernetes/pull/129644), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] + +### Bug or Regression + +- --feature-gate=InOrderInformers (default on), causes informers to process watch streams in order as opposed to grouping updates for the same item close together. Binaries embedding client-go, but not wiring the featuregates can disable by setting the `KUBE_FEATURE_InOrderInformers=false`. ([#129568](https://github.com/kubernetes/kubernetes/pull/129568), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] +- Added a validation for the `revisionHistoryLimit` field in the `.spec` of a StatefulSet, to prevent it from being set to a negative value. ([#129017](https://github.com/kubernetes/kubernetes/pull/129017), [@ardaguclu](https://github.com/ardaguclu)) +- Added progress tracking for volume permission and ownership changes. ([#130398](https://github.com/kubernetes/kubernetes/pull/130398), [@gnufied](https://github.com/gnufied)) [SIG Node and Storage] +- Changed the signature of `PublishResources()` for ResourceSlices to accept a `resourceslice.DriverResources` parameter +instead of a `Resources` parameter. ([#129142](https://github.com/kubernetes/kubernetes/pull/129142), [@googs1025](https://github.com/googs1025)) [SIG Node and Testing] +- DRA: the explanation for why a pod which wasn't using ResourceClaims was unscheduleable included a useless "no new claims to deallocate" when it was unscheduleable for some other reasons. ([#129823](https://github.com/kubernetes/kubernetes/pull/129823), [@googs1025](https://github.com/googs1025)) [SIG Node and Scheduling] +- Disabled InPlace Pod Resize for Swap enabled containers that does not have memory ResizePolicy as RestartContainer ([#130831](https://github.com/kubernetes/kubernetes/pull/130831), [@ajaysundark](https://github.com/ajaysundark)) [SIG Node and Testing] +- Enabled ratcheting validation on `status` subresources for CustomResourceDefinitions. ([#129506](https://github.com/kubernetes/kubernetes/pull/129506), [@JoelSpeed](https://github.com/JoelSpeed)) +- Fix: Adopted go1.23 behavior change in mount point parsing on Windows. ([#129368](https://github.com/kubernetes/kubernetes/pull/129368), [@andyzhangx](https://github.com/andyzhangx)) [SIG Storage and Windows] +- Fixed CVE-2024-51744. ([#128621](https://github.com/kubernetes/kubernetes/pull/128621), [@kmala](https://github.com/kmala)) [SIG Auth, Cloud Provider and Node] +- Fixed `kubectl wait --for=create` behavior with label selectors, to properly wait for resources with matching labels to appear. ([#128662](https://github.com/kubernetes/kubernetes/pull/128662), [@omerap12](https://github.com/omerap12)) [SIG CLI and Testing] +- Fixed a bug in HorizontalPodAutoscaler. HPAs with `ContainerResource` metrics no longer return an error when container metrics are missing. Instead they use the same logic as `Resource` metrics to perform calculations. ([#127193](https://github.com/kubernetes/kubernetes/pull/127193), [@DP19](https://github.com/DP19)) [SIG Apps and Autoscaling] +- Fixed a bug in the exclusive assignment availability check for the `InPlacePodVerticalScalingExclusiveCPUs` feature gate. ([#130559](https://github.com/kubernetes/kubernetes/pull/130559), [@esotsal](https://github.com/esotsal)) +- Fixed a bug where adding an ephemeral container to a pod which references a new secret or config map doesn't give the pod access to that new secret or config map. (#114984, @cslink) ([#129670](https://github.com/kubernetes/kubernetes/pull/129670), [@cslink](https://github.com/cslink)) [SIG Auth] +- Fixed a bug where kube-apiserver could emit a subsequent watch event even if the previous event failed to decrypt and was not emitted. ([#131020](https://github.com/kubernetes/kubernetes/pull/131020), [@wojtek-t](https://github.com/wojtek-t)) [SIG API Machinery and Etcd] +- Fixed a bug where the kube-proxy `EndpointSliceCache` memory experienced a leak. ([#128929](https://github.com/kubernetes/kubernetes/pull/128929), [@orange30](https://github.com/orange30)) +- Fixed a data race that could occur when a single Go type was serialized to CBOR concurrently for the first time within a program. ([#129170](https://github.com/kubernetes/kubernetes/pull/129170), [@benluddy](https://github.com/benluddy)) [SIG API Machinery] +- Fixed a panic in kube-controller-manager handling StatefulSet objects when `revisionHistoryLimit` is negative. ([#129301](https://github.com/kubernetes/kubernetes/pull/129301), [@ardaguclu](https://github.com/ardaguclu)) +- Fixed a regression in 1.32 that prevented pods with `postStart` hooks from starting. ([#129946](https://github.com/kubernetes/kubernetes/pull/129946), [@alex-petrov-vt](https://github.com/alex-petrov-vt)) +- Fixed a regression in 1.32 where nodes could fail to report status and renew serving certificates after the kubelet restarted. ([#130348](https://github.com/kubernetes/kubernetes/pull/130348), [@aojea](https://github.com/aojea)) +- Fixed a regression with the `ServiceAccountNodeAudienceRestriction` feature where `azureFile` volumes encountered 'failed to get service account token attributes' errors. ([#129993](https://github.com/kubernetes/kubernetes/pull/129993), [@aramase](https://github.com/aramase)) [SIG Auth and Testing] +- Fixed a storage bug related to multipath. iSCSI and Fibre Channel devices attached to nodes via multipath now resolve correctly when partitioned. ([#128086](https://github.com/kubernetes/kubernetes/pull/128086), [@RomanBednar](https://github.com/RomanBednar)) +- Fixed a test failure in `TestSetVolumeOwnershipOwner` for `fsGroup=3000` and + symlink cases in `volume_linux_test.go`. The tests were failing due to invalid + ownership verification and the issue has been resolved by adjusting file + permission change handling, ensuring correct behavior when run as root. ([#130616](https://github.com/kubernetes/kubernetes/pull/130616), [@gnufied](https://github.com/gnufied)) +- Fixed an issue in register-gen where imports for k8s.io/apimachinery/pkg/runtime and k8s.io/apimachinery/pkg/runtime/schema were missing. ([#129307](https://github.com/kubernetes/kubernetes/pull/129307), [@LionelJouin](https://github.com/LionelJouin)) [SIG API Machinery] +- Fixed an issue in the CEL CIDR library where subnets contained within another CIDR were incorrectly rejected as not being contained. ([#130450](https://github.com/kubernetes/kubernetes/pull/130450), [@JoelSpeed](https://github.com/JoelSpeed)) +- Fixed an issue where kubelet would unmount volumes of running pods upon restart if the referenced PVC was being deleted by the user. ([#130335](https://github.com/kubernetes/kubernetes/pull/130335), [@carlory](https://github.com/carlory)) [SIG Node, Storage and Testing] +- Fixed an issue where pods did not correctly have a pending phase after the node reboot. ([#128516](https://github.com/kubernetes/kubernetes/pull/128516), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing] +- Fixed an issue with Kubernetes-style sidecar containers (in other words: init containers +with an Always restart policy) and Services. Before the fix, named ports +exposed by a sidecar could not be accessed using a Service. ([#128850](https://github.com/kubernetes/kubernetes/pull/128850), [@toVersus](https://github.com/toVersus)) [SIG Network and Testing] +- Fixed compressed kubelet log file permissions to use uncompressed kubelet log file permissions. ([#129893](https://github.com/kubernetes/kubernetes/pull/129893), [@simonfogliato](https://github.com/simonfogliato)) [SIG Node] +- Fixed in-tree to CSI migration for Portworx volumes, in clusters where Portworx security feature is enabled (it's a Portworx feature, not Kubernetes feature). It required secret data from the secret mentioned in-tree SC, to be passed in CSI requests which was not happening before this fix. ([#129630](https://github.com/kubernetes/kubernetes/pull/129630), [@gohilankit](https://github.com/gohilankit)) [SIG Storage] +- Fixed a rare and sporadic network issues that occurred when the host was under heavy load. ([#130256](https://github.com/kubernetes/kubernetes/pull/130256), [@adrianmoisey](https://github.com/adrianmoisey)) +- Fixed the bug where Events failed to be created when the referenced object name was not a valid Event name. Now, a UUID is used as the name instead of the referenced object name and the timestamp suffix. ([#129790](https://github.com/kubernetes/kubernetes/pull/129790), [@aojea](https://github.com/aojea)) +- Fixed a 1.32 regression kube-proxy, when using a Service with External or LoadBalancer IPs on UDP services , was consuming a large amount of CPU because it was not filtering by the Service destination port and trying to delete all the UDP entries associated to the service. ([#130484](https://github.com/kubernetes/kubernetes/pull/130484), [@aojea](https://github.com/aojea)) [SIG Network] +- Implemented logging and event recording for probe results with an `Unknown` status in the kubelet's prober module. This helped improve the diagnosis and monitoring of cases where container probes returned an `Unknown` result, enhancing the observability and reliability of health checks. ([#125901](https://github.com/kubernetes/kubernetes/pull/125901), [@jralmaraz](https://github.com/jralmaraz)) +- Improved reboot event reporting. The kubelet will only emit one reboot Event when a server-level reboot +is detected, even if the kubelet cannot write its status to the associated Node (which triggers a retry). ([#129151](https://github.com/kubernetes/kubernetes/pull/129151), [@rphillips](https://github.com/rphillips)) [SIG Node] +- Includes WebSockets HTTPS proxy support ([#129872](https://github.com/kubernetes/kubernetes/pull/129872), [@seans3](https://github.com/seans3)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Instrumentation, Network and Node] +- kube-apiserver: `--service-account-max-token-expiration` can now be used in combination with an external token signer `--service-account-signing-endpoint`, as long as the `--service-account-max-token-expiration` is not longer than the external token signer's max expiration. ([#129816](https://github.com/kubernetes/kubernetes/pull/129816), [@sambdavidson](https://github.com/sambdavidson)) [SIG API Machinery and Auth] +- kube-apiserver: Fixed a bug where the `ResourceQuota` admission plugin did not respect any scope changes when a resource was updated, such as setting or unsetting the `terminationGracePeriodSeconds` field of an existing pod. ([#130060](https://github.com/kubernetes/kubernetes/pull/130060), [@carlory](https://github.com/carlory)) [SIG API Machinery, Scheduling and Testing] +- kube-apiserver: shortening the grace period during a pod deletion no longer moves the `metadata.deletionTimestamp` into the past ([#122646](https://github.com/kubernetes/kubernetes/pull/122646), [@liggitt](https://github.com/liggitt)) [SIG API Machinery] +- kube-proxy: Fixed a potential memory leak that could occur in clusters with a high volume of UDP workflows. ([#130032](https://github.com/kubernetes/kubernetes/pull/130032), [@aroradaman](https://github.com/aroradaman)) +- kubeadm: Avoided loading the file passed to `--kubeconfig` during `kubeadm init` phases more than once. ([#129006](https://github.com/kubernetes/kubernetes/pull/129006), [@kokes](https://github.com/kokes)) +- kubeadm: fixed a bug where an image is not pulled if there is an error with the sandbox image from CRI. ([#129594](https://github.com/kubernetes/kubernetes/pull/129594), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- kubeadm: fixed a bug where the `node.skipPhases` in UpgradeConfiguration is not respected by the `kubeadm upgrade node` subcommand. ([#129452](https://github.com/kubernetes/kubernetes/pull/129452), [@SataQiu](https://github.com/SataQiu)) +- kubeadm: fixed panic when no UpgradeConfiguration was found in the config file. ([#130202](https://github.com/kubernetes/kubernetes/pull/130202), [@SataQiu](https://github.com/SataQiu)) +- kubeadm: fixed the bug where the `v1beta4` `Timeouts.EtcdAPICall` field was not respected in etcd client operations, and the default timeout of 2 minutes was always used. ([#129859](https://github.com/kubernetes/kubernetes/pull/129859), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- kubeadm: if an addon is disabled in the ClusterConfiguration, skip it during upgrade. ([#129418](https://github.com/kubernetes/kubernetes/pull/129418), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- kubeadm: make sure that it is possible to health check the kube-apiserver when it has `--anonymous-auth=false` set and the `WaitForAllControlPlaneComponents` feature gate is enabled. ([#131036](https://github.com/kubernetes/kubernetes/pull/131036), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle] +- kubeadm: run kernel version and OS version preflight checks for `kubeadm upgrade`. ([#129401](https://github.com/kubernetes/kubernetes/pull/129401), [@pacoxu](https://github.com/pacoxu)) +- Provides an additional function argument to directly specify the version for the tools that the consumers wished to use. ([#129658](https://github.com/kubernetes/kubernetes/pull/129658), [@unmarshall](https://github.com/unmarshall)) +- Removed a warning related to Linux user namespaces and kernel version. Previously, if the feature gate `UserNamespacesSupport` was enabled, the kubelet warned when detecting a Linux kernel version earlier than 6.3.0. While user namespace support generally requires kernel 6.3 or newer, it can also work on older kernels. ([#130243](https://github.com/kubernetes/kubernetes/pull/130243), [@rata](https://github.com/rata)) +- Removed the limitation on exposing port 10250 externally using a Service. ([#129174](https://github.com/kubernetes/kubernetes/pull/129174), [@RyanAoh](https://github.com/RyanAoh)) [SIG Apps and Network] +- Resolved a performance regression in default 1.31+ configurations, related to the `ConsistentListFromCache` feature, where rapid create/update API requests across different namespaces encounter increased latency. ([#130113](https://github.com/kubernetes/kubernetes/pull/130113), [@AwesomePatrol](https://github.com/AwesomePatrol)) +- Revised scheduling behavior to correctly handle nominated node changes. Trigger rescheduling of pods +if necessary when pods with nominated node names got deleted or nominated on a different node. ([#129058](https://github.com/kubernetes/kubernetes/pull/129058), [@dom4ha](https://github.com/dom4ha)) [SIG Scheduling, Storage and Testing] +- The `/flagz` endpoint in kube-apiserver now correctly returns parsed flag values when the `ComponentFlagz` feature-gate is enabled. ([#130328](https://github.com/kubernetes/kubernetes/pull/130328), [@richabanker](https://github.com/richabanker)) [SIG API Machinery and Instrumentation] +- The `BalancedAllocation` plugin now skips all best-effort (zero-requested) pods. ([#130260](https://github.com/kubernetes/kubernetes/pull/130260), [@Bowser1704](https://github.com/Bowser1704)) +- The following roles have had `Watch` added to them (prefixed with `system:controller:`): + + - `cronjob-controller` + - `endpoint-controller` + - `endpointslice-controller` + - `endpointslicemirroring-controller` + - `horizontal-pod-autoscaler` + - `node-controller` + - `pod-garbage-collector` + - `storage-version-migrator-controller` ([#130405](https://github.com/kubernetes/kubernetes/pull/130405), [@kariya-mitsuru](https://github.com/kariya-mitsuru)) [SIG Auth] +- The response from kube-apiserver's `/flagz` endpoint would respond correctly with parsed flags value. ([#129996](https://github.com/kubernetes/kubernetes/pull/129996), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Instrumentation and Testing] +- When `cpu-manager-policy=static` is configured, containers meeting the qualifications for static cpu assignment (i.e. Containers with integer CPU `requests` in pods with `Guaranteed` QOS) will not have cfs quota enforced. Because this fix changes a long-established behavior, users observing a regressions can use the `DisableCPUQuotaWithExclusiveCPUs` feature gate (enabled by default) to restore the previous behavior. Please file an issue if you encounter problems and have to use the Feature Gate. ([#127525](https://github.com/kubernetes/kubernetes/pull/127525), [@scott-grimes](https://github.com/scott-grimes)) [SIG Node and Testing] +- When using the Alpha `DRAResourceClaimDeviceStatus` feature, IP address values + in the `NetworkDeviceData` are now validated more strictly. ([#129219](https://github.com/kubernetes/kubernetes/pull/129219), [@danwinship](https://github.com/danwinship)) [SIG Network] +- YAML input that might previously have been misinterpreted as JSON is now correctly accepted. ([#130666](https://github.com/kubernetes/kubernetes/pull/130666), [@thockin](https://github.com/thockin)) +- [kubectl] Improved the describe output for projected volume sources to clearly indicate whether Secret and ConfigMap entries are optional. ([#129457](https://github.com/kubernetes/kubernetes/pull/129457), [@gshaibi](https://github.com/gshaibi)) [SIG CLI] +- kube-apiserver: Fixes an issue updating the default ServiceCIDR API object and creating dual-stack Service API objects when `--service-cluster-ip-range` flag passed to kube-apiserver is changed from single-stack to dual-stack. ([#131263](https://github.com/kubernetes/kubernetes/pull/131263), [@aojea](https://github.com/aojea)) [SIG API Machinery, Network and Testing] + +### Other (Cleanup or Flake) + +- 1. kube-apiserver: removed the deprecated the `--cloud-provider` and `--cloud-config` CLI parameters. + 2. removed generally available feature-gate `DisableCloudProviders` and `DisableKubeletCloudCredentialProviders` ([#130162](https://github.com/kubernetes/kubernetes/pull/130162), [@carlory](https://github.com/carlory)) [SIG API Machinery, Cloud Provider, Node and Testing] +- Added metrics to capture CPU distribution across NUMA nodes ([#130491](https://github.com/kubernetes/kubernetes/pull/130491), [@swatisehgal](https://github.com/swatisehgal)) [SIG Node and Testing] +- Add metrics to track allocation of Uncore (aka last-level aka L3) Cache blocks ([#130133](https://github.com/kubernetes/kubernetes/pull/130133), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] +- Changed the dependency version for CoreDNS. Kubernetes tools now install CoreDNS `v1.12.0`. ([#128926](https://github.com/kubernetes/kubernetes/pull/128926), [@bzsuni](https://github.com/bzsuni)) [SIG Cloud Provider and Cluster Lifecycle] +- Changed the error message displayed when a pod is trying to attach a volume that does not match the label/selector from "x node(s) had volume node affinity conflict" to "x node(s) didn't match PersistentVolume's node affinity". ([#129887](https://github.com/kubernetes/kubernetes/pull/129887), [@rhrmo](https://github.com/rhrmo)) [SIG Scheduling and Storage] +- `client-gen` now sorts input group/versions to ensure stable output generation even with unsorted inputs ([#130626](https://github.com/kubernetes/kubernetes/pull/130626), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery] +- e2e framework: `framework.WithFeatureGate` `[Alpha]`, `[Beta]` and `[Feature:OffByDefault]` tags are now set 1:1 with `Alpha`, `Beta`, `Feature:OffByDefault` Ginkgo labels, replacing`Feature:Alpha` and `Feature:Beta` labels. `BetaOffByDefault` is also added as a Ginkgo label only for off-by-default beta features ([#130908](https://github.com/kubernetes/kubernetes/pull/130908), [@BenTheElder](https://github.com/BenTheElder)) [SIG Testing] +- E2e.test: [Feature:OffByDefault] was added to test names when specifying a feature gate that is not enabled by default. ([#130655](https://github.com/kubernetes/kubernetes/pull/130655), [@BenTheElder](https://github.com/BenTheElder)) [SIG Auth and Testing] +- Extended the schema of kube-proxy's metrics / endpoints to incorporate information about the corresponding IP family. ([#129173](https://github.com/kubernetes/kubernetes/pull/129173), [@aroradaman](https://github.com/aroradaman)) [SIG Network and Windows] +- Fixed a linting issue in `TestNodeDeletionReleaseCIDR`. ([#128856](https://github.com/kubernetes/kubernetes/pull/128856), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps and Network] +- Flipped `StorageNamespaceIndex` feature gate to `false` and deprecated it. ([#129933](https://github.com/kubernetes/kubernetes/pull/129933), [@serathius](https://github.com/serathius)) +- Implemented logging for failed transactions and the full table in `kube-proxy` with +`nftables` when using log level 4 or higher. Logging is rate-limited to one entry every 24 hours +to avoid performance issues. ([#128886](https://github.com/kubernetes/kubernetes/pull/128886), [@npinaeva](https://github.com/npinaeva)) +- Implemented the `scheduler_cache_size` metric. +Additionally, the `scheduler_scheduler_cache_size` metric is now deprecated in favor of `scheduler_cache_size`, +and will be removed in v1.34. ([#128810](https://github.com/kubernetes/kubernetes/pull/128810), [@googs1025](https://github.com/googs1025)) +- kube-apiserver: Inactive serving code is removed for `authentication.k8s.io/v1alpha1` APIs ([#129186](https://github.com/kubernetes/kubernetes/pull/129186), [@liggitt](https://github.com/liggitt)) [SIG Auth and Testing] +- kubeadm: Use generic terminology in logs instead of direct mentions of YAML/JSON ([#130345](https://github.com/kubernetes/kubernetes/pull/130345), [@HirazawaUi](https://github.com/HirazawaUi)) +- kubeadm: removed preflight check for `ip`, `iptables`, `ethtool` and `tc` on Linux nodes. +kubelet and kube-proxy will continue to report `iptables` errors if its usage is required. The tools `ip`, `ethtool` and `tc` had legacy usage in the kubelet but are no longer required. ([#129131](https://github.com/kubernetes/kubernetes/pull/129131), [@pacoxu](https://github.com/pacoxu)) [SIG Cluster Lifecycle] +- kubeadm: removed preflight check for `touch` on Linux nodes. ([#129317](https://github.com/kubernetes/kubernetes/pull/129317), [@carlory](https://github.com/carlory)) [SIG Cluster Lifecycle] +- kubelet no longer logs multiple errors when running on a system with no iptables binaries installed. ([#129826](https://github.com/kubernetes/kubernetes/pull/129826), [@danwinship](https://github.com/danwinship)) [SIG Network and Node] +- Reduced log verbosity for high-frequency, low-value log entries in Job, IPAM, and ReplicaSet controllers by adjusting them to V(2), V(4) and V(4) respectively. This change minimizes log noise while maintaining access to these logs when needed. ([#130591](https://github.com/kubernetes/kubernetes/pull/130591), [@fmuyassarov](https://github.com/fmuyassarov)) [SIG Apps and Network] +- Removed alpha support for Windows HostNetwork containers. ([#130250](https://github.com/kubernetes/kubernetes/pull/130250), [@marosset](https://github.com/marosset)) [SIG Network, Node and Windows] +- Removed general available feature gate `PersistentVolumeLastPhaseTransitionTime`. ([#129295](https://github.com/kubernetes/kubernetes/pull/129295), [@carlory](https://github.com/carlory)) [SIG Storage] +- Removed general available feature-gate `AppArmor`. ([#129375](https://github.com/kubernetes/kubernetes/pull/129375), [@carlory](https://github.com/carlory)) [SIG Auth and Node] +- Removed generally available feature gate `KubeProxyDrainingTerminatingNodes`. ([#129692](https://github.com/kubernetes/kubernetes/pull/129692), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Network] +- Removed generally available feature-gate `AppArmorFields`. ([#129497](https://github.com/kubernetes/kubernetes/pull/129497), [@carlory](https://github.com/carlory)) [SIG Node] +- Removed support for `v1alpha1` version of `ValidatingAdmissionPolicy` and `ValidatingAdmissionPolicyBinding` API kinds. ([#129207](https://github.com/kubernetes/kubernetes/pull/129207), [@Jefftree](https://github.com/Jefftree)) [SIG Etcd and Testing] +- Removed the `JobPodFailurePolicy` feature gate, which graduated to GA in 1.31 and was unconditionally enabled. ([#129498](https://github.com/kubernetes/kubernetes/pull/129498), [@carlory](https://github.com/carlory)) +- Removed the deprecated `pod_scheduling_duration_seconds` metric. Users need to + migrate to `pod_scheduling_sli_duration_seconds`. ([#128906](https://github.com/kubernetes/kubernetes/pull/128906), [@sanposhiho](https://github.com/sanposhiho)) [SIG Instrumentation and Scheduling] +- Renamed some metrics related to CoreDNS, see the [README](https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics) for `v1.11.0` of CoreDNS. ([#129232](https://github.com/kubernetes/kubernetes/pull/129232), [@DamianSawicki](https://github.com/DamianSawicki)) +- Show a warning message to inform users that the debug container's capabilities granted by debugging profile may not work as expected if a non-root user is specified in target Pod's `.Spec.SecurityContext.RunAsUser` field. ([#127696](https://github.com/kubernetes/kubernetes/pull/127696), [@mochizuki875](https://github.com/mochizuki875)) [SIG CLI and Testing] +- The `SeparateCacheWatchRPC` feature gate is deprecated and disabled by default. ([#129929](https://github.com/kubernetes/kubernetes/pull/129929), [@serathius](https://github.com/serathius)) [SIG API Machinery] +- Renamed coredns metrics, see https://github.com/coredns/coredns/blob/v1.11.0/plugin/forward/README.md#metrics. ([#129175](https://github.com/kubernetes/kubernetes/pull/129175), [@DamianSawicki](https://github.com/DamianSawicki)) [SIG Cloud Provider] +- Updated CNI plugins to `v1.6.2`. ([#129776](https://github.com/kubernetes/kubernetes/pull/129776), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing] +- Updated cri-tools to `v1.32.0`. ([#129116](https://github.com/kubernetes/kubernetes/pull/129116), [@saschagrunert](https://github.com/saschagrunert)) +- Updated the etcd client library to `v3.5.21` ([#131103](https://github.com/kubernetes/kubernetes/pull/131103), [@ahrtr](https://github.com/ahrtr)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node and Storage] - kube-apiserver disables the beta WatchList feature by default in 1.33 in favor of the `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` features.kube-controller-manager no longer opts into enabling the WatchListClient feature in 1.33. ([#131359](https://github.com/kubernetes/kubernetes/pull/131359), [@deads2k](https://github.com/deads2k)) [SIG API Machinery] \ No newline at end of file diff --git a/releases/release-1.33/release-notes/sessions/maps-1739546172.json b/releases/release-1.33/release-notes/sessions/maps-1739546172.json index e15a5c52b4e..c376d510b3d 100644 --- a/releases/release-1.33/release-notes/sessions/maps-1739546172.json +++ b/releases/release-1.33/release-notes/sessions/maps-1739546172.json @@ -1,331 +1,331 @@ -{ - "mail": "rayandas91@gmail.com", - "name": "Rayan Das", - "date": 1739546172, - "prs": [ - { - "nr": 129656, - "hash": "9d23a0bf26813baecc3b287930f3b610a0c30e0a" - }, - { - "nr": 128950, - "hash": "eb06b6aa1a3a3a92458d8805130bda5bc789b49d" - }, - { - "nr": 129207, - "hash": "d0977b3277003644515a1a4bec0cd181e07287e5" - }, - { - "nr": 128886, - "hash": "c3081c4638367b40a5d065903759c3f746ee389c" - }, - { - "nr": 129028, - "hash": "5ef514f693d166398d32bcc0701f75c73032ae3e" - }, - { - "nr": 128926, - "hash": "214aec3475310f1b4320a58b7296e10fca3d3811" - }, - { - "nr": 128929, - "hash": "19039846103240196333527809ecf6eece885d26" - }, - { - "nr": 129500, - "hash": "9384e309b6a8bf320b5646f7cdaf72db987bdcd9" - }, - { - "nr": 129017, - "hash": "a76bea0bbe8aafbbc30d06d90067e2d90303fe18" - }, - { - "nr": 129119, - "hash": "92985ad298fd9cff127c28bbb3209784a4677e20" - }, - { - "nr": 128810, - "hash": "d4ee0cbd1e167a6327e3b016fd528cdbb5775b46" - }, - { - "nr": 128989, - "hash": "96f5692fe69b9bf860973afbab5f08145f1b3115" - }, - { - "nr": 128850, - "hash": "ca7fa0be41f0cff975a0752d17167fe57e6a102d" - }, - { - "nr": 129506, - "hash": "62c8f1039aeec6d81678032c7fb1f032ccc49434" - }, - { - "nr": 125901, - "hash": "dc30b3192ecae98d425c1c9e679762b46642ed1b" - }, - { - "nr": 128818, - "hash": "cd3463799356b02e8faad74ee811b8b1d9ca1e16" - }, - { - "nr": 129232, - "hash": "58257ff910db4f3f6d3642ce25d2ee08c1b80b39" - }, - { - "nr": 129186, - "hash": "f66e6df310027fa145c5cf95fb7f8453e667d2d7" - }, - { - "nr": 129023, - "hash": "bb67734d0e4927ba86b99b246506ea518c086839" - }, - { - "nr": 129450, - "hash": "2f8748086d160d499ed506daaf1fdfb2c148d2c9" - }, - { - "nr": 129591, - "hash": "906a108819857f2295b01a4f74c3d94d413b4d11" - }, - { - "nr": 129594, - "hash": "cad45ed7870c70b7891c2c85297344703179747d" - }, - { - "nr": 129418, - "hash": "04b94cd6665816cf7b52dd6b0edfc40c357bbbc4" - }, - { - "nr": 129661, - "hash": "736e153f0dd06443248732012ea6486f4b8f0813" - }, - { - "nr": 129257, - "hash": "6fd6805e0b586a9177858794a5ff26eff116828d" - }, - { - "nr": 129072, - "hash": "88361e3c91a7053936e1c326bbd4a8695433c40d" - }, - { - "nr": 129486, - "hash": "c1b81aeeb515f5bb3466aad413d1188ea37bb0e8" - }, - { - "nr": 129568, - "hash": "bae88f0ec48e27c2048422dbca7725ed03b63e45" - }, - { - "nr": 127709, - "hash": "89ffc9f4630a2e56d0b717f1c238d1fa1b539f83" - }, - { - "nr": 129635, - "hash": "044530fd43cc0e4f0c1ab58907c596668f68f625" - }, - { - "nr": 129731, - "hash": "3f3d716cc700497f980841ea3bfb351afa4cfea0" - }, - { - "nr": 129816, - "hash": "84fa105271b4ea09fdc44bd072d027482e3dd304" - }, - { - "nr": 128546, - "hash": "adfe7736e3cfa7f6763cd110845b49fb5b8b3643" - }, - { - "nr": 129279, - "hash": "a263600a7b35f95571d0bfc1e85ca18120f7daf7" - }, - { - "nr": 129131, - "hash": "0fa5b573507284450042f4bb2b1d4e245d38e534" - }, - { - "nr": 129175, - "hash": "aef3a41ab54ea721814d45dcdd03d32ec9c8f0b4" - }, - { - "nr": 129151, - "hash": "0090cde9d29c4dbc64f8e1491a276f65382f9454" - }, - { - "nr": 128985, - "hash": "890aa1c30429d48f2e13aa3c43a1d15bad46adb4" - }, - { - "nr": 129620, - "hash": "7ee79e96734fde82091ef3a8ae022d1552fef22e" - }, - { - "nr": 129844, - "hash": "d4ff03a78af011a9d98ef90cd8df32d1cbb7b062" - }, - { - "nr": 129776, - "hash": "bfc68c057ec92fb4f6788b6f00f393e1657d14bd" - }, - { - "nr": 129301, - "hash": "b29bd36925c1608cace140071d83abf4a28a603d" - }, - { - "nr": 128811, - "hash": "88e630814cbeb055f0b0c02fd4298241b6400bcc" - }, - { - "nr": 129116, - "hash": "df53ae24534f6f77c8230f2d5d0ed00cd615ab61" - }, - { - "nr": 128212, - "hash": "ba25e332401d9884ac22d2f15e955e38e2e98698" - }, - { - "nr": 128662, - "hash": "e1eca1635b1c7a184baaa7494c41d372c7d0a832" - }, - { - "nr": 129422, - "hash": "f0e3731bf36dcfa092a57c829edd123890ae78a4" - }, - { - "nr": 128856, - "hash": "fadefad09154c419b0edaf43bb4b56b497e2c73e" - }, - { - "nr": 129560, - "hash": "1f29245ea1fcfd595c047cfd00c72ef615d2936e" - }, - { - "nr": 129670, - "hash": "857695601f289d0fd6c7a83bb727ee4aeabe78bc" - }, - { - "nr": 129644, - "hash": "e8c5dc3b954ad0351e7d55c5c828517cedbe7d0e" - }, - { - "nr": 129452, - "hash": "0bf2440d3ae4b0bf07eb87674456a529ab48b195" - }, - { - "nr": 129823, - "hash": "4a9ef46da3300dc78fd610f4a9dae5d80d5f4d79" - }, - { - "nr": 129317, - "hash": "154b2661c9791afd57f558f7601221112f751edc" - }, - { - "nr": 129174, - "hash": "7b7f5b2d7c07d020ab631748ad58de61ddb68a29" - }, - { - "nr": 129106, - "hash": "bfb6ee436078a595136c585f67d4b2b5b0872d05" - }, - { - "nr": 128906, - "hash": "d1f7e789498023a2e26106b4f3090d5212ed5f11" - }, - { - "nr": 128621, - "hash": "7c9c14c2cd878bed3d5928bbe465a76e76ec35b5" - }, - { - "nr": 129658, - "hash": "511ba8a4864cc1a09e09a20615e4a2821725d38a" - }, - { - "nr": 129589, - "hash": "c28f5ab4c0d6e3d8a8e23f2827532754164ea446" - }, - { - "nr": 129543, - "hash": "990e891e00cb4863efc3ecde67d4fefef5e96273" - }, - { - "nr": 129173, - "hash": "b4943d099505665feabc28b407ae24c4d41fcde9" - }, - { - "nr": 129545, - "hash": "db7647ef48833841f496054161d7d7bfc1b08a3b" - }, - { - "nr": 129630, - "hash": "6ff73ff0c0fe8d1a926a714705559d08c7906ea7" - }, - { - "nr": 129401, - "hash": "c67dede235905e4bc125afb24d68663aef173281" - }, - { - "nr": 128086, - "hash": "41c4057d5ccc0586e2800c7b72eb5ecb16b36f40" - }, - { - "nr": 127193, - "hash": "d27fc143071c1c3dd23e49a8cfac34e90ac784b6" - }, - { - "nr": 129006, - "hash": "140ac1c5323bd4cbd3d2d8f88fcb749f66e8afde" - }, - { - "nr": 127897, - "hash": "9108576bf8d9af310fef1396e6986b0458f7aee2" - }, - { - "nr": 129271, - "hash": "2b17d32ae788cd1a675289e4a7d38a13ffc1846d" - }, - { - "nr": 127375, - "hash": "c8660783bfe6d98657e1f12717a965870d02605f" - }, - { - "nr": 129457, - "hash": "45db8a7fc289893efc7e33f8579d0fdfa7a7dff5" - }, - { - "nr": 129278, - "hash": "247acd1f9ed35fbd0c74ba987958c4d15cb2e953" - }, - { - "nr": 129170, - "hash": "44b23c05c679b3468a5b9633c88bc2dcd871e403" - }, - { - "nr": 129962, - "hash": "1bd0567b83a2c03acb7c6ec8df9d1fdf5e644ed3" - }, - { - "nr": 128971, - "hash": "7bd2f3cea451ea09976ee1d355142dc069aa3702" - }, - { - "nr": 129297, - "hash": "e322df2b3a0964581b69d8e6b552215c256a3e33" - }, - { - "nr": 129859, - "hash": "534b73336d964385c7fe6184be3948de03f1afa6" - }, - { - "nr": 129692, - "hash": "14ed14f1837cca92ec7ab1ee84d17c1458f889c4" - }, - { - "nr": 128972, - "hash": "bff56bd2ceda3a088984c969312d4e7cda0049f6" - }, - { - "nr": 129142, - "hash": "51dbe8f402b86df81dd6a455854f0f294e13dff6" - } - ] +{ + "mail": "rayandas91@gmail.com", + "name": "Rayan Das", + "date": 1739546172, + "prs": [ + { + "nr": 129656, + "hash": "9d23a0bf26813baecc3b287930f3b610a0c30e0a" + }, + { + "nr": 128950, + "hash": "eb06b6aa1a3a3a92458d8805130bda5bc789b49d" + }, + { + "nr": 129207, + "hash": "d0977b3277003644515a1a4bec0cd181e07287e5" + }, + { + "nr": 128886, + "hash": "c3081c4638367b40a5d065903759c3f746ee389c" + }, + { + "nr": 129028, + "hash": "5ef514f693d166398d32bcc0701f75c73032ae3e" + }, + { + "nr": 128926, + "hash": "214aec3475310f1b4320a58b7296e10fca3d3811" + }, + { + "nr": 128929, + "hash": "19039846103240196333527809ecf6eece885d26" + }, + { + "nr": 129500, + "hash": "9384e309b6a8bf320b5646f7cdaf72db987bdcd9" + }, + { + "nr": 129017, + "hash": "a76bea0bbe8aafbbc30d06d90067e2d90303fe18" + }, + { + "nr": 129119, + "hash": "92985ad298fd9cff127c28bbb3209784a4677e20" + }, + { + "nr": 128810, + "hash": "d4ee0cbd1e167a6327e3b016fd528cdbb5775b46" + }, + { + "nr": 128989, + "hash": "96f5692fe69b9bf860973afbab5f08145f1b3115" + }, + { + "nr": 128850, + "hash": "ca7fa0be41f0cff975a0752d17167fe57e6a102d" + }, + { + "nr": 129506, + "hash": "62c8f1039aeec6d81678032c7fb1f032ccc49434" + }, + { + "nr": 125901, + "hash": "dc30b3192ecae98d425c1c9e679762b46642ed1b" + }, + { + "nr": 128818, + "hash": "cd3463799356b02e8faad74ee811b8b1d9ca1e16" + }, + { + "nr": 129232, + "hash": "58257ff910db4f3f6d3642ce25d2ee08c1b80b39" + }, + { + "nr": 129186, + "hash": "f66e6df310027fa145c5cf95fb7f8453e667d2d7" + }, + { + "nr": 129023, + "hash": "bb67734d0e4927ba86b99b246506ea518c086839" + }, + { + "nr": 129450, + "hash": "2f8748086d160d499ed506daaf1fdfb2c148d2c9" + }, + { + "nr": 129591, + "hash": "906a108819857f2295b01a4f74c3d94d413b4d11" + }, + { + "nr": 129594, + "hash": "cad45ed7870c70b7891c2c85297344703179747d" + }, + { + "nr": 129418, + "hash": "04b94cd6665816cf7b52dd6b0edfc40c357bbbc4" + }, + { + "nr": 129661, + "hash": "736e153f0dd06443248732012ea6486f4b8f0813" + }, + { + "nr": 129257, + "hash": "6fd6805e0b586a9177858794a5ff26eff116828d" + }, + { + "nr": 129072, + "hash": "88361e3c91a7053936e1c326bbd4a8695433c40d" + }, + { + "nr": 129486, + "hash": "c1b81aeeb515f5bb3466aad413d1188ea37bb0e8" + }, + { + "nr": 129568, + "hash": "bae88f0ec48e27c2048422dbca7725ed03b63e45" + }, + { + "nr": 127709, + "hash": "89ffc9f4630a2e56d0b717f1c238d1fa1b539f83" + }, + { + "nr": 129635, + "hash": "044530fd43cc0e4f0c1ab58907c596668f68f625" + }, + { + "nr": 129731, + "hash": "3f3d716cc700497f980841ea3bfb351afa4cfea0" + }, + { + "nr": 129816, + "hash": "84fa105271b4ea09fdc44bd072d027482e3dd304" + }, + { + "nr": 128546, + "hash": "adfe7736e3cfa7f6763cd110845b49fb5b8b3643" + }, + { + "nr": 129279, + "hash": "a263600a7b35f95571d0bfc1e85ca18120f7daf7" + }, + { + "nr": 129131, + "hash": "0fa5b573507284450042f4bb2b1d4e245d38e534" + }, + { + "nr": 129175, + "hash": "aef3a41ab54ea721814d45dcdd03d32ec9c8f0b4" + }, + { + "nr": 129151, + "hash": "0090cde9d29c4dbc64f8e1491a276f65382f9454" + }, + { + "nr": 128985, + "hash": "890aa1c30429d48f2e13aa3c43a1d15bad46adb4" + }, + { + "nr": 129620, + "hash": "7ee79e96734fde82091ef3a8ae022d1552fef22e" + }, + { + "nr": 129844, + "hash": "d4ff03a78af011a9d98ef90cd8df32d1cbb7b062" + }, + { + "nr": 129776, + "hash": "bfc68c057ec92fb4f6788b6f00f393e1657d14bd" + }, + { + "nr": 129301, + "hash": "b29bd36925c1608cace140071d83abf4a28a603d" + }, + { + "nr": 128811, + "hash": "88e630814cbeb055f0b0c02fd4298241b6400bcc" + }, + { + "nr": 129116, + "hash": "df53ae24534f6f77c8230f2d5d0ed00cd615ab61" + }, + { + "nr": 128212, + "hash": "ba25e332401d9884ac22d2f15e955e38e2e98698" + }, + { + "nr": 128662, + "hash": "e1eca1635b1c7a184baaa7494c41d372c7d0a832" + }, + { + "nr": 129422, + "hash": "f0e3731bf36dcfa092a57c829edd123890ae78a4" + }, + { + "nr": 128856, + "hash": "fadefad09154c419b0edaf43bb4b56b497e2c73e" + }, + { + "nr": 129560, + "hash": "1f29245ea1fcfd595c047cfd00c72ef615d2936e" + }, + { + "nr": 129670, + "hash": "857695601f289d0fd6c7a83bb727ee4aeabe78bc" + }, + { + "nr": 129644, + "hash": "e8c5dc3b954ad0351e7d55c5c828517cedbe7d0e" + }, + { + "nr": 129452, + "hash": "0bf2440d3ae4b0bf07eb87674456a529ab48b195" + }, + { + "nr": 129823, + "hash": "4a9ef46da3300dc78fd610f4a9dae5d80d5f4d79" + }, + { + "nr": 129317, + "hash": "154b2661c9791afd57f558f7601221112f751edc" + }, + { + "nr": 129174, + "hash": "7b7f5b2d7c07d020ab631748ad58de61ddb68a29" + }, + { + "nr": 129106, + "hash": "bfb6ee436078a595136c585f67d4b2b5b0872d05" + }, + { + "nr": 128906, + "hash": "d1f7e789498023a2e26106b4f3090d5212ed5f11" + }, + { + "nr": 128621, + "hash": "7c9c14c2cd878bed3d5928bbe465a76e76ec35b5" + }, + { + "nr": 129658, + "hash": "511ba8a4864cc1a09e09a20615e4a2821725d38a" + }, + { + "nr": 129589, + "hash": "c28f5ab4c0d6e3d8a8e23f2827532754164ea446" + }, + { + "nr": 129543, + "hash": "990e891e00cb4863efc3ecde67d4fefef5e96273" + }, + { + "nr": 129173, + "hash": "b4943d099505665feabc28b407ae24c4d41fcde9" + }, + { + "nr": 129545, + "hash": "db7647ef48833841f496054161d7d7bfc1b08a3b" + }, + { + "nr": 129630, + "hash": "6ff73ff0c0fe8d1a926a714705559d08c7906ea7" + }, + { + "nr": 129401, + "hash": "c67dede235905e4bc125afb24d68663aef173281" + }, + { + "nr": 128086, + "hash": "41c4057d5ccc0586e2800c7b72eb5ecb16b36f40" + }, + { + "nr": 127193, + "hash": "d27fc143071c1c3dd23e49a8cfac34e90ac784b6" + }, + { + "nr": 129006, + "hash": "140ac1c5323bd4cbd3d2d8f88fcb749f66e8afde" + }, + { + "nr": 127897, + "hash": "9108576bf8d9af310fef1396e6986b0458f7aee2" + }, + { + "nr": 129271, + "hash": "2b17d32ae788cd1a675289e4a7d38a13ffc1846d" + }, + { + "nr": 127375, + "hash": "c8660783bfe6d98657e1f12717a965870d02605f" + }, + { + "nr": 129457, + "hash": "45db8a7fc289893efc7e33f8579d0fdfa7a7dff5" + }, + { + "nr": 129278, + "hash": "247acd1f9ed35fbd0c74ba987958c4d15cb2e953" + }, + { + "nr": 129170, + "hash": "44b23c05c679b3468a5b9633c88bc2dcd871e403" + }, + { + "nr": 129962, + "hash": "1bd0567b83a2c03acb7c6ec8df9d1fdf5e644ed3" + }, + { + "nr": 128971, + "hash": "7bd2f3cea451ea09976ee1d355142dc069aa3702" + }, + { + "nr": 129297, + "hash": "e322df2b3a0964581b69d8e6b552215c256a3e33" + }, + { + "nr": 129859, + "hash": "534b73336d964385c7fe6184be3948de03f1afa6" + }, + { + "nr": 129692, + "hash": "14ed14f1837cca92ec7ab1ee84d17c1458f889c4" + }, + { + "nr": 128972, + "hash": "bff56bd2ceda3a088984c969312d4e7cda0049f6" + }, + { + "nr": 129142, + "hash": "51dbe8f402b86df81dd6a455854f0f294e13dff6" + } + ] } \ No newline at end of file diff --git a/releases/release-1.33/release-notes/sessions/maps-1740367440.json b/releases/release-1.33/release-notes/sessions/maps-1740367440.json index dbc6ae1fb69..47ce9f8ea69 100644 --- a/releases/release-1.33/release-notes/sessions/maps-1740367440.json +++ b/releases/release-1.33/release-notes/sessions/maps-1740367440.json @@ -1,103 +1,103 @@ -{ - "mail": "aruparekh@gmail.com", - "name": "ArvindParekh", - "date": 1740367440, - "prs": [ - { - "nr": 130023, - "hash": "afb5bdcdda039583545df07421becec7b404994f" - }, - { - "nr": 129933, - "hash": "90683de5da15b95378e75366ffd9f424b6e0bd0d" - }, - { - "nr": 129993, - "hash": "1976fbeb39f977e2946f6f5762654ef61891449c" - }, - { - "nr": 130040, - "hash": "ca7067b2c08df6f5f2d05d368f340e2b92b9ae43" - }, - { - "nr": 130074, - "hash": "f63602fad519122f074b4ca65e44b310c000c149" - }, - { - "nr": 129934, - "hash": "18def36d1f513cf7d8bbf23041ec2a5be3053708" - }, - { - "nr": 128991, - "hash": "f49907cb1ae23a1caa645e280c17ec712f31a1d3" - }, - { - "nr": 130200, - "hash": "569e94f4486c0e9e50a03af74c2d881d8f49747d" - }, - { - "nr": 129996, - "hash": "bacd11bef941d367faa9f713e9ae1c1412422c72" - }, - { - "nr": 129929, - "hash": "7a4deb331b4b4ad1d4192f1b551061bcc78d3513" - }, - { - "nr": 125230, - "hash": "c25721cf368266e7e5363a44ba655efa69b2c270" - }, - { - "nr": 129956, - "hash": "30b909b58f3f6b114fd6f6c296e4f21b3a95e0dd" - }, - { - "nr": 127525, - "hash": "1a94c89a82f1fe28dfcc549fab4de48c8665a42d" - }, - { - "nr": 130204, - "hash": "8c7ed193b0fda658855c6c391ed3b9fd7b25f4d3" - }, - { - "nr": 130037, - "hash": "1e4a7b8f3d5ddde06177b81f54a306223bba6c64" - }, - { - "nr": 130058, - "hash": "18a3d76d4fb35ade72f1f36eca99f330f43c90f0" - }, - { - "nr": 130113, - "hash": "d4130ce0e1536f5408ae28b98d8da825b6961d5d" - }, - { - "nr": 128367, - "hash": "6cbb886ff3dd1ee8088dec2c6a477868c21a0fcf" - }, - { - "nr": 129653, - "hash": "c1ea965a02c6afa3fbc810cc949130900e08384d" - }, - { - "nr": 130045, - "hash": "4f96906e5c8320dd2231d01a69b9247f8f74f1df" - }, - { - "nr": 130017, - "hash": "3cc7196c0b30589e0fd2921ff6f01b6bbb1cbe6c" - }, - { - "nr": 129368, - "hash": "ac57d0ab5da5b77fb416afb026172d196c282742" - }, - { - "nr": 130032, - "hash": "ac0c5edbbf5a10967e67e60af1e2ee9fe279b33c" - }, - { - "nr": 129930, - "hash": "31f027de6205109b9edb8bb5fc9e1486962e1436" - } - ] +{ + "mail": "aruparekh@gmail.com", + "name": "ArvindParekh", + "date": 1740367440, + "prs": [ + { + "nr": 130023, + "hash": "afb5bdcdda039583545df07421becec7b404994f" + }, + { + "nr": 129933, + "hash": "90683de5da15b95378e75366ffd9f424b6e0bd0d" + }, + { + "nr": 129993, + "hash": "1976fbeb39f977e2946f6f5762654ef61891449c" + }, + { + "nr": 130040, + "hash": "ca7067b2c08df6f5f2d05d368f340e2b92b9ae43" + }, + { + "nr": 130074, + "hash": "f63602fad519122f074b4ca65e44b310c000c149" + }, + { + "nr": 129934, + "hash": "18def36d1f513cf7d8bbf23041ec2a5be3053708" + }, + { + "nr": 128991, + "hash": "f49907cb1ae23a1caa645e280c17ec712f31a1d3" + }, + { + "nr": 130200, + "hash": "569e94f4486c0e9e50a03af74c2d881d8f49747d" + }, + { + "nr": 129996, + "hash": "bacd11bef941d367faa9f713e9ae1c1412422c72" + }, + { + "nr": 129929, + "hash": "7a4deb331b4b4ad1d4192f1b551061bcc78d3513" + }, + { + "nr": 125230, + "hash": "c25721cf368266e7e5363a44ba655efa69b2c270" + }, + { + "nr": 129956, + "hash": "30b909b58f3f6b114fd6f6c296e4f21b3a95e0dd" + }, + { + "nr": 127525, + "hash": "1a94c89a82f1fe28dfcc549fab4de48c8665a42d" + }, + { + "nr": 130204, + "hash": "8c7ed193b0fda658855c6c391ed3b9fd7b25f4d3" + }, + { + "nr": 130037, + "hash": "1e4a7b8f3d5ddde06177b81f54a306223bba6c64" + }, + { + "nr": 130058, + "hash": "18a3d76d4fb35ade72f1f36eca99f330f43c90f0" + }, + { + "nr": 130113, + "hash": "d4130ce0e1536f5408ae28b98d8da825b6961d5d" + }, + { + "nr": 128367, + "hash": "6cbb886ff3dd1ee8088dec2c6a477868c21a0fcf" + }, + { + "nr": 129653, + "hash": "c1ea965a02c6afa3fbc810cc949130900e08384d" + }, + { + "nr": 130045, + "hash": "4f96906e5c8320dd2231d01a69b9247f8f74f1df" + }, + { + "nr": 130017, + "hash": "3cc7196c0b30589e0fd2921ff6f01b6bbb1cbe6c" + }, + { + "nr": 129368, + "hash": "ac57d0ab5da5b77fb416afb026172d196c282742" + }, + { + "nr": 130032, + "hash": "ac0c5edbbf5a10967e67e60af1e2ee9fe279b33c" + }, + { + "nr": 129930, + "hash": "31f027de6205109b9edb8bb5fc9e1486962e1436" + } + ] } \ No newline at end of file diff --git a/releases/release-1.33/release-notes/sessions/maps-1741475931.json b/releases/release-1.33/release-notes/sessions/maps-1741475931.json index a0afb8df30d..6b26bdc103e 100644 --- a/releases/release-1.33/release-notes/sessions/maps-1741475931.json +++ b/releases/release-1.33/release-notes/sessions/maps-1741475931.json @@ -1,183 +1,183 @@ -{ - "mail": "michellengnx@gmail.com", - "name": "michellengnx", - "date": 1741475931, - "prs": [ - { - "nr": 129887, - "hash": "c7f31fde3f845485394cb1488462d177a7b0bcb2" - }, - { - "nr": 129334, - "hash": "abbcb01fd3659a783c15b26907157ad4440b3065" - }, - { - "nr": 130256, - "hash": "2975ea9ac3b78a482f26932e250f9c0a0e492fb2" - }, - { - "nr": 130345, - "hash": "33da39dff3a7ba72990d58295e7e5ba90f65bd95" - }, - { - "nr": 129790, - "hash": "dbbcfd0770563dfae3c443148f8fc92e816616ea" - }, - { - "nr": 129375, - "hash": "ab7fd26cb187ee60cdd4a74bc0741f311c9a61ae" - }, - { - "nr": 130181, - "hash": "deb49e5ad750c55a4a06c0c1e40fb6bf0c598620" - }, - { - "nr": 128987, - "hash": "2f5fdc7c77d697d8262c02c33d30d374d043e028" - }, - { - "nr": 130405, - "hash": "36592c7a7caa7ace99ac12a9456da05bfb0d224f" - }, - { - "nr": 130348, - "hash": "a6d08bae99a6769053da960d9dafe38d49bc7d46" - }, - { - "nr": 130098, - "hash": "f790f19ff7bc79f515e8c5484d7942b3e5f9d891" - }, - { - "nr": 129219, - "hash": "f06f60c0d13b7117fc8e5265333637d5ce209f75" - }, - { - "nr": 130394, - "hash": "fa46a36751cb742f93ec32f501fc00fadab0684d" - }, - { - "nr": 130162, - "hash": "5e72751fe51f2920d2e26ebfdfa187454bef27c4" - }, - { - "nr": 130061, - "hash": "f2eca567773d9d57d1f58c54fdfe613a7a88c462" - }, - { - "nr": 130398, - "hash": "dc0759da9dafd605398a528d92c2601bec27482a" - }, - { - "nr": 129498, - "hash": "31e47e3843efd5eb0301200ba4876675bb152fb9" - }, - { - "nr": 130424, - "hash": "3697476d5c7b32522a879ed97b62983243edefbb" - }, - { - "nr": 130328, - "hash": "5399763508c6167f44737ef6a7da1a819ca727c1" - }, - { - "nr": 129370, - "hash": "952fb35bfd61531fb9ef256279888b79717f0cac" - }, - { - "nr": 130047, - "hash": "14a4a49f65897cb19d08d3affe5895d6bda4330c" - }, - { - "nr": 130401, - "hash": "45c96548d46a80a66ed37171e43052a4d2a4832a" - }, - { - "nr": 129770, - "hash": "671c76b7bd0f176bc05a2b2ed10c9c1d22863bb4" - }, - { - "nr": 122646, - "hash": "432dfd04a8857a00ba08b2b0d05afecc45436159" - }, - { - "nr": 130202, - "hash": "1ed17ffcee4118aaf8db03622ccf64f90fad6f2d" - }, - { - "nr": 130291, - "hash": "38de05f6e26a381151b730a0395eec357197013c" - }, - { - "nr": 130060, - "hash": "a0c3fb9151b7579302f638192b860e274d347b73" - }, - { - "nr": 129307, - "hash": "cea84a9e2212cc006864c853057e05071a30fbd8" - }, - { - "nr": 129497, - "hash": "9ecc4c3c4d813af4b51b9cf8266cfe7d753deb30" - }, - { - "nr": 130116, - "hash": "09fe5c69c57bed3107d9735bc49e67ccfbe095fd" - }, - { - "nr": 130329, - "hash": "e6171530c6d56c05d54aa98f88f6b2221a273621" - }, - { - "nr": 129688, - "hash": "b707ace711249932905dc54f936b2c58858a8e3d" - }, - { - "nr": 127577, - "hash": "3b83b073acccb6bc77bad0a67327ab49b56f1b73" - }, - { - "nr": 130013, - "hash": "19f90d43c3a952cd0e4a9b408e8e358bdd5bd6a1" - }, - { - "nr": 129583, - "hash": "db39e9f730552aed80cf6c6c8bf8a203206a826b" - }, - { - "nr": 129946, - "hash": "651d2db7d0de0ae79c4543d46f4e178c3641c39e" - }, - { - "nr": 130035, - "hash": "82a91765d33999054a88d4d56e9461e7b82601ae" - }, - { - "nr": 130238, - "hash": "954e3634bc4c59580c379d2cc5fe7fc3c87815b4" - }, - { - "nr": 130128, - "hash": "88f31142125b38d12acf2c52876d2f30f9453543" - }, - { - "nr": 130183, - "hash": "25037b21fdabd6f5e82ba19ea1ece48862ffe5fa" - }, - { - "nr": 130484, - "hash": "45ca1827185a6c71797a438cf2fd3ec0a47161f5" - }, - { - "nr": 130450, - "hash": "c6d485f7f260e79bd1f8c36f5dfd96f20f2dfb50" - }, - { - "nr": 130101, - "hash": "7abae0fb9ad5ab291841ab5678e4e52e9a17df25" - }, - { - "nr": 130032, - "hash": "e9612d9bf3786908508c075bb43cfc7bd1ed785e" - } - ] +{ + "mail": "michellengnx@gmail.com", + "name": "michellengnx", + "date": 1741475931, + "prs": [ + { + "nr": 129887, + "hash": "c7f31fde3f845485394cb1488462d177a7b0bcb2" + }, + { + "nr": 129334, + "hash": "abbcb01fd3659a783c15b26907157ad4440b3065" + }, + { + "nr": 130256, + "hash": "2975ea9ac3b78a482f26932e250f9c0a0e492fb2" + }, + { + "nr": 130345, + "hash": "33da39dff3a7ba72990d58295e7e5ba90f65bd95" + }, + { + "nr": 129790, + "hash": "dbbcfd0770563dfae3c443148f8fc92e816616ea" + }, + { + "nr": 129375, + "hash": "ab7fd26cb187ee60cdd4a74bc0741f311c9a61ae" + }, + { + "nr": 130181, + "hash": "deb49e5ad750c55a4a06c0c1e40fb6bf0c598620" + }, + { + "nr": 128987, + "hash": "2f5fdc7c77d697d8262c02c33d30d374d043e028" + }, + { + "nr": 130405, + "hash": "36592c7a7caa7ace99ac12a9456da05bfb0d224f" + }, + { + "nr": 130348, + "hash": "a6d08bae99a6769053da960d9dafe38d49bc7d46" + }, + { + "nr": 130098, + "hash": "f790f19ff7bc79f515e8c5484d7942b3e5f9d891" + }, + { + "nr": 129219, + "hash": "f06f60c0d13b7117fc8e5265333637d5ce209f75" + }, + { + "nr": 130394, + "hash": "fa46a36751cb742f93ec32f501fc00fadab0684d" + }, + { + "nr": 130162, + "hash": "5e72751fe51f2920d2e26ebfdfa187454bef27c4" + }, + { + "nr": 130061, + "hash": "f2eca567773d9d57d1f58c54fdfe613a7a88c462" + }, + { + "nr": 130398, + "hash": "dc0759da9dafd605398a528d92c2601bec27482a" + }, + { + "nr": 129498, + "hash": "31e47e3843efd5eb0301200ba4876675bb152fb9" + }, + { + "nr": 130424, + "hash": "3697476d5c7b32522a879ed97b62983243edefbb" + }, + { + "nr": 130328, + "hash": "5399763508c6167f44737ef6a7da1a819ca727c1" + }, + { + "nr": 129370, + "hash": "952fb35bfd61531fb9ef256279888b79717f0cac" + }, + { + "nr": 130047, + "hash": "14a4a49f65897cb19d08d3affe5895d6bda4330c" + }, + { + "nr": 130401, + "hash": "45c96548d46a80a66ed37171e43052a4d2a4832a" + }, + { + "nr": 129770, + "hash": "671c76b7bd0f176bc05a2b2ed10c9c1d22863bb4" + }, + { + "nr": 122646, + "hash": "432dfd04a8857a00ba08b2b0d05afecc45436159" + }, + { + "nr": 130202, + "hash": "1ed17ffcee4118aaf8db03622ccf64f90fad6f2d" + }, + { + "nr": 130291, + "hash": "38de05f6e26a381151b730a0395eec357197013c" + }, + { + "nr": 130060, + "hash": "a0c3fb9151b7579302f638192b860e274d347b73" + }, + { + "nr": 129307, + "hash": "cea84a9e2212cc006864c853057e05071a30fbd8" + }, + { + "nr": 129497, + "hash": "9ecc4c3c4d813af4b51b9cf8266cfe7d753deb30" + }, + { + "nr": 130116, + "hash": "09fe5c69c57bed3107d9735bc49e67ccfbe095fd" + }, + { + "nr": 130329, + "hash": "e6171530c6d56c05d54aa98f88f6b2221a273621" + }, + { + "nr": 129688, + "hash": "b707ace711249932905dc54f936b2c58858a8e3d" + }, + { + "nr": 127577, + "hash": "3b83b073acccb6bc77bad0a67327ab49b56f1b73" + }, + { + "nr": 130013, + "hash": "19f90d43c3a952cd0e4a9b408e8e358bdd5bd6a1" + }, + { + "nr": 129583, + "hash": "db39e9f730552aed80cf6c6c8bf8a203206a826b" + }, + { + "nr": 129946, + "hash": "651d2db7d0de0ae79c4543d46f4e178c3641c39e" + }, + { + "nr": 130035, + "hash": "82a91765d33999054a88d4d56e9461e7b82601ae" + }, + { + "nr": 130238, + "hash": "954e3634bc4c59580c379d2cc5fe7fc3c87815b4" + }, + { + "nr": 130128, + "hash": "88f31142125b38d12acf2c52876d2f30f9453543" + }, + { + "nr": 130183, + "hash": "25037b21fdabd6f5e82ba19ea1ece48862ffe5fa" + }, + { + "nr": 130484, + "hash": "45ca1827185a6c71797a438cf2fd3ec0a47161f5" + }, + { + "nr": 130450, + "hash": "c6d485f7f260e79bd1f8c36f5dfd96f20f2dfb50" + }, + { + "nr": 130101, + "hash": "7abae0fb9ad5ab291841ab5678e4e52e9a17df25" + }, + { + "nr": 130032, + "hash": "e9612d9bf3786908508c075bb43cfc7bd1ed785e" + } + ] } \ No newline at end of file diff --git a/releases/release-1.33/release-notes/sessions/maps-1742231000.json b/releases/release-1.33/release-notes/sessions/maps-1742231000.json index 9de203d15ce..89f57a69cae 100644 --- a/releases/release-1.33/release-notes/sessions/maps-1742231000.json +++ b/releases/release-1.33/release-notes/sessions/maps-1742231000.json @@ -1,83 +1,83 @@ -{ - "mail": "rayandas91@gmail.com", - "name": "Rayan Das", - "date": 1742231000, - "prs": [ - { - "nr": 130243, - "hash": "491944ed2249a056ddf0eaaee5fb25982a083b98" - }, - { - "nr": 130485, - "hash": "18d9b9a80ec5f44d48c8fa32e989f4f68bbcb767" - }, - { - "nr": 130564, - "hash": "8419c8d9c2f14af3bf35287bc7a443c83ea0f5d1" - }, - { - "nr": 128586, - "hash": "21ea3ad49731154f4514b4d4f7124444d7f71457" - }, - { - "nr": 130352, - "hash": "96968be58f7b3ed711d6581fd615641d5f6c1c82" - }, - { - "nr": 130599, - "hash": "f8bb64d268dc72a7a050257f79de9e3488814cb8" - }, - { - "nr": 130651, - "hash": "7e81d13368a99dcebe4db572bc7a6e6c662015ac" - }, - { - "nr": 130559, - "hash": "bb68542a6141dde8a97dad8451c0c440276144a0" - }, - { - "nr": 130655, - "hash": "11b9a2e3969bb46876c6443a3d507f07258eff53" - }, - { - "nr": 130507, - "hash": "bf0bc1ae655532c5494fbe8a32bd4426ed8b6d71" - }, - { - "nr": 130260, - "hash": "407cc68941484921e27516a0b43417c12a997551" - }, - { - "nr": 130616, - "hash": "213b645bc693405f8008cad62f5c6ef99f569b66" - }, - { - "nr": 130475, - "hash": "90aecdc7adfeb350695c3725dde0aa4a3b787346" - }, - { - "nr": 130571, - "hash": "df4805bdb3a80b4250b11f40d32a134de07fae59" - }, - { - "nr": 129826, - "hash": "4fae03f885ee9c03cab4bee43363512c39c19b73" - }, - { - "nr": 130335, - "hash": "fc5ada7202f38ff2bf052ff4fe8ec7bcfb8184ff" - }, - { - "nr": 128786, - "hash": "18aa9d5716635c214359996df84fcd0aff1b32bb" - }, - { - "nr": 130666, - "hash": "5776fccaa3c539d48d1ed1e4e9f1d88ea855adea" - }, - { - "nr": 130537, - "hash": "d71a35eef3b6f9aa670ec2415ab3e781c14e845a" - } - ] +{ + "mail": "rayandas91@gmail.com", + "name": "Rayan Das", + "date": 1742231000, + "prs": [ + { + "nr": 130243, + "hash": "491944ed2249a056ddf0eaaee5fb25982a083b98" + }, + { + "nr": 130485, + "hash": "18d9b9a80ec5f44d48c8fa32e989f4f68bbcb767" + }, + { + "nr": 130564, + "hash": "8419c8d9c2f14af3bf35287bc7a443c83ea0f5d1" + }, + { + "nr": 128586, + "hash": "21ea3ad49731154f4514b4d4f7124444d7f71457" + }, + { + "nr": 130352, + "hash": "96968be58f7b3ed711d6581fd615641d5f6c1c82" + }, + { + "nr": 130599, + "hash": "f8bb64d268dc72a7a050257f79de9e3488814cb8" + }, + { + "nr": 130651, + "hash": "7e81d13368a99dcebe4db572bc7a6e6c662015ac" + }, + { + "nr": 130559, + "hash": "bb68542a6141dde8a97dad8451c0c440276144a0" + }, + { + "nr": 130655, + "hash": "11b9a2e3969bb46876c6443a3d507f07258eff53" + }, + { + "nr": 130507, + "hash": "bf0bc1ae655532c5494fbe8a32bd4426ed8b6d71" + }, + { + "nr": 130260, + "hash": "407cc68941484921e27516a0b43417c12a997551" + }, + { + "nr": 130616, + "hash": "213b645bc693405f8008cad62f5c6ef99f569b66" + }, + { + "nr": 130475, + "hash": "90aecdc7adfeb350695c3725dde0aa4a3b787346" + }, + { + "nr": 130571, + "hash": "df4805bdb3a80b4250b11f40d32a134de07fae59" + }, + { + "nr": 129826, + "hash": "4fae03f885ee9c03cab4bee43363512c39c19b73" + }, + { + "nr": 130335, + "hash": "fc5ada7202f38ff2bf052ff4fe8ec7bcfb8184ff" + }, + { + "nr": 128786, + "hash": "18aa9d5716635c214359996df84fcd0aff1b32bb" + }, + { + "nr": 130666, + "hash": "5776fccaa3c539d48d1ed1e4e9f1d88ea855adea" + }, + { + "nr": 130537, + "hash": "d71a35eef3b6f9aa670ec2415ab3e781c14e845a" + } + ] } \ No newline at end of file diff --git a/releases/release-1.33/release-notes/sessions/maps-1744197681.json b/releases/release-1.33/release-notes/sessions/maps-1744197681.json index 7b692f9238e..7a5ecde460a 100644 --- a/releases/release-1.33/release-notes/sessions/maps-1744197681.json +++ b/releases/release-1.33/release-notes/sessions/maps-1744197681.json @@ -1,1031 +1,1031 @@ -{ - "mail": "akintayoshedrack@gmail.com", - "name": "hacktivist123", - "date": 1744197681, - "prs": [ - { - "nr": 130019, - "hash": "f0079d503320ee2314bfc5227f3f3bb24b9cf4b7" - }, - { - "nr": 128372, - "hash": "a3727232010728a7be46a7ebb0f7687ac9d3c2c3" - }, - { - "nr": 130450, - "hash": "c6d485f7f260e79bd1f8c36f5dfd96f20f2dfb50" - }, - { - "nr": 129934, - "hash": "18def36d1f513cf7d8bbf23041ec2a5be3053708" - }, - { - "nr": 129954, - "hash": "3d4b34f229792c3711751bbf8c8a8c78729e9485" - }, - { - "nr": 129923, - "hash": "333249bbfa90e6957408aa55a882a9982a2d3a6b" - }, - { - "nr": 127525, - "hash": "1a94c89a82f1fe28dfcc549fab4de48c8665a42d" - }, - { - "nr": 128989, - "hash": "96f5692fe69b9bf860973afbab5f08145f1b3115" - }, - { - "nr": 129560, - "hash": "1f29245ea1fcfd595c047cfd00c72ef615d2936e" - }, - { - "nr": 130028, - "hash": "c84306639bb017c8856d6e94056e1f25ed94ebec" - }, - { - "nr": 130116, - "hash": "09fe5c69c57bed3107d9735bc49e67ccfbe095fd" - }, - { - "nr": 130345, - "hash": "33da39dff3a7ba72990d58295e7e5ba90f65bd95" - }, - { - "nr": 129307, - "hash": "cea84a9e2212cc006864c853057e05071a30fbd8" - }, - { - "nr": 130202, - "hash": "1ed17ffcee4118aaf8db03622ccf64f90fad6f2d" - }, - { - "nr": 128886, - "hash": "c3081c4638367b40a5d065903759c3f746ee389c" - }, - { - "nr": 129023, - "hash": "bb67734d0e4927ba86b99b246506ea518c086839" - }, - { - "nr": 128086, - "hash": "41c4057d5ccc0586e2800c7b72eb5ecb16b36f40" - }, - { - "nr": 130733, - "hash": "7261d4ffe0b5a24db4a1ec329f9e822cf640be28" - }, - { - "nr": 128516, - "hash": "992f89e3836107ed5d77fc90f8cdfecfc161254a" - }, - { - "nr": 130401, - "hash": "45c96548d46a80a66ed37171e43052a4d2a4832a" - }, - { - "nr": 129334, - "hash": "abbcb01fd3659a783c15b26907157ad4440b3065" - }, - { - "nr": 128991, - "hash": "f49907cb1ae23a1caa645e280c17ec712f31a1d3" - }, - { - "nr": 128850, - "hash": "ca7fa0be41f0cff975a0752d17167fe57e6a102d" - }, - { - "nr": 130210, - "hash": "31690ce0281b699d6faef57b0f6b94a4b131ead1" - }, - { - "nr": 130728, - "hash": "1372c25c8c102b45f529a6d66edd8c699fdc7bce" - }, - { - "nr": 129887, - "hash": "c7f31fde3f845485394cb1488462d177a7b0bcb2" - }, - { - "nr": 130035, - "hash": "82a91765d33999054a88d4d56e9461e7b82601ae" - }, - { - "nr": 127709, - "hash": "89ffc9f4630a2e56d0b717f1c238d1fa1b539f83" - }, - { - "nr": 127375, - "hash": "c8660783bfe6d98657e1f12717a965870d02605f" - }, - { - "nr": 128950, - "hash": "eb06b6aa1a3a3a92458d8805130bda5bc789b49d" - }, - { - "nr": 130875, - "hash": "b6d736c2fff395e592cf6bb442f92715e41eaa8f" - }, - { - "nr": 129670, - "hash": "857695601f289d0fd6c7a83bb727ee4aeabe78bc" - }, - { - "nr": 128929, - "hash": "19039846103240196333527809ecf6eece885d26" - }, - { - "nr": 128662, - "hash": "e1eca1635b1c7a184baaa7494c41d372c7d0a832" - }, - { - "nr": 130920, - "hash": "41fd321f3f4d9b5db16de99b775340605c99ca9a" - }, - { - "nr": 129497, - "hash": "9ecc4c3c4d813af4b51b9cf8266cfe7d753deb30" - }, - { - "nr": 129295, - "hash": "0a94ed3d040ed2faa569118f9618d90a1b8e47b6" - }, - { - "nr": 128857, - "hash": "f865ddd503d9e6d725bbaac7f70bdc08e793a197" - }, - { - "nr": 130651, - "hash": "7e81d13368a99dcebe4db572bc7a6e6c662015ac" - }, - { - "nr": 130398, - "hash": "dc0759da9dafd605398a528d92c2601bec27482a" - }, - { - "nr": 130023, - "hash": "afb5bdcdda039583545df07421becec7b404994f" - }, - { - "nr": 129620, - "hash": "7ee79e96734fde82091ef3a8ae022d1552fef22e" - }, - { - "nr": 130138, - "hash": "34ce3ff8c1d45a054bd64e5ab63b4213738e265d" - }, - { - "nr": 130655, - "hash": "11b9a2e3969bb46876c6443a3d507f07258eff53" - }, - { - "nr": 130329, - "hash": "e6171530c6d56c05d54aa98f88f6b2221a273621" - }, - { - "nr": 130181, - "hash": "deb49e5ad750c55a4a06c0c1e40fb6bf0c598620" - }, - { - "nr": 129770, - "hash": "671c76b7bd0f176bc05a2b2ed10c9c1d22863bb4" - }, - { - "nr": 129301, - "hash": "b29bd36925c1608cace140071d83abf4a28a603d" - }, - { - "nr": 128621, - "hash": "7c9c14c2cd878bed3d5928bbe465a76e76ec35b5" - }, - { - "nr": 130899, - "hash": "09d91292cabd6b030fedb967efd95fe3d326c093" - }, - { - "nr": 130870, - "hash": "38535cf92ca1158ba8d946a2691f36bd1d578240" - }, - { - "nr": 128152, - "hash": "923f0082c27ed9bd2da6a1940f93296b345365d7" - }, - { - "nr": 130135, - "hash": "ae6d6fb1cc20dd642a1fde06024f65f45f54ddd8" - }, - { - "nr": 130200, - "hash": "569e94f4486c0e9e50a03af74c2d881d8f49747d" - }, - { - "nr": 129929, - "hash": "7a4deb331b4b4ad1d4192f1b551061bcc78d3513" - }, - { - "nr": 129630, - "hash": "6ff73ff0c0fe8d1a926a714705559d08c7906ea7" - }, - { - "nr": 129142, - "hash": "51dbe8f402b86df81dd6a455854f0f294e13dff6" - }, - { - "nr": 130902, - "hash": "056f92216817086387940fdd4cdec081ebed9de5" - }, - { - "nr": 130485, - "hash": "18d9b9a80ec5f44d48c8fa32e989f4f68bbcb767" - }, - { - "nr": 127193, - "hash": "d27fc143071c1c3dd23e49a8cfac34e90ac784b6" - }, - { - "nr": 130352, - "hash": "96968be58f7b3ed711d6581fd615641d5f6c1c82" - }, - { - "nr": 130040, - "hash": "ca7067b2c08df6f5f2d05d368f340e2b92b9ae43" - }, - { - "nr": 131020, - "hash": "a807622ae20c19d5f938bb069d6283aca3268a97" - }, - { - "nr": 130536, - "hash": "4dbd4499064d9701cbec21f7f4fe45a9aa23d991" - }, - { - "nr": 130559, - "hash": "bb68542a6141dde8a97dad8451c0c440276144a0" - }, - { - "nr": 128987, - "hash": "2f5fdc7c77d697d8262c02c33d30d374d043e028" - }, - { - "nr": 129731, - "hash": "3f3d716cc700497f980841ea3bfb351afa4cfea0" - }, - { - "nr": 129644, - "hash": "e8c5dc3b954ad0351e7d55c5c828517cedbe7d0e" - }, - { - "nr": 130814, - "hash": "65a7ca494852a793b728c8093b7b83f85cea00a3" - }, - { - "nr": 129486, - "hash": "c1b81aeeb515f5bb3466aad413d1188ea37bb0e8" - }, - { - "nr": 129278, - "hash": "247acd1f9ed35fbd0c74ba987958c4d15cb2e953" - }, - { - "nr": 129970, - "hash": "0c2a15521a037bd798db4b23f62912b38db70920" - }, - { - "nr": 130738, - "hash": "465a9fc20edc05391304b45bb587724b01d22d13" - }, - { - "nr": 130616, - "hash": "213b645bc693405f8008cad62f5c6ef99f569b66" - }, - { - "nr": 129583, - "hash": "db39e9f730552aed80cf6c6c8bf8a203206a826b" - }, - { - "nr": 130424, - "hash": "3697476d5c7b32522a879ed97b62983243edefbb" - }, - { - "nr": 129370, - "hash": "8eacd6c59693351c78e9292f931863b25f6b0cf8" - }, - { - "nr": 130037, - "hash": "1e4a7b8f3d5ddde06177b81f54a306223bba6c64" - }, - { - "nr": 130007, - "hash": "92aff56031dd854eef2b9c1be609c4978d3adad0" - }, - { - "nr": 129589, - "hash": "c28f5ab4c0d6e3d8a8e23f2827532754164ea446" - }, - { - "nr": 130507, - "hash": "bf0bc1ae655532c5494fbe8a32bd4426ed8b6d71" - }, - { - "nr": 128212, - "hash": "ba25e332401d9884ac22d2f15e955e38e2e98698" - }, - { - "nr": 129996, - "hash": "bacd11bef941d367faa9f713e9ae1c1412422c72" - }, - { - "nr": 129823, - "hash": "4a9ef46da3300dc78fd610f4a9dae5d80d5f4d79" - }, - { - "nr": 129271, - "hash": "2b17d32ae788cd1a675289e4a7d38a13ffc1846d" - }, - { - "nr": 129543, - "hash": "990e891e00cb4863efc3ecde67d4fefef5e96273" - }, - { - "nr": 129826, - "hash": "4fae03f885ee9c03cab4bee43363512c39c19b73" - }, - { - "nr": 130831, - "hash": "39a8f683ac46af9cb8aaa00dccbc97194c6a37e1" - }, - { - "nr": 127092, - "hash": "e74a55b800f7d38e2bdeee5caf848d9307f0367f" - }, - { - "nr": 130550, - "hash": "818dcbe97ae844f8c837fcf18f872aa00c4680c4" - }, - { - "nr": 129058, - "hash": "fa9c9848714a9770b5ff279f989bae2a96d3eecc" - }, - { - "nr": 129297, - "hash": "e322df2b3a0964581b69d8e6b552215c256a3e33" - }, - { - "nr": 130290, - "hash": "eee3f6a37c704165d6b72bb7dc7e95324fbc5bc1" - }, - { - "nr": 128499, - "hash": "f32d9ba89fa6dc4d55fc62318c05d757e6dfc2fa" - }, - { - "nr": 130013, - "hash": "19f90d43c3a952cd0e4a9b408e8e358bdd5bd6a1" - }, - { - "nr": 129993, - "hash": "1976fbeb39f977e2946f6f5762654ef61891449c" - }, - { - "nr": 129207, - "hash": "d0977b3277003644515a1a4bec0cd181e07287e5" - }, - { - "nr": 128810, - "hash": "d4ee0cbd1e167a6327e3b016fd528cdbb5775b46" - }, - { - "nr": 130621, - "hash": "2a4aa2ee204f8c5144137f5b6905808cf2492da6" - }, - { - "nr": 129368, - "hash": "ac57d0ab5da5b77fb416afb026172d196c282742" - }, - { - "nr": 129072, - "hash": "88361e3c91a7053936e1c326bbd4a8695433c40d" - }, - { - "nr": 130711, - "hash": "6b3e892ff7287ec496ad3abec910281d3724df0b" - }, - { - "nr": 129450, - "hash": "2f8748086d160d499ed506daaf1fdfb2c148d2c9" - }, - { - "nr": 129017, - "hash": "a76bea0bbe8aafbbc30d06d90067e2d90303fe18" - }, - { - "nr": 128856, - "hash": "fadefad09154c419b0edaf43bb4b56b497e2c73e" - }, - { - "nr": 129790, - "hash": "dbbcfd0770563dfae3c443148f8fc92e816616ea" - }, - { - "nr": 129776, - "hash": "bfc68c057ec92fb4f6788b6f00f393e1657d14bd" - }, - { - "nr": 130447, - "hash": "550b8e3d8e693207d3a0a751c9b189df6d680173" - }, - { - "nr": 130537, - "hash": "d71a35eef3b6f9aa670ec2415ab3e781c14e845a" - }, - { - "nr": 129119, - "hash": "92985ad298fd9cff127c28bbb3209784a4677e20" - }, - { - "nr": 130491, - "hash": "e262706c20ec517b7b640b158bcb9d28df40c176" - }, - { - "nr": 124360, - "hash": "812f324892fe272e02e2c7f3cd93ae2b3b44c74a" - }, - { - "nr": 129568, - "hash": "bae88f0ec48e27c2048422dbca7725ed03b63e45" - }, - { - "nr": 129232, - "hash": "58257ff910db4f3f6d3642ce25d2ee08c1b80b39" - }, - { - "nr": 129688, - "hash": "b707ace711249932905dc54f936b2c58858a8e3d" - }, - { - "nr": 129956, - "hash": "30b909b58f3f6b114fd6f6c296e4f21b3a95e0dd" - }, - { - "nr": 130876, - "hash": "fae720398a22b216101283040d1d1a6c51072c31" - }, - { - "nr": 130484, - "hash": "4f9ff180e59bc7ab1735a511f39ac1868f243900" - }, - { - "nr": 129186, - "hash": "f66e6df310027fa145c5cf95fb7f8453e667d2d7" - }, - { - "nr": 129131, - "hash": "0fa5b573507284450042f4bb2b1d4e245d38e534" - }, - { - "nr": 130626, - "hash": "c7b5ef57e83363a9d43e5b94e25769d89fffcb95" - }, - { - "nr": 130405, - "hash": "36592c7a7caa7ace99ac12a9456da05bfb0d224f" - }, - { - "nr": 129498, - "hash": "31e47e3843efd5eb0301200ba4876675bb152fb9" - }, - { - "nr": 130183, - "hash": "25037b21fdabd6f5e82ba19ea1ece48862ffe5fa" - }, - { - "nr": 130162, - "hash": "5e72751fe51f2920d2e26ebfdfa187454bef27c4" - }, - { - "nr": 128546, - "hash": "1599a86ba4d235b8070c88dc54e1fbf2de197d19" - }, - { - "nr": 130908, - "hash": "095efe1e5dd67645a1ff3afb0e529a2b9c13d924" - }, - { - "nr": 130544, - "hash": "52fcf8eefbac4b6f5268348d6cb43c5900ea2508" - }, - { - "nr": 129219, - "hash": "f06f60c0d13b7117fc8e5265333637d5ce209f75" - }, - { - "nr": 130074, - "hash": "f63602fad519122f074b4ca65e44b310c000c149" - }, - { - "nr": 130017, - "hash": "3cc7196c0b30589e0fd2921ff6f01b6bbb1cbe6c" - }, - { - "nr": 129844, - "hash": "d4ff03a78af011a9d98ef90cd8df32d1cbb7b062" - }, - { - "nr": 129658, - "hash": "511ba8a4864cc1a09e09a20615e4a2821725d38a" - }, - { - "nr": 128926, - "hash": "214aec3475310f1b4320a58b7296e10fca3d3811" - }, - { - "nr": 130591, - "hash": "5f254385ffdc75cca7ca420a7c09bcd17ab6869a" - }, - { - "nr": 129401, - "hash": "c67dede235905e4bc125afb24d68663aef173281" - }, - { - "nr": 127897, - "hash": "9108576bf8d9af310fef1396e6986b0458f7aee2" - }, - { - "nr": 129713, - "hash": "f47eb9e10ddef7514753f0c61ff838fb2d0a5428" - }, - { - "nr": 129872, - "hash": "cbc2cad60379e591720eb6114a991d863096d4c3" - }, - { - "nr": 130658, - "hash": "663d5ea18ecc74fc842eb68545add8356de8f60b" - }, - { - "nr": 122550, - "hash": "cb421bc33689b3a85d6e838bdaeadc3e6912bd18" - }, - { - "nr": 129418, - "hash": "04b94cd6665816cf7b52dd6b0edfc40c357bbbc4" - }, - { - "nr": 129174, - "hash": "7b7f5b2d7c07d020ab631748ad58de61ddb68a29" - }, - { - "nr": 128985, - "hash": "890aa1c30429d48f2e13aa3c43a1d15bad46adb4" - }, - { - "nr": 130033, - "hash": "a85028e014cb4c4697223513274b6e2891c4b7ef" - }, - { - "nr": 129407, - "hash": "90f799627d2e7ea89fff7f99c500ba458e6aedfe" - }, - { - "nr": 128786, - "hash": "18aa9d5716635c214359996df84fcd0aff1b32bb" - }, - { - "nr": 130260, - "hash": "407cc68941484921e27516a0b43417c12a997551" - }, - { - "nr": 130564, - "hash": "8419c8d9c2f14af3bf35287bc7a443c83ea0f5d1" - }, - { - "nr": 130291, - "hash": "38de05f6e26a381151b730a0395eec357197013c" - }, - { - "nr": 129116, - "hash": "df53ae24534f6f77c8230f2d5d0ed00cd615ab61" - }, - { - "nr": 130673, - "hash": "012ecce8cc09d62174f59d106254bf920f3ca4f5" - }, - { - "nr": 130060, - "hash": "a0c3fb9151b7579302f638192b860e274d347b73" - }, - { - "nr": 128906, - "hash": "d1f7e789498023a2e26106b4f3090d5212ed5f11" - }, - { - "nr": 130250, - "hash": "aa1a94b4135b177890e9f2a73d58c307d9bd8fec" - }, - { - "nr": 130032, - "hash": "e9612d9bf3786908508c075bb43cfc7bd1ed785e" - }, - { - "nr": 129257, - "hash": "6fd6805e0b586a9177858794a5ff26eff116828d" - }, - { - "nr": 129175, - "hash": "aef3a41ab54ea721814d45dcdd03d32ec9c8f0b4" - }, - { - "nr": 128586, - "hash": "21ea3ad49731154f4514b4d4f7124444d7f71457" - }, - { - "nr": 130225, - "hash": "6739fb1021b67e9c1e6d222f6e31165cc10e6a38" - }, - { - "nr": 130650, - "hash": "372fd4e773f222309c5f740bc143093907f0d3c4" - }, - { - "nr": 129653, - "hash": "c1ea965a02c6afa3fbc810cc949130900e08384d" - }, - { - "nr": 129506, - "hash": "62c8f1039aeec6d81678032c7fb1f032ccc49434" - }, - { - "nr": 129500, - "hash": "9384e309b6a8bf320b5646f7cdaf72db987bdcd9" - }, - { - "nr": 129170, - "hash": "44b23c05c679b3468a5b9633c88bc2dcd871e403" - }, - { - "nr": 130354, - "hash": "024c206af34165e8931099731fecd26425e0647a" - }, - { - "nr": 130047, - "hash": "14a4a49f65897cb19d08d3affe5895d6bda4330c" - }, - { - "nr": 129692, - "hash": "14ed14f1837cca92ec7ab1ee84d17c1458f889c4" - }, - { - "nr": 129422, - "hash": "f0e3731bf36dcfa092a57c829edd123890ae78a4" - }, - { - "nr": 130553, - "hash": "c8862c76c991dc8a78c9dbf474c93bb0f8b35166" - }, - { - "nr": 130101, - "hash": "7abae0fb9ad5ab291841ab5678e4e52e9a17df25" - }, - { - "nr": 125230, - "hash": "c25721cf368266e7e5363a44ba655efa69b2c270" - }, - { - "nr": 130571, - "hash": "df4805bdb3a80b4250b11f40d32a134de07fae59" - }, - { - "nr": 130061, - "hash": "f2eca567773d9d57d1f58c54fdfe613a7a88c462" - }, - { - "nr": 130328, - "hash": "5399763508c6167f44737ef6a7da1a819ca727c1" - }, - { - "nr": 130541, - "hash": "901f7e4927cda019d8a18b528264688956bcba0f" - }, - { - "nr": 130574, - "hash": "0f3c63cf4f1b498342ab0fe7fa8ba671a1f35824" - }, - { - "nr": 130475, - "hash": "90aecdc7adfeb350695c3725dde0aa4a3b787346" - }, - { - "nr": 130335, - "hash": "fc5ada7202f38ff2bf052ff4fe8ec7bcfb8184ff" - }, - { - "nr": 130751, - "hash": "ead20ef370862e4efecf0c18da1fa47274a0b8eb" - }, - { - "nr": 128971, - "hash": "7bd2f3cea451ea09976ee1d355142dc069aa3702" - }, - { - "nr": 129296, - "hash": "3546935a2c54765dd5315d17b93b9dd63738c688" - }, - { - "nr": 129893, - "hash": "a003637ba68d1a9532f07888a05519ffcb244277" - }, - { - "nr": 130666, - "hash": "5776fccaa3c539d48d1ed1e4e9f1d88ea855adea" - }, - { - "nr": 130243, - "hash": "491944ed2249a056ddf0eaaee5fb25982a083b98" - }, - { - "nr": 130256, - "hash": "2975ea9ac3b78a482f26932e250f9c0a0e492fb2" - }, - { - "nr": 128367, - "hash": "6cbb886ff3dd1ee8088dec2c6a477868c21a0fcf" - }, - { - "nr": 125901, - "hash": "dc30b3192ecae98d425c1c9e679762b46642ed1b" - }, - { - "nr": 127696, - "hash": "9dda86df4dbc36d3bfc099cc876b28d40690d72a" - }, - { - "nr": 130798, - "hash": "96df9d9c2430431774db419fdc58714be076ec6d" - }, - { - "nr": 128184, - "hash": "734e4ace0b1bf8705f5584b76883ab35fc1f3c29" - }, - { - "nr": 129950, - "hash": "18df4627a91d2e2d6c62c4df0ed5d211e37c5543" - }, - { - "nr": 130128, - "hash": "88f31142125b38d12acf2c52876d2f30f9453543" - }, - { - "nr": 129930, - "hash": "31f027de6205109b9edb8bb5fc9e1486962e1436" - }, - { - "nr": 131103, - "hash": "2e651db0f2ed46b761cc9d51a711321c50c5721a" - }, - { - "nr": 130535, - "hash": "cc2ab3dd80dc24c4c9af2d98232f570606795642" - }, - { - "nr": 127577, - "hash": "3b83b073acccb6bc77bad0a67327ab49b56f1b73" - }, - { - "nr": 129656, - "hash": "9d23a0bf26813baecc3b287930f3b610a0c30e0a" - }, - { - "nr": 129545, - "hash": "db7647ef48833841f496054161d7d7bfc1b08a3b" - }, - { - "nr": 129591, - "hash": "906a108819857f2295b01a4f74c3d94d413b4d11" - }, - { - "nr": 130556, - "hash": "170c371c8d91046d4eee0f6a0a58d2655d4d7e97" - }, - { - "nr": 130772, - "hash": "7e5798fdc5df3eae25e8ef43342e8b3a0385d661" - }, - { - "nr": 130347, - "hash": "dcd13c558e633c7adeb857d063984032070d5305" - }, - { - "nr": 130348, - "hash": "a6d08bae99a6769053da960d9dafe38d49bc7d46" - }, - { - "nr": 129317, - "hash": "154b2661c9791afd57f558f7601221112f751edc" - }, - { - "nr": 128818, - "hash": "cd3463799356b02e8faad74ee811b8b1d9ca1e16" - }, - { - "nr": 131036, - "hash": "fd80f4055cea574a5ed1398c005b01f15806033d" - }, - { - "nr": 130463, - "hash": "710d6a3b57a9399f82687ca4fea6852e2d1dbfc2" - }, - { - "nr": 129962, - "hash": "1bd0567b83a2c03acb7c6ec8df9d1fdf5e644ed3" - }, - { - "nr": 129106, - "hash": "bfb6ee436078a595136c585f67d4b2b5b0872d05" - }, - { - "nr": 130045, - "hash": "4f96906e5c8320dd2231d01a69b9247f8f74f1df" - }, - { - "nr": 129661, - "hash": "736e153f0dd06443248732012ea6486f4b8f0813" - }, - { - "nr": 129457, - "hash": "45db8a7fc289893efc7e33f8579d0fdfa7a7dff5" - }, - { - "nr": 129006, - "hash": "140ac1c5323bd4cbd3d2d8f88fcb749f66e8afde" - }, - { - "nr": 129594, - "hash": "cad45ed7870c70b7891c2c85297344703179747d" - }, - { - "nr": 130577, - "hash": "ff2757cc233e950a494133c09e7035b39e4bd382" - }, - { - "nr": 130649, - "hash": "2c414f2e8285780c2116af963e7b60f1de190ba3" - }, - { - "nr": 130133, - "hash": "3cd23be3e3d74f7dc1e916de6b055ce930b5d27f" - }, - { - "nr": 129859, - "hash": "534b73336d964385c7fe6184be3948de03f1afa6" - }, - { - "nr": 130189, - "hash": "6cc19aa921f07346391dd3886433e6d2a354e253" - }, - { - "nr": 127053, - "hash": "dac4c33e4027c93c3ed29ec1c361dd41784b8aed" - }, - { - "nr": 130844, - "hash": "217f99dd3b718df0f2428b1e0dc05480167a4343" - }, - { - "nr": 130238, - "hash": "954e3634bc4c59580c379d2cc5fe7fc3c87815b4" - }, - { - "nr": 128824, - "hash": "b8c99695f91293d97fd93d066f47fdeb14ce6615" - }, - { - "nr": 130098, - "hash": "f790f19ff7bc79f515e8c5484d7942b3e5f9d891" - }, - { - "nr": 130204, - "hash": "8c7ed193b0fda658855c6c391ed3b9fd7b25f4d3" - }, - { - "nr": 128972, - "hash": "bff56bd2ceda3a088984c969312d4e7cda0049f6" - }, - { - "nr": 130797, - "hash": "1acb79417162c8a54abdfd7113a17458e8407708" - }, - { - "nr": 130560, - "hash": "e5776fa44cd4ac38eaa9e526fb11a69bac172090" - }, - { - "nr": 129635, - "hash": "044530fd43cc0e4f0c1ab58907c596668f68f625" - }, - { - "nr": 130764, - "hash": "ce84fefbb988be42f4fc8ab6d82b751ea9742568" - }, - { - "nr": 130935, - "hash": "369a0c8bf89fdbfbda64a3c37cb16156ec140b72" - }, - { - "nr": 130599, - "hash": "f8bb64d268dc72a7a050257f79de9e3488814cb8" - }, - { - "nr": 129375, - "hash": "ab7fd26cb187ee60cdd4a74bc0741f311c9a61ae" - }, - { - "nr": 129816, - "hash": "84fa105271b4ea09fdc44bd072d027482e3dd304" - }, - { - "nr": 130742, - "hash": "1f9e83cec80ae17496c0ff46d6b76acfd7d6c0d2" - }, - { - "nr": 130233, - "hash": "6a065fd2b24eddf26757ca194c6b0b81ca40ff40" - }, - { - "nr": 128811, - "hash": "88e630814cbeb055f0b0c02fd4298241b6400bcc" - }, - { - "nr": 130573, - "hash": "31507508b9293a2362f820a3f3b34a17b1e98712" - }, - { - "nr": 130905, - "hash": "8c66823f03a63bd17c1873b697516524ea462eef" - }, - { - "nr": 129832, - "hash": "bd9c94d348f5435035957b92b9a7ba35df095bfd" - }, - { - "nr": 122646, - "hash": "432dfd04a8857a00ba08b2b0d05afecc45436159" - }, - { - "nr": 129279, - "hash": "a263600a7b35f95571d0bfc1e85ca18120f7daf7" - }, - { - "nr": 129946, - "hash": "651d2db7d0de0ae79c4543d46f4e178c3641c39e" - }, - { - "nr": 129028, - "hash": "5ef514f693d166398d32bcc0701f75c73032ae3e" - }, - { - "nr": 129173, - "hash": "b4943d099505665feabc28b407ae24c4d41fcde9" - }, - { - "nr": 130058, - "hash": "18a3d76d4fb35ade72f1f36eca99f330f43c90f0" - }, - { - "nr": 130880, - "hash": "1d7d14bad58fd1040e962515f25045dc1426a721" - }, - { - "nr": 130701, - "hash": "d7e8ca8d10caf24cc65921544dec1d33bc3d60a6" - }, - { - "nr": 130725, - "hash": "ec0b8d1957b8b20e92d4e80d7e60cffdbe357148" - }, - { - "nr": 130394, - "hash": "fa46a36751cb742f93ec32f501fc00fadab0684d" - }, - { - "nr": 129452, - "hash": "0bf2440d3ae4b0bf07eb87674456a529ab48b195" - }, - { - "nr": 129151, - "hash": "0090cde9d29c4dbc64f8e1491a276f65382f9454" - }, - { - "nr": 130423, - "hash": "59549ccc0f6d05e0543bbbd99bc97b483a665b70" - }, - { - "nr": 129933, - "hash": "90683de5da15b95378e75366ffd9f424b6e0bd0d" - }, - { - "nr": 130113, - "hash": "d4130ce0e1536f5408ae28b98d8da825b6961d5d" - } - ] +{ + "mail": "akintayoshedrack@gmail.com", + "name": "hacktivist123", + "date": 1744197681, + "prs": [ + { + "nr": 130019, + "hash": "f0079d503320ee2314bfc5227f3f3bb24b9cf4b7" + }, + { + "nr": 128372, + "hash": "a3727232010728a7be46a7ebb0f7687ac9d3c2c3" + }, + { + "nr": 130450, + "hash": "c6d485f7f260e79bd1f8c36f5dfd96f20f2dfb50" + }, + { + "nr": 129934, + "hash": "18def36d1f513cf7d8bbf23041ec2a5be3053708" + }, + { + "nr": 129954, + "hash": "3d4b34f229792c3711751bbf8c8a8c78729e9485" + }, + { + "nr": 129923, + "hash": "333249bbfa90e6957408aa55a882a9982a2d3a6b" + }, + { + "nr": 127525, + "hash": "1a94c89a82f1fe28dfcc549fab4de48c8665a42d" + }, + { + "nr": 128989, + "hash": "96f5692fe69b9bf860973afbab5f08145f1b3115" + }, + { + "nr": 129560, + "hash": "1f29245ea1fcfd595c047cfd00c72ef615d2936e" + }, + { + "nr": 130028, + "hash": "c84306639bb017c8856d6e94056e1f25ed94ebec" + }, + { + "nr": 130116, + "hash": "09fe5c69c57bed3107d9735bc49e67ccfbe095fd" + }, + { + "nr": 130345, + "hash": "33da39dff3a7ba72990d58295e7e5ba90f65bd95" + }, + { + "nr": 129307, + "hash": "cea84a9e2212cc006864c853057e05071a30fbd8" + }, + { + "nr": 130202, + "hash": "1ed17ffcee4118aaf8db03622ccf64f90fad6f2d" + }, + { + "nr": 128886, + "hash": "c3081c4638367b40a5d065903759c3f746ee389c" + }, + { + "nr": 129023, + "hash": "bb67734d0e4927ba86b99b246506ea518c086839" + }, + { + "nr": 128086, + "hash": "41c4057d5ccc0586e2800c7b72eb5ecb16b36f40" + }, + { + "nr": 130733, + "hash": "7261d4ffe0b5a24db4a1ec329f9e822cf640be28" + }, + { + "nr": 128516, + "hash": "992f89e3836107ed5d77fc90f8cdfecfc161254a" + }, + { + "nr": 130401, + "hash": "45c96548d46a80a66ed37171e43052a4d2a4832a" + }, + { + "nr": 129334, + "hash": "abbcb01fd3659a783c15b26907157ad4440b3065" + }, + { + "nr": 128991, + "hash": "f49907cb1ae23a1caa645e280c17ec712f31a1d3" + }, + { + "nr": 128850, + "hash": "ca7fa0be41f0cff975a0752d17167fe57e6a102d" + }, + { + "nr": 130210, + "hash": "31690ce0281b699d6faef57b0f6b94a4b131ead1" + }, + { + "nr": 130728, + "hash": "1372c25c8c102b45f529a6d66edd8c699fdc7bce" + }, + { + "nr": 129887, + "hash": "c7f31fde3f845485394cb1488462d177a7b0bcb2" + }, + { + "nr": 130035, + "hash": "82a91765d33999054a88d4d56e9461e7b82601ae" + }, + { + "nr": 127709, + "hash": "89ffc9f4630a2e56d0b717f1c238d1fa1b539f83" + }, + { + "nr": 127375, + "hash": "c8660783bfe6d98657e1f12717a965870d02605f" + }, + { + "nr": 128950, + "hash": "eb06b6aa1a3a3a92458d8805130bda5bc789b49d" + }, + { + "nr": 130875, + "hash": "b6d736c2fff395e592cf6bb442f92715e41eaa8f" + }, + { + "nr": 129670, + "hash": "857695601f289d0fd6c7a83bb727ee4aeabe78bc" + }, + { + "nr": 128929, + "hash": "19039846103240196333527809ecf6eece885d26" + }, + { + "nr": 128662, + "hash": "e1eca1635b1c7a184baaa7494c41d372c7d0a832" + }, + { + "nr": 130920, + "hash": "41fd321f3f4d9b5db16de99b775340605c99ca9a" + }, + { + "nr": 129497, + "hash": "9ecc4c3c4d813af4b51b9cf8266cfe7d753deb30" + }, + { + "nr": 129295, + "hash": "0a94ed3d040ed2faa569118f9618d90a1b8e47b6" + }, + { + "nr": 128857, + "hash": "f865ddd503d9e6d725bbaac7f70bdc08e793a197" + }, + { + "nr": 130651, + "hash": "7e81d13368a99dcebe4db572bc7a6e6c662015ac" + }, + { + "nr": 130398, + "hash": "dc0759da9dafd605398a528d92c2601bec27482a" + }, + { + "nr": 130023, + "hash": "afb5bdcdda039583545df07421becec7b404994f" + }, + { + "nr": 129620, + "hash": "7ee79e96734fde82091ef3a8ae022d1552fef22e" + }, + { + "nr": 130138, + "hash": "34ce3ff8c1d45a054bd64e5ab63b4213738e265d" + }, + { + "nr": 130655, + "hash": "11b9a2e3969bb46876c6443a3d507f07258eff53" + }, + { + "nr": 130329, + "hash": "e6171530c6d56c05d54aa98f88f6b2221a273621" + }, + { + "nr": 130181, + "hash": "deb49e5ad750c55a4a06c0c1e40fb6bf0c598620" + }, + { + "nr": 129770, + "hash": "671c76b7bd0f176bc05a2b2ed10c9c1d22863bb4" + }, + { + "nr": 129301, + "hash": "b29bd36925c1608cace140071d83abf4a28a603d" + }, + { + "nr": 128621, + "hash": "7c9c14c2cd878bed3d5928bbe465a76e76ec35b5" + }, + { + "nr": 130899, + "hash": "09d91292cabd6b030fedb967efd95fe3d326c093" + }, + { + "nr": 130870, + "hash": "38535cf92ca1158ba8d946a2691f36bd1d578240" + }, + { + "nr": 128152, + "hash": "923f0082c27ed9bd2da6a1940f93296b345365d7" + }, + { + "nr": 130135, + "hash": "ae6d6fb1cc20dd642a1fde06024f65f45f54ddd8" + }, + { + "nr": 130200, + "hash": "569e94f4486c0e9e50a03af74c2d881d8f49747d" + }, + { + "nr": 129929, + "hash": "7a4deb331b4b4ad1d4192f1b551061bcc78d3513" + }, + { + "nr": 129630, + "hash": "6ff73ff0c0fe8d1a926a714705559d08c7906ea7" + }, + { + "nr": 129142, + "hash": "51dbe8f402b86df81dd6a455854f0f294e13dff6" + }, + { + "nr": 130902, + "hash": "056f92216817086387940fdd4cdec081ebed9de5" + }, + { + "nr": 130485, + "hash": "18d9b9a80ec5f44d48c8fa32e989f4f68bbcb767" + }, + { + "nr": 127193, + "hash": "d27fc143071c1c3dd23e49a8cfac34e90ac784b6" + }, + { + "nr": 130352, + "hash": "96968be58f7b3ed711d6581fd615641d5f6c1c82" + }, + { + "nr": 130040, + "hash": "ca7067b2c08df6f5f2d05d368f340e2b92b9ae43" + }, + { + "nr": 131020, + "hash": "a807622ae20c19d5f938bb069d6283aca3268a97" + }, + { + "nr": 130536, + "hash": "4dbd4499064d9701cbec21f7f4fe45a9aa23d991" + }, + { + "nr": 130559, + "hash": "bb68542a6141dde8a97dad8451c0c440276144a0" + }, + { + "nr": 128987, + "hash": "2f5fdc7c77d697d8262c02c33d30d374d043e028" + }, + { + "nr": 129731, + "hash": "3f3d716cc700497f980841ea3bfb351afa4cfea0" + }, + { + "nr": 129644, + "hash": "e8c5dc3b954ad0351e7d55c5c828517cedbe7d0e" + }, + { + "nr": 130814, + "hash": "65a7ca494852a793b728c8093b7b83f85cea00a3" + }, + { + "nr": 129486, + "hash": "c1b81aeeb515f5bb3466aad413d1188ea37bb0e8" + }, + { + "nr": 129278, + "hash": "247acd1f9ed35fbd0c74ba987958c4d15cb2e953" + }, + { + "nr": 129970, + "hash": "0c2a15521a037bd798db4b23f62912b38db70920" + }, + { + "nr": 130738, + "hash": "465a9fc20edc05391304b45bb587724b01d22d13" + }, + { + "nr": 130616, + "hash": "213b645bc693405f8008cad62f5c6ef99f569b66" + }, + { + "nr": 129583, + "hash": "db39e9f730552aed80cf6c6c8bf8a203206a826b" + }, + { + "nr": 130424, + "hash": "3697476d5c7b32522a879ed97b62983243edefbb" + }, + { + "nr": 129370, + "hash": "8eacd6c59693351c78e9292f931863b25f6b0cf8" + }, + { + "nr": 130037, + "hash": "1e4a7b8f3d5ddde06177b81f54a306223bba6c64" + }, + { + "nr": 130007, + "hash": "92aff56031dd854eef2b9c1be609c4978d3adad0" + }, + { + "nr": 129589, + "hash": "c28f5ab4c0d6e3d8a8e23f2827532754164ea446" + }, + { + "nr": 130507, + "hash": "bf0bc1ae655532c5494fbe8a32bd4426ed8b6d71" + }, + { + "nr": 128212, + "hash": "ba25e332401d9884ac22d2f15e955e38e2e98698" + }, + { + "nr": 129996, + "hash": "bacd11bef941d367faa9f713e9ae1c1412422c72" + }, + { + "nr": 129823, + "hash": "4a9ef46da3300dc78fd610f4a9dae5d80d5f4d79" + }, + { + "nr": 129271, + "hash": "2b17d32ae788cd1a675289e4a7d38a13ffc1846d" + }, + { + "nr": 129543, + "hash": "990e891e00cb4863efc3ecde67d4fefef5e96273" + }, + { + "nr": 129826, + "hash": "4fae03f885ee9c03cab4bee43363512c39c19b73" + }, + { + "nr": 130831, + "hash": "39a8f683ac46af9cb8aaa00dccbc97194c6a37e1" + }, + { + "nr": 127092, + "hash": "e74a55b800f7d38e2bdeee5caf848d9307f0367f" + }, + { + "nr": 130550, + "hash": "818dcbe97ae844f8c837fcf18f872aa00c4680c4" + }, + { + "nr": 129058, + "hash": "fa9c9848714a9770b5ff279f989bae2a96d3eecc" + }, + { + "nr": 129297, + "hash": "e322df2b3a0964581b69d8e6b552215c256a3e33" + }, + { + "nr": 130290, + "hash": "eee3f6a37c704165d6b72bb7dc7e95324fbc5bc1" + }, + { + "nr": 128499, + "hash": "f32d9ba89fa6dc4d55fc62318c05d757e6dfc2fa" + }, + { + "nr": 130013, + "hash": "19f90d43c3a952cd0e4a9b408e8e358bdd5bd6a1" + }, + { + "nr": 129993, + "hash": "1976fbeb39f977e2946f6f5762654ef61891449c" + }, + { + "nr": 129207, + "hash": "d0977b3277003644515a1a4bec0cd181e07287e5" + }, + { + "nr": 128810, + "hash": "d4ee0cbd1e167a6327e3b016fd528cdbb5775b46" + }, + { + "nr": 130621, + "hash": "2a4aa2ee204f8c5144137f5b6905808cf2492da6" + }, + { + "nr": 129368, + "hash": "ac57d0ab5da5b77fb416afb026172d196c282742" + }, + { + "nr": 129072, + "hash": "88361e3c91a7053936e1c326bbd4a8695433c40d" + }, + { + "nr": 130711, + "hash": "6b3e892ff7287ec496ad3abec910281d3724df0b" + }, + { + "nr": 129450, + "hash": "2f8748086d160d499ed506daaf1fdfb2c148d2c9" + }, + { + "nr": 129017, + "hash": "a76bea0bbe8aafbbc30d06d90067e2d90303fe18" + }, + { + "nr": 128856, + "hash": "fadefad09154c419b0edaf43bb4b56b497e2c73e" + }, + { + "nr": 129790, + "hash": "dbbcfd0770563dfae3c443148f8fc92e816616ea" + }, + { + "nr": 129776, + "hash": "bfc68c057ec92fb4f6788b6f00f393e1657d14bd" + }, + { + "nr": 130447, + "hash": "550b8e3d8e693207d3a0a751c9b189df6d680173" + }, + { + "nr": 130537, + "hash": "d71a35eef3b6f9aa670ec2415ab3e781c14e845a" + }, + { + "nr": 129119, + "hash": "92985ad298fd9cff127c28bbb3209784a4677e20" + }, + { + "nr": 130491, + "hash": "e262706c20ec517b7b640b158bcb9d28df40c176" + }, + { + "nr": 124360, + "hash": "812f324892fe272e02e2c7f3cd93ae2b3b44c74a" + }, + { + "nr": 129568, + "hash": "bae88f0ec48e27c2048422dbca7725ed03b63e45" + }, + { + "nr": 129232, + "hash": "58257ff910db4f3f6d3642ce25d2ee08c1b80b39" + }, + { + "nr": 129688, + "hash": "b707ace711249932905dc54f936b2c58858a8e3d" + }, + { + "nr": 129956, + "hash": "30b909b58f3f6b114fd6f6c296e4f21b3a95e0dd" + }, + { + "nr": 130876, + "hash": "fae720398a22b216101283040d1d1a6c51072c31" + }, + { + "nr": 130484, + "hash": "4f9ff180e59bc7ab1735a511f39ac1868f243900" + }, + { + "nr": 129186, + "hash": "f66e6df310027fa145c5cf95fb7f8453e667d2d7" + }, + { + "nr": 129131, + "hash": "0fa5b573507284450042f4bb2b1d4e245d38e534" + }, + { + "nr": 130626, + "hash": "c7b5ef57e83363a9d43e5b94e25769d89fffcb95" + }, + { + "nr": 130405, + "hash": "36592c7a7caa7ace99ac12a9456da05bfb0d224f" + }, + { + "nr": 129498, + "hash": "31e47e3843efd5eb0301200ba4876675bb152fb9" + }, + { + "nr": 130183, + "hash": "25037b21fdabd6f5e82ba19ea1ece48862ffe5fa" + }, + { + "nr": 130162, + "hash": "5e72751fe51f2920d2e26ebfdfa187454bef27c4" + }, + { + "nr": 128546, + "hash": "1599a86ba4d235b8070c88dc54e1fbf2de197d19" + }, + { + "nr": 130908, + "hash": "095efe1e5dd67645a1ff3afb0e529a2b9c13d924" + }, + { + "nr": 130544, + "hash": "52fcf8eefbac4b6f5268348d6cb43c5900ea2508" + }, + { + "nr": 129219, + "hash": "f06f60c0d13b7117fc8e5265333637d5ce209f75" + }, + { + "nr": 130074, + "hash": "f63602fad519122f074b4ca65e44b310c000c149" + }, + { + "nr": 130017, + "hash": "3cc7196c0b30589e0fd2921ff6f01b6bbb1cbe6c" + }, + { + "nr": 129844, + "hash": "d4ff03a78af011a9d98ef90cd8df32d1cbb7b062" + }, + { + "nr": 129658, + "hash": "511ba8a4864cc1a09e09a20615e4a2821725d38a" + }, + { + "nr": 128926, + "hash": "214aec3475310f1b4320a58b7296e10fca3d3811" + }, + { + "nr": 130591, + "hash": "5f254385ffdc75cca7ca420a7c09bcd17ab6869a" + }, + { + "nr": 129401, + "hash": "c67dede235905e4bc125afb24d68663aef173281" + }, + { + "nr": 127897, + "hash": "9108576bf8d9af310fef1396e6986b0458f7aee2" + }, + { + "nr": 129713, + "hash": "f47eb9e10ddef7514753f0c61ff838fb2d0a5428" + }, + { + "nr": 129872, + "hash": "cbc2cad60379e591720eb6114a991d863096d4c3" + }, + { + "nr": 130658, + "hash": "663d5ea18ecc74fc842eb68545add8356de8f60b" + }, + { + "nr": 122550, + "hash": "cb421bc33689b3a85d6e838bdaeadc3e6912bd18" + }, + { + "nr": 129418, + "hash": "04b94cd6665816cf7b52dd6b0edfc40c357bbbc4" + }, + { + "nr": 129174, + "hash": "7b7f5b2d7c07d020ab631748ad58de61ddb68a29" + }, + { + "nr": 128985, + "hash": "890aa1c30429d48f2e13aa3c43a1d15bad46adb4" + }, + { + "nr": 130033, + "hash": "a85028e014cb4c4697223513274b6e2891c4b7ef" + }, + { + "nr": 129407, + "hash": "90f799627d2e7ea89fff7f99c500ba458e6aedfe" + }, + { + "nr": 128786, + "hash": "18aa9d5716635c214359996df84fcd0aff1b32bb" + }, + { + "nr": 130260, + "hash": "407cc68941484921e27516a0b43417c12a997551" + }, + { + "nr": 130564, + "hash": "8419c8d9c2f14af3bf35287bc7a443c83ea0f5d1" + }, + { + "nr": 130291, + "hash": "38de05f6e26a381151b730a0395eec357197013c" + }, + { + "nr": 129116, + "hash": "df53ae24534f6f77c8230f2d5d0ed00cd615ab61" + }, + { + "nr": 130673, + "hash": "012ecce8cc09d62174f59d106254bf920f3ca4f5" + }, + { + "nr": 130060, + "hash": "a0c3fb9151b7579302f638192b860e274d347b73" + }, + { + "nr": 128906, + "hash": "d1f7e789498023a2e26106b4f3090d5212ed5f11" + }, + { + "nr": 130250, + "hash": "aa1a94b4135b177890e9f2a73d58c307d9bd8fec" + }, + { + "nr": 130032, + "hash": "e9612d9bf3786908508c075bb43cfc7bd1ed785e" + }, + { + "nr": 129257, + "hash": "6fd6805e0b586a9177858794a5ff26eff116828d" + }, + { + "nr": 129175, + "hash": "aef3a41ab54ea721814d45dcdd03d32ec9c8f0b4" + }, + { + "nr": 128586, + "hash": "21ea3ad49731154f4514b4d4f7124444d7f71457" + }, + { + "nr": 130225, + "hash": "6739fb1021b67e9c1e6d222f6e31165cc10e6a38" + }, + { + "nr": 130650, + "hash": "372fd4e773f222309c5f740bc143093907f0d3c4" + }, + { + "nr": 129653, + "hash": "c1ea965a02c6afa3fbc810cc949130900e08384d" + }, + { + "nr": 129506, + "hash": "62c8f1039aeec6d81678032c7fb1f032ccc49434" + }, + { + "nr": 129500, + "hash": "9384e309b6a8bf320b5646f7cdaf72db987bdcd9" + }, + { + "nr": 129170, + "hash": "44b23c05c679b3468a5b9633c88bc2dcd871e403" + }, + { + "nr": 130354, + "hash": "024c206af34165e8931099731fecd26425e0647a" + }, + { + "nr": 130047, + "hash": "14a4a49f65897cb19d08d3affe5895d6bda4330c" + }, + { + "nr": 129692, + "hash": "14ed14f1837cca92ec7ab1ee84d17c1458f889c4" + }, + { + "nr": 129422, + "hash": "f0e3731bf36dcfa092a57c829edd123890ae78a4" + }, + { + "nr": 130553, + "hash": "c8862c76c991dc8a78c9dbf474c93bb0f8b35166" + }, + { + "nr": 130101, + "hash": "7abae0fb9ad5ab291841ab5678e4e52e9a17df25" + }, + { + "nr": 125230, + "hash": "c25721cf368266e7e5363a44ba655efa69b2c270" + }, + { + "nr": 130571, + "hash": "df4805bdb3a80b4250b11f40d32a134de07fae59" + }, + { + "nr": 130061, + "hash": "f2eca567773d9d57d1f58c54fdfe613a7a88c462" + }, + { + "nr": 130328, + "hash": "5399763508c6167f44737ef6a7da1a819ca727c1" + }, + { + "nr": 130541, + "hash": "901f7e4927cda019d8a18b528264688956bcba0f" + }, + { + "nr": 130574, + "hash": "0f3c63cf4f1b498342ab0fe7fa8ba671a1f35824" + }, + { + "nr": 130475, + "hash": "90aecdc7adfeb350695c3725dde0aa4a3b787346" + }, + { + "nr": 130335, + "hash": "fc5ada7202f38ff2bf052ff4fe8ec7bcfb8184ff" + }, + { + "nr": 130751, + "hash": "ead20ef370862e4efecf0c18da1fa47274a0b8eb" + }, + { + "nr": 128971, + "hash": "7bd2f3cea451ea09976ee1d355142dc069aa3702" + }, + { + "nr": 129296, + "hash": "3546935a2c54765dd5315d17b93b9dd63738c688" + }, + { + "nr": 129893, + "hash": "a003637ba68d1a9532f07888a05519ffcb244277" + }, + { + "nr": 130666, + "hash": "5776fccaa3c539d48d1ed1e4e9f1d88ea855adea" + }, + { + "nr": 130243, + "hash": "491944ed2249a056ddf0eaaee5fb25982a083b98" + }, + { + "nr": 130256, + "hash": "2975ea9ac3b78a482f26932e250f9c0a0e492fb2" + }, + { + "nr": 128367, + "hash": "6cbb886ff3dd1ee8088dec2c6a477868c21a0fcf" + }, + { + "nr": 125901, + "hash": "dc30b3192ecae98d425c1c9e679762b46642ed1b" + }, + { + "nr": 127696, + "hash": "9dda86df4dbc36d3bfc099cc876b28d40690d72a" + }, + { + "nr": 130798, + "hash": "96df9d9c2430431774db419fdc58714be076ec6d" + }, + { + "nr": 128184, + "hash": "734e4ace0b1bf8705f5584b76883ab35fc1f3c29" + }, + { + "nr": 129950, + "hash": "18df4627a91d2e2d6c62c4df0ed5d211e37c5543" + }, + { + "nr": 130128, + "hash": "88f31142125b38d12acf2c52876d2f30f9453543" + }, + { + "nr": 129930, + "hash": "31f027de6205109b9edb8bb5fc9e1486962e1436" + }, + { + "nr": 131103, + "hash": "2e651db0f2ed46b761cc9d51a711321c50c5721a" + }, + { + "nr": 130535, + "hash": "cc2ab3dd80dc24c4c9af2d98232f570606795642" + }, + { + "nr": 127577, + "hash": "3b83b073acccb6bc77bad0a67327ab49b56f1b73" + }, + { + "nr": 129656, + "hash": "9d23a0bf26813baecc3b287930f3b610a0c30e0a" + }, + { + "nr": 129545, + "hash": "db7647ef48833841f496054161d7d7bfc1b08a3b" + }, + { + "nr": 129591, + "hash": "906a108819857f2295b01a4f74c3d94d413b4d11" + }, + { + "nr": 130556, + "hash": "170c371c8d91046d4eee0f6a0a58d2655d4d7e97" + }, + { + "nr": 130772, + "hash": "7e5798fdc5df3eae25e8ef43342e8b3a0385d661" + }, + { + "nr": 130347, + "hash": "dcd13c558e633c7adeb857d063984032070d5305" + }, + { + "nr": 130348, + "hash": "a6d08bae99a6769053da960d9dafe38d49bc7d46" + }, + { + "nr": 129317, + "hash": "154b2661c9791afd57f558f7601221112f751edc" + }, + { + "nr": 128818, + "hash": "cd3463799356b02e8faad74ee811b8b1d9ca1e16" + }, + { + "nr": 131036, + "hash": "fd80f4055cea574a5ed1398c005b01f15806033d" + }, + { + "nr": 130463, + "hash": "710d6a3b57a9399f82687ca4fea6852e2d1dbfc2" + }, + { + "nr": 129962, + "hash": "1bd0567b83a2c03acb7c6ec8df9d1fdf5e644ed3" + }, + { + "nr": 129106, + "hash": "bfb6ee436078a595136c585f67d4b2b5b0872d05" + }, + { + "nr": 130045, + "hash": "4f96906e5c8320dd2231d01a69b9247f8f74f1df" + }, + { + "nr": 129661, + "hash": "736e153f0dd06443248732012ea6486f4b8f0813" + }, + { + "nr": 129457, + "hash": "45db8a7fc289893efc7e33f8579d0fdfa7a7dff5" + }, + { + "nr": 129006, + "hash": "140ac1c5323bd4cbd3d2d8f88fcb749f66e8afde" + }, + { + "nr": 129594, + "hash": "cad45ed7870c70b7891c2c85297344703179747d" + }, + { + "nr": 130577, + "hash": "ff2757cc233e950a494133c09e7035b39e4bd382" + }, + { + "nr": 130649, + "hash": "2c414f2e8285780c2116af963e7b60f1de190ba3" + }, + { + "nr": 130133, + "hash": "3cd23be3e3d74f7dc1e916de6b055ce930b5d27f" + }, + { + "nr": 129859, + "hash": "534b73336d964385c7fe6184be3948de03f1afa6" + }, + { + "nr": 130189, + "hash": "6cc19aa921f07346391dd3886433e6d2a354e253" + }, + { + "nr": 127053, + "hash": "dac4c33e4027c93c3ed29ec1c361dd41784b8aed" + }, + { + "nr": 130844, + "hash": "217f99dd3b718df0f2428b1e0dc05480167a4343" + }, + { + "nr": 130238, + "hash": "954e3634bc4c59580c379d2cc5fe7fc3c87815b4" + }, + { + "nr": 128824, + "hash": "b8c99695f91293d97fd93d066f47fdeb14ce6615" + }, + { + "nr": 130098, + "hash": "f790f19ff7bc79f515e8c5484d7942b3e5f9d891" + }, + { + "nr": 130204, + "hash": "8c7ed193b0fda658855c6c391ed3b9fd7b25f4d3" + }, + { + "nr": 128972, + "hash": "bff56bd2ceda3a088984c969312d4e7cda0049f6" + }, + { + "nr": 130797, + "hash": "1acb79417162c8a54abdfd7113a17458e8407708" + }, + { + "nr": 130560, + "hash": "e5776fa44cd4ac38eaa9e526fb11a69bac172090" + }, + { + "nr": 129635, + "hash": "044530fd43cc0e4f0c1ab58907c596668f68f625" + }, + { + "nr": 130764, + "hash": "ce84fefbb988be42f4fc8ab6d82b751ea9742568" + }, + { + "nr": 130935, + "hash": "369a0c8bf89fdbfbda64a3c37cb16156ec140b72" + }, + { + "nr": 130599, + "hash": "f8bb64d268dc72a7a050257f79de9e3488814cb8" + }, + { + "nr": 129375, + "hash": "ab7fd26cb187ee60cdd4a74bc0741f311c9a61ae" + }, + { + "nr": 129816, + "hash": "84fa105271b4ea09fdc44bd072d027482e3dd304" + }, + { + "nr": 130742, + "hash": "1f9e83cec80ae17496c0ff46d6b76acfd7d6c0d2" + }, + { + "nr": 130233, + "hash": "6a065fd2b24eddf26757ca194c6b0b81ca40ff40" + }, + { + "nr": 128811, + "hash": "88e630814cbeb055f0b0c02fd4298241b6400bcc" + }, + { + "nr": 130573, + "hash": "31507508b9293a2362f820a3f3b34a17b1e98712" + }, + { + "nr": 130905, + "hash": "8c66823f03a63bd17c1873b697516524ea462eef" + }, + { + "nr": 129832, + "hash": "bd9c94d348f5435035957b92b9a7ba35df095bfd" + }, + { + "nr": 122646, + "hash": "432dfd04a8857a00ba08b2b0d05afecc45436159" + }, + { + "nr": 129279, + "hash": "a263600a7b35f95571d0bfc1e85ca18120f7daf7" + }, + { + "nr": 129946, + "hash": "651d2db7d0de0ae79c4543d46f4e178c3641c39e" + }, + { + "nr": 129028, + "hash": "5ef514f693d166398d32bcc0701f75c73032ae3e" + }, + { + "nr": 129173, + "hash": "b4943d099505665feabc28b407ae24c4d41fcde9" + }, + { + "nr": 130058, + "hash": "18a3d76d4fb35ade72f1f36eca99f330f43c90f0" + }, + { + "nr": 130880, + "hash": "1d7d14bad58fd1040e962515f25045dc1426a721" + }, + { + "nr": 130701, + "hash": "d7e8ca8d10caf24cc65921544dec1d33bc3d60a6" + }, + { + "nr": 130725, + "hash": "ec0b8d1957b8b20e92d4e80d7e60cffdbe357148" + }, + { + "nr": 130394, + "hash": "fa46a36751cb742f93ec32f501fc00fadab0684d" + }, + { + "nr": 129452, + "hash": "0bf2440d3ae4b0bf07eb87674456a529ab48b195" + }, + { + "nr": 129151, + "hash": "0090cde9d29c4dbc64f8e1491a276f65382f9454" + }, + { + "nr": 130423, + "hash": "59549ccc0f6d05e0543bbbd99bc97b483a665b70" + }, + { + "nr": 129933, + "hash": "90683de5da15b95378e75366ffd9f424b6e0bd0d" + }, + { + "nr": 130113, + "hash": "d4130ce0e1536f5408ae28b98d8da825b6961d5d" + } + ] } \ No newline at end of file diff --git a/releases/release-1.33/release-notes/sessions/maps-1744804413.json b/releases/release-1.33/release-notes/sessions/maps-1744804413.json index 8c6386df574..1df011985a0 100644 --- a/releases/release-1.33/release-notes/sessions/maps-1744804413.json +++ b/releases/release-1.33/release-notes/sessions/maps-1744804413.json @@ -1,1031 +1,1031 @@ -{ - "mail": "sreeramvenkitesh@gmail.com", - "name": "sreeram-venkitesh", - "date": 1744804413, - "prs": [ - { - "nr": 130577, - "hash": "ff2757cc233e950a494133c09e7035b39e4bd382" - }, - { - "nr": 129688, - "hash": "b707ace711249932905dc54f936b2c58858a8e3d" - }, - { - "nr": 128929, - "hash": "19039846103240196333527809ecf6eece885d26" - }, - { - "nr": 129295, - "hash": "0a94ed3d040ed2faa569118f9618d90a1b8e47b6" - }, - { - "nr": 130138, - "hash": "34ce3ff8c1d45a054bd64e5ab63b4213738e265d" - }, - { - "nr": 129956, - "hash": "30b909b58f3f6b114fd6f6c296e4f21b3a95e0dd" - }, - { - "nr": 129644, - "hash": "e8c5dc3b954ad0351e7d55c5c828517cedbe7d0e" - }, - { - "nr": 129106, - "hash": "bfb6ee436078a595136c585f67d4b2b5b0872d05" - }, - { - "nr": 130573, - "hash": "31507508b9293a2362f820a3f3b34a17b1e98712" - }, - { - "nr": 130291, - "hash": "38de05f6e26a381151b730a0395eec357197013c" - }, - { - "nr": 129370, - "hash": "8eacd6c59693351c78e9292f931863b25f6b0cf8" - }, - { - "nr": 130162, - "hash": "5e72751fe51f2920d2e26ebfdfa187454bef27c4" - }, - { - "nr": 129422, - "hash": "f0e3731bf36dcfa092a57c829edd123890ae78a4" - }, - { - "nr": 130651, - "hash": "7e81d13368a99dcebe4db572bc7a6e6c662015ac" - }, - { - "nr": 130047, - "hash": "14a4a49f65897cb19d08d3affe5895d6bda4330c" - }, - { - "nr": 129545, - "hash": "db7647ef48833841f496054161d7d7bfc1b08a3b" - }, - { - "nr": 129170, - "hash": "44b23c05c679b3468a5b9633c88bc2dcd871e403" - }, - { - "nr": 128152, - "hash": "923f0082c27ed9bd2da6a1940f93296b345365d7" - }, - { - "nr": 130200, - "hash": "569e94f4486c0e9e50a03af74c2d881d8f49747d" - }, - { - "nr": 128546, - "hash": "1599a86ba4d235b8070c88dc54e1fbf2de197d19" - }, - { - "nr": 129934, - "hash": "18def36d1f513cf7d8bbf23041ec2a5be3053708" - }, - { - "nr": 129692, - "hash": "14ed14f1837cca92ec7ab1ee84d17c1458f889c4" - }, - { - "nr": 127193, - "hash": "d27fc143071c1c3dd23e49a8cfac34e90ac784b6" - }, - { - "nr": 130037, - "hash": "1e4a7b8f3d5ddde06177b81f54a306223bba6c64" - }, - { - "nr": 129816, - "hash": "84fa105271b4ea09fdc44bd072d027482e3dd304" - }, - { - "nr": 129594, - "hash": "cad45ed7870c70b7891c2c85297344703179747d" - }, - { - "nr": 130250, - "hash": "aa1a94b4135b177890e9f2a73d58c307d9bd8fec" - }, - { - "nr": 129375, - "hash": "ab7fd26cb187ee60cdd4a74bc0741f311c9a61ae" - }, - { - "nr": 129583, - "hash": "db39e9f730552aed80cf6c6c8bf8a203206a826b" - }, - { - "nr": 130183, - "hash": "25037b21fdabd6f5e82ba19ea1ece48862ffe5fa" - }, - { - "nr": 130045, - "hash": "4f96906e5c8320dd2231d01a69b9247f8f74f1df" - }, - { - "nr": 129776, - "hash": "bfc68c057ec92fb4f6788b6f00f393e1657d14bd" - }, - { - "nr": 129175, - "hash": "aef3a41ab54ea721814d45dcdd03d32ec9c8f0b4" - }, - { - "nr": 128516, - "hash": "992f89e3836107ed5d77fc90f8cdfecfc161254a" - }, - { - "nr": 129933, - "hash": "90683de5da15b95378e75366ffd9f424b6e0bd0d" - }, - { - "nr": 130797, - "hash": "1acb79417162c8a54abdfd7113a17458e8407708" - }, - { - "nr": 130491, - "hash": "e262706c20ec517b7b640b158bcb9d28df40c176" - }, - { - "nr": 128987, - "hash": "2f5fdc7c77d697d8262c02c33d30d374d043e028" - }, - { - "nr": 129401, - "hash": "c67dede235905e4bc125afb24d68663aef173281" - }, - { - "nr": 130875, - "hash": "b6d736c2fff395e592cf6bb442f92715e41eaa8f" - }, - { - "nr": 130347, - "hash": "dcd13c558e633c7adeb857d063984032070d5305" - }, - { - "nr": 130559, - "hash": "bb68542a6141dde8a97dad8451c0c440276144a0" - }, - { - "nr": 129946, - "hash": "651d2db7d0de0ae79c4543d46f4e178c3641c39e" - }, - { - "nr": 130401, - "hash": "45c96548d46a80a66ed37171e43052a4d2a4832a" - }, - { - "nr": 129770, - "hash": "671c76b7bd0f176bc05a2b2ed10c9c1d22863bb4" - }, - { - "nr": 130210, - "hash": "31690ce0281b699d6faef57b0f6b94a4b131ead1" - }, - { - "nr": 129620, - "hash": "7ee79e96734fde82091ef3a8ae022d1552fef22e" - }, - { - "nr": 130189, - "hash": "6cc19aa921f07346391dd3886433e6d2a354e253" - }, - { - "nr": 130621, - "hash": "2a4aa2ee204f8c5144137f5b6905808cf2492da6" - }, - { - "nr": 130424, - "hash": "3697476d5c7b32522a879ed97b62983243edefbb" - }, - { - "nr": 129930, - "hash": "31f027de6205109b9edb8bb5fc9e1486962e1436" - }, - { - "nr": 129271, - "hash": "2b17d32ae788cd1a675289e4a7d38a13ffc1846d" - }, - { - "nr": 130899, - "hash": "09d91292cabd6b030fedb967efd95fe3d326c093" - }, - { - "nr": 130260, - "hash": "407cc68941484921e27516a0b43417c12a997551" - }, - { - "nr": 130348, - "hash": "a6d08bae99a6769053da960d9dafe38d49bc7d46" - }, - { - "nr": 128971, - "hash": "60ff7b41bb7d5ec00a3e2b1ff6e2632741f9e384" - }, - { - "nr": 129450, - "hash": "2f8748086d160d499ed506daaf1fdfb2c148d2c9" - }, - { - "nr": 129028, - "hash": "5ef514f693d166398d32bcc0701f75c73032ae3e" - }, - { - "nr": 128906, - "hash": "d1f7e789498023a2e26106b4f3090d5212ed5f11" - }, - { - "nr": 130233, - "hash": "6a065fd2b24eddf26757ca194c6b0b81ca40ff40" - }, - { - "nr": 129560, - "hash": "1f29245ea1fcfd595c047cfd00c72ef615d2936e" - }, - { - "nr": 128810, - "hash": "d4ee0cbd1e167a6327e3b016fd528cdbb5775b46" - }, - { - "nr": 130798, - "hash": "96df9d9c2430431774db419fdc58714be076ec6d" - }, - { - "nr": 129497, - "hash": "9ecc4c3c4d813af4b51b9cf8266cfe7d753deb30" - }, - { - "nr": 128989, - "hash": "96f5692fe69b9bf860973afbab5f08145f1b3115" - }, - { - "nr": 129844, - "hash": "d4ff03a78af011a9d98ef90cd8df32d1cbb7b062" - }, - { - "nr": 129232, - "hash": "58257ff910db4f3f6d3642ce25d2ee08c1b80b39" - }, - { - "nr": 128621, - "hash": "7c9c14c2cd878bed3d5928bbe465a76e76ec35b5" - }, - { - "nr": 130556, - "hash": "170c371c8d91046d4eee0f6a0a58d2655d4d7e97" - }, - { - "nr": 130535, - "hash": "cc2ab3dd80dc24c4c9af2d98232f570606795642" - }, - { - "nr": 130463, - "hash": "710d6a3b57a9399f82687ca4fea6852e2d1dbfc2" - }, - { - "nr": 128824, - "hash": "b8c99695f91293d97fd93d066f47fdeb14ce6615" - }, - { - "nr": 129543, - "hash": "990e891e00cb4863efc3ecde67d4fefef5e96273" - }, - { - "nr": 129119, - "hash": "92985ad298fd9cff127c28bbb3209784a4677e20" - }, - { - "nr": 130536, - "hash": "4dbd4499064d9701cbec21f7f4fe45a9aa23d991" - }, - { - "nr": 127709, - "hash": "89ffc9f4630a2e56d0b717f1c238d1fa1b539f83" - }, - { - "nr": 129658, - "hash": "511ba8a4864cc1a09e09a20615e4a2821725d38a" - }, - { - "nr": 129207, - "hash": "d0977b3277003644515a1a4bec0cd181e07287e5" - }, - { - "nr": 131036, - "hash": "fd80f4055cea574a5ed1398c005b01f15806033d" - }, - { - "nr": 128786, - "hash": "18aa9d5716635c214359996df84fcd0aff1b32bb" - }, - { - "nr": 130655, - "hash": "11b9a2e3969bb46876c6443a3d507f07258eff53" - }, - { - "nr": 129334, - "hash": "abbcb01fd3659a783c15b26907157ad4440b3065" - }, - { - "nr": 129457, - "hash": "45db8a7fc289893efc7e33f8579d0fdfa7a7dff5" - }, - { - "nr": 128372, - "hash": "a3727232010728a7be46a7ebb0f7687ac9d3c2c3" - }, - { - "nr": 130537, - "hash": "d71a35eef3b6f9aa670ec2415ab3e781c14e845a" - }, - { - "nr": 129072, - "hash": "88361e3c91a7053936e1c326bbd4a8695433c40d" - }, - { - "nr": 130028, - "hash": "c84306639bb017c8856d6e94056e1f25ed94ebec" - }, - { - "nr": 130116, - "hash": "09fe5c69c57bed3107d9735bc49e67ccfbe095fd" - }, - { - "nr": 128850, - "hash": "ca7fa0be41f0cff975a0752d17167fe57e6a102d" - }, - { - "nr": 129023, - "hash": "bb67734d0e4927ba86b99b246506ea518c086839" - }, - { - "nr": 129872, - "hash": "cbc2cad60379e591720eb6114a991d863096d4c3" - }, - { - "nr": 130553, - "hash": "c8862c76c991dc8a78c9dbf474c93bb0f8b35166" - }, - { - "nr": 130742, - "hash": "1f9e83cec80ae17496c0ff46d6b76acfd7d6c0d2" - }, - { - "nr": 128857, - "hash": "f865ddd503d9e6d725bbaac7f70bdc08e793a197" - }, - { - "nr": 128212, - "hash": "ba25e332401d9884ac22d2f15e955e38e2e98698" - }, - { - "nr": 130880, - "hash": "1d7d14bad58fd1040e962515f25045dc1426a721" - }, - { - "nr": 130007, - "hash": "92aff56031dd854eef2b9c1be609c4978d3adad0" - }, - { - "nr": 130243, - "hash": "491944ed2249a056ddf0eaaee5fb25982a083b98" - }, - { - "nr": 130328, - "hash": "5399763508c6167f44737ef6a7da1a819ca727c1" - }, - { - "nr": 130013, - "hash": "19f90d43c3a952cd0e4a9b408e8e358bdd5bd6a1" - }, - { - "nr": 129317, - "hash": "154b2661c9791afd57f558f7601221112f751edc" - }, - { - "nr": 130876, - "hash": "fae720398a22b216101283040d1d1a6c51072c31" - }, - { - "nr": 130225, - "hash": "6739fb1021b67e9c1e6d222f6e31165cc10e6a38" - }, - { - "nr": 130673, - "hash": "012ecce8cc09d62174f59d106254bf920f3ca4f5" - }, - { - "nr": 129661, - "hash": "736e153f0dd06443248732012ea6486f4b8f0813" - }, - { - "nr": 127375, - "hash": "c8660783bfe6d98657e1f12717a965870d02605f" - }, - { - "nr": 128950, - "hash": "eb06b6aa1a3a3a92458d8805130bda5bc789b49d" - }, - { - "nr": 128886, - "hash": "c3081c4638367b40a5d065903759c3f746ee389c" - }, - { - "nr": 131020, - "hash": "a807622ae20c19d5f938bb069d6283aca3268a97" - }, - { - "nr": 130033, - "hash": "a85028e014cb4c4697223513274b6e2891c4b7ef" - }, - { - "nr": 128499, - "hash": "f32d9ba89fa6dc4d55fc62318c05d757e6dfc2fa" - }, - { - "nr": 130335, - "hash": "fc5ada7202f38ff2bf052ff4fe8ec7bcfb8184ff" - }, - { - "nr": 127525, - "hash": "1a94c89a82f1fe28dfcc549fab4de48c8665a42d" - }, - { - "nr": 125901, - "hash": "dc30b3192ecae98d425c1c9e679762b46642ed1b" - }, - { - "nr": 129257, - "hash": "6fd6805e0b586a9177858794a5ff26eff116828d" - }, - { - "nr": 127897, - "hash": "9108576bf8d9af310fef1396e6986b0458f7aee2" - }, - { - "nr": 130908, - "hash": "095efe1e5dd67645a1ff3afb0e529a2b9c13d924" - }, - { - "nr": 130290, - "hash": "eee3f6a37c704165d6b72bb7dc7e95324fbc5bc1" - }, - { - "nr": 130544, - "hash": "52fcf8eefbac4b6f5268348d6cb43c5900ea2508" - }, - { - "nr": 127577, - "hash": "3b83b073acccb6bc77bad0a67327ab49b56f1b73" - }, - { - "nr": 130113, - "hash": "d4130ce0e1536f5408ae28b98d8da825b6961d5d" - }, - { - "nr": 130658, - "hash": "663d5ea18ecc74fc842eb68545add8356de8f60b" - }, - { - "nr": 129887, - "hash": "c7f31fde3f845485394cb1488462d177a7b0bcb2" - }, - { - "nr": 129301, - "hash": "b29bd36925c1608cace140071d83abf4a28a603d" - }, - { - "nr": 128985, - "hash": "890aa1c30429d48f2e13aa3c43a1d15bad46adb4" - }, - { - "nr": 130701, - "hash": "d7e8ca8d10caf24cc65921544dec1d33bc3d60a6" - }, - { - "nr": 129950, - "hash": "18df4627a91d2e2d6c62c4df0ed5d211e37c5543" - }, - { - "nr": 129058, - "hash": "fa9c9848714a9770b5ff279f989bae2a96d3eecc" - }, - { - "nr": 130128, - "hash": "88f31142125b38d12acf2c52876d2f30f9453543" - }, - { - "nr": 128972, - "hash": "bff56bd2ceda3a088984c969312d4e7cda0049f6" - }, - { - "nr": 128811, - "hash": "88e630814cbeb055f0b0c02fd4298241b6400bcc" - }, - { - "nr": 129116, - "hash": "df53ae24534f6f77c8230f2d5d0ed00cd615ab61" - }, - { - "nr": 129151, - "hash": "0090cde9d29c4dbc64f8e1491a276f65382f9454" - }, - { - "nr": 130574, - "hash": "0f3c63cf4f1b498342ab0fe7fa8ba671a1f35824" - }, - { - "nr": 129790, - "hash": "dbbcfd0770563dfae3c443148f8fc92e816616ea" - }, - { - "nr": 130256, - "hash": "2975ea9ac3b78a482f26932e250f9c0a0e492fb2" - }, - { - "nr": 129731, - "hash": "3f3d716cc700497f980841ea3bfb351afa4cfea0" - }, - { - "nr": 128818, - "hash": "cd3463799356b02e8faad74ee811b8b1d9ca1e16" - }, - { - "nr": 131103, - "hash": "2e651db0f2ed46b761cc9d51a711321c50c5721a" - }, - { - "nr": 130751, - "hash": "ead20ef370862e4efecf0c18da1fa47274a0b8eb" - }, - { - "nr": 130475, - "hash": "90aecdc7adfeb350695c3725dde0aa4a3b787346" - }, - { - "nr": 128926, - "hash": "214aec3475310f1b4320a58b7296e10fca3d3811" - }, - { - "nr": 130772, - "hash": "7e5798fdc5df3eae25e8ef43342e8b3a0385d661" - }, - { - "nr": 130649, - "hash": "2c414f2e8285780c2116af963e7b60f1de190ba3" - }, - { - "nr": 130711, - "hash": "6b3e892ff7287ec496ad3abec910281d3724df0b" - }, - { - "nr": 130507, - "hash": "bf0bc1ae655532c5494fbe8a32bd4426ed8b6d71" - }, - { - "nr": 130394, - "hash": "fa46a36751cb742f93ec32f501fc00fadab0684d" - }, - { - "nr": 130181, - "hash": "deb49e5ad750c55a4a06c0c1e40fb6bf0c598620" - }, - { - "nr": 129962, - "hash": "1bd0567b83a2c03acb7c6ec8df9d1fdf5e644ed3" - }, - { - "nr": 130831, - "hash": "39a8f683ac46af9cb8aaa00dccbc97194c6a37e1" - }, - { - "nr": 130725, - "hash": "ec0b8d1957b8b20e92d4e80d7e60cffdbe357148" - }, - { - "nr": 130626, - "hash": "c7b5ef57e83363a9d43e5b94e25769d89fffcb95" - }, - { - "nr": 130352, - "hash": "96968be58f7b3ed711d6581fd615641d5f6c1c82" - }, - { - "nr": 130450, - "hash": "c6d485f7f260e79bd1f8c36f5dfd96f20f2dfb50" - }, - { - "nr": 129307, - "hash": "cea84a9e2212cc006864c853057e05071a30fbd8" - }, - { - "nr": 129996, - "hash": "bacd11bef941d367faa9f713e9ae1c1412422c72" - }, - { - "nr": 130074, - "hash": "f63602fad519122f074b4ca65e44b310c000c149" - }, - { - "nr": 130133, - "hash": "3cd23be3e3d74f7dc1e916de6b055ce930b5d27f" - }, - { - "nr": 125230, - "hash": "c25721cf368266e7e5363a44ba655efa69b2c270" - }, - { - "nr": 129368, - "hash": "ac57d0ab5da5b77fb416afb026172d196c282742" - }, - { - "nr": 130017, - "hash": "3cc7196c0b30589e0fd2921ff6f01b6bbb1cbe6c" - }, - { - "nr": 128662, - "hash": "e1eca1635b1c7a184baaa7494c41d372c7d0a832" - }, - { - "nr": 130902, - "hash": "056f92216817086387940fdd4cdec081ebed9de5" - }, - { - "nr": 129923, - "hash": "333249bbfa90e6957408aa55a882a9982a2d3a6b" - }, - { - "nr": 130329, - "hash": "e6171530c6d56c05d54aa98f88f6b2221a273621" - }, - { - "nr": 130032, - "hash": "e9612d9bf3786908508c075bb43cfc7bd1ed785e" - }, - { - "nr": 129670, - "hash": "857695601f289d0fd6c7a83bb727ee4aeabe78bc" - }, - { - "nr": 130920, - "hash": "41fd321f3f4d9b5db16de99b775340605c99ca9a" - }, - { - "nr": 129713, - "hash": "f47eb9e10ddef7514753f0c61ff838fb2d0a5428" - }, - { - "nr": 130844, - "hash": "217f99dd3b718df0f2428b1e0dc05480167a4343" - }, - { - "nr": 130550, - "hash": "818dcbe97ae844f8c837fcf18f872aa00c4680c4" - }, - { - "nr": 129407, - "hash": "90f799627d2e7ea89fff7f99c500ba458e6aedfe" - }, - { - "nr": 130650, - "hash": "372fd4e773f222309c5f740bc143093907f0d3c4" - }, - { - "nr": 129635, - "hash": "044530fd43cc0e4f0c1ab58907c596668f68f625" - }, - { - "nr": 129589, - "hash": "c28f5ab4c0d6e3d8a8e23f2827532754164ea446" - }, - { - "nr": 130447, - "hash": "550b8e3d8e693207d3a0a751c9b189df6d680173" - }, - { - "nr": 122646, - "hash": "432dfd04a8857a00ba08b2b0d05afecc45436159" - }, - { - "nr": 129174, - "hash": "7b7f5b2d7c07d020ab631748ad58de61ddb68a29" - }, - { - "nr": 129296, - "hash": "3546935a2c54765dd5315d17b93b9dd63738c688" - }, - { - "nr": 130204, - "hash": "8c7ed193b0fda658855c6c391ed3b9fd7b25f4d3" - }, - { - "nr": 129859, - "hash": "534b73336d964385c7fe6184be3948de03f1afa6" - }, - { - "nr": 129017, - "hash": "a76bea0bbe8aafbbc30d06d90067e2d90303fe18" - }, - { - "nr": 130935, - "hash": "369a0c8bf89fdbfbda64a3c37cb16156ec140b72" - }, - { - "nr": 130061, - "hash": "f2eca567773d9d57d1f58c54fdfe613a7a88c462" - }, - { - "nr": 129993, - "hash": "1976fbeb39f977e2946f6f5762654ef61891449c" - }, - { - "nr": 129568, - "hash": "bae88f0ec48e27c2048422dbca7725ed03b63e45" - }, - { - "nr": 129452, - "hash": "0bf2440d3ae4b0bf07eb87674456a529ab48b195" - }, - { - "nr": 130870, - "hash": "38535cf92ca1158ba8d946a2691f36bd1d578240" - }, - { - "nr": 130571, - "hash": "df4805bdb3a80b4250b11f40d32a134de07fae59" - }, - { - "nr": 129656, - "hash": "9d23a0bf26813baecc3b287930f3b610a0c30e0a" - }, - { - "nr": 129297, - "hash": "e322df2b3a0964581b69d8e6b552215c256a3e33" - }, - { - "nr": 129823, - "hash": "4a9ef46da3300dc78fd610f4a9dae5d80d5f4d79" - }, - { - "nr": 129591, - "hash": "906a108819857f2295b01a4f74c3d94d413b4d11" - }, - { - "nr": 129131, - "hash": "0fa5b573507284450042f4bb2b1d4e245d38e534" - }, - { - "nr": 127053, - "hash": "dac4c33e4027c93c3ed29ec1c361dd41784b8aed" - }, - { - "nr": 127696, - "hash": "9dda86df4dbc36d3bfc099cc876b28d40690d72a" - }, - { - "nr": 130905, - "hash": "8c66823f03a63bd17c1873b697516524ea462eef" - }, - { - "nr": 130019, - "hash": "f0079d503320ee2314bfc5227f3f3bb24b9cf4b7" - }, - { - "nr": 130564, - "hash": "8419c8d9c2f14af3bf35287bc7a443c83ea0f5d1" - }, - { - "nr": 130814, - "hash": "65a7ca494852a793b728c8093b7b83f85cea00a3" - }, - { - "nr": 130101, - "hash": "7abae0fb9ad5ab291841ab5678e4e52e9a17df25" - }, - { - "nr": 130238, - "hash": "954e3634bc4c59580c379d2cc5fe7fc3c87815b4" - }, - { - "nr": 128991, - "hash": "f49907cb1ae23a1caa645e280c17ec712f31a1d3" - }, - { - "nr": 129186, - "hash": "f66e6df310027fa145c5cf95fb7f8453e667d2d7" - }, - { - "nr": 129630, - "hash": "6ff73ff0c0fe8d1a926a714705559d08c7906ea7" - }, - { - "nr": 127092, - "hash": "e74a55b800f7d38e2bdeee5caf848d9307f0367f" - }, - { - "nr": 130728, - "hash": "1372c25c8c102b45f529a6d66edd8c699fdc7bce" - }, - { - "nr": 122550, - "hash": "cb421bc33689b3a85d6e838bdaeadc3e6912bd18" - }, - { - "nr": 130485, - "hash": "18d9b9a80ec5f44d48c8fa32e989f4f68bbcb767" - }, - { - "nr": 130398, - "hash": "dc0759da9dafd605398a528d92c2601bec27482a" - }, - { - "nr": 130098, - "hash": "f790f19ff7bc79f515e8c5484d7942b3e5f9d891" - }, - { - "nr": 129173, - "hash": "b4943d099505665feabc28b407ae24c4d41fcde9" - }, - { - "nr": 130738, - "hash": "465a9fc20edc05391304b45bb587724b01d22d13" - }, - { - "nr": 130616, - "hash": "213b645bc693405f8008cad62f5c6ef99f569b66" - }, - { - "nr": 129498, - "hash": "31e47e3843efd5eb0301200ba4876675bb152fb9" - }, - { - "nr": 128184, - "hash": "734e4ace0b1bf8705f5584b76883ab35fc1f3c29" - }, - { - "nr": 129954, - "hash": "3d4b34f229792c3711751bbf8c8a8c78729e9485" - }, - { - "nr": 130354, - "hash": "024c206af34165e8931099731fecd26425e0647a" - }, - { - "nr": 130484, - "hash": "4f9ff180e59bc7ab1735a511f39ac1868f243900" - }, - { - "nr": 129219, - "hash": "f06f60c0d13b7117fc8e5265333637d5ce209f75" - }, - { - "nr": 129006, - "hash": "140ac1c5323bd4cbd3d2d8f88fcb749f66e8afde" - }, - { - "nr": 129486, - "hash": "c1b81aeeb515f5bb3466aad413d1188ea37bb0e8" - }, - { - "nr": 129500, - "hash": "9384e309b6a8bf320b5646f7cdaf72db987bdcd9" - }, - { - "nr": 130733, - "hash": "7261d4ffe0b5a24db4a1ec329f9e822cf640be28" - }, - { - "nr": 128367, - "hash": "6cbb886ff3dd1ee8088dec2c6a477868c21a0fcf" - }, - { - "nr": 129418, - "hash": "04b94cd6665816cf7b52dd6b0edfc40c357bbbc4" - }, - { - "nr": 130541, - "hash": "901f7e4927cda019d8a18b528264688956bcba0f" - }, - { - "nr": 130764, - "hash": "ce84fefbb988be42f4fc8ab6d82b751ea9742568" - }, - { - "nr": 130202, - "hash": "1ed17ffcee4118aaf8db03622ccf64f90fad6f2d" - }, - { - "nr": 129653, - "hash": "c1ea965a02c6afa3fbc810cc949130900e08384d" - }, - { - "nr": 128086, - "hash": "41c4057d5ccc0586e2800c7b72eb5ecb16b36f40" - }, - { - "nr": 129279, - "hash": "a263600a7b35f95571d0bfc1e85ca18120f7daf7" - }, - { - "nr": 129826, - "hash": "4fae03f885ee9c03cab4bee43363512c39c19b73" - }, - { - "nr": 130060, - "hash": "a0c3fb9151b7579302f638192b860e274d347b73" - }, - { - "nr": 130423, - "hash": "59549ccc0f6d05e0543bbbd99bc97b483a665b70" - }, - { - "nr": 129506, - "hash": "62c8f1039aeec6d81678032c7fb1f032ccc49434" - }, - { - "nr": 128856, - "hash": "fadefad09154c419b0edaf43bb4b56b497e2c73e" - }, - { - "nr": 129832, - "hash": "bd9c94d348f5435035957b92b9a7ba35df095bfd" - }, - { - "nr": 130560, - "hash": "e5776fa44cd4ac38eaa9e526fb11a69bac172090" - }, - { - "nr": 130345, - "hash": "33da39dff3a7ba72990d58295e7e5ba90f65bd95" - }, - { - "nr": 130023, - "hash": "afb5bdcdda039583545df07421becec7b404994f" - }, - { - "nr": 129893, - "hash": "a003637ba68d1a9532f07888a05519ffcb244277" - }, - { - "nr": 130058, - "hash": "18a3d76d4fb35ade72f1f36eca99f330f43c90f0" - }, - { - "nr": 130040, - "hash": "ca7067b2c08df6f5f2d05d368f340e2b92b9ae43" - }, - { - "nr": 130591, - "hash": "5f254385ffdc75cca7ca420a7c09bcd17ab6869a" - }, - { - "nr": 129929, - "hash": "7a4deb331b4b4ad1d4192f1b551061bcc78d3513" - }, - { - "nr": 129278, - "hash": "247acd1f9ed35fbd0c74ba987958c4d15cb2e953" - }, - { - "nr": 130666, - "hash": "5776fccaa3c539d48d1ed1e4e9f1d88ea855adea" - }, - { - "nr": 124360, - "hash": "812f324892fe272e02e2c7f3cd93ae2b3b44c74a" - }, - { - "nr": 130135, - "hash": "ae6d6fb1cc20dd642a1fde06024f65f45f54ddd8" - }, - { - "nr": 130599, - "hash": "f8bb64d268dc72a7a050257f79de9e3488814cb8" - }, - { - "nr": 128586, - "hash": "21ea3ad49731154f4514b4d4f7124444d7f71457" - }, - { - "nr": 129142, - "hash": "51dbe8f402b86df81dd6a455854f0f294e13dff6" - }, - { - "nr": 129970, - "hash": "0c2a15521a037bd798db4b23f62912b38db70920" - }, - { - "nr": 130035, - "hash": "82a91765d33999054a88d4d56e9461e7b82601ae" - }, - { - "nr": 130405, - "hash": "36592c7a7caa7ace99ac12a9456da05bfb0d224f" - } - ] +{ + "mail": "sreeramvenkitesh@gmail.com", + "name": "sreeram-venkitesh", + "date": 1744804413, + "prs": [ + { + "nr": 130577, + "hash": "ff2757cc233e950a494133c09e7035b39e4bd382" + }, + { + "nr": 129688, + "hash": "b707ace711249932905dc54f936b2c58858a8e3d" + }, + { + "nr": 128929, + "hash": "19039846103240196333527809ecf6eece885d26" + }, + { + "nr": 129295, + "hash": "0a94ed3d040ed2faa569118f9618d90a1b8e47b6" + }, + { + "nr": 130138, + "hash": "34ce3ff8c1d45a054bd64e5ab63b4213738e265d" + }, + { + "nr": 129956, + "hash": "30b909b58f3f6b114fd6f6c296e4f21b3a95e0dd" + }, + { + "nr": 129644, + "hash": "e8c5dc3b954ad0351e7d55c5c828517cedbe7d0e" + }, + { + "nr": 129106, + "hash": "bfb6ee436078a595136c585f67d4b2b5b0872d05" + }, + { + "nr": 130573, + "hash": "31507508b9293a2362f820a3f3b34a17b1e98712" + }, + { + "nr": 130291, + "hash": "38de05f6e26a381151b730a0395eec357197013c" + }, + { + "nr": 129370, + "hash": "8eacd6c59693351c78e9292f931863b25f6b0cf8" + }, + { + "nr": 130162, + "hash": "5e72751fe51f2920d2e26ebfdfa187454bef27c4" + }, + { + "nr": 129422, + "hash": "f0e3731bf36dcfa092a57c829edd123890ae78a4" + }, + { + "nr": 130651, + "hash": "7e81d13368a99dcebe4db572bc7a6e6c662015ac" + }, + { + "nr": 130047, + "hash": "14a4a49f65897cb19d08d3affe5895d6bda4330c" + }, + { + "nr": 129545, + "hash": "db7647ef48833841f496054161d7d7bfc1b08a3b" + }, + { + "nr": 129170, + "hash": "44b23c05c679b3468a5b9633c88bc2dcd871e403" + }, + { + "nr": 128152, + "hash": "923f0082c27ed9bd2da6a1940f93296b345365d7" + }, + { + "nr": 130200, + "hash": "569e94f4486c0e9e50a03af74c2d881d8f49747d" + }, + { + "nr": 128546, + "hash": "1599a86ba4d235b8070c88dc54e1fbf2de197d19" + }, + { + "nr": 129934, + "hash": "18def36d1f513cf7d8bbf23041ec2a5be3053708" + }, + { + "nr": 129692, + "hash": "14ed14f1837cca92ec7ab1ee84d17c1458f889c4" + }, + { + "nr": 127193, + "hash": "d27fc143071c1c3dd23e49a8cfac34e90ac784b6" + }, + { + "nr": 130037, + "hash": "1e4a7b8f3d5ddde06177b81f54a306223bba6c64" + }, + { + "nr": 129816, + "hash": "84fa105271b4ea09fdc44bd072d027482e3dd304" + }, + { + "nr": 129594, + "hash": "cad45ed7870c70b7891c2c85297344703179747d" + }, + { + "nr": 130250, + "hash": "aa1a94b4135b177890e9f2a73d58c307d9bd8fec" + }, + { + "nr": 129375, + "hash": "ab7fd26cb187ee60cdd4a74bc0741f311c9a61ae" + }, + { + "nr": 129583, + "hash": "db39e9f730552aed80cf6c6c8bf8a203206a826b" + }, + { + "nr": 130183, + "hash": "25037b21fdabd6f5e82ba19ea1ece48862ffe5fa" + }, + { + "nr": 130045, + "hash": "4f96906e5c8320dd2231d01a69b9247f8f74f1df" + }, + { + "nr": 129776, + "hash": "bfc68c057ec92fb4f6788b6f00f393e1657d14bd" + }, + { + "nr": 129175, + "hash": "aef3a41ab54ea721814d45dcdd03d32ec9c8f0b4" + }, + { + "nr": 128516, + "hash": "992f89e3836107ed5d77fc90f8cdfecfc161254a" + }, + { + "nr": 129933, + "hash": "90683de5da15b95378e75366ffd9f424b6e0bd0d" + }, + { + "nr": 130797, + "hash": "1acb79417162c8a54abdfd7113a17458e8407708" + }, + { + "nr": 130491, + "hash": "e262706c20ec517b7b640b158bcb9d28df40c176" + }, + { + "nr": 128987, + "hash": "2f5fdc7c77d697d8262c02c33d30d374d043e028" + }, + { + "nr": 129401, + "hash": "c67dede235905e4bc125afb24d68663aef173281" + }, + { + "nr": 130875, + "hash": "b6d736c2fff395e592cf6bb442f92715e41eaa8f" + }, + { + "nr": 130347, + "hash": "dcd13c558e633c7adeb857d063984032070d5305" + }, + { + "nr": 130559, + "hash": "bb68542a6141dde8a97dad8451c0c440276144a0" + }, + { + "nr": 129946, + "hash": "651d2db7d0de0ae79c4543d46f4e178c3641c39e" + }, + { + "nr": 130401, + "hash": "45c96548d46a80a66ed37171e43052a4d2a4832a" + }, + { + "nr": 129770, + "hash": "671c76b7bd0f176bc05a2b2ed10c9c1d22863bb4" + }, + { + "nr": 130210, + "hash": "31690ce0281b699d6faef57b0f6b94a4b131ead1" + }, + { + "nr": 129620, + "hash": "7ee79e96734fde82091ef3a8ae022d1552fef22e" + }, + { + "nr": 130189, + "hash": "6cc19aa921f07346391dd3886433e6d2a354e253" + }, + { + "nr": 130621, + "hash": "2a4aa2ee204f8c5144137f5b6905808cf2492da6" + }, + { + "nr": 130424, + "hash": "3697476d5c7b32522a879ed97b62983243edefbb" + }, + { + "nr": 129930, + "hash": "31f027de6205109b9edb8bb5fc9e1486962e1436" + }, + { + "nr": 129271, + "hash": "2b17d32ae788cd1a675289e4a7d38a13ffc1846d" + }, + { + "nr": 130899, + "hash": "09d91292cabd6b030fedb967efd95fe3d326c093" + }, + { + "nr": 130260, + "hash": "407cc68941484921e27516a0b43417c12a997551" + }, + { + "nr": 130348, + "hash": "a6d08bae99a6769053da960d9dafe38d49bc7d46" + }, + { + "nr": 128971, + "hash": "60ff7b41bb7d5ec00a3e2b1ff6e2632741f9e384" + }, + { + "nr": 129450, + "hash": "2f8748086d160d499ed506daaf1fdfb2c148d2c9" + }, + { + "nr": 129028, + "hash": "5ef514f693d166398d32bcc0701f75c73032ae3e" + }, + { + "nr": 128906, + "hash": "d1f7e789498023a2e26106b4f3090d5212ed5f11" + }, + { + "nr": 130233, + "hash": "6a065fd2b24eddf26757ca194c6b0b81ca40ff40" + }, + { + "nr": 129560, + "hash": "1f29245ea1fcfd595c047cfd00c72ef615d2936e" + }, + { + "nr": 128810, + "hash": "d4ee0cbd1e167a6327e3b016fd528cdbb5775b46" + }, + { + "nr": 130798, + "hash": "96df9d9c2430431774db419fdc58714be076ec6d" + }, + { + "nr": 129497, + "hash": "9ecc4c3c4d813af4b51b9cf8266cfe7d753deb30" + }, + { + "nr": 128989, + "hash": "96f5692fe69b9bf860973afbab5f08145f1b3115" + }, + { + "nr": 129844, + "hash": "d4ff03a78af011a9d98ef90cd8df32d1cbb7b062" + }, + { + "nr": 129232, + "hash": "58257ff910db4f3f6d3642ce25d2ee08c1b80b39" + }, + { + "nr": 128621, + "hash": "7c9c14c2cd878bed3d5928bbe465a76e76ec35b5" + }, + { + "nr": 130556, + "hash": "170c371c8d91046d4eee0f6a0a58d2655d4d7e97" + }, + { + "nr": 130535, + "hash": "cc2ab3dd80dc24c4c9af2d98232f570606795642" + }, + { + "nr": 130463, + "hash": "710d6a3b57a9399f82687ca4fea6852e2d1dbfc2" + }, + { + "nr": 128824, + "hash": "b8c99695f91293d97fd93d066f47fdeb14ce6615" + }, + { + "nr": 129543, + "hash": "990e891e00cb4863efc3ecde67d4fefef5e96273" + }, + { + "nr": 129119, + "hash": "92985ad298fd9cff127c28bbb3209784a4677e20" + }, + { + "nr": 130536, + "hash": "4dbd4499064d9701cbec21f7f4fe45a9aa23d991" + }, + { + "nr": 127709, + "hash": "89ffc9f4630a2e56d0b717f1c238d1fa1b539f83" + }, + { + "nr": 129658, + "hash": "511ba8a4864cc1a09e09a20615e4a2821725d38a" + }, + { + "nr": 129207, + "hash": "d0977b3277003644515a1a4bec0cd181e07287e5" + }, + { + "nr": 131036, + "hash": "fd80f4055cea574a5ed1398c005b01f15806033d" + }, + { + "nr": 128786, + "hash": "18aa9d5716635c214359996df84fcd0aff1b32bb" + }, + { + "nr": 130655, + "hash": "11b9a2e3969bb46876c6443a3d507f07258eff53" + }, + { + "nr": 129334, + "hash": "abbcb01fd3659a783c15b26907157ad4440b3065" + }, + { + "nr": 129457, + "hash": "45db8a7fc289893efc7e33f8579d0fdfa7a7dff5" + }, + { + "nr": 128372, + "hash": "a3727232010728a7be46a7ebb0f7687ac9d3c2c3" + }, + { + "nr": 130537, + "hash": "d71a35eef3b6f9aa670ec2415ab3e781c14e845a" + }, + { + "nr": 129072, + "hash": "88361e3c91a7053936e1c326bbd4a8695433c40d" + }, + { + "nr": 130028, + "hash": "c84306639bb017c8856d6e94056e1f25ed94ebec" + }, + { + "nr": 130116, + "hash": "09fe5c69c57bed3107d9735bc49e67ccfbe095fd" + }, + { + "nr": 128850, + "hash": "ca7fa0be41f0cff975a0752d17167fe57e6a102d" + }, + { + "nr": 129023, + "hash": "bb67734d0e4927ba86b99b246506ea518c086839" + }, + { + "nr": 129872, + "hash": "cbc2cad60379e591720eb6114a991d863096d4c3" + }, + { + "nr": 130553, + "hash": "c8862c76c991dc8a78c9dbf474c93bb0f8b35166" + }, + { + "nr": 130742, + "hash": "1f9e83cec80ae17496c0ff46d6b76acfd7d6c0d2" + }, + { + "nr": 128857, + "hash": "f865ddd503d9e6d725bbaac7f70bdc08e793a197" + }, + { + "nr": 128212, + "hash": "ba25e332401d9884ac22d2f15e955e38e2e98698" + }, + { + "nr": 130880, + "hash": "1d7d14bad58fd1040e962515f25045dc1426a721" + }, + { + "nr": 130007, + "hash": "92aff56031dd854eef2b9c1be609c4978d3adad0" + }, + { + "nr": 130243, + "hash": "491944ed2249a056ddf0eaaee5fb25982a083b98" + }, + { + "nr": 130328, + "hash": "5399763508c6167f44737ef6a7da1a819ca727c1" + }, + { + "nr": 130013, + "hash": "19f90d43c3a952cd0e4a9b408e8e358bdd5bd6a1" + }, + { + "nr": 129317, + "hash": "154b2661c9791afd57f558f7601221112f751edc" + }, + { + "nr": 130876, + "hash": "fae720398a22b216101283040d1d1a6c51072c31" + }, + { + "nr": 130225, + "hash": "6739fb1021b67e9c1e6d222f6e31165cc10e6a38" + }, + { + "nr": 130673, + "hash": "012ecce8cc09d62174f59d106254bf920f3ca4f5" + }, + { + "nr": 129661, + "hash": "736e153f0dd06443248732012ea6486f4b8f0813" + }, + { + "nr": 127375, + "hash": "c8660783bfe6d98657e1f12717a965870d02605f" + }, + { + "nr": 128950, + "hash": "eb06b6aa1a3a3a92458d8805130bda5bc789b49d" + }, + { + "nr": 128886, + "hash": "c3081c4638367b40a5d065903759c3f746ee389c" + }, + { + "nr": 131020, + "hash": "a807622ae20c19d5f938bb069d6283aca3268a97" + }, + { + "nr": 130033, + "hash": "a85028e014cb4c4697223513274b6e2891c4b7ef" + }, + { + "nr": 128499, + "hash": "f32d9ba89fa6dc4d55fc62318c05d757e6dfc2fa" + }, + { + "nr": 130335, + "hash": "fc5ada7202f38ff2bf052ff4fe8ec7bcfb8184ff" + }, + { + "nr": 127525, + "hash": "1a94c89a82f1fe28dfcc549fab4de48c8665a42d" + }, + { + "nr": 125901, + "hash": "dc30b3192ecae98d425c1c9e679762b46642ed1b" + }, + { + "nr": 129257, + "hash": "6fd6805e0b586a9177858794a5ff26eff116828d" + }, + { + "nr": 127897, + "hash": "9108576bf8d9af310fef1396e6986b0458f7aee2" + }, + { + "nr": 130908, + "hash": "095efe1e5dd67645a1ff3afb0e529a2b9c13d924" + }, + { + "nr": 130290, + "hash": "eee3f6a37c704165d6b72bb7dc7e95324fbc5bc1" + }, + { + "nr": 130544, + "hash": "52fcf8eefbac4b6f5268348d6cb43c5900ea2508" + }, + { + "nr": 127577, + "hash": "3b83b073acccb6bc77bad0a67327ab49b56f1b73" + }, + { + "nr": 130113, + "hash": "d4130ce0e1536f5408ae28b98d8da825b6961d5d" + }, + { + "nr": 130658, + "hash": "663d5ea18ecc74fc842eb68545add8356de8f60b" + }, + { + "nr": 129887, + "hash": "c7f31fde3f845485394cb1488462d177a7b0bcb2" + }, + { + "nr": 129301, + "hash": "b29bd36925c1608cace140071d83abf4a28a603d" + }, + { + "nr": 128985, + "hash": "890aa1c30429d48f2e13aa3c43a1d15bad46adb4" + }, + { + "nr": 130701, + "hash": "d7e8ca8d10caf24cc65921544dec1d33bc3d60a6" + }, + { + "nr": 129950, + "hash": "18df4627a91d2e2d6c62c4df0ed5d211e37c5543" + }, + { + "nr": 129058, + "hash": "fa9c9848714a9770b5ff279f989bae2a96d3eecc" + }, + { + "nr": 130128, + "hash": "88f31142125b38d12acf2c52876d2f30f9453543" + }, + { + "nr": 128972, + "hash": "bff56bd2ceda3a088984c969312d4e7cda0049f6" + }, + { + "nr": 128811, + "hash": "88e630814cbeb055f0b0c02fd4298241b6400bcc" + }, + { + "nr": 129116, + "hash": "df53ae24534f6f77c8230f2d5d0ed00cd615ab61" + }, + { + "nr": 129151, + "hash": "0090cde9d29c4dbc64f8e1491a276f65382f9454" + }, + { + "nr": 130574, + "hash": "0f3c63cf4f1b498342ab0fe7fa8ba671a1f35824" + }, + { + "nr": 129790, + "hash": "dbbcfd0770563dfae3c443148f8fc92e816616ea" + }, + { + "nr": 130256, + "hash": "2975ea9ac3b78a482f26932e250f9c0a0e492fb2" + }, + { + "nr": 129731, + "hash": "3f3d716cc700497f980841ea3bfb351afa4cfea0" + }, + { + "nr": 128818, + "hash": "cd3463799356b02e8faad74ee811b8b1d9ca1e16" + }, + { + "nr": 131103, + "hash": "2e651db0f2ed46b761cc9d51a711321c50c5721a" + }, + { + "nr": 130751, + "hash": "ead20ef370862e4efecf0c18da1fa47274a0b8eb" + }, + { + "nr": 130475, + "hash": "90aecdc7adfeb350695c3725dde0aa4a3b787346" + }, + { + "nr": 128926, + "hash": "214aec3475310f1b4320a58b7296e10fca3d3811" + }, + { + "nr": 130772, + "hash": "7e5798fdc5df3eae25e8ef43342e8b3a0385d661" + }, + { + "nr": 130649, + "hash": "2c414f2e8285780c2116af963e7b60f1de190ba3" + }, + { + "nr": 130711, + "hash": "6b3e892ff7287ec496ad3abec910281d3724df0b" + }, + { + "nr": 130507, + "hash": "bf0bc1ae655532c5494fbe8a32bd4426ed8b6d71" + }, + { + "nr": 130394, + "hash": "fa46a36751cb742f93ec32f501fc00fadab0684d" + }, + { + "nr": 130181, + "hash": "deb49e5ad750c55a4a06c0c1e40fb6bf0c598620" + }, + { + "nr": 129962, + "hash": "1bd0567b83a2c03acb7c6ec8df9d1fdf5e644ed3" + }, + { + "nr": 130831, + "hash": "39a8f683ac46af9cb8aaa00dccbc97194c6a37e1" + }, + { + "nr": 130725, + "hash": "ec0b8d1957b8b20e92d4e80d7e60cffdbe357148" + }, + { + "nr": 130626, + "hash": "c7b5ef57e83363a9d43e5b94e25769d89fffcb95" + }, + { + "nr": 130352, + "hash": "96968be58f7b3ed711d6581fd615641d5f6c1c82" + }, + { + "nr": 130450, + "hash": "c6d485f7f260e79bd1f8c36f5dfd96f20f2dfb50" + }, + { + "nr": 129307, + "hash": "cea84a9e2212cc006864c853057e05071a30fbd8" + }, + { + "nr": 129996, + "hash": "bacd11bef941d367faa9f713e9ae1c1412422c72" + }, + { + "nr": 130074, + "hash": "f63602fad519122f074b4ca65e44b310c000c149" + }, + { + "nr": 130133, + "hash": "3cd23be3e3d74f7dc1e916de6b055ce930b5d27f" + }, + { + "nr": 125230, + "hash": "c25721cf368266e7e5363a44ba655efa69b2c270" + }, + { + "nr": 129368, + "hash": "ac57d0ab5da5b77fb416afb026172d196c282742" + }, + { + "nr": 130017, + "hash": "3cc7196c0b30589e0fd2921ff6f01b6bbb1cbe6c" + }, + { + "nr": 128662, + "hash": "e1eca1635b1c7a184baaa7494c41d372c7d0a832" + }, + { + "nr": 130902, + "hash": "056f92216817086387940fdd4cdec081ebed9de5" + }, + { + "nr": 129923, + "hash": "333249bbfa90e6957408aa55a882a9982a2d3a6b" + }, + { + "nr": 130329, + "hash": "e6171530c6d56c05d54aa98f88f6b2221a273621" + }, + { + "nr": 130032, + "hash": "e9612d9bf3786908508c075bb43cfc7bd1ed785e" + }, + { + "nr": 129670, + "hash": "857695601f289d0fd6c7a83bb727ee4aeabe78bc" + }, + { + "nr": 130920, + "hash": "41fd321f3f4d9b5db16de99b775340605c99ca9a" + }, + { + "nr": 129713, + "hash": "f47eb9e10ddef7514753f0c61ff838fb2d0a5428" + }, + { + "nr": 130844, + "hash": "217f99dd3b718df0f2428b1e0dc05480167a4343" + }, + { + "nr": 130550, + "hash": "818dcbe97ae844f8c837fcf18f872aa00c4680c4" + }, + { + "nr": 129407, + "hash": "90f799627d2e7ea89fff7f99c500ba458e6aedfe" + }, + { + "nr": 130650, + "hash": "372fd4e773f222309c5f740bc143093907f0d3c4" + }, + { + "nr": 129635, + "hash": "044530fd43cc0e4f0c1ab58907c596668f68f625" + }, + { + "nr": 129589, + "hash": "c28f5ab4c0d6e3d8a8e23f2827532754164ea446" + }, + { + "nr": 130447, + "hash": "550b8e3d8e693207d3a0a751c9b189df6d680173" + }, + { + "nr": 122646, + "hash": "432dfd04a8857a00ba08b2b0d05afecc45436159" + }, + { + "nr": 129174, + "hash": "7b7f5b2d7c07d020ab631748ad58de61ddb68a29" + }, + { + "nr": 129296, + "hash": "3546935a2c54765dd5315d17b93b9dd63738c688" + }, + { + "nr": 130204, + "hash": "8c7ed193b0fda658855c6c391ed3b9fd7b25f4d3" + }, + { + "nr": 129859, + "hash": "534b73336d964385c7fe6184be3948de03f1afa6" + }, + { + "nr": 129017, + "hash": "a76bea0bbe8aafbbc30d06d90067e2d90303fe18" + }, + { + "nr": 130935, + "hash": "369a0c8bf89fdbfbda64a3c37cb16156ec140b72" + }, + { + "nr": 130061, + "hash": "f2eca567773d9d57d1f58c54fdfe613a7a88c462" + }, + { + "nr": 129993, + "hash": "1976fbeb39f977e2946f6f5762654ef61891449c" + }, + { + "nr": 129568, + "hash": "bae88f0ec48e27c2048422dbca7725ed03b63e45" + }, + { + "nr": 129452, + "hash": "0bf2440d3ae4b0bf07eb87674456a529ab48b195" + }, + { + "nr": 130870, + "hash": "38535cf92ca1158ba8d946a2691f36bd1d578240" + }, + { + "nr": 130571, + "hash": "df4805bdb3a80b4250b11f40d32a134de07fae59" + }, + { + "nr": 129656, + "hash": "9d23a0bf26813baecc3b287930f3b610a0c30e0a" + }, + { + "nr": 129297, + "hash": "e322df2b3a0964581b69d8e6b552215c256a3e33" + }, + { + "nr": 129823, + "hash": "4a9ef46da3300dc78fd610f4a9dae5d80d5f4d79" + }, + { + "nr": 129591, + "hash": "906a108819857f2295b01a4f74c3d94d413b4d11" + }, + { + "nr": 129131, + "hash": "0fa5b573507284450042f4bb2b1d4e245d38e534" + }, + { + "nr": 127053, + "hash": "dac4c33e4027c93c3ed29ec1c361dd41784b8aed" + }, + { + "nr": 127696, + "hash": "9dda86df4dbc36d3bfc099cc876b28d40690d72a" + }, + { + "nr": 130905, + "hash": "8c66823f03a63bd17c1873b697516524ea462eef" + }, + { + "nr": 130019, + "hash": "f0079d503320ee2314bfc5227f3f3bb24b9cf4b7" + }, + { + "nr": 130564, + "hash": "8419c8d9c2f14af3bf35287bc7a443c83ea0f5d1" + }, + { + "nr": 130814, + "hash": "65a7ca494852a793b728c8093b7b83f85cea00a3" + }, + { + "nr": 130101, + "hash": "7abae0fb9ad5ab291841ab5678e4e52e9a17df25" + }, + { + "nr": 130238, + "hash": "954e3634bc4c59580c379d2cc5fe7fc3c87815b4" + }, + { + "nr": 128991, + "hash": "f49907cb1ae23a1caa645e280c17ec712f31a1d3" + }, + { + "nr": 129186, + "hash": "f66e6df310027fa145c5cf95fb7f8453e667d2d7" + }, + { + "nr": 129630, + "hash": "6ff73ff0c0fe8d1a926a714705559d08c7906ea7" + }, + { + "nr": 127092, + "hash": "e74a55b800f7d38e2bdeee5caf848d9307f0367f" + }, + { + "nr": 130728, + "hash": "1372c25c8c102b45f529a6d66edd8c699fdc7bce" + }, + { + "nr": 122550, + "hash": "cb421bc33689b3a85d6e838bdaeadc3e6912bd18" + }, + { + "nr": 130485, + "hash": "18d9b9a80ec5f44d48c8fa32e989f4f68bbcb767" + }, + { + "nr": 130398, + "hash": "dc0759da9dafd605398a528d92c2601bec27482a" + }, + { + "nr": 130098, + "hash": "f790f19ff7bc79f515e8c5484d7942b3e5f9d891" + }, + { + "nr": 129173, + "hash": "b4943d099505665feabc28b407ae24c4d41fcde9" + }, + { + "nr": 130738, + "hash": "465a9fc20edc05391304b45bb587724b01d22d13" + }, + { + "nr": 130616, + "hash": "213b645bc693405f8008cad62f5c6ef99f569b66" + }, + { + "nr": 129498, + "hash": "31e47e3843efd5eb0301200ba4876675bb152fb9" + }, + { + "nr": 128184, + "hash": "734e4ace0b1bf8705f5584b76883ab35fc1f3c29" + }, + { + "nr": 129954, + "hash": "3d4b34f229792c3711751bbf8c8a8c78729e9485" + }, + { + "nr": 130354, + "hash": "024c206af34165e8931099731fecd26425e0647a" + }, + { + "nr": 130484, + "hash": "4f9ff180e59bc7ab1735a511f39ac1868f243900" + }, + { + "nr": 129219, + "hash": "f06f60c0d13b7117fc8e5265333637d5ce209f75" + }, + { + "nr": 129006, + "hash": "140ac1c5323bd4cbd3d2d8f88fcb749f66e8afde" + }, + { + "nr": 129486, + "hash": "c1b81aeeb515f5bb3466aad413d1188ea37bb0e8" + }, + { + "nr": 129500, + "hash": "9384e309b6a8bf320b5646f7cdaf72db987bdcd9" + }, + { + "nr": 130733, + "hash": "7261d4ffe0b5a24db4a1ec329f9e822cf640be28" + }, + { + "nr": 128367, + "hash": "6cbb886ff3dd1ee8088dec2c6a477868c21a0fcf" + }, + { + "nr": 129418, + "hash": "04b94cd6665816cf7b52dd6b0edfc40c357bbbc4" + }, + { + "nr": 130541, + "hash": "901f7e4927cda019d8a18b528264688956bcba0f" + }, + { + "nr": 130764, + "hash": "ce84fefbb988be42f4fc8ab6d82b751ea9742568" + }, + { + "nr": 130202, + "hash": "1ed17ffcee4118aaf8db03622ccf64f90fad6f2d" + }, + { + "nr": 129653, + "hash": "c1ea965a02c6afa3fbc810cc949130900e08384d" + }, + { + "nr": 128086, + "hash": "41c4057d5ccc0586e2800c7b72eb5ecb16b36f40" + }, + { + "nr": 129279, + "hash": "a263600a7b35f95571d0bfc1e85ca18120f7daf7" + }, + { + "nr": 129826, + "hash": "4fae03f885ee9c03cab4bee43363512c39c19b73" + }, + { + "nr": 130060, + "hash": "a0c3fb9151b7579302f638192b860e274d347b73" + }, + { + "nr": 130423, + "hash": "59549ccc0f6d05e0543bbbd99bc97b483a665b70" + }, + { + "nr": 129506, + "hash": "62c8f1039aeec6d81678032c7fb1f032ccc49434" + }, + { + "nr": 128856, + "hash": "fadefad09154c419b0edaf43bb4b56b497e2c73e" + }, + { + "nr": 129832, + "hash": "bd9c94d348f5435035957b92b9a7ba35df095bfd" + }, + { + "nr": 130560, + "hash": "e5776fa44cd4ac38eaa9e526fb11a69bac172090" + }, + { + "nr": 130345, + "hash": "33da39dff3a7ba72990d58295e7e5ba90f65bd95" + }, + { + "nr": 130023, + "hash": "afb5bdcdda039583545df07421becec7b404994f" + }, + { + "nr": 129893, + "hash": "a003637ba68d1a9532f07888a05519ffcb244277" + }, + { + "nr": 130058, + "hash": "18a3d76d4fb35ade72f1f36eca99f330f43c90f0" + }, + { + "nr": 130040, + "hash": "ca7067b2c08df6f5f2d05d368f340e2b92b9ae43" + }, + { + "nr": 130591, + "hash": "5f254385ffdc75cca7ca420a7c09bcd17ab6869a" + }, + { + "nr": 129929, + "hash": "7a4deb331b4b4ad1d4192f1b551061bcc78d3513" + }, + { + "nr": 129278, + "hash": "247acd1f9ed35fbd0c74ba987958c4d15cb2e953" + }, + { + "nr": 130666, + "hash": "5776fccaa3c539d48d1ed1e4e9f1d88ea855adea" + }, + { + "nr": 124360, + "hash": "812f324892fe272e02e2c7f3cd93ae2b3b44c74a" + }, + { + "nr": 130135, + "hash": "ae6d6fb1cc20dd642a1fde06024f65f45f54ddd8" + }, + { + "nr": 130599, + "hash": "f8bb64d268dc72a7a050257f79de9e3488814cb8" + }, + { + "nr": 128586, + "hash": "21ea3ad49731154f4514b4d4f7124444d7f71457" + }, + { + "nr": 129142, + "hash": "51dbe8f402b86df81dd6a455854f0f294e13dff6" + }, + { + "nr": 129970, + "hash": "0c2a15521a037bd798db4b23f62912b38db70920" + }, + { + "nr": 130035, + "hash": "82a91765d33999054a88d4d56e9461e7b82601ae" + }, + { + "nr": 130405, + "hash": "36592c7a7caa7ace99ac12a9456da05bfb0d224f" + } + ] } \ No newline at end of file diff --git a/releases/release-1.33/release-team.md b/releases/release-1.33/release-team.md index 1dd6aa18d43..ef3d3552808 100644 --- a/releases/release-1.33/release-team.md +++ b/releases/release-1.33/release-team.md @@ -1,15 +1,15 @@ -# Kubernetes 1.33 Release Team - -| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|-------------------|----------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Release Team Lead | Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova`) | Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07) / Slack: `@Sanchita Mishra`), Rashan Smith ([@rashansmith](https://github.com/rashansmith) / Slack: `@Rashan`), Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav` ), Daniel Chan ([@chanieljdan](https://github.com/chanieljdan) / Slack : `@dchan`), Matteo Bianchi ([@mbianchidev](https://github.com/mbianchidev) / Slack: `@mbianchidev`) | -| Emeritus Adviser | Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos) / Slack: `@Angelos Kolaitis`) | N/A | -| Enhancements | Dipesh Rawat ([@dipesh-rawat](https://github.com/dipesh-rawat) / Slack: `@Dipesh`) | Arka Saha ([@ArkaSaha30](https://github.com/ArkaSaha30) / Slack: `@Arka`), Eunji Jung ([@bianbbc87](https://github.com/bianbbc87) / Slack: `@eunji`), Faeka Ansari ([@fykaa](https://github.com/fykaa) / Slack: `@fyka`), Jenny Shu ([@jenshu](https://github.com/jenshu) / Slack: `@Jenny Shu`), Lauren Zung ([@lzung](https://github.com/lzung) / Slack: `@lzung`) | -| Communications | Ryota Sawada ([@rytswd](https://github.com/rytswd) / Slack: `@Ryota`) | Aakanksha Bhende ([@aakankshabhende](https://github.com/aakankshabhende) / Slack `@Aakanksha Bhende` ), Agustina Barbetta ([@aibarbetta](https://github.com/aibarbetta) / Slack: `@aibarbetta`), Udi Hofesh ([@udi-hofesh](https://github.com/udi-hofesh) / Slack: `@Udi Hofesh`), Sneha Yadav ([@sn3hay](https://github.com/sn3hay) / Slack: `@Sneha Yadav`) | -| Release Signal | Wendy Ha ([@wendy-ha18](https://github.com/wendy-ha18) / Slack `@Wendy Ha`) | ChengHao Yang ([@tico88612](https://github.com/tico88612) / Slack: `@tico88612`, Sean McGinnis ([@stmcginnis](https://github.com/stmcginnis) / Slack: `@SeanMcGinnis`), Rajalakshmi Girish ( [@Rajalakshmi-Girish](https://github.com/Rajalakshmi-Girish) / Slack: `@Rajalakshmi Girish` ), Elieser Pereira ( [@elieser1101](https://github.com/elieser1101) / Slack: `@elieser1101` ), Nitish Kumar ( [@nitishfy](https://github.com/nitishfy) / Slack: `@Nitish Kumar`) | -| Docs | Rayan Das ([@rayandas](https://github.com/rayandas) / Slack: `@rayandas`) | Mélony Qin ([@cloudmelon](https://github.com/cloudmelon) / Slack: `@Melony Q. (aka.cloudmelon )`), Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/sreeram-venkitesh) / Slack: `@sreeram.venkitesh`), Urvashi Choubey ([@Urvashi0109](https://github.com/Urvashi0109) / Slack: `@Urvashi`), Arvind Parekh ([@ArvindParekh](https://github.com/ArvindParekh) / Slack: `@Arvind Parekh`), Michelle Nguyen ([@michellengnx](https://github.com/michellengnx) / Slack: `@michellengnx`), Shedrack Akintayo ([@hacktivist123](https://github.com/hacktivist123) / Slack: `@Shedrack Akintayo`) | -| Branch Manager | Jim Angel ( [@jimangel](https://github.com/jimangel) / Slack: `@jimangel`) | Matteo Bianchi ( [@mbianchidev](https://github.com/mbianchidev) / Slack: `@mbianchidev`) | - -Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.33, once the 1.33 release cycle concludes. +# Kubernetes 1.33 Release Team + +| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|-------------------|----------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Release Team Lead | Nina Polshakova ([@npolshakova](https://github.com/npolshakova) / Slack: `@Nina Polshakova`) | Sanchita Mishra ([@sanchita-07](https://github.com/sanchita-07) / Slack: `@Sanchita Mishra`), Rashan Smith ([@rashansmith](https://github.com/rashansmith) / Slack: `@Rashan`), Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav` ), Daniel Chan ([@chanieljdan](https://github.com/chanieljdan) / Slack : `@dchan`), Matteo Bianchi ([@mbianchidev](https://github.com/mbianchidev) / Slack: `@mbianchidev`) | +| Emeritus Adviser | Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos) / Slack: `@Angelos Kolaitis`) | N/A | +| Enhancements | Dipesh Rawat ([@dipesh-rawat](https://github.com/dipesh-rawat) / Slack: `@Dipesh`) | Arka Saha ([@ArkaSaha30](https://github.com/ArkaSaha30) / Slack: `@Arka`), Eunji Jung ([@bianbbc87](https://github.com/bianbbc87) / Slack: `@eunji`), Faeka Ansari ([@fykaa](https://github.com/fykaa) / Slack: `@fyka`), Jenny Shu ([@jenshu](https://github.com/jenshu) / Slack: `@Jenny Shu`), Lauren Zung ([@lzung](https://github.com/lzung) / Slack: `@lzung`) | +| Communications | Ryota Sawada ([@rytswd](https://github.com/rytswd) / Slack: `@Ryota`) | Aakanksha Bhende ([@aakankshabhende](https://github.com/aakankshabhende) / Slack `@Aakanksha Bhende` ), Agustina Barbetta ([@aibarbetta](https://github.com/aibarbetta) / Slack: `@aibarbetta`), Udi Hofesh ([@udi-hofesh](https://github.com/udi-hofesh) / Slack: `@Udi Hofesh`), Sneha Yadav ([@sn3hay](https://github.com/sn3hay) / Slack: `@Sneha Yadav`) | +| Release Signal | Wendy Ha ([@wendy-ha18](https://github.com/wendy-ha18) / Slack `@Wendy Ha`) | ChengHao Yang ([@tico88612](https://github.com/tico88612) / Slack: `@tico88612`, Sean McGinnis ([@stmcginnis](https://github.com/stmcginnis) / Slack: `@SeanMcGinnis`), Rajalakshmi Girish ( [@Rajalakshmi-Girish](https://github.com/Rajalakshmi-Girish) / Slack: `@Rajalakshmi Girish` ), Elieser Pereira ( [@elieser1101](https://github.com/elieser1101) / Slack: `@elieser1101` ), Nitish Kumar ( [@nitishfy](https://github.com/nitishfy) / Slack: `@Nitish Kumar`) | +| Docs | Rayan Das ([@rayandas](https://github.com/rayandas) / Slack: `@rayandas`) | Mélony Qin ([@cloudmelon](https://github.com/cloudmelon) / Slack: `@Melony Q. (aka.cloudmelon )`), Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/sreeram-venkitesh) / Slack: `@sreeram.venkitesh`), Urvashi Choubey ([@Urvashi0109](https://github.com/Urvashi0109) / Slack: `@Urvashi`), Arvind Parekh ([@ArvindParekh](https://github.com/ArvindParekh) / Slack: `@Arvind Parekh`), Michelle Nguyen ([@michellengnx](https://github.com/michellengnx) / Slack: `@michellengnx`), Shedrack Akintayo ([@hacktivist123](https://github.com/hacktivist123) / Slack: `@Shedrack Akintayo`) | +| Branch Manager | Jim Angel ( [@jimangel](https://github.com/jimangel) / Slack: `@jimangel`) | Matteo Bianchi ( [@mbianchidev](https://github.com/mbianchidev) / Slack: `@mbianchidev`) | + +Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include 1.33, once the 1.33 release cycle concludes. diff --git a/releases/release-1.34/README.md b/releases/release-1.34/README.md index 506579111ba..b3bb3293ccd 100644 --- a/releases/release-1.34/README.md +++ b/releases/release-1.34/README.md @@ -1,134 +1,134 @@ ---- -title: "Kubernetes v1.34 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes v1.34: Of Wind & Will (O' WaW) - -![Kubernetes v1.34: Of Wind & Will (O' WaW)](./logo/k8s134-owaw.png?raw=true) - -A release powered by the wind around us — and the will within us. - -Every release cycle, we inherit winds that we don't really control — the state of our tooling, documentation, and the historical quirks of our project. Sometimes these winds fill our sails, sometimes they push us sideways or die down. - -What keeps Kubernetes moving isn't the perfect winds, but the will of our sailors who adjust the sails, man the helm, chart the courses and keep the ship steady. The release happens not because conditions are always ideal, but because of the people who build it, the people who release it, and the bears ^, cats, dogs, wizards, and curious minds who keep Kubernetes sailing strong — no matter which way the wind blows. - -This release, **Of Wind & Will (O' WaW)**, honors the winds that have shaped us, and the will that propels us forward. - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.34/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.34/release-team.md) -* [Meeting Minutes](https://bit.ly/k8s134-releasemtg) (members of [release-team@] receive meeting invites) -* [v1.34 Release Calendar](https://bit.ly/k8s-release-cal) -* Contact: [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) on - slack, [release-team](mailto:release-team@kubernetes.io) on e-mail -* [Internal Contact Info](https://bit.ly/k8s134-contacts) (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Board](https://bit.ly/k8s134-enhancements) -* [Feature blog Tracking Board](https://bit.ly/k8s134-feature-blogs) -* [Bug Triage Tracking Board](https://bit.ly/k8s134-bugtriage) -* [CI Signal Project Board & Issue Tracking](https://bit.ly/k8s134-cisignal) -* [Retrospective Document](https://bit.ly/k8s134-retro) -* [kubernetes/kubernetes v1.34 milestone](https://github.com/kubernetes/kubernetes/milestone/67) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## Summary - -The v1.34 release cycle is as follows: - -- **Monday 19th May 2025**: Week 1 — Release cycle begins -- **Thursday 12th June 2025**: - Week 4 — [Production Readiness Freeze][Production Readiness Freeze] -- **[21:00 UTC Friday 20th June 2025 / 14:00 PST Friday 20th June 2025](https://everytimezone.com/s/a17d0bdd)**: - Week 5 — [Enhancements Freeze][Enhancements Freeze] -- **[02:00 UTC Friday 11th July 2025 / 19:00 PST Thursday 10th July 2025](https://everytimezone.com/s/dcc4aad9)**: - Week 8 — [Feature blog freeze][Feature blog freeze] -- **[02:00 UTC Friday 25th July 2025 / 19:00 PDT Thursday 24th July 2025](https://everytimezone.com/s/a2c01c54)**: - Week 10 — [Code Freeze][Code Freeze] and [Test Freeze][Test Freeze] -- **Wednesday 6th August 2025**: Week 12 — [Docs Freeze][Docs Freeze] -- **Wednesday 27th August 2025**: Week 15 — Kubernetes v1.34.0 released - -## Timeline - -| **What** | **Who** | **When** | **Week** | **Release Signal** | -|----------------------------------------------------------------------------------------|-------------------------------|-----------------------------------------------------------------------------------------------------------------|----------|--------------------------------------------------------------------------| -| Start of Release Cycle | Lead | Monday 19th May 2025 | week 1 | [master-blocking], [master-informing] | -| Start Enhancements Tracking | Enhancements Lead | Monday 19th May 2025 | week 1 | | -| Schedule finalized | Lead | Friday 23rd May 2025 | week 1 | | -| Team finalized | Lead | Friday 23rd May 2025 | week 1 | | -| Begin APAC-friendly meetings | Lead | Wednesday 28th May 2025 | week 2 | | -| Start Release Notes Draft | Docs Lead | Wednesday 4th June 2025 | week 3 | | -| v1.34.0-alpha.1 released | Branch Manager | Wednesday 11th June 2025 | week 4 | | -| **Begin [Production Readiness Freeze]** | Enhancements Lead | Thursday 12th June 2025 | week 4 | | -| **Begin [Enhancements Freeze]** | Enhancements Lead | [21:00 UTC Friday 20th June 2025 / 14:00 PST Friday 20th June 2025](https://everytimezone.com/s/a17d0bdd) | week 5 | | -| v1.34.0-alpha.2 released | Branch Manager | Wednesday 25th June 2025 | week 6 | | -| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 3rd July 2025 | week 7 | | -| Call for [Exceptions][Exception] | Lead | Monday 7th July 2025 | week 8 | | -| Brace Yourself, Code Freeze is Coming | Comms / Release Signal | Monday 7th July 2025 | week 8 | | -| v1.34.0-alpha.3 released | Branch Manager | Wednesday 9th July 2025 | week 8 | | -| **Begin [Feature blog freeze] - Open placeholder PRs** | Comms Lead | [02:00 UTC Friday 11th July 2025 / 19:00 PST Thursday 10th July 2025](https://everytimezone.com/s/dcc4aad9) | week 8 | | -| v1.34.0-beta.0 released | Branch Manager | Wednesday 16th July 2025 | week 9 | | -| **Begin [Code Freeze] and [Test Freeze]** | Branch Manager | [02:00 UTC Friday 25th July 2025 / 19:00 PDT Thursday 24th July 2025](https://everytimezone.com/s/a2c01c54) | week 10 | | -| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 28th July 2025 | week 11 | | -| Deprecations and Removals blog published | Comms | Monday 28th July 2025 | week 11 | | -| Docs deadline — PRs ready for review | Docs Lead | Tuesday 29th July 2025 | week 11 | | -| Release Highlights deadline | Comms | Tuesday 29th July 2025 | week 11 | | -| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 4th August 2025 | week 12 | | -| release-1.34 branch created | Branch Manager | Wednesday 6th August 2025 | week 12 | | -| release-1.34 jobs created | Branch Manager | Wednesday 6th August 2025 | week 12 | | -| Start final draft of Release Notes | Docs Lead | Wednesday 6th August 2025 | week 12 | | -| **[Docs Freeze]** | Docs Lead | Wednesday 6th August 2025 | week 12 | | -| v1.34.0-rc.0 released | Branch Manager | Wednesday 6th August 2025 | week 12 | [1.34-informing], [1.34-blocking], [master-blocking], [master-informing] | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Friday 8th August 2025 | week 12 | | -| v1.34.0-rc.1 released (additional release cut for critical bug fix) | Branch Manager | Saturday 9th August 2025 | week 12 | | -| Release blog ready to review | Comms / Docs | [02:00 UTC Friday 15th August 2025 / 19:00 PDT Thursday 14th August 2025](https://everytimezone.com/s/815eefb6) | week 13 | | -| v1.34.0-rc.2 released | Branch Manager | Wednesday 20th August 2025 | week 14 | | -| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Docs Lead | Wednesday 27th August 2025 | week 15 | | -| **v1.34.0 released** | Branch Manager | Wednesday 27th August 2025 | week 15 | | -| Release blog published | Comms | Wednesday 27th August 2025 | week 15 | | -| [Thaw] | Branch Manager | Wednesday 27th August 2025 | week 15 | | -| Feature blog publication starts | Comms | Thursday 28th August 2025 | week 15 | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[Production Readiness Freeze]: ../release_phases.md#prr-freeze - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze - -[Burndown]: ../release_phases.md#burndown - -[Code Freeze]: ../release_phases.md#code-freeze - -[Exception]: ../release_phases.md#exceptions - -[Thaw]: ../release_phases.md#thaw - -[Test Freeze]: ../release_phases.md#test-freeze - -[Docs Freeze]: ../release_phases.md#docs-freeze - -[Feature blog freeze]: ../release_phases.md#feature-blog-freeze - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary - -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary - -[1.34-blocking]: https://testgrid.k8s.io/sig-release-1.34-blocking#Summary - -[1.34-informing]: https://testgrid.k8s.io/sig-release-1.34-informing#Summary - -[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team +--- +title: "Kubernetes v1.34 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes v1.34: Of Wind & Will (O' WaW) + +![Kubernetes v1.34: Of Wind & Will (O' WaW)](./logo/k8s134-owaw.png?raw=true) + +A release powered by the wind around us — and the will within us. + +Every release cycle, we inherit winds that we don't really control — the state of our tooling, documentation, and the historical quirks of our project. Sometimes these winds fill our sails, sometimes they push us sideways or die down. + +What keeps Kubernetes moving isn't the perfect winds, but the will of our sailors who adjust the sails, man the helm, chart the courses and keep the ship steady. The release happens not because conditions are always ideal, but because of the people who build it, the people who release it, and the bears ^, cats, dogs, wizards, and curious minds who keep Kubernetes sailing strong — no matter which way the wind blows. + +This release, **Of Wind & Will (O' WaW)**, honors the winds that have shaped us, and the will that propels us forward. + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.34/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.34/release-team.md) +* [Meeting Minutes](https://bit.ly/k8s134-releasemtg) (members of [release-team@] receive meeting invites) +* [v1.34 Release Calendar](https://bit.ly/k8s-release-cal) +* Contact: [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) on + slack, [release-team](mailto:release-team@kubernetes.io) on e-mail +* [Internal Contact Info](https://bit.ly/k8s134-contacts) (accessible only to members of [release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Board](https://bit.ly/k8s134-enhancements) +* [Feature blog Tracking Board](https://bit.ly/k8s134-feature-blogs) +* [Bug Triage Tracking Board](https://bit.ly/k8s134-bugtriage) +* [CI Signal Project Board & Issue Tracking](https://bit.ly/k8s134-cisignal) +* [Retrospective Document](https://bit.ly/k8s134-retro) +* [kubernetes/kubernetes v1.34 milestone](https://github.com/kubernetes/kubernetes/milestone/67) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## Summary + +The v1.34 release cycle is as follows: + +- **Monday 19th May 2025**: Week 1 — Release cycle begins +- **Thursday 12th June 2025**: + Week 4 — [Production Readiness Freeze][Production Readiness Freeze] +- **[21:00 UTC Friday 20th June 2025 / 14:00 PST Friday 20th June 2025](https://everytimezone.com/s/a17d0bdd)**: + Week 5 — [Enhancements Freeze][Enhancements Freeze] +- **[02:00 UTC Friday 11th July 2025 / 19:00 PST Thursday 10th July 2025](https://everytimezone.com/s/dcc4aad9)**: + Week 8 — [Feature blog freeze][Feature blog freeze] +- **[02:00 UTC Friday 25th July 2025 / 19:00 PDT Thursday 24th July 2025](https://everytimezone.com/s/a2c01c54)**: + Week 10 — [Code Freeze][Code Freeze] and [Test Freeze][Test Freeze] +- **Wednesday 6th August 2025**: Week 12 — [Docs Freeze][Docs Freeze] +- **Wednesday 27th August 2025**: Week 15 — Kubernetes v1.34.0 released + +## Timeline + +| **What** | **Who** | **When** | **Week** | **Release Signal** | +|----------------------------------------------------------------------------------------|-------------------------------|-----------------------------------------------------------------------------------------------------------------|----------|--------------------------------------------------------------------------| +| Start of Release Cycle | Lead | Monday 19th May 2025 | week 1 | [master-blocking], [master-informing] | +| Start Enhancements Tracking | Enhancements Lead | Monday 19th May 2025 | week 1 | | +| Schedule finalized | Lead | Friday 23rd May 2025 | week 1 | | +| Team finalized | Lead | Friday 23rd May 2025 | week 1 | | +| Begin APAC-friendly meetings | Lead | Wednesday 28th May 2025 | week 2 | | +| Start Release Notes Draft | Docs Lead | Wednesday 4th June 2025 | week 3 | | +| v1.34.0-alpha.1 released | Branch Manager | Wednesday 11th June 2025 | week 4 | | +| **Begin [Production Readiness Freeze]** | Enhancements Lead | Thursday 12th June 2025 | week 4 | | +| **Begin [Enhancements Freeze]** | Enhancements Lead | [21:00 UTC Friday 20th June 2025 / 14:00 PST Friday 20th June 2025](https://everytimezone.com/s/a17d0bdd) | week 5 | | +| v1.34.0-alpha.2 released | Branch Manager | Wednesday 25th June 2025 | week 6 | | +| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 3rd July 2025 | week 7 | | +| Call for [Exceptions][Exception] | Lead | Monday 7th July 2025 | week 8 | | +| Brace Yourself, Code Freeze is Coming | Comms / Release Signal | Monday 7th July 2025 | week 8 | | +| v1.34.0-alpha.3 released | Branch Manager | Wednesday 9th July 2025 | week 8 | | +| **Begin [Feature blog freeze] - Open placeholder PRs** | Comms Lead | [02:00 UTC Friday 11th July 2025 / 19:00 PST Thursday 10th July 2025](https://everytimezone.com/s/dcc4aad9) | week 8 | | +| v1.34.0-beta.0 released | Branch Manager | Wednesday 16th July 2025 | week 9 | | +| **Begin [Code Freeze] and [Test Freeze]** | Branch Manager | [02:00 UTC Friday 25th July 2025 / 19:00 PDT Thursday 24th July 2025](https://everytimezone.com/s/a2c01c54) | week 10 | | +| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 28th July 2025 | week 11 | | +| Deprecations and Removals blog published | Comms | Monday 28th July 2025 | week 11 | | +| Docs deadline — PRs ready for review | Docs Lead | Tuesday 29th July 2025 | week 11 | | +| Release Highlights deadline | Comms | Tuesday 29th July 2025 | week 11 | | +| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 4th August 2025 | week 12 | | +| release-1.34 branch created | Branch Manager | Wednesday 6th August 2025 | week 12 | | +| release-1.34 jobs created | Branch Manager | Wednesday 6th August 2025 | week 12 | | +| Start final draft of Release Notes | Docs Lead | Wednesday 6th August 2025 | week 12 | | +| **[Docs Freeze]** | Docs Lead | Wednesday 6th August 2025 | week 12 | | +| v1.34.0-rc.0 released | Branch Manager | Wednesday 6th August 2025 | week 12 | [1.34-informing], [1.34-blocking], [master-blocking], [master-informing] | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Friday 8th August 2025 | week 12 | | +| v1.34.0-rc.1 released (additional release cut for critical bug fix) | Branch Manager | Saturday 9th August 2025 | week 12 | | +| Release blog ready to review | Comms / Docs | [02:00 UTC Friday 15th August 2025 / 19:00 PDT Thursday 14th August 2025](https://everytimezone.com/s/815eefb6) | week 13 | | +| v1.34.0-rc.2 released | Branch Manager | Wednesday 20th August 2025 | week 14 | | +| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Docs Lead | Wednesday 27th August 2025 | week 15 | | +| **v1.34.0 released** | Branch Manager | Wednesday 27th August 2025 | week 15 | | +| Release blog published | Comms | Wednesday 27th August 2025 | week 15 | | +| [Thaw] | Branch Manager | Wednesday 27th August 2025 | week 15 | | +| Feature blog publication starts | Comms | Thursday 28th August 2025 | week 15 | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[Production Readiness Freeze]: ../release_phases.md#prr-freeze + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze + +[Burndown]: ../release_phases.md#burndown + +[Code Freeze]: ../release_phases.md#code-freeze + +[Exception]: ../release_phases.md#exceptions + +[Thaw]: ../release_phases.md#thaw + +[Test Freeze]: ../release_phases.md#test-freeze + +[Docs Freeze]: ../release_phases.md#docs-freeze + +[Feature blog freeze]: ../release_phases.md#feature-blog-freeze + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary + +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary + +[1.34-blocking]: https://testgrid.k8s.io/sig-release-1.34-blocking#Summary + +[1.34-informing]: https://testgrid.k8s.io/sig-release-1.34-informing#Summary + +[release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team diff --git a/releases/release-1.34/exceptions.yaml b/releases/release-1.34/exceptions.yaml index 3fdb3ef8fbe..1d0015f904e 100644 --- a/releases/release-1.34/exceptions.yaml +++ b/releases/release-1.34/exceptions.yaml @@ -1,129 +1,129 @@ -# Exception requests in v1.34 -# Google Group: https://groups.google.com/g/kubernetes-sig-release -# Release Team Lead: Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) - -# Enhancements Freeze Exceptions requested in v1.34 - -enhancementFreeze: - -- name: "In-Place Update of Pod Resources" - issue: 1287 - date_requested: 2025-06-20 - date_reviewed: 2025-06-23 - thread: https://groups.google.com/g/kubernetes-sig-release/c/MbbxapG9drw - pull_requests: - - https://github.com/kubernetes/enhancements/pull/5368 - status: "approved" - -- name: "In-Place Pod-Level Resources Resize" - issue: 5419 - date_requested: 2025-06-20 - date_reviewed: 2025-06-23 - thread: https://groups.google.com/g/kubernetes-sig-release/c/Bzq0oMkFhzE - pull_requests: - - https://github.com/kubernetes/enhancements/pull/5423 - - https://github.com/kubernetes/enhancements/pull/5432 - status: "approved" - -# Code Freeze Exceptions requested in v1.34 - -codeFreeze: - -- name: "DRA: Handle extended resource requests via DRA Driver" - issue: 5004 - date_requested: 2025-07-23 - date_reviewed: 2025-07-26 - thread: https://groups.google.com/g/kubernetes-sig-release/c/NOPRgAz9fxI - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/130653 - status: "approved" - -- name: "DRA: Consumable Capacity" - issue: 5075 - date_requested: 2025-07-23 - date_reviewed: 2025-07-25 - thread: https://groups.google.com/g/kubernetes-sig-release/c/uvnJHAWIyWA - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/132522 - status: "approved" - -- name: "DRA: Device Binding Conditions" - issue: 5007 - date_requested: 2025-07-24 - date_reviewed: 2025-07-25 - thread: https://groups.google.com/g/kubernetes-sig-release/c/ae9ZTJyP17Y - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/130160 - status: "approved" - -- name: "maxUnavailable for StatefulSets" - issue: 961 - date_requested: 2025-07-24 - date_reviewed: 2025-07-29 - thread: https://groups.google.com/g/kubernetes-sig-release/c/iRNNc_wpniA - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/130951 - - https://github.com/kubernetes/kubernetes/pull/133153 - status: "rejected" - -- name: "Pod level resources" - issue: 2837 - date_requested: 2025-07-24 - date_reviewed: 2025-07-28 - thread: https://groups.google.com/g/kubernetes-sig-release/c/WLVtwIEgiuQ - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/132999 - - https://github.com/kubernetes/kubernetes/pull/132430 - - https://github.com/kubernetes/kubernetes/pull/131089 - - https://github.com/kubernetes/kubernetes/pull/133279 - status: "approved" - -- name: "Asynchronous API calls during scheduling" - issue: 5229 - date_requested: 2025-07-25 - date_reviewed: 2025-07-28 - thread: https://groups.google.com/g/kubernetes-sig-release/c/_cgq2TEVqRM - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/132886 - - https://github.com/kubernetes/kubernetes/pull/133120 - status: "approved" - -- name: "Use NominatedNodeName to express the expected pod placement" - issue: 5278 - date_requested: 2025-07-25 - date_reviewed: 2025-07-28 - thread: https://groups.google.com/g/kubernetes-sig-release/c/5Xgb5gsO65k - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/133276 - - https://github.com/kubernetes/kubernetes/pull/132443 - - https://github.com/kubernetes/kubernetes/pull/133021 - - https://github.com/kubernetes/kubernetes/pull/133213 - - https://github.com/kubernetes/kubernetes/pull/133293 - status: "approved" - -- name: "Support User Namespaces in pods" - issue: 127 - date_requested: 2025-07-25 - date_reviewed: 2025-07-28 - thread: https://groups.google.com/g/kubernetes-sig-release/c/ARroy9Z2JMg - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/132868 - status: "approved" - -- name: "Allows setting any FQDN as the pod's hostname" - issue: 4762 - date_requested: 2025-07-29 - date_reviewed: 2025-07-29 - thread: https://groups.google.com/g/kubernetes-sig-release/c/ow5CcrYJjmo - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/133254 - status: "approved" - -- name: "Pod Certificates" - issue: 4317 - date_requested: 2025-07-29 - date_reviewed: 2025-07-31 - thread: https://groups.google.com/g/kubernetes-sig-release/c/mvbrRhJ8Im8 - pull_requests: - - https://github.com/kubernetes/kubernetes/pull/133242 - status: "approved" +# Exception requests in v1.34 +# Google Group: https://groups.google.com/g/kubernetes-sig-release +# Release Team Lead: Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) + +# Enhancements Freeze Exceptions requested in v1.34 + +enhancementFreeze: + +- name: "In-Place Update of Pod Resources" + issue: 1287 + date_requested: 2025-06-20 + date_reviewed: 2025-06-23 + thread: https://groups.google.com/g/kubernetes-sig-release/c/MbbxapG9drw + pull_requests: + - https://github.com/kubernetes/enhancements/pull/5368 + status: "approved" + +- name: "In-Place Pod-Level Resources Resize" + issue: 5419 + date_requested: 2025-06-20 + date_reviewed: 2025-06-23 + thread: https://groups.google.com/g/kubernetes-sig-release/c/Bzq0oMkFhzE + pull_requests: + - https://github.com/kubernetes/enhancements/pull/5423 + - https://github.com/kubernetes/enhancements/pull/5432 + status: "approved" + +# Code Freeze Exceptions requested in v1.34 + +codeFreeze: + +- name: "DRA: Handle extended resource requests via DRA Driver" + issue: 5004 + date_requested: 2025-07-23 + date_reviewed: 2025-07-26 + thread: https://groups.google.com/g/kubernetes-sig-release/c/NOPRgAz9fxI + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/130653 + status: "approved" + +- name: "DRA: Consumable Capacity" + issue: 5075 + date_requested: 2025-07-23 + date_reviewed: 2025-07-25 + thread: https://groups.google.com/g/kubernetes-sig-release/c/uvnJHAWIyWA + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/132522 + status: "approved" + +- name: "DRA: Device Binding Conditions" + issue: 5007 + date_requested: 2025-07-24 + date_reviewed: 2025-07-25 + thread: https://groups.google.com/g/kubernetes-sig-release/c/ae9ZTJyP17Y + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/130160 + status: "approved" + +- name: "maxUnavailable for StatefulSets" + issue: 961 + date_requested: 2025-07-24 + date_reviewed: 2025-07-29 + thread: https://groups.google.com/g/kubernetes-sig-release/c/iRNNc_wpniA + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/130951 + - https://github.com/kubernetes/kubernetes/pull/133153 + status: "rejected" + +- name: "Pod level resources" + issue: 2837 + date_requested: 2025-07-24 + date_reviewed: 2025-07-28 + thread: https://groups.google.com/g/kubernetes-sig-release/c/WLVtwIEgiuQ + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/132999 + - https://github.com/kubernetes/kubernetes/pull/132430 + - https://github.com/kubernetes/kubernetes/pull/131089 + - https://github.com/kubernetes/kubernetes/pull/133279 + status: "approved" + +- name: "Asynchronous API calls during scheduling" + issue: 5229 + date_requested: 2025-07-25 + date_reviewed: 2025-07-28 + thread: https://groups.google.com/g/kubernetes-sig-release/c/_cgq2TEVqRM + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/132886 + - https://github.com/kubernetes/kubernetes/pull/133120 + status: "approved" + +- name: "Use NominatedNodeName to express the expected pod placement" + issue: 5278 + date_requested: 2025-07-25 + date_reviewed: 2025-07-28 + thread: https://groups.google.com/g/kubernetes-sig-release/c/5Xgb5gsO65k + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/133276 + - https://github.com/kubernetes/kubernetes/pull/132443 + - https://github.com/kubernetes/kubernetes/pull/133021 + - https://github.com/kubernetes/kubernetes/pull/133213 + - https://github.com/kubernetes/kubernetes/pull/133293 + status: "approved" + +- name: "Support User Namespaces in pods" + issue: 127 + date_requested: 2025-07-25 + date_reviewed: 2025-07-28 + thread: https://groups.google.com/g/kubernetes-sig-release/c/ARroy9Z2JMg + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/132868 + status: "approved" + +- name: "Allows setting any FQDN as the pod's hostname" + issue: 4762 + date_requested: 2025-07-29 + date_reviewed: 2025-07-29 + thread: https://groups.google.com/g/kubernetes-sig-release/c/ow5CcrYJjmo + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/133254 + status: "approved" + +- name: "Pod Certificates" + issue: 4317 + date_requested: 2025-07-29 + date_reviewed: 2025-07-31 + thread: https://groups.google.com/g/kubernetes-sig-release/c/mvbrRhJ8Im8 + pull_requests: + - https://github.com/kubernetes/kubernetes/pull/133242 + status: "approved" diff --git a/releases/release-1.34/release-notes/maps/pr-120816-map.yaml b/releases/release-1.34/release-notes/maps/pr-120816-map.yaml index 6c377d1193b..2d00fdc1f37 100644 --- a/releases/release-1.34/release-notes/maps/pr-120816-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-120816-map.yaml @@ -1,5 +1,5 @@ -pr: 120816 -releasenote: - text: Reduced the 5s delay before tainting `node.kubernetes.io/unreachable:NoExecute` - when a Node became unreachable. -pr_body: "" +pr: 120816 +releasenote: + text: Reduced the 5s delay before tainting `node.kubernetes.io/unreachable:NoExecute` + when a Node became unreachable. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-125271-map.yaml b/releases/release-1.34/release-notes/maps/pr-125271-map.yaml index 0e1e9108340..a899bb4b3f7 100644 --- a/releases/release-1.34/release-notes/maps/pr-125271-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-125271-map.yaml @@ -1,5 +1,5 @@ -pr: 125271 -releasenote: - text: The `baseline` and `restricted` pod security admission levels blocked setting - the `host` field on probe and lifecycle handlers. -pr_body: "" +pr: 125271 +releasenote: + text: The `baseline` and `restricted` pod security admission levels blocked setting + the `host` field on probe and lifecycle handlers. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-126619-map.yaml b/releases/release-1.34/release-notes/maps/pr-126619-map.yaml index 0acbef6478b..43038ccdb27 100644 --- a/releases/release-1.34/release-notes/maps/pr-126619-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-126619-map.yaml @@ -1,5 +1,5 @@ -pr: 126619 -releasenote: - text: Included the namespace in the output of `kubectl delete` for better identification - of resources. -pr_body: "" +pr: 126619 +releasenote: + text: Included the namespace in the output of `kubectl delete` for better identification + of resources. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-127365-map.yaml b/releases/release-1.34/release-notes/maps/pr-127365-map.yaml index d59db2c972a..ace2fd19849 100644 --- a/releases/release-1.34/release-notes/maps/pr-127365-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-127365-map.yaml @@ -1,5 +1,5 @@ -pr: 127365 -releasenote: - text: Added a flag to kubectl version to detect whether a client/server version - mismatch was outside the officially supported range. -pr_body: "" +pr: 127365 +releasenote: + text: Added a flag to kubectl version to detect whether a client/server version + mismatch was outside the officially supported range. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-127667-map.yaml b/releases/release-1.34/release-notes/maps/pr-127667-map.yaml index be7c58041d5..8bd420ff8dd 100644 --- a/releases/release-1.34/release-notes/maps/pr-127667-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-127667-map.yaml @@ -1,7 +1,7 @@ -pr: 127667 -releasenote: - text: 'kube-log-runner: Added the `-log-file-size` parameter to rotate log output - into a new file once it reached a certain size. Introduced `-log-file-age` to - enable automatic removal of old output files, and `-flush-interval` to support - periodic flushing.' -pr_body: "" +pr: 127667 +releasenote: + text: 'kube-log-runner: Added the `-log-file-size` parameter to rotate log output + into a new file once it reached a certain size. Introduced `-log-file-age` to + enable automatic removal of old output files, and `-flush-interval` to support + periodic flushing.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-128010-map.yaml b/releases/release-1.34/release-notes/maps/pr-128010-map.yaml index 5fa29789853..c8c28b997a7 100644 --- a/releases/release-1.34/release-notes/maps/pr-128010-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-128010-map.yaml @@ -1,4 +1,4 @@ -pr: 128010 -releasenote: - text: 'Enabled kube-apiserver support for `PodCertificateRequest` and `PodCertificate` projected volumes (behind the `PodCertificateRequest` feature gate).' -pr_body: "" +pr: 128010 +releasenote: + text: 'Enabled kube-apiserver support for `PodCertificateRequest` and `PodCertificate` projected volumes (behind the `PodCertificateRequest` feature gate).' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-128351-map.yaml b/releases/release-1.34/release-notes/maps/pr-128351-map.yaml index 16caa339e1e..a654dd31cc3 100644 --- a/releases/release-1.34/release-notes/maps/pr-128351-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-128351-map.yaml @@ -1,4 +1,4 @@ -pr: 128351 -releasenote: - text: Updated `kube-controller-manager` events to support contextual logging. -pr_body: "" +pr: 128351 +releasenote: + text: Updated `kube-controller-manager` events to support contextual logging. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-128748-map.yaml b/releases/release-1.34/release-notes/maps/pr-128748-map.yaml index e84e2db300e..91e5befb626 100644 --- a/releases/release-1.34/release-notes/maps/pr-128748-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-128748-map.yaml @@ -1,5 +1,5 @@ -pr: 128748 -releasenote: - text: Ensured that non-scheduling related errors (e.g., network errors) did not - lengthen the Pod scheduling backoff time. -pr_body: "" +pr: 128748 +releasenote: + text: Ensured that non-scheduling related errors (e.g., network errors) did not + lengthen the Pod scheduling backoff time. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-129237-map.yaml b/releases/release-1.34/release-notes/maps/pr-129237-map.yaml index a77b683bd87..3a43474d511 100644 --- a/releases/release-1.34/release-notes/maps/pr-129237-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-129237-map.yaml @@ -1,8 +1,8 @@ -pr: 129237 -releasenote: - text: 'kube-apiserver: Added support for disabling caching of authorization webhook - decisions in the `--authorization-config` file. The new fields `cacheAuthorizedRequests` - and `cacheUnauthorizedRequests` could be set to `false` to prevent caching for - authorized or unauthorized requests. See the https://kubernetes.io/docs/reference/access-authn-authz/authorization/#using-configuration-file-for-authorization - for more details.' -pr_body: "" +pr: 129237 +releasenote: + text: 'kube-apiserver: Added support for disabling caching of authorization webhook + decisions in the `--authorization-config` file. The new fields `cacheAuthorizedRequests` + and `cacheUnauthorizedRequests` could be set to `false` to prevent caching for + authorized or unauthorized requests. See the https://kubernetes.io/docs/reference/access-authn-authz/authorization/#using-configuration-file-for-authorization + for more details.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-129373-map.yaml b/releases/release-1.34/release-notes/maps/pr-129373-map.yaml index 1509e62520d..cc45d986d63 100644 --- a/releases/release-1.34/release-notes/maps/pr-129373-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-129373-map.yaml @@ -1,5 +1,5 @@ -pr: 129373 -releasenote: - text: Added support for `--cpu`, `--memory` flag to `kubectl autoscale`, started - deprecating `--cpu-precent`. -pr_body: "" +pr: 129373 +releasenote: + text: Added support for `--cpu`, `--memory` flag to `kubectl autoscale`, started + deprecating `--cpu-precent`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-129438-map.yaml b/releases/release-1.34/release-notes/maps/pr-129438-map.yaml index 3abb7622026..4faff905d73 100644 --- a/releases/release-1.34/release-notes/maps/pr-129438-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-129438-map.yaml @@ -1,7 +1,7 @@ -pr: 129438 -releasenote: - text: 'kube-apiserver: Each unique set of etcd server overrides specified with `--etcd-servers-overrides` - surfaced health checks named `etcd-override-<index>` and `etcd-override-readiness-<index>`. - These checks were still excluded by the `?exclude=etcd` and `?exclude=etcd-readiness` - directives.' -pr_body: "" +pr: 129438 +releasenote: + text: 'kube-apiserver: Each unique set of etcd server overrides specified with `--etcd-servers-overrides` + surfaced health checks named `etcd-override-<index>` and `etcd-override-readiness-<index>`. + These checks were still excluded by the `?exclude=etcd` and `?exclude=etcd-readiness` + directives.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-129837-map.yaml b/releases/release-1.34/release-notes/maps/pr-129837-map.yaml index f51b1e62bee..e4017f872b5 100644 --- a/releases/release-1.34/release-notes/maps/pr-129837-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-129837-map.yaml @@ -1,13 +1,13 @@ -pr: 129837 -releasenote: - text: |- - When proxying to an aggregated API server, kube-apiserver used the - `EndpointSlices` of the `service` indicated by the `APIServer`, rather than - using Endpoints. - - If you were using the aggregated API server feature, and you were writing out - the endpoints for it by hand (rather than letting kube-controller-manager - generate `Endpoints` and `EndpointSlices` for it automatically based on the - Service definition), then you should write out an EndpointSlice object rather - than (or in addition to) an `Endpoints` object. -pr_body: "" +pr: 129837 +releasenote: + text: |- + When proxying to an aggregated API server, kube-apiserver used the + `EndpointSlices` of the `service` indicated by the `APIServer`, rather than + using Endpoints. + + If you were using the aggregated API server feature, and you were writing out + the endpoints for it by hand (rather than letting kube-controller-manager + generate `Endpoints` and `EndpointSlices` for it automatically based on the + Service definition), then you should write out an EndpointSlice object rather + than (or in addition to) an `Endpoints` object. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-129874-map.yaml b/releases/release-1.34/release-notes/maps/pr-129874-map.yaml index d4c3cf9f104..317d211847e 100644 --- a/releases/release-1.34/release-notes/maps/pr-129874-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-129874-map.yaml @@ -1,12 +1,12 @@ -pr: 129874 -releasenote: - text: The Kubernetes API server merged selectors built from `matchLabelKeys` into - the `labelSelector` of `topologySpreadConstraints`, aligning Pod Topology Spread - behavior with Inter-Pod Affinity. To prevent breaking existing Pods using `matchLabelKeys`, - this scheduler behavior was preserved until v1.34. Upgrades from v1.32 to v1.34 - should be done incrementally (v1.32 → v1.33 → v1.34), ensuring Pods created at - v1.32 with `matchLabelKeys` are scheduled before reaching v1.34. Controllers relying - on `matchLabelKeys` no longer need to handle them directly and can use `labelSelector` - instead. The new feature gate `MatchLabelKeysInPodTopologySpreadSelectorMerge`, - enabled by default, controls this behavior. -pr_body: "" +pr: 129874 +releasenote: + text: The Kubernetes API server merged selectors built from `matchLabelKeys` into + the `labelSelector` of `topologySpreadConstraints`, aligning Pod Topology Spread + behavior with Inter-Pod Affinity. To prevent breaking existing Pods using `matchLabelKeys`, + this scheduler behavior was preserved until v1.34. Upgrades from v1.32 to v1.34 + should be done incrementally (v1.32 → v1.33 → v1.34), ensuring Pods created at + v1.32 with `matchLabelKeys` are scheduled before reaching v1.34. Controllers relying + on `matchLabelKeys` no longer need to handle them directly and can use `labelSelector` + instead. The new feature gate `MatchLabelKeysInPodTopologySpreadSelectorMerge`, + enabled by default, controls this behavior. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130160-map.yaml b/releases/release-1.34/release-notes/maps/pr-130160-map.yaml index e7383f687ca..1890ffeb882 100644 --- a/releases/release-1.34/release-notes/maps/pr-130160-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130160-map.yaml @@ -1,4 +1,4 @@ -pr: 130160 -releasenote: - text: Added new optional APIs in `ResouceSlice.Basic` and `ResourceClaim.Status.AllocatedDeviceStatus`. -pr_body: "" +pr: 130160 +releasenote: + text: Added new optional APIs in `ResouceSlice.Basic` and `ResourceClaim.Status.AllocatedDeviceStatus`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130333-map.yaml b/releases/release-1.34/release-notes/maps/pr-130333-map.yaml index e10b8d988e6..d9abad84dc2 100644 --- a/releases/release-1.34/release-notes/maps/pr-130333-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130333-map.yaml @@ -1,5 +1,5 @@ -pr: 130333 -releasenote: - text: Fixed a bug in the Job controller that could result in creating unnecessary - Pods for Jobs already marked as finished (either successful or failed). -pr_body: "" +pr: 130333 +releasenote: + text: Fixed a bug in the Job controller that could result in creating unnecessary + Pods for Jobs already marked as finished (either successful or failed). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130387-map.yaml b/releases/release-1.34/release-notes/maps/pr-130387-map.yaml index 7be36f6f123..b58b0ed1f11 100644 --- a/releases/release-1.34/release-notes/maps/pr-130387-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130387-map.yaml @@ -1,4 +1,4 @@ -pr: 130387 -releasenote: - text: Added a detailed event for in-place pod vertical scaling completed, improving cluster management and debugging. -pr_body: "" +pr: 130387 +releasenote: + text: Added a detailed event for in-place pod vertical scaling completed, improving cluster management and debugging. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130542-map.yaml b/releases/release-1.34/release-notes/maps/pr-130542-map.yaml index 49b9d490322..0057ab9e8ff 100644 --- a/releases/release-1.34/release-notes/maps/pr-130542-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130542-map.yaml @@ -1,5 +1,5 @@ -pr: 130542 -releasenote: - text: Updated `conntrack` reconciler to consider a Service’s target port during - cleanup of stale flow entries. -pr_body: "" +pr: 130542 +releasenote: + text: Updated `conntrack` reconciler to consider a Service’s target port during + cleanup of stale flow entries. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130593-map.yaml b/releases/release-1.34/release-notes/maps/pr-130593-map.yaml index 80e9d0a452d..0e12402e251 100644 --- a/releases/release-1.34/release-notes/maps/pr-130593-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130593-map.yaml @@ -1,7 +1,7 @@ -pr: 130593 -releasenote: - text: 'DRA: When the prioritized list feature was used in a request and the resulting - number of allocated devices exceeded the number of allowed devices per claim, - the scheduler aborted the attempt to allocate devices early. Previously, it tried - to many different combinations, which could take a long time.' -pr_body: "" +pr: 130593 +releasenote: + text: 'DRA: When the prioritized list feature was used in a request and the resulting + number of allocated devices exceeded the number of allowed devices per claim, + the scheduler aborted the attempt to allocate devices early. Previously, it tried + to many different combinations, which could take a long time.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130606-map.yaml b/releases/release-1.34/release-notes/maps/pr-130606-map.yaml index d7f0ffe9c1c..f9708f14841 100644 --- a/releases/release-1.34/release-notes/maps/pr-130606-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130606-map.yaml @@ -1,8 +1,8 @@ -pr: 130606 -releasenote: - text: Added support in the Kubelet for monitoring the health of devices allocated via Dynamic Resource - Allocation (DRA) and report it in the `pod.status.containerStatuses.allocatedResourcesStatus` - field. This required the DRA plugin to implement the new v1alpha1 `NodeHealth` - gRPC service. This feature was controlled by the `ResourceHealthStatus` feature - gate. -pr_body: "" +pr: 130606 +releasenote: + text: Added support in the Kubelet for monitoring the health of devices allocated via Dynamic Resource + Allocation (DRA) and report it in the `pod.status.containerStatuses.allocatedResourcesStatus` + field. This required the DRA plugin to implement the new v1alpha1 `NodeHealth` + gRPC service. This feature was controlled by the `ResourceHealthStatus` feature + gate. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130653-map.yaml b/releases/release-1.34/release-notes/maps/pr-130653-map.yaml index f937a360a52..ccc97ec0179 100644 --- a/releases/release-1.34/release-notes/maps/pr-130653-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130653-map.yaml @@ -1,7 +1,7 @@ -pr: 130653 -releasenote: - text: |- - Extended resources backed by DRA feature allowed cluster operator to specify `extendedResourceName` in `DeviceClass`, and application operator to continue using extended resources in pod's requests to request for DRA devices matching the DeviceClass. - - `NodeResourcesFit` plugin scoring didn't work for extended resources backed by DRA. -pr_body: "" +pr: 130653 +releasenote: + text: |- + Extended resources backed by DRA feature allowed cluster operator to specify `extendedResourceName` in `DeviceClass`, and application operator to continue using extended resources in pod's requests to request for DRA devices matching the DeviceClass. + + `NodeResourcesFit` plugin scoring didn't work for extended resources backed by DRA. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130713-map.yaml b/releases/release-1.34/release-notes/maps/pr-130713-map.yaml index 5bd651fecd6..eaf86433b62 100644 --- a/releases/release-1.34/release-notes/maps/pr-130713-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130713-map.yaml @@ -1,4 +1,4 @@ -pr: 130713 -releasenote: - text: Updated pause version to `registry.k8s.io/pause:3.10.1`. -pr_body: "" +pr: 130713 +releasenote: + text: Updated pause version to `registry.k8s.io/pause:3.10.1`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130720-map.yaml b/releases/release-1.34/release-notes/maps/pr-130720-map.yaml index 4e1301449e9..61d79e75ca8 100644 --- a/releases/release-1.34/release-notes/maps/pr-130720-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130720-map.yaml @@ -1,5 +1,5 @@ -pr: 130720 -releasenote: - text: The Scheduling Framework exposed `NodeInfos` to the PreFilter plugins. The - PreFilter plugins now accepted the `NodeInfo` list from the arguments. -pr_body: "" +pr: 130720 +releasenote: + text: The Scheduling Framework exposed `NodeInfos` to the PreFilter plugins. The + PreFilter plugins now accepted the `NodeInfo` list from the arguments. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130727-map.yaml b/releases/release-1.34/release-notes/maps/pr-130727-map.yaml index 8124f959f3c..76221510301 100644 --- a/releases/release-1.34/release-notes/maps/pr-130727-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130727-map.yaml @@ -1,4 +1,4 @@ -pr: 130727 -releasenote: - text: Migrated Memory Manager to contextual logging. -pr_body: "" +pr: 130727 +releasenote: + text: Migrated Memory Manager to contextual logging. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130782-map.yaml b/releases/release-1.34/release-notes/maps/pr-130782-map.yaml index 7453fe0389f..2b6a93cabcb 100644 --- a/releases/release-1.34/release-notes/maps/pr-130782-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130782-map.yaml @@ -1,5 +1,5 @@ -pr: 130782 -releasenote: - text: 'kubeadm: Fixed an issue where etcd member promotion failed with an error - indicating the member was already promoted.' -pr_body: "" +pr: 130782 +releasenote: + text: 'kubeadm: Fixed an issue where etcd member promotion failed with an error + indicating the member was already promoted.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130852-map.yaml b/releases/release-1.34/release-notes/maps/pr-130852-map.yaml index 400eb756009..b291e31d196 100644 --- a/releases/release-1.34/release-notes/maps/pr-130852-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130852-map.yaml @@ -1,4 +1,4 @@ -pr: 130852 -releasenote: - text: Migrated `pkg/kubelet/status` to use contextual logging. -pr_body: "" +pr: 130852 +releasenote: + text: Migrated `pkg/kubelet/status` to use contextual logging. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130909-map.yaml b/releases/release-1.34/release-notes/maps/pr-130909-map.yaml index 09e1356faca..7a34a0a754a 100644 --- a/releases/release-1.34/release-notes/maps/pr-130909-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130909-map.yaml @@ -1,4 +1,4 @@ -pr: 130909 -releasenote: - text: '`Statefulset` respected `minReadySeconds`.' -pr_body: "" +pr: 130909 +releasenote: + text: '`Statefulset` respected `minReadySeconds`.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130919-map.yaml b/releases/release-1.34/release-notes/maps/pr-130919-map.yaml index 7c8b489a899..202fe08b28f 100644 --- a/releases/release-1.34/release-notes/maps/pr-130919-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130919-map.yaml @@ -1,7 +1,7 @@ -pr: 130919 -releasenote: - text: Added a delay to node updates after kubelet startup. A random offset, based - on the configured `nodeStatusReportFrequency`, helped distribute traffic and load - from node status updates more evenly over time. The initial status update could - occur up to 50% earlier or later than the regular schedule. -pr_body: "" +pr: 130919 +releasenote: + text: Added a delay to node updates after kubelet startup. A random offset, based + on the configured `nodeStatusReportFrequency`, helped distribute traffic and load + from node status updates more evenly over time. The initial status update could + occur up to 50% earlier or later than the regular schedule. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-130994-map.yaml b/releases/release-1.34/release-notes/maps/pr-130994-map.yaml index 296b9679b9f..1cfee5b44b1 100644 --- a/releases/release-1.34/release-notes/maps/pr-130994-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-130994-map.yaml @@ -1,5 +1,5 @@ -pr: 130994 -releasenote: - text: Removed an inaccurate statement about requiring ports when the Pod spec `hostNetwork` - field was set. -pr_body: "" +pr: 130994 +releasenote: + text: Removed an inaccurate statement about requiring ports when the Pod spec `hostNetwork` + field was set. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131001-map.yaml b/releases/release-1.34/release-notes/maps/pr-131001-map.yaml index 85e4f0429b3..4485d794d8b 100644 --- a/releases/release-1.34/release-notes/maps/pr-131001-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131001-map.yaml @@ -1,4 +1,4 @@ -pr: 131001 -releasenote: - text: Migrated `pkg/kubelet/winstats` to contextual logging. -pr_body: "" +pr: 131001 +releasenote: + text: Migrated `pkg/kubelet/winstats` to contextual logging. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131018-map.yaml b/releases/release-1.34/release-notes/maps/pr-131018-map.yaml index 31b0d69de01..b858963695a 100644 --- a/releases/release-1.34/release-notes/maps/pr-131018-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131018-map.yaml @@ -1,5 +1,5 @@ -pr: 131018 -releasenote: - text: Masked access to Linux thermal interrupt information exposed via `/proc` and - `/sys`. -pr_body: "" +pr: 131018 +releasenote: + text: Masked access to Linux thermal interrupt information exposed via `/proc` and + `/sys`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131085-map.yaml b/releases/release-1.34/release-notes/maps/pr-131085-map.yaml index 601c835888f..b5422e45fcf 100644 --- a/releases/release-1.34/release-notes/maps/pr-131085-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131085-map.yaml @@ -1,4 +1,4 @@ -pr: 131085 -releasenote: - text: '[cloud-provider] Respected the `exclude-from-external-load-balancers=false` label.' -pr_body: "" +pr: 131085 +releasenote: + text: '[cloud-provider] Respected the `exclude-from-external-load-balancers=false` label.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131089-map.yaml b/releases/release-1.34/release-notes/maps/pr-131089-map.yaml index c96efcf69e0..0d4889362bb 100644 --- a/releases/release-1.34/release-notes/maps/pr-131089-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131089-map.yaml @@ -1,6 +1,6 @@ -pr: 131089 -releasenote: - text: |- - - Changed underlying logic to propagate pod-level hugepage cgroup to containers when they did not specify hugepage resources. - - Added validation to enforce the hugepage aggregated container limits to be smaller than or equal to pod-level limits. This was already enforced with the defaulted requests from the specified limits, however it did not make it clear about both hugepage requests and limits. -pr_body: "" +pr: 131089 +releasenote: + text: |- + - Changed underlying logic to propagate pod-level hugepage cgroup to containers when they did not specify hugepage resources. + - Added validation to enforce the hugepage aggregated container limits to be smaller than or equal to pod-level limits. This was already enforced with the defaulted requests from the specified limits, however it did not make it clear about both hugepage requests and limits. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131151-map.yaml b/releases/release-1.34/release-notes/maps/pr-131151-map.yaml index ee2e2e22c9f..f57d64821b6 100644 --- a/releases/release-1.34/release-notes/maps/pr-131151-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131151-map.yaml @@ -1,4 +1,4 @@ -pr: 131151 -releasenote: - text: Upgraded CoreDNS to v1.12.1. -pr_body: "" +pr: 131151 +releasenote: + text: Upgraded CoreDNS to v1.12.1. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131157-map.yaml b/releases/release-1.34/release-notes/maps/pr-131157-map.yaml index ab3a9a2b2c7..8096c4492b0 100644 --- a/releases/release-1.34/release-notes/maps/pr-131157-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131157-map.yaml @@ -1,6 +1,6 @@ -pr: 131157 -releasenote: - text: Fixed the `observedGeneration` field in pod resize conditions to accurately - reflect the associated pod generation when both `InPlacePodVerticalScaling` and - `PodObservedGenerationTracking` feature gates are enabled. -pr_body: "" +pr: 131157 +releasenote: + text: Fixed the `observedGeneration` field in pod resize conditions to accurately + reflect the associated pod generation when both `InPlacePodVerticalScaling` and + `PodObservedGenerationTracking` feature gates are enabled. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131165-map.yaml b/releases/release-1.34/release-notes/maps/pr-131165-map.yaml index 0158254171b..626d69c6031 100644 --- a/releases/release-1.34/release-notes/maps/pr-131165-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131165-map.yaml @@ -1,5 +1,5 @@ -pr: 131165 -releasenote: - text: '`kubectl create|delete|get|replace --raw` commands now honored the server - root paths specified in the kubeconfig file.' -pr_body: "" +pr: 131165 +releasenote: + text: '`kubectl create|delete|get|replace --raw` commands now honored the server + root paths specified in the kubeconfig file.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131213-map.yaml b/releases/release-1.34/release-notes/maps/pr-131213-map.yaml index 58e6ca335d9..9bbce083b7a 100644 --- a/releases/release-1.34/release-notes/maps/pr-131213-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131213-map.yaml @@ -1,4 +1,4 @@ -pr: 131213 -releasenote: - text: Fixed the `allocatedResourceStatuses` field name mismatch in PVC status validation. -pr_body: "" +pr: 131213 +releasenote: + text: Fixed the `allocatedResourceStatuses` field name mismatch in PVC status validation. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131215-map.yaml b/releases/release-1.34/release-notes/maps/pr-131215-map.yaml index 942ae1e2f9e..6debd3b9c22 100644 --- a/releases/release-1.34/release-notes/maps/pr-131215-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131215-map.yaml @@ -1,7 +1,7 @@ -pr: 131215 -releasenote: - text: |- - Removed `endpoint-controller` and `workload-leader-election` FlowSchemas from the default APF configuration. - - Action required: workloads using leader election were required to migrate their lock type from `configmapsleases` or `endpointsleases` to `leases`. -pr_body: "" +pr: 131215 +releasenote: + text: |- + Removed `endpoint-controller` and `workload-leader-election` FlowSchemas from the default APF configuration. + + Action required: workloads using leader election were required to migrate their lock type from `configmapsleases` or `endpointsleases` to `leases`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131265-map.yaml b/releases/release-1.34/release-notes/maps/pr-131265-map.yaml index f61c296be19..d5e9234c0ca 100644 --- a/releases/release-1.34/release-notes/maps/pr-131265-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131265-map.yaml @@ -1,4 +1,4 @@ -pr: 131265 -releasenote: - text: 'kube-proxy: Checked whether IPv6 was available on Linux before using it.' -pr_body: "" +pr: 131265 +releasenote: + text: 'kube-proxy: Checked whether IPv6 was available on Linux before using it.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131299-map.yaml b/releases/release-1.34/release-notes/maps/pr-131299-map.yaml index 215008910a4..b197ed9682e 100644 --- a/releases/release-1.34/release-notes/maps/pr-131299-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131299-map.yaml @@ -1,5 +1,5 @@ -pr: 131299 -releasenote: - text: 'DRA: Ensured that ResourceClaims requesting a fixed number of devices with - `adminAccess` were no longer allocated the same device multiple times.' -pr_body: "" +pr: 131299 +releasenote: + text: 'DRA: Ensured that ResourceClaims requesting a fixed number of devices with + `adminAccess` were no longer allocated the same device multiple times.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131300-map.yaml b/releases/release-1.34/release-notes/maps/pr-131300-map.yaml index 5252be8f25b..a78d45fc3e7 100644 --- a/releases/release-1.34/release-notes/maps/pr-131300-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131300-map.yaml @@ -1,9 +1,9 @@ -pr: 131300 -releasenote: - text: 'kube-apiserver: Promoted the `ExternalServiceAccountTokenSigner` feature - to beta, which enabled external signing of service account tokens and fetching - of public verifying keys. This was accomplished by enabling the beta `ExternalServiceAccountTokenSigner` - feature gate and specifying the `--service-account-signing-endpoint` flag. The - flag value could either be the path to a Unix domain socket on the filesystem, - or be prefixed with @ to indicate a Unix domain socket in the abstract namespace.' -pr_body: "" +pr: 131300 +releasenote: + text: 'kube-apiserver: Promoted the `ExternalServiceAccountTokenSigner` feature + to beta, which enabled external signing of service account tokens and fetching + of public verifying keys. This was accomplished by enabling the beta `ExternalServiceAccountTokenSigner` + feature gate and specifying the `--service-account-signing-endpoint` flag. The + flag value could either be the path to a Unix domain socket on the filesystem, + or be prefixed with @ to indicate a Unix domain socket in the abstract namespace.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131306-map.yaml b/releases/release-1.34/release-notes/maps/pr-131306-map.yaml index 77c44175c32..63756e10165 100644 --- a/releases/release-1.34/release-notes/maps/pr-131306-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131306-map.yaml @@ -1,4 +1,4 @@ -pr: 131306 -releasenote: - text: Migrated `pkg/kubelet/volumemanager` to contextual logging. -pr_body: "" +pr: 131306 +releasenote: + text: Migrated `pkg/kubelet/volumemanager` to contextual logging. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131311-map.yaml b/releases/release-1.34/release-notes/maps/pr-131311-map.yaml index 0952365554c..94fd1b08fd1 100644 --- a/releases/release-1.34/release-notes/maps/pr-131311-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131311-map.yaml @@ -1,5 +1,5 @@ -pr: 131311 -releasenote: - text: Stopped removing the CSI JSON file if the volume was already mounted during - subsequent errors. -pr_body: "" +pr: 131311 +releasenote: + text: Stopped removing the CSI JSON file if the volume was already mounted during + subsequent errors. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131318-map.yaml b/releases/release-1.34/release-notes/maps/pr-131318-map.yaml index 5442e28b802..20d7d00e597 100644 --- a/releases/release-1.34/release-notes/maps/pr-131318-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131318-map.yaml @@ -1,5 +1,5 @@ -pr: 131318 -releasenote: - text: '`MultiCIDRServiceAllocator` was locked and enabled by default, `DisableAllocatorDualWrite` - was enabled by default.' -pr_body: "" +pr: 131318 +releasenote: + text: '`MultiCIDRServiceAllocator` was locked and enabled by default, `DisableAllocatorDualWrite` + was enabled by default.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131354-map.yaml b/releases/release-1.34/release-notes/maps/pr-131354-map.yaml index c900d720c3b..648aa0186a9 100644 --- a/releases/release-1.34/release-notes/maps/pr-131354-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131354-map.yaml @@ -1,5 +1,5 @@ -pr: 131354 -releasenote: - text: Corrected the documentation to clarify that `podSelector` is optional and - described its default behavior. -pr_body: "" +pr: 131354 +releasenote: + text: Corrected the documentation to clarify that `podSelector` is optional and + described its default behavior. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131408-map.yaml b/releases/release-1.34/release-notes/maps/pr-131408-map.yaml index 461bf4b2aa1..08d16fe4e7f 100644 --- a/releases/release-1.34/release-notes/maps/pr-131408-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131408-map.yaml @@ -1,4 +1,4 @@ -pr: 131408 -releasenote: - text: Stopped logging error events when waiting for expansion on the kubelet. -pr_body: "" +pr: 131408 +releasenote: + text: Stopped logging error events when waiting for expansion on the kubelet. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131418-map.yaml b/releases/release-1.34/release-notes/maps/pr-131418-map.yaml index 7bf82c9b20e..5f1984896ca 100644 --- a/releases/release-1.34/release-notes/maps/pr-131418-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131418-map.yaml @@ -1,5 +1,5 @@ -pr: 131418 -releasenote: - text: Checked for newer resize fields when deciding the recovery feature status - in the kubelet. -pr_body: "" +pr: 131418 +releasenote: + text: Checked for newer resize fields when deciding the recovery feature status + in the kubelet. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131425-map.yaml b/releases/release-1.34/release-notes/maps/pr-131425-map.yaml index 1fe3530f9fb..97860673252 100644 --- a/releases/release-1.34/release-notes/maps/pr-131425-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131425-map.yaml @@ -1,5 +1,5 @@ -pr: 131425 -releasenote: - text: 'kube-scheduler: Removed the deprecated scheduler_scheduler_cache_size metric in - favor of scheduler_cache_size.' -pr_body: "" +pr: 131425 +releasenote: + text: 'kube-scheduler: Removed the deprecated scheduler_scheduler_cache_size metric in + favor of scheduler_cache_size.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131444-map.yaml b/releases/release-1.34/release-notes/maps/pr-131444-map.yaml index f081893f975..21d5612942e 100644 --- a/releases/release-1.34/release-notes/maps/pr-131444-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131444-map.yaml @@ -1,4 +1,4 @@ -pr: 131444 -releasenote: - text: 'Bumped the cel-go dependency to v0.25.0. The changeset is available at: https://github.com/google/cel-go/compare/v0.23.2...v0.25.0.' -pr_body: "" +pr: 131444 +releasenote: + text: 'Bumped the cel-go dependency to v0.25.0. The changeset is available at: https://github.com/google/cel-go/compare/v0.23.2...v0.25.0.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131459-map.yaml b/releases/release-1.34/release-notes/maps/pr-131459-map.yaml index e0a54517613..0d11ba29a3a 100644 --- a/releases/release-1.34/release-notes/maps/pr-131459-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131459-map.yaml @@ -1,4 +1,4 @@ -pr: 131459 -releasenote: - text: hack/update-codegen.sh now automatically ensured goimports and protoc. -pr_body: "" +pr: 131459 +releasenote: + text: hack/update-codegen.sh now automatically ensured goimports and protoc. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131463-map.yaml b/releases/release-1.34/release-notes/maps/pr-131463-map.yaml index 45104b69009..13c04e08cdf 100644 --- a/releases/release-1.34/release-notes/maps/pr-131463-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131463-map.yaml @@ -1,4 +1,4 @@ -pr: 131463 -releasenote: - text: The deprecated `LegacySidecarContainers` feature gate was completely removed. -pr_body: "" +pr: 131463 +releasenote: + text: The deprecated `LegacySidecarContainers` feature gate was completely removed. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131493-map.yaml b/releases/release-1.34/release-notes/maps/pr-131493-map.yaml index d9e2b1b5894..28948bc875b 100644 --- a/releases/release-1.34/release-notes/maps/pr-131493-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131493-map.yaml @@ -1,5 +1,5 @@ -pr: 131493 -releasenote: - text: 'kube-apiserver: Fixed OIDC discovery document publishing when external service - account token signing was enabled.' -pr_body: "" +pr: 131493 +releasenote: + text: 'kube-apiserver: Fixed OIDC discovery document publishing when external service + account token signing was enabled.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131495-map.yaml b/releases/release-1.34/release-notes/maps/pr-131495-map.yaml index 40f6052ea03..24963d5ddcb 100644 --- a/releases/release-1.34/release-notes/maps/pr-131495-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131495-map.yaml @@ -1,6 +1,6 @@ -pr: 131495 -releasenote: - text: 'kubelet: Fixed a bug that caused an unexpected `NodeResizeError` condition - to appear in the PVC status when the CSI driver did not support node volume expansion - and the PVC had the `ReadWriteMany` access mode.' -pr_body: "" +pr: 131495 +releasenote: + text: 'kubelet: Fixed a bug that caused an unexpected `NodeResizeError` condition + to appear in the PVC status when the CSI driver did not support node volume expansion + and the PVC had the `ReadWriteMany` access mode.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131501-map.yaml b/releases/release-1.34/release-notes/maps/pr-131501-map.yaml index 9cc2042667a..28256fdad09 100644 --- a/releases/release-1.34/release-notes/maps/pr-131501-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131501-map.yaml @@ -1,4 +1,4 @@ -pr: 131501 -releasenote: - text: Updated etcd version to v3.6.0. -pr_body: "" +pr: 131501 +releasenote: + text: Updated etcd version to v3.6.0. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131506-map.yaml b/releases/release-1.34/release-notes/maps/pr-131506-map.yaml index 5a2184ae55a..266eb596fd8 100644 --- a/releases/release-1.34/release-notes/maps/pr-131506-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131506-map.yaml @@ -1,6 +1,6 @@ -pr: 131506 -releasenote: - text: Fixed an issue where Windows kube-proxy’s `ModifyLoadBalancer` API updates - did not match the HNS state in version 15.4. Support for `ModifyLoadBalancer` - policy began with Kubernetes 1.31+. -pr_body: "" +pr: 131506 +releasenote: + text: Fixed an issue where Windows kube-proxy’s `ModifyLoadBalancer` API updates + did not match the HNS state in version 15.4. Support for `ModifyLoadBalancer` + policy began with Kubernetes 1.31+. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131514-map.yaml b/releases/release-1.34/release-notes/maps/pr-131514-map.yaml index 15bf5f9b9ec..be2739f1244 100644 --- a/releases/release-1.34/release-notes/maps/pr-131514-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131514-map.yaml @@ -1,4 +1,4 @@ -pr: 131514 -releasenote: - text: Promoted the feature `OrderedNamespaceDeletion` to GA. -pr_body: "" +pr: 131514 +releasenote: + text: Promoted the feature `OrderedNamespaceDeletion` to GA. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131525-map.yaml b/releases/release-1.34/release-notes/maps/pr-131525-map.yaml index ead83c9787a..ec65c8b614b 100644 --- a/releases/release-1.34/release-notes/maps/pr-131525-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131525-map.yaml @@ -1,6 +1,6 @@ -pr: 131525 -releasenote: - text: 'kube-apiserver: Defaulted empty `spec.jobTemplate.spec.podFailurePolicy.rules[*].onPodConditions[*].status` - fields for CronJob objects as documented, avoiding validation failures during - write requests.' -pr_body: "" +pr: 131525 +releasenote: + text: 'kube-apiserver: Defaulted empty `spec.jobTemplate.spec.podFailurePolicy.rules[*].onPodConditions[*].status` + fields for CronJob objects as documented, avoiding validation failures during + write requests.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131563-map.yaml b/releases/release-1.34/release-notes/maps/pr-131563-map.yaml index a4e9fadbf68..0067fb5d3df 100644 --- a/releases/release-1.34/release-notes/maps/pr-131563-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131563-map.yaml @@ -1,5 +1,5 @@ -pr: 131563 -releasenote: - text: 'kubeadm: Fixed missing space when printing the warning about pause image - mismatch.' -pr_body: "" +pr: 131563 +releasenote: + text: 'kubeadm: Fixed missing space when printing the warning about pause image + mismatch.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131568-map.yaml b/releases/release-1.34/release-notes/maps/pr-131568-map.yaml index ecd770df24c..b308800f726 100644 --- a/releases/release-1.34/release-notes/maps/pr-131568-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131568-map.yaml @@ -1,5 +1,5 @@ -pr: 131568 -releasenote: - text: Disabled reading of disk geometry before calling expansion for ext and xfs - filesystems. -pr_body: "" +pr: 131568 +releasenote: + text: Disabled reading of disk geometry before calling expansion for ext and xfs + filesystems. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131574-map.yaml b/releases/release-1.34/release-notes/maps/pr-131574-map.yaml index 6ccbf60dc0f..9245adece75 100644 --- a/releases/release-1.34/release-notes/maps/pr-131574-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131574-map.yaml @@ -1,8 +1,8 @@ -pr: 131574 -releasenote: - text: Added support for CEL expressions with escaped names in the structured authentication - config. Using `[...]` to access claims or user data was recommended when names - contained characters that would otherwise need escaping. CEL optionals with `?` - could be used where has was not applicable — for example, `claims[?"kubernetes.io"]` - or `user.extra[?"domain.io/foo"]`. -pr_body: "" +pr: 131574 +releasenote: + text: Added support for CEL expressions with escaped names in the structured authentication + config. Using `[...]` to access claims or user data was recommended when names + contained characters that would otherwise need escaping. CEL optionals with `?` + could be used where has was not applicable — for example, `claims[?"kubernetes.io"]` + or `user.extra[?"domain.io/foo"]`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131586-map.yaml b/releases/release-1.34/release-notes/maps/pr-131586-map.yaml index f32ac6b6fc9..7ffc226274d 100644 --- a/releases/release-1.34/release-notes/maps/pr-131586-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131586-map.yaml @@ -1,4 +1,4 @@ -pr: 131586 -releasenote: - text: 'Enabled completion for aliases defined in `kubectlrc`.' -pr_body: "" +pr: 131586 +releasenote: + text: 'Enabled completion for aliases defined in `kubectlrc`.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131587-map.yaml b/releases/release-1.34/release-notes/maps/pr-131587-map.yaml index 67a4f0d08b1..6d3f7875f6b 100644 --- a/releases/release-1.34/release-notes/maps/pr-131587-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131587-map.yaml @@ -1,5 +1,5 @@ -pr: 131587 -releasenote: - text: 'kubeadm: Made the coredns deployment manifest use named ports consistently - for the liveness and readiness probes.' -pr_body: "" +pr: 131587 +releasenote: + text: 'kubeadm: Made the coredns deployment manifest use named ports consistently + for the liveness and readiness probes.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131623-map.yaml b/releases/release-1.34/release-notes/maps/pr-131623-map.yaml index 38ad639690c..c16189eae08 100644 --- a/releases/release-1.34/release-notes/maps/pr-131623-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131623-map.yaml @@ -1,5 +1,5 @@ -pr: 131623 -releasenote: - text: Improved the error message shown when a Pod using user namespaces was created - on a runtime that did not support user namespaces. -pr_body: "" +pr: 131623 +releasenote: + text: Improved the error message shown when a Pod using user namespaces was created + on a runtime that did not support user namespaces. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131632-map.yaml b/releases/release-1.34/release-notes/maps/pr-131632-map.yaml index 4fbada5a256..21292d9e22d 100644 --- a/releases/release-1.34/release-notes/maps/pr-131632-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131632-map.yaml @@ -1,5 +1,5 @@ -pr: 131632 -releasenote: - text: LeaseLocks could now have custom labels that different holders would overwrite - when they became the holder of the underlying lease. -pr_body: "" +pr: 131632 +releasenote: + text: LeaseLocks could now have custom labels that different holders would overwrite + when they became the holder of the underlying lease. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131641-map.yaml b/releases/release-1.34/release-notes/maps/pr-131641-map.yaml index 4b96bf85bf9..5a072ded8ff 100644 --- a/releases/release-1.34/release-notes/maps/pr-131641-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131641-map.yaml @@ -1,5 +1,5 @@ -pr: 131641 -releasenote: - text: The new `dra_resource_claims_in_use` kubelet metrics reported active `ResourceClaims`, - overall and by driver. -pr_body: "" +pr: 131641 +releasenote: + text: The new `dra_resource_claims_in_use` kubelet metrics reported active `ResourceClaims`, + overall and by driver. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131647-map.yaml b/releases/release-1.34/release-notes/maps/pr-131647-map.yaml index b429103b522..cb2ffcce4cc 100644 --- a/releases/release-1.34/release-notes/maps/pr-131647-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131647-map.yaml @@ -1,5 +1,5 @@ -pr: 131647 -releasenote: - text: 'kubeadm: Exposed only the non-deprecated klog flags (-v and -vmodule), in - line with KEP https://features.k8s.io/2845.' -pr_body: "" +pr: 131647 +releasenote: + text: 'kubeadm: Exposed only the non-deprecated klog flags (-v and -vmodule), in + line with KEP https://features.k8s.io/2845.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131654-map.yaml b/releases/release-1.34/release-notes/maps/pr-131654-map.yaml index f0de713de13..a485e8bc9f7 100644 --- a/releases/release-1.34/release-notes/maps/pr-131654-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131654-map.yaml @@ -1,5 +1,5 @@ -pr: 131654 -releasenote: - text: Graduated configurable endpoints for anonymous authentication using the authentication - configuration file to stable. -pr_body: "" +pr: 131654 +releasenote: + text: Graduated configurable endpoints for anonymous authentication using the authentication + configuration file to stable. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131658-map.yaml b/releases/release-1.34/release-notes/maps/pr-131658-map.yaml index 10b1b5c2be0..4df47400e55 100644 --- a/releases/release-1.34/release-notes/maps/pr-131658-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131658-map.yaml @@ -1,7 +1,7 @@ -pr: 131658 -releasenote: - text: 'kubelet: Extended the `--image-credential-provider-config` flag to accept - a directory path in addition to a single file. When a directory was specified, - all .json, .yaml, and .yml files in that directory were loaded and merged in lexicographical - order.' -pr_body: "" +pr: 131658 +releasenote: + text: 'kubelet: Extended the `--image-credential-provider-config` flag to accept + a directory path in addition to a single file. When a directory was specified, + all .json, .yaml, and .yml files in that directory were loaded and merged in lexicographical + order.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131677-map.yaml b/releases/release-1.34/release-notes/maps/pr-131677-map.yaml index dcbfccb33d9..f706000509c 100644 --- a/releases/release-1.34/release-notes/maps/pr-131677-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131677-map.yaml @@ -1,5 +1,5 @@ -pr: 131677 -releasenote: - text: 'kubeadm: Added support for ECDSA-P384 as an encryption algorithm type in - v1beta4.' -pr_body: "" +pr: 131677 +releasenote: + text: 'kubeadm: Added support for ECDSA-P384 as an encryption algorithm type in + v1beta4.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131741-map.yaml b/releases/release-1.34/release-notes/maps/pr-131741-map.yaml index febbd057175..6cb4878c872 100644 --- a/releases/release-1.34/release-notes/maps/pr-131741-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131741-map.yaml @@ -1,4 +1,4 @@ -pr: 131741 -releasenote: - text: Deprecated the `preferences` field in kubeconfig in favor of `kuberc`. -pr_body: "" +pr: 131741 +releasenote: + text: Deprecated the `preferences` field in kubeconfig in favor of `kuberc`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131752-map.yaml b/releases/release-1.34/release-notes/maps/pr-131752-map.yaml index b4ac42c2521..4ccc9ea2c82 100644 --- a/releases/release-1.34/release-notes/maps/pr-131752-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131752-map.yaml @@ -1,5 +1,5 @@ -pr: 131752 -releasenote: - text: 'kube-apiserver: The AuthenticationConfiguration type accepted in `--authentication-config` - files has been promoted to `apiserver.config.k8s.io/v1`.' -pr_body: "" +pr: 131752 +releasenote: + text: 'kube-apiserver: The AuthenticationConfiguration type accepted in `--authentication-config` + files has been promoted to `apiserver.config.k8s.io/v1`.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131768-map.yaml b/releases/release-1.34/release-notes/maps/pr-131768-map.yaml index d58fbfb92f7..9352d68e18e 100644 --- a/releases/release-1.34/release-notes/maps/pr-131768-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131768-map.yaml @@ -1,6 +1,6 @@ -pr: 131768 -releasenote: - text: Promoted the `apiserver_authorization_config_controller_automatic_reloads_total` - and `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` - metrics to BETA. -pr_body: "" +pr: 131768 +releasenote: + text: Promoted the `apiserver_authorization_config_controller_automatic_reloads_total` + and `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` + metrics to BETA. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131790-map.yaml b/releases/release-1.34/release-notes/maps/pr-131790-map.yaml index 081066984c4..2c72ff3cfb0 100644 --- a/releases/release-1.34/release-notes/maps/pr-131790-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131790-map.yaml @@ -1,4 +1,4 @@ -pr: 131790 -releasenote: - text: Added `podSpec` validation for creating `StatefulSet`. -pr_body: "" +pr: 131790 +releasenote: + text: Added `podSpec` validation for creating `StatefulSet`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131798-map.yaml b/releases/release-1.34/release-notes/maps/pr-131798-map.yaml index bacfb740000..cfe7101c066 100644 --- a/releases/release-1.34/release-notes/maps/pr-131798-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131798-map.yaml @@ -1,6 +1,6 @@ -pr: 131798 -releasenote: - text: Promoted the `apiserver_authentication_config_controller_automatic_reloads_total` - and `apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds` - metrics to BETA. -pr_body: "" +pr: 131798 +releasenote: + text: Promoted the `apiserver_authentication_config_controller_automatic_reloads_total` + and `apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds` + metrics to BETA. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131799-map.yaml b/releases/release-1.34/release-notes/maps/pr-131799-map.yaml index 8c1212af2ee..33047aa2f09 100644 --- a/releases/release-1.34/release-notes/maps/pr-131799-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131799-map.yaml @@ -1,5 +1,5 @@ -pr: 131799 -releasenote: - text: Ensured objects are transformed prior to storage in `SharedInformers` if a - transformer is provided and `WatchList` is activated. -pr_body: "" +pr: 131799 +releasenote: + text: Ensured objects are transformed prior to storage in `SharedInformers` if a + transformer is provided and `WatchList` is activated. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131818-map.yaml b/releases/release-1.34/release-notes/maps/pr-131818-map.yaml index 78548e82411..96c66217920 100644 --- a/releases/release-1.34/release-notes/maps/pr-131818-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131818-map.yaml @@ -1,6 +1,6 @@ -pr: 131818 -releasenote: - text: 'kubectl: Graduated kuberc support to beta. A `kuberc` configuration file provided - a mechanism for customizing `kubectl` behavior (distinct from kubeconfig, which - configures cluster access across different clients).' -pr_body: "" +pr: 131818 +releasenote: + text: 'kubectl: Graduated kuberc support to beta. A `kuberc` configuration file provided + a mechanism for customizing `kubectl` behavior (distinct from kubeconfig, which + configures cluster access across different clients).' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131822-map.yaml b/releases/release-1.34/release-notes/maps/pr-131822-map.yaml index 68be3f90e04..d487b1ae498 100644 --- a/releases/release-1.34/release-notes/maps/pr-131822-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131822-map.yaml @@ -1,5 +1,5 @@ -pr: 131822 -releasenote: - text: Fixed ReplicationController reconciliation when the `DeploymentReplicaSetTerminatingReplicas` - feature gate was enabled. -pr_body: "" +pr: 131822 +releasenote: + text: Fixed ReplicationController reconciliation when the `DeploymentReplicaSetTerminatingReplicas` + feature gate was enabled. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131837-map.yaml b/releases/release-1.34/release-notes/maps/pr-131837-map.yaml index 941c904229c..89a518cd646 100644 --- a/releases/release-1.34/release-notes/maps/pr-131837-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131837-map.yaml @@ -1,6 +1,6 @@ -pr: 131837 -releasenote: - text: "Static pods that reference API objects are now denied admission by the kubelet so that static pods would not be silently running even after the mirror pod creation fails. - - ACTION REQUIRED: Prior to upgrade, ensure static pods are not referencing API objects such as ServiceAccounts, ConfigMaps, Secrets, ResourceClaims, CSIDrivers, PersistentVolumeClaims, or ClusterTrustBundles." -pr_body: "" +pr: 131837 +releasenote: + text: "Static pods that reference API objects are now denied admission by the kubelet so that static pods would not be silently running even after the mirror pod creation fails. + + ACTION REQUIRED: Prior to upgrade, ensure static pods are not referencing API objects such as ServiceAccounts, ConfigMaps, Secrets, ResourceClaims, CSIDrivers, PersistentVolumeClaims, or ClusterTrustBundles." +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131844-map.yaml b/releases/release-1.34/release-notes/maps/pr-131844-map.yaml index 219ca3b2cd0..1891d66f719 100644 --- a/releases/release-1.34/release-notes/maps/pr-131844-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131844-map.yaml @@ -1,6 +1,6 @@ -pr: 131844 -releasenote: - text: 'kubelet: Closed a loophole that allowed static Pods to reference arbitrary - ResourceClaims. Even though these Pods failed to run due to a sanity check, such - references are now explicitly disallowed.' -pr_body: "" +pr: 131844 +releasenote: + text: 'kubelet: Closed a loophole that allowed static Pods to reference arbitrary + ResourceClaims. Even though these Pods failed to run due to a sanity check, such + references are now explicitly disallowed.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131868-map.yaml b/releases/release-1.34/release-notes/maps/pr-131868-map.yaml index 408aba53535..0b98ba43cc7 100644 --- a/releases/release-1.34/release-notes/maps/pr-131868-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131868-map.yaml @@ -1,5 +1,5 @@ -pr: 131868 -releasenote: - text: Stopped expanding the volume on the node if controller-side expansion was - already completed. -pr_body: "" +pr: 131868 +releasenote: + text: Stopped expanding the volume on the node if controller-side expansion was + already completed. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131887-map.yaml b/releases/release-1.34/release-notes/maps/pr-131887-map.yaml index bdf2b511d05..4e27dd7a745 100644 --- a/releases/release-1.34/release-notes/maps/pr-131887-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131887-map.yaml @@ -1,6 +1,6 @@ -pr: 131887 -releasenote: - text: |- - Types: CycleState, StateData, StateKey and ErrNotFound moved from pkg/scheduler/framework to k8s.io/kube-scheduler/framework. - Type CycleState that was passed to each plugin in scheduler framework was changed to the new interface CycleState (in k8s.io/kube-scheduler/framework). -pr_body: "" +pr: 131887 +releasenote: + text: |- + Types: CycleState, StateData, StateKey and ErrNotFound moved from pkg/scheduler/framework to k8s.io/kube-scheduler/framework. + Type CycleState that was passed to each plugin in scheduler framework was changed to the new interface CycleState (in k8s.io/kube-scheduler/framework). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131907-map.yaml b/releases/release-1.34/release-notes/maps/pr-131907-map.yaml index 6c591c6310c..cfc347228c5 100644 --- a/releases/release-1.34/release-notes/maps/pr-131907-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131907-map.yaml @@ -1,4 +1,4 @@ -pr: 131907 -releasenote: - text: Stopped expanding PVCs annotated with node-expand-not-required. -pr_body: "" +pr: 131907 +releasenote: + text: Stopped expanding PVCs annotated with node-expand-not-required. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131919-map.yaml b/releases/release-1.34/release-notes/maps/pr-131919-map.yaml index 0d741e9bf6a..c3b1d0c347f 100644 --- a/releases/release-1.34/release-notes/maps/pr-131919-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131919-map.yaml @@ -1,5 +1,5 @@ -pr: 131919 -releasenote: - text: 'kubeadm: Switched the validation check for Linux kernel version to throw - warnings instead of errors.' -pr_body: "" +pr: 131919 +releasenote: + text: 'kubeadm: Switched the validation check for Linux kernel version to throw + warnings instead of errors.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131934-map.yaml b/releases/release-1.34/release-notes/maps/pr-131934-map.yaml index 4add72ff941..eeaba000b50 100644 --- a/releases/release-1.34/release-notes/maps/pr-131934-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131934-map.yaml @@ -1,4 +1,4 @@ -pr: 131934 -releasenote: - text: Built Kubernetes using Go 1.24.3. -pr_body: "" +pr: 131934 +releasenote: + text: Built Kubernetes using Go 1.24.3. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131961-map.yaml b/releases/release-1.34/release-notes/maps/pr-131961-map.yaml index 17260309a50..fac17ba1add 100644 --- a/releases/release-1.34/release-notes/maps/pr-131961-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131961-map.yaml @@ -1,4 +1,4 @@ -pr: 131961 -releasenote: - text: 'kube-proxy: Removed the iptables CLI wait interval flag.' -pr_body: "" +pr: 131961 +releasenote: + text: 'kube-proxy: Removed the iptables CLI wait interval flag.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131965-map.yaml b/releases/release-1.34/release-notes/maps/pr-131965-map.yaml index 6a05fd9a191..e195eb6cb4a 100644 --- a/releases/release-1.34/release-notes/maps/pr-131965-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131965-map.yaml @@ -1,5 +1,5 @@ -pr: 131965 -releasenote: - text: Skipped pod backoff entirely when the `PodMaxBackoffDuration` kube-scheduler - option was set to zero and the `SchedulerPopFromBackoffQ` feature gate was enabled. -pr_body: "" +pr: 131965 +releasenote: + text: Skipped pod backoff entirely when the `PodMaxBackoffDuration` kube-scheduler + option was set to zero and the `SchedulerPopFromBackoffQ` feature gate was enabled. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131968-map.yaml b/releases/release-1.34/release-notes/maps/pr-131968-map.yaml index 9016f69ad1b..f163fb218f0 100644 --- a/releases/release-1.34/release-notes/maps/pr-131968-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131968-map.yaml @@ -1,6 +1,6 @@ -pr: 131968 -releasenote: - text: 'DRA kubelet: Simplified recovery from mistakes like scheduling a Pod onto - a node where the required driver was not running, as the kubelet no longer unnecessarily - blocked Pod deletion.' -pr_body: "" +pr: 131968 +releasenote: + text: 'DRA kubelet: Simplified recovery from mistakes like scheduling a Pod onto + a node where the required driver was not running, as the kubelet no longer unnecessarily + blocked Pod deletion.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131979-map.yaml b/releases/release-1.34/release-notes/maps/pr-131979-map.yaml index f9a59d29e7d..ca8566ed40f 100644 --- a/releases/release-1.34/release-notes/maps/pr-131979-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131979-map.yaml @@ -1,4 +1,4 @@ -pr: 131979 -releasenote: - text: Graduated `ResilientWatchCacheInitialization` to GA. -pr_body: "" +pr: 131979 +releasenote: + text: Graduated `ResilientWatchCacheInitialization` to GA. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131981-map.yaml b/releases/release-1.34/release-notes/maps/pr-131981-map.yaml index f03875dcaa8..da487c6d9b7 100644 --- a/releases/release-1.34/release-notes/maps/pr-131981-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131981-map.yaml @@ -1,8 +1,8 @@ -pr: 131981 -releasenote: - text: |- - kubeadm: Graduated the `NodeLocalCRISocket` feature gate to beta and enabed it by default. When its enabled, kubeadm will: - 1. Generate a `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in per-node kubelet configurations. - 2. Remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from nodes during upgrade operations. - 3. Remove the `--container-runtime-endpoint` flag from the `/var/lib/kubelet/kubeadm-flags.env` file during upgrades. -pr_body: "" +pr: 131981 +releasenote: + text: |- + kubeadm: Graduated the `NodeLocalCRISocket` feature gate to beta and enabed it by default. When its enabled, kubeadm will: + 1. Generate a `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in per-node kubelet configurations. + 2. Remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from nodes during upgrade operations. + 3. Remove the `--container-runtime-endpoint` flag from the `/var/lib/kubelet/kubeadm-flags.env` file during upgrades. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131989-map.yaml b/releases/release-1.34/release-notes/maps/pr-131989-map.yaml index c9c42137a97..43d10921388 100644 --- a/releases/release-1.34/release-notes/maps/pr-131989-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131989-map.yaml @@ -1,7 +1,7 @@ -pr: 131989 -releasenote: - text: '`AppArmor` profiles specified in the Pod or container `SecurityContext` were - no longer copied to deprecated `AppArmor` annotations (prefix `container.apparmor.security.beta.kubernetes.io/`). - Anything that inspected the deprecated annotations must be migrated to use the - `SecurityContext` fields instead.' -pr_body: "" +pr: 131989 +releasenote: + text: '`AppArmor` profiles specified in the Pod or container `SecurityContext` were + no longer copied to deprecated `AppArmor` annotations (prefix `container.apparmor.security.beta.kubernetes.io/`). + Anything that inspected the deprecated annotations must be migrated to use the + `SecurityContext` fields instead.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131992-map.yaml b/releases/release-1.34/release-notes/maps/pr-131992-map.yaml index 51778cd7e8c..79ddcb627c8 100644 --- a/releases/release-1.34/release-notes/maps/pr-131992-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131992-map.yaml @@ -1,4 +1,4 @@ -pr: 131992 -releasenote: - text: Deprecated `StreamingConnectionIdleTimeout` field of the kubelet config. -pr_body: "" +pr: 131992 +releasenote: + text: Deprecated `StreamingConnectionIdleTimeout` field of the kubelet config. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-131996-map.yaml b/releases/release-1.34/release-notes/maps/pr-131996-map.yaml index 5f848c600e2..cce77cb6f2c 100644 --- a/releases/release-1.34/release-notes/maps/pr-131996-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-131996-map.yaml @@ -1,4 +1,4 @@ -pr: 131996 -releasenote: - text: 'DRA: Starting with Kubernetes 1.34, the alpha-level `resource.k8s.io/admin-access` label has been updated to `resource.kubernetes.io/admin-access`. Admins using the alpha feature and updating from 1.33 can set both labels, upgrade, then remove `resource.k8s.io/admin-access` when no downgrade is going to happen anymore.' -pr_body: "" +pr: 131996 +releasenote: + text: 'DRA: Starting with Kubernetes 1.34, the alpha-level `resource.k8s.io/admin-access` label has been updated to `resource.kubernetes.io/admin-access`. Admins using the alpha feature and updating from 1.33 can set both labels, upgrade, then remove `resource.k8s.io/admin-access` when no downgrade is going to happen anymore.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132007-map.yaml b/releases/release-1.34/release-notes/maps/pr-132007-map.yaml index 5f9af1ba3b1..3d61fe59679 100644 --- a/releases/release-1.34/release-notes/maps/pr-132007-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132007-map.yaml @@ -1,7 +1,7 @@ -pr: 132007 -releasenote: - text: Updated the HPA controller so that it no longer emitted a `FailedRescale` - event if a scale operation initially failed due to a conflict but succeeded after - a retry; it now emitted a `SuccessfulRescale` event in this case. A `FailedRescale` - event was still emitted if all retries were exhausted. -pr_body: "" +pr: 132007 +releasenote: + text: Updated the HPA controller so that it no longer emitted a `FailedRescale` + event if a scale operation initially failed due to a conflict but succeeded after + a retry; it now emitted a `SuccessfulRescale` event in this case. A `FailedRescale` + event was still emitted if all retries were exhausted. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132012-map.yaml b/releases/release-1.34/release-notes/maps/pr-132012-map.yaml index 42a2fe2bd66..d6d44b495a1 100644 --- a/releases/release-1.34/release-notes/maps/pr-132012-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132012-map.yaml @@ -1,4 +1,4 @@ -pr: 132012 -releasenote: - text: Bumped kube-dns to v1.26.4. -pr_body: "" +pr: 132012 +releasenote: + text: Bumped kube-dns to v1.26.4. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132019-map.yaml b/releases/release-1.34/release-notes/maps/pr-132019-map.yaml index 88ca98e39cf..ff36be86d54 100644 --- a/releases/release-1.34/release-notes/maps/pr-132019-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132019-map.yaml @@ -1,5 +1,5 @@ -pr: 132019 -releasenote: - text: Promoted two `EndpointSlice` tests to conformance to ensure that service proxy - implementations rely on `EndpointSlices` instead of `Endpoints`. -pr_body: "" +pr: 132019 +releasenote: + text: Promoted two `EndpointSlice` tests to conformance to ensure that service proxy + implementations rely on `EndpointSlices` instead of `Endpoints`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132028-map.yaml b/releases/release-1.34/release-notes/maps/pr-132028-map.yaml index 4ffffd455d8..222e0870942 100644 --- a/releases/release-1.34/release-notes/maps/pr-132028-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132028-map.yaml @@ -1,8 +1,8 @@ -pr: 132028 -releasenote: - text: Modified the node-local `podresources` API endpoint to consider only active - pods. Since this changes long-standing behavior, the `KubeletPodResourcesListUseActivePods` - feature gate (enabled by default) can be disabled to restore the previous behavior. - Users encountering regressions are encouraged to file an issue if they rely on - the old behavior. -pr_body: "" +pr: 132028 +releasenote: + text: Modified the node-local `podresources` API endpoint to consider only active + pods. Since this changes long-standing behavior, the `KubeletPodResourcesListUseActivePods` + feature gate (enabled by default) can be disabled to restore the previous behavior. + Users encountering regressions are encouraged to file an issue if they rely on + the old behavior. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132033-map.yaml b/releases/release-1.34/release-notes/maps/pr-132033-map.yaml index 5b5bb6080e0..545e4c59b43 100644 --- a/releases/release-1.34/release-notes/maps/pr-132033-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132033-map.yaml @@ -1,7 +1,7 @@ -pr: 132033 -releasenote: - text: 'DRA: The scheduler plugin prevented abnormal filter runtimes by timing out - after 10 seconds. This was configurable via the plugin configuration''s `FilterTimeout`. - Setting it to zero disabled the timeout and restored the behavior of Kubernetes - <= 1.33.' -pr_body: "" +pr: 132033 +releasenote: + text: 'DRA: The scheduler plugin prevented abnormal filter runtimes by timing out + after 10 seconds. This was configurable via the plugin configuration''s `FilterTimeout`. + Setting it to zero disabled the timeout and restored the behavior of Kubernetes + <= 1.33.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132034-map.yaml b/releases/release-1.34/release-notes/maps/pr-132034-map.yaml index 1d90f2a059a..b4f1c861d7b 100644 --- a/releases/release-1.34/release-notes/maps/pr-132034-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132034-map.yaml @@ -1,5 +1,5 @@ -pr: 132034 -releasenote: - text: Updated `IsDNS1123SubdomainWithUnderscore` so that, when it returned an error, - it also returned the correct regex information (`dns1123SubdomainFmtWithUnderscore`). -pr_body: "" +pr: 132034 +releasenote: + text: Updated `IsDNS1123SubdomainWithUnderscore` so that, when it returned an error, + it also returned the correct regex information (`dns1123SubdomainFmtWithUnderscore`). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132040-map.yaml b/releases/release-1.34/release-notes/maps/pr-132040-map.yaml index 87cc5e6ae9d..f785bf7162e 100644 --- a/releases/release-1.34/release-notes/maps/pr-132040-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132040-map.yaml @@ -1,5 +1,5 @@ -pr: 132040 -releasenote: - text: Extended the NodePorts scheduling plugin to consider hostPorts used by restartable - init containers. -pr_body: "" +pr: 132040 +releasenote: + text: Extended the NodePorts scheduling plugin to consider hostPorts used by restartable + init containers. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132054-map.yaml b/releases/release-1.34/release-notes/maps/pr-132054-map.yaml index d30de54cfc9..eabd1134c68 100644 --- a/releases/release-1.34/release-notes/maps/pr-132054-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132054-map.yaml @@ -1,5 +1,5 @@ -pr: 132054 -releasenote: - text: Promoted the `RelaxedEnvironmentVariableValidation` feature gate to GA and - locked it in the enabled state by default. -pr_body: "" +pr: 132054 +releasenote: + text: Promoted the `RelaxedEnvironmentVariableValidation` feature gate to GA and + locked it in the enabled state by default. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132058-map.yaml b/releases/release-1.34/release-notes/maps/pr-132058-map.yaml index 8ea6920c0f3..85509797e28 100644 --- a/releases/release-1.34/release-notes/maps/pr-132058-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132058-map.yaml @@ -1,6 +1,6 @@ -pr: 132058 -releasenote: - text: 'DRA kubelet: Fixed the kubelet to also clean up `ResourceSlices` in some - additional failure scenarios (driver was removed forcibly or crashed and did not - restart).' -pr_body: "" +pr: 132058 +releasenote: + text: 'DRA kubelet: Fixed the kubelet to also clean up `ResourceSlices` in some + additional failure scenarios (driver was removed forcibly or crashed and did not + restart).' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132080-map.yaml b/releases/release-1.34/release-notes/maps/pr-132080-map.yaml index 2c3ebc8fc11..9bc7a121a77 100644 --- a/releases/release-1.34/release-notes/maps/pr-132080-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132080-map.yaml @@ -1,4 +1,4 @@ -pr: 132080 -releasenote: - text: 'kubeadm: Consistently prefixed errors with error: when printing them.' -pr_body: "" +pr: 132080 +releasenote: + text: 'kubeadm: Consistently prefixed errors with error: when printing them.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132083-map.yaml b/releases/release-1.34/release-notes/maps/pr-132083-map.yaml index 7126713516a..fec2ca50daf 100644 --- a/releases/release-1.34/release-notes/maps/pr-132083-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132083-map.yaml @@ -1,4 +1,4 @@ -pr: 132083 -releasenote: - text: Removed general available feature-gate `DevicePluginCDIDevices`. -pr_body: "" +pr: 132083 +releasenote: + text: Removed general available feature-gate `DevicePluginCDIDevices`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132087-map.yaml b/releases/release-1.34/release-notes/maps/pr-132087-map.yaml index f3bd59454d8..15c4bb48612 100644 --- a/releases/release-1.34/release-notes/maps/pr-132087-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132087-map.yaml @@ -1,6 +1,6 @@ -pr: 132087 -releasenote: - text: |- - Types: Code and Status moved from pkg/scheduler/framework to staging repo. - Users should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`. -pr_body: "" +pr: 132087 +releasenote: + text: |- + Types: Code and Status moved from pkg/scheduler/framework to staging repo. + Users should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132096-map.yaml b/releases/release-1.34/release-notes/maps/pr-132096-map.yaml index 6e6942084dd..ed9404c235b 100644 --- a/releases/release-1.34/release-notes/maps/pr-132096-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132096-map.yaml @@ -1,5 +1,5 @@ -pr: 132096 -releasenote: - text: DRA kubelet- Updated logging to use `driverName` instead of `pluginName`, - aligning with the rest of the Kubernetes components. -pr_body: "" +pr: 132096 +releasenote: + text: DRA kubelet- Updated logging to use `driverName` instead of `pluginName`, + aligning with the rest of the Kubernetes components. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132106-map.yaml b/releases/release-1.34/release-notes/maps/pr-132106-map.yaml index 7adc6696afc..b6c8fd7ad6b 100644 --- a/releases/release-1.34/release-notes/maps/pr-132106-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132106-map.yaml @@ -1,4 +1,4 @@ -pr: 132106 -releasenote: - text: Allowed `pvc.spec.VolumeAttributesClassName` to change from non-nil to nil. -pr_body: "" +pr: 132106 +releasenote: + text: Allowed `pvc.spec.VolumeAttributesClassName` to change from non-nil to nil. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132108-map.yaml b/releases/release-1.34/release-notes/maps/pr-132108-map.yaml index 800048ca596..6e2cd5f9a8f 100644 --- a/releases/release-1.34/release-notes/maps/pr-132108-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132108-map.yaml @@ -1,4 +1,4 @@ -pr: 132108 -releasenote: - text: Graduated the `WinDSR` feature in the kube-proxy to GA. The `WinDSR` feature gate was enabled by default. -pr_body: "" +pr: 132108 +releasenote: + text: Graduated the `WinDSR` feature in the kube-proxy to GA. The `WinDSR` feature gate was enabled by default. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132109-map.yaml b/releases/release-1.34/release-notes/maps/pr-132109-map.yaml index 3b9f80ab77e..1d1bcbb01d2 100644 --- a/releases/release-1.34/release-notes/maps/pr-132109-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132109-map.yaml @@ -1,5 +1,5 @@ -pr: 132109 -releasenote: - text: Fixed a bug that caused an unexpected delay in creating Pods for newly created - Jobs. -pr_body: "" +pr: 132109 +releasenote: + text: Fixed a bug that caused an unexpected delay in creating Pods for newly created + Jobs. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132117-map.yaml b/releases/release-1.34/release-notes/maps/pr-132117-map.yaml index 3baff3eed8d..bf9f1e4d2f0 100644 --- a/releases/release-1.34/release-notes/maps/pr-132117-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132117-map.yaml @@ -1,4 +1,4 @@ -pr: 132117 -releasenote: - text: "Promoted the `agnhost` image to v2.56 for Kubernetes e2e testing; verified digest: sha256:352a050380078cb2a1c246357a0dfa2fcf243ee416b92ff28b44a01d1b4b0294." -pr_body: "" +pr: 132117 +releasenote: + text: "Promoted the `agnhost` image to v2.56 for Kubernetes e2e testing; verified digest: sha256:352a050380078cb2a1c246357a0dfa2fcf243ee416b92ff28b44a01d1b4b0294." +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132149-map.yaml b/releases/release-1.34/release-notes/maps/pr-132149-map.yaml index 628a9e9de7a..a8a3f3eabbf 100644 --- a/releases/release-1.34/release-notes/maps/pr-132149-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132149-map.yaml @@ -1,4 +1,4 @@ -pr: 132149 -releasenote: - text: Removed support for API streaming from the metadata client’s `List() method`. -pr_body: "" +pr: 132149 +releasenote: + text: Removed support for API streaming from the metadata client’s `List() method`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132173-map.yaml b/releases/release-1.34/release-notes/maps/pr-132173-map.yaml index 3c4d8ae8b84..d2bcc087f6f 100644 --- a/releases/release-1.34/release-notes/maps/pr-132173-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132173-map.yaml @@ -1,5 +1,5 @@ -pr: 132173 -releasenote: - text: Promoted Job Pod Replacement Policy to general availability. The `JobPodReplacementPolicy` - feature gate was locked to `true` and will be removed in a future Kubernetes release. -pr_body: "" +pr: 132173 +releasenote: + text: Promoted Job Pod Replacement Policy to general availability. The `JobPodReplacementPolicy` + feature gate was locked to `true` and will be removed in a future Kubernetes release. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132190-map.yaml b/releases/release-1.34/release-notes/maps/pr-132190-map.yaml index e7001e78ff5..939b8a05c3d 100644 --- a/releases/release-1.34/release-notes/maps/pr-132190-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132190-map.yaml @@ -1,5 +1,5 @@ -pr: 132190 -releasenote: - text: 'Types: `ClusterEvent`, `ActionType`, `EventResource`, `ClusterEventWithHint`, - `QueueingHint` and `QueueingHintFn` moved from `pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`.' -pr_body: "" +pr: 132190 +releasenote: + text: 'Types: `ClusterEvent`, `ActionType`, `EventResource`, `ClusterEventWithHint`, + `QueueingHint` and `QueueingHintFn` moved from `pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132194-map.yaml b/releases/release-1.34/release-notes/maps/pr-132194-map.yaml index 98086dfc44a..5833b6300e3 100644 --- a/releases/release-1.34/release-notes/maps/pr-132194-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132194-map.yaml @@ -1,5 +1,5 @@ -pr: 132194 -releasenote: - text: Added a `runtime.ApplyConfiguration` interface implemented by all generated - apply configuration types. -pr_body: "" +pr: 132194 +releasenote: + text: Added a `runtime.ApplyConfiguration` interface implemented by all generated + apply configuration types. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132210-map.yaml b/releases/release-1.34/release-notes/maps/pr-132210-map.yaml index 517817fd3ea..61be9a534de 100644 --- a/releases/release-1.34/release-notes/maps/pr-132210-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132210-map.yaml @@ -1,5 +1,5 @@ -pr: 132210 -releasenote: - text: By default, binaries like kube-apiserver were built with the `grpcnotrace` - tag enabled. Used the `DBG` flag to enable Golang tracing if needed. -pr_body: "" +pr: 132210 +releasenote: + text: By default, binaries like kube-apiserver were built with the `grpcnotrace` + tag enabled. Used the `DBG` flag to enable Golang tracing if needed. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132214-map.yaml b/releases/release-1.34/release-notes/maps/pr-132214-map.yaml index a4ca4b6cb1d..b2528e5b859 100644 --- a/releases/release-1.34/release-notes/maps/pr-132214-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132214-map.yaml @@ -1,5 +1,5 @@ -pr: 132214 -releasenote: - text: Added warnings when creating headless service with set `loadBalancerIP`,`externalIPs` - and/or `SessionAffinity`. -pr_body: "" +pr: 132214 +releasenote: + text: Added warnings when creating headless service with set `loadBalancerIP`,`externalIPs` + and/or `SessionAffinity`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132219-map.yaml b/releases/release-1.34/release-notes/maps/pr-132219-map.yaml index dbb0542a075..a5c01bdcd92 100644 --- a/releases/release-1.34/release-notes/maps/pr-132219-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132219-map.yaml @@ -1,4 +1,4 @@ -pr: 132219 -releasenote: - text: Promoted the Ordered Namespace Deletion test to Conformance. -pr_body: "" +pr: 132219 +releasenote: + text: Promoted the Ordered Namespace Deletion test to Conformance. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132222-map.yaml b/releases/release-1.34/release-notes/maps/pr-132222-map.yaml index f0cf8e5213f..83275285fe9 100644 --- a/releases/release-1.34/release-notes/maps/pr-132222-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132222-map.yaml @@ -1,4 +1,4 @@ -pr: 132222 -releasenote: - text: Built Kubernetes using Go 1.24.4. -pr_body: "" +pr: 132222 +releasenote: + text: Built Kubernetes using Go 1.24.4. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132229-map.yaml b/releases/release-1.34/release-notes/maps/pr-132229-map.yaml index e867e33c153..58e85f3a082 100644 --- a/releases/release-1.34/release-notes/maps/pr-132229-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132229-map.yaml @@ -1,4 +1,4 @@ -pr: 132229 -releasenote: - text: Removed support for API streaming from the dynamic client’s `List() method`. -pr_body: "" +pr: 132229 +releasenote: + text: Removed support for API streaming from the dynamic client’s `List() method`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132236-map.yaml b/releases/release-1.34/release-notes/maps/pr-132236-map.yaml index a74ef586f91..8aa588ce330 100644 --- a/releases/release-1.34/release-notes/maps/pr-132236-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132236-map.yaml @@ -1,5 +1,5 @@ -pr: 132236 -releasenote: - text: The validation-gen code generator generated validation code that supported - validation ratcheting. -pr_body: "" +pr: 132236 +releasenote: + text: The validation-gen code generator generated validation code that supported + validation ratcheting. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132244-map.yaml b/releases/release-1.34/release-notes/maps/pr-132244-map.yaml index 791f2062d95..76421adb8d2 100644 --- a/releases/release-1.34/release-notes/maps/pr-132244-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132244-map.yaml @@ -1,5 +1,5 @@ -pr: 132244 -releasenote: - text: Fixed a regression introduced in 1.33 where some paginated LIST calls fell - back to `etcd` instead of being served from cache. -pr_body: "" +pr: 132244 +releasenote: + text: Fixed a regression introduced in 1.33 where some paginated LIST calls fell + back to `etcd` instead of being served from cache. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132257-map.yaml b/releases/release-1.34/release-notes/maps/pr-132257-map.yaml index df73be878f1..803d56cf17a 100644 --- a/releases/release-1.34/release-notes/maps/pr-132257-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132257-map.yaml @@ -1,4 +1,4 @@ -pr: 132257 -releasenote: - text: Removed support for API streaming from the `List()` method of the typed client. -pr_body: "" +pr: 132257 +releasenote: + text: Removed support for API streaming from the `List()` method of the typed client. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132276-map.yaml b/releases/release-1.34/release-notes/maps/pr-132276-map.yaml index 4d57a1c7a9a..77fc0c87af3 100644 --- a/releases/release-1.34/release-notes/maps/pr-132276-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132276-map.yaml @@ -1,4 +1,4 @@ -pr: 132276 -releasenote: - text: Added a warning when alpha metrics are used with emulated versions. -pr_body: "" +pr: 132276 +releasenote: + text: Added a warning when alpha metrics are used with emulated versions. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132277-map.yaml b/releases/release-1.34/release-notes/maps/pr-132277-map.yaml index f4c3ac18bc2..cecfa1d2ed0 100644 --- a/releases/release-1.34/release-notes/maps/pr-132277-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132277-map.yaml @@ -1,4 +1,4 @@ -pr: 132277 -releasenote: - text: Changed underlying logic for `Eviction Manager` helper functions. -pr_body: "" +pr: 132277 +releasenote: + text: Changed underlying logic for `Eviction Manager` helper functions. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132284-map.yaml b/releases/release-1.34/release-notes/maps/pr-132284-map.yaml index b1015630b3d..c3a418b7709 100644 --- a/releases/release-1.34/release-notes/maps/pr-132284-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132284-map.yaml @@ -1,4 +1,4 @@ -pr: 132284 -releasenote: - text: Updated etcd version to v3.6.1. -pr_body: "" +pr: 132284 +releasenote: + text: Updated etcd version to v3.6.1. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132285-map.yaml b/releases/release-1.34/release-notes/maps/pr-132285-map.yaml index 35c42afdafe..37fa9c87876 100644 --- a/releases/release-1.34/release-notes/maps/pr-132285-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132285-map.yaml @@ -1,4 +1,4 @@ -pr: 132285 -releasenote: - text: Removed support for API streaming from the REST client. -pr_body: "" +pr: 132285 +releasenote: + text: Removed support for API streaming from the REST client. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132296-map.yaml b/releases/release-1.34/release-notes/maps/pr-132296-map.yaml index bb1b9bbe7f1..0afa84253cc 100644 --- a/releases/release-1.34/release-notes/maps/pr-132296-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132296-map.yaml @@ -1,5 +1,5 @@ -pr: 132296 -releasenote: - text: Introduced a method `GetPCIeRootAttributeByPCIBusID(pciBusID)` for third-party - DRA drivers to provide common logic for the standardized device attribute `resource.kubernetes.io/pcieRoot`. -pr_body: "" +pr: 132296 +releasenote: + text: Introduced a method `GetPCIeRootAttributeByPCIBusID(pciBusID)` for third-party + DRA drivers to provide common logic for the standardized device attribute `resource.kubernetes.io/pcieRoot`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132299-map.yaml b/releases/release-1.34/release-notes/maps/pr-132299-map.yaml index 55a957d9900..b4d0c85e79d 100644 --- a/releases/release-1.34/release-notes/maps/pr-132299-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132299-map.yaml @@ -1,9 +1,9 @@ -pr: 132299 -releasenote: - text: |- - kube-apiserver reported the last configuration hash as a label in - - - `apiserver_authentication_config_controller_last_config_info` metric after successfully loading the authentication configuration file. - - `apiserver_authorization_config_controller_last_config_info` metric after successfully loading the authorization configuration file. - - `apiserver_encryption_config_controller_last_config_info` metric after successfully loading the encryption configuration file. -pr_body: "" +pr: 132299 +releasenote: + text: |- + kube-apiserver reported the last configuration hash as a label in + + - `apiserver_authentication_config_controller_last_config_info` metric after successfully loading the authentication configuration file. + - `apiserver_authorization_config_controller_last_config_info` metric after successfully loading the authorization configuration file. + - `apiserver_encryption_config_controller_last_config_info` metric after successfully loading the encryption configuration file. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132305-map.yaml b/releases/release-1.34/release-notes/maps/pr-132305-map.yaml index 0ded6709c9c..d504ea1b519 100644 --- a/releases/release-1.34/release-notes/maps/pr-132305-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132305-map.yaml @@ -1,5 +1,5 @@ -pr: 132305 -releasenote: - text: Changed Job controller to use the controller UID index for Pod lookups to - improve performance. -pr_body: "" +pr: 132305 +releasenote: + text: Changed Job controller to use the controller UID index for Pod lookups to + improve performance. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132326-map.yaml b/releases/release-1.34/release-notes/maps/pr-132326-map.yaml index 7e520b5f6f4..5a66c32d8aa 100644 --- a/releases/release-1.34/release-notes/maps/pr-132326-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132326-map.yaml @@ -1,5 +1,5 @@ -pr: 132326 -releasenote: - text: Removed the `kubernetes.io/initial-events-list-blueprint` annotation from - the synthetic "Bookmark" event in watch stream requests. -pr_body: "" +pr: 132326 +releasenote: + text: Removed the `kubernetes.io/initial-events-list-blueprint` annotation from + the synthetic "Bookmark" event in watch stream requests. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132336-map.yaml b/releases/release-1.34/release-notes/maps/pr-132336-map.yaml index 8c3de0583ef..7cd170406ef 100644 --- a/releases/release-1.34/release-notes/maps/pr-132336-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132336-map.yaml @@ -1,5 +1,5 @@ -pr: 132336 -releasenote: - text: "Fixed APIServerTracing test data race; ~/go/src/k8s.io/kubernetes/test/integration/apiserver/tracing$ - go test ./... -race\nok \tk8s.io/kubernetes/test/integration/apiserver/tracing\t68.825s." -pr_body: "" +pr: 132336 +releasenote: + text: "Fixed APIServerTracing test data race; ~/go/src/k8s.io/kubernetes/test/integration/apiserver/tracing$ + go test ./... -race\nok \tk8s.io/kubernetes/test/integration/apiserver/tracing\t68.825s." +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132338-map.yaml b/releases/release-1.34/release-notes/maps/pr-132338-map.yaml index e6b040423eb..93c9a48c024 100644 --- a/releases/release-1.34/release-notes/maps/pr-132338-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132338-map.yaml @@ -1,5 +1,5 @@ -pr: 132338 -releasenote: - text: Added `omitempty` and `opt` tag to the API `v1beta2` AdminAccess type in the - `DeviceRequestAllocationResult` struct. -pr_body: "" +pr: 132338 +releasenote: + text: Added `omitempty` and `opt` tag to the API `v1beta2` AdminAccess type in the + `DeviceRequestAllocationResult` struct. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132340-map.yaml b/releases/release-1.34/release-notes/maps/pr-132340-map.yaml index f4bc774580c..b44ac4afbba 100644 --- a/releases/release-1.34/release-notes/maps/pr-132340-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132340-map.yaml @@ -1,6 +1,6 @@ -pr: 132340 -releasenote: - text: Promoted the `APIServerTracing` feature gate to GA. The `--tracing-config-file` - flag accepted `TracingConfiguration` in version `apiserver.config.k8s.io/v1` (with - no changes from `apiserver.config.k8s.io/v1beta1`). -pr_body: "" +pr: 132340 +releasenote: + text: Promoted the `APIServerTracing` feature gate to GA. The `--tracing-config-file` + flag accepted `TracingConfiguration` in version `apiserver.config.k8s.io/v1` (with + no changes from `apiserver.config.k8s.io/v1beta1`). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132342-map.yaml b/releases/release-1.34/release-notes/maps/pr-132342-map.yaml index 519d91284e8..b05de9150aa 100644 --- a/releases/release-1.34/release-notes/maps/pr-132342-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132342-map.yaml @@ -1,6 +1,6 @@ -pr: 132342 -releasenote: - text: Implemented prioritization of resize requests based on `priorityClass` and - QoS class when node resources are insufficient to accommodate all pending resize - operations. -pr_body: "" +pr: 132342 +releasenote: + text: Implemented prioritization of resize requests based on `priorityClass` and + QoS class when node resources are insufficient to accommodate all pending resize + operations. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132348-map.yaml b/releases/release-1.34/release-notes/maps/pr-132348-map.yaml index 6e4148e6a8f..526c6ee90cc 100644 --- a/releases/release-1.34/release-notes/maps/pr-132348-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132348-map.yaml @@ -1,4 +1,4 @@ -pr: 132348 -releasenote: - text: Added a `container_swap_limit_bytes` metric to expose the swap limit assigned to containers under the `LimitedSwap` swap behavior. -pr_body: "" +pr: 132348 +releasenote: + text: Added a `container_swap_limit_bytes` metric to expose the swap limit assigned to containers under the `LimitedSwap` swap behavior. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132351-map.yaml b/releases/release-1.34/release-notes/maps/pr-132351-map.yaml index ec20052e654..63a2438e19d 100644 --- a/releases/release-1.34/release-notes/maps/pr-132351-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132351-map.yaml @@ -1,4 +1,4 @@ -pr: 132351 -releasenote: - text: HPA status displayed memory metrics using Ki. -pr_body: "" +pr: 132351 +releasenote: + text: HPA status displayed memory metrics using Ki. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132352-map.yaml b/releases/release-1.34/release-notes/maps/pr-132352-map.yaml index 29fe9aa7486..dfbfd3c9fd3 100644 --- a/releases/release-1.34/release-notes/maps/pr-132352-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132352-map.yaml @@ -1,5 +1,5 @@ -pr: 132352 -releasenote: - text: Removed the deprecated flag `--wait-interval` for the `ip6tables-legacy-restore` - binary. -pr_body: "" +pr: 132352 +releasenote: + text: Removed the deprecated flag `--wait-interval` for the `ip6tables-legacy-restore` + binary. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132355-map.yaml b/releases/release-1.34/release-notes/maps/pr-132355-map.yaml index cd4842fedcf..4c752bca2e2 100644 --- a/releases/release-1.34/release-notes/maps/pr-132355-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132355-map.yaml @@ -1,5 +1,5 @@ -pr: 132355 -releasenote: - text: Added `SizeBasedListCostEstimate` feature gate that allowed apiserver to estimate - sizes of objects to calculate cost of LIST requests. -pr_body: "" +pr: 132355 +releasenote: + text: Added `SizeBasedListCostEstimate` feature gate that allowed apiserver to estimate + sizes of objects to calculate cost of LIST requests. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132361-map.yaml b/releases/release-1.34/release-notes/maps/pr-132361-map.yaml index 2e147651810..1d0b65768bb 100644 --- a/releases/release-1.34/release-notes/maps/pr-132361-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132361-map.yaml @@ -1,7 +1,7 @@ -pr: 132361 -releasenote: - text: Migrated validation in `CertificateSigningRequest` to use declarative validation. - When the `DeclarativeValidation` feature gate is enabled, mismatches with existing - validation are reported via metrics. If `DeclarativeValidationTakeover` is enabled, - declarative validation becomes the primary source of errors for migrated fields. -pr_body: "" +pr: 132361 +releasenote: + text: Migrated validation in `CertificateSigningRequest` to use declarative validation. + When the `DeclarativeValidation` feature gate is enabled, mismatches with existing + validation are reported via metrics. If `DeclarativeValidationTakeover` is enabled, + declarative validation becomes the primary source of errors for migrated fields. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132374-map.yaml b/releases/release-1.34/release-notes/maps/pr-132374-map.yaml index a563a1ebe48..819343f933a 100644 --- a/releases/release-1.34/release-notes/maps/pr-132374-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132374-map.yaml @@ -1,5 +1,5 @@ -pr: 132374 -releasenote: - text: Fixed API response for `StorageClassList` queries to return a graceful error - message, if the provided `ResourceVersion` is too large. -pr_body: "" +pr: 132374 +releasenote: + text: Fixed API response for `StorageClassList` queries to return a graceful error + message, if the provided `ResourceVersion` is too large. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132376-map.yaml b/releases/release-1.34/release-notes/maps/pr-132376-map.yaml index 5fa14605d8c..b5c8723d4db 100644 --- a/releases/release-1.34/release-notes/maps/pr-132376-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132376-map.yaml @@ -1,4 +1,4 @@ -pr: 132376 -releasenote: - text: 'apimachinery: Deprecated `MessageCountMap` and `CreateAggregateFromMessageCountMap`.' -pr_body: "" +pr: 132376 +releasenote: + text: 'apimachinery: Deprecated `MessageCountMap` and `CreateAggregateFromMessageCountMap`.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132391-map.yaml b/releases/release-1.34/release-notes/maps/pr-132391-map.yaml index 2df07aac64f..2da904b51c8 100644 --- a/releases/release-1.34/release-notes/maps/pr-132391-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132391-map.yaml @@ -1,6 +1,6 @@ -pr: 132391 -releasenote: - text: Added a new `PreBindPreFlight` function to the `PreBindPlugin` interface. - All in-tree `PreBind` plugins have been updated to implement `PreBindPreFlight` - function. -pr_body: "" +pr: 132391 +releasenote: + text: Added a new `PreBindPreFlight` function to the `PreBindPlugin` interface. + All in-tree `PreBind` plugins have been updated to implement `PreBindPreFlight` + function. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132413-map.yaml b/releases/release-1.34/release-notes/maps/pr-132413-map.yaml index b9bb2afbb55..4ee99802fc2 100644 --- a/releases/release-1.34/release-notes/maps/pr-132413-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132413-map.yaml @@ -1,5 +1,5 @@ -pr: 132413 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the components-helper of the apimachinery. -pr_body: "" +pr: 132413 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the components-helper of the apimachinery. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132429-map.yaml b/releases/release-1.34/release-notes/maps/pr-132429-map.yaml index 3267cf49513..541d56ba6e4 100644 --- a/releases/release-1.34/release-notes/maps/pr-132429-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132429-map.yaml @@ -1,4 +1,4 @@ -pr: 132429 -releasenote: - text: Promoted `MutableCSINodeAllocatableCount` to beta. -pr_body: "" +pr: 132429 +releasenote: + text: Promoted `MutableCSINodeAllocatableCount` to beta. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132430-map.yaml b/releases/release-1.34/release-notes/maps/pr-132430-map.yaml index 24702e99871..5576d230d3e 100644 --- a/releases/release-1.34/release-notes/maps/pr-132430-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132430-map.yaml @@ -1,6 +1,6 @@ -pr: 132430 -releasenote: - text: Added HPA support to pod-level resource specifications. When the pod-level - resource feature was enabled, HPAs configured with `Resource` type metrics calculated - the pod resources from `pod.Spec.Resources` field, if specified. -pr_body: "" +pr: 132430 +releasenote: + text: Added HPA support to pod-level resource specifications. When the pod-level + resource feature was enabled, HPAs configured with `Resource` type metrics calculated + the pod resources from `pod.Spec.Resources` field, if specified. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132433-map.yaml b/releases/release-1.34/release-notes/maps/pr-132433-map.yaml index c648c19f811..96f23c23d3a 100644 --- a/releases/release-1.34/release-notes/maps/pr-132433-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132433-map.yaml @@ -1,4 +1,4 @@ -pr: 132433 -releasenote: - text: Added configurable flags to kube-apiserver for coordinated leader election. -pr_body: "" +pr: 132433 +releasenote: + text: Added configurable flags to kube-apiserver for coordinated leader election. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132443-map.yaml b/releases/release-1.34/release-notes/maps/pr-132443-map.yaml index f4f9b7496a8..78590e40c0a 100644 --- a/releases/release-1.34/release-notes/maps/pr-132443-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132443-map.yaml @@ -1,6 +1,6 @@ -pr: 132443 -releasenote: - text: Whenever a pod was successfully bound to a node, the kube-apiserver cleared - the pod's `nominatedNodeName` field. This prevented stale information from affecting - external scheduling components. -pr_body: "" +pr: 132443 +releasenote: + text: Whenever a pod was successfully bound to a node, the kube-apiserver cleared + the pod's `nominatedNodeName` field. This prevented stale information from affecting + external scheduling components. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132456-map.yaml b/releases/release-1.34/release-notes/maps/pr-132456-map.yaml index 5aa92a40724..bec8fa344a3 100644 --- a/releases/release-1.34/release-notes/maps/pr-132456-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132456-map.yaml @@ -1,5 +1,5 @@ -pr: 132456 -releasenote: - text: Updated `kube-proxy` with `nftables` to reject or drop traffic to services - with no endpoints from filter chains at priority 0 (`NF_IP_PRI_FILTER`). -pr_body: "" +pr: 132456 +releasenote: + text: Updated `kube-proxy` with `nftables` to reject or drop traffic to services + with no endpoints from filter chains at priority 0 (`NF_IP_PRI_FILTER`). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132457-map.yaml b/releases/release-1.34/release-notes/maps/pr-132457-map.yaml index 00b271af322..64b7a2788af 100644 --- a/releases/release-1.34/release-notes/maps/pr-132457-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132457-map.yaml @@ -1,6 +1,6 @@ -pr: 132457 -releasenote: - text: |- - Types: `NodeInfo`, `PodInfo`, `QueuedPodInfo`, `PodResource`, `AffinityTerm`, `WeightedAffinityTerm`, `Resource`, `ImageStateSummary`, `ProtocolPort` and `HostPortInfo` were moved from `pkg/scheduler/framework` to staging repo. - Users should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework` and update use of fields (to use getter/setter functions instead) where needed. -pr_body: "" +pr: 132457 +releasenote: + text: |- + Types: `NodeInfo`, `PodInfo`, `QueuedPodInfo`, `PodResource`, `AffinityTerm`, `WeightedAffinityTerm`, `Resource`, `ImageStateSummary`, `ProtocolPort` and `HostPortInfo` were moved from `pkg/scheduler/framework` to staging repo. + Users should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework` and update use of fields (to use getter/setter functions instead) where needed. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132462-map.yaml b/releases/release-1.34/release-notes/maps/pr-132462-map.yaml index 07133e3a79a..1ff8a5630ed 100644 --- a/releases/release-1.34/release-notes/maps/pr-132462-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132462-map.yaml @@ -1,7 +1,7 @@ -pr: 132462 -releasenote: - text: Fixed bug that prevented the alpha feature `PodTopologyLabelAdmission` from - working due to checking for the incorrect label key when copying topology labels. - This bug delayed the graduation of the feature to beta by an additional release - to allow time for meaningful feedback. -pr_body: "" +pr: 132462 +releasenote: + text: Fixed bug that prevented the alpha feature `PodTopologyLabelAdmission` from + working due to checking for the incorrect label key when copying topology labels. + This bug delayed the graduation of the feature to beta by an additional release + to allow time for meaningful feedback. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132467-map.yaml b/releases/release-1.34/release-notes/maps/pr-132467-map.yaml index 029103d7f8f..075537ec752 100644 --- a/releases/release-1.34/release-notes/maps/pr-132467-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132467-map.yaml @@ -1,5 +1,5 @@ -pr: 132467 -releasenote: - text: Fixed an issue that allowed Custom Resources to be created using Server-Side - Apply even when their `CustomResourceDefinition` was terminating. -pr_body: "" +pr: 132467 +releasenote: + text: Fixed an issue that allowed Custom Resources to be created using Server-Side + Apply even when their `CustomResourceDefinition` was terminating. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132472-map.yaml b/releases/release-1.34/release-notes/maps/pr-132472-map.yaml index 2b95e0263aa..84665baa60a 100644 --- a/releases/release-1.34/release-notes/maps/pr-132472-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132472-map.yaml @@ -1,5 +1,5 @@ -pr: 132472 -releasenote: - text: Simplified validation error message for required fields by removing redundant - messages. -pr_body: "" +pr: 132472 +releasenote: + text: Simplified validation error message for required fields by removing redundant + messages. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132473-map.yaml b/releases/release-1.34/release-notes/maps/pr-132473-map.yaml index 4b71c2bcf43..26181e61bc2 100644 --- a/releases/release-1.34/release-notes/maps/pr-132473-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132473-map.yaml @@ -1,4 +1,4 @@ -pr: 132473 -releasenote: - text: 'Ensured memory resizing for Guaranteed QoS pods on static Memory policy configurations was gated by `InPlacePodVerticalScalingExclusiveMemory` (defaults: `false`).' -pr_body: "" +pr: 132473 +releasenote: + text: 'Ensured memory resizing for Guaranteed QoS pods on static Memory policy configurations was gated by `InPlacePodVerticalScalingExclusiveMemory` (defaults: `false`).' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132484-map.yaml b/releases/release-1.34/release-notes/maps/pr-132484-map.yaml index 0094e354b25..3cf665945c9 100644 --- a/releases/release-1.34/release-notes/maps/pr-132484-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132484-map.yaml @@ -1,4 +1,4 @@ -pr: 132484 -releasenote: - text: Increased test coverage for kubelet package to 92.3%. -pr_body: "" +pr: 132484 +releasenote: + text: Increased test coverage for kubelet package to 92.3%. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132509-map.yaml b/releases/release-1.34/release-notes/maps/pr-132509-map.yaml index 01c66696c45..a29846a4724 100644 --- a/releases/release-1.34/release-notes/maps/pr-132509-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132509-map.yaml @@ -1,4 +1,4 @@ -pr: 132509 -releasenote: - text: Removed defunct `make vet` target, please use `make lint` instead. -pr_body: "" +pr: 132509 +releasenote: + text: Removed defunct `make vet` target, please use `make lint` instead. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132513-map.yaml b/releases/release-1.34/release-notes/maps/pr-132513-map.yaml index 01c1fe69831..7bd63d6ea38 100644 --- a/releases/release-1.34/release-notes/maps/pr-132513-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132513-map.yaml @@ -1,5 +1,5 @@ -pr: 132513 -releasenote: - text: Simplified validation error message for invalid fields by removing redundant - field name. -pr_body: "" +pr: 132513 +releasenote: + text: Simplified validation error message for invalid fields by removing redundant + field name. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132514-map.yaml b/releases/release-1.34/release-notes/maps/pr-132514-map.yaml index ae4c54c4eb3..0c9fcf64dd0 100644 --- a/releases/release-1.34/release-notes/maps/pr-132514-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132514-map.yaml @@ -1,6 +1,6 @@ -pr: 132514 -releasenote: - text: 'kube-apiserver: Previously persisted `CustomResourceDefinition` objects with - an invalid whitespace-only `caBundle` could serve requests that did not require - conversion.' -pr_body: "" +pr: 132514 +releasenote: + text: 'kube-apiserver: Previously persisted `CustomResourceDefinition` objects with + an invalid whitespace-only `caBundle` could serve requests that did not require + conversion.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132522-map.yaml b/releases/release-1.34/release-notes/maps/pr-132522-map.yaml index 45c97f0a885..35abe117199 100644 --- a/releases/release-1.34/release-notes/maps/pr-132522-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132522-map.yaml @@ -1,9 +1,9 @@ -pr: 132522 -releasenote: - text: |- - - Added driver-owned fields in `ResourceSlice` to mark whether the device was shareable among multiple resource claims (or requests) and to specify how each capacity could be shared between different requests. - - Added user-owned fields in `ResourceClaim` to specify resource requirements against each device capacity. - - Added scheduler-owned field in `ResourceClaim.Status` to specify how much device capacity is reserved for a specific request. - - Added an additional identifier to `ResourceClaim.Status` for the device supports multiple allocations. - - Added a new constraint type to enforce uniqueness of specified attributes across all allocated devices. -pr_body: "" +pr: 132522 +releasenote: + text: |- + - Added driver-owned fields in `ResourceSlice` to mark whether the device was shareable among multiple resource claims (or requests) and to specify how each capacity could be shared between different requests. + - Added user-owned fields in `ResourceClaim` to specify resource requirements against each device capacity. + - Added scheduler-owned field in `ResourceClaim.Status` to specify how much device capacity is reserved for a specific request. + - Added an additional identifier to `ResourceClaim.Status` for the device supports multiple allocations. + - Added a new constraint type to enforce uniqueness of specified attributes across all allocated devices. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132529-map.yaml b/releases/release-1.34/release-notes/maps/pr-132529-map.yaml index de6f167bc96..302fa58d219 100644 --- a/releases/release-1.34/release-notes/maps/pr-132529-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132529-map.yaml @@ -1,5 +1,5 @@ -pr: 132529 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the kubeapiserver. -pr_body: "" +pr: 132529 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the kubeapiserver. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132537-map.yaml b/releases/release-1.34/release-notes/maps/pr-132537-map.yaml index b3bef5c0eb3..7f10b2995ac 100644 --- a/releases/release-1.34/release-notes/maps/pr-132537-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132537-map.yaml @@ -1,5 +1,5 @@ -pr: 132537 -releasenote: - text: Validated APIVersion fields of the `HorizontalPodAutoscaler` to ensure - that API objects were created and functioned properly. -pr_body: "" +pr: 132537 +releasenote: + text: Validated APIVersion fields of the `HorizontalPodAutoscaler` to ensure + that API objects were created and functioned properly. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132542-map.yaml b/releases/release-1.34/release-notes/maps/pr-132542-map.yaml index 18313e6ecb1..2a788dc3b7e 100644 --- a/releases/release-1.34/release-notes/maps/pr-132542-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132542-map.yaml @@ -1,5 +1,5 @@ -pr: 132542 -releasenote: - text: Clarified help message of `--ignore-not-found` flag. Supported `--ignore-not-found` - in `watch` operation. -pr_body: "" +pr: 132542 +releasenote: + text: Clarified help message of `--ignore-not-found` flag. Supported `--ignore-not-found` + in `watch` operation. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132548-map.yaml b/releases/release-1.34/release-notes/maps/pr-132548-map.yaml index aad068d35ab..6f55300c6d7 100644 --- a/releases/release-1.34/release-notes/maps/pr-132548-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132548-map.yaml @@ -1,4 +1,4 @@ -pr: 132548 -releasenote: - text: Resolved a bug where DaemonSet updates unnecessarily triggered duplicate validation due to overlapping calls to `ValidateDaemonSet` and ValidateDaemonSetUpdate. This redundancy has been removed to prevent repeated validation runs. -pr_body: "" +pr: 132548 +releasenote: + text: Resolved a bug where DaemonSet updates unnecessarily triggered duplicate validation due to overlapping calls to `ValidateDaemonSet` and ValidateDaemonSetUpdate. This redundancy has been removed to prevent repeated validation runs. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132558-map.yaml b/releases/release-1.34/release-notes/maps/pr-132558-map.yaml index 3627abf64e3..02e66836bac 100644 --- a/releases/release-1.34/release-notes/maps/pr-132558-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132558-map.yaml @@ -1,6 +1,6 @@ -pr: 132558 -releasenote: - text: Allowed setting the `hostnameOverride` field in `PodSpec` to specify any RFC - 1123 DNS subdomain as the pod's hostname. The `HostnameOverride` feature gate - was introduced to control enablement of this functionality. -pr_body: "" +pr: 132558 +releasenote: + text: Allowed setting the `hostnameOverride` field in `PodSpec` to specify any RFC + 1123 DNS subdomain as the pod's hostname. The `HostnameOverride` feature gate + was introduced to control enablement of this functionality. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132574-map.yaml b/releases/release-1.34/release-notes/maps/pr-132574-map.yaml index ec1ebcd56b0..a00dec4c8e5 100644 --- a/releases/release-1.34/release-notes/maps/pr-132574-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132574-map.yaml @@ -1,6 +1,6 @@ -pr: 132574 -releasenote: - text: 'DRA: removed support for the v1alpha4 kubelet gRPC API (added in 1.31, superseded - in 1.32). DRA drivers using the helper package from Kubernetes >= 1.32 use the - v1beta1 API and continue to be supported.' -pr_body: "" +pr: 132574 +releasenote: + text: 'DRA: removed support for the v1alpha4 kubelet gRPC API (added in 1.31, superseded + in 1.32). DRA drivers using the helper package from Kubernetes >= 1.32 use the + v1beta1 API and continue to be supported.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132581-map.yaml b/releases/release-1.34/release-notes/maps/pr-132581-map.yaml index 90a3212ea2c..ae12c7a8cda 100644 --- a/releases/release-1.34/release-notes/maps/pr-132581-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132581-map.yaml @@ -1,4 +1,4 @@ -pr: 132581 -releasenote: - text: Added useful endpoints for kube-apiserver. -pr_body: "" +pr: 132581 +releasenote: + text: Added useful endpoints for kube-apiserver. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132593-map.yaml b/releases/release-1.34/release-notes/maps/pr-132593-map.yaml index 6776891ca1d..d762cae8df0 100644 --- a/releases/release-1.34/release-notes/maps/pr-132593-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132593-map.yaml @@ -1,4 +1,4 @@ -pr: 132593 -releasenote: - text: Upgraded functionality of `kubectl kustomize` as described at https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.7.0. -pr_body: "" +pr: 132593 +releasenote: + text: Upgraded functionality of `kubectl kustomize` as described at https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.7.0. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132594-map.yaml b/releases/release-1.34/release-notes/maps/pr-132594-map.yaml index 6b37ac239d5..dcd3df74cf6 100644 --- a/releases/release-1.34/release-notes/maps/pr-132594-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132594-map.yaml @@ -1,7 +1,7 @@ -pr: 132594 -releasenote: - text: 'kubeadm: graduated the kubeadm specific feature gate `WaitForAllControlPlaneComponents` - to GA. The feature gate is was locked to always be enabled and on node initialization - kubeadm performed a health check for all control plane components and not only - the `kube-apiserver`.' -pr_body: "" +pr: 132594 +releasenote: + text: 'kubeadm: graduated the kubeadm specific feature gate `WaitForAllControlPlaneComponents` + to GA. The feature gate is was locked to always be enabled and on node initialization + kubeadm performed a health check for all control plane components and not only + the `kube-apiserver`.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132595-map.yaml b/releases/release-1.34/release-notes/maps/pr-132595-map.yaml index 3f50cbe3595..dbbdbf99829 100644 --- a/releases/release-1.34/release-notes/maps/pr-132595-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132595-map.yaml @@ -1,4 +1,4 @@ -pr: 132595 -releasenote: - text: '`PodLifecycleSleepAction` was graduated to GA.' -pr_body: "" +pr: 132595 +releasenote: + text: '`PodLifecycleSleepAction` was graduated to GA.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132604-map.yaml b/releases/release-1.34/release-notes/maps/pr-132604-map.yaml index 03ae60d25e5..954113a35f1 100644 --- a/releases/release-1.34/release-notes/maps/pr-132604-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132604-map.yaml @@ -1,4 +1,4 @@ -pr: 132604 -releasenote: - text: Added machine readable output options (JSON & YAML) to `kubectl api-resources`. -pr_body: "" +pr: 132604 +releasenote: + text: Added machine readable output options (JSON & YAML) to `kubectl api-resources`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132605-map.yaml b/releases/release-1.34/release-notes/maps/pr-132605-map.yaml index 092980edffc..603ed2d6148 100644 --- a/releases/release-1.34/release-notes/maps/pr-132605-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132605-map.yaml @@ -1,6 +1,6 @@ -pr: 132605 -releasenote: - text: 'The fallback behavior of the Downward API''s `resourceFieldRef` field was - updated to account for pod-level resources: if container-level limits were not - set, pod-level limits were now used before falling back to node allocatable resources.' -pr_body: "" +pr: 132605 +releasenote: + text: 'The fallback behavior of the Downward API''s `resourceFieldRef` field was + updated to account for pod-level resources: if container-level limits were not + set, pod-level limits were now used before falling back to node allocatable resources.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132614-map.yaml b/releases/release-1.34/release-notes/maps/pr-132614-map.yaml index ba5bd35a5a5..c9ba851e757 100644 --- a/releases/release-1.34/release-notes/maps/pr-132614-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132614-map.yaml @@ -1,5 +1,5 @@ -pr: 132614 -releasenote: - text: Fixed validation for Job with `suspend=true`, and `completions=0` to set the - Complete condition. -pr_body: "" +pr: 132614 +releasenote: + text: Fixed validation for Job with `suspend=true`, and `completions=0` to set the + Complete condition. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132617-map.yaml b/releases/release-1.34/release-notes/maps/pr-132617-map.yaml index 4338d6d84ac..b5cffa402a7 100644 --- a/releases/release-1.34/release-notes/maps/pr-132617-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132617-map.yaml @@ -1,6 +1,6 @@ -pr: 132617 -releasenote: - text: Updated the `v1` credential provider configuration to include the `tokenAttributes.cacheType` - field. This field is required and must be set to either `ServiceAccount` or `Token` - when configuring a provider that uses a service account to fetch registry credentials. -pr_body: "" +pr: 132617 +releasenote: + text: Updated the `v1` credential provider configuration to include the `tokenAttributes.cacheType` + field. This field is required and must be set to either `ServiceAccount` or `Token` + when configuring a provider that uses a service account to fetch registry credentials. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132626-map.yaml b/releases/release-1.34/release-notes/maps/pr-132626-map.yaml index 4f4ff2e7ee3..55f887bf299 100644 --- a/releases/release-1.34/release-notes/maps/pr-132626-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132626-map.yaml @@ -1,7 +1,7 @@ -pr: 132626 -releasenote: - text: |- - Added a new `FileKeyRef` field to containers, allowing them to load variables from files by setting this field. - - Introduced the `EnvFiles` feature gate to govern activation of this functionality. -pr_body: "" +pr: 132626 +releasenote: + text: |- + Added a new `FileKeyRef` field to containers, allowing them to load variables from files by setting this field. + + Introduced the `EnvFiles` feature gate to govern activation of this functionality. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132632-map.yaml b/releases/release-1.34/release-notes/maps/pr-132632-map.yaml index fcc9c6ea2c1..10c79cfffa8 100644 --- a/releases/release-1.34/release-notes/maps/pr-132632-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132632-map.yaml @@ -1,5 +1,5 @@ -pr: 132632 -releasenote: - text: The garbage collection controller no longer raced with changes to `ownerReferences` - when deleting orphaned objects. -pr_body: "" +pr: 132632 +releasenote: + text: The garbage collection controller no longer raced with changes to `ownerReferences` + when deleting orphaned objects. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132642-map.yaml b/releases/release-1.34/release-notes/maps/pr-132642-map.yaml index 52c6c4f3676..a17462aeb07 100644 --- a/releases/release-1.34/release-notes/maps/pr-132642-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132642-map.yaml @@ -1,5 +1,5 @@ -pr: 132642 -releasenote: - text: 'Added a mechanism for configurable container restarts: _container-level restart - rules_. This was an alpha feature behind the `ContainerRestartRules` feature gate.' -pr_body: "" +pr: 132642 +releasenote: + text: 'Added a mechanism for configurable container restarts: _container-level restart + rules_. This was an alpha feature behind the `ContainerRestartRules` feature gate.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132645-map.yaml b/releases/release-1.34/release-notes/maps/pr-132645-map.yaml index ced81c8ab8b..e89d86e8668 100644 --- a/releases/release-1.34/release-notes/maps/pr-132645-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132645-map.yaml @@ -1,4 +1,4 @@ -pr: 132645 -releasenote: - text: Graduated the `ConsistentListFromCache` to GA. -pr_body: "" +pr: 132645 +releasenote: + text: Graduated the `ConsistentListFromCache` to GA. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132647-map.yaml b/releases/release-1.34/release-notes/maps/pr-132647-map.yaml index f3b9b174d86..91550acc7a2 100644 --- a/releases/release-1.34/release-notes/maps/pr-132647-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132647-map.yaml @@ -1,5 +1,5 @@ -pr: 132647 -releasenote: - text: Updated Windows `kube-proxy` to align with Linux behavior by correctly honoring - the port specified in `EndpointSlice` for internal traffic routing. -pr_body: "" +pr: 132647 +releasenote: + text: Updated Windows `kube-proxy` to align with Linux behavior by correctly honoring + the port specified in `EndpointSlice` for internal traffic routing. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132648-map.yaml b/releases/release-1.34/release-notes/maps/pr-132648-map.yaml index 4a02ffd9813..f3d6790767b 100644 --- a/releases/release-1.34/release-notes/maps/pr-132648-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132648-map.yaml @@ -1,5 +1,5 @@ -pr: 132648 -releasenote: - text: Graduated `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` - to GA. -pr_body: "" +pr: 132648 +releasenote: + text: Graduated `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` + to GA. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132656-map.yaml b/releases/release-1.34/release-notes/maps/pr-132656-map.yaml index 631948c39a1..2db69e17277 100644 --- a/releases/release-1.34/release-notes/maps/pr-132656-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132656-map.yaml @@ -1,5 +1,5 @@ -pr: 132656 -releasenote: - text: Promoted the `AuthorizeWithSelectors` and `AuthorizeNodeWithSelectors` feature - gates to stable and locked on. -pr_body: "" +pr: 132656 +releasenote: + text: Promoted the `AuthorizeWithSelectors` and `AuthorizeNodeWithSelectors` feature + gates to stable and locked on. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132662-map.yaml b/releases/release-1.34/release-notes/maps/pr-132662-map.yaml index 57685321c9a..dda3a297077 100644 --- a/releases/release-1.34/release-notes/maps/pr-132662-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132662-map.yaml @@ -1,4 +1,4 @@ -pr: 132662 -releasenote: - text: Moved Recover from volume expansion failure to GA. -pr_body: "" +pr: 132662 +releasenote: + text: Moved Recover from volume expansion failure to GA. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132674-map.yaml b/releases/release-1.34/release-notes/maps/pr-132674-map.yaml index 6174d7b3d01..903b94a7533 100644 --- a/releases/release-1.34/release-notes/maps/pr-132674-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132674-map.yaml @@ -1,5 +1,5 @@ -pr: 132674 -releasenote: - text: 'Fixed e2e test "[Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem - volmode)] volumeLimits should support volume limits" not to leak Pods and namespaces.' -pr_body: "" +pr: 132674 +releasenote: + text: 'Fixed e2e test "[Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem + volmode)] volumeLimits should support volume limits" not to leak Pods and namespaces.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132698-map.yaml b/releases/release-1.34/release-notes/maps/pr-132698-map.yaml index 82655dd54a8..c1b8c664ba7 100644 --- a/releases/release-1.34/release-notes/maps/pr-132698-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132698-map.yaml @@ -1,5 +1,5 @@ -pr: 132698 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the reflector. -pr_body: "" +pr: 132698 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the reflector. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132699-map.yaml b/releases/release-1.34/release-notes/maps/pr-132699-map.yaml index 6510f75f955..a2bc03c5b77 100644 --- a/releases/release-1.34/release-notes/maps/pr-132699-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132699-map.yaml @@ -1,5 +1,5 @@ -pr: 132699 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the csr. -pr_body: "" +pr: 132699 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the csr. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132700-map.yaml b/releases/release-1.34/release-notes/maps/pr-132700-map.yaml index af88aeb480a..269d06dcc69 100644 --- a/releases/release-1.34/release-notes/maps/pr-132700-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132700-map.yaml @@ -1,6 +1,6 @@ -pr: 132700 -releasenote: - text: 'DRA kubelet: gRPC API graduated to v1, v1beta1 was deprecated starting in - 1.34. Updating DRA drivers to the `k8s.io/dynamic-resource-allocation/kubeletplugin` - helper from 1.34 added support for both API versions.' -pr_body: "" +pr: 132700 +releasenote: + text: 'DRA kubelet: gRPC API graduated to v1, v1beta1 was deprecated starting in + 1.34. Updating DRA drivers to the `k8s.io/dynamic-resource-allocation/kubeletplugin` + helper from 1.34 added support for both API versions.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132701-map.yaml b/releases/release-1.34/release-notes/maps/pr-132701-map.yaml index ff199879a2f..b7a56a5804c 100644 --- a/releases/release-1.34/release-notes/maps/pr-132701-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132701-map.yaml @@ -1,5 +1,5 @@ -pr: 132701 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the kube-aggregator apiregistration. -pr_body: "" +pr: 132701 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the kube-aggregator apiregistration. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132704-map.yaml b/releases/release-1.34/release-notes/maps/pr-132704-map.yaml index 22a39e765ee..ca79a29e73d 100644 --- a/releases/release-1.34/release-notes/maps/pr-132704-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132704-map.yaml @@ -1,5 +1,5 @@ -pr: 132704 -releasenote: - text: Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled - `WatchListClient` for KCM. -pr_body: "" +pr: 132704 +releasenote: + text: Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled + `WatchListClient` for KCM. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132706-map.yaml b/releases/release-1.34/release-notes/maps/pr-132706-map.yaml index e67b31f26db..17a0d8b1ca6 100644 --- a/releases/release-1.34/release-notes/maps/pr-132706-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132706-map.yaml @@ -1,5 +1,5 @@ -pr: 132706 -releasenote: - text: 'Dynamic Resource Allocation: Graduated core functionality to general availability - (GA). This newly stable feature uses the _structured parameters_ flavor of DRA.' -pr_body: "" +pr: 132706 +releasenote: + text: 'Dynamic Resource Allocation: Graduated core functionality to general availability + (GA). This newly stable feature uses the _structured parameters_ flavor of DRA.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132720-map.yaml b/releases/release-1.34/release-notes/maps/pr-132720-map.yaml index 531c7c8945b..4ac420161d7 100644 --- a/releases/release-1.34/release-notes/maps/pr-132720-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132720-map.yaml @@ -1,5 +1,5 @@ -pr: 132720 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the cloud-provider. -pr_body: "" +pr: 132720 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the cloud-provider. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132721-map.yaml b/releases/release-1.34/release-notes/maps/pr-132721-map.yaml index 709902560f1..87304054d53 100644 --- a/releases/release-1.34/release-notes/maps/pr-132721-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132721-map.yaml @@ -1,5 +1,5 @@ -pr: 132721 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the apiextensions-apiservers integration tests. -pr_body: "" +pr: 132721 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the apiextensions-apiservers integration tests. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132723-map.yaml b/releases/release-1.34/release-notes/maps/pr-132723-map.yaml index eb2a58fb1de..d2f30996bbb 100644 --- a/releases/release-1.34/release-notes/maps/pr-132723-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132723-map.yaml @@ -1,5 +1,5 @@ -pr: 132723 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the apiextensions-apiserver apiextensions. -pr_body: "" +pr: 132723 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the apiextensions-apiserver apiextensions. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132724-map.yaml b/releases/release-1.34/release-notes/maps/pr-132724-map.yaml index 374f4a03daf..383e8e9923c 100644 --- a/releases/release-1.34/release-notes/maps/pr-132724-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132724-map.yaml @@ -1,5 +1,5 @@ -pr: 132724 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for apiextensions-apiserver pkg/controller. -pr_body: "" +pr: 132724 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for apiextensions-apiserver pkg/controller. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132725-map.yaml b/releases/release-1.34/release-notes/maps/pr-132725-map.yaml index b8bf122fb93..03cc92935ff 100644 --- a/releases/release-1.34/release-notes/maps/pr-132725-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132725-map.yaml @@ -1,5 +1,5 @@ -pr: 132725 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for apiextensions-apiserver pkg/registry. -pr_body: "" +pr: 132725 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for apiextensions-apiserver pkg/registry. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132726-map.yaml b/releases/release-1.34/release-notes/maps/pr-132726-map.yaml index 483b2e74861..5890d1eef83 100644 --- a/releases/release-1.34/release-notes/maps/pr-132726-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132726-map.yaml @@ -1,5 +1,5 @@ -pr: 132726 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for apiextensions apiservers validation tests. -pr_body: "" +pr: 132726 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for apiextensions apiservers validation tests. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132741-map.yaml b/releases/release-1.34/release-notes/maps/pr-132741-map.yaml index 8ed4040f456..bc0c35b32e3 100644 --- a/releases/release-1.34/release-notes/maps/pr-132741-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132741-map.yaml @@ -1,5 +1,5 @@ -pr: 132741 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for pod-security-admission tests. -pr_body: "" +pr: 132741 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for pod-security-admission tests. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132742-map.yaml b/releases/release-1.34/release-notes/maps/pr-132742-map.yaml index 6a52d96f814..1ba1bf39ef7 100644 --- a/releases/release-1.34/release-notes/maps/pr-132742-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132742-map.yaml @@ -1,5 +1,5 @@ -pr: 132742 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the pod-security-admission admissiontests. -pr_body: "" +pr: 132742 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the pod-security-admission admissiontests. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132743-map.yaml b/releases/release-1.34/release-notes/maps/pr-132743-map.yaml index 9423bf4f05a..c9da71146fd 100644 --- a/releases/release-1.34/release-notes/maps/pr-132743-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132743-map.yaml @@ -1,5 +1,5 @@ -pr: 132743 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the pod-security-admission policy. -pr_body: "" +pr: 132743 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the pod-security-admission policy. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132750-map.yaml b/releases/release-1.34/release-notes/maps/pr-132750-map.yaml index d42f27755c2..074816eeecc 100644 --- a/releases/release-1.34/release-notes/maps/pr-132750-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132750-map.yaml @@ -1,5 +1,5 @@ -pr: 132750 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the cli-runtime. -pr_body: "" +pr: 132750 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the cli-runtime. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132751-map.yaml b/releases/release-1.34/release-notes/maps/pr-132751-map.yaml index b4408b78871..c38f99f7aa0 100644 --- a/releases/release-1.34/release-notes/maps/pr-132751-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132751-map.yaml @@ -1,5 +1,5 @@ -pr: 132751 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the apiserver (1/2). -pr_body: "" +pr: 132751 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the apiserver (1/2). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132752-map.yaml b/releases/release-1.34/release-notes/maps/pr-132752-map.yaml index f91a69322e7..69ba803b9e7 100644 --- a/releases/release-1.34/release-notes/maps/pr-132752-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132752-map.yaml @@ -1,5 +1,5 @@ -pr: 132752 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the apiserver (2/2). -pr_body: "" +pr: 132752 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the apiserver (2/2). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132753-map.yaml b/releases/release-1.34/release-notes/maps/pr-132753-map.yaml index 1120c71f206..dc0aab18e29 100644 --- a/releases/release-1.34/release-notes/maps/pr-132753-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132753-map.yaml @@ -1,5 +1,5 @@ -pr: 132753 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the controller-manager. -pr_body: "" +pr: 132753 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the controller-manager. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132754-map.yaml b/releases/release-1.34/release-notes/maps/pr-132754-map.yaml index 9f0a7876bce..db2f63b955f 100644 --- a/releases/release-1.34/release-notes/maps/pr-132754-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132754-map.yaml @@ -1,5 +1,5 @@ -pr: 132754 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the component-base. -pr_body: "" +pr: 132754 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the component-base. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132755-map.yaml b/releases/release-1.34/release-notes/maps/pr-132755-map.yaml index c69ddd18492..122165ec0f8 100644 --- a/releases/release-1.34/release-notes/maps/pr-132755-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132755-map.yaml @@ -1,5 +1,5 @@ -pr: 132755 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the e2e_node. -pr_body: "" +pr: 132755 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the e2e_node. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132762-map.yaml b/releases/release-1.34/release-notes/maps/pr-132762-map.yaml index 3d8f02de589..fc1aa70ef4a 100644 --- a/releases/release-1.34/release-notes/maps/pr-132762-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132762-map.yaml @@ -1,5 +1,5 @@ -pr: 132762 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for ./test/integration. -pr_body: "" +pr: 132762 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for ./test/integration. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132763-map.yaml b/releases/release-1.34/release-notes/maps/pr-132763-map.yaml index c69ef706b40..58a948552ea 100644 --- a/releases/release-1.34/release-notes/maps/pr-132763-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132763-map.yaml @@ -1,5 +1,5 @@ -pr: 132763 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for ./test/e2e and ./test/utils. -pr_body: "" +pr: 132763 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for ./test/e2e and ./test/utils. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132764-map.yaml b/releases/release-1.34/release-notes/maps/pr-132764-map.yaml index 12e27d4ed04..b1f48b2ec55 100644 --- a/releases/release-1.34/release-notes/maps/pr-132764-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132764-map.yaml @@ -1,5 +1,5 @@ -pr: 132764 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for ./test/e2e. -pr_body: "" +pr: 132764 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for ./test/e2e. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132765-map.yaml b/releases/release-1.34/release-notes/maps/pr-132765-map.yaml index 68258465da4..b23ca23b8b8 100644 --- a/releases/release-1.34/release-notes/maps/pr-132765-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132765-map.yaml @@ -1,5 +1,5 @@ -pr: 132765 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for ./test/e2e. -pr_body: "" +pr: 132765 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for ./test/e2e. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132767-map.yaml b/releases/release-1.34/release-notes/maps/pr-132767-map.yaml index 5711291a4a2..b5e37ccc96c 100644 --- a/releases/release-1.34/release-notes/maps/pr-132767-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132767-map.yaml @@ -1,5 +1,5 @@ -pr: 132767 -releasenote: - text: '`DRAPrioritizedList` was turned on by default which made it possible - to provide a prioritized list of subrequests in a `ResourceClaim`.' -pr_body: "" +pr: 132767 +releasenote: + text: '`DRAPrioritizedList` was turned on by default which made it possible + to provide a prioritized list of subrequests in a `ResourceClaim`.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132768-map.yaml b/releases/release-1.34/release-notes/maps/pr-132768-map.yaml index 1d137aa83ef..1817342b567 100644 --- a/releases/release-1.34/release-notes/maps/pr-132768-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132768-map.yaml @@ -1,8 +1,8 @@ -pr: 132768 -releasenote: - text: Added support for specifying `controlplane` or `cluster` egress selectors - in JWT authenticators via the `issuer.egressSelectorType` field in the `AuthenticationConfiguration.jwt` - array. If unset, the previous behavior of using no egress selector is preserved. - This functionality requires the `StructuredAuthenticationConfigurationEgressSelector` - beta feature gate (enabled by default). -pr_body: "" +pr: 132768 +releasenote: + text: Added support for specifying `controlplane` or `cluster` egress selectors + in JWT authenticators via the `issuer.egressSelectorType` field in the `AuthenticationConfiguration.jwt` + array. If unset, the previous behavior of using no egress selector is preserved. + This functionality requires the `StructuredAuthenticationConfigurationEgressSelector` + beta feature gate (enabled by default). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132771-map.yaml b/releases/release-1.34/release-notes/maps/pr-132771-map.yaml index 8fb1371a5a5..b76465859e2 100644 --- a/releases/release-1.34/release-notes/maps/pr-132771-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132771-map.yaml @@ -1,8 +1,8 @@ -pr: 132771 -releasenote: - text: Added support in the kubelet's image pull credential tracking for service account-based - verification. When an image was pulled using service account credentials via external - credential providers, subsequent Pods using the same service account (UID, name, - and namespace) could access the cached image without re-authentication for the - lifetime of that service account. -pr_body: "" +pr: 132771 +releasenote: + text: Added support in the kubelet's image pull credential tracking for service account-based + verification. When an image was pulled using service account credentials via external + credential providers, subsequent Pods using the same service account (UID, name, + and namespace) could access the cached image without re-authentication for the + lifetime of that service account. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132773-map.yaml b/releases/release-1.34/release-notes/maps/pr-132773-map.yaml index af2e340cab4..bef3a54f88d 100644 --- a/releases/release-1.34/release-notes/maps/pr-132773-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132773-map.yaml @@ -1,5 +1,5 @@ -pr: 132773 -releasenote: - text: Removed deprecated `gogo` protocol definitions from `k8s.io/kubelet/pkg/apis/pluginregistration` - in favor of `google.golang.org/protobuf`. -pr_body: "" +pr: 132773 +releasenote: + text: Removed deprecated `gogo` protocol definitions from `k8s.io/kubelet/pkg/apis/pluginregistration` + in favor of `google.golang.org/protobuf`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132776-map.yaml b/releases/release-1.34/release-notes/maps/pr-132776-map.yaml index 499119095cb..e31c1c29957 100644 --- a/releases/release-1.34/release-notes/maps/pr-132776-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132776-map.yaml @@ -1,8 +1,8 @@ -pr: 132776 -releasenote: - text: '`kubeadm`: Started using a named port `probe-port` for all probes in the - static pod manifests generated by `kubeadm` for the `kube-apiserver`, `kube-controller-manager`, - `kube-scheduler`, and related components. If probe port values were previously - patched using `kubeadm` patches, the corresponding named port under the container’s - `ports` field must now also be patched.' -pr_body: "" +pr: 132776 +releasenote: + text: '`kubeadm`: Started using a named port `probe-port` for all probes in the + static pod manifests generated by `kubeadm` for the `kube-apiserver`, `kube-controller-manager`, + `kube-scheduler`, and related components. If probe port values were previously + patched using `kubeadm` patches, the corresponding named port under the container’s + `ports` field must now also be patched.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132777-map.yaml b/releases/release-1.34/release-notes/maps/pr-132777-map.yaml index d00c8b52f8b..d652ad6e7a2 100644 --- a/releases/release-1.34/release-notes/maps/pr-132777-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132777-map.yaml @@ -1,5 +1,5 @@ -pr: 132777 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for the pkg/security and plugin/pkg. -pr_body: "" +pr: 132777 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for the pkg/security and plugin/pkg. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132778-map.yaml b/releases/release-1.34/release-notes/maps/pr-132778-map.yaml index 7aa4839069e..82fb43c11fc 100644 --- a/releases/release-1.34/release-notes/maps/pr-132778-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132778-map.yaml @@ -1,5 +1,5 @@ -pr: 132778 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for pkg/apis (1/2). -pr_body: "" +pr: 132778 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for pkg/apis (1/2). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132779-map.yaml b/releases/release-1.34/release-notes/maps/pr-132779-map.yaml index a94b01c4bda..cf0ccd3b145 100644 --- a/releases/release-1.34/release-notes/maps/pr-132779-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132779-map.yaml @@ -1,5 +1,5 @@ -pr: 132779 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for pkg/apis (2/2). -pr_body: "" +pr: 132779 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for pkg/apis (2/2). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132781-map.yaml b/releases/release-1.34/release-notes/maps/pr-132781-map.yaml index ffa39862c2e..d2da1a3630e 100644 --- a/releases/release-1.34/release-notes/maps/pr-132781-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132781-map.yaml @@ -1,5 +1,5 @@ -pr: 132781 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for pkg/controller (1/2). -pr_body: "" +pr: 132781 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for pkg/controller (1/2). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132784-map.yaml b/releases/release-1.34/release-notes/maps/pr-132784-map.yaml index a54b9f3cb69..6fb7a4a852f 100644 --- a/releases/release-1.34/release-notes/maps/pr-132784-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132784-map.yaml @@ -1,5 +1,5 @@ -pr: 132784 -releasenote: - text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` - for pkg/controller (2/2). -pr_body: "" +pr: 132784 +releasenote: + text: Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` + for pkg/controller (2/2). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132794-map.yaml b/releases/release-1.34/release-notes/maps/pr-132794-map.yaml index 43fd3dfb1c5..0e319e7b478 100644 --- a/releases/release-1.34/release-notes/maps/pr-132794-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132794-map.yaml @@ -1,4 +1,4 @@ -pr: 132794 -releasenote: - text: Replaced Boolean-pointer-helper functions with the `k8s.io/utils/ptr` implementations. -pr_body: "" +pr: 132794 +releasenote: + text: Replaced Boolean-pointer-helper functions with the `k8s.io/utils/ptr` implementations. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132800-map.yaml b/releases/release-1.34/release-notes/maps/pr-132800-map.yaml index 3c3858a216b..74c8a70096f 100644 --- a/releases/release-1.34/release-notes/maps/pr-132800-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132800-map.yaml @@ -1,7 +1,7 @@ -pr: 132800 -releasenote: - text: |- - `kube-controller-manager` reported the following metrics for `ResourceClaims` with admin access: - - `resourceclaim_controller_creates_total` count metric with labels `admin_access` (true or false), `status` (failure or success) to track the total number of `ResourceClaims` creation requests - - `resourceclaim_controller_resource_claims` gauge metric with labels `admin_access` (true or false), `allocated` (true or false) to track the current number of `ResourceClaims`. -pr_body: "" +pr: 132800 +releasenote: + text: |- + `kube-controller-manager` reported the following metrics for `ResourceClaims` with admin access: + - `resourceclaim_controller_creates_total` count metric with labels `admin_access` (true or false), `status` (failure or success) to track the total number of `ResourceClaims` creation requests + - `resourceclaim_controller_resource_claims` gauge metric with labels `admin_access` (true or false), `allocated` (true or false) to track the current number of `ResourceClaims`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132803-map.yaml b/releases/release-1.34/release-notes/maps/pr-132803-map.yaml index c6950b9905d..0728cdd5122 100644 --- a/releases/release-1.34/release-notes/maps/pr-132803-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132803-map.yaml @@ -1,8 +1,8 @@ -pr: 132803 -releasenote: - text: Fixed an issue where the kubelet token cache returned stale tokens when service - accounts were recreated with the same name. The cache is now UID-aware. Additionally, - the new `TokenRequestServiceAccountUIDValidation` feature gate (Beta, enabled - by default) ensures the `TokenRequest` UID matches the service account UID when - set. -pr_body: "" +pr: 132803 +releasenote: + text: Fixed an issue where the kubelet token cache returned stale tokens when service + accounts were recreated with the same name. The cache is now UID-aware. Additionally, + the new `TokenRequestServiceAccountUIDValidation` feature gate (Beta, enabled + by default) ensures the `TokenRequest` UID matches the service account UID when + set. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132806-map.yaml b/releases/release-1.34/release-notes/maps/pr-132806-map.yaml index 0b326444b3f..f85184e795a 100644 --- a/releases/release-1.34/release-notes/maps/pr-132806-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132806-map.yaml @@ -1,4 +1,4 @@ -pr: 132806 -releasenote: - text: Replaced `toPtr` helper functions with the "k8s.io/utils/ptr" implementations. -pr_body: "" +pr: 132806 +releasenote: + text: Replaced `toPtr` helper functions with the "k8s.io/utils/ptr" implementations. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132821-map.yaml b/releases/release-1.34/release-notes/maps/pr-132821-map.yaml index e45b7039827..9be46cc4951 100644 --- a/releases/release-1.34/release-notes/maps/pr-132821-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132821-map.yaml @@ -1,9 +1,9 @@ -pr: 132821 -releasenote: - text: "Introduced the `admissionregistration.k8s.io/v1beta1/MutatingAdmissionPolicy` - API type. To enable, enable the `MutatingAdmissionPolicy` feature gate (which - was off by default) and set `--runtime-config=admissionregistration.k8s.io/v1beta1=true` - on the kube-apiserver. \nNote that the default stored version remained alpha in - 1.34, and whoever enabled beta during 1.34 needed to run a storage migration yourself - to ensure you don't depend on alpha data in etcd." -pr_body: "" +pr: 132821 +releasenote: + text: "Introduced the `admissionregistration.k8s.io/v1beta1/MutatingAdmissionPolicy` + API type. To enable, enable the `MutatingAdmissionPolicy` feature gate (which + was off by default) and set `--runtime-config=admissionregistration.k8s.io/v1beta1=true` + on the kube-apiserver. \nNote that the default stored version remained alpha in + 1.34, and whoever enabled beta during 1.34 needed to run a storage migration yourself + to ensure you don't depend on alpha data in etcd." +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132832-map.yaml b/releases/release-1.34/release-notes/maps/pr-132832-map.yaml index d555b81c354..baa311bc7db 100644 --- a/releases/release-1.34/release-notes/maps/pr-132832-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132832-map.yaml @@ -1,5 +1,5 @@ -pr: 132832 -releasenote: - text: Updated `kubectl get job` to display the `SuccessCriteriaMet` status for listed - jobs. -pr_body: "" +pr: 132832 +releasenote: + text: Updated `kubectl get job` to display the `SuccessCriteriaMet` status for listed + jobs. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132837-map.yaml b/releases/release-1.34/release-notes/maps/pr-132837-map.yaml index f9c4a914cc2..88aa6c5317b 100644 --- a/releases/release-1.34/release-notes/maps/pr-132837-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132837-map.yaml @@ -1,5 +1,5 @@ -pr: 132837 -releasenote: - text: Fixed runtime cost estimation for `x-int-or-string` custom resource schemas - with maximum lengths. -pr_body: "" +pr: 132837 +releasenote: + text: Fixed runtime cost estimation for `x-int-or-string` custom resource schemas + with maximum lengths. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132838-map.yaml b/releases/release-1.34/release-notes/maps/pr-132838-map.yaml index 43038840970..e3dbf3c4fe3 100644 --- a/releases/release-1.34/release-notes/maps/pr-132838-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132838-map.yaml @@ -1,7 +1,7 @@ -pr: 132838 -releasenote: - text: Updated `kubeadm` to use the `InitialCorruptCheck=true` etcd feature gate - instead of the deprecated `--experimental-initial-corrupt-check` flag. Also replaced - the use of `--experimental-watch-progress-notify-interval` with its graduated - counterpart `--watch-progress-notify-interval`. -pr_body: "" +pr: 132838 +releasenote: + text: Updated `kubeadm` to use the `InitialCorruptCheck=true` etcd feature gate + instead of the deprecated `--experimental-initial-corrupt-check` flag. Also replaced + the use of `--experimental-watch-progress-notify-interval` with its graduated + counterpart `--watch-progress-notify-interval`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132840-map.yaml b/releases/release-1.34/release-notes/maps/pr-132840-map.yaml index a632182defb..23a02b456ca 100644 --- a/releases/release-1.34/release-notes/maps/pr-132840-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132840-map.yaml @@ -1,5 +1,5 @@ -pr: 132840 -releasenote: - text: Reduced excessive logging in the Volume Binding scheduler plugin by lowering - the verbosity of high-frequency messages from `V(4)` to `V(5)`. -pr_body: "" +pr: 132840 +releasenote: + text: Reduced excessive logging in the Volume Binding scheduler plugin by lowering + the verbosity of high-frequency messages from `V(4)` to `V(5)`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132868-map.yaml b/releases/release-1.34/release-notes/maps/pr-132868-map.yaml index 513a9298b54..d936e6c906a 100644 --- a/releases/release-1.34/release-notes/maps/pr-132868-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132868-map.yaml @@ -1,5 +1,5 @@ -pr: 132868 -releasenote: - text: 'Pods were not allowed to mix the usage of `user-namespaces` (`hostUsers: false`) and - `volumeDevices`. Kubernetes returned an error in this case.' -pr_body: "" +pr: 132868 +releasenote: + text: 'Pods were not allowed to mix the usage of `user-namespaces` (`hostUsers: false`) and + `volumeDevices`. Kubernetes returned an error in this case.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132876-map.yaml b/releases/release-1.34/release-notes/maps/pr-132876-map.yaml index 557eee283ec..35dba1d4646 100644 --- a/releases/release-1.34/release-notes/maps/pr-132876-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132876-map.yaml @@ -1,4 +1,4 @@ -pr: 132876 -releasenote: - text: Enabled compact snapshots in the watch cache based on `etcd` compaction events. -pr_body: "" +pr: 132876 +releasenote: + text: Enabled compact snapshots in the watch cache based on `etcd` compaction events. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132884-map.yaml b/releases/release-1.34/release-notes/maps/pr-132884-map.yaml index 11c3a0bbac7..21fcaebb581 100644 --- a/releases/release-1.34/release-notes/maps/pr-132884-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132884-map.yaml @@ -1,7 +1,7 @@ -pr: 132884 -releasenote: - text: Added the `DetectCacheInconsistency` feature gate, allowing the API server - to periodically verify consistency between its `cache` and `etcd`. Detected inconsistencies - reported via the `apiserver_storage_consistency_checks_total` metric and trigger - purging of affected cache snapshots. -pr_body: "" +pr: 132884 +releasenote: + text: Added the `DetectCacheInconsistency` feature gate, allowing the API server + to periodically verify consistency between its `cache` and `etcd`. Detected inconsistencies + reported via the `apiserver_storage_consistency_checks_total` metric and trigger + purging of affected cache snapshots. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132886-map.yaml b/releases/release-1.34/release-notes/maps/pr-132886-map.yaml index 894e3577d94..b63df1b0855 100644 --- a/releases/release-1.34/release-notes/maps/pr-132886-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132886-map.yaml @@ -1,6 +1,6 @@ -pr: 132886 -releasenote: - text: |- - Executed API calls dispatched during pod scheduling asynchronously if the `SchedulerAsyncAPICalls` feature gate was enabled. - Out-of-tree plugins used `APIDispatcher` and `APICacher` from the framework to dispatch their own calls. -pr_body: "" +pr: 132886 +releasenote: + text: |- + Executed API calls dispatched during pod scheduling asynchronously if the `SchedulerAsyncAPICalls` feature gate was enabled. + Out-of-tree plugins used `APIDispatcher` and `APICacher` from the framework to dispatch their own calls. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132893-map.yaml b/releases/release-1.34/release-notes/maps/pr-132893-map.yaml index 0424415a84b..d470c02b011 100644 --- a/releases/release-1.34/release-notes/maps/pr-132893-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132893-map.yaml @@ -1,4 +1,4 @@ -pr: 132893 -releasenote: - text: Added `apiserver_resource_size_estimate_bytes` metric to API server. -pr_body: "" +pr: 132893 +releasenote: + text: Added `apiserver_resource_size_estimate_bytes` metric to API server. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132895-map.yaml b/releases/release-1.34/release-notes/maps/pr-132895-map.yaml index e526ac37e0a..8855ca600f6 100644 --- a/releases/release-1.34/release-notes/maps/pr-132895-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132895-map.yaml @@ -1,5 +1,5 @@ -pr: 132895 -releasenote: - text: Fixed a 1.33 regression that causes a nil panic in kube-scheduler when aggregating - resource requested across container's spec and status. -pr_body: "" +pr: 132895 +releasenote: + text: Fixed a 1.33 regression that causes a nil panic in kube-scheduler when aggregating + resource requested across container's spec and status. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132896-map.yaml b/releases/release-1.34/release-notes/maps/pr-132896-map.yaml index c605f7085b2..4549453edd7 100644 --- a/releases/release-1.34/release-notes/maps/pr-132896-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132896-map.yaml @@ -1,4 +1,4 @@ -pr: 132896 -releasenote: - text: Updated the Kubernetes build environment to use Go `1.24.5`. -pr_body: "" +pr: 132896 +releasenote: + text: Updated the Kubernetes build environment to use Go `1.24.5`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132901-map.yaml b/releases/release-1.34/release-notes/maps/pr-132901-map.yaml index f58511df832..c9244ebeec8 100644 --- a/releases/release-1.34/release-notes/maps/pr-132901-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132901-map.yaml @@ -1,4 +1,4 @@ -pr: 132901 -releasenote: - text: Graduated `ListFromCacheSnapshot` to beta. -pr_body: "" +pr: 132901 +releasenote: + text: Graduated `ListFromCacheSnapshot` to beta. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132902-map.yaml b/releases/release-1.34/release-notes/maps/pr-132902-map.yaml index 268d18d6aae..5f39ee4579a 100644 --- a/releases/release-1.34/release-notes/maps/pr-132902-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132902-map.yaml @@ -1,6 +1,6 @@ -pr: 132902 -releasenote: - text: Added `started_user_namespaced_pods_total` and `started_user_namespaced_pods_errors_total` - for tracking the successes and failures in creating pods if a user namespace was - requested. -pr_body: "" +pr: 132902 +releasenote: + text: Added `started_user_namespaced_pods_total` and `started_user_namespaced_pods_errors_total` + for tracking the successes and failures in creating pods if a user namespace was + requested. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132903-map.yaml b/releases/release-1.34/release-notes/maps/pr-132903-map.yaml index 07ff310e67e..aab5fda1b90 100644 --- a/releases/release-1.34/release-notes/maps/pr-132903-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132903-map.yaml @@ -1,4 +1,4 @@ -pr: 132903 -releasenote: - text: Started recording metrics for in-place Pod resize. -pr_body: "" +pr: 132903 +releasenote: + text: Started recording metrics for in-place Pod resize. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132907-map.yaml b/releases/release-1.34/release-notes/maps/pr-132907-map.yaml index 748789a045f..7c4926f7231 100644 --- a/releases/release-1.34/release-notes/maps/pr-132907-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132907-map.yaml @@ -1,4 +1,4 @@ -pr: 132907 -releasenote: - text: Replaced `boolPtrFn` helper functions with the "k8s.io/utils/ptr" implementation. -pr_body: "" +pr: 132907 +releasenote: + text: Replaced `boolPtrFn` helper functions with the "k8s.io/utils/ptr" implementation. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132910-map.yaml b/releases/release-1.34/release-notes/maps/pr-132910-map.yaml index 0cdf96dd282..3037f0a4608 100644 --- a/releases/release-1.34/release-notes/maps/pr-132910-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132910-map.yaml @@ -1,5 +1,5 @@ -pr: 132910 -releasenote: - text: Added memory tracking to scheduler performance tests to help detect memory - leaks and monitored memory usage patterns while running `scheduler_perf`. -pr_body: "" +pr: 132910 +releasenote: + text: Added memory tracking to scheduler performance tests to help detect memory + leaks and monitored memory usage patterns while running `scheduler_perf`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132912-map.yaml b/releases/release-1.34/release-notes/maps/pr-132912-map.yaml index 5f29a92193d..fd7b84021e4 100644 --- a/releases/release-1.34/release-notes/maps/pr-132912-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132912-map.yaml @@ -1,8 +1,8 @@ -pr: 132912 -releasenote: - text: Graduated `PodObservedGenerationTracking` feature to beta and had it on by - default. This feature meant that the top level `status.observedGeneration` and - `status.conditions[].observedGeneration` fields in Pods were populated to reflect - the `metadata.generation` of the podspec at the time that the status or condition - was reported. -pr_body: "" +pr: 132912 +releasenote: + text: Graduated `PodObservedGenerationTracking` feature to beta and had it on by + default. This feature meant that the top level `status.observedGeneration` and + `status.conditions[].observedGeneration` fields in Pods were populated to reflect + the `metadata.generation` of the podspec at the time that the status or condition + was reported. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132932-map.yaml b/releases/release-1.34/release-notes/maps/pr-132932-map.yaml index 88259a1fb71..4a00525889e 100644 --- a/releases/release-1.34/release-notes/maps/pr-132932-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132932-map.yaml @@ -1,7 +1,7 @@ -pr: 132932 -releasenote: - text: Added the `SizeBasedListCostEstimate` feature gate (enabled by default), which - changes how APF seats are assigned to `LIST` requests. With this feature, one - seat is assigned per 100KB of data loaded into memory at once during a `LIST` - operation. -pr_body: "" +pr: 132932 +releasenote: + text: Added the `SizeBasedListCostEstimate` feature gate (enabled by default), which + changes how APF seats are assigned to `LIST` requests. With this feature, one + seat is assigned per 100KB of data loaded into memory at once during a `LIST` + operation. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132933-map.yaml b/releases/release-1.34/release-notes/maps/pr-132933-map.yaml index ae33804dfc7..dd95d2f9d66 100644 --- a/releases/release-1.34/release-notes/maps/pr-132933-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132933-map.yaml @@ -1,7 +1,7 @@ -pr: 132933 -releasenote: - text: Kubelet detected terminal CSI volume mount failures due to exceeded attachment - limits on the node and marked the Stateful Pod as Failed, allowing its controller - to recreate it. This prevented Pods from getting stuck indefinitely in the `ContainerCreating` - state. -pr_body: "" +pr: 132933 +releasenote: + text: Kubelet detected terminal CSI volume mount failures due to exceeded attachment + limits on the node and marked the Stateful Pod as Failed, allowing its controller + to recreate it. This prevented Pods from getting stuck indefinitely in the `ContainerCreating` + state. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132935-map.yaml b/releases/release-1.34/release-notes/maps/pr-132935-map.yaml index e7a6c7b8a2a..82e8a924499 100644 --- a/releases/release-1.34/release-notes/maps/pr-132935-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132935-map.yaml @@ -1,6 +1,6 @@ -pr: 132935 -releasenote: - text: Added support for encoding and decoding types that implement the standard - library interfaces `json.Marshaler`, `json.Unmarshaler`, `encoding.TextMarshaler`, - or `encoding.TextUnmarshaler` to and from CBOR by transcoding. -pr_body: "" +pr: 132935 +releasenote: + text: Added support for encoding and decoding types that implement the standard + library interfaces `json.Marshaler`, `json.Unmarshaler`, `encoding.TextMarshaler`, + or `encoding.TextUnmarshaler` to and from CBOR by transcoding. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132940-map.yaml b/releases/release-1.34/release-notes/maps/pr-132940-map.yaml index 917e9355a9b..e5b8addfa9f 100644 --- a/releases/release-1.34/release-notes/maps/pr-132940-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132940-map.yaml @@ -1,5 +1,5 @@ -pr: 132940 -releasenote: - text: Promoted the `KubeletPodResourcesDynamicResources` and `KubeletPodResourcesGet` - feature gates to beta, which were enabled by default if DRA went to GA. -pr_body: "" +pr: 132940 +releasenote: + text: Promoted the `KubeletPodResourcesDynamicResources` and `KubeletPodResourcesGet` + feature gates to beta, which were enabled by default if DRA went to GA. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132942-map.yaml b/releases/release-1.34/release-notes/maps/pr-132942-map.yaml index bc28702ad84..d16d9165898 100644 --- a/releases/release-1.34/release-notes/maps/pr-132942-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132942-map.yaml @@ -1,7 +1,7 @@ -pr: 132942 -releasenote: - text: Added support for a new kubectl output format, `kyaml`. KYAML was a strict - subset of YAML and should be accepted by any YAML processor. The formatting of - KYAML was halfway between JSON and YAML. Because it was more explicit than the - default YAML style, it was less error-prone. -pr_body: "" +pr: 132942 +releasenote: + text: Added support for a new kubectl output format, `kyaml`. KYAML was a strict + subset of YAML and should be accepted by any YAML processor. The formatting of + KYAML was halfway between JSON and YAML. Because it was more explicit than the + default YAML style, it was less error-prone. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132965-map.yaml b/releases/release-1.34/release-notes/maps/pr-132965-map.yaml index 3b4c7a900e5..039672e3fd4 100644 --- a/releases/release-1.34/release-notes/maps/pr-132965-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132965-map.yaml @@ -1,5 +1,5 @@ -pr: 132965 -releasenote: - text: Deprecated `apiserver_storage_objects` and replaced it with `apiserver_resource_objects` - metric using labels consistent with other metrics. -pr_body: "" +pr: 132965 +releasenote: + text: Deprecated `apiserver_storage_objects` and replaced it with `apiserver_resource_objects` + metric using labels consistent with other metrics. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-132999-map.yaml b/releases/release-1.34/release-notes/maps/pr-132999-map.yaml index 001735b674c..1e4a966674a 100644 --- a/releases/release-1.34/release-notes/maps/pr-132999-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-132999-map.yaml @@ -1,5 +1,5 @@ -pr: 132999 -releasenote: - text: Graduated `PodLevelResources` feature to beta and have it on by default. This - feature allowed defining CPU and memory resources for an entire pod in `pod.spec.resources`. -pr_body: "" +pr: 132999 +releasenote: + text: Graduated `PodLevelResources` feature to beta and have it on by default. This + feature allowed defining CPU and memory resources for an entire pod in `pod.spec.resources`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133012-map.yaml b/releases/release-1.34/release-notes/maps/pr-133012-map.yaml index 4c3ca30328c..ab8c418f093 100644 --- a/releases/release-1.34/release-notes/maps/pr-133012-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133012-map.yaml @@ -1,6 +1,6 @@ -pr: 133012 -releasenote: - text: Memory limits could be decreased with a `NotRequired` resize restart policy. - When decreasing memory limits,a best-effort check was performed to prevent limits - from decreasing below usage and triggering an OOM-kill. -pr_body: "" +pr: 133012 +releasenote: + text: Memory limits could be decreased with a `NotRequired` resize restart policy. + When decreasing memory limits,a best-effort check was performed to prevent limits + from decreasing below usage and triggering an OOM-kill. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133013-map.yaml b/releases/release-1.34/release-notes/maps/pr-133013-map.yaml index 4c8826b7d8f..604806c9430 100644 --- a/releases/release-1.34/release-notes/maps/pr-133013-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133013-map.yaml @@ -1,8 +1,8 @@ -pr: 133013 -releasenote: - text: "The `conditionType` is \"oneof\" approved/denied check of CertificateSigningRequest's - `.status.conditions` field was migrated to declarative validation. \nIf the `DeclarativeValidation` - feature gate was enabled, mismatches with existing validation are reported via - metrics.\nIf the `DeclarativeValidationTakeover` feature gate was enabled, declarative - validation was the primary source of errors for migrated fields." -pr_body: "" +pr: 133013 +releasenote: + text: "The `conditionType` is \"oneof\" approved/denied check of CertificateSigningRequest's + `.status.conditions` field was migrated to declarative validation. \nIf the `DeclarativeValidation` + feature gate was enabled, mismatches with existing validation are reported via + metrics.\nIf the `DeclarativeValidationTakeover` feature gate was enabled, declarative + validation was the primary source of errors for migrated fields." +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133016-map.yaml b/releases/release-1.34/release-notes/maps/pr-133016-map.yaml index 28b4d26de47..7e9b4c86ac3 100644 --- a/releases/release-1.34/release-notes/maps/pr-133016-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133016-map.yaml @@ -1,5 +1,5 @@ -pr: 133016 -releasenote: - text: kubelet reported a hash of the credential provider configuration via the `kubelet_credential_provider_config_info` - metric. The hash was exposed in the `hash` label. -pr_body: "" +pr: 133016 +releasenote: + text: kubelet reported a hash of the credential provider configuration via the `kubelet_credential_provider_config_info` + metric. The hash was exposed in the `hash` label. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133017-map.yaml b/releases/release-1.34/release-notes/maps/pr-133017-map.yaml index cd5343ea45e..7c85a46de68 100644 --- a/releases/release-1.34/release-notes/maps/pr-133017-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133017-map.yaml @@ -1,5 +1,5 @@ -pr: 133017 -releasenote: - text: The `KubeletServiceAccountTokenForCredentialProviders` feature was beta and - enabled by default. -pr_body: "" +pr: 133017 +releasenote: + text: The `KubeletServiceAccountTokenForCredentialProviders` feature was beta and + enabled by default. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133018-map.yaml b/releases/release-1.34/release-notes/maps/pr-133018-map.yaml index e4d7326ef09..b535580bcab 100644 --- a/releases/release-1.34/release-notes/maps/pr-133018-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133018-map.yaml @@ -1,5 +1,5 @@ -pr: 133018 -releasenote: - text: Eliminated work when creating Services or understanding port purposes, especially - for external resources deployed via Helm charts. -pr_body: "" +pr: 133018 +releasenote: + text: Eliminated work when creating Services or understanding port purposes, especially + for external resources deployed via Helm charts. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133021-map.yaml b/releases/release-1.34/release-notes/maps/pr-133021-map.yaml index efac1d48949..86414c3bef0 100644 --- a/releases/release-1.34/release-notes/maps/pr-133021-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133021-map.yaml @@ -1,7 +1,7 @@ -pr: 133021 -releasenote: - text: "If `PreBindPreFlight` returned `Skip`, the scheduler didn't run the plugin - at `PreBind`.\nIf any `PreBindPreFlight` returned `Success`, the scheduler put - NominatedNodeName to the pod \nso that other components (such as the cluster autoscaler) - could notice the pod was going to be bound to the node." -pr_body: "" +pr: 133021 +releasenote: + text: "If `PreBindPreFlight` returned `Skip`, the scheduler didn't run the plugin + at `PreBind`.\nIf any `PreBindPreFlight` returned `Success`, the scheduler put + NominatedNodeName to the pod \nso that other components (such as the cluster autoscaler) + could notice the pod was going to be bound to the node." +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133023-map.yaml b/releases/release-1.34/release-notes/maps/pr-133023-map.yaml index da2d4a33cfe..28c8d715e9c 100644 --- a/releases/release-1.34/release-notes/maps/pr-133023-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133023-map.yaml @@ -1,5 +1,5 @@ -pr: 133023 -releasenote: - text: 'kubeadm: Fixed a bug where the default args for etcd were not correct when - a local etcd image was used and the etcd version was less than 3.6.0.' -pr_body: "" +pr: 133023 +releasenote: + text: 'kubeadm: Fixed a bug where the default args for etcd were not correct when + a local etcd image was used and the etcd version was less than 3.6.0.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133030-map.yaml b/releases/release-1.34/release-notes/maps/pr-133030-map.yaml index 9df3347defc..b4c781a9f20 100644 --- a/releases/release-1.34/release-notes/maps/pr-133030-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133030-map.yaml @@ -1,4 +1,4 @@ -pr: 133030 -releasenote: - text: Replaced timer ptr helper function with the `k8s.io/utils/ptr` implementations. -pr_body: "" +pr: 133030 +releasenote: + text: Replaced timer ptr helper function with the `k8s.io/utils/ptr` implementations. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133034-map.yaml b/releases/release-1.34/release-notes/maps/pr-133034-map.yaml index 83e09c095a8..fc7afb3e01a 100644 --- a/releases/release-1.34/release-notes/maps/pr-133034-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133034-map.yaml @@ -1,4 +1,4 @@ -pr: 133034 -releasenote: - text: Increased APF max seats to 100 for LIST requests. -pr_body: "" +pr: 133034 +releasenote: + text: Increased APF max seats to 100 for LIST requests. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133042-map.yaml b/releases/release-1.34/release-notes/maps/pr-133042-map.yaml index a87601d8160..9b8a5c4d2f3 100644 --- a/releases/release-1.34/release-notes/maps/pr-133042-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133042-map.yaml @@ -1,5 +1,5 @@ -pr: 133042 -releasenote: - text: Graduated the WinOverlay feature in the kube-proxy to GA. The **WinOverlay** - feature gate was enabled by default. -pr_body: "" +pr: 133042 +releasenote: + text: Graduated the WinOverlay feature in the kube-proxy to GA. The **WinOverlay** + feature gate was enabled by default. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133046-map.yaml b/releases/release-1.34/release-notes/maps/pr-133046-map.yaml index e42cfad5af6..544848a97bb 100644 --- a/releases/release-1.34/release-notes/maps/pr-133046-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133046-map.yaml @@ -1,7 +1,7 @@ -pr: 133046 -releasenote: - text: Added validation to reject Pods using the `PodLevelResources` feature on Windows - OS due to lack of support. The API server rejected Pods with pod-level resources - and a `Pod.spec.os.name` targeting Windows. Kubelet on nodes running Windows also - rejected Pods with pod-level resources at the admission phase. -pr_body: "" +pr: 133046 +releasenote: + text: Added validation to reject Pods using the `PodLevelResources` feature on Windows + OS due to lack of support. The API server rejected Pods with pod-level resources + and a `Pod.spec.os.name` targeting Windows. Kubelet on nodes running Windows also + rejected Pods with pod-level resources at the admission phase. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133060-map.yaml b/releases/release-1.34/release-notes/maps/pr-133060-map.yaml index 51d21bf77f9..e2d90a47871 100644 --- a/releases/release-1.34/release-notes/maps/pr-133060-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133060-map.yaml @@ -1,5 +1,5 @@ -pr: 133060 -releasenote: - text: Fixed recording the `kubelet_container_resize_requests_total` metric to include - all resize-related updates. -pr_body: "" +pr: 133060 +releasenote: + text: Fixed recording the `kubelet_container_resize_requests_total` metric to include + all resize-related updates. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133062-map.yaml b/releases/release-1.34/release-notes/maps/pr-133062-map.yaml index 15e2cbe7a8b..412a5e92836 100644 --- a/releases/release-1.34/release-notes/maps/pr-133062-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133062-map.yaml @@ -1,4 +1,4 @@ -pr: 133062 -releasenote: - text: Promoted Windows graceful shutdown feature from alpha to beta. -pr_body: "" +pr: 133062 +releasenote: + text: Promoted Windows graceful shutdown feature from alpha to beta. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133068-map.yaml b/releases/release-1.34/release-notes/maps/pr-133068-map.yaml index 7ab25f6a8a0..1faa8e8ce2f 100644 --- a/releases/release-1.34/release-notes/maps/pr-133068-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133068-map.yaml @@ -1,7 +1,7 @@ -pr: 133068 -releasenote: - text: |- - The validation in the CertificateSigningRequest `/status` and `/approval` subresources was migrated to declarative validation. - If the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics. - If the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields. -pr_body: "" +pr: 133068 +releasenote: + text: |- + The validation in the CertificateSigningRequest `/status` and `/approval` subresources was migrated to declarative validation. + If the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics. + If the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133076-map.yaml b/releases/release-1.34/release-notes/maps/pr-133076-map.yaml index 55eadac9605..56d1e2164c5 100644 --- a/releases/release-1.34/release-notes/maps/pr-133076-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133076-map.yaml @@ -1,6 +1,6 @@ -pr: 133076 -releasenote: - text: 'DRA driver helper: Fixed handling of apiserver restart when running on a - Kubernetes version which did not support the `resource.k8s.io` version used by - the DRA driver.' -pr_body: "" +pr: 133076 +releasenote: + text: 'DRA driver helper: Fixed handling of apiserver restart when running on a + Kubernetes version which did not support the `resource.k8s.io` version used by + the DRA driver.' +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133085-map.yaml b/releases/release-1.34/release-notes/maps/pr-133085-map.yaml index f4213c43c8a..38928bec8c0 100644 --- a/releases/release-1.34/release-notes/maps/pr-133085-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133085-map.yaml @@ -1,7 +1,7 @@ -pr: 133085 -releasenote: - text: DRAAdminAccess was enabled by default allowing users to create `ResourceClaims` - and `ResourceClaimTemplates` in privileged mode to grant access to devices that - were in use by other users for admin tasks like monitoring health or status of - the device. -pr_body: "" +pr: 133085 +releasenote: + text: DRAAdminAccess was enabled by default allowing users to create `ResourceClaims` + and `ResourceClaimTemplates` in privileged mode to grant access to devices that + were in use by other users for admin tasks like monitoring health or status of + the device. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133120-map.yaml b/releases/release-1.34/release-notes/maps/pr-133120-map.yaml index a8b6c31d954..2a652aea3f3 100644 --- a/releases/release-1.34/release-notes/maps/pr-133120-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133120-map.yaml @@ -1,8 +1,8 @@ -pr: 133120 -releasenote: - text: |- - Added 3 new metrics for monitoring async API calls in the scheduler when the `SchedulerAsyncAPICalls` feature gate was enabled: - - `scheduler_async_api_call_execution_total`: tracks executed API calls by call type and result (success/error) - - `scheduler_async_api_call_duration_seconds`: histogram of API call execution duration by call type and result - - `scheduler_pending_async_api_calls`: gauge showing current number of pending API calls in the queue. -pr_body: "" +pr: 133120 +releasenote: + text: |- + Added 3 new metrics for monitoring async API calls in the scheduler when the `SchedulerAsyncAPICalls` feature gate was enabled: + - `scheduler_async_api_call_execution_total`: tracks executed API calls by call type and result (success/error) + - `scheduler_async_api_call_duration_seconds`: histogram of API call execution duration by call type and result + - `scheduler_pending_async_api_calls`: gauge showing current number of pending API calls in the queue. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133135-map.yaml b/releases/release-1.34/release-notes/maps/pr-133135-map.yaml index d7fea935654..09f71e202cd 100644 --- a/releases/release-1.34/release-notes/maps/pr-133135-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133135-map.yaml @@ -1,4 +1,4 @@ -pr: 133135 -releasenote: - text: CRI API had auth fields in image pulling marked as `debug_redact`. -pr_body: "" +pr: 133135 +releasenote: + text: CRI API had auth fields in image pulling marked as `debug_redact`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133136-map.yaml b/releases/release-1.34/release-notes/maps/pr-133136-map.yaml index 15114fa8471..f8b722f195a 100644 --- a/releases/release-1.34/release-notes/maps/pr-133136-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133136-map.yaml @@ -1,6 +1,6 @@ -pr: 133136 -releasenote: - text: Changed handling of `CustomResourceDefinitions` with unrecognized formats. - Writing a schema with an unrecognized format now triggered a warning (the write - was still accepted). -pr_body: "" +pr: 133136 +releasenote: + text: Changed handling of `CustomResourceDefinitions` with unrecognized formats. + Writing a schema with an unrecognized format now triggered a warning (the write + was still accepted). +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133157-map.yaml b/releases/release-1.34/release-notes/maps/pr-133157-map.yaml index 0baff845278..9801d17129a 100644 --- a/releases/release-1.34/release-notes/maps/pr-133157-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133157-map.yaml @@ -1,5 +1,5 @@ -pr: 133157 -releasenote: - text: Bumped `KubeletCgroupDriverFromCRI` to GA and add metric to track out-of-support - CRI implementations. -pr_body: "" +pr: 133157 +releasenote: + text: Bumped `KubeletCgroupDriverFromCRI` to GA and add metric to track out-of-support + CRI implementations. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133164-map.yaml b/releases/release-1.34/release-notes/maps/pr-133164-map.yaml index 18730f77ba3..308043bd389 100644 --- a/releases/release-1.34/release-notes/maps/pr-133164-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133164-map.yaml @@ -1,4 +1,4 @@ -pr: 133164 -releasenote: - text: Bumped DRA API version to `v1` in `deviceattribute` package in `k8s.io/dynamic-resource-allocation`. -pr_body: "" +pr: 133164 +releasenote: + text: Bumped DRA API version to `v1` in `deviceattribute` package in `k8s.io/dynamic-resource-allocation`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133226-map.yaml b/releases/release-1.34/release-notes/maps/pr-133226-map.yaml index ec3d68eee16..b84e3fcb158 100644 --- a/releases/release-1.34/release-notes/maps/pr-133226-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133226-map.yaml @@ -1,4 +1,4 @@ -pr: 133226 -releasenote: - text: Updated the etcd client library to v3.6.4. -pr_body: "" +pr: 133226 +releasenote: + text: Updated the etcd client library to v3.6.4. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133276-map.yaml b/releases/release-1.34/release-notes/maps/pr-133276-map.yaml index e9764d5c73f..91474b796da 100644 --- a/releases/release-1.34/release-notes/maps/pr-133276-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133276-map.yaml @@ -1,6 +1,6 @@ -pr: 133276 -releasenote: - text: The scheduler no longer cleared the `nominatedNodeName` field for Pods. External - components, such as Cluster Autoscaler and Karpenter, were responsible for managing - this field when needed. -pr_body: "" +pr: 133276 +releasenote: + text: The scheduler no longer cleared the `nominatedNodeName` field for Pods. External + components, such as Cluster Autoscaler and Karpenter, were responsible for managing + this field when needed. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133279-map.yaml b/releases/release-1.34/release-notes/maps/pr-133279-map.yaml index f1bc561608d..2840290af70 100644 --- a/releases/release-1.34/release-notes/maps/pr-133279-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133279-map.yaml @@ -1,6 +1,6 @@ -pr: 133279 -releasenote: - text: Prevented any type of CPU/Memory alignment or hint generation with the Topology - Manager from the CPU or Memory Manager when pod-level resources were used in the - Pod spec. -pr_body: "" +pr: 133279 +releasenote: + text: Prevented any type of CPU/Memory alignment or hint generation with the Topology + Manager from the CPU or Memory Manager when pod-level resources were used in the + Pod spec. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133293-map.yaml b/releases/release-1.34/release-notes/maps/pr-133293-map.yaml index 3cacebc16fc..e20294dd3f2 100644 --- a/releases/release-1.34/release-notes/maps/pr-133293-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133293-map.yaml @@ -1,5 +1,5 @@ -pr: 133293 -releasenote: - text: Demoted KEP-5278 feature gates `ClearingNominatedNodeNameAfterBinding` and - `NominatedNodeNameForExpectation` to alpha from beta. -pr_body: "" +pr: 133293 +releasenote: + text: Demoted KEP-5278 feature gates `ClearingNominatedNodeNameAfterBinding` and + `NominatedNodeNameForExpectation` to alpha from beta. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133350-map.yaml b/releases/release-1.34/release-notes/maps/pr-133350-map.yaml index d10388ea411..8935624d225 100644 --- a/releases/release-1.34/release-notes/maps/pr-133350-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133350-map.yaml @@ -1,4 +1,4 @@ -pr: 133350 -releasenote: - text: Fixed prerelease lifecycle for `PodCertificateRequest`. -pr_body: "" +pr: 133350 +releasenote: + text: Fixed prerelease lifecycle for `PodCertificateRequest`. +pr_body: "" diff --git a/releases/release-1.34/release-notes/maps/pr-133412-map.yaml b/releases/release-1.34/release-notes/maps/pr-133412-map.yaml index 0755bcb7daf..fdf1ac3f2f5 100644 --- a/releases/release-1.34/release-notes/maps/pr-133412-map.yaml +++ b/releases/release-1.34/release-notes/maps/pr-133412-map.yaml @@ -1,5 +1,5 @@ -pr: 133412 -kinds: - - bug -releasenote: - text: "Fixed an issue that caused kube-apiserver to panic in 1.34.0-rc.0." +pr: 133412 +kinds: + - bug +releasenote: + text: "Fixed an issue that caused kube-apiserver to panic in 1.34.0-rc.0." diff --git a/releases/release-1.34/release-notes/release-notes-draft.json b/releases/release-1.34/release-notes/release-notes-draft.json index a661371bc46..4e99b70519e 100644 --- a/releases/release-1.34/release-notes/release-notes-draft.json +++ b/releases/release-1.34/release-notes/release-notes-draft.json @@ -1,7604 +1,7604 @@ -{ - "120816": { - "commit": "62f72addf26d2fd25e060554bcd8cf5bdc10e50c", - "text": "Reduced the 5s delay before tainting `node.kubernetes.io/unreachable:NoExecute` when a Node became unreachable.", - "markdown": "Reduced the 5s delay before tainting `node.kubernetes.io/unreachable:NoExecute` when a Node became unreachable. ([#120816](https://github.com/kubernetes/kubernetes/pull/120816), [@tnqn](https://github.com/tnqn)) [SIG Apps and Node]", - "author": "tnqn", - "author_url": "https://github.com/tnqn", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/120816", - "pr_number": 120816, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "122384": { - "commit": "60f0ad4615741bf9aaec7b79e4ed7f65cff7a4a9", - "text": "Removed the deprecated `--register-schedulable` command line argument from the kubelet.", - "markdown": "Removed the deprecated `--register-schedulable` command line argument from the kubelet. ([#122384](https://github.com/kubernetes/kubernetes/pull/122384), [@carlory](https://github.com/carlory)) [SIG Cloud Provider, Node and Scalability]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122384", - "pr_number": 122384, - "areas": [ - "kubelet", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "node", - "scalability" - ], - "duplicate": true - }, - "122634": { - "commit": "5a0f0f7b2d7743915d4677a2e8019262016a44ba", - "text": "Promoted the `SeparateTaintEvictionController` feature gate to GA; it is now enabled unconditionally.", - "markdown": "Promoted the `SeparateTaintEvictionController` feature gate to GA; it is now enabled unconditionally. ([#122634](https://github.com/kubernetes/kubernetes/pull/122634), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3902", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122634", - "pr_number": 122634, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "testing" - ], - "duplicate": true - }, - "125271": { - "commit": "49cd87182cac80a4f3d29e2e65e80c8f88e890da", - "text": "The `baseline` and `restricted` pod security admission levels blocked setting the `host` field on probe and lifecycle handlers.", - "markdown": "The `baseline` and `restricted` pod security admission levels blocked setting the `host` field on probe and lifecycle handlers. ([#125271](https://github.com/kubernetes/kubernetes/pull/125271), [@tssurya](https://github.com/tssurya)) [SIG Auth, Node and Testing]", - "author": "tssurya", - "author_url": "https://github.com/tssurya", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125271", - "pr_number": 125271, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "auth", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "126619": { - "commit": "75862f3f461b8c83f3cbbf441ce4fd5357d3bba0", - "text": "Included the namespace in the output of `kubectl delete` for better identification of resources.", - "markdown": "Included the namespace in the output of `kubectl delete` for better identification of resources. ([#126619](https://github.com/kubernetes/kubernetes/pull/126619), [@totegamma](https://github.com/totegamma))", - "author": "totegamma", - "author_url": "https://github.com/totegamma", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126619", - "pr_number": 126619, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "127183": { - "commit": "d63a52a007da693cb40d2cfaef4f738cee104ab1", - "text": "Added a warning to `kubectl attach`, notifying / reminding users that commands and output are available via the `log` subresource of that Pod.", - "markdown": "Added a warning to `kubectl attach`, notifying / reminding users that commands and output are available via the `log` subresource of that Pod. ([#127183](https://github.com/kubernetes/kubernetes/pull/127183), [@mochizuki875](https://github.com/mochizuki875)) [SIG Auth, CLI, Node and Security]", - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127183", - "pr_number": 127183, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "cli", - "node", - "security" - ], - "duplicate": true - }, - "127365": { - "commit": "35307319740a3a52cf4632c24b7f99d675537bdf", - "text": "Added a flag to kubectl version to detect whether a client/server version mismatch was outside the officially supported range.", - "markdown": "Added a flag to kubectl version to detect whether a client/server version mismatch was outside the officially supported range. ([#127365](https://github.com/kubernetes/kubernetes/pull/127365), [@omerap12](https://github.com/omerap12))", - "author": "omerap12", - "author_url": "https://github.com/omerap12", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127365", - "pr_number": 127365, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "127667": { - "commit": "35956e9548456cf8a633e6ba883be0b7c653efb8", - "text": "kube-log-runner: Added the `-log-file-size` parameter to rotate log output into a new file once it reached a certain size. Introduced `-log-file-age` to enable automatic removal of old output files, and `-flush-interval` to support periodic flushing.", - "markdown": "Kube-log-runner: Added the `-log-file-size` parameter to rotate log output into a new file once it reached a certain size. Introduced `-log-file-age` to enable automatic removal of old output files, and `-flush-interval` to support periodic flushing. ([#127667](https://github.com/kubernetes/kubernetes/pull/127667), [@zylxjtu](https://github.com/zylxjtu)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Release, Scheduling, Storage, Testing and Windows]", - "author": "zylxjtu", - "author_url": "https://github.com/zylxjtu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/127667", - "pr_number": 127667, - "areas": [ - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "provider/gcp", - "release-eng", - "kubeadm", - "code-generation", - "ipvs", - "dependency" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "autoscaling", - "cli", - "cloud-provider", - "cluster-lifecycle", - "etcd", - "instrumentation", - "network", - "node", - "release", - "scheduling", - "storage", - "testing", - "windows" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128010": { - "commit": "cc674e7470cc1e98145ce6f915469ff6f748f443", - "text": "Enabled kube-apiserver support for `PodCertificateRequest` and `PodCertificate` projected volumes (behind the `PodCertificateRequest` feature gate).", - "markdown": "Enabled kube-apiserver support for `PodCertificateRequest` and `PodCertificate` projected volumes (behind the `PodCertificateRequest` feature gate). ([#128010](https://github.com/kubernetes/kubernetes/pull/128010), [@ahmedtd](https://github.com/ahmedtd)) [SIG API Machinery, Apps, Auth, Cloud Provider, Etcd, Node, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/25777c1bba657eac76eb294c012acbbbd519299c/keps/sig-auth/4317-pod-certificates", - "type": "KEP" - } - ], - "author": "ahmedtd", - "author_url": "https://github.com/ahmedtd", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128010", - "pr_number": 128010, - "areas": [ - "test", - "kubelet", - "apiserver", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cloud-provider", - "etcd", - "node", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128351": { - "commit": "d41e8bbc1412ef479132cac0e2ce2bc10c0c2a8b", - "text": "Updated `kube-controller-manager` events to support contextual logging.", - "markdown": "Updated `kube-controller-manager` events to support contextual logging. ([#128351](https://github.com/kubernetes/kubernetes/pull/128351), [@mengjiao-liu](https://github.com/mengjiao-liu))", - "author": "mengjiao-liu", - "author_url": "https://github.com/mengjiao-liu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128351", - "pr_number": 128351, - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "128653": { - "commit": "0fe23942fdeabb8f90a252a8eb241f9217177dca", - "text": "Removed deprecated gogo protocol definitions from `k8s.io/cri-api` in favor of `google.golang.org/protobuf`.", - "markdown": "Removed deprecated gogo protocol definitions from `k8s.io/cri-api` in favor of `google.golang.org/protobuf`. ([#128653](https://github.com/kubernetes/kubernetes/pull/128653), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Auth, Instrumentation, Node and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128653", - "pr_number": 128653, - "areas": [ - "test", - "kubelet", - "apiserver", - "dependency" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true - }, - "128748": { - "commit": "82db38a23c7820b1924d89f458fd368023f3980c", - "text": "Ensured that non-scheduling related errors (e.g., network errors) did not lengthen the Pod scheduling backoff time.", - "markdown": "Ensured that non-scheduling related errors (e.g., network errors) did not lengthen the Pod scheduling backoff time. ([#128748](https://github.com/kubernetes/kubernetes/pull/128748), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/128748", - "pr_number": 128748, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "129237": { - "commit": "fa8e37f7805d608c121f07da5259d3086436d397", - "text": "kube-apiserver: Added support for disabling caching of authorization webhook decisions in the `--authorization-config` file. The new fields `cacheAuthorizedRequests` and `cacheUnauthorizedRequests` could be set to `false` to prevent caching for authorized or unauthorized requests. See the https://kubernetes.io/docs/reference/access-authn-authz/authorization/#using-configuration-file-for-authorization for more details.", - "markdown": "Kube-apiserver: Added support for disabling caching of authorization webhook decisions in the `--authorization-config` file. The new fields `cacheAuthorizedRequests` and `cacheUnauthorizedRequests` could be set to `false` to prevent caching for authorized or unauthorized requests. See the https://kubernetes.io/docs/reference/access-authn-authz/authorization/#using-configuration-file-for-authorization for more details. ([#129237](https://github.com/kubernetes/kubernetes/pull/129237), [@rfranzke](https://github.com/rfranzke)) [SIG API Machinery and Auth]", - "author": "rfranzke", - "author_url": "https://github.com/rfranzke", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129237", - "pr_number": 129237, - "areas": [ - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129373": { - "commit": "3ce7034a7f321bdc8223850cc805f01dc9126621", - "text": "Added support for `--cpu`, `--memory` flag to `kubectl autoscale`, started deprecating `--cpu-precent`.", - "markdown": "Added support for `--cpu`, `--memory` flag to `kubectl autoscale`, started deprecating `--cpu-precent`. ([#129373](https://github.com/kubernetes/kubernetes/pull/129373), [@googs1025](https://github.com/googs1025))", - "author": "googs1025", - "author_url": "https://github.com/googs1025", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129373", - "pr_number": 129373, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "129438": { - "commit": "b569406b792fef24bb5613f1263ea354755bbae0", - "text": "kube-apiserver: Each unique set of etcd server overrides specified with `--etcd-servers-overrides` surfaced health checks named `etcd-override-\u003cindex\u003e` and `etcd-override-readiness-\u003cindex\u003e`. These checks were still excluded by the `?exclude=etcd` and `?exclude=etcd-readiness` directives.", - "markdown": "Kube-apiserver: Each unique set of etcd server overrides specified with `--etcd-servers-overrides` surfaced health checks named `etcd-override-\u003cindex\u003e` and `etcd-override-readiness-\u003cindex\u003e`. These checks were still excluded by the `?exclude=etcd` and `?exclude=etcd-readiness` directives. ([#129438](https://github.com/kubernetes/kubernetes/pull/129438), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery and Testing]", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129438", - "pr_number": 129438, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129458": { - "commit": "8d3fb9ee0a51b6a6ea135d991391c35806422c19", - "text": "Added a `--show-swap` option to `kubectl top` subcommands", - "markdown": "Added a `--show-swap` option to `kubectl top` subcommands ([#129458](https://github.com/kubernetes/kubernetes/pull/129458), [@iholder101](https://github.com/iholder101)) [SIG CLI]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md", - "type": "KEP" - } - ], - "author": "iholder101", - "author_url": "https://github.com/iholder101", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129458", - "pr_number": 129458, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "129501": { - "commit": "004d55cffa3a3fe4642bd606c81c436690d8666e", - "text": "Removed generally available feature-gate `PodDisruptionConditions`.", - "markdown": "Removed generally available feature-gate `PodDisruptionConditions`. ([#129501](https://github.com/kubernetes/kubernetes/pull/129501), [@carlory](https://github.com/carlory)) [SIG Apps]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129501", - "pr_number": 129501, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ] - }, - "129837": { - "commit": "c41cc0a144a8205b63289c440b813892eed790ae", - "text": "When proxying to an aggregated API server, kube-apiserver used the\n`EndpointSlices` of the `service` indicated by the `APIServer`, rather than\nusing Endpoints.\n\nIf you were using the aggregated API server feature, and you were writing out\nthe endpoints for it by hand (rather than letting kube-controller-manager\ngenerate `Endpoints` and `EndpointSlices` for it automatically based on the\nService definition), then you should write out an EndpointSlice object rather\nthan (or in addition to) an `Endpoints` object.", - "markdown": "When proxying to an aggregated API server, kube-apiserver used the\n `EndpointSlices` of the `service` indicated by the `APIServer`, rather than\n using Endpoints.\n \n If you were using the aggregated API server feature, and you were writing out\n the endpoints for it by hand (rather than letting kube-controller-manager\n generate `Endpoints` and `EndpointSlices` for it automatically based on the\n Service definition), then you should write out an EndpointSlice object rather\n than (or in addition to) an `Endpoints` object. ([#129837](https://github.com/kubernetes/kubernetes/pull/129837), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Network and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4974-deprecate-endpoints", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129837", - "pr_number": 129837, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "api-machinery", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "129874": { - "commit": "a3097010faac734fb4956dbc91ae9034d0a9f840", - "text": "The Kubernetes API server merged selectors built from `matchLabelKeys` into the `labelSelector` of `topologySpreadConstraints`, aligning Pod Topology Spread behavior with Inter-Pod Affinity. To prevent breaking existing Pods using `matchLabelKeys`, this scheduler behavior was preserved until v1.34. Upgrades from v1.32 to v1.34 should be done incrementally (v1.32 → v1.33 → v1.34), ensuring Pods created at v1.32 with `matchLabelKeys` are scheduled before reaching v1.34. Controllers relying on `matchLabelKeys` no longer need to handle them directly and can use `labelSelector` instead. The new feature gate `MatchLabelKeysInPodTopologySpreadSelectorMerge`, enabled by default, controls this behavior.", - "markdown": "The Kubernetes API server merged selectors built from `matchLabelKeys` into the `labelSelector` of `topologySpreadConstraints`, aligning Pod Topology Spread behavior with Inter-Pod Affinity. To prevent breaking existing Pods using `matchLabelKeys`, this scheduler behavior was preserved until v1.34. Upgrades from v1.32 to v1.34 should be done incrementally (v1.32 → v1.33 → v1.34), ensuring Pods created at v1.32 with `matchLabelKeys` are scheduled before reaching v1.34. Controllers relying on `matchLabelKeys` no longer need to handle them directly and can use `labelSelector` instead. The new feature gate `MatchLabelKeysInPodTopologySpreadSelectorMerge`, enabled by default, controls this behavior. ([#129874](https://github.com/kubernetes/kubernetes/pull/129874), [@mochizuki875](https://github.com/mochizuki875)) [SIG Apps, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3243-respect-pod-topology-spread-after-rolling-upgrades", - "type": "KEP" - } - ], - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/129874", - "pr_number": 129874, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130160": { - "commit": "e2ab84070896a8ed5b703b015522326d44597400", - "text": "Added new optional APIs in `ResouceSlice.Basic` and `ResourceClaim.Status.AllocatedDeviceStatus`.", - "markdown": "Added new optional APIs in `ResouceSlice.Basic` and `ResourceClaim.Status.AllocatedDeviceStatus`. ([#130160](https://github.com/kubernetes/kubernetes/pull/130160), [@KobayashiD27](https://github.com/KobayashiD27)) [SIG API Machinery, Apps, Architecture, Node, Release, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5007", - "type": "KEP" - } - ], - "author": "KobayashiD27", - "author_url": "https://github.com/KobayashiD27", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130160", - "pr_number": 130160, - "areas": [ - "test", - "kubelet", - "release-eng", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "node", - "release", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130161": { - "commit": "2125fd6a94c968f22c3034ea2406ca2eb247fdd3", - "text": "kubelet: removed the deprecated flag `--cloud-config` from the command line.", - "markdown": "Kubelet: removed the deprecated flag `--cloud-config` from the command line. ([#130161](https://github.com/kubernetes/kubernetes/pull/130161), [@carlory](https://github.com/carlory)) [SIG Cloud Provider, Node and Scalability]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2395", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130161", - "pr_number": 130161, - "areas": [ - "kubelet", - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "node", - "scalability" - ], - "duplicate": true, - "action_required": true - }, - "130333": { - "commit": "fe5afa919b36207e6f173dc5ff111a1138a0cf0e", - "text": "Fixed a bug in the Job controller that could result in creating unnecessary Pods for Jobs already marked as finished (either successful or failed).", - "markdown": "Fixed a bug in the Job controller that could result in creating unnecessary Pods for Jobs already marked as finished (either successful or failed). ([#130333](https://github.com/kubernetes/kubernetes/pull/130333), [@kmala](https://github.com/kmala)) [SIG Apps and Testing]", - "author": "kmala", - "author_url": "https://github.com/kmala", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130333", - "pr_number": 130333, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "130387": { - "commit": "5c219a727a65c679d6bfa54dc4d1070ac832c086", - "text": "Added a detailed event for in-place pod vertical scaling completed, improving cluster management and debugging.", - "markdown": "Added a detailed event for in-place pod vertical scaling completed, improving cluster management and debugging. ([#130387](https://github.com/kubernetes/kubernetes/pull/130387), [@shiya0705](https://github.com/shiya0705)) [SIG API Machinery, Apps, Autoscaling, Node, Scheduling and Testing]", - "author": "shiya0705", - "author_url": "https://github.com/shiya0705", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130387", - "pr_number": 130387, - "areas": [ - "test", - "kubelet", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "autoscaling", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130503": { - "commit": "609e4a9ba044e64a6244e053d2b1b7c545a2d2ed", - "text": "Fixed a panic issue related to kubectl revision history kubernetes/kubectl#1724", - "markdown": "Fixed a panic issue related to kubectl revision history kubernetes/kubectl#1724 ([#130503](https://github.com/kubernetes/kubernetes/pull/130503), [@tahacodes](https://github.com/tahacodes)) [SIG CLI]", - "author": "tahacodes", - "author_url": "https://github.com/tahacodes", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130503", - "pr_number": 130503, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "130542": { - "commit": "e43ab77aedfa9257022e90642fed0034d937056e", - "text": "Updated `conntrack` reconciler to consider a Service’s target port during cleanup of stale flow entries.", - "markdown": "Updated `conntrack` reconciler to consider a Service’s target port during cleanup of stale flow entries. ([#130542](https://github.com/kubernetes/kubernetes/pull/130542), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130542", - "pr_number": 130542, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "130593": { - "commit": "c4beea784c4ba2ab4cdf98d13dfe094fcb746288", - "text": "DRA: When the prioritized list feature was used in a request and the resulting number of allocated devices exceeded the number of allowed devices per claim, the scheduler aborted the attempt to allocate devices early. Previously, it tried to many different combinations, which could take a long time.", - "markdown": "DRA: When the prioritized list feature was used in a request and the resulting number of allocated devices exceeded the number of allowed devices per claim, the scheduler aborted the attempt to allocate devices early. Previously, it tried to many different combinations, which could take a long time. ([#130593](https://github.com/kubernetes/kubernetes/pull/130593), [@mortent](https://github.com/mortent)) [SIG Apps, Node, Scheduling and Testing]", - "author": "mortent", - "author_url": "https://github.com/mortent", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130593", - "pr_number": 130593, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130606": { - "commit": "72f9a9260a676cb6553dd9a628a39a173bdb06f0", - "text": "Added support in the Kubelet for monitoring the health of devices allocated via Dynamic Resource Allocation (DRA) and report it in the `pod.status.containerStatuses.allocatedResourcesStatus` field. This required the DRA plugin to implement the new v1alpha1 `NodeHealth` gRPC service. This feature was controlled by the `ResourceHealthStatus` feature gate.", - "markdown": "Added support in the Kubelet for monitoring the health of devices allocated via Dynamic Resource Allocation (DRA) and report it in the `pod.status.containerStatuses.allocatedResourcesStatus` field. This required the DRA plugin to implement the new v1alpha1 `NodeHealth` gRPC service. This feature was controlled by the `ResourceHealthStatus` feature gate. ([#130606](https://github.com/kubernetes/kubernetes/pull/130606), [@Jpsassine](https://github.com/Jpsassine)) [SIG Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Network, Node, Release, Scheduling, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/4680-add-resource-health-to-pod-status/README.md", - "type": "KEP" - } - ], - "author": "Jpsassine", - "author_url": "https://github.com/Jpsassine", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130606", - "pr_number": 130606, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "release-eng", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "etcd", - "network", - "node", - "release", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130653": { - "commit": "1b273b385e0ec817167040ec2b75cb7fdda105da", - "text": "Extended resources backed by DRA feature allowed cluster operator to specify `extendedResourceName` in `DeviceClass`, and application operator to continue using extended resources in pod's requests to request for DRA devices matching the DeviceClass.\n\n`NodeResourcesFit` plugin scoring didn't work for extended resources backed by DRA.", - "markdown": "Extended resources backed by DRA feature allowed cluster operator to specify `extendedResourceName` in `DeviceClass`, and application operator to continue using extended resources in pod's requests to request for DRA devices matching the DeviceClass.\n \n `NodeResourcesFit` plugin scoring didn't work for extended resources backed by DRA. ([#130653](https://github.com/kubernetes/kubernetes/pull/130653), [@yliaog](https://github.com/yliaog)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/5136", - "type": "KEP" - } - ], - "author": "yliaog", - "author_url": "https://github.com/yliaog", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130653", - "pr_number": 130653, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "130713": { - "commit": "c44bf18b9b26d4526670d77ea60329f89a5bec2c", - "text": "Updated pause version to `registry.k8s.io/pause:3.10.1`.", - "markdown": "Updated pause version to `registry.k8s.io/pause:3.10.1`. ([#130713](https://github.com/kubernetes/kubernetes/pull/130713), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG Cluster Lifecycle, Node, Scheduling and Testing]", - "author": "ArkaSaha30", - "author_url": "https://github.com/ArkaSaha30", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130713", - "pr_number": 130713, - "areas": [ - "test", - "kubelet", - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "130720": { - "commit": "8a6b9167659e315d5e937a18e44ca6c8527b3186", - "text": "The Scheduling Framework exposed `NodeInfos` to the PreFilter plugins. The PreFilter plugins now accepted the `NodeInfo` list from the arguments.", - "markdown": "The Scheduling Framework exposed `NodeInfos` to the PreFilter plugins. The PreFilter plugins now accepted the `NodeInfo` list from the arguments. ([#130720](https://github.com/kubernetes/kubernetes/pull/130720), [@saintube](https://github.com/saintube)) [SIG Node, Scheduling, Storage and Testing]", - "author": "saintube", - "author_url": "https://github.com/saintube", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130720", - "pr_number": 130720, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "action_required": true, - "is_mapped": true - }, - "130727": { - "commit": "015e79ed0414a2ded47caba1608204f228bbe2d8", - "text": "Migrated Memory Manager to contextual logging.", - "markdown": "Migrated Memory Manager to contextual logging. ([#130727](https://github.com/kubernetes/kubernetes/pull/130727), [@swatisehgal](https://github.com/swatisehgal))", - "author": "swatisehgal", - "author_url": "https://github.com/swatisehgal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130727", - "pr_number": 130727, - "areas": [ - "kubelet", - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "130782": { - "commit": "c2d40b77aacbe1fddc64801f301ea8a7379fb580", - "text": "kubeadm: Fixed an issue where etcd member promotion failed with an error indicating the member was already promoted.", - "markdown": "Kubeadm: Fixed an issue where etcd member promotion failed with an error indicating the member was already promoted. ([#130782](https://github.com/kubernetes/kubernetes/pull/130782), [@BernardMC](https://github.com/BernardMC))", - "author": "BernardMC", - "author_url": "https://github.com/BernardMC", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130782", - "pr_number": 130782, - "areas": [ - "test", - "kubeadm", - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "130852": { - "commit": "9d1363eff6c5519e2d4976f47e463564fc39a6ec", - "text": "Migrated `pkg/kubelet/status` to use contextual logging.", - "markdown": "Migrated `pkg/kubelet/status` to use contextual logging. ([#130852](https://github.com/kubernetes/kubernetes/pull/130852), [@Chulong-Li](https://github.com/Chulong-Li))", - "author": "Chulong-Li", - "author_url": "https://github.com/Chulong-Li", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130852", - "pr_number": 130852, - "areas": [ - "kubelet", - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "130909": { - "commit": "66cf6286a8cbd9001d5a52f4db6ee870c0eb369e", - "text": "`Statefulset` respected `minReadySeconds`.", - "markdown": "`Statefulset` respected `minReadySeconds`. ([#130909](https://github.com/kubernetes/kubernetes/pull/130909), [@Edwinhr716](https://github.com/Edwinhr716))", - "author": "Edwinhr716", - "author_url": "https://github.com/Edwinhr716", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130909", - "pr_number": 130909, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "130919": { - "commit": "0f478e52a8da02b334aab22b1e66b46afc8b7863", - "text": "Added a delay to node updates after kubelet startup. A random offset, based on the configured `nodeStatusReportFrequency`, helped distribute traffic and load from node status updates more evenly over time. The initial status update could occur up to 50% earlier or later than the regular schedule.", - "markdown": "Added a delay to node updates after kubelet startup. A random offset, based on the configured `nodeStatusReportFrequency`, helped distribute traffic and load from node status updates more evenly over time. The initial status update could occur up to 50% earlier or later than the regular schedule. ([#130919](https://github.com/kubernetes/kubernetes/pull/130919), [@mengqiy](https://github.com/mengqiy))", - "author": "mengqiy", - "author_url": "https://github.com/mengqiy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130919", - "pr_number": 130919, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "130987": { - "commit": "da7f3cef166af40644ed9265d7a6a9d7a7e842d3", - "text": "export LANGUAGE=fr_FR", - "markdown": "Export LANGUAGE=fr_FR ([#130987](https://github.com/kubernetes/kubernetes/pull/130987), [@arthurbdiniz](https://github.com/arthurbdiniz)) [SIG CLI]", - "author": "arthurbdiniz", - "author_url": "https://github.com/arthurbdiniz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130987", - "pr_number": 130987, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug", - "flake", - "failing-test" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true, - "do_not_publish": true - }, - "130989": { - "commit": "01899a7c86337b05a16a4155c9351cf947beaee9", - "text": "Zero-value `metadata.creationTimestamp` values are now omitted and no longer serialize an explicit `null` in JSON, YAML, and CBOR output", - "markdown": "Zero-value `metadata.creationTimestamp` values are now omitted and no longer serialize an explicit `null` in JSON, YAML, and CBOR output ([#130989](https://github.com/kubernetes/kubernetes/pull/130989), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Scheduling, Storage and Testing]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130989", - "pr_number": 130989, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "kubeadm", - "code-generation", - "e2e-test-framework", - "dependency" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "etcd", - "instrumentation", - "network", - "node", - "scheduling", - "storage", - "testing" - ], - "duplicate": true - }, - "130994": { - "commit": "b775f9b92f98f7b3acbb3864ed53c2f5b835e917", - "text": "Removed an inaccurate statement about requiring ports when the Pod spec `hostNetwork` field was set.", - "markdown": "Removed an inaccurate statement about requiring ports when the Pod spec `hostNetwork` field was set. ([#130994](https://github.com/kubernetes/kubernetes/pull/130994), [@BenTheElder](https://github.com/BenTheElder)) [SIG Network and Node]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130994", - "pr_number": 130994, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "131001": { - "commit": "d12fae55d0ca0d13a0733bc4b72913ecd5462ef5", - "text": "Migrated `pkg/kubelet/winstats` to contextual logging.", - "markdown": "Migrated `pkg/kubelet/winstats` to contextual logging. ([#131001](https://github.com/kubernetes/kubernetes/pull/131001), [@Chulong-Li](https://github.com/Chulong-Li))", - "author": "Chulong-Li", - "author_url": "https://github.com/Chulong-Li", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131001", - "pr_number": 131001, - "areas": [ - "kubelet", - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "131018": { - "commit": "1a1181677ccd83f2f7760b795afa52bfd79f82b0", - "text": "Masked access to Linux thermal interrupt information exposed via `/proc` and `/sys`.", - "markdown": "Masked access to Linux thermal interrupt information exposed via `/proc` and `/sys`. ([#131018](https://github.com/kubernetes/kubernetes/pull/131018), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131018", - "pr_number": 131018, - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "131085": { - "commit": "f8a6707c03fb9395bdc6febb9eca9f1e58ed071d", - "text": "[cloud-provider] Respected the `exclude-from-external-load-balancers=false` label.", - "markdown": "[cloud-provider] Respected the `exclude-from-external-load-balancers=false` label. ([#131085](https://github.com/kubernetes/kubernetes/pull/131085), [@kayrus](https://github.com/kayrus)) [SIG Cloud Provider and Network]", - "author": "kayrus", - "author_url": "https://github.com/kayrus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131085", - "pr_number": 131085, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "bug", - "documentation", - "flake", - "failing-test", - "deprecation", - "regression" - ], - "sigs": [ - "cloud-provider", - "network" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "131089": { - "commit": "3fd125116581e75ebab22a3b37ddd73bcfdc4d0c", - "text": "- Changed underlying logic to propagate pod-level hugepage cgroup to containers when they did not specify hugepage resources.\n- Added validation to enforce the hugepage aggregated container limits to be smaller than or equal to pod-level limits. This was already enforced with the defaulted requests from the specified limits, however it did not make it clear about both hugepage requests and limits.", - "markdown": "- Changed underlying logic to propagate pod-level hugepage cgroup to containers when they did not specify hugepage resources.\n - Added validation to enforce the hugepage aggregated container limits to be smaller than or equal to pod-level limits. This was already enforced with the defaulted requests from the specified limits, however it did not make it clear about both hugepage requests and limits. ([#131089](https://github.com/kubernetes/kubernetes/pull/131089), [@KevinTMtz](https://github.com/KevinTMtz)) [SIG Apps, Node and Testing]", - "documentation": [ - { - "description": "[Other doc]", - "url": "https://docs.google.com/document/d/1JaqE2eRmFAPlRayv8vsAWE4SmQCVXQLr9rFPhEaPlvQ/edit?usp=sharing", - "type": "external" - } - ], - "author": "KevinTMtz", - "author_url": "https://github.com/KevinTMtz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131089", - "pr_number": 131089, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "131151": { - "commit": "629537d8c655279f4decc4c307afe8ec679659ce", - "text": "Upgraded CoreDNS to v1.12.1.", - "markdown": "Upgraded CoreDNS to v1.12.1. ([#131151](https://github.com/kubernetes/kubernetes/pull/131151), [@yashsingh74](https://github.com/yashsingh74)) [SIG Cloud Provider and Cluster Lifecycle]", - "author": "yashsingh74", - "author_url": "https://github.com/yashsingh74", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131151", - "pr_number": 131151, - "areas": [ - "provider/gcp", - "kubeadm", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "cluster-lifecycle" - ], - "duplicate": true, - "is_mapped": true - }, - "131157": { - "commit": "584de05d47da169fca3d4407bc6d95bb583e2ee7", - "text": "Fixed the `observedGeneration` field in pod resize conditions to accurately reflect the associated pod generation when both `InPlacePodVerticalScaling` and `PodObservedGenerationTracking` feature gates are enabled.", - "markdown": "Fixed the `observedGeneration` field in pod resize conditions to accurately reflect the associated pod generation when both `InPlacePodVerticalScaling` and `PodObservedGenerationTracking` feature gates are enabled. ([#131157](https://github.com/kubernetes/kubernetes/pull/131157), [@natasha41575](https://github.com/natasha41575))", - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131157", - "pr_number": 131157, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "131165": { - "commit": "d76b47cc4cd58fcb6544764ea6c1c809ab8fa265", - "text": "`kubectl create|delete|get|replace --raw` commands now honored the server root paths specified in the kubeconfig file.", - "markdown": "`kubectl create|delete|get|replace --raw` commands now honored the server root paths specified in the kubeconfig file. ([#131165](https://github.com/kubernetes/kubernetes/pull/131165), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131165", - "pr_number": 131165, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "131213": { - "commit": "a9c75b0da8649a350fd01c5cb4d0570a960677c3", - "text": "Fixed the `allocatedResourceStatuses` field name mismatch in PVC status validation.", - "markdown": "Fixed the `allocatedResourceStatuses` field name mismatch in PVC status validation. ([#131213](https://github.com/kubernetes/kubernetes/pull/131213), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131213", - "pr_number": 131213, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "131215": { - "commit": "27de9a82b7de600fa40b4b2add081cefaec6cdc0", - "text": "Removed `endpoint-controller` and `workload-leader-election` FlowSchemas from the default APF configuration. \n\nAction required: workloads using leader election were required to migrate their lock type from `configmapsleases` or `endpointsleases` to `leases`.", - "markdown": "Removed `endpoint-controller` and `workload-leader-election` FlowSchemas from the default APF configuration. \n \n Action required: workloads using leader election were required to migrate their lock type from `configmapsleases` or `endpointsleases` to `leases`. ([#131215](https://github.com/kubernetes/kubernetes/pull/131215), [@tosi3k](https://github.com/tosi3k)) [SIG API Machinery, Apps, Network, Scalability and Scheduling]", - "author": "tosi3k", - "author_url": "https://github.com/tosi3k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131215", - "pr_number": 131215, - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "network", - "scalability", - "scheduling" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true, - "is_mapped": true - }, - "131265": { - "commit": "e73db626bdbeb388614e26cee42bdec356689754", - "text": "kube-proxy: Checked whether IPv6 was available on Linux before using it.", - "markdown": "Kube-proxy: Checked whether IPv6 was available on Linux before using it. ([#131265](https://github.com/kubernetes/kubernetes/pull/131265), [@rikatz](https://github.com/rikatz))", - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131265", - "pr_number": 131265, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "is_mapped": true - }, - "131266": { - "commit": "d6d6aad0d89abea236996b12d0545642f96684fb", - "text": "Fixed a possible deadlock in the watch client that could happen if the watch was not stopped.", - "markdown": "Fixed a possible deadlock in the watch client that could happen if the watch was not stopped. ([#131266](https://github.com/kubernetes/kubernetes/pull/131266), [@karlkfi](https://github.com/karlkfi)) [SIG API Machinery]", - "author": "karlkfi", - "author_url": "https://github.com/karlkfi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131266", - "pr_number": 131266, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true - }, - "131299": { - "commit": "92c06be5232d6ce2962fde773b55bfc5217445f1", - "text": "DRA: Ensured that ResourceClaims requesting a fixed number of devices with `adminAccess` were no longer allocated the same device multiple times.", - "markdown": "DRA: Ensured that ResourceClaims requesting a fixed number of devices with `adminAccess` were no longer allocated the same device multiple times. ([#131299](https://github.com/kubernetes/kubernetes/pull/131299), [@nojnhuh](https://github.com/nojnhuh))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "nojnhuh", - "author_url": "https://github.com/nojnhuh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131299", - "pr_number": 131299, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "131300": { - "commit": "b0b28b53e4533889a8324d02d5f93503edaad870", - "text": "kube-apiserver: Promoted the `ExternalServiceAccountTokenSigner` feature to beta, which enabled external signing of service account tokens and fetching of public verifying keys. This was accomplished by enabling the beta `ExternalServiceAccountTokenSigner` feature gate and specifying the `--service-account-signing-endpoint` flag. The flag value could either be the path to a Unix domain socket on the filesystem, or be prefixed with @ to indicate a Unix domain socket in the abstract namespace.", - "markdown": "Kube-apiserver: Promoted the `ExternalServiceAccountTokenSigner` feature to beta, which enabled external signing of service account tokens and fetching of public verifying keys. This was accomplished by enabling the beta `ExternalServiceAccountTokenSigner` feature gate and specifying the `--service-account-signing-endpoint` flag. The flag value could either be the path to a Unix domain socket on the filesystem, or be prefixed with @ to indicate a Unix domain socket in the abstract namespace. ([#131300](https://github.com/kubernetes/kubernetes/pull/131300), [@HarshalNeelkamal](https://github.com/HarshalNeelkamal)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/740-service-account-external-signing", - "type": "KEP" - } - ], - "author": "HarshalNeelkamal", - "author_url": "https://github.com/HarshalNeelkamal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131300", - "pr_number": 131300, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "131306": { - "commit": "9eb462ef4a86cc68c545a88392e8b78ddfefec84", - "text": "Migrated `pkg/kubelet/volumemanager` to contextual logging.", - "markdown": "Migrated `pkg/kubelet/volumemanager` to contextual logging. ([#131306](https://github.com/kubernetes/kubernetes/pull/131306), [@Chulong-Li](https://github.com/Chulong-Li))", - "author": "Chulong-Li", - "author_url": "https://github.com/Chulong-Li", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131306", - "pr_number": 131306, - "areas": [ - "kubelet", - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "131311": { - "commit": "08f32728b96bef711124ad79e4c088d79b060e2e", - "text": "Stopped removing the CSI JSON file if the volume was already mounted during subsequent errors.", - "markdown": "Stopped removing the CSI JSON file if the volume was already mounted during subsequent errors. ([#131311](https://github.com/kubernetes/kubernetes/pull/131311), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131311", - "pr_number": 131311, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "131318": { - "commit": "c96032addd81199453a815c85370d8930b2f1cd3", - "text": "`MultiCIDRServiceAllocator` was locked and enabled by default, `DisableAllocatorDualWrite` was enabled by default.", - "markdown": "`MultiCIDRServiceAllocator` was locked and enabled by default, `DisableAllocatorDualWrite` was enabled by default. ([#131318](https://github.com/kubernetes/kubernetes/pull/131318), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Network and Testing]", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131318", - "pr_number": 131318, - "areas": [ - "test", - "apiserver", - "conformance", - "code-generation" - ], - "kinds": [ - "documentation", - "cleanup", - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "etcd", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "131354": { - "commit": "354520cd9b8060a33f77bd62357e78f89358807a", - "text": "Corrected the documentation to clarify that `podSelector` is optional and described its default behavior.", - "markdown": "Corrected the documentation to clarify that `podSelector` is optional and described its default behavior. ([#131354](https://github.com/kubernetes/kubernetes/pull/131354), [@tomoish](https://github.com/tomoish))", - "author": "tomoish", - "author_url": "https://github.com/tomoish", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131354", - "pr_number": 131354, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "131406": { - "commit": "b837e345a974dd9f86d5619ce61b6df8f7421166", - "text": "Updated cri-tools to v1.33.0.", - "markdown": "Updated cri-tools to v1.33.0. ([#131406](https://github.com/kubernetes/kubernetes/pull/131406), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131406", - "pr_number": 131406, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ] - }, - "131408": { - "commit": "375f282985219f3c81ad7b75a716f9f435adc45f", - "text": "Stopped logging error events when waiting for expansion on the kubelet.", - "markdown": "Stopped logging error events when waiting for expansion on the kubelet. ([#131408](https://github.com/kubernetes/kubernetes/pull/131408), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131408", - "pr_number": 131408, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "131418": { - "commit": "5ec7b65318afb91b8d77f3f262ee0b93dcd84b5f", - "text": "Checked for newer resize fields when deciding the recovery feature status in the kubelet.", - "markdown": "Checked for newer resize fields when deciding the recovery feature status in the kubelet. ([#131418](https://github.com/kubernetes/kubernetes/pull/131418), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131418", - "pr_number": 131418, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "131425": { - "commit": "71e7f9eba731ae0cdc7ec10bb12a17ebc10ca5ba", - "text": "kube-scheduler: Removed the deprecated scheduler_scheduler_cache_size metric in favor of scheduler_cache_size.", - "markdown": "Kube-scheduler: Removed the deprecated scheduler_scheduler_cache_size metric in favor of scheduler_cache_size. ([#131425](https://github.com/kubernetes/kubernetes/pull/131425), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131425", - "pr_number": 131425, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "131444": { - "commit": "e9379e92db19d826d46edd502dd3a61609b32c52", - "text": "Bumped the cel-go dependency to v0.25.0. The changeset is available at: https://github.com/google/cel-go/compare/v0.23.2...v0.25.0.", - "markdown": "Bumped the cel-go dependency to v0.25.0. The changeset is available at: https://github.com/google/cel-go/compare/v0.23.2...v0.25.0. ([#131444](https://github.com/kubernetes/kubernetes/pull/131444), [@erdii](https://github.com/erdii)) [SIG API Machinery, Auth, Cloud Provider and Node]", - "author": "erdii", - "author_url": "https://github.com/erdii", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131444", - "pr_number": 131444, - "areas": [ - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "131459": { - "commit": "3a8af5a174a3024d7c540b1f6e08aff21b2d0c83", - "text": "hack/update-codegen.sh now automatically ensured goimports and protoc.", - "markdown": "Hack/update-codegen.sh now automatically ensured goimports and protoc. ([#131459](https://github.com/kubernetes/kubernetes/pull/131459), [@BenTheElder](https://github.com/BenTheElder))", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131459", - "pr_number": 131459, - "areas": [ - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "131463": { - "commit": "174c0fcc7b00a0dc82674031043d8ba4ba1c130a", - "text": "The deprecated `LegacySidecarContainers` feature gate was completely removed.", - "markdown": "The deprecated `LegacySidecarContainers` feature gate was completely removed. ([#131463](https://github.com/kubernetes/kubernetes/pull/131463), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing]", - "author": "gjkim42", - "author_url": "https://github.com/gjkim42", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131463", - "pr_number": 131463, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "131491": { - "commit": "a19c0ad5533d1503825f22a3725de07cb81fced1", - "text": "Added Traffic Distribution field to `kubectl describe service` output", - "markdown": "Added Traffic Distribution field to `kubectl describe service` output ([#131491](https://github.com/kubernetes/kubernetes/pull/131491), [@tchap](https://github.com/tchap)) [SIG CLI]", - "author": "tchap", - "author_url": "https://github.com/tchap", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131491", - "pr_number": 131491, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true - }, - "131493": { - "commit": "a688664afaaeb72487ec9a3f388047e6f48288ef", - "text": "kube-apiserver: Fixed OIDC discovery document publishing when external service account token signing was enabled.", - "markdown": "Kube-apiserver: Fixed OIDC discovery document publishing when external service account token signing was enabled. ([#131493](https://github.com/kubernetes/kubernetes/pull/131493), [@hoskeri](https://github.com/hoskeri)) [SIG API Machinery, Auth and Testing]", - "author": "hoskeri", - "author_url": "https://github.com/hoskeri", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131493", - "pr_number": 131493, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "131495": { - "commit": "1f056f8f882b1e6b48ece41a4658c1ad0b7b5eb8", - "text": "kubelet: Fixed a bug that caused an unexpected `NodeResizeError` condition to appear in the PVC status when the CSI driver did not support node volume expansion and the PVC had the `ReadWriteMany` access mode.", - "markdown": "Kubelet: Fixed a bug that caused an unexpected `NodeResizeError` condition to appear in the PVC status when the CSI driver did not support node volume expansion and the PVC had the `ReadWriteMany` access mode. ([#131495](https://github.com/kubernetes/kubernetes/pull/131495), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1790", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131495", - "pr_number": 131495, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "131501": { - "commit": "8bfd79535292677a513c4208c689265f30b1f1a6", - "text": "Updated etcd version to v3.6.0.", - "markdown": "Updated etcd version to v3.6.0. ([#131501](https://github.com/kubernetes/kubernetes/pull/131501), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]", - "author": "joshjms", - "author_url": "https://github.com/joshjms", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131501", - "pr_number": 131501, - "areas": [ - "test", - "provider/gcp", - "kubeadm" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "cluster-lifecycle", - "etcd", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "131506": { - "commit": "090ebab0d7c46ac58128f3590a3eb04a887e1b42", - "text": "Fixed an issue where Windows kube-proxy’s `ModifyLoadBalancer` API updates did not match the HNS state in version 15.4. Support for `ModifyLoadBalancer` policy began with Kubernetes 1.31+.", - "markdown": "Fixed an issue where Windows kube-proxy’s `ModifyLoadBalancer` API updates did not match the HNS state in version 15.4. Support for `ModifyLoadBalancer` policy began with Kubernetes 1.31+. ([#131506](https://github.com/kubernetes/kubernetes/pull/131506), [@princepereira](https://github.com/princepereira))", - "author": "princepereira", - "author_url": "https://github.com/princepereira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131506", - "pr_number": 131506, - "areas": [ - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "windows" - ], - "is_mapped": true - }, - "131509": { - "commit": "da24cfe98b3a4528770a0a5d9839b2172c266691", - "text": "kube-apiserver: The --service-account-signing-endpoint flag now only validates the format of abstract socket names", - "markdown": "Kube-apiserver: The --service-account-signing-endpoint flag now only validates the format of abstract socket names ([#131509](https://github.com/kubernetes/kubernetes/pull/131509), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Auth]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131509", - "pr_number": 131509, - "kinds": [ - "cleanup", - "failing-test" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "duplicate_kind": true - }, - "131514": { - "commit": "3b1178aedd782c5c6108590f79a806edb93ae684", - "text": "Promoted the feature `OrderedNamespaceDeletion` to GA.", - "markdown": "Promoted the feature `OrderedNamespaceDeletion` to GA. ([#131514](https://github.com/kubernetes/kubernetes/pull/131514), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131514", - "pr_number": 131514, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "131525": { - "commit": "2cc53d78b7638e90a6f3a73cdb63c61e3e91303b", - "text": "kube-apiserver: Defaulted empty `spec.jobTemplate.spec.podFailurePolicy.rules[*].onPodConditions[*].status` fields for CronJob objects as documented, avoiding validation failures during write requests.", - "markdown": "Kube-apiserver: Defaulted empty `spec.jobTemplate.spec.podFailurePolicy.rules[*].onPodConditions[*].status` fields for CronJob objects as documented, avoiding validation failures during write requests. ([#131525](https://github.com/kubernetes/kubernetes/pull/131525), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3329", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131525", - "pr_number": 131525, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "131549": { - "commit": "7912e5fd677226e4ab18a1940aa8c91bac816997", - "text": "Promoted feature-gate `VolumeAttributesClass` to GA\n- Promoted API `VolumeAttributesClass` and `VolumeAttributesClassList` to `storage.k8s.io/v1`.", - "markdown": "Promoted feature-gate `VolumeAttributesClass` to GA\n - Promoted API `VolumeAttributesClass` and `VolumeAttributesClassList` to `storage.k8s.io/v1`. ([#131549](https://github.com/kubernetes/kubernetes/pull/131549), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Auth, CLI, Etcd, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3751", - "type": "KEP" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131549", - "pr_number": 131549, - "areas": [ - "test", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "cli", - "etcd", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "131559": { - "commit": "3f808638076e9e2be5f53a4aec9d2d5d00b997e1", - "text": "Fixed a bug in CEL's common.UnstructuredToVal where `==` evaluates to false for identical objects when a field is present but the value is null. This bug does not impact the Kubernetes API.", - "markdown": "Fixed a bug in CEL's common.UnstructuredToVal where `==` evaluates to false for identical objects when a field is present but the value is null. This bug does not impact the Kubernetes API. ([#131559](https://github.com/kubernetes/kubernetes/pull/131559), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131559", - "pr_number": 131559, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ] - }, - "131562": { - "commit": "2f94274c88280b3b1b10a05d06f3a00964db5009", - "text": "Fixed some missing white spaces in the flag descriptions and logs.", - "markdown": "Fixed some missing white spaces in the flag descriptions and logs. ([#131562](https://github.com/kubernetes/kubernetes/pull/131562), [@logica0419](https://github.com/logica0419)) [SIG Network]", - "author": "logica0419", - "author_url": "https://github.com/logica0419", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131562", - "pr_number": 131562, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ] - }, - "131563": { - "commit": "4a5aa2ffc248e3157917033aafc5418f2910691e", - "text": "kubeadm: Fixed missing space when printing the warning about pause image mismatch.", - "markdown": "Kubeadm: Fixed missing space when printing the warning about pause image mismatch. ([#131563](https://github.com/kubernetes/kubernetes/pull/131563), [@logica0419](https://github.com/logica0419))", - "author": "logica0419", - "author_url": "https://github.com/logica0419", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131563", - "pr_number": 131563, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "131568": { - "commit": "2ac0bdf360cf2529a3675c7012d0bf415e1051f3", - "text": "Disabled reading of disk geometry before calling expansion for ext and xfs filesystems.", - "markdown": "Disabled reading of disk geometry before calling expansion for ext and xfs filesystems. ([#131568](https://github.com/kubernetes/kubernetes/pull/131568), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131568", - "pr_number": 131568, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "131574": { - "commit": "43a5c18ebacf57b23f8431f270bef6c361631f20", - "text": "Added support for CEL expressions with escaped names in the structured authentication config. Using `[...]` to access claims or user data was recommended when names contained characters that would otherwise need escaping. CEL optionals with `?` could be used where has was not applicable — for example, `claims[?\"kubernetes.io\"]` or `user.extra[?\"domain.io/foo\"]`.", - "markdown": "Added support for CEL expressions with escaped names in the structured authentication config. Using `[...]` to access claims or user data was recommended when names contained characters that would otherwise need escaping. CEL optionals with `?` could be used where has was not applicable — for example, `claims[?\"kubernetes.io\"]` or `user.extra[?\"domain.io/foo\"]`. ([#131574](https://github.com/kubernetes/kubernetes/pull/131574), [@enj](https://github.com/enj)) [SIG API Machinery and Auth]", - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131574", - "pr_number": 131574, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "131586": { - "commit": "893486dfd16ff8c628c6f33bb2bea869ad86115f", - "text": "Enabled completion for aliases defined in `kubectlrc`.", - "markdown": "Enabled completion for aliases defined in `kubectlrc`. ([#131586](https://github.com/kubernetes/kubernetes/pull/131586), [@ardaguclu](https://github.com/ardaguclu))", - "documentation": [ - { - "description": "-[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3104-introduce-kuberc", - "type": "KEP" - } - ], - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131586", - "pr_number": 131586, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "131587": { - "commit": "72ffb70d3ec0fff9b13b7871873cd16a25e27034", - "text": "kubeadm: Made the coredns deployment manifest use named ports consistently for the liveness and readiness probes.", - "markdown": "Kubeadm: Made the coredns deployment manifest use named ports consistently for the liveness and readiness probes. ([#131587](https://github.com/kubernetes/kubernetes/pull/131587), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131587", - "pr_number": 131587, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "131602": { - "commit": "5bb3aa3604c97feb81372a410bed124222056cbb", - "text": "Updated CNI plugins to v1.7.1", - "markdown": "Updated CNI plugins to v1.7.1 ([#131602](https://github.com/kubernetes/kubernetes/pull/131602), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Cloud Provider, Node and Testing]", - "author": "adrianmoisey", - "author_url": "https://github.com/adrianmoisey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131602", - "pr_number": 131602, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "node", - "testing" - ], - "duplicate": true - }, - "131623": { - "commit": "74da30e1df608e890853c1fef03adc7594ae7181", - "text": "Improved the error message shown when a Pod using user namespaces was created on a runtime that did not support user namespaces.", - "markdown": "Improved the error message shown when a Pod using user namespaces was created on a runtime that did not support user namespaces. ([#131623](https://github.com/kubernetes/kubernetes/pull/131623), [@rata](https://github.com/rata))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/49b27734783c8cc56bd2728a7b84905abf4b8d54/keps/sig-node/127-user-namespaces/README.md", - "type": "KEP" - } - ], - "author": "rata", - "author_url": "https://github.com/rata", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131623", - "pr_number": 131623, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "131627": { - "commit": "3aa66a2ba01529a3c5754cab222693d80241d5ac", - "text": "Changed apiserver to treat failures decoding a mutating webhook patch as failures to call the webhook so they trigger the webhook failurePolicy and count against metrics like `webhook_fail_open_count`", - "markdown": "Changed apiserver to treat failures decoding a mutating webhook patch as failures to call the webhook so they trigger the webhook failurePolicy and count against metrics like `webhook_fail_open_count` ([#131627](https://github.com/kubernetes/kubernetes/pull/131627), [@dims](https://github.com/dims)) [SIG API Machinery]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131627", - "pr_number": 131627, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ] - }, - "131632": { - "commit": "3eebe671eaccc63062e002ddc09fa24623ac30e6", - "text": "LeaseLocks could now have custom labels that different holders would overwrite when they became the holder of the underlying lease.", - "markdown": "LeaseLocks could now have custom labels that different holders would overwrite when they became the holder of the underlying lease. ([#131632](https://github.com/kubernetes/kubernetes/pull/131632), [@DerekFrank](https://github.com/DerekFrank))", - "author": "DerekFrank", - "author_url": "https://github.com/DerekFrank", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131632", - "pr_number": 131632, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "131641": { - "commit": "ee012e883f863a141cab35e5a76cbe5d378ad36f", - "text": "The new `dra_resource_claims_in_use` kubelet metrics reported active `ResourceClaims`, overall and by driver.", - "markdown": "The new `dra_resource_claims_in_use` kubelet metrics reported active `ResourceClaims`, overall and by driver. ([#131641](https://github.com/kubernetes/kubernetes/pull/131641), [@pohly](https://github.com/pohly)) [SIG Architecture, Instrumentation, Node and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131641", - "pr_number": 131641, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "architecture", - "instrumentation", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "131647": { - "commit": "a02806d8cd5efbedb886285a314bd569b2fc828f", - "text": "kubeadm: Exposed only the non-deprecated klog flags (-v and -vmodule), in line with KEP https://features.k8s.io/2845.", - "markdown": "Kubeadm: Exposed only the non-deprecated klog flags (-v and -vmodule), in line with KEP https://features.k8s.io/2845. ([#131647](https://github.com/kubernetes/kubernetes/pull/131647), [@carsontham](https://github.com/carsontham))", - "author": "carsontham", - "author_url": "https://github.com/carsontham", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131647", - "pr_number": 131647, - "areas": [ - "kubeadm" - ], - "kinds": [ - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "131654": { - "commit": "fa8c5acf5e42891d543c2933e8f3149798ca76be", - "text": "Graduated configurable endpoints for anonymous authentication using the authentication configuration file to stable.", - "markdown": "Graduated configurable endpoints for anonymous authentication using the authentication configuration file to stable. ([#131654](https://github.com/kubernetes/kubernetes/pull/131654), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG API Machinery and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4633", - "type": "KEP" - } - ], - "author": "vinayakankugoyal", - "author_url": "https://github.com/vinayakankugoyal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131654", - "pr_number": 131654, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "131658": { - "commit": "cd3b5c57668a0a6e32057ef82dfab40e9b0bec5b", - "text": "kubelet: Extended the `--image-credential-provider-config` flag to accept a directory path in addition to a single file. When a directory was specified, all .json, .yaml, and .yml files in that directory were loaded and merged in lexicographical order.", - "markdown": "Kubelet: Extended the `--image-credential-provider-config` flag to accept a directory path in addition to a single file. When a directory was specified, all .json, .yaml, and .yml files in that directory were loaded and merged in lexicographical order. ([#131658](https://github.com/kubernetes/kubernetes/pull/131658), [@dims](https://github.com/dims)) [SIG Auth and Node]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131658", - "pr_number": 131658, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "131660": { - "commit": "ff74d46bf074476d798653584657ef974306053f", - "text": "Fixed incorrect behavior for AllocationMode: All in ResourceClaim when used in subrequests.", - "markdown": "Fixed incorrect behavior for AllocationMode: All in ResourceClaim when used in subrequests. ([#131660](https://github.com/kubernetes/kubernetes/pull/131660), [@mortent](https://github.com/mortent)) [SIG Node]", - "author": "mortent", - "author_url": "https://github.com/mortent", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131660", - "pr_number": 131660, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "131662": { - "commit": "2342c0912a947d0a1fc28918eb2f52f0146b42d5", - "text": "kube-scheduler: in Kubernetes 1.33, the number of devices that can be allocated per ResourceClaim was accidentally reduced to 16. Now the supported number of devices per ResourceClaim is 32 again.", - "markdown": "Kube-scheduler: in Kubernetes 1.33, the number of devices that can be allocated per ResourceClaim was accidentally reduced to 16. Now the supported number of devices per ResourceClaim is 32 again. ([#131662](https://github.com/kubernetes/kubernetes/pull/131662), [@mortent](https://github.com/mortent)) [SIG Node]", - "author": "mortent", - "author_url": "https://github.com/mortent", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131662", - "pr_number": 131662, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "131664": { - "commit": "144926558984ae41a7328d53bd9fc8602328f10e", - "text": "The validation of `replicas` field in the ReplicationController `/scale` subresource has been migrated to declarative validation.\nIf the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.\nIf the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields.", - "markdown": "The validation of `replicas` field in the ReplicationController `/scale` subresource has been migrated to declarative validation.\n If the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.\n If the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields. ([#131664](https://github.com/kubernetes/kubernetes/pull/131664), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Apps]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131664", - "pr_number": 131664, - "areas": [ - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "131677": { - "commit": "707efc4e51447c4da032c47adb094c8e1a350abe", - "text": "kubeadm: Added support for ECDSA-P384 as an encryption algorithm type in v1beta4.", - "markdown": "Kubeadm: Added support for ECDSA-P384 as an encryption algorithm type in v1beta4. ([#131677](https://github.com/kubernetes/kubernetes/pull/131677), [@lalitc375](https://github.com/lalitc375))", - "author": "lalitc375", - "author_url": "https://github.com/lalitc375", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131677", - "pr_number": 131677, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "131741": { - "commit": "c40db09a0a2bf8df02be93d7da1912cfa7cbe333", - "text": "Deprecated the `preferences` field in kubeconfig in favor of `kuberc`.", - "markdown": "Deprecated the `preferences` field in kubeconfig in favor of `kuberc`. ([#131741](https://github.com/kubernetes/kubernetes/pull/131741), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI, Cluster Lifecycle and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3104", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131741", - "pr_number": 131741, - "areas": [ - "test", - "kubectl", - "kubeadm" - ], - "kinds": [ - "documentation", - "cleanup", - "api-change", - "feature", - "deprecation" - ], - "sigs": [ - "api-machinery", - "cli", - "cluster-lifecycle", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "131752": { - "commit": "6da56bd4b782658a4060f65c24df5830ec01c6c1", - "text": "kube-apiserver: The AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1`.", - "markdown": "Kube-apiserver: The AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1`. ([#131752](https://github.com/kubernetes/kubernetes/pull/131752), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131752", - "pr_number": 131752, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "131768": { - "commit": "f6530285a85d6f4280711301613a7d3215a25818", - "text": "Promoted the `apiserver_authorization_config_controller_automatic_reloads_total` and `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` metrics to BETA.", - "markdown": "Promoted the `apiserver_authorization_config_controller_automatic_reloads_total` and `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` metrics to BETA. ([#131768](https://github.com/kubernetes/kubernetes/pull/131768), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Instrumentation]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3221-structured-authorization-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131768", - "pr_number": 131768, - "areas": [ - "apiserver", - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "131790": { - "commit": "a9841ca3b31886b51ba14b56ea88610709c752f1", - "text": "Added `podSpec` validation for creating `StatefulSet`.", - "markdown": "Added `podSpec` validation for creating `StatefulSet`. ([#131790](https://github.com/kubernetes/kubernetes/pull/131790), [@chengjoey](https://github.com/chengjoey)) [SIG Apps, Etcd and Testing]", - "author": "chengjoey", - "author_url": "https://github.com/chengjoey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131790", - "pr_number": 131790, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "etcd", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "131798": { - "commit": "d70229fac7c2aec4e6a69e0783fa0860a90e1144", - "text": "Promoted the `apiserver_authentication_config_controller_automatic_reloads_total` and `apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds` metrics to BETA.", - "markdown": "Promoted the `apiserver_authentication_config_controller_automatic_reloads_total` and `apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds` metrics to BETA. ([#131798](https://github.com/kubernetes/kubernetes/pull/131798), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Instrumentation]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131798", - "pr_number": 131798, - "areas": [ - "apiserver", - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "131799": { - "commit": "3f0a1c6c7f02f33649e58996408b1501fce3c0ee", - "text": "Ensured objects are transformed prior to storage in `SharedInformers` if a transformer is provided and `WatchList` is activated.", - "markdown": "Ensured objects are transformed prior to storage in `SharedInformers` if a transformer is provided and `WatchList` is activated. ([#131799](https://github.com/kubernetes/kubernetes/pull/131799), [@valerian-roche](https://github.com/valerian-roche))", - "author": "valerian-roche", - "author_url": "https://github.com/valerian-roche", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131799", - "pr_number": 131799, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "131818": { - "commit": "fe5b9896ae8601b044a4e47901a844c93070df3b", - "text": "kubectl: Graduated kuberc support to beta. A `kuberc` configuration file provided a mechanism for customizing `kubectl` behavior (distinct from kubeconfig, which configures cluster access across different clients).", - "markdown": "Kubectl: Graduated kuberc support to beta. A `kuberc` configuration file provided a mechanism for customizing `kubectl` behavior (distinct from kubeconfig, which configures cluster access across different clients). ([#131818](https://github.com/kubernetes/kubernetes/pull/131818), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3104-introduce-kuberc", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131818", - "pr_number": 131818, - "areas": [ - "test", - "kubectl", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "131822": { - "commit": "089849ac22f4d67ac0a8651d1a8e5fda9d7752e4", - "text": "Fixed ReplicationController reconciliation when the `DeploymentReplicaSetTerminatingReplicas` feature gate was enabled.", - "markdown": "Fixed ReplicationController reconciliation when the `DeploymentReplicaSetTerminatingReplicas` feature gate was enabled. ([#131822](https://github.com/kubernetes/kubernetes/pull/131822), [@atiratree](https://github.com/atiratree))", - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131822", - "pr_number": 131822, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "131837": { - "commit": "b7c9333f5c050af2d48b08b369681ec863e5084c", - "text": "Static pods that reference API objects are now denied admission by the kubelet so that static pods would not be silently running even after the mirror pod creation fails.\nACTION REQUIRED: Prior to upgrade, ensure static pods are not referencing API objects such as ServiceAccounts, ConfigMaps, Secrets, ResourceClaims, CSIDrivers, PersistentVolumeClaims, or ClusterTrustBundles.", - "markdown": "Static pods that reference API objects are now denied admission by the kubelet so that static pods would not be silently running even after the mirror pod creation fails.\n ACTION REQUIRED: Prior to upgrade, ensure static pods are not referencing API objects such as ServiceAccounts, ConfigMaps, Secrets, ResourceClaims, CSIDrivers, PersistentVolumeClaims, or ClusterTrustBundles. ([#131837](https://github.com/kubernetes/kubernetes/pull/131837), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Auth, Node and Testing]", - "author": "sreeram-venkitesh", - "author_url": "https://github.com/sreeram-venkitesh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131837", - "pr_number": 131837, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "action_required": true, - "is_mapped": true - }, - "131842": { - "commit": "7f74d2b4071d52a8a185f13781c7cc5c07b8b42f", - "text": "Added alpha metrics for compatibility versioning", - "markdown": "Added alpha metrics for compatibility versioning ([#131842](https://github.com/kubernetes/kubernetes/pull/131842), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Architecture, Instrumentation and Scheduling]", - "author": "michaelasp", - "author_url": "https://github.com/michaelasp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131842", - "pr_number": 131842, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "instrumentation", - "scheduling" - ], - "feature": true, - "duplicate": true - }, - "131844": { - "commit": "889cd833a2d77c32aaffaf03c0ba58b471c63309", - "text": "kubelet: Closed a loophole that allowed static Pods to reference arbitrary ResourceClaims. Even though these Pods failed to run due to a sanity check, such references are now explicitly disallowed.", - "markdown": "Kubelet: Closed a loophole that allowed static Pods to reference arbitrary ResourceClaims. Even though these Pods failed to run due to a sanity check, such references are now explicitly disallowed. ([#131844](https://github.com/kubernetes/kubernetes/pull/131844), [@pohly](https://github.com/pohly)) [SIG Apps, Auth and Node]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131844", - "pr_number": 131844, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "auth", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "131845": { - "commit": "b5608aea94cfb54fea3a63e1d74235759d036c51", - "text": "For metrics `apiserver_cache_list_fetched_objects_total`, `apiserver_cache_list_returned_objects_total`, `apiserver_cache_list_total` replace `resource_prefix` label with API `group` and `resource` labels.\nFor metrics `etcd_request_duration_seconds`, `etcd_requests_total` and `etcd_request_errors_total` replace `type` label with API `resource` and `group` label.\nFor metric `apiserver_selfrequest_total` add a API `group` label.\nFor metrics `apiserver_watch_events_sizes` and `apiserver_watch_events_total` replace API `kind` label with `resource` label.\nFor metrics `apiserver_request_body_size_bytes`, `apiserver_storage_events_received_total`, `apiserver_storage_list_evaluated_objects_total`, `apiserver_storage_list_fetched_objects_total`, `apiserver_storage_list_returned_objects_total`, `apiserver_storage_list_total`, `apiserver_watch_cache_events_dispatched_total`, `apiserver_watch_cache_events_received_total`, `apiserver_watch_cache_initializations_total`, `apiserver_watch_cache_resource_version`, `watch_cache_capacity`, `apiserver_init_events_total`, `apiserver_terminated_watchers_total`, `watch_cache_capacity_increase_total`, `watch_cache_capacity_decrease_total`, `apiserver_watch_cache_read_wait_seconds`, `apiserver_watch_cache_consistent_read_total`, `apiserver_storage_consistency_checks_total`, `etcd_bookmark_counts`, `storage_decode_errors_total` extract the API group from `resource` label and put it in new `group` label.", - "markdown": "For metrics `apiserver_cache_list_fetched_objects_total`, `apiserver_cache_list_returned_objects_total`, `apiserver_cache_list_total` replace `resource_prefix` label with API `group` and `resource` labels.\n For metrics `etcd_request_duration_seconds`, `etcd_requests_total` and `etcd_request_errors_total` replace `type` label with API `resource` and `group` label.\n For metric `apiserver_selfrequest_total` add a API `group` label.\n For metrics `apiserver_watch_events_sizes` and `apiserver_watch_events_total` replace API `kind` label with `resource` label.\n For metrics `apiserver_request_body_size_bytes`, `apiserver_storage_events_received_total`, `apiserver_storage_list_evaluated_objects_total`, `apiserver_storage_list_fetched_objects_total`, `apiserver_storage_list_returned_objects_total`, `apiserver_storage_list_total`, `apiserver_watch_cache_events_dispatched_total`, `apiserver_watch_cache_events_received_total`, `apiserver_watch_cache_initializations_total`, `apiserver_watch_cache_resource_version`, `watch_cache_capacity`, `apiserver_init_events_total`, `apiserver_terminated_watchers_total`, `watch_cache_capacity_increase_total`, `watch_cache_capacity_decrease_total`, `apiserver_watch_cache_read_wait_seconds`, `apiserver_watch_cache_consistent_read_total`, `apiserver_storage_consistency_checks_total`, `etcd_bookmark_counts`, `storage_decode_errors_total` extract the API group from `resource` label and put it in new `group` label. ([#131845](https://github.com/kubernetes/kubernetes/pull/131845), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd, Instrumentation and Testing]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131845", - "pr_number": 131845, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "etcd", - "instrumentation", - "testing" - ], - "duplicate": true, - "action_required": true - }, - "131868": { - "commit": "9959b56b8d34a095e6c7c428595e8902542b4005", - "text": "Stopped expanding the volume on the node if controller-side expansion was already completed.", - "markdown": "Stopped expanding the volume on the node if controller-side expansion was already completed. ([#131868](https://github.com/kubernetes/kubernetes/pull/131868), [@gnufied](https://github.com/gnufied))", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131868", - "pr_number": 131868, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "131873": { - "commit": "988cf21f0975cf95444a619481c13d2503d8ec6a", - "text": "Fixed a bug that caused duplicate validation when updating a ReplicaSet.", - "markdown": "Fixed a bug that caused duplicate validation when updating a ReplicaSet. ([#131873](https://github.com/kubernetes/kubernetes/pull/131873), [@gavinkflam](https://github.com/gavinkflam)) [SIG Apps]", - "author": "gavinkflam", - "author_url": "https://github.com/gavinkflam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131873", - "pr_number": 131873, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "131887": { - "commit": "e0859f91b7d269bb7e2f43e23d202ccccaf34c0c", - "text": "Types: CycleState, StateData, StateKey and ErrNotFound moved from pkg/scheduler/framework to k8s.io/kube-scheduler/framework.\nType CycleState that was passed to each plugin in scheduler framework was changed to the new interface CycleState (in k8s.io/kube-scheduler/framework).", - "markdown": "Types: CycleState, StateData, StateKey and ErrNotFound moved from pkg/scheduler/framework to k8s.io/kube-scheduler/framework.\n Type CycleState that was passed to each plugin in scheduler framework was changed to the new interface CycleState (in k8s.io/kube-scheduler/framework). ([#131887](https://github.com/kubernetes/kubernetes/pull/131887), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing]", - "author": "ania-borowiec", - "author_url": "https://github.com/ania-borowiec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131887", - "pr_number": 131887, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "scheduling", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "131907": { - "commit": "b65f712d2cb70a358e9c77d02b21874c14d3d1ba", - "text": "Stopped expanding PVCs annotated with node-expand-not-required.", - "markdown": "Stopped expanding PVCs annotated with node-expand-not-required. ([#131907](https://github.com/kubernetes/kubernetes/pull/131907), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Etcd, Node, Storage and Testing]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131907", - "pr_number": 131907, - "areas": [ - "test", - "kubelet", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "etcd", - "node", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "131916": { - "commit": "5596cc64c2a1b6a2d0b44a9b7d1d5c5be9b9c8c9", - "text": "kube-apiserver: Promoted the `StructuredAuthenticationConfiguration` feature gate to GA.", - "markdown": "Kube-apiserver: Promoted the `StructuredAuthenticationConfiguration` feature gate to GA. ([#131916](https://github.com/kubernetes/kubernetes/pull/131916), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - }, - { - "description": "[Other doc]", - "url": "https://kubernetes.io/docs/reference/access-authn-authz/authentication/#using-authentication-configuration", - "type": "official" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131916", - "pr_number": 131916, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "131919": { - "commit": "0405568a53ae811823a3526fae830a4913b355f3", - "text": "kubeadm: Switched the validation check for Linux kernel version to throw warnings instead of errors.", - "markdown": "Kubeadm: Switched the validation check for Linux kernel version to throw warnings instead of errors. ([#131919](https://github.com/kubernetes/kubernetes/pull/131919), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node]", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131919", - "pr_number": 131919, - "areas": [ - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "131934": { - "commit": "3044a4ce87abae50d8bf9ef77554fa16f2be2f12", - "text": "Built Kubernetes using Go 1.24.3.", - "markdown": "Built Kubernetes using Go 1.24.3. ([#131934](https://github.com/kubernetes/kubernetes/pull/131934), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131934", - "pr_number": 131934, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "131961": { - "commit": "7f139457c16c90bdcad1d1bc60d598f42ef04c1a", - "text": "kube-proxy: Removed the iptables CLI wait interval flag.", - "markdown": "Kube-proxy: Removed the iptables CLI wait interval flag. ([#131961](https://github.com/kubernetes/kubernetes/pull/131961), [@cyclinder](https://github.com/cyclinder))", - "author": "cyclinder", - "author_url": "https://github.com/cyclinder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131961", - "pr_number": 131961, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "131962": { - "commit": "b2dfba4151b859c31a27fe31f8703f9b2b758270", - "text": "The shorthand for --output flag in kubectl explain was accidentally deleted, but has been added back.", - "markdown": "The shorthand for --output flag in kubectl explain was accidentally deleted, but has been added back. ([#131962](https://github.com/kubernetes/kubernetes/pull/131962), [@superbrothers](https://github.com/superbrothers)) [SIG CLI]", - "author": "superbrothers", - "author_url": "https://github.com/superbrothers", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131962", - "pr_number": 131962, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ] - }, - "131965": { - "commit": "dae746b59d390c304cc2019d8840f99872a5723a", - "text": "Skipped pod backoff entirely when the `PodMaxBackoffDuration` kube-scheduler option was set to zero and the `SchedulerPopFromBackoffQ` feature gate was enabled.", - "markdown": "Skipped pod backoff entirely when the `PodMaxBackoffDuration` kube-scheduler option was set to zero and the `SchedulerPopFromBackoffQ` feature gate was enabled. ([#131965](https://github.com/kubernetes/kubernetes/pull/131965), [@macsko](https://github.com/macsko))", - "author": "macsko", - "author_url": "https://github.com/macsko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131965", - "pr_number": 131965, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "131968": { - "commit": "4832b57e48b98af0b0d558fa9810dc77b906ea62", - "text": "DRA kubelet: Simplified recovery from mistakes like scheduling a Pod onto a node where the required driver was not running, as the kubelet no longer unnecessarily blocked Pod deletion.", - "markdown": "DRA kubelet: Simplified recovery from mistakes like scheduling a Pod onto a node where the required driver was not running, as the kubelet no longer unnecessarily blocked Pod deletion. ([#131968](https://github.com/kubernetes/kubernetes/pull/131968), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131968", - "pr_number": 131968, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "131973": { - "commit": "2824e598b7e90a187c45d556ae5e39644ca40819", - "text": "Graduated scheduler `QueueingHint` support to GA (general availability)", - "markdown": "Graduated scheduler `QueueingHint` support to GA (general availability) ([#131973](https://github.com/kubernetes/kubernetes/pull/131973), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4247", - "type": "KEP" - } - ], - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131973", - "pr_number": 131973, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true - }, - "131979": { - "commit": "7f50c56b1aee651924f39317329d33977f3c736a", - "text": "Graduated `ResilientWatchCacheInitialization` to GA.", - "markdown": "Graduated `ResilientWatchCacheInitialization` to GA. ([#131979](https://github.com/kubernetes/kubernetes/pull/131979), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131979", - "pr_number": 131979, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "131981": { - "commit": "c1ed20c4ff181e4b98a1c508bf63ef6002ace8e9", - "text": "kubeadm: Graduated the `NodeLocalCRISocket` feature gate to beta and enabed it by default. When its enabled, kubeadm will:\n 1. Generate a `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in per-node kubelet configurations.\n 2. Remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from nodes during upgrade operations.\n 3. Remove the `--container-runtime-endpoint` flag from the `/var/lib/kubelet/kubeadm-flags.env` file during upgrades.", - "markdown": "Kubeadm: Graduated the `NodeLocalCRISocket` feature gate to beta and enabed it by default. When its enabled, kubeadm will:\n 1. Generate a `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in per-node kubelet configurations.\n 2. Remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from nodes during upgrade operations.\n 3. Remove the `--container-runtime-endpoint` flag from the `/var/lib/kubelet/kubeadm-flags.env` file during upgrades. ([#131981](https://github.com/kubernetes/kubernetes/pull/131981), [@HirazawaUi](https://github.com/HirazawaUi))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/4656-add-kubelet-instance-configuration", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131981", - "pr_number": 131981, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "131989": { - "commit": "963a9acb6d88cc37733140d140bffa8966f4d90d", - "text": "`AppArmor` profiles specified in the Pod or container `SecurityContext` were no longer copied to deprecated `AppArmor` annotations (prefix `container.apparmor.security.beta.kubernetes.io/`). Anything that inspected the deprecated annotations must be migrated to use the `SecurityContext` fields instead.", - "markdown": "`AppArmor` profiles specified in the Pod or container `SecurityContext` were no longer copied to deprecated `AppArmor` annotations (prefix `container.apparmor.security.beta.kubernetes.io/`). Anything that inspected the deprecated annotations must be migrated to use the `SecurityContext` fields instead. ([#131989](https://github.com/kubernetes/kubernetes/pull/131989), [@tallclair](https://github.com/tallclair))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/24-apparmor/README.md#removing-annotation-support", - "type": "KEP" - } - ], - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131989", - "pr_number": 131989, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "action_required": true, - "is_mapped": true - }, - "131992": { - "commit": "6720f62d828efc7ca55647c42e98079baa74dbb2", - "text": "Deprecated `StreamingConnectionIdleTimeout` field of the kubelet config.", - "markdown": "Deprecated `StreamingConnectionIdleTimeout` field of the kubelet config. ([#131992](https://github.com/kubernetes/kubernetes/pull/131992), [@lalitc375](https://github.com/lalitc375))", - "author": "lalitc375", - "author_url": "https://github.com/lalitc375", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131992", - "pr_number": 131992, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "131996": { - "commit": "0731167a993018340e893b17ff08fd41d11d2e1f", - "text": "DRA: Starting with Kubernetes 1.34, the alpha-level `resource.k8s.io/admin-access` label has been updated to `resource.kubernetes.io/admin-access`. Admins using the alpha feature and updating from 1.33 can set both labels, upgrade, then remove `resource.k8s.io/admin-access` when no downgrade is going to happen anymore.", - "markdown": "DRA: Starting with Kubernetes 1.34, the alpha-level `resource.k8s.io/admin-access` label has been updated to `resource.kubernetes.io/admin-access`. Admins using the alpha feature and updating from 1.33 can set both labels, upgrade, then remove `resource.k8s.io/admin-access` when no downgrade is going to happen anymore. ([#131996](https://github.com/kubernetes/kubernetes/pull/131996), [@ritazh](https://github.com/ritazh)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5018", - "type": "KEP" - } - ], - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131996", - "pr_number": 131996, - "areas": [ - "test" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132000": { - "commit": "7e94ec9eacc2996e0e5b00af003276ae751915bc", - "text": "DRA API: resource.k8s.io/v1alpha3 now only contains DeviceTaintRule. All other types got removed because they became obsolete when introducing the v1beta1 API in 1.32.\nbefore updating a cluster where resourceclaims, resourceclaimtemplates, deviceclasses, or resourceslices might have been stored using Kubernetes \u003c 1.32, delete all of those resources before updating and recreate them as needed while running Kubernetes \u003e= 1.32.", - "markdown": "DRA API: resource.k8s.io/v1alpha3 now only contains DeviceTaintRule. All other types got removed because they became obsolete when introducing the v1beta1 API in 1.32.\n before updating a cluster where resourceclaims, resourceclaimtemplates, deviceclasses, or resourceslices might have been stored using Kubernetes \u003c 1.32, delete all of those resources before updating and recreate them as needed while running Kubernetes \u003e= 1.32. ([#132000](https://github.com/kubernetes/kubernetes/pull/132000), [@pohly](https://github.com/pohly)) [SIG Etcd, Node, Scheduling and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132000", - "pr_number": 132000, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "etcd", - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "132007": { - "commit": "146196c3171e796cb5f8bbf2ce9d59a4c1dce12d", - "text": "Updated the HPA controller so that it no longer emitted a `FailedRescale` event if a scale operation initially failed due to a conflict but succeeded after a retry; it now emitted a `SuccessfulRescale` event in this case. A `FailedRescale` event was still emitted if all retries were exhausted.", - "markdown": "Updated the HPA controller so that it no longer emitted a `FailedRescale` event if a scale operation initially failed due to a conflict but succeeded after a retry; it now emitted a `SuccessfulRescale` event in this case. A `FailedRescale` event was still emitted if all retries were exhausted. ([#132007](https://github.com/kubernetes/kubernetes/pull/132007), [@AumPatel1](https://github.com/AumPatel1)) [SIG Apps and Autoscaling]", - "author": "AumPatel1", - "author_url": "https://github.com/AumPatel1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132007", - "pr_number": 132007, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "autoscaling" - ], - "duplicate": true, - "is_mapped": true - }, - "132012": { - "commit": "3e5849972e619c58b3a8e8be2ca3ac35c4eb74da", - "text": "Bumped kube-dns to v1.26.4.", - "markdown": "Bumped kube-dns to v1.26.4. ([#132012](https://github.com/kubernetes/kubernetes/pull/132012), [@pacoxu](https://github.com/pacoxu))", - "author": "pacoxu", - "author_url": "https://github.com/pacoxu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132012", - "pr_number": 132012, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ], - "is_mapped": true - }, - "132019": { - "commit": "34df3b57763a63840c263e2f90b04890fb75a831", - "text": "Promoted two `EndpointSlice` tests to conformance to ensure that service proxy implementations rely on `EndpointSlices` instead of `Endpoints`.", - "markdown": "Promoted two `EndpointSlice` tests to conformance to ensure that service proxy implementations rely on `EndpointSlices` instead of `Endpoints`. ([#132019](https://github.com/kubernetes/kubernetes/pull/132019), [@danwinship](https://github.com/danwinship)) [SIG Architecture, Network and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4974-deprecate-endpoints", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132019", - "pr_number": 132019, - "areas": [ - "test", - "conformance" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture", - "network", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132028": { - "commit": "bf0be9fb568bca8a553e817e634d9114ea0a5230", - "text": "Modified the node-local `podresources` API endpoint to consider only active pods. Since this changes long-standing behavior, the `KubeletPodResourcesListUseActivePods` feature gate (enabled by default) can be disabled to restore the previous behavior. Users encountering regressions are encouraged to file an issue if they rely on the old behavior.", - "markdown": "Modified the node-local `podresources` API endpoint to consider only active pods. Since this changes long-standing behavior, the `KubeletPodResourcesListUseActivePods` feature gate (enabled by default) can be disabled to restore the previous behavior. Users encountering regressions are encouraged to file an issue if they rely on the old behavior. ([#132028](https://github.com/kubernetes/kubernetes/pull/132028), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132028", - "pr_number": 132028, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132033": { - "commit": "27ef1d4eed51d9502e28b1c09f61f9a5f7d24e53", - "text": "DRA: The scheduler plugin prevented abnormal filter runtimes by timing out after 10 seconds. This was configurable via the plugin configuration's `FilterTimeout`. Setting it to zero disabled the timeout and restored the behavior of Kubernetes \u003c= 1.33.", - "markdown": "DRA: The scheduler plugin prevented abnormal filter runtimes by timing out after 10 seconds. This was configurable via the plugin configuration's `FilterTimeout`. Setting it to zero disabled the timeout and restored the behavior of Kubernetes \u003c= 1.33. ([#132033](https://github.com/kubernetes/kubernetes/pull/132033), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132033", - "pr_number": 132033, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132034": { - "commit": "2d3ca18f645edd9065c32f07f02de2ba6273ab1d", - "text": "Updated `IsDNS1123SubdomainWithUnderscore` so that, when it returned an error, it also returned the correct regex information (`dns1123SubdomainFmtWithUnderscore`).", - "markdown": "Updated `IsDNS1123SubdomainWithUnderscore` so that, when it returned an error, it also returned the correct regex information (`dns1123SubdomainFmtWithUnderscore`). ([#132034](https://github.com/kubernetes/kubernetes/pull/132034), [@ChosenFoam](https://github.com/ChosenFoam))", - "author": "ChosenFoam", - "author_url": "https://github.com/ChosenFoam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132034", - "pr_number": 132034, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "132036": { - "commit": "849a82b727b1cc1e77b58149b3cacbfa5ada30fd", - "text": "Graduated relaxed DNS search string validation to GA. For the Pod API, `.spec.dnsConfig.searches`\nnow allows an underscore (`_`) where a dash (`-`) would be allowed, and it allows search strings be a single dot `.`.", - "markdown": "Graduated relaxed DNS search string validation to GA. For the Pod API, `.spec.dnsConfig.searches`\n now allows an underscore (`_`) where a dash (`-`) would be allowed, and it allows search strings be a single dot `.`. ([#132036](https://github.com/kubernetes/kubernetes/pull/132036), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Network and Testing]", - "author": "adrianmoisey", - "author_url": "https://github.com/adrianmoisey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132036", - "pr_number": 132036, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "testing" - ], - "feature": true, - "duplicate": true - }, - "132040": { - "commit": "2d1bb8dac1259f40e3de20d89147e9b2912e7eae", - "text": "Extended the NodePorts scheduling plugin to consider hostPorts used by restartable init containers.", - "markdown": "Extended the NodePorts scheduling plugin to consider hostPorts used by restartable init containers. ([#132040](https://github.com/kubernetes/kubernetes/pull/132040), [@avrittrohwer](https://github.com/avrittrohwer)) [SIG Scheduling and Testing]", - "author": "avrittrohwer", - "author_url": "https://github.com/avrittrohwer", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132040", - "pr_number": 132040, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132054": { - "commit": "4db16edaa8521f7dddfc964ae664d331f02ea50f", - "text": "Promoted the `RelaxedEnvironmentVariableValidation` feature gate to GA and locked it in the enabled state by default.", - "markdown": "Promoted the `RelaxedEnvironmentVariableValidation` feature gate to GA and locked it in the enabled state by default. ([#132054](https://github.com/kubernetes/kubernetes/pull/132054), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Apps, Architecture, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4369-allow-special-characters-environment-variable", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132054", - "pr_number": 132054, - "areas": [ - "test", - "kubelet", - "conformance", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "architecture", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132058": { - "commit": "dcefe0ef41113324a4e4e43606f868a0858c55a6", - "text": "DRA kubelet: Fixed the kubelet to also clean up `ResourceSlices` in some additional failure scenarios (driver was removed forcibly or crashed and did not restart).", - "markdown": "DRA kubelet: Fixed the kubelet to also clean up `ResourceSlices` in some additional failure scenarios (driver was removed forcibly or crashed and did not restart). ([#132058](https://github.com/kubernetes/kubernetes/pull/132058), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132058", - "pr_number": 132058, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132065": { - "commit": "1e59323e60e9565098dfc4014cbdfb0e67ab5e11", - "text": "Fixed the bug when swap related metrics were not available in `/metrics/resource` endpoint.", - "markdown": "Fixed the bug when swap related metrics were not available in `/metrics/resource` endpoint. ([#132065](https://github.com/kubernetes/kubernetes/pull/132065), [@yuanwang04](https://github.com/yuanwang04)) [SIG Node and Testing]", - "author": "yuanwang04", - "author_url": "https://github.com/yuanwang04", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132065", - "pr_number": 132065, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "132080": { - "commit": "08ee8bde594a42bc1a222c9fd25726352a1e6049", - "text": "kubeadm: Consistently prefixed errors with error: when printing them.", - "markdown": "Kubeadm: Consistently prefixed errors with error: when printing them. ([#132080](https://github.com/kubernetes/kubernetes/pull/132080), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132080", - "pr_number": 132080, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup", - "deprecation" - ], - "sigs": [ - "cluster-lifecycle" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "132083": { - "commit": "7d758620bce49260e7fd7db601a6c18042e4b039", - "text": "Removed general available feature-gate `DevicePluginCDIDevices`.", - "markdown": "Removed general available feature-gate `DevicePluginCDIDevices`. ([#132083](https://github.com/kubernetes/kubernetes/pull/132083), [@carlory](https://github.com/carlory)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "http://kep.k8s.io/4009", - "type": "external" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132083", - "pr_number": 132083, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132087": { - "commit": "2ee568260ff50064a5b7e46bc53d216edff2c640", - "text": "Types: Code and Status moved from pkg/scheduler/framework to staging repo.\nUsers should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`.", - "markdown": "Types: Code and Status moved from pkg/scheduler/framework to staging repo.\n Users should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`. ([#132087](https://github.com/kubernetes/kubernetes/pull/132087), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing]", - "author": "ania-borowiec", - "author_url": "https://github.com/ania-borowiec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132087", - "pr_number": 132087, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "scheduling", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132096": { - "commit": "54291a55c2bc121f2322560dd0badb893ac30c4d", - "text": "DRA kubelet- Updated logging to use `driverName` instead of `pluginName`, aligning with the rest of the Kubernetes components.", - "markdown": "DRA kubelet- Updated logging to use `driverName` instead of `pluginName`, aligning with the rest of the Kubernetes components. ([#132096](https://github.com/kubernetes/kubernetes/pull/132096), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132096", - "pr_number": 132096, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132106": { - "commit": "041974709cd8d259aec104f3f3a53d5df43d0268", - "text": "Allowed `pvc.spec.VolumeAttributesClassName` to change from non-nil to nil.", - "markdown": "Allowed `pvc.spec.VolumeAttributesClassName` to change from non-nil to nil. ([#132106](https://github.com/kubernetes/kubernetes/pull/132106), [@AndrewSirenko](https://github.com/AndrewSirenko))", - "author": "AndrewSirenko", - "author_url": "https://github.com/AndrewSirenko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132106", - "pr_number": 132106, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "132108": { - "commit": "52bc7515ca5387ab23cf5874324d12d300a4c443", - "text": "Graduated the `WinDSR` feature in the kube-proxy to GA. The `WinDSR` feature gate was enabled by default.", - "markdown": "Graduated the `WinDSR` feature in the kube-proxy to GA. The `WinDSR` feature gate was enabled by default. ([#132108](https://github.com/kubernetes/kubernetes/pull/132108), [@rzlink](https://github.com/rzlink)) [SIG Network and Windows]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/5100-windows-dsr-and-overlay-support", - "type": "KEP" - } - ], - "author": "rzlink", - "author_url": "https://github.com/rzlink", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132108", - "pr_number": 132108, - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "windows" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132109": { - "commit": "a26f3fd5c644529c1874e7d517042acec7732ff7", - "text": "Fixed a bug that caused an unexpected delay in creating Pods for newly created Jobs.", - "markdown": "Fixed a bug that caused an unexpected delay in creating Pods for newly created Jobs. ([#132109](https://github.com/kubernetes/kubernetes/pull/132109), [@linxiulei](https://github.com/linxiulei)) [SIG Apps and Testing]", - "author": "linxiulei", - "author_url": "https://github.com/linxiulei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132109", - "pr_number": 132109, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132117": { - "commit": "8a95bb683337dd0d83154ea608c6cb2351620aa7", - "text": "Promoted the `agnhost` image to v2.56 for Kubernetes e2e testing; verified digest: sha256:352a050380078cb2a1c246357a0dfa2fcf243ee416b92ff28b44a01d1b4b0294.", - "markdown": "Promoted the `agnhost` image to v2.56 for Kubernetes e2e testing; verified digest: sha256:352a050380078cb2a1c246357a0dfa2fcf243ee416b92ff28b44a01d1b4b0294. ([#132117](https://github.com/kubernetes/kubernetes/pull/132117), [@yashsingh74](https://github.com/yashsingh74)) [SIG Network and Testing]", - "author": "yashsingh74", - "author_url": "https://github.com/yashsingh74", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132117", - "pr_number": 132117, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "testing" - ], - "duplicate": true, - "do_not_publish": true, - "is_mapped": true - }, - "132121": { - "commit": "d195722623824d68b244b80736a9d460bd714217", - "text": "ReplicaSets and Deployments should always count `.status.availableReplicas` at the correct time without a delay. This results in faster reconciliation of Deployment conditions and faster, unblocked Deployment rollouts.", - "markdown": "ReplicaSets and Deployments should always count `.status.availableReplicas` at the correct time without a delay. This results in faster reconciliation of Deployment conditions and faster, unblocked Deployment rollouts. ([#132121](https://github.com/kubernetes/kubernetes/pull/132121), [@atiratree](https://github.com/atiratree)) [SIG Apps]", - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132121", - "pr_number": 132121, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "132127": { - "commit": "bf84dd0cc9a9496bb6ec025d916246b2274e05bd", - "text": "The PreferSameTrafficDistribution feature gate is now enabled by default,\nenabling the `PreferSameNode` traffic distribution value for Services.", - "markdown": "The PreferSameTrafficDistribution feature gate is now enabled by default,\n enabling the `PreferSameNode` traffic distribution value for Services. ([#132127](https://github.com/kubernetes/kubernetes/pull/132127), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3015", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132127", - "pr_number": 132127, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "network" - ], - "feature": true, - "duplicate": true - }, - "132149": { - "commit": "3aa448625c2d2f10275c608f54b88074ef6aeafa", - "text": "Removed support for API streaming from the metadata client’s `List() method`.", - "markdown": "Removed support for API streaming from the metadata client’s `List() method`. ([#132149](https://github.com/kubernetes/kubernetes/pull/132149), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132149", - "pr_number": 132149, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132165": { - "commit": "060ed4e99aaa30ad65600427ec1b9ee4fa64d3d1", - "text": "Fixed misleading response codes in admission control metrics.", - "markdown": "Fixed misleading response codes in admission control metrics. ([#132165](https://github.com/kubernetes/kubernetes/pull/132165), [@gavinkflam](https://github.com/gavinkflam)) [SIG API Machinery, Architecture and Instrumentation]", - "author": "gavinkflam", - "author_url": "https://github.com/gavinkflam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132165", - "pr_number": 132165, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "architecture", - "instrumentation" - ], - "duplicate": true - }, - "132173": { - "commit": "49c20d6f440fc8d0fe9a9b57542b06eec45bb485", - "text": "Promoted Job Pod Replacement Policy to general availability. The `JobPodReplacementPolicy` feature gate was locked to `true` and will be removed in a future Kubernetes release.", - "markdown": "Promoted Job Pod Replacement Policy to general availability. The `JobPodReplacementPolicy` feature gate was locked to `true` and will be removed in a future Kubernetes release. ([#132173](https://github.com/kubernetes/kubernetes/pull/132173), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3939", - "type": "KEP" - } - ], - "author": "dejanzele", - "author_url": "https://github.com/dejanzele", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132173", - "pr_number": 132173, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132178": { - "commit": "2cca13f87729c9c798f6563fbb3fd2955423538c", - "text": "Updated the built in `system:monitoring` role with permission to access kubelet metrics endpoints.", - "markdown": "Updated the built in `system:monitoring` role with permission to access kubelet metrics endpoints. ([#132178](https://github.com/kubernetes/kubernetes/pull/132178), [@gavinkflam](https://github.com/gavinkflam)) [SIG Auth]", - "author": "gavinkflam", - "author_url": "https://github.com/gavinkflam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132178", - "pr_number": 132178, - "kinds": [ - "feature" - ], - "sigs": [ - "auth" - ], - "feature": true - }, - "132183": { - "commit": "c7331527b5ca2a840064c42d56d791d05bb85479", - "text": "Fixed an issue where `insufficientResources` was logged as a pointer during pod preemption, making logs more readable.", - "markdown": "Fixed an issue where `insufficientResources` was logged as a pointer during pod preemption, making logs more readable. ([#132183](https://github.com/kubernetes/kubernetes/pull/132183), [@chrisy-x](https://github.com/chrisy-x)) [SIG Node]", - "author": "chrisy-x", - "author_url": "https://github.com/chrisy-x", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132183", - "pr_number": 132183, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ] - }, - "132190": { - "commit": "00d375050338df847285c0a12bbd90c328d0e707", - "text": "Types: `ClusterEvent`, `ActionType`, `EventResource`, `ClusterEventWithHint`, `QueueingHint` and `QueueingHintFn` moved from `pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`.", - "markdown": "Types: `ClusterEvent`, `ActionType`, `EventResource`, `ClusterEventWithHint`, `QueueingHint` and `QueueingHintFn` moved from `pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`. ([#132190](https://github.com/kubernetes/kubernetes/pull/132190), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing]", - "author": "ania-borowiec", - "author_url": "https://github.com/ania-borowiec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132190", - "pr_number": 132190, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "scheduling", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132194": { - "commit": "7b04d7faefcc28a90fb092e789abda467b086403", - "text": "Added a `runtime.ApplyConfiguration` interface implemented by all generated apply configuration types.", - "markdown": "Added a `runtime.ApplyConfiguration` interface implemented by all generated apply configuration types. ([#132194](https://github.com/kubernetes/kubernetes/pull/132194), [@alvaroaleman](https://github.com/alvaroaleman)) [SIG API Machinery and Instrumentation]", - "author": "alvaroaleman", - "author_url": "https://github.com/alvaroaleman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132194", - "pr_number": 132194, - "areas": [ - "code-generation" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132210": { - "commit": "0001a8aeffc0ee72d71b648447282dcb3305a1ba", - "text": "By default, binaries like kube-apiserver were built with the `grpcnotrace` tag enabled. Used the `DBG` flag to enable Golang tracing if needed.", - "markdown": "By default, binaries like kube-apiserver were built with the `grpcnotrace` tag enabled. Used the `DBG` flag to enable Golang tracing if needed. ([#132210](https://github.com/kubernetes/kubernetes/pull/132210), [@dims](https://github.com/dims))", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132210", - "pr_number": 132210, - "areas": [ - "code-organization" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture" - ], - "is_mapped": true - }, - "132214": { - "commit": "c297f38544f7343f3499626573c196c5c528a02e", - "text": "Added warnings when creating headless service with set `loadBalancerIP`,`externalIPs` and/or `SessionAffinity`.", - "markdown": "Added warnings when creating headless service with set `loadBalancerIP`,`externalIPs` and/or `SessionAffinity`. ([#132214](https://github.com/kubernetes/kubernetes/pull/132214), [@Peac36](https://github.com/Peac36))", - "author": "Peac36", - "author_url": "https://github.com/Peac36", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132214", - "pr_number": 132214, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "network" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "132219": { - "commit": "3bab7bccd39cf0161c1f832413146be1988438be", - "text": "Promoted the Ordered Namespace Deletion test to Conformance.", - "markdown": "Promoted the Ordered Namespace Deletion test to Conformance. ([#132219](https://github.com/kubernetes/kubernetes/pull/132219), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/5080", - "type": "external" - } - ], - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132219", - "pr_number": 132219, - "areas": [ - "test", - "conformance" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132222": { - "commit": "d2ab26a5c51af17d694753ff6b1f79ebb2e8d56b", - "text": "Built Kubernetes using Go 1.24.4.", - "markdown": "Built Kubernetes using Go 1.24.4. ([#132222](https://github.com/kubernetes/kubernetes/pull/132222), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132222", - "pr_number": 132222, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132229": { - "commit": "5abd2ac2e3900165d87c6078f55afd98ae6b085a", - "text": "Removed support for API streaming from the dynamic client’s `List() method`.", - "markdown": "Removed support for API streaming from the dynamic client’s `List() method`. ([#132229](https://github.com/kubernetes/kubernetes/pull/132229), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, CLI and Testing]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132229", - "pr_number": 132229, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cli", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132236": { - "commit": "158fce12bac6b52781bad068064220511ce24419", - "text": "The validation-gen code generator generated validation code that supported validation ratcheting.", - "markdown": "The validation-gen code generator generated validation code that supported validation ratcheting. ([#132236](https://github.com/kubernetes/kubernetes/pull/132236), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps, Auth and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/5073-declarative-validation-with-validation-gen/README.md", - "type": "KEP" - } - ], - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132236", - "pr_number": 132236, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132238": { - "commit": "c7b3f5d0b9d3b557d333a7244ed228c8067cf2e6", - "text": "kube-apiserver: removed the deprecated `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total` metrics in favor of `apiserver_encryption_config_controller_automatic_reloads_total`.", - "markdown": "Kube-apiserver: removed the deprecated `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total` metrics in favor of `apiserver_encryption_config_controller_automatic_reloads_total`. ([#132238](https://github.com/kubernetes/kubernetes/pull/132238), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132238", - "pr_number": 132238, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true - }, - "132244": { - "commit": "74210dd399c14582754e933de83a9e44b1d69c69", - "text": "Fixed a regression introduced in 1.33 where some paginated LIST calls fell back to `etcd` instead of being served from cache.", - "markdown": "Fixed a regression introduced in 1.33 where some paginated LIST calls fell back to `etcd` instead of being served from cache. ([#132244](https://github.com/kubernetes/kubernetes/pull/132244), [@hakuna-matatah](https://github.com/hakuna-matatah))", - "author": "hakuna-matatah", - "author_url": "https://github.com/hakuna-matatah", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132244", - "pr_number": 132244, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132251": { - "commit": "dac3c09bd16643dbac5e976e85d81825dd226ac0", - "text": "kubectl interactive delete: treat empty newline input as N", - "markdown": "Kubectl interactive delete: treat empty newline input as N ([#132251](https://github.com/kubernetes/kubernetes/pull/132251), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI]", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132251", - "pr_number": 132251, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ] - }, - "132257": { - "commit": "41dc045529a306932165684450cfe89d160fe8c9", - "text": "Removed support for API streaming from the `List()` method of the typed client.", - "markdown": "Removed support for API streaming from the `List()` method of the typed client. ([#132257](https://github.com/kubernetes/kubernetes/pull/132257), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132257", - "pr_number": 132257, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132258": { - "commit": "8458cfed43f96e05fac0bfa43fbec473c39d5689", - "text": "Fixed an incorrect reference to `JoinConfigurationKind` in the error message when no ResetConfiguration is found during `kubeadm reset` with the `--config` flag.", - "markdown": "Fixed an incorrect reference to `JoinConfigurationKind` in the error message when no ResetConfiguration is found during `kubeadm reset` with the `--config` flag. ([#132258](https://github.com/kubernetes/kubernetes/pull/132258), [@J3m3](https://github.com/J3m3)) [SIG Cluster Lifecycle]", - "author": "J3m3", - "author_url": "https://github.com/J3m3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132258", - "pr_number": 132258, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ] - }, - "132276": { - "commit": "06b62dcae7b2e11dbfc4aea2e0b8d5ced2cf26d9", - "text": "Added a warning when alpha metrics are used with emulated versions.", - "markdown": "Added a warning when alpha metrics are used with emulated versions. ([#132276](https://github.com/kubernetes/kubernetes/pull/132276), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery and Architecture]", - "author": "michaelasp", - "author_url": "https://github.com/michaelasp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132276", - "pr_number": 132276, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132277": { - "commit": "63011fe547137f2a45ace2bb1f360b8b7ec70fe2", - "text": "Changed underlying logic for `Eviction Manager` helper functions.", - "markdown": "Changed underlying logic for `Eviction Manager` helper functions. ([#132277](https://github.com/kubernetes/kubernetes/pull/132277), [@KevinTMtz](https://github.com/KevinTMtz)) [SIG Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]: [kubernetes/enhancements#2837](", - "url": "https://github.com/kubernetes/enhancements/issues/2837)", - "type": "KEP" - } - ], - "author": "KevinTMtz", - "author_url": "https://github.com/KevinTMtz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132277", - "pr_number": 132277, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132284": { - "commit": "c6539bc785f083e3770bc00e5124c9876c45a508", - "text": "Updated etcd version to v3.6.1.", - "markdown": "Updated etcd version to v3.6.1. ([#132284](https://github.com/kubernetes/kubernetes/pull/132284), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]", - "author": "ArkaSaha30", - "author_url": "https://github.com/ArkaSaha30", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132284", - "pr_number": 132284, - "areas": [ - "test", - "provider/gcp", - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "cluster-lifecycle", - "etcd", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132285": { - "commit": "c6777da47d1f9e93585cf23363da5c393eb7011a", - "text": "Removed support for API streaming from the REST client.", - "markdown": "Removed support for API streaming from the REST client. ([#132285](https://github.com/kubernetes/kubernetes/pull/132285), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132285", - "pr_number": 132285, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132296": { - "commit": "c3f5bea6e746602690f91fb717ecca3aa7acb32e", - "text": "Introduced a method `GetPCIeRootAttributeByPCIBusID(pciBusID)` for third-party DRA drivers to provide common logic for the standardized device attribute `resource.kubernetes.io/pcieRoot`.", - "markdown": "Introduced a method `GetPCIeRootAttributeByPCIBusID(pciBusID)` for third-party DRA drivers to provide common logic for the standardized device attribute `resource.kubernetes.io/pcieRoot`. ([#132296](https://github.com/kubernetes/kubernetes/pull/132296), [@everpeace](https://github.com/everpeace))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4381-dra-structured-parameters", - "type": "KEP" - } - ], - "author": "everpeace", - "author_url": "https://github.com/everpeace", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132296", - "pr_number": 132296, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "132299": { - "commit": "033ffc73d6ad00cd600ff557da84261518346a73", - "text": "kube-apiserver reported the last configuration hash as a label in\n\n- `apiserver_authentication_config_controller_last_config_info` metric after successfully loading the authentication configuration file.\n- `apiserver_authorization_config_controller_last_config_info` metric after successfully loading the authorization configuration file.\n- `apiserver_encryption_config_controller_last_config_info` metric after successfully loading the encryption configuration file.", - "markdown": "Kube-apiserver reported the last configuration hash as a label in\n \n - `apiserver_authentication_config_controller_last_config_info` metric after successfully loading the authentication configuration file.\n - `apiserver_authorization_config_controller_last_config_info` metric after successfully loading the authorization configuration file.\n - `apiserver_encryption_config_controller_last_config_info` metric after successfully loading the encryption configuration file. ([#132299](https://github.com/kubernetes/kubernetes/pull/132299), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - }, - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3221-structured-authorization-configuration", - "type": "KEP" - }, - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132299", - "pr_number": 132299, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132305": { - "commit": "8f1f17a04f62ab64ebe4f0b9d7f5f799bf56a0d9", - "text": "Changed Job controller to use the controller UID index for Pod lookups to improve performance.", - "markdown": "Changed Job controller to use the controller UID index for Pod lookups to improve performance. ([#132305](https://github.com/kubernetes/kubernetes/pull/132305), [@xigang](https://github.com/xigang))", - "author": "xigang", - "author_url": "https://github.com/xigang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132305", - "pr_number": 132305, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "132326": { - "commit": "fc198b92c0d5cece06fd4ecc24f6142532beff37", - "text": "Removed the `kubernetes.io/initial-events-list-blueprint` annotation from the synthetic \"Bookmark\" event in watch stream requests.", - "markdown": "Removed the `kubernetes.io/initial-events-list-blueprint` annotation from the synthetic \"Bookmark\" event in watch stream requests. ([#132326](https://github.com/kubernetes/kubernetes/pull/132326), [@p0lyn0mial](https://github.com/p0lyn0mial))", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132326", - "pr_number": 132326, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132336": { - "commit": "5e33c00e37832214a0c240ca4bcb18f7a6f1e5e4", - "text": "Fixed APIServerTracing test data race; ~/go/src/k8s.io/kubernetes/test/integration/apiserver/tracing$ go test ./... -race\nok \tk8s.io/kubernetes/test/integration/apiserver/tracing\t68.825s.", - "markdown": "Fixed APIServerTracing test data race; ~/go/src/k8s.io/kubernetes/test/integration/apiserver/tracing$ go test ./... -race\n ok \tk8s.io/kubernetes/test/integration/apiserver/tracing\t68.825s. ([#132336](https://github.com/kubernetes/kubernetes/pull/132336), [@dashpole](https://github.com/dashpole)) [SIG API Machinery and Testing]", - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132336", - "pr_number": 132336, - "areas": [ - "test" - ], - "kinds": [ - "failing-test" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "duplicate": true, - "do_not_publish": true, - "is_mapped": true - }, - "132338": { - "commit": "70c25cbe0c01bb49dd09b8c5497b8d2299a82abe", - "text": "Added `omitempty` and `opt` tag to the API `v1beta2` AdminAccess type in the `DeviceRequestAllocationResult` struct.", - "markdown": "Added `omitempty` and `opt` tag to the API `v1beta2` AdminAccess type in the `DeviceRequestAllocationResult` struct. ([#132338](https://github.com/kubernetes/kubernetes/pull/132338), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132338", - "pr_number": 132338, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "auth" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "132339": { - "commit": "9fbd2dae144d21181d441141fbd33fea02ef8f27", - "text": "When `RelaxedServiceNameValidation` feature gate is enabled, the \nnames of new Services names are validation with `NameIsDNSLabel()`,\nrelaxing the pre-existing validation.", - "markdown": "When `RelaxedServiceNameValidation` feature gate is enabled, the \n names of new Services names are validation with `NameIsDNSLabel()`,\n relaxing the pre-existing validation. ([#132339](https://github.com/kubernetes/kubernetes/pull/132339), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps, Network and Testing]", - "author": "adrianmoisey", - "author_url": "https://github.com/adrianmoisey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132339", - "pr_number": 132339, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "network", - "testing" - ], - "feature": true, - "duplicate": true - }, - "132340": { - "commit": "9827205bfe18822f31b1ee4af8141750082af428", - "text": "Promoted the `APIServerTracing` feature gate to GA. The `--tracing-config-file` flag accepted `TracingConfiguration` in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`).", - "markdown": "Promoted the `APIServerTracing` feature gate to GA. The `--tracing-config-file` flag accepted `TracingConfiguration` in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`). ([#132340](https://github.com/kubernetes/kubernetes/pull/132340), [@dashpole](https://github.com/dashpole)) [SIG API Machinery and Testing]", - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132340", - "pr_number": 132340, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132341": { - "commit": "8790d5b819cfc3b8edc9408b8a392b8734910ea2", - "text": "Promoted the `KubeletTracing` feature gate to GA.", - "markdown": "Promoted the `KubeletTracing` feature gate to GA. ([#132341](https://github.com/kubernetes/kubernetes/pull/132341), [@dashpole](https://github.com/dashpole)) [SIG Instrumentation and Node]", - "author": "dashpole", - "author_url": "https://github.com/dashpole", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132341", - "pr_number": 132341, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "instrumentation", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "132342": { - "commit": "62f6e213ce478782b2d388b9500f4546d7b71d58", - "text": "Implemented prioritization of resize requests based on `priorityClass` and QoS class when node resources are insufficient to accommodate all pending resize operations.", - "markdown": "Implemented prioritization of resize requests based on `priorityClass` and QoS class when node resources are insufficient to accommodate all pending resize operations. ([#132342](https://github.com/kubernetes/kubernetes/pull/132342), [@natasha41575](https://github.com/natasha41575)) [SIG Node and Testing]", - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132342", - "pr_number": 132342, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132348": { - "commit": "8f312e6fbf7236fa6b48e178d18a90c892d41f4a", - "text": "Added a `container_swap_limit_bytes` metric to expose the swap limit assigned to containers under the `LimitedSwap` swap behavior.", - "markdown": "Added a `container_swap_limit_bytes` metric to expose the swap limit assigned to containers under the `LimitedSwap` swap behavior. ([#132348](https://github.com/kubernetes/kubernetes/pull/132348), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md", - "type": "KEP" - } - ], - "author": "iholder101", - "author_url": "https://github.com/iholder101", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132348", - "pr_number": 132348, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132351": { - "commit": "efd2a0d1f514be96a2f012fc3cb40f7c872b4e67", - "text": "HPA status displayed memory metrics using Ki.", - "markdown": "HPA status displayed memory metrics using Ki. ([#132351](https://github.com/kubernetes/kubernetes/pull/132351), [@googs1025](https://github.com/googs1025)) [SIG Apps and Autoscaling]", - "author": "googs1025", - "author_url": "https://github.com/googs1025", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132351", - "pr_number": 132351, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "autoscaling" - ], - "duplicate": true, - "is_mapped": true - }, - "132352": { - "commit": "211e58685c6df41ce4e87f2e805dd9f605626a06", - "text": "Removed the deprecated flag `--wait-interval` for the `ip6tables-legacy-restore` binary.", - "markdown": "Removed the deprecated flag `--wait-interval` for the `ip6tables-legacy-restore` binary. ([#132352](https://github.com/kubernetes/kubernetes/pull/132352), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132352", - "pr_number": 132352, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "132355": { - "commit": "025636181393cc95bf78a48238fff5c8b05d6404", - "text": "Added `SizeBasedListCostEstimate` feature gate that allowed apiserver to estimate sizes of objects to calculate cost of LIST requests.", - "markdown": "Added `SizeBasedListCostEstimate` feature gate that allowed apiserver to estimate sizes of objects to calculate cost of LIST requests. ([#132355](https://github.com/kubernetes/kubernetes/pull/132355), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132355", - "pr_number": 132355, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "etcd" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132361": { - "commit": "41477c97480546e33fcce4f3bb301709f0c3c9b4", - "text": "Migrated validation in `CertificateSigningRequest` to use declarative validation. When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. If `DeclarativeValidationTakeover` is enabled, declarative validation becomes the primary source of errors for migrated fields.", - "markdown": "Migrated validation in `CertificateSigningRequest` to use declarative validation. When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. If `DeclarativeValidationTakeover` is enabled, declarative validation becomes the primary source of errors for migrated fields. ([#132361](https://github.com/kubernetes/kubernetes/pull/132361), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/5073-declarative-validation-with-validation-gen/README.md", - "type": "KEP" - } - ], - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132361", - "pr_number": 132361, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132374": { - "commit": "49bff137a7211ff300028bfdba3ce1929a5dfb2b", - "text": "Fixed API response for `StorageClassList` queries to return a graceful error message, if the provided `ResourceVersion` is too large.", - "markdown": "Fixed API response for `StorageClassList` queries to return a graceful error message, if the provided `ResourceVersion` is too large. ([#132374](https://github.com/kubernetes/kubernetes/pull/132374), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Etcd]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132374", - "pr_number": 132374, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "etcd" - ], - "duplicate": true, - "is_mapped": true - }, - "132376": { - "commit": "885db534cabb9c1975553f43e32c90f0be256a51", - "text": "apimachinery: Deprecated `MessageCountMap` and `CreateAggregateFromMessageCountMap`.", - "markdown": "Apimachinery: Deprecated `MessageCountMap` and `CreateAggregateFromMessageCountMap`. ([#132376](https://github.com/kubernetes/kubernetes/pull/132376), [@tico88612](https://github.com/tico88612))", - "author": "tico88612", - "author_url": "https://github.com/tico88612", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132376", - "pr_number": 132376, - "kinds": [ - "deprecation" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132391": { - "commit": "ab685237f00437507175ca6f1564db021d0357aa", - "text": "Added a new `PreBindPreFlight` function to the `PreBindPlugin` interface. All in-tree `PreBind` plugins have been updated to implement `PreBindPreFlight` function.", - "markdown": "Added a new `PreBindPreFlight` function to the `PreBindPlugin` interface. All in-tree `PreBind` plugins have been updated to implement `PreBindPreFlight` function. ([#132391](https://github.com/kubernetes/kubernetes/pull/132391), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/5278-nominated-node-name-for-expectation", - "type": "KEP" - } - ], - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132391", - "pr_number": 132391, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132413": { - "commit": "65c12acf7d17bb5584ca086af33ef6d6be80fc24", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the components-helper of the apimachinery.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the components-helper of the apimachinery. ([#132413](https://github.com/kubernetes/kubernetes/pull/132413), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132413", - "pr_number": 132413, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132429": { - "commit": "08362f0650eb4346e6aee09ce88821e6041f6996", - "text": "Promoted `MutableCSINodeAllocatableCount` to beta.", - "markdown": "Promoted `MutableCSINodeAllocatableCount` to beta. ([#132429](https://github.com/kubernetes/kubernetes/pull/132429), [@torredil](https://github.com/torredil))", - "author": "torredil", - "author_url": "https://github.com/torredil", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132429", - "pr_number": 132429, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132430": { - "commit": "7fbf63a23fcf393d4ba310412155dfbbaa36bb9a", - "text": "Added HPA support to pod-level resource specifications. When the pod-level resource feature was enabled, HPAs configured with `Resource` type metrics calculated the pod resources from `pod.Spec.Resources` field, if specified.", - "markdown": "Added HPA support to pod-level resource specifications. When the pod-level resource feature was enabled, HPAs configured with `Resource` type metrics calculated the pod resources from `pod.Spec.Resources` field, if specified. ([#132430](https://github.com/kubernetes/kubernetes/pull/132430), [@laoj2](https://github.com/laoj2)) [SIG Apps, Autoscaling and Testing]", - "author": "laoj2", - "author_url": "https://github.com/laoj2", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132430", - "pr_number": 132430, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "autoscaling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132433": { - "commit": "201325e86913cfff34f5f2146f2ab4e496a2ef6f", - "text": "Added configurable flags to kube-apiserver for coordinated leader election.", - "markdown": "Added configurable flags to kube-apiserver for coordinated leader election. ([#132433](https://github.com/kubernetes/kubernetes/pull/132433), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery and Testing]", - "author": "michaelasp", - "author_url": "https://github.com/michaelasp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132433", - "pr_number": 132433, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132443": { - "commit": "fd3c879a5bae34040b348672bcf67c41e7f6e086", - "text": "Whenever a pod was successfully bound to a node, the kube-apiserver cleared the pod's `nominatedNodeName` field. This prevented stale information from affecting external scheduling components.", - "markdown": "Whenever a pod was successfully bound to a node, the kube-apiserver cleared the pod's `nominatedNodeName` field. This prevented stale information from affecting external scheduling components. ([#132443](https://github.com/kubernetes/kubernetes/pull/132443), [@utam0k](https://github.com/utam0k)) [SIG Apps, Node, Scheduling and Testing]", - "author": "utam0k", - "author_url": "https://github.com/utam0k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132443", - "pr_number": 132443, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132456": { - "commit": "9538d533533493baec7ef0be574f863e67e7dae9", - "text": "Updated `kube-proxy` with `nftables` to reject or drop traffic to services with no endpoints from filter chains at priority 0 (`NF_IP_PRI_FILTER`).", - "markdown": "Updated `kube-proxy` with `nftables` to reject or drop traffic to services with no endpoints from filter chains at priority 0 (`NF_IP_PRI_FILTER`). ([#132456](https://github.com/kubernetes/kubernetes/pull/132456), [@aroradaman](https://github.com/aroradaman))", - "author": "aroradaman", - "author_url": "https://github.com/aroradaman", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132456", - "pr_number": 132456, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "132457": { - "commit": "a11bc701e8138b13445cff44f2bc7b468db71350", - "text": "Types: `NodeInfo`, `PodInfo`, `QueuedPodInfo`, `PodResource`, `AffinityTerm`, `WeightedAffinityTerm`, `Resource`, `ImageStateSummary`, `ProtocolPort` and `HostPortInfo` were moved from `pkg/scheduler/framework` to staging repo.\nUsers should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework` and update use of fields (to use getter/setter functions instead) where needed.", - "markdown": "Types: `NodeInfo`, `PodInfo`, `QueuedPodInfo`, `PodResource`, `AffinityTerm`, `WeightedAffinityTerm`, `Resource`, `ImageStateSummary`, `ProtocolPort` and `HostPortInfo` were moved from `pkg/scheduler/framework` to staging repo.\n Users should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework` and update use of fields (to use getter/setter functions instead) where needed. ([#132457](https://github.com/kubernetes/kubernetes/pull/132457), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing]", - "author": "ania-borowiec", - "author_url": "https://github.com/ania-borowiec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132457", - "pr_number": 132457, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "scheduling", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132462": { - "commit": "558e903fb1f2e9db8c118aac35d92111c1e11722", - "text": "Fixed bug that prevented the alpha feature `PodTopologyLabelAdmission` from working due to checking for the incorrect label key when copying topology labels. This bug delayed the graduation of the feature to beta by an additional release to allow time for meaningful feedback.", - "markdown": "Fixed bug that prevented the alpha feature `PodTopologyLabelAdmission` from working due to checking for the incorrect label key when copying topology labels. This bug delayed the graduation of the feature to beta by an additional release to allow time for meaningful feedback. ([#132462](https://github.com/kubernetes/kubernetes/pull/132462), [@munnerz](https://github.com/munnerz))", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/4742", - "type": "KEP" - }, - { - "description": "KEP update", - "url": "https://github.com/kubernetes/enhancements/pull/5428", - "type": "KEP" - } - ], - "author": "munnerz", - "author_url": "https://github.com/munnerz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132462", - "pr_number": 132462, - "areas": [ - "admission-control" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "132467": { - "commit": "ec80dcaf3892d0cf89e4fd7b1ea60300fb417d8a", - "text": "Fixed an issue that allowed Custom Resources to be created using Server-Side Apply even when their `CustomResourceDefinition` was terminating.", - "markdown": "Fixed an issue that allowed Custom Resources to be created using Server-Side Apply even when their `CustomResourceDefinition` was terminating. ([#132467](https://github.com/kubernetes/kubernetes/pull/132467), [@sdowell](https://github.com/sdowell))", - "author": "sdowell", - "author_url": "https://github.com/sdowell", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132467", - "pr_number": 132467, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132472": { - "commit": "eb1b603cda3b956e52bddf3b51748191e80a59a6", - "text": "Simplified validation error message for required fields by removing redundant messages.", - "markdown": "Simplified validation error message for required fields by removing redundant messages. ([#132472](https://github.com/kubernetes/kubernetes/pull/132472), [@xiaoweim](https://github.com/xiaoweim)) [SIG API Machinery, Apps, Architecture, Auth, Cloud Provider, Network, Node and Storage]", - "author": "xiaoweim", - "author_url": "https://github.com/xiaoweim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132472", - "pr_number": 132472, - "areas": [ - "kubelet", - "apiserver" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "cloud-provider", - "network", - "node", - "storage" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132473": { - "commit": "93844abbe2ec93ce25ab96ff20cc75e750957fe5", - "text": "Ensured memory resizing for Guaranteed QoS pods on static Memory policy configurations was gated by `InPlacePodVerticalScalingExclusiveMemory` (defaults: `false`).", - "markdown": "Ensured memory resizing for Guaranteed QoS pods on static Memory policy configurations was gated by `InPlacePodVerticalScalingExclusiveMemory` (defaults: `false`). ([#132473](https://github.com/kubernetes/kubernetes/pull/132473), [@pravk03](https://github.com/pravk03)) [SIG Node, Scheduling and Testing]", - "author": "pravk03", - "author_url": "https://github.com/pravk03", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132473", - "pr_number": 132473, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132484": { - "commit": "17c5e753b204e6dd4e8f99082692c6baa8903c11", - "text": "Increased test coverage for kubelet package to 92.3%.", - "markdown": "Increased test coverage for kubelet package to 92.3%. ([#132484](https://github.com/kubernetes/kubernetes/pull/132484), [@ylink-lfs](https://github.com/ylink-lfs))", - "author": "ylink-lfs", - "author_url": "https://github.com/ylink-lfs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132484", - "pr_number": 132484, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true, - "is_mapped": true - }, - "132504": { - "commit": "1d932bd6cc951b9182d07d701946aebaf667df94", - "text": "Introduced OpenAPI format support for `k8s-short-name` and `k8s-long-name` in CustomResourceDefinition schemas.", - "markdown": "Introduced OpenAPI format support for `k8s-short-name` and `k8s-long-name` in CustomResourceDefinition schemas. ([#132504](https://github.com/kubernetes/kubernetes/pull/132504), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132504", - "pr_number": 132504, - "areas": [ - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "132509": { - "commit": "ec1803cab8a318a358822d6d00a086d56375d0a0", - "text": "Removed defunct `make vet` target, please use `make lint` instead.", - "markdown": "Removed defunct `make vet` target, please use `make lint` instead. ([#132509](https://github.com/kubernetes/kubernetes/pull/132509), [@yongruilin](https://github.com/yongruilin))", - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132509", - "pr_number": 132509, - "kinds": [ - "bug" - ], - "sigs": [ - "testing" - ], - "is_mapped": true - }, - "132513": { - "commit": "9f97857669c94332f2695c6216885937e4e9556d", - "text": "Simplified validation error message for invalid fields by removing redundant field name.", - "markdown": "Simplified validation error message for invalid fields by removing redundant field name. ([#132513](https://github.com/kubernetes/kubernetes/pull/132513), [@xiaoweim](https://github.com/xiaoweim)) [SIG API Machinery, Apps, Auth, Node and Scheduling]", - "author": "xiaoweim", - "author_url": "https://github.com/xiaoweim", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132513", - "pr_number": 132513, - "areas": [ - "kubelet", - "apiserver" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "node", - "scheduling" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132514": { - "commit": "a652896307ce8dd1412483ed18e61d6dd2ad36da", - "text": "kube-apiserver: Previously persisted `CustomResourceDefinition` objects with an invalid whitespace-only `caBundle` could serve requests that did not require conversion.", - "markdown": "Kube-apiserver: Previously persisted `CustomResourceDefinition` objects with an invalid whitespace-only `caBundle` could serve requests that did not require conversion. ([#132514](https://github.com/kubernetes/kubernetes/pull/132514), [@tiffanny29631](https://github.com/tiffanny29631))", - "author": "tiffanny29631", - "author_url": "https://github.com/tiffanny29631", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132514", - "pr_number": 132514, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "132522": { - "commit": "a59ad8113513b2cd927097354924eafe4187c140", - "text": "- Added driver-owned fields in `ResourceSlice` to mark whether the device was shareable among multiple resource claims (or requests) and to specify how each capacity could be shared between different requests.\n- Added user-owned fields in `ResourceClaim` to specify resource requirements against each device capacity.\n- Added scheduler-owned field in `ResourceClaim.Status` to specify how much device capacity is reserved for a specific request.\n- Added an additional identifier to `ResourceClaim.Status` for the device supports multiple allocations.\n- Added a new constraint type to enforce uniqueness of specified attributes across all allocated devices.", - "markdown": "- Added driver-owned fields in `ResourceSlice` to mark whether the device was shareable among multiple resource claims (or requests) and to specify how each capacity could be shared between different requests.\n - Added user-owned fields in `ResourceClaim` to specify resource requirements against each device capacity.\n - Added scheduler-owned field in `ResourceClaim.Status` to specify how much device capacity is reserved for a specific request.\n - Added an additional identifier to `ResourceClaim.Status` for the device supports multiple allocations.\n - Added a new constraint type to enforce uniqueness of specified attributes across all allocated devices. ([#132522](https://github.com/kubernetes/kubernetes/pull/132522), [@sunya-ch](https://github.com/sunya-ch)) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Release, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5075", - "type": "KEP" - } - ], - "author": "sunya-ch", - "author_url": "https://github.com/sunya-ch", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132522", - "pr_number": 132522, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "kubectl", - "release-eng", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "cli", - "cluster-lifecycle", - "network", - "node", - "release", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132529": { - "commit": "5ba3235b1bba202efdf69ce7cbe0a4a9cf875446", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the kubeapiserver.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the kubeapiserver. ([#132529](https://github.com/kubernetes/kubernetes/pull/132529), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Architecture]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132529", - "pr_number": 132529, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "architecture" - ], - "duplicate": true, - "is_mapped": true - }, - "132537": { - "commit": "3e3f43f4b89a9a962f60ced47e50116250285c25", - "text": "Validated APIVersion fields of the `HorizontalPodAutoscaler` to ensure that API objects were created and functioned properly.", - "markdown": "Validated APIVersion fields of the `HorizontalPodAutoscaler` to ensure that API objects were created and functioned properly. ([#132537](https://github.com/kubernetes/kubernetes/pull/132537), [@lalitc375](https://github.com/lalitc375)) [SIG Etcd and Testing]", - "author": "lalitc375", - "author_url": "https://github.com/lalitc375", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132537", - "pr_number": 132537, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "etcd", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132542": { - "commit": "a7e8a505c25965c074f2b10b1bf40230eca48a08", - "text": "Clarified help message of `--ignore-not-found` flag. Supported `--ignore-not-found` in `watch` operation.", - "markdown": "Clarified help message of `--ignore-not-found` flag. Supported `--ignore-not-found` in `watch` operation. ([#132542](https://github.com/kubernetes/kubernetes/pull/132542), [@gemmahou](https://github.com/gemmahou))", - "author": "gemmahou", - "author_url": "https://github.com/gemmahou", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132542", - "pr_number": 132542, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "132548": { - "commit": "a76eddf60891963fea6ac486aa7acd5d3ec81b54", - "text": "Resolved a bug where DaemonSet updates unnecessarily triggered duplicate validation due to overlapping calls to `ValidateDaemonSet` and ValidateDaemonSetUpdate. This redundancy has been removed to prevent repeated validation runs.", - "markdown": "Resolved a bug where DaemonSet updates unnecessarily triggered duplicate validation due to overlapping calls to `ValidateDaemonSet` and ValidateDaemonSetUpdate. This redundancy has been removed to prevent repeated validation runs. ([#132548](https://github.com/kubernetes/kubernetes/pull/132548), [@gavinkflam](https://github.com/gavinkflam))", - "author": "gavinkflam", - "author_url": "https://github.com/gavinkflam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132548", - "pr_number": 132548, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "132551": { - "commit": "c6fef9752c2b8d184772b43e66371ee8034c2a35", - "text": "Fixed the problem of validation error when specifying resource requirements at the container level for a resource not supported at the pod level. It implicitly interpreted the pod-level value as 0.", - "markdown": "Fixed the problem of validation error when specifying resource requirements at the container level for a resource not supported at the pod level. It implicitly interpreted the pod-level value as 0. ([#132551](https://github.com/kubernetes/kubernetes/pull/132551), [@chao-liang](https://github.com/chao-liang)) [SIG Apps]", - "documentation": [ - { - "description": "KEP", - "url": "https://github.com/kubernetes/enhancements/issues/2837", - "type": "KEP" - } - ], - "author": "chao-liang", - "author_url": "https://github.com/chao-liang", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132551", - "pr_number": 132551, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ] - }, - "132558": { - "commit": "6ef2215eb7e4227ca762ad1c2d462f109b37292d", - "text": "Allowed setting the `hostnameOverride` field in `PodSpec` to specify any RFC 1123 DNS subdomain as the pod's hostname. The `HostnameOverride` feature gate was introduced to control enablement of this functionality.", - "markdown": "Allowed setting the `hostnameOverride` field in `PodSpec` to specify any RFC 1123 DNS subdomain as the pod's hostname. The `HostnameOverride` feature gate was introduced to control enablement of this functionality. ([#132558](https://github.com/kubernetes/kubernetes/pull/132558), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Apps, Network, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4762-allow-arbitrary-fqdn-as-pod-hostname", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132558", - "pr_number": 132558, - "areas": [ - "test", - "kubelet", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "network", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132560": { - "commit": "b2f27c0649fc0f3d2a4a6dd29135ecc81781f7e4", - "text": "Fixed a bug that fails to create a replica set when a deployment name is too long.", - "markdown": "Fixed a bug that fails to create a replica set when a deployment name is too long. ([#132560](https://github.com/kubernetes/kubernetes/pull/132560), [@hdp617](https://github.com/hdp617)) [SIG API Machinery and Apps]", - "author": "hdp617", - "author_url": "https://github.com/hdp617", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132560", - "pr_number": 132560, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true - }, - "132574": { - "commit": "e7b945737e9325f076844dfb5c11bb44dbc940f1", - "text": "DRA: removed support for the v1alpha4 kubelet gRPC API (added in 1.31, superseded in 1.32). DRA drivers using the helper package from Kubernetes \u003e= 1.32 use the v1beta1 API and continue to be supported.", - "markdown": "DRA: removed support for the v1alpha4 kubelet gRPC API (added in 1.31, superseded in 1.32). DRA drivers using the helper package from Kubernetes \u003e= 1.32 use the v1beta1 API and continue to be supported. ([#132574](https://github.com/kubernetes/kubernetes/pull/132574), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132574", - "pr_number": 132574, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "132581": { - "commit": "c7d6c09683344d6dacbe5ba3383a8217c1d4ccd7", - "text": "Added useful endpoints for kube-apiserver.", - "markdown": "Added useful endpoints for kube-apiserver. ([#132581](https://github.com/kubernetes/kubernetes/pull/132581), [@itssimrank](https://github.com/itssimrank)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing]", - "author": "itssimrank", - "author_url": "https://github.com/itssimrank", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132581", - "pr_number": 132581, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "instrumentation", - "network", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132593": { - "commit": "65d00aaa9d38d3b67dfc14495758f5fcf4c36fc1", - "text": "Upgraded functionality of `kubectl kustomize` as described at https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.7.0.", - "markdown": "Upgraded functionality of `kubectl kustomize` as described at https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.7.0. ([#132593](https://github.com/kubernetes/kubernetes/pull/132593), [@koba1t](https://github.com/koba1t))", - "author": "koba1t", - "author_url": "https://github.com/koba1t", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132593", - "pr_number": 132593, - "areas": [ - "kubectl", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "132594": { - "commit": "5a450884b127f7b8e477d48cf3967a2a5eca9126", - "text": "kubeadm: graduated the kubeadm specific feature gate `WaitForAllControlPlaneComponents` to GA. The feature gate is was locked to always be enabled and on node initialization kubeadm performed a health check for all control plane components and not only the `kube-apiserver`.", - "markdown": "Kubeadm: graduated the kubeadm specific feature gate `WaitForAllControlPlaneComponents` to GA. The feature gate is was locked to always be enabled and on node initialization kubeadm performed a health check for all control plane components and not only the `kube-apiserver`. ([#132594](https://github.com/kubernetes/kubernetes/pull/132594), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132594", - "pr_number": 132594, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "132595": { - "commit": "ade9b7746a73354c46082941f897985a960075bf", - "text": "`PodLifecycleSleepAction` was graduated to GA.", - "markdown": "`PodLifecycleSleepAction` was graduated to GA. ([#132595](https://github.com/kubernetes/kubernetes/pull/132595), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3960", - "type": "KEP" - } - ], - "author": "AxeZhan", - "author_url": "https://github.com/AxeZhan", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132595", - "pr_number": 132595, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132604": { - "commit": "cb33accc8fc4d44e902da4926eee7b828c5e51ec", - "text": "Added machine readable output options (JSON \u0026 YAML) to `kubectl api-resources`.", - "markdown": "Added machine readable output options (JSON \u0026 YAML) to `kubectl api-resources`. ([#132604](https://github.com/kubernetes/kubernetes/pull/132604), [@dharmit](https://github.com/dharmit)) [SIG Apps, CLI and Network]", - "author": "dharmit", - "author_url": "https://github.com/dharmit", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132604", - "pr_number": 132604, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "cli", - "network" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132605": { - "commit": "bd7fb738bd7fc4ca267853960c98368534c1d7b3", - "text": "The fallback behavior of the Downward API's `resourceFieldRef` field was updated to account for pod-level resources: if container-level limits were not set, pod-level limits were now used before falling back to node allocatable resources.", - "markdown": "The fallback behavior of the Downward API's `resourceFieldRef` field was updated to account for pod-level resources: if container-level limits were not set, pod-level limits were now used before falling back to node allocatable resources. ([#132605](https://github.com/kubernetes/kubernetes/pull/132605), [@toVersus](https://github.com/toVersus)) [SIG Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2837", - "type": "KEP" - } - ], - "author": "toVersus", - "author_url": "https://github.com/toVersus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132605", - "pr_number": 132605, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132614": { - "commit": "d3296eac97e4f39ca39926555677b8d098fcf96d", - "text": "Fixed validation for Job with `suspend=true`, and `completions=0` to set the Complete condition.", - "markdown": "Fixed validation for Job with `suspend=true`, and `completions=0` to set the Complete condition. ([#132614](https://github.com/kubernetes/kubernetes/pull/132614), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/4368-support-managed-by-for-batch-jobs", - "type": "KEP" - } - ], - "author": "mimowo", - "author_url": "https://github.com/mimowo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132614", - "pr_number": 132614, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132617": { - "commit": "394f4127675b19417be09295cb766674175ed776", - "text": "Updated the `v1` credential provider configuration to include the `tokenAttributes.cacheType` field. This field is required and must be set to either `ServiceAccount` or `Token` when configuring a provider that uses a service account to fetch registry credentials.", - "markdown": "Updated the `v1` credential provider configuration to include the `tokenAttributes.cacheType` field. This field is required and must be set to either `ServiceAccount` or `Token` when configuring a provider that uses a service account to fetch registry credentials. ([#132617](https://github.com/kubernetes/kubernetes/pull/132617), [@aramase](https://github.com/aramase)) [SIG Auth, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132617", - "pr_number": 132617, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "auth", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132626": { - "commit": "6f3b6b91f08585727784620285f990782901572f", - "text": "Added a new `FileKeyRef` field to containers, allowing them to load variables from files by setting this field.\n\nIntroduced the `EnvFiles` feature gate to govern activation of this functionality.", - "markdown": "Added a new `FileKeyRef` field to containers, allowing them to load variables from files by setting this field.\n \n Introduced the `EnvFiles` feature gate to govern activation of this functionality. ([#132626](https://github.com/kubernetes/kubernetes/pull/132626), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Apps, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3721-support-for-env-files", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132626", - "pr_number": 132626, - "areas": [ - "test", - "kubelet", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132632": { - "commit": "a5d8ab60efe08062bdf065646f200ec83d4278d8", - "text": "The garbage collection controller no longer raced with changes to `ownerReferences` when deleting orphaned objects.", - "markdown": "The garbage collection controller no longer raced with changes to `ownerReferences` when deleting orphaned objects. ([#132632](https://github.com/kubernetes/kubernetes/pull/132632), [@sdowell](https://github.com/sdowell)) [SIG API Machinery and Apps]", - "author": "sdowell", - "author_url": "https://github.com/sdowell", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132632", - "pr_number": 132632, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "is_mapped": true - }, - "132642": { - "commit": "26045b2fab22857c5b8a836ad709df717637491a", - "text": "Added a mechanism for configurable container restarts: _container-level restart rules_. This was an alpha feature behind the `ContainerRestartRules` feature gate.", - "markdown": "Added a mechanism for configurable container restarts: _container-level restart rules_. This was an alpha feature behind the `ContainerRestartRules` feature gate. ([#132642](https://github.com/kubernetes/kubernetes/pull/132642), [@yuanwang04](https://github.com/yuanwang04)) [SIG API Machinery, Apps, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5307", - "type": "KEP" - } - ], - "author": "yuanwang04", - "author_url": "https://github.com/yuanwang04", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132642", - "pr_number": 132642, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132645": { - "commit": "cb0b66a89f93952ea15c2f76fb878dd878e743a2", - "text": "Graduated the `ConsistentListFromCache` to GA.", - "markdown": "Graduated the `ConsistentListFromCache` to GA. ([#132645](https://github.com/kubernetes/kubernetes/pull/132645), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132645", - "pr_number": 132645, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "132647": { - "commit": "d269d10bfc5f989da1a8fa24f64812f8040a2c65", - "text": "Updated Windows `kube-proxy` to align with Linux behavior by correctly honoring the port specified in `EndpointSlice` for internal traffic routing.", - "markdown": "Updated Windows `kube-proxy` to align with Linux behavior by correctly honoring the port specified in `EndpointSlice` for internal traffic routing. ([#132647](https://github.com/kubernetes/kubernetes/pull/132647), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows]", - "documentation": [ - { - "description": "[KEP](", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4974-deprecate-endpoints)", - "type": "KEP" - } - ], - "author": "princepereira", - "author_url": "https://github.com/princepereira", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132647", - "pr_number": 132647, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network", - "windows" - ], - "duplicate": true, - "is_mapped": true - }, - "132648": { - "commit": "20141c8a92a76900b0b207ca7c0fd4832bacaa55", - "text": "Graduated `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` to GA.", - "markdown": "Graduated `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` to GA. ([#132648](https://github.com/kubernetes/kubernetes/pull/132648), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132648", - "pr_number": 132648, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "132656": { - "commit": "3430e34d886e9b00a1a077707a253f2f769a35d8", - "text": "Promoted the `AuthorizeWithSelectors` and `AuthorizeNodeWithSelectors` feature gates to stable and locked on.", - "markdown": "Promoted the `AuthorizeWithSelectors` and `AuthorizeNodeWithSelectors` feature gates to stable and locked on. ([#132656](https://github.com/kubernetes/kubernetes/pull/132656), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4601", - "type": "KEP" - }, - { - "description": "[Node authorization]", - "url": "https://kubernetes.io/docs/reference/access-authn-authz/node/", - "type": "official" - }, - { - "description": "[CEL authorization]", - "url": "https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#AuthzSelectors", - "type": "external" - }, - { - "description": "[Webhook authorization]", - "url": "https://kubernetes.io/docs/reference/access-authn-authz/webhook/", - "type": "official" - } - ], - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132656", - "pr_number": 132656, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132662": { - "commit": "99f55ae4ef04f08203d08d19dda5c05b2379ba10", - "text": "Moved Recover from volume expansion failure to GA.", - "markdown": "Moved Recover from volume expansion failure to GA. ([#132662](https://github.com/kubernetes/kubernetes/pull/132662), [@gnufied](https://github.com/gnufied)) [SIG Apps, Auth, Node, Storage and Testing]", - "author": "gnufied", - "author_url": "https://github.com/gnufied", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132662", - "pr_number": 132662, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "auth", - "node", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132674": { - "commit": "f93a8c58d7402ff00593aac71d9d0770f0b403c5", - "text": "Fixed e2e test \"[Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits\" not to leak Pods and namespaces.", - "markdown": "Fixed e2e test \"[Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits\" not to leak Pods and namespaces. ([#132674](https://github.com/kubernetes/kubernetes/pull/132674), [@jsafrane](https://github.com/jsafrane)) [SIG Storage and Testing]", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132674", - "pr_number": 132674, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132683": { - "commit": "52787dd1d083d24fe33d3dd80f94afbb9cb9faa3", - "text": "DRA drivers: the resource slice controller sometimes didn't react properly when kubelet or someone else deleted a recently created ResourceSlice. It incorrectly assumed that the ResourceSlice still exists and didn't recreate it.", - "markdown": "DRA drivers: the resource slice controller sometimes didn't react properly when kubelet or someone else deleted a recently created ResourceSlice. It incorrectly assumed that the ResourceSlice still exists and didn't recreate it. ([#132683](https://github.com/kubernetes/kubernetes/pull/132683), [@pohly](https://github.com/pohly)) [SIG Apps, Node and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132683", - "pr_number": 132683, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "duplicate": true - }, - "132698": { - "commit": "0ce9a03285b8d689e0072b06a42ffeae77fc416c", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the reflector.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the reflector. ([#132698](https://github.com/kubernetes/kubernetes/pull/132698), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132698", - "pr_number": 132698, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132699": { - "commit": "de74ab716ef1014206427622d2070482dc304cc6", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the csr.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the csr. ([#132699](https://github.com/kubernetes/kubernetes/pull/132699), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132699", - "pr_number": 132699, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "is_mapped": true - }, - "132700": { - "commit": "ca569e152d734112a2400afa84371ebb399786ba", - "text": "DRA kubelet: gRPC API graduated to v1, v1beta1 was deprecated starting in 1.34. Updating DRA drivers to the `k8s.io/dynamic-resource-allocation/kubeletplugin` helper from 1.34 added support for both API versions.", - "markdown": "DRA kubelet: gRPC API graduated to v1, v1beta1 was deprecated starting in 1.34. Updating DRA drivers to the `k8s.io/dynamic-resource-allocation/kubeletplugin` helper from 1.34 added support for both API versions. ([#132700](https://github.com/kubernetes/kubernetes/pull/132700), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132700", - "pr_number": 132700, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature", - "deprecation" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132701": { - "commit": "6ace4832c2c7f6cab4a59cce4022b638982a3286", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the kube-aggregator apiregistration.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the kube-aggregator apiregistration. ([#132701](https://github.com/kubernetes/kubernetes/pull/132701), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132701", - "pr_number": 132701, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "132704": { - "commit": "ae21e81ae7f9e53a5bf157a02673f1d6ac5e9427", - "text": "Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled `WatchListClient` for KCM.", - "markdown": "Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled `WatchListClient` for KCM. ([#132704](https://github.com/kubernetes/kubernetes/pull/132704), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", - "author": "p0lyn0mial", - "author_url": "https://github.com/p0lyn0mial", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132704", - "pr_number": 132704, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132706": { - "commit": "254a46943aab33017b581a7e9e393f3b720feef8", - "text": "Dynamic Resource Allocation: Graduated core functionality to general availability (GA). This newly stable feature uses the _structured parameters_ flavor of DRA.", - "markdown": "Dynamic Resource Allocation: Graduated core functionality to general availability (GA). This newly stable feature uses the _structured parameters_ flavor of DRA. ([#132706](https://github.com/kubernetes/kubernetes/pull/132706), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Autoscaling, Etcd, Node, Scheduling and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132706", - "pr_number": 132706, - "areas": [ - "test", - "kubelet", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "autoscaling", - "etcd", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132720": { - "commit": "22f5e01a37c0bc6a5f494dec14dd4e3688ee1d55", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the cloud-provider.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the cloud-provider. ([#132720](https://github.com/kubernetes/kubernetes/pull/132720), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Cloud Provider and Network]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132720", - "pr_number": 132720, - "areas": [ - "cloudprovider" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "network" - ], - "duplicate": true, - "is_mapped": true - }, - "132721": { - "commit": "d79c1e7eaa29331793adb0caa47d802077a0f16e", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiextensions-apiservers integration tests.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiextensions-apiservers integration tests. ([#132721](https://github.com/kubernetes/kubernetes/pull/132721), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132721", - "pr_number": 132721, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132723": { - "commit": "87562da40ac762ad62476d6f8d0f466e9825985c", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiextensions-apiserver apiextensions.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiextensions-apiserver apiextensions. ([#132723](https://github.com/kubernetes/kubernetes/pull/132723), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132723", - "pr_number": 132723, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "132724": { - "commit": "f5e136df9d61300c518667cfa1d44461f30cf1ba", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions-apiserver pkg/controller.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions-apiserver pkg/controller. ([#132724](https://github.com/kubernetes/kubernetes/pull/132724), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132724", - "pr_number": 132724, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132725": { - "commit": "35fd91229aa95163520c2f9775e799f23fca746a", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions-apiserver pkg/registry.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions-apiserver pkg/registry. ([#132725](https://github.com/kubernetes/kubernetes/pull/132725), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132725", - "pr_number": 132725, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132726": { - "commit": "26135216e7c82d1d30b5725582d8db5c45cfe281", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions apiservers validation tests.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions apiservers validation tests. ([#132726](https://github.com/kubernetes/kubernetes/pull/132726), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132726", - "pr_number": 132726, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132730": { - "commit": "01d50ae1c59ad831b54cf2c6ac4777d3563c748c", - "text": "NO", - "markdown": "NO ([#132730](https://github.com/kubernetes/kubernetes/pull/132730), [@onasser1](https://github.com/onasser1)) [SIG Scheduling]", - "author": "onasser1", - "author_url": "https://github.com/onasser1", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132730", - "pr_number": 132730, - "kinds": [ - "cleanup" - ], - "sigs": [ - "scheduling" - ], - "do_not_publish": true - }, - "132741": { - "commit": "d9228cae970ed72ac374169796c76cddbc646eb5", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pod-security-admission tests.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pod-security-admission tests. ([#132741](https://github.com/kubernetes/kubernetes/pull/132741), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132741", - "pr_number": 132741, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth" - ], - "is_mapped": true - }, - "132742": { - "commit": "95b18e4d427d9da903ba77c835700d0d8abbc248", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pod-security-admission admissiontests.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pod-security-admission admissiontests. ([#132742](https://github.com/kubernetes/kubernetes/pull/132742), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132742", - "pr_number": 132742, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth" - ], - "is_mapped": true - }, - "132743": { - "commit": "38f534fc4c630140f876b71fe2262732c96963ea", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pod-security-admission policy.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pod-security-admission policy. ([#132743](https://github.com/kubernetes/kubernetes/pull/132743), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132743", - "pr_number": 132743, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth" - ], - "is_mapped": true - }, - "132750": { - "commit": "f366e36ba24697a65dab16b692576f4ffe8ed08e", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the cli-runtime.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the cli-runtime. ([#132750](https://github.com/kubernetes/kubernetes/pull/132750), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG CLI and Release]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132750", - "pr_number": 132750, - "areas": [ - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli", - "release" - ], - "duplicate": true, - "is_mapped": true - }, - "132751": { - "commit": "d7a06387fe7305df5d7b3ebbab998686fae84a63", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiserver (1/2).", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiserver (1/2). ([#132751](https://github.com/kubernetes/kubernetes/pull/132751), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132751", - "pr_number": 132751, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132752": { - "commit": "116cfc0c5f38f37be05542d468943790cedde7c4", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiserver (2/2).", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiserver (2/2). ([#132752](https://github.com/kubernetes/kubernetes/pull/132752), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132752", - "pr_number": 132752, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "is_mapped": true - }, - "132753": { - "commit": "fb185e6aa871df744829ec9ea2fcd914697e5681", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the controller-manager.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the controller-manager. ([#132753](https://github.com/kubernetes/kubernetes/pull/132753), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Cloud Provider]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132753", - "pr_number": 132753, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider" - ], - "duplicate": true, - "is_mapped": true - }, - "132754": { - "commit": "e2afbf83f58f68f5c988f80f928dfccbea0ee8b3", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the component-base.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the component-base. ([#132754](https://github.com/kubernetes/kubernetes/pull/132754), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Architecture, Instrumentation and Scheduling]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132754", - "pr_number": 132754, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "architecture", - "instrumentation", - "scheduling" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132755": { - "commit": "c4302e970383a4116dd3d0219792ddeae8b43259", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the e2e_node.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the e2e_node. ([#132755](https://github.com/kubernetes/kubernetes/pull/132755), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Node and Testing]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132755", - "pr_number": 132755, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132762": { - "commit": "0ea38349843beada197c2eeabc762d2ca4478c1a", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/integration.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/integration. ([#132762](https://github.com/kubernetes/kubernetes/pull/132762), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132762", - "pr_number": 132762, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ], - "is_mapped": true - }, - "132763": { - "commit": "9f3464dbbdf31310e0be82c8897d500e383d453f", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e and ./test/utils.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e and ./test/utils. ([#132763](https://github.com/kubernetes/kubernetes/pull/132763), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Autoscaling and Testing]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132763", - "pr_number": 132763, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "autoscaling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132764": { - "commit": "332816b2b29c3d94ad0ccd8878523199dbe97c33", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e. ([#132764](https://github.com/kubernetes/kubernetes/pull/132764), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Auth, Network, Node, Storage and Testing]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132764", - "pr_number": 132764, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "network", - "node", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132765": { - "commit": "3c1a7b68b484aad3da575237965428d0253d84e6", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e. ([#132765](https://github.com/kubernetes/kubernetes/pull/132765), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Apps, CLI and Testing]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132765", - "pr_number": 132765, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "cli", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132767": { - "commit": "1b3be1fde68dfac72fb829d22a8af35abe29804d", - "text": "`DRAPrioritizedList` was turned on by default which made it possible to provide a prioritized list of subrequests in a `ResourceClaim`.", - "markdown": "`DRAPrioritizedList` was turned on by default which made it possible to provide a prioritized list of subrequests in a `ResourceClaim`. ([#132767](https://github.com/kubernetes/kubernetes/pull/132767), [@mortent](https://github.com/mortent)) [SIG Node, Scheduling and Testing]", - "author": "mortent", - "author_url": "https://github.com/mortent", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132767", - "pr_number": 132767, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132768": { - "commit": "e55e75f6d96707b26b67fa8f7c3966638d636b13", - "text": "Added support for specifying `controlplane` or `cluster` egress selectors in JWT authenticators via the `issuer.egressSelectorType` field in the `AuthenticationConfiguration.jwt` array. If unset, the previous behavior of using no egress selector is preserved. This functionality requires the `StructuredAuthenticationConfigurationEgressSelector` beta feature gate (enabled by default).", - "markdown": "Added support for specifying `controlplane` or `cluster` egress selectors in JWT authenticators via the `issuer.egressSelectorType` field in the `AuthenticationConfiguration.jwt` array. If unset, the previous behavior of using no egress selector is preserved. This functionality requires the `StructuredAuthenticationConfigurationEgressSelector` beta feature gate (enabled by default). ([#132768](https://github.com/kubernetes/kubernetes/pull/132768), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/3331", - "type": "KEP" - } - ], - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132768", - "pr_number": 132768, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132771": { - "commit": "1160ce69e1e43557313a5359c3873489c2eafe46", - "text": "Added support in the kubelet's image pull credential tracking for service account-based verification. When an image was pulled using service account credentials via external credential providers, subsequent Pods using the same service account (UID, name, and namespace) could access the cached image without re-authentication for the lifetime of that service account.", - "markdown": "Added support in the kubelet's image pull credential tracking for service account-based verification. When an image was pulled using service account credentials via external credential providers, subsequent Pods using the same service account (UID, name, and namespace) could access the cached image without re-authentication for the lifetime of that service account. ([#132771](https://github.com/kubernetes/kubernetes/pull/132771), [@aramase](https://github.com/aramase)) [SIG Auth, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", - "type": "KEP" - }, - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2535-ensure-secret-pulled-images/README.md", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132771", - "pr_number": 132771, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "auth", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132772": { - "commit": "3aa0bb9725d7ccf692af9e171a98d521f35674e7", - "text": "Removed deprecated gogo protocol definitions from `k8s.io/externaljwt` in favor of `google.golang.org/protobuf`.", - "markdown": "Removed deprecated gogo protocol definitions from `k8s.io/externaljwt` in favor of `google.golang.org/protobuf`. ([#132772](https://github.com/kubernetes/kubernetes/pull/132772), [@saschagrunert](https://github.com/saschagrunert)) [SIG Auth]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132772", - "pr_number": 132772, - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth" - ] - }, - "132773": { - "commit": "1bc48d707cc1404cc684341c804a5e966c3367f7", - "text": "Removed deprecated `gogo` protocol definitions from `k8s.io/kubelet/pkg/apis/pluginregistration` in favor of `google.golang.org/protobuf`.", - "markdown": "Removed deprecated `gogo` protocol definitions from `k8s.io/kubelet/pkg/apis/pluginregistration` in favor of `google.golang.org/protobuf`. ([#132773](https://github.com/kubernetes/kubernetes/pull/132773), [@saschagrunert](https://github.com/saschagrunert))", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132773", - "pr_number": 132773, - "areas": [ - "kubelet", - "dependency" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "132776": { - "commit": "3d007ecdfa23730b972c9299f2687d6aa50b5637", - "text": "`kubeadm`: Started using a named port `probe-port` for all probes in the static pod manifests generated by `kubeadm` for the `kube-apiserver`, `kube-controller-manager`, `kube-scheduler`, and related components. If probe port values were previously patched using `kubeadm` patches, the corresponding named port under the container’s `ports` field must now also be patched.", - "markdown": "`kubeadm`: Started using a named port `probe-port` for all probes in the static pod manifests generated by `kubeadm` for the `kube-apiserver`, `kube-controller-manager`, `kube-scheduler`, and related components. If probe port values were previously patched using `kubeadm` patches, the corresponding named port under the container’s `ports` field must now also be patched. ([#132776](https://github.com/kubernetes/kubernetes/pull/132776), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132776", - "pr_number": 132776, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "132777": { - "commit": "3b12bcd546bfd36863778b92db7eb49acfef887b", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pkg/security and plugin/pkg.", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pkg/security and plugin/pkg. ([#132777](https://github.com/kubernetes/kubernetes/pull/132777), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Auth, Node and Release]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132777", - "pr_number": 132777, - "areas": [ - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "node", - "release" - ], - "duplicate": true, - "is_mapped": true - }, - "132778": { - "commit": "4708b078a760cac3fecd7dd6f2a67f9249ba9c35", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/apis (1/2).", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/apis (1/2). ([#132778](https://github.com/kubernetes/kubernetes/pull/132778), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Apps and Network]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132778", - "pr_number": 132778, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true, - "is_mapped": true - }, - "132779": { - "commit": "f41b45838d32ee614d088a06ad1bf8e1fa0d5019", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/apis (2/2).", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/apis (2/2). ([#132779](https://github.com/kubernetes/kubernetes/pull/132779), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Apps, Auth and Storage]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132779", - "pr_number": 132779, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "auth", - "storage" - ], - "duplicate": true, - "is_mapped": true - }, - "132781": { - "commit": "bedb915a4e7120c90fee1343693a9a403cb06d92", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/controller (1/2).", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/controller (1/2). ([#132781](https://github.com/kubernetes/kubernetes/pull/132781), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Apps and Network]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132781", - "pr_number": 132781, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "network" - ], - "duplicate": true, - "is_mapped": true - }, - "132784": { - "commit": "5f0e359619a38d3cac69f6a1db75fcb97151fab4", - "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/controller (2/2).", - "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/controller (2/2). ([#132784](https://github.com/kubernetes/kubernetes/pull/132784), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Apps, Network, Node and Storage]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132784", - "pr_number": 132784, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "apps", - "network", - "node", - "storage" - ], - "duplicate": true, - "is_mapped": true - }, - "132794": { - "commit": "5f34f9233b2e2f9714b71dc1e1a0dbf24548866c", - "text": "Replaced Boolean-pointer-helper functions with the `k8s.io/utils/ptr` implementations.", - "markdown": "Replaced Boolean-pointer-helper functions with the `k8s.io/utils/ptr` implementations. ([#132794](https://github.com/kubernetes/kubernetes/pull/132794), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Auth, CLI, Node and Testing]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132794", - "pr_number": 132794, - "areas": [ - "test", - "kubelet", - "apiserver" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "auth", - "cli", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132800": { - "commit": "768407a30d22085ed2d8a0333dd94aa83e5c2073", - "text": "`kube-controller-manager` reported the following metrics for `ResourceClaims` with admin access:\n- `resourceclaim_controller_creates_total` count metric with labels `admin_access` (true or false), `status` (failure or success) to track the total number of `ResourceClaims` creation requests\n- `resourceclaim_controller_resource_claims` gauge metric with labels `admin_access` (true or false), `allocated` (true or false) to track the current number of `ResourceClaims`.", - "markdown": "`kube-controller-manager` reported the following metrics for `ResourceClaims` with admin access:\n - `resourceclaim_controller_creates_total` count metric with labels `admin_access` (true or false), `status` (failure or success) to track the total number of `ResourceClaims` creation requests\n - `resourceclaim_controller_resource_claims` gauge metric with labels `admin_access` (true or false), `allocated` (true or false) to track the current number of `ResourceClaims`. ([#132800](https://github.com/kubernetes/kubernetes/pull/132800), [@ritazh](https://github.com/ritazh)) [SIG Apps, Auth, Instrumentation and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5018", - "type": "KEP" - } - ], - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132800", - "pr_number": 132800, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "auth", - "instrumentation", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132803": { - "commit": "2bdcad7419c7a584da4174513e36f867e88424df", - "text": "Fixed an issue where the kubelet token cache returned stale tokens when service accounts were recreated with the same name. The cache is now UID-aware. Additionally, the new `TokenRequestServiceAccountUIDValidation` feature gate (Beta, enabled by default) ensures the `TokenRequest` UID matches the service account UID when set.", - "markdown": "Fixed an issue where the kubelet token cache returned stale tokens when service accounts were recreated with the same name. The cache is now UID-aware. Additionally, the new `TokenRequestServiceAccountUIDValidation` feature gate (Beta, enabled by default) ensures the `TokenRequest` UID matches the service account UID when set. ([#132803](https://github.com/kubernetes/kubernetes/pull/132803), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Node and Testing]", - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132803", - "pr_number": 132803, - "areas": [ - "test", - "kubelet", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132806": { - "commit": "b8450dc451f6cef3774f480b5f8053a6844c3b9c", - "text": "Replaced `toPtr` helper functions with the \"k8s.io/utils/ptr\" implementations.", - "markdown": "Replaced `toPtr` helper functions with the \"k8s.io/utils/ptr\" implementations. ([#132806](https://github.com/kubernetes/kubernetes/pull/132806), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Apps, Testing and Windows]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132806", - "pr_number": 132806, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "testing", - "windows" - ], - "duplicate": true, - "is_mapped": true - }, - "132821": { - "commit": "3dd0e86190cc023a98f59d48d75efde08a27fd82", - "text": "Introduced the `admissionregistration.k8s.io/v1beta1/MutatingAdmissionPolicy` API type. To enable, enable the `MutatingAdmissionPolicy` feature gate (which was off by default) and set `--runtime-config=admissionregistration.k8s.io/v1beta1=true` on the kube-apiserver. \nNote that the default stored version remained alpha in 1.34, and whoever enabled beta during 1.34 needed to run a storage migration yourself to ensure you don't depend on alpha data in etcd.", - "markdown": "Introduced the `admissionregistration.k8s.io/v1beta1/MutatingAdmissionPolicy` API type. To enable, enable the `MutatingAdmissionPolicy` feature gate (which was off by default) and set `--runtime-config=admissionregistration.k8s.io/v1beta1=true` on the kube-apiserver. \n Note that the default stored version remained alpha in 1.34, and whoever enabled beta during 1.34 needed to run a storage migration yourself to ensure you don't depend on alpha data in etcd. ([#132821](https://github.com/kubernetes/kubernetes/pull/132821), [@cici37](https://github.com/cici37)) [SIG API Machinery, Etcd and Testing]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132821", - "pr_number": 132821, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "etcd", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132822": { - "commit": "fdefb8a9e6a1a22298bf28c591b48232ecbb4aec", - "text": "Promoted Linux node pressure stall information (PSI) metrics to beta.", - "markdown": "Promoted Linux node pressure stall information (PSI) metrics to beta. ([#132822](https://github.com/kubernetes/kubernetes/pull/132822), [@roycaihw](https://github.com/roycaihw)) [SIG Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4205-psi-metric", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/reference/instrumentation/node-metrics/#psi", - "type": "official" - } - ], - "author": "roycaihw", - "author_url": "https://github.com/roycaihw", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132822", - "pr_number": 132822, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "132832": { - "commit": "a6f32c0e63e436c44d83b326e41c64e2887a90b3", - "text": "Updated `kubectl get job` to display the `SuccessCriteriaMet` status for listed jobs.", - "markdown": "Updated `kubectl get job` to display the `SuccessCriteriaMet` status for listed jobs. ([#132832](https://github.com/kubernetes/kubernetes/pull/132832), [@Goend](https://github.com/Goend)) [SIG Apps and CLI]", - "author": "Goend", - "author_url": "https://github.com/Goend", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132832", - "pr_number": 132832, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "cli" - ], - "duplicate": true, - "is_mapped": true - }, - "132833": { - "commit": "5df27c4922f685a53fd32aab82fe6e2257c4d86a", - "text": "Removed deprecated gogo protocol definitions from `k8s.io/kms/apis` in favor of `google.golang.org/protobuf`.", - "markdown": "Removed deprecated gogo protocol definitions from `k8s.io/kms/apis` in favor of `google.golang.org/protobuf`. ([#132833](https://github.com/kubernetes/kubernetes/pull/132833), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Auth and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132833", - "pr_number": 132833, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "duplicate": true - }, - "132837": { - "commit": "f9fde2dfbdfb73c25e0a17d675313748948cd78c", - "text": "Fixed runtime cost estimation for `x-int-or-string` custom resource schemas with maximum lengths.", - "markdown": "Fixed runtime cost estimation for `x-int-or-string` custom resource schemas with maximum lengths. ([#132837](https://github.com/kubernetes/kubernetes/pull/132837), [@JoelSpeed](https://github.com/JoelSpeed))", - "author": "JoelSpeed", - "author_url": "https://github.com/JoelSpeed", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132837", - "pr_number": 132837, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132838": { - "commit": "b1b15a57e68338099daa4b934b6235db4c429a66", - "text": "Updated `kubeadm` to use the `InitialCorruptCheck=true` etcd feature gate instead of the deprecated `--experimental-initial-corrupt-check` flag. Also replaced the use of `--experimental-watch-progress-notify-interval` with its graduated counterpart `--watch-progress-notify-interval`.", - "markdown": "Updated `kubeadm` to use the `InitialCorruptCheck=true` etcd feature gate instead of the deprecated `--experimental-initial-corrupt-check` flag. Also replaced the use of `--experimental-watch-progress-notify-interval` with its graduated counterpart `--watch-progress-notify-interval`. ([#132838](https://github.com/kubernetes/kubernetes/pull/132838), [@AwesomePatrol](https://github.com/AwesomePatrol))", - "author": "AwesomePatrol", - "author_url": "https://github.com/AwesomePatrol", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132838", - "pr_number": 132838, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "132840": { - "commit": "b266ac2c3e42c2c4843f81e20213d2b2f43e450a", - "text": "Reduced excessive logging in the Volume Binding scheduler plugin by lowering the verbosity of high-frequency messages from `V(4)` to `V(5)`.", - "markdown": "Reduced excessive logging in the Volume Binding scheduler plugin by lowering the verbosity of high-frequency messages from `V(4)` to `V(5)`. ([#132840](https://github.com/kubernetes/kubernetes/pull/132840), [@ppmechlinski](https://github.com/ppmechlinski)) [SIG Autoscaling, Scheduling and Storage]", - "author": "ppmechlinski", - "author_url": "https://github.com/ppmechlinski", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132840", - "pr_number": 132840, - "kinds": [ - "cleanup" - ], - "sigs": [ - "autoscaling", - "scheduling", - "storage" - ], - "duplicate": true, - "is_mapped": true - }, - "132868": { - "commit": "2b2ea27250d97f7bf65fb2e08a71348307e08cbf", - "text": "Pods were not allowed to mix the usage of `user-namespaces` (`hostUsers: false`) and `volumeDevices`. Kubernetes returned an error in this case.", - "markdown": "Pods were not allowed to mix the usage of `user-namespaces` (`hostUsers: false`) and `volumeDevices`. Kubernetes returned an error in this case. ([#132868](https://github.com/kubernetes/kubernetes/pull/132868), [@rata](https://github.com/rata))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/63d4f6f2aa0e2eb0b83067b067c4949643b1b24c/keps/sig-node/127-user-namespaces/README.md#non-conformant-volume-types", - "type": "KEP" - } - ], - "author": "rata", - "author_url": "https://github.com/rata", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132868", - "pr_number": 132868, - "kinds": [ - "bug", - "cleanup" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "132876": { - "commit": "e44ddbf1dae532b00999970ffe078c2d06920309", - "text": "Enabled compact snapshots in the watch cache based on `etcd` compaction events.", - "markdown": "Enabled compact snapshots in the watch cache based on `etcd` compaction events. ([#132876](https://github.com/kubernetes/kubernetes/pull/132876), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132876", - "pr_number": 132876, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "etcd" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132884": { - "commit": "bd6e6e80cbed1833debc1ad6e5982c46c14d2ab4", - "text": "Added the `DetectCacheInconsistency` feature gate, allowing the API server to periodically verify consistency between its `cache` and `etcd`. Detected inconsistencies reported via the `apiserver_storage_consistency_checks_total` metric and trigger purging of affected cache snapshots.", - "markdown": "Added the `DetectCacheInconsistency` feature gate, allowing the API server to periodically verify consistency between its `cache` and `etcd`. Detected inconsistencies reported via the `apiserver_storage_consistency_checks_total` metric and trigger purging of affected cache snapshots. ([#132884](https://github.com/kubernetes/kubernetes/pull/132884), [@serathius](https://github.com/serathius)) [SIG API Machinery, Instrumentation and Testing]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132884", - "pr_number": 132884, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132886": { - "commit": "010e0a9b5b0687a41b0eda1813b444f476c9bdec", - "text": "Executed API calls dispatched during pod scheduling asynchronously if the `SchedulerAsyncAPICalls` feature gate was enabled.\nOut-of-tree plugins used `APIDispatcher` and `APICacher` from the framework to dispatch their own calls.", - "markdown": "Executed API calls dispatched during pod scheduling asynchronously if the `SchedulerAsyncAPICalls` feature gate was enabled.\n Out-of-tree plugins used `APIDispatcher` and `APICacher` from the framework to dispatch their own calls. ([#132886](https://github.com/kubernetes/kubernetes/pull/132886), [@macsko](https://github.com/macsko)) [SIG Release, Scheduling and Testing]", - "author": "macsko", - "author_url": "https://github.com/macsko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132886", - "pr_number": 132886, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132893": { - "commit": "81986595c87365f2155b20af1d361bf2fb96b544", - "text": "Added `apiserver_resource_size_estimate_bytes` metric to API server.", - "markdown": "Added `apiserver_resource_size_estimate_bytes` metric to API server. ([#132893](https://github.com/kubernetes/kubernetes/pull/132893), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd and Instrumentation]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132893", - "pr_number": 132893, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "etcd", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132895": { - "commit": "8b9569babeb4ec37b561007393cb8010b9db71ae", - "text": "Fixed a 1.33 regression that causes a nil panic in kube-scheduler when aggregating resource requested across container's spec and status.", - "markdown": "Fixed a 1.33 regression that causes a nil panic in kube-scheduler when aggregating resource requested across container's spec and status. ([#132895](https://github.com/kubernetes/kubernetes/pull/132895), [@yue9944882](https://github.com/yue9944882)) [SIG Node and Scheduling]", - "author": "yue9944882", - "author_url": "https://github.com/yue9944882", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132895", - "pr_number": 132895, - "kinds": [ - "bug", - "api-change", - "regression" - ], - "sigs": [ - "node", - "scheduling" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132896": { - "commit": "d4ac5efd9ddba7b93f6c304c0278723bcc9cd80e", - "text": "Updated the Kubernetes build environment to use Go `1.24.5`.", - "markdown": "Updated the Kubernetes build environment to use Go `1.24.5`. ([#132896](https://github.com/kubernetes/kubernetes/pull/132896), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132896", - "pr_number": 132896, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132901": { - "commit": "0c44a2b00b3915b70c9082aa350274abf38f864c", - "text": "Graduated `ListFromCacheSnapshot` to beta.", - "markdown": "Graduated `ListFromCacheSnapshot` to beta. ([#132901](https://github.com/kubernetes/kubernetes/pull/132901), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132901", - "pr_number": 132901, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "etcd" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132902": { - "commit": "b09f1bfe1212a3433cfe3ba97c86e90617a62916", - "text": "Added `started_user_namespaced_pods_total` and `started_user_namespaced_pods_errors_total` for tracking the successes and failures in creating pods if a user namespace was requested.", - "markdown": "Added `started_user_namespaced_pods_total` and `started_user_namespaced_pods_errors_total` for tracking the successes and failures in creating pods if a user namespace was requested. ([#132902](https://github.com/kubernetes/kubernetes/pull/132902), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing]", - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132902", - "pr_number": 132902, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132903": { - "commit": "06a8c4a58e955f95b181328fcfa2d8648dc4e6c7", - "text": "Started recording metrics for in-place Pod resize.", - "markdown": "Started recording metrics for in-place Pod resize. ([#132903](https://github.com/kubernetes/kubernetes/pull/132903), [@natasha41575](https://github.com/natasha41575))", - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132903", - "pr_number": 132903, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "132907": { - "commit": "07f3e2f01b715549bf93a8b4ee08642052cae6f9", - "text": "Replaced `boolPtrFn` helper functions with the \"k8s.io/utils/ptr\" implementation.", - "markdown": "Replaced `boolPtrFn` helper functions with the \"k8s.io/utils/ptr\" implementation. ([#132907](https://github.com/kubernetes/kubernetes/pull/132907), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132907", - "pr_number": 132907, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "architecture" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "132910": { - "commit": "1b6a6cc9c05ab55d8b22f2f5c16b93dbe6e6baf7", - "text": "Added memory tracking to scheduler performance tests to help detect memory leaks and monitored memory usage patterns while running `scheduler_perf`.", - "markdown": "Added memory tracking to scheduler performance tests to help detect memory leaks and monitored memory usage patterns while running `scheduler_perf`. ([#132910](https://github.com/kubernetes/kubernetes/pull/132910), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Testing]", - "author": "utam0k", - "author_url": "https://github.com/utam0k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132910", - "pr_number": 132910, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132912": { - "commit": "e0f20a38ed1856b2be4a06832c16f047a612871d", - "text": "Graduated `PodObservedGenerationTracking` feature to beta and had it on by default. This feature meant that the top level `status.observedGeneration` and `status.conditions[].observedGeneration` fields in Pods were populated to reflect the `metadata.generation` of the podspec at the time that the status or condition was reported.", - "markdown": "Graduated `PodObservedGenerationTracking` feature to beta and had it on by default. This feature meant that the top level `status.observedGeneration` and `status.conditions[].observedGeneration` fields in Pods were populated to reflect the `metadata.generation` of the podspec at the time that the status or condition was reported. ([#132912](https://github.com/kubernetes/kubernetes/pull/132912), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/5067", - "type": "external" - } - ], - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132912", - "pr_number": 132912, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132932": { - "commit": "11f7fd5f4404a5018302e12c88d363a2e33544e9", - "text": "Added the `SizeBasedListCostEstimate` feature gate (enabled by default), which changes how APF seats are assigned to `LIST` requests. With this feature, one seat is assigned per 100KB of data loaded into memory at once during a `LIST` operation.", - "markdown": "Added the `SizeBasedListCostEstimate` feature gate (enabled by default), which changes how APF seats are assigned to `LIST` requests. With this feature, one seat is assigned per 100KB of data loaded into memory at once during a `LIST` operation. ([#132932](https://github.com/kubernetes/kubernetes/pull/132932), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132932", - "pr_number": 132932, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "132933": { - "commit": "727a6e6db50e6a99ecea2080e88f4d889f4f04d8", - "text": "Kubelet detected terminal CSI volume mount failures due to exceeded attachment limits on the node and marked the Stateful Pod as Failed, allowing its controller to recreate it. This prevented Pods from getting stuck indefinitely in the `ContainerCreating` state.", - "markdown": "Kubelet detected terminal CSI volume mount failures due to exceeded attachment limits on the node and marked the Stateful Pod as Failed, allowing its controller to recreate it. This prevented Pods from getting stuck indefinitely in the `ContainerCreating` state. ([#132933](https://github.com/kubernetes/kubernetes/pull/132933), [@torredil](https://github.com/torredil)) [SIG Apps, Node, Storage and Testing]", - "author": "torredil", - "author_url": "https://github.com/torredil", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132933", - "pr_number": 132933, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132935": { - "commit": "dfc0998baa4d6c2cd630aa3c5b8def4e9b1fcd8e", - "text": "Added support for encoding and decoding types that implement the standard library interfaces `json.Marshaler`, `json.Unmarshaler`, `encoding.TextMarshaler`, or `encoding.TextUnmarshaler` to and from CBOR by transcoding.", - "markdown": "Added support for encoding and decoding types that implement the standard library interfaces `json.Marshaler`, `json.Unmarshaler`, `encoding.TextMarshaler`, or `encoding.TextUnmarshaler` to and from CBOR by transcoding. ([#132935](https://github.com/kubernetes/kubernetes/pull/132935), [@benluddy](https://github.com/benluddy))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4222", - "type": "external" - } - ], - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132935", - "pr_number": 132935, - "areas": [ - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132940": { - "commit": "ba9ba5f92ae86e8b666a54f5cb64bd27d4cbc1c6", - "text": "Promoted the `KubeletPodResourcesDynamicResources` and `KubeletPodResourcesGet` feature gates to beta, which were enabled by default if DRA went to GA.", - "markdown": "Promoted the `KubeletPodResourcesDynamicResources` and `KubeletPodResourcesGet` feature gates to beta, which were enabled by default if DRA went to GA. ([#132940](https://github.com/kubernetes/kubernetes/pull/132940), [@guptaNswati](https://github.com/guptaNswati))", - "author": "guptaNswati", - "author_url": "https://github.com/guptaNswati", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132940", - "pr_number": 132940, - "kinds": [ - "feature" - ], - "feature": true, - "is_mapped": true - }, - "132942": { - "commit": "1451dd1b0873e801e082f3a06a52685bcd68dcac", - "text": "Added support for a new kubectl output format, `kyaml`. KYAML was a strict subset of YAML and should be accepted by any YAML processor. The formatting of KYAML was halfway between JSON and YAML. Because it was more explicit than the default YAML style, it was less error-prone.", - "markdown": "Added support for a new kubectl output format, `kyaml`. KYAML was a strict subset of YAML and should be accepted by any YAML processor. The formatting of KYAML was halfway between JSON and YAML. Because it was more explicit than the default YAML style, it was less error-prone. ([#132942](https://github.com/kubernetes/kubernetes/pull/132942), [@thockin](https://github.com/thockin)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Contributor Experience, Instrumentation, Network, Node, Scheduling, Storage and Testing]", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132942", - "pr_number": 132942, - "areas": [ - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "contributor-experience", - "instrumentation", - "network", - "node", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132965": { - "commit": "356d0b9f1834c336abb190fda0033eb6adeb2726", - "text": "Deprecated `apiserver_storage_objects` and replaced it with `apiserver_resource_objects` metric using labels consistent with other metrics.", - "markdown": "Deprecated `apiserver_storage_objects` and replaced it with `apiserver_resource_objects` metric using labels consistent with other metrics. ([#132965](https://github.com/kubernetes/kubernetes/pull/132965), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd and Instrumentation]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132965", - "pr_number": 132965, - "areas": [ - "apiserver", - "stable-metrics" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "etcd", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132999": { - "commit": "3e3b2447ffe7643eb47eae41f2b9ed29e8775b0e", - "text": "Graduated `PodLevelResources` feature to beta and have it on by default. This feature allowed defining CPU and memory resources for an entire pod in `pod.spec.resources`.", - "markdown": "Graduated `PodLevelResources` feature to beta and have it on by default. This feature allowed defining CPU and memory resources for an entire pod in `pod.spec.resources`. ([#132999](https://github.com/kubernetes/kubernetes/pull/132999), [@ndixita](https://github.com/ndixita))", - "documentation": [ - { - "description": "[KEP]: [KEP]", - "url": "https://kep.k8s.io/2837", - "type": "external" - } - ], - "author": "ndixita", - "author_url": "https://github.com/ndixita", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132999", - "pr_number": 132999, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "133012": { - "commit": "4a80270b30f4acdcdfd7b4dac62b298c49d3565b", - "text": "Memory limits could be decreased with a `NotRequired` resize restart policy. When decreasing memory limits,a best-effort check was performed to prevent limits from decreasing below usage and triggering an OOM-kill.", - "markdown": "Memory limits could be decreased with a `NotRequired` resize restart policy. When decreasing memory limits,a best-effort check was performed to prevent limits from decreasing below usage and triggering an OOM-kill. ([#133012](https://github.com/kubernetes/kubernetes/pull/133012), [@tallclair](https://github.com/tallclair)) [SIG Apps, Node and Testing]", - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133012", - "pr_number": 133012, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "133013": { - "commit": "5231ff1cad2a1d420890e42226c214bdf8ec7c3e", - "text": "The `conditionType` is \"oneof\" approved/denied check of CertificateSigningRequest's `.status.conditions` field was migrated to declarative validation. \nIf the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics.\nIf the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields.", - "markdown": "The `conditionType` is \"oneof\" approved/denied check of CertificateSigningRequest's `.status.conditions` field was migrated to declarative validation. \n If the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics.\n If the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields. ([#133013](https://github.com/kubernetes/kubernetes/pull/133013), [@aaron-prindle](https://github.com/aaron-prindle)) [SIG API Machinery and Auth]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/5073-declarative-validation-with-validation-gen/README.md", - "type": "KEP" - } - ], - "author": "aaron-prindle", - "author_url": "https://github.com/aaron-prindle", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133013", - "pr_number": 133013, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133016": { - "commit": "a32768df779f44b1e486426fc695559a16711afd", - "text": "kubelet reported a hash of the credential provider configuration via the `kubelet_credential_provider_config_info` metric. The hash was exposed in the `hash` label.", - "markdown": "Kubelet reported a hash of the credential provider configuration via the `kubelet_credential_provider_config_info` metric. The hash was exposed in the `hash` label. ([#133016](https://github.com/kubernetes/kubernetes/pull/133016), [@aramase](https://github.com/aramase)) [SIG API Machinery and Auth]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133016", - "pr_number": 133016, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "133017": { - "commit": "cdef93cedbdcb060e69cd71d1280ad7b8eb82781", - "text": "The `KubeletServiceAccountTokenForCredentialProviders` feature was beta and enabled by default.", - "markdown": "The `KubeletServiceAccountTokenForCredentialProviders` feature was beta and enabled by default. ([#133017](https://github.com/kubernetes/kubernetes/pull/133017), [@aramase](https://github.com/aramase)) [SIG Auth and Node]", - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133017", - "pr_number": 133017, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "auth", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133018": { - "commit": "abbee0108de419a88be21ccee8e723cd260be417", - "text": "Eliminated work when creating Services or understanding port purposes, especially for external resources deployed via Helm charts.", - "markdown": "Eliminated work when creating Services or understanding port purposes, especially for external resources deployed via Helm charts. ([#133018](https://github.com/kubernetes/kubernetes/pull/133018), [@rushmash91](https://github.com/rushmash91))", - "author": "rushmash91", - "author_url": "https://github.com/rushmash91", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133018", - "pr_number": 133018, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "do_not_publish": true, - "is_mapped": true - }, - "133021": { - "commit": "461ba83084ab7cb91ab692687bb7aedb05c6eb65", - "text": "If `PreBindPreFlight` returned `Skip`, the scheduler didn't run the plugin at `PreBind`.\nIf any `PreBindPreFlight` returned `Success`, the scheduler put NominatedNodeName to the pod \nso that other components (such as the cluster autoscaler) could notice the pod was going to be bound to the node.", - "markdown": "If `PreBindPreFlight` returned `Skip`, the scheduler didn't run the plugin at `PreBind`.\n If any `PreBindPreFlight` returned `Success`, the scheduler put NominatedNodeName to the pod \n so that other components (such as the cluster autoscaler) could notice the pod was going to be bound to the node. ([#133021](https://github.com/kubernetes/kubernetes/pull/133021), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133021", - "pr_number": 133021, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "133023": { - "commit": "84cacae7046df93c1f6f8ea97c912d948e1ad06a", - "text": "kubeadm: Fixed a bug where the default args for etcd were not correct when a local etcd image was used and the etcd version was less than 3.6.0.", - "markdown": "Kubeadm: Fixed a bug where the default args for etcd were not correct when a local etcd image was used and the etcd version was less than 3.6.0. ([#133023](https://github.com/kubernetes/kubernetes/pull/133023), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133023", - "pr_number": 133023, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "133027": { - "commit": "4b263baea18efe86177d63a1c00234cc692afa2e", - "text": "Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/podresources` in favor of `google.golang.org/protobuf`.", - "markdown": "Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/podresources` in favor of `google.golang.org/protobuf`. ([#133027](https://github.com/kubernetes/kubernetes/pull/133027), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133027", - "pr_number": 133027, - "areas": [ - "test", - "kubelet", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "133028": { - "commit": "47d9d86326a0b56d40c84ad4d68df073c15bba28", - "text": "Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/deviceplugin` in favor of `google.golang.org/protobuf`.", - "markdown": "Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/deviceplugin` in favor of `google.golang.org/protobuf`. ([#133028](https://github.com/kubernetes/kubernetes/pull/133028), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133028", - "pr_number": 133028, - "areas": [ - "test", - "kubelet", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true - }, - "133030": { - "commit": "792061af02da263576b9b0676c331e28b93d3943", - "text": "Replaced timer ptr helper function with the `k8s.io/utils/ptr` implementations.", - "markdown": "Replaced timer ptr helper function with the `k8s.io/utils/ptr` implementations. ([#133030](https://github.com/kubernetes/kubernetes/pull/133030), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth]", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133030", - "pr_number": 133030, - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "duplicate": true, - "is_mapped": true - }, - "133034": { - "commit": "57a32e885c40d7dd3f730d0004bab5bb9c082b20", - "text": "Increased APF max seats to 100 for LIST requests.", - "markdown": "Increased APF max seats to 100 for LIST requests. ([#133034](https://github.com/kubernetes/kubernetes/pull/133034), [@serathius](https://github.com/serathius))", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133034", - "pr_number": 133034, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "133042": { - "commit": "7bf8066a58a24720a30656ac8f08b8c68cdd0a8d", - "text": "Graduated the WinOverlay feature in the kube-proxy to GA. The **WinOverlay** feature gate was enabled by default.", - "markdown": "Graduated the WinOverlay feature in the kube-proxy to GA. The **WinOverlay** feature gate was enabled by default. ([#133042](https://github.com/kubernetes/kubernetes/pull/133042), [@rzlink](https://github.com/rzlink)) [SIG Network and Windows]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/5100-windows-dsr-and-overlay-support", - "type": "KEP" - } - ], - "author": "rzlink", - "author_url": "https://github.com/rzlink", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133042", - "pr_number": 133042, - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "windows" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "133046": { - "commit": "9adc49ffd42a89f7505fb80a902dd00c10238dd6", - "text": "Added validation to reject Pods using the `PodLevelResources` feature on Windows OS due to lack of support. The API server rejected Pods with pod-level resources and a `Pod.spec.os.name` targeting Windows. Kubelet on nodes running Windows also rejected Pods with pod-level resources at the admission phase.", - "markdown": "Added validation to reject Pods using the `PodLevelResources` feature on Windows OS due to lack of support. The API server rejected Pods with pod-level resources and a `Pod.spec.os.name` targeting Windows. Kubelet on nodes running Windows also rejected Pods with pod-level resources at the admission phase. ([#133046](https://github.com/kubernetes/kubernetes/pull/133046), [@toVersus](https://github.com/toVersus)) [SIG Apps and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2837", - "type": "KEP" - } - ], - "author": "toVersus", - "author_url": "https://github.com/toVersus", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133046", - "pr_number": 133046, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "apps", - "node" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133060": { - "commit": "e09946e6c1c8850ab820c6a1f7a424246617a346", - "text": "Fixed recording the `kubelet_container_resize_requests_total` metric to include all resize-related updates.", - "markdown": "Fixed recording the `kubelet_container_resize_requests_total` metric to include all resize-related updates. ([#133060](https://github.com/kubernetes/kubernetes/pull/133060), [@natasha41575](https://github.com/natasha41575))", - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133060", - "pr_number": 133060, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "133062": { - "commit": "7c2cc0fa0d00aeadcf085f655667d3afcfff0a66", - "text": "Promoted Windows graceful shutdown feature from alpha to beta.", - "markdown": "Promoted Windows graceful shutdown feature from alpha to beta. ([#133062](https://github.com/kubernetes/kubernetes/pull/133062), [@zylxjtu](https://github.com/zylxjtu))", - "documentation": [ - { - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/4802-windows-node-shutdown", - "type": "KEP" - } - ], - "author": "zylxjtu", - "author_url": "https://github.com/zylxjtu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133062", - "pr_number": 133062, - "kinds": [ - "feature" - ], - "sigs": [ - "windows" - ], - "feature": true, - "is_mapped": true - }, - "133068": { - "commit": "e84a6cb7ef17538ca7c3ee02f1b69f5c7fef7059", - "text": "The validation in the CertificateSigningRequest `/status` and `/approval` subresources was migrated to declarative validation.\nIf the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics.\nIf the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields.", - "markdown": "The validation in the CertificateSigningRequest `/status` and `/approval` subresources was migrated to declarative validation.\n If the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics.\n If the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields. ([#133068](https://github.com/kubernetes/kubernetes/pull/133068), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth]", - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133068", - "pr_number": 133068, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "133076": { - "commit": "8e12e795d07f44a8d4f08adf07847a05889da742", - "text": "DRA driver helper: Fixed handling of apiserver restart when running on a Kubernetes version which did not support the `resource.k8s.io` version used by the DRA driver.", - "markdown": "DRA driver helper: Fixed handling of apiserver restart when running on a Kubernetes version which did not support the `resource.k8s.io` version used by the DRA driver. ([#133076](https://github.com/kubernetes/kubernetes/pull/133076), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133076", - "pr_number": 133076, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "failing-test" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133085": { - "commit": "01c55353873dcb80b1280c0d470ca29f07b48466", - "text": "DRAAdminAccess was enabled by default allowing users to create `ResourceClaims` and `ResourceClaimTemplates` in privileged mode to grant access to devices that were in use by other users for admin tasks like monitoring health or status of the device.", - "markdown": "DRAAdminAccess was enabled by default allowing users to create `ResourceClaims` and `ResourceClaimTemplates` in privileged mode to grant access to devices that were in use by other users for admin tasks like monitoring health or status of the device. ([#133085](https://github.com/kubernetes/kubernetes/pull/133085), [@ritazh](https://github.com/ritazh)) [SIG Auth and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5018", - "type": "KEP" - } - ], - "author": "ritazh", - "author_url": "https://github.com/ritazh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133085", - "pr_number": 133085, - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "133120": { - "commit": "2a03dd1d5ecc66ca6a21fc9f526d4eedc9fef179", - "text": "Added 3 new metrics for monitoring async API calls in the scheduler when the `SchedulerAsyncAPICalls` feature gate was enabled:\n - `scheduler_async_api_call_execution_total`: tracks executed API calls by call type and result (success/error)\n - `scheduler_async_api_call_duration_seconds`: histogram of API call execution duration by call type and result\n - `scheduler_pending_async_api_calls`: gauge showing current number of pending API calls in the queue.", - "markdown": "Added 3 new metrics for monitoring async API calls in the scheduler when the `SchedulerAsyncAPICalls` feature gate was enabled:\n - `scheduler_async_api_call_execution_total`: tracks executed API calls by call type and result (success/error)\n - `scheduler_async_api_call_duration_seconds`: histogram of API call execution duration by call type and result\n - `scheduler_pending_async_api_calls`: gauge showing current number of pending API calls in the queue. ([#133120](https://github.com/kubernetes/kubernetes/pull/133120), [@utam0k](https://github.com/utam0k)) [SIG Release and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-scheduling/5229-asynchronous-api-calls-during-scheduling/README.md", - "type": "KEP" - } - ], - "author": "utam0k", - "author_url": "https://github.com/utam0k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133120", - "pr_number": 133120, - "areas": [ - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "scheduling" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "133135": { - "commit": "c1bccaedaaffe1f2d38006b21066cf7a96daecee", - "text": "CRI API had auth fields in image pulling marked as `debug_redact`.", - "markdown": "CRI API had auth fields in image pulling marked as `debug_redact`. ([#133135](https://github.com/kubernetes/kubernetes/pull/133135), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133135", - "pr_number": 133135, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "133136": { - "commit": "92ddde52d2a58387ba7ea45d3c9207a77abb56c8", - "text": "Changed handling of `CustomResourceDefinitions` with unrecognized formats. Writing a schema with an unrecognized format now triggered a warning (the write was still accepted).", - "markdown": "Changed handling of `CustomResourceDefinitions` with unrecognized formats. Writing a schema with an unrecognized format now triggered a warning (the write was still accepted). ([#133136](https://github.com/kubernetes/kubernetes/pull/133136), [@yongruilin](https://github.com/yongruilin))", - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133136", - "pr_number": 133136, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "133157": { - "commit": "ebbebe8be6b24c7742b08dcb82172413e7fcb6e3", - "text": "Bumped `KubeletCgroupDriverFromCRI` to GA and add metric to track out-of-support CRI implementations.", - "markdown": "Bumped `KubeletCgroupDriverFromCRI` to GA and add metric to track out-of-support CRI implementations. ([#133157](https://github.com/kubernetes/kubernetes/pull/133157), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing]", - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133157", - "pr_number": 133157, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "133164": { - "commit": "24c896108d9d707195a53bc495ebbe8c2b11362e", - "text": "Bumped DRA API version to `v1` in `deviceattribute` package in `k8s.io/dynamic-resource-allocation`.", - "markdown": "Bumped DRA API version to `v1` in `deviceattribute` package in `k8s.io/dynamic-resource-allocation`. ([#133164](https://github.com/kubernetes/kubernetes/pull/133164), [@everpeace](https://github.com/everpeace))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4381-dra-structured-parameters", - "type": "KEP" - } - ], - "author": "everpeace", - "author_url": "https://github.com/everpeace", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133164", - "pr_number": 133164, - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "133167": { - "commit": "5be5fd022920e0aa77e29792fffbb5f3690547b3", - "text": "Fixed a bug that the async preemption feature keeps preemptor pods unnecessarily in the queue.", - "markdown": "Fixed a bug that the async preemption feature keeps preemptor pods unnecessarily in the queue. ([#133167](https://github.com/kubernetes/kubernetes/pull/133167), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", - "author": "sanposhiho", - "author_url": "https://github.com/sanposhiho", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133167", - "pr_number": 133167, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ] - }, - "133226": { - "commit": "d33916baa473d089d33c9fe336bd172cebdb3b6e", - "text": "Updated the etcd client library to v3.6.4.", - "markdown": "Updated the etcd client library to v3.6.4. ([#133226](https://github.com/kubernetes/kubernetes/pull/133226), [@ivanvc](https://github.com/ivanvc)) [SIG API Machinery, Auth, Cloud Provider and Node]", - "author": "ivanvc", - "author_url": "https://github.com/ivanvc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133226", - "pr_number": 133226, - "areas": [ - "apiserver", - "cloudprovider", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "133276": { - "commit": "74f7a44966f605b67520c1dcb4312f426540176d", - "text": "The scheduler no longer cleared the `nominatedNodeName` field for Pods. External components, such as Cluster Autoscaler and Karpenter, were responsible for managing this field when needed.", - "markdown": "The scheduler no longer cleared the `nominatedNodeName` field for Pods. External components, such as Cluster Autoscaler and Karpenter, were responsible for managing this field when needed. ([#133276](https://github.com/kubernetes/kubernetes/pull/133276), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing]", - "author": "macsko", - "author_url": "https://github.com/macsko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133276", - "pr_number": 133276, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "133279": { - "commit": "91731d05e2291f933083e38dc2ba8ba7ccc52fee", - "text": "Prevented any type of CPU/Memory alignment or hint generation with the Topology Manager from the CPU or Memory Manager when pod-level resources were used in the Pod spec.", - "markdown": "Prevented any type of CPU/Memory alignment or hint generation with the Topology Manager from the CPU or Memory Manager when pod-level resources were used in the Pod spec. ([#133279](https://github.com/kubernetes/kubernetes/pull/133279), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]: [kubernetes/enhancements#2837](", - "url": "https://github.com/kubernetes/enhancements/issues/2837)", - "type": "KEP" - } - ], - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133279", - "pr_number": 133279, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "133293": { - "commit": "9e2a0c7453860bc863f296ba8f5fc49959ca31e3", - "text": "Demoted KEP-5278 feature gates `ClearingNominatedNodeNameAfterBinding` and `NominatedNodeNameForExpectation` to alpha from beta.", - "markdown": "Demoted KEP-5278 feature gates `ClearingNominatedNodeNameAfterBinding` and `NominatedNodeNameForExpectation` to alpha from beta. ([#133293](https://github.com/kubernetes/kubernetes/pull/133293), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]:\u003c", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/5278-nominated-node-name-for-expectation\u003e", - "type": "KEP" - } - ], - "author": "utam0k", - "author_url": "https://github.com/utam0k", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133293", - "pr_number": 133293, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "133350": { - "commit": "7bbcfda63af2feff9ccf685a72a45bc66df0cecd", - "text": "Fixed prerelease lifecycle for `PodCertificateRequest`.", - "markdown": "Fixed prerelease lifecycle for `PodCertificateRequest`. ([#133350](https://github.com/kubernetes/kubernetes/pull/133350), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133350", - "pr_number": 133350, - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "auth" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "133412": { - "commit": "2629fe25faa73837201dcfc7c4de039112ca125f", - "text": "Fixed an issue that caused kube-apiserver to panic in 1.34.0-rc.0.", - "markdown": "Fixed an issue that caused kube-apiserver to panic in 1.34.0-rc.0. ([#133412](https://github.com/kubernetes/kubernetes/pull/133412), [@richabanker](https://github.com/richabanker))", - "author": "richabanker", - "author_url": "https://github.com/richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133412", - "pr_number": 133412, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "etcd" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "133516": { - "commit": "9da4b7ecfb60ea484f8e6c89c42e63506571bc68", - "text": "Kubernetes is now built using Go 1.24.6", - "markdown": "Kubernetes is now built using Go 1.24.6. ([#133516](https://github.com/kubernetes/kubernetes/pull/133516), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133516", - "pr_number": 133516, - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "133570": { - "commit": "8082e9ab157b280c740a623ae9d73679b9ee95a4", - "text": "Document how to contribute to staging repositories by redirecting to the main kubernetes repo", - "markdown": "Document how to contribute to staging repositories by redirecting to the main kubernetes repo ([#133570](https://github.com/kubernetes/kubernetes/pull/133570), [@BenTheElder](https://github.com/BenTheElder))", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133570", - "pr_number": 133570, - "areas": [ - "apiserver", - "cloudprovider", - "code-generation", - "kube-proxy", - "kubectl", - "kubelet" - ], - "kinds": [ - "documentation" - ], - "sigs": [ - "api-machinery", - "instrumentation", - "network", - "storage", - "node", - "scheduling", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "133587": { - "commit": "b7706ef58b36dbd2cd41b161bd6e6e02e1a95601", - "text": "DRA: fixed a data race which, depending on timing, could have led to broken allocation of devices backing extended resources", - "markdown": "DRA: fixed a data race which, depending on timing, could have led to broken allocation of devices backing extended resources ([#133570](https://github.com/kubernetes/kubernetes/pull/133570), [@pohly](https://github.com/pohly)) [SIG Node]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133587", - "pr_number": 133587, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "133604": { - "commit": "4e8b192b66cc2a6952b8f1a5067e563c4019c276", - "text": "Fixed a regression in 1.34 release candidates where object storage count metrics could include all instances of all types instead of only the object count for a particular type", - "markdown": "Fixed a regression in 1.34 release candidates where object storage count metrics could include all instances of all types instead of only the object count for a particular type ([#133604](https://github.com/kubernetes/kubernetes/pull/133604), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133604", - "pr_number": 133604, - "areas": [ - "apiserver" - ], - "kinds": [ - "regression" - ], - "sigs": [ - "api-machinery", - "etcd" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "133409": { - "commit": "ee065dfc80b5762d53c5d9d896a8cc4b1d9c6bd2", - "text": "Make `podcertificaterequestcleaner` role feature-gated", - "markdown": "Make `podcertificaterequestcleaner` role feature-gated ([#133409](https://github.com/kubernetes/kubernetes/pull/133409), [@carlory](https://github.com/carlory)) [SIG Auth]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133409", - "pr_number": 133409, - "kinds": [ - "bug" - ], - "sigs": [ - "auth" - ], - "duplicate_kind": true, - "is_mapped": true - } +{ + "120816": { + "commit": "62f72addf26d2fd25e060554bcd8cf5bdc10e50c", + "text": "Reduced the 5s delay before tainting `node.kubernetes.io/unreachable:NoExecute` when a Node became unreachable.", + "markdown": "Reduced the 5s delay before tainting `node.kubernetes.io/unreachable:NoExecute` when a Node became unreachable. ([#120816](https://github.com/kubernetes/kubernetes/pull/120816), [@tnqn](https://github.com/tnqn)) [SIG Apps and Node]", + "author": "tnqn", + "author_url": "https://github.com/tnqn", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/120816", + "pr_number": 120816, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "122384": { + "commit": "60f0ad4615741bf9aaec7b79e4ed7f65cff7a4a9", + "text": "Removed the deprecated `--register-schedulable` command line argument from the kubelet.", + "markdown": "Removed the deprecated `--register-schedulable` command line argument from the kubelet. ([#122384](https://github.com/kubernetes/kubernetes/pull/122384), [@carlory](https://github.com/carlory)) [SIG Cloud Provider, Node and Scalability]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122384", + "pr_number": 122384, + "areas": [ + "kubelet", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "node", + "scalability" + ], + "duplicate": true + }, + "122634": { + "commit": "5a0f0f7b2d7743915d4677a2e8019262016a44ba", + "text": "Promoted the `SeparateTaintEvictionController` feature gate to GA; it is now enabled unconditionally.", + "markdown": "Promoted the `SeparateTaintEvictionController` feature gate to GA; it is now enabled unconditionally. ([#122634](https://github.com/kubernetes/kubernetes/pull/122634), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3902", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122634", + "pr_number": 122634, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "testing" + ], + "duplicate": true + }, + "125271": { + "commit": "49cd87182cac80a4f3d29e2e65e80c8f88e890da", + "text": "The `baseline` and `restricted` pod security admission levels blocked setting the `host` field on probe and lifecycle handlers.", + "markdown": "The `baseline` and `restricted` pod security admission levels blocked setting the `host` field on probe and lifecycle handlers. ([#125271](https://github.com/kubernetes/kubernetes/pull/125271), [@tssurya](https://github.com/tssurya)) [SIG Auth, Node and Testing]", + "author": "tssurya", + "author_url": "https://github.com/tssurya", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125271", + "pr_number": 125271, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "auth", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "126619": { + "commit": "75862f3f461b8c83f3cbbf441ce4fd5357d3bba0", + "text": "Included the namespace in the output of `kubectl delete` for better identification of resources.", + "markdown": "Included the namespace in the output of `kubectl delete` for better identification of resources. ([#126619](https://github.com/kubernetes/kubernetes/pull/126619), [@totegamma](https://github.com/totegamma))", + "author": "totegamma", + "author_url": "https://github.com/totegamma", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126619", + "pr_number": 126619, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "127183": { + "commit": "d63a52a007da693cb40d2cfaef4f738cee104ab1", + "text": "Added a warning to `kubectl attach`, notifying / reminding users that commands and output are available via the `log` subresource of that Pod.", + "markdown": "Added a warning to `kubectl attach`, notifying / reminding users that commands and output are available via the `log` subresource of that Pod. ([#127183](https://github.com/kubernetes/kubernetes/pull/127183), [@mochizuki875](https://github.com/mochizuki875)) [SIG Auth, CLI, Node and Security]", + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127183", + "pr_number": 127183, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "cli", + "node", + "security" + ], + "duplicate": true + }, + "127365": { + "commit": "35307319740a3a52cf4632c24b7f99d675537bdf", + "text": "Added a flag to kubectl version to detect whether a client/server version mismatch was outside the officially supported range.", + "markdown": "Added a flag to kubectl version to detect whether a client/server version mismatch was outside the officially supported range. ([#127365](https://github.com/kubernetes/kubernetes/pull/127365), [@omerap12](https://github.com/omerap12))", + "author": "omerap12", + "author_url": "https://github.com/omerap12", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127365", + "pr_number": 127365, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "127667": { + "commit": "35956e9548456cf8a633e6ba883be0b7c653efb8", + "text": "kube-log-runner: Added the `-log-file-size` parameter to rotate log output into a new file once it reached a certain size. Introduced `-log-file-age` to enable automatic removal of old output files, and `-flush-interval` to support periodic flushing.", + "markdown": "Kube-log-runner: Added the `-log-file-size` parameter to rotate log output into a new file once it reached a certain size. Introduced `-log-file-age` to enable automatic removal of old output files, and `-flush-interval` to support periodic flushing. ([#127667](https://github.com/kubernetes/kubernetes/pull/127667), [@zylxjtu](https://github.com/zylxjtu)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Release, Scheduling, Storage, Testing and Windows]", + "author": "zylxjtu", + "author_url": "https://github.com/zylxjtu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/127667", + "pr_number": 127667, + "areas": [ + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "provider/gcp", + "release-eng", + "kubeadm", + "code-generation", + "ipvs", + "dependency" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "autoscaling", + "cli", + "cloud-provider", + "cluster-lifecycle", + "etcd", + "instrumentation", + "network", + "node", + "release", + "scheduling", + "storage", + "testing", + "windows" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128010": { + "commit": "cc674e7470cc1e98145ce6f915469ff6f748f443", + "text": "Enabled kube-apiserver support for `PodCertificateRequest` and `PodCertificate` projected volumes (behind the `PodCertificateRequest` feature gate).", + "markdown": "Enabled kube-apiserver support for `PodCertificateRequest` and `PodCertificate` projected volumes (behind the `PodCertificateRequest` feature gate). ([#128010](https://github.com/kubernetes/kubernetes/pull/128010), [@ahmedtd](https://github.com/ahmedtd)) [SIG API Machinery, Apps, Auth, Cloud Provider, Etcd, Node, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/25777c1bba657eac76eb294c012acbbbd519299c/keps/sig-auth/4317-pod-certificates", + "type": "KEP" + } + ], + "author": "ahmedtd", + "author_url": "https://github.com/ahmedtd", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128010", + "pr_number": 128010, + "areas": [ + "test", + "kubelet", + "apiserver", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cloud-provider", + "etcd", + "node", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128351": { + "commit": "d41e8bbc1412ef479132cac0e2ce2bc10c0c2a8b", + "text": "Updated `kube-controller-manager` events to support contextual logging.", + "markdown": "Updated `kube-controller-manager` events to support contextual logging. ([#128351](https://github.com/kubernetes/kubernetes/pull/128351), [@mengjiao-liu](https://github.com/mengjiao-liu))", + "author": "mengjiao-liu", + "author_url": "https://github.com/mengjiao-liu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128351", + "pr_number": 128351, + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "128653": { + "commit": "0fe23942fdeabb8f90a252a8eb241f9217177dca", + "text": "Removed deprecated gogo protocol definitions from `k8s.io/cri-api` in favor of `google.golang.org/protobuf`.", + "markdown": "Removed deprecated gogo protocol definitions from `k8s.io/cri-api` in favor of `google.golang.org/protobuf`. ([#128653](https://github.com/kubernetes/kubernetes/pull/128653), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Auth, Instrumentation, Node and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128653", + "pr_number": 128653, + "areas": [ + "test", + "kubelet", + "apiserver", + "dependency" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true + }, + "128748": { + "commit": "82db38a23c7820b1924d89f458fd368023f3980c", + "text": "Ensured that non-scheduling related errors (e.g., network errors) did not lengthen the Pod scheduling backoff time.", + "markdown": "Ensured that non-scheduling related errors (e.g., network errors) did not lengthen the Pod scheduling backoff time. ([#128748](https://github.com/kubernetes/kubernetes/pull/128748), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/128748", + "pr_number": 128748, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "129237": { + "commit": "fa8e37f7805d608c121f07da5259d3086436d397", + "text": "kube-apiserver: Added support for disabling caching of authorization webhook decisions in the `--authorization-config` file. The new fields `cacheAuthorizedRequests` and `cacheUnauthorizedRequests` could be set to `false` to prevent caching for authorized or unauthorized requests. See the https://kubernetes.io/docs/reference/access-authn-authz/authorization/#using-configuration-file-for-authorization for more details.", + "markdown": "Kube-apiserver: Added support for disabling caching of authorization webhook decisions in the `--authorization-config` file. The new fields `cacheAuthorizedRequests` and `cacheUnauthorizedRequests` could be set to `false` to prevent caching for authorized or unauthorized requests. See the https://kubernetes.io/docs/reference/access-authn-authz/authorization/#using-configuration-file-for-authorization for more details. ([#129237](https://github.com/kubernetes/kubernetes/pull/129237), [@rfranzke](https://github.com/rfranzke)) [SIG API Machinery and Auth]", + "author": "rfranzke", + "author_url": "https://github.com/rfranzke", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129237", + "pr_number": 129237, + "areas": [ + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129373": { + "commit": "3ce7034a7f321bdc8223850cc805f01dc9126621", + "text": "Added support for `--cpu`, `--memory` flag to `kubectl autoscale`, started deprecating `--cpu-precent`.", + "markdown": "Added support for `--cpu`, `--memory` flag to `kubectl autoscale`, started deprecating `--cpu-precent`. ([#129373](https://github.com/kubernetes/kubernetes/pull/129373), [@googs1025](https://github.com/googs1025))", + "author": "googs1025", + "author_url": "https://github.com/googs1025", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129373", + "pr_number": 129373, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "129438": { + "commit": "b569406b792fef24bb5613f1263ea354755bbae0", + "text": "kube-apiserver: Each unique set of etcd server overrides specified with `--etcd-servers-overrides` surfaced health checks named `etcd-override-\u003cindex\u003e` and `etcd-override-readiness-\u003cindex\u003e`. These checks were still excluded by the `?exclude=etcd` and `?exclude=etcd-readiness` directives.", + "markdown": "Kube-apiserver: Each unique set of etcd server overrides specified with `--etcd-servers-overrides` surfaced health checks named `etcd-override-\u003cindex\u003e` and `etcd-override-readiness-\u003cindex\u003e`. These checks were still excluded by the `?exclude=etcd` and `?exclude=etcd-readiness` directives. ([#129438](https://github.com/kubernetes/kubernetes/pull/129438), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery and Testing]", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129438", + "pr_number": 129438, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129458": { + "commit": "8d3fb9ee0a51b6a6ea135d991391c35806422c19", + "text": "Added a `--show-swap` option to `kubectl top` subcommands", + "markdown": "Added a `--show-swap` option to `kubectl top` subcommands ([#129458](https://github.com/kubernetes/kubernetes/pull/129458), [@iholder101](https://github.com/iholder101)) [SIG CLI]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md", + "type": "KEP" + } + ], + "author": "iholder101", + "author_url": "https://github.com/iholder101", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129458", + "pr_number": 129458, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "129501": { + "commit": "004d55cffa3a3fe4642bd606c81c436690d8666e", + "text": "Removed generally available feature-gate `PodDisruptionConditions`.", + "markdown": "Removed generally available feature-gate `PodDisruptionConditions`. ([#129501](https://github.com/kubernetes/kubernetes/pull/129501), [@carlory](https://github.com/carlory)) [SIG Apps]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129501", + "pr_number": 129501, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ] + }, + "129837": { + "commit": "c41cc0a144a8205b63289c440b813892eed790ae", + "text": "When proxying to an aggregated API server, kube-apiserver used the\n`EndpointSlices` of the `service` indicated by the `APIServer`, rather than\nusing Endpoints.\n\nIf you were using the aggregated API server feature, and you were writing out\nthe endpoints for it by hand (rather than letting kube-controller-manager\ngenerate `Endpoints` and `EndpointSlices` for it automatically based on the\nService definition), then you should write out an EndpointSlice object rather\nthan (or in addition to) an `Endpoints` object.", + "markdown": "When proxying to an aggregated API server, kube-apiserver used the\n `EndpointSlices` of the `service` indicated by the `APIServer`, rather than\n using Endpoints.\n \n If you were using the aggregated API server feature, and you were writing out\n the endpoints for it by hand (rather than letting kube-controller-manager\n generate `Endpoints` and `EndpointSlices` for it automatically based on the\n Service definition), then you should write out an EndpointSlice object rather\n than (or in addition to) an `Endpoints` object. ([#129837](https://github.com/kubernetes/kubernetes/pull/129837), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Network and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4974-deprecate-endpoints", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129837", + "pr_number": 129837, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "api-machinery", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "129874": { + "commit": "a3097010faac734fb4956dbc91ae9034d0a9f840", + "text": "The Kubernetes API server merged selectors built from `matchLabelKeys` into the `labelSelector` of `topologySpreadConstraints`, aligning Pod Topology Spread behavior with Inter-Pod Affinity. To prevent breaking existing Pods using `matchLabelKeys`, this scheduler behavior was preserved until v1.34. Upgrades from v1.32 to v1.34 should be done incrementally (v1.32 → v1.33 → v1.34), ensuring Pods created at v1.32 with `matchLabelKeys` are scheduled before reaching v1.34. Controllers relying on `matchLabelKeys` no longer need to handle them directly and can use `labelSelector` instead. The new feature gate `MatchLabelKeysInPodTopologySpreadSelectorMerge`, enabled by default, controls this behavior.", + "markdown": "The Kubernetes API server merged selectors built from `matchLabelKeys` into the `labelSelector` of `topologySpreadConstraints`, aligning Pod Topology Spread behavior with Inter-Pod Affinity. To prevent breaking existing Pods using `matchLabelKeys`, this scheduler behavior was preserved until v1.34. Upgrades from v1.32 to v1.34 should be done incrementally (v1.32 → v1.33 → v1.34), ensuring Pods created at v1.32 with `matchLabelKeys` are scheduled before reaching v1.34. Controllers relying on `matchLabelKeys` no longer need to handle them directly and can use `labelSelector` instead. The new feature gate `MatchLabelKeysInPodTopologySpreadSelectorMerge`, enabled by default, controls this behavior. ([#129874](https://github.com/kubernetes/kubernetes/pull/129874), [@mochizuki875](https://github.com/mochizuki875)) [SIG Apps, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/3243-respect-pod-topology-spread-after-rolling-upgrades", + "type": "KEP" + } + ], + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/129874", + "pr_number": 129874, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130160": { + "commit": "e2ab84070896a8ed5b703b015522326d44597400", + "text": "Added new optional APIs in `ResouceSlice.Basic` and `ResourceClaim.Status.AllocatedDeviceStatus`.", + "markdown": "Added new optional APIs in `ResouceSlice.Basic` and `ResourceClaim.Status.AllocatedDeviceStatus`. ([#130160](https://github.com/kubernetes/kubernetes/pull/130160), [@KobayashiD27](https://github.com/KobayashiD27)) [SIG API Machinery, Apps, Architecture, Node, Release, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5007", + "type": "KEP" + } + ], + "author": "KobayashiD27", + "author_url": "https://github.com/KobayashiD27", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130160", + "pr_number": 130160, + "areas": [ + "test", + "kubelet", + "release-eng", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "node", + "release", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130161": { + "commit": "2125fd6a94c968f22c3034ea2406ca2eb247fdd3", + "text": "kubelet: removed the deprecated flag `--cloud-config` from the command line.", + "markdown": "Kubelet: removed the deprecated flag `--cloud-config` from the command line. ([#130161](https://github.com/kubernetes/kubernetes/pull/130161), [@carlory](https://github.com/carlory)) [SIG Cloud Provider, Node and Scalability]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2395", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130161", + "pr_number": 130161, + "areas": [ + "kubelet", + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "node", + "scalability" + ], + "duplicate": true, + "action_required": true + }, + "130333": { + "commit": "fe5afa919b36207e6f173dc5ff111a1138a0cf0e", + "text": "Fixed a bug in the Job controller that could result in creating unnecessary Pods for Jobs already marked as finished (either successful or failed).", + "markdown": "Fixed a bug in the Job controller that could result in creating unnecessary Pods for Jobs already marked as finished (either successful or failed). ([#130333](https://github.com/kubernetes/kubernetes/pull/130333), [@kmala](https://github.com/kmala)) [SIG Apps and Testing]", + "author": "kmala", + "author_url": "https://github.com/kmala", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130333", + "pr_number": 130333, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "130387": { + "commit": "5c219a727a65c679d6bfa54dc4d1070ac832c086", + "text": "Added a detailed event for in-place pod vertical scaling completed, improving cluster management and debugging.", + "markdown": "Added a detailed event for in-place pod vertical scaling completed, improving cluster management and debugging. ([#130387](https://github.com/kubernetes/kubernetes/pull/130387), [@shiya0705](https://github.com/shiya0705)) [SIG API Machinery, Apps, Autoscaling, Node, Scheduling and Testing]", + "author": "shiya0705", + "author_url": "https://github.com/shiya0705", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130387", + "pr_number": 130387, + "areas": [ + "test", + "kubelet", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "autoscaling", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130503": { + "commit": "609e4a9ba044e64a6244e053d2b1b7c545a2d2ed", + "text": "Fixed a panic issue related to kubectl revision history kubernetes/kubectl#1724", + "markdown": "Fixed a panic issue related to kubectl revision history kubernetes/kubectl#1724 ([#130503](https://github.com/kubernetes/kubernetes/pull/130503), [@tahacodes](https://github.com/tahacodes)) [SIG CLI]", + "author": "tahacodes", + "author_url": "https://github.com/tahacodes", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130503", + "pr_number": 130503, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "130542": { + "commit": "e43ab77aedfa9257022e90642fed0034d937056e", + "text": "Updated `conntrack` reconciler to consider a Service’s target port during cleanup of stale flow entries.", + "markdown": "Updated `conntrack` reconciler to consider a Service’s target port during cleanup of stale flow entries. ([#130542](https://github.com/kubernetes/kubernetes/pull/130542), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130542", + "pr_number": 130542, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "130593": { + "commit": "c4beea784c4ba2ab4cdf98d13dfe094fcb746288", + "text": "DRA: When the prioritized list feature was used in a request and the resulting number of allocated devices exceeded the number of allowed devices per claim, the scheduler aborted the attempt to allocate devices early. Previously, it tried to many different combinations, which could take a long time.", + "markdown": "DRA: When the prioritized list feature was used in a request and the resulting number of allocated devices exceeded the number of allowed devices per claim, the scheduler aborted the attempt to allocate devices early. Previously, it tried to many different combinations, which could take a long time. ([#130593](https://github.com/kubernetes/kubernetes/pull/130593), [@mortent](https://github.com/mortent)) [SIG Apps, Node, Scheduling and Testing]", + "author": "mortent", + "author_url": "https://github.com/mortent", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130593", + "pr_number": 130593, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130606": { + "commit": "72f9a9260a676cb6553dd9a628a39a173bdb06f0", + "text": "Added support in the Kubelet for monitoring the health of devices allocated via Dynamic Resource Allocation (DRA) and report it in the `pod.status.containerStatuses.allocatedResourcesStatus` field. This required the DRA plugin to implement the new v1alpha1 `NodeHealth` gRPC service. This feature was controlled by the `ResourceHealthStatus` feature gate.", + "markdown": "Added support in the Kubelet for monitoring the health of devices allocated via Dynamic Resource Allocation (DRA) and report it in the `pod.status.containerStatuses.allocatedResourcesStatus` field. This required the DRA plugin to implement the new v1alpha1 `NodeHealth` gRPC service. This feature was controlled by the `ResourceHealthStatus` feature gate. ([#130606](https://github.com/kubernetes/kubernetes/pull/130606), [@Jpsassine](https://github.com/Jpsassine)) [SIG Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Network, Node, Release, Scheduling, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/4680-add-resource-health-to-pod-status/README.md", + "type": "KEP" + } + ], + "author": "Jpsassine", + "author_url": "https://github.com/Jpsassine", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130606", + "pr_number": 130606, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "release-eng", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "etcd", + "network", + "node", + "release", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130653": { + "commit": "1b273b385e0ec817167040ec2b75cb7fdda105da", + "text": "Extended resources backed by DRA feature allowed cluster operator to specify `extendedResourceName` in `DeviceClass`, and application operator to continue using extended resources in pod's requests to request for DRA devices matching the DeviceClass.\n\n`NodeResourcesFit` plugin scoring didn't work for extended resources backed by DRA.", + "markdown": "Extended resources backed by DRA feature allowed cluster operator to specify `extendedResourceName` in `DeviceClass`, and application operator to continue using extended resources in pod's requests to request for DRA devices matching the DeviceClass.\n \n `NodeResourcesFit` plugin scoring didn't work for extended resources backed by DRA. ([#130653](https://github.com/kubernetes/kubernetes/pull/130653), [@yliaog](https://github.com/yliaog)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/5136", + "type": "KEP" + } + ], + "author": "yliaog", + "author_url": "https://github.com/yliaog", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130653", + "pr_number": 130653, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "130713": { + "commit": "c44bf18b9b26d4526670d77ea60329f89a5bec2c", + "text": "Updated pause version to `registry.k8s.io/pause:3.10.1`.", + "markdown": "Updated pause version to `registry.k8s.io/pause:3.10.1`. ([#130713](https://github.com/kubernetes/kubernetes/pull/130713), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG Cluster Lifecycle, Node, Scheduling and Testing]", + "author": "ArkaSaha30", + "author_url": "https://github.com/ArkaSaha30", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130713", + "pr_number": 130713, + "areas": [ + "test", + "kubelet", + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "130720": { + "commit": "8a6b9167659e315d5e937a18e44ca6c8527b3186", + "text": "The Scheduling Framework exposed `NodeInfos` to the PreFilter plugins. The PreFilter plugins now accepted the `NodeInfo` list from the arguments.", + "markdown": "The Scheduling Framework exposed `NodeInfos` to the PreFilter plugins. The PreFilter plugins now accepted the `NodeInfo` list from the arguments. ([#130720](https://github.com/kubernetes/kubernetes/pull/130720), [@saintube](https://github.com/saintube)) [SIG Node, Scheduling, Storage and Testing]", + "author": "saintube", + "author_url": "https://github.com/saintube", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130720", + "pr_number": 130720, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "action_required": true, + "is_mapped": true + }, + "130727": { + "commit": "015e79ed0414a2ded47caba1608204f228bbe2d8", + "text": "Migrated Memory Manager to contextual logging.", + "markdown": "Migrated Memory Manager to contextual logging. ([#130727](https://github.com/kubernetes/kubernetes/pull/130727), [@swatisehgal](https://github.com/swatisehgal))", + "author": "swatisehgal", + "author_url": "https://github.com/swatisehgal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130727", + "pr_number": 130727, + "areas": [ + "kubelet", + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "130782": { + "commit": "c2d40b77aacbe1fddc64801f301ea8a7379fb580", + "text": "kubeadm: Fixed an issue where etcd member promotion failed with an error indicating the member was already promoted.", + "markdown": "Kubeadm: Fixed an issue where etcd member promotion failed with an error indicating the member was already promoted. ([#130782](https://github.com/kubernetes/kubernetes/pull/130782), [@BernardMC](https://github.com/BernardMC))", + "author": "BernardMC", + "author_url": "https://github.com/BernardMC", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130782", + "pr_number": 130782, + "areas": [ + "test", + "kubeadm", + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "130852": { + "commit": "9d1363eff6c5519e2d4976f47e463564fc39a6ec", + "text": "Migrated `pkg/kubelet/status` to use contextual logging.", + "markdown": "Migrated `pkg/kubelet/status` to use contextual logging. ([#130852](https://github.com/kubernetes/kubernetes/pull/130852), [@Chulong-Li](https://github.com/Chulong-Li))", + "author": "Chulong-Li", + "author_url": "https://github.com/Chulong-Li", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130852", + "pr_number": 130852, + "areas": [ + "kubelet", + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "130909": { + "commit": "66cf6286a8cbd9001d5a52f4db6ee870c0eb369e", + "text": "`Statefulset` respected `minReadySeconds`.", + "markdown": "`Statefulset` respected `minReadySeconds`. ([#130909](https://github.com/kubernetes/kubernetes/pull/130909), [@Edwinhr716](https://github.com/Edwinhr716))", + "author": "Edwinhr716", + "author_url": "https://github.com/Edwinhr716", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130909", + "pr_number": 130909, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "130919": { + "commit": "0f478e52a8da02b334aab22b1e66b46afc8b7863", + "text": "Added a delay to node updates after kubelet startup. A random offset, based on the configured `nodeStatusReportFrequency`, helped distribute traffic and load from node status updates more evenly over time. The initial status update could occur up to 50% earlier or later than the regular schedule.", + "markdown": "Added a delay to node updates after kubelet startup. A random offset, based on the configured `nodeStatusReportFrequency`, helped distribute traffic and load from node status updates more evenly over time. The initial status update could occur up to 50% earlier or later than the regular schedule. ([#130919](https://github.com/kubernetes/kubernetes/pull/130919), [@mengqiy](https://github.com/mengqiy))", + "author": "mengqiy", + "author_url": "https://github.com/mengqiy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130919", + "pr_number": 130919, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "130987": { + "commit": "da7f3cef166af40644ed9265d7a6a9d7a7e842d3", + "text": "export LANGUAGE=fr_FR", + "markdown": "Export LANGUAGE=fr_FR ([#130987](https://github.com/kubernetes/kubernetes/pull/130987), [@arthurbdiniz](https://github.com/arthurbdiniz)) [SIG CLI]", + "author": "arthurbdiniz", + "author_url": "https://github.com/arthurbdiniz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130987", + "pr_number": 130987, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug", + "flake", + "failing-test" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true, + "do_not_publish": true + }, + "130989": { + "commit": "01899a7c86337b05a16a4155c9351cf947beaee9", + "text": "Zero-value `metadata.creationTimestamp` values are now omitted and no longer serialize an explicit `null` in JSON, YAML, and CBOR output", + "markdown": "Zero-value `metadata.creationTimestamp` values are now omitted and no longer serialize an explicit `null` in JSON, YAML, and CBOR output ([#130989](https://github.com/kubernetes/kubernetes/pull/130989), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Scheduling, Storage and Testing]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130989", + "pr_number": 130989, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "kubeadm", + "code-generation", + "e2e-test-framework", + "dependency" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "etcd", + "instrumentation", + "network", + "node", + "scheduling", + "storage", + "testing" + ], + "duplicate": true + }, + "130994": { + "commit": "b775f9b92f98f7b3acbb3864ed53c2f5b835e917", + "text": "Removed an inaccurate statement about requiring ports when the Pod spec `hostNetwork` field was set.", + "markdown": "Removed an inaccurate statement about requiring ports when the Pod spec `hostNetwork` field was set. ([#130994](https://github.com/kubernetes/kubernetes/pull/130994), [@BenTheElder](https://github.com/BenTheElder)) [SIG Network and Node]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130994", + "pr_number": 130994, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "131001": { + "commit": "d12fae55d0ca0d13a0733bc4b72913ecd5462ef5", + "text": "Migrated `pkg/kubelet/winstats` to contextual logging.", + "markdown": "Migrated `pkg/kubelet/winstats` to contextual logging. ([#131001](https://github.com/kubernetes/kubernetes/pull/131001), [@Chulong-Li](https://github.com/Chulong-Li))", + "author": "Chulong-Li", + "author_url": "https://github.com/Chulong-Li", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131001", + "pr_number": 131001, + "areas": [ + "kubelet", + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "131018": { + "commit": "1a1181677ccd83f2f7760b795afa52bfd79f82b0", + "text": "Masked access to Linux thermal interrupt information exposed via `/proc` and `/sys`.", + "markdown": "Masked access to Linux thermal interrupt information exposed via `/proc` and `/sys`. ([#131018](https://github.com/kubernetes/kubernetes/pull/131018), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131018", + "pr_number": 131018, + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "131085": { + "commit": "f8a6707c03fb9395bdc6febb9eca9f1e58ed071d", + "text": "[cloud-provider] Respected the `exclude-from-external-load-balancers=false` label.", + "markdown": "[cloud-provider] Respected the `exclude-from-external-load-balancers=false` label. ([#131085](https://github.com/kubernetes/kubernetes/pull/131085), [@kayrus](https://github.com/kayrus)) [SIG Cloud Provider and Network]", + "author": "kayrus", + "author_url": "https://github.com/kayrus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131085", + "pr_number": 131085, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug", + "documentation", + "flake", + "failing-test", + "deprecation", + "regression" + ], + "sigs": [ + "cloud-provider", + "network" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "131089": { + "commit": "3fd125116581e75ebab22a3b37ddd73bcfdc4d0c", + "text": "- Changed underlying logic to propagate pod-level hugepage cgroup to containers when they did not specify hugepage resources.\n- Added validation to enforce the hugepage aggregated container limits to be smaller than or equal to pod-level limits. This was already enforced with the defaulted requests from the specified limits, however it did not make it clear about both hugepage requests and limits.", + "markdown": "- Changed underlying logic to propagate pod-level hugepage cgroup to containers when they did not specify hugepage resources.\n - Added validation to enforce the hugepage aggregated container limits to be smaller than or equal to pod-level limits. This was already enforced with the defaulted requests from the specified limits, however it did not make it clear about both hugepage requests and limits. ([#131089](https://github.com/kubernetes/kubernetes/pull/131089), [@KevinTMtz](https://github.com/KevinTMtz)) [SIG Apps, Node and Testing]", + "documentation": [ + { + "description": "[Other doc]", + "url": "https://docs.google.com/document/d/1JaqE2eRmFAPlRayv8vsAWE4SmQCVXQLr9rFPhEaPlvQ/edit?usp=sharing", + "type": "external" + } + ], + "author": "KevinTMtz", + "author_url": "https://github.com/KevinTMtz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131089", + "pr_number": 131089, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "131151": { + "commit": "629537d8c655279f4decc4c307afe8ec679659ce", + "text": "Upgraded CoreDNS to v1.12.1.", + "markdown": "Upgraded CoreDNS to v1.12.1. ([#131151](https://github.com/kubernetes/kubernetes/pull/131151), [@yashsingh74](https://github.com/yashsingh74)) [SIG Cloud Provider and Cluster Lifecycle]", + "author": "yashsingh74", + "author_url": "https://github.com/yashsingh74", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131151", + "pr_number": 131151, + "areas": [ + "provider/gcp", + "kubeadm", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "cluster-lifecycle" + ], + "duplicate": true, + "is_mapped": true + }, + "131157": { + "commit": "584de05d47da169fca3d4407bc6d95bb583e2ee7", + "text": "Fixed the `observedGeneration` field in pod resize conditions to accurately reflect the associated pod generation when both `InPlacePodVerticalScaling` and `PodObservedGenerationTracking` feature gates are enabled.", + "markdown": "Fixed the `observedGeneration` field in pod resize conditions to accurately reflect the associated pod generation when both `InPlacePodVerticalScaling` and `PodObservedGenerationTracking` feature gates are enabled. ([#131157](https://github.com/kubernetes/kubernetes/pull/131157), [@natasha41575](https://github.com/natasha41575))", + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131157", + "pr_number": 131157, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "131165": { + "commit": "d76b47cc4cd58fcb6544764ea6c1c809ab8fa265", + "text": "`kubectl create|delete|get|replace --raw` commands now honored the server root paths specified in the kubeconfig file.", + "markdown": "`kubectl create|delete|get|replace --raw` commands now honored the server root paths specified in the kubeconfig file. ([#131165](https://github.com/kubernetes/kubernetes/pull/131165), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131165", + "pr_number": 131165, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "131213": { + "commit": "a9c75b0da8649a350fd01c5cb4d0570a960677c3", + "text": "Fixed the `allocatedResourceStatuses` field name mismatch in PVC status validation.", + "markdown": "Fixed the `allocatedResourceStatuses` field name mismatch in PVC status validation. ([#131213](https://github.com/kubernetes/kubernetes/pull/131213), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131213", + "pr_number": 131213, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "131215": { + "commit": "27de9a82b7de600fa40b4b2add081cefaec6cdc0", + "text": "Removed `endpoint-controller` and `workload-leader-election` FlowSchemas from the default APF configuration. \n\nAction required: workloads using leader election were required to migrate their lock type from `configmapsleases` or `endpointsleases` to `leases`.", + "markdown": "Removed `endpoint-controller` and `workload-leader-election` FlowSchemas from the default APF configuration. \n \n Action required: workloads using leader election were required to migrate their lock type from `configmapsleases` or `endpointsleases` to `leases`. ([#131215](https://github.com/kubernetes/kubernetes/pull/131215), [@tosi3k](https://github.com/tosi3k)) [SIG API Machinery, Apps, Network, Scalability and Scheduling]", + "author": "tosi3k", + "author_url": "https://github.com/tosi3k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131215", + "pr_number": 131215, + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "network", + "scalability", + "scheduling" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true, + "is_mapped": true + }, + "131265": { + "commit": "e73db626bdbeb388614e26cee42bdec356689754", + "text": "kube-proxy: Checked whether IPv6 was available on Linux before using it.", + "markdown": "Kube-proxy: Checked whether IPv6 was available on Linux before using it. ([#131265](https://github.com/kubernetes/kubernetes/pull/131265), [@rikatz](https://github.com/rikatz))", + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131265", + "pr_number": 131265, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "is_mapped": true + }, + "131266": { + "commit": "d6d6aad0d89abea236996b12d0545642f96684fb", + "text": "Fixed a possible deadlock in the watch client that could happen if the watch was not stopped.", + "markdown": "Fixed a possible deadlock in the watch client that could happen if the watch was not stopped. ([#131266](https://github.com/kubernetes/kubernetes/pull/131266), [@karlkfi](https://github.com/karlkfi)) [SIG API Machinery]", + "author": "karlkfi", + "author_url": "https://github.com/karlkfi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131266", + "pr_number": 131266, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true + }, + "131299": { + "commit": "92c06be5232d6ce2962fde773b55bfc5217445f1", + "text": "DRA: Ensured that ResourceClaims requesting a fixed number of devices with `adminAccess` were no longer allocated the same device multiple times.", + "markdown": "DRA: Ensured that ResourceClaims requesting a fixed number of devices with `adminAccess` were no longer allocated the same device multiple times. ([#131299](https://github.com/kubernetes/kubernetes/pull/131299), [@nojnhuh](https://github.com/nojnhuh))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "nojnhuh", + "author_url": "https://github.com/nojnhuh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131299", + "pr_number": 131299, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "131300": { + "commit": "b0b28b53e4533889a8324d02d5f93503edaad870", + "text": "kube-apiserver: Promoted the `ExternalServiceAccountTokenSigner` feature to beta, which enabled external signing of service account tokens and fetching of public verifying keys. This was accomplished by enabling the beta `ExternalServiceAccountTokenSigner` feature gate and specifying the `--service-account-signing-endpoint` flag. The flag value could either be the path to a Unix domain socket on the filesystem, or be prefixed with @ to indicate a Unix domain socket in the abstract namespace.", + "markdown": "Kube-apiserver: Promoted the `ExternalServiceAccountTokenSigner` feature to beta, which enabled external signing of service account tokens and fetching of public verifying keys. This was accomplished by enabling the beta `ExternalServiceAccountTokenSigner` feature gate and specifying the `--service-account-signing-endpoint` flag. The flag value could either be the path to a Unix domain socket on the filesystem, or be prefixed with @ to indicate a Unix domain socket in the abstract namespace. ([#131300](https://github.com/kubernetes/kubernetes/pull/131300), [@HarshalNeelkamal](https://github.com/HarshalNeelkamal)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/740-service-account-external-signing", + "type": "KEP" + } + ], + "author": "HarshalNeelkamal", + "author_url": "https://github.com/HarshalNeelkamal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131300", + "pr_number": 131300, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "131306": { + "commit": "9eb462ef4a86cc68c545a88392e8b78ddfefec84", + "text": "Migrated `pkg/kubelet/volumemanager` to contextual logging.", + "markdown": "Migrated `pkg/kubelet/volumemanager` to contextual logging. ([#131306](https://github.com/kubernetes/kubernetes/pull/131306), [@Chulong-Li](https://github.com/Chulong-Li))", + "author": "Chulong-Li", + "author_url": "https://github.com/Chulong-Li", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131306", + "pr_number": 131306, + "areas": [ + "kubelet", + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "131311": { + "commit": "08f32728b96bef711124ad79e4c088d79b060e2e", + "text": "Stopped removing the CSI JSON file if the volume was already mounted during subsequent errors.", + "markdown": "Stopped removing the CSI JSON file if the volume was already mounted during subsequent errors. ([#131311](https://github.com/kubernetes/kubernetes/pull/131311), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131311", + "pr_number": 131311, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "131318": { + "commit": "c96032addd81199453a815c85370d8930b2f1cd3", + "text": "`MultiCIDRServiceAllocator` was locked and enabled by default, `DisableAllocatorDualWrite` was enabled by default.", + "markdown": "`MultiCIDRServiceAllocator` was locked and enabled by default, `DisableAllocatorDualWrite` was enabled by default. ([#131318](https://github.com/kubernetes/kubernetes/pull/131318), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Network and Testing]", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131318", + "pr_number": 131318, + "areas": [ + "test", + "apiserver", + "conformance", + "code-generation" + ], + "kinds": [ + "documentation", + "cleanup", + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "etcd", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "131354": { + "commit": "354520cd9b8060a33f77bd62357e78f89358807a", + "text": "Corrected the documentation to clarify that `podSelector` is optional and described its default behavior.", + "markdown": "Corrected the documentation to clarify that `podSelector` is optional and described its default behavior. ([#131354](https://github.com/kubernetes/kubernetes/pull/131354), [@tomoish](https://github.com/tomoish))", + "author": "tomoish", + "author_url": "https://github.com/tomoish", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131354", + "pr_number": 131354, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "131406": { + "commit": "b837e345a974dd9f86d5619ce61b6df8f7421166", + "text": "Updated cri-tools to v1.33.0.", + "markdown": "Updated cri-tools to v1.33.0. ([#131406](https://github.com/kubernetes/kubernetes/pull/131406), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131406", + "pr_number": 131406, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ] + }, + "131408": { + "commit": "375f282985219f3c81ad7b75a716f9f435adc45f", + "text": "Stopped logging error events when waiting for expansion on the kubelet.", + "markdown": "Stopped logging error events when waiting for expansion on the kubelet. ([#131408](https://github.com/kubernetes/kubernetes/pull/131408), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131408", + "pr_number": 131408, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "131418": { + "commit": "5ec7b65318afb91b8d77f3f262ee0b93dcd84b5f", + "text": "Checked for newer resize fields when deciding the recovery feature status in the kubelet.", + "markdown": "Checked for newer resize fields when deciding the recovery feature status in the kubelet. ([#131418](https://github.com/kubernetes/kubernetes/pull/131418), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131418", + "pr_number": 131418, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "131425": { + "commit": "71e7f9eba731ae0cdc7ec10bb12a17ebc10ca5ba", + "text": "kube-scheduler: Removed the deprecated scheduler_scheduler_cache_size metric in favor of scheduler_cache_size.", + "markdown": "Kube-scheduler: Removed the deprecated scheduler_scheduler_cache_size metric in favor of scheduler_cache_size. ([#131425](https://github.com/kubernetes/kubernetes/pull/131425), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131425", + "pr_number": 131425, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "131444": { + "commit": "e9379e92db19d826d46edd502dd3a61609b32c52", + "text": "Bumped the cel-go dependency to v0.25.0. The changeset is available at: https://github.com/google/cel-go/compare/v0.23.2...v0.25.0.", + "markdown": "Bumped the cel-go dependency to v0.25.0. The changeset is available at: https://github.com/google/cel-go/compare/v0.23.2...v0.25.0. ([#131444](https://github.com/kubernetes/kubernetes/pull/131444), [@erdii](https://github.com/erdii)) [SIG API Machinery, Auth, Cloud Provider and Node]", + "author": "erdii", + "author_url": "https://github.com/erdii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131444", + "pr_number": 131444, + "areas": [ + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "131459": { + "commit": "3a8af5a174a3024d7c540b1f6e08aff21b2d0c83", + "text": "hack/update-codegen.sh now automatically ensured goimports and protoc.", + "markdown": "Hack/update-codegen.sh now automatically ensured goimports and protoc. ([#131459](https://github.com/kubernetes/kubernetes/pull/131459), [@BenTheElder](https://github.com/BenTheElder))", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131459", + "pr_number": 131459, + "areas": [ + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "131463": { + "commit": "174c0fcc7b00a0dc82674031043d8ba4ba1c130a", + "text": "The deprecated `LegacySidecarContainers` feature gate was completely removed.", + "markdown": "The deprecated `LegacySidecarContainers` feature gate was completely removed. ([#131463](https://github.com/kubernetes/kubernetes/pull/131463), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing]", + "author": "gjkim42", + "author_url": "https://github.com/gjkim42", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131463", + "pr_number": 131463, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "131491": { + "commit": "a19c0ad5533d1503825f22a3725de07cb81fced1", + "text": "Added Traffic Distribution field to `kubectl describe service` output", + "markdown": "Added Traffic Distribution field to `kubectl describe service` output ([#131491](https://github.com/kubernetes/kubernetes/pull/131491), [@tchap](https://github.com/tchap)) [SIG CLI]", + "author": "tchap", + "author_url": "https://github.com/tchap", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131491", + "pr_number": 131491, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true + }, + "131493": { + "commit": "a688664afaaeb72487ec9a3f388047e6f48288ef", + "text": "kube-apiserver: Fixed OIDC discovery document publishing when external service account token signing was enabled.", + "markdown": "Kube-apiserver: Fixed OIDC discovery document publishing when external service account token signing was enabled. ([#131493](https://github.com/kubernetes/kubernetes/pull/131493), [@hoskeri](https://github.com/hoskeri)) [SIG API Machinery, Auth and Testing]", + "author": "hoskeri", + "author_url": "https://github.com/hoskeri", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131493", + "pr_number": 131493, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "131495": { + "commit": "1f056f8f882b1e6b48ece41a4658c1ad0b7b5eb8", + "text": "kubelet: Fixed a bug that caused an unexpected `NodeResizeError` condition to appear in the PVC status when the CSI driver did not support node volume expansion and the PVC had the `ReadWriteMany` access mode.", + "markdown": "Kubelet: Fixed a bug that caused an unexpected `NodeResizeError` condition to appear in the PVC status when the CSI driver did not support node volume expansion and the PVC had the `ReadWriteMany` access mode. ([#131495](https://github.com/kubernetes/kubernetes/pull/131495), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1790", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131495", + "pr_number": 131495, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "131501": { + "commit": "8bfd79535292677a513c4208c689265f30b1f1a6", + "text": "Updated etcd version to v3.6.0.", + "markdown": "Updated etcd version to v3.6.0. ([#131501](https://github.com/kubernetes/kubernetes/pull/131501), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]", + "author": "joshjms", + "author_url": "https://github.com/joshjms", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131501", + "pr_number": 131501, + "areas": [ + "test", + "provider/gcp", + "kubeadm" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "cluster-lifecycle", + "etcd", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "131506": { + "commit": "090ebab0d7c46ac58128f3590a3eb04a887e1b42", + "text": "Fixed an issue where Windows kube-proxy’s `ModifyLoadBalancer` API updates did not match the HNS state in version 15.4. Support for `ModifyLoadBalancer` policy began with Kubernetes 1.31+.", + "markdown": "Fixed an issue where Windows kube-proxy’s `ModifyLoadBalancer` API updates did not match the HNS state in version 15.4. Support for `ModifyLoadBalancer` policy began with Kubernetes 1.31+. ([#131506](https://github.com/kubernetes/kubernetes/pull/131506), [@princepereira](https://github.com/princepereira))", + "author": "princepereira", + "author_url": "https://github.com/princepereira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131506", + "pr_number": 131506, + "areas": [ + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "windows" + ], + "is_mapped": true + }, + "131509": { + "commit": "da24cfe98b3a4528770a0a5d9839b2172c266691", + "text": "kube-apiserver: The --service-account-signing-endpoint flag now only validates the format of abstract socket names", + "markdown": "Kube-apiserver: The --service-account-signing-endpoint flag now only validates the format of abstract socket names ([#131509](https://github.com/kubernetes/kubernetes/pull/131509), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Auth]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131509", + "pr_number": 131509, + "kinds": [ + "cleanup", + "failing-test" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "duplicate_kind": true + }, + "131514": { + "commit": "3b1178aedd782c5c6108590f79a806edb93ae684", + "text": "Promoted the feature `OrderedNamespaceDeletion` to GA.", + "markdown": "Promoted the feature `OrderedNamespaceDeletion` to GA. ([#131514](https://github.com/kubernetes/kubernetes/pull/131514), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131514", + "pr_number": 131514, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "131525": { + "commit": "2cc53d78b7638e90a6f3a73cdb63c61e3e91303b", + "text": "kube-apiserver: Defaulted empty `spec.jobTemplate.spec.podFailurePolicy.rules[*].onPodConditions[*].status` fields for CronJob objects as documented, avoiding validation failures during write requests.", + "markdown": "Kube-apiserver: Defaulted empty `spec.jobTemplate.spec.podFailurePolicy.rules[*].onPodConditions[*].status` fields for CronJob objects as documented, avoiding validation failures during write requests. ([#131525](https://github.com/kubernetes/kubernetes/pull/131525), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3329", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131525", + "pr_number": 131525, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "131549": { + "commit": "7912e5fd677226e4ab18a1940aa8c91bac816997", + "text": "Promoted feature-gate `VolumeAttributesClass` to GA\n- Promoted API `VolumeAttributesClass` and `VolumeAttributesClassList` to `storage.k8s.io/v1`.", + "markdown": "Promoted feature-gate `VolumeAttributesClass` to GA\n - Promoted API `VolumeAttributesClass` and `VolumeAttributesClassList` to `storage.k8s.io/v1`. ([#131549](https://github.com/kubernetes/kubernetes/pull/131549), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Auth, CLI, Etcd, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3751", + "type": "KEP" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131549", + "pr_number": 131549, + "areas": [ + "test", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "cli", + "etcd", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "131559": { + "commit": "3f808638076e9e2be5f53a4aec9d2d5d00b997e1", + "text": "Fixed a bug in CEL's common.UnstructuredToVal where `==` evaluates to false for identical objects when a field is present but the value is null. This bug does not impact the Kubernetes API.", + "markdown": "Fixed a bug in CEL's common.UnstructuredToVal where `==` evaluates to false for identical objects when a field is present but the value is null. This bug does not impact the Kubernetes API. ([#131559](https://github.com/kubernetes/kubernetes/pull/131559), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131559", + "pr_number": 131559, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ] + }, + "131562": { + "commit": "2f94274c88280b3b1b10a05d06f3a00964db5009", + "text": "Fixed some missing white spaces in the flag descriptions and logs.", + "markdown": "Fixed some missing white spaces in the flag descriptions and logs. ([#131562](https://github.com/kubernetes/kubernetes/pull/131562), [@logica0419](https://github.com/logica0419)) [SIG Network]", + "author": "logica0419", + "author_url": "https://github.com/logica0419", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131562", + "pr_number": 131562, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ] + }, + "131563": { + "commit": "4a5aa2ffc248e3157917033aafc5418f2910691e", + "text": "kubeadm: Fixed missing space when printing the warning about pause image mismatch.", + "markdown": "Kubeadm: Fixed missing space when printing the warning about pause image mismatch. ([#131563](https://github.com/kubernetes/kubernetes/pull/131563), [@logica0419](https://github.com/logica0419))", + "author": "logica0419", + "author_url": "https://github.com/logica0419", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131563", + "pr_number": 131563, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "131568": { + "commit": "2ac0bdf360cf2529a3675c7012d0bf415e1051f3", + "text": "Disabled reading of disk geometry before calling expansion for ext and xfs filesystems.", + "markdown": "Disabled reading of disk geometry before calling expansion for ext and xfs filesystems. ([#131568](https://github.com/kubernetes/kubernetes/pull/131568), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131568", + "pr_number": 131568, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "131574": { + "commit": "43a5c18ebacf57b23f8431f270bef6c361631f20", + "text": "Added support for CEL expressions with escaped names in the structured authentication config. Using `[...]` to access claims or user data was recommended when names contained characters that would otherwise need escaping. CEL optionals with `?` could be used where has was not applicable — for example, `claims[?\"kubernetes.io\"]` or `user.extra[?\"domain.io/foo\"]`.", + "markdown": "Added support for CEL expressions with escaped names in the structured authentication config. Using `[...]` to access claims or user data was recommended when names contained characters that would otherwise need escaping. CEL optionals with `?` could be used where has was not applicable — for example, `claims[?\"kubernetes.io\"]` or `user.extra[?\"domain.io/foo\"]`. ([#131574](https://github.com/kubernetes/kubernetes/pull/131574), [@enj](https://github.com/enj)) [SIG API Machinery and Auth]", + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131574", + "pr_number": 131574, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "131586": { + "commit": "893486dfd16ff8c628c6f33bb2bea869ad86115f", + "text": "Enabled completion for aliases defined in `kubectlrc`.", + "markdown": "Enabled completion for aliases defined in `kubectlrc`. ([#131586](https://github.com/kubernetes/kubernetes/pull/131586), [@ardaguclu](https://github.com/ardaguclu))", + "documentation": [ + { + "description": "-[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3104-introduce-kuberc", + "type": "KEP" + } + ], + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131586", + "pr_number": 131586, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "131587": { + "commit": "72ffb70d3ec0fff9b13b7871873cd16a25e27034", + "text": "kubeadm: Made the coredns deployment manifest use named ports consistently for the liveness and readiness probes.", + "markdown": "Kubeadm: Made the coredns deployment manifest use named ports consistently for the liveness and readiness probes. ([#131587](https://github.com/kubernetes/kubernetes/pull/131587), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131587", + "pr_number": 131587, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "131602": { + "commit": "5bb3aa3604c97feb81372a410bed124222056cbb", + "text": "Updated CNI plugins to v1.7.1", + "markdown": "Updated CNI plugins to v1.7.1 ([#131602](https://github.com/kubernetes/kubernetes/pull/131602), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Cloud Provider, Node and Testing]", + "author": "adrianmoisey", + "author_url": "https://github.com/adrianmoisey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131602", + "pr_number": 131602, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "node", + "testing" + ], + "duplicate": true + }, + "131623": { + "commit": "74da30e1df608e890853c1fef03adc7594ae7181", + "text": "Improved the error message shown when a Pod using user namespaces was created on a runtime that did not support user namespaces.", + "markdown": "Improved the error message shown when a Pod using user namespaces was created on a runtime that did not support user namespaces. ([#131623](https://github.com/kubernetes/kubernetes/pull/131623), [@rata](https://github.com/rata))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/49b27734783c8cc56bd2728a7b84905abf4b8d54/keps/sig-node/127-user-namespaces/README.md", + "type": "KEP" + } + ], + "author": "rata", + "author_url": "https://github.com/rata", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131623", + "pr_number": 131623, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "131627": { + "commit": "3aa66a2ba01529a3c5754cab222693d80241d5ac", + "text": "Changed apiserver to treat failures decoding a mutating webhook patch as failures to call the webhook so they trigger the webhook failurePolicy and count against metrics like `webhook_fail_open_count`", + "markdown": "Changed apiserver to treat failures decoding a mutating webhook patch as failures to call the webhook so they trigger the webhook failurePolicy and count against metrics like `webhook_fail_open_count` ([#131627](https://github.com/kubernetes/kubernetes/pull/131627), [@dims](https://github.com/dims)) [SIG API Machinery]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131627", + "pr_number": 131627, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ] + }, + "131632": { + "commit": "3eebe671eaccc63062e002ddc09fa24623ac30e6", + "text": "LeaseLocks could now have custom labels that different holders would overwrite when they became the holder of the underlying lease.", + "markdown": "LeaseLocks could now have custom labels that different holders would overwrite when they became the holder of the underlying lease. ([#131632](https://github.com/kubernetes/kubernetes/pull/131632), [@DerekFrank](https://github.com/DerekFrank))", + "author": "DerekFrank", + "author_url": "https://github.com/DerekFrank", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131632", + "pr_number": 131632, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "131641": { + "commit": "ee012e883f863a141cab35e5a76cbe5d378ad36f", + "text": "The new `dra_resource_claims_in_use` kubelet metrics reported active `ResourceClaims`, overall and by driver.", + "markdown": "The new `dra_resource_claims_in_use` kubelet metrics reported active `ResourceClaims`, overall and by driver. ([#131641](https://github.com/kubernetes/kubernetes/pull/131641), [@pohly](https://github.com/pohly)) [SIG Architecture, Instrumentation, Node and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131641", + "pr_number": 131641, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "architecture", + "instrumentation", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "131647": { + "commit": "a02806d8cd5efbedb886285a314bd569b2fc828f", + "text": "kubeadm: Exposed only the non-deprecated klog flags (-v and -vmodule), in line with KEP https://features.k8s.io/2845.", + "markdown": "Kubeadm: Exposed only the non-deprecated klog flags (-v and -vmodule), in line with KEP https://features.k8s.io/2845. ([#131647](https://github.com/kubernetes/kubernetes/pull/131647), [@carsontham](https://github.com/carsontham))", + "author": "carsontham", + "author_url": "https://github.com/carsontham", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131647", + "pr_number": 131647, + "areas": [ + "kubeadm" + ], + "kinds": [ + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "131654": { + "commit": "fa8c5acf5e42891d543c2933e8f3149798ca76be", + "text": "Graduated configurable endpoints for anonymous authentication using the authentication configuration file to stable.", + "markdown": "Graduated configurable endpoints for anonymous authentication using the authentication configuration file to stable. ([#131654](https://github.com/kubernetes/kubernetes/pull/131654), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG API Machinery and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4633", + "type": "KEP" + } + ], + "author": "vinayakankugoyal", + "author_url": "https://github.com/vinayakankugoyal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131654", + "pr_number": 131654, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "131658": { + "commit": "cd3b5c57668a0a6e32057ef82dfab40e9b0bec5b", + "text": "kubelet: Extended the `--image-credential-provider-config` flag to accept a directory path in addition to a single file. When a directory was specified, all .json, .yaml, and .yml files in that directory were loaded and merged in lexicographical order.", + "markdown": "Kubelet: Extended the `--image-credential-provider-config` flag to accept a directory path in addition to a single file. When a directory was specified, all .json, .yaml, and .yml files in that directory were loaded and merged in lexicographical order. ([#131658](https://github.com/kubernetes/kubernetes/pull/131658), [@dims](https://github.com/dims)) [SIG Auth and Node]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131658", + "pr_number": 131658, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "131660": { + "commit": "ff74d46bf074476d798653584657ef974306053f", + "text": "Fixed incorrect behavior for AllocationMode: All in ResourceClaim when used in subrequests.", + "markdown": "Fixed incorrect behavior for AllocationMode: All in ResourceClaim when used in subrequests. ([#131660](https://github.com/kubernetes/kubernetes/pull/131660), [@mortent](https://github.com/mortent)) [SIG Node]", + "author": "mortent", + "author_url": "https://github.com/mortent", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131660", + "pr_number": 131660, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "131662": { + "commit": "2342c0912a947d0a1fc28918eb2f52f0146b42d5", + "text": "kube-scheduler: in Kubernetes 1.33, the number of devices that can be allocated per ResourceClaim was accidentally reduced to 16. Now the supported number of devices per ResourceClaim is 32 again.", + "markdown": "Kube-scheduler: in Kubernetes 1.33, the number of devices that can be allocated per ResourceClaim was accidentally reduced to 16. Now the supported number of devices per ResourceClaim is 32 again. ([#131662](https://github.com/kubernetes/kubernetes/pull/131662), [@mortent](https://github.com/mortent)) [SIG Node]", + "author": "mortent", + "author_url": "https://github.com/mortent", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131662", + "pr_number": 131662, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "131664": { + "commit": "144926558984ae41a7328d53bd9fc8602328f10e", + "text": "The validation of `replicas` field in the ReplicationController `/scale` subresource has been migrated to declarative validation.\nIf the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.\nIf the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields.", + "markdown": "The validation of `replicas` field in the ReplicationController `/scale` subresource has been migrated to declarative validation.\n If the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.\n If the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields. ([#131664](https://github.com/kubernetes/kubernetes/pull/131664), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Apps]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131664", + "pr_number": 131664, + "areas": [ + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "131677": { + "commit": "707efc4e51447c4da032c47adb094c8e1a350abe", + "text": "kubeadm: Added support for ECDSA-P384 as an encryption algorithm type in v1beta4.", + "markdown": "Kubeadm: Added support for ECDSA-P384 as an encryption algorithm type in v1beta4. ([#131677](https://github.com/kubernetes/kubernetes/pull/131677), [@lalitc375](https://github.com/lalitc375))", + "author": "lalitc375", + "author_url": "https://github.com/lalitc375", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131677", + "pr_number": 131677, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "131741": { + "commit": "c40db09a0a2bf8df02be93d7da1912cfa7cbe333", + "text": "Deprecated the `preferences` field in kubeconfig in favor of `kuberc`.", + "markdown": "Deprecated the `preferences` field in kubeconfig in favor of `kuberc`. ([#131741](https://github.com/kubernetes/kubernetes/pull/131741), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI, Cluster Lifecycle and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3104", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131741", + "pr_number": 131741, + "areas": [ + "test", + "kubectl", + "kubeadm" + ], + "kinds": [ + "documentation", + "cleanup", + "api-change", + "feature", + "deprecation" + ], + "sigs": [ + "api-machinery", + "cli", + "cluster-lifecycle", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "131752": { + "commit": "6da56bd4b782658a4060f65c24df5830ec01c6c1", + "text": "kube-apiserver: The AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1`.", + "markdown": "Kube-apiserver: The AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1`. ([#131752](https://github.com/kubernetes/kubernetes/pull/131752), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131752", + "pr_number": 131752, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "131768": { + "commit": "f6530285a85d6f4280711301613a7d3215a25818", + "text": "Promoted the `apiserver_authorization_config_controller_automatic_reloads_total` and `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` metrics to BETA.", + "markdown": "Promoted the `apiserver_authorization_config_controller_automatic_reloads_total` and `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` metrics to BETA. ([#131768](https://github.com/kubernetes/kubernetes/pull/131768), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Instrumentation]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3221-structured-authorization-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131768", + "pr_number": 131768, + "areas": [ + "apiserver", + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "131790": { + "commit": "a9841ca3b31886b51ba14b56ea88610709c752f1", + "text": "Added `podSpec` validation for creating `StatefulSet`.", + "markdown": "Added `podSpec` validation for creating `StatefulSet`. ([#131790](https://github.com/kubernetes/kubernetes/pull/131790), [@chengjoey](https://github.com/chengjoey)) [SIG Apps, Etcd and Testing]", + "author": "chengjoey", + "author_url": "https://github.com/chengjoey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131790", + "pr_number": 131790, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "etcd", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "131798": { + "commit": "d70229fac7c2aec4e6a69e0783fa0860a90e1144", + "text": "Promoted the `apiserver_authentication_config_controller_automatic_reloads_total` and `apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds` metrics to BETA.", + "markdown": "Promoted the `apiserver_authentication_config_controller_automatic_reloads_total` and `apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds` metrics to BETA. ([#131798](https://github.com/kubernetes/kubernetes/pull/131798), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Instrumentation]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131798", + "pr_number": 131798, + "areas": [ + "apiserver", + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "131799": { + "commit": "3f0a1c6c7f02f33649e58996408b1501fce3c0ee", + "text": "Ensured objects are transformed prior to storage in `SharedInformers` if a transformer is provided and `WatchList` is activated.", + "markdown": "Ensured objects are transformed prior to storage in `SharedInformers` if a transformer is provided and `WatchList` is activated. ([#131799](https://github.com/kubernetes/kubernetes/pull/131799), [@valerian-roche](https://github.com/valerian-roche))", + "author": "valerian-roche", + "author_url": "https://github.com/valerian-roche", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131799", + "pr_number": 131799, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "131818": { + "commit": "fe5b9896ae8601b044a4e47901a844c93070df3b", + "text": "kubectl: Graduated kuberc support to beta. A `kuberc` configuration file provided a mechanism for customizing `kubectl` behavior (distinct from kubeconfig, which configures cluster access across different clients).", + "markdown": "Kubectl: Graduated kuberc support to beta. A `kuberc` configuration file provided a mechanism for customizing `kubectl` behavior (distinct from kubeconfig, which configures cluster access across different clients). ([#131818](https://github.com/kubernetes/kubernetes/pull/131818), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3104-introduce-kuberc", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131818", + "pr_number": 131818, + "areas": [ + "test", + "kubectl", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "131822": { + "commit": "089849ac22f4d67ac0a8651d1a8e5fda9d7752e4", + "text": "Fixed ReplicationController reconciliation when the `DeploymentReplicaSetTerminatingReplicas` feature gate was enabled.", + "markdown": "Fixed ReplicationController reconciliation when the `DeploymentReplicaSetTerminatingReplicas` feature gate was enabled. ([#131822](https://github.com/kubernetes/kubernetes/pull/131822), [@atiratree](https://github.com/atiratree))", + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131822", + "pr_number": 131822, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "131837": { + "commit": "b7c9333f5c050af2d48b08b369681ec863e5084c", + "text": "Static pods that reference API objects are now denied admission by the kubelet so that static pods would not be silently running even after the mirror pod creation fails.\nACTION REQUIRED: Prior to upgrade, ensure static pods are not referencing API objects such as ServiceAccounts, ConfigMaps, Secrets, ResourceClaims, CSIDrivers, PersistentVolumeClaims, or ClusterTrustBundles.", + "markdown": "Static pods that reference API objects are now denied admission by the kubelet so that static pods would not be silently running even after the mirror pod creation fails.\n ACTION REQUIRED: Prior to upgrade, ensure static pods are not referencing API objects such as ServiceAccounts, ConfigMaps, Secrets, ResourceClaims, CSIDrivers, PersistentVolumeClaims, or ClusterTrustBundles. ([#131837](https://github.com/kubernetes/kubernetes/pull/131837), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Auth, Node and Testing]", + "author": "sreeram-venkitesh", + "author_url": "https://github.com/sreeram-venkitesh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131837", + "pr_number": 131837, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "action_required": true, + "is_mapped": true + }, + "131842": { + "commit": "7f74d2b4071d52a8a185f13781c7cc5c07b8b42f", + "text": "Added alpha metrics for compatibility versioning", + "markdown": "Added alpha metrics for compatibility versioning ([#131842](https://github.com/kubernetes/kubernetes/pull/131842), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Architecture, Instrumentation and Scheduling]", + "author": "michaelasp", + "author_url": "https://github.com/michaelasp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131842", + "pr_number": 131842, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "instrumentation", + "scheduling" + ], + "feature": true, + "duplicate": true + }, + "131844": { + "commit": "889cd833a2d77c32aaffaf03c0ba58b471c63309", + "text": "kubelet: Closed a loophole that allowed static Pods to reference arbitrary ResourceClaims. Even though these Pods failed to run due to a sanity check, such references are now explicitly disallowed.", + "markdown": "Kubelet: Closed a loophole that allowed static Pods to reference arbitrary ResourceClaims. Even though these Pods failed to run due to a sanity check, such references are now explicitly disallowed. ([#131844](https://github.com/kubernetes/kubernetes/pull/131844), [@pohly](https://github.com/pohly)) [SIG Apps, Auth and Node]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131844", + "pr_number": 131844, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "auth", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "131845": { + "commit": "b5608aea94cfb54fea3a63e1d74235759d036c51", + "text": "For metrics `apiserver_cache_list_fetched_objects_total`, `apiserver_cache_list_returned_objects_total`, `apiserver_cache_list_total` replace `resource_prefix` label with API `group` and `resource` labels.\nFor metrics `etcd_request_duration_seconds`, `etcd_requests_total` and `etcd_request_errors_total` replace `type` label with API `resource` and `group` label.\nFor metric `apiserver_selfrequest_total` add a API `group` label.\nFor metrics `apiserver_watch_events_sizes` and `apiserver_watch_events_total` replace API `kind` label with `resource` label.\nFor metrics `apiserver_request_body_size_bytes`, `apiserver_storage_events_received_total`, `apiserver_storage_list_evaluated_objects_total`, `apiserver_storage_list_fetched_objects_total`, `apiserver_storage_list_returned_objects_total`, `apiserver_storage_list_total`, `apiserver_watch_cache_events_dispatched_total`, `apiserver_watch_cache_events_received_total`, `apiserver_watch_cache_initializations_total`, `apiserver_watch_cache_resource_version`, `watch_cache_capacity`, `apiserver_init_events_total`, `apiserver_terminated_watchers_total`, `watch_cache_capacity_increase_total`, `watch_cache_capacity_decrease_total`, `apiserver_watch_cache_read_wait_seconds`, `apiserver_watch_cache_consistent_read_total`, `apiserver_storage_consistency_checks_total`, `etcd_bookmark_counts`, `storage_decode_errors_total` extract the API group from `resource` label and put it in new `group` label.", + "markdown": "For metrics `apiserver_cache_list_fetched_objects_total`, `apiserver_cache_list_returned_objects_total`, `apiserver_cache_list_total` replace `resource_prefix` label with API `group` and `resource` labels.\n For metrics `etcd_request_duration_seconds`, `etcd_requests_total` and `etcd_request_errors_total` replace `type` label with API `resource` and `group` label.\n For metric `apiserver_selfrequest_total` add a API `group` label.\n For metrics `apiserver_watch_events_sizes` and `apiserver_watch_events_total` replace API `kind` label with `resource` label.\n For metrics `apiserver_request_body_size_bytes`, `apiserver_storage_events_received_total`, `apiserver_storage_list_evaluated_objects_total`, `apiserver_storage_list_fetched_objects_total`, `apiserver_storage_list_returned_objects_total`, `apiserver_storage_list_total`, `apiserver_watch_cache_events_dispatched_total`, `apiserver_watch_cache_events_received_total`, `apiserver_watch_cache_initializations_total`, `apiserver_watch_cache_resource_version`, `watch_cache_capacity`, `apiserver_init_events_total`, `apiserver_terminated_watchers_total`, `watch_cache_capacity_increase_total`, `watch_cache_capacity_decrease_total`, `apiserver_watch_cache_read_wait_seconds`, `apiserver_watch_cache_consistent_read_total`, `apiserver_storage_consistency_checks_total`, `etcd_bookmark_counts`, `storage_decode_errors_total` extract the API group from `resource` label and put it in new `group` label. ([#131845](https://github.com/kubernetes/kubernetes/pull/131845), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd, Instrumentation and Testing]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131845", + "pr_number": 131845, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "etcd", + "instrumentation", + "testing" + ], + "duplicate": true, + "action_required": true + }, + "131868": { + "commit": "9959b56b8d34a095e6c7c428595e8902542b4005", + "text": "Stopped expanding the volume on the node if controller-side expansion was already completed.", + "markdown": "Stopped expanding the volume on the node if controller-side expansion was already completed. ([#131868](https://github.com/kubernetes/kubernetes/pull/131868), [@gnufied](https://github.com/gnufied))", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131868", + "pr_number": 131868, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "131873": { + "commit": "988cf21f0975cf95444a619481c13d2503d8ec6a", + "text": "Fixed a bug that caused duplicate validation when updating a ReplicaSet.", + "markdown": "Fixed a bug that caused duplicate validation when updating a ReplicaSet. ([#131873](https://github.com/kubernetes/kubernetes/pull/131873), [@gavinkflam](https://github.com/gavinkflam)) [SIG Apps]", + "author": "gavinkflam", + "author_url": "https://github.com/gavinkflam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131873", + "pr_number": 131873, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "131887": { + "commit": "e0859f91b7d269bb7e2f43e23d202ccccaf34c0c", + "text": "Types: CycleState, StateData, StateKey and ErrNotFound moved from pkg/scheduler/framework to k8s.io/kube-scheduler/framework.\nType CycleState that was passed to each plugin in scheduler framework was changed to the new interface CycleState (in k8s.io/kube-scheduler/framework).", + "markdown": "Types: CycleState, StateData, StateKey and ErrNotFound moved from pkg/scheduler/framework to k8s.io/kube-scheduler/framework.\n Type CycleState that was passed to each plugin in scheduler framework was changed to the new interface CycleState (in k8s.io/kube-scheduler/framework). ([#131887](https://github.com/kubernetes/kubernetes/pull/131887), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing]", + "author": "ania-borowiec", + "author_url": "https://github.com/ania-borowiec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131887", + "pr_number": 131887, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "scheduling", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "131907": { + "commit": "b65f712d2cb70a358e9c77d02b21874c14d3d1ba", + "text": "Stopped expanding PVCs annotated with node-expand-not-required.", + "markdown": "Stopped expanding PVCs annotated with node-expand-not-required. ([#131907](https://github.com/kubernetes/kubernetes/pull/131907), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Etcd, Node, Storage and Testing]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131907", + "pr_number": 131907, + "areas": [ + "test", + "kubelet", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "etcd", + "node", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "131916": { + "commit": "5596cc64c2a1b6a2d0b44a9b7d1d5c5be9b9c8c9", + "text": "kube-apiserver: Promoted the `StructuredAuthenticationConfiguration` feature gate to GA.", + "markdown": "Kube-apiserver: Promoted the `StructuredAuthenticationConfiguration` feature gate to GA. ([#131916](https://github.com/kubernetes/kubernetes/pull/131916), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + }, + { + "description": "[Other doc]", + "url": "https://kubernetes.io/docs/reference/access-authn-authz/authentication/#using-authentication-configuration", + "type": "official" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131916", + "pr_number": 131916, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "131919": { + "commit": "0405568a53ae811823a3526fae830a4913b355f3", + "text": "kubeadm: Switched the validation check for Linux kernel version to throw warnings instead of errors.", + "markdown": "Kubeadm: Switched the validation check for Linux kernel version to throw warnings instead of errors. ([#131919](https://github.com/kubernetes/kubernetes/pull/131919), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node]", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131919", + "pr_number": 131919, + "areas": [ + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "131934": { + "commit": "3044a4ce87abae50d8bf9ef77554fa16f2be2f12", + "text": "Built Kubernetes using Go 1.24.3.", + "markdown": "Built Kubernetes using Go 1.24.3. ([#131934](https://github.com/kubernetes/kubernetes/pull/131934), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131934", + "pr_number": 131934, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "131961": { + "commit": "7f139457c16c90bdcad1d1bc60d598f42ef04c1a", + "text": "kube-proxy: Removed the iptables CLI wait interval flag.", + "markdown": "Kube-proxy: Removed the iptables CLI wait interval flag. ([#131961](https://github.com/kubernetes/kubernetes/pull/131961), [@cyclinder](https://github.com/cyclinder))", + "author": "cyclinder", + "author_url": "https://github.com/cyclinder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131961", + "pr_number": 131961, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "131962": { + "commit": "b2dfba4151b859c31a27fe31f8703f9b2b758270", + "text": "The shorthand for --output flag in kubectl explain was accidentally deleted, but has been added back.", + "markdown": "The shorthand for --output flag in kubectl explain was accidentally deleted, but has been added back. ([#131962](https://github.com/kubernetes/kubernetes/pull/131962), [@superbrothers](https://github.com/superbrothers)) [SIG CLI]", + "author": "superbrothers", + "author_url": "https://github.com/superbrothers", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131962", + "pr_number": 131962, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ] + }, + "131965": { + "commit": "dae746b59d390c304cc2019d8840f99872a5723a", + "text": "Skipped pod backoff entirely when the `PodMaxBackoffDuration` kube-scheduler option was set to zero and the `SchedulerPopFromBackoffQ` feature gate was enabled.", + "markdown": "Skipped pod backoff entirely when the `PodMaxBackoffDuration` kube-scheduler option was set to zero and the `SchedulerPopFromBackoffQ` feature gate was enabled. ([#131965](https://github.com/kubernetes/kubernetes/pull/131965), [@macsko](https://github.com/macsko))", + "author": "macsko", + "author_url": "https://github.com/macsko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131965", + "pr_number": 131965, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "131968": { + "commit": "4832b57e48b98af0b0d558fa9810dc77b906ea62", + "text": "DRA kubelet: Simplified recovery from mistakes like scheduling a Pod onto a node where the required driver was not running, as the kubelet no longer unnecessarily blocked Pod deletion.", + "markdown": "DRA kubelet: Simplified recovery from mistakes like scheduling a Pod onto a node where the required driver was not running, as the kubelet no longer unnecessarily blocked Pod deletion. ([#131968](https://github.com/kubernetes/kubernetes/pull/131968), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131968", + "pr_number": 131968, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "131973": { + "commit": "2824e598b7e90a187c45d556ae5e39644ca40819", + "text": "Graduated scheduler `QueueingHint` support to GA (general availability)", + "markdown": "Graduated scheduler `QueueingHint` support to GA (general availability) ([#131973](https://github.com/kubernetes/kubernetes/pull/131973), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4247", + "type": "KEP" + } + ], + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131973", + "pr_number": 131973, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true + }, + "131979": { + "commit": "7f50c56b1aee651924f39317329d33977f3c736a", + "text": "Graduated `ResilientWatchCacheInitialization` to GA.", + "markdown": "Graduated `ResilientWatchCacheInitialization` to GA. ([#131979](https://github.com/kubernetes/kubernetes/pull/131979), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131979", + "pr_number": 131979, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "131981": { + "commit": "c1ed20c4ff181e4b98a1c508bf63ef6002ace8e9", + "text": "kubeadm: Graduated the `NodeLocalCRISocket` feature gate to beta and enabed it by default. When its enabled, kubeadm will:\n 1. Generate a `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in per-node kubelet configurations.\n 2. Remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from nodes during upgrade operations.\n 3. Remove the `--container-runtime-endpoint` flag from the `/var/lib/kubelet/kubeadm-flags.env` file during upgrades.", + "markdown": "Kubeadm: Graduated the `NodeLocalCRISocket` feature gate to beta and enabed it by default. When its enabled, kubeadm will:\n 1. Generate a `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in per-node kubelet configurations.\n 2. Remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from nodes during upgrade operations.\n 3. Remove the `--container-runtime-endpoint` flag from the `/var/lib/kubelet/kubeadm-flags.env` file during upgrades. ([#131981](https://github.com/kubernetes/kubernetes/pull/131981), [@HirazawaUi](https://github.com/HirazawaUi))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cluster-lifecycle/kubeadm/4656-add-kubelet-instance-configuration", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131981", + "pr_number": 131981, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "131989": { + "commit": "963a9acb6d88cc37733140d140bffa8966f4d90d", + "text": "`AppArmor` profiles specified in the Pod or container `SecurityContext` were no longer copied to deprecated `AppArmor` annotations (prefix `container.apparmor.security.beta.kubernetes.io/`). Anything that inspected the deprecated annotations must be migrated to use the `SecurityContext` fields instead.", + "markdown": "`AppArmor` profiles specified in the Pod or container `SecurityContext` were no longer copied to deprecated `AppArmor` annotations (prefix `container.apparmor.security.beta.kubernetes.io/`). Anything that inspected the deprecated annotations must be migrated to use the `SecurityContext` fields instead. ([#131989](https://github.com/kubernetes/kubernetes/pull/131989), [@tallclair](https://github.com/tallclair))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/24-apparmor/README.md#removing-annotation-support", + "type": "KEP" + } + ], + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131989", + "pr_number": 131989, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "action_required": true, + "is_mapped": true + }, + "131992": { + "commit": "6720f62d828efc7ca55647c42e98079baa74dbb2", + "text": "Deprecated `StreamingConnectionIdleTimeout` field of the kubelet config.", + "markdown": "Deprecated `StreamingConnectionIdleTimeout` field of the kubelet config. ([#131992](https://github.com/kubernetes/kubernetes/pull/131992), [@lalitc375](https://github.com/lalitc375))", + "author": "lalitc375", + "author_url": "https://github.com/lalitc375", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131992", + "pr_number": 131992, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "131996": { + "commit": "0731167a993018340e893b17ff08fd41d11d2e1f", + "text": "DRA: Starting with Kubernetes 1.34, the alpha-level `resource.k8s.io/admin-access` label has been updated to `resource.kubernetes.io/admin-access`. Admins using the alpha feature and updating from 1.33 can set both labels, upgrade, then remove `resource.k8s.io/admin-access` when no downgrade is going to happen anymore.", + "markdown": "DRA: Starting with Kubernetes 1.34, the alpha-level `resource.k8s.io/admin-access` label has been updated to `resource.kubernetes.io/admin-access`. Admins using the alpha feature and updating from 1.33 can set both labels, upgrade, then remove `resource.k8s.io/admin-access` when no downgrade is going to happen anymore. ([#131996](https://github.com/kubernetes/kubernetes/pull/131996), [@ritazh](https://github.com/ritazh)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5018", + "type": "KEP" + } + ], + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131996", + "pr_number": 131996, + "areas": [ + "test" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132000": { + "commit": "7e94ec9eacc2996e0e5b00af003276ae751915bc", + "text": "DRA API: resource.k8s.io/v1alpha3 now only contains DeviceTaintRule. All other types got removed because they became obsolete when introducing the v1beta1 API in 1.32.\nbefore updating a cluster where resourceclaims, resourceclaimtemplates, deviceclasses, or resourceslices might have been stored using Kubernetes \u003c 1.32, delete all of those resources before updating and recreate them as needed while running Kubernetes \u003e= 1.32.", + "markdown": "DRA API: resource.k8s.io/v1alpha3 now only contains DeviceTaintRule. All other types got removed because they became obsolete when introducing the v1beta1 API in 1.32.\n before updating a cluster where resourceclaims, resourceclaimtemplates, deviceclasses, or resourceslices might have been stored using Kubernetes \u003c 1.32, delete all of those resources before updating and recreate them as needed while running Kubernetes \u003e= 1.32. ([#132000](https://github.com/kubernetes/kubernetes/pull/132000), [@pohly](https://github.com/pohly)) [SIG Etcd, Node, Scheduling and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132000", + "pr_number": 132000, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "etcd", + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "132007": { + "commit": "146196c3171e796cb5f8bbf2ce9d59a4c1dce12d", + "text": "Updated the HPA controller so that it no longer emitted a `FailedRescale` event if a scale operation initially failed due to a conflict but succeeded after a retry; it now emitted a `SuccessfulRescale` event in this case. A `FailedRescale` event was still emitted if all retries were exhausted.", + "markdown": "Updated the HPA controller so that it no longer emitted a `FailedRescale` event if a scale operation initially failed due to a conflict but succeeded after a retry; it now emitted a `SuccessfulRescale` event in this case. A `FailedRescale` event was still emitted if all retries were exhausted. ([#132007](https://github.com/kubernetes/kubernetes/pull/132007), [@AumPatel1](https://github.com/AumPatel1)) [SIG Apps and Autoscaling]", + "author": "AumPatel1", + "author_url": "https://github.com/AumPatel1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132007", + "pr_number": 132007, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "autoscaling" + ], + "duplicate": true, + "is_mapped": true + }, + "132012": { + "commit": "3e5849972e619c58b3a8e8be2ca3ac35c4eb74da", + "text": "Bumped kube-dns to v1.26.4.", + "markdown": "Bumped kube-dns to v1.26.4. ([#132012](https://github.com/kubernetes/kubernetes/pull/132012), [@pacoxu](https://github.com/pacoxu))", + "author": "pacoxu", + "author_url": "https://github.com/pacoxu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132012", + "pr_number": 132012, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ], + "is_mapped": true + }, + "132019": { + "commit": "34df3b57763a63840c263e2f90b04890fb75a831", + "text": "Promoted two `EndpointSlice` tests to conformance to ensure that service proxy implementations rely on `EndpointSlices` instead of `Endpoints`.", + "markdown": "Promoted two `EndpointSlice` tests to conformance to ensure that service proxy implementations rely on `EndpointSlices` instead of `Endpoints`. ([#132019](https://github.com/kubernetes/kubernetes/pull/132019), [@danwinship](https://github.com/danwinship)) [SIG Architecture, Network and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4974-deprecate-endpoints", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132019", + "pr_number": 132019, + "areas": [ + "test", + "conformance" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture", + "network", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132028": { + "commit": "bf0be9fb568bca8a553e817e634d9114ea0a5230", + "text": "Modified the node-local `podresources` API endpoint to consider only active pods. Since this changes long-standing behavior, the `KubeletPodResourcesListUseActivePods` feature gate (enabled by default) can be disabled to restore the previous behavior. Users encountering regressions are encouraged to file an issue if they rely on the old behavior.", + "markdown": "Modified the node-local `podresources` API endpoint to consider only active pods. Since this changes long-standing behavior, the `KubeletPodResourcesListUseActivePods` feature gate (enabled by default) can be disabled to restore the previous behavior. Users encountering regressions are encouraged to file an issue if they rely on the old behavior. ([#132028](https://github.com/kubernetes/kubernetes/pull/132028), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132028", + "pr_number": 132028, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132033": { + "commit": "27ef1d4eed51d9502e28b1c09f61f9a5f7d24e53", + "text": "DRA: The scheduler plugin prevented abnormal filter runtimes by timing out after 10 seconds. This was configurable via the plugin configuration's `FilterTimeout`. Setting it to zero disabled the timeout and restored the behavior of Kubernetes \u003c= 1.33.", + "markdown": "DRA: The scheduler plugin prevented abnormal filter runtimes by timing out after 10 seconds. This was configurable via the plugin configuration's `FilterTimeout`. Setting it to zero disabled the timeout and restored the behavior of Kubernetes \u003c= 1.33. ([#132033](https://github.com/kubernetes/kubernetes/pull/132033), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132033", + "pr_number": 132033, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132034": { + "commit": "2d3ca18f645edd9065c32f07f02de2ba6273ab1d", + "text": "Updated `IsDNS1123SubdomainWithUnderscore` so that, when it returned an error, it also returned the correct regex information (`dns1123SubdomainFmtWithUnderscore`).", + "markdown": "Updated `IsDNS1123SubdomainWithUnderscore` so that, when it returned an error, it also returned the correct regex information (`dns1123SubdomainFmtWithUnderscore`). ([#132034](https://github.com/kubernetes/kubernetes/pull/132034), [@ChosenFoam](https://github.com/ChosenFoam))", + "author": "ChosenFoam", + "author_url": "https://github.com/ChosenFoam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132034", + "pr_number": 132034, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "132036": { + "commit": "849a82b727b1cc1e77b58149b3cacbfa5ada30fd", + "text": "Graduated relaxed DNS search string validation to GA. For the Pod API, `.spec.dnsConfig.searches`\nnow allows an underscore (`_`) where a dash (`-`) would be allowed, and it allows search strings be a single dot `.`.", + "markdown": "Graduated relaxed DNS search string validation to GA. For the Pod API, `.spec.dnsConfig.searches`\n now allows an underscore (`_`) where a dash (`-`) would be allowed, and it allows search strings be a single dot `.`. ([#132036](https://github.com/kubernetes/kubernetes/pull/132036), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Network and Testing]", + "author": "adrianmoisey", + "author_url": "https://github.com/adrianmoisey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132036", + "pr_number": 132036, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "testing" + ], + "feature": true, + "duplicate": true + }, + "132040": { + "commit": "2d1bb8dac1259f40e3de20d89147e9b2912e7eae", + "text": "Extended the NodePorts scheduling plugin to consider hostPorts used by restartable init containers.", + "markdown": "Extended the NodePorts scheduling plugin to consider hostPorts used by restartable init containers. ([#132040](https://github.com/kubernetes/kubernetes/pull/132040), [@avrittrohwer](https://github.com/avrittrohwer)) [SIG Scheduling and Testing]", + "author": "avrittrohwer", + "author_url": "https://github.com/avrittrohwer", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132040", + "pr_number": 132040, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132054": { + "commit": "4db16edaa8521f7dddfc964ae664d331f02ea50f", + "text": "Promoted the `RelaxedEnvironmentVariableValidation` feature gate to GA and locked it in the enabled state by default.", + "markdown": "Promoted the `RelaxedEnvironmentVariableValidation` feature gate to GA and locked it in the enabled state by default. ([#132054](https://github.com/kubernetes/kubernetes/pull/132054), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Apps, Architecture, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4369-allow-special-characters-environment-variable", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132054", + "pr_number": 132054, + "areas": [ + "test", + "kubelet", + "conformance", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "architecture", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132058": { + "commit": "dcefe0ef41113324a4e4e43606f868a0858c55a6", + "text": "DRA kubelet: Fixed the kubelet to also clean up `ResourceSlices` in some additional failure scenarios (driver was removed forcibly or crashed and did not restart).", + "markdown": "DRA kubelet: Fixed the kubelet to also clean up `ResourceSlices` in some additional failure scenarios (driver was removed forcibly or crashed and did not restart). ([#132058](https://github.com/kubernetes/kubernetes/pull/132058), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132058", + "pr_number": 132058, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132065": { + "commit": "1e59323e60e9565098dfc4014cbdfb0e67ab5e11", + "text": "Fixed the bug when swap related metrics were not available in `/metrics/resource` endpoint.", + "markdown": "Fixed the bug when swap related metrics were not available in `/metrics/resource` endpoint. ([#132065](https://github.com/kubernetes/kubernetes/pull/132065), [@yuanwang04](https://github.com/yuanwang04)) [SIG Node and Testing]", + "author": "yuanwang04", + "author_url": "https://github.com/yuanwang04", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132065", + "pr_number": 132065, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "132080": { + "commit": "08ee8bde594a42bc1a222c9fd25726352a1e6049", + "text": "kubeadm: Consistently prefixed errors with error: when printing them.", + "markdown": "Kubeadm: Consistently prefixed errors with error: when printing them. ([#132080](https://github.com/kubernetes/kubernetes/pull/132080), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132080", + "pr_number": 132080, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup", + "deprecation" + ], + "sigs": [ + "cluster-lifecycle" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "132083": { + "commit": "7d758620bce49260e7fd7db601a6c18042e4b039", + "text": "Removed general available feature-gate `DevicePluginCDIDevices`.", + "markdown": "Removed general available feature-gate `DevicePluginCDIDevices`. ([#132083](https://github.com/kubernetes/kubernetes/pull/132083), [@carlory](https://github.com/carlory)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "http://kep.k8s.io/4009", + "type": "external" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132083", + "pr_number": 132083, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132087": { + "commit": "2ee568260ff50064a5b7e46bc53d216edff2c640", + "text": "Types: Code and Status moved from pkg/scheduler/framework to staging repo.\nUsers should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`.", + "markdown": "Types: Code and Status moved from pkg/scheduler/framework to staging repo.\n Users should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`. ([#132087](https://github.com/kubernetes/kubernetes/pull/132087), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing]", + "author": "ania-borowiec", + "author_url": "https://github.com/ania-borowiec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132087", + "pr_number": 132087, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "scheduling", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132096": { + "commit": "54291a55c2bc121f2322560dd0badb893ac30c4d", + "text": "DRA kubelet- Updated logging to use `driverName` instead of `pluginName`, aligning with the rest of the Kubernetes components.", + "markdown": "DRA kubelet- Updated logging to use `driverName` instead of `pluginName`, aligning with the rest of the Kubernetes components. ([#132096](https://github.com/kubernetes/kubernetes/pull/132096), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132096", + "pr_number": 132096, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132106": { + "commit": "041974709cd8d259aec104f3f3a53d5df43d0268", + "text": "Allowed `pvc.spec.VolumeAttributesClassName` to change from non-nil to nil.", + "markdown": "Allowed `pvc.spec.VolumeAttributesClassName` to change from non-nil to nil. ([#132106](https://github.com/kubernetes/kubernetes/pull/132106), [@AndrewSirenko](https://github.com/AndrewSirenko))", + "author": "AndrewSirenko", + "author_url": "https://github.com/AndrewSirenko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132106", + "pr_number": 132106, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "132108": { + "commit": "52bc7515ca5387ab23cf5874324d12d300a4c443", + "text": "Graduated the `WinDSR` feature in the kube-proxy to GA. The `WinDSR` feature gate was enabled by default.", + "markdown": "Graduated the `WinDSR` feature in the kube-proxy to GA. The `WinDSR` feature gate was enabled by default. ([#132108](https://github.com/kubernetes/kubernetes/pull/132108), [@rzlink](https://github.com/rzlink)) [SIG Network and Windows]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/5100-windows-dsr-and-overlay-support", + "type": "KEP" + } + ], + "author": "rzlink", + "author_url": "https://github.com/rzlink", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132108", + "pr_number": 132108, + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "windows" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132109": { + "commit": "a26f3fd5c644529c1874e7d517042acec7732ff7", + "text": "Fixed a bug that caused an unexpected delay in creating Pods for newly created Jobs.", + "markdown": "Fixed a bug that caused an unexpected delay in creating Pods for newly created Jobs. ([#132109](https://github.com/kubernetes/kubernetes/pull/132109), [@linxiulei](https://github.com/linxiulei)) [SIG Apps and Testing]", + "author": "linxiulei", + "author_url": "https://github.com/linxiulei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132109", + "pr_number": 132109, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132117": { + "commit": "8a95bb683337dd0d83154ea608c6cb2351620aa7", + "text": "Promoted the `agnhost` image to v2.56 for Kubernetes e2e testing; verified digest: sha256:352a050380078cb2a1c246357a0dfa2fcf243ee416b92ff28b44a01d1b4b0294.", + "markdown": "Promoted the `agnhost` image to v2.56 for Kubernetes e2e testing; verified digest: sha256:352a050380078cb2a1c246357a0dfa2fcf243ee416b92ff28b44a01d1b4b0294. ([#132117](https://github.com/kubernetes/kubernetes/pull/132117), [@yashsingh74](https://github.com/yashsingh74)) [SIG Network and Testing]", + "author": "yashsingh74", + "author_url": "https://github.com/yashsingh74", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132117", + "pr_number": 132117, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "testing" + ], + "duplicate": true, + "do_not_publish": true, + "is_mapped": true + }, + "132121": { + "commit": "d195722623824d68b244b80736a9d460bd714217", + "text": "ReplicaSets and Deployments should always count `.status.availableReplicas` at the correct time without a delay. This results in faster reconciliation of Deployment conditions and faster, unblocked Deployment rollouts.", + "markdown": "ReplicaSets and Deployments should always count `.status.availableReplicas` at the correct time without a delay. This results in faster reconciliation of Deployment conditions and faster, unblocked Deployment rollouts. ([#132121](https://github.com/kubernetes/kubernetes/pull/132121), [@atiratree](https://github.com/atiratree)) [SIG Apps]", + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132121", + "pr_number": 132121, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "132127": { + "commit": "bf84dd0cc9a9496bb6ec025d916246b2274e05bd", + "text": "The PreferSameTrafficDistribution feature gate is now enabled by default,\nenabling the `PreferSameNode` traffic distribution value for Services.", + "markdown": "The PreferSameTrafficDistribution feature gate is now enabled by default,\n enabling the `PreferSameNode` traffic distribution value for Services. ([#132127](https://github.com/kubernetes/kubernetes/pull/132127), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3015", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132127", + "pr_number": 132127, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "network" + ], + "feature": true, + "duplicate": true + }, + "132149": { + "commit": "3aa448625c2d2f10275c608f54b88074ef6aeafa", + "text": "Removed support for API streaming from the metadata client’s `List() method`.", + "markdown": "Removed support for API streaming from the metadata client’s `List() method`. ([#132149](https://github.com/kubernetes/kubernetes/pull/132149), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132149", + "pr_number": 132149, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132165": { + "commit": "060ed4e99aaa30ad65600427ec1b9ee4fa64d3d1", + "text": "Fixed misleading response codes in admission control metrics.", + "markdown": "Fixed misleading response codes in admission control metrics. ([#132165](https://github.com/kubernetes/kubernetes/pull/132165), [@gavinkflam](https://github.com/gavinkflam)) [SIG API Machinery, Architecture and Instrumentation]", + "author": "gavinkflam", + "author_url": "https://github.com/gavinkflam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132165", + "pr_number": 132165, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "architecture", + "instrumentation" + ], + "duplicate": true + }, + "132173": { + "commit": "49c20d6f440fc8d0fe9a9b57542b06eec45bb485", + "text": "Promoted Job Pod Replacement Policy to general availability. The `JobPodReplacementPolicy` feature gate was locked to `true` and will be removed in a future Kubernetes release.", + "markdown": "Promoted Job Pod Replacement Policy to general availability. The `JobPodReplacementPolicy` feature gate was locked to `true` and will be removed in a future Kubernetes release. ([#132173](https://github.com/kubernetes/kubernetes/pull/132173), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3939", + "type": "KEP" + } + ], + "author": "dejanzele", + "author_url": "https://github.com/dejanzele", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132173", + "pr_number": 132173, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132178": { + "commit": "2cca13f87729c9c798f6563fbb3fd2955423538c", + "text": "Updated the built in `system:monitoring` role with permission to access kubelet metrics endpoints.", + "markdown": "Updated the built in `system:monitoring` role with permission to access kubelet metrics endpoints. ([#132178](https://github.com/kubernetes/kubernetes/pull/132178), [@gavinkflam](https://github.com/gavinkflam)) [SIG Auth]", + "author": "gavinkflam", + "author_url": "https://github.com/gavinkflam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132178", + "pr_number": 132178, + "kinds": [ + "feature" + ], + "sigs": [ + "auth" + ], + "feature": true + }, + "132183": { + "commit": "c7331527b5ca2a840064c42d56d791d05bb85479", + "text": "Fixed an issue where `insufficientResources` was logged as a pointer during pod preemption, making logs more readable.", + "markdown": "Fixed an issue where `insufficientResources` was logged as a pointer during pod preemption, making logs more readable. ([#132183](https://github.com/kubernetes/kubernetes/pull/132183), [@chrisy-x](https://github.com/chrisy-x)) [SIG Node]", + "author": "chrisy-x", + "author_url": "https://github.com/chrisy-x", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132183", + "pr_number": 132183, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ] + }, + "132190": { + "commit": "00d375050338df847285c0a12bbd90c328d0e707", + "text": "Types: `ClusterEvent`, `ActionType`, `EventResource`, `ClusterEventWithHint`, `QueueingHint` and `QueueingHintFn` moved from `pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`.", + "markdown": "Types: `ClusterEvent`, `ActionType`, `EventResource`, `ClusterEventWithHint`, `QueueingHint` and `QueueingHintFn` moved from `pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`. ([#132190](https://github.com/kubernetes/kubernetes/pull/132190), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing]", + "author": "ania-borowiec", + "author_url": "https://github.com/ania-borowiec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132190", + "pr_number": 132190, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "scheduling", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132194": { + "commit": "7b04d7faefcc28a90fb092e789abda467b086403", + "text": "Added a `runtime.ApplyConfiguration` interface implemented by all generated apply configuration types.", + "markdown": "Added a `runtime.ApplyConfiguration` interface implemented by all generated apply configuration types. ([#132194](https://github.com/kubernetes/kubernetes/pull/132194), [@alvaroaleman](https://github.com/alvaroaleman)) [SIG API Machinery and Instrumentation]", + "author": "alvaroaleman", + "author_url": "https://github.com/alvaroaleman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132194", + "pr_number": 132194, + "areas": [ + "code-generation" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132210": { + "commit": "0001a8aeffc0ee72d71b648447282dcb3305a1ba", + "text": "By default, binaries like kube-apiserver were built with the `grpcnotrace` tag enabled. Used the `DBG` flag to enable Golang tracing if needed.", + "markdown": "By default, binaries like kube-apiserver were built with the `grpcnotrace` tag enabled. Used the `DBG` flag to enable Golang tracing if needed. ([#132210](https://github.com/kubernetes/kubernetes/pull/132210), [@dims](https://github.com/dims))", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132210", + "pr_number": 132210, + "areas": [ + "code-organization" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture" + ], + "is_mapped": true + }, + "132214": { + "commit": "c297f38544f7343f3499626573c196c5c528a02e", + "text": "Added warnings when creating headless service with set `loadBalancerIP`,`externalIPs` and/or `SessionAffinity`.", + "markdown": "Added warnings when creating headless service with set `loadBalancerIP`,`externalIPs` and/or `SessionAffinity`. ([#132214](https://github.com/kubernetes/kubernetes/pull/132214), [@Peac36](https://github.com/Peac36))", + "author": "Peac36", + "author_url": "https://github.com/Peac36", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132214", + "pr_number": 132214, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "network" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "132219": { + "commit": "3bab7bccd39cf0161c1f832413146be1988438be", + "text": "Promoted the Ordered Namespace Deletion test to Conformance.", + "markdown": "Promoted the Ordered Namespace Deletion test to Conformance. ([#132219](https://github.com/kubernetes/kubernetes/pull/132219), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/5080", + "type": "external" + } + ], + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132219", + "pr_number": 132219, + "areas": [ + "test", + "conformance" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132222": { + "commit": "d2ab26a5c51af17d694753ff6b1f79ebb2e8d56b", + "text": "Built Kubernetes using Go 1.24.4.", + "markdown": "Built Kubernetes using Go 1.24.4. ([#132222](https://github.com/kubernetes/kubernetes/pull/132222), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132222", + "pr_number": 132222, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132229": { + "commit": "5abd2ac2e3900165d87c6078f55afd98ae6b085a", + "text": "Removed support for API streaming from the dynamic client’s `List() method`.", + "markdown": "Removed support for API streaming from the dynamic client’s `List() method`. ([#132229](https://github.com/kubernetes/kubernetes/pull/132229), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, CLI and Testing]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132229", + "pr_number": 132229, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cli", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132236": { + "commit": "158fce12bac6b52781bad068064220511ce24419", + "text": "The validation-gen code generator generated validation code that supported validation ratcheting.", + "markdown": "The validation-gen code generator generated validation code that supported validation ratcheting. ([#132236](https://github.com/kubernetes/kubernetes/pull/132236), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps, Auth and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/5073-declarative-validation-with-validation-gen/README.md", + "type": "KEP" + } + ], + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132236", + "pr_number": 132236, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132238": { + "commit": "c7b3f5d0b9d3b557d333a7244ed228c8067cf2e6", + "text": "kube-apiserver: removed the deprecated `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total` metrics in favor of `apiserver_encryption_config_controller_automatic_reloads_total`.", + "markdown": "Kube-apiserver: removed the deprecated `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total` metrics in favor of `apiserver_encryption_config_controller_automatic_reloads_total`. ([#132238](https://github.com/kubernetes/kubernetes/pull/132238), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132238", + "pr_number": 132238, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true + }, + "132244": { + "commit": "74210dd399c14582754e933de83a9e44b1d69c69", + "text": "Fixed a regression introduced in 1.33 where some paginated LIST calls fell back to `etcd` instead of being served from cache.", + "markdown": "Fixed a regression introduced in 1.33 where some paginated LIST calls fell back to `etcd` instead of being served from cache. ([#132244](https://github.com/kubernetes/kubernetes/pull/132244), [@hakuna-matatah](https://github.com/hakuna-matatah))", + "author": "hakuna-matatah", + "author_url": "https://github.com/hakuna-matatah", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132244", + "pr_number": 132244, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132251": { + "commit": "dac3c09bd16643dbac5e976e85d81825dd226ac0", + "text": "kubectl interactive delete: treat empty newline input as N", + "markdown": "Kubectl interactive delete: treat empty newline input as N ([#132251](https://github.com/kubernetes/kubernetes/pull/132251), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI]", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132251", + "pr_number": 132251, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ] + }, + "132257": { + "commit": "41dc045529a306932165684450cfe89d160fe8c9", + "text": "Removed support for API streaming from the `List()` method of the typed client.", + "markdown": "Removed support for API streaming from the `List()` method of the typed client. ([#132257](https://github.com/kubernetes/kubernetes/pull/132257), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132257", + "pr_number": 132257, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132258": { + "commit": "8458cfed43f96e05fac0bfa43fbec473c39d5689", + "text": "Fixed an incorrect reference to `JoinConfigurationKind` in the error message when no ResetConfiguration is found during `kubeadm reset` with the `--config` flag.", + "markdown": "Fixed an incorrect reference to `JoinConfigurationKind` in the error message when no ResetConfiguration is found during `kubeadm reset` with the `--config` flag. ([#132258](https://github.com/kubernetes/kubernetes/pull/132258), [@J3m3](https://github.com/J3m3)) [SIG Cluster Lifecycle]", + "author": "J3m3", + "author_url": "https://github.com/J3m3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132258", + "pr_number": 132258, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ] + }, + "132276": { + "commit": "06b62dcae7b2e11dbfc4aea2e0b8d5ced2cf26d9", + "text": "Added a warning when alpha metrics are used with emulated versions.", + "markdown": "Added a warning when alpha metrics are used with emulated versions. ([#132276](https://github.com/kubernetes/kubernetes/pull/132276), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery and Architecture]", + "author": "michaelasp", + "author_url": "https://github.com/michaelasp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132276", + "pr_number": 132276, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132277": { + "commit": "63011fe547137f2a45ace2bb1f360b8b7ec70fe2", + "text": "Changed underlying logic for `Eviction Manager` helper functions.", + "markdown": "Changed underlying logic for `Eviction Manager` helper functions. ([#132277](https://github.com/kubernetes/kubernetes/pull/132277), [@KevinTMtz](https://github.com/KevinTMtz)) [SIG Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]: [kubernetes/enhancements#2837](", + "url": "https://github.com/kubernetes/enhancements/issues/2837)", + "type": "KEP" + } + ], + "author": "KevinTMtz", + "author_url": "https://github.com/KevinTMtz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132277", + "pr_number": 132277, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132284": { + "commit": "c6539bc785f083e3770bc00e5124c9876c45a508", + "text": "Updated etcd version to v3.6.1.", + "markdown": "Updated etcd version to v3.6.1. ([#132284](https://github.com/kubernetes/kubernetes/pull/132284), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]", + "author": "ArkaSaha30", + "author_url": "https://github.com/ArkaSaha30", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132284", + "pr_number": 132284, + "areas": [ + "test", + "provider/gcp", + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "cluster-lifecycle", + "etcd", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132285": { + "commit": "c6777da47d1f9e93585cf23363da5c393eb7011a", + "text": "Removed support for API streaming from the REST client.", + "markdown": "Removed support for API streaming from the REST client. ([#132285](https://github.com/kubernetes/kubernetes/pull/132285), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132285", + "pr_number": 132285, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132296": { + "commit": "c3f5bea6e746602690f91fb717ecca3aa7acb32e", + "text": "Introduced a method `GetPCIeRootAttributeByPCIBusID(pciBusID)` for third-party DRA drivers to provide common logic for the standardized device attribute `resource.kubernetes.io/pcieRoot`.", + "markdown": "Introduced a method `GetPCIeRootAttributeByPCIBusID(pciBusID)` for third-party DRA drivers to provide common logic for the standardized device attribute `resource.kubernetes.io/pcieRoot`. ([#132296](https://github.com/kubernetes/kubernetes/pull/132296), [@everpeace](https://github.com/everpeace))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4381-dra-structured-parameters", + "type": "KEP" + } + ], + "author": "everpeace", + "author_url": "https://github.com/everpeace", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132296", + "pr_number": 132296, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "132299": { + "commit": "033ffc73d6ad00cd600ff557da84261518346a73", + "text": "kube-apiserver reported the last configuration hash as a label in\n\n- `apiserver_authentication_config_controller_last_config_info` metric after successfully loading the authentication configuration file.\n- `apiserver_authorization_config_controller_last_config_info` metric after successfully loading the authorization configuration file.\n- `apiserver_encryption_config_controller_last_config_info` metric after successfully loading the encryption configuration file.", + "markdown": "Kube-apiserver reported the last configuration hash as a label in\n \n - `apiserver_authentication_config_controller_last_config_info` metric after successfully loading the authentication configuration file.\n - `apiserver_authorization_config_controller_last_config_info` metric after successfully loading the authorization configuration file.\n - `apiserver_encryption_config_controller_last_config_info` metric after successfully loading the encryption configuration file. ([#132299](https://github.com/kubernetes/kubernetes/pull/132299), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + }, + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3221-structured-authorization-configuration", + "type": "KEP" + }, + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3299-kms-v2-improvements", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132299", + "pr_number": 132299, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132305": { + "commit": "8f1f17a04f62ab64ebe4f0b9d7f5f799bf56a0d9", + "text": "Changed Job controller to use the controller UID index for Pod lookups to improve performance.", + "markdown": "Changed Job controller to use the controller UID index for Pod lookups to improve performance. ([#132305](https://github.com/kubernetes/kubernetes/pull/132305), [@xigang](https://github.com/xigang))", + "author": "xigang", + "author_url": "https://github.com/xigang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132305", + "pr_number": 132305, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "132326": { + "commit": "fc198b92c0d5cece06fd4ecc24f6142532beff37", + "text": "Removed the `kubernetes.io/initial-events-list-blueprint` annotation from the synthetic \"Bookmark\" event in watch stream requests.", + "markdown": "Removed the `kubernetes.io/initial-events-list-blueprint` annotation from the synthetic \"Bookmark\" event in watch stream requests. ([#132326](https://github.com/kubernetes/kubernetes/pull/132326), [@p0lyn0mial](https://github.com/p0lyn0mial))", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132326", + "pr_number": 132326, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132336": { + "commit": "5e33c00e37832214a0c240ca4bcb18f7a6f1e5e4", + "text": "Fixed APIServerTracing test data race; ~/go/src/k8s.io/kubernetes/test/integration/apiserver/tracing$ go test ./... -race\nok \tk8s.io/kubernetes/test/integration/apiserver/tracing\t68.825s.", + "markdown": "Fixed APIServerTracing test data race; ~/go/src/k8s.io/kubernetes/test/integration/apiserver/tracing$ go test ./... -race\n ok \tk8s.io/kubernetes/test/integration/apiserver/tracing\t68.825s. ([#132336](https://github.com/kubernetes/kubernetes/pull/132336), [@dashpole](https://github.com/dashpole)) [SIG API Machinery and Testing]", + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132336", + "pr_number": 132336, + "areas": [ + "test" + ], + "kinds": [ + "failing-test" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "duplicate": true, + "do_not_publish": true, + "is_mapped": true + }, + "132338": { + "commit": "70c25cbe0c01bb49dd09b8c5497b8d2299a82abe", + "text": "Added `omitempty` and `opt` tag to the API `v1beta2` AdminAccess type in the `DeviceRequestAllocationResult` struct.", + "markdown": "Added `omitempty` and `opt` tag to the API `v1beta2` AdminAccess type in the `DeviceRequestAllocationResult` struct. ([#132338](https://github.com/kubernetes/kubernetes/pull/132338), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132338", + "pr_number": 132338, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "auth" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "132339": { + "commit": "9fbd2dae144d21181d441141fbd33fea02ef8f27", + "text": "When `RelaxedServiceNameValidation` feature gate is enabled, the \nnames of new Services names are validation with `NameIsDNSLabel()`,\nrelaxing the pre-existing validation.", + "markdown": "When `RelaxedServiceNameValidation` feature gate is enabled, the \n names of new Services names are validation with `NameIsDNSLabel()`,\n relaxing the pre-existing validation. ([#132339](https://github.com/kubernetes/kubernetes/pull/132339), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps, Network and Testing]", + "author": "adrianmoisey", + "author_url": "https://github.com/adrianmoisey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132339", + "pr_number": 132339, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "network", + "testing" + ], + "feature": true, + "duplicate": true + }, + "132340": { + "commit": "9827205bfe18822f31b1ee4af8141750082af428", + "text": "Promoted the `APIServerTracing` feature gate to GA. The `--tracing-config-file` flag accepted `TracingConfiguration` in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`).", + "markdown": "Promoted the `APIServerTracing` feature gate to GA. The `--tracing-config-file` flag accepted `TracingConfiguration` in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`). ([#132340](https://github.com/kubernetes/kubernetes/pull/132340), [@dashpole](https://github.com/dashpole)) [SIG API Machinery and Testing]", + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132340", + "pr_number": 132340, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132341": { + "commit": "8790d5b819cfc3b8edc9408b8a392b8734910ea2", + "text": "Promoted the `KubeletTracing` feature gate to GA.", + "markdown": "Promoted the `KubeletTracing` feature gate to GA. ([#132341](https://github.com/kubernetes/kubernetes/pull/132341), [@dashpole](https://github.com/dashpole)) [SIG Instrumentation and Node]", + "author": "dashpole", + "author_url": "https://github.com/dashpole", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132341", + "pr_number": 132341, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "instrumentation", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "132342": { + "commit": "62f6e213ce478782b2d388b9500f4546d7b71d58", + "text": "Implemented prioritization of resize requests based on `priorityClass` and QoS class when node resources are insufficient to accommodate all pending resize operations.", + "markdown": "Implemented prioritization of resize requests based on `priorityClass` and QoS class when node resources are insufficient to accommodate all pending resize operations. ([#132342](https://github.com/kubernetes/kubernetes/pull/132342), [@natasha41575](https://github.com/natasha41575)) [SIG Node and Testing]", + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132342", + "pr_number": 132342, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132348": { + "commit": "8f312e6fbf7236fa6b48e178d18a90c892d41f4a", + "text": "Added a `container_swap_limit_bytes` metric to expose the swap limit assigned to containers under the `LimitedSwap` swap behavior.", + "markdown": "Added a `container_swap_limit_bytes` metric to expose the swap limit assigned to containers under the `LimitedSwap` swap behavior. ([#132348](https://github.com/kubernetes/kubernetes/pull/132348), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2400-node-swap/README.md", + "type": "KEP" + } + ], + "author": "iholder101", + "author_url": "https://github.com/iholder101", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132348", + "pr_number": 132348, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132351": { + "commit": "efd2a0d1f514be96a2f012fc3cb40f7c872b4e67", + "text": "HPA status displayed memory metrics using Ki.", + "markdown": "HPA status displayed memory metrics using Ki. ([#132351](https://github.com/kubernetes/kubernetes/pull/132351), [@googs1025](https://github.com/googs1025)) [SIG Apps and Autoscaling]", + "author": "googs1025", + "author_url": "https://github.com/googs1025", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132351", + "pr_number": 132351, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "autoscaling" + ], + "duplicate": true, + "is_mapped": true + }, + "132352": { + "commit": "211e58685c6df41ce4e87f2e805dd9f605626a06", + "text": "Removed the deprecated flag `--wait-interval` for the `ip6tables-legacy-restore` binary.", + "markdown": "Removed the deprecated flag `--wait-interval` for the `ip6tables-legacy-restore` binary. ([#132352](https://github.com/kubernetes/kubernetes/pull/132352), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132352", + "pr_number": 132352, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "132355": { + "commit": "025636181393cc95bf78a48238fff5c8b05d6404", + "text": "Added `SizeBasedListCostEstimate` feature gate that allowed apiserver to estimate sizes of objects to calculate cost of LIST requests.", + "markdown": "Added `SizeBasedListCostEstimate` feature gate that allowed apiserver to estimate sizes of objects to calculate cost of LIST requests. ([#132355](https://github.com/kubernetes/kubernetes/pull/132355), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132355", + "pr_number": 132355, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "etcd" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132361": { + "commit": "41477c97480546e33fcce4f3bb301709f0c3c9b4", + "text": "Migrated validation in `CertificateSigningRequest` to use declarative validation. When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. If `DeclarativeValidationTakeover` is enabled, declarative validation becomes the primary source of errors for migrated fields.", + "markdown": "Migrated validation in `CertificateSigningRequest` to use declarative validation. When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. If `DeclarativeValidationTakeover` is enabled, declarative validation becomes the primary source of errors for migrated fields. ([#132361](https://github.com/kubernetes/kubernetes/pull/132361), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/5073-declarative-validation-with-validation-gen/README.md", + "type": "KEP" + } + ], + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132361", + "pr_number": 132361, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132374": { + "commit": "49bff137a7211ff300028bfdba3ce1929a5dfb2b", + "text": "Fixed API response for `StorageClassList` queries to return a graceful error message, if the provided `ResourceVersion` is too large.", + "markdown": "Fixed API response for `StorageClassList` queries to return a graceful error message, if the provided `ResourceVersion` is too large. ([#132374](https://github.com/kubernetes/kubernetes/pull/132374), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Etcd]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132374", + "pr_number": 132374, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "etcd" + ], + "duplicate": true, + "is_mapped": true + }, + "132376": { + "commit": "885db534cabb9c1975553f43e32c90f0be256a51", + "text": "apimachinery: Deprecated `MessageCountMap` and `CreateAggregateFromMessageCountMap`.", + "markdown": "Apimachinery: Deprecated `MessageCountMap` and `CreateAggregateFromMessageCountMap`. ([#132376](https://github.com/kubernetes/kubernetes/pull/132376), [@tico88612](https://github.com/tico88612))", + "author": "tico88612", + "author_url": "https://github.com/tico88612", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132376", + "pr_number": 132376, + "kinds": [ + "deprecation" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132391": { + "commit": "ab685237f00437507175ca6f1564db021d0357aa", + "text": "Added a new `PreBindPreFlight` function to the `PreBindPlugin` interface. All in-tree `PreBind` plugins have been updated to implement `PreBindPreFlight` function.", + "markdown": "Added a new `PreBindPreFlight` function to the `PreBindPlugin` interface. All in-tree `PreBind` plugins have been updated to implement `PreBindPreFlight` function. ([#132391](https://github.com/kubernetes/kubernetes/pull/132391), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/5278-nominated-node-name-for-expectation", + "type": "KEP" + } + ], + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132391", + "pr_number": 132391, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132413": { + "commit": "65c12acf7d17bb5584ca086af33ef6d6be80fc24", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the components-helper of the apimachinery.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the components-helper of the apimachinery. ([#132413](https://github.com/kubernetes/kubernetes/pull/132413), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132413", + "pr_number": 132413, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132429": { + "commit": "08362f0650eb4346e6aee09ce88821e6041f6996", + "text": "Promoted `MutableCSINodeAllocatableCount` to beta.", + "markdown": "Promoted `MutableCSINodeAllocatableCount` to beta. ([#132429](https://github.com/kubernetes/kubernetes/pull/132429), [@torredil](https://github.com/torredil))", + "author": "torredil", + "author_url": "https://github.com/torredil", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132429", + "pr_number": 132429, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132430": { + "commit": "7fbf63a23fcf393d4ba310412155dfbbaa36bb9a", + "text": "Added HPA support to pod-level resource specifications. When the pod-level resource feature was enabled, HPAs configured with `Resource` type metrics calculated the pod resources from `pod.Spec.Resources` field, if specified.", + "markdown": "Added HPA support to pod-level resource specifications. When the pod-level resource feature was enabled, HPAs configured with `Resource` type metrics calculated the pod resources from `pod.Spec.Resources` field, if specified. ([#132430](https://github.com/kubernetes/kubernetes/pull/132430), [@laoj2](https://github.com/laoj2)) [SIG Apps, Autoscaling and Testing]", + "author": "laoj2", + "author_url": "https://github.com/laoj2", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132430", + "pr_number": 132430, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "autoscaling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132433": { + "commit": "201325e86913cfff34f5f2146f2ab4e496a2ef6f", + "text": "Added configurable flags to kube-apiserver for coordinated leader election.", + "markdown": "Added configurable flags to kube-apiserver for coordinated leader election. ([#132433](https://github.com/kubernetes/kubernetes/pull/132433), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery and Testing]", + "author": "michaelasp", + "author_url": "https://github.com/michaelasp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132433", + "pr_number": 132433, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132443": { + "commit": "fd3c879a5bae34040b348672bcf67c41e7f6e086", + "text": "Whenever a pod was successfully bound to a node, the kube-apiserver cleared the pod's `nominatedNodeName` field. This prevented stale information from affecting external scheduling components.", + "markdown": "Whenever a pod was successfully bound to a node, the kube-apiserver cleared the pod's `nominatedNodeName` field. This prevented stale information from affecting external scheduling components. ([#132443](https://github.com/kubernetes/kubernetes/pull/132443), [@utam0k](https://github.com/utam0k)) [SIG Apps, Node, Scheduling and Testing]", + "author": "utam0k", + "author_url": "https://github.com/utam0k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132443", + "pr_number": 132443, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132456": { + "commit": "9538d533533493baec7ef0be574f863e67e7dae9", + "text": "Updated `kube-proxy` with `nftables` to reject or drop traffic to services with no endpoints from filter chains at priority 0 (`NF_IP_PRI_FILTER`).", + "markdown": "Updated `kube-proxy` with `nftables` to reject or drop traffic to services with no endpoints from filter chains at priority 0 (`NF_IP_PRI_FILTER`). ([#132456](https://github.com/kubernetes/kubernetes/pull/132456), [@aroradaman](https://github.com/aroradaman))", + "author": "aroradaman", + "author_url": "https://github.com/aroradaman", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132456", + "pr_number": 132456, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "132457": { + "commit": "a11bc701e8138b13445cff44f2bc7b468db71350", + "text": "Types: `NodeInfo`, `PodInfo`, `QueuedPodInfo`, `PodResource`, `AffinityTerm`, `WeightedAffinityTerm`, `Resource`, `ImageStateSummary`, `ProtocolPort` and `HostPortInfo` were moved from `pkg/scheduler/framework` to staging repo.\nUsers should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework` and update use of fields (to use getter/setter functions instead) where needed.", + "markdown": "Types: `NodeInfo`, `PodInfo`, `QueuedPodInfo`, `PodResource`, `AffinityTerm`, `WeightedAffinityTerm`, `Resource`, `ImageStateSummary`, `ProtocolPort` and `HostPortInfo` were moved from `pkg/scheduler/framework` to staging repo.\n Users should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework` and update use of fields (to use getter/setter functions instead) where needed. ([#132457](https://github.com/kubernetes/kubernetes/pull/132457), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing]", + "author": "ania-borowiec", + "author_url": "https://github.com/ania-borowiec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132457", + "pr_number": 132457, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "scheduling", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132462": { + "commit": "558e903fb1f2e9db8c118aac35d92111c1e11722", + "text": "Fixed bug that prevented the alpha feature `PodTopologyLabelAdmission` from working due to checking for the incorrect label key when copying topology labels. This bug delayed the graduation of the feature to beta by an additional release to allow time for meaningful feedback.", + "markdown": "Fixed bug that prevented the alpha feature `PodTopologyLabelAdmission` from working due to checking for the incorrect label key when copying topology labels. This bug delayed the graduation of the feature to beta by an additional release to allow time for meaningful feedback. ([#132462](https://github.com/kubernetes/kubernetes/pull/132462), [@munnerz](https://github.com/munnerz))", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/4742", + "type": "KEP" + }, + { + "description": "KEP update", + "url": "https://github.com/kubernetes/enhancements/pull/5428", + "type": "KEP" + } + ], + "author": "munnerz", + "author_url": "https://github.com/munnerz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132462", + "pr_number": 132462, + "areas": [ + "admission-control" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "132467": { + "commit": "ec80dcaf3892d0cf89e4fd7b1ea60300fb417d8a", + "text": "Fixed an issue that allowed Custom Resources to be created using Server-Side Apply even when their `CustomResourceDefinition` was terminating.", + "markdown": "Fixed an issue that allowed Custom Resources to be created using Server-Side Apply even when their `CustomResourceDefinition` was terminating. ([#132467](https://github.com/kubernetes/kubernetes/pull/132467), [@sdowell](https://github.com/sdowell))", + "author": "sdowell", + "author_url": "https://github.com/sdowell", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132467", + "pr_number": 132467, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132472": { + "commit": "eb1b603cda3b956e52bddf3b51748191e80a59a6", + "text": "Simplified validation error message for required fields by removing redundant messages.", + "markdown": "Simplified validation error message for required fields by removing redundant messages. ([#132472](https://github.com/kubernetes/kubernetes/pull/132472), [@xiaoweim](https://github.com/xiaoweim)) [SIG API Machinery, Apps, Architecture, Auth, Cloud Provider, Network, Node and Storage]", + "author": "xiaoweim", + "author_url": "https://github.com/xiaoweim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132472", + "pr_number": 132472, + "areas": [ + "kubelet", + "apiserver" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "cloud-provider", + "network", + "node", + "storage" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132473": { + "commit": "93844abbe2ec93ce25ab96ff20cc75e750957fe5", + "text": "Ensured memory resizing for Guaranteed QoS pods on static Memory policy configurations was gated by `InPlacePodVerticalScalingExclusiveMemory` (defaults: `false`).", + "markdown": "Ensured memory resizing for Guaranteed QoS pods on static Memory policy configurations was gated by `InPlacePodVerticalScalingExclusiveMemory` (defaults: `false`). ([#132473](https://github.com/kubernetes/kubernetes/pull/132473), [@pravk03](https://github.com/pravk03)) [SIG Node, Scheduling and Testing]", + "author": "pravk03", + "author_url": "https://github.com/pravk03", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132473", + "pr_number": 132473, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132484": { + "commit": "17c5e753b204e6dd4e8f99082692c6baa8903c11", + "text": "Increased test coverage for kubelet package to 92.3%.", + "markdown": "Increased test coverage for kubelet package to 92.3%. ([#132484](https://github.com/kubernetes/kubernetes/pull/132484), [@ylink-lfs](https://github.com/ylink-lfs))", + "author": "ylink-lfs", + "author_url": "https://github.com/ylink-lfs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132484", + "pr_number": 132484, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true, + "is_mapped": true + }, + "132504": { + "commit": "1d932bd6cc951b9182d07d701946aebaf667df94", + "text": "Introduced OpenAPI format support for `k8s-short-name` and `k8s-long-name` in CustomResourceDefinition schemas.", + "markdown": "Introduced OpenAPI format support for `k8s-short-name` and `k8s-long-name` in CustomResourceDefinition schemas. ([#132504](https://github.com/kubernetes/kubernetes/pull/132504), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132504", + "pr_number": 132504, + "areas": [ + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "132509": { + "commit": "ec1803cab8a318a358822d6d00a086d56375d0a0", + "text": "Removed defunct `make vet` target, please use `make lint` instead.", + "markdown": "Removed defunct `make vet` target, please use `make lint` instead. ([#132509](https://github.com/kubernetes/kubernetes/pull/132509), [@yongruilin](https://github.com/yongruilin))", + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132509", + "pr_number": 132509, + "kinds": [ + "bug" + ], + "sigs": [ + "testing" + ], + "is_mapped": true + }, + "132513": { + "commit": "9f97857669c94332f2695c6216885937e4e9556d", + "text": "Simplified validation error message for invalid fields by removing redundant field name.", + "markdown": "Simplified validation error message for invalid fields by removing redundant field name. ([#132513](https://github.com/kubernetes/kubernetes/pull/132513), [@xiaoweim](https://github.com/xiaoweim)) [SIG API Machinery, Apps, Auth, Node and Scheduling]", + "author": "xiaoweim", + "author_url": "https://github.com/xiaoweim", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132513", + "pr_number": 132513, + "areas": [ + "kubelet", + "apiserver" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "node", + "scheduling" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132514": { + "commit": "a652896307ce8dd1412483ed18e61d6dd2ad36da", + "text": "kube-apiserver: Previously persisted `CustomResourceDefinition` objects with an invalid whitespace-only `caBundle` could serve requests that did not require conversion.", + "markdown": "Kube-apiserver: Previously persisted `CustomResourceDefinition` objects with an invalid whitespace-only `caBundle` could serve requests that did not require conversion. ([#132514](https://github.com/kubernetes/kubernetes/pull/132514), [@tiffanny29631](https://github.com/tiffanny29631))", + "author": "tiffanny29631", + "author_url": "https://github.com/tiffanny29631", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132514", + "pr_number": 132514, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "132522": { + "commit": "a59ad8113513b2cd927097354924eafe4187c140", + "text": "- Added driver-owned fields in `ResourceSlice` to mark whether the device was shareable among multiple resource claims (or requests) and to specify how each capacity could be shared between different requests.\n- Added user-owned fields in `ResourceClaim` to specify resource requirements against each device capacity.\n- Added scheduler-owned field in `ResourceClaim.Status` to specify how much device capacity is reserved for a specific request.\n- Added an additional identifier to `ResourceClaim.Status` for the device supports multiple allocations.\n- Added a new constraint type to enforce uniqueness of specified attributes across all allocated devices.", + "markdown": "- Added driver-owned fields in `ResourceSlice` to mark whether the device was shareable among multiple resource claims (or requests) and to specify how each capacity could be shared between different requests.\n - Added user-owned fields in `ResourceClaim` to specify resource requirements against each device capacity.\n - Added scheduler-owned field in `ResourceClaim.Status` to specify how much device capacity is reserved for a specific request.\n - Added an additional identifier to `ResourceClaim.Status` for the device supports multiple allocations.\n - Added a new constraint type to enforce uniqueness of specified attributes across all allocated devices. ([#132522](https://github.com/kubernetes/kubernetes/pull/132522), [@sunya-ch](https://github.com/sunya-ch)) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Release, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5075", + "type": "KEP" + } + ], + "author": "sunya-ch", + "author_url": "https://github.com/sunya-ch", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132522", + "pr_number": 132522, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "kubectl", + "release-eng", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "cli", + "cluster-lifecycle", + "network", + "node", + "release", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132529": { + "commit": "5ba3235b1bba202efdf69ce7cbe0a4a9cf875446", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the kubeapiserver.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the kubeapiserver. ([#132529](https://github.com/kubernetes/kubernetes/pull/132529), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Architecture]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132529", + "pr_number": 132529, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "architecture" + ], + "duplicate": true, + "is_mapped": true + }, + "132537": { + "commit": "3e3f43f4b89a9a962f60ced47e50116250285c25", + "text": "Validated APIVersion fields of the `HorizontalPodAutoscaler` to ensure that API objects were created and functioned properly.", + "markdown": "Validated APIVersion fields of the `HorizontalPodAutoscaler` to ensure that API objects were created and functioned properly. ([#132537](https://github.com/kubernetes/kubernetes/pull/132537), [@lalitc375](https://github.com/lalitc375)) [SIG Etcd and Testing]", + "author": "lalitc375", + "author_url": "https://github.com/lalitc375", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132537", + "pr_number": 132537, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "etcd", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132542": { + "commit": "a7e8a505c25965c074f2b10b1bf40230eca48a08", + "text": "Clarified help message of `--ignore-not-found` flag. Supported `--ignore-not-found` in `watch` operation.", + "markdown": "Clarified help message of `--ignore-not-found` flag. Supported `--ignore-not-found` in `watch` operation. ([#132542](https://github.com/kubernetes/kubernetes/pull/132542), [@gemmahou](https://github.com/gemmahou))", + "author": "gemmahou", + "author_url": "https://github.com/gemmahou", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132542", + "pr_number": 132542, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "132548": { + "commit": "a76eddf60891963fea6ac486aa7acd5d3ec81b54", + "text": "Resolved a bug where DaemonSet updates unnecessarily triggered duplicate validation due to overlapping calls to `ValidateDaemonSet` and ValidateDaemonSetUpdate. This redundancy has been removed to prevent repeated validation runs.", + "markdown": "Resolved a bug where DaemonSet updates unnecessarily triggered duplicate validation due to overlapping calls to `ValidateDaemonSet` and ValidateDaemonSetUpdate. This redundancy has been removed to prevent repeated validation runs. ([#132548](https://github.com/kubernetes/kubernetes/pull/132548), [@gavinkflam](https://github.com/gavinkflam))", + "author": "gavinkflam", + "author_url": "https://github.com/gavinkflam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132548", + "pr_number": 132548, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "132551": { + "commit": "c6fef9752c2b8d184772b43e66371ee8034c2a35", + "text": "Fixed the problem of validation error when specifying resource requirements at the container level for a resource not supported at the pod level. It implicitly interpreted the pod-level value as 0.", + "markdown": "Fixed the problem of validation error when specifying resource requirements at the container level for a resource not supported at the pod level. It implicitly interpreted the pod-level value as 0. ([#132551](https://github.com/kubernetes/kubernetes/pull/132551), [@chao-liang](https://github.com/chao-liang)) [SIG Apps]", + "documentation": [ + { + "description": "KEP", + "url": "https://github.com/kubernetes/enhancements/issues/2837", + "type": "KEP" + } + ], + "author": "chao-liang", + "author_url": "https://github.com/chao-liang", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132551", + "pr_number": 132551, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ] + }, + "132558": { + "commit": "6ef2215eb7e4227ca762ad1c2d462f109b37292d", + "text": "Allowed setting the `hostnameOverride` field in `PodSpec` to specify any RFC 1123 DNS subdomain as the pod's hostname. The `HostnameOverride` feature gate was introduced to control enablement of this functionality.", + "markdown": "Allowed setting the `hostnameOverride` field in `PodSpec` to specify any RFC 1123 DNS subdomain as the pod's hostname. The `HostnameOverride` feature gate was introduced to control enablement of this functionality. ([#132558](https://github.com/kubernetes/kubernetes/pull/132558), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Apps, Network, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4762-allow-arbitrary-fqdn-as-pod-hostname", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132558", + "pr_number": 132558, + "areas": [ + "test", + "kubelet", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "network", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132560": { + "commit": "b2f27c0649fc0f3d2a4a6dd29135ecc81781f7e4", + "text": "Fixed a bug that fails to create a replica set when a deployment name is too long.", + "markdown": "Fixed a bug that fails to create a replica set when a deployment name is too long. ([#132560](https://github.com/kubernetes/kubernetes/pull/132560), [@hdp617](https://github.com/hdp617)) [SIG API Machinery and Apps]", + "author": "hdp617", + "author_url": "https://github.com/hdp617", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132560", + "pr_number": 132560, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true + }, + "132574": { + "commit": "e7b945737e9325f076844dfb5c11bb44dbc940f1", + "text": "DRA: removed support for the v1alpha4 kubelet gRPC API (added in 1.31, superseded in 1.32). DRA drivers using the helper package from Kubernetes \u003e= 1.32 use the v1beta1 API and continue to be supported.", + "markdown": "DRA: removed support for the v1alpha4 kubelet gRPC API (added in 1.31, superseded in 1.32). DRA drivers using the helper package from Kubernetes \u003e= 1.32 use the v1beta1 API and continue to be supported. ([#132574](https://github.com/kubernetes/kubernetes/pull/132574), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132574", + "pr_number": 132574, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "132581": { + "commit": "c7d6c09683344d6dacbe5ba3383a8217c1d4ccd7", + "text": "Added useful endpoints for kube-apiserver.", + "markdown": "Added useful endpoints for kube-apiserver. ([#132581](https://github.com/kubernetes/kubernetes/pull/132581), [@itssimrank](https://github.com/itssimrank)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing]", + "author": "itssimrank", + "author_url": "https://github.com/itssimrank", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132581", + "pr_number": 132581, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "instrumentation", + "network", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132593": { + "commit": "65d00aaa9d38d3b67dfc14495758f5fcf4c36fc1", + "text": "Upgraded functionality of `kubectl kustomize` as described at https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.7.0.", + "markdown": "Upgraded functionality of `kubectl kustomize` as described at https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.7.0. ([#132593](https://github.com/kubernetes/kubernetes/pull/132593), [@koba1t](https://github.com/koba1t))", + "author": "koba1t", + "author_url": "https://github.com/koba1t", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132593", + "pr_number": 132593, + "areas": [ + "kubectl", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "132594": { + "commit": "5a450884b127f7b8e477d48cf3967a2a5eca9126", + "text": "kubeadm: graduated the kubeadm specific feature gate `WaitForAllControlPlaneComponents` to GA. The feature gate is was locked to always be enabled and on node initialization kubeadm performed a health check for all control plane components and not only the `kube-apiserver`.", + "markdown": "Kubeadm: graduated the kubeadm specific feature gate `WaitForAllControlPlaneComponents` to GA. The feature gate is was locked to always be enabled and on node initialization kubeadm performed a health check for all control plane components and not only the `kube-apiserver`. ([#132594](https://github.com/kubernetes/kubernetes/pull/132594), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132594", + "pr_number": 132594, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "132595": { + "commit": "ade9b7746a73354c46082941f897985a960075bf", + "text": "`PodLifecycleSleepAction` was graduated to GA.", + "markdown": "`PodLifecycleSleepAction` was graduated to GA. ([#132595](https://github.com/kubernetes/kubernetes/pull/132595), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3960", + "type": "KEP" + } + ], + "author": "AxeZhan", + "author_url": "https://github.com/AxeZhan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132595", + "pr_number": 132595, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132604": { + "commit": "cb33accc8fc4d44e902da4926eee7b828c5e51ec", + "text": "Added machine readable output options (JSON \u0026 YAML) to `kubectl api-resources`.", + "markdown": "Added machine readable output options (JSON \u0026 YAML) to `kubectl api-resources`. ([#132604](https://github.com/kubernetes/kubernetes/pull/132604), [@dharmit](https://github.com/dharmit)) [SIG Apps, CLI and Network]", + "author": "dharmit", + "author_url": "https://github.com/dharmit", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132604", + "pr_number": 132604, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "cli", + "network" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132605": { + "commit": "bd7fb738bd7fc4ca267853960c98368534c1d7b3", + "text": "The fallback behavior of the Downward API's `resourceFieldRef` field was updated to account for pod-level resources: if container-level limits were not set, pod-level limits were now used before falling back to node allocatable resources.", + "markdown": "The fallback behavior of the Downward API's `resourceFieldRef` field was updated to account for pod-level resources: if container-level limits were not set, pod-level limits were now used before falling back to node allocatable resources. ([#132605](https://github.com/kubernetes/kubernetes/pull/132605), [@toVersus](https://github.com/toVersus)) [SIG Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2837", + "type": "KEP" + } + ], + "author": "toVersus", + "author_url": "https://github.com/toVersus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132605", + "pr_number": 132605, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132614": { + "commit": "d3296eac97e4f39ca39926555677b8d098fcf96d", + "text": "Fixed validation for Job with `suspend=true`, and `completions=0` to set the Complete condition.", + "markdown": "Fixed validation for Job with `suspend=true`, and `completions=0` to set the Complete condition. ([#132614](https://github.com/kubernetes/kubernetes/pull/132614), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing]", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-apps/4368-support-managed-by-for-batch-jobs", + "type": "KEP" + } + ], + "author": "mimowo", + "author_url": "https://github.com/mimowo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132614", + "pr_number": 132614, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132617": { + "commit": "394f4127675b19417be09295cb766674175ed776", + "text": "Updated the `v1` credential provider configuration to include the `tokenAttributes.cacheType` field. This field is required and must be set to either `ServiceAccount` or `Token` when configuring a provider that uses a service account to fetch registry credentials.", + "markdown": "Updated the `v1` credential provider configuration to include the `tokenAttributes.cacheType` field. This field is required and must be set to either `ServiceAccount` or `Token` when configuring a provider that uses a service account to fetch registry credentials. ([#132617](https://github.com/kubernetes/kubernetes/pull/132617), [@aramase](https://github.com/aramase)) [SIG Auth, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132617", + "pr_number": 132617, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "auth", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132626": { + "commit": "6f3b6b91f08585727784620285f990782901572f", + "text": "Added a new `FileKeyRef` field to containers, allowing them to load variables from files by setting this field.\n\nIntroduced the `EnvFiles` feature gate to govern activation of this functionality.", + "markdown": "Added a new `FileKeyRef` field to containers, allowing them to load variables from files by setting this field.\n \n Introduced the `EnvFiles` feature gate to govern activation of this functionality. ([#132626](https://github.com/kubernetes/kubernetes/pull/132626), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Apps, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/3721-support-for-env-files", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132626", + "pr_number": 132626, + "areas": [ + "test", + "kubelet", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132632": { + "commit": "a5d8ab60efe08062bdf065646f200ec83d4278d8", + "text": "The garbage collection controller no longer raced with changes to `ownerReferences` when deleting orphaned objects.", + "markdown": "The garbage collection controller no longer raced with changes to `ownerReferences` when deleting orphaned objects. ([#132632](https://github.com/kubernetes/kubernetes/pull/132632), [@sdowell](https://github.com/sdowell)) [SIG API Machinery and Apps]", + "author": "sdowell", + "author_url": "https://github.com/sdowell", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132632", + "pr_number": 132632, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "is_mapped": true + }, + "132642": { + "commit": "26045b2fab22857c5b8a836ad709df717637491a", + "text": "Added a mechanism for configurable container restarts: _container-level restart rules_. This was an alpha feature behind the `ContainerRestartRules` feature gate.", + "markdown": "Added a mechanism for configurable container restarts: _container-level restart rules_. This was an alpha feature behind the `ContainerRestartRules` feature gate. ([#132642](https://github.com/kubernetes/kubernetes/pull/132642), [@yuanwang04](https://github.com/yuanwang04)) [SIG API Machinery, Apps, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5307", + "type": "KEP" + } + ], + "author": "yuanwang04", + "author_url": "https://github.com/yuanwang04", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132642", + "pr_number": 132642, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132645": { + "commit": "cb0b66a89f93952ea15c2f76fb878dd878e743a2", + "text": "Graduated the `ConsistentListFromCache` to GA.", + "markdown": "Graduated the `ConsistentListFromCache` to GA. ([#132645](https://github.com/kubernetes/kubernetes/pull/132645), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132645", + "pr_number": 132645, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "132647": { + "commit": "d269d10bfc5f989da1a8fa24f64812f8040a2c65", + "text": "Updated Windows `kube-proxy` to align with Linux behavior by correctly honoring the port specified in `EndpointSlice` for internal traffic routing.", + "markdown": "Updated Windows `kube-proxy` to align with Linux behavior by correctly honoring the port specified in `EndpointSlice` for internal traffic routing. ([#132647](https://github.com/kubernetes/kubernetes/pull/132647), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows]", + "documentation": [ + { + "description": "[KEP](", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4974-deprecate-endpoints)", + "type": "KEP" + } + ], + "author": "princepereira", + "author_url": "https://github.com/princepereira", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132647", + "pr_number": 132647, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true, + "is_mapped": true + }, + "132648": { + "commit": "20141c8a92a76900b0b207ca7c0fd4832bacaa55", + "text": "Graduated `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` to GA.", + "markdown": "Graduated `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` to GA. ([#132648](https://github.com/kubernetes/kubernetes/pull/132648), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132648", + "pr_number": 132648, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "132656": { + "commit": "3430e34d886e9b00a1a077707a253f2f769a35d8", + "text": "Promoted the `AuthorizeWithSelectors` and `AuthorizeNodeWithSelectors` feature gates to stable and locked on.", + "markdown": "Promoted the `AuthorizeWithSelectors` and `AuthorizeNodeWithSelectors` feature gates to stable and locked on. ([#132656](https://github.com/kubernetes/kubernetes/pull/132656), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4601", + "type": "KEP" + }, + { + "description": "[Node authorization]", + "url": "https://kubernetes.io/docs/reference/access-authn-authz/node/", + "type": "official" + }, + { + "description": "[CEL authorization]", + "url": "https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#AuthzSelectors", + "type": "external" + }, + { + "description": "[Webhook authorization]", + "url": "https://kubernetes.io/docs/reference/access-authn-authz/webhook/", + "type": "official" + } + ], + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132656", + "pr_number": 132656, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132662": { + "commit": "99f55ae4ef04f08203d08d19dda5c05b2379ba10", + "text": "Moved Recover from volume expansion failure to GA.", + "markdown": "Moved Recover from volume expansion failure to GA. ([#132662](https://github.com/kubernetes/kubernetes/pull/132662), [@gnufied](https://github.com/gnufied)) [SIG Apps, Auth, Node, Storage and Testing]", + "author": "gnufied", + "author_url": "https://github.com/gnufied", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132662", + "pr_number": 132662, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "auth", + "node", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132674": { + "commit": "f93a8c58d7402ff00593aac71d9d0770f0b403c5", + "text": "Fixed e2e test \"[Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits\" not to leak Pods and namespaces.", + "markdown": "Fixed e2e test \"[Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits\" not to leak Pods and namespaces. ([#132674](https://github.com/kubernetes/kubernetes/pull/132674), [@jsafrane](https://github.com/jsafrane)) [SIG Storage and Testing]", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132674", + "pr_number": 132674, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132683": { + "commit": "52787dd1d083d24fe33d3dd80f94afbb9cb9faa3", + "text": "DRA drivers: the resource slice controller sometimes didn't react properly when kubelet or someone else deleted a recently created ResourceSlice. It incorrectly assumed that the ResourceSlice still exists and didn't recreate it.", + "markdown": "DRA drivers: the resource slice controller sometimes didn't react properly when kubelet or someone else deleted a recently created ResourceSlice. It incorrectly assumed that the ResourceSlice still exists and didn't recreate it. ([#132683](https://github.com/kubernetes/kubernetes/pull/132683), [@pohly](https://github.com/pohly)) [SIG Apps, Node and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132683", + "pr_number": 132683, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "duplicate": true + }, + "132698": { + "commit": "0ce9a03285b8d689e0072b06a42ffeae77fc416c", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the reflector.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the reflector. ([#132698](https://github.com/kubernetes/kubernetes/pull/132698), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132698", + "pr_number": 132698, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132699": { + "commit": "de74ab716ef1014206427622d2070482dc304cc6", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the csr.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the csr. ([#132699](https://github.com/kubernetes/kubernetes/pull/132699), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132699", + "pr_number": 132699, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "is_mapped": true + }, + "132700": { + "commit": "ca569e152d734112a2400afa84371ebb399786ba", + "text": "DRA kubelet: gRPC API graduated to v1, v1beta1 was deprecated starting in 1.34. Updating DRA drivers to the `k8s.io/dynamic-resource-allocation/kubeletplugin` helper from 1.34 added support for both API versions.", + "markdown": "DRA kubelet: gRPC API graduated to v1, v1beta1 was deprecated starting in 1.34. Updating DRA drivers to the `k8s.io/dynamic-resource-allocation/kubeletplugin` helper from 1.34 added support for both API versions. ([#132700](https://github.com/kubernetes/kubernetes/pull/132700), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132700", + "pr_number": 132700, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature", + "deprecation" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132701": { + "commit": "6ace4832c2c7f6cab4a59cce4022b638982a3286", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the kube-aggregator apiregistration.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the kube-aggregator apiregistration. ([#132701](https://github.com/kubernetes/kubernetes/pull/132701), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132701", + "pr_number": 132701, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "132704": { + "commit": "ae21e81ae7f9e53a5bf157a02673f1d6ac5e9427", + "text": "Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled `WatchListClient` for KCM.", + "markdown": "Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled `WatchListClient` for KCM. ([#132704](https://github.com/kubernetes/kubernetes/pull/132704), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing]", + "author": "p0lyn0mial", + "author_url": "https://github.com/p0lyn0mial", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132704", + "pr_number": 132704, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132706": { + "commit": "254a46943aab33017b581a7e9e393f3b720feef8", + "text": "Dynamic Resource Allocation: Graduated core functionality to general availability (GA). This newly stable feature uses the _structured parameters_ flavor of DRA.", + "markdown": "Dynamic Resource Allocation: Graduated core functionality to general availability (GA). This newly stable feature uses the _structured parameters_ flavor of DRA. ([#132706](https://github.com/kubernetes/kubernetes/pull/132706), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Autoscaling, Etcd, Node, Scheduling and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132706", + "pr_number": 132706, + "areas": [ + "test", + "kubelet", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "autoscaling", + "etcd", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132720": { + "commit": "22f5e01a37c0bc6a5f494dec14dd4e3688ee1d55", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the cloud-provider.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the cloud-provider. ([#132720](https://github.com/kubernetes/kubernetes/pull/132720), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Cloud Provider and Network]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132720", + "pr_number": 132720, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "network" + ], + "duplicate": true, + "is_mapped": true + }, + "132721": { + "commit": "d79c1e7eaa29331793adb0caa47d802077a0f16e", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiextensions-apiservers integration tests.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiextensions-apiservers integration tests. ([#132721](https://github.com/kubernetes/kubernetes/pull/132721), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132721", + "pr_number": 132721, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132723": { + "commit": "87562da40ac762ad62476d6f8d0f466e9825985c", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiextensions-apiserver apiextensions.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiextensions-apiserver apiextensions. ([#132723](https://github.com/kubernetes/kubernetes/pull/132723), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132723", + "pr_number": 132723, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "132724": { + "commit": "f5e136df9d61300c518667cfa1d44461f30cf1ba", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions-apiserver pkg/controller.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions-apiserver pkg/controller. ([#132724](https://github.com/kubernetes/kubernetes/pull/132724), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132724", + "pr_number": 132724, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132725": { + "commit": "35fd91229aa95163520c2f9775e799f23fca746a", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions-apiserver pkg/registry.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions-apiserver pkg/registry. ([#132725](https://github.com/kubernetes/kubernetes/pull/132725), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132725", + "pr_number": 132725, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132726": { + "commit": "26135216e7c82d1d30b5725582d8db5c45cfe281", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions apiservers validation tests.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions apiservers validation tests. ([#132726](https://github.com/kubernetes/kubernetes/pull/132726), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132726", + "pr_number": 132726, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132730": { + "commit": "01d50ae1c59ad831b54cf2c6ac4777d3563c748c", + "text": "NO", + "markdown": "NO ([#132730](https://github.com/kubernetes/kubernetes/pull/132730), [@onasser1](https://github.com/onasser1)) [SIG Scheduling]", + "author": "onasser1", + "author_url": "https://github.com/onasser1", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132730", + "pr_number": 132730, + "kinds": [ + "cleanup" + ], + "sigs": [ + "scheduling" + ], + "do_not_publish": true + }, + "132741": { + "commit": "d9228cae970ed72ac374169796c76cddbc646eb5", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pod-security-admission tests.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pod-security-admission tests. ([#132741](https://github.com/kubernetes/kubernetes/pull/132741), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132741", + "pr_number": 132741, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth" + ], + "is_mapped": true + }, + "132742": { + "commit": "95b18e4d427d9da903ba77c835700d0d8abbc248", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pod-security-admission admissiontests.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pod-security-admission admissiontests. ([#132742](https://github.com/kubernetes/kubernetes/pull/132742), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132742", + "pr_number": 132742, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth" + ], + "is_mapped": true + }, + "132743": { + "commit": "38f534fc4c630140f876b71fe2262732c96963ea", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pod-security-admission policy.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pod-security-admission policy. ([#132743](https://github.com/kubernetes/kubernetes/pull/132743), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132743", + "pr_number": 132743, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth" + ], + "is_mapped": true + }, + "132750": { + "commit": "f366e36ba24697a65dab16b692576f4ffe8ed08e", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the cli-runtime.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the cli-runtime. ([#132750](https://github.com/kubernetes/kubernetes/pull/132750), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG CLI and Release]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132750", + "pr_number": 132750, + "areas": [ + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli", + "release" + ], + "duplicate": true, + "is_mapped": true + }, + "132751": { + "commit": "d7a06387fe7305df5d7b3ebbab998686fae84a63", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiserver (1/2).", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiserver (1/2). ([#132751](https://github.com/kubernetes/kubernetes/pull/132751), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132751", + "pr_number": 132751, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132752": { + "commit": "116cfc0c5f38f37be05542d468943790cedde7c4", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiserver (2/2).", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiserver (2/2). ([#132752](https://github.com/kubernetes/kubernetes/pull/132752), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132752", + "pr_number": 132752, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "is_mapped": true + }, + "132753": { + "commit": "fb185e6aa871df744829ec9ea2fcd914697e5681", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the controller-manager.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the controller-manager. ([#132753](https://github.com/kubernetes/kubernetes/pull/132753), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Cloud Provider]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132753", + "pr_number": 132753, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider" + ], + "duplicate": true, + "is_mapped": true + }, + "132754": { + "commit": "e2afbf83f58f68f5c988f80f928dfccbea0ee8b3", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the component-base.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the component-base. ([#132754](https://github.com/kubernetes/kubernetes/pull/132754), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Architecture, Instrumentation and Scheduling]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132754", + "pr_number": 132754, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "architecture", + "instrumentation", + "scheduling" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132755": { + "commit": "c4302e970383a4116dd3d0219792ddeae8b43259", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the e2e_node.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the e2e_node. ([#132755](https://github.com/kubernetes/kubernetes/pull/132755), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Node and Testing]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132755", + "pr_number": 132755, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132762": { + "commit": "0ea38349843beada197c2eeabc762d2ca4478c1a", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/integration.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/integration. ([#132762](https://github.com/kubernetes/kubernetes/pull/132762), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132762", + "pr_number": 132762, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ], + "is_mapped": true + }, + "132763": { + "commit": "9f3464dbbdf31310e0be82c8897d500e383d453f", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e and ./test/utils.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e and ./test/utils. ([#132763](https://github.com/kubernetes/kubernetes/pull/132763), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Autoscaling and Testing]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132763", + "pr_number": 132763, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "autoscaling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132764": { + "commit": "332816b2b29c3d94ad0ccd8878523199dbe97c33", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e. ([#132764](https://github.com/kubernetes/kubernetes/pull/132764), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Auth, Network, Node, Storage and Testing]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132764", + "pr_number": 132764, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "network", + "node", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132765": { + "commit": "3c1a7b68b484aad3da575237965428d0253d84e6", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e. ([#132765](https://github.com/kubernetes/kubernetes/pull/132765), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Apps, CLI and Testing]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132765", + "pr_number": 132765, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "cli", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132767": { + "commit": "1b3be1fde68dfac72fb829d22a8af35abe29804d", + "text": "`DRAPrioritizedList` was turned on by default which made it possible to provide a prioritized list of subrequests in a `ResourceClaim`.", + "markdown": "`DRAPrioritizedList` was turned on by default which made it possible to provide a prioritized list of subrequests in a `ResourceClaim`. ([#132767](https://github.com/kubernetes/kubernetes/pull/132767), [@mortent](https://github.com/mortent)) [SIG Node, Scheduling and Testing]", + "author": "mortent", + "author_url": "https://github.com/mortent", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132767", + "pr_number": 132767, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132768": { + "commit": "e55e75f6d96707b26b67fa8f7c3966638d636b13", + "text": "Added support for specifying `controlplane` or `cluster` egress selectors in JWT authenticators via the `issuer.egressSelectorType` field in the `AuthenticationConfiguration.jwt` array. If unset, the previous behavior of using no egress selector is preserved. This functionality requires the `StructuredAuthenticationConfigurationEgressSelector` beta feature gate (enabled by default).", + "markdown": "Added support for specifying `controlplane` or `cluster` egress selectors in JWT authenticators via the `issuer.egressSelectorType` field in the `AuthenticationConfiguration.jwt` array. If unset, the previous behavior of using no egress selector is preserved. This functionality requires the `StructuredAuthenticationConfigurationEgressSelector` beta feature gate (enabled by default). ([#132768](https://github.com/kubernetes/kubernetes/pull/132768), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/3331", + "type": "KEP" + } + ], + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132768", + "pr_number": 132768, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132771": { + "commit": "1160ce69e1e43557313a5359c3873489c2eafe46", + "text": "Added support in the kubelet's image pull credential tracking for service account-based verification. When an image was pulled using service account credentials via external credential providers, subsequent Pods using the same service account (UID, name, and namespace) could access the cached image without re-authentication for the lifetime of that service account.", + "markdown": "Added support in the kubelet's image pull credential tracking for service account-based verification. When an image was pulled using service account credentials via external credential providers, subsequent Pods using the same service account (UID, name, and namespace) could access the cached image without re-authentication for the lifetime of that service account. ([#132771](https://github.com/kubernetes/kubernetes/pull/132771), [@aramase](https://github.com/aramase)) [SIG Auth, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", + "type": "KEP" + }, + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/2535-ensure-secret-pulled-images/README.md", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132771", + "pr_number": 132771, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "auth", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132772": { + "commit": "3aa0bb9725d7ccf692af9e171a98d521f35674e7", + "text": "Removed deprecated gogo protocol definitions from `k8s.io/externaljwt` in favor of `google.golang.org/protobuf`.", + "markdown": "Removed deprecated gogo protocol definitions from `k8s.io/externaljwt` in favor of `google.golang.org/protobuf`. ([#132772](https://github.com/kubernetes/kubernetes/pull/132772), [@saschagrunert](https://github.com/saschagrunert)) [SIG Auth]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132772", + "pr_number": 132772, + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth" + ] + }, + "132773": { + "commit": "1bc48d707cc1404cc684341c804a5e966c3367f7", + "text": "Removed deprecated `gogo` protocol definitions from `k8s.io/kubelet/pkg/apis/pluginregistration` in favor of `google.golang.org/protobuf`.", + "markdown": "Removed deprecated `gogo` protocol definitions from `k8s.io/kubelet/pkg/apis/pluginregistration` in favor of `google.golang.org/protobuf`. ([#132773](https://github.com/kubernetes/kubernetes/pull/132773), [@saschagrunert](https://github.com/saschagrunert))", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132773", + "pr_number": 132773, + "areas": [ + "kubelet", + "dependency" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "132776": { + "commit": "3d007ecdfa23730b972c9299f2687d6aa50b5637", + "text": "`kubeadm`: Started using a named port `probe-port` for all probes in the static pod manifests generated by `kubeadm` for the `kube-apiserver`, `kube-controller-manager`, `kube-scheduler`, and related components. If probe port values were previously patched using `kubeadm` patches, the corresponding named port under the container’s `ports` field must now also be patched.", + "markdown": "`kubeadm`: Started using a named port `probe-port` for all probes in the static pod manifests generated by `kubeadm` for the `kube-apiserver`, `kube-controller-manager`, `kube-scheduler`, and related components. If probe port values were previously patched using `kubeadm` patches, the corresponding named port under the container’s `ports` field must now also be patched. ([#132776](https://github.com/kubernetes/kubernetes/pull/132776), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132776", + "pr_number": 132776, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "132777": { + "commit": "3b12bcd546bfd36863778b92db7eb49acfef887b", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pkg/security and plugin/pkg.", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pkg/security and plugin/pkg. ([#132777](https://github.com/kubernetes/kubernetes/pull/132777), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Auth, Node and Release]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132777", + "pr_number": 132777, + "areas": [ + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "node", + "release" + ], + "duplicate": true, + "is_mapped": true + }, + "132778": { + "commit": "4708b078a760cac3fecd7dd6f2a67f9249ba9c35", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/apis (1/2).", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/apis (1/2). ([#132778](https://github.com/kubernetes/kubernetes/pull/132778), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Apps and Network]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132778", + "pr_number": 132778, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true, + "is_mapped": true + }, + "132779": { + "commit": "f41b45838d32ee614d088a06ad1bf8e1fa0d5019", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/apis (2/2).", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/apis (2/2). ([#132779](https://github.com/kubernetes/kubernetes/pull/132779), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Apps, Auth and Storage]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132779", + "pr_number": 132779, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "auth", + "storage" + ], + "duplicate": true, + "is_mapped": true + }, + "132781": { + "commit": "bedb915a4e7120c90fee1343693a9a403cb06d92", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/controller (1/2).", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/controller (1/2). ([#132781](https://github.com/kubernetes/kubernetes/pull/132781), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Apps and Network]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132781", + "pr_number": 132781, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "network" + ], + "duplicate": true, + "is_mapped": true + }, + "132784": { + "commit": "5f0e359619a38d3cac69f6a1db75fcb97151fab4", + "text": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/controller (2/2).", + "markdown": "Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/controller (2/2). ([#132784](https://github.com/kubernetes/kubernetes/pull/132784), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Apps, Network, Node and Storage]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132784", + "pr_number": 132784, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "apps", + "network", + "node", + "storage" + ], + "duplicate": true, + "is_mapped": true + }, + "132794": { + "commit": "5f34f9233b2e2f9714b71dc1e1a0dbf24548866c", + "text": "Replaced Boolean-pointer-helper functions with the `k8s.io/utils/ptr` implementations.", + "markdown": "Replaced Boolean-pointer-helper functions with the `k8s.io/utils/ptr` implementations. ([#132794](https://github.com/kubernetes/kubernetes/pull/132794), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Auth, CLI, Node and Testing]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132794", + "pr_number": 132794, + "areas": [ + "test", + "kubelet", + "apiserver" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "auth", + "cli", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132800": { + "commit": "768407a30d22085ed2d8a0333dd94aa83e5c2073", + "text": "`kube-controller-manager` reported the following metrics for `ResourceClaims` with admin access:\n- `resourceclaim_controller_creates_total` count metric with labels `admin_access` (true or false), `status` (failure or success) to track the total number of `ResourceClaims` creation requests\n- `resourceclaim_controller_resource_claims` gauge metric with labels `admin_access` (true or false), `allocated` (true or false) to track the current number of `ResourceClaims`.", + "markdown": "`kube-controller-manager` reported the following metrics for `ResourceClaims` with admin access:\n - `resourceclaim_controller_creates_total` count metric with labels `admin_access` (true or false), `status` (failure or success) to track the total number of `ResourceClaims` creation requests\n - `resourceclaim_controller_resource_claims` gauge metric with labels `admin_access` (true or false), `allocated` (true or false) to track the current number of `ResourceClaims`. ([#132800](https://github.com/kubernetes/kubernetes/pull/132800), [@ritazh](https://github.com/ritazh)) [SIG Apps, Auth, Instrumentation and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5018", + "type": "KEP" + } + ], + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132800", + "pr_number": 132800, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "auth", + "instrumentation", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132803": { + "commit": "2bdcad7419c7a584da4174513e36f867e88424df", + "text": "Fixed an issue where the kubelet token cache returned stale tokens when service accounts were recreated with the same name. The cache is now UID-aware. Additionally, the new `TokenRequestServiceAccountUIDValidation` feature gate (Beta, enabled by default) ensures the `TokenRequest` UID matches the service account UID when set.", + "markdown": "Fixed an issue where the kubelet token cache returned stale tokens when service accounts were recreated with the same name. The cache is now UID-aware. Additionally, the new `TokenRequestServiceAccountUIDValidation` feature gate (Beta, enabled by default) ensures the `TokenRequest` UID matches the service account UID when set. ([#132803](https://github.com/kubernetes/kubernetes/pull/132803), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Node and Testing]", + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132803", + "pr_number": 132803, + "areas": [ + "test", + "kubelet", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132806": { + "commit": "b8450dc451f6cef3774f480b5f8053a6844c3b9c", + "text": "Replaced `toPtr` helper functions with the \"k8s.io/utils/ptr\" implementations.", + "markdown": "Replaced `toPtr` helper functions with the \"k8s.io/utils/ptr\" implementations. ([#132806](https://github.com/kubernetes/kubernetes/pull/132806), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Apps, Testing and Windows]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132806", + "pr_number": 132806, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "testing", + "windows" + ], + "duplicate": true, + "is_mapped": true + }, + "132821": { + "commit": "3dd0e86190cc023a98f59d48d75efde08a27fd82", + "text": "Introduced the `admissionregistration.k8s.io/v1beta1/MutatingAdmissionPolicy` API type. To enable, enable the `MutatingAdmissionPolicy` feature gate (which was off by default) and set `--runtime-config=admissionregistration.k8s.io/v1beta1=true` on the kube-apiserver. \nNote that the default stored version remained alpha in 1.34, and whoever enabled beta during 1.34 needed to run a storage migration yourself to ensure you don't depend on alpha data in etcd.", + "markdown": "Introduced the `admissionregistration.k8s.io/v1beta1/MutatingAdmissionPolicy` API type. To enable, enable the `MutatingAdmissionPolicy` feature gate (which was off by default) and set `--runtime-config=admissionregistration.k8s.io/v1beta1=true` on the kube-apiserver. \n Note that the default stored version remained alpha in 1.34, and whoever enabled beta during 1.34 needed to run a storage migration yourself to ensure you don't depend on alpha data in etcd. ([#132821](https://github.com/kubernetes/kubernetes/pull/132821), [@cici37](https://github.com/cici37)) [SIG API Machinery, Etcd and Testing]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132821", + "pr_number": 132821, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "etcd", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132822": { + "commit": "fdefb8a9e6a1a22298bf28c591b48232ecbb4aec", + "text": "Promoted Linux node pressure stall information (PSI) metrics to beta.", + "markdown": "Promoted Linux node pressure stall information (PSI) metrics to beta. ([#132822](https://github.com/kubernetes/kubernetes/pull/132822), [@roycaihw](https://github.com/roycaihw)) [SIG Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4205-psi-metric", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/reference/instrumentation/node-metrics/#psi", + "type": "official" + } + ], + "author": "roycaihw", + "author_url": "https://github.com/roycaihw", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132822", + "pr_number": 132822, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "132832": { + "commit": "a6f32c0e63e436c44d83b326e41c64e2887a90b3", + "text": "Updated `kubectl get job` to display the `SuccessCriteriaMet` status for listed jobs.", + "markdown": "Updated `kubectl get job` to display the `SuccessCriteriaMet` status for listed jobs. ([#132832](https://github.com/kubernetes/kubernetes/pull/132832), [@Goend](https://github.com/Goend)) [SIG Apps and CLI]", + "author": "Goend", + "author_url": "https://github.com/Goend", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132832", + "pr_number": 132832, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "cli" + ], + "duplicate": true, + "is_mapped": true + }, + "132833": { + "commit": "5df27c4922f685a53fd32aab82fe6e2257c4d86a", + "text": "Removed deprecated gogo protocol definitions from `k8s.io/kms/apis` in favor of `google.golang.org/protobuf`.", + "markdown": "Removed deprecated gogo protocol definitions from `k8s.io/kms/apis` in favor of `google.golang.org/protobuf`. ([#132833](https://github.com/kubernetes/kubernetes/pull/132833), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Auth and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132833", + "pr_number": 132833, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "duplicate": true + }, + "132837": { + "commit": "f9fde2dfbdfb73c25e0a17d675313748948cd78c", + "text": "Fixed runtime cost estimation for `x-int-or-string` custom resource schemas with maximum lengths.", + "markdown": "Fixed runtime cost estimation for `x-int-or-string` custom resource schemas with maximum lengths. ([#132837](https://github.com/kubernetes/kubernetes/pull/132837), [@JoelSpeed](https://github.com/JoelSpeed))", + "author": "JoelSpeed", + "author_url": "https://github.com/JoelSpeed", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132837", + "pr_number": 132837, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132838": { + "commit": "b1b15a57e68338099daa4b934b6235db4c429a66", + "text": "Updated `kubeadm` to use the `InitialCorruptCheck=true` etcd feature gate instead of the deprecated `--experimental-initial-corrupt-check` flag. Also replaced the use of `--experimental-watch-progress-notify-interval` with its graduated counterpart `--watch-progress-notify-interval`.", + "markdown": "Updated `kubeadm` to use the `InitialCorruptCheck=true` etcd feature gate instead of the deprecated `--experimental-initial-corrupt-check` flag. Also replaced the use of `--experimental-watch-progress-notify-interval` with its graduated counterpart `--watch-progress-notify-interval`. ([#132838](https://github.com/kubernetes/kubernetes/pull/132838), [@AwesomePatrol](https://github.com/AwesomePatrol))", + "author": "AwesomePatrol", + "author_url": "https://github.com/AwesomePatrol", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132838", + "pr_number": 132838, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "132840": { + "commit": "b266ac2c3e42c2c4843f81e20213d2b2f43e450a", + "text": "Reduced excessive logging in the Volume Binding scheduler plugin by lowering the verbosity of high-frequency messages from `V(4)` to `V(5)`.", + "markdown": "Reduced excessive logging in the Volume Binding scheduler plugin by lowering the verbosity of high-frequency messages from `V(4)` to `V(5)`. ([#132840](https://github.com/kubernetes/kubernetes/pull/132840), [@ppmechlinski](https://github.com/ppmechlinski)) [SIG Autoscaling, Scheduling and Storage]", + "author": "ppmechlinski", + "author_url": "https://github.com/ppmechlinski", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132840", + "pr_number": 132840, + "kinds": [ + "cleanup" + ], + "sigs": [ + "autoscaling", + "scheduling", + "storage" + ], + "duplicate": true, + "is_mapped": true + }, + "132868": { + "commit": "2b2ea27250d97f7bf65fb2e08a71348307e08cbf", + "text": "Pods were not allowed to mix the usage of `user-namespaces` (`hostUsers: false`) and `volumeDevices`. Kubernetes returned an error in this case.", + "markdown": "Pods were not allowed to mix the usage of `user-namespaces` (`hostUsers: false`) and `volumeDevices`. Kubernetes returned an error in this case. ([#132868](https://github.com/kubernetes/kubernetes/pull/132868), [@rata](https://github.com/rata))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/63d4f6f2aa0e2eb0b83067b067c4949643b1b24c/keps/sig-node/127-user-namespaces/README.md#non-conformant-volume-types", + "type": "KEP" + } + ], + "author": "rata", + "author_url": "https://github.com/rata", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132868", + "pr_number": 132868, + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "132876": { + "commit": "e44ddbf1dae532b00999970ffe078c2d06920309", + "text": "Enabled compact snapshots in the watch cache based on `etcd` compaction events.", + "markdown": "Enabled compact snapshots in the watch cache based on `etcd` compaction events. ([#132876](https://github.com/kubernetes/kubernetes/pull/132876), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132876", + "pr_number": 132876, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "etcd" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132884": { + "commit": "bd6e6e80cbed1833debc1ad6e5982c46c14d2ab4", + "text": "Added the `DetectCacheInconsistency` feature gate, allowing the API server to periodically verify consistency between its `cache` and `etcd`. Detected inconsistencies reported via the `apiserver_storage_consistency_checks_total` metric and trigger purging of affected cache snapshots.", + "markdown": "Added the `DetectCacheInconsistency` feature gate, allowing the API server to periodically verify consistency between its `cache` and `etcd`. Detected inconsistencies reported via the `apiserver_storage_consistency_checks_total` metric and trigger purging of affected cache snapshots. ([#132884](https://github.com/kubernetes/kubernetes/pull/132884), [@serathius](https://github.com/serathius)) [SIG API Machinery, Instrumentation and Testing]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132884", + "pr_number": 132884, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132886": { + "commit": "010e0a9b5b0687a41b0eda1813b444f476c9bdec", + "text": "Executed API calls dispatched during pod scheduling asynchronously if the `SchedulerAsyncAPICalls` feature gate was enabled.\nOut-of-tree plugins used `APIDispatcher` and `APICacher` from the framework to dispatch their own calls.", + "markdown": "Executed API calls dispatched during pod scheduling asynchronously if the `SchedulerAsyncAPICalls` feature gate was enabled.\n Out-of-tree plugins used `APIDispatcher` and `APICacher` from the framework to dispatch their own calls. ([#132886](https://github.com/kubernetes/kubernetes/pull/132886), [@macsko](https://github.com/macsko)) [SIG Release, Scheduling and Testing]", + "author": "macsko", + "author_url": "https://github.com/macsko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132886", + "pr_number": 132886, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132893": { + "commit": "81986595c87365f2155b20af1d361bf2fb96b544", + "text": "Added `apiserver_resource_size_estimate_bytes` metric to API server.", + "markdown": "Added `apiserver_resource_size_estimate_bytes` metric to API server. ([#132893](https://github.com/kubernetes/kubernetes/pull/132893), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd and Instrumentation]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132893", + "pr_number": 132893, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "etcd", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132895": { + "commit": "8b9569babeb4ec37b561007393cb8010b9db71ae", + "text": "Fixed a 1.33 regression that causes a nil panic in kube-scheduler when aggregating resource requested across container's spec and status.", + "markdown": "Fixed a 1.33 regression that causes a nil panic in kube-scheduler when aggregating resource requested across container's spec and status. ([#132895](https://github.com/kubernetes/kubernetes/pull/132895), [@yue9944882](https://github.com/yue9944882)) [SIG Node and Scheduling]", + "author": "yue9944882", + "author_url": "https://github.com/yue9944882", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132895", + "pr_number": 132895, + "kinds": [ + "bug", + "api-change", + "regression" + ], + "sigs": [ + "node", + "scheduling" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132896": { + "commit": "d4ac5efd9ddba7b93f6c304c0278723bcc9cd80e", + "text": "Updated the Kubernetes build environment to use Go `1.24.5`.", + "markdown": "Updated the Kubernetes build environment to use Go `1.24.5`. ([#132896](https://github.com/kubernetes/kubernetes/pull/132896), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132896", + "pr_number": 132896, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132901": { + "commit": "0c44a2b00b3915b70c9082aa350274abf38f864c", + "text": "Graduated `ListFromCacheSnapshot` to beta.", + "markdown": "Graduated `ListFromCacheSnapshot` to beta. ([#132901](https://github.com/kubernetes/kubernetes/pull/132901), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132901", + "pr_number": 132901, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "etcd" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132902": { + "commit": "b09f1bfe1212a3433cfe3ba97c86e90617a62916", + "text": "Added `started_user_namespaced_pods_total` and `started_user_namespaced_pods_errors_total` for tracking the successes and failures in creating pods if a user namespace was requested.", + "markdown": "Added `started_user_namespaced_pods_total` and `started_user_namespaced_pods_errors_total` for tracking the successes and failures in creating pods if a user namespace was requested. ([#132902](https://github.com/kubernetes/kubernetes/pull/132902), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing]", + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132902", + "pr_number": 132902, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132903": { + "commit": "06a8c4a58e955f95b181328fcfa2d8648dc4e6c7", + "text": "Started recording metrics for in-place Pod resize.", + "markdown": "Started recording metrics for in-place Pod resize. ([#132903](https://github.com/kubernetes/kubernetes/pull/132903), [@natasha41575](https://github.com/natasha41575))", + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132903", + "pr_number": 132903, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "132907": { + "commit": "07f3e2f01b715549bf93a8b4ee08642052cae6f9", + "text": "Replaced `boolPtrFn` helper functions with the \"k8s.io/utils/ptr\" implementation.", + "markdown": "Replaced `boolPtrFn` helper functions with the \"k8s.io/utils/ptr\" implementation. ([#132907](https://github.com/kubernetes/kubernetes/pull/132907), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132907", + "pr_number": 132907, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "architecture" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "132910": { + "commit": "1b6a6cc9c05ab55d8b22f2f5c16b93dbe6e6baf7", + "text": "Added memory tracking to scheduler performance tests to help detect memory leaks and monitored memory usage patterns while running `scheduler_perf`.", + "markdown": "Added memory tracking to scheduler performance tests to help detect memory leaks and monitored memory usage patterns while running `scheduler_perf`. ([#132910](https://github.com/kubernetes/kubernetes/pull/132910), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Testing]", + "author": "utam0k", + "author_url": "https://github.com/utam0k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132910", + "pr_number": 132910, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132912": { + "commit": "e0f20a38ed1856b2be4a06832c16f047a612871d", + "text": "Graduated `PodObservedGenerationTracking` feature to beta and had it on by default. This feature meant that the top level `status.observedGeneration` and `status.conditions[].observedGeneration` fields in Pods were populated to reflect the `metadata.generation` of the podspec at the time that the status or condition was reported.", + "markdown": "Graduated `PodObservedGenerationTracking` feature to beta and had it on by default. This feature meant that the top level `status.observedGeneration` and `status.conditions[].observedGeneration` fields in Pods were populated to reflect the `metadata.generation` of the podspec at the time that the status or condition was reported. ([#132912](https://github.com/kubernetes/kubernetes/pull/132912), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/5067", + "type": "external" + } + ], + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132912", + "pr_number": 132912, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132932": { + "commit": "11f7fd5f4404a5018302e12c88d363a2e33544e9", + "text": "Added the `SizeBasedListCostEstimate` feature gate (enabled by default), which changes how APF seats are assigned to `LIST` requests. With this feature, one seat is assigned per 100KB of data loaded into memory at once during a `LIST` operation.", + "markdown": "Added the `SizeBasedListCostEstimate` feature gate (enabled by default), which changes how APF seats are assigned to `LIST` requests. With this feature, one seat is assigned per 100KB of data loaded into memory at once during a `LIST` operation. ([#132932](https://github.com/kubernetes/kubernetes/pull/132932), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132932", + "pr_number": 132932, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "132933": { + "commit": "727a6e6db50e6a99ecea2080e88f4d889f4f04d8", + "text": "Kubelet detected terminal CSI volume mount failures due to exceeded attachment limits on the node and marked the Stateful Pod as Failed, allowing its controller to recreate it. This prevented Pods from getting stuck indefinitely in the `ContainerCreating` state.", + "markdown": "Kubelet detected terminal CSI volume mount failures due to exceeded attachment limits on the node and marked the Stateful Pod as Failed, allowing its controller to recreate it. This prevented Pods from getting stuck indefinitely in the `ContainerCreating` state. ([#132933](https://github.com/kubernetes/kubernetes/pull/132933), [@torredil](https://github.com/torredil)) [SIG Apps, Node, Storage and Testing]", + "author": "torredil", + "author_url": "https://github.com/torredil", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132933", + "pr_number": 132933, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132935": { + "commit": "dfc0998baa4d6c2cd630aa3c5b8def4e9b1fcd8e", + "text": "Added support for encoding and decoding types that implement the standard library interfaces `json.Marshaler`, `json.Unmarshaler`, `encoding.TextMarshaler`, or `encoding.TextUnmarshaler` to and from CBOR by transcoding.", + "markdown": "Added support for encoding and decoding types that implement the standard library interfaces `json.Marshaler`, `json.Unmarshaler`, `encoding.TextMarshaler`, or `encoding.TextUnmarshaler` to and from CBOR by transcoding. ([#132935](https://github.com/kubernetes/kubernetes/pull/132935), [@benluddy](https://github.com/benluddy))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4222", + "type": "external" + } + ], + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132935", + "pr_number": 132935, + "areas": [ + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132940": { + "commit": "ba9ba5f92ae86e8b666a54f5cb64bd27d4cbc1c6", + "text": "Promoted the `KubeletPodResourcesDynamicResources` and `KubeletPodResourcesGet` feature gates to beta, which were enabled by default if DRA went to GA.", + "markdown": "Promoted the `KubeletPodResourcesDynamicResources` and `KubeletPodResourcesGet` feature gates to beta, which were enabled by default if DRA went to GA. ([#132940](https://github.com/kubernetes/kubernetes/pull/132940), [@guptaNswati](https://github.com/guptaNswati))", + "author": "guptaNswati", + "author_url": "https://github.com/guptaNswati", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132940", + "pr_number": 132940, + "kinds": [ + "feature" + ], + "feature": true, + "is_mapped": true + }, + "132942": { + "commit": "1451dd1b0873e801e082f3a06a52685bcd68dcac", + "text": "Added support for a new kubectl output format, `kyaml`. KYAML was a strict subset of YAML and should be accepted by any YAML processor. The formatting of KYAML was halfway between JSON and YAML. Because it was more explicit than the default YAML style, it was less error-prone.", + "markdown": "Added support for a new kubectl output format, `kyaml`. KYAML was a strict subset of YAML and should be accepted by any YAML processor. The formatting of KYAML was halfway between JSON and YAML. Because it was more explicit than the default YAML style, it was less error-prone. ([#132942](https://github.com/kubernetes/kubernetes/pull/132942), [@thockin](https://github.com/thockin)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Contributor Experience, Instrumentation, Network, Node, Scheduling, Storage and Testing]", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132942", + "pr_number": 132942, + "areas": [ + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "contributor-experience", + "instrumentation", + "network", + "node", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132965": { + "commit": "356d0b9f1834c336abb190fda0033eb6adeb2726", + "text": "Deprecated `apiserver_storage_objects` and replaced it with `apiserver_resource_objects` metric using labels consistent with other metrics.", + "markdown": "Deprecated `apiserver_storage_objects` and replaced it with `apiserver_resource_objects` metric using labels consistent with other metrics. ([#132965](https://github.com/kubernetes/kubernetes/pull/132965), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd and Instrumentation]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132965", + "pr_number": 132965, + "areas": [ + "apiserver", + "stable-metrics" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "etcd", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132999": { + "commit": "3e3b2447ffe7643eb47eae41f2b9ed29e8775b0e", + "text": "Graduated `PodLevelResources` feature to beta and have it on by default. This feature allowed defining CPU and memory resources for an entire pod in `pod.spec.resources`.", + "markdown": "Graduated `PodLevelResources` feature to beta and have it on by default. This feature allowed defining CPU and memory resources for an entire pod in `pod.spec.resources`. ([#132999](https://github.com/kubernetes/kubernetes/pull/132999), [@ndixita](https://github.com/ndixita))", + "documentation": [ + { + "description": "[KEP]: [KEP]", + "url": "https://kep.k8s.io/2837", + "type": "external" + } + ], + "author": "ndixita", + "author_url": "https://github.com/ndixita", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132999", + "pr_number": 132999, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "133012": { + "commit": "4a80270b30f4acdcdfd7b4dac62b298c49d3565b", + "text": "Memory limits could be decreased with a `NotRequired` resize restart policy. When decreasing memory limits,a best-effort check was performed to prevent limits from decreasing below usage and triggering an OOM-kill.", + "markdown": "Memory limits could be decreased with a `NotRequired` resize restart policy. When decreasing memory limits,a best-effort check was performed to prevent limits from decreasing below usage and triggering an OOM-kill. ([#133012](https://github.com/kubernetes/kubernetes/pull/133012), [@tallclair](https://github.com/tallclair)) [SIG Apps, Node and Testing]", + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133012", + "pr_number": 133012, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "133013": { + "commit": "5231ff1cad2a1d420890e42226c214bdf8ec7c3e", + "text": "The `conditionType` is \"oneof\" approved/denied check of CertificateSigningRequest's `.status.conditions` field was migrated to declarative validation. \nIf the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics.\nIf the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields.", + "markdown": "The `conditionType` is \"oneof\" approved/denied check of CertificateSigningRequest's `.status.conditions` field was migrated to declarative validation. \n If the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics.\n If the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields. ([#133013](https://github.com/kubernetes/kubernetes/pull/133013), [@aaron-prindle](https://github.com/aaron-prindle)) [SIG API Machinery and Auth]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/5073-declarative-validation-with-validation-gen/README.md", + "type": "KEP" + } + ], + "author": "aaron-prindle", + "author_url": "https://github.com/aaron-prindle", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133013", + "pr_number": 133013, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133016": { + "commit": "a32768df779f44b1e486426fc695559a16711afd", + "text": "kubelet reported a hash of the credential provider configuration via the `kubelet_credential_provider_config_info` metric. The hash was exposed in the `hash` label.", + "markdown": "Kubelet reported a hash of the credential provider configuration via the `kubelet_credential_provider_config_info` metric. The hash was exposed in the `hash` label. ([#133016](https://github.com/kubernetes/kubernetes/pull/133016), [@aramase](https://github.com/aramase)) [SIG API Machinery and Auth]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/4412-projected-service-account-tokens-for-kubelet-image-credential-providers/README.md", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133016", + "pr_number": 133016, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "133017": { + "commit": "cdef93cedbdcb060e69cd71d1280ad7b8eb82781", + "text": "The `KubeletServiceAccountTokenForCredentialProviders` feature was beta and enabled by default.", + "markdown": "The `KubeletServiceAccountTokenForCredentialProviders` feature was beta and enabled by default. ([#133017](https://github.com/kubernetes/kubernetes/pull/133017), [@aramase](https://github.com/aramase)) [SIG Auth and Node]", + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133017", + "pr_number": 133017, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "auth", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133018": { + "commit": "abbee0108de419a88be21ccee8e723cd260be417", + "text": "Eliminated work when creating Services or understanding port purposes, especially for external resources deployed via Helm charts.", + "markdown": "Eliminated work when creating Services or understanding port purposes, especially for external resources deployed via Helm charts. ([#133018](https://github.com/kubernetes/kubernetes/pull/133018), [@rushmash91](https://github.com/rushmash91))", + "author": "rushmash91", + "author_url": "https://github.com/rushmash91", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133018", + "pr_number": 133018, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "do_not_publish": true, + "is_mapped": true + }, + "133021": { + "commit": "461ba83084ab7cb91ab692687bb7aedb05c6eb65", + "text": "If `PreBindPreFlight` returned `Skip`, the scheduler didn't run the plugin at `PreBind`.\nIf any `PreBindPreFlight` returned `Success`, the scheduler put NominatedNodeName to the pod \nso that other components (such as the cluster autoscaler) could notice the pod was going to be bound to the node.", + "markdown": "If `PreBindPreFlight` returned `Skip`, the scheduler didn't run the plugin at `PreBind`.\n If any `PreBindPreFlight` returned `Success`, the scheduler put NominatedNodeName to the pod \n so that other components (such as the cluster autoscaler) could notice the pod was going to be bound to the node. ([#133021](https://github.com/kubernetes/kubernetes/pull/133021), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133021", + "pr_number": 133021, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "133023": { + "commit": "84cacae7046df93c1f6f8ea97c912d948e1ad06a", + "text": "kubeadm: Fixed a bug where the default args for etcd were not correct when a local etcd image was used and the etcd version was less than 3.6.0.", + "markdown": "Kubeadm: Fixed a bug where the default args for etcd were not correct when a local etcd image was used and the etcd version was less than 3.6.0. ([#133023](https://github.com/kubernetes/kubernetes/pull/133023), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133023", + "pr_number": 133023, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "133027": { + "commit": "4b263baea18efe86177d63a1c00234cc692afa2e", + "text": "Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/podresources` in favor of `google.golang.org/protobuf`.", + "markdown": "Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/podresources` in favor of `google.golang.org/protobuf`. ([#133027](https://github.com/kubernetes/kubernetes/pull/133027), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133027", + "pr_number": 133027, + "areas": [ + "test", + "kubelet", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "133028": { + "commit": "47d9d86326a0b56d40c84ad4d68df073c15bba28", + "text": "Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/deviceplugin` in favor of `google.golang.org/protobuf`.", + "markdown": "Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/deviceplugin` in favor of `google.golang.org/protobuf`. ([#133028](https://github.com/kubernetes/kubernetes/pull/133028), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133028", + "pr_number": 133028, + "areas": [ + "test", + "kubelet", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true + }, + "133030": { + "commit": "792061af02da263576b9b0676c331e28b93d3943", + "text": "Replaced timer ptr helper function with the `k8s.io/utils/ptr` implementations.", + "markdown": "Replaced timer ptr helper function with the `k8s.io/utils/ptr` implementations. ([#133030](https://github.com/kubernetes/kubernetes/pull/133030), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth]", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133030", + "pr_number": 133030, + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "duplicate": true, + "is_mapped": true + }, + "133034": { + "commit": "57a32e885c40d7dd3f730d0004bab5bb9c082b20", + "text": "Increased APF max seats to 100 for LIST requests.", + "markdown": "Increased APF max seats to 100 for LIST requests. ([#133034](https://github.com/kubernetes/kubernetes/pull/133034), [@serathius](https://github.com/serathius))", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133034", + "pr_number": 133034, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "133042": { + "commit": "7bf8066a58a24720a30656ac8f08b8c68cdd0a8d", + "text": "Graduated the WinOverlay feature in the kube-proxy to GA. The **WinOverlay** feature gate was enabled by default.", + "markdown": "Graduated the WinOverlay feature in the kube-proxy to GA. The **WinOverlay** feature gate was enabled by default. ([#133042](https://github.com/kubernetes/kubernetes/pull/133042), [@rzlink](https://github.com/rzlink)) [SIG Network and Windows]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/5100-windows-dsr-and-overlay-support", + "type": "KEP" + } + ], + "author": "rzlink", + "author_url": "https://github.com/rzlink", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133042", + "pr_number": 133042, + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "windows" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "133046": { + "commit": "9adc49ffd42a89f7505fb80a902dd00c10238dd6", + "text": "Added validation to reject Pods using the `PodLevelResources` feature on Windows OS due to lack of support. The API server rejected Pods with pod-level resources and a `Pod.spec.os.name` targeting Windows. Kubelet on nodes running Windows also rejected Pods with pod-level resources at the admission phase.", + "markdown": "Added validation to reject Pods using the `PodLevelResources` feature on Windows OS due to lack of support. The API server rejected Pods with pod-level resources and a `Pod.spec.os.name` targeting Windows. Kubelet on nodes running Windows also rejected Pods with pod-level resources at the admission phase. ([#133046](https://github.com/kubernetes/kubernetes/pull/133046), [@toVersus](https://github.com/toVersus)) [SIG Apps and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2837", + "type": "KEP" + } + ], + "author": "toVersus", + "author_url": "https://github.com/toVersus", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133046", + "pr_number": 133046, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "apps", + "node" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133060": { + "commit": "e09946e6c1c8850ab820c6a1f7a424246617a346", + "text": "Fixed recording the `kubelet_container_resize_requests_total` metric to include all resize-related updates.", + "markdown": "Fixed recording the `kubelet_container_resize_requests_total` metric to include all resize-related updates. ([#133060](https://github.com/kubernetes/kubernetes/pull/133060), [@natasha41575](https://github.com/natasha41575))", + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133060", + "pr_number": 133060, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "133062": { + "commit": "7c2cc0fa0d00aeadcf085f655667d3afcfff0a66", + "text": "Promoted Windows graceful shutdown feature from alpha to beta.", + "markdown": "Promoted Windows graceful shutdown feature from alpha to beta. ([#133062](https://github.com/kubernetes/kubernetes/pull/133062), [@zylxjtu](https://github.com/zylxjtu))", + "documentation": [ + { + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-windows/4802-windows-node-shutdown", + "type": "KEP" + } + ], + "author": "zylxjtu", + "author_url": "https://github.com/zylxjtu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133062", + "pr_number": 133062, + "kinds": [ + "feature" + ], + "sigs": [ + "windows" + ], + "feature": true, + "is_mapped": true + }, + "133068": { + "commit": "e84a6cb7ef17538ca7c3ee02f1b69f5c7fef7059", + "text": "The validation in the CertificateSigningRequest `/status` and `/approval` subresources was migrated to declarative validation.\nIf the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics.\nIf the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields.", + "markdown": "The validation in the CertificateSigningRequest `/status` and `/approval` subresources was migrated to declarative validation.\n If the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics.\n If the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields. ([#133068](https://github.com/kubernetes/kubernetes/pull/133068), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth]", + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133068", + "pr_number": 133068, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "133076": { + "commit": "8e12e795d07f44a8d4f08adf07847a05889da742", + "text": "DRA driver helper: Fixed handling of apiserver restart when running on a Kubernetes version which did not support the `resource.k8s.io` version used by the DRA driver.", + "markdown": "DRA driver helper: Fixed handling of apiserver restart when running on a Kubernetes version which did not support the `resource.k8s.io` version used by the DRA driver. ([#133076](https://github.com/kubernetes/kubernetes/pull/133076), [@pohly](https://github.com/pohly)) [SIG Node and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133076", + "pr_number": 133076, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "failing-test" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133085": { + "commit": "01c55353873dcb80b1280c0d470ca29f07b48466", + "text": "DRAAdminAccess was enabled by default allowing users to create `ResourceClaims` and `ResourceClaimTemplates` in privileged mode to grant access to devices that were in use by other users for admin tasks like monitoring health or status of the device.", + "markdown": "DRAAdminAccess was enabled by default allowing users to create `ResourceClaims` and `ResourceClaimTemplates` in privileged mode to grant access to devices that were in use by other users for admin tasks like monitoring health or status of the device. ([#133085](https://github.com/kubernetes/kubernetes/pull/133085), [@ritazh](https://github.com/ritazh)) [SIG Auth and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5018", + "type": "KEP" + } + ], + "author": "ritazh", + "author_url": "https://github.com/ritazh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133085", + "pr_number": 133085, + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "133120": { + "commit": "2a03dd1d5ecc66ca6a21fc9f526d4eedc9fef179", + "text": "Added 3 new metrics for monitoring async API calls in the scheduler when the `SchedulerAsyncAPICalls` feature gate was enabled:\n - `scheduler_async_api_call_execution_total`: tracks executed API calls by call type and result (success/error)\n - `scheduler_async_api_call_duration_seconds`: histogram of API call execution duration by call type and result\n - `scheduler_pending_async_api_calls`: gauge showing current number of pending API calls in the queue.", + "markdown": "Added 3 new metrics for monitoring async API calls in the scheduler when the `SchedulerAsyncAPICalls` feature gate was enabled:\n - `scheduler_async_api_call_execution_total`: tracks executed API calls by call type and result (success/error)\n - `scheduler_async_api_call_duration_seconds`: histogram of API call execution duration by call type and result\n - `scheduler_pending_async_api_calls`: gauge showing current number of pending API calls in the queue. ([#133120](https://github.com/kubernetes/kubernetes/pull/133120), [@utam0k](https://github.com/utam0k)) [SIG Release and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-scheduling/5229-asynchronous-api-calls-during-scheduling/README.md", + "type": "KEP" + } + ], + "author": "utam0k", + "author_url": "https://github.com/utam0k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133120", + "pr_number": 133120, + "areas": [ + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "scheduling" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "133135": { + "commit": "c1bccaedaaffe1f2d38006b21066cf7a96daecee", + "text": "CRI API had auth fields in image pulling marked as `debug_redact`.", + "markdown": "CRI API had auth fields in image pulling marked as `debug_redact`. ([#133135](https://github.com/kubernetes/kubernetes/pull/133135), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133135", + "pr_number": 133135, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "133136": { + "commit": "92ddde52d2a58387ba7ea45d3c9207a77abb56c8", + "text": "Changed handling of `CustomResourceDefinitions` with unrecognized formats. Writing a schema with an unrecognized format now triggered a warning (the write was still accepted).", + "markdown": "Changed handling of `CustomResourceDefinitions` with unrecognized formats. Writing a schema with an unrecognized format now triggered a warning (the write was still accepted). ([#133136](https://github.com/kubernetes/kubernetes/pull/133136), [@yongruilin](https://github.com/yongruilin))", + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133136", + "pr_number": 133136, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "133157": { + "commit": "ebbebe8be6b24c7742b08dcb82172413e7fcb6e3", + "text": "Bumped `KubeletCgroupDriverFromCRI` to GA and add metric to track out-of-support CRI implementations.", + "markdown": "Bumped `KubeletCgroupDriverFromCRI` to GA and add metric to track out-of-support CRI implementations. ([#133157](https://github.com/kubernetes/kubernetes/pull/133157), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing]", + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133157", + "pr_number": 133157, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "133164": { + "commit": "24c896108d9d707195a53bc495ebbe8c2b11362e", + "text": "Bumped DRA API version to `v1` in `deviceattribute` package in `k8s.io/dynamic-resource-allocation`.", + "markdown": "Bumped DRA API version to `v1` in `deviceattribute` package in `k8s.io/dynamic-resource-allocation`. ([#133164](https://github.com/kubernetes/kubernetes/pull/133164), [@everpeace](https://github.com/everpeace))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/4381-dra-structured-parameters", + "type": "KEP" + } + ], + "author": "everpeace", + "author_url": "https://github.com/everpeace", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133164", + "pr_number": 133164, + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "133167": { + "commit": "5be5fd022920e0aa77e29792fffbb5f3690547b3", + "text": "Fixed a bug that the async preemption feature keeps preemptor pods unnecessarily in the queue.", + "markdown": "Fixed a bug that the async preemption feature keeps preemptor pods unnecessarily in the queue. ([#133167](https://github.com/kubernetes/kubernetes/pull/133167), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling]", + "author": "sanposhiho", + "author_url": "https://github.com/sanposhiho", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133167", + "pr_number": 133167, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ] + }, + "133226": { + "commit": "d33916baa473d089d33c9fe336bd172cebdb3b6e", + "text": "Updated the etcd client library to v3.6.4.", + "markdown": "Updated the etcd client library to v3.6.4. ([#133226](https://github.com/kubernetes/kubernetes/pull/133226), [@ivanvc](https://github.com/ivanvc)) [SIG API Machinery, Auth, Cloud Provider and Node]", + "author": "ivanvc", + "author_url": "https://github.com/ivanvc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133226", + "pr_number": 133226, + "areas": [ + "apiserver", + "cloudprovider", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "133276": { + "commit": "74f7a44966f605b67520c1dcb4312f426540176d", + "text": "The scheduler no longer cleared the `nominatedNodeName` field for Pods. External components, such as Cluster Autoscaler and Karpenter, were responsible for managing this field when needed.", + "markdown": "The scheduler no longer cleared the `nominatedNodeName` field for Pods. External components, such as Cluster Autoscaler and Karpenter, were responsible for managing this field when needed. ([#133276](https://github.com/kubernetes/kubernetes/pull/133276), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing]", + "author": "macsko", + "author_url": "https://github.com/macsko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133276", + "pr_number": 133276, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "133279": { + "commit": "91731d05e2291f933083e38dc2ba8ba7ccc52fee", + "text": "Prevented any type of CPU/Memory alignment or hint generation with the Topology Manager from the CPU or Memory Manager when pod-level resources were used in the Pod spec.", + "markdown": "Prevented any type of CPU/Memory alignment or hint generation with the Topology Manager from the CPU or Memory Manager when pod-level resources were used in the Pod spec. ([#133279](https://github.com/kubernetes/kubernetes/pull/133279), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]: [kubernetes/enhancements#2837](", + "url": "https://github.com/kubernetes/enhancements/issues/2837)", + "type": "KEP" + } + ], + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133279", + "pr_number": 133279, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "133293": { + "commit": "9e2a0c7453860bc863f296ba8f5fc49959ca31e3", + "text": "Demoted KEP-5278 feature gates `ClearingNominatedNodeNameAfterBinding` and `NominatedNodeNameForExpectation` to alpha from beta.", + "markdown": "Demoted KEP-5278 feature gates `ClearingNominatedNodeNameAfterBinding` and `NominatedNodeNameForExpectation` to alpha from beta. ([#133293](https://github.com/kubernetes/kubernetes/pull/133293), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]:\u003c", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/5278-nominated-node-name-for-expectation\u003e", + "type": "KEP" + } + ], + "author": "utam0k", + "author_url": "https://github.com/utam0k", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133293", + "pr_number": 133293, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "133350": { + "commit": "7bbcfda63af2feff9ccf685a72a45bc66df0cecd", + "text": "Fixed prerelease lifecycle for `PodCertificateRequest`.", + "markdown": "Fixed prerelease lifecycle for `PodCertificateRequest`. ([#133350](https://github.com/kubernetes/kubernetes/pull/133350), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133350", + "pr_number": 133350, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "auth" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "133412": { + "commit": "2629fe25faa73837201dcfc7c4de039112ca125f", + "text": "Fixed an issue that caused kube-apiserver to panic in 1.34.0-rc.0.", + "markdown": "Fixed an issue that caused kube-apiserver to panic in 1.34.0-rc.0. ([#133412](https://github.com/kubernetes/kubernetes/pull/133412), [@richabanker](https://github.com/richabanker))", + "author": "richabanker", + "author_url": "https://github.com/richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133412", + "pr_number": 133412, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "etcd" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "133516": { + "commit": "9da4b7ecfb60ea484f8e6c89c42e63506571bc68", + "text": "Kubernetes is now built using Go 1.24.6", + "markdown": "Kubernetes is now built using Go 1.24.6. ([#133516](https://github.com/kubernetes/kubernetes/pull/133516), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133516", + "pr_number": 133516, + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "133570": { + "commit": "8082e9ab157b280c740a623ae9d73679b9ee95a4", + "text": "Document how to contribute to staging repositories by redirecting to the main kubernetes repo", + "markdown": "Document how to contribute to staging repositories by redirecting to the main kubernetes repo ([#133570](https://github.com/kubernetes/kubernetes/pull/133570), [@BenTheElder](https://github.com/BenTheElder))", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133570", + "pr_number": 133570, + "areas": [ + "apiserver", + "cloudprovider", + "code-generation", + "kube-proxy", + "kubectl", + "kubelet" + ], + "kinds": [ + "documentation" + ], + "sigs": [ + "api-machinery", + "instrumentation", + "network", + "storage", + "node", + "scheduling", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "133587": { + "commit": "b7706ef58b36dbd2cd41b161bd6e6e02e1a95601", + "text": "DRA: fixed a data race which, depending on timing, could have led to broken allocation of devices backing extended resources", + "markdown": "DRA: fixed a data race which, depending on timing, could have led to broken allocation of devices backing extended resources ([#133570](https://github.com/kubernetes/kubernetes/pull/133570), [@pohly](https://github.com/pohly)) [SIG Node]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133587", + "pr_number": 133587, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "133604": { + "commit": "4e8b192b66cc2a6952b8f1a5067e563c4019c276", + "text": "Fixed a regression in 1.34 release candidates where object storage count metrics could include all instances of all types instead of only the object count for a particular type", + "markdown": "Fixed a regression in 1.34 release candidates where object storage count metrics could include all instances of all types instead of only the object count for a particular type ([#133604](https://github.com/kubernetes/kubernetes/pull/133604), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133604", + "pr_number": 133604, + "areas": [ + "apiserver" + ], + "kinds": [ + "regression" + ], + "sigs": [ + "api-machinery", + "etcd" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "133409": { + "commit": "ee065dfc80b5762d53c5d9d896a8cc4b1d9c6bd2", + "text": "Make `podcertificaterequestcleaner` role feature-gated", + "markdown": "Make `podcertificaterequestcleaner` role feature-gated ([#133409](https://github.com/kubernetes/kubernetes/pull/133409), [@carlory](https://github.com/carlory)) [SIG Auth]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133409", + "pr_number": 133409, + "kinds": [ + "bug" + ], + "sigs": [ + "auth" + ], + "duplicate_kind": true, + "is_mapped": true + } } \ No newline at end of file diff --git a/releases/release-1.34/release-notes/release-notes-draft.md b/releases/release-1.34/release-notes/release-notes-draft.md index 113eb056b72..532b0947b9d 100644 --- a/releases/release-1.34/release-notes/release-notes-draft.md +++ b/releases/release-1.34/release-notes/release-notes-draft.md @@ -1,409 +1,409 @@ -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- For metrics `apiserver_cache_list_fetched_objects_total`, `apiserver_cache_list_returned_objects_total`, `apiserver_cache_list_total` replace `resource_prefix` label with API `group` and `resource` labels. - For metrics `etcd_request_duration_seconds`, `etcd_requests_total` and `etcd_request_errors_total` replace `type` label with API `resource` and `group` label. - For metric `apiserver_selfrequest_total` add a API `group` label. - For metrics `apiserver_watch_events_sizes` and `apiserver_watch_events_total` replace API `kind` label with `resource` label. - For metrics `apiserver_request_body_size_bytes`, `apiserver_storage_events_received_total`, `apiserver_storage_list_evaluated_objects_total`, `apiserver_storage_list_fetched_objects_total`, `apiserver_storage_list_returned_objects_total`, `apiserver_storage_list_total`, `apiserver_watch_cache_events_dispatched_total`, `apiserver_watch_cache_events_received_total`, `apiserver_watch_cache_initializations_total`, `apiserver_watch_cache_resource_version`, `watch_cache_capacity`, `apiserver_init_events_total`, `apiserver_terminated_watchers_total`, `watch_cache_capacity_increase_total`, `watch_cache_capacity_decrease_total`, `apiserver_watch_cache_read_wait_seconds`, `apiserver_watch_cache_consistent_read_total`, `apiserver_storage_consistency_checks_total`, `etcd_bookmark_counts`, `storage_decode_errors_total` extract the API group from `resource` label and put it in new `group` label. ([#131845](https://github.com/kubernetes/kubernetes/pull/131845), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd, Instrumentation and Testing] - - Kubelet: removed the deprecated flag `--cloud-config` from the command line. ([#130161](https://github.com/kubernetes/kubernetes/pull/130161), [@carlory](https://github.com/carlory)) [SIG Cloud Provider, Node and Scalability] - - Static pods that reference API objects are now denied admission by the kubelet so that static pods would not be silently running even after the mirror pod creation fails. - ACTION REQUIRED: Prior to upgrade, ensure static pods are not referencing API objects such as ServiceAccounts, ConfigMaps, Secrets, ResourceClaims, CSIDrivers, PersistentVolumeClaims, or ClusterTrustBundles. ([#131837](https://github.com/kubernetes/kubernetes/pull/131837), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Auth, Node and Testing] - - The Scheduling Framework exposed `NodeInfos` to the PreFilter plugins. The PreFilter plugins now accepted the `NodeInfo` list from the arguments. ([#130720](https://github.com/kubernetes/kubernetes/pull/130720), [@saintube](https://github.com/saintube)) [SIG Node, Scheduling, Storage and Testing] - -## Changes by Kind - -### Deprecation - -- Apimachinery: Deprecated `MessageCountMap` and `CreateAggregateFromMessageCountMap`. ([#132376](https://github.com/kubernetes/kubernetes/pull/132376), [@tico88612](https://github.com/tico88612)) -- DRA kubelet: gRPC API graduated to v1, v1beta1 was deprecated starting in 1.34. Updating DRA drivers to the `k8s.io/dynamic-resource-allocation/kubeletplugin` helper from 1.34 added support for both API versions. ([#132700](https://github.com/kubernetes/kubernetes/pull/132700), [@pohly](https://github.com/pohly)) [SIG Node and Testing] -- Deprecated the `preferences` field in kubeconfig in favor of `kuberc`. ([#131741](https://github.com/kubernetes/kubernetes/pull/131741), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI, Cluster Lifecycle and Testing] -- Kubeadm: Consistently prefixed errors with error: when printing them. ([#132080](https://github.com/kubernetes/kubernetes/pull/132080), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Exposed only the non-deprecated klog flags (-v and -vmodule), in line with KEP https://features.k8s.io/2845. ([#131647](https://github.com/kubernetes/kubernetes/pull/131647), [@carsontham](https://github.com/carsontham)) -- [cloud-provider] Respected the `exclude-from-external-load-balancers=false` label. ([#131085](https://github.com/kubernetes/kubernetes/pull/131085), [@kayrus](https://github.com/kayrus)) [SIG Cloud Provider and Network] - -### API Change - -- Added `omitempty` and `opt` tag to the API `v1beta2` AdminAccess type in the `DeviceRequestAllocationResult` struct. ([#132338](https://github.com/kubernetes/kubernetes/pull/132338), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Added a `runtime.ApplyConfiguration` interface implemented by all generated apply configuration types. ([#132194](https://github.com/kubernetes/kubernetes/pull/132194), [@alvaroaleman](https://github.com/alvaroaleman)) [SIG API Machinery and Instrumentation] -- Added a detailed event for in-place pod vertical scaling completed, improving cluster management and debugging. ([#130387](https://github.com/kubernetes/kubernetes/pull/130387), [@shiya0705](https://github.com/shiya0705)) [SIG API Machinery, Apps, Autoscaling, Node, Scheduling and Testing] -- Added a mechanism for configurable container restarts: _container-level restart rules_. This was an alpha feature behind the `ContainerRestartRules` feature gate. ([#132642](https://github.com/kubernetes/kubernetes/pull/132642), [@yuanwang04](https://github.com/yuanwang04)) [SIG API Machinery, Apps, Node and Testing] -- Added a new `FileKeyRef` field to containers, allowing them to load variables from files by setting this field. - - Introduced the `EnvFiles` feature gate to govern activation of this functionality. ([#132626](https://github.com/kubernetes/kubernetes/pull/132626), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Apps, Node and Testing] -- Added driver-owned fields in `ResourceSlice` to mark whether the device was shareable among multiple resource claims (or requests) and to specify how each capacity could be shared between different requests. - - Added user-owned fields in `ResourceClaim` to specify resource requirements against each device capacity. - - Added scheduler-owned field in `ResourceClaim.Status` to specify how much device capacity is reserved for a specific request. - - Added an additional identifier to `ResourceClaim.Status` for the device supports multiple allocations. - - Added a new constraint type to enforce uniqueness of specified attributes across all allocated devices. ([#132522](https://github.com/kubernetes/kubernetes/pull/132522), [@sunya-ch](https://github.com/sunya-ch)) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Release, Scheduling and Testing] -- Added new optional APIs in `ResouceSlice.Basic` and `ResourceClaim.Status.AllocatedDeviceStatus`. ([#130160](https://github.com/kubernetes/kubernetes/pull/130160), [@KobayashiD27](https://github.com/KobayashiD27)) [SIG API Machinery, Apps, Architecture, Node, Release, Scheduling and Testing] -- Added support for specifying `controlplane` or `cluster` egress selectors in JWT authenticators via the `issuer.egressSelectorType` field in the `AuthenticationConfiguration.jwt` array. If unset, the previous behavior of using no egress selector is preserved. This functionality requires the `StructuredAuthenticationConfigurationEgressSelector` beta feature gate (enabled by default). ([#132768](https://github.com/kubernetes/kubernetes/pull/132768), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing] -- Added support in the Kubelet for monitoring the health of devices allocated via Dynamic Resource Allocation (DRA) and report it in the `pod.status.containerStatuses.allocatedResourcesStatus` field. This required the DRA plugin to implement the new v1alpha1 `NodeHealth` gRPC service. This feature was controlled by the `ResourceHealthStatus` feature gate. ([#130606](https://github.com/kubernetes/kubernetes/pull/130606), [@Jpsassine](https://github.com/Jpsassine)) [SIG Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Network, Node, Release, Scheduling, Storage and Testing] -- Added support in the kubelet's image pull credential tracking for service account-based verification. When an image was pulled using service account credentials via external credential providers, subsequent Pods using the same service account (UID, name, and namespace) could access the cached image without re-authentication for the lifetime of that service account. ([#132771](https://github.com/kubernetes/kubernetes/pull/132771), [@aramase](https://github.com/aramase)) [SIG Auth, Node and Testing] -- Added validation to reject Pods using the `PodLevelResources` feature on Windows OS due to lack of support. The API server rejected Pods with pod-level resources and a `Pod.spec.os.name` targeting Windows. Kubelet on nodes running Windows also rejected Pods with pod-level resources at the admission phase. ([#133046](https://github.com/kubernetes/kubernetes/pull/133046), [@toVersus](https://github.com/toVersus)) [SIG Apps and Node] -- Added warnings when creating headless service with set `loadBalancerIP`,`externalIPs` and/or `SessionAffinity`. ([#132214](https://github.com/kubernetes/kubernetes/pull/132214), [@Peac36](https://github.com/Peac36)) -- Allowed `pvc.spec.VolumeAttributesClassName` to change from non-nil to nil. ([#132106](https://github.com/kubernetes/kubernetes/pull/132106), [@AndrewSirenko](https://github.com/AndrewSirenko)) -- Allowed setting the `hostnameOverride` field in `PodSpec` to specify any RFC 1123 DNS subdomain as the pod's hostname. The `HostnameOverride` feature gate was introduced to control enablement of this functionality. ([#132558](https://github.com/kubernetes/kubernetes/pull/132558), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Apps, Network, Node and Testing] -- Changed underlying logic for `Eviction Manager` helper functions. ([#132277](https://github.com/kubernetes/kubernetes/pull/132277), [@KevinTMtz](https://github.com/KevinTMtz)) [SIG Node, Scheduling and Testing] -- Changed underlying logic to propagate pod-level hugepage cgroup to containers when they did not specify hugepage resources. - - Added validation to enforce the hugepage aggregated container limits to be smaller than or equal to pod-level limits. This was already enforced with the defaulted requests from the specified limits, however it did not make it clear about both hugepage requests and limits. ([#131089](https://github.com/kubernetes/kubernetes/pull/131089), [@KevinTMtz](https://github.com/KevinTMtz)) [SIG Apps, Node and Testing] -- Corrected the documentation to clarify that `podSelector` is optional and described its default behavior. ([#131354](https://github.com/kubernetes/kubernetes/pull/131354), [@tomoish](https://github.com/tomoish)) -- DRA API: resource.k8s.io/v1alpha3 now only contains DeviceTaintRule. All other types got removed because they became obsolete when introducing the v1beta1 API in 1.32. - before updating a cluster where resourceclaims, resourceclaimtemplates, deviceclasses, or resourceslices might have been stored using Kubernetes < 1.32, delete all of those resources before updating and recreate them as needed while running Kubernetes >= 1.32. ([#132000](https://github.com/kubernetes/kubernetes/pull/132000), [@pohly](https://github.com/pohly)) [SIG Etcd, Node, Scheduling and Testing] -- DRA: Starting with Kubernetes 1.34, the alpha-level `resource.k8s.io/admin-access` label has been updated to `resource.kubernetes.io/admin-access`. Admins using the alpha feature and updating from 1.33 can set both labels, upgrade, then remove `resource.k8s.io/admin-access` when no downgrade is going to happen anymore. ([#131996](https://github.com/kubernetes/kubernetes/pull/131996), [@ritazh](https://github.com/ritazh)) [SIG Node and Testing] -- DRA: The scheduler plugin prevented abnormal filter runtimes by timing out after 10 seconds. This was configurable via the plugin configuration's `FilterTimeout`. Setting it to zero disabled the timeout and restored the behavior of Kubernetes <= 1.33. ([#132033](https://github.com/kubernetes/kubernetes/pull/132033), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing] -- DRA: When the prioritized list feature was used in a request and the resulting number of allocated devices exceeded the number of allowed devices per claim, the scheduler aborted the attempt to allocate devices early. Previously, it tried to many different combinations, which could take a long time. ([#130593](https://github.com/kubernetes/kubernetes/pull/130593), [@mortent](https://github.com/mortent)) [SIG Apps, Node, Scheduling and Testing] -- DRA: removed support for the v1alpha4 kubelet gRPC API (added in 1.31, superseded in 1.32). DRA drivers using the helper package from Kubernetes >= 1.32 use the v1beta1 API and continue to be supported. ([#132574](https://github.com/kubernetes/kubernetes/pull/132574), [@pohly](https://github.com/pohly)) -- Deprecated `StreamingConnectionIdleTimeout` field of the kubelet config. ([#131992](https://github.com/kubernetes/kubernetes/pull/131992), [@lalitc375](https://github.com/lalitc375)) -- Dynamic Resource Allocation: Graduated core functionality to general availability (GA). This newly stable feature uses the _structured parameters_ flavor of DRA. ([#132706](https://github.com/kubernetes/kubernetes/pull/132706), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Autoscaling, Etcd, Node, Scheduling and Testing] -- Enabled kube-apiserver support for `PodCertificateRequest` and `PodCertificate` projected volumes (behind the `PodCertificateRequest` feature gate). ([#128010](https://github.com/kubernetes/kubernetes/pull/128010), [@ahmedtd](https://github.com/ahmedtd)) [SIG API Machinery, Apps, Auth, Cloud Provider, Etcd, Node, Storage and Testing] -- Extended resources backed by DRA feature allowed cluster operator to specify `extendedResourceName` in `DeviceClass`, and application operator to continue using extended resources in pod's requests to request for DRA devices matching the DeviceClass. - - `NodeResourcesFit` plugin scoring didn't work for extended resources backed by DRA. ([#130653](https://github.com/kubernetes/kubernetes/pull/130653), [@yliaog](https://github.com/yliaog)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing] -- Extended the NodePorts scheduling plugin to consider hostPorts used by restartable init containers. ([#132040](https://github.com/kubernetes/kubernetes/pull/132040), [@avrittrohwer](https://github.com/avrittrohwer)) [SIG Scheduling and Testing] -- Fixed a 1.33 regression that causes a nil panic in kube-scheduler when aggregating resource requested across container's spec and status. ([#132895](https://github.com/kubernetes/kubernetes/pull/132895), [@yue9944882](https://github.com/yue9944882)) [SIG Node and Scheduling] -- Fixed prerelease lifecycle for `PodCertificateRequest`. ([#133350](https://github.com/kubernetes/kubernetes/pull/133350), [@carlory](https://github.com/carlory)) -- Introduced OpenAPI format support for `k8s-short-name` and `k8s-long-name` in CustomResourceDefinition schemas. ([#132504](https://github.com/kubernetes/kubernetes/pull/132504), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage] -- Introduced the `admissionregistration.k8s.io/v1beta1/MutatingAdmissionPolicy` API type. To enable, enable the `MutatingAdmissionPolicy` feature gate (which was off by default) and set `--runtime-config=admissionregistration.k8s.io/v1beta1=true` on the kube-apiserver. - Note that the default stored version remained alpha in 1.34, and whoever enabled beta during 1.34 needed to run a storage migration yourself to ensure you don't depend on alpha data in etcd. ([#132821](https://github.com/kubernetes/kubernetes/pull/132821), [@cici37](https://github.com/cici37)) [SIG API Machinery, Etcd and Testing] -- Kube-apiserver: Added support for disabling caching of authorization webhook decisions in the `--authorization-config` file. The new fields `cacheAuthorizedRequests` and `cacheUnauthorizedRequests` could be set to `false` to prevent caching for authorized or unauthorized requests. See the https://kubernetes.io/docs/reference/access-authn-authz/authorization/#using-configuration-file-for-authorization for more details. ([#129237](https://github.com/kubernetes/kubernetes/pull/129237), [@rfranzke](https://github.com/rfranzke)) [SIG API Machinery and Auth] -- Kube-apiserver: Promoted the `StructuredAuthenticationConfiguration` feature gate to GA. ([#131916](https://github.com/kubernetes/kubernetes/pull/131916), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] -- Kube-apiserver: The AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1`. ([#131752](https://github.com/kubernetes/kubernetes/pull/131752), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] -- Kube-log-runner: Added the `-log-file-size` parameter to rotate log output into a new file once it reached a certain size. Introduced `-log-file-age` to enable automatic removal of old output files, and `-flush-interval` to support periodic flushing. ([#127667](https://github.com/kubernetes/kubernetes/pull/127667), [@zylxjtu](https://github.com/zylxjtu)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Release, Scheduling, Storage, Testing and Windows] -- Kubectl: Graduated kuberc support to beta. A `kuberc` configuration file provided a mechanism for customizing `kubectl` behavior (distinct from kubeconfig, which configures cluster access across different clients). ([#131818](https://github.com/kubernetes/kubernetes/pull/131818), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] -- Promoted Job Pod Replacement Policy to general availability. The `JobPodReplacementPolicy` feature gate was locked to `true` and will be removed in a future Kubernetes release. ([#132173](https://github.com/kubernetes/kubernetes/pull/132173), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing] -- Promoted `MutableCSINodeAllocatableCount` to beta. ([#132429](https://github.com/kubernetes/kubernetes/pull/132429), [@torredil](https://github.com/torredil)) -- Promoted feature-gate `VolumeAttributesClass` to GA - - Promoted API `VolumeAttributesClass` and `VolumeAttributesClassList` to `storage.k8s.io/v1`. ([#131549](https://github.com/kubernetes/kubernetes/pull/131549), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Auth, CLI, Etcd, Storage and Testing] -- Promoted the `APIServerTracing` feature gate to GA. The `--tracing-config-file` flag accepted `TracingConfiguration` in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`). ([#132340](https://github.com/kubernetes/kubernetes/pull/132340), [@dashpole](https://github.com/dashpole)) [SIG API Machinery and Testing] -- Promoted the `AuthorizeWithSelectors` and `AuthorizeNodeWithSelectors` feature gates to stable and locked on. ([#132656](https://github.com/kubernetes/kubernetes/pull/132656), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing] -- Promoted the `KubeletTracing` feature gate to GA. ([#132341](https://github.com/kubernetes/kubernetes/pull/132341), [@dashpole](https://github.com/dashpole)) [SIG Instrumentation and Node] -- Promoted the `RelaxedEnvironmentVariableValidation` feature gate to GA and locked it in the enabled state by default. ([#132054](https://github.com/kubernetes/kubernetes/pull/132054), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Apps, Architecture, Node and Testing] -- Removed an inaccurate statement about requiring ports when the Pod spec `hostNetwork` field was set. ([#130994](https://github.com/kubernetes/kubernetes/pull/130994), [@BenTheElder](https://github.com/BenTheElder)) [SIG Network and Node] -- Removed deprecated `gogo` protocol definitions from `k8s.io/kubelet/pkg/apis/pluginregistration` in favor of `google.golang.org/protobuf`. ([#132773](https://github.com/kubernetes/kubernetes/pull/132773), [@saschagrunert](https://github.com/saschagrunert)) -- Removed deprecated gogo protocol definitions from `k8s.io/cri-api` in favor of `google.golang.org/protobuf`. ([#128653](https://github.com/kubernetes/kubernetes/pull/128653), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Auth, Instrumentation, Node and Testing] -- Replaced Boolean-pointer-helper functions with the `k8s.io/utils/ptr` implementations. ([#132794](https://github.com/kubernetes/kubernetes/pull/132794), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Auth, CLI, Node and Testing] -- Replaced `boolPtrFn` helper functions with the "k8s.io/utils/ptr" implementation. ([#132907](https://github.com/kubernetes/kubernetes/pull/132907), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiextensions-apiserver apiextensions. ([#132723](https://github.com/kubernetes/kubernetes/pull/132723), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiserver (1/2). ([#132751](https://github.com/kubernetes/kubernetes/pull/132751), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the component-base. ([#132754](https://github.com/kubernetes/kubernetes/pull/132754), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Architecture, Instrumentation and Scheduling] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the kube-aggregator apiregistration. ([#132701](https://github.com/kubernetes/kubernetes/pull/132701), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Simplified validation error message for invalid fields by removing redundant field name. ([#132513](https://github.com/kubernetes/kubernetes/pull/132513), [@xiaoweim](https://github.com/xiaoweim)) [SIG API Machinery, Apps, Auth, Node and Scheduling] -- Simplified validation error message for required fields by removing redundant messages. ([#132472](https://github.com/kubernetes/kubernetes/pull/132472), [@xiaoweim](https://github.com/xiaoweim)) [SIG API Machinery, Apps, Architecture, Auth, Cloud Provider, Network, Node and Storage] -- The `KubeletServiceAccountTokenForCredentialProviders` feature was beta and enabled by default. ([#133017](https://github.com/kubernetes/kubernetes/pull/133017), [@aramase](https://github.com/aramase)) [SIG Auth and Node] -- The `conditionType` is "oneof" approved/denied check of CertificateSigningRequest's `.status.conditions` field was migrated to declarative validation. - If the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics. - If the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields. ([#133013](https://github.com/kubernetes/kubernetes/pull/133013), [@aaron-prindle](https://github.com/aaron-prindle)) [SIG API Machinery and Auth] -- The fallback behavior of the Downward API's `resourceFieldRef` field was updated to account for pod-level resources: if container-level limits were not set, pod-level limits were now used before falling back to node allocatable resources. ([#132605](https://github.com/kubernetes/kubernetes/pull/132605), [@toVersus](https://github.com/toVersus)) [SIG Node, Scheduling and Testing] -- The validation of `replicas` field in the ReplicationController `/scale` subresource has been migrated to declarative validation. - If the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. - If the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields. ([#131664](https://github.com/kubernetes/kubernetes/pull/131664), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Apps] -- The validation-gen code generator generated validation code that supported validation ratcheting. ([#132236](https://github.com/kubernetes/kubernetes/pull/132236), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps, Auth and Node] -- Updated `IsDNS1123SubdomainWithUnderscore` so that, when it returned an error, it also returned the correct regex information (`dns1123SubdomainFmtWithUnderscore`). ([#132034](https://github.com/kubernetes/kubernetes/pull/132034), [@ChosenFoam](https://github.com/ChosenFoam)) -- Updated etcd version to v3.6.0. ([#131501](https://github.com/kubernetes/kubernetes/pull/131501), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing] -- Updated the `v1` credential provider configuration to include the `tokenAttributes.cacheType` field. This field is required and must be set to either `ServiceAccount` or `Token` when configuring a provider that uses a service account to fetch registry credentials. ([#132617](https://github.com/kubernetes/kubernetes/pull/132617), [@aramase](https://github.com/aramase)) [SIG Auth, Node and Testing] -- Zero-value `metadata.creationTimestamp` values are now omitted and no longer serialize an explicit `null` in JSON, YAML, and CBOR output ([#130989](https://github.com/kubernetes/kubernetes/pull/130989), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Scheduling, Storage and Testing] -- `AppArmor` profiles specified in the Pod or container `SecurityContext` were no longer copied to deprecated `AppArmor` annotations (prefix `container.apparmor.security.beta.kubernetes.io/`). Anything that inspected the deprecated annotations must be migrated to use the `SecurityContext` fields instead. ([#131989](https://github.com/kubernetes/kubernetes/pull/131989), [@tallclair](https://github.com/tallclair)) -- `MultiCIDRServiceAllocator` was locked and enabled by default, `DisableAllocatorDualWrite` was enabled by default. ([#131318](https://github.com/kubernetes/kubernetes/pull/131318), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Network and Testing] - -### Feature - -- Added 3 new metrics for monitoring async API calls in the scheduler when the `SchedulerAsyncAPICalls` feature gate was enabled: - - `scheduler_async_api_call_execution_total`: tracks executed API calls by call type and result (success/error) - - `scheduler_async_api_call_duration_seconds`: histogram of API call execution duration by call type and result - - `scheduler_pending_async_api_calls`: gauge showing current number of pending API calls in the queue. ([#133120](https://github.com/kubernetes/kubernetes/pull/133120), [@utam0k](https://github.com/utam0k)) [SIG Release and Scheduling] -- Added HPA support to pod-level resource specifications. When the pod-level resource feature was enabled, HPAs configured with `Resource` type metrics calculated the pod resources from `pod.Spec.Resources` field, if specified. ([#132430](https://github.com/kubernetes/kubernetes/pull/132430), [@laoj2](https://github.com/laoj2)) [SIG Apps, Autoscaling and Testing] -- Added Traffic Distribution field to `kubectl describe service` output ([#131491](https://github.com/kubernetes/kubernetes/pull/131491), [@tchap](https://github.com/tchap)) [SIG CLI] -- Added `SizeBasedListCostEstimate` feature gate that allowed apiserver to estimate sizes of objects to calculate cost of LIST requests. ([#132355](https://github.com/kubernetes/kubernetes/pull/132355), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd] -- Added `apiserver_resource_size_estimate_bytes` metric to API server. ([#132893](https://github.com/kubernetes/kubernetes/pull/132893), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd and Instrumentation] -- Added `started_user_namespaced_pods_total` and `started_user_namespaced_pods_errors_total` for tracking the successes and failures in creating pods if a user namespace was requested. ([#132902](https://github.com/kubernetes/kubernetes/pull/132902), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing] -- Added a `--show-swap` option to `kubectl top` subcommands ([#129458](https://github.com/kubernetes/kubernetes/pull/129458), [@iholder101](https://github.com/iholder101)) [SIG CLI] -- Added a `container_swap_limit_bytes` metric to expose the swap limit assigned to containers under the `LimitedSwap` swap behavior. ([#132348](https://github.com/kubernetes/kubernetes/pull/132348), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing] -- Added a delay to node updates after kubelet startup. A random offset, based on the configured `nodeStatusReportFrequency`, helped distribute traffic and load from node status updates more evenly over time. The initial status update could occur up to 50% earlier or later than the regular schedule. ([#130919](https://github.com/kubernetes/kubernetes/pull/130919), [@mengqiy](https://github.com/mengqiy)) -- Added a flag to kubectl version to detect whether a client/server version mismatch was outside the officially supported range. ([#127365](https://github.com/kubernetes/kubernetes/pull/127365), [@omerap12](https://github.com/omerap12)) -- Added a new `PreBindPreFlight` function to the `PreBindPlugin` interface. All in-tree `PreBind` plugins have been updated to implement `PreBindPreFlight` function. ([#132391](https://github.com/kubernetes/kubernetes/pull/132391), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling, Storage and Testing] -- Added a warning when alpha metrics are used with emulated versions. ([#132276](https://github.com/kubernetes/kubernetes/pull/132276), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery and Architecture] -- Added alpha metrics for compatibility versioning ([#131842](https://github.com/kubernetes/kubernetes/pull/131842), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Architecture, Instrumentation and Scheduling] -- Added configurable flags to kube-apiserver for coordinated leader election. ([#132433](https://github.com/kubernetes/kubernetes/pull/132433), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery and Testing] -- Added machine readable output options (JSON & YAML) to `kubectl api-resources`. ([#132604](https://github.com/kubernetes/kubernetes/pull/132604), [@dharmit](https://github.com/dharmit)) [SIG Apps, CLI and Network] -- Added memory tracking to scheduler performance tests to help detect memory leaks and monitored memory usage patterns while running `scheduler_perf`. ([#132910](https://github.com/kubernetes/kubernetes/pull/132910), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Testing] -- Added support for CEL expressions with escaped names in the structured authentication config. Using `[...]` to access claims or user data was recommended when names contained characters that would otherwise need escaping. CEL optionals with `?` could be used where has was not applicable — for example, `claims[?"kubernetes.io"]` or `user.extra[?"domain.io/foo"]`. ([#131574](https://github.com/kubernetes/kubernetes/pull/131574), [@enj](https://github.com/enj)) [SIG API Machinery and Auth] -- Added support for `--cpu`, `--memory` flag to `kubectl autoscale`, started deprecating `--cpu-precent`. ([#129373](https://github.com/kubernetes/kubernetes/pull/129373), [@googs1025](https://github.com/googs1025)) -- Added support for a new kubectl output format, `kyaml`. KYAML was a strict subset of YAML and should be accepted by any YAML processor. The formatting of KYAML was halfway between JSON and YAML. Because it was more explicit than the default YAML style, it was less error-prone. ([#132942](https://github.com/kubernetes/kubernetes/pull/132942), [@thockin](https://github.com/thockin)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Contributor Experience, Instrumentation, Network, Node, Scheduling, Storage and Testing] -- Added the `DetectCacheInconsistency` feature gate, allowing the API server to periodically verify consistency between its `cache` and `etcd`. Detected inconsistencies reported via the `apiserver_storage_consistency_checks_total` metric and trigger purging of affected cache snapshots. ([#132884](https://github.com/kubernetes/kubernetes/pull/132884), [@serathius](https://github.com/serathius)) [SIG API Machinery, Instrumentation and Testing] -- Added the `SizeBasedListCostEstimate` feature gate (enabled by default), which changes how APF seats are assigned to `LIST` requests. With this feature, one seat is assigned per 100KB of data loaded into memory at once during a `LIST` operation. ([#132932](https://github.com/kubernetes/kubernetes/pull/132932), [@serathius](https://github.com/serathius)) -- Added useful endpoints for kube-apiserver. ([#132581](https://github.com/kubernetes/kubernetes/pull/132581), [@itssimrank](https://github.com/itssimrank)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing] -- Built Kubernetes using Go 1.24.3. ([#131934](https://github.com/kubernetes/kubernetes/pull/131934), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- Built Kubernetes using Go 1.24.4. ([#132222](https://github.com/kubernetes/kubernetes/pull/132222), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- Bumped DRA API version to `v1` in `deviceattribute` package in `k8s.io/dynamic-resource-allocation`. ([#133164](https://github.com/kubernetes/kubernetes/pull/133164), [@everpeace](https://github.com/everpeace)) -- Bumped `KubeletCgroupDriverFromCRI` to GA and add metric to track out-of-support CRI implementations. ([#133157](https://github.com/kubernetes/kubernetes/pull/133157), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing] -- CRI API had auth fields in image pulling marked as `debug_redact`. ([#133135](https://github.com/kubernetes/kubernetes/pull/133135), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) -- Changed handling of `CustomResourceDefinitions` with unrecognized formats. Writing a schema with an unrecognized format now triggered a warning (the write was still accepted). ([#133136](https://github.com/kubernetes/kubernetes/pull/133136), [@yongruilin](https://github.com/yongruilin)) -- DRA kubelet: Fixed the kubelet to also clean up `ResourceSlices` in some additional failure scenarios (driver was removed forcibly or crashed and did not restart). ([#132058](https://github.com/kubernetes/kubernetes/pull/132058), [@pohly](https://github.com/pohly)) [SIG Node and Testing] -- DRAAdminAccess was enabled by default allowing users to create `ResourceClaims` and `ResourceClaimTemplates` in privileged mode to grant access to devices that were in use by other users for admin tasks like monitoring health or status of the device. ([#133085](https://github.com/kubernetes/kubernetes/pull/133085), [@ritazh](https://github.com/ritazh)) [SIG Auth and Node] -- Demoted KEP-5278 feature gates `ClearingNominatedNodeNameAfterBinding` and `NominatedNodeNameForExpectation` to alpha from beta. ([#133293](https://github.com/kubernetes/kubernetes/pull/133293), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Testing] -- Deprecated `apiserver_storage_objects` and replaced it with `apiserver_resource_objects` metric using labels consistent with other metrics. ([#132965](https://github.com/kubernetes/kubernetes/pull/132965), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd and Instrumentation] -- Eliminated work when creating Services or understanding port purposes, especially for external resources deployed via Helm charts. ([#133018](https://github.com/kubernetes/kubernetes/pull/133018), [@rushmash91](https://github.com/rushmash91)) -- Enabled compact snapshots in the watch cache based on `etcd` compaction events. ([#132876](https://github.com/kubernetes/kubernetes/pull/132876), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd] -- Enabled completion for aliases defined in `kubectlrc`. ([#131586](https://github.com/kubernetes/kubernetes/pull/131586), [@ardaguclu](https://github.com/ardaguclu)) -- Ensured memory resizing for Guaranteed QoS pods on static Memory policy configurations was gated by `InPlacePodVerticalScalingExclusiveMemory` (defaults: `false`). ([#132473](https://github.com/kubernetes/kubernetes/pull/132473), [@pravk03](https://github.com/pravk03)) [SIG Node, Scheduling and Testing] -- Ensured that non-scheduling related errors (e.g., network errors) did not lengthen the Pod scheduling backoff time. ([#128748](https://github.com/kubernetes/kubernetes/pull/128748), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] -- Executed API calls dispatched during pod scheduling asynchronously if the `SchedulerAsyncAPICalls` feature gate was enabled. - Out-of-tree plugins used `APIDispatcher` and `APICacher` from the framework to dispatch their own calls. ([#132886](https://github.com/kubernetes/kubernetes/pull/132886), [@macsko](https://github.com/macsko)) [SIG Release, Scheduling and Testing] -- Fixed recording the `kubelet_container_resize_requests_total` metric to include all resize-related updates. ([#133060](https://github.com/kubernetes/kubernetes/pull/133060), [@natasha41575](https://github.com/natasha41575)) -- Graduated `ListFromCacheSnapshot` to beta. ([#132901](https://github.com/kubernetes/kubernetes/pull/132901), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd] -- Graduated `PodLevelResources` feature to beta and have it on by default. This feature allowed defining CPU and memory resources for an entire pod in `pod.spec.resources`. ([#132999](https://github.com/kubernetes/kubernetes/pull/132999), [@ndixita](https://github.com/ndixita)) -- Graduated `PodObservedGenerationTracking` feature to beta and had it on by default. This feature meant that the top level `status.observedGeneration` and `status.conditions[].observedGeneration` fields in Pods were populated to reflect the `metadata.generation` of the podspec at the time that the status or condition was reported. ([#132912](https://github.com/kubernetes/kubernetes/pull/132912), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node and Testing] -- Graduated `ResilientWatchCacheInitialization` to GA. ([#131979](https://github.com/kubernetes/kubernetes/pull/131979), [@serathius](https://github.com/serathius)) -- Graduated `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` to GA. ([#132648](https://github.com/kubernetes/kubernetes/pull/132648), [@serathius](https://github.com/serathius)) -- Graduated configurable endpoints for anonymous authentication using the authentication configuration file to stable. ([#131654](https://github.com/kubernetes/kubernetes/pull/131654), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG API Machinery and Testing] -- Graduated relaxed DNS search string validation to GA. For the Pod API, `.spec.dnsConfig.searches` - now allows an underscore (`_`) where a dash (`-`) would be allowed, and it allows search strings be a single dot `.`. ([#132036](https://github.com/kubernetes/kubernetes/pull/132036), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Network and Testing] -- Graduated scheduler `QueueingHint` support to GA (general availability) ([#131973](https://github.com/kubernetes/kubernetes/pull/131973), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] -- Graduated the WinOverlay feature in the kube-proxy to GA. The **WinOverlay** feature gate was enabled by default. ([#133042](https://github.com/kubernetes/kubernetes/pull/133042), [@rzlink](https://github.com/rzlink)) [SIG Network and Windows] -- Graduated the `ConsistentListFromCache` to GA. ([#132645](https://github.com/kubernetes/kubernetes/pull/132645), [@serathius](https://github.com/serathius)) -- Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled `WatchListClient` for KCM. ([#132704](https://github.com/kubernetes/kubernetes/pull/132704), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] -- Graduated the `WinDSR` feature in the kube-proxy to GA. The `WinDSR` feature gate was enabled by default. ([#132108](https://github.com/kubernetes/kubernetes/pull/132108), [@rzlink](https://github.com/rzlink)) [SIG Network and Windows] -- If `PreBindPreFlight` returned `Skip`, the scheduler didn't run the plugin at `PreBind`. - If any `PreBindPreFlight` returned `Success`, the scheduler put NominatedNodeName to the pod - so that other components (such as the cluster autoscaler) could notice the pod was going to be bound to the node. ([#133021](https://github.com/kubernetes/kubernetes/pull/133021), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] -- Implemented prioritization of resize requests based on `priorityClass` and QoS class when node resources are insufficient to accommodate all pending resize operations. ([#132342](https://github.com/kubernetes/kubernetes/pull/132342), [@natasha41575](https://github.com/natasha41575)) [SIG Node and Testing] -- Included the namespace in the output of `kubectl delete` for better identification of resources. ([#126619](https://github.com/kubernetes/kubernetes/pull/126619), [@totegamma](https://github.com/totegamma)) -- Increased APF max seats to 100 for LIST requests. ([#133034](https://github.com/kubernetes/kubernetes/pull/133034), [@serathius](https://github.com/serathius)) -- Introduced a method `GetPCIeRootAttributeByPCIBusID(pciBusID)` for third-party DRA drivers to provide common logic for the standardized device attribute `resource.kubernetes.io/pcieRoot`. ([#132296](https://github.com/kubernetes/kubernetes/pull/132296), [@everpeace](https://github.com/everpeace)) -- Kube-apiserver reported the last configuration hash as a label in - - - `apiserver_authentication_config_controller_last_config_info` metric after successfully loading the authentication configuration file. - - `apiserver_authorization_config_controller_last_config_info` metric after successfully loading the authorization configuration file. - - `apiserver_encryption_config_controller_last_config_info` metric after successfully loading the encryption configuration file. ([#132299](https://github.com/kubernetes/kubernetes/pull/132299), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] -- Kube-apiserver: Each unique set of etcd server overrides specified with `--etcd-servers-overrides` surfaced health checks named `etcd-override-<index>` and `etcd-override-readiness-<index>`. These checks were still excluded by the `?exclude=etcd` and `?exclude=etcd-readiness` directives. ([#129438](https://github.com/kubernetes/kubernetes/pull/129438), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery and Testing] -- Kube-apiserver: Previously persisted `CustomResourceDefinition` objects with an invalid whitespace-only `caBundle` could serve requests that did not require conversion. ([#132514](https://github.com/kubernetes/kubernetes/pull/132514), [@tiffanny29631](https://github.com/tiffanny29631)) -- Kube-apiserver: Promoted the `ExternalServiceAccountTokenSigner` feature to beta, which enabled external signing of service account tokens and fetching of public verifying keys. This was accomplished by enabling the beta `ExternalServiceAccountTokenSigner` feature gate and specifying the `--service-account-signing-endpoint` flag. The flag value could either be the path to a Unix domain socket on the filesystem, or be prefixed with @ to indicate a Unix domain socket in the abstract namespace. ([#131300](https://github.com/kubernetes/kubernetes/pull/131300), [@HarshalNeelkamal](https://github.com/HarshalNeelkamal)) [SIG API Machinery, Auth and Testing] -- Kube-proxy: Checked whether IPv6 was available on Linux before using it. ([#131265](https://github.com/kubernetes/kubernetes/pull/131265), [@rikatz](https://github.com/rikatz)) -- Kubeadm: Added support for ECDSA-P384 as an encryption algorithm type in v1beta4. ([#131677](https://github.com/kubernetes/kubernetes/pull/131677), [@lalitc375](https://github.com/lalitc375)) -- Kubeadm: Fixed an issue where etcd member promotion failed with an error indicating the member was already promoted. ([#130782](https://github.com/kubernetes/kubernetes/pull/130782), [@BernardMC](https://github.com/BernardMC)) -- Kubeadm: Graduated the `NodeLocalCRISocket` feature gate to beta and enabed it by default. When its enabled, kubeadm will: - 1. Generate a `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in per-node kubelet configurations. - 2. Remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from nodes during upgrade operations. - 3. Remove the `--container-runtime-endpoint` flag from the `/var/lib/kubelet/kubeadm-flags.env` file during upgrades. ([#131981](https://github.com/kubernetes/kubernetes/pull/131981), [@HirazawaUi](https://github.com/HirazawaUi)) -- Kubeadm: Switched the validation check for Linux kernel version to throw warnings instead of errors. ([#131919](https://github.com/kubernetes/kubernetes/pull/131919), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] -- Kubeadm: graduated the kubeadm specific feature gate `WaitForAllControlPlaneComponents` to GA. The feature gate is was locked to always be enabled and on node initialization kubeadm performed a health check for all control plane components and not only the `kube-apiserver`. ([#132594](https://github.com/kubernetes/kubernetes/pull/132594), [@neolit123](https://github.com/neolit123)) -- Kubelet detected terminal CSI volume mount failures due to exceeded attachment limits on the node and marked the Stateful Pod as Failed, allowing its controller to recreate it. This prevented Pods from getting stuck indefinitely in the `ContainerCreating` state. ([#132933](https://github.com/kubernetes/kubernetes/pull/132933), [@torredil](https://github.com/torredil)) [SIG Apps, Node, Storage and Testing] -- Kubelet reported a hash of the credential provider configuration via the `kubelet_credential_provider_config_info` metric. The hash was exposed in the `hash` label. ([#133016](https://github.com/kubernetes/kubernetes/pull/133016), [@aramase](https://github.com/aramase)) [SIG API Machinery and Auth] -- Kubelet: Extended the `--image-credential-provider-config` flag to accept a directory path in addition to a single file. When a directory was specified, all .json, .yaml, and .yml files in that directory were loaded and merged in lexicographical order. ([#131658](https://github.com/kubernetes/kubernetes/pull/131658), [@dims](https://github.com/dims)) [SIG Auth and Node] -- Kubernetes is now built using Go 1.24.6. ([#133516](https://github.com/kubernetes/kubernetes/pull/133516), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- LeaseLocks could now have custom labels that different holders would overwrite when they became the holder of the underlying lease. ([#131632](https://github.com/kubernetes/kubernetes/pull/131632), [@DerekFrank](https://github.com/DerekFrank)) -- Memory limits could be decreased with a `NotRequired` resize restart policy. When decreasing memory limits,a best-effort check was performed to prevent limits from decreasing below usage and triggering an OOM-kill. ([#133012](https://github.com/kubernetes/kubernetes/pull/133012), [@tallclair](https://github.com/tallclair)) [SIG Apps, Node and Testing] -- Migrated validation in `CertificateSigningRequest` to use declarative validation. When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. If `DeclarativeValidationTakeover` is enabled, declarative validation becomes the primary source of errors for migrated fields. ([#132361](https://github.com/kubernetes/kubernetes/pull/132361), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth] -- Moved Recover from volume expansion failure to GA. ([#132662](https://github.com/kubernetes/kubernetes/pull/132662), [@gnufied](https://github.com/gnufied)) [SIG Apps, Auth, Node, Storage and Testing] -- Prevented any type of CPU/Memory alignment or hint generation with the Topology Manager from the CPU or Memory Manager when pod-level resources were used in the Pod spec. ([#133279](https://github.com/kubernetes/kubernetes/pull/133279), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] -- Promoted Linux node pressure stall information (PSI) metrics to beta. ([#132822](https://github.com/kubernetes/kubernetes/pull/132822), [@roycaihw](https://github.com/roycaihw)) [SIG Node] -- Promoted Windows graceful shutdown feature from alpha to beta. ([#133062](https://github.com/kubernetes/kubernetes/pull/133062), [@zylxjtu](https://github.com/zylxjtu)) -- Promoted the Ordered Namespace Deletion test to Conformance. ([#132219](https://github.com/kubernetes/kubernetes/pull/132219), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture and Testing] -- Promoted the `KubeletPodResourcesDynamicResources` and `KubeletPodResourcesGet` feature gates to beta, which were enabled by default if DRA went to GA. ([#132940](https://github.com/kubernetes/kubernetes/pull/132940), [@guptaNswati](https://github.com/guptaNswati)) -- Promoted the feature `OrderedNamespaceDeletion` to GA. ([#131514](https://github.com/kubernetes/kubernetes/pull/131514), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing] -- Removed `endpoint-controller` and `workload-leader-election` FlowSchemas from the default APF configuration. - - Action required: workloads using leader election were required to migrate their lock type from `configmapsleases` or `endpointsleases` to `leases`. ([#131215](https://github.com/kubernetes/kubernetes/pull/131215), [@tosi3k](https://github.com/tosi3k)) [SIG API Machinery, Apps, Network, Scalability and Scheduling] -- Started recording metrics for in-place Pod resize. ([#132903](https://github.com/kubernetes/kubernetes/pull/132903), [@natasha41575](https://github.com/natasha41575)) -- The Kubernetes API server merged selectors built from `matchLabelKeys` into the `labelSelector` of `topologySpreadConstraints`, aligning Pod Topology Spread behavior with Inter-Pod Affinity. To prevent breaking existing Pods using `matchLabelKeys`, this scheduler behavior was preserved until v1.34. Upgrades from v1.32 to v1.34 should be done incrementally (v1.32 → v1.33 → v1.34), ensuring Pods created at v1.32 with `matchLabelKeys` are scheduled before reaching v1.34. Controllers relying on `matchLabelKeys` no longer need to handle them directly and can use `labelSelector` instead. The new feature gate `MatchLabelKeysInPodTopologySpreadSelectorMerge`, enabled by default, controls this behavior. ([#129874](https://github.com/kubernetes/kubernetes/pull/129874), [@mochizuki875](https://github.com/mochizuki875)) [SIG Apps, Node, Scheduling and Testing] -- The PreferSameTrafficDistribution feature gate is now enabled by default, - enabling the `PreferSameNode` traffic distribution value for Services. ([#132127](https://github.com/kubernetes/kubernetes/pull/132127), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network] -- The new `dra_resource_claims_in_use` kubelet metrics reported active `ResourceClaims`, overall and by driver. ([#131641](https://github.com/kubernetes/kubernetes/pull/131641), [@pohly](https://github.com/pohly)) [SIG Architecture, Instrumentation, Node and Testing] -- The scheduler no longer cleared the `nominatedNodeName` field for Pods. External components, such as Cluster Autoscaler and Karpenter, were responsible for managing this field when needed. ([#133276](https://github.com/kubernetes/kubernetes/pull/133276), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing] -- The validation in the CertificateSigningRequest `/status` and `/approval` subresources was migrated to declarative validation. - If the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics. - If the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields. ([#133068](https://github.com/kubernetes/kubernetes/pull/133068), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth] -- Updated `kube-controller-manager` events to support contextual logging. ([#128351](https://github.com/kubernetes/kubernetes/pull/128351), [@mengjiao-liu](https://github.com/mengjiao-liu)) -- Updated pause version to `registry.k8s.io/pause:3.10.1`. ([#130713](https://github.com/kubernetes/kubernetes/pull/130713), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG Cluster Lifecycle, Node, Scheduling and Testing] -- Updated the Kubernetes build environment to use Go `1.24.5`. ([#132896](https://github.com/kubernetes/kubernetes/pull/132896), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] -- Updated the built in `system:monitoring` role with permission to access kubelet metrics endpoints. ([#132178](https://github.com/kubernetes/kubernetes/pull/132178), [@gavinkflam](https://github.com/gavinkflam)) [SIG Auth] -- When `RelaxedServiceNameValidation` feature gate is enabled, the - names of new Services names are validation with `NameIsDNSLabel()`, - relaxing the pre-existing validation. ([#132339](https://github.com/kubernetes/kubernetes/pull/132339), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps, Network and Testing] -- When proxying to an aggregated API server, kube-apiserver used the - `EndpointSlices` of the `service` indicated by the `APIServer`, rather than - using Endpoints. - - If you were using the aggregated API server feature, and you were writing out - the endpoints for it by hand (rather than letting kube-controller-manager - generate `Endpoints` and `EndpointSlices` for it automatically based on the - Service definition), then you should write out an EndpointSlice object rather - than (or in addition to) an `Endpoints` object. ([#129837](https://github.com/kubernetes/kubernetes/pull/129837), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Network and Testing] -- Whenever a pod was successfully bound to a node, the kube-apiserver cleared the pod's `nominatedNodeName` field. This prevented stale information from affecting external scheduling components. ([#132443](https://github.com/kubernetes/kubernetes/pull/132443), [@utam0k](https://github.com/utam0k)) [SIG Apps, Node, Scheduling and Testing] -- `DRAPrioritizedList` was turned on by default which made it possible to provide a prioritized list of subrequests in a `ResourceClaim`. ([#132767](https://github.com/kubernetes/kubernetes/pull/132767), [@mortent](https://github.com/mortent)) [SIG Node, Scheduling and Testing] -- `PodLifecycleSleepAction` was graduated to GA. ([#132595](https://github.com/kubernetes/kubernetes/pull/132595), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps, Node and Testing] -- `kube-controller-manager` reported the following metrics for `ResourceClaims` with admin access: - - `resourceclaim_controller_creates_total` count metric with labels `admin_access` (true or false), `status` (failure or success) to track the total number of `ResourceClaims` creation requests - - `resourceclaim_controller_resource_claims` gauge metric with labels `admin_access` (true or false), `allocated` (true or false) to track the current number of `ResourceClaims`. ([#132800](https://github.com/kubernetes/kubernetes/pull/132800), [@ritazh](https://github.com/ritazh)) [SIG Apps, Auth, Instrumentation and Node] -- `kubeadm`: Started using a named port `probe-port` for all probes in the static pod manifests generated by `kubeadm` for the `kube-apiserver`, `kube-controller-manager`, `kube-scheduler`, and related components. If probe port values were previously patched using `kubeadm` patches, the corresponding named port under the container’s `ports` field must now also be patched. ([#132776](https://github.com/kubernetes/kubernetes/pull/132776), [@neolit123](https://github.com/neolit123)) - -### Failing Test - -- DRA driver helper: Fixed handling of apiserver restart when running on a Kubernetes version which did not support the `resource.k8s.io` version used by the DRA driver. ([#133076](https://github.com/kubernetes/kubernetes/pull/133076), [@pohly](https://github.com/pohly)) [SIG Node and Testing] -- Fixed APIServerTracing test data race; ~/go/src/k8s.io/kubernetes/test/integration/apiserver/tracing$ go test ./... -race - ok k8s.io/kubernetes/test/integration/apiserver/tracing 68.825s. ([#132336](https://github.com/kubernetes/kubernetes/pull/132336), [@dashpole](https://github.com/dashpole)) [SIG API Machinery and Testing] -- Fixed e2e test "[Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits" not to leak Pods and namespaces. ([#132674](https://github.com/kubernetes/kubernetes/pull/132674), [@jsafrane](https://github.com/jsafrane)) [SIG Storage and Testing] -- Kube-apiserver: The --service-account-signing-endpoint flag now only validates the format of abstract socket names ([#131509](https://github.com/kubernetes/kubernetes/pull/131509), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Auth] - -### Documentation - -- Document how to contribute to staging repositories by redirecting to the main kubernetes repo ([#133570](https://github.com/kubernetes/kubernetes/pull/133570), [@BenTheElder](https://github.com/BenTheElder)) - -### Bug or Regression - -- Added `podSpec` validation for creating `StatefulSet`. ([#131790](https://github.com/kubernetes/kubernetes/pull/131790), [@chengjoey](https://github.com/chengjoey)) [SIG Apps, Etcd and Testing] -- Checked for newer resize fields when deciding the recovery feature status in the kubelet. ([#131418](https://github.com/kubernetes/kubernetes/pull/131418), [@gnufied](https://github.com/gnufied)) -- Clarified help message of `--ignore-not-found` flag. Supported `--ignore-not-found` in `watch` operation. ([#132542](https://github.com/kubernetes/kubernetes/pull/132542), [@gemmahou](https://github.com/gemmahou)) -- DRA drivers: the resource slice controller sometimes didn't react properly when kubelet or someone else deleted a recently created ResourceSlice. It incorrectly assumed that the ResourceSlice still exists and didn't recreate it. ([#132683](https://github.com/kubernetes/kubernetes/pull/132683), [@pohly](https://github.com/pohly)) [SIG Apps, Node and Testing] -- DRA: Ensured that ResourceClaims requesting a fixed number of devices with `adminAccess` were no longer allocated the same device multiple times. ([#131299](https://github.com/kubernetes/kubernetes/pull/131299), [@nojnhuh](https://github.com/nojnhuh)) -- DRA: fixed a data race which, depending on timing, could have led to broken allocation of devices backing extended resources ([#133570](https://github.com/kubernetes/kubernetes/pull/133570), [@pohly](https://github.com/pohly)) [SIG Node] -- Disabled reading of disk geometry before calling expansion for ext and xfs filesystems. ([#131568](https://github.com/kubernetes/kubernetes/pull/131568), [@gnufied](https://github.com/gnufied)) -- Ensured objects are transformed prior to storage in `SharedInformers` if a transformer is provided and `WatchList` is activated. ([#131799](https://github.com/kubernetes/kubernetes/pull/131799), [@valerian-roche](https://github.com/valerian-roche)) -- Fixed API response for `StorageClassList` queries to return a graceful error message, if the provided `ResourceVersion` is too large. ([#132374](https://github.com/kubernetes/kubernetes/pull/132374), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Etcd] -- Fixed ReplicationController reconciliation when the `DeploymentReplicaSetTerminatingReplicas` feature gate was enabled. ([#131822](https://github.com/kubernetes/kubernetes/pull/131822), [@atiratree](https://github.com/atiratree)) -- Fixed a bug in CEL's common.UnstructuredToVal where `==` evaluates to false for identical objects when a field is present but the value is null. This bug does not impact the Kubernetes API. ([#131559](https://github.com/kubernetes/kubernetes/pull/131559), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery] -- Fixed a bug in the Job controller that could result in creating unnecessary Pods for Jobs already marked as finished (either successful or failed). ([#130333](https://github.com/kubernetes/kubernetes/pull/130333), [@kmala](https://github.com/kmala)) [SIG Apps and Testing] -- Fixed a bug that caused an unexpected delay in creating Pods for newly created Jobs. ([#132109](https://github.com/kubernetes/kubernetes/pull/132109), [@linxiulei](https://github.com/linxiulei)) [SIG Apps and Testing] -- Fixed a bug that caused duplicate validation when updating a ReplicaSet. ([#131873](https://github.com/kubernetes/kubernetes/pull/131873), [@gavinkflam](https://github.com/gavinkflam)) [SIG Apps] -- Fixed a bug that fails to create a replica set when a deployment name is too long. ([#132560](https://github.com/kubernetes/kubernetes/pull/132560), [@hdp617](https://github.com/hdp617)) [SIG API Machinery and Apps] -- Fixed a bug that the async preemption feature keeps preemptor pods unnecessarily in the queue. ([#133167](https://github.com/kubernetes/kubernetes/pull/133167), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] -- Fixed a panic issue related to kubectl revision history kubernetes/kubectl#1724 ([#130503](https://github.com/kubernetes/kubernetes/pull/130503), [@tahacodes](https://github.com/tahacodes)) [SIG CLI] -- Fixed a possible deadlock in the watch client that could happen if the watch was not stopped. ([#131266](https://github.com/kubernetes/kubernetes/pull/131266), [@karlkfi](https://github.com/karlkfi)) [SIG API Machinery] -- Fixed a regression in 1.34 release candidates where object storage count metrics could include all instances of all types instead of only the object count for a particular type ([#133604](https://github.com/kubernetes/kubernetes/pull/133604), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd] -- Fixed a regression introduced in 1.33 where some paginated LIST calls fell back to `etcd` instead of being served from cache. ([#132244](https://github.com/kubernetes/kubernetes/pull/132244), [@hakuna-matatah](https://github.com/hakuna-matatah)) -- Fixed an incorrect reference to `JoinConfigurationKind` in the error message when no ResetConfiguration is found during `kubeadm reset` with the `--config` flag. ([#132258](https://github.com/kubernetes/kubernetes/pull/132258), [@J3m3](https://github.com/J3m3)) [SIG Cluster Lifecycle] -- Fixed an issue that allowed Custom Resources to be created using Server-Side Apply even when their `CustomResourceDefinition` was terminating. ([#132467](https://github.com/kubernetes/kubernetes/pull/132467), [@sdowell](https://github.com/sdowell)) -- Fixed an issue where Windows kube-proxy’s `ModifyLoadBalancer` API updates did not match the HNS state in version 15.4. Support for `ModifyLoadBalancer` policy began with Kubernetes 1.31+. ([#131506](https://github.com/kubernetes/kubernetes/pull/131506), [@princepereira](https://github.com/princepereira)) -- Fixed an issue where `insufficientResources` was logged as a pointer during pod preemption, making logs more readable. ([#132183](https://github.com/kubernetes/kubernetes/pull/132183), [@chrisy-x](https://github.com/chrisy-x)) [SIG Node] -- Fixed an issue where the kubelet token cache returned stale tokens when service accounts were recreated with the same name. The cache is now UID-aware. Additionally, the new `TokenRequestServiceAccountUIDValidation` feature gate (Beta, enabled by default) ensures the `TokenRequest` UID matches the service account UID when set. ([#132803](https://github.com/kubernetes/kubernetes/pull/132803), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Node and Testing] -- Fixed bug that prevented the alpha feature `PodTopologyLabelAdmission` from working due to checking for the incorrect label key when copying topology labels. This bug delayed the graduation of the feature to beta by an additional release to allow time for meaningful feedback. ([#132462](https://github.com/kubernetes/kubernetes/pull/132462), [@munnerz](https://github.com/munnerz)) -- Fixed incorrect behavior for AllocationMode: All in ResourceClaim when used in subrequests. ([#131660](https://github.com/kubernetes/kubernetes/pull/131660), [@mortent](https://github.com/mortent)) [SIG Node] -- Fixed misleading response codes in admission control metrics. ([#132165](https://github.com/kubernetes/kubernetes/pull/132165), [@gavinkflam](https://github.com/gavinkflam)) [SIG API Machinery, Architecture and Instrumentation] -- Fixed regression introduced in v1.34.0-alpha.1 where the kube-proxy fails to start on an IP single-stack networking. ([#133695](https://github.com/kubernetes/kubernetes/pull/133695), [@prezha](https://github.com/prezha)) [SIG Network] -- Fixed runtime cost estimation for `x-int-or-string` custom resource schemas with maximum lengths. ([#132837](https://github.com/kubernetes/kubernetes/pull/132837), [@JoelSpeed](https://github.com/JoelSpeed)) -- Fixed the `allocatedResourceStatuses` field name mismatch in PVC status validation. ([#131213](https://github.com/kubernetes/kubernetes/pull/131213), [@carlory](https://github.com/carlory)) -- Fixed the `observedGeneration` field in pod resize conditions to accurately reflect the associated pod generation when both `InPlacePodVerticalScaling` and `PodObservedGenerationTracking` feature gates are enabled. ([#131157](https://github.com/kubernetes/kubernetes/pull/131157), [@natasha41575](https://github.com/natasha41575)) -- Fixed the bug when swap related metrics were not available in `/metrics/resource` endpoint. ([#132065](https://github.com/kubernetes/kubernetes/pull/132065), [@yuanwang04](https://github.com/yuanwang04)) [SIG Node and Testing] -- Fixed the problem of validation error when specifying resource requirements at the container level for a resource not supported at the pod level. It implicitly interpreted the pod-level value as 0. ([#132551](https://github.com/kubernetes/kubernetes/pull/132551), [@chao-liang](https://github.com/chao-liang)) [SIG Apps] -- Fixed validation for Job with `suspend=true`, and `completions=0` to set the Complete condition. ([#132614](https://github.com/kubernetes/kubernetes/pull/132614), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing] -- HPA status displayed memory metrics using Ki. ([#132351](https://github.com/kubernetes/kubernetes/pull/132351), [@googs1025](https://github.com/googs1025)) [SIG Apps and Autoscaling] -- Improved the error message shown when a Pod using user namespaces was created on a runtime that did not support user namespaces. ([#131623](https://github.com/kubernetes/kubernetes/pull/131623), [@rata](https://github.com/rata)) -- Kube-apiserver: Defaulted empty `spec.jobTemplate.spec.podFailurePolicy.rules[*].onPodConditions[*].status` fields for CronJob objects as documented, avoiding validation failures during write requests. ([#131525](https://github.com/kubernetes/kubernetes/pull/131525), [@carlory](https://github.com/carlory)) -- Kube-apiserver: Fixed OIDC discovery document publishing when external service account token signing was enabled. ([#131493](https://github.com/kubernetes/kubernetes/pull/131493), [@hoskeri](https://github.com/hoskeri)) [SIG API Machinery, Auth and Testing] -- Kube-proxy: Removed the iptables CLI wait interval flag. ([#131961](https://github.com/kubernetes/kubernetes/pull/131961), [@cyclinder](https://github.com/cyclinder)) -- Kube-scheduler: in Kubernetes 1.33, the number of devices that can be allocated per ResourceClaim was accidentally reduced to 16. Now the supported number of devices per ResourceClaim is 32 again. ([#131662](https://github.com/kubernetes/kubernetes/pull/131662), [@mortent](https://github.com/mortent)) [SIG Node] -- Kubeadm: Fixed a bug where the default args for etcd were not correct when a local etcd image was used and the etcd version was less than 3.6.0. ([#133023](https://github.com/kubernetes/kubernetes/pull/133023), [@carlory](https://github.com/carlory)) -- Kubelet: Closed a loophole that allowed static Pods to reference arbitrary ResourceClaims. Even though these Pods failed to run due to a sanity check, such references are now explicitly disallowed. ([#131844](https://github.com/kubernetes/kubernetes/pull/131844), [@pohly](https://github.com/pohly)) [SIG Apps, Auth and Node] -- Kubelet: Fixed a bug that caused an unexpected `NodeResizeError` condition to appear in the PVC status when the CSI driver did not support node volume expansion and the PVC had the `ReadWriteMany` access mode. ([#131495](https://github.com/kubernetes/kubernetes/pull/131495), [@carlory](https://github.com/carlory)) -- Make `podcertificaterequestcleaner` role feature-gated ([#133409](https://github.com/kubernetes/kubernetes/pull/133409), [@carlory](https://github.com/carlory)) [SIG Auth] -- Modified the node-local `podresources` API endpoint to consider only active pods. Since this changes long-standing behavior, the `KubeletPodResourcesListUseActivePods` feature gate (enabled by default) can be disabled to restore the previous behavior. Users encountering regressions are encouraged to file an issue if they rely on the old behavior. ([#132028](https://github.com/kubernetes/kubernetes/pull/132028), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] -- Pods were not allowed to mix the usage of `user-namespaces` (`hostUsers: false`) and `volumeDevices`. Kubernetes returned an error in this case. ([#132868](https://github.com/kubernetes/kubernetes/pull/132868), [@rata](https://github.com/rata)) -- Reduced the 5s delay before tainting `node.kubernetes.io/unreachable:NoExecute` when a Node became unreachable. ([#120816](https://github.com/kubernetes/kubernetes/pull/120816), [@tnqn](https://github.com/tnqn)) [SIG Apps and Node] -- Removed defunct `make vet` target, please use `make lint` instead. ([#132509](https://github.com/kubernetes/kubernetes/pull/132509), [@yongruilin](https://github.com/yongruilin)) -- Removed the deprecated flag `--wait-interval` for the `ip6tables-legacy-restore` binary. ([#132352](https://github.com/kubernetes/kubernetes/pull/132352), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- ReplicaSets and Deployments should always count `.status.availableReplicas` at the correct time without a delay. This results in faster reconciliation of Deployment conditions and faster, unblocked Deployment rollouts. ([#132121](https://github.com/kubernetes/kubernetes/pull/132121), [@atiratree](https://github.com/atiratree)) [SIG Apps] -- Resolved a bug where DaemonSet updates unnecessarily triggered duplicate validation due to overlapping calls to `ValidateDaemonSet` and ValidateDaemonSetUpdate. This redundancy has been removed to prevent repeated validation runs. ([#132548](https://github.com/kubernetes/kubernetes/pull/132548), [@gavinkflam](https://github.com/gavinkflam)) -- Skipped pod backoff entirely when the `PodMaxBackoffDuration` kube-scheduler option was set to zero and the `SchedulerPopFromBackoffQ` feature gate was enabled. ([#131965](https://github.com/kubernetes/kubernetes/pull/131965), [@macsko](https://github.com/macsko)) -- Stopped expanding PVCs annotated with node-expand-not-required. ([#131907](https://github.com/kubernetes/kubernetes/pull/131907), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Etcd, Node, Storage and Testing] -- Stopped expanding the volume on the node if controller-side expansion was already completed. ([#131868](https://github.com/kubernetes/kubernetes/pull/131868), [@gnufied](https://github.com/gnufied)) -- Stopped logging error events when waiting for expansion on the kubelet. ([#131408](https://github.com/kubernetes/kubernetes/pull/131408), [@gnufied](https://github.com/gnufied)) -- Stopped removing the CSI JSON file if the volume was already mounted during subsequent errors. ([#131311](https://github.com/kubernetes/kubernetes/pull/131311), [@gnufied](https://github.com/gnufied)) -- The `baseline` and `restricted` pod security admission levels blocked setting the `host` field on probe and lifecycle handlers. ([#125271](https://github.com/kubernetes/kubernetes/pull/125271), [@tssurya](https://github.com/tssurya)) [SIG Auth, Node and Testing] -- The garbage collection controller no longer raced with changes to `ownerReferences` when deleting orphaned objects. ([#132632](https://github.com/kubernetes/kubernetes/pull/132632), [@sdowell](https://github.com/sdowell)) [SIG API Machinery and Apps] -- The shorthand for --output flag in kubectl explain was accidentally deleted, but has been added back. ([#131962](https://github.com/kubernetes/kubernetes/pull/131962), [@superbrothers](https://github.com/superbrothers)) [SIG CLI] -- Updated Windows `kube-proxy` to align with Linux behavior by correctly honoring the port specified in `EndpointSlice` for internal traffic routing. ([#132647](https://github.com/kubernetes/kubernetes/pull/132647), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows] -- Updated `kube-proxy` with `nftables` to reject or drop traffic to services with no endpoints from filter chains at priority 0 (`NF_IP_PRI_FILTER`). ([#132456](https://github.com/kubernetes/kubernetes/pull/132456), [@aroradaman](https://github.com/aroradaman)) -- Updated `kubectl get job` to display the `SuccessCriteriaMet` status for listed jobs. ([#132832](https://github.com/kubernetes/kubernetes/pull/132832), [@Goend](https://github.com/Goend)) [SIG Apps and CLI] -- Updated the HPA controller so that it no longer emitted a `FailedRescale` event if a scale operation initially failed due to a conflict but succeeded after a retry; it now emitted a `SuccessfulRescale` event in this case. A `FailedRescale` event was still emitted if all retries were exhausted. ([#132007](https://github.com/kubernetes/kubernetes/pull/132007), [@AumPatel1](https://github.com/AumPatel1)) [SIG Apps and Autoscaling] -- `Statefulset` respected `minReadySeconds`. ([#130909](https://github.com/kubernetes/kubernetes/pull/130909), [@Edwinhr716](https://github.com/Edwinhr716)) -- `kubectl create|delete|get|replace --raw` commands now honored the server root paths specified in the kubeconfig file. ([#131165](https://github.com/kubernetes/kubernetes/pull/131165), [@liggitt](https://github.com/liggitt)) -- Fixed an issue that caused `kube-apiserver` to panic in 1.34.0-rc.0. ([133412](https://github.com/kubernetes/kubernetes/pull/133412), [@richabanker](https://github.com/richabanker)) [SIG API Machinery and Etcd] - -### Other (Cleanup or Flake) - -- Added a warning to `kubectl attach`, notifying / reminding users that commands and output are available via the `log` subresource of that Pod. ([#127183](https://github.com/kubernetes/kubernetes/pull/127183), [@mochizuki875](https://github.com/mochizuki875)) [SIG Auth, CLI, Node and Security] -- Added support for encoding and decoding types that implement the standard library interfaces `json.Marshaler`, `json.Unmarshaler`, `encoding.TextMarshaler`, or `encoding.TextUnmarshaler` to and from CBOR by transcoding. ([#132935](https://github.com/kubernetes/kubernetes/pull/132935), [@benluddy](https://github.com/benluddy)) -- Bumped kube-dns to v1.26.4. ([#132012](https://github.com/kubernetes/kubernetes/pull/132012), [@pacoxu](https://github.com/pacoxu)) -- Bumped the cel-go dependency to v0.25.0. The changeset is available at: https://github.com/google/cel-go/compare/v0.23.2...v0.25.0. ([#131444](https://github.com/kubernetes/kubernetes/pull/131444), [@erdii](https://github.com/erdii)) [SIG API Machinery, Auth, Cloud Provider and Node] -- By default, binaries like kube-apiserver were built with the `grpcnotrace` tag enabled. Used the `DBG` flag to enable Golang tracing if needed. ([#132210](https://github.com/kubernetes/kubernetes/pull/132210), [@dims](https://github.com/dims)) -- Changed Job controller to use the controller UID index for Pod lookups to improve performance. ([#132305](https://github.com/kubernetes/kubernetes/pull/132305), [@xigang](https://github.com/xigang)) -- Changed apiserver to treat failures decoding a mutating webhook patch as failures to call the webhook so they trigger the webhook failurePolicy and count against metrics like `webhook_fail_open_count` ([#131627](https://github.com/kubernetes/kubernetes/pull/131627), [@dims](https://github.com/dims)) [SIG API Machinery] -- DRA kubelet- Updated logging to use `driverName` instead of `pluginName`, aligning with the rest of the Kubernetes components. ([#132096](https://github.com/kubernetes/kubernetes/pull/132096), [@pohly](https://github.com/pohly)) [SIG Node and Testing] -- DRA kubelet: Simplified recovery from mistakes like scheduling a Pod onto a node where the required driver was not running, as the kubelet no longer unnecessarily blocked Pod deletion. ([#131968](https://github.com/kubernetes/kubernetes/pull/131968), [@pohly](https://github.com/pohly)) [SIG Node and Testing] -- Fixed some missing white spaces in the flag descriptions and logs. ([#131562](https://github.com/kubernetes/kubernetes/pull/131562), [@logica0419](https://github.com/logica0419)) [SIG Network] -- Hack/update-codegen.sh now automatically ensured goimports and protoc. ([#131459](https://github.com/kubernetes/kubernetes/pull/131459), [@BenTheElder](https://github.com/BenTheElder)) -- Increased test coverage for kubelet package to 92.3%. ([#132484](https://github.com/kubernetes/kubernetes/pull/132484), [@ylink-lfs](https://github.com/ylink-lfs)) -- Kube-apiserver: removed the deprecated `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total` metrics in favor of `apiserver_encryption_config_controller_automatic_reloads_total`. ([#132238](https://github.com/kubernetes/kubernetes/pull/132238), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] -- Kube-scheduler: Removed the deprecated scheduler_scheduler_cache_size metric in favor of scheduler_cache_size. ([#131425](https://github.com/kubernetes/kubernetes/pull/131425), [@carlory](https://github.com/carlory)) -- Kubeadm: Fixed missing space when printing the warning about pause image mismatch. ([#131563](https://github.com/kubernetes/kubernetes/pull/131563), [@logica0419](https://github.com/logica0419)) -- Kubeadm: Made the coredns deployment manifest use named ports consistently for the liveness and readiness probes. ([#131587](https://github.com/kubernetes/kubernetes/pull/131587), [@neolit123](https://github.com/neolit123)) -- Kubectl interactive delete: treat empty newline input as N ([#132251](https://github.com/kubernetes/kubernetes/pull/132251), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI] -- Masked access to Linux thermal interrupt information exposed via `/proc` and `/sys`. ([#131018](https://github.com/kubernetes/kubernetes/pull/131018), [@saschagrunert](https://github.com/saschagrunert)) -- Migrated Memory Manager to contextual logging. ([#130727](https://github.com/kubernetes/kubernetes/pull/130727), [@swatisehgal](https://github.com/swatisehgal)) -- Migrated `pkg/kubelet/status` to use contextual logging. ([#130852](https://github.com/kubernetes/kubernetes/pull/130852), [@Chulong-Li](https://github.com/Chulong-Li)) -- Migrated `pkg/kubelet/volumemanager` to contextual logging. ([#131306](https://github.com/kubernetes/kubernetes/pull/131306), [@Chulong-Li](https://github.com/Chulong-Li)) -- Migrated `pkg/kubelet/winstats` to contextual logging. ([#131001](https://github.com/kubernetes/kubernetes/pull/131001), [@Chulong-Li](https://github.com/Chulong-Li)) -- Promoted the `SeparateTaintEvictionController` feature gate to GA; it is now enabled unconditionally. ([#122634](https://github.com/kubernetes/kubernetes/pull/122634), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Node and Testing] -- Promoted the `agnhost` image to v2.56 for Kubernetes e2e testing; verified digest: sha256:352a050380078cb2a1c246357a0dfa2fcf243ee416b92ff28b44a01d1b4b0294. ([#132117](https://github.com/kubernetes/kubernetes/pull/132117), [@yashsingh74](https://github.com/yashsingh74)) [SIG Network and Testing] -- Promoted the `apiserver_authentication_config_controller_automatic_reloads_total` and `apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds` metrics to BETA. ([#131798](https://github.com/kubernetes/kubernetes/pull/131798), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Instrumentation] -- Promoted the `apiserver_authorization_config_controller_automatic_reloads_total` and `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` metrics to BETA. ([#131768](https://github.com/kubernetes/kubernetes/pull/131768), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Instrumentation] -- Promoted two `EndpointSlice` tests to conformance to ensure that service proxy implementations rely on `EndpointSlices` instead of `Endpoints`. ([#132019](https://github.com/kubernetes/kubernetes/pull/132019), [@danwinship](https://github.com/danwinship)) [SIG Architecture, Network and Testing] -- Reduced excessive logging in the Volume Binding scheduler plugin by lowering the verbosity of high-frequency messages from `V(4)` to `V(5)`. ([#132840](https://github.com/kubernetes/kubernetes/pull/132840), [@ppmechlinski](https://github.com/ppmechlinski)) [SIG Autoscaling, Scheduling and Storage] -- Removed deprecated gogo protocol definitions from `k8s.io/externaljwt` in favor of `google.golang.org/protobuf`. ([#132772](https://github.com/kubernetes/kubernetes/pull/132772), [@saschagrunert](https://github.com/saschagrunert)) [SIG Auth] -- Removed deprecated gogo protocol definitions from `k8s.io/kms/apis` in favor of `google.golang.org/protobuf`. ([#132833](https://github.com/kubernetes/kubernetes/pull/132833), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Auth and Testing] -- Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/deviceplugin` in favor of `google.golang.org/protobuf`. ([#133028](https://github.com/kubernetes/kubernetes/pull/133028), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing] -- Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/podresources` in favor of `google.golang.org/protobuf`. ([#133027](https://github.com/kubernetes/kubernetes/pull/133027), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing] -- Removed general available feature-gate `DevicePluginCDIDevices`. ([#132083](https://github.com/kubernetes/kubernetes/pull/132083), [@carlory](https://github.com/carlory)) [SIG Node and Testing] -- Removed generally available feature-gate `PodDisruptionConditions`. ([#129501](https://github.com/kubernetes/kubernetes/pull/129501), [@carlory](https://github.com/carlory)) [SIG Apps] -- Removed support for API streaming from the REST client. ([#132285](https://github.com/kubernetes/kubernetes/pull/132285), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Removed support for API streaming from the `List()` method of the typed client. ([#132257](https://github.com/kubernetes/kubernetes/pull/132257), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] -- Removed support for API streaming from the dynamic client’s `List() method`. ([#132229](https://github.com/kubernetes/kubernetes/pull/132229), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, CLI and Testing] -- Removed support for API streaming from the metadata client’s `List() method`. ([#132149](https://github.com/kubernetes/kubernetes/pull/132149), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] -- Removed the `kubernetes.io/initial-events-list-blueprint` annotation from the synthetic "Bookmark" event in watch stream requests. ([#132326](https://github.com/kubernetes/kubernetes/pull/132326), [@p0lyn0mial](https://github.com/p0lyn0mial)) -- Removed the deprecated `--register-schedulable` command line argument from the kubelet. ([#122384](https://github.com/kubernetes/kubernetes/pull/122384), [@carlory](https://github.com/carlory)) [SIG Cloud Provider, Node and Scalability] -- Replaced `toPtr` helper functions with the "k8s.io/utils/ptr" implementations. ([#132806](https://github.com/kubernetes/kubernetes/pull/132806), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Apps, Testing and Windows] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e and ./test/utils. ([#132763](https://github.com/kubernetes/kubernetes/pull/132763), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Autoscaling and Testing] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e. ([#132764](https://github.com/kubernetes/kubernetes/pull/132764), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Auth, Network, Node, Storage and Testing] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e. ([#132765](https://github.com/kubernetes/kubernetes/pull/132765), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Apps, CLI and Testing] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/integration. ([#132762](https://github.com/kubernetes/kubernetes/pull/132762), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions apiservers validation tests. ([#132726](https://github.com/kubernetes/kubernetes/pull/132726), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions-apiserver pkg/controller. ([#132724](https://github.com/kubernetes/kubernetes/pull/132724), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions-apiserver pkg/registry. ([#132725](https://github.com/kubernetes/kubernetes/pull/132725), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/apis (1/2). ([#132778](https://github.com/kubernetes/kubernetes/pull/132778), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Apps and Network] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/apis (2/2). ([#132779](https://github.com/kubernetes/kubernetes/pull/132779), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Apps, Auth and Storage] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/controller (1/2). ([#132781](https://github.com/kubernetes/kubernetes/pull/132781), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Apps and Network] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/controller (2/2). ([#132784](https://github.com/kubernetes/kubernetes/pull/132784), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Apps, Network, Node and Storage] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pod-security-admission tests. ([#132741](https://github.com/kubernetes/kubernetes/pull/132741), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiextensions-apiservers integration tests. ([#132721](https://github.com/kubernetes/kubernetes/pull/132721), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiserver (2/2). ([#132752](https://github.com/kubernetes/kubernetes/pull/132752), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the cli-runtime. ([#132750](https://github.com/kubernetes/kubernetes/pull/132750), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG CLI and Release] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the cloud-provider. ([#132720](https://github.com/kubernetes/kubernetes/pull/132720), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Cloud Provider and Network] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the components-helper of the apimachinery. ([#132413](https://github.com/kubernetes/kubernetes/pull/132413), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the controller-manager. ([#132753](https://github.com/kubernetes/kubernetes/pull/132753), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Cloud Provider] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the csr. ([#132699](https://github.com/kubernetes/kubernetes/pull/132699), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the e2e_node. ([#132755](https://github.com/kubernetes/kubernetes/pull/132755), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Node and Testing] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the kubeapiserver. ([#132529](https://github.com/kubernetes/kubernetes/pull/132529), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Architecture] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pkg/security and plugin/pkg. ([#132777](https://github.com/kubernetes/kubernetes/pull/132777), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Auth, Node and Release] -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pod-security-admission admissiontests. ([#132742](https://github.com/kubernetes/kubernetes/pull/132742), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pod-security-admission policy. ([#132743](https://github.com/kubernetes/kubernetes/pull/132743), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the reflector. ([#132698](https://github.com/kubernetes/kubernetes/pull/132698), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Replaced timer ptr helper function with the `k8s.io/utils/ptr` implementations. ([#133030](https://github.com/kubernetes/kubernetes/pull/133030), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth] -- The deprecated `LegacySidecarContainers` feature gate was completely removed. ([#131463](https://github.com/kubernetes/kubernetes/pull/131463), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing] -- Types: Code and Status moved from pkg/scheduler/framework to staging repo. - Users should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`. ([#132087](https://github.com/kubernetes/kubernetes/pull/132087), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing] -- Types: CycleState, StateData, StateKey and ErrNotFound moved from pkg/scheduler/framework to k8s.io/kube-scheduler/framework. - Type CycleState that was passed to each plugin in scheduler framework was changed to the new interface CycleState (in k8s.io/kube-scheduler/framework). ([#131887](https://github.com/kubernetes/kubernetes/pull/131887), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing] -- Types: `ClusterEvent`, `ActionType`, `EventResource`, `ClusterEventWithHint`, `QueueingHint` and `QueueingHintFn` moved from `pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`. ([#132190](https://github.com/kubernetes/kubernetes/pull/132190), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing] -- Types: `NodeInfo`, `PodInfo`, `QueuedPodInfo`, `PodResource`, `AffinityTerm`, `WeightedAffinityTerm`, `Resource`, `ImageStateSummary`, `ProtocolPort` and `HostPortInfo` were moved from `pkg/scheduler/framework` to staging repo. - Users should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework` and update use of fields (to use getter/setter functions instead) where needed. ([#132457](https://github.com/kubernetes/kubernetes/pull/132457), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing] -- Updated CNI plugins to v1.7.1 ([#131602](https://github.com/kubernetes/kubernetes/pull/131602), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Cloud Provider, Node and Testing] -- Updated `conntrack` reconciler to consider a Service’s target port during cleanup of stale flow entries. ([#130542](https://github.com/kubernetes/kubernetes/pull/130542), [@aroradaman](https://github.com/aroradaman)) -- Updated `kubeadm` to use the `InitialCorruptCheck=true` etcd feature gate instead of the deprecated `--experimental-initial-corrupt-check` flag. Also replaced the use of `--experimental-watch-progress-notify-interval` with its graduated counterpart `--watch-progress-notify-interval`. ([#132838](https://github.com/kubernetes/kubernetes/pull/132838), [@AwesomePatrol](https://github.com/AwesomePatrol)) -- Updated cri-tools to v1.33.0. ([#131406](https://github.com/kubernetes/kubernetes/pull/131406), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider] -- Updated etcd version to v3.6.1. ([#132284](https://github.com/kubernetes/kubernetes/pull/132284), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing] -- Updated the etcd client library to v3.6.4. ([#133226](https://github.com/kubernetes/kubernetes/pull/133226), [@ivanvc](https://github.com/ivanvc)) [SIG API Machinery, Auth, Cloud Provider and Node] -- Upgraded CoreDNS to v1.12.1. ([#131151](https://github.com/kubernetes/kubernetes/pull/131151), [@yashsingh74](https://github.com/yashsingh74)) [SIG Cloud Provider and Cluster Lifecycle] -- Upgraded functionality of `kubectl kustomize` as described at https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.7.0. ([#132593](https://github.com/kubernetes/kubernetes/pull/132593), [@koba1t](https://github.com/koba1t)) +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- For metrics `apiserver_cache_list_fetched_objects_total`, `apiserver_cache_list_returned_objects_total`, `apiserver_cache_list_total` replace `resource_prefix` label with API `group` and `resource` labels. + For metrics `etcd_request_duration_seconds`, `etcd_requests_total` and `etcd_request_errors_total` replace `type` label with API `resource` and `group` label. + For metric `apiserver_selfrequest_total` add a API `group` label. + For metrics `apiserver_watch_events_sizes` and `apiserver_watch_events_total` replace API `kind` label with `resource` label. + For metrics `apiserver_request_body_size_bytes`, `apiserver_storage_events_received_total`, `apiserver_storage_list_evaluated_objects_total`, `apiserver_storage_list_fetched_objects_total`, `apiserver_storage_list_returned_objects_total`, `apiserver_storage_list_total`, `apiserver_watch_cache_events_dispatched_total`, `apiserver_watch_cache_events_received_total`, `apiserver_watch_cache_initializations_total`, `apiserver_watch_cache_resource_version`, `watch_cache_capacity`, `apiserver_init_events_total`, `apiserver_terminated_watchers_total`, `watch_cache_capacity_increase_total`, `watch_cache_capacity_decrease_total`, `apiserver_watch_cache_read_wait_seconds`, `apiserver_watch_cache_consistent_read_total`, `apiserver_storage_consistency_checks_total`, `etcd_bookmark_counts`, `storage_decode_errors_total` extract the API group from `resource` label and put it in new `group` label. ([#131845](https://github.com/kubernetes/kubernetes/pull/131845), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd, Instrumentation and Testing] + - Kubelet: removed the deprecated flag `--cloud-config` from the command line. ([#130161](https://github.com/kubernetes/kubernetes/pull/130161), [@carlory](https://github.com/carlory)) [SIG Cloud Provider, Node and Scalability] + - Static pods that reference API objects are now denied admission by the kubelet so that static pods would not be silently running even after the mirror pod creation fails. + ACTION REQUIRED: Prior to upgrade, ensure static pods are not referencing API objects such as ServiceAccounts, ConfigMaps, Secrets, ResourceClaims, CSIDrivers, PersistentVolumeClaims, or ClusterTrustBundles. ([#131837](https://github.com/kubernetes/kubernetes/pull/131837), [@sreeram-venkitesh](https://github.com/sreeram-venkitesh)) [SIG Auth, Node and Testing] + - The Scheduling Framework exposed `NodeInfos` to the PreFilter plugins. The PreFilter plugins now accepted the `NodeInfo` list from the arguments. ([#130720](https://github.com/kubernetes/kubernetes/pull/130720), [@saintube](https://github.com/saintube)) [SIG Node, Scheduling, Storage and Testing] + +## Changes by Kind + +### Deprecation + +- Apimachinery: Deprecated `MessageCountMap` and `CreateAggregateFromMessageCountMap`. ([#132376](https://github.com/kubernetes/kubernetes/pull/132376), [@tico88612](https://github.com/tico88612)) +- DRA kubelet: gRPC API graduated to v1, v1beta1 was deprecated starting in 1.34. Updating DRA drivers to the `k8s.io/dynamic-resource-allocation/kubeletplugin` helper from 1.34 added support for both API versions. ([#132700](https://github.com/kubernetes/kubernetes/pull/132700), [@pohly](https://github.com/pohly)) [SIG Node and Testing] +- Deprecated the `preferences` field in kubeconfig in favor of `kuberc`. ([#131741](https://github.com/kubernetes/kubernetes/pull/131741), [@soltysh](https://github.com/soltysh)) [SIG API Machinery, CLI, Cluster Lifecycle and Testing] +- Kubeadm: Consistently prefixed errors with error: when printing them. ([#132080](https://github.com/kubernetes/kubernetes/pull/132080), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Exposed only the non-deprecated klog flags (-v and -vmodule), in line with KEP https://features.k8s.io/2845. ([#131647](https://github.com/kubernetes/kubernetes/pull/131647), [@carsontham](https://github.com/carsontham)) +- [cloud-provider] Respected the `exclude-from-external-load-balancers=false` label. ([#131085](https://github.com/kubernetes/kubernetes/pull/131085), [@kayrus](https://github.com/kayrus)) [SIG Cloud Provider and Network] + +### API Change + +- Added `omitempty` and `opt` tag to the API `v1beta2` AdminAccess type in the `DeviceRequestAllocationResult` struct. ([#132338](https://github.com/kubernetes/kubernetes/pull/132338), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Added a `runtime.ApplyConfiguration` interface implemented by all generated apply configuration types. ([#132194](https://github.com/kubernetes/kubernetes/pull/132194), [@alvaroaleman](https://github.com/alvaroaleman)) [SIG API Machinery and Instrumentation] +- Added a detailed event for in-place pod vertical scaling completed, improving cluster management and debugging. ([#130387](https://github.com/kubernetes/kubernetes/pull/130387), [@shiya0705](https://github.com/shiya0705)) [SIG API Machinery, Apps, Autoscaling, Node, Scheduling and Testing] +- Added a mechanism for configurable container restarts: _container-level restart rules_. This was an alpha feature behind the `ContainerRestartRules` feature gate. ([#132642](https://github.com/kubernetes/kubernetes/pull/132642), [@yuanwang04](https://github.com/yuanwang04)) [SIG API Machinery, Apps, Node and Testing] +- Added a new `FileKeyRef` field to containers, allowing them to load variables from files by setting this field. + + Introduced the `EnvFiles` feature gate to govern activation of this functionality. ([#132626](https://github.com/kubernetes/kubernetes/pull/132626), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Apps, Node and Testing] +- Added driver-owned fields in `ResourceSlice` to mark whether the device was shareable among multiple resource claims (or requests) and to specify how each capacity could be shared between different requests. + - Added user-owned fields in `ResourceClaim` to specify resource requirements against each device capacity. + - Added scheduler-owned field in `ResourceClaim.Status` to specify how much device capacity is reserved for a specific request. + - Added an additional identifier to `ResourceClaim.Status` for the device supports multiple allocations. + - Added a new constraint type to enforce uniqueness of specified attributes across all allocated devices. ([#132522](https://github.com/kubernetes/kubernetes/pull/132522), [@sunya-ch](https://github.com/sunya-ch)) [SIG API Machinery, Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Release, Scheduling and Testing] +- Added new optional APIs in `ResouceSlice.Basic` and `ResourceClaim.Status.AllocatedDeviceStatus`. ([#130160](https://github.com/kubernetes/kubernetes/pull/130160), [@KobayashiD27](https://github.com/KobayashiD27)) [SIG API Machinery, Apps, Architecture, Node, Release, Scheduling and Testing] +- Added support for specifying `controlplane` or `cluster` egress selectors in JWT authenticators via the `issuer.egressSelectorType` field in the `AuthenticationConfiguration.jwt` array. If unset, the previous behavior of using no egress selector is preserved. This functionality requires the `StructuredAuthenticationConfigurationEgressSelector` beta feature gate (enabled by default). ([#132768](https://github.com/kubernetes/kubernetes/pull/132768), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing] +- Added support in the Kubelet for monitoring the health of devices allocated via Dynamic Resource Allocation (DRA) and report it in the `pod.status.containerStatuses.allocatedResourcesStatus` field. This required the DRA plugin to implement the new v1alpha1 `NodeHealth` gRPC service. This feature was controlled by the `ResourceHealthStatus` feature gate. ([#130606](https://github.com/kubernetes/kubernetes/pull/130606), [@Jpsassine](https://github.com/Jpsassine)) [SIG Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Network, Node, Release, Scheduling, Storage and Testing] +- Added support in the kubelet's image pull credential tracking for service account-based verification. When an image was pulled using service account credentials via external credential providers, subsequent Pods using the same service account (UID, name, and namespace) could access the cached image without re-authentication for the lifetime of that service account. ([#132771](https://github.com/kubernetes/kubernetes/pull/132771), [@aramase](https://github.com/aramase)) [SIG Auth, Node and Testing] +- Added validation to reject Pods using the `PodLevelResources` feature on Windows OS due to lack of support. The API server rejected Pods with pod-level resources and a `Pod.spec.os.name` targeting Windows. Kubelet on nodes running Windows also rejected Pods with pod-level resources at the admission phase. ([#133046](https://github.com/kubernetes/kubernetes/pull/133046), [@toVersus](https://github.com/toVersus)) [SIG Apps and Node] +- Added warnings when creating headless service with set `loadBalancerIP`,`externalIPs` and/or `SessionAffinity`. ([#132214](https://github.com/kubernetes/kubernetes/pull/132214), [@Peac36](https://github.com/Peac36)) +- Allowed `pvc.spec.VolumeAttributesClassName` to change from non-nil to nil. ([#132106](https://github.com/kubernetes/kubernetes/pull/132106), [@AndrewSirenko](https://github.com/AndrewSirenko)) +- Allowed setting the `hostnameOverride` field in `PodSpec` to specify any RFC 1123 DNS subdomain as the pod's hostname. The `HostnameOverride` feature gate was introduced to control enablement of this functionality. ([#132558](https://github.com/kubernetes/kubernetes/pull/132558), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG API Machinery, Apps, Network, Node and Testing] +- Changed underlying logic for `Eviction Manager` helper functions. ([#132277](https://github.com/kubernetes/kubernetes/pull/132277), [@KevinTMtz](https://github.com/KevinTMtz)) [SIG Node, Scheduling and Testing] +- Changed underlying logic to propagate pod-level hugepage cgroup to containers when they did not specify hugepage resources. + - Added validation to enforce the hugepage aggregated container limits to be smaller than or equal to pod-level limits. This was already enforced with the defaulted requests from the specified limits, however it did not make it clear about both hugepage requests and limits. ([#131089](https://github.com/kubernetes/kubernetes/pull/131089), [@KevinTMtz](https://github.com/KevinTMtz)) [SIG Apps, Node and Testing] +- Corrected the documentation to clarify that `podSelector` is optional and described its default behavior. ([#131354](https://github.com/kubernetes/kubernetes/pull/131354), [@tomoish](https://github.com/tomoish)) +- DRA API: resource.k8s.io/v1alpha3 now only contains DeviceTaintRule. All other types got removed because they became obsolete when introducing the v1beta1 API in 1.32. + before updating a cluster where resourceclaims, resourceclaimtemplates, deviceclasses, or resourceslices might have been stored using Kubernetes < 1.32, delete all of those resources before updating and recreate them as needed while running Kubernetes >= 1.32. ([#132000](https://github.com/kubernetes/kubernetes/pull/132000), [@pohly](https://github.com/pohly)) [SIG Etcd, Node, Scheduling and Testing] +- DRA: Starting with Kubernetes 1.34, the alpha-level `resource.k8s.io/admin-access` label has been updated to `resource.kubernetes.io/admin-access`. Admins using the alpha feature and updating from 1.33 can set both labels, upgrade, then remove `resource.k8s.io/admin-access` when no downgrade is going to happen anymore. ([#131996](https://github.com/kubernetes/kubernetes/pull/131996), [@ritazh](https://github.com/ritazh)) [SIG Node and Testing] +- DRA: The scheduler plugin prevented abnormal filter runtimes by timing out after 10 seconds. This was configurable via the plugin configuration's `FilterTimeout`. Setting it to zero disabled the timeout and restored the behavior of Kubernetes <= 1.33. ([#132033](https://github.com/kubernetes/kubernetes/pull/132033), [@pohly](https://github.com/pohly)) [SIG Node, Scheduling and Testing] +- DRA: When the prioritized list feature was used in a request and the resulting number of allocated devices exceeded the number of allowed devices per claim, the scheduler aborted the attempt to allocate devices early. Previously, it tried to many different combinations, which could take a long time. ([#130593](https://github.com/kubernetes/kubernetes/pull/130593), [@mortent](https://github.com/mortent)) [SIG Apps, Node, Scheduling and Testing] +- DRA: removed support for the v1alpha4 kubelet gRPC API (added in 1.31, superseded in 1.32). DRA drivers using the helper package from Kubernetes >= 1.32 use the v1beta1 API and continue to be supported. ([#132574](https://github.com/kubernetes/kubernetes/pull/132574), [@pohly](https://github.com/pohly)) +- Deprecated `StreamingConnectionIdleTimeout` field of the kubelet config. ([#131992](https://github.com/kubernetes/kubernetes/pull/131992), [@lalitc375](https://github.com/lalitc375)) +- Dynamic Resource Allocation: Graduated core functionality to general availability (GA). This newly stable feature uses the _structured parameters_ flavor of DRA. ([#132706](https://github.com/kubernetes/kubernetes/pull/132706), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Autoscaling, Etcd, Node, Scheduling and Testing] +- Enabled kube-apiserver support for `PodCertificateRequest` and `PodCertificate` projected volumes (behind the `PodCertificateRequest` feature gate). ([#128010](https://github.com/kubernetes/kubernetes/pull/128010), [@ahmedtd](https://github.com/ahmedtd)) [SIG API Machinery, Apps, Auth, Cloud Provider, Etcd, Node, Storage and Testing] +- Extended resources backed by DRA feature allowed cluster operator to specify `extendedResourceName` in `DeviceClass`, and application operator to continue using extended resources in pod's requests to request for DRA devices matching the DeviceClass. + + `NodeResourcesFit` plugin scoring didn't work for extended resources backed by DRA. ([#130653](https://github.com/kubernetes/kubernetes/pull/130653), [@yliaog](https://github.com/yliaog)) [SIG API Machinery, Apps, Auth, Node, Scheduling and Testing] +- Extended the NodePorts scheduling plugin to consider hostPorts used by restartable init containers. ([#132040](https://github.com/kubernetes/kubernetes/pull/132040), [@avrittrohwer](https://github.com/avrittrohwer)) [SIG Scheduling and Testing] +- Fixed a 1.33 regression that causes a nil panic in kube-scheduler when aggregating resource requested across container's spec and status. ([#132895](https://github.com/kubernetes/kubernetes/pull/132895), [@yue9944882](https://github.com/yue9944882)) [SIG Node and Scheduling] +- Fixed prerelease lifecycle for `PodCertificateRequest`. ([#133350](https://github.com/kubernetes/kubernetes/pull/133350), [@carlory](https://github.com/carlory)) +- Introduced OpenAPI format support for `k8s-short-name` and `k8s-long-name` in CustomResourceDefinition schemas. ([#132504](https://github.com/kubernetes/kubernetes/pull/132504), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage] +- Introduced the `admissionregistration.k8s.io/v1beta1/MutatingAdmissionPolicy` API type. To enable, enable the `MutatingAdmissionPolicy` feature gate (which was off by default) and set `--runtime-config=admissionregistration.k8s.io/v1beta1=true` on the kube-apiserver. + Note that the default stored version remained alpha in 1.34, and whoever enabled beta during 1.34 needed to run a storage migration yourself to ensure you don't depend on alpha data in etcd. ([#132821](https://github.com/kubernetes/kubernetes/pull/132821), [@cici37](https://github.com/cici37)) [SIG API Machinery, Etcd and Testing] +- Kube-apiserver: Added support for disabling caching of authorization webhook decisions in the `--authorization-config` file. The new fields `cacheAuthorizedRequests` and `cacheUnauthorizedRequests` could be set to `false` to prevent caching for authorized or unauthorized requests. See the https://kubernetes.io/docs/reference/access-authn-authz/authorization/#using-configuration-file-for-authorization for more details. ([#129237](https://github.com/kubernetes/kubernetes/pull/129237), [@rfranzke](https://github.com/rfranzke)) [SIG API Machinery and Auth] +- Kube-apiserver: Promoted the `StructuredAuthenticationConfiguration` feature gate to GA. ([#131916](https://github.com/kubernetes/kubernetes/pull/131916), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] +- Kube-apiserver: The AuthenticationConfiguration type accepted in `--authentication-config` files has been promoted to `apiserver.config.k8s.io/v1`. ([#131752](https://github.com/kubernetes/kubernetes/pull/131752), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] +- Kube-log-runner: Added the `-log-file-size` parameter to rotate log output into a new file once it reached a certain size. Introduced `-log-file-age` to enable automatic removal of old output files, and `-flush-interval` to support periodic flushing. ([#127667](https://github.com/kubernetes/kubernetes/pull/127667), [@zylxjtu](https://github.com/zylxjtu)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Release, Scheduling, Storage, Testing and Windows] +- Kubectl: Graduated kuberc support to beta. A `kuberc` configuration file provided a mechanism for customizing `kubectl` behavior (distinct from kubeconfig, which configures cluster access across different clients). ([#131818](https://github.com/kubernetes/kubernetes/pull/131818), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] +- Promoted Job Pod Replacement Policy to general availability. The `JobPodReplacementPolicy` feature gate was locked to `true` and will be removed in a future Kubernetes release. ([#132173](https://github.com/kubernetes/kubernetes/pull/132173), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing] +- Promoted `MutableCSINodeAllocatableCount` to beta. ([#132429](https://github.com/kubernetes/kubernetes/pull/132429), [@torredil](https://github.com/torredil)) +- Promoted feature-gate `VolumeAttributesClass` to GA + - Promoted API `VolumeAttributesClass` and `VolumeAttributesClassList` to `storage.k8s.io/v1`. ([#131549](https://github.com/kubernetes/kubernetes/pull/131549), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Auth, CLI, Etcd, Storage and Testing] +- Promoted the `APIServerTracing` feature gate to GA. The `--tracing-config-file` flag accepted `TracingConfiguration` in version `apiserver.config.k8s.io/v1` (with no changes from `apiserver.config.k8s.io/v1beta1`). ([#132340](https://github.com/kubernetes/kubernetes/pull/132340), [@dashpole](https://github.com/dashpole)) [SIG API Machinery and Testing] +- Promoted the `AuthorizeWithSelectors` and `AuthorizeNodeWithSelectors` feature gates to stable and locked on. ([#132656](https://github.com/kubernetes/kubernetes/pull/132656), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth and Testing] +- Promoted the `KubeletTracing` feature gate to GA. ([#132341](https://github.com/kubernetes/kubernetes/pull/132341), [@dashpole](https://github.com/dashpole)) [SIG Instrumentation and Node] +- Promoted the `RelaxedEnvironmentVariableValidation` feature gate to GA and locked it in the enabled state by default. ([#132054](https://github.com/kubernetes/kubernetes/pull/132054), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Apps, Architecture, Node and Testing] +- Removed an inaccurate statement about requiring ports when the Pod spec `hostNetwork` field was set. ([#130994](https://github.com/kubernetes/kubernetes/pull/130994), [@BenTheElder](https://github.com/BenTheElder)) [SIG Network and Node] +- Removed deprecated `gogo` protocol definitions from `k8s.io/kubelet/pkg/apis/pluginregistration` in favor of `google.golang.org/protobuf`. ([#132773](https://github.com/kubernetes/kubernetes/pull/132773), [@saschagrunert](https://github.com/saschagrunert)) +- Removed deprecated gogo protocol definitions from `k8s.io/cri-api` in favor of `google.golang.org/protobuf`. ([#128653](https://github.com/kubernetes/kubernetes/pull/128653), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Auth, Instrumentation, Node and Testing] +- Replaced Boolean-pointer-helper functions with the `k8s.io/utils/ptr` implementations. ([#132794](https://github.com/kubernetes/kubernetes/pull/132794), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Auth, CLI, Node and Testing] +- Replaced `boolPtrFn` helper functions with the "k8s.io/utils/ptr" implementation. ([#132907](https://github.com/kubernetes/kubernetes/pull/132907), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiextensions-apiserver apiextensions. ([#132723](https://github.com/kubernetes/kubernetes/pull/132723), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiserver (1/2). ([#132751](https://github.com/kubernetes/kubernetes/pull/132751), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the component-base. ([#132754](https://github.com/kubernetes/kubernetes/pull/132754), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Architecture, Instrumentation and Scheduling] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the kube-aggregator apiregistration. ([#132701](https://github.com/kubernetes/kubernetes/pull/132701), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Simplified validation error message for invalid fields by removing redundant field name. ([#132513](https://github.com/kubernetes/kubernetes/pull/132513), [@xiaoweim](https://github.com/xiaoweim)) [SIG API Machinery, Apps, Auth, Node and Scheduling] +- Simplified validation error message for required fields by removing redundant messages. ([#132472](https://github.com/kubernetes/kubernetes/pull/132472), [@xiaoweim](https://github.com/xiaoweim)) [SIG API Machinery, Apps, Architecture, Auth, Cloud Provider, Network, Node and Storage] +- The `KubeletServiceAccountTokenForCredentialProviders` feature was beta and enabled by default. ([#133017](https://github.com/kubernetes/kubernetes/pull/133017), [@aramase](https://github.com/aramase)) [SIG Auth and Node] +- The `conditionType` is "oneof" approved/denied check of CertificateSigningRequest's `.status.conditions` field was migrated to declarative validation. + If the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics. + If the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields. ([#133013](https://github.com/kubernetes/kubernetes/pull/133013), [@aaron-prindle](https://github.com/aaron-prindle)) [SIG API Machinery and Auth] +- The fallback behavior of the Downward API's `resourceFieldRef` field was updated to account for pod-level resources: if container-level limits were not set, pod-level limits were now used before falling back to node allocatable resources. ([#132605](https://github.com/kubernetes/kubernetes/pull/132605), [@toVersus](https://github.com/toVersus)) [SIG Node, Scheduling and Testing] +- The validation of `replicas` field in the ReplicationController `/scale` subresource has been migrated to declarative validation. + If the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. + If the `DeclarativeValidationTakeover` feature gate is enabled, declarative validation is the primary source of errors for migrated fields. ([#131664](https://github.com/kubernetes/kubernetes/pull/131664), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery and Apps] +- The validation-gen code generator generated validation code that supported validation ratcheting. ([#132236](https://github.com/kubernetes/kubernetes/pull/132236), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps, Auth and Node] +- Updated `IsDNS1123SubdomainWithUnderscore` so that, when it returned an error, it also returned the correct regex information (`dns1123SubdomainFmtWithUnderscore`). ([#132034](https://github.com/kubernetes/kubernetes/pull/132034), [@ChosenFoam](https://github.com/ChosenFoam)) +- Updated etcd version to v3.6.0. ([#131501](https://github.com/kubernetes/kubernetes/pull/131501), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing] +- Updated the `v1` credential provider configuration to include the `tokenAttributes.cacheType` field. This field is required and must be set to either `ServiceAccount` or `Token` when configuring a provider that uses a service account to fetch registry credentials. ([#132617](https://github.com/kubernetes/kubernetes/pull/132617), [@aramase](https://github.com/aramase)) [SIG Auth, Node and Testing] +- Zero-value `metadata.creationTimestamp` values are now omitted and no longer serialize an explicit `null` in JSON, YAML, and CBOR output ([#130989](https://github.com/kubernetes/kubernetes/pull/130989), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Scheduling, Storage and Testing] +- `AppArmor` profiles specified in the Pod or container `SecurityContext` were no longer copied to deprecated `AppArmor` annotations (prefix `container.apparmor.security.beta.kubernetes.io/`). Anything that inspected the deprecated annotations must be migrated to use the `SecurityContext` fields instead. ([#131989](https://github.com/kubernetes/kubernetes/pull/131989), [@tallclair](https://github.com/tallclair)) +- `MultiCIDRServiceAllocator` was locked and enabled by default, `DisableAllocatorDualWrite` was enabled by default. ([#131318](https://github.com/kubernetes/kubernetes/pull/131318), [@aojea](https://github.com/aojea)) [SIG API Machinery, Apps, Architecture, Auth, Etcd, Network and Testing] + +### Feature + +- Added 3 new metrics for monitoring async API calls in the scheduler when the `SchedulerAsyncAPICalls` feature gate was enabled: + - `scheduler_async_api_call_execution_total`: tracks executed API calls by call type and result (success/error) + - `scheduler_async_api_call_duration_seconds`: histogram of API call execution duration by call type and result + - `scheduler_pending_async_api_calls`: gauge showing current number of pending API calls in the queue. ([#133120](https://github.com/kubernetes/kubernetes/pull/133120), [@utam0k](https://github.com/utam0k)) [SIG Release and Scheduling] +- Added HPA support to pod-level resource specifications. When the pod-level resource feature was enabled, HPAs configured with `Resource` type metrics calculated the pod resources from `pod.Spec.Resources` field, if specified. ([#132430](https://github.com/kubernetes/kubernetes/pull/132430), [@laoj2](https://github.com/laoj2)) [SIG Apps, Autoscaling and Testing] +- Added Traffic Distribution field to `kubectl describe service` output ([#131491](https://github.com/kubernetes/kubernetes/pull/131491), [@tchap](https://github.com/tchap)) [SIG CLI] +- Added `SizeBasedListCostEstimate` feature gate that allowed apiserver to estimate sizes of objects to calculate cost of LIST requests. ([#132355](https://github.com/kubernetes/kubernetes/pull/132355), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd] +- Added `apiserver_resource_size_estimate_bytes` metric to API server. ([#132893](https://github.com/kubernetes/kubernetes/pull/132893), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd and Instrumentation] +- Added `started_user_namespaced_pods_total` and `started_user_namespaced_pods_errors_total` for tracking the successes and failures in creating pods if a user namespace was requested. ([#132902](https://github.com/kubernetes/kubernetes/pull/132902), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing] +- Added a `--show-swap` option to `kubectl top` subcommands ([#129458](https://github.com/kubernetes/kubernetes/pull/129458), [@iholder101](https://github.com/iholder101)) [SIG CLI] +- Added a `container_swap_limit_bytes` metric to expose the swap limit assigned to containers under the `LimitedSwap` swap behavior. ([#132348](https://github.com/kubernetes/kubernetes/pull/132348), [@iholder101](https://github.com/iholder101)) [SIG Node and Testing] +- Added a delay to node updates after kubelet startup. A random offset, based on the configured `nodeStatusReportFrequency`, helped distribute traffic and load from node status updates more evenly over time. The initial status update could occur up to 50% earlier or later than the regular schedule. ([#130919](https://github.com/kubernetes/kubernetes/pull/130919), [@mengqiy](https://github.com/mengqiy)) +- Added a flag to kubectl version to detect whether a client/server version mismatch was outside the officially supported range. ([#127365](https://github.com/kubernetes/kubernetes/pull/127365), [@omerap12](https://github.com/omerap12)) +- Added a new `PreBindPreFlight` function to the `PreBindPlugin` interface. All in-tree `PreBind` plugins have been updated to implement `PreBindPreFlight` function. ([#132391](https://github.com/kubernetes/kubernetes/pull/132391), [@sanposhiho](https://github.com/sanposhiho)) [SIG Node, Scheduling, Storage and Testing] +- Added a warning when alpha metrics are used with emulated versions. ([#132276](https://github.com/kubernetes/kubernetes/pull/132276), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery and Architecture] +- Added alpha metrics for compatibility versioning ([#131842](https://github.com/kubernetes/kubernetes/pull/131842), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Architecture, Instrumentation and Scheduling] +- Added configurable flags to kube-apiserver for coordinated leader election. ([#132433](https://github.com/kubernetes/kubernetes/pull/132433), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery and Testing] +- Added machine readable output options (JSON & YAML) to `kubectl api-resources`. ([#132604](https://github.com/kubernetes/kubernetes/pull/132604), [@dharmit](https://github.com/dharmit)) [SIG Apps, CLI and Network] +- Added memory tracking to scheduler performance tests to help detect memory leaks and monitored memory usage patterns while running `scheduler_perf`. ([#132910](https://github.com/kubernetes/kubernetes/pull/132910), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Testing] +- Added support for CEL expressions with escaped names in the structured authentication config. Using `[...]` to access claims or user data was recommended when names contained characters that would otherwise need escaping. CEL optionals with `?` could be used where has was not applicable — for example, `claims[?"kubernetes.io"]` or `user.extra[?"domain.io/foo"]`. ([#131574](https://github.com/kubernetes/kubernetes/pull/131574), [@enj](https://github.com/enj)) [SIG API Machinery and Auth] +- Added support for `--cpu`, `--memory` flag to `kubectl autoscale`, started deprecating `--cpu-precent`. ([#129373](https://github.com/kubernetes/kubernetes/pull/129373), [@googs1025](https://github.com/googs1025)) +- Added support for a new kubectl output format, `kyaml`. KYAML was a strict subset of YAML and should be accepted by any YAML processor. The formatting of KYAML was halfway between JSON and YAML. Because it was more explicit than the default YAML style, it was less error-prone. ([#132942](https://github.com/kubernetes/kubernetes/pull/132942), [@thockin](https://github.com/thockin)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Contributor Experience, Instrumentation, Network, Node, Scheduling, Storage and Testing] +- Added the `DetectCacheInconsistency` feature gate, allowing the API server to periodically verify consistency between its `cache` and `etcd`. Detected inconsistencies reported via the `apiserver_storage_consistency_checks_total` metric and trigger purging of affected cache snapshots. ([#132884](https://github.com/kubernetes/kubernetes/pull/132884), [@serathius](https://github.com/serathius)) [SIG API Machinery, Instrumentation and Testing] +- Added the `SizeBasedListCostEstimate` feature gate (enabled by default), which changes how APF seats are assigned to `LIST` requests. With this feature, one seat is assigned per 100KB of data loaded into memory at once during a `LIST` operation. ([#132932](https://github.com/kubernetes/kubernetes/pull/132932), [@serathius](https://github.com/serathius)) +- Added useful endpoints for kube-apiserver. ([#132581](https://github.com/kubernetes/kubernetes/pull/132581), [@itssimrank](https://github.com/itssimrank)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing] +- Built Kubernetes using Go 1.24.3. ([#131934](https://github.com/kubernetes/kubernetes/pull/131934), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- Built Kubernetes using Go 1.24.4. ([#132222](https://github.com/kubernetes/kubernetes/pull/132222), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- Bumped DRA API version to `v1` in `deviceattribute` package in `k8s.io/dynamic-resource-allocation`. ([#133164](https://github.com/kubernetes/kubernetes/pull/133164), [@everpeace](https://github.com/everpeace)) +- Bumped `KubeletCgroupDriverFromCRI` to GA and add metric to track out-of-support CRI implementations. ([#133157](https://github.com/kubernetes/kubernetes/pull/133157), [@haircommander](https://github.com/haircommander)) [SIG Node and Testing] +- CRI API had auth fields in image pulling marked as `debug_redact`. ([#133135](https://github.com/kubernetes/kubernetes/pull/133135), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) +- Changed handling of `CustomResourceDefinitions` with unrecognized formats. Writing a schema with an unrecognized format now triggered a warning (the write was still accepted). ([#133136](https://github.com/kubernetes/kubernetes/pull/133136), [@yongruilin](https://github.com/yongruilin)) +- DRA kubelet: Fixed the kubelet to also clean up `ResourceSlices` in some additional failure scenarios (driver was removed forcibly or crashed and did not restart). ([#132058](https://github.com/kubernetes/kubernetes/pull/132058), [@pohly](https://github.com/pohly)) [SIG Node and Testing] +- DRAAdminAccess was enabled by default allowing users to create `ResourceClaims` and `ResourceClaimTemplates` in privileged mode to grant access to devices that were in use by other users for admin tasks like monitoring health or status of the device. ([#133085](https://github.com/kubernetes/kubernetes/pull/133085), [@ritazh](https://github.com/ritazh)) [SIG Auth and Node] +- Demoted KEP-5278 feature gates `ClearingNominatedNodeNameAfterBinding` and `NominatedNodeNameForExpectation` to alpha from beta. ([#133293](https://github.com/kubernetes/kubernetes/pull/133293), [@utam0k](https://github.com/utam0k)) [SIG Scheduling and Testing] +- Deprecated `apiserver_storage_objects` and replaced it with `apiserver_resource_objects` metric using labels consistent with other metrics. ([#132965](https://github.com/kubernetes/kubernetes/pull/132965), [@serathius](https://github.com/serathius)) [SIG API Machinery, Etcd and Instrumentation] +- Eliminated work when creating Services or understanding port purposes, especially for external resources deployed via Helm charts. ([#133018](https://github.com/kubernetes/kubernetes/pull/133018), [@rushmash91](https://github.com/rushmash91)) +- Enabled compact snapshots in the watch cache based on `etcd` compaction events. ([#132876](https://github.com/kubernetes/kubernetes/pull/132876), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd] +- Enabled completion for aliases defined in `kubectlrc`. ([#131586](https://github.com/kubernetes/kubernetes/pull/131586), [@ardaguclu](https://github.com/ardaguclu)) +- Ensured memory resizing for Guaranteed QoS pods on static Memory policy configurations was gated by `InPlacePodVerticalScalingExclusiveMemory` (defaults: `false`). ([#132473](https://github.com/kubernetes/kubernetes/pull/132473), [@pravk03](https://github.com/pravk03)) [SIG Node, Scheduling and Testing] +- Ensured that non-scheduling related errors (e.g., network errors) did not lengthen the Pod scheduling backoff time. ([#128748](https://github.com/kubernetes/kubernetes/pull/128748), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] +- Executed API calls dispatched during pod scheduling asynchronously if the `SchedulerAsyncAPICalls` feature gate was enabled. + Out-of-tree plugins used `APIDispatcher` and `APICacher` from the framework to dispatch their own calls. ([#132886](https://github.com/kubernetes/kubernetes/pull/132886), [@macsko](https://github.com/macsko)) [SIG Release, Scheduling and Testing] +- Fixed recording the `kubelet_container_resize_requests_total` metric to include all resize-related updates. ([#133060](https://github.com/kubernetes/kubernetes/pull/133060), [@natasha41575](https://github.com/natasha41575)) +- Graduated `ListFromCacheSnapshot` to beta. ([#132901](https://github.com/kubernetes/kubernetes/pull/132901), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd] +- Graduated `PodLevelResources` feature to beta and have it on by default. This feature allowed defining CPU and memory resources for an entire pod in `pod.spec.resources`. ([#132999](https://github.com/kubernetes/kubernetes/pull/132999), [@ndixita](https://github.com/ndixita)) +- Graduated `PodObservedGenerationTracking` feature to beta and had it on by default. This feature meant that the top level `status.observedGeneration` and `status.conditions[].observedGeneration` fields in Pods were populated to reflect the `metadata.generation` of the podspec at the time that the status or condition was reported. ([#132912](https://github.com/kubernetes/kubernetes/pull/132912), [@natasha41575](https://github.com/natasha41575)) [SIG Apps, Node and Testing] +- Graduated `ResilientWatchCacheInitialization` to GA. ([#131979](https://github.com/kubernetes/kubernetes/pull/131979), [@serathius](https://github.com/serathius)) +- Graduated `StreamingCollectionEncodingToJSON` and `StreamingCollectionEncodingToProtobuf` to GA. ([#132648](https://github.com/kubernetes/kubernetes/pull/132648), [@serathius](https://github.com/serathius)) +- Graduated configurable endpoints for anonymous authentication using the authentication configuration file to stable. ([#131654](https://github.com/kubernetes/kubernetes/pull/131654), [@vinayakankugoyal](https://github.com/vinayakankugoyal)) [SIG API Machinery and Testing] +- Graduated relaxed DNS search string validation to GA. For the Pod API, `.spec.dnsConfig.searches` + now allows an underscore (`_`) where a dash (`-`) would be allowed, and it allows search strings be a single dot `.`. ([#132036](https://github.com/kubernetes/kubernetes/pull/132036), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Network and Testing] +- Graduated scheduler `QueueingHint` support to GA (general availability) ([#131973](https://github.com/kubernetes/kubernetes/pull/131973), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] +- Graduated the WinOverlay feature in the kube-proxy to GA. The **WinOverlay** feature gate was enabled by default. ([#133042](https://github.com/kubernetes/kubernetes/pull/133042), [@rzlink](https://github.com/rzlink)) [SIG Network and Windows] +- Graduated the `ConsistentListFromCache` to GA. ([#132645](https://github.com/kubernetes/kubernetes/pull/132645), [@serathius](https://github.com/serathius)) +- Graduated the `WatchList` feature gate to beta for kube-apiserver and enabled `WatchListClient` for KCM. ([#132704](https://github.com/kubernetes/kubernetes/pull/132704), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] +- Graduated the `WinDSR` feature in the kube-proxy to GA. The `WinDSR` feature gate was enabled by default. ([#132108](https://github.com/kubernetes/kubernetes/pull/132108), [@rzlink](https://github.com/rzlink)) [SIG Network and Windows] +- If `PreBindPreFlight` returned `Skip`, the scheduler didn't run the plugin at `PreBind`. + If any `PreBindPreFlight` returned `Success`, the scheduler put NominatedNodeName to the pod + so that other components (such as the cluster autoscaler) could notice the pod was going to be bound to the node. ([#133021](https://github.com/kubernetes/kubernetes/pull/133021), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling and Testing] +- Implemented prioritization of resize requests based on `priorityClass` and QoS class when node resources are insufficient to accommodate all pending resize operations. ([#132342](https://github.com/kubernetes/kubernetes/pull/132342), [@natasha41575](https://github.com/natasha41575)) [SIG Node and Testing] +- Included the namespace in the output of `kubectl delete` for better identification of resources. ([#126619](https://github.com/kubernetes/kubernetes/pull/126619), [@totegamma](https://github.com/totegamma)) +- Increased APF max seats to 100 for LIST requests. ([#133034](https://github.com/kubernetes/kubernetes/pull/133034), [@serathius](https://github.com/serathius)) +- Introduced a method `GetPCIeRootAttributeByPCIBusID(pciBusID)` for third-party DRA drivers to provide common logic for the standardized device attribute `resource.kubernetes.io/pcieRoot`. ([#132296](https://github.com/kubernetes/kubernetes/pull/132296), [@everpeace](https://github.com/everpeace)) +- Kube-apiserver reported the last configuration hash as a label in + + - `apiserver_authentication_config_controller_last_config_info` metric after successfully loading the authentication configuration file. + - `apiserver_authorization_config_controller_last_config_info` metric after successfully loading the authorization configuration file. + - `apiserver_encryption_config_controller_last_config_info` metric after successfully loading the encryption configuration file. ([#132299](https://github.com/kubernetes/kubernetes/pull/132299), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] +- Kube-apiserver: Each unique set of etcd server overrides specified with `--etcd-servers-overrides` surfaced health checks named `etcd-override-<index>` and `etcd-override-readiness-<index>`. These checks were still excluded by the `?exclude=etcd` and `?exclude=etcd-readiness` directives. ([#129438](https://github.com/kubernetes/kubernetes/pull/129438), [@pacoxu](https://github.com/pacoxu)) [SIG API Machinery and Testing] +- Kube-apiserver: Previously persisted `CustomResourceDefinition` objects with an invalid whitespace-only `caBundle` could serve requests that did not require conversion. ([#132514](https://github.com/kubernetes/kubernetes/pull/132514), [@tiffanny29631](https://github.com/tiffanny29631)) +- Kube-apiserver: Promoted the `ExternalServiceAccountTokenSigner` feature to beta, which enabled external signing of service account tokens and fetching of public verifying keys. This was accomplished by enabling the beta `ExternalServiceAccountTokenSigner` feature gate and specifying the `--service-account-signing-endpoint` flag. The flag value could either be the path to a Unix domain socket on the filesystem, or be prefixed with @ to indicate a Unix domain socket in the abstract namespace. ([#131300](https://github.com/kubernetes/kubernetes/pull/131300), [@HarshalNeelkamal](https://github.com/HarshalNeelkamal)) [SIG API Machinery, Auth and Testing] +- Kube-proxy: Checked whether IPv6 was available on Linux before using it. ([#131265](https://github.com/kubernetes/kubernetes/pull/131265), [@rikatz](https://github.com/rikatz)) +- Kubeadm: Added support for ECDSA-P384 as an encryption algorithm type in v1beta4. ([#131677](https://github.com/kubernetes/kubernetes/pull/131677), [@lalitc375](https://github.com/lalitc375)) +- Kubeadm: Fixed an issue where etcd member promotion failed with an error indicating the member was already promoted. ([#130782](https://github.com/kubernetes/kubernetes/pull/130782), [@BernardMC](https://github.com/BernardMC)) +- Kubeadm: Graduated the `NodeLocalCRISocket` feature gate to beta and enabed it by default. When its enabled, kubeadm will: + 1. Generate a `/var/lib/kubelet/instance-config.yaml` file to customize the `containerRuntimeEndpoint` field in per-node kubelet configurations. + 2. Remove the `kubeadm.alpha.kubernetes.io/cri-socket` annotation from nodes during upgrade operations. + 3. Remove the `--container-runtime-endpoint` flag from the `/var/lib/kubelet/kubeadm-flags.env` file during upgrades. ([#131981](https://github.com/kubernetes/kubernetes/pull/131981), [@HirazawaUi](https://github.com/HirazawaUi)) +- Kubeadm: Switched the validation check for Linux kernel version to throw warnings instead of errors. ([#131919](https://github.com/kubernetes/kubernetes/pull/131919), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] +- Kubeadm: graduated the kubeadm specific feature gate `WaitForAllControlPlaneComponents` to GA. The feature gate is was locked to always be enabled and on node initialization kubeadm performed a health check for all control plane components and not only the `kube-apiserver`. ([#132594](https://github.com/kubernetes/kubernetes/pull/132594), [@neolit123](https://github.com/neolit123)) +- Kubelet detected terminal CSI volume mount failures due to exceeded attachment limits on the node and marked the Stateful Pod as Failed, allowing its controller to recreate it. This prevented Pods from getting stuck indefinitely in the `ContainerCreating` state. ([#132933](https://github.com/kubernetes/kubernetes/pull/132933), [@torredil](https://github.com/torredil)) [SIG Apps, Node, Storage and Testing] +- Kubelet reported a hash of the credential provider configuration via the `kubelet_credential_provider_config_info` metric. The hash was exposed in the `hash` label. ([#133016](https://github.com/kubernetes/kubernetes/pull/133016), [@aramase](https://github.com/aramase)) [SIG API Machinery and Auth] +- Kubelet: Extended the `--image-credential-provider-config` flag to accept a directory path in addition to a single file. When a directory was specified, all .json, .yaml, and .yml files in that directory were loaded and merged in lexicographical order. ([#131658](https://github.com/kubernetes/kubernetes/pull/131658), [@dims](https://github.com/dims)) [SIG Auth and Node] +- Kubernetes is now built using Go 1.24.6. ([#133516](https://github.com/kubernetes/kubernetes/pull/133516), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- LeaseLocks could now have custom labels that different holders would overwrite when they became the holder of the underlying lease. ([#131632](https://github.com/kubernetes/kubernetes/pull/131632), [@DerekFrank](https://github.com/DerekFrank)) +- Memory limits could be decreased with a `NotRequired` resize restart policy. When decreasing memory limits,a best-effort check was performed to prevent limits from decreasing below usage and triggering an OOM-kill. ([#133012](https://github.com/kubernetes/kubernetes/pull/133012), [@tallclair](https://github.com/tallclair)) [SIG Apps, Node and Testing] +- Migrated validation in `CertificateSigningRequest` to use declarative validation. When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. If `DeclarativeValidationTakeover` is enabled, declarative validation becomes the primary source of errors for migrated fields. ([#132361](https://github.com/kubernetes/kubernetes/pull/132361), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth] +- Moved Recover from volume expansion failure to GA. ([#132662](https://github.com/kubernetes/kubernetes/pull/132662), [@gnufied](https://github.com/gnufied)) [SIG Apps, Auth, Node, Storage and Testing] +- Prevented any type of CPU/Memory alignment or hint generation with the Topology Manager from the CPU or Memory Manager when pod-level resources were used in the Pod spec. ([#133279](https://github.com/kubernetes/kubernetes/pull/133279), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] +- Promoted Linux node pressure stall information (PSI) metrics to beta. ([#132822](https://github.com/kubernetes/kubernetes/pull/132822), [@roycaihw](https://github.com/roycaihw)) [SIG Node] +- Promoted Windows graceful shutdown feature from alpha to beta. ([#133062](https://github.com/kubernetes/kubernetes/pull/133062), [@zylxjtu](https://github.com/zylxjtu)) +- Promoted the Ordered Namespace Deletion test to Conformance. ([#132219](https://github.com/kubernetes/kubernetes/pull/132219), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture and Testing] +- Promoted the `KubeletPodResourcesDynamicResources` and `KubeletPodResourcesGet` feature gates to beta, which were enabled by default if DRA went to GA. ([#132940](https://github.com/kubernetes/kubernetes/pull/132940), [@guptaNswati](https://github.com/guptaNswati)) +- Promoted the feature `OrderedNamespaceDeletion` to GA. ([#131514](https://github.com/kubernetes/kubernetes/pull/131514), [@cici37](https://github.com/cici37)) [SIG API Machinery and Testing] +- Removed `endpoint-controller` and `workload-leader-election` FlowSchemas from the default APF configuration. + + Action required: workloads using leader election were required to migrate their lock type from `configmapsleases` or `endpointsleases` to `leases`. ([#131215](https://github.com/kubernetes/kubernetes/pull/131215), [@tosi3k](https://github.com/tosi3k)) [SIG API Machinery, Apps, Network, Scalability and Scheduling] +- Started recording metrics for in-place Pod resize. ([#132903](https://github.com/kubernetes/kubernetes/pull/132903), [@natasha41575](https://github.com/natasha41575)) +- The Kubernetes API server merged selectors built from `matchLabelKeys` into the `labelSelector` of `topologySpreadConstraints`, aligning Pod Topology Spread behavior with Inter-Pod Affinity. To prevent breaking existing Pods using `matchLabelKeys`, this scheduler behavior was preserved until v1.34. Upgrades from v1.32 to v1.34 should be done incrementally (v1.32 → v1.33 → v1.34), ensuring Pods created at v1.32 with `matchLabelKeys` are scheduled before reaching v1.34. Controllers relying on `matchLabelKeys` no longer need to handle them directly and can use `labelSelector` instead. The new feature gate `MatchLabelKeysInPodTopologySpreadSelectorMerge`, enabled by default, controls this behavior. ([#129874](https://github.com/kubernetes/kubernetes/pull/129874), [@mochizuki875](https://github.com/mochizuki875)) [SIG Apps, Node, Scheduling and Testing] +- The PreferSameTrafficDistribution feature gate is now enabled by default, + enabling the `PreferSameNode` traffic distribution value for Services. ([#132127](https://github.com/kubernetes/kubernetes/pull/132127), [@danwinship](https://github.com/danwinship)) [SIG Apps and Network] +- The new `dra_resource_claims_in_use` kubelet metrics reported active `ResourceClaims`, overall and by driver. ([#131641](https://github.com/kubernetes/kubernetes/pull/131641), [@pohly](https://github.com/pohly)) [SIG Architecture, Instrumentation, Node and Testing] +- The scheduler no longer cleared the `nominatedNodeName` field for Pods. External components, such as Cluster Autoscaler and Karpenter, were responsible for managing this field when needed. ([#133276](https://github.com/kubernetes/kubernetes/pull/133276), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing] +- The validation in the CertificateSigningRequest `/status` and `/approval` subresources was migrated to declarative validation. + If the `DeclarativeValidation` feature gate was enabled, mismatches with existing validation are reported via metrics. + If the `DeclarativeValidationTakeover` feature gate was enabled, declarative validation was the primary source of errors for migrated fields. ([#133068](https://github.com/kubernetes/kubernetes/pull/133068), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth] +- Updated `kube-controller-manager` events to support contextual logging. ([#128351](https://github.com/kubernetes/kubernetes/pull/128351), [@mengjiao-liu](https://github.com/mengjiao-liu)) +- Updated pause version to `registry.k8s.io/pause:3.10.1`. ([#130713](https://github.com/kubernetes/kubernetes/pull/130713), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG Cluster Lifecycle, Node, Scheduling and Testing] +- Updated the Kubernetes build environment to use Go `1.24.5`. ([#132896](https://github.com/kubernetes/kubernetes/pull/132896), [@cpanato](https://github.com/cpanato)) [SIG Release and Testing] +- Updated the built in `system:monitoring` role with permission to access kubelet metrics endpoints. ([#132178](https://github.com/kubernetes/kubernetes/pull/132178), [@gavinkflam](https://github.com/gavinkflam)) [SIG Auth] +- When `RelaxedServiceNameValidation` feature gate is enabled, the + names of new Services names are validation with `NameIsDNSLabel()`, + relaxing the pre-existing validation. ([#132339](https://github.com/kubernetes/kubernetes/pull/132339), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Apps, Network and Testing] +- When proxying to an aggregated API server, kube-apiserver used the + `EndpointSlices` of the `service` indicated by the `APIServer`, rather than + using Endpoints. + + If you were using the aggregated API server feature, and you were writing out + the endpoints for it by hand (rather than letting kube-controller-manager + generate `Endpoints` and `EndpointSlices` for it automatically based on the + Service definition), then you should write out an EndpointSlice object rather + than (or in addition to) an `Endpoints` object. ([#129837](https://github.com/kubernetes/kubernetes/pull/129837), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Network and Testing] +- Whenever a pod was successfully bound to a node, the kube-apiserver cleared the pod's `nominatedNodeName` field. This prevented stale information from affecting external scheduling components. ([#132443](https://github.com/kubernetes/kubernetes/pull/132443), [@utam0k](https://github.com/utam0k)) [SIG Apps, Node, Scheduling and Testing] +- `DRAPrioritizedList` was turned on by default which made it possible to provide a prioritized list of subrequests in a `ResourceClaim`. ([#132767](https://github.com/kubernetes/kubernetes/pull/132767), [@mortent](https://github.com/mortent)) [SIG Node, Scheduling and Testing] +- `PodLifecycleSleepAction` was graduated to GA. ([#132595](https://github.com/kubernetes/kubernetes/pull/132595), [@AxeZhan](https://github.com/AxeZhan)) [SIG Apps, Node and Testing] +- `kube-controller-manager` reported the following metrics for `ResourceClaims` with admin access: + - `resourceclaim_controller_creates_total` count metric with labels `admin_access` (true or false), `status` (failure or success) to track the total number of `ResourceClaims` creation requests + - `resourceclaim_controller_resource_claims` gauge metric with labels `admin_access` (true or false), `allocated` (true or false) to track the current number of `ResourceClaims`. ([#132800](https://github.com/kubernetes/kubernetes/pull/132800), [@ritazh](https://github.com/ritazh)) [SIG Apps, Auth, Instrumentation and Node] +- `kubeadm`: Started using a named port `probe-port` for all probes in the static pod manifests generated by `kubeadm` for the `kube-apiserver`, `kube-controller-manager`, `kube-scheduler`, and related components. If probe port values were previously patched using `kubeadm` patches, the corresponding named port under the container’s `ports` field must now also be patched. ([#132776](https://github.com/kubernetes/kubernetes/pull/132776), [@neolit123](https://github.com/neolit123)) + +### Failing Test + +- DRA driver helper: Fixed handling of apiserver restart when running on a Kubernetes version which did not support the `resource.k8s.io` version used by the DRA driver. ([#133076](https://github.com/kubernetes/kubernetes/pull/133076), [@pohly](https://github.com/pohly)) [SIG Node and Testing] +- Fixed APIServerTracing test data race; ~/go/src/k8s.io/kubernetes/test/integration/apiserver/tracing$ go test ./... -race + ok k8s.io/kubernetes/test/integration/apiserver/tracing 68.825s. ([#132336](https://github.com/kubernetes/kubernetes/pull/132336), [@dashpole](https://github.com/dashpole)) [SIG API Machinery and Testing] +- Fixed e2e test "[Driver: csi-hostpath] [Testpattern: Dynamic PV (filesystem volmode)] volumeLimits should support volume limits" not to leak Pods and namespaces. ([#132674](https://github.com/kubernetes/kubernetes/pull/132674), [@jsafrane](https://github.com/jsafrane)) [SIG Storage and Testing] +- Kube-apiserver: The --service-account-signing-endpoint flag now only validates the format of abstract socket names ([#131509](https://github.com/kubernetes/kubernetes/pull/131509), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Auth] + +### Documentation + +- Document how to contribute to staging repositories by redirecting to the main kubernetes repo ([#133570](https://github.com/kubernetes/kubernetes/pull/133570), [@BenTheElder](https://github.com/BenTheElder)) + +### Bug or Regression + +- Added `podSpec` validation for creating `StatefulSet`. ([#131790](https://github.com/kubernetes/kubernetes/pull/131790), [@chengjoey](https://github.com/chengjoey)) [SIG Apps, Etcd and Testing] +- Checked for newer resize fields when deciding the recovery feature status in the kubelet. ([#131418](https://github.com/kubernetes/kubernetes/pull/131418), [@gnufied](https://github.com/gnufied)) +- Clarified help message of `--ignore-not-found` flag. Supported `--ignore-not-found` in `watch` operation. ([#132542](https://github.com/kubernetes/kubernetes/pull/132542), [@gemmahou](https://github.com/gemmahou)) +- DRA drivers: the resource slice controller sometimes didn't react properly when kubelet or someone else deleted a recently created ResourceSlice. It incorrectly assumed that the ResourceSlice still exists and didn't recreate it. ([#132683](https://github.com/kubernetes/kubernetes/pull/132683), [@pohly](https://github.com/pohly)) [SIG Apps, Node and Testing] +- DRA: Ensured that ResourceClaims requesting a fixed number of devices with `adminAccess` were no longer allocated the same device multiple times. ([#131299](https://github.com/kubernetes/kubernetes/pull/131299), [@nojnhuh](https://github.com/nojnhuh)) +- DRA: fixed a data race which, depending on timing, could have led to broken allocation of devices backing extended resources ([#133570](https://github.com/kubernetes/kubernetes/pull/133570), [@pohly](https://github.com/pohly)) [SIG Node] +- Disabled reading of disk geometry before calling expansion for ext and xfs filesystems. ([#131568](https://github.com/kubernetes/kubernetes/pull/131568), [@gnufied](https://github.com/gnufied)) +- Ensured objects are transformed prior to storage in `SharedInformers` if a transformer is provided and `WatchList` is activated. ([#131799](https://github.com/kubernetes/kubernetes/pull/131799), [@valerian-roche](https://github.com/valerian-roche)) +- Fixed API response for `StorageClassList` queries to return a graceful error message, if the provided `ResourceVersion` is too large. ([#132374](https://github.com/kubernetes/kubernetes/pull/132374), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Etcd] +- Fixed ReplicationController reconciliation when the `DeploymentReplicaSetTerminatingReplicas` feature gate was enabled. ([#131822](https://github.com/kubernetes/kubernetes/pull/131822), [@atiratree](https://github.com/atiratree)) +- Fixed a bug in CEL's common.UnstructuredToVal where `==` evaluates to false for identical objects when a field is present but the value is null. This bug does not impact the Kubernetes API. ([#131559](https://github.com/kubernetes/kubernetes/pull/131559), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery] +- Fixed a bug in the Job controller that could result in creating unnecessary Pods for Jobs already marked as finished (either successful or failed). ([#130333](https://github.com/kubernetes/kubernetes/pull/130333), [@kmala](https://github.com/kmala)) [SIG Apps and Testing] +- Fixed a bug that caused an unexpected delay in creating Pods for newly created Jobs. ([#132109](https://github.com/kubernetes/kubernetes/pull/132109), [@linxiulei](https://github.com/linxiulei)) [SIG Apps and Testing] +- Fixed a bug that caused duplicate validation when updating a ReplicaSet. ([#131873](https://github.com/kubernetes/kubernetes/pull/131873), [@gavinkflam](https://github.com/gavinkflam)) [SIG Apps] +- Fixed a bug that fails to create a replica set when a deployment name is too long. ([#132560](https://github.com/kubernetes/kubernetes/pull/132560), [@hdp617](https://github.com/hdp617)) [SIG API Machinery and Apps] +- Fixed a bug that the async preemption feature keeps preemptor pods unnecessarily in the queue. ([#133167](https://github.com/kubernetes/kubernetes/pull/133167), [@sanposhiho](https://github.com/sanposhiho)) [SIG Scheduling] +- Fixed a panic issue related to kubectl revision history kubernetes/kubectl#1724 ([#130503](https://github.com/kubernetes/kubernetes/pull/130503), [@tahacodes](https://github.com/tahacodes)) [SIG CLI] +- Fixed a possible deadlock in the watch client that could happen if the watch was not stopped. ([#131266](https://github.com/kubernetes/kubernetes/pull/131266), [@karlkfi](https://github.com/karlkfi)) [SIG API Machinery] +- Fixed a regression in 1.34 release candidates where object storage count metrics could include all instances of all types instead of only the object count for a particular type ([#133604](https://github.com/kubernetes/kubernetes/pull/133604), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd] +- Fixed a regression introduced in 1.33 where some paginated LIST calls fell back to `etcd` instead of being served from cache. ([#132244](https://github.com/kubernetes/kubernetes/pull/132244), [@hakuna-matatah](https://github.com/hakuna-matatah)) +- Fixed an incorrect reference to `JoinConfigurationKind` in the error message when no ResetConfiguration is found during `kubeadm reset` with the `--config` flag. ([#132258](https://github.com/kubernetes/kubernetes/pull/132258), [@J3m3](https://github.com/J3m3)) [SIG Cluster Lifecycle] +- Fixed an issue that allowed Custom Resources to be created using Server-Side Apply even when their `CustomResourceDefinition` was terminating. ([#132467](https://github.com/kubernetes/kubernetes/pull/132467), [@sdowell](https://github.com/sdowell)) +- Fixed an issue where Windows kube-proxy’s `ModifyLoadBalancer` API updates did not match the HNS state in version 15.4. Support for `ModifyLoadBalancer` policy began with Kubernetes 1.31+. ([#131506](https://github.com/kubernetes/kubernetes/pull/131506), [@princepereira](https://github.com/princepereira)) +- Fixed an issue where `insufficientResources` was logged as a pointer during pod preemption, making logs more readable. ([#132183](https://github.com/kubernetes/kubernetes/pull/132183), [@chrisy-x](https://github.com/chrisy-x)) [SIG Node] +- Fixed an issue where the kubelet token cache returned stale tokens when service accounts were recreated with the same name. The cache is now UID-aware. Additionally, the new `TokenRequestServiceAccountUIDValidation` feature gate (Beta, enabled by default) ensures the `TokenRequest` UID matches the service account UID when set. ([#132803](https://github.com/kubernetes/kubernetes/pull/132803), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Node and Testing] +- Fixed bug that prevented the alpha feature `PodTopologyLabelAdmission` from working due to checking for the incorrect label key when copying topology labels. This bug delayed the graduation of the feature to beta by an additional release to allow time for meaningful feedback. ([#132462](https://github.com/kubernetes/kubernetes/pull/132462), [@munnerz](https://github.com/munnerz)) +- Fixed incorrect behavior for AllocationMode: All in ResourceClaim when used in subrequests. ([#131660](https://github.com/kubernetes/kubernetes/pull/131660), [@mortent](https://github.com/mortent)) [SIG Node] +- Fixed misleading response codes in admission control metrics. ([#132165](https://github.com/kubernetes/kubernetes/pull/132165), [@gavinkflam](https://github.com/gavinkflam)) [SIG API Machinery, Architecture and Instrumentation] +- Fixed regression introduced in v1.34.0-alpha.1 where the kube-proxy fails to start on an IP single-stack networking. ([#133695](https://github.com/kubernetes/kubernetes/pull/133695), [@prezha](https://github.com/prezha)) [SIG Network] +- Fixed runtime cost estimation for `x-int-or-string` custom resource schemas with maximum lengths. ([#132837](https://github.com/kubernetes/kubernetes/pull/132837), [@JoelSpeed](https://github.com/JoelSpeed)) +- Fixed the `allocatedResourceStatuses` field name mismatch in PVC status validation. ([#131213](https://github.com/kubernetes/kubernetes/pull/131213), [@carlory](https://github.com/carlory)) +- Fixed the `observedGeneration` field in pod resize conditions to accurately reflect the associated pod generation when both `InPlacePodVerticalScaling` and `PodObservedGenerationTracking` feature gates are enabled. ([#131157](https://github.com/kubernetes/kubernetes/pull/131157), [@natasha41575](https://github.com/natasha41575)) +- Fixed the bug when swap related metrics were not available in `/metrics/resource` endpoint. ([#132065](https://github.com/kubernetes/kubernetes/pull/132065), [@yuanwang04](https://github.com/yuanwang04)) [SIG Node and Testing] +- Fixed the problem of validation error when specifying resource requirements at the container level for a resource not supported at the pod level. It implicitly interpreted the pod-level value as 0. ([#132551](https://github.com/kubernetes/kubernetes/pull/132551), [@chao-liang](https://github.com/chao-liang)) [SIG Apps] +- Fixed validation for Job with `suspend=true`, and `completions=0` to set the Complete condition. ([#132614](https://github.com/kubernetes/kubernetes/pull/132614), [@mimowo](https://github.com/mimowo)) [SIG Apps and Testing] +- HPA status displayed memory metrics using Ki. ([#132351](https://github.com/kubernetes/kubernetes/pull/132351), [@googs1025](https://github.com/googs1025)) [SIG Apps and Autoscaling] +- Improved the error message shown when a Pod using user namespaces was created on a runtime that did not support user namespaces. ([#131623](https://github.com/kubernetes/kubernetes/pull/131623), [@rata](https://github.com/rata)) +- Kube-apiserver: Defaulted empty `spec.jobTemplate.spec.podFailurePolicy.rules[*].onPodConditions[*].status` fields for CronJob objects as documented, avoiding validation failures during write requests. ([#131525](https://github.com/kubernetes/kubernetes/pull/131525), [@carlory](https://github.com/carlory)) +- Kube-apiserver: Fixed OIDC discovery document publishing when external service account token signing was enabled. ([#131493](https://github.com/kubernetes/kubernetes/pull/131493), [@hoskeri](https://github.com/hoskeri)) [SIG API Machinery, Auth and Testing] +- Kube-proxy: Removed the iptables CLI wait interval flag. ([#131961](https://github.com/kubernetes/kubernetes/pull/131961), [@cyclinder](https://github.com/cyclinder)) +- Kube-scheduler: in Kubernetes 1.33, the number of devices that can be allocated per ResourceClaim was accidentally reduced to 16. Now the supported number of devices per ResourceClaim is 32 again. ([#131662](https://github.com/kubernetes/kubernetes/pull/131662), [@mortent](https://github.com/mortent)) [SIG Node] +- Kubeadm: Fixed a bug where the default args for etcd were not correct when a local etcd image was used and the etcd version was less than 3.6.0. ([#133023](https://github.com/kubernetes/kubernetes/pull/133023), [@carlory](https://github.com/carlory)) +- Kubelet: Closed a loophole that allowed static Pods to reference arbitrary ResourceClaims. Even though these Pods failed to run due to a sanity check, such references are now explicitly disallowed. ([#131844](https://github.com/kubernetes/kubernetes/pull/131844), [@pohly](https://github.com/pohly)) [SIG Apps, Auth and Node] +- Kubelet: Fixed a bug that caused an unexpected `NodeResizeError` condition to appear in the PVC status when the CSI driver did not support node volume expansion and the PVC had the `ReadWriteMany` access mode. ([#131495](https://github.com/kubernetes/kubernetes/pull/131495), [@carlory](https://github.com/carlory)) +- Make `podcertificaterequestcleaner` role feature-gated ([#133409](https://github.com/kubernetes/kubernetes/pull/133409), [@carlory](https://github.com/carlory)) [SIG Auth] +- Modified the node-local `podresources` API endpoint to consider only active pods. Since this changes long-standing behavior, the `KubeletPodResourcesListUseActivePods` feature gate (enabled by default) can be disabled to restore the previous behavior. Users encountering regressions are encouraged to file an issue if they rely on the old behavior. ([#132028](https://github.com/kubernetes/kubernetes/pull/132028), [@ffromani](https://github.com/ffromani)) [SIG Node and Testing] +- Pods were not allowed to mix the usage of `user-namespaces` (`hostUsers: false`) and `volumeDevices`. Kubernetes returned an error in this case. ([#132868](https://github.com/kubernetes/kubernetes/pull/132868), [@rata](https://github.com/rata)) +- Reduced the 5s delay before tainting `node.kubernetes.io/unreachable:NoExecute` when a Node became unreachable. ([#120816](https://github.com/kubernetes/kubernetes/pull/120816), [@tnqn](https://github.com/tnqn)) [SIG Apps and Node] +- Removed defunct `make vet` target, please use `make lint` instead. ([#132509](https://github.com/kubernetes/kubernetes/pull/132509), [@yongruilin](https://github.com/yongruilin)) +- Removed the deprecated flag `--wait-interval` for the `ip6tables-legacy-restore` binary. ([#132352](https://github.com/kubernetes/kubernetes/pull/132352), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- ReplicaSets and Deployments should always count `.status.availableReplicas` at the correct time without a delay. This results in faster reconciliation of Deployment conditions and faster, unblocked Deployment rollouts. ([#132121](https://github.com/kubernetes/kubernetes/pull/132121), [@atiratree](https://github.com/atiratree)) [SIG Apps] +- Resolved a bug where DaemonSet updates unnecessarily triggered duplicate validation due to overlapping calls to `ValidateDaemonSet` and ValidateDaemonSetUpdate. This redundancy has been removed to prevent repeated validation runs. ([#132548](https://github.com/kubernetes/kubernetes/pull/132548), [@gavinkflam](https://github.com/gavinkflam)) +- Skipped pod backoff entirely when the `PodMaxBackoffDuration` kube-scheduler option was set to zero and the `SchedulerPopFromBackoffQ` feature gate was enabled. ([#131965](https://github.com/kubernetes/kubernetes/pull/131965), [@macsko](https://github.com/macsko)) +- Stopped expanding PVCs annotated with node-expand-not-required. ([#131907](https://github.com/kubernetes/kubernetes/pull/131907), [@gnufied](https://github.com/gnufied)) [SIG API Machinery, Etcd, Node, Storage and Testing] +- Stopped expanding the volume on the node if controller-side expansion was already completed. ([#131868](https://github.com/kubernetes/kubernetes/pull/131868), [@gnufied](https://github.com/gnufied)) +- Stopped logging error events when waiting for expansion on the kubelet. ([#131408](https://github.com/kubernetes/kubernetes/pull/131408), [@gnufied](https://github.com/gnufied)) +- Stopped removing the CSI JSON file if the volume was already mounted during subsequent errors. ([#131311](https://github.com/kubernetes/kubernetes/pull/131311), [@gnufied](https://github.com/gnufied)) +- The `baseline` and `restricted` pod security admission levels blocked setting the `host` field on probe and lifecycle handlers. ([#125271](https://github.com/kubernetes/kubernetes/pull/125271), [@tssurya](https://github.com/tssurya)) [SIG Auth, Node and Testing] +- The garbage collection controller no longer raced with changes to `ownerReferences` when deleting orphaned objects. ([#132632](https://github.com/kubernetes/kubernetes/pull/132632), [@sdowell](https://github.com/sdowell)) [SIG API Machinery and Apps] +- The shorthand for --output flag in kubectl explain was accidentally deleted, but has been added back. ([#131962](https://github.com/kubernetes/kubernetes/pull/131962), [@superbrothers](https://github.com/superbrothers)) [SIG CLI] +- Updated Windows `kube-proxy` to align with Linux behavior by correctly honoring the port specified in `EndpointSlice` for internal traffic routing. ([#132647](https://github.com/kubernetes/kubernetes/pull/132647), [@princepereira](https://github.com/princepereira)) [SIG Network and Windows] +- Updated `kube-proxy` with `nftables` to reject or drop traffic to services with no endpoints from filter chains at priority 0 (`NF_IP_PRI_FILTER`). ([#132456](https://github.com/kubernetes/kubernetes/pull/132456), [@aroradaman](https://github.com/aroradaman)) +- Updated `kubectl get job` to display the `SuccessCriteriaMet` status for listed jobs. ([#132832](https://github.com/kubernetes/kubernetes/pull/132832), [@Goend](https://github.com/Goend)) [SIG Apps and CLI] +- Updated the HPA controller so that it no longer emitted a `FailedRescale` event if a scale operation initially failed due to a conflict but succeeded after a retry; it now emitted a `SuccessfulRescale` event in this case. A `FailedRescale` event was still emitted if all retries were exhausted. ([#132007](https://github.com/kubernetes/kubernetes/pull/132007), [@AumPatel1](https://github.com/AumPatel1)) [SIG Apps and Autoscaling] +- `Statefulset` respected `minReadySeconds`. ([#130909](https://github.com/kubernetes/kubernetes/pull/130909), [@Edwinhr716](https://github.com/Edwinhr716)) +- `kubectl create|delete|get|replace --raw` commands now honored the server root paths specified in the kubeconfig file. ([#131165](https://github.com/kubernetes/kubernetes/pull/131165), [@liggitt](https://github.com/liggitt)) +- Fixed an issue that caused `kube-apiserver` to panic in 1.34.0-rc.0. ([133412](https://github.com/kubernetes/kubernetes/pull/133412), [@richabanker](https://github.com/richabanker)) [SIG API Machinery and Etcd] + +### Other (Cleanup or Flake) + +- Added a warning to `kubectl attach`, notifying / reminding users that commands and output are available via the `log` subresource of that Pod. ([#127183](https://github.com/kubernetes/kubernetes/pull/127183), [@mochizuki875](https://github.com/mochizuki875)) [SIG Auth, CLI, Node and Security] +- Added support for encoding and decoding types that implement the standard library interfaces `json.Marshaler`, `json.Unmarshaler`, `encoding.TextMarshaler`, or `encoding.TextUnmarshaler` to and from CBOR by transcoding. ([#132935](https://github.com/kubernetes/kubernetes/pull/132935), [@benluddy](https://github.com/benluddy)) +- Bumped kube-dns to v1.26.4. ([#132012](https://github.com/kubernetes/kubernetes/pull/132012), [@pacoxu](https://github.com/pacoxu)) +- Bumped the cel-go dependency to v0.25.0. The changeset is available at: https://github.com/google/cel-go/compare/v0.23.2...v0.25.0. ([#131444](https://github.com/kubernetes/kubernetes/pull/131444), [@erdii](https://github.com/erdii)) [SIG API Machinery, Auth, Cloud Provider and Node] +- By default, binaries like kube-apiserver were built with the `grpcnotrace` tag enabled. Used the `DBG` flag to enable Golang tracing if needed. ([#132210](https://github.com/kubernetes/kubernetes/pull/132210), [@dims](https://github.com/dims)) +- Changed Job controller to use the controller UID index for Pod lookups to improve performance. ([#132305](https://github.com/kubernetes/kubernetes/pull/132305), [@xigang](https://github.com/xigang)) +- Changed apiserver to treat failures decoding a mutating webhook patch as failures to call the webhook so they trigger the webhook failurePolicy and count against metrics like `webhook_fail_open_count` ([#131627](https://github.com/kubernetes/kubernetes/pull/131627), [@dims](https://github.com/dims)) [SIG API Machinery] +- DRA kubelet- Updated logging to use `driverName` instead of `pluginName`, aligning with the rest of the Kubernetes components. ([#132096](https://github.com/kubernetes/kubernetes/pull/132096), [@pohly](https://github.com/pohly)) [SIG Node and Testing] +- DRA kubelet: Simplified recovery from mistakes like scheduling a Pod onto a node where the required driver was not running, as the kubelet no longer unnecessarily blocked Pod deletion. ([#131968](https://github.com/kubernetes/kubernetes/pull/131968), [@pohly](https://github.com/pohly)) [SIG Node and Testing] +- Fixed some missing white spaces in the flag descriptions and logs. ([#131562](https://github.com/kubernetes/kubernetes/pull/131562), [@logica0419](https://github.com/logica0419)) [SIG Network] +- Hack/update-codegen.sh now automatically ensured goimports and protoc. ([#131459](https://github.com/kubernetes/kubernetes/pull/131459), [@BenTheElder](https://github.com/BenTheElder)) +- Increased test coverage for kubelet package to 92.3%. ([#132484](https://github.com/kubernetes/kubernetes/pull/132484), [@ylink-lfs](https://github.com/ylink-lfs)) +- Kube-apiserver: removed the deprecated `apiserver_encryption_config_controller_automatic_reload_success_total` and `apiserver_encryption_config_controller_automatic_reload_failure_total` metrics in favor of `apiserver_encryption_config_controller_automatic_reloads_total`. ([#132238](https://github.com/kubernetes/kubernetes/pull/132238), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] +- Kube-scheduler: Removed the deprecated scheduler_scheduler_cache_size metric in favor of scheduler_cache_size. ([#131425](https://github.com/kubernetes/kubernetes/pull/131425), [@carlory](https://github.com/carlory)) +- Kubeadm: Fixed missing space when printing the warning about pause image mismatch. ([#131563](https://github.com/kubernetes/kubernetes/pull/131563), [@logica0419](https://github.com/logica0419)) +- Kubeadm: Made the coredns deployment manifest use named ports consistently for the liveness and readiness probes. ([#131587](https://github.com/kubernetes/kubernetes/pull/131587), [@neolit123](https://github.com/neolit123)) +- Kubectl interactive delete: treat empty newline input as N ([#132251](https://github.com/kubernetes/kubernetes/pull/132251), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI] +- Masked access to Linux thermal interrupt information exposed via `/proc` and `/sys`. ([#131018](https://github.com/kubernetes/kubernetes/pull/131018), [@saschagrunert](https://github.com/saschagrunert)) +- Migrated Memory Manager to contextual logging. ([#130727](https://github.com/kubernetes/kubernetes/pull/130727), [@swatisehgal](https://github.com/swatisehgal)) +- Migrated `pkg/kubelet/status` to use contextual logging. ([#130852](https://github.com/kubernetes/kubernetes/pull/130852), [@Chulong-Li](https://github.com/Chulong-Li)) +- Migrated `pkg/kubelet/volumemanager` to contextual logging. ([#131306](https://github.com/kubernetes/kubernetes/pull/131306), [@Chulong-Li](https://github.com/Chulong-Li)) +- Migrated `pkg/kubelet/winstats` to contextual logging. ([#131001](https://github.com/kubernetes/kubernetes/pull/131001), [@Chulong-Li](https://github.com/Chulong-Li)) +- Promoted the `SeparateTaintEvictionController` feature gate to GA; it is now enabled unconditionally. ([#122634](https://github.com/kubernetes/kubernetes/pull/122634), [@carlory](https://github.com/carlory)) [SIG API Machinery, Apps, Node and Testing] +- Promoted the `agnhost` image to v2.56 for Kubernetes e2e testing; verified digest: sha256:352a050380078cb2a1c246357a0dfa2fcf243ee416b92ff28b44a01d1b4b0294. ([#132117](https://github.com/kubernetes/kubernetes/pull/132117), [@yashsingh74](https://github.com/yashsingh74)) [SIG Network and Testing] +- Promoted the `apiserver_authentication_config_controller_automatic_reloads_total` and `apiserver_authentication_config_controller_automatic_reload_last_timestamp_seconds` metrics to BETA. ([#131798](https://github.com/kubernetes/kubernetes/pull/131798), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Instrumentation] +- Promoted the `apiserver_authorization_config_controller_automatic_reloads_total` and `apiserver_authorization_config_controller_automatic_reload_last_timestamp_seconds` metrics to BETA. ([#131768](https://github.com/kubernetes/kubernetes/pull/131768), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Instrumentation] +- Promoted two `EndpointSlice` tests to conformance to ensure that service proxy implementations rely on `EndpointSlices` instead of `Endpoints`. ([#132019](https://github.com/kubernetes/kubernetes/pull/132019), [@danwinship](https://github.com/danwinship)) [SIG Architecture, Network and Testing] +- Reduced excessive logging in the Volume Binding scheduler plugin by lowering the verbosity of high-frequency messages from `V(4)` to `V(5)`. ([#132840](https://github.com/kubernetes/kubernetes/pull/132840), [@ppmechlinski](https://github.com/ppmechlinski)) [SIG Autoscaling, Scheduling and Storage] +- Removed deprecated gogo protocol definitions from `k8s.io/externaljwt` in favor of `google.golang.org/protobuf`. ([#132772](https://github.com/kubernetes/kubernetes/pull/132772), [@saschagrunert](https://github.com/saschagrunert)) [SIG Auth] +- Removed deprecated gogo protocol definitions from `k8s.io/kms/apis` in favor of `google.golang.org/protobuf`. ([#132833](https://github.com/kubernetes/kubernetes/pull/132833), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery, Auth and Testing] +- Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/deviceplugin` in favor of `google.golang.org/protobuf`. ([#133028](https://github.com/kubernetes/kubernetes/pull/133028), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing] +- Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/podresources` in favor of `google.golang.org/protobuf`. ([#133027](https://github.com/kubernetes/kubernetes/pull/133027), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node and Testing] +- Removed general available feature-gate `DevicePluginCDIDevices`. ([#132083](https://github.com/kubernetes/kubernetes/pull/132083), [@carlory](https://github.com/carlory)) [SIG Node and Testing] +- Removed generally available feature-gate `PodDisruptionConditions`. ([#129501](https://github.com/kubernetes/kubernetes/pull/129501), [@carlory](https://github.com/carlory)) [SIG Apps] +- Removed support for API streaming from the REST client. ([#132285](https://github.com/kubernetes/kubernetes/pull/132285), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Removed support for API streaming from the `List()` method of the typed client. ([#132257](https://github.com/kubernetes/kubernetes/pull/132257), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] +- Removed support for API streaming from the dynamic client’s `List() method`. ([#132229](https://github.com/kubernetes/kubernetes/pull/132229), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery, CLI and Testing] +- Removed support for API streaming from the metadata client’s `List() method`. ([#132149](https://github.com/kubernetes/kubernetes/pull/132149), [@p0lyn0mial](https://github.com/p0lyn0mial)) [SIG API Machinery and Testing] +- Removed the `kubernetes.io/initial-events-list-blueprint` annotation from the synthetic "Bookmark" event in watch stream requests. ([#132326](https://github.com/kubernetes/kubernetes/pull/132326), [@p0lyn0mial](https://github.com/p0lyn0mial)) +- Removed the deprecated `--register-schedulable` command line argument from the kubelet. ([#122384](https://github.com/kubernetes/kubernetes/pull/122384), [@carlory](https://github.com/carlory)) [SIG Cloud Provider, Node and Scalability] +- Replaced `toPtr` helper functions with the "k8s.io/utils/ptr" implementations. ([#132806](https://github.com/kubernetes/kubernetes/pull/132806), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Apps, Testing and Windows] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e and ./test/utils. ([#132763](https://github.com/kubernetes/kubernetes/pull/132763), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Autoscaling and Testing] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e. ([#132764](https://github.com/kubernetes/kubernetes/pull/132764), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Auth, Network, Node, Storage and Testing] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/e2e. ([#132765](https://github.com/kubernetes/kubernetes/pull/132765), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Apps, CLI and Testing] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for ./test/integration. ([#132762](https://github.com/kubernetes/kubernetes/pull/132762), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions apiservers validation tests. ([#132726](https://github.com/kubernetes/kubernetes/pull/132726), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions-apiserver pkg/controller. ([#132724](https://github.com/kubernetes/kubernetes/pull/132724), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for apiextensions-apiserver pkg/registry. ([#132725](https://github.com/kubernetes/kubernetes/pull/132725), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/apis (1/2). ([#132778](https://github.com/kubernetes/kubernetes/pull/132778), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Apps and Network] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/apis (2/2). ([#132779](https://github.com/kubernetes/kubernetes/pull/132779), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Apps, Auth and Storage] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/controller (1/2). ([#132781](https://github.com/kubernetes/kubernetes/pull/132781), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Apps and Network] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pkg/controller (2/2). ([#132784](https://github.com/kubernetes/kubernetes/pull/132784), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery, Apps, Network, Node and Storage] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for pod-security-admission tests. ([#132741](https://github.com/kubernetes/kubernetes/pull/132741), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiextensions-apiservers integration tests. ([#132721](https://github.com/kubernetes/kubernetes/pull/132721), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the apiserver (2/2). ([#132752](https://github.com/kubernetes/kubernetes/pull/132752), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the cli-runtime. ([#132750](https://github.com/kubernetes/kubernetes/pull/132750), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG CLI and Release] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the cloud-provider. ([#132720](https://github.com/kubernetes/kubernetes/pull/132720), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Cloud Provider and Network] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the components-helper of the apimachinery. ([#132413](https://github.com/kubernetes/kubernetes/pull/132413), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the controller-manager. ([#132753](https://github.com/kubernetes/kubernetes/pull/132753), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Cloud Provider] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the csr. ([#132699](https://github.com/kubernetes/kubernetes/pull/132699), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the e2e_node. ([#132755](https://github.com/kubernetes/kubernetes/pull/132755), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Node and Testing] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the kubeapiserver. ([#132529](https://github.com/kubernetes/kubernetes/pull/132529), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Architecture] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pkg/security and plugin/pkg. ([#132777](https://github.com/kubernetes/kubernetes/pull/132777), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG Auth, Node and Release] +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pod-security-admission admissiontests. ([#132742](https://github.com/kubernetes/kubernetes/pull/132742), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the pod-security-admission policy. ([#132743](https://github.com/kubernetes/kubernetes/pull/132743), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Replaced deprecated package `k8s.io/utils/pointer` with `k8s.io/utils/ptr` for the reflector. ([#132698](https://github.com/kubernetes/kubernetes/pull/132698), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Replaced timer ptr helper function with the `k8s.io/utils/ptr` implementations. ([#133030](https://github.com/kubernetes/kubernetes/pull/133030), [@PatrickLaabs](https://github.com/PatrickLaabs)) [SIG API Machinery and Auth] +- The deprecated `LegacySidecarContainers` feature gate was completely removed. ([#131463](https://github.com/kubernetes/kubernetes/pull/131463), [@gjkim42](https://github.com/gjkim42)) [SIG Node and Testing] +- Types: Code and Status moved from pkg/scheduler/framework to staging repo. + Users should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`. ([#132087](https://github.com/kubernetes/kubernetes/pull/132087), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing] +- Types: CycleState, StateData, StateKey and ErrNotFound moved from pkg/scheduler/framework to k8s.io/kube-scheduler/framework. + Type CycleState that was passed to each plugin in scheduler framework was changed to the new interface CycleState (in k8s.io/kube-scheduler/framework). ([#131887](https://github.com/kubernetes/kubernetes/pull/131887), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing] +- Types: `ClusterEvent`, `ActionType`, `EventResource`, `ClusterEventWithHint`, `QueueingHint` and `QueueingHintFn` moved from `pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework`. ([#132190](https://github.com/kubernetes/kubernetes/pull/132190), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing] +- Types: `NodeInfo`, `PodInfo`, `QueuedPodInfo`, `PodResource`, `AffinityTerm`, `WeightedAffinityTerm`, `Resource`, `ImageStateSummary`, `ProtocolPort` and `HostPortInfo` were moved from `pkg/scheduler/framework` to staging repo. + Users should update import path for these types from `k8s.io/kubernetes/pkg/scheduler/framework` to `k8s.io/kube-scheduler/framework` and update use of fields (to use getter/setter functions instead) where needed. ([#132457](https://github.com/kubernetes/kubernetes/pull/132457), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Scheduling, Storage and Testing] +- Updated CNI plugins to v1.7.1 ([#131602](https://github.com/kubernetes/kubernetes/pull/131602), [@adrianmoisey](https://github.com/adrianmoisey)) [SIG Cloud Provider, Node and Testing] +- Updated `conntrack` reconciler to consider a Service’s target port during cleanup of stale flow entries. ([#130542](https://github.com/kubernetes/kubernetes/pull/130542), [@aroradaman](https://github.com/aroradaman)) +- Updated `kubeadm` to use the `InitialCorruptCheck=true` etcd feature gate instead of the deprecated `--experimental-initial-corrupt-check` flag. Also replaced the use of `--experimental-watch-progress-notify-interval` with its graduated counterpart `--watch-progress-notify-interval`. ([#132838](https://github.com/kubernetes/kubernetes/pull/132838), [@AwesomePatrol](https://github.com/AwesomePatrol)) +- Updated cri-tools to v1.33.0. ([#131406](https://github.com/kubernetes/kubernetes/pull/131406), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider] +- Updated etcd version to v3.6.1. ([#132284](https://github.com/kubernetes/kubernetes/pull/132284), [@ArkaSaha30](https://github.com/ArkaSaha30)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing] +- Updated the etcd client library to v3.6.4. ([#133226](https://github.com/kubernetes/kubernetes/pull/133226), [@ivanvc](https://github.com/ivanvc)) [SIG API Machinery, Auth, Cloud Provider and Node] +- Upgraded CoreDNS to v1.12.1. ([#131151](https://github.com/kubernetes/kubernetes/pull/131151), [@yashsingh74](https://github.com/yashsingh74)) [SIG Cloud Provider and Cluster Lifecycle] +- Upgraded functionality of `kubectl kustomize` as described at https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv5.7.0. ([#132593](https://github.com/kubernetes/kubernetes/pull/132593), [@koba1t](https://github.com/koba1t)) - Validated APIVersion fields of the `HorizontalPodAutoscaler` to ensure that API objects were created and functioned properly. ([#132537](https://github.com/kubernetes/kubernetes/pull/132537), [@lalitc375](https://github.com/lalitc375)) [SIG Etcd and Testing] \ No newline at end of file diff --git a/releases/release-1.34/release-notes/sessions/maps-1750758381.json b/releases/release-1.34/release-notes/sessions/maps-1750758381.json index 4302ef6145a..535a5f83eb2 100644 --- a/releases/release-1.34/release-notes/sessions/maps-1750758381.json +++ b/releases/release-1.34/release-notes/sessions/maps-1750758381.json @@ -1,455 +1,455 @@ -{ - "mail": "urvashichoubey0121@gmail.com", - "name": "Urvashi0109", - "date": 1750758381, - "prs": [ - { - "nr": 131981, - "hash": "d3b0080a3a8503abdc9115c49a78b87970cba45e" - }, - { - "nr": 132040, - "hash": "85c3d1e1ae769978d0b66c4b4c27f83d1a9cde0d" - }, - { - "nr": 127365, - "hash": "fbae49fab75c5387fe39428019163dbc8842152a" - }, - { - "nr": 128748, - "hash": "a118b36fcdf6a9a093ee3c65a1a67e31a6dc9138" - }, - { - "nr": 131586, - "hash": "994d9657e1f1ebb3572ea63d9c4944d76d492162" - }, - { - "nr": 131822, - "hash": "dc3b8d4ea1b17348924ecdfa2ec73e59a38e42e1" - }, - { - "nr": 129458, - "hash": "8b20f9d2c1478df03708735a649249694a059a43" - }, - { - "nr": 131501, - "hash": "8d4e0b710c85f5d0b6bf781eee7567bbabb7757a" - }, - { - "nr": 129874, - "hash": "43930b9ebeda2ca019f20f0cd3d1e53de17ff820" - }, - { - "nr": 131568, - "hash": "c5abb671e34cb316130de2afad50c980fc5f8934" - }, - { - "nr": 132096, - "hash": "1a0d4e1e0712807554ccafeffdc117652a2581a7" - }, - { - "nr": 131300, - "hash": "b83f6a63aac5e8c696af6743d1ee9e01390febd2" - }, - { - "nr": 131311, - "hash": "755ae0e63950e2900296345ff2e1af5d965c5b0e" - }, - { - "nr": 130852, - "hash": "f2839d53aa4e51f151da21165e31efb2ec499762" - }, - { - "nr": 132238, - "hash": "c4a094e237e59a11448736a9204f9af3e5239e9a" - }, - { - "nr": 131514, - "hash": "60184ebe89ba94418c89c3478d226eadc9313148" - }, - { - "nr": 131818, - "hash": "aa5d21c6c1bb019491039fd2376ed4c62525c544" - }, - { - "nr": 131265, - "hash": "a077f8aaf643b6b1f009733267eb2b2566ef770c" - }, - { - "nr": 130994, - "hash": "3c57b89a1e8079b76aeec93fcf43c080e426fd10" - }, - { - "nr": 132183, - "hash": "e70bea92e272c0f02febb00529bea81ca9a2f601" - }, - { - "nr": 131627, - "hash": "c8b4219421fa47bb0776e22244768136d4fdb38a" - }, - { - "nr": 130989, - "hash": "78e42f6b702ed65e3415560b07b3ba205251cca7" - }, - { - "nr": 131907, - "hash": "9a97f4c8876d4a373eab7469553d46c6c147795b" - }, - { - "nr": 120816, - "hash": "580f504e40d5c95450193103360e34084050b69e" - }, - { - "nr": 131845, - "hash": "268215f524727aa5a210cf47b538835d8c070086" - }, - { - "nr": 132165, - "hash": "2d6df68f54bdd7118490a6bb9850785e18f17a83" - }, - { - "nr": 131916, - "hash": "91a3639900c07cb95c506c99ffd71118cd6c6a3b" - }, - { - "nr": 131996, - "hash": "7f7a6c53e848af0ae196854623138e576c79a65a" - }, - { - "nr": 131562, - "hash": "3a5f52f5838517b4b381f30f9f69b1c7017246d4" - }, - { - "nr": 131085, - "hash": "1c414e952f84d4d57b3634d62ef64bcc9526be79" - }, - { - "nr": 131418, - "hash": "778f85081f15c3a44ed62c32fe31f71dcd64a0fa" - }, - { - "nr": 132012, - "hash": "0d8321dd58964e74652c969123861a450ceb7ccc" - }, - { - "nr": 131215, - "hash": "cd9735be508a3c59b4307c8297b41434476d6fc7" - }, - { - "nr": 132127, - "hash": "59a322aa57b50ea3f616a57df0119996c20c2d76" - }, - { - "nr": 132034, - "hash": "1bf29907e7eb3e568fb6a76ead5193f6fb0a21a2" - }, - { - "nr": 131887, - "hash": "d944e26e1ac921a46e05374ecbae3df27ebbec8a" - }, - { - "nr": 131165, - "hash": "d9383076554991af204efef1613870c67748c40f" - }, - { - "nr": 128351, - "hash": "a72966c96d768c644e0b7fe553082710a6f784b5" - }, - { - "nr": 130720, - "hash": "39d77d023383d9d8090b14c5fa32eaffc877e7b6" - }, - { - "nr": 130782, - "hash": "97fb9a3ee33301b7e5d61a7d1ca1de88fd989dfd" - }, - { - "nr": 129501, - "hash": "3c38f44726a41d78d0e4f4436c26ee93d3630e73" - }, - { - "nr": 131961, - "hash": "f6bcb6614c66b2a4467023637378eca988252784" - }, - { - "nr": 131741, - "hash": "bd9cb0789cdc246974a5ac6a58b41446ea5fd2e4" - }, - { - "nr": 131406, - "hash": "fb935dbadd62297a2f13e8f48329417a30405c98" - }, - { - "nr": 132257, - "hash": "c9056a7a5b11918bb2bbb90639918f68f6b2315e" - }, - { - "nr": 132080, - "hash": "4442970df988b58f2a062937ee975d290de48840" - }, - { - "nr": 131677, - "hash": "1020831f9ee933a383f208b89ada4525917fe782" - }, - { - "nr": 127667, - "hash": "6d60faa177e0fcdfbd078624244c8b7d3dac4456" - }, - { - "nr": 131318, - "hash": "ff266b80e682cc31075ad23f86e463ff78189eba" - }, - { - "nr": 131563, - "hash": "d7f70fdd9b4307b7f6f9a57cd0dd3cfdbfd8f7e0" - }, - { - "nr": 131664, - "hash": "b4c18f407d6c66a722fd04dc6fb2f477b9491e2e" - }, - { - "nr": 131574, - "hash": "63734feeb6bb604d50b001b641c367e65c010ed9" - }, - { - "nr": 131491, - "hash": "eaeadb4fda66ca528f76a2170b473b730a1cdde4" - }, - { - "nr": 131408, - "hash": "237b2981fe280e63a1baec081e494c7f49c7490d" - }, - { - "nr": 130503, - "hash": "b3b896159fe1db26f8d7025b6b46f58767d93377" - }, - { - "nr": 132007, - "hash": "1fb738c70b93e39647c636a362c595e4bbd86e7c" - }, - { - "nr": 132222, - "hash": "d9ad44080b5104ea83292c39db65abee80000ad7" - }, - { - "nr": 132210, - "hash": "d20362e11bc503f14a38b13b2f26d2206b5da12a" - }, - { - "nr": 131919, - "hash": "bed9e631e88369c5d876e99b043433096b7a1030" - }, - { - "nr": 132236, - "hash": "e707a19fff4b64c9f1bf3de6f382cf6795227518" - }, - { - "nr": 131934, - "hash": "d030ff32b92d9a366202580ac61ee231a75764cb" - }, - { - "nr": 131299, - "hash": "4b305dee266fe09dcb5bd454b6ee01de2b2dc32a" - }, - { - "nr": 131868, - "hash": "63eb7b44c241861e1fa163ed14637b9cf16dade9" - }, - { - "nr": 131647, - "hash": "68f838ecf7f1c7b7a60a5169072aaf8677bd1cd3" - }, - { - "nr": 131506, - "hash": "96257090e78ac2e78eb13411e989782c8d4546f1" - }, - { - "nr": 132229, - "hash": "fae4dc3100490a0b5454457bf50126126eca6a34" - }, - { - "nr": 132178, - "hash": "543a7c41119131af05f911a25248cdfd4fecdc8f" - }, - { - "nr": 131979, - "hash": "842fb87a4976b6e279c7549c4c45a99fca14ec7f" - }, - { - "nr": 131525, - "hash": "f3b8859966ebbea7e4096485046b8854a41b26fb" - }, - { - "nr": 130333, - "hash": "e95ca48d4f3f76943e3b88c758b10219e0bf6baf" - }, - { - "nr": 131266, - "hash": "ec248f757165d1ad348b347ec5f130454b9b9fbe" - }, - { - "nr": 132251, - "hash": "01a085fef0db0f2fa870f38cd0a7a7337313259c" - }, - { - "nr": 131973, - "hash": "4deff5df8f09b5462ae0c17918da6b858559ab30" - }, - { - "nr": 131587, - "hash": "32510ef616532f1c2194ab8c11a897347749b64e" - }, - { - "nr": 131151, - "hash": "350fd26ce48049051a985132c3c0abb15cf01f15" - }, - { - "nr": 131654, - "hash": "9480cbb043fb3bfedb493e99fc406d1d61a3a74d" - }, - { - "nr": 122634, - "hash": "1a2e59683f605dbf6e8eebdb37cc739c7f7c0137" - }, - { - "nr": 131662, - "hash": "3d095e0e13afd77374130198539d6de662fb31ed" - }, - { - "nr": 132000, - "hash": "bf0d88d6015b75ea0d5cb153a9ca5d5fb18516cc" - }, - { - "nr": 132036, - "hash": "f0beb570a6e790adfcc9cf3cdb9af516b2e857d0" - }, - { - "nr": 131844, - "hash": "c0cd9d57243054696fbeb886c77b455ac920cf9a" - }, - { - "nr": 131623, - "hash": "ba007c76ef909b35f8e37a2889f7d1d3839d5a81" - }, - { - "nr": 131768, - "hash": "7f5a3cbebce12b61be47e822326a54dcdfb4bc4b" - }, - { - "nr": 131842, - "hash": "79a1ea1f70bcd917015fac3a6eb2b36fbe5ea791" - }, - { - "nr": 131752, - "hash": "ec3b6ddafb1279955c8812f77782ee8e716ba6a7" - }, - { - "nr": 131425, - "hash": "072d8337b2733e645320cf5241bad54010e7791f" - }, - { - "nr": 132285, - "hash": "b63d1892c78ebed516e720a4fd95e8563465f838" - }, - { - "nr": 131873, - "hash": "373ca7e553f02eb6d4c454babe6a7cac70ecf018" - }, - { - "nr": 131658, - "hash": "b612fb59d35de76e492890d2d07d57bcd103f8fc" - }, - { - "nr": 131965, - "hash": "f8442a8d4667d9f1b5318969468d37e41d6aaed2" - }, - { - "nr": 132149, - "hash": "38e7b985611487d5d50580cc684e9a62facd962f" - }, - { - "nr": 131559, - "hash": "448df64de3a121afa86c4a1708bff64cee10f9c2" - }, - { - "nr": 131509, - "hash": "40b39e398b9ca83f73f9aa39f0e1729a2003dd69" - }, - { - "nr": 131660, - "hash": "9c174cd2e417917b0bcf7388418d54c59ed95f44" - }, - { - "nr": 131213, - "hash": "243b1e1ce3423d7987510d120937ef08bd63b038" - }, - { - "nr": 130987, - "hash": "d5dacd3facd0412339cfb800f423f6bde3105610" - }, - { - "nr": 131602, - "hash": "9be72fd85c479487ee9ff9510822bd2799dd6dbf" - }, - { - "nr": 131495, - "hash": "d67ea6f03a11dc24596ca5c0abfc3d400291e5fc" - }, - { - "nr": 129237, - "hash": "a3d2e9b77aa82d4a57c4c7b0f38659834eb7b351" - }, - { - "nr": 132109, - "hash": "f8eeaf7f40d7e13287558677d6a6ea51573ab801" - }, - { - "nr": 132117, - "hash": "9c2a30abe6f615507889027a4fd5e9f88fe862e9" - }, - { - "nr": 131444, - "hash": "f70531127b3f26f03a38543e8183b0da7c4fe92d" - }, - { - "nr": 131632, - "hash": "29a6151804a75b541f35c70efcdddede8d61d2cd" - }, - { - "nr": 131968, - "hash": "5c13364e9fe717b4f12afb40a77932b70148c414" - }, - { - "nr": 130161, - "hash": "5e083d708f1297d7aaa417a5ddfa184d7d859db6" - }, - { - "nr": 131493, - "hash": "81be7056e17c90dd6db3e73219ba52fa5d1d85f1" - }, - { - "nr": 131459, - "hash": "7f4ae7abe12093a80294f02acd4c19eab8793034" - }, - { - "nr": 127183, - "hash": "071145dd0ae92fd10ec06101ea93399a046a300b" - }, - { - "nr": 132258, - "hash": "c954328d4adb77a6d6a524649c3b22ec13706e59" - }, - { - "nr": 132054, - "hash": "f21eb4afda5f99e76fd4fcbc7d3ffc576232fee6" - }, - { - "nr": 131798, - "hash": "89049e28c81f6ef0f3230faad2aea029041ee1dd" - }, - { - "nr": 131962, - "hash": "417f5bbca323d8b342d041a810d03580cc4a1fa5" - } - ] +{ + "mail": "urvashichoubey0121@gmail.com", + "name": "Urvashi0109", + "date": 1750758381, + "prs": [ + { + "nr": 131981, + "hash": "d3b0080a3a8503abdc9115c49a78b87970cba45e" + }, + { + "nr": 132040, + "hash": "85c3d1e1ae769978d0b66c4b4c27f83d1a9cde0d" + }, + { + "nr": 127365, + "hash": "fbae49fab75c5387fe39428019163dbc8842152a" + }, + { + "nr": 128748, + "hash": "a118b36fcdf6a9a093ee3c65a1a67e31a6dc9138" + }, + { + "nr": 131586, + "hash": "994d9657e1f1ebb3572ea63d9c4944d76d492162" + }, + { + "nr": 131822, + "hash": "dc3b8d4ea1b17348924ecdfa2ec73e59a38e42e1" + }, + { + "nr": 129458, + "hash": "8b20f9d2c1478df03708735a649249694a059a43" + }, + { + "nr": 131501, + "hash": "8d4e0b710c85f5d0b6bf781eee7567bbabb7757a" + }, + { + "nr": 129874, + "hash": "43930b9ebeda2ca019f20f0cd3d1e53de17ff820" + }, + { + "nr": 131568, + "hash": "c5abb671e34cb316130de2afad50c980fc5f8934" + }, + { + "nr": 132096, + "hash": "1a0d4e1e0712807554ccafeffdc117652a2581a7" + }, + { + "nr": 131300, + "hash": "b83f6a63aac5e8c696af6743d1ee9e01390febd2" + }, + { + "nr": 131311, + "hash": "755ae0e63950e2900296345ff2e1af5d965c5b0e" + }, + { + "nr": 130852, + "hash": "f2839d53aa4e51f151da21165e31efb2ec499762" + }, + { + "nr": 132238, + "hash": "c4a094e237e59a11448736a9204f9af3e5239e9a" + }, + { + "nr": 131514, + "hash": "60184ebe89ba94418c89c3478d226eadc9313148" + }, + { + "nr": 131818, + "hash": "aa5d21c6c1bb019491039fd2376ed4c62525c544" + }, + { + "nr": 131265, + "hash": "a077f8aaf643b6b1f009733267eb2b2566ef770c" + }, + { + "nr": 130994, + "hash": "3c57b89a1e8079b76aeec93fcf43c080e426fd10" + }, + { + "nr": 132183, + "hash": "e70bea92e272c0f02febb00529bea81ca9a2f601" + }, + { + "nr": 131627, + "hash": "c8b4219421fa47bb0776e22244768136d4fdb38a" + }, + { + "nr": 130989, + "hash": "78e42f6b702ed65e3415560b07b3ba205251cca7" + }, + { + "nr": 131907, + "hash": "9a97f4c8876d4a373eab7469553d46c6c147795b" + }, + { + "nr": 120816, + "hash": "580f504e40d5c95450193103360e34084050b69e" + }, + { + "nr": 131845, + "hash": "268215f524727aa5a210cf47b538835d8c070086" + }, + { + "nr": 132165, + "hash": "2d6df68f54bdd7118490a6bb9850785e18f17a83" + }, + { + "nr": 131916, + "hash": "91a3639900c07cb95c506c99ffd71118cd6c6a3b" + }, + { + "nr": 131996, + "hash": "7f7a6c53e848af0ae196854623138e576c79a65a" + }, + { + "nr": 131562, + "hash": "3a5f52f5838517b4b381f30f9f69b1c7017246d4" + }, + { + "nr": 131085, + "hash": "1c414e952f84d4d57b3634d62ef64bcc9526be79" + }, + { + "nr": 131418, + "hash": "778f85081f15c3a44ed62c32fe31f71dcd64a0fa" + }, + { + "nr": 132012, + "hash": "0d8321dd58964e74652c969123861a450ceb7ccc" + }, + { + "nr": 131215, + "hash": "cd9735be508a3c59b4307c8297b41434476d6fc7" + }, + { + "nr": 132127, + "hash": "59a322aa57b50ea3f616a57df0119996c20c2d76" + }, + { + "nr": 132034, + "hash": "1bf29907e7eb3e568fb6a76ead5193f6fb0a21a2" + }, + { + "nr": 131887, + "hash": "d944e26e1ac921a46e05374ecbae3df27ebbec8a" + }, + { + "nr": 131165, + "hash": "d9383076554991af204efef1613870c67748c40f" + }, + { + "nr": 128351, + "hash": "a72966c96d768c644e0b7fe553082710a6f784b5" + }, + { + "nr": 130720, + "hash": "39d77d023383d9d8090b14c5fa32eaffc877e7b6" + }, + { + "nr": 130782, + "hash": "97fb9a3ee33301b7e5d61a7d1ca1de88fd989dfd" + }, + { + "nr": 129501, + "hash": "3c38f44726a41d78d0e4f4436c26ee93d3630e73" + }, + { + "nr": 131961, + "hash": "f6bcb6614c66b2a4467023637378eca988252784" + }, + { + "nr": 131741, + "hash": "bd9cb0789cdc246974a5ac6a58b41446ea5fd2e4" + }, + { + "nr": 131406, + "hash": "fb935dbadd62297a2f13e8f48329417a30405c98" + }, + { + "nr": 132257, + "hash": "c9056a7a5b11918bb2bbb90639918f68f6b2315e" + }, + { + "nr": 132080, + "hash": "4442970df988b58f2a062937ee975d290de48840" + }, + { + "nr": 131677, + "hash": "1020831f9ee933a383f208b89ada4525917fe782" + }, + { + "nr": 127667, + "hash": "6d60faa177e0fcdfbd078624244c8b7d3dac4456" + }, + { + "nr": 131318, + "hash": "ff266b80e682cc31075ad23f86e463ff78189eba" + }, + { + "nr": 131563, + "hash": "d7f70fdd9b4307b7f6f9a57cd0dd3cfdbfd8f7e0" + }, + { + "nr": 131664, + "hash": "b4c18f407d6c66a722fd04dc6fb2f477b9491e2e" + }, + { + "nr": 131574, + "hash": "63734feeb6bb604d50b001b641c367e65c010ed9" + }, + { + "nr": 131491, + "hash": "eaeadb4fda66ca528f76a2170b473b730a1cdde4" + }, + { + "nr": 131408, + "hash": "237b2981fe280e63a1baec081e494c7f49c7490d" + }, + { + "nr": 130503, + "hash": "b3b896159fe1db26f8d7025b6b46f58767d93377" + }, + { + "nr": 132007, + "hash": "1fb738c70b93e39647c636a362c595e4bbd86e7c" + }, + { + "nr": 132222, + "hash": "d9ad44080b5104ea83292c39db65abee80000ad7" + }, + { + "nr": 132210, + "hash": "d20362e11bc503f14a38b13b2f26d2206b5da12a" + }, + { + "nr": 131919, + "hash": "bed9e631e88369c5d876e99b043433096b7a1030" + }, + { + "nr": 132236, + "hash": "e707a19fff4b64c9f1bf3de6f382cf6795227518" + }, + { + "nr": 131934, + "hash": "d030ff32b92d9a366202580ac61ee231a75764cb" + }, + { + "nr": 131299, + "hash": "4b305dee266fe09dcb5bd454b6ee01de2b2dc32a" + }, + { + "nr": 131868, + "hash": "63eb7b44c241861e1fa163ed14637b9cf16dade9" + }, + { + "nr": 131647, + "hash": "68f838ecf7f1c7b7a60a5169072aaf8677bd1cd3" + }, + { + "nr": 131506, + "hash": "96257090e78ac2e78eb13411e989782c8d4546f1" + }, + { + "nr": 132229, + "hash": "fae4dc3100490a0b5454457bf50126126eca6a34" + }, + { + "nr": 132178, + "hash": "543a7c41119131af05f911a25248cdfd4fecdc8f" + }, + { + "nr": 131979, + "hash": "842fb87a4976b6e279c7549c4c45a99fca14ec7f" + }, + { + "nr": 131525, + "hash": "f3b8859966ebbea7e4096485046b8854a41b26fb" + }, + { + "nr": 130333, + "hash": "e95ca48d4f3f76943e3b88c758b10219e0bf6baf" + }, + { + "nr": 131266, + "hash": "ec248f757165d1ad348b347ec5f130454b9b9fbe" + }, + { + "nr": 132251, + "hash": "01a085fef0db0f2fa870f38cd0a7a7337313259c" + }, + { + "nr": 131973, + "hash": "4deff5df8f09b5462ae0c17918da6b858559ab30" + }, + { + "nr": 131587, + "hash": "32510ef616532f1c2194ab8c11a897347749b64e" + }, + { + "nr": 131151, + "hash": "350fd26ce48049051a985132c3c0abb15cf01f15" + }, + { + "nr": 131654, + "hash": "9480cbb043fb3bfedb493e99fc406d1d61a3a74d" + }, + { + "nr": 122634, + "hash": "1a2e59683f605dbf6e8eebdb37cc739c7f7c0137" + }, + { + "nr": 131662, + "hash": "3d095e0e13afd77374130198539d6de662fb31ed" + }, + { + "nr": 132000, + "hash": "bf0d88d6015b75ea0d5cb153a9ca5d5fb18516cc" + }, + { + "nr": 132036, + "hash": "f0beb570a6e790adfcc9cf3cdb9af516b2e857d0" + }, + { + "nr": 131844, + "hash": "c0cd9d57243054696fbeb886c77b455ac920cf9a" + }, + { + "nr": 131623, + "hash": "ba007c76ef909b35f8e37a2889f7d1d3839d5a81" + }, + { + "nr": 131768, + "hash": "7f5a3cbebce12b61be47e822326a54dcdfb4bc4b" + }, + { + "nr": 131842, + "hash": "79a1ea1f70bcd917015fac3a6eb2b36fbe5ea791" + }, + { + "nr": 131752, + "hash": "ec3b6ddafb1279955c8812f77782ee8e716ba6a7" + }, + { + "nr": 131425, + "hash": "072d8337b2733e645320cf5241bad54010e7791f" + }, + { + "nr": 132285, + "hash": "b63d1892c78ebed516e720a4fd95e8563465f838" + }, + { + "nr": 131873, + "hash": "373ca7e553f02eb6d4c454babe6a7cac70ecf018" + }, + { + "nr": 131658, + "hash": "b612fb59d35de76e492890d2d07d57bcd103f8fc" + }, + { + "nr": 131965, + "hash": "f8442a8d4667d9f1b5318969468d37e41d6aaed2" + }, + { + "nr": 132149, + "hash": "38e7b985611487d5d50580cc684e9a62facd962f" + }, + { + "nr": 131559, + "hash": "448df64de3a121afa86c4a1708bff64cee10f9c2" + }, + { + "nr": 131509, + "hash": "40b39e398b9ca83f73f9aa39f0e1729a2003dd69" + }, + { + "nr": 131660, + "hash": "9c174cd2e417917b0bcf7388418d54c59ed95f44" + }, + { + "nr": 131213, + "hash": "243b1e1ce3423d7987510d120937ef08bd63b038" + }, + { + "nr": 130987, + "hash": "d5dacd3facd0412339cfb800f423f6bde3105610" + }, + { + "nr": 131602, + "hash": "9be72fd85c479487ee9ff9510822bd2799dd6dbf" + }, + { + "nr": 131495, + "hash": "d67ea6f03a11dc24596ca5c0abfc3d400291e5fc" + }, + { + "nr": 129237, + "hash": "a3d2e9b77aa82d4a57c4c7b0f38659834eb7b351" + }, + { + "nr": 132109, + "hash": "f8eeaf7f40d7e13287558677d6a6ea51573ab801" + }, + { + "nr": 132117, + "hash": "9c2a30abe6f615507889027a4fd5e9f88fe862e9" + }, + { + "nr": 131444, + "hash": "f70531127b3f26f03a38543e8183b0da7c4fe92d" + }, + { + "nr": 131632, + "hash": "29a6151804a75b541f35c70efcdddede8d61d2cd" + }, + { + "nr": 131968, + "hash": "5c13364e9fe717b4f12afb40a77932b70148c414" + }, + { + "nr": 130161, + "hash": "5e083d708f1297d7aaa417a5ddfa184d7d859db6" + }, + { + "nr": 131493, + "hash": "81be7056e17c90dd6db3e73219ba52fa5d1d85f1" + }, + { + "nr": 131459, + "hash": "7f4ae7abe12093a80294f02acd4c19eab8793034" + }, + { + "nr": 127183, + "hash": "071145dd0ae92fd10ec06101ea93399a046a300b" + }, + { + "nr": 132258, + "hash": "c954328d4adb77a6d6a524649c3b22ec13706e59" + }, + { + "nr": 132054, + "hash": "f21eb4afda5f99e76fd4fcbc7d3ffc576232fee6" + }, + { + "nr": 131798, + "hash": "89049e28c81f6ef0f3230faad2aea029041ee1dd" + }, + { + "nr": 131962, + "hash": "417f5bbca323d8b342d041a810d03580cc4a1fa5" + } + ] } \ No newline at end of file diff --git a/releases/release-1.34/release-notes/sessions/maps-1752576012.json b/releases/release-1.34/release-notes/sessions/maps-1752576012.json index ceba94501cc..3037ac9f16e 100644 --- a/releases/release-1.34/release-notes/sessions/maps-1752576012.json +++ b/releases/release-1.34/release-notes/sessions/maps-1752576012.json @@ -1,79 +1,79 @@ -{ - "mail": "urvashichoubey0121@gmail.com", - "name": "Urvashi0109", - "date": 1752576012, - "prs": [ - { - "nr": 132326, - "hash": "1f01abbeae5eaa18cded98d60154c927dff53b8d" - }, - { - "nr": 132338, - "hash": "2ef68b5982425305c6ea1e73cb2eb2a6e3e378f3" - }, - { - "nr": 132374, - "hash": "d7703262a87c652bd58237346ed7d2312ef701ab" - }, - { - "nr": 126619, - "hash": "a3f7d0b06280fd716b16b619ca06df21708fffc5" - }, - { - "nr": 132173, - "hash": "c2ebca7d397515b2e737ecd5593181dc518610ff" - }, - { - "nr": 130919, - "hash": "3cbfb3d9fa0335c9e4dd1fbbfb022ce3831a36c5" - }, - { - "nr": 132504, - "hash": "c828a3fa6ab9073a278d47e3fe5ad045f3bae17c" - }, - { - "nr": 132244, - "hash": "95a105196d49fb59d795560a0b77b382efcae052" - }, - { - "nr": 132305, - "hash": "f062e90d7c16007b867acc0bb36648526a9f3ca4" - }, - { - "nr": 132352, - "hash": "7856471f06a83de48393d81b734735f358f65464" - }, - { - "nr": 130542, - "hash": "4183772e70a623700b022adba351349122637ea1" - }, - { - "nr": 132194, - "hash": "f31bd80286bab32275b48a6f99c8f431a42305fe" - }, - { - "nr": 131354, - "hash": "7676817b6fb9bb87ed6986a5abc01e8940a21294" - }, - { - "nr": 132467, - "hash": "3c2bf815c52dfd8ec3b2431e7639dd4ee881de4c" - }, - { - "nr": 132376, - "hash": "a421dac5059d4496626ca85884adb0e4b0b4173d" - }, - { - "nr": 132336, - "hash": "96cc48212d097c469c9b4795ca9d73fda3d3b548" - }, - { - "nr": 122384, - "hash": "6f1492652bb844a64f6c1b49459cfdfb574dd3ac" - }, - { - "nr": 129438, - "hash": "259c95471debc752daddf63fcbb97db7dcd12718" - } - ] +{ + "mail": "urvashichoubey0121@gmail.com", + "name": "Urvashi0109", + "date": 1752576012, + "prs": [ + { + "nr": 132326, + "hash": "1f01abbeae5eaa18cded98d60154c927dff53b8d" + }, + { + "nr": 132338, + "hash": "2ef68b5982425305c6ea1e73cb2eb2a6e3e378f3" + }, + { + "nr": 132374, + "hash": "d7703262a87c652bd58237346ed7d2312ef701ab" + }, + { + "nr": 126619, + "hash": "a3f7d0b06280fd716b16b619ca06df21708fffc5" + }, + { + "nr": 132173, + "hash": "c2ebca7d397515b2e737ecd5593181dc518610ff" + }, + { + "nr": 130919, + "hash": "3cbfb3d9fa0335c9e4dd1fbbfb022ce3831a36c5" + }, + { + "nr": 132504, + "hash": "c828a3fa6ab9073a278d47e3fe5ad045f3bae17c" + }, + { + "nr": 132244, + "hash": "95a105196d49fb59d795560a0b77b382efcae052" + }, + { + "nr": 132305, + "hash": "f062e90d7c16007b867acc0bb36648526a9f3ca4" + }, + { + "nr": 132352, + "hash": "7856471f06a83de48393d81b734735f358f65464" + }, + { + "nr": 130542, + "hash": "4183772e70a623700b022adba351349122637ea1" + }, + { + "nr": 132194, + "hash": "f31bd80286bab32275b48a6f99c8f431a42305fe" + }, + { + "nr": 131354, + "hash": "7676817b6fb9bb87ed6986a5abc01e8940a21294" + }, + { + "nr": 132467, + "hash": "3c2bf815c52dfd8ec3b2431e7639dd4ee881de4c" + }, + { + "nr": 132376, + "hash": "a421dac5059d4496626ca85884adb0e4b0b4173d" + }, + { + "nr": 132336, + "hash": "96cc48212d097c469c9b4795ca9d73fda3d3b548" + }, + { + "nr": 122384, + "hash": "6f1492652bb844a64f6c1b49459cfdfb574dd3ac" + }, + { + "nr": 129438, + "hash": "259c95471debc752daddf63fcbb97db7dcd12718" + } + ] } \ No newline at end of file diff --git a/releases/release-1.34/release-notes/sessions/maps-1752850350.json b/releases/release-1.34/release-notes/sessions/maps-1752850350.json index 855d1e8ef9f..31a026b76b5 100644 --- a/releases/release-1.34/release-notes/sessions/maps-1752850350.json +++ b/releases/release-1.34/release-notes/sessions/maps-1752850350.json @@ -1,251 +1,251 @@ -{ - "mail": "aruparekh@gmail.com", - "name": "ArvindParekh", - "date": 1752850350, - "prs": [ - { - "nr": 132741, - "hash": "96c4b780054b83dc713dbdca6fb47a52d9366a26" - }, - { - "nr": 132699, - "hash": "722ef76d6dbf7690f6349cf5101ec2476cf09e15" - }, - { - "nr": 132751, - "hash": "2ae039e3eabba042a4fcfb7b952443732e593e6e" - }, - { - "nr": 132190, - "hash": "88b250f81cb391a5acd9facac9f104ed5fb3c614" - }, - { - "nr": 132743, - "hash": "4fdb6c9eed139cae1ea9df4b06bb025c402abc5c" - }, - { - "nr": 128653, - "hash": "38c050a1f052fe2a2b57b0072c5cee3fb9e14d91" - }, - { - "nr": 132764, - "hash": "6d439f38c1889e3854ef0c6a8422d569db4ec6a9" - }, - { - "nr": 132614, - "hash": "ba47fd10e076e166c9fec72100d05f97f7088a0f" - }, - { - "nr": 132648, - "hash": "a4eb31f5ef277bdf71eba7bd39a1c87b2a57654d" - }, - { - "nr": 132574, - "hash": "51a4c35b780755148f4d9a39b2712ac53dcebf1d" - }, - { - "nr": 132772, - "hash": "cf63760e6721608c18207956b8bbf38cebf4411d" - }, - { - "nr": 132721, - "hash": "1a198ce27cce56b202212ec20346113b0eb85e72" - }, - { - "nr": 132701, - "hash": "ae1f663e98e33147144e57d5e954e9b856ca8241" - }, - { - "nr": 132551, - "hash": "278984d39b4bee5ce6019c573bb32ecb19f28d88" - }, - { - "nr": 132794, - "hash": "66d2a70dd6e16214253e8ea6328cf86de5432d5f" - }, - { - "nr": 132594, - "hash": "293b553135dc918ed05f30913822a60ba0c1a9af" - }, - { - "nr": 132065, - "hash": "064a81c4b406b753371a553f0217ff6171e15cd7" - }, - { - "nr": 132087, - "hash": "bf34bdc5d561d3559997f245621c586d479d5726" - }, - { - "nr": 132560, - "hash": "9047ca5a82cbd0c3892caf3d03f28bf717d66ec7" - }, - { - "nr": 132726, - "hash": "561562103bd1c8da8959620940b826231ae59ba1" - }, - { - "nr": 132674, - "hash": "b9e8323804a7001d325ec8d58920d7f1c08a8c17" - }, - { - "nr": 132058, - "hash": "afe417d99031ac6474ae6536f19fad4cccc01018" - }, - { - "nr": 132777, - "hash": "b392801aa1563d093ec05771511225bf69b3afdb" - }, - { - "nr": 132750, - "hash": "32271d486492697a1d6fb40703540f3585e0328b" - }, - { - "nr": 132351, - "hash": "557267a267f94c50295a045f03bd019b55f2b320" - }, - { - "nr": 132413, - "hash": "45c4e3f43b7a708bdcee4e751aa77b70a279dc7d" - }, - { - "nr": 132284, - "hash": "9a2ffbba4eebb5758666e32b5def325df4c92f37" - }, - { - "nr": 132778, - "hash": "412dbb77757dff218952ec3ea282affd96a7aa60" - }, - { - "nr": 132433, - "hash": "e0e3d9b9a323158e1053bdffec68491efde9417e" - }, - { - "nr": 129373, - "hash": "b75bea2d3ed25456ad525ad7b5bb096e7dc4a1a8" - }, - { - "nr": 132752, - "hash": "c94270d85c874443d61bd92ac726276ea521c6f9" - }, - { - "nr": 132698, - "hash": "561ab00d174778992d95326b2e2fde2ce86d4c7b" - }, - { - "nr": 132755, - "hash": "65d6ec9d84dec04248ca587db9bd0427a428b7c4" - }, - { - "nr": 132723, - "hash": "1ce7af6cd0ec86d6550c9c687c4b18b4e4857ac4" - }, - { - "nr": 132529, - "hash": "4c03d171633de8d152ee2e99f8ea1fee204e740d" - }, - { - "nr": 132484, - "hash": "81e04903902316661bc4c6f19808bc79b583fa09" - }, - { - "nr": 132781, - "hash": "8670ded56bc41c05b8d329f4e7ecf42fc5b6fd16" - }, - { - "nr": 132542, - "hash": "720f78545464d4332730e7670354e0af9d3f2036" - }, - { - "nr": 131799, - "hash": "795bb6ad8cc2ad9979789416c4da4f0a3f29e50a" - }, - { - "nr": 132762, - "hash": "a20c56e97ac6975e469f9e9965f5deed63e72214" - }, - { - "nr": 132720, - "hash": "d9124dc170ec24c3314995adab494f65e8f8adcf" - }, - { - "nr": 132779, - "hash": "e49e1be282e16dcf7d527e26a04b5b7ada7c3be7" - }, - { - "nr": 132742, - "hash": "e479e914e50978e7d70b45a63008bcde62e0c321" - }, - { - "nr": 131641, - "hash": "15387daf7c997fbd06614f9269422fc66359bd9a" - }, - { - "nr": 132763, - "hash": "9e4669ba71fad8c74fde0e54dba6c9562c621adc" - }, - { - "nr": 132753, - "hash": "b9256b6e2bfaa03fd31d77256225d63b677933e0" - }, - { - "nr": 131837, - "hash": "e7f3dc0b0446f588ce2db2c7dba6503b2e578136" - }, - { - "nr": 132472, - "hash": "d6f8937bbc6d5994e13a1caf6c02c20a5809ef21" - }, - { - "nr": 132765, - "hash": "15daf83e735d1ecbb61d2ce5fa00bae15c238d42" - }, - { - "nr": 132754, - "hash": "a582de4ea3be45e456a2d1979a9ce14e665c7401" - }, - { - "nr": 131790, - "hash": "7f56f486de2c9c5be7904b701f0e861025516811" - }, - { - "nr": 131992, - "hash": "2d0af779dbb8f27d6b5e511a5c0392d5df5b584e" - }, - { - "nr": 132355, - "hash": "19aeba789022780eda16252a88551f69178041d3" - }, - { - "nr": 132806, - "hash": "013a437233119cb8048c74b7c371aeef0e6eed69" - }, - { - "nr": 130909, - "hash": "3bfd22983a3bb82cd8de5a22009df2ae2f624ea1" - }, - { - "nr": 132724, - "hash": "c22c05c62e37295bdf8e1cefaca5bc1d325074eb" - }, - { - "nr": 132509, - "hash": "befe926959b983108d91af678da8e9738f32d8af" - }, - { - "nr": 132339, - "hash": "840e0a9deaba0535e5800e71af63bdcbd2a301d5" - }, - { - "nr": 132725, - "hash": "26733f63e52caa76dc6e0f242708a3e86fa714a2" - }, - { - "nr": 132784, - "hash": "4c4e9ead8b0a6e548be701e90241b4b24438316f" - }, - { - "nr": 132683, - "hash": "e56c92fea4af25e6f15704226d2d0cbd00d08480" - } - ] +{ + "mail": "aruparekh@gmail.com", + "name": "ArvindParekh", + "date": 1752850350, + "prs": [ + { + "nr": 132741, + "hash": "96c4b780054b83dc713dbdca6fb47a52d9366a26" + }, + { + "nr": 132699, + "hash": "722ef76d6dbf7690f6349cf5101ec2476cf09e15" + }, + { + "nr": 132751, + "hash": "2ae039e3eabba042a4fcfb7b952443732e593e6e" + }, + { + "nr": 132190, + "hash": "88b250f81cb391a5acd9facac9f104ed5fb3c614" + }, + { + "nr": 132743, + "hash": "4fdb6c9eed139cae1ea9df4b06bb025c402abc5c" + }, + { + "nr": 128653, + "hash": "38c050a1f052fe2a2b57b0072c5cee3fb9e14d91" + }, + { + "nr": 132764, + "hash": "6d439f38c1889e3854ef0c6a8422d569db4ec6a9" + }, + { + "nr": 132614, + "hash": "ba47fd10e076e166c9fec72100d05f97f7088a0f" + }, + { + "nr": 132648, + "hash": "a4eb31f5ef277bdf71eba7bd39a1c87b2a57654d" + }, + { + "nr": 132574, + "hash": "51a4c35b780755148f4d9a39b2712ac53dcebf1d" + }, + { + "nr": 132772, + "hash": "cf63760e6721608c18207956b8bbf38cebf4411d" + }, + { + "nr": 132721, + "hash": "1a198ce27cce56b202212ec20346113b0eb85e72" + }, + { + "nr": 132701, + "hash": "ae1f663e98e33147144e57d5e954e9b856ca8241" + }, + { + "nr": 132551, + "hash": "278984d39b4bee5ce6019c573bb32ecb19f28d88" + }, + { + "nr": 132794, + "hash": "66d2a70dd6e16214253e8ea6328cf86de5432d5f" + }, + { + "nr": 132594, + "hash": "293b553135dc918ed05f30913822a60ba0c1a9af" + }, + { + "nr": 132065, + "hash": "064a81c4b406b753371a553f0217ff6171e15cd7" + }, + { + "nr": 132087, + "hash": "bf34bdc5d561d3559997f245621c586d479d5726" + }, + { + "nr": 132560, + "hash": "9047ca5a82cbd0c3892caf3d03f28bf717d66ec7" + }, + { + "nr": 132726, + "hash": "561562103bd1c8da8959620940b826231ae59ba1" + }, + { + "nr": 132674, + "hash": "b9e8323804a7001d325ec8d58920d7f1c08a8c17" + }, + { + "nr": 132058, + "hash": "afe417d99031ac6474ae6536f19fad4cccc01018" + }, + { + "nr": 132777, + "hash": "b392801aa1563d093ec05771511225bf69b3afdb" + }, + { + "nr": 132750, + "hash": "32271d486492697a1d6fb40703540f3585e0328b" + }, + { + "nr": 132351, + "hash": "557267a267f94c50295a045f03bd019b55f2b320" + }, + { + "nr": 132413, + "hash": "45c4e3f43b7a708bdcee4e751aa77b70a279dc7d" + }, + { + "nr": 132284, + "hash": "9a2ffbba4eebb5758666e32b5def325df4c92f37" + }, + { + "nr": 132778, + "hash": "412dbb77757dff218952ec3ea282affd96a7aa60" + }, + { + "nr": 132433, + "hash": "e0e3d9b9a323158e1053bdffec68491efde9417e" + }, + { + "nr": 129373, + "hash": "b75bea2d3ed25456ad525ad7b5bb096e7dc4a1a8" + }, + { + "nr": 132752, + "hash": "c94270d85c874443d61bd92ac726276ea521c6f9" + }, + { + "nr": 132698, + "hash": "561ab00d174778992d95326b2e2fde2ce86d4c7b" + }, + { + "nr": 132755, + "hash": "65d6ec9d84dec04248ca587db9bd0427a428b7c4" + }, + { + "nr": 132723, + "hash": "1ce7af6cd0ec86d6550c9c687c4b18b4e4857ac4" + }, + { + "nr": 132529, + "hash": "4c03d171633de8d152ee2e99f8ea1fee204e740d" + }, + { + "nr": 132484, + "hash": "81e04903902316661bc4c6f19808bc79b583fa09" + }, + { + "nr": 132781, + "hash": "8670ded56bc41c05b8d329f4e7ecf42fc5b6fd16" + }, + { + "nr": 132542, + "hash": "720f78545464d4332730e7670354e0af9d3f2036" + }, + { + "nr": 131799, + "hash": "795bb6ad8cc2ad9979789416c4da4f0a3f29e50a" + }, + { + "nr": 132762, + "hash": "a20c56e97ac6975e469f9e9965f5deed63e72214" + }, + { + "nr": 132720, + "hash": "d9124dc170ec24c3314995adab494f65e8f8adcf" + }, + { + "nr": 132779, + "hash": "e49e1be282e16dcf7d527e26a04b5b7ada7c3be7" + }, + { + "nr": 132742, + "hash": "e479e914e50978e7d70b45a63008bcde62e0c321" + }, + { + "nr": 131641, + "hash": "15387daf7c997fbd06614f9269422fc66359bd9a" + }, + { + "nr": 132763, + "hash": "9e4669ba71fad8c74fde0e54dba6c9562c621adc" + }, + { + "nr": 132753, + "hash": "b9256b6e2bfaa03fd31d77256225d63b677933e0" + }, + { + "nr": 131837, + "hash": "e7f3dc0b0446f588ce2db2c7dba6503b2e578136" + }, + { + "nr": 132472, + "hash": "d6f8937bbc6d5994e13a1caf6c02c20a5809ef21" + }, + { + "nr": 132765, + "hash": "15daf83e735d1ecbb61d2ce5fa00bae15c238d42" + }, + { + "nr": 132754, + "hash": "a582de4ea3be45e456a2d1979a9ce14e665c7401" + }, + { + "nr": 131790, + "hash": "7f56f486de2c9c5be7904b701f0e861025516811" + }, + { + "nr": 131992, + "hash": "2d0af779dbb8f27d6b5e511a5c0392d5df5b584e" + }, + { + "nr": 132355, + "hash": "19aeba789022780eda16252a88551f69178041d3" + }, + { + "nr": 132806, + "hash": "013a437233119cb8048c74b7c371aeef0e6eed69" + }, + { + "nr": 130909, + "hash": "3bfd22983a3bb82cd8de5a22009df2ae2f624ea1" + }, + { + "nr": 132724, + "hash": "c22c05c62e37295bdf8e1cefaca5bc1d325074eb" + }, + { + "nr": 132509, + "hash": "befe926959b983108d91af678da8e9738f32d8af" + }, + { + "nr": 132339, + "hash": "840e0a9deaba0535e5800e71af63bdcbd2a301d5" + }, + { + "nr": 132725, + "hash": "26733f63e52caa76dc6e0f242708a3e86fa714a2" + }, + { + "nr": 132784, + "hash": "4c4e9ead8b0a6e548be701e90241b4b24438316f" + }, + { + "nr": 132683, + "hash": "e56c92fea4af25e6f15704226d2d0cbd00d08480" + } + ] } \ No newline at end of file diff --git a/releases/release-1.34/release-notes/sessions/maps-1753196145.json b/releases/release-1.34/release-notes/sessions/maps-1753196145.json index e11e43090f0..eefbfdb6d6a 100644 --- a/releases/release-1.34/release-notes/sessions/maps-1753196145.json +++ b/releases/release-1.34/release-notes/sessions/maps-1753196145.json @@ -1,127 +1,127 @@ -{ - "mail": "urvashichoubey0121@gmail.com", - "name": "Urvashi0109", - "date": 1753196145, - "prs": [ - { - "nr": 132617, - "hash": "2896f3f60d37d389a0a7bbff338a68e1dd004a5a" - }, - { - "nr": 132219, - "hash": "534b4b561a272566b6a302e2db5385745c28b0bb" - }, - { - "nr": 132840, - "hash": "df10c90dfea27532584abd43d6cff7b63b88bedb" - }, - { - "nr": 131018, - "hash": "4c7637fe5a174b7928f31777bb049fd8da056866" - }, - { - "nr": 132656, - "hash": "c8adc1c711f3d9e880bbde28f38d319f78584cfb" - }, - { - "nr": 132876, - "hash": "52f8a52071014bac0f879e5d3f3071bffa8325b8" - }, - { - "nr": 132645, - "hash": "0b60177e27b9005f9dc592d2c007b89ae3be6b9e" - }, - { - "nr": 132361, - "hash": "b1b92e730b276fe3f8cfc44dab0bb561797f1e18" - }, - { - "nr": 132019, - "hash": "903ff9672a2e073f3c181729112c0918ff90a4fd" - }, - { - "nr": 132768, - "hash": "d8b29e5470008a3ce5963016594792dd8e269fdd" - }, - { - "nr": 132776, - "hash": "c8132191e28c4f1c79bab395d76560cf9a1b9471" - }, - { - "nr": 132884, - "hash": "fee5d0325f54dd7fbf51c451d90de3cb73c1f908" - }, - { - "nr": 132907, - "hash": "0c3999f0446335f4d13176781fa5c99237157e89" - }, - { - "nr": 132932, - "hash": "14f5bfc18c57d01b4b484c920cef757ebed91959" - }, - { - "nr": 132832, - "hash": "c4519a4a6e559d4e23002731eac4111a16a285b4" - }, - { - "nr": 132647, - "hash": "f72341611e815e1458ffaf7ba1e2ae3adaca1239" - }, - { - "nr": 132548, - "hash": "17585367ff5699e149ee0d7fa0c41804749da95b" - }, - { - "nr": 132730, - "hash": "3d5c816ad930ddbff3914e77c6e7aead451a54cb" - }, - { - "nr": 132342, - "hash": "34ad561747a93205de494d015cfbd00d2604286e" - }, - { - "nr": 131157, - "hash": "0436f97897b20b18c6265420835a0acb76278b80" - }, - { - "nr": 132838, - "hash": "816d7936a9378af55598db5c401d0191e980ca85" - }, - { - "nr": 132456, - "hash": "cf39658750766b774f1e164e66107f7f008839e5" - }, - { - "nr": 132513, - "hash": "077323a48896d495bd8b4eae8800e5311630d4e2" - }, - { - "nr": 132341, - "hash": "83a6e3eb1e6496216dab767ae4a222c5144b23b4" - }, - { - "nr": 132803, - "hash": "e117a975ca2dbcf9826317a3c59f5f8face08668" - }, - { - "nr": 132276, - "hash": "7c24b71942e2c55d258029e821e5d8a2238548b9" - }, - { - "nr": 132890, - "hash": "f2f42443b1032041eeba3ada052980870013f65c" - }, - { - "nr": 132391, - "hash": "f0610c8e87d3d4647bebaded5846beeca99879f2" - }, - { - "nr": 132896, - "hash": "a66a250efb7eb42b34b2e1e364c5284c9301a237" - }, - { - "nr": 132028, - "hash": "a4e91e6aa65b75eccf9c22d8d0fd535eaf022a85" - } - ] +{ + "mail": "urvashichoubey0121@gmail.com", + "name": "Urvashi0109", + "date": 1753196145, + "prs": [ + { + "nr": 132617, + "hash": "2896f3f60d37d389a0a7bbff338a68e1dd004a5a" + }, + { + "nr": 132219, + "hash": "534b4b561a272566b6a302e2db5385745c28b0bb" + }, + { + "nr": 132840, + "hash": "df10c90dfea27532584abd43d6cff7b63b88bedb" + }, + { + "nr": 131018, + "hash": "4c7637fe5a174b7928f31777bb049fd8da056866" + }, + { + "nr": 132656, + "hash": "c8adc1c711f3d9e880bbde28f38d319f78584cfb" + }, + { + "nr": 132876, + "hash": "52f8a52071014bac0f879e5d3f3071bffa8325b8" + }, + { + "nr": 132645, + "hash": "0b60177e27b9005f9dc592d2c007b89ae3be6b9e" + }, + { + "nr": 132361, + "hash": "b1b92e730b276fe3f8cfc44dab0bb561797f1e18" + }, + { + "nr": 132019, + "hash": "903ff9672a2e073f3c181729112c0918ff90a4fd" + }, + { + "nr": 132768, + "hash": "d8b29e5470008a3ce5963016594792dd8e269fdd" + }, + { + "nr": 132776, + "hash": "c8132191e28c4f1c79bab395d76560cf9a1b9471" + }, + { + "nr": 132884, + "hash": "fee5d0325f54dd7fbf51c451d90de3cb73c1f908" + }, + { + "nr": 132907, + "hash": "0c3999f0446335f4d13176781fa5c99237157e89" + }, + { + "nr": 132932, + "hash": "14f5bfc18c57d01b4b484c920cef757ebed91959" + }, + { + "nr": 132832, + "hash": "c4519a4a6e559d4e23002731eac4111a16a285b4" + }, + { + "nr": 132647, + "hash": "f72341611e815e1458ffaf7ba1e2ae3adaca1239" + }, + { + "nr": 132548, + "hash": "17585367ff5699e149ee0d7fa0c41804749da95b" + }, + { + "nr": 132730, + "hash": "3d5c816ad930ddbff3914e77c6e7aead451a54cb" + }, + { + "nr": 132342, + "hash": "34ad561747a93205de494d015cfbd00d2604286e" + }, + { + "nr": 131157, + "hash": "0436f97897b20b18c6265420835a0acb76278b80" + }, + { + "nr": 132838, + "hash": "816d7936a9378af55598db5c401d0191e980ca85" + }, + { + "nr": 132456, + "hash": "cf39658750766b774f1e164e66107f7f008839e5" + }, + { + "nr": 132513, + "hash": "077323a48896d495bd8b4eae8800e5311630d4e2" + }, + { + "nr": 132341, + "hash": "83a6e3eb1e6496216dab767ae4a222c5144b23b4" + }, + { + "nr": 132803, + "hash": "e117a975ca2dbcf9826317a3c59f5f8face08668" + }, + { + "nr": 132276, + "hash": "7c24b71942e2c55d258029e821e5d8a2238548b9" + }, + { + "nr": 132890, + "hash": "f2f42443b1032041eeba3ada052980870013f65c" + }, + { + "nr": 132391, + "hash": "f0610c8e87d3d4647bebaded5846beeca99879f2" + }, + { + "nr": 132896, + "hash": "a66a250efb7eb42b34b2e1e364c5284c9301a237" + }, + { + "nr": 132028, + "hash": "a4e91e6aa65b75eccf9c22d8d0fd535eaf022a85" + } + ] } \ No newline at end of file diff --git a/releases/release-1.34/release-notes/sessions/maps-1755281132.json b/releases/release-1.34/release-notes/sessions/maps-1755281132.json index 53a5c24cac9..a1870790db1 100644 --- a/releases/release-1.34/release-notes/sessions/maps-1755281132.json +++ b/releases/release-1.34/release-notes/sessions/maps-1755281132.json @@ -1,419 +1,419 @@ -{ - "mail": "yujenhuang24@gmail.com", - "name": "YuJen Huang", - "date": 1755281132, - "prs": [ - { - "nr": 130713, - "hash": "d320b9800eac62e26bc55d14440fb281d53f5ce2" - }, - { - "nr": 132473, - "hash": "d632784bc899baa85da0d51a309e3b75cfbab34a" - }, - { - "nr": 133034, - "hash": "75696ed65c0faa7cd534fed7b98dad00d5de7501" - }, - { - "nr": 132821, - "hash": "847491e03c73711cc73fbdf3b9f4dd777bf83e3c" - }, - { - "nr": 133276, - "hash": "2c8dea71630fd64566e0ef3a65ab89b1e3c3a2eb" - }, - { - "nr": 132462, - "hash": "11339f3fcae77991ef27274be258fa28eb02d420" - }, - { - "nr": 132773, - "hash": "5634d58399dcbb676b4d32a151c9cd6762bc4f89" - }, - { - "nr": 132604, - "hash": "fbedf846dc67143de2f9e1cede8d0ba4c2363996" - }, - { - "nr": 133068, - "hash": "fa2a813863e6d0176419993b1f73282b443ab02f" - }, - { - "nr": 133279, - "hash": "c8c282c3219ffa7b27b8cf77a7cd7cf96e4c5df6" - }, - { - "nr": 133157, - "hash": "dcc046bd5dfa276355627adfde7c0886eae56cf4" - }, - { - "nr": 132965, - "hash": "52add834ed0511293dc2664061150613bf6a4206" - }, - { - "nr": 130160, - "hash": "ff1457c00c5d448657d43a7d8c4017d35703113e" - }, - { - "nr": 131089, - "hash": "b31804dc2e75d0c41bcbfbb697a12a2331101806" - }, - { - "nr": 132605, - "hash": "e22ab1f083b2402effc395bfd0ef58a9b46826e5" - }, - { - "nr": 133023, - "hash": "eea981d4ad2cca20633a6518f5f8e1e86b1ea47b" - }, - { - "nr": 132457, - "hash": "164984684f8495e8afdb29cad0e35370b6ac072b" - }, - { - "nr": 132430, - "hash": "c0771410453b65dcad28d14af794a8a3e33772d8" - }, - { - "nr": 133013, - "hash": "7fe29fbc91d2da948a100336aadd68dac38e387a" - }, - { - "nr": 131837, - "hash": "0104d60ef2fb5e9816dd09dc8d1e6119f3157303" - }, - { - "nr": 132822, - "hash": "d94fc9df8c128fe76fdd656702afac38356f8571" - }, - { - "nr": 131306, - "hash": "0d899de9ba0921aa3c6d48c84e510fee8a172b3e" - }, - { - "nr": 133085, - "hash": "95c6ffa1b411a2ab469fef52aa580de00d5f6a4f" - }, - { - "nr": 133136, - "hash": "4902a1ea5c80f09932cd056eeb40b8641a0f16fc" - }, - { - "nr": 132537, - "hash": "bd9210f4b435f34069218522eefc1bbbe8850db2" - }, - { - "nr": 132443, - "hash": "5ea066496e21f7b90606d890e58f1d7ff4ccbafb" - }, - { - "nr": 130653, - "hash": "0d2fe7e7f0234395c439f23d9423523d42f8263f" - }, - { - "nr": 132340, - "hash": "f7758b9e6936aa7a1f9ce84f5fca40cf19d401ca" - }, - { - "nr": 132083, - "hash": "d93939044c3e0eb86198f41e2059e838a74c3988" - }, - { - "nr": 132348, - "hash": "eaa366c693cda7afac478c866c13073b25905b11" - }, - { - "nr": 133021, - "hash": "4fdd882445b4c84b96d2ddaecb4325564ddb3bb1" - }, - { - "nr": 133226, - "hash": "bc5c7cc451726f656af41539288cf84fc1df6f40" - }, - { - "nr": 131549, - "hash": "97720888ed4c2ea70bdd4ccf900dc3f4b842b3d4" - }, - { - "nr": 132999, - "hash": "9f923ad67e1fe57cab2171809c6075ca37db3629" - }, - { - "nr": 132108, - "hash": "b7e662e6ddac71b434eb6618602928635609a76f" - }, - { - "nr": 133135, - "hash": "27dabdc3946f789246dd10ed07f026dea951d2a8" - }, - { - "nr": 133017, - "hash": "5b9411b6d4a3b2b7ab3fee630dd8f7130b3d1455" - }, - { - "nr": 125271, - "hash": "b6021ca3ad9f1ff09e104f3830aabe6c0026b3cb" - }, - { - "nr": 133076, - "hash": "7b0f391c083848e602c8efde935eb761ab59d255" - }, - { - "nr": 131001, - "hash": "7633bc3a700e789932b7e2be60bb27253dc53df8" - }, - { - "nr": 132662, - "hash": "6456fb0c7b8f032059b2491d968ab01f553c697a" - }, - { - "nr": 129837, - "hash": "03f8e21aacf1539aa0ff64f3868382c0e29be406" - }, - { - "nr": 132910, - "hash": "cd48f2b63a05ee5b6637c0e000f87d9d4dc2c28a" - }, - { - "nr": 131318, - "hash": "44c14244c9509ad75e711ab5a4f9efcd2ec233b6" - }, - { - "nr": 132522, - "hash": "b4f25fa6ecee369246c19f9ec89ffdcdffe06fb7" - }, - { - "nr": 133164, - "hash": "5b6b52bb008fe7d299ff06cdeee7c3209f49d04c" - }, - { - "nr": 132706, - "hash": "8c22a4a1c773764370895df07922afb9515fb7ec" - }, - { - "nr": 132903, - "hash": "202fe652239fe87103126de5b7c57f73586bab0d" - }, - { - "nr": 133062, - "hash": "ad15eb353d860e555f8fd3c93fe5256d47299b46" - }, - { - "nr": 133028, - "hash": "1a7616922748f56cdf323754b35dfd865815ec7a" - }, - { - "nr": 133030, - "hash": "0c71821c1694989bc9c74448f42cf455dfe0331d" - }, - { - "nr": 133012, - "hash": "05c064734ab96e489de71687ce0745523d3639e7" - }, - { - "nr": 132595, - "hash": "d678a955a151464410e1c918063b2038092e4b4b" - }, - { - "nr": 132800, - "hash": "6d3328b35706a82e1bda03f0c8532d777e104e37" - }, - { - "nr": 132833, - "hash": "5fcc4ee2ee3afb90d319ab0c5ac4b98884d21bbd" - }, - { - "nr": 132940, - "hash": "75a0c3927420a080573a594cc43972776730ea9e" - }, - { - "nr": 132893, - "hash": "60e9fbe7aa1ff9d085a50302ba12b2a2a1816252" - }, - { - "nr": 132581, - "hash": "51282352ad3717afca9c62c5fa63a628c3706fc0" - }, - { - "nr": 133018, - "hash": "06658fc25e137c9ab473ba9614a4545b35393148" - }, - { - "nr": 133120, - "hash": "f1b0faa1208d0b22e1e09e56e8e12ad54a1cee6b" - }, - { - "nr": 130593, - "hash": "edaec2bed29ca17aeaba17cf067f0044fd4b9323" - }, - { - "nr": 132767, - "hash": "f24b24792a2107116e0be7558ea2c7a3cd8cecdf" - }, - { - "nr": 131989, - "hash": "19471e159a3bd1933bf234d55aefba94e7898024" - }, - { - "nr": 132642, - "hash": "26dd6d3fdc4dcfcfc95a251b22be0f604da4d480" - }, - { - "nr": 132106, - "hash": "e3a97404cd36baa5a2d27f1a3f7e0fec1332155d" - }, - { - "nr": 133350, - "hash": "f5cf712024590527741a948148dc41cfe2888d2f" - }, - { - "nr": 133042, - "hash": "f0f3b7ce3001ee9c409f0101cbbdcd83c25a09d7" - }, - { - "nr": 132912, - "hash": "9a3a232d4a055af50d687a3de2571bdc45ef1304" - }, - { - "nr": 133293, - "hash": "765de5cb84296789f2f1f8959c5b4ef0c1b40183" - }, - { - "nr": 130606, - "hash": "f084e8714071e13e48500d4fd2e3d01dab1cbc92" - }, - { - "nr": 132771, - "hash": "c7b005e392d98e94599b2e4ebc94df956b1f3eba" - }, - { - "nr": 132514, - "hash": "18cbc73c21271cec673d730df3146d4d66c48299" - }, - { - "nr": 132933, - "hash": "cc32f9a98f735c62a147989b2c985abc6003646b" - }, - { - "nr": 132277, - "hash": "ba6fecb7352d339ce106aee5a59fef9b6a819550" - }, - { - "nr": 132700, - "hash": "45306c0746856bbdf9359766dcba17057b930ed8" - }, - { - "nr": 132704, - "hash": "54b91d599cc53af673036e96bd0a801d3849d2fa" - }, - { - "nr": 131463, - "hash": "25559829804c6aa9ef3dd945d0d68ec7763e0f92" - }, - { - "nr": 132901, - "hash": "94123dcf8bc5a0f445b095fada4ed8f36d412650" - }, - { - "nr": 133046, - "hash": "d941dc136238a6b1d1ba9e31311844baa820926d" - }, - { - "nr": 133060, - "hash": "c57424e88538b4ca9ee9d3a5e29deb8d0b936dc0" - }, - { - "nr": 132299, - "hash": "54e8eee69e870babac516d164f7a58866eea8c9b" - }, - { - "nr": 132429, - "hash": "57994c84a8a793957e2ef8c88415aa21e1fd6220" - }, - { - "nr": 132902, - "hash": "8a44b1364e64d09b43d83f57e0510586b0622eaa" - }, - { - "nr": 133167, - "hash": "0f1c619f37161b553fa65eeb0bf68fad3cafb945" - }, - { - "nr": 132935, - "hash": "623250b7cbfe681e564125d72e7aee6efe442540" - }, - { - "nr": 132558, - "hash": "e2cedfa8944217cabec71c37d185917bb5a0f818" - }, - { - "nr": 130727, - "hash": "8fed7b0443e54e3cf35bf5cf09951630c5113e2e" - }, - { - "nr": 132886, - "hash": "ab9067c4cfb6fc009d4baf5ae90221a765e5ca86" - }, - { - "nr": 132121, - "hash": "b3db6401c6a85314da4a5aa69314686e2c3f8920" - }, - { - "nr": 130387, - "hash": "f94e1db55d51618cda38cc0dff3961d4ef275cb9" - }, - { - "nr": 132868, - "hash": "b2f68a50af2e4046be7a296d7f6b44f35a903901" - }, - { - "nr": 132626, - "hash": "991b6c44ca0c89d458d0afd323f6d95675287209" - }, - { - "nr": 128010, - "hash": "e1b89259f4ccffa61b70d5cdc11330d3d88f9966" - }, - { - "nr": 132895, - "hash": "cb2ae6f26e0bf389d5d24d48220b73d093074041" - }, - { - "nr": 132632, - "hash": "61a67d1d2dcd9cb0660d54c86a2d2846c1b1531b" - }, - { - "nr": 132942, - "hash": "0a7a55197314a1e1ed0d4546e6edf89366058e07" - }, - { - "nr": 133016, - "hash": "11100f103286f82c4bd23956d1e1d33f50c39b93" - }, - { - "nr": 132593, - "hash": "e4f8aeab3ac2dfb416548f0338a8f53fedb59f9a" - }, - { - "nr": 132837, - "hash": "43f668a2a00ccb45e91c69291b9d612847b4d231" - }, - { - "nr": 132296, - "hash": "205c13bf1c5a4ef56630216d893fc6c840bc1fc5" - }, - { - "nr": 132214, - "hash": "47381f79529a10e91092ca80ed2e5d08472fdb29" - }, - { - "nr": 133027, - "hash": "dd6883698378e8d640cf26efd9838998cae8ef46" - }, - { - "nr": 132033, - "hash": "fbae5912de8dcbd24dec5a5a1a47e087c6d8c7f8" - } - ] +{ + "mail": "yujenhuang24@gmail.com", + "name": "YuJen Huang", + "date": 1755281132, + "prs": [ + { + "nr": 130713, + "hash": "d320b9800eac62e26bc55d14440fb281d53f5ce2" + }, + { + "nr": 132473, + "hash": "d632784bc899baa85da0d51a309e3b75cfbab34a" + }, + { + "nr": 133034, + "hash": "75696ed65c0faa7cd534fed7b98dad00d5de7501" + }, + { + "nr": 132821, + "hash": "847491e03c73711cc73fbdf3b9f4dd777bf83e3c" + }, + { + "nr": 133276, + "hash": "2c8dea71630fd64566e0ef3a65ab89b1e3c3a2eb" + }, + { + "nr": 132462, + "hash": "11339f3fcae77991ef27274be258fa28eb02d420" + }, + { + "nr": 132773, + "hash": "5634d58399dcbb676b4d32a151c9cd6762bc4f89" + }, + { + "nr": 132604, + "hash": "fbedf846dc67143de2f9e1cede8d0ba4c2363996" + }, + { + "nr": 133068, + "hash": "fa2a813863e6d0176419993b1f73282b443ab02f" + }, + { + "nr": 133279, + "hash": "c8c282c3219ffa7b27b8cf77a7cd7cf96e4c5df6" + }, + { + "nr": 133157, + "hash": "dcc046bd5dfa276355627adfde7c0886eae56cf4" + }, + { + "nr": 132965, + "hash": "52add834ed0511293dc2664061150613bf6a4206" + }, + { + "nr": 130160, + "hash": "ff1457c00c5d448657d43a7d8c4017d35703113e" + }, + { + "nr": 131089, + "hash": "b31804dc2e75d0c41bcbfbb697a12a2331101806" + }, + { + "nr": 132605, + "hash": "e22ab1f083b2402effc395bfd0ef58a9b46826e5" + }, + { + "nr": 133023, + "hash": "eea981d4ad2cca20633a6518f5f8e1e86b1ea47b" + }, + { + "nr": 132457, + "hash": "164984684f8495e8afdb29cad0e35370b6ac072b" + }, + { + "nr": 132430, + "hash": "c0771410453b65dcad28d14af794a8a3e33772d8" + }, + { + "nr": 133013, + "hash": "7fe29fbc91d2da948a100336aadd68dac38e387a" + }, + { + "nr": 131837, + "hash": "0104d60ef2fb5e9816dd09dc8d1e6119f3157303" + }, + { + "nr": 132822, + "hash": "d94fc9df8c128fe76fdd656702afac38356f8571" + }, + { + "nr": 131306, + "hash": "0d899de9ba0921aa3c6d48c84e510fee8a172b3e" + }, + { + "nr": 133085, + "hash": "95c6ffa1b411a2ab469fef52aa580de00d5f6a4f" + }, + { + "nr": 133136, + "hash": "4902a1ea5c80f09932cd056eeb40b8641a0f16fc" + }, + { + "nr": 132537, + "hash": "bd9210f4b435f34069218522eefc1bbbe8850db2" + }, + { + "nr": 132443, + "hash": "5ea066496e21f7b90606d890e58f1d7ff4ccbafb" + }, + { + "nr": 130653, + "hash": "0d2fe7e7f0234395c439f23d9423523d42f8263f" + }, + { + "nr": 132340, + "hash": "f7758b9e6936aa7a1f9ce84f5fca40cf19d401ca" + }, + { + "nr": 132083, + "hash": "d93939044c3e0eb86198f41e2059e838a74c3988" + }, + { + "nr": 132348, + "hash": "eaa366c693cda7afac478c866c13073b25905b11" + }, + { + "nr": 133021, + "hash": "4fdd882445b4c84b96d2ddaecb4325564ddb3bb1" + }, + { + "nr": 133226, + "hash": "bc5c7cc451726f656af41539288cf84fc1df6f40" + }, + { + "nr": 131549, + "hash": "97720888ed4c2ea70bdd4ccf900dc3f4b842b3d4" + }, + { + "nr": 132999, + "hash": "9f923ad67e1fe57cab2171809c6075ca37db3629" + }, + { + "nr": 132108, + "hash": "b7e662e6ddac71b434eb6618602928635609a76f" + }, + { + "nr": 133135, + "hash": "27dabdc3946f789246dd10ed07f026dea951d2a8" + }, + { + "nr": 133017, + "hash": "5b9411b6d4a3b2b7ab3fee630dd8f7130b3d1455" + }, + { + "nr": 125271, + "hash": "b6021ca3ad9f1ff09e104f3830aabe6c0026b3cb" + }, + { + "nr": 133076, + "hash": "7b0f391c083848e602c8efde935eb761ab59d255" + }, + { + "nr": 131001, + "hash": "7633bc3a700e789932b7e2be60bb27253dc53df8" + }, + { + "nr": 132662, + "hash": "6456fb0c7b8f032059b2491d968ab01f553c697a" + }, + { + "nr": 129837, + "hash": "03f8e21aacf1539aa0ff64f3868382c0e29be406" + }, + { + "nr": 132910, + "hash": "cd48f2b63a05ee5b6637c0e000f87d9d4dc2c28a" + }, + { + "nr": 131318, + "hash": "44c14244c9509ad75e711ab5a4f9efcd2ec233b6" + }, + { + "nr": 132522, + "hash": "b4f25fa6ecee369246c19f9ec89ffdcdffe06fb7" + }, + { + "nr": 133164, + "hash": "5b6b52bb008fe7d299ff06cdeee7c3209f49d04c" + }, + { + "nr": 132706, + "hash": "8c22a4a1c773764370895df07922afb9515fb7ec" + }, + { + "nr": 132903, + "hash": "202fe652239fe87103126de5b7c57f73586bab0d" + }, + { + "nr": 133062, + "hash": "ad15eb353d860e555f8fd3c93fe5256d47299b46" + }, + { + "nr": 133028, + "hash": "1a7616922748f56cdf323754b35dfd865815ec7a" + }, + { + "nr": 133030, + "hash": "0c71821c1694989bc9c74448f42cf455dfe0331d" + }, + { + "nr": 133012, + "hash": "05c064734ab96e489de71687ce0745523d3639e7" + }, + { + "nr": 132595, + "hash": "d678a955a151464410e1c918063b2038092e4b4b" + }, + { + "nr": 132800, + "hash": "6d3328b35706a82e1bda03f0c8532d777e104e37" + }, + { + "nr": 132833, + "hash": "5fcc4ee2ee3afb90d319ab0c5ac4b98884d21bbd" + }, + { + "nr": 132940, + "hash": "75a0c3927420a080573a594cc43972776730ea9e" + }, + { + "nr": 132893, + "hash": "60e9fbe7aa1ff9d085a50302ba12b2a2a1816252" + }, + { + "nr": 132581, + "hash": "51282352ad3717afca9c62c5fa63a628c3706fc0" + }, + { + "nr": 133018, + "hash": "06658fc25e137c9ab473ba9614a4545b35393148" + }, + { + "nr": 133120, + "hash": "f1b0faa1208d0b22e1e09e56e8e12ad54a1cee6b" + }, + { + "nr": 130593, + "hash": "edaec2bed29ca17aeaba17cf067f0044fd4b9323" + }, + { + "nr": 132767, + "hash": "f24b24792a2107116e0be7558ea2c7a3cd8cecdf" + }, + { + "nr": 131989, + "hash": "19471e159a3bd1933bf234d55aefba94e7898024" + }, + { + "nr": 132642, + "hash": "26dd6d3fdc4dcfcfc95a251b22be0f604da4d480" + }, + { + "nr": 132106, + "hash": "e3a97404cd36baa5a2d27f1a3f7e0fec1332155d" + }, + { + "nr": 133350, + "hash": "f5cf712024590527741a948148dc41cfe2888d2f" + }, + { + "nr": 133042, + "hash": "f0f3b7ce3001ee9c409f0101cbbdcd83c25a09d7" + }, + { + "nr": 132912, + "hash": "9a3a232d4a055af50d687a3de2571bdc45ef1304" + }, + { + "nr": 133293, + "hash": "765de5cb84296789f2f1f8959c5b4ef0c1b40183" + }, + { + "nr": 130606, + "hash": "f084e8714071e13e48500d4fd2e3d01dab1cbc92" + }, + { + "nr": 132771, + "hash": "c7b005e392d98e94599b2e4ebc94df956b1f3eba" + }, + { + "nr": 132514, + "hash": "18cbc73c21271cec673d730df3146d4d66c48299" + }, + { + "nr": 132933, + "hash": "cc32f9a98f735c62a147989b2c985abc6003646b" + }, + { + "nr": 132277, + "hash": "ba6fecb7352d339ce106aee5a59fef9b6a819550" + }, + { + "nr": 132700, + "hash": "45306c0746856bbdf9359766dcba17057b930ed8" + }, + { + "nr": 132704, + "hash": "54b91d599cc53af673036e96bd0a801d3849d2fa" + }, + { + "nr": 131463, + "hash": "25559829804c6aa9ef3dd945d0d68ec7763e0f92" + }, + { + "nr": 132901, + "hash": "94123dcf8bc5a0f445b095fada4ed8f36d412650" + }, + { + "nr": 133046, + "hash": "d941dc136238a6b1d1ba9e31311844baa820926d" + }, + { + "nr": 133060, + "hash": "c57424e88538b4ca9ee9d3a5e29deb8d0b936dc0" + }, + { + "nr": 132299, + "hash": "54e8eee69e870babac516d164f7a58866eea8c9b" + }, + { + "nr": 132429, + "hash": "57994c84a8a793957e2ef8c88415aa21e1fd6220" + }, + { + "nr": 132902, + "hash": "8a44b1364e64d09b43d83f57e0510586b0622eaa" + }, + { + "nr": 133167, + "hash": "0f1c619f37161b553fa65eeb0bf68fad3cafb945" + }, + { + "nr": 132935, + "hash": "623250b7cbfe681e564125d72e7aee6efe442540" + }, + { + "nr": 132558, + "hash": "e2cedfa8944217cabec71c37d185917bb5a0f818" + }, + { + "nr": 130727, + "hash": "8fed7b0443e54e3cf35bf5cf09951630c5113e2e" + }, + { + "nr": 132886, + "hash": "ab9067c4cfb6fc009d4baf5ae90221a765e5ca86" + }, + { + "nr": 132121, + "hash": "b3db6401c6a85314da4a5aa69314686e2c3f8920" + }, + { + "nr": 130387, + "hash": "f94e1db55d51618cda38cc0dff3961d4ef275cb9" + }, + { + "nr": 132868, + "hash": "b2f68a50af2e4046be7a296d7f6b44f35a903901" + }, + { + "nr": 132626, + "hash": "991b6c44ca0c89d458d0afd323f6d95675287209" + }, + { + "nr": 128010, + "hash": "e1b89259f4ccffa61b70d5cdc11330d3d88f9966" + }, + { + "nr": 132895, + "hash": "cb2ae6f26e0bf389d5d24d48220b73d093074041" + }, + { + "nr": 132632, + "hash": "61a67d1d2dcd9cb0660d54c86a2d2846c1b1531b" + }, + { + "nr": 132942, + "hash": "0a7a55197314a1e1ed0d4546e6edf89366058e07" + }, + { + "nr": 133016, + "hash": "11100f103286f82c4bd23956d1e1d33f50c39b93" + }, + { + "nr": 132593, + "hash": "e4f8aeab3ac2dfb416548f0338a8f53fedb59f9a" + }, + { + "nr": 132837, + "hash": "43f668a2a00ccb45e91c69291b9d612847b4d231" + }, + { + "nr": 132296, + "hash": "205c13bf1c5a4ef56630216d893fc6c840bc1fc5" + }, + { + "nr": 132214, + "hash": "47381f79529a10e91092ca80ed2e5d08472fdb29" + }, + { + "nr": 133027, + "hash": "dd6883698378e8d640cf26efd9838998cae8ef46" + }, + { + "nr": 132033, + "hash": "fbae5912de8dcbd24dec5a5a1a47e087c6d8c7f8" + } + ] } \ No newline at end of file diff --git a/releases/release-1.34/release-notes/sessions/maps-1755870745.json b/releases/release-1.34/release-notes/sessions/maps-1755870745.json index dd61790fcbe..634301f72ba 100644 --- a/releases/release-1.34/release-notes/sessions/maps-1755870745.json +++ b/releases/release-1.34/release-notes/sessions/maps-1755870745.json @@ -1,1295 +1,1295 @@ -{ - "mail": "ryan.su@queensu.ca", - "name": "ryan-su-12", - "date": 1755870745, - "prs": [ - { - "nr": 130727, - "hash": "8fed7b0443e54e3cf35bf5cf09951630c5113e2e" - }, - { - "nr": 132720, - "hash": "d9124dc170ec24c3314995adab494f65e8f8adcf" - }, - { - "nr": 132594, - "hash": "293b553135dc918ed05f30913822a60ba0c1a9af" - }, - { - "nr": 132429, - "hash": "57994c84a8a793957e2ef8c88415aa21e1fd6220" - }, - { - "nr": 131018, - "hash": "4c7637fe5a174b7928f31777bb049fd8da056866" - }, - { - "nr": 131501, - "hash": "8d4e0b710c85f5d0b6bf781eee7567bbabb7757a" - }, - { - "nr": 131647, - "hash": "68f838ecf7f1c7b7a60a5169072aaf8677bd1cd3" - }, - { - "nr": 132935, - "hash": "623250b7cbfe681e564125d72e7aee6efe442540" - }, - { - "nr": 133030, - "hash": "0c71821c1694989bc9c74448f42cf455dfe0331d" - }, - { - "nr": 132776, - "hash": "c8132191e28c4f1c79bab395d76560cf9a1b9471" - }, - { - "nr": 120816, - "hash": "580f504e40d5c95450193103360e34084050b69e" - }, - { - "nr": 131752, - "hash": "ec3b6ddafb1279955c8812f77782ee8e716ba6a7" - }, - { - "nr": 132551, - "hash": "278984d39b4bee5ce6019c573bb32ecb19f28d88" - }, - { - "nr": 132724, - "hash": "c22c05c62e37295bdf8e1cefaca5bc1d325074eb" - }, - { - "nr": 129373, - "hash": "b75bea2d3ed25456ad525ad7b5bb096e7dc4a1a8" - }, - { - "nr": 131981, - "hash": "d3b0080a3a8503abdc9115c49a78b87970cba45e" - }, - { - "nr": 132895, - "hash": "cb2ae6f26e0bf389d5d24d48220b73d093074041" - }, - { - "nr": 131157, - "hash": "0436f97897b20b18c6265420835a0acb76278b80" - }, - { - "nr": 132229, - "hash": "fae4dc3100490a0b5454457bf50126126eca6a34" - }, - { - "nr": 131165, - "hash": "d9383076554991af204efef1613870c67748c40f" - }, - { - "nr": 133350, - "hash": "f5cf712024590527741a948148dc41cfe2888d2f" - }, - { - "nr": 132457, - "hash": "164984684f8495e8afdb29cad0e35370b6ac072b" - }, - { - "nr": 132108, - "hash": "b7e662e6ddac71b434eb6618602928635609a76f" - }, - { - "nr": 132194, - "hash": "f31bd80286bab32275b48a6f99c8f431a42305fe" - }, - { - "nr": 131562, - "hash": "3a5f52f5838517b4b381f30f9f69b1c7017246d4" - }, - { - "nr": 131934, - "hash": "d030ff32b92d9a366202580ac61ee231a75764cb" - }, - { - "nr": 125271, - "hash": "b6021ca3ad9f1ff09e104f3830aabe6c0026b3cb" - }, - { - "nr": 132777, - "hash": "b392801aa1563d093ec05771511225bf69b3afdb" - }, - { - "nr": 131658, - "hash": "b612fb59d35de76e492890d2d07d57bcd103f8fc" - }, - { - "nr": 133085, - "hash": "95c6ffa1b411a2ab469fef52aa580de00d5f6a4f" - }, - { - "nr": 133028, - "hash": "1a7616922748f56cdf323754b35dfd865815ec7a" - }, - { - "nr": 132742, - "hash": "e479e914e50978e7d70b45a63008bcde62e0c321" - }, - { - "nr": 132236, - "hash": "e707a19fff4b64c9f1bf3de6f382cf6795227518" - }, - { - "nr": 132940, - "hash": "75a0c3927420a080573a594cc43972776730ea9e" - }, - { - "nr": 132340, - "hash": "f7758b9e6936aa7a1f9ce84f5fca40cf19d401ca" - }, - { - "nr": 131798, - "hash": "89049e28c81f6ef0f3230faad2aea029041ee1dd" - }, - { - "nr": 127667, - "hash": "6d60faa177e0fcdfbd078624244c8b7d3dac4456" - }, - { - "nr": 132942, - "hash": "0a7a55197314a1e1ed0d4546e6edf89366058e07" - }, - { - "nr": 132838, - "hash": "816d7936a9378af55598db5c401d0191e980ca85" - }, - { - "nr": 132755, - "hash": "65d6ec9d84dec04248ca587db9bd0427a428b7c4" - }, - { - "nr": 126619, - "hash": "a3f7d0b06280fd716b16b619ca06df21708fffc5" - }, - { - "nr": 131741, - "hash": "bd9cb0789cdc246974a5ac6a58b41446ea5fd2e4" - }, - { - "nr": 130720, - "hash": "39d77d023383d9d8090b14c5fa32eaffc877e7b6" - }, - { - "nr": 129237, - "hash": "a3d2e9b77aa82d4a57c4c7b0f38659834eb7b351" - }, - { - "nr": 132299, - "hash": "54e8eee69e870babac516d164f7a58866eea8c9b" - }, - { - "nr": 132529, - "hash": "4c03d171633de8d152ee2e99f8ea1fee204e740d" - }, - { - "nr": 132560, - "hash": "9047ca5a82cbd0c3892caf3d03f28bf717d66ec7" - }, - { - "nr": 131632, - "hash": "29a6151804a75b541f35c70efcdddede8d61d2cd" - }, - { - "nr": 131868, - "hash": "63eb7b44c241861e1fa163ed14637b9cf16dade9" - }, - { - "nr": 131085, - "hash": "1c414e952f84d4d57b3634d62ef64bcc9526be79" - }, - { - "nr": 132296, - "hash": "205c13bf1c5a4ef56630216d893fc6c840bc1fc5" - }, - { - "nr": 132821, - "hash": "847491e03c73711cc73fbdf3b9f4dd777bf83e3c" - }, - { - "nr": 132645, - "hash": "0b60177e27b9005f9dc592d2c007b89ae3be6b9e" - }, - { - "nr": 131641, - "hash": "15387daf7c997fbd06614f9269422fc66359bd9a" - }, - { - "nr": 132743, - "hash": "4fdb6c9eed139cae1ea9df4b06bb025c402abc5c" - }, - { - "nr": 128748, - "hash": "a118b36fcdf6a9a093ee3c65a1a67e31a6dc9138" - }, - { - "nr": 131495, - "hash": "d67ea6f03a11dc24596ca5c0abfc3d400291e5fc" - }, - { - "nr": 133021, - "hash": "4fdd882445b4c84b96d2ddaecb4325564ddb3bb1" - }, - { - "nr": 132999, - "hash": "9f923ad67e1fe57cab2171809c6075ca37db3629" - }, - { - "nr": 132700, - "hash": "45306c0746856bbdf9359766dcba17057b930ed8" - }, - { - "nr": 133076, - "hash": "7b0f391c083848e602c8efde935eb761ab59d255" - }, - { - "nr": 132473, - "hash": "d632784bc899baa85da0d51a309e3b75cfbab34a" - }, - { - "nr": 132698, - "hash": "561ab00d174778992d95326b2e2fde2ce86d4c7b" - }, - { - "nr": 132467, - "hash": "3c2bf815c52dfd8ec3b2431e7639dd4ee881de4c" - }, - { - "nr": 132258, - "hash": "c954328d4adb77a6d6a524649c3b22ec13706e59" - }, - { - "nr": 132604, - "hash": "fbedf846dc67143de2f9e1cede8d0ba4c2363996" - }, - { - "nr": 133135, - "hash": "27dabdc3946f789246dd10ed07f026dea951d2a8" - }, - { - "nr": 131463, - "hash": "25559829804c6aa9ef3dd945d0d68ec7763e0f92" - }, - { - "nr": 133027, - "hash": "dd6883698378e8d640cf26efd9838998cae8ef46" - }, - { - "nr": 131837, - "hash": "0104d60ef2fb5e9816dd09dc8d1e6119f3157303" - }, - { - "nr": 132036, - "hash": "f0beb570a6e790adfcc9cf3cdb9af516b2e857d0" - }, - { - "nr": 127365, - "hash": "fbae49fab75c5387fe39428019163dbc8842152a" - }, - { - "nr": 131623, - "hash": "ba007c76ef909b35f8e37a2889f7d1d3839d5a81" - }, - { - "nr": 132662, - "hash": "6456fb0c7b8f032059b2491d968ab01f553c697a" - }, - { - "nr": 132884, - "hash": "fee5d0325f54dd7fbf51c451d90de3cb73c1f908" - }, - { - "nr": 132019, - "hash": "903ff9672a2e073f3c181729112c0918ff90a4fd" - }, - { - "nr": 132772, - "hash": "cf63760e6721608c18207956b8bbf38cebf4411d" - }, - { - "nr": 132251, - "hash": "01a085fef0db0f2fa870f38cd0a7a7337313259c" - }, - { - "nr": 131654, - "hash": "9480cbb043fb3bfedb493e99fc406d1d61a3a74d" - }, - { - "nr": 131768, - "hash": "7f5a3cbebce12b61be47e822326a54dcdfb4bc4b" - }, - { - "nr": 131151, - "hash": "350fd26ce48049051a985132c3c0abb15cf01f15" - }, - { - "nr": 132593, - "hash": "e4f8aeab3ac2dfb416548f0338a8f53fedb59f9a" - }, - { - "nr": 132725, - "hash": "26733f63e52caa76dc6e0f242708a3e86fa714a2" - }, - { - "nr": 131514, - "hash": "60184ebe89ba94418c89c3478d226eadc9313148" - }, - { - "nr": 131979, - "hash": "842fb87a4976b6e279c7549c4c45a99fca14ec7f" - }, - { - "nr": 131662, - "hash": "3d095e0e13afd77374130198539d6de662fb31ed" - }, - { - "nr": 131509, - "hash": "40b39e398b9ca83f73f9aa39f0e1729a2003dd69" - }, - { - "nr": 132121, - "hash": "b3db6401c6a85314da4a5aa69314686e2c3f8920" - }, - { - "nr": 132374, - "hash": "d7703262a87c652bd58237346ed7d2312ef701ab" - }, - { - "nr": 132741, - "hash": "96c4b780054b83dc713dbdca6fb47a52d9366a26" - }, - { - "nr": 132087, - "hash": "bf34bdc5d561d3559997f245621c586d479d5726" - }, - { - "nr": 131299, - "hash": "4b305dee266fe09dcb5bd454b6ee01de2b2dc32a" - }, - { - "nr": 132890, - "hash": "f2f42443b1032041eeba3ada052980870013f65c" - }, - { - "nr": 132779, - "hash": "e49e1be282e16dcf7d527e26a04b5b7ada7c3be7" - }, - { - "nr": 122384, - "hash": "6f1492652bb844a64f6c1b49459cfdfb574dd3ac" - }, - { - "nr": 129501, - "hash": "3c38f44726a41d78d0e4f4436c26ee93d3630e73" - }, - { - "nr": 131215, - "hash": "cd9735be508a3c59b4307c8297b41434476d6fc7" - }, - { - "nr": 132352, - "hash": "7856471f06a83de48393d81b734735f358f65464" - }, - { - "nr": 132096, - "hash": "1a0d4e1e0712807554ccafeffdc117652a2581a7" - }, - { - "nr": 131677, - "hash": "1020831f9ee933a383f208b89ada4525917fe782" - }, - { - "nr": 133226, - "hash": "bc5c7cc451726f656af41539288cf84fc1df6f40" - }, - { - "nr": 132083, - "hash": "d93939044c3e0eb86198f41e2059e838a74c3988" - }, - { - "nr": 132901, - "hash": "94123dcf8bc5a0f445b095fada4ed8f36d412650" - }, - { - "nr": 132222, - "hash": "d9ad44080b5104ea83292c39db65abee80000ad7" - }, - { - "nr": 133062, - "hash": "ad15eb353d860e555f8fd3c93fe5256d47299b46" - }, - { - "nr": 132800, - "hash": "6d3328b35706a82e1bda03f0c8532d777e104e37" - }, - { - "nr": 132907, - "hash": "0c3999f0446335f4d13176781fa5c99237157e89" - }, - { - "nr": 132040, - "hash": "85c3d1e1ae769978d0b66c4b4c27f83d1a9cde0d" - }, - { - "nr": 132886, - "hash": "ab9067c4cfb6fc009d4baf5ae90221a765e5ca86" - }, - { - "nr": 132462, - "hash": "11339f3fcae77991ef27274be258fa28eb02d420" - }, - { - "nr": 130713, - "hash": "d320b9800eac62e26bc55d14440fb281d53f5ce2" - }, - { - "nr": 132771, - "hash": "c7b005e392d98e94599b2e4ebc94df956b1f3eba" - }, - { - "nr": 132276, - "hash": "7c24b71942e2c55d258029e821e5d8a2238548b9" - }, - { - "nr": 132219, - "hash": "534b4b561a272566b6a302e2db5385745c28b0bb" - }, - { - "nr": 132765, - "hash": "15daf83e735d1ecbb61d2ce5fa00bae15c238d42" - }, - { - "nr": 131907, - "hash": "9a97f4c8876d4a373eab7469553d46c6c147795b" - }, - { - "nr": 129837, - "hash": "03f8e21aacf1539aa0ff64f3868382c0e29be406" - }, - { - "nr": 133016, - "hash": "11100f103286f82c4bd23956d1e1d33f50c39b93" - }, - { - "nr": 132341, - "hash": "83a6e3eb1e6496216dab767ae4a222c5144b23b4" - }, - { - "nr": 132336, - "hash": "96cc48212d097c469c9b4795ca9d73fda3d3b548" - }, - { - "nr": 131660, - "hash": "9c174cd2e417917b0bcf7388418d54c59ed95f44" - }, - { - "nr": 131563, - "hash": "d7f70fdd9b4307b7f6f9a57cd0dd3cfdbfd8f7e0" - }, - { - "nr": 131973, - "hash": "4deff5df8f09b5462ae0c17918da6b858559ab30" - }, - { - "nr": 130987, - "hash": "d5dacd3facd0412339cfb800f423f6bde3105610" - }, - { - "nr": 132106, - "hash": "e3a97404cd36baa5a2d27f1a3f7e0fec1332155d" - }, - { - "nr": 132033, - "hash": "fbae5912de8dcbd24dec5a5a1a47e087c6d8c7f8" - }, - { - "nr": 132348, - "hash": "eaa366c693cda7afac478c866c13073b25905b11" - }, - { - "nr": 132617, - "hash": "2896f3f60d37d389a0a7bbff338a68e1dd004a5a" - }, - { - "nr": 132806, - "hash": "013a437233119cb8048c74b7c371aeef0e6eed69" - }, - { - "nr": 132721, - "hash": "1a198ce27cce56b202212ec20346113b0eb85e72" - }, - { - "nr": 132190, - "hash": "88b250f81cb391a5acd9facac9f104ed5fb3c614" - }, - { - "nr": 131627, - "hash": "c8b4219421fa47bb0776e22244768136d4fdb38a" - }, - { - "nr": 132902, - "hash": "8a44b1364e64d09b43d83f57e0510586b0622eaa" - }, - { - "nr": 130593, - "hash": "edaec2bed29ca17aeaba17cf067f0044fd4b9323" - }, - { - "nr": 132876, - "hash": "52f8a52071014bac0f879e5d3f3071bffa8325b8" - }, - { - "nr": 132149, - "hash": "38e7b985611487d5d50580cc684e9a62facd962f" - }, - { - "nr": 131559, - "hash": "448df64de3a121afa86c4a1708bff64cee10f9c2" - }, - { - "nr": 131568, - "hash": "c5abb671e34cb316130de2afad50c980fc5f8934" - }, - { - "nr": 131444, - "hash": "f70531127b3f26f03a38543e8183b0da7c4fe92d" - }, - { - "nr": 132730, - "hash": "3d5c816ad930ddbff3914e77c6e7aead451a54cb" - }, - { - "nr": 132065, - "hash": "064a81c4b406b753371a553f0217ff6171e15cd7" - }, - { - "nr": 122634, - "hash": "1a2e59683f605dbf6e8eebdb37cc739c7f7c0137" - }, - { - "nr": 132581, - "hash": "51282352ad3717afca9c62c5fa63a628c3706fc0" - }, - { - "nr": 132896, - "hash": "a66a250efb7eb42b34b2e1e364c5284c9301a237" - }, - { - "nr": 132165, - "hash": "2d6df68f54bdd7118490a6bb9850785e18f17a83" - }, - { - "nr": 132339, - "hash": "840e0a9deaba0535e5800e71af63bdcbd2a301d5" - }, - { - "nr": 132338, - "hash": "2ef68b5982425305c6ea1e73cb2eb2a6e3e378f3" - }, - { - "nr": 128351, - "hash": "a72966c96d768c644e0b7fe553082710a6f784b5" - }, - { - "nr": 132822, - "hash": "d94fc9df8c128fe76fdd656702afac38356f8571" - }, - { - "nr": 132305, - "hash": "f062e90d7c16007b867acc0bb36648526a9f3ca4" - }, - { - "nr": 132767, - "hash": "f24b24792a2107116e0be7558ea2c7a3cd8cecdf" - }, - { - "nr": 132903, - "hash": "202fe652239fe87103126de5b7c57f73586bab0d" - }, - { - "nr": 131965, - "hash": "f8442a8d4667d9f1b5318969468d37e41d6aaed2" - }, - { - "nr": 131602, - "hash": "9be72fd85c479487ee9ff9510822bd2799dd6dbf" - }, - { - "nr": 130387, - "hash": "f94e1db55d51618cda38cc0dff3961d4ef275cb9" - }, - { - "nr": 132355, - "hash": "19aeba789022780eda16252a88551f69178041d3" - }, - { - "nr": 131001, - "hash": "7633bc3a700e789932b7e2be60bb27253dc53df8" - }, - { - "nr": 132773, - "hash": "5634d58399dcbb676b4d32a151c9cd6762bc4f89" - }, - { - "nr": 128010, - "hash": "e1b89259f4ccffa61b70d5cdc11330d3d88f9966" - }, - { - "nr": 132342, - "hash": "34ad561747a93205de494d015cfbd00d2604286e" - }, - { - "nr": 132726, - "hash": "561562103bd1c8da8959620940b826231ae59ba1" - }, - { - "nr": 132058, - "hash": "afe417d99031ac6474ae6536f19fad4cccc01018" - }, - { - "nr": 132376, - "hash": "a421dac5059d4496626ca85884adb0e4b0b4173d" - }, - { - "nr": 132000, - "hash": "bf0d88d6015b75ea0d5cb153a9ca5d5fb18516cc" - }, - { - "nr": 132605, - "hash": "e22ab1f083b2402effc395bfd0ef58a9b46826e5" - }, - { - "nr": 132893, - "hash": "60e9fbe7aa1ff9d085a50302ba12b2a2a1816252" - }, - { - "nr": 131525, - "hash": "f3b8859966ebbea7e4096485046b8854a41b26fb" - }, - { - "nr": 132632, - "hash": "61a67d1d2dcd9cb0660d54c86a2d2846c1b1531b" - }, - { - "nr": 133167, - "hash": "0f1c619f37161b553fa65eeb0bf68fad3cafb945" - }, - { - "nr": 133017, - "hash": "5b9411b6d4a3b2b7ab3fee630dd8f7130b3d1455" - }, - { - "nr": 132778, - "hash": "412dbb77757dff218952ec3ea282affd96a7aa60" - }, - { - "nr": 132754, - "hash": "a582de4ea3be45e456a2d1979a9ce14e665c7401" - }, - { - "nr": 131992, - "hash": "2d0af779dbb8f27d6b5e511a5c0392d5df5b584e" - }, - { - "nr": 132012, - "hash": "0d8321dd58964e74652c969123861a450ceb7ccc" - }, - { - "nr": 127183, - "hash": "071145dd0ae92fd10ec06101ea93399a046a300b" - }, - { - "nr": 132965, - "hash": "52add834ed0511293dc2664061150613bf6a4206" - }, - { - "nr": 132752, - "hash": "c94270d85c874443d61bd92ac726276ea521c6f9" - }, - { - "nr": 132542, - "hash": "720f78545464d4332730e7670354e0af9d3f2036" - }, - { - "nr": 132614, - "hash": "ba47fd10e076e166c9fec72100d05f97f7088a0f" - }, - { - "nr": 132109, - "hash": "f8eeaf7f40d7e13287558677d6a6ea51573ab801" - }, - { - "nr": 132443, - "hash": "5ea066496e21f7b90606d890e58f1d7ff4ccbafb" - }, - { - "nr": 130606, - "hash": "f084e8714071e13e48500d4fd2e3d01dab1cbc92" - }, - { - "nr": 132794, - "hash": "66d2a70dd6e16214253e8ea6328cf86de5432d5f" - }, - { - "nr": 128653, - "hash": "38c050a1f052fe2a2b57b0072c5cee3fb9e14d91" - }, - { - "nr": 132648, - "hash": "a4eb31f5ef277bdf71eba7bd39a1c87b2a57654d" - }, - { - "nr": 129874, - "hash": "43930b9ebeda2ca019f20f0cd3d1e53de17ff820" - }, - { - "nr": 133120, - "hash": "f1b0faa1208d0b22e1e09e56e8e12ad54a1cee6b" - }, - { - "nr": 133136, - "hash": "4902a1ea5c80f09932cd056eeb40b8641a0f16fc" - }, - { - "nr": 132285, - "hash": "b63d1892c78ebed516e720a4fd95e8563465f838" - }, - { - "nr": 131968, - "hash": "5c13364e9fe717b4f12afb40a77932b70148c414" - }, - { - "nr": 131664, - "hash": "b4c18f407d6c66a722fd04dc6fb2f477b9491e2e" - }, - { - "nr": 131845, - "hash": "268215f524727aa5a210cf47b538835d8c070086" - }, - { - "nr": 131265, - "hash": "a077f8aaf643b6b1f009733267eb2b2566ef770c" - }, - { - "nr": 132933, - "hash": "cc32f9a98f735c62a147989b2c985abc6003646b" - }, - { - "nr": 132753, - "hash": "b9256b6e2bfaa03fd31d77256225d63b677933e0" - }, - { - "nr": 132034, - "hash": "1bf29907e7eb3e568fb6a76ead5193f6fb0a21a2" - }, - { - "nr": 131842, - "hash": "79a1ea1f70bcd917015fac3a6eb2b36fbe5ea791" - }, - { - "nr": 131919, - "hash": "bed9e631e88369c5d876e99b043433096b7a1030" - }, - { - "nr": 131318, - "hash": "44c14244c9509ad75e711ab5a4f9efcd2ec233b6" - }, - { - "nr": 132910, - "hash": "cd48f2b63a05ee5b6637c0e000f87d9d4dc2c28a" - }, - { - "nr": 133060, - "hash": "c57424e88538b4ca9ee9d3a5e29deb8d0b936dc0" - }, - { - "nr": 132833, - "hash": "5fcc4ee2ee3afb90d319ab0c5ac4b98884d21bbd" - }, - { - "nr": 132803, - "hash": "e117a975ca2dbcf9826317a3c59f5f8face08668" - }, - { - "nr": 130909, - "hash": "3bfd22983a3bb82cd8de5a22009df2ae2f624ea1" - }, - { - "nr": 132472, - "hash": "d6f8937bbc6d5994e13a1caf6c02c20a5809ef21" - }, - { - "nr": 129438, - "hash": "259c95471debc752daddf63fcbb97db7dcd12718" - }, - { - "nr": 132127, - "hash": "59a322aa57b50ea3f616a57df0119996c20c2d76" - }, - { - "nr": 132912, - "hash": "9a3a232d4a055af50d687a3de2571bdc45ef1304" - }, - { - "nr": 132932, - "hash": "14f5bfc18c57d01b4b484c920cef757ebed91959" - }, - { - "nr": 131506, - "hash": "96257090e78ac2e78eb13411e989782c8d4546f1" - }, - { - "nr": 132514, - "hash": "18cbc73c21271cec673d730df3146d4d66c48299" - }, - { - "nr": 133013, - "hash": "7fe29fbc91d2da948a100336aadd68dac38e387a" - }, - { - "nr": 133034, - "hash": "75696ed65c0faa7cd534fed7b98dad00d5de7501" - }, - { - "nr": 132656, - "hash": "c8adc1c711f3d9e880bbde28f38d319f78584cfb" - }, - { - "nr": 131962, - "hash": "417f5bbca323d8b342d041a810d03580cc4a1fa5" - }, - { - "nr": 131266, - "hash": "ec248f757165d1ad348b347ec5f130454b9b9fbe" - }, - { - "nr": 132028, - "hash": "a4e91e6aa65b75eccf9c22d8d0fd535eaf022a85" - }, - { - "nr": 132413, - "hash": "45c4e3f43b7a708bdcee4e751aa77b70a279dc7d" - }, - { - "nr": 132117, - "hash": "9c2a30abe6f615507889027a4fd5e9f88fe862e9" - }, - { - "nr": 131406, - "hash": "fb935dbadd62297a2f13e8f48329417a30405c98" - }, - { - "nr": 132642, - "hash": "26dd6d3fdc4dcfcfc95a251b22be0f604da4d480" - }, - { - "nr": 132277, - "hash": "ba6fecb7352d339ce106aee5a59fef9b6a819550" - }, - { - "nr": 132574, - "hash": "51a4c35b780755148f4d9a39b2712ac53dcebf1d" - }, - { - "nr": 132509, - "hash": "befe926959b983108d91af678da8e9738f32d8af" - }, - { - "nr": 132484, - "hash": "81e04903902316661bc4c6f19808bc79b583fa09" - }, - { - "nr": 130782, - "hash": "97fb9a3ee33301b7e5d61a7d1ca1de88fd989dfd" - }, - { - "nr": 133068, - "hash": "fa2a813863e6d0176419993b1f73282b443ab02f" - }, - { - "nr": 131844, - "hash": "c0cd9d57243054696fbeb886c77b455ac920cf9a" - }, - { - "nr": 132868, - "hash": "b2f68a50af2e4046be7a296d7f6b44f35a903901" - }, - { - "nr": 132558, - "hash": "e2cedfa8944217cabec71c37d185917bb5a0f818" - }, - { - "nr": 132513, - "hash": "077323a48896d495bd8b4eae8800e5311630d4e2" - }, - { - "nr": 132456, - "hash": "cf39658750766b774f1e164e66107f7f008839e5" - }, - { - "nr": 132784, - "hash": "4c4e9ead8b0a6e548be701e90241b4b24438316f" - }, - { - "nr": 130919, - "hash": "3cbfb3d9fa0335c9e4dd1fbbfb022ce3831a36c5" - }, - { - "nr": 131818, - "hash": "aa5d21c6c1bb019491039fd2376ed4c62525c544" - }, - { - "nr": 130542, - "hash": "4183772e70a623700b022adba351349122637ea1" - }, - { - "nr": 131961, - "hash": "f6bcb6614c66b2a4467023637378eca988252784" - }, - { - "nr": 131311, - "hash": "755ae0e63950e2900296345ff2e1af5d965c5b0e" - }, - { - "nr": 130852, - "hash": "f2839d53aa4e51f151da21165e31efb2ec499762" - }, - { - "nr": 130653, - "hash": "0d2fe7e7f0234395c439f23d9423523d42f8263f" - }, - { - "nr": 130160, - "hash": "ff1457c00c5d448657d43a7d8c4017d35703113e" - }, - { - "nr": 132548, - "hash": "17585367ff5699e149ee0d7fa0c41804749da95b" - }, - { - "nr": 132751, - "hash": "2ae039e3eabba042a4fcfb7b952443732e593e6e" - }, - { - "nr": 132674, - "hash": "b9e8323804a7001d325ec8d58920d7f1c08a8c17" - }, - { - "nr": 132351, - "hash": "557267a267f94c50295a045f03bd019b55f2b320" - }, - { - "nr": 131425, - "hash": "072d8337b2733e645320cf5241bad54010e7791f" - }, - { - "nr": 131989, - "hash": "19471e159a3bd1933bf234d55aefba94e7898024" - }, - { - "nr": 132764, - "hash": "6d439f38c1889e3854ef0c6a8422d569db4ec6a9" - }, - { - "nr": 132284, - "hash": "9a2ffbba4eebb5758666e32b5def325df4c92f37" - }, - { - "nr": 131996, - "hash": "7f7a6c53e848af0ae196854623138e576c79a65a" - }, - { - "nr": 130503, - "hash": "b3b896159fe1db26f8d7025b6b46f58767d93377" - }, - { - "nr": 132391, - "hash": "f0610c8e87d3d4647bebaded5846beeca99879f2" - }, - { - "nr": 133293, - "hash": "765de5cb84296789f2f1f8959c5b4ef0c1b40183" - }, - { - "nr": 133164, - "hash": "5b6b52bb008fe7d299ff06cdeee7c3209f49d04c" - }, - { - "nr": 132768, - "hash": "d8b29e5470008a3ce5963016594792dd8e269fdd" - }, - { - "nr": 132326, - "hash": "1f01abbeae5eaa18cded98d60154c927dff53b8d" - }, - { - "nr": 131574, - "hash": "63734feeb6bb604d50b001b641c367e65c010ed9" - }, - { - "nr": 133157, - "hash": "dcc046bd5dfa276355627adfde7c0886eae56cf4" - }, - { - "nr": 129458, - "hash": "8b20f9d2c1478df03708735a649249694a059a43" - }, - { - "nr": 131887, - "hash": "d944e26e1ac921a46e05374ecbae3df27ebbec8a" - }, - { - "nr": 131587, - "hash": "32510ef616532f1c2194ab8c11a897347749b64e" - }, - { - "nr": 132723, - "hash": "1ce7af6cd0ec86d6550c9c687c4b18b4e4857ac4" - }, - { - "nr": 132701, - "hash": "ae1f663e98e33147144e57d5e954e9b856ca8241" - }, - { - "nr": 132699, - "hash": "722ef76d6dbf7690f6349cf5101ec2476cf09e15" - }, - { - "nr": 132054, - "hash": "f21eb4afda5f99e76fd4fcbc7d3ffc576232fee6" - }, - { - "nr": 131586, - "hash": "994d9657e1f1ebb3572ea63d9c4944d76d492162" - }, - { - "nr": 132537, - "hash": "bd9210f4b435f34069218522eefc1bbbe8850db2" - }, - { - "nr": 132647, - "hash": "f72341611e815e1458ffaf7ba1e2ae3adaca1239" - }, - { - "nr": 132781, - "hash": "8670ded56bc41c05b8d329f4e7ecf42fc5b6fd16" - }, - { - "nr": 131300, - "hash": "b83f6a63aac5e8c696af6743d1ee9e01390febd2" - }, - { - "nr": 133276, - "hash": "2c8dea71630fd64566e0ef3a65ab89b1e3c3a2eb" - }, - { - "nr": 132837, - "hash": "43f668a2a00ccb45e91c69291b9d612847b4d231" - }, - { - "nr": 132214, - "hash": "47381f79529a10e91092ca80ed2e5d08472fdb29" - }, - { - "nr": 133023, - "hash": "eea981d4ad2cca20633a6518f5f8e1e86b1ea47b" - }, - { - "nr": 132683, - "hash": "e56c92fea4af25e6f15704226d2d0cbd00d08480" - }, - { - "nr": 132183, - "hash": "e70bea92e272c0f02febb00529bea81ca9a2f601" - }, - { - "nr": 130989, - "hash": "78e42f6b702ed65e3415560b07b3ba205251cca7" - }, - { - "nr": 131459, - "hash": "7f4ae7abe12093a80294f02acd4c19eab8793034" - }, - { - "nr": 131549, - "hash": "97720888ed4c2ea70bdd4ccf900dc3f4b842b3d4" - }, - { - "nr": 133012, - "hash": "05c064734ab96e489de71687ce0745523d3639e7" - }, - { - "nr": 132763, - "hash": "9e4669ba71fad8c74fde0e54dba6c9562c621adc" - }, - { - "nr": 131790, - "hash": "7f56f486de2c9c5be7904b701f0e861025516811" - }, - { - "nr": 131799, - "hash": "795bb6ad8cc2ad9979789416c4da4f0a3f29e50a" - }, - { - "nr": 132173, - "hash": "c2ebca7d397515b2e737ecd5593181dc518610ff" - }, - { - "nr": 132244, - "hash": "95a105196d49fb59d795560a0b77b382efcae052" - }, - { - "nr": 132257, - "hash": "c9056a7a5b11918bb2bbb90639918f68f6b2315e" - }, - { - "nr": 133046, - "hash": "d941dc136238a6b1d1ba9e31311844baa820926d" - }, - { - "nr": 132595, - "hash": "d678a955a151464410e1c918063b2038092e4b4b" - }, - { - "nr": 131354, - "hash": "7676817b6fb9bb87ed6986a5abc01e8940a21294" - }, - { - "nr": 131822, - "hash": "dc3b8d4ea1b17348924ecdfa2ec73e59a38e42e1" - }, - { - "nr": 131408, - "hash": "237b2981fe280e63a1baec081e494c7f49c7490d" - }, - { - "nr": 132706, - "hash": "8c22a4a1c773764370895df07922afb9515fb7ec" - }, - { - "nr": 133018, - "hash": "06658fc25e137c9ab473ba9614a4545b35393148" - }, - { - "nr": 132361, - "hash": "b1b92e730b276fe3f8cfc44dab0bb561797f1e18" - }, - { - "nr": 132762, - "hash": "a20c56e97ac6975e469f9e9965f5deed63e72214" - }, - { - "nr": 132433, - "hash": "e0e3d9b9a323158e1053bdffec68491efde9417e" - }, - { - "nr": 131873, - "hash": "373ca7e553f02eb6d4c454babe6a7cac70ecf018" - }, - { - "nr": 132178, - "hash": "543a7c41119131af05f911a25248cdfd4fecdc8f" - }, - { - "nr": 130161, - "hash": "5e083d708f1297d7aaa417a5ddfa184d7d859db6" - }, - { - "nr": 133042, - "hash": "f0f3b7ce3001ee9c409f0101cbbdcd83c25a09d7" - }, - { - "nr": 132704, - "hash": "54b91d599cc53af673036e96bd0a801d3849d2fa" - }, - { - "nr": 132080, - "hash": "4442970df988b58f2a062937ee975d290de48840" - }, - { - "nr": 131491, - "hash": "eaeadb4fda66ca528f76a2170b473b730a1cdde4" - }, - { - "nr": 130994, - "hash": "3c57b89a1e8079b76aeec93fcf43c080e426fd10" - }, - { - "nr": 132522, - "hash": "b4f25fa6ecee369246c19f9ec89ffdcdffe06fb7" - }, - { - "nr": 132840, - "hash": "df10c90dfea27532584abd43d6cff7b63b88bedb" - }, - { - "nr": 132504, - "hash": "c828a3fa6ab9073a278d47e3fe5ad045f3bae17c" - }, - { - "nr": 131916, - "hash": "91a3639900c07cb95c506c99ffd71118cd6c6a3b" - }, - { - "nr": 131493, - "hash": "81be7056e17c90dd6db3e73219ba52fa5d1d85f1" - }, - { - "nr": 130333, - "hash": "e95ca48d4f3f76943e3b88c758b10219e0bf6baf" - }, - { - "nr": 131418, - "hash": "778f85081f15c3a44ed62c32fe31f71dcd64a0fa" - }, - { - "nr": 131213, - "hash": "243b1e1ce3423d7987510d120937ef08bd63b038" - }, - { - "nr": 132430, - "hash": "c0771410453b65dcad28d14af794a8a3e33772d8" - }, - { - "nr": 131306, - "hash": "0d899de9ba0921aa3c6d48c84e510fee8a172b3e" - }, - { - "nr": 132626, - "hash": "991b6c44ca0c89d458d0afd323f6d95675287209" - }, - { - "nr": 132832, - "hash": "c4519a4a6e559d4e23002731eac4111a16a285b4" - }, - { - "nr": 132007, - "hash": "1fb738c70b93e39647c636a362c595e4bbd86e7c" - }, - { - "nr": 132210, - "hash": "d20362e11bc503f14a38b13b2f26d2206b5da12a" - }, - { - "nr": 133279, - "hash": "c8c282c3219ffa7b27b8cf77a7cd7cf96e4c5df6" - }, - { - "nr": 131089, - "hash": "b31804dc2e75d0c41bcbfbb697a12a2331101806" - }, - { - "nr": 132750, - "hash": "32271d486492697a1d6fb40703540f3585e0328b" - }, - { - "nr": 132238, - "hash": "c4a094e237e59a11448736a9204f9af3e5239e9a" - } - ] +{ + "mail": "ryan.su@queensu.ca", + "name": "ryan-su-12", + "date": 1755870745, + "prs": [ + { + "nr": 130727, + "hash": "8fed7b0443e54e3cf35bf5cf09951630c5113e2e" + }, + { + "nr": 132720, + "hash": "d9124dc170ec24c3314995adab494f65e8f8adcf" + }, + { + "nr": 132594, + "hash": "293b553135dc918ed05f30913822a60ba0c1a9af" + }, + { + "nr": 132429, + "hash": "57994c84a8a793957e2ef8c88415aa21e1fd6220" + }, + { + "nr": 131018, + "hash": "4c7637fe5a174b7928f31777bb049fd8da056866" + }, + { + "nr": 131501, + "hash": "8d4e0b710c85f5d0b6bf781eee7567bbabb7757a" + }, + { + "nr": 131647, + "hash": "68f838ecf7f1c7b7a60a5169072aaf8677bd1cd3" + }, + { + "nr": 132935, + "hash": "623250b7cbfe681e564125d72e7aee6efe442540" + }, + { + "nr": 133030, + "hash": "0c71821c1694989bc9c74448f42cf455dfe0331d" + }, + { + "nr": 132776, + "hash": "c8132191e28c4f1c79bab395d76560cf9a1b9471" + }, + { + "nr": 120816, + "hash": "580f504e40d5c95450193103360e34084050b69e" + }, + { + "nr": 131752, + "hash": "ec3b6ddafb1279955c8812f77782ee8e716ba6a7" + }, + { + "nr": 132551, + "hash": "278984d39b4bee5ce6019c573bb32ecb19f28d88" + }, + { + "nr": 132724, + "hash": "c22c05c62e37295bdf8e1cefaca5bc1d325074eb" + }, + { + "nr": 129373, + "hash": "b75bea2d3ed25456ad525ad7b5bb096e7dc4a1a8" + }, + { + "nr": 131981, + "hash": "d3b0080a3a8503abdc9115c49a78b87970cba45e" + }, + { + "nr": 132895, + "hash": "cb2ae6f26e0bf389d5d24d48220b73d093074041" + }, + { + "nr": 131157, + "hash": "0436f97897b20b18c6265420835a0acb76278b80" + }, + { + "nr": 132229, + "hash": "fae4dc3100490a0b5454457bf50126126eca6a34" + }, + { + "nr": 131165, + "hash": "d9383076554991af204efef1613870c67748c40f" + }, + { + "nr": 133350, + "hash": "f5cf712024590527741a948148dc41cfe2888d2f" + }, + { + "nr": 132457, + "hash": "164984684f8495e8afdb29cad0e35370b6ac072b" + }, + { + "nr": 132108, + "hash": "b7e662e6ddac71b434eb6618602928635609a76f" + }, + { + "nr": 132194, + "hash": "f31bd80286bab32275b48a6f99c8f431a42305fe" + }, + { + "nr": 131562, + "hash": "3a5f52f5838517b4b381f30f9f69b1c7017246d4" + }, + { + "nr": 131934, + "hash": "d030ff32b92d9a366202580ac61ee231a75764cb" + }, + { + "nr": 125271, + "hash": "b6021ca3ad9f1ff09e104f3830aabe6c0026b3cb" + }, + { + "nr": 132777, + "hash": "b392801aa1563d093ec05771511225bf69b3afdb" + }, + { + "nr": 131658, + "hash": "b612fb59d35de76e492890d2d07d57bcd103f8fc" + }, + { + "nr": 133085, + "hash": "95c6ffa1b411a2ab469fef52aa580de00d5f6a4f" + }, + { + "nr": 133028, + "hash": "1a7616922748f56cdf323754b35dfd865815ec7a" + }, + { + "nr": 132742, + "hash": "e479e914e50978e7d70b45a63008bcde62e0c321" + }, + { + "nr": 132236, + "hash": "e707a19fff4b64c9f1bf3de6f382cf6795227518" + }, + { + "nr": 132940, + "hash": "75a0c3927420a080573a594cc43972776730ea9e" + }, + { + "nr": 132340, + "hash": "f7758b9e6936aa7a1f9ce84f5fca40cf19d401ca" + }, + { + "nr": 131798, + "hash": "89049e28c81f6ef0f3230faad2aea029041ee1dd" + }, + { + "nr": 127667, + "hash": "6d60faa177e0fcdfbd078624244c8b7d3dac4456" + }, + { + "nr": 132942, + "hash": "0a7a55197314a1e1ed0d4546e6edf89366058e07" + }, + { + "nr": 132838, + "hash": "816d7936a9378af55598db5c401d0191e980ca85" + }, + { + "nr": 132755, + "hash": "65d6ec9d84dec04248ca587db9bd0427a428b7c4" + }, + { + "nr": 126619, + "hash": "a3f7d0b06280fd716b16b619ca06df21708fffc5" + }, + { + "nr": 131741, + "hash": "bd9cb0789cdc246974a5ac6a58b41446ea5fd2e4" + }, + { + "nr": 130720, + "hash": "39d77d023383d9d8090b14c5fa32eaffc877e7b6" + }, + { + "nr": 129237, + "hash": "a3d2e9b77aa82d4a57c4c7b0f38659834eb7b351" + }, + { + "nr": 132299, + "hash": "54e8eee69e870babac516d164f7a58866eea8c9b" + }, + { + "nr": 132529, + "hash": "4c03d171633de8d152ee2e99f8ea1fee204e740d" + }, + { + "nr": 132560, + "hash": "9047ca5a82cbd0c3892caf3d03f28bf717d66ec7" + }, + { + "nr": 131632, + "hash": "29a6151804a75b541f35c70efcdddede8d61d2cd" + }, + { + "nr": 131868, + "hash": "63eb7b44c241861e1fa163ed14637b9cf16dade9" + }, + { + "nr": 131085, + "hash": "1c414e952f84d4d57b3634d62ef64bcc9526be79" + }, + { + "nr": 132296, + "hash": "205c13bf1c5a4ef56630216d893fc6c840bc1fc5" + }, + { + "nr": 132821, + "hash": "847491e03c73711cc73fbdf3b9f4dd777bf83e3c" + }, + { + "nr": 132645, + "hash": "0b60177e27b9005f9dc592d2c007b89ae3be6b9e" + }, + { + "nr": 131641, + "hash": "15387daf7c997fbd06614f9269422fc66359bd9a" + }, + { + "nr": 132743, + "hash": "4fdb6c9eed139cae1ea9df4b06bb025c402abc5c" + }, + { + "nr": 128748, + "hash": "a118b36fcdf6a9a093ee3c65a1a67e31a6dc9138" + }, + { + "nr": 131495, + "hash": "d67ea6f03a11dc24596ca5c0abfc3d400291e5fc" + }, + { + "nr": 133021, + "hash": "4fdd882445b4c84b96d2ddaecb4325564ddb3bb1" + }, + { + "nr": 132999, + "hash": "9f923ad67e1fe57cab2171809c6075ca37db3629" + }, + { + "nr": 132700, + "hash": "45306c0746856bbdf9359766dcba17057b930ed8" + }, + { + "nr": 133076, + "hash": "7b0f391c083848e602c8efde935eb761ab59d255" + }, + { + "nr": 132473, + "hash": "d632784bc899baa85da0d51a309e3b75cfbab34a" + }, + { + "nr": 132698, + "hash": "561ab00d174778992d95326b2e2fde2ce86d4c7b" + }, + { + "nr": 132467, + "hash": "3c2bf815c52dfd8ec3b2431e7639dd4ee881de4c" + }, + { + "nr": 132258, + "hash": "c954328d4adb77a6d6a524649c3b22ec13706e59" + }, + { + "nr": 132604, + "hash": "fbedf846dc67143de2f9e1cede8d0ba4c2363996" + }, + { + "nr": 133135, + "hash": "27dabdc3946f789246dd10ed07f026dea951d2a8" + }, + { + "nr": 131463, + "hash": "25559829804c6aa9ef3dd945d0d68ec7763e0f92" + }, + { + "nr": 133027, + "hash": "dd6883698378e8d640cf26efd9838998cae8ef46" + }, + { + "nr": 131837, + "hash": "0104d60ef2fb5e9816dd09dc8d1e6119f3157303" + }, + { + "nr": 132036, + "hash": "f0beb570a6e790adfcc9cf3cdb9af516b2e857d0" + }, + { + "nr": 127365, + "hash": "fbae49fab75c5387fe39428019163dbc8842152a" + }, + { + "nr": 131623, + "hash": "ba007c76ef909b35f8e37a2889f7d1d3839d5a81" + }, + { + "nr": 132662, + "hash": "6456fb0c7b8f032059b2491d968ab01f553c697a" + }, + { + "nr": 132884, + "hash": "fee5d0325f54dd7fbf51c451d90de3cb73c1f908" + }, + { + "nr": 132019, + "hash": "903ff9672a2e073f3c181729112c0918ff90a4fd" + }, + { + "nr": 132772, + "hash": "cf63760e6721608c18207956b8bbf38cebf4411d" + }, + { + "nr": 132251, + "hash": "01a085fef0db0f2fa870f38cd0a7a7337313259c" + }, + { + "nr": 131654, + "hash": "9480cbb043fb3bfedb493e99fc406d1d61a3a74d" + }, + { + "nr": 131768, + "hash": "7f5a3cbebce12b61be47e822326a54dcdfb4bc4b" + }, + { + "nr": 131151, + "hash": "350fd26ce48049051a985132c3c0abb15cf01f15" + }, + { + "nr": 132593, + "hash": "e4f8aeab3ac2dfb416548f0338a8f53fedb59f9a" + }, + { + "nr": 132725, + "hash": "26733f63e52caa76dc6e0f242708a3e86fa714a2" + }, + { + "nr": 131514, + "hash": "60184ebe89ba94418c89c3478d226eadc9313148" + }, + { + "nr": 131979, + "hash": "842fb87a4976b6e279c7549c4c45a99fca14ec7f" + }, + { + "nr": 131662, + "hash": "3d095e0e13afd77374130198539d6de662fb31ed" + }, + { + "nr": 131509, + "hash": "40b39e398b9ca83f73f9aa39f0e1729a2003dd69" + }, + { + "nr": 132121, + "hash": "b3db6401c6a85314da4a5aa69314686e2c3f8920" + }, + { + "nr": 132374, + "hash": "d7703262a87c652bd58237346ed7d2312ef701ab" + }, + { + "nr": 132741, + "hash": "96c4b780054b83dc713dbdca6fb47a52d9366a26" + }, + { + "nr": 132087, + "hash": "bf34bdc5d561d3559997f245621c586d479d5726" + }, + { + "nr": 131299, + "hash": "4b305dee266fe09dcb5bd454b6ee01de2b2dc32a" + }, + { + "nr": 132890, + "hash": "f2f42443b1032041eeba3ada052980870013f65c" + }, + { + "nr": 132779, + "hash": "e49e1be282e16dcf7d527e26a04b5b7ada7c3be7" + }, + { + "nr": 122384, + "hash": "6f1492652bb844a64f6c1b49459cfdfb574dd3ac" + }, + { + "nr": 129501, + "hash": "3c38f44726a41d78d0e4f4436c26ee93d3630e73" + }, + { + "nr": 131215, + "hash": "cd9735be508a3c59b4307c8297b41434476d6fc7" + }, + { + "nr": 132352, + "hash": "7856471f06a83de48393d81b734735f358f65464" + }, + { + "nr": 132096, + "hash": "1a0d4e1e0712807554ccafeffdc117652a2581a7" + }, + { + "nr": 131677, + "hash": "1020831f9ee933a383f208b89ada4525917fe782" + }, + { + "nr": 133226, + "hash": "bc5c7cc451726f656af41539288cf84fc1df6f40" + }, + { + "nr": 132083, + "hash": "d93939044c3e0eb86198f41e2059e838a74c3988" + }, + { + "nr": 132901, + "hash": "94123dcf8bc5a0f445b095fada4ed8f36d412650" + }, + { + "nr": 132222, + "hash": "d9ad44080b5104ea83292c39db65abee80000ad7" + }, + { + "nr": 133062, + "hash": "ad15eb353d860e555f8fd3c93fe5256d47299b46" + }, + { + "nr": 132800, + "hash": "6d3328b35706a82e1bda03f0c8532d777e104e37" + }, + { + "nr": 132907, + "hash": "0c3999f0446335f4d13176781fa5c99237157e89" + }, + { + "nr": 132040, + "hash": "85c3d1e1ae769978d0b66c4b4c27f83d1a9cde0d" + }, + { + "nr": 132886, + "hash": "ab9067c4cfb6fc009d4baf5ae90221a765e5ca86" + }, + { + "nr": 132462, + "hash": "11339f3fcae77991ef27274be258fa28eb02d420" + }, + { + "nr": 130713, + "hash": "d320b9800eac62e26bc55d14440fb281d53f5ce2" + }, + { + "nr": 132771, + "hash": "c7b005e392d98e94599b2e4ebc94df956b1f3eba" + }, + { + "nr": 132276, + "hash": "7c24b71942e2c55d258029e821e5d8a2238548b9" + }, + { + "nr": 132219, + "hash": "534b4b561a272566b6a302e2db5385745c28b0bb" + }, + { + "nr": 132765, + "hash": "15daf83e735d1ecbb61d2ce5fa00bae15c238d42" + }, + { + "nr": 131907, + "hash": "9a97f4c8876d4a373eab7469553d46c6c147795b" + }, + { + "nr": 129837, + "hash": "03f8e21aacf1539aa0ff64f3868382c0e29be406" + }, + { + "nr": 133016, + "hash": "11100f103286f82c4bd23956d1e1d33f50c39b93" + }, + { + "nr": 132341, + "hash": "83a6e3eb1e6496216dab767ae4a222c5144b23b4" + }, + { + "nr": 132336, + "hash": "96cc48212d097c469c9b4795ca9d73fda3d3b548" + }, + { + "nr": 131660, + "hash": "9c174cd2e417917b0bcf7388418d54c59ed95f44" + }, + { + "nr": 131563, + "hash": "d7f70fdd9b4307b7f6f9a57cd0dd3cfdbfd8f7e0" + }, + { + "nr": 131973, + "hash": "4deff5df8f09b5462ae0c17918da6b858559ab30" + }, + { + "nr": 130987, + "hash": "d5dacd3facd0412339cfb800f423f6bde3105610" + }, + { + "nr": 132106, + "hash": "e3a97404cd36baa5a2d27f1a3f7e0fec1332155d" + }, + { + "nr": 132033, + "hash": "fbae5912de8dcbd24dec5a5a1a47e087c6d8c7f8" + }, + { + "nr": 132348, + "hash": "eaa366c693cda7afac478c866c13073b25905b11" + }, + { + "nr": 132617, + "hash": "2896f3f60d37d389a0a7bbff338a68e1dd004a5a" + }, + { + "nr": 132806, + "hash": "013a437233119cb8048c74b7c371aeef0e6eed69" + }, + { + "nr": 132721, + "hash": "1a198ce27cce56b202212ec20346113b0eb85e72" + }, + { + "nr": 132190, + "hash": "88b250f81cb391a5acd9facac9f104ed5fb3c614" + }, + { + "nr": 131627, + "hash": "c8b4219421fa47bb0776e22244768136d4fdb38a" + }, + { + "nr": 132902, + "hash": "8a44b1364e64d09b43d83f57e0510586b0622eaa" + }, + { + "nr": 130593, + "hash": "edaec2bed29ca17aeaba17cf067f0044fd4b9323" + }, + { + "nr": 132876, + "hash": "52f8a52071014bac0f879e5d3f3071bffa8325b8" + }, + { + "nr": 132149, + "hash": "38e7b985611487d5d50580cc684e9a62facd962f" + }, + { + "nr": 131559, + "hash": "448df64de3a121afa86c4a1708bff64cee10f9c2" + }, + { + "nr": 131568, + "hash": "c5abb671e34cb316130de2afad50c980fc5f8934" + }, + { + "nr": 131444, + "hash": "f70531127b3f26f03a38543e8183b0da7c4fe92d" + }, + { + "nr": 132730, + "hash": "3d5c816ad930ddbff3914e77c6e7aead451a54cb" + }, + { + "nr": 132065, + "hash": "064a81c4b406b753371a553f0217ff6171e15cd7" + }, + { + "nr": 122634, + "hash": "1a2e59683f605dbf6e8eebdb37cc739c7f7c0137" + }, + { + "nr": 132581, + "hash": "51282352ad3717afca9c62c5fa63a628c3706fc0" + }, + { + "nr": 132896, + "hash": "a66a250efb7eb42b34b2e1e364c5284c9301a237" + }, + { + "nr": 132165, + "hash": "2d6df68f54bdd7118490a6bb9850785e18f17a83" + }, + { + "nr": 132339, + "hash": "840e0a9deaba0535e5800e71af63bdcbd2a301d5" + }, + { + "nr": 132338, + "hash": "2ef68b5982425305c6ea1e73cb2eb2a6e3e378f3" + }, + { + "nr": 128351, + "hash": "a72966c96d768c644e0b7fe553082710a6f784b5" + }, + { + "nr": 132822, + "hash": "d94fc9df8c128fe76fdd656702afac38356f8571" + }, + { + "nr": 132305, + "hash": "f062e90d7c16007b867acc0bb36648526a9f3ca4" + }, + { + "nr": 132767, + "hash": "f24b24792a2107116e0be7558ea2c7a3cd8cecdf" + }, + { + "nr": 132903, + "hash": "202fe652239fe87103126de5b7c57f73586bab0d" + }, + { + "nr": 131965, + "hash": "f8442a8d4667d9f1b5318969468d37e41d6aaed2" + }, + { + "nr": 131602, + "hash": "9be72fd85c479487ee9ff9510822bd2799dd6dbf" + }, + { + "nr": 130387, + "hash": "f94e1db55d51618cda38cc0dff3961d4ef275cb9" + }, + { + "nr": 132355, + "hash": "19aeba789022780eda16252a88551f69178041d3" + }, + { + "nr": 131001, + "hash": "7633bc3a700e789932b7e2be60bb27253dc53df8" + }, + { + "nr": 132773, + "hash": "5634d58399dcbb676b4d32a151c9cd6762bc4f89" + }, + { + "nr": 128010, + "hash": "e1b89259f4ccffa61b70d5cdc11330d3d88f9966" + }, + { + "nr": 132342, + "hash": "34ad561747a93205de494d015cfbd00d2604286e" + }, + { + "nr": 132726, + "hash": "561562103bd1c8da8959620940b826231ae59ba1" + }, + { + "nr": 132058, + "hash": "afe417d99031ac6474ae6536f19fad4cccc01018" + }, + { + "nr": 132376, + "hash": "a421dac5059d4496626ca85884adb0e4b0b4173d" + }, + { + "nr": 132000, + "hash": "bf0d88d6015b75ea0d5cb153a9ca5d5fb18516cc" + }, + { + "nr": 132605, + "hash": "e22ab1f083b2402effc395bfd0ef58a9b46826e5" + }, + { + "nr": 132893, + "hash": "60e9fbe7aa1ff9d085a50302ba12b2a2a1816252" + }, + { + "nr": 131525, + "hash": "f3b8859966ebbea7e4096485046b8854a41b26fb" + }, + { + "nr": 132632, + "hash": "61a67d1d2dcd9cb0660d54c86a2d2846c1b1531b" + }, + { + "nr": 133167, + "hash": "0f1c619f37161b553fa65eeb0bf68fad3cafb945" + }, + { + "nr": 133017, + "hash": "5b9411b6d4a3b2b7ab3fee630dd8f7130b3d1455" + }, + { + "nr": 132778, + "hash": "412dbb77757dff218952ec3ea282affd96a7aa60" + }, + { + "nr": 132754, + "hash": "a582de4ea3be45e456a2d1979a9ce14e665c7401" + }, + { + "nr": 131992, + "hash": "2d0af779dbb8f27d6b5e511a5c0392d5df5b584e" + }, + { + "nr": 132012, + "hash": "0d8321dd58964e74652c969123861a450ceb7ccc" + }, + { + "nr": 127183, + "hash": "071145dd0ae92fd10ec06101ea93399a046a300b" + }, + { + "nr": 132965, + "hash": "52add834ed0511293dc2664061150613bf6a4206" + }, + { + "nr": 132752, + "hash": "c94270d85c874443d61bd92ac726276ea521c6f9" + }, + { + "nr": 132542, + "hash": "720f78545464d4332730e7670354e0af9d3f2036" + }, + { + "nr": 132614, + "hash": "ba47fd10e076e166c9fec72100d05f97f7088a0f" + }, + { + "nr": 132109, + "hash": "f8eeaf7f40d7e13287558677d6a6ea51573ab801" + }, + { + "nr": 132443, + "hash": "5ea066496e21f7b90606d890e58f1d7ff4ccbafb" + }, + { + "nr": 130606, + "hash": "f084e8714071e13e48500d4fd2e3d01dab1cbc92" + }, + { + "nr": 132794, + "hash": "66d2a70dd6e16214253e8ea6328cf86de5432d5f" + }, + { + "nr": 128653, + "hash": "38c050a1f052fe2a2b57b0072c5cee3fb9e14d91" + }, + { + "nr": 132648, + "hash": "a4eb31f5ef277bdf71eba7bd39a1c87b2a57654d" + }, + { + "nr": 129874, + "hash": "43930b9ebeda2ca019f20f0cd3d1e53de17ff820" + }, + { + "nr": 133120, + "hash": "f1b0faa1208d0b22e1e09e56e8e12ad54a1cee6b" + }, + { + "nr": 133136, + "hash": "4902a1ea5c80f09932cd056eeb40b8641a0f16fc" + }, + { + "nr": 132285, + "hash": "b63d1892c78ebed516e720a4fd95e8563465f838" + }, + { + "nr": 131968, + "hash": "5c13364e9fe717b4f12afb40a77932b70148c414" + }, + { + "nr": 131664, + "hash": "b4c18f407d6c66a722fd04dc6fb2f477b9491e2e" + }, + { + "nr": 131845, + "hash": "268215f524727aa5a210cf47b538835d8c070086" + }, + { + "nr": 131265, + "hash": "a077f8aaf643b6b1f009733267eb2b2566ef770c" + }, + { + "nr": 132933, + "hash": "cc32f9a98f735c62a147989b2c985abc6003646b" + }, + { + "nr": 132753, + "hash": "b9256b6e2bfaa03fd31d77256225d63b677933e0" + }, + { + "nr": 132034, + "hash": "1bf29907e7eb3e568fb6a76ead5193f6fb0a21a2" + }, + { + "nr": 131842, + "hash": "79a1ea1f70bcd917015fac3a6eb2b36fbe5ea791" + }, + { + "nr": 131919, + "hash": "bed9e631e88369c5d876e99b043433096b7a1030" + }, + { + "nr": 131318, + "hash": "44c14244c9509ad75e711ab5a4f9efcd2ec233b6" + }, + { + "nr": 132910, + "hash": "cd48f2b63a05ee5b6637c0e000f87d9d4dc2c28a" + }, + { + "nr": 133060, + "hash": "c57424e88538b4ca9ee9d3a5e29deb8d0b936dc0" + }, + { + "nr": 132833, + "hash": "5fcc4ee2ee3afb90d319ab0c5ac4b98884d21bbd" + }, + { + "nr": 132803, + "hash": "e117a975ca2dbcf9826317a3c59f5f8face08668" + }, + { + "nr": 130909, + "hash": "3bfd22983a3bb82cd8de5a22009df2ae2f624ea1" + }, + { + "nr": 132472, + "hash": "d6f8937bbc6d5994e13a1caf6c02c20a5809ef21" + }, + { + "nr": 129438, + "hash": "259c95471debc752daddf63fcbb97db7dcd12718" + }, + { + "nr": 132127, + "hash": "59a322aa57b50ea3f616a57df0119996c20c2d76" + }, + { + "nr": 132912, + "hash": "9a3a232d4a055af50d687a3de2571bdc45ef1304" + }, + { + "nr": 132932, + "hash": "14f5bfc18c57d01b4b484c920cef757ebed91959" + }, + { + "nr": 131506, + "hash": "96257090e78ac2e78eb13411e989782c8d4546f1" + }, + { + "nr": 132514, + "hash": "18cbc73c21271cec673d730df3146d4d66c48299" + }, + { + "nr": 133013, + "hash": "7fe29fbc91d2da948a100336aadd68dac38e387a" + }, + { + "nr": 133034, + "hash": "75696ed65c0faa7cd534fed7b98dad00d5de7501" + }, + { + "nr": 132656, + "hash": "c8adc1c711f3d9e880bbde28f38d319f78584cfb" + }, + { + "nr": 131962, + "hash": "417f5bbca323d8b342d041a810d03580cc4a1fa5" + }, + { + "nr": 131266, + "hash": "ec248f757165d1ad348b347ec5f130454b9b9fbe" + }, + { + "nr": 132028, + "hash": "a4e91e6aa65b75eccf9c22d8d0fd535eaf022a85" + }, + { + "nr": 132413, + "hash": "45c4e3f43b7a708bdcee4e751aa77b70a279dc7d" + }, + { + "nr": 132117, + "hash": "9c2a30abe6f615507889027a4fd5e9f88fe862e9" + }, + { + "nr": 131406, + "hash": "fb935dbadd62297a2f13e8f48329417a30405c98" + }, + { + "nr": 132642, + "hash": "26dd6d3fdc4dcfcfc95a251b22be0f604da4d480" + }, + { + "nr": 132277, + "hash": "ba6fecb7352d339ce106aee5a59fef9b6a819550" + }, + { + "nr": 132574, + "hash": "51a4c35b780755148f4d9a39b2712ac53dcebf1d" + }, + { + "nr": 132509, + "hash": "befe926959b983108d91af678da8e9738f32d8af" + }, + { + "nr": 132484, + "hash": "81e04903902316661bc4c6f19808bc79b583fa09" + }, + { + "nr": 130782, + "hash": "97fb9a3ee33301b7e5d61a7d1ca1de88fd989dfd" + }, + { + "nr": 133068, + "hash": "fa2a813863e6d0176419993b1f73282b443ab02f" + }, + { + "nr": 131844, + "hash": "c0cd9d57243054696fbeb886c77b455ac920cf9a" + }, + { + "nr": 132868, + "hash": "b2f68a50af2e4046be7a296d7f6b44f35a903901" + }, + { + "nr": 132558, + "hash": "e2cedfa8944217cabec71c37d185917bb5a0f818" + }, + { + "nr": 132513, + "hash": "077323a48896d495bd8b4eae8800e5311630d4e2" + }, + { + "nr": 132456, + "hash": "cf39658750766b774f1e164e66107f7f008839e5" + }, + { + "nr": 132784, + "hash": "4c4e9ead8b0a6e548be701e90241b4b24438316f" + }, + { + "nr": 130919, + "hash": "3cbfb3d9fa0335c9e4dd1fbbfb022ce3831a36c5" + }, + { + "nr": 131818, + "hash": "aa5d21c6c1bb019491039fd2376ed4c62525c544" + }, + { + "nr": 130542, + "hash": "4183772e70a623700b022adba351349122637ea1" + }, + { + "nr": 131961, + "hash": "f6bcb6614c66b2a4467023637378eca988252784" + }, + { + "nr": 131311, + "hash": "755ae0e63950e2900296345ff2e1af5d965c5b0e" + }, + { + "nr": 130852, + "hash": "f2839d53aa4e51f151da21165e31efb2ec499762" + }, + { + "nr": 130653, + "hash": "0d2fe7e7f0234395c439f23d9423523d42f8263f" + }, + { + "nr": 130160, + "hash": "ff1457c00c5d448657d43a7d8c4017d35703113e" + }, + { + "nr": 132548, + "hash": "17585367ff5699e149ee0d7fa0c41804749da95b" + }, + { + "nr": 132751, + "hash": "2ae039e3eabba042a4fcfb7b952443732e593e6e" + }, + { + "nr": 132674, + "hash": "b9e8323804a7001d325ec8d58920d7f1c08a8c17" + }, + { + "nr": 132351, + "hash": "557267a267f94c50295a045f03bd019b55f2b320" + }, + { + "nr": 131425, + "hash": "072d8337b2733e645320cf5241bad54010e7791f" + }, + { + "nr": 131989, + "hash": "19471e159a3bd1933bf234d55aefba94e7898024" + }, + { + "nr": 132764, + "hash": "6d439f38c1889e3854ef0c6a8422d569db4ec6a9" + }, + { + "nr": 132284, + "hash": "9a2ffbba4eebb5758666e32b5def325df4c92f37" + }, + { + "nr": 131996, + "hash": "7f7a6c53e848af0ae196854623138e576c79a65a" + }, + { + "nr": 130503, + "hash": "b3b896159fe1db26f8d7025b6b46f58767d93377" + }, + { + "nr": 132391, + "hash": "f0610c8e87d3d4647bebaded5846beeca99879f2" + }, + { + "nr": 133293, + "hash": "765de5cb84296789f2f1f8959c5b4ef0c1b40183" + }, + { + "nr": 133164, + "hash": "5b6b52bb008fe7d299ff06cdeee7c3209f49d04c" + }, + { + "nr": 132768, + "hash": "d8b29e5470008a3ce5963016594792dd8e269fdd" + }, + { + "nr": 132326, + "hash": "1f01abbeae5eaa18cded98d60154c927dff53b8d" + }, + { + "nr": 131574, + "hash": "63734feeb6bb604d50b001b641c367e65c010ed9" + }, + { + "nr": 133157, + "hash": "dcc046bd5dfa276355627adfde7c0886eae56cf4" + }, + { + "nr": 129458, + "hash": "8b20f9d2c1478df03708735a649249694a059a43" + }, + { + "nr": 131887, + "hash": "d944e26e1ac921a46e05374ecbae3df27ebbec8a" + }, + { + "nr": 131587, + "hash": "32510ef616532f1c2194ab8c11a897347749b64e" + }, + { + "nr": 132723, + "hash": "1ce7af6cd0ec86d6550c9c687c4b18b4e4857ac4" + }, + { + "nr": 132701, + "hash": "ae1f663e98e33147144e57d5e954e9b856ca8241" + }, + { + "nr": 132699, + "hash": "722ef76d6dbf7690f6349cf5101ec2476cf09e15" + }, + { + "nr": 132054, + "hash": "f21eb4afda5f99e76fd4fcbc7d3ffc576232fee6" + }, + { + "nr": 131586, + "hash": "994d9657e1f1ebb3572ea63d9c4944d76d492162" + }, + { + "nr": 132537, + "hash": "bd9210f4b435f34069218522eefc1bbbe8850db2" + }, + { + "nr": 132647, + "hash": "f72341611e815e1458ffaf7ba1e2ae3adaca1239" + }, + { + "nr": 132781, + "hash": "8670ded56bc41c05b8d329f4e7ecf42fc5b6fd16" + }, + { + "nr": 131300, + "hash": "b83f6a63aac5e8c696af6743d1ee9e01390febd2" + }, + { + "nr": 133276, + "hash": "2c8dea71630fd64566e0ef3a65ab89b1e3c3a2eb" + }, + { + "nr": 132837, + "hash": "43f668a2a00ccb45e91c69291b9d612847b4d231" + }, + { + "nr": 132214, + "hash": "47381f79529a10e91092ca80ed2e5d08472fdb29" + }, + { + "nr": 133023, + "hash": "eea981d4ad2cca20633a6518f5f8e1e86b1ea47b" + }, + { + "nr": 132683, + "hash": "e56c92fea4af25e6f15704226d2d0cbd00d08480" + }, + { + "nr": 132183, + "hash": "e70bea92e272c0f02febb00529bea81ca9a2f601" + }, + { + "nr": 130989, + "hash": "78e42f6b702ed65e3415560b07b3ba205251cca7" + }, + { + "nr": 131459, + "hash": "7f4ae7abe12093a80294f02acd4c19eab8793034" + }, + { + "nr": 131549, + "hash": "97720888ed4c2ea70bdd4ccf900dc3f4b842b3d4" + }, + { + "nr": 133012, + "hash": "05c064734ab96e489de71687ce0745523d3639e7" + }, + { + "nr": 132763, + "hash": "9e4669ba71fad8c74fde0e54dba6c9562c621adc" + }, + { + "nr": 131790, + "hash": "7f56f486de2c9c5be7904b701f0e861025516811" + }, + { + "nr": 131799, + "hash": "795bb6ad8cc2ad9979789416c4da4f0a3f29e50a" + }, + { + "nr": 132173, + "hash": "c2ebca7d397515b2e737ecd5593181dc518610ff" + }, + { + "nr": 132244, + "hash": "95a105196d49fb59d795560a0b77b382efcae052" + }, + { + "nr": 132257, + "hash": "c9056a7a5b11918bb2bbb90639918f68f6b2315e" + }, + { + "nr": 133046, + "hash": "d941dc136238a6b1d1ba9e31311844baa820926d" + }, + { + "nr": 132595, + "hash": "d678a955a151464410e1c918063b2038092e4b4b" + }, + { + "nr": 131354, + "hash": "7676817b6fb9bb87ed6986a5abc01e8940a21294" + }, + { + "nr": 131822, + "hash": "dc3b8d4ea1b17348924ecdfa2ec73e59a38e42e1" + }, + { + "nr": 131408, + "hash": "237b2981fe280e63a1baec081e494c7f49c7490d" + }, + { + "nr": 132706, + "hash": "8c22a4a1c773764370895df07922afb9515fb7ec" + }, + { + "nr": 133018, + "hash": "06658fc25e137c9ab473ba9614a4545b35393148" + }, + { + "nr": 132361, + "hash": "b1b92e730b276fe3f8cfc44dab0bb561797f1e18" + }, + { + "nr": 132762, + "hash": "a20c56e97ac6975e469f9e9965f5deed63e72214" + }, + { + "nr": 132433, + "hash": "e0e3d9b9a323158e1053bdffec68491efde9417e" + }, + { + "nr": 131873, + "hash": "373ca7e553f02eb6d4c454babe6a7cac70ecf018" + }, + { + "nr": 132178, + "hash": "543a7c41119131af05f911a25248cdfd4fecdc8f" + }, + { + "nr": 130161, + "hash": "5e083d708f1297d7aaa417a5ddfa184d7d859db6" + }, + { + "nr": 133042, + "hash": "f0f3b7ce3001ee9c409f0101cbbdcd83c25a09d7" + }, + { + "nr": 132704, + "hash": "54b91d599cc53af673036e96bd0a801d3849d2fa" + }, + { + "nr": 132080, + "hash": "4442970df988b58f2a062937ee975d290de48840" + }, + { + "nr": 131491, + "hash": "eaeadb4fda66ca528f76a2170b473b730a1cdde4" + }, + { + "nr": 130994, + "hash": "3c57b89a1e8079b76aeec93fcf43c080e426fd10" + }, + { + "nr": 132522, + "hash": "b4f25fa6ecee369246c19f9ec89ffdcdffe06fb7" + }, + { + "nr": 132840, + "hash": "df10c90dfea27532584abd43d6cff7b63b88bedb" + }, + { + "nr": 132504, + "hash": "c828a3fa6ab9073a278d47e3fe5ad045f3bae17c" + }, + { + "nr": 131916, + "hash": "91a3639900c07cb95c506c99ffd71118cd6c6a3b" + }, + { + "nr": 131493, + "hash": "81be7056e17c90dd6db3e73219ba52fa5d1d85f1" + }, + { + "nr": 130333, + "hash": "e95ca48d4f3f76943e3b88c758b10219e0bf6baf" + }, + { + "nr": 131418, + "hash": "778f85081f15c3a44ed62c32fe31f71dcd64a0fa" + }, + { + "nr": 131213, + "hash": "243b1e1ce3423d7987510d120937ef08bd63b038" + }, + { + "nr": 132430, + "hash": "c0771410453b65dcad28d14af794a8a3e33772d8" + }, + { + "nr": 131306, + "hash": "0d899de9ba0921aa3c6d48c84e510fee8a172b3e" + }, + { + "nr": 132626, + "hash": "991b6c44ca0c89d458d0afd323f6d95675287209" + }, + { + "nr": 132832, + "hash": "c4519a4a6e559d4e23002731eac4111a16a285b4" + }, + { + "nr": 132007, + "hash": "1fb738c70b93e39647c636a362c595e4bbd86e7c" + }, + { + "nr": 132210, + "hash": "d20362e11bc503f14a38b13b2f26d2206b5da12a" + }, + { + "nr": 133279, + "hash": "c8c282c3219ffa7b27b8cf77a7cd7cf96e4c5df6" + }, + { + "nr": 131089, + "hash": "b31804dc2e75d0c41bcbfbb697a12a2331101806" + }, + { + "nr": 132750, + "hash": "32271d486492697a1d6fb40703540f3585e0328b" + }, + { + "nr": 132238, + "hash": "c4a094e237e59a11448736a9204f9af3e5239e9a" + } + ] } \ No newline at end of file diff --git a/releases/release-1.34/release-notes/sessions/maps-1756226433.json b/releases/release-1.34/release-notes/sessions/maps-1756226433.json index 117908e0dd8..ff45218d808 100644 --- a/releases/release-1.34/release-notes/sessions/maps-1756226433.json +++ b/releases/release-1.34/release-notes/sessions/maps-1756226433.json @@ -1,1295 +1,1295 @@ -{ - "mail": "smith.rashan@gmail.com", - "name": "Rashan Smith", - "date": 1756226433, - "prs": [ - { - "nr": 130387, - "hash": "f94e1db55d51618cda38cc0dff3961d4ef275cb9" - }, - { - "nr": 132058, - "hash": "afe417d99031ac6474ae6536f19fad4cccc01018" - }, - { - "nr": 133279, - "hash": "c8c282c3219ffa7b27b8cf77a7cd7cf96e4c5df6" - }, - { - "nr": 133028, - "hash": "1a7616922748f56cdf323754b35dfd865815ec7a" - }, - { - "nr": 132704, - "hash": "54b91d599cc53af673036e96bd0a801d3849d2fa" - }, - { - "nr": 132210, - "hash": "d20362e11bc503f14a38b13b2f26d2206b5da12a" - }, - { - "nr": 131408, - "hash": "237b2981fe280e63a1baec081e494c7f49c7490d" - }, - { - "nr": 130782, - "hash": "97fb9a3ee33301b7e5d61a7d1ca1de88fd989dfd" - }, - { - "nr": 132277, - "hash": "ba6fecb7352d339ce106aee5a59fef9b6a819550" - }, - { - "nr": 125271, - "hash": "b6021ca3ad9f1ff09e104f3830aabe6c0026b3cb" - }, - { - "nr": 132509, - "hash": "befe926959b983108d91af678da8e9738f32d8af" - }, - { - "nr": 131213, - "hash": "243b1e1ce3423d7987510d120937ef08bd63b038" - }, - { - "nr": 131215, - "hash": "cd9735be508a3c59b4307c8297b41434476d6fc7" - }, - { - "nr": 133013, - "hash": "7fe29fbc91d2da948a100336aadd68dac38e387a" - }, - { - "nr": 132800, - "hash": "6d3328b35706a82e1bda03f0c8532d777e104e37" - }, - { - "nr": 131562, - "hash": "3a5f52f5838517b4b381f30f9f69b1c7017246d4" - }, - { - "nr": 129237, - "hash": "a3d2e9b77aa82d4a57c4c7b0f38659834eb7b351" - }, - { - "nr": 132773, - "hash": "5634d58399dcbb676b4d32a151c9cd6762bc4f89" - }, - { - "nr": 132730, - "hash": "3d5c816ad930ddbff3914e77c6e7aead451a54cb" - }, - { - "nr": 132183, - "hash": "e70bea92e272c0f02febb00529bea81ca9a2f601" - }, - { - "nr": 133226, - "hash": "bc5c7cc451726f656af41539288cf84fc1df6f40" - }, - { - "nr": 132581, - "hash": "51282352ad3717afca9c62c5fa63a628c3706fc0" - }, - { - "nr": 129837, - "hash": "03f8e21aacf1539aa0ff64f3868382c0e29be406" - }, - { - "nr": 132777, - "hash": "b392801aa1563d093ec05771511225bf69b3afdb" - }, - { - "nr": 132764, - "hash": "6d439f38c1889e3854ef0c6a8422d569db4ec6a9" - }, - { - "nr": 132376, - "hash": "a421dac5059d4496626ca85884adb0e4b0b4173d" - }, - { - "nr": 131151, - "hash": "350fd26ce48049051a985132c3c0abb15cf01f15" - }, - { - "nr": 130720, - "hash": "39d77d023383d9d8090b14c5fa32eaffc877e7b6" - }, - { - "nr": 133164, - "hash": "5b6b52bb008fe7d299ff06cdeee7c3209f49d04c" - }, - { - "nr": 131574, - "hash": "63734feeb6bb604d50b001b641c367e65c010ed9" - }, - { - "nr": 131444, - "hash": "f70531127b3f26f03a38543e8183b0da7c4fe92d" - }, - { - "nr": 132750, - "hash": "32271d486492697a1d6fb40703540f3585e0328b" - }, - { - "nr": 132117, - "hash": "9c2a30abe6f615507889027a4fd5e9f88fe862e9" - }, - { - "nr": 132430, - "hash": "c0771410453b65dcad28d14af794a8a3e33772d8" - }, - { - "nr": 130160, - "hash": "ff1457c00c5d448657d43a7d8c4017d35703113e" - }, - { - "nr": 133042, - "hash": "f0f3b7ce3001ee9c409f0101cbbdcd83c25a09d7" - }, - { - "nr": 132907, - "hash": "0c3999f0446335f4d13176781fa5c99237157e89" - }, - { - "nr": 131822, - "hash": "dc3b8d4ea1b17348924ecdfa2ec73e59a38e42e1" - }, - { - "nr": 131887, - "hash": "d944e26e1ac921a46e05374ecbae3df27ebbec8a" - }, - { - "nr": 131965, - "hash": "f8442a8d4667d9f1b5318969468d37e41d6aaed2" - }, - { - "nr": 131265, - "hash": "a077f8aaf643b6b1f009733267eb2b2566ef770c" - }, - { - "nr": 133293, - "hash": "765de5cb84296789f2f1f8959c5b4ef0c1b40183" - }, - { - "nr": 133167, - "hash": "0f1c619f37161b553fa65eeb0bf68fad3cafb945" - }, - { - "nr": 131549, - "hash": "97720888ed4c2ea70bdd4ccf900dc3f4b842b3d4" - }, - { - "nr": 132901, - "hash": "94123dcf8bc5a0f445b095fada4ed8f36d412650" - }, - { - "nr": 132087, - "hash": "bf34bdc5d561d3559997f245621c586d479d5726" - }, - { - "nr": 131934, - "hash": "d030ff32b92d9a366202580ac61ee231a75764cb" - }, - { - "nr": 131654, - "hash": "9480cbb043fb3bfedb493e99fc406d1d61a3a74d" - }, - { - "nr": 132429, - "hash": "57994c84a8a793957e2ef8c88415aa21e1fd6220" - }, - { - "nr": 132513, - "hash": "077323a48896d495bd8b4eae8800e5311630d4e2" - }, - { - "nr": 132838, - "hash": "816d7936a9378af55598db5c401d0191e980ca85" - }, - { - "nr": 132219, - "hash": "534b4b561a272566b6a302e2db5385745c28b0bb" - }, - { - "nr": 132751, - "hash": "2ae039e3eabba042a4fcfb7b952443732e593e6e" - }, - { - "nr": 132720, - "hash": "d9124dc170ec24c3314995adab494f65e8f8adcf" - }, - { - "nr": 132698, - "hash": "561ab00d174778992d95326b2e2fde2ce86d4c7b" - }, - { - "nr": 132036, - "hash": "f0beb570a6e790adfcc9cf3cdb9af516b2e857d0" - }, - { - "nr": 131587, - "hash": "32510ef616532f1c2194ab8c11a897347749b64e" - }, - { - "nr": 132604, - "hash": "fbedf846dc67143de2f9e1cede8d0ba4c2363996" - }, - { - "nr": 130909, - "hash": "3bfd22983a3bb82cd8de5a22009df2ae2f624ea1" - }, - { - "nr": 132752, - "hash": "c94270d85c874443d61bd92ac726276ea521c6f9" - }, - { - "nr": 128748, - "hash": "a118b36fcdf6a9a093ee3c65a1a67e31a6dc9138" - }, - { - "nr": 131586, - "hash": "994d9657e1f1ebb3572ea63d9c4944d76d492162" - }, - { - "nr": 131495, - "hash": "d67ea6f03a11dc24596ca5c0abfc3d400291e5fc" - }, - { - "nr": 131001, - "hash": "7633bc3a700e789932b7e2be60bb27253dc53df8" - }, - { - "nr": 133157, - "hash": "dcc046bd5dfa276355627adfde7c0886eae56cf4" - }, - { - "nr": 133012, - "hash": "05c064734ab96e489de71687ce0745523d3639e7" - }, - { - "nr": 132803, - "hash": "e117a975ca2dbcf9826317a3c59f5f8face08668" - }, - { - "nr": 131979, - "hash": "842fb87a4976b6e279c7549c4c45a99fca14ec7f" - }, - { - "nr": 131845, - "hash": "268215f524727aa5a210cf47b538835d8c070086" - }, - { - "nr": 132632, - "hash": "61a67d1d2dcd9cb0660d54c86a2d2846c1b1531b" - }, - { - "nr": 132391, - "hash": "f0610c8e87d3d4647bebaded5846beeca99879f2" - }, - { - "nr": 132342, - "hash": "34ad561747a93205de494d015cfbd00d2604286e" - }, - { - "nr": 132339, - "hash": "840e0a9deaba0535e5800e71af63bdcbd2a301d5" - }, - { - "nr": 132723, - "hash": "1ce7af6cd0ec86d6550c9c687c4b18b4e4857ac4" - }, - { - "nr": 132096, - "hash": "1a0d4e1e0712807554ccafeffdc117652a2581a7" - }, - { - "nr": 132034, - "hash": "1bf29907e7eb3e568fb6a76ead5193f6fb0a21a2" - }, - { - "nr": 131752, - "hash": "ec3b6ddafb1279955c8812f77782ee8e716ba6a7" - }, - { - "nr": 133021, - "hash": "4fdd882445b4c84b96d2ddaecb4325564ddb3bb1" - }, - { - "nr": 132762, - "hash": "a20c56e97ac6975e469f9e9965f5deed63e72214" - }, - { - "nr": 132433, - "hash": "e0e3d9b9a323158e1053bdffec68491efde9417e" - }, - { - "nr": 132173, - "hash": "c2ebca7d397515b2e737ecd5593181dc518610ff" - }, - { - "nr": 132305, - "hash": "f062e90d7c16007b867acc0bb36648526a9f3ca4" - }, - { - "nr": 131647, - "hash": "68f838ecf7f1c7b7a60a5169072aaf8677bd1cd3" - }, - { - "nr": 132083, - "hash": "d93939044c3e0eb86198f41e2059e838a74c3988" - }, - { - "nr": 131799, - "hash": "795bb6ad8cc2ad9979789416c4da4f0a3f29e50a" - }, - { - "nr": 132244, - "hash": "95a105196d49fb59d795560a0b77b382efcae052" - }, - { - "nr": 131973, - "hash": "4deff5df8f09b5462ae0c17918da6b858559ab30" - }, - { - "nr": 131318, - "hash": "44c14244c9509ad75e711ab5a4f9efcd2ec233b6" - }, - { - "nr": 132886, - "hash": "ab9067c4cfb6fc009d4baf5ae90221a765e5ca86" - }, - { - "nr": 132222, - "hash": "d9ad44080b5104ea83292c39db65abee80000ad7" - }, - { - "nr": 128351, - "hash": "a72966c96d768c644e0b7fe553082710a6f784b5" - }, - { - "nr": 130593, - "hash": "edaec2bed29ca17aeaba17cf067f0044fd4b9323" - }, - { - "nr": 132456, - "hash": "cf39658750766b774f1e164e66107f7f008839e5" - }, - { - "nr": 132755, - "hash": "65d6ec9d84dec04248ca587db9bd0427a428b7c4" - }, - { - "nr": 122384, - "hash": "6f1492652bb844a64f6c1b49459cfdfb574dd3ac" - }, - { - "nr": 132165, - "hash": "2d6df68f54bdd7118490a6bb9850785e18f17a83" - }, - { - "nr": 132178, - "hash": "543a7c41119131af05f911a25248cdfd4fecdc8f" - }, - { - "nr": 131300, - "hash": "b83f6a63aac5e8c696af6743d1ee9e01390febd2" - }, - { - "nr": 127183, - "hash": "071145dd0ae92fd10ec06101ea93399a046a300b" - }, - { - "nr": 133060, - "hash": "c57424e88538b4ca9ee9d3a5e29deb8d0b936dc0" - }, - { - "nr": 132806, - "hash": "013a437233119cb8048c74b7c371aeef0e6eed69" - }, - { - "nr": 131837, - "hash": "0104d60ef2fb5e9816dd09dc8d1e6119f3157303" - }, - { - "nr": 126619, - "hash": "a3f7d0b06280fd716b16b619ca06df21708fffc5" - }, - { - "nr": 132522, - "hash": "b4f25fa6ecee369246c19f9ec89ffdcdffe06fb7" - }, - { - "nr": 132457, - "hash": "164984684f8495e8afdb29cad0e35370b6ac072b" - }, - { - "nr": 130727, - "hash": "8fed7b0443e54e3cf35bf5cf09951630c5113e2e" - }, - { - "nr": 133076, - "hash": "7b0f391c083848e602c8efde935eb761ab59d255" - }, - { - "nr": 132033, - "hash": "fbae5912de8dcbd24dec5a5a1a47e087c6d8c7f8" - }, - { - "nr": 132742, - "hash": "e479e914e50978e7d70b45a63008bcde62e0c321" - }, - { - "nr": 131623, - "hash": "ba007c76ef909b35f8e37a2889f7d1d3839d5a81" - }, - { - "nr": 131493, - "hash": "81be7056e17c90dd6db3e73219ba52fa5d1d85f1" - }, - { - "nr": 132895, - "hash": "cb2ae6f26e0bf389d5d24d48220b73d093074041" - }, - { - "nr": 131741, - "hash": "bd9cb0789cdc246974a5ac6a58b41446ea5fd2e4" - }, - { - "nr": 132822, - "hash": "d94fc9df8c128fe76fdd656702afac38356f8571" - }, - { - "nr": 132837, - "hash": "43f668a2a00ccb45e91c69291b9d612847b4d231" - }, - { - "nr": 133017, - "hash": "5b9411b6d4a3b2b7ab3fee630dd8f7130b3d1455" - }, - { - "nr": 132299, - "hash": "54e8eee69e870babac516d164f7a58866eea8c9b" - }, - { - "nr": 132361, - "hash": "b1b92e730b276fe3f8cfc44dab0bb561797f1e18" - }, - { - "nr": 132701, - "hash": "ae1f663e98e33147144e57d5e954e9b856ca8241" - }, - { - "nr": 132656, - "hash": "c8adc1c711f3d9e880bbde28f38d319f78584cfb" - }, - { - "nr": 132725, - "hash": "26733f63e52caa76dc6e0f242708a3e86fa714a2" - }, - { - "nr": 130542, - "hash": "4183772e70a623700b022adba351349122637ea1" - }, - { - "nr": 131563, - "hash": "d7f70fdd9b4307b7f6f9a57cd0dd3cfdbfd8f7e0" - }, - { - "nr": 132910, - "hash": "cd48f2b63a05ee5b6637c0e000f87d9d4dc2c28a" - }, - { - "nr": 132821, - "hash": "847491e03c73711cc73fbdf3b9f4dd777bf83e3c" - }, - { - "nr": 132276, - "hash": "7c24b71942e2c55d258029e821e5d8a2238548b9" - }, - { - "nr": 132413, - "hash": "45c4e3f43b7a708bdcee4e751aa77b70a279dc7d" - }, - { - "nr": 130919, - "hash": "3cbfb3d9fa0335c9e4dd1fbbfb022ce3831a36c5" - }, - { - "nr": 132000, - "hash": "bf0d88d6015b75ea0d5cb153a9ca5d5fb18516cc" - }, - { - "nr": 132054, - "hash": "f21eb4afda5f99e76fd4fcbc7d3ffc576232fee6" - }, - { - "nr": 131568, - "hash": "c5abb671e34cb316130de2afad50c980fc5f8934" - }, - { - "nr": 133030, - "hash": "0c71821c1694989bc9c74448f42cf455dfe0331d" - }, - { - "nr": 131641, - "hash": "15387daf7c997fbd06614f9269422fc66359bd9a" - }, - { - "nr": 132741, - "hash": "96c4b780054b83dc713dbdca6fb47a52d9366a26" - }, - { - "nr": 132012, - "hash": "0d8321dd58964e74652c969123861a450ceb7ccc" - }, - { - "nr": 131311, - "hash": "755ae0e63950e2900296345ff2e1af5d965c5b0e" - }, - { - "nr": 132903, - "hash": "202fe652239fe87103126de5b7c57f73586bab0d" - }, - { - "nr": 132884, - "hash": "fee5d0325f54dd7fbf51c451d90de3cb73c1f908" - }, - { - "nr": 132784, - "hash": "4c4e9ead8b0a6e548be701e90241b4b24438316f" - }, - { - "nr": 132721, - "hash": "1a198ce27cce56b202212ec20346113b0eb85e72" - }, - { - "nr": 132194, - "hash": "f31bd80286bab32275b48a6f99c8f431a42305fe" - }, - { - "nr": 131354, - "hash": "7676817b6fb9bb87ed6986a5abc01e8940a21294" - }, - { - "nr": 132326, - "hash": "1f01abbeae5eaa18cded98d60154c927dff53b8d" - }, - { - "nr": 131981, - "hash": "d3b0080a3a8503abdc9115c49a78b87970cba45e" - }, - { - "nr": 133062, - "hash": "ad15eb353d860e555f8fd3c93fe5256d47299b46" - }, - { - "nr": 132832, - "hash": "c4519a4a6e559d4e23002731eac4111a16a285b4" - }, - { - "nr": 132560, - "hash": "9047ca5a82cbd0c3892caf3d03f28bf717d66ec7" - }, - { - "nr": 131873, - "hash": "373ca7e553f02eb6d4c454babe6a7cac70ecf018" - }, - { - "nr": 132109, - "hash": "f8eeaf7f40d7e13287558677d6a6ea51573ab801" - }, - { - "nr": 131868, - "hash": "63eb7b44c241861e1fa163ed14637b9cf16dade9" - }, - { - "nr": 131627, - "hash": "c8b4219421fa47bb0776e22244768136d4fdb38a" - }, - { - "nr": 131266, - "hash": "ec248f757165d1ad348b347ec5f130454b9b9fbe" - }, - { - "nr": 132108, - "hash": "b7e662e6ddac71b434eb6618602928635609a76f" - }, - { - "nr": 133027, - "hash": "dd6883698378e8d640cf26efd9838998cae8ef46" - }, - { - "nr": 132726, - "hash": "561562103bd1c8da8959620940b826231ae59ba1" - }, - { - "nr": 131919, - "hash": "bed9e631e88369c5d876e99b043433096b7a1030" - }, - { - "nr": 130994, - "hash": "3c57b89a1e8079b76aeec93fcf43c080e426fd10" - }, - { - "nr": 133120, - "hash": "f1b0faa1208d0b22e1e09e56e8e12ad54a1cee6b" - }, - { - "nr": 132605, - "hash": "e22ab1f083b2402effc395bfd0ef58a9b46826e5" - }, - { - "nr": 132840, - "hash": "df10c90dfea27532584abd43d6cff7b63b88bedb" - }, - { - "nr": 130503, - "hash": "b3b896159fe1db26f8d7025b6b46f58767d93377" - }, - { - "nr": 132443, - "hash": "5ea066496e21f7b90606d890e58f1d7ff4ccbafb" - }, - { - "nr": 132942, - "hash": "0a7a55197314a1e1ed0d4546e6edf89366058e07" - }, - { - "nr": 133018, - "hash": "06658fc25e137c9ab473ba9614a4545b35393148" - }, - { - "nr": 132348, - "hash": "eaa366c693cda7afac478c866c13073b25905b11" - }, - { - "nr": 132754, - "hash": "a582de4ea3be45e456a2d1979a9ce14e665c7401" - }, - { - "nr": 132574, - "hash": "51a4c35b780755148f4d9a39b2712ac53dcebf1d" - }, - { - "nr": 128010, - "hash": "e1b89259f4ccffa61b70d5cdc11330d3d88f9966" - }, - { - "nr": 132932, - "hash": "14f5bfc18c57d01b4b484c920cef757ebed91959" - }, - { - "nr": 132336, - "hash": "96cc48212d097c469c9b4795ca9d73fda3d3b548" - }, - { - "nr": 132040, - "hash": "85c3d1e1ae769978d0b66c4b4c27f83d1a9cde0d" - }, - { - "nr": 131418, - "hash": "778f85081f15c3a44ed62c32fe31f71dcd64a0fa" - }, - { - "nr": 130852, - "hash": "f2839d53aa4e51f151da21165e31efb2ec499762" - }, - { - "nr": 131089, - "hash": "b31804dc2e75d0c41bcbfbb697a12a2331101806" - }, - { - "nr": 131989, - "hash": "19471e159a3bd1933bf234d55aefba94e7898024" - }, - { - "nr": 132645, - "hash": "0b60177e27b9005f9dc592d2c007b89ae3be6b9e" - }, - { - "nr": 132467, - "hash": "3c2bf815c52dfd8ec3b2431e7639dd4ee881de4c" - }, - { - "nr": 120816, - "hash": "580f504e40d5c95450193103360e34084050b69e" - }, - { - "nr": 131968, - "hash": "5c13364e9fe717b4f12afb40a77932b70148c414" - }, - { - "nr": 131844, - "hash": "c0cd9d57243054696fbeb886c77b455ac920cf9a" - }, - { - "nr": 133068, - "hash": "fa2a813863e6d0176419993b1f73282b443ab02f" - }, - { - "nr": 131463, - "hash": "25559829804c6aa9ef3dd945d0d68ec7763e0f92" - }, - { - "nr": 131996, - "hash": "7f7a6c53e848af0ae196854623138e576c79a65a" - }, - { - "nr": 131165, - "hash": "d9383076554991af204efef1613870c67748c40f" - }, - { - "nr": 132662, - "hash": "6456fb0c7b8f032059b2491d968ab01f553c697a" - }, - { - "nr": 132724, - "hash": "c22c05c62e37295bdf8e1cefaca5bc1d325074eb" - }, - { - "nr": 132236, - "hash": "e707a19fff4b64c9f1bf3de6f382cf6795227518" - }, - { - "nr": 132462, - "hash": "11339f3fcae77991ef27274be258fa28eb02d420" - }, - { - "nr": 132106, - "hash": "e3a97404cd36baa5a2d27f1a3f7e0fec1332155d" - }, - { - "nr": 132965, - "hash": "52add834ed0511293dc2664061150613bf6a4206" - }, - { - "nr": 132674, - "hash": "b9e8323804a7001d325ec8d58920d7f1c08a8c17" - }, - { - "nr": 132257, - "hash": "c9056a7a5b11918bb2bbb90639918f68f6b2315e" - }, - { - "nr": 131459, - "hash": "7f4ae7abe12093a80294f02acd4c19eab8793034" - }, - { - "nr": 132595, - "hash": "d678a955a151464410e1c918063b2038092e4b4b" - }, - { - "nr": 133016, - "hash": "11100f103286f82c4bd23956d1e1d33f50c39b93" - }, - { - "nr": 132551, - "hash": "278984d39b4bee5ce6019c573bb32ecb19f28d88" - }, - { - "nr": 132537, - "hash": "bd9210f4b435f34069218522eefc1bbbe8850db2" - }, - { - "nr": 133034, - "hash": "75696ed65c0faa7cd534fed7b98dad00d5de7501" - }, - { - "nr": 132258, - "hash": "c954328d4adb77a6d6a524649c3b22ec13706e59" - }, - { - "nr": 131406, - "hash": "fb935dbadd62297a2f13e8f48329417a30405c98" - }, - { - "nr": 133023, - "hash": "eea981d4ad2cca20633a6518f5f8e1e86b1ea47b" - }, - { - "nr": 132896, - "hash": "a66a250efb7eb42b34b2e1e364c5284c9301a237" - }, - { - "nr": 129438, - "hash": "259c95471debc752daddf63fcbb97db7dcd12718" - }, - { - "nr": 132127, - "hash": "59a322aa57b50ea3f616a57df0119996c20c2d76" - }, - { - "nr": 132999, - "hash": "9f923ad67e1fe57cab2171809c6075ca37db3629" - }, - { - "nr": 133085, - "hash": "95c6ffa1b411a2ab469fef52aa580de00d5f6a4f" - }, - { - "nr": 132683, - "hash": "e56c92fea4af25e6f15704226d2d0cbd00d08480" - }, - { - "nr": 132284, - "hash": "9a2ffbba4eebb5758666e32b5def325df4c92f37" - }, - { - "nr": 129373, - "hash": "b75bea2d3ed25456ad525ad7b5bb096e7dc4a1a8" - }, - { - "nr": 129501, - "hash": "3c38f44726a41d78d0e4f4436c26ee93d3630e73" - }, - { - "nr": 131632, - "hash": "29a6151804a75b541f35c70efcdddede8d61d2cd" - }, - { - "nr": 132700, - "hash": "45306c0746856bbdf9359766dcba17057b930ed8" - }, - { - "nr": 131157, - "hash": "0436f97897b20b18c6265420835a0acb76278b80" - }, - { - "nr": 132484, - "hash": "81e04903902316661bc4c6f19808bc79b583fa09" - }, - { - "nr": 132933, - "hash": "cc32f9a98f735c62a147989b2c985abc6003646b" - }, - { - "nr": 132912, - "hash": "9a3a232d4a055af50d687a3de2571bdc45ef1304" - }, - { - "nr": 132794, - "hash": "66d2a70dd6e16214253e8ea6328cf86de5432d5f" - }, - { - "nr": 132285, - "hash": "b63d1892c78ebed516e720a4fd95e8563465f838" - }, - { - "nr": 132473, - "hash": "d632784bc899baa85da0d51a309e3b75cfbab34a" - }, - { - "nr": 132776, - "hash": "c8132191e28c4f1c79bab395d76560cf9a1b9471" - }, - { - "nr": 132772, - "hash": "cf63760e6721608c18207956b8bbf38cebf4411d" - }, - { - "nr": 132753, - "hash": "b9256b6e2bfaa03fd31d77256225d63b677933e0" - }, - { - "nr": 131790, - "hash": "7f56f486de2c9c5be7904b701f0e861025516811" - }, - { - "nr": 131992, - "hash": "2d0af779dbb8f27d6b5e511a5c0392d5df5b584e" - }, - { - "nr": 122634, - "hash": "1a2e59683f605dbf6e8eebdb37cc739c7f7c0137" - }, - { - "nr": 131961, - "hash": "f6bcb6614c66b2a4467023637378eca988252784" - }, - { - "nr": 132935, - "hash": "623250b7cbfe681e564125d72e7aee6efe442540" - }, - { - "nr": 132340, - "hash": "f7758b9e6936aa7a1f9ce84f5fca40cf19d401ca" - }, - { - "nr": 132529, - "hash": "4c03d171633de8d152ee2e99f8ea1fee204e740d" - }, - { - "nr": 132351, - "hash": "557267a267f94c50295a045f03bd019b55f2b320" - }, - { - "nr": 131664, - "hash": "b4c18f407d6c66a722fd04dc6fb2f477b9491e2e" - }, - { - "nr": 131842, - "hash": "79a1ea1f70bcd917015fac3a6eb2b36fbe5ea791" - }, - { - "nr": 131509, - "hash": "40b39e398b9ca83f73f9aa39f0e1729a2003dd69" - }, - { - "nr": 131525, - "hash": "f3b8859966ebbea7e4096485046b8854a41b26fb" - }, - { - "nr": 132558, - "hash": "e2cedfa8944217cabec71c37d185917bb5a0f818" - }, - { - "nr": 131018, - "hash": "4c7637fe5a174b7928f31777bb049fd8da056866" - }, - { - "nr": 132341, - "hash": "83a6e3eb1e6496216dab767ae4a222c5144b23b4" - }, - { - "nr": 132251, - "hash": "01a085fef0db0f2fa870f38cd0a7a7337313259c" - }, - { - "nr": 129458, - "hash": "8b20f9d2c1478df03708735a649249694a059a43" - }, - { - "nr": 132019, - "hash": "903ff9672a2e073f3c181729112c0918ff90a4fd" - }, - { - "nr": 132007, - "hash": "1fb738c70b93e39647c636a362c595e4bbd86e7c" - }, - { - "nr": 132768, - "hash": "d8b29e5470008a3ce5963016594792dd8e269fdd" - }, - { - "nr": 132028, - "hash": "a4e91e6aa65b75eccf9c22d8d0fd535eaf022a85" - }, - { - "nr": 132594, - "hash": "293b553135dc918ed05f30913822a60ba0c1a9af" - }, - { - "nr": 130333, - "hash": "e95ca48d4f3f76943e3b88c758b10219e0bf6baf" - }, - { - "nr": 131306, - "hash": "0d899de9ba0921aa3c6d48c84e510fee8a172b3e" - }, - { - "nr": 133136, - "hash": "4902a1ea5c80f09932cd056eeb40b8641a0f16fc" - }, - { - "nr": 132779, - "hash": "e49e1be282e16dcf7d527e26a04b5b7ada7c3be7" - }, - { - "nr": 132763, - "hash": "9e4669ba71fad8c74fde0e54dba6c9562c621adc" - }, - { - "nr": 132238, - "hash": "c4a094e237e59a11448736a9204f9af3e5239e9a" - }, - { - "nr": 131768, - "hash": "7f5a3cbebce12b61be47e822326a54dcdfb4bc4b" - }, - { - "nr": 131559, - "hash": "448df64de3a121afa86c4a1708bff64cee10f9c2" - }, - { - "nr": 131506, - "hash": "96257090e78ac2e78eb13411e989782c8d4546f1" - }, - { - "nr": 130653, - "hash": "0d2fe7e7f0234395c439f23d9423523d42f8263f" - }, - { - "nr": 132593, - "hash": "e4f8aeab3ac2dfb416548f0338a8f53fedb59f9a" - }, - { - "nr": 130161, - "hash": "5e083d708f1297d7aaa417a5ddfa184d7d859db6" - }, - { - "nr": 131299, - "hash": "4b305dee266fe09dcb5bd454b6ee01de2b2dc32a" - }, - { - "nr": 129874, - "hash": "43930b9ebeda2ca019f20f0cd3d1e53de17ff820" - }, - { - "nr": 132642, - "hash": "26dd6d3fdc4dcfcfc95a251b22be0f604da4d480" - }, - { - "nr": 133046, - "hash": "d941dc136238a6b1d1ba9e31311844baa820926d" - }, - { - "nr": 132781, - "hash": "8670ded56bc41c05b8d329f4e7ecf42fc5b6fd16" - }, - { - "nr": 132542, - "hash": "720f78545464d4332730e7670354e0af9d3f2036" - }, - { - "nr": 132338, - "hash": "2ef68b5982425305c6ea1e73cb2eb2a6e3e378f3" - }, - { - "nr": 132229, - "hash": "fae4dc3100490a0b5454457bf50126126eca6a34" - }, - { - "nr": 131798, - "hash": "89049e28c81f6ef0f3230faad2aea029041ee1dd" - }, - { - "nr": 127667, - "hash": "6d60faa177e0fcdfbd078624244c8b7d3dac4456" - }, - { - "nr": 132626, - "hash": "991b6c44ca0c89d458d0afd323f6d95675287209" - }, - { - "nr": 133350, - "hash": "f5cf712024590527741a948148dc41cfe2888d2f" - }, - { - "nr": 130606, - "hash": "f084e8714071e13e48500d4fd2e3d01dab1cbc92" - }, - { - "nr": 132065, - "hash": "064a81c4b406b753371a553f0217ff6171e15cd7" - }, - { - "nr": 131602, - "hash": "9be72fd85c479487ee9ff9510822bd2799dd6dbf" - }, - { - "nr": 132121, - "hash": "b3db6401c6a85314da4a5aa69314686e2c3f8920" - }, - { - "nr": 132893, - "hash": "60e9fbe7aa1ff9d085a50302ba12b2a2a1816252" - }, - { - "nr": 132833, - "hash": "5fcc4ee2ee3afb90d319ab0c5ac4b98884d21bbd" - }, - { - "nr": 132876, - "hash": "52f8a52071014bac0f879e5d3f3071bffa8325b8" - }, - { - "nr": 132352, - "hash": "7856471f06a83de48393d81b734735f358f65464" - }, - { - "nr": 131425, - "hash": "072d8337b2733e645320cf5241bad54010e7791f" - }, - { - "nr": 132902, - "hash": "8a44b1364e64d09b43d83f57e0510586b0622eaa" - }, - { - "nr": 132296, - "hash": "205c13bf1c5a4ef56630216d893fc6c840bc1fc5" - }, - { - "nr": 132548, - "hash": "17585367ff5699e149ee0d7fa0c41804749da95b" - }, - { - "nr": 128653, - "hash": "38c050a1f052fe2a2b57b0072c5cee3fb9e14d91" - }, - { - "nr": 132614, - "hash": "ba47fd10e076e166c9fec72100d05f97f7088a0f" - }, - { - "nr": 132472, - "hash": "d6f8937bbc6d5994e13a1caf6c02c20a5809ef21" - }, - { - "nr": 132149, - "hash": "38e7b985611487d5d50580cc684e9a62facd962f" - }, - { - "nr": 131501, - "hash": "8d4e0b710c85f5d0b6bf781eee7567bbabb7757a" - }, - { - "nr": 132890, - "hash": "f2f42443b1032041eeba3ada052980870013f65c" - }, - { - "nr": 132765, - "hash": "15daf83e735d1ecbb61d2ce5fa00bae15c238d42" - }, - { - "nr": 132648, - "hash": "a4eb31f5ef277bdf71eba7bd39a1c87b2a57654d" - }, - { - "nr": 132080, - "hash": "4442970df988b58f2a062937ee975d290de48840" - }, - { - "nr": 131677, - "hash": "1020831f9ee933a383f208b89ada4525917fe782" - }, - { - "nr": 131662, - "hash": "3d095e0e13afd77374130198539d6de662fb31ed" - }, - { - "nr": 132767, - "hash": "f24b24792a2107116e0be7558ea2c7a3cd8cecdf" - }, - { - "nr": 132771, - "hash": "c7b005e392d98e94599b2e4ebc94df956b1f3eba" - }, - { - "nr": 132355, - "hash": "19aeba789022780eda16252a88551f69178041d3" - }, - { - "nr": 131907, - "hash": "9a97f4c8876d4a373eab7469553d46c6c147795b" - }, - { - "nr": 131658, - "hash": "b612fb59d35de76e492890d2d07d57bcd103f8fc" - }, - { - "nr": 131962, - "hash": "417f5bbca323d8b342d041a810d03580cc4a1fa5" - }, - { - "nr": 131818, - "hash": "aa5d21c6c1bb019491039fd2376ed4c62525c544" - }, - { - "nr": 132940, - "hash": "75a0c3927420a080573a594cc43972776730ea9e" - }, - { - "nr": 132778, - "hash": "412dbb77757dff218952ec3ea282affd96a7aa60" - }, - { - "nr": 132190, - "hash": "88b250f81cb391a5acd9facac9f104ed5fb3c614" - }, - { - "nr": 127365, - "hash": "fbae49fab75c5387fe39428019163dbc8842152a" - }, - { - "nr": 132514, - "hash": "18cbc73c21271cec673d730df3146d4d66c48299" - }, - { - "nr": 132706, - "hash": "8c22a4a1c773764370895df07922afb9515fb7ec" - }, - { - "nr": 132617, - "hash": "2896f3f60d37d389a0a7bbff338a68e1dd004a5a" - }, - { - "nr": 132699, - "hash": "722ef76d6dbf7690f6349cf5101ec2476cf09e15" - }, - { - "nr": 131514, - "hash": "60184ebe89ba94418c89c3478d226eadc9313148" - }, - { - "nr": 131660, - "hash": "9c174cd2e417917b0bcf7388418d54c59ed95f44" - }, - { - "nr": 130989, - "hash": "78e42f6b702ed65e3415560b07b3ba205251cca7" - }, - { - "nr": 131491, - "hash": "eaeadb4fda66ca528f76a2170b473b730a1cdde4" - }, - { - "nr": 132504, - "hash": "c828a3fa6ab9073a278d47e3fe5ad045f3bae17c" - }, - { - "nr": 133276, - "hash": "2c8dea71630fd64566e0ef3a65ab89b1e3c3a2eb" - }, - { - "nr": 133135, - "hash": "27dabdc3946f789246dd10ed07f026dea951d2a8" - }, - { - "nr": 132647, - "hash": "f72341611e815e1458ffaf7ba1e2ae3adaca1239" - }, - { - "nr": 132374, - "hash": "d7703262a87c652bd58237346ed7d2312ef701ab" - }, - { - "nr": 131085, - "hash": "1c414e952f84d4d57b3634d62ef64bcc9526be79" - }, - { - "nr": 130987, - "hash": "d5dacd3facd0412339cfb800f423f6bde3105610" - }, - { - "nr": 132868, - "hash": "b2f68a50af2e4046be7a296d7f6b44f35a903901" - }, - { - "nr": 132214, - "hash": "47381f79529a10e91092ca80ed2e5d08472fdb29" - }, - { - "nr": 132743, - "hash": "4fdb6c9eed139cae1ea9df4b06bb025c402abc5c" - }, - { - "nr": 131916, - "hash": "91a3639900c07cb95c506c99ffd71118cd6c6a3b" - }, - { - "nr": 130713, - "hash": "d320b9800eac62e26bc55d14440fb281d53f5ce2" - } - ] +{ + "mail": "smith.rashan@gmail.com", + "name": "Rashan Smith", + "date": 1756226433, + "prs": [ + { + "nr": 130387, + "hash": "f94e1db55d51618cda38cc0dff3961d4ef275cb9" + }, + { + "nr": 132058, + "hash": "afe417d99031ac6474ae6536f19fad4cccc01018" + }, + { + "nr": 133279, + "hash": "c8c282c3219ffa7b27b8cf77a7cd7cf96e4c5df6" + }, + { + "nr": 133028, + "hash": "1a7616922748f56cdf323754b35dfd865815ec7a" + }, + { + "nr": 132704, + "hash": "54b91d599cc53af673036e96bd0a801d3849d2fa" + }, + { + "nr": 132210, + "hash": "d20362e11bc503f14a38b13b2f26d2206b5da12a" + }, + { + "nr": 131408, + "hash": "237b2981fe280e63a1baec081e494c7f49c7490d" + }, + { + "nr": 130782, + "hash": "97fb9a3ee33301b7e5d61a7d1ca1de88fd989dfd" + }, + { + "nr": 132277, + "hash": "ba6fecb7352d339ce106aee5a59fef9b6a819550" + }, + { + "nr": 125271, + "hash": "b6021ca3ad9f1ff09e104f3830aabe6c0026b3cb" + }, + { + "nr": 132509, + "hash": "befe926959b983108d91af678da8e9738f32d8af" + }, + { + "nr": 131213, + "hash": "243b1e1ce3423d7987510d120937ef08bd63b038" + }, + { + "nr": 131215, + "hash": "cd9735be508a3c59b4307c8297b41434476d6fc7" + }, + { + "nr": 133013, + "hash": "7fe29fbc91d2da948a100336aadd68dac38e387a" + }, + { + "nr": 132800, + "hash": "6d3328b35706a82e1bda03f0c8532d777e104e37" + }, + { + "nr": 131562, + "hash": "3a5f52f5838517b4b381f30f9f69b1c7017246d4" + }, + { + "nr": 129237, + "hash": "a3d2e9b77aa82d4a57c4c7b0f38659834eb7b351" + }, + { + "nr": 132773, + "hash": "5634d58399dcbb676b4d32a151c9cd6762bc4f89" + }, + { + "nr": 132730, + "hash": "3d5c816ad930ddbff3914e77c6e7aead451a54cb" + }, + { + "nr": 132183, + "hash": "e70bea92e272c0f02febb00529bea81ca9a2f601" + }, + { + "nr": 133226, + "hash": "bc5c7cc451726f656af41539288cf84fc1df6f40" + }, + { + "nr": 132581, + "hash": "51282352ad3717afca9c62c5fa63a628c3706fc0" + }, + { + "nr": 129837, + "hash": "03f8e21aacf1539aa0ff64f3868382c0e29be406" + }, + { + "nr": 132777, + "hash": "b392801aa1563d093ec05771511225bf69b3afdb" + }, + { + "nr": 132764, + "hash": "6d439f38c1889e3854ef0c6a8422d569db4ec6a9" + }, + { + "nr": 132376, + "hash": "a421dac5059d4496626ca85884adb0e4b0b4173d" + }, + { + "nr": 131151, + "hash": "350fd26ce48049051a985132c3c0abb15cf01f15" + }, + { + "nr": 130720, + "hash": "39d77d023383d9d8090b14c5fa32eaffc877e7b6" + }, + { + "nr": 133164, + "hash": "5b6b52bb008fe7d299ff06cdeee7c3209f49d04c" + }, + { + "nr": 131574, + "hash": "63734feeb6bb604d50b001b641c367e65c010ed9" + }, + { + "nr": 131444, + "hash": "f70531127b3f26f03a38543e8183b0da7c4fe92d" + }, + { + "nr": 132750, + "hash": "32271d486492697a1d6fb40703540f3585e0328b" + }, + { + "nr": 132117, + "hash": "9c2a30abe6f615507889027a4fd5e9f88fe862e9" + }, + { + "nr": 132430, + "hash": "c0771410453b65dcad28d14af794a8a3e33772d8" + }, + { + "nr": 130160, + "hash": "ff1457c00c5d448657d43a7d8c4017d35703113e" + }, + { + "nr": 133042, + "hash": "f0f3b7ce3001ee9c409f0101cbbdcd83c25a09d7" + }, + { + "nr": 132907, + "hash": "0c3999f0446335f4d13176781fa5c99237157e89" + }, + { + "nr": 131822, + "hash": "dc3b8d4ea1b17348924ecdfa2ec73e59a38e42e1" + }, + { + "nr": 131887, + "hash": "d944e26e1ac921a46e05374ecbae3df27ebbec8a" + }, + { + "nr": 131965, + "hash": "f8442a8d4667d9f1b5318969468d37e41d6aaed2" + }, + { + "nr": 131265, + "hash": "a077f8aaf643b6b1f009733267eb2b2566ef770c" + }, + { + "nr": 133293, + "hash": "765de5cb84296789f2f1f8959c5b4ef0c1b40183" + }, + { + "nr": 133167, + "hash": "0f1c619f37161b553fa65eeb0bf68fad3cafb945" + }, + { + "nr": 131549, + "hash": "97720888ed4c2ea70bdd4ccf900dc3f4b842b3d4" + }, + { + "nr": 132901, + "hash": "94123dcf8bc5a0f445b095fada4ed8f36d412650" + }, + { + "nr": 132087, + "hash": "bf34bdc5d561d3559997f245621c586d479d5726" + }, + { + "nr": 131934, + "hash": "d030ff32b92d9a366202580ac61ee231a75764cb" + }, + { + "nr": 131654, + "hash": "9480cbb043fb3bfedb493e99fc406d1d61a3a74d" + }, + { + "nr": 132429, + "hash": "57994c84a8a793957e2ef8c88415aa21e1fd6220" + }, + { + "nr": 132513, + "hash": "077323a48896d495bd8b4eae8800e5311630d4e2" + }, + { + "nr": 132838, + "hash": "816d7936a9378af55598db5c401d0191e980ca85" + }, + { + "nr": 132219, + "hash": "534b4b561a272566b6a302e2db5385745c28b0bb" + }, + { + "nr": 132751, + "hash": "2ae039e3eabba042a4fcfb7b952443732e593e6e" + }, + { + "nr": 132720, + "hash": "d9124dc170ec24c3314995adab494f65e8f8adcf" + }, + { + "nr": 132698, + "hash": "561ab00d174778992d95326b2e2fde2ce86d4c7b" + }, + { + "nr": 132036, + "hash": "f0beb570a6e790adfcc9cf3cdb9af516b2e857d0" + }, + { + "nr": 131587, + "hash": "32510ef616532f1c2194ab8c11a897347749b64e" + }, + { + "nr": 132604, + "hash": "fbedf846dc67143de2f9e1cede8d0ba4c2363996" + }, + { + "nr": 130909, + "hash": "3bfd22983a3bb82cd8de5a22009df2ae2f624ea1" + }, + { + "nr": 132752, + "hash": "c94270d85c874443d61bd92ac726276ea521c6f9" + }, + { + "nr": 128748, + "hash": "a118b36fcdf6a9a093ee3c65a1a67e31a6dc9138" + }, + { + "nr": 131586, + "hash": "994d9657e1f1ebb3572ea63d9c4944d76d492162" + }, + { + "nr": 131495, + "hash": "d67ea6f03a11dc24596ca5c0abfc3d400291e5fc" + }, + { + "nr": 131001, + "hash": "7633bc3a700e789932b7e2be60bb27253dc53df8" + }, + { + "nr": 133157, + "hash": "dcc046bd5dfa276355627adfde7c0886eae56cf4" + }, + { + "nr": 133012, + "hash": "05c064734ab96e489de71687ce0745523d3639e7" + }, + { + "nr": 132803, + "hash": "e117a975ca2dbcf9826317a3c59f5f8face08668" + }, + { + "nr": 131979, + "hash": "842fb87a4976b6e279c7549c4c45a99fca14ec7f" + }, + { + "nr": 131845, + "hash": "268215f524727aa5a210cf47b538835d8c070086" + }, + { + "nr": 132632, + "hash": "61a67d1d2dcd9cb0660d54c86a2d2846c1b1531b" + }, + { + "nr": 132391, + "hash": "f0610c8e87d3d4647bebaded5846beeca99879f2" + }, + { + "nr": 132342, + "hash": "34ad561747a93205de494d015cfbd00d2604286e" + }, + { + "nr": 132339, + "hash": "840e0a9deaba0535e5800e71af63bdcbd2a301d5" + }, + { + "nr": 132723, + "hash": "1ce7af6cd0ec86d6550c9c687c4b18b4e4857ac4" + }, + { + "nr": 132096, + "hash": "1a0d4e1e0712807554ccafeffdc117652a2581a7" + }, + { + "nr": 132034, + "hash": "1bf29907e7eb3e568fb6a76ead5193f6fb0a21a2" + }, + { + "nr": 131752, + "hash": "ec3b6ddafb1279955c8812f77782ee8e716ba6a7" + }, + { + "nr": 133021, + "hash": "4fdd882445b4c84b96d2ddaecb4325564ddb3bb1" + }, + { + "nr": 132762, + "hash": "a20c56e97ac6975e469f9e9965f5deed63e72214" + }, + { + "nr": 132433, + "hash": "e0e3d9b9a323158e1053bdffec68491efde9417e" + }, + { + "nr": 132173, + "hash": "c2ebca7d397515b2e737ecd5593181dc518610ff" + }, + { + "nr": 132305, + "hash": "f062e90d7c16007b867acc0bb36648526a9f3ca4" + }, + { + "nr": 131647, + "hash": "68f838ecf7f1c7b7a60a5169072aaf8677bd1cd3" + }, + { + "nr": 132083, + "hash": "d93939044c3e0eb86198f41e2059e838a74c3988" + }, + { + "nr": 131799, + "hash": "795bb6ad8cc2ad9979789416c4da4f0a3f29e50a" + }, + { + "nr": 132244, + "hash": "95a105196d49fb59d795560a0b77b382efcae052" + }, + { + "nr": 131973, + "hash": "4deff5df8f09b5462ae0c17918da6b858559ab30" + }, + { + "nr": 131318, + "hash": "44c14244c9509ad75e711ab5a4f9efcd2ec233b6" + }, + { + "nr": 132886, + "hash": "ab9067c4cfb6fc009d4baf5ae90221a765e5ca86" + }, + { + "nr": 132222, + "hash": "d9ad44080b5104ea83292c39db65abee80000ad7" + }, + { + "nr": 128351, + "hash": "a72966c96d768c644e0b7fe553082710a6f784b5" + }, + { + "nr": 130593, + "hash": "edaec2bed29ca17aeaba17cf067f0044fd4b9323" + }, + { + "nr": 132456, + "hash": "cf39658750766b774f1e164e66107f7f008839e5" + }, + { + "nr": 132755, + "hash": "65d6ec9d84dec04248ca587db9bd0427a428b7c4" + }, + { + "nr": 122384, + "hash": "6f1492652bb844a64f6c1b49459cfdfb574dd3ac" + }, + { + "nr": 132165, + "hash": "2d6df68f54bdd7118490a6bb9850785e18f17a83" + }, + { + "nr": 132178, + "hash": "543a7c41119131af05f911a25248cdfd4fecdc8f" + }, + { + "nr": 131300, + "hash": "b83f6a63aac5e8c696af6743d1ee9e01390febd2" + }, + { + "nr": 127183, + "hash": "071145dd0ae92fd10ec06101ea93399a046a300b" + }, + { + "nr": 133060, + "hash": "c57424e88538b4ca9ee9d3a5e29deb8d0b936dc0" + }, + { + "nr": 132806, + "hash": "013a437233119cb8048c74b7c371aeef0e6eed69" + }, + { + "nr": 131837, + "hash": "0104d60ef2fb5e9816dd09dc8d1e6119f3157303" + }, + { + "nr": 126619, + "hash": "a3f7d0b06280fd716b16b619ca06df21708fffc5" + }, + { + "nr": 132522, + "hash": "b4f25fa6ecee369246c19f9ec89ffdcdffe06fb7" + }, + { + "nr": 132457, + "hash": "164984684f8495e8afdb29cad0e35370b6ac072b" + }, + { + "nr": 130727, + "hash": "8fed7b0443e54e3cf35bf5cf09951630c5113e2e" + }, + { + "nr": 133076, + "hash": "7b0f391c083848e602c8efde935eb761ab59d255" + }, + { + "nr": 132033, + "hash": "fbae5912de8dcbd24dec5a5a1a47e087c6d8c7f8" + }, + { + "nr": 132742, + "hash": "e479e914e50978e7d70b45a63008bcde62e0c321" + }, + { + "nr": 131623, + "hash": "ba007c76ef909b35f8e37a2889f7d1d3839d5a81" + }, + { + "nr": 131493, + "hash": "81be7056e17c90dd6db3e73219ba52fa5d1d85f1" + }, + { + "nr": 132895, + "hash": "cb2ae6f26e0bf389d5d24d48220b73d093074041" + }, + { + "nr": 131741, + "hash": "bd9cb0789cdc246974a5ac6a58b41446ea5fd2e4" + }, + { + "nr": 132822, + "hash": "d94fc9df8c128fe76fdd656702afac38356f8571" + }, + { + "nr": 132837, + "hash": "43f668a2a00ccb45e91c69291b9d612847b4d231" + }, + { + "nr": 133017, + "hash": "5b9411b6d4a3b2b7ab3fee630dd8f7130b3d1455" + }, + { + "nr": 132299, + "hash": "54e8eee69e870babac516d164f7a58866eea8c9b" + }, + { + "nr": 132361, + "hash": "b1b92e730b276fe3f8cfc44dab0bb561797f1e18" + }, + { + "nr": 132701, + "hash": "ae1f663e98e33147144e57d5e954e9b856ca8241" + }, + { + "nr": 132656, + "hash": "c8adc1c711f3d9e880bbde28f38d319f78584cfb" + }, + { + "nr": 132725, + "hash": "26733f63e52caa76dc6e0f242708a3e86fa714a2" + }, + { + "nr": 130542, + "hash": "4183772e70a623700b022adba351349122637ea1" + }, + { + "nr": 131563, + "hash": "d7f70fdd9b4307b7f6f9a57cd0dd3cfdbfd8f7e0" + }, + { + "nr": 132910, + "hash": "cd48f2b63a05ee5b6637c0e000f87d9d4dc2c28a" + }, + { + "nr": 132821, + "hash": "847491e03c73711cc73fbdf3b9f4dd777bf83e3c" + }, + { + "nr": 132276, + "hash": "7c24b71942e2c55d258029e821e5d8a2238548b9" + }, + { + "nr": 132413, + "hash": "45c4e3f43b7a708bdcee4e751aa77b70a279dc7d" + }, + { + "nr": 130919, + "hash": "3cbfb3d9fa0335c9e4dd1fbbfb022ce3831a36c5" + }, + { + "nr": 132000, + "hash": "bf0d88d6015b75ea0d5cb153a9ca5d5fb18516cc" + }, + { + "nr": 132054, + "hash": "f21eb4afda5f99e76fd4fcbc7d3ffc576232fee6" + }, + { + "nr": 131568, + "hash": "c5abb671e34cb316130de2afad50c980fc5f8934" + }, + { + "nr": 133030, + "hash": "0c71821c1694989bc9c74448f42cf455dfe0331d" + }, + { + "nr": 131641, + "hash": "15387daf7c997fbd06614f9269422fc66359bd9a" + }, + { + "nr": 132741, + "hash": "96c4b780054b83dc713dbdca6fb47a52d9366a26" + }, + { + "nr": 132012, + "hash": "0d8321dd58964e74652c969123861a450ceb7ccc" + }, + { + "nr": 131311, + "hash": "755ae0e63950e2900296345ff2e1af5d965c5b0e" + }, + { + "nr": 132903, + "hash": "202fe652239fe87103126de5b7c57f73586bab0d" + }, + { + "nr": 132884, + "hash": "fee5d0325f54dd7fbf51c451d90de3cb73c1f908" + }, + { + "nr": 132784, + "hash": "4c4e9ead8b0a6e548be701e90241b4b24438316f" + }, + { + "nr": 132721, + "hash": "1a198ce27cce56b202212ec20346113b0eb85e72" + }, + { + "nr": 132194, + "hash": "f31bd80286bab32275b48a6f99c8f431a42305fe" + }, + { + "nr": 131354, + "hash": "7676817b6fb9bb87ed6986a5abc01e8940a21294" + }, + { + "nr": 132326, + "hash": "1f01abbeae5eaa18cded98d60154c927dff53b8d" + }, + { + "nr": 131981, + "hash": "d3b0080a3a8503abdc9115c49a78b87970cba45e" + }, + { + "nr": 133062, + "hash": "ad15eb353d860e555f8fd3c93fe5256d47299b46" + }, + { + "nr": 132832, + "hash": "c4519a4a6e559d4e23002731eac4111a16a285b4" + }, + { + "nr": 132560, + "hash": "9047ca5a82cbd0c3892caf3d03f28bf717d66ec7" + }, + { + "nr": 131873, + "hash": "373ca7e553f02eb6d4c454babe6a7cac70ecf018" + }, + { + "nr": 132109, + "hash": "f8eeaf7f40d7e13287558677d6a6ea51573ab801" + }, + { + "nr": 131868, + "hash": "63eb7b44c241861e1fa163ed14637b9cf16dade9" + }, + { + "nr": 131627, + "hash": "c8b4219421fa47bb0776e22244768136d4fdb38a" + }, + { + "nr": 131266, + "hash": "ec248f757165d1ad348b347ec5f130454b9b9fbe" + }, + { + "nr": 132108, + "hash": "b7e662e6ddac71b434eb6618602928635609a76f" + }, + { + "nr": 133027, + "hash": "dd6883698378e8d640cf26efd9838998cae8ef46" + }, + { + "nr": 132726, + "hash": "561562103bd1c8da8959620940b826231ae59ba1" + }, + { + "nr": 131919, + "hash": "bed9e631e88369c5d876e99b043433096b7a1030" + }, + { + "nr": 130994, + "hash": "3c57b89a1e8079b76aeec93fcf43c080e426fd10" + }, + { + "nr": 133120, + "hash": "f1b0faa1208d0b22e1e09e56e8e12ad54a1cee6b" + }, + { + "nr": 132605, + "hash": "e22ab1f083b2402effc395bfd0ef58a9b46826e5" + }, + { + "nr": 132840, + "hash": "df10c90dfea27532584abd43d6cff7b63b88bedb" + }, + { + "nr": 130503, + "hash": "b3b896159fe1db26f8d7025b6b46f58767d93377" + }, + { + "nr": 132443, + "hash": "5ea066496e21f7b90606d890e58f1d7ff4ccbafb" + }, + { + "nr": 132942, + "hash": "0a7a55197314a1e1ed0d4546e6edf89366058e07" + }, + { + "nr": 133018, + "hash": "06658fc25e137c9ab473ba9614a4545b35393148" + }, + { + "nr": 132348, + "hash": "eaa366c693cda7afac478c866c13073b25905b11" + }, + { + "nr": 132754, + "hash": "a582de4ea3be45e456a2d1979a9ce14e665c7401" + }, + { + "nr": 132574, + "hash": "51a4c35b780755148f4d9a39b2712ac53dcebf1d" + }, + { + "nr": 128010, + "hash": "e1b89259f4ccffa61b70d5cdc11330d3d88f9966" + }, + { + "nr": 132932, + "hash": "14f5bfc18c57d01b4b484c920cef757ebed91959" + }, + { + "nr": 132336, + "hash": "96cc48212d097c469c9b4795ca9d73fda3d3b548" + }, + { + "nr": 132040, + "hash": "85c3d1e1ae769978d0b66c4b4c27f83d1a9cde0d" + }, + { + "nr": 131418, + "hash": "778f85081f15c3a44ed62c32fe31f71dcd64a0fa" + }, + { + "nr": 130852, + "hash": "f2839d53aa4e51f151da21165e31efb2ec499762" + }, + { + "nr": 131089, + "hash": "b31804dc2e75d0c41bcbfbb697a12a2331101806" + }, + { + "nr": 131989, + "hash": "19471e159a3bd1933bf234d55aefba94e7898024" + }, + { + "nr": 132645, + "hash": "0b60177e27b9005f9dc592d2c007b89ae3be6b9e" + }, + { + "nr": 132467, + "hash": "3c2bf815c52dfd8ec3b2431e7639dd4ee881de4c" + }, + { + "nr": 120816, + "hash": "580f504e40d5c95450193103360e34084050b69e" + }, + { + "nr": 131968, + "hash": "5c13364e9fe717b4f12afb40a77932b70148c414" + }, + { + "nr": 131844, + "hash": "c0cd9d57243054696fbeb886c77b455ac920cf9a" + }, + { + "nr": 133068, + "hash": "fa2a813863e6d0176419993b1f73282b443ab02f" + }, + { + "nr": 131463, + "hash": "25559829804c6aa9ef3dd945d0d68ec7763e0f92" + }, + { + "nr": 131996, + "hash": "7f7a6c53e848af0ae196854623138e576c79a65a" + }, + { + "nr": 131165, + "hash": "d9383076554991af204efef1613870c67748c40f" + }, + { + "nr": 132662, + "hash": "6456fb0c7b8f032059b2491d968ab01f553c697a" + }, + { + "nr": 132724, + "hash": "c22c05c62e37295bdf8e1cefaca5bc1d325074eb" + }, + { + "nr": 132236, + "hash": "e707a19fff4b64c9f1bf3de6f382cf6795227518" + }, + { + "nr": 132462, + "hash": "11339f3fcae77991ef27274be258fa28eb02d420" + }, + { + "nr": 132106, + "hash": "e3a97404cd36baa5a2d27f1a3f7e0fec1332155d" + }, + { + "nr": 132965, + "hash": "52add834ed0511293dc2664061150613bf6a4206" + }, + { + "nr": 132674, + "hash": "b9e8323804a7001d325ec8d58920d7f1c08a8c17" + }, + { + "nr": 132257, + "hash": "c9056a7a5b11918bb2bbb90639918f68f6b2315e" + }, + { + "nr": 131459, + "hash": "7f4ae7abe12093a80294f02acd4c19eab8793034" + }, + { + "nr": 132595, + "hash": "d678a955a151464410e1c918063b2038092e4b4b" + }, + { + "nr": 133016, + "hash": "11100f103286f82c4bd23956d1e1d33f50c39b93" + }, + { + "nr": 132551, + "hash": "278984d39b4bee5ce6019c573bb32ecb19f28d88" + }, + { + "nr": 132537, + "hash": "bd9210f4b435f34069218522eefc1bbbe8850db2" + }, + { + "nr": 133034, + "hash": "75696ed65c0faa7cd534fed7b98dad00d5de7501" + }, + { + "nr": 132258, + "hash": "c954328d4adb77a6d6a524649c3b22ec13706e59" + }, + { + "nr": 131406, + "hash": "fb935dbadd62297a2f13e8f48329417a30405c98" + }, + { + "nr": 133023, + "hash": "eea981d4ad2cca20633a6518f5f8e1e86b1ea47b" + }, + { + "nr": 132896, + "hash": "a66a250efb7eb42b34b2e1e364c5284c9301a237" + }, + { + "nr": 129438, + "hash": "259c95471debc752daddf63fcbb97db7dcd12718" + }, + { + "nr": 132127, + "hash": "59a322aa57b50ea3f616a57df0119996c20c2d76" + }, + { + "nr": 132999, + "hash": "9f923ad67e1fe57cab2171809c6075ca37db3629" + }, + { + "nr": 133085, + "hash": "95c6ffa1b411a2ab469fef52aa580de00d5f6a4f" + }, + { + "nr": 132683, + "hash": "e56c92fea4af25e6f15704226d2d0cbd00d08480" + }, + { + "nr": 132284, + "hash": "9a2ffbba4eebb5758666e32b5def325df4c92f37" + }, + { + "nr": 129373, + "hash": "b75bea2d3ed25456ad525ad7b5bb096e7dc4a1a8" + }, + { + "nr": 129501, + "hash": "3c38f44726a41d78d0e4f4436c26ee93d3630e73" + }, + { + "nr": 131632, + "hash": "29a6151804a75b541f35c70efcdddede8d61d2cd" + }, + { + "nr": 132700, + "hash": "45306c0746856bbdf9359766dcba17057b930ed8" + }, + { + "nr": 131157, + "hash": "0436f97897b20b18c6265420835a0acb76278b80" + }, + { + "nr": 132484, + "hash": "81e04903902316661bc4c6f19808bc79b583fa09" + }, + { + "nr": 132933, + "hash": "cc32f9a98f735c62a147989b2c985abc6003646b" + }, + { + "nr": 132912, + "hash": "9a3a232d4a055af50d687a3de2571bdc45ef1304" + }, + { + "nr": 132794, + "hash": "66d2a70dd6e16214253e8ea6328cf86de5432d5f" + }, + { + "nr": 132285, + "hash": "b63d1892c78ebed516e720a4fd95e8563465f838" + }, + { + "nr": 132473, + "hash": "d632784bc899baa85da0d51a309e3b75cfbab34a" + }, + { + "nr": 132776, + "hash": "c8132191e28c4f1c79bab395d76560cf9a1b9471" + }, + { + "nr": 132772, + "hash": "cf63760e6721608c18207956b8bbf38cebf4411d" + }, + { + "nr": 132753, + "hash": "b9256b6e2bfaa03fd31d77256225d63b677933e0" + }, + { + "nr": 131790, + "hash": "7f56f486de2c9c5be7904b701f0e861025516811" + }, + { + "nr": 131992, + "hash": "2d0af779dbb8f27d6b5e511a5c0392d5df5b584e" + }, + { + "nr": 122634, + "hash": "1a2e59683f605dbf6e8eebdb37cc739c7f7c0137" + }, + { + "nr": 131961, + "hash": "f6bcb6614c66b2a4467023637378eca988252784" + }, + { + "nr": 132935, + "hash": "623250b7cbfe681e564125d72e7aee6efe442540" + }, + { + "nr": 132340, + "hash": "f7758b9e6936aa7a1f9ce84f5fca40cf19d401ca" + }, + { + "nr": 132529, + "hash": "4c03d171633de8d152ee2e99f8ea1fee204e740d" + }, + { + "nr": 132351, + "hash": "557267a267f94c50295a045f03bd019b55f2b320" + }, + { + "nr": 131664, + "hash": "b4c18f407d6c66a722fd04dc6fb2f477b9491e2e" + }, + { + "nr": 131842, + "hash": "79a1ea1f70bcd917015fac3a6eb2b36fbe5ea791" + }, + { + "nr": 131509, + "hash": "40b39e398b9ca83f73f9aa39f0e1729a2003dd69" + }, + { + "nr": 131525, + "hash": "f3b8859966ebbea7e4096485046b8854a41b26fb" + }, + { + "nr": 132558, + "hash": "e2cedfa8944217cabec71c37d185917bb5a0f818" + }, + { + "nr": 131018, + "hash": "4c7637fe5a174b7928f31777bb049fd8da056866" + }, + { + "nr": 132341, + "hash": "83a6e3eb1e6496216dab767ae4a222c5144b23b4" + }, + { + "nr": 132251, + "hash": "01a085fef0db0f2fa870f38cd0a7a7337313259c" + }, + { + "nr": 129458, + "hash": "8b20f9d2c1478df03708735a649249694a059a43" + }, + { + "nr": 132019, + "hash": "903ff9672a2e073f3c181729112c0918ff90a4fd" + }, + { + "nr": 132007, + "hash": "1fb738c70b93e39647c636a362c595e4bbd86e7c" + }, + { + "nr": 132768, + "hash": "d8b29e5470008a3ce5963016594792dd8e269fdd" + }, + { + "nr": 132028, + "hash": "a4e91e6aa65b75eccf9c22d8d0fd535eaf022a85" + }, + { + "nr": 132594, + "hash": "293b553135dc918ed05f30913822a60ba0c1a9af" + }, + { + "nr": 130333, + "hash": "e95ca48d4f3f76943e3b88c758b10219e0bf6baf" + }, + { + "nr": 131306, + "hash": "0d899de9ba0921aa3c6d48c84e510fee8a172b3e" + }, + { + "nr": 133136, + "hash": "4902a1ea5c80f09932cd056eeb40b8641a0f16fc" + }, + { + "nr": 132779, + "hash": "e49e1be282e16dcf7d527e26a04b5b7ada7c3be7" + }, + { + "nr": 132763, + "hash": "9e4669ba71fad8c74fde0e54dba6c9562c621adc" + }, + { + "nr": 132238, + "hash": "c4a094e237e59a11448736a9204f9af3e5239e9a" + }, + { + "nr": 131768, + "hash": "7f5a3cbebce12b61be47e822326a54dcdfb4bc4b" + }, + { + "nr": 131559, + "hash": "448df64de3a121afa86c4a1708bff64cee10f9c2" + }, + { + "nr": 131506, + "hash": "96257090e78ac2e78eb13411e989782c8d4546f1" + }, + { + "nr": 130653, + "hash": "0d2fe7e7f0234395c439f23d9423523d42f8263f" + }, + { + "nr": 132593, + "hash": "e4f8aeab3ac2dfb416548f0338a8f53fedb59f9a" + }, + { + "nr": 130161, + "hash": "5e083d708f1297d7aaa417a5ddfa184d7d859db6" + }, + { + "nr": 131299, + "hash": "4b305dee266fe09dcb5bd454b6ee01de2b2dc32a" + }, + { + "nr": 129874, + "hash": "43930b9ebeda2ca019f20f0cd3d1e53de17ff820" + }, + { + "nr": 132642, + "hash": "26dd6d3fdc4dcfcfc95a251b22be0f604da4d480" + }, + { + "nr": 133046, + "hash": "d941dc136238a6b1d1ba9e31311844baa820926d" + }, + { + "nr": 132781, + "hash": "8670ded56bc41c05b8d329f4e7ecf42fc5b6fd16" + }, + { + "nr": 132542, + "hash": "720f78545464d4332730e7670354e0af9d3f2036" + }, + { + "nr": 132338, + "hash": "2ef68b5982425305c6ea1e73cb2eb2a6e3e378f3" + }, + { + "nr": 132229, + "hash": "fae4dc3100490a0b5454457bf50126126eca6a34" + }, + { + "nr": 131798, + "hash": "89049e28c81f6ef0f3230faad2aea029041ee1dd" + }, + { + "nr": 127667, + "hash": "6d60faa177e0fcdfbd078624244c8b7d3dac4456" + }, + { + "nr": 132626, + "hash": "991b6c44ca0c89d458d0afd323f6d95675287209" + }, + { + "nr": 133350, + "hash": "f5cf712024590527741a948148dc41cfe2888d2f" + }, + { + "nr": 130606, + "hash": "f084e8714071e13e48500d4fd2e3d01dab1cbc92" + }, + { + "nr": 132065, + "hash": "064a81c4b406b753371a553f0217ff6171e15cd7" + }, + { + "nr": 131602, + "hash": "9be72fd85c479487ee9ff9510822bd2799dd6dbf" + }, + { + "nr": 132121, + "hash": "b3db6401c6a85314da4a5aa69314686e2c3f8920" + }, + { + "nr": 132893, + "hash": "60e9fbe7aa1ff9d085a50302ba12b2a2a1816252" + }, + { + "nr": 132833, + "hash": "5fcc4ee2ee3afb90d319ab0c5ac4b98884d21bbd" + }, + { + "nr": 132876, + "hash": "52f8a52071014bac0f879e5d3f3071bffa8325b8" + }, + { + "nr": 132352, + "hash": "7856471f06a83de48393d81b734735f358f65464" + }, + { + "nr": 131425, + "hash": "072d8337b2733e645320cf5241bad54010e7791f" + }, + { + "nr": 132902, + "hash": "8a44b1364e64d09b43d83f57e0510586b0622eaa" + }, + { + "nr": 132296, + "hash": "205c13bf1c5a4ef56630216d893fc6c840bc1fc5" + }, + { + "nr": 132548, + "hash": "17585367ff5699e149ee0d7fa0c41804749da95b" + }, + { + "nr": 128653, + "hash": "38c050a1f052fe2a2b57b0072c5cee3fb9e14d91" + }, + { + "nr": 132614, + "hash": "ba47fd10e076e166c9fec72100d05f97f7088a0f" + }, + { + "nr": 132472, + "hash": "d6f8937bbc6d5994e13a1caf6c02c20a5809ef21" + }, + { + "nr": 132149, + "hash": "38e7b985611487d5d50580cc684e9a62facd962f" + }, + { + "nr": 131501, + "hash": "8d4e0b710c85f5d0b6bf781eee7567bbabb7757a" + }, + { + "nr": 132890, + "hash": "f2f42443b1032041eeba3ada052980870013f65c" + }, + { + "nr": 132765, + "hash": "15daf83e735d1ecbb61d2ce5fa00bae15c238d42" + }, + { + "nr": 132648, + "hash": "a4eb31f5ef277bdf71eba7bd39a1c87b2a57654d" + }, + { + "nr": 132080, + "hash": "4442970df988b58f2a062937ee975d290de48840" + }, + { + "nr": 131677, + "hash": "1020831f9ee933a383f208b89ada4525917fe782" + }, + { + "nr": 131662, + "hash": "3d095e0e13afd77374130198539d6de662fb31ed" + }, + { + "nr": 132767, + "hash": "f24b24792a2107116e0be7558ea2c7a3cd8cecdf" + }, + { + "nr": 132771, + "hash": "c7b005e392d98e94599b2e4ebc94df956b1f3eba" + }, + { + "nr": 132355, + "hash": "19aeba789022780eda16252a88551f69178041d3" + }, + { + "nr": 131907, + "hash": "9a97f4c8876d4a373eab7469553d46c6c147795b" + }, + { + "nr": 131658, + "hash": "b612fb59d35de76e492890d2d07d57bcd103f8fc" + }, + { + "nr": 131962, + "hash": "417f5bbca323d8b342d041a810d03580cc4a1fa5" + }, + { + "nr": 131818, + "hash": "aa5d21c6c1bb019491039fd2376ed4c62525c544" + }, + { + "nr": 132940, + "hash": "75a0c3927420a080573a594cc43972776730ea9e" + }, + { + "nr": 132778, + "hash": "412dbb77757dff218952ec3ea282affd96a7aa60" + }, + { + "nr": 132190, + "hash": "88b250f81cb391a5acd9facac9f104ed5fb3c614" + }, + { + "nr": 127365, + "hash": "fbae49fab75c5387fe39428019163dbc8842152a" + }, + { + "nr": 132514, + "hash": "18cbc73c21271cec673d730df3146d4d66c48299" + }, + { + "nr": 132706, + "hash": "8c22a4a1c773764370895df07922afb9515fb7ec" + }, + { + "nr": 132617, + "hash": "2896f3f60d37d389a0a7bbff338a68e1dd004a5a" + }, + { + "nr": 132699, + "hash": "722ef76d6dbf7690f6349cf5101ec2476cf09e15" + }, + { + "nr": 131514, + "hash": "60184ebe89ba94418c89c3478d226eadc9313148" + }, + { + "nr": 131660, + "hash": "9c174cd2e417917b0bcf7388418d54c59ed95f44" + }, + { + "nr": 130989, + "hash": "78e42f6b702ed65e3415560b07b3ba205251cca7" + }, + { + "nr": 131491, + "hash": "eaeadb4fda66ca528f76a2170b473b730a1cdde4" + }, + { + "nr": 132504, + "hash": "c828a3fa6ab9073a278d47e3fe5ad045f3bae17c" + }, + { + "nr": 133276, + "hash": "2c8dea71630fd64566e0ef3a65ab89b1e3c3a2eb" + }, + { + "nr": 133135, + "hash": "27dabdc3946f789246dd10ed07f026dea951d2a8" + }, + { + "nr": 132647, + "hash": "f72341611e815e1458ffaf7ba1e2ae3adaca1239" + }, + { + "nr": 132374, + "hash": "d7703262a87c652bd58237346ed7d2312ef701ab" + }, + { + "nr": 131085, + "hash": "1c414e952f84d4d57b3634d62ef64bcc9526be79" + }, + { + "nr": 130987, + "hash": "d5dacd3facd0412339cfb800f423f6bde3105610" + }, + { + "nr": 132868, + "hash": "b2f68a50af2e4046be7a296d7f6b44f35a903901" + }, + { + "nr": 132214, + "hash": "47381f79529a10e91092ca80ed2e5d08472fdb29" + }, + { + "nr": 132743, + "hash": "4fdb6c9eed139cae1ea9df4b06bb025c402abc5c" + }, + { + "nr": 131916, + "hash": "91a3639900c07cb95c506c99ffd71118cd6c6a3b" + }, + { + "nr": 130713, + "hash": "d320b9800eac62e26bc55d14440fb281d53f5ce2" + } + ] } \ No newline at end of file diff --git a/releases/release-1.34/release-team.md b/releases/release-1.34/release-team.md index 85f19136fdd..c5ac9d5d0b3 100644 --- a/releases/release-1.34/release-team.md +++ b/releases/release-1.34/release-team.md @@ -1,15 +1,15 @@ -# Kubernetes v1.34 Release Team - -| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -|-------------------|--------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Release Team Lead | Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav`) | Daniel Chan ([@chanieljdan](https://github.com/chanieljdan) / Slack : `@dchan`), Ryota Sawada ([@rytswd](https://github.com/rytswd) / Slack: `@Ryota`), Wendy Ha ([@wendy-ha18](https://github.com/wendy-ha18) / Slack `@Wendy Ha`), Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/sreeram-venkitesh) / Slack: `@sreeram.venkitesh`) | -| Emeritus Adviser | Frederico Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz`) | N/A | -| Enhancements | Jenny Shu ([@jenshu](https://github.com/jenshu) / Slack: `@Jenny Shu`) | Drew Hagen ([@drewhagen](https://github.com/drewhagen), Slack: `@Drew Hagen`), Faeka Ansari ([@fykaa](https://github.com/fykaa), Slack: `@Faeka Ansari`), Josh Michielsen ([@jmickey](https://github.com/jmickey), Slack: `@jmickey`), Rayan Das ([@rayandas](https://github.com/rayandas), Slack: `@rayandas`), Sean McGinnis ([@stmcginnis](https://github.com/stmcginnis), Slack: `@Sean McGinnis`) | -| Communications | Agustina Barbetta ([@aibarbetta](https://github.com/aibarbetta) / Slack: `@aibarbetta`) | Alejandro Josue Leon Bellido ([@88abb](https://github.com/88abb), Slack: `@Alejandro Leon`), Dipesh Rawat ([@dipesh-rawat](https://github.com/dipesh-rawat), Slack: `@Dipesh`), Graziano Casto ([@graz-dev](https://github.com/graz-dev), Slack: `@Graziano Casto`), Melony Qin ([@cloudmelon](https://github.com/cloudmelon), Slack: `@Melony Q. (aka.cloudmelon )`) | -| Release Signal | Rajalakshmi Girish ( [@Rajalakshmi-Girish](https://github.com/Rajalakshmi-Girish) / Slack: `@Rajalakshmi Girish` ) | ChengHao Yang ([@tico88612](https://github.com/tico88612), Slack: `@ChengHao Yang (tico88612)`), Elieser Pereira ([@elieser1101](https://github.com/elieser1101), Slack: `@elieser1101`), Prajyot Parab ([@Prajyot-Parab](https://github.com/Prajyot-Parab), Slack: `@Prajyot Parab`), Muhammad Adil Ghaffar ([@adilGhaffarDev](https://github.com/adilGhaffarDev), Slack: `@adil`), Sarthak Negi ([@sarthaksarthak9](https://github.com/sarthaksarthak9), Slack: `@Sarthak Negi`) | -| Docs | Michelle Nguyen ([@michellengnx](https://github.com/michellengnx) / Slack: `@Michelle Nguyen`) | Urvashi Choubey ([@Urvashi0109](https://github.com/Urvashi0109), Slack: `@Urvashi`), Arvind Parekh ([@ArvindParekh](https://github.com/ArvindParekh), Slack: `@Arvind Parekh`), YuJen Huang ([@yujen77300](https://github.com/yujen77300), Slack: `@YuJen Huang(Dylan)`), Ryan Su ([@ryan-su-12](https://github.com/ryan-su-12), Slack: `@DangerBuff`), Rashan Smith ([@rashansmith](https://github.com/rashansmith), Slack: `@Rashan`) | -| Branch Manager | Matteo Bianchi ( [@mbianchidev](https://github.com/mbianchidev) / Slack: `@mbianchidev`) | Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos), Slack: `@Angelos Kolaitis`), Drew Hagen ([@drewhagen](https://github.com/drewhagen), Slack: `@Drew Hagen`), Satyam Soni ([@satyampsoni](https://github.com/satyampsoni), Slack: `@satyampsoni`) | - -Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include v1.34, once the v1.34 release cycle concludes. +# Kubernetes v1.34 Release Team + +| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +|-------------------|--------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Release Team Lead | Vyom Yadav ([@Vyom-Yadav](https://github.com/Vyom-Yadav) / Slack: `@Vyom Yadav`) | Daniel Chan ([@chanieljdan](https://github.com/chanieljdan) / Slack : `@dchan`), Ryota Sawada ([@rytswd](https://github.com/rytswd) / Slack: `@Ryota`), Wendy Ha ([@wendy-ha18](https://github.com/wendy-ha18) / Slack `@Wendy Ha`), Sreeram Venkitesh ([@sreeram-venkitesh](https://github.com/sreeram-venkitesh) / Slack: `@sreeram.venkitesh`) | +| Emeritus Adviser | Frederico Muñoz ([@fsmunoz](https://github.com/fsmunoz) / Slack: `@fsmunoz`) | N/A | +| Enhancements | Jenny Shu ([@jenshu](https://github.com/jenshu) / Slack: `@Jenny Shu`) | Drew Hagen ([@drewhagen](https://github.com/drewhagen), Slack: `@Drew Hagen`), Faeka Ansari ([@fykaa](https://github.com/fykaa), Slack: `@Faeka Ansari`), Josh Michielsen ([@jmickey](https://github.com/jmickey), Slack: `@jmickey`), Rayan Das ([@rayandas](https://github.com/rayandas), Slack: `@rayandas`), Sean McGinnis ([@stmcginnis](https://github.com/stmcginnis), Slack: `@Sean McGinnis`) | +| Communications | Agustina Barbetta ([@aibarbetta](https://github.com/aibarbetta) / Slack: `@aibarbetta`) | Alejandro Josue Leon Bellido ([@88abb](https://github.com/88abb), Slack: `@Alejandro Leon`), Dipesh Rawat ([@dipesh-rawat](https://github.com/dipesh-rawat), Slack: `@Dipesh`), Graziano Casto ([@graz-dev](https://github.com/graz-dev), Slack: `@Graziano Casto`), Melony Qin ([@cloudmelon](https://github.com/cloudmelon), Slack: `@Melony Q. (aka.cloudmelon )`) | +| Release Signal | Rajalakshmi Girish ( [@Rajalakshmi-Girish](https://github.com/Rajalakshmi-Girish) / Slack: `@Rajalakshmi Girish` ) | ChengHao Yang ([@tico88612](https://github.com/tico88612), Slack: `@ChengHao Yang (tico88612)`), Elieser Pereira ([@elieser1101](https://github.com/elieser1101), Slack: `@elieser1101`), Prajyot Parab ([@Prajyot-Parab](https://github.com/Prajyot-Parab), Slack: `@Prajyot Parab`), Muhammad Adil Ghaffar ([@adilGhaffarDev](https://github.com/adilGhaffarDev), Slack: `@adil`), Sarthak Negi ([@sarthaksarthak9](https://github.com/sarthaksarthak9), Slack: `@Sarthak Negi`) | +| Docs | Michelle Nguyen ([@michellengnx](https://github.com/michellengnx) / Slack: `@Michelle Nguyen`) | Urvashi Choubey ([@Urvashi0109](https://github.com/Urvashi0109), Slack: `@Urvashi`), Arvind Parekh ([@ArvindParekh](https://github.com/ArvindParekh), Slack: `@Arvind Parekh`), YuJen Huang ([@yujen77300](https://github.com/yujen77300), Slack: `@YuJen Huang(Dylan)`), Ryan Su ([@ryan-su-12](https://github.com/ryan-su-12), Slack: `@DangerBuff`), Rashan Smith ([@rashansmith](https://github.com/rashansmith), Slack: `@Rashan`) | +| Branch Manager | Matteo Bianchi ( [@mbianchidev](https://github.com/mbianchidev) / Slack: `@mbianchidev`) | Angelos Kolaitis ([@neoaggelos](https://github.com/neoaggelos), Slack: `@Angelos Kolaitis`), Drew Hagen ([@drewhagen](https://github.com/drewhagen), Slack: `@Drew Hagen`), Satyam Soni ([@satyampsoni](https://github.com/satyampsoni), Slack: `@satyampsoni`) | + +Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include v1.34, once the v1.34 release cycle concludes. diff --git a/releases/release-1.35/OWNERS b/releases/release-1.35/OWNERS index 2a7e86fce35..d2853733ceb 100644 --- a/releases/release-1.35/OWNERS +++ b/releases/release-1.35/OWNERS @@ -1,11 +1,11 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -approvers: - - release-team-lead - - release-team-lead-shadows - -reviewers: - - communications-subteam-approvers - - docs-subteam-approvers - - enhancements-subteam-approvers - - release-signal-subteam-approvers +# See the OWNERS docs at https://go.k8s.io/owners + +approvers: + - release-team-lead + - release-team-lead-shadows + +reviewers: + - communications-subteam-approvers + - docs-subteam-approvers + - enhancements-subteam-approvers + - release-signal-subteam-approvers diff --git a/releases/release-1.35/README.md b/releases/release-1.35/README.md index e17aff205a2..ecfe943a8f6 100644 --- a/releases/release-1.35/README.md +++ b/releases/release-1.35/README.md @@ -1,127 +1,127 @@ ---- -title: "Kubernetes v1.35 Release Information" -weight: 98 -slug: "release" -aliases: [ "/release" ] -description: | - Information regarding the current release cycle including important dates, - Release Team contact information, tracking spreadsheets and more! ---- - -# Kubernetes v1.35 - -#### Links - -* [This document](https://git.k8s.io/sig-release/releases/release-1.35/README.md) -* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.35/release-team.md) -* [Meeting Minutes](https://bit.ly/k8s135-releasemtg) (members of [release-team@] receive meeting invites) -* [v1.35 Release Calendar](https://bit.ly/k8s-release-cal) -* Contact: [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) on - slack, [release-team](mailto:release-team@kubernetes.io) on e-mail -* [Internal Contact Info](https://bit.ly/k8s135-contacts) (accessible only to members of [release-team@]) - -#### Tracking docs - -* [Enhancements Tracking Board](https://bit.ly/k8s135-enhancements) -* [Feature blog Tracking Board](https://bit.ly/k8s135-feature-blogs) -* [Bug Triage Tracking Board](https://bit.ly/k8s135-bugtriage) -* [CI Signal Project Board & Issue Tracking](https://bit.ly/k8s135-cisignal) -* [Retrospective Document](https://bit.ly/k8s135-retro) -* [kubernetes/kubernetes v1.35 milestone](https://github.com/kubernetes/kubernetes/milestone/68) - -#### Guides - -* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) -* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) - -## Summary - -The v1.35 release cycle is as follows: - -- **Monday 15th September 2025**: Week 1 — Release cycle begins -- **Thursday 9th October 2025 (AoE) / Friday 10th October 2025, 12:00 UTC**: Week 4 — [Production Readiness Freeze][Production Readiness Freeze] -- **Thursday 16th October 2025 (AoE) / Friday 17th October 2025, 12:00 UTC**: Week 5 — [Enhancements Freeze][Enhancements Freeze] -- **Thursday 30th October 2025 (AoE) / Friday 31st October 2025, 12:00 UTC**: Week 7 — [Feature blog freeze][Feature blog freeze] -- **Thursday 6th November 2025 (AoE) / Friday 7th November 2025, 12:00 UTC**: Week 8 — [Code Freeze][Code Freeze] and [Test Freeze][Test Freeze] -- **Monday 10th - Thursday 13th November 2025**: Week 9 - [KubeCon NA](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/) -- **Tuesday 2nd December 2025 (AoE) / Wednesday 3rd December 2025, 12:00 UTC**: Week 12 — [Docs Freeze][Docs Freeze] -- **Wednesday 17th December 2025**: Week 14 — Kubernetes v1.35.0 released - -#### Note on AoE deadlines: -Deadlines are expressed in “Anywhere on Earth” (AoE) time. This means the date ends when the calendar day finishes in the last timezone on Earth (UTC−12). -Example: A deadline of Thursday, Oct 16 (AoE) gives contributors their full Thursday everywhere in the world. The cutoff therefore would be Friday, Oct 17 at 12:00 UTC. - -## Timeline - -| **What** | **Who** | **When** | **Week** | **Release Signal** | -| -------------------------------------------------------------------------------------- | ----------------------------- | --------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------ | -| Start of Release Cycle | Lead | Monday 15th September 2025 | week 1 | [master-blocking], [master-informing] | -| Start Enhancements Tracking | Enhancements Lead | Monday 15th September 2025 | week 1 | | -| Schedule finalized | Lead | Friday 19th September 2025 | week 1 | | -| Team finalized | Lead | Friday 19th September 2025 | week 1 | | -| Begin APAC-friendly meetings | Lead | Wednesday 24th September 2025 | week 2 | | -| Start Release Notes Draft | Docs Lead | Wednesday 1st October 2025 | week 3 | | -| Call for PRR and Enhancement Freeze [Exceptions][Exception] | Lead | Thursday 2nd October 2025 | week 3 | | -| v1.35.0-alpha.1 released | Branch Manager | Wednesday 8th October 2025 | week 4 | | -| **Begin [Production Readiness Freeze]** | Enhancements Lead | Thursday 9th October 2025 (AoE) / Friday 10th October 2025, 12:00 UTC | week 4 | | -| **Begin [Enhancements Freeze]** | Enhancements Lead | Thursday 16th October 2025 (AoE) / Friday 17th October 2025, 12:00 UTC | week 5 | | -| v1.35.0-alpha.2 released | Branch Manager | Wednesday 22nd October 2025 | week 6 | | -| Brace Yourself, Code Freeze is Coming | Comms / Release Signal | Monday 27th October 2025 | week 7 | | -| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 23th October 2025 | week 6 | | -| **Begin [Feature blog freeze] - Open placeholder PRs** | Comms Lead | Thursday 30th October 2025 (AoE) / Friday 31st October 2025, 12:00 UTC | week 7 | | -| Call for Code Freeze [Exceptions][Exception] | Lead | Friday 31st October 2025 | week 7 | | -| v1.35.0-alpha.3 released | Branch Manager | Wednesday 5th November 2025 | week 8 | | -| **Begin [Code Freeze] and [Test Freeze]** | Branch Manager | Thursday 6th November 2025 (AoE) / Friday 7th November 2025, 12:00 UTC | week 8 | | -| **KubeCon NA** | | Monday 10th - Thursday 13th November 2025 | week 9 | | -| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 17th November 2025 | week 10 | | -| Deprecations and Removals blog published | Comms | Monday 17th November 2025 | week 10 | | -| Docs deadline — PRs ready for review | Docs Lead | Tuesday 18th November 2025 | week 10 | | -| Release Highlights deadline | Comms | Tuesday 18th November 2025 | week 10 | | -| v1.35.0-beta.0 released | Branch Manager | Wednesday 19th November 2025 | week 10 | | -| Release blog ready to review | Comms / Docs | Thursday 20th November 2025 (AoE) / Friday 21st November 2025, 12:00 UTC | week 10 | | -| Feature blogs ready to review | Enhancement Owner / SIG Leads | Monday 24th November 2025 | week 11 | | -| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 24th November 2025 | week 11 | | -| release-1.35 branch created | Branch Manager | Tuesday 2nd December 2025 | week 12 | | -| release-1.35 jobs created | Branch Manager | Tuesday 2nd December 2025 | week 12 | | -| Start final draft of Release Notes | Docs Lead | Tuesday 2nd December 2025 | week 12 | | -| **[Docs Freeze]** | Docs Lead | Tuesday 2nd December 2025 (AoE) / Wednesday 3rd December 2025, 12:00 UTC | week 12 | | -| v1.35.0-rc.0 released | Branch Manager | Tuesday 2nd December 2025 | week 12 | [1.35-informing], [1.35-blocking], [master-blocking], [master-informing] | -| Release Highlights complete | Docs Lead | Tuesday 9th December 2025 | week 13 | | -| v1.35.0-rc.1 released | Branch Manager | Tuesday 9th December 2025 | week 13 | | -| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Docs Lead | Wednesday 17th December 2025 | week 14 | | -| **v1.35.0 released** | Branch Manager | Wednesday 17th December 2025 | week 14 | | -| Release blog published | Comms | Wednesday 17th December 2025 | week 14 | | -| [Thaw] | Comms | Thursday 18th December 2025 | week 14 | | -| Feature blog publication starts | Comms | Thursday 18th December 2025 | | | - -## Phases - -Please refer to the [release phases document](../release_phases.md). - -[Production Readiness Freeze]: ../release_phases.md#prr-freeze - -[Enhancements Freeze]: ../release_phases.md#enhancements-freeze - -[Burndown]: ../release_phases.md#burndown - -[Code Freeze]: ../release_phases.md#code-freeze - -[Exception]: ../release_phases.md#exceptions - -[Thaw]: ../release_phases.md#thaw - -[Test Freeze]: ../release_phases.md#test-freeze - -[Docs Freeze]: ../release_phases.md#docs-freeze - -[Feature blog freeze]: ../release_phases.md#feature-blog-freeze - -[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary - -[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary - -[1.35-blocking]: https://testgrid.k8s.io/sig-release-1.35-blocking#Summary - -[1.35-informing]: https://testgrid.k8s.io/sig-release-1.35-informing#Summary - +--- +title: "Kubernetes v1.35 Release Information" +weight: 98 +slug: "release" +aliases: [ "/release" ] +description: | + Information regarding the current release cycle including important dates, + Release Team contact information, tracking spreadsheets and more! +--- + +# Kubernetes v1.35 + +#### Links + +* [This document](https://git.k8s.io/sig-release/releases/release-1.35/README.md) +* [Release Team](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.35/release-team.md) +* [Meeting Minutes](https://bit.ly/k8s135-releasemtg) (members of [release-team@] receive meeting invites) +* [v1.35 Release Calendar](https://bit.ly/k8s-release-cal) +* Contact: [#sig-release](https://kubernetes.slack.com/archives/C2C40FMNF) on + slack, [release-team](mailto:release-team@kubernetes.io) on e-mail +* [Internal Contact Info](https://bit.ly/k8s135-contacts) (accessible only to members of [release-team@]) + +#### Tracking docs + +* [Enhancements Tracking Board](https://bit.ly/k8s135-enhancements) +* [Feature blog Tracking Board](https://bit.ly/k8s135-feature-blogs) +* [Bug Triage Tracking Board](https://bit.ly/k8s135-bugtriage) +* [CI Signal Project Board & Issue Tracking](https://bit.ly/k8s135-cisignal) +* [Retrospective Document](https://bit.ly/k8s135-retro) +* [kubernetes/kubernetes v1.35 milestone](https://github.com/kubernetes/kubernetes/milestone/68) + +#### Guides + +* [Targeting Issues and PRs to This Milestone](https://git.k8s.io/community/contributors/devel/sig-release/release.md) +* [Triaging and Escalating Test Failures](https://git.k8s.io/community/contributors/devel/sig-testing/testing.md#troubleshooting-a-failure) + +## Summary + +The v1.35 release cycle is as follows: + +- **Monday 15th September 2025**: Week 1 — Release cycle begins +- **Thursday 9th October 2025 (AoE) / Friday 10th October 2025, 12:00 UTC**: Week 4 — [Production Readiness Freeze][Production Readiness Freeze] +- **Thursday 16th October 2025 (AoE) / Friday 17th October 2025, 12:00 UTC**: Week 5 — [Enhancements Freeze][Enhancements Freeze] +- **Thursday 30th October 2025 (AoE) / Friday 31st October 2025, 12:00 UTC**: Week 7 — [Feature blog freeze][Feature blog freeze] +- **Thursday 6th November 2025 (AoE) / Friday 7th November 2025, 12:00 UTC**: Week 8 — [Code Freeze][Code Freeze] and [Test Freeze][Test Freeze] +- **Monday 10th - Thursday 13th November 2025**: Week 9 - [KubeCon NA](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/) +- **Tuesday 2nd December 2025 (AoE) / Wednesday 3rd December 2025, 12:00 UTC**: Week 12 — [Docs Freeze][Docs Freeze] +- **Wednesday 17th December 2025**: Week 14 — Kubernetes v1.35.0 released + +#### Note on AoE deadlines: +Deadlines are expressed in “Anywhere on Earth” (AoE) time. This means the date ends when the calendar day finishes in the last timezone on Earth (UTC−12). +Example: A deadline of Thursday, Oct 16 (AoE) gives contributors their full Thursday everywhere in the world. The cutoff therefore would be Friday, Oct 17 at 12:00 UTC. + +## Timeline + +| **What** | **Who** | **When** | **Week** | **Release Signal** | +| -------------------------------------------------------------------------------------- | ----------------------------- | --------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------ | +| Start of Release Cycle | Lead | Monday 15th September 2025 | week 1 | [master-blocking], [master-informing] | +| Start Enhancements Tracking | Enhancements Lead | Monday 15th September 2025 | week 1 | | +| Schedule finalized | Lead | Friday 19th September 2025 | week 1 | | +| Team finalized | Lead | Friday 19th September 2025 | week 1 | | +| Begin APAC-friendly meetings | Lead | Wednesday 24th September 2025 | week 2 | | +| Start Release Notes Draft | Docs Lead | Wednesday 1st October 2025 | week 3 | | +| Call for PRR and Enhancement Freeze [Exceptions][Exception] | Lead | Thursday 2nd October 2025 | week 3 | | +| v1.35.0-alpha.1 released | Branch Manager | Wednesday 8th October 2025 | week 4 | | +| **Begin [Production Readiness Freeze]** | Enhancements Lead | Thursday 9th October 2025 (AoE) / Friday 10th October 2025, 12:00 UTC | week 4 | | +| **Begin [Enhancements Freeze]** | Enhancements Lead | Thursday 16th October 2025 (AoE) / Friday 17th October 2025, 12:00 UTC | week 5 | | +| v1.35.0-alpha.2 released | Branch Manager | Wednesday 22nd October 2025 | week 6 | | +| Brace Yourself, Code Freeze is Coming | Comms / Release Signal | Monday 27th October 2025 | week 7 | | +| Docs deadline — Open placeholder PRs | Docs Lead | Thursday 23th October 2025 | week 6 | | +| **Begin [Feature blog freeze] - Open placeholder PRs** | Comms Lead | Thursday 30th October 2025 (AoE) / Friday 31st October 2025, 12:00 UTC | week 7 | | +| Call for Code Freeze [Exceptions][Exception] | Lead | Friday 31st October 2025 | week 7 | | +| v1.35.0-alpha.3 released | Branch Manager | Wednesday 5th November 2025 | week 8 | | +| **Begin [Code Freeze] and [Test Freeze]** | Branch Manager | Thursday 6th November 2025 (AoE) / Friday 7th November 2025, 12:00 UTC | week 8 | | +| **KubeCon NA** | | Monday 10th - Thursday 13th November 2025 | week 9 | | +| **Begin [Burndown]** (Monday, Wednesday, and Friday meetings) | Lead | Monday 17th November 2025 | week 10 | | +| Deprecations and Removals blog published | Comms | Monday 17th November 2025 | week 10 | | +| Docs deadline — PRs ready for review | Docs Lead | Tuesday 18th November 2025 | week 10 | | +| Release Highlights deadline | Comms | Tuesday 18th November 2025 | week 10 | | +| v1.35.0-beta.0 released | Branch Manager | Wednesday 19th November 2025 | week 10 | | +| Release blog ready to review | Comms / Docs | Thursday 20th November 2025 (AoE) / Friday 21st November 2025, 12:00 UTC | week 10 | | +| Feature blogs ready to review | Enhancement Owner / SIG Leads | Monday 24th November 2025 | week 11 | | +| Burndown Meetings daily (Tuesday & Thursday over Slack) | Lead | Monday 24th November 2025 | week 11 | | +| release-1.35 branch created | Branch Manager | Tuesday 2nd December 2025 | week 12 | | +| release-1.35 jobs created | Branch Manager | Tuesday 2nd December 2025 | week 12 | | +| Start final draft of Release Notes | Docs Lead | Tuesday 2nd December 2025 | week 12 | | +| **[Docs Freeze]** | Docs Lead | Tuesday 2nd December 2025 (AoE) / Wednesday 3rd December 2025, 12:00 UTC | week 12 | | +| v1.35.0-rc.0 released | Branch Manager | Tuesday 2nd December 2025 | week 12 | [1.35-informing], [1.35-blocking], [master-blocking], [master-informing] | +| Release Highlights complete | Docs Lead | Tuesday 9th December 2025 | week 13 | | +| v1.35.0-rc.1 released | Branch Manager | Tuesday 9th December 2025 | week 13 | | +| Release Notes complete — reviewed & merged to https://github.com/kubernetes/kubernetes | Docs Lead | Wednesday 17th December 2025 | week 14 | | +| **v1.35.0 released** | Branch Manager | Wednesday 17th December 2025 | week 14 | | +| Release blog published | Comms | Wednesday 17th December 2025 | week 14 | | +| [Thaw] | Comms | Thursday 18th December 2025 | week 14 | | +| Feature blog publication starts | Comms | Thursday 18th December 2025 | | | + +## Phases + +Please refer to the [release phases document](../release_phases.md). + +[Production Readiness Freeze]: ../release_phases.md#prr-freeze + +[Enhancements Freeze]: ../release_phases.md#enhancements-freeze + +[Burndown]: ../release_phases.md#burndown + +[Code Freeze]: ../release_phases.md#code-freeze + +[Exception]: ../release_phases.md#exceptions + +[Thaw]: ../release_phases.md#thaw + +[Test Freeze]: ../release_phases.md#test-freeze + +[Docs Freeze]: ../release_phases.md#docs-freeze + +[Feature blog freeze]: ../release_phases.md#feature-blog-freeze + +[master-blocking]: https://testgrid.k8s.io/sig-release-master-blocking#Summary + +[master-informing]: https://testgrid.k8s.io/sig-release-master-informing#Summary + +[1.35-blocking]: https://testgrid.k8s.io/sig-release-1.35-blocking#Summary + +[1.35-informing]: https://testgrid.k8s.io/sig-release-1.35-informing#Summary + [release-team@]: https://groups.google.com/a/kubernetes.io/g/release-team \ No newline at end of file diff --git a/releases/release-1.35/release-notes/maps/pr-117160-map.yaml b/releases/release-1.35/release-notes/maps/pr-117160-map.yaml index 7130032125c..e494ab874e1 100644 --- a/releases/release-1.35/release-notes/maps/pr-117160-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-117160-map.yaml @@ -1,5 +1,5 @@ -pr: 117160 -releasenote: - text: Updated `kubectl get` and `kubectl describe` human-readable output to no longer - show counts for referenced tokens and secrets. -pr_body: "" +pr: 117160 +releasenote: + text: Updated `kubectl get` and `kubectl describe` human-readable output to no longer + show counts for referenced tokens and secrets. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-122140-map.yaml b/releases/release-1.35/release-notes/maps/pr-122140-map.yaml index 4dd735228ea..41d16e53135 100644 --- a/releases/release-1.35/release-notes/maps/pr-122140-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-122140-map.yaml @@ -1,4 +1,4 @@ -pr: 122140 -releasenote: - text: Added support for Pods to reference the same `PersistentVolumeClaim` across multiple volumes. -pr_body: "" +pr: 122140 +releasenote: + text: Added support for Pods to reference the same `PersistentVolumeClaim` across multiple volumes. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-123642-map.yaml b/releases/release-1.35/release-notes/maps/pr-123642-map.yaml index cf5e7e75891..bdb1b524d24 100644 --- a/releases/release-1.35/release-notes/maps/pr-123642-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-123642-map.yaml @@ -1,7 +1,7 @@ -pr: 123642 -releasenote: - text: |- - The JWT authenticator in `kube-apiserver` now reports the following metrics when the `StructuredAuthenticationConfiguration` feature gate is enabled: - - `apiserver_authentication_jwt_authenticator_jwks_fetch_last_timestamp_seconds` - - `apiserver_authentication_jwt_authenticator_jwks_fetch_last_key_set_info`. -pr_body: "" +pr: 123642 +releasenote: + text: |- + The JWT authenticator in `kube-apiserver` now reports the following metrics when the `StructuredAuthenticationConfiguration` feature gate is enabled: + - `apiserver_authentication_jwt_authenticator_jwks_fetch_last_timestamp_seconds` + - `apiserver_authentication_jwt_authenticator_jwks_fetch_last_key_set_info`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-125912-map.yaml b/releases/release-1.35/release-notes/maps/pr-125912-map.yaml index e71490cb0e1..4f992284f0d 100644 --- a/releases/release-1.35/release-notes/maps/pr-125912-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-125912-map.yaml @@ -1,4 +1,4 @@ -pr: 125912 -releasenote: - text: Migrated the `CPUManager` to contextual logging. -pr_body: "" +pr: 125912 +releasenote: + text: Migrated the `CPUManager` to contextual logging. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-126979-map.yaml b/releases/release-1.35/release-notes/maps/pr-126979-map.yaml index 3b18e1017ce..6818ba550cc 100644 --- a/releases/release-1.35/release-notes/maps/pr-126979-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-126979-map.yaml @@ -1,4 +1,4 @@ -pr: 126979 -releasenote: - text: Fixed `replicaCount` calculation exceeding max `int32`. -pr_body: "" +pr: 126979 +releasenote: + text: Fixed `replicaCount` calculation exceeding max `int32`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-130548-map.yaml b/releases/release-1.35/release-notes/maps/pr-130548-map.yaml index 4056922b283..a3c9c504931 100644 --- a/releases/release-1.35/release-notes/maps/pr-130548-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-130548-map.yaml @@ -1,4 +1,4 @@ -pr: 130548 -releasenote: - text: Bumped addon manager to use `kubectl` version `v1.32.2`. -pr_body: "" +pr: 130548 +releasenote: + text: Bumped addon manager to use `kubectl` version `v1.32.2`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-130551-map.yaml b/releases/release-1.35/release-notes/maps/pr-130551-map.yaml index bf1f1c33f6b..312e8163c76 100644 --- a/releases/release-1.35/release-notes/maps/pr-130551-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-130551-map.yaml @@ -1,4 +1,4 @@ -pr: 130551 -releasenote: - text: Updated sandbox ordering to use by attempt count or creation time. -pr_body: "" +pr: 130551 +releasenote: + text: Updated sandbox ordering to use by attempt count or creation time. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-130951-map.yaml b/releases/release-1.35/release-notes/maps/pr-130951-map.yaml index 039f6aa0bc0..e525efb92ac 100644 --- a/releases/release-1.35/release-notes/maps/pr-130951-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-130951-map.yaml @@ -1,4 +1,4 @@ -pr: 130951 -releasenote: - text: Added metrics for the `MaxUnavailable` feature in `StatefulSet`. -pr_body: "" +pr: 130951 +releasenote: + text: Added metrics for the `MaxUnavailable` feature in `StatefulSet`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-131092-map.yaml b/releases/release-1.35/release-notes/maps/pr-131092-map.yaml index 35357bfbc95..5d8d36246b9 100644 --- a/releases/release-1.35/release-notes/maps/pr-131092-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-131092-map.yaml @@ -1,4 +1,4 @@ -pr: 131092 -releasenote: - text: 'metrics: Excluded `dryRun` requests from `apiserver_request_sli_duration_seconds`.' -pr_body: "" +pr: 131092 +releasenote: + text: 'metrics: Excluded `dryRun` requests from `apiserver_request_sli_duration_seconds`.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-131411-map.yaml b/releases/release-1.35/release-notes/maps/pr-131411-map.yaml index 046f3def211..ab4e5d3c13c 100644 --- a/releases/release-1.35/release-notes/maps/pr-131411-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-131411-map.yaml @@ -1,7 +1,7 @@ -pr: 131411 -releasenote: - text: 'kube-apiserver: Made sure that when `--requestheader-client-ca-file` and - `--client-ca-file` contain overlapping certificates, `--requestheader-allowed-names` - must be specified so that regular client certificates cannot set authenticating - proxy headers for arbitrary users.' -pr_body: "" +pr: 131411 +releasenote: + text: 'kube-apiserver: Made sure that when `--requestheader-client-ca-file` and + `--client-ca-file` contain overlapping certificates, `--requestheader-allowed-names` + must be specified so that regular client certificates cannot set authenticating + proxy headers for arbitrary users.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-131755-map.yaml b/releases/release-1.35/release-notes/maps/pr-131755-map.yaml index bf743bcb9bd..9f5b1ca97d6 100644 --- a/releases/release-1.35/release-notes/maps/pr-131755-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-131755-map.yaml @@ -1,7 +1,7 @@ -pr: 131755 -releasenote: - text: Generated OpenAPI model packages for API types into `zz_generated.model_name.go` - files, accessible via the `OpenAPIModelName()` function. This allows API authors - to declare desired OpenAPI model packages instead of relying on the Go package - path of API types. -pr_body: "" +pr: 131755 +releasenote: + text: Generated OpenAPI model packages for API types into `zz_generated.model_name.go` + files, accessible via the `OpenAPIModelName()` function. This allows API authors + to declare desired OpenAPI model packages instead of relying on the Go package + path of API types. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132157-map.yaml b/releases/release-1.35/release-notes/maps/pr-132157-map.yaml index 7dc200fbc4c..00886d94745 100644 --- a/releases/release-1.35/release-notes/maps/pr-132157-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132157-map.yaml @@ -1,6 +1,6 @@ -pr: 132157 -releasenote: - text: Removed the `UserNamespacesPodSecurityStandards` feature gate. The minimum - supported Kubernetes version for `kubelet` is now `v1.31`, so the gate is no longer - needed. -pr_body: "" +pr: 132157 +releasenote: + text: Removed the `UserNamespacesPodSecurityStandards` feature gate. The minimum + supported Kubernetes version for `kubelet` is now `v1.31`, so the gate is no longer + needed. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132240-map.yaml b/releases/release-1.35/release-notes/maps/pr-132240-map.yaml index 415d8e5544f..3dc1d253c58 100644 --- a/releases/release-1.35/release-notes/maps/pr-132240-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132240-map.yaml @@ -1,5 +1,5 @@ -pr: 132240 -releasenote: - text: Improved throughput in the `real-FIFO` queue used by `informers` and `controllers` - by adding batch handling for processing watch events. -pr_body: "" +pr: 132240 +releasenote: + text: Improved throughput in the `real-FIFO` queue used by `informers` and `controllers` + by adding batch handling for processing watch events. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132288-map.yaml b/releases/release-1.35/release-notes/maps/pr-132288-map.yaml index edf3e988ed8..ad6449ee724 100644 --- a/releases/release-1.35/release-notes/maps/pr-132288-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132288-map.yaml @@ -1,4 +1,4 @@ -pr: 132288 -releasenote: - text: Upgraded `CoreDNS` to `v1.12.3`. -pr_body: "" +pr: 132288 +releasenote: + text: Upgraded `CoreDNS` to `v1.12.3`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132549-map.yaml b/releases/release-1.35/release-notes/maps/pr-132549-map.yaml index c23b9420377..67392eefbd7 100644 --- a/releases/release-1.35/release-notes/maps/pr-132549-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132549-map.yaml @@ -1,5 +1,5 @@ -pr: 132549 -releasenote: - text: Fixed a bug that caused duplicate validation when updating `PersistentVolumeClaims`, - `VolumeAttachments` and `VolumeAttributesClasses`. -pr_body: "" +pr: 132549 +releasenote: + text: Fixed a bug that caused duplicate validation when updating `PersistentVolumeClaims`, + `VolumeAttachments` and `VolumeAttributesClasses`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132550-map.yaml b/releases/release-1.35/release-notes/maps/pr-132550-map.yaml index 4f69b8f937b..078a58fea84 100644 --- a/releases/release-1.35/release-notes/maps/pr-132550-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132550-map.yaml @@ -1,5 +1,5 @@ -pr: 132550 -releasenote: - text: Fixed a bug that caused duplicate validation when updating `Role` and `RoleBinding` - resources. -pr_body: "" +pr: 132550 +releasenote: + text: Fixed a bug that caused duplicate validation when updating `Role` and `RoleBinding` + resources. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132578-map.yaml b/releases/release-1.35/release-notes/maps/pr-132578-map.yaml index 905b1f6eac1..814ce6de7b5 100644 --- a/releases/release-1.35/release-notes/maps/pr-132578-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132578-map.yaml @@ -1,9 +1,9 @@ -pr: 132578 -releasenote: - text: - "Improved the `FreeDiskSpaceFailed` warning event to provide more actionable - details when image garbage collection fails to free enough disk space. Example: - `Insufficient free disk space on the node's image filesystem (95.0% of 10.0 GiB - used). Failed to free sufficient space by deleting unused images. Consider resizing - the disk or deleting unused files.`." -pr_body: "" +pr: 132578 +releasenote: + text: + "Improved the `FreeDiskSpaceFailed` warning event to provide more actionable + details when image garbage collection fails to free enough disk space. Example: + `Insufficient free disk space on the node's image filesystem (95.0% of 10.0 GiB + used). Failed to free sufficient space by deleting unused images. Consider resizing + the disk or deleting unused files.`." +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132606-map.yaml b/releases/release-1.35/release-notes/maps/pr-132606-map.yaml index cf7510901d4..f7faf1226a6 100644 --- a/releases/release-1.35/release-notes/maps/pr-132606-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132606-map.yaml @@ -1,4 +1,4 @@ -pr: 132606 -releasenote: - text: Added paths section to scheduler `statusz` endpoint. -pr_body: "" +pr: 132606 +releasenote: + text: Added paths section to scheduler `statusz` endpoint. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132607-map.yaml b/releases/release-1.35/release-notes/maps/pr-132607-map.yaml index b3bae24e595..37a7515e792 100644 --- a/releases/release-1.35/release-notes/maps/pr-132607-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132607-map.yaml @@ -1,4 +1,4 @@ -pr: 132607 -releasenote: - text: Increased the coverage to 89.8%. -pr_body: "" +pr: 132607 +releasenote: + text: Increased the coverage to 89.8%. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132644-map.yaml b/releases/release-1.35/release-notes/maps/pr-132644-map.yaml index fac48e85f4d..17d0692a368 100644 --- a/releases/release-1.35/release-notes/maps/pr-132644-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132644-map.yaml @@ -1,6 +1,6 @@ -pr: 132644 -releasenote: - text: Added a counter metric `kubelet_image_manager_ensure_image_requests_total{present_locally, - pull_policy, pull_required}` that exposes details about `kubelet` ensuring an - image exists on the node. -pr_body: "" +pr: 132644 +releasenote: + text: Added a counter metric `kubelet_image_manager_ensure_image_requests_total{present_locally, + pull_policy, pull_required}` that exposes details about `kubelet` ensuring an + image exists on the node. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132663-map.yaml b/releases/release-1.35/release-notes/maps/pr-132663-map.yaml index ec5727b9af2..642cf9b4162 100644 --- a/releases/release-1.35/release-notes/maps/pr-132663-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132663-map.yaml @@ -1,5 +1,5 @@ -pr: 132663 -releasenote: - text: Updated `applyconfiguration-gen` to preserve struct and field comments from - source types in the generated code. -pr_body: "" +pr: 132663 +releasenote: + text: Updated `applyconfiguration-gen` to preserve struct and field comments from + source types in the generated code. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132665-map.yaml b/releases/release-1.35/release-notes/maps/pr-132665-map.yaml index 92c761cb6fa..384c290779a 100644 --- a/releases/release-1.35/release-notes/maps/pr-132665-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132665-map.yaml @@ -1,4 +1,4 @@ -pr: 132665 -releasenote: - text: Updated `applyconfiguration-gen` to generate extract functions for all subresources. -pr_body: "" +pr: 132665 +releasenote: + text: Updated `applyconfiguration-gen` to generate extract functions for all subresources. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132798-map.yaml b/releases/release-1.35/release-notes/maps/pr-132798-map.yaml index 7d2ff48b886..83d3c731825 100644 --- a/releases/release-1.35/release-notes/maps/pr-132798-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132798-map.yaml @@ -1,5 +1,5 @@ -pr: 132798 -releasenote: - text: 'kube-apiserver: Improved validation error messages for custom resources with - CEL validation rules to include the value that failed validation.' -pr_body: "" +pr: 132798 +releasenote: + text: 'kube-apiserver: Improved validation error messages for custom resources with + CEL validation rules to include the value that failed validation.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132825-map.yaml b/releases/release-1.35/release-notes/maps/pr-132825-map.yaml index 20a6d1fc059..5c77e6363c4 100644 --- a/releases/release-1.35/release-notes/maps/pr-132825-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132825-map.yaml @@ -1,4 +1,4 @@ -pr: 132825 -releasenote: - text: Added `WithOrigin` within `apis/core/validation` with adjusted tests. -pr_body: "" +pr: 132825 +releasenote: + text: Added `WithOrigin` within `apis/core/validation` with adjusted tests. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-132927-map.yaml b/releases/release-1.35/release-notes/maps/pr-132927-map.yaml index 6afae80fdd2..73a2331edeb 100644 --- a/releases/release-1.35/release-notes/maps/pr-132927-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-132927-map.yaml @@ -1,5 +1,5 @@ -pr: 132927 -releasenote: - text: 'DRA API: Fixed the `tolerations` field in exact and sub requests to drop - properly when the `DRADeviceTaints` API is disabled.' -pr_body: "" +pr: 132927 +releasenote: + text: 'DRA API: Fixed the `tolerations` field in exact and sub requests to drop + properly when the `DRADeviceTaints` API is disabled.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133072-map.yaml b/releases/release-1.35/release-notes/maps/pr-133072-map.yaml index b9f2a1a9501..505fc55da8f 100644 --- a/releases/release-1.35/release-notes/maps/pr-133072-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133072-map.yaml @@ -1,6 +1,6 @@ -pr: 133072 -releasenote: - text: Fixed a startup probe race condition that caused main containers to remain - stuck in "Initializing" state when sidecar containers with startup probes had - failed initially but succeeded on restart in pods with `restartPolicy=Never`. -pr_body: "" +pr: 133072 +releasenote: + text: Fixed a startup probe race condition that caused main containers to remain + stuck in "Initializing" state when sidecar containers with startup probes had + failed initially but succeeded on restart in pods with `restartPolicy=Never`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133097-map.yaml b/releases/release-1.35/release-notes/maps/pr-133097-map.yaml index 9f3344fff76..9650aee9923 100644 --- a/releases/release-1.35/release-notes/maps/pr-133097-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133097-map.yaml @@ -1,5 +1,5 @@ -pr: 133097 -releasenote: - text: Added the correct error when eviction is blocked due to the failSafe mechanism - of the `DisruptionController`. -pr_body: "" +pr: 133097 +releasenote: + text: Added the correct error when eviction is blocked due to the failSafe mechanism + of the `DisruptionController`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133128-map.yaml b/releases/release-1.35/release-notes/maps/pr-133128-map.yaml index 37147ece7f0..b534b5dae1f 100644 --- a/releases/release-1.35/release-notes/maps/pr-133128-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133128-map.yaml @@ -1,5 +1,5 @@ -pr: 133128 -releasenote: - text: Promoted HPA configurable tolerance to beta. The `HPAConfigurableTolerance` - feature gate has now been enabled by default. -pr_body: "" +pr: 133128 +releasenote: + text: Promoted HPA configurable tolerance to beta. The `HPAConfigurableTolerance` + feature gate has now been enabled by default. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133153-map.yaml b/releases/release-1.35/release-notes/maps/pr-133153-map.yaml index c97ef4d09e2..e3cf71d65b4 100644 --- a/releases/release-1.35/release-notes/maps/pr-133153-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133153-map.yaml @@ -1,4 +1,4 @@ -pr: 133153 -releasenote: - text: Promoted the `MaxUnavailableStatefulSet` feature to beta and enabling it by default. -pr_body: "" +pr: 133153 +releasenote: + text: Promoted the `MaxUnavailableStatefulSet` feature to beta and enabling it by default. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133172-map.yaml b/releases/release-1.35/release-notes/maps/pr-133172-map.yaml index 61066b3fbf2..6996863605d 100644 --- a/releases/release-1.35/release-notes/maps/pr-133172-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133172-map.yaml @@ -1,16 +1,16 @@ -pr: 133172 -releasenote: - text: |- - Moved Types in `k/k/pkg/scheduler/framework`: - `Handle`, - `Plugin`, - `PreEnqueuePlugin`, `QueueSortPlugin`, `EnqueueExtensions`, `PreFilterExtensions`, `PreFilterPlugin`, `FilterPlugin`, `PostFilterPlugin`, `PreScorePlugin`, `ScorePlugin`, `ReservePlugin`, `PreBindPlugin`, `PostBindPlugin`, `PermitPlugin`, `BindPlugin`, - `PodActivator`, `PodNominator`, `PluginsRunner`, - `LessFunc`, `ScoreExtensions`, `NodeToStatusReader`, `NodeScoreList`, `NodeScore`, `NodePluginScores`, `PluginScore`, `NominatingMode`, `NominatingInfo`, `WaitingPod`, `PreFilterResult`, `PostFilterResult`, - `Extender`, - `NodeInfoLister`, `StorageInfoLister`, `SharedLister`, `ResourceSliceLister`, `DeviceClassLister`, `ResourceClaimTracker`, `SharedDRAManager` - - to package `k8s.io/kube-scheduler/framework`. Users should update import paths. The interfaces don't change. - - Type `Parallelizer` in `k/k/pkg/scheduler/framework/parallelism` has been split into interface `Parallelizer` (in `k8s.io/kube-scheduler/framework`) and `struct Parallelizer` (location unchanged in k/k). Plugin developers should update the import path to staging repo. -pr_body: "" +pr: 133172 +releasenote: + text: |- + Moved Types in `k/k/pkg/scheduler/framework`: + `Handle`, + `Plugin`, + `PreEnqueuePlugin`, `QueueSortPlugin`, `EnqueueExtensions`, `PreFilterExtensions`, `PreFilterPlugin`, `FilterPlugin`, `PostFilterPlugin`, `PreScorePlugin`, `ScorePlugin`, `ReservePlugin`, `PreBindPlugin`, `PostBindPlugin`, `PermitPlugin`, `BindPlugin`, + `PodActivator`, `PodNominator`, `PluginsRunner`, + `LessFunc`, `ScoreExtensions`, `NodeToStatusReader`, `NodeScoreList`, `NodeScore`, `NodePluginScores`, `PluginScore`, `NominatingMode`, `NominatingInfo`, `WaitingPod`, `PreFilterResult`, `PostFilterResult`, + `Extender`, + `NodeInfoLister`, `StorageInfoLister`, `SharedLister`, `ResourceSliceLister`, `DeviceClassLister`, `ResourceClaimTracker`, `SharedDRAManager` + + to package `k8s.io/kube-scheduler/framework`. Users should update import paths. The interfaces don't change. + + Type `Parallelizer` in `k/k/pkg/scheduler/framework/parallelism` has been split into interface `Parallelizer` (in `k8s.io/kube-scheduler/framework`) and `struct Parallelizer` (location unchanged in k/k). Plugin developers should update the import path to staging repo. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133190-map.yaml b/releases/release-1.35/release-notes/maps/pr-133190-map.yaml index 051070967fa..e3df4d98d46 100644 --- a/releases/release-1.35/release-notes/maps/pr-133190-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133190-map.yaml @@ -1,5 +1,5 @@ -pr: 133190 -releasenote: - text: Updated the `/statusz` page for `kube-proxy` to include a list of exposed - endpoints, making debugging and introspection easier. -pr_body: "" +pr: 133190 +releasenote: + text: Updated the `/statusz` page for `kube-proxy` to include a list of exposed + endpoints, making debugging and introspection easier. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133239-map.yaml b/releases/release-1.35/release-notes/maps/pr-133239-map.yaml index b09a74b73d9..473d57dad40 100644 --- a/releases/release-1.35/release-notes/maps/pr-133239-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133239-map.yaml @@ -1,4 +1,4 @@ -pr: 133239 -releasenote: - text: Added `paths` section to kubelet `statusz` endpoint. -pr_body: "" +pr: 133239 +releasenote: + text: Added `paths` section to kubelet `statusz` endpoint. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133323-map.yaml b/releases/release-1.35/release-notes/maps/pr-133323-map.yaml index a82fa462281..f14e9e13316 100644 --- a/releases/release-1.35/release-notes/maps/pr-133323-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133323-map.yaml @@ -1,5 +1,5 @@ -pr: 133323 -releasenote: - text: Updated `kubectl auth reconcile` to retry reconciliation when a conflict error - occurs. -pr_body: "" +pr: 133323 +releasenote: + text: Updated `kubectl auth reconcile` to retry reconciliation when a conflict error + occurs. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133327-map.yaml b/releases/release-1.35/release-notes/maps/pr-133327-map.yaml index 5d1062d40fe..0c0502f2c50 100644 --- a/releases/release-1.35/release-notes/maps/pr-133327-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133327-map.yaml @@ -1,4 +1,4 @@ -pr: 133327 -releasenote: - text: Enabled `kubectl get -o kyaml` by default. To disable it, set `KUBECTL_KYAML=false`. -pr_body: "" +pr: 133327 +releasenote: + text: Enabled `kubectl get -o kyaml` by default. To disable it, set `KUBECTL_KYAML=false`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133338-map.yaml b/releases/release-1.35/release-notes/maps/pr-133338-map.yaml index 8215f22ea48..7bb7f344ed0 100644 --- a/releases/release-1.35/release-notes/maps/pr-133338-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133338-map.yaml @@ -1,5 +1,5 @@ -pr: 133338 -releasenote: - text: Fixed an issue where the default `serviceCIDR` controller did not log events - because the event broadcaster was shutdown during initialization. -pr_body: "" +pr: 133338 +releasenote: + text: Fixed an issue where the default `serviceCIDR` controller did not log events + because the event broadcaster was shutdown during initialization. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133357-map.yaml b/releases/release-1.35/release-notes/maps/pr-133357-map.yaml index 6d330e6bac9..d5b3041ff7b 100644 --- a/releases/release-1.35/release-notes/maps/pr-133357-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133357-map.yaml @@ -1,4 +1,4 @@ -pr: 133357 -releasenote: - text: Added `kubelet` stress test for pod cleanup when rejection due to `VolumeAttachmentLimitExceeded`. -pr_body: "" +pr: 133357 +releasenote: + text: Added `kubelet` stress test for pod cleanup when rejection due to `VolumeAttachmentLimitExceeded`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133358-map.yaml b/releases/release-1.35/release-notes/maps/pr-133358-map.yaml index 76a5c2a7318..54bb20898de 100644 --- a/releases/release-1.35/release-notes/maps/pr-133358-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133358-map.yaml @@ -1,5 +1,5 @@ -pr: 133358 -releasenote: - text: 'kube-apiserver: Fixed an issue where passing invalid `DeleteOptions` incorrectly - returned a 500 status instead of 400.' -pr_body: "" +pr: 133358 +releasenote: + text: 'kube-apiserver: Fixed an issue where passing invalid `DeleteOptions` incorrectly + returned a 500 status instead of 400.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133363-map.yaml b/releases/release-1.35/release-notes/maps/pr-133363-map.yaml index ab3a52c19e2..3c983913313 100644 --- a/releases/release-1.35/release-notes/maps/pr-133363-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133363-map.yaml @@ -1,6 +1,6 @@ -pr: 133363 -releasenote: - text: Introduced support for using an implicit extended resource name derived from - the device class (`deviceclass.resource.kubernetes.io/<device-class-name>`) to - request DRA devices matching that class. -pr_body: "" +pr: 133363 +releasenote: + text: Introduced support for using an implicit extended resource name derived from + the device class (`deviceclass.resource.kubernetes.io/<device-class-name>`) to + request DRA devices matching that class. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133373-map.yaml b/releases/release-1.35/release-notes/maps/pr-133373-map.yaml index b656db604db..1caea05360c 100644 --- a/releases/release-1.35/release-notes/maps/pr-133373-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133373-map.yaml @@ -1,5 +1,5 @@ -pr: 133373 -releasenote: - text: Fixed the kubelet to honor the `userNamespaces.idsPerPod` - configuration, which was previously ignored. -pr_body: "" +pr: 133373 +releasenote: + text: Fixed the kubelet to honor the `userNamespaces.idsPerPod` + configuration, which was previously ignored. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133394-map.yaml b/releases/release-1.35/release-notes/maps/pr-133394-map.yaml index cec3e3eec4f..3a3c44f8c45 100644 --- a/releases/release-1.35/release-notes/maps/pr-133394-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133394-map.yaml @@ -1,4 +1,4 @@ -pr: 133394 -releasenote: - text: Introduced end-to-end tests to verify component invariant metrics across the entire test suite. -pr_body: "" +pr: 133394 +releasenote: + text: Introduced end-to-end tests to verify component invariant metrics across the entire test suite. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133436-map.yaml b/releases/release-1.35/release-notes/maps/pr-133436-map.yaml index e9a53cdae16..37fce3d8303 100644 --- a/releases/release-1.35/release-notes/maps/pr-133436-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133436-map.yaml @@ -1,4 +1,4 @@ -pr: 133436 -releasenote: - text: Deprecated metrics will be hidden as per the metrics deprecation policy. https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-metric . -pr_body: "" +pr: 133436 +releasenote: + text: Deprecated metrics will be hidden as per the metrics deprecation policy. https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-metric . +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133492-map.yaml b/releases/release-1.35/release-notes/maps/pr-133492-map.yaml index 110488d2f8b..49147e06877 100644 --- a/releases/release-1.35/release-notes/maps/pr-133492-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133492-map.yaml @@ -1,6 +1,6 @@ -pr: 133492 -releasenote: - text: - "tests: Switched to https://go.dev/doc/go1.25#container-aware-gomaxprocs from - `go.uber.org/automaxprocs`." -pr_body: "" +pr: 133492 +releasenote: + text: + "tests: Switched to https://go.dev/doc/go1.25#container-aware-gomaxprocs from + `go.uber.org/automaxprocs`." +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133511-map.yaml b/releases/release-1.35/release-notes/maps/pr-133511-map.yaml index 29cf8e67f49..34331522f82 100644 --- a/releases/release-1.35/release-notes/maps/pr-133511-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133511-map.yaml @@ -1,5 +1,5 @@ -pr: 133511 -releasenote: - text: Eliminated and prevented future use of the `md5` algorithm in favor of more appropriate - hashing algorithms. -pr_body: "" +pr: 133511 +releasenote: + text: Eliminated and prevented future use of the `md5` algorithm in favor of more appropriate + hashing algorithms. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133513-map.yaml b/releases/release-1.35/release-notes/maps/pr-133513-map.yaml index 1ab0572c4c6..048ed2b453e 100644 --- a/releases/release-1.35/release-notes/maps/pr-133513-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133513-map.yaml @@ -1,6 +1,6 @@ -pr: 133513 -releasenote: - text: 'kubeadm: Fixed a bug where `ClusterConfiguration.APIServer.TimeoutForControlPlane` - from `v1beta3` was not respected in newer kubeadm versions where `v1beta4` is - the default.' -pr_body: "" +pr: 133513 +releasenote: + text: 'kubeadm: Fixed a bug where `ClusterConfiguration.APIServer.TimeoutForControlPlane` + from `v1beta3` was not respected in newer kubeadm versions where `v1beta4` is + the default.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133540-map.yaml b/releases/release-1.35/release-notes/maps/pr-133540-map.yaml index 84715e5a0e9..b87b27d7e35 100644 --- a/releases/release-1.35/release-notes/maps/pr-133540-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133540-map.yaml @@ -1,5 +1,5 @@ -pr: 133540 -releasenote: - text: Added validation to ensure `log-flush-frequency` is a positive value, returning - an error instead of causing a panic. -pr_body: "" +pr: 133540 +releasenote: + text: Added validation to ensure `log-flush-frequency` is a positive value, returning + an error instead of causing a panic. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133571-map.yaml b/releases/release-1.35/release-notes/maps/pr-133571-map.yaml index 5f42b8cc7b9..3f185d09c74 100644 --- a/releases/release-1.35/release-notes/maps/pr-133571-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133571-map.yaml @@ -1,5 +1,5 @@ -pr: 133571 -releasenote: - text: Fixed formatting of various Go API deprecations for `GoDoc` and `pkgsite`, and - enabled a linter to detect misformatted deprecations. -pr_body: "" +pr: 133571 +releasenote: + text: Fixed formatting of various Go API deprecations for `GoDoc` and `pkgsite`, and + enabled a linter to detect misformatted deprecations. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133603-map.yaml b/releases/release-1.35/release-notes/maps/pr-133603-map.yaml index 7348c36678b..c77c85ddee0 100644 --- a/releases/release-1.35/release-notes/maps/pr-133603-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133603-map.yaml @@ -1,4 +1,4 @@ -pr: 133603 -releasenote: - text: Fixed `nfacct` test cases on s390x. -pr_body: "" +pr: 133603 +releasenote: + text: Fixed `nfacct` test cases on s390x. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133615-map.yaml b/releases/release-1.35/release-notes/maps/pr-133615-map.yaml index 0f7729c0b4d..f268a04d530 100644 --- a/releases/release-1.35/release-notes/maps/pr-133615-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133615-map.yaml @@ -1,4 +1,4 @@ -pr: 133615 -releasenote: - text: Promoted VAC API test to conformance. -pr_body: "" +pr: 133615 +releasenote: + text: Promoted VAC API test to conformance. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133627-map.yaml b/releases/release-1.35/release-notes/maps/pr-133627-map.yaml index 5ee595176de..c38f5ef97ef 100644 --- a/releases/release-1.35/release-notes/maps/pr-133627-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133627-map.yaml @@ -1,4 +1,4 @@ -pr: 133627 -releasenote: - text: 'Updated `kubectl describe pods` to include the involved object’s `fieldPath` (e.g., container name) in event messages, providing better context for debugging multi-container Pods. Note: This changes the previous message format for events that include a `fieldPath`.' -pr_body: "" +pr: 133627 +releasenote: + text: 'Updated `kubectl describe pods` to include the involved object’s `fieldPath` (e.g., container name) in event messages, providing better context for debugging multi-container Pods. Note: This changes the previous message format for events that include a `fieldPath`.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133706-map.yaml b/releases/release-1.35/release-notes/maps/pr-133706-map.yaml index ef548309cb8..6bc8d4f0ea8 100644 --- a/releases/release-1.35/release-notes/maps/pr-133706-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133706-map.yaml @@ -1,5 +1,5 @@ -pr: 133706 -releasenote: - text: Fixed a bug that prevents scheduling the next pod when using the `DRAConsumableCapacity` - feature. -pr_body: "" +pr: 133706 +releasenote: + text: Fixed a bug that prevents scheduling the next pod when using the `DRAConsumableCapacity` + feature. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133715-map.yaml b/releases/release-1.35/release-notes/maps/pr-133715-map.yaml index 0409b29c0b7..979ab5fc335 100644 --- a/releases/release-1.35/release-notes/maps/pr-133715-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133715-map.yaml @@ -1,4 +1,4 @@ -pr: 133715 -releasenote: - text: Updated storage version for `MutatingAdmissionPolicy` to `v1beta1`. -pr_body: "" +pr: 133715 +releasenote: + text: Updated storage version for `MutatingAdmissionPolicy` to `v1beta1`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133720-map.yaml b/releases/release-1.35/release-notes/maps/pr-133720-map.yaml index bdec8f2b1a9..ecb16459c87 100644 --- a/releases/release-1.35/release-notes/maps/pr-133720-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133720-map.yaml @@ -1,4 +1,4 @@ -pr: 133720 -releasenote: - text: Removed general available feature-gate `SizeMemoryBackedVolumes`. -pr_body: "" +pr: 133720 +releasenote: + text: Removed general available feature-gate `SizeMemoryBackedVolumes`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133721-map.yaml b/releases/release-1.35/release-notes/maps/pr-133721-map.yaml index d9f1ceb81af..2576e23a7df 100644 --- a/releases/release-1.35/release-notes/maps/pr-133721-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133721-map.yaml @@ -1,6 +1,6 @@ -pr: 133721 -releasenote: - text: 'kube-apiserver: Fixed a possible panic validating a custom resource whose - `CustomResourceDefinition` indicates a status subresource exists, but which does - not define a `status` property in the `openAPIV3Schema`.' -pr_body: "" +pr: 133721 +releasenote: + text: 'kube-apiserver: Fixed a possible panic validating a custom resource whose + `CustomResourceDefinition` indicates a status subresource exists, but which does + not define a `status` property in the `openAPIV3Schema`.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133731-map.yaml b/releases/release-1.35/release-notes/maps/pr-133731-map.yaml index 5b1f57012a3..7de9f0c05a4 100644 --- a/releases/release-1.35/release-notes/maps/pr-133731-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133731-map.yaml @@ -1,4 +1,4 @@ -pr: 133731 -releasenote: - text: Updated the `kubectl wait` command description by removing the `Experimental` prefix, as the command has been stable for a long time. -pr_body: "" +pr: 133731 +releasenote: + text: Updated the `kubectl wait` command description by removing the `Experimental` prefix, as the command has been stable for a long time. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133742-map.yaml b/releases/release-1.35/release-notes/maps/pr-133742-map.yaml index e7100ad43ca..d36a348f9bc 100644 --- a/releases/release-1.35/release-notes/maps/pr-133742-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133742-map.yaml @@ -1,5 +1,5 @@ -pr: 133742 -releasenote: - text: - Removed the `ComponentSLIs` feature gate, as it was promoted to stable in the Kubernetes `v1.32` release. -pr_body: "" +pr: 133742 +releasenote: + text: + Removed the `ComponentSLIs` feature gate, as it was promoted to stable in the Kubernetes `v1.32` release. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133771-map.yaml b/releases/release-1.35/release-notes/maps/pr-133771-map.yaml index 40c3dcb946f..598b02e390a 100644 --- a/releases/release-1.35/release-notes/maps/pr-133771-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133771-map.yaml @@ -1,4 +1,4 @@ -pr: 133771 -releasenote: - text: Fixed broken shell completion for API resources. -pr_body: "" +pr: 133771 +releasenote: + text: Fixed broken shell completion for API resources. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133778-map.yaml b/releases/release-1.35/release-notes/maps/pr-133778-map.yaml index bd085371a1e..fc9c32c7c2f 100644 --- a/releases/release-1.35/release-notes/maps/pr-133778-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133778-map.yaml @@ -1,7 +1,7 @@ -pr: 133778 -releasenote: - text: 'kubeadm: stopped applying the `--pod-infra-container-image` flag for the - kubelet. The flag has been deprecated and no longer served a purpose in the kubelet - as the logic was migrated to CRI (Container Runtime Interface). During upgrade, - kubeadm will attempt to remove the flag from the file `/var/lib/kubelet/kubeadm-flags.env`.' -pr_body: "" +pr: 133778 +releasenote: + text: 'kubeadm: stopped applying the `--pod-infra-container-image` flag for the + kubelet. The flag has been deprecated and no longer served a purpose in the kubelet + as the logic was migrated to CRI (Container Runtime Interface). During upgrade, + kubeadm will attempt to remove the flag from the file `/var/lib/kubelet/kubeadm-flags.env`.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133779-map.yaml b/releases/release-1.35/release-notes/maps/pr-133779-map.yaml index 9cfea9fb689..651d14fb9df 100644 --- a/releases/release-1.35/release-notes/maps/pr-133779-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133779-map.yaml @@ -1,7 +1,7 @@ -pr: 133779 -releasenote: - text: |- - ACTION REQUIRED: - - Removed the `--pod-infra-container-image` flag from `kubelet` command line. For `non-kubeadm` clusters, users must manually remove this flag from their `kubelet` configuration to prevent startup failures before upgrading `kubelet`. For `kubeadm` clusters, if users pass extra arguments to the `kubelet` like `--pod-infra-container-image`, it will be written to the `kubelet` env file during the `init` phase. `kubeadm` does not remove it during the `init` or `join` phase, so users must manually remove it from `extraArgs` in the `kubelet` configuration file. -pr_body: "" +pr: 133779 +releasenote: + text: |- + ACTION REQUIRED: + + Removed the `--pod-infra-container-image` flag from `kubelet` command line. For `non-kubeadm` clusters, users must manually remove this flag from their `kubelet` configuration to prevent startup failures before upgrading `kubelet`. For `kubeadm` clusters, if users pass extra arguments to the `kubelet` like `--pod-infra-container-image`, it will be written to the `kubelet` env file during the `init` phase. `kubeadm` does not remove it during the `init` or `join` phase, so users must manually remove it from `extraArgs` in the `kubelet` configuration file. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133792-map.yaml b/releases/release-1.35/release-notes/maps/pr-133792-map.yaml index c3cbd5b2a07..0ea1520e212 100644 --- a/releases/release-1.35/release-notes/maps/pr-133792-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133792-map.yaml @@ -1,4 +1,4 @@ -pr: 133792 -releasenote: - text: Locked down the `AllowOverwriteTerminationGracePeriodSeconds` feature gate. -pr_body: "" +pr: 133792 +releasenote: + text: Locked down the `AllowOverwriteTerminationGracePeriodSeconds` feature gate. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133817-map.yaml b/releases/release-1.35/release-notes/maps/pr-133817-map.yaml index d63466ecf0c..c6e2c281523 100644 --- a/releases/release-1.35/release-notes/maps/pr-133817-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133817-map.yaml @@ -1,6 +1,6 @@ -pr: 133817 -releasenote: - text: - 'kube-apiserver: Fixed a `v1.34` regression with spurious "Error getting keys" - log messages.' -pr_body: "" +pr: 133817 +releasenote: + text: + 'kube-apiserver: Fixed a `v1.34` regression with spurious "Error getting keys" + log messages.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133841-map.yaml b/releases/release-1.35/release-notes/maps/pr-133841-map.yaml index 34ef3eaedf1..9d35828e78e 100644 --- a/releases/release-1.35/release-notes/maps/pr-133841-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133841-map.yaml @@ -1,6 +1,6 @@ -pr: 133841 -releasenote: - text: Changed `kubectl exec` syntax to require `--` before the command. The form - `kubectl exec [POD] [COMMAND]` is no longer supported; use `kubectl exec [POD] - -- [COMMAND]` instead. -pr_body: "" +pr: 133841 +releasenote: + text: Changed `kubectl exec` syntax to require `--` before the command. The form + `kubectl exec [POD] [COMMAND]` is no longer supported; use `kubectl exec [POD] + -- [COMMAND]` instead. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133873-map.yaml b/releases/release-1.35/release-notes/maps/pr-133873-map.yaml index 94a5ca22f6a..397bdb0ae30 100644 --- a/releases/release-1.35/release-notes/maps/pr-133873-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133873-map.yaml @@ -1,7 +1,7 @@ -pr: 133873 -releasenote: - text: - "kube-apiserver: Fixed a possible `v1.34` performance regression calculating - object size statistics for resources not served from the watch cache, typically - only `Events`." -pr_body: "" +pr: 133873 +releasenote: + text: + "kube-apiserver: Fixed a possible `v1.34` performance regression calculating + object size statistics for resources not served from the watch cache, typically + only `Events`." +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133883-map.yaml b/releases/release-1.35/release-notes/maps/pr-133883-map.yaml index fb763002b92..44b93d3c7da 100644 --- a/releases/release-1.35/release-notes/maps/pr-133883-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133883-map.yaml @@ -1,6 +1,6 @@ -pr: 133883 -releasenote: - text: - Upgraded the `PodObservedGenerationTracking` feature to beta in `v1.34` and - removed the alpha version description from the OpenAPI specification. -pr_body: "" +pr: 133883 +releasenote: + text: + Upgraded the `PodObservedGenerationTracking` feature to beta in `v1.34` and + removed the alpha version description from the OpenAPI specification. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133890-map.yaml b/releases/release-1.35/release-notes/maps/pr-133890-map.yaml index e1c31dacd05..3e7eb8d8451 100644 --- a/releases/release-1.35/release-notes/maps/pr-133890-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133890-map.yaml @@ -1,4 +1,4 @@ -pr: 133890 -releasenote: - text: Fixed missing `kubelet_volume_stats_*` metrics. -pr_body: "" +pr: 133890 +releasenote: + text: Fixed missing `kubelet_volume_stats_*` metrics. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133894-map.yaml b/releases/release-1.35/release-notes/maps/pr-133894-map.yaml index 519a1544a86..60992639f8c 100644 --- a/releases/release-1.35/release-notes/maps/pr-133894-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133894-map.yaml @@ -1,5 +1,5 @@ -pr: 133894 -releasenote: - text: Added `k8s-short-name` and `k8s-long-name` format validation tags to enforce - DNS label and DNS subdomain compliance. -pr_body: "" +pr: 133894 +releasenote: + text: Added `k8s-short-name` and `k8s-long-name` format validation tags to enforce + DNS label and DNS subdomain compliance. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133896-map.yaml b/releases/release-1.35/release-notes/maps/pr-133896-map.yaml index 5797e6939d0..58f1f486f32 100644 --- a/releases/release-1.35/release-notes/maps/pr-133896-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133896-map.yaml @@ -1,6 +1,6 @@ -pr: 133896 -releasenote: - text: - "kube-apiserver: Fixed a `v1.34` regression in `CustomResourceDefinition` handling - that incorrectly warned about unrecognized formats on number and integer properties." -pr_body: "" +pr: 133896 +releasenote: + text: + "kube-apiserver: Fixed a `v1.34` regression in `CustomResourceDefinition` handling + that incorrectly warned about unrecognized formats on number and integer properties." +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133904-map.yaml b/releases/release-1.35/release-notes/maps/pr-133904-map.yaml index 4c576e3ad91..df8f76f6b8c 100644 --- a/releases/release-1.35/release-notes/maps/pr-133904-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133904-map.yaml @@ -1,4 +1,4 @@ -pr: 133904 -releasenote: - text: Changed `WaitForNamedCacheSync` to `WaitForNamedCacheSyncWithContext`. -pr_body: "" +pr: 133904 +releasenote: + text: Changed `WaitForNamedCacheSync` to `WaitForNamedCacheSyncWithContext`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133907-map.yaml b/releases/release-1.35/release-notes/maps/pr-133907-map.yaml index 060b36464c7..6d167c97923 100644 --- a/releases/release-1.35/release-notes/maps/pr-133907-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133907-map.yaml @@ -1,5 +1,5 @@ -pr: 133907 -releasenote: - text: Updated the short description of the `kubectl wait` command by removing the - `Experimental` prefix, as the command has been stable for a long time. -pr_body: "" +pr: 133907 +releasenote: + text: Updated the short description of the `kubectl wait` command by removing the + `Experimental` prefix, as the command has been stable for a long time. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133917-map.yaml b/releases/release-1.35/release-notes/maps/pr-133917-map.yaml index 11f3ee054ff..e388df304a4 100644 --- a/releases/release-1.35/release-notes/maps/pr-133917-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133917-map.yaml @@ -1,5 +1,5 @@ -pr: 133917 -releasenote: - text: Fixed validation error when `ConfigFlags` includes `CertFile` and/or `KeyFile` - while the original configuration also contains `CertFileData` and/or `KeyFileData`. -pr_body: "" +pr: 133917 +releasenote: + text: Fixed validation error when `ConfigFlags` includes `CertFile` and/or `KeyFile` + while the original configuration also contains `CertFileData` and/or `KeyFileData`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133926-map.yaml b/releases/release-1.35/release-notes/maps/pr-133926-map.yaml index 56e6acc75d8..28f9f4a49ac 100644 --- a/releases/release-1.35/release-notes/maps/pr-133926-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133926-map.yaml @@ -1,5 +1,5 @@ -pr: 133926 -releasenote: - text: 'kubelet: Fixed an internal deadlock that caused the connection to a DRA driver - to become unusable after being idle for 30 minutes.' -pr_body: "" +pr: 133926 +releasenote: + text: 'kubelet: Fixed an internal deadlock that caused the connection to a DRA driver + to become unusable after being idle for 30 minutes.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133929-map.yaml b/releases/release-1.35/release-notes/maps/pr-133929-map.yaml index b0cdb34a633..550dc0aab59 100644 --- a/releases/release-1.35/release-notes/maps/pr-133929-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133929-map.yaml @@ -1,4 +1,4 @@ -pr: 133929 -releasenote: - text: Fixed occasional schedule delays when a static `PersistentVolume` is created. -pr_body: "" +pr: 133929 +releasenote: + text: Fixed occasional schedule delays when a static `PersistentVolume` is created. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133948-map.yaml b/releases/release-1.35/release-notes/maps/pr-133948-map.yaml index a457c5419e4..012399d6ff0 100644 --- a/releases/release-1.35/release-notes/maps/pr-133948-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133948-map.yaml @@ -1,4 +1,4 @@ -pr: 133948 -releasenote: - text: Added support for validating UUID format. -pr_body: "" +pr: 133948 +releasenote: + text: Added support for validating UUID format. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-133980-map.yaml b/releases/release-1.35/release-notes/maps/pr-133980-map.yaml index 53951a04bad..9a47997f9cd 100644 --- a/releases/release-1.35/release-notes/maps/pr-133980-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-133980-map.yaml @@ -1,5 +1,5 @@ -pr: 133980 -releasenote: - text: Added the `--min-compatibility-version` flag to `kube-apiserver`, `kube-controller-manager`, - and `kube-scheduler`. -pr_body: "" +pr: 133980 +releasenote: + text: Added the `--min-compatibility-version` flag to `kube-apiserver`, `kube-controller-manager`, + and `kube-scheduler`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134007-map.yaml b/releases/release-1.35/release-notes/maps/pr-134007-map.yaml index 1c3a89cb6b0..f613a05e602 100644 --- a/releases/release-1.35/release-notes/maps/pr-134007-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134007-map.yaml @@ -1,6 +1,6 @@ -pr: 134007 -releasenote: - text: - "kubeadm: Fixed `KUBEADM_UPGRADE_DRYRUN_DIR` not honored in upgrade phase - when writing kubelet config files." -pr_body: "" +pr: 134007 +releasenote: + text: + "kubeadm: Fixed `KUBEADM_UPGRADE_DRYRUN_DIR` not honored in upgrade phase + when writing kubelet config files." +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134017-map.yaml b/releases/release-1.35/release-notes/maps/pr-134017-map.yaml index 1e7f62567bf..17d4252ba74 100644 --- a/releases/release-1.35/release-notes/maps/pr-134017-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134017-map.yaml @@ -1,8 +1,8 @@ -pr: 134017 -releasenote: - text: 'Updated `kubectl scale` to return a consistent error message when a specified - resource is not found. Previously, it returned: `error: no objects passed to scale - <GroupResource> "<ResourceName>" not found`. It now matches the format used by - other commands (e.g., `kubectl get`): `Error from server (NotFound): <GroupResource> - "<ResourceName>" not found`.' -pr_body: "" +pr: 134017 +releasenote: + text: 'Updated `kubectl scale` to return a consistent error message when a specified + resource is not found. Previously, it returned: `error: no objects passed to scale + <GroupResource> "<ResourceName>" not found`. It now matches the format used by + other commands (e.g., `kubectl get`): `Error from server (NotFound): <GroupResource> + "<ResourceName>" not found`.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134024-map.yaml b/releases/release-1.35/release-notes/maps/pr-134024-map.yaml index ff3eb226391..c2468f50623 100644 --- a/releases/release-1.35/release-notes/maps/pr-134024-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134024-map.yaml @@ -1,7 +1,7 @@ -pr: 134024 -releasenote: - text: - Fixed a bug in `kube-proxy` `nftables` mode (GA as of `v1.33`) which fails to determine - if traffic originates from a local source on the node. The issue was caused by - using the wrong meta `iif` instead of `iifname` for name based matches. -pr_body: "" +pr: 134024 +releasenote: + text: + Fixed a bug in `kube-proxy` `nftables` mode (GA as of `v1.33`) which fails to determine + if traffic originates from a local source on the node. The issue was caused by + using the wrong meta `iif` instead of `iifname` for name based matches. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134028-map.yaml b/releases/release-1.35/release-notes/maps/pr-134028-map.yaml index dfa540181ae..97776dfe5c7 100644 --- a/releases/release-1.35/release-notes/maps/pr-134028-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134028-map.yaml @@ -1,5 +1,5 @@ -pr: 134028 -releasenote: - text: Specified the deprecated version of `apiserver_storage_objects` metric in - metrics docs. -pr_body: "" +pr: 134028 +releasenote: + text: Specified the deprecated version of `apiserver_storage_objects` metric in + metrics docs. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134043-map.yaml b/releases/release-1.35/release-notes/maps/pr-134043-map.yaml index 6ac9b3520a5..587c9022c48 100644 --- a/releases/release-1.35/release-notes/maps/pr-134043-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134043-map.yaml @@ -1,4 +1,4 @@ -pr: 134043 -releasenote: - text: Removed container name from messages for container created and started events. -pr_body: "" +pr: 134043 +releasenote: + text: Removed container name from messages for container created and started events. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134054-map.yaml b/releases/release-1.35/release-notes/maps/pr-134054-map.yaml index 2c905926388..eac01dbafe1 100644 --- a/releases/release-1.35/release-notes/maps/pr-134054-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134054-map.yaml @@ -1,4 +1,4 @@ -pr: 134054 -releasenote: - text: Removed an incorrect `SessionAffinity` warning that appeared when a headless service was created or updated. -pr_body: "" +pr: 134054 +releasenote: + text: Removed an incorrect `SessionAffinity` warning that appeared when a headless service was created or updated. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134072-map.yaml b/releases/release-1.35/release-notes/maps/pr-134072-map.yaml index 7f4d697fd24..a33a9a61479 100644 --- a/releases/release-1.35/release-notes/maps/pr-134072-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134072-map.yaml @@ -1,7 +1,7 @@ -pr: 134072 -releasenote: - text: |- - Migrated validation in `resource.k8s.io` to declarative validation. - When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. - when `DeclarativeValidationTakeover` feature gate is enabled, declarative validation becomes the primary source of errors for migrated fields. -pr_body: "" +pr: 134072 +releasenote: + text: |- + Migrated validation in `resource.k8s.io` to declarative validation. + When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. + when `DeclarativeValidationTakeover` feature gate is enabled, declarative validation becomes the primary source of errors for migrated fields. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134103-map.yaml b/releases/release-1.35/release-notes/maps/pr-134103-map.yaml index d1b562593e7..a961417c143 100644 --- a/releases/release-1.35/release-notes/maps/pr-134103-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134103-map.yaml @@ -1,6 +1,6 @@ -pr: 134103 -releasenote: - text: Fixed a bug that prevented allocating the same device that was previously - consuming the `CounterSet` when both `DRAConsumableCapacity` and `DRAPartitionableDevices` - were enabled. -pr_body: "" +pr: 134103 +releasenote: + text: Fixed a bug that prevented allocating the same device that was previously + consuming the `CounterSet` when both `DRAConsumableCapacity` and `DRAPartitionableDevices` + were enabled. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134106-map.yaml b/releases/release-1.35/release-notes/maps/pr-134106-map.yaml index 01c4e60cdb8..680719d231f 100644 --- a/releases/release-1.35/release-notes/maps/pr-134106-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134106-map.yaml @@ -1,10 +1,10 @@ -pr: 134106 -releasenote: - text: 'kubeadm: Graduated the kubeadm-specific feature gate `ControlPlaneKubeletLocalMode` - to GA and locked it to enabled by default. To opt out, patch the `server` field - in `/etc/kubernetes/kubelet.conf`. Deprecated the subphase of `kubeadm join phase - control-plane-join` called `etcd`, which is now hidden and replaced by subphase - with identical functionality `etcd-join`. The `etcd` subphase will be removed - in a future release. The subphase `kubelet-wait-bootstrap` of `kubeadm join` is - no longer experimental and will now always run.' -pr_body: "" +pr: 134106 +releasenote: + text: 'kubeadm: Graduated the kubeadm-specific feature gate `ControlPlaneKubeletLocalMode` + to GA and locked it to enabled by default. To opt out, patch the `server` field + in `/etc/kubernetes/kubelet.conf`. Deprecated the subphase of `kubeadm join phase + control-plane-join` called `etcd`, which is now hidden and replaced by subphase + with identical functionality `etcd-join`. The `etcd` subphase will be removed + in a future release. The subphase `kubelet-wait-bootstrap` of `kubeadm join` is + no longer experimental and will now always run.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134130-map.yaml b/releases/release-1.35/release-notes/maps/pr-134130-map.yaml index 2a492aef3bf..f67008e65e4 100644 --- a/releases/release-1.35/release-notes/maps/pr-134130-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134130-map.yaml @@ -1,6 +1,6 @@ -pr: 134130 -releasenote: - text: - Removed the `KUBECTL_OPENAPIV3_PATCH` environment variable, as aggregated - discovery has been stable since `v1.30`. -pr_body: "" +pr: 134130 +releasenote: + text: + Removed the `KUBECTL_OPENAPIV3_PATCH` environment variable, as aggregated + discovery has been stable since `v1.30`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134152-map.yaml b/releases/release-1.35/release-notes/maps/pr-134152-map.yaml index 68337d77061..94bab5dc48c 100644 --- a/releases/release-1.35/release-notes/maps/pr-134152-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134152-map.yaml @@ -1,8 +1,8 @@ -pr: 134152 -releasenote: - text: 'DRA device taints: `DeviceTaintRule` status provides information about the - rule, including whether Pods still need to be evicted (`EvictionInProgress` condition). - The newly added `None` effect can be used to preview what a `DeviceTaintRule` - would do if it used the `NoExecute` effect and to taint devices (`device health`) - without immediately affecting scheduling or running Pods.' -pr_body: "" +pr: 134152 +releasenote: + text: 'DRA device taints: `DeviceTaintRule` status provides information about the + rule, including whether Pods still need to be evicted (`EvictionInProgress` condition). + The newly added `None` effect can be used to preview what a `DeviceTaintRule` + would do if it used the `NoExecute` effect and to taint devices (`device health`) + without immediately affecting scheduling or running Pods.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134154-map.yaml b/releases/release-1.35/release-notes/maps/pr-134154-map.yaml index 9b074bacda0..c582e902574 100644 --- a/releases/release-1.35/release-notes/maps/pr-134154-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134154-map.yaml @@ -1,5 +1,5 @@ -pr: 134154 -releasenote: - text: Fixed a bug where high latency `kube-apiserver` caused scheduling throughput - degradation. -pr_body: "" +pr: 134154 +releasenote: + text: Fixed a bug where high latency `kube-apiserver` caused scheduling throughput + degradation. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134157-map.yaml b/releases/release-1.35/release-notes/maps/pr-134157-map.yaml index 0c21d85d3cd..a8a123b31ed 100644 --- a/releases/release-1.35/release-notes/maps/pr-134157-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134157-map.yaml @@ -1,5 +1,5 @@ -pr: 134157 -releasenote: - text: Fixed a bug where a deleted Pod in the binding phase continued to occupy space - on the node in `kube-scheduler`. -pr_body: "" +pr: 134157 +releasenote: + text: Fixed a bug where a deleted Pod in the binding phase continued to occupy space + on the node in `kube-scheduler`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134193-map.yaml b/releases/release-1.35/release-notes/maps/pr-134193-map.yaml index d6f493db1cc..f0f9e72bf63 100644 --- a/releases/release-1.35/release-notes/maps/pr-134193-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134193-map.yaml @@ -1,5 +1,5 @@ -pr: 134193 -releasenote: - text: Fixed a bug where 64-bit IPv6 `ServiceCIDRs` allocated addresses outside the - subnet range. -pr_body: "" +pr: 134193 +releasenote: + text: Fixed a bug where 64-bit IPv6 `ServiceCIDRs` allocated addresses outside the + subnet range. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134245-map.yaml b/releases/release-1.35/release-notes/maps/pr-134245-map.yaml index 851972c7293..82863bb0d12 100644 --- a/releases/release-1.35/release-notes/maps/pr-134245-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134245-map.yaml @@ -1,5 +1,5 @@ -pr: 134245 -releasenote: - text: Fixed a bug in `kube-scheduler` where pending pod preemption caused preemptor - pods to be retried more frequently. -pr_body: "" +pr: 134245 +releasenote: + text: Fixed a bug in `kube-scheduler` where pending pod preemption caused preemptor + pods to be retried more frequently. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134251-map.yaml b/releases/release-1.35/release-notes/maps/pr-134251-map.yaml index cbf35c07b94..6cbbd013aeb 100644 --- a/releases/release-1.35/release-notes/maps/pr-134251-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134251-map.yaml @@ -1,4 +1,4 @@ -pr: 134251 -releasenote: - text: Updated `etcd` to `v3.6.5`. -pr_body: "" +pr: 134251 +releasenote: + text: Updated `etcd` to `v3.6.5`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134256-map.yaml b/releases/release-1.35/release-notes/maps/pr-134256-map.yaml index 02f1b135863..c703f0c2702 100644 --- a/releases/release-1.35/release-notes/maps/pr-134256-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134256-map.yaml @@ -1,10 +1,10 @@ -pr: 134256 -releasenote: - text: Kubernetes API Go types removed runtime use of the `github.com/gogo/protobuf` - library, and are no longer registered into the global gogo type registry. Kubernetes - API Go types were not suitable for use with the `google.golang.org/protobuf` library, - and no longer implement `ProtoMessage()` by default to avoid accidental incompatible - use. If removal of these marker methods impacts your use, it can be re-enabled - for one more release with a `kubernetes_protomessage_one_more_release` build tag, - but will be removed in `v1.36`. -pr_body: "" +pr: 134256 +releasenote: + text: Kubernetes API Go types removed runtime use of the `github.com/gogo/protobuf` + library, and are no longer registered into the global gogo type registry. Kubernetes + API Go types were not suitable for use with the `google.golang.org/protobuf` library, + and no longer implement `ProtoMessage()` by default to avoid accidental incompatible + use. If removal of these marker methods impacts your use, it can be re-enabled + for one more release with a `kubernetes_protomessage_one_more_release` build tag, + but will be removed in `v1.36`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134263-map.yaml b/releases/release-1.35/release-notes/maps/pr-134263-map.yaml index f7d88a608ef..e3c40257fb0 100644 --- a/releases/release-1.35/release-notes/maps/pr-134263-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134263-map.yaml @@ -1,5 +1,5 @@ -pr: 134263 -releasenote: - text: Namespace is now included in the `--dry-run=client` output for `HorizontalPodAutoscaler - (HPA)` objects. -pr_body: "" +pr: 134263 +releasenote: + text: Namespace is now included in the `--dry-run=client` output for `HorizontalPodAutoscaler + (HPA)` objects. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134265-map.yaml b/releases/release-1.35/release-notes/maps/pr-134265-map.yaml index c9d6daaf990..6411a901d7b 100644 --- a/releases/release-1.35/release-notes/maps/pr-134265-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134265-map.yaml @@ -1,6 +1,6 @@ -pr: 134265 -releasenote: - text: 'kubeadm: Ensured waiting for `apiserver` uses a local client that doesn''t - reach to the control plane endpoint and instead reaches directly to the local - API server endpoint.' -pr_body: "" +pr: 134265 +releasenote: + text: 'kubeadm: Ensured waiting for `apiserver` uses a local client that doesn''t + reach to the control plane endpoint and instead reaches directly to the local + API server endpoint.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134279-map.yaml b/releases/release-1.35/release-notes/maps/pr-134279-map.yaml index a5af3f237e5..6ae637d01bc 100644 --- a/releases/release-1.35/release-notes/maps/pr-134279-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134279-map.yaml @@ -1,5 +1,5 @@ -pr: 134279 -releasenote: - text: Introduced a new declarative validation tag `+k8s:customUnique` to control - listmap uniqueness. -pr_body: "" +pr: 134279 +releasenote: + text: Introduced a new declarative validation tag `+k8s:customUnique` to control + listmap uniqueness. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134294-map.yaml b/releases/release-1.35/release-notes/maps/pr-134294-map.yaml index 735b725a2b8..0ed29545b01 100644 --- a/releases/release-1.35/release-notes/maps/pr-134294-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134294-map.yaml @@ -1,6 +1,6 @@ -pr: 134294 -releasenote: - text: Fixed incorrect behavior of preemptor pod when preemption of the victim takes - long to complete. The preemptor pod should not be circling in scheduling cycles - until preemption is finished. -pr_body: "" +pr: 134294 +releasenote: + text: Fixed incorrect behavior of preemptor pod when preemption of the victim takes + long to complete. The preemptor pod should not be circling in scheduling cycles + until preemption is finished. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134298-map.yaml b/releases/release-1.35/release-notes/maps/pr-134298-map.yaml index 732eb294db6..d0860daf958 100644 --- a/releases/release-1.35/release-notes/maps/pr-134298-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134298-map.yaml @@ -1,6 +1,6 @@ -pr: 134298 -releasenote: - text: "ACTION REQUIRED: `failCgroupV1` will be set to true from 1.35. \nThis means that nodes - will not start on a cgroup v1 by default. This puts cgroup v1 into a deprecated - state." -pr_body: "" +pr: 134298 +releasenote: + text: "ACTION REQUIRED: `failCgroupV1` will be set to true from 1.35. \nThis means that nodes + will not start on a cgroup v1 by default. This puts cgroup v1 into a deprecated + state." +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134312-map.yaml b/releases/release-1.35/release-notes/maps/pr-134312-map.yaml index 7bfaa73b647..fb23d1fd33a 100644 --- a/releases/release-1.35/release-notes/maps/pr-134312-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134312-map.yaml @@ -1,4 +1,4 @@ -pr: 134312 -releasenote: - text: Fixed resource claims deallocation for extended resource when Pod completes. -pr_body: "" +pr: 134312 +releasenote: + text: Fixed resource claims deallocation for extended resource when Pod completes. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134313-map.yaml b/releases/release-1.35/release-notes/maps/pr-134313-map.yaml index dd7c5f7519f..8fa1da15243 100644 --- a/releases/release-1.35/release-notes/maps/pr-134313-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134313-map.yaml @@ -1,5 +1,5 @@ -pr: 134313 -releasenote: - text: Introduced a structured and versioned `v1alpha1` response for the `statusz` - endpoint. -pr_body: "" +pr: 134313 +releasenote: + text: Introduced a structured and versioned `v1alpha1` response for the `statusz` + endpoint. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134319-map.yaml b/releases/release-1.35/release-notes/maps/pr-134319-map.yaml index 9566ba132e1..1e77ef726c4 100644 --- a/releases/release-1.35/release-notes/maps/pr-134319-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134319-map.yaml @@ -1,7 +1,7 @@ -pr: 134319 -releasenote: - text: 'kubeadm: Fixed a bug where the node registration information for a given - node was not fetched correctly during `kubeadm upgrade node` and the node name - can end up being incorrect in cases where the node name is not the same as the - host name.' -pr_body: "" +pr: 134319 +releasenote: + text: 'kubeadm: Fixed a bug where the node registration information for a given + node was not fetched correctly during `kubeadm upgrade node` and the node name + can end up being incorrect in cases where the node name is not the same as the + host name.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134330-map.yaml b/releases/release-1.35/release-notes/maps/pr-134330-map.yaml index 397a752dbca..cf06bb40069 100644 --- a/releases/release-1.35/release-notes/maps/pr-134330-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134330-map.yaml @@ -1,5 +1,5 @@ -pr: 134330 -releasenote: - text: 'k8s.io/apimachinery: Introduced a helper function to compare `resourceVersion` - strings between two objects of the same resource.' -pr_body: "" +pr: 134330 +releasenote: + text: 'k8s.io/apimachinery: Introduced a helper function to compare `resourceVersion` + strings between two objects of the same resource.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134378-map.yaml b/releases/release-1.35/release-notes/maps/pr-134378-map.yaml index 2dc95d11df5..144f6f6416f 100644 --- a/releases/release-1.35/release-notes/maps/pr-134378-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134378-map.yaml @@ -1,5 +1,5 @@ -pr: 134378 -releasenote: - text: Introduced the `--as-user-extra` persistent flag in `kubectl`, which allows - passing extra arguments during impersonation. -pr_body: "" +pr: 134378 +releasenote: + text: Introduced the `--as-user-extra` persistent flag in `kubectl`, which allows + passing extra arguments during impersonation. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134379-map.yaml b/releases/release-1.35/release-notes/maps/pr-134379-map.yaml index 8f9985f5ad5..c8b49862fc0 100644 --- a/releases/release-1.35/release-notes/maps/pr-134379-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134379-map.yaml @@ -1,5 +1,5 @@ -pr: 134379 -releasenote: - text: 'kube-controller-manager: Fixed a possible data race in the garbage collection - controller.' -pr_body: "" +pr: 134379 +releasenote: + text: 'kube-controller-manager: Fixed a possible data race in the garbage collection + controller.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134381-map.yaml b/releases/release-1.35/release-notes/maps/pr-134381-map.yaml index 657e3a1d093..dab8beb7bc1 100644 --- a/releases/release-1.35/release-notes/maps/pr-134381-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134381-map.yaml @@ -1,5 +1,5 @@ -pr: 134381 -releasenote: - text: Fixed a bug to prevent segmentation fault from occurring when updating deeply - nested JSON fields. -pr_body: "" +pr: 134381 +releasenote: + text: Fixed a bug to prevent segmentation fault from occurring when updating deeply + nested JSON fields. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134384-map.yaml b/releases/release-1.35/release-notes/maps/pr-134384-map.yaml index a5590a2a022..d410da78deb 100644 --- a/releases/release-1.35/release-notes/maps/pr-134384-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134384-map.yaml @@ -1,5 +1,5 @@ -pr: 134384 -releasenote: - text: Added the `-n` flag as a shorthand for `--namespace` in the `kubectl config - set-context` command. -pr_body: "" +pr: 134384 +releasenote: + text: Added the `-n` flag as a shorthand for `--namespace` in the `kubectl config + set-context` command. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134388-map.yaml b/releases/release-1.35/release-notes/maps/pr-134388-map.yaml index 19b696f9eec..a848416a05c 100644 --- a/releases/release-1.35/release-notes/maps/pr-134388-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134388-map.yaml @@ -1,5 +1,5 @@ -pr: 134388 -releasenote: - text: Moved the CPU Manager static policy option `strict-cpu-reservation` to the - GA version. -pr_body: "" +pr: 134388 +releasenote: + text: Moved the CPU Manager static policy option `strict-cpu-reservation` to the + GA version. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134390-map.yaml b/releases/release-1.35/release-notes/maps/pr-134390-map.yaml index a4a8e32ad2e..66ab7947d7e 100644 --- a/releases/release-1.35/release-notes/maps/pr-134390-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134390-map.yaml @@ -1,4 +1,4 @@ -pr: 134390 -releasenote: - text: Fixed a possible data race during metrics registration. -pr_body: "" +pr: 134390 +releasenote: + text: Fixed a possible data race during metrics registration. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134400-map.yaml b/releases/release-1.35/release-notes/maps/pr-134400-map.yaml index 8644ee5e38c..7572f87b0f3 100644 --- a/releases/release-1.35/release-notes/maps/pr-134400-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134400-map.yaml @@ -1,6 +1,6 @@ -pr: 134400 -releasenote: - text: Disabled the `SchedulerAsyncAPICalls` feature gate to mitigate a bug where - its interaction with asynchronous preemption could degrade `kube-scheduler` performance, - especially under high `kube-apiserver` load. -pr_body: "" +pr: 134400 +releasenote: + text: Disabled the `SchedulerAsyncAPICalls` feature gate to mitigate a bug where + its interaction with asynchronous preemption could degrade `kube-scheduler` performance, + especially under high `kube-apiserver` load. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134433-map.yaml b/releases/release-1.35/release-notes/maps/pr-134433-map.yaml index d4d74a9fdbe..65dc75ec8f5 100644 --- a/releases/release-1.35/release-notes/maps/pr-134433-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134433-map.yaml @@ -1,5 +1,5 @@ -pr: 134433 -releasenote: - text: 'kubeadm: Added error printing during retries related to the `WaitForAllControlPlaneComponents` - functionality at verbosity level 5.' -pr_body: "" +pr: 134433 +releasenote: + text: 'kubeadm: Added error printing during retries related to the `WaitForAllControlPlaneComponents` + functionality at verbosity level 5.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134445-map.yaml b/releases/release-1.35/release-notes/maps/pr-134445-map.yaml index 9f2012a0c30..0075ba2fdd5 100644 --- a/releases/release-1.35/release-notes/maps/pr-134445-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134445-map.yaml @@ -1,5 +1,5 @@ -pr: 134445 -releasenote: - text: Fixed a long-standing issue where `kubelet` rejected Pods with `NodeAffinityFailed` - due to a stale informer cache. -pr_body: "" +pr: 134445 +releasenote: + text: Fixed a long-standing issue where `kubelet` rejected Pods with `NodeAffinityFailed` + due to a stale informer cache. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134452-map.yaml b/releases/release-1.35/release-notes/maps/pr-134452-map.yaml index b6e31409b35..43c8fdd068a 100644 --- a/releases/release-1.35/release-notes/maps/pr-134452-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134452-map.yaml @@ -1,5 +1,5 @@ -pr: 134452 -releasenote: - text: 'DRA: The `DynamicResourceAllocation` feature gate for the core functionality - (GA in `v1.34`) has now been locked to enabled-by-default and cannot be disabled anymore.' -pr_body: "" +pr: 134452 +releasenote: + text: 'DRA: The `DynamicResourceAllocation` feature gate for the core functionality + (GA in `v1.34`) has now been locked to enabled-by-default and cannot be disabled anymore.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134457-map.yaml b/releases/release-1.35/release-notes/maps/pr-134457-map.yaml index 15c81cc86a7..ceca6dcbc47 100644 --- a/releases/release-1.35/release-notes/maps/pr-134457-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134457-map.yaml @@ -1,8 +1,8 @@ -pr: 134457 -releasenote: - text: |- - The `PreferSameZone` and `PreferSameNode` values for the Service - `trafficDistribution` field graduated to general availability. The - `PreferClose` value is now deprecated in favor of the more explicit - `PreferSameZone`. -pr_body: "" +pr: 134457 +releasenote: + text: |- + The `PreferSameZone` and `PreferSameNode` values for the Service + `trafficDistribution` field graduated to general availability. The + `PreferClose` value is now deprecated in favor of the more explicit + `PreferSameZone`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134466-map.yaml b/releases/release-1.35/release-notes/maps/pr-134466-map.yaml index ddbfdc268e2..1d46f74f095 100644 --- a/releases/release-1.35/release-notes/maps/pr-134466-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134466-map.yaml @@ -1,5 +1,5 @@ -pr: 134466 -releasenote: - text: 'Fixed a bug where `AllocationMode: All` would not succeed if a resource pool - contained `ResourceSlices` that were not targeting the current node.' -pr_body: "" +pr: 134466 +releasenote: + text: 'Fixed a bug where `AllocationMode: All` would not succeed if a resource pool + contained `ResourceSlices` that were not targeting the current node.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134479-map.yaml b/releases/release-1.35/release-notes/maps/pr-134479-map.yaml index 552bbf3afc8..8e3a2709108 100644 --- a/releases/release-1.35/release-notes/maps/pr-134479-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134479-map.yaml @@ -1,7 +1,7 @@ -pr: 134479 -releasenote: - text: 'DRA Device Taints: Fixed toleration of `NoExecute`. Prior to this enhancement, - tolerating a `NoExecute` did not work because the scheduler did not inform the - eviction controller about the toleration, so the scheduled pod got evicted almost - immediately.' -pr_body: "" +pr: 134479 +releasenote: + text: 'DRA Device Taints: Fixed toleration of `NoExecute`. Prior to this enhancement, + tolerating a `NoExecute` did not work because the scheduler did not inform the + eviction controller about the toleration, so the scheduled pod got evicted almost + immediately.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134481-map.yaml b/releases/release-1.35/release-notes/maps/pr-134481-map.yaml index 920cdfb1d35..58443b7364d 100644 --- a/releases/release-1.35/release-notes/maps/pr-134481-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134481-map.yaml @@ -1,5 +1,5 @@ -pr: 134481 -releasenote: - text: Promoted the `--chunk-size` flag to stable. The kubectl `describe`, `get`, - `drain`, and `events` commands can use `--chunk-size` flag to set chunk size. -pr_body: "" +pr: 134481 +releasenote: + text: Promoted the `--chunk-size` flag to stable. The kubectl `describe`, `get`, + `drain`, and `events` commands can use `--chunk-size` flag to set chunk size. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134493-map.yaml b/releases/release-1.35/release-notes/maps/pr-134493-map.yaml index 6f572d21b85..2a63d5a3140 100644 --- a/releases/release-1.35/release-notes/maps/pr-134493-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134493-map.yaml @@ -1,6 +1,6 @@ -pr: 134493 -releasenote: - text: |- - Promoted the `RelaxedServiceNameValidation` feature to beta (enabled by default). - New Service names are now validated with `NameIsDNSLabel()`, relaxing the pre-existing validation. -pr_body: "" +pr: 134493 +releasenote: + text: |- + Promoted the `RelaxedServiceNameValidation` feature to beta (enabled by default). + New Service names are now validated with `NameIsDNSLabel()`, relaxing the pre-existing validation. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134510-map.yaml b/releases/release-1.35/release-notes/maps/pr-134510-map.yaml index e5e302ab301..bd94acb1895 100644 --- a/releases/release-1.35/release-notes/maps/pr-134510-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134510-map.yaml @@ -1,5 +1,5 @@ -pr: 134510 -releasenote: - text: Substantially simplified building Kubernetes by making the process run a pre-built - container image directly without running `rsyncd`. -pr_body: "" +pr: 134510 +releasenote: + text: Substantially simplified building Kubernetes by making the process run a pre-built + container image directly without running `rsyncd`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134523-map.yaml b/releases/release-1.35/release-notes/maps/pr-134523-map.yaml index 943b7435368..89f9e6dd8ae 100644 --- a/releases/release-1.35/release-notes/maps/pr-134523-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134523-map.yaml @@ -1,6 +1,6 @@ -pr: 134523 -releasenote: - text: |- - Added a `source` label to the `resourceclaim_controller_resource_claims` metric. - Added the `scheduler_resourceclaim_creates_total` metric for `DRAExtendedResource`. -pr_body: "" +pr: 134523 +releasenote: + text: |- + Added a `source` label to the `resourceclaim_controller_resource_claims` metric. + Added the `scheduler_resourceclaim_creates_total` metric for `DRAExtendedResource`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134539-map.yaml b/releases/release-1.35/release-notes/maps/pr-134539-map.yaml index e8b084f127f..773f08e1463 100644 --- a/releases/release-1.35/release-notes/maps/pr-134539-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134539-map.yaml @@ -1,5 +1,5 @@ -pr: 134539 -releasenote: - text: Marked `ipvs` mode in kube-proxy as deprecated, which will be removed in a future - version of Kubernetes. Users are encouraged to migrate to `nftables`. -pr_body: "" +pr: 134539 +releasenote: + text: Marked `ipvs` mode in kube-proxy as deprecated, which will be removed in a future + version of Kubernetes. Users are encouraged to migrate to `nftables`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134577-map.yaml b/releases/release-1.35/release-notes/maps/pr-134577-map.yaml index b7faa1368dd..414074f3a5a 100644 --- a/releases/release-1.35/release-notes/maps/pr-134577-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134577-map.yaml @@ -1,7 +1,7 @@ -pr: 134577 -releasenote: - text: |- - kube-apiserver: Made the subresources `pods/exec`, `pods/attach`, and `pods/portforward` require `create` permission for both SPDY and Websocket API requests. Previously, SPDY requests required `create` permission, but Websocket requests only required `get` permission. This change is gated by the `AuthorizePodWebsocketUpgradeCreatePermission` feature-gate, which is enabled by default. - - Before upgrading to 1.35, ensure any custom ClusterRoles and Roles intended to grant `pods/exec`, `pods/attach`, or `pods/portforward` permission include the `create` verb. -pr_body: "" +pr: 134577 +releasenote: + text: |- + kube-apiserver: Made the subresources `pods/exec`, `pods/attach`, and `pods/portforward` require `create` permission for both SPDY and Websocket API requests. Previously, SPDY requests required `create` permission, but Websocket requests only required `get` permission. This change is gated by the `AuthorizePodWebsocketUpgradeCreatePermission` feature-gate, which is enabled by default. + + Before upgrading to 1.35, ensure any custom ClusterRoles and Roles intended to grant `pods/exec`, `pods/attach`, or `pods/portforward` permission include the `create` verb. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134588-map.yaml b/releases/release-1.35/release-notes/maps/pr-134588-map.yaml index 9907a7fbd95..dd9096631e8 100644 --- a/releases/release-1.35/release-notes/maps/pr-134588-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134588-map.yaml @@ -1,5 +1,5 @@ -pr: 134588 -releasenote: - text: 'kubeadm: Fixed a preflight check that could fail hostname construction in IPv6 - setups.' -pr_body: "" +pr: 134588 +releasenote: + text: 'kubeadm: Fixed a preflight check that could fail hostname construction in IPv6 + setups.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134598-map.yaml b/releases/release-1.35/release-notes/maps/pr-134598-map.yaml index d90eb998e13..fc72881901e 100644 --- a/releases/release-1.35/release-notes/maps/pr-134598-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134598-map.yaml @@ -1,4 +1,4 @@ -pr: 134598 -releasenote: - text: Updated the Go version of Kubernetes to `1.25.3`. -pr_body: "" +pr: 134598 +releasenote: + text: Updated the Go version of Kubernetes to `1.25.3`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134601-map.yaml b/releases/release-1.35/release-notes/maps/pr-134601-map.yaml index 68832d50dbf..6ddd14267d2 100644 --- a/releases/release-1.35/release-notes/maps/pr-134601-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134601-map.yaml @@ -1,7 +1,7 @@ -pr: 134601 -releasenote: - text: Made legacy watch calls (`ResourceVersion` = 0 or unset) that generate init-events weigh - higher in `API Priority and Fairness (APF)` seat usage. Properly accounting for their - cost protects the API server from CPU overload. Users might see increased - throttling of such calls as a result. -pr_body: "" +pr: 134601 +releasenote: + text: Made legacy watch calls (`ResourceVersion` = 0 or unset) that generate init-events weigh + higher in `API Priority and Fairness (APF)` seat usage. Properly accounting for their + cost protects the API server from CPU overload. Users might see increased + throttling of such calls as a result. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134611-map.yaml b/releases/release-1.35/release-notes/maps/pr-134611-map.yaml index 3c1992583eb..d54abee83ad 100644 --- a/releases/release-1.35/release-notes/maps/pr-134611-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134611-map.yaml @@ -1,4 +1,4 @@ -pr: 134611 -releasenote: - text: Updated underlying images and dependencies to be compatible with Go version`1.25.3`. -pr_body: "" +pr: 134611 +releasenote: + text: Updated underlying images and dependencies to be compatible with Go version`1.25.3`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134614-map.yaml b/releases/release-1.35/release-notes/maps/pr-134614-map.yaml index 5413f40c123..22523a80c91 100644 --- a/releases/release-1.35/release-notes/maps/pr-134614-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134614-map.yaml @@ -1,5 +1,5 @@ -pr: 134614 -releasenote: - text: Promoted the Topology Manager policy option `max-allowable-numa-nodes` to - GA version. -pr_body: "" +pr: 134614 +releasenote: + text: Promoted the Topology Manager policy option `max-allowable-numa-nodes` to + GA version. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134624-map.yaml b/releases/release-1.35/release-notes/maps/pr-134624-map.yaml index fe7fd8f46d5..f30e862c883 100644 --- a/releases/release-1.35/release-notes/maps/pr-134624-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134624-map.yaml @@ -1,9 +1,9 @@ -pr: 134624 -releasenote: - text: The Pod Certificates feature moved to beta. The `PodCertificateRequest` feature - gate is set disabled by default. To use the feature, users must enable the certificates - API groups in `v1beta1` and enable the `PodCertificateRequest` feature gate. The - `UserAnnotations` field was added to the `PodCertificateProjection` API and the - corresponding `UnverifiedUserAnnotations` field was added to the `PodCertificateRequest` - API. -pr_body: "" +pr: 134624 +releasenote: + text: The Pod Certificates feature moved to beta. The `PodCertificateRequest` feature + gate is set disabled by default. To use the feature, users must enable the certificates + API groups in `v1beta1` and enable the `PodCertificateRequest` feature gate. The + `UserAnnotations` field was added to the `PodCertificateProjection` API and the + corresponding `UnverifiedUserAnnotations` field was added to the `PodCertificateRequest` + API. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134625-map.yaml b/releases/release-1.35/release-notes/maps/pr-134625-map.yaml index 287bfe6629d..fd77a3e467f 100644 --- a/releases/release-1.35/release-notes/maps/pr-134625-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134625-map.yaml @@ -1,5 +1,5 @@ -pr: 134625 -releasenote: - text: Removed the `VolumeAttributesClass` resource from the `storage.k8s.io/v1alpha1` - API in `v1.35`. -pr_body: "" +pr: 134625 +releasenote: + text: Removed the `VolumeAttributesClass` resource from the `storage.k8s.io/v1alpha1` + API in `v1.35`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134631-map.yaml b/releases/release-1.35/release-notes/maps/pr-134631-map.yaml index 3773d6d167c..4def227d990 100644 --- a/releases/release-1.35/release-notes/maps/pr-134631-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134631-map.yaml @@ -1,6 +1,6 @@ -pr: 134631 -releasenote: - text: Enabled the feature gate `ContainerRestartRules` by default. The `ContainerRestartRules` - feature has been promoted to beta. Fixed a bug in this feature that caused probes - to continue to run even if the container has terminated and is not restartable. -pr_body: "" +pr: 134631 +releasenote: + text: Enabled the feature gate `ContainerRestartRules` by default. The `ContainerRestartRules` + feature has been promoted to beta. Fixed a bug in this feature that caused probes + to continue to run even if the container has terminated and is not restartable. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134647-map.yaml b/releases/release-1.35/release-notes/maps/pr-134647-map.yaml index 4f1cd205eea..48ebb9e135a 100644 --- a/releases/release-1.35/release-notes/maps/pr-134647-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134647-map.yaml @@ -1,4 +1,4 @@ -pr: 134647 -releasenote: - text: Enabled the `MutableCSINodeAllocatableCount` feature gate by default in beta. -pr_body: "" +pr: 134647 +releasenote: + text: Enabled the `MutableCSINodeAllocatableCount` feature gate by default in beta. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134654-map.yaml b/releases/release-1.35/release-notes/maps/pr-134654-map.yaml index 4be266070e3..6b244fb9da0 100644 --- a/releases/release-1.35/release-notes/maps/pr-134654-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134654-map.yaml @@ -1,5 +1,5 @@ -pr: 134654 -releasenote: - text: 'kube-controller-manager: Resolved potential issues handling pods with incorrect - uids in their `ownerReference`.' -pr_body: "" +pr: 134654 +releasenote: + text: 'kube-controller-manager: Resolved potential issues handling pods with incorrect + uids in their `ownerReference`.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134656-map.yaml b/releases/release-1.35/release-notes/maps/pr-134656-map.yaml index 902227c395a..ebcc7663c1e 100644 --- a/releases/release-1.35/release-notes/maps/pr-134656-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134656-map.yaml @@ -1,4 +1,4 @@ -pr: 134656 -releasenote: - text: Removed `rsync` as a dependency to build Kubernetes. -pr_body: "" +pr: 134656 +releasenote: + text: Removed `rsync` as a dependency to build Kubernetes. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134685-map.yaml b/releases/release-1.35/release-notes/maps/pr-134685-map.yaml index 4b94f7cf57b..fd1cf2cef1a 100644 --- a/releases/release-1.35/release-notes/maps/pr-134685-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134685-map.yaml @@ -1,4 +1,4 @@ -pr: 134685 -releasenote: - text: Dropped support for `policy/v1beta1` PodDisruptionBudget in kubectl. -pr_body: "" +pr: 134685 +releasenote: + text: Dropped support for `policy/v1beta1` PodDisruptionBudget in kubectl. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134691-map.yaml b/releases/release-1.35/release-notes/maps/pr-134691-map.yaml index 4f8479f6979..5819c204fbc 100644 --- a/releases/release-1.35/release-notes/maps/pr-134691-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134691-map.yaml @@ -1,8 +1,8 @@ -pr: 134691 -releasenote: - text: The `SystemdWatchdog` feature gate has been locked to default and will be removed - in future release. The systemd watchdog functionality in `kubelet` can be enabled - via systemd without any feature gate configuration. See the [systemd watchdog - documentation](https://kubernetes.io/docs/reference/node/systemd-watchdog/) for - more information. -pr_body: "" +pr: 134691 +releasenote: + text: The `SystemdWatchdog` feature gate has been locked to default and will be removed + in future release. The systemd watchdog functionality in `kubelet` can be enabled + via systemd without any feature gate configuration. See the [systemd watchdog + documentation](https://kubernetes.io/docs/reference/node/systemd-watchdog/) for + more information. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134692-map.yaml b/releases/release-1.35/release-notes/maps/pr-134692-map.yaml index 273153d564d..2f2fea19b22 100644 --- a/releases/release-1.35/release-notes/maps/pr-134692-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134692-map.yaml @@ -1,5 +1,5 @@ -pr: 134692 -releasenote: - text: 'kubeadm: Updated the supported `etcd` version to `v3.5.23` for supported control - plane versions `v1.31`, `v1.32`, and `v1.33`.' -pr_body: "" +pr: 134692 +releasenote: + text: 'kubeadm: Updated the supported `etcd` version to `v3.5.23` for supported control + plane versions `v1.31`, `v1.32`, and `v1.33`.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134709-map.yaml b/releases/release-1.35/release-notes/maps/pr-134709-map.yaml index eb531ec42d4..0ba39ee8f73 100644 --- a/releases/release-1.35/release-notes/maps/pr-134709-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134709-map.yaml @@ -1,4 +1,4 @@ -pr: 134709 -releasenote: - text: Added support for tracing in `kubectl` with the `--profile=trace` flag. -pr_body: "" +pr: 134709 +releasenote: + text: Added support for tracing in `kubectl` with the `--profile=trace` flag. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134715-map.yaml b/releases/release-1.35/release-notes/maps/pr-134715-map.yaml index a7b79eb166e..ab72359a323 100644 --- a/releases/release-1.35/release-notes/maps/pr-134715-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134715-map.yaml @@ -1,6 +1,6 @@ -pr: 134715 -releasenote: - text: 'kubeadm: Added missing cluster-info context validation to prevent panics - when the user has a malformed kubeconfig in the cluster-info ConfigMap that excludes - a valid current context.' -pr_body: "" +pr: 134715 +releasenote: + text: 'kubeadm: Added missing cluster-info context validation to prevent panics + when the user has a malformed kubeconfig in the cluster-info ConfigMap that excludes + a valid current context.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134729-map.yaml b/releases/release-1.35/release-notes/maps/pr-134729-map.yaml index 98aeb157ad0..e550ce0b161 100644 --- a/releases/release-1.35/release-notes/maps/pr-134729-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134729-map.yaml @@ -1,4 +1,4 @@ -pr: 134729 -releasenote: - text: Promoted the `HostnameOverride` feature gate to beta and enabled it by default. -pr_body: "" +pr: 134729 +releasenote: + text: Promoted the `HostnameOverride` feature gate to beta and enabled it by default. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134730-map.yaml b/releases/release-1.35/release-notes/maps/pr-134730-map.yaml index 4f1213d90ea..28dc338ea03 100644 --- a/releases/release-1.35/release-notes/maps/pr-134730-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134730-map.yaml @@ -1,5 +1,5 @@ -pr: 134730 -releasenote: - text: 'Fixed an issue in asynchronous preemption: Scheduler now checks if preemption - is ongoing for a Pod before initiating new preemption calls.' -pr_body: "" +pr: 134730 +releasenote: + text: 'Fixed an issue in asynchronous preemption: Scheduler now checks if preemption + is ongoing for a Pod before initiating new preemption calls.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134739-map.yaml b/releases/release-1.35/release-notes/maps/pr-134739-map.yaml index 7831d8368d4..f42ca28dadc 100644 --- a/releases/release-1.35/release-notes/maps/pr-134739-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134739-map.yaml @@ -1,6 +1,6 @@ -pr: 134739 -releasenote: - text: Improved performance of `Endpoint` and `EndpointSlice` controllers when - there are a large number of services in a single namespace by making pod-to-service - lookup asynchronous. -pr_body: "" +pr: 134739 +releasenote: + text: Improved performance of `Endpoint` and `EndpointSlice` controllers when + there are a large number of services in a single namespace by making pod-to-service + lookup asynchronous. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134740-map.yaml b/releases/release-1.35/release-notes/maps/pr-134740-map.yaml index 597b6abe3a4..66bf5b2d17b 100644 --- a/releases/release-1.35/release-notes/maps/pr-134740-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134740-map.yaml @@ -1,5 +1,5 @@ -pr: 134740 -releasenote: - text: '`kube-scheduler`: Pod statuses no longer include specific taint keys or values - when scheduling fails due to untolerated taints.' -pr_body: "" +pr: 134740 +releasenote: + text: '`kube-scheduler`: Pod statuses no longer include specific taint keys or values + when scheduling fails due to untolerated taints.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134743-map.yaml b/releases/release-1.35/release-notes/maps/pr-134743-map.yaml index b6ff3fbe88e..52e145e8fde 100644 --- a/releases/release-1.35/release-notes/maps/pr-134743-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134743-map.yaml @@ -1,6 +1,6 @@ -pr: 134743 -releasenote: - text: Fixed an issue where the `kubelet` `/configz` endpoint reported an incorrect - value for `kubeletconfig.cgroupDriver` when the cgroup driver setting was received - from the container runtime. -pr_body: "" +pr: 134743 +releasenote: + text: Fixed an issue where the `kubelet` `/configz` endpoint reported an incorrect + value for `kubeletconfig.cgroupDriver` when the cgroup driver setting was received + from the container runtime. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134744-map.yaml b/releases/release-1.35/release-notes/maps/pr-134744-map.yaml index 312d6559ab6..b34d3dde4ac 100644 --- a/releases/release-1.35/release-notes/maps/pr-134744-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134744-map.yaml @@ -1,13 +1,13 @@ -pr: 134744 -releasenote: - text: |- - ACTION REQUIRED: - - vendor: Updated `k8s.io/system-validators` to `v1.12.1`. The cgroups validator now throws an error instead of a warning if cgroups v1 is detected on the host and the provided KubeletVersion is `v1.35` or newer. - - kubeadm: Started using `k8s.io/system-validators` `v1.12.1` in `kubeadm` `v1.35`. During `kubeadm init`, `kubeadm join`, and `kubeadm upgrade`, the SystemVerification preflight check throws an error if cgroups v1 is detected and the detected `kubelet` version is `v1.35` or newer. For older versions of `kubelet`, a preflight warning is displayed. - - To allow cgroups v1 with `kubeadm` and `kubelet` version `v1.35` or newer, you must: - - Ignore the error from the SystemVerification preflight check by `kubeadm`. - - Edit the `kube-system/kubelet-config` ConfigMap and add the `failCgroupV1: false` field before upgrading. -pr_body: "" +pr: 134744 +releasenote: + text: |- + ACTION REQUIRED: + + vendor: Updated `k8s.io/system-validators` to `v1.12.1`. The cgroups validator now throws an error instead of a warning if cgroups v1 is detected on the host and the provided KubeletVersion is `v1.35` or newer. + + kubeadm: Started using `k8s.io/system-validators` `v1.12.1` in `kubeadm` `v1.35`. During `kubeadm init`, `kubeadm join`, and `kubeadm upgrade`, the SystemVerification preflight check throws an error if cgroups v1 is detected and the detected `kubelet` version is `v1.35` or newer. For older versions of `kubelet`, a preflight warning is displayed. + + To allow cgroups v1 with `kubeadm` and `kubelet` version `v1.35` or newer, you must: + - Ignore the error from the SystemVerification preflight check by `kubeadm`. + - Edit the `kube-system/kubelet-config` ConfigMap and add the `failCgroupV1: false` field before upgrading. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134746-map.yaml b/releases/release-1.35/release-notes/maps/pr-134746-map.yaml index dad3b6efcd6..30b0887c8b9 100644 --- a/releases/release-1.35/release-notes/maps/pr-134746-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134746-map.yaml @@ -1,7 +1,7 @@ -pr: 134746 -releasenote: - text: Added the `ChangeContainerStatusOnKubeletRestart` feature gate, which defaults - to disabled. When the feature gate is disabled, `kubelet` does not change the - Pod status upon restart, and Pods do not re-run startup probes after the `kubelet` - restarts. -pr_body: "" +pr: 134746 +releasenote: + text: Added the `ChangeContainerStatusOnKubeletRestart` feature gate, which defaults + to disabled. When the feature gate is disabled, `kubelet` does not change the + Pod status upon restart, and Pods do not re-run startup probes after the `kubelet` + restarts. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134760-map.yaml b/releases/release-1.35/release-notes/maps/pr-134760-map.yaml index 9d4102bc004..1408d2cfb7b 100644 --- a/releases/release-1.35/release-notes/maps/pr-134760-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134760-map.yaml @@ -1,5 +1,5 @@ -pr: 134760 -releasenote: - text: Added the `Step` field to the testing framework to allow volume expansion - in configurable step sizes for tests. -pr_body: "" +pr: 134760 +releasenote: + text: Added the `Step` field to the testing framework to allow volume expansion + in configurable step sizes for tests. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134769-map.yaml b/releases/release-1.35/release-notes/maps/pr-134769-map.yaml index 0c1cfc46424..caba113ba02 100644 --- a/releases/release-1.35/release-notes/maps/pr-134769-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134769-map.yaml @@ -1,6 +1,6 @@ -pr: 134769 -releasenote: - text: |- - Fixed a bug where Job status updates fail after resuming a Job that was previously started and suspended. - The error message was: `status.startTime: Required value: startTime cannot be removed for unsuspended job`. -pr_body: "" +pr: 134769 +releasenote: + text: |- + Fixed a bug where Job status updates fail after resuming a Job that was previously started and suspended. + The error message was: `status.startTime: Required value: startTime cannot be removed for unsuspended job`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134777-map.yaml b/releases/release-1.35/release-notes/maps/pr-134777-map.yaml index 9e1282e4ebc..170f9cc62cb 100644 --- a/releases/release-1.35/release-notes/maps/pr-134777-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134777-map.yaml @@ -1,4 +1,4 @@ -pr: 134777 -releasenote: - text: Promoted `kubectl` command headers to stable. -pr_body: "" +pr: 134777 +releasenote: + text: Promoted `kubectl` command headers to stable. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134779-map.yaml b/releases/release-1.35/release-notes/maps/pr-134779-map.yaml index cfb022a8640..f5be3ad55a2 100644 --- a/releases/release-1.35/release-notes/maps/pr-134779-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134779-map.yaml @@ -1,5 +1,5 @@ -pr: 134779 -releasenote: - text: '`kubeadm`: Updated the supported etcd version to `v3.5.24` for control plane - versions `v1.32`, `v1.33`, and `v1.34`.' -pr_body: "" +pr: 134779 +releasenote: + text: '`kubeadm`: Updated the supported etcd version to `v3.5.24` for control plane + versions `v1.32`, `v1.33`, and `v1.34`.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134780-map.yaml b/releases/release-1.35/release-notes/maps/pr-134780-map.yaml index 4d7e25ceba4..374dd3126c8 100644 --- a/releases/release-1.35/release-notes/maps/pr-134780-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134780-map.yaml @@ -1,4 +1,4 @@ -pr: 134780 -releasenote: - text: Updated the etcd client library to `v3.6.5`. -pr_body: "" +pr: 134780 +releasenote: + text: Updated the etcd client library to `v3.6.5`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134781-map.yaml b/releases/release-1.35/release-notes/maps/pr-134781-map.yaml index 3e9a1cfe6c4..e9f22c9a268 100644 --- a/releases/release-1.35/release-notes/maps/pr-134781-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134781-map.yaml @@ -1,5 +1,5 @@ -pr: 134781 -releasenote: - text: '`kubeadm`: Removed the `WaitForAllControlPlaneComponents` feature gate, which - graduated to GA in `v1.34` and was locked to enabled by default.' -pr_body: "" +pr: 134781 +releasenote: + text: '`kubeadm`: Removed the `WaitForAllControlPlaneComponents` feature gate, which + graduated to GA in `v1.34` and was locked to enabled by default.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134782-map.yaml b/releases/release-1.35/release-notes/maps/pr-134782-map.yaml index b3a3612dcf0..625df9d6e83 100644 --- a/releases/release-1.35/release-notes/maps/pr-134782-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134782-map.yaml @@ -1,5 +1,5 @@ -pr: 134782 -releasenote: - text: Dropped support for `certificates/v1beta1` `CertificateSigningRequest` in - `kubectl`. -pr_body: "" +pr: 134782 +releasenote: + text: Dropped support for `certificates/v1beta1` `CertificateSigningRequest` in + `kubectl`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134784-map.yaml b/releases/release-1.35/release-notes/maps/pr-134784-map.yaml index aed6f0bc7d7..3a1655a117c 100644 --- a/releases/release-1.35/release-notes/maps/pr-134784-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134784-map.yaml @@ -1,7 +1,7 @@ -pr: 134784 -releasenote: - text: |- - Added the `StorageVersionMigration` `v1beta1` API and removed the `v1alpha1` API. - - ACTION REQUIRED: The `v1alpha1` API is no longer supported. Users must remove any `v1alpha1` resources before upgrading. -pr_body: "" +pr: 134784 +releasenote: + text: |- + Added the `StorageVersionMigration` `v1beta1` API and removed the `v1alpha1` API. + + ACTION REQUIRED: The `v1alpha1` API is no longer supported. Users must remove any `v1alpha1` resources before upgrading. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134793-map.yaml b/releases/release-1.35/release-notes/maps/pr-134793-map.yaml index 06c163a2024..3db8335882d 100644 --- a/releases/release-1.35/release-notes/maps/pr-134793-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134793-map.yaml @@ -1,5 +1,5 @@ -pr: 134793 -releasenote: - text: Fixed an issue where requests for a config `FromClass` in the `ResourceClaim` - status were not referenced. -pr_body: "" +pr: 134793 +releasenote: + text: Fixed an issue where requests for a config `FromClass` in the `ResourceClaim` + status were not referenced. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134803-map.yaml b/releases/release-1.35/release-notes/maps/pr-134803-map.yaml index b5b17899a0c..4613dbb7e02 100644 --- a/releases/release-1.35/release-notes/maps/pr-134803-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134803-map.yaml @@ -1,4 +1,4 @@ -pr: 134803 -releasenote: - text: Implemented constrained impersonation as described in [KEP-5284](https://kep.k8s.io/5284). -pr_body: "" +pr: 134803 +releasenote: + text: Implemented constrained impersonation as described in [KEP-5284](https://kep.k8s.io/5284). +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134826-map.yaml b/releases/release-1.35/release-notes/maps/pr-134826-map.yaml index 0998db0f308..87208542f25 100644 --- a/releases/release-1.35/release-notes/maps/pr-134826-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134826-map.yaml @@ -1,8 +1,8 @@ -pr: 134826 -releasenote: - text: 'CSI drivers can now opt in to receive service account tokens via the secrets - field instead of volume context by setting `spec.serviceAccountTokenInSecrets: - true` in the CSIDriver object. This prevents tokens from being exposed in logs - and other outputs. The feature is gated by the `CSIServiceAccountTokenSecrets` - feature gate (beta in `v1.35`).' -pr_body: "" +pr: 134826 +releasenote: + text: 'CSI drivers can now opt in to receive service account tokens via the secrets + field instead of volume context by setting `spec.serviceAccountTokenInSecrets: + true` in the CSIDriver object. This prevents tokens from being exposed in logs + and other outputs. The feature is gated by the `CSIServiceAccountTokenSecrets` + feature gate (beta in `v1.35`).' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134833-map.yaml b/releases/release-1.35/release-notes/maps/pr-134833-map.yaml index 0027f74debd..1d868e960dd 100644 --- a/releases/release-1.35/release-notes/maps/pr-134833-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134833-map.yaml @@ -1,5 +1,5 @@ -pr: 134833 -releasenote: - text: Fixed a panic in `kubectl api-resources` that occurred when the Discovery - Client failed. -pr_body: "" +pr: 134833 +releasenote: + text: Fixed a panic in `kubectl api-resources` that occurred when the Discovery + Client failed. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134875-map.yaml b/releases/release-1.35/release-notes/maps/pr-134875-map.yaml index f0984eb9766..eca8b96676d 100644 --- a/releases/release-1.35/release-notes/maps/pr-134875-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134875-map.yaml @@ -1,6 +1,6 @@ -pr: 134875 -releasenote: - text: Fixed a bug where the health of a DRA resource was not reported in the Pod - status if the resource claim was generated from a template or used a different - local name in the Pod spec. -pr_body: "" +pr: 134875 +releasenote: + text: Fixed a bug where the health of a DRA resource was not reported in the Pod + status if the resource claim was generated from a template or used a different + local name in the Pod spec. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134905-map.yaml b/releases/release-1.35/release-notes/maps/pr-134905-map.yaml index 0828a393723..c80bd7fb583 100644 --- a/releases/release-1.35/release-notes/maps/pr-134905-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134905-map.yaml @@ -1,6 +1,6 @@ -pr: 134905 -releasenote: - text: |- - Scheduler: Added the `bindingTimeout` argument to the DynamicResources plugin configuration, allowing customization of the wait duration in `PreBind` for device binding conditions. - Defaults to 10 minutes when `DRADeviceBindingConditions` and `DRAResourceClaimDeviceStatus` are both enabled. -pr_body: "" +pr: 134905 +releasenote: + text: |- + Scheduler: Added the `bindingTimeout` argument to the DynamicResources plugin configuration, allowing customization of the wait duration in `PreBind` for device binding conditions. + Defaults to 10 minutes when `DRADeviceBindingConditions` and `DRAResourceClaimDeviceStatus` are both enabled. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134906-map.yaml b/releases/release-1.35/release-notes/maps/pr-134906-map.yaml index 580f44e8396..ce0a48b13b2 100644 --- a/releases/release-1.35/release-notes/maps/pr-134906-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134906-map.yaml @@ -1,7 +1,7 @@ -pr: 134906 -releasenote: - text: |- - `kubeadm`: Added a preflight check `ContainerRuntimeVersion` to validate if the installed container runtime supports the `RuntimeConfig` gRPC method. If unsupported, `kubeadm` prints a warning message. - - Starting with Kubernetes `v1.36`, `kubelet` might refuse to start if the CRI runtime does not support this feature. More information can be found at the [Kubernetes blog](https://kubernetes.io/blog/2025/09/12/kubernetes-v1-34-cri-cgroup-driver-lookup-now-ga/). -pr_body: "" +pr: 134906 +releasenote: + text: |- + `kubeadm`: Added a preflight check `ContainerRuntimeVersion` to validate if the installed container runtime supports the `RuntimeConfig` gRPC method. If unsupported, `kubeadm` prints a warning message. + + Starting with Kubernetes `v1.36`, `kubelet` might refuse to start if the CRI runtime does not support this feature. More information can be found at the [Kubernetes blog](https://kubernetes.io/blog/2025/09/12/kubernetes-v1-34-cri-cgroup-driver-lookup-now-ga/). +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134913-map.yaml b/releases/release-1.35/release-notes/maps/pr-134913-map.yaml index 557c7cbc43f..a0a3df753a6 100644 --- a/releases/release-1.35/release-notes/maps/pr-134913-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134913-map.yaml @@ -1,4 +1,4 @@ -pr: 134913 -releasenote: - text: Dropped support for `discovery/v1beta1` `EndpointSlice` in `kubectl`. -pr_body: "" +pr: 134913 +releasenote: + text: Dropped support for `discovery/v1beta1` `EndpointSlice` in `kubectl`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134948-map.yaml b/releases/release-1.35/release-notes/maps/pr-134948-map.yaml index b416908139d..44a543e82c5 100644 --- a/releases/release-1.35/release-notes/maps/pr-134948-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134948-map.yaml @@ -1,4 +1,4 @@ -pr: 134948 -releasenote: - text: Promoted `PodObservedGenerationTracking` to GA. -pr_body: "" +pr: 134948 +releasenote: + text: Promoted `PodObservedGenerationTracking` to GA. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134949-map.yaml b/releases/release-1.35/release-notes/maps/pr-134949-map.yaml index 829badb6c8b..3cc573f954a 100644 --- a/releases/release-1.35/release-notes/maps/pr-134949-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134949-map.yaml @@ -1,4 +1,4 @@ -pr: 134949 -releasenote: - text: Promoted `InPlacePodVerticalScaling` to GA. -pr_body: "" +pr: 134949 +releasenote: + text: Promoted `InPlacePodVerticalScaling` to GA. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134956-map.yaml b/releases/release-1.35/release-notes/maps/pr-134956-map.yaml index a2c5cd3cc70..11693626d65 100644 --- a/releases/release-1.35/release-notes/maps/pr-134956-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134956-map.yaml @@ -1,5 +1,5 @@ -pr: 134956 -releasenote: - text: Removed `BlockOwnerDeletion` from `ResourceClaim` created from - `ResourceClaimTemplate` and from `extendedResourceClaim` created by the `scheduler`. -pr_body: "" +pr: 134956 +releasenote: + text: Removed `BlockOwnerDeletion` from `ResourceClaim` created from + `ResourceClaimTemplate` and from `extendedResourceClaim` created by the `scheduler`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134962-map.yaml b/releases/release-1.35/release-notes/maps/pr-134962-map.yaml index 4e8473e437e..24f469c71d9 100644 --- a/releases/release-1.35/release-notes/maps/pr-134962-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134962-map.yaml @@ -1,5 +1,5 @@ -pr: 134962 -releasenote: - text: Fixed an issue with setting `distinctAttribute=nil` when the `DRAConsumableCapacity` - feature gate is disabled. -pr_body: "" +pr: 134962 +releasenote: + text: Fixed an issue with setting `distinctAttribute=nil` when the `DRAConsumableCapacity` + feature gate is disabled. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134964-map.yaml b/releases/release-1.35/release-notes/maps/pr-134964-map.yaml index 058156a2ff0..9efbe55284d 100644 --- a/releases/release-1.35/release-notes/maps/pr-134964-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134964-map.yaml @@ -1,5 +1,5 @@ -pr: 134964 -releasenote: - text: Dropped `DeviceBindingConditions` fields when the `DRADeviceBindingConditions` - feature gate is not enabled and not in use. -pr_body: "" +pr: 134964 +releasenote: + text: Dropped `DeviceBindingConditions` fields when the `DRADeviceBindingConditions` + feature gate is not enabled and not in use. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134984-map.yaml b/releases/release-1.35/release-notes/maps/pr-134984-map.yaml index d80f8d51261..65540fcfb96 100644 --- a/releases/release-1.35/release-notes/maps/pr-134984-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134984-map.yaml @@ -1,4 +1,4 @@ -pr: 134984 -releasenote: - text: Added `ObservedGeneration` to CustomResourceDefinition conditions. -pr_body: "" +pr: 134984 +releasenote: + text: Added `ObservedGeneration` to CustomResourceDefinition conditions. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134994-map.yaml b/releases/release-1.35/release-notes/maps/pr-134994-map.yaml index 9797ae05afb..a95c4b2dc14 100644 --- a/releases/release-1.35/release-notes/maps/pr-134994-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134994-map.yaml @@ -1,5 +1,5 @@ -pr: 134994 -releasenote: - text: Removed the `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` - feature gates, which were locked since `v1.32`. -pr_body: "" +pr: 134994 +releasenote: + text: Removed the `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` + feature gates, which were locked since `v1.32`. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-134995-map.yaml b/releases/release-1.35/release-notes/maps/pr-134995-map.yaml index 618e375008e..a04302f4f84 100644 --- a/releases/release-1.35/release-notes/maps/pr-134995-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-134995-map.yaml @@ -1,5 +1,5 @@ -pr: 134995 -releasenote: - text: Introduced a structured and versioned `v1alpha1` response format for the `flagz` - endpoint. -pr_body: "" +pr: 134995 +releasenote: + text: Introduced a structured and versioned `v1alpha1` response format for the `flagz` + endpoint. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-135003-map.yaml b/releases/release-1.35/release-notes/maps/pr-135003-map.yaml index db98cb71e1c..660cf29963d 100644 --- a/releases/release-1.35/release-notes/maps/pr-135003-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-135003-map.yaml @@ -1,5 +1,5 @@ -pr: 135003 -releasenote: - text: Added `kubectl kuberc view` and `kubectl kuberc set` commands to perform operations - against the `kuberc` file. -pr_body: "" +pr: 135003 +releasenote: + text: Added `kubectl kuberc view` and `kubectl kuberc set` commands to perform operations + against the `kuberc` file. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-135007-map.yaml b/releases/release-1.35/release-notes/maps/pr-135007-map.yaml index 9fcec897f74..5eeb58f2f7a 100644 --- a/releases/release-1.35/release-notes/maps/pr-135007-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-135007-map.yaml @@ -1,6 +1,6 @@ -pr: 135007 -releasenote: - text: The scheduler now clears the `nominatedNodeName` field for Pods upon scheduling - or binding failure. External components, such as Cluster Autoscaler and Karpenter, - should not overwrite this field. -pr_body: "" +pr: 135007 +releasenote: + text: The scheduler now clears the `nominatedNodeName` field for Pods upon scheduling + or binding failure. External components, such as Cluster Autoscaler and Karpenter, + should not overwrite this field. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-135017-map.yaml b/releases/release-1.35/release-notes/maps/pr-135017-map.yaml index bd5f0df2bcc..d7c34eaba35 100644 --- a/releases/release-1.35/release-notes/maps/pr-135017-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-135017-map.yaml @@ -1,7 +1,7 @@ -pr: 135017 -releasenote: - text: '`kube-controller-manager`: Fixed a `v1.34` regression that triggered a spurious - rollout of existing StatefulSets when upgrading the control plane from `v1.33` - to `v1.34`. This fix is guarded by the `StatefulSetSemanticRevisionComparison` - feature gate, which is enabled by default.' -pr_body: "" +pr: 135017 +releasenote: + text: '`kube-controller-manager`: Fixed a `v1.34` regression that triggered a spurious + rollout of existing StatefulSets when upgrading the control plane from `v1.33` + to `v1.34`. This fix is guarded by the `StatefulSetSemanticRevisionComparison` + feature gate, which is enabled by default.' +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-135059-map.yaml b/releases/release-1.35/release-notes/maps/pr-135059-map.yaml index 61fc3d10fc4..abf26b760ca 100644 --- a/releases/release-1.35/release-notes/maps/pr-135059-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-135059-map.yaml @@ -1,5 +1,5 @@ -pr: 135059 -releasenote: - text: After fixing regressions detected in `v1.34`, the `SchedulerAsyncAPICalls` - feature gate was re-enabled by default. -pr_body: "" +pr: 135059 +releasenote: + text: After fixing regressions detected in `v1.34`, the `SchedulerAsyncAPICalls` + feature gate was re-enabled by default. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-135080-map.yaml b/releases/release-1.35/release-notes/maps/pr-135080-map.yaml index 67694db6a7a..16e34038b50 100644 --- a/releases/release-1.35/release-notes/maps/pr-135080-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-135080-map.yaml @@ -1,5 +1,5 @@ -pr: 135080 -releasenote: - text: Promoted the `JobManagedBy` feature to general availability. The `JobManagedBy` - feature gate was locked to `true` and will be removed in a future Kubernetes release. -pr_body: "" +pr: 135080 +releasenote: + text: Promoted the `JobManagedBy` feature to general availability. The `JobManagedBy` + feature gate was locked to `true` and will be removed in a future Kubernetes release. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-135081-map.yaml b/releases/release-1.35/release-notes/maps/pr-135081-map.yaml index 7d73a6e6d0b..2adff5424c2 100644 --- a/releases/release-1.35/release-notes/maps/pr-135081-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-135081-map.yaml @@ -1,5 +1,5 @@ -pr: 135081 -releasenote: - text: Reduced event spam during volume operation errors in the Portworx in-tree - driver. -pr_body: "" +pr: 135081 +releasenote: + text: Reduced event spam during volume operation errors in the Portworx in-tree + driver. +pr_body: "" diff --git a/releases/release-1.35/release-notes/maps/pr-135084-map.yaml b/releases/release-1.35/release-notes/maps/pr-135084-map.yaml index 7cd9f60035a..e81ae764270 100644 --- a/releases/release-1.35/release-notes/maps/pr-135084-map.yaml +++ b/releases/release-1.35/release-notes/maps/pr-135084-map.yaml @@ -1,5 +1,5 @@ -pr: 135084 -releasenote: - text: Pod resize now only allows CPU and memory resources; other resource types - are forbidden. -pr_body: "" +pr: 135084 +releasenote: + text: Pod resize now only allows CPU and memory resources; other resource types + are forbidden. +pr_body: "" diff --git a/releases/release-1.35/release-notes/release-notes-draft.json b/releases/release-1.35/release-notes/release-notes-draft.json index 87890b4f550..25a2754527c 100644 --- a/releases/release-1.35/release-notes/release-notes-draft.json +++ b/releases/release-1.35/release-notes/release-notes-draft.json @@ -1,4278 +1,4278 @@ -{ - "117160": { - "commit": "6958161aa94617357d14fc9b24637f4587296ff1", - "text": "Updated `kubectl get` and `kubectl describe` human-readable output to no longer show counts for referenced tokens and secrets.", - "markdown": "Updated `kubectl get` and `kubectl describe` human-readable output to no longer show counts for referenced tokens and secrets. ([#117160](https://github.com/kubernetes/kubernetes/pull/117160), [@liggitt](https://github.com/liggitt)) [SIG CLI and Testing]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/117160", - "pr_number": 117160, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "122140": { - "commit": "cc3935783372bc6019e150ba9b91f87ac6970c5b", - "text": "Added support for Pods to reference the same `PersistentVolumeClaim` across multiple volumes.", - "markdown": "Added support for Pods to reference the same `PersistentVolumeClaim` across multiple volumes. ([#122140](https://github.com/kubernetes/kubernetes/pull/122140), [@huww98](https://github.com/huww98)) [SIG Node, Storage and Testing]", - "author": "huww98", - "author_url": "https://github.com/huww98", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/122140", - "pr_number": 122140, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "123642": { - "commit": "b4d4cc93840fa30a305b013acd1b1060ed3f8ee2", - "text": "The JWT authenticator in `kube-apiserver` now reports the following metrics when the `StructuredAuthenticationConfiguration` feature gate is enabled:\n- `apiserver_authentication_jwt_authenticator_jwks_fetch_last_timestamp_seconds`\n- `apiserver_authentication_jwt_authenticator_jwks_fetch_last_key_set_info`.", - "markdown": "The JWT authenticator in `kube-apiserver` now reports the following metrics when the `StructuredAuthenticationConfiguration` feature gate is enabled:\n - `apiserver_authentication_jwt_authenticator_jwks_fetch_last_timestamp_seconds`\n - `apiserver_authentication_jwt_authenticator_jwks_fetch_last_key_set_info`. ([#123642](https://github.com/kubernetes/kubernetes/pull/123642), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/123642", - "pr_number": 123642, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "125912": { - "commit": "6c91840fed8f53f7ea4dffe5e6b6ab95144d6aad", - "text": "Migrated the `CPUManager` to contextual logging.", - "markdown": "Migrated the `CPUManager` to contextual logging. ([#125912](https://github.com/kubernetes/kubernetes/pull/125912), [@ffromani](https://github.com/ffromani))", - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/125912", - "pr_number": 125912, - "areas": [ - "kubelet", - "logging" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "126979": { - "commit": "b9a8dffa51ece80efb9584c67bc3ac9d03fb6f34", - "text": "Fixed `replicaCount` calculation exceeding max `int32`.", - "markdown": "Fixed `replicaCount` calculation exceeding max `int32`. ([#126979](https://github.com/kubernetes/kubernetes/pull/126979), [@omerap12](https://github.com/omerap12)) [SIG Apps and Autoscaling]", - "author": "omerap12", - "author_url": "https://github.com/omerap12", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/126979", - "pr_number": 126979, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "autoscaling" - ], - "duplicate": true, - "do_not_publish": true, - "is_mapped": true - }, - "130548": { - "commit": "6b94b09f0e201bd0592e7a3863cecfa9bc4b4755", - "text": "Bumped addon manager to use `kubectl` version `v1.32.2`.", - "markdown": "Bumped addon manager to use `kubectl` version `v1.32.2`. ([#130548](https://github.com/kubernetes/kubernetes/pull/130548), [@Jefftree](https://github.com/Jefftree)) [SIG Cloud Provider, Scalability and Testing]", - "author": "Jefftree", - "author_url": "https://github.com/Jefftree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130548", - "pr_number": 130548, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "scalability", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "130551": { - "commit": "90a24cf81d92b8d3e9f3946b0e3ae235eeadb545", - "text": "Updated sandbox ordering to use by attempt count or creation time.", - "markdown": "Updated sandbox ordering to use by attempt count or creation time. ([#130551](https://github.com/kubernetes/kubernetes/pull/130551), [@yylt](https://github.com/yylt))", - "author": "yylt", - "author_url": "https://github.com/yylt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130551", - "pr_number": 130551, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "do_not_publish": true, - "is_mapped": true - }, - "130951": { - "commit": "fa9071302f88a359ee53eaf118fe3522c16d9cac", - "text": "Added metrics for the `MaxUnavailable` feature in `StatefulSet`.", - "markdown": "Added metrics for the `MaxUnavailable` feature in `StatefulSet`. ([#130951](https://github.com/kubernetes/kubernetes/pull/130951), [@Edwinhr716](https://github.com/Edwinhr716)) [SIG Apps and Instrumentation]", - "author": "Edwinhr716", - "author_url": "https://github.com/Edwinhr716", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/130951", - "pr_number": 130951, - "areas": [ - "stable-metrics" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "131092": { - "commit": "c600ebb74bec8440f2a428de15aba5e4b2c23f0e", - "text": "metrics: Excluded `dryRun` requests from `apiserver_request_sli_duration_seconds`.", - "markdown": "Metrics: Excluded `dryRun` requests from `apiserver_request_sli_duration_seconds`. ([#131092](https://github.com/kubernetes/kubernetes/pull/131092), [@aldudko](https://github.com/aldudko)) [SIG API Machinery and Instrumentation]", - "author": "aldudko", - "author_url": "https://github.com/aldudko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131092", - "pr_number": 131092, - "areas": [ - "apiserver" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "instrumentation" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "131411": { - "commit": "10b97337f7d6deb5cc22c223f852eaf5547923d0", - "text": "kube-apiserver: Made sure that when `--requestheader-client-ca-file` and `--client-ca-file` contain overlapping certificates, `--requestheader-allowed-names` must be specified so that regular client certificates cannot set authenticating proxy headers for arbitrary users.", - "markdown": "Kube-apiserver: Made sure that when `--requestheader-client-ca-file` and `--client-ca-file` contain overlapping certificates, `--requestheader-allowed-names` must be specified so that regular client certificates cannot set authenticating proxy headers for arbitrary users. ([#131411](https://github.com/kubernetes/kubernetes/pull/131411), [@ballista01](https://github.com/ballista01)) [SIG API Machinery, Auth and Security]", - "author": "ballista01", - "author_url": "https://github.com/ballista01", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131411", - "pr_number": 131411, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "security" - ], - "duplicate": true, - "is_mapped": true - }, - "131755": { - "commit": "69e637f24c23764973e30491afab202c0d083399", - "text": "Generated OpenAPI model packages for API types into `zz_generated.model_name.go` files, accessible via the `OpenAPIModelName()` function. This allows API authors to declare desired OpenAPI model packages instead of relying on the Go package path of API types.", - "markdown": "Generated OpenAPI model packages for API types into `zz_generated.model_name.go` files, accessible via the `OpenAPIModelName()` function. This allows API authors to declare desired OpenAPI model packages instead of relying on the Go package path of API types. ([#131755](https://github.com/kubernetes/kubernetes/pull/131755), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]", - "author": "jpbetz", - "author_url": "https://github.com/jpbetz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/131755", - "pr_number": 131755, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "scheduling", - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "132157": { - "commit": "af70ebcbf505bd9c2b879a8a7081724435a9fb06", - "text": "Removed the `UserNamespacesPodSecurityStandards` feature gate. The minimum supported Kubernetes version for `kubelet` is now `v1.31`, so the gate is no longer needed.", - "markdown": "Removed the `UserNamespacesPodSecurityStandards` feature gate. The minimum supported Kubernetes version for `kubelet` is now `v1.31`, so the gate is no longer needed. ([#132157](https://github.com/kubernetes/kubernetes/pull/132157), [@haircommander](https://github.com/haircommander)) [SIG Auth, Node and Testing]", - "author": "haircommander", - "author_url": "https://github.com/haircommander", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132157", - "pr_number": 132157, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "132240": { - "commit": "645073f978ed0d7308ad3be453a36a8e99006b3c", - "text": "Improved throughput in the `real-FIFO` queue used by `informers` and `controllers` by adding batch handling for processing watch events.", - "markdown": "Improved throughput in the `real-FIFO` queue used by `informers` and `controllers` by adding batch handling for processing watch events. ([#132240](https://github.com/kubernetes/kubernetes/pull/132240), [@yue9944882](https://github.com/yue9944882)) [SIG API Machinery, Scheduling and Storage]", - "author": "yue9944882", - "author_url": "https://github.com/yue9944882", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132240", - "pr_number": 132240, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132288": { - "commit": "546519987d48d02e6a493a339c064dfd39be5e7f", - "text": "Upgraded `CoreDNS` to `v1.12.3`.", - "markdown": "Upgraded `CoreDNS` to `v1.12.3`. ([#132288](https://github.com/kubernetes/kubernetes/pull/132288), [@thevilledev](https://github.com/thevilledev)) [SIG Cloud Provider and Cluster Lifecycle]", - "author": "thevilledev", - "author_url": "https://github.com/thevilledev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132288", - "pr_number": 132288, - "areas": [ - "provider/gcp", - "kubeadm", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "cluster-lifecycle" - ], - "duplicate": true, - "is_mapped": true - }, - "132549": { - "commit": "4d15270bd77735bcdf3cb432864d1e3537360faa", - "text": "Fixed a bug that caused duplicate validation when updating `PersistentVolumeClaims`, `VolumeAttachments` and `VolumeAttributesClasses`.", - "markdown": "Fixed a bug that caused duplicate validation when updating `PersistentVolumeClaims`, `VolumeAttachments` and `VolumeAttributesClasses`. ([#132549](https://github.com/kubernetes/kubernetes/pull/132549), [@gavinkflam](https://github.com/gavinkflam))", - "author": "gavinkflam", - "author_url": "https://github.com/gavinkflam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132549", - "pr_number": 132549, - "kinds": [ - "bug" - ], - "sigs": [ - "storage" - ], - "is_mapped": true - }, - "132550": { - "commit": "b54c00b2adc261d079630b368138429d5dfc768f", - "text": "Fixed a bug that caused duplicate validation when updating `Role` and `RoleBinding` resources.", - "markdown": "Fixed a bug that caused duplicate validation when updating `Role` and `RoleBinding` resources. ([#132550](https://github.com/kubernetes/kubernetes/pull/132550), [@gavinkflam](https://github.com/gavinkflam))", - "author": "gavinkflam", - "author_url": "https://github.com/gavinkflam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132550", - "pr_number": 132550, - "kinds": [ - "bug" - ], - "sigs": [ - "auth" - ], - "is_mapped": true - }, - "132578": { - "commit": "c0d2bcdf718bfb2c529e14a086919f2e93aa8ddc", - "text": "Improved the `FreeDiskSpaceFailed` warning event to provide more actionable details when image garbage collection fails to free enough disk space. Example: `Insufficient free disk space on the node's image filesystem (95.0% of 10.0 GiB used). Failed to free sufficient space by deleting unused images. Consider resizing the disk or deleting unused files.`.", - "markdown": "Improved the `FreeDiskSpaceFailed` warning event to provide more actionable details when image garbage collection fails to free enough disk space. Example: `Insufficient free disk space on the node's image filesystem (95.0% of 10.0 GiB used). Failed to free sufficient space by deleting unused images. Consider resizing the disk or deleting unused files.`. ([#132578](https://github.com/kubernetes/kubernetes/pull/132578), [@drigz](https://github.com/drigz))", - "author": "drigz", - "author_url": "https://github.com/drigz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132578", - "pr_number": 132578, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "132606": { - "commit": "08946ca255807f800722d24b4dd2414d9193e040", - "text": "Added paths section to scheduler `statusz` endpoint.", - "markdown": "Added paths section to scheduler `statusz` endpoint. ([#132606](https://github.com/kubernetes/kubernetes/pull/132606), [@Peac36](https://github.com/Peac36)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing]", - "author": "Peac36", - "author_url": "https://github.com/Peac36", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132606", - "pr_number": 132606, - "areas": [ - "test", - "kubelet", - "kube-proxy" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "instrumentation", - "network", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132607": { - "commit": "8ec223428efcb0214258ee41651d4a93a66e437d", - "text": "Increased the coverage to 89.8%.", - "markdown": "Increased the coverage to 89.8%. ([#132607](https://github.com/kubernetes/kubernetes/pull/132607), [@ylink-lfs](https://github.com/ylink-lfs))", - "author": "ylink-lfs", - "author_url": "https://github.com/ylink-lfs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132607", - "pr_number": 132607, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "do_not_publish": true, - "is_mapped": true - }, - "132644": { - "commit": "e86c0171a736f7fe0d0b7cf6874dd02fc43fe90c", - "text": "Added a counter metric `kubelet_image_manager_ensure_image_requests_total{present_locally, pull_policy, pull_required}` that exposes details about `kubelet` ensuring an image exists on the node.", - "markdown": "Added a counter metric `kubelet_image_manager_ensure_image_requests_total{present_locally, pull_policy, pull_required}` that exposes details about `kubelet` ensuring an image exists on the node. ([#132644](https://github.com/kubernetes/kubernetes/pull/132644), [@stlaz](https://github.com/stlaz)) [SIG Auth and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/2535", - "type": "KEP" - } - ], - "author": "stlaz", - "author_url": "https://github.com/stlaz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132644", - "pr_number": 132644, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "auth", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "132663": { - "commit": "3e48146c5d3343f00d44b5177b32aa7c2993d36f", - "text": "Updated `applyconfiguration-gen` to preserve struct and field comments from source types in the generated code.", - "markdown": "Updated `applyconfiguration-gen` to preserve struct and field comments from source types in the generated code. ([#132663](https://github.com/kubernetes/kubernetes/pull/132663), [@mrIncompetent](https://github.com/mrIncompetent))", - "author": "mrIncompetent", - "author_url": "https://github.com/mrIncompetent", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132663", - "pr_number": 132663, - "areas": [ - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "132665": { - "commit": "5a720a58beade6fb96e897d95ddd94aeadf21b6b", - "text": "Updated `applyconfiguration-gen` to generate extract functions for all subresources.", - "markdown": "Updated `applyconfiguration-gen` to generate extract functions for all subresources. ([#132665](https://github.com/kubernetes/kubernetes/pull/132665), [@mrIncompetent](https://github.com/mrIncompetent))", - "author": "mrIncompetent", - "author_url": "https://github.com/mrIncompetent", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132665", - "pr_number": 132665, - "areas": [ - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "is_mapped": true - }, - "132798": { - "commit": "9254b3e14ec17fe857f923edcba0b3b806d41182", - "text": "kube-apiserver: Improved validation error messages for custom resources with CEL validation rules to include the value that failed validation.", - "markdown": "Kube-apiserver: Improved validation error messages for custom resources with CEL validation rules to include the value that failed validation. ([#132798](https://github.com/kubernetes/kubernetes/pull/132798), [@cbandy](https://github.com/cbandy))", - "author": "cbandy", - "author_url": "https://github.com/cbandy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132798", - "pr_number": 132798, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "132825": { - "commit": "790944901f4cc441bd0b80ba94191473593a9ada", - "text": "Added `WithOrigin` within `apis/core/validation` with adjusted tests.", - "markdown": "Added `WithOrigin` within `apis/core/validation` with adjusted tests. ([#132825](https://github.com/kubernetes/kubernetes/pull/132825), [@PatrickLaabs](https://github.com/PatrickLaabs))", - "author": "PatrickLaabs", - "author_url": "https://github.com/PatrickLaabs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132825", - "pr_number": 132825, - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "132927": { - "commit": "3eeb838aba6d5b311dcfb82f79bd55adfbd45f99", - "text": "DRA API: Fixed the `tolerations` field in exact and sub requests to drop properly when the `DRADeviceTaints` API is disabled.", - "markdown": "DRA API: Fixed the `tolerations` field in exact and sub requests to drop properly when the `DRADeviceTaints` API is disabled. ([#132927](https://github.com/kubernetes/kubernetes/pull/132927), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132927", - "pr_number": 132927, - "kinds": [ - "bug" - ], - "is_mapped": true - }, - "132960": { - "commit": "b86ff94014e02b31149f34159ae966bd4cbbdc12", - "text": "Fixed a bug that caused apiservers to send an inappropriate Content-Type request header to authorization, token authentication, imagepolicy admission, and audit webhooks when the alpha client-go feature gate \"ClientsPreferCBOR\" is enabled.", - "markdown": "Fixed a bug that caused apiservers to send an inappropriate Content-Type request header to authorization, token authentication, imagepolicy admission, and audit webhooks when the alpha client-go feature gate \"ClientsPreferCBOR\" is enabled. ([#132960](https://github.com/kubernetes/kubernetes/pull/132960), [@benluddy](https://github.com/benluddy)) [SIG API Machinery and Node]", - "author": "benluddy", - "author_url": "https://github.com/benluddy", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/132960", - "pr_number": 132960, - "areas": [ - "kubelet", - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "node" - ], - "duplicate": true - }, - "133026": { - "commit": "cb67d10970fac3f79513f4d748a4c825ad2940ca", - "text": "Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/dra` in favor of `google.golang.org/protobuf`.", - "markdown": "Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/dra` in favor of `google.golang.org/protobuf`. ([#133026](https://github.com/kubernetes/kubernetes/pull/133026), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery and Node]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133026", - "pr_number": 133026, - "areas": [ - "kubelet", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "node" - ], - "duplicate": true - }, - "133072": { - "commit": "031f4d541aa2c6386646d08cce809eb005985353", - "text": "Fixed a startup probe race condition that caused main containers to remain stuck in \"Initializing\" state when sidecar containers with startup probes had failed initially but succeeded on restart in pods with `restartPolicy=Never`.", - "markdown": "Fixed a startup probe race condition that caused main containers to remain stuck in \"Initializing\" state when sidecar containers with startup probes had failed initially but succeeded on restart in pods with `restartPolicy=Never`. ([#133072](https://github.com/kubernetes/kubernetes/pull/133072), [@AadiDev005](https://github.com/AadiDev005)) [SIG Node and Testing]", - "author": "AadiDev005", - "author_url": "https://github.com/AadiDev005", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133072", - "pr_number": 133072, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "133087": { - "commit": "f051670a473d8583af3397795938d37ca4ebf637", - "text": "Promoted ReplicaSet and Deployment `.status.terminatingReplicas` tracking to beta. The `DeploymentReplicaSetTerminatingReplicas` feature gate is now enabled by default.", - "markdown": "Promoted ReplicaSet and Deployment `.status.terminatingReplicas` tracking to beta. The `DeploymentReplicaSetTerminatingReplicas` feature gate is now enabled by default. ([#133087](https://github.com/kubernetes/kubernetes/pull/133087), [@atiratree](https://github.com/atiratree)) [SIG API Machinery, Apps and Testing]", - "author": "atiratree", - "author_url": "https://github.com/atiratree", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133087", - "pr_number": 133087, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true - }, - "133097": { - "commit": "ddb015f023b48d7ae6d5e24325d1a8b7054d9a9c", - "text": "Added the correct error when eviction is blocked due to the failSafe mechanism of the `DisruptionController`.", - "markdown": "Added the correct error when eviction is blocked due to the failSafe mechanism of the `DisruptionController`. ([#133097](https://github.com/kubernetes/kubernetes/pull/133097), [@kei01234kei](https://github.com/kei01234kei)) [SIG Apps and Node]", - "author": "kei01234kei", - "author_url": "https://github.com/kei01234kei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133097", - "pr_number": 133097, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "133128": { - "commit": "50e3cb3f583c6eb5d84e7f4f752a628839045657", - "text": "Promoted HPA configurable tolerance to beta. The `HPAConfigurableTolerance` feature gate has now been enabled by default.", - "markdown": "Promoted HPA configurable tolerance to beta. The `HPAConfigurableTolerance` feature gate has now been enabled by default. ([#133128](https://github.com/kubernetes/kubernetes/pull/133128), [@jm-franc](https://github.com/jm-franc)) [SIG API Machinery and Autoscaling]", - "author": "jm-franc", - "author_url": "https://github.com/jm-franc", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133128", - "pr_number": 133128, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "autoscaling" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133153": { - "commit": "7af016ec317ef4b55b73cfb372ed8021495c5988", - "text": "Promoted the `MaxUnavailableStatefulSet` feature to beta and enabling it by default.", - "markdown": "Promoted the `MaxUnavailableStatefulSet` feature to beta and enabling it by default. ([#133153](https://github.com/kubernetes/kubernetes/pull/133153), [@helayoty](https://github.com/helayoty)) [SIG API Machinery and Apps]", - "author": "helayoty", - "author_url": "https://github.com/helayoty", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133153", - "pr_number": 133153, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133172": { - "commit": "597a684bb0653a607009e97299986763ebfde020", - "text": "Moved Types in `k/k/pkg/scheduler/framework`:\n`Handle`,\n`Plugin`,\n`PreEnqueuePlugin`, `QueueSortPlugin`, `EnqueueExtensions`, `PreFilterExtensions`, `PreFilterPlugin`, `FilterPlugin`, `PostFilterPlugin`, `PreScorePlugin`, `ScorePlugin`, `ReservePlugin`, `PreBindPlugin`, `PostBindPlugin`, `PermitPlugin`, `BindPlugin`,\n`PodActivator`, `PodNominator`, `PluginsRunner`,\n`LessFunc`, `ScoreExtensions`, `NodeToStatusReader`, `NodeScoreList`, `NodeScore`, `NodePluginScores`, `PluginScore`, `NominatingMode`, `NominatingInfo`, `WaitingPod`, `PreFilterResult`, `PostFilterResult`,\n`Extender`,\n`NodeInfoLister`, `StorageInfoLister`, `SharedLister`, `ResourceSliceLister`, `DeviceClassLister`, `ResourceClaimTracker`, `SharedDRAManager`\n\nto package `k8s.io/kube-scheduler/framework`. Users should update import paths. The interfaces don't change.\n\nType `Parallelizer` in `k/k/pkg/scheduler/framework/parallelism` has been split into interface `Parallelizer` (in `k8s.io/kube-scheduler/framework`) and `struct Parallelizer` (location unchanged in k/k). Plugin developers should update the import path to staging repo.", - "markdown": "Moved Types in `k/k/pkg/scheduler/framework`:\n `Handle`,\n `Plugin`,\n `PreEnqueuePlugin`, `QueueSortPlugin`, `EnqueueExtensions`, `PreFilterExtensions`, `PreFilterPlugin`, `FilterPlugin`, `PostFilterPlugin`, `PreScorePlugin`, `ScorePlugin`, `ReservePlugin`, `PreBindPlugin`, `PostBindPlugin`, `PermitPlugin`, `BindPlugin`,\n `PodActivator`, `PodNominator`, `PluginsRunner`,\n `LessFunc`, `ScoreExtensions`, `NodeToStatusReader`, `NodeScoreList`, `NodeScore`, `NodePluginScores`, `PluginScore`, `NominatingMode`, `NominatingInfo`, `WaitingPod`, `PreFilterResult`, `PostFilterResult`,\n `Extender`,\n `NodeInfoLister`, `StorageInfoLister`, `SharedLister`, `ResourceSliceLister`, `DeviceClassLister`, `ResourceClaimTracker`, `SharedDRAManager`\n \n to package `k8s.io/kube-scheduler/framework`. Users should update import paths. The interfaces don't change.\n \n Type `Parallelizer` in `k/k/pkg/scheduler/framework/parallelism` has been split into interface `Parallelizer` (in `k8s.io/kube-scheduler/framework`) and `struct Parallelizer` (location unchanged in k/k). Plugin developers should update the import path to staging repo. ([#133172](https://github.com/kubernetes/kubernetes/pull/133172), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Release, Scheduling, Storage and Testing]", - "author": "ania-borowiec", - "author_url": "https://github.com/ania-borowiec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133172", - "pr_number": 133172, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "release", - "scheduling", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "133190": { - "commit": "243d8c000e451da6f0e8f80704db5d5f672d3d18", - "text": "Updated the `/statusz` page for `kube-proxy` to include a list of exposed endpoints, making debugging and introspection easier.", - "markdown": "Updated the `/statusz` page for `kube-proxy` to include a list of exposed endpoints, making debugging and introspection easier. ([#133190](https://github.com/kubernetes/kubernetes/pull/133190), [@aman4433](https://github.com/aman4433)) [SIG Network and Node]", - "author": "aman4433", - "author_url": "https://github.com/aman4433", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133190", - "pr_number": 133190, - "areas": [ - "kubelet", - "kube-proxy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network", - "node" - ], - "duplicate": true, - "is_mapped": true - }, - "133211": { - "commit": "4cfdb209fbe6b6085efa3dab87fc60f25662cf3b", - "text": "Added remote runtime and image `Close()` method to be able to close the connection.", - "markdown": "Added remote runtime and image `Close()` method to be able to close the connection. ([#133211](https://github.com/kubernetes/kubernetes/pull/133211), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133211", - "pr_number": 133211, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true - }, - "133239": { - "commit": "c4fdf5f0272616eb18b38452b18c36073b9c2a41", - "text": "Added `paths` section to kubelet `statusz` endpoint.", - "markdown": "Added `paths` section to kubelet `statusz` endpoint. ([#133239](https://github.com/kubernetes/kubernetes/pull/133239), [@Peac36](https://github.com/Peac36))", - "author": "Peac36", - "author_url": "https://github.com/Peac36", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133239", - "pr_number": 133239, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "133323": { - "commit": "817534d78188e57e9e71618bb17d3e19a48d88fa", - "text": "Updated `kubectl auth reconcile` to retry reconciliation when a conflict error occurs.", - "markdown": "Updated `kubectl auth reconcile` to retry reconciliation when a conflict error occurs. ([#133323](https://github.com/kubernetes/kubernetes/pull/133323), [@liggitt](https://github.com/liggitt)) [SIG Auth and CLI]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133323", - "pr_number": 133323, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "auth", - "cli" - ], - "duplicate": true, - "is_mapped": true - }, - "133327": { - "commit": "d9c4a092f5325ab0a4832b72111f1f0fa5966518", - "text": "Enabled `kubectl get -o kyaml` by default. To disable it, set `KUBECTL_KYAML=false`.", - "markdown": "Enabled `kubectl get -o kyaml` by default. To disable it, set `KUBECTL_KYAML=false`. ([#133327](https://github.com/kubernetes/kubernetes/pull/133327), [@thockin](https://github.com/thockin))", - "author": "thockin", - "author_url": "https://github.com/thockin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133327", - "pr_number": 133327, - "areas": [ - "kubectl" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133338": { - "commit": "52f45c822fff45caae5eb22eff13576e8551f0ce", - "text": "Fixed an issue where the default `serviceCIDR` controller did not log events because the event broadcaster was shutdown during initialization.", - "markdown": "Fixed an issue where the default `serviceCIDR` controller did not log events because the event broadcaster was shutdown during initialization. ([#133338](https://github.com/kubernetes/kubernetes/pull/133338), [@aojea](https://github.com/aojea))", - "author": "aojea", - "author_url": "https://github.com/aojea", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133338", - "pr_number": 133338, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "133357": { - "commit": "954ac21c6c8b2bc77666373d5c4f5b68603a8e50", - "text": "Added `kubelet` stress test for pod cleanup when rejection due to `VolumeAttachmentLimitExceeded`.", - "markdown": "Added `kubelet` stress test for pod cleanup when rejection due to `VolumeAttachmentLimitExceeded`. ([#133357](https://github.com/kubernetes/kubernetes/pull/133357), [@torredil](https://github.com/torredil)) [SIG Node and Storage]", - "author": "torredil", - "author_url": "https://github.com/torredil", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133357", - "pr_number": 133357, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "storage" - ], - "feature": true, - "duplicate": true, - "do_not_publish": true, - "is_mapped": true - }, - "133358": { - "commit": "338d035cd44b4eb6f26073ea6d996f02f7716289", - "text": "kube-apiserver: Fixed an issue where passing invalid `DeleteOptions` incorrectly returned a 500 status instead of 400.", - "markdown": "Kube-apiserver: Fixed an issue where passing invalid `DeleteOptions` incorrectly returned a 500 status instead of 400. ([#133358](https://github.com/kubernetes/kubernetes/pull/133358), [@ostrain](https://github.com/ostrain))", - "author": "ostrain", - "author_url": "https://github.com/ostrain", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133358", - "pr_number": 133358, - "areas": [ - "apiserver" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "133363": { - "commit": "d602326b87769c5db478fe84f4ddea98b84c53f2", - "text": "Introduced support for using an implicit extended resource name derived from the device class (`deviceclass.resource.kubernetes.io/\u003cdevice-class-name\u003e`) to request DRA devices matching that class.", - "markdown": "Introduced support for using an implicit extended resource name derived from the device class (`deviceclass.resource.kubernetes.io/\u003cdevice-class-name\u003e`) to request DRA devices matching that class. ([#133363](https://github.com/kubernetes/kubernetes/pull/133363), [@yliaog](https://github.com/yliaog)) [SIG Node, Scheduling and Testing]", - "author": "yliaog", - "author_url": "https://github.com/yliaog", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133363", - "pr_number": 133363, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "133373": { - "commit": "9dcfb3d04b02d1e9d50563d56de965d9ed332564", - "text": "Fixed the kubelet to honor the `userNamespaces.idsPerPod` configuration, which was previously ignored.", - "markdown": "Fixed the kubelet to honor the `userNamespaces.idsPerPod` configuration, which was previously ignored. ([#133373](https://github.com/kubernetes/kubernetes/pull/133373), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Node and Testing]", - "author": "AkihiroSuda", - "author_url": "https://github.com/AkihiroSuda", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133373", - "pr_number": 133373, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "133394": { - "commit": "d9405d9eafb8a1af5d6c20efc3f4b3d7c2ddd02a", - "text": "Introduced end-to-end tests to verify component invariant metrics across the entire test suite.", - "markdown": "Introduced end-to-end tests to verify component invariant metrics across the entire test suite. ([#133394](https://github.com/kubernetes/kubernetes/pull/133394), [@BenTheElder](https://github.com/BenTheElder))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/5514", - "type": "external" - } - ], - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133394", - "pr_number": 133394, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "testing" - ], - "feature": true, - "is_mapped": true - }, - "133415": { - "commit": "57421717813602b94132186b28ac3b2ee0bb4e09", - "text": "Improved HPA performance when using container-specific resource metrics by optimizing container lookup logic to exit early once the target container is found, reducing unnecessary iterations through all containers in a pod.", - "markdown": "Improved HPA performance when using container-specific resource metrics by optimizing container lookup logic to exit early once the target container is found, reducing unnecessary iterations through all containers in a pod. ([#133415](https://github.com/kubernetes/kubernetes/pull/133415), [@AadiDev005](https://github.com/AadiDev005)) [SIG Apps and Autoscaling]", - "author": "AadiDev005", - "author_url": "https://github.com/AadiDev005", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133415", - "pr_number": 133415, - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "autoscaling" - ], - "duplicate": true - }, - "133425": { - "commit": "b8f5561ab745aab2747d98c14b74c6a3ee9bbe3e", - "text": "Fixed SELinux warning controller not emitting events on some SELinux label conflicts.", - "markdown": "Fixed SELinux warning controller not emitting events on some SELinux label conflicts. ([#133425](https://github.com/kubernetes/kubernetes/pull/133425), [@jsafrane](https://github.com/jsafrane)) [SIG Apps, Storage and Testing]", - "author": "jsafrane", - "author_url": "https://github.com/jsafrane", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133425", - "pr_number": 133425, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "storage", - "testing" - ], - "duplicate": true - }, - "133436": { - "commit": "61cfcd03fc413f1cbd6c95b5b0059d1e912652cb", - "text": "Deprecated metrics will be hidden as per the metrics deprecation policy. https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-metric .", - "markdown": "Deprecated metrics will be hidden as per the metrics deprecation policy. https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-metric . ([#133436](https://github.com/kubernetes/kubernetes/pull/133436), [@richabanker](https://github.com/richabanker)) [SIG Architecture, Instrumentation and Network]", - "author": "richabanker", - "author_url": "https://github.com/richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133436", - "pr_number": 133436, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "architecture", - "instrumentation", - "network" - ], - "duplicate": true, - "is_mapped": true - }, - "133492": { - "commit": "11ade2f7dd264c2f52a4a1342458abbbaa3cb2b1", - "text": "tests: Switched to https://go.dev/doc/go1.25#container-aware-gomaxprocs from `go.uber.org/automaxprocs`.", - "markdown": "Tests: Switched to https://go.dev/doc/go1.25#container-aware-gomaxprocs from `go.uber.org/automaxprocs`. ([#133492](https://github.com/kubernetes/kubernetes/pull/133492), [@BenTheElder](https://github.com/BenTheElder))", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133492", - "pr_number": 133492, - "areas": [ - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "testing" - ], - "is_mapped": true - }, - "133511": { - "commit": "60e1f61a6361e782c738ee941d61fddc1ab3d2f2", - "text": "Eliminated and prevented future use of the `md5` algorithm in favor of more appropriate hashing algorithms.", - "markdown": "Eliminated and prevented future use of the `md5` algorithm in favor of more appropriate hashing algorithms. ([#133511](https://github.com/kubernetes/kubernetes/pull/133511), [@BenTheElder](https://github.com/BenTheElder)) [SIG Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Security, Storage and Testing]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133511", - "pr_number": 133511, - "areas": [ - "test", - "kubelet", - "kubectl", - "kubeadm", - "code-organization" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "apps", - "architecture", - "cli", - "cluster-lifecycle", - "network", - "node", - "security", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "133513": { - "commit": "4f0ce131a32f44572616f407011b28af79cca651", - "text": "kubeadm: Fixed a bug where `ClusterConfiguration.APIServer.TimeoutForControlPlane` from `v1beta3` was not respected in newer kubeadm versions where `v1beta4` is the default.", - "markdown": "Kubeadm: Fixed a bug where `ClusterConfiguration.APIServer.TimeoutForControlPlane` from `v1beta3` was not respected in newer kubeadm versions where `v1beta4` is the default. ([#133513](https://github.com/kubernetes/kubernetes/pull/133513), [@tom1299](https://github.com/tom1299))", - "author": "tom1299", - "author_url": "https://github.com/tom1299", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133513", - "pr_number": 133513, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "133540": { - "commit": "a270bd8e1e4549a46603ccd5b2f6665223c9a932", - "text": "Added validation to ensure `log-flush-frequency` is a positive value, returning an error instead of causing a panic.", - "markdown": "Added validation to ensure `log-flush-frequency` is a positive value, returning an error instead of causing a panic. ([#133540](https://github.com/kubernetes/kubernetes/pull/133540), [@BenTheElder](https://github.com/BenTheElder)) [SIG Architecture, Instrumentation, Network and Node]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133540", - "pr_number": 133540, - "areas": [ - "kubelet", - "kube-proxy" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "architecture", - "instrumentation", - "network", - "node" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133571": { - "commit": "22a567ac31df68929f4cfb6e87a18d2399e37efe", - "text": "Fixed formatting of various Go API deprecations for `GoDoc` and `pkgsite`, and enabled a linter to detect misformatted deprecations.", - "markdown": "Fixed formatting of various Go API deprecations for `GoDoc` and `pkgsite`, and enabled a linter to detect misformatted deprecations. ([#133571](https://github.com/kubernetes/kubernetes/pull/133571), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture, CLI, Instrumentation and Testing]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133571", - "pr_number": 133571, - "areas": [ - "test", - "kubectl", - "code-generation", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "architecture", - "cli", - "instrumentation", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "133603": { - "commit": "1431873b8464740ed3c1126abc4a4b10618c7fe5", - "text": "Fixed `nfacct` test cases on s390x.", - "markdown": "Fixed `nfacct` test cases on s390x. ([#133603](https://github.com/kubernetes/kubernetes/pull/133603), [@saisindhuri91](https://github.com/saisindhuri91))", - "author": "saisindhuri91", - "author_url": "https://github.com/saisindhuri91", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133603", - "pr_number": 133603, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "network" - ], - "do_not_publish": true, - "is_mapped": true - }, - "133615": { - "commit": "8c1094d54af10eacea24a9b98383978fabf93dc0", - "text": "Promoted VAC API test to conformance.", - "markdown": "Promoted VAC API test to conformance. ([#133615](https://github.com/kubernetes/kubernetes/pull/133615), [@carlory](https://github.com/carlory)) [SIG Architecture, Storage and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133615", - "pr_number": 133615, - "areas": [ - "test", - "conformance" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "architecture", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "133627": { - "commit": "b53043433c11ea562c71b20b2a29c99725eddd80", - "text": "Updated `kubectl describe pods` to include the involved object’s `fieldPath` (e.g., container name) in event messages, providing better context for debugging multi-container Pods. Note: This changes the previous message format for events that include a `fieldPath`.", - "markdown": "Updated `kubectl describe pods` to include the involved object’s `fieldPath` (e.g., container name) in event messages, providing better context for debugging multi-container Pods. Note: This changes the previous message format for events that include a `fieldPath`. ([#133627](https://github.com/kubernetes/kubernetes/pull/133627), [@itzPranshul](https://github.com/itzPranshul))", - "author": "itzPranshul", - "author_url": "https://github.com/itzPranshul", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133627", - "pr_number": 133627, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "133636": { - "commit": "7e871bc7bb084b3f64393598f1c2c54ccf1f7912", - "text": "Updated cri-tools to v1.34.0.", - "markdown": "Updated cri-tools to v1.34.0. ([#133636](https://github.com/kubernetes/kubernetes/pull/133636), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133636", - "pr_number": 133636, - "areas": [ - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider" - ] - }, - "133697": { - "commit": "14fb5e6481ee21c22b1b79122b0e66e578d325ed", - "text": "Feature gate dependencies are now explicit, and validated at startup. A feature can no longer be enabled if it depends on a disabled feature. In particular, this means that `AllAlpha=true` will no longer work without enabling disabled-by-default beta features that are depended on (either with `AllBeta=true` or explicitly enumerating the disabled dependencies).", - "markdown": "Feature gate dependencies are now explicit, and validated at startup. A feature can no longer be enabled if it depends on a disabled feature. In particular, this means that `AllAlpha=true` will no longer work without enabling disabled-by-default beta features that are depended on (either with `AllBeta=true` or explicitly enumerating the disabled dependencies). ([#133697](https://github.com/kubernetes/kubernetes/pull/133697), [@tallclair](https://github.com/tallclair)) [SIG API Machinery, Architecture, Cluster Lifecycle and Node]", - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133697", - "pr_number": 133697, - "areas": [ - "kubelet" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "cluster-lifecycle", - "node" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true - }, - "133706": { - "commit": "2679d3a7c6141a4387bb0ebf8771474e0d3ec8d5", - "text": "Fixed a bug that prevents scheduling the next pod when using the `DRAConsumableCapacity` feature.", - "markdown": "Fixed a bug that prevents scheduling the next pod when using the `DRAConsumableCapacity` feature. ([#133706](https://github.com/kubernetes/kubernetes/pull/133706), [@sunya-ch](https://github.com/sunya-ch))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/5075-dra-consumable-capacity", - "type": "KEP" - } - ], - "author": "sunya-ch", - "author_url": "https://github.com/sunya-ch", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133706", - "pr_number": 133706, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "133715": { - "commit": "2c202829289f4e8923878363e0d876e3c74ea2a0", - "text": "Updated storage version for `MutatingAdmissionPolicy` to `v1beta1`.", - "markdown": "Updated storage version for `MutatingAdmissionPolicy` to `v1beta1`. ([#133715](https://github.com/kubernetes/kubernetes/pull/133715), [@cici37](https://github.com/cici37)) [SIG API Machinery, Etcd and Testing]", - "author": "cici37", - "author_url": "https://github.com/cici37", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133715", - "pr_number": 133715, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "etcd", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133720": { - "commit": "53fecc77488f0aaa58cca93b193eb43ad6bee9d2", - "text": "Removed general available feature-gate `SizeMemoryBackedVolumes`.", - "markdown": "Removed general available feature-gate `SizeMemoryBackedVolumes`. ([#133720](https://github.com/kubernetes/kubernetes/pull/133720), [@carlory](https://github.com/carlory)) [SIG Node, Storage and Testing]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133720", - "pr_number": 133720, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "133721": { - "commit": "c5f15cc37a0cadd4b357b03b8057c64bc02348ea", - "text": "kube-apiserver: Fixed a possible panic validating a custom resource whose `CustomResourceDefinition` indicates a status subresource exists, but which does not define a `status` property in the `openAPIV3Schema`.", - "markdown": "Kube-apiserver: Fixed a possible panic validating a custom resource whose `CustomResourceDefinition` indicates a status subresource exists, but which does not define a `status` property in the `openAPIV3Schema`. ([#133721](https://github.com/kubernetes/kubernetes/pull/133721), [@fusida](https://github.com/fusida)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Release, Scheduling, Storage and Testing]", - "author": "fusida", - "author_url": "https://github.com/fusida", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133721", - "pr_number": 133721, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "provider/gcp", - "release-eng", - "kubeadm", - "conformance", - "code-generation", - "e2e-test-framework", - "dependency", - "stable-metrics" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "autoscaling", - "cli", - "cloud-provider", - "cluster-lifecycle", - "etcd", - "instrumentation", - "network", - "node", - "release", - "scheduling", - "storage", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133731": { - "commit": "9096fcefe52d347827ac358bd8e520367c5e8fe5", - "text": "Updated the `kubectl wait` command description by removing the `Experimental` prefix, as the command has been stable for a long time.", - "markdown": "Updated the `kubectl wait` command description by removing the `Experimental` prefix, as the command has been stable for a long time. ([#133731](https://github.com/kubernetes/kubernetes/pull/133731), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133731", - "pr_number": 133731, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "133742": { - "commit": "02e403f45d8c44cc5a9ba1a8f116d87b957cc9d4", - "text": "Removed the `ComponentSLIs` feature gate, as it was promoted to stable in the Kubernetes `v1.32` release.", - "markdown": "Removed the `ComponentSLIs` feature gate, as it was promoted to stable in the Kubernetes `v1.32` release. ([#133742](https://github.com/kubernetes/kubernetes/pull/133742), [@carlory](https://github.com/carlory)) [SIG Architecture and Instrumentation]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133742", - "pr_number": 133742, - "kinds": [ - "cleanup" - ], - "sigs": [ - "architecture", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "133771": { - "commit": "c9cc8c1ea89c3f2d00722f7c7cb4ff419ba70ba7", - "text": "Fixed broken shell completion for API resources.", - "markdown": "Fixed broken shell completion for API resources. ([#133771](https://github.com/kubernetes/kubernetes/pull/133771), [@marckhouzam](https://github.com/marckhouzam))", - "author": "marckhouzam", - "author_url": "https://github.com/marckhouzam", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133771", - "pr_number": 133771, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "133778": { - "commit": "27cfc5b4d5c59550f38a82f9064bc7f383833e0b", - "text": "kubeadm: stopped applying the `--pod-infra-container-image` flag for the kubelet. The flag has been deprecated and no longer served a purpose in the kubelet as the logic was migrated to CRI (Container Runtime Interface). During upgrade, kubeadm will attempt to remove the flag from the file `/var/lib/kubelet/kubeadm-flags.env`.", - "markdown": "Kubeadm: stopped applying the `--pod-infra-container-image` flag for the kubelet. The flag has been deprecated and no longer served a purpose in the kubelet as the logic was migrated to CRI (Container Runtime Interface). During upgrade, kubeadm will attempt to remove the flag from the file `/var/lib/kubelet/kubeadm-flags.env`. ([#133778](https://github.com/kubernetes/kubernetes/pull/133778), [@carlory](https://github.com/carlory)) [SIG Cloud Provider and Cluster Lifecycle]", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133778", - "pr_number": 133778, - "areas": [ - "provider/gcp", - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "cluster-lifecycle" - ], - "duplicate": true, - "is_mapped": true - }, - "133779": { - "commit": "f66d1a94185581af3a9ad22650eef8437b8cbe6c", - "text": "ACTION REQUIRED:\n\nRemoved the `--pod-infra-container-image` flag from `kubelet` command line. For `non-kubeadm` clusters, users must manually remove this flag from their `kubelet` configuration to prevent startup failures before upgrading `kubelet`. For `kubeadm` clusters, if users pass extra arguments to the `kubelet` like `--pod-infra-container-image`, it will be written to the `kubelet` env file during the `init` phase. `kubeadm` does not remove it during the `init` or `join` phase, so users must manually remove it from `extraArgs` in the `kubelet` configuration file.", - "markdown": "ACTION REQUIRED:\n \n Removed the `--pod-infra-container-image` flag from `kubelet` command line. For `non-kubeadm` clusters, users must manually remove this flag from their `kubelet` configuration to prevent startup failures before upgrading `kubelet`. For `kubeadm` clusters, if users pass extra arguments to the `kubelet` like `--pod-infra-container-image`, it will be written to the `kubelet` env file during the `init` phase. `kubeadm` does not remove it during the `init` or `join` phase, so users must manually remove it from `extraArgs` in the `kubelet` configuration file. ([#133779](https://github.com/kubernetes/kubernetes/pull/133779), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133779", - "pr_number": 133779, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "action_required": true, - "is_mapped": true - }, - "133792": { - "commit": "6f093ef29234787b51fc80154c0fa9988a1d7853", - "text": "Locked down the `AllowOverwriteTerminationGracePeriodSeconds` feature gate.", - "markdown": "Locked down the `AllowOverwriteTerminationGracePeriodSeconds` feature gate. ([#133792](https://github.com/kubernetes/kubernetes/pull/133792), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133792", - "pr_number": 133792, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "is_mapped": true - }, - "133817": { - "commit": "947a8ebfd14fe14b25222a50be28accae80fbd2c", - "text": "kube-apiserver: Fixed a `v1.34` regression with spurious \"Error getting keys\" log messages.", - "markdown": "Kube-apiserver: Fixed a `v1.34` regression with spurious \"Error getting keys\" log messages. ([#133817](https://github.com/kubernetes/kubernetes/pull/133817), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133817", - "pr_number": 133817, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "api-machinery", - "etcd" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133837": { - "commit": "5dff07fdf99de6c990afeab518e271631d286ae7", - "text": "Updated CNI plugins to v1.8.0.", - "markdown": "Updated CNI plugins to v1.8.0. ([#133837](https://github.com/kubernetes/kubernetes/pull/133837), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing]", - "author": "saschagrunert", - "author_url": "https://github.com/saschagrunert", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133837", - "pr_number": 133837, - "areas": [ - "test", - "provider/gcp" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cloud-provider", - "node", - "testing" - ], - "duplicate": true - }, - "133841": { - "commit": "29bb3a5d07f8ad88dea2614dc9631e2fc6f84600", - "text": "Changed `kubectl exec` syntax to require `--` before the command. The form `kubectl exec [POD] [COMMAND]` is no longer supported; use `kubectl exec [POD] -- [COMMAND]` instead.", - "markdown": "Changed `kubectl exec` syntax to require `--` before the command. The form `kubectl exec [POD] [COMMAND]` is no longer supported; use `kubectl exec [POD] -- [COMMAND]` instead. ([#133841](https://github.com/kubernetes/kubernetes/pull/133841), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133841", - "pr_number": 133841, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "testing" - ], - "do_not_publish": true, - "is_mapped": true - }, - "133873": { - "commit": "b00aba714e4bdc5d9d3b2f547d846563f544cbbd", - "text": "kube-apiserver: Fixed a possible `v1.34` performance regression calculating object size statistics for resources not served from the watch cache, typically only `Events`.", - "markdown": "Kube-apiserver: Fixed a possible `v1.34` performance regression calculating object size statistics for resources not served from the watch cache, typically only `Events`. ([#133873](https://github.com/kubernetes/kubernetes/pull/133873), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]", - "author": "serathius", - "author_url": "https://github.com/serathius", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133873", - "pr_number": 133873, - "areas": [ - "apiserver" - ], - "kinds": [ - "regression" - ], - "sigs": [ - "api-machinery", - "etcd" - ], - "duplicate": true, - "is_mapped": true - }, - "133876": { - "commit": "3a53784ecbe4bed2aa0cbc159acbb56add05eef9", - "text": "DRA: the resource.k8s.io API now uses the v1 API version (introduced in 1.34) as default storage version. Downgrading to 1.33 is not supported.", - "markdown": "DRA: the resource.k8s.io API now uses the v1 API version (introduced in 1.34) as default storage version. Downgrading to 1.33 is not supported. ([#133876](https://github.com/kubernetes/kubernetes/pull/133876), [@kei01234kei](https://github.com/kei01234kei)) [SIG API Machinery, Etcd and Testing]", - "author": "kei01234kei", - "author_url": "https://github.com/kei01234kei", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133876", - "pr_number": 133876, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "etcd", - "testing" - ], - "feature": true, - "duplicate": true - }, - "133883": { - "commit": "04096030a16f4933d897e1c3cbe4c1462f20064a", - "text": "Upgraded the `PodObservedGenerationTracking` feature to beta in `v1.34` and removed the alpha version description from the OpenAPI specification.", - "markdown": "Upgraded the `PodObservedGenerationTracking` feature to beta in `v1.34` and removed the alpha version description from the OpenAPI specification. ([#133883](https://github.com/kubernetes/kubernetes/pull/133883), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", - "author": "yangjunmyfm192085", - "author_url": "https://github.com/yangjunmyfm192085", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133883", - "pr_number": 133883, - "areas": [ - "code-generation" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "133890": { - "commit": "56f6358c11b78e8e3d39e8cd8ff016ff7c70c56b", - "text": "Fixed missing `kubelet_volume_stats_*` metrics.", - "markdown": "Fixed missing `kubelet_volume_stats_*` metrics. ([#133890](https://github.com/kubernetes/kubernetes/pull/133890), [@huww98](https://github.com/huww98)) [SIG Instrumentation and Node]", - "author": "huww98", - "author_url": "https://github.com/huww98", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133890", - "pr_number": 133890, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "instrumentation", - "node" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133894": { - "commit": "f2783029575a17a515715626cf40e6a32a4a82ca", - "text": "Added `k8s-short-name` and `k8s-long-name` format validation tags to enforce DNS label and DNS subdomain compliance.", - "markdown": "Added `k8s-short-name` and `k8s-long-name` format validation tags to enforce DNS label and DNS subdomain compliance. ([#133894](https://github.com/kubernetes/kubernetes/pull/133894), [@lalitc375](https://github.com/lalitc375))", - "author": "lalitc375", - "author_url": "https://github.com/lalitc375", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133894", - "pr_number": 133894, - "areas": [ - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "do_not_publish": true, - "is_mapped": true - }, - "133896": { - "commit": "8085d5c458151dd1ab22e2458d8aed4d7dcda704", - "text": "kube-apiserver: Fixed a `v1.34` regression in `CustomResourceDefinition` handling that incorrectly warned about unrecognized formats on number and integer properties.", - "markdown": "Kube-apiserver: Fixed a `v1.34` regression in `CustomResourceDefinition` handling that incorrectly warned about unrecognized formats on number and integer properties. ([#133896](https://github.com/kubernetes/kubernetes/pull/133896), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Contributor Experience, Network, Node and Scheduling]", - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133896", - "pr_number": 133896, - "areas": [ - "kubelet", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "bug", - "api-change", - "regression" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "cli", - "cloud-provider", - "contributor-experience", - "network", - "node", - "scheduling" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133904": { - "commit": "bb12fee4c1dcc5d24801858a2f75475928ec37d7", - "text": "Changed `WaitForNamedCacheSync` to `WaitForNamedCacheSyncWithContext`.", - "markdown": "Changed `WaitForNamedCacheSync` to `WaitForNamedCacheSyncWithContext`. ([#133904](https://github.com/kubernetes/kubernetes/pull/133904), [@aditigupta96](https://github.com/aditigupta96)) [SIG API Machinery, Apps, Auth and Network]", - "author": "aditigupta96", - "author_url": "https://github.com/aditigupta96", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133904", - "pr_number": 133904, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "network" - ], - "feature": true, - "duplicate": true, - "do_not_publish": true, - "is_mapped": true - }, - "133907": { - "commit": "edcac86acb86f0b634431a05261b9cb13491376d", - "text": "Updated the short description of the `kubectl wait` command by removing the `Experimental` prefix, as the command has been stable for a long time.", - "markdown": "Updated the short description of the `kubectl wait` command by removing the `Experimental` prefix, as the command has been stable for a long time. ([#133907](https://github.com/kubernetes/kubernetes/pull/133907), [@ardaguclu](https://github.com/ardaguclu))", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133907", - "pr_number": 133907, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "133917": { - "commit": "f2ef1c4d08492144419010f17568c2fe41b3f547", - "text": "Fixed validation error when `ConfigFlags` includes `CertFile` and/or `KeyFile` while the original configuration also contains `CertFileData` and/or `KeyFileData`.", - "markdown": "Fixed validation error when `ConfigFlags` includes `CertFile` and/or `KeyFile` while the original configuration also contains `CertFileData` and/or `KeyFileData`. ([#133917](https://github.com/kubernetes/kubernetes/pull/133917), [@n2h9](https://github.com/n2h9)) [SIG API Machinery and CLI]", - "author": "n2h9", - "author_url": "https://github.com/n2h9", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133917", - "pr_number": 133917, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cli" - ], - "duplicate": true, - "is_mapped": true - }, - "133926": { - "commit": "d95e07d0f8e7a8bf9e5f26fdb49861eea3614396", - "text": "kubelet: Fixed an internal deadlock that caused the connection to a DRA driver to become unusable after being idle for 30 minutes.", - "markdown": "Kubelet: Fixed an internal deadlock that caused the connection to a DRA driver to become unusable after being idle for 30 minutes. ([#133926](https://github.com/kubernetes/kubernetes/pull/133926), [@pohly](https://github.com/pohly))", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133926", - "pr_number": 133926, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "133929": { - "commit": "f86edc26658aa3ad2c0e55ac0e849277a040d22c", - "text": "Fixed occasional schedule delays when a static `PersistentVolume` is created.", - "markdown": "Fixed occasional schedule delays when a static `PersistentVolume` is created. ([#133929](https://github.com/kubernetes/kubernetes/pull/133929), [@huww98](https://github.com/huww98)) [SIG Scheduling and Storage]", - "author": "huww98", - "author_url": "https://github.com/huww98", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133929", - "pr_number": 133929, - "kinds": [ - "bug", - "flake" - ], - "sigs": [ - "scheduling", - "storage" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "133948": { - "commit": "dfeb3bbc9c5124a00f77c038f29ae50991afd73e", - "text": "Added support for validating UUID format.", - "markdown": "Added support for validating UUID format. ([#133948](https://github.com/kubernetes/kubernetes/pull/133948), [@lalitc375](https://github.com/lalitc375))", - "author": "lalitc375", - "author_url": "https://github.com/lalitc375", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133948", - "pr_number": 133948, - "areas": [ - "code-generation" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "do_not_publish": true, - "is_mapped": true - }, - "133980": { - "commit": "fb694108249e4765f685471b476b7a9e2f303afd", - "text": "Added the `--min-compatibility-version` flag to `kube-apiserver`, `kube-controller-manager`, and `kube-scheduler`.", - "markdown": "Added the `--min-compatibility-version` flag to `kube-apiserver`, `kube-controller-manager`, and `kube-scheduler`. ([#133980](https://github.com/kubernetes/kubernetes/pull/133980), [@siyuanfoundation](https://github.com/siyuanfoundation)) [SIG API Machinery, Architecture, Cluster Lifecycle, Etcd, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4330", - "type": "KEP" - } - ], - "author": "siyuanfoundation", - "author_url": "https://github.com/siyuanfoundation", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/133980", - "pr_number": 133980, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "cluster-lifecycle", - "etcd", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134007": { - "commit": "a4981e1cf3c747b2224fc5d138e23f21f24cc0a5", - "text": "kubeadm: Fixed `KUBEADM_UPGRADE_DRYRUN_DIR` not honored in upgrade phase when writing kubelet config files.", - "markdown": "Kubeadm: Fixed `KUBEADM_UPGRADE_DRYRUN_DIR` not honored in upgrade phase when writing kubelet config files. ([#134007](https://github.com/kubernetes/kubernetes/pull/134007), [@carlory](https://github.com/carlory))", - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134007", - "pr_number": 134007, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "134017": { - "commit": "7104c1e426b92025aa25083edcd3dac128f3e206", - "text": "Updated `kubectl scale` to return a consistent error message when a specified resource is not found. Previously, it returned: `error: no objects passed to scale \u003cGroupResource\u003e \"\u003cResourceName\u003e\" not found`. It now matches the format used by other commands (e.g., `kubectl get`): `Error from server (NotFound): \u003cGroupResource\u003e \"\u003cResourceName\u003e\" not found`.", - "markdown": "Updated `kubectl scale` to return a consistent error message when a specified resource is not found. Previously, it returned: `error: no objects passed to scale \u003cGroupResource\u003e \"\u003cResourceName\u003e\" not found`. It now matches the format used by other commands (e.g., `kubectl get`): `Error from server (NotFound): \u003cGroupResource\u003e \"\u003cResourceName\u003e\" not found`. ([#134017](https://github.com/kubernetes/kubernetes/pull/134017), [@mochizuki875](https://github.com/mochizuki875))", - "author": "mochizuki875", - "author_url": "https://github.com/mochizuki875", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134017", - "pr_number": 134017, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "134024": { - "commit": "053267ad3646785234584deaf8d7690108d55cef", - "text": "Fixed a bug in `kube-proxy` `nftables` mode (GA as of `v1.33`) which fails to determine if traffic originates from a local source on the node. The issue was caused by using the wrong meta `iif` instead of `iifname` for name based matches.", - "markdown": "Fixed a bug in `kube-proxy` `nftables` mode (GA as of `v1.33`) which fails to determine if traffic originates from a local source on the node. The issue was caused by using the wrong meta `iif` instead of `iifname` for name based matches. ([#134024](https://github.com/kubernetes/kubernetes/pull/134024), [@jack4it](https://github.com/jack4it))", - "author": "jack4it", - "author_url": "https://github.com/jack4it", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134024", - "pr_number": 134024, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "134028": { - "commit": "58f2d96901b9bc0e90f5c6fb5bc808a7aa86a851", - "text": "Specified the deprecated version of `apiserver_storage_objects` metric in metrics docs.", - "markdown": "Specified the deprecated version of `apiserver_storage_objects` metric in metrics docs. ([#134028](https://github.com/kubernetes/kubernetes/pull/134028), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Etcd and Instrumentation]", - "author": "richabanker", - "author_url": "https://github.com/richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134028", - "pr_number": 134028, - "areas": [ - "apiserver", - "stable-metrics" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "etcd", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "134043": { - "commit": "bd1288e000d9271ffbf448873a0795b9005f2eae", - "text": "Removed container name from messages for container created and started events.", - "markdown": "Removed container name from messages for container created and started events. ([#134043](https://github.com/kubernetes/kubernetes/pull/134043), [@HirazawaUi](https://github.com/HirazawaUi))", - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134043", - "pr_number": 134043, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "134054": { - "commit": "ceebd156c45f597b26362eb75323edc9be5a4d6e", - "text": "Removed an incorrect `SessionAffinity` warning that appeared when a headless service was created or updated.", - "markdown": "Removed an incorrect `SessionAffinity` warning that appeared when a headless service was created or updated. ([#134054](https://github.com/kubernetes/kubernetes/pull/134054), [@Peac36](https://github.com/Peac36))", - "author": "Peac36", - "author_url": "https://github.com/Peac36", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134054", - "pr_number": 134054, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "134072": { - "commit": "ec4e321f008b5c283e0848e5003fcb4e9bda0f34", - "text": "Migrated validation in `resource.k8s.io` to declarative validation.\nWhen the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.\nwhen `DeclarativeValidationTakeover` feature gate is enabled, declarative validation becomes the primary source of errors for migrated fields.", - "markdown": "Migrated validation in `resource.k8s.io` to declarative validation.\n When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.\n when `DeclarativeValidationTakeover` feature gate is enabled, declarative validation becomes the primary source of errors for migrated fields. ([#134072](https://github.com/kubernetes/kubernetes/pull/134072), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps and Auth]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/5073-declarative-validation-with-validation-gen/README.md", - "type": "KEP" - } - ], - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134072", - "pr_number": 134072, - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "134095": { - "commit": "ae5d650460493a32114861c856909f3614f031e0", - "text": "Kubernetes is now built using Go 1.25.1", - "markdown": "Kubernetes is now built using Go 1.25.1 ([#134095](https://github.com/kubernetes/kubernetes/pull/134095), [@dims](https://github.com/dims)) [SIG Release and Testing]", - "author": "dims", - "author_url": "https://github.com/dims", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134095", - "pr_number": 134095, - "areas": [ - "test", - "release-eng" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "release", - "testing" - ], - "feature": true, - "duplicate": true - }, - "134103": { - "commit": "3daf280c464c712f38fe2a24d9434fcf2670c251", - "text": "Fixed a bug that prevented allocating the same device that was previously consuming the `CounterSet` when both `DRAConsumableCapacity` and `DRAPartitionableDevices` were enabled.", - "markdown": "Fixed a bug that prevented allocating the same device that was previously consuming the `CounterSet` when both `DRAConsumableCapacity` and `DRAPartitionableDevices` were enabled. ([#134103](https://github.com/kubernetes/kubernetes/pull/134103), [@sunya-ch](https://github.com/sunya-ch))", - "author": "sunya-ch", - "author_url": "https://github.com/sunya-ch", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134103", - "pr_number": 134103, - "areas": [ - "dependency" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "134106": { - "commit": "d39b162163006799cc8e0198fa83d0b6d36a41b9", - "text": "kubeadm: Graduated the kubeadm-specific feature gate `ControlPlaneKubeletLocalMode` to GA and locked it to enabled by default. To opt out, patch the `server` field in `/etc/kubernetes/kubelet.conf`. Deprecated the subphase of `kubeadm join phase control-plane-join` called `etcd`, which is now hidden and replaced by subphase with identical functionality `etcd-join`. The `etcd` subphase will be removed in a future release. The subphase `kubelet-wait-bootstrap` of `kubeadm join` is no longer experimental and will now always run.", - "markdown": "Kubeadm: Graduated the kubeadm-specific feature gate `ControlPlaneKubeletLocalMode` to GA and locked it to enabled by default. To opt out, patch the `server` field in `/etc/kubernetes/kubelet.conf`. Deprecated the subphase of `kubeadm join phase control-plane-join` called `etcd`, which is now hidden and replaced by subphase with identical functionality `etcd-join`. The `etcd` subphase will be removed in a future release. The subphase `kubelet-wait-bootstrap` of `kubeadm join` is no longer experimental and will now always run. ([#134106](https://github.com/kubernetes/kubernetes/pull/134106), [@neolit123](https://github.com/neolit123))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4471", - "type": "KEP" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134106", - "pr_number": 134106, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "134120": { - "commit": "0ca861d5ed67d944285ee5ea80cf520d11e8b755", - "text": "Kubernetes now uses Go Language Version 1.25, including https://go.dev/blog/container-aware-gomaxprocs", - "markdown": "Kubernetes now uses Go Language Version 1.25, including https://go.dev/blog/container-aware-gomaxprocs ([#134120](https://github.com/kubernetes/kubernetes/pull/134120), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling and Storage]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134120", - "pr_number": 134120, - "areas": [ - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "release", - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true - }, - "134130": { - "commit": "5def66bc466ba1587f55b148110cd1ce17812ca1", - "text": "Removed the `KUBECTL_OPENAPIV3_PATCH` environment variable, as aggregated discovery has been stable since `v1.30`.", - "markdown": "Removed the `KUBECTL_OPENAPIV3_PATCH` environment variable, as aggregated discovery has been stable since `v1.30`. ([#134130](https://github.com/kubernetes/kubernetes/pull/134130), [@ardaguclu](https://github.com/ardaguclu))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/3352-aggregated-discovery/README.md", - "type": "KEP" - } - ], - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134130", - "pr_number": 134130, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "134152": { - "commit": "c1a6a3ca71a88a3d43580b2ffce6966c58f8bd56", - "text": "DRA device taints: `DeviceTaintRule` status provides information about the rule, including whether Pods still need to be evicted (`EvictionInProgress` condition). The newly added `None` effect can be used to preview what a `DeviceTaintRule` would do if it used the `NoExecute` effect and to taint devices (`device health`) without immediately affecting scheduling or running Pods.", - "markdown": "DRA device taints: `DeviceTaintRule` status provides information about the rule, including whether Pods still need to be evicted (`EvictionInProgress` condition). The newly added `None` effect can be used to preview what a `DeviceTaintRule` would do if it used the `NoExecute` effect and to taint devices (`device health`) without immediately affecting scheduling or running Pods. ([#134152](https://github.com/kubernetes/kubernetes/pull/134152), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Release, Scheduling and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134152", - "pr_number": 134152, - "areas": [ - "test", - "release-eng", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "node", - "release", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134154": { - "commit": "db0315a641fc7618f87757c2e179b1e52090f812", - "text": "Fixed a bug where high latency `kube-apiserver` caused scheduling throughput degradation.", - "markdown": "Fixed a bug where high latency `kube-apiserver` caused scheduling throughput degradation. ([#134154](https://github.com/kubernetes/kubernetes/pull/134154), [@macsko](https://github.com/macsko))", - "author": "macsko", - "author_url": "https://github.com/macsko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134154", - "pr_number": 134154, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "134157": { - "commit": "412bfec7a10d7815c971ddcd60edaf7e65a8c7a3", - "text": "Fixed a bug where a deleted Pod in the binding phase continued to occupy space on the node in `kube-scheduler`.", - "markdown": "Fixed a bug where a deleted Pod in the binding phase continued to occupy space on the node in `kube-scheduler`. ([#134157](https://github.com/kubernetes/kubernetes/pull/134157), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing]", - "author": "macsko", - "author_url": "https://github.com/macsko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134157", - "pr_number": 134157, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134193": { - "commit": "3e4b5e48f2d57585b43c7eac49f999c338c9bb74", - "text": "Fixed a bug where 64-bit IPv6 `ServiceCIDRs` allocated addresses outside the subnet range.", - "markdown": "Fixed a bug where 64-bit IPv6 `ServiceCIDRs` allocated addresses outside the subnet range. ([#134193](https://github.com/kubernetes/kubernetes/pull/134193), [@hoskeri](https://github.com/hoskeri))", - "author": "hoskeri", - "author_url": "https://github.com/hoskeri", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134193", - "pr_number": 134193, - "kinds": [ - "bug" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "134245": { - "commit": "c0b9ab3351622bec1d921690cbe9e2f4e86cddcd", - "text": "Fixed a bug in `kube-scheduler` where pending pod preemption caused preemptor pods to be retried more frequently.", - "markdown": "Fixed a bug in `kube-scheduler` where pending pod preemption caused preemptor pods to be retried more frequently. ([#134245](https://github.com/kubernetes/kubernetes/pull/134245), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing]", - "author": "macsko", - "author_url": "https://github.com/macsko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134245", - "pr_number": 134245, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134251": { - "commit": "4db43d13217423bf266a1b6362113e7cabf2a823", - "text": "Updated `etcd` to `v3.6.5`.", - "markdown": "Updated `etcd` to `v3.6.5`. ([#134251](https://github.com/kubernetes/kubernetes/pull/134251), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]", - "author": "joshjms", - "author_url": "https://github.com/joshjms", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134251", - "pr_number": 134251, - "areas": [ - "test", - "provider/gcp", - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "cluster-lifecycle", - "etcd", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134256": { - "commit": "6bc4914b841f5bf032490cf105f57dc5bfe475ba", - "text": "Kubernetes API Go types removed runtime use of the `github.com/gogo/protobuf` library, and are no longer registered into the global gogo type registry. Kubernetes API Go types were not suitable for use with the `google.golang.org/protobuf` library, and no longer implement `ProtoMessage()` by default to avoid accidental incompatible use. If removal of these marker methods impacts your use, it can be re-enabled for one more release with a `kubernetes_protomessage_one_more_release` build tag, but will be removed in `v1.36`.", - "markdown": "Kubernetes API Go types removed runtime use of the `github.com/gogo/protobuf` library, and are no longer registered into the global gogo type registry. Kubernetes API Go types were not suitable for use with the `google.golang.org/protobuf` library, and no longer implement `ProtoMessage()` by default to avoid accidental incompatible use. If removal of these marker methods impacts your use, it can be re-enabled for one more release with a `kubernetes_protomessage_one_more_release` build tag, but will be removed in `v1.36`. ([#134256](https://github.com/kubernetes/kubernetes/pull/134256), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134256", - "pr_number": 134256, - "areas": [ - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup", - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "architecture", - "auth", - "cli", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "scheduling", - "storage" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134263": { - "commit": "da2eea1bf2816e2215e9978e7817d5d150228551", - "text": "Namespace is now included in the `--dry-run=client` output for `HorizontalPodAutoscaler (HPA)` objects.", - "markdown": "Namespace is now included in the `--dry-run=client` output for `HorizontalPodAutoscaler (HPA)` objects. ([#134263](https://github.com/kubernetes/kubernetes/pull/134263), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134263", - "pr_number": 134263, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134265": { - "commit": "2003bd0cedcd7814d60d17b0754c3b1c548fe46f", - "text": "kubeadm: Ensured waiting for `apiserver` uses a local client that doesn't reach to the control plane endpoint and instead reaches directly to the local API server endpoint.", - "markdown": "Kubeadm: Ensured waiting for `apiserver` uses a local client that doesn't reach to the control plane endpoint and instead reaches directly to the local API server endpoint. ([#134265](https://github.com/kubernetes/kubernetes/pull/134265), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134265", - "pr_number": 134265, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "134279": { - "commit": "0bdf1f89c3a2eeac2a64ca29b93f552a4b601341", - "text": "Introduced a new declarative validation tag `+k8s:customUnique` to control listmap uniqueness.", - "markdown": "Introduced a new declarative validation tag `+k8s:customUnique` to control listmap uniqueness. ([#134279](https://github.com/kubernetes/kubernetes/pull/134279), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/5073-declarative-validation-with-validation-gen/README.md", - "type": "KEP" - } - ], - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134279", - "pr_number": 134279, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134294": { - "commit": "389507c72325bb4a26b623e7b81a9c5c57d97745", - "text": "Fixed incorrect behavior of preemptor pod when preemption of the victim takes long to complete. The preemptor pod should not be circling in scheduling cycles until preemption is finished.", - "markdown": "Fixed incorrect behavior of preemptor pod when preemption of the victim takes long to complete. The preemptor pod should not be circling in scheduling cycles until preemption is finished. ([#134294](https://github.com/kubernetes/kubernetes/pull/134294), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing]", - "author": "ania-borowiec", - "author_url": "https://github.com/ania-borowiec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134294", - "pr_number": 134294, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134298": { - "commit": "d92afdefcb62ecf69de68653444b9eea70b9f7b7", - "text": "ACTION REQUIRED: `failCgroupV1` will be set to true from 1.35. \nThis means that nodes will not start on a cgroup v1 by default. This puts cgroup v1 into a deprecated state.", - "markdown": "ACTION REQUIRED: `failCgroupV1` will be set to true from 1.35. \n This means that nodes will not start on a cgroup v1 by default. This puts cgroup v1 into a deprecated state. ([#134298](https://github.com/kubernetes/kubernetes/pull/134298), [@kannon92](https://github.com/kannon92))", - "author": "kannon92", - "author_url": "https://github.com/kannon92", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134298", - "pr_number": 134298, - "areas": [ - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change", - "deprecation" - ], - "sigs": [ - "node" - ], - "duplicate_kind": true, - "action_required": true, - "is_mapped": true - }, - "134312": { - "commit": "7353b6a93d5a1535787b87c87acfc178d6ea67e9", - "text": "Fixed resource claims deallocation for extended resource when Pod completes.", - "markdown": "Fixed resource claims deallocation for extended resource when Pod completes. ([#134312](https://github.com/kubernetes/kubernetes/pull/134312), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps, Node and Testing]", - "author": "alaypatel07", - "author_url": "https://github.com/alaypatel07", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134312", - "pr_number": 134312, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134313": { - "commit": "9efb7ee53805225cd70d4b4cd522fc22223dd57b", - "text": "Introduced a structured and versioned `v1alpha1` response for the `statusz` endpoint.", - "markdown": "Introduced a structured and versioned `v1alpha1` response for the `statusz` endpoint. ([#134313](https://github.com/kubernetes/kubernetes/pull/134313), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing]", - "author": "richabanker", - "author_url": "https://github.com/richabanker", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134313", - "pr_number": 134313, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "instrumentation", - "network", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134319": { - "commit": "cffecaac55698b4f364b0be2ba92f5fd69431cb6", - "text": "kubeadm: Fixed a bug where the node registration information for a given node was not fetched correctly during `kubeadm upgrade node` and the node name can end up being incorrect in cases where the node name is not the same as the host name.", - "markdown": "Kubeadm: Fixed a bug where the node registration information for a given node was not fetched correctly during `kubeadm upgrade node` and the node name can end up being incorrect in cases where the node name is not the same as the host name. ([#134319](https://github.com/kubernetes/kubernetes/pull/134319), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134319", - "pr_number": 134319, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "134330": { - "commit": "81d7612a539ba3a4f8a02b914b451bbf7c741464", - "text": "k8s.io/apimachinery: Introduced a helper function to compare `resourceVersion` strings between two objects of the same resource.", - "markdown": "K8s.io/apimachinery: Introduced a helper function to compare `resourceVersion` strings between two objects of the same resource. ([#134330](https://github.com/kubernetes/kubernetes/pull/134330), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Apps, Auth, Instrumentation, Network, Node, Scheduling, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/pull/5505", - "type": "KEP" - } - ], - "author": "michaelasp", - "author_url": "https://github.com/michaelasp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134330", - "pr_number": 134330, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "instrumentation", - "network", - "node", - "scheduling", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "134378": { - "commit": "9113013eb89bd3d8f320cc1e0e8c09637292c8ad", - "text": "Introduced the `--as-user-extra` persistent flag in `kubectl`, which allows passing extra arguments during impersonation.", - "markdown": "Introduced the `--as-user-extra` persistent flag in `kubectl`, which allows passing extra arguments during impersonation. ([#134378](https://github.com/kubernetes/kubernetes/pull/134378), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134378", - "pr_number": 134378, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "134379": { - "commit": "16eebeb5eebc410b01a775801d877e4bbcdc8c6c", - "text": "kube-controller-manager: Fixed a possible data race in the garbage collection controller.", - "markdown": "Kube-controller-manager: Fixed a possible data race in the garbage collection controller. ([#134379](https://github.com/kubernetes/kubernetes/pull/134379), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134379", - "pr_number": 134379, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "apps" - ], - "duplicate": true, - "is_mapped": true - }, - "134381": { - "commit": "e21082468a3b49862cd441d1ede3623fce5b1b7d", - "text": "Fixed a bug to prevent segmentation fault from occurring when updating deeply nested JSON fields.", - "markdown": "Fixed a bug to prevent segmentation fault from occurring when updating deeply nested JSON fields. ([#134381](https://github.com/kubernetes/kubernetes/pull/134381), [@kon-angelo](https://github.com/kon-angelo)) [SIG API Machinery and CLI]", - "author": "kon-angelo", - "author_url": "https://github.com/kon-angelo", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134381", - "pr_number": 134381, - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "cli" - ], - "duplicate": true, - "is_mapped": true - }, - "134384": { - "commit": "37f067778e9ef714d02e5e901c25e83170144dc1", - "text": "Added the `-n` flag as a shorthand for `--namespace` in the `kubectl config set-context` command.", - "markdown": "Added the `-n` flag as a shorthand for `--namespace` in the `kubectl config set-context` command. ([#134384](https://github.com/kubernetes/kubernetes/pull/134384), [@tchap](https://github.com/tchap)) [SIG CLI and Testing]", - "author": "tchap", - "author_url": "https://github.com/tchap", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134384", - "pr_number": 134384, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "134388": { - "commit": "95fcceb90cc9e5861937049016958d3071c8dcc2", - "text": "Moved the CPU Manager static policy option `strict-cpu-reservation` to the GA version.", - "markdown": "Moved the CPU Manager static policy option `strict-cpu-reservation` to the GA version. ([#134388](https://github.com/kubernetes/kubernetes/pull/134388), [@psasnal](https://github.com/psasnal))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4540", - "type": "KEP" - } - ], - "author": "psasnal", - "author_url": "https://github.com/psasnal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134388", - "pr_number": 134388, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "134390": { - "commit": "aa38aeaca288996e2b29ca0642a663c27afbe45f", - "text": "Fixed a possible data race during metrics registration.", - "markdown": "Fixed a possible data race during metrics registration. ([#134390](https://github.com/kubernetes/kubernetes/pull/134390), [@liggitt](https://github.com/liggitt)) [SIG Architecture and Instrumentation]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134390", - "pr_number": 134390, - "kinds": [ - "bug" - ], - "sigs": [ - "architecture", - "instrumentation" - ], - "duplicate": true, - "is_mapped": true - }, - "134400": { - "commit": "ab7e45228f8238530ec1f11b0abf532f50e0ae45", - "text": "Disabled the `SchedulerAsyncAPICalls` feature gate to mitigate a bug where its interaction with asynchronous preemption could degrade `kube-scheduler` performance, especially under high `kube-apiserver` load.", - "markdown": "Disabled the `SchedulerAsyncAPICalls` feature gate to mitigate a bug where its interaction with asynchronous preemption could degrade `kube-scheduler` performance, especially under high `kube-apiserver` load. ([#134400](https://github.com/kubernetes/kubernetes/pull/134400), [@macsko](https://github.com/macsko))", - "author": "macsko", - "author_url": "https://github.com/macsko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134400", - "pr_number": 134400, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "scheduling" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "134433": { - "commit": "095b9d6045cc2d3f1a2ae9ae23b9644c55aaf594", - "text": "kubeadm: Added error printing during retries related to the `WaitForAllControlPlaneComponents` functionality at verbosity level 5.", - "markdown": "Kubeadm: Added error printing during retries related to the `WaitForAllControlPlaneComponents` functionality at verbosity level 5. ([#134433](https://github.com/kubernetes/kubernetes/pull/134433), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134433", - "pr_number": 134433, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134445": { - "commit": "c5ef945f370f6b2749725c5be2781a4bc89b688e", - "text": "Fixed a long-standing issue where `kubelet` rejected Pods with `NodeAffinityFailed` due to a stale informer cache.", - "markdown": "Fixed a long-standing issue where `kubelet` rejected Pods with `NodeAffinityFailed` due to a stale informer cache. ([#134445](https://github.com/kubernetes/kubernetes/pull/134445), [@natasha41575](https://github.com/natasha41575))", - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134445", - "pr_number": 134445, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "134452": { - "commit": "d5efbf2ebf9725ab2bada9136c6958268b31dc4f", - "text": "DRA: The `DynamicResourceAllocation` feature gate for the core functionality (GA in `v1.34`) has now been locked to enabled-by-default and cannot be disabled anymore.", - "markdown": "DRA: The `DynamicResourceAllocation` feature gate for the core functionality (GA in `v1.34`) has now been locked to enabled-by-default and cannot be disabled anymore. ([#134452](https://github.com/kubernetes/kubernetes/pull/134452), [@pohly](https://github.com/pohly)) [SIG Auth, Node, Scheduling and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134452", - "pr_number": 134452, - "areas": [ - "test" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "auth", - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134457": { - "commit": "6652c9fadf4fa2febdca4a856a0340086236f9e5", - "text": "The `PreferSameZone` and `PreferSameNode` values for the Service\n`trafficDistribution` field graduated to general availability. The\n`PreferClose` value is now deprecated in favor of the more explicit\n`PreferSameZone`.", - "markdown": "The `PreferSameZone` and `PreferSameNode` values for the Service\n `trafficDistribution` field graduated to general availability. The\n `PreferClose` value is now deprecated in favor of the more explicit\n `PreferSameZone`. ([#134457](https://github.com/kubernetes/kubernetes/pull/134457), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/3015-prefer-same-node/", - "type": "KEP" - } - ], - "author": "danwinship", - "author_url": "https://github.com/danwinship", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134457", - "pr_number": 134457, - "areas": [ - "test", - "kube-proxy", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "network", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134466": { - "commit": "83504f1b02a6e807b890a96e70572b27adede7ad", - "text": "Fixed a bug where `AllocationMode: All` would not succeed if a resource pool contained `ResourceSlices` that were not targeting the current node.", - "markdown": "Fixed a bug where `AllocationMode: All` would not succeed if a resource pool contained `ResourceSlices` that were not targeting the current node. ([#134466](https://github.com/kubernetes/kubernetes/pull/134466), [@mortent](https://github.com/mortent))", - "author": "mortent", - "author_url": "https://github.com/mortent", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134466", - "pr_number": 134466, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "134479": { - "commit": "ee1ff4866e30ac3685da3e007979b0e9ab7651a6", - "text": "DRA Device Taints: Fixed toleration of `NoExecute`. Prior to this enhancement, tolerating a `NoExecute` did not work because the scheduler did not inform the eviction controller about the toleration, so the scheduled pod got evicted almost immediately.", - "markdown": "DRA Device Taints: Fixed toleration of `NoExecute`. Prior to this enhancement, tolerating a `NoExecute` did not work because the scheduler did not inform the eviction controller about the toleration, so the scheduled pod got evicted almost immediately. ([#134479](https://github.com/kubernetes/kubernetes/pull/134479), [@pohly](https://github.com/pohly)) [SIG Apps, Node, Scheduling and Testing]", - "author": "pohly", - "author_url": "https://github.com/pohly", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134479", - "pr_number": 134479, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134481": { - "commit": "ddc2c5d192275207b7ebb43b066fd0b0e94fc011", - "text": "Promoted the `--chunk-size` flag to stable. The kubectl `describe`, `get`, `drain`, and `events` commands can use `--chunk-size` flag to set chunk size.", - "markdown": "Promoted the `--chunk-size` flag to stable. The kubectl `describe`, `get`, `drain`, and `events` commands can use `--chunk-size` flag to set chunk size. ([#134481](https://github.com/kubernetes/kubernetes/pull/134481), [@soltysh](https://github.com/soltysh))", - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134481", - "pr_number": 134481, - "areas": [ - "kubectl" - ], - "kinds": [ - "documentation", - "cleanup" - ], - "sigs": [ - "cli" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "134493": { - "commit": "0b90cb5e5a8f36ff51ef64eeca002c44eb17e6b9", - "text": "Promoted the `RelaxedServiceNameValidation` feature to beta (enabled by default).\nNew Service names are now validated with `NameIsDNSLabel()`, relaxing the pre-existing validation.", - "markdown": "Promoted the `RelaxedServiceNameValidation` feature to beta (enabled by default).\n New Service names are now validated with `NameIsDNSLabel()`, relaxing the pre-existing validation. ([#134493](https://github.com/kubernetes/kubernetes/pull/134493), [@adrianmoisey](https://github.com/adrianmoisey))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5311", - "type": "KEP" - } - ], - "author": "adrianmoisey", - "author_url": "https://github.com/adrianmoisey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134493", - "pr_number": 134493, - "kinds": [ - "feature" - ], - "sigs": [ - "network" - ], - "feature": true, - "is_mapped": true - }, - "134510": { - "commit": "9630ab9581afbac9835d53f9e620a1240a1d2d91", - "text": "Substantially simplified building Kubernetes by making the process run a pre-built container image directly without running `rsyncd`.", - "markdown": "Substantially simplified building Kubernetes by making the process run a pre-built container image directly without running `rsyncd`. ([#134510](https://github.com/kubernetes/kubernetes/pull/134510), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134510", - "pr_number": 134510, - "kinds": [ - "cleanup" - ], - "sigs": [ - "release", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134523": { - "commit": "859e0e6d025b4c90eae9f18e4a4995269deae6d5", - "text": "Added a `source` label to the `resourceclaim_controller_resource_claims` metric.\nAdded the `scheduler_resourceclaim_creates_total` metric for `DRAExtendedResource`.", - "markdown": "Added a `source` label to the `resourceclaim_controller_resource_claims` metric.\n Added the `scheduler_resourceclaim_creates_total` metric for `DRAExtendedResource`. ([#134523](https://github.com/kubernetes/kubernetes/pull/134523), [@bitoku](https://github.com/bitoku)) [SIG Apps, Instrumentation, Node and Scheduling]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5004", - "type": "KEP" - } - ], - "author": "bitoku", - "author_url": "https://github.com/bitoku", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134523", - "pr_number": 134523, - "kinds": [ - "feature" - ], - "sigs": [ - "apps", - "instrumentation", - "node", - "scheduling" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "134539": { - "commit": "b5c4ebc8985b3de7acf7e69fc75068d1a2ee4f41", - "text": "Marked `ipvs` mode in kube-proxy as deprecated, which will be removed in a future version of Kubernetes. Users are encouraged to migrate to `nftables`.", - "markdown": "Marked `ipvs` mode in kube-proxy as deprecated, which will be removed in a future version of Kubernetes. Users are encouraged to migrate to `nftables`. ([#134539](https://github.com/kubernetes/kubernetes/pull/134539), [@adrianmoisey](https://github.com/adrianmoisey))", - "author": "adrianmoisey", - "author_url": "https://github.com/adrianmoisey", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134539", - "pr_number": 134539, - "areas": [ - "kube-proxy" - ], - "kinds": [ - "deprecation" - ], - "sigs": [ - "network" - ], - "is_mapped": true - }, - "134577": { - "commit": "5105b1d7913b9d333d6d480b8e5c57a8f16c0ec4", - "text": "kube-apiserver: Made the subresources `pods/exec`, `pods/attach`, and `pods/portforward` require `create` permission for both SPDY and Websocket API requests. Previously, SPDY requests required `create` permission, but Websocket requests only required `get` permission. This change is gated by the `AuthorizePodWebsocketUpgradeCreatePermission` feature-gate, which is enabled by default.\n\nBefore upgrading to 1.35, ensure any custom ClusterRoles and Roles intended to grant `pods/exec`, `pods/attach`, or `pods/portforward` permission include the `create` verb.", - "markdown": "Kube-apiserver: Made the subresources `pods/exec`, `pods/attach`, and `pods/portforward` require `create` permission for both SPDY and Websocket API requests. Previously, SPDY requests required `create` permission, but Websocket requests only required `get` permission. This change is gated by the `AuthorizePodWebsocketUpgradeCreatePermission` feature-gate, which is enabled by default.\n \n Before upgrading to 1.35, ensure any custom ClusterRoles and Roles intended to grant `pods/exec`, `pods/attach`, or `pods/portforward` permission include the `create` verb. ([#134577](https://github.com/kubernetes/kubernetes/pull/134577), [@seans3](https://github.com/seans3)) [SIG API Machinery, Auth, Node and Testing]", - "author": "seans3", - "author_url": "https://github.com/seans3", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134577", - "pr_number": 134577, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "134588": { - "commit": "f7fb7cd86b6db5531087b4ae3b1e8198af3c927e", - "text": "kubeadm: Fixed a preflight check that could fail hostname construction in IPv6 setups.", - "markdown": "Kubeadm: Fixed a preflight check that could fail hostname construction in IPv6 setups. ([#134588](https://github.com/kubernetes/kubernetes/pull/134588), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Cloud Provider, Cluster Lifecycle and Testing]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134588", - "pr_number": 134588, - "areas": [ - "test", - "provider/gcp", - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery", - "auth", - "cloud-provider", - "cluster-lifecycle", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134598": { - "commit": "9d5cda7a21fa7c1a9cde99e78fad468562b89ca4", - "text": "Updated the Go version of Kubernetes to `1.25.3`.", - "markdown": "Updated the Go version of Kubernetes to `1.25.3`. ([#134598](https://github.com/kubernetes/kubernetes/pull/134598), [@BenTheElder](https://github.com/BenTheElder))", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134598", - "pr_number": 134598, - "areas": [ - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "release" - ], - "is_mapped": true - }, - "134601": { - "commit": "d789e1f5d3f32a388a79c16d03afd6c01f3311b0", - "text": "Made legacy watch calls (`ResourceVersion` = 0 or unset) that generate init-events weigh higher in `API Priority and Fairness (APF)` seat usage. Properly accounting for their cost protects the API server from CPU overload. Users might see increased throttling of such calls as a result.", - "markdown": "Made legacy watch calls (`ResourceVersion` = 0 or unset) that generate init-events weigh higher in `API Priority and Fairness (APF)` seat usage. Properly accounting for their cost protects the API server from CPU overload. Users might see increased throttling of such calls as a result. ([#134601](https://github.com/kubernetes/kubernetes/pull/134601), [@shyamjvs](https://github.com/shyamjvs))", - "author": "shyamjvs", - "author_url": "https://github.com/shyamjvs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134601", - "pr_number": 134601, - "areas": [ - "apiserver" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "api-machinery" - ], - "is_mapped": true - }, - "134611": { - "commit": "4870d987d0a4aac2d9223d4c0b9f22858c0d1590", - "text": "Updated underlying images and dependencies to be compatible with Go version`1.25.3`.", - "markdown": "Updated underlying images and dependencies to be compatible with Go version`1.25.3`. ([#134611](https://github.com/kubernetes/kubernetes/pull/134611), [@cpanato](https://github.com/cpanato)) [SIG Architecture, Cloud Provider, Etcd, Release, Storage and Testing]", - "author": "cpanato", - "author_url": "https://github.com/cpanato", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134611", - "pr_number": 134611, - "areas": [ - "test", - "provider/gcp", - "release-eng", - "conformance" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "architecture", - "cloud-provider", - "etcd", - "release", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "134614": { - "commit": "02e576064fc1855776b118ffb81083dc2bd1e3b8", - "text": "Promoted the Topology Manager policy option `max-allowable-numa-nodes` to GA version.", - "markdown": "Promoted the Topology Manager policy option `max-allowable-numa-nodes` to GA version. ([#134614](https://github.com/kubernetes/kubernetes/pull/134614), [@ffromani](https://github.com/ffromani))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4622", - "type": "KEP" - } - ], - "author": "ffromani", - "author_url": "https://github.com/ffromani", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134614", - "pr_number": 134614, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "134624": { - "commit": "a058cf788a214b25c42173a6d7df8e77b26e2b1b", - "text": "The Pod Certificates feature moved to beta. The `PodCertificateRequest` feature gate is set disabled by default. To use the feature, users must enable the certificates API groups in `v1beta1` and enable the `PodCertificateRequest` feature gate. The `UserAnnotations` field was added to the `PodCertificateProjection` API and the corresponding `UnverifiedUserAnnotations` field was added to the `PodCertificateRequest` API.", - "markdown": "The Pod Certificates feature moved to beta. The `PodCertificateRequest` feature gate is set disabled by default. To use the feature, users must enable the certificates API groups in `v1beta1` and enable the `PodCertificateRequest` feature gate. The `UserAnnotations` field was added to the `PodCertificateProjection` API and the corresponding `UnverifiedUserAnnotations` field was added to the `PodCertificateRequest` API. ([#134624](https://github.com/kubernetes/kubernetes/pull/134624), [@yt2985](https://github.com/yt2985)) [SIG API Machinery, Apps, Auth, Etcd, Instrumentation, Node and Testing]", - "author": "yt2985", - "author_url": "https://github.com/yt2985", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134624", - "pr_number": 134624, - "areas": [ - "test", - "kubelet", - "apiserver", - "code-generation", - "stable-metrics" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "etcd", - "instrumentation", - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134625": { - "commit": "e1bc8e4c3d50c07e053e94f0727f6c6e887104e3", - "text": "Removed the `VolumeAttributesClass` resource from the `storage.k8s.io/v1alpha1` API in `v1.35`.", - "markdown": "Removed the `VolumeAttributesClass` resource from the `storage.k8s.io/v1alpha1` API in `v1.35`. ([#134625](https://github.com/kubernetes/kubernetes/pull/134625), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Etcd, Storage and Testing]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134625", - "pr_number": 134625, - "areas": [ - "test" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "etcd", - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134631": { - "commit": "d8a53105dda26cb46aa84e8b6d4eb2c7a1421215", - "text": "Enabled the feature gate `ContainerRestartRules` by default. The `ContainerRestartRules` feature has been promoted to beta. Fixed a bug in this feature that caused probes to continue to run even if the container has terminated and is not restartable.", - "markdown": "Enabled the feature gate `ContainerRestartRules` by default. The `ContainerRestartRules` feature has been promoted to beta. Fixed a bug in this feature that caused probes to continue to run even if the container has terminated and is not restartable. ([#134631](https://github.com/kubernetes/kubernetes/pull/134631), [@yuanwang04](https://github.com/yuanwang04))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5307", - "type": "KEP" - }, - { - "description": "[Usage]", - "url": "https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-restart-rules", - "type": "official" - } - ], - "author": "yuanwang04", - "author_url": "https://github.com/yuanwang04", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134631", - "pr_number": 134631, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug", - "feature" - ], - "sigs": [ - "node" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134635": { - "commit": "76f5a1c8c2e8748b602d1cdaa4e1b2f4ca7cecb5", - "text": "Locked the (generally available) feature gate `ExecProbeTimeout` to true.", - "markdown": "Locked the (generally available) feature gate `ExecProbeTimeout` to true. ([#134635](https://github.com/kubernetes/kubernetes/pull/134635), [@vivzbansal](https://github.com/vivzbansal)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/1972", - "type": "KEP" - } - ], - "author": "vivzbansal", - "author_url": "https://github.com/vivzbansal", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134635", - "pr_number": 134635, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true - }, - "134647": { - "commit": "31f83cdf2b7a22f6c41c255516b8affa3ba40d70", - "text": "Enabled the `MutableCSINodeAllocatableCount` feature gate by default in beta.", - "markdown": "Enabled the `MutableCSINodeAllocatableCount` feature gate by default in beta. ([#134647](https://github.com/kubernetes/kubernetes/pull/134647), [@torredil](https://github.com/torredil))", - "author": "torredil", - "author_url": "https://github.com/torredil", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134647", - "pr_number": 134647, - "kinds": [ - "feature" - ], - "sigs": [ - "storage" - ], - "feature": true, - "is_mapped": true - }, - "134654": { - "commit": "aefb388c7da14d1cf1ffb9c9e767609b4a5a193c", - "text": "kube-controller-manager: Resolved potential issues handling pods with incorrect uids in their `ownerReference`.", - "markdown": "Kube-controller-manager: Resolved potential issues handling pods with incorrect uids in their `ownerReference`. ([#134654](https://github.com/kubernetes/kubernetes/pull/134654), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134654", - "pr_number": 134654, - "kinds": [ - "bug" - ], - "sigs": [ - "apps" - ], - "is_mapped": true - }, - "134656": { - "commit": "cf991024a240fb649464e6f4505714a0e27e9c1b", - "text": "Removed `rsync` as a dependency to build Kubernetes.", - "markdown": "Removed `rsync` as a dependency to build Kubernetes. ([#134656](https://github.com/kubernetes/kubernetes/pull/134656), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing]", - "author": "BenTheElder", - "author_url": "https://github.com/BenTheElder", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134656", - "pr_number": 134656, - "areas": [ - "release-eng" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "release", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134685": { - "commit": "fb7774f22ad1bdf057a525ee08a05749480523bf", - "text": "Dropped support for `policy/v1beta1` PodDisruptionBudget in kubectl.", - "markdown": "Dropped support for `policy/v1beta1` PodDisruptionBudget in kubectl. ([#134685](https://github.com/kubernetes/kubernetes/pull/134685), [@scaliby](https://github.com/scaliby))", - "author": "scaliby", - "author_url": "https://github.com/scaliby", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134685", - "pr_number": 134685, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "134691": { - "commit": "59616d50fd67877f158ebf5bcc7a12aff9fe3a92", - "text": "The `SystemdWatchdog` feature gate has been locked to default and will be removed in future release. The systemd watchdog functionality in `kubelet` can be enabled via systemd without any feature gate configuration. See the [systemd watchdog documentation](https://kubernetes.io/docs/reference/node/systemd-watchdog/) for more information.", - "markdown": "The `SystemdWatchdog` feature gate has been locked to default and will be removed in future release. The systemd watchdog functionality in `kubelet` can be enabled via systemd without any feature gate configuration. See the [systemd watchdog documentation](https://kubernetes.io/docs/reference/node/systemd-watchdog/) for more information. ([#134691](https://github.com/kubernetes/kubernetes/pull/134691), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", - "author": "SergeyKanzhelev", - "author_url": "https://github.com/SergeyKanzhelev", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134691", - "pr_number": 134691, - "areas": [ - "kubelet" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "134692": { - "commit": "d536e31ce279958538846eab83e302dc8d189829", - "text": "kubeadm: Updated the supported `etcd` version to `v3.5.23` for supported control plane versions `v1.31`, `v1.32`, and `v1.33`.", - "markdown": "Kubeadm: Updated the supported `etcd` version to `v3.5.23` for supported control plane versions `v1.31`, `v1.32`, and `v1.33`. ([#134692](https://github.com/kubernetes/kubernetes/pull/134692), [@joshjms](https://github.com/joshjms)) [SIG Cluster Lifecycle and Etcd]", - "author": "joshjms", - "author_url": "https://github.com/joshjms", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134692", - "pr_number": 134692, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle", - "etcd" - ], - "duplicate": true, - "is_mapped": true - }, - "134709": { - "commit": "8cd57a9e6f07d2446910d493781557b6cd4d6b99", - "text": "Added support for tracing in `kubectl` with the `--profile=trace` flag.", - "markdown": "Added support for tracing in `kubectl` with the `--profile=trace` flag. ([#134709](https://github.com/kubernetes/kubernetes/pull/134709), [@tchap](https://github.com/tchap))", - "author": "tchap", - "author_url": "https://github.com/tchap", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134709", - "pr_number": 134709, - "areas": [ - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli" - ], - "feature": true, - "is_mapped": true - }, - "134715": { - "commit": "e2453c503ea3c3961e78f963ade4d7cbe1ba5f46", - "text": "kubeadm: Added missing cluster-info context validation to prevent panics when the user has a malformed kubeconfig in the cluster-info ConfigMap that excludes a valid current context.", - "markdown": "Kubeadm: Added missing cluster-info context validation to prevent panics when the user has a malformed kubeconfig in the cluster-info ConfigMap that excludes a valid current context. ([#134715](https://github.com/kubernetes/kubernetes/pull/134715), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134715", - "pr_number": 134715, - "areas": [ - "kubeadm" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "134729": { - "commit": "e4fcafba69008d87b5196ea60e75fe9224a2082f", - "text": "Promoted the `HostnameOverride` feature gate to beta and enabled it by default.", - "markdown": "Promoted the `HostnameOverride` feature gate to beta and enabled it by default. ([#134729](https://github.com/kubernetes/kubernetes/pull/134729), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Network and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4762-allow-arbitrary-fqdn-as-pod-hostname", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134729", - "pr_number": 134729, - "kinds": [ - "feature" - ], - "sigs": [ - "network", - "node" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "134730": { - "commit": "c7b6dfb144aa24adaf443f9a3682f971e4f21140", - "text": "Fixed an issue in asynchronous preemption: Scheduler now checks if preemption is ongoing for a Pod before initiating new preemption calls.", - "markdown": "Fixed an issue in asynchronous preemption: Scheduler now checks if preemption is ongoing for a Pod before initiating new preemption calls. ([#134730](https://github.com/kubernetes/kubernetes/pull/134730), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing]", - "author": "ania-borowiec", - "author_url": "https://github.com/ania-borowiec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134730", - "pr_number": 134730, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134739": { - "commit": "0ba43e9f5eaf7300f919b418895a5a561c2bee74", - "text": "Improved performance of `Endpoint` and `EndpointSlice` controllers when there are a large number of services in a single namespace by making pod-to-service lookup asynchronous.", - "markdown": "Improved performance of `Endpoint` and `EndpointSlice` controllers when there are a large number of services in a single namespace by making pod-to-service lookup asynchronous. ([#134739](https://github.com/kubernetes/kubernetes/pull/134739), [@shyamjvs](https://github.com/shyamjvs)) [SIG Apps and Network]", - "author": "shyamjvs", - "author_url": "https://github.com/shyamjvs", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134739", - "pr_number": 134739, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "network" - ], - "duplicate": true, - "is_mapped": true - }, - "134740": { - "commit": "9e284866c3bd3b9bfbc5c488c8e450cfdb3663ff", - "text": "`kube-scheduler`: Pod statuses no longer include specific taint keys or values when scheduling fails due to untolerated taints.", - "markdown": "`kube-scheduler`: Pod statuses no longer include specific taint keys or values when scheduling fails due to untolerated taints. ([#134740](https://github.com/kubernetes/kubernetes/pull/134740), [@hoskeri](https://github.com/hoskeri))", - "author": "hoskeri", - "author_url": "https://github.com/hoskeri", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134740", - "pr_number": 134740, - "kinds": [ - "bug" - ], - "sigs": [ - "scheduling" - ], - "is_mapped": true - }, - "134743": { - "commit": "eea58e01f445175d7e571fb199403a20c96b5faa", - "text": "Fixed an issue where the `kubelet` `/configz` endpoint reported an incorrect value for `kubeletconfig.cgroupDriver` when the cgroup driver setting was received from the container runtime.", - "markdown": "Fixed an issue where the `kubelet` `/configz` endpoint reported an incorrect value for `kubeletconfig.cgroupDriver` when the cgroup driver setting was received from the container runtime. ([#134743](https://github.com/kubernetes/kubernetes/pull/134743), [@marquiz](https://github.com/marquiz))", - "author": "marquiz", - "author_url": "https://github.com/marquiz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134743", - "pr_number": 134743, - "areas": [ - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "134744": { - "commit": "ec5425a6ef45b0df37c66171913edaf0f443567e", - "text": "ACTION REQUIRED:\n\nvendor: Updated `k8s.io/system-validators` to `v1.12.1`. The cgroups validator now throws an error instead of a warning if cgroups v1 is detected on the host and the provided KubeletVersion is `v1.35` or newer.\n\nkubeadm: Started using `k8s.io/system-validators` `v1.12.1` in `kubeadm` `v1.35`. During `kubeadm init`, `kubeadm join`, and `kubeadm upgrade`, the SystemVerification preflight check throws an error if cgroups v1 is detected and the detected `kubelet` version is `v1.35` or newer. For older versions of `kubelet`, a preflight warning is displayed.\n\nTo allow cgroups v1 with `kubeadm` and `kubelet` version `v1.35` or newer, you must:\n- Ignore the error from the SystemVerification preflight check by `kubeadm`.\n- Edit the `kube-system/kubelet-config` ConfigMap and add the `failCgroupV1: false` field before upgrading.", - "markdown": "ACTION REQUIRED:\n \n vendor: Updated `k8s.io/system-validators` to `v1.12.1`. The cgroups validator now throws an error instead of a warning if cgroups v1 is detected on the host and the provided KubeletVersion is `v1.35` or newer.\n \n kubeadm: Started using `k8s.io/system-validators` `v1.12.1` in `kubeadm` `v1.35`. During `kubeadm init`, `kubeadm join`, and `kubeadm upgrade`, the SystemVerification preflight check throws an error if cgroups v1 is detected and the detected `kubelet` version is `v1.35` or newer. For older versions of `kubelet`, a preflight warning is displayed.\n \n To allow cgroups v1 with `kubeadm` and `kubelet` version `v1.35` or newer, you must:\n - Ignore the error from the SystemVerification preflight check by `kubeadm`.\n - Edit the `kube-system/kubelet-config` ConfigMap and add the `failCgroupV1: false` field before upgrading. ([#134744](https://github.com/kubernetes/kubernetes/pull/134744), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5573", - "type": "KEP" - } - ], - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134744", - "pr_number": 134744, - "areas": [ - "kubeadm", - "dependency" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle", - "node" - ], - "feature": true, - "duplicate": true, - "action_required": true, - "is_mapped": true - }, - "134746": { - "commit": "0452b0aec7c0def662cb43c8ddaeb0df521c71b8", - "text": "Added the `ChangeContainerStatusOnKubeletRestart` feature gate, which defaults to disabled. When the feature gate is disabled, `kubelet` does not change the Pod status upon restart, and Pods do not re-run startup probes after the `kubelet` restarts.", - "markdown": "Added the `ChangeContainerStatusOnKubeletRestart` feature gate, which defaults to disabled. When the feature gate is disabled, `kubelet` does not change the Pod status upon restart, and Pods do not re-run startup probes after the `kubelet` restarts. ([#134746](https://github.com/kubernetes/kubernetes/pull/134746), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4781", - "type": "KEP" - } - ], - "author": "HirazawaUi", - "author_url": "https://github.com/HirazawaUi", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134746", - "pr_number": 134746, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "node", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "134760": { - "commit": "3ef02627669c71a7597d58fcb4eaa1a3ded9d711", - "text": "Added the `Step` field to the testing framework to allow volume expansion in configurable step sizes for tests.", - "markdown": "Added the `Step` field to the testing framework to allow volume expansion in configurable step sizes for tests. ([#134760](https://github.com/kubernetes/kubernetes/pull/134760), [@Rishita-Golla](https://github.com/Rishita-Golla)) [SIG Storage and Testing]", - "author": "Rishita-Golla", - "author_url": "https://github.com/Rishita-Golla", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134760", - "pr_number": 134760, - "areas": [ - "test", - "e2e-test-framework" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134769": { - "commit": "276c59af7c4c78153248a816f5fa04f499323028", - "text": "Fixed a bug where Job status updates fail after resuming a Job that was previously started and suspended.\nThe error message was: `status.startTime: Required value: startTime cannot be removed for unsuspended job`.", - "markdown": "Fixed a bug where Job status updates fail after resuming a Job that was previously started and suspended.\n The error message was: `status.startTime: Required value: startTime cannot be removed for unsuspended job`. ([#134769](https://github.com/kubernetes/kubernetes/pull/134769), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing]", - "author": "dejanzele", - "author_url": "https://github.com/dejanzele", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134769", - "pr_number": 134769, - "areas": [ - "test" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134777": { - "commit": "d915ef1660a6a7ac8cada8d7b526f7bf8bf12bd2", - "text": "Promoted `kubectl` command headers to stable.", - "markdown": "Promoted `kubectl` command headers to stable. ([#134777](https://github.com/kubernetes/kubernetes/pull/134777), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/859", - "type": "KEP" - } - ], - "author": "soltysh", - "author_url": "https://github.com/soltysh", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134777", - "pr_number": 134777, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "cleanup", - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134779": { - "commit": "4695bb6c19af291902ff701bf6dfcce1ed84bdef", - "text": "`kubeadm`: Updated the supported etcd version to `v3.5.24` for control plane versions `v1.32`, `v1.33`, and `v1.34`.", - "markdown": "`kubeadm`: Updated the supported etcd version to `v3.5.24` for control plane versions `v1.32`, `v1.33`, and `v1.34`. ([#134779](https://github.com/kubernetes/kubernetes/pull/134779), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]", - "author": "joshjms", - "author_url": "https://github.com/joshjms", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134779", - "pr_number": 134779, - "areas": [ - "test", - "provider/gcp", - "release-eng", - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "cloud-provider", - "cluster-lifecycle", - "etcd", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134780": { - "commit": "4415f00294cff245a9594055aed29abcd4e4a0c1", - "text": "Updated the etcd client library to `v3.6.5`.", - "markdown": "Updated the etcd client library to `v3.6.5`. ([#134780](https://github.com/kubernetes/kubernetes/pull/134780), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]", - "author": "joshjms", - "author_url": "https://github.com/joshjms", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134780", - "pr_number": 134780, - "areas": [ - "kubelet", - "kube-proxy", - "apiserver", - "kubectl", - "cloudprovider", - "code-generation", - "dependency" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "api-machinery", - "architecture", - "auth", - "cli", - "cloud-provider", - "cluster-lifecycle", - "instrumentation", - "network", - "node", - "scheduling", - "storage" - ], - "duplicate": true, - "is_mapped": true - }, - "134781": { - "commit": "0bb040288a3a42deb8cce2a65df45b9dfd90d3bb", - "text": "`kubeadm`: Removed the `WaitForAllControlPlaneComponents` feature gate, which graduated to GA in `v1.34` and was locked to enabled by default.", - "markdown": "`kubeadm`: Removed the `WaitForAllControlPlaneComponents` feature gate, which graduated to GA in `v1.34` and was locked to enabled by default. ([#134781](https://github.com/kubernetes/kubernetes/pull/134781), [@neolit123](https://github.com/neolit123))", - "author": "neolit123", - "author_url": "https://github.com/neolit123", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134781", - "pr_number": 134781, - "areas": [ - "kubeadm" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cluster-lifecycle" - ], - "is_mapped": true - }, - "134782": { - "commit": "286d13b96c0e7ddfb9bb1eca7433a90de93a645c", - "text": "Dropped support for `certificates/v1beta1` `CertificateSigningRequest` in `kubectl`.", - "markdown": "Dropped support for `certificates/v1beta1` `CertificateSigningRequest` in `kubectl`. ([#134782](https://github.com/kubernetes/kubernetes/pull/134782), [@scaliby](https://github.com/scaliby))", - "author": "scaliby", - "author_url": "https://github.com/scaliby", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134782", - "pr_number": 134782, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "134784": { - "commit": "3ec2d82da57f2018fc76ae13da7a23a3f9a364f5", - "text": "Added the `StorageVersionMigration` `v1beta1` API and removed the `v1alpha1` API.\n\nACTION REQUIRED: The `v1alpha1` API is no longer supported. Users must remove any `v1alpha1` resources before upgrading.", - "markdown": "Added the `StorageVersionMigration` `v1beta1` API and removed the `v1alpha1` API.\n \n ACTION REQUIRED: The `v1alpha1` API is no longer supported. Users must remove any `v1alpha1` resources before upgrading. ([#134784](https://github.com/kubernetes/kubernetes/pull/134784), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Apps, Auth, Etcd and Testing]", - "documentation": [ - { - "description": "KEP: KEP", - "url": "https://github.com/kubernetes/enhancements/issues/4192", - "type": "KEP" - } - ], - "author": "michaelasp", - "author_url": "https://github.com/michaelasp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134784", - "pr_number": 134784, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "auth", - "etcd", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "action_required": true, - "is_mapped": true - }, - "134793": { - "commit": "3717c7025ea34b29ccbb70fda8cf032478f43933", - "text": "Fixed an issue where requests for a config `FromClass` in the `ResourceClaim` status were not referenced.", - "markdown": "Fixed an issue where requests for a config `FromClass` in the `ResourceClaim` status were not referenced. ([#134793](https://github.com/kubernetes/kubernetes/pull/134793), [@LionelJouin](https://github.com/LionelJouin))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4381", - "type": "KEP" - } - ], - "author": "LionelJouin", - "author_url": "https://github.com/LionelJouin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134793", - "pr_number": 134793, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "134803": { - "commit": "3d595e369174450a4d81269ca8f97032cf0b4ab6", - "text": "Implemented constrained impersonation as described in [KEP-5284](https://kep.k8s.io/5284).", - "markdown": "Implemented constrained impersonation as described in [KEP-5284](https://kep.k8s.io/5284). ([#134803](https://github.com/kubernetes/kubernetes/pull/134803), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/5284", - "type": "external" - } - ], - "author": "enj", - "author_url": "https://github.com/enj", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134803", - "pr_number": 134803, - "areas": [ - "test", - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134826": { - "commit": "1135d04f1d7746b553a675a558efc58e651eabae", - "text": "CSI drivers can now opt in to receive service account tokens via the secrets field instead of volume context by setting `spec.serviceAccountTokenInSecrets: true` in the CSIDriver object. This prevents tokens from being exposed in logs and other outputs. The feature is gated by the `CSIServiceAccountTokenSecrets` feature gate (beta in `v1.35`).", - "markdown": "CSI drivers can now opt in to receive service account tokens via the secrets field instead of volume context by setting `spec.serviceAccountTokenInSecrets: true` in the CSIDriver object. This prevents tokens from being exposed in logs and other outputs. The feature is gated by the `CSIServiceAccountTokenSecrets` feature gate (beta in `v1.35`). ([#134826](https://github.com/kubernetes/kubernetes/pull/134826), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Storage and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/5538-csi-sa-tokens-secrets-field", - "type": "KEP" - } - ], - "author": "aramase", - "author_url": "https://github.com/aramase", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134826", - "pr_number": 134826, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "auth", - "storage", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134833": { - "commit": "fb10a2995459c52238024adbb10ffdfbdafd2c4d", - "text": "Fixed a panic in `kubectl api-resources` that occurred when the Discovery Client failed.", - "markdown": "Fixed a panic in `kubectl api-resources` that occurred when the Discovery Client failed. ([#134833](https://github.com/kubernetes/kubernetes/pull/134833), [@rikatz](https://github.com/rikatz))", - "author": "rikatz", - "author_url": "https://github.com/rikatz", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134833", - "pr_number": 134833, - "areas": [ - "kubectl" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "134875": { - "commit": "934c34435ad851469ee6e97e9da0117fe77494bf", - "text": "Fixed a bug where the health of a DRA resource was not reported in the Pod status if the resource claim was generated from a template or used a different local name in the Pod spec.", - "markdown": "Fixed a bug where the health of a DRA resource was not reported in the Pod status if the resource claim was generated from a template or used a different local name in the Pod spec. ([#134875](https://github.com/kubernetes/kubernetes/pull/134875), [@Jpsassine](https://github.com/Jpsassine)) [SIG Node and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/4680-add-resource-health-to-pod-status/README.md", - "type": "KEP" - } - ], - "author": "Jpsassine", - "author_url": "https://github.com/Jpsassine", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134875", - "pr_number": 134875, - "areas": [ - "test", - "kubelet" - ], - "kinds": [ - "bug" - ], - "sigs": [ - "node", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134905": { - "commit": "c30b578ee59ad0b1505009897a2a3d7766a6073e", - "text": "Scheduler: Added the `bindingTimeout` argument to the DynamicResources plugin configuration, allowing customization of the wait duration in `PreBind` for device binding conditions.\nDefaults to 10 minutes when `DRADeviceBindingConditions` and `DRAResourceClaimDeviceStatus` are both enabled.", - "markdown": "Scheduler: Added the `bindingTimeout` argument to the DynamicResources plugin configuration, allowing customization of the wait duration in `PreBind` for device binding conditions.\n Defaults to 10 minutes when `DRADeviceBindingConditions` and `DRAResourceClaimDeviceStatus` are both enabled. ([#134905](https://github.com/kubernetes/kubernetes/pull/134905), [@fj-naji](https://github.com/fj-naji)) [SIG Node and Scheduling]", - "author": "fj-naji", - "author_url": "https://github.com/fj-naji", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134905", - "pr_number": 134905, - "areas": [ - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "node", - "scheduling" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134906": { - "commit": "5e2ad84f6701a89fb9598fbcef46738f09fac386", - "text": "`kubeadm`: Added a preflight check `ContainerRuntimeVersion` to validate if the installed container runtime supports the `RuntimeConfig` gRPC method. If unsupported, `kubeadm` prints a warning message.\n\nStarting with Kubernetes `v1.36`, `kubelet` might refuse to start if the CRI runtime does not support this feature. More information can be found at the [Kubernetes blog](https://kubernetes.io/blog/2025/09/12/kubernetes-v1-34-cri-cgroup-driver-lookup-now-ga/).", - "markdown": "`kubeadm`: Added a preflight check `ContainerRuntimeVersion` to validate if the installed container runtime supports the `RuntimeConfig` gRPC method. If unsupported, `kubeadm` prints a warning message.\n \n Starting with Kubernetes `v1.36`, `kubelet` might refuse to start if the CRI runtime does not support this feature. More information can be found at the [Kubernetes blog](https://kubernetes.io/blog/2025/09/12/kubernetes-v1-34-cri-cgroup-driver-lookup-now-ga/). ([#134906](https://github.com/kubernetes/kubernetes/pull/134906), [@carlory](https://github.com/carlory))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://kep.k8s.io/4033", - "type": "external" - } - ], - "author": "carlory", - "author_url": "https://github.com/carlory", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134906", - "pr_number": 134906, - "areas": [ - "kubeadm" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cluster-lifecycle" - ], - "feature": true, - "is_mapped": true - }, - "134913": { - "commit": "3f1255dd5fc332de16e920c3b92168002841e545", - "text": "Dropped support for `discovery/v1beta1` `EndpointSlice` in `kubectl`.", - "markdown": "Dropped support for `discovery/v1beta1` `EndpointSlice` in `kubectl`. ([#134913](https://github.com/kubernetes/kubernetes/pull/134913), [@scaliby](https://github.com/scaliby))", - "author": "scaliby", - "author_url": "https://github.com/scaliby", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134913", - "pr_number": 134913, - "areas": [ - "kubectl" - ], - "kinds": [ - "cleanup" - ], - "sigs": [ - "cli" - ], - "is_mapped": true - }, - "134948": { - "commit": "a490c43f0ec6bf9fa4fa19a5b9a5a9937716d87a", - "text": "Promoted `PodObservedGenerationTracking` to GA.", - "markdown": "Promoted `PodObservedGenerationTracking` to GA. ([#134948](https://github.com/kubernetes/kubernetes/pull/134948), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, Node, Scheduling and Testing]", - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134948", - "pr_number": 134948, - "areas": [ - "test", - "kubelet", - "code-generation" - ], - "kinds": [ - "api-change" - ], - "sigs": [ - "api-machinery", - "apps", - "node", - "scheduling", - "testing" - ], - "duplicate": true, - "is_mapped": true - }, - "134949": { - "commit": "a13ad97048f4da8e4ce2f22dcd6e02a4173ecf9e", - "text": "Promoted `InPlacePodVerticalScaling` to GA.", - "markdown": "Promoted `InPlacePodVerticalScaling` to GA. ([#134949](https://github.com/kubernetes/kubernetes/pull/134949), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Node and Scheduling]", - "author": "natasha41575", - "author_url": "https://github.com/natasha41575", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134949", - "pr_number": 134949, - "areas": [ - "kubelet" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "api-machinery", - "node", - "scheduling" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "134956": { - "commit": "808d320de1e76c3ee89c09f8a65857781b8c5f5b", - "text": "Removed `BlockOwnerDeletion` from `ResourceClaim` created from `ResourceClaimTemplate` and from `extendedResourceClaim` created by the `scheduler`.", - "markdown": "Removed `BlockOwnerDeletion` from `ResourceClaim` created from `ResourceClaimTemplate` and from `extendedResourceClaim` created by the `scheduler`. ([#134956](https://github.com/kubernetes/kubernetes/pull/134956), [@yliaog](https://github.com/yliaog)) [SIG Apps, Node and Scheduling]", - "author": "yliaog", - "author_url": "https://github.com/yliaog", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134956", - "pr_number": 134956, - "kinds": [ - "bug" - ], - "sigs": [ - "apps", - "node", - "scheduling" - ], - "duplicate": true, - "is_mapped": true - }, - "134962": { - "commit": "c329e6492901b7aae1a7555d895e1f75fb43b881", - "text": "Fixed an issue with setting `distinctAttribute=nil` when the `DRAConsumableCapacity` feature gate is disabled.", - "markdown": "Fixed an issue with setting `distinctAttribute=nil` when the `DRAConsumableCapacity` feature gate is disabled. ([#134962](https://github.com/kubernetes/kubernetes/pull/134962), [@sunya-ch](https://github.com/sunya-ch))", - "author": "sunya-ch", - "author_url": "https://github.com/sunya-ch", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134962", - "pr_number": 134962, - "kinds": [ - "bug" - ], - "sigs": [ - "node" - ], - "is_mapped": true - }, - "134964": { - "commit": "b5c62b1b10d0643d0be841eff2a0e9f1b0b77ca2", - "text": "Dropped `DeviceBindingConditions` fields when the `DRADeviceBindingConditions` feature gate is not enabled and not in use.", - "markdown": "Dropped `DeviceBindingConditions` fields when the `DRADeviceBindingConditions` feature gate is not enabled and not in use. ([#134964](https://github.com/kubernetes/kubernetes/pull/134964), [@sunya-ch](https://github.com/sunya-ch))", - "author": "sunya-ch", - "author_url": "https://github.com/sunya-ch", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134964", - "pr_number": 134964, - "kinds": [ - "bug" - ], - "is_mapped": true - }, - "134984": { - "commit": "1ffcea577bec6886c940245bd804991c737a5a52", - "text": "Added `ObservedGeneration` to CustomResourceDefinition conditions.", - "markdown": "Added `ObservedGeneration` to CustomResourceDefinition conditions. ([#134984](https://github.com/kubernetes/kubernetes/pull/134984), [@michaelasp](https://github.com/michaelasp))", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4192", - "type": "KEP" - } - ], - "author": "michaelasp", - "author_url": "https://github.com/michaelasp", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134984", - "pr_number": 134984, - "areas": [ - "apiserver", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery" - ], - "feature": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134994": { - "commit": "4ca91a6542802f1339caf6f2f8dfe917beb5ce9c", - "text": "Removed the `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` feature gates, which were locked since `v1.32`.", - "markdown": "Removed the `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` feature gates, which were locked since `v1.32`. ([#134994](https://github.com/kubernetes/kubernetes/pull/134994), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Node and Testing]", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134994", - "pr_number": 134994, - "areas": [ - "test", - "apiserver" - ], - "kinds": [ - "cleanup", - "api-change" - ], - "sigs": [ - "api-machinery", - "auth", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "134995": { - "commit": "5fd9cefd95b7e775ab515b3cf7ff2d159df1acd8", - "text": "Introduced a structured and versioned `v1alpha1` response format for the `flagz` endpoint.", - "markdown": "Introduced a structured and versioned `v1alpha1` response format for the `flagz` endpoint. ([#134995](https://github.com/kubernetes/kubernetes/pull/134995), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", - "type": "KEP" - } - ], - "author": "yongruilin", - "author_url": "https://github.com/yongruilin", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/134995", - "pr_number": 134995, - "areas": [ - "test", - "kubelet", - "kube-proxy", - "apiserver", - "code-generation", - "dependency" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "architecture", - "instrumentation", - "network", - "node", - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "135003": { - "commit": "9cad3f8787606d711ea8890398877fdfab011474", - "text": "Added `kubectl kuberc view` and `kubectl kuberc set` commands to perform operations against the `kuberc` file.", - "markdown": "Added `kubectl kuberc view` and `kubectl kuberc set` commands to perform operations against the `kuberc` file. ([#135003](https://github.com/kubernetes/kubernetes/pull/135003), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3104-introduce-kuberc", - "type": "KEP" - } - ], - "author": "ardaguclu", - "author_url": "https://github.com/ardaguclu", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/135003", - "pr_number": 135003, - "areas": [ - "test", - "kubectl" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "cli", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "135007": { - "commit": "f09cd625bc3cd5fa8debb5d487db76ca49028402", - "text": "The scheduler now clears the `nominatedNodeName` field for Pods upon scheduling or binding failure. External components, such as Cluster Autoscaler and Karpenter, should not overwrite this field.", - "markdown": "The scheduler now clears the `nominatedNodeName` field for Pods upon scheduling or binding failure. External components, such as Cluster Autoscaler and Karpenter, should not overwrite this field. ([#135007](https://github.com/kubernetes/kubernetes/pull/135007), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/5278", - "type": "KEP" - } - ], - "author": "ania-borowiec", - "author_url": "https://github.com/ania-borowiec", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/135007", - "pr_number": 135007, - "areas": [ - "test" - ], - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling", - "testing" - ], - "feature": true, - "duplicate": true, - "is_mapped": true - }, - "135017": { - "commit": "48c56e04e0bc2cdc33eb67ee36ca69eba96b5d0b", - "text": "`kube-controller-manager`: Fixed a `v1.34` regression that triggered a spurious rollout of existing StatefulSets when upgrading the control plane from `v1.33` to `v1.34`. This fix is guarded by the `StatefulSetSemanticRevisionComparison` feature gate, which is enabled by default.", - "markdown": "`kube-controller-manager`: Fixed a `v1.34` regression that triggered a spurious rollout of existing StatefulSets when upgrading the control plane from `v1.33` to `v1.34`. This fix is guarded by the `StatefulSetSemanticRevisionComparison` feature gate, which is enabled by default. ([#135017](https://github.com/kubernetes/kubernetes/pull/135017), [@liggitt](https://github.com/liggitt))", - "author": "liggitt", - "author_url": "https://github.com/liggitt", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/135017", - "pr_number": 135017, - "kinds": [ - "bug", - "regression" - ], - "sigs": [ - "apps" - ], - "duplicate_kind": true, - "is_mapped": true - }, - "135059": { - "commit": "22d41b544337e1ebd6c80f36e1c8cf05be3797bf", - "text": "After fixing regressions detected in `v1.34`, the `SchedulerAsyncAPICalls` feature gate was re-enabled by default.", - "markdown": "After fixing regressions detected in `v1.34`, the `SchedulerAsyncAPICalls` feature gate was re-enabled by default. ([#135059](https://github.com/kubernetes/kubernetes/pull/135059), [@macsko](https://github.com/macsko))", - "author": "macsko", - "author_url": "https://github.com/macsko", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/135059", - "pr_number": 135059, - "kinds": [ - "feature" - ], - "sigs": [ - "scheduling" - ], - "feature": true, - "is_mapped": true - }, - "135080": { - "commit": "97cb47a91330db13d05e8674ce2a80ace19e4d99", - "text": "Promoted the `JobManagedBy` feature to general availability. The `JobManagedBy` feature gate was locked to `true` and will be removed in a future Kubernetes release.", - "markdown": "Promoted the `JobManagedBy` feature to general availability. The `JobManagedBy` feature gate was locked to `true` and will be removed in a future Kubernetes release. ([#135080](https://github.com/kubernetes/kubernetes/pull/135080), [@dejanzele](https://github.com/dejanzele)) [SIG API Machinery, Apps and Testing]", - "documentation": [ - { - "description": "[KEP]", - "url": "https://github.com/kubernetes/enhancements/issues/4368", - "type": "KEP" - } - ], - "author": "dejanzele", - "author_url": "https://github.com/dejanzele", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/135080", - "pr_number": 135080, - "areas": [ - "test", - "code-generation" - ], - "kinds": [ - "api-change", - "feature" - ], - "sigs": [ - "api-machinery", - "apps", - "testing" - ], - "feature": true, - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - }, - "135081": { - "commit": "2a48a78fcb9f0574f2cd7e453fcf56d5ff1c0daa", - "text": "Reduced event spam during volume operation errors in the Portworx in-tree driver.", - "markdown": "Reduced event spam during volume operation errors in the Portworx in-tree driver. ([#135081](https://github.com/kubernetes/kubernetes/pull/135081), [@gohilankit](https://github.com/gohilankit))", - "author": "gohilankit", - "author_url": "https://github.com/gohilankit", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/135081", - "pr_number": 135081, - "kinds": [ - "cleanup" - ], - "sigs": [ - "storage" - ], - "do_not_publish": true, - "is_mapped": true - }, - "135084": { - "commit": "459bea5adffe702cf3bc006b160f863399bf560d", - "text": "Pod resize now only allows CPU and memory resources; other resource types are forbidden.", - "markdown": "Pod resize now only allows CPU and memory resources; other resource types are forbidden. ([#135084](https://github.com/kubernetes/kubernetes/pull/135084), [@tallclair](https://github.com/tallclair)) [SIG Apps, Node and Testing]", - "author": "tallclair", - "author_url": "https://github.com/tallclair", - "pr_url": "https://github.com/kubernetes/kubernetes/pull/135084", - "pr_number": 135084, - "areas": [ - "test" - ], - "kinds": [ - "bug", - "api-change" - ], - "sigs": [ - "apps", - "node", - "testing" - ], - "duplicate": true, - "duplicate_kind": true, - "is_mapped": true - } +{ + "117160": { + "commit": "6958161aa94617357d14fc9b24637f4587296ff1", + "text": "Updated `kubectl get` and `kubectl describe` human-readable output to no longer show counts for referenced tokens and secrets.", + "markdown": "Updated `kubectl get` and `kubectl describe` human-readable output to no longer show counts for referenced tokens and secrets. ([#117160](https://github.com/kubernetes/kubernetes/pull/117160), [@liggitt](https://github.com/liggitt)) [SIG CLI and Testing]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/117160", + "pr_number": 117160, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "122140": { + "commit": "cc3935783372bc6019e150ba9b91f87ac6970c5b", + "text": "Added support for Pods to reference the same `PersistentVolumeClaim` across multiple volumes.", + "markdown": "Added support for Pods to reference the same `PersistentVolumeClaim` across multiple volumes. ([#122140](https://github.com/kubernetes/kubernetes/pull/122140), [@huww98](https://github.com/huww98)) [SIG Node, Storage and Testing]", + "author": "huww98", + "author_url": "https://github.com/huww98", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/122140", + "pr_number": 122140, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "123642": { + "commit": "b4d4cc93840fa30a305b013acd1b1060ed3f8ee2", + "text": "The JWT authenticator in `kube-apiserver` now reports the following metrics when the `StructuredAuthenticationConfiguration` feature gate is enabled:\n- `apiserver_authentication_jwt_authenticator_jwks_fetch_last_timestamp_seconds`\n- `apiserver_authentication_jwt_authenticator_jwks_fetch_last_key_set_info`.", + "markdown": "The JWT authenticator in `kube-apiserver` now reports the following metrics when the `StructuredAuthenticationConfiguration` feature gate is enabled:\n - `apiserver_authentication_jwt_authenticator_jwks_fetch_last_timestamp_seconds`\n - `apiserver_authentication_jwt_authenticator_jwks_fetch_last_key_set_info`. ([#123642](https://github.com/kubernetes/kubernetes/pull/123642), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-auth/3331-structured-authentication-configuration", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/123642", + "pr_number": 123642, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "125912": { + "commit": "6c91840fed8f53f7ea4dffe5e6b6ab95144d6aad", + "text": "Migrated the `CPUManager` to contextual logging.", + "markdown": "Migrated the `CPUManager` to contextual logging. ([#125912](https://github.com/kubernetes/kubernetes/pull/125912), [@ffromani](https://github.com/ffromani))", + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/125912", + "pr_number": 125912, + "areas": [ + "kubelet", + "logging" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "126979": { + "commit": "b9a8dffa51ece80efb9584c67bc3ac9d03fb6f34", + "text": "Fixed `replicaCount` calculation exceeding max `int32`.", + "markdown": "Fixed `replicaCount` calculation exceeding max `int32`. ([#126979](https://github.com/kubernetes/kubernetes/pull/126979), [@omerap12](https://github.com/omerap12)) [SIG Apps and Autoscaling]", + "author": "omerap12", + "author_url": "https://github.com/omerap12", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/126979", + "pr_number": 126979, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "autoscaling" + ], + "duplicate": true, + "do_not_publish": true, + "is_mapped": true + }, + "130548": { + "commit": "6b94b09f0e201bd0592e7a3863cecfa9bc4b4755", + "text": "Bumped addon manager to use `kubectl` version `v1.32.2`.", + "markdown": "Bumped addon manager to use `kubectl` version `v1.32.2`. ([#130548](https://github.com/kubernetes/kubernetes/pull/130548), [@Jefftree](https://github.com/Jefftree)) [SIG Cloud Provider, Scalability and Testing]", + "author": "Jefftree", + "author_url": "https://github.com/Jefftree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130548", + "pr_number": 130548, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "scalability", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "130551": { + "commit": "90a24cf81d92b8d3e9f3946b0e3ae235eeadb545", + "text": "Updated sandbox ordering to use by attempt count or creation time.", + "markdown": "Updated sandbox ordering to use by attempt count or creation time. ([#130551](https://github.com/kubernetes/kubernetes/pull/130551), [@yylt](https://github.com/yylt))", + "author": "yylt", + "author_url": "https://github.com/yylt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130551", + "pr_number": 130551, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "do_not_publish": true, + "is_mapped": true + }, + "130951": { + "commit": "fa9071302f88a359ee53eaf118fe3522c16d9cac", + "text": "Added metrics for the `MaxUnavailable` feature in `StatefulSet`.", + "markdown": "Added metrics for the `MaxUnavailable` feature in `StatefulSet`. ([#130951](https://github.com/kubernetes/kubernetes/pull/130951), [@Edwinhr716](https://github.com/Edwinhr716)) [SIG Apps and Instrumentation]", + "author": "Edwinhr716", + "author_url": "https://github.com/Edwinhr716", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/130951", + "pr_number": 130951, + "areas": [ + "stable-metrics" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "131092": { + "commit": "c600ebb74bec8440f2a428de15aba5e4b2c23f0e", + "text": "metrics: Excluded `dryRun` requests from `apiserver_request_sli_duration_seconds`.", + "markdown": "Metrics: Excluded `dryRun` requests from `apiserver_request_sli_duration_seconds`. ([#131092](https://github.com/kubernetes/kubernetes/pull/131092), [@aldudko](https://github.com/aldudko)) [SIG API Machinery and Instrumentation]", + "author": "aldudko", + "author_url": "https://github.com/aldudko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131092", + "pr_number": 131092, + "areas": [ + "apiserver" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "instrumentation" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "131411": { + "commit": "10b97337f7d6deb5cc22c223f852eaf5547923d0", + "text": "kube-apiserver: Made sure that when `--requestheader-client-ca-file` and `--client-ca-file` contain overlapping certificates, `--requestheader-allowed-names` must be specified so that regular client certificates cannot set authenticating proxy headers for arbitrary users.", + "markdown": "Kube-apiserver: Made sure that when `--requestheader-client-ca-file` and `--client-ca-file` contain overlapping certificates, `--requestheader-allowed-names` must be specified so that regular client certificates cannot set authenticating proxy headers for arbitrary users. ([#131411](https://github.com/kubernetes/kubernetes/pull/131411), [@ballista01](https://github.com/ballista01)) [SIG API Machinery, Auth and Security]", + "author": "ballista01", + "author_url": "https://github.com/ballista01", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131411", + "pr_number": 131411, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "security" + ], + "duplicate": true, + "is_mapped": true + }, + "131755": { + "commit": "69e637f24c23764973e30491afab202c0d083399", + "text": "Generated OpenAPI model packages for API types into `zz_generated.model_name.go` files, accessible via the `OpenAPIModelName()` function. This allows API authors to declare desired OpenAPI model packages instead of relying on the Go package path of API types.", + "markdown": "Generated OpenAPI model packages for API types into `zz_generated.model_name.go` files, accessible via the `OpenAPIModelName()` function. This allows API authors to declare desired OpenAPI model packages instead of relying on the Go package path of API types. ([#131755](https://github.com/kubernetes/kubernetes/pull/131755), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing]", + "author": "jpbetz", + "author_url": "https://github.com/jpbetz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/131755", + "pr_number": 131755, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "scheduling", + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "132157": { + "commit": "af70ebcbf505bd9c2b879a8a7081724435a9fb06", + "text": "Removed the `UserNamespacesPodSecurityStandards` feature gate. The minimum supported Kubernetes version for `kubelet` is now `v1.31`, so the gate is no longer needed.", + "markdown": "Removed the `UserNamespacesPodSecurityStandards` feature gate. The minimum supported Kubernetes version for `kubelet` is now `v1.31`, so the gate is no longer needed. ([#132157](https://github.com/kubernetes/kubernetes/pull/132157), [@haircommander](https://github.com/haircommander)) [SIG Auth, Node and Testing]", + "author": "haircommander", + "author_url": "https://github.com/haircommander", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132157", + "pr_number": 132157, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "132240": { + "commit": "645073f978ed0d7308ad3be453a36a8e99006b3c", + "text": "Improved throughput in the `real-FIFO` queue used by `informers` and `controllers` by adding batch handling for processing watch events.", + "markdown": "Improved throughput in the `real-FIFO` queue used by `informers` and `controllers` by adding batch handling for processing watch events. ([#132240](https://github.com/kubernetes/kubernetes/pull/132240), [@yue9944882](https://github.com/yue9944882)) [SIG API Machinery, Scheduling and Storage]", + "author": "yue9944882", + "author_url": "https://github.com/yue9944882", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132240", + "pr_number": 132240, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132288": { + "commit": "546519987d48d02e6a493a339c064dfd39be5e7f", + "text": "Upgraded `CoreDNS` to `v1.12.3`.", + "markdown": "Upgraded `CoreDNS` to `v1.12.3`. ([#132288](https://github.com/kubernetes/kubernetes/pull/132288), [@thevilledev](https://github.com/thevilledev)) [SIG Cloud Provider and Cluster Lifecycle]", + "author": "thevilledev", + "author_url": "https://github.com/thevilledev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132288", + "pr_number": 132288, + "areas": [ + "provider/gcp", + "kubeadm", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "cluster-lifecycle" + ], + "duplicate": true, + "is_mapped": true + }, + "132549": { + "commit": "4d15270bd77735bcdf3cb432864d1e3537360faa", + "text": "Fixed a bug that caused duplicate validation when updating `PersistentVolumeClaims`, `VolumeAttachments` and `VolumeAttributesClasses`.", + "markdown": "Fixed a bug that caused duplicate validation when updating `PersistentVolumeClaims`, `VolumeAttachments` and `VolumeAttributesClasses`. ([#132549](https://github.com/kubernetes/kubernetes/pull/132549), [@gavinkflam](https://github.com/gavinkflam))", + "author": "gavinkflam", + "author_url": "https://github.com/gavinkflam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132549", + "pr_number": 132549, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "is_mapped": true + }, + "132550": { + "commit": "b54c00b2adc261d079630b368138429d5dfc768f", + "text": "Fixed a bug that caused duplicate validation when updating `Role` and `RoleBinding` resources.", + "markdown": "Fixed a bug that caused duplicate validation when updating `Role` and `RoleBinding` resources. ([#132550](https://github.com/kubernetes/kubernetes/pull/132550), [@gavinkflam](https://github.com/gavinkflam))", + "author": "gavinkflam", + "author_url": "https://github.com/gavinkflam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132550", + "pr_number": 132550, + "kinds": [ + "bug" + ], + "sigs": [ + "auth" + ], + "is_mapped": true + }, + "132578": { + "commit": "c0d2bcdf718bfb2c529e14a086919f2e93aa8ddc", + "text": "Improved the `FreeDiskSpaceFailed` warning event to provide more actionable details when image garbage collection fails to free enough disk space. Example: `Insufficient free disk space on the node's image filesystem (95.0% of 10.0 GiB used). Failed to free sufficient space by deleting unused images. Consider resizing the disk or deleting unused files.`.", + "markdown": "Improved the `FreeDiskSpaceFailed` warning event to provide more actionable details when image garbage collection fails to free enough disk space. Example: `Insufficient free disk space on the node's image filesystem (95.0% of 10.0 GiB used). Failed to free sufficient space by deleting unused images. Consider resizing the disk or deleting unused files.`. ([#132578](https://github.com/kubernetes/kubernetes/pull/132578), [@drigz](https://github.com/drigz))", + "author": "drigz", + "author_url": "https://github.com/drigz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132578", + "pr_number": 132578, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "132606": { + "commit": "08946ca255807f800722d24b4dd2414d9193e040", + "text": "Added paths section to scheduler `statusz` endpoint.", + "markdown": "Added paths section to scheduler `statusz` endpoint. ([#132606](https://github.com/kubernetes/kubernetes/pull/132606), [@Peac36](https://github.com/Peac36)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing]", + "author": "Peac36", + "author_url": "https://github.com/Peac36", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132606", + "pr_number": 132606, + "areas": [ + "test", + "kubelet", + "kube-proxy" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "instrumentation", + "network", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132607": { + "commit": "8ec223428efcb0214258ee41651d4a93a66e437d", + "text": "Increased the coverage to 89.8%.", + "markdown": "Increased the coverage to 89.8%. ([#132607](https://github.com/kubernetes/kubernetes/pull/132607), [@ylink-lfs](https://github.com/ylink-lfs))", + "author": "ylink-lfs", + "author_url": "https://github.com/ylink-lfs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132607", + "pr_number": 132607, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "do_not_publish": true, + "is_mapped": true + }, + "132644": { + "commit": "e86c0171a736f7fe0d0b7cf6874dd02fc43fe90c", + "text": "Added a counter metric `kubelet_image_manager_ensure_image_requests_total{present_locally, pull_policy, pull_required}` that exposes details about `kubelet` ensuring an image exists on the node.", + "markdown": "Added a counter metric `kubelet_image_manager_ensure_image_requests_total{present_locally, pull_policy, pull_required}` that exposes details about `kubelet` ensuring an image exists on the node. ([#132644](https://github.com/kubernetes/kubernetes/pull/132644), [@stlaz](https://github.com/stlaz)) [SIG Auth and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/2535", + "type": "KEP" + } + ], + "author": "stlaz", + "author_url": "https://github.com/stlaz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132644", + "pr_number": 132644, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "auth", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "132663": { + "commit": "3e48146c5d3343f00d44b5177b32aa7c2993d36f", + "text": "Updated `applyconfiguration-gen` to preserve struct and field comments from source types in the generated code.", + "markdown": "Updated `applyconfiguration-gen` to preserve struct and field comments from source types in the generated code. ([#132663](https://github.com/kubernetes/kubernetes/pull/132663), [@mrIncompetent](https://github.com/mrIncompetent))", + "author": "mrIncompetent", + "author_url": "https://github.com/mrIncompetent", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132663", + "pr_number": 132663, + "areas": [ + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "132665": { + "commit": "5a720a58beade6fb96e897d95ddd94aeadf21b6b", + "text": "Updated `applyconfiguration-gen` to generate extract functions for all subresources.", + "markdown": "Updated `applyconfiguration-gen` to generate extract functions for all subresources. ([#132665](https://github.com/kubernetes/kubernetes/pull/132665), [@mrIncompetent](https://github.com/mrIncompetent))", + "author": "mrIncompetent", + "author_url": "https://github.com/mrIncompetent", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132665", + "pr_number": 132665, + "areas": [ + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "is_mapped": true + }, + "132798": { + "commit": "9254b3e14ec17fe857f923edcba0b3b806d41182", + "text": "kube-apiserver: Improved validation error messages for custom resources with CEL validation rules to include the value that failed validation.", + "markdown": "Kube-apiserver: Improved validation error messages for custom resources with CEL validation rules to include the value that failed validation. ([#132798](https://github.com/kubernetes/kubernetes/pull/132798), [@cbandy](https://github.com/cbandy))", + "author": "cbandy", + "author_url": "https://github.com/cbandy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132798", + "pr_number": 132798, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "132825": { + "commit": "790944901f4cc441bd0b80ba94191473593a9ada", + "text": "Added `WithOrigin` within `apis/core/validation` with adjusted tests.", + "markdown": "Added `WithOrigin` within `apis/core/validation` with adjusted tests. ([#132825](https://github.com/kubernetes/kubernetes/pull/132825), [@PatrickLaabs](https://github.com/PatrickLaabs))", + "author": "PatrickLaabs", + "author_url": "https://github.com/PatrickLaabs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132825", + "pr_number": 132825, + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "132927": { + "commit": "3eeb838aba6d5b311dcfb82f79bd55adfbd45f99", + "text": "DRA API: Fixed the `tolerations` field in exact and sub requests to drop properly when the `DRADeviceTaints` API is disabled.", + "markdown": "DRA API: Fixed the `tolerations` field in exact and sub requests to drop properly when the `DRADeviceTaints` API is disabled. ([#132927](https://github.com/kubernetes/kubernetes/pull/132927), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132927", + "pr_number": 132927, + "kinds": [ + "bug" + ], + "is_mapped": true + }, + "132960": { + "commit": "b86ff94014e02b31149f34159ae966bd4cbbdc12", + "text": "Fixed a bug that caused apiservers to send an inappropriate Content-Type request header to authorization, token authentication, imagepolicy admission, and audit webhooks when the alpha client-go feature gate \"ClientsPreferCBOR\" is enabled.", + "markdown": "Fixed a bug that caused apiservers to send an inappropriate Content-Type request header to authorization, token authentication, imagepolicy admission, and audit webhooks when the alpha client-go feature gate \"ClientsPreferCBOR\" is enabled. ([#132960](https://github.com/kubernetes/kubernetes/pull/132960), [@benluddy](https://github.com/benluddy)) [SIG API Machinery and Node]", + "author": "benluddy", + "author_url": "https://github.com/benluddy", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/132960", + "pr_number": 132960, + "areas": [ + "kubelet", + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "node" + ], + "duplicate": true + }, + "133026": { + "commit": "cb67d10970fac3f79513f4d748a4c825ad2940ca", + "text": "Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/dra` in favor of `google.golang.org/protobuf`.", + "markdown": "Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/dra` in favor of `google.golang.org/protobuf`. ([#133026](https://github.com/kubernetes/kubernetes/pull/133026), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery and Node]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133026", + "pr_number": 133026, + "areas": [ + "kubelet", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "node" + ], + "duplicate": true + }, + "133072": { + "commit": "031f4d541aa2c6386646d08cce809eb005985353", + "text": "Fixed a startup probe race condition that caused main containers to remain stuck in \"Initializing\" state when sidecar containers with startup probes had failed initially but succeeded on restart in pods with `restartPolicy=Never`.", + "markdown": "Fixed a startup probe race condition that caused main containers to remain stuck in \"Initializing\" state when sidecar containers with startup probes had failed initially but succeeded on restart in pods with `restartPolicy=Never`. ([#133072](https://github.com/kubernetes/kubernetes/pull/133072), [@AadiDev005](https://github.com/AadiDev005)) [SIG Node and Testing]", + "author": "AadiDev005", + "author_url": "https://github.com/AadiDev005", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133072", + "pr_number": 133072, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "133087": { + "commit": "f051670a473d8583af3397795938d37ca4ebf637", + "text": "Promoted ReplicaSet and Deployment `.status.terminatingReplicas` tracking to beta. The `DeploymentReplicaSetTerminatingReplicas` feature gate is now enabled by default.", + "markdown": "Promoted ReplicaSet and Deployment `.status.terminatingReplicas` tracking to beta. The `DeploymentReplicaSetTerminatingReplicas` feature gate is now enabled by default. ([#133087](https://github.com/kubernetes/kubernetes/pull/133087), [@atiratree](https://github.com/atiratree)) [SIG API Machinery, Apps and Testing]", + "author": "atiratree", + "author_url": "https://github.com/atiratree", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133087", + "pr_number": 133087, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true + }, + "133097": { + "commit": "ddb015f023b48d7ae6d5e24325d1a8b7054d9a9c", + "text": "Added the correct error when eviction is blocked due to the failSafe mechanism of the `DisruptionController`.", + "markdown": "Added the correct error when eviction is blocked due to the failSafe mechanism of the `DisruptionController`. ([#133097](https://github.com/kubernetes/kubernetes/pull/133097), [@kei01234kei](https://github.com/kei01234kei)) [SIG Apps and Node]", + "author": "kei01234kei", + "author_url": "https://github.com/kei01234kei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133097", + "pr_number": 133097, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "133128": { + "commit": "50e3cb3f583c6eb5d84e7f4f752a628839045657", + "text": "Promoted HPA configurable tolerance to beta. The `HPAConfigurableTolerance` feature gate has now been enabled by default.", + "markdown": "Promoted HPA configurable tolerance to beta. The `HPAConfigurableTolerance` feature gate has now been enabled by default. ([#133128](https://github.com/kubernetes/kubernetes/pull/133128), [@jm-franc](https://github.com/jm-franc)) [SIG API Machinery and Autoscaling]", + "author": "jm-franc", + "author_url": "https://github.com/jm-franc", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133128", + "pr_number": 133128, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "autoscaling" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133153": { + "commit": "7af016ec317ef4b55b73cfb372ed8021495c5988", + "text": "Promoted the `MaxUnavailableStatefulSet` feature to beta and enabling it by default.", + "markdown": "Promoted the `MaxUnavailableStatefulSet` feature to beta and enabling it by default. ([#133153](https://github.com/kubernetes/kubernetes/pull/133153), [@helayoty](https://github.com/helayoty)) [SIG API Machinery and Apps]", + "author": "helayoty", + "author_url": "https://github.com/helayoty", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133153", + "pr_number": 133153, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133172": { + "commit": "597a684bb0653a607009e97299986763ebfde020", + "text": "Moved Types in `k/k/pkg/scheduler/framework`:\n`Handle`,\n`Plugin`,\n`PreEnqueuePlugin`, `QueueSortPlugin`, `EnqueueExtensions`, `PreFilterExtensions`, `PreFilterPlugin`, `FilterPlugin`, `PostFilterPlugin`, `PreScorePlugin`, `ScorePlugin`, `ReservePlugin`, `PreBindPlugin`, `PostBindPlugin`, `PermitPlugin`, `BindPlugin`,\n`PodActivator`, `PodNominator`, `PluginsRunner`,\n`LessFunc`, `ScoreExtensions`, `NodeToStatusReader`, `NodeScoreList`, `NodeScore`, `NodePluginScores`, `PluginScore`, `NominatingMode`, `NominatingInfo`, `WaitingPod`, `PreFilterResult`, `PostFilterResult`,\n`Extender`,\n`NodeInfoLister`, `StorageInfoLister`, `SharedLister`, `ResourceSliceLister`, `DeviceClassLister`, `ResourceClaimTracker`, `SharedDRAManager`\n\nto package `k8s.io/kube-scheduler/framework`. Users should update import paths. The interfaces don't change.\n\nType `Parallelizer` in `k/k/pkg/scheduler/framework/parallelism` has been split into interface `Parallelizer` (in `k8s.io/kube-scheduler/framework`) and `struct Parallelizer` (location unchanged in k/k). Plugin developers should update the import path to staging repo.", + "markdown": "Moved Types in `k/k/pkg/scheduler/framework`:\n `Handle`,\n `Plugin`,\n `PreEnqueuePlugin`, `QueueSortPlugin`, `EnqueueExtensions`, `PreFilterExtensions`, `PreFilterPlugin`, `FilterPlugin`, `PostFilterPlugin`, `PreScorePlugin`, `ScorePlugin`, `ReservePlugin`, `PreBindPlugin`, `PostBindPlugin`, `PermitPlugin`, `BindPlugin`,\n `PodActivator`, `PodNominator`, `PluginsRunner`,\n `LessFunc`, `ScoreExtensions`, `NodeToStatusReader`, `NodeScoreList`, `NodeScore`, `NodePluginScores`, `PluginScore`, `NominatingMode`, `NominatingInfo`, `WaitingPod`, `PreFilterResult`, `PostFilterResult`,\n `Extender`,\n `NodeInfoLister`, `StorageInfoLister`, `SharedLister`, `ResourceSliceLister`, `DeviceClassLister`, `ResourceClaimTracker`, `SharedDRAManager`\n \n to package `k8s.io/kube-scheduler/framework`. Users should update import paths. The interfaces don't change.\n \n Type `Parallelizer` in `k/k/pkg/scheduler/framework/parallelism` has been split into interface `Parallelizer` (in `k8s.io/kube-scheduler/framework`) and `struct Parallelizer` (location unchanged in k/k). Plugin developers should update the import path to staging repo. ([#133172](https://github.com/kubernetes/kubernetes/pull/133172), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Release, Scheduling, Storage and Testing]", + "author": "ania-borowiec", + "author_url": "https://github.com/ania-borowiec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133172", + "pr_number": 133172, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "release", + "scheduling", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "133190": { + "commit": "243d8c000e451da6f0e8f80704db5d5f672d3d18", + "text": "Updated the `/statusz` page for `kube-proxy` to include a list of exposed endpoints, making debugging and introspection easier.", + "markdown": "Updated the `/statusz` page for `kube-proxy` to include a list of exposed endpoints, making debugging and introspection easier. ([#133190](https://github.com/kubernetes/kubernetes/pull/133190), [@aman4433](https://github.com/aman4433)) [SIG Network and Node]", + "author": "aman4433", + "author_url": "https://github.com/aman4433", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133190", + "pr_number": 133190, + "areas": [ + "kubelet", + "kube-proxy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network", + "node" + ], + "duplicate": true, + "is_mapped": true + }, + "133211": { + "commit": "4cfdb209fbe6b6085efa3dab87fc60f25662cf3b", + "text": "Added remote runtime and image `Close()` method to be able to close the connection.", + "markdown": "Added remote runtime and image `Close()` method to be able to close the connection. ([#133211](https://github.com/kubernetes/kubernetes/pull/133211), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133211", + "pr_number": 133211, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true + }, + "133239": { + "commit": "c4fdf5f0272616eb18b38452b18c36073b9c2a41", + "text": "Added `paths` section to kubelet `statusz` endpoint.", + "markdown": "Added `paths` section to kubelet `statusz` endpoint. ([#133239](https://github.com/kubernetes/kubernetes/pull/133239), [@Peac36](https://github.com/Peac36))", + "author": "Peac36", + "author_url": "https://github.com/Peac36", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133239", + "pr_number": 133239, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "133323": { + "commit": "817534d78188e57e9e71618bb17d3e19a48d88fa", + "text": "Updated `kubectl auth reconcile` to retry reconciliation when a conflict error occurs.", + "markdown": "Updated `kubectl auth reconcile` to retry reconciliation when a conflict error occurs. ([#133323](https://github.com/kubernetes/kubernetes/pull/133323), [@liggitt](https://github.com/liggitt)) [SIG Auth and CLI]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133323", + "pr_number": 133323, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "auth", + "cli" + ], + "duplicate": true, + "is_mapped": true + }, + "133327": { + "commit": "d9c4a092f5325ab0a4832b72111f1f0fa5966518", + "text": "Enabled `kubectl get -o kyaml` by default. To disable it, set `KUBECTL_KYAML=false`.", + "markdown": "Enabled `kubectl get -o kyaml` by default. To disable it, set `KUBECTL_KYAML=false`. ([#133327](https://github.com/kubernetes/kubernetes/pull/133327), [@thockin](https://github.com/thockin))", + "author": "thockin", + "author_url": "https://github.com/thockin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133327", + "pr_number": 133327, + "areas": [ + "kubectl" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133338": { + "commit": "52f45c822fff45caae5eb22eff13576e8551f0ce", + "text": "Fixed an issue where the default `serviceCIDR` controller did not log events because the event broadcaster was shutdown during initialization.", + "markdown": "Fixed an issue where the default `serviceCIDR` controller did not log events because the event broadcaster was shutdown during initialization. ([#133338](https://github.com/kubernetes/kubernetes/pull/133338), [@aojea](https://github.com/aojea))", + "author": "aojea", + "author_url": "https://github.com/aojea", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133338", + "pr_number": 133338, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "133357": { + "commit": "954ac21c6c8b2bc77666373d5c4f5b68603a8e50", + "text": "Added `kubelet` stress test for pod cleanup when rejection due to `VolumeAttachmentLimitExceeded`.", + "markdown": "Added `kubelet` stress test for pod cleanup when rejection due to `VolumeAttachmentLimitExceeded`. ([#133357](https://github.com/kubernetes/kubernetes/pull/133357), [@torredil](https://github.com/torredil)) [SIG Node and Storage]", + "author": "torredil", + "author_url": "https://github.com/torredil", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133357", + "pr_number": 133357, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "storage" + ], + "feature": true, + "duplicate": true, + "do_not_publish": true, + "is_mapped": true + }, + "133358": { + "commit": "338d035cd44b4eb6f26073ea6d996f02f7716289", + "text": "kube-apiserver: Fixed an issue where passing invalid `DeleteOptions` incorrectly returned a 500 status instead of 400.", + "markdown": "Kube-apiserver: Fixed an issue where passing invalid `DeleteOptions` incorrectly returned a 500 status instead of 400. ([#133358](https://github.com/kubernetes/kubernetes/pull/133358), [@ostrain](https://github.com/ostrain))", + "author": "ostrain", + "author_url": "https://github.com/ostrain", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133358", + "pr_number": 133358, + "areas": [ + "apiserver" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "133363": { + "commit": "d602326b87769c5db478fe84f4ddea98b84c53f2", + "text": "Introduced support for using an implicit extended resource name derived from the device class (`deviceclass.resource.kubernetes.io/\u003cdevice-class-name\u003e`) to request DRA devices matching that class.", + "markdown": "Introduced support for using an implicit extended resource name derived from the device class (`deviceclass.resource.kubernetes.io/\u003cdevice-class-name\u003e`) to request DRA devices matching that class. ([#133363](https://github.com/kubernetes/kubernetes/pull/133363), [@yliaog](https://github.com/yliaog)) [SIG Node, Scheduling and Testing]", + "author": "yliaog", + "author_url": "https://github.com/yliaog", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133363", + "pr_number": 133363, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "133373": { + "commit": "9dcfb3d04b02d1e9d50563d56de965d9ed332564", + "text": "Fixed the kubelet to honor the `userNamespaces.idsPerPod` configuration, which was previously ignored.", + "markdown": "Fixed the kubelet to honor the `userNamespaces.idsPerPod` configuration, which was previously ignored. ([#133373](https://github.com/kubernetes/kubernetes/pull/133373), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Node and Testing]", + "author": "AkihiroSuda", + "author_url": "https://github.com/AkihiroSuda", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133373", + "pr_number": 133373, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "133394": { + "commit": "d9405d9eafb8a1af5d6c20efc3f4b3d7c2ddd02a", + "text": "Introduced end-to-end tests to verify component invariant metrics across the entire test suite.", + "markdown": "Introduced end-to-end tests to verify component invariant metrics across the entire test suite. ([#133394](https://github.com/kubernetes/kubernetes/pull/133394), [@BenTheElder](https://github.com/BenTheElder))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/5514", + "type": "external" + } + ], + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133394", + "pr_number": 133394, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "testing" + ], + "feature": true, + "is_mapped": true + }, + "133415": { + "commit": "57421717813602b94132186b28ac3b2ee0bb4e09", + "text": "Improved HPA performance when using container-specific resource metrics by optimizing container lookup logic to exit early once the target container is found, reducing unnecessary iterations through all containers in a pod.", + "markdown": "Improved HPA performance when using container-specific resource metrics by optimizing container lookup logic to exit early once the target container is found, reducing unnecessary iterations through all containers in a pod. ([#133415](https://github.com/kubernetes/kubernetes/pull/133415), [@AadiDev005](https://github.com/AadiDev005)) [SIG Apps and Autoscaling]", + "author": "AadiDev005", + "author_url": "https://github.com/AadiDev005", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133415", + "pr_number": 133415, + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "autoscaling" + ], + "duplicate": true + }, + "133425": { + "commit": "b8f5561ab745aab2747d98c14b74c6a3ee9bbe3e", + "text": "Fixed SELinux warning controller not emitting events on some SELinux label conflicts.", + "markdown": "Fixed SELinux warning controller not emitting events on some SELinux label conflicts. ([#133425](https://github.com/kubernetes/kubernetes/pull/133425), [@jsafrane](https://github.com/jsafrane)) [SIG Apps, Storage and Testing]", + "author": "jsafrane", + "author_url": "https://github.com/jsafrane", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133425", + "pr_number": 133425, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "storage", + "testing" + ], + "duplicate": true + }, + "133436": { + "commit": "61cfcd03fc413f1cbd6c95b5b0059d1e912652cb", + "text": "Deprecated metrics will be hidden as per the metrics deprecation policy. https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-metric .", + "markdown": "Deprecated metrics will be hidden as per the metrics deprecation policy. https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-metric . ([#133436](https://github.com/kubernetes/kubernetes/pull/133436), [@richabanker](https://github.com/richabanker)) [SIG Architecture, Instrumentation and Network]", + "author": "richabanker", + "author_url": "https://github.com/richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133436", + "pr_number": 133436, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "architecture", + "instrumentation", + "network" + ], + "duplicate": true, + "is_mapped": true + }, + "133492": { + "commit": "11ade2f7dd264c2f52a4a1342458abbbaa3cb2b1", + "text": "tests: Switched to https://go.dev/doc/go1.25#container-aware-gomaxprocs from `go.uber.org/automaxprocs`.", + "markdown": "Tests: Switched to https://go.dev/doc/go1.25#container-aware-gomaxprocs from `go.uber.org/automaxprocs`. ([#133492](https://github.com/kubernetes/kubernetes/pull/133492), [@BenTheElder](https://github.com/BenTheElder))", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133492", + "pr_number": 133492, + "areas": [ + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "testing" + ], + "is_mapped": true + }, + "133511": { + "commit": "60e1f61a6361e782c738ee941d61fddc1ab3d2f2", + "text": "Eliminated and prevented future use of the `md5` algorithm in favor of more appropriate hashing algorithms.", + "markdown": "Eliminated and prevented future use of the `md5` algorithm in favor of more appropriate hashing algorithms. ([#133511](https://github.com/kubernetes/kubernetes/pull/133511), [@BenTheElder](https://github.com/BenTheElder)) [SIG Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Security, Storage and Testing]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133511", + "pr_number": 133511, + "areas": [ + "test", + "kubelet", + "kubectl", + "kubeadm", + "code-organization" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "apps", + "architecture", + "cli", + "cluster-lifecycle", + "network", + "node", + "security", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "133513": { + "commit": "4f0ce131a32f44572616f407011b28af79cca651", + "text": "kubeadm: Fixed a bug where `ClusterConfiguration.APIServer.TimeoutForControlPlane` from `v1beta3` was not respected in newer kubeadm versions where `v1beta4` is the default.", + "markdown": "Kubeadm: Fixed a bug where `ClusterConfiguration.APIServer.TimeoutForControlPlane` from `v1beta3` was not respected in newer kubeadm versions where `v1beta4` is the default. ([#133513](https://github.com/kubernetes/kubernetes/pull/133513), [@tom1299](https://github.com/tom1299))", + "author": "tom1299", + "author_url": "https://github.com/tom1299", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133513", + "pr_number": 133513, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "133540": { + "commit": "a270bd8e1e4549a46603ccd5b2f6665223c9a932", + "text": "Added validation to ensure `log-flush-frequency` is a positive value, returning an error instead of causing a panic.", + "markdown": "Added validation to ensure `log-flush-frequency` is a positive value, returning an error instead of causing a panic. ([#133540](https://github.com/kubernetes/kubernetes/pull/133540), [@BenTheElder](https://github.com/BenTheElder)) [SIG Architecture, Instrumentation, Network and Node]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133540", + "pr_number": 133540, + "areas": [ + "kubelet", + "kube-proxy" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "architecture", + "instrumentation", + "network", + "node" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133571": { + "commit": "22a567ac31df68929f4cfb6e87a18d2399e37efe", + "text": "Fixed formatting of various Go API deprecations for `GoDoc` and `pkgsite`, and enabled a linter to detect misformatted deprecations.", + "markdown": "Fixed formatting of various Go API deprecations for `GoDoc` and `pkgsite`, and enabled a linter to detect misformatted deprecations. ([#133571](https://github.com/kubernetes/kubernetes/pull/133571), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture, CLI, Instrumentation and Testing]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133571", + "pr_number": 133571, + "areas": [ + "test", + "kubectl", + "code-generation", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "architecture", + "cli", + "instrumentation", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "133603": { + "commit": "1431873b8464740ed3c1126abc4a4b10618c7fe5", + "text": "Fixed `nfacct` test cases on s390x.", + "markdown": "Fixed `nfacct` test cases on s390x. ([#133603](https://github.com/kubernetes/kubernetes/pull/133603), [@saisindhuri91](https://github.com/saisindhuri91))", + "author": "saisindhuri91", + "author_url": "https://github.com/saisindhuri91", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133603", + "pr_number": 133603, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "network" + ], + "do_not_publish": true, + "is_mapped": true + }, + "133615": { + "commit": "8c1094d54af10eacea24a9b98383978fabf93dc0", + "text": "Promoted VAC API test to conformance.", + "markdown": "Promoted VAC API test to conformance. ([#133615](https://github.com/kubernetes/kubernetes/pull/133615), [@carlory](https://github.com/carlory)) [SIG Architecture, Storage and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133615", + "pr_number": 133615, + "areas": [ + "test", + "conformance" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "architecture", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "133627": { + "commit": "b53043433c11ea562c71b20b2a29c99725eddd80", + "text": "Updated `kubectl describe pods` to include the involved object’s `fieldPath` (e.g., container name) in event messages, providing better context for debugging multi-container Pods. Note: This changes the previous message format for events that include a `fieldPath`.", + "markdown": "Updated `kubectl describe pods` to include the involved object’s `fieldPath` (e.g., container name) in event messages, providing better context for debugging multi-container Pods. Note: This changes the previous message format for events that include a `fieldPath`. ([#133627](https://github.com/kubernetes/kubernetes/pull/133627), [@itzPranshul](https://github.com/itzPranshul))", + "author": "itzPranshul", + "author_url": "https://github.com/itzPranshul", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133627", + "pr_number": 133627, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "133636": { + "commit": "7e871bc7bb084b3f64393598f1c2c54ccf1f7912", + "text": "Updated cri-tools to v1.34.0.", + "markdown": "Updated cri-tools to v1.34.0. ([#133636](https://github.com/kubernetes/kubernetes/pull/133636), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133636", + "pr_number": 133636, + "areas": [ + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider" + ] + }, + "133697": { + "commit": "14fb5e6481ee21c22b1b79122b0e66e578d325ed", + "text": "Feature gate dependencies are now explicit, and validated at startup. A feature can no longer be enabled if it depends on a disabled feature. In particular, this means that `AllAlpha=true` will no longer work without enabling disabled-by-default beta features that are depended on (either with `AllBeta=true` or explicitly enumerating the disabled dependencies).", + "markdown": "Feature gate dependencies are now explicit, and validated at startup. A feature can no longer be enabled if it depends on a disabled feature. In particular, this means that `AllAlpha=true` will no longer work without enabling disabled-by-default beta features that are depended on (either with `AllBeta=true` or explicitly enumerating the disabled dependencies). ([#133697](https://github.com/kubernetes/kubernetes/pull/133697), [@tallclair](https://github.com/tallclair)) [SIG API Machinery, Architecture, Cluster Lifecycle and Node]", + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133697", + "pr_number": 133697, + "areas": [ + "kubelet" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "cluster-lifecycle", + "node" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true + }, + "133706": { + "commit": "2679d3a7c6141a4387bb0ebf8771474e0d3ec8d5", + "text": "Fixed a bug that prevents scheduling the next pod when using the `DRAConsumableCapacity` feature.", + "markdown": "Fixed a bug that prevents scheduling the next pod when using the `DRAConsumableCapacity` feature. ([#133706](https://github.com/kubernetes/kubernetes/pull/133706), [@sunya-ch](https://github.com/sunya-ch))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-scheduling/5075-dra-consumable-capacity", + "type": "KEP" + } + ], + "author": "sunya-ch", + "author_url": "https://github.com/sunya-ch", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133706", + "pr_number": 133706, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "133715": { + "commit": "2c202829289f4e8923878363e0d876e3c74ea2a0", + "text": "Updated storage version for `MutatingAdmissionPolicy` to `v1beta1`.", + "markdown": "Updated storage version for `MutatingAdmissionPolicy` to `v1beta1`. ([#133715](https://github.com/kubernetes/kubernetes/pull/133715), [@cici37](https://github.com/cici37)) [SIG API Machinery, Etcd and Testing]", + "author": "cici37", + "author_url": "https://github.com/cici37", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133715", + "pr_number": 133715, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "etcd", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133720": { + "commit": "53fecc77488f0aaa58cca93b193eb43ad6bee9d2", + "text": "Removed general available feature-gate `SizeMemoryBackedVolumes`.", + "markdown": "Removed general available feature-gate `SizeMemoryBackedVolumes`. ([#133720](https://github.com/kubernetes/kubernetes/pull/133720), [@carlory](https://github.com/carlory)) [SIG Node, Storage and Testing]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133720", + "pr_number": 133720, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "133721": { + "commit": "c5f15cc37a0cadd4b357b03b8057c64bc02348ea", + "text": "kube-apiserver: Fixed a possible panic validating a custom resource whose `CustomResourceDefinition` indicates a status subresource exists, but which does not define a `status` property in the `openAPIV3Schema`.", + "markdown": "Kube-apiserver: Fixed a possible panic validating a custom resource whose `CustomResourceDefinition` indicates a status subresource exists, but which does not define a `status` property in the `openAPIV3Schema`. ([#133721](https://github.com/kubernetes/kubernetes/pull/133721), [@fusida](https://github.com/fusida)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Release, Scheduling, Storage and Testing]", + "author": "fusida", + "author_url": "https://github.com/fusida", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133721", + "pr_number": 133721, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "provider/gcp", + "release-eng", + "kubeadm", + "conformance", + "code-generation", + "e2e-test-framework", + "dependency", + "stable-metrics" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "autoscaling", + "cli", + "cloud-provider", + "cluster-lifecycle", + "etcd", + "instrumentation", + "network", + "node", + "release", + "scheduling", + "storage", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133731": { + "commit": "9096fcefe52d347827ac358bd8e520367c5e8fe5", + "text": "Updated the `kubectl wait` command description by removing the `Experimental` prefix, as the command has been stable for a long time.", + "markdown": "Updated the `kubectl wait` command description by removing the `Experimental` prefix, as the command has been stable for a long time. ([#133731](https://github.com/kubernetes/kubernetes/pull/133731), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133731", + "pr_number": 133731, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "133742": { + "commit": "02e403f45d8c44cc5a9ba1a8f116d87b957cc9d4", + "text": "Removed the `ComponentSLIs` feature gate, as it was promoted to stable in the Kubernetes `v1.32` release.", + "markdown": "Removed the `ComponentSLIs` feature gate, as it was promoted to stable in the Kubernetes `v1.32` release. ([#133742](https://github.com/kubernetes/kubernetes/pull/133742), [@carlory](https://github.com/carlory)) [SIG Architecture and Instrumentation]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133742", + "pr_number": 133742, + "kinds": [ + "cleanup" + ], + "sigs": [ + "architecture", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "133771": { + "commit": "c9cc8c1ea89c3f2d00722f7c7cb4ff419ba70ba7", + "text": "Fixed broken shell completion for API resources.", + "markdown": "Fixed broken shell completion for API resources. ([#133771](https://github.com/kubernetes/kubernetes/pull/133771), [@marckhouzam](https://github.com/marckhouzam))", + "author": "marckhouzam", + "author_url": "https://github.com/marckhouzam", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133771", + "pr_number": 133771, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "133778": { + "commit": "27cfc5b4d5c59550f38a82f9064bc7f383833e0b", + "text": "kubeadm: stopped applying the `--pod-infra-container-image` flag for the kubelet. The flag has been deprecated and no longer served a purpose in the kubelet as the logic was migrated to CRI (Container Runtime Interface). During upgrade, kubeadm will attempt to remove the flag from the file `/var/lib/kubelet/kubeadm-flags.env`.", + "markdown": "Kubeadm: stopped applying the `--pod-infra-container-image` flag for the kubelet. The flag has been deprecated and no longer served a purpose in the kubelet as the logic was migrated to CRI (Container Runtime Interface). During upgrade, kubeadm will attempt to remove the flag from the file `/var/lib/kubelet/kubeadm-flags.env`. ([#133778](https://github.com/kubernetes/kubernetes/pull/133778), [@carlory](https://github.com/carlory)) [SIG Cloud Provider and Cluster Lifecycle]", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133778", + "pr_number": 133778, + "areas": [ + "provider/gcp", + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "cluster-lifecycle" + ], + "duplicate": true, + "is_mapped": true + }, + "133779": { + "commit": "f66d1a94185581af3a9ad22650eef8437b8cbe6c", + "text": "ACTION REQUIRED:\n\nRemoved the `--pod-infra-container-image` flag from `kubelet` command line. For `non-kubeadm` clusters, users must manually remove this flag from their `kubelet` configuration to prevent startup failures before upgrading `kubelet`. For `kubeadm` clusters, if users pass extra arguments to the `kubelet` like `--pod-infra-container-image`, it will be written to the `kubelet` env file during the `init` phase. `kubeadm` does not remove it during the `init` or `join` phase, so users must manually remove it from `extraArgs` in the `kubelet` configuration file.", + "markdown": "ACTION REQUIRED:\n \n Removed the `--pod-infra-container-image` flag from `kubelet` command line. For `non-kubeadm` clusters, users must manually remove this flag from their `kubelet` configuration to prevent startup failures before upgrading `kubelet`. For `kubeadm` clusters, if users pass extra arguments to the `kubelet` like `--pod-infra-container-image`, it will be written to the `kubelet` env file during the `init` phase. `kubeadm` does not remove it during the `init` or `join` phase, so users must manually remove it from `extraArgs` in the `kubelet` configuration file. ([#133779](https://github.com/kubernetes/kubernetes/pull/133779), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133779", + "pr_number": 133779, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "action_required": true, + "is_mapped": true + }, + "133792": { + "commit": "6f093ef29234787b51fc80154c0fa9988a1d7853", + "text": "Locked down the `AllowOverwriteTerminationGracePeriodSeconds` feature gate.", + "markdown": "Locked down the `AllowOverwriteTerminationGracePeriodSeconds` feature gate. ([#133792](https://github.com/kubernetes/kubernetes/pull/133792), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133792", + "pr_number": 133792, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "is_mapped": true + }, + "133817": { + "commit": "947a8ebfd14fe14b25222a50be28accae80fbd2c", + "text": "kube-apiserver: Fixed a `v1.34` regression with spurious \"Error getting keys\" log messages.", + "markdown": "Kube-apiserver: Fixed a `v1.34` regression with spurious \"Error getting keys\" log messages. ([#133817](https://github.com/kubernetes/kubernetes/pull/133817), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133817", + "pr_number": 133817, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "api-machinery", + "etcd" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133837": { + "commit": "5dff07fdf99de6c990afeab518e271631d286ae7", + "text": "Updated CNI plugins to v1.8.0.", + "markdown": "Updated CNI plugins to v1.8.0. ([#133837](https://github.com/kubernetes/kubernetes/pull/133837), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing]", + "author": "saschagrunert", + "author_url": "https://github.com/saschagrunert", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133837", + "pr_number": 133837, + "areas": [ + "test", + "provider/gcp" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cloud-provider", + "node", + "testing" + ], + "duplicate": true + }, + "133841": { + "commit": "29bb3a5d07f8ad88dea2614dc9631e2fc6f84600", + "text": "Changed `kubectl exec` syntax to require `--` before the command. The form `kubectl exec [POD] [COMMAND]` is no longer supported; use `kubectl exec [POD] -- [COMMAND]` instead.", + "markdown": "Changed `kubectl exec` syntax to require `--` before the command. The form `kubectl exec [POD] [COMMAND]` is no longer supported; use `kubectl exec [POD] -- [COMMAND]` instead. ([#133841](https://github.com/kubernetes/kubernetes/pull/133841), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133841", + "pr_number": 133841, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "testing" + ], + "do_not_publish": true, + "is_mapped": true + }, + "133873": { + "commit": "b00aba714e4bdc5d9d3b2f547d846563f544cbbd", + "text": "kube-apiserver: Fixed a possible `v1.34` performance regression calculating object size statistics for resources not served from the watch cache, typically only `Events`.", + "markdown": "Kube-apiserver: Fixed a possible `v1.34` performance regression calculating object size statistics for resources not served from the watch cache, typically only `Events`. ([#133873](https://github.com/kubernetes/kubernetes/pull/133873), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd]", + "author": "serathius", + "author_url": "https://github.com/serathius", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133873", + "pr_number": 133873, + "areas": [ + "apiserver" + ], + "kinds": [ + "regression" + ], + "sigs": [ + "api-machinery", + "etcd" + ], + "duplicate": true, + "is_mapped": true + }, + "133876": { + "commit": "3a53784ecbe4bed2aa0cbc159acbb56add05eef9", + "text": "DRA: the resource.k8s.io API now uses the v1 API version (introduced in 1.34) as default storage version. Downgrading to 1.33 is not supported.", + "markdown": "DRA: the resource.k8s.io API now uses the v1 API version (introduced in 1.34) as default storage version. Downgrading to 1.33 is not supported. ([#133876](https://github.com/kubernetes/kubernetes/pull/133876), [@kei01234kei](https://github.com/kei01234kei)) [SIG API Machinery, Etcd and Testing]", + "author": "kei01234kei", + "author_url": "https://github.com/kei01234kei", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133876", + "pr_number": 133876, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "etcd", + "testing" + ], + "feature": true, + "duplicate": true + }, + "133883": { + "commit": "04096030a16f4933d897e1c3cbe4c1462f20064a", + "text": "Upgraded the `PodObservedGenerationTracking` feature to beta in `v1.34` and removed the alpha version description from the OpenAPI specification.", + "markdown": "Upgraded the `PodObservedGenerationTracking` feature to beta in `v1.34` and removed the alpha version description from the OpenAPI specification. ([#133883](https://github.com/kubernetes/kubernetes/pull/133883), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085))", + "author": "yangjunmyfm192085", + "author_url": "https://github.com/yangjunmyfm192085", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133883", + "pr_number": 133883, + "areas": [ + "code-generation" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "133890": { + "commit": "56f6358c11b78e8e3d39e8cd8ff016ff7c70c56b", + "text": "Fixed missing `kubelet_volume_stats_*` metrics.", + "markdown": "Fixed missing `kubelet_volume_stats_*` metrics. ([#133890](https://github.com/kubernetes/kubernetes/pull/133890), [@huww98](https://github.com/huww98)) [SIG Instrumentation and Node]", + "author": "huww98", + "author_url": "https://github.com/huww98", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133890", + "pr_number": 133890, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "instrumentation", + "node" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133894": { + "commit": "f2783029575a17a515715626cf40e6a32a4a82ca", + "text": "Added `k8s-short-name` and `k8s-long-name` format validation tags to enforce DNS label and DNS subdomain compliance.", + "markdown": "Added `k8s-short-name` and `k8s-long-name` format validation tags to enforce DNS label and DNS subdomain compliance. ([#133894](https://github.com/kubernetes/kubernetes/pull/133894), [@lalitc375](https://github.com/lalitc375))", + "author": "lalitc375", + "author_url": "https://github.com/lalitc375", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133894", + "pr_number": 133894, + "areas": [ + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "do_not_publish": true, + "is_mapped": true + }, + "133896": { + "commit": "8085d5c458151dd1ab22e2458d8aed4d7dcda704", + "text": "kube-apiserver: Fixed a `v1.34` regression in `CustomResourceDefinition` handling that incorrectly warned about unrecognized formats on number and integer properties.", + "markdown": "Kube-apiserver: Fixed a `v1.34` regression in `CustomResourceDefinition` handling that incorrectly warned about unrecognized formats on number and integer properties. ([#133896](https://github.com/kubernetes/kubernetes/pull/133896), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Contributor Experience, Network, Node and Scheduling]", + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133896", + "pr_number": 133896, + "areas": [ + "kubelet", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug", + "api-change", + "regression" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "cli", + "cloud-provider", + "contributor-experience", + "network", + "node", + "scheduling" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133904": { + "commit": "bb12fee4c1dcc5d24801858a2f75475928ec37d7", + "text": "Changed `WaitForNamedCacheSync` to `WaitForNamedCacheSyncWithContext`.", + "markdown": "Changed `WaitForNamedCacheSync` to `WaitForNamedCacheSyncWithContext`. ([#133904](https://github.com/kubernetes/kubernetes/pull/133904), [@aditigupta96](https://github.com/aditigupta96)) [SIG API Machinery, Apps, Auth and Network]", + "author": "aditigupta96", + "author_url": "https://github.com/aditigupta96", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133904", + "pr_number": 133904, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "network" + ], + "feature": true, + "duplicate": true, + "do_not_publish": true, + "is_mapped": true + }, + "133907": { + "commit": "edcac86acb86f0b634431a05261b9cb13491376d", + "text": "Updated the short description of the `kubectl wait` command by removing the `Experimental` prefix, as the command has been stable for a long time.", + "markdown": "Updated the short description of the `kubectl wait` command by removing the `Experimental` prefix, as the command has been stable for a long time. ([#133907](https://github.com/kubernetes/kubernetes/pull/133907), [@ardaguclu](https://github.com/ardaguclu))", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133907", + "pr_number": 133907, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "133917": { + "commit": "f2ef1c4d08492144419010f17568c2fe41b3f547", + "text": "Fixed validation error when `ConfigFlags` includes `CertFile` and/or `KeyFile` while the original configuration also contains `CertFileData` and/or `KeyFileData`.", + "markdown": "Fixed validation error when `ConfigFlags` includes `CertFile` and/or `KeyFile` while the original configuration also contains `CertFileData` and/or `KeyFileData`. ([#133917](https://github.com/kubernetes/kubernetes/pull/133917), [@n2h9](https://github.com/n2h9)) [SIG API Machinery and CLI]", + "author": "n2h9", + "author_url": "https://github.com/n2h9", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133917", + "pr_number": 133917, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cli" + ], + "duplicate": true, + "is_mapped": true + }, + "133926": { + "commit": "d95e07d0f8e7a8bf9e5f26fdb49861eea3614396", + "text": "kubelet: Fixed an internal deadlock that caused the connection to a DRA driver to become unusable after being idle for 30 minutes.", + "markdown": "Kubelet: Fixed an internal deadlock that caused the connection to a DRA driver to become unusable after being idle for 30 minutes. ([#133926](https://github.com/kubernetes/kubernetes/pull/133926), [@pohly](https://github.com/pohly))", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133926", + "pr_number": 133926, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "133929": { + "commit": "f86edc26658aa3ad2c0e55ac0e849277a040d22c", + "text": "Fixed occasional schedule delays when a static `PersistentVolume` is created.", + "markdown": "Fixed occasional schedule delays when a static `PersistentVolume` is created. ([#133929](https://github.com/kubernetes/kubernetes/pull/133929), [@huww98](https://github.com/huww98)) [SIG Scheduling and Storage]", + "author": "huww98", + "author_url": "https://github.com/huww98", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133929", + "pr_number": 133929, + "kinds": [ + "bug", + "flake" + ], + "sigs": [ + "scheduling", + "storage" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "133948": { + "commit": "dfeb3bbc9c5124a00f77c038f29ae50991afd73e", + "text": "Added support for validating UUID format.", + "markdown": "Added support for validating UUID format. ([#133948](https://github.com/kubernetes/kubernetes/pull/133948), [@lalitc375](https://github.com/lalitc375))", + "author": "lalitc375", + "author_url": "https://github.com/lalitc375", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133948", + "pr_number": 133948, + "areas": [ + "code-generation" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "do_not_publish": true, + "is_mapped": true + }, + "133980": { + "commit": "fb694108249e4765f685471b476b7a9e2f303afd", + "text": "Added the `--min-compatibility-version` flag to `kube-apiserver`, `kube-controller-manager`, and `kube-scheduler`.", + "markdown": "Added the `--min-compatibility-version` flag to `kube-apiserver`, `kube-controller-manager`, and `kube-scheduler`. ([#133980](https://github.com/kubernetes/kubernetes/pull/133980), [@siyuanfoundation](https://github.com/siyuanfoundation)) [SIG API Machinery, Architecture, Cluster Lifecycle, Etcd, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4330", + "type": "KEP" + } + ], + "author": "siyuanfoundation", + "author_url": "https://github.com/siyuanfoundation", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/133980", + "pr_number": 133980, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "cluster-lifecycle", + "etcd", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134007": { + "commit": "a4981e1cf3c747b2224fc5d138e23f21f24cc0a5", + "text": "kubeadm: Fixed `KUBEADM_UPGRADE_DRYRUN_DIR` not honored in upgrade phase when writing kubelet config files.", + "markdown": "Kubeadm: Fixed `KUBEADM_UPGRADE_DRYRUN_DIR` not honored in upgrade phase when writing kubelet config files. ([#134007](https://github.com/kubernetes/kubernetes/pull/134007), [@carlory](https://github.com/carlory))", + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134007", + "pr_number": 134007, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "134017": { + "commit": "7104c1e426b92025aa25083edcd3dac128f3e206", + "text": "Updated `kubectl scale` to return a consistent error message when a specified resource is not found. Previously, it returned: `error: no objects passed to scale \u003cGroupResource\u003e \"\u003cResourceName\u003e\" not found`. It now matches the format used by other commands (e.g., `kubectl get`): `Error from server (NotFound): \u003cGroupResource\u003e \"\u003cResourceName\u003e\" not found`.", + "markdown": "Updated `kubectl scale` to return a consistent error message when a specified resource is not found. Previously, it returned: `error: no objects passed to scale \u003cGroupResource\u003e \"\u003cResourceName\u003e\" not found`. It now matches the format used by other commands (e.g., `kubectl get`): `Error from server (NotFound): \u003cGroupResource\u003e \"\u003cResourceName\u003e\" not found`. ([#134017](https://github.com/kubernetes/kubernetes/pull/134017), [@mochizuki875](https://github.com/mochizuki875))", + "author": "mochizuki875", + "author_url": "https://github.com/mochizuki875", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134017", + "pr_number": 134017, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "134024": { + "commit": "053267ad3646785234584deaf8d7690108d55cef", + "text": "Fixed a bug in `kube-proxy` `nftables` mode (GA as of `v1.33`) which fails to determine if traffic originates from a local source on the node. The issue was caused by using the wrong meta `iif` instead of `iifname` for name based matches.", + "markdown": "Fixed a bug in `kube-proxy` `nftables` mode (GA as of `v1.33`) which fails to determine if traffic originates from a local source on the node. The issue was caused by using the wrong meta `iif` instead of `iifname` for name based matches. ([#134024](https://github.com/kubernetes/kubernetes/pull/134024), [@jack4it](https://github.com/jack4it))", + "author": "jack4it", + "author_url": "https://github.com/jack4it", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134024", + "pr_number": 134024, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "134028": { + "commit": "58f2d96901b9bc0e90f5c6fb5bc808a7aa86a851", + "text": "Specified the deprecated version of `apiserver_storage_objects` metric in metrics docs.", + "markdown": "Specified the deprecated version of `apiserver_storage_objects` metric in metrics docs. ([#134028](https://github.com/kubernetes/kubernetes/pull/134028), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Etcd and Instrumentation]", + "author": "richabanker", + "author_url": "https://github.com/richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134028", + "pr_number": 134028, + "areas": [ + "apiserver", + "stable-metrics" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "etcd", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "134043": { + "commit": "bd1288e000d9271ffbf448873a0795b9005f2eae", + "text": "Removed container name from messages for container created and started events.", + "markdown": "Removed container name from messages for container created and started events. ([#134043](https://github.com/kubernetes/kubernetes/pull/134043), [@HirazawaUi](https://github.com/HirazawaUi))", + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134043", + "pr_number": 134043, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "134054": { + "commit": "ceebd156c45f597b26362eb75323edc9be5a4d6e", + "text": "Removed an incorrect `SessionAffinity` warning that appeared when a headless service was created or updated.", + "markdown": "Removed an incorrect `SessionAffinity` warning that appeared when a headless service was created or updated. ([#134054](https://github.com/kubernetes/kubernetes/pull/134054), [@Peac36](https://github.com/Peac36))", + "author": "Peac36", + "author_url": "https://github.com/Peac36", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134054", + "pr_number": 134054, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "134072": { + "commit": "ec4e321f008b5c283e0848e5003fcb4e9bda0f34", + "text": "Migrated validation in `resource.k8s.io` to declarative validation.\nWhen the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.\nwhen `DeclarativeValidationTakeover` feature gate is enabled, declarative validation becomes the primary source of errors for migrated fields.", + "markdown": "Migrated validation in `resource.k8s.io` to declarative validation.\n When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics.\n when `DeclarativeValidationTakeover` feature gate is enabled, declarative validation becomes the primary source of errors for migrated fields. ([#134072](https://github.com/kubernetes/kubernetes/pull/134072), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps and Auth]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/5073-declarative-validation-with-validation-gen/README.md", + "type": "KEP" + } + ], + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134072", + "pr_number": 134072, + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "134095": { + "commit": "ae5d650460493a32114861c856909f3614f031e0", + "text": "Kubernetes is now built using Go 1.25.1", + "markdown": "Kubernetes is now built using Go 1.25.1 ([#134095](https://github.com/kubernetes/kubernetes/pull/134095), [@dims](https://github.com/dims)) [SIG Release and Testing]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134095", + "pr_number": 134095, + "areas": [ + "test", + "release-eng" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true + }, + "134103": { + "commit": "3daf280c464c712f38fe2a24d9434fcf2670c251", + "text": "Fixed a bug that prevented allocating the same device that was previously consuming the `CounterSet` when both `DRAConsumableCapacity` and `DRAPartitionableDevices` were enabled.", + "markdown": "Fixed a bug that prevented allocating the same device that was previously consuming the `CounterSet` when both `DRAConsumableCapacity` and `DRAPartitionableDevices` were enabled. ([#134103](https://github.com/kubernetes/kubernetes/pull/134103), [@sunya-ch](https://github.com/sunya-ch))", + "author": "sunya-ch", + "author_url": "https://github.com/sunya-ch", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134103", + "pr_number": 134103, + "areas": [ + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "134106": { + "commit": "d39b162163006799cc8e0198fa83d0b6d36a41b9", + "text": "kubeadm: Graduated the kubeadm-specific feature gate `ControlPlaneKubeletLocalMode` to GA and locked it to enabled by default. To opt out, patch the `server` field in `/etc/kubernetes/kubelet.conf`. Deprecated the subphase of `kubeadm join phase control-plane-join` called `etcd`, which is now hidden and replaced by subphase with identical functionality `etcd-join`. The `etcd` subphase will be removed in a future release. The subphase `kubelet-wait-bootstrap` of `kubeadm join` is no longer experimental and will now always run.", + "markdown": "Kubeadm: Graduated the kubeadm-specific feature gate `ControlPlaneKubeletLocalMode` to GA and locked it to enabled by default. To opt out, patch the `server` field in `/etc/kubernetes/kubelet.conf`. Deprecated the subphase of `kubeadm join phase control-plane-join` called `etcd`, which is now hidden and replaced by subphase with identical functionality `etcd-join`. The `etcd` subphase will be removed in a future release. The subphase `kubelet-wait-bootstrap` of `kubeadm join` is no longer experimental and will now always run. ([#134106](https://github.com/kubernetes/kubernetes/pull/134106), [@neolit123](https://github.com/neolit123))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4471", + "type": "KEP" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134106", + "pr_number": 134106, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "134120": { + "commit": "0ca861d5ed67d944285ee5ea80cf520d11e8b755", + "text": "Kubernetes now uses Go Language Version 1.25, including https://go.dev/blog/container-aware-gomaxprocs", + "markdown": "Kubernetes now uses Go Language Version 1.25, including https://go.dev/blog/container-aware-gomaxprocs ([#134120](https://github.com/kubernetes/kubernetes/pull/134120), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling and Storage]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134120", + "pr_number": 134120, + "areas": [ + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "release", + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true + }, + "134130": { + "commit": "5def66bc466ba1587f55b148110cd1ce17812ca1", + "text": "Removed the `KUBECTL_OPENAPIV3_PATCH` environment variable, as aggregated discovery has been stable since `v1.30`.", + "markdown": "Removed the `KUBECTL_OPENAPIV3_PATCH` environment variable, as aggregated discovery has been stable since `v1.30`. ([#134130](https://github.com/kubernetes/kubernetes/pull/134130), [@ardaguclu](https://github.com/ardaguclu))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/3352-aggregated-discovery/README.md", + "type": "KEP" + } + ], + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134130", + "pr_number": 134130, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "134152": { + "commit": "c1a6a3ca71a88a3d43580b2ffce6966c58f8bd56", + "text": "DRA device taints: `DeviceTaintRule` status provides information about the rule, including whether Pods still need to be evicted (`EvictionInProgress` condition). The newly added `None` effect can be used to preview what a `DeviceTaintRule` would do if it used the `NoExecute` effect and to taint devices (`device health`) without immediately affecting scheduling or running Pods.", + "markdown": "DRA device taints: `DeviceTaintRule` status provides information about the rule, including whether Pods still need to be evicted (`EvictionInProgress` condition). The newly added `None` effect can be used to preview what a `DeviceTaintRule` would do if it used the `NoExecute` effect and to taint devices (`device health`) without immediately affecting scheduling or running Pods. ([#134152](https://github.com/kubernetes/kubernetes/pull/134152), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Release, Scheduling and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134152", + "pr_number": 134152, + "areas": [ + "test", + "release-eng", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "node", + "release", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134154": { + "commit": "db0315a641fc7618f87757c2e179b1e52090f812", + "text": "Fixed a bug where high latency `kube-apiserver` caused scheduling throughput degradation.", + "markdown": "Fixed a bug where high latency `kube-apiserver` caused scheduling throughput degradation. ([#134154](https://github.com/kubernetes/kubernetes/pull/134154), [@macsko](https://github.com/macsko))", + "author": "macsko", + "author_url": "https://github.com/macsko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134154", + "pr_number": 134154, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "134157": { + "commit": "412bfec7a10d7815c971ddcd60edaf7e65a8c7a3", + "text": "Fixed a bug where a deleted Pod in the binding phase continued to occupy space on the node in `kube-scheduler`.", + "markdown": "Fixed a bug where a deleted Pod in the binding phase continued to occupy space on the node in `kube-scheduler`. ([#134157](https://github.com/kubernetes/kubernetes/pull/134157), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing]", + "author": "macsko", + "author_url": "https://github.com/macsko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134157", + "pr_number": 134157, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134193": { + "commit": "3e4b5e48f2d57585b43c7eac49f999c338c9bb74", + "text": "Fixed a bug where 64-bit IPv6 `ServiceCIDRs` allocated addresses outside the subnet range.", + "markdown": "Fixed a bug where 64-bit IPv6 `ServiceCIDRs` allocated addresses outside the subnet range. ([#134193](https://github.com/kubernetes/kubernetes/pull/134193), [@hoskeri](https://github.com/hoskeri))", + "author": "hoskeri", + "author_url": "https://github.com/hoskeri", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134193", + "pr_number": 134193, + "kinds": [ + "bug" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "134245": { + "commit": "c0b9ab3351622bec1d921690cbe9e2f4e86cddcd", + "text": "Fixed a bug in `kube-scheduler` where pending pod preemption caused preemptor pods to be retried more frequently.", + "markdown": "Fixed a bug in `kube-scheduler` where pending pod preemption caused preemptor pods to be retried more frequently. ([#134245](https://github.com/kubernetes/kubernetes/pull/134245), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing]", + "author": "macsko", + "author_url": "https://github.com/macsko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134245", + "pr_number": 134245, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134251": { + "commit": "4db43d13217423bf266a1b6362113e7cabf2a823", + "text": "Updated `etcd` to `v3.6.5`.", + "markdown": "Updated `etcd` to `v3.6.5`. ([#134251](https://github.com/kubernetes/kubernetes/pull/134251), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]", + "author": "joshjms", + "author_url": "https://github.com/joshjms", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134251", + "pr_number": 134251, + "areas": [ + "test", + "provider/gcp", + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "cluster-lifecycle", + "etcd", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134256": { + "commit": "6bc4914b841f5bf032490cf105f57dc5bfe475ba", + "text": "Kubernetes API Go types removed runtime use of the `github.com/gogo/protobuf` library, and are no longer registered into the global gogo type registry. Kubernetes API Go types were not suitable for use with the `google.golang.org/protobuf` library, and no longer implement `ProtoMessage()` by default to avoid accidental incompatible use. If removal of these marker methods impacts your use, it can be re-enabled for one more release with a `kubernetes_protomessage_one_more_release` build tag, but will be removed in `v1.36`.", + "markdown": "Kubernetes API Go types removed runtime use of the `github.com/gogo/protobuf` library, and are no longer registered into the global gogo type registry. Kubernetes API Go types were not suitable for use with the `google.golang.org/protobuf` library, and no longer implement `ProtoMessage()` by default to avoid accidental incompatible use. If removal of these marker methods impacts your use, it can be re-enabled for one more release with a `kubernetes_protomessage_one_more_release` build tag, but will be removed in `v1.36`. ([#134256](https://github.com/kubernetes/kubernetes/pull/134256), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134256", + "pr_number": 134256, + "areas": [ + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup", + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "architecture", + "auth", + "cli", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "scheduling", + "storage" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134263": { + "commit": "da2eea1bf2816e2215e9978e7817d5d150228551", + "text": "Namespace is now included in the `--dry-run=client` output for `HorizontalPodAutoscaler (HPA)` objects.", + "markdown": "Namespace is now included in the `--dry-run=client` output for `HorizontalPodAutoscaler (HPA)` objects. ([#134263](https://github.com/kubernetes/kubernetes/pull/134263), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134263", + "pr_number": 134263, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134265": { + "commit": "2003bd0cedcd7814d60d17b0754c3b1c548fe46f", + "text": "kubeadm: Ensured waiting for `apiserver` uses a local client that doesn't reach to the control plane endpoint and instead reaches directly to the local API server endpoint.", + "markdown": "Kubeadm: Ensured waiting for `apiserver` uses a local client that doesn't reach to the control plane endpoint and instead reaches directly to the local API server endpoint. ([#134265](https://github.com/kubernetes/kubernetes/pull/134265), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134265", + "pr_number": 134265, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "134279": { + "commit": "0bdf1f89c3a2eeac2a64ca29b93f552a4b601341", + "text": "Introduced a new declarative validation tag `+k8s:customUnique` to control listmap uniqueness.", + "markdown": "Introduced a new declarative validation tag `+k8s:customUnique` to control listmap uniqueness. ([#134279](https://github.com/kubernetes/kubernetes/pull/134279), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-api-machinery/5073-declarative-validation-with-validation-gen/README.md", + "type": "KEP" + } + ], + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134279", + "pr_number": 134279, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134294": { + "commit": "389507c72325bb4a26b623e7b81a9c5c57d97745", + "text": "Fixed incorrect behavior of preemptor pod when preemption of the victim takes long to complete. The preemptor pod should not be circling in scheduling cycles until preemption is finished.", + "markdown": "Fixed incorrect behavior of preemptor pod when preemption of the victim takes long to complete. The preemptor pod should not be circling in scheduling cycles until preemption is finished. ([#134294](https://github.com/kubernetes/kubernetes/pull/134294), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing]", + "author": "ania-borowiec", + "author_url": "https://github.com/ania-borowiec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134294", + "pr_number": 134294, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134298": { + "commit": "d92afdefcb62ecf69de68653444b9eea70b9f7b7", + "text": "ACTION REQUIRED: `failCgroupV1` will be set to true from 1.35. \nThis means that nodes will not start on a cgroup v1 by default. This puts cgroup v1 into a deprecated state.", + "markdown": "ACTION REQUIRED: `failCgroupV1` will be set to true from 1.35. \n This means that nodes will not start on a cgroup v1 by default. This puts cgroup v1 into a deprecated state. ([#134298](https://github.com/kubernetes/kubernetes/pull/134298), [@kannon92](https://github.com/kannon92))", + "author": "kannon92", + "author_url": "https://github.com/kannon92", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134298", + "pr_number": 134298, + "areas": [ + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change", + "deprecation" + ], + "sigs": [ + "node" + ], + "duplicate_kind": true, + "action_required": true, + "is_mapped": true + }, + "134312": { + "commit": "7353b6a93d5a1535787b87c87acfc178d6ea67e9", + "text": "Fixed resource claims deallocation for extended resource when Pod completes.", + "markdown": "Fixed resource claims deallocation for extended resource when Pod completes. ([#134312](https://github.com/kubernetes/kubernetes/pull/134312), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps, Node and Testing]", + "author": "alaypatel07", + "author_url": "https://github.com/alaypatel07", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134312", + "pr_number": 134312, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134313": { + "commit": "9efb7ee53805225cd70d4b4cd522fc22223dd57b", + "text": "Introduced a structured and versioned `v1alpha1` response for the `statusz` endpoint.", + "markdown": "Introduced a structured and versioned `v1alpha1` response for the `statusz` endpoint. ([#134313](https://github.com/kubernetes/kubernetes/pull/134313), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing]", + "author": "richabanker", + "author_url": "https://github.com/richabanker", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134313", + "pr_number": 134313, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "instrumentation", + "network", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134319": { + "commit": "cffecaac55698b4f364b0be2ba92f5fd69431cb6", + "text": "kubeadm: Fixed a bug where the node registration information for a given node was not fetched correctly during `kubeadm upgrade node` and the node name can end up being incorrect in cases where the node name is not the same as the host name.", + "markdown": "Kubeadm: Fixed a bug where the node registration information for a given node was not fetched correctly during `kubeadm upgrade node` and the node name can end up being incorrect in cases where the node name is not the same as the host name. ([#134319](https://github.com/kubernetes/kubernetes/pull/134319), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134319", + "pr_number": 134319, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "134330": { + "commit": "81d7612a539ba3a4f8a02b914b451bbf7c741464", + "text": "k8s.io/apimachinery: Introduced a helper function to compare `resourceVersion` strings between two objects of the same resource.", + "markdown": "K8s.io/apimachinery: Introduced a helper function to compare `resourceVersion` strings between two objects of the same resource. ([#134330](https://github.com/kubernetes/kubernetes/pull/134330), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Apps, Auth, Instrumentation, Network, Node, Scheduling, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/pull/5505", + "type": "KEP" + } + ], + "author": "michaelasp", + "author_url": "https://github.com/michaelasp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134330", + "pr_number": 134330, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "instrumentation", + "network", + "node", + "scheduling", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "134378": { + "commit": "9113013eb89bd3d8f320cc1e0e8c09637292c8ad", + "text": "Introduced the `--as-user-extra` persistent flag in `kubectl`, which allows passing extra arguments during impersonation.", + "markdown": "Introduced the `--as-user-extra` persistent flag in `kubectl`, which allows passing extra arguments during impersonation. ([#134378](https://github.com/kubernetes/kubernetes/pull/134378), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134378", + "pr_number": 134378, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "134379": { + "commit": "16eebeb5eebc410b01a775801d877e4bbcdc8c6c", + "text": "kube-controller-manager: Fixed a possible data race in the garbage collection controller.", + "markdown": "Kube-controller-manager: Fixed a possible data race in the garbage collection controller. ([#134379](https://github.com/kubernetes/kubernetes/pull/134379), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134379", + "pr_number": 134379, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "apps" + ], + "duplicate": true, + "is_mapped": true + }, + "134381": { + "commit": "e21082468a3b49862cd441d1ede3623fce5b1b7d", + "text": "Fixed a bug to prevent segmentation fault from occurring when updating deeply nested JSON fields.", + "markdown": "Fixed a bug to prevent segmentation fault from occurring when updating deeply nested JSON fields. ([#134381](https://github.com/kubernetes/kubernetes/pull/134381), [@kon-angelo](https://github.com/kon-angelo)) [SIG API Machinery and CLI]", + "author": "kon-angelo", + "author_url": "https://github.com/kon-angelo", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134381", + "pr_number": 134381, + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "cli" + ], + "duplicate": true, + "is_mapped": true + }, + "134384": { + "commit": "37f067778e9ef714d02e5e901c25e83170144dc1", + "text": "Added the `-n` flag as a shorthand for `--namespace` in the `kubectl config set-context` command.", + "markdown": "Added the `-n` flag as a shorthand for `--namespace` in the `kubectl config set-context` command. ([#134384](https://github.com/kubernetes/kubernetes/pull/134384), [@tchap](https://github.com/tchap)) [SIG CLI and Testing]", + "author": "tchap", + "author_url": "https://github.com/tchap", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134384", + "pr_number": 134384, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "134388": { + "commit": "95fcceb90cc9e5861937049016958d3071c8dcc2", + "text": "Moved the CPU Manager static policy option `strict-cpu-reservation` to the GA version.", + "markdown": "Moved the CPU Manager static policy option `strict-cpu-reservation` to the GA version. ([#134388](https://github.com/kubernetes/kubernetes/pull/134388), [@psasnal](https://github.com/psasnal))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4540", + "type": "KEP" + } + ], + "author": "psasnal", + "author_url": "https://github.com/psasnal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134388", + "pr_number": 134388, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "134390": { + "commit": "aa38aeaca288996e2b29ca0642a663c27afbe45f", + "text": "Fixed a possible data race during metrics registration.", + "markdown": "Fixed a possible data race during metrics registration. ([#134390](https://github.com/kubernetes/kubernetes/pull/134390), [@liggitt](https://github.com/liggitt)) [SIG Architecture and Instrumentation]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134390", + "pr_number": 134390, + "kinds": [ + "bug" + ], + "sigs": [ + "architecture", + "instrumentation" + ], + "duplicate": true, + "is_mapped": true + }, + "134400": { + "commit": "ab7e45228f8238530ec1f11b0abf532f50e0ae45", + "text": "Disabled the `SchedulerAsyncAPICalls` feature gate to mitigate a bug where its interaction with asynchronous preemption could degrade `kube-scheduler` performance, especially under high `kube-apiserver` load.", + "markdown": "Disabled the `SchedulerAsyncAPICalls` feature gate to mitigate a bug where its interaction with asynchronous preemption could degrade `kube-scheduler` performance, especially under high `kube-apiserver` load. ([#134400](https://github.com/kubernetes/kubernetes/pull/134400), [@macsko](https://github.com/macsko))", + "author": "macsko", + "author_url": "https://github.com/macsko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134400", + "pr_number": 134400, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "scheduling" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "134433": { + "commit": "095b9d6045cc2d3f1a2ae9ae23b9644c55aaf594", + "text": "kubeadm: Added error printing during retries related to the `WaitForAllControlPlaneComponents` functionality at verbosity level 5.", + "markdown": "Kubeadm: Added error printing during retries related to the `WaitForAllControlPlaneComponents` functionality at verbosity level 5. ([#134433](https://github.com/kubernetes/kubernetes/pull/134433), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134433", + "pr_number": 134433, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134445": { + "commit": "c5ef945f370f6b2749725c5be2781a4bc89b688e", + "text": "Fixed a long-standing issue where `kubelet` rejected Pods with `NodeAffinityFailed` due to a stale informer cache.", + "markdown": "Fixed a long-standing issue where `kubelet` rejected Pods with `NodeAffinityFailed` due to a stale informer cache. ([#134445](https://github.com/kubernetes/kubernetes/pull/134445), [@natasha41575](https://github.com/natasha41575))", + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134445", + "pr_number": 134445, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "134452": { + "commit": "d5efbf2ebf9725ab2bada9136c6958268b31dc4f", + "text": "DRA: The `DynamicResourceAllocation` feature gate for the core functionality (GA in `v1.34`) has now been locked to enabled-by-default and cannot be disabled anymore.", + "markdown": "DRA: The `DynamicResourceAllocation` feature gate for the core functionality (GA in `v1.34`) has now been locked to enabled-by-default and cannot be disabled anymore. ([#134452](https://github.com/kubernetes/kubernetes/pull/134452), [@pohly](https://github.com/pohly)) [SIG Auth, Node, Scheduling and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134452", + "pr_number": 134452, + "areas": [ + "test" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "auth", + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134457": { + "commit": "6652c9fadf4fa2febdca4a856a0340086236f9e5", + "text": "The `PreferSameZone` and `PreferSameNode` values for the Service\n`trafficDistribution` field graduated to general availability. The\n`PreferClose` value is now deprecated in favor of the more explicit\n`PreferSameZone`.", + "markdown": "The `PreferSameZone` and `PreferSameNode` values for the Service\n `trafficDistribution` field graduated to general availability. The\n `PreferClose` value is now deprecated in favor of the more explicit\n `PreferSameZone`. ([#134457](https://github.com/kubernetes/kubernetes/pull/134457), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-network/3015-prefer-same-node/", + "type": "KEP" + } + ], + "author": "danwinship", + "author_url": "https://github.com/danwinship", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134457", + "pr_number": 134457, + "areas": [ + "test", + "kube-proxy", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "network", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134466": { + "commit": "83504f1b02a6e807b890a96e70572b27adede7ad", + "text": "Fixed a bug where `AllocationMode: All` would not succeed if a resource pool contained `ResourceSlices` that were not targeting the current node.", + "markdown": "Fixed a bug where `AllocationMode: All` would not succeed if a resource pool contained `ResourceSlices` that were not targeting the current node. ([#134466](https://github.com/kubernetes/kubernetes/pull/134466), [@mortent](https://github.com/mortent))", + "author": "mortent", + "author_url": "https://github.com/mortent", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134466", + "pr_number": 134466, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "134479": { + "commit": "ee1ff4866e30ac3685da3e007979b0e9ab7651a6", + "text": "DRA Device Taints: Fixed toleration of `NoExecute`. Prior to this enhancement, tolerating a `NoExecute` did not work because the scheduler did not inform the eviction controller about the toleration, so the scheduled pod got evicted almost immediately.", + "markdown": "DRA Device Taints: Fixed toleration of `NoExecute`. Prior to this enhancement, tolerating a `NoExecute` did not work because the scheduler did not inform the eviction controller about the toleration, so the scheduled pod got evicted almost immediately. ([#134479](https://github.com/kubernetes/kubernetes/pull/134479), [@pohly](https://github.com/pohly)) [SIG Apps, Node, Scheduling and Testing]", + "author": "pohly", + "author_url": "https://github.com/pohly", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134479", + "pr_number": 134479, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134481": { + "commit": "ddc2c5d192275207b7ebb43b066fd0b0e94fc011", + "text": "Promoted the `--chunk-size` flag to stable. The kubectl `describe`, `get`, `drain`, and `events` commands can use `--chunk-size` flag to set chunk size.", + "markdown": "Promoted the `--chunk-size` flag to stable. The kubectl `describe`, `get`, `drain`, and `events` commands can use `--chunk-size` flag to set chunk size. ([#134481](https://github.com/kubernetes/kubernetes/pull/134481), [@soltysh](https://github.com/soltysh))", + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134481", + "pr_number": 134481, + "areas": [ + "kubectl" + ], + "kinds": [ + "documentation", + "cleanup" + ], + "sigs": [ + "cli" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "134493": { + "commit": "0b90cb5e5a8f36ff51ef64eeca002c44eb17e6b9", + "text": "Promoted the `RelaxedServiceNameValidation` feature to beta (enabled by default).\nNew Service names are now validated with `NameIsDNSLabel()`, relaxing the pre-existing validation.", + "markdown": "Promoted the `RelaxedServiceNameValidation` feature to beta (enabled by default).\n New Service names are now validated with `NameIsDNSLabel()`, relaxing the pre-existing validation. ([#134493](https://github.com/kubernetes/kubernetes/pull/134493), [@adrianmoisey](https://github.com/adrianmoisey))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5311", + "type": "KEP" + } + ], + "author": "adrianmoisey", + "author_url": "https://github.com/adrianmoisey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134493", + "pr_number": 134493, + "kinds": [ + "feature" + ], + "sigs": [ + "network" + ], + "feature": true, + "is_mapped": true + }, + "134510": { + "commit": "9630ab9581afbac9835d53f9e620a1240a1d2d91", + "text": "Substantially simplified building Kubernetes by making the process run a pre-built container image directly without running `rsyncd`.", + "markdown": "Substantially simplified building Kubernetes by making the process run a pre-built container image directly without running `rsyncd`. ([#134510](https://github.com/kubernetes/kubernetes/pull/134510), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134510", + "pr_number": 134510, + "kinds": [ + "cleanup" + ], + "sigs": [ + "release", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134523": { + "commit": "859e0e6d025b4c90eae9f18e4a4995269deae6d5", + "text": "Added a `source` label to the `resourceclaim_controller_resource_claims` metric.\nAdded the `scheduler_resourceclaim_creates_total` metric for `DRAExtendedResource`.", + "markdown": "Added a `source` label to the `resourceclaim_controller_resource_claims` metric.\n Added the `scheduler_resourceclaim_creates_total` metric for `DRAExtendedResource`. ([#134523](https://github.com/kubernetes/kubernetes/pull/134523), [@bitoku](https://github.com/bitoku)) [SIG Apps, Instrumentation, Node and Scheduling]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5004", + "type": "KEP" + } + ], + "author": "bitoku", + "author_url": "https://github.com/bitoku", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134523", + "pr_number": 134523, + "kinds": [ + "feature" + ], + "sigs": [ + "apps", + "instrumentation", + "node", + "scheduling" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "134539": { + "commit": "b5c4ebc8985b3de7acf7e69fc75068d1a2ee4f41", + "text": "Marked `ipvs` mode in kube-proxy as deprecated, which will be removed in a future version of Kubernetes. Users are encouraged to migrate to `nftables`.", + "markdown": "Marked `ipvs` mode in kube-proxy as deprecated, which will be removed in a future version of Kubernetes. Users are encouraged to migrate to `nftables`. ([#134539](https://github.com/kubernetes/kubernetes/pull/134539), [@adrianmoisey](https://github.com/adrianmoisey))", + "author": "adrianmoisey", + "author_url": "https://github.com/adrianmoisey", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134539", + "pr_number": 134539, + "areas": [ + "kube-proxy" + ], + "kinds": [ + "deprecation" + ], + "sigs": [ + "network" + ], + "is_mapped": true + }, + "134577": { + "commit": "5105b1d7913b9d333d6d480b8e5c57a8f16c0ec4", + "text": "kube-apiserver: Made the subresources `pods/exec`, `pods/attach`, and `pods/portforward` require `create` permission for both SPDY and Websocket API requests. Previously, SPDY requests required `create` permission, but Websocket requests only required `get` permission. This change is gated by the `AuthorizePodWebsocketUpgradeCreatePermission` feature-gate, which is enabled by default.\n\nBefore upgrading to 1.35, ensure any custom ClusterRoles and Roles intended to grant `pods/exec`, `pods/attach`, or `pods/portforward` permission include the `create` verb.", + "markdown": "Kube-apiserver: Made the subresources `pods/exec`, `pods/attach`, and `pods/portforward` require `create` permission for both SPDY and Websocket API requests. Previously, SPDY requests required `create` permission, but Websocket requests only required `get` permission. This change is gated by the `AuthorizePodWebsocketUpgradeCreatePermission` feature-gate, which is enabled by default.\n \n Before upgrading to 1.35, ensure any custom ClusterRoles and Roles intended to grant `pods/exec`, `pods/attach`, or `pods/portforward` permission include the `create` verb. ([#134577](https://github.com/kubernetes/kubernetes/pull/134577), [@seans3](https://github.com/seans3)) [SIG API Machinery, Auth, Node and Testing]", + "author": "seans3", + "author_url": "https://github.com/seans3", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134577", + "pr_number": 134577, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "134588": { + "commit": "f7fb7cd86b6db5531087b4ae3b1e8198af3c927e", + "text": "kubeadm: Fixed a preflight check that could fail hostname construction in IPv6 setups.", + "markdown": "Kubeadm: Fixed a preflight check that could fail hostname construction in IPv6 setups. ([#134588](https://github.com/kubernetes/kubernetes/pull/134588), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Cloud Provider, Cluster Lifecycle and Testing]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134588", + "pr_number": 134588, + "areas": [ + "test", + "provider/gcp", + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "auth", + "cloud-provider", + "cluster-lifecycle", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134598": { + "commit": "9d5cda7a21fa7c1a9cde99e78fad468562b89ca4", + "text": "Updated the Go version of Kubernetes to `1.25.3`.", + "markdown": "Updated the Go version of Kubernetes to `1.25.3`. ([#134598](https://github.com/kubernetes/kubernetes/pull/134598), [@BenTheElder](https://github.com/BenTheElder))", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134598", + "pr_number": 134598, + "areas": [ + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "release" + ], + "is_mapped": true + }, + "134601": { + "commit": "d789e1f5d3f32a388a79c16d03afd6c01f3311b0", + "text": "Made legacy watch calls (`ResourceVersion` = 0 or unset) that generate init-events weigh higher in `API Priority and Fairness (APF)` seat usage. Properly accounting for their cost protects the API server from CPU overload. Users might see increased throttling of such calls as a result.", + "markdown": "Made legacy watch calls (`ResourceVersion` = 0 or unset) that generate init-events weigh higher in `API Priority and Fairness (APF)` seat usage. Properly accounting for their cost protects the API server from CPU overload. Users might see increased throttling of such calls as a result. ([#134601](https://github.com/kubernetes/kubernetes/pull/134601), [@shyamjvs](https://github.com/shyamjvs))", + "author": "shyamjvs", + "author_url": "https://github.com/shyamjvs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134601", + "pr_number": 134601, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "is_mapped": true + }, + "134611": { + "commit": "4870d987d0a4aac2d9223d4c0b9f22858c0d1590", + "text": "Updated underlying images and dependencies to be compatible with Go version`1.25.3`.", + "markdown": "Updated underlying images and dependencies to be compatible with Go version`1.25.3`. ([#134611](https://github.com/kubernetes/kubernetes/pull/134611), [@cpanato](https://github.com/cpanato)) [SIG Architecture, Cloud Provider, Etcd, Release, Storage and Testing]", + "author": "cpanato", + "author_url": "https://github.com/cpanato", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134611", + "pr_number": 134611, + "areas": [ + "test", + "provider/gcp", + "release-eng", + "conformance" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "architecture", + "cloud-provider", + "etcd", + "release", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "134614": { + "commit": "02e576064fc1855776b118ffb81083dc2bd1e3b8", + "text": "Promoted the Topology Manager policy option `max-allowable-numa-nodes` to GA version.", + "markdown": "Promoted the Topology Manager policy option `max-allowable-numa-nodes` to GA version. ([#134614](https://github.com/kubernetes/kubernetes/pull/134614), [@ffromani](https://github.com/ffromani))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4622", + "type": "KEP" + } + ], + "author": "ffromani", + "author_url": "https://github.com/ffromani", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134614", + "pr_number": 134614, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "134624": { + "commit": "a058cf788a214b25c42173a6d7df8e77b26e2b1b", + "text": "The Pod Certificates feature moved to beta. The `PodCertificateRequest` feature gate is set disabled by default. To use the feature, users must enable the certificates API groups in `v1beta1` and enable the `PodCertificateRequest` feature gate. The `UserAnnotations` field was added to the `PodCertificateProjection` API and the corresponding `UnverifiedUserAnnotations` field was added to the `PodCertificateRequest` API.", + "markdown": "The Pod Certificates feature moved to beta. The `PodCertificateRequest` feature gate is set disabled by default. To use the feature, users must enable the certificates API groups in `v1beta1` and enable the `PodCertificateRequest` feature gate. The `UserAnnotations` field was added to the `PodCertificateProjection` API and the corresponding `UnverifiedUserAnnotations` field was added to the `PodCertificateRequest` API. ([#134624](https://github.com/kubernetes/kubernetes/pull/134624), [@yt2985](https://github.com/yt2985)) [SIG API Machinery, Apps, Auth, Etcd, Instrumentation, Node and Testing]", + "author": "yt2985", + "author_url": "https://github.com/yt2985", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134624", + "pr_number": 134624, + "areas": [ + "test", + "kubelet", + "apiserver", + "code-generation", + "stable-metrics" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "etcd", + "instrumentation", + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134625": { + "commit": "e1bc8e4c3d50c07e053e94f0727f6c6e887104e3", + "text": "Removed the `VolumeAttributesClass` resource from the `storage.k8s.io/v1alpha1` API in `v1.35`.", + "markdown": "Removed the `VolumeAttributesClass` resource from the `storage.k8s.io/v1alpha1` API in `v1.35`. ([#134625](https://github.com/kubernetes/kubernetes/pull/134625), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Etcd, Storage and Testing]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134625", + "pr_number": 134625, + "areas": [ + "test" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "etcd", + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134631": { + "commit": "d8a53105dda26cb46aa84e8b6d4eb2c7a1421215", + "text": "Enabled the feature gate `ContainerRestartRules` by default. The `ContainerRestartRules` feature has been promoted to beta. Fixed a bug in this feature that caused probes to continue to run even if the container has terminated and is not restartable.", + "markdown": "Enabled the feature gate `ContainerRestartRules` by default. The `ContainerRestartRules` feature has been promoted to beta. Fixed a bug in this feature that caused probes to continue to run even if the container has terminated and is not restartable. ([#134631](https://github.com/kubernetes/kubernetes/pull/134631), [@yuanwang04](https://github.com/yuanwang04))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5307", + "type": "KEP" + }, + { + "description": "[Usage]", + "url": "https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#container-restart-rules", + "type": "official" + } + ], + "author": "yuanwang04", + "author_url": "https://github.com/yuanwang04", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134631", + "pr_number": 134631, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug", + "feature" + ], + "sigs": [ + "node" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134635": { + "commit": "76f5a1c8c2e8748b602d1cdaa4e1b2f4ca7cecb5", + "text": "Locked the (generally available) feature gate `ExecProbeTimeout` to true.", + "markdown": "Locked the (generally available) feature gate `ExecProbeTimeout` to true. ([#134635](https://github.com/kubernetes/kubernetes/pull/134635), [@vivzbansal](https://github.com/vivzbansal)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/1972", + "type": "KEP" + } + ], + "author": "vivzbansal", + "author_url": "https://github.com/vivzbansal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134635", + "pr_number": 134635, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true + }, + "134647": { + "commit": "31f83cdf2b7a22f6c41c255516b8affa3ba40d70", + "text": "Enabled the `MutableCSINodeAllocatableCount` feature gate by default in beta.", + "markdown": "Enabled the `MutableCSINodeAllocatableCount` feature gate by default in beta. ([#134647](https://github.com/kubernetes/kubernetes/pull/134647), [@torredil](https://github.com/torredil))", + "author": "torredil", + "author_url": "https://github.com/torredil", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134647", + "pr_number": 134647, + "kinds": [ + "feature" + ], + "sigs": [ + "storage" + ], + "feature": true, + "is_mapped": true + }, + "134654": { + "commit": "aefb388c7da14d1cf1ffb9c9e767609b4a5a193c", + "text": "kube-controller-manager: Resolved potential issues handling pods with incorrect uids in their `ownerReference`.", + "markdown": "Kube-controller-manager: Resolved potential issues handling pods with incorrect uids in their `ownerReference`. ([#134654](https://github.com/kubernetes/kubernetes/pull/134654), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134654", + "pr_number": 134654, + "kinds": [ + "bug" + ], + "sigs": [ + "apps" + ], + "is_mapped": true + }, + "134656": { + "commit": "cf991024a240fb649464e6f4505714a0e27e9c1b", + "text": "Removed `rsync` as a dependency to build Kubernetes.", + "markdown": "Removed `rsync` as a dependency to build Kubernetes. ([#134656](https://github.com/kubernetes/kubernetes/pull/134656), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing]", + "author": "BenTheElder", + "author_url": "https://github.com/BenTheElder", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134656", + "pr_number": 134656, + "areas": [ + "release-eng" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "release", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134685": { + "commit": "fb7774f22ad1bdf057a525ee08a05749480523bf", + "text": "Dropped support for `policy/v1beta1` PodDisruptionBudget in kubectl.", + "markdown": "Dropped support for `policy/v1beta1` PodDisruptionBudget in kubectl. ([#134685](https://github.com/kubernetes/kubernetes/pull/134685), [@scaliby](https://github.com/scaliby))", + "author": "scaliby", + "author_url": "https://github.com/scaliby", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134685", + "pr_number": 134685, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "134691": { + "commit": "59616d50fd67877f158ebf5bcc7a12aff9fe3a92", + "text": "The `SystemdWatchdog` feature gate has been locked to default and will be removed in future release. The systemd watchdog functionality in `kubelet` can be enabled via systemd without any feature gate configuration. See the [systemd watchdog documentation](https://kubernetes.io/docs/reference/node/systemd-watchdog/) for more information.", + "markdown": "The `SystemdWatchdog` feature gate has been locked to default and will be removed in future release. The systemd watchdog functionality in `kubelet` can be enabled via systemd without any feature gate configuration. See the [systemd watchdog documentation](https://kubernetes.io/docs/reference/node/systemd-watchdog/) for more information. ([#134691](https://github.com/kubernetes/kubernetes/pull/134691), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev))", + "author": "SergeyKanzhelev", + "author_url": "https://github.com/SergeyKanzhelev", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134691", + "pr_number": 134691, + "areas": [ + "kubelet" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "134692": { + "commit": "d536e31ce279958538846eab83e302dc8d189829", + "text": "kubeadm: Updated the supported `etcd` version to `v3.5.23` for supported control plane versions `v1.31`, `v1.32`, and `v1.33`.", + "markdown": "Kubeadm: Updated the supported `etcd` version to `v3.5.23` for supported control plane versions `v1.31`, `v1.32`, and `v1.33`. ([#134692](https://github.com/kubernetes/kubernetes/pull/134692), [@joshjms](https://github.com/joshjms)) [SIG Cluster Lifecycle and Etcd]", + "author": "joshjms", + "author_url": "https://github.com/joshjms", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134692", + "pr_number": 134692, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle", + "etcd" + ], + "duplicate": true, + "is_mapped": true + }, + "134709": { + "commit": "8cd57a9e6f07d2446910d493781557b6cd4d6b99", + "text": "Added support for tracing in `kubectl` with the `--profile=trace` flag.", + "markdown": "Added support for tracing in `kubectl` with the `--profile=trace` flag. ([#134709](https://github.com/kubernetes/kubernetes/pull/134709), [@tchap](https://github.com/tchap))", + "author": "tchap", + "author_url": "https://github.com/tchap", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134709", + "pr_number": 134709, + "areas": [ + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli" + ], + "feature": true, + "is_mapped": true + }, + "134715": { + "commit": "e2453c503ea3c3961e78f963ade4d7cbe1ba5f46", + "text": "kubeadm: Added missing cluster-info context validation to prevent panics when the user has a malformed kubeconfig in the cluster-info ConfigMap that excludes a valid current context.", + "markdown": "Kubeadm: Added missing cluster-info context validation to prevent panics when the user has a malformed kubeconfig in the cluster-info ConfigMap that excludes a valid current context. ([#134715](https://github.com/kubernetes/kubernetes/pull/134715), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134715", + "pr_number": 134715, + "areas": [ + "kubeadm" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "134729": { + "commit": "e4fcafba69008d87b5196ea60e75fe9224a2082f", + "text": "Promoted the `HostnameOverride` feature gate to beta and enabled it by default.", + "markdown": "Promoted the `HostnameOverride` feature gate to beta and enabled it by default. ([#134729](https://github.com/kubernetes/kubernetes/pull/134729), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Network and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-network/4762-allow-arbitrary-fqdn-as-pod-hostname", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134729", + "pr_number": 134729, + "kinds": [ + "feature" + ], + "sigs": [ + "network", + "node" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "134730": { + "commit": "c7b6dfb144aa24adaf443f9a3682f971e4f21140", + "text": "Fixed an issue in asynchronous preemption: Scheduler now checks if preemption is ongoing for a Pod before initiating new preemption calls.", + "markdown": "Fixed an issue in asynchronous preemption: Scheduler now checks if preemption is ongoing for a Pod before initiating new preemption calls. ([#134730](https://github.com/kubernetes/kubernetes/pull/134730), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing]", + "author": "ania-borowiec", + "author_url": "https://github.com/ania-borowiec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134730", + "pr_number": 134730, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134739": { + "commit": "0ba43e9f5eaf7300f919b418895a5a561c2bee74", + "text": "Improved performance of `Endpoint` and `EndpointSlice` controllers when there are a large number of services in a single namespace by making pod-to-service lookup asynchronous.", + "markdown": "Improved performance of `Endpoint` and `EndpointSlice` controllers when there are a large number of services in a single namespace by making pod-to-service lookup asynchronous. ([#134739](https://github.com/kubernetes/kubernetes/pull/134739), [@shyamjvs](https://github.com/shyamjvs)) [SIG Apps and Network]", + "author": "shyamjvs", + "author_url": "https://github.com/shyamjvs", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134739", + "pr_number": 134739, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "network" + ], + "duplicate": true, + "is_mapped": true + }, + "134740": { + "commit": "9e284866c3bd3b9bfbc5c488c8e450cfdb3663ff", + "text": "`kube-scheduler`: Pod statuses no longer include specific taint keys or values when scheduling fails due to untolerated taints.", + "markdown": "`kube-scheduler`: Pod statuses no longer include specific taint keys or values when scheduling fails due to untolerated taints. ([#134740](https://github.com/kubernetes/kubernetes/pull/134740), [@hoskeri](https://github.com/hoskeri))", + "author": "hoskeri", + "author_url": "https://github.com/hoskeri", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134740", + "pr_number": 134740, + "kinds": [ + "bug" + ], + "sigs": [ + "scheduling" + ], + "is_mapped": true + }, + "134743": { + "commit": "eea58e01f445175d7e571fb199403a20c96b5faa", + "text": "Fixed an issue where the `kubelet` `/configz` endpoint reported an incorrect value for `kubeletconfig.cgroupDriver` when the cgroup driver setting was received from the container runtime.", + "markdown": "Fixed an issue where the `kubelet` `/configz` endpoint reported an incorrect value for `kubeletconfig.cgroupDriver` when the cgroup driver setting was received from the container runtime. ([#134743](https://github.com/kubernetes/kubernetes/pull/134743), [@marquiz](https://github.com/marquiz))", + "author": "marquiz", + "author_url": "https://github.com/marquiz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134743", + "pr_number": 134743, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "134744": { + "commit": "ec5425a6ef45b0df37c66171913edaf0f443567e", + "text": "ACTION REQUIRED:\n\nvendor: Updated `k8s.io/system-validators` to `v1.12.1`. The cgroups validator now throws an error instead of a warning if cgroups v1 is detected on the host and the provided KubeletVersion is `v1.35` or newer.\n\nkubeadm: Started using `k8s.io/system-validators` `v1.12.1` in `kubeadm` `v1.35`. During `kubeadm init`, `kubeadm join`, and `kubeadm upgrade`, the SystemVerification preflight check throws an error if cgroups v1 is detected and the detected `kubelet` version is `v1.35` or newer. For older versions of `kubelet`, a preflight warning is displayed.\n\nTo allow cgroups v1 with `kubeadm` and `kubelet` version `v1.35` or newer, you must:\n- Ignore the error from the SystemVerification preflight check by `kubeadm`.\n- Edit the `kube-system/kubelet-config` ConfigMap and add the `failCgroupV1: false` field before upgrading.", + "markdown": "ACTION REQUIRED:\n \n vendor: Updated `k8s.io/system-validators` to `v1.12.1`. The cgroups validator now throws an error instead of a warning if cgroups v1 is detected on the host and the provided KubeletVersion is `v1.35` or newer.\n \n kubeadm: Started using `k8s.io/system-validators` `v1.12.1` in `kubeadm` `v1.35`. During `kubeadm init`, `kubeadm join`, and `kubeadm upgrade`, the SystemVerification preflight check throws an error if cgroups v1 is detected and the detected `kubelet` version is `v1.35` or newer. For older versions of `kubelet`, a preflight warning is displayed.\n \n To allow cgroups v1 with `kubeadm` and `kubelet` version `v1.35` or newer, you must:\n - Ignore the error from the SystemVerification preflight check by `kubeadm`.\n - Edit the `kube-system/kubelet-config` ConfigMap and add the `failCgroupV1: false` field before upgrading. ([#134744](https://github.com/kubernetes/kubernetes/pull/134744), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5573", + "type": "KEP" + } + ], + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134744", + "pr_number": 134744, + "areas": [ + "kubeadm", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle", + "node" + ], + "feature": true, + "duplicate": true, + "action_required": true, + "is_mapped": true + }, + "134746": { + "commit": "0452b0aec7c0def662cb43c8ddaeb0df521c71b8", + "text": "Added the `ChangeContainerStatusOnKubeletRestart` feature gate, which defaults to disabled. When the feature gate is disabled, `kubelet` does not change the Pod status upon restart, and Pods do not re-run startup probes after the `kubelet` restarts.", + "markdown": "Added the `ChangeContainerStatusOnKubeletRestart` feature gate, which defaults to disabled. When the feature gate is disabled, `kubelet` does not change the Pod status upon restart, and Pods do not re-run startup probes after the `kubelet` restarts. ([#134746](https://github.com/kubernetes/kubernetes/pull/134746), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4781", + "type": "KEP" + } + ], + "author": "HirazawaUi", + "author_url": "https://github.com/HirazawaUi", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134746", + "pr_number": 134746, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "node", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "134760": { + "commit": "3ef02627669c71a7597d58fcb4eaa1a3ded9d711", + "text": "Added the `Step` field to the testing framework to allow volume expansion in configurable step sizes for tests.", + "markdown": "Added the `Step` field to the testing framework to allow volume expansion in configurable step sizes for tests. ([#134760](https://github.com/kubernetes/kubernetes/pull/134760), [@Rishita-Golla](https://github.com/Rishita-Golla)) [SIG Storage and Testing]", + "author": "Rishita-Golla", + "author_url": "https://github.com/Rishita-Golla", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134760", + "pr_number": 134760, + "areas": [ + "test", + "e2e-test-framework" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134769": { + "commit": "276c59af7c4c78153248a816f5fa04f499323028", + "text": "Fixed a bug where Job status updates fail after resuming a Job that was previously started and suspended.\nThe error message was: `status.startTime: Required value: startTime cannot be removed for unsuspended job`.", + "markdown": "Fixed a bug where Job status updates fail after resuming a Job that was previously started and suspended.\n The error message was: `status.startTime: Required value: startTime cannot be removed for unsuspended job`. ([#134769](https://github.com/kubernetes/kubernetes/pull/134769), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing]", + "author": "dejanzele", + "author_url": "https://github.com/dejanzele", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134769", + "pr_number": 134769, + "areas": [ + "test" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134777": { + "commit": "d915ef1660a6a7ac8cada8d7b526f7bf8bf12bd2", + "text": "Promoted `kubectl` command headers to stable.", + "markdown": "Promoted `kubectl` command headers to stable. ([#134777](https://github.com/kubernetes/kubernetes/pull/134777), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/859", + "type": "KEP" + } + ], + "author": "soltysh", + "author_url": "https://github.com/soltysh", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134777", + "pr_number": 134777, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "cleanup", + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134779": { + "commit": "4695bb6c19af291902ff701bf6dfcce1ed84bdef", + "text": "`kubeadm`: Updated the supported etcd version to `v3.5.24` for control plane versions `v1.32`, `v1.33`, and `v1.34`.", + "markdown": "`kubeadm`: Updated the supported etcd version to `v3.5.24` for control plane versions `v1.32`, `v1.33`, and `v1.34`. ([#134779](https://github.com/kubernetes/kubernetes/pull/134779), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing]", + "author": "joshjms", + "author_url": "https://github.com/joshjms", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134779", + "pr_number": 134779, + "areas": [ + "test", + "provider/gcp", + "release-eng", + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "cluster-lifecycle", + "etcd", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134780": { + "commit": "4415f00294cff245a9594055aed29abcd4e4a0c1", + "text": "Updated the etcd client library to `v3.6.5`.", + "markdown": "Updated the etcd client library to `v3.6.5`. ([#134780](https://github.com/kubernetes/kubernetes/pull/134780), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage]", + "author": "joshjms", + "author_url": "https://github.com/joshjms", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134780", + "pr_number": 134780, + "areas": [ + "kubelet", + "kube-proxy", + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "network", + "node", + "scheduling", + "storage" + ], + "duplicate": true, + "is_mapped": true + }, + "134781": { + "commit": "0bb040288a3a42deb8cce2a65df45b9dfd90d3bb", + "text": "`kubeadm`: Removed the `WaitForAllControlPlaneComponents` feature gate, which graduated to GA in `v1.34` and was locked to enabled by default.", + "markdown": "`kubeadm`: Removed the `WaitForAllControlPlaneComponents` feature gate, which graduated to GA in `v1.34` and was locked to enabled by default. ([#134781](https://github.com/kubernetes/kubernetes/pull/134781), [@neolit123](https://github.com/neolit123))", + "author": "neolit123", + "author_url": "https://github.com/neolit123", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134781", + "pr_number": 134781, + "areas": [ + "kubeadm" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cluster-lifecycle" + ], + "is_mapped": true + }, + "134782": { + "commit": "286d13b96c0e7ddfb9bb1eca7433a90de93a645c", + "text": "Dropped support for `certificates/v1beta1` `CertificateSigningRequest` in `kubectl`.", + "markdown": "Dropped support for `certificates/v1beta1` `CertificateSigningRequest` in `kubectl`. ([#134782](https://github.com/kubernetes/kubernetes/pull/134782), [@scaliby](https://github.com/scaliby))", + "author": "scaliby", + "author_url": "https://github.com/scaliby", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134782", + "pr_number": 134782, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "134784": { + "commit": "3ec2d82da57f2018fc76ae13da7a23a3f9a364f5", + "text": "Added the `StorageVersionMigration` `v1beta1` API and removed the `v1alpha1` API.\n\nACTION REQUIRED: The `v1alpha1` API is no longer supported. Users must remove any `v1alpha1` resources before upgrading.", + "markdown": "Added the `StorageVersionMigration` `v1beta1` API and removed the `v1alpha1` API.\n \n ACTION REQUIRED: The `v1alpha1` API is no longer supported. Users must remove any `v1alpha1` resources before upgrading. ([#134784](https://github.com/kubernetes/kubernetes/pull/134784), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Apps, Auth, Etcd and Testing]", + "documentation": [ + { + "description": "KEP: KEP", + "url": "https://github.com/kubernetes/enhancements/issues/4192", + "type": "KEP" + } + ], + "author": "michaelasp", + "author_url": "https://github.com/michaelasp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134784", + "pr_number": 134784, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "auth", + "etcd", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "action_required": true, + "is_mapped": true + }, + "134793": { + "commit": "3717c7025ea34b29ccbb70fda8cf032478f43933", + "text": "Fixed an issue where requests for a config `FromClass` in the `ResourceClaim` status were not referenced.", + "markdown": "Fixed an issue where requests for a config `FromClass` in the `ResourceClaim` status were not referenced. ([#134793](https://github.com/kubernetes/kubernetes/pull/134793), [@LionelJouin](https://github.com/LionelJouin))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4381", + "type": "KEP" + } + ], + "author": "LionelJouin", + "author_url": "https://github.com/LionelJouin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134793", + "pr_number": 134793, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "134803": { + "commit": "3d595e369174450a4d81269ca8f97032cf0b4ab6", + "text": "Implemented constrained impersonation as described in [KEP-5284](https://kep.k8s.io/5284).", + "markdown": "Implemented constrained impersonation as described in [KEP-5284](https://kep.k8s.io/5284). ([#134803](https://github.com/kubernetes/kubernetes/pull/134803), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/5284", + "type": "external" + } + ], + "author": "enj", + "author_url": "https://github.com/enj", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134803", + "pr_number": 134803, + "areas": [ + "test", + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134826": { + "commit": "1135d04f1d7746b553a675a558efc58e651eabae", + "text": "CSI drivers can now opt in to receive service account tokens via the secrets field instead of volume context by setting `spec.serviceAccountTokenInSecrets: true` in the CSIDriver object. This prevents tokens from being exposed in logs and other outputs. The feature is gated by the `CSIServiceAccountTokenSecrets` feature gate (beta in `v1.35`).", + "markdown": "CSI drivers can now opt in to receive service account tokens via the secrets field instead of volume context by setting `spec.serviceAccountTokenInSecrets: true` in the CSIDriver object. This prevents tokens from being exposed in logs and other outputs. The feature is gated by the `CSIServiceAccountTokenSecrets` feature gate (beta in `v1.35`). ([#134826](https://github.com/kubernetes/kubernetes/pull/134826), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Storage and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-storage/5538-csi-sa-tokens-secrets-field", + "type": "KEP" + } + ], + "author": "aramase", + "author_url": "https://github.com/aramase", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134826", + "pr_number": 134826, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "auth", + "storage", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134833": { + "commit": "fb10a2995459c52238024adbb10ffdfbdafd2c4d", + "text": "Fixed a panic in `kubectl api-resources` that occurred when the Discovery Client failed.", + "markdown": "Fixed a panic in `kubectl api-resources` that occurred when the Discovery Client failed. ([#134833](https://github.com/kubernetes/kubernetes/pull/134833), [@rikatz](https://github.com/rikatz))", + "author": "rikatz", + "author_url": "https://github.com/rikatz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134833", + "pr_number": 134833, + "areas": [ + "kubectl" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "134875": { + "commit": "934c34435ad851469ee6e97e9da0117fe77494bf", + "text": "Fixed a bug where the health of a DRA resource was not reported in the Pod status if the resource claim was generated from a template or used a different local name in the Pod spec.", + "markdown": "Fixed a bug where the health of a DRA resource was not reported in the Pod status if the resource claim was generated from a template or used a different local name in the Pod spec. ([#134875](https://github.com/kubernetes/kubernetes/pull/134875), [@Jpsassine](https://github.com/Jpsassine)) [SIG Node and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/4680-add-resource-health-to-pod-status/README.md", + "type": "KEP" + } + ], + "author": "Jpsassine", + "author_url": "https://github.com/Jpsassine", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134875", + "pr_number": 134875, + "areas": [ + "test", + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134905": { + "commit": "c30b578ee59ad0b1505009897a2a3d7766a6073e", + "text": "Scheduler: Added the `bindingTimeout` argument to the DynamicResources plugin configuration, allowing customization of the wait duration in `PreBind` for device binding conditions.\nDefaults to 10 minutes when `DRADeviceBindingConditions` and `DRAResourceClaimDeviceStatus` are both enabled.", + "markdown": "Scheduler: Added the `bindingTimeout` argument to the DynamicResources plugin configuration, allowing customization of the wait duration in `PreBind` for device binding conditions.\n Defaults to 10 minutes when `DRADeviceBindingConditions` and `DRAResourceClaimDeviceStatus` are both enabled. ([#134905](https://github.com/kubernetes/kubernetes/pull/134905), [@fj-naji](https://github.com/fj-naji)) [SIG Node and Scheduling]", + "author": "fj-naji", + "author_url": "https://github.com/fj-naji", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134905", + "pr_number": 134905, + "areas": [ + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "node", + "scheduling" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134906": { + "commit": "5e2ad84f6701a89fb9598fbcef46738f09fac386", + "text": "`kubeadm`: Added a preflight check `ContainerRuntimeVersion` to validate if the installed container runtime supports the `RuntimeConfig` gRPC method. If unsupported, `kubeadm` prints a warning message.\n\nStarting with Kubernetes `v1.36`, `kubelet` might refuse to start if the CRI runtime does not support this feature. More information can be found at the [Kubernetes blog](https://kubernetes.io/blog/2025/09/12/kubernetes-v1-34-cri-cgroup-driver-lookup-now-ga/).", + "markdown": "`kubeadm`: Added a preflight check `ContainerRuntimeVersion` to validate if the installed container runtime supports the `RuntimeConfig` gRPC method. If unsupported, `kubeadm` prints a warning message.\n \n Starting with Kubernetes `v1.36`, `kubelet` might refuse to start if the CRI runtime does not support this feature. More information can be found at the [Kubernetes blog](https://kubernetes.io/blog/2025/09/12/kubernetes-v1-34-cri-cgroup-driver-lookup-now-ga/). ([#134906](https://github.com/kubernetes/kubernetes/pull/134906), [@carlory](https://github.com/carlory))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://kep.k8s.io/4033", + "type": "external" + } + ], + "author": "carlory", + "author_url": "https://github.com/carlory", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134906", + "pr_number": 134906, + "areas": [ + "kubeadm" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cluster-lifecycle" + ], + "feature": true, + "is_mapped": true + }, + "134913": { + "commit": "3f1255dd5fc332de16e920c3b92168002841e545", + "text": "Dropped support for `discovery/v1beta1` `EndpointSlice` in `kubectl`.", + "markdown": "Dropped support for `discovery/v1beta1` `EndpointSlice` in `kubectl`. ([#134913](https://github.com/kubernetes/kubernetes/pull/134913), [@scaliby](https://github.com/scaliby))", + "author": "scaliby", + "author_url": "https://github.com/scaliby", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134913", + "pr_number": 134913, + "areas": [ + "kubectl" + ], + "kinds": [ + "cleanup" + ], + "sigs": [ + "cli" + ], + "is_mapped": true + }, + "134948": { + "commit": "a490c43f0ec6bf9fa4fa19a5b9a5a9937716d87a", + "text": "Promoted `PodObservedGenerationTracking` to GA.", + "markdown": "Promoted `PodObservedGenerationTracking` to GA. ([#134948](https://github.com/kubernetes/kubernetes/pull/134948), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, Node, Scheduling and Testing]", + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134948", + "pr_number": 134948, + "areas": [ + "test", + "kubelet", + "code-generation" + ], + "kinds": [ + "api-change" + ], + "sigs": [ + "api-machinery", + "apps", + "node", + "scheduling", + "testing" + ], + "duplicate": true, + "is_mapped": true + }, + "134949": { + "commit": "a13ad97048f4da8e4ce2f22dcd6e02a4173ecf9e", + "text": "Promoted `InPlacePodVerticalScaling` to GA.", + "markdown": "Promoted `InPlacePodVerticalScaling` to GA. ([#134949](https://github.com/kubernetes/kubernetes/pull/134949), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Node and Scheduling]", + "author": "natasha41575", + "author_url": "https://github.com/natasha41575", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134949", + "pr_number": 134949, + "areas": [ + "kubelet" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "api-machinery", + "node", + "scheduling" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "134956": { + "commit": "808d320de1e76c3ee89c09f8a65857781b8c5f5b", + "text": "Removed `BlockOwnerDeletion` from `ResourceClaim` created from `ResourceClaimTemplate` and from `extendedResourceClaim` created by the `scheduler`.", + "markdown": "Removed `BlockOwnerDeletion` from `ResourceClaim` created from `ResourceClaimTemplate` and from `extendedResourceClaim` created by the `scheduler`. ([#134956](https://github.com/kubernetes/kubernetes/pull/134956), [@yliaog](https://github.com/yliaog)) [SIG Apps, Node and Scheduling]", + "author": "yliaog", + "author_url": "https://github.com/yliaog", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134956", + "pr_number": 134956, + "kinds": [ + "bug" + ], + "sigs": [ + "apps", + "node", + "scheduling" + ], + "duplicate": true, + "is_mapped": true + }, + "134962": { + "commit": "c329e6492901b7aae1a7555d895e1f75fb43b881", + "text": "Fixed an issue with setting `distinctAttribute=nil` when the `DRAConsumableCapacity` feature gate is disabled.", + "markdown": "Fixed an issue with setting `distinctAttribute=nil` when the `DRAConsumableCapacity` feature gate is disabled. ([#134962](https://github.com/kubernetes/kubernetes/pull/134962), [@sunya-ch](https://github.com/sunya-ch))", + "author": "sunya-ch", + "author_url": "https://github.com/sunya-ch", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134962", + "pr_number": 134962, + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "is_mapped": true + }, + "134964": { + "commit": "b5c62b1b10d0643d0be841eff2a0e9f1b0b77ca2", + "text": "Dropped `DeviceBindingConditions` fields when the `DRADeviceBindingConditions` feature gate is not enabled and not in use.", + "markdown": "Dropped `DeviceBindingConditions` fields when the `DRADeviceBindingConditions` feature gate is not enabled and not in use. ([#134964](https://github.com/kubernetes/kubernetes/pull/134964), [@sunya-ch](https://github.com/sunya-ch))", + "author": "sunya-ch", + "author_url": "https://github.com/sunya-ch", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134964", + "pr_number": 134964, + "kinds": [ + "bug" + ], + "is_mapped": true + }, + "134984": { + "commit": "1ffcea577bec6886c940245bd804991c737a5a52", + "text": "Added `ObservedGeneration` to CustomResourceDefinition conditions.", + "markdown": "Added `ObservedGeneration` to CustomResourceDefinition conditions. ([#134984](https://github.com/kubernetes/kubernetes/pull/134984), [@michaelasp](https://github.com/michaelasp))", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4192", + "type": "KEP" + } + ], + "author": "michaelasp", + "author_url": "https://github.com/michaelasp", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134984", + "pr_number": 134984, + "areas": [ + "apiserver", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery" + ], + "feature": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134994": { + "commit": "4ca91a6542802f1339caf6f2f8dfe917beb5ce9c", + "text": "Removed the `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` feature gates, which were locked since `v1.32`.", + "markdown": "Removed the `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` feature gates, which were locked since `v1.32`. ([#134994](https://github.com/kubernetes/kubernetes/pull/134994), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Node and Testing]", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134994", + "pr_number": 134994, + "areas": [ + "test", + "apiserver" + ], + "kinds": [ + "cleanup", + "api-change" + ], + "sigs": [ + "api-machinery", + "auth", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "134995": { + "commit": "5fd9cefd95b7e775ab515b3cf7ff2d159df1acd8", + "text": "Introduced a structured and versioned `v1alpha1` response format for the `flagz` endpoint.", + "markdown": "Introduced a structured and versioned `v1alpha1` response format for the `flagz` endpoint. ([#134995](https://github.com/kubernetes/kubernetes/pull/134995), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/blob/master/keps/sig-instrumentation/4828-component-flagz/README.md", + "type": "KEP" + } + ], + "author": "yongruilin", + "author_url": "https://github.com/yongruilin", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/134995", + "pr_number": 134995, + "areas": [ + "test", + "kubelet", + "kube-proxy", + "apiserver", + "code-generation", + "dependency" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "architecture", + "instrumentation", + "network", + "node", + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "135003": { + "commit": "9cad3f8787606d711ea8890398877fdfab011474", + "text": "Added `kubectl kuberc view` and `kubectl kuberc set` commands to perform operations against the `kuberc` file.", + "markdown": "Added `kubectl kuberc view` and `kubectl kuberc set` commands to perform operations against the `kuberc` file. ([#135003](https://github.com/kubernetes/kubernetes/pull/135003), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/tree/master/keps/sig-cli/3104-introduce-kuberc", + "type": "KEP" + } + ], + "author": "ardaguclu", + "author_url": "https://github.com/ardaguclu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/135003", + "pr_number": 135003, + "areas": [ + "test", + "kubectl" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "cli", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "135007": { + "commit": "f09cd625bc3cd5fa8debb5d487db76ca49028402", + "text": "The scheduler now clears the `nominatedNodeName` field for Pods upon scheduling or binding failure. External components, such as Cluster Autoscaler and Karpenter, should not overwrite this field.", + "markdown": "The scheduler now clears the `nominatedNodeName` field for Pods upon scheduling or binding failure. External components, such as Cluster Autoscaler and Karpenter, should not overwrite this field. ([#135007](https://github.com/kubernetes/kubernetes/pull/135007), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/5278", + "type": "KEP" + } + ], + "author": "ania-borowiec", + "author_url": "https://github.com/ania-borowiec", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/135007", + "pr_number": 135007, + "areas": [ + "test" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling", + "testing" + ], + "feature": true, + "duplicate": true, + "is_mapped": true + }, + "135017": { + "commit": "48c56e04e0bc2cdc33eb67ee36ca69eba96b5d0b", + "text": "`kube-controller-manager`: Fixed a `v1.34` regression that triggered a spurious rollout of existing StatefulSets when upgrading the control plane from `v1.33` to `v1.34`. This fix is guarded by the `StatefulSetSemanticRevisionComparison` feature gate, which is enabled by default.", + "markdown": "`kube-controller-manager`: Fixed a `v1.34` regression that triggered a spurious rollout of existing StatefulSets when upgrading the control plane from `v1.33` to `v1.34`. This fix is guarded by the `StatefulSetSemanticRevisionComparison` feature gate, which is enabled by default. ([#135017](https://github.com/kubernetes/kubernetes/pull/135017), [@liggitt](https://github.com/liggitt))", + "author": "liggitt", + "author_url": "https://github.com/liggitt", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/135017", + "pr_number": 135017, + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "apps" + ], + "duplicate_kind": true, + "is_mapped": true + }, + "135059": { + "commit": "22d41b544337e1ebd6c80f36e1c8cf05be3797bf", + "text": "After fixing regressions detected in `v1.34`, the `SchedulerAsyncAPICalls` feature gate was re-enabled by default.", + "markdown": "After fixing regressions detected in `v1.34`, the `SchedulerAsyncAPICalls` feature gate was re-enabled by default. ([#135059](https://github.com/kubernetes/kubernetes/pull/135059), [@macsko](https://github.com/macsko))", + "author": "macsko", + "author_url": "https://github.com/macsko", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/135059", + "pr_number": 135059, + "kinds": [ + "feature" + ], + "sigs": [ + "scheduling" + ], + "feature": true, + "is_mapped": true + }, + "135080": { + "commit": "97cb47a91330db13d05e8674ce2a80ace19e4d99", + "text": "Promoted the `JobManagedBy` feature to general availability. The `JobManagedBy` feature gate was locked to `true` and will be removed in a future Kubernetes release.", + "markdown": "Promoted the `JobManagedBy` feature to general availability. The `JobManagedBy` feature gate was locked to `true` and will be removed in a future Kubernetes release. ([#135080](https://github.com/kubernetes/kubernetes/pull/135080), [@dejanzele](https://github.com/dejanzele)) [SIG API Machinery, Apps and Testing]", + "documentation": [ + { + "description": "[KEP]", + "url": "https://github.com/kubernetes/enhancements/issues/4368", + "type": "KEP" + } + ], + "author": "dejanzele", + "author_url": "https://github.com/dejanzele", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/135080", + "pr_number": 135080, + "areas": [ + "test", + "code-generation" + ], + "kinds": [ + "api-change", + "feature" + ], + "sigs": [ + "api-machinery", + "apps", + "testing" + ], + "feature": true, + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + }, + "135081": { + "commit": "2a48a78fcb9f0574f2cd7e453fcf56d5ff1c0daa", + "text": "Reduced event spam during volume operation errors in the Portworx in-tree driver.", + "markdown": "Reduced event spam during volume operation errors in the Portworx in-tree driver. ([#135081](https://github.com/kubernetes/kubernetes/pull/135081), [@gohilankit](https://github.com/gohilankit))", + "author": "gohilankit", + "author_url": "https://github.com/gohilankit", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/135081", + "pr_number": 135081, + "kinds": [ + "cleanup" + ], + "sigs": [ + "storage" + ], + "do_not_publish": true, + "is_mapped": true + }, + "135084": { + "commit": "459bea5adffe702cf3bc006b160f863399bf560d", + "text": "Pod resize now only allows CPU and memory resources; other resource types are forbidden.", + "markdown": "Pod resize now only allows CPU and memory resources; other resource types are forbidden. ([#135084](https://github.com/kubernetes/kubernetes/pull/135084), [@tallclair](https://github.com/tallclair)) [SIG Apps, Node and Testing]", + "author": "tallclair", + "author_url": "https://github.com/tallclair", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/135084", + "pr_number": 135084, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "apps", + "node", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "is_mapped": true + } } \ No newline at end of file diff --git a/releases/release-1.35/release-notes/release-notes-draft.md b/releases/release-1.35/release-notes/release-notes-draft.md index 71cbf9854d9..2aa5177a1a6 100644 --- a/releases/release-1.35/release-notes/release-notes-draft.md +++ b/releases/release-1.35/release-notes/release-notes-draft.md @@ -1,248 +1,248 @@ -## Urgent Upgrade Notes - -### (No, really, you MUST read this before you upgrade) - -- ACTION REQUIRED: - - vendor: Updated `k8s.io/system-validators` to `v1.12.1`. The cgroups validator now throws an error instead of a warning if cgroups v1 is detected on the host and the provided KubeletVersion is `v1.35` or newer. - - kubeadm: Started using `k8s.io/system-validators` `v1.12.1` in `kubeadm` `v1.35`. During `kubeadm init`, `kubeadm join`, and `kubeadm upgrade`, the SystemVerification preflight check throws an error if cgroups v1 is detected and the detected `kubelet` version is `v1.35` or newer. For older versions of `kubelet`, a preflight warning is displayed. - - To allow cgroups v1 with `kubeadm` and `kubelet` version `v1.35` or newer, you must: - - Ignore the error from the SystemVerification preflight check by `kubeadm`. - - Edit the `kube-system/kubelet-config` ConfigMap and add the `failCgroupV1: false` field before upgrading. ([#134744](https://github.com/kubernetes/kubernetes/pull/134744), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] - - ACTION REQUIRED: - - Removed the `--pod-infra-container-image` flag from `kubelet` command line. For `non-kubeadm` clusters, users must manually remove this flag from their `kubelet` configuration to prevent startup failures before upgrading `kubelet`. For `kubeadm` clusters, if users pass extra arguments to the `kubelet` like `--pod-infra-container-image`, it will be written to the `kubelet` env file during the `init` phase. `kubeadm` does not remove it during the `init` or `join` phase, so users must manually remove it from `extraArgs` in the `kubelet` configuration file. ([#133779](https://github.com/kubernetes/kubernetes/pull/133779), [@carlory](https://github.com/carlory)) - -## Changes by Kind - -### Deprecation - -- ACTION REQUIRED: `failCgroupV1` will be set to true from 1.35. - This means that nodes will not start on a cgroup v1 by default. This puts cgroup v1 into a deprecated state. ([#134298](https://github.com/kubernetes/kubernetes/pull/134298), [@kannon92](https://github.com/kannon92)) -- Marked `ipvs` mode in kube-proxy as deprecated, which will be removed in a future version of Kubernetes. Users are encouraged to migrate to `nftables`. ([#134539](https://github.com/kubernetes/kubernetes/pull/134539), [@adrianmoisey](https://github.com/adrianmoisey)) - -### API Change - -- Added `ObservedGeneration` to CustomResourceDefinition conditions. ([#134984](https://github.com/kubernetes/kubernetes/pull/134984), [@michaelasp](https://github.com/michaelasp)) -- Added `WithOrigin` within `apis/core/validation` with adjusted tests. ([#132825](https://github.com/kubernetes/kubernetes/pull/132825), [@PatrickLaabs](https://github.com/PatrickLaabs)) -- Added the `--min-compatibility-version` flag to `kube-apiserver`, `kube-controller-manager`, and `kube-scheduler`. ([#133980](https://github.com/kubernetes/kubernetes/pull/133980), [@siyuanfoundation](https://github.com/siyuanfoundation)) [SIG API Machinery, Architecture, Cluster Lifecycle, Etcd, Scheduling and Testing] -- Added the `StorageVersionMigration` `v1beta1` API and removed the `v1alpha1` API. - - ACTION REQUIRED: The `v1alpha1` API is no longer supported. Users must remove any `v1alpha1` resources before upgrading. ([#134784](https://github.com/kubernetes/kubernetes/pull/134784), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Apps, Auth, Etcd and Testing] -- Added validation to ensure `log-flush-frequency` is a positive value, returning an error instead of causing a panic. ([#133540](https://github.com/kubernetes/kubernetes/pull/133540), [@BenTheElder](https://github.com/BenTheElder)) [SIG Architecture, Instrumentation, Network and Node] -- CSI drivers can now opt in to receive service account tokens via the secrets field instead of volume context by setting `spec.serviceAccountTokenInSecrets: true` in the CSIDriver object. This prevents tokens from being exposed in logs and other outputs. The feature is gated by the `CSIServiceAccountTokenSecrets` feature gate (beta in `v1.35`). ([#134826](https://github.com/kubernetes/kubernetes/pull/134826), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Storage and Testing] -- DRA device taints: `DeviceTaintRule` status provides information about the rule, including whether Pods still need to be evicted (`EvictionInProgress` condition). The newly added `None` effect can be used to preview what a `DeviceTaintRule` would do if it used the `NoExecute` effect and to taint devices (`device health`) without immediately affecting scheduling or running Pods. ([#134152](https://github.com/kubernetes/kubernetes/pull/134152), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Release, Scheduling and Testing] -- DRA: The `DynamicResourceAllocation` feature gate for the core functionality (GA in `v1.34`) has now been locked to enabled-by-default and cannot be disabled anymore. ([#134452](https://github.com/kubernetes/kubernetes/pull/134452), [@pohly](https://github.com/pohly)) [SIG Auth, Node, Scheduling and Testing] -- Enabled `kubectl get -o kyaml` by default. To disable it, set `KUBECTL_KYAML=false`. ([#133327](https://github.com/kubernetes/kubernetes/pull/133327), [@thockin](https://github.com/thockin)) -- Feature gate dependencies are now explicit, and validated at startup. A feature can no longer be enabled if it depends on a disabled feature. In particular, this means that `AllAlpha=true` will no longer work without enabling disabled-by-default beta features that are depended on (either with `AllBeta=true` or explicitly enumerating the disabled dependencies). ([#133697](https://github.com/kubernetes/kubernetes/pull/133697), [@tallclair](https://github.com/tallclair)) [SIG API Machinery, Architecture, Cluster Lifecycle and Node] -- Generated OpenAPI model packages for API types into `zz_generated.model_name.go` files, accessible via the `OpenAPIModelName()` function. This allows API authors to declare desired OpenAPI model packages instead of relying on the Go package path of API types. ([#131755](https://github.com/kubernetes/kubernetes/pull/131755), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing] -- Implemented constrained impersonation as described in [KEP-5284](https://kep.k8s.io/5284). ([#134803](https://github.com/kubernetes/kubernetes/pull/134803), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing] -- Introduced a new declarative validation tag `+k8s:customUnique` to control listmap uniqueness. ([#134279](https://github.com/kubernetes/kubernetes/pull/134279), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth] -- Introduced a structured and versioned `v1alpha1` response for the `statusz` endpoint. ([#134313](https://github.com/kubernetes/kubernetes/pull/134313), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing] -- Introduced a structured and versioned `v1alpha1` response format for the `flagz` endpoint. ([#134995](https://github.com/kubernetes/kubernetes/pull/134995), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing] -- Kube-apiserver: Fixed a `v1.34` regression in `CustomResourceDefinition` handling that incorrectly warned about unrecognized formats on number and integer properties. ([#133896](https://github.com/kubernetes/kubernetes/pull/133896), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Contributor Experience, Network, Node and Scheduling] -- Kube-apiserver: Fixed a possible panic validating a custom resource whose `CustomResourceDefinition` indicates a status subresource exists, but which does not define a `status` property in the `openAPIV3Schema`. ([#133721](https://github.com/kubernetes/kubernetes/pull/133721), [@fusida](https://github.com/fusida)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Release, Scheduling, Storage and Testing] -- Kubernetes API Go types removed runtime use of the `github.com/gogo/protobuf` library, and are no longer registered into the global gogo type registry. Kubernetes API Go types were not suitable for use with the `google.golang.org/protobuf` library, and no longer implement `ProtoMessage()` by default to avoid accidental incompatible use. If removal of these marker methods impacts your use, it can be re-enabled for one more release with a `kubernetes_protomessage_one_more_release` build tag, but will be removed in `v1.36`. ([#134256](https://github.com/kubernetes/kubernetes/pull/134256), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage] -- Pod resize now only allows CPU and memory resources; other resource types are forbidden. ([#135084](https://github.com/kubernetes/kubernetes/pull/135084), [@tallclair](https://github.com/tallclair)) [SIG Apps, Node and Testing] -- Promoted HPA configurable tolerance to beta. The `HPAConfigurableTolerance` feature gate has now been enabled by default. ([#133128](https://github.com/kubernetes/kubernetes/pull/133128), [@jm-franc](https://github.com/jm-franc)) [SIG API Machinery and Autoscaling] -- Promoted ReplicaSet and Deployment `.status.terminatingReplicas` tracking to beta. The `DeploymentReplicaSetTerminatingReplicas` feature gate is now enabled by default. ([#133087](https://github.com/kubernetes/kubernetes/pull/133087), [@atiratree](https://github.com/atiratree)) [SIG API Machinery, Apps and Testing] -- Promoted `PodObservedGenerationTracking` to GA. ([#134948](https://github.com/kubernetes/kubernetes/pull/134948), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, Node, Scheduling and Testing] -- Promoted the `JobManagedBy` feature to general availability. The `JobManagedBy` feature gate was locked to `true` and will be removed in a future Kubernetes release. ([#135080](https://github.com/kubernetes/kubernetes/pull/135080), [@dejanzele](https://github.com/dejanzele)) [SIG API Machinery, Apps and Testing] -- Promoted the `MaxUnavailableStatefulSet` feature to beta and enabling it by default. ([#133153](https://github.com/kubernetes/kubernetes/pull/133153), [@helayoty](https://github.com/helayoty)) [SIG API Machinery and Apps] -- Removed the `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` feature gates, which were locked since `v1.32`. ([#134994](https://github.com/kubernetes/kubernetes/pull/134994), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Node and Testing] -- Scheduler: Added the `bindingTimeout` argument to the DynamicResources plugin configuration, allowing customization of the wait duration in `PreBind` for device binding conditions. - Defaults to 10 minutes when `DRADeviceBindingConditions` and `DRAResourceClaimDeviceStatus` are both enabled. ([#134905](https://github.com/kubernetes/kubernetes/pull/134905), [@fj-naji](https://github.com/fj-naji)) [SIG Node and Scheduling] -- The Pod Certificates feature moved to beta. The `PodCertificateRequest` feature gate is set disabled by default. To use the feature, users must enable the certificates API groups in `v1beta1` and enable the `PodCertificateRequest` feature gate. The `UserAnnotations` field was added to the `PodCertificateProjection` API and the corresponding `UnverifiedUserAnnotations` field was added to the `PodCertificateRequest` API. ([#134624](https://github.com/kubernetes/kubernetes/pull/134624), [@yt2985](https://github.com/yt2985)) [SIG API Machinery, Apps, Auth, Etcd, Instrumentation, Node and Testing] -- The `PreferSameZone` and `PreferSameNode` values for the Service - `trafficDistribution` field graduated to general availability. The - `PreferClose` value is now deprecated in favor of the more explicit - `PreferSameZone`. ([#134457](https://github.com/kubernetes/kubernetes/pull/134457), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network and Testing] -- Updated storage version for `MutatingAdmissionPolicy` to `v1beta1`. ([#133715](https://github.com/kubernetes/kubernetes/pull/133715), [@cici37](https://github.com/cici37)) [SIG API Machinery, Etcd and Testing] -- Upgraded the `PodObservedGenerationTracking` feature to beta in `v1.34` and removed the alpha version description from the OpenAPI specification. ([#133883](https://github.com/kubernetes/kubernetes/pull/133883), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) - -### Feature - -- Added `k8s-short-name` and `k8s-long-name` format validation tags to enforce DNS label and DNS subdomain compliance. ([#133894](https://github.com/kubernetes/kubernetes/pull/133894), [@lalitc375](https://github.com/lalitc375)) -- Added `kubectl kuberc view` and `kubectl kuberc set` commands to perform operations against the `kuberc` file. ([#135003](https://github.com/kubernetes/kubernetes/pull/135003), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] -- Added `kubelet` stress test for pod cleanup when rejection due to `VolumeAttachmentLimitExceeded`. ([#133357](https://github.com/kubernetes/kubernetes/pull/133357), [@torredil](https://github.com/torredil)) [SIG Node and Storage] -- Added `paths` section to kubelet `statusz` endpoint. ([#133239](https://github.com/kubernetes/kubernetes/pull/133239), [@Peac36](https://github.com/Peac36)) -- Added a `source` label to the `resourceclaim_controller_resource_claims` metric. - Added the `scheduler_resourceclaim_creates_total` metric for `DRAExtendedResource`. ([#134523](https://github.com/kubernetes/kubernetes/pull/134523), [@bitoku](https://github.com/bitoku)) [SIG Apps, Instrumentation, Node and Scheduling] -- Added a counter metric `kubelet_image_manager_ensure_image_requests_total{present_locally, pull_policy, pull_required}` that exposes details about `kubelet` ensuring an image exists on the node. ([#132644](https://github.com/kubernetes/kubernetes/pull/132644), [@stlaz](https://github.com/stlaz)) [SIG Auth and Node] -- Added metrics for the `MaxUnavailable` feature in `StatefulSet`. ([#130951](https://github.com/kubernetes/kubernetes/pull/130951), [@Edwinhr716](https://github.com/Edwinhr716)) [SIG Apps and Instrumentation] -- Added paths section to scheduler `statusz` endpoint. ([#132606](https://github.com/kubernetes/kubernetes/pull/132606), [@Peac36](https://github.com/Peac36)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing] -- Added remote runtime and image `Close()` method to be able to close the connection. ([#133211](https://github.com/kubernetes/kubernetes/pull/133211), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] -- Added support for tracing in `kubectl` with the `--profile=trace` flag. ([#134709](https://github.com/kubernetes/kubernetes/pull/134709), [@tchap](https://github.com/tchap)) -- Added support for validating UUID format. ([#133948](https://github.com/kubernetes/kubernetes/pull/133948), [@lalitc375](https://github.com/lalitc375)) -- Added the `-n` flag as a shorthand for `--namespace` in the `kubectl config set-context` command. ([#134384](https://github.com/kubernetes/kubernetes/pull/134384), [@tchap](https://github.com/tchap)) [SIG CLI and Testing] -- Added the `ChangeContainerStatusOnKubeletRestart` feature gate, which defaults to disabled. When the feature gate is disabled, `kubelet` does not change the Pod status upon restart, and Pods do not re-run startup probes after the `kubelet` restarts. ([#134746](https://github.com/kubernetes/kubernetes/pull/134746), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node and Testing] -- After fixing regressions detected in `v1.34`, the `SchedulerAsyncAPICalls` feature gate was re-enabled by default. ([#135059](https://github.com/kubernetes/kubernetes/pull/135059), [@macsko](https://github.com/macsko)) -- Changed `WaitForNamedCacheSync` to `WaitForNamedCacheSyncWithContext`. ([#133904](https://github.com/kubernetes/kubernetes/pull/133904), [@aditigupta96](https://github.com/aditigupta96)) [SIG API Machinery, Apps, Auth and Network] -- DRA: the resource.k8s.io API now uses the v1 API version (introduced in 1.34) as default storage version. Downgrading to 1.33 is not supported. ([#133876](https://github.com/kubernetes/kubernetes/pull/133876), [@kei01234kei](https://github.com/kei01234kei)) [SIG API Machinery, Etcd and Testing] -- Enabled the `MutableCSINodeAllocatableCount` feature gate by default in beta. ([#134647](https://github.com/kubernetes/kubernetes/pull/134647), [@torredil](https://github.com/torredil)) -- Enabled the feature gate `ContainerRestartRules` by default. The `ContainerRestartRules` feature has been promoted to beta. Fixed a bug in this feature that caused probes to continue to run even if the container has terminated and is not restartable. ([#134631](https://github.com/kubernetes/kubernetes/pull/134631), [@yuanwang04](https://github.com/yuanwang04)) -- Improved throughput in the `real-FIFO` queue used by `informers` and `controllers` by adding batch handling for processing watch events. ([#132240](https://github.com/kubernetes/kubernetes/pull/132240), [@yue9944882](https://github.com/yue9944882)) [SIG API Machinery, Scheduling and Storage] -- Introduced end-to-end tests to verify component invariant metrics across the entire test suite. ([#133394](https://github.com/kubernetes/kubernetes/pull/133394), [@BenTheElder](https://github.com/BenTheElder)) -- Introduced the `--as-user-extra` persistent flag in `kubectl`, which allows passing extra arguments during impersonation. ([#134378](https://github.com/kubernetes/kubernetes/pull/134378), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] -- K8s.io/apimachinery: Introduced a helper function to compare `resourceVersion` strings between two objects of the same resource. ([#134330](https://github.com/kubernetes/kubernetes/pull/134330), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Apps, Auth, Instrumentation, Network, Node, Scheduling, Storage and Testing] -- Kube-apiserver: Made the subresources `pods/exec`, `pods/attach`, and `pods/portforward` require `create` permission for both SPDY and Websocket API requests. Previously, SPDY requests required `create` permission, but Websocket requests only required `get` permission. This change is gated by the `AuthorizePodWebsocketUpgradeCreatePermission` feature-gate, which is enabled by default. - - Before upgrading to 1.35, ensure any custom ClusterRoles and Roles intended to grant `pods/exec`, `pods/attach`, or `pods/portforward` permission include the `create` verb. ([#134577](https://github.com/kubernetes/kubernetes/pull/134577), [@seans3](https://github.com/seans3)) [SIG API Machinery, Auth, Node and Testing] -- Kubeadm: Added error printing during retries related to the `WaitForAllControlPlaneComponents` functionality at verbosity level 5. ([#134433](https://github.com/kubernetes/kubernetes/pull/134433), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Graduated the kubeadm-specific feature gate `ControlPlaneKubeletLocalMode` to GA and locked it to enabled by default. To opt out, patch the `server` field in `/etc/kubernetes/kubelet.conf`. Deprecated the subphase of `kubeadm join phase control-plane-join` called `etcd`, which is now hidden and replaced by subphase with identical functionality `etcd-join`. The `etcd` subphase will be removed in a future release. The subphase `kubelet-wait-bootstrap` of `kubeadm join` is no longer experimental and will now always run. ([#134106](https://github.com/kubernetes/kubernetes/pull/134106), [@neolit123](https://github.com/neolit123)) -- Kubernetes is now built using Go 1.25.1 ([#134095](https://github.com/kubernetes/kubernetes/pull/134095), [@dims](https://github.com/dims)) [SIG Release and Testing] -- Kubernetes now uses Go Language Version 1.25, including https://go.dev/blog/container-aware-gomaxprocs ([#134120](https://github.com/kubernetes/kubernetes/pull/134120), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling and Storage] -- Locked down the `AllowOverwriteTerminationGracePeriodSeconds` feature gate. ([#133792](https://github.com/kubernetes/kubernetes/pull/133792), [@HirazawaUi](https://github.com/HirazawaUi)) -- Locked the (generally available) feature gate `ExecProbeTimeout` to true. ([#134635](https://github.com/kubernetes/kubernetes/pull/134635), [@vivzbansal](https://github.com/vivzbansal)) [SIG Node and Testing] -- Metrics: Excluded `dryRun` requests from `apiserver_request_sli_duration_seconds`. ([#131092](https://github.com/kubernetes/kubernetes/pull/131092), [@aldudko](https://github.com/aldudko)) [SIG API Machinery and Instrumentation] -- Migrated validation in `resource.k8s.io` to declarative validation. - When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. - when `DeclarativeValidationTakeover` feature gate is enabled, declarative validation becomes the primary source of errors for migrated fields. ([#134072](https://github.com/kubernetes/kubernetes/pull/134072), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps and Auth] -- Promoted `InPlacePodVerticalScaling` to GA. ([#134949](https://github.com/kubernetes/kubernetes/pull/134949), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Node and Scheduling] -- Promoted `kubectl` command headers to stable. ([#134777](https://github.com/kubernetes/kubernetes/pull/134777), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] -- Promoted the `HostnameOverride` feature gate to beta and enabled it by default. ([#134729](https://github.com/kubernetes/kubernetes/pull/134729), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Network and Node] -- Promoted the `RelaxedServiceNameValidation` feature to beta (enabled by default). - New Service names are now validated with `NameIsDNSLabel()`, relaxing the pre-existing validation. ([#134493](https://github.com/kubernetes/kubernetes/pull/134493), [@adrianmoisey](https://github.com/adrianmoisey)) -- The JWT authenticator in `kube-apiserver` now reports the following metrics when the `StructuredAuthenticationConfiguration` feature gate is enabled: - - `apiserver_authentication_jwt_authenticator_jwks_fetch_last_timestamp_seconds` - - `apiserver_authentication_jwt_authenticator_jwks_fetch_last_key_set_info`. ([#123642](https://github.com/kubernetes/kubernetes/pull/123642), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] -- The scheduler now clears the `nominatedNodeName` field for Pods upon scheduling or binding failure. External components, such as Cluster Autoscaler and Karpenter, should not overwrite this field. ([#135007](https://github.com/kubernetes/kubernetes/pull/135007), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing] -- Updated `applyconfiguration-gen` to generate extract functions for all subresources. ([#132665](https://github.com/kubernetes/kubernetes/pull/132665), [@mrIncompetent](https://github.com/mrIncompetent)) -- Updated `applyconfiguration-gen` to preserve struct and field comments from source types in the generated code. ([#132663](https://github.com/kubernetes/kubernetes/pull/132663), [@mrIncompetent](https://github.com/mrIncompetent)) -- Updated `kubectl describe pods` to include the involved object’s `fieldPath` (e.g., container name) in event messages, providing better context for debugging multi-container Pods. Note: This changes the previous message format for events that include a `fieldPath`. ([#133627](https://github.com/kubernetes/kubernetes/pull/133627), [@itzPranshul](https://github.com/itzPranshul)) -- Updated sandbox ordering to use by attempt count or creation time. ([#130551](https://github.com/kubernetes/kubernetes/pull/130551), [@yylt](https://github.com/yylt)) -- Updated underlying images and dependencies to be compatible with Go version`1.25.3`. ([#134611](https://github.com/kubernetes/kubernetes/pull/134611), [@cpanato](https://github.com/cpanato)) [SIG Architecture, Cloud Provider, Etcd, Release, Storage and Testing] -- `kubeadm`: Added a preflight check `ContainerRuntimeVersion` to validate if the installed container runtime supports the `RuntimeConfig` gRPC method. If unsupported, `kubeadm` prints a warning message. - - Starting with Kubernetes `v1.36`, `kubelet` might refuse to start if the CRI runtime does not support this feature. More information can be found at the [Kubernetes blog](https://kubernetes.io/blog/2025/09/12/kubernetes-v1-34-cri-cgroup-driver-lookup-now-ga/). ([#134906](https://github.com/kubernetes/kubernetes/pull/134906), [@carlory](https://github.com/carlory)) - -### Documentation - -- Promoted the `--chunk-size` flag to stable. The kubectl `describe`, `get`, `drain`, and `events` commands can use `--chunk-size` flag to set chunk size. ([#134481](https://github.com/kubernetes/kubernetes/pull/134481), [@soltysh](https://github.com/soltysh)) - -### Bug or Regression - -- Added support for Pods to reference the same `PersistentVolumeClaim` across multiple volumes. ([#122140](https://github.com/kubernetes/kubernetes/pull/122140), [@huww98](https://github.com/huww98)) [SIG Node, Storage and Testing] -- Added the correct error when eviction is blocked due to the failSafe mechanism of the `DisruptionController`. ([#133097](https://github.com/kubernetes/kubernetes/pull/133097), [@kei01234kei](https://github.com/kei01234kei)) [SIG Apps and Node] -- Changed `kubectl exec` syntax to require `--` before the command. The form `kubectl exec [POD] [COMMAND]` is no longer supported; use `kubectl exec [POD] -- [COMMAND]` instead. ([#133841](https://github.com/kubernetes/kubernetes/pull/133841), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) -- DRA API: Fixed the `tolerations` field in exact and sub requests to drop properly when the `DRADeviceTaints` API is disabled. ([#132927](https://github.com/kubernetes/kubernetes/pull/132927), [@pohly](https://github.com/pohly)) -- DRA Device Taints: Fixed toleration of `NoExecute`. Prior to this enhancement, tolerating a `NoExecute` did not work because the scheduler did not inform the eviction controller about the toleration, so the scheduled pod got evicted almost immediately. ([#134479](https://github.com/kubernetes/kubernetes/pull/134479), [@pohly](https://github.com/pohly)) [SIG Apps, Node, Scheduling and Testing] -- Deprecated metrics will be hidden as per the metrics deprecation policy. https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-metric . ([#133436](https://github.com/kubernetes/kubernetes/pull/133436), [@richabanker](https://github.com/richabanker)) [SIG Architecture, Instrumentation and Network] -- Disabled the `SchedulerAsyncAPICalls` feature gate to mitigate a bug where its interaction with asynchronous preemption could degrade `kube-scheduler` performance, especially under high `kube-apiserver` load. ([#134400](https://github.com/kubernetes/kubernetes/pull/134400), [@macsko](https://github.com/macsko)) -- Dropped `DeviceBindingConditions` fields when the `DRADeviceBindingConditions` feature gate is not enabled and not in use. ([#134964](https://github.com/kubernetes/kubernetes/pull/134964), [@sunya-ch](https://github.com/sunya-ch)) -- Fixed SELinux warning controller not emitting events on some SELinux label conflicts. ([#133425](https://github.com/kubernetes/kubernetes/pull/133425), [@jsafrane](https://github.com/jsafrane)) [SIG Apps, Storage and Testing] -- Fixed `replicaCount` calculation exceeding max `int32`. ([#126979](https://github.com/kubernetes/kubernetes/pull/126979), [@omerap12](https://github.com/omerap12)) [SIG Apps and Autoscaling] -- Fixed a bug in `kube-proxy` `nftables` mode (GA as of `v1.33`) which fails to determine if traffic originates from a local source on the node. The issue was caused by using the wrong meta `iif` instead of `iifname` for name based matches. ([#134024](https://github.com/kubernetes/kubernetes/pull/134024), [@jack4it](https://github.com/jack4it)) -- Fixed a bug in `kube-scheduler` where pending pod preemption caused preemptor pods to be retried more frequently. ([#134245](https://github.com/kubernetes/kubernetes/pull/134245), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing] -- Fixed a bug that caused apiservers to send an inappropriate Content-Type request header to authorization, token authentication, imagepolicy admission, and audit webhooks when the alpha client-go feature gate "ClientsPreferCBOR" is enabled. ([#132960](https://github.com/kubernetes/kubernetes/pull/132960), [@benluddy](https://github.com/benluddy)) [SIG API Machinery and Node] -- Fixed a bug that caused duplicate validation when updating `PersistentVolumeClaims`, `VolumeAttachments` and `VolumeAttributesClasses`. ([#132549](https://github.com/kubernetes/kubernetes/pull/132549), [@gavinkflam](https://github.com/gavinkflam)) -- Fixed a bug that caused duplicate validation when updating `Role` and `RoleBinding` resources. ([#132550](https://github.com/kubernetes/kubernetes/pull/132550), [@gavinkflam](https://github.com/gavinkflam)) -- Fixed a bug that prevented allocating the same device that was previously consuming the `CounterSet` when both `DRAConsumableCapacity` and `DRAPartitionableDevices` were enabled. ([#134103](https://github.com/kubernetes/kubernetes/pull/134103), [@sunya-ch](https://github.com/sunya-ch)) -- Fixed a bug that prevents scheduling the next pod when using the `DRAConsumableCapacity` feature. ([#133706](https://github.com/kubernetes/kubernetes/pull/133706), [@sunya-ch](https://github.com/sunya-ch)) -- Fixed a bug to prevent segmentation fault from occurring when updating deeply nested JSON fields. ([#134381](https://github.com/kubernetes/kubernetes/pull/134381), [@kon-angelo](https://github.com/kon-angelo)) [SIG API Machinery and CLI] -- Fixed a bug where 64-bit IPv6 `ServiceCIDRs` allocated addresses outside the subnet range. ([#134193](https://github.com/kubernetes/kubernetes/pull/134193), [@hoskeri](https://github.com/hoskeri)) -- Fixed a bug where Job status updates fail after resuming a Job that was previously started and suspended. - The error message was: `status.startTime: Required value: startTime cannot be removed for unsuspended job`. ([#134769](https://github.com/kubernetes/kubernetes/pull/134769), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing] -- Fixed a bug where `AllocationMode: All` would not succeed if a resource pool contained `ResourceSlices` that were not targeting the current node. ([#134466](https://github.com/kubernetes/kubernetes/pull/134466), [@mortent](https://github.com/mortent)) -- Fixed a bug where a deleted Pod in the binding phase continued to occupy space on the node in `kube-scheduler`. ([#134157](https://github.com/kubernetes/kubernetes/pull/134157), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing] -- Fixed a bug where high latency `kube-apiserver` caused scheduling throughput degradation. ([#134154](https://github.com/kubernetes/kubernetes/pull/134154), [@macsko](https://github.com/macsko)) -- Fixed a bug where the health of a DRA resource was not reported in the Pod status if the resource claim was generated from a template or used a different local name in the Pod spec. ([#134875](https://github.com/kubernetes/kubernetes/pull/134875), [@Jpsassine](https://github.com/Jpsassine)) [SIG Node and Testing] -- Fixed a long-standing issue where `kubelet` rejected Pods with `NodeAffinityFailed` due to a stale informer cache. ([#134445](https://github.com/kubernetes/kubernetes/pull/134445), [@natasha41575](https://github.com/natasha41575)) -- Fixed a panic in `kubectl api-resources` that occurred when the Discovery Client failed. ([#134833](https://github.com/kubernetes/kubernetes/pull/134833), [@rikatz](https://github.com/rikatz)) -- Fixed a possible data race during metrics registration. ([#134390](https://github.com/kubernetes/kubernetes/pull/134390), [@liggitt](https://github.com/liggitt)) [SIG Architecture and Instrumentation] -- Fixed a startup probe race condition that caused main containers to remain stuck in "Initializing" state when sidecar containers with startup probes had failed initially but succeeded on restart in pods with `restartPolicy=Never`. ([#133072](https://github.com/kubernetes/kubernetes/pull/133072), [@AadiDev005](https://github.com/AadiDev005)) [SIG Node and Testing] -- Fixed an issue in asynchronous preemption: Scheduler now checks if preemption is ongoing for a Pod before initiating new preemption calls. ([#134730](https://github.com/kubernetes/kubernetes/pull/134730), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing] -- Fixed an issue where requests for a config `FromClass` in the `ResourceClaim` status were not referenced. ([#134793](https://github.com/kubernetes/kubernetes/pull/134793), [@LionelJouin](https://github.com/LionelJouin)) -- Fixed an issue where the `kubelet` `/configz` endpoint reported an incorrect value for `kubeletconfig.cgroupDriver` when the cgroup driver setting was received from the container runtime. ([#134743](https://github.com/kubernetes/kubernetes/pull/134743), [@marquiz](https://github.com/marquiz)) -- Fixed an issue where the default `serviceCIDR` controller did not log events because the event broadcaster was shutdown during initialization. ([#133338](https://github.com/kubernetes/kubernetes/pull/133338), [@aojea](https://github.com/aojea)) -- Fixed an issue with setting `distinctAttribute=nil` when the `DRAConsumableCapacity` feature gate is disabled. ([#134962](https://github.com/kubernetes/kubernetes/pull/134962), [@sunya-ch](https://github.com/sunya-ch)) -- Fixed broken shell completion for API resources. ([#133771](https://github.com/kubernetes/kubernetes/pull/133771), [@marckhouzam](https://github.com/marckhouzam)) -- Fixed incorrect behavior of preemptor pod when preemption of the victim takes long to complete. The preemptor pod should not be circling in scheduling cycles until preemption is finished. ([#134294](https://github.com/kubernetes/kubernetes/pull/134294), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing] -- Fixed missing `kubelet_volume_stats_*` metrics. ([#133890](https://github.com/kubernetes/kubernetes/pull/133890), [@huww98](https://github.com/huww98)) [SIG Instrumentation and Node] -- Fixed occasional schedule delays when a static `PersistentVolume` is created. ([#133929](https://github.com/kubernetes/kubernetes/pull/133929), [@huww98](https://github.com/huww98)) [SIG Scheduling and Storage] -- Fixed resource claims deallocation for extended resource when Pod completes. ([#134312](https://github.com/kubernetes/kubernetes/pull/134312), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps, Node and Testing] -- Fixed the kubelet to honor the `userNamespaces.idsPerPod` configuration, which was previously ignored. ([#133373](https://github.com/kubernetes/kubernetes/pull/133373), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Node and Testing] -- Fixed validation error when `ConfigFlags` includes `CertFile` and/or `KeyFile` while the original configuration also contains `CertFileData` and/or `KeyFileData`. ([#133917](https://github.com/kubernetes/kubernetes/pull/133917), [@n2h9](https://github.com/n2h9)) [SIG API Machinery and CLI] -- Improved performance of `Endpoint` and `EndpointSlice` controllers when there are a large number of services in a single namespace by making pod-to-service lookup asynchronous. ([#134739](https://github.com/kubernetes/kubernetes/pull/134739), [@shyamjvs](https://github.com/shyamjvs)) [SIG Apps and Network] -- Improved the `FreeDiskSpaceFailed` warning event to provide more actionable details when image garbage collection fails to free enough disk space. Example: `Insufficient free disk space on the node's image filesystem (95.0% of 10.0 GiB used). Failed to free sufficient space by deleting unused images. Consider resizing the disk or deleting unused files.`. ([#132578](https://github.com/kubernetes/kubernetes/pull/132578), [@drigz](https://github.com/drigz)) -- Introduced support for using an implicit extended resource name derived from the device class (`deviceclass.resource.kubernetes.io/<device-class-name>`) to request DRA devices matching that class. ([#133363](https://github.com/kubernetes/kubernetes/pull/133363), [@yliaog](https://github.com/yliaog)) [SIG Node, Scheduling and Testing] -- Kube-apiserver: Fixed a `v1.34` regression with spurious "Error getting keys" log messages. ([#133817](https://github.com/kubernetes/kubernetes/pull/133817), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd] -- Kube-apiserver: Fixed a possible `v1.34` performance regression calculating object size statistics for resources not served from the watch cache, typically only `Events`. ([#133873](https://github.com/kubernetes/kubernetes/pull/133873), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd] -- Kube-apiserver: Improved validation error messages for custom resources with CEL validation rules to include the value that failed validation. ([#132798](https://github.com/kubernetes/kubernetes/pull/132798), [@cbandy](https://github.com/cbandy)) -- Kube-apiserver: Made sure that when `--requestheader-client-ca-file` and `--client-ca-file` contain overlapping certificates, `--requestheader-allowed-names` must be specified so that regular client certificates cannot set authenticating proxy headers for arbitrary users. ([#131411](https://github.com/kubernetes/kubernetes/pull/131411), [@ballista01](https://github.com/ballista01)) [SIG API Machinery, Auth and Security] -- Kube-controller-manager: Fixed a possible data race in the garbage collection controller. ([#134379](https://github.com/kubernetes/kubernetes/pull/134379), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps] -- Kube-controller-manager: Resolved potential issues handling pods with incorrect uids in their `ownerReference`. ([#134654](https://github.com/kubernetes/kubernetes/pull/134654), [@liggitt](https://github.com/liggitt)) -- Kubeadm: Added missing cluster-info context validation to prevent panics when the user has a malformed kubeconfig in the cluster-info ConfigMap that excludes a valid current context. ([#134715](https://github.com/kubernetes/kubernetes/pull/134715), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Ensured waiting for `apiserver` uses a local client that doesn't reach to the control plane endpoint and instead reaches directly to the local API server endpoint. ([#134265](https://github.com/kubernetes/kubernetes/pull/134265), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Fixed `KUBEADM_UPGRADE_DRYRUN_DIR` not honored in upgrade phase when writing kubelet config files. ([#134007](https://github.com/kubernetes/kubernetes/pull/134007), [@carlory](https://github.com/carlory)) -- Kubeadm: Fixed a bug where `ClusterConfiguration.APIServer.TimeoutForControlPlane` from `v1beta3` was not respected in newer kubeadm versions where `v1beta4` is the default. ([#133513](https://github.com/kubernetes/kubernetes/pull/133513), [@tom1299](https://github.com/tom1299)) -- Kubeadm: Fixed a bug where the node registration information for a given node was not fetched correctly during `kubeadm upgrade node` and the node name can end up being incorrect in cases where the node name is not the same as the host name. ([#134319](https://github.com/kubernetes/kubernetes/pull/134319), [@neolit123](https://github.com/neolit123)) -- Kubeadm: Fixed a preflight check that could fail hostname construction in IPv6 setups. ([#134588](https://github.com/kubernetes/kubernetes/pull/134588), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Cloud Provider, Cluster Lifecycle and Testing] -- Kubelet: Fixed an internal deadlock that caused the connection to a DRA driver to become unusable after being idle for 30 minutes. ([#133926](https://github.com/kubernetes/kubernetes/pull/133926), [@pohly](https://github.com/pohly)) -- Made legacy watch calls (`ResourceVersion` = 0 or unset) that generate init-events weigh higher in `API Priority and Fairness (APF)` seat usage. Properly accounting for their cost protects the API server from CPU overload. Users might see increased throttling of such calls as a result. ([#134601](https://github.com/kubernetes/kubernetes/pull/134601), [@shyamjvs](https://github.com/shyamjvs)) -- Promoted VAC API test to conformance. ([#133615](https://github.com/kubernetes/kubernetes/pull/133615), [@carlory](https://github.com/carlory)) [SIG Architecture, Storage and Testing] -- Removed `BlockOwnerDeletion` from `ResourceClaim` created from `ResourceClaimTemplate` and from `extendedResourceClaim` created by the `scheduler`. ([#134956](https://github.com/kubernetes/kubernetes/pull/134956), [@yliaog](https://github.com/yliaog)) [SIG Apps, Node and Scheduling] -- Removed an incorrect `SessionAffinity` warning that appeared when a headless service was created or updated. ([#134054](https://github.com/kubernetes/kubernetes/pull/134054), [@Peac36](https://github.com/Peac36)) -- Namespace is now included in the `--dry-run=client` output for `HorizontalPodAutoscaler (HPA)` objects. ([#134263](https://github.com/kubernetes/kubernetes/pull/134263), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] -- Updated `kubectl scale` to return a consistent error message when a specified resource is not found. Previously, it returned: `error: no objects passed to scale <GroupResource> "<ResourceName>" not found`. It now matches the format used by other commands (e.g., `kubectl get`): `Error from server (NotFound): <GroupResource> "<ResourceName>" not found`. ([#134017](https://github.com/kubernetes/kubernetes/pull/134017), [@mochizuki875](https://github.com/mochizuki875)) -- `kube-controller-manager`: Fixed a `v1.34` regression that triggered a spurious rollout of existing StatefulSets when upgrading the control plane from `v1.33` to `v1.34`. This fix is guarded by the `StatefulSetSemanticRevisionComparison` feature gate, which is enabled by default. ([#135017](https://github.com/kubernetes/kubernetes/pull/135017), [@liggitt](https://github.com/liggitt)) -- `kube-scheduler`: Pod statuses no longer include specific taint keys or values when scheduling fails due to untolerated taints. ([#134740](https://github.com/kubernetes/kubernetes/pull/134740), [@hoskeri](https://github.com/hoskeri)) - -### Other (Cleanup or Flake) - -- Added the `Step` field to the testing framework to allow volume expansion in configurable step sizes for tests. ([#134760](https://github.com/kubernetes/kubernetes/pull/134760), [@Rishita-Golla](https://github.com/Rishita-Golla)) [SIG Storage and Testing] -- Bumped addon manager to use `kubectl` version `v1.32.2`. ([#130548](https://github.com/kubernetes/kubernetes/pull/130548), [@Jefftree](https://github.com/Jefftree)) [SIG Cloud Provider, Scalability and Testing] -- Dropped support for `certificates/v1beta1` `CertificateSigningRequest` in `kubectl`. ([#134782](https://github.com/kubernetes/kubernetes/pull/134782), [@scaliby](https://github.com/scaliby)) -- Dropped support for `discovery/v1beta1` `EndpointSlice` in `kubectl`. ([#134913](https://github.com/kubernetes/kubernetes/pull/134913), [@scaliby](https://github.com/scaliby)) -- Dropped support for `policy/v1beta1` PodDisruptionBudget in kubectl. ([#134685](https://github.com/kubernetes/kubernetes/pull/134685), [@scaliby](https://github.com/scaliby)) -- Eliminated and prevented future use of the `md5` algorithm in favor of more appropriate hashing algorithms. ([#133511](https://github.com/kubernetes/kubernetes/pull/133511), [@BenTheElder](https://github.com/BenTheElder)) [SIG Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Security, Storage and Testing] -- Fixed `nfacct` test cases on s390x. ([#133603](https://github.com/kubernetes/kubernetes/pull/133603), [@saisindhuri91](https://github.com/saisindhuri91)) -- Fixed formatting of various Go API deprecations for `GoDoc` and `pkgsite`, and enabled a linter to detect misformatted deprecations. ([#133571](https://github.com/kubernetes/kubernetes/pull/133571), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture, CLI, Instrumentation and Testing] -- Improved HPA performance when using container-specific resource metrics by optimizing container lookup logic to exit early once the target container is found, reducing unnecessary iterations through all containers in a pod. ([#133415](https://github.com/kubernetes/kubernetes/pull/133415), [@AadiDev005](https://github.com/AadiDev005)) [SIG Apps and Autoscaling] -- Increased the coverage to 89.8%. ([#132607](https://github.com/kubernetes/kubernetes/pull/132607), [@ylink-lfs](https://github.com/ylink-lfs)) -- Kube-apiserver: Fixed an issue where passing invalid `DeleteOptions` incorrectly returned a 500 status instead of 400. ([#133358](https://github.com/kubernetes/kubernetes/pull/133358), [@ostrain](https://github.com/ostrain)) -- Kubeadm: Updated the supported `etcd` version to `v3.5.23` for supported control plane versions `v1.31`, `v1.32`, and `v1.33`. ([#134692](https://github.com/kubernetes/kubernetes/pull/134692), [@joshjms](https://github.com/joshjms)) [SIG Cluster Lifecycle and Etcd] -- Kubeadm: stopped applying the `--pod-infra-container-image` flag for the kubelet. The flag has been deprecated and no longer served a purpose in the kubelet as the logic was migrated to CRI (Container Runtime Interface). During upgrade, kubeadm will attempt to remove the flag from the file `/var/lib/kubelet/kubeadm-flags.env`. ([#133778](https://github.com/kubernetes/kubernetes/pull/133778), [@carlory](https://github.com/carlory)) [SIG Cloud Provider and Cluster Lifecycle] -- Migrated the `CPUManager` to contextual logging. ([#125912](https://github.com/kubernetes/kubernetes/pull/125912), [@ffromani](https://github.com/ffromani)) -- Moved Types in `k/k/pkg/scheduler/framework`: - `Handle`, - `Plugin`, - `PreEnqueuePlugin`, `QueueSortPlugin`, `EnqueueExtensions`, `PreFilterExtensions`, `PreFilterPlugin`, `FilterPlugin`, `PostFilterPlugin`, `PreScorePlugin`, `ScorePlugin`, `ReservePlugin`, `PreBindPlugin`, `PostBindPlugin`, `PermitPlugin`, `BindPlugin`, - `PodActivator`, `PodNominator`, `PluginsRunner`, - `LessFunc`, `ScoreExtensions`, `NodeToStatusReader`, `NodeScoreList`, `NodeScore`, `NodePluginScores`, `PluginScore`, `NominatingMode`, `NominatingInfo`, `WaitingPod`, `PreFilterResult`, `PostFilterResult`, - `Extender`, - `NodeInfoLister`, `StorageInfoLister`, `SharedLister`, `ResourceSliceLister`, `DeviceClassLister`, `ResourceClaimTracker`, `SharedDRAManager` - - to package `k8s.io/kube-scheduler/framework`. Users should update import paths. The interfaces don't change. - - Type `Parallelizer` in `k/k/pkg/scheduler/framework/parallelism` has been split into interface `Parallelizer` (in `k8s.io/kube-scheduler/framework`) and `struct Parallelizer` (location unchanged in k/k). Plugin developers should update the import path to staging repo. ([#133172](https://github.com/kubernetes/kubernetes/pull/133172), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Release, Scheduling, Storage and Testing] -- Moved the CPU Manager static policy option `strict-cpu-reservation` to the GA version. ([#134388](https://github.com/kubernetes/kubernetes/pull/134388), [@psasnal](https://github.com/psasnal)) -- Promoted the Topology Manager policy option `max-allowable-numa-nodes` to GA version. ([#134614](https://github.com/kubernetes/kubernetes/pull/134614), [@ffromani](https://github.com/ffromani)) -- Reduced event spam during volume operation errors in the Portworx in-tree driver. ([#135081](https://github.com/kubernetes/kubernetes/pull/135081), [@gohilankit](https://github.com/gohilankit)) -- Removed `rsync` as a dependency to build Kubernetes. ([#134656](https://github.com/kubernetes/kubernetes/pull/134656), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing] -- Removed container name from messages for container created and started events. ([#134043](https://github.com/kubernetes/kubernetes/pull/134043), [@HirazawaUi](https://github.com/HirazawaUi)) -- Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/dra` in favor of `google.golang.org/protobuf`. ([#133026](https://github.com/kubernetes/kubernetes/pull/133026), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery and Node] -- Removed general available feature-gate `SizeMemoryBackedVolumes`. ([#133720](https://github.com/kubernetes/kubernetes/pull/133720), [@carlory](https://github.com/carlory)) [SIG Node, Storage and Testing] -- Removed the `ComponentSLIs` feature gate, as it was promoted to stable in the Kubernetes `v1.32` release. ([#133742](https://github.com/kubernetes/kubernetes/pull/133742), [@carlory](https://github.com/carlory)) [SIG Architecture and Instrumentation] -- Removed the `KUBECTL_OPENAPIV3_PATCH` environment variable, as aggregated discovery has been stable since `v1.30`. ([#134130](https://github.com/kubernetes/kubernetes/pull/134130), [@ardaguclu](https://github.com/ardaguclu)) -- Removed the `UserNamespacesPodSecurityStandards` feature gate. The minimum supported Kubernetes version for `kubelet` is now `v1.31`, so the gate is no longer needed. ([#132157](https://github.com/kubernetes/kubernetes/pull/132157), [@haircommander](https://github.com/haircommander)) [SIG Auth, Node and Testing] -- Removed the `VolumeAttributesClass` resource from the `storage.k8s.io/v1alpha1` API in `v1.35`. ([#134625](https://github.com/kubernetes/kubernetes/pull/134625), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Etcd, Storage and Testing] -- Specified the deprecated version of `apiserver_storage_objects` metric in metrics docs. ([#134028](https://github.com/kubernetes/kubernetes/pull/134028), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Etcd and Instrumentation] -- Substantially simplified building Kubernetes by making the process run a pre-built container image directly without running `rsyncd`. ([#134510](https://github.com/kubernetes/kubernetes/pull/134510), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing] -- Tests: Switched to https://go.dev/doc/go1.25#container-aware-gomaxprocs from `go.uber.org/automaxprocs`. ([#133492](https://github.com/kubernetes/kubernetes/pull/133492), [@BenTheElder](https://github.com/BenTheElder)) -- The `SystemdWatchdog` feature gate has been locked to default and will be removed in future release. The systemd watchdog functionality in `kubelet` can be enabled via systemd without any feature gate configuration. See the [systemd watchdog documentation](https://kubernetes.io/docs/reference/node/systemd-watchdog/) for more information. ([#134691](https://github.com/kubernetes/kubernetes/pull/134691), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) -- Updated CNI plugins to v1.8.0. ([#133837](https://github.com/kubernetes/kubernetes/pull/133837), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing] -- Updated `etcd` to `v3.6.5`. ([#134251](https://github.com/kubernetes/kubernetes/pull/134251), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing] -- Updated `kubectl auth reconcile` to retry reconciliation when a conflict error occurs. ([#133323](https://github.com/kubernetes/kubernetes/pull/133323), [@liggitt](https://github.com/liggitt)) [SIG Auth and CLI] -- Updated `kubectl get` and `kubectl describe` human-readable output to no longer show counts for referenced tokens and secrets. ([#117160](https://github.com/kubernetes/kubernetes/pull/117160), [@liggitt](https://github.com/liggitt)) [SIG CLI and Testing] -- Updated cri-tools to v1.34.0. ([#133636](https://github.com/kubernetes/kubernetes/pull/133636), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider] -- Updated the Go version of Kubernetes to `1.25.3`. ([#134598](https://github.com/kubernetes/kubernetes/pull/134598), [@BenTheElder](https://github.com/BenTheElder)) -- Updated the `/statusz` page for `kube-proxy` to include a list of exposed endpoints, making debugging and introspection easier. ([#133190](https://github.com/kubernetes/kubernetes/pull/133190), [@aman4433](https://github.com/aman4433)) [SIG Network and Node] -- Updated the `kubectl wait` command description by removing the `Experimental` prefix, as the command has been stable for a long time. ([#133731](https://github.com/kubernetes/kubernetes/pull/133731), [@ardaguclu](https://github.com/ardaguclu)) -- Updated the etcd client library to `v3.6.5`. ([#134780](https://github.com/kubernetes/kubernetes/pull/134780), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage] -- Updated the short description of the `kubectl wait` command by removing the `Experimental` prefix, as the command has been stable for a long time. ([#133907](https://github.com/kubernetes/kubernetes/pull/133907), [@ardaguclu](https://github.com/ardaguclu)) -- Upgraded `CoreDNS` to `v1.12.3`. ([#132288](https://github.com/kubernetes/kubernetes/pull/132288), [@thevilledev](https://github.com/thevilledev)) [SIG Cloud Provider and Cluster Lifecycle] -- `kubeadm`: Removed the `WaitForAllControlPlaneComponents` feature gate, which graduated to GA in `v1.34` and was locked to enabled by default. ([#134781](https://github.com/kubernetes/kubernetes/pull/134781), [@neolit123](https://github.com/neolit123)) +## Urgent Upgrade Notes + +### (No, really, you MUST read this before you upgrade) + +- ACTION REQUIRED: + + vendor: Updated `k8s.io/system-validators` to `v1.12.1`. The cgroups validator now throws an error instead of a warning if cgroups v1 is detected on the host and the provided KubeletVersion is `v1.35` or newer. + + kubeadm: Started using `k8s.io/system-validators` `v1.12.1` in `kubeadm` `v1.35`. During `kubeadm init`, `kubeadm join`, and `kubeadm upgrade`, the SystemVerification preflight check throws an error if cgroups v1 is detected and the detected `kubelet` version is `v1.35` or newer. For older versions of `kubelet`, a preflight warning is displayed. + + To allow cgroups v1 with `kubeadm` and `kubelet` version `v1.35` or newer, you must: + - Ignore the error from the SystemVerification preflight check by `kubeadm`. + - Edit the `kube-system/kubelet-config` ConfigMap and add the `failCgroupV1: false` field before upgrading. ([#134744](https://github.com/kubernetes/kubernetes/pull/134744), [@neolit123](https://github.com/neolit123)) [SIG Cluster Lifecycle and Node] + - ACTION REQUIRED: + + Removed the `--pod-infra-container-image` flag from `kubelet` command line. For `non-kubeadm` clusters, users must manually remove this flag from their `kubelet` configuration to prevent startup failures before upgrading `kubelet`. For `kubeadm` clusters, if users pass extra arguments to the `kubelet` like `--pod-infra-container-image`, it will be written to the `kubelet` env file during the `init` phase. `kubeadm` does not remove it during the `init` or `join` phase, so users must manually remove it from `extraArgs` in the `kubelet` configuration file. ([#133779](https://github.com/kubernetes/kubernetes/pull/133779), [@carlory](https://github.com/carlory)) + +## Changes by Kind + +### Deprecation + +- ACTION REQUIRED: `failCgroupV1` will be set to true from 1.35. + This means that nodes will not start on a cgroup v1 by default. This puts cgroup v1 into a deprecated state. ([#134298](https://github.com/kubernetes/kubernetes/pull/134298), [@kannon92](https://github.com/kannon92)) +- Marked `ipvs` mode in kube-proxy as deprecated, which will be removed in a future version of Kubernetes. Users are encouraged to migrate to `nftables`. ([#134539](https://github.com/kubernetes/kubernetes/pull/134539), [@adrianmoisey](https://github.com/adrianmoisey)) + +### API Change + +- Added `ObservedGeneration` to CustomResourceDefinition conditions. ([#134984](https://github.com/kubernetes/kubernetes/pull/134984), [@michaelasp](https://github.com/michaelasp)) +- Added `WithOrigin` within `apis/core/validation` with adjusted tests. ([#132825](https://github.com/kubernetes/kubernetes/pull/132825), [@PatrickLaabs](https://github.com/PatrickLaabs)) +- Added the `--min-compatibility-version` flag to `kube-apiserver`, `kube-controller-manager`, and `kube-scheduler`. ([#133980](https://github.com/kubernetes/kubernetes/pull/133980), [@siyuanfoundation](https://github.com/siyuanfoundation)) [SIG API Machinery, Architecture, Cluster Lifecycle, Etcd, Scheduling and Testing] +- Added the `StorageVersionMigration` `v1beta1` API and removed the `v1alpha1` API. + + ACTION REQUIRED: The `v1alpha1` API is no longer supported. Users must remove any `v1alpha1` resources before upgrading. ([#134784](https://github.com/kubernetes/kubernetes/pull/134784), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Apps, Auth, Etcd and Testing] +- Added validation to ensure `log-flush-frequency` is a positive value, returning an error instead of causing a panic. ([#133540](https://github.com/kubernetes/kubernetes/pull/133540), [@BenTheElder](https://github.com/BenTheElder)) [SIG Architecture, Instrumentation, Network and Node] +- CSI drivers can now opt in to receive service account tokens via the secrets field instead of volume context by setting `spec.serviceAccountTokenInSecrets: true` in the CSIDriver object. This prevents tokens from being exposed in logs and other outputs. The feature is gated by the `CSIServiceAccountTokenSecrets` feature gate (beta in `v1.35`). ([#134826](https://github.com/kubernetes/kubernetes/pull/134826), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth, Storage and Testing] +- DRA device taints: `DeviceTaintRule` status provides information about the rule, including whether Pods still need to be evicted (`EvictionInProgress` condition). The newly added `None` effect can be used to preview what a `DeviceTaintRule` would do if it used the `NoExecute` effect and to taint devices (`device health`) without immediately affecting scheduling or running Pods. ([#134152](https://github.com/kubernetes/kubernetes/pull/134152), [@pohly](https://github.com/pohly)) [SIG API Machinery, Apps, Auth, Node, Release, Scheduling and Testing] +- DRA: The `DynamicResourceAllocation` feature gate for the core functionality (GA in `v1.34`) has now been locked to enabled-by-default and cannot be disabled anymore. ([#134452](https://github.com/kubernetes/kubernetes/pull/134452), [@pohly](https://github.com/pohly)) [SIG Auth, Node, Scheduling and Testing] +- Enabled `kubectl get -o kyaml` by default. To disable it, set `KUBECTL_KYAML=false`. ([#133327](https://github.com/kubernetes/kubernetes/pull/133327), [@thockin](https://github.com/thockin)) +- Feature gate dependencies are now explicit, and validated at startup. A feature can no longer be enabled if it depends on a disabled feature. In particular, this means that `AllAlpha=true` will no longer work without enabling disabled-by-default beta features that are depended on (either with `AllBeta=true` or explicitly enumerating the disabled dependencies). ([#133697](https://github.com/kubernetes/kubernetes/pull/133697), [@tallclair](https://github.com/tallclair)) [SIG API Machinery, Architecture, Cluster Lifecycle and Node] +- Generated OpenAPI model packages for API types into `zz_generated.model_name.go` files, accessible via the `OpenAPIModelName()` function. This allows API authors to declare desired OpenAPI model packages instead of relying on the Go package path of API types. ([#131755](https://github.com/kubernetes/kubernetes/pull/131755), [@jpbetz](https://github.com/jpbetz)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling, Storage and Testing] +- Implemented constrained impersonation as described in [KEP-5284](https://kep.k8s.io/5284). ([#134803](https://github.com/kubernetes/kubernetes/pull/134803), [@enj](https://github.com/enj)) [SIG API Machinery, Auth and Testing] +- Introduced a new declarative validation tag `+k8s:customUnique` to control listmap uniqueness. ([#134279](https://github.com/kubernetes/kubernetes/pull/134279), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery and Auth] +- Introduced a structured and versioned `v1alpha1` response for the `statusz` endpoint. ([#134313](https://github.com/kubernetes/kubernetes/pull/134313), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing] +- Introduced a structured and versioned `v1alpha1` response format for the `flagz` endpoint. ([#134995](https://github.com/kubernetes/kubernetes/pull/134995), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing] +- Kube-apiserver: Fixed a `v1.34` regression in `CustomResourceDefinition` handling that incorrectly warned about unrecognized formats on number and integer properties. ([#133896](https://github.com/kubernetes/kubernetes/pull/133896), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cloud Provider, Contributor Experience, Network, Node and Scheduling] +- Kube-apiserver: Fixed a possible panic validating a custom resource whose `CustomResourceDefinition` indicates a status subresource exists, but which does not define a `status` property in the `openAPIV3Schema`. ([#133721](https://github.com/kubernetes/kubernetes/pull/133721), [@fusida](https://github.com/fusida)) [SIG API Machinery, Apps, Architecture, Auth, Autoscaling, CLI, Cloud Provider, Cluster Lifecycle, Etcd, Instrumentation, Network, Node, Release, Scheduling, Storage and Testing] +- Kubernetes API Go types removed runtime use of the `github.com/gogo/protobuf` library, and are no longer registered into the global gogo type registry. Kubernetes API Go types were not suitable for use with the `google.golang.org/protobuf` library, and no longer implement `ProtoMessage()` by default to avoid accidental incompatible use. If removal of these marker methods impacts your use, it can be re-enabled for one more release with a `kubernetes_protomessage_one_more_release` build tag, but will be removed in `v1.36`. ([#134256](https://github.com/kubernetes/kubernetes/pull/134256), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Apps, Architecture, Auth, CLI, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage] +- Pod resize now only allows CPU and memory resources; other resource types are forbidden. ([#135084](https://github.com/kubernetes/kubernetes/pull/135084), [@tallclair](https://github.com/tallclair)) [SIG Apps, Node and Testing] +- Promoted HPA configurable tolerance to beta. The `HPAConfigurableTolerance` feature gate has now been enabled by default. ([#133128](https://github.com/kubernetes/kubernetes/pull/133128), [@jm-franc](https://github.com/jm-franc)) [SIG API Machinery and Autoscaling] +- Promoted ReplicaSet and Deployment `.status.terminatingReplicas` tracking to beta. The `DeploymentReplicaSetTerminatingReplicas` feature gate is now enabled by default. ([#133087](https://github.com/kubernetes/kubernetes/pull/133087), [@atiratree](https://github.com/atiratree)) [SIG API Machinery, Apps and Testing] +- Promoted `PodObservedGenerationTracking` to GA. ([#134948](https://github.com/kubernetes/kubernetes/pull/134948), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Apps, Node, Scheduling and Testing] +- Promoted the `JobManagedBy` feature to general availability. The `JobManagedBy` feature gate was locked to `true` and will be removed in a future Kubernetes release. ([#135080](https://github.com/kubernetes/kubernetes/pull/135080), [@dejanzele](https://github.com/dejanzele)) [SIG API Machinery, Apps and Testing] +- Promoted the `MaxUnavailableStatefulSet` feature to beta and enabling it by default. ([#133153](https://github.com/kubernetes/kubernetes/pull/133153), [@helayoty](https://github.com/helayoty)) [SIG API Machinery and Apps] +- Removed the `StrictCostEnforcementForVAP` and `StrictCostEnforcementForWebhooks` feature gates, which were locked since `v1.32`. ([#134994](https://github.com/kubernetes/kubernetes/pull/134994), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Node and Testing] +- Scheduler: Added the `bindingTimeout` argument to the DynamicResources plugin configuration, allowing customization of the wait duration in `PreBind` for device binding conditions. + Defaults to 10 minutes when `DRADeviceBindingConditions` and `DRAResourceClaimDeviceStatus` are both enabled. ([#134905](https://github.com/kubernetes/kubernetes/pull/134905), [@fj-naji](https://github.com/fj-naji)) [SIG Node and Scheduling] +- The Pod Certificates feature moved to beta. The `PodCertificateRequest` feature gate is set disabled by default. To use the feature, users must enable the certificates API groups in `v1beta1` and enable the `PodCertificateRequest` feature gate. The `UserAnnotations` field was added to the `PodCertificateProjection` API and the corresponding `UnverifiedUserAnnotations` field was added to the `PodCertificateRequest` API. ([#134624](https://github.com/kubernetes/kubernetes/pull/134624), [@yt2985](https://github.com/yt2985)) [SIG API Machinery, Apps, Auth, Etcd, Instrumentation, Node and Testing] +- The `PreferSameZone` and `PreferSameNode` values for the Service + `trafficDistribution` field graduated to general availability. The + `PreferClose` value is now deprecated in favor of the more explicit + `PreferSameZone`. ([#134457](https://github.com/kubernetes/kubernetes/pull/134457), [@danwinship](https://github.com/danwinship)) [SIG API Machinery, Apps, Network and Testing] +- Updated storage version for `MutatingAdmissionPolicy` to `v1beta1`. ([#133715](https://github.com/kubernetes/kubernetes/pull/133715), [@cici37](https://github.com/cici37)) [SIG API Machinery, Etcd and Testing] +- Upgraded the `PodObservedGenerationTracking` feature to beta in `v1.34` and removed the alpha version description from the OpenAPI specification. ([#133883](https://github.com/kubernetes/kubernetes/pull/133883), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) + +### Feature + +- Added `k8s-short-name` and `k8s-long-name` format validation tags to enforce DNS label and DNS subdomain compliance. ([#133894](https://github.com/kubernetes/kubernetes/pull/133894), [@lalitc375](https://github.com/lalitc375)) +- Added `kubectl kuberc view` and `kubectl kuberc set` commands to perform operations against the `kuberc` file. ([#135003](https://github.com/kubernetes/kubernetes/pull/135003), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] +- Added `kubelet` stress test for pod cleanup when rejection due to `VolumeAttachmentLimitExceeded`. ([#133357](https://github.com/kubernetes/kubernetes/pull/133357), [@torredil](https://github.com/torredil)) [SIG Node and Storage] +- Added `paths` section to kubelet `statusz` endpoint. ([#133239](https://github.com/kubernetes/kubernetes/pull/133239), [@Peac36](https://github.com/Peac36)) +- Added a `source` label to the `resourceclaim_controller_resource_claims` metric. + Added the `scheduler_resourceclaim_creates_total` metric for `DRAExtendedResource`. ([#134523](https://github.com/kubernetes/kubernetes/pull/134523), [@bitoku](https://github.com/bitoku)) [SIG Apps, Instrumentation, Node and Scheduling] +- Added a counter metric `kubelet_image_manager_ensure_image_requests_total{present_locally, pull_policy, pull_required}` that exposes details about `kubelet` ensuring an image exists on the node. ([#132644](https://github.com/kubernetes/kubernetes/pull/132644), [@stlaz](https://github.com/stlaz)) [SIG Auth and Node] +- Added metrics for the `MaxUnavailable` feature in `StatefulSet`. ([#130951](https://github.com/kubernetes/kubernetes/pull/130951), [@Edwinhr716](https://github.com/Edwinhr716)) [SIG Apps and Instrumentation] +- Added paths section to scheduler `statusz` endpoint. ([#132606](https://github.com/kubernetes/kubernetes/pull/132606), [@Peac36](https://github.com/Peac36)) [SIG API Machinery, Architecture, Instrumentation, Network, Node, Scheduling and Testing] +- Added remote runtime and image `Close()` method to be able to close the connection. ([#133211](https://github.com/kubernetes/kubernetes/pull/133211), [@saschagrunert](https://github.com/saschagrunert)) [SIG Node] +- Added support for tracing in `kubectl` with the `--profile=trace` flag. ([#134709](https://github.com/kubernetes/kubernetes/pull/134709), [@tchap](https://github.com/tchap)) +- Added support for validating UUID format. ([#133948](https://github.com/kubernetes/kubernetes/pull/133948), [@lalitc375](https://github.com/lalitc375)) +- Added the `-n` flag as a shorthand for `--namespace` in the `kubectl config set-context` command. ([#134384](https://github.com/kubernetes/kubernetes/pull/134384), [@tchap](https://github.com/tchap)) [SIG CLI and Testing] +- Added the `ChangeContainerStatusOnKubeletRestart` feature gate, which defaults to disabled. When the feature gate is disabled, `kubelet` does not change the Pod status upon restart, and Pods do not re-run startup probes after the `kubelet` restarts. ([#134746](https://github.com/kubernetes/kubernetes/pull/134746), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Node and Testing] +- After fixing regressions detected in `v1.34`, the `SchedulerAsyncAPICalls` feature gate was re-enabled by default. ([#135059](https://github.com/kubernetes/kubernetes/pull/135059), [@macsko](https://github.com/macsko)) +- Changed `WaitForNamedCacheSync` to `WaitForNamedCacheSyncWithContext`. ([#133904](https://github.com/kubernetes/kubernetes/pull/133904), [@aditigupta96](https://github.com/aditigupta96)) [SIG API Machinery, Apps, Auth and Network] +- DRA: the resource.k8s.io API now uses the v1 API version (introduced in 1.34) as default storage version. Downgrading to 1.33 is not supported. ([#133876](https://github.com/kubernetes/kubernetes/pull/133876), [@kei01234kei](https://github.com/kei01234kei)) [SIG API Machinery, Etcd and Testing] +- Enabled the `MutableCSINodeAllocatableCount` feature gate by default in beta. ([#134647](https://github.com/kubernetes/kubernetes/pull/134647), [@torredil](https://github.com/torredil)) +- Enabled the feature gate `ContainerRestartRules` by default. The `ContainerRestartRules` feature has been promoted to beta. Fixed a bug in this feature that caused probes to continue to run even if the container has terminated and is not restartable. ([#134631](https://github.com/kubernetes/kubernetes/pull/134631), [@yuanwang04](https://github.com/yuanwang04)) +- Improved throughput in the `real-FIFO` queue used by `informers` and `controllers` by adding batch handling for processing watch events. ([#132240](https://github.com/kubernetes/kubernetes/pull/132240), [@yue9944882](https://github.com/yue9944882)) [SIG API Machinery, Scheduling and Storage] +- Introduced end-to-end tests to verify component invariant metrics across the entire test suite. ([#133394](https://github.com/kubernetes/kubernetes/pull/133394), [@BenTheElder](https://github.com/BenTheElder)) +- Introduced the `--as-user-extra` persistent flag in `kubectl`, which allows passing extra arguments during impersonation. ([#134378](https://github.com/kubernetes/kubernetes/pull/134378), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] +- K8s.io/apimachinery: Introduced a helper function to compare `resourceVersion` strings between two objects of the same resource. ([#134330](https://github.com/kubernetes/kubernetes/pull/134330), [@michaelasp](https://github.com/michaelasp)) [SIG API Machinery, Apps, Auth, Instrumentation, Network, Node, Scheduling, Storage and Testing] +- Kube-apiserver: Made the subresources `pods/exec`, `pods/attach`, and `pods/portforward` require `create` permission for both SPDY and Websocket API requests. Previously, SPDY requests required `create` permission, but Websocket requests only required `get` permission. This change is gated by the `AuthorizePodWebsocketUpgradeCreatePermission` feature-gate, which is enabled by default. + + Before upgrading to 1.35, ensure any custom ClusterRoles and Roles intended to grant `pods/exec`, `pods/attach`, or `pods/portforward` permission include the `create` verb. ([#134577](https://github.com/kubernetes/kubernetes/pull/134577), [@seans3](https://github.com/seans3)) [SIG API Machinery, Auth, Node and Testing] +- Kubeadm: Added error printing during retries related to the `WaitForAllControlPlaneComponents` functionality at verbosity level 5. ([#134433](https://github.com/kubernetes/kubernetes/pull/134433), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Graduated the kubeadm-specific feature gate `ControlPlaneKubeletLocalMode` to GA and locked it to enabled by default. To opt out, patch the `server` field in `/etc/kubernetes/kubelet.conf`. Deprecated the subphase of `kubeadm join phase control-plane-join` called `etcd`, which is now hidden and replaced by subphase with identical functionality `etcd-join`. The `etcd` subphase will be removed in a future release. The subphase `kubelet-wait-bootstrap` of `kubeadm join` is no longer experimental and will now always run. ([#134106](https://github.com/kubernetes/kubernetes/pull/134106), [@neolit123](https://github.com/neolit123)) +- Kubernetes is now built using Go 1.25.1 ([#134095](https://github.com/kubernetes/kubernetes/pull/134095), [@dims](https://github.com/dims)) [SIG Release and Testing] +- Kubernetes now uses Go Language Version 1.25, including https://go.dev/blog/container-aware-gomaxprocs ([#134120](https://github.com/kubernetes/kubernetes/pull/134120), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Release, Scheduling and Storage] +- Locked down the `AllowOverwriteTerminationGracePeriodSeconds` feature gate. ([#133792](https://github.com/kubernetes/kubernetes/pull/133792), [@HirazawaUi](https://github.com/HirazawaUi)) +- Locked the (generally available) feature gate `ExecProbeTimeout` to true. ([#134635](https://github.com/kubernetes/kubernetes/pull/134635), [@vivzbansal](https://github.com/vivzbansal)) [SIG Node and Testing] +- Metrics: Excluded `dryRun` requests from `apiserver_request_sli_duration_seconds`. ([#131092](https://github.com/kubernetes/kubernetes/pull/131092), [@aldudko](https://github.com/aldudko)) [SIG API Machinery and Instrumentation] +- Migrated validation in `resource.k8s.io` to declarative validation. + When the `DeclarativeValidation` feature gate is enabled, mismatches with existing validation are reported via metrics. + when `DeclarativeValidationTakeover` feature gate is enabled, declarative validation becomes the primary source of errors for migrated fields. ([#134072](https://github.com/kubernetes/kubernetes/pull/134072), [@yongruilin](https://github.com/yongruilin)) [SIG API Machinery, Apps and Auth] +- Promoted `InPlacePodVerticalScaling` to GA. ([#134949](https://github.com/kubernetes/kubernetes/pull/134949), [@natasha41575](https://github.com/natasha41575)) [SIG API Machinery, Node and Scheduling] +- Promoted `kubectl` command headers to stable. ([#134777](https://github.com/kubernetes/kubernetes/pull/134777), [@soltysh](https://github.com/soltysh)) [SIG CLI and Testing] +- Promoted the `HostnameOverride` feature gate to beta and enabled it by default. ([#134729](https://github.com/kubernetes/kubernetes/pull/134729), [@HirazawaUi](https://github.com/HirazawaUi)) [SIG Network and Node] +- Promoted the `RelaxedServiceNameValidation` feature to beta (enabled by default). + New Service names are now validated with `NameIsDNSLabel()`, relaxing the pre-existing validation. ([#134493](https://github.com/kubernetes/kubernetes/pull/134493), [@adrianmoisey](https://github.com/adrianmoisey)) +- The JWT authenticator in `kube-apiserver` now reports the following metrics when the `StructuredAuthenticationConfiguration` feature gate is enabled: + - `apiserver_authentication_jwt_authenticator_jwks_fetch_last_timestamp_seconds` + - `apiserver_authentication_jwt_authenticator_jwks_fetch_last_key_set_info`. ([#123642](https://github.com/kubernetes/kubernetes/pull/123642), [@aramase](https://github.com/aramase)) [SIG API Machinery, Auth and Testing] +- The scheduler now clears the `nominatedNodeName` field for Pods upon scheduling or binding failure. External components, such as Cluster Autoscaler and Karpenter, should not overwrite this field. ([#135007](https://github.com/kubernetes/kubernetes/pull/135007), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing] +- Updated `applyconfiguration-gen` to generate extract functions for all subresources. ([#132665](https://github.com/kubernetes/kubernetes/pull/132665), [@mrIncompetent](https://github.com/mrIncompetent)) +- Updated `applyconfiguration-gen` to preserve struct and field comments from source types in the generated code. ([#132663](https://github.com/kubernetes/kubernetes/pull/132663), [@mrIncompetent](https://github.com/mrIncompetent)) +- Updated `kubectl describe pods` to include the involved object’s `fieldPath` (e.g., container name) in event messages, providing better context for debugging multi-container Pods. Note: This changes the previous message format for events that include a `fieldPath`. ([#133627](https://github.com/kubernetes/kubernetes/pull/133627), [@itzPranshul](https://github.com/itzPranshul)) +- Updated sandbox ordering to use by attempt count or creation time. ([#130551](https://github.com/kubernetes/kubernetes/pull/130551), [@yylt](https://github.com/yylt)) +- Updated underlying images and dependencies to be compatible with Go version`1.25.3`. ([#134611](https://github.com/kubernetes/kubernetes/pull/134611), [@cpanato](https://github.com/cpanato)) [SIG Architecture, Cloud Provider, Etcd, Release, Storage and Testing] +- `kubeadm`: Added a preflight check `ContainerRuntimeVersion` to validate if the installed container runtime supports the `RuntimeConfig` gRPC method. If unsupported, `kubeadm` prints a warning message. + + Starting with Kubernetes `v1.36`, `kubelet` might refuse to start if the CRI runtime does not support this feature. More information can be found at the [Kubernetes blog](https://kubernetes.io/blog/2025/09/12/kubernetes-v1-34-cri-cgroup-driver-lookup-now-ga/). ([#134906](https://github.com/kubernetes/kubernetes/pull/134906), [@carlory](https://github.com/carlory)) + +### Documentation + +- Promoted the `--chunk-size` flag to stable. The kubectl `describe`, `get`, `drain`, and `events` commands can use `--chunk-size` flag to set chunk size. ([#134481](https://github.com/kubernetes/kubernetes/pull/134481), [@soltysh](https://github.com/soltysh)) + +### Bug or Regression + +- Added support for Pods to reference the same `PersistentVolumeClaim` across multiple volumes. ([#122140](https://github.com/kubernetes/kubernetes/pull/122140), [@huww98](https://github.com/huww98)) [SIG Node, Storage and Testing] +- Added the correct error when eviction is blocked due to the failSafe mechanism of the `DisruptionController`. ([#133097](https://github.com/kubernetes/kubernetes/pull/133097), [@kei01234kei](https://github.com/kei01234kei)) [SIG Apps and Node] +- Changed `kubectl exec` syntax to require `--` before the command. The form `kubectl exec [POD] [COMMAND]` is no longer supported; use `kubectl exec [POD] -- [COMMAND]` instead. ([#133841](https://github.com/kubernetes/kubernetes/pull/133841), [@yangjunmyfm192085](https://github.com/yangjunmyfm192085)) +- DRA API: Fixed the `tolerations` field in exact and sub requests to drop properly when the `DRADeviceTaints` API is disabled. ([#132927](https://github.com/kubernetes/kubernetes/pull/132927), [@pohly](https://github.com/pohly)) +- DRA Device Taints: Fixed toleration of `NoExecute`. Prior to this enhancement, tolerating a `NoExecute` did not work because the scheduler did not inform the eviction controller about the toleration, so the scheduled pod got evicted almost immediately. ([#134479](https://github.com/kubernetes/kubernetes/pull/134479), [@pohly](https://github.com/pohly)) [SIG Apps, Node, Scheduling and Testing] +- Deprecated metrics will be hidden as per the metrics deprecation policy. https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-metric . ([#133436](https://github.com/kubernetes/kubernetes/pull/133436), [@richabanker](https://github.com/richabanker)) [SIG Architecture, Instrumentation and Network] +- Disabled the `SchedulerAsyncAPICalls` feature gate to mitigate a bug where its interaction with asynchronous preemption could degrade `kube-scheduler` performance, especially under high `kube-apiserver` load. ([#134400](https://github.com/kubernetes/kubernetes/pull/134400), [@macsko](https://github.com/macsko)) +- Dropped `DeviceBindingConditions` fields when the `DRADeviceBindingConditions` feature gate is not enabled and not in use. ([#134964](https://github.com/kubernetes/kubernetes/pull/134964), [@sunya-ch](https://github.com/sunya-ch)) +- Fixed SELinux warning controller not emitting events on some SELinux label conflicts. ([#133425](https://github.com/kubernetes/kubernetes/pull/133425), [@jsafrane](https://github.com/jsafrane)) [SIG Apps, Storage and Testing] +- Fixed `replicaCount` calculation exceeding max `int32`. ([#126979](https://github.com/kubernetes/kubernetes/pull/126979), [@omerap12](https://github.com/omerap12)) [SIG Apps and Autoscaling] +- Fixed a bug in `kube-proxy` `nftables` mode (GA as of `v1.33`) which fails to determine if traffic originates from a local source on the node. The issue was caused by using the wrong meta `iif` instead of `iifname` for name based matches. ([#134024](https://github.com/kubernetes/kubernetes/pull/134024), [@jack4it](https://github.com/jack4it)) +- Fixed a bug in `kube-scheduler` where pending pod preemption caused preemptor pods to be retried more frequently. ([#134245](https://github.com/kubernetes/kubernetes/pull/134245), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing] +- Fixed a bug that caused apiservers to send an inappropriate Content-Type request header to authorization, token authentication, imagepolicy admission, and audit webhooks when the alpha client-go feature gate "ClientsPreferCBOR" is enabled. ([#132960](https://github.com/kubernetes/kubernetes/pull/132960), [@benluddy](https://github.com/benluddy)) [SIG API Machinery and Node] +- Fixed a bug that caused duplicate validation when updating `PersistentVolumeClaims`, `VolumeAttachments` and `VolumeAttributesClasses`. ([#132549](https://github.com/kubernetes/kubernetes/pull/132549), [@gavinkflam](https://github.com/gavinkflam)) +- Fixed a bug that caused duplicate validation when updating `Role` and `RoleBinding` resources. ([#132550](https://github.com/kubernetes/kubernetes/pull/132550), [@gavinkflam](https://github.com/gavinkflam)) +- Fixed a bug that prevented allocating the same device that was previously consuming the `CounterSet` when both `DRAConsumableCapacity` and `DRAPartitionableDevices` were enabled. ([#134103](https://github.com/kubernetes/kubernetes/pull/134103), [@sunya-ch](https://github.com/sunya-ch)) +- Fixed a bug that prevents scheduling the next pod when using the `DRAConsumableCapacity` feature. ([#133706](https://github.com/kubernetes/kubernetes/pull/133706), [@sunya-ch](https://github.com/sunya-ch)) +- Fixed a bug to prevent segmentation fault from occurring when updating deeply nested JSON fields. ([#134381](https://github.com/kubernetes/kubernetes/pull/134381), [@kon-angelo](https://github.com/kon-angelo)) [SIG API Machinery and CLI] +- Fixed a bug where 64-bit IPv6 `ServiceCIDRs` allocated addresses outside the subnet range. ([#134193](https://github.com/kubernetes/kubernetes/pull/134193), [@hoskeri](https://github.com/hoskeri)) +- Fixed a bug where Job status updates fail after resuming a Job that was previously started and suspended. + The error message was: `status.startTime: Required value: startTime cannot be removed for unsuspended job`. ([#134769](https://github.com/kubernetes/kubernetes/pull/134769), [@dejanzele](https://github.com/dejanzele)) [SIG Apps and Testing] +- Fixed a bug where `AllocationMode: All` would not succeed if a resource pool contained `ResourceSlices` that were not targeting the current node. ([#134466](https://github.com/kubernetes/kubernetes/pull/134466), [@mortent](https://github.com/mortent)) +- Fixed a bug where a deleted Pod in the binding phase continued to occupy space on the node in `kube-scheduler`. ([#134157](https://github.com/kubernetes/kubernetes/pull/134157), [@macsko](https://github.com/macsko)) [SIG Scheduling and Testing] +- Fixed a bug where high latency `kube-apiserver` caused scheduling throughput degradation. ([#134154](https://github.com/kubernetes/kubernetes/pull/134154), [@macsko](https://github.com/macsko)) +- Fixed a bug where the health of a DRA resource was not reported in the Pod status if the resource claim was generated from a template or used a different local name in the Pod spec. ([#134875](https://github.com/kubernetes/kubernetes/pull/134875), [@Jpsassine](https://github.com/Jpsassine)) [SIG Node and Testing] +- Fixed a long-standing issue where `kubelet` rejected Pods with `NodeAffinityFailed` due to a stale informer cache. ([#134445](https://github.com/kubernetes/kubernetes/pull/134445), [@natasha41575](https://github.com/natasha41575)) +- Fixed a panic in `kubectl api-resources` that occurred when the Discovery Client failed. ([#134833](https://github.com/kubernetes/kubernetes/pull/134833), [@rikatz](https://github.com/rikatz)) +- Fixed a possible data race during metrics registration. ([#134390](https://github.com/kubernetes/kubernetes/pull/134390), [@liggitt](https://github.com/liggitt)) [SIG Architecture and Instrumentation] +- Fixed a startup probe race condition that caused main containers to remain stuck in "Initializing" state when sidecar containers with startup probes had failed initially but succeeded on restart in pods with `restartPolicy=Never`. ([#133072](https://github.com/kubernetes/kubernetes/pull/133072), [@AadiDev005](https://github.com/AadiDev005)) [SIG Node and Testing] +- Fixed an issue in asynchronous preemption: Scheduler now checks if preemption is ongoing for a Pod before initiating new preemption calls. ([#134730](https://github.com/kubernetes/kubernetes/pull/134730), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing] +- Fixed an issue where requests for a config `FromClass` in the `ResourceClaim` status were not referenced. ([#134793](https://github.com/kubernetes/kubernetes/pull/134793), [@LionelJouin](https://github.com/LionelJouin)) +- Fixed an issue where the `kubelet` `/configz` endpoint reported an incorrect value for `kubeletconfig.cgroupDriver` when the cgroup driver setting was received from the container runtime. ([#134743](https://github.com/kubernetes/kubernetes/pull/134743), [@marquiz](https://github.com/marquiz)) +- Fixed an issue where the default `serviceCIDR` controller did not log events because the event broadcaster was shutdown during initialization. ([#133338](https://github.com/kubernetes/kubernetes/pull/133338), [@aojea](https://github.com/aojea)) +- Fixed an issue with setting `distinctAttribute=nil` when the `DRAConsumableCapacity` feature gate is disabled. ([#134962](https://github.com/kubernetes/kubernetes/pull/134962), [@sunya-ch](https://github.com/sunya-ch)) +- Fixed broken shell completion for API resources. ([#133771](https://github.com/kubernetes/kubernetes/pull/133771), [@marckhouzam](https://github.com/marckhouzam)) +- Fixed incorrect behavior of preemptor pod when preemption of the victim takes long to complete. The preemptor pod should not be circling in scheduling cycles until preemption is finished. ([#134294](https://github.com/kubernetes/kubernetes/pull/134294), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Scheduling and Testing] +- Fixed missing `kubelet_volume_stats_*` metrics. ([#133890](https://github.com/kubernetes/kubernetes/pull/133890), [@huww98](https://github.com/huww98)) [SIG Instrumentation and Node] +- Fixed occasional schedule delays when a static `PersistentVolume` is created. ([#133929](https://github.com/kubernetes/kubernetes/pull/133929), [@huww98](https://github.com/huww98)) [SIG Scheduling and Storage] +- Fixed resource claims deallocation for extended resource when Pod completes. ([#134312](https://github.com/kubernetes/kubernetes/pull/134312), [@alaypatel07](https://github.com/alaypatel07)) [SIG Apps, Node and Testing] +- Fixed the kubelet to honor the `userNamespaces.idsPerPod` configuration, which was previously ignored. ([#133373](https://github.com/kubernetes/kubernetes/pull/133373), [@AkihiroSuda](https://github.com/AkihiroSuda)) [SIG Node and Testing] +- Fixed validation error when `ConfigFlags` includes `CertFile` and/or `KeyFile` while the original configuration also contains `CertFileData` and/or `KeyFileData`. ([#133917](https://github.com/kubernetes/kubernetes/pull/133917), [@n2h9](https://github.com/n2h9)) [SIG API Machinery and CLI] +- Improved performance of `Endpoint` and `EndpointSlice` controllers when there are a large number of services in a single namespace by making pod-to-service lookup asynchronous. ([#134739](https://github.com/kubernetes/kubernetes/pull/134739), [@shyamjvs](https://github.com/shyamjvs)) [SIG Apps and Network] +- Improved the `FreeDiskSpaceFailed` warning event to provide more actionable details when image garbage collection fails to free enough disk space. Example: `Insufficient free disk space on the node's image filesystem (95.0% of 10.0 GiB used). Failed to free sufficient space by deleting unused images. Consider resizing the disk or deleting unused files.`. ([#132578](https://github.com/kubernetes/kubernetes/pull/132578), [@drigz](https://github.com/drigz)) +- Introduced support for using an implicit extended resource name derived from the device class (`deviceclass.resource.kubernetes.io/<device-class-name>`) to request DRA devices matching that class. ([#133363](https://github.com/kubernetes/kubernetes/pull/133363), [@yliaog](https://github.com/yliaog)) [SIG Node, Scheduling and Testing] +- Kube-apiserver: Fixed a `v1.34` regression with spurious "Error getting keys" log messages. ([#133817](https://github.com/kubernetes/kubernetes/pull/133817), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd] +- Kube-apiserver: Fixed a possible `v1.34` performance regression calculating object size statistics for resources not served from the watch cache, typically only `Events`. ([#133873](https://github.com/kubernetes/kubernetes/pull/133873), [@serathius](https://github.com/serathius)) [SIG API Machinery and Etcd] +- Kube-apiserver: Improved validation error messages for custom resources with CEL validation rules to include the value that failed validation. ([#132798](https://github.com/kubernetes/kubernetes/pull/132798), [@cbandy](https://github.com/cbandy)) +- Kube-apiserver: Made sure that when `--requestheader-client-ca-file` and `--client-ca-file` contain overlapping certificates, `--requestheader-allowed-names` must be specified so that regular client certificates cannot set authenticating proxy headers for arbitrary users. ([#131411](https://github.com/kubernetes/kubernetes/pull/131411), [@ballista01](https://github.com/ballista01)) [SIG API Machinery, Auth and Security] +- Kube-controller-manager: Fixed a possible data race in the garbage collection controller. ([#134379](https://github.com/kubernetes/kubernetes/pull/134379), [@liggitt](https://github.com/liggitt)) [SIG API Machinery and Apps] +- Kube-controller-manager: Resolved potential issues handling pods with incorrect uids in their `ownerReference`. ([#134654](https://github.com/kubernetes/kubernetes/pull/134654), [@liggitt](https://github.com/liggitt)) +- Kubeadm: Added missing cluster-info context validation to prevent panics when the user has a malformed kubeconfig in the cluster-info ConfigMap that excludes a valid current context. ([#134715](https://github.com/kubernetes/kubernetes/pull/134715), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Ensured waiting for `apiserver` uses a local client that doesn't reach to the control plane endpoint and instead reaches directly to the local API server endpoint. ([#134265](https://github.com/kubernetes/kubernetes/pull/134265), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Fixed `KUBEADM_UPGRADE_DRYRUN_DIR` not honored in upgrade phase when writing kubelet config files. ([#134007](https://github.com/kubernetes/kubernetes/pull/134007), [@carlory](https://github.com/carlory)) +- Kubeadm: Fixed a bug where `ClusterConfiguration.APIServer.TimeoutForControlPlane` from `v1beta3` was not respected in newer kubeadm versions where `v1beta4` is the default. ([#133513](https://github.com/kubernetes/kubernetes/pull/133513), [@tom1299](https://github.com/tom1299)) +- Kubeadm: Fixed a bug where the node registration information for a given node was not fetched correctly during `kubeadm upgrade node` and the node name can end up being incorrect in cases where the node name is not the same as the host name. ([#134319](https://github.com/kubernetes/kubernetes/pull/134319), [@neolit123](https://github.com/neolit123)) +- Kubeadm: Fixed a preflight check that could fail hostname construction in IPv6 setups. ([#134588](https://github.com/kubernetes/kubernetes/pull/134588), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Auth, Cloud Provider, Cluster Lifecycle and Testing] +- Kubelet: Fixed an internal deadlock that caused the connection to a DRA driver to become unusable after being idle for 30 minutes. ([#133926](https://github.com/kubernetes/kubernetes/pull/133926), [@pohly](https://github.com/pohly)) +- Made legacy watch calls (`ResourceVersion` = 0 or unset) that generate init-events weigh higher in `API Priority and Fairness (APF)` seat usage. Properly accounting for their cost protects the API server from CPU overload. Users might see increased throttling of such calls as a result. ([#134601](https://github.com/kubernetes/kubernetes/pull/134601), [@shyamjvs](https://github.com/shyamjvs)) +- Promoted VAC API test to conformance. ([#133615](https://github.com/kubernetes/kubernetes/pull/133615), [@carlory](https://github.com/carlory)) [SIG Architecture, Storage and Testing] +- Removed `BlockOwnerDeletion` from `ResourceClaim` created from `ResourceClaimTemplate` and from `extendedResourceClaim` created by the `scheduler`. ([#134956](https://github.com/kubernetes/kubernetes/pull/134956), [@yliaog](https://github.com/yliaog)) [SIG Apps, Node and Scheduling] +- Removed an incorrect `SessionAffinity` warning that appeared when a headless service was created or updated. ([#134054](https://github.com/kubernetes/kubernetes/pull/134054), [@Peac36](https://github.com/Peac36)) +- Namespace is now included in the `--dry-run=client` output for `HorizontalPodAutoscaler (HPA)` objects. ([#134263](https://github.com/kubernetes/kubernetes/pull/134263), [@ardaguclu](https://github.com/ardaguclu)) [SIG CLI and Testing] +- Updated `kubectl scale` to return a consistent error message when a specified resource is not found. Previously, it returned: `error: no objects passed to scale <GroupResource> "<ResourceName>" not found`. It now matches the format used by other commands (e.g., `kubectl get`): `Error from server (NotFound): <GroupResource> "<ResourceName>" not found`. ([#134017](https://github.com/kubernetes/kubernetes/pull/134017), [@mochizuki875](https://github.com/mochizuki875)) +- `kube-controller-manager`: Fixed a `v1.34` regression that triggered a spurious rollout of existing StatefulSets when upgrading the control plane from `v1.33` to `v1.34`. This fix is guarded by the `StatefulSetSemanticRevisionComparison` feature gate, which is enabled by default. ([#135017](https://github.com/kubernetes/kubernetes/pull/135017), [@liggitt](https://github.com/liggitt)) +- `kube-scheduler`: Pod statuses no longer include specific taint keys or values when scheduling fails due to untolerated taints. ([#134740](https://github.com/kubernetes/kubernetes/pull/134740), [@hoskeri](https://github.com/hoskeri)) + +### Other (Cleanup or Flake) + +- Added the `Step` field to the testing framework to allow volume expansion in configurable step sizes for tests. ([#134760](https://github.com/kubernetes/kubernetes/pull/134760), [@Rishita-Golla](https://github.com/Rishita-Golla)) [SIG Storage and Testing] +- Bumped addon manager to use `kubectl` version `v1.32.2`. ([#130548](https://github.com/kubernetes/kubernetes/pull/130548), [@Jefftree](https://github.com/Jefftree)) [SIG Cloud Provider, Scalability and Testing] +- Dropped support for `certificates/v1beta1` `CertificateSigningRequest` in `kubectl`. ([#134782](https://github.com/kubernetes/kubernetes/pull/134782), [@scaliby](https://github.com/scaliby)) +- Dropped support for `discovery/v1beta1` `EndpointSlice` in `kubectl`. ([#134913](https://github.com/kubernetes/kubernetes/pull/134913), [@scaliby](https://github.com/scaliby)) +- Dropped support for `policy/v1beta1` PodDisruptionBudget in kubectl. ([#134685](https://github.com/kubernetes/kubernetes/pull/134685), [@scaliby](https://github.com/scaliby)) +- Eliminated and prevented future use of the `md5` algorithm in favor of more appropriate hashing algorithms. ([#133511](https://github.com/kubernetes/kubernetes/pull/133511), [@BenTheElder](https://github.com/BenTheElder)) [SIG Apps, Architecture, CLI, Cluster Lifecycle, Network, Node, Security, Storage and Testing] +- Fixed `nfacct` test cases on s390x. ([#133603](https://github.com/kubernetes/kubernetes/pull/133603), [@saisindhuri91](https://github.com/saisindhuri91)) +- Fixed formatting of various Go API deprecations for `GoDoc` and `pkgsite`, and enabled a linter to detect misformatted deprecations. ([#133571](https://github.com/kubernetes/kubernetes/pull/133571), [@BenTheElder](https://github.com/BenTheElder)) [SIG API Machinery, Architecture, CLI, Instrumentation and Testing] +- Improved HPA performance when using container-specific resource metrics by optimizing container lookup logic to exit early once the target container is found, reducing unnecessary iterations through all containers in a pod. ([#133415](https://github.com/kubernetes/kubernetes/pull/133415), [@AadiDev005](https://github.com/AadiDev005)) [SIG Apps and Autoscaling] +- Increased the coverage to 89.8%. ([#132607](https://github.com/kubernetes/kubernetes/pull/132607), [@ylink-lfs](https://github.com/ylink-lfs)) +- Kube-apiserver: Fixed an issue where passing invalid `DeleteOptions` incorrectly returned a 500 status instead of 400. ([#133358](https://github.com/kubernetes/kubernetes/pull/133358), [@ostrain](https://github.com/ostrain)) +- Kubeadm: Updated the supported `etcd` version to `v3.5.23` for supported control plane versions `v1.31`, `v1.32`, and `v1.33`. ([#134692](https://github.com/kubernetes/kubernetes/pull/134692), [@joshjms](https://github.com/joshjms)) [SIG Cluster Lifecycle and Etcd] +- Kubeadm: stopped applying the `--pod-infra-container-image` flag for the kubelet. The flag has been deprecated and no longer served a purpose in the kubelet as the logic was migrated to CRI (Container Runtime Interface). During upgrade, kubeadm will attempt to remove the flag from the file `/var/lib/kubelet/kubeadm-flags.env`. ([#133778](https://github.com/kubernetes/kubernetes/pull/133778), [@carlory](https://github.com/carlory)) [SIG Cloud Provider and Cluster Lifecycle] +- Migrated the `CPUManager` to contextual logging. ([#125912](https://github.com/kubernetes/kubernetes/pull/125912), [@ffromani](https://github.com/ffromani)) +- Moved Types in `k/k/pkg/scheduler/framework`: + `Handle`, + `Plugin`, + `PreEnqueuePlugin`, `QueueSortPlugin`, `EnqueueExtensions`, `PreFilterExtensions`, `PreFilterPlugin`, `FilterPlugin`, `PostFilterPlugin`, `PreScorePlugin`, `ScorePlugin`, `ReservePlugin`, `PreBindPlugin`, `PostBindPlugin`, `PermitPlugin`, `BindPlugin`, + `PodActivator`, `PodNominator`, `PluginsRunner`, + `LessFunc`, `ScoreExtensions`, `NodeToStatusReader`, `NodeScoreList`, `NodeScore`, `NodePluginScores`, `PluginScore`, `NominatingMode`, `NominatingInfo`, `WaitingPod`, `PreFilterResult`, `PostFilterResult`, + `Extender`, + `NodeInfoLister`, `StorageInfoLister`, `SharedLister`, `ResourceSliceLister`, `DeviceClassLister`, `ResourceClaimTracker`, `SharedDRAManager` + + to package `k8s.io/kube-scheduler/framework`. Users should update import paths. The interfaces don't change. + + Type `Parallelizer` in `k/k/pkg/scheduler/framework/parallelism` has been split into interface `Parallelizer` (in `k8s.io/kube-scheduler/framework`) and `struct Parallelizer` (location unchanged in k/k). Plugin developers should update the import path to staging repo. ([#133172](https://github.com/kubernetes/kubernetes/pull/133172), [@ania-borowiec](https://github.com/ania-borowiec)) [SIG Node, Release, Scheduling, Storage and Testing] +- Moved the CPU Manager static policy option `strict-cpu-reservation` to the GA version. ([#134388](https://github.com/kubernetes/kubernetes/pull/134388), [@psasnal](https://github.com/psasnal)) +- Promoted the Topology Manager policy option `max-allowable-numa-nodes` to GA version. ([#134614](https://github.com/kubernetes/kubernetes/pull/134614), [@ffromani](https://github.com/ffromani)) +- Reduced event spam during volume operation errors in the Portworx in-tree driver. ([#135081](https://github.com/kubernetes/kubernetes/pull/135081), [@gohilankit](https://github.com/gohilankit)) +- Removed `rsync` as a dependency to build Kubernetes. ([#134656](https://github.com/kubernetes/kubernetes/pull/134656), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing] +- Removed container name from messages for container created and started events. ([#134043](https://github.com/kubernetes/kubernetes/pull/134043), [@HirazawaUi](https://github.com/HirazawaUi)) +- Removed deprecated gogo protocol definitions from `k8s.io/kubelet/pkg/apis/dra` in favor of `google.golang.org/protobuf`. ([#133026](https://github.com/kubernetes/kubernetes/pull/133026), [@saschagrunert](https://github.com/saschagrunert)) [SIG API Machinery and Node] +- Removed general available feature-gate `SizeMemoryBackedVolumes`. ([#133720](https://github.com/kubernetes/kubernetes/pull/133720), [@carlory](https://github.com/carlory)) [SIG Node, Storage and Testing] +- Removed the `ComponentSLIs` feature gate, as it was promoted to stable in the Kubernetes `v1.32` release. ([#133742](https://github.com/kubernetes/kubernetes/pull/133742), [@carlory](https://github.com/carlory)) [SIG Architecture and Instrumentation] +- Removed the `KUBECTL_OPENAPIV3_PATCH` environment variable, as aggregated discovery has been stable since `v1.30`. ([#134130](https://github.com/kubernetes/kubernetes/pull/134130), [@ardaguclu](https://github.com/ardaguclu)) +- Removed the `UserNamespacesPodSecurityStandards` feature gate. The minimum supported Kubernetes version for `kubelet` is now `v1.31`, so the gate is no longer needed. ([#132157](https://github.com/kubernetes/kubernetes/pull/132157), [@haircommander](https://github.com/haircommander)) [SIG Auth, Node and Testing] +- Removed the `VolumeAttributesClass` resource from the `storage.k8s.io/v1alpha1` API in `v1.35`. ([#134625](https://github.com/kubernetes/kubernetes/pull/134625), [@liggitt](https://github.com/liggitt)) [SIG API Machinery, Etcd, Storage and Testing] +- Specified the deprecated version of `apiserver_storage_objects` metric in metrics docs. ([#134028](https://github.com/kubernetes/kubernetes/pull/134028), [@richabanker](https://github.com/richabanker)) [SIG API Machinery, Etcd and Instrumentation] +- Substantially simplified building Kubernetes by making the process run a pre-built container image directly without running `rsyncd`. ([#134510](https://github.com/kubernetes/kubernetes/pull/134510), [@BenTheElder](https://github.com/BenTheElder)) [SIG Release and Testing] +- Tests: Switched to https://go.dev/doc/go1.25#container-aware-gomaxprocs from `go.uber.org/automaxprocs`. ([#133492](https://github.com/kubernetes/kubernetes/pull/133492), [@BenTheElder](https://github.com/BenTheElder)) +- The `SystemdWatchdog` feature gate has been locked to default and will be removed in future release. The systemd watchdog functionality in `kubelet` can be enabled via systemd without any feature gate configuration. See the [systemd watchdog documentation](https://kubernetes.io/docs/reference/node/systemd-watchdog/) for more information. ([#134691](https://github.com/kubernetes/kubernetes/pull/134691), [@SergeyKanzhelev](https://github.com/SergeyKanzhelev)) +- Updated CNI plugins to v1.8.0. ([#133837](https://github.com/kubernetes/kubernetes/pull/133837), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider, Node and Testing] +- Updated `etcd` to `v3.6.5`. ([#134251](https://github.com/kubernetes/kubernetes/pull/134251), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing] +- Updated `kubectl auth reconcile` to retry reconciliation when a conflict error occurs. ([#133323](https://github.com/kubernetes/kubernetes/pull/133323), [@liggitt](https://github.com/liggitt)) [SIG Auth and CLI] +- Updated `kubectl get` and `kubectl describe` human-readable output to no longer show counts for referenced tokens and secrets. ([#117160](https://github.com/kubernetes/kubernetes/pull/117160), [@liggitt](https://github.com/liggitt)) [SIG CLI and Testing] +- Updated cri-tools to v1.34.0. ([#133636](https://github.com/kubernetes/kubernetes/pull/133636), [@saschagrunert](https://github.com/saschagrunert)) [SIG Cloud Provider] +- Updated the Go version of Kubernetes to `1.25.3`. ([#134598](https://github.com/kubernetes/kubernetes/pull/134598), [@BenTheElder](https://github.com/BenTheElder)) +- Updated the `/statusz` page for `kube-proxy` to include a list of exposed endpoints, making debugging and introspection easier. ([#133190](https://github.com/kubernetes/kubernetes/pull/133190), [@aman4433](https://github.com/aman4433)) [SIG Network and Node] +- Updated the `kubectl wait` command description by removing the `Experimental` prefix, as the command has been stable for a long time. ([#133731](https://github.com/kubernetes/kubernetes/pull/133731), [@ardaguclu](https://github.com/ardaguclu)) +- Updated the etcd client library to `v3.6.5`. ([#134780](https://github.com/kubernetes/kubernetes/pull/134780), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Network, Node, Scheduling and Storage] +- Updated the short description of the `kubectl wait` command by removing the `Experimental` prefix, as the command has been stable for a long time. ([#133907](https://github.com/kubernetes/kubernetes/pull/133907), [@ardaguclu](https://github.com/ardaguclu)) +- Upgraded `CoreDNS` to `v1.12.3`. ([#132288](https://github.com/kubernetes/kubernetes/pull/132288), [@thevilledev](https://github.com/thevilledev)) [SIG Cloud Provider and Cluster Lifecycle] +- `kubeadm`: Removed the `WaitForAllControlPlaneComponents` feature gate, which graduated to GA in `v1.34` and was locked to enabled by default. ([#134781](https://github.com/kubernetes/kubernetes/pull/134781), [@neolit123](https://github.com/neolit123)) - `kubeadm`: Updated the supported etcd version to `v3.5.24` for control plane versions `v1.32`, `v1.33`, and `v1.34`. ([#134779](https://github.com/kubernetes/kubernetes/pull/134779), [@joshjms](https://github.com/joshjms)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle, Etcd and Testing] \ No newline at end of file diff --git a/releases/release-1.35/release-notes/sessions/maps-1760008566.json b/releases/release-1.35/release-notes/sessions/maps-1760008566.json index f11e514fff4..694eff9ec4f 100644 --- a/releases/release-1.35/release-notes/sessions/maps-1760008566.json +++ b/releases/release-1.35/release-notes/sessions/maps-1760008566.json @@ -1,367 +1,367 @@ -{ - "mail": "sayan.chowdhury2012@gmail.com", - "name": "Sayan Chowdhury", - "date": 1760008566, - "prs": [ - { - "nr": 133907, - "hash": "ec7f0e637761de8df47558c8beed85bf245b989e" - }, - { - "nr": 133731, - "hash": "4952a6e81b338748ffb80bd2685febcf98e83743" - }, - { - "nr": 133338, - "hash": "d7100d078200ce4e37d3b88c9d7a9f72c82c5717" - }, - { - "nr": 132606, - "hash": "ece1d4a559d2d97d63c178c4adedb0aad53d6506" - }, - { - "nr": 132960, - "hash": "55133ead3ce742737663bf156073dedd7038928c" - }, - { - "nr": 133026, - "hash": "44143ac192bbb91e7df121ec2453f15ee10524ef" - }, - { - "nr": 133540, - "hash": "4b59d680f2b662bf8749b5db31af004fb4504fdd" - }, - { - "nr": 133929, - "hash": "679d1ec2af50fe059f487e34fa79ab89ccbc4cf2" - }, - { - "nr": 134319, - "hash": "09e51f567287dfb7931c859793f6093ff337576c" - }, - { - "nr": 133097, - "hash": "47a992d9beaef77eb5f60b0ce3ff817d987332f3" - }, - { - "nr": 132549, - "hash": "e7dd6de8bf095fd048c5a69c6973ff758faa9446" - }, - { - "nr": 134130, - "hash": "d4783b4e55a1d57a6fe219bd7d5c8ab2b1aa4eef" - }, - { - "nr": 134390, - "hash": "ca1c134ca33b31ca6a616c8b265ad4289ac05527" - }, - { - "nr": 133394, - "hash": "f94fa7267fa637bd79f7571e9389a2743b4c4bbd" - }, - { - "nr": 134330, - "hash": "126a85b7e356b2841b499116baddcb87a1eabcd1" - }, - { - "nr": 133436, - "hash": "776dc8413d7351cd889c9fe3e8f996250a2b95aa" - }, - { - "nr": 132578, - "hash": "258209b0d0a55293dd5cd9c1efbf704b9f9fcbaf" - }, - { - "nr": 133876, - "hash": "7be48844027ff234a6cc0c983303cf0eabd97e59" - }, - { - "nr": 134054, - "hash": "0d19724aadfd9990a30e6fac38eeb75b0f6055c8" - }, - { - "nr": 131092, - "hash": "4505b18722f20a1b1cf696f2ec02fbb3ac70b7e1" - }, - { - "nr": 133603, - "hash": "f7f08b1663b5cc693429950125c5d86f2c9b08ae" - }, - { - "nr": 134384, - "hash": "c46c36e0ebd4453939b8c85def65f5ae6d1442b9" - }, - { - "nr": 134245, - "hash": "46e966b2685b3ce541dd6e181f90e660a46f0e86" - }, - { - "nr": 134106, - "hash": "c1565973de27899e7df6c15ba3faab0c5b3de14d" - }, - { - "nr": 133715, - "hash": "97a154c782dd8b8f5ef9219c5998a9309e35a85f" - }, - { - "nr": 133896, - "hash": "054217574b3e2564dd6decaa25a70ef379eef81c" - }, - { - "nr": 122140, - "hash": "6b55b9bb5524570e82f2226825eb27b9fa24d7a8" - }, - { - "nr": 130951, - "hash": "35acee2945671c6a5eec29c8b95d7b4cfab7ebfd" - }, - { - "nr": 133363, - "hash": "d876b9dcf4d95bf5a18d42272ccf4373bc613039" - }, - { - "nr": 133894, - "hash": "e2d16d71c0dc718453f97db6b93003c2b6cef63e" - }, - { - "nr": 133837, - "hash": "8f12a0a42c57698c610260214006e641a11e3b64" - }, - { - "nr": 133327, - "hash": "9bc6aba606d9475dd68822454645c4e53bf888de" - }, - { - "nr": 133425, - "hash": "a3d0dd4f71b3e24ca65457938c011f84961664d0" - }, - { - "nr": 133358, - "hash": "cea1ebc1913c7d3702aaba883279b336b16104b1" - }, - { - "nr": 133926, - "hash": "91057707b5a336300d8fbadeb610fb9af584c424" - }, - { - "nr": 133792, - "hash": "825b4b6fc79cea0e5db7c9d3ddef3c7e233372a9" - }, - { - "nr": 134072, - "hash": "1442193b3e4ed41c05689de84ce63df4a57a6766" - }, - { - "nr": 134251, - "hash": "3039961894ef260a71d11d302d97e319ea1286da" - }, - { - "nr": 133697, - "hash": "ed9557bd11ad08e5bc3639121904ce57e3c62934" - }, - { - "nr": 134154, - "hash": "d6fc581aba483dccf93cbbf9d2a3a5f2225c886a" - }, - { - "nr": 133948, - "hash": "144ab248dde253986f3c923dc9ae4f23d3f2d21e" - }, - { - "nr": 133720, - "hash": "57a7953b27ec961975048e0b4e67cdaa14396922" - }, - { - "nr": 134024, - "hash": "59af346c3f66f111c31100947f610c837216f8ff" - }, - { - "nr": 134007, - "hash": "86a2ea1df36a068e862e54349a1f30a9bd5fc3c5" - }, - { - "nr": 133890, - "hash": "0ce635f6cc4c569cfcaf715986a0581a58538411" - }, - { - "nr": 133211, - "hash": "87ca48088efc96c19be8a10ff675a5cc2af85cbc" - }, - { - "nr": 132665, - "hash": "ae18629664232a476a3ee495128353d969b5c853" - }, - { - "nr": 133615, - "hash": "5940bc6e6fdfcd563a3c4283a78630d86d2c8690" - }, - { - "nr": 133513, - "hash": "14e1b81482e8ba29a15f9c5171711695785daa80" - }, - { - "nr": 134279, - "hash": "e723266e36a5ff99537c59577060c3fff20ec4ca" - }, - { - "nr": 133904, - "hash": "bc016749db1ec8b369f82d74e37cf107477d248a" - }, - { - "nr": 133817, - "hash": "669eb7b8f6bb44ef6dc52ed44f3a09d8f78dad69" - }, - { - "nr": 133571, - "hash": "9a96f01b539bd6c34fbce342324b21ea79291de7" - }, - { - "nr": 117160, - "hash": "fd3723e047371ffa611c63cdcd679ba0967ce655" - }, - { - "nr": 134312, - "hash": "c181944b40b0f4a6a2c2b4e8697a9906196f4453" - }, - { - "nr": 134120, - "hash": "3e24da041cc3f928854b8d257442f813aa42511b" - }, - { - "nr": 134095, - "hash": "f6f8f8d30fa543fe737a110b2625e8881982d5e7" - }, - { - "nr": 133172, - "hash": "fe0d77100711422d6fdb10b892029da313f72a2a" - }, - { - "nr": 133239, - "hash": "2067e727bf561d69a7b713fb3ed96a572bd40891" - }, - { - "nr": 132288, - "hash": "7ad20836f2021dc91d074c31296273d050690564" - }, - { - "nr": 132825, - "hash": "5fb91a13b07608f6fb9cfd9f3b0f465e2497b4ed" - }, - { - "nr": 134265, - "hash": "c2ad7d3fab97adbfa595978e663c9fb9a6a8d325" - }, - { - "nr": 134028, - "hash": "67ab38cdf92be6f83be5b781c74eda30bd5de78c" - }, - { - "nr": 134043, - "hash": "3219f2033db0d1d75c1a32e917ed358bd52bf385" - }, - { - "nr": 133323, - "hash": "35e0fec9c51e5d517b98a2f32c40239486ba9886" - }, - { - "nr": 134379, - "hash": "69e0c4e7a19f8201dd5bf20116510be0a8577ede" - }, - { - "nr": 133841, - "hash": "4d679978f6143a729bb294056b5476c95749b90b" - }, - { - "nr": 133627, - "hash": "85e103c22ad348d8aa7daa872985cf083a9fce04" - }, - { - "nr": 130548, - "hash": "9c16b31c58416d524d570dab8342653d528c6944" - }, - { - "nr": 132663, - "hash": "b0a7a79c164ca1828b3760324bf62401f7de2ee8" - }, - { - "nr": 133742, - "hash": "7ee05da4a29433e453a1df64e0e00d4878066d19" - }, - { - "nr": 133771, - "hash": "9d6f0ddb1e1a43d5e118eaa400605f2644658ea9" - }, - { - "nr": 132798, - "hash": "17663c19e8e824b8fa2669496b2e19421ea13bfd" - }, - { - "nr": 134400, - "hash": "b8df8b39b52c103dca46cf8a16daa6df7afa5f91" - }, - { - "nr": 133190, - "hash": "a4754cecaa52a8c7456f9c37292a8be1f0151d6d" - }, - { - "nr": 133492, - "hash": "1494545cd94f093e06a9b80fe67d0024339d5d15" - }, - { - "nr": 133873, - "hash": "bbdbfb6e93937196cf1dab208bec06241ad0ab2f" - }, - { - "nr": 126979, - "hash": "127438fb4ddc0d24c81c69947c79e9e72d9319c5" - }, - { - "nr": 134294, - "hash": "0251663f8941f3373aaf74b406b98fd434b841ba" - }, - { - "nr": 133357, - "hash": "86f5fa3102d65cfbe3d421ec5e2e2f4594389333" - }, - { - "nr": 130551, - "hash": "ea2222fb7786847b7ba2a2485c2f620560386c33" - }, - { - "nr": 133636, - "hash": "2e8d62eba322262d377111ef202d812966c97c16" - }, - { - "nr": 133415, - "hash": "89ddfa78305377951419abcef299a9aeae4d2274" - }, - { - "nr": 132607, - "hash": "e9fefa21df575cc595da68cd66cec717b2d3894f" - }, - { - "nr": 133883, - "hash": "511ac49eaef21b580bcfe6332f1ff29ca29404f9" - }, - { - "nr": 134178, - "hash": "8e865d0cbc52ae6ef1f43abef662afa79f2961ea" - }, - { - "nr": 134017, - "hash": "2d02b46116dda87f2587f9fd7f2cc0af6bda482d" - }, - { - "nr": 131755, - "hash": "0bf47d894234ac303cdbcd6d9b84ed1311fef63e" - }, - { - "nr": 132550, - "hash": "b068ab0db2162246600768450c0623d217ea7211" - }, - { - "nr": 133917, - "hash": "f95b308a11190864dd91191073e451327c796cc5" - } - ] +{ + "mail": "sayan.chowdhury2012@gmail.com", + "name": "Sayan Chowdhury", + "date": 1760008566, + "prs": [ + { + "nr": 133907, + "hash": "ec7f0e637761de8df47558c8beed85bf245b989e" + }, + { + "nr": 133731, + "hash": "4952a6e81b338748ffb80bd2685febcf98e83743" + }, + { + "nr": 133338, + "hash": "d7100d078200ce4e37d3b88c9d7a9f72c82c5717" + }, + { + "nr": 132606, + "hash": "ece1d4a559d2d97d63c178c4adedb0aad53d6506" + }, + { + "nr": 132960, + "hash": "55133ead3ce742737663bf156073dedd7038928c" + }, + { + "nr": 133026, + "hash": "44143ac192bbb91e7df121ec2453f15ee10524ef" + }, + { + "nr": 133540, + "hash": "4b59d680f2b662bf8749b5db31af004fb4504fdd" + }, + { + "nr": 133929, + "hash": "679d1ec2af50fe059f487e34fa79ab89ccbc4cf2" + }, + { + "nr": 134319, + "hash": "09e51f567287dfb7931c859793f6093ff337576c" + }, + { + "nr": 133097, + "hash": "47a992d9beaef77eb5f60b0ce3ff817d987332f3" + }, + { + "nr": 132549, + "hash": "e7dd6de8bf095fd048c5a69c6973ff758faa9446" + }, + { + "nr": 134130, + "hash": "d4783b4e55a1d57a6fe219bd7d5c8ab2b1aa4eef" + }, + { + "nr": 134390, + "hash": "ca1c134ca33b31ca6a616c8b265ad4289ac05527" + }, + { + "nr": 133394, + "hash": "f94fa7267fa637bd79f7571e9389a2743b4c4bbd" + }, + { + "nr": 134330, + "hash": "126a85b7e356b2841b499116baddcb87a1eabcd1" + }, + { + "nr": 133436, + "hash": "776dc8413d7351cd889c9fe3e8f996250a2b95aa" + }, + { + "nr": 132578, + "hash": "258209b0d0a55293dd5cd9c1efbf704b9f9fcbaf" + }, + { + "nr": 133876, + "hash": "7be48844027ff234a6cc0c983303cf0eabd97e59" + }, + { + "nr": 134054, + "hash": "0d19724aadfd9990a30e6fac38eeb75b0f6055c8" + }, + { + "nr": 131092, + "hash": "4505b18722f20a1b1cf696f2ec02fbb3ac70b7e1" + }, + { + "nr": 133603, + "hash": "f7f08b1663b5cc693429950125c5d86f2c9b08ae" + }, + { + "nr": 134384, + "hash": "c46c36e0ebd4453939b8c85def65f5ae6d1442b9" + }, + { + "nr": 134245, + "hash": "46e966b2685b3ce541dd6e181f90e660a46f0e86" + }, + { + "nr": 134106, + "hash": "c1565973de27899e7df6c15ba3faab0c5b3de14d" + }, + { + "nr": 133715, + "hash": "97a154c782dd8b8f5ef9219c5998a9309e35a85f" + }, + { + "nr": 133896, + "hash": "054217574b3e2564dd6decaa25a70ef379eef81c" + }, + { + "nr": 122140, + "hash": "6b55b9bb5524570e82f2226825eb27b9fa24d7a8" + }, + { + "nr": 130951, + "hash": "35acee2945671c6a5eec29c8b95d7b4cfab7ebfd" + }, + { + "nr": 133363, + "hash": "d876b9dcf4d95bf5a18d42272ccf4373bc613039" + }, + { + "nr": 133894, + "hash": "e2d16d71c0dc718453f97db6b93003c2b6cef63e" + }, + { + "nr": 133837, + "hash": "8f12a0a42c57698c610260214006e641a11e3b64" + }, + { + "nr": 133327, + "hash": "9bc6aba606d9475dd68822454645c4e53bf888de" + }, + { + "nr": 133425, + "hash": "a3d0dd4f71b3e24ca65457938c011f84961664d0" + }, + { + "nr": 133358, + "hash": "cea1ebc1913c7d3702aaba883279b336b16104b1" + }, + { + "nr": 133926, + "hash": "91057707b5a336300d8fbadeb610fb9af584c424" + }, + { + "nr": 133792, + "hash": "825b4b6fc79cea0e5db7c9d3ddef3c7e233372a9" + }, + { + "nr": 134072, + "hash": "1442193b3e4ed41c05689de84ce63df4a57a6766" + }, + { + "nr": 134251, + "hash": "3039961894ef260a71d11d302d97e319ea1286da" + }, + { + "nr": 133697, + "hash": "ed9557bd11ad08e5bc3639121904ce57e3c62934" + }, + { + "nr": 134154, + "hash": "d6fc581aba483dccf93cbbf9d2a3a5f2225c886a" + }, + { + "nr": 133948, + "hash": "144ab248dde253986f3c923dc9ae4f23d3f2d21e" + }, + { + "nr": 133720, + "hash": "57a7953b27ec961975048e0b4e67cdaa14396922" + }, + { + "nr": 134024, + "hash": "59af346c3f66f111c31100947f610c837216f8ff" + }, + { + "nr": 134007, + "hash": "86a2ea1df36a068e862e54349a1f30a9bd5fc3c5" + }, + { + "nr": 133890, + "hash": "0ce635f6cc4c569cfcaf715986a0581a58538411" + }, + { + "nr": 133211, + "hash": "87ca48088efc96c19be8a10ff675a5cc2af85cbc" + }, + { + "nr": 132665, + "hash": "ae18629664232a476a3ee495128353d969b5c853" + }, + { + "nr": 133615, + "hash": "5940bc6e6fdfcd563a3c4283a78630d86d2c8690" + }, + { + "nr": 133513, + "hash": "14e1b81482e8ba29a15f9c5171711695785daa80" + }, + { + "nr": 134279, + "hash": "e723266e36a5ff99537c59577060c3fff20ec4ca" + }, + { + "nr": 133904, + "hash": "bc016749db1ec8b369f82d74e37cf107477d248a" + }, + { + "nr": 133817, + "hash": "669eb7b8f6bb44ef6dc52ed44f3a09d8f78dad69" + }, + { + "nr": 133571, + "hash": "9a96f01b539bd6c34fbce342324b21ea79291de7" + }, + { + "nr": 117160, + "hash": "fd3723e047371ffa611c63cdcd679ba0967ce655" + }, + { + "nr": 134312, + "hash": "c181944b40b0f4a6a2c2b4e8697a9906196f4453" + }, + { + "nr": 134120, + "hash": "3e24da041cc3f928854b8d257442f813aa42511b" + }, + { + "nr": 134095, + "hash": "f6f8f8d30fa543fe737a110b2625e8881982d5e7" + }, + { + "nr": 133172, + "hash": "fe0d77100711422d6fdb10b892029da313f72a2a" + }, + { + "nr": 133239, + "hash": "2067e727bf561d69a7b713fb3ed96a572bd40891" + }, + { + "nr": 132288, + "hash": "7ad20836f2021dc91d074c31296273d050690564" + }, + { + "nr": 132825, + "hash": "5fb91a13b07608f6fb9cfd9f3b0f465e2497b4ed" + }, + { + "nr": 134265, + "hash": "c2ad7d3fab97adbfa595978e663c9fb9a6a8d325" + }, + { + "nr": 134028, + "hash": "67ab38cdf92be6f83be5b781c74eda30bd5de78c" + }, + { + "nr": 134043, + "hash": "3219f2033db0d1d75c1a32e917ed358bd52bf385" + }, + { + "nr": 133323, + "hash": "35e0fec9c51e5d517b98a2f32c40239486ba9886" + }, + { + "nr": 134379, + "hash": "69e0c4e7a19f8201dd5bf20116510be0a8577ede" + }, + { + "nr": 133841, + "hash": "4d679978f6143a729bb294056b5476c95749b90b" + }, + { + "nr": 133627, + "hash": "85e103c22ad348d8aa7daa872985cf083a9fce04" + }, + { + "nr": 130548, + "hash": "9c16b31c58416d524d570dab8342653d528c6944" + }, + { + "nr": 132663, + "hash": "b0a7a79c164ca1828b3760324bf62401f7de2ee8" + }, + { + "nr": 133742, + "hash": "7ee05da4a29433e453a1df64e0e00d4878066d19" + }, + { + "nr": 133771, + "hash": "9d6f0ddb1e1a43d5e118eaa400605f2644658ea9" + }, + { + "nr": 132798, + "hash": "17663c19e8e824b8fa2669496b2e19421ea13bfd" + }, + { + "nr": 134400, + "hash": "b8df8b39b52c103dca46cf8a16daa6df7afa5f91" + }, + { + "nr": 133190, + "hash": "a4754cecaa52a8c7456f9c37292a8be1f0151d6d" + }, + { + "nr": 133492, + "hash": "1494545cd94f093e06a9b80fe67d0024339d5d15" + }, + { + "nr": 133873, + "hash": "bbdbfb6e93937196cf1dab208bec06241ad0ab2f" + }, + { + "nr": 126979, + "hash": "127438fb4ddc0d24c81c69947c79e9e72d9319c5" + }, + { + "nr": 134294, + "hash": "0251663f8941f3373aaf74b406b98fd434b841ba" + }, + { + "nr": 133357, + "hash": "86f5fa3102d65cfbe3d421ec5e2e2f4594389333" + }, + { + "nr": 130551, + "hash": "ea2222fb7786847b7ba2a2485c2f620560386c33" + }, + { + "nr": 133636, + "hash": "2e8d62eba322262d377111ef202d812966c97c16" + }, + { + "nr": 133415, + "hash": "89ddfa78305377951419abcef299a9aeae4d2274" + }, + { + "nr": 132607, + "hash": "e9fefa21df575cc595da68cd66cec717b2d3894f" + }, + { + "nr": 133883, + "hash": "511ac49eaef21b580bcfe6332f1ff29ca29404f9" + }, + { + "nr": 134178, + "hash": "8e865d0cbc52ae6ef1f43abef662afa79f2961ea" + }, + { + "nr": 134017, + "hash": "2d02b46116dda87f2587f9fd7f2cc0af6bda482d" + }, + { + "nr": 131755, + "hash": "0bf47d894234ac303cdbcd6d9b84ed1311fef63e" + }, + { + "nr": 132550, + "hash": "b068ab0db2162246600768450c0623d217ea7211" + }, + { + "nr": 133917, + "hash": "f95b308a11190864dd91191073e451327c796cc5" + } + ] } \ No newline at end of file diff --git a/releases/release-1.35/release-notes/sessions/maps-1761415847.json b/releases/release-1.35/release-notes/sessions/maps-1761415847.json index 8f130a52a62..766b8893d87 100644 --- a/releases/release-1.35/release-notes/sessions/maps-1761415847.json +++ b/releases/release-1.35/release-notes/sessions/maps-1761415847.json @@ -1,147 +1,147 @@ -{ - "mail": "khang.nguyen@shopify.com", - "name": "NgocPhucKhang Nguyen", - "date": 1761415847, - "prs": [ - { - "nr": 134433, - "hash": "d83f8e9979e502cded0c7dbb2c6c5093d0472a8a" - }, - { - "nr": 134656, - "hash": "cfb664809fcc75a8726dbf1aaec58e38501f4fd5" - }, - { - "nr": 134635, - "hash": "9b52f932f3a14b2c8d65f5e772f7c306546ff01e" - }, - { - "nr": 134614, - "hash": "4724ec1b0ec025f89b31e8c88557d7790501b521" - }, - { - "nr": 133778, - "hash": "3e77ca88a390c9d63b02534ed0be22618d5c9645" - }, - { - "nr": 132927, - "hash": "288db587bce1d358dc3fed4bd9c324133e56de55" - }, - { - "nr": 134654, - "hash": "e096b2e649f08bae1c5ba09e8dad688651bd3426" - }, - { - "nr": 134193, - "hash": "fedc2c79367030f6d1f04c2b8810fdd3ffd79413" - }, - { - "nr": 134715, - "hash": "9750b537e27af1dd7397e6650480e99bdf1315aa" - }, - { - "nr": 134479, - "hash": "c4a0d287df2a27cd05b826a75302377884a5b3a5" - }, - { - "nr": 134481, - "hash": "e435c6c60a8dc78a0772a2d265a3d1faecbd745c" - }, - { - "nr": 134388, - "hash": "d4897cabeda2c5a11726aa2fc2f42f2cede85146" - }, - { - "nr": 134381, - "hash": "806ace01b42eddb0544c132056ef405efce2d3a1" - }, - { - "nr": 134577, - "hash": "033bcc702c8433d8f7f261da1ad3093d905c09fb" - }, - { - "nr": 134611, - "hash": "783e1200ab9b5b6db0de24e67cd94a959fbe4317" - }, - { - "nr": 134685, - "hash": "f9d831e3e3374847dab60d6de06671e637748903" - }, - { - "nr": 133153, - "hash": "b6500fa6160dc6abd079dc113b32ba422fa6a9ff" - }, - { - "nr": 131411, - "hash": "722bad647d94f4410949731a4cc15c898653505b" - }, - { - "nr": 133706, - "hash": "069cb4af5c1da0e05c8e912beb25f23a62231b80" - }, - { - "nr": 134256, - "hash": "af0a10950de7f1b6903b792e4dedbaef0b8170dc" - }, - { - "nr": 134298, - "hash": "851f4e1773f4d957b264eed5f7db0717dd03cdc0" - }, - { - "nr": 134692, - "hash": "c0bd2498e3a3fce869b22d037676d7a947d147af" - }, - { - "nr": 133128, - "hash": "6581dc86e12710f9d8cf564b9caefc7e6e76b71a" - }, - { - "nr": 133721, - "hash": "b911552203a9dd1911bddc6c1cfdcac1d1fc70bd" - }, - { - "nr": 134588, - "hash": "b9f24260fbe1068e2446e3ecbb712b3fa4328824" - }, - { - "nr": 134539, - "hash": "3e5bbd99f98b3204735319b03465f1c66707edac" - }, - { - "nr": 133373, - "hash": "91f3905563f2d1ec1da636bb3682f334b3425114" - }, - { - "nr": 134625, - "hash": "9053f7d46df25a92f166f7a88591f33f1531f9b1" - }, - { - "nr": 134739, - "hash": "5cc28aad7dc798a8fe075f0a848ac62d9a86321c" - }, - { - "nr": 134729, - "hash": "88adf5fb98487d126421a455e41b5175103f315b" - }, - { - "nr": 134598, - "hash": "8b3c733ef4189e1f11dbcb8d1f899206e422b9dd" - }, - { - "nr": 134631, - "hash": "3cff5d6475c221877ab9387ccbff3a4de655f84f" - }, - { - "nr": 133072, - "hash": "ef11087f68c32d7ac4ec14afe12bed3f95ff287e" - }, - { - "nr": 134601, - "hash": "b79a5c7055155e6cefd3c42d59575e52f1e4378a" - }, - { - "nr": 134510, - "hash": "84411a46617365efa33f1dff5d88fc05d130cba4" - } - ] +{ + "mail": "khang.nguyen@shopify.com", + "name": "NgocPhucKhang Nguyen", + "date": 1761415847, + "prs": [ + { + "nr": 134433, + "hash": "d83f8e9979e502cded0c7dbb2c6c5093d0472a8a" + }, + { + "nr": 134656, + "hash": "cfb664809fcc75a8726dbf1aaec58e38501f4fd5" + }, + { + "nr": 134635, + "hash": "9b52f932f3a14b2c8d65f5e772f7c306546ff01e" + }, + { + "nr": 134614, + "hash": "4724ec1b0ec025f89b31e8c88557d7790501b521" + }, + { + "nr": 133778, + "hash": "3e77ca88a390c9d63b02534ed0be22618d5c9645" + }, + { + "nr": 132927, + "hash": "288db587bce1d358dc3fed4bd9c324133e56de55" + }, + { + "nr": 134654, + "hash": "e096b2e649f08bae1c5ba09e8dad688651bd3426" + }, + { + "nr": 134193, + "hash": "fedc2c79367030f6d1f04c2b8810fdd3ffd79413" + }, + { + "nr": 134715, + "hash": "9750b537e27af1dd7397e6650480e99bdf1315aa" + }, + { + "nr": 134479, + "hash": "c4a0d287df2a27cd05b826a75302377884a5b3a5" + }, + { + "nr": 134481, + "hash": "e435c6c60a8dc78a0772a2d265a3d1faecbd745c" + }, + { + "nr": 134388, + "hash": "d4897cabeda2c5a11726aa2fc2f42f2cede85146" + }, + { + "nr": 134381, + "hash": "806ace01b42eddb0544c132056ef405efce2d3a1" + }, + { + "nr": 134577, + "hash": "033bcc702c8433d8f7f261da1ad3093d905c09fb" + }, + { + "nr": 134611, + "hash": "783e1200ab9b5b6db0de24e67cd94a959fbe4317" + }, + { + "nr": 134685, + "hash": "f9d831e3e3374847dab60d6de06671e637748903" + }, + { + "nr": 133153, + "hash": "b6500fa6160dc6abd079dc113b32ba422fa6a9ff" + }, + { + "nr": 131411, + "hash": "722bad647d94f4410949731a4cc15c898653505b" + }, + { + "nr": 133706, + "hash": "069cb4af5c1da0e05c8e912beb25f23a62231b80" + }, + { + "nr": 134256, + "hash": "af0a10950de7f1b6903b792e4dedbaef0b8170dc" + }, + { + "nr": 134298, + "hash": "851f4e1773f4d957b264eed5f7db0717dd03cdc0" + }, + { + "nr": 134692, + "hash": "c0bd2498e3a3fce869b22d037676d7a947d147af" + }, + { + "nr": 133128, + "hash": "6581dc86e12710f9d8cf564b9caefc7e6e76b71a" + }, + { + "nr": 133721, + "hash": "b911552203a9dd1911bddc6c1cfdcac1d1fc70bd" + }, + { + "nr": 134588, + "hash": "b9f24260fbe1068e2446e3ecbb712b3fa4328824" + }, + { + "nr": 134539, + "hash": "3e5bbd99f98b3204735319b03465f1c66707edac" + }, + { + "nr": 133373, + "hash": "91f3905563f2d1ec1da636bb3682f334b3425114" + }, + { + "nr": 134625, + "hash": "9053f7d46df25a92f166f7a88591f33f1531f9b1" + }, + { + "nr": 134739, + "hash": "5cc28aad7dc798a8fe075f0a848ac62d9a86321c" + }, + { + "nr": 134729, + "hash": "88adf5fb98487d126421a455e41b5175103f315b" + }, + { + "nr": 134598, + "hash": "8b3c733ef4189e1f11dbcb8d1f899206e422b9dd" + }, + { + "nr": 134631, + "hash": "3cff5d6475c221877ab9387ccbff3a4de655f84f" + }, + { + "nr": 133072, + "hash": "ef11087f68c32d7ac4ec14afe12bed3f95ff287e" + }, + { + "nr": 134601, + "hash": "b79a5c7055155e6cefd3c42d59575e52f1e4378a" + }, + { + "nr": 134510, + "hash": "84411a46617365efa33f1dff5d88fc05d130cba4" + } + ] } \ No newline at end of file diff --git a/releases/release-1.35/release-notes/sessions/maps-1762418245.json b/releases/release-1.35/release-notes/sessions/maps-1762418245.json index 3aabc43f92b..305255a967d 100644 --- a/releases/release-1.35/release-notes/sessions/maps-1762418245.json +++ b/releases/release-1.35/release-notes/sessions/maps-1762418245.json @@ -1,251 +1,251 @@ -{ - "mail": "78614901+kernel-kun@users.noreply.github.com", - "name": "kernel-kun", - "date": 1762418245, - "prs": [ - { - "nr": 133087, - "hash": "f855dad81db0d990797748923515851a3ab97a73" - }, - { - "nr": 133980, - "hash": "ae0b6170160e4fd7d58cea5f78c8e2148cb515ec" - }, - { - "nr": 134746, - "hash": "bf4f8c75ca7738aa95cf7e89948a5e2654a4df93" - }, - { - "nr": 134378, - "hash": "919c407c1292ac0d632df3d89fa0c04a7d954dae" - }, - { - "nr": 134760, - "hash": "a76fab9d268118ee79fd6e88a556cb66a4042175" - }, - { - "nr": 134709, - "hash": "fddf8090804e1b5f7850ff69f9c56331214a39ce" - }, - { - "nr": 134624, - "hash": "f25d8cfd4975ed418f6df396a783aec5ac66adc5" - }, - { - "nr": 134780, - "hash": "c112c300c875441b0d293a65fda8d215532ab6eb" - }, - { - "nr": 134905, - "hash": "2f0c7bbf25fc4b732793a174eab0c3f759910cba" - }, - { - "nr": 125912, - "hash": "439599776213de864482ee4fe7b5bb9b6a30e142" - }, - { - "nr": 134691, - "hash": "2d16c3351fc7e7b074f80d4f8227744b8d01c7ee" - }, - { - "nr": 132157, - "hash": "4b6b67e622c2117c8e6a8b578811b2522c8b9713" - }, - { - "nr": 134740, - "hash": "807a9ecb25cc6ad922b0e4c1d7f83d5343086f1b" - }, - { - "nr": 134457, - "hash": "557f0d44e22f99c92457f4e34310639a93401648" - }, - { - "nr": 134962, - "hash": "601a8d45bba863d33a6357c38bd1545380dcc434" - }, - { - "nr": 134744, - "hash": "40babfc97077c7449b963761f3e8e9732839c430" - }, - { - "nr": 135080, - "hash": "dea09463c8ae05093ba0f3f9ff452be8968125cc" - }, - { - "nr": 134647, - "hash": "61a32ac4b48a4842917d135cc2f8c91e5ce31d0e" - }, - { - "nr": 134103, - "hash": "704818f823c98d5dfcb78ef39b04720b3ce9762f" - }, - { - "nr": 134779, - "hash": "1c82955157c264b328922ed66372364c1a19fa12" - }, - { - "nr": 134833, - "hash": "b36d76e9b0dc67030c85af38b806df6c4792fd19" - }, - { - "nr": 134793, - "hash": "47d3f8fa55dd1ae0283394bd219c3a5b214a82a3" - }, - { - "nr": 133779, - "hash": "c62683806762e4daa81423057a88adaa1fa1a58e" - }, - { - "nr": 134493, - "hash": "1a23a23951aaccbef2e41dadcf465e49ae57354a" - }, - { - "nr": 134523, - "hash": "aa8dd3771096e429e9192ede79eae59f2a9bf7c7" - }, - { - "nr": 134152, - "hash": "82212eb1e86418f312724a23425e74309daca034" - }, - { - "nr": 123642, - "hash": "4e15c79a06d5899318893c83c093bd061b4a754e" - }, - { - "nr": 134452, - "hash": "72dca89c56786232643bfdedb00eb925974ab298" - }, - { - "nr": 134826, - "hash": "3827e3ba5aa75f251b3c928b37376a78747a9b6e" - }, - { - "nr": 135003, - "hash": "c72ee3b6f4290ce3a4f750e787a35d49fe324d2e" - }, - { - "nr": 134784, - "hash": "c327c8f1577bddedff448adc267bfc4761f7c2f0" - }, - { - "nr": 134803, - "hash": "14a15200fada5dc669d971cba8dcc0762dbd6994" - }, - { - "nr": 135084, - "hash": "87d7e19a29822cceb7760e6a137aad6f83183c08" - }, - { - "nr": 134949, - "hash": "550e871c004bfd08868dfe7321b1a8b43e18ec45" - }, - { - "nr": 135007, - "hash": "5067415c069b1985e66796e5cb1dcb14b137cbd6" - }, - { - "nr": 132644, - "hash": "724a813a5f7a4bf9e101321cedeb73604caf825b" - }, - { - "nr": 134466, - "hash": "e33424cfb19e485b6aff6d95da45e5a0d6f51140" - }, - { - "nr": 134782, - "hash": "748e71e7ea486e7334e0e859a7ec3a7d5502ea53" - }, - { - "nr": 133511, - "hash": "fbadce7055e5246955f60d8c8971ea796cae155b" - }, - { - "nr": 132240, - "hash": "49561f856a5f98dcf5adad8c64090e1cf8c1bb39" - }, - { - "nr": 134263, - "hash": "6e099af61253d416153d2c5a084c177b9740feab" - }, - { - "nr": 134906, - "hash": "7a4bddc5065a84c7e638aaf33459c30bf323c651" - }, - { - "nr": 134964, - "hash": "b2e3bd265aadeb574af83d5bbbd96efe2f575cb9" - }, - { - "nr": 135059, - "hash": "50d0a62748b3985ae491b88e183c27fcadbbfe60" - }, - { - "nr": 134875, - "hash": "914d5ef79f5e978ab5b1e2f740d7f0c2154557c1" - }, - { - "nr": 134984, - "hash": "1c6be9c227e830cff444a7aafebe8e70c61dc44e" - }, - { - "nr": 134445, - "hash": "5d24a811e2552b65f2f7dbe5f5fbb57a22124ca0" - }, - { - "nr": 135017, - "hash": "b6bf2602537e3b830126b86e9742b6405aa9d717" - }, - { - "nr": 134313, - "hash": "467591229f346dc031710cd41626e347e8c4e356" - }, - { - "nr": 134777, - "hash": "647bafcffd0092803f2eda9ff10ac53519432bf1" - }, - { - "nr": 134157, - "hash": "14875227232c07cf55225c725c67e57234ee7f77" - }, - { - "nr": 134743, - "hash": "e9602f52f997891d7852ecbc6925541b99c499ad" - }, - { - "nr": 135081, - "hash": "14bc8fb3cab9fe392f489f547c3e9c8d903536d3" - }, - { - "nr": 134956, - "hash": "d555c47e1434f80106ae5ba4766808220c8d71ed" - }, - { - "nr": 134769, - "hash": "a3537adc7bd06ac179c400090a9f485776656bb2" - }, - { - "nr": 134730, - "hash": "f7da4bb7c968020e98ba48220e878a05a3984621" - }, - { - "nr": 134913, - "hash": "17e6c646f262d50274ddeda41bc9e4eecca5e892" - }, - { - "nr": 134994, - "hash": "d877f0fab359488f5a46defa78f3a512a534c045" - }, - { - "nr": 134948, - "hash": "7578e5d93433a3a9c9d196bb3fceb817db2e3cfa" - }, - { - "nr": 134995, - "hash": "b372316040adab732739d3aa6c01f600aadce8fc" - }, - { - "nr": 134781, - "hash": "89cc238bbd3767cdd3f421da18ce541bb6b538e9" - } - ] +{ + "mail": "78614901+kernel-kun@users.noreply.github.com", + "name": "kernel-kun", + "date": 1762418245, + "prs": [ + { + "nr": 133087, + "hash": "f855dad81db0d990797748923515851a3ab97a73" + }, + { + "nr": 133980, + "hash": "ae0b6170160e4fd7d58cea5f78c8e2148cb515ec" + }, + { + "nr": 134746, + "hash": "bf4f8c75ca7738aa95cf7e89948a5e2654a4df93" + }, + { + "nr": 134378, + "hash": "919c407c1292ac0d632df3d89fa0c04a7d954dae" + }, + { + "nr": 134760, + "hash": "a76fab9d268118ee79fd6e88a556cb66a4042175" + }, + { + "nr": 134709, + "hash": "fddf8090804e1b5f7850ff69f9c56331214a39ce" + }, + { + "nr": 134624, + "hash": "f25d8cfd4975ed418f6df396a783aec5ac66adc5" + }, + { + "nr": 134780, + "hash": "c112c300c875441b0d293a65fda8d215532ab6eb" + }, + { + "nr": 134905, + "hash": "2f0c7bbf25fc4b732793a174eab0c3f759910cba" + }, + { + "nr": 125912, + "hash": "439599776213de864482ee4fe7b5bb9b6a30e142" + }, + { + "nr": 134691, + "hash": "2d16c3351fc7e7b074f80d4f8227744b8d01c7ee" + }, + { + "nr": 132157, + "hash": "4b6b67e622c2117c8e6a8b578811b2522c8b9713" + }, + { + "nr": 134740, + "hash": "807a9ecb25cc6ad922b0e4c1d7f83d5343086f1b" + }, + { + "nr": 134457, + "hash": "557f0d44e22f99c92457f4e34310639a93401648" + }, + { + "nr": 134962, + "hash": "601a8d45bba863d33a6357c38bd1545380dcc434" + }, + { + "nr": 134744, + "hash": "40babfc97077c7449b963761f3e8e9732839c430" + }, + { + "nr": 135080, + "hash": "dea09463c8ae05093ba0f3f9ff452be8968125cc" + }, + { + "nr": 134647, + "hash": "61a32ac4b48a4842917d135cc2f8c91e5ce31d0e" + }, + { + "nr": 134103, + "hash": "704818f823c98d5dfcb78ef39b04720b3ce9762f" + }, + { + "nr": 134779, + "hash": "1c82955157c264b328922ed66372364c1a19fa12" + }, + { + "nr": 134833, + "hash": "b36d76e9b0dc67030c85af38b806df6c4792fd19" + }, + { + "nr": 134793, + "hash": "47d3f8fa55dd1ae0283394bd219c3a5b214a82a3" + }, + { + "nr": 133779, + "hash": "c62683806762e4daa81423057a88adaa1fa1a58e" + }, + { + "nr": 134493, + "hash": "1a23a23951aaccbef2e41dadcf465e49ae57354a" + }, + { + "nr": 134523, + "hash": "aa8dd3771096e429e9192ede79eae59f2a9bf7c7" + }, + { + "nr": 134152, + "hash": "82212eb1e86418f312724a23425e74309daca034" + }, + { + "nr": 123642, + "hash": "4e15c79a06d5899318893c83c093bd061b4a754e" + }, + { + "nr": 134452, + "hash": "72dca89c56786232643bfdedb00eb925974ab298" + }, + { + "nr": 134826, + "hash": "3827e3ba5aa75f251b3c928b37376a78747a9b6e" + }, + { + "nr": 135003, + "hash": "c72ee3b6f4290ce3a4f750e787a35d49fe324d2e" + }, + { + "nr": 134784, + "hash": "c327c8f1577bddedff448adc267bfc4761f7c2f0" + }, + { + "nr": 134803, + "hash": "14a15200fada5dc669d971cba8dcc0762dbd6994" + }, + { + "nr": 135084, + "hash": "87d7e19a29822cceb7760e6a137aad6f83183c08" + }, + { + "nr": 134949, + "hash": "550e871c004bfd08868dfe7321b1a8b43e18ec45" + }, + { + "nr": 135007, + "hash": "5067415c069b1985e66796e5cb1dcb14b137cbd6" + }, + { + "nr": 132644, + "hash": "724a813a5f7a4bf9e101321cedeb73604caf825b" + }, + { + "nr": 134466, + "hash": "e33424cfb19e485b6aff6d95da45e5a0d6f51140" + }, + { + "nr": 134782, + "hash": "748e71e7ea486e7334e0e859a7ec3a7d5502ea53" + }, + { + "nr": 133511, + "hash": "fbadce7055e5246955f60d8c8971ea796cae155b" + }, + { + "nr": 132240, + "hash": "49561f856a5f98dcf5adad8c64090e1cf8c1bb39" + }, + { + "nr": 134263, + "hash": "6e099af61253d416153d2c5a084c177b9740feab" + }, + { + "nr": 134906, + "hash": "7a4bddc5065a84c7e638aaf33459c30bf323c651" + }, + { + "nr": 134964, + "hash": "b2e3bd265aadeb574af83d5bbbd96efe2f575cb9" + }, + { + "nr": 135059, + "hash": "50d0a62748b3985ae491b88e183c27fcadbbfe60" + }, + { + "nr": 134875, + "hash": "914d5ef79f5e978ab5b1e2f740d7f0c2154557c1" + }, + { + "nr": 134984, + "hash": "1c6be9c227e830cff444a7aafebe8e70c61dc44e" + }, + { + "nr": 134445, + "hash": "5d24a811e2552b65f2f7dbe5f5fbb57a22124ca0" + }, + { + "nr": 135017, + "hash": "b6bf2602537e3b830126b86e9742b6405aa9d717" + }, + { + "nr": 134313, + "hash": "467591229f346dc031710cd41626e347e8c4e356" + }, + { + "nr": 134777, + "hash": "647bafcffd0092803f2eda9ff10ac53519432bf1" + }, + { + "nr": 134157, + "hash": "14875227232c07cf55225c725c67e57234ee7f77" + }, + { + "nr": 134743, + "hash": "e9602f52f997891d7852ecbc6925541b99c499ad" + }, + { + "nr": 135081, + "hash": "14bc8fb3cab9fe392f489f547c3e9c8d903536d3" + }, + { + "nr": 134956, + "hash": "d555c47e1434f80106ae5ba4766808220c8d71ed" + }, + { + "nr": 134769, + "hash": "a3537adc7bd06ac179c400090a9f485776656bb2" + }, + { + "nr": 134730, + "hash": "f7da4bb7c968020e98ba48220e878a05a3984621" + }, + { + "nr": 134913, + "hash": "17e6c646f262d50274ddeda41bc9e4eecca5e892" + }, + { + "nr": 134994, + "hash": "d877f0fab359488f5a46defa78f3a512a534c045" + }, + { + "nr": 134948, + "hash": "7578e5d93433a3a9c9d196bb3fceb817db2e3cfa" + }, + { + "nr": 134995, + "hash": "b372316040adab732739d3aa6c01f600aadce8fc" + }, + { + "nr": 134781, + "hash": "89cc238bbd3767cdd3f421da18ce541bb6b538e9" + } + ] } \ No newline at end of file diff --git a/releases/release-1.35/release-team.md b/releases/release-1.35/release-team.md index c8175cdc99e..b5597faaf93 100644 --- a/releases/release-1.35/release-team.md +++ b/releases/release-1.35/release-team.md @@ -1,17 +1,17 @@ -# Kubernetes v1.35 Release Team - -TODO: Update all of this once it becomes clear who is nominated -https://github.com/kubernetes/sig-release/issues/2849 - -| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | -| ----------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------- | -| Release Team Lead | Drew Hagen ([@drewhagen](https://github.com/drewhagen) / Slack: `@Drew Hagen`) | Jenny Shu ([@jenshu](https://github.com/jenshu) / Slack: `@Jenny Shu`), Rajalakshmi Girish ( [@Rajalakshmi-Girish](https://github.com/Rajalakshmi-Girish) / Slack: `@Rajalakshmi Girish` ), Ryota Sawada ([@rytswd](https://github.com/rytswd) / Slack: `@Ryota`), Dipesh Rawat ([@dipesh-rawat](https://github.com/dipesh-rawat), Slack: `@Dipesh`) | -| Enhancements | Rayan Das ([@rayandas](https://github.com/rayandas), Slack: `@rayandas`) | Daniel Chan ([@chanieljdan](https://github.com/chanieljdan) / Slack: `@dchan`), Agustina Barbetta ([@aibarbetta](https://github.com/aibarbetta) / Slack: `@aibarbetta`), Faeka Ansari ([@fykaa](https://github.com/fykaa) / Slack: `@fyka`), Subhasmita Swain ([@whtssub](https://github.com/whtssub) / Slack: `@subhasmita`), Josh Michielsen ([jmickey](https://github.com/jmickey) / Slack: `@jmickey`) -| Communications | Graziano Casto ([@graz-dev](https://github.com/graz-dev), Slack: `@Graziano Casto`) | Chad M. Crowell ([@chadmcrowell](https://github.com/chadmcrowell) / Slack: `@chad`), Aakanksha Bhende ( [@aakankshabhende](https://github.com/aakankshabhende) / Slack: `@aakankshabhende` ), Swathi Rao ([@SwathiR03](https://github.com/SwathiR03) / Slack: `@Swathi Rao`), Arujjwal Negi ([@arujjval](https://github.com/arujjval), Slack: `@Arujjwal`) | -| Release Signal | ChengHao Yang ([@tico88612](https://github.com/tico88612), Slack: `@ChengHao Yang (tico88612)`) | Amim Knabben ([@knabben](https://github.com/knabben), Slack: `@Amim Knabben`), Ben Petersen ([@benjaminapetersen](https://github.com/benjaminapetersen), Slack: `@Ben Petersen`), Keisuke Ishigami ([@kei01234kei](https://github.com/kei01234kei), Slack: `@Keisuke Ishigami`), Muhammad Adil Ghaffar ([@adilGhaffarDev](https://github.com/adilGhaffarDev), Slack: `@muhammad adil ghaffar`), Prajyot Parab ([@Prajyot-Parab](https://github.com/Prajyot-Parab), Slack: `@Prajyot Parab`), Yun Chi Shih ([@yunchi0921](https://github.com/yunchi0921), Slack: `@Archie`) | -| Docs | Urvashi Choubey ([@Urvashi0109](https://github.com/Urvashi0109), Slack: `@Urvashi`) | Tushar Mittal ([@kernel-kun](https://github.com/kernel-kun) / Slack: `@kernel-kun`), Sayan Chowdhury ([@sayanchowdhury](https://github.com/sayanchowdhury) / Slack: `@yudocaa`), Anshuman Tripathi ([@AnshumanTripathi](https://github.com/AnshumanTripathi) / Slack: `@anshuman`), Khang Nguyen ([@Jimmykhangnguyen](https://github.com/Jimmykhangnguyen) / Slack: `@Khang Nguyen`), Orlin Vasilev ([@OrlinVasilev](https://github.com/OrlinVasilev) / Slack: `@Orlix`) | -| Branch Manager | TBD | TBD | - -Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. - -The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include v1.35, once the v1.35 release cycle concludes. +# Kubernetes v1.35 Release Team + +TODO: Update all of this once it becomes clear who is nominated +https://github.com/kubernetes/sig-release/issues/2849 + +| **Team/Role** | **Lead Name** (**GitHub / Slack ID**) | **Shadow Name(s) (GitHub / Slack ID)** | +| ----------------- | ----------------------------------------------------------------------------------------------- | -------------------------------------- | +| Release Team Lead | Drew Hagen ([@drewhagen](https://github.com/drewhagen) / Slack: `@Drew Hagen`) | Jenny Shu ([@jenshu](https://github.com/jenshu) / Slack: `@Jenny Shu`), Rajalakshmi Girish ( [@Rajalakshmi-Girish](https://github.com/Rajalakshmi-Girish) / Slack: `@Rajalakshmi Girish` ), Ryota Sawada ([@rytswd](https://github.com/rytswd) / Slack: `@Ryota`), Dipesh Rawat ([@dipesh-rawat](https://github.com/dipesh-rawat), Slack: `@Dipesh`) | +| Enhancements | Rayan Das ([@rayandas](https://github.com/rayandas), Slack: `@rayandas`) | Daniel Chan ([@chanieljdan](https://github.com/chanieljdan) / Slack: `@dchan`), Agustina Barbetta ([@aibarbetta](https://github.com/aibarbetta) / Slack: `@aibarbetta`), Faeka Ansari ([@fykaa](https://github.com/fykaa) / Slack: `@fyka`), Subhasmita Swain ([@whtssub](https://github.com/whtssub) / Slack: `@subhasmita`), Josh Michielsen ([jmickey](https://github.com/jmickey) / Slack: `@jmickey`) +| Communications | Graziano Casto ([@graz-dev](https://github.com/graz-dev), Slack: `@Graziano Casto`) | Chad M. Crowell ([@chadmcrowell](https://github.com/chadmcrowell) / Slack: `@chad`), Aakanksha Bhende ( [@aakankshabhende](https://github.com/aakankshabhende) / Slack: `@aakankshabhende` ), Swathi Rao ([@SwathiR03](https://github.com/SwathiR03) / Slack: `@Swathi Rao`), Arujjwal Negi ([@arujjval](https://github.com/arujjval), Slack: `@Arujjwal`) | +| Release Signal | ChengHao Yang ([@tico88612](https://github.com/tico88612), Slack: `@ChengHao Yang (tico88612)`) | Amim Knabben ([@knabben](https://github.com/knabben), Slack: `@Amim Knabben`), Ben Petersen ([@benjaminapetersen](https://github.com/benjaminapetersen), Slack: `@Ben Petersen`), Keisuke Ishigami ([@kei01234kei](https://github.com/kei01234kei), Slack: `@Keisuke Ishigami`), Muhammad Adil Ghaffar ([@adilGhaffarDev](https://github.com/adilGhaffarDev), Slack: `@muhammad adil ghaffar`), Prajyot Parab ([@Prajyot-Parab](https://github.com/Prajyot-Parab), Slack: `@Prajyot Parab`), Yun Chi Shih ([@yunchi0921](https://github.com/yunchi0921), Slack: `@Archie`) | +| Docs | Urvashi Choubey ([@Urvashi0109](https://github.com/Urvashi0109), Slack: `@Urvashi`) | Tushar Mittal ([@kernel-kun](https://github.com/kernel-kun) / Slack: `@kernel-kun`), Sayan Chowdhury ([@sayanchowdhury](https://github.com/sayanchowdhury) / Slack: `@yudocaa`), Anshuman Tripathi ([@AnshumanTripathi](https://github.com/AnshumanTripathi) / Slack: `@anshuman`), Khang Nguyen ([@Jimmykhangnguyen](https://github.com/Jimmykhangnguyen) / Slack: `@Khang Nguyen`), Orlin Vasilev ([@OrlinVasilev](https://github.com/OrlinVasilev) / Slack: `@Orlix`) | +| Branch Manager | TBD | TBD | + +Review the [Release Managers page](https://github.com/kubernetes/website/blob/main/content/en/releases/release-managers.md) for up-to-date contact information on Release Engineering personnel. + +The schedule for all patch releases can be found at [Patch Releases page](https://github.com/kubernetes/website/blob/main/content/en/releases/patch-releases.md). It will be updated to include v1.35, once the v1.35 release cycle concludes. diff --git a/releases/release-1.35/schedule.ics b/releases/release-1.35/schedule.ics index a1be6664d9f..6082f65f580 100644 --- a/releases/release-1.35/schedule.ics +++ b/releases/release-1.35/schedule.ics @@ -1,408 +1,408 @@ -BEGIN:VCALENDAR -VERSION:2.0 -PRODID:-//Kubernetes SIG Release//Kubernetes v1.35 Release Schedule//EN -CALSCALE:GREGORIAN -METHOD:PUBLISH - -BEGIN:VEVENT -UID:k8s-v1.35-release-cycle-start@kubernetes.io -DTSTART;VALUE=DATE:20250915 -DTEND;VALUE=DATE:20250916 -SUMMARY:🚀 Kubernetes v1.35 Release Cycle Begins -DESCRIPTION:Week 1 - Release cycle begins\n\nStart of Release Cycle and Enhancements Tracking -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-schedule-finalized@kubernetes.io -DTSTART;VALUE=DATE:20250919 -DTEND;VALUE=DATE:20250920 -SUMMARY:📋 Schedule & Team Finalized -DESCRIPTION:Week 1 - Schedule and team finalized -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-apac-meetings@kubernetes.io -DTSTART;VALUE=DATE:20250924 -DTEND;VALUE=DATE:20250925 -SUMMARY:🌏 Begin APAC-Friendly Meetings -DESCRIPTION:Week 2 - Begin APAC-friendly meetings -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-release-notes-draft@kubernetes.io -DTSTART;VALUE=DATE:20251001 -DTEND;VALUE=DATE:20251002 -SUMMARY:📝 Start Release Notes Draft -DESCRIPTION:Week 3 - Docs Lead starts release notes draft -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-exceptions-call-1@kubernetes.io -DTSTART;VALUE=DATE:20251002 -DTEND;VALUE=DATE:20251003 -SUMMARY:⚠️ Call for PRR & Enhancement Freeze Exceptions -DESCRIPTION:Week 3 - Call for Production Readiness and Enhancement Freeze exceptions -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-alpha1@kubernetes.io -DTSTART;VALUE=DATE:20251008 -DTEND;VALUE=DATE:20251009 -SUMMARY:🏷️ v1.35.0-alpha.1 Released -DESCRIPTION:Week 4 - First alpha release -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-prr-freeze@kubernetes.io -DTSTART:20251010T120000Z -DTEND:20251010T120000Z -SUMMARY:🚨 Production Readiness Freeze (PRR) -DESCRIPTION:Week 4 - CRITICAL DEADLINE\n\nProduction Readiness Freeze begins\nDeadline: Thursday Oct 9 (AoE)\nUTC Cutoff: Friday Oct 10 at 12:00 UTC -LOCATION: -STATUS:CONFIRMED -TRANSP:OPAQUE -BEGIN:VALARM -ACTION:DISPLAY -DESCRIPTION:PRR Freeze in 2 days! -TRIGGER:-P2D -END:VALARM -BEGIN:VALARM -ACTION:DISPLAY -DESCRIPTION:PRR Freeze TOMORROW! -TRIGGER:-P1D -END:VALARM -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-enhancements-freeze@kubernetes.io -DTSTART:20251017T120000Z -DTEND:20251017T120000Z -SUMMARY:🚨 Enhancements Freeze -DESCRIPTION:Week 5 - CRITICAL DEADLINE\n\nEnhancements Freeze begins\nDeadline: Thursday Oct 16 (AoE)\nUTC Cutoff: Friday Oct 17 at 12:00 UTC -LOCATION: -STATUS:CONFIRMED -TRANSP:OPAQUE -BEGIN:VALARM -ACTION:DISPLAY -DESCRIPTION:Enhancements Freeze in 2 days! -TRIGGER:-P2D -END:VALARM -BEGIN:VALARM -ACTION:DISPLAY -DESCRIPTION:Enhancements Freeze TOMORROW! -TRIGGER:-P1D -END:VALARM -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-alpha2@kubernetes.io -DTSTART;VALUE=DATE:20251022 -DTEND;VALUE=DATE:20251023 -SUMMARY:🏷️ v1.35.0-alpha.2 Released -DESCRIPTION:Week 6 - Second alpha release -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-docs-placeholder@kubernetes.io -DTSTART;VALUE=DATE:20251023 -DTEND;VALUE=DATE:20251024 -SUMMARY:📄 Docs: Open Placeholder PRs -DESCRIPTION:Week 6 - Docs deadline for opening placeholder PRs -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-code-freeze-warning@kubernetes.io -DTSTART;VALUE=DATE:20251027 -DTEND;VALUE=DATE:20251028 -SUMMARY:❄️ Brace Yourself, Code Freeze is Coming -DESCRIPTION:Week 7 - Communications warning about upcoming code freeze -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-feature-blog-freeze@kubernetes.io -DTSTART:20251031T120000Z -DTEND:20251031T120000Z -SUMMARY:🚨 Feature Blog Freeze -DESCRIPTION:Week 7 - CRITICAL DEADLINE\n\nFeature Blog Freeze begins - Open placeholder PRs\nDeadline: Thursday Oct 30 (AoE)\nUTC Cutoff: Friday Oct 31 at 12:00 UTC -LOCATION: -STATUS:CONFIRMED -TRANSP:OPAQUE -BEGIN:VALARM -ACTION:DISPLAY -DESCRIPTION:Feature Blog Freeze in 2 days! -TRIGGER:-P2D -END:VALARM -BEGIN:VALARM -ACTION:DISPLAY -DESCRIPTION:Feature Blog Freeze TOMORROW! -TRIGGER:-P1D -END:VALARM -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-exceptions-call-2@kubernetes.io -DTSTART;VALUE=DATE:20251031 -DTEND;VALUE=DATE:20251101 -SUMMARY:⚠️ Call for Code Freeze Exceptions -DESCRIPTION:Week 7 - Call for Code Freeze exceptions -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-alpha3@kubernetes.io -DTSTART;VALUE=DATE:20251105 -DTEND;VALUE=DATE:20251106 -SUMMARY:🏷️ v1.35.0-alpha.3 Released -DESCRIPTION:Week 8 - Third alpha release -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-code-freeze@kubernetes.io -DTSTART:20251107T120000Z -DTEND:20251107T120000Z -SUMMARY:🚨 Code & Test Freeze -DESCRIPTION:Week 8 - CRITICAL DEADLINE\n\nCode Freeze and Test Freeze begins\nDeadline: Thursday Nov 6 (AoE)\nUTC Cutoff: Friday Nov 7 at 12:00 UTC -LOCATION: -STATUS:CONFIRMED -TRANSP:OPAQUE -BEGIN:VALARM -ACTION:DISPLAY -DESCRIPTION:Code & Test Freeze in 2 days! -TRIGGER:-P2D -END:VALARM -BEGIN:VALARM -ACTION:DISPLAY -DESCRIPTION:Code & Test Freeze TOMORROW! -TRIGGER:-P1D -END:VALARM -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-kubecon@kubernetes.io -DTSTART;VALUE=DATE:20251110 -DTEND;VALUE=DATE:20251114 -SUMMARY:🎤 KubeCon CloudNativeCon North America -DESCRIPTION:Week 9 - KubeCon NA (Salt Lake City) -LOCATION:Salt Lake City, UT -STATUS:CONFIRMED -TRANSP:OPAQUE -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-burndown-start@kubernetes.io -DTSTART;VALUE=DATE:20251117 -DTEND;VALUE=DATE:20251118 -SUMMARY:🔥 Begin Burndown Meetings -DESCRIPTION:Week 10 - Begin Burndown (Monday, Wednesday, and Friday meetings) -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-docs-review@kubernetes.io -DTSTART;VALUE=DATE:20251118 -DTEND;VALUE=DATE:20251119 -SUMMARY:📄 Docs: PRs Ready for Review -DESCRIPTION:Week 10 - Docs deadline for PRs ready for review -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-release-highlights@kubernetes.io -DTSTART;VALUE=DATE:20251118 -DTEND;VALUE=DATE:20251119 -SUMMARY:✨ Release Highlights Deadline -DESCRIPTION:Week 10 - Release Highlights deadline -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-beta0@kubernetes.io -DTSTART;VALUE=DATE:20251119 -DTEND;VALUE=DATE:20251120 -SUMMARY:🏷️ v1.35.0-beta.0 Released -DESCRIPTION:Week 10 - First beta release -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-release-blog-review@kubernetes.io -DTSTART:20251121T120000Z -DTEND:20251121T120000Z -SUMMARY:📝 Release Blog Ready to Review -DESCRIPTION:Week 10 - Release blog ready to review\nDeadline: Thursday Nov 20 (AoE)\nUTC Cutoff: Friday Nov 21 at 12:00 UTC -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -BEGIN:VALARM -ACTION:DISPLAY -DESCRIPTION:Release Blog Review deadline TOMORROW! -TRIGGER:-P1D -END:VALARM -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-feature-blogs-review@kubernetes.io -DTSTART;VALUE=DATE:20251124 -DTEND;VALUE=DATE:20251125 -SUMMARY:📚 Feature Blogs Ready to Review -DESCRIPTION:Week 11 - Feature blogs ready to review -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-daily-burndown@kubernetes.io -DTSTART;VALUE=DATE:20251124 -DTEND;VALUE=DATE:20251125 -SUMMARY:🔥 Daily Burndown Meetings Begin -DESCRIPTION:Week 11 - Burndown meetings daily (Tuesday & Thursday over Slack) -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-branch-created@kubernetes.io -DTSTART;VALUE=DATE:20251202 -DTEND;VALUE=DATE:20251203 -SUMMARY:🌿 release-1.35 Branch Created -DESCRIPTION:Week 12 - Release branch and jobs created\nStart final draft of Release Notes -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-docs-freeze@kubernetes.io -DTSTART:20251203T120000Z -DTEND:20251203T120000Z -SUMMARY:🚨 Docs Freeze -DESCRIPTION:Week 12 - CRITICAL DEADLINE\n\nDocs Freeze begins\nDeadline: Tuesday Dec 2 (AoE)\nUTC Cutoff: Wednesday Dec 3 at 12:00 UTC -LOCATION: -STATUS:CONFIRMED -TRANSP:OPAQUE -BEGIN:VALARM -ACTION:DISPLAY -DESCRIPTION:Docs Freeze in 2 days! -TRIGGER:-P2D -END:VALARM -BEGIN:VALARM -ACTION:DISPLAY -DESCRIPTION:Docs Freeze TOMORROW! -TRIGGER:-P1D -END:VALARM -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-rc0@kubernetes.io -DTSTART;VALUE=DATE:20251202 -DTEND;VALUE=DATE:20251203 -SUMMARY:🏷️ v1.35.0-rc.0 Released -DESCRIPTION:Week 12 - First release candidate -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-rc1@kubernetes.io -DTSTART;VALUE=DATE:20251209 -DTEND;VALUE=DATE:20251210 -SUMMARY:🏷️ v1.35.0-rc.1 Released -DESCRIPTION:Week 13 - Second release candidate -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-release-highlights-complete@kubernetes.io -DTSTART;VALUE=DATE:20251209 -DTEND;VALUE=DATE:20251210 -SUMMARY:✨ Release Highlights Complete -DESCRIPTION:Week 13 - Release Highlights complete -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-release-notes-complete@kubernetes.io -DTSTART;VALUE=DATE:20251217 -DTEND;VALUE=DATE:20251218 -SUMMARY:📝 Release Notes Complete -DESCRIPTION:Week 14 - Release Notes complete and merged -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-release@kubernetes.io -DTSTART;VALUE=DATE:20251217 -DTEND;VALUE=DATE:20251218 -SUMMARY:🎉 Kubernetes v1.35.0 RELEASED! -DESCRIPTION:Week 14 - KUBERNETES v1.35.0 RELEASE DAY!\n\nRelease blog published -LOCATION: -STATUS:CONFIRMED -TRANSP:OPAQUE -BEGIN:VALARM -ACTION:DISPLAY -DESCRIPTION:🎉 Kubernetes v1.35.0 Release Day! -TRIGGER:PT0M -END:VALARM -END:VEVENT - -BEGIN:VEVENT -UID:k8s-v1.35-thaw@kubernetes.io -DTSTART;VALUE=DATE:20251218 -DTEND;VALUE=DATE:20251219 -SUMMARY:🌞 Thaw - Release Complete -DESCRIPTION:Week 14 - Thaw begins\nFeature blog publication starts -LOCATION: -STATUS:CONFIRMED -TRANSP:TRANSPARENT -END:VEVENT - -END:VCALENDAR +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:-//Kubernetes SIG Release//Kubernetes v1.35 Release Schedule//EN +CALSCALE:GREGORIAN +METHOD:PUBLISH + +BEGIN:VEVENT +UID:k8s-v1.35-release-cycle-start@kubernetes.io +DTSTART;VALUE=DATE:20250915 +DTEND;VALUE=DATE:20250916 +SUMMARY:🚀 Kubernetes v1.35 Release Cycle Begins +DESCRIPTION:Week 1 - Release cycle begins\n\nStart of Release Cycle and Enhancements Tracking +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-schedule-finalized@kubernetes.io +DTSTART;VALUE=DATE:20250919 +DTEND;VALUE=DATE:20250920 +SUMMARY:📋 Schedule & Team Finalized +DESCRIPTION:Week 1 - Schedule and team finalized +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-apac-meetings@kubernetes.io +DTSTART;VALUE=DATE:20250924 +DTEND;VALUE=DATE:20250925 +SUMMARY:🌏 Begin APAC-Friendly Meetings +DESCRIPTION:Week 2 - Begin APAC-friendly meetings +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-release-notes-draft@kubernetes.io +DTSTART;VALUE=DATE:20251001 +DTEND;VALUE=DATE:20251002 +SUMMARY:📝 Start Release Notes Draft +DESCRIPTION:Week 3 - Docs Lead starts release notes draft +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-exceptions-call-1@kubernetes.io +DTSTART;VALUE=DATE:20251002 +DTEND;VALUE=DATE:20251003 +SUMMARY:⚠️ Call for PRR & Enhancement Freeze Exceptions +DESCRIPTION:Week 3 - Call for Production Readiness and Enhancement Freeze exceptions +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-alpha1@kubernetes.io +DTSTART;VALUE=DATE:20251008 +DTEND;VALUE=DATE:20251009 +SUMMARY:🏷️ v1.35.0-alpha.1 Released +DESCRIPTION:Week 4 - First alpha release +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-prr-freeze@kubernetes.io +DTSTART:20251010T120000Z +DTEND:20251010T120000Z +SUMMARY:🚨 Production Readiness Freeze (PRR) +DESCRIPTION:Week 4 - CRITICAL DEADLINE\n\nProduction Readiness Freeze begins\nDeadline: Thursday Oct 9 (AoE)\nUTC Cutoff: Friday Oct 10 at 12:00 UTC +LOCATION: +STATUS:CONFIRMED +TRANSP:OPAQUE +BEGIN:VALARM +ACTION:DISPLAY +DESCRIPTION:PRR Freeze in 2 days! +TRIGGER:-P2D +END:VALARM +BEGIN:VALARM +ACTION:DISPLAY +DESCRIPTION:PRR Freeze TOMORROW! +TRIGGER:-P1D +END:VALARM +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-enhancements-freeze@kubernetes.io +DTSTART:20251017T120000Z +DTEND:20251017T120000Z +SUMMARY:🚨 Enhancements Freeze +DESCRIPTION:Week 5 - CRITICAL DEADLINE\n\nEnhancements Freeze begins\nDeadline: Thursday Oct 16 (AoE)\nUTC Cutoff: Friday Oct 17 at 12:00 UTC +LOCATION: +STATUS:CONFIRMED +TRANSP:OPAQUE +BEGIN:VALARM +ACTION:DISPLAY +DESCRIPTION:Enhancements Freeze in 2 days! +TRIGGER:-P2D +END:VALARM +BEGIN:VALARM +ACTION:DISPLAY +DESCRIPTION:Enhancements Freeze TOMORROW! +TRIGGER:-P1D +END:VALARM +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-alpha2@kubernetes.io +DTSTART;VALUE=DATE:20251022 +DTEND;VALUE=DATE:20251023 +SUMMARY:🏷️ v1.35.0-alpha.2 Released +DESCRIPTION:Week 6 - Second alpha release +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-docs-placeholder@kubernetes.io +DTSTART;VALUE=DATE:20251023 +DTEND;VALUE=DATE:20251024 +SUMMARY:📄 Docs: Open Placeholder PRs +DESCRIPTION:Week 6 - Docs deadline for opening placeholder PRs +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-code-freeze-warning@kubernetes.io +DTSTART;VALUE=DATE:20251027 +DTEND;VALUE=DATE:20251028 +SUMMARY:❄️ Brace Yourself, Code Freeze is Coming +DESCRIPTION:Week 7 - Communications warning about upcoming code freeze +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-feature-blog-freeze@kubernetes.io +DTSTART:20251031T120000Z +DTEND:20251031T120000Z +SUMMARY:🚨 Feature Blog Freeze +DESCRIPTION:Week 7 - CRITICAL DEADLINE\n\nFeature Blog Freeze begins - Open placeholder PRs\nDeadline: Thursday Oct 30 (AoE)\nUTC Cutoff: Friday Oct 31 at 12:00 UTC +LOCATION: +STATUS:CONFIRMED +TRANSP:OPAQUE +BEGIN:VALARM +ACTION:DISPLAY +DESCRIPTION:Feature Blog Freeze in 2 days! +TRIGGER:-P2D +END:VALARM +BEGIN:VALARM +ACTION:DISPLAY +DESCRIPTION:Feature Blog Freeze TOMORROW! +TRIGGER:-P1D +END:VALARM +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-exceptions-call-2@kubernetes.io +DTSTART;VALUE=DATE:20251031 +DTEND;VALUE=DATE:20251101 +SUMMARY:⚠️ Call for Code Freeze Exceptions +DESCRIPTION:Week 7 - Call for Code Freeze exceptions +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-alpha3@kubernetes.io +DTSTART;VALUE=DATE:20251105 +DTEND;VALUE=DATE:20251106 +SUMMARY:🏷️ v1.35.0-alpha.3 Released +DESCRIPTION:Week 8 - Third alpha release +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-code-freeze@kubernetes.io +DTSTART:20251107T120000Z +DTEND:20251107T120000Z +SUMMARY:🚨 Code & Test Freeze +DESCRIPTION:Week 8 - CRITICAL DEADLINE\n\nCode Freeze and Test Freeze begins\nDeadline: Thursday Nov 6 (AoE)\nUTC Cutoff: Friday Nov 7 at 12:00 UTC +LOCATION: +STATUS:CONFIRMED +TRANSP:OPAQUE +BEGIN:VALARM +ACTION:DISPLAY +DESCRIPTION:Code & Test Freeze in 2 days! +TRIGGER:-P2D +END:VALARM +BEGIN:VALARM +ACTION:DISPLAY +DESCRIPTION:Code & Test Freeze TOMORROW! +TRIGGER:-P1D +END:VALARM +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-kubecon@kubernetes.io +DTSTART;VALUE=DATE:20251110 +DTEND;VALUE=DATE:20251114 +SUMMARY:🎤 KubeCon CloudNativeCon North America +DESCRIPTION:Week 9 - KubeCon NA (Salt Lake City) +LOCATION:Salt Lake City, UT +STATUS:CONFIRMED +TRANSP:OPAQUE +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-burndown-start@kubernetes.io +DTSTART;VALUE=DATE:20251117 +DTEND;VALUE=DATE:20251118 +SUMMARY:🔥 Begin Burndown Meetings +DESCRIPTION:Week 10 - Begin Burndown (Monday, Wednesday, and Friday meetings) +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-docs-review@kubernetes.io +DTSTART;VALUE=DATE:20251118 +DTEND;VALUE=DATE:20251119 +SUMMARY:📄 Docs: PRs Ready for Review +DESCRIPTION:Week 10 - Docs deadline for PRs ready for review +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-release-highlights@kubernetes.io +DTSTART;VALUE=DATE:20251118 +DTEND;VALUE=DATE:20251119 +SUMMARY:✨ Release Highlights Deadline +DESCRIPTION:Week 10 - Release Highlights deadline +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-beta0@kubernetes.io +DTSTART;VALUE=DATE:20251119 +DTEND;VALUE=DATE:20251120 +SUMMARY:🏷️ v1.35.0-beta.0 Released +DESCRIPTION:Week 10 - First beta release +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-release-blog-review@kubernetes.io +DTSTART:20251121T120000Z +DTEND:20251121T120000Z +SUMMARY:📝 Release Blog Ready to Review +DESCRIPTION:Week 10 - Release blog ready to review\nDeadline: Thursday Nov 20 (AoE)\nUTC Cutoff: Friday Nov 21 at 12:00 UTC +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +BEGIN:VALARM +ACTION:DISPLAY +DESCRIPTION:Release Blog Review deadline TOMORROW! +TRIGGER:-P1D +END:VALARM +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-feature-blogs-review@kubernetes.io +DTSTART;VALUE=DATE:20251124 +DTEND;VALUE=DATE:20251125 +SUMMARY:📚 Feature Blogs Ready to Review +DESCRIPTION:Week 11 - Feature blogs ready to review +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-daily-burndown@kubernetes.io +DTSTART;VALUE=DATE:20251124 +DTEND;VALUE=DATE:20251125 +SUMMARY:🔥 Daily Burndown Meetings Begin +DESCRIPTION:Week 11 - Burndown meetings daily (Tuesday & Thursday over Slack) +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-branch-created@kubernetes.io +DTSTART;VALUE=DATE:20251202 +DTEND;VALUE=DATE:20251203 +SUMMARY:🌿 release-1.35 Branch Created +DESCRIPTION:Week 12 - Release branch and jobs created\nStart final draft of Release Notes +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-docs-freeze@kubernetes.io +DTSTART:20251203T120000Z +DTEND:20251203T120000Z +SUMMARY:🚨 Docs Freeze +DESCRIPTION:Week 12 - CRITICAL DEADLINE\n\nDocs Freeze begins\nDeadline: Tuesday Dec 2 (AoE)\nUTC Cutoff: Wednesday Dec 3 at 12:00 UTC +LOCATION: +STATUS:CONFIRMED +TRANSP:OPAQUE +BEGIN:VALARM +ACTION:DISPLAY +DESCRIPTION:Docs Freeze in 2 days! +TRIGGER:-P2D +END:VALARM +BEGIN:VALARM +ACTION:DISPLAY +DESCRIPTION:Docs Freeze TOMORROW! +TRIGGER:-P1D +END:VALARM +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-rc0@kubernetes.io +DTSTART;VALUE=DATE:20251202 +DTEND;VALUE=DATE:20251203 +SUMMARY:🏷️ v1.35.0-rc.0 Released +DESCRIPTION:Week 12 - First release candidate +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-rc1@kubernetes.io +DTSTART;VALUE=DATE:20251209 +DTEND;VALUE=DATE:20251210 +SUMMARY:🏷️ v1.35.0-rc.1 Released +DESCRIPTION:Week 13 - Second release candidate +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-release-highlights-complete@kubernetes.io +DTSTART;VALUE=DATE:20251209 +DTEND;VALUE=DATE:20251210 +SUMMARY:✨ Release Highlights Complete +DESCRIPTION:Week 13 - Release Highlights complete +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-release-notes-complete@kubernetes.io +DTSTART;VALUE=DATE:20251217 +DTEND;VALUE=DATE:20251218 +SUMMARY:📝 Release Notes Complete +DESCRIPTION:Week 14 - Release Notes complete and merged +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-release@kubernetes.io +DTSTART;VALUE=DATE:20251217 +DTEND;VALUE=DATE:20251218 +SUMMARY:🎉 Kubernetes v1.35.0 RELEASED! +DESCRIPTION:Week 14 - KUBERNETES v1.35.0 RELEASE DAY!\n\nRelease blog published +LOCATION: +STATUS:CONFIRMED +TRANSP:OPAQUE +BEGIN:VALARM +ACTION:DISPLAY +DESCRIPTION:🎉 Kubernetes v1.35.0 Release Day! +TRIGGER:PT0M +END:VALARM +END:VEVENT + +BEGIN:VEVENT +UID:k8s-v1.35-thaw@kubernetes.io +DTSTART;VALUE=DATE:20251218 +DTEND;VALUE=DATE:20251219 +SUMMARY:🌞 Thaw - Release Complete +DESCRIPTION:Week 14 - Thaw begins\nFeature blog publication starts +LOCATION: +STATUS:CONFIRMED +TRANSP:TRANSPARENT +END:VEVENT + +END:VCALENDAR diff --git a/releases/release-1.4/README.md b/releases/release-1.4/README.md index fdc9af1523f..3fd11ecde64 100644 --- a/releases/release-1.4/README.md +++ b/releases/release-1.4/README.md @@ -1,48 +1,48 @@ -#A Brief History -- Kubernetes 1.0 - July 21, 2015 -- Kubernetes 1.1 - November 9, 2015 (+3mo19d or 15w6d) -- Kubernetes 1.2 - March 17, 2016 (+4mo8d or 18w3d - included holidays) -- Kubernetes 1.3 - July 1, 2016 (+3mo14d or 15w1d) - -#Proposed timeline -Kubernetes 1.3 ships June 24 ([schedule](/releases/release-1.3/release-1.3.md)) (actual was July 1). To land 2 more releases in 2016, we should aim for 1.5 in early December (late December is a holiday period), and work back. December 9 is a decent choice (and allows slip without landing during the holidays, if absolutely necessary). - -A proposal so far has been to not immediately enter 1.4 after 1.3, and to actually build in a week for focusing on flakes and testing across our dev community. - -To fit these milestones in, the best format appears to be 7w of coding, 4w of stabilization/release. 1.3 was 9w coding and 5w of stabilization. - -Going from 14w to 11w per release seems feasible if we hold feature complete strongly (as we did for the first time in 1.3) and we make significant test/flake/queue investments (which we plan to do/are doing). It also means if a given feature misses feature complete for 1.4, 1.5 isn't quite as far away, so it's a bit less painful. - -###1.4 Overview -- June 27 flake week (1w) -- July 3 coding start (7w) -- Aug 19 feature complete, move to bugfix (4w) (Aug 17 update, FC moved one business day to Aug 22) -- Sept 20 release - -###1.5 Overview -- Sept 19 coding start (7w) -- Nov 7 feature complete, move to bugfix (5w, includes US Thanksgiving holiday) -- Dec 8 release - -##1.4 Details - -###June 27 - July 1 -- Flake and test fix-it week - -###July 3 - Aug 19 -- 7 week coding period -- Release 1.4 alphas every 2 weeks - -###Aug 22 - Sept 2 -- Enter code slush on head, no more features or major refactors -- Fix bugs and run tests -- Start Milestone Burndown meetings -- Branch and cut Beta release on Sept 2 - -###Sept 5 - Sept 20 -- Open head for 1.5 work on Sept 5, after branch -- Fix bugs and run tests, update docs -- Release 1.4 on Sept 20 - -#Key features -[Feature tracking spreadsheet](https://docs.google.com/spreadsheets/d/1MeTQbtSiTCoQ74zjEGRI1rXRSP0Tzmo9-kMJSK_HGoA/edit?usp=sharing) +#A Brief History +- Kubernetes 1.0 - July 21, 2015 +- Kubernetes 1.1 - November 9, 2015 (+3mo19d or 15w6d) +- Kubernetes 1.2 - March 17, 2016 (+4mo8d or 18w3d - included holidays) +- Kubernetes 1.3 - July 1, 2016 (+3mo14d or 15w1d) + +#Proposed timeline +Kubernetes 1.3 ships June 24 ([schedule](/releases/release-1.3/release-1.3.md)) (actual was July 1). To land 2 more releases in 2016, we should aim for 1.5 in early December (late December is a holiday period), and work back. December 9 is a decent choice (and allows slip without landing during the holidays, if absolutely necessary). + +A proposal so far has been to not immediately enter 1.4 after 1.3, and to actually build in a week for focusing on flakes and testing across our dev community. + +To fit these milestones in, the best format appears to be 7w of coding, 4w of stabilization/release. 1.3 was 9w coding and 5w of stabilization. + +Going from 14w to 11w per release seems feasible if we hold feature complete strongly (as we did for the first time in 1.3) and we make significant test/flake/queue investments (which we plan to do/are doing). It also means if a given feature misses feature complete for 1.4, 1.5 isn't quite as far away, so it's a bit less painful. + +###1.4 Overview +- June 27 flake week (1w) +- July 3 coding start (7w) +- Aug 19 feature complete, move to bugfix (4w) (Aug 17 update, FC moved one business day to Aug 22) +- Sept 20 release + +###1.5 Overview +- Sept 19 coding start (7w) +- Nov 7 feature complete, move to bugfix (5w, includes US Thanksgiving holiday) +- Dec 8 release + +##1.4 Details + +###June 27 - July 1 +- Flake and test fix-it week + +###July 3 - Aug 19 +- 7 week coding period +- Release 1.4 alphas every 2 weeks + +###Aug 22 - Sept 2 +- Enter code slush on head, no more features or major refactors +- Fix bugs and run tests +- Start Milestone Burndown meetings +- Branch and cut Beta release on Sept 2 + +###Sept 5 - Sept 20 +- Open head for 1.5 work on Sept 5, after branch +- Fix bugs and run tests, update docs +- Release 1.4 on Sept 20 + +#Key features +[Feature tracking spreadsheet](https://docs.google.com/spreadsheets/d/1MeTQbtSiTCoQ74zjEGRI1rXRSP0Tzmo9-kMJSK_HGoA/edit?usp=sharing) diff --git a/releases/release-1.4/features.csv b/releases/release-1.4/features.csv index b65f736a4da..c8a912ff0fa 100644 --- a/releases/release-1.4/features.csv +++ b/releases/release-1.4/features.csv @@ -1,29 +1,29 @@ -Feature name,Stage,SIG,One Line Release Note Description,Features link,Assignee,Link To Docs -Prioritized scheduling of critical cluster addon pods,Alpha,SIG-Scheduling,"Ensure critical cluster infrastructure pods (Heapster, DNS, etc.) can schedule by evicting regular pods when necessary to make the critical pods schedule.",https://github.com/kubernetes/features/issues/62,davidopp / piosz,https://github.com/kubernetes/kubernetes.github.io/pull/1170 -Container Image Policy,Alpha,SIG-Auth,Allows an admission controller to determine whether a pod may be schdeuled based on a policy,https://github.com/kubernetes/features/issues/59,philips,https://github.com/kubernetes/kubernetes.github.io/pull/1188 -Inter-pod affinity/anti-affinity,Alpha,SIG-Scheduling,Allows pods to require or prohibit (or prefer or prefer not) co-scheduling on the same node (or zone or other topology domain) as another set of pods.,https://github.com/kubernetes/features/issues/51,davidopp / wojtek-t,https://github.com/kubernetes/kubernetes.github.io/pull/1148 -Kubelet TLS Bootstrap,Alpha,SIG-Node,Simplifies bootstrapping of TLS secured communication between the apiserver and kublet,https://github.com/kubernetes/features/issues/43,philips,https://github.com/kubernetes/kubernetes.github.io/pull/1246 -Access Review APIs,Alpha,SIG-Auth,"Exposes authorization engine to external inquiries for delgation, inspection, and debugging",https://github.com/kubernetes/features/issues/37,deads2k,https://github.com/kubernetes/kubernetes.github.io/pull/1236 -Add sysctl support,Alpha,SIG-Node,"Pods now have alpha support for setting whitelisted, safe sysctls. Unsafe sysctls can be whitelisted on the kubelet.",https://github.com/kubernetes/features/issues/34,sttts,https://github.com/kubernetes/kubernetes.github.io/pull/1126 -Source IP preservation for Virtual IPs,Alpha,SIG-Network,Service LB now has alpha support for preserving client source IP,https://github.com/kubernetes/features/issues/27,girishkalele,https://github.com/kubernetes/kubernetes.github.io/pull/1062 -ScheduledJobs,Alpha,SIG-Apps,"Introducing 'ScheduledJobs', which allow running time based Jobs, n$amely once at a specified time or repeatedly at specified point in time.",https://github.com/kubernetes/features/issues/19,soltysh ,http://kubernetes.io/docs/user-guide/scheduled-jobs/ -Dramatically Simplify Kubernetes Cluster Creation,Alpha,SIG-ClusterLifecycle,Now in Alpha! New 'kubeadm' tool makes install much easier.,https://github.com/kubernetes/features/issues/11,jbeda / lukemarsden,https://github.com/kubernetes/kubernetes.github.io/pull/1265 -Node Performance Benchmark,Alpha,SIG-Node,Publish node performance dashboard at http://node-perf-dash.k8s.io/#/builds,https://github.com/kubernetes/features/issues/83,dchen1107, -Audit,Alpha,SIG-API-Machinery,Generate audit logs for every request user performs against secured API server endpoint.,https://github.com/kubernetes/features/issues/22,soltysh / sttts,http://kubernetes.io/docs/admin/audit/ -Federated Ingress for GCP,Alpha,SIG-Federation,"Federated Ingress allows creation of a single global virtual IP (""VIP""), via a single API call, to intelligently load balance L7 traffic across some or all federated clusters around the world. GKE and GCE are supported in this release.",https://github.com/kubernetes/features/issues/82,madhusudancs,http://kubernetes.io/docs/user-guide/federation/federated-ingress -Federated Namespaces,Alpha,SIG-Federation,Federated Namespaces make it easy to create and maintain (via a single API call) a consistent set of NameSpaces across a large number of clusters. ,https://github.com/kubernetes/features/issues/69,madhusudancs,http://kubernetes.io/docs/user-guide/federation/namespaces -Simplified turn up,Alpha,SIG-Federation,"Introducing a new simplified mechanism to turn up federation. We will continue to support the existing mechanism in this release, but we recommend to switch to the new one.",N/A,madhusudancs, [Admin Guide](http://kubernetes.io/docs/admin/federation/) -Provide Ingress for Multi-Zone Clusters,Alpha,SIG-Federation,"Ingress now has alpha support for single master, multi-zone clusters",https://github.com/kubernetes/features/issues/52,bprashanth,https://github.com/kubernetes/kubernetes.github.io/blob/release-1.4/docs/user-guide/ingress.md#failing-across-availability-zones -Enable non-go clients: Move to Swagger 2.0,Beta,SIG-API-Machinery,`kube-apiserver` now publishes a swagger 2.0 spec in addition to a swagger 1.2 spec.,https://github.com/kubernetes/features/issues/53,lavalamp, -kubelet evicts resources when observing disk pressureke,Beta,SIG-Node,kubelet is able to evict pods when it observes disk pressure,https://github.com/kubernetes/features/issues/39,derekwaynecarr,https://github.com/kubernetes/kubernetes.github.io/pull/1196 -Configurable Dynamic Provisioning aka StorageClass,Beta,SIG-Storage,Persistent Volume provisioning now supports multiple provisioners using StorageClass configuration.,https://github.com/kubernetes/features/issues/36,childsb,https://github.com/kubernetes/kubernetes.github.io/pull/1064 -Add AppArmor support,Beta,SIG-Node,AppArmor profiles can be specified & applied to pod containers,https://github.com/kubernetes/features/issues/24,timstclair,http://kubernetes.io/docs/admin/apparmor/ -Pod Security Policy,Beta,SIG-Node,Cluster policy to control access and defaults of security related features,https://github.com/kubernetes/features/issues/5,pweil-,https://github.com/kubernetes/kubernetes.github.io/pull/1206 -Google ContainerVM Image,Beta,SIG-Node,"Kubernetes clusters on GCE will be upgrading to Google ContainerVM Image (GCI) soon. Use it today by setting KUBE_NODE_OS_DISTRIBUTION env to ""gci""",,vishh,https://cloud.google.com/compute/docs/containers/vm-image/ -Federated Replica Set,Beta,SIG-Federation,"Federated Replica Sets automatically and intelligently distribute a specified replica count across multiple federated clusters, either equally or according to optionally specified relative cluster weights. Hybrid cloud scenarios, where clusters are hosted in different cloud providers or on-premise are fully supported.",https://github.com/kubernetes/features/issues/46,madhusudancs,http://kubernetes.io/docs/user-guide/federation/replicasets -Federated Secrets,Beta,SIG-Federation,Federated Secrets make it easy to create and maintain (via a single API call) a consistent set of Secrets (e.g. security tokens) across a large number of clusters. ,https://github.com/kubernetes/features/issues/68,madhusudancs,http://kubernetes.io/docs/user-guide/federation/secrets -Federation Events,Beta,SIG-Federation,Federation API server gained support for events and many federation controllers now report important events.,https://github.com/kubernetes/features/issues/70,madhusudancs,http://kubernetes.io/docs/user-guide/federation/events -Automate Docker Validation Process ,Stable,SIG-Node,Automate docker validation processes,https://github.com/kubernetes/features/issues/57,dchen1107,"Note from @dchen1107: For validation test framework, I don't think we need any doc except release notes mentioning which docker version being qualified." -System Correctness: Single Source for Default Values,Stable,SIG-UI,"`kubectl` no longer applies defaults before sending objects to the server in create and update requests, allowing the server to apply the defaults.",https://github.com/kubernetes/features/issues/55,lavalamp, -New Volume Plugin: Quobyte,Stable,SIG-Storage,New volume plugin for the Quobyte Distributed File System,https://github.com/kubernetes/features/issues/80,johscheuer,https://github.com/kubernetes/kubernetes.github.io/pull/1067 -New Volume Plugin: Azure Data Disk,Stable,SIG-Storage,New volume plugin for Azure Data Disk,https://github.com/kubernetes/features/issues/79,rootfs,https://github.com/kubernetes/kubernetes.github.io/pull/1177 +Feature name,Stage,SIG,One Line Release Note Description,Features link,Assignee,Link To Docs +Prioritized scheduling of critical cluster addon pods,Alpha,SIG-Scheduling,"Ensure critical cluster infrastructure pods (Heapster, DNS, etc.) can schedule by evicting regular pods when necessary to make the critical pods schedule.",https://github.com/kubernetes/features/issues/62,davidopp / piosz,https://github.com/kubernetes/kubernetes.github.io/pull/1170 +Container Image Policy,Alpha,SIG-Auth,Allows an admission controller to determine whether a pod may be schdeuled based on a policy,https://github.com/kubernetes/features/issues/59,philips,https://github.com/kubernetes/kubernetes.github.io/pull/1188 +Inter-pod affinity/anti-affinity,Alpha,SIG-Scheduling,Allows pods to require or prohibit (or prefer or prefer not) co-scheduling on the same node (or zone or other topology domain) as another set of pods.,https://github.com/kubernetes/features/issues/51,davidopp / wojtek-t,https://github.com/kubernetes/kubernetes.github.io/pull/1148 +Kubelet TLS Bootstrap,Alpha,SIG-Node,Simplifies bootstrapping of TLS secured communication between the apiserver and kublet,https://github.com/kubernetes/features/issues/43,philips,https://github.com/kubernetes/kubernetes.github.io/pull/1246 +Access Review APIs,Alpha,SIG-Auth,"Exposes authorization engine to external inquiries for delgation, inspection, and debugging",https://github.com/kubernetes/features/issues/37,deads2k,https://github.com/kubernetes/kubernetes.github.io/pull/1236 +Add sysctl support,Alpha,SIG-Node,"Pods now have alpha support for setting whitelisted, safe sysctls. Unsafe sysctls can be whitelisted on the kubelet.",https://github.com/kubernetes/features/issues/34,sttts,https://github.com/kubernetes/kubernetes.github.io/pull/1126 +Source IP preservation for Virtual IPs,Alpha,SIG-Network,Service LB now has alpha support for preserving client source IP,https://github.com/kubernetes/features/issues/27,girishkalele,https://github.com/kubernetes/kubernetes.github.io/pull/1062 +ScheduledJobs,Alpha,SIG-Apps,"Introducing 'ScheduledJobs', which allow running time based Jobs, n$amely once at a specified time or repeatedly at specified point in time.",https://github.com/kubernetes/features/issues/19,soltysh ,http://kubernetes.io/docs/user-guide/scheduled-jobs/ +Dramatically Simplify Kubernetes Cluster Creation,Alpha,SIG-ClusterLifecycle,Now in Alpha! New 'kubeadm' tool makes install much easier.,https://github.com/kubernetes/features/issues/11,jbeda / lukemarsden,https://github.com/kubernetes/kubernetes.github.io/pull/1265 +Node Performance Benchmark,Alpha,SIG-Node,Publish node performance dashboard at http://node-perf-dash.k8s.io/#/builds,https://github.com/kubernetes/features/issues/83,dchen1107, +Audit,Alpha,SIG-API-Machinery,Generate audit logs for every request user performs against secured API server endpoint.,https://github.com/kubernetes/features/issues/22,soltysh / sttts,http://kubernetes.io/docs/admin/audit/ +Federated Ingress for GCP,Alpha,SIG-Federation,"Federated Ingress allows creation of a single global virtual IP (""VIP""), via a single API call, to intelligently load balance L7 traffic across some or all federated clusters around the world. GKE and GCE are supported in this release.",https://github.com/kubernetes/features/issues/82,madhusudancs,http://kubernetes.io/docs/user-guide/federation/federated-ingress +Federated Namespaces,Alpha,SIG-Federation,Federated Namespaces make it easy to create and maintain (via a single API call) a consistent set of NameSpaces across a large number of clusters. ,https://github.com/kubernetes/features/issues/69,madhusudancs,http://kubernetes.io/docs/user-guide/federation/namespaces +Simplified turn up,Alpha,SIG-Federation,"Introducing a new simplified mechanism to turn up federation. We will continue to support the existing mechanism in this release, but we recommend to switch to the new one.",N/A,madhusudancs, [Admin Guide](http://kubernetes.io/docs/admin/federation/) +Provide Ingress for Multi-Zone Clusters,Alpha,SIG-Federation,"Ingress now has alpha support for single master, multi-zone clusters",https://github.com/kubernetes/features/issues/52,bprashanth,https://github.com/kubernetes/kubernetes.github.io/blob/release-1.4/docs/user-guide/ingress.md#failing-across-availability-zones +Enable non-go clients: Move to Swagger 2.0,Beta,SIG-API-Machinery,`kube-apiserver` now publishes a swagger 2.0 spec in addition to a swagger 1.2 spec.,https://github.com/kubernetes/features/issues/53,lavalamp, +kubelet evicts resources when observing disk pressureke,Beta,SIG-Node,kubelet is able to evict pods when it observes disk pressure,https://github.com/kubernetes/features/issues/39,derekwaynecarr,https://github.com/kubernetes/kubernetes.github.io/pull/1196 +Configurable Dynamic Provisioning aka StorageClass,Beta,SIG-Storage,Persistent Volume provisioning now supports multiple provisioners using StorageClass configuration.,https://github.com/kubernetes/features/issues/36,childsb,https://github.com/kubernetes/kubernetes.github.io/pull/1064 +Add AppArmor support,Beta,SIG-Node,AppArmor profiles can be specified & applied to pod containers,https://github.com/kubernetes/features/issues/24,timstclair,http://kubernetes.io/docs/admin/apparmor/ +Pod Security Policy,Beta,SIG-Node,Cluster policy to control access and defaults of security related features,https://github.com/kubernetes/features/issues/5,pweil-,https://github.com/kubernetes/kubernetes.github.io/pull/1206 +Google ContainerVM Image,Beta,SIG-Node,"Kubernetes clusters on GCE will be upgrading to Google ContainerVM Image (GCI) soon. Use it today by setting KUBE_NODE_OS_DISTRIBUTION env to ""gci""",,vishh,https://cloud.google.com/compute/docs/containers/vm-image/ +Federated Replica Set,Beta,SIG-Federation,"Federated Replica Sets automatically and intelligently distribute a specified replica count across multiple federated clusters, either equally or according to optionally specified relative cluster weights. Hybrid cloud scenarios, where clusters are hosted in different cloud providers or on-premise are fully supported.",https://github.com/kubernetes/features/issues/46,madhusudancs,http://kubernetes.io/docs/user-guide/federation/replicasets +Federated Secrets,Beta,SIG-Federation,Federated Secrets make it easy to create and maintain (via a single API call) a consistent set of Secrets (e.g. security tokens) across a large number of clusters. ,https://github.com/kubernetes/features/issues/68,madhusudancs,http://kubernetes.io/docs/user-guide/federation/secrets +Federation Events,Beta,SIG-Federation,Federation API server gained support for events and many federation controllers now report important events.,https://github.com/kubernetes/features/issues/70,madhusudancs,http://kubernetes.io/docs/user-guide/federation/events +Automate Docker Validation Process ,Stable,SIG-Node,Automate docker validation processes,https://github.com/kubernetes/features/issues/57,dchen1107,"Note from @dchen1107: For validation test framework, I don't think we need any doc except release notes mentioning which docker version being qualified." +System Correctness: Single Source for Default Values,Stable,SIG-UI,"`kubectl` no longer applies defaults before sending objects to the server in create and update requests, allowing the server to apply the defaults.",https://github.com/kubernetes/features/issues/55,lavalamp, +New Volume Plugin: Quobyte,Stable,SIG-Storage,New volume plugin for the Quobyte Distributed File System,https://github.com/kubernetes/features/issues/80,johscheuer,https://github.com/kubernetes/kubernetes.github.io/pull/1067 +New Volume Plugin: Azure Data Disk,Stable,SIG-Storage,New volume plugin for Azure Data Disk,https://github.com/kubernetes/features/issues/79,rootfs,https://github.com/kubernetes/kubernetes.github.io/pull/1177 diff --git a/releases/release-1.4/release-1.4.md b/releases/release-1.4/release-1.4.md index 7e6af0b897d..d803ddd0e25 100644 --- a/releases/release-1.4/release-1.4.md +++ b/releases/release-1.4/release-1.4.md @@ -1 +1 @@ -Please see [README.md](README.md) instead +Please see [README.md](README.md) instead diff --git a/releases/release-1.5/README.md b/releases/release-1.5/README.md index eedb140dceb..785aef0d459 100644 --- a/releases/release-1.5/README.md +++ b/releases/release-1.5/README.md @@ -1,59 +1,59 @@ -# 1.5 Tenative Timeline -*Approved at Aug 25 community meeting* - -### September 19 - Monday, November 7, 2016 -- [x] **Monday, September 19, 2016** - - 7 week coding period begins - - 1.5 alpha releases are cut every 2 weeks during this period. -- [x] **Monday, October 10, 2016** - - *Feature freeze* begins - - All features that planned for v1.5 must be defined in the [features repository with the 1.5 milestone label](https://github.com/kubernetes/features/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.5) by this date. -- [x] **Monday, November 7, 2016** - - Feature Complete Date - - Final day to merge non-bug related code changes for the v1.5 release. - - All feature code must be LGTMed with tests written and in the submit queue by 6 PM PST. - -### November 8 - November 28, 2016 -- [x] **Tuesday, November 8, 2016** - - *Code freeze* begins - - Only bug fixes with the `v1.5` milestone will be merged to `master` branch after this date. - - All other changes must go through the [exceptions process](https://github.com/kubernetes/features/blob/master/EXCEPTIONS.md) - - All requests for exception must be submitted by Nov 8, 6 PM PST. -- [x] **Wednesday, November 9, 2016** - - [Milestone Burndown](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) meetings begin - - All requests for exception will be reviewed and either approved or rejected during the first meeting. - - Requesters will be notified within 24 hours. -- [x] **Monday, November 28, 2016** - - 1.5 release branch fast-forwarded to match `master` branch (picking up all changes merged since code freeze). - -### November 28, 2016 - December 12, 2016 -- [x] **Monday, November 28, 2016** - - `master` branch is opened for 1.6 work after 1.5 release branch has been fast-forwarded. - - All bug fixes for 1.5, after this point, must be manually cherry-picked to the 1.5 release branch. -- [x] **Tuesday, November 29, 2016** - - Docs for all [1.5 features](https://github.com/kubernetes/features/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.5) should have PRs out for review. - - Include a link to the relevant 1.5 feature in the docs PR. - - Add a link to the docs PR in the [1.5 Feature Tracking Spreadsheet](https://docs.google.com/spreadsheets/d/1g9JU-67ncE4MHMeKnmslm-JO_aKeltv2kg_Dd6VFmKs/edit#gid=0). - - Release Notes for all [1.5 features](https://github.com/kubernetes/features/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.5) should have a "One Line Release Note Description" in the [1.5 Feature Tracking Spreadsheet](https://docs.google.com/spreadsheets/d/1g9JU-67ncE4MHMeKnmslm-JO_aKeltv2kg_Dd6VFmKs/edit#gid=0). -- [x] **Friday, December 2, 2016** - - Docs PRs for all [1.5 features](https://github.com/kubernetes/features/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.5) must be merged. -- **Monday, December 12, 2016** - - Release 1.5 - -# 1.5 Release Czar -**Github:** [saad-ali](https://github.com/saad-ali) - -**Email:** saadali@google.com - -# Key features -[Feature tracking spreadsheet](https://docs.google.com/spreadsheets/d/1g9JU-67ncE4MHMeKnmslm-JO_aKeltv2kg_Dd6VFmKs/edit?usp=sharing) - -# Why? -Kubernetes 1.4 is set to release on Sept 20. We want to have another release of Kubernetes in the 2016 calendar year, so that means in December. - -December tends to have a lot of vacation time towards the end, and we want to have a little buffer time in case of slips. Late November also has the US Thanksgiving holiday, when many people will be on vacation. - -The proposal below is identical in layout to the 1.4 plan, with the exceptions of: -- key days aren't Fridays, since it can be hard to end milestones right up against weekends -- a week is added for the bugfix period due to the Thanksgiving holiday -- KubeCon is Nov 8-9, Kubernetes Dev Summit - Nov 10. +# 1.5 Tenative Timeline +*Approved at Aug 25 community meeting* + +### September 19 - Monday, November 7, 2016 +- [x] **Monday, September 19, 2016** + - 7 week coding period begins + - 1.5 alpha releases are cut every 2 weeks during this period. +- [x] **Monday, October 10, 2016** + - *Feature freeze* begins + - All features that planned for v1.5 must be defined in the [features repository with the 1.5 milestone label](https://github.com/kubernetes/features/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.5) by this date. +- [x] **Monday, November 7, 2016** + - Feature Complete Date + - Final day to merge non-bug related code changes for the v1.5 release. + - All feature code must be LGTMed with tests written and in the submit queue by 6 PM PST. + +### November 8 - November 28, 2016 +- [x] **Tuesday, November 8, 2016** + - *Code freeze* begins + - Only bug fixes with the `v1.5` milestone will be merged to `master` branch after this date. + - All other changes must go through the [exceptions process](https://github.com/kubernetes/features/blob/master/EXCEPTIONS.md) + - All requests for exception must be submitted by Nov 8, 6 PM PST. +- [x] **Wednesday, November 9, 2016** + - [Milestone Burndown](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) meetings begin + - All requests for exception will be reviewed and either approved or rejected during the first meeting. + - Requesters will be notified within 24 hours. +- [x] **Monday, November 28, 2016** + - 1.5 release branch fast-forwarded to match `master` branch (picking up all changes merged since code freeze). + +### November 28, 2016 - December 12, 2016 +- [x] **Monday, November 28, 2016** + - `master` branch is opened for 1.6 work after 1.5 release branch has been fast-forwarded. + - All bug fixes for 1.5, after this point, must be manually cherry-picked to the 1.5 release branch. +- [x] **Tuesday, November 29, 2016** + - Docs for all [1.5 features](https://github.com/kubernetes/features/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.5) should have PRs out for review. + - Include a link to the relevant 1.5 feature in the docs PR. + - Add a link to the docs PR in the [1.5 Feature Tracking Spreadsheet](https://docs.google.com/spreadsheets/d/1g9JU-67ncE4MHMeKnmslm-JO_aKeltv2kg_Dd6VFmKs/edit#gid=0). + - Release Notes for all [1.5 features](https://github.com/kubernetes/features/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.5) should have a "One Line Release Note Description" in the [1.5 Feature Tracking Spreadsheet](https://docs.google.com/spreadsheets/d/1g9JU-67ncE4MHMeKnmslm-JO_aKeltv2kg_Dd6VFmKs/edit#gid=0). +- [x] **Friday, December 2, 2016** + - Docs PRs for all [1.5 features](https://github.com/kubernetes/features/issues?q=is%3Aopen+is%3Aissue+milestone%3Av1.5) must be merged. +- **Monday, December 12, 2016** + - Release 1.5 + +# 1.5 Release Czar +**Github:** [saad-ali](https://github.com/saad-ali) + +**Email:** saadali@google.com + +# Key features +[Feature tracking spreadsheet](https://docs.google.com/spreadsheets/d/1g9JU-67ncE4MHMeKnmslm-JO_aKeltv2kg_Dd6VFmKs/edit?usp=sharing) + +# Why? +Kubernetes 1.4 is set to release on Sept 20. We want to have another release of Kubernetes in the 2016 calendar year, so that means in December. + +December tends to have a lot of vacation time towards the end, and we want to have a little buffer time in case of slips. Late November also has the US Thanksgiving holiday, when many people will be on vacation. + +The proposal below is identical in layout to the 1.4 plan, with the exceptions of: +- key days aren't Fridays, since it can be hard to end milestones right up against weekends +- a week is added for the bugfix period due to the Thanksgiving holiday +- KubeCon is Nov 8-9, Kubernetes Dev Summit - Nov 10. diff --git a/releases/release-1.5/features.csv b/releases/release-1.5/features.csv index 942a6b15b1f..11878453d42 100644 --- a/releases/release-1.5/features.csv +++ b/releases/release-1.5/features.csv @@ -1,41 +1,41 @@ -Feature name,Stage,SIG,Assignee,One Line Release Note Description,Needs Docs?,Docs PR,Needs Doc Review,Needs Tech Review,Merged,Notes -Role-based access control,Alpha,SIG-Auth,deads2k,Further polishing of the alpha API including a default set of cluster roles.,No,Already exist as http://kubernetes.io/docs/admin/authorization/,N/A,N/A,N/A, -Dramatically Simplify Kubernetes Cluster Creation,Alpha,SIG-ClusterLifecycle,jbeda,Use kubeadm to make it easy to get a cluster running.,No,"Pre-existing docs from 1.4, no updates.",N/A,N/A,N/A, -Simplify HA Setup for Master,Alpha,SIG-ClusterOps,jszczepkowski,Added ability to create/remove clusters w/highly available (replicaed) masters on GCE using kube-up/kube-down scripts.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1810,Complete,Complete,Yes,x -Federated Daemonset,Alpha,SIG-Federation,mwielgus,Alpha level support for Daemonsets in federation.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1827,Complete,Complete,Yes,x -Federated Deployments,Alpha,SIG-Federation,mwielgus,Alpha level support for Deployments in federation.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1828,Complete,Complete,Yes,x -"Federation: Support generalized deletions, including cascading and ...",Alpha,SIG-Federation,nikhiljindal,Cluster federation: Added support for DeleteOptions.OrphanDependents for federation resources.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1787,Complete,Complete,Yes,x -It should be fast and painless to deploy a Federation of Kubernetes,Alpha,SIG-Federation,madhusudancs,"Introducing `kubefed`, a new command line tool to simplify federation control plane deployment and cluster registration/deregistration experience.",Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1822,Complete,Complete,Yes,x -Enable userns support for containers launched by kubelet,Alpha,SIG-Node,derekwaynecarr,Added ability to preserve access to host userns when userns remapping is enabled in container runtime,No,-,N/A,N/A,N/A, -Container Runtime Interface (CRI),Alpha,SIG-Node,yujuhong,Introducing the v1alpha1 CRI API to allow pluggable container runtimes; an experimental docker-CRI integration is ready for testing and feedback.,Yes,https://github.com/kubernetes/kubernetes/blob/release-1.5/docs/devel/container-runtime-interface.md,Complete,Complete,Yes, -Add support for pod and qos level cgroups,Alpha,SIG-Node,derekwaynecarr,Kubelet launches container in a per pod cgroup hiearchy based on quality of service tier,No,,N/A,N/A,N/A, -Accounting and feasibility for opaque integer resources in the API,Alpha,SIG-Scheduling,ConnorDoyle,Added support for accounting opaque integer resources.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1783,Complete,Complete,Yes,x -Support Windows Server Containers for K8s,Alpha,SIG-Windows,michmike,Added support for Windows Server 2016 nodes and scheduling Windows Server Containers,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1771,Complete,Complete,Yes,x -Allow deployments to correctly indicate they are failing to deploy,Beta,SIG-Apps,smarterclayton,Deployments that cannot make progress in rolling out the newest version will now indicate via the API they are blocked,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1699,Complete,Complete,Yes, -StatefulSets to Beta,Beta,SIG-Apps,smarterclayton,StatefulSets allow workloads that require persistent identity or per-instance storage to be created and managed on Kubernetes.,Yes,"https://github.com/kubernetes/kubernetes.github.io/pull/1704 -https://github.com/kubernetes/kubernetes.github.io/pull/1707 -https://github.com/kubernetes/kubernetes.github.io/pull/1718 -https://github.com/kubernetes/kubernetes.github.io/pull/1719 -https://github.com/kubernetes/kubernetes.github.io/pull/1722 -https://github.com/kubernetes/kubernetes.github.io/pull/1821 -https://github.com/kubernetes/kubernetes.github.io/pull/1803 -https://github.com/kubernetes/kubernetes.github.io/pull/1731 -https://github.com/kubernetes/kubernetes.github.io/pull/1811 -https://github.com/kubernetes/kubernetes.github.io/pull/1737 -https://github.com/kubernetes/kubernetes.github.io/pull/1757 -https://github.com/kubernetes/kubernetes.github.io/pull/1857 -https://github.com/kubernetes/kubernetes.github.io/pull/1894",Yes,Complete,Yes, -Make StatefulSets safe during cluster failure,Beta,SIG-Apps,smarterclayton,In order to preserve safety guarantees the cluster no longer force deletes pods on un-responsive nodes and users are now warned if they try to force delete pods via the CLI. ,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1894,Complete,Complete,Yes, -Authenticated/Authorized access to kubelet API,Beta,SIG-Auth,liggitt,Added ability to authenticate/authorize access to the Kubelet API,Yes,#1684,Complete,Complete,Yes, -Federated ConfigMap ,Beta,SIG-Federation,mwielgus,Support for config maps in federation.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1838,Complete,Complete,Yes, -GCP Cloud Provider: Source IP preservation for Virtual IPs,Beta,SIG-Network,bprashanth,Opt in source ip preservation for Services with Type NodePort or LoadBalancer,Yes,"https://github.com/kubernetes/kubernetes.github.io/pull/1833 -https://github.com/kubernetes/kubernetes.github.io/pull/1841",Complete,Complete,Yes, -Improve responsiveness of kubelet eviction module,Beta,SIG-Node,derekwaynecarr,Kubelet integrates with memcg notification API to detect when a hard eviction threshold is crossed,No,,N/A,N/A,N/A, -Node Conformance Test,Beta,SIG-Node,Random-Liu,Introducing the beta version containerized node conformance test gcr.io/google_containers/node-test:0.2 for users to verify node setup.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1784,Complete,Complete,Yes, -PodDisruptionBudget and /eviction subresource,Beta,SIG-Scheduling,davidopp,Moving PodDisruptionBudget to Beta + Machine drain task doc,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1789,Complete,Complete,Yes, -Communicate replica set and deployment status via conditions,Stable,SIG-Apps,smarterclayton,"When replica sets cannot create pods, they will now report detail via the API about the underlying reason",No,- ,N/A,N/A,N/A, -Support deleting previous objects in `kubectl apply`,Stable,SIG-Apps,smarterclayton,`kubectl apply` is now able to delete resources you no longer need with --prune,No,- (command will be documented automatically) ,N/A,N/A,N/A, -Show roles in kubectl,Stable,SIG-AWS,justinsb,Roles should appear in kubectl get nodes,No,No docs. ,N/A,N/A,N/A, -Support services that reference an external service,Stable,SIG-Network,smarterclayton ,"Services can reference another service by DNS name, rather than being hosted in pods.",No,"Pre-existing docs from 1.4, no updates.",N/A,N/A,Yes, -Dashboard UI: show all user facing resources,Stable,SIG-UI,bryk,Dashboard UI now shows all user facing objects and their resource usage.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1793,Complete,Complete,Yes, +Feature name,Stage,SIG,Assignee,One Line Release Note Description,Needs Docs?,Docs PR,Needs Doc Review,Needs Tech Review,Merged,Notes +Role-based access control,Alpha,SIG-Auth,deads2k,Further polishing of the alpha API including a default set of cluster roles.,No,Already exist as http://kubernetes.io/docs/admin/authorization/,N/A,N/A,N/A, +Dramatically Simplify Kubernetes Cluster Creation,Alpha,SIG-ClusterLifecycle,jbeda,Use kubeadm to make it easy to get a cluster running.,No,"Pre-existing docs from 1.4, no updates.",N/A,N/A,N/A, +Simplify HA Setup for Master,Alpha,SIG-ClusterOps,jszczepkowski,Added ability to create/remove clusters w/highly available (replicaed) masters on GCE using kube-up/kube-down scripts.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1810,Complete,Complete,Yes,x +Federated Daemonset,Alpha,SIG-Federation,mwielgus,Alpha level support for Daemonsets in federation.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1827,Complete,Complete,Yes,x +Federated Deployments,Alpha,SIG-Federation,mwielgus,Alpha level support for Deployments in federation.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1828,Complete,Complete,Yes,x +"Federation: Support generalized deletions, including cascading and ...",Alpha,SIG-Federation,nikhiljindal,Cluster federation: Added support for DeleteOptions.OrphanDependents for federation resources.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1787,Complete,Complete,Yes,x +It should be fast and painless to deploy a Federation of Kubernetes,Alpha,SIG-Federation,madhusudancs,"Introducing `kubefed`, a new command line tool to simplify federation control plane deployment and cluster registration/deregistration experience.",Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1822,Complete,Complete,Yes,x +Enable userns support for containers launched by kubelet,Alpha,SIG-Node,derekwaynecarr,Added ability to preserve access to host userns when userns remapping is enabled in container runtime,No,-,N/A,N/A,N/A, +Container Runtime Interface (CRI),Alpha,SIG-Node,yujuhong,Introducing the v1alpha1 CRI API to allow pluggable container runtimes; an experimental docker-CRI integration is ready for testing and feedback.,Yes,https://github.com/kubernetes/kubernetes/blob/release-1.5/docs/devel/container-runtime-interface.md,Complete,Complete,Yes, +Add support for pod and qos level cgroups,Alpha,SIG-Node,derekwaynecarr,Kubelet launches container in a per pod cgroup hiearchy based on quality of service tier,No,,N/A,N/A,N/A, +Accounting and feasibility for opaque integer resources in the API,Alpha,SIG-Scheduling,ConnorDoyle,Added support for accounting opaque integer resources.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1783,Complete,Complete,Yes,x +Support Windows Server Containers for K8s,Alpha,SIG-Windows,michmike,Added support for Windows Server 2016 nodes and scheduling Windows Server Containers,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1771,Complete,Complete,Yes,x +Allow deployments to correctly indicate they are failing to deploy,Beta,SIG-Apps,smarterclayton,Deployments that cannot make progress in rolling out the newest version will now indicate via the API they are blocked,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1699,Complete,Complete,Yes, +StatefulSets to Beta,Beta,SIG-Apps,smarterclayton,StatefulSets allow workloads that require persistent identity or per-instance storage to be created and managed on Kubernetes.,Yes,"https://github.com/kubernetes/kubernetes.github.io/pull/1704 +https://github.com/kubernetes/kubernetes.github.io/pull/1707 +https://github.com/kubernetes/kubernetes.github.io/pull/1718 +https://github.com/kubernetes/kubernetes.github.io/pull/1719 +https://github.com/kubernetes/kubernetes.github.io/pull/1722 +https://github.com/kubernetes/kubernetes.github.io/pull/1821 +https://github.com/kubernetes/kubernetes.github.io/pull/1803 +https://github.com/kubernetes/kubernetes.github.io/pull/1731 +https://github.com/kubernetes/kubernetes.github.io/pull/1811 +https://github.com/kubernetes/kubernetes.github.io/pull/1737 +https://github.com/kubernetes/kubernetes.github.io/pull/1757 +https://github.com/kubernetes/kubernetes.github.io/pull/1857 +https://github.com/kubernetes/kubernetes.github.io/pull/1894",Yes,Complete,Yes, +Make StatefulSets safe during cluster failure,Beta,SIG-Apps,smarterclayton,In order to preserve safety guarantees the cluster no longer force deletes pods on un-responsive nodes and users are now warned if they try to force delete pods via the CLI. ,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1894,Complete,Complete,Yes, +Authenticated/Authorized access to kubelet API,Beta,SIG-Auth,liggitt,Added ability to authenticate/authorize access to the Kubelet API,Yes,#1684,Complete,Complete,Yes, +Federated ConfigMap ,Beta,SIG-Federation,mwielgus,Support for config maps in federation.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1838,Complete,Complete,Yes, +GCP Cloud Provider: Source IP preservation for Virtual IPs,Beta,SIG-Network,bprashanth,Opt in source ip preservation for Services with Type NodePort or LoadBalancer,Yes,"https://github.com/kubernetes/kubernetes.github.io/pull/1833 +https://github.com/kubernetes/kubernetes.github.io/pull/1841",Complete,Complete,Yes, +Improve responsiveness of kubelet eviction module,Beta,SIG-Node,derekwaynecarr,Kubelet integrates with memcg notification API to detect when a hard eviction threshold is crossed,No,,N/A,N/A,N/A, +Node Conformance Test,Beta,SIG-Node,Random-Liu,Introducing the beta version containerized node conformance test gcr.io/google_containers/node-test:0.2 for users to verify node setup.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1784,Complete,Complete,Yes, +PodDisruptionBudget and /eviction subresource,Beta,SIG-Scheduling,davidopp,Moving PodDisruptionBudget to Beta + Machine drain task doc,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1789,Complete,Complete,Yes, +Communicate replica set and deployment status via conditions,Stable,SIG-Apps,smarterclayton,"When replica sets cannot create pods, they will now report detail via the API about the underlying reason",No,- ,N/A,N/A,N/A, +Support deleting previous objects in `kubectl apply`,Stable,SIG-Apps,smarterclayton,`kubectl apply` is now able to delete resources you no longer need with --prune,No,- (command will be documented automatically) ,N/A,N/A,N/A, +Show roles in kubectl,Stable,SIG-AWS,justinsb,Roles should appear in kubectl get nodes,No,No docs. ,N/A,N/A,N/A, +Support services that reference an external service,Stable,SIG-Network,smarterclayton ,"Services can reference another service by DNS name, rather than being hosted in pods.",No,"Pre-existing docs from 1.4, no updates.",N/A,N/A,Yes, +Dashboard UI: show all user facing resources,Stable,SIG-UI,bryk,Dashboard UI now shows all user facing objects and their resource usage.,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1793,Complete,Complete,Yes, OpenAPI/Swagger 2.0 support,Beta,SIG-api-machinery,mbohlool,OpenAPI spec is now generated on API_SERVER/swagger.json,Yes,https://github.com/kubernetes/kubernetes.github.io/pull/1933,,,, \ No newline at end of file diff --git a/releases/release-1.5/release-1.5.md b/releases/release-1.5/release-1.5.md index 7e6af0b897d..d803ddd0e25 100644 --- a/releases/release-1.5/release-1.5.md +++ b/releases/release-1.5/release-1.5.md @@ -1 +1 @@ -Please see [README.md](README.md) instead +Please see [README.md](README.md) instead diff --git a/releases/release-1.5/release-notes-draft.md b/releases/release-1.5/release-notes-draft.md index 73e25121231..19e3a6dcaec 100644 --- a/releases/release-1.5/release-notes-draft.md +++ b/releases/release-1.5/release-notes-draft.md @@ -1,143 +1,143 @@ -## Major Themes - -- StatefulSets (ex-PetSets) - - StatefulSets are beta now (fixes and stabilization) -- Improved Federation Support - - New command: `kubefed` - - DaemonSets - - Deployments - - ConfigMaps -- Simplified Cluster Deployment - - Improvements to `kubeadm` - - HA Setup for Master -- Node Robustness and Extensibility - - Windows Server Container support - - CRI for pluggable container runtimes - - `kubelet` API supports authentication and authorization - -## Features - -Features for this release were tracked via the use of the [kubernetes/features](https://github.com/kubernetes/features) issues repo. Each Feature issue is owned by a Special Interest Group from [kubernetes/community](https://github.com/kubernetes/community) - -- **API Machinery** - - [beta] `kube-apiserver` support for the OpenAPI spec is moving from alpha to beta. The first [non-go client](https://github.com/kubernetes-incubator/client-python) is based on it ([kubernetes/features#53](https://github.com/kubernetes/features/issues/53)) -- **Apps** - - [stable] When replica sets cannot create pods, they will now report detail via the API about the underlying reason ([kubernetes/features#120](https://github.com/kubernetes/features/issues/120)) - - [stable] `kubectl apply` is now able to delete resources you no longer need with `--prune` ([kubernetes/features#128](https://github.com/kubernetes/features/issues/128)) - - [beta] Deployments that cannot make progress in rolling out the newest version will now indicate via the API they are blocked ([docs](http://kubernetes.io/docs/user-guide/deployments/#failed-deployment)) ([kubernetes/features#122](https://github.com/kubernetes/features/issues/122)) - - [beta] StatefulSets allow workloads that require persistent identity or per-instance storage to be created and managed on Kubernetes. ([docs](http://kubernetes.io/docs/concepts/abstractions/controllers/statefulsets/)) ([kubernetes/features#137](https://github.com/kubernetes/features/issues/137)) - - [beta] In order to preserve safety guarantees the cluster no longer force deletes pods on un-responsive nodes and users are now warned if they try to force delete pods via the CLI. ([docs](http://kubernetes.io/docs/tasks/manage-stateful-set/scale-stateful-set/)) ([kubernetes/features#119](https://github.com/kubernetes/features/issues/119)) -- **Auth** - - [alpha] Further polishing of the Role-based access control alpha API including a default set of cluster roles. ([docs](http://kubernetes.io/docs/admin/authorization/)) ([kubernetes/features#2](https://github.com/kubernetes/features/issues/2)) - - [beta] Added ability to authenticate/authorize access to the Kubelet API ([docs](http://kubernetes.io/docs/admin/kubelet-authentication-authorization/)) ([kubernetes/features#89](https://github.com/kubernetes/features/issues/89)) -- **AWS** - - [stable] Roles should appear in kubectl get nodes ([kubernetes/features#113](https://github.com/kubernetes/features/issues/113)) -- **Cluster Lifecycle** - - [alpha] Improved UX and usability for the kubeadm binary that makes it easy to get a new cluster running. ([docs](http://kubernetes.io/docs/getting-started-guides/kubeadm/)) ([kubernetes/features#11](https://github.com/kubernetes/features/issues/11)) -- **Cluster Ops** - - [alpha] Added ability to create/remove clusters w/highly available (replicated) masters on GCE using kube-up/kube-down scripts. ([docs](http://kubernetes.io/docs/admin/ha-master-gce/)) ([kubernetes/features#48](https://github.com/kubernetes/features/issues/48)) -- **Federation** - - [alpha] Support for ConfigMaps in federation. ([docs](http://kubernetes.io/docs/user-guide/federation/configmap/)) ([kubernetes/features#105](https://github.com/kubernetes/features/issues/105)) - - [alpha] Alpha level support for DaemonSets in federation. ([docs](http://kubernetes.io/docs/user-guide/federation/daemonsets/)) ([kubernetes/features#101](https://github.com/kubernetes/features/issues/101)) - - [alpha] Alpha level support for Deployments in federation. ([docs](http://kubernetes.io/docs/user-guide/federation/deployment/)) ([kubernetes/features#100](https://github.com/kubernetes/features/issues/100)) - - [alpha] Cluster federation: Added support for DeleteOptions.OrphanDependents for federation resources. ([docs](http://kubernetes.io/docs/user-guide/federation/#cascading-deletion)) ([kubernetes/features#99](https://github.com/kubernetes/features/issues/99)) - - [alpha] Introducing `kubefed`, a new command line tool to simplify federation control plane kubernetes.io/docs/admin/federation/kubefed/)) ([kubernetes/features#97](https://github.com/kubernetes/features/issues/97)) -- **Network** - - [stable] Services can reference another service by DNS name, rather than being hosted in pods ([kubernetes/features#33](https://github.com/kubernetes/features/issues/33)) - - [beta] Opt in source ip preservation for Services with Type NodePort or LoadBalancer ([docs](http://kubernetes.io/docs/tutorials/services/source-ip/)) ([kubernetes/features#27](https://github.com/kubernetes/features/issues/27)) - - [stable] Enable DNS Horizontal Autoscaling with beta ConfigMap parameters support ([docs](http://kubernetes.io/docs/tasks/administer-cluster/dns-horizontal-autoscaling/)) -- **Node** - - [alpha] Added ability to preserve access to host userns when userns remapping is enabled in container runtime ([kubernetes/features#127](https://github.com/kubernetes/features/issues/127)) - - [alpha] Introducing the v1alpha1 CRI API to allow pluggable container runtimes; an experimental docker-CRI integration is ready for testing and feedback. ([docs](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md)) ([kubernetes/features#54](https://github.com/kubernetes/features/issues/54)) - - [alpha] Kubelet launches container in a per pod cgroup hiearchy based on quality of service tier ([kubernetes/features#126](https://github.com/kubernetes/features/issues/126)) - - [beta] Kubelet integrates with memcg notification API to detect when a hard eviction threshold is crossed ([kubernetes/features#125](https://github.com/kubernetes/features/issues/125)) - - [beta] Introducing the beta version containerized node conformance test gcr.io/google_containers/node-test:0.2 for users to verify node setup. ([docs](http://kubernetes.io/docs/admin/node-conformance/)) ([kubernetes/features#84](https://github.com/kubernetes/features/issues/84)) -- **Scheduling** - - [alpha] Added support for accounting opaque integer resources. ([docs](http://kubernetes.io/docs/user-guide/compute-resources/#opaque-integer-resources-alpha-feature)) ([kubernetes/features#76](https://github.com/kubernetes/features/issues/76)) - - [beta] PodDisruptionBudget has been promoted to beta, can be used to safely drain nodes while respecting application SLO's ([docs](http://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/)) ([kubernetes/features#85](https://github.com/kubernetes/features/issues/85)) -- **UI** - - [stable] Dashboard UI now shows all user facing objects and their resource usage. ([docs](http://kubernetes.io/docs/user-guide/ui/)) ([kubernetes/features#136](https://github.com/kubernetes/features/issues/136)) -- **Windows** - - [alpha] Added support for Windows Server 2016 nodes and scheduling Windows Server Containers ([docs](http://kubernetes.io/docs/getting-started-guides/windows/)) ([kubernetes/features#116](https://github.com/kubernetes/features/issues/116)) - -## Known Issues - -Populated via [v1.5.0 known issues / FAQ accumulator](https://github.com/kubernetes/kubernetes/issues/37134) - -* CRI [known issues and - limitations](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md#kubernetes-v15-release-cri-v1alpha1) -* getDeviceNameFromMount() function doesn't return the volume path correctly when the volume path contains spaces [#37712](https://github.com/kubernetes/kubernetes/issues/37712) -* Federation alpha features do not have feature gates defined and -are hence enabled by default. This will be fixed in a future release. -[#38593](https://github.com/kubernetes/kubernetes/issues/38593) -* Federation control plane can be upgraded by updating the image -fields in the `Deployment` specs of the control plane components. -However, federation control plane upgrades were not tested in this -release [38537](https://github.com/kubernetes/kubernetes/issues/38537) - -## Notable Changes to Existing Behavior - -* Node controller no longer force-deletes pods from the api-server. ([#35235](https://github.com/kubernetes/kubernetes/pull/35235), [@foxish](https://github.com/foxish)) - * For StatefulSet (previously PetSet), this change means creation of - replacement pods is blocked until old pods are definitely not running - (indicated either by the kubelet returning from partitioned state, - deletion of the Node object, deletion of the instance in the cloud provider, - or force deletion of the pod from the api-server). - This helps prevent "split brain" scenarios in clustered applications by - ensuring that unreachable pods will not be presumed dead unless some - "fencing" operation has provided one of the above indications. - * For all other existing controllers except StatefulSet, this has no effect on - the ability of the controller to replace pods because the controllers do not - reuse pod names (they use generate-name). - * User-written controllers that reuse names of pod objects should evaluate this change. - * When deleting an object with `kubectl delete ... --grace-period=0`, the client will - begin a graceful deletion and wait until the resource is fully deleted. To force - deletion immediately, use the `--force` flag. This prevents users from accidentally - allowing two Stateful Set pods to share the same persistent volume which could lead to data - corruption [#37263](https://github.com/kubernetes/kubernetes/pull/37263) - - -* Allow anonymous API server access, decorate authenticated users with system:authenticated group ([#32386](https://github.com/kubernetes/kubernetes/pull/32386), [@liggitt](https://github.com/liggitt)) - * kube-apiserver learned the '--anonymous-auth' flag, which defaults to true. When enabled, requests to the secure port that are not rejected by other configured authentication methods are treated as anonymous requests, and given a username of 'system:anonymous' and a group of 'system:unauthenticated'. - * Authenticated users are decorated with a 'system:authenticated' group. - * NOTE: anonymous access is enabled by default. If you rely on authentication alone to authorize access, change to use an authorization mode other than AlwaysAllow, or or set '--anonymous-auth=false'. - -* kubectl get -o jsonpath=... will now throw an error if the path is to a field not present in the json, even if the path is for a field valid for the type. This is a change from the pre-1.5 behavior, which would return the default value for some fields even if they were not present in the json. ([#37991](https://github.com/kubernetes/kubernetes/issues/37991), [@pwittrock](http://github.com/pwittrock)) - -* The strategicmerge patchMergeKey for VolumeMounts was changed from "name" to "mountPath". This was necessary because the name field refers to the name of the Volume, and is not a unique key for the VolumeMount. Multiple VolumeMounts will have the same Volume name if mounting the same volume more than once. The "mountPath" is verified to be unique and can act as the mergekey. ([#35071](https://github.coma/kubernetes/kubernetes/pull/35071), [@pwittrock](http://github.com/pwittrock)) - -## Deprecations - -* extensions/v1beta1.Jobs is deprecated, use batch/v1.Job instead ([#36355](https://github.com/kubernetes/kubernetes/pull/36355), [@soltysh](https://github.com/soltysh)) -* The kubelet --reconcile-cdir flag is deprecated because it has no function anymore. ([#35523](https://github.com/kubernetes/kubernetes/pull/35523), [@luxas](https://github.com/luxas)) -* Notice of deprecation for recycler [#36760](https://github.com/kubernetes/kubernetes/pull/36760) - -## Action Required Before Upgrading - -* batch/v2alpha1.ScheduledJob has been renamed, use batch/v2alpha1.CronJob instead ([#36021](https://github.com/kubernetes/kubernetes/pull/36021), [@soltysh](https://github.com/soltysh)) -* PetSet has been renamed to StatefulSet. - If you have existing PetSets, **you must perform extra migration steps** both - before and after upgrading to convert them to StatefulSets. ([docs](http://kubernetes.io/docs/tasks/manage-stateful-set/upgrade-pet-set-to-stateful-set/)) ([#35663](https://github.com/kubernetes/kubernetes/pull/35663), [@janetkuo](https://github.com/janetkuo)) -* If you are upgrading your Cluster Federation components from v1.4.x, please update your `federation-apiserver` and `federation-controller-manager` manifests to the new version ([#30601](https://github.com/kubernetes/kubernetes/pull/30601), [@madhusudancs](https://github.com/madhusudancs)) -* The deprecated kubelet --configure-cbr0 flag has been removed, and with that the "classic" networking mode as well. If you depend on this mode, please investigate whether the other network plugins `kubenet` or `cni` meet your needs. ([#34906](https://github.com/kubernetes/kubernetes/pull/34906), [@luxas](https://github.com/luxas)) -* New client-go structure, refer to kubernetes/client-go for versioning policy ([#34989](https://github.com/kubernetes/kubernetes/pull/34989), [@caesarxuchao](https://github.com/caesarxuchao)) -* The deprecated kube-scheduler --bind-pods-qps and --bind-pods burst flags have been removed, use --kube-api-qps and --kube-api-burst instead ([#34471](https://github.com/kubernetes/kubernetes/pull/34471), [@timothysc](https://github.com/timothysc)) -* If you used the [PodDisruptionBudget](http://kubernetes.io/docs/admin/disruptions/) feature in 1.4 (i.e. created `PodDisruptionBudget` objects), then **BEFORE** upgrading from 1.4 to 1.5, you must delete all `PodDisruptionBudget` objects (`policy/v1alpha1/PodDisruptionBudget`) that you have created. It is not possible to delete these objects after you upgrade, and their presence will prevent you from using the beta PodDisruptionBudget feature in 1.5 (which uses `policy/v1beta1/PodDisruptionBudget`). If you have already upgraded, you will need to downgrade the master to 1.4 to delete the `policy/v1alpha1/PodDisruptionBudget` objects. - -## External Dependency Version Information - -Continuous integration builds have used the following versions of external dependencies, however, this is not a strong recommendation and users should consult an appropriate installation or upgrade guide before deciding what versions of etcd, docker or rkt to use. - -* Docker versions 1.10.3 - 1.12.3 - * Docker version 1.11.2 known issues - - Kernel crash with Aufs storage driver on Debian Jessie ([#27885](https://github.com/kubernetes/kubernetes/issues/27885)) - which can be identified by the [node problem detector](http://kubernetes.io/docs/admin/node-problem/) - - Leaked File descriptors ([#275](https://github.com/docker/containerd/issues/275)) - - Additional memory overhead per container ([#21737](https://github.com/docker/docker/issues/21737)) - * Docker version 1.12.1 [has been validated](https://github.com/kubernetes/kubernetes/issues/28698) through the Kubernetes docker automated validation framework as has Docker version 1.12.3 - * Docker 1.10.3 contains [backports provided by RedHat](https://github.com/docker/docker/compare/v1.10.3...runcom:docker-1.10.3-stable) for known issues - * Docker versions as old as may 1.9.1 work with [known issues](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md#191) but this is not guaranteed -* rkt version 1.21.0 - * known issues with the rkt runtime are [listed here](http://kubernetes.io/docs/getting-started-guides/rkt/notes/) -* etcd version 2.2.1 - * etcd version 3.0.14 [has also been validated](https://k8s-gubernator.appspot.com/builds/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-etcd3/) but does require [specific configuration steps](https://coreos.com/blog/migrating-applications-etcd-v3.html) +## Major Themes + +- StatefulSets (ex-PetSets) + - StatefulSets are beta now (fixes and stabilization) +- Improved Federation Support + - New command: `kubefed` + - DaemonSets + - Deployments + - ConfigMaps +- Simplified Cluster Deployment + - Improvements to `kubeadm` + - HA Setup for Master +- Node Robustness and Extensibility + - Windows Server Container support + - CRI for pluggable container runtimes + - `kubelet` API supports authentication and authorization + +## Features + +Features for this release were tracked via the use of the [kubernetes/features](https://github.com/kubernetes/features) issues repo. Each Feature issue is owned by a Special Interest Group from [kubernetes/community](https://github.com/kubernetes/community) + +- **API Machinery** + - [beta] `kube-apiserver` support for the OpenAPI spec is moving from alpha to beta. The first [non-go client](https://github.com/kubernetes-incubator/client-python) is based on it ([kubernetes/features#53](https://github.com/kubernetes/features/issues/53)) +- **Apps** + - [stable] When replica sets cannot create pods, they will now report detail via the API about the underlying reason ([kubernetes/features#120](https://github.com/kubernetes/features/issues/120)) + - [stable] `kubectl apply` is now able to delete resources you no longer need with `--prune` ([kubernetes/features#128](https://github.com/kubernetes/features/issues/128)) + - [beta] Deployments that cannot make progress in rolling out the newest version will now indicate via the API they are blocked ([docs](http://kubernetes.io/docs/user-guide/deployments/#failed-deployment)) ([kubernetes/features#122](https://github.com/kubernetes/features/issues/122)) + - [beta] StatefulSets allow workloads that require persistent identity or per-instance storage to be created and managed on Kubernetes. ([docs](http://kubernetes.io/docs/concepts/abstractions/controllers/statefulsets/)) ([kubernetes/features#137](https://github.com/kubernetes/features/issues/137)) + - [beta] In order to preserve safety guarantees the cluster no longer force deletes pods on un-responsive nodes and users are now warned if they try to force delete pods via the CLI. ([docs](http://kubernetes.io/docs/tasks/manage-stateful-set/scale-stateful-set/)) ([kubernetes/features#119](https://github.com/kubernetes/features/issues/119)) +- **Auth** + - [alpha] Further polishing of the Role-based access control alpha API including a default set of cluster roles. ([docs](http://kubernetes.io/docs/admin/authorization/)) ([kubernetes/features#2](https://github.com/kubernetes/features/issues/2)) + - [beta] Added ability to authenticate/authorize access to the Kubelet API ([docs](http://kubernetes.io/docs/admin/kubelet-authentication-authorization/)) ([kubernetes/features#89](https://github.com/kubernetes/features/issues/89)) +- **AWS** + - [stable] Roles should appear in kubectl get nodes ([kubernetes/features#113](https://github.com/kubernetes/features/issues/113)) +- **Cluster Lifecycle** + - [alpha] Improved UX and usability for the kubeadm binary that makes it easy to get a new cluster running. ([docs](http://kubernetes.io/docs/getting-started-guides/kubeadm/)) ([kubernetes/features#11](https://github.com/kubernetes/features/issues/11)) +- **Cluster Ops** + - [alpha] Added ability to create/remove clusters w/highly available (replicated) masters on GCE using kube-up/kube-down scripts. ([docs](http://kubernetes.io/docs/admin/ha-master-gce/)) ([kubernetes/features#48](https://github.com/kubernetes/features/issues/48)) +- **Federation** + - [alpha] Support for ConfigMaps in federation. ([docs](http://kubernetes.io/docs/user-guide/federation/configmap/)) ([kubernetes/features#105](https://github.com/kubernetes/features/issues/105)) + - [alpha] Alpha level support for DaemonSets in federation. ([docs](http://kubernetes.io/docs/user-guide/federation/daemonsets/)) ([kubernetes/features#101](https://github.com/kubernetes/features/issues/101)) + - [alpha] Alpha level support for Deployments in federation. ([docs](http://kubernetes.io/docs/user-guide/federation/deployment/)) ([kubernetes/features#100](https://github.com/kubernetes/features/issues/100)) + - [alpha] Cluster federation: Added support for DeleteOptions.OrphanDependents for federation resources. ([docs](http://kubernetes.io/docs/user-guide/federation/#cascading-deletion)) ([kubernetes/features#99](https://github.com/kubernetes/features/issues/99)) + - [alpha] Introducing `kubefed`, a new command line tool to simplify federation control plane kubernetes.io/docs/admin/federation/kubefed/)) ([kubernetes/features#97](https://github.com/kubernetes/features/issues/97)) +- **Network** + - [stable] Services can reference another service by DNS name, rather than being hosted in pods ([kubernetes/features#33](https://github.com/kubernetes/features/issues/33)) + - [beta] Opt in source ip preservation for Services with Type NodePort or LoadBalancer ([docs](http://kubernetes.io/docs/tutorials/services/source-ip/)) ([kubernetes/features#27](https://github.com/kubernetes/features/issues/27)) + - [stable] Enable DNS Horizontal Autoscaling with beta ConfigMap parameters support ([docs](http://kubernetes.io/docs/tasks/administer-cluster/dns-horizontal-autoscaling/)) +- **Node** + - [alpha] Added ability to preserve access to host userns when userns remapping is enabled in container runtime ([kubernetes/features#127](https://github.com/kubernetes/features/issues/127)) + - [alpha] Introducing the v1alpha1 CRI API to allow pluggable container runtimes; an experimental docker-CRI integration is ready for testing and feedback. ([docs](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md)) ([kubernetes/features#54](https://github.com/kubernetes/features/issues/54)) + - [alpha] Kubelet launches container in a per pod cgroup hiearchy based on quality of service tier ([kubernetes/features#126](https://github.com/kubernetes/features/issues/126)) + - [beta] Kubelet integrates with memcg notification API to detect when a hard eviction threshold is crossed ([kubernetes/features#125](https://github.com/kubernetes/features/issues/125)) + - [beta] Introducing the beta version containerized node conformance test gcr.io/google_containers/node-test:0.2 for users to verify node setup. ([docs](http://kubernetes.io/docs/admin/node-conformance/)) ([kubernetes/features#84](https://github.com/kubernetes/features/issues/84)) +- **Scheduling** + - [alpha] Added support for accounting opaque integer resources. ([docs](http://kubernetes.io/docs/user-guide/compute-resources/#opaque-integer-resources-alpha-feature)) ([kubernetes/features#76](https://github.com/kubernetes/features/issues/76)) + - [beta] PodDisruptionBudget has been promoted to beta, can be used to safely drain nodes while respecting application SLO's ([docs](http://kubernetes.io/docs/tasks/administer-cluster/safely-drain-node/)) ([kubernetes/features#85](https://github.com/kubernetes/features/issues/85)) +- **UI** + - [stable] Dashboard UI now shows all user facing objects and their resource usage. ([docs](http://kubernetes.io/docs/user-guide/ui/)) ([kubernetes/features#136](https://github.com/kubernetes/features/issues/136)) +- **Windows** + - [alpha] Added support for Windows Server 2016 nodes and scheduling Windows Server Containers ([docs](http://kubernetes.io/docs/getting-started-guides/windows/)) ([kubernetes/features#116](https://github.com/kubernetes/features/issues/116)) + +## Known Issues + +Populated via [v1.5.0 known issues / FAQ accumulator](https://github.com/kubernetes/kubernetes/issues/37134) + +* CRI [known issues and + limitations](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md#kubernetes-v15-release-cri-v1alpha1) +* getDeviceNameFromMount() function doesn't return the volume path correctly when the volume path contains spaces [#37712](https://github.com/kubernetes/kubernetes/issues/37712) +* Federation alpha features do not have feature gates defined and +are hence enabled by default. This will be fixed in a future release. +[#38593](https://github.com/kubernetes/kubernetes/issues/38593) +* Federation control plane can be upgraded by updating the image +fields in the `Deployment` specs of the control plane components. +However, federation control plane upgrades were not tested in this +release [38537](https://github.com/kubernetes/kubernetes/issues/38537) + +## Notable Changes to Existing Behavior + +* Node controller no longer force-deletes pods from the api-server. ([#35235](https://github.com/kubernetes/kubernetes/pull/35235), [@foxish](https://github.com/foxish)) + * For StatefulSet (previously PetSet), this change means creation of + replacement pods is blocked until old pods are definitely not running + (indicated either by the kubelet returning from partitioned state, + deletion of the Node object, deletion of the instance in the cloud provider, + or force deletion of the pod from the api-server). + This helps prevent "split brain" scenarios in clustered applications by + ensuring that unreachable pods will not be presumed dead unless some + "fencing" operation has provided one of the above indications. + * For all other existing controllers except StatefulSet, this has no effect on + the ability of the controller to replace pods because the controllers do not + reuse pod names (they use generate-name). + * User-written controllers that reuse names of pod objects should evaluate this change. + * When deleting an object with `kubectl delete ... --grace-period=0`, the client will + begin a graceful deletion and wait until the resource is fully deleted. To force + deletion immediately, use the `--force` flag. This prevents users from accidentally + allowing two Stateful Set pods to share the same persistent volume which could lead to data + corruption [#37263](https://github.com/kubernetes/kubernetes/pull/37263) + + +* Allow anonymous API server access, decorate authenticated users with system:authenticated group ([#32386](https://github.com/kubernetes/kubernetes/pull/32386), [@liggitt](https://github.com/liggitt)) + * kube-apiserver learned the '--anonymous-auth' flag, which defaults to true. When enabled, requests to the secure port that are not rejected by other configured authentication methods are treated as anonymous requests, and given a username of 'system:anonymous' and a group of 'system:unauthenticated'. + * Authenticated users are decorated with a 'system:authenticated' group. + * NOTE: anonymous access is enabled by default. If you rely on authentication alone to authorize access, change to use an authorization mode other than AlwaysAllow, or or set '--anonymous-auth=false'. + +* kubectl get -o jsonpath=... will now throw an error if the path is to a field not present in the json, even if the path is for a field valid for the type. This is a change from the pre-1.5 behavior, which would return the default value for some fields even if they were not present in the json. ([#37991](https://github.com/kubernetes/kubernetes/issues/37991), [@pwittrock](http://github.com/pwittrock)) + +* The strategicmerge patchMergeKey for VolumeMounts was changed from "name" to "mountPath". This was necessary because the name field refers to the name of the Volume, and is not a unique key for the VolumeMount. Multiple VolumeMounts will have the same Volume name if mounting the same volume more than once. The "mountPath" is verified to be unique and can act as the mergekey. ([#35071](https://github.coma/kubernetes/kubernetes/pull/35071), [@pwittrock](http://github.com/pwittrock)) + +## Deprecations + +* extensions/v1beta1.Jobs is deprecated, use batch/v1.Job instead ([#36355](https://github.com/kubernetes/kubernetes/pull/36355), [@soltysh](https://github.com/soltysh)) +* The kubelet --reconcile-cdir flag is deprecated because it has no function anymore. ([#35523](https://github.com/kubernetes/kubernetes/pull/35523), [@luxas](https://github.com/luxas)) +* Notice of deprecation for recycler [#36760](https://github.com/kubernetes/kubernetes/pull/36760) + +## Action Required Before Upgrading + +* batch/v2alpha1.ScheduledJob has been renamed, use batch/v2alpha1.CronJob instead ([#36021](https://github.com/kubernetes/kubernetes/pull/36021), [@soltysh](https://github.com/soltysh)) +* PetSet has been renamed to StatefulSet. + If you have existing PetSets, **you must perform extra migration steps** both + before and after upgrading to convert them to StatefulSets. ([docs](http://kubernetes.io/docs/tasks/manage-stateful-set/upgrade-pet-set-to-stateful-set/)) ([#35663](https://github.com/kubernetes/kubernetes/pull/35663), [@janetkuo](https://github.com/janetkuo)) +* If you are upgrading your Cluster Federation components from v1.4.x, please update your `federation-apiserver` and `federation-controller-manager` manifests to the new version ([#30601](https://github.com/kubernetes/kubernetes/pull/30601), [@madhusudancs](https://github.com/madhusudancs)) +* The deprecated kubelet --configure-cbr0 flag has been removed, and with that the "classic" networking mode as well. If you depend on this mode, please investigate whether the other network plugins `kubenet` or `cni` meet your needs. ([#34906](https://github.com/kubernetes/kubernetes/pull/34906), [@luxas](https://github.com/luxas)) +* New client-go structure, refer to kubernetes/client-go for versioning policy ([#34989](https://github.com/kubernetes/kubernetes/pull/34989), [@caesarxuchao](https://github.com/caesarxuchao)) +* The deprecated kube-scheduler --bind-pods-qps and --bind-pods burst flags have been removed, use --kube-api-qps and --kube-api-burst instead ([#34471](https://github.com/kubernetes/kubernetes/pull/34471), [@timothysc](https://github.com/timothysc)) +* If you used the [PodDisruptionBudget](http://kubernetes.io/docs/admin/disruptions/) feature in 1.4 (i.e. created `PodDisruptionBudget` objects), then **BEFORE** upgrading from 1.4 to 1.5, you must delete all `PodDisruptionBudget` objects (`policy/v1alpha1/PodDisruptionBudget`) that you have created. It is not possible to delete these objects after you upgrade, and their presence will prevent you from using the beta PodDisruptionBudget feature in 1.5 (which uses `policy/v1beta1/PodDisruptionBudget`). If you have already upgraded, you will need to downgrade the master to 1.4 to delete the `policy/v1alpha1/PodDisruptionBudget` objects. + +## External Dependency Version Information + +Continuous integration builds have used the following versions of external dependencies, however, this is not a strong recommendation and users should consult an appropriate installation or upgrade guide before deciding what versions of etcd, docker or rkt to use. + +* Docker versions 1.10.3 - 1.12.3 + * Docker version 1.11.2 known issues + - Kernel crash with Aufs storage driver on Debian Jessie ([#27885](https://github.com/kubernetes/kubernetes/issues/27885)) + which can be identified by the [node problem detector](http://kubernetes.io/docs/admin/node-problem/) + - Leaked File descriptors ([#275](https://github.com/docker/containerd/issues/275)) + - Additional memory overhead per container ([#21737](https://github.com/docker/docker/issues/21737)) + * Docker version 1.12.1 [has been validated](https://github.com/kubernetes/kubernetes/issues/28698) through the Kubernetes docker automated validation framework as has Docker version 1.12.3 + * Docker 1.10.3 contains [backports provided by RedHat](https://github.com/docker/docker/compare/v1.10.3...runcom:docker-1.10.3-stable) for known issues + * Docker versions as old as may 1.9.1 work with [known issues](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG.md#191) but this is not guaranteed +* rkt version 1.21.0 + * known issues with the rkt runtime are [listed here](http://kubernetes.io/docs/getting-started-guides/rkt/notes/) +* etcd version 2.2.1 + * etcd version 3.0.14 [has also been validated](https://k8s-gubernator.appspot.com/builds/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-etcd3/) but does require [specific configuration steps](https://coreos.com/blog/migrating-applications-etcd-v3.html) diff --git a/releases/release-1.6/README.md b/releases/release-1.6/README.md index 46110a08b9f..b376d212e31 100644 --- a/releases/release-1.6/README.md +++ b/releases/release-1.6/README.md @@ -1,65 +1,65 @@ -# Proposed timeline for 1.6 -We will begin the 1.6 release the first week of 2017. -We will use the time between releases for planning, designing and bugfixes. - -The proposal below is identical in layout to the 1.4 and 1.5 plans with some -modifications: -- as before, key days aren't Fridays, since it can be hard to end milestones right up against weekends -- some sigs will focus on stabilization for 1.6, and there may be fewer new - feature proposals -- there are fewer major holidays and vacation breaks this quarter - -## 1.6 Release Schedule -- Dec 8 - Jan 3: planning/design/bugfix period -- Jan 3 (Tues) coding start (7w) -- Jan 24 (Tues) features repo freeze -- Jan 30th (Monday) v1.6.0-alpha.1 -- Feb 13th (Monday) v1.6.0-alpha.2 -- Feb 20th (Monday) Cut release-1.6 branch and v1.6.0-beta.0; Feature Burndown Meetings begin -- Feb 27th (Monday) Start code freeze -- Feb 28th (Tuesday) v1.6.0-beta.1 -- March 7th (Tuesday) - v1.6.0-beta.2 -- March 14th (Tuesday) Lift code freeze and v1.6.0-rc.1 -- March 22nd (Wednesday) - v1.6.0 (release!) - -## 1.6 Details - -### Jan 3 - Feb 27 -- 7 week coding period -- Release 1.6 alphas every 2 weeks - -### Feb 20 - Feb 24 -- Community Feature Burndown Meetings held two or three times this week. For those interested in joining please - join [the Google Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) -- Identify all features going into the release, and make sure alpha, beta, ga is - marked in features repo - -### Feb 27 - Mar 22 -- Enter code slush on head, no new features or major refactors -- Fix bugs, and test flakes -- Start Milestone Burndown meetings (2x per week until the week leading up the - release, then every day) - -### Mar 8 - Mar 22 -- Open head for 1.7 work on Mar 14, after 1.6 release branch has been fast-forwarded. -- Fix bugs and run tests, update docs -- Branch and cut second beta release on Mar 7 (Tuesday) -- Branch and cut release candidate on Mar 14 (Tuesday) -- Release 1.6 on March 22 (Wednesday) - - -# Key features -[Feature tracking spreadsheet -link](https://docs.google.com/spreadsheets/d/1nspIeRVNjAQHRslHQD1-6gPv99OcYZLMezrBe3Pfhhg/edit#gid=0) - -## Notable operational changes - -1. Starting in the 1.6 release the [release team](https://github.com/kubernetes/sig-release/blob/master/release-1.6/release_team.md) - will use the following procedure to identify release blocking issues - 1. Any issues listed in the [v1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6) - will be considered release blocking. It is everyone's responsibility to move non blocking issues out of the `v1.6` milestone. Items targeting 1.7 can be moved into the `v1.7` milestone. - milestones **or the release will not ship** - -# Contact us -- [via slack](https://kubernetes.slack.com/messages/k8s-release/) -- [via email](mailto:kubernetes-release@googlegroups.com) +# Proposed timeline for 1.6 +We will begin the 1.6 release the first week of 2017. +We will use the time between releases for planning, designing and bugfixes. + +The proposal below is identical in layout to the 1.4 and 1.5 plans with some +modifications: +- as before, key days aren't Fridays, since it can be hard to end milestones right up against weekends +- some sigs will focus on stabilization for 1.6, and there may be fewer new + feature proposals +- there are fewer major holidays and vacation breaks this quarter + +## 1.6 Release Schedule +- Dec 8 - Jan 3: planning/design/bugfix period +- Jan 3 (Tues) coding start (7w) +- Jan 24 (Tues) features repo freeze +- Jan 30th (Monday) v1.6.0-alpha.1 +- Feb 13th (Monday) v1.6.0-alpha.2 +- Feb 20th (Monday) Cut release-1.6 branch and v1.6.0-beta.0; Feature Burndown Meetings begin +- Feb 27th (Monday) Start code freeze +- Feb 28th (Tuesday) v1.6.0-beta.1 +- March 7th (Tuesday) - v1.6.0-beta.2 +- March 14th (Tuesday) Lift code freeze and v1.6.0-rc.1 +- March 22nd (Wednesday) - v1.6.0 (release!) + +## 1.6 Details + +### Jan 3 - Feb 27 +- 7 week coding period +- Release 1.6 alphas every 2 weeks + +### Feb 20 - Feb 24 +- Community Feature Burndown Meetings held two or three times this week. For those interested in joining please + join [the Google Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) +- Identify all features going into the release, and make sure alpha, beta, ga is + marked in features repo + +### Feb 27 - Mar 22 +- Enter code slush on head, no new features or major refactors +- Fix bugs, and test flakes +- Start Milestone Burndown meetings (2x per week until the week leading up the + release, then every day) + +### Mar 8 - Mar 22 +- Open head for 1.7 work on Mar 14, after 1.6 release branch has been fast-forwarded. +- Fix bugs and run tests, update docs +- Branch and cut second beta release on Mar 7 (Tuesday) +- Branch and cut release candidate on Mar 14 (Tuesday) +- Release 1.6 on March 22 (Wednesday) + + +# Key features +[Feature tracking spreadsheet +link](https://docs.google.com/spreadsheets/d/1nspIeRVNjAQHRslHQD1-6gPv99OcYZLMezrBe3Pfhhg/edit#gid=0) + +## Notable operational changes + +1. Starting in the 1.6 release the [release team](https://github.com/kubernetes/sig-release/blob/master/release-1.6/release_team.md) + will use the following procedure to identify release blocking issues + 1. Any issues listed in the [v1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6) + will be considered release blocking. It is everyone's responsibility to move non blocking issues out of the `v1.6` milestone. Items targeting 1.7 can be moved into the `v1.7` milestone. + milestones **or the release will not ship** + +# Contact us +- [via slack](https://kubernetes.slack.com/messages/k8s-release/) +- [via email](mailto:kubernetes-release@googlegroups.com) diff --git a/releases/release-1.6/features.csv b/releases/release-1.6/features.csv index d386cd62c11..bd6b9677a89 100644 --- a/releases/release-1.6/features.csv +++ b/releases/release-1.6/features.csv @@ -1,36 +1,36 @@ -Features,,SIG,Assignee,One Line Release Note Description,Needs Docs?,Docs PR,Needs Doc Review,Needs Tech Review,Merged,Notes -Alpha,8,,,,,,,,, -Beta,12,,,,,,,,, -Stable,9,,,,,,,,, -TOTAL,29,,,,,,,,, -Monitoring Pipeline Metrics HPA API ,Alpha,SIG-Autoscaling,DirectXMan12,The Horizontal Pod Autoscaler now supports drawing metrics throug the API server aggregator.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2720,Complete,Complete,yes, -Arbitrary/Custom Metrics in the Horizontal Pod Autoscaler,Alpha,SIG-Autoscaling,DirectXMan12,"The Horizontal Pod Autoscaler now supports scaling on multiple, custom metrics.",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2720,Complete,Complete,yes, -Integrate Cluster Bootstrap/Discovery with Kubenetes Core,Alpha,SIG-ClusterLifecycle,jbeda,New Bootstrap Token authentication and management method. Works well with kubeadm.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2779,Complete,Complete,yes,@lukemarsden pulling together release notes -Support out-of-process and out-of-tree cloud providers,Alpha,SIG-ClusterLifecycle,wlan0,Adds a new cloud-controller-manager binary that may be used for testing the new out-of-core cloudprovider flow,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2900,Complete,Complete,yes, -"Represent node problems using NoExecute taint, and allow user-defined eviction time threshold using tolerationSeconds",Alpha,SIG-Scheduling,gmarek,"Per-pod configurable duration to stay bound to a node that becomes unreachable, not ready, or has other problems",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2774/files,Complete,Complete,yes, -Pod Injection Policy,Alpha,SIG-Service-Catalog,jessfraz,Adds a new API resource `PodPreset` and admission controller to enable defining cross-cutting injection of Volumes and Environment into Pods.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2807,Complete,Complete,yes, -All in one volume proposal ,Alpha,SIG-Storage,jpeeler,"A new volume driver capable of projecting secrets, configmaps, and downward API items into the same directory.",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2601,Complete,Complete,yes, -Flex volume API and Improved lifecycle (flexvolume) ,Alpha,SIG-Storage,chakri-nelluri,Flex volume plugin is updated to support attach/detach interfaces. It broke backward compatibility. Please update your drivers and implement the new callouts.,no,No docs required,n/a,n/a,n/a, -DaemonSet updates,Beta,SIG-Apps,"lukaszo, chiachenk ",Implement the update feature for DaemonSet.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2878,Complete,Complete,yes, -Allow deployments to correctly indicate they are failing to deploy,Beta,SIG-Apps,kargakis,Deployments that cannot make progress in rolling out the newest version will now indicate via the API they are blocked,no,No docs required,n/a,n/a,n/a, -Role-based access control,Beta,SIG-Auth,liggitt,"RBAC API is promoted to v1beta1 (rbac.authorization.k8s.io/v1beta1), and defines default roles for control plane, node, and controller components.",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2618,Complete,Complete,yes, -Kubelet TLS Bootstrap,Beta,SIG-ClusterLifecycle,gtank,Introduces an API for the Kubelet to request TLS certificates from the API server.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2939,Complete,Complete,yes, -Dramatically Simplify Kubernetes Cluster Creation,Beta,SIG-ClusterLifecycle,jbeda,kubeadm is enhanced and improved with a baseline feature set and command line flags that are now marked as beta.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2829,Complete,Complete,yes,@lukemarden pulling together release notes -It should be fast and painless to deploy a Federation of Kubernetes clusters,Beta,SIG-Federation,madhusudancs,"`kubefed` has graduated to beta: supports hosting federation on on-prem clusters, automatically configures `kube-dns` in joining clusters and allows passing arguments to federation components.",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2899,Complete,Complete,yes, -Redefine the Container Runtime Interface,Beta,SIG-Node,yujuhong,The Docker-CRI implementation is Beta and is enabled by default in kubelet. You can disable it by --enable-cri=false.,no,No docs required ,n/a,n/a,n/a, -Inter-pod affinity/anti-affinity ,Beta,SIG-Scheduling,davidopp,"Rules for spreading and packing pods relative to one another, within arbitrary topologies (node, zone, etc.)",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2699,Complete,Complete,yes, -Node affinity,Beta,SIG-Scheduling,davidopp,Rules for restricting which node(s) a pod can schedule onto,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2699,Complete,Complete,yes, -Multiple/user-defined schedulers ,Beta,SIG-Scheduling,timothysc,User can run multiple schedulers in parallel resposible for different sets of pods,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2378,Complete,Complete,yes, -Taints/tolerations including forgiveness (tolerationSeconds),Beta,SIG-Scheduling,davidopp,"Rules for ""repelling"" pods from nodes by default (support use cases like dedicated nodes, and reserve nodes with special features for pods that need those features)",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2774/files,Complete,Complete,yes, -Support Volume Mount Options,Beta,SIG-Storage,gnufied,Added support for mount options in persistent volumes,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2743,Complete,Complete,yes, -etcd v3 as storage backend for APIServer,Stable,SIG-API-machinery,timothysc,The internal storage layer for kubernetes cluster state has been updated to use etcd v3 by default for new clusters. Old clusters will have to plan for a data migration window.,yes,"https://github.com/kubernetes/kubernetes.github.io/pull/2763 -https://github.com/kubernetes/kubernetes.github.io/pull/2767",Complete,Complete,yes, -Add support for pod and qos level cgroups,Stable,SIG-Node,derekwaynecarr,kubelet launches pods in a new cgroup hierarchy to better enforce quality of service. Operators must drain all pods from their nodes prior to upgrade of the kubelet. They must ensure the configured cgroup driver matches their associated container runtime cgroup driver.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2841,Complete,Complete,yes,this feature requires that operators drain their nodes prior to upgrade of the kubelet -Configurable Dynamic Provisioning aka StorageClass,Stable,SIG-Storage,jsafrane,StorageClass API is promoted to v1 (storage.k8s.io/v1),yes,https://github.com/kubernetes/kubernetes.github.io/pull/2686,Complete,Complete,yes, -Default Storage Classes for Cloud Providers,Stable,SIG-Storage,jsafrane ,"Default storage classes are deployed during installation on Azure, AWS, GCE, OpenStack and vSphere",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2745,Complete,Complete,yes, -Create environment variables from all keys in a Secret/Configmap,Stable,SIG-Storage,pmorie,Populate environment variables from a configmap or secret.,yes,"https://github.com/kubernetes/kubernetes.github.io/pull/1967 -https://github.com/kubernetes/kubernetes.github.io/pull/2334",Complete,Complete,yes, -External provisioners,Stable,SIG-Storage,wongma7 ,Support for user-written/run dynamic PV provisioners. See github.com/kubernetes-incubator/external-storage for a golang library and examples,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2843,Complete,Complete,yes, -DellEMC ScaleIO Volume Plugin,Stable,SIG-Storage,vladimirvivien,ScaleIO Kubernetes Volume Plugin added enabling pods to seamlessly access and use data stored on ScaleIO volumes.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2741,Complete,Complete,yes, -Portworx Volume Plugin,Stable,SIG-Storage,adityadani ,"Portworx Volume Plugin added capability to use [Portworx](http://www.portworx.com) as a storage provider for Kubernetes clusters. Portworx pools your servers capacity and turns your servers or cloud instances into converged, highly available compute and storage nodes.",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2854,Complete,Complete,yes, +Features,,SIG,Assignee,One Line Release Note Description,Needs Docs?,Docs PR,Needs Doc Review,Needs Tech Review,Merged,Notes +Alpha,8,,,,,,,,, +Beta,12,,,,,,,,, +Stable,9,,,,,,,,, +TOTAL,29,,,,,,,,, +Monitoring Pipeline Metrics HPA API ,Alpha,SIG-Autoscaling,DirectXMan12,The Horizontal Pod Autoscaler now supports drawing metrics throug the API server aggregator.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2720,Complete,Complete,yes, +Arbitrary/Custom Metrics in the Horizontal Pod Autoscaler,Alpha,SIG-Autoscaling,DirectXMan12,"The Horizontal Pod Autoscaler now supports scaling on multiple, custom metrics.",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2720,Complete,Complete,yes, +Integrate Cluster Bootstrap/Discovery with Kubenetes Core,Alpha,SIG-ClusterLifecycle,jbeda,New Bootstrap Token authentication and management method. Works well with kubeadm.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2779,Complete,Complete,yes,@lukemarsden pulling together release notes +Support out-of-process and out-of-tree cloud providers,Alpha,SIG-ClusterLifecycle,wlan0,Adds a new cloud-controller-manager binary that may be used for testing the new out-of-core cloudprovider flow,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2900,Complete,Complete,yes, +"Represent node problems using NoExecute taint, and allow user-defined eviction time threshold using tolerationSeconds",Alpha,SIG-Scheduling,gmarek,"Per-pod configurable duration to stay bound to a node that becomes unreachable, not ready, or has other problems",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2774/files,Complete,Complete,yes, +Pod Injection Policy,Alpha,SIG-Service-Catalog,jessfraz,Adds a new API resource `PodPreset` and admission controller to enable defining cross-cutting injection of Volumes and Environment into Pods.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2807,Complete,Complete,yes, +All in one volume proposal ,Alpha,SIG-Storage,jpeeler,"A new volume driver capable of projecting secrets, configmaps, and downward API items into the same directory.",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2601,Complete,Complete,yes, +Flex volume API and Improved lifecycle (flexvolume) ,Alpha,SIG-Storage,chakri-nelluri,Flex volume plugin is updated to support attach/detach interfaces. It broke backward compatibility. Please update your drivers and implement the new callouts.,no,No docs required,n/a,n/a,n/a, +DaemonSet updates,Beta,SIG-Apps,"lukaszo, chiachenk ",Implement the update feature for DaemonSet.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2878,Complete,Complete,yes, +Allow deployments to correctly indicate they are failing to deploy,Beta,SIG-Apps,kargakis,Deployments that cannot make progress in rolling out the newest version will now indicate via the API they are blocked,no,No docs required,n/a,n/a,n/a, +Role-based access control,Beta,SIG-Auth,liggitt,"RBAC API is promoted to v1beta1 (rbac.authorization.k8s.io/v1beta1), and defines default roles for control plane, node, and controller components.",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2618,Complete,Complete,yes, +Kubelet TLS Bootstrap,Beta,SIG-ClusterLifecycle,gtank,Introduces an API for the Kubelet to request TLS certificates from the API server.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2939,Complete,Complete,yes, +Dramatically Simplify Kubernetes Cluster Creation,Beta,SIG-ClusterLifecycle,jbeda,kubeadm is enhanced and improved with a baseline feature set and command line flags that are now marked as beta.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2829,Complete,Complete,yes,@lukemarden pulling together release notes +It should be fast and painless to deploy a Federation of Kubernetes clusters,Beta,SIG-Federation,madhusudancs,"`kubefed` has graduated to beta: supports hosting federation on on-prem clusters, automatically configures `kube-dns` in joining clusters and allows passing arguments to federation components.",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2899,Complete,Complete,yes, +Redefine the Container Runtime Interface,Beta,SIG-Node,yujuhong,The Docker-CRI implementation is Beta and is enabled by default in kubelet. You can disable it by --enable-cri=false.,no,No docs required ,n/a,n/a,n/a, +Inter-pod affinity/anti-affinity ,Beta,SIG-Scheduling,davidopp,"Rules for spreading and packing pods relative to one another, within arbitrary topologies (node, zone, etc.)",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2699,Complete,Complete,yes, +Node affinity,Beta,SIG-Scheduling,davidopp,Rules for restricting which node(s) a pod can schedule onto,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2699,Complete,Complete,yes, +Multiple/user-defined schedulers ,Beta,SIG-Scheduling,timothysc,User can run multiple schedulers in parallel resposible for different sets of pods,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2378,Complete,Complete,yes, +Taints/tolerations including forgiveness (tolerationSeconds),Beta,SIG-Scheduling,davidopp,"Rules for ""repelling"" pods from nodes by default (support use cases like dedicated nodes, and reserve nodes with special features for pods that need those features)",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2774/files,Complete,Complete,yes, +Support Volume Mount Options,Beta,SIG-Storage,gnufied,Added support for mount options in persistent volumes,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2743,Complete,Complete,yes, +etcd v3 as storage backend for APIServer,Stable,SIG-API-machinery,timothysc,The internal storage layer for kubernetes cluster state has been updated to use etcd v3 by default for new clusters. Old clusters will have to plan for a data migration window.,yes,"https://github.com/kubernetes/kubernetes.github.io/pull/2763 +https://github.com/kubernetes/kubernetes.github.io/pull/2767",Complete,Complete,yes, +Add support for pod and qos level cgroups,Stable,SIG-Node,derekwaynecarr,kubelet launches pods in a new cgroup hierarchy to better enforce quality of service. Operators must drain all pods from their nodes prior to upgrade of the kubelet. They must ensure the configured cgroup driver matches their associated container runtime cgroup driver.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2841,Complete,Complete,yes,this feature requires that operators drain their nodes prior to upgrade of the kubelet +Configurable Dynamic Provisioning aka StorageClass,Stable,SIG-Storage,jsafrane,StorageClass API is promoted to v1 (storage.k8s.io/v1),yes,https://github.com/kubernetes/kubernetes.github.io/pull/2686,Complete,Complete,yes, +Default Storage Classes for Cloud Providers,Stable,SIG-Storage,jsafrane ,"Default storage classes are deployed during installation on Azure, AWS, GCE, OpenStack and vSphere",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2745,Complete,Complete,yes, +Create environment variables from all keys in a Secret/Configmap,Stable,SIG-Storage,pmorie,Populate environment variables from a configmap or secret.,yes,"https://github.com/kubernetes/kubernetes.github.io/pull/1967 +https://github.com/kubernetes/kubernetes.github.io/pull/2334",Complete,Complete,yes, +External provisioners,Stable,SIG-Storage,wongma7 ,Support for user-written/run dynamic PV provisioners. See github.com/kubernetes-incubator/external-storage for a golang library and examples,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2843,Complete,Complete,yes, +DellEMC ScaleIO Volume Plugin,Stable,SIG-Storage,vladimirvivien,ScaleIO Kubernetes Volume Plugin added enabling pods to seamlessly access and use data stored on ScaleIO volumes.,yes,https://github.com/kubernetes/kubernetes.github.io/pull/2741,Complete,Complete,yes, +Portworx Volume Plugin,Stable,SIG-Storage,adityadani ,"Portworx Volume Plugin added capability to use [Portworx](http://www.portworx.com) as a storage provider for Kubernetes clusters. Portworx pools your servers capacity and turns your servers or cloud instances into converged, highly available compute and storage nodes.",yes,https://github.com/kubernetes/kubernetes.github.io/pull/2854,Complete,Complete,yes, Customized mounts in chroot to GA ,Stable,SIG-Storage,jingxu97,"Add support to use NFSv3, NFSv4, and GlusterFS on GCI image cluster",yes,https://github.com/kubernetes/community/pull/466,Complete,Complete,yes, \ No newline at end of file diff --git a/releases/release-1.6/flake-reports/2017-03-03.md b/releases/release-1.6/flake-reports/2017-03-03.md index 812cbde94c0..b8578ca3ffb 100644 --- a/releases/release-1.6/flake-reports/2017-03-03.md +++ b/releases/release-1.6/flake-reports/2017-03-03.md @@ -1,54 +1,54 @@ -### Summary - -- [Total Flakes](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake): 456 (-53 from last report) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows%20milestone%3Av1.6): 168 (-8 from last report) - -#### Doing Better -- AWS (-100%) -- CLI (−96.774) -- Autoscaling (-29.4117%) -- Node (−11.765%) -- Network (−10.714) -- Scheduling (−6.667%) -- Apps (−2.325%) - - -#### Doing Worse -- Federation (+50.000%) -- Storage (+40%) -- Auth (+NaN%) - -#### No Progress -- API Machinery -- Big Data -- Cluster Lifecycle -- Instrumentation -- Scalability - - -### Flakes by SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fapi-machinery%20milestone%3Av1.6): 17 (unchanged from last report) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Faws%20%20milestone%3Av1.6): 0 (-2 from last report) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fapps%20milestone%3Av1.6): 42 (-1 from last report) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fauth%20%20milestone%3Av1.6): 2 (**+2 from last report**) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fautoscaling%20milestone%3Av1.6): 10 (-7 from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fbig-data%20milestone%3Av1.6): 1 (unchanged from last report) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fcli%20%20milestone%3Av1.6): 1 (-30 from last report) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fcluster-lifecycle%20milestone%3Av1.6): 5 (unchanged from last report) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fcluster-ops%20milestone%3Av1.6): 0 (unchanged from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fcontributor-experience%20milestone%3Av1.6): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fdocs%20milestone%3Av1.6): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Ffederation%20milestone%3Av1.6): 9 (**+3 from last report**) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Finstrumentation%20%20milestone%3Av1.6): 4 (unchanged from last report) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fnetwork%20milestone%3Av1.6): 50 (-6 from last report) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fnode%20milestone%3Av1.6%20): 75 (-10 from last report) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fon-prem%20milestone%3Av1.6): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fopenstack%20milestone%3Av1.6): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fpm%20milestone%3Av1.6): 0 (unchange from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fscalability%20milestone%3Av1.6): 3 (unchanged from last report) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fscheduling%20milestone%3Av1.6): 14 (-1 from last report) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fservice-catalog%20milestone%3Av1.6): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fstorage%20milestone%3Av1.6): 14 (**+4 from last report**) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Ftesting%20milestone%3Av1.6): 0 (unchanged from last report) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fui%20milestone%3Av1.6): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fwindows%20milestone%3Av1.6): 0 (unchanged from last report) +### Summary + +- [Total Flakes](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake): 456 (-53 from last report) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows%20milestone%3Av1.6): 168 (-8 from last report) + +#### Doing Better +- AWS (-100%) +- CLI (−96.774) +- Autoscaling (-29.4117%) +- Node (−11.765%) +- Network (−10.714) +- Scheduling (−6.667%) +- Apps (−2.325%) + + +#### Doing Worse +- Federation (+50.000%) +- Storage (+40%) +- Auth (+NaN%) + +#### No Progress +- API Machinery +- Big Data +- Cluster Lifecycle +- Instrumentation +- Scalability + + +### Flakes by SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fapi-machinery%20milestone%3Av1.6): 17 (unchanged from last report) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Faws%20%20milestone%3Av1.6): 0 (-2 from last report) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fapps%20milestone%3Av1.6): 42 (-1 from last report) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fauth%20%20milestone%3Av1.6): 2 (**+2 from last report**) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fautoscaling%20milestone%3Av1.6): 10 (-7 from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fbig-data%20milestone%3Av1.6): 1 (unchanged from last report) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fcli%20%20milestone%3Av1.6): 1 (-30 from last report) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fcluster-lifecycle%20milestone%3Av1.6): 5 (unchanged from last report) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fcluster-ops%20milestone%3Av1.6): 0 (unchanged from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fcontributor-experience%20milestone%3Av1.6): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fdocs%20milestone%3Av1.6): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Ffederation%20milestone%3Av1.6): 9 (**+3 from last report**) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Finstrumentation%20%20milestone%3Av1.6): 4 (unchanged from last report) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fnetwork%20milestone%3Av1.6): 50 (-6 from last report) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fnode%20milestone%3Av1.6%20): 75 (-10 from last report) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fon-prem%20milestone%3Av1.6): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fopenstack%20milestone%3Av1.6): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fpm%20milestone%3Av1.6): 0 (unchange from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fscalability%20milestone%3Av1.6): 3 (unchanged from last report) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fscheduling%20milestone%3Av1.6): 14 (-1 from last report) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fservice-catalog%20milestone%3Av1.6): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fstorage%20milestone%3Av1.6): 14 (**+4 from last report**) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Ftesting%20milestone%3Av1.6): 0 (unchanged from last report) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fui%20milestone%3Av1.6): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20label%3Asig%2Fwindows%20milestone%3Av1.6): 0 (unchanged from last report) diff --git a/releases/release-1.6/go-signal-reports/2017-03-06.md b/releases/release-1.6/go-signal-reports/2017-03-06.md index 313bfb6e44d..204d97e60e6 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-06.md +++ b/releases/release-1.6/go-signal-reports/2017-03-06.md @@ -1,136 +1,136 @@ -## Status: *NO GO* -### Reasons -- Bugs exist in 1.6 milestone -- Flakes exist in 1.6 milestone -- Tests unstable -- Skew tests not running - -## Table Of Contents -- [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required) -- [Bugs](#bugs) - - [Action Required](#action-required-1) -- [Test Failures](#test-failures) - - [Action Required](#action-required-2) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-3) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-4) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-5) - -## Flakes -- [Total](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 337 (-119 from last report) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 162 (-6 from last report) - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 2 (-15 from last report) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 39 (-3 from last report) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (-2 from last report) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 10 (unchanged from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 1 (unchanged from last report) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 1 (unchanged from last report) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 5 (unchanged from last report) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 10 (**+1 from last report**) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 3 (-1 from last report) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 49 (-1 from last report) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 25 (-50 from last report) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 3 (unchanged from last report) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 6 (-8 from last report) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 12 (-2 from last report) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - - -### Action Required -- Help route all flakes into SIGs -- Move all non release blocking issues into the 1.6.1 or 1.7 milestones by 2017-03-10 -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG - -## Bugs -- [Total in Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 17 - -### Action Required -- Bug owners please provide regular status updates for all bugs with fix or triage in progress -- SIGs please close fixed bug issues or move non release blocking bugs into the 1.6.1 or 1.7 milestone - -## Test Failures -### gce-es-logging -- [k8s.io] Cluster level logging using Elasticsearch [Feature:Elasticsearch] should check that logs from containers are ingested into Elasticsearch - -### gce-examples -- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandraChanges (TG: https://github.com/kubernetes/kubernetes/compare/ac05be7...50943d1) -- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulsetChanges (TG: https://github.com/kubernetes/kubernetes/compare/9cbaff9...c36eee2) -- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast - -### gce-statefulset -- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working CockroachDB cluster -- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working mysql cluster -- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working redis cluster -- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working zookeeper cluster - -### gce-serial -#### gci-gce-serial -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node (TG: https://github.com/kubernetes/kubernetes/compare/815b340...f7c07a1) -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should eagerly create replacement pod during network partition when termination grace is non-zero (TG: https://github.com/kubernetes/kubernetes/compare/8cc7475...102f267) -- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available (TG: https://github.com/kubernetes/kubernetes/compare/93a3efd...2ebf6ed) -- [k8s.io] Services should work after restarting apiserver [Disruptive] - - -### kubelet-serial-gce-e2e -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Pods with Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container[k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Pods with Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [2] -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Pods with Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [3] -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Pods with Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [4] -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Pods with Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [5] -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [2] -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [3] -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [4] -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [5] -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: One Non-restarting Container Should eventually garbage collect containers when we exceed the number of dead containers per container -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: One Non-restarting Container Should eventually garbage collect containers when we exceed the number of dead containers per container [2] -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: One Non-restarting Container Should eventually garbage collect containers when we exceed the number of dead containers per container [3] -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: One Non-restarting Container Should eventually garbage collect containers when we exceed the number of dead containers per container [4] -- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: One Non-restarting Container Should eventually garbage collect containers when we exceed the number of dead containers per container [5] - -### Action Required -- SIG Node address Garbage Collection Test Regression -- StatefulSet regression addressed - -## Suite Failures -- [GKE Serial](https://testgrid.k8s.io/google-gke#gke-serial) -- [GCE Examples](https://testgrid.k8s.io/google-gce#gce-examples) -- [GCE HA Master](https://testgrid.k8s.io/google-gce#gce-ha-master) -- [etcd Upgrades](https://testgrid.k8s.io/etcd-upgrades) - -### Action Required -- GKE Suite Owner must be identified -- GCE Suite Owner must be identified - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 33 - -### Action Required -- Feature owners fill out feature template by 10 March 2017 -- Feature owners submit docs PR which references issue in features repo by 13 March 2017 -- Feature owners prepare release notes by 13 March 2017 -- Address etcd upgrade test failures - -## Release Machinery -- Version skew tests are still not up. This presents a major threat to the release schedule as it is impossible - to verify regressions between minor release versions and mixed version clusters (as would exist during a rolling - upgrade) - -### Action Required -- Finish release infrastructure setup +## Status: *NO GO* +### Reasons +- Bugs exist in 1.6 milestone +- Flakes exist in 1.6 milestone +- Tests unstable +- Skew tests not running + +## Table Of Contents +- [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required) +- [Bugs](#bugs) + - [Action Required](#action-required-1) +- [Test Failures](#test-failures) + - [Action Required](#action-required-2) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-3) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-4) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-5) + +## Flakes +- [Total](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 337 (-119 from last report) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 162 (-6 from last report) + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 2 (-15 from last report) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 39 (-3 from last report) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (-2 from last report) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 10 (unchanged from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 1 (unchanged from last report) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 1 (unchanged from last report) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 5 (unchanged from last report) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 10 (**+1 from last report**) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 3 (-1 from last report) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 49 (-1 from last report) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 25 (-50 from last report) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 3 (unchanged from last report) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 6 (-8 from last report) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 12 (-2 from last report) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + + +### Action Required +- Help route all flakes into SIGs +- Move all non release blocking issues into the 1.6.1 or 1.7 milestones by 2017-03-10 +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG + +## Bugs +- [Total in Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 17 + +### Action Required +- Bug owners please provide regular status updates for all bugs with fix or triage in progress +- SIGs please close fixed bug issues or move non release blocking bugs into the 1.6.1 or 1.7 milestone + +## Test Failures +### gce-es-logging +- [k8s.io] Cluster level logging using Elasticsearch [Feature:Elasticsearch] should check that logs from containers are ingested into Elasticsearch + +### gce-examples +- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandraChanges (TG: https://github.com/kubernetes/kubernetes/compare/ac05be7...50943d1) +- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulsetChanges (TG: https://github.com/kubernetes/kubernetes/compare/9cbaff9...c36eee2) +- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast + +### gce-statefulset +- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working CockroachDB cluster +- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working mysql cluster +- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working redis cluster +- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working zookeeper cluster + +### gce-serial +#### gci-gce-serial +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node (TG: https://github.com/kubernetes/kubernetes/compare/815b340...f7c07a1) +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should eagerly create replacement pod during network partition when termination grace is non-zero (TG: https://github.com/kubernetes/kubernetes/compare/8cc7475...102f267) +- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available (TG: https://github.com/kubernetes/kubernetes/compare/93a3efd...2ebf6ed) +- [k8s.io] Services should work after restarting apiserver [Disruptive] + + +### kubelet-serial-gce-e2e +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Pods with Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container[k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Pods with Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [2] +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Pods with Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [3] +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Pods with Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [4] +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Pods with Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [5] +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [2] +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [3] +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [4] +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: Many Restarting Containers Should eventually garbage collect containers when we exceed the number of dead containers per container [5] +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: One Non-restarting Container Should eventually garbage collect containers when we exceed the number of dead containers per container +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: One Non-restarting Container Should eventually garbage collect containers when we exceed the number of dead containers per container [2] +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: One Non-restarting Container Should eventually garbage collect containers when we exceed the number of dead containers per container [3] +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: One Non-restarting Container Should eventually garbage collect containers when we exceed the number of dead containers per container [4] +- [k8s.io] GarbageCollect [Serial] Garbage Collection Test: One Non-restarting Container Should eventually garbage collect containers when we exceed the number of dead containers per container [5] + +### Action Required +- SIG Node address Garbage Collection Test Regression +- StatefulSet regression addressed + +## Suite Failures +- [GKE Serial](https://testgrid.k8s.io/google-gke#gke-serial) +- [GCE Examples](https://testgrid.k8s.io/google-gce#gce-examples) +- [GCE HA Master](https://testgrid.k8s.io/google-gce#gce-ha-master) +- [etcd Upgrades](https://testgrid.k8s.io/etcd-upgrades) + +### Action Required +- GKE Suite Owner must be identified +- GCE Suite Owner must be identified + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 33 + +### Action Required +- Feature owners fill out feature template by 10 March 2017 +- Feature owners submit docs PR which references issue in features repo by 13 March 2017 +- Feature owners prepare release notes by 13 March 2017 +- Address etcd upgrade test failures + +## Release Machinery +- Version skew tests are still not up. This presents a major threat to the release schedule as it is impossible + to verify regressions between minor release versions and mixed version clusters (as would exist during a rolling + upgrade) + +### Action Required +- Finish release infrastructure setup diff --git a/releases/release-1.6/go-signal-reports/2017-03-08.md b/releases/release-1.6/go-signal-reports/2017-03-08.md index 1f3c7a08413..74c9dcf143d 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-08.md +++ b/releases/release-1.6/go-signal-reports/2017-03-08.md @@ -1,151 +1,151 @@ -## Status: *NO GO* -### Reasons -- Bugs exist in 1.6 milestone -- Flakes exist in 1.6 milestone -- Open issues in 1.6 milestone -- Tests unstable -- Skew test failures -- Upgrade test failures - -## Table Of Contents -- [Issues](#issues) - - [Action Required](#action-required) - - [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required-1) - - [Bugs](#bugs) - - [Action Required](#action-required-2) -- [Test Failures](#test-failures) - - [Action Required](#action-required-3) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-4) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-5) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-6) - -## Issues -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 617 - -### Action required -- Ensure all issues in milestone are release blocking -- Ensure all issues in milestone have SIG routing label -- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! -- Move all non blocking issues into the 1.6.1 or 1.7 milestones **do not remove the milestone of the issue** -- Close issues which have been addressed - -### Flakes -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 321 (-16 from last report) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 166 (**+4 from last report**) - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 6 (**+4 from last report**) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 33 (-6 from last report) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 1 (**+1 from last report**) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 4 (-6 from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 1 (**unchanged from last report**) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 1 (**unchanged from last report**) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 5 (**unchanged from last report**) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 10 (**unchanged from last report**) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 3 (**unchanged from last report**) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 48 (-1 from last report) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 26 (**+1 from last report**) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 1 (-2 from last report) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 7 (**+1 from last report**) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 11 (-1 from last report) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - -#### Action Required -- Help route all flakes into SIGs -- **Do not open a flake issue without assigning a SIG to that issue** -- Move all non release blocking issues into the 1.6.1 or 1.7 milestones by 2017-03-10 -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG - -### Bugs -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 144 (**+127 from last report due to moving all issues of `kind/bug` into the 1.6 milestone**) - -#### Action Required -- Bug assignees please label all bugs with the appropriate SIG(s) -- BUg assignees please move all non release blocking bugs into either the 1.6.1 or 1.7 milestones **do not simply remove the milestone** -- Bug assignees please provide regular status updates for all bugs with fix or triage in progress -- Bug assignees and SIGs please close fixed bugs - -## Test Failures -- [k8s.io] Federation apiserver [Feature:Federation] Cluster objects [Serial] should be created and deleted successfully -- [k8s.io] Cluster level logging using Elasticsearch [Feature:Elasticsearch] should check that logs from containers are ingested into Elasticsearch -- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra -- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset -- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast -- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting a pod accessing the NFS vol -- [k8s.io] Cluster level logging using GCL [Slow] [Flaky] should create a constant load with short-living pods and ensure logs delivery -- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a file written to the mount before kubelet restart is stat-able after restart. -- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns. -- [k8s.io] InodeEviction [Slow] [Serial] [Disruptive] [Flaky] when we run containers that should cause Disk Pressure due to Inodes should eventually see Disk Pressure due to Inodes, and then evict all of the correct pods [5] -- [k8s.io] Garbage collector [Feature:GarbageCollector] should keep the rc around until all its pods are deleted if the deleteOptions says soChanges -- [k8s.io] Kubectl client [k8s.io] Simple pod should handle in-cluster config -- [k8s.io] Services should work after restarting apiserver [Disruptive] -- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node -- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working CockroachDB cluster -- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working mysql cluster -- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working redis cluster -- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working zookeeper cluster - - - -### Action Required -- Please address all failing tests -- Please add SIG routing labels to issued opened due to test failure - -## Suite Failures -- [Federation, GCE](https://testgrid.k8s.io/google-federation#gce) -- [Federation, GCI-GKE](https://testgrid.k8s.io/google-federation#gci-gce) -- [Node, heapster push](https://testgrid.k8s.io/google-node#heapster-push) -- [1.5 -> 1.6 GCI kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-gci-kubectl-skew) -- [1.5 -> 1.6 Container VM kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-cvm-kubectl-skew) -- [GKE 1.5 -> 1.6 Container VM kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-1.5-1.6-cvm-kubectl-skew) -- [GKE 1.5 -> 1.6 GCI kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-1.5-1.6-gci-kubectl-skew) -- [GCE 1.5 -> 1.6 upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster) -- [GCE 1.5 -> 1.6 upgrade cluster new](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new) -- [GCE 1.5 -> 1.6 upgrade master](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master) -- [GKE 1.5 -> 1.6 upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster) -- [GKE 1.5 -> 1.6 GCI upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster) -- [GKE Serial 1.6](https://testgrid.k8s.io/release-1.6-blocking#gke-serial-1.6) -- [GKE GCI Serial 1.6](https://testgrid.k8s.io/release-1.6-blocking#gci-gke-serial-1.6) -- [GCE Federation 1.6](https://testgrid.k8s.io/release-1.6-blocking#gce-federation-1.6) - -### Action Required -- GKE Suite Owner must be identified -- GCE Suite Owner must be identified -- Fix GCE skew testing -- Fix GKE skew testing -- Fix Federation suites - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 31 (-2 from last report) - -### Action Required -- Feature owners fill out feature template by 10 March 2017 -- Feature owners submit docs PR which references issue in features repo by 13 March 2017 -- Feature owners prepare release notes by 13 March 2017 -- Address etcd upgrade test failures - -## Release Machinery -- Large cluster testing is not running yet -- Skew tests are running; thanks @ixdy! -- Automated upgrade tests are running -- Manual upgrade testing in progress - -### Action Required -- Start running large scale cluster testing ASAP +## Status: *NO GO* +### Reasons +- Bugs exist in 1.6 milestone +- Flakes exist in 1.6 milestone +- Open issues in 1.6 milestone +- Tests unstable +- Skew test failures +- Upgrade test failures + +## Table Of Contents +- [Issues](#issues) + - [Action Required](#action-required) + - [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required-1) + - [Bugs](#bugs) + - [Action Required](#action-required-2) +- [Test Failures](#test-failures) + - [Action Required](#action-required-3) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-4) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-5) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-6) + +## Issues +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 617 + +### Action required +- Ensure all issues in milestone are release blocking +- Ensure all issues in milestone have SIG routing label +- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! +- Move all non blocking issues into the 1.6.1 or 1.7 milestones **do not remove the milestone of the issue** +- Close issues which have been addressed + +### Flakes +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 321 (-16 from last report) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 166 (**+4 from last report**) + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 6 (**+4 from last report**) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 33 (-6 from last report) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 1 (**+1 from last report**) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 4 (-6 from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 1 (**unchanged from last report**) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 1 (**unchanged from last report**) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 5 (**unchanged from last report**) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 10 (**unchanged from last report**) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 3 (**unchanged from last report**) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 48 (-1 from last report) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 26 (**+1 from last report**) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 1 (-2 from last report) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 7 (**+1 from last report**) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 11 (-1 from last report) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + +#### Action Required +- Help route all flakes into SIGs +- **Do not open a flake issue without assigning a SIG to that issue** +- Move all non release blocking issues into the 1.6.1 or 1.7 milestones by 2017-03-10 +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG + +### Bugs +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 144 (**+127 from last report due to moving all issues of `kind/bug` into the 1.6 milestone**) + +#### Action Required +- Bug assignees please label all bugs with the appropriate SIG(s) +- BUg assignees please move all non release blocking bugs into either the 1.6.1 or 1.7 milestones **do not simply remove the milestone** +- Bug assignees please provide regular status updates for all bugs with fix or triage in progress +- Bug assignees and SIGs please close fixed bugs + +## Test Failures +- [k8s.io] Federation apiserver [Feature:Federation] Cluster objects [Serial] should be created and deleted successfully +- [k8s.io] Cluster level logging using Elasticsearch [Feature:Elasticsearch] should check that logs from containers are ingested into Elasticsearch +- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra +- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset +- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast +- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting a pod accessing the NFS vol +- [k8s.io] Cluster level logging using GCL [Slow] [Flaky] should create a constant load with short-living pods and ensure logs delivery +- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a file written to the mount before kubelet restart is stat-able after restart. +- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns. +- [k8s.io] InodeEviction [Slow] [Serial] [Disruptive] [Flaky] when we run containers that should cause Disk Pressure due to Inodes should eventually see Disk Pressure due to Inodes, and then evict all of the correct pods [5] +- [k8s.io] Garbage collector [Feature:GarbageCollector] should keep the rc around until all its pods are deleted if the deleteOptions says soChanges +- [k8s.io] Kubectl client [k8s.io] Simple pod should handle in-cluster config +- [k8s.io] Services should work after restarting apiserver [Disruptive] +- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node +- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working CockroachDB cluster +- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working mysql cluster +- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working redis cluster +- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working zookeeper cluster + + + +### Action Required +- Please address all failing tests +- Please add SIG routing labels to issued opened due to test failure + +## Suite Failures +- [Federation, GCE](https://testgrid.k8s.io/google-federation#gce) +- [Federation, GCI-GKE](https://testgrid.k8s.io/google-federation#gci-gce) +- [Node, heapster push](https://testgrid.k8s.io/google-node#heapster-push) +- [1.5 -> 1.6 GCI kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-gci-kubectl-skew) +- [1.5 -> 1.6 Container VM kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-cvm-kubectl-skew) +- [GKE 1.5 -> 1.6 Container VM kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-1.5-1.6-cvm-kubectl-skew) +- [GKE 1.5 -> 1.6 GCI kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-1.5-1.6-gci-kubectl-skew) +- [GCE 1.5 -> 1.6 upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster) +- [GCE 1.5 -> 1.6 upgrade cluster new](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new) +- [GCE 1.5 -> 1.6 upgrade master](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master) +- [GKE 1.5 -> 1.6 upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster) +- [GKE 1.5 -> 1.6 GCI upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster) +- [GKE Serial 1.6](https://testgrid.k8s.io/release-1.6-blocking#gke-serial-1.6) +- [GKE GCI Serial 1.6](https://testgrid.k8s.io/release-1.6-blocking#gci-gke-serial-1.6) +- [GCE Federation 1.6](https://testgrid.k8s.io/release-1.6-blocking#gce-federation-1.6) + +### Action Required +- GKE Suite Owner must be identified +- GCE Suite Owner must be identified +- Fix GCE skew testing +- Fix GKE skew testing +- Fix Federation suites + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 31 (-2 from last report) + +### Action Required +- Feature owners fill out feature template by 10 March 2017 +- Feature owners submit docs PR which references issue in features repo by 13 March 2017 +- Feature owners prepare release notes by 13 March 2017 +- Address etcd upgrade test failures + +## Release Machinery +- Large cluster testing is not running yet +- Skew tests are running; thanks @ixdy! +- Automated upgrade tests are running +- Manual upgrade testing in progress + +### Action Required +- Start running large scale cluster testing ASAP diff --git a/releases/release-1.6/go-signal-reports/2017-03-10.md b/releases/release-1.6/go-signal-reports/2017-03-10.md index 9cf886ef6c1..3830ff2f48f 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-10.md +++ b/releases/release-1.6/go-signal-reports/2017-03-10.md @@ -1,128 +1,128 @@ -## Status: *NO GO* -### Reasons -- Bugs exist in 1.6 milestone -- Flakes exist in 1.6 milestone -- Open issues in 1.6 milestone -- Tests unstable -- Skew test failures -- Upgrade test failures - -## Table Of Contents -- [Issues](#issues) - - [Action Required](#action-required) - - [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required-1) - - [Bugs](#bugs) - - [Action Required](#action-required-2) -- [Test Failures](#test-failures) - - [Action Required](#action-required-3) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-4) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-5) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-6) - -## Issues -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 411 (-206 from last report) - -### Action required -- Ensure all issues in milestone are release blocking -- Ensure all issues in milestone have SIG routing label -- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! -- Move all non blocking issues out of `v1.6` milestone -- Close issues which have been addressed - -### Flakes -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 253 (-68 from last report) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 139 (-27 from last report) - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 6 (**unchanged from last report**) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 1 (**+1 from last report**) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 12 (-21 from last report) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (-1 from last report) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 1 (-3 from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 1 (**unchanged from last report**) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (-1 from last report) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 1 (-4 from last report) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 1 (**+1 from last report**) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 11 (**+1 from last report**) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 3 (**unchanged from last report**) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 49 (**+1 from last report**) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 8 (-18 from last report) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 2 (**+1 from last report**) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 5 (-2 from last report) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 7 (-4 from last report) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - -#### Action Required -- Help route all flakes into SIGs -- **Do not open a flake issue without assigning a SIG to that issue** -- Move all non release blocking issues out of `v1.6` milestone -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG - -### Bugs -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 20 (-76 from last report) - -#### Action Required -- Bug assignees please label all bugs with the appropriate SIG(s) -- BUg assignees please move all non release blocking bugs out of the `v1.6` milestone** -- Bug assignees please provide regular status updates for all bugs with fix or triage in progress -- Bug assignees and SIGs please close fixed bugs - -## Test Failures - - -### Action Required -- Please address all failing tests -- Please add SIG routing labels to issued opened due to test failure - -## Suite Failures -- [Federation, GCE](https://testgrid.k8s.io/google-federation#gce) -- [Federation, GCI-GKE](https://testgrid.k8s.io/google-federation#gci-gce) -- [Node, heapster push](https://testgrid.k8s.io/google-node#heapster-push) -- [1.5 -> 1.6 GCI kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-gci-kubectl-skew) -- [1.5 -> 1.6 Container VM kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-cvm-kubectl-skew) -- [GKE 1.5 -> 1.6 Container VM kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-1.5-1.6-cvm-kubectl-skew) -- [GKE 1.5 -> 1.6 GCI kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-1.5-1.6-gci-kubectl-skew) -- [GCE 1.5 -> 1.6 upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster) -- [GCE 1.5 -> 1.6 upgrade cluster new](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new) -- [GCE 1.5 -> 1.6 upgrade master](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master) -- [GKE 1.5 -> 1.6 upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster) -- [GKE 1.5 -> 1.6 GCI upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster) -- [GKE Serial 1.6](https://testgrid.k8s.io/release-1.6-blocking#gke-serial-1.6) -- [GKE GCI Serial 1.6](https://testgrid.k8s.io/release-1.6-blocking#gci-gke-serial-1.6) -- [GCE Federation 1.6](https://testgrid.k8s.io/release-1.6-blocking#gce-federation-1.6) - -### Action Required -- GKE Suite Owner must be identified -- GCE Suite Owner must be identified -- Fix GCE skew testing -- Fix GKE skew testing -- Fix Federation suites - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 31 (**unchanged from last report**) - -### Action Required -- Feature owners fill out feature template by **TODAY!** -- Feature owners submit docs PR which references issue in features repo by 13 March 2017 -- Feature owners prepare release notes by 13 March 2017 -- Address etcd upgrade test failures - -## Release Machinery -- Large cluster testing is not running yet - -### Action Required -- Start running large scale cluster testing ASAP +## Status: *NO GO* +### Reasons +- Bugs exist in 1.6 milestone +- Flakes exist in 1.6 milestone +- Open issues in 1.6 milestone +- Tests unstable +- Skew test failures +- Upgrade test failures + +## Table Of Contents +- [Issues](#issues) + - [Action Required](#action-required) + - [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required-1) + - [Bugs](#bugs) + - [Action Required](#action-required-2) +- [Test Failures](#test-failures) + - [Action Required](#action-required-3) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-4) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-5) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-6) + +## Issues +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 411 (-206 from last report) + +### Action required +- Ensure all issues in milestone are release blocking +- Ensure all issues in milestone have SIG routing label +- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! +- Move all non blocking issues out of `v1.6` milestone +- Close issues which have been addressed + +### Flakes +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 253 (-68 from last report) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 139 (-27 from last report) + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 6 (**unchanged from last report**) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 1 (**+1 from last report**) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 12 (-21 from last report) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (-1 from last report) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 1 (-3 from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 1 (**unchanged from last report**) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (-1 from last report) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 1 (-4 from last report) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 1 (**+1 from last report**) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 11 (**+1 from last report**) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 3 (**unchanged from last report**) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 49 (**+1 from last report**) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 8 (-18 from last report) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 2 (**+1 from last report**) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 5 (-2 from last report) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 7 (-4 from last report) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + +#### Action Required +- Help route all flakes into SIGs +- **Do not open a flake issue without assigning a SIG to that issue** +- Move all non release blocking issues out of `v1.6` milestone +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG + +### Bugs +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 20 (-76 from last report) + +#### Action Required +- Bug assignees please label all bugs with the appropriate SIG(s) +- BUg assignees please move all non release blocking bugs out of the `v1.6` milestone** +- Bug assignees please provide regular status updates for all bugs with fix or triage in progress +- Bug assignees and SIGs please close fixed bugs + +## Test Failures + + +### Action Required +- Please address all failing tests +- Please add SIG routing labels to issued opened due to test failure + +## Suite Failures +- [Federation, GCE](https://testgrid.k8s.io/google-federation#gce) +- [Federation, GCI-GKE](https://testgrid.k8s.io/google-federation#gci-gce) +- [Node, heapster push](https://testgrid.k8s.io/google-node#heapster-push) +- [1.5 -> 1.6 GCI kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-gci-kubectl-skew) +- [1.5 -> 1.6 Container VM kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-cvm-kubectl-skew) +- [GKE 1.5 -> 1.6 Container VM kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-1.5-1.6-cvm-kubectl-skew) +- [GKE 1.5 -> 1.6 GCI kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-1.5-1.6-gci-kubectl-skew) +- [GCE 1.5 -> 1.6 upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster) +- [GCE 1.5 -> 1.6 upgrade cluster new](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new) +- [GCE 1.5 -> 1.6 upgrade master](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master) +- [GKE 1.5 -> 1.6 upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster) +- [GKE 1.5 -> 1.6 GCI upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster) +- [GKE Serial 1.6](https://testgrid.k8s.io/release-1.6-blocking#gke-serial-1.6) +- [GKE GCI Serial 1.6](https://testgrid.k8s.io/release-1.6-blocking#gci-gke-serial-1.6) +- [GCE Federation 1.6](https://testgrid.k8s.io/release-1.6-blocking#gce-federation-1.6) + +### Action Required +- GKE Suite Owner must be identified +- GCE Suite Owner must be identified +- Fix GCE skew testing +- Fix GKE skew testing +- Fix Federation suites + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 31 (**unchanged from last report**) + +### Action Required +- Feature owners fill out feature template by **TODAY!** +- Feature owners submit docs PR which references issue in features repo by 13 March 2017 +- Feature owners prepare release notes by 13 March 2017 +- Address etcd upgrade test failures + +## Release Machinery +- Large cluster testing is not running yet + +### Action Required +- Start running large scale cluster testing ASAP diff --git a/releases/release-1.6/go-signal-reports/2017-03-13.md b/releases/release-1.6/go-signal-reports/2017-03-13.md index d00c0838b04..5e14069b92b 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-13.md +++ b/releases/release-1.6/go-signal-reports/2017-03-13.md @@ -1,205 +1,205 @@ -## Status: *NO GO* -### Reasons -- Bugs exist in 1.6 milestone -- Flakes exist in 1.6 milestone -- Open issues in 1.6 milestone -- Tests unstable (missing three successful runs in a row) -- Skew test failures -- Upgrade test failures - -## Table Of Contents -- [Issues](#issues) - - [Action Required](#action-required) - - [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required-1) - - [Bugs](#bugs) - - [Action Required](#action-required-2) -- [Test Failures](#test-failures) - - [Action Required](#action-required-3) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-4) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-5) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-6) -- [Actions Taken by Release Team](#actions-taken-by-release-team) - - -## Issues -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 172 (-239 from last report) -- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 24 - -### Action required -- Ensure all issues in milestone are release blocking -- Ensure all issues in milestone have SIG routing label -- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! -- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones -- Close "broken test run" issues for transient test infrastructure failures -- Close issues which have been addressed - -### Flakes -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 84 (-169 from last report) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 4 (-135 from last report) - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 5 (-1 from last report) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 5 (**+4 from last report**) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 1 (-11 from last report) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 1 (**+1 from last report**) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 4 (**+3 from last report**) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (-1 from last report) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 4 (**+4 from last report**) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 6 (**+5 from last report**) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (-1 from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 6 (-5 from last report) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 4 (**+1 from last report**) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 17 (-32 from last report) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 16 (**+8 from last report**) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 2 (**unchanged from last report**) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 5 (**unchanged from last report**) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 11 (**+4 from last report**) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 7 (**+7 from last report**) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - -#### Action Required -- Help route all flakes into SIGs -- **Do not open a flake issue without assigning a SIG to that issue** -- **Do not remove a milestone without assigning a new milestone** -- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG - -### Bugs -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 17 (-3 from last report) - -#### Action Required -- Bug assignees please label all bugs with the appropriate SIG(s) -- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones -- Bug assignees please provide regular status updates for all bugs with fix or triage in progress -- Bug assignees and SIGs please close fixed bugs - -## Test Failures -- [k8s.io] ConfigMap should be consumable from pods in volume with mappings as non-root [Conformance] [Volume] -- [k8s.io] EmptyDir volumes should support (root,0777,tmpfs) [Conformance] [Volume] -- [k8s.io] Cluster size autoscaling [Slow] shouldn't increase cluster size if pending pod is too large [Feature:ClusterSizeAutoscalingScaleUp] -- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra -- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset -- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast -- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working CockroachDB cluster -- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working mysql cluster -- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working redis cluster -- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working zookeeper cluster -- [k8s.io] Cluster size autoscaling [Slow] shouldn't increase cluster size if pending pod is too large [Feature:ClusterSizeAutoscalingScaleUp] -- [k8s.io] Cluster level logging using Elasticsearch [Feature:Elasticsearch] should check that logs from containers are ingested into Elasticsearch -- [k8s.io] Daemon set [Serial] Should adopt or recreate existing pods when creating a RollingUpdate DaemonSet with matching or mismatching templateGeneration -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node -- [k8s.io] Cluster size autoscaling [Slow] should correctly scale down after a node is not needed when there is non autoscaled pool[Feature:ClusterSizeAutoscalingScaleDown] -- [k8s.io] Cluster size autoscaling [Slow] shouldn't increase cluster size if pending pod is too large [Feature:ClusterSizeAutoscalingScaleUp] -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should recreate pods scheduled on the unreachable node AND allow scheduling of pods on a node after it rejoins the cluster -- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources availableChanges -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 0 pods per node -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [Job] should create new pods when node is partitioned -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should eagerly create replacement pod during network partition when termination grace is non-zero -- [k8s.io] Services should be able to change the type and ports of a service [Slow] -- [k8s.io] Services should only allow access from service loadbalancer source ranges [Slow] -- [k8s.io] Generated release_1_5 clientset should create pods, delete pods, watch pods -- [k8s.io] Namespaces [Serial] should ensure that all pods are removed when a namespace is deleted. -- [k8s.io] NoExecuteTaintManager [Serial] eventually evict pod with finite tolerations from tainted nodes - -### Action Required -- Please address all failing tests -- Please add SIG routing labels to issued opened due to test failure - -## Suite Failures -- [Federation, GCE](https://testgrid.k8s.io/google-federation#gce) -- [Federation, GCI-GKE](https://testgrid.k8s.io/google-federation#gci-gce) -- [Node, heapster push](https://testgrid.k8s.io/google-node#heapster-push) -- [1.5 -> 1.6 GCI kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-gci-kubectl-skew) -- [1.5 -> 1.6 Container VM kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-cvm-kubectl-skew) -- [GKE 1.5 -> 1.6 Container VM kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-1.5-1.6-cvm-kubectl-skew) -- [GKE 1.5 -> 1.6 GCI kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-1.5-1.6-gci-kubectl-skew) -- [GCE 1.5 -> 1.6 upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster) -- [GCE 1.5 -> 1.6 upgrade cluster new](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new) -- [GCE 1.5 -> 1.6 upgrade master](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master) -- [GKE 1.5 -> 1.6 upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster) -- [GKE 1.5 -> 1.6 GCI upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster) -- [GKE Serial 1.6](https://testgrid.k8s.io/release-1.6-blocking#gke-serial-1.6) -- [GKE GCI Serial 1.6](https://testgrid.k8s.io/release-1.6-blocking#gci-gke-serial-1.6) -- [GCE Federation 1.6](https://testgrid.k8s.io/release-1.6-blocking#gce-federation-1.6) -- [GCE Multizone](https://testgrid.k8s.io/google-gce#gce-multizone) - -### Action Required -- GKE Suite Owner must be identified -- GCE Suite Owner must be identified -- Fix GCE skew testing -- Fix GKE skew testing -- Fix Federation suites - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 31 (**unchanged from last report**) - -### Action Required -- Feature owners fill out feature template by **TODAY!** -- Feature owners submit docs PR which references issue in features repo by **TODAY!** -- Feature owners prepare release notes by **TODAY!** -- Address etcd upgrade test failures - -## Release Machinery -- Large cluster testing is not running yet - -### Action Required -- Start running large scale cluster testing ASAP - -## Actions Taken by Release Team -- Issues optimistically moved into the 1.5 milestone - - https://github.com/kubernetes/kubernetes/issues/37882 - - https://github.com/kubernetes/kubernetes/issues/37892 - - https://github.com/kubernetes/kubernetes/issues/40679 - - https://github.com/kubernetes/kubernetes/issues/40391 - - https://github.com/kubernetes/kubernetes/issues/40133 - - https://github.com/kubernetes/kubernetes/issues/40681 - - https://github.com/kubernetes/kubernetes/issues/40960 - - https://github.com/kubernetes/kubernetes/issues/40966 - - https://github.com/kubernetes/kubernetes/issues/40986 - - https://github.com/kubernetes/kubernetes/issues/40599 - - https://github.com/kubernetes/kubernetes/issues/39292 - - https://github.com/kubernetes/kubernetes/issues/39177 - - https://github.com/kubernetes/kubernetes/issues/39174 - - https://github.com/kubernetes/kubernetes/issues/39167 - - https://github.com/kubernetes/kubernetes/issues/38530 - - https://github.com/kubernetes/kubernetes/issues/38513 - - https://github.com/kubernetes/kubernetes/issues/38491 - - https://github.com/kubernetes/kubernetes/issues/38490 - - https://github.com/kubernetes/kubernetes/issues/38489 - - https://github.com/kubernetes/kubernetes/issues/38482 - - https://github.com/kubernetes/kubernetes/issues/38483 - - https://github.com/kubernetes/kubernetes/issues/38484 - - https://github.com/kubernetes/kubernetes/issues/38485 - - https://github.com/kubernetes/kubernetes/issues/38487 - - https://github.com/kubernetes/kubernetes/issues/38480 - - https://github.com/kubernetes/kubernetes/issues/38477 - - https://github.com/kubernetes/kubernetes/issues/38472 - - https://github.com/kubernetes/kubernetes/issues/38471 - - https://github.com/kubernetes/kubernetes/issues/38470 - - https://github.com/kubernetes/kubernetes/issues/38465 - - https://github.com/kubernetes/kubernetes/issues/38307 - - https://github.com/kubernetes/kubernetes/issues/38162 - - https://github.com/kubernetes/kubernetes/issues/38467 - - https://github.com/kubernetes/kubernetes/issues/38042 - - https://github.com/kubernetes/kubernetes/issues/37940 - - https://github.com/kubernetes/kubernetes/issues/37896 - -- Issues optimistically moved into 1.4 milestone - - https://github.com/kubernetes/kubernetes/issues/39704 - - https://github.com/kubernetes/kubernetes/issues/38055 - - https://github.com/kubernetes/kubernetes/issues/38022 - - https://github.com/kubernetes/kubernetes/issues/37947 - - https://github.com/kubernetes/kubernetes/issues/37916 +## Status: *NO GO* +### Reasons +- Bugs exist in 1.6 milestone +- Flakes exist in 1.6 milestone +- Open issues in 1.6 milestone +- Tests unstable (missing three successful runs in a row) +- Skew test failures +- Upgrade test failures + +## Table Of Contents +- [Issues](#issues) + - [Action Required](#action-required) + - [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required-1) + - [Bugs](#bugs) + - [Action Required](#action-required-2) +- [Test Failures](#test-failures) + - [Action Required](#action-required-3) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-4) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-5) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-6) +- [Actions Taken by Release Team](#actions-taken-by-release-team) + + +## Issues +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 172 (-239 from last report) +- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 24 + +### Action required +- Ensure all issues in milestone are release blocking +- Ensure all issues in milestone have SIG routing label +- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! +- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones +- Close "broken test run" issues for transient test infrastructure failures +- Close issues which have been addressed + +### Flakes +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 84 (-169 from last report) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 4 (-135 from last report) + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 5 (-1 from last report) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 5 (**+4 from last report**) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 1 (-11 from last report) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 1 (**+1 from last report**) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 4 (**+3 from last report**) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (-1 from last report) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 4 (**+4 from last report**) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 6 (**+5 from last report**) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (-1 from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 6 (-5 from last report) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 4 (**+1 from last report**) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 17 (-32 from last report) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 16 (**+8 from last report**) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 2 (**unchanged from last report**) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 5 (**unchanged from last report**) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 11 (**+4 from last report**) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 7 (**+7 from last report**) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + +#### Action Required +- Help route all flakes into SIGs +- **Do not open a flake issue without assigning a SIG to that issue** +- **Do not remove a milestone without assigning a new milestone** +- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG + +### Bugs +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 17 (-3 from last report) + +#### Action Required +- Bug assignees please label all bugs with the appropriate SIG(s) +- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones +- Bug assignees please provide regular status updates for all bugs with fix or triage in progress +- Bug assignees and SIGs please close fixed bugs + +## Test Failures +- [k8s.io] ConfigMap should be consumable from pods in volume with mappings as non-root [Conformance] [Volume] +- [k8s.io] EmptyDir volumes should support (root,0777,tmpfs) [Conformance] [Volume] +- [k8s.io] Cluster size autoscaling [Slow] shouldn't increase cluster size if pending pod is too large [Feature:ClusterSizeAutoscalingScaleUp] +- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra +- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset +- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast +- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working CockroachDB cluster +- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working mysql cluster +- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working redis cluster +- [k8s.io] StatefulSet [k8s.io] Deploy clustered applications [Feature:StatefulSet] [Slow] should creating a working zookeeper cluster +- [k8s.io] Cluster size autoscaling [Slow] shouldn't increase cluster size if pending pod is too large [Feature:ClusterSizeAutoscalingScaleUp] +- [k8s.io] Cluster level logging using Elasticsearch [Feature:Elasticsearch] should check that logs from containers are ingested into Elasticsearch +- [k8s.io] Daemon set [Serial] Should adopt or recreate existing pods when creating a RollingUpdate DaemonSet with matching or mismatching templateGeneration +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node +- [k8s.io] Cluster size autoscaling [Slow] should correctly scale down after a node is not needed when there is non autoscaled pool[Feature:ClusterSizeAutoscalingScaleDown] +- [k8s.io] Cluster size autoscaling [Slow] shouldn't increase cluster size if pending pod is too large [Feature:ClusterSizeAutoscalingScaleUp] +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should recreate pods scheduled on the unreachable node AND allow scheduling of pods on a node after it rejoins the cluster +- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources availableChanges +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 0 pods per node +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [Job] should create new pods when node is partitioned +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should eagerly create replacement pod during network partition when termination grace is non-zero +- [k8s.io] Services should be able to change the type and ports of a service [Slow] +- [k8s.io] Services should only allow access from service loadbalancer source ranges [Slow] +- [k8s.io] Generated release_1_5 clientset should create pods, delete pods, watch pods +- [k8s.io] Namespaces [Serial] should ensure that all pods are removed when a namespace is deleted. +- [k8s.io] NoExecuteTaintManager [Serial] eventually evict pod with finite tolerations from tainted nodes + +### Action Required +- Please address all failing tests +- Please add SIG routing labels to issued opened due to test failure + +## Suite Failures +- [Federation, GCE](https://testgrid.k8s.io/google-federation#gce) +- [Federation, GCI-GKE](https://testgrid.k8s.io/google-federation#gci-gce) +- [Node, heapster push](https://testgrid.k8s.io/google-node#heapster-push) +- [1.5 -> 1.6 GCI kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-gci-kubectl-skew) +- [1.5 -> 1.6 Container VM kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-cvm-kubectl-skew) +- [GKE 1.5 -> 1.6 Container VM kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-1.5-1.6-cvm-kubectl-skew) +- [GKE 1.5 -> 1.6 GCI kubectl skew](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-1.5-1.6-gci-kubectl-skew) +- [GCE 1.5 -> 1.6 upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster) +- [GCE 1.5 -> 1.6 upgrade cluster new](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new) +- [GCE 1.5 -> 1.6 upgrade master](https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master) +- [GKE 1.5 -> 1.6 upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster) +- [GKE 1.5 -> 1.6 GCI upgrade cluster](https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster) +- [GKE Serial 1.6](https://testgrid.k8s.io/release-1.6-blocking#gke-serial-1.6) +- [GKE GCI Serial 1.6](https://testgrid.k8s.io/release-1.6-blocking#gci-gke-serial-1.6) +- [GCE Federation 1.6](https://testgrid.k8s.io/release-1.6-blocking#gce-federation-1.6) +- [GCE Multizone](https://testgrid.k8s.io/google-gce#gce-multizone) + +### Action Required +- GKE Suite Owner must be identified +- GCE Suite Owner must be identified +- Fix GCE skew testing +- Fix GKE skew testing +- Fix Federation suites + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 31 (**unchanged from last report**) + +### Action Required +- Feature owners fill out feature template by **TODAY!** +- Feature owners submit docs PR which references issue in features repo by **TODAY!** +- Feature owners prepare release notes by **TODAY!** +- Address etcd upgrade test failures + +## Release Machinery +- Large cluster testing is not running yet + +### Action Required +- Start running large scale cluster testing ASAP + +## Actions Taken by Release Team +- Issues optimistically moved into the 1.5 milestone + - https://github.com/kubernetes/kubernetes/issues/37882 + - https://github.com/kubernetes/kubernetes/issues/37892 + - https://github.com/kubernetes/kubernetes/issues/40679 + - https://github.com/kubernetes/kubernetes/issues/40391 + - https://github.com/kubernetes/kubernetes/issues/40133 + - https://github.com/kubernetes/kubernetes/issues/40681 + - https://github.com/kubernetes/kubernetes/issues/40960 + - https://github.com/kubernetes/kubernetes/issues/40966 + - https://github.com/kubernetes/kubernetes/issues/40986 + - https://github.com/kubernetes/kubernetes/issues/40599 + - https://github.com/kubernetes/kubernetes/issues/39292 + - https://github.com/kubernetes/kubernetes/issues/39177 + - https://github.com/kubernetes/kubernetes/issues/39174 + - https://github.com/kubernetes/kubernetes/issues/39167 + - https://github.com/kubernetes/kubernetes/issues/38530 + - https://github.com/kubernetes/kubernetes/issues/38513 + - https://github.com/kubernetes/kubernetes/issues/38491 + - https://github.com/kubernetes/kubernetes/issues/38490 + - https://github.com/kubernetes/kubernetes/issues/38489 + - https://github.com/kubernetes/kubernetes/issues/38482 + - https://github.com/kubernetes/kubernetes/issues/38483 + - https://github.com/kubernetes/kubernetes/issues/38484 + - https://github.com/kubernetes/kubernetes/issues/38485 + - https://github.com/kubernetes/kubernetes/issues/38487 + - https://github.com/kubernetes/kubernetes/issues/38480 + - https://github.com/kubernetes/kubernetes/issues/38477 + - https://github.com/kubernetes/kubernetes/issues/38472 + - https://github.com/kubernetes/kubernetes/issues/38471 + - https://github.com/kubernetes/kubernetes/issues/38470 + - https://github.com/kubernetes/kubernetes/issues/38465 + - https://github.com/kubernetes/kubernetes/issues/38307 + - https://github.com/kubernetes/kubernetes/issues/38162 + - https://github.com/kubernetes/kubernetes/issues/38467 + - https://github.com/kubernetes/kubernetes/issues/38042 + - https://github.com/kubernetes/kubernetes/issues/37940 + - https://github.com/kubernetes/kubernetes/issues/37896 + +- Issues optimistically moved into 1.4 milestone + - https://github.com/kubernetes/kubernetes/issues/39704 + - https://github.com/kubernetes/kubernetes/issues/38055 + - https://github.com/kubernetes/kubernetes/issues/38022 + - https://github.com/kubernetes/kubernetes/issues/37947 + - https://github.com/kubernetes/kubernetes/issues/37916 diff --git a/releases/release-1.6/go-signal-reports/2017-03-14.md b/releases/release-1.6/go-signal-reports/2017-03-14.md index c94cb07bf34..e4955d872b5 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-14.md +++ b/releases/release-1.6/go-signal-reports/2017-03-14.md @@ -1,122 +1,122 @@ -## Status: *NO GO* -### Reasons -- Bugs exist in 1.6 milestone -- Flakes exist in 1.6 milestone -- Open issues in 1.6 milestone -- Tests unstable (missing three successful runs in a row) -- Skew test failures -- Upgrade test failures - -## Table Of Contents -- [Issues](#issues) - - [Action Required](#action-required) - - [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required-1) - - [Bugs](#bugs) - - [Action Required](#action-required-2) -- [Test Failures](#test-failures) - - [Action Required](#action-required-3) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-4) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-5) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-6) -- [Actions Taken by Release Team](#actions-taken-by-release-team) - - -## Issues -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 100 (-72 from last report) -- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 19 (-5 from last report) - -### Action required -- Ensure all issues in milestone are release blocking -- Ensure all issues in milestone have SIG routing label -- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! -- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones -- Close "broken test run" issues for transient test infrastructure failures -- Close issues which have been addressed - -### Flakes -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 64 (-20 from last report) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 1 (-3 from last report) - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 1 (-4 from last report) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 4 (-1 from last report) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 6 (**+5 from last report**) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (-1 from last report) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 1 (-3 from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (-1 from last report) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 5 (**+1 from last report**) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 8 (**+2 from last report**) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 8 (**+2 from last report**) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 4 (**unchanged from last report**) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 12 (-5 from last report) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 11 (-5 from last report) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 2 (**unchanged from last report**) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 5 (**unchanged from last report**) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 8 (-3 from last report) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (-7 from last report) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - -#### Action Required -- Help route all flakes into SIGs -- **Do not open a flake issue without assigning a SIG to that issue** -- **Do not remove a milestone without assigning a new milestone** -- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG - -### Bugs -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 12 (-5 from last report) - -#### Action Required -- Bug assignees please label all bugs with the appropriate SIG(s) -- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones -- Bug assignees please provide regular status updates for all bugs with fix or triage in progress -- Bug assignees and SIGs please close fixed bugs - -## Test Failures - -[ not updated for this report ] - -### Action Required - -[ not updated for this report ] - -## Suite Failures - -[ not updated for this report ] - -### Action Required - -[ not updated for this report ] - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (-2 from last report) - -### Action Required -- Feature owners fill out feature template by **TODAY!** -- Feature owners submit docs PR which references issue in features repo by **TODAY!** -- Feature owners prepare release notes by **TODAY!** -- Address etcd upgrade test failures - -## Release Machinery -- Large cluster testing is not running yet - -### Action Required -- Start running large scale cluster testing ASAP - -## Actions Taken by Release Team - -[ not updated for this report ] +## Status: *NO GO* +### Reasons +- Bugs exist in 1.6 milestone +- Flakes exist in 1.6 milestone +- Open issues in 1.6 milestone +- Tests unstable (missing three successful runs in a row) +- Skew test failures +- Upgrade test failures + +## Table Of Contents +- [Issues](#issues) + - [Action Required](#action-required) + - [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required-1) + - [Bugs](#bugs) + - [Action Required](#action-required-2) +- [Test Failures](#test-failures) + - [Action Required](#action-required-3) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-4) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-5) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-6) +- [Actions Taken by Release Team](#actions-taken-by-release-team) + + +## Issues +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 100 (-72 from last report) +- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 19 (-5 from last report) + +### Action required +- Ensure all issues in milestone are release blocking +- Ensure all issues in milestone have SIG routing label +- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! +- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones +- Close "broken test run" issues for transient test infrastructure failures +- Close issues which have been addressed + +### Flakes +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 64 (-20 from last report) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 1 (-3 from last report) + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 1 (-4 from last report) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 4 (-1 from last report) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 6 (**+5 from last report**) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (-1 from last report) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 1 (-3 from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (-1 from last report) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 5 (**+1 from last report**) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 8 (**+2 from last report**) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 8 (**+2 from last report**) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 4 (**unchanged from last report**) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 12 (-5 from last report) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 11 (-5 from last report) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 2 (**unchanged from last report**) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 5 (**unchanged from last report**) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 8 (-3 from last report) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (-7 from last report) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + +#### Action Required +- Help route all flakes into SIGs +- **Do not open a flake issue without assigning a SIG to that issue** +- **Do not remove a milestone without assigning a new milestone** +- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG + +### Bugs +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 12 (-5 from last report) + +#### Action Required +- Bug assignees please label all bugs with the appropriate SIG(s) +- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones +- Bug assignees please provide regular status updates for all bugs with fix or triage in progress +- Bug assignees and SIGs please close fixed bugs + +## Test Failures + +[ not updated for this report ] + +### Action Required + +[ not updated for this report ] + +## Suite Failures + +[ not updated for this report ] + +### Action Required + +[ not updated for this report ] + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (-2 from last report) + +### Action Required +- Feature owners fill out feature template by **TODAY!** +- Feature owners submit docs PR which references issue in features repo by **TODAY!** +- Feature owners prepare release notes by **TODAY!** +- Address etcd upgrade test failures + +## Release Machinery +- Large cluster testing is not running yet + +### Action Required +- Start running large scale cluster testing ASAP + +## Actions Taken by Release Team + +[ not updated for this report ] diff --git a/releases/release-1.6/go-signal-reports/2017-03-15.md b/releases/release-1.6/go-signal-reports/2017-03-15.md index 4175bbad58e..f733df4e7b3 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-15.md +++ b/releases/release-1.6/go-signal-reports/2017-03-15.md @@ -1,167 +1,167 @@ -## Status: *NO GO* -### Reasons -- Bugs exist in 1.6 milestone -- Flakes exist in 1.6 milestone -- Open issues in 1.6 milestone -- Tests unstable (missing three successful runs in a row) -- Skew test failures -- Upgrade test failures - -## Table Of Contents -- [Issues](#issues) - - [Action Required](#action-required) - - [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required-1) - - [Bugs](#bugs) - - [Action Required](#action-required-2) -- [Test Failures](#test-failures) - - [Action Required](#action-required-3) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-4) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-5) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-6) -- [Actions Taken by Release Team](#actions-taken-by-release-team) - - -## Issues -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (-71 from last report) -- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 6 (-13 from last report) - -### Action required -- Ensure all issues in milestone are release blocking -- Ensure all issues in milestone have SIG routing label -- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! -- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones -- Close "broken test run" issues for transient test infrastructure failures -- Close issues which have been addressed - -### Flakes -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 17 (-47 from last report) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 0 (-1 from last report). **this is awesome!** - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 2 (**+1 from last report**) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 3 (-1 from last report) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 3 (-3 from last report) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (-1 from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (-5 from last report) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 1 (-7 from last report) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 2 (-6 from last report) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 1 (-3 from last report) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 1 (-11 from last report) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 3 (-8 from last report) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (-2 from last report) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 1 (-4 from last report) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 1 (-7 from last report) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - -#### Action Required -- Help route all flakes into SIGs -- **Do not open a flake issue without assigning a SIG to that issue** -- **Do not remove a milestone without assigning a new milestone** -- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG - -### Bugs -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 5 (-7 from last report) -- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 103 - -#### Action Required -- Bug assignees please label all bugs with the appropriate SIG(s) -- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones -- Bug assignees please provide regular status updates for all bugs with fix or triage in progress -- Bug assignees and SIGs please close fixed bugs -- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. - -## Test Failures -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] Pods should be evicted from unready Node [Feature:TaintEviction] All pods on the unreachable node should be marked as NotReady upon the node turn NotReady AND all pods should be evicted after eviction timeout passes -- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a file written to the mount before kubelet restart is stat-able after restart. -- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns. -- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting a pod accessing the NFS vol [Serial] -- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting sleeping pod which mounts an NFS vol [Serial] -- [k8s.io] Dynamic provisioning [k8s.io] DynamicProvisioner Default should be disabled by changing the default annotation[Slow] [Serial] [Disruptive] [Volume] -- [k8s.io] Dynamic provisioning [k8s.io] DynamicProvisioner Default should be disabled by removing the default annotation[Slow] [Serial] [Disruptive] [Volume] -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node -- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should create and update matching ingresses in underlying clusters -- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is nil -- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is true -- [k8s.io] Federation replicasets [Feature:Federation] Federated ReplicaSet should create and update matching replicasets in underling clusters -- [k8s.io] Federation apiserver [Feature:Federation] Cluster objects [Serial] should be created and deleted successfully -- [k8s.io] Kubectl client [k8s.io] Kubectl taint should remove all the taints with the same key off a node -- [k8s.io] Kubectl client [k8s.io] Kubectl taint should update the taint on a node -- [k8s.io] Cluster size autoscaling [Slow] shouldn't increase cluster size if pending pod is too large [Feature:ClusterSizeAutoscalingScaleUp] -- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra -- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset -- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast -- [k8s.io] Cluster level logging using GCL [Slow] [Flaky] should create a constant load with short-living pods and ensure logs delivery -- [k8s.io] Addon update should propagate add-on file changes [Slow] -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [StatefulSet] should not reschedule stateful pods if there is a network partition [Slow] [Disruptive] -- [k8s.io] Upgrade [Feature:Upgrade] [k8s.io] cluster upgrade should maintain a functioning cluster [Feature:ClusterUpgrade] -- [k8s.io] DNS horizontal autoscaling kube-dns-autoscaler should scale kube-dns pods in both nonfaulty and faulty scenarios -- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available -- [k8s.io] Daemon set [Serial] Should adopt or recreate existing pods when creating a RollingUpdate DaemonSet with matching or mismatching templateGeneration - - -### Action Required -- Address all test failures *immediately* -- Fix or delete Cassandra, Hazelcast tests - -## Suite Failures -- https://testgrid.k8s.io/google-aws#kops-aws-serial -- https://testgrid.k8s.io/google-gke#gci-gke-autoscaling -- https://testgrid.k8s.io/google-gke#gke-autoscaling -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/etcd-upgrades#gce-latest -- https://testgrid.k8s.io/google-kubectl-skew#gke-latest-1.4-cvm -- https://testgrid.k8s.io/google-kubectl-skew#gke-latest-1.4-gci -- https://testgrid.k8s.io/google-kubectl-skew#gce-latest-1.4-cvm -- https://testgrid.k8s.io/google-kubectl-skew#gce-latest-1.4-gci -- https://testgrid.k8s.io/kubernetes-apps#charts-gce - -### Action Required -- Address all suite failures *immediately* - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) - -### Action Required -- Feature owners fill out feature template by **TODAY!** -- Feature owners submit docs PR which references issue in features repo by **TODAY!** -- Feature owners prepare release notes by **TODAY!** -- Address etcd upgrade test failures -- Begin adding human curated release notes to [the release notes draft](https://github.com/kubernetes/features/blob/release-notes-draft-1.6/release-1.6/release-notes-draft.md) by Friday, 17 March 2017 **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** - -## Release Machinery -- Large cluster testing is not running yet - -### Action Required -- Start running large scale cluster testing ASAP - -## Actions Taken by Release Team -- Plan to send out request for human curation of release notes by EOD 2017-03-15 +## Status: *NO GO* +### Reasons +- Bugs exist in 1.6 milestone +- Flakes exist in 1.6 milestone +- Open issues in 1.6 milestone +- Tests unstable (missing three successful runs in a row) +- Skew test failures +- Upgrade test failures + +## Table Of Contents +- [Issues](#issues) + - [Action Required](#action-required) + - [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required-1) + - [Bugs](#bugs) + - [Action Required](#action-required-2) +- [Test Failures](#test-failures) + - [Action Required](#action-required-3) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-4) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-5) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-6) +- [Actions Taken by Release Team](#actions-taken-by-release-team) + + +## Issues +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (-71 from last report) +- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 6 (-13 from last report) + +### Action required +- Ensure all issues in milestone are release blocking +- Ensure all issues in milestone have SIG routing label +- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! +- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones +- Close "broken test run" issues for transient test infrastructure failures +- Close issues which have been addressed + +### Flakes +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 17 (-47 from last report) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 0 (-1 from last report). **this is awesome!** + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 2 (**+1 from last report**) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 3 (-1 from last report) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 3 (-3 from last report) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (-1 from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (-5 from last report) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 1 (-7 from last report) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 2 (-6 from last report) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 1 (-3 from last report) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 1 (-11 from last report) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 3 (-8 from last report) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (-2 from last report) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 1 (-4 from last report) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 1 (-7 from last report) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + +#### Action Required +- Help route all flakes into SIGs +- **Do not open a flake issue without assigning a SIG to that issue** +- **Do not remove a milestone without assigning a new milestone** +- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG + +### Bugs +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 5 (-7 from last report) +- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 103 + +#### Action Required +- Bug assignees please label all bugs with the appropriate SIG(s) +- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones +- Bug assignees please provide regular status updates for all bugs with fix or triage in progress +- Bug assignees and SIGs please close fixed bugs +- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. + +## Test Failures +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] Pods should be evicted from unready Node [Feature:TaintEviction] All pods on the unreachable node should be marked as NotReady upon the node turn NotReady AND all pods should be evicted after eviction timeout passes +- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a file written to the mount before kubelet restart is stat-able after restart. +- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns. +- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting a pod accessing the NFS vol [Serial] +- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting sleeping pod which mounts an NFS vol [Serial] +- [k8s.io] Dynamic provisioning [k8s.io] DynamicProvisioner Default should be disabled by changing the default annotation[Slow] [Serial] [Disruptive] [Volume] +- [k8s.io] Dynamic provisioning [k8s.io] DynamicProvisioner Default should be disabled by removing the default annotation[Slow] [Serial] [Disruptive] [Volume] +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node +- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should create and update matching ingresses in underlying clusters +- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is nil +- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is true +- [k8s.io] Federation replicasets [Feature:Federation] Federated ReplicaSet should create and update matching replicasets in underling clusters +- [k8s.io] Federation apiserver [Feature:Federation] Cluster objects [Serial] should be created and deleted successfully +- [k8s.io] Kubectl client [k8s.io] Kubectl taint should remove all the taints with the same key off a node +- [k8s.io] Kubectl client [k8s.io] Kubectl taint should update the taint on a node +- [k8s.io] Cluster size autoscaling [Slow] shouldn't increase cluster size if pending pod is too large [Feature:ClusterSizeAutoscalingScaleUp] +- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra +- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset +- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast +- [k8s.io] Cluster level logging using GCL [Slow] [Flaky] should create a constant load with short-living pods and ensure logs delivery +- [k8s.io] Addon update should propagate add-on file changes [Slow] +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [StatefulSet] should not reschedule stateful pods if there is a network partition [Slow] [Disruptive] +- [k8s.io] Upgrade [Feature:Upgrade] [k8s.io] cluster upgrade should maintain a functioning cluster [Feature:ClusterUpgrade] +- [k8s.io] DNS horizontal autoscaling kube-dns-autoscaler should scale kube-dns pods in both nonfaulty and faulty scenarios +- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available +- [k8s.io] Daemon set [Serial] Should adopt or recreate existing pods when creating a RollingUpdate DaemonSet with matching or mismatching templateGeneration + + +### Action Required +- Address all test failures *immediately* +- Fix or delete Cassandra, Hazelcast tests + +## Suite Failures +- https://testgrid.k8s.io/google-aws#kops-aws-serial +- https://testgrid.k8s.io/google-gke#gci-gke-autoscaling +- https://testgrid.k8s.io/google-gke#gke-autoscaling +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/etcd-upgrades#gce-latest +- https://testgrid.k8s.io/google-kubectl-skew#gke-latest-1.4-cvm +- https://testgrid.k8s.io/google-kubectl-skew#gke-latest-1.4-gci +- https://testgrid.k8s.io/google-kubectl-skew#gce-latest-1.4-cvm +- https://testgrid.k8s.io/google-kubectl-skew#gce-latest-1.4-gci +- https://testgrid.k8s.io/kubernetes-apps#charts-gce + +### Action Required +- Address all suite failures *immediately* + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) + +### Action Required +- Feature owners fill out feature template by **TODAY!** +- Feature owners submit docs PR which references issue in features repo by **TODAY!** +- Feature owners prepare release notes by **TODAY!** +- Address etcd upgrade test failures +- Begin adding human curated release notes to [the release notes draft](https://github.com/kubernetes/features/blob/release-notes-draft-1.6/release-1.6/release-notes-draft.md) by Friday, 17 March 2017 **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** + +## Release Machinery +- Large cluster testing is not running yet + +### Action Required +- Start running large scale cluster testing ASAP + +## Actions Taken by Release Team +- Plan to send out request for human curation of release notes by EOD 2017-03-15 diff --git a/releases/release-1.6/go-signal-reports/2017-03-16.md b/releases/release-1.6/go-signal-reports/2017-03-16.md index e37778ff19b..8077c28b1cd 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-16.md +++ b/releases/release-1.6/go-signal-reports/2017-03-16.md @@ -1,151 +1,151 @@ -## Status: *NO GO* -### Reasons -- Bugs exist in 1.6 milestone -- Flakes exist in 1.6 milestone -- Open issues in 1.6 milestone -- Tests unstable (missing three successful runs in a row) -- Skew test failures -- Upgrade test failures - -## Table Of Contents -- [Issues](#issues) - - [Action Required](#action-required) - - [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required-1) - - [Bugs](#bugs) - - [Action Required](#action-required-2) -- [Test Failures](#test-failures) - - [Action Required](#action-required-3) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-4) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-5) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-6) -- [Actions Taken by Release Team](#actions-taken-by-release-team) - - -## Issues -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) -- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 7 (**+1 from last report**) - -### Action required -- Ensure all issues in milestone are release blocking -- Ensure all issues in milestone have SIG routing label -- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! -- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones -- Close "broken test run" issues for transient test infrastructure failures -- Close issues which have been addressed -- Close issues opened by GCP infrastructure failures on 15 March 2017 - -### Flakes -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 16 (-1 from last report) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 5 (**+5 from last report**) - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 1 (**unchanged from last report**) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (-3 from last report) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 1 (-2 from last report) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 1 (**unchanged from last report**) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 3 (**+1 from last report**) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 1 (**unchanged from last report**) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 1 (**unchanged from last report**) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (-3 from last report) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (-1 from last report) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 1 (**unchanged from last report**) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - -#### Action Required -- Help route all flakes into SIGs -- **Do not open a flake issue without assigning a SIG to that issue** -- **Do not remove a milestone without assigning a new milestone** -- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG - -### Bugs -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 6 (**+1 from last report**) -- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 104 (**+1 from last report**) - -#### Action Required -- Bug assignees please label all bugs with the appropriate SIG(s) -- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones -- Bug assignees please provide regular status updates for all bugs with fix or triage in progress -- Bug assignees and SIGs please close fixed bugs -- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. - -## Test Failures -- [k8s.io] Services should be able to change the type and ports of a service [Slow] -- [k8s.io] Services should only allow access from service loadbalancer source ranges [Slow] -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 0 pods per node -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [Job] should create new pods when node is partitioned -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should eagerly create replacement pod during network partition when termination grace is non-zero -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should recreate pods scheduled on the unreachable node AND allow scheduling of pods on a node after it rejoins the cluster -- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting a pod accessing the NFS vol [Serial] -- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting sleeping pod which mounts an NFS vol [Serial] -- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a file written to the mount before kubelet restart is stat-able after restart. -- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns. -- [k8s.io] Dynamic provisioning [k8s.io] DynamicProvisioner Default should be disabled by changing the default annotation[Slow] [Serial] [Disruptive] [Volume] -- [k8s.io] Dynamic provisioning [k8s.io] DynamicProvisioner Default should be disabled by removing the default annotation[Slow] [Serial] [Disruptive] [Volume] -- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should create and update matching ingresses in underlying cluster -- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is nil -- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is true -- [k8s.io] Federation deployments [Feature:Federation] Federated Deployment should create and update matching deployments in underlying clusters -- [k8s.io] Federation replicasets [Feature:Federation] Federated ReplicaSet should create and update matching replicasets in underling clusters -- [k8s.io] Federation apiserver [Feature:Federation] Cluster objects [Serial] should be created and deleted successfully -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [StatefulSet] should not reschedule stateful pods if there is a network partition [Slow] [Disruptive] - -### Action Required -- Address all test failures *immediately* -- Fix or delete Cassandra, Hazelcast tests - -## Suite Failures -- https://testgrid.k8s.io/google-gke#gci-gke-autoscaling -- https://testgrid.k8s.io/etcd-upgrades#gce-rollback-latest -- https://testgrid.k8s.io/release-1.6-all#gci-gke-serial-1.6 -- https://testgrid.k8s.io/release-1.6-all#gke-serial-1.6 -- https://testgrid.k8s.io/release-1.6-upgrade-skew#Summary - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/kubernetes-apps#charts-gce - -### Action Required -- Address all suite failures *immediately* -- Pay particular attention to skew test failures - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) - -### Action Required -- Feature owners fill out feature template by **TODAY!** -- Feature owners submit docs PR which references issue in features repo by **TODAY!** -- Feature owners prepare release notes by **TODAY!** -- Address etcd upgrade test failures -- Begin adding human curated release notes to [the release notes draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.6/release-notes-draft.md) by Friday, 17 March 2017 **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** - -## Release Machinery -- Timeouts during upgrade tests - -### Action Required -- Fix upgrade tests, ensure large scale testing is not impacted - -## Actions Taken by Release Team -[ not updated for this report] +## Status: *NO GO* +### Reasons +- Bugs exist in 1.6 milestone +- Flakes exist in 1.6 milestone +- Open issues in 1.6 milestone +- Tests unstable (missing three successful runs in a row) +- Skew test failures +- Upgrade test failures + +## Table Of Contents +- [Issues](#issues) + - [Action Required](#action-required) + - [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required-1) + - [Bugs](#bugs) + - [Action Required](#action-required-2) +- [Test Failures](#test-failures) + - [Action Required](#action-required-3) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-4) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-5) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-6) +- [Actions Taken by Release Team](#actions-taken-by-release-team) + + +## Issues +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) +- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 7 (**+1 from last report**) + +### Action required +- Ensure all issues in milestone are release blocking +- Ensure all issues in milestone have SIG routing label +- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! +- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones +- Close "broken test run" issues for transient test infrastructure failures +- Close issues which have been addressed +- Close issues opened by GCP infrastructure failures on 15 March 2017 + +### Flakes +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 16 (-1 from last report) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 5 (**+5 from last report**) + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 1 (**unchanged from last report**) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (-3 from last report) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 1 (-2 from last report) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 1 (**unchanged from last report**) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 3 (**+1 from last report**) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 1 (**unchanged from last report**) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 1 (**unchanged from last report**) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (-3 from last report) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (-1 from last report) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 1 (**unchanged from last report**) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + +#### Action Required +- Help route all flakes into SIGs +- **Do not open a flake issue without assigning a SIG to that issue** +- **Do not remove a milestone without assigning a new milestone** +- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG + +### Bugs +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 6 (**+1 from last report**) +- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 104 (**+1 from last report**) + +#### Action Required +- Bug assignees please label all bugs with the appropriate SIG(s) +- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones +- Bug assignees please provide regular status updates for all bugs with fix or triage in progress +- Bug assignees and SIGs please close fixed bugs +- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. + +## Test Failures +- [k8s.io] Services should be able to change the type and ports of a service [Slow] +- [k8s.io] Services should only allow access from service loadbalancer source ranges [Slow] +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 0 pods per node +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [Job] should create new pods when node is partitioned +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should eagerly create replacement pod during network partition when termination grace is non-zero +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should recreate pods scheduled on the unreachable node AND allow scheduling of pods on a node after it rejoins the cluster +- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting a pod accessing the NFS vol [Serial] +- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting sleeping pod which mounts an NFS vol [Serial] +- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a file written to the mount before kubelet restart is stat-able after restart. +- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns. +- [k8s.io] Dynamic provisioning [k8s.io] DynamicProvisioner Default should be disabled by changing the default annotation[Slow] [Serial] [Disruptive] [Volume] +- [k8s.io] Dynamic provisioning [k8s.io] DynamicProvisioner Default should be disabled by removing the default annotation[Slow] [Serial] [Disruptive] [Volume] +- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should create and update matching ingresses in underlying cluster +- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is nil +- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is true +- [k8s.io] Federation deployments [Feature:Federation] Federated Deployment should create and update matching deployments in underlying clusters +- [k8s.io] Federation replicasets [Feature:Federation] Federated ReplicaSet should create and update matching replicasets in underling clusters +- [k8s.io] Federation apiserver [Feature:Federation] Cluster objects [Serial] should be created and deleted successfully +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [StatefulSet] should not reschedule stateful pods if there is a network partition [Slow] [Disruptive] + +### Action Required +- Address all test failures *immediately* +- Fix or delete Cassandra, Hazelcast tests + +## Suite Failures +- https://testgrid.k8s.io/google-gke#gci-gke-autoscaling +- https://testgrid.k8s.io/etcd-upgrades#gce-rollback-latest +- https://testgrid.k8s.io/release-1.6-all#gci-gke-serial-1.6 +- https://testgrid.k8s.io/release-1.6-all#gke-serial-1.6 +- https://testgrid.k8s.io/release-1.6-upgrade-skew#Summary + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/kubernetes-apps#charts-gce + +### Action Required +- Address all suite failures *immediately* +- Pay particular attention to skew test failures + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) + +### Action Required +- Feature owners fill out feature template by **TODAY!** +- Feature owners submit docs PR which references issue in features repo by **TODAY!** +- Feature owners prepare release notes by **TODAY!** +- Address etcd upgrade test failures +- Begin adding human curated release notes to [the release notes draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.6/release-notes-draft.md) by Friday, 17 March 2017 **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** + +## Release Machinery +- Timeouts during upgrade tests + +### Action Required +- Fix upgrade tests, ensure large scale testing is not impacted + +## Actions Taken by Release Team +[ not updated for this report] diff --git a/releases/release-1.6/go-signal-reports/2017-03-17.md b/releases/release-1.6/go-signal-reports/2017-03-17.md index 0609efc64b3..676e8bbf2dd 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-17.md +++ b/releases/release-1.6/go-signal-reports/2017-03-17.md @@ -1,178 +1,178 @@ -## Status: *NO GO* -### Reasons -- Bugs exist in 1.6 milestone -- Flakes exist in 1.6 milestone -- Open issues in 1.6 milestone -- Tests unstable (missing three successful runs in a row) -- Skew test failures -- Upgrade test failures - -## Table Of Contents -- [Issues](#issues) - - [Action Required](#action-required) - - [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required-1) - - [Bugs](#bugs) - - [Action Required](#action-required-2) -- [Test Failures](#test-failures) - - [Action Required](#action-required-3) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-4) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-5) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-6) -- [Actions Taken by Release Team](#actions-taken-by-release-team) - - -## Issues -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 15 (-4 from last report) -- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 2 (-5 from last report) - -### Action required -- Ensure all issues in milestone are release blocking -- Ensure all issues in milestone have SIG routing label -- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! -- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones -- Close "broken test run" issues for transient test infrastructure failures -- Close issues which have been addressed -- Close issues opened by GCP infrastructure failures on 15 March 2017 - -### Flakes -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 5 (-11 from last report) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 0 (-5 from last report) -- [Flakes without milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20no%3Amilestone): 0 - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 0 (-1 from last report) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 1 (**unchanged from last report**) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 1 (**unchanged from last report**) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 2 (-1 from last report) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 0 (-1 from last report) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 0 (-1 from last report) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (unchanged from last report) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (-1 from last report) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 0 (-1 from last report) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 1 (**+1 from last report**) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - -#### Action Required -- **Do not open a flake issue without assigning a SIG to that issue** -- **Do not remove a milestone without assigning a new milestone** -- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG -- Continue to ensure flakes are moved into the correct milestone - - 1.6 *for blocking issues* - - 1.6.1 *for important but not blocking issues* - - 1.7 *for non critical issues to address later* - -### Bugs -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 4 (-2 from last report) -- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 104 (**unchanged from last report**) - -#### Action Required -- Bug assignees please label all bugs with the appropriate SIG(s) -- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones -- Bug assignees please provide regular status updates for all bugs with fix or triage in progress -- Bug assignees and SIGs please close fixed bugs -- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. - -## Test Failures -- [k8s.io] Services should be able to change the type and ports of a service [Slow] -- [k8s.io] Services should only allow access from service loadbalancer source ranges [Slow] -- [k8s.io] Services should work after restarting apiserver [Disruptive] -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 0 pods per node -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [Job] should create new pods when node is partitioned -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should eagerly create replacement pod during network partition when termination grace is non-zero -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should recreate pods scheduled on the unreachable node AND allow scheduling of pods on a node after it rejoins the cluster -- [k8s.io] Cluster level logging using GCL [Flaky] should check that logs from containers are ingested in GCL -- [k8s.io] Cluster level logging using GCL [Slow] [Flaky] should create a constant load with long-living pods and ensure logs delivery -- [k8s.io] Cluster level logging using GCL [Slow] [Flaky] should create a constant load with short-living pods and ensure logs delivery -- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting a pod accessing the NFS vol [Serial] -- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting sleeping pod which mounts an NFS vol [Serial] -- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a file written to the mount before kubelet restart is stat-able after restart. -- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns. -- [k8s.io] Dynamic provisioning [k8s.io] DynamicProvisioner Default should be disabled by changing the default annotation[Slow] [Serial] [Disruptive] [Volume] -- [k8s.io] Dynamic provisioning [k8s.io] DynamicProvisioner Default should be disabled by removing the default annotation[Slow] [Serial] [Disruptive] [Volume] -- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses Ingress connectivity and DNS should be able to connect to a federated ingress via its load balancer -- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should be deleted from underlying clusters when OrphanDependents is false -- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should create and update matching ingresses in underlying clusters -- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is nilChanges -- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is trueChanges -- [k8s.io] Federation deployments [Feature:Federation] Federated Deployment should create and update matching deployments in underlying clusters -- [k8s.io] Federation replicasets [Feature:Federation] Federated ReplicaSet should create and update matching replicasets in underling clusters -- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [StatefulSet] should not reschedule stateful pods if there is a network partition [Slow] [Disruptive] -- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available - -### Action Required -- Address all test failures *immediately* -- Fix or delete Cassandra, Hazelcast tests -- Address DynamicProvisioner regression **has not been fixed** -- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! - -## Suite Failures -- https://testgrid.k8s.io/latest-upgrades#gce-cluster -- https://testgrid.k8s.io/etcd-upgrades#gce-latest -- https://testgrid.k8s.io/google-gke-latest-upgrade#gci-1.4-gci-latest-upgrade-master -- https://testgrid.k8s.io/google-gke-latest-upgrade#gci-1.4-gci-latest-upgrade-cluster -- https://testgrid.k8s.io/google-gke-latest-upgrade#gci-1.4-container_vm-latest-upgrade-cluster -- https://testgrid.k8s.io/google-gke-latest-upgrade#container_vm-1.4-gci-latest-upgrade-master -- https://testgrid.k8s.io/google-gke-latest-upgrade#container_vm-1.4-gci-latest-upgrade-cluster -- https://testgrid.k8s.io/google-gke-latest-upgrade#container_vm-1.4-container_vm-latest-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-all#gce-federation-1.6 -- https://testgrid.k8s.io/etcd-upgrades#gce-rollback-latest (signal unclear due to flake period) -- https://testgrid.k8s.io/release-1.6-all#gci-gke-serial-1.6 -- https://testgrid.k8s.io/release-1.6-all#gke-serial-1.6 -- https://testgrid.k8s.io/release-1.6-upgrade-skew#Summary - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/kubernetes-apps#charts-gce - -### Action Required -- Address all suite failures *immediately* -- Pay particular attention to skew test failures - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) -- PRs still needing docs - - https://github.com/kubernetes/features/issues/93 - - https://github.com/kubernetes/features/issues/54 - - https://github.com/kubernetes/features/issues/97 - - https://github.com/kubernetes/features/issues/88 - -### Action Required -- Feature owners fill out feature template by **TODAY!** -- Feature owners submit docs PR which references issue in features repo by **TODAY!** -- Feature owners prepare release notes by **TODAY!** -- Address etcd upgrade test failures -- Begin adding human curated release notes to [the release notes draft](https://github.com/kubernetes/features/blob/release-notes-draft-1.6/release-1.6/release-notes-draft.md) by **TODAY** **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** - -## Release Machinery -- Timeouts during upgrade tests - -### Action Required -- Fix upgrade tests, ensure large scale testing is not impacted - -## Actions Taken by Release Team -[ not updated for this report] +## Status: *NO GO* +### Reasons +- Bugs exist in 1.6 milestone +- Flakes exist in 1.6 milestone +- Open issues in 1.6 milestone +- Tests unstable (missing three successful runs in a row) +- Skew test failures +- Upgrade test failures + +## Table Of Contents +- [Issues](#issues) + - [Action Required](#action-required) + - [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required-1) + - [Bugs](#bugs) + - [Action Required](#action-required-2) +- [Test Failures](#test-failures) + - [Action Required](#action-required-3) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-4) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-5) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-6) +- [Actions Taken by Release Team](#actions-taken-by-release-team) + + +## Issues +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 15 (-4 from last report) +- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 2 (-5 from last report) + +### Action required +- Ensure all issues in milestone are release blocking +- Ensure all issues in milestone have SIG routing label +- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! +- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones +- Close "broken test run" issues for transient test infrastructure failures +- Close issues which have been addressed +- Close issues opened by GCP infrastructure failures on 15 March 2017 + +### Flakes +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 5 (-11 from last report) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 0 (-5 from last report) +- [Flakes without milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20no%3Amilestone): 0 + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 0 (-1 from last report) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 1 (**unchanged from last report**) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 1 (**unchanged from last report**) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 2 (-1 from last report) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 0 (-1 from last report) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 0 (-1 from last report) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (unchanged from last report) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (-1 from last report) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 0 (-1 from last report) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 1 (**+1 from last report**) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + +#### Action Required +- **Do not open a flake issue without assigning a SIG to that issue** +- **Do not remove a milestone without assigning a new milestone** +- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG +- Continue to ensure flakes are moved into the correct milestone + - 1.6 *for blocking issues* + - 1.6.1 *for important but not blocking issues* + - 1.7 *for non critical issues to address later* + +### Bugs +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 4 (-2 from last report) +- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 104 (**unchanged from last report**) + +#### Action Required +- Bug assignees please label all bugs with the appropriate SIG(s) +- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones +- Bug assignees please provide regular status updates for all bugs with fix or triage in progress +- Bug assignees and SIGs please close fixed bugs +- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. + +## Test Failures +- [k8s.io] Services should be able to change the type and ports of a service [Slow] +- [k8s.io] Services should only allow access from service loadbalancer source ranges [Slow] +- [k8s.io] Services should work after restarting apiserver [Disruptive] +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 0 pods per node +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [Job] should create new pods when node is partitioned +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should eagerly create replacement pod during network partition when termination grace is non-zero +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [ReplicationController] should recreate pods scheduled on the unreachable node AND allow scheduling of pods on a node after it rejoins the cluster +- [k8s.io] Cluster level logging using GCL [Flaky] should check that logs from containers are ingested in GCL +- [k8s.io] Cluster level logging using GCL [Slow] [Flaky] should create a constant load with long-living pods and ensure logs delivery +- [k8s.io] Cluster level logging using GCL [Slow] [Flaky] should create a constant load with short-living pods and ensure logs delivery +- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting a pod accessing the NFS vol [Serial] +- [k8s.io] kubelet [k8s.io] host cleanup with volume mounts [HostCleanup][Flaky] Host cleanup after pod using NFS mount is deleted [Volume][NFS] after deleting the nfs-server, the host should be cleaned-up when deleting sleeping pod which mounts an NFS vol [Serial] +- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a file written to the mount before kubelet restart is stat-able after restart. +- [k8s.io] PersistentVolumes [Volume][Disruptive][Flaky] when kubelet restarts Should test that a volume mounted to a pod that is deleted while the kubelet is down unmounts when the kubelet returns. +- [k8s.io] Dynamic provisioning [k8s.io] DynamicProvisioner Default should be disabled by changing the default annotation[Slow] [Serial] [Disruptive] [Volume] +- [k8s.io] Dynamic provisioning [k8s.io] DynamicProvisioner Default should be disabled by removing the default annotation[Slow] [Serial] [Disruptive] [Volume] +- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses Ingress connectivity and DNS should be able to connect to a federated ingress via its load balancer +- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should be deleted from underlying clusters when OrphanDependents is false +- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should create and update matching ingresses in underlying clusters +- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is nilChanges +- [k8s.io] Federated ingresses [Feature:Federation] Federated Ingresses should not be deleted from underlying clusters when OrphanDependents is trueChanges +- [k8s.io] Federation deployments [Feature:Federation] Federated Deployment should create and update matching deployments in underlying clusters +- [k8s.io] Federation replicasets [Feature:Federation] Federated ReplicaSet should create and update matching replicasets in underling clusters +- [k8s.io] Network Partition [Disruptive] [Slow] [k8s.io] [StatefulSet] should not reschedule stateful pods if there is a network partition [Slow] [Disruptive] +- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available + +### Action Required +- Address all test failures *immediately* +- Fix or delete Cassandra, Hazelcast tests +- Address DynamicProvisioner regression **has not been fixed** +- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! + +## Suite Failures +- https://testgrid.k8s.io/latest-upgrades#gce-cluster +- https://testgrid.k8s.io/etcd-upgrades#gce-latest +- https://testgrid.k8s.io/google-gke-latest-upgrade#gci-1.4-gci-latest-upgrade-master +- https://testgrid.k8s.io/google-gke-latest-upgrade#gci-1.4-gci-latest-upgrade-cluster +- https://testgrid.k8s.io/google-gke-latest-upgrade#gci-1.4-container_vm-latest-upgrade-cluster +- https://testgrid.k8s.io/google-gke-latest-upgrade#container_vm-1.4-gci-latest-upgrade-master +- https://testgrid.k8s.io/google-gke-latest-upgrade#container_vm-1.4-gci-latest-upgrade-cluster +- https://testgrid.k8s.io/google-gke-latest-upgrade#container_vm-1.4-container_vm-latest-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-all#gce-federation-1.6 +- https://testgrid.k8s.io/etcd-upgrades#gce-rollback-latest (signal unclear due to flake period) +- https://testgrid.k8s.io/release-1.6-all#gci-gke-serial-1.6 +- https://testgrid.k8s.io/release-1.6-all#gke-serial-1.6 +- https://testgrid.k8s.io/release-1.6-upgrade-skew#Summary + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/kubernetes-apps#charts-gce + +### Action Required +- Address all suite failures *immediately* +- Pay particular attention to skew test failures + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) +- PRs still needing docs + - https://github.com/kubernetes/features/issues/93 + - https://github.com/kubernetes/features/issues/54 + - https://github.com/kubernetes/features/issues/97 + - https://github.com/kubernetes/features/issues/88 + +### Action Required +- Feature owners fill out feature template by **TODAY!** +- Feature owners submit docs PR which references issue in features repo by **TODAY!** +- Feature owners prepare release notes by **TODAY!** +- Address etcd upgrade test failures +- Begin adding human curated release notes to [the release notes draft](https://github.com/kubernetes/features/blob/release-notes-draft-1.6/release-1.6/release-notes-draft.md) by **TODAY** **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** + +## Release Machinery +- Timeouts during upgrade tests + +### Action Required +- Fix upgrade tests, ensure large scale testing is not impacted + +## Actions Taken by Release Team +[ not updated for this report] diff --git a/releases/release-1.6/go-signal-reports/2017-03-20.md b/releases/release-1.6/go-signal-reports/2017-03-20.md index ea21778dc02..14042d7eaa7 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-20.md +++ b/releases/release-1.6/go-signal-reports/2017-03-20.md @@ -1,163 +1,163 @@ -## Status: *NO GO* -### Reasons -- Bugs exist in 1.6 milestone -- Flakes exist in 1.6 milestone -- Open issues in 1.6 milestone -- Tests unstable (missing three successful runs in a row) -- Skew test failures -- Upgrade test failures - -## Table Of Contents -- [Issues](#issues) - - [Action Required](#action-required) - - [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required-1) - - [Bugs](#bugs) - - [Action Required](#action-required-2) -- [Test Failures](#test-failures) - - [Action Required](#action-required-3) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-4) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-5) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-6) -- [Actions Taken by Release Team](#actions-taken-by-release-team) - - -## Issues -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 16 (**+1 from last report**) -- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 2 (**unchanged from last report**) - -### Action required -- Ensure all issues in milestone are release blocking -- Ensure all issues in milestone have SIG routing label -- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! -- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones -- Close "broken test run" issues for transient test infrastructure failures -- Close issues which have been addressed -- Close issues opened by GCP infrastructure failures on 15 March 2017 - -### Flakes -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 6 (**+1 from last report**) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 3 (**+3 from last report**) -- [Flakes without milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20no%3Amilestone): 0 - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 0 (unchanged from last report) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 0 (-1 from last report) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 0 (-1 from last report) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 2 (**unchanged from last report**) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 0 (unchanged from last report) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 0 (unchanged from last report) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (unchanged from last report) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (unchanged from last report) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 0 (unchanged from last report) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 1 (**unchanged from last report**) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - -#### Action Required -- **Do not open a flake issue without assigning a SIG to that issue** -- **Do not remove a milestone without assigning a new milestone** -- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG -- Continue to ensure flakes are moved into the correct milestone - - 1.6 *for blocking issues* - - 1.6.1 *for important but not blocking issues* - - 1.7 *for non critical issues to address later* - -### Bugs -- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 5 (**+1 from last report**) -- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 105 (**+1 from last report**) - -#### Action Required -- Bug assignees please label all bugs with the appropriate SIG(s) -- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones -- Bug assignees please provide regular status updates for all bugs with fix or triage in progress -- Bug assignees and SIGs please close fixed bugs -- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. - -## Test Failures -- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra -- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset -- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast - -### Action Required -- Please remove Cassandra and Hazelcast example tests which seem to be misconfigured - -## Suite Failures -- https://testgrid.k8s.io/latest-upgrades#gce-cluster -- https://testgrid.k8s.io/etcd-upgrades#gce-latest -- https://testgrid.k8s.io/release-1.6-upgrade-skew#Summary - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-master - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster - - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-master -- https://testgrid.k8s.io/kubernetes-apps#charts-gce -- https://testgrid.k8s.io/google-federation#soak-gce-test -- https://testgrid.k8s.io/release-1.6-all#gce-federation-1.6 -- https://testgrid.k8s.io/release-1.6-all#gci-gke-ingress-1.6 -- https://testgrid.k8s.io/release-1.6-all#gci-gke-reboot-1.6 -- https://testgrid.k8s.io/google-aws#kops-aws-slow - -### Action Required -- Address all suite failures *immediately* -- Pay particular attention to skew test failures -- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) -- PRs still needing docs - - https://github.com/kubernetes/features/issues/93 - - https://github.com/kubernetes/features/issues/88 - - https://github.com/kubernetes/features/issues/43 - -### Action Required -- Feature owners fill out feature template by **TODAY!** -- Feature owners submit docs PR which references issue in features repo by **TODAY!** -- Feature owners prepare release notes by **TODAY!** -- Address etcd upgrade test failures -- Begin adding human curated release notes to [the release notes draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.6/release-notes-draft.md) by **TODAY** **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** - -## Release Machinery -[ not updated for this report ] - -### Action Required -[ not updated for this report ] - -## Actions Taken by Release Team -- These issues will be closed by the release team if testgrid looks stable - - https://github.com/kubernetes/kubernetes/issues/43380 - - https://github.com/kubernetes/kubernetes/issues/43394 - - https://github.com/kubernetes/kubernetes/issues/43351 - - https://github.com/kubernetes/kubernetes/issues/43348 - - https://github.com/kubernetes/kubernetes/issues/43283 +## Status: *NO GO* +### Reasons +- Bugs exist in 1.6 milestone +- Flakes exist in 1.6 milestone +- Open issues in 1.6 milestone +- Tests unstable (missing three successful runs in a row) +- Skew test failures +- Upgrade test failures + +## Table Of Contents +- [Issues](#issues) + - [Action Required](#action-required) + - [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required-1) + - [Bugs](#bugs) + - [Action Required](#action-required-2) +- [Test Failures](#test-failures) + - [Action Required](#action-required-3) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-4) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-5) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-6) +- [Actions Taken by Release Team](#actions-taken-by-release-team) + + +## Issues +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 16 (**+1 from last report**) +- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 2 (**unchanged from last report**) + +### Action required +- Ensure all issues in milestone are release blocking +- Ensure all issues in milestone have SIG routing label +- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! +- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones +- Close "broken test run" issues for transient test infrastructure failures +- Close issues which have been addressed +- Close issues opened by GCP infrastructure failures on 15 March 2017 + +### Flakes +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 6 (**+1 from last report**) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 3 (**+3 from last report**) +- [Flakes without milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20no%3Amilestone): 0 + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 0 (unchanged from last report) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 0 (-1 from last report) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 0 (-1 from last report) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 2 (**unchanged from last report**) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 0 (unchanged from last report) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 0 (unchanged from last report) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (unchanged from last report) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (unchanged from last report) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 0 (unchanged from last report) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 1 (**unchanged from last report**) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + +#### Action Required +- **Do not open a flake issue without assigning a SIG to that issue** +- **Do not remove a milestone without assigning a new milestone** +- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG +- Continue to ensure flakes are moved into the correct milestone + - 1.6 *for blocking issues* + - 1.6.1 *for important but not blocking issues* + - 1.7 *for non critical issues to address later* + +### Bugs +- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 5 (**+1 from last report**) +- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 105 (**+1 from last report**) + +#### Action Required +- Bug assignees please label all bugs with the appropriate SIG(s) +- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones +- Bug assignees please provide regular status updates for all bugs with fix or triage in progress +- Bug assignees and SIGs please close fixed bugs +- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. + +## Test Failures +- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra +- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset +- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast + +### Action Required +- Please remove Cassandra and Hazelcast example tests which seem to be misconfigured + +## Suite Failures +- https://testgrid.k8s.io/latest-upgrades#gce-cluster +- https://testgrid.k8s.io/etcd-upgrades#gce-latest +- https://testgrid.k8s.io/release-1.6-upgrade-skew#Summary + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-master + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster + - https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-master +- https://testgrid.k8s.io/kubernetes-apps#charts-gce +- https://testgrid.k8s.io/google-federation#soak-gce-test +- https://testgrid.k8s.io/release-1.6-all#gce-federation-1.6 +- https://testgrid.k8s.io/release-1.6-all#gci-gke-ingress-1.6 +- https://testgrid.k8s.io/release-1.6-all#gci-gke-reboot-1.6 +- https://testgrid.k8s.io/google-aws#kops-aws-slow + +### Action Required +- Address all suite failures *immediately* +- Pay particular attention to skew test failures +- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) +- PRs still needing docs + - https://github.com/kubernetes/features/issues/93 + - https://github.com/kubernetes/features/issues/88 + - https://github.com/kubernetes/features/issues/43 + +### Action Required +- Feature owners fill out feature template by **TODAY!** +- Feature owners submit docs PR which references issue in features repo by **TODAY!** +- Feature owners prepare release notes by **TODAY!** +- Address etcd upgrade test failures +- Begin adding human curated release notes to [the release notes draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.6/release-notes-draft.md) by **TODAY** **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** + +## Release Machinery +[ not updated for this report ] + +### Action Required +[ not updated for this report ] + +## Actions Taken by Release Team +- These issues will be closed by the release team if testgrid looks stable + - https://github.com/kubernetes/kubernetes/issues/43380 + - https://github.com/kubernetes/kubernetes/issues/43394 + - https://github.com/kubernetes/kubernetes/issues/43351 + - https://github.com/kubernetes/kubernetes/issues/43348 + - https://github.com/kubernetes/kubernetes/issues/43283 diff --git a/releases/release-1.6/go-signal-reports/2017-03-21.md b/releases/release-1.6/go-signal-reports/2017-03-21.md index 61e19389476..2a08cf09784 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-21.md +++ b/releases/release-1.6/go-signal-reports/2017-03-21.md @@ -1,165 +1,165 @@ -## Status: *NO GO* -### Reasons -- Bugs exist in 1.6 milestone -- Flakes exist in 1.6 milestone -- Open issues in 1.6 milestone -- Tests unstable (missing three successful runs in a row) -- Skew tests very noisy -- Upgrade test failures -- Release notes incomplete - -## Table Of Contents -- [Issues](#issues) - - [Action Required](#action-required) - - [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required-1) - - [Bugs](#bugs) - - [Action Required](#action-required-2) -- [Test Failures](#test-failures) - - [Action Required](#action-required-3) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-4) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-5) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-6) -- [Actions Taken by Release Team](#actions-taken-by-release-team) - - -## Issues -- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 8 (-8 from last report) -- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 0 (-2 from last report) - -### Action required -- Ensure all issues in milestone are release blocking -- Ensure all issues in milestone have SIG routing label -- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! -- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones -- Close "broken test run" issues for transient test infrastructure failures -- Close issues which have been addressed -- Close issues opened by GCP infrastructure failures on 15 March 2017 - -### Flakes -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 1 (-5 from last report) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 0 (-3 from last report) -- [Flakes without milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20no%3Amilestone): 0 - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 0 (unchanged from last report) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 0 (-1 from last report) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 0 (unchanged from last report) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 0 (-2 from last report), great job closing those last stubborn issues out! -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 0 (unchanged from last report) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 1 (**+1 from last report**) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (unchanged from last report) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (unchanged from last report) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 0 (unchanged from last report) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (-1 from last report) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - -#### Action Required -- **Do not open a flake issue without assigning a SIG to that issue** -- **Do not remove a milestone without assigning a new milestone** -- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG -- Continue to ensure flakes are moved into the correct milestone - - 1.6 *for blocking issues* - - 1.6.1 *for important but not blocking issues* - - 1.7 *for non critical issues to address later* - -### Bugs -- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 2 (-3 from last report) -- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 104 (-1 from last report) - -#### Action Required -- Bug assignees please label all bugs with the appropriate SIG(s) -- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones -- Bug assignees please provide regular status updates for all bugs with fix or triage in progress -- Bug assignees and SIGs please close fixed bugs -- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. - -## Test Failures -- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra -- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset -- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast -- [k8s.io] Loadbalancing: L7 [k8s.io] GCE [Slow] [Feature:Ingress] should conform to Ingress spec -- [k8s.io] Cluster level logging using GCL should check that logs from containers are ingested in GCL -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node -- [k8s.io] Services should be able to change the type and ports of a service [Slow] -- [k8s.io] Services should only allow access from service loadbalancer source ranges [Slow] - -### Action Required -- Please remove Cassandra and Hazelcast example tests which seem to be misconfigured - -## Suite Failures -- https://testgrid.k8s.io/latest-upgrades#gce-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster-new -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.6-1.5-downgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.6-gci-1.5-downgrade-cluster -- https://testgrid.k8s.io/kubernetes-apps#charts-gce -- https://testgrid.k8s.io/google-federation#soak-gce-test -- https://testgrid.k8s.io/release-1.6-all#gce-federation-1.6 -- https://testgrid.k8s.io/release-1.6-all#gci-gke-ingress-1.6 -- https://testgrid.k8s.io/google-aws#kops-aws-slow - -### Action Required -- Address all suite failures *immediately* -- Pay particular attention to skew test failures -- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) -- PRs still needing docs - - https://github.com/kubernetes/features/issues/43 -- Human curated release notes still incomplete. Specifically very litte curation of [automatically generated release notes](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.6/release-notes-draft.md#auto-generated-release-notes) - -### Action Required -- Feature owners fill out feature template by **TODAY!** -- Feature owners submit docs PR which references issue in features repo by **TODAY!** -- Feature owners prepare release notes by **TODAY!** -- Address etcd upgrade test failures -- Finish adding human curated release notes to [the release notes draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.6/release-notes-draft.md) by **TODAY** **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** - -## Release Machinery -[ not updated for this report ] - -### Action Required -[ not updated for this report ] - -## Actions Taken by Release Team -[ not updated for this report ] +## Status: *NO GO* +### Reasons +- Bugs exist in 1.6 milestone +- Flakes exist in 1.6 milestone +- Open issues in 1.6 milestone +- Tests unstable (missing three successful runs in a row) +- Skew tests very noisy +- Upgrade test failures +- Release notes incomplete + +## Table Of Contents +- [Issues](#issues) + - [Action Required](#action-required) + - [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required-1) + - [Bugs](#bugs) + - [Action Required](#action-required-2) +- [Test Failures](#test-failures) + - [Action Required](#action-required-3) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-4) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-5) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-6) +- [Actions Taken by Release Team](#actions-taken-by-release-team) + + +## Issues +- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 8 (-8 from last report) +- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 0 (-2 from last report) + +### Action required +- Ensure all issues in milestone are release blocking +- Ensure all issues in milestone have SIG routing label +- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! +- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones +- Close "broken test run" issues for transient test infrastructure failures +- Close issues which have been addressed +- Close issues opened by GCP infrastructure failures on 15 March 2017 + +### Flakes +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 1 (-5 from last report) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 0 (-3 from last report) +- [Flakes without milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20no%3Amilestone): 0 + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 0 (unchanged from last report) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 0 (-1 from last report) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 0 (unchanged from last report) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 0 (-2 from last report), great job closing those last stubborn issues out! +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 0 (unchanged from last report) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 1 (**+1 from last report**) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (unchanged from last report) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (unchanged from last report) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 0 (unchanged from last report) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (-1 from last report) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + +#### Action Required +- **Do not open a flake issue without assigning a SIG to that issue** +- **Do not remove a milestone without assigning a new milestone** +- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG +- Continue to ensure flakes are moved into the correct milestone + - 1.6 *for blocking issues* + - 1.6.1 *for important but not blocking issues* + - 1.7 *for non critical issues to address later* + +### Bugs +- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 2 (-3 from last report) +- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 104 (-1 from last report) + +#### Action Required +- Bug assignees please label all bugs with the appropriate SIG(s) +- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones +- Bug assignees please provide regular status updates for all bugs with fix or triage in progress +- Bug assignees and SIGs please close fixed bugs +- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. + +## Test Failures +- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra +- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset +- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast +- [k8s.io] Loadbalancing: L7 [k8s.io] GCE [Slow] [Feature:Ingress] should conform to Ingress spec +- [k8s.io] Cluster level logging using GCL should check that logs from containers are ingested in GCL +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node +- [k8s.io] Services should be able to change the type and ports of a service [Slow] +- [k8s.io] Services should only allow access from service loadbalancer source ranges [Slow] + +### Action Required +- Please remove Cassandra and Hazelcast example tests which seem to be misconfigured + +## Suite Failures +- https://testgrid.k8s.io/latest-upgrades#gce-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster-new +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.6-1.5-downgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.6-gci-1.5-downgrade-cluster +- https://testgrid.k8s.io/kubernetes-apps#charts-gce +- https://testgrid.k8s.io/google-federation#soak-gce-test +- https://testgrid.k8s.io/release-1.6-all#gce-federation-1.6 +- https://testgrid.k8s.io/release-1.6-all#gci-gke-ingress-1.6 +- https://testgrid.k8s.io/google-aws#kops-aws-slow + +### Action Required +- Address all suite failures *immediately* +- Pay particular attention to skew test failures +- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) +- PRs still needing docs + - https://github.com/kubernetes/features/issues/43 +- Human curated release notes still incomplete. Specifically very litte curation of [automatically generated release notes](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.6/release-notes-draft.md#auto-generated-release-notes) + +### Action Required +- Feature owners fill out feature template by **TODAY!** +- Feature owners submit docs PR which references issue in features repo by **TODAY!** +- Feature owners prepare release notes by **TODAY!** +- Address etcd upgrade test failures +- Finish adding human curated release notes to [the release notes draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.6/release-notes-draft.md) by **TODAY** **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** + +## Release Machinery +[ not updated for this report ] + +### Action Required +[ not updated for this report ] + +## Actions Taken by Release Team +[ not updated for this report ] diff --git a/releases/release-1.6/go-signal-reports/2017-03-22.md b/releases/release-1.6/go-signal-reports/2017-03-22.md index 65d4e23f9dd..af7acfae3d3 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-22.md +++ b/releases/release-1.6/go-signal-reports/2017-03-22.md @@ -1,171 +1,171 @@ -## Status: *NO GO* -### Reasons -- Bugs exist in 1.6 milestone -- Flakes exist in 1.6 milestone -- Open issues in 1.6 milestone -- Tests unstable (missing three successful runs in a row) -- Upgrade test noisy -- Release notes incomplete - -## Table Of Contents -- [Issues](#issues) - - [Action Required](#action-required) - - [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required-1) - - [Bugs](#bugs) - - [Action Required](#action-required-2) -- [Test Failures](#test-failures) - - [Action Required](#action-required-3) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-4) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-5) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-6) -- [Actions Taken by Release Team](#actions-taken-by-release-team) - - -## Issues -- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 10 (**+2 from last report**) -- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 0 (unchanged from last report) - -### Action required -- Ensure all issues in milestone are release blocking -- Ensure all issues in milestone have SIG routing label -- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! -- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones -- Close "broken test run" issues for transient test infrastructure failures -- Close issues which have been addressed -- Close issues opened by GCP infrastructure failures on 15 March 2017 - -### Flakes -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 0 (-1 from last report) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 0 (unchanged from last report) -- [Flakes without milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20no%3Amilestone): 0 (unchanged from last report) - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 0 (unchanged from last report) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 0 (unchanged from last report) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 0 (unchanged from last report) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 0 (unchanged from last report) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 0 (unchanged from last report) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 0 (-1 from last report) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (unchanged from last report) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (unchanged from last report) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 0 (unchanged from last report) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - -#### Action Required -- **Do not open a flake issue without assigning a SIG to that issue** -- **Do not remove a milestone without assigning a new milestone** -- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG -- Continue to ensure flakes are moved into the correct milestone - - 1.6 *for blocking issues* - - 1.6.1 *for important but not blocking issues* - - 1.7 *for non critical issues to address later* - -### Bugs -- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 2 (**unchanged from last report**) -- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 104 (**unchanged from last report**) - -#### Action Required -- Bug assignees please label all bugs with the appropriate SIG(s) -- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones -- Bug assignees please provide regular status updates for all bugs with fix or triage in progress -- Bug assignees and SIGs please close fixed bugs -- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. - -## Test Failures -- [k8s.io] Downward API volume should update annotations on modification [Conformance] [Volume] -- [k8s.io] Cluster level logging using GCL should check that logs from containers are ingested in GCL -- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available -- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra -- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset -- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast -- [k8s.io] Loadbalancing: L7 [k8s.io] GCE [Slow] [Feature:Ingress] should conform to Ingress spec -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node -- [k8s.io] Services should be able to change the type and ports of a service [Slow] -- [k8s.io] Services should only allow access from service loadbalancer source ranges [Slow] - -### Action Required -- Please remove Cassandra and Hazelcast example tests which seem to be misconfigured -- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! - -## Suite Failures -- https://testgrid.k8s.io/release-1.6-all#gci-gce-reboot-1.6 -- https://testgrid.k8s.io/release-1.6-all#gci-gke-serial-1.6 -- https://testgrid.k8s.io/release-1.6-all#gke-reboot-1.6 -- https://testgrid.k8s.io/latest-upgrades#gce-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster-new -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-cluster-new -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-cluster-new -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster-new -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.6-1.5-downgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.6-gci-1.5-downgrade-cluster -- https://testgrid.k8s.io/kubernetes-apps#charts-gce -- https://testgrid.k8s.io/google-federation#soak-gce-test -- https://testgrid.k8s.io/release-1.6-all#gce-federation-1.6 -- https://testgrid.k8s.io/google-aws#kops-aws-slow - -### Action Required -- Address all suite failures *immediately* -- Pay particular attention to skew test failures -- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) -- Human curated release notes still incomplete. Specifically very litte curation of [automatically generated release notes](https://github.com/kubernetes/features/blob/release-notes-draft-1.6/release-1.6/release-notes-draft.md#auto-generated-release-notes) - -### Action Required -- Feature owners fill out feature template by **TODAY!** -- Feature owners submit docs PR which references issue in features repo by **TODAY!** -- Feature owners prepare release notes by **TODAY!** -- Address etcd upgrade test failures -- Finish adding human curated release notes to [the release notes draft](https://github.com/kubernetes/features/blob/release-notes-draft-1.6/release-1.6/release-notes-draft.md) by **TODAY** **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** - -## Release Machinery -[ not updated for this report ] - -### Action Required -[ not updated for this report ] - -## Actions Taken by Release Team -[ not updated for this report ] - +## Status: *NO GO* +### Reasons +- Bugs exist in 1.6 milestone +- Flakes exist in 1.6 milestone +- Open issues in 1.6 milestone +- Tests unstable (missing three successful runs in a row) +- Upgrade test noisy +- Release notes incomplete + +## Table Of Contents +- [Issues](#issues) + - [Action Required](#action-required) + - [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required-1) + - [Bugs](#bugs) + - [Action Required](#action-required-2) +- [Test Failures](#test-failures) + - [Action Required](#action-required-3) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-4) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-5) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-6) +- [Actions Taken by Release Team](#actions-taken-by-release-team) + + +## Issues +- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 10 (**+2 from last report**) +- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 0 (unchanged from last report) + +### Action required +- Ensure all issues in milestone are release blocking +- Ensure all issues in milestone have SIG routing label +- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! +- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones +- Close "broken test run" issues for transient test infrastructure failures +- Close issues which have been addressed +- Close issues opened by GCP infrastructure failures on 15 March 2017 + +### Flakes +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 0 (-1 from last report) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 0 (unchanged from last report) +- [Flakes without milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20no%3Amilestone): 0 (unchanged from last report) + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 0 (unchanged from last report) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 0 (unchanged from last report) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 0 (unchanged from last report) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 0 (unchanged from last report) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 0 (unchanged from last report) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 0 (-1 from last report) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (unchanged from last report) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (unchanged from last report) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 0 (unchanged from last report) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + +#### Action Required +- **Do not open a flake issue without assigning a SIG to that issue** +- **Do not remove a milestone without assigning a new milestone** +- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG +- Continue to ensure flakes are moved into the correct milestone + - 1.6 *for blocking issues* + - 1.6.1 *for important but not blocking issues* + - 1.7 *for non critical issues to address later* + +### Bugs +- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 2 (**unchanged from last report**) +- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 104 (**unchanged from last report**) + +#### Action Required +- Bug assignees please label all bugs with the appropriate SIG(s) +- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones +- Bug assignees please provide regular status updates for all bugs with fix or triage in progress +- Bug assignees and SIGs please close fixed bugs +- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. + +## Test Failures +- [k8s.io] Downward API volume should update annotations on modification [Conformance] [Volume] +- [k8s.io] Cluster level logging using GCL should check that logs from containers are ingested in GCL +- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available +- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra +- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset +- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast +- [k8s.io] Loadbalancing: L7 [k8s.io] GCE [Slow] [Feature:Ingress] should conform to Ingress spec +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node +- [k8s.io] Services should be able to change the type and ports of a service [Slow] +- [k8s.io] Services should only allow access from service loadbalancer source ranges [Slow] + +### Action Required +- Please remove Cassandra and Hazelcast example tests which seem to be misconfigured +- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! + +## Suite Failures +- https://testgrid.k8s.io/release-1.6-all#gci-gce-reboot-1.6 +- https://testgrid.k8s.io/release-1.6-all#gci-gke-serial-1.6 +- https://testgrid.k8s.io/release-1.6-all#gke-reboot-1.6 +- https://testgrid.k8s.io/latest-upgrades#gce-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster-new +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-cluster-new +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-cluster-new +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster-new +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.6-1.5-downgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.6-gci-1.5-downgrade-cluster +- https://testgrid.k8s.io/kubernetes-apps#charts-gce +- https://testgrid.k8s.io/google-federation#soak-gce-test +- https://testgrid.k8s.io/release-1.6-all#gce-federation-1.6 +- https://testgrid.k8s.io/google-aws#kops-aws-slow + +### Action Required +- Address all suite failures *immediately* +- Pay particular attention to skew test failures +- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) +- Human curated release notes still incomplete. Specifically very litte curation of [automatically generated release notes](https://github.com/kubernetes/features/blob/release-notes-draft-1.6/release-1.6/release-notes-draft.md#auto-generated-release-notes) + +### Action Required +- Feature owners fill out feature template by **TODAY!** +- Feature owners submit docs PR which references issue in features repo by **TODAY!** +- Feature owners prepare release notes by **TODAY!** +- Address etcd upgrade test failures +- Finish adding human curated release notes to [the release notes draft](https://github.com/kubernetes/features/blob/release-notes-draft-1.6/release-1.6/release-notes-draft.md) by **TODAY** **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** + +## Release Machinery +[ not updated for this report ] + +### Action Required +[ not updated for this report ] + +## Actions Taken by Release Team +[ not updated for this report ] + diff --git a/releases/release-1.6/go-signal-reports/2017-03-23.md b/releases/release-1.6/go-signal-reports/2017-03-23.md index 262f2b9c22b..f7607e71a93 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-23.md +++ b/releases/release-1.6/go-signal-reports/2017-03-23.md @@ -1,178 +1,178 @@ -## Status: *NO GO* -### Reasons -- Open issues in 1.6 milestone -- Unclear signal from upgrade tests -- Release notes incomplete - -## Table Of Contents -- [Issues](#issues) - - [Action Required](#action-required) - - [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required-1) - - [Bugs](#bugs) - - [Action Required](#action-required-2) -- [Test Failures](#test-failures) - - [Action Required](#action-required-3) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-4) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-5) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-6) -- [Actions Taken by Release Team](#actions-taken-by-release-team) - - -## Issues -- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 6 (-4 from last report) -- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 0 (unchanged from last report) - -### Action required -- Ensure all issues in milestone are release blocking -- Ensure all issues in milestone have SIG routing label -- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! -- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones -- Close "broken test run" issues for transient test infrastructure failures -- Close issues which have been addressed -- Close issues opened by GCP infrastructure failures on 15 March 2017 - -### Flakes -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 0 (unchanged from last report) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 0 (unchanged from last report) -- [Flakes without milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20no%3Amilestone): 0 (unchanged from last report) - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 0 (unchanged from last report) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 0 (unchanged from last report) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 0 (unchanged from last report) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 0 (unchanged from last report) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 0 (unchanged from last report) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 0 (unchanged from last report) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (unchanged from last report) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (unchanged from last report) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 0 (unchanged from last report) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - -#### Action Required -- **Do not open a flake issue without assigning a SIG to that issue** -- **Do not remove a milestone without assigning a new milestone** -- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG -- Continue to ensure flakes are moved into the correct milestone - - 1.6 *for blocking issues* - - 1.6.1 *for important but not blocking issues* - - 1.7 *for non critical issues to address later* - -### Bugs -- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 0 (-2 from last report) -- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 105 (**+1 from last report**) - -#### Action Required -- Bug assignees please label all bugs with the appropriate SIG(s) -- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones -- Bug assignees please provide regular status updates for all bugs with fix or triage in progress -- Bug assignees and SIGs please close fixed bugs -- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. - -## Test Failures -- [k8s.io] Downward API volume should update annotations on modification [Conformance] [Volume] -- [k8s.io] Cluster level logging using GCL should check that logs from containers are ingested in GCL -- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available -- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra -- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset -- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast -- [k8s.io] Loadbalancing: L7 [k8s.io] GCE [Slow] [Feature:Ingress] should conform to Ingress spec -- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node -- [k8s.io] Services should be able to change the type and ports of a service [Slow] -- [k8s.io] Services should only allow access from service loadbalancer source ranges [Slow] -- [k8s.io] Kubectl client [k8s.io] Kubectl describe should check if kubectl describe prints relevant information for rc and pods [Conformance] -- [k8s.io] Kubectl client [k8s.io] Kubectl run job should create a job from an image when restart is OnFailure [Conformance] -- [k8s.io] Kubectl client [k8s.io] Simple pod should support inline execution and attach -- [k8s.io] StatefulSet [k8s.io] Basic StatefulSet functionality should handle healthy pet restarts during scale -- [k8s.io] SchedulerPredicates [Serial] validates that taints-tolerations is respected if not matching -- [k8s.io] SchedulerPredicates [Serial] validates that InterPodAntiAffinity is respected if matching 2 -- [k8s.io] SchedulerPredicates [Serial] validates that NodeAffinity is respected if not matching -- [k8s.io] SchedulerPredicates [Serial] validates that a pod with an invalid NodeAffinity is rejected -- [k8s.io] SchedulerPredicates [Serial] validates that a pod with an invalid podAffinity is rejected because of the LabelSelectorRequirement is invalid -- [k8s.io] V1Job should fail a job [Slow] -- [k8s.io] Daemon set [Serial] should run and stop complex daemon with node affinity -- [k8s.io] Deployment overlapping deployment should not fight with each other - - -### Action Required -- Please remove Cassandra and Hazelcast example tests which seem to be misconfigured -- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! - -## Suite Failures -- https://testgrid.k8s.io/latest-upgrades#gce-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster-new -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.6-1.5-downgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.6-gci-1.5-downgrade-cluster -- https://testgrid.k8s.io/kubernetes-apps#charts-gce -- https://testgrid.k8s.io/google-federation#soak-gce-test -- https://testgrid.k8s.io/release-1.6-all#gce-federation-1.6 -- https://testgrid.k8s.io/google-aws#kops-aws-slow - -### Action Required -- Address all suite failures *immediately* -- Pay particular attention to skew test failures -- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) -- Human curated release notes still incomplete. Specifically very litte curation of [automatically generated release notes](https://github.com/kubernetes/features/blob/release-notes-draft-1.6/release-1.6/release-notes-draft.md#auto-generated-release-notes) - -### Action Required -- Feature owners fill out feature template by **TODAY!** -- Feature owners submit docs PR which references issue in features repo by **TODAY!** -- Feature owners prepare release notes by **TODAY!** -- Address etcd upgrade test failures -- Finish adding human curated release notes to [the release notes draft](https://github.com/kubernetes/features/blob/release-notes-draft-1.6/release-1.6/release-notes-draft.md) by **TODAY** **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** - -## Release Machinery -[ not updated for this report ] - -### Action Required -[ not updated for this report ] - -## Actions Taken by Release Team -- Release team has moved the following issues to the `v1.6.1` milestone - - https://github.com/kubernetes/kubernetes/issues/43550 - - https://github.com/kubernetes/kubernetes/issues/43549 -- Last fast forward of master to the `release-1.6` branch has been made, all further changes for 1.6.0 must be cherry picked onto the branch. -- Submit queue opened +## Status: *NO GO* +### Reasons +- Open issues in 1.6 milestone +- Unclear signal from upgrade tests +- Release notes incomplete + +## Table Of Contents +- [Issues](#issues) + - [Action Required](#action-required) + - [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required-1) + - [Bugs](#bugs) + - [Action Required](#action-required-2) +- [Test Failures](#test-failures) + - [Action Required](#action-required-3) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-4) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-5) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-6) +- [Actions Taken by Release Team](#actions-taken-by-release-team) + + +## Issues +- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 6 (-4 from last report) +- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 0 (unchanged from last report) + +### Action required +- Ensure all issues in milestone are release blocking +- Ensure all issues in milestone have SIG routing label +- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! +- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones +- Close "broken test run" issues for transient test infrastructure failures +- Close issues which have been addressed +- Close issues opened by GCP infrastructure failures on 15 March 2017 + +### Flakes +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 0 (unchanged from last report) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 0 (unchanged from last report) +- [Flakes without milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20no%3Amilestone): 0 (unchanged from last report) + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 0 (unchanged from last report) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 0 (unchanged from last report) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 0 (unchanged from last report) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 0 (unchanged from last report) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 0 (unchanged from last report) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 0 (unchanged from last report) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (unchanged from last report) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (unchanged from last report) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 0 (unchanged from last report) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + +#### Action Required +- **Do not open a flake issue without assigning a SIG to that issue** +- **Do not remove a milestone without assigning a new milestone** +- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG +- Continue to ensure flakes are moved into the correct milestone + - 1.6 *for blocking issues* + - 1.6.1 *for important but not blocking issues* + - 1.7 *for non critical issues to address later* + +### Bugs +- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 0 (-2 from last report) +- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 105 (**+1 from last report**) + +#### Action Required +- Bug assignees please label all bugs with the appropriate SIG(s) +- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones +- Bug assignees please provide regular status updates for all bugs with fix or triage in progress +- Bug assignees and SIGs please close fixed bugs +- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. + +## Test Failures +- [k8s.io] Downward API volume should update annotations on modification [Conformance] [Volume] +- [k8s.io] Cluster level logging using GCL should check that logs from containers are ingested in GCL +- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available +- [k8s.io] [Feature:Example] [k8s.io] Cassandra should create and scale cassandra +- [k8s.io] [Feature:Example] [k8s.io] CassandraStatefulSet should create statefulset +- [k8s.io] [Feature:Example] [k8s.io] Hazelcast should create and scale hazelcast +- [k8s.io] Loadbalancing: L7 [k8s.io] GCE [Slow] [Feature:Ingress] should conform to Ingress spec +- [k8s.io] Kubelet [Serial] [Slow] [k8s.io] regular resource usage tracking resource tracking for 100 pods per node +- [k8s.io] Services should be able to change the type and ports of a service [Slow] +- [k8s.io] Services should only allow access from service loadbalancer source ranges [Slow] +- [k8s.io] Kubectl client [k8s.io] Kubectl describe should check if kubectl describe prints relevant information for rc and pods [Conformance] +- [k8s.io] Kubectl client [k8s.io] Kubectl run job should create a job from an image when restart is OnFailure [Conformance] +- [k8s.io] Kubectl client [k8s.io] Simple pod should support inline execution and attach +- [k8s.io] StatefulSet [k8s.io] Basic StatefulSet functionality should handle healthy pet restarts during scale +- [k8s.io] SchedulerPredicates [Serial] validates that taints-tolerations is respected if not matching +- [k8s.io] SchedulerPredicates [Serial] validates that InterPodAntiAffinity is respected if matching 2 +- [k8s.io] SchedulerPredicates [Serial] validates that NodeAffinity is respected if not matching +- [k8s.io] SchedulerPredicates [Serial] validates that a pod with an invalid NodeAffinity is rejected +- [k8s.io] SchedulerPredicates [Serial] validates that a pod with an invalid podAffinity is rejected because of the LabelSelectorRequirement is invalid +- [k8s.io] V1Job should fail a job [Slow] +- [k8s.io] Daemon set [Serial] should run and stop complex daemon with node affinity +- [k8s.io] Deployment overlapping deployment should not fight with each other + + +### Action Required +- Please remove Cassandra and Hazelcast example tests which seem to be misconfigured +- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! + +## Suite Failures +- https://testgrid.k8s.io/latest-upgrades#gce-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster-new +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.6-1.5-downgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.6-gci-1.5-downgrade-cluster +- https://testgrid.k8s.io/kubernetes-apps#charts-gce +- https://testgrid.k8s.io/google-federation#soak-gce-test +- https://testgrid.k8s.io/release-1.6-all#gce-federation-1.6 +- https://testgrid.k8s.io/google-aws#kops-aws-slow + +### Action Required +- Address all suite failures *immediately* +- Pay particular attention to skew test failures +- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) +- Human curated release notes still incomplete. Specifically very litte curation of [automatically generated release notes](https://github.com/kubernetes/features/blob/release-notes-draft-1.6/release-1.6/release-notes-draft.md#auto-generated-release-notes) + +### Action Required +- Feature owners fill out feature template by **TODAY!** +- Feature owners submit docs PR which references issue in features repo by **TODAY!** +- Feature owners prepare release notes by **TODAY!** +- Address etcd upgrade test failures +- Finish adding human curated release notes to [the release notes draft](https://github.com/kubernetes/features/blob/release-notes-draft-1.6/release-1.6/release-notes-draft.md) by **TODAY** **please commit directly to the `release-notes-draft-1.6` branch so we can comment on the [associated PR](https://github.com/kubernetes/features/pull/203) collectively** + +## Release Machinery +[ not updated for this report ] + +### Action Required +[ not updated for this report ] + +## Actions Taken by Release Team +- Release team has moved the following issues to the `v1.6.1` milestone + - https://github.com/kubernetes/kubernetes/issues/43550 + - https://github.com/kubernetes/kubernetes/issues/43549 +- Last fast forward of master to the `release-1.6` branch has been made, all further changes for 1.6.0 must be cherry picked onto the branch. +- Submit queue opened diff --git a/releases/release-1.6/go-signal-reports/2017-03-24.md b/releases/release-1.6/go-signal-reports/2017-03-24.md index 923a19c7bc3..ae7e2699560 100644 --- a/releases/release-1.6/go-signal-reports/2017-03-24.md +++ b/releases/release-1.6/go-signal-reports/2017-03-24.md @@ -1,148 +1,148 @@ -## Status: *NO GO* -### Reasons -- Open issues in 1.6 milestone -- Waiting for additional signal from skew tests -- Release notes incomplete - -## Table Of Contents -- [Issues](#issues) - - [Action Required](#action-required) - - [Flakes](#flakes) - - [By SIG](#by-sig) - - [Action Required](#action-required-1) - - [Bugs](#bugs) - - [Action Required](#action-required-2) -- [Test Failures](#test-failures) - - [Action Required](#action-required-3) -- [Suite Failures](#suite-failures) - - [Action Required](#action-required-4) -- [Incomplete Features](#incomplete-features) - - [Action Required](#action-required-5) -- [Release Machinery](#release-machinery) - - [Action Required](#action-required-6) -- [Actions Taken by Release Team](#actions-taken-by-release-team) - - -## Issues -- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 8 (**+2 from last report**) -- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 0 (unchanged from last report) - -### Action required -- Ensure all issues in milestone are release blocking -- Ensure all issues in milestone have SIG routing label -- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! -- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones -- Close "broken test run" issues for transient test infrastructure failures -- Close issues which have been addressed -- Close issues opened by GCP infrastructure failures on 15 March 2017 - -### Flakes -- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 1 (**+1 from last report**) -- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 1 (**+1 from last report**) -- [Flakes without milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20no%3Amilestone): 0 (unchanged from last report) - -### By SIG -- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 0 (unchanged from last report) -- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) -- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 0 (unchanged from last report) -- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) -- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) -- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) -- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) -- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 0 (unchanged from last report) -- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) -- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) -- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) -- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 0 (unchanged from last report) -- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 0 (unchanged from last report) -- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 0 (unchanged from last report) -- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (unchanged from last report) -- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) -- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) -- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) -- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) -- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (unchanged from last report) -- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) -- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 0 (unchanged from last report) -- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) -- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) -- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) - -#### Action Required -- **Do not open a flake issue without assigning a SIG to that issue** -- **Do not remove a milestone without assigning a new milestone** -- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones -- Assign owners for each blocking issue from each SIG for all remaining release blocking issues -- Provide status updates within 24hrs for all flakes assigned to your SIG -- Continue to ensure flakes are moved into the correct milestone - - 1.6 *for blocking issues* - - 1.6.1 *for important but not blocking issues* - - 1.7 *for non critical issues to address later* - -### Bugs -- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 0 (unchanged from last report) -- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 105 (**unchanged from last report**) - -#### Action Required -- Bug assignees please label all bugs with the appropriate SIG(s) -- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones -- Bug assignees please provide regular status updates for all bugs with fix or triage in progress -- Bug assignees and SIGs please close fixed bugs -- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. - -## Test Failures -- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available - -### Action Required -- Please remove Cassandra and Hazelcast example tests which seem to be misconfigured -- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! - -## Suite Failures -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster-new -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-master -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.6-1.5-downgrade-cluster -- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.6-gci-1.5-downgrade-cluster - -### Action Required -- Address all suite failures *immediately* -- Pay particular attention to skew test failures -- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! - -## Incomplete Features -- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) -- Human curated release notes still incomplete. Specifically very litte curation of [automatically generated release notes](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.6/release-notes-draft.md#auto-generated-release-notes) - -### Action Required -- Feature owners fill out feature template by **TODAY!** -- Feature owners submit docs PR which references issue in features repo by **TODAY!** -- Feature owners prepare release notes by **TODAY!** -- Address etcd upgrade test failures -- Make all final changes to the [the release notes draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.6/release-notes-draft.md) by **TODAY!** - -## Release Machinery -[ not updated for this report ] - -### Action Required -[ not updated for this report ] - -## Actions Taken by Release Team -- Release will close the following issues - - https://github.com/kubernetes/kubernetes/issues/43616 -- Release team has closed the `release-notes-draft-1.6` branch +## Status: *NO GO* +### Reasons +- Open issues in 1.6 milestone +- Waiting for additional signal from skew tests +- Release notes incomplete + +## Table Of Contents +- [Issues](#issues) + - [Action Required](#action-required) + - [Flakes](#flakes) + - [By SIG](#by-sig) + - [Action Required](#action-required-1) + - [Bugs](#bugs) + - [Action Required](#action-required-2) +- [Test Failures](#test-failures) + - [Action Required](#action-required-3) +- [Suite Failures](#suite-failures) + - [Action Required](#action-required-4) +- [Incomplete Features](#incomplete-features) + - [Action Required](#action-required-5) +- [Release Machinery](#release-machinery) + - [Action Required](#action-required-6) +- [Actions Taken by Release Team](#actions-taken-by-release-team) + + +## Issues +- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 8 (**+2 from last report**) +- ["broken test run" issues in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?page=1&q=is%3Aissue+is%3Aopen+label%3Akind%2Fflake+%22broken+test+run%22++milestone%3Av1.6&utf8=%E2%9C%93): 0 (unchanged from last report) + +### Action required +- Ensure all issues in milestone are release blocking +- Ensure all issues in milestone have SIG routing label +- Ensure all issues opened by a human have an assignee. It's now possible to [assign people using prow](https://groups.google.com/forum/#!topic/kubernetes-wg-contribex/t6aceRk03Ag); thanks contribx! +- Move all non blocking issues out of `v1.6` milestone **and into** *either* the `v1.6.1` or `v1.7` milestones +- Close "broken test run" issues for transient test infrastructure failures +- Close issues which have been addressed +- Close issues opened by GCP infrastructure failures on 15 March 2017 + +### Flakes +- [Total in milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6): 1 (**+1 from last report**) +- [No SIG](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20-label%3Asig%2Fapi-machinery%20-label%3Asig%2Fapps%20-label%3Asig%2Fauth%20-label%3Asig%2Fautoscaling%20-label%3Asig%2Faws%20-label%3Asig%2Fcli%20-label%3Asig%2Fcluster-lifecycle%20-label%3Asig%2Fcluster-ops%20-label%3Asig%2Fcontributor-experience%20-label%3Asig%2Fdocs%20-label%3Asig%2Ffederation%20-label%3Asig%2Finstrumentation%20-label%3Asig%2Fnetwork%20-label%3Asig%2Fnode%20-label%3Asig%2Fonprem%20-label%3Asig%2Fopenstack%20-label%3Asig%2Frktnetes%20-label%3Asig%2Fscalability%20-label%3Asig%2Fscheduling%20-label%3Asig%2Fservice-catalog%20-label%3Asig%2Fstorage%20-label%3Asig%2Ftesting%20-label%3Asig%2Fwindows): 1 (**+1 from last report**) +- [Flakes without milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20no%3Amilestone): 0 (unchanged from last report) + +### By SIG +- [API Machinery](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapi-machinery%20): 0 (unchanged from last report) +- [AWS](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Faws): 0 (unchanged from last report) +- [Apps](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fapps): 0 (unchanged from last report) +- [Auth](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fauth): 0 (unchanged from last report) +- [Autoscaling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fautoscaling): 0 (unchanged from last report) +- [Big Data](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fbig-data): 0 (unchanged from last report) +- [CLI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcli): 0 (unchanged from last report) +- [Cluster Lifecycle](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-lifecycle): 0 (unchanged from last report) +- [Cluster Ops](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcluster-ops): 0 (unchanged from last report) +- [Contributor Experience](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fcontributor-experience): 0 (unchanged from last report) +- [Docs](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fdocs): 0 (unchanged from last report) +- [Federation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ffederation): 0 (unchanged from last report) +- [Instrumentation](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Finstrumentation): 0 (unchanged from last report) +- [Network](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnetwork): 0 (unchanged from last report) +- [Node](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fnode): 0 (unchanged from last report) +- [On Prem](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fon-prem): 0 (unchanged from last report) +- [OpenStack](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fopenstack): 0 (unchanged from last report) +- [PM](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fpm): 0 (unchanged from last report) +- [Scalability](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscalability): 0 (unchanged from last report) +- [Scheduling](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fscheduling): 0 (unchanged from last report) +- [Service Catalog](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fservice-catalog): 0 (unchanged from last report) +- [Storage](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fstorage): 0 (unchanged from last report) +- [Testing](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Ftesting): 0 (unchanged from last report) +- [UI](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fui): 0 (unchanged from last report) +- [Windows](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fflake%20milestone%3Av1.6%20label%3Asig%2Fwindows): 0 (unchanged from last report) + +#### Action Required +- **Do not open a flake issue without assigning a SIG to that issue** +- **Do not remove a milestone without assigning a new milestone** +- Move all non release blocking issues out of `v1.6` milestone and into _either_ the `v1.6.1` or `v1.7` milestones +- Assign owners for each blocking issue from each SIG for all remaining release blocking issues +- Provide status updates within 24hrs for all flakes assigned to your SIG +- Continue to ensure flakes are moved into the correct milestone + - 1.6 *for blocking issues* + - 1.6.1 *for important but not blocking issues* + - 1.7 *for non critical issues to address later* + +### Bugs +- [Total in 1.6 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20milestone%3Av1.6): 0 (unchanged from last report) +- [Without Milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3Akind%2Fbug%20no%3Amilestone): 105 (**unchanged from last report**) + +#### Action Required +- Bug assignees please label all bugs with the appropriate SIG(s) +- **Bug assignees please move all non release blocking bugs out of the `v1.6` milestone** and into the `v1.6.1` or `v1.7` milestones +- Bug assignees please provide regular status updates for all bugs with fix or triage in progress +- Bug assignees and SIGs please close fixed bugs +- As spare time allows *please* help to begin addressing bugs without a milestone. Some of these bugs can probably be closed but we should be kind to the community and address these issues. + +## Test Failures +- [k8s.io] Rescheduler [Serial] should ensure that critical pod is scheduled in case there is no resources available + +### Action Required +- Please remove Cassandra and Hazelcast example tests which seem to be misconfigured +- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! + +## Suite Failures +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-cluster-new +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.5-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.4-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-cluster-new +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-container_vm-1.5-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.4-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-container_vm-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.5-gci-1.6-upgrade-master +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gce-1.6-1.5-downgrade-cluster +- https://testgrid.k8s.io/release-1.6-upgrade-skew#gke-gci-1.6-gci-1.5-downgrade-cluster + +### Action Required +- Address all suite failures *immediately* +- Pay particular attention to skew test failures +- Use the new [triage tool](https://storage.googleapis.com/k8s-gubernator/triage/index.html?test=Simple%20pod%20should%20handle%20in-cluster%20config%7CNginx%20should%20conform%20to%20Ingress%20spec%7CPreStop%20should%20call%20prestop%20when%20killing%20a%20pod), thanks SIG Testing and Team/Test-Infra! + +## Incomplete Features +- Open issues filed against [`kubernetes/features` in 1.6 milestone](https://github.com/kubernetes/features/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.6): 29 (**unchanged from last report**) +- Human curated release notes still incomplete. Specifically very litte curation of [automatically generated release notes](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.6/release-notes-draft.md#auto-generated-release-notes) + +### Action Required +- Feature owners fill out feature template by **TODAY!** +- Feature owners submit docs PR which references issue in features repo by **TODAY!** +- Feature owners prepare release notes by **TODAY!** +- Address etcd upgrade test failures +- Make all final changes to the [the release notes draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.6/release-notes-draft.md) by **TODAY!** + +## Release Machinery +[ not updated for this report ] + +### Action Required +[ not updated for this report ] + +## Actions Taken by Release Team +- Release will close the following issues + - https://github.com/kubernetes/kubernetes/issues/43616 +- Release team has closed the `release-notes-draft-1.6` branch diff --git a/releases/release-1.6/release-1.6.md b/releases/release-1.6/release-1.6.md index 7e6af0b897d..d803ddd0e25 100644 --- a/releases/release-1.6/release-1.6.md +++ b/releases/release-1.6/release-1.6.md @@ -1 +1 @@ -Please see [README.md](README.md) instead +Please see [README.md](README.md) instead diff --git a/releases/release-1.6/release-notes-draft.md b/releases/release-1.6/release-notes-draft.md index d4e0c9612ca..89dea4f1436 100644 --- a/releases/release-1.6/release-notes-draft.md +++ b/releases/release-1.6/release-notes-draft.md @@ -1,865 +1,865 @@ -## WARNING: etcd backup strongly recommended - -Before updating to 1.6, you are strongly recommended to back up your etcd data. -Please consult the installation procedure you are using (kargo, kops, kube-up, -kube-aws, kubeadm etc) for specific advice. - -1.6 encourages etcd3, and switching from etcd2 to etcd3 involves a full -migration of data between different storage engines. You must stop the API -from writing to etcd during an etcd2 -> etcd3 migration. HA installations cannot -be migrated at the current time using the official Kubernetes procedure. - -1.6 will also default to protobuf encoding if using etcd3. **This change is -irreversible.** To rollback, you must restore from a backup made before the -protobuf/etcd3 switch, and any changes since the backup will be lost. As 1.5 -does not support protobuf encoding, if you roll back to 1.5 after upgrading to -protobuf you will be forced to restore from backup, and you will lose any changes -since you converted to protobuf. After conversion to protobuf, you should -validate the correct operation of your cluster thoroughly before returning it -to normal operation. - -Backups are always a good precaution, particularly around upgrades, but this -upgrade has multiple known issues where the only remedy is to restore from -backup. - -Also, please note: -- using `application/vnd.kubernetes.protobuf` as the media storage type for 1.6 is default but not required -- the ability to rollback to etcd2 can be preserved by continuing to use `application/json` as the storage media type. This can be changed to `application/vnd.kubernetes.protobuf` at a later time. - -## Major updates and release themes - -* Kubernetes now supports up to 5,000 nodes via etcd v3, which is enabled by default. -* [Role-based access control (RBAC)](https://kubernetes.io//docs/admin/authorization/rbac) has graduated to beta, and defines secure default roles for control plane, node, and controller components. -* The [`kubeadm` cluster bootstrap tool](https://kubernetes.io/docs/getting-started-guides/kubeadm/) has graduated to beta. Some highlights: - * All communication is now over TLS - * Authorization plugins can be installed by kubeadm, including the new default of RBAC - * The bootstrap token system now allows token management and expiration -* The [`kubefed` federation bootstrap tool](https://kubernetes.io/docs/tutorials/federation/set-up-cluster-federation-kubefed/) has also graduated to beta. -* Interaction with container runtimes is now through the CRI interface, enabling easier integration of runtimes with the kubelet. Docker remains the default runtime via Docker-CRI (which moves to beta). -* Various scheduling features have graduated to beta: - * You can now use [multiple schedulers](https://kubernetes.io/docs/admin/multiple-schedulers/) - * [Nodes](https://kubernetes.io/docs/user-guide/node-selection/#node-affinity-beta-feature) and [pods](https://kubernetes.io/docs/user-guide/node-selection/#inter-pod-affinity-and-anti-affinity-beta-feature) now support affinity and anti-affinity - * Advanced scheduling can be performed with [taints and tolerations](https://kubernetes.io/docs/user-guide/node-selection/#taints-and-tolerations-beta-feature) -* You can now specify (per pod) how long a pod should stay bound to a node, when there is a node problem. -* Various storage features have graduated to GA: - * StorageClass pre-installed and set as default on Azure, AWS, GCE, OpenStack, and vSphere - * Configurable [Dynamic Provisioning](https://kubernetes.io/docs/user-guide/persistent-volumes/#dynamic) and [StorageClass](https://kubernetes.io/docs/user-guide/persistent-volumes/#storageclasses) -* DaemonSets [can now be updated by a rolling update](https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set). - -## Action Required - -### Certificates API -* Users of the alpha certificates API should delete v1alpha1 CSRs from the API before upgrading and recreate them as v1beta1 CSR after upgrading. ([#39772](https://github.com/kubernetes/kubernetes/pull/39772), [@mikedanese](https://github.com/mikedanese)) - -### Cluster Autoscaler -* If you are using (or planning to use) Cluster Autoscaler please wait for Kubernetes 1.6.1. In 1.6.0 Cluster Autoscaler -may occasionally increase the size of the cluster a bit more than it is actually needed, when there are -unschedulable pods, scale up is required and cloud provider is slow to set up networking for new nodes. -Anyway, the cluster should get back to the proper size after 10 min. - -### Deployment -* Deployment now fully respects ControllerRef to avoid fighting over Pods and ReplicaSets. At the time of upgrade, **you must not have Deployments with selectors that overlap**, or else [ownership of ReplicaSets may change](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/controller-ref.md#upgrading). ([#42175](https://github.com/kubernetes/kubernetes/pull/42175), [@enisoc](https://github.com/enisoc)) - -### Federation -* The --dns-provider argument of 'kubefed init' is now mandatory and does not default to `google-clouddns`. To initialize a Federation control plane with Google Cloud DNS, use the following invocation: 'kubefed init --dns-provider=google-clouddns' ([#42092](https://github.com/kubernetes/kubernetes/pull/42092), [@marun](https://github.com/marun)) -* Cluster federation servers have changed the location in etcd where federated services are stored, so existing federated services must be deleted and recreated. Before upgrading, export all federated services from the federation server and delete the services. After upgrading the cluster, recreate the federated services from the exported data. ([#37770](https://github.com/kubernetes/kubernetes/pull/37770), [@enj](https://github.com/enj)) - -### Internal Storage Layer -* upgrade to etcd3 prior to upgrading to 1.6 **OR** explicitly specify `--storage-type=etcd2 --storage-media-type=application/json` when starting the apiserver - -### Node Components -* **Kubelet with the Docker-CRI implementation** - * The Docker-CRI implementation is enabled by default. - * It is not compatible with containers created by older Kubelets. It is - recommended to drain your node before upgrade. If you choose to perform - an in-place upgrade, the Kubelet will automatically restart all - Kubernetes-managed containers on the node. - * It is not compatible with CNI plugins that do not conform to the - [error handling behavior in the spec](https://github.com/containernetworking/cni/blob/master/SPEC.md#network-configuration-list-error-handling). - The plugins are being updated to resolve this issue ([#43488](https://github.com/kubernetes/kubernetes/issues/43488)). - You can disable CRI explicitly (`--enable-cri=false`) as a - temporary workaround. - * The standard `bridge` plugin have been validated to interoperate with - the new CRI + CNI code path. - * If you are using plugins other than `bridge`, make sure you have - updated custom plugins to the latest version that is compatible. -* **Enhance Kubelet QoS**: - * Pods are placed under a new cgroup hierarchy by default. This feature requires - draining and restarting the node as part of upgrades. To opt-out set - `--cgroups-per-qos=false`. - * If `kube-reserved` and/or `system-reserved` are specified, node allocatable - will be enforced on all pods by default. To opt-out set - `--enforce-node-allocatable=””` - * Hard Eviction Thresholds will be subtracted from Capacity while calculating - Node Allocatable. This will result in a reduction of schedulable capacity in - clusters post upgrade where kubelet hard eviction has been turned on for - memory. To opt-out set `--experimental-allocatable-ignore-eviction=true`. - * More details on these feature here: - https://kubernetes.io/docs/concepts/cluster-administration/node-allocatable/ -* Drop the support for docker 1.9.x. Docker versions 1.10.3, 1.11.2, 1.12.6 - have been validated. -* The following deprecated kubelet flags are removed: `--config`, `--auth-path`, - `--resource-container`, `--system-container`, `--reconcile-cidr` -* Remove the temporary fix for pre-1.0 mirror pods. Upgrade directly from - pre-1.0 to 1.6 kubelet is not supported. -* Fluentd was migrated to Daemon Set, which targets nodes with - beta.kubernetes.io/fluentd-ds-ready=true label. If you use fluentd in your - cluster please make sure that the nodes with version 1.6+ contains this - label. - -### kubectl -* Running `kubectl taint` (alpha in 1.5) against a 1.6 server requires upgrading kubectl to version 1.6 -* Running `kubectl taint` (alpha in 1.5) against a 1.5 server requires a kubectl version of 1.5 -* Running `kubectl create secret` no longer accepts passing multiple values to a single --from-literal flag using comma separation - * Update command invocations to pass separate --from-literal flags for each value - -### RBAC -* Default ClusterRole and ClusterRoleBinding objects are automatically updated at server start to add missing permissions and subjects (extra permissions and subjects are left in place). To prevent autoupdating a particular role or rolebinding, annotate it with `rbac.authorization.kubernetes.io/autoupdate=false`. ([#41155](https://github.com/kubernetes/kubernetes/pull/41155), [@liggitt](https://github.com/liggitt)) -* `v1beta1` RoleBinding/ClusterRoleBinding subjects changed `apiVersion` to `apiGroup` to fully-qualify a subject. ServiceAccount subjects default to an apiGroup of `""`, User and Group subjects default to an apiGroup of `"rbac.authorization.k8s.io"`. ([#41184](https://github.com/kubernetes/kubernetes/pull/41184), [@liggitt](https://github.com/liggitt)) -* To create or update an RBAC RoleBinding or ClusterRoleBinding object, a user must: ([#39383](https://github.com/kubernetes/kubernetes/pull/39383), [@liggitt](https://github.com/liggitt)) - * 1. Be authorized to make the create or update API request - * 2. Be allowed to bind the referenced role, either by already having all of the permissions contained in the referenced role, or by having the "bind" permission on the referenced role. -* The `--authorization-rbac-super-user` flag (alpha in 1.5) is deprecated; the `system:masters` group has privileged access ([#38121](https://github.com/kubernetes/kubernetes/pull/38121), [@deads2k](https://github.com/deads2k)) -* special handling of the user `*` in RoleBinding and ClusterRoleBinding objects is removed in v1beta1. To match all users, explicitly bind to the group `system:authenticated` and/or `system:unauthenticated`. Existing v1alpha1 bindings to the user `*` are automatically converted to the group `system:authenticated`. ([#38981](https://github.com/kubernetes/kubernetes/pull/38981), [@liggitt](https://github.com/liggitt)) - -### Scheduling -* **Multiple schedulers** - * Modify your PodSpecs that currently use the `scheduler.alpha.kubernetes.io/name` annotation on Pod, to instead use the `schedulerName` field in the PodSpec. - * Modify any custom scheduler(s) you have written so that they read the `schedulerName` field on Pod instead of the `scheduler.alpha.kubernetes.io/name` annotation. - * Note that you can only start using the `schedulerName` field **after** you upgrade to 1.6; it is not recognized in 1.5. - -* **Node affinity/anti-affinity and pod affinity/anti-affinity** - * You can continue to use the alpha version of this feature (with one caveat -- see below), in which you specify affinity requests using Pod annotations, in 1.6 by including `AffinityInAnnotations=true` in `--feature-gates`, such as `--feature-gates=FooBar=true,AffinityInAnnotations=true`. Otherwise, you must modify your PodSpecs that currently use the `scheduler.alpha.kubernetes.io/affinity` annotation on Pod, to instead use the `affinity` field in the PodSpec. Support for the annotation will be removed in a future release, so we encourage you to switch to using the field as soon as possible. - * Caveat: The alpha version no longer supports, and the beta version does not support, the "empty `podAffinityTerm.namespaces` list means all namespaces" behavior. In both alpha and beta it now means "same namespace as the pod specifying this affinity rule." - * Note that you can only start using the `affinity` field **after** you upgrade to 1.6; it is not recognized in 1.5. - * The `--failure-domains` scheduler command line-argument is not supported in the beta version of the feature. - -* **Taints** - * You will need to use `kubectl taint` to re-create all of your taints after kubectl and the master are upgraded to 1.6. Between the time the master is upgraded to 1.6 and when you do this, your existing taints will have no effect. - * You can find out what taints you have in place on a node while you are still running Kubernetes 1.5 by doing `kubectl describe node <node name>`; the `Taints` section will show the taints you have in place. To see the taints that were created under 1.5 when you are running 1.6, do `kubectl get node <node name> -o yaml` and look for the "Annotation" section with the annotation key `scheduler.alpha.kubernetes.io/taints` - * You can remove the "old" taints (stored internally as annotations) at any time after the upgrade by doing `kubectl annotate nodes <node name> scheduler.alpha.kubernetes.io/taints-` (note the minus at the end, which means "delete the taint with this key") - * Note that because any taints you might have created with Kubernetes 1.5 can only affect the scheduling of new pods (the `NoExecute` taint effect is introduced in 1.6), neither the master upgrade nor your running `kubectl taint` to re-create the taints will affect pods that are already running. - * Rescheduler relies on taints, which were changed in a backward incompatible way. Rescheduler 0.3 shipped together with Kubernetes 1.6 understands the new taints and will clean up the old annotations, but Rescheduler 0.2 shipped together with Kubernetes 1.5 doesn't understand the new taints. In order to avoid eviction loop during 1.5->1.6 upgrade you need to either upgrade the master node atomically (for example by using `upgrade.sh` script for GCE) or ensure that the rescheduler is upgraded first, then the scheduler and then all the other master components. - -* **Tolerations** - * After your master is upgraded to 1.6, you will need to update your PodSpecs to set the `tolerations` field of the PodSpec and remove the `scheduler.alpha.kubernetes.io/tolerations` annotation on the Pod. (It's not strictly necessary to remove the annotation, as it will have no effect once you upgrade to 1.6.) Between the time the master is upgraded to 1.6 and when you do this, tolerations attached to Pods that are created will have no effect. Pods that are already running will not be affected by the upgrade. - * You can find the PodSpec tolerations that were created as annotations (if any) in a controller definition by doing `kubectl get <controller kind> <controller name> -o yaml` and looking for the "Annotation" section with the annotation key `scheduler.alpha.kubernetes.io/tolerations` (This will work whether you are running Kubernetes 1.5 or 1.6). - * To update a controller's PodSpec to use the field instead of the annotation, use one of the kubectl commands that do update ("kubectl replace" or "kubectl apply" or "kubectl patch") or just delete the controller entirely and re-create it with a new pod template. Note that you will be able to do these things only after the upgrade. - -### Service -* The 'endpoints.beta.kubernetes.io/hostnames-map' annotation is no longer supported. Users can use the 'Endpoints.subsets[].addresses[].hostname' field instead. ([#39284](https://github.com/kubernetes/kubernetes/pull/39284), [@bowei](https://github.com/bowei)) - -### StatefulSet -* StatefulSet now respects ControllerRef to avoid fighting over Pods. At the time of upgrade, **you must not have StatefulSets with selectors that overlap** with any other controllers (such as ReplicaSets), or else [ownership of Pods may change](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/controller-ref.md#upgrading). ([#42080](https://github.com/kubernetes/kubernetes/pull/42080), [@enisoc](https://github.com/enisoc)) - -### Volume -* StorageClass pre-installed and set as default on Azure, AWS, GCE, OpenStack, and vSphere. - * This is something to pay close attention to if you’ve been using Kubernetes for a while, because it changes the default behavior of PersistentVolumeClaim objects on these clouds. - * Marking a StorageClass as default makes it so that even a PersistentVolumeClaim without a StorageClass specified will trigger dynamic provisioning (instead of binding to an existing pool of PVs). - * If you depend on the old behavior of volumes binding to existing pool of PersistentVolume objects then modify the StorageClass object and set `storageclass.beta.kubernetes.io/is-default-class` to `false`. -* Flex volume plugin is updated to support attach/detach interfaces. It broke backward compatibility. Please update your drivers and implement the new callouts. ([#41804](https://github.com/kubernetes/kubernetes/pull/41804), [@chakri-nelluri](https://github.com/chakri-nelluri)) - -## Notable Features -Features for this release were tracked via the use of the [kubernetes/features](https://github.com/kubernetes/features) issues repo. Each Feature issue is owned by a Special Interest Group from the [kubernetes/community](https://github.com/kubernetes/community/blob/master/sig-list.md). - -### Autoscaling -* **[alpha]** The Horizontal Pod Autoscaler now supports drawing metrics through the API server aggregator. -* **[alpha]** The Horizontal Pod Autoscaler now supports scaling on multiple, custom metrics. -* Cluster Autoscaler publishes its status to kube-system/cluster-autoscaler-status ConfigMap. -* Cluster Autoscaler can continue operations while some nodes are broken or unready. -* Cluster Autoscaler respects Pod Disruption Budgets when removing a node. - -### DaemonSets -* **[beta]** Introduce the rolling update feature for DaemonSet. See [Performing a Rolling Update on a DaemonSet](https://deploy-preview-2878--kubernetes-io-master-staging.netlify.com/docs/tasks/manage-daemon/update-daemon-set/). - -### Deployments -* **[beta]** Deployments that cannot make progress in rolling out the newest version will now indicate via the API they are blocked ([docs](https://kubernetes.io/docs/user-guide/deployments/#deployment-status)) - -### Federation -* **[beta]** `kubefed` has graduated to beta: supports hosting federation on on-prem clusters, automatically configures `kube-dns` in joining clusters and allows passing arguments to federation components. - -### Internal Storage Layer -* **[stable]** The internal storage layer for kubernetes cluster state has been updated to use etcd v3 by default. Existing clusters will have to plan for a data migration window. ([docs](https://github.com/kubernetes/kubernetes.github.io/pull/2763))([kubernetes/features#44](https://github.com/kubernetes/features/issues/44)) - -### kubeadm -* **[beta]** Introduces an API for clients to request TLS certificates from the API server. See the [tutorial](https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster). -* **[beta]** kubeadm is enhanced and improved with a baseline feature set and command line flags that are now marked as beta. Other parts of kubeadm, including subcommands under `kubeadm alpha`, are [still in alpha](https://kubernetes.io/docs/admin/kubeadm/). Using it is considered safe, although note that upgrades and HA are not yet supported. Please [try it out](https://kubernetes.io/docs/getting-started-guides/kubeadm/) and [give us feedback](https://kubernetes.io/docs/getting-started-guides/kubeadm/#feedback)! -* **[alpha]** New Bootstrap Token authentication and management method. Works well with kubeadm. kubeadm now supports managing tokens, including time based expiration, after the cluster is launched. See [kubeadm reference docs](https://kubernetes.io/docs/admin/kubeadm/#manage-tokens) for details. -* **[alpha]** Adds a new cloud-controller-manager binary that may be used for testing the new out-of-core cloudprovider flow. - -### Node Components -* **[stable]** Init containers have graduated to GA and now appear as a field. - The beta annotation value will still be respected and overrides the field - value. -* Kubelet Container Runtime Interface (CRI) support - - **[beta]** The Docker-CRI implementation is enabled by default in kubelet. - You can disable it by --enable-cri=false. See - [notes on the new implementation](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md#kubernetes-v16-release-docker-cri-integration-beta) - for more details. - - **[alpha]** Alpha support for other runtimes: - [cri-o](https://github.com/kubernetes-incubator/cri-o/releases/tag/v0.1), [frakti](https://github.com/kubernetes/frakti/releases/tag/v0.1), [rkt](https://github.com/coreos/rkt/issues?q=is%3Aopen+is%3Aissue+label%3Aarea%2Fcri). -* **[beta]** Node Problem Detector is beta (v0.3.0) now. New - features added into node-problem-detector:v0.3.0: - - Add support for journald. - - The ability to monitor any system daemon logs. Previously only kernel - logs were supported. - - The ability to be deployed and run as a native daemon. -* **[alpha]** Critical Pods: When feature gate "ExperimentalCriticalPodAnnotation" is - set to true, the system will guarantee scheduling and admission of pods with - the following annotation - `scheduler.alpha.kubernetes.io/critical-pod` - - This feature should be used in conjunction with the - [rescheduler](https://kubernetes.io/docs/admin/rescheduler/) to guarantee - resource availability for critical system pods. -* **[alpha]** `--experimental-nvidia-gpus` flag is replaced by `Accelerators` alpha - feature gate along with addition of support for multiple Nvidia GPUs. - - To use GPUs, pass `Accelerators=true` as part of `--feature-gates` flag. - - More information [here](https://vishh.github.io/docs/user-guide/gpus/). -* A pod’s Quality of Service Class is now available in its Status. -* Upgrade cAdvisor library to v0.25.0. Notable changes include, - - Container filesystem usage tracking disabled for device mapper due to excessive - IOPS. - - Ignore `.mount` cgroups, fixing disappearing stats. -* A new field `terminationMessagePolicy` has been added to containers that allows - a user to request FallbackToLogsOnError, which will read from the container's - logs to populate the termination message if the user does not write to the - termination message log file. The termination message file is now properly - readable for end users and has a maximum size (4k bytes) to prevent abuse. - Each pod may have up to 12k bytes of termination messages before the contents - of each will be truncated. -* Do not delete pod objects until all its compute resource footprint has been - reclaimed. - - This feature prevents the node and scheduler from oversubscribing resources - that are still being used by a pod in the process of being cleaned up. - - This feature can result in increase of Pod Deletion latency especially if the - pod has a large filesystem footprint. - -### RBAC -* **[beta]** RBAC API is promoted to v1beta1 (rbac.authorization.k8s.io/v1beta1), and defines default roles for control plane, node, and controller components. -* **[beta]** The Docker-CRI implementation is Beta and is enabled by default in kubelet. You can disable it by `--enable-cri=false`. See [notes on the new implementation]( https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md#kubernetes-v16-release-docker-cri-integration-beta) for more details. - -### Scheduling -- **[beta]** The [multiple schedulers](https://kubernetes.io/docs/admin/multiple-schedulers/). This feature allows you to run multiple schedulers in parallel, each responsible for different sets of pods. When using multiple schedulers, the scheduler name is now specified in a new-in-1.6 `schedulerName` field of the PodSpec rather than using the `scheduler.alpha.kubernetes.io/name` annotation on the Pod. When you upgrade to 1.6, the Kubernetes default scheduler will start using the `schedulerName` field of the PodSpec and will ignore the annotation. -- **[beta]** [Node affinity/anti-affinity](https://kubernetes.io/docs/user-guide/node-selection/) and **[beta]** [pod affinity/anti-affinity](https://kubernetes.io/docs/user-guide/node-selection/). Node affinity/anti-affinity allow you to specify rules for restricting which node(s) a pod can schedule onto, based on the labels on the node. Pod affinity/anti-affinity allow you to specify rules for spreading and packing pods relative to one another, across arbitrary topologies (node, zone, etc.) These affinity rules are now be specified in a new-in-1.6 `affinity` field of the PodSpec. Kubernetes 1.6 continues to support the alpha `scheduler.alpha.kubernetes.io/affinity` annotation on the Pod if you explicitly enable the alpha feature "AffinityInAnnotations", but it will be removed in a future release. When you upgrade to 1.6, if you have not enabled the alpha feature, then the scheduler will use the `affinity` field in PodSpec and will ignore the annotation. If you have enabled the alpha feature, then the scheduler will use the `affinity` field in PodSpec if it is present, and otherwise will use the annotation. -- **[beta]** [Taints and tolerations](https://kubernetes.io/docs/user-guide/node-selection/). This feature allows you to specify rules for "repelling" pods from nodes by default, which enables use cases like dedicated nodes and reserving nodes with special features for pods that need those features. We've also added a `NoExecute` taint type that evicts already-running pods, and an associated `tolerationSeconds` field to tolerations to delay the eviction for a specified amount of time. As before, taints are created using `kubectl taint` (but internally they are now represented as a field `taints` in the NodeSpec rather than using the `scheduler.alpha.kubernetes.io/taints` annotation on Node). Tolerations are now specified in a new-in-1.6 `tolerations` field of the PodSpec rather than using the `scheduler.alpha.kubernetes.io/tolerations` annotation on the Pod. When you upgrade to 1.6, the scheduler will start using the fields and will ignore the annotations. -- **[alpha]** Represent node problems "not ready" and "unreachable" using `NoExecute` taints. In combination with `tolerationSeconds` described below, this allows per-pod specification of how long to remain bound to a node that becomes unreachable or not ready, rather than using the default of 5 minutes. You can enable this alpha feature by including `TaintBasedEvictions=true` in `--feature-gates`, such as `--feature-gates=FooBar=true,TaintBasedEvictions=true`. Documentation is [here](https://kubernetes.io/docs/user-guide/node-selection/). - -### Service Catalog -- **[alpha]** Adds a new API resource `PodPreset` and admission controller to enable defining cross-cutting injection of Volumes and Environment into Pods. - -### Volumes -* **[stable]** StorageClass API is promoted to v1 (storage.k8s.io/v1). -* **[stable]** Default storage classes are deployed during installation on Azure, AWS, GCE, OpenStack and vSphere. -* **[stable]** Added ability to populate environment variables from a configmap or secret. -* **[stable]** Support for user-written/run dynamic PV provisioners. The Kubernetes Incubator contains [a golang library and examples](https://github.com/kubernetes-incubator/external-storage). -* **[stable]** Volume plugin for ScaleIO enabling pods to seamlessly access and use data stored on Dell EMC ScaleIO volumes. -* **[stable]** Volume plugin for Portworx added capability to use [Portworx](http://www.portworx.com) as a storage provider for Kubernetes clusters. Portworx pools server capacity and turns servers or cloud instances into converged, highly available compute and storage nodes. -* **[stable]** Add support to use NFSv3, NFSv4, and GlusterFS on GCE/GKE GCI image based clusters. -* **[beta]** Added support for mount options in persistent volumes. -* **[alpha]** All in one volume proposal - a new volume driver capable of projecting secrets, configmaps, and downward API items into the same directory. -* **[alpha]** Flex volume API and Improved lifecycle (flexvolume). - -## Deprecations -* Remove extensions/v1beta1 Jobs resource, and job/v1beta1 generator. ([#38614](https://github.com/kubernetes/kubernetes/pull/38614), [@soltysh](https://github.com/soltysh)) -* `federation/deploy/deploy.sh` was an interim solution introduced in Kubernetes v1.4 to simplify the federation control plane deployment experience. Now that we have `kubefed`, we are deprecating `deploy.sh` scripts. ([#38902](https://github.com/kubernetes/kubernetes/pull/38902), [@madhusudancs](https://github.com/madhusudancs)) - - -### Cluster Provisioning Scripts -* The bash AWS deployment via kube-up.sh has been deprecated. See http://kubernetes.io/docs/getting-started-guides/aws/ for alternatives. ([#38772](https://github.com/kubernetes/kubernetes/pull/38772), [@zmerlynn](https://github.com/zmerlynn)) -* Remove Azure kube-up as the Azure community has focused efforts elsewhere. ([#41672](https://github.com/kubernetes/kubernetes/pull/41672), [@mikedanese](https://github.com/mikedanese)) -* Remove the deprecated vsphere kube-up. ([#39140](https://github.com/kubernetes/kubernetes/pull/39140), [@kerneltime](https://github.com/kerneltime)) - -### Other Deprecations -* Remove cmd/kube-discovery from the tree since it's not necessary anymore ([#42070](https://github.com/kubernetes/kubernetes/pull/42070), [@luxas](https://github.com/luxas)) - -#### kubeadm -* Quite a few flags been renamed or removed. Those options that are removed as flags can still be accessed via the config file. Most notably this includes external etcd settings and the option for setting the cloud provider on the API server. The [kubeadm reference documentation](https://kubernetes.io/docs/admin/kubeadm/) is up to date with the new flags. - -## Changes to API Resources -### ABAC -* ABAC policies using `"user":"*"` or `"group":"*"` to match all users or groups will only match authenticated requests. To match unauthenticated requests, ABAC policies must explicitly specify `"group":"system:unauthenticated"` ([#38968](https://github.com/kubernetes/kubernetes/pull/38968), [@liggitt](https://github.com/liggitt)) - -### Admission Control -* Adds a new API resource `PodPreset` and admission controller to enable defining cross-cutting injection of Volumes and Environment into Pods. ([#41931](https://github.com/kubernetes/kubernetes/pull/41931), [@jessfraz](https://github.com/jessfraz)) -* Enable DefaultTolerationSeconds admission controller by default ([#41815](https://github.com/kubernetes/kubernetes/pull/41815), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) -* ResourceQuota ability to support default limited resources ([#36765](https://github.com/kubernetes/kubernetes/pull/36765), [@derekwaynecarr](https://github.com/derekwaynecarr)) -* Add defaultTolerationSeconds admission controller ([#41414](https://github.com/kubernetes/kubernetes/pull/41414), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) -* An `automountServiceAccountToken` field was added to ServiceAccount and PodSpec objects. If set to `false` on a pod spec, no service account token is automounted in the pod. If set to `false` on a service account, no service account token is automounted for that service account unless explicitly overridden in the pod spec. ([#37953](https://github.com/kubernetes/kubernetes/pull/37953), [@liggitt](https://github.com/liggitt)) -* Admission control support for versioned configuration files ([#39109](https://github.com/kubernetes/kubernetes/pull/39109), [@derekwaynecarr](https://github.com/derekwaynecarr)) -* Ability to quota storage by storage class ([#34554](https://github.com/kubernetes/kubernetes/pull/34554), [@derekwaynecarr](https://github.com/derekwaynecarr)) - -### Authentication -* The authentication.k8s.io API group was promoted to v1([#41058](https://github.com/kubernetes/kubernetes/pull/41058), [@liggitt](https://github.com/liggitt)) - -### Authorization -* The authorization.k8s.io API group was promoted to v1 ([#40709](https://github.com/kubernetes/kubernetes/pull/40709), [@liggitt](https://github.com/liggitt)) -* The SubjectAccessReview API now passes subresource and resource name information to the authorizer to answer authorization queries. ([#40935](https://github.com/kubernetes/kubernetes/pull/40935), [@liggitt](https://github.com/liggitt)) - -### Autoscaling -* Introduces an new alpha version of the Horizontal Pod Autoscaler including expanded support for specifying metrics. ([#36033](https://github.com/kubernetes/kubernetes/pull/36033), [@DirectXMan12](https://github.com/DirectXMan12)) -* HorizontalPodAutoscaler is no longer supported in extensions/v1beta1 version. Use autoscaling/v1 instead. ([#35782](https://github.com/kubernetes/kubernetes/pull/35782), [@piosz](https://github.com/piosz)) -* Fixes an HPA-related panic due to division-by-zero. ([#39694](https://github.com/kubernetes/kubernetes/pull/39694), [@DirectXMan12](https://github.com/DirectXMan12)) - -### Certificates -* The CertificateSigningRequest API added the `extra` field to persist all information about the requesting user. This mirrors the fields in the SubjectAccessReview API used to check authorization. ([#41755](https://github.com/kubernetes/kubernetes/pull/41755), [@liggitt](https://github.com/liggitt)) -* Native support for token based bootstrap flow. This includes signing a well known ConfigMap in the `kube-public` namespace and cleaning out expired tokens. ([#36101](https://github.com/kubernetes/kubernetes/pull/36101), [@jbeda](https://github.com/jbeda)) - -### Config Map -* Volumes and environment variables populated from ConfigMap and Secret objects can now tolerate the named source object or specific keys being missing, by adding `optional: true` to the volume or environment variable source specifications. ([#39981](https://github.com/kubernetes/kubernetes/pull/39981), [@fraenkel](https://github.com/fraenkel)) -* Allow pods to define multiple environment variables from a whole ConfigMap ([#36245](https://github.com/kubernetes/kubernetes/pull/36245), [@fraenkel](https://github.com/fraenkel)) - -### CronJob -* Add configurable limits to CronJob resource to specify how many successful and failed jobs are preserved. ([#40932](https://github.com/kubernetes/kubernetes/pull/40932), [@peay](https://github.com/peay)) - -### Daemon Set -* DaemonSet now respects ControllerRef to avoid fighting over Pods. ([#42173](https://github.com/kubernetes/kubernetes/pull/42173), [@enisoc](https://github.com/enisoc)) -* Make DaemonSet respect critical pods annotation when scheduling. ([#42028](https://github.com/kubernetes/kubernetes/pull/42028), [@janetkuo](https://github.com/janetkuo)) -* Implement the update feature for DaemonSet. ([#41116](https://github.com/kubernetes/kubernetes/pull/41116), [@lukaszo](https://github.com/lukaszo)) -* Make DaemonSets survive taint-based evictions when nodes turn unreachable/notReady. ([#41896](https://github.com/kubernetes/kubernetes/pull/41896), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) -* Make DaemonSet controller respect node taints and pod tolerations. ([#41172](https://github.com/kubernetes/kubernetes/pull/41172), [@janetkuo](https://github.com/janetkuo)) -* DaemonSet controller actively kills failed pods (to recreate them) ([#40330](https://github.com/kubernetes/kubernetes/pull/40330), [@janetkuo](https://github.com/janetkuo)) -* DaemonSet ObservedGeneration ([#39157](https://github.com/kubernetes/kubernetes/pull/39157), [@lukaszo](https://github.com/lukaszo)) - -### Deployment -* Add ready replicas in Deployments ([#37959](https://github.com/kubernetes/kubernetes/pull/37959), [@kargakis](https://github.com/kargakis)) -* Deployments that cannot make progress in rolling out the newest version will now indicate via the API they are blocked -* Introduce apps/v1beta1.Deployments resource with modified defaults compared to extensions/v1beta1.Deployments. ([#39683](https://github.com/kubernetes/kubernetes/pull/39683), [@soltysh](https://github.com/soltysh)) -* Introduce new generator for apps/v1beta1 deployments ([#42362](https://github.com/kubernetes/kubernetes/pull/42362), [@soltysh](https://github.com/soltysh)) - -### Node -* Set all node conditions to Unknown when node is unreachable ([#36592](https://github.com/kubernetes/kubernetes/pull/36592), [@andrewsykim](https://github.com/andrewsykim)) - -### Pod -* Init containers have graduated to GA and now appear as a field. The beta annotation value will still be respected and overrides the field value. ([#38382](https://github.com/kubernetes/kubernetes/pull/38382), [@hodovska](https://github.com/hodovska)) -* A new field `terminationMessagePolicy` has been added to containers that allows a user to request `FallbackToLogsOnError`, which will read from the container's logs to populate the termination message if the user does not write to the termination message log file. The termination message file is now properly readable for end users and has a maximum size (4k bytes) to prevent abuse. Each pod may have up to 12k bytes of termination messages before the contents of each will be truncated. ([#39341](https://github.com/kubernetes/kubernetes/pull/39341), [@smarterclayton](https://github.com/smarterclayton)) -* Fix issue with PodDisruptionBudgets in which `minAvailable` specified as a percentage did not work with StatefulSet Pods. ([#39454](https://github.com/kubernetes/kubernetes/pull/39454), [@foxish](https://github.com/foxish)) -* Node affinity has moved from annotations to api fields in the pod spec. Node affinity that is defined in the annotations will be ignored. ([#37299](https://github.com/kubernetes/kubernetes/pull/37299), [@rrati](https://github.com/rrati)) -* Moved pod affinity and anti-affinity from annotations to api fields [#25319](https://github.com/kubernetes/kubernetes/pull/25319) ([#39478](https://github.com/kubernetes/kubernetes/pull/39478), [@rrati](https://github.com/rrati)) -* Add QoS pod status field ([#37968](https://github.com/kubernetes/kubernetes/pull/37968), [@sjenning](https://github.com/sjenning)) - -### Pod Security Policy -* PodSecurityPolicy resource is now enabled by default in the extensions API group. ([#39743](https://github.com/kubernetes/kubernetes/pull/39743), [@pweil-](https://github.com/pweil-)) - -### RBAC -* the `attributeRestrictions` field has been removed from the PolicyRule type in the rbac.authorization.k8s.io/v1alpha1 API. The field was not used by the RBAC authorizer. ([#39625](https://github.com/kubernetes/kubernetes/pull/39625), [@deads2k](https://github.com/deads2k)) -* A user can now be authorized to bind a particular role by having permission to perform the `bind` verb on the referenced role ([#39383](https://github.com/kubernetes/kubernetes/pull/39383), [@liggitt](https://github.com/liggitt)) - -### Replica Set -* ReplicaSet has onwer ref of the Deployment that created it ([#35676](https://github.com/kubernetes/kubernetes/pull/35676), [@krmayankk](https://github.com/krmayankk)) - -### Secrets -* Populate environment variables from a secrets. ([#39446](https://github.com/kubernetes/kubernetes/pull/39446), [@fraenkel](https://github.com/fraenkel)) -* Added a new secret type "bootstrap.kubernetes.io/token" for dynamically creating TLS bootstrapping bearer tokens. ([#41281](https://github.com/kubernetes/kubernetes/pull/41281), [@ericchiang](https://github.com/ericchiang)) - -### Service -* Endpoints, that tolerate unready Pods, are now listing Pods in state Terminating as well ([#37093](https://github.com/kubernetes/kubernetes/pull/37093), [@simonswine](https://github.com/simonswine)) -* Fix Service Update on LoadBalancerSourceRanges Field ([#37720](https://github.com/kubernetes/kubernetes/pull/37720), [@freehan](https://github.com/freehan)) -* Bug fix. Incoming UDP packets not reach newly deployed services ([#32561](https://github.com/kubernetes/kubernetes/pull/32561), [@zreigz](https://github.com/zreigz)) -* Services of type loadbalancer consume both loadbalancer and nodeport quota. ([#39364](https://github.com/kubernetes/kubernetes/pull/39364), [@zhouhaibing089](https://github.com/zhouhaibing089)) - -### Stateful Set - -* Fix zone placement heuristics so that multiple mounts in a StatefulSet pod are created in the same zone ([#40910](https://github.com/kubernetes/kubernetes/pull/40910), [@justinsb](https://github.com/justinsb)) -* Fixes issue [#38418](https://github.com/kubernetes/kubernetes/pull/38418) which, under circumstance, could cause StatefulSet to deadlock. ([#40838](https://github.com/kubernetes/kubernetes/pull/40838), [@kow3ns](https://github.com/kow3ns)) - * Mediates issue [#36859](https://github.com/kubernetes/kubernetes/pull/36859). StatefulSet only acts on Pods whose identity matches the StatefulSet, providing a partial mediation for overlapping controllers. - -### Taints and Tolerations -* Add a manager to NodeController that is responsible for removing Pods from Nodes tainted with NoExecute Taints. This feature is beta (as the rest of taints) and enabled by default. It's gated by controller-manager enable-taint-manager flag. ([#40355](https://github.com/kubernetes/kubernetes/pull/40355), [@gmarek](https://github.com/gmarek)) -* Add an alpha feature that makes NodeController set Taints instead of deleting Pods from not Ready Nodes. ([#41133](https://github.com/kubernetes/kubernetes/pull/41133), [@gmarek](https://github.com/gmarek)) -* Make tolerations respect wildcard key ([#39914](https://github.com/kubernetes/kubernetes/pull/39914), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) -* Forgiveness alpha version api definition ([#39469](https://github.com/kubernetes/kubernetes/pull/39469), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) -* Rescheduler uses taints in v1beta1 and will remove old ones (in version v1alpha1) right after its start. ([#43106](https://github.com/kubernetes/kubernetes/pull/43106), [@piosz](https://github.com/piosz)) - -### Volumes -* StorageClassName attribute has been added to PersistentVolume and PersistentVolumeClaim objects and should be used instead of annotation `volume.beta.kubernetes.io/storage-class`. The beta annotation is still working in this release, however it will be removed in a future release. ([#42128](https://github.com/kubernetes/kubernetes/pull/42128), [@jsafrane](https://github.com/jsafrane)) -* Parameter keys in a StorageClass `parameters` map may not use the `kubernetes.io` or `k8s.io` namespaces. ([#41837](https://github.com/kubernetes/kubernetes/pull/41837), [@liggitt](https://github.com/liggitt)) -* Add storage.k8s.io/v1 API ([#40088](https://github.com/kubernetes/kubernetes/pull/40088), [@jsafrane](https://github.com/jsafrane)) -* Alpha version of dynamic volume provisioning is removed in this release. Annotation ([#40000](https://github.com/kubernetes/kubernetes/pull/40000), [@jsafrane](https://github.com/jsafrane)) - * "volume.alpha.kubernetes.io/storage-class" does not have any special meaning. A default storage class - * and DefaultStorageClass admission plugin can be used to preserve similar behavior of Kubernetes cluster, - * see https://kubernetes.io/docs/user-guide/persistent-volumes/#class-1 for details. -* Reduce verbosity of volume reconciler when attaching volumes ([#36900](https://github.com/kubernetes/kubernetes/pull/36900), [@codablock](https://github.com/codablock)) -* We change the default attach_detach_controller sync period to 1 minute to reduce the query frequency through cloud provider to check whether volumes are attached or not. ([#41363](https://github.com/kubernetes/kubernetes/pull/41363), [@jingxu97](https://github.com/jingxu97)) - -## Changes to Major Components -### API Server -* **`--anonymous-auth` is enabled by default, unless the API server is started with the `AlwaysAllow` authorizer. ([#38706](https://github.com/kubernetes/kubernetes/pull/38706), [@deads2k](https://github.com/deads2k))** -* **when using OIDC authentication and specifying --oidc-username-claim=email, an `"email_verified":true` claim must be returned from the identity provider. ([#36087](https://github.com/kubernetes/kubernetes/pull/36087), [@ericchiang](https://github.com/ericchiang))** - * `--basic-auth-file` supports optionally specifying groups in the fourth column of the file ([#39651](https://github.com/kubernetes/kubernetes/pull/39651), [@liggitt](https://github.com/liggitt)) -* API server now has two separate limits for read-only and mutating inflight requests. ([#36064](https://github.com/kubernetes/kubernetes/pull/36064), [@gmarek](https://github.com/gmarek)) -* Restored normalization of custom `--etcd-prefix` when `--storage-backend` is set to etcd3 ([#42506](https://github.com/kubernetes/kubernetes/pull/42506), [@liggitt](https://github.com/liggitt)) -* Updating apiserver to return http status code 202 for a delete request when the resource is not immediately deleted because of user requesting cascading deletion using DeleteOptions.OrphanDependents=false. ([#41165](https://github.com/kubernetes/kubernetes/pull/41165), [@nikhiljindal](https://github.com/nikhiljindal)) -* Use full package path for definition name in OpenAPI spec ([#40124](https://github.com/kubernetes/kubernetes/pull/40124), [@mbohlool](https://github.com/mbohlool)) -* Follow redirects for streaming requests (exec/attach/port-forward) in the apiserver by default (alpha -> beta). ([#40039](https://github.com/kubernetes/kubernetes/pull/40039), [@timstclair](https://github.com/timstclair)) -* Add 'X-Content-Type-Options: nosniff" to some error messages ([#37190](https://github.com/kubernetes/kubernetes/pull/37190), [@brendandburns](https://github.com/brendandburns)) -* Fixes bug in resolving client-requested API versions ([#38533](https://github.com/kubernetes/kubernetes/pull/38533), [@DirectXMan12](https://github.com/DirectXMan12)) -* Replace glog.Fatals with fmt.Errorfs ([#38175](https://github.com/kubernetes/kubernetes/pull/38175), [@sttts](https://github.com/sttts)) -* Pipe get options to storage ([#37693](https://github.com/kubernetes/kubernetes/pull/37693), [@wojtek-t](https://github.com/wojtek-t)) -* The --long-running-request-regexp flag to kube-apiserver is deprecated and will be removed in a future release. Long-running requests are now detected based on specific verbs (watch, proxy) or subresources (proxy, portforward, log, exec, attach). ([#38119](https://github.com/kubernetes/kubernetes/pull/38119), [@liggitt](https://github.com/liggitt)) -* if kube-apiserver is started with `--storage-backend=etcd2`, the media type `application/json` is used. ([#43122](https://github.com/kubernetes/kubernetes/pull/43122), [@liggitt](https://github.com/liggitt)) -* API fields that previously serialized null arrays as `null` and empty arrays as `[]` no longer distinguish between those values and always output `[]` when serializing to JSON. ([#43422](https://github.com/kubernetes/kubernetes/pull/43422), [@liggitt](https://github.com/liggitt)) -* Generate OpenAPI definition for inlined types ([#39466](https://github.com/kubernetes/kubernetes/pull/39466), [@mbohlool](https://github.com/mbohlool)) - -### API Server Aggregator -* Rename kubernetes-discovery to kube-aggregator ([#39619](https://github.com/kubernetes/kubernetes/pull/39619), [@deads2k](https://github.com/deads2k)) -* Fix connection upgrades through kuberentes-discovery ([#38724](https://github.com/kubernetes/kubernetes/pull/38724), [@deads2k](https://github.com/deads2k)) - -#### Generic API Server -* Move pkg/api/rest into genericapiserver ([#39948](https://github.com/kubernetes/kubernetes/pull/39948), [@sttts](https://github.com/sttts)) -* Move non-generic apiserver code out of the generic packages ([#38191](https://github.com/kubernetes/kubernetes/pull/38191), [@sttts](https://github.com/sttts)) -* Fixes API compatibility issue with empty lists incorrectly returning a null `items` field instead of an empty array. ([#39834](https://github.com/kubernetes/kubernetes/pull/39834), [@liggitt](https://github.com/liggitt)) -* Re-add /healthz/ping handler in genericapiserver ([#38603](https://github.com/kubernetes/kubernetes/pull/38603), [@sttts](https://github.com/sttts)) -* Remove genericapiserver.Options.MasterServiceNamespace ([#38186](https://github.com/kubernetes/kubernetes/pull/38186), [@sttts](https://github.com/sttts)) -* genericapiserver: cut off more dependencies – episode 3 ([#40426](https://github.com/kubernetes/kubernetes/pull/40426), [@sttts](https://github.com/sttts)) -* genericapiserver: more dependency cutoffs ([#40216](https://github.com/kubernetes/kubernetes/pull/40216), [@sttts](https://github.com/sttts)) -* genericapiserver: cut off kube pkg/version dependency ([#39943](https://github.com/kubernetes/kubernetes/pull/39943), [@sttts](https://github.com/sttts)) -* genericapiserver: cut off pkg/serviceaccount dependency ([#39945](https://github.com/kubernetes/kubernetes/pull/39945), [@sttts](https://github.com/sttts)) -* genericapiserver: cut off pkg/apis/extensions and pkg/storage dependencies ([#39946](https://github.com/kubernetes/kubernetes/pull/39946), [@sttts](https://github.com/sttts)) -* genericapiserver: cut off certificates api dependency ([#39947](https://github.com/kubernetes/kubernetes/pull/39947), [@sttts](https://github.com/sttts)) -* genericapiserver: extract CA cert from server cert and SNI cert chains ([#39022](https://github.com/kubernetes/kubernetes/pull/39022), [@sttts](https://github.com/sttts)) -* genericapiserver: turn APIContainer.SecretRoutes into a real ServeMux ([#38826](https://github.com/kubernetes/kubernetes/pull/38826), [@sttts](https://github.com/sttts)) -* genericapiserver: unify swagger and openapi in config ([#38690](https://github.com/kubernetes/kubernetes/pull/38690), [@sttts](https://github.com/sttts)) - -### Client -* Use Prometheus instrumentation conventions ([#36704](https://github.com/kubernetes/kubernetes/pull/36704), [@fabxc](https://github.com/fabxc)) -* Clients now use the `?watch=true` parameter to make watch API calls, instead of the `/watch/` path prefix ([#41722](https://github.com/kubernetes/kubernetes/pull/41722), [@liggitt](https://github.com/liggitt)) -* Move private key parsing from serviceaccount/jwt.go to client-go/util/cert ([#40907](https://github.com/kubernetes/kubernetes/pull/40907), [@cblecker](https://github.com/cblecker)) -* Caching added to the OIDC client auth plugin to fix races and reduce the time kubectl commands using this plugin take by several seconds. ([#38167](https://github.com/kubernetes/kubernetes/pull/38167), [@ericchiang](https://github.com/ericchiang)) -* Fix resync goroutine leak in ListAndWatch ([#35672](https://github.com/kubernetes/kubernetes/pull/35672), [@tatsuhiro-t](https://github.com/tatsuhiro-t)) - -#### client-go -* The main repository does not keep multiple releases of clientsets anymore. Please find previous releases at https://github.com/kubernetes/client-go ([#38154](https://github.com/kubernetes/kubernetes/pull/38154), [@caesarxuchao](https://github.com/caesarxuchao)) -* Support whitespace in command path for gcp auth plugin ([#41653](https://github.com/kubernetes/kubernetes/pull/41653), [@jlowdermilk](https://github.com/jlowdermilk)) -* client-go no longer imports GCP OAuth2 and OpenID Connect packages by default. ([#41532](https://github.com/kubernetes/kubernetes/pull/41532), [@ericchiang](https://github.com/ericchiang)) -* Added bool type support for jsonpath. ([#39063](https://github.com/kubernetes/kubernetes/pull/39063), [@xingzhou](https://github.com/xingzhou)) -* Preventing nil pointer reference in client_config ([#40508](https://github.com/kubernetes/kubernetes/pull/40508), [@vjsamuel](https://github.com/vjsamuel)) -* Prevent hotloops on error conditions, which could fill up the disk faster than log rotation can free space. ([#40497](https://github.com/kubernetes/kubernetes/pull/40497), [@lavalamp](https://github.com/lavalamp)) - -### Cloud Provider - -#### AWS -* Allow to running the master with a different AWS account or even on a different cloud provider than the nodes. ([#39996](https://github.com/kubernetes/kubernetes/pull/39996), [@scheeles](https://github.com/scheeles)) -* Support shared tag `kubernetes.io/cluster/<clusterid>` ([#41695](https://github.com/kubernetes/kubernetes/pull/41695), [@justinsb](https://github.com/justinsb)) -* Do not consider master instance zones for dynamic volume creation ([#41702](https://github.com/kubernetes/kubernetes/pull/41702), [@justinsb](https://github.com/justinsb)) -* Fix AWS device allocator to only use valid device names ([#41455](https://github.com/kubernetes/kubernetes/pull/41455), [@gnufied](https://github.com/gnufied)) -* Trust region if found from AWS metadata ([#38880](https://github.com/kubernetes/kubernetes/pull/38880), [@justinsb](https://github.com/justinsb)) -* Remove duplicate calls to DescribeInstance during volume operations ([#39842](https://github.com/kubernetes/kubernetes/pull/39842), [@gnufied](https://github.com/gnufied)) -* Recognize eu-west-2 region ([#38746](https://github.com/kubernetes/kubernetes/pull/38746), [@justinsb](https://github.com/justinsb)) -* Recognize ca-central-1 region ([#38410](https://github.com/kubernetes/kubernetes/pull/38410), [@justinsb](https://github.com/justinsb)) -* Add sequential allocator for device names. ([#38818](https://github.com/kubernetes/kubernetes/pull/38818), [@jsafrane](https://github.com/jsafrane)) - -#### Azure -* Fix failing load balancers in Azure ([#40405](https://github.com/kubernetes/kubernetes/pull/40405), [@codablock](https://github.com/codablock)) -* Reduce time needed to attach Azure disks ([#40066](https://github.com/kubernetes/kubernetes/pull/40066), [@codablock](https://github.com/codablock)) -* Remove Azure Subnet RouteTable check ([#38334](https://github.com/kubernetes/kubernetes/pull/38334), [@mogthesprog](https://github.com/mogthesprog)) -* Add support for Azure Container Registry, update Azure dependencies ([#37783](https://github.com/kubernetes/kubernetes/pull/37783), [@brendandburns](https://github.com/brendandburns)) -* Allow backendpools in Azure Load Balancers which are not owned by cloud provider ([#36882](https://github.com/kubernetes/kubernetes/pull/36882), [@codablock](https://github.com/codablock)) - -#### GCE -* On GCI by default logrotate is disabled for application containers in favor of rotation mechanism provided by docker logging driver. ([#40634](https://github.com/kubernetes/kubernetes/pull/40634), [@crassirostris](https://github.com/crassirostris)) - -#### GKE -* New GKE certificates controller. ([#41160](https://github.com/kubernetes/kubernetes/pull/41160), [@pipejakob](https://github.com/pipejakob)) - -#### vSphere -* Reverts to looking up the current VM in vSphere using the machine's UUID, either obtained via sysfs or via the `vm-uuid` parameter in the cloud configuration file. ([#40892](https://github.com/kubernetes/kubernetes/pull/40892), [@robdaemon](https://github.com/robdaemon)) -* Fix for detach volume when node is not present/ powered off ([#40118](https://github.com/kubernetes/kubernetes/pull/40118), [@BaluDontu](https://github.com/BaluDontu)) -* Adding vmdk file extension for vmDiskPath in vsphere DeleteVolume ([#40538](https://github.com/kubernetes/kubernetes/pull/40538), [@divyenpatel](https://github.com/divyenpatel)) -* Changed default scsi controller type in vSphere Cloud Provider ([#38426](https://github.com/kubernetes/kubernetes/pull/38426), [@abrarshivani](https://github.com/abrarshivani)) -* Fixes NotAuthenticated errors that appear in the kubelet and kube-controller-manager due to never logging in to vSphere ([#36169](https://github.com/kubernetes/kubernetes/pull/36169), [@robdaemon](https://github.com/robdaemon)) -* Fix panic in vSphere cloud provider ([#38423](https://github.com/kubernetes/kubernetes/pull/38423), [@BaluDontu](https://github.com/BaluDontu)) -* Fix space issue in volumePath with vSphere Cloud Provider ([#38338](https://github.com/kubernetes/kubernetes/pull/38338), [@BaluDontu](https://github.com/BaluDontu)) - -### Federation - -#### kubefed -* Flag cleanup ([#41335](https://github.com/kubernetes/kubernetes/pull/41335), [@irfanurrehman](https://github.com/irfanurrehman)) -* Create configmap for the cluster kube-dns when cluster joins and remove when it unjoins ([#39338](https://github.com/kubernetes/kubernetes/pull/39338), [@irfanurrehman](https://github.com/irfanurrehman)) -* Support configuring dns-provider ([#40528](https://github.com/kubernetes/kubernetes/pull/40528), [@shashidharatd](https://github.com/shashidharatd)) -* Bug fix relating kubeconfig path in kubefed init ([#41410](https://github.com/kubernetes/kubernetes/pull/41410), [@irfanurrehman](https://github.com/irfanurrehman)) -* Add override flags options to kubefed init ([#40917](https://github.com/kubernetes/kubernetes/pull/40917), [@irfanurrehman](https://github.com/irfanurrehman)) -* Add option to expose federation apiserver on nodeport service ([#40516](https://github.com/kubernetes/kubernetes/pull/40516), [@shashidharatd](https://github.com/shashidharatd)) -* Add option to disable persistence storage for etcd ([#40862](https://github.com/kubernetes/kubernetes/pull/40862), [@shashidharatd](https://github.com/shashidharatd)) -* kubefed init creates a service account for federation controller manager in the federation-system namespace and binds that service account to the federation-system:federation-controller-manager role that has read and list access on secrets in the federation-system namespace. ([#40392](https://github.com/kubernetes/kubernetes/pull/40392), [@madhusudancs](https://github.com/madhusudancs)) -* Implement dry run support in kubefed init ([#36447](https://github.com/kubernetes/kubernetes/pull/36447), [@irfanurrehman](https://github.com/irfanurrehman)) -* Make federation etcd PVC size configurable ([#36310](https://github.com/kubernetes/kubernetes/pull/36310), [@irfanurrehman](https://github.com/irfanurrehman)) - -#### Other Notable Changes -* Federated Ingress over GCE no longer requires separate firewall rules to be created for each cluster to circumvent flapping firewall health checks. ([#41942](https://github.com/kubernetes/kubernetes/pull/41942), [@csbell](https://github.com/csbell)) -* Add support for finalizers in federated configmaps (deletes configmaps from underlying clusters). ([#40464](https://github.com/kubernetes/kubernetes/pull/40464), [@csbell](https://github.com/csbell)) -* Add support for DeleteOptions.OrphanDependents for federated services. Setting it to false while deleting a federated service also deletes the corresponding services from all registered clusters. ([#36390](https://github.com/kubernetes/kubernetes/pull/36390), [@nikhiljindal](https://github.com/nikhiljindal)) -* Add `--controllers` flag to federation controller manager for enable/disable federation ingress controller ([#36643](https://github.com/kubernetes/kubernetes/pull/36643), [@kzwang](https://github.com/kzwang)) -* Stop deleting services from underlying clusters when federated service is deleted. ([#37353](https://github.com/kubernetes/kubernetes/pull/37353), [@nikhiljindal](https://github.com/nikhiljindal)) -* Expose autoscaling apis through federation api server ([#38976](https://github.com/kubernetes/kubernetes/pull/38976), [@irfanurrehman](https://github.com/irfanurrehman)) -* Federation: Add `batch/jobs` API objects to federation-apiserver ([#35943](https://github.com/kubernetes/kubernetes/pull/35943), [@jianhuiz](https://github.com/jianhuiz)) -* Add logging of route53 calls ([#39964](https://github.com/kubernetes/kubernetes/pull/39964), [@justinsb](https://github.com/justinsb)) - -### Garbage Collector -* Added foreground garbage collection: the owner object will not be deleted until all its dependents are deleted by the garbage collector. Please checkout the [user doc](https://kubernetes.io/docs/concepts/abstractions/controllers/garbage-collection/) for details. ([#38676](https://github.com/kubernetes/kubernetes/pull/38676), [@caesarxuchao](https://github.com/caesarxuchao)) - * deleteOptions.orphanDependents is going to be deprecated in 1.7. Please use deleteOptions.propagationPolicy instead. - -### kubeadm -* A new label and taint is used for marking the master. The label is `node-role.kubernetes.io/master=""` and the taint has the effect `NoSchedule`. Tolerate the `node-role.kubernetes.io/master="":NoSchedule` taint to schedule a workload on the master (a networking DaemonSet for example). -* The kubelet API is now secured, only cluster admins are allowed to access it. -* Insecure access to the API Server over `localhost:8080` is now disabled. -* The control plane components now talk securely to each other. The API Server talks securely to the kubelets in the cluster. -* kubeadm creates RBAC-enabled clusters. This means that some add-ons which worked previously won't work without having their YAML configuration updated. Please see each vendor's own documentation to check that the add-ons you are using will work with Kubernetes 1.6. -* The kube-discovery Deployment isn't used anymore when creating a kubeadm cluster and shouldn't be used anywhere else either due to its insecure nature. -* The Certificates API has graduated from alpha to beta. This is a backwards-incompatible change since the alpha support is dropped, and therefore kubeadm v1.5 and v1.6 don't work together (for example kubeadm v1.5 can't join a kubeadm v1.6 cluster). -* Supporting only etcd3, with 3.0.14 as the minimum version. -* `kubeadm reset` will no longer drain nodes automatically. This is because the credentials on nodes do not have permission to perform this operation. We have documented an [alternate procedure](https://kubernetes.io/docs/getting-started-guides/kubeadm/#tear-down), driven from the API server/master. -* Hook up kubeadm against the BootstrapSigner ([#41417](https://github.com/kubernetes/kubernetes/pull/41417), [@luxas](https://github.com/luxas)) -* Rename some flags for beta UI and fixup some logic ([#42064](https://github.com/kubernetes/kubernetes/pull/42064), [@luxas](https://github.com/luxas)) -* Insecure access to the API Server at localhost:8080 will be turned off in v1.6 when using kubeadm ([#42066](https://github.com/kubernetes/kubernetes/pull/42066), [@luxas](https://github.com/luxas)) -* Flag --use-kubernetes-version for kubeadm init renamed to --kubernetes-version ([#41820](https://github.com/kubernetes/kubernetes/pull/41820), [@kad](https://github.com/kad)) -* Remove the --cloud-provider flag for beta init UX ([#41710](https://github.com/kubernetes/kubernetes/pull/41710), [@luxas](https://github.com/luxas)) -* Fixed an SELinux issue in kubeadm on Docker 1.12+ by moving etcd SELinux options from container to pod. ([#40682](https://github.com/kubernetes/kubernetes/pull/40682), [@dgoodwin](https://github.com/dgoodwin)) -* Add authorization mode to kubeadm ([#39846](https://github.com/kubernetes/kubernetes/pull/39846), [@andrewrynhard](https://github.com/andrewrynhard)) -* Refactor the certificate and kubeconfig code in the kubeadm binary into two phases ([#39280](https://github.com/kubernetes/kubernetes/pull/39280), [@luxas](https://github.com/luxas)) -* Added kubeadm commands to manage bootstrap tokens and the duration they are valid for. ([#35805](https://github.com/kubernetes/kubernetes/pull/35805), [@dgoodwin](https://github.com/dgoodwin)) - -### kubectl - -#### New Commands -- `apply set-last-applied` *updates the applied-applied-configuration annotation* ([#41694](https://github.com/kubernetes/kubernetes/pull/41694), [@shiywang](https://github.com/shiywang)) -- `kubectl apply view-last-applied` *viewing the last configuration file applied* ([#41146](https://github.com/kubernetes/kubernetes/pull/41146), [@shiywang](https://github.com/shiywang)) - -#### Create subcommands - - `create poddisruptionbudget` ([#36646](https://github.com/kubernetes/kubernetes/pull/36646), [@kargakis](https://github.com/kargakis)) - - `create clusterrole` ([#41538](https://github.com/kubernetes/kubernetes/pull/41538), [@xingzhou](https://github.com/xingzhou)) - - `create role` ([#39852](https://github.com/kubernetes/kubernetes/pull/39852), [@xingzhou](https://github.com/xingzhou)) - - `create clusterrolebinding` ([#37098](https://github.com/kubernetes/kubernetes/pull/37098), [@deads2k](https://github.com/deads2k)) - - `create service externalname` ([#34789](https://github.com/kubernetes/kubernetes/pull/34789), [@adohe](https://github.com/adohe)) -- `set selector` - update selector labels ([#38966](https://github.com/kubernetes/kubernetes/pull/38966), [@kargakis](https://github.com/kargakis)) -- `can-i` to see if you can perform an action ([#41077](https://github.com/kubernetes/kubernetes/pull/41077), [@deads2k](https://github.com/deads2k)) - -#### Updates to existing commands -* Printing and output - * Import a numeric ordering sorting library and use it in the sorting printer. ([#40746](https://github.com/kubernetes/kubernetes/pull/40746), [@matthyx](https://github.com/matthyx)) - * DaemonSet get and describe show status fields. ([#42843](https://github.com/kubernetes/kubernetes/pull/42843), [@janetkuo](https://github.com/janetkuo)) - * Pods describe shows tolerationSeconds ([#42162](https://github.com/kubernetes/kubernetes/pull/42162), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) - * Node describe contains closing paren ([#39217](https://github.com/kubernetes/kubernetes/pull/39217), [@luksa](https://github.com/luksa)) - * Display pod node selectors with kubectl describe. ([#36396](https://github.com/kubernetes/kubernetes/pull/36396), [@aveshagarwal](https://github.com/aveshagarwal)) - * Add Version to the resource printer for 'get nodes' ([#37943](https://github.com/kubernetes/kubernetes/pull/37943), [@ailusazh](https://github.com/ailusazh)) - * Added support for printing in all supported `--output` formats to `kubectl create ...` and `kubectl apply ...` ([#38112](https://github.com/kubernetes/kubernetes/pull/38112), [@juanvallejo](https://github.com/juanvallejo)) - * Add three more columns to `kubectl get deploy -o wide` output. ([#39240](https://github.com/kubernetes/kubernetes/pull/39240), [@xingzhou](https://github.com/xingzhou)) - * Fix kubectl get -f <file> -o <nondefault printer> so it prints all items in the file ([#39038](https://github.com/kubernetes/kubernetes/pull/39038), [@ncdc](https://github.com/ncdc)) - * kubectl describe no longer prints the last-applied-configuration annotation for secrets. ([#34664](https://github.com/kubernetes/kubernetes/pull/34664), [@ymqytw](https://github.com/ymqytw)) - * Completed pods should not be hidden when requested by name via `kubectl get`. ([#42216](https://github.com/kubernetes/kubernetes/pull/42216), [@smarterclayton](https://github.com/smarterclayton)) - * Improve formatting of EventSource in kubectl get and kubectl describe ([#40073](https://github.com/kubernetes/kubernetes/pull/40073), [@matthyx](https://github.com/matthyx)) -* Attach now supports multiple types ([#40365](https://github.com/kubernetes/kubernetes/pull/40365), [@shiywang](https://github.com/shiywang)) -* Create now accepts the label selector flag for filtering objects to create ([#40057](https://github.com/kubernetes/kubernetes/pull/40057), [@MrHohn](https://github.com/MrHohn)) -* Top now accepts short forms for "node" and "pod" ("no", "po") ([#39218](https://github.com/kubernetes/kubernetes/pull/39218), [@luksa](https://github.com/luksa)) -* Begin paths for internationalization in kubectl ([#36802](https://github.com/kubernetes/kubernetes/pull/36802), [@brendandburns](https://github.com/brendandburns)) - * Add initial french translations for kubectl ([#40645](https://github.com/kubernetes/kubernetes/pull/40645), [@brendandburns](https://github.com/brendandburns)) - -#### Updates to apply -* New command `apply set-last-applied` *updates the applied-applied-configuration annotation* ([#41694](https://github.com/kubernetes/kubernetes/pull/41694), [@shiywang](https://github.com/shiywang)) -* New command `apply view-last-applied` *command for viewing the last configuration file applied* ([#41146](https://github.com/kubernetes/kubernetes/pull/41146), [@shiywang](https://github.com/shiywang)) -* `apply` now supports explicitly clearing values by setting them to null ([#40630](https://github.com/kubernetes/kubernetes/pull/40630), [@liggitt](https://github.com/liggitt)) -* Warn user when using `apply` on a resource lacking the `LastAppliedConfig` annotation ([#36672](https://github.com/kubernetes/kubernetes/pull/36672), [@ymqytw](https://github.com/ymqytw)) -* PATCH (i.e. apply and edit) now supports merging lists of primitives ([#38665](https://github.com/kubernetes/kubernetes/pull/38665), [@ymqytw](https://github.com/ymqytw)) -* `apply` falls back to generic 3-way JSON merge patch for Third Party Resource or unregistered types ([#40666](https://github.com/kubernetes/kubernetes/pull/40666), [@ymqytw](https://github.com/ymqytw)) - -#### Updates to edit -* `edit` now supports Third party resources and extension API servers. ([#41304](https://github.com/kubernetes/kubernetes/pull/41304), [@liggitt](https://github.com/liggitt)) - * Now to edit a particular API version, provide the fully-qualify the resource, version, and group used to fetch the object (for example, `job.v1.batch/myjob`) - * Client-side conversion is no longer done, and the `--output-version` option is deprecated for `kubectl edit`. -* `edit` works as intended with apply and will not change the annotation - * No longer updates the last-applied-configuration annotation when --save-config is unspecified or false. ([#41924](https://github.com/kubernetes/kubernetes/pull/41924), [@ymqytw](https://github.com/ymqytw)) - * Fixes issue that caused apply to revert changes made by edit - -#### Bug fixes -* Fixed --save-config in create subcommand to save the annotation ([#40289](https://github.com/kubernetes/kubernetes/pull/40289), [@xilabao](https://github.com/xilabao)) -* Fixed an issue where 'kubectl get --sort-by=' would return an error if the specified fields in sort were not specified in one or more of the returned objects. ([#40541](https://github.com/kubernetes/kubernetes/pull/40541), [@fabianofranz](https://github.com/fabianofranz)) - * Previously this would cause the command to fail regardless of whether or not the field was present in the object model - * Now the command will succeed even if the sort-by field is missing from one or more of the objects -* Fixed issue with kubectl proxy so it will now proxy an empty path - e.g. http://localhost:8001 ([#39226](https://github.com/kubernetes/kubernetes/pull/39226), [@luksa](https://github.com/luksa)) -* Fixed an issue where commas were not accepted in --from-literal flags for the creation of secrets. ([#35191](https://github.com/kubernetes/kubernetes/pull/35191), [@SamiHiltunen](https://github.com/SamiHiltunen)) - * Passing multiple values separated by a comma in a single --from-literal flag is no longer supported. Please use multiple --from-literal flags to provide multiple values. -* Fixed a bug where the --server, --token, and --certificate-authority flags were not overriding the related in-cluster configs when provided in a `kubectl` call inside a cluster. ([#39006](https://github.com/kubernetes/kubernetes/pull/39006), [@fabianofranz](https://github.com/fabianofranz)) - -#### Other Notable Changes -* The api server will publish the extensions/Deployments API as preferred over the apps/Deployment (introduced in 1.6). ([#43553](https://github.com/kubernetes/kubernetes/pull/43553), [@liggitt](https://github.com/liggitt)) - * This will ensure certain commands in 1.5 versions of kubectl continue function when run against a 1.6 server. (e.g. `kubectl edit deployment`) -* Taint - * The `taint` command will not function in a skewed 1.5 / 1.6 environment - client and server versions must match (See Action required section above) - * Change taints/tolerations to api fields ([#38957](https://github.com/kubernetes/kubernetes/pull/38957), [@aveshagarwal](https://github.com/aveshagarwal)) - * Make kubectl taint command respect effect NoExecute ([#42120](https://github.com/kubernetes/kubernetes/pull/42120), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) -* Allow drain --force to remove pods whose managing resource is deleted. ([#41864](https://github.com/kubernetes/kubernetes/pull/41864), [@marun](https://github.com/marun)) -* `--output-version` is ignored for all commands except `kubectl convert`. This is consistent with the generic nature of `kubectl` CRUD commands and the previous removal of `--api-version`. Specific versions can be specified in the resource field: `resource.version.group`, `jobs.v1.batch`. ([#41576](https://github.com/kubernetes/kubernetes/pull/41576), [@deads2k](https://github.com/deads2k)) -* Allow missing keys in templates by default ([#39486](https://github.com/kubernetes/kubernetes/pull/39486), [@ncdc](https://github.com/ncdc)) -* Add error message when trying to use clusterrole with namespace in kubectl ([#36424](https://github.com/kubernetes/kubernetes/pull/36424), [@xilabao](https://github.com/xilabao)) -* When deleting an object with `--grace-period=0`, the client will begin a graceful deletion and wait until the resource is fully deleted. To force deletion, use the `--force` flag. ([#37263](https://github.com/kubernetes/kubernetes/pull/37263), [@smarterclayton](https://github.com/smarterclayton)) - -### Node Components -* Kubelet config should ignore file start with dots. - ([#39196](https://github.com/kubernetes/kubernetes/pull/39196), - [@resouer](https://github.com/resouer)) -* Bump GCI to gci-stable-56-9000-84-2. - ([#41819](https://github.com/kubernetes/kubernetes/pull/41819), - [@dchen1107](https://github.com/dchen1107)) -* Bump GCE ContainerVM to container-vm-v20170214 to address CVE-2016-9962. - ([#41449](https://github.com/kubernetes/kubernetes/pull/41449), - [@zmerlynn](https://github.com/zmerlynn)) -* Kubelet: Remove the PLEG health check from /healthz, Kubelet will now report -* NodeNotReady on failed PLEG health check. - ([#41569](https://github.com/kubernetes/kubernetes/pull/41569), - [@yujuhong](https://github.com/yujuhong)) -* CRI: upgrade protobuf to v3. Protobuf v2 and v3 are not compatible. - ([#39158](https://github.com/kubernetes/kubernetes/pull/39158), [@feiskyer](https://github.com/feiskyer)) -* kubelet exports metrics for cgroup management (#41988, @sjenning) -* Experimental support to reserve a pod's memory request from being utilized by - pods in lower QoS tiers. - ([#41149](https://github.com/kubernetes/kubernetes/pull/41149), - [@sjenning](https://github.com/sjenning)) -* Port forwarding can forward over websockets or SPDY. - ([#33684](https://github.com/kubernetes/kubernetes/pull/33684), - [@fraenkel](https://github.com/fraenkel)) -* Flag gate faster evictions based on node memory pressure using kernel memcg - notifications - `--experimental-kernel-memcg-notification`. - ([#38258](https://github.com/kubernetes/kubernetes/pull/38258), - [@derekwaynecarr](https://github.com/derekwaynecarr)) -* Nodes can now report two additional address types in their status: InternalDNS - and ExternalDNS. The apiserver can use --kubelet-preferred-address-types to - give priority to the type of address it uses to reach nodes. - ([#34259](https://github.com/kubernetes/kubernetes/pull/34259), [@liggitt](https://github.com/liggitt)) - -#### Bug fixes -* Add image cache to fix the issue where kubelet hands when reporting the node - status. ([#38375](https://github.com/kubernetes/kubernetes/pull/38375), - [@Random-Liu](https://github.com/Random-Liu)) -* Fix logic error in graceful deletion that caused pods not being able to - be deleted. ([#37721](https://github.com/kubernetes/kubernetes/pull/37721), - [@derekwaynecarr](https://github.com/derekwaynecarr)) -* Fix ConfigMap for Windows Containers. - ([#39373](https://github.com/kubernetes/kubernetes/pull/39373), - [@jbhurat](https://github.com/jbhurat)) -* Fix the “pod rejected by kubelet may stay at pending forever” bug. - (https://github.com/kubernetes/kubernetes/pull/37661), - [@yujuhong](https://github.com/yujuhong)) - -### kube-controller-manager -* add --controllers to controller manager ([#39740](https://github.com/kubernetes/kubernetes/pull/39740), [@deads2k](https://github.com/deads2k)) - -### kube-dns -* Adds support for configurable DNS stub domains and upstream nameservers. - The following configuration options have been added to the `kube-system:kube-dns` ConfigMap: - ``` - "stubDomains": { - "acme.local": ["1.2.3.4"] - }, - ``` - is a map of domain to list of nameservers for the domain. This is used - to inject private DNS domains into the kube-dns namespace. In the above - example, any DNS requests for *.acme.local will be served by the - nameserver 1.2.3.4. - ``` - "upstreamNameservers": ["8.8.8.8", "8.8.4.4"] - ``` - is a list of upstreamNameservers to use, overriding the configuration - specified in /etc/resolv.conf. - -* An empty `kube-system:kube-dns` ConfigMap will be created for the cluster if one did not already exist. - -### kube-proxy -* **- Add tcp/udp userspace proxy support for Windows. ([#41487](https://github.com/kubernetes/kubernetes/pull/41487), [@anhowe](https://github.com/anhowe))** -* Add DNS suffix search list support in Windows kube-proxy. ([#41618](https://github.com/kubernetes/kubernetes/pull/41618), [@JiangtianLi](https://github.com/JiangtianLi)) -* Add a KUBERNETES_NODE_* section to build kubelet/kube-proxy for windows ([#38919](https://github.com/kubernetes/kubernetes/pull/38919), [@brendandburns](https://github.com/brendandburns)) -* Remove outdated net.experimental.kubernetes.io/proxy-mode and net.beta.kubernetes.io/proxy-mode annotations from kube-proxy. ([#40585](https://github.com/kubernetes/kubernetes/pull/40585), [@cblecker](https://github.com/cblecker)) -* proxy/iptables: don't sync proxy rules if services map didn't change ([#38996](https://github.com/kubernetes/kubernetes/pull/38996), [@dcbw](https://github.com/dcbw)) -* Update kube-proxy image to be based off of Debian 8.6 base image. ([#39695](https://github.com/kubernetes/kubernetes/pull/39695), [@ixdy](https://github.com/ixdy)) -* Update amd64 kube-proxy base image to debian-iptables-amd64:v5 ([#39725](https://github.com/kubernetes/kubernetes/pull/39725), [@ixdy](https://github.com/ixdy)) -* Clean up the kube-proxy container image by removing unnecessary packages and files. ([#42090](https://github.com/kubernetes/kubernetes/pull/42090), [@timstclair](https://github.com/timstclair)) -* Better compat with very old iptables (e.g. CentOS 6) ([#37594](https://github.com/kubernetes/kubernetes/pull/37594), [@thockin](https://github.com/thockin)) - -### Scheduler -* Add the support to the scheduler for spreading pods of StatefulSets. ([#41708](https://github.com/kubernetes/kubernetes/pull/41708), [@bsalamat](https://github.com/bsalamat)) -* Added support to minimize sending verbose node information to scheduler extender by sending only node names and expecting extenders to cache the rest of the node information ([#41119](https://github.com/kubernetes/kubernetes/pull/41119), [@sarat-k](https://github.com/sarat-k)) -* Support KUBE_MAX_PD_VOLS on Azure ([#41398](https://github.com/kubernetes/kubernetes/pull/41398), [@codablock](https://github.com/codablock)) -* Mark multi-scheduler graduation to beta and then v1. ([#38871](https://github.com/kubernetes/kubernetes/pull/38871), [@k82cn](https://github.com/k82cn)) -* Scheduler treats StatefulSet pods as belonging to a single equivalence class. ([#39718](https://github.com/kubernetes/kubernetes/pull/39718), [@foxish](https://github.com/foxish)) -* Update FitError as a message component into the PodConditionUpdater. ([#39491](https://github.com/kubernetes/kubernetes/pull/39491), [@jayunit100](https://github.com/jayunit100)) -* Fix comment and optimize code ([#38084](https://github.com/kubernetes/kubernetes/pull/38084), [@tanshanshan](https://github.com/tanshanshan)) -* Add flag to enable contention profiling in scheduler. ([#37357](https://github.com/kubernetes/kubernetes/pull/37357), [@gmarek](https://github.com/gmarek)) -* Try self-repair scheduler cache or panic ([#37379](https://github.com/kubernetes/kubernetes/pull/37379), [@wojtek-t](https://github.com/wojtek-t)) - -### Volume Plugins - -#### Azure Disk -* restrict name length for Azure specifications ([#40030](https://github.com/kubernetes/kubernetes/pull/40030), [@colemickens](https://github.com/colemickens)) - -#### GlusterFS -* The glusterfs dynamic volume provisioner will now choose a unique GID for new persistent volumes from a range that can be configured in the storage class with the "gidMin" and "gidMax" parameters. The default range is 2000 - 2147483647 (max int32). ([#37886](https://github.com/kubernetes/kubernetes/pull/37886), [@obnoxxx](https://github.com/obnoxxx)) - -#### Photon -* Fix photon controller plugin to construct with correct PdID ([#37167](https://github.com/kubernetes/kubernetes/pull/37167), [@luomiao](https://github.com/luomiao)) - -#### rbd -* force unlock rbd image if the image is not used ([#41597](https://github.com/kubernetes/kubernetes/pull/41597), [@rootfs](https://github.com/rootfs)) - -#### vSphere -* Fix fsGroup to vSphere ([#38655](https://github.com/kubernetes/kubernetes/pull/38655), [@abrarshivani](https://github.com/abrarshivani)) -* Fix issue when attempting to unmount a wrong vSphere volume ([#37413](https://github.com/kubernetes/kubernetes/pull/37413), [@BaluDontu](https://github.com/BaluDontu)) - -#### Other Notable Changes -* Implement bulk polling of volumes ([#41306](https://github.com/kubernetes/kubernetes/pull/41306), [@gnufied](https://github.com/gnufied)) -* Check if pathExists before performing Unmount ([#39311](https://github.com/kubernetes/kubernetes/pull/39311), [@rkouj](https://github.com/rkouj)) -* Unmount operation should not fail if volume is already unmounted ([#38547](https://github.com/kubernetes/kubernetes/pull/38547), [@rkouj](https://github.com/rkouj)) -* Provide kubernetes-controller-manager flags to control volume attach/detach reconciler sync. The duration of the syncs can be controlled, and the syncs can be shut off as well. ([#39551](https://github.com/kubernetes/kubernetes/pull/39551), [@chrislovecnm](https://github.com/chrislovecnm)) -* Fix unmountDevice issue caused by shared mount in GCI ([#38411](https://github.com/kubernetes/kubernetes/pull/38411), [@jingxu97](https://github.com/jingxu97)) -* Fix permissions when using fsGroup ([#37009](https://github.com/kubernetes/kubernetes/pull/37009), [@sjenning](https://github.com/sjenning)) -* Fixed issues [#39202](https://github.com/kubernetes/kubernetes/pull/39202), [#41041](https://github.com/kubernetes/kubernetes/pull/41041) and [#40941](https://github.com/kubernetes/kubernetes/pull/40941) that caused the iSCSI connections to be prematurely closed when deleting a pod with an iSCSI persistent volume attached and that prevented the use of newly created LUNs on targets with preestablished connections. ([#41196](https://github.com/kubernetes/kubernetes/pull/41196), [@CristianPop](https://github.com/CristianPop)) - -## Changes to Cluster Provisioning Scripts - -### AWS -* Deployment of AWS Kubernetes clusters using the in-tree bash deployment (i.e. cluster/kube-up.sh or get-kube.sh) is obsolete. v1.5.x will be the last release to support cluster/kube-up.sh with AWS. For a list of viable alternatives, see: http://kubernetes.io/docs/getting-started-guides/aws/ ([#42196](https://github.com/kubernetes/kubernetes/pull/42196), [@zmerlynn](https://github.com/zmerlynn)) -* Fix an issue where AWS tear-down leaks an DHCP Option Set. ([#38645](https://github.com/kubernetes/kubernetes/pull/38645), [@zmerlynn](https://github.com/zmerlynn)) - -### Juju -* The kubernetes-master, kubernetes-worker and kubeapi-load-balancer charms have gained an nrpe-external-master relation, allowing the integration of their monitoring in an external Nagios server. ([#41923](https://github.com/kubernetes/kubernetes/pull/41923), [@Cynerva](https://github.com/Cynerva)) -* Disable anonymous auth on kubelet ([#41919](https://github.com/kubernetes/kubernetes/pull/41919), [@Cynerva](https://github.com/Cynerva)) -* Fix shebangs in charm actions to use python3 ([#42058](https://github.com/kubernetes/kubernetes/pull/42058), [@Cynerva](https://github.com/Cynerva)) -* K8s master charm now properly keeps distributed master files in sync for an HA control plane. ([#41351](https://github.com/kubernetes/kubernetes/pull/41351), [@chuckbutler](https://github.com/chuckbutler)) -* Improve status messages ([#40691](https://github.com/kubernetes/kubernetes/pull/40691), [@Cynerva](https://github.com/Cynerva)) -* Splits Juju Charm layers into master/worker roles ([#40324](https://github.com/kubernetes/kubernetes/pull/40324), [@chuckbutler](https://github.com/chuckbutler)) - * Adds support for 1.5.x series of Kubernetes - * Introduces a tactic for keeping templates in sync with upstream eliminating template drift - * Adds CNI support to the Juju Charms - * Adds durable storage support to the Juju Charms - * Introduces an e2e Charm layer for repeatable testing efforts and validation of clusters - -### libvirt CoreOS -* To add local registry to libvirt_coreos ([#36751](https://github.com/kubernetes/kubernetes/pull/36751), [@sdminonne](https://github.com/sdminonne)) - -### GCE -* **the `gce` provider enables both RBAC authorization and the permissive legacy ABAC policy that makes all service accounts superusers. To opt out of the permissive ABAC policy, export the environment variable `ENABLE_LEGACY_ABAC=false` before running `cluster/kube-up.sh`. ([#43544](https://github.com/kubernetes/kubernetes/pull/43544), [@liggitt](https://github.com/liggitt))** -* **the `gce` provider ensures the bootstrap admin token user is included in the super-user group ([#39537](https://github.com/kubernetes/kubernetes/pull/39537), [@liggitt](https://github.com/liggitt))** -* Remove support for debian masters in GCE kube-up. ([#41666](https://github.com/kubernetes/kubernetes/pull/41666), [@mikedanese](https://github.com/mikedanese)) -* Remove support for trusty in GCE kube-up. ([#41670](https://github.com/kubernetes/kubernetes/pull/41670), [@mikedanese](https://github.com/mikedanese)) -* Don't fail if the grep fails to match any resources ([#41933](https://github.com/kubernetes/kubernetes/pull/41933), [@ixdy](https://github.com/ixdy)) -* Fix the output of health-mointor.sh ([#41525](https://github.com/kubernetes/kubernetes/pull/41525), [@yujuhong](https://github.com/yujuhong)) -* Added configurable etcd initial-cluster-state to kube-up script. ([#41332](https://github.com/kubernetes/kubernetes/pull/41332), [@jszczepkowski](https://github.com/jszczepkowski)) -* The kube-apiserver [basic audit log](https://kubernetes.io/docs/admin/audit/) can be enabled in GCE by exporting the environment variable `ENABLE_APISERVER_BASIC_AUDIT=true` before running `cluster/kube-up.sh`. This will log to `/var/log/kube-apiserver-audit.log` and use the same `logrotate` settings as `/var/log/kube-apiserver.log`. ([#41211](https://github.com/kubernetes/kubernetes/pull/41211), [@enisoc](https://github.com/enisoc)) -* On kube-up.sh clusters on GCE, kube-scheduler now contacts the API on the secured port. ([#41285](https://github.com/kubernetes/kubernetes/pull/41285), [@liggitt](https://github.com/liggitt)) -* Use existing ABAC policy file when upgrading GCE cluster ([#40172](https://github.com/kubernetes/kubernetes/pull/40172), [@liggitt](https://github.com/liggitt)) -* Ensure the GCI metadata files do not have newline at the end ([#38727](https://github.com/kubernetes/kubernetes/pull/38727), [@Amey-D](https://github.com/Amey-D)) -* Fixed detection of master during creation of multizone nodes cluster by kube-up. ([#38617](https://github.com/kubernetes/kubernetes/pull/38617), [@jszczepkowski](https://github.com/jszczepkowski)) -* Fixed validation of multizone cluster for GCE ([#38695](https://github.com/kubernetes/kubernetes/pull/38695), [@jszczepkowski](https://github.com/jszczepkowski)) -* Fix GCI mounter issue ([#38124](https://github.com/kubernetes/kubernetes/pull/38124), [@jingxu97](https://github.com/jingxu97)) -* Exit with error if <version number or publication> is not the final parameter. ([#37723](https://github.com/kubernetes/kubernetes/pull/37723), [@mtaufen](https://github.com/mtaufen)) -* GCI: Remove /var/lib/docker/network ([#37593](https://github.com/kubernetes/kubernetes/pull/37593), [@yujuhong](https://github.com/yujuhong)) -* Fix the equality checks for numeric values in cluster/gce/util.sh. ([#37638](https://github.com/kubernetes/kubernetes/pull/37638), [@roberthbailey](https://github.com/roberthbailey)) -* Modify GCI mounter to enable NFSv3 ([#37582](https://github.com/kubernetes/kubernetes/pull/37582), [@jingxu97](https://github.com/jingxu97)) -* Use gsed on the Mac ([#37562](https://github.com/kubernetes/kubernetes/pull/37562), [@roberthbailey](https://github.com/roberthbailey)) -* Bump GCI -* to gci-beta-56-9000-80-0 ([#41027](https://github.com/kubernetes/kubernetes/pull/41027), [@dchen1107](https://github.com/dchen1107)) -* to gci-stable-56-9000-84-2 ([#41819](https://github.com/kubernetes/kubernetes/pull/41819), [@dchen1107](https://github.com/dchen1107)) -* Bump GCE ContainerVM - * to container-vm-v20161208 ([release notes](https://cloud.google.com/compute/docs/containers/container_vms#changelog)) ([#38432](https://github.com/kubernetes/kubernetes/pull/38432), [@timstclair](https://github.com/timstclair)) - * to container-vm-v20170201 to address CVE-2016-9962. ([#40828](https://github.com/kubernetes/kubernetes/pull/40828), [@zmerlynn](https://github.com/zmerlynn)) - * to container-vm-v20170117 to pick up CVE fixes in base image. ([#40094](https://github.com/kubernetes/kubernetes/pull/40094), [@zmerlynn](https://github.com/zmerlynn)) - * to container-vm-v20170214 to address CVE-2016-9962. ([#41449](https://github.com/kubernetes/kubernetes/pull/41449), [@zmerlynn](https://github.com/zmerlynn)) - -### OpenStack -* Do not daemonize `salt-minion` for the openstack-heat provider. ([#40722](https://github.com/kubernetes/kubernetes/pull/40722), [@micmro](https://github.com/micmro)) -* OpenStack-Heat will now look for an image named "CentOS-7-x86_64-GenericCloud-1604". To restore the previous behavior set OPENSTACK_IMAGE_NAME="CentOS7" ([#40368](https://github.com/kubernetes/kubernetes/pull/40368), [@sc68cal](https://github.com/sc68cal)) -* Fixes a bug in the OpenStack-Heat kubernetes provider, in the handling of differences between the Identity v2 and Identity v3 APIs ([#40105](https://github.com/kubernetes/kubernetes/pull/40105), [@sc68cal](https://github.com/sc68cal)) - -### Container Images -* Update gcr.io/google-containers/rescheduler to v0.2.2, which uses busybox as a base image instead of ubuntu. ([#41911](https://github.com/kubernetes/kubernetes/pull/41911), [@ixdy](https://github.com/ixdy)) -* Remove unnecessary metrics (http/process/go) from being exposed by etcd-version-monitor ([#41807](https://github.com/kubernetes/kubernetes/pull/41807), [@shyamjvs](https://github.com/shyamjvs)) -* Align the hyperkube image to support running binaries at /usr/local/bin/ like the other server images ([#41017](https://github.com/kubernetes/kubernetes/pull/41017), [@luxas](https://github.com/luxas)) -* Bump up GLBC version from 0.9.0-beta to 0.9.1 ([#41037](https://github.com/kubernetes/kubernetes/pull/41037), [@bprashanth](https://github.com/bprashanth)) - -### Other Notable Changes -* The default client certificate generated by kube-up now contains the superuser `system:masters` group ([#39966](https://github.com/kubernetes/kubernetes/pull/39966), [@liggitt](https://github.com/liggitt)) -* Added support for creating HA clusters for centos using kube-up.sh. ([#39462](https://github.com/kubernetes/kubernetes/pull/39462), [@Shawyeok](https://github.com/Shawyeok)) -* Enable lazy inode table and journal initialization for ext3 and ext4 ([#38865](https://github.com/kubernetes/kubernetes/pull/38865), [@codablock](https://github.com/codablock)) -* Since `kubernetes.tar.gz` no longer includes client or server binaries, `cluster/kube-{up,down,push}.sh` now automatically download released binaries if they are missing. ([#38730](https://github.com/kubernetes/kubernetes/pull/38730), [@ixdy](https://github.com/ixdy)) -* fix broken cluster/centos and enhance the style ([#34002](https://github.com/kubernetes/kubernetes/pull/34002), [@xiaoping378](https://github.com/xiaoping378)) -* Set kernel.softlockup_panic =1 based on the flag. ([#38001](https://github.com/kubernetes/kubernetes/pull/38001), [@dchen1107](https://github.com/dchen1107)) -* configure local-up-cluster.sh to handle auth proxies ([#36838](https://github.com/kubernetes/kubernetes/pull/36838), [@deads2k](https://github.com/deads2k)) -* `kube-up.sh`/`kube-down.sh` no longer force update gcloud for provider=gce|gke. ([#36292](https://github.com/kubernetes/kubernetes/pull/36292), [@jlowdermilk](https://github.com/jlowdermilk)) -* Collect logs for dead kubelets too ([#37671](https://github.com/kubernetes/kubernetes/pull/37671), [@mtaufen](https://github.com/mtaufen)) - -## Changes to Addons - -### Dashboard -* Update dashboard version to v1.6.0 ([#43210](https://github.com/kubernetes/kubernetes/pull/43210), [@floreks](https://github.com/floreks)) - -### DNS -* Updates the dnsmasq cache/mux layer to be managed by dnsmasq-nanny. ([#41826](https://github.com/kubernetes/kubernetes/pull/41826), [@bowei](https://github.com/bowei)) - dnsmasq-nanny manages dnsmasq based on values from the - kube-system:kube-dns configmap: - ``` - "stubDomains": { - "acme.local": ["1.2.3.4"] - }, - ``` - - is a map of domain to list of nameservers for the domain. This is used - to inject private DNS domains into the kube-dns namespace. In the above - example, any DNS requests for `*.acme.local` will be served by the - ``` - nameserver 1.2.3.4. - ``` - - ``` - upstreamNameservers": ["8.8.8.8", "8.8.4.4"] - ``` - is a list of upstreamNameservers to use, overriding the configuration - specified in `/etc/resolv.conf`. -* `kube-dns` now runs using a separate `system:serviceaccount:kube-system:kube-dns` service account which is automatically bound to the correct RBAC permissions. ([#38816](https://github.com/kubernetes/kubernetes/pull/38816), [@deads2k](https://github.com/deads2k)) -* Use kube-dns:1.11.0 ([#39925](https://github.com/kubernetes/kubernetes/pull/39925), [@sadlil](https://github.com/sadlil)) - -### DNS Autoscaler -* Patch CVE-2016-8859 in gcr.io/google-containers/cluster-proportional-autoscaler-amd64 ([#42933](https://github.com/kubernetes/kubernetes/pull/42933), [@timstclair](https://github.com/timstclair)) - -### Cluster Autoscaler -* Allow the Horizontal Pod Autoscaler controller to talk to the metrics API and custom metrics API as standard APIs. ([#41824](https://github.com/kubernetes/kubernetes/pull/41824), [@DirectXMan12](https://github.com/DirectXMan12)) - -### Cluster Load Balancing -* Update defaultbackend image to 1.3 ([#42212](https://github.com/kubernetes/kubernetes/pull/42212), [@timstclair](https://github.com/timstclair)) - -### etcd Empty Dir Cleanup -* Base etcd-empty-dir-cleanup on busybox, run as nobody, and update to etcdctl 3.0.14 ([#41674](https://github.com/kubernetes/kubernetes/pull/41674), [@ixdy](https://github.com/ixdy)) - -### Fluentd -* Migrated fluentd addon to daemon set ([#32088](https://github.com/kubernetes/kubernetes/pull/32088), [@piosz](https://github.com/piosz)) -* Fluentd was migrated to Daemon Set, which targets nodes with beta.kubernetes.io/fluentd-ds-ready=true label. If you use fluentd in your cluster please make sure that the nodes with version 1.6+ contains this label. ([#42931](https://github.com/kubernetes/kubernetes/pull/42931), [@piosz](https://github.com/piosz)) -* Fluentd-gcp containers spawned by DaemonSet are now configured using ConfigMap ([#42126](https://github.com/kubernetes/kubernetes/pull/42126), [@crassirostris](https://github.com/crassirostris)) -* Cleanup fluentd-gcp image: rebase on debian-base, switch to upstream packages, remove fluent-ui & rails ([#41998](https://github.com/kubernetes/kubernetes/pull/41998), [@timstclair](https://github.com/timstclair)) -* On GCE, the apiserver audit log (`/var/log/kube-apiserver-audit.log`) will be sent through fluentd if enabled. It will go to the same place as `kube-apiserver.log`, but tagged as its own stream. ([#41360](https://github.com/kubernetes/kubernetes/pull/41360), [@enisoc](https://github.com/enisoc)) -* If `experimentalCriticalPodAnnotation` feature gate is set to true, fluentd pods will not be evicted by the kubelet. ([#41035](https://github.com/kubernetes/kubernetes/pull/41035), [@vishh](https://github.com/vishh)) -* fluentd config for GKE clusters updated: detect exceptions in container log streams and forward them as one log entry. ([#39656](https://github.com/kubernetes/kubernetes/pull/39656), [@thomasschickinger](https://github.com/thomasschickinger)) -* Make fluentd pods critical ([#39146](https://github.com/kubernetes/kubernetes/pull/39146), [@crassirostris](https://github.com/crassirostris)) -* Fluentd/Elastisearch add-on: correctly parse and index kubernetes labels ([#36857](https://github.com/kubernetes/kubernetes/pull/36857), [@Shrugs](https://github.com/Shrugs)) - -### Heapster -* Bumped Heapster to v1.3.0. ([#43298](https://github.com/kubernetes/kubernetes/pull/43298), [@piosz](https://github.com/piosz)) - * More details about the release https://github.com/kubernetes/heapster/releases/tag/v1.3.0 - -### Registry -* Use daemonset in docker registry add on ([#35582](https://github.com/kubernetes/kubernetes/pull/35582), [@surajssd](https://github.com/surajssd)) -* contribute deis/registry-proxy as a replacement for kube-registry-proxy ([#35797](https://github.com/kubernetes/kubernetes/pull/35797), [@bacongobbler](https://github.com/bacongobbler)) - -## External Dependency Version Information - -Continuous integration builds have used the following versions of external dependencies, however, this is not a strong recommendation and users should consult an appropriate installation or upgrade guide before deciding what versions of etcd, docker or rkt to use. - -* Docker versions 1.10.3, 1.11.2, 1.12.6 have been validated - * Docker version 1.12.6 known issues - * overlay2 driver not fully supported - * live-restore not fully supported - * no shared pid namespace support - * Docker version 1.11.2 known issues - * Kernel crash with Aufs storage driver on Debian Jessie ([#27885](https://github.com/kubernetes/kubernetes/issues/27885)) - which can be identified by the [node problem detector](http://kubernetes.io/docs/admin/node-problem/) - * Leaked File descriptors ([#275](https://github.com/docker/containerd/issues/275)) - * Additional memory overhead per container ([#21737](https://github.com/docker/docker/issues/21737)) - * Docker 1.10.3 contains [backports provided by RedHat](https://github.com/docker/docker/compare/v1.10.3...runcom:docker-1.10.3-stable) for known issues - * Support for Docker version 1.9.x has been removed -* rkt version 1.23.0+ - * known issues with the rkt runtime are [listed in the Getting Started Guide](http://kubernetes.io/docs/getting-started-guides/rkt/notes/) -* etcd version 3.0.17 +## WARNING: etcd backup strongly recommended + +Before updating to 1.6, you are strongly recommended to back up your etcd data. +Please consult the installation procedure you are using (kargo, kops, kube-up, +kube-aws, kubeadm etc) for specific advice. + +1.6 encourages etcd3, and switching from etcd2 to etcd3 involves a full +migration of data between different storage engines. You must stop the API +from writing to etcd during an etcd2 -> etcd3 migration. HA installations cannot +be migrated at the current time using the official Kubernetes procedure. + +1.6 will also default to protobuf encoding if using etcd3. **This change is +irreversible.** To rollback, you must restore from a backup made before the +protobuf/etcd3 switch, and any changes since the backup will be lost. As 1.5 +does not support protobuf encoding, if you roll back to 1.5 after upgrading to +protobuf you will be forced to restore from backup, and you will lose any changes +since you converted to protobuf. After conversion to protobuf, you should +validate the correct operation of your cluster thoroughly before returning it +to normal operation. + +Backups are always a good precaution, particularly around upgrades, but this +upgrade has multiple known issues where the only remedy is to restore from +backup. + +Also, please note: +- using `application/vnd.kubernetes.protobuf` as the media storage type for 1.6 is default but not required +- the ability to rollback to etcd2 can be preserved by continuing to use `application/json` as the storage media type. This can be changed to `application/vnd.kubernetes.protobuf` at a later time. + +## Major updates and release themes + +* Kubernetes now supports up to 5,000 nodes via etcd v3, which is enabled by default. +* [Role-based access control (RBAC)](https://kubernetes.io//docs/admin/authorization/rbac) has graduated to beta, and defines secure default roles for control plane, node, and controller components. +* The [`kubeadm` cluster bootstrap tool](https://kubernetes.io/docs/getting-started-guides/kubeadm/) has graduated to beta. Some highlights: + * All communication is now over TLS + * Authorization plugins can be installed by kubeadm, including the new default of RBAC + * The bootstrap token system now allows token management and expiration +* The [`kubefed` federation bootstrap tool](https://kubernetes.io/docs/tutorials/federation/set-up-cluster-federation-kubefed/) has also graduated to beta. +* Interaction with container runtimes is now through the CRI interface, enabling easier integration of runtimes with the kubelet. Docker remains the default runtime via Docker-CRI (which moves to beta). +* Various scheduling features have graduated to beta: + * You can now use [multiple schedulers](https://kubernetes.io/docs/admin/multiple-schedulers/) + * [Nodes](https://kubernetes.io/docs/user-guide/node-selection/#node-affinity-beta-feature) and [pods](https://kubernetes.io/docs/user-guide/node-selection/#inter-pod-affinity-and-anti-affinity-beta-feature) now support affinity and anti-affinity + * Advanced scheduling can be performed with [taints and tolerations](https://kubernetes.io/docs/user-guide/node-selection/#taints-and-tolerations-beta-feature) +* You can now specify (per pod) how long a pod should stay bound to a node, when there is a node problem. +* Various storage features have graduated to GA: + * StorageClass pre-installed and set as default on Azure, AWS, GCE, OpenStack, and vSphere + * Configurable [Dynamic Provisioning](https://kubernetes.io/docs/user-guide/persistent-volumes/#dynamic) and [StorageClass](https://kubernetes.io/docs/user-guide/persistent-volumes/#storageclasses) +* DaemonSets [can now be updated by a rolling update](https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set). + +## Action Required + +### Certificates API +* Users of the alpha certificates API should delete v1alpha1 CSRs from the API before upgrading and recreate them as v1beta1 CSR after upgrading. ([#39772](https://github.com/kubernetes/kubernetes/pull/39772), [@mikedanese](https://github.com/mikedanese)) + +### Cluster Autoscaler +* If you are using (or planning to use) Cluster Autoscaler please wait for Kubernetes 1.6.1. In 1.6.0 Cluster Autoscaler +may occasionally increase the size of the cluster a bit more than it is actually needed, when there are +unschedulable pods, scale up is required and cloud provider is slow to set up networking for new nodes. +Anyway, the cluster should get back to the proper size after 10 min. + +### Deployment +* Deployment now fully respects ControllerRef to avoid fighting over Pods and ReplicaSets. At the time of upgrade, **you must not have Deployments with selectors that overlap**, or else [ownership of ReplicaSets may change](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/controller-ref.md#upgrading). ([#42175](https://github.com/kubernetes/kubernetes/pull/42175), [@enisoc](https://github.com/enisoc)) + +### Federation +* The --dns-provider argument of 'kubefed init' is now mandatory and does not default to `google-clouddns`. To initialize a Federation control plane with Google Cloud DNS, use the following invocation: 'kubefed init --dns-provider=google-clouddns' ([#42092](https://github.com/kubernetes/kubernetes/pull/42092), [@marun](https://github.com/marun)) +* Cluster federation servers have changed the location in etcd where federated services are stored, so existing federated services must be deleted and recreated. Before upgrading, export all federated services from the federation server and delete the services. After upgrading the cluster, recreate the federated services from the exported data. ([#37770](https://github.com/kubernetes/kubernetes/pull/37770), [@enj](https://github.com/enj)) + +### Internal Storage Layer +* upgrade to etcd3 prior to upgrading to 1.6 **OR** explicitly specify `--storage-type=etcd2 --storage-media-type=application/json` when starting the apiserver + +### Node Components +* **Kubelet with the Docker-CRI implementation** + * The Docker-CRI implementation is enabled by default. + * It is not compatible with containers created by older Kubelets. It is + recommended to drain your node before upgrade. If you choose to perform + an in-place upgrade, the Kubelet will automatically restart all + Kubernetes-managed containers on the node. + * It is not compatible with CNI plugins that do not conform to the + [error handling behavior in the spec](https://github.com/containernetworking/cni/blob/master/SPEC.md#network-configuration-list-error-handling). + The plugins are being updated to resolve this issue ([#43488](https://github.com/kubernetes/kubernetes/issues/43488)). + You can disable CRI explicitly (`--enable-cri=false`) as a + temporary workaround. + * The standard `bridge` plugin have been validated to interoperate with + the new CRI + CNI code path. + * If you are using plugins other than `bridge`, make sure you have + updated custom plugins to the latest version that is compatible. +* **Enhance Kubelet QoS**: + * Pods are placed under a new cgroup hierarchy by default. This feature requires + draining and restarting the node as part of upgrades. To opt-out set + `--cgroups-per-qos=false`. + * If `kube-reserved` and/or `system-reserved` are specified, node allocatable + will be enforced on all pods by default. To opt-out set + `--enforce-node-allocatable=””` + * Hard Eviction Thresholds will be subtracted from Capacity while calculating + Node Allocatable. This will result in a reduction of schedulable capacity in + clusters post upgrade where kubelet hard eviction has been turned on for + memory. To opt-out set `--experimental-allocatable-ignore-eviction=true`. + * More details on these feature here: + https://kubernetes.io/docs/concepts/cluster-administration/node-allocatable/ +* Drop the support for docker 1.9.x. Docker versions 1.10.3, 1.11.2, 1.12.6 + have been validated. +* The following deprecated kubelet flags are removed: `--config`, `--auth-path`, + `--resource-container`, `--system-container`, `--reconcile-cidr` +* Remove the temporary fix for pre-1.0 mirror pods. Upgrade directly from + pre-1.0 to 1.6 kubelet is not supported. +* Fluentd was migrated to Daemon Set, which targets nodes with + beta.kubernetes.io/fluentd-ds-ready=true label. If you use fluentd in your + cluster please make sure that the nodes with version 1.6+ contains this + label. + +### kubectl +* Running `kubectl taint` (alpha in 1.5) against a 1.6 server requires upgrading kubectl to version 1.6 +* Running `kubectl taint` (alpha in 1.5) against a 1.5 server requires a kubectl version of 1.5 +* Running `kubectl create secret` no longer accepts passing multiple values to a single --from-literal flag using comma separation + * Update command invocations to pass separate --from-literal flags for each value + +### RBAC +* Default ClusterRole and ClusterRoleBinding objects are automatically updated at server start to add missing permissions and subjects (extra permissions and subjects are left in place). To prevent autoupdating a particular role or rolebinding, annotate it with `rbac.authorization.kubernetes.io/autoupdate=false`. ([#41155](https://github.com/kubernetes/kubernetes/pull/41155), [@liggitt](https://github.com/liggitt)) +* `v1beta1` RoleBinding/ClusterRoleBinding subjects changed `apiVersion` to `apiGroup` to fully-qualify a subject. ServiceAccount subjects default to an apiGroup of `""`, User and Group subjects default to an apiGroup of `"rbac.authorization.k8s.io"`. ([#41184](https://github.com/kubernetes/kubernetes/pull/41184), [@liggitt](https://github.com/liggitt)) +* To create or update an RBAC RoleBinding or ClusterRoleBinding object, a user must: ([#39383](https://github.com/kubernetes/kubernetes/pull/39383), [@liggitt](https://github.com/liggitt)) + * 1. Be authorized to make the create or update API request + * 2. Be allowed to bind the referenced role, either by already having all of the permissions contained in the referenced role, or by having the "bind" permission on the referenced role. +* The `--authorization-rbac-super-user` flag (alpha in 1.5) is deprecated; the `system:masters` group has privileged access ([#38121](https://github.com/kubernetes/kubernetes/pull/38121), [@deads2k](https://github.com/deads2k)) +* special handling of the user `*` in RoleBinding and ClusterRoleBinding objects is removed in v1beta1. To match all users, explicitly bind to the group `system:authenticated` and/or `system:unauthenticated`. Existing v1alpha1 bindings to the user `*` are automatically converted to the group `system:authenticated`. ([#38981](https://github.com/kubernetes/kubernetes/pull/38981), [@liggitt](https://github.com/liggitt)) + +### Scheduling +* **Multiple schedulers** + * Modify your PodSpecs that currently use the `scheduler.alpha.kubernetes.io/name` annotation on Pod, to instead use the `schedulerName` field in the PodSpec. + * Modify any custom scheduler(s) you have written so that they read the `schedulerName` field on Pod instead of the `scheduler.alpha.kubernetes.io/name` annotation. + * Note that you can only start using the `schedulerName` field **after** you upgrade to 1.6; it is not recognized in 1.5. + +* **Node affinity/anti-affinity and pod affinity/anti-affinity** + * You can continue to use the alpha version of this feature (with one caveat -- see below), in which you specify affinity requests using Pod annotations, in 1.6 by including `AffinityInAnnotations=true` in `--feature-gates`, such as `--feature-gates=FooBar=true,AffinityInAnnotations=true`. Otherwise, you must modify your PodSpecs that currently use the `scheduler.alpha.kubernetes.io/affinity` annotation on Pod, to instead use the `affinity` field in the PodSpec. Support for the annotation will be removed in a future release, so we encourage you to switch to using the field as soon as possible. + * Caveat: The alpha version no longer supports, and the beta version does not support, the "empty `podAffinityTerm.namespaces` list means all namespaces" behavior. In both alpha and beta it now means "same namespace as the pod specifying this affinity rule." + * Note that you can only start using the `affinity` field **after** you upgrade to 1.6; it is not recognized in 1.5. + * The `--failure-domains` scheduler command line-argument is not supported in the beta version of the feature. + +* **Taints** + * You will need to use `kubectl taint` to re-create all of your taints after kubectl and the master are upgraded to 1.6. Between the time the master is upgraded to 1.6 and when you do this, your existing taints will have no effect. + * You can find out what taints you have in place on a node while you are still running Kubernetes 1.5 by doing `kubectl describe node <node name>`; the `Taints` section will show the taints you have in place. To see the taints that were created under 1.5 when you are running 1.6, do `kubectl get node <node name> -o yaml` and look for the "Annotation" section with the annotation key `scheduler.alpha.kubernetes.io/taints` + * You can remove the "old" taints (stored internally as annotations) at any time after the upgrade by doing `kubectl annotate nodes <node name> scheduler.alpha.kubernetes.io/taints-` (note the minus at the end, which means "delete the taint with this key") + * Note that because any taints you might have created with Kubernetes 1.5 can only affect the scheduling of new pods (the `NoExecute` taint effect is introduced in 1.6), neither the master upgrade nor your running `kubectl taint` to re-create the taints will affect pods that are already running. + * Rescheduler relies on taints, which were changed in a backward incompatible way. Rescheduler 0.3 shipped together with Kubernetes 1.6 understands the new taints and will clean up the old annotations, but Rescheduler 0.2 shipped together with Kubernetes 1.5 doesn't understand the new taints. In order to avoid eviction loop during 1.5->1.6 upgrade you need to either upgrade the master node atomically (for example by using `upgrade.sh` script for GCE) or ensure that the rescheduler is upgraded first, then the scheduler and then all the other master components. + +* **Tolerations** + * After your master is upgraded to 1.6, you will need to update your PodSpecs to set the `tolerations` field of the PodSpec and remove the `scheduler.alpha.kubernetes.io/tolerations` annotation on the Pod. (It's not strictly necessary to remove the annotation, as it will have no effect once you upgrade to 1.6.) Between the time the master is upgraded to 1.6 and when you do this, tolerations attached to Pods that are created will have no effect. Pods that are already running will not be affected by the upgrade. + * You can find the PodSpec tolerations that were created as annotations (if any) in a controller definition by doing `kubectl get <controller kind> <controller name> -o yaml` and looking for the "Annotation" section with the annotation key `scheduler.alpha.kubernetes.io/tolerations` (This will work whether you are running Kubernetes 1.5 or 1.6). + * To update a controller's PodSpec to use the field instead of the annotation, use one of the kubectl commands that do update ("kubectl replace" or "kubectl apply" or "kubectl patch") or just delete the controller entirely and re-create it with a new pod template. Note that you will be able to do these things only after the upgrade. + +### Service +* The 'endpoints.beta.kubernetes.io/hostnames-map' annotation is no longer supported. Users can use the 'Endpoints.subsets[].addresses[].hostname' field instead. ([#39284](https://github.com/kubernetes/kubernetes/pull/39284), [@bowei](https://github.com/bowei)) + +### StatefulSet +* StatefulSet now respects ControllerRef to avoid fighting over Pods. At the time of upgrade, **you must not have StatefulSets with selectors that overlap** with any other controllers (such as ReplicaSets), or else [ownership of Pods may change](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/controller-ref.md#upgrading). ([#42080](https://github.com/kubernetes/kubernetes/pull/42080), [@enisoc](https://github.com/enisoc)) + +### Volume +* StorageClass pre-installed and set as default on Azure, AWS, GCE, OpenStack, and vSphere. + * This is something to pay close attention to if you’ve been using Kubernetes for a while, because it changes the default behavior of PersistentVolumeClaim objects on these clouds. + * Marking a StorageClass as default makes it so that even a PersistentVolumeClaim without a StorageClass specified will trigger dynamic provisioning (instead of binding to an existing pool of PVs). + * If you depend on the old behavior of volumes binding to existing pool of PersistentVolume objects then modify the StorageClass object and set `storageclass.beta.kubernetes.io/is-default-class` to `false`. +* Flex volume plugin is updated to support attach/detach interfaces. It broke backward compatibility. Please update your drivers and implement the new callouts. ([#41804](https://github.com/kubernetes/kubernetes/pull/41804), [@chakri-nelluri](https://github.com/chakri-nelluri)) + +## Notable Features +Features for this release were tracked via the use of the [kubernetes/features](https://github.com/kubernetes/features) issues repo. Each Feature issue is owned by a Special Interest Group from the [kubernetes/community](https://github.com/kubernetes/community/blob/master/sig-list.md). + +### Autoscaling +* **[alpha]** The Horizontal Pod Autoscaler now supports drawing metrics through the API server aggregator. +* **[alpha]** The Horizontal Pod Autoscaler now supports scaling on multiple, custom metrics. +* Cluster Autoscaler publishes its status to kube-system/cluster-autoscaler-status ConfigMap. +* Cluster Autoscaler can continue operations while some nodes are broken or unready. +* Cluster Autoscaler respects Pod Disruption Budgets when removing a node. + +### DaemonSets +* **[beta]** Introduce the rolling update feature for DaemonSet. See [Performing a Rolling Update on a DaemonSet](https://deploy-preview-2878--kubernetes-io-master-staging.netlify.com/docs/tasks/manage-daemon/update-daemon-set/). + +### Deployments +* **[beta]** Deployments that cannot make progress in rolling out the newest version will now indicate via the API they are blocked ([docs](https://kubernetes.io/docs/user-guide/deployments/#deployment-status)) + +### Federation +* **[beta]** `kubefed` has graduated to beta: supports hosting federation on on-prem clusters, automatically configures `kube-dns` in joining clusters and allows passing arguments to federation components. + +### Internal Storage Layer +* **[stable]** The internal storage layer for kubernetes cluster state has been updated to use etcd v3 by default. Existing clusters will have to plan for a data migration window. ([docs](https://github.com/kubernetes/kubernetes.github.io/pull/2763))([kubernetes/features#44](https://github.com/kubernetes/features/issues/44)) + +### kubeadm +* **[beta]** Introduces an API for clients to request TLS certificates from the API server. See the [tutorial](https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster). +* **[beta]** kubeadm is enhanced and improved with a baseline feature set and command line flags that are now marked as beta. Other parts of kubeadm, including subcommands under `kubeadm alpha`, are [still in alpha](https://kubernetes.io/docs/admin/kubeadm/). Using it is considered safe, although note that upgrades and HA are not yet supported. Please [try it out](https://kubernetes.io/docs/getting-started-guides/kubeadm/) and [give us feedback](https://kubernetes.io/docs/getting-started-guides/kubeadm/#feedback)! +* **[alpha]** New Bootstrap Token authentication and management method. Works well with kubeadm. kubeadm now supports managing tokens, including time based expiration, after the cluster is launched. See [kubeadm reference docs](https://kubernetes.io/docs/admin/kubeadm/#manage-tokens) for details. +* **[alpha]** Adds a new cloud-controller-manager binary that may be used for testing the new out-of-core cloudprovider flow. + +### Node Components +* **[stable]** Init containers have graduated to GA and now appear as a field. + The beta annotation value will still be respected and overrides the field + value. +* Kubelet Container Runtime Interface (CRI) support + - **[beta]** The Docker-CRI implementation is enabled by default in kubelet. + You can disable it by --enable-cri=false. See + [notes on the new implementation](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md#kubernetes-v16-release-docker-cri-integration-beta) + for more details. + - **[alpha]** Alpha support for other runtimes: + [cri-o](https://github.com/kubernetes-incubator/cri-o/releases/tag/v0.1), [frakti](https://github.com/kubernetes/frakti/releases/tag/v0.1), [rkt](https://github.com/coreos/rkt/issues?q=is%3Aopen+is%3Aissue+label%3Aarea%2Fcri). +* **[beta]** Node Problem Detector is beta (v0.3.0) now. New + features added into node-problem-detector:v0.3.0: + - Add support for journald. + - The ability to monitor any system daemon logs. Previously only kernel + logs were supported. + - The ability to be deployed and run as a native daemon. +* **[alpha]** Critical Pods: When feature gate "ExperimentalCriticalPodAnnotation" is + set to true, the system will guarantee scheduling and admission of pods with + the following annotation - `scheduler.alpha.kubernetes.io/critical-pod` + - This feature should be used in conjunction with the + [rescheduler](https://kubernetes.io/docs/admin/rescheduler/) to guarantee + resource availability for critical system pods. +* **[alpha]** `--experimental-nvidia-gpus` flag is replaced by `Accelerators` alpha + feature gate along with addition of support for multiple Nvidia GPUs. + - To use GPUs, pass `Accelerators=true` as part of `--feature-gates` flag. + - More information [here](https://vishh.github.io/docs/user-guide/gpus/). +* A pod’s Quality of Service Class is now available in its Status. +* Upgrade cAdvisor library to v0.25.0. Notable changes include, + - Container filesystem usage tracking disabled for device mapper due to excessive + IOPS. + - Ignore `.mount` cgroups, fixing disappearing stats. +* A new field `terminationMessagePolicy` has been added to containers that allows + a user to request FallbackToLogsOnError, which will read from the container's + logs to populate the termination message if the user does not write to the + termination message log file. The termination message file is now properly + readable for end users and has a maximum size (4k bytes) to prevent abuse. + Each pod may have up to 12k bytes of termination messages before the contents + of each will be truncated. +* Do not delete pod objects until all its compute resource footprint has been + reclaimed. + - This feature prevents the node and scheduler from oversubscribing resources + that are still being used by a pod in the process of being cleaned up. + - This feature can result in increase of Pod Deletion latency especially if the + pod has a large filesystem footprint. + +### RBAC +* **[beta]** RBAC API is promoted to v1beta1 (rbac.authorization.k8s.io/v1beta1), and defines default roles for control plane, node, and controller components. +* **[beta]** The Docker-CRI implementation is Beta and is enabled by default in kubelet. You can disable it by `--enable-cri=false`. See [notes on the new implementation]( https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md#kubernetes-v16-release-docker-cri-integration-beta) for more details. + +### Scheduling +- **[beta]** The [multiple schedulers](https://kubernetes.io/docs/admin/multiple-schedulers/). This feature allows you to run multiple schedulers in parallel, each responsible for different sets of pods. When using multiple schedulers, the scheduler name is now specified in a new-in-1.6 `schedulerName` field of the PodSpec rather than using the `scheduler.alpha.kubernetes.io/name` annotation on the Pod. When you upgrade to 1.6, the Kubernetes default scheduler will start using the `schedulerName` field of the PodSpec and will ignore the annotation. +- **[beta]** [Node affinity/anti-affinity](https://kubernetes.io/docs/user-guide/node-selection/) and **[beta]** [pod affinity/anti-affinity](https://kubernetes.io/docs/user-guide/node-selection/). Node affinity/anti-affinity allow you to specify rules for restricting which node(s) a pod can schedule onto, based on the labels on the node. Pod affinity/anti-affinity allow you to specify rules for spreading and packing pods relative to one another, across arbitrary topologies (node, zone, etc.) These affinity rules are now be specified in a new-in-1.6 `affinity` field of the PodSpec. Kubernetes 1.6 continues to support the alpha `scheduler.alpha.kubernetes.io/affinity` annotation on the Pod if you explicitly enable the alpha feature "AffinityInAnnotations", but it will be removed in a future release. When you upgrade to 1.6, if you have not enabled the alpha feature, then the scheduler will use the `affinity` field in PodSpec and will ignore the annotation. If you have enabled the alpha feature, then the scheduler will use the `affinity` field in PodSpec if it is present, and otherwise will use the annotation. +- **[beta]** [Taints and tolerations](https://kubernetes.io/docs/user-guide/node-selection/). This feature allows you to specify rules for "repelling" pods from nodes by default, which enables use cases like dedicated nodes and reserving nodes with special features for pods that need those features. We've also added a `NoExecute` taint type that evicts already-running pods, and an associated `tolerationSeconds` field to tolerations to delay the eviction for a specified amount of time. As before, taints are created using `kubectl taint` (but internally they are now represented as a field `taints` in the NodeSpec rather than using the `scheduler.alpha.kubernetes.io/taints` annotation on Node). Tolerations are now specified in a new-in-1.6 `tolerations` field of the PodSpec rather than using the `scheduler.alpha.kubernetes.io/tolerations` annotation on the Pod. When you upgrade to 1.6, the scheduler will start using the fields and will ignore the annotations. +- **[alpha]** Represent node problems "not ready" and "unreachable" using `NoExecute` taints. In combination with `tolerationSeconds` described below, this allows per-pod specification of how long to remain bound to a node that becomes unreachable or not ready, rather than using the default of 5 minutes. You can enable this alpha feature by including `TaintBasedEvictions=true` in `--feature-gates`, such as `--feature-gates=FooBar=true,TaintBasedEvictions=true`. Documentation is [here](https://kubernetes.io/docs/user-guide/node-selection/). + +### Service Catalog +- **[alpha]** Adds a new API resource `PodPreset` and admission controller to enable defining cross-cutting injection of Volumes and Environment into Pods. + +### Volumes +* **[stable]** StorageClass API is promoted to v1 (storage.k8s.io/v1). +* **[stable]** Default storage classes are deployed during installation on Azure, AWS, GCE, OpenStack and vSphere. +* **[stable]** Added ability to populate environment variables from a configmap or secret. +* **[stable]** Support for user-written/run dynamic PV provisioners. The Kubernetes Incubator contains [a golang library and examples](https://github.com/kubernetes-incubator/external-storage). +* **[stable]** Volume plugin for ScaleIO enabling pods to seamlessly access and use data stored on Dell EMC ScaleIO volumes. +* **[stable]** Volume plugin for Portworx added capability to use [Portworx](http://www.portworx.com) as a storage provider for Kubernetes clusters. Portworx pools server capacity and turns servers or cloud instances into converged, highly available compute and storage nodes. +* **[stable]** Add support to use NFSv3, NFSv4, and GlusterFS on GCE/GKE GCI image based clusters. +* **[beta]** Added support for mount options in persistent volumes. +* **[alpha]** All in one volume proposal - a new volume driver capable of projecting secrets, configmaps, and downward API items into the same directory. +* **[alpha]** Flex volume API and Improved lifecycle (flexvolume). + +## Deprecations +* Remove extensions/v1beta1 Jobs resource, and job/v1beta1 generator. ([#38614](https://github.com/kubernetes/kubernetes/pull/38614), [@soltysh](https://github.com/soltysh)) +* `federation/deploy/deploy.sh` was an interim solution introduced in Kubernetes v1.4 to simplify the federation control plane deployment experience. Now that we have `kubefed`, we are deprecating `deploy.sh` scripts. ([#38902](https://github.com/kubernetes/kubernetes/pull/38902), [@madhusudancs](https://github.com/madhusudancs)) + + +### Cluster Provisioning Scripts +* The bash AWS deployment via kube-up.sh has been deprecated. See http://kubernetes.io/docs/getting-started-guides/aws/ for alternatives. ([#38772](https://github.com/kubernetes/kubernetes/pull/38772), [@zmerlynn](https://github.com/zmerlynn)) +* Remove Azure kube-up as the Azure community has focused efforts elsewhere. ([#41672](https://github.com/kubernetes/kubernetes/pull/41672), [@mikedanese](https://github.com/mikedanese)) +* Remove the deprecated vsphere kube-up. ([#39140](https://github.com/kubernetes/kubernetes/pull/39140), [@kerneltime](https://github.com/kerneltime)) + +### Other Deprecations +* Remove cmd/kube-discovery from the tree since it's not necessary anymore ([#42070](https://github.com/kubernetes/kubernetes/pull/42070), [@luxas](https://github.com/luxas)) + +#### kubeadm +* Quite a few flags been renamed or removed. Those options that are removed as flags can still be accessed via the config file. Most notably this includes external etcd settings and the option for setting the cloud provider on the API server. The [kubeadm reference documentation](https://kubernetes.io/docs/admin/kubeadm/) is up to date with the new flags. + +## Changes to API Resources +### ABAC +* ABAC policies using `"user":"*"` or `"group":"*"` to match all users or groups will only match authenticated requests. To match unauthenticated requests, ABAC policies must explicitly specify `"group":"system:unauthenticated"` ([#38968](https://github.com/kubernetes/kubernetes/pull/38968), [@liggitt](https://github.com/liggitt)) + +### Admission Control +* Adds a new API resource `PodPreset` and admission controller to enable defining cross-cutting injection of Volumes and Environment into Pods. ([#41931](https://github.com/kubernetes/kubernetes/pull/41931), [@jessfraz](https://github.com/jessfraz)) +* Enable DefaultTolerationSeconds admission controller by default ([#41815](https://github.com/kubernetes/kubernetes/pull/41815), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) +* ResourceQuota ability to support default limited resources ([#36765](https://github.com/kubernetes/kubernetes/pull/36765), [@derekwaynecarr](https://github.com/derekwaynecarr)) +* Add defaultTolerationSeconds admission controller ([#41414](https://github.com/kubernetes/kubernetes/pull/41414), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) +* An `automountServiceAccountToken` field was added to ServiceAccount and PodSpec objects. If set to `false` on a pod spec, no service account token is automounted in the pod. If set to `false` on a service account, no service account token is automounted for that service account unless explicitly overridden in the pod spec. ([#37953](https://github.com/kubernetes/kubernetes/pull/37953), [@liggitt](https://github.com/liggitt)) +* Admission control support for versioned configuration files ([#39109](https://github.com/kubernetes/kubernetes/pull/39109), [@derekwaynecarr](https://github.com/derekwaynecarr)) +* Ability to quota storage by storage class ([#34554](https://github.com/kubernetes/kubernetes/pull/34554), [@derekwaynecarr](https://github.com/derekwaynecarr)) + +### Authentication +* The authentication.k8s.io API group was promoted to v1([#41058](https://github.com/kubernetes/kubernetes/pull/41058), [@liggitt](https://github.com/liggitt)) + +### Authorization +* The authorization.k8s.io API group was promoted to v1 ([#40709](https://github.com/kubernetes/kubernetes/pull/40709), [@liggitt](https://github.com/liggitt)) +* The SubjectAccessReview API now passes subresource and resource name information to the authorizer to answer authorization queries. ([#40935](https://github.com/kubernetes/kubernetes/pull/40935), [@liggitt](https://github.com/liggitt)) + +### Autoscaling +* Introduces an new alpha version of the Horizontal Pod Autoscaler including expanded support for specifying metrics. ([#36033](https://github.com/kubernetes/kubernetes/pull/36033), [@DirectXMan12](https://github.com/DirectXMan12)) +* HorizontalPodAutoscaler is no longer supported in extensions/v1beta1 version. Use autoscaling/v1 instead. ([#35782](https://github.com/kubernetes/kubernetes/pull/35782), [@piosz](https://github.com/piosz)) +* Fixes an HPA-related panic due to division-by-zero. ([#39694](https://github.com/kubernetes/kubernetes/pull/39694), [@DirectXMan12](https://github.com/DirectXMan12)) + +### Certificates +* The CertificateSigningRequest API added the `extra` field to persist all information about the requesting user. This mirrors the fields in the SubjectAccessReview API used to check authorization. ([#41755](https://github.com/kubernetes/kubernetes/pull/41755), [@liggitt](https://github.com/liggitt)) +* Native support for token based bootstrap flow. This includes signing a well known ConfigMap in the `kube-public` namespace and cleaning out expired tokens. ([#36101](https://github.com/kubernetes/kubernetes/pull/36101), [@jbeda](https://github.com/jbeda)) + +### Config Map +* Volumes and environment variables populated from ConfigMap and Secret objects can now tolerate the named source object or specific keys being missing, by adding `optional: true` to the volume or environment variable source specifications. ([#39981](https://github.com/kubernetes/kubernetes/pull/39981), [@fraenkel](https://github.com/fraenkel)) +* Allow pods to define multiple environment variables from a whole ConfigMap ([#36245](https://github.com/kubernetes/kubernetes/pull/36245), [@fraenkel](https://github.com/fraenkel)) + +### CronJob +* Add configurable limits to CronJob resource to specify how many successful and failed jobs are preserved. ([#40932](https://github.com/kubernetes/kubernetes/pull/40932), [@peay](https://github.com/peay)) + +### Daemon Set +* DaemonSet now respects ControllerRef to avoid fighting over Pods. ([#42173](https://github.com/kubernetes/kubernetes/pull/42173), [@enisoc](https://github.com/enisoc)) +* Make DaemonSet respect critical pods annotation when scheduling. ([#42028](https://github.com/kubernetes/kubernetes/pull/42028), [@janetkuo](https://github.com/janetkuo)) +* Implement the update feature for DaemonSet. ([#41116](https://github.com/kubernetes/kubernetes/pull/41116), [@lukaszo](https://github.com/lukaszo)) +* Make DaemonSets survive taint-based evictions when nodes turn unreachable/notReady. ([#41896](https://github.com/kubernetes/kubernetes/pull/41896), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) +* Make DaemonSet controller respect node taints and pod tolerations. ([#41172](https://github.com/kubernetes/kubernetes/pull/41172), [@janetkuo](https://github.com/janetkuo)) +* DaemonSet controller actively kills failed pods (to recreate them) ([#40330](https://github.com/kubernetes/kubernetes/pull/40330), [@janetkuo](https://github.com/janetkuo)) +* DaemonSet ObservedGeneration ([#39157](https://github.com/kubernetes/kubernetes/pull/39157), [@lukaszo](https://github.com/lukaszo)) + +### Deployment +* Add ready replicas in Deployments ([#37959](https://github.com/kubernetes/kubernetes/pull/37959), [@kargakis](https://github.com/kargakis)) +* Deployments that cannot make progress in rolling out the newest version will now indicate via the API they are blocked +* Introduce apps/v1beta1.Deployments resource with modified defaults compared to extensions/v1beta1.Deployments. ([#39683](https://github.com/kubernetes/kubernetes/pull/39683), [@soltysh](https://github.com/soltysh)) +* Introduce new generator for apps/v1beta1 deployments ([#42362](https://github.com/kubernetes/kubernetes/pull/42362), [@soltysh](https://github.com/soltysh)) + +### Node +* Set all node conditions to Unknown when node is unreachable ([#36592](https://github.com/kubernetes/kubernetes/pull/36592), [@andrewsykim](https://github.com/andrewsykim)) + +### Pod +* Init containers have graduated to GA and now appear as a field. The beta annotation value will still be respected and overrides the field value. ([#38382](https://github.com/kubernetes/kubernetes/pull/38382), [@hodovska](https://github.com/hodovska)) +* A new field `terminationMessagePolicy` has been added to containers that allows a user to request `FallbackToLogsOnError`, which will read from the container's logs to populate the termination message if the user does not write to the termination message log file. The termination message file is now properly readable for end users and has a maximum size (4k bytes) to prevent abuse. Each pod may have up to 12k bytes of termination messages before the contents of each will be truncated. ([#39341](https://github.com/kubernetes/kubernetes/pull/39341), [@smarterclayton](https://github.com/smarterclayton)) +* Fix issue with PodDisruptionBudgets in which `minAvailable` specified as a percentage did not work with StatefulSet Pods. ([#39454](https://github.com/kubernetes/kubernetes/pull/39454), [@foxish](https://github.com/foxish)) +* Node affinity has moved from annotations to api fields in the pod spec. Node affinity that is defined in the annotations will be ignored. ([#37299](https://github.com/kubernetes/kubernetes/pull/37299), [@rrati](https://github.com/rrati)) +* Moved pod affinity and anti-affinity from annotations to api fields [#25319](https://github.com/kubernetes/kubernetes/pull/25319) ([#39478](https://github.com/kubernetes/kubernetes/pull/39478), [@rrati](https://github.com/rrati)) +* Add QoS pod status field ([#37968](https://github.com/kubernetes/kubernetes/pull/37968), [@sjenning](https://github.com/sjenning)) + +### Pod Security Policy +* PodSecurityPolicy resource is now enabled by default in the extensions API group. ([#39743](https://github.com/kubernetes/kubernetes/pull/39743), [@pweil-](https://github.com/pweil-)) + +### RBAC +* the `attributeRestrictions` field has been removed from the PolicyRule type in the rbac.authorization.k8s.io/v1alpha1 API. The field was not used by the RBAC authorizer. ([#39625](https://github.com/kubernetes/kubernetes/pull/39625), [@deads2k](https://github.com/deads2k)) +* A user can now be authorized to bind a particular role by having permission to perform the `bind` verb on the referenced role ([#39383](https://github.com/kubernetes/kubernetes/pull/39383), [@liggitt](https://github.com/liggitt)) + +### Replica Set +* ReplicaSet has onwer ref of the Deployment that created it ([#35676](https://github.com/kubernetes/kubernetes/pull/35676), [@krmayankk](https://github.com/krmayankk)) + +### Secrets +* Populate environment variables from a secrets. ([#39446](https://github.com/kubernetes/kubernetes/pull/39446), [@fraenkel](https://github.com/fraenkel)) +* Added a new secret type "bootstrap.kubernetes.io/token" for dynamically creating TLS bootstrapping bearer tokens. ([#41281](https://github.com/kubernetes/kubernetes/pull/41281), [@ericchiang](https://github.com/ericchiang)) + +### Service +* Endpoints, that tolerate unready Pods, are now listing Pods in state Terminating as well ([#37093](https://github.com/kubernetes/kubernetes/pull/37093), [@simonswine](https://github.com/simonswine)) +* Fix Service Update on LoadBalancerSourceRanges Field ([#37720](https://github.com/kubernetes/kubernetes/pull/37720), [@freehan](https://github.com/freehan)) +* Bug fix. Incoming UDP packets not reach newly deployed services ([#32561](https://github.com/kubernetes/kubernetes/pull/32561), [@zreigz](https://github.com/zreigz)) +* Services of type loadbalancer consume both loadbalancer and nodeport quota. ([#39364](https://github.com/kubernetes/kubernetes/pull/39364), [@zhouhaibing089](https://github.com/zhouhaibing089)) + +### Stateful Set + +* Fix zone placement heuristics so that multiple mounts in a StatefulSet pod are created in the same zone ([#40910](https://github.com/kubernetes/kubernetes/pull/40910), [@justinsb](https://github.com/justinsb)) +* Fixes issue [#38418](https://github.com/kubernetes/kubernetes/pull/38418) which, under circumstance, could cause StatefulSet to deadlock. ([#40838](https://github.com/kubernetes/kubernetes/pull/40838), [@kow3ns](https://github.com/kow3ns)) + * Mediates issue [#36859](https://github.com/kubernetes/kubernetes/pull/36859). StatefulSet only acts on Pods whose identity matches the StatefulSet, providing a partial mediation for overlapping controllers. + +### Taints and Tolerations +* Add a manager to NodeController that is responsible for removing Pods from Nodes tainted with NoExecute Taints. This feature is beta (as the rest of taints) and enabled by default. It's gated by controller-manager enable-taint-manager flag. ([#40355](https://github.com/kubernetes/kubernetes/pull/40355), [@gmarek](https://github.com/gmarek)) +* Add an alpha feature that makes NodeController set Taints instead of deleting Pods from not Ready Nodes. ([#41133](https://github.com/kubernetes/kubernetes/pull/41133), [@gmarek](https://github.com/gmarek)) +* Make tolerations respect wildcard key ([#39914](https://github.com/kubernetes/kubernetes/pull/39914), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) +* Forgiveness alpha version api definition ([#39469](https://github.com/kubernetes/kubernetes/pull/39469), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) +* Rescheduler uses taints in v1beta1 and will remove old ones (in version v1alpha1) right after its start. ([#43106](https://github.com/kubernetes/kubernetes/pull/43106), [@piosz](https://github.com/piosz)) + +### Volumes +* StorageClassName attribute has been added to PersistentVolume and PersistentVolumeClaim objects and should be used instead of annotation `volume.beta.kubernetes.io/storage-class`. The beta annotation is still working in this release, however it will be removed in a future release. ([#42128](https://github.com/kubernetes/kubernetes/pull/42128), [@jsafrane](https://github.com/jsafrane)) +* Parameter keys in a StorageClass `parameters` map may not use the `kubernetes.io` or `k8s.io` namespaces. ([#41837](https://github.com/kubernetes/kubernetes/pull/41837), [@liggitt](https://github.com/liggitt)) +* Add storage.k8s.io/v1 API ([#40088](https://github.com/kubernetes/kubernetes/pull/40088), [@jsafrane](https://github.com/jsafrane)) +* Alpha version of dynamic volume provisioning is removed in this release. Annotation ([#40000](https://github.com/kubernetes/kubernetes/pull/40000), [@jsafrane](https://github.com/jsafrane)) + * "volume.alpha.kubernetes.io/storage-class" does not have any special meaning. A default storage class + * and DefaultStorageClass admission plugin can be used to preserve similar behavior of Kubernetes cluster, + * see https://kubernetes.io/docs/user-guide/persistent-volumes/#class-1 for details. +* Reduce verbosity of volume reconciler when attaching volumes ([#36900](https://github.com/kubernetes/kubernetes/pull/36900), [@codablock](https://github.com/codablock)) +* We change the default attach_detach_controller sync period to 1 minute to reduce the query frequency through cloud provider to check whether volumes are attached or not. ([#41363](https://github.com/kubernetes/kubernetes/pull/41363), [@jingxu97](https://github.com/jingxu97)) + +## Changes to Major Components +### API Server +* **`--anonymous-auth` is enabled by default, unless the API server is started with the `AlwaysAllow` authorizer. ([#38706](https://github.com/kubernetes/kubernetes/pull/38706), [@deads2k](https://github.com/deads2k))** +* **when using OIDC authentication and specifying --oidc-username-claim=email, an `"email_verified":true` claim must be returned from the identity provider. ([#36087](https://github.com/kubernetes/kubernetes/pull/36087), [@ericchiang](https://github.com/ericchiang))** + * `--basic-auth-file` supports optionally specifying groups in the fourth column of the file ([#39651](https://github.com/kubernetes/kubernetes/pull/39651), [@liggitt](https://github.com/liggitt)) +* API server now has two separate limits for read-only and mutating inflight requests. ([#36064](https://github.com/kubernetes/kubernetes/pull/36064), [@gmarek](https://github.com/gmarek)) +* Restored normalization of custom `--etcd-prefix` when `--storage-backend` is set to etcd3 ([#42506](https://github.com/kubernetes/kubernetes/pull/42506), [@liggitt](https://github.com/liggitt)) +* Updating apiserver to return http status code 202 for a delete request when the resource is not immediately deleted because of user requesting cascading deletion using DeleteOptions.OrphanDependents=false. ([#41165](https://github.com/kubernetes/kubernetes/pull/41165), [@nikhiljindal](https://github.com/nikhiljindal)) +* Use full package path for definition name in OpenAPI spec ([#40124](https://github.com/kubernetes/kubernetes/pull/40124), [@mbohlool](https://github.com/mbohlool)) +* Follow redirects for streaming requests (exec/attach/port-forward) in the apiserver by default (alpha -> beta). ([#40039](https://github.com/kubernetes/kubernetes/pull/40039), [@timstclair](https://github.com/timstclair)) +* Add 'X-Content-Type-Options: nosniff" to some error messages ([#37190](https://github.com/kubernetes/kubernetes/pull/37190), [@brendandburns](https://github.com/brendandburns)) +* Fixes bug in resolving client-requested API versions ([#38533](https://github.com/kubernetes/kubernetes/pull/38533), [@DirectXMan12](https://github.com/DirectXMan12)) +* Replace glog.Fatals with fmt.Errorfs ([#38175](https://github.com/kubernetes/kubernetes/pull/38175), [@sttts](https://github.com/sttts)) +* Pipe get options to storage ([#37693](https://github.com/kubernetes/kubernetes/pull/37693), [@wojtek-t](https://github.com/wojtek-t)) +* The --long-running-request-regexp flag to kube-apiserver is deprecated and will be removed in a future release. Long-running requests are now detected based on specific verbs (watch, proxy) or subresources (proxy, portforward, log, exec, attach). ([#38119](https://github.com/kubernetes/kubernetes/pull/38119), [@liggitt](https://github.com/liggitt)) +* if kube-apiserver is started with `--storage-backend=etcd2`, the media type `application/json` is used. ([#43122](https://github.com/kubernetes/kubernetes/pull/43122), [@liggitt](https://github.com/liggitt)) +* API fields that previously serialized null arrays as `null` and empty arrays as `[]` no longer distinguish between those values and always output `[]` when serializing to JSON. ([#43422](https://github.com/kubernetes/kubernetes/pull/43422), [@liggitt](https://github.com/liggitt)) +* Generate OpenAPI definition for inlined types ([#39466](https://github.com/kubernetes/kubernetes/pull/39466), [@mbohlool](https://github.com/mbohlool)) + +### API Server Aggregator +* Rename kubernetes-discovery to kube-aggregator ([#39619](https://github.com/kubernetes/kubernetes/pull/39619), [@deads2k](https://github.com/deads2k)) +* Fix connection upgrades through kuberentes-discovery ([#38724](https://github.com/kubernetes/kubernetes/pull/38724), [@deads2k](https://github.com/deads2k)) + +#### Generic API Server +* Move pkg/api/rest into genericapiserver ([#39948](https://github.com/kubernetes/kubernetes/pull/39948), [@sttts](https://github.com/sttts)) +* Move non-generic apiserver code out of the generic packages ([#38191](https://github.com/kubernetes/kubernetes/pull/38191), [@sttts](https://github.com/sttts)) +* Fixes API compatibility issue with empty lists incorrectly returning a null `items` field instead of an empty array. ([#39834](https://github.com/kubernetes/kubernetes/pull/39834), [@liggitt](https://github.com/liggitt)) +* Re-add /healthz/ping handler in genericapiserver ([#38603](https://github.com/kubernetes/kubernetes/pull/38603), [@sttts](https://github.com/sttts)) +* Remove genericapiserver.Options.MasterServiceNamespace ([#38186](https://github.com/kubernetes/kubernetes/pull/38186), [@sttts](https://github.com/sttts)) +* genericapiserver: cut off more dependencies – episode 3 ([#40426](https://github.com/kubernetes/kubernetes/pull/40426), [@sttts](https://github.com/sttts)) +* genericapiserver: more dependency cutoffs ([#40216](https://github.com/kubernetes/kubernetes/pull/40216), [@sttts](https://github.com/sttts)) +* genericapiserver: cut off kube pkg/version dependency ([#39943](https://github.com/kubernetes/kubernetes/pull/39943), [@sttts](https://github.com/sttts)) +* genericapiserver: cut off pkg/serviceaccount dependency ([#39945](https://github.com/kubernetes/kubernetes/pull/39945), [@sttts](https://github.com/sttts)) +* genericapiserver: cut off pkg/apis/extensions and pkg/storage dependencies ([#39946](https://github.com/kubernetes/kubernetes/pull/39946), [@sttts](https://github.com/sttts)) +* genericapiserver: cut off certificates api dependency ([#39947](https://github.com/kubernetes/kubernetes/pull/39947), [@sttts](https://github.com/sttts)) +* genericapiserver: extract CA cert from server cert and SNI cert chains ([#39022](https://github.com/kubernetes/kubernetes/pull/39022), [@sttts](https://github.com/sttts)) +* genericapiserver: turn APIContainer.SecretRoutes into a real ServeMux ([#38826](https://github.com/kubernetes/kubernetes/pull/38826), [@sttts](https://github.com/sttts)) +* genericapiserver: unify swagger and openapi in config ([#38690](https://github.com/kubernetes/kubernetes/pull/38690), [@sttts](https://github.com/sttts)) + +### Client +* Use Prometheus instrumentation conventions ([#36704](https://github.com/kubernetes/kubernetes/pull/36704), [@fabxc](https://github.com/fabxc)) +* Clients now use the `?watch=true` parameter to make watch API calls, instead of the `/watch/` path prefix ([#41722](https://github.com/kubernetes/kubernetes/pull/41722), [@liggitt](https://github.com/liggitt)) +* Move private key parsing from serviceaccount/jwt.go to client-go/util/cert ([#40907](https://github.com/kubernetes/kubernetes/pull/40907), [@cblecker](https://github.com/cblecker)) +* Caching added to the OIDC client auth plugin to fix races and reduce the time kubectl commands using this plugin take by several seconds. ([#38167](https://github.com/kubernetes/kubernetes/pull/38167), [@ericchiang](https://github.com/ericchiang)) +* Fix resync goroutine leak in ListAndWatch ([#35672](https://github.com/kubernetes/kubernetes/pull/35672), [@tatsuhiro-t](https://github.com/tatsuhiro-t)) + +#### client-go +* The main repository does not keep multiple releases of clientsets anymore. Please find previous releases at https://github.com/kubernetes/client-go ([#38154](https://github.com/kubernetes/kubernetes/pull/38154), [@caesarxuchao](https://github.com/caesarxuchao)) +* Support whitespace in command path for gcp auth plugin ([#41653](https://github.com/kubernetes/kubernetes/pull/41653), [@jlowdermilk](https://github.com/jlowdermilk)) +* client-go no longer imports GCP OAuth2 and OpenID Connect packages by default. ([#41532](https://github.com/kubernetes/kubernetes/pull/41532), [@ericchiang](https://github.com/ericchiang)) +* Added bool type support for jsonpath. ([#39063](https://github.com/kubernetes/kubernetes/pull/39063), [@xingzhou](https://github.com/xingzhou)) +* Preventing nil pointer reference in client_config ([#40508](https://github.com/kubernetes/kubernetes/pull/40508), [@vjsamuel](https://github.com/vjsamuel)) +* Prevent hotloops on error conditions, which could fill up the disk faster than log rotation can free space. ([#40497](https://github.com/kubernetes/kubernetes/pull/40497), [@lavalamp](https://github.com/lavalamp)) + +### Cloud Provider + +#### AWS +* Allow to running the master with a different AWS account or even on a different cloud provider than the nodes. ([#39996](https://github.com/kubernetes/kubernetes/pull/39996), [@scheeles](https://github.com/scheeles)) +* Support shared tag `kubernetes.io/cluster/<clusterid>` ([#41695](https://github.com/kubernetes/kubernetes/pull/41695), [@justinsb](https://github.com/justinsb)) +* Do not consider master instance zones for dynamic volume creation ([#41702](https://github.com/kubernetes/kubernetes/pull/41702), [@justinsb](https://github.com/justinsb)) +* Fix AWS device allocator to only use valid device names ([#41455](https://github.com/kubernetes/kubernetes/pull/41455), [@gnufied](https://github.com/gnufied)) +* Trust region if found from AWS metadata ([#38880](https://github.com/kubernetes/kubernetes/pull/38880), [@justinsb](https://github.com/justinsb)) +* Remove duplicate calls to DescribeInstance during volume operations ([#39842](https://github.com/kubernetes/kubernetes/pull/39842), [@gnufied](https://github.com/gnufied)) +* Recognize eu-west-2 region ([#38746](https://github.com/kubernetes/kubernetes/pull/38746), [@justinsb](https://github.com/justinsb)) +* Recognize ca-central-1 region ([#38410](https://github.com/kubernetes/kubernetes/pull/38410), [@justinsb](https://github.com/justinsb)) +* Add sequential allocator for device names. ([#38818](https://github.com/kubernetes/kubernetes/pull/38818), [@jsafrane](https://github.com/jsafrane)) + +#### Azure +* Fix failing load balancers in Azure ([#40405](https://github.com/kubernetes/kubernetes/pull/40405), [@codablock](https://github.com/codablock)) +* Reduce time needed to attach Azure disks ([#40066](https://github.com/kubernetes/kubernetes/pull/40066), [@codablock](https://github.com/codablock)) +* Remove Azure Subnet RouteTable check ([#38334](https://github.com/kubernetes/kubernetes/pull/38334), [@mogthesprog](https://github.com/mogthesprog)) +* Add support for Azure Container Registry, update Azure dependencies ([#37783](https://github.com/kubernetes/kubernetes/pull/37783), [@brendandburns](https://github.com/brendandburns)) +* Allow backendpools in Azure Load Balancers which are not owned by cloud provider ([#36882](https://github.com/kubernetes/kubernetes/pull/36882), [@codablock](https://github.com/codablock)) + +#### GCE +* On GCI by default logrotate is disabled for application containers in favor of rotation mechanism provided by docker logging driver. ([#40634](https://github.com/kubernetes/kubernetes/pull/40634), [@crassirostris](https://github.com/crassirostris)) + +#### GKE +* New GKE certificates controller. ([#41160](https://github.com/kubernetes/kubernetes/pull/41160), [@pipejakob](https://github.com/pipejakob)) + +#### vSphere +* Reverts to looking up the current VM in vSphere using the machine's UUID, either obtained via sysfs or via the `vm-uuid` parameter in the cloud configuration file. ([#40892](https://github.com/kubernetes/kubernetes/pull/40892), [@robdaemon](https://github.com/robdaemon)) +* Fix for detach volume when node is not present/ powered off ([#40118](https://github.com/kubernetes/kubernetes/pull/40118), [@BaluDontu](https://github.com/BaluDontu)) +* Adding vmdk file extension for vmDiskPath in vsphere DeleteVolume ([#40538](https://github.com/kubernetes/kubernetes/pull/40538), [@divyenpatel](https://github.com/divyenpatel)) +* Changed default scsi controller type in vSphere Cloud Provider ([#38426](https://github.com/kubernetes/kubernetes/pull/38426), [@abrarshivani](https://github.com/abrarshivani)) +* Fixes NotAuthenticated errors that appear in the kubelet and kube-controller-manager due to never logging in to vSphere ([#36169](https://github.com/kubernetes/kubernetes/pull/36169), [@robdaemon](https://github.com/robdaemon)) +* Fix panic in vSphere cloud provider ([#38423](https://github.com/kubernetes/kubernetes/pull/38423), [@BaluDontu](https://github.com/BaluDontu)) +* Fix space issue in volumePath with vSphere Cloud Provider ([#38338](https://github.com/kubernetes/kubernetes/pull/38338), [@BaluDontu](https://github.com/BaluDontu)) + +### Federation + +#### kubefed +* Flag cleanup ([#41335](https://github.com/kubernetes/kubernetes/pull/41335), [@irfanurrehman](https://github.com/irfanurrehman)) +* Create configmap for the cluster kube-dns when cluster joins and remove when it unjoins ([#39338](https://github.com/kubernetes/kubernetes/pull/39338), [@irfanurrehman](https://github.com/irfanurrehman)) +* Support configuring dns-provider ([#40528](https://github.com/kubernetes/kubernetes/pull/40528), [@shashidharatd](https://github.com/shashidharatd)) +* Bug fix relating kubeconfig path in kubefed init ([#41410](https://github.com/kubernetes/kubernetes/pull/41410), [@irfanurrehman](https://github.com/irfanurrehman)) +* Add override flags options to kubefed init ([#40917](https://github.com/kubernetes/kubernetes/pull/40917), [@irfanurrehman](https://github.com/irfanurrehman)) +* Add option to expose federation apiserver on nodeport service ([#40516](https://github.com/kubernetes/kubernetes/pull/40516), [@shashidharatd](https://github.com/shashidharatd)) +* Add option to disable persistence storage for etcd ([#40862](https://github.com/kubernetes/kubernetes/pull/40862), [@shashidharatd](https://github.com/shashidharatd)) +* kubefed init creates a service account for federation controller manager in the federation-system namespace and binds that service account to the federation-system:federation-controller-manager role that has read and list access on secrets in the federation-system namespace. ([#40392](https://github.com/kubernetes/kubernetes/pull/40392), [@madhusudancs](https://github.com/madhusudancs)) +* Implement dry run support in kubefed init ([#36447](https://github.com/kubernetes/kubernetes/pull/36447), [@irfanurrehman](https://github.com/irfanurrehman)) +* Make federation etcd PVC size configurable ([#36310](https://github.com/kubernetes/kubernetes/pull/36310), [@irfanurrehman](https://github.com/irfanurrehman)) + +#### Other Notable Changes +* Federated Ingress over GCE no longer requires separate firewall rules to be created for each cluster to circumvent flapping firewall health checks. ([#41942](https://github.com/kubernetes/kubernetes/pull/41942), [@csbell](https://github.com/csbell)) +* Add support for finalizers in federated configmaps (deletes configmaps from underlying clusters). ([#40464](https://github.com/kubernetes/kubernetes/pull/40464), [@csbell](https://github.com/csbell)) +* Add support for DeleteOptions.OrphanDependents for federated services. Setting it to false while deleting a federated service also deletes the corresponding services from all registered clusters. ([#36390](https://github.com/kubernetes/kubernetes/pull/36390), [@nikhiljindal](https://github.com/nikhiljindal)) +* Add `--controllers` flag to federation controller manager for enable/disable federation ingress controller ([#36643](https://github.com/kubernetes/kubernetes/pull/36643), [@kzwang](https://github.com/kzwang)) +* Stop deleting services from underlying clusters when federated service is deleted. ([#37353](https://github.com/kubernetes/kubernetes/pull/37353), [@nikhiljindal](https://github.com/nikhiljindal)) +* Expose autoscaling apis through federation api server ([#38976](https://github.com/kubernetes/kubernetes/pull/38976), [@irfanurrehman](https://github.com/irfanurrehman)) +* Federation: Add `batch/jobs` API objects to federation-apiserver ([#35943](https://github.com/kubernetes/kubernetes/pull/35943), [@jianhuiz](https://github.com/jianhuiz)) +* Add logging of route53 calls ([#39964](https://github.com/kubernetes/kubernetes/pull/39964), [@justinsb](https://github.com/justinsb)) + +### Garbage Collector +* Added foreground garbage collection: the owner object will not be deleted until all its dependents are deleted by the garbage collector. Please checkout the [user doc](https://kubernetes.io/docs/concepts/abstractions/controllers/garbage-collection/) for details. ([#38676](https://github.com/kubernetes/kubernetes/pull/38676), [@caesarxuchao](https://github.com/caesarxuchao)) + * deleteOptions.orphanDependents is going to be deprecated in 1.7. Please use deleteOptions.propagationPolicy instead. + +### kubeadm +* A new label and taint is used for marking the master. The label is `node-role.kubernetes.io/master=""` and the taint has the effect `NoSchedule`. Tolerate the `node-role.kubernetes.io/master="":NoSchedule` taint to schedule a workload on the master (a networking DaemonSet for example). +* The kubelet API is now secured, only cluster admins are allowed to access it. +* Insecure access to the API Server over `localhost:8080` is now disabled. +* The control plane components now talk securely to each other. The API Server talks securely to the kubelets in the cluster. +* kubeadm creates RBAC-enabled clusters. This means that some add-ons which worked previously won't work without having their YAML configuration updated. Please see each vendor's own documentation to check that the add-ons you are using will work with Kubernetes 1.6. +* The kube-discovery Deployment isn't used anymore when creating a kubeadm cluster and shouldn't be used anywhere else either due to its insecure nature. +* The Certificates API has graduated from alpha to beta. This is a backwards-incompatible change since the alpha support is dropped, and therefore kubeadm v1.5 and v1.6 don't work together (for example kubeadm v1.5 can't join a kubeadm v1.6 cluster). +* Supporting only etcd3, with 3.0.14 as the minimum version. +* `kubeadm reset` will no longer drain nodes automatically. This is because the credentials on nodes do not have permission to perform this operation. We have documented an [alternate procedure](https://kubernetes.io/docs/getting-started-guides/kubeadm/#tear-down), driven from the API server/master. +* Hook up kubeadm against the BootstrapSigner ([#41417](https://github.com/kubernetes/kubernetes/pull/41417), [@luxas](https://github.com/luxas)) +* Rename some flags for beta UI and fixup some logic ([#42064](https://github.com/kubernetes/kubernetes/pull/42064), [@luxas](https://github.com/luxas)) +* Insecure access to the API Server at localhost:8080 will be turned off in v1.6 when using kubeadm ([#42066](https://github.com/kubernetes/kubernetes/pull/42066), [@luxas](https://github.com/luxas)) +* Flag --use-kubernetes-version for kubeadm init renamed to --kubernetes-version ([#41820](https://github.com/kubernetes/kubernetes/pull/41820), [@kad](https://github.com/kad)) +* Remove the --cloud-provider flag for beta init UX ([#41710](https://github.com/kubernetes/kubernetes/pull/41710), [@luxas](https://github.com/luxas)) +* Fixed an SELinux issue in kubeadm on Docker 1.12+ by moving etcd SELinux options from container to pod. ([#40682](https://github.com/kubernetes/kubernetes/pull/40682), [@dgoodwin](https://github.com/dgoodwin)) +* Add authorization mode to kubeadm ([#39846](https://github.com/kubernetes/kubernetes/pull/39846), [@andrewrynhard](https://github.com/andrewrynhard)) +* Refactor the certificate and kubeconfig code in the kubeadm binary into two phases ([#39280](https://github.com/kubernetes/kubernetes/pull/39280), [@luxas](https://github.com/luxas)) +* Added kubeadm commands to manage bootstrap tokens and the duration they are valid for. ([#35805](https://github.com/kubernetes/kubernetes/pull/35805), [@dgoodwin](https://github.com/dgoodwin)) + +### kubectl + +#### New Commands +- `apply set-last-applied` *updates the applied-applied-configuration annotation* ([#41694](https://github.com/kubernetes/kubernetes/pull/41694), [@shiywang](https://github.com/shiywang)) +- `kubectl apply view-last-applied` *viewing the last configuration file applied* ([#41146](https://github.com/kubernetes/kubernetes/pull/41146), [@shiywang](https://github.com/shiywang)) + +#### Create subcommands + - `create poddisruptionbudget` ([#36646](https://github.com/kubernetes/kubernetes/pull/36646), [@kargakis](https://github.com/kargakis)) + - `create clusterrole` ([#41538](https://github.com/kubernetes/kubernetes/pull/41538), [@xingzhou](https://github.com/xingzhou)) + - `create role` ([#39852](https://github.com/kubernetes/kubernetes/pull/39852), [@xingzhou](https://github.com/xingzhou)) + - `create clusterrolebinding` ([#37098](https://github.com/kubernetes/kubernetes/pull/37098), [@deads2k](https://github.com/deads2k)) + - `create service externalname` ([#34789](https://github.com/kubernetes/kubernetes/pull/34789), [@adohe](https://github.com/adohe)) +- `set selector` - update selector labels ([#38966](https://github.com/kubernetes/kubernetes/pull/38966), [@kargakis](https://github.com/kargakis)) +- `can-i` to see if you can perform an action ([#41077](https://github.com/kubernetes/kubernetes/pull/41077), [@deads2k](https://github.com/deads2k)) + +#### Updates to existing commands +* Printing and output + * Import a numeric ordering sorting library and use it in the sorting printer. ([#40746](https://github.com/kubernetes/kubernetes/pull/40746), [@matthyx](https://github.com/matthyx)) + * DaemonSet get and describe show status fields. ([#42843](https://github.com/kubernetes/kubernetes/pull/42843), [@janetkuo](https://github.com/janetkuo)) + * Pods describe shows tolerationSeconds ([#42162](https://github.com/kubernetes/kubernetes/pull/42162), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) + * Node describe contains closing paren ([#39217](https://github.com/kubernetes/kubernetes/pull/39217), [@luksa](https://github.com/luksa)) + * Display pod node selectors with kubectl describe. ([#36396](https://github.com/kubernetes/kubernetes/pull/36396), [@aveshagarwal](https://github.com/aveshagarwal)) + * Add Version to the resource printer for 'get nodes' ([#37943](https://github.com/kubernetes/kubernetes/pull/37943), [@ailusazh](https://github.com/ailusazh)) + * Added support for printing in all supported `--output` formats to `kubectl create ...` and `kubectl apply ...` ([#38112](https://github.com/kubernetes/kubernetes/pull/38112), [@juanvallejo](https://github.com/juanvallejo)) + * Add three more columns to `kubectl get deploy -o wide` output. ([#39240](https://github.com/kubernetes/kubernetes/pull/39240), [@xingzhou](https://github.com/xingzhou)) + * Fix kubectl get -f <file> -o <nondefault printer> so it prints all items in the file ([#39038](https://github.com/kubernetes/kubernetes/pull/39038), [@ncdc](https://github.com/ncdc)) + * kubectl describe no longer prints the last-applied-configuration annotation for secrets. ([#34664](https://github.com/kubernetes/kubernetes/pull/34664), [@ymqytw](https://github.com/ymqytw)) + * Completed pods should not be hidden when requested by name via `kubectl get`. ([#42216](https://github.com/kubernetes/kubernetes/pull/42216), [@smarterclayton](https://github.com/smarterclayton)) + * Improve formatting of EventSource in kubectl get and kubectl describe ([#40073](https://github.com/kubernetes/kubernetes/pull/40073), [@matthyx](https://github.com/matthyx)) +* Attach now supports multiple types ([#40365](https://github.com/kubernetes/kubernetes/pull/40365), [@shiywang](https://github.com/shiywang)) +* Create now accepts the label selector flag for filtering objects to create ([#40057](https://github.com/kubernetes/kubernetes/pull/40057), [@MrHohn](https://github.com/MrHohn)) +* Top now accepts short forms for "node" and "pod" ("no", "po") ([#39218](https://github.com/kubernetes/kubernetes/pull/39218), [@luksa](https://github.com/luksa)) +* Begin paths for internationalization in kubectl ([#36802](https://github.com/kubernetes/kubernetes/pull/36802), [@brendandburns](https://github.com/brendandburns)) + * Add initial french translations for kubectl ([#40645](https://github.com/kubernetes/kubernetes/pull/40645), [@brendandburns](https://github.com/brendandburns)) + +#### Updates to apply +* New command `apply set-last-applied` *updates the applied-applied-configuration annotation* ([#41694](https://github.com/kubernetes/kubernetes/pull/41694), [@shiywang](https://github.com/shiywang)) +* New command `apply view-last-applied` *command for viewing the last configuration file applied* ([#41146](https://github.com/kubernetes/kubernetes/pull/41146), [@shiywang](https://github.com/shiywang)) +* `apply` now supports explicitly clearing values by setting them to null ([#40630](https://github.com/kubernetes/kubernetes/pull/40630), [@liggitt](https://github.com/liggitt)) +* Warn user when using `apply` on a resource lacking the `LastAppliedConfig` annotation ([#36672](https://github.com/kubernetes/kubernetes/pull/36672), [@ymqytw](https://github.com/ymqytw)) +* PATCH (i.e. apply and edit) now supports merging lists of primitives ([#38665](https://github.com/kubernetes/kubernetes/pull/38665), [@ymqytw](https://github.com/ymqytw)) +* `apply` falls back to generic 3-way JSON merge patch for Third Party Resource or unregistered types ([#40666](https://github.com/kubernetes/kubernetes/pull/40666), [@ymqytw](https://github.com/ymqytw)) + +#### Updates to edit +* `edit` now supports Third party resources and extension API servers. ([#41304](https://github.com/kubernetes/kubernetes/pull/41304), [@liggitt](https://github.com/liggitt)) + * Now to edit a particular API version, provide the fully-qualify the resource, version, and group used to fetch the object (for example, `job.v1.batch/myjob`) + * Client-side conversion is no longer done, and the `--output-version` option is deprecated for `kubectl edit`. +* `edit` works as intended with apply and will not change the annotation + * No longer updates the last-applied-configuration annotation when --save-config is unspecified or false. ([#41924](https://github.com/kubernetes/kubernetes/pull/41924), [@ymqytw](https://github.com/ymqytw)) + * Fixes issue that caused apply to revert changes made by edit + +#### Bug fixes +* Fixed --save-config in create subcommand to save the annotation ([#40289](https://github.com/kubernetes/kubernetes/pull/40289), [@xilabao](https://github.com/xilabao)) +* Fixed an issue where 'kubectl get --sort-by=' would return an error if the specified fields in sort were not specified in one or more of the returned objects. ([#40541](https://github.com/kubernetes/kubernetes/pull/40541), [@fabianofranz](https://github.com/fabianofranz)) + * Previously this would cause the command to fail regardless of whether or not the field was present in the object model + * Now the command will succeed even if the sort-by field is missing from one or more of the objects +* Fixed issue with kubectl proxy so it will now proxy an empty path - e.g. http://localhost:8001 ([#39226](https://github.com/kubernetes/kubernetes/pull/39226), [@luksa](https://github.com/luksa)) +* Fixed an issue where commas were not accepted in --from-literal flags for the creation of secrets. ([#35191](https://github.com/kubernetes/kubernetes/pull/35191), [@SamiHiltunen](https://github.com/SamiHiltunen)) + * Passing multiple values separated by a comma in a single --from-literal flag is no longer supported. Please use multiple --from-literal flags to provide multiple values. +* Fixed a bug where the --server, --token, and --certificate-authority flags were not overriding the related in-cluster configs when provided in a `kubectl` call inside a cluster. ([#39006](https://github.com/kubernetes/kubernetes/pull/39006), [@fabianofranz](https://github.com/fabianofranz)) + +#### Other Notable Changes +* The api server will publish the extensions/Deployments API as preferred over the apps/Deployment (introduced in 1.6). ([#43553](https://github.com/kubernetes/kubernetes/pull/43553), [@liggitt](https://github.com/liggitt)) + * This will ensure certain commands in 1.5 versions of kubectl continue function when run against a 1.6 server. (e.g. `kubectl edit deployment`) +* Taint + * The `taint` command will not function in a skewed 1.5 / 1.6 environment - client and server versions must match (See Action required section above) + * Change taints/tolerations to api fields ([#38957](https://github.com/kubernetes/kubernetes/pull/38957), [@aveshagarwal](https://github.com/aveshagarwal)) + * Make kubectl taint command respect effect NoExecute ([#42120](https://github.com/kubernetes/kubernetes/pull/42120), [@kevin-wangzefeng](https://github.com/kevin-wangzefeng)) +* Allow drain --force to remove pods whose managing resource is deleted. ([#41864](https://github.com/kubernetes/kubernetes/pull/41864), [@marun](https://github.com/marun)) +* `--output-version` is ignored for all commands except `kubectl convert`. This is consistent with the generic nature of `kubectl` CRUD commands and the previous removal of `--api-version`. Specific versions can be specified in the resource field: `resource.version.group`, `jobs.v1.batch`. ([#41576](https://github.com/kubernetes/kubernetes/pull/41576), [@deads2k](https://github.com/deads2k)) +* Allow missing keys in templates by default ([#39486](https://github.com/kubernetes/kubernetes/pull/39486), [@ncdc](https://github.com/ncdc)) +* Add error message when trying to use clusterrole with namespace in kubectl ([#36424](https://github.com/kubernetes/kubernetes/pull/36424), [@xilabao](https://github.com/xilabao)) +* When deleting an object with `--grace-period=0`, the client will begin a graceful deletion and wait until the resource is fully deleted. To force deletion, use the `--force` flag. ([#37263](https://github.com/kubernetes/kubernetes/pull/37263), [@smarterclayton](https://github.com/smarterclayton)) + +### Node Components +* Kubelet config should ignore file start with dots. + ([#39196](https://github.com/kubernetes/kubernetes/pull/39196), + [@resouer](https://github.com/resouer)) +* Bump GCI to gci-stable-56-9000-84-2. + ([#41819](https://github.com/kubernetes/kubernetes/pull/41819), + [@dchen1107](https://github.com/dchen1107)) +* Bump GCE ContainerVM to container-vm-v20170214 to address CVE-2016-9962. + ([#41449](https://github.com/kubernetes/kubernetes/pull/41449), + [@zmerlynn](https://github.com/zmerlynn)) +* Kubelet: Remove the PLEG health check from /healthz, Kubelet will now report +* NodeNotReady on failed PLEG health check. + ([#41569](https://github.com/kubernetes/kubernetes/pull/41569), + [@yujuhong](https://github.com/yujuhong)) +* CRI: upgrade protobuf to v3. Protobuf v2 and v3 are not compatible. + ([#39158](https://github.com/kubernetes/kubernetes/pull/39158), [@feiskyer](https://github.com/feiskyer)) +* kubelet exports metrics for cgroup management (#41988, @sjenning) +* Experimental support to reserve a pod's memory request from being utilized by + pods in lower QoS tiers. + ([#41149](https://github.com/kubernetes/kubernetes/pull/41149), + [@sjenning](https://github.com/sjenning)) +* Port forwarding can forward over websockets or SPDY. + ([#33684](https://github.com/kubernetes/kubernetes/pull/33684), + [@fraenkel](https://github.com/fraenkel)) +* Flag gate faster evictions based on node memory pressure using kernel memcg + notifications - `--experimental-kernel-memcg-notification`. + ([#38258](https://github.com/kubernetes/kubernetes/pull/38258), + [@derekwaynecarr](https://github.com/derekwaynecarr)) +* Nodes can now report two additional address types in their status: InternalDNS + and ExternalDNS. The apiserver can use --kubelet-preferred-address-types to + give priority to the type of address it uses to reach nodes. + ([#34259](https://github.com/kubernetes/kubernetes/pull/34259), [@liggitt](https://github.com/liggitt)) + +#### Bug fixes +* Add image cache to fix the issue where kubelet hands when reporting the node + status. ([#38375](https://github.com/kubernetes/kubernetes/pull/38375), + [@Random-Liu](https://github.com/Random-Liu)) +* Fix logic error in graceful deletion that caused pods not being able to + be deleted. ([#37721](https://github.com/kubernetes/kubernetes/pull/37721), + [@derekwaynecarr](https://github.com/derekwaynecarr)) +* Fix ConfigMap for Windows Containers. + ([#39373](https://github.com/kubernetes/kubernetes/pull/39373), + [@jbhurat](https://github.com/jbhurat)) +* Fix the “pod rejected by kubelet may stay at pending forever” bug. + (https://github.com/kubernetes/kubernetes/pull/37661), + [@yujuhong](https://github.com/yujuhong)) + +### kube-controller-manager +* add --controllers to controller manager ([#39740](https://github.com/kubernetes/kubernetes/pull/39740), [@deads2k](https://github.com/deads2k)) + +### kube-dns +* Adds support for configurable DNS stub domains and upstream nameservers. + The following configuration options have been added to the `kube-system:kube-dns` ConfigMap: + ``` + "stubDomains": { + "acme.local": ["1.2.3.4"] + }, + ``` + is a map of domain to list of nameservers for the domain. This is used + to inject private DNS domains into the kube-dns namespace. In the above + example, any DNS requests for *.acme.local will be served by the + nameserver 1.2.3.4. + ``` + "upstreamNameservers": ["8.8.8.8", "8.8.4.4"] + ``` + is a list of upstreamNameservers to use, overriding the configuration + specified in /etc/resolv.conf. + +* An empty `kube-system:kube-dns` ConfigMap will be created for the cluster if one did not already exist. + +### kube-proxy +* **- Add tcp/udp userspace proxy support for Windows. ([#41487](https://github.com/kubernetes/kubernetes/pull/41487), [@anhowe](https://github.com/anhowe))** +* Add DNS suffix search list support in Windows kube-proxy. ([#41618](https://github.com/kubernetes/kubernetes/pull/41618), [@JiangtianLi](https://github.com/JiangtianLi)) +* Add a KUBERNETES_NODE_* section to build kubelet/kube-proxy for windows ([#38919](https://github.com/kubernetes/kubernetes/pull/38919), [@brendandburns](https://github.com/brendandburns)) +* Remove outdated net.experimental.kubernetes.io/proxy-mode and net.beta.kubernetes.io/proxy-mode annotations from kube-proxy. ([#40585](https://github.com/kubernetes/kubernetes/pull/40585), [@cblecker](https://github.com/cblecker)) +* proxy/iptables: don't sync proxy rules if services map didn't change ([#38996](https://github.com/kubernetes/kubernetes/pull/38996), [@dcbw](https://github.com/dcbw)) +* Update kube-proxy image to be based off of Debian 8.6 base image. ([#39695](https://github.com/kubernetes/kubernetes/pull/39695), [@ixdy](https://github.com/ixdy)) +* Update amd64 kube-proxy base image to debian-iptables-amd64:v5 ([#39725](https://github.com/kubernetes/kubernetes/pull/39725), [@ixdy](https://github.com/ixdy)) +* Clean up the kube-proxy container image by removing unnecessary packages and files. ([#42090](https://github.com/kubernetes/kubernetes/pull/42090), [@timstclair](https://github.com/timstclair)) +* Better compat with very old iptables (e.g. CentOS 6) ([#37594](https://github.com/kubernetes/kubernetes/pull/37594), [@thockin](https://github.com/thockin)) + +### Scheduler +* Add the support to the scheduler for spreading pods of StatefulSets. ([#41708](https://github.com/kubernetes/kubernetes/pull/41708), [@bsalamat](https://github.com/bsalamat)) +* Added support to minimize sending verbose node information to scheduler extender by sending only node names and expecting extenders to cache the rest of the node information ([#41119](https://github.com/kubernetes/kubernetes/pull/41119), [@sarat-k](https://github.com/sarat-k)) +* Support KUBE_MAX_PD_VOLS on Azure ([#41398](https://github.com/kubernetes/kubernetes/pull/41398), [@codablock](https://github.com/codablock)) +* Mark multi-scheduler graduation to beta and then v1. ([#38871](https://github.com/kubernetes/kubernetes/pull/38871), [@k82cn](https://github.com/k82cn)) +* Scheduler treats StatefulSet pods as belonging to a single equivalence class. ([#39718](https://github.com/kubernetes/kubernetes/pull/39718), [@foxish](https://github.com/foxish)) +* Update FitError as a message component into the PodConditionUpdater. ([#39491](https://github.com/kubernetes/kubernetes/pull/39491), [@jayunit100](https://github.com/jayunit100)) +* Fix comment and optimize code ([#38084](https://github.com/kubernetes/kubernetes/pull/38084), [@tanshanshan](https://github.com/tanshanshan)) +* Add flag to enable contention profiling in scheduler. ([#37357](https://github.com/kubernetes/kubernetes/pull/37357), [@gmarek](https://github.com/gmarek)) +* Try self-repair scheduler cache or panic ([#37379](https://github.com/kubernetes/kubernetes/pull/37379), [@wojtek-t](https://github.com/wojtek-t)) + +### Volume Plugins + +#### Azure Disk +* restrict name length for Azure specifications ([#40030](https://github.com/kubernetes/kubernetes/pull/40030), [@colemickens](https://github.com/colemickens)) + +#### GlusterFS +* The glusterfs dynamic volume provisioner will now choose a unique GID for new persistent volumes from a range that can be configured in the storage class with the "gidMin" and "gidMax" parameters. The default range is 2000 - 2147483647 (max int32). ([#37886](https://github.com/kubernetes/kubernetes/pull/37886), [@obnoxxx](https://github.com/obnoxxx)) + +#### Photon +* Fix photon controller plugin to construct with correct PdID ([#37167](https://github.com/kubernetes/kubernetes/pull/37167), [@luomiao](https://github.com/luomiao)) + +#### rbd +* force unlock rbd image if the image is not used ([#41597](https://github.com/kubernetes/kubernetes/pull/41597), [@rootfs](https://github.com/rootfs)) + +#### vSphere +* Fix fsGroup to vSphere ([#38655](https://github.com/kubernetes/kubernetes/pull/38655), [@abrarshivani](https://github.com/abrarshivani)) +* Fix issue when attempting to unmount a wrong vSphere volume ([#37413](https://github.com/kubernetes/kubernetes/pull/37413), [@BaluDontu](https://github.com/BaluDontu)) + +#### Other Notable Changes +* Implement bulk polling of volumes ([#41306](https://github.com/kubernetes/kubernetes/pull/41306), [@gnufied](https://github.com/gnufied)) +* Check if pathExists before performing Unmount ([#39311](https://github.com/kubernetes/kubernetes/pull/39311), [@rkouj](https://github.com/rkouj)) +* Unmount operation should not fail if volume is already unmounted ([#38547](https://github.com/kubernetes/kubernetes/pull/38547), [@rkouj](https://github.com/rkouj)) +* Provide kubernetes-controller-manager flags to control volume attach/detach reconciler sync. The duration of the syncs can be controlled, and the syncs can be shut off as well. ([#39551](https://github.com/kubernetes/kubernetes/pull/39551), [@chrislovecnm](https://github.com/chrislovecnm)) +* Fix unmountDevice issue caused by shared mount in GCI ([#38411](https://github.com/kubernetes/kubernetes/pull/38411), [@jingxu97](https://github.com/jingxu97)) +* Fix permissions when using fsGroup ([#37009](https://github.com/kubernetes/kubernetes/pull/37009), [@sjenning](https://github.com/sjenning)) +* Fixed issues [#39202](https://github.com/kubernetes/kubernetes/pull/39202), [#41041](https://github.com/kubernetes/kubernetes/pull/41041) and [#40941](https://github.com/kubernetes/kubernetes/pull/40941) that caused the iSCSI connections to be prematurely closed when deleting a pod with an iSCSI persistent volume attached and that prevented the use of newly created LUNs on targets with preestablished connections. ([#41196](https://github.com/kubernetes/kubernetes/pull/41196), [@CristianPop](https://github.com/CristianPop)) + +## Changes to Cluster Provisioning Scripts + +### AWS +* Deployment of AWS Kubernetes clusters using the in-tree bash deployment (i.e. cluster/kube-up.sh or get-kube.sh) is obsolete. v1.5.x will be the last release to support cluster/kube-up.sh with AWS. For a list of viable alternatives, see: http://kubernetes.io/docs/getting-started-guides/aws/ ([#42196](https://github.com/kubernetes/kubernetes/pull/42196), [@zmerlynn](https://github.com/zmerlynn)) +* Fix an issue where AWS tear-down leaks an DHCP Option Set. ([#38645](https://github.com/kubernetes/kubernetes/pull/38645), [@zmerlynn](https://github.com/zmerlynn)) + +### Juju +* The kubernetes-master, kubernetes-worker and kubeapi-load-balancer charms have gained an nrpe-external-master relation, allowing the integration of their monitoring in an external Nagios server. ([#41923](https://github.com/kubernetes/kubernetes/pull/41923), [@Cynerva](https://github.com/Cynerva)) +* Disable anonymous auth on kubelet ([#41919](https://github.com/kubernetes/kubernetes/pull/41919), [@Cynerva](https://github.com/Cynerva)) +* Fix shebangs in charm actions to use python3 ([#42058](https://github.com/kubernetes/kubernetes/pull/42058), [@Cynerva](https://github.com/Cynerva)) +* K8s master charm now properly keeps distributed master files in sync for an HA control plane. ([#41351](https://github.com/kubernetes/kubernetes/pull/41351), [@chuckbutler](https://github.com/chuckbutler)) +* Improve status messages ([#40691](https://github.com/kubernetes/kubernetes/pull/40691), [@Cynerva](https://github.com/Cynerva)) +* Splits Juju Charm layers into master/worker roles ([#40324](https://github.com/kubernetes/kubernetes/pull/40324), [@chuckbutler](https://github.com/chuckbutler)) + * Adds support for 1.5.x series of Kubernetes + * Introduces a tactic for keeping templates in sync with upstream eliminating template drift + * Adds CNI support to the Juju Charms + * Adds durable storage support to the Juju Charms + * Introduces an e2e Charm layer for repeatable testing efforts and validation of clusters + +### libvirt CoreOS +* To add local registry to libvirt_coreos ([#36751](https://github.com/kubernetes/kubernetes/pull/36751), [@sdminonne](https://github.com/sdminonne)) + +### GCE +* **the `gce` provider enables both RBAC authorization and the permissive legacy ABAC policy that makes all service accounts superusers. To opt out of the permissive ABAC policy, export the environment variable `ENABLE_LEGACY_ABAC=false` before running `cluster/kube-up.sh`. ([#43544](https://github.com/kubernetes/kubernetes/pull/43544), [@liggitt](https://github.com/liggitt))** +* **the `gce` provider ensures the bootstrap admin token user is included in the super-user group ([#39537](https://github.com/kubernetes/kubernetes/pull/39537), [@liggitt](https://github.com/liggitt))** +* Remove support for debian masters in GCE kube-up. ([#41666](https://github.com/kubernetes/kubernetes/pull/41666), [@mikedanese](https://github.com/mikedanese)) +* Remove support for trusty in GCE kube-up. ([#41670](https://github.com/kubernetes/kubernetes/pull/41670), [@mikedanese](https://github.com/mikedanese)) +* Don't fail if the grep fails to match any resources ([#41933](https://github.com/kubernetes/kubernetes/pull/41933), [@ixdy](https://github.com/ixdy)) +* Fix the output of health-mointor.sh ([#41525](https://github.com/kubernetes/kubernetes/pull/41525), [@yujuhong](https://github.com/yujuhong)) +* Added configurable etcd initial-cluster-state to kube-up script. ([#41332](https://github.com/kubernetes/kubernetes/pull/41332), [@jszczepkowski](https://github.com/jszczepkowski)) +* The kube-apiserver [basic audit log](https://kubernetes.io/docs/admin/audit/) can be enabled in GCE by exporting the environment variable `ENABLE_APISERVER_BASIC_AUDIT=true` before running `cluster/kube-up.sh`. This will log to `/var/log/kube-apiserver-audit.log` and use the same `logrotate` settings as `/var/log/kube-apiserver.log`. ([#41211](https://github.com/kubernetes/kubernetes/pull/41211), [@enisoc](https://github.com/enisoc)) +* On kube-up.sh clusters on GCE, kube-scheduler now contacts the API on the secured port. ([#41285](https://github.com/kubernetes/kubernetes/pull/41285), [@liggitt](https://github.com/liggitt)) +* Use existing ABAC policy file when upgrading GCE cluster ([#40172](https://github.com/kubernetes/kubernetes/pull/40172), [@liggitt](https://github.com/liggitt)) +* Ensure the GCI metadata files do not have newline at the end ([#38727](https://github.com/kubernetes/kubernetes/pull/38727), [@Amey-D](https://github.com/Amey-D)) +* Fixed detection of master during creation of multizone nodes cluster by kube-up. ([#38617](https://github.com/kubernetes/kubernetes/pull/38617), [@jszczepkowski](https://github.com/jszczepkowski)) +* Fixed validation of multizone cluster for GCE ([#38695](https://github.com/kubernetes/kubernetes/pull/38695), [@jszczepkowski](https://github.com/jszczepkowski)) +* Fix GCI mounter issue ([#38124](https://github.com/kubernetes/kubernetes/pull/38124), [@jingxu97](https://github.com/jingxu97)) +* Exit with error if <version number or publication> is not the final parameter. ([#37723](https://github.com/kubernetes/kubernetes/pull/37723), [@mtaufen](https://github.com/mtaufen)) +* GCI: Remove /var/lib/docker/network ([#37593](https://github.com/kubernetes/kubernetes/pull/37593), [@yujuhong](https://github.com/yujuhong)) +* Fix the equality checks for numeric values in cluster/gce/util.sh. ([#37638](https://github.com/kubernetes/kubernetes/pull/37638), [@roberthbailey](https://github.com/roberthbailey)) +* Modify GCI mounter to enable NFSv3 ([#37582](https://github.com/kubernetes/kubernetes/pull/37582), [@jingxu97](https://github.com/jingxu97)) +* Use gsed on the Mac ([#37562](https://github.com/kubernetes/kubernetes/pull/37562), [@roberthbailey](https://github.com/roberthbailey)) +* Bump GCI +* to gci-beta-56-9000-80-0 ([#41027](https://github.com/kubernetes/kubernetes/pull/41027), [@dchen1107](https://github.com/dchen1107)) +* to gci-stable-56-9000-84-2 ([#41819](https://github.com/kubernetes/kubernetes/pull/41819), [@dchen1107](https://github.com/dchen1107)) +* Bump GCE ContainerVM + * to container-vm-v20161208 ([release notes](https://cloud.google.com/compute/docs/containers/container_vms#changelog)) ([#38432](https://github.com/kubernetes/kubernetes/pull/38432), [@timstclair](https://github.com/timstclair)) + * to container-vm-v20170201 to address CVE-2016-9962. ([#40828](https://github.com/kubernetes/kubernetes/pull/40828), [@zmerlynn](https://github.com/zmerlynn)) + * to container-vm-v20170117 to pick up CVE fixes in base image. ([#40094](https://github.com/kubernetes/kubernetes/pull/40094), [@zmerlynn](https://github.com/zmerlynn)) + * to container-vm-v20170214 to address CVE-2016-9962. ([#41449](https://github.com/kubernetes/kubernetes/pull/41449), [@zmerlynn](https://github.com/zmerlynn)) + +### OpenStack +* Do not daemonize `salt-minion` for the openstack-heat provider. ([#40722](https://github.com/kubernetes/kubernetes/pull/40722), [@micmro](https://github.com/micmro)) +* OpenStack-Heat will now look for an image named "CentOS-7-x86_64-GenericCloud-1604". To restore the previous behavior set OPENSTACK_IMAGE_NAME="CentOS7" ([#40368](https://github.com/kubernetes/kubernetes/pull/40368), [@sc68cal](https://github.com/sc68cal)) +* Fixes a bug in the OpenStack-Heat kubernetes provider, in the handling of differences between the Identity v2 and Identity v3 APIs ([#40105](https://github.com/kubernetes/kubernetes/pull/40105), [@sc68cal](https://github.com/sc68cal)) + +### Container Images +* Update gcr.io/google-containers/rescheduler to v0.2.2, which uses busybox as a base image instead of ubuntu. ([#41911](https://github.com/kubernetes/kubernetes/pull/41911), [@ixdy](https://github.com/ixdy)) +* Remove unnecessary metrics (http/process/go) from being exposed by etcd-version-monitor ([#41807](https://github.com/kubernetes/kubernetes/pull/41807), [@shyamjvs](https://github.com/shyamjvs)) +* Align the hyperkube image to support running binaries at /usr/local/bin/ like the other server images ([#41017](https://github.com/kubernetes/kubernetes/pull/41017), [@luxas](https://github.com/luxas)) +* Bump up GLBC version from 0.9.0-beta to 0.9.1 ([#41037](https://github.com/kubernetes/kubernetes/pull/41037), [@bprashanth](https://github.com/bprashanth)) + +### Other Notable Changes +* The default client certificate generated by kube-up now contains the superuser `system:masters` group ([#39966](https://github.com/kubernetes/kubernetes/pull/39966), [@liggitt](https://github.com/liggitt)) +* Added support for creating HA clusters for centos using kube-up.sh. ([#39462](https://github.com/kubernetes/kubernetes/pull/39462), [@Shawyeok](https://github.com/Shawyeok)) +* Enable lazy inode table and journal initialization for ext3 and ext4 ([#38865](https://github.com/kubernetes/kubernetes/pull/38865), [@codablock](https://github.com/codablock)) +* Since `kubernetes.tar.gz` no longer includes client or server binaries, `cluster/kube-{up,down,push}.sh` now automatically download released binaries if they are missing. ([#38730](https://github.com/kubernetes/kubernetes/pull/38730), [@ixdy](https://github.com/ixdy)) +* fix broken cluster/centos and enhance the style ([#34002](https://github.com/kubernetes/kubernetes/pull/34002), [@xiaoping378](https://github.com/xiaoping378)) +* Set kernel.softlockup_panic =1 based on the flag. ([#38001](https://github.com/kubernetes/kubernetes/pull/38001), [@dchen1107](https://github.com/dchen1107)) +* configure local-up-cluster.sh to handle auth proxies ([#36838](https://github.com/kubernetes/kubernetes/pull/36838), [@deads2k](https://github.com/deads2k)) +* `kube-up.sh`/`kube-down.sh` no longer force update gcloud for provider=gce|gke. ([#36292](https://github.com/kubernetes/kubernetes/pull/36292), [@jlowdermilk](https://github.com/jlowdermilk)) +* Collect logs for dead kubelets too ([#37671](https://github.com/kubernetes/kubernetes/pull/37671), [@mtaufen](https://github.com/mtaufen)) + +## Changes to Addons + +### Dashboard +* Update dashboard version to v1.6.0 ([#43210](https://github.com/kubernetes/kubernetes/pull/43210), [@floreks](https://github.com/floreks)) + +### DNS +* Updates the dnsmasq cache/mux layer to be managed by dnsmasq-nanny. ([#41826](https://github.com/kubernetes/kubernetes/pull/41826), [@bowei](https://github.com/bowei)) + dnsmasq-nanny manages dnsmasq based on values from the + kube-system:kube-dns configmap: + ``` + "stubDomains": { + "acme.local": ["1.2.3.4"] + }, + ``` + + is a map of domain to list of nameservers for the domain. This is used + to inject private DNS domains into the kube-dns namespace. In the above + example, any DNS requests for `*.acme.local` will be served by the + ``` + nameserver 1.2.3.4. + ``` + + ``` + upstreamNameservers": ["8.8.8.8", "8.8.4.4"] + ``` + is a list of upstreamNameservers to use, overriding the configuration + specified in `/etc/resolv.conf`. +* `kube-dns` now runs using a separate `system:serviceaccount:kube-system:kube-dns` service account which is automatically bound to the correct RBAC permissions. ([#38816](https://github.com/kubernetes/kubernetes/pull/38816), [@deads2k](https://github.com/deads2k)) +* Use kube-dns:1.11.0 ([#39925](https://github.com/kubernetes/kubernetes/pull/39925), [@sadlil](https://github.com/sadlil)) + +### DNS Autoscaler +* Patch CVE-2016-8859 in gcr.io/google-containers/cluster-proportional-autoscaler-amd64 ([#42933](https://github.com/kubernetes/kubernetes/pull/42933), [@timstclair](https://github.com/timstclair)) + +### Cluster Autoscaler +* Allow the Horizontal Pod Autoscaler controller to talk to the metrics API and custom metrics API as standard APIs. ([#41824](https://github.com/kubernetes/kubernetes/pull/41824), [@DirectXMan12](https://github.com/DirectXMan12)) + +### Cluster Load Balancing +* Update defaultbackend image to 1.3 ([#42212](https://github.com/kubernetes/kubernetes/pull/42212), [@timstclair](https://github.com/timstclair)) + +### etcd Empty Dir Cleanup +* Base etcd-empty-dir-cleanup on busybox, run as nobody, and update to etcdctl 3.0.14 ([#41674](https://github.com/kubernetes/kubernetes/pull/41674), [@ixdy](https://github.com/ixdy)) + +### Fluentd +* Migrated fluentd addon to daemon set ([#32088](https://github.com/kubernetes/kubernetes/pull/32088), [@piosz](https://github.com/piosz)) +* Fluentd was migrated to Daemon Set, which targets nodes with beta.kubernetes.io/fluentd-ds-ready=true label. If you use fluentd in your cluster please make sure that the nodes with version 1.6+ contains this label. ([#42931](https://github.com/kubernetes/kubernetes/pull/42931), [@piosz](https://github.com/piosz)) +* Fluentd-gcp containers spawned by DaemonSet are now configured using ConfigMap ([#42126](https://github.com/kubernetes/kubernetes/pull/42126), [@crassirostris](https://github.com/crassirostris)) +* Cleanup fluentd-gcp image: rebase on debian-base, switch to upstream packages, remove fluent-ui & rails ([#41998](https://github.com/kubernetes/kubernetes/pull/41998), [@timstclair](https://github.com/timstclair)) +* On GCE, the apiserver audit log (`/var/log/kube-apiserver-audit.log`) will be sent through fluentd if enabled. It will go to the same place as `kube-apiserver.log`, but tagged as its own stream. ([#41360](https://github.com/kubernetes/kubernetes/pull/41360), [@enisoc](https://github.com/enisoc)) +* If `experimentalCriticalPodAnnotation` feature gate is set to true, fluentd pods will not be evicted by the kubelet. ([#41035](https://github.com/kubernetes/kubernetes/pull/41035), [@vishh](https://github.com/vishh)) +* fluentd config for GKE clusters updated: detect exceptions in container log streams and forward them as one log entry. ([#39656](https://github.com/kubernetes/kubernetes/pull/39656), [@thomasschickinger](https://github.com/thomasschickinger)) +* Make fluentd pods critical ([#39146](https://github.com/kubernetes/kubernetes/pull/39146), [@crassirostris](https://github.com/crassirostris)) +* Fluentd/Elastisearch add-on: correctly parse and index kubernetes labels ([#36857](https://github.com/kubernetes/kubernetes/pull/36857), [@Shrugs](https://github.com/Shrugs)) + +### Heapster +* Bumped Heapster to v1.3.0. ([#43298](https://github.com/kubernetes/kubernetes/pull/43298), [@piosz](https://github.com/piosz)) + * More details about the release https://github.com/kubernetes/heapster/releases/tag/v1.3.0 + +### Registry +* Use daemonset in docker registry add on ([#35582](https://github.com/kubernetes/kubernetes/pull/35582), [@surajssd](https://github.com/surajssd)) +* contribute deis/registry-proxy as a replacement for kube-registry-proxy ([#35797](https://github.com/kubernetes/kubernetes/pull/35797), [@bacongobbler](https://github.com/bacongobbler)) + +## External Dependency Version Information + +Continuous integration builds have used the following versions of external dependencies, however, this is not a strong recommendation and users should consult an appropriate installation or upgrade guide before deciding what versions of etcd, docker or rkt to use. + +* Docker versions 1.10.3, 1.11.2, 1.12.6 have been validated + * Docker version 1.12.6 known issues + * overlay2 driver not fully supported + * live-restore not fully supported + * no shared pid namespace support + * Docker version 1.11.2 known issues + * Kernel crash with Aufs storage driver on Debian Jessie ([#27885](https://github.com/kubernetes/kubernetes/issues/27885)) + which can be identified by the [node problem detector](http://kubernetes.io/docs/admin/node-problem/) + * Leaked File descriptors ([#275](https://github.com/docker/containerd/issues/275)) + * Additional memory overhead per container ([#21737](https://github.com/docker/docker/issues/21737)) + * Docker 1.10.3 contains [backports provided by RedHat](https://github.com/docker/docker/compare/v1.10.3...runcom:docker-1.10.3-stable) for known issues + * Support for Docker version 1.9.x has been removed +* rkt version 1.23.0+ + * known issues with the rkt runtime are [listed in the Getting Started Guide](http://kubernetes.io/docs/getting-started-guides/rkt/notes/) +* etcd version 3.0.17 diff --git a/releases/release-1.6/release_team.md b/releases/release-1.6/release_team.md index a1d9773f36c..efd8a520392 100644 --- a/releases/release-1.6/release_team.md +++ b/releases/release-1.6/release_team.md @@ -1,13 +1,13 @@ -| **Role** | **Name** | **GitHub/Slack ID** | -| ------ | ------ | ------ | -| Lead | Dan Gillespie | ethernetdan | -| Secondary |Caleb Miles | calebamiles | -| Features | Ihor Dvoretskyi | idvoretskyi | -| Release branch | Anthony Yeh | enisoc | -| Infra | Jeff Grafton | ixdy | -| Docs | Devin Donnelly | devin-donnelly | -| Bugs | Caleb Miles | calebamiles | -| Testing | Maru Newby | marun | -| Manual upgrade | Anthony Howe | anhowe | -| Automatic upgrade | Steve Kriss | steve_k | -| Spiritual advisor | Phillip Wittrock | pwittrock | +| **Role** | **Name** | **GitHub/Slack ID** | +| ------ | ------ | ------ | +| Lead | Dan Gillespie | ethernetdan | +| Secondary |Caleb Miles | calebamiles | +| Features | Ihor Dvoretskyi | idvoretskyi | +| Release branch | Anthony Yeh | enisoc | +| Infra | Jeff Grafton | ixdy | +| Docs | Devin Donnelly | devin-donnelly | +| Bugs | Caleb Miles | calebamiles | +| Testing | Maru Newby | marun | +| Manual upgrade | Anthony Howe | anhowe | +| Automatic upgrade | Steve Kriss | steve_k | +| Spiritual advisor | Phillip Wittrock | pwittrock | diff --git a/releases/release-1.7/README.md b/releases/release-1.7/README.md index 671d95dcc31..3aba0ba8bb9 100644 --- a/releases/release-1.7/README.md +++ b/releases/release-1.7/README.md @@ -1,81 +1,81 @@ -# Proposed timeline for 1.7 -We will begin the 1.7 release the first week of April 2017. - -The proposal below is similar in layout to the 1.5 and 1.6 plans with some -modifications: -- as before, key days aren't Fridays, since it can be hard to end milestones right up against weekends - -## 1.7 Release Schedule -- April 3 (Mon) coding start (7w) -- April 6th (Thurs): v1.7.0-alpha.1 -- April 19th (Weds): v1.7.0-alpha.2 -- May 1 (Mon) features repo freeze -- May 3 (Weds): v1.7.0-alpha.3 -- May 17(Weds): v1.7.0-alpha.4 -- May 31 (Weds): v1.7.0-beta.0 -- Jun 1 (Thurs): Code Freeze -- Jun 7 (Weds): v1.7.0-beta.1 -- June 14 (Weds): v1.7.0-beta.2 -- June 19th (Mon): v1.8.0-alpha.1 -- June 21th (Weds): v1.7.release-candidate -- June 28th (Weds): v1.7.0 (release!) - -## 1.7 Details - -### April 3 - May 31 -- 8 week coding period -- Release 1.7 alphas every 2 weeks -- April 6th (Thurs) v1.7.0-alpha.1 -- April 19th (Weds): v1.7.0-alpha.2 -- April 26 (Weds) features repo freeze: all features going into release should - have an associated issue in the features repo -- May 3 (Weds): v1.7.0-alpha.3 -- May 17(Weds): v1.7.0-alpha.4 -- May 31 (Weds): v1.7.0-beta.0 - * Create release branch. - * Set up CI for branch. - * Begin regular fast-forwards (at least daily to keep CI up-to-date). - -### June 1 (Thurs) - June 15(Thurs) -- June 1 Begin Feature Freeze - * Deadline for feature-related PRs to be in submit queue - * Add milestone restriction on submit queue. - * Community Feature Burndown Meetings held two or three times until release week (then every day). For those interested in joining please join [the Google Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) - * Focus on bugfix, test flakes and stabilization - * Ensure docs and release notes are written - * Identify all features going into the release, and make sure alpha, beta, ga is marked in features repo -- Jun 7 (Weds): v1.7.0-beta.1 cut -- June 14: End of Code Slush - * v1.7.0-beta.2 cut - * Final fast-forward of release branch. - * All changes for the release must now be cherrypicked in batches by branch - manager. - * Remove milestone restriction on submit queue. Bot drains backlog over the - weekend. - -### June 19 - June 28 -- June 19th (Mon): v1.8.0-alpha.1 -- June 21th (Weds): v1.7.release-candidate - * RC means no known release-blockers outstanding. - * Only accept cherrypicks for release-blockers. - * Announce on mailing lists, Twitter, etc. to beg people to try the RC for real. - * Perhaps managed k8s providers make rc.1 available on early access channels. - * More RCs as needed to verify release-blocking fixes. -- Release 1.7 on June 28 (Wednesday) - - -# Key features -[Feature tracking spreadsheet -link](https://docs.google.com/spreadsheets/d/1IJSTd3MHorwUt8i492GQaKKuAFsZppauT4v1LJ91WHY/edit?usp=sharing) - -## Notable operational changes - -1. Starting in the 1.7 release the [release team](https://github.com/kubernetes/sig-release/blob/master/release-1.7/release_team.md) - will use the following procedure to identify release blocking issues - 1. Any issues listed in the [v1.7 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.7) - will be considered release blocking. It is everyone's responsibility to move non blocking issues out of the `v1.7` milestone. Items targeting 1.7 can be moved into the `v1.7` milestone. - milestones **or the release will not ship** - -# Contact us -- [via slack](https://kubernetes.slack.com/messages/k8s-release/) -- [via email](mailto:kubernetes-release@googlegroups.com) +# Proposed timeline for 1.7 +We will begin the 1.7 release the first week of April 2017. + +The proposal below is similar in layout to the 1.5 and 1.6 plans with some +modifications: +- as before, key days aren't Fridays, since it can be hard to end milestones right up against weekends + +## 1.7 Release Schedule +- April 3 (Mon) coding start (7w) +- April 6th (Thurs): v1.7.0-alpha.1 +- April 19th (Weds): v1.7.0-alpha.2 +- May 1 (Mon) features repo freeze +- May 3 (Weds): v1.7.0-alpha.3 +- May 17(Weds): v1.7.0-alpha.4 +- May 31 (Weds): v1.7.0-beta.0 +- Jun 1 (Thurs): Code Freeze +- Jun 7 (Weds): v1.7.0-beta.1 +- June 14 (Weds): v1.7.0-beta.2 +- June 19th (Mon): v1.8.0-alpha.1 +- June 21th (Weds): v1.7.release-candidate +- June 28th (Weds): v1.7.0 (release!) + +## 1.7 Details + +### April 3 - May 31 +- 8 week coding period +- Release 1.7 alphas every 2 weeks +- April 6th (Thurs) v1.7.0-alpha.1 +- April 19th (Weds): v1.7.0-alpha.2 +- April 26 (Weds) features repo freeze: all features going into release should + have an associated issue in the features repo +- May 3 (Weds): v1.7.0-alpha.3 +- May 17(Weds): v1.7.0-alpha.4 +- May 31 (Weds): v1.7.0-beta.0 + * Create release branch. + * Set up CI for branch. + * Begin regular fast-forwards (at least daily to keep CI up-to-date). + +### June 1 (Thurs) - June 15(Thurs) +- June 1 Begin Feature Freeze + * Deadline for feature-related PRs to be in submit queue + * Add milestone restriction on submit queue. + * Community Feature Burndown Meetings held two or three times until release week (then every day). For those interested in joining please join [the Google Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) + * Focus on bugfix, test flakes and stabilization + * Ensure docs and release notes are written + * Identify all features going into the release, and make sure alpha, beta, ga is marked in features repo +- Jun 7 (Weds): v1.7.0-beta.1 cut +- June 14: End of Code Slush + * v1.7.0-beta.2 cut + * Final fast-forward of release branch. + * All changes for the release must now be cherrypicked in batches by branch + manager. + * Remove milestone restriction on submit queue. Bot drains backlog over the + weekend. + +### June 19 - June 28 +- June 19th (Mon): v1.8.0-alpha.1 +- June 21th (Weds): v1.7.release-candidate + * RC means no known release-blockers outstanding. + * Only accept cherrypicks for release-blockers. + * Announce on mailing lists, Twitter, etc. to beg people to try the RC for real. + * Perhaps managed k8s providers make rc.1 available on early access channels. + * More RCs as needed to verify release-blocking fixes. +- Release 1.7 on June 28 (Wednesday) + + +# Key features +[Feature tracking spreadsheet +link](https://docs.google.com/spreadsheets/d/1IJSTd3MHorwUt8i492GQaKKuAFsZppauT4v1LJ91WHY/edit?usp=sharing) + +## Notable operational changes + +1. Starting in the 1.7 release the [release team](https://github.com/kubernetes/sig-release/blob/master/release-1.7/release_team.md) + will use the following procedure to identify release blocking issues + 1. Any issues listed in the [v1.7 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.7) + will be considered release blocking. It is everyone's responsibility to move non blocking issues out of the `v1.7` milestone. Items targeting 1.7 can be moved into the `v1.7` milestone. + milestones **or the release will not ship** + +# Contact us +- [via slack](https://kubernetes.slack.com/messages/k8s-release/) +- [via email](mailto:kubernetes-release@googlegroups.com) diff --git a/releases/release-1.7/features.csv b/releases/release-1.7/features.csv index 8dafb0ec0cd..f85689a1380 100644 --- a/releases/release-1.7/features.csv +++ b/releases/release-1.7/features.csv @@ -1,34 +1,34 @@ -Alpha,18,,yes,21,,,,,yes,23, -Beta,6,,no,7,,,,,no,0, -Stable,4,,unknown,0,,,,,closed,1, -TOTAL,28,,TOTAL,28,21,3,Needs Review,0,0,, -,,,,,,,Open Issues,0,0,, -Feature Name,Stage,SIG,Assignee,Needs Docs?,k8s.io Docs PR,additional PR,One Line Release Note Description,Needs Doc Review,Needs Tech Review,Merged,Notes -Kubernetes should be able to easily integrate external policy control,Alpha,SIG-API-machinery,smarterclayton,yes,#4092,,Add extensible external admission control,Complete,Complete,yes,Follow-up PRs will be used to improve this doc. -"CustomResourceDefinitions, née ThirdPartyResources",Beta,SIG-API-machinery,deads2k,yes,#4071,#3940,"ThirdPartyResource is deprecated. Please migrate to the successor, CustomResourceDefinition.",Complete,Complete,yes, -API Aggregation,Beta,SIG-API-machinery,cheftako,yes,#4173,,User-provided apiservers can be aggregated (served along with) the rest of the Kubernetes API,Complete,Complete,yes, -Hashing collision avoidance mechanism for Deployments,Alpha,SIG-Apps,kargakis,no,,,Hashing collision avoidance mechanism for Deployments,n/a,n/a,n/a, -StatefulSets should support a burst mode for faster scale up / down ...,Alpha,SIG-Apps,smarterclayton,yes,#4162,,"StatefulSet authors should be able to relax the ordering and parallelism policies for software that can safely support rapid, out-of-order changes.",Complete,Complete,closed,Folded into #4174 -PodDisruptionBudget documentation Improvements,Beta,SIG-Apps,etune,yes,#4140,#3885,Adds a MaxUnavailable field to PodDisruptionBudget,Complete,Complete,yes, -StatefulSet Upgrades,Beta,SIG-Apps,kow3ns,yes,#4174,,"StatefulSets currently do not support upgrades, which makes it limiting for lot of Enterprise use cases. This feature will track supporting Upgrade for StatefulSets on the server side declaratively.",Complete,Complete,yes, -DaemonSet updates,Beta,SIG-Apps,janetkuo,yes,#4098,,DaemonSet history and rollback feature is now supported.,Complete,Complete,yes, -Kubelet Server TLS Certificate Rotation,Alpha,SIG-Auth,jcbsmpsn,no,,,Rotation of the server TLS certificate on the kubelet.,n/a,n/a,n/a, -Kubelet Client TLS Certificate Rotation,Alpha,SIG-Auth,jcbsmpsn,no,,,Rotation of the client TLS certificate on the kubelet.,n/a,n/a,n/a, -Encrypt secrets in etcd,Alpha,SIG-Auth,smarterclayton,yes,#4181,#4223,Encrypt secrets stored in etcd.,Complete,Complete,yes, -Limit node access to API,Beta,SIG-Auth,liggitt,yes,#4077,,"A new Node authorization mode and NodeRestriction admission plugin, when used in combination, limit nodes' access to specific APIs, so that they may only modify their own Node API object, only modify Pod objects bound to themselves, and only retrieve secrets and configmaps referenced by pods bound to themselves.",Complete,Complete,yes, -HPA Status Conditions,Alpha,SIG-Autoscaling,directxman12,yes,#4118,,Adds status conditions to the HorizontalPodAutoscaler,Complete,Complete,yes, -"Support out-of-tree and out-of-process cloud providers, a.k.a pluggable cloud providers.",Alpha,SIG-ClusterLifecycle,wlan0,yes,#47934,,"Support out-of-tree and out-of-process cloud providers, a.k.a pluggable cloud providers.",Complete,Complete,yes,This is an auto-generated doc in the kubernetes/kubernetes repo. -Policy-based Federated Resource Placement,Alpha,SIG-Federation,tsandall,yes,#4075,,The federation-apiserver now supports a SchedulingPolicy admission controller that enables policy-based control over placement of federated resources.,Complete,Complete,yes, -Generalized Cluster Selection and Weighting,Alpha,SIG-Federation,emaildanwilson,yes,#4214,,Alpha support for directing objects across the federated clusters.,Complete,Complete,yes, -Metrics Server (for resource metrics API) ,Alpha,SIG-Instrumentation,piosz,no,,,Introduces a lightweight monitoring component for serving the core resource metrics API used by the Horizontal Pod Autoscaler and other components.,n/a,n/a,n/a, -NetworkPolicy,Stable,SIG-Network,dnardo,yes,#4003,,NetworkPolicy promoted to GA,Complete,Complete,yes, -GCP Cloud Provider: Source IP preservation for Virtual IPs,Stable,SIG-Network,mrhohn,yes,#4093,,Source IP Preservation - change Cloud load-balancer strategy to health-checks and respond to health check only on nodes that host pods for the service.,Complete,Complete,yes, -Containerd CRI Integration,Alpha,SIG-Node,Random-Liu,no,,,"Alpha integration with containerd 1.0, which supports basic pod lifecycle and image management. (TODO: A link to cri-containerd alpha release note)",n/a,n/a,n/a,There will be a guidance document in cri-containerd repo. -CRI validation test suite,Alpha,SIG-Node,feiskyer,yes,#725,,Provide a serial of common validation test suites for Kubelet CRI.,Complete,Complete,yes, -Enhance the Container Runtime Interface,Alpha,SIG-Node,yujuhong ,no,,,New RPC calls are added to the container runtime interface to retrieve container metrics from the runtime.,n/a,n/a,n/a, -Bind method in scheduler extender,Alpha,SIG-Scheduling,ravigadde,no,,,Support for delegating pod binding to a scheduler extender,n/a,n/a,n/a, -Local Ephemeral Storage Support (Capacity Isolation Resource Management),Alpha,SIG-Storage,jingxu97,yes,#4145,,"This feature adds capacity isolation support for local storage at node, container, and volume levels.",Complete,Complete,yes, -Local Persistent Storage Support,Alpha,SIG-Storage,msau,yes,#4050,,Make locally attached (non-network attached) storage available as a persistent volume source.,Complete,Complete,yes, -Cloud Provider Storage Metrics,Stable,SIG-Storage,gnufied,yes,#4138,,Add support for cloudprovider metrics for storage API calls,Complete,Complete,yes, -StorageOS Volume Plugin,Stable,SIG-Storage,croomes,yes,#4095,,Volume plugin for StorageOS provides highly-available cluster-wide persistent volumes from local or attached node storage.,Complete,Complete,yes, +Alpha,18,,yes,21,,,,,yes,23, +Beta,6,,no,7,,,,,no,0, +Stable,4,,unknown,0,,,,,closed,1, +TOTAL,28,,TOTAL,28,21,3,Needs Review,0,0,, +,,,,,,,Open Issues,0,0,, +Feature Name,Stage,SIG,Assignee,Needs Docs?,k8s.io Docs PR,additional PR,One Line Release Note Description,Needs Doc Review,Needs Tech Review,Merged,Notes +Kubernetes should be able to easily integrate external policy control,Alpha,SIG-API-machinery,smarterclayton,yes,#4092,,Add extensible external admission control,Complete,Complete,yes,Follow-up PRs will be used to improve this doc. +"CustomResourceDefinitions, née ThirdPartyResources",Beta,SIG-API-machinery,deads2k,yes,#4071,#3940,"ThirdPartyResource is deprecated. Please migrate to the successor, CustomResourceDefinition.",Complete,Complete,yes, +API Aggregation,Beta,SIG-API-machinery,cheftako,yes,#4173,,User-provided apiservers can be aggregated (served along with) the rest of the Kubernetes API,Complete,Complete,yes, +Hashing collision avoidance mechanism for Deployments,Alpha,SIG-Apps,kargakis,no,,,Hashing collision avoidance mechanism for Deployments,n/a,n/a,n/a, +StatefulSets should support a burst mode for faster scale up / down ...,Alpha,SIG-Apps,smarterclayton,yes,#4162,,"StatefulSet authors should be able to relax the ordering and parallelism policies for software that can safely support rapid, out-of-order changes.",Complete,Complete,closed,Folded into #4174 +PodDisruptionBudget documentation Improvements,Beta,SIG-Apps,etune,yes,#4140,#3885,Adds a MaxUnavailable field to PodDisruptionBudget,Complete,Complete,yes, +StatefulSet Upgrades,Beta,SIG-Apps,kow3ns,yes,#4174,,"StatefulSets currently do not support upgrades, which makes it limiting for lot of Enterprise use cases. This feature will track supporting Upgrade for StatefulSets on the server side declaratively.",Complete,Complete,yes, +DaemonSet updates,Beta,SIG-Apps,janetkuo,yes,#4098,,DaemonSet history and rollback feature is now supported.,Complete,Complete,yes, +Kubelet Server TLS Certificate Rotation,Alpha,SIG-Auth,jcbsmpsn,no,,,Rotation of the server TLS certificate on the kubelet.,n/a,n/a,n/a, +Kubelet Client TLS Certificate Rotation,Alpha,SIG-Auth,jcbsmpsn,no,,,Rotation of the client TLS certificate on the kubelet.,n/a,n/a,n/a, +Encrypt secrets in etcd,Alpha,SIG-Auth,smarterclayton,yes,#4181,#4223,Encrypt secrets stored in etcd.,Complete,Complete,yes, +Limit node access to API,Beta,SIG-Auth,liggitt,yes,#4077,,"A new Node authorization mode and NodeRestriction admission plugin, when used in combination, limit nodes' access to specific APIs, so that they may only modify their own Node API object, only modify Pod objects bound to themselves, and only retrieve secrets and configmaps referenced by pods bound to themselves.",Complete,Complete,yes, +HPA Status Conditions,Alpha,SIG-Autoscaling,directxman12,yes,#4118,,Adds status conditions to the HorizontalPodAutoscaler,Complete,Complete,yes, +"Support out-of-tree and out-of-process cloud providers, a.k.a pluggable cloud providers.",Alpha,SIG-ClusterLifecycle,wlan0,yes,#47934,,"Support out-of-tree and out-of-process cloud providers, a.k.a pluggable cloud providers.",Complete,Complete,yes,This is an auto-generated doc in the kubernetes/kubernetes repo. +Policy-based Federated Resource Placement,Alpha,SIG-Federation,tsandall,yes,#4075,,The federation-apiserver now supports a SchedulingPolicy admission controller that enables policy-based control over placement of federated resources.,Complete,Complete,yes, +Generalized Cluster Selection and Weighting,Alpha,SIG-Federation,emaildanwilson,yes,#4214,,Alpha support for directing objects across the federated clusters.,Complete,Complete,yes, +Metrics Server (for resource metrics API) ,Alpha,SIG-Instrumentation,piosz,no,,,Introduces a lightweight monitoring component for serving the core resource metrics API used by the Horizontal Pod Autoscaler and other components.,n/a,n/a,n/a, +NetworkPolicy,Stable,SIG-Network,dnardo,yes,#4003,,NetworkPolicy promoted to GA,Complete,Complete,yes, +GCP Cloud Provider: Source IP preservation for Virtual IPs,Stable,SIG-Network,mrhohn,yes,#4093,,Source IP Preservation - change Cloud load-balancer strategy to health-checks and respond to health check only on nodes that host pods for the service.,Complete,Complete,yes, +Containerd CRI Integration,Alpha,SIG-Node,Random-Liu,no,,,"Alpha integration with containerd 1.0, which supports basic pod lifecycle and image management. (TODO: A link to cri-containerd alpha release note)",n/a,n/a,n/a,There will be a guidance document in cri-containerd repo. +CRI validation test suite,Alpha,SIG-Node,feiskyer,yes,#725,,Provide a serial of common validation test suites for Kubelet CRI.,Complete,Complete,yes, +Enhance the Container Runtime Interface,Alpha,SIG-Node,yujuhong ,no,,,New RPC calls are added to the container runtime interface to retrieve container metrics from the runtime.,n/a,n/a,n/a, +Bind method in scheduler extender,Alpha,SIG-Scheduling,ravigadde,no,,,Support for delegating pod binding to a scheduler extender,n/a,n/a,n/a, +Local Ephemeral Storage Support (Capacity Isolation Resource Management),Alpha,SIG-Storage,jingxu97,yes,#4145,,"This feature adds capacity isolation support for local storage at node, container, and volume levels.",Complete,Complete,yes, +Local Persistent Storage Support,Alpha,SIG-Storage,msau,yes,#4050,,Make locally attached (non-network attached) storage available as a persistent volume source.,Complete,Complete,yes, +Cloud Provider Storage Metrics,Stable,SIG-Storage,gnufied,yes,#4138,,Add support for cloudprovider metrics for storage API calls,Complete,Complete,yes, +StorageOS Volume Plugin,Stable,SIG-Storage,croomes,yes,#4095,,Volume plugin for StorageOS provides highly-available cluster-wide persistent volumes from local or attached node storage.,Complete,Complete,yes, Audit Logging for k8s,Alpha,SIG-Auth,timstclair,yes,#4101,,"The Kubernetes apiserver can generate audit logs for all requests, and export to a pluggable backend.",Complete,Complete,yes, \ No newline at end of file diff --git a/releases/release-1.7/release-1.7.md b/releases/release-1.7/release-1.7.md index 7e6af0b897d..d803ddd0e25 100644 --- a/releases/release-1.7/release-1.7.md +++ b/releases/release-1.7/release-1.7.md @@ -1 +1 @@ -Please see [README.md](README.md) instead +Please see [README.md](README.md) instead diff --git a/releases/release-1.7/release-notes-draft.md b/releases/release-1.7/release-notes-draft.md index b646d7043d9..214d69523bb 100644 --- a/releases/release-1.7/release-notes-draft.md +++ b/releases/release-1.7/release-notes-draft.md @@ -1,1069 +1,1069 @@ -## **Major Themes** - -Kubernetes 1.7 is a milestone release that adds security, stateful application, and extensibility features motivated by widespread production use of Kubernetes. - -Security enhancements in this release include encrypted secrets (alpha), network policy for pod-to-pod communication, the node authorizer to limit Kubelet access to API resources, and Kubelet client / server TLS certificate rotation (alpha). - -Major features for stateful applications include automated updates to StatefulSets, enhanced updates for DaemonSets, a burst mode for faster StatefulSets scaling, and (alpha) support for local storage. - -Extensibility features include API aggregation (beta), CustomResourceDefinitions (beta) in favor of ThirdPartyResources, support for extensible admission controllers (alpha), pluggable cloud providers (alpha), and container runtime interface (CRI) enhancements. - -## **Action Required Before Upgrading** - -### Network - -* NetworkPolicy has been promoted from extensions/v1beta1 to the new networking.k8s.io/v1 API group. The structure remains unchanged from the v1beta1 API. The net.beta.kubernetes.io/network-policy annotation on Namespaces (used to opt in to isolation) has been removed. Instead, isolation is now determined on a per-pod basis. A NetworkPolicy may target a pod for isolation by including the pod in its spec.podSelector. Targeted Pods accept the traffic specified in the respective NetworkPolicy (and nothing else). Pods not targeted by any NetworkPolicy accept all traffic by default. ([#39164](https://github.com/kubernetes/kubernetes/pull/39164), [@danwinship](https://github.com/danwinship)) - - **Action Required:** When upgrading to Kubernetes 1.7 (and a [network plugin](https://kubernetes.io/docs/tasks/administer-cluster/declare-network-policy/) that supports the new NetworkPolicy v1 semantics), you should consider the following. - - The v1beta1 API used an annotation on Namespaces to activate the DefaultDeny policy for an entire Namespace. To activate default deny in the v1 API, you can create a NetworkPolicy that matches all Pods but does not allow any traffic: - - ```yaml - kind: NetworkPolicy - apiVersion: networking.k8s.io/v1 - metadata: - name: default-deny - spec: - podSelector: - ``` - - This will ensure that Pods that aren't matched by any other NetworkPolicy will continue to be fully-isolated, as they were in v1beta1. - - In Namespaces that previously did not have the "DefaultDeny" annotation, you should delete any existing NetworkPolicy objects. These had no effect in the v1beta1 API, but with v1 semantics they might cause some traffic to be unintentionally blocked. - - -### Storage - -* Alpha volume provisioning is removed and default storage class should be used instead. ([#44090](https://github.com/kubernetes/kubernetes/pull/44090), [@NickrenREN](https://github.com/NickrenREN)) - -* Portworx volume driver no longer has to run on the master. ([#45518](https://github.com/kubernetes/kubernetes/pull/45518), [@harsh-px](https://github.com/harsh-px)) - -* Default behavior in Cinder storageclass is changed. If availability is not specified, the zone is chosen by algorithm. It makes possible to spread stateful pods across many zones. ([#44798](https://github.com/kubernetes/kubernetes/pull/44798), [@zetaab](https://github.com/zetaab)) - -* PodSpecs containing parent directory references such as `..` (for example, `../bar`) in hostPath volume path or in volumeMount subpaths must be changed to the simple absolute path. Backsteps `..` are no longer allowed.([#47290](https://github.com/kubernetes/kubernetes/pull/47290), [@jhorwit2](https://github.com/jhorwit2)). - - -### API Machinery - -* The Namespace API object no longer supports the deletecollection operation. ([#46407](https://github.com/kubernetes/kubernetes/pull/46407), [@liggitt](https://github.com/liggitt)) - -* The following alpha API groups were unintentionally enabled by default in previous releases, and will no longer be enabled by default in v1.8: ([#47690](https://github.com/kubernetes/kubernetes/pull/47690), [@caesarxuchao](https://github.com/caesarxuchao)) - - * rbac.authorization.k8s.io/v1alpha1 - - * settings.k8s.io/v1alpha1 - - * If you wish to continue using them in v1.8, please enable them explicitly using the `--runtime-config` flag on the apiserver (for example, `--runtime-config="rbac.authorization.k8s.io/v1alpha1,settings.k8s.io/v1alpha1"`) - -* `cluster/update-storage-objects.sh` now supports updating StorageClasses in etcd to storage.k8s.io/v1. You must do this prior to upgrading to 1.8. ([#46116](https://github.com/kubernetes/kubernetes/pull/46116), [@ncdc](https://github.com/ncdc)) - - -### Controller Manager - -* kube-controller-manager has dropped support for the `--insecure-experimental-approve-all-kubelet-csrs-for-group` flag. It is accepted in 1.7, but ignored. Instead, the csrapproving controller uses authorization checks to determine whether to approve certificate signing requests: ([#45619](https://github.com/kubernetes/kubernetes/pull/45619), [@mikedanese](https://github.com/mikedanese)) - - * Before upgrading, users must ensure their controller manager will enable the csrapproving controller, create an RBAC ClusterRole and ClusterRoleBinding to approve CSRs for the same group, then upgrade. Example roles to enable the equivalent behavior can be found in the [TLS bootstrapping](https://kubernetes.io/docs/admin/kubelet-tls-bootstrapping/) documentation. - - -### kubectl (CLI) -* `kubectl create role` and `kubectl create clusterrole` invocations must be updated to specify multiple resource names as repeated `--resource-name` arguments instead of comma-separated arguments to a single `--resource-name` argument. E.g. `--resource-name=x,y` must become `--resource-name x --resource-name y` ([#44950](https://github.com/kubernetes/kubernetes/pull/44950), [@xilabao](https://github.com/xilabao)) - -* `kubectl create rolebinding` and `kubectl create clusterrolebinding` invocations must be updated to specify multiple subjects as repeated `--user`, `--group`, or `--serviceaccount` arguments instead of comma-separated arguments to a single `--user`, `--group`, or `--serviceaccount`. E.g. `--user=x,y` must become `--user x --user y` ([#43903](https://github.com/kubernetes/kubernetes/pull/43903), [@xilabao](https://github.com/xilabao)) - - -### kubeadm - -* kubeadm: Modifications to cluster-internal resources installed by kubeadm will be overwritten when upgrading from v1.6 to v1.7. ([#47081](https://github.com/kubernetes/kubernetes/pull/47081), [@luxas](https://github.com/luxas)) - -* kubeadm deb/rpm packages: cAdvisor doesn't listen on `0.0.0.0:4194` without authentication/authorization because of the possible information leakage. The cAdvisor API can still be accessed via `https://{node-ip}:10250/stats/`, though. ([kubernetes/release#356](https://github.com/kubernetes/release/pull/356), [@luxas](https://github.com/luxas)) - - -### Cloud Providers - -* Azure: Container permissions for provisioned volumes have changed to private. If you have existing Azure volumes that were created by Kubernetes v1.6.0-v1.6.5, you should change the permissions on them manually. ([#47605](https://github.com/kubernetes/kubernetes/pull/47605), [@brendandburns](https://github.com/brendandburns)) - -* GKE/GCE: New and upgraded 1.7 GCE/GKE clusters no longer have an RBAC ClusterRoleBinding that grants the cluster-admin ClusterRole to the default service account in the kube-system Namespace. ([#46750](https://github.com/kubernetes/kubernetes/pull/46750), [@cjcullen](https://github.com/cjcullen)). If this permission is still desired, run the following command to explicitly grant it, either before or after upgrading to 1.7: - ``` - kubectl create clusterrolebinding kube-system-default --serviceaccount=kube-system:default --clusterrole=cluster-admin - ``` - -## **Known Issues** - -Populated via [v1.7.x known issues / FAQ accumulator](https://github.com/kubernetes/kubernetes/issues/46733) - -* The kube-apiserver discovery APIs (for example, `/apis`) return information about the API groups being served, and can change dynamically. -During server startup, prior to the server reporting healthy (via `/healthz`), not all API groups may be reported. -Wait for the server to report healthy (via `/healthz`) before depending on the information provided by the discovery APIs. -Additionally, since the information returned from the discovery APIs may change dynamically, a cache of the results should not be considered authoritative. -ETag support is planned in a future version to facilitate client caching. -([#47977](https://github.com/kubernetes/kubernetes/issues/47977), [#44957](https://github.com/kubernetes/kubernetes/issues/44957)) - -* The DaemonSet controller will evict running Pods that do not tolerate the NoSchedule taint if the taint is added to a Node. There is an open PR ([#48189](https://github.com/kubernetes/kubernetes/pull/48189)) to resolve this issue, but as this issue also exists in 1.6, and as we do not wish to risk release stability by merging it directly prior to a release without sufficient testing, we have decided to defer merging the PR until the next point release for each minor version ([#48190](https://github.com/kubernetes/kubernetes/issues/48190)). - -* Protobuf serialization does not distinguish between `[]` and `null`. -API fields previously capable of storing and returning either `[]` and `null` via JSON API requests (for example, the Endpoints `subsets` field) -can now store only `null` when created using the protobuf content-type or stored in etcd using protobuf serialization (the default in 1.6). -JSON API clients should tolerate `null` values for such fields, and treat `null` and `[]` as equivalent in meaning unless specifically documented otherwise for a particular field. ([#44593](https://github.com/kubernetes/kubernetes/issues/44593)) - -## **Deprecations** - -### Cluster provisioning scripts -* cluster/ubuntu: Removed due to [deprecation](https://github.com/kubernetes/kubernetes/tree/master/cluster#cluster-configuration) and lack of maintenance. ([#44344](https://github.com/kubernetes/kubernetes/pull/44344), [@mikedanese](https://github.com/mikedanese)) - -* cluster/aws: Removed due to [deprecation](https://github.com/kubernetes/kubernetes/pull/38772) and lack of maintenance. ([#42196](https://github.com/kubernetes/kubernetes/pull/42196), [@zmerlynn](https://github.com/zmerlynn)) - - -### Client libraries -* Swagger 1.2 spec (`/swaggerapi/*`) is deprecated. Please use OpenAPI instead. - -### DaemonSet -* DaemonSet’s spec.templateGeneration has been deprecated. ([#45924](https://github.com/kubernetes/kubernetes/pull/45924), [@janetkuo](https://github.com/janetkuo)) - -### kube-proxy -* In 1.7, the kube-proxy component has been converted to use a configuration file. The old flags still work in 1.7, but they are being deprecated and will be removed in a future release. Cluster administrators are advised to switch to using the configuration file, but no action is strictly necessary in 1.7. ([#34727](https://github.com/kubernetes/kubernetes/pull/34727), [@ncdc](https://github.com/ncdc)) - -### Namespace -* The Namespace API object no longer supports the deletecollection operation. ([#46407](https://github.com/kubernetes/kubernetes/pull/46407), [@liggitt](https://github.com/liggitt)) - - -### Scheduling -* If you are using `AffinityInAnnotations=true` in `--feature-gates`, then the 1.7 release is your last opportunity to convert from specifying affinity/anti-affinity using the scheduler.alpha.kubernetes.io/affinity annotation on Pods, to using the Affinity field of PodSpec. Support for the alpha version of node and pod affinity (which uses the scheduler.alpha.kubernetes.io/affinity annotations on Pods) is going away **in Kubernetes 1.8** (not this release, but the next release). If you have not enabled AffinityInAnnotations=true in `--feature-gates`, then this change does not affect you. - -## **Notable Features** - -Features for this release were tracked via the use of the [kubernetes/features](https://github.com/kubernetes/features) issues repo. Each Feature issue is owned by a Special Interest Group from [kubernetes/community](https://github.com/kubernetes/community) - -## Kubefed - -* Deprecate the `--secret-name` flag from `kubefed join`, instead generating the secret name arbitrarily. ([#42513](https://github.com/kubernetes/kubernetes/pull/42513), [@perotinus](https://github.com/perotinus)) - - -### **Kubernetes API** -#### User Provided Extensions -* [beta] ThirdPartyResource is deprecated. Please migrate to the successor, CustomResourceDefinition. For more information, see [Custom Resources](https://kubernetes.io/docs/concepts/api-extension/custom-resources/) and [Migrate a ThirdPartyResource to CustomResourceDefinition](https://kubernetes.io/docs/tasks/access-kubernetes-api/migrate-third-party-resource/). - -* [beta] User-provided apiservers can be aggregated (served along with) the rest of the Kubernetes API. See [Extending the Kubernetes API with the aggregation layer](https://kubernetes.io/docs/concepts/api-extension/apiserver-aggregation/), [Configure the aggregation layer](https://kubernetes.io/docs/tasks/access-kubernetes-api/configure-aggregation-layer/), and [Setup an extension API server](https://kubernetes.io/docs/tasks/access-kubernetes-api/setup-extension-api-server/). - -* [alpha] Adding admissionregistration API group which enables dynamic registration of initializers and external admission webhooks. ([#46294](https://github.com/kubernetes/kubernetes/pull/46294), [@caesarxuchao](https://github.com/caesarxuchao)) - - -### **Application Deployment** -#### StatefulSet -* [beta] StatefulSet supports [RollingUpdate](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#rolling-updates) and [OnDelete](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#on-delete) update strategies. - -* [alpha] StatefulSet authors should be able to relax the [ordering](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#orderedready-pod-management) and [parallelism](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#parallel-pod-management) policies for software that can safely support rapid, out-of-order changes. - -#### DaemonSet -* [beta] DaemonSet supports history and rollback. See [Performing a Rollback on a DaemonSet](https://kubernetes.io/docs/tasks/manage-daemon/rollback-daemon-set/). - -#### Deployments -* [beta] Deployments uses a hashing collision avoidance mechanism that ensures new rollouts will not block on hashing collisions anymore. ([kubernetes/features#287](https://github.com/kubernetes/features/issues/287)) - -#### PodDisruptionBudget -* [beta] PodDisruptionBudget has a new field MaxUnavailable, which allows users to specify the maximum number of disruptions that can be tolerated during eviction. For more information, see [Pod Disruptions](https://kubernetes.io/docs/concepts/workloads/pods/disruptions/) and [Specifying a Disruption Budget for your Application](https://kubernetes.io/docs/tasks/run-application/configure-pdb/). - - -### **Security** -#### Admission Control -* [alpha] Add [extensible external admission control](https://kubernetes.io/docs/admin/extensible-admission-controllers/). - -#### TLS Bootstrapping -* [alpha] Rotation of the server TLS certificate on the kubelet. See [TLS bootstrapping - approval controller](https://kubernetes.io/docs/admin/kubelet-tls-bootstrapping/#approval-controller). - -* [alpha] Rotation of the client TLS certificate on the kubelet. See [TLS bootstrapping - kubelet configuration](https://kubernetes.io/docs/admin/kubelet-tls-bootstrapping/#kubelet-configuration). - -* [beta] [Kubelet TLS Bootstrap](https://kubernetes.io/docs/admin/kubelet-tls-bootstrapping/#kubelet-configuration) - -#### Audit Logging -* [alpha] Advanced Auditing enhances the Kubernetes API [audit logging](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#audit-logs) capabilities through a customizable policy, pluggable audit backends, and richer audit data. - -#### Encryption at Rest -* [alpha] Encrypt secrets stored in etcd. For more information, see [Securing a Cluster](https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/) and [Encrypting data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/). - -#### Node Authorization -* [beta] A new Node authorization mode and NodeRestriction admission plugin, when used in combination, limit nodes' access to specific APIs, so that they may only modify their own Node API object, only modify Pod objects bound to themselves, and only retrieve secrets and configmaps referenced by pods bound to themselves. See [Using Node Authorization](https://kubernetes.io/docs/admin/authorization/node/) for more information. - - -### **Application Autoscaling** -#### Horizontal Pod Autoscaler -* [alpha] [HPA Status Conditions](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/#appendix-horizontal-pod-autoscaler-status-conditions). - - -### **Cluster Lifecycle** -#### kubeadm -* [alpha] Manual [upgrades for kubeadm from v1.6 to v1.7](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm-upgrade-1-7/). Automated upgrades ([kubernetes/features#296](https://github.com/kubernetes/features/issues/296)) are targeted for v1.8. - -#### Cloud Provider Support -* [alpha] Improved support for out-of-tree and out-of-process cloud providers, a.k.a pluggable cloud providers. See [Build and Run cloud-controller-manager](https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller) documentation. - - -### **Cluster Federation** -#### Placement Policy -* [alpha] The federation-apiserver now supports a SchedulingPolicy admission controller that enables policy-based control over placement of federated resources. For more information, see [Set up placement policies in Federation](https://kubernetes.io/docs/tasks/federation/set-up-placement-policies-federation/). - -#### Cluster Selection -* [alpha] Federation [ClusterSelector annotation](https://kubernetes.io/docs/tasks/administer-federation/cluster/#clusterselector-annotation) to direct objects to federated clusters with matching labels. - - -### **Instrumentation** -#### Core Metrics API -* [alpha] Introduces a lightweight monitoring component for serving the core resource metrics API used by the Horizontal Pod Autoscaler and other components ([kubernetes/features#271](https://github.com/kubernetes/features/issues/271)) - - -### **Internationalization** - -* Add Traditional Chinese translation for kubectl ([#46559](https://github.com/kubernetes/kubernetes/pull/46559), [@warmchang](https://github.com/warmchang)) - -* Add Japanese translation for kubectl ([#46756](https://github.com/kubernetes/kubernetes/pull/46756), [@girikuncoro](https://github.com/girikuncoro)) - -* Add Simplified Chinese translation for kubectl ([#45573](https://github.com/kubernetes/kubernetes/pull/45573), [@shiywang](https://github.com/shiywang)) - -### **kubectl (CLI)** -* Features - - * `kubectl logs` supports specifying a container name when using label selectors ([#44282](https://github.com/kubernetes/kubernetes/pull/44282), [@derekwaynecarr](https://github.com/derekwaynecarr)) - - * `kubectl rollout` supports undo and history for DaemonSet ([#46144](https://github.com/kubernetes/kubernetes/pull/46144), [@janetkuo](https://github.com/janetkuo)) - - * `kubectl rollout` supports status and history for StatefulSet ([#46669](https://github.com/kubernetes/kubernetes/pull/46669), [@kow3ns](https://github.com/kow3ns)). - - * Implement `kubectl get controllerrevisions` ([#46655](https://github.com/kubernetes/kubernetes/pull/46655), [@janetkuo](https://github.com/janetkuo)) - - * `kubectl create clusterrole` supports `--non-resource-url` ([#45809](https://github.com/kubernetes/kubernetes/pull/45809), [@CaoShuFeng](https://github.com/CaoShuFeng)) - - * `kubectl logs` and `kubectl attach` support specifying a wait timeout with `--pod-running-timeout` - - * ([#41813](https://github.com/kubernetes/kubernetes/pull/41813), [@shiywang](https://github.com/shiywang)) - - * New commands - - * Add `kubectl config rename-context` ([#46114](https://github.com/kubernetes/kubernetes/pull/46114), [@arthur0](https://github.com/arthur0)) - - * Add `kubectl apply edit-last-applied` subcommand ([#42256](https://github.com/kubernetes/kubernetes/pull/42256), [@shiywang](https://github.com/shiywang)) - - * Strategic Merge Patch - - * Reference docs now display the patch type and patch merge key used by `kubectl apply` to merge and identify unique elements in arrays. - - * `kubectl edit` and `kubectl apply` will keep the ordering of elements in merged lists ([#45980](https://github.com/kubernetes/kubernetes/pull/45980), [@mengqiy](https://github.com/mengqiy)) - - * New patch directive (retainKeys) to specifying clearing fields missing from the request ([#44597](https://github.com/kubernetes/kubernetes/pull/44597), [@mengqiy](https://github.com/mengqiy)) - - * Open API now includes strategic merge patch tags (previously only in go struct tags) ([#44121](https://github.com/kubernetes/kubernetes/pull/44121), [@mbohlool](https://github.com/mbohlool)) - - * Plugins - - * Introduces the ability to extend kubectl by adding third-party plugins. Developer preview, please refer to the documentation for instructions about how to use it. ([#37499](https://github.com/kubernetes/kubernetes/pull/37499), [@fabianofranz](https://github.com/fabianofranz)) - - * Added support for a hierarchy of kubectl plugins (a tree of plugins as children of other plugins). ([#45981](https://github.com/kubernetes/kubernetes/pull/45981), [@fabianofranz](https://github.com/fabianofranz)) - - * Added exported env vars to kubectl plugins so that plugin developers have access to global flags, namespace, the plugin descriptor and the full path to the caller binary. - - * Enhancement - - * `kubectl auth can-i` now supports non-resource URLs ([#46432](https://github.com/kubernetes/kubernetes/pull/46432), [@CaoShuFeng](https://github.com/CaoShuFeng)) - - * `kubectl set selector` and `kubectl set subject` no longer print "running in local/dry-run mode..." at the top. The output can now be piped and interpretted as yaml or json ([#46507](https://github.com/kubernetes/kubernetes/pull/46507), [@bboreham](https://github.com/bboreham)) - - * When using an in-cluster client with an empty configuration, the `--namespace` flag is now honored ([#46299](https://github.com/kubernetes/kubernetes/pull/46299), [@ncdc](https://github.com/ncdc)) - - * The help message for missingResourceError is now generic ([#45582](https://github.com/kubernetes/kubernetes/pull/45582), [@CaoShuFeng](https://github.com/CaoShuFeng)) - - * `kubectl taint node` now supports label selectors ([#44740](https://github.com/kubernetes/kubernetes/pull/44740), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) - - * `kubectl proxy --www` now logs a warning when the dir is invalid ([#44952](https://github.com/kubernetes/kubernetes/pull/44952), [@CaoShuFeng](https://github.com/CaoShuFeng)) - - * `kubectl taint` output has been enhanced with the operation ([#43171](https://github.com/kubernetes/kubernetes/pull/43171), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) - - * kubectl `--user` and `--cluster` now support completion ([#44251](https://github.com/kubernetes/kubernetes/pull/44251), [@superbrothers](https://github.com/superbrothers)) - - * `kubectl config use-context` now supports completion ([#42336](https://github.com/kubernetes/kubernetes/pull/42336), [@superbrothers](https://github.com/superbrothers)) - - * `kubectl version` now supports `--output` ([#39858](https://github.com/kubernetes/kubernetes/pull/39858), [@alejandroEsc](https://github.com/alejandroEsc)) - - * `kubectl create configmap` has a new option `--from-env-file` that populates a configmap from file which follows a key=val format for each line. ([#38882](https://github.com/kubernetes/kubernetes/pull/38882), [@fraenkel](https://github.com/fraenkel)) - - * `kubectl create secret` has a new option `--from-env-file` that populates a configmap from file which follows a key=val format for each line. - - * Printing/describe - - * Print conditions of RC/RS in `kubectl describe` command. ([#44710](https://github.com/kubernetes/kubernetes/pull/44710), [@xiangpengzhao](https://github.com/xiangpengzhao)) - - * Improved output on `kubectl get` and `kubectl describe` for generic objects. ([#44222](https://github.com/kubernetes/kubernetes/pull/44222), [@fabianofranz](https://github.com/fabianofranz)) - - * In `kubectl describe`, find controllers with ControllerRef, instead of showing the original creator. ([#42849](https://github.com/kubernetes/kubernetes/pull/42849), [@janetkuo](https://github.com/janetkuo)) - - * `kubectl version` has new flag --output (=json or yaml) allowing result of the command to be parsed in either json format or yaml. ([#39858](https://github.com/kubernetes/kubernetes/pull/39858), [@alejandroEsc](https://github.com/alejandroEsc)) - - - * Bug fixes - - * Fix some false negatives in detection of meaningful conflicts during strategic merge patch with maps and lists. ([#43469](https://github.com/kubernetes/kubernetes/pull/43469), [@enisoc](https://github.com/enisoc)) - - * Fix false positive "meaningful conflict" detection for strategic merge patch with integer values. ([#44788](https://github.com/kubernetes/kubernetes/pull/44788), [@enisoc](https://github.com/enisoc)) - - * Restored the ability of kubectl running inside a pod to consume resource files specifying a different namespace than the one the pod is running in. ([#44862](https://github.com/kubernetes/kubernetes/pull/44862), [@liggitt](https://github.com/liggitt)) - - * Kubectl commands run inside a pod using a kubeconfig file now use the namespace specified in the kubeconfig file, instead of using the pod namespace. If no kubeconfig file is used, or the kubeconfig does not specify a namespace, the pod namespace is still used as a fallback. ([#44570](https://github.com/kubernetes/kubernetes/pull/44570), [@liggitt](https://github.com/liggitt)) - - * Fixed `kubectl cluster-info` dump to support multi-container pod. ([#44088](https://github.com/kubernetes/kubernetes/pull/44088), [@xingzhou](https://github.com/xingzhou)) - - * Kubectl will print a warning when deleting the current context ([#42538](https://github.com/kubernetes/kubernetes/pull/42538), [@adohe](https://github.com/adohe)) - - * Fix VolumeClaims/capacity in `kubectl describe statefulsets` output. ([#47573](https://github.com/kubernetes/kubernetes/pull/47573), [@k82cn](https://github.com/k82cn)) - - * Fixed the output of kubectl taint node command with minor improvements. ([#43171](https://github.com/kubernetes/kubernetes/pull/43171), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) - - -### **Networking** -#### Network Policy -* [stable] [NetworkPolicy](https://kubernetes.io/docs/concepts/services-networking/network-policies/) promoted to GA. - * Additionally adds short name "netpol" for networkpolicies ([#42241](https://github.com/kubernetes/kubernetes/pull/42241), [@xiangpengzhao](https://github.com/xiangpengzhao)) - - -#### Load Balancing -* [stable] Source IP Preservation - change Cloud load-balancer strategy to health-checks and respond to health check only on nodes that host pods for the service. See [Create an External Load Balancer - Preserving the client source IP](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip). - Two annotations have been promoted to API fields: - - * Service.Spec.ExternalTrafficPolicy was 'service.beta.kubernetes.io/external-traffic' annotation. - - * Service.Spec.HealthCheckNodePort was 'service.beta.kubernetes.io/healthcheck-nodeport' annotation. - -### **Node Components** -#### Container Runtime Interface -* [alpha] CRI validation testing, which provides a test framework and a suite of tests to validate that the CRI server implementation meets all the requirements. This allows the CRI runtime developers to verify that their runtime conforms to CRI, without needing to set up Kubernetes components or run Kubernetes end-to-end tests. ([docs](https://github.com/kubernetes/community/blob/master/contributors/devel/cri-validation.md) and [release notes](https://github.com/kubernetes-incubator/cri-tools/releases/tag/v0.1)) ([kubernetes/features#292](https://github.com/kubernetes/features/issues/292)) - -* [alpha] Adds support of container metrics in CRI ([docs PR](https://github.com/kubernetes/community/pull/742)) ([kubernetes/features#290](https://github.com/kubernetes/features/issues/290)) - -* [alpha] Integration with [containerd] (https://github.com/containerd/containerd) , which supports basic pod lifecycle and image management. ([docs](https://github.com/kubernetes-incubator/cri-containerd/blob/master/README.md) and [release notes](https://github.com/kubernetes-incubator/cri-containerd/releases/tag/v0.1.0)) ([kubernetes/features#286](https://github.com/kubernetes/features/issues/286)) - -* [GA] The Docker-CRI implementation is GA. The legacy, non-CRI Docker integration has been completely removed. - -* [beta] [CRI-O](https://github.com/kubernetes-incubator/cri-o) v1.0.0-alpha.0. It has passed all e2e tests. ([release notes](https://github.com/kubernetes-incubator/cri-o/releases/tag/v1.0.0-alpha.0)) - -* [beta] [Frakti](https://github.com/kubernetes/frakti) v1.0. It has passed all node conformance tests. ([release notes](https://github.com/kubernetes/frakti/releases/tag/v1.0)) - - - -### **Scheduling** -#### Scheduler Extender -* [alpha] Support for delegating pod binding to a scheduler extender ([kubernetes/features#270](https://github.com/kubernetes/features/issues/270)) - -### **Storage** -#### Local Storage -* [alpha] This feature adds capacity isolation support for local storage at node, container, and volume levels. See updated [Reserve Compute Resources for System Daemons](https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/) documentation. - -* [alpha] Make locally attached (non-network attached) storage available as a persistent volume source. For more information, see [Storage Volumes - local](https://kubernetes.io/docs/concepts/storage/volumes/#local). - -#### Volume Plugins -* [stable] Volume plugin for StorageOS provides highly-available cluster-wide persistent volumes from local or attached node storage. See [Persistent Volumes - StorageOS](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#storageos) and [Storage Volumes - StorageOS](https://kubernetes.io/docs/concepts/storage/volumes/#storageos). - -#### Metrics -* [stable] Add support for cloudprovider metrics for storage API calls. See [Controller manager metrics](https://kubernetes.io/docs/concepts/cluster-administration/controller-metrics/) for more information. - -### **Other notable changes** - - -#### Admission plugin -* OwnerReferencesPermissionEnforcement admission plugin ignores pods/status. ([#45747](https://github.com/kubernetes/kubernetes/pull/45747), [@derekwaynecarr](https://github.com/derekwaynecarr)) - - -* Ignored mirror pods in PodPreset admission plugin. ([#45958](https://github.com/kubernetes/kubernetes/pull/45958), [@k82cn](https://github.com/k82cn)) - -#### API Machinery -* The protobuf serialization of API objects has been updated to store maps in a predictable order to ensure that the representation of that object does not change when saved into etcd. This prevents the same object from being seen as being modified, even when no values have changed. ([#47701](https://github.com/kubernetes/kubernetes/pull/47701), [@smarterclayton](https://github.com/smarterclayton)) - -* API resource discovery now includes the singularName used to refer to the resource. ([#43312](https://github.com/kubernetes/kubernetes/pull/43312), [@deads2k](https://github.com/deads2k)) - -* Enhance the garbage collection admission plugin so that a user who doesn't have delete permission of the owning object cannot modify the blockOwnerDeletion field of existing ownerReferences, or add new ownerReferences with blockOwnerDeletion=true ([#43876](https://github.com/kubernetes/kubernetes/pull/43876), [@caesarxuchao](https://github.com/caesarxuchao)) - -* Exec and portforward actions over SPDY now properly handle redirects sent by the Kubelet ([#44451](https://github.com/kubernetes/kubernetes/pull/44451), [@ncdc](https://github.com/ncdc)) - -* The proxy subresource APIs for nodes, services, and pods now support the HTTP PATCH method. ([#44929](https://github.com/kubernetes/kubernetes/pull/44929), [@liggitt](https://github.com/liggitt)) - -* The Categories []string field on discovered API resources represents the list of group aliases (e.g. "all") that each resource belongs to. ([#43338](https://github.com/kubernetes/kubernetes/pull/43338), [@fabianofranz](https://github.com/fabianofranz)) - -* [alpha] The Kubernetes API supports retrieving tabular output for API resources via a new mime-type application/json;as=Table;v=v1alpha1;g=meta.k8s.io. The returned object (if the server supports it) will be of type meta.k8s.io/v1alpha1 with Table, and contain column and row information related to the resource. Each row will contain information about the resource - by default it will be the object metadata, but callers can add the ?includeObject=Object query parameter and receive the full object. In the future kubectl will use this to retrieve the results of `kubectl get`. ([#40848](https://github.com/kubernetes/kubernetes/pull/40848), [@smarterclayton](https://github.com/smarterclayton)) - -* The behavior of some watch calls to the server when filtering on fields was incorrect. If watching objects with a filter, when an update was made that no longer matched the filter a DELETE event was correctly sent. However, the object that was returned by that delete was not the (correct) version before the update, but instead, the newer version. That meant the new object was not matched by the filter. This was a regression from behavior between cached watches on the server side and uncached watches, and thus broke downstream API clients. ([#46223](https://github.com/kubernetes/kubernetes/pull/46223), [@smarterclayton](https://github.com/smarterclayton)) - -* OpenAPI spec is now available in protobuf binary and gzip format (with ETag support) ([#45836](https://github.com/kubernetes/kubernetes/pull/45836), [@mbohlool](https://github.com/mbohlool)) - -* Updating apiserver to return UID of the deleted resource. Clients can use this UID to verify that the resource was deleted or waiting for finalizers. ([#45600](https://github.com/kubernetes/kubernetes/pull/45600), [@nikhiljindal](https://github.com/nikhiljindal)) - -* Fix incorrect conflict errors applying strategic merge patches to resources. ([#43871](https://github.com/kubernetes/kubernetes/pull/43871), [@liggitt](https://github.com/liggitt)) - -* Fix init container status reporting when active deadline is exceeded. ([#46305](https://github.com/kubernetes/kubernetes/pull/46305), [@sjenning](https://github.com/sjenning)) - -* Moved qos to api.helpers. ([#44906](https://github.com/kubernetes/kubernetes/pull/44906), [@k82cn](https://github.com/k82cn)) - -* Fix issue with the resource quota controller causing add quota to be resynced at the wrong ([#45685](https://github.com/kubernetes/kubernetes/pull/45685), [@derekwaynecarr](https://github.com/derekwaynecarr)) - -* Added Group/Version/Kind and Action extension to OpenAPI Operations ([#44787](https://github.com/kubernetes/kubernetes/pull/44787), [@mbohlool](https://github.com/mbohlool)) - -* Make clear that meta.KindToResource is only a guess ([#45272](https://github.com/kubernetes/kubernetes/pull/45272), [@sttts](https://github.com/sttts)) - -* Add APIService conditions ([#43301](https://github.com/kubernetes/kubernetes/pull/43301), [@deads2k](https://github.com/deads2k)) - -* Create and push a docker image for the cloud-controller-manager ([#45154](https://github.com/kubernetes/kubernetes/pull/45154), [@luxas](https://github.com/luxas)) - -* Deprecated Binding objects in 1.7. ([#47041](https://github.com/kubernetes/kubernetes/pull/47041), [@k82cn](https://github.com/k82cn)) - -* Adds the Categories []string field to API resources, which represents the list of group aliases (e.g. "all") that every resource belongs to. ([#43338](https://github.com/kubernetes/kubernetes/pull/43338), [@fabianofranz](https://github.com/fabianofranz)) - -* `--service-account-lookup` now defaults to true, requiring the Secret API object containing the token to exist in order for a service account token to be valid. This enables service account tokens to be revoked by deleting the Secret object containing the token. ([#44071](https://github.com/kubernetes/kubernetes/pull/44071), [@liggitt](https://github.com/liggitt)) - -* API Registration is now in beta. ([#45247](https://github.com/kubernetes/kubernetes/pull/45247), [@mbohlool](https://github.com/mbohlool)) - -* The Kubernetes API server now exits if it encounters a networking failure (e.g. the networking interface hosting its address goes away) to allow a process manager (systemd/kubelet/etc) to react to the problem. Previously the server would log the failure and try again to bind to its configured address:port. ([#42272](https://github.com/kubernetes/kubernetes/pull/42272), [@marun](https://github.com/marun)) - -* The Prometheus metrics for the kube-apiserver for tracking incoming API requests and latencies now return the subresource label for correctly attributing the type of API call. ([#46354](https://github.com/kubernetes/kubernetes/pull/46354), [@smarterclayton](https://github.com/smarterclayton)) - -* kube-apiserver now drops unneeded path information if an older version of Windows kubectl sends it. ([#44421](https://github.com/kubernetes/kubernetes/pull/44421), [@mml](https://github.com/mml)) - - -#### Application autoscaling -* Make "upscale forbidden window" and "downscale forbidden window" duration configurable in arguments of kube-controller-manager. ([#42101](https://github.com/kubernetes/kubernetes/pull/42101), [@Dmitry1987](https://github.com/Dmitry1987)) - -#### Application Deployment -* StatefulSetStatus now tracks replicas, readyReplicas, currentReplicas, and updatedReplicas. The semantics of replicas is now consistent with DaemonSet and ReplicaSet, and readyReplicas has the semantics that replicas did prior to 1.7 ([#46669](https://github.com/kubernetes/kubernetes/pull/46669), [@kow3ns](https://github.com/kow3ns)). - -* ControllerRevision type has been added for StatefulSet and DaemonSet history. Clients should not depend on the stability of this type as it may change, as necessary, in future releases to support StatefulSet and DaemonSet update and rollback. We enable this type as we do with beta features, because StatefulSet update and DaemonSet update are enabled. ([#45867](https://github.com/kubernetes/kubernetes/pull/45867), [@kow3ns](https://github.com/kow3ns)) - -* PodDisruptionBudget now uses ControllerRef to decide which controller owns a given Pod, so it doesn't get confused by controllers with overlapping selectors. ([#45003](https://github.com/kubernetes/kubernetes/pull/45003), [@krmayankk](https://github.com/krmayankk)) - -* Deployments are updated to use (1) a more stable hashing algorithm (fnv) than the previous one (adler) and (2) a hashing collision avoidance mechanism that will ensure new rollouts will not block on hashing collisions anymore. ([#44774](https://github.com/kubernetes/kubernetes/pull/44774), [@kargakis](https://github.com/kargakis))([kubernetes/features#287](https://github.com/kubernetes/features/issues/287)) - -* Deployments and DaemonSets rollouts are considered complete when all of the desired replicas are updated and available. This change affects `kubectl rollout status` and Deployment condition. ([#44672](https://github.com/kubernetes/kubernetes/pull/44672), [@kargakis](https://github.com/kargakis)) - -* Job controller now respects ControllerRef to avoid fighting over Pods. ([#42176](https://github.com/kubernetes/kubernetes/pull/42176), [@enisoc](https://github.com/enisoc)) - -* CronJob controller now respects ControllerRef to avoid fighting with other controllers. ([#42177](https://github.com/kubernetes/kubernetes/pull/42177), [@enisoc](https://github.com/enisoc)) - -#### Cluster Autoscaling -* Cluster Autoscaler 0.6. More information available [here](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/README.md). - -* cluster-autoscaler: Fix duplicate writing of logs. ([#45017](https://github.com/kubernetes/kubernetes/pull/45017), [@MaciekPytel](https://github.com/MaciekPytel)) - - -#### Cloud Provider Enhancement - -* AWS: - - * New 'service.beta.kubernetes.io/aws-load-balancer-extra-security-groups' Service annotation to specify extra Security Groups to be added to ELB created by AWS cloudprovider ([#45268](https://github.com/kubernetes/kubernetes/pull/45268), [@redbaron](https://github.com/redbaron)) - - * Clean up blackhole routes when using kubenet ([#47572](https://github.com/kubernetes/kubernetes/pull/47572), [@justinsb](https://github.com/justinsb)) - - * Maintain a cache of all instances, to fix problem with > 200 nodes with ELBs ([#47410](https://github.com/kubernetes/kubernetes/pull/47410), [@justinsb](https://github.com/justinsb)) - - * Avoid spurious ELB listener recreation - ignore case when matching protocol ([#47391](https://github.com/kubernetes/kubernetes/pull/47391), [@justinsb](https://github.com/justinsb)) - - * Allow configuration of a single security group for ELBs ([#45500](https://github.com/kubernetes/kubernetes/pull/45500), [@nbutton23](https://github.com/nbutton23)) - - * Remove check that forces loadBalancerSourceRanges to be 0.0.0.0/0. ([#38636](https://github.com/kubernetes/kubernetes/pull/38636), [@dhawal55](https://github.com/dhawal55)) - - * Allow setting KubernetesClusterID or KubernetesClusterTag in combination with VPC. ([#42512](https://github.com/kubernetes/kubernetes/pull/42512), [@scheeles](https://github.com/scheeles)) - - * Start recording cloud provider metrics for AWS ([#43477](https://github.com/kubernetes/kubernetes/pull/43477), [@gnufied](https://github.com/gnufied)) - - * AWS: Batch DescribeInstance calls with nodeNames to 150 limit, to stay within AWS filter limits. ([#47516](https://github.com/kubernetes/kubernetes/pull/47516), [@gnufied](https://github.com/gnufied)) - - * AWS: Process disk attachments even with duplicate NodeNames ([#47406](https://github.com/kubernetes/kubernetes/pull/47406), [@justinsb](https://github.com/justinsb)) - - * Allow configuration of a single security group for ELBs ([#45500](https://github.com/kubernetes/kubernetes/pull/45500), [@nbutton23](https://github.com/nbutton23)) - - * Fix support running the master with a different AWS account or even on a different cloud provider than the nodes. ([#44235](https://github.com/kubernetes/kubernetes/pull/44235), [@mrIncompetent](https://github.com/mrIncompetent)) - - * Support node port health check ([#43585](https://github.com/kubernetes/kubernetes/pull/43585), [@foolusion](https://github.com/foolusion)) - - * Support for ELB tagging by users ([#45932](https://github.com/kubernetes/kubernetes/pull/45932), [@lpabon](https://github.com/lpabon)) - -* Azure: - - * Add support for UDP ports ([#45523](https://github.com/kubernetes/kubernetes/pull/45523), [@colemickens](https://github.com/colemickens)) - - * Fix support for multiple loadBalancerSourceRanges ([#45523](https://github.com/kubernetes/kubernetes/pull/45523), [@colemickens](https://github.com/colemickens)) - - * Support the Service spec's sessionAffinity ([#45523](https://github.com/kubernetes/kubernetes/pull/45523), [@colemickens](https://github.com/colemickens)) - - * Added exponential backoff to Azure cloudprovider ([#46660](https://github.com/kubernetes/kubernetes/pull/46660), [@jackfrancis](https://github.com/jackfrancis)) - - * Add support for bring-your-own ip address for Services on Azure ([#42034](https://github.com/kubernetes/kubernetes/pull/42034), [@brendandburns](https://github.com/brendandburns)) - - * Add support for Azure internal load balancer ([#43510](https://github.com/kubernetes/kubernetes/pull/43510), [@karataliu](https://github.com/karataliu)) - - * Client poll duration is now 5 seconds ([#43699](https://github.com/kubernetes/kubernetes/pull/43699), [@colemickens](https://github.com/colemickens)) - - * Azure plugin for client auth ([#43987](https://github.com/kubernetes/kubernetes/pull/43987), [@cosmincojocar](https://github.com/cosmincojocar)) - - -* GCP: - - * Bump GLBC version to 0.9.5 - fixes [loss of manually modified GCLB health check settings](https://github.com/kubernetes/kubernetes/issues/47559) upon upgrade from pre-1.6.4 to either 1.6.4 or 1.6.5. ([#47567](https://github.com/kubernetes/kubernetes/pull/47567), [@nicksardo](https://github.com/nicksardo)) - - * [beta] Support creation of GCP Internal Load Balancers from Service objects ([#46663](https://github.com/kubernetes/kubernetes/pull/46663), [@nicksardo](https://github.com/nicksardo)) - - * GCE installs will now avoid IP masquerade for all RFC-1918 IP blocks, rather than just 10.0.0.0/8. This means that clusters can be created in 192.168.0.0./16 and 172.16.0.0/12 while preserving the container IPs (which would be lost before). ([#46473](https://github.com/kubernetes/kubernetes/pull/46473), [@thockin](https://github.com/thockin)) - - * The Calico version included in kube-up for GCE has been updated to v2.2. ([#38169](https://github.com/kubernetes/kubernetes/pull/38169), [@caseydavenport](https://github.com/caseydavenport)) - - * ip-masq-agent is now on by default for GCE ([#47794](https://github.com/kubernetes/kubernetes/pull/47794), [@dnardo](https://github.com/dnardo)) - - * Add ip-masq-agent addon to the addons folder which is used in GCE if `--non-masquerade-cidr` is set to 0/0 ([#46038](https://github.com/kubernetes/kubernetes/pull/46038), [@dnardo](https://github.com/dnardo)) - - * Enable kubelet csr bootstrap in GCE/GKE ([#40760](https://github.com/kubernetes/kubernetes/pull/40760), [@mikedanese](https://github.com/mikedanese)) - - * Adds support for allocation of pod IPs via IP aliases. ([#42147](https://github.com/kubernetes/kubernetes/pull/42147), [@bowei](https://github.com/bowei)) - - * gce kube-up: The Node authorization mode and NodeRestriction admission controller are now enabled ([#46796](https://github.com/kubernetes/kubernetes/pull/46796), [@mikedanese](https://github.com/mikedanese)) - - * Tokens retrieved from Google Cloud with application default credentials will not be cached if the client fails authorization ([#46694](https://github.com/kubernetes/kubernetes/pull/46694), [@matt-tyler](https://github.com/matt-tyler)) - - * Add metrics to all major gce operations {latency, errors} ([#44510](https://github.com/kubernetes/kubernetes/pull/44510), [@bowei](https://github.com/bowei)) - - * The new metrics are: - - * cloudprovider_gce_api_request_duration_seconds{request, region, zone} - - * cloudprovider_gce_api_request_errors{request, region, zone} - - * request is the specific function that is used. - - * region is the target region (Will be "<n/a>" if not applicable) - - * zone is the target zone (Will be "<n/a>" if not applicable) - - * Note: this fixes some issues with the previous implementation of metrics for disks: - - * Time duration tracked was of the initial API call, not the entire operation. - - * Metrics label tuple would have resulted in many independent histograms stored, one for each disk. (Did not aggregate well). - - * Fluentd now tolerates all NoExecute Taints when run in gcp configuration. ([#45715](https://github.com/kubernetes/kubernetes/pull/45715), [@gmarek](https://github.com/gmarek)) - - * Taints support in gce/salt startup scripts. ([#47632](https://github.com/kubernetes/kubernetes/pull/47632), [@mwielgus](https://github.com/mwielgus)) - - * GCE installs will now avoid IP masquerade for all RFC-1918 IP blocks, rather than just 10.0.0.0/8. This means that clusters can ([#46473](https://github.com/kubernetes/kubernetes/pull/46473), [@thockin](https://github.com/thockin)) be created in 192.168.0.0./16 and 172.16.0.0/12 while preserving the container IPs (which would be lost before). - - * Support running Ubuntu image on GCE node ([#44744](https://github.com/kubernetes/kubernetes/pull/44744), [@yguo0905](https://github.com/yguo0905)) - - * The gce metadata server can now be hidden behind a proxy, hiding the kubelet's token. ([#45565](https://github.com/kubernetes/kubernetes/pull/45565), [@Q-Lee](https://github.com/Q-Lee)) - -* OpenStack: - - * Fix issue during LB creation where ports were incorrectly assigned to a floating IP ([#44387](https://github.com/kubernetes/kubernetes/pull/44387), [@jamiehannaford](https://github.com/jamiehannaford)) - - * Openstack cinder v1/v2/auto API support ([#40423](https://github.com/kubernetes/kubernetes/pull/40423), [@mkutsevol](https://github.com/mkutsevol)) - - * OpenStack clusters can now specify whether worker nodes are assigned a floating IP ([#42638](https://github.com/kubernetes/kubernetes/pull/42638), [@jamiehannaford](https://github.com/jamiehannaford)) - - -* vSphere: - - * Fix volume detach on node failure. ([#45569](https://github.com/kubernetes/kubernetes/pull/45569), [@divyenpatel](https://github.com/divyenpatel)) - - * Report same Node IP as both internal and external. ([#45201](https://github.com/kubernetes/kubernetes/pull/45201), [@abrarshivani](https://github.com/abrarshivani)) - - * Filter out IPV6 node addresses. ([#45181](https://github.com/kubernetes/kubernetes/pull/45181), [@BaluDontu](https://github.com/BaluDontu)) - - * Fix fetching of VM UUID on Ubuntu 16.04 and Fedora. ([#45311](https://github.com/kubernetes/kubernetes/pull/45311), [@divyenpatel](https://github.com/divyenpatel)) - - -#### Cluster Provisioning -* Juju: - - * Add Kubernetes 1.6 support to Juju charms ([#44500](https://github.com/kubernetes/kubernetes/pull/44500), [@Cynerva](https://github.com/Cynerva)) - - * Add metric collection to charms for autoscaling - - * Update kubernetes-e2e charm to fail when test suite fails - - * Update Juju charms to use snaps - - * Add registry action to the kubernetes-worker charm - - * Add support for kube-proxy cluster-cidr option to kubernetes-worker charm - - * Fix kubernetes-master charm starting services before TLS certs are saved - - * Fix kubernetes-worker charm failures in LXD - - * Fix stop hook failure on kubernetes-worker charm - - * Fix handling of juju kubernetes-worker.restart-needed state - - * Fix nagios checks in charms - - * Enable GPU mode if GPU hardware detected ([#43467](https://github.com/kubernetes/kubernetes/pull/43467), [@tvansteenburgh](https://github.com/tvansteenburgh)) - - * Fix ceph-secret type to kubernetes.io/rbd in kubernetes-master charm ([#44635](https://github.com/kubernetes/kubernetes/pull/44635), [@Cynerva](https://github.com/Cynerva)) - - * Disallows installation of upstream docker from PPA in the Juju kubernetes-worker charm. ([#44681](https://github.com/kubernetes/kubernetes/pull/44681), [@wwwtyro](https://github.com/wwwtyro)) - - * Resolves juju vsphere hostname bug showing only a single node in a scaled node-pool. ([#44780](https://github.com/kubernetes/kubernetes/pull/44780), [@chuckbutler](https://github.com/chuckbutler)) - - * Fixes a bug in the kubernetes-worker Juju charm code that attempted to give kube-proxy more than one api endpoint. ([#44677](https://github.com/kubernetes/kubernetes/pull/44677), [@wwwtyro](https://github.com/wwwtyro)) - - * Added CIFS PV support for Juju Charms ([#45117](https://github.com/kubernetes/kubernetes/pull/45117), [@chuckbutler](https://github.com/chuckbutler)) - - * Fixes juju kubernetes master: 1. Get certs from a dead leader. 2. Append tokens. ([#43620](https://github.com/kubernetes/kubernetes/pull/43620), [@ktsakalozos](https://github.com/ktsakalozos)) - - * kubernetes-master juju charm properly detects etcd-scale events and reconfigures appropriately. ([#44967](https://github.com/kubernetes/kubernetes/pull/44967), [@chuckbutler](https://github.com/chuckbutler)) - - * Use correct option name in the kubernetes-worker layer registry action ([#44921](https://github.com/kubernetes/kubernetes/pull/44921), [@jacekn](https://github.com/jacekn)) - - * Send dns details only after cdk-addons are configured ([#44945](https://github.com/kubernetes/kubernetes/pull/44945), [@ktsakalozos](https://github.com/ktsakalozos)) - - * Added support to the pause action in the kubernetes-worker charm for new flag `--delete-local-data` ([#44931](https://github.com/kubernetes/kubernetes/pull/44931), [@chuckbutler](https://github.com/chuckbutler)) - - * Add namespace-{list, create, delete} actions to the kubernetes-master layer ([#44277](https://github.com/kubernetes/kubernetes/pull/44277), [@jacekn](https://github.com/jacekn)) - - * Using http2 in kubeapi-load-balancer to fix `kubectl exec` uses ([#43625](https://github.com/kubernetes/kubernetes/pull/43625), [@mbruzek](https://github.com/mbruzek)) - - - * Don't append :443 to registry domain in the kubernetes-worker layer registry action ([#45550](https://github.com/kubernetes/kubernetes/pull/45550), [@jacekn](https://github.com/jacekn)) - -* kubeadm - - * Enable the Node Authorizer/Admission plugin in v1.7 ([#46879](https://github.com/kubernetes/kubernetes/pull/46879), [@luxas](https://github.com/luxas)) - - * Users can now pass extra parameters to etcd in a kubeadm cluster ([#42246](https://github.com/kubernetes/kubernetes/pull/42246), [@jamiehannaford](https://github.com/jamiehannaford)) - - * Make kubeadm use the new CSR approver in v1.7 ([#46864](https://github.com/kubernetes/kubernetes/pull/46864), [@luxas](https://github.com/luxas)) - - * Allow enabling multiple authorization modes at the same time ([#42557](https://github.com/kubernetes/kubernetes/pull/42557), [@xilabao](https://github.com/xilabao)) - - * add proxy client-certs to kube-apiserver to allow it to proxy aggregated api servers ([#43715](https://github.com/kubernetes/kubernetes/pull/43715), [@deads2k](https://github.com/deads2k))* CentOS provider - -* hyperkube - - * The hyperkube image has been slimmed down and no longer includes addon manifests and other various scripts. These were introduced for the now removed docker-multinode setup system. ([#44555](https://github.com/kubernetes/kubernetes/pull/44555), [@luxas](https://github.com/luxas)) - -* Support secure etcd cluster for centos provider. ([#42994](https://github.com/kubernetes/kubernetes/pull/42994), [@Shawyeok](https://github.com/Shawyeok)) - -* Update to kube-addon-manager:v6.4-beta.2: kubectl v1.6.4 and refreshed base images ([#47389](https://github.com/kubernetes/kubernetes/pull/47389), [@ixdy](https://github.com/ixdy)) - -* Remove Initializers from admission-control in kubernetes-master charm for pre-1.7 ([#46987](https://github.com/kubernetes/kubernetes/pull/46987), [@Cynerva](https://github.com/Cynerva)) - -* Added state guards to the idle_status messaging in the kubernetes-master charm to make deployment faster on initial deployment. ([#47183](https://github.com/kubernetes/kubernetes/pull/47183), [@chuckbutler](https://github.com/chuckbutler)) - -#### Cluster federation -* Features: - - * Adds annotations to all Federation objects created by kubefed. ([#42683](https://github.com/kubernetes/kubernetes/pull/42683), [@perotinus](https://github.com/perotinus)) - - * Mechanism of adding `federation domain maps` to kube-dns deployment via `--federations` flag is superseded by adding/updating `federations` key in `kube-system/kube-dns` configmap. If user is using kubefed tool to join cluster federation, adding federation domain maps to kube-dns is already taken care by `kubefed join` and does not need further action. - - * Prints out status updates when running `kubefed init` ([#41849](https://github.com/kubernetes/kubernetes/pull/41849), [@perotinus](https://github.com/perotinus)) - - * `kubefed init` now supports overriding the default etcd image name with the `--etcd-image` parameter. ([#46247](https://github.com/kubernetes/kubernetes/pull/46247), [@marun](https://github.com/marun)) - - * kubefed will now configure NodeInternalIP as the federation API server endpoint when NodeExternalIP is unavailable for federation API servers exposed as NodePort services ([#46960](https://github.com/kubernetes/kubernetes/pull/46960), [@lukaszo](https://github.com/lukaszo)) - - * Automate configuring nameserver in cluster-dns for CoreDNS provider ([#42895](https://github.com/kubernetes/kubernetes/pull/42895), [@shashidharatd](https://github.com/shashidharatd)) - - * A new controller for managing DNS records is introduced which can be optionally disabled to enable third party components to manage DNS records for federated services. ([#450354](https://github.com/kubernetes/kubernetes/pull/45034), [@shashidharatd(https://github.com/shashidharatd)]) - - * Remove the `--secret-name` flag from `kubefed join`, instead generating the secret name arbitrarily. ([#42513](https://github.com/kubernetes/kubernetes/pull/42513), [@perotinus](https://github.com/perotinus)) - - * Use StorageClassName for etcd pvc ([#46323](https://github.com/kubernetes/kubernetes/pull/46323), [@marun](https://github.com/marun)) - -* Bug fixes: - - * Allow disabling federation controllers through override args ([#44209](https://github.com/kubernetes/kubernetes/pull/44209), [@irfanurrehman](https://github.com/irfanurrehman)) - - * Kubefed: Use service accounts instead of the user's credentials when accessing joined clusters' API servers. ([#42042](https://github.com/kubernetes/kubernetes/pull/42042), [@perotinus](https://github.com/perotinus)) - - * Avoid panic if route53 fields are nil ([#44380](https://github.com/kubernetes/kubernetes/pull/44380), [@justinsb](https://github.com/justinsb)) - - -#### Credential provider -* add rancher credential provider ([#40160](https://github.com/kubernetes/kubernetes/pull/40160), [@wlan0](https://github.com/wlan0)) - -#### Information for Kubernetes clients (openapi, swagger, client-go) -* Features: - - * Add Host field to TCPSocketAction ([#42902](https://github.com/kubernetes/kubernetes/pull/42902), [@louyihua](https://github.com/louyihua)) - - * Add the ability to lock on ConfigMaps to support HA for self hosted components ([#42666](https://github.com/kubernetes/kubernetes/pull/42666), [@timothysc](https://github.com/timothysc)) - - * validateClusterInfo: use clientcmdapi.NewCluster() ([#44221](https://github.com/kubernetes/kubernetes/pull/44221), [@ncdc](https://github.com/ncdc)) - - * OpenAPI spec is now available in protobuf binary and gzip format (with ETag support) ([#45836](https://github.com/kubernetes/kubernetes/pull/45836), [@mbohlool](https://github.com/mbohlool)) - - * HostAliases is now parsed with hostAliases json keys to be in line with the feature's name. ([#47512](https://github.com/kubernetes/kubernetes/pull/47512), [@rickypai](https://github.com/rickypai)) - - * Add redirect support to SpdyRoundTripper ([#44451](https://github.com/kubernetes/kubernetes/pull/44451), [@ncdc](https://github.com/ncdc)) - - * Duplicate recurring Events now include the latest event's Message string ([#46034](https://github.com/kubernetes/kubernetes/pull/46034), [@kensimon](https://github.com/kensimon)) - -* Bug fixes: - - * Fix serialization of EnforceNodeAllocatable ([#44606](https://github.com/kubernetes/kubernetes/pull/44606), [@ivan4th](https://github.com/ivan4th)) - - * Use OS-specific libs when computing client User-Agent in kubectl, etc. ([#44423](https://github.com/kubernetes/kubernetes/pull/44423), [@monopole](https://github.com/monopole)) - - -#### Instrumentation -* Bumped Heapster to v1.4.0. More details about the release https://github.com/kubernetes/heapster/releases/tag/v1.4.0 - -* Fluentd manifest pod is no longer created on non-registered master when creating clusters using kube-up.sh. ([#44721](https://github.com/kubernetes/kubernetes/pull/44721), [@piosz](https://github.com/piosz)) - -* Stackdriver cluster logging now deploys a new component to export Kubernetes events. ([#46700](https://github.com/kubernetes/kubernetes/pull/46700), [@crassirostris](https://github.com/crassirostris)) - -* Stackdriver Logging deployment exposes metrics on node port 31337 when enabled. ([#47402](https://github.com/kubernetes/kubernetes/pull/47402), [@crassirostris](https://github.com/crassirostris)) - -* Upgrade Elasticsearch Addon to v5.4.0 ([#45589](https://github.com/kubernetes/kubernetes/pull/45589), [@it-svit](https://github.com/it-svit)) - -#### Internal storage layer -* prevent pods/status from touching ownerreferences ([#45826](https://github.com/kubernetes/kubernetes/pull/45826), [@deads2k](https://github.com/deads2k)) - -* Ensure that autoscaling/v1 is the preferred version for API discovery when autoscaling/v2alpha1 is enabled. ([#45741](https://github.com/kubernetes/kubernetes/pull/45741), [@DirectXMan12](https://github.com/DirectXMan12)) - -* The proxy subresource APIs for nodes, services, and pods now support the HTTP PATCH method. ([#44929](https://github.com/kubernetes/kubernetes/pull/44929), [@liggitt](https://github.com/liggitt)) - -* Fluentd now tolerates all NoExecute Taints when run in gcp configuration. ([#45715](https://github.com/kubernetes/kubernetes/pull/45715), [@gmarek](https://github.com/gmarek)) - - -#### Kubernetes Dashboard - -* Increase Dashboard's memory requests and limits (#44712, @maciaszczykm) - -* Update Dashboard version to 1.6.1 ([#45953](https://github.com/kubernetes/kubernetes/pull/45953), [@maciaszczykm](https://github.com/maciaszczykm)) - - -#### kube-dns -* Updates kube-dns to 1.14.2 ([#45684](https://github.com/kubernetes/kubernetes/pull/45684), [@bowei](https://github.com/bowei)) - - * Support kube-master-url flag without kubeconfig - - * Fix concurrent R/Ws in dns.go - - * Fix confusing logging when initialize server - - * Fix printf in cmd/kube-dns/app/server.go - - * Fix version on startup and `--version` flag - - * Support specifying port number for nameserver in stubDomains - -#### kube-proxy -* Features: - - * ratelimit runs of iptables by sync-period flags ([#46266](https://github.com/kubernetes/kubernetes/pull/46266), [@thockin](https://github.com/thockin)) - - * Log warning when invalid dir passed to `kubectl proxy --www` ([#44952](https://github.com/kubernetes/kubernetes/pull/44952), [@CaoShuFeng](https://github.com/CaoShuFeng)) - - * Add `--write-config-to` flag to kube-proxy to allow users to write the default configuration settings to a file. ([#45908](https://github.com/kubernetes/kubernetes/pull/45908), [@ncdc](https://github.com/ncdc)) - - * When switching from the service.beta.kubernetes.io/external-traffic annotation to the new ([#46716](https://github.com/kubernetes/kubernetes/pull/46716), [@thockin](https://github.com/thockin)) externalTrafficPolicy field, the values chnag as follows: * "OnlyLocal" becomes "Local" * "Global" becomes "Cluster". - - -* Bug fixes: - - * Fix corner-case with OnlyLocal Service healthchecks. ([#44313](https://github.com/kubernetes/kubernetes/pull/44313), [@thockin](https://github.com/thockin)) - - * Fix DNS suffix search list support in Windows kube-proxy. ([#45642](https://github.com/kubernetes/kubernetes/pull/45642), [@JiangtianLi](https://github.com/JiangtianLi)) - -#### kube-scheduler -* Scheduler can receive its policy configuration from a ConfigMap ([#43892](https://github.com/kubernetes/kubernetes/pull/43892), [@bsalamat](https://github.com/bsalamat)) - -* Aggregated used ports at the NodeInfo level for PodFitsHostPorts predicate. ([#42524](https://github.com/kubernetes/kubernetes/pull/42524), [@k82cn](https://github.com/k82cn)) - -* leader election lock based on scheduler name ([#42961](https://github.com/kubernetes/kubernetes/pull/42961), [@wanghaoran1988](https://github.com/wanghaoran1988)) - - * Fix DNS suffix search list support in Windows kube-proxy. ([#45642](https://github.com/kubernetes/kubernetes/pull/45642), [@JiangtianLi](https://github.com/JiangtianLi)) - -#### Storage - -* Features - - * The options passed to a Flexvolume plugin's mount command now contains the pod name (kubernetes.io/pod.name), namespace (kubernetes.io/pod.namespace), uid (kubernetes.io/pod.uid), and service account name (kubernetes.io/serviceAccount.name). ([#39488](https://github.com/kubernetes/kubernetes/pull/39488), [@liggitt](https://github.com/liggitt)) - - * GCE and AWS dynamic provisioners extension: admins can configure zone(s) in which a persistent volume shall be created. ([#38505](https://github.com/kubernetes/kubernetes/pull/38505), [@pospispa](https://github.com/pospispa)) - - * Implement API usage metrics for GCE storage. ([#40338](https://github.com/kubernetes/kubernetes/pull/40338), [@gnufied](https://github.com/gnufied)) - - * Add support for emitting metrics from openstack cloudprovider about storage operations. ([#46008](https://github.com/kubernetes/kubernetes/pull/46008), [@NickrenREN](https://github.com/NickrenREN)) - - * vSphere cloud provider: vSphere storage policy support for dynamic volume provisioning. ([#46176](https://github.com/kubernetes/kubernetes/pull/46176), [@BaluDontu](https://github.com/BaluDontu)) - - * Support StorageClass in Azure file volume ([#42170](https://github.com/kubernetes/kubernetes/pull/42170), [@rootfs](https://github.com/rootfs)) - - * Start recording cloud provider metrics for AWS ([#43477](https://github.com/kubernetes/kubernetes/pull/43477), [@gnufied](https://github.com/gnufied)) - - * Support iSCSI CHAP authentication ([#43396](https://github.com/kubernetes/kubernetes/pull/43396), [@rootfs](https://github.com/rootfs)) - - * Openstack cinder v1/v2/auto API support ([#40423](https://github.com/kubernetes/kubernetes/pull/40423), [@mkutsevol](https://github.com/mkutsevol * cinder: Add support for the KVM virtio-scsi driver ([#41498](https://github.com/kubernetes/kubernetes/pull/41498), [@mikebryant](https://github.com/mikebryant)) - - * Alpha feature: allows users to set storage limit to isolate EmptyDir volumes. It enforces the limit by evicting pods that exceed their storage limits ([#45686](https://github.com/kubernetes/kubernetes/pull/45686), [@jingxu97](https://github.com/jingxu97)) - -* Bug fixes - - * Fixes issue with Flexvolume, introduced in 1.6.0, where drivers without an attacher would fail (node indefinitely waiting for attach). A driver API addition is introduced: drivers that don't implement attach should return attach: false on init. ([#47503](https://github.com/kubernetes/kubernetes/pull/47503), [@chakri-nelluri](https://github.com/chakri-nelluri)) - - * Fix dynamic provisioning of PVs with inaccurate AccessModes by refusing to provision when PVCs ask for AccessModes that can't be satisfied by the PVs' underlying volume plugin. ([#47274](https://github.com/kubernetes/kubernetes/pull/47274), [@wongma7](https://github.com/wongma7)) - - * Fix pods failing to start if they specify a file as a volume subPath to mount. ([#45623](https://github.com/kubernetes/kubernetes/pull/45623), [@wongma7](https://github.com/wongma7)) - - * Fix erroneous FailedSync and FailedMount events being periodically and indefinitely posted on Pods after kubelet is restarted. ([#44781](https://github.com/kubernetes/kubernetes/pull/44781), [@wongma7](https://github.com/wongma7)) - - * Fix AWS EBS volumes not getting detached from node if routine to verify volumes are attached runs while the node is down ([#46463](https://github.com/kubernetes/kubernetes/pull/46463), [@wongma7](https://github.com/wongma7)) - - * Improves performance of Cinder volume attach/detach operations. ([#41785](https://github.com/kubernetes/kubernetes/pull/41785), [@jamiehannaford](https://github.com/jamiehannaford)) - - * Fix iSCSI iSER mounting. ([#47281](https://github.com/kubernetes/kubernetes/pull/47281), [@mtanino](https://github.com/mtanino)) - - * iscsi storage plugin: Fix dangling session when using multiple target portal addresses. ([#46239](https://github.com/kubernetes/kubernetes/pull/46239), [@mtanino](https://github.com/mtanino)) - - - * Fix log spam due to unnecessary status update when node is deleted. ([#45923](https://github.com/kubernetes/kubernetes/pull/45923), [@verult](https://github.com/verult)) - - * Don't try to attach volume to new node if it is already attached to another node and the volume does not support multi-attach. ([#45346](https://github.com/kubernetes/kubernetes/pull/45346), [@codablock](https://github.com/codablock)) - - * detach the volume when pod is terminated ([#45286](https://github.com/kubernetes/kubernetes/pull/45286), [@gnufied](https://github.com/gnufied)) - - * Roll up volume error messages in the kubelet sync loop. ([#44938](https://github.com/kubernetes/kubernetes/pull/44938), [@jayunit100](https://github.com/jayunit100)) - - * Catch error when failed to make directory in NFS volume plugin ([#38801](https://github.com/kubernetes/kubernetes/pull/38801), [@nak3](https://github.com/nak3)) - - - -#### Networking - -* DNS and name resolution - - * Updates kube-dns to 1.14.2 ([#45684](https://github.com/kubernetes/kubernetes/pull/45684), [@bowei](https://github.com/bowei)) - - * Support kube-master-url flag without kubeconfig - - * Fix concurrent R/Ws in dns.go - - * Fix confusing logging when initializing server - - * Support specifying port number for nameserver in stubDomains - - * A new field hostAliases has been added to pod.spec to support adding entries to a Pod's /etc/hosts file. ([#44641](https://github.com/kubernetes/kubernetes/pull/44641), [@rickypai](https://github.com/rickypai)) - - * Fix DNS suffix search list support in Windows kube-proxy. ([#45642](https://github.com/kubernetes/kubernetes/pull/45642), [@JiangtianLi](https://github.com/JiangtianLi)) - -* Kube-proxy - - * ratelimit runs of iptables by sync-period flags ([#46266](https://github.com/kubernetes/kubernetes/pull/46266), [@thockin](https://github.com/thockin)) - - * Fix corner-case with OnlyLocal Service healthchecks. ([#44313](https://github.com/kubernetes/kubernetes/pull/44313), [@thockin](https://github.com/thockin)) - -* Exclude nodes labeled as master from LoadBalancer / NodePort; restores documented behaviour. ([#44745](https://github.com/kubernetes/kubernetes/pull/44745), [@justinsb](https://github.com/justinsb)) - -* Adds support for CNI ConfigLists, which permit plugin chaining. ([#42202](https://github.com/kubernetes/kubernetes/pull/42202), [@squeed](https://github.com/squeed)) - -* Fix node selection logic on initial LB creation ([#45773](https://github.com/kubernetes/kubernetes/pull/45773), [@justinsb](https://github.com/justinsb)) - -* When switching from the service.beta.kubernetes.io/external-traffic annotation to the new externalTrafficPolicy field, the values change as follows: * "OnlyLocal" becomes "Local" * "Global" becomes "Cluster". ([#46716](https://github.com/kubernetes/kubernetes/pull/46716), [@thockin](https://github.com/thockin)) - -* servicecontroller: Fix node selection logic on initial LB creation ([#45773](https://github.com/kubernetes/kubernetes/pull/45773), [@justinsb](https://github.com/justinsb)) - -* fixed HostAlias in PodSpec to allow foo.bar hostnames instead of just foo DNS labels. ([#46809](https://github.com/kubernetes/kubernetes/pull/46809), [@rickypai](https://github.com/rickypai)) - - -#### Node controller -* Bug fixes: - - * Fix [transition between NotReady and Unreachable taints](https://github.com/kubernetes/kubernetes/issues/43444). ([#44042](https://github.com/kubernetes/kubernetes/pull/44042), [@gmarek](https://github.com/gmarek)) - - -#### Node Components - -* Features - - * Removes the deprecated kubelet flag `--babysit-daemons` ([#44230](https://github.com/kubernetes/kubernetes/pull/44230), [@mtaufen](https://github.com/mtaufen)) - - * make dockershim.sock configurable ([#43914](https://github.com/kubernetes/kubernetes/pull/43914), [@ncdc](https://github.com/ncdc)) - - * Support running Ubuntu image on GCE node ([#44744](https://github.com/kubernetes/kubernetes/pull/44744), [@yguo0905](https://github.com/yguo0905)) - - * Kubernetes now shares a single PID namespace among all containers in a pod when running with docker >= 1.13.1. This means processes can now signal processes in other containers in a pod, but it also means that the `kubectl exec {pod} kill 1` pattern will cause the Pod to be restarted rather than a single container. ([#45236](https://github.com/kubernetes/kubernetes/pull/45236), [@verb](https://github.com/verb)) - - * A new field hostAliases has been added to the pod spec to support [adding entries to a Pod's /etc/hosts file](https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/). ([#44641](https://github.com/kubernetes/kubernetes/pull/44641), [@rickypai](https://github.com/rickypai)) - - * With `--feature-gates=RotateKubeletClientCertificate=true` set, the Kubelet will ([#41912](https://github.com/kubernetes/kubernetes/pull/41912), [@jcbsmpsn](https://github.com/jcbsmpsn)) - - * request a client certificate from the API server during the boot cycle and pause - - * waiting for the request to be satisfied. It will continually refresh the certificate - - * Create clusters with GPUs in GCE by specifying `type=<gpu-type>,count=<gpu-count>` to NODE_ACCELERATORS environment variable. ([#45130](https://github.com/kubernetes/kubernetes/pull/45130), [@vishh](https://github.com/vishh)) - - * List of available GPUs - [https://cloud.google.com/compute/docs/gpus/#introduction](https://cloud.google.com/compute/docs/gpus/#introduction) - - * Disk Pressure triggers the deletion of terminated containers on the node. ([#45896](https://github.com/kubernetes/kubernetes/pull/45896), [@dashpole](https://github.com/dashpole)) - - * Support status.hostIP in downward API ([#42717](https://github.com/kubernetes/kubernetes/pull/42717), [@andrewsykim](https://github.com/andrewsykim)) - - * Upgrade Node Problem Detector to v0.4.1. New features added: - - * Add /dev/kmsg support for kernel log parsing. ([#112](https://github.com/kubernetes/node-problem-detector/pull/112), [@euank](https://github.com/euank)) - - * Add ABRT support. ([#105](https://github.com/kubernetes/node-problem-detector/pull/105), [@juliusmilan](https://github.com/juliusmilan)) - - * Add a docker image corruption problem detection in the default docker monitor config. ([#117](https://github.com/kubernetes/node-problem-detector/pull/117), [@ajitak](https://github.com/ajitak)) - - * Upgrade CAdvisor to v0.26.1. New features added: - - * Add Docker overlay2 storage driver support. - - * Add ZFS support. - - * Add UDP metrics (collection disabled by default). - - * Roll up volume error messages in the kubelet sync loop. ([#44938](https://github.com/kubernetes/kubernetes/pull/44938), [@jayunit100](https://github.com/jayunit100)) - - * Allow pods to opt out of PodPreset mutation via an annotation on the pod. ([#44965](https://github.com/kubernetes/kubernetes/pull/44965), [@jpeeler](https://github.com/jpeeler)) - - * Add generic Toleration for NoExecute Taints to NodeProblemDetector, so that NPD can be scheduled to nodes with NoExecute taints by default. ([#45883](https://github.com/kubernetes/kubernetes/pull/45883), [@gmarek](https://github.com/gmarek)) - - * Prevent kubelet from setting allocatable < 0 for a resource upon initial creation. ([#46516](https://github.com/kubernetes/kubernetes/pull/46516), [@derekwaynecarr](https://github.com/derekwaynecarr)) - -* Bug fixes - - * Changed Kubelet default image-gc-high-threshold to 85% to resolve a conflict with default settings in docker that prevented image garbage collection from resolving low disk space situations when using devicemapper storage. ([#40432](https://github.com/kubernetes/kubernetes/pull/40432), [@sjenning](https://github.com/sjenning)) - - * Mark all static pods on the Master node as critical to prevent preemption ([#47356](https://github.com/kubernetes/kubernetes/pull/47356), [@dashpole](https://github.com/dashpole)) - - * Restrict active deadline seconds max allowed value to be maximum uint32 to avoid overflow ([#46640](https://github.com/kubernetes/kubernetes/pull/46640), [@derekwaynecarr](https://github.com/derekwaynecarr)) - - * Fix a bug with cAdvisorPort in the KubeletConfiguration that prevented setting it to 0, which is in fact a valid option, as noted in issue [#11710](https://github.com/kubernetes/kubernetes/pull/11710). ([#46876](https://github.com/kubernetes/kubernetes/pull/46876), [@mtaufen](https://github.com/mtaufen)) - - * Fix a bug where container cannot run as root when SecurityContext.RunAsNonRoot is false. ([#47009](https://github.com/kubernetes/kubernetes/pull/47009), [@yujuhong](https://github.com/yujuhong)) - - * Fix the Kubelet PLEG update timestamp to better reflect the health of the component when the container runtime request hangs. ([#45496](https://github.com/kubernetes/kubernetes/pull/45496), [@andyxning](https://github.com/andyxning)) - - * Avoid failing sync loop health check on container runtime errors ([#47124](https://github.com/kubernetes/kubernetes/pull/47124), [@andyxning](https://github.com/andyxning)) - - * Fix a bug where Kubelet does not ignore pod manifest files starting with dots ([#45111](https://github.com/kubernetes/kubernetes/pull/45111), [@dwradcliffe](https://github.com/dwradcliffe)) - - * Fix kubelet reset liveness probe failure count across pod restart boundaries ([#46371](https://github.com/kubernetes/kubernetes/pull/46371), [@sjenning](https://github.com/sjenning)) - - * Fix log spam due to unnecessary status update when node is deleted. ([#45923](https://github.com/kubernetes/kubernetes/pull/45923), [@verult](https://github.com/verult)) - - * Fix kubelet event recording for selected events. ([#46246](https://github.com/kubernetes/kubernetes/pull/46246), [@derekwaynecarr](https://github.com/derekwaynecarr)) - - * Fix image garbage collector attempting to remove in-use images. ([#46121](https://github.com/kubernetes/kubernetes/pull/46121), [@Random-Liu](https://github.com/Random-Liu)) - - * Detach the volume when pod is terminated ([#45286](https://github.com/kubernetes/kubernetes/pull/45286), [@gnufied](https://github.com/gnufied)) - - * CRI: Fix StopContainer timeout ([#44970](https://github.com/kubernetes/kubernetes/pull/44970), [@Random-Liu](https://github.com/Random-Liu)) - - * CRI: Fix kubelet failing to start when using rkt. ([#44569](https://github.com/kubernetes/kubernetes/pull/44569), [@yujuhong](https://github.com/yujuhong)) - - * CRI: `kubectl logs -f` now stops following when container stops, as it did pre-CRI. ([#44406](https://github.com/kubernetes/kubernetes/pull/44406), [@Random-Liu](https://github.com/Random-Liu)) - - * Fixes a bug where pods were evicted even after images are successfully deleted. ([#44986](https://github.com/kubernetes/kubernetes/pull/44986), [@dashpole](https://github.com/dashpole)) - - * When creating a container using envFrom, ([#42083](https://github.com/kubernetes/kubernetes/pull/42083), [@fraenkel](https://github.com/fraenkel) - * validate the name of the ConfigMap in a ConfigMapRef - * validate the name of the Secret in a SecretRef - - * Fix the bug where StartedAt time is not reported for exited containers. ([#45977](https://github.com/kubernetes/kubernetes/pull/45977), [@yujuhong](https://github.com/yujuhong)) - -* Changes/deprecations - - * Marks the Kubelet's `--master-service-namespace` flag deprecated ([#44250](https://github.com/kubernetes/kubernetes/pull/44250), [@mtaufen](https://github.com/mtaufen)) - - * Remove PodSandboxStatus.Linux.Namespaces.Network from CRI since it is not used/needed. ([#45166](https://github.com/kubernetes/kubernetes/pull/45166), [@feiskyer](https://github.com/feiskyer)) - - * Remove the `--enable-cri` flag. CRI is now the default, and the only way to integrate with Kubelet for the container runtimes.([#45194](https://github.com/kubernetes/kubernetes/pull/45194), [@yujuhong](https://github.com/yujuhong)) - - * CRI has been moved to package pkg/kubelet/apis/cri/v1alpha1/runtime as part of Kubelet API path cleanup. ([#47113](https://github.com/kubernetes/kubernetes/pull/47113), [@feiskyer](https://github.com/feiskyer)) - - -#### Scheduling - -* The fix makes scheduling go routine waiting for cache (e.g. Pod) to be synced. ([#45453](https://github.com/kubernetes/kubernetes/pull/45453), [@k82cn](https://github.com/k82cn)) - -* Move hardPodAffinitySymmetricWeight to scheduler policy config ([#44159](https://github.com/kubernetes/kubernetes/pull/44159), [@wanghaoran1988](https://github.com/wanghaoran1988)) - -* Align Extender's validation with prioritizers. ([#45091](https://github.com/kubernetes/kubernetes/pull/45091), [@k82cn](https://github.com/k82cn)) - -* Removed old scheduler constructor. ([#45472](https://github.com/kubernetes/kubernetes/pull/45472), [@k82cn](https://github.com/k82cn)) - -* Fixes the overflow for priorityconfig- valid range {1, 9223372036854775806}. ([#45122](https://github.com/kubernetes/kubernetes/pull/45122), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) - -* Move hardPodAffinitySymmetricWeight to scheduler policy config ([#44159](https://github.com/kubernetes/kubernetes/pull/44159), [@wanghaoran1988](https://github.com/wanghaoran1988)) - - -#### Security -* Features: - - * Permission to use a PodSecurityPolicy can now be granted within a single namespace by allowing the use verb on the podsecuritypolicies resource within the namespace. ([#42360](https://github.com/kubernetes/kubernetes/pull/42360), [@liggitt](https://github.com/liggitt)) - - * Break the 'certificatesigningrequests' controller into a 'csrapprover' controller and 'csrsigner' controller. ([#45514](https://github.com/kubernetes/kubernetes/pull/45514), [@mikedanese](https://github.com/mikedanese)) - - * `kubectl auth can-i` now supports non-resource URLs ([#46432](https://github.com/kubernetes/kubernetes/pull/46432), [@CaoShuFeng](https://github.com/CaoShuFeng)) - - * Promote kubelet tls bootstrap to beta. Add a non-experimental flag to use it and deprecate the old flag. ([#46799](https://github.com/kubernetes/kubernetes/pull/46799), [@mikedanese](https://github.com/mikedanese)) - - * Add the alpha.image-policy.k8s.io/failed-open=true annotation when the image policy webhook encounters an error and fails open. ([#46264](https://github.com/kubernetes/kubernetes/pull/46264), [@Q-Lee](https://github.com/Q-Lee)) - - * Add an AEAD encrypting transformer for storing secrets encrypted at rest ([#41939](https://github.com/kubernetes/kubernetes/pull/41939), [@smarterclayton](https://github.com/smarterclayton)) - - * Add secretbox and AES-CBC encryption modes to at rest encryption. AES-CBC is considered superior to AES-GCM because it is resistant to nonce-reuse attacks, and secretbox uses Poly1305 and XSalsa20. ([#46916](https://github.com/kubernetes/kubernetes/pull/46916), [@smarterclayton](https://github.com/smarterclayton)) - -* Bug fixes: - - * Make gcp auth provider not to override the Auth header if it's already exits ([#45575](https://github.com/kubernetes/kubernetes/pull/45575), [@wanghaoran1988](https://github.com/wanghaoran1988)) - - * The oidc client plugin has reduce round trips and fix scopes requested ([#45317](https://github.com/kubernetes/kubernetes/pull/45317), [@ericchiang](https://github.com/ericchiang)) - - * API requests using impersonation now include the system:authenticated group in the impersonated user automatically. ([#44076](https://github.com/kubernetes/kubernetes/pull/44076), [@liggitt](https://github.com/liggitt)) - - * RBAC role and rolebinding auto-reconciliation is now performed only when the RBAC authorization mode is enabled. ([#43813](https://github.com/kubernetes/kubernetes/pull/43813), [@liggitt](https://github.com/liggitt)) - - * PodSecurityPolicy now recognizes pods that specify runAsNonRoot: false in their security context and does not overwrite the specified value ([#47073](https://github.com/kubernetes/kubernetes/pull/47073), [@Q-Lee](https://github.com/Q-Lee)) - - * Tokens retrieved from Google Cloud with application default credentials will not be cached if the client fails authorization ([#46694](https://github.com/kubernetes/kubernetes/pull/46694), [@matt-tyler](https://github.com/matt-tyler)) - - * Update kube-dns, metadata-proxy, and fluentd-gcp, event-exporter, prometheus-to-sd, and ip-masq-agent addons with new base images containing fixes for CVE-2016-4448, CVE-2016-9841, CVE-2016-9843, CVE-2017-1000366, CVE-2017-2616, and CVE-2017-9526. ([#47877](https://github.com/kubernetes/kubernetes/pull/47877), [@ixdy](https://github.com/ixdy)) - - * Fixed an issue mounting the wrong secret into pods as a service account token. ([#44102](https://github.com/kubernetes/kubernetes/pull/44102), [@ncdc](https://github.com/ncdc)) - -#### Scalability - -* The HorizontalPodAutoscaler controller will now only send updates when it has new status information, reducing the number of writes caused by the controller. ([#47078](https://github.com/kubernetes/kubernetes/pull/47078), [@DirectXMan12](https://github.com/DirectXMan12)) - - -## **External Dependency Version Information** - -Continuous integration builds have used the following versions of external dependencies, however, this is not a strong recommendation and users should consult an appropriate installation or upgrade guide before deciding what versions of etcd, docker or rkt to use. - -* Docker versions 1.10.3, 1.11.2, 1.12.6 have been validated - - * Docker version 1.12.6 known issues - - * overlay2 driver not fully supported - - * live-restore not fully supported - - * no shared pid namespace support - - * Docker version 1.11.2 known issues - - * Kernel crash with Aufs storage driver on Debian Jessie ([#27885](https://github.com/kubernetes/kubernetes/issues/27885)) which can be identified by the [node problem detector](https://kubernetes.io/docs/tasks/debug-application-cluster/monitor-node-health/) - - * Leaked File descriptors ([#275](https://github.com/docker/containerd/issues/275)) - - * Additional memory overhead per container ([#21737](https://github.com/docker/docker/issues/21737)) - - * Docker 1.10.3 contains [backports provided by RedHat](https://github.com/docker/docker/compare/v1.10.3...runcom:docker-1.10.3-stable) for known issues - -* For issues with Docker 1.13.X please see the [1.13.X tracking issue](https://github.com/kubernetes/kubernetes/issues/42926) - -* rkt version 1.23.0+ - - * known issues with the rkt runtime are [listed in the Getting Started Guide](https://kubernetes.io/docs/getting-started-guides/rkt/notes/) - -* etcd version 3.0.17 - -* Go version: 1.8.3. [Link to announcement](https://groups.google.com/d/msg/kubernetes-dev/0XRRz6UhhTM/YODWVnuDBQAJ) - - * Kubernetes can only be compiled with Go 1.8. Support for all other versions is dropped. +## **Major Themes** + +Kubernetes 1.7 is a milestone release that adds security, stateful application, and extensibility features motivated by widespread production use of Kubernetes. + +Security enhancements in this release include encrypted secrets (alpha), network policy for pod-to-pod communication, the node authorizer to limit Kubelet access to API resources, and Kubelet client / server TLS certificate rotation (alpha). + +Major features for stateful applications include automated updates to StatefulSets, enhanced updates for DaemonSets, a burst mode for faster StatefulSets scaling, and (alpha) support for local storage. + +Extensibility features include API aggregation (beta), CustomResourceDefinitions (beta) in favor of ThirdPartyResources, support for extensible admission controllers (alpha), pluggable cloud providers (alpha), and container runtime interface (CRI) enhancements. + +## **Action Required Before Upgrading** + +### Network + +* NetworkPolicy has been promoted from extensions/v1beta1 to the new networking.k8s.io/v1 API group. The structure remains unchanged from the v1beta1 API. The net.beta.kubernetes.io/network-policy annotation on Namespaces (used to opt in to isolation) has been removed. Instead, isolation is now determined on a per-pod basis. A NetworkPolicy may target a pod for isolation by including the pod in its spec.podSelector. Targeted Pods accept the traffic specified in the respective NetworkPolicy (and nothing else). Pods not targeted by any NetworkPolicy accept all traffic by default. ([#39164](https://github.com/kubernetes/kubernetes/pull/39164), [@danwinship](https://github.com/danwinship)) + + **Action Required:** When upgrading to Kubernetes 1.7 (and a [network plugin](https://kubernetes.io/docs/tasks/administer-cluster/declare-network-policy/) that supports the new NetworkPolicy v1 semantics), you should consider the following. + + The v1beta1 API used an annotation on Namespaces to activate the DefaultDeny policy for an entire Namespace. To activate default deny in the v1 API, you can create a NetworkPolicy that matches all Pods but does not allow any traffic: + + ```yaml + kind: NetworkPolicy + apiVersion: networking.k8s.io/v1 + metadata: + name: default-deny + spec: + podSelector: + ``` + + This will ensure that Pods that aren't matched by any other NetworkPolicy will continue to be fully-isolated, as they were in v1beta1. + + In Namespaces that previously did not have the "DefaultDeny" annotation, you should delete any existing NetworkPolicy objects. These had no effect in the v1beta1 API, but with v1 semantics they might cause some traffic to be unintentionally blocked. + + +### Storage + +* Alpha volume provisioning is removed and default storage class should be used instead. ([#44090](https://github.com/kubernetes/kubernetes/pull/44090), [@NickrenREN](https://github.com/NickrenREN)) + +* Portworx volume driver no longer has to run on the master. ([#45518](https://github.com/kubernetes/kubernetes/pull/45518), [@harsh-px](https://github.com/harsh-px)) + +* Default behavior in Cinder storageclass is changed. If availability is not specified, the zone is chosen by algorithm. It makes possible to spread stateful pods across many zones. ([#44798](https://github.com/kubernetes/kubernetes/pull/44798), [@zetaab](https://github.com/zetaab)) + +* PodSpecs containing parent directory references such as `..` (for example, `../bar`) in hostPath volume path or in volumeMount subpaths must be changed to the simple absolute path. Backsteps `..` are no longer allowed.([#47290](https://github.com/kubernetes/kubernetes/pull/47290), [@jhorwit2](https://github.com/jhorwit2)). + + +### API Machinery + +* The Namespace API object no longer supports the deletecollection operation. ([#46407](https://github.com/kubernetes/kubernetes/pull/46407), [@liggitt](https://github.com/liggitt)) + +* The following alpha API groups were unintentionally enabled by default in previous releases, and will no longer be enabled by default in v1.8: ([#47690](https://github.com/kubernetes/kubernetes/pull/47690), [@caesarxuchao](https://github.com/caesarxuchao)) + + * rbac.authorization.k8s.io/v1alpha1 + + * settings.k8s.io/v1alpha1 + + * If you wish to continue using them in v1.8, please enable them explicitly using the `--runtime-config` flag on the apiserver (for example, `--runtime-config="rbac.authorization.k8s.io/v1alpha1,settings.k8s.io/v1alpha1"`) + +* `cluster/update-storage-objects.sh` now supports updating StorageClasses in etcd to storage.k8s.io/v1. You must do this prior to upgrading to 1.8. ([#46116](https://github.com/kubernetes/kubernetes/pull/46116), [@ncdc](https://github.com/ncdc)) + + +### Controller Manager + +* kube-controller-manager has dropped support for the `--insecure-experimental-approve-all-kubelet-csrs-for-group` flag. It is accepted in 1.7, but ignored. Instead, the csrapproving controller uses authorization checks to determine whether to approve certificate signing requests: ([#45619](https://github.com/kubernetes/kubernetes/pull/45619), [@mikedanese](https://github.com/mikedanese)) + + * Before upgrading, users must ensure their controller manager will enable the csrapproving controller, create an RBAC ClusterRole and ClusterRoleBinding to approve CSRs for the same group, then upgrade. Example roles to enable the equivalent behavior can be found in the [TLS bootstrapping](https://kubernetes.io/docs/admin/kubelet-tls-bootstrapping/) documentation. + + +### kubectl (CLI) +* `kubectl create role` and `kubectl create clusterrole` invocations must be updated to specify multiple resource names as repeated `--resource-name` arguments instead of comma-separated arguments to a single `--resource-name` argument. E.g. `--resource-name=x,y` must become `--resource-name x --resource-name y` ([#44950](https://github.com/kubernetes/kubernetes/pull/44950), [@xilabao](https://github.com/xilabao)) + +* `kubectl create rolebinding` and `kubectl create clusterrolebinding` invocations must be updated to specify multiple subjects as repeated `--user`, `--group`, or `--serviceaccount` arguments instead of comma-separated arguments to a single `--user`, `--group`, or `--serviceaccount`. E.g. `--user=x,y` must become `--user x --user y` ([#43903](https://github.com/kubernetes/kubernetes/pull/43903), [@xilabao](https://github.com/xilabao)) + + +### kubeadm + +* kubeadm: Modifications to cluster-internal resources installed by kubeadm will be overwritten when upgrading from v1.6 to v1.7. ([#47081](https://github.com/kubernetes/kubernetes/pull/47081), [@luxas](https://github.com/luxas)) + +* kubeadm deb/rpm packages: cAdvisor doesn't listen on `0.0.0.0:4194` without authentication/authorization because of the possible information leakage. The cAdvisor API can still be accessed via `https://{node-ip}:10250/stats/`, though. ([kubernetes/release#356](https://github.com/kubernetes/release/pull/356), [@luxas](https://github.com/luxas)) + + +### Cloud Providers + +* Azure: Container permissions for provisioned volumes have changed to private. If you have existing Azure volumes that were created by Kubernetes v1.6.0-v1.6.5, you should change the permissions on them manually. ([#47605](https://github.com/kubernetes/kubernetes/pull/47605), [@brendandburns](https://github.com/brendandburns)) + +* GKE/GCE: New and upgraded 1.7 GCE/GKE clusters no longer have an RBAC ClusterRoleBinding that grants the cluster-admin ClusterRole to the default service account in the kube-system Namespace. ([#46750](https://github.com/kubernetes/kubernetes/pull/46750), [@cjcullen](https://github.com/cjcullen)). If this permission is still desired, run the following command to explicitly grant it, either before or after upgrading to 1.7: + ``` + kubectl create clusterrolebinding kube-system-default --serviceaccount=kube-system:default --clusterrole=cluster-admin + ``` + +## **Known Issues** + +Populated via [v1.7.x known issues / FAQ accumulator](https://github.com/kubernetes/kubernetes/issues/46733) + +* The kube-apiserver discovery APIs (for example, `/apis`) return information about the API groups being served, and can change dynamically. +During server startup, prior to the server reporting healthy (via `/healthz`), not all API groups may be reported. +Wait for the server to report healthy (via `/healthz`) before depending on the information provided by the discovery APIs. +Additionally, since the information returned from the discovery APIs may change dynamically, a cache of the results should not be considered authoritative. +ETag support is planned in a future version to facilitate client caching. +([#47977](https://github.com/kubernetes/kubernetes/issues/47977), [#44957](https://github.com/kubernetes/kubernetes/issues/44957)) + +* The DaemonSet controller will evict running Pods that do not tolerate the NoSchedule taint if the taint is added to a Node. There is an open PR ([#48189](https://github.com/kubernetes/kubernetes/pull/48189)) to resolve this issue, but as this issue also exists in 1.6, and as we do not wish to risk release stability by merging it directly prior to a release without sufficient testing, we have decided to defer merging the PR until the next point release for each minor version ([#48190](https://github.com/kubernetes/kubernetes/issues/48190)). + +* Protobuf serialization does not distinguish between `[]` and `null`. +API fields previously capable of storing and returning either `[]` and `null` via JSON API requests (for example, the Endpoints `subsets` field) +can now store only `null` when created using the protobuf content-type or stored in etcd using protobuf serialization (the default in 1.6). +JSON API clients should tolerate `null` values for such fields, and treat `null` and `[]` as equivalent in meaning unless specifically documented otherwise for a particular field. ([#44593](https://github.com/kubernetes/kubernetes/issues/44593)) + +## **Deprecations** + +### Cluster provisioning scripts +* cluster/ubuntu: Removed due to [deprecation](https://github.com/kubernetes/kubernetes/tree/master/cluster#cluster-configuration) and lack of maintenance. ([#44344](https://github.com/kubernetes/kubernetes/pull/44344), [@mikedanese](https://github.com/mikedanese)) + +* cluster/aws: Removed due to [deprecation](https://github.com/kubernetes/kubernetes/pull/38772) and lack of maintenance. ([#42196](https://github.com/kubernetes/kubernetes/pull/42196), [@zmerlynn](https://github.com/zmerlynn)) + + +### Client libraries +* Swagger 1.2 spec (`/swaggerapi/*`) is deprecated. Please use OpenAPI instead. + +### DaemonSet +* DaemonSet’s spec.templateGeneration has been deprecated. ([#45924](https://github.com/kubernetes/kubernetes/pull/45924), [@janetkuo](https://github.com/janetkuo)) + +### kube-proxy +* In 1.7, the kube-proxy component has been converted to use a configuration file. The old flags still work in 1.7, but they are being deprecated and will be removed in a future release. Cluster administrators are advised to switch to using the configuration file, but no action is strictly necessary in 1.7. ([#34727](https://github.com/kubernetes/kubernetes/pull/34727), [@ncdc](https://github.com/ncdc)) + +### Namespace +* The Namespace API object no longer supports the deletecollection operation. ([#46407](https://github.com/kubernetes/kubernetes/pull/46407), [@liggitt](https://github.com/liggitt)) + + +### Scheduling +* If you are using `AffinityInAnnotations=true` in `--feature-gates`, then the 1.7 release is your last opportunity to convert from specifying affinity/anti-affinity using the scheduler.alpha.kubernetes.io/affinity annotation on Pods, to using the Affinity field of PodSpec. Support for the alpha version of node and pod affinity (which uses the scheduler.alpha.kubernetes.io/affinity annotations on Pods) is going away **in Kubernetes 1.8** (not this release, but the next release). If you have not enabled AffinityInAnnotations=true in `--feature-gates`, then this change does not affect you. + +## **Notable Features** + +Features for this release were tracked via the use of the [kubernetes/features](https://github.com/kubernetes/features) issues repo. Each Feature issue is owned by a Special Interest Group from [kubernetes/community](https://github.com/kubernetes/community) + +## Kubefed + +* Deprecate the `--secret-name` flag from `kubefed join`, instead generating the secret name arbitrarily. ([#42513](https://github.com/kubernetes/kubernetes/pull/42513), [@perotinus](https://github.com/perotinus)) + + +### **Kubernetes API** +#### User Provided Extensions +* [beta] ThirdPartyResource is deprecated. Please migrate to the successor, CustomResourceDefinition. For more information, see [Custom Resources](https://kubernetes.io/docs/concepts/api-extension/custom-resources/) and [Migrate a ThirdPartyResource to CustomResourceDefinition](https://kubernetes.io/docs/tasks/access-kubernetes-api/migrate-third-party-resource/). + +* [beta] User-provided apiservers can be aggregated (served along with) the rest of the Kubernetes API. See [Extending the Kubernetes API with the aggregation layer](https://kubernetes.io/docs/concepts/api-extension/apiserver-aggregation/), [Configure the aggregation layer](https://kubernetes.io/docs/tasks/access-kubernetes-api/configure-aggregation-layer/), and [Setup an extension API server](https://kubernetes.io/docs/tasks/access-kubernetes-api/setup-extension-api-server/). + +* [alpha] Adding admissionregistration API group which enables dynamic registration of initializers and external admission webhooks. ([#46294](https://github.com/kubernetes/kubernetes/pull/46294), [@caesarxuchao](https://github.com/caesarxuchao)) + + +### **Application Deployment** +#### StatefulSet +* [beta] StatefulSet supports [RollingUpdate](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#rolling-updates) and [OnDelete](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#on-delete) update strategies. + +* [alpha] StatefulSet authors should be able to relax the [ordering](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#orderedready-pod-management) and [parallelism](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#parallel-pod-management) policies for software that can safely support rapid, out-of-order changes. + +#### DaemonSet +* [beta] DaemonSet supports history and rollback. See [Performing a Rollback on a DaemonSet](https://kubernetes.io/docs/tasks/manage-daemon/rollback-daemon-set/). + +#### Deployments +* [beta] Deployments uses a hashing collision avoidance mechanism that ensures new rollouts will not block on hashing collisions anymore. ([kubernetes/features#287](https://github.com/kubernetes/features/issues/287)) + +#### PodDisruptionBudget +* [beta] PodDisruptionBudget has a new field MaxUnavailable, which allows users to specify the maximum number of disruptions that can be tolerated during eviction. For more information, see [Pod Disruptions](https://kubernetes.io/docs/concepts/workloads/pods/disruptions/) and [Specifying a Disruption Budget for your Application](https://kubernetes.io/docs/tasks/run-application/configure-pdb/). + + +### **Security** +#### Admission Control +* [alpha] Add [extensible external admission control](https://kubernetes.io/docs/admin/extensible-admission-controllers/). + +#### TLS Bootstrapping +* [alpha] Rotation of the server TLS certificate on the kubelet. See [TLS bootstrapping - approval controller](https://kubernetes.io/docs/admin/kubelet-tls-bootstrapping/#approval-controller). + +* [alpha] Rotation of the client TLS certificate on the kubelet. See [TLS bootstrapping - kubelet configuration](https://kubernetes.io/docs/admin/kubelet-tls-bootstrapping/#kubelet-configuration). + +* [beta] [Kubelet TLS Bootstrap](https://kubernetes.io/docs/admin/kubelet-tls-bootstrapping/#kubelet-configuration) + +#### Audit Logging +* [alpha] Advanced Auditing enhances the Kubernetes API [audit logging](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#audit-logs) capabilities through a customizable policy, pluggable audit backends, and richer audit data. + +#### Encryption at Rest +* [alpha] Encrypt secrets stored in etcd. For more information, see [Securing a Cluster](https://kubernetes.io/docs/tasks/administer-cluster/securing-a-cluster/) and [Encrypting data at rest](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/). + +#### Node Authorization +* [beta] A new Node authorization mode and NodeRestriction admission plugin, when used in combination, limit nodes' access to specific APIs, so that they may only modify their own Node API object, only modify Pod objects bound to themselves, and only retrieve secrets and configmaps referenced by pods bound to themselves. See [Using Node Authorization](https://kubernetes.io/docs/admin/authorization/node/) for more information. + + +### **Application Autoscaling** +#### Horizontal Pod Autoscaler +* [alpha] [HPA Status Conditions](https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/#appendix-horizontal-pod-autoscaler-status-conditions). + + +### **Cluster Lifecycle** +#### kubeadm +* [alpha] Manual [upgrades for kubeadm from v1.6 to v1.7](https://kubernetes.io/docs/tasks/administer-cluster/kubeadm-upgrade-1-7/). Automated upgrades ([kubernetes/features#296](https://github.com/kubernetes/features/issues/296)) are targeted for v1.8. + +#### Cloud Provider Support +* [alpha] Improved support for out-of-tree and out-of-process cloud providers, a.k.a pluggable cloud providers. See [Build and Run cloud-controller-manager](https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller) documentation. + + +### **Cluster Federation** +#### Placement Policy +* [alpha] The federation-apiserver now supports a SchedulingPolicy admission controller that enables policy-based control over placement of federated resources. For more information, see [Set up placement policies in Federation](https://kubernetes.io/docs/tasks/federation/set-up-placement-policies-federation/). + +#### Cluster Selection +* [alpha] Federation [ClusterSelector annotation](https://kubernetes.io/docs/tasks/administer-federation/cluster/#clusterselector-annotation) to direct objects to federated clusters with matching labels. + + +### **Instrumentation** +#### Core Metrics API +* [alpha] Introduces a lightweight monitoring component for serving the core resource metrics API used by the Horizontal Pod Autoscaler and other components ([kubernetes/features#271](https://github.com/kubernetes/features/issues/271)) + + +### **Internationalization** + +* Add Traditional Chinese translation for kubectl ([#46559](https://github.com/kubernetes/kubernetes/pull/46559), [@warmchang](https://github.com/warmchang)) + +* Add Japanese translation for kubectl ([#46756](https://github.com/kubernetes/kubernetes/pull/46756), [@girikuncoro](https://github.com/girikuncoro)) + +* Add Simplified Chinese translation for kubectl ([#45573](https://github.com/kubernetes/kubernetes/pull/45573), [@shiywang](https://github.com/shiywang)) + +### **kubectl (CLI)** +* Features + + * `kubectl logs` supports specifying a container name when using label selectors ([#44282](https://github.com/kubernetes/kubernetes/pull/44282), [@derekwaynecarr](https://github.com/derekwaynecarr)) + + * `kubectl rollout` supports undo and history for DaemonSet ([#46144](https://github.com/kubernetes/kubernetes/pull/46144), [@janetkuo](https://github.com/janetkuo)) + + * `kubectl rollout` supports status and history for StatefulSet ([#46669](https://github.com/kubernetes/kubernetes/pull/46669), [@kow3ns](https://github.com/kow3ns)). + + * Implement `kubectl get controllerrevisions` ([#46655](https://github.com/kubernetes/kubernetes/pull/46655), [@janetkuo](https://github.com/janetkuo)) + + * `kubectl create clusterrole` supports `--non-resource-url` ([#45809](https://github.com/kubernetes/kubernetes/pull/45809), [@CaoShuFeng](https://github.com/CaoShuFeng)) + + * `kubectl logs` and `kubectl attach` support specifying a wait timeout with `--pod-running-timeout` + + * ([#41813](https://github.com/kubernetes/kubernetes/pull/41813), [@shiywang](https://github.com/shiywang)) + + * New commands + + * Add `kubectl config rename-context` ([#46114](https://github.com/kubernetes/kubernetes/pull/46114), [@arthur0](https://github.com/arthur0)) + + * Add `kubectl apply edit-last-applied` subcommand ([#42256](https://github.com/kubernetes/kubernetes/pull/42256), [@shiywang](https://github.com/shiywang)) + + * Strategic Merge Patch + + * Reference docs now display the patch type and patch merge key used by `kubectl apply` to merge and identify unique elements in arrays. + + * `kubectl edit` and `kubectl apply` will keep the ordering of elements in merged lists ([#45980](https://github.com/kubernetes/kubernetes/pull/45980), [@mengqiy](https://github.com/mengqiy)) + + * New patch directive (retainKeys) to specifying clearing fields missing from the request ([#44597](https://github.com/kubernetes/kubernetes/pull/44597), [@mengqiy](https://github.com/mengqiy)) + + * Open API now includes strategic merge patch tags (previously only in go struct tags) ([#44121](https://github.com/kubernetes/kubernetes/pull/44121), [@mbohlool](https://github.com/mbohlool)) + + * Plugins + + * Introduces the ability to extend kubectl by adding third-party plugins. Developer preview, please refer to the documentation for instructions about how to use it. ([#37499](https://github.com/kubernetes/kubernetes/pull/37499), [@fabianofranz](https://github.com/fabianofranz)) + + * Added support for a hierarchy of kubectl plugins (a tree of plugins as children of other plugins). ([#45981](https://github.com/kubernetes/kubernetes/pull/45981), [@fabianofranz](https://github.com/fabianofranz)) + + * Added exported env vars to kubectl plugins so that plugin developers have access to global flags, namespace, the plugin descriptor and the full path to the caller binary. + + * Enhancement + + * `kubectl auth can-i` now supports non-resource URLs ([#46432](https://github.com/kubernetes/kubernetes/pull/46432), [@CaoShuFeng](https://github.com/CaoShuFeng)) + + * `kubectl set selector` and `kubectl set subject` no longer print "running in local/dry-run mode..." at the top. The output can now be piped and interpretted as yaml or json ([#46507](https://github.com/kubernetes/kubernetes/pull/46507), [@bboreham](https://github.com/bboreham)) + + * When using an in-cluster client with an empty configuration, the `--namespace` flag is now honored ([#46299](https://github.com/kubernetes/kubernetes/pull/46299), [@ncdc](https://github.com/ncdc)) + + * The help message for missingResourceError is now generic ([#45582](https://github.com/kubernetes/kubernetes/pull/45582), [@CaoShuFeng](https://github.com/CaoShuFeng)) + + * `kubectl taint node` now supports label selectors ([#44740](https://github.com/kubernetes/kubernetes/pull/44740), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) + + * `kubectl proxy --www` now logs a warning when the dir is invalid ([#44952](https://github.com/kubernetes/kubernetes/pull/44952), [@CaoShuFeng](https://github.com/CaoShuFeng)) + + * `kubectl taint` output has been enhanced with the operation ([#43171](https://github.com/kubernetes/kubernetes/pull/43171), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) + + * kubectl `--user` and `--cluster` now support completion ([#44251](https://github.com/kubernetes/kubernetes/pull/44251), [@superbrothers](https://github.com/superbrothers)) + + * `kubectl config use-context` now supports completion ([#42336](https://github.com/kubernetes/kubernetes/pull/42336), [@superbrothers](https://github.com/superbrothers)) + + * `kubectl version` now supports `--output` ([#39858](https://github.com/kubernetes/kubernetes/pull/39858), [@alejandroEsc](https://github.com/alejandroEsc)) + + * `kubectl create configmap` has a new option `--from-env-file` that populates a configmap from file which follows a key=val format for each line. ([#38882](https://github.com/kubernetes/kubernetes/pull/38882), [@fraenkel](https://github.com/fraenkel)) + + * `kubectl create secret` has a new option `--from-env-file` that populates a configmap from file which follows a key=val format for each line. + + * Printing/describe + + * Print conditions of RC/RS in `kubectl describe` command. ([#44710](https://github.com/kubernetes/kubernetes/pull/44710), [@xiangpengzhao](https://github.com/xiangpengzhao)) + + * Improved output on `kubectl get` and `kubectl describe` for generic objects. ([#44222](https://github.com/kubernetes/kubernetes/pull/44222), [@fabianofranz](https://github.com/fabianofranz)) + + * In `kubectl describe`, find controllers with ControllerRef, instead of showing the original creator. ([#42849](https://github.com/kubernetes/kubernetes/pull/42849), [@janetkuo](https://github.com/janetkuo)) + + * `kubectl version` has new flag --output (=json or yaml) allowing result of the command to be parsed in either json format or yaml. ([#39858](https://github.com/kubernetes/kubernetes/pull/39858), [@alejandroEsc](https://github.com/alejandroEsc)) + + + * Bug fixes + + * Fix some false negatives in detection of meaningful conflicts during strategic merge patch with maps and lists. ([#43469](https://github.com/kubernetes/kubernetes/pull/43469), [@enisoc](https://github.com/enisoc)) + + * Fix false positive "meaningful conflict" detection for strategic merge patch with integer values. ([#44788](https://github.com/kubernetes/kubernetes/pull/44788), [@enisoc](https://github.com/enisoc)) + + * Restored the ability of kubectl running inside a pod to consume resource files specifying a different namespace than the one the pod is running in. ([#44862](https://github.com/kubernetes/kubernetes/pull/44862), [@liggitt](https://github.com/liggitt)) + + * Kubectl commands run inside a pod using a kubeconfig file now use the namespace specified in the kubeconfig file, instead of using the pod namespace. If no kubeconfig file is used, or the kubeconfig does not specify a namespace, the pod namespace is still used as a fallback. ([#44570](https://github.com/kubernetes/kubernetes/pull/44570), [@liggitt](https://github.com/liggitt)) + + * Fixed `kubectl cluster-info` dump to support multi-container pod. ([#44088](https://github.com/kubernetes/kubernetes/pull/44088), [@xingzhou](https://github.com/xingzhou)) + + * Kubectl will print a warning when deleting the current context ([#42538](https://github.com/kubernetes/kubernetes/pull/42538), [@adohe](https://github.com/adohe)) + + * Fix VolumeClaims/capacity in `kubectl describe statefulsets` output. ([#47573](https://github.com/kubernetes/kubernetes/pull/47573), [@k82cn](https://github.com/k82cn)) + + * Fixed the output of kubectl taint node command with minor improvements. ([#43171](https://github.com/kubernetes/kubernetes/pull/43171), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) + + +### **Networking** +#### Network Policy +* [stable] [NetworkPolicy](https://kubernetes.io/docs/concepts/services-networking/network-policies/) promoted to GA. + * Additionally adds short name "netpol" for networkpolicies ([#42241](https://github.com/kubernetes/kubernetes/pull/42241), [@xiangpengzhao](https://github.com/xiangpengzhao)) + + +#### Load Balancing +* [stable] Source IP Preservation - change Cloud load-balancer strategy to health-checks and respond to health check only on nodes that host pods for the service. See [Create an External Load Balancer - Preserving the client source IP](https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip). + Two annotations have been promoted to API fields: + + * Service.Spec.ExternalTrafficPolicy was 'service.beta.kubernetes.io/external-traffic' annotation. + + * Service.Spec.HealthCheckNodePort was 'service.beta.kubernetes.io/healthcheck-nodeport' annotation. + +### **Node Components** +#### Container Runtime Interface +* [alpha] CRI validation testing, which provides a test framework and a suite of tests to validate that the CRI server implementation meets all the requirements. This allows the CRI runtime developers to verify that their runtime conforms to CRI, without needing to set up Kubernetes components or run Kubernetes end-to-end tests. ([docs](https://github.com/kubernetes/community/blob/master/contributors/devel/cri-validation.md) and [release notes](https://github.com/kubernetes-incubator/cri-tools/releases/tag/v0.1)) ([kubernetes/features#292](https://github.com/kubernetes/features/issues/292)) + +* [alpha] Adds support of container metrics in CRI ([docs PR](https://github.com/kubernetes/community/pull/742)) ([kubernetes/features#290](https://github.com/kubernetes/features/issues/290)) + +* [alpha] Integration with [containerd] (https://github.com/containerd/containerd) , which supports basic pod lifecycle and image management. ([docs](https://github.com/kubernetes-incubator/cri-containerd/blob/master/README.md) and [release notes](https://github.com/kubernetes-incubator/cri-containerd/releases/tag/v0.1.0)) ([kubernetes/features#286](https://github.com/kubernetes/features/issues/286)) + +* [GA] The Docker-CRI implementation is GA. The legacy, non-CRI Docker integration has been completely removed. + +* [beta] [CRI-O](https://github.com/kubernetes-incubator/cri-o) v1.0.0-alpha.0. It has passed all e2e tests. ([release notes](https://github.com/kubernetes-incubator/cri-o/releases/tag/v1.0.0-alpha.0)) + +* [beta] [Frakti](https://github.com/kubernetes/frakti) v1.0. It has passed all node conformance tests. ([release notes](https://github.com/kubernetes/frakti/releases/tag/v1.0)) + + + +### **Scheduling** +#### Scheduler Extender +* [alpha] Support for delegating pod binding to a scheduler extender ([kubernetes/features#270](https://github.com/kubernetes/features/issues/270)) + +### **Storage** +#### Local Storage +* [alpha] This feature adds capacity isolation support for local storage at node, container, and volume levels. See updated [Reserve Compute Resources for System Daemons](https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/) documentation. + +* [alpha] Make locally attached (non-network attached) storage available as a persistent volume source. For more information, see [Storage Volumes - local](https://kubernetes.io/docs/concepts/storage/volumes/#local). + +#### Volume Plugins +* [stable] Volume plugin for StorageOS provides highly-available cluster-wide persistent volumes from local or attached node storage. See [Persistent Volumes - StorageOS](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#storageos) and [Storage Volumes - StorageOS](https://kubernetes.io/docs/concepts/storage/volumes/#storageos). + +#### Metrics +* [stable] Add support for cloudprovider metrics for storage API calls. See [Controller manager metrics](https://kubernetes.io/docs/concepts/cluster-administration/controller-metrics/) for more information. + +### **Other notable changes** + + +#### Admission plugin +* OwnerReferencesPermissionEnforcement admission plugin ignores pods/status. ([#45747](https://github.com/kubernetes/kubernetes/pull/45747), [@derekwaynecarr](https://github.com/derekwaynecarr)) + + +* Ignored mirror pods in PodPreset admission plugin. ([#45958](https://github.com/kubernetes/kubernetes/pull/45958), [@k82cn](https://github.com/k82cn)) + +#### API Machinery +* The protobuf serialization of API objects has been updated to store maps in a predictable order to ensure that the representation of that object does not change when saved into etcd. This prevents the same object from being seen as being modified, even when no values have changed. ([#47701](https://github.com/kubernetes/kubernetes/pull/47701), [@smarterclayton](https://github.com/smarterclayton)) + +* API resource discovery now includes the singularName used to refer to the resource. ([#43312](https://github.com/kubernetes/kubernetes/pull/43312), [@deads2k](https://github.com/deads2k)) + +* Enhance the garbage collection admission plugin so that a user who doesn't have delete permission of the owning object cannot modify the blockOwnerDeletion field of existing ownerReferences, or add new ownerReferences with blockOwnerDeletion=true ([#43876](https://github.com/kubernetes/kubernetes/pull/43876), [@caesarxuchao](https://github.com/caesarxuchao)) + +* Exec and portforward actions over SPDY now properly handle redirects sent by the Kubelet ([#44451](https://github.com/kubernetes/kubernetes/pull/44451), [@ncdc](https://github.com/ncdc)) + +* The proxy subresource APIs for nodes, services, and pods now support the HTTP PATCH method. ([#44929](https://github.com/kubernetes/kubernetes/pull/44929), [@liggitt](https://github.com/liggitt)) + +* The Categories []string field on discovered API resources represents the list of group aliases (e.g. "all") that each resource belongs to. ([#43338](https://github.com/kubernetes/kubernetes/pull/43338), [@fabianofranz](https://github.com/fabianofranz)) + +* [alpha] The Kubernetes API supports retrieving tabular output for API resources via a new mime-type application/json;as=Table;v=v1alpha1;g=meta.k8s.io. The returned object (if the server supports it) will be of type meta.k8s.io/v1alpha1 with Table, and contain column and row information related to the resource. Each row will contain information about the resource - by default it will be the object metadata, but callers can add the ?includeObject=Object query parameter and receive the full object. In the future kubectl will use this to retrieve the results of `kubectl get`. ([#40848](https://github.com/kubernetes/kubernetes/pull/40848), [@smarterclayton](https://github.com/smarterclayton)) + +* The behavior of some watch calls to the server when filtering on fields was incorrect. If watching objects with a filter, when an update was made that no longer matched the filter a DELETE event was correctly sent. However, the object that was returned by that delete was not the (correct) version before the update, but instead, the newer version. That meant the new object was not matched by the filter. This was a regression from behavior between cached watches on the server side and uncached watches, and thus broke downstream API clients. ([#46223](https://github.com/kubernetes/kubernetes/pull/46223), [@smarterclayton](https://github.com/smarterclayton)) + +* OpenAPI spec is now available in protobuf binary and gzip format (with ETag support) ([#45836](https://github.com/kubernetes/kubernetes/pull/45836), [@mbohlool](https://github.com/mbohlool)) + +* Updating apiserver to return UID of the deleted resource. Clients can use this UID to verify that the resource was deleted or waiting for finalizers. ([#45600](https://github.com/kubernetes/kubernetes/pull/45600), [@nikhiljindal](https://github.com/nikhiljindal)) + +* Fix incorrect conflict errors applying strategic merge patches to resources. ([#43871](https://github.com/kubernetes/kubernetes/pull/43871), [@liggitt](https://github.com/liggitt)) + +* Fix init container status reporting when active deadline is exceeded. ([#46305](https://github.com/kubernetes/kubernetes/pull/46305), [@sjenning](https://github.com/sjenning)) + +* Moved qos to api.helpers. ([#44906](https://github.com/kubernetes/kubernetes/pull/44906), [@k82cn](https://github.com/k82cn)) + +* Fix issue with the resource quota controller causing add quota to be resynced at the wrong ([#45685](https://github.com/kubernetes/kubernetes/pull/45685), [@derekwaynecarr](https://github.com/derekwaynecarr)) + +* Added Group/Version/Kind and Action extension to OpenAPI Operations ([#44787](https://github.com/kubernetes/kubernetes/pull/44787), [@mbohlool](https://github.com/mbohlool)) + +* Make clear that meta.KindToResource is only a guess ([#45272](https://github.com/kubernetes/kubernetes/pull/45272), [@sttts](https://github.com/sttts)) + +* Add APIService conditions ([#43301](https://github.com/kubernetes/kubernetes/pull/43301), [@deads2k](https://github.com/deads2k)) + +* Create and push a docker image for the cloud-controller-manager ([#45154](https://github.com/kubernetes/kubernetes/pull/45154), [@luxas](https://github.com/luxas)) + +* Deprecated Binding objects in 1.7. ([#47041](https://github.com/kubernetes/kubernetes/pull/47041), [@k82cn](https://github.com/k82cn)) + +* Adds the Categories []string field to API resources, which represents the list of group aliases (e.g. "all") that every resource belongs to. ([#43338](https://github.com/kubernetes/kubernetes/pull/43338), [@fabianofranz](https://github.com/fabianofranz)) + +* `--service-account-lookup` now defaults to true, requiring the Secret API object containing the token to exist in order for a service account token to be valid. This enables service account tokens to be revoked by deleting the Secret object containing the token. ([#44071](https://github.com/kubernetes/kubernetes/pull/44071), [@liggitt](https://github.com/liggitt)) + +* API Registration is now in beta. ([#45247](https://github.com/kubernetes/kubernetes/pull/45247), [@mbohlool](https://github.com/mbohlool)) + +* The Kubernetes API server now exits if it encounters a networking failure (e.g. the networking interface hosting its address goes away) to allow a process manager (systemd/kubelet/etc) to react to the problem. Previously the server would log the failure and try again to bind to its configured address:port. ([#42272](https://github.com/kubernetes/kubernetes/pull/42272), [@marun](https://github.com/marun)) + +* The Prometheus metrics for the kube-apiserver for tracking incoming API requests and latencies now return the subresource label for correctly attributing the type of API call. ([#46354](https://github.com/kubernetes/kubernetes/pull/46354), [@smarterclayton](https://github.com/smarterclayton)) + +* kube-apiserver now drops unneeded path information if an older version of Windows kubectl sends it. ([#44421](https://github.com/kubernetes/kubernetes/pull/44421), [@mml](https://github.com/mml)) + + +#### Application autoscaling +* Make "upscale forbidden window" and "downscale forbidden window" duration configurable in arguments of kube-controller-manager. ([#42101](https://github.com/kubernetes/kubernetes/pull/42101), [@Dmitry1987](https://github.com/Dmitry1987)) + +#### Application Deployment +* StatefulSetStatus now tracks replicas, readyReplicas, currentReplicas, and updatedReplicas. The semantics of replicas is now consistent with DaemonSet and ReplicaSet, and readyReplicas has the semantics that replicas did prior to 1.7 ([#46669](https://github.com/kubernetes/kubernetes/pull/46669), [@kow3ns](https://github.com/kow3ns)). + +* ControllerRevision type has been added for StatefulSet and DaemonSet history. Clients should not depend on the stability of this type as it may change, as necessary, in future releases to support StatefulSet and DaemonSet update and rollback. We enable this type as we do with beta features, because StatefulSet update and DaemonSet update are enabled. ([#45867](https://github.com/kubernetes/kubernetes/pull/45867), [@kow3ns](https://github.com/kow3ns)) + +* PodDisruptionBudget now uses ControllerRef to decide which controller owns a given Pod, so it doesn't get confused by controllers with overlapping selectors. ([#45003](https://github.com/kubernetes/kubernetes/pull/45003), [@krmayankk](https://github.com/krmayankk)) + +* Deployments are updated to use (1) a more stable hashing algorithm (fnv) than the previous one (adler) and (2) a hashing collision avoidance mechanism that will ensure new rollouts will not block on hashing collisions anymore. ([#44774](https://github.com/kubernetes/kubernetes/pull/44774), [@kargakis](https://github.com/kargakis))([kubernetes/features#287](https://github.com/kubernetes/features/issues/287)) + +* Deployments and DaemonSets rollouts are considered complete when all of the desired replicas are updated and available. This change affects `kubectl rollout status` and Deployment condition. ([#44672](https://github.com/kubernetes/kubernetes/pull/44672), [@kargakis](https://github.com/kargakis)) + +* Job controller now respects ControllerRef to avoid fighting over Pods. ([#42176](https://github.com/kubernetes/kubernetes/pull/42176), [@enisoc](https://github.com/enisoc)) + +* CronJob controller now respects ControllerRef to avoid fighting with other controllers. ([#42177](https://github.com/kubernetes/kubernetes/pull/42177), [@enisoc](https://github.com/enisoc)) + +#### Cluster Autoscaling +* Cluster Autoscaler 0.6. More information available [here](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/README.md). + +* cluster-autoscaler: Fix duplicate writing of logs. ([#45017](https://github.com/kubernetes/kubernetes/pull/45017), [@MaciekPytel](https://github.com/MaciekPytel)) + + +#### Cloud Provider Enhancement + +* AWS: + + * New 'service.beta.kubernetes.io/aws-load-balancer-extra-security-groups' Service annotation to specify extra Security Groups to be added to ELB created by AWS cloudprovider ([#45268](https://github.com/kubernetes/kubernetes/pull/45268), [@redbaron](https://github.com/redbaron)) + + * Clean up blackhole routes when using kubenet ([#47572](https://github.com/kubernetes/kubernetes/pull/47572), [@justinsb](https://github.com/justinsb)) + + * Maintain a cache of all instances, to fix problem with > 200 nodes with ELBs ([#47410](https://github.com/kubernetes/kubernetes/pull/47410), [@justinsb](https://github.com/justinsb)) + + * Avoid spurious ELB listener recreation - ignore case when matching protocol ([#47391](https://github.com/kubernetes/kubernetes/pull/47391), [@justinsb](https://github.com/justinsb)) + + * Allow configuration of a single security group for ELBs ([#45500](https://github.com/kubernetes/kubernetes/pull/45500), [@nbutton23](https://github.com/nbutton23)) + + * Remove check that forces loadBalancerSourceRanges to be 0.0.0.0/0. ([#38636](https://github.com/kubernetes/kubernetes/pull/38636), [@dhawal55](https://github.com/dhawal55)) + + * Allow setting KubernetesClusterID or KubernetesClusterTag in combination with VPC. ([#42512](https://github.com/kubernetes/kubernetes/pull/42512), [@scheeles](https://github.com/scheeles)) + + * Start recording cloud provider metrics for AWS ([#43477](https://github.com/kubernetes/kubernetes/pull/43477), [@gnufied](https://github.com/gnufied)) + + * AWS: Batch DescribeInstance calls with nodeNames to 150 limit, to stay within AWS filter limits. ([#47516](https://github.com/kubernetes/kubernetes/pull/47516), [@gnufied](https://github.com/gnufied)) + + * AWS: Process disk attachments even with duplicate NodeNames ([#47406](https://github.com/kubernetes/kubernetes/pull/47406), [@justinsb](https://github.com/justinsb)) + + * Allow configuration of a single security group for ELBs ([#45500](https://github.com/kubernetes/kubernetes/pull/45500), [@nbutton23](https://github.com/nbutton23)) + + * Fix support running the master with a different AWS account or even on a different cloud provider than the nodes. ([#44235](https://github.com/kubernetes/kubernetes/pull/44235), [@mrIncompetent](https://github.com/mrIncompetent)) + + * Support node port health check ([#43585](https://github.com/kubernetes/kubernetes/pull/43585), [@foolusion](https://github.com/foolusion)) + + * Support for ELB tagging by users ([#45932](https://github.com/kubernetes/kubernetes/pull/45932), [@lpabon](https://github.com/lpabon)) + +* Azure: + + * Add support for UDP ports ([#45523](https://github.com/kubernetes/kubernetes/pull/45523), [@colemickens](https://github.com/colemickens)) + + * Fix support for multiple loadBalancerSourceRanges ([#45523](https://github.com/kubernetes/kubernetes/pull/45523), [@colemickens](https://github.com/colemickens)) + + * Support the Service spec's sessionAffinity ([#45523](https://github.com/kubernetes/kubernetes/pull/45523), [@colemickens](https://github.com/colemickens)) + + * Added exponential backoff to Azure cloudprovider ([#46660](https://github.com/kubernetes/kubernetes/pull/46660), [@jackfrancis](https://github.com/jackfrancis)) + + * Add support for bring-your-own ip address for Services on Azure ([#42034](https://github.com/kubernetes/kubernetes/pull/42034), [@brendandburns](https://github.com/brendandburns)) + + * Add support for Azure internal load balancer ([#43510](https://github.com/kubernetes/kubernetes/pull/43510), [@karataliu](https://github.com/karataliu)) + + * Client poll duration is now 5 seconds ([#43699](https://github.com/kubernetes/kubernetes/pull/43699), [@colemickens](https://github.com/colemickens)) + + * Azure plugin for client auth ([#43987](https://github.com/kubernetes/kubernetes/pull/43987), [@cosmincojocar](https://github.com/cosmincojocar)) + + +* GCP: + + * Bump GLBC version to 0.9.5 - fixes [loss of manually modified GCLB health check settings](https://github.com/kubernetes/kubernetes/issues/47559) upon upgrade from pre-1.6.4 to either 1.6.4 or 1.6.5. ([#47567](https://github.com/kubernetes/kubernetes/pull/47567), [@nicksardo](https://github.com/nicksardo)) + + * [beta] Support creation of GCP Internal Load Balancers from Service objects ([#46663](https://github.com/kubernetes/kubernetes/pull/46663), [@nicksardo](https://github.com/nicksardo)) + + * GCE installs will now avoid IP masquerade for all RFC-1918 IP blocks, rather than just 10.0.0.0/8. This means that clusters can be created in 192.168.0.0./16 and 172.16.0.0/12 while preserving the container IPs (which would be lost before). ([#46473](https://github.com/kubernetes/kubernetes/pull/46473), [@thockin](https://github.com/thockin)) + + * The Calico version included in kube-up for GCE has been updated to v2.2. ([#38169](https://github.com/kubernetes/kubernetes/pull/38169), [@caseydavenport](https://github.com/caseydavenport)) + + * ip-masq-agent is now on by default for GCE ([#47794](https://github.com/kubernetes/kubernetes/pull/47794), [@dnardo](https://github.com/dnardo)) + + * Add ip-masq-agent addon to the addons folder which is used in GCE if `--non-masquerade-cidr` is set to 0/0 ([#46038](https://github.com/kubernetes/kubernetes/pull/46038), [@dnardo](https://github.com/dnardo)) + + * Enable kubelet csr bootstrap in GCE/GKE ([#40760](https://github.com/kubernetes/kubernetes/pull/40760), [@mikedanese](https://github.com/mikedanese)) + + * Adds support for allocation of pod IPs via IP aliases. ([#42147](https://github.com/kubernetes/kubernetes/pull/42147), [@bowei](https://github.com/bowei)) + + * gce kube-up: The Node authorization mode and NodeRestriction admission controller are now enabled ([#46796](https://github.com/kubernetes/kubernetes/pull/46796), [@mikedanese](https://github.com/mikedanese)) + + * Tokens retrieved from Google Cloud with application default credentials will not be cached if the client fails authorization ([#46694](https://github.com/kubernetes/kubernetes/pull/46694), [@matt-tyler](https://github.com/matt-tyler)) + + * Add metrics to all major gce operations {latency, errors} ([#44510](https://github.com/kubernetes/kubernetes/pull/44510), [@bowei](https://github.com/bowei)) + + * The new metrics are: + + * cloudprovider_gce_api_request_duration_seconds{request, region, zone} + + * cloudprovider_gce_api_request_errors{request, region, zone} + + * request is the specific function that is used. + + * region is the target region (Will be "<n/a>" if not applicable) + + * zone is the target zone (Will be "<n/a>" if not applicable) + + * Note: this fixes some issues with the previous implementation of metrics for disks: + + * Time duration tracked was of the initial API call, not the entire operation. + + * Metrics label tuple would have resulted in many independent histograms stored, one for each disk. (Did not aggregate well). + + * Fluentd now tolerates all NoExecute Taints when run in gcp configuration. ([#45715](https://github.com/kubernetes/kubernetes/pull/45715), [@gmarek](https://github.com/gmarek)) + + * Taints support in gce/salt startup scripts. ([#47632](https://github.com/kubernetes/kubernetes/pull/47632), [@mwielgus](https://github.com/mwielgus)) + + * GCE installs will now avoid IP masquerade for all RFC-1918 IP blocks, rather than just 10.0.0.0/8. This means that clusters can ([#46473](https://github.com/kubernetes/kubernetes/pull/46473), [@thockin](https://github.com/thockin)) be created in 192.168.0.0./16 and 172.16.0.0/12 while preserving the container IPs (which would be lost before). + + * Support running Ubuntu image on GCE node ([#44744](https://github.com/kubernetes/kubernetes/pull/44744), [@yguo0905](https://github.com/yguo0905)) + + * The gce metadata server can now be hidden behind a proxy, hiding the kubelet's token. ([#45565](https://github.com/kubernetes/kubernetes/pull/45565), [@Q-Lee](https://github.com/Q-Lee)) + +* OpenStack: + + * Fix issue during LB creation where ports were incorrectly assigned to a floating IP ([#44387](https://github.com/kubernetes/kubernetes/pull/44387), [@jamiehannaford](https://github.com/jamiehannaford)) + + * Openstack cinder v1/v2/auto API support ([#40423](https://github.com/kubernetes/kubernetes/pull/40423), [@mkutsevol](https://github.com/mkutsevol)) + + * OpenStack clusters can now specify whether worker nodes are assigned a floating IP ([#42638](https://github.com/kubernetes/kubernetes/pull/42638), [@jamiehannaford](https://github.com/jamiehannaford)) + + +* vSphere: + + * Fix volume detach on node failure. ([#45569](https://github.com/kubernetes/kubernetes/pull/45569), [@divyenpatel](https://github.com/divyenpatel)) + + * Report same Node IP as both internal and external. ([#45201](https://github.com/kubernetes/kubernetes/pull/45201), [@abrarshivani](https://github.com/abrarshivani)) + + * Filter out IPV6 node addresses. ([#45181](https://github.com/kubernetes/kubernetes/pull/45181), [@BaluDontu](https://github.com/BaluDontu)) + + * Fix fetching of VM UUID on Ubuntu 16.04 and Fedora. ([#45311](https://github.com/kubernetes/kubernetes/pull/45311), [@divyenpatel](https://github.com/divyenpatel)) + + +#### Cluster Provisioning +* Juju: + + * Add Kubernetes 1.6 support to Juju charms ([#44500](https://github.com/kubernetes/kubernetes/pull/44500), [@Cynerva](https://github.com/Cynerva)) + + * Add metric collection to charms for autoscaling + + * Update kubernetes-e2e charm to fail when test suite fails + + * Update Juju charms to use snaps + + * Add registry action to the kubernetes-worker charm + + * Add support for kube-proxy cluster-cidr option to kubernetes-worker charm + + * Fix kubernetes-master charm starting services before TLS certs are saved + + * Fix kubernetes-worker charm failures in LXD + + * Fix stop hook failure on kubernetes-worker charm + + * Fix handling of juju kubernetes-worker.restart-needed state + + * Fix nagios checks in charms + + * Enable GPU mode if GPU hardware detected ([#43467](https://github.com/kubernetes/kubernetes/pull/43467), [@tvansteenburgh](https://github.com/tvansteenburgh)) + + * Fix ceph-secret type to kubernetes.io/rbd in kubernetes-master charm ([#44635](https://github.com/kubernetes/kubernetes/pull/44635), [@Cynerva](https://github.com/Cynerva)) + + * Disallows installation of upstream docker from PPA in the Juju kubernetes-worker charm. ([#44681](https://github.com/kubernetes/kubernetes/pull/44681), [@wwwtyro](https://github.com/wwwtyro)) + + * Resolves juju vsphere hostname bug showing only a single node in a scaled node-pool. ([#44780](https://github.com/kubernetes/kubernetes/pull/44780), [@chuckbutler](https://github.com/chuckbutler)) + + * Fixes a bug in the kubernetes-worker Juju charm code that attempted to give kube-proxy more than one api endpoint. ([#44677](https://github.com/kubernetes/kubernetes/pull/44677), [@wwwtyro](https://github.com/wwwtyro)) + + * Added CIFS PV support for Juju Charms ([#45117](https://github.com/kubernetes/kubernetes/pull/45117), [@chuckbutler](https://github.com/chuckbutler)) + + * Fixes juju kubernetes master: 1. Get certs from a dead leader. 2. Append tokens. ([#43620](https://github.com/kubernetes/kubernetes/pull/43620), [@ktsakalozos](https://github.com/ktsakalozos)) + + * kubernetes-master juju charm properly detects etcd-scale events and reconfigures appropriately. ([#44967](https://github.com/kubernetes/kubernetes/pull/44967), [@chuckbutler](https://github.com/chuckbutler)) + + * Use correct option name in the kubernetes-worker layer registry action ([#44921](https://github.com/kubernetes/kubernetes/pull/44921), [@jacekn](https://github.com/jacekn)) + + * Send dns details only after cdk-addons are configured ([#44945](https://github.com/kubernetes/kubernetes/pull/44945), [@ktsakalozos](https://github.com/ktsakalozos)) + + * Added support to the pause action in the kubernetes-worker charm for new flag `--delete-local-data` ([#44931](https://github.com/kubernetes/kubernetes/pull/44931), [@chuckbutler](https://github.com/chuckbutler)) + + * Add namespace-{list, create, delete} actions to the kubernetes-master layer ([#44277](https://github.com/kubernetes/kubernetes/pull/44277), [@jacekn](https://github.com/jacekn)) + + * Using http2 in kubeapi-load-balancer to fix `kubectl exec` uses ([#43625](https://github.com/kubernetes/kubernetes/pull/43625), [@mbruzek](https://github.com/mbruzek)) + + + * Don't append :443 to registry domain in the kubernetes-worker layer registry action ([#45550](https://github.com/kubernetes/kubernetes/pull/45550), [@jacekn](https://github.com/jacekn)) + +* kubeadm + + * Enable the Node Authorizer/Admission plugin in v1.7 ([#46879](https://github.com/kubernetes/kubernetes/pull/46879), [@luxas](https://github.com/luxas)) + + * Users can now pass extra parameters to etcd in a kubeadm cluster ([#42246](https://github.com/kubernetes/kubernetes/pull/42246), [@jamiehannaford](https://github.com/jamiehannaford)) + + * Make kubeadm use the new CSR approver in v1.7 ([#46864](https://github.com/kubernetes/kubernetes/pull/46864), [@luxas](https://github.com/luxas)) + + * Allow enabling multiple authorization modes at the same time ([#42557](https://github.com/kubernetes/kubernetes/pull/42557), [@xilabao](https://github.com/xilabao)) + + * add proxy client-certs to kube-apiserver to allow it to proxy aggregated api servers ([#43715](https://github.com/kubernetes/kubernetes/pull/43715), [@deads2k](https://github.com/deads2k))* CentOS provider + +* hyperkube + + * The hyperkube image has been slimmed down and no longer includes addon manifests and other various scripts. These were introduced for the now removed docker-multinode setup system. ([#44555](https://github.com/kubernetes/kubernetes/pull/44555), [@luxas](https://github.com/luxas)) + +* Support secure etcd cluster for centos provider. ([#42994](https://github.com/kubernetes/kubernetes/pull/42994), [@Shawyeok](https://github.com/Shawyeok)) + +* Update to kube-addon-manager:v6.4-beta.2: kubectl v1.6.4 and refreshed base images ([#47389](https://github.com/kubernetes/kubernetes/pull/47389), [@ixdy](https://github.com/ixdy)) + +* Remove Initializers from admission-control in kubernetes-master charm for pre-1.7 ([#46987](https://github.com/kubernetes/kubernetes/pull/46987), [@Cynerva](https://github.com/Cynerva)) + +* Added state guards to the idle_status messaging in the kubernetes-master charm to make deployment faster on initial deployment. ([#47183](https://github.com/kubernetes/kubernetes/pull/47183), [@chuckbutler](https://github.com/chuckbutler)) + +#### Cluster federation +* Features: + + * Adds annotations to all Federation objects created by kubefed. ([#42683](https://github.com/kubernetes/kubernetes/pull/42683), [@perotinus](https://github.com/perotinus)) + + * Mechanism of adding `federation domain maps` to kube-dns deployment via `--federations` flag is superseded by adding/updating `federations` key in `kube-system/kube-dns` configmap. If user is using kubefed tool to join cluster federation, adding federation domain maps to kube-dns is already taken care by `kubefed join` and does not need further action. + + * Prints out status updates when running `kubefed init` ([#41849](https://github.com/kubernetes/kubernetes/pull/41849), [@perotinus](https://github.com/perotinus)) + + * `kubefed init` now supports overriding the default etcd image name with the `--etcd-image` parameter. ([#46247](https://github.com/kubernetes/kubernetes/pull/46247), [@marun](https://github.com/marun)) + + * kubefed will now configure NodeInternalIP as the federation API server endpoint when NodeExternalIP is unavailable for federation API servers exposed as NodePort services ([#46960](https://github.com/kubernetes/kubernetes/pull/46960), [@lukaszo](https://github.com/lukaszo)) + + * Automate configuring nameserver in cluster-dns for CoreDNS provider ([#42895](https://github.com/kubernetes/kubernetes/pull/42895), [@shashidharatd](https://github.com/shashidharatd)) + + * A new controller for managing DNS records is introduced which can be optionally disabled to enable third party components to manage DNS records for federated services. ([#450354](https://github.com/kubernetes/kubernetes/pull/45034), [@shashidharatd(https://github.com/shashidharatd)]) + + * Remove the `--secret-name` flag from `kubefed join`, instead generating the secret name arbitrarily. ([#42513](https://github.com/kubernetes/kubernetes/pull/42513), [@perotinus](https://github.com/perotinus)) + + * Use StorageClassName for etcd pvc ([#46323](https://github.com/kubernetes/kubernetes/pull/46323), [@marun](https://github.com/marun)) + +* Bug fixes: + + * Allow disabling federation controllers through override args ([#44209](https://github.com/kubernetes/kubernetes/pull/44209), [@irfanurrehman](https://github.com/irfanurrehman)) + + * Kubefed: Use service accounts instead of the user's credentials when accessing joined clusters' API servers. ([#42042](https://github.com/kubernetes/kubernetes/pull/42042), [@perotinus](https://github.com/perotinus)) + + * Avoid panic if route53 fields are nil ([#44380](https://github.com/kubernetes/kubernetes/pull/44380), [@justinsb](https://github.com/justinsb)) + + +#### Credential provider +* add rancher credential provider ([#40160](https://github.com/kubernetes/kubernetes/pull/40160), [@wlan0](https://github.com/wlan0)) + +#### Information for Kubernetes clients (openapi, swagger, client-go) +* Features: + + * Add Host field to TCPSocketAction ([#42902](https://github.com/kubernetes/kubernetes/pull/42902), [@louyihua](https://github.com/louyihua)) + + * Add the ability to lock on ConfigMaps to support HA for self hosted components ([#42666](https://github.com/kubernetes/kubernetes/pull/42666), [@timothysc](https://github.com/timothysc)) + + * validateClusterInfo: use clientcmdapi.NewCluster() ([#44221](https://github.com/kubernetes/kubernetes/pull/44221), [@ncdc](https://github.com/ncdc)) + + * OpenAPI spec is now available in protobuf binary and gzip format (with ETag support) ([#45836](https://github.com/kubernetes/kubernetes/pull/45836), [@mbohlool](https://github.com/mbohlool)) + + * HostAliases is now parsed with hostAliases json keys to be in line with the feature's name. ([#47512](https://github.com/kubernetes/kubernetes/pull/47512), [@rickypai](https://github.com/rickypai)) + + * Add redirect support to SpdyRoundTripper ([#44451](https://github.com/kubernetes/kubernetes/pull/44451), [@ncdc](https://github.com/ncdc)) + + * Duplicate recurring Events now include the latest event's Message string ([#46034](https://github.com/kubernetes/kubernetes/pull/46034), [@kensimon](https://github.com/kensimon)) + +* Bug fixes: + + * Fix serialization of EnforceNodeAllocatable ([#44606](https://github.com/kubernetes/kubernetes/pull/44606), [@ivan4th](https://github.com/ivan4th)) + + * Use OS-specific libs when computing client User-Agent in kubectl, etc. ([#44423](https://github.com/kubernetes/kubernetes/pull/44423), [@monopole](https://github.com/monopole)) + + +#### Instrumentation +* Bumped Heapster to v1.4.0. More details about the release https://github.com/kubernetes/heapster/releases/tag/v1.4.0 + +* Fluentd manifest pod is no longer created on non-registered master when creating clusters using kube-up.sh. ([#44721](https://github.com/kubernetes/kubernetes/pull/44721), [@piosz](https://github.com/piosz)) + +* Stackdriver cluster logging now deploys a new component to export Kubernetes events. ([#46700](https://github.com/kubernetes/kubernetes/pull/46700), [@crassirostris](https://github.com/crassirostris)) + +* Stackdriver Logging deployment exposes metrics on node port 31337 when enabled. ([#47402](https://github.com/kubernetes/kubernetes/pull/47402), [@crassirostris](https://github.com/crassirostris)) + +* Upgrade Elasticsearch Addon to v5.4.0 ([#45589](https://github.com/kubernetes/kubernetes/pull/45589), [@it-svit](https://github.com/it-svit)) + +#### Internal storage layer +* prevent pods/status from touching ownerreferences ([#45826](https://github.com/kubernetes/kubernetes/pull/45826), [@deads2k](https://github.com/deads2k)) + +* Ensure that autoscaling/v1 is the preferred version for API discovery when autoscaling/v2alpha1 is enabled. ([#45741](https://github.com/kubernetes/kubernetes/pull/45741), [@DirectXMan12](https://github.com/DirectXMan12)) + +* The proxy subresource APIs for nodes, services, and pods now support the HTTP PATCH method. ([#44929](https://github.com/kubernetes/kubernetes/pull/44929), [@liggitt](https://github.com/liggitt)) + +* Fluentd now tolerates all NoExecute Taints when run in gcp configuration. ([#45715](https://github.com/kubernetes/kubernetes/pull/45715), [@gmarek](https://github.com/gmarek)) + + +#### Kubernetes Dashboard + +* Increase Dashboard's memory requests and limits (#44712, @maciaszczykm) + +* Update Dashboard version to 1.6.1 ([#45953](https://github.com/kubernetes/kubernetes/pull/45953), [@maciaszczykm](https://github.com/maciaszczykm)) + + +#### kube-dns +* Updates kube-dns to 1.14.2 ([#45684](https://github.com/kubernetes/kubernetes/pull/45684), [@bowei](https://github.com/bowei)) + + * Support kube-master-url flag without kubeconfig + + * Fix concurrent R/Ws in dns.go + + * Fix confusing logging when initialize server + + * Fix printf in cmd/kube-dns/app/server.go + + * Fix version on startup and `--version` flag + + * Support specifying port number for nameserver in stubDomains + +#### kube-proxy +* Features: + + * ratelimit runs of iptables by sync-period flags ([#46266](https://github.com/kubernetes/kubernetes/pull/46266), [@thockin](https://github.com/thockin)) + + * Log warning when invalid dir passed to `kubectl proxy --www` ([#44952](https://github.com/kubernetes/kubernetes/pull/44952), [@CaoShuFeng](https://github.com/CaoShuFeng)) + + * Add `--write-config-to` flag to kube-proxy to allow users to write the default configuration settings to a file. ([#45908](https://github.com/kubernetes/kubernetes/pull/45908), [@ncdc](https://github.com/ncdc)) + + * When switching from the service.beta.kubernetes.io/external-traffic annotation to the new ([#46716](https://github.com/kubernetes/kubernetes/pull/46716), [@thockin](https://github.com/thockin)) externalTrafficPolicy field, the values chnag as follows: * "OnlyLocal" becomes "Local" * "Global" becomes "Cluster". + + +* Bug fixes: + + * Fix corner-case with OnlyLocal Service healthchecks. ([#44313](https://github.com/kubernetes/kubernetes/pull/44313), [@thockin](https://github.com/thockin)) + + * Fix DNS suffix search list support in Windows kube-proxy. ([#45642](https://github.com/kubernetes/kubernetes/pull/45642), [@JiangtianLi](https://github.com/JiangtianLi)) + +#### kube-scheduler +* Scheduler can receive its policy configuration from a ConfigMap ([#43892](https://github.com/kubernetes/kubernetes/pull/43892), [@bsalamat](https://github.com/bsalamat)) + +* Aggregated used ports at the NodeInfo level for PodFitsHostPorts predicate. ([#42524](https://github.com/kubernetes/kubernetes/pull/42524), [@k82cn](https://github.com/k82cn)) + +* leader election lock based on scheduler name ([#42961](https://github.com/kubernetes/kubernetes/pull/42961), [@wanghaoran1988](https://github.com/wanghaoran1988)) + + * Fix DNS suffix search list support in Windows kube-proxy. ([#45642](https://github.com/kubernetes/kubernetes/pull/45642), [@JiangtianLi](https://github.com/JiangtianLi)) + +#### Storage + +* Features + + * The options passed to a Flexvolume plugin's mount command now contains the pod name (kubernetes.io/pod.name), namespace (kubernetes.io/pod.namespace), uid (kubernetes.io/pod.uid), and service account name (kubernetes.io/serviceAccount.name). ([#39488](https://github.com/kubernetes/kubernetes/pull/39488), [@liggitt](https://github.com/liggitt)) + + * GCE and AWS dynamic provisioners extension: admins can configure zone(s) in which a persistent volume shall be created. ([#38505](https://github.com/kubernetes/kubernetes/pull/38505), [@pospispa](https://github.com/pospispa)) + + * Implement API usage metrics for GCE storage. ([#40338](https://github.com/kubernetes/kubernetes/pull/40338), [@gnufied](https://github.com/gnufied)) + + * Add support for emitting metrics from openstack cloudprovider about storage operations. ([#46008](https://github.com/kubernetes/kubernetes/pull/46008), [@NickrenREN](https://github.com/NickrenREN)) + + * vSphere cloud provider: vSphere storage policy support for dynamic volume provisioning. ([#46176](https://github.com/kubernetes/kubernetes/pull/46176), [@BaluDontu](https://github.com/BaluDontu)) + + * Support StorageClass in Azure file volume ([#42170](https://github.com/kubernetes/kubernetes/pull/42170), [@rootfs](https://github.com/rootfs)) + + * Start recording cloud provider metrics for AWS ([#43477](https://github.com/kubernetes/kubernetes/pull/43477), [@gnufied](https://github.com/gnufied)) + + * Support iSCSI CHAP authentication ([#43396](https://github.com/kubernetes/kubernetes/pull/43396), [@rootfs](https://github.com/rootfs)) + + * Openstack cinder v1/v2/auto API support ([#40423](https://github.com/kubernetes/kubernetes/pull/40423), [@mkutsevol](https://github.com/mkutsevol * cinder: Add support for the KVM virtio-scsi driver ([#41498](https://github.com/kubernetes/kubernetes/pull/41498), [@mikebryant](https://github.com/mikebryant)) + + * Alpha feature: allows users to set storage limit to isolate EmptyDir volumes. It enforces the limit by evicting pods that exceed their storage limits ([#45686](https://github.com/kubernetes/kubernetes/pull/45686), [@jingxu97](https://github.com/jingxu97)) + +* Bug fixes + + * Fixes issue with Flexvolume, introduced in 1.6.0, where drivers without an attacher would fail (node indefinitely waiting for attach). A driver API addition is introduced: drivers that don't implement attach should return attach: false on init. ([#47503](https://github.com/kubernetes/kubernetes/pull/47503), [@chakri-nelluri](https://github.com/chakri-nelluri)) + + * Fix dynamic provisioning of PVs with inaccurate AccessModes by refusing to provision when PVCs ask for AccessModes that can't be satisfied by the PVs' underlying volume plugin. ([#47274](https://github.com/kubernetes/kubernetes/pull/47274), [@wongma7](https://github.com/wongma7)) + + * Fix pods failing to start if they specify a file as a volume subPath to mount. ([#45623](https://github.com/kubernetes/kubernetes/pull/45623), [@wongma7](https://github.com/wongma7)) + + * Fix erroneous FailedSync and FailedMount events being periodically and indefinitely posted on Pods after kubelet is restarted. ([#44781](https://github.com/kubernetes/kubernetes/pull/44781), [@wongma7](https://github.com/wongma7)) + + * Fix AWS EBS volumes not getting detached from node if routine to verify volumes are attached runs while the node is down ([#46463](https://github.com/kubernetes/kubernetes/pull/46463), [@wongma7](https://github.com/wongma7)) + + * Improves performance of Cinder volume attach/detach operations. ([#41785](https://github.com/kubernetes/kubernetes/pull/41785), [@jamiehannaford](https://github.com/jamiehannaford)) + + * Fix iSCSI iSER mounting. ([#47281](https://github.com/kubernetes/kubernetes/pull/47281), [@mtanino](https://github.com/mtanino)) + + * iscsi storage plugin: Fix dangling session when using multiple target portal addresses. ([#46239](https://github.com/kubernetes/kubernetes/pull/46239), [@mtanino](https://github.com/mtanino)) + + + * Fix log spam due to unnecessary status update when node is deleted. ([#45923](https://github.com/kubernetes/kubernetes/pull/45923), [@verult](https://github.com/verult)) + + * Don't try to attach volume to new node if it is already attached to another node and the volume does not support multi-attach. ([#45346](https://github.com/kubernetes/kubernetes/pull/45346), [@codablock](https://github.com/codablock)) + + * detach the volume when pod is terminated ([#45286](https://github.com/kubernetes/kubernetes/pull/45286), [@gnufied](https://github.com/gnufied)) + + * Roll up volume error messages in the kubelet sync loop. ([#44938](https://github.com/kubernetes/kubernetes/pull/44938), [@jayunit100](https://github.com/jayunit100)) + + * Catch error when failed to make directory in NFS volume plugin ([#38801](https://github.com/kubernetes/kubernetes/pull/38801), [@nak3](https://github.com/nak3)) + + + +#### Networking + +* DNS and name resolution + + * Updates kube-dns to 1.14.2 ([#45684](https://github.com/kubernetes/kubernetes/pull/45684), [@bowei](https://github.com/bowei)) + + * Support kube-master-url flag without kubeconfig + + * Fix concurrent R/Ws in dns.go + + * Fix confusing logging when initializing server + + * Support specifying port number for nameserver in stubDomains + + * A new field hostAliases has been added to pod.spec to support adding entries to a Pod's /etc/hosts file. ([#44641](https://github.com/kubernetes/kubernetes/pull/44641), [@rickypai](https://github.com/rickypai)) + + * Fix DNS suffix search list support in Windows kube-proxy. ([#45642](https://github.com/kubernetes/kubernetes/pull/45642), [@JiangtianLi](https://github.com/JiangtianLi)) + +* Kube-proxy + + * ratelimit runs of iptables by sync-period flags ([#46266](https://github.com/kubernetes/kubernetes/pull/46266), [@thockin](https://github.com/thockin)) + + * Fix corner-case with OnlyLocal Service healthchecks. ([#44313](https://github.com/kubernetes/kubernetes/pull/44313), [@thockin](https://github.com/thockin)) + +* Exclude nodes labeled as master from LoadBalancer / NodePort; restores documented behaviour. ([#44745](https://github.com/kubernetes/kubernetes/pull/44745), [@justinsb](https://github.com/justinsb)) + +* Adds support for CNI ConfigLists, which permit plugin chaining. ([#42202](https://github.com/kubernetes/kubernetes/pull/42202), [@squeed](https://github.com/squeed)) + +* Fix node selection logic on initial LB creation ([#45773](https://github.com/kubernetes/kubernetes/pull/45773), [@justinsb](https://github.com/justinsb)) + +* When switching from the service.beta.kubernetes.io/external-traffic annotation to the new externalTrafficPolicy field, the values change as follows: * "OnlyLocal" becomes "Local" * "Global" becomes "Cluster". ([#46716](https://github.com/kubernetes/kubernetes/pull/46716), [@thockin](https://github.com/thockin)) + +* servicecontroller: Fix node selection logic on initial LB creation ([#45773](https://github.com/kubernetes/kubernetes/pull/45773), [@justinsb](https://github.com/justinsb)) + +* fixed HostAlias in PodSpec to allow foo.bar hostnames instead of just foo DNS labels. ([#46809](https://github.com/kubernetes/kubernetes/pull/46809), [@rickypai](https://github.com/rickypai)) + + +#### Node controller +* Bug fixes: + + * Fix [transition between NotReady and Unreachable taints](https://github.com/kubernetes/kubernetes/issues/43444). ([#44042](https://github.com/kubernetes/kubernetes/pull/44042), [@gmarek](https://github.com/gmarek)) + + +#### Node Components + +* Features + + * Removes the deprecated kubelet flag `--babysit-daemons` ([#44230](https://github.com/kubernetes/kubernetes/pull/44230), [@mtaufen](https://github.com/mtaufen)) + + * make dockershim.sock configurable ([#43914](https://github.com/kubernetes/kubernetes/pull/43914), [@ncdc](https://github.com/ncdc)) + + * Support running Ubuntu image on GCE node ([#44744](https://github.com/kubernetes/kubernetes/pull/44744), [@yguo0905](https://github.com/yguo0905)) + + * Kubernetes now shares a single PID namespace among all containers in a pod when running with docker >= 1.13.1. This means processes can now signal processes in other containers in a pod, but it also means that the `kubectl exec {pod} kill 1` pattern will cause the Pod to be restarted rather than a single container. ([#45236](https://github.com/kubernetes/kubernetes/pull/45236), [@verb](https://github.com/verb)) + + * A new field hostAliases has been added to the pod spec to support [adding entries to a Pod's /etc/hosts file](https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/). ([#44641](https://github.com/kubernetes/kubernetes/pull/44641), [@rickypai](https://github.com/rickypai)) + + * With `--feature-gates=RotateKubeletClientCertificate=true` set, the Kubelet will ([#41912](https://github.com/kubernetes/kubernetes/pull/41912), [@jcbsmpsn](https://github.com/jcbsmpsn)) + + * request a client certificate from the API server during the boot cycle and pause + + * waiting for the request to be satisfied. It will continually refresh the certificate + + * Create clusters with GPUs in GCE by specifying `type=<gpu-type>,count=<gpu-count>` to NODE_ACCELERATORS environment variable. ([#45130](https://github.com/kubernetes/kubernetes/pull/45130), [@vishh](https://github.com/vishh)) + + * List of available GPUs - [https://cloud.google.com/compute/docs/gpus/#introduction](https://cloud.google.com/compute/docs/gpus/#introduction) + + * Disk Pressure triggers the deletion of terminated containers on the node. ([#45896](https://github.com/kubernetes/kubernetes/pull/45896), [@dashpole](https://github.com/dashpole)) + + * Support status.hostIP in downward API ([#42717](https://github.com/kubernetes/kubernetes/pull/42717), [@andrewsykim](https://github.com/andrewsykim)) + + * Upgrade Node Problem Detector to v0.4.1. New features added: + + * Add /dev/kmsg support for kernel log parsing. ([#112](https://github.com/kubernetes/node-problem-detector/pull/112), [@euank](https://github.com/euank)) + + * Add ABRT support. ([#105](https://github.com/kubernetes/node-problem-detector/pull/105), [@juliusmilan](https://github.com/juliusmilan)) + + * Add a docker image corruption problem detection in the default docker monitor config. ([#117](https://github.com/kubernetes/node-problem-detector/pull/117), [@ajitak](https://github.com/ajitak)) + + * Upgrade CAdvisor to v0.26.1. New features added: + + * Add Docker overlay2 storage driver support. + + * Add ZFS support. + + * Add UDP metrics (collection disabled by default). + + * Roll up volume error messages in the kubelet sync loop. ([#44938](https://github.com/kubernetes/kubernetes/pull/44938), [@jayunit100](https://github.com/jayunit100)) + + * Allow pods to opt out of PodPreset mutation via an annotation on the pod. ([#44965](https://github.com/kubernetes/kubernetes/pull/44965), [@jpeeler](https://github.com/jpeeler)) + + * Add generic Toleration for NoExecute Taints to NodeProblemDetector, so that NPD can be scheduled to nodes with NoExecute taints by default. ([#45883](https://github.com/kubernetes/kubernetes/pull/45883), [@gmarek](https://github.com/gmarek)) + + * Prevent kubelet from setting allocatable < 0 for a resource upon initial creation. ([#46516](https://github.com/kubernetes/kubernetes/pull/46516), [@derekwaynecarr](https://github.com/derekwaynecarr)) + +* Bug fixes + + * Changed Kubelet default image-gc-high-threshold to 85% to resolve a conflict with default settings in docker that prevented image garbage collection from resolving low disk space situations when using devicemapper storage. ([#40432](https://github.com/kubernetes/kubernetes/pull/40432), [@sjenning](https://github.com/sjenning)) + + * Mark all static pods on the Master node as critical to prevent preemption ([#47356](https://github.com/kubernetes/kubernetes/pull/47356), [@dashpole](https://github.com/dashpole)) + + * Restrict active deadline seconds max allowed value to be maximum uint32 to avoid overflow ([#46640](https://github.com/kubernetes/kubernetes/pull/46640), [@derekwaynecarr](https://github.com/derekwaynecarr)) + + * Fix a bug with cAdvisorPort in the KubeletConfiguration that prevented setting it to 0, which is in fact a valid option, as noted in issue [#11710](https://github.com/kubernetes/kubernetes/pull/11710). ([#46876](https://github.com/kubernetes/kubernetes/pull/46876), [@mtaufen](https://github.com/mtaufen)) + + * Fix a bug where container cannot run as root when SecurityContext.RunAsNonRoot is false. ([#47009](https://github.com/kubernetes/kubernetes/pull/47009), [@yujuhong](https://github.com/yujuhong)) + + * Fix the Kubelet PLEG update timestamp to better reflect the health of the component when the container runtime request hangs. ([#45496](https://github.com/kubernetes/kubernetes/pull/45496), [@andyxning](https://github.com/andyxning)) + + * Avoid failing sync loop health check on container runtime errors ([#47124](https://github.com/kubernetes/kubernetes/pull/47124), [@andyxning](https://github.com/andyxning)) + + * Fix a bug where Kubelet does not ignore pod manifest files starting with dots ([#45111](https://github.com/kubernetes/kubernetes/pull/45111), [@dwradcliffe](https://github.com/dwradcliffe)) + + * Fix kubelet reset liveness probe failure count across pod restart boundaries ([#46371](https://github.com/kubernetes/kubernetes/pull/46371), [@sjenning](https://github.com/sjenning)) + + * Fix log spam due to unnecessary status update when node is deleted. ([#45923](https://github.com/kubernetes/kubernetes/pull/45923), [@verult](https://github.com/verult)) + + * Fix kubelet event recording for selected events. ([#46246](https://github.com/kubernetes/kubernetes/pull/46246), [@derekwaynecarr](https://github.com/derekwaynecarr)) + + * Fix image garbage collector attempting to remove in-use images. ([#46121](https://github.com/kubernetes/kubernetes/pull/46121), [@Random-Liu](https://github.com/Random-Liu)) + + * Detach the volume when pod is terminated ([#45286](https://github.com/kubernetes/kubernetes/pull/45286), [@gnufied](https://github.com/gnufied)) + + * CRI: Fix StopContainer timeout ([#44970](https://github.com/kubernetes/kubernetes/pull/44970), [@Random-Liu](https://github.com/Random-Liu)) + + * CRI: Fix kubelet failing to start when using rkt. ([#44569](https://github.com/kubernetes/kubernetes/pull/44569), [@yujuhong](https://github.com/yujuhong)) + + * CRI: `kubectl logs -f` now stops following when container stops, as it did pre-CRI. ([#44406](https://github.com/kubernetes/kubernetes/pull/44406), [@Random-Liu](https://github.com/Random-Liu)) + + * Fixes a bug where pods were evicted even after images are successfully deleted. ([#44986](https://github.com/kubernetes/kubernetes/pull/44986), [@dashpole](https://github.com/dashpole)) + + * When creating a container using envFrom, ([#42083](https://github.com/kubernetes/kubernetes/pull/42083), [@fraenkel](https://github.com/fraenkel) + * validate the name of the ConfigMap in a ConfigMapRef + * validate the name of the Secret in a SecretRef + + * Fix the bug where StartedAt time is not reported for exited containers. ([#45977](https://github.com/kubernetes/kubernetes/pull/45977), [@yujuhong](https://github.com/yujuhong)) + +* Changes/deprecations + + * Marks the Kubelet's `--master-service-namespace` flag deprecated ([#44250](https://github.com/kubernetes/kubernetes/pull/44250), [@mtaufen](https://github.com/mtaufen)) + + * Remove PodSandboxStatus.Linux.Namespaces.Network from CRI since it is not used/needed. ([#45166](https://github.com/kubernetes/kubernetes/pull/45166), [@feiskyer](https://github.com/feiskyer)) + + * Remove the `--enable-cri` flag. CRI is now the default, and the only way to integrate with Kubelet for the container runtimes.([#45194](https://github.com/kubernetes/kubernetes/pull/45194), [@yujuhong](https://github.com/yujuhong)) + + * CRI has been moved to package pkg/kubelet/apis/cri/v1alpha1/runtime as part of Kubelet API path cleanup. ([#47113](https://github.com/kubernetes/kubernetes/pull/47113), [@feiskyer](https://github.com/feiskyer)) + + +#### Scheduling + +* The fix makes scheduling go routine waiting for cache (e.g. Pod) to be synced. ([#45453](https://github.com/kubernetes/kubernetes/pull/45453), [@k82cn](https://github.com/k82cn)) + +* Move hardPodAffinitySymmetricWeight to scheduler policy config ([#44159](https://github.com/kubernetes/kubernetes/pull/44159), [@wanghaoran1988](https://github.com/wanghaoran1988)) + +* Align Extender's validation with prioritizers. ([#45091](https://github.com/kubernetes/kubernetes/pull/45091), [@k82cn](https://github.com/k82cn)) + +* Removed old scheduler constructor. ([#45472](https://github.com/kubernetes/kubernetes/pull/45472), [@k82cn](https://github.com/k82cn)) + +* Fixes the overflow for priorityconfig- valid range {1, 9223372036854775806}. ([#45122](https://github.com/kubernetes/kubernetes/pull/45122), [@ravisantoshgudimetla](https://github.com/ravisantoshgudimetla)) + +* Move hardPodAffinitySymmetricWeight to scheduler policy config ([#44159](https://github.com/kubernetes/kubernetes/pull/44159), [@wanghaoran1988](https://github.com/wanghaoran1988)) + + +#### Security +* Features: + + * Permission to use a PodSecurityPolicy can now be granted within a single namespace by allowing the use verb on the podsecuritypolicies resource within the namespace. ([#42360](https://github.com/kubernetes/kubernetes/pull/42360), [@liggitt](https://github.com/liggitt)) + + * Break the 'certificatesigningrequests' controller into a 'csrapprover' controller and 'csrsigner' controller. ([#45514](https://github.com/kubernetes/kubernetes/pull/45514), [@mikedanese](https://github.com/mikedanese)) + + * `kubectl auth can-i` now supports non-resource URLs ([#46432](https://github.com/kubernetes/kubernetes/pull/46432), [@CaoShuFeng](https://github.com/CaoShuFeng)) + + * Promote kubelet tls bootstrap to beta. Add a non-experimental flag to use it and deprecate the old flag. ([#46799](https://github.com/kubernetes/kubernetes/pull/46799), [@mikedanese](https://github.com/mikedanese)) + + * Add the alpha.image-policy.k8s.io/failed-open=true annotation when the image policy webhook encounters an error and fails open. ([#46264](https://github.com/kubernetes/kubernetes/pull/46264), [@Q-Lee](https://github.com/Q-Lee)) + + * Add an AEAD encrypting transformer for storing secrets encrypted at rest ([#41939](https://github.com/kubernetes/kubernetes/pull/41939), [@smarterclayton](https://github.com/smarterclayton)) + + * Add secretbox and AES-CBC encryption modes to at rest encryption. AES-CBC is considered superior to AES-GCM because it is resistant to nonce-reuse attacks, and secretbox uses Poly1305 and XSalsa20. ([#46916](https://github.com/kubernetes/kubernetes/pull/46916), [@smarterclayton](https://github.com/smarterclayton)) + +* Bug fixes: + + * Make gcp auth provider not to override the Auth header if it's already exits ([#45575](https://github.com/kubernetes/kubernetes/pull/45575), [@wanghaoran1988](https://github.com/wanghaoran1988)) + + * The oidc client plugin has reduce round trips and fix scopes requested ([#45317](https://github.com/kubernetes/kubernetes/pull/45317), [@ericchiang](https://github.com/ericchiang)) + + * API requests using impersonation now include the system:authenticated group in the impersonated user automatically. ([#44076](https://github.com/kubernetes/kubernetes/pull/44076), [@liggitt](https://github.com/liggitt)) + + * RBAC role and rolebinding auto-reconciliation is now performed only when the RBAC authorization mode is enabled. ([#43813](https://github.com/kubernetes/kubernetes/pull/43813), [@liggitt](https://github.com/liggitt)) + + * PodSecurityPolicy now recognizes pods that specify runAsNonRoot: false in their security context and does not overwrite the specified value ([#47073](https://github.com/kubernetes/kubernetes/pull/47073), [@Q-Lee](https://github.com/Q-Lee)) + + * Tokens retrieved from Google Cloud with application default credentials will not be cached if the client fails authorization ([#46694](https://github.com/kubernetes/kubernetes/pull/46694), [@matt-tyler](https://github.com/matt-tyler)) + + * Update kube-dns, metadata-proxy, and fluentd-gcp, event-exporter, prometheus-to-sd, and ip-masq-agent addons with new base images containing fixes for CVE-2016-4448, CVE-2016-9841, CVE-2016-9843, CVE-2017-1000366, CVE-2017-2616, and CVE-2017-9526. ([#47877](https://github.com/kubernetes/kubernetes/pull/47877), [@ixdy](https://github.com/ixdy)) + + * Fixed an issue mounting the wrong secret into pods as a service account token. ([#44102](https://github.com/kubernetes/kubernetes/pull/44102), [@ncdc](https://github.com/ncdc)) + +#### Scalability + +* The HorizontalPodAutoscaler controller will now only send updates when it has new status information, reducing the number of writes caused by the controller. ([#47078](https://github.com/kubernetes/kubernetes/pull/47078), [@DirectXMan12](https://github.com/DirectXMan12)) + + +## **External Dependency Version Information** + +Continuous integration builds have used the following versions of external dependencies, however, this is not a strong recommendation and users should consult an appropriate installation or upgrade guide before deciding what versions of etcd, docker or rkt to use. + +* Docker versions 1.10.3, 1.11.2, 1.12.6 have been validated + + * Docker version 1.12.6 known issues + + * overlay2 driver not fully supported + + * live-restore not fully supported + + * no shared pid namespace support + + * Docker version 1.11.2 known issues + + * Kernel crash with Aufs storage driver on Debian Jessie ([#27885](https://github.com/kubernetes/kubernetes/issues/27885)) which can be identified by the [node problem detector](https://kubernetes.io/docs/tasks/debug-application-cluster/monitor-node-health/) + + * Leaked File descriptors ([#275](https://github.com/docker/containerd/issues/275)) + + * Additional memory overhead per container ([#21737](https://github.com/docker/docker/issues/21737)) + + * Docker 1.10.3 contains [backports provided by RedHat](https://github.com/docker/docker/compare/v1.10.3...runcom:docker-1.10.3-stable) for known issues + +* For issues with Docker 1.13.X please see the [1.13.X tracking issue](https://github.com/kubernetes/kubernetes/issues/42926) + +* rkt version 1.23.0+ + + * known issues with the rkt runtime are [listed in the Getting Started Guide](https://kubernetes.io/docs/getting-started-guides/rkt/notes/) + +* etcd version 3.0.17 + +* Go version: 1.8.3. [Link to announcement](https://groups.google.com/d/msg/kubernetes-dev/0XRRz6UhhTM/YODWVnuDBQAJ) + + * Kubernetes can only be compiled with Go 1.8. Support for all other versions is dropped. diff --git a/releases/release-1.7/release_team.md b/releases/release-1.7/release_team.md index 2a9eb613507..ba6415a99b8 100644 --- a/releases/release-1.7/release_team.md +++ b/releases/release-1.7/release_team.md @@ -1,12 +1,12 @@ -| **Role** | **Name** (**GitHub/Slack ID**) | **Shadow Name(s) (GitHub/Slack ID), ...** -| ------ | ------ | ------ | -| Lead | Dawn Chen (dchen1107) | Maru Newby (marun) | -| Secondary | Caleb Miles (calebamiles)| | -| Features |Ihor Dvoretskyi (idvoretskyi) | | -| Branch Manager | Chao Xu (caesarxuchao)| | -| Test Infra | Sen Lu (krzyzacy) | | | -| Docs |Andrew Chen (chenopis) | | -| Bugs | Maru Newby (marun) | | | -| CI Signal | Eric Chiang (ericchiang) | | | -| Upgrade Testing | Jeff Regan (monopole) | | | -| Patch Release Manager | Wojciech Tyczynski (wojtek-t)| | +| **Role** | **Name** (**GitHub/Slack ID**) | **Shadow Name(s) (GitHub/Slack ID), ...** +| ------ | ------ | ------ | +| Lead | Dawn Chen (dchen1107) | Maru Newby (marun) | +| Secondary | Caleb Miles (calebamiles)| | +| Features |Ihor Dvoretskyi (idvoretskyi) | | +| Branch Manager | Chao Xu (caesarxuchao)| | +| Test Infra | Sen Lu (krzyzacy) | | | +| Docs |Andrew Chen (chenopis) | | +| Bugs | Maru Newby (marun) | | | +| CI Signal | Eric Chiang (ericchiang) | | | +| Upgrade Testing | Jeff Regan (monopole) | | | +| Patch Release Manager | Wojciech Tyczynski (wojtek-t)| | diff --git a/releases/release-1.7/release_team_absence_tracker.md b/releases/release-1.7/release_team_absence_tracker.md index 617cd7bec09..e982005d0d7 100644 --- a/releases/release-1.7/release_team_absence_tracker.md +++ b/releases/release-1.7/release_team_absence_tracker.md @@ -1,20 +1,20 @@ -### Release Team absence tracker - -Release Team members with upcoming unavailability. The [shared calendar](https://calendar.google.com/calendar/embed?src=coreos.com_regcvcrgvq98lua2ikijg1g1uk%40group.calendar.google.com&ctz=America/Los_Angeles) -should also be updated. - -#### Caleb Miles -- contact info - - email: [caleb.miles@coreos.com](mailto:caleb.miles@coreos.com) - - github: [calebamiles](https://github.com/calebamiles/) - - slack: [calebamiles](https://kubernetes.slack.com/team/calebamiles) -- absences - - 8 - 17 May 2017 - -#### Eric Chiang -- contact info - - email: [eric.chiang@coreos.com](mailto:eric.chiang@coreos.com) - - github: [ericchiang](https://github.com/ericchiang/) - - slack: [ericchiang](https://kubernetes.slack.com/team/ericchiang) -- absences - - 9 June 2017 +### Release Team absence tracker + +Release Team members with upcoming unavailability. The [shared calendar](https://calendar.google.com/calendar/embed?src=coreos.com_regcvcrgvq98lua2ikijg1g1uk%40group.calendar.google.com&ctz=America/Los_Angeles) +should also be updated. + +#### Caleb Miles +- contact info + - email: [caleb.miles@coreos.com](mailto:caleb.miles@coreos.com) + - github: [calebamiles](https://github.com/calebamiles/) + - slack: [calebamiles](https://kubernetes.slack.com/team/calebamiles) +- absences + - 8 - 17 May 2017 + +#### Eric Chiang +- contact info + - email: [eric.chiang@coreos.com](mailto:eric.chiang@coreos.com) + - github: [ericchiang](https://github.com/ericchiang/) + - slack: [ericchiang](https://kubernetes.slack.com/team/ericchiang) +- absences + - 9 June 2017 diff --git a/releases/release-1.8/README.md b/releases/release-1.8/README.md index 86a218364df..69c5522b312 100644 --- a/releases/release-1.8/README.md +++ b/releases/release-1.8/README.md @@ -1,91 +1,91 @@ -# Proposed timeline for 1.8 -We will begin the 1.8 release the first week of July 2017. - -The proposal below is similar in layout to the 1.7 plans with some -modifications: -- as before, key days aren't Fridays, since it can be hard to end milestones right up against weekends -- new in 1.8 - * alpha's should not be cut unless all master-release-blocking tests are passing - * release notes for planned features done 2 weeks out from feature freeze - * docs PRs deadlines ahead of release - -## 1.8 Release Schedule Key Dates -- July 5 (Weds) coding start (7w) -- July 12th (Weds): v1.8.0-alpha.1 -- July 26th (Weds): v1.8.0-alpha.2 -- Aug 1 (Tues): Feature Freeze -- Aug 9 (Weds): v1.8.0-alpha.3 -- Aug 23 (Weds): v1.8.0-alpha.4 -- Sept 1 (Fri): Code Freeze -- Sept 6 (Weds): v1.8.0-beta.0, v1.9.0-alpha.0 -- Sept 13 (Weds): v1.8.0-beta.1 -- Sept 18th (Mon): v1.9.0-alpha.1 -- Sept 20th (Weds): v1.8.release-candidate -- Sept 27th (Weds): v1.8.0 release! - -## 1.8 Details - -### July 5 - Sept 1 -- 8 week coding period -- Release 1.8 alphas every 2 weeks - - Alphas only cut if [release-master-blocking](https://testgrid.k8s.io/release-master-blocking) are passing -- July 12th (Weds): v1.8.0-alpha.1 -- July 26th (Weds): v1.8.0-alpha.2 -- Aug 1st (Tues): Feature Freeze: all features going into release should - have an associated issue in the features repo -- Aug 8th (Tues): First draft of feature related release notes due -- Aug 9th (Weds): v1.8.0-alpha.3 -- Aug 15th (Tues): Final draft of feature related release notes due -- Aug 23rd (Weds): v1.8.0-alpha.4 - -### Sept 1 (Fri) - Sept 14 (Thurs) -- Sept 1st Begin Code Freeze (Code Slush) - * Hard deadline for feature-related PRs to be in submit queue - * Add milestone restriction on submit queue. - * Community Feature Burndown Meetings held two or three times until release week (then every day). For those interested in joining please join [Kubernetes Milestone Burndown Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) - * Focus on bugfix, test flakes and stabilization - * Ensure docs and release notes are written - * Identify all features going into the release, and make sure alpha, beta, ga is marked in features repo - * Release team to create release notes draft doc and share broadly -- Sept 6th (Weds): v1.8.0-beta.0 - * Branch Manager to create `release-1.8` branch. - * v1.9.0-alpha.0 is cut - * Test-infra lead to set up CI for branch. - * Begin regular fast-forwards (at least daily to keep CI up-to-date). -- Sept 8th - * Docs PRs must be open for tech review -- Sept 13th (Weds): End of Code Freeze - * v1.8.0-beta.1 cut - * Final fast-forward of release branch. - * After this, all changes for the release must now be cherrypicked in batches by branch - manager. - * Remove milestone restriction on submit queue. Bot drains backlog over the - weekend. - -### Sept 15 - Sept 27 -- Sept 15th (Fri) - * Docs PRs lgtm'd and ready for merge -- Sept 18th (Mon): v1.9.0-alpha.1 -- Sept 20th (Weds): v1.8.release-candidate - * RC means no known release-blockers outstanding. - * Only accept cherrypicks for release-blockers. - * Announce on mailing lists, Twitter, etc. to ask people to build and test the RC and submit feedback - * Perhaps managed k8s providers make rc.1 available on early access channels. - * More RCs as needed to verify release-blocking fixes. -- Release 1.8 on Sept 27 (Wednesday) - - -# Key features -[Feature tracking spreadsheet -link](https://docs.google.com/spreadsheets/d/1AFksRDgAt6BGA3OjRNIiO3IyKmA-GU7CXaxbihy48ns/edit#gid=0) - -## Operational Changes -1. For the 1.8 release, the [release team](release_team.md) - will use the following procedure to identify release blocking issues - 1. Any issues listed in the [v1.8 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.8) - will be considered release blocking. It is everyone's responsibility to move non blocking issues out of the `v1.8` milestone. Items targeting 1.8 can be moved into the `v1.8` milestone. - milestones **or the release will not ship** - -# Contact us -- [via slack](https://kubernetes.slack.com/messages/sig-release/) -- [via email](mailto:kubernetes-release@googlegroups.com) +# Proposed timeline for 1.8 +We will begin the 1.8 release the first week of July 2017. + +The proposal below is similar in layout to the 1.7 plans with some +modifications: +- as before, key days aren't Fridays, since it can be hard to end milestones right up against weekends +- new in 1.8 + * alpha's should not be cut unless all master-release-blocking tests are passing + * release notes for planned features done 2 weeks out from feature freeze + * docs PRs deadlines ahead of release + +## 1.8 Release Schedule Key Dates +- July 5 (Weds) coding start (7w) +- July 12th (Weds): v1.8.0-alpha.1 +- July 26th (Weds): v1.8.0-alpha.2 +- Aug 1 (Tues): Feature Freeze +- Aug 9 (Weds): v1.8.0-alpha.3 +- Aug 23 (Weds): v1.8.0-alpha.4 +- Sept 1 (Fri): Code Freeze +- Sept 6 (Weds): v1.8.0-beta.0, v1.9.0-alpha.0 +- Sept 13 (Weds): v1.8.0-beta.1 +- Sept 18th (Mon): v1.9.0-alpha.1 +- Sept 20th (Weds): v1.8.release-candidate +- Sept 27th (Weds): v1.8.0 release! + +## 1.8 Details + +### July 5 - Sept 1 +- 8 week coding period +- Release 1.8 alphas every 2 weeks + - Alphas only cut if [release-master-blocking](https://testgrid.k8s.io/release-master-blocking) are passing +- July 12th (Weds): v1.8.0-alpha.1 +- July 26th (Weds): v1.8.0-alpha.2 +- Aug 1st (Tues): Feature Freeze: all features going into release should + have an associated issue in the features repo +- Aug 8th (Tues): First draft of feature related release notes due +- Aug 9th (Weds): v1.8.0-alpha.3 +- Aug 15th (Tues): Final draft of feature related release notes due +- Aug 23rd (Weds): v1.8.0-alpha.4 + +### Sept 1 (Fri) - Sept 14 (Thurs) +- Sept 1st Begin Code Freeze (Code Slush) + * Hard deadline for feature-related PRs to be in submit queue + * Add milestone restriction on submit queue. + * Community Feature Burndown Meetings held two or three times until release week (then every day). For those interested in joining please join [Kubernetes Milestone Burndown Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) + * Focus on bugfix, test flakes and stabilization + * Ensure docs and release notes are written + * Identify all features going into the release, and make sure alpha, beta, ga is marked in features repo + * Release team to create release notes draft doc and share broadly +- Sept 6th (Weds): v1.8.0-beta.0 + * Branch Manager to create `release-1.8` branch. + * v1.9.0-alpha.0 is cut + * Test-infra lead to set up CI for branch. + * Begin regular fast-forwards (at least daily to keep CI up-to-date). +- Sept 8th + * Docs PRs must be open for tech review +- Sept 13th (Weds): End of Code Freeze + * v1.8.0-beta.1 cut + * Final fast-forward of release branch. + * After this, all changes for the release must now be cherrypicked in batches by branch + manager. + * Remove milestone restriction on submit queue. Bot drains backlog over the + weekend. + +### Sept 15 - Sept 27 +- Sept 15th (Fri) + * Docs PRs lgtm'd and ready for merge +- Sept 18th (Mon): v1.9.0-alpha.1 +- Sept 20th (Weds): v1.8.release-candidate + * RC means no known release-blockers outstanding. + * Only accept cherrypicks for release-blockers. + * Announce on mailing lists, Twitter, etc. to ask people to build and test the RC and submit feedback + * Perhaps managed k8s providers make rc.1 available on early access channels. + * More RCs as needed to verify release-blocking fixes. +- Release 1.8 on Sept 27 (Wednesday) + + +# Key features +[Feature tracking spreadsheet +link](https://docs.google.com/spreadsheets/d/1AFksRDgAt6BGA3OjRNIiO3IyKmA-GU7CXaxbihy48ns/edit#gid=0) + +## Operational Changes +1. For the 1.8 release, the [release team](release_team.md) + will use the following procedure to identify release blocking issues + 1. Any issues listed in the [v1.8 milestone](https://github.com/kubernetes/kubernetes/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20milestone%3Av1.8) + will be considered release blocking. It is everyone's responsibility to move non blocking issues out of the `v1.8` milestone. Items targeting 1.8 can be moved into the `v1.8` milestone. + milestones **or the release will not ship** + +# Contact us +- [via slack](https://kubernetes.slack.com/messages/sig-release/) +- [via email](mailto:kubernetes-release@googlegroups.com) diff --git a/releases/release-1.8/add_release_notes_email_template.md b/releases/release-1.8/add_release_notes_email_template.md index 5be4f42733f..d6f71f33a80 100644 --- a/releases/release-1.8/add_release_notes_email_template.md +++ b/releases/release-1.8/add_release_notes_email_template.md @@ -1,26 +1,26 @@ -Hello ___SIG Name___! - -We are starting to collect release notes for the major changes in Kubernetes 1.8. -A [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.8/release-notes-draft.md) [1] -has been prepared in the 1.8 release directory but we need your help to populate the changes by -component which is how we have organized [previous release notes](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.7/release-notes-draft.md) [2]. -We would like to have the draft release notes finished by 08 September 2017 which is one week after code freeze. -Once your SIG has filled out their section according to the [guidance](https://github.com/kubernetes/community/issues/484) [3], -provided by Brian Grant, please check off your section in the checklist -[embedded in the draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.8/release-notes-draft.md#checklist-for-sigs-and-release-team) [4]. -Feel free to submit a pull request against the `master` branch or to merge your changes directly into master once -there is agreement within the SIG. Please bring any questions to SIG Release on the [mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-release) [5] -or on [slack](https://kubernetes.slack.com/messages/C56HWQ0TH/) [6]. - -Thanks! - -- The Kubernetes 1.8 Release Team - -Links: - -1. https://github.com/kubernetes/sig-release/blob/master/releases/release-1.8/release-notes-draft.md -2. https://github.com/kubernetes/sig-release/blob/master/releases/release-1.7/release-notes-draft.md -3. https://github.com/kubernetes/community/issues/484 -4. https://github.com/kubernetes/sig-release/blob/master/releases/release-1.8/release-notes-draft.md#checklist-for-sigs-and-release-team -5. https://groups.google.com/forum/#!forum/kubernetes-sig-release -6. https://kubernetes.slack.com/messages/C56HWQ0TH/ +Hello ___SIG Name___! + +We are starting to collect release notes for the major changes in Kubernetes 1.8. +A [draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.8/release-notes-draft.md) [1] +has been prepared in the 1.8 release directory but we need your help to populate the changes by +component which is how we have organized [previous release notes](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.7/release-notes-draft.md) [2]. +We would like to have the draft release notes finished by 08 September 2017 which is one week after code freeze. +Once your SIG has filled out their section according to the [guidance](https://github.com/kubernetes/community/issues/484) [3], +provided by Brian Grant, please check off your section in the checklist +[embedded in the draft](https://github.com/kubernetes/sig-release/blob/master/releases/release-1.8/release-notes-draft.md#checklist-for-sigs-and-release-team) [4]. +Feel free to submit a pull request against the `master` branch or to merge your changes directly into master once +there is agreement within the SIG. Please bring any questions to SIG Release on the [mailing list](https://groups.google.com/forum/#!forum/kubernetes-sig-release) [5] +or on [slack](https://kubernetes.slack.com/messages/C56HWQ0TH/) [6]. + +Thanks! + +- The Kubernetes 1.8 Release Team + +Links: + +1. https://github.com/kubernetes/sig-release/blob/master/releases/release-1.8/release-notes-draft.md +2. https://github.com/kubernetes/sig-release/blob/master/releases/release-1.7/release-notes-draft.md +3. https://github.com/kubernetes/community/issues/484 +4. https://github.com/kubernetes/sig-release/blob/master/releases/release-1.8/release-notes-draft.md#checklist-for-sigs-and-release-team +5. https://groups.google.com/forum/#!forum/kubernetes-sig-release +6. https://kubernetes.slack.com/messages/C56HWQ0TH/ diff --git a/releases/release-1.8/features.csv b/releases/release-1.8/features.csv index c7640b702ed..7cfb8ebdbea 100644 --- a/releases/release-1.8/features.csv +++ b/releases/release-1.8/features.csv @@ -1,57 +1,57 @@ -Alpha,19,,,,,,,,,, -Beta,16,,,,,,,,,, -Stable,4,,,,,,,,,, -TOTAL,39,,,,,,,,,, -"Themes for release: Stability, Security, Simplicity",,,,,,,,,,, -"Supporting features: (stability - storage, autoscaling, workloads)",,,,,,,,,,, -"Supporting features: (security - #33,34,36,37,39)",,,,,,,,,,, -"Supporting fetaures: (simplicity - #13, 29, 30) ",,,,,,,,,,, -Feature Name,Stage,SIG,Assignee,Needs Docs?,k8s.io Docs PR,additional PR,One Line Release Note Description,Needs Doc Review,Needs Tech Review,Merged,Notes -Failure policy for Jobs,Alpha,SIG-Apps,soltysh,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5319,,,,,, -Federated Jobs feature,Alpha,SIG-Federation,quinton-hoole,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5485,,,,,, -kubectl binary plugins,Alpha,SIG-CLI,fabianofranz,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5294,,,,,, -Improve the multi-platform compatibility,Alpha,SIG-ClusterLifecycle,luxas,no,,,,,,, -Extensible configuration/invocation of `kubeadm`,Alpha,SIG-ClusterLifecycle,luxas,yes,https://github.com/kubernetes/kubeadm/blob/master/docs/design/design_v1.8.md,,,,,, -Self-hosting support in kubeadm,Alpha,SIG-ClusterLifecycle,luxas,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5497,,,,,, -Federated Pod AutoScaler feature,Alpha,SIG-Federation,irfanurrehman,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5487,,,,,, -Implement IPVS-based in-cluster service load balancing,Alpha,SIG-Network,haibinxie,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5571,,,,,, -Hardware Device Plugins,Alpha,SIG-Node,jiayingz,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5261,,,,,,"just moving to beta, docs already present" -Further differentiate performance characteristics associated with pod level QoS,Alpha,SIG-Node,sjenning,yes,https://github.com/kubernetes/kubernetes.github.io/pull/4950,,,,,, -Priority/preemption,Alpha,SIG-Scheduling,bsalamat,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5328,,,,,, -Represent node conditions that block scheduling using taints,Alpha,SIG-Scheduling,gmarek,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5352,,,,,, -Add support for resizing PVs,Alpha,SIG-Storage,gnufied,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5528/files,,,,,, -Storage Volume Snapshots,Alpha,SIG-Storage,jingxu97,no,"[JSD] Not part of the 1.8 release cadence, no docs needed",,,,,, -Supports Storage as Allocatable Resource,Alpha,SIG-Storage,jingxu97,yes,"https://github.com/kubernetes/kubernetes.github.io/pull/5490 -https://github.com/kubernetes/kubernetes.github.io/pull/5522 -https://github.com/kubernetes/kubernetes.github.io/pull/5493",,,,,, -Improve Flexvolume Deployment,Alpha,SIG-Storage,cxing,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5492,,,,,, -Mount namespace propagation,Alpha,SIG-Storage,jsafrane,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5544,,"Enable a container to mount a volume rshared so that any mounts from inside the container are reflected in the host's mount namespace (this will enable, for example, containerization of volume plugins). -",,,, -Dynamic Kubelet Configuration,Alpha,SIG-Node,mtaufen,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5523,,,,,, -Containerd CRI Integration,Alpha,SIG-Node,Random-Liu,no,,,,,,, -"CustomResourceDefinitions, née Third Party Resources",Beta,SIG-API-machinery,deads2k,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5290,,,,,, -Workload Controllers v1Beta2,Beta,SIG-Apps,kow3ns,yes,"kubernetes/kubernetes.github.io#5420 -kubernetes/kubernetes.github.io#5398 -kubernetes/kubernetes.github.io#5463 -kubernetes/kubernetes.github.io#5461 -kubernetes/kubernetes.github.io#5496 -kubernetes/kubernetes.github.io#5421",https://github.com/kubernetes/features/commit/b302cbdf03184148f6bd8f4259bd4e5a8c6649b7,,,,, -CronJob to beta,Beta,SIG-Apps,soltysh,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5475,,,,,, -Arbitrary/Custom Metrics in the Horizontal Pod Autoscaler,Beta,SIG-Autoscaling,DirectXMan12,no,,,,,,, -Integrate Cluster Bootstrap/Discovery with Kubernetes Core,Beta,SIG-ClusterLifecycle,jbeda,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5440,,,,,, -"Easy, automated upgrades with the `kubeadm upgrade` command",Beta,SIG-ClusterLifecycle,luxas,yes,https://github.com/kubernetes/kubernetes.github.io/pull/4770,,,,,, -Metrics Server & Master Metrics API,Beta,SIG-Instrumentation,piosz,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5560,,,,,, -NetworkPolicy CIDR support,Beta,SIG-Network,cmluciano,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5529,,,,,, -NetworkPolicy Egress support,Beta,SIG-Network,cmluciano,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5529,,,,,, -ReclaimPolicy in StorageClass,Beta,SIG-Storage,wongma7,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5171,,,,,, -Expose Storage Usage Metrics,Beta,SIG-Storage,jingxu97,no,"This feature adds PVC reference to the volume stats in kubelet stats summary API. These volume usage metrics are also emitted in prometheus format. -",,,,,, -Kubelet client credential rotation,Beta,SIG-Auth,jcbsmpsn,no,,,,,,, -HPA Status Conditions,Beta,SIG-Autoscaling,DirectXMan12,no,,,,,,, -Monitoring Pipeline Metrics HPA API,Beta,SIG-Autoscaling,DirectXMan12,no,,,,,,, -Allow API to return large lists in chunks to improve responsiveness,Beta,SIG-API-machinery,smarterclayton,no,,,,,,, -Rules review API,Beta,SIG-Auth,ericchiang,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5549,,,,,, -RBAC v1,Stable,SIG-Auth,liggitt,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5445,,,,,, -AllowPrivilegeEscalation added to SecurityContext,Stable,SIG-Auth,jessfraz,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5448,,,,,, -Add support for high level volume operation metrics,Stable,SIG-Storage,gnufied,no,,,,,,, -Support Volume Mount Options,Stable,SIG-Storage,gnufied,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5254,,,,,, +Alpha,19,,,,,,,,,, +Beta,16,,,,,,,,,, +Stable,4,,,,,,,,,, +TOTAL,39,,,,,,,,,, +"Themes for release: Stability, Security, Simplicity",,,,,,,,,,, +"Supporting features: (stability - storage, autoscaling, workloads)",,,,,,,,,,, +"Supporting features: (security - #33,34,36,37,39)",,,,,,,,,,, +"Supporting fetaures: (simplicity - #13, 29, 30) ",,,,,,,,,,, +Feature Name,Stage,SIG,Assignee,Needs Docs?,k8s.io Docs PR,additional PR,One Line Release Note Description,Needs Doc Review,Needs Tech Review,Merged,Notes +Failure policy for Jobs,Alpha,SIG-Apps,soltysh,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5319,,,,,, +Federated Jobs feature,Alpha,SIG-Federation,quinton-hoole,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5485,,,,,, +kubectl binary plugins,Alpha,SIG-CLI,fabianofranz,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5294,,,,,, +Improve the multi-platform compatibility,Alpha,SIG-ClusterLifecycle,luxas,no,,,,,,, +Extensible configuration/invocation of `kubeadm`,Alpha,SIG-ClusterLifecycle,luxas,yes,https://github.com/kubernetes/kubeadm/blob/master/docs/design/design_v1.8.md,,,,,, +Self-hosting support in kubeadm,Alpha,SIG-ClusterLifecycle,luxas,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5497,,,,,, +Federated Pod AutoScaler feature,Alpha,SIG-Federation,irfanurrehman,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5487,,,,,, +Implement IPVS-based in-cluster service load balancing,Alpha,SIG-Network,haibinxie,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5571,,,,,, +Hardware Device Plugins,Alpha,SIG-Node,jiayingz,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5261,,,,,,"just moving to beta, docs already present" +Further differentiate performance characteristics associated with pod level QoS,Alpha,SIG-Node,sjenning,yes,https://github.com/kubernetes/kubernetes.github.io/pull/4950,,,,,, +Priority/preemption,Alpha,SIG-Scheduling,bsalamat,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5328,,,,,, +Represent node conditions that block scheduling using taints,Alpha,SIG-Scheduling,gmarek,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5352,,,,,, +Add support for resizing PVs,Alpha,SIG-Storage,gnufied,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5528/files,,,,,, +Storage Volume Snapshots,Alpha,SIG-Storage,jingxu97,no,"[JSD] Not part of the 1.8 release cadence, no docs needed",,,,,, +Supports Storage as Allocatable Resource,Alpha,SIG-Storage,jingxu97,yes,"https://github.com/kubernetes/kubernetes.github.io/pull/5490 +https://github.com/kubernetes/kubernetes.github.io/pull/5522 +https://github.com/kubernetes/kubernetes.github.io/pull/5493",,,,,, +Improve Flexvolume Deployment,Alpha,SIG-Storage,cxing,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5492,,,,,, +Mount namespace propagation,Alpha,SIG-Storage,jsafrane,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5544,,"Enable a container to mount a volume rshared so that any mounts from inside the container are reflected in the host's mount namespace (this will enable, for example, containerization of volume plugins). +",,,, +Dynamic Kubelet Configuration,Alpha,SIG-Node,mtaufen,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5523,,,,,, +Containerd CRI Integration,Alpha,SIG-Node,Random-Liu,no,,,,,,, +"CustomResourceDefinitions, née Third Party Resources",Beta,SIG-API-machinery,deads2k,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5290,,,,,, +Workload Controllers v1Beta2,Beta,SIG-Apps,kow3ns,yes,"kubernetes/kubernetes.github.io#5420 +kubernetes/kubernetes.github.io#5398 +kubernetes/kubernetes.github.io#5463 +kubernetes/kubernetes.github.io#5461 +kubernetes/kubernetes.github.io#5496 +kubernetes/kubernetes.github.io#5421",https://github.com/kubernetes/features/commit/b302cbdf03184148f6bd8f4259bd4e5a8c6649b7,,,,, +CronJob to beta,Beta,SIG-Apps,soltysh,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5475,,,,,, +Arbitrary/Custom Metrics in the Horizontal Pod Autoscaler,Beta,SIG-Autoscaling,DirectXMan12,no,,,,,,, +Integrate Cluster Bootstrap/Discovery with Kubernetes Core,Beta,SIG-ClusterLifecycle,jbeda,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5440,,,,,, +"Easy, automated upgrades with the `kubeadm upgrade` command",Beta,SIG-ClusterLifecycle,luxas,yes,https://github.com/kubernetes/kubernetes.github.io/pull/4770,,,,,, +Metrics Server & Master Metrics API,Beta,SIG-Instrumentation,piosz,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5560,,,,,, +NetworkPolicy CIDR support,Beta,SIG-Network,cmluciano,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5529,,,,,, +NetworkPolicy Egress support,Beta,SIG-Network,cmluciano,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5529,,,,,, +ReclaimPolicy in StorageClass,Beta,SIG-Storage,wongma7,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5171,,,,,, +Expose Storage Usage Metrics,Beta,SIG-Storage,jingxu97,no,"This feature adds PVC reference to the volume stats in kubelet stats summary API. These volume usage metrics are also emitted in prometheus format. +",,,,,, +Kubelet client credential rotation,Beta,SIG-Auth,jcbsmpsn,no,,,,,,, +HPA Status Conditions,Beta,SIG-Autoscaling,DirectXMan12,no,,,,,,, +Monitoring Pipeline Metrics HPA API,Beta,SIG-Autoscaling,DirectXMan12,no,,,,,,, +Allow API to return large lists in chunks to improve responsiveness,Beta,SIG-API-machinery,smarterclayton,no,,,,,,, +Rules review API,Beta,SIG-Auth,ericchiang,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5549,,,,,, +RBAC v1,Stable,SIG-Auth,liggitt,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5445,,,,,, +AllowPrivilegeEscalation added to SecurityContext,Stable,SIG-Auth,jessfraz,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5448,,,,,, +Add support for high level volume operation metrics,Stable,SIG-Storage,gnufied,no,,,,,,, +Support Volume Mount Options,Stable,SIG-Storage,gnufied,yes,https://github.com/kubernetes/kubernetes.github.io/pull/5254,,,,,, diff --git a/releases/release-1.8/release-1.8.md b/releases/release-1.8/release-1.8.md index 7e6af0b897d..d803ddd0e25 100644 --- a/releases/release-1.8/release-1.8.md +++ b/releases/release-1.8/release-1.8.md @@ -1 +1 @@ -Please see [README.md](README.md) instead +Please see [README.md](README.md) instead diff --git a/releases/release-1.8/release-notes-draft.md b/releases/release-1.8/release-notes-draft.md index 3a24a3d4dac..a544893ee69 100644 --- a/releases/release-1.8/release-notes-draft.md +++ b/releases/release-1.8/release-notes-draft.md @@ -1,787 +1,787 @@ -## Introduction to v1.8.0 - -Kubernetes version 1.8 includes new features and enhancements, as well as fixes to identified issues. The release notes contain a brief overview of the important changes introduced in this release. The content is organized by Special Interest Groups ([SIGs][]). - -For initial installations, see the [Setup topics][] in the Kubernetes -documentation. - -To upgrade to this release from a previous version, take any actions required -[Before Upgrading](#before-upgrading). - -For more information about the release and for the latest documentation, -see the [Kubernetes documentation](https://kubernetes.io/docs/home/). - -[Setup topics]: https://kubernetes.io/docs/setup/pick-right-solution/ -[SIGs]: https://github.com/kubernetes/community/blob/master/sig-list.md - - -## Major Themes - -Kubernetes is developed by community members whose work is organized into -[Special Interest Groups][]. For the 1.8 release, each SIG provides the -themes that guided their work. - -[Special Interest Groups]: https://github.com/kubernetes/community/blob/master/sig-list.md - -### SIG API Machinery - -[SIG API Machinery][] is responsible for all aspects of the API server: API registration and discovery, generic API CRUD semantics, admission control, encoding/decoding, conversion, defaulting, persistence layer (etcd), OpenAPI, third-party resources, garbage collection, and client libraries. - -For the 1.8 release, SIG API Machinery focused on stability and on ecosystem enablement. Features include the ability to break large LIST calls into smaller chunks, improved support for API server customization with either custom API servers or Custom Resource Definitions, and client side event spam filtering. - -[Sig API Machinery]: https://github.com/kubernetes/community/tree/master/sig-api-machinery - -### SIG Apps - -[SIG Apps][] focuses on the Kubernetes APIs and the external tools that are required to deploy and operate Kubernetes workloads. - -For the 1.8 release, SIG Apps moved the Kubernetes workloads API to the new apps/v1beta2 group and version. The DaemonSet, Deployment, ReplicaSet, and StatefulSet objects are affected by this change. The new apps/v1beta2 group and version provide a stable and consistent API surface for building applications in Kubernetes. For details about deprecations and behavioral changes, see [Notable Features](#notable-features). SIG Apps intends to promote this version to GA in a future release. - -[SIG Apps]: https://github.com/kubernetes/community/tree/master/sig-apps - -### SIG Auth - -[SIG Auth][] is responsible for Kubernetes authentication and authorization, and for -cluster security policies. - -For the 1.8 release, SIG Auth focused on stablizing existing features that were introduced -in previous releases. RBAC was moved from beta to v1, and advanced auditing was moved from alpha -to beta. Encryption of resources stored on disk (resources at rest) remained in alpha, and the SIG began exploring integrations with external key management systems. - -[SIG Auth]: https://github.com/kubernetes/community/tree/master/sig-auth - -### SIG Autoscaling - -[SIG Autoscaling][] is responsible for autoscaling-related components, -such as the Horizontal Pod Autoscaler and Cluster Autoscaler. - -For the 1.8 release, SIG Autoscaling continued to focus on stabilizing -features introduced in previous releases: the new version of the -Horizontal Pod Autoscaler API, which supports custom metrics, and -the Cluster Autoscaler, which provides improved performance and error reporting. - -[SIG Autoscaling]: https://github.com/kubernetes/community/tree/master/sig-autoscaling - -### SIG Cluster Lifecycle - -[SIG Cluster Lifecycle][] is responsible for the user experience of deploying, -upgrading, and deleting clusters. - -For the 1.8 release, SIG Cluster Lifecycle continued to focus on expanding the -capabilities of kubeadm, which is both a user-facing tool to manage clusters -and a building block for higher-level provisioning systems. Starting -with the 1.8 release, kubeadm supports a new upgrade command and includes alpha -support for self hosting the cluster control plane. - -[SIG Cluster Lifecycle]: https://github.com/kubernetes/community/tree/master/sig-cluster-lifecycle - -### SIG Instrumentation - -[SIG Instrumentation][] is responsible for metrics production and -collection. - -For the 1.8 release, SIG Instrumentation focused on stabilizing the APIs -and components that are required to support the new version of the Horizontal Pod -Autoscaler API: the resource metrics API, custom metrics API, and -metrics-server, which is the new replacement for Heapster in the default monitoring -pipeline. - -[SIG Instrumentation]: https://github.com/kubernetes/community/tree/master/sig-instrumentation - -### SIG Multi-cluster (formerly known as SIG Federation) - -[SIG Multi-cluster][] is responsible for infrastructure that supports -the efficient and reliable management of multiple Kubernetes clusters, -and applications that run in and across multiple clusters. - -For the 1.8 release, SIG Multicluster focussed on expanding the set of -Kubernetes primitives that our Cluster Federation control plane -supports, expanding the number of approaches taken to multi-cluster -management (beyond our initial Federation approach), and preparing -to release Federation for general availability ('GA'). - -[SIG Multi-cluster]: https://github.com/kubernetes/community/tree/master/sig-federation - -### SIG Node - -[SIG Node][] is responsible for the components that support the controlled -interactions between pods and host resources, and manage the lifecycle -of pods scheduled on a node. - -For the 1.8 release, SIG Node continued to focus -on a broad set of workload types, including hardware and performance -sensitive workloads such as data analytics and deep learning. The SIG also -delivered incremental improvements to node reliability. - -[SIG Node]: https://github.com/kubernetes/community/tree/master/sig-node - -### SIG Network - -[SIG Network][] is responsible for networking components, APIs, and plugins in Kubernetes. - -For the 1.8 release, SIG Network enhanced the NetworkPolicy API to support pod egress traffic policies. -The SIG also provided match criteria that allow policy rules to match a source or destination CIDR. Both features are in beta. SIG Network also improved the kube-proxy to include an alpha IPVS mode in addition to the current iptables and userspace modes. - -[SIG Network]: https://github.com/kubernetes/community/tree/master/sig-network - -### SIG Scalability - -[SIG Scalability][] is responsible for scalability testing, measuring and -improving system performance, and answering questions related to scalability. - -For the 1.8 release, SIG Scalability focused on automating large cluster -scalability testing in a continuous integration (CI) environment. The SIG -defined a concrete process for scalability testing, created -documentation for the current scalability thresholds, and defined a new set of -Service Level Indicators (SLIs) and Service Level Objectives (SLOs) for the system. -Here's the release [scalability validation report]. - -[SIG Scalability]: https://github.com/kubernetes/community/tree/master/sig-scalability -[scalability validation report]: https://github.com/kubernetes/features/tree/master/release-1.8/scalability_validation_report.md - -### SIG Scheduling - -[SIG Scheduling][] is responsible for generic scheduler and scheduling components. - -For the 1.8 release, SIG Scheduling extended the concept of cluster sharing by introducing -pod priority and pod preemption. These features allow mixing various types of workloads in a single cluster, and help reach -higher levels of resource utilization and availability. -These features are in alpha. SIG Scheduling also improved the internal APIs for scheduling and made them easier for other components and external schedulers to use. - -[SIG Scheduling]: https://github.com/kubernetes/community/tree/master/sig-scheduling - -### SIG Storage - -[SIG Storage][] is responsible for storage and volume plugin components. - -For the 1.8 release, SIG Storage extended the Kubernetes storage API. In addition to providing simple -volume availability, the API now enables volume resizing and snapshotting. These features are in alpha. -The SIG also focused on providing more control over storage: the ability to set requests and -limits on ephemeral storage, the ability to specify mount options, more metrics, and improvements to Flex driver deployments. - -[SIG Storage]: https://github.com/kubernetes/community/tree/master/sig-storage - -## Before Upgrading - -Consider the following changes, limitations, and guidelines before you upgrade: - -* The kubelet now fails if swap is enabled on a node. To override the default and run with /proc/swaps on, set `--fail-swap-on=false`. The experimental flag `--experimental-fail-swap-on` is deprecated in this release, and will be removed in a future release. - -* The `autoscaling/v2alpha1` API is now at `autoscaling/v2beta1`. However, the form of the API remains unchanged. Migrate the `HorizontalPodAutoscaler` resources to `autoscaling/v2beta1` to persist the `HorizontalPodAutoscaler` changes introduced in `autoscaling/v2alpha1`. The Horizontal Pod Autoscaler changes include support for status conditions, and autoscaling on memory and custom metrics. - -* The metrics APIs, `custom-metrics.metrics.k8s.io` and `metrics`, were moved from `v1alpha1` to `v1beta1`, and renamed to `custom.metrics.k8s.io` and `metrics.k8s.io`, respectively. If you have deployed a custom metrics adapter, ensure that it supports the new API version. If you have deployed Heapster in aggregated API server mode, upgrade Heapster to support the latest API version. - -* Advanced auditing is the default auditing mechanism at `v1beta1`. The new version introduces the following changes: - - * The `--audit-policy-file` option is required if the `AdvancedAudit` feature is not explicitly turned off (`--feature-gates=AdvancedAudit=false`) on the API server. - * The audit log file defaults to JSON encoding when using the advanced auditing feature gate. - * The `--audit-policy-file` option requires `kind` and `apiVersion` fields specifying what format version the `Policy` is using. - * The webhook and log file now output the `v1beta1` event format. - - For more details, see [Advanced audit](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#advanced-audit). - -* The deprecated `ThirdPartyResource` (TPR) API was removed. - To avoid losing your TPR data, [migrate to CustomResourceDefinition](https://kubernetes.io/docs/tasks/access-kubernetes-api/migrate-third-party-resource/). - -* The following deprecated flags were removed from `kube-controller-manager`: - - * `replication-controller-lookup-cache-size` - * `replicaset-lookup-cache-size` - * `daemonset-lookup-cache-size` - - Don't use these flags. Using deprecated flags causes the server to print a warning. Using a removed flag causes the server to abort the startup. - -* StatefulSet: The deprecated `pod.alpha.kubernetes.io/initialized` annotation for interrupting the StatefulSet Pod management is now ignored. StatefulSets with this annotation set to `true` or with no value will behave just as they did in previous versions. Dormant StatefulSets with the annotation set to `false` will become active after upgrading. - -* The CronJob object is now enabled by default at `v1beta1`. CronJob `v2alpha1` is still available, but it must be explicitly enabled. We recommend that you move any current CronJob objects to `batch/v1beta1.CronJob`. Be aware that if you specify the deprecated version, you may encounter Resource Not Found errors. These errors occur because the new controllers look for the new version during a rolling update. - -* The `batch/v2alpha1.ScheduledJob` was removed. Migrate to `batch/v1beta.CronJob` to continue managing time based jobs. - -* The `rbac/v1alpha1`, `settings/v1alpha1`, and `scheduling/v1alpha1` APIs are disabled by default. - -* The `system:node` role is no longer automatically granted to the `system:nodes` group in new clusters. The role gives broad read access to resources, including secrets and configmaps. Use the `Node` authorization mode to authorize the nodes in new clusters. To continue providing the `system:node` role to the members of the `system:nodes` group, create an installation-specific `ClusterRoleBinding` in the installation. ([#49638](https://github.com/kubernetes/kubernetes/pull/49638)) - -## Known Issues - -This section contains a list of known issues reported in Kubernetes 1.8 release. The content is populated via [v1.8.x known issues and FAQ accumulator](https://github.com/kubernetes/kubernetes/issues/53004). - -* A performance issue was identified in large-scale clusters when deleting thousands of pods simultaneously across hundreds of nodes. Kubelets in this scenario can encounter temporarily increased latency of `delete pod` API calls -- above the target service level objective of 1 second. If you run clusters with this usage pattern and if pod deletion latency could be an issue for you, you might want to wait until the issue is resolved before you upgrade. - -For more information and for updates on resolution of this issue, see [#51899](https://issue.k8s.io/51899). - -* Audit logs might impact the API server performance and the latency of large request and response calls. The issue is observed under the following conditions: if `AdvancedAuditing` feature gate is enabled, which is the default case, if audit logging uses the log backend in JSON format, or if the audit policy records large API calls for requests or responses. - -For more information, see [#51899](https://github.com/kubernetes/kubernetes/issues/51899). - -* Minikube version 0.22.2 or lower does not work with kubectl version 1.8 or higher. This issue is caused by the presence of an unregistered type in the minikube API server. New versions of kubectl force validate the OpenAPI schema, which is not registered with all known types in the minikube API server. - -For more information, see [#1996](https://github.com/kubernetes/minikube/issues/1996). - -* The `ENABLE_APISERVER_BASIC_AUDIT` configuration parameter for GCE deployments is broken, but deprecated. - -For more information, see [#53154](https://github.com/kubernetes/kubernetes/issues/53154). - -* `kubectl set` commands placed on ReplicaSet and DaemonSet occasionally return version errors. All set commands, including set image, set env, set resources, and set serviceaccounts, are affected. - -For more information, see [#53040](https://github.com/kubernetes/kubernetes/issues/53040). - -* Object quotas are not consistently charged or updated. Specifically, the object count quota does not reliably account for uninitialized objects. Some quotas are charged only when an object is initialized. Others are charged when an object is created, whether it is initialized or not. We plan to fix this issue in a future release. - -For more information, see [#53109](https://github.com/kubernetes/kubernetes/issues/53109). - -## Deprecations - -This section provides an overview of deprecated API versions, options, flags, and arguments. Deprecated means that we intend to remove the capability from a future release. After removal, the capability will no longer work. The sections are organized by SIGs. - -### Apps - -- The `.spec.rollbackTo` field of the Deployment kind is deprecated in `extensions/v1beta1`. - -- The `kubernetes.io/created-by` annotation is deprecated and will be removed in version 1.9. - Use [ControllerRef](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/controller-ref.md) instead to determine which controller, if any, owns an object. - - - The `batch/v2alpha1.CronJob` is deprecated in favor of `batch/v1beta1`. - - - The `batch/v2alpha1.ScheduledJob` was removed. Use `batch/v1beta1.CronJob` instead. - -### Auth - - - The RBAC v1alpha1 API group is deprecated in favor of RBAC v1. - - - The API server flag `--experimental-bootstrap-token-auth` is deprecated in favor of `--enable-bootstrap-token-auth`. The `--experimental-bootstrap-token-auth` flag will be removed in version 1.9. - -### Autoscaling - - - Consuming metrics directly from Heapster is deprecated in favor of - consuming metrics via an aggregated version of the resource metrics API. - - - In version 1.8, enable this behavior by setting the - `--horizontal-pod-autoscaler-use-rest-clients` flag to `true`. - - - In version 1.9, this behavior will be enabled by default, and must be explicitly - disabled by setting the `--horizontal-pod-autoscaler-use-rest-clients` flag to `false`. - -### Cluster Lifecycle - -- The `auto-detect` behavior of the kubelet's `--cloud-provider` flag is deprecated. - - - In version 1.8, the default value for the kubelet's `--cloud-provider` flag is `auto-detect`. Be aware that it works only on GCE, AWS and Azure. - - - In version 1.9, the default will be `""`, which means no built-in cloud provider extension will be enabled by default. - - - Enable an out-of-tree cloud provider with `--cloud-provider=external` in either version. - - For more information on deprecating auto-detecting cloud providers in kubelet, see [PR #51312](https://github.com/kubernetes/kubernetes/pull/51312) and [announcement](https://groups.google.com/forum/#!topic/kubernetes-dev/UAxwa2inbTA). - -- The `PersistentVolumeLabel` admission controller in the API server is deprecated. - - - The replacement is running a cloud-specific controller-manager (often referred to as `cloud-controller-manager`) with the `PersistentVolumeLabel` controller enabled. This new controller loop operates as the `PersistentVolumeLabel` admission controller did in previous versions. - - - Do not use the `PersistentVolumeLabel` admission controller in the configuration files and scripts unless you are dependent on the in-tree GCE and AWS cloud providers. - - - The `PersistentVolumeLabel` admission controller will be removed in a future release, when the out-of-tree versions of the GCE and AWS cloud providers move to GA. The cloud providers are marked alpha in version 1.9. - -### OpenStack - -- The `openstack-heat` provider for `kube-up` is deprecated and will be removed - in a future release. Refer to [Issue #49213](https://github.com/kubernetes/kubernetes/issues/49213) - for background information. - -### Scheduling - - - Opaque Integer Resources (OIRs) are deprecated and will be removed in - version 1.9. Extended Resources (ERs) are a drop-in replacement for OIRs. You can use - any domain name prefix outside of the `kubernetes.io/` domain instead of the - `pod.alpha.kubernetes.io/opaque-int-resource-` prefix. - -## Notable Features - -### Workloads API (apps/v1beta2) - -Kubernetes 1.8 adds the apps/v1beta2 group and version, which now consists of the -DaemonSet, Deployment, ReplicaSet and StatefulSet kinds. This group and version are part -of the Kubernetes Workloads API. We plan to move them to v1 in an upcoming release, so you might want to plan your migration accordingly. - -For more information, see [the issue that describes this work in detail](https://github.com/kubernetes/features/issues/353) - -#### API Object Additions and Migrations - -- The DaemonSet, Deployment, ReplicaSet, and StatefulSet kinds - are now in the apps/v1beta2 group and version. - -- The apps/v1beta2 group version adds a Scale subresource for the StatefulSet -kind. - -- All kinds in the apps/v1beta2 group version add a corresponding conditions - kind. - -#### Behavioral Changes - - - For all kinds in the API group version, a spec.selector default value is no longer - available, because it's incompatible with `kubectl - apply` and strategic merge patch. You must explicitly set the spec.selector value - in your manifest. An object with a spec.selector value that does not match the labels in - its spec.template is invalid. - - - Selector mutation is disabled for all kinds in the - app/v1beta2 group version, because the controllers in the workloads API do not handle - selector mutation in - a consistent way. This restriction may be lifted in the future, but - it is likely that that selectors will remain immutable after the move to v1. - You can continue to use code that depends on mutable selectors by calling - the apps/v1beta1 API in this release, but you should start planning for code - that does not depend on mutable selectors. - - - Extended Resources are fully-qualified resource names outside the - `kubernetes.io` domain. Extended Resource quantities must be integers. - You can specify any resource name of the form `[aaa.]my-domain.bbb/ccc` - in place of [Opaque Integer Resources](https://v1-6.docs.kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#opaque-integer-resources-alpha-feature). - Extended resources cannot be overcommitted, so make sure that request and limit are equal - if both are present in a container spec. - - - The default Bootstrap Token created with `kubeadm init` v1.8 expires - and is deleted after 24 hours by default to limit the exposure of the - valuable credential. You can create a new Bootstrap Token with - `kubeadm token create` or make the default token permanently valid by specifying - `--token-ttl 0` to `kubeadm init`. The default token can later be deleted with - `kubeadm token delete`. - - - `kubeadm join` now delegates TLS Bootstrapping to the kubelet itself, instead - of reimplementing the process. `kubeadm join` writes the bootstrap kubeconfig - file to `/etc/kubernetes/bootstrap-kubelet.conf`. - -#### Defaults - - - The default spec.updateStrategy for the StatefulSet and DaemonSet kinds is - RollingUpdate for the apps/v1beta2 group version. You can explicitly set - the OnDelete strategy, and no strategy auto-conversion is applied to - replace default values. - - - As mentioned in [Behavioral Changes](#behavioral-changes), selector - defaults are disabled. - - - The default spec.revisionHistoryLimit for all applicable kinds in the - apps/v1beta2 group version is 10. - - - In a CronJob object, the default spec.successfulJobsHistoryLimit is 3, and - the default spec.failedJobsHistoryLimit is 1. - -### Workloads API (batch) - -- CronJob is now at `batch/v1beta1` ([#41039](https://github.com/kubernetes/kubernetes/issues/41039), [@soltysh](https://github.com/soltysh)). - -- `batch/v2alpha.CronJob` is deprecated in favor of `batch/v1beta` and will be removed in a future release. - -- Job can now set a failure policy using `.spec.backoffLimit`. The default value for this new field is 6. ([#30243](https://github.com/kubernetes/kubernetes/issues/30243), [@clamoriniere1A](https://github.com/clamoriniere1A)). - -- `batch/v2alpha1.ScheduledJob` is removed. - -- The Job controller now creates pods in batches instead of all at once. ([#49142](https://github.com/kubernetes/kubernetes/pull/49142), [@joelsmith](https://github.com/joelsmith)). - -- Short `.spec.ActiveDeadlineSeconds` is properly applied to a Job. ([#48545] -(https://github.com/kubernetes/kubernetes/pull/48454), [@weiwei4](https://github.com/weiwei04)). - - -#### CLI Changes - -- [alpha] `kubectl` plugins: `kubectl` now allows binary extensibility. You can extend the default set of `kubectl` commands by writing plugins - that provide new subcommands. Refer to the documentation for more information. - -- `kubectl rollout` and `rollback` now support StatefulSet. - -- `kubectl scale` now uses the Scale subresource for kinds in the apps/v1beta2 group. - -- `kubectl create configmap` and `kubectl create secret` subcommands now support - the `--append-hash` flag, which enables unique but deterministic naming for - objects generated from files, for example with `--from-file`. - -- `kubectl run` can set a service account name in the generated pod - spec with the `--serviceaccount` flag. - -- `kubectl proxy` now correctly handles the `exec`, `attach`, and - `portforward` commands. You must pass `--disable-filter` to the command to allow these commands. - -- Added `cronjobs.batch` to "all", so that `kubectl get all` returns them. - -- Added flag `--include-uninitialized` to `kubectl annotate`, `apply`, `edit-last-applied`, - `delete`, `describe`, `edit`, `get`, `label,` and `set`. `--include-uninitialized=true` makes - kubectl commands apply to uninitialized objects, which by default are ignored - if the names of the objects are not provided. `--all` also makes kubectl - commands apply to uninitialized objects. See the - [initializer documentation](https://kubernetes.io/docs/admin/extensible-admission-controllers/) for more details. - -- Added RBAC reconcile commands with `kubectl auth reconcile -f FILE`. When - passed a file which contains RBAC roles, rolebindings, clusterroles, or - clusterrolebindings, this command computes covers and adds the missing rules. - The logic required to properly apply RBAC permissions is more complicated - than a JSON merge because you have to compute logical covers operations between - rule sets. This means that we cannot use `kubectl apply` to update RBAC roles - without risking breaking old clients, such as controllers. - -- `kubectl delete` no longer scales down workload API objects before deletion. - Users who depend on ordered termination for the Pods of their StatefulSets - must use `kubectl scale` to scale down the StatefulSet before deletion. - -- `kubectl run --env` no longer supports CSV parsing. To provide multiple environment - variables, use the `--env` flag multiple times instead. Example: `--env ONE=1 --env TWO=2` instead of `--env ONE=1,TWO=2`. - -- Removed deprecated command `kubectl stop`. - -- Kubectl can now use http caching for the OpenAPI schema. The cache - directory can be configured by passing the `--cache-dir` command line flag to kubectl. - If set to an empty string, caching is disabled. - -- Kubectl now performs validation against OpenAPI schema instead of Swagger 1.2. If - OpenAPI is not available on the server, it falls back to the old Swagger 1.2. - -- Added Italian translation for kubectl. - -- Added German translation for kubectl. - -#### Scheduling - -* [alpha] This version now supports pod priority and creation of PriorityClasses ([user doc](https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/))([design doc](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/scheduling/pod-priority-api.md)) - -* [alpha] This version now supports priority-based preemption of pods ([user doc](https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/))([design doc](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/scheduling/pod-preemption.md)) - -* [alpha] Users can now add taints to nodes by condition ([design doc](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/scheduling/taint-node-by-condition.md)) - -#### Storage - -* [stable] Mount options - - * The ability to specify mount options for volumes is moved from beta to stable. - - * A new `MountOptions` field in the `PersistentVolume` spec is available to specify mount options. This field replaces an annotation. - - * A new `MountOptions` field in the `StorageClass` spec allows configuration of mount options for dynamically provisioned volumes. - -* [stable] Support Attach and Detach operations for ReadWriteOnce (RWO) volumes that use iSCSI and Fibre Channel plugins. - -* [stable] Expose storage usage metrics - - * The available capacity of a given Persistent Volume (PV) is available by calling the Kubernetes metrics API. - -* [stable] Volume plugin metrics - - * Success and latency metrics for all Kubernetes calls are available by calling the Kubernetes metrics API. You can request volume operations, including mount, unmount, attach, detach, provision, and delete. - -* [stable] The PV spec for Azure File, CephFS, iSCSI, and Glusterfs is modified to reference namespaced resources. - -* [stable] You can now customize the iSCSI initiator name per volume in the iSCSI volume plugin. - -* [stable] You can now specify the World Wide Identifier (WWID) for the volume identifier in the Fibre Channel volume plugin. - -* [beta] Reclaim policy in StorageClass - - * You can now configure the reclaim policy in StorageClass, instead of defaulting to `delete` for dynamically provisioned volumes. - -* [alpha] Volume resizing - - * You can now increase the size of a volume by calling the Kubernetes API. - - * For alpha, this feature increases only the size of the underlying volume. It does not support resizing the file system. - - * For alpha, volume resizing supports only Gluster volumes. - -* [alpha] Provide capacity isolation and resource management for local ephemeral storage - - * You can now set container requests, container limits, and node allocatable reservations for the new `ephemeral-storage` resource. - - * The `ephemeral-storage` resource includes all the disk space a container might consume with container overlay or scratch. - -* [alpha] Mount namespace propagation - - * The `VolumeMount.Propagation` field for `VolumeMount` in pod containers is now available. - - * You can now set `VolumeMount.Propagation` to `Bidirectional` to enable a particular mount for a container to propagate itself to the host or other containers. - -* [alpha] Improve Flex volume deployment - - * Flex volume driver deployment is simplified in the following ways: - - * New driver files can now be automatically discovered and initialized without requiring a kubelet or controller-manager restart. - - * A sample DaemonSet to deploy Flexvolume drivers is now available. - -* [prototype] Volume snapshots - - * You can now create a volume snapshot by calling the Kubernetes API. - - * Note that the prototype does not support quiescing before snapshot, so snapshots might be inconsistent. - - * In the prototype phase, this feature is external to the core Kubernetes. It's available at https://github.com/kubernetes-incubator/external-storage/tree/master/snapshot. - -### Cluster Federation - -#### [alpha] Federated Jobs - -Federated Jobs that are automatically deployed to multiple clusters -are now supported. Cluster selection and weighting determine how Job -parallelism and completions are spread across clusters. Federated Job -status reflects the aggregate status across all underlying cluster -jobs. - -#### [alpha] Federated Horizontal Pod Autoscaling (HPA) - -Federated HPAs are similar to the traditional Kubernetes HPAs, except -that they span multiple clusters. Creating a Federated HPA targeting -multiple clusters ensures that cluster-level autoscalers are -consistently deployed across those clusters, and dynamically managed -to ensure that autoscaling can occur optimially in all clusters, -within a set of global constraints on the the total number of replicas -permitted across all clusters. If replicas are not -required in some clusters due to low system load or insufficient quota -or capacity in those clusters, additional replicas are made available -to the autoscalers in other clusters if required. - -### Node Components - -#### Autoscaling and Metrics - -* Support for custom metrics in the Horizontal Pod Autoscaler is now at v1beta1. The associated metrics APIs (custom metrics and resource/master metrics) were also moved to v1beta1. For more information, see [Before Upgrading](#before-upgrading). - -* `metrics-server` is now the recommended way to provide the resource - metrics API. Deploy `metrics-server` as an add-on in the same way that you deploy Heapster. - -##### Cluster Autoscaler - -* Cluster autoscaler is now GA -* Cluster support size is increased to 1000 nodes -* Respect graceful pod termination of up to 10 minutes -* Handle zone stock-outs and failures -* Improve monitoring and error reporting - -#### Container Runtime Interface (CRI) - -* [alpha] Add a CRI validation test suite and CRI command-line tools. ([#292](https://github.com/kubernetes/features/issues/292), [@feiskyer](https://github.com/feiskyer)) - -* [stable] [cri-o](https://github.com/kubernetes-incubator/cri-o): CRI implementation for OCI-based runtimes [@mrunalp] - - * Passed all the Kubernetes 1.7 end-to-end conformance test suites. - * Verification against Kubernetes 1.8 is planned soon after the release. - -* [stable] [frakti](https://github.com/kubernetes/frakti): CRI implementation for hypervisor-based runtimes is now v1.1. [@feiskyer] - - * Enhance CNI plugin compatibility, supports flannel, calico, weave and so on. - * Pass all CRI validation conformance tests and node end-to-end conformance tests. - * Add experimental Unikernel support. - -* [alpha] [cri-containerd](https://github.com/kubernetes-incubator/cri-containerd): CRI implementation for containerd is now v1.0.0-alpha.0, [@Random-Liu] - - * Feature complete. Support the full CRI API defined in v1.8. - * Pass all the CRI validation tests and regular node end-to-end tests. - * An ansible playbook is provided to configure a Kubernetes cri-containerd cluster with kubeadm. - -* Add support in Kubelet to consume container metrics via CRI. [@yguo0905] - * There are known bugs that result in errors when querying Kubelet's stats summary API. We expect to fix them in v1.8.1. - -#### kubelet - -* [alpha] Kubelet now supports alternative container-level CPU affinity policies by using the new CPU manager. ([#375](https://github.com/kubernetes/features/issues/375), [@sjenning](https://github.com/sjenning), [@ConnorDoyle](https://github.com/ConnorDoyle)) - -* [alpha] Applications may now request pre-allocated hugepages by using the new `hugepages` resource in the container resource requests. ([#275](https://github.com/kubernetes/features/issues/275), [@derekwaynecarr](https://github.com/derekwaynecarr)) - -* [alpha] Add support for dynamic Kubelet configuration. ([#281](https://github.com/kubernetes/features/issues/281), [@mtaufen](https://github.com/mtaufen)) - -* [alpha] Add the Hardware Device Plugins API. ([#368](https://github.com/kubernetes/features/issues/368), [@jiayingz], [@RenaudWasTaken]) - -* [stable] Upgrade cAdvisor to v0.27.1 with the enhancement for node monitoring. [@dashpole] - - * Fix journalctl leak - * Fix container memory rss - * Fix incorrect CPU usage with 4.7 kernel - * OOM parser uses kmsg - * Add hugepages support - * Add CRI-O support - -* Sharing a PID namespace between containers in a pod is disabled by default in version 1.8. To enable for a node, use the `--docker-disable-shared-pid=false` kubelet flag. Be aware that PID namespace sharing requires Docker version greater than or equal to 1.13.1. - -* Fix issues related to the eviction manager. - -* Fix inconsistent Prometheus cAdvisor metrics. - -* Fix issues related to the local storage allocatable feature. - -### Auth - -* [GA] The RBAC API group has been promoted from v1beta1 to v1. No API changes were introduced. - -* [beta] Advanced auditing has been promoted from alpha to beta. The webhook and logging policy formats have changed since alpha, and may require modification. - -* [beta] Kubelet certificate rotation through the certificates API has been promoted from alpha to beta. RBAC cluster roles for the certificates controller have been added for common uses of the certificates API, such as the kubelet's. - -* [beta] SelfSubjectRulesReview, an API that lets a user see what actions they can perform with a namespace, has been added to the authorization.k8s.io API group. This bulk query is intended to enable UIs to show/hide actions based on the end user, and for users to quickly reason about their own permissions. - -* [alpha] Building on the 1.7 work to allow encryption of resources such as secrets, a mechanism to store resource encryption keys in external Key Management Systems (KMS) was introduced. This complements the original file-based storage and allows integration with multiple KMS. A Google Cloud KMS plugin was added and will be usable once the Google side of the integration is complete. - -* Websocket requests may now authenticate to the API server by passing a bearer token in a websocket subprotocol of the form `base64url.bearer.authorization.k8s.io.<base64url-encoded-bearer-token>`. ([#47740](https://github.com/kubernetes/kubernetes/pull/47740) [@liggitt](https://github.com/liggitt)) - -* Advanced audit now correctly reports impersonated user info. ([#48184], [@CaoShuFeng](https://github.com/CaoShuFeng)) - -* Advanced audit policy now supports matching subresources and resource names, but the top level resource no longer matches the subresouce. For example "pods" no longer matches requests to the logs subresource of pods. Use "pods/logs" to match subresources. ([#48836](https://github.com/kubernetes/kubernetes/pull/48836), [@ericchiang](https://github.com/ericchiang)) - -* Previously a deleted service account or bootstrapping token secret would be considered valid until it was reaped. It is now invalid as soon as the `deletionTimestamp` is set. ([#48343](https://github.com/kubernetes/kubernetes/pull/48343), [@deads2k](https://github.com/deads2k); [#49057](https://github.com/kubernetes/kubernetes/pull/49057), [@ericchiang](https://github.com/ericchiang)) - -* The `--insecure-allow-any-token` flag has been removed from the API server. Users of the flag should use impersonation headers instead for debugging. ([#49045](https://github.com/kubernetes/kubernetes/pull/49045), [@ericchiang](https://github.com/ericchiang)) - -* The NodeRestriction admission plugin now allows a node to evict pods bound to itself. ([#48707](https://github.com/kubernetes/kubernetes/pull/48707), [@danielfm](https://github.com/danielfm)) - -* The OwnerReferencesPermissionEnforcement admission plugin now requires `update` permission on the `finalizers` subresource of the referenced owner in order to set `blockOwnerDeletion` on an owner reference. ([#49133](https://github.com/kubernetes/kubernetes/pull/49133), [@deads2k](https://github.com/deads2k)) - -* The SubjectAccessReview API in the `authorization.k8s.io` API group now allows providing the user uid. ([#49677](https://github.com/kubernetes/kubernetes/pull/49677), [@dims](https://github.com/dims)) - -* After a kubelet rotates its client cert, it now closes its connections to the API server to force a handshake using the new cert. Previously, the kubelet could keep its existing connection open, even if the cert used for that connection was expired and rejected by the API server. ([#49899](https://github.com/kubernetes/kubernetes/pull/49899), [@ericchiang](https://github.com/ericchiang)) - -* PodSecurityPolicies can now specify a whitelist of allowed paths for host volumes. ([#50212](https://github.com/kubernetes/kubernetes/pull/50212), [@jhorwit2](https://github.com/jhorwit2)) - -* API server authentication now caches successful bearer token authentication results for a few seconds. ([#50258](https://github.com/kubernetes/kubernetes/pull/50258), [@liggitt](https://github.com/liggitt)) - -* The OpenID Connect authenticator can now use a custom prefix, or omit the default prefix, for username and groups claims through the --oidc-username-prefix and --oidc-groups-prefix flags. For example, the authenticator can map a user with the username "jane" to "google:jane" by supplying the "google:" username prefix. ([#50875](https://github.com/kubernetes/kubernetes/pull/50875), [@ericchiang](https://github.com/ericchiang)) - -* The bootstrap token authenticator can now configure tokens with a set of extra groups in addition to `system:bootstrappers`. ([#50933](https://github.com/kubernetes/kubernetes/pull/50933), [@mattmoyer](https://github.com/mattmoyer)) - -* Advanced audit allows logging failed login attempts. - ([#51119](https://github.com/kubernetes/kubernetes/pull/51119), [@soltysh](https://github.com/soltysh)) - -* A `kubectl auth reconcile` subcommand has been added for applying RBAC resources. When passed a file which contains RBAC roles, rolebindings, clusterroles, or clusterrolebindings, it will compute covers and add the missing rules. ([#51636](https://github.com/kubernetes/kubernetes/pull/51636), [@deads2k](https://github.com/deads2k)) - -### Cluster Lifecycle - -#### kubeadm - -* [beta] A new `upgrade` subcommand allows you to automatically upgrade a self-hosted cluster created with kubeadm. ([#296](https://github.com/kubernetes/features/issues/296), [@luxas](https://github.com/luxas)) - -* [alpha] An experimental self-hosted cluster can now easily be created with `kubeadm init`. Enable the feature by setting the SelfHosting feature gate to true: `--feature-gates=SelfHosting=true` ([#296](https://github.com/kubernetes/features/issues/296), [@luxas](https://github.com/luxas)) - * **NOTE:** Self-hosting will be the default way to host the control plane in the next release, v1.9 - -* [alpha] A new `phase` subcommand supports performing only subtasks of the full `kubeadm init` flow. Combined with fine-grained configuration, kubeadm is now more easily consumable by higher-level provisioning tools like kops or GKE. ([#356](https://github.com/kubernetes/features/issues/356), [@luxas](https://github.com/luxas)) - * **NOTE:** This command is currently staged under `kubeadm alpha phase` and will be graduated to top level in a future release. - -#### kops - -* [alpha] Added support for targeting bare metal (or non-cloudprovider) machines. ([#360](https://github.com/kubernetes/features/issues/360), [@justinsb](https://github.com/justinsb)). - -* [alpha] kops now supports [running as a server](https://github.com/kubernetes/kops/blob/master/docs/api-server/README.md). ([#359](https://github.com/kubernetes/features/issues/359), [@justinsb](https://github.com/justinsb)). - -* [beta] GCE support is promoted from alpha to beta. ([#358](https://github.com/kubernetes/features/issues/358), [@justinsb](https://github.com/justinsb)). - -#### Cluster Discovery/Bootstrap - -* [beta] The authentication and verification mechanism called Bootstrap Tokens is improved. Use Bootstrap Tokens to easily add new node identities to a cluster. ([#130](https://github.com/kubernetes/features/issues/130), [@luxas](https://github.com/luxas), [@jbeda](https://github.com/jbeda)). - -#### Multi-platform - -* [alpha] The Conformance e2e test suite now passes on the arm, arm64, and ppc64le platforms. ([#288](https://github.com/kubernetes/features/issues/288), [@luxas](https://github.com/luxas), [@mkumatag](https://github.com/mkumatag), [@ixdy](https://github.com/ixdy)) - -#### Cloud Providers - -* [alpha] Support is improved for the pluggable, out-of-tree and out-of-core cloud providers. ([#88](https://github.com/kubernetes/features/issues/88), [@wlan0](https://github.com/wlan0)) - -### Network - -#### network-policy - -* [beta] Apply NetworkPolicy based on CIDR ([#50033](https://github.com/kubernetes/kubernetes/pull/50033), [@cmluciano](https://github.com/cmluciano)) - -* [beta] Support EgressRules in NetworkPolicy ([#51351](https://github.com/kubernetes/kubernetes/pull/51351), [@cmluciano](https://github.com/cmluciano)) - -#### kube-proxy ipvs mode - -[alpha] Support ipvs mode for kube-proxy([#46580](https://github.com/kubernetes/kubernetes/pull/46580), [@haibinxie](https://github.com/haibinxie)) - -### API Machinery - -#### kube-apiserver -* Fixed an issue with `APIService` auto-registration. This issue affected rolling restarts of HA API servers that added or removed API groups being served.([#51921](https://github.com/kubernetes/kubernetes/pull/51921)) - -* [Alpha] The Kubernetes API server now supports the ability to break large LIST calls into multiple smaller chunks. A client can specify a limit to the number of results to return. If more results exist, a token is returned that allows the client to continue the previous list call repeatedly until all results are retrieved. The resulting list is identical to a list call that does not perform chunking, thanks to capabilities provided by etcd3. This allows the server to use less memory and CPU when very large lists are returned. This feature is gated as APIListChunking and is not enabled by default. The 1.9 release will begin using this by default.([#48921](https://github.com/kubernetes/kubernetes/pull/48921)) - -* Pods that are marked for deletion and have exceeded their grace period, but are not yet deleted, no longer count toward the resource quota.([#46542](https://github.com/kubernetes/kubernetes/pull/46542)) - - -#### Dynamic Admission Control - -* Pod spec is mutable when the pod is uninitialized. The API server requires the pod spec to be valid even if it's uninitialized. Updating the status field of uninitialized pods is invalid.([#51733](https://github.com/kubernetes/kubernetes/pull/51733)) - -* Use of the alpha initializers feature now requires enabling the `Initializers` feature gate. This feature gate is automatically enabled if the `Initializers` admission plugin is enabled.([#51436](https://github.com/kubernetes/kubernetes/pull/51436)) - -* [Action required] The validation rule for metadata.initializers.pending[x].name is tightened. The initializer name must contain at least three segments, separated by dots. You can create objects with pending initializers and not rely on the API server to add pending initializers according to `initializerConfiguration`. If you do so, update the initializer name in the existing objects and the configuration files to comply with the new validation rule.([#51283](https://github.com/kubernetes/kubernetes/pull/51283)) - -* The webhook admission plugin now works even if the API server and the nodes are in two separate networks,for example, in GKE. -The webhook admission plugin now lets the webhook author use the DNS name of the service as the CommonName when generating the server cert for the webhook. -Action required: -Regenerate the server cert for the admission webhooks. Previously, the CN value could be ignored while generating the server cert for the admission webhook. Now you must set it to the DNS name of the webhook service: `<service.Name>.<service.Namespace>.svc`.([#50476](https://github.com/kubernetes/kubernetes/pull/50476)) - - -#### Custom Resource Definitions (CRDs) -* [alpha] The CustomResourceDefinition API can now optionally - [validate custom objects](https://kubernetes.io/docs/tasks/access-kubernetes-api/extend-api-custom-resource-definitions/#validation) - based on a JSON schema provided in the CRD spec. - Enable this alpha feature with the `CustomResourceValidation` feature gate in `kube-apiserver`. - -#### Garbage Collector -* The garbage collector now supports custom APIs added via Custom Resource Definitions - or aggregated API servers. The garbage collector controller refreshes periodically. - Therefore, expect a latency of about 30 seconds between when an API is added and when - the garbage collector starts to manage it. - - -#### Monitoring/Prometheus -* [action required] The WATCHLIST calls are now reported as WATCH verbs in prometheus for the apiserver_request_* series. A new "scope" label is added to all apiserver_request_* values that is either 'cluster', 'resource', or 'namespace' depending on which level the query is performed at.([#52237](https://github.com/kubernetes/kubernetes/pull/52237)) - - -#### Go Client -* Add support for client-side spam filtering of events([#47367](https://github.com/kubernetes/kubernetes/pull/47367)) - - -## External Dependencies - -Continuous integration builds use Docker versions 1.11.2, 1.12.6, 1.13.1, -and 17.03.2. These versions were validated on Kubernetes 1.8. However, -consult an appropriate installation or upgrade guide before deciding what -versions of Docker to use. - -- Docker 1.13.1 and 17.03.2 - - - Shared PID namespace, live-restore, and overlay2 were validated. - - - **Known issues** - - - The default iptables FORWARD policy was changed from ACCEPT to - DROP, which causes outbound container traffic to stop working by - default. See - [#40182](https://github.com/kubernetes/kubernetes/issues/40182) for - the workaround. - - - The support for the v1 registries was removed. - -- Docker 1.12.6 - - - Overlay2 and live-restore are not validated. - - - **Known issues** - - - Shared PID namespace does not work properly. - ([#207](https://github.com/kubernetes/community/pull/207#issuecomment-281870043)) - - - Docker reports incorrect exit codes for containers. - ([#41516](https://github.com/kubernetes/kubernetes/issues/41516)) - -- Docker 1.11.2 - - - **Known issues** - - - Kernel crash with Aufs storage driver on Debian Jessie - ([#27885](https://github.com/kubernetes/kubernetes/issues/27885)). - The issue can be identified by using the node problem detector. - - - File descriptor leak on init/control. - ([#275](https://github.com/containerd/containerd/issues/275)) - - - Additional memory overhead per container. - ([#21737](https://github.com/kubernetes/kubernetes/pull/21737)) - - - Processes may be leaked when Docker is repeatedly terminated in a short - time frame. - ([#41450](https://github.com/kubernetes/kubernetes/issues/41450)) +## Introduction to v1.8.0 + +Kubernetes version 1.8 includes new features and enhancements, as well as fixes to identified issues. The release notes contain a brief overview of the important changes introduced in this release. The content is organized by Special Interest Groups ([SIGs][]). + +For initial installations, see the [Setup topics][] in the Kubernetes +documentation. + +To upgrade to this release from a previous version, take any actions required +[Before Upgrading](#before-upgrading). + +For more information about the release and for the latest documentation, +see the [Kubernetes documentation](https://kubernetes.io/docs/home/). + +[Setup topics]: https://kubernetes.io/docs/setup/pick-right-solution/ +[SIGs]: https://github.com/kubernetes/community/blob/master/sig-list.md + + +## Major Themes + +Kubernetes is developed by community members whose work is organized into +[Special Interest Groups][]. For the 1.8 release, each SIG provides the +themes that guided their work. + +[Special Interest Groups]: https://github.com/kubernetes/community/blob/master/sig-list.md + +### SIG API Machinery + +[SIG API Machinery][] is responsible for all aspects of the API server: API registration and discovery, generic API CRUD semantics, admission control, encoding/decoding, conversion, defaulting, persistence layer (etcd), OpenAPI, third-party resources, garbage collection, and client libraries. + +For the 1.8 release, SIG API Machinery focused on stability and on ecosystem enablement. Features include the ability to break large LIST calls into smaller chunks, improved support for API server customization with either custom API servers or Custom Resource Definitions, and client side event spam filtering. + +[Sig API Machinery]: https://github.com/kubernetes/community/tree/master/sig-api-machinery + +### SIG Apps + +[SIG Apps][] focuses on the Kubernetes APIs and the external tools that are required to deploy and operate Kubernetes workloads. + +For the 1.8 release, SIG Apps moved the Kubernetes workloads API to the new apps/v1beta2 group and version. The DaemonSet, Deployment, ReplicaSet, and StatefulSet objects are affected by this change. The new apps/v1beta2 group and version provide a stable and consistent API surface for building applications in Kubernetes. For details about deprecations and behavioral changes, see [Notable Features](#notable-features). SIG Apps intends to promote this version to GA in a future release. + +[SIG Apps]: https://github.com/kubernetes/community/tree/master/sig-apps + +### SIG Auth + +[SIG Auth][] is responsible for Kubernetes authentication and authorization, and for +cluster security policies. + +For the 1.8 release, SIG Auth focused on stablizing existing features that were introduced +in previous releases. RBAC was moved from beta to v1, and advanced auditing was moved from alpha +to beta. Encryption of resources stored on disk (resources at rest) remained in alpha, and the SIG began exploring integrations with external key management systems. + +[SIG Auth]: https://github.com/kubernetes/community/tree/master/sig-auth + +### SIG Autoscaling + +[SIG Autoscaling][] is responsible for autoscaling-related components, +such as the Horizontal Pod Autoscaler and Cluster Autoscaler. + +For the 1.8 release, SIG Autoscaling continued to focus on stabilizing +features introduced in previous releases: the new version of the +Horizontal Pod Autoscaler API, which supports custom metrics, and +the Cluster Autoscaler, which provides improved performance and error reporting. + +[SIG Autoscaling]: https://github.com/kubernetes/community/tree/master/sig-autoscaling + +### SIG Cluster Lifecycle + +[SIG Cluster Lifecycle][] is responsible for the user experience of deploying, +upgrading, and deleting clusters. + +For the 1.8 release, SIG Cluster Lifecycle continued to focus on expanding the +capabilities of kubeadm, which is both a user-facing tool to manage clusters +and a building block for higher-level provisioning systems. Starting +with the 1.8 release, kubeadm supports a new upgrade command and includes alpha +support for self hosting the cluster control plane. + +[SIG Cluster Lifecycle]: https://github.com/kubernetes/community/tree/master/sig-cluster-lifecycle + +### SIG Instrumentation + +[SIG Instrumentation][] is responsible for metrics production and +collection. + +For the 1.8 release, SIG Instrumentation focused on stabilizing the APIs +and components that are required to support the new version of the Horizontal Pod +Autoscaler API: the resource metrics API, custom metrics API, and +metrics-server, which is the new replacement for Heapster in the default monitoring +pipeline. + +[SIG Instrumentation]: https://github.com/kubernetes/community/tree/master/sig-instrumentation + +### SIG Multi-cluster (formerly known as SIG Federation) + +[SIG Multi-cluster][] is responsible for infrastructure that supports +the efficient and reliable management of multiple Kubernetes clusters, +and applications that run in and across multiple clusters. + +For the 1.8 release, SIG Multicluster focussed on expanding the set of +Kubernetes primitives that our Cluster Federation control plane +supports, expanding the number of approaches taken to multi-cluster +management (beyond our initial Federation approach), and preparing +to release Federation for general availability ('GA'). + +[SIG Multi-cluster]: https://github.com/kubernetes/community/tree/master/sig-federation + +### SIG Node + +[SIG Node][] is responsible for the components that support the controlled +interactions between pods and host resources, and manage the lifecycle +of pods scheduled on a node. + +For the 1.8 release, SIG Node continued to focus +on a broad set of workload types, including hardware and performance +sensitive workloads such as data analytics and deep learning. The SIG also +delivered incremental improvements to node reliability. + +[SIG Node]: https://github.com/kubernetes/community/tree/master/sig-node + +### SIG Network + +[SIG Network][] is responsible for networking components, APIs, and plugins in Kubernetes. + +For the 1.8 release, SIG Network enhanced the NetworkPolicy API to support pod egress traffic policies. +The SIG also provided match criteria that allow policy rules to match a source or destination CIDR. Both features are in beta. SIG Network also improved the kube-proxy to include an alpha IPVS mode in addition to the current iptables and userspace modes. + +[SIG Network]: https://github.com/kubernetes/community/tree/master/sig-network + +### SIG Scalability + +[SIG Scalability][] is responsible for scalability testing, measuring and +improving system performance, and answering questions related to scalability. + +For the 1.8 release, SIG Scalability focused on automating large cluster +scalability testing in a continuous integration (CI) environment. The SIG +defined a concrete process for scalability testing, created +documentation for the current scalability thresholds, and defined a new set of +Service Level Indicators (SLIs) and Service Level Objectives (SLOs) for the system. +Here's the release [scalability validation report]. + +[SIG Scalability]: https://github.com/kubernetes/community/tree/master/sig-scalability +[scalability validation report]: https://github.com/kubernetes/features/tree/master/release-1.8/scalability_validation_report.md + +### SIG Scheduling + +[SIG Scheduling][] is responsible for generic scheduler and scheduling components. + +For the 1.8 release, SIG Scheduling extended the concept of cluster sharing by introducing +pod priority and pod preemption. These features allow mixing various types of workloads in a single cluster, and help reach +higher levels of resource utilization and availability. +These features are in alpha. SIG Scheduling also improved the internal APIs for scheduling and made them easier for other components and external schedulers to use. + +[SIG Scheduling]: https://github.com/kubernetes/community/tree/master/sig-scheduling + +### SIG Storage + +[SIG Storage][] is responsible for storage and volume plugin components. + +For the 1.8 release, SIG Storage extended the Kubernetes storage API. In addition to providing simple +volume availability, the API now enables volume resizing and snapshotting. These features are in alpha. +The SIG also focused on providing more control over storage: the ability to set requests and +limits on ephemeral storage, the ability to specify mount options, more metrics, and improvements to Flex driver deployments. + +[SIG Storage]: https://github.com/kubernetes/community/tree/master/sig-storage + +## Before Upgrading + +Consider the following changes, limitations, and guidelines before you upgrade: + +* The kubelet now fails if swap is enabled on a node. To override the default and run with /proc/swaps on, set `--fail-swap-on=false`. The experimental flag `--experimental-fail-swap-on` is deprecated in this release, and will be removed in a future release. + +* The `autoscaling/v2alpha1` API is now at `autoscaling/v2beta1`. However, the form of the API remains unchanged. Migrate the `HorizontalPodAutoscaler` resources to `autoscaling/v2beta1` to persist the `HorizontalPodAutoscaler` changes introduced in `autoscaling/v2alpha1`. The Horizontal Pod Autoscaler changes include support for status conditions, and autoscaling on memory and custom metrics. + +* The metrics APIs, `custom-metrics.metrics.k8s.io` and `metrics`, were moved from `v1alpha1` to `v1beta1`, and renamed to `custom.metrics.k8s.io` and `metrics.k8s.io`, respectively. If you have deployed a custom metrics adapter, ensure that it supports the new API version. If you have deployed Heapster in aggregated API server mode, upgrade Heapster to support the latest API version. + +* Advanced auditing is the default auditing mechanism at `v1beta1`. The new version introduces the following changes: + + * The `--audit-policy-file` option is required if the `AdvancedAudit` feature is not explicitly turned off (`--feature-gates=AdvancedAudit=false`) on the API server. + * The audit log file defaults to JSON encoding when using the advanced auditing feature gate. + * The `--audit-policy-file` option requires `kind` and `apiVersion` fields specifying what format version the `Policy` is using. + * The webhook and log file now output the `v1beta1` event format. + + For more details, see [Advanced audit](https://kubernetes.io/docs/tasks/debug-application-cluster/audit/#advanced-audit). + +* The deprecated `ThirdPartyResource` (TPR) API was removed. + To avoid losing your TPR data, [migrate to CustomResourceDefinition](https://kubernetes.io/docs/tasks/access-kubernetes-api/migrate-third-party-resource/). + +* The following deprecated flags were removed from `kube-controller-manager`: + + * `replication-controller-lookup-cache-size` + * `replicaset-lookup-cache-size` + * `daemonset-lookup-cache-size` + + Don't use these flags. Using deprecated flags causes the server to print a warning. Using a removed flag causes the server to abort the startup. + +* StatefulSet: The deprecated `pod.alpha.kubernetes.io/initialized` annotation for interrupting the StatefulSet Pod management is now ignored. StatefulSets with this annotation set to `true` or with no value will behave just as they did in previous versions. Dormant StatefulSets with the annotation set to `false` will become active after upgrading. + +* The CronJob object is now enabled by default at `v1beta1`. CronJob `v2alpha1` is still available, but it must be explicitly enabled. We recommend that you move any current CronJob objects to `batch/v1beta1.CronJob`. Be aware that if you specify the deprecated version, you may encounter Resource Not Found errors. These errors occur because the new controllers look for the new version during a rolling update. + +* The `batch/v2alpha1.ScheduledJob` was removed. Migrate to `batch/v1beta.CronJob` to continue managing time based jobs. + +* The `rbac/v1alpha1`, `settings/v1alpha1`, and `scheduling/v1alpha1` APIs are disabled by default. + +* The `system:node` role is no longer automatically granted to the `system:nodes` group in new clusters. The role gives broad read access to resources, including secrets and configmaps. Use the `Node` authorization mode to authorize the nodes in new clusters. To continue providing the `system:node` role to the members of the `system:nodes` group, create an installation-specific `ClusterRoleBinding` in the installation. ([#49638](https://github.com/kubernetes/kubernetes/pull/49638)) + +## Known Issues + +This section contains a list of known issues reported in Kubernetes 1.8 release. The content is populated via [v1.8.x known issues and FAQ accumulator](https://github.com/kubernetes/kubernetes/issues/53004). + +* A performance issue was identified in large-scale clusters when deleting thousands of pods simultaneously across hundreds of nodes. Kubelets in this scenario can encounter temporarily increased latency of `delete pod` API calls -- above the target service level objective of 1 second. If you run clusters with this usage pattern and if pod deletion latency could be an issue for you, you might want to wait until the issue is resolved before you upgrade. + +For more information and for updates on resolution of this issue, see [#51899](https://issue.k8s.io/51899). + +* Audit logs might impact the API server performance and the latency of large request and response calls. The issue is observed under the following conditions: if `AdvancedAuditing` feature gate is enabled, which is the default case, if audit logging uses the log backend in JSON format, or if the audit policy records large API calls for requests or responses. + +For more information, see [#51899](https://github.com/kubernetes/kubernetes/issues/51899). + +* Minikube version 0.22.2 or lower does not work with kubectl version 1.8 or higher. This issue is caused by the presence of an unregistered type in the minikube API server. New versions of kubectl force validate the OpenAPI schema, which is not registered with all known types in the minikube API server. + +For more information, see [#1996](https://github.com/kubernetes/minikube/issues/1996). + +* The `ENABLE_APISERVER_BASIC_AUDIT` configuration parameter for GCE deployments is broken, but deprecated. + +For more information, see [#53154](https://github.com/kubernetes/kubernetes/issues/53154). + +* `kubectl set` commands placed on ReplicaSet and DaemonSet occasionally return version errors. All set commands, including set image, set env, set resources, and set serviceaccounts, are affected. + +For more information, see [#53040](https://github.com/kubernetes/kubernetes/issues/53040). + +* Object quotas are not consistently charged or updated. Specifically, the object count quota does not reliably account for uninitialized objects. Some quotas are charged only when an object is initialized. Others are charged when an object is created, whether it is initialized or not. We plan to fix this issue in a future release. + +For more information, see [#53109](https://github.com/kubernetes/kubernetes/issues/53109). + +## Deprecations + +This section provides an overview of deprecated API versions, options, flags, and arguments. Deprecated means that we intend to remove the capability from a future release. After removal, the capability will no longer work. The sections are organized by SIGs. + +### Apps + +- The `.spec.rollbackTo` field of the Deployment kind is deprecated in `extensions/v1beta1`. + +- The `kubernetes.io/created-by` annotation is deprecated and will be removed in version 1.9. + Use [ControllerRef](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/controller-ref.md) instead to determine which controller, if any, owns an object. + + - The `batch/v2alpha1.CronJob` is deprecated in favor of `batch/v1beta1`. + + - The `batch/v2alpha1.ScheduledJob` was removed. Use `batch/v1beta1.CronJob` instead. + +### Auth + + - The RBAC v1alpha1 API group is deprecated in favor of RBAC v1. + + - The API server flag `--experimental-bootstrap-token-auth` is deprecated in favor of `--enable-bootstrap-token-auth`. The `--experimental-bootstrap-token-auth` flag will be removed in version 1.9. + +### Autoscaling + + - Consuming metrics directly from Heapster is deprecated in favor of + consuming metrics via an aggregated version of the resource metrics API. + + - In version 1.8, enable this behavior by setting the + `--horizontal-pod-autoscaler-use-rest-clients` flag to `true`. + + - In version 1.9, this behavior will be enabled by default, and must be explicitly + disabled by setting the `--horizontal-pod-autoscaler-use-rest-clients` flag to `false`. + +### Cluster Lifecycle + +- The `auto-detect` behavior of the kubelet's `--cloud-provider` flag is deprecated. + + - In version 1.8, the default value for the kubelet's `--cloud-provider` flag is `auto-detect`. Be aware that it works only on GCE, AWS and Azure. + + - In version 1.9, the default will be `""`, which means no built-in cloud provider extension will be enabled by default. + + - Enable an out-of-tree cloud provider with `--cloud-provider=external` in either version. + + For more information on deprecating auto-detecting cloud providers in kubelet, see [PR #51312](https://github.com/kubernetes/kubernetes/pull/51312) and [announcement](https://groups.google.com/forum/#!topic/kubernetes-dev/UAxwa2inbTA). + +- The `PersistentVolumeLabel` admission controller in the API server is deprecated. + + - The replacement is running a cloud-specific controller-manager (often referred to as `cloud-controller-manager`) with the `PersistentVolumeLabel` controller enabled. This new controller loop operates as the `PersistentVolumeLabel` admission controller did in previous versions. + + - Do not use the `PersistentVolumeLabel` admission controller in the configuration files and scripts unless you are dependent on the in-tree GCE and AWS cloud providers. + + - The `PersistentVolumeLabel` admission controller will be removed in a future release, when the out-of-tree versions of the GCE and AWS cloud providers move to GA. The cloud providers are marked alpha in version 1.9. + +### OpenStack + +- The `openstack-heat` provider for `kube-up` is deprecated and will be removed + in a future release. Refer to [Issue #49213](https://github.com/kubernetes/kubernetes/issues/49213) + for background information. + +### Scheduling + + - Opaque Integer Resources (OIRs) are deprecated and will be removed in + version 1.9. Extended Resources (ERs) are a drop-in replacement for OIRs. You can use + any domain name prefix outside of the `kubernetes.io/` domain instead of the + `pod.alpha.kubernetes.io/opaque-int-resource-` prefix. + +## Notable Features + +### Workloads API (apps/v1beta2) + +Kubernetes 1.8 adds the apps/v1beta2 group and version, which now consists of the +DaemonSet, Deployment, ReplicaSet and StatefulSet kinds. This group and version are part +of the Kubernetes Workloads API. We plan to move them to v1 in an upcoming release, so you might want to plan your migration accordingly. + +For more information, see [the issue that describes this work in detail](https://github.com/kubernetes/features/issues/353) + +#### API Object Additions and Migrations + +- The DaemonSet, Deployment, ReplicaSet, and StatefulSet kinds + are now in the apps/v1beta2 group and version. + +- The apps/v1beta2 group version adds a Scale subresource for the StatefulSet +kind. + +- All kinds in the apps/v1beta2 group version add a corresponding conditions + kind. + +#### Behavioral Changes + + - For all kinds in the API group version, a spec.selector default value is no longer + available, because it's incompatible with `kubectl + apply` and strategic merge patch. You must explicitly set the spec.selector value + in your manifest. An object with a spec.selector value that does not match the labels in + its spec.template is invalid. + + - Selector mutation is disabled for all kinds in the + app/v1beta2 group version, because the controllers in the workloads API do not handle + selector mutation in + a consistent way. This restriction may be lifted in the future, but + it is likely that that selectors will remain immutable after the move to v1. + You can continue to use code that depends on mutable selectors by calling + the apps/v1beta1 API in this release, but you should start planning for code + that does not depend on mutable selectors. + + - Extended Resources are fully-qualified resource names outside the + `kubernetes.io` domain. Extended Resource quantities must be integers. + You can specify any resource name of the form `[aaa.]my-domain.bbb/ccc` + in place of [Opaque Integer Resources](https://v1-6.docs.kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#opaque-integer-resources-alpha-feature). + Extended resources cannot be overcommitted, so make sure that request and limit are equal + if both are present in a container spec. + + - The default Bootstrap Token created with `kubeadm init` v1.8 expires + and is deleted after 24 hours by default to limit the exposure of the + valuable credential. You can create a new Bootstrap Token with + `kubeadm token create` or make the default token permanently valid by specifying + `--token-ttl 0` to `kubeadm init`. The default token can later be deleted with + `kubeadm token delete`. + + - `kubeadm join` now delegates TLS Bootstrapping to the kubelet itself, instead + of reimplementing the process. `kubeadm join` writes the bootstrap kubeconfig + file to `/etc/kubernetes/bootstrap-kubelet.conf`. + +#### Defaults + + - The default spec.updateStrategy for the StatefulSet and DaemonSet kinds is + RollingUpdate for the apps/v1beta2 group version. You can explicitly set + the OnDelete strategy, and no strategy auto-conversion is applied to + replace default values. + + - As mentioned in [Behavioral Changes](#behavioral-changes), selector + defaults are disabled. + + - The default spec.revisionHistoryLimit for all applicable kinds in the + apps/v1beta2 group version is 10. + + - In a CronJob object, the default spec.successfulJobsHistoryLimit is 3, and + the default spec.failedJobsHistoryLimit is 1. + +### Workloads API (batch) + +- CronJob is now at `batch/v1beta1` ([#41039](https://github.com/kubernetes/kubernetes/issues/41039), [@soltysh](https://github.com/soltysh)). + +- `batch/v2alpha.CronJob` is deprecated in favor of `batch/v1beta` and will be removed in a future release. + +- Job can now set a failure policy using `.spec.backoffLimit`. The default value for this new field is 6. ([#30243](https://github.com/kubernetes/kubernetes/issues/30243), [@clamoriniere1A](https://github.com/clamoriniere1A)). + +- `batch/v2alpha1.ScheduledJob` is removed. + +- The Job controller now creates pods in batches instead of all at once. ([#49142](https://github.com/kubernetes/kubernetes/pull/49142), [@joelsmith](https://github.com/joelsmith)). + +- Short `.spec.ActiveDeadlineSeconds` is properly applied to a Job. ([#48545] +(https://github.com/kubernetes/kubernetes/pull/48454), [@weiwei4](https://github.com/weiwei04)). + + +#### CLI Changes + +- [alpha] `kubectl` plugins: `kubectl` now allows binary extensibility. You can extend the default set of `kubectl` commands by writing plugins + that provide new subcommands. Refer to the documentation for more information. + +- `kubectl rollout` and `rollback` now support StatefulSet. + +- `kubectl scale` now uses the Scale subresource for kinds in the apps/v1beta2 group. + +- `kubectl create configmap` and `kubectl create secret` subcommands now support + the `--append-hash` flag, which enables unique but deterministic naming for + objects generated from files, for example with `--from-file`. + +- `kubectl run` can set a service account name in the generated pod + spec with the `--serviceaccount` flag. + +- `kubectl proxy` now correctly handles the `exec`, `attach`, and + `portforward` commands. You must pass `--disable-filter` to the command to allow these commands. + +- Added `cronjobs.batch` to "all", so that `kubectl get all` returns them. + +- Added flag `--include-uninitialized` to `kubectl annotate`, `apply`, `edit-last-applied`, + `delete`, `describe`, `edit`, `get`, `label,` and `set`. `--include-uninitialized=true` makes + kubectl commands apply to uninitialized objects, which by default are ignored + if the names of the objects are not provided. `--all` also makes kubectl + commands apply to uninitialized objects. See the + [initializer documentation](https://kubernetes.io/docs/admin/extensible-admission-controllers/) for more details. + +- Added RBAC reconcile commands with `kubectl auth reconcile -f FILE`. When + passed a file which contains RBAC roles, rolebindings, clusterroles, or + clusterrolebindings, this command computes covers and adds the missing rules. + The logic required to properly apply RBAC permissions is more complicated + than a JSON merge because you have to compute logical covers operations between + rule sets. This means that we cannot use `kubectl apply` to update RBAC roles + without risking breaking old clients, such as controllers. + +- `kubectl delete` no longer scales down workload API objects before deletion. + Users who depend on ordered termination for the Pods of their StatefulSets + must use `kubectl scale` to scale down the StatefulSet before deletion. + +- `kubectl run --env` no longer supports CSV parsing. To provide multiple environment + variables, use the `--env` flag multiple times instead. Example: `--env ONE=1 --env TWO=2` instead of `--env ONE=1,TWO=2`. + +- Removed deprecated command `kubectl stop`. + +- Kubectl can now use http caching for the OpenAPI schema. The cache + directory can be configured by passing the `--cache-dir` command line flag to kubectl. + If set to an empty string, caching is disabled. + +- Kubectl now performs validation against OpenAPI schema instead of Swagger 1.2. If + OpenAPI is not available on the server, it falls back to the old Swagger 1.2. + +- Added Italian translation for kubectl. + +- Added German translation for kubectl. + +#### Scheduling + +* [alpha] This version now supports pod priority and creation of PriorityClasses ([user doc](https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/))([design doc](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/scheduling/pod-priority-api.md)) + +* [alpha] This version now supports priority-based preemption of pods ([user doc](https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/))([design doc](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/scheduling/pod-preemption.md)) + +* [alpha] Users can now add taints to nodes by condition ([design doc](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/scheduling/taint-node-by-condition.md)) + +#### Storage + +* [stable] Mount options + + * The ability to specify mount options for volumes is moved from beta to stable. + + * A new `MountOptions` field in the `PersistentVolume` spec is available to specify mount options. This field replaces an annotation. + + * A new `MountOptions` field in the `StorageClass` spec allows configuration of mount options for dynamically provisioned volumes. + +* [stable] Support Attach and Detach operations for ReadWriteOnce (RWO) volumes that use iSCSI and Fibre Channel plugins. + +* [stable] Expose storage usage metrics + + * The available capacity of a given Persistent Volume (PV) is available by calling the Kubernetes metrics API. + +* [stable] Volume plugin metrics + + * Success and latency metrics for all Kubernetes calls are available by calling the Kubernetes metrics API. You can request volume operations, including mount, unmount, attach, detach, provision, and delete. + +* [stable] The PV spec for Azure File, CephFS, iSCSI, and Glusterfs is modified to reference namespaced resources. + +* [stable] You can now customize the iSCSI initiator name per volume in the iSCSI volume plugin. + +* [stable] You can now specify the World Wide Identifier (WWID) for the volume identifier in the Fibre Channel volume plugin. + +* [beta] Reclaim policy in StorageClass + + * You can now configure the reclaim policy in StorageClass, instead of defaulting to `delete` for dynamically provisioned volumes. + +* [alpha] Volume resizing + + * You can now increase the size of a volume by calling the Kubernetes API. + + * For alpha, this feature increases only the size of the underlying volume. It does not support resizing the file system. + + * For alpha, volume resizing supports only Gluster volumes. + +* [alpha] Provide capacity isolation and resource management for local ephemeral storage + + * You can now set container requests, container limits, and node allocatable reservations for the new `ephemeral-storage` resource. + + * The `ephemeral-storage` resource includes all the disk space a container might consume with container overlay or scratch. + +* [alpha] Mount namespace propagation + + * The `VolumeMount.Propagation` field for `VolumeMount` in pod containers is now available. + + * You can now set `VolumeMount.Propagation` to `Bidirectional` to enable a particular mount for a container to propagate itself to the host or other containers. + +* [alpha] Improve Flex volume deployment + + * Flex volume driver deployment is simplified in the following ways: + + * New driver files can now be automatically discovered and initialized without requiring a kubelet or controller-manager restart. + + * A sample DaemonSet to deploy Flexvolume drivers is now available. + +* [prototype] Volume snapshots + + * You can now create a volume snapshot by calling the Kubernetes API. + + * Note that the prototype does not support quiescing before snapshot, so snapshots might be inconsistent. + + * In the prototype phase, this feature is external to the core Kubernetes. It's available at https://github.com/kubernetes-incubator/external-storage/tree/master/snapshot. + +### Cluster Federation + +#### [alpha] Federated Jobs + +Federated Jobs that are automatically deployed to multiple clusters +are now supported. Cluster selection and weighting determine how Job +parallelism and completions are spread across clusters. Federated Job +status reflects the aggregate status across all underlying cluster +jobs. + +#### [alpha] Federated Horizontal Pod Autoscaling (HPA) + +Federated HPAs are similar to the traditional Kubernetes HPAs, except +that they span multiple clusters. Creating a Federated HPA targeting +multiple clusters ensures that cluster-level autoscalers are +consistently deployed across those clusters, and dynamically managed +to ensure that autoscaling can occur optimially in all clusters, +within a set of global constraints on the the total number of replicas +permitted across all clusters. If replicas are not +required in some clusters due to low system load or insufficient quota +or capacity in those clusters, additional replicas are made available +to the autoscalers in other clusters if required. + +### Node Components + +#### Autoscaling and Metrics + +* Support for custom metrics in the Horizontal Pod Autoscaler is now at v1beta1. The associated metrics APIs (custom metrics and resource/master metrics) were also moved to v1beta1. For more information, see [Before Upgrading](#before-upgrading). + +* `metrics-server` is now the recommended way to provide the resource + metrics API. Deploy `metrics-server` as an add-on in the same way that you deploy Heapster. + +##### Cluster Autoscaler + +* Cluster autoscaler is now GA +* Cluster support size is increased to 1000 nodes +* Respect graceful pod termination of up to 10 minutes +* Handle zone stock-outs and failures +* Improve monitoring and error reporting + +#### Container Runtime Interface (CRI) + +* [alpha] Add a CRI validation test suite and CRI command-line tools. ([#292](https://github.com/kubernetes/features/issues/292), [@feiskyer](https://github.com/feiskyer)) + +* [stable] [cri-o](https://github.com/kubernetes-incubator/cri-o): CRI implementation for OCI-based runtimes [@mrunalp] + + * Passed all the Kubernetes 1.7 end-to-end conformance test suites. + * Verification against Kubernetes 1.8 is planned soon after the release. + +* [stable] [frakti](https://github.com/kubernetes/frakti): CRI implementation for hypervisor-based runtimes is now v1.1. [@feiskyer] + + * Enhance CNI plugin compatibility, supports flannel, calico, weave and so on. + * Pass all CRI validation conformance tests and node end-to-end conformance tests. + * Add experimental Unikernel support. + +* [alpha] [cri-containerd](https://github.com/kubernetes-incubator/cri-containerd): CRI implementation for containerd is now v1.0.0-alpha.0, [@Random-Liu] + + * Feature complete. Support the full CRI API defined in v1.8. + * Pass all the CRI validation tests and regular node end-to-end tests. + * An ansible playbook is provided to configure a Kubernetes cri-containerd cluster with kubeadm. + +* Add support in Kubelet to consume container metrics via CRI. [@yguo0905] + * There are known bugs that result in errors when querying Kubelet's stats summary API. We expect to fix them in v1.8.1. + +#### kubelet + +* [alpha] Kubelet now supports alternative container-level CPU affinity policies by using the new CPU manager. ([#375](https://github.com/kubernetes/features/issues/375), [@sjenning](https://github.com/sjenning), [@ConnorDoyle](https://github.com/ConnorDoyle)) + +* [alpha] Applications may now request pre-allocated hugepages by using the new `hugepages` resource in the container resource requests. ([#275](https://github.com/kubernetes/features/issues/275), [@derekwaynecarr](https://github.com/derekwaynecarr)) + +* [alpha] Add support for dynamic Kubelet configuration. ([#281](https://github.com/kubernetes/features/issues/281), [@mtaufen](https://github.com/mtaufen)) + +* [alpha] Add the Hardware Device Plugins API. ([#368](https://github.com/kubernetes/features/issues/368), [@jiayingz], [@RenaudWasTaken]) + +* [stable] Upgrade cAdvisor to v0.27.1 with the enhancement for node monitoring. [@dashpole] + + * Fix journalctl leak + * Fix container memory rss + * Fix incorrect CPU usage with 4.7 kernel + * OOM parser uses kmsg + * Add hugepages support + * Add CRI-O support + +* Sharing a PID namespace between containers in a pod is disabled by default in version 1.8. To enable for a node, use the `--docker-disable-shared-pid=false` kubelet flag. Be aware that PID namespace sharing requires Docker version greater than or equal to 1.13.1. + +* Fix issues related to the eviction manager. + +* Fix inconsistent Prometheus cAdvisor metrics. + +* Fix issues related to the local storage allocatable feature. + +### Auth + +* [GA] The RBAC API group has been promoted from v1beta1 to v1. No API changes were introduced. + +* [beta] Advanced auditing has been promoted from alpha to beta. The webhook and logging policy formats have changed since alpha, and may require modification. + +* [beta] Kubelet certificate rotation through the certificates API has been promoted from alpha to beta. RBAC cluster roles for the certificates controller have been added for common uses of the certificates API, such as the kubelet's. + +* [beta] SelfSubjectRulesReview, an API that lets a user see what actions they can perform with a namespace, has been added to the authorization.k8s.io API group. This bulk query is intended to enable UIs to show/hide actions based on the end user, and for users to quickly reason about their own permissions. + +* [alpha] Building on the 1.7 work to allow encryption of resources such as secrets, a mechanism to store resource encryption keys in external Key Management Systems (KMS) was introduced. This complements the original file-based storage and allows integration with multiple KMS. A Google Cloud KMS plugin was added and will be usable once the Google side of the integration is complete. + +* Websocket requests may now authenticate to the API server by passing a bearer token in a websocket subprotocol of the form `base64url.bearer.authorization.k8s.io.<base64url-encoded-bearer-token>`. ([#47740](https://github.com/kubernetes/kubernetes/pull/47740) [@liggitt](https://github.com/liggitt)) + +* Advanced audit now correctly reports impersonated user info. ([#48184], [@CaoShuFeng](https://github.com/CaoShuFeng)) + +* Advanced audit policy now supports matching subresources and resource names, but the top level resource no longer matches the subresouce. For example "pods" no longer matches requests to the logs subresource of pods. Use "pods/logs" to match subresources. ([#48836](https://github.com/kubernetes/kubernetes/pull/48836), [@ericchiang](https://github.com/ericchiang)) + +* Previously a deleted service account or bootstrapping token secret would be considered valid until it was reaped. It is now invalid as soon as the `deletionTimestamp` is set. ([#48343](https://github.com/kubernetes/kubernetes/pull/48343), [@deads2k](https://github.com/deads2k); [#49057](https://github.com/kubernetes/kubernetes/pull/49057), [@ericchiang](https://github.com/ericchiang)) + +* The `--insecure-allow-any-token` flag has been removed from the API server. Users of the flag should use impersonation headers instead for debugging. ([#49045](https://github.com/kubernetes/kubernetes/pull/49045), [@ericchiang](https://github.com/ericchiang)) + +* The NodeRestriction admission plugin now allows a node to evict pods bound to itself. ([#48707](https://github.com/kubernetes/kubernetes/pull/48707), [@danielfm](https://github.com/danielfm)) + +* The OwnerReferencesPermissionEnforcement admission plugin now requires `update` permission on the `finalizers` subresource of the referenced owner in order to set `blockOwnerDeletion` on an owner reference. ([#49133](https://github.com/kubernetes/kubernetes/pull/49133), [@deads2k](https://github.com/deads2k)) + +* The SubjectAccessReview API in the `authorization.k8s.io` API group now allows providing the user uid. ([#49677](https://github.com/kubernetes/kubernetes/pull/49677), [@dims](https://github.com/dims)) + +* After a kubelet rotates its client cert, it now closes its connections to the API server to force a handshake using the new cert. Previously, the kubelet could keep its existing connection open, even if the cert used for that connection was expired and rejected by the API server. ([#49899](https://github.com/kubernetes/kubernetes/pull/49899), [@ericchiang](https://github.com/ericchiang)) + +* PodSecurityPolicies can now specify a whitelist of allowed paths for host volumes. ([#50212](https://github.com/kubernetes/kubernetes/pull/50212), [@jhorwit2](https://github.com/jhorwit2)) + +* API server authentication now caches successful bearer token authentication results for a few seconds. ([#50258](https://github.com/kubernetes/kubernetes/pull/50258), [@liggitt](https://github.com/liggitt)) + +* The OpenID Connect authenticator can now use a custom prefix, or omit the default prefix, for username and groups claims through the --oidc-username-prefix and --oidc-groups-prefix flags. For example, the authenticator can map a user with the username "jane" to "google:jane" by supplying the "google:" username prefix. ([#50875](https://github.com/kubernetes/kubernetes/pull/50875), [@ericchiang](https://github.com/ericchiang)) + +* The bootstrap token authenticator can now configure tokens with a set of extra groups in addition to `system:bootstrappers`. ([#50933](https://github.com/kubernetes/kubernetes/pull/50933), [@mattmoyer](https://github.com/mattmoyer)) + +* Advanced audit allows logging failed login attempts. + ([#51119](https://github.com/kubernetes/kubernetes/pull/51119), [@soltysh](https://github.com/soltysh)) + +* A `kubectl auth reconcile` subcommand has been added for applying RBAC resources. When passed a file which contains RBAC roles, rolebindings, clusterroles, or clusterrolebindings, it will compute covers and add the missing rules. ([#51636](https://github.com/kubernetes/kubernetes/pull/51636), [@deads2k](https://github.com/deads2k)) + +### Cluster Lifecycle + +#### kubeadm + +* [beta] A new `upgrade` subcommand allows you to automatically upgrade a self-hosted cluster created with kubeadm. ([#296](https://github.com/kubernetes/features/issues/296), [@luxas](https://github.com/luxas)) + +* [alpha] An experimental self-hosted cluster can now easily be created with `kubeadm init`. Enable the feature by setting the SelfHosting feature gate to true: `--feature-gates=SelfHosting=true` ([#296](https://github.com/kubernetes/features/issues/296), [@luxas](https://github.com/luxas)) + * **NOTE:** Self-hosting will be the default way to host the control plane in the next release, v1.9 + +* [alpha] A new `phase` subcommand supports performing only subtasks of the full `kubeadm init` flow. Combined with fine-grained configuration, kubeadm is now more easily consumable by higher-level provisioning tools like kops or GKE. ([#356](https://github.com/kubernetes/features/issues/356), [@luxas](https://github.com/luxas)) + * **NOTE:** This command is currently staged under `kubeadm alpha phase` and will be graduated to top level in a future release. + +#### kops + +* [alpha] Added support for targeting bare metal (or non-cloudprovider) machines. ([#360](https://github.com/kubernetes/features/issues/360), [@justinsb](https://github.com/justinsb)). + +* [alpha] kops now supports [running as a server](https://github.com/kubernetes/kops/blob/master/docs/api-server/README.md). ([#359](https://github.com/kubernetes/features/issues/359), [@justinsb](https://github.com/justinsb)). + +* [beta] GCE support is promoted from alpha to beta. ([#358](https://github.com/kubernetes/features/issues/358), [@justinsb](https://github.com/justinsb)). + +#### Cluster Discovery/Bootstrap + +* [beta] The authentication and verification mechanism called Bootstrap Tokens is improved. Use Bootstrap Tokens to easily add new node identities to a cluster. ([#130](https://github.com/kubernetes/features/issues/130), [@luxas](https://github.com/luxas), [@jbeda](https://github.com/jbeda)). + +#### Multi-platform + +* [alpha] The Conformance e2e test suite now passes on the arm, arm64, and ppc64le platforms. ([#288](https://github.com/kubernetes/features/issues/288), [@luxas](https://github.com/luxas), [@mkumatag](https://github.com/mkumatag), [@ixdy](https://github.com/ixdy)) + +#### Cloud Providers + +* [alpha] Support is improved for the pluggable, out-of-tree and out-of-core cloud providers. ([#88](https://github.com/kubernetes/features/issues/88), [@wlan0](https://github.com/wlan0)) + +### Network + +#### network-policy + +* [beta] Apply NetworkPolicy based on CIDR ([#50033](https://github.com/kubernetes/kubernetes/pull/50033), [@cmluciano](https://github.com/cmluciano)) + +* [beta] Support EgressRules in NetworkPolicy ([#51351](https://github.com/kubernetes/kubernetes/pull/51351), [@cmluciano](https://github.com/cmluciano)) + +#### kube-proxy ipvs mode + +[alpha] Support ipvs mode for kube-proxy([#46580](https://github.com/kubernetes/kubernetes/pull/46580), [@haibinxie](https://github.com/haibinxie)) + +### API Machinery + +#### kube-apiserver +* Fixed an issue with `APIService` auto-registration. This issue affected rolling restarts of HA API servers that added or removed API groups being served.([#51921](https://github.com/kubernetes/kubernetes/pull/51921)) + +* [Alpha] The Kubernetes API server now supports the ability to break large LIST calls into multiple smaller chunks. A client can specify a limit to the number of results to return. If more results exist, a token is returned that allows the client to continue the previous list call repeatedly until all results are retrieved. The resulting list is identical to a list call that does not perform chunking, thanks to capabilities provided by etcd3. This allows the server to use less memory and CPU when very large lists are returned. This feature is gated as APIListChunking and is not enabled by default. The 1.9 release will begin using this by default.([#48921](https://github.com/kubernetes/kubernetes/pull/48921)) + +* Pods that are marked for deletion and have exceeded their grace period, but are not yet deleted, no longer count toward the resource quota.([#46542](https://github.com/kubernetes/kubernetes/pull/46542)) + + +#### Dynamic Admission Control + +* Pod spec is mutable when the pod is uninitialized. The API server requires the pod spec to be valid even if it's uninitialized. Updating the status field of uninitialized pods is invalid.([#51733](https://github.com/kubernetes/kubernetes/pull/51733)) + +* Use of the alpha initializers feature now requires enabling the `Initializers` feature gate. This feature gate is automatically enabled if the `Initializers` admission plugin is enabled.([#51436](https://github.com/kubernetes/kubernetes/pull/51436)) + +* [Action required] The validation rule for metadata.initializers.pending[x].name is tightened. The initializer name must contain at least three segments, separated by dots. You can create objects with pending initializers and not rely on the API server to add pending initializers according to `initializerConfiguration`. If you do so, update the initializer name in the existing objects and the configuration files to comply with the new validation rule.([#51283](https://github.com/kubernetes/kubernetes/pull/51283)) + +* The webhook admission plugin now works even if the API server and the nodes are in two separate networks,for example, in GKE. +The webhook admission plugin now lets the webhook author use the DNS name of the service as the CommonName when generating the server cert for the webhook. +Action required: +Regenerate the server cert for the admission webhooks. Previously, the CN value could be ignored while generating the server cert for the admission webhook. Now you must set it to the DNS name of the webhook service: `<service.Name>.<service.Namespace>.svc`.([#50476](https://github.com/kubernetes/kubernetes/pull/50476)) + + +#### Custom Resource Definitions (CRDs) +* [alpha] The CustomResourceDefinition API can now optionally + [validate custom objects](https://kubernetes.io/docs/tasks/access-kubernetes-api/extend-api-custom-resource-definitions/#validation) + based on a JSON schema provided in the CRD spec. + Enable this alpha feature with the `CustomResourceValidation` feature gate in `kube-apiserver`. + +#### Garbage Collector +* The garbage collector now supports custom APIs added via Custom Resource Definitions + or aggregated API servers. The garbage collector controller refreshes periodically. + Therefore, expect a latency of about 30 seconds between when an API is added and when + the garbage collector starts to manage it. + + +#### Monitoring/Prometheus +* [action required] The WATCHLIST calls are now reported as WATCH verbs in prometheus for the apiserver_request_* series. A new "scope" label is added to all apiserver_request_* values that is either 'cluster', 'resource', or 'namespace' depending on which level the query is performed at.([#52237](https://github.com/kubernetes/kubernetes/pull/52237)) + + +#### Go Client +* Add support for client-side spam filtering of events([#47367](https://github.com/kubernetes/kubernetes/pull/47367)) + + +## External Dependencies + +Continuous integration builds use Docker versions 1.11.2, 1.12.6, 1.13.1, +and 17.03.2. These versions were validated on Kubernetes 1.8. However, +consult an appropriate installation or upgrade guide before deciding what +versions of Docker to use. + +- Docker 1.13.1 and 17.03.2 + + - Shared PID namespace, live-restore, and overlay2 were validated. + + - **Known issues** + + - The default iptables FORWARD policy was changed from ACCEPT to + DROP, which causes outbound container traffic to stop working by + default. See + [#40182](https://github.com/kubernetes/kubernetes/issues/40182) for + the workaround. + + - The support for the v1 registries was removed. + +- Docker 1.12.6 + + - Overlay2 and live-restore are not validated. + + - **Known issues** + + - Shared PID namespace does not work properly. + ([#207](https://github.com/kubernetes/community/pull/207#issuecomment-281870043)) + + - Docker reports incorrect exit codes for containers. + ([#41516](https://github.com/kubernetes/kubernetes/issues/41516)) + +- Docker 1.11.2 + + - **Known issues** + + - Kernel crash with Aufs storage driver on Debian Jessie + ([#27885](https://github.com/kubernetes/kubernetes/issues/27885)). + The issue can be identified by using the node problem detector. + + - File descriptor leak on init/control. + ([#275](https://github.com/containerd/containerd/issues/275)) + + - Additional memory overhead per container. + ([#21737](https://github.com/kubernetes/kubernetes/pull/21737)) + + - Processes may be leaked when Docker is repeatedly terminated in a short + time frame. + ([#41450](https://github.com/kubernetes/kubernetes/issues/41450)) diff --git a/releases/release-1.8/release_notes_discussion.md b/releases/release-1.8/release_notes_discussion.md index 1e9fbe579bf..197eb6f3b6c 100644 --- a/releases/release-1.8/release_notes_discussion.md +++ b/releases/release-1.8/release_notes_discussion.md @@ -1,49 +1,49 @@ -# Release notes items to discuss (Radhika, Jennifer) - -## Gaps - -Much content does not indicate what changed in this release. Even detailed descriptions of features don't indicate reliably whether they are new, or changes to existing functionality. Missing also are explanations of why changes were made (or added), or any indication of a use case. Asking for use cases is probably reaching too far, especially at this late date, but some indication of how things changed is important. - -The writers propose to contact individual sig leads, or where known the original release note authors, to ask these questions one-on-one and expand the relevant release notes as we revise them. In some cases there's enough information in linked PRs or issues for us to investigate on our own, but we don't have time to go code diving. - -## Inconsistent terminology - -API changes especially are called out in various ways: they are promoted, graduated, advanced. We should standardize. (Note that none of these is a standard way to refer to version number increases.) The same goes for referring to API groups (themselves a confusing concept to outsiders). Radhika and Jennifer are working on this issue. - -## Information architecture - -Thinking about useful buckets (getting rid of sig org altogether?). Look at app developer user persona for ideas? (here: https://docs.google.com/document/d/1EdQ8acmuKGlzZy1agejLqmB7cLpTRBJKC0JYptJ-ylg/edit#heading=h.ylz4u4aax62y) - -One (example) option (details not final or guaranteed to be accurate): - -- Cluster config changes - - New Features - - API changes - - Known Issues -- Node/pod changes - - New Features - - API changes - - Known Issues -- Networking changes - - New Features - - API changes - - Known Issues -- Auth changes - - New Features - - API changes - - Known Issues -- Command-line tool changes (kubectl) - - New Features - - API changes - - Known Issues -- Storage changes - - New Features - - API changes - - Known Issues - - -Carrying over known issues from previous releases? (documenting fixes?) - -## Publishing process - -The release notes are published as part of the lengthy `changelog.md` file. Ideally, the release notes should be published along with the documentation on kubernetes.io. Considering the usability factors, release notes are not consumable in the current form. +# Release notes items to discuss (Radhika, Jennifer) + +## Gaps + +Much content does not indicate what changed in this release. Even detailed descriptions of features don't indicate reliably whether they are new, or changes to existing functionality. Missing also are explanations of why changes were made (or added), or any indication of a use case. Asking for use cases is probably reaching too far, especially at this late date, but some indication of how things changed is important. + +The writers propose to contact individual sig leads, or where known the original release note authors, to ask these questions one-on-one and expand the relevant release notes as we revise them. In some cases there's enough information in linked PRs or issues for us to investigate on our own, but we don't have time to go code diving. + +## Inconsistent terminology + +API changes especially are called out in various ways: they are promoted, graduated, advanced. We should standardize. (Note that none of these is a standard way to refer to version number increases.) The same goes for referring to API groups (themselves a confusing concept to outsiders). Radhika and Jennifer are working on this issue. + +## Information architecture + +Thinking about useful buckets (getting rid of sig org altogether?). Look at app developer user persona for ideas? (here: https://docs.google.com/document/d/1EdQ8acmuKGlzZy1agejLqmB7cLpTRBJKC0JYptJ-ylg/edit#heading=h.ylz4u4aax62y) + +One (example) option (details not final or guaranteed to be accurate): + +- Cluster config changes + - New Features + - API changes + - Known Issues +- Node/pod changes + - New Features + - API changes + - Known Issues +- Networking changes + - New Features + - API changes + - Known Issues +- Auth changes + - New Features + - API changes + - Known Issues +- Command-line tool changes (kubectl) + - New Features + - API changes + - Known Issues +- Storage changes + - New Features + - API changes + - Known Issues + + +Carrying over known issues from previous releases? (documenting fixes?) + +## Publishing process + +The release notes are published as part of the lengthy `changelog.md` file. Ideally, the release notes should be published along with the documentation on kubernetes.io. Considering the usability factors, release notes are not consumable in the current form. diff --git a/releases/release-1.8/release_team.md b/releases/release-1.8/release_team.md index bda90e97ab2..dde7c403e32 100644 --- a/releases/release-1.8/release_team.md +++ b/releases/release-1.8/release_team.md @@ -1,13 +1,13 @@ -| **Role** | **Name** (**GitHub/Slack ID**) | **Shadow Name(s) (GitHub/Slack ID), ...** -| ------ | ------ | ------ | -| Lead | Jaice Singer DuMars (jdumars) | | -| Secondary | Caleb Miles (calebamiles) | | -| Features | Ihor Dvoretskyi (idvoretskyi) | | -| Branch Manager | Adam Worrall (abgworrall) | | -| Test Infra | Sen Lu (krzyzacy) | Aaron Crickenberger (spiffxp) | -| Docs | Steve Perry (steveperry-53) | Zach Corleissen (zcorleissen) | -| Release Notes | Radhika Puthiyetath (radhikapc) | Jennifer Rondeau (jrondeau) | -| Bugs | Aaron Crickenberger (spiffxp) | Davanum Srinivas (dims) | -| Upgrade Testing / CI Signal| Eric Chiang (ericchiang) | | -| Patch Release Manager | Joe Betz (jpbetz) | | -| Marketing coordinator | Swarna Podila (swarnap) | | +| **Role** | **Name** (**GitHub/Slack ID**) | **Shadow Name(s) (GitHub/Slack ID), ...** +| ------ | ------ | ------ | +| Lead | Jaice Singer DuMars (jdumars) | | +| Secondary | Caleb Miles (calebamiles) | | +| Features | Ihor Dvoretskyi (idvoretskyi) | | +| Branch Manager | Adam Worrall (abgworrall) | | +| Test Infra | Sen Lu (krzyzacy) | Aaron Crickenberger (spiffxp) | +| Docs | Steve Perry (steveperry-53) | Zach Corleissen (zcorleissen) | +| Release Notes | Radhika Puthiyetath (radhikapc) | Jennifer Rondeau (jrondeau) | +| Bugs | Aaron Crickenberger (spiffxp) | Davanum Srinivas (dims) | +| Upgrade Testing / CI Signal| Eric Chiang (ericchiang) | | +| Patch Release Manager | Joe Betz (jpbetz) | | +| Marketing coordinator | Swarna Podila (swarnap) | | diff --git a/releases/release-1.8/scalability_validation_report.md b/releases/release-1.8/scalability_validation_report.md index 66d90e39062..1da28e74135 100644 --- a/releases/release-1.8/scalability_validation_report.md +++ b/releases/release-1.8/scalability_validation_report.md @@ -1,45 +1,45 @@ -This is the scalability validation report for release-1.8 written as per [this](https://github.com/kubernetes/community/blob/master/sig-scalability/processes/scalability-validation.md#concretely-define-test-configuration) template. - -Validated large cluster performance under the following configuration: -- Cloud-provider - GCE -- No. of nodes - 5000 -- Node machine-type - n1-standard-1; OS - gci; Disk size - 50GB -- Master machine-type - [auto-calculated]; OS - gci; Disk size - [auto-calculated] -- Any non-default config used: - - KUBE_ENABLE_CLUSTER_MONITORING=none - - ENABLE_APISERVER_ADVANCED_AUDIT=false - - APISERVER_TEST_ARGS=--max-requests-inflight=3000 --max-mutating-requests-inflight=1000 - - SCHEDULER_TEST_ARGS=--kube-api-qps=100 - - CONTROLLER_MANAGER_TEST_ARGS=--kube-api-qps=100 --kube-api-burst=100 - - TEST_CLUSTER_RESYNC_PERIOD=--min-resync-period=12h - - TEST_CLUSTER_DELETE_COLLECTION_WORKERS=--delete-collection-workers=16 - - ENABLE_BIG_CLUSTER_SUBNETS=true -- Any important test details: - - Services disabled in load test - - SLO used for 99%ile for api call latency: - - For clusters with <= 500 nodes: - - <= 1s for all calls - - For clusters with > 500 nodes: - - <= 1s for non-list calls - - <= 5s for namespaced list calls - - <= 10s for cluster-scoped list calls -- <job-name, run#> of the validating run (to know other specific details from the logs): https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-scale-performance/36 - -Validated large cluster correctness under the following configuration: -- Cloud-provider - GCE -- No. of nodes - 5000 -- Node machine-type - g1-small; OS - gci; Disk size - 50GB -- One special n1-standard-8 node (out of the 5k nodes) used for heapster -- Master machine-type - [auto-calculated]; OS - gci; Disk size - [auto-calculated] -- Any non-default config used: - - KUBE_ENABLE_CLUSTER_MONITORING=standalone - - ENABLE_APISERVER_ADVANCED_AUDIT=true - - APISERVER_TEST_ARGS=--max-requests-inflight=1500 --max-mutating-requests-inflight=500 - - (rest same as above) -- Any important test details: - - A few e2es around external loadbalancer timing out due to GCE-side issues ([#52495](https://github.com/kubernetes/kubernetes/issues/52495)) - being fixed - - A few e2es around heapster and stackdriver logging are flaking - need stabilization -- <job-name, run#> of the validating run (to know other specific details from the logs): https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-scale-correctness/13 - -Misc: -- We're seeing a performance regression in density test wrt api call latency for `delete pods` - [#51899](https://github.com/kubernetes/kubernetes/issues/51899) +This is the scalability validation report for release-1.8 written as per [this](https://github.com/kubernetes/community/blob/master/sig-scalability/processes/scalability-validation.md#concretely-define-test-configuration) template. + +Validated large cluster performance under the following configuration: +- Cloud-provider - GCE +- No. of nodes - 5000 +- Node machine-type - n1-standard-1; OS - gci; Disk size - 50GB +- Master machine-type - [auto-calculated]; OS - gci; Disk size - [auto-calculated] +- Any non-default config used: + - KUBE_ENABLE_CLUSTER_MONITORING=none + - ENABLE_APISERVER_ADVANCED_AUDIT=false + - APISERVER_TEST_ARGS=--max-requests-inflight=3000 --max-mutating-requests-inflight=1000 + - SCHEDULER_TEST_ARGS=--kube-api-qps=100 + - CONTROLLER_MANAGER_TEST_ARGS=--kube-api-qps=100 --kube-api-burst=100 + - TEST_CLUSTER_RESYNC_PERIOD=--min-resync-period=12h + - TEST_CLUSTER_DELETE_COLLECTION_WORKERS=--delete-collection-workers=16 + - ENABLE_BIG_CLUSTER_SUBNETS=true +- Any important test details: + - Services disabled in load test + - SLO used for 99%ile for api call latency: + - For clusters with <= 500 nodes: + - <= 1s for all calls + - For clusters with > 500 nodes: + - <= 1s for non-list calls + - <= 5s for namespaced list calls + - <= 10s for cluster-scoped list calls +- <job-name, run#> of the validating run (to know other specific details from the logs): https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-scale-performance/36 + +Validated large cluster correctness under the following configuration: +- Cloud-provider - GCE +- No. of nodes - 5000 +- Node machine-type - g1-small; OS - gci; Disk size - 50GB +- One special n1-standard-8 node (out of the 5k nodes) used for heapster +- Master machine-type - [auto-calculated]; OS - gci; Disk size - [auto-calculated] +- Any non-default config used: + - KUBE_ENABLE_CLUSTER_MONITORING=standalone + - ENABLE_APISERVER_ADVANCED_AUDIT=true + - APISERVER_TEST_ARGS=--max-requests-inflight=1500 --max-mutating-requests-inflight=500 + - (rest same as above) +- Any important test details: + - A few e2es around external loadbalancer timing out due to GCE-side issues ([#52495](https://github.com/kubernetes/kubernetes/issues/52495)) - being fixed + - A few e2es around heapster and stackdriver logging are flaking - need stabilization +- <job-name, run#> of the validating run (to know other specific details from the logs): https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-scale-correctness/13 + +Misc: +- We're seeing a performance regression in density test wrt api call latency for `delete pods` - [#51899](https://github.com/kubernetes/kubernetes/issues/51899) diff --git a/releases/release-1.9/README.md b/releases/release-1.9/README.md index 40c8a8f3ed1..ed9d5477beb 100644 --- a/releases/release-1.9/README.md +++ b/releases/release-1.9/README.md @@ -1,140 +1,140 @@ -# Release 1.9 - -The 1.9 release cycle begins on Monday, October 2, 2017. - -* [Release Team](http://bit.ly/k8s19-team) -* [Meeting Minutes](http://bit.ly/k8s19-minutes) -* [Zoom](http://bit.ly/k8s19-zoom) -* [Slack](https://kubernetes.slack.com/messages/sig-release/) -* [Forum](https://groups.google.com/forum/#!forum/kubernetes-sig-release) -* [Feature Tracking Sheet](http://bit.ly/k8s19-features) -* [Milestone Process](https://github.com/kubernetes/community/blob/master/contributors/devel/release/issues.md) - -## Notes - -* There are a number of holidays plus KubeCon during Q4, so this release will - need to have a reduced scope in order to meet the tight schedule. -* Features that don't have complete code and tests by [Code Freeze](#code-freeze) - **may be disabled by the release team** before cutting the first beta. -* The release team will escalate [release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) - failures to SIGs throughout the cycle, not just near release cuts. -* Key deliverables (e.g. release cuts) tend to be scheduled on Wednesdays - to maintain context while ramping up and then responding to any problems. - -## Timeline - -* Mon Oct 2: Start of release cycle -* **Fri Oct 27: [Feature Freeze](#feature-freeze)** - * All features must have tracking issues. -* Wed Nov 1: v1.9.0-alpha.2 -* Wed Nov 15: v1.9.0-alpha.3 -* Thu Nov 16: v1.9.0-beta.0 - * Create `release-1.9` branch and start daily `branchff`. - * Start setting up branch CI. -* **Mon Nov 20: [Code Slush](#code-slush)** - * All PRs must be approved for the milestone to merge. -* **Wed Nov 22: [Code Freeze](#code-freeze)** - * All features must be code-complete (including tests). - * All features must have docs PRs open. - * Only release-blocking bug fixes allowed after this point. -* **Mon Nov 27: [Pruning](#pruning)** - * The release team may begin **disabling incomplete features** unless they've - been granted [exceptions](#exceptions). -* Wed Nov 29: v1.9.0-beta.1 - * Begin manual downgrade testing. -* **Fri Dec 1: [Docs Deadline](#docs)** - * All docs PRs must be ready for review. -* Wed Dec 6: v1.9.0-beta.2 (week of KubeCon) -* Fri Dec 8: Docs Complete - * All docs PRs are LGTM and ready to merge. -* **Mon Dec 11: End of Code Freeze** - * Perform final `branchff`. - * The `master` branch reopens for work targeting v1.10. - * PRs for v1.9.0 must now be cherry-picked to the `release-1.9` branch. -* **Wed Dec 13: v1.9.0** -* Thu Dec 14: v1.10.0-alpha.1 -* Thu Dec 21: Release retrospective (in community meeting slot) - -## Details - -### Feature Freeze - -All features going into the release must have an associated issue in the -[features repo](https://github.com/kubernetes/features) by **Fri Oct 27**. - -SIG PM will then review features and work with other SIGs to draft release notes -and themes. - -### Code Slush - -Starting on **Mon Nov 20**, only PRs that are [approved for the milestone](https://github.com/kubernetes/community/blob/master/contributors/devel/release/issues.md) -will be allowed to merge into the `master` branch. -All others will be deferred until the end of [Code Freeze](#code-freeze), -when `master` opens back up for the next release cycle. - -Code Slush begins prior to Code Freeze to help reduce noise from miscellaneous -changes that aren't related to issues that SIGs have approved for the milestone. -Feature work is still allowed at this point, but it must follow the process to -get approved for the milestone. - -#### Exceptions - -Starting at Code Slush, the release team will solicit and rule on -[exception requests](https://github.com/kubernetes/features/blob/master/EXCEPTIONS.md) -for feature and test work that is unlikely to be done by Code Freeze. - -### Code Freeze - -All features going into the release must be code-complete (*including tests*) -and have [docs PRs](https://kubernetes.io/docs/home/contribute/create-pull-request/) -open by **Wed Nov 22**. - -The docs PRs don't have to be ready to merge, but it should be clear what the -topic will be and who's responsible for writing it. - -After this point, only release-blocking issues and PRs will be allowed in the -milestone. The milestone bot will remove anything that lacks the -`priority/critical-urgent` label. - -### Pruning - -Features that are partially implemented and/or lack sufficient tests may be -considered for pruning beginning on **Mon Nov 27**, -unless they've been granted [exceptions](#exceptions). - -The release team will work with SIGs and feature owners to evaluate each case, -but for example, pruning could include actions such as: -* Disabling the use of a new API or field. -* Switching the default value of a flag or field. -* Moving a new API or field behind an Alpha feature gate. -* Reverting commits or deleting code. - -This needs to occur before the first Beta so we have time to gather signal on -whether the system is stable in this state. - -Pruning is intended to be a last resort that is rarely used. -The goal is just to make code freeze somewhat enforceable despite the lack of a -feature branch process. - -### Docs - -If a feature needs documentation, enter `Yes` in the [feature tracking spreadsheet](https://docs.google.com/spreadsheets/d/1WmMJmqLvfIP8ERqgLtkKuE_Q2sVxX8ZrEcNxlVIJnNc/edit#gid=0) and add a link to the documentation PR. You can open documentation PRs in the [kubernetes/website](https://github.com/kubernetes/website) repository. - -For documentation PRs: -- Open PRs against the `release-1.9` branch based off of the [1.9 release PR](https://github.com/kubernetes/website/pull/5978). - - The documentation workflow uses feature branches for release documentation, rather than basing from master. Be sure to open your PR against the [release branch](https://github.com/kubernetes/website/pull/5978). - -- Add your PR to the [1.9 Release milestone](https://github.com/kubernetes/website/milestone/16). - -### Burndown - -Burndown meetings are held two or three times until the final release is near, -and then every business day until the release. - -Join the [Kubernetes Milestone Burndown Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) -to get the calendar invite. - -* Focus on bugfix, test flakes and stabilization. -* Ensure docs and release notes are written. -* Identify all features going into the release, and make sure alpha, beta, ga is marked in features repo. +# Release 1.9 + +The 1.9 release cycle begins on Monday, October 2, 2017. + +* [Release Team](http://bit.ly/k8s19-team) +* [Meeting Minutes](http://bit.ly/k8s19-minutes) +* [Zoom](http://bit.ly/k8s19-zoom) +* [Slack](https://kubernetes.slack.com/messages/sig-release/) +* [Forum](https://groups.google.com/forum/#!forum/kubernetes-sig-release) +* [Feature Tracking Sheet](http://bit.ly/k8s19-features) +* [Milestone Process](https://github.com/kubernetes/community/blob/master/contributors/devel/release/issues.md) + +## Notes + +* There are a number of holidays plus KubeCon during Q4, so this release will + need to have a reduced scope in order to meet the tight schedule. +* Features that don't have complete code and tests by [Code Freeze](#code-freeze) + **may be disabled by the release team** before cutting the first beta. +* The release team will escalate [release-master-blocking](https://testgrid.k8s.io/sig-release-master-blocking) + failures to SIGs throughout the cycle, not just near release cuts. +* Key deliverables (e.g. release cuts) tend to be scheduled on Wednesdays + to maintain context while ramping up and then responding to any problems. + +## Timeline + +* Mon Oct 2: Start of release cycle +* **Fri Oct 27: [Feature Freeze](#feature-freeze)** + * All features must have tracking issues. +* Wed Nov 1: v1.9.0-alpha.2 +* Wed Nov 15: v1.9.0-alpha.3 +* Thu Nov 16: v1.9.0-beta.0 + * Create `release-1.9` branch and start daily `branchff`. + * Start setting up branch CI. +* **Mon Nov 20: [Code Slush](#code-slush)** + * All PRs must be approved for the milestone to merge. +* **Wed Nov 22: [Code Freeze](#code-freeze)** + * All features must be code-complete (including tests). + * All features must have docs PRs open. + * Only release-blocking bug fixes allowed after this point. +* **Mon Nov 27: [Pruning](#pruning)** + * The release team may begin **disabling incomplete features** unless they've + been granted [exceptions](#exceptions). +* Wed Nov 29: v1.9.0-beta.1 + * Begin manual downgrade testing. +* **Fri Dec 1: [Docs Deadline](#docs)** + * All docs PRs must be ready for review. +* Wed Dec 6: v1.9.0-beta.2 (week of KubeCon) +* Fri Dec 8: Docs Complete + * All docs PRs are LGTM and ready to merge. +* **Mon Dec 11: End of Code Freeze** + * Perform final `branchff`. + * The `master` branch reopens for work targeting v1.10. + * PRs for v1.9.0 must now be cherry-picked to the `release-1.9` branch. +* **Wed Dec 13: v1.9.0** +* Thu Dec 14: v1.10.0-alpha.1 +* Thu Dec 21: Release retrospective (in community meeting slot) + +## Details + +### Feature Freeze + +All features going into the release must have an associated issue in the +[features repo](https://github.com/kubernetes/features) by **Fri Oct 27**. + +SIG PM will then review features and work with other SIGs to draft release notes +and themes. + +### Code Slush + +Starting on **Mon Nov 20**, only PRs that are [approved for the milestone](https://github.com/kubernetes/community/blob/master/contributors/devel/release/issues.md) +will be allowed to merge into the `master` branch. +All others will be deferred until the end of [Code Freeze](#code-freeze), +when `master` opens back up for the next release cycle. + +Code Slush begins prior to Code Freeze to help reduce noise from miscellaneous +changes that aren't related to issues that SIGs have approved for the milestone. +Feature work is still allowed at this point, but it must follow the process to +get approved for the milestone. + +#### Exceptions + +Starting at Code Slush, the release team will solicit and rule on +[exception requests](https://github.com/kubernetes/features/blob/master/EXCEPTIONS.md) +for feature and test work that is unlikely to be done by Code Freeze. + +### Code Freeze + +All features going into the release must be code-complete (*including tests*) +and have [docs PRs](https://kubernetes.io/docs/home/contribute/create-pull-request/) +open by **Wed Nov 22**. + +The docs PRs don't have to be ready to merge, but it should be clear what the +topic will be and who's responsible for writing it. + +After this point, only release-blocking issues and PRs will be allowed in the +milestone. The milestone bot will remove anything that lacks the +`priority/critical-urgent` label. + +### Pruning + +Features that are partially implemented and/or lack sufficient tests may be +considered for pruning beginning on **Mon Nov 27**, +unless they've been granted [exceptions](#exceptions). + +The release team will work with SIGs and feature owners to evaluate each case, +but for example, pruning could include actions such as: +* Disabling the use of a new API or field. +* Switching the default value of a flag or field. +* Moving a new API or field behind an Alpha feature gate. +* Reverting commits or deleting code. + +This needs to occur before the first Beta so we have time to gather signal on +whether the system is stable in this state. + +Pruning is intended to be a last resort that is rarely used. +The goal is just to make code freeze somewhat enforceable despite the lack of a +feature branch process. + +### Docs + +If a feature needs documentation, enter `Yes` in the [feature tracking spreadsheet](https://docs.google.com/spreadsheets/d/1WmMJmqLvfIP8ERqgLtkKuE_Q2sVxX8ZrEcNxlVIJnNc/edit#gid=0) and add a link to the documentation PR. You can open documentation PRs in the [kubernetes/website](https://github.com/kubernetes/website) repository. + +For documentation PRs: +- Open PRs against the `release-1.9` branch based off of the [1.9 release PR](https://github.com/kubernetes/website/pull/5978). + + The documentation workflow uses feature branches for release documentation, rather than basing from master. Be sure to open your PR against the [release branch](https://github.com/kubernetes/website/pull/5978). + +- Add your PR to the [1.9 Release milestone](https://github.com/kubernetes/website/milestone/16). + +### Burndown + +Burndown meetings are held two or three times until the final release is near, +and then every business day until the release. + +Join the [Kubernetes Milestone Burndown Group](https://groups.google.com/forum/#!forum/kubernetes-milestone-burndown) +to get the calendar invite. + +* Focus on bugfix, test flakes and stabilization. +* Ensure docs and release notes are written. +* Identify all features going into the release, and make sure alpha, beta, ga is marked in features repo. diff --git a/releases/release-1.9/features.csv b/releases/release-1.9/features.csv index b15b60eba7a..f7caceae164 100644 --- a/releases/release-1.9/features.csv +++ b/releases/release-1.9/features.csv @@ -1,51 +1,51 @@ -Alpha,22,,,,,,,,,, -Beta,13,,,,,,,,,, -Stable,3,,,,,,,,,, -TOTAL,38,,,,,,,,,, -,,,,,,,,,,, -,,,,,,,,,,, -Maintainer:,idvoretskyi (Ihor Dvoretskyi),,,,,,,,,, -,,,,,,,,,,, -Feature Name,Stage,SIG,Assignee,Needs Docs?,k8s.io Docs PR,additional PR,One Line Release Note Description,Needs Doc Review,Needs Tech Review,Merged,Notes -Support paged LIST queries from the Kubernetes API,Beta,SIG-API-machinery,smarterclayton,yes,,,APIs can return large results in chunks rather than all at once.,,,, -"CustomResourceDefinitions, née ThirdPartyResources",Beta,SIG-API-machinery,deads2k ,yes,https://github.com/kubernetes/website/pull/6066,,CRD validation moved to beta,Done,Done,Yes, -Beta admission webhook,Beta,SIG-API-machinery,caesarxuchao,yes,https://github.com/kubernetes/website/pull/6368,,,Done,Done,Yes, -CronJobs (previously ScheduledJobs),Beta,SIG-Apps,soltysh ,no,,,,,,,Bumped to 1.10 -Workload API,Stable,SIG-Apps,kow3ns,yes,"https://github.com/kubernetes/website/pull/6496 -https://github.com/kubernetes/website/pull/6494 -https://github.com/kubernetes/website/pull/6550 -https://github.com/kubernetes/website/pull/6553 -https://github.com/kubernetes/website/pull/6555",,,Done,Done,Yes, -Encryption at rest KMS integration,Alpha,SIG-Auth,jcbsmpsn,no,,,,,,,No new features add over 1.9 -Kubelet Server TLS Certificate Rotation,Alpha,SIG-Auth,jcbsmpsn,no,,,,,,,No new features add over 1.9 -ClusterRole aggregation,Beta,SIG-Auth,deads2k ,yes,https://github.com/kubernetes/website/pull/6474,,,Done,Done,Yes, -Support short circuit deny from authorizers ,Stable,SIG-Auth,mikedanese ,yes,https://github.com/kubernetes/website/pull/6536,,,Done,Done,Yes, -Node Auto-Provisioning in Cluster Autoscaler,Alpha,SIG-Autoscaling,mwielgus,no,,,,,,, -Kubectl Diff,Alpha,SIG-CLI,apelisse,no,,,,,,, -Support out-of-process and out-of-tree cloud providers,Alpha,SIG-ClusterLifecycle,wlan0,no,,,,,,, -"Support pod bootstrap ""checkpointing"" in the kubelet",Alpha,SIG-ClusterLifecycle,timothysc,no,,,,,,, -Extensible configuration/invocation of `kubeadm`,Alpha,SIG-ClusterLifecycle,luxas ,yes,https://github.com/kubernetes/website/pull/6103,,,Done,Done,Yes, -Integrate Cluster Bootstrap/Discovery with Kubenetes Core ,Beta,SIG-ClusterLifecycle,jbeda,no,,,,,,, -Self-hosting support in kubeadm,Beta,SIG-ClusterLifecycle,luxas ,no,,,,,,, -"Easy, automated upgrades with the `kubeadm upgrade` command",Beta,SIG-ClusterLifecycle,luxas ,yes,https://github.com/kubernetes/website/pull/6485,,,Done,Done,Yes, -Dramatically Simplify Kubernetes Cluster Creation,Beta,SIG-ClusterLifecycle,luxas ,no,,,,,,, -Monitoring support for Hardware Accelerators ,Alpha,SIG-Instrumentation,mindprince,no,,,,,,, -API Audit Logging,Beta,SIG-Instrumentation,crassirostris,yes,https://github.com/kubernetes/website/pull/6427,,Auditing requests to Kubernetes API,Done,Done,Yes, -IPv6 support added,Alpha,SIG-Network,danehans,yes,https://github.com/kubernetes/website/pull/6465,,,Done,Done,Yes, -Switch default DNS plugin to CoreDNS,Alpha,SIG-Network,johnbelamaric,yes,https://github.com/kubernetes/website/pull/6463,,,Done,Done,Yes, -Support AWS Network Load Balancer,Alpha,SIG-Network,justinsb,yes,https://github.com/kubernetes/website/pull/6260,,,Done,Done,Yes, -Support configurable pod resolv.conf,Alpha,SIG-Network,MrHohn,yes,https://github.com/kubernetes/website/pull/6479,,,Done,Done,Yes, -Implement IPVS-based in-cluster service load balancing,Beta,SIG-Network,m1093782566,yes,https://github.com/kubernetes/website/pull/6524,,,Done,Done,Yes, -Dynamic Kubelet Configuration,Alpha,SIG-Node,mtaufen,no,,,,,,, -Configurable per-pod PID Namespace Sharing,Alpha,SIG-Node,verb,no,,,,,,, -Support for Hardware Accelerators,Alpha,SIG-Node,vishh ,no,,,,,,, -Redesign Event API ,Beta,SIG-Scale,gmarek,no,,,,,,, -Topology Aware Volume Scheduling ,Alpha,SIG-Scheduling,msau42,yes,https://github.com/kubernetes/website/pull/6392,,,Done,Done,Yes, -Add support for resizing PVs,Alpha,SIG-Storage,gnufied ,yes,https://github.com/kubernetes/website/pull/6487,,,Done,Done,Yes, -Containerized mounts,Alpha,SIG-Storage,jsafrane,no,,,,,,,It's for testing only and will be obsoleted by CSI in couple of releases -Prevent deletion of Persistent Volume Claims that are used by a pod ,Alpha,SIG-Storage,pospispa,yes,https://github.com/kubernetes/website/pull/6415,,,Done,Done,Yes, -Raw block device using persistent volume source,Alpha,SIG-Storage,erinboyd ,yes,https://github.com/kubernetes/website/pull/6554,,Native kubernetes support for raw block devices,Done,Done,Yes, -Out-of-tree CSI Volume Plugins,Alpha,SIG-Storage,saad-ali,yes,https://github.com/kubernetes/website/pull/6504,,Container Storage Interface (CSI) support to make it easier to add new volume plugins to Kubernetes.,Done,Done,Yes, -Durable (non-shared) local storage management,Alpha,SIG-Storage,msau42 ,no,,,,,,, -Detailed storage metrics of internal state,Stable,SIG-Storage,gnufied,no,,,,,,, +Alpha,22,,,,,,,,,, +Beta,13,,,,,,,,,, +Stable,3,,,,,,,,,, +TOTAL,38,,,,,,,,,, +,,,,,,,,,,, +,,,,,,,,,,, +Maintainer:,idvoretskyi (Ihor Dvoretskyi),,,,,,,,,, +,,,,,,,,,,, +Feature Name,Stage,SIG,Assignee,Needs Docs?,k8s.io Docs PR,additional PR,One Line Release Note Description,Needs Doc Review,Needs Tech Review,Merged,Notes +Support paged LIST queries from the Kubernetes API,Beta,SIG-API-machinery,smarterclayton,yes,,,APIs can return large results in chunks rather than all at once.,,,, +"CustomResourceDefinitions, née ThirdPartyResources",Beta,SIG-API-machinery,deads2k ,yes,https://github.com/kubernetes/website/pull/6066,,CRD validation moved to beta,Done,Done,Yes, +Beta admission webhook,Beta,SIG-API-machinery,caesarxuchao,yes,https://github.com/kubernetes/website/pull/6368,,,Done,Done,Yes, +CronJobs (previously ScheduledJobs),Beta,SIG-Apps,soltysh ,no,,,,,,,Bumped to 1.10 +Workload API,Stable,SIG-Apps,kow3ns,yes,"https://github.com/kubernetes/website/pull/6496 +https://github.com/kubernetes/website/pull/6494 +https://github.com/kubernetes/website/pull/6550 +https://github.com/kubernetes/website/pull/6553 +https://github.com/kubernetes/website/pull/6555",,,Done,Done,Yes, +Encryption at rest KMS integration,Alpha,SIG-Auth,jcbsmpsn,no,,,,,,,No new features add over 1.9 +Kubelet Server TLS Certificate Rotation,Alpha,SIG-Auth,jcbsmpsn,no,,,,,,,No new features add over 1.9 +ClusterRole aggregation,Beta,SIG-Auth,deads2k ,yes,https://github.com/kubernetes/website/pull/6474,,,Done,Done,Yes, +Support short circuit deny from authorizers ,Stable,SIG-Auth,mikedanese ,yes,https://github.com/kubernetes/website/pull/6536,,,Done,Done,Yes, +Node Auto-Provisioning in Cluster Autoscaler,Alpha,SIG-Autoscaling,mwielgus,no,,,,,,, +Kubectl Diff,Alpha,SIG-CLI,apelisse,no,,,,,,, +Support out-of-process and out-of-tree cloud providers,Alpha,SIG-ClusterLifecycle,wlan0,no,,,,,,, +"Support pod bootstrap ""checkpointing"" in the kubelet",Alpha,SIG-ClusterLifecycle,timothysc,no,,,,,,, +Extensible configuration/invocation of `kubeadm`,Alpha,SIG-ClusterLifecycle,luxas ,yes,https://github.com/kubernetes/website/pull/6103,,,Done,Done,Yes, +Integrate Cluster Bootstrap/Discovery with Kubenetes Core ,Beta,SIG-ClusterLifecycle,jbeda,no,,,,,,, +Self-hosting support in kubeadm,Beta,SIG-ClusterLifecycle,luxas ,no,,,,,,, +"Easy, automated upgrades with the `kubeadm upgrade` command",Beta,SIG-ClusterLifecycle,luxas ,yes,https://github.com/kubernetes/website/pull/6485,,,Done,Done,Yes, +Dramatically Simplify Kubernetes Cluster Creation,Beta,SIG-ClusterLifecycle,luxas ,no,,,,,,, +Monitoring support for Hardware Accelerators ,Alpha,SIG-Instrumentation,mindprince,no,,,,,,, +API Audit Logging,Beta,SIG-Instrumentation,crassirostris,yes,https://github.com/kubernetes/website/pull/6427,,Auditing requests to Kubernetes API,Done,Done,Yes, +IPv6 support added,Alpha,SIG-Network,danehans,yes,https://github.com/kubernetes/website/pull/6465,,,Done,Done,Yes, +Switch default DNS plugin to CoreDNS,Alpha,SIG-Network,johnbelamaric,yes,https://github.com/kubernetes/website/pull/6463,,,Done,Done,Yes, +Support AWS Network Load Balancer,Alpha,SIG-Network,justinsb,yes,https://github.com/kubernetes/website/pull/6260,,,Done,Done,Yes, +Support configurable pod resolv.conf,Alpha,SIG-Network,MrHohn,yes,https://github.com/kubernetes/website/pull/6479,,,Done,Done,Yes, +Implement IPVS-based in-cluster service load balancing,Beta,SIG-Network,m1093782566,yes,https://github.com/kubernetes/website/pull/6524,,,Done,Done,Yes, +Dynamic Kubelet Configuration,Alpha,SIG-Node,mtaufen,no,,,,,,, +Configurable per-pod PID Namespace Sharing,Alpha,SIG-Node,verb,no,,,,,,, +Support for Hardware Accelerators,Alpha,SIG-Node,vishh ,no,,,,,,, +Redesign Event API ,Beta,SIG-Scale,gmarek,no,,,,,,, +Topology Aware Volume Scheduling ,Alpha,SIG-Scheduling,msau42,yes,https://github.com/kubernetes/website/pull/6392,,,Done,Done,Yes, +Add support for resizing PVs,Alpha,SIG-Storage,gnufied ,yes,https://github.com/kubernetes/website/pull/6487,,,Done,Done,Yes, +Containerized mounts,Alpha,SIG-Storage,jsafrane,no,,,,,,,It's for testing only and will be obsoleted by CSI in couple of releases +Prevent deletion of Persistent Volume Claims that are used by a pod ,Alpha,SIG-Storage,pospispa,yes,https://github.com/kubernetes/website/pull/6415,,,Done,Done,Yes, +Raw block device using persistent volume source,Alpha,SIG-Storage,erinboyd ,yes,https://github.com/kubernetes/website/pull/6554,,Native kubernetes support for raw block devices,Done,Done,Yes, +Out-of-tree CSI Volume Plugins,Alpha,SIG-Storage,saad-ali,yes,https://github.com/kubernetes/website/pull/6504,,Container Storage Interface (CSI) support to make it easier to add new volume plugins to Kubernetes.,Done,Done,Yes, +Durable (non-shared) local storage management,Alpha,SIG-Storage,msau42 ,no,,,,,,, +Detailed storage metrics of internal state,Stable,SIG-Storage,gnufied,no,,,,,,, Support Windows Server Containers for K8s,Beta,SIG-Windows,michmike,yes,https://github.com/kubernetes/website/pull/6180,,,Done,Done,Yes, \ No newline at end of file diff --git a/releases/release-1.9/release-1.9.md b/releases/release-1.9/release-1.9.md index 7e6af0b897d..d803ddd0e25 100644 --- a/releases/release-1.9/release-1.9.md +++ b/releases/release-1.9/release-1.9.md @@ -1 +1 @@ -Please see [README.md](README.md) instead +Please see [README.md](README.md) instead diff --git a/releases/release-1.9/release-notes-draft.md b/releases/release-1.9/release-notes-draft.md index b07108def63..f74d40f3982 100644 --- a/releases/release-1.9/release-notes-draft.md +++ b/releases/release-1.9/release-notes-draft.md @@ -1,647 +1,647 @@ -## 1.9 Release Notes - -## WARNING: etcd backup strongly recommended - -Before updating to 1.9, you are strongly recommended to back up your etcd data. Consult the installation procedure you are using (kargo, kops, kube-up, kube-aws, kubeadm etc) for specific advice. - -Some upgrade methods might upgrade etcd from 3.0 to 3.1 automatically when you upgrade from Kubernetes 1.8, unless you specify otherwise. Because [etcd does not support downgrading](https://coreos.com/etcd/docs/latest/upgrades/upgrade_3_1.html), you'll need to either remain on etcd 3.1 or restore from a backup if you want to downgrade back to Kubernetes 1.8. - -## Introduction to 1.9.0 - -Kubernetes version 1.9 includes new features and enhancements, as well as fixes to identified issues. The release notes contain a brief overview of the important changes introduced in this release. The content is organized by Special Interest Group ([SIG](https://github.com/kubernetes/community/blob/master/sig-list.md)). - -For initial installations, see the [Setup topics](https://kubernetes.io/docs/setup/pick-right-solution/) in the Kubernetes documentation. - -To upgrade to this release from a previous version, first take any actions required [Before Upgrading](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.9.md#before-upgrading). - -For more information about this release and for the latest documentation, see the [Kubernetes documentation](https://kubernetes.io/docs/home/). - -## Major themes - -Kubernetes is developed by community members whose work is organized into -[Special Interest Groups](https://github.com/kubernetes/community/blob/master/sig-list.md), which provide the themes that guide their work. For the 1.9 release, these themes included: - -### API Machinery - -Extensibility. SIG API Machinery added a new class of admission control webhooks (mutating), and brought the admission control webhooks to beta. - -### Apps - -The core workloads API, which is composed of the DaemonSet, Deployment, ReplicaSet, and StatefulSet kinds, has been promoted to GA stability in the apps/v1 group version. As such, the apps/v1beta2 group version is deprecated, and all new code should use the kinds in the apps/v1 group version. - -### Auth - -SIG Auth focused on extension-related authorization improvements. Permissions can now be added to the built-in RBAC admin/edit/view roles using [cluster role aggregation](https://kubernetes.io/docs/admin/authorization/rbac/#aggregated-clusterroles). [Webhook authorizers](https://kubernetes.io/docs/admin/authorization/webhook/) can now deny requests and short-circuit checking subsequent authorizers. Performance and usability of the beta [PodSecurityPolicy](https://kubernetes.io/docs/concepts/policy/pod-security-policy/) feature was also improved. - -### AWS - -In v1.9 SIG AWS has improved stability of EBS support across the board. If a Volume is “stuck” in the attaching state to a node for too long a unschedulable taint will be applied to the node, so a Kubernetes admin can [take manual steps to correct the error](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html). Users are encouraged to ensure they are monitoring for the taint, and should consider automatically terminating instances in this state. - -In addition, support for NVMe disks has been added to Kubernetes, and a service of type LoadBalancer can now be backed with an NLB instead of an ELB (alpha). - -### Azure - -SIG Azure worked on improvements in the cloud provider, including significant work on the Azure Load Balancer implementation. - -### Cluster Lifecycle - -SIG Cluster Lifecycle has been focusing on improving kubeadm in order to bring it to GA in a future release, as well as developing the [Cluster API](https://github.com/kubernetes/kube-deploy/tree/master/cluster-api). For kubeadm, most new features, such as support for CoreDNS, IPv6 and Dynamic Kubelet Configuration, have gone in as alpha features. We expect to graduate these features to beta and beyond in the next release. The initial Cluster API spec and GCE sample implementation were developed from scratch during this cycle, and we look forward to stabilizing them into something production-grade during 2018. - -### Instrumentation - -In v1.9 we focused on improving stability of the components owned by the SIG, including Heapster, Custom Metrics API adapters for Prometheus, and Stackdriver. - -### Network - -In v1.9 SIG Network has implemented alpha support for IPv6, and alpha support for CoreDNS as a drop-in replacement for kube-dns. Additionally, SIG Network has begun the deprecation process for the extensions/v1beta1 NetworkPolicy API in favor of the networking.k8s.io/v1 equivalent. - -### Node - -SIG Node iterated on the ability to support more workloads with better performance and improved reliability. Alpha features were improved around hardware accelerator support, device plugins enablement, and cpu pinning policies to enable us to graduate these features to beta in a future release. In addition, a number of reliability and performance enhancements were made across the node to help operators in production. - -### OpenStack - -In this cycle, SIG OpenStack focused on configuration simplification through smarter defaults and the use of auto-detection wherever feasible (Block Storage API versions, Security Groups) as well as updating API support, including: - -* Block Storage (Cinder) V3 is now supported. -* Load Balancer (Octavia) V2 is now supported, in addition to Neutron LBaaS V2. -* Neutron LBaas V1 support has been removed. - -This work enables Kubernetes to take full advantage of the relevant services as exposed by OpenStack clouds. Refer to the [Cloud Providers](https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/#openstack) documentation for more information. - -### Storage - -[SIG Storage](https://github.com/kubernetes/community/tree/master/sig-storage) is responsible for storage and volume plugin components. - -For the 1.9 release, SIG Storage made Kubernetes more pluggable and modular by introducing an alpha implementation of the Container Storage Interface (CSI). CSI will make installing new volume plugins as easy as deploying a pod, and enable third-party storage providers to develop their plugins without the need to add code to the core Kubernetes codebase. - -The SIG also focused on adding functionality to the Kubernetes volume subsystem, such as alpha support for exposing volumes as block devices inside containers, extending the alpha volume-resizing support to more volume plugins, and topology-aware volume scheduling. - -### Windows - -We are advancing support for Windows Server and Windows Server Containers to beta along with continued feature and functional advancements on both the Kubernetes and Windows platforms. This opens the door for many Windows-specific applications and workloads to run on Kubernetes, significantly expanding the implementation scenarios and the enterprise reach of Kubernetes. - -## Before Upgrading - -Consider the following changes, limitations, and guidelines before you upgrade: - -### **API Machinery** - -* The admission API, which is used when the API server calls admission control webhooks, is moved from `admission.v1alpha1` to `admission.v1beta1`. You must **delete any existing webhooks before you upgrade** your cluster, and update them to use the latest API. This change is not backward compatible. -* The admission webhook configurations API, part of the admissionregistration API, is now at v1beta1. Delete any existing webhook configurations before you upgrade, and update your configuration files to use the latest API. For this and the previous change, see also [the documentation]([https://kubernetes.io/docs/admin/extensible-admission-controllers/#external-admission-webhooks](https://kubernetes.io/docs/admin/extensible-admission-controllers/#external-admission-webhooks)). -* A new `ValidatingAdmissionWebhook` is added (replacing `GenericAdmissionWebhook`) and is available in the generic API server. You must update your API server configuration file to pass the webhook to the `--admission-control` flag. ([#55988](https://github.com/kubernetes/kubernetes/pull/55988),[ @caesarxuchao](https://github.com/caesarxuchao)) ([#54513](https://github.com/kubernetes/kubernetes/pull/54513),[ @deads2k](https://github.com/deads2k)) -* The deprecated options `--portal-net` and `--service-node-ports` for the API server are removed. ([#52547](https://github.com/kubernetes/kubernetes/pull/52547),[ @xiangpengzhao](https://github.com/xiangpengzhao)) - -### **Auth** - -* PodSecurityPolicy: A compatibility issue with the allowPrivilegeEscalation field that caused policies to start denying pods they previously allowed was fixed. If you defined PodSecurityPolicy objects using a 1.8.0 client or server and set allowPrivilegeEscalation to false, these objects must be reapplied after you upgrade. ([#53443](https://github.com/kubernetes/kubernetes/pull/53443),[ @liggitt](https://github.com/liggitt)) -* KMS: Alpha integration with GCP KMS was removed in favor of a future out-of-process extension point. Discontinue use of the GCP KMS integration and ensure [data has been decrypted](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/#decrypting-all-data) (or reencrypted with a different provider) before upgrading ([#54759](https://github.com/kubernetes/kubernetes/pull/54759),[ @sakshamsharma](https://github.com/sakshamsharma)) - -### **CLI** - -* Swagger 1.2 validation is removed for kubectl. The options `--use-openapi` and `--schema-cache-dir` are also removed because they are no longer needed. ([#53232](https://github.com/kubernetes/kubernetes/pull/53232),[ @apelisse](https://github.com/apelisse)) - -### **Cluster Lifecycle** - -* You must either specify the `--discovery-token-ca-cert-hash` flag to `kubeadm join`, or opt out of the CA pinning feature using `--discovery-token-unsafe-skip-ca-verification`. -* The default `auto-detect` behavior of the kubelet's `--cloud-provider` flag is removed. - * You can manually set `--cloud-provider=auto-detect`, but be aware that this behavior will be removed completely in a future version. - * Best practice for version 1.9 and future versions is to explicitly set a cloud-provider. See [the documentation](https://kubernetes.io/docs/getting-started-guides/scratch/#cloud-providers) -* The kubeadm `--skip-preflight-checks` flag is now deprecated and will be removed in a future release. -* If you are using the cloud provider API to determine the external host address of the apiserver, set `--external-hostname` explicitly instead. The cloud provider detection has been deprecated and will be removed in the future ([#54516](https://github.com/kubernetes/kubernetes/pull/54516),[ @dims](https://github.com/dims)) - -### **Multicluster** - -* Development of Kubernetes Federation has moved to [github.com/kubernetes/federation](github.com/kubernetes/federation). This move out of tree also means that Federation will begin releasing separately from Kubernetes. Impact: - * Federation-specific behavior will no longer be included in kubectl - * kubefed will no longer be released as part of Kubernetes - * The Federation servers will no longer be included in the hyperkube binary and image. ([#53816](https://github.com/kubernetes/kubernetes/pull/53816),[ @marun](https://github.com/marun)) - -### **Node** - -* The kubelet `--network-plugin-dir` flag is removed. This flag was deprecated in version 1.7, and is replaced with `--cni-bin-dir`. ([#53564](https://github.com/kubernetes/kubernetes/pull/53564),[ @supereagle](https://github.com/supereagle)) -* kubelet's `--cloud-provider` flag no longer defaults to "auto-detect". If you want cloud-provider support in kubelet, you must set a specific cloud-provider explicitly. ([#53573](https://github.com/kubernetes/kubernetes/pull/53573),[ @dims](https://github.com/dims)) - -### **Network** - -* NetworkPolicy objects are now stored in etcd in v1 format. After you upgrade to version 1.9, make sure that all NetworkPolicy objects are migrated to v1. ([#51955](https://github.com/kubernetes/kubernetes/pull/51955), [@danwinship](https://github.com/danwinship)) -* The API group/version for the kube-proxy configuration has changed from `componentconfig/v1alpha1` to `kubeproxy.config.k8s.io/v1alpha1`. If you are using a config file for kube-proxy instead of the command line flags, you must change its apiVersion to `kubeproxy.config.k8s.io/v1alpha1`. ([#53645](https://github.com/kubernetes/kubernetes/pull/53645), [@xiangpengzhao](https://github.com/xiangpengzhao)) -* The "ServiceNodeExclusion" feature gate must now be enabled for the `alpha.service-controller.kubernetes.io/exclude-balancer` annotation on nodes to be honored. ([#54644](https://github.com/kubernetes/kubernetes/pull/54644),[ @brendandburns](https://github.com/brendandburns)) - -### **Scheduling** - -* Taint key `unreachable` is now in GA. -* Taint key `notReady` is changed to `not-ready`, and is also now in GA. -* These changes are automatically updated for taints. Tolerations for these taints must be updated manually. Specifically, you must: - * Change `node.alpha.kubernetes.io/notReady` to `node.kubernetes.io/not-ready` - * Change `node.alpha.kubernetes.io/unreachable` to `node.kubernetes.io/unreachable` -* The `node.kubernetes.io/memory-pressure` taint now respects the configured whitelist. To use it, you must add it to the whitelist.([#55251](https://github.com/kubernetes/kubernetes/pull/55251),[ @deads2k](https://github.com/deads2k)) -* Refactor kube-scheduler configuration ([#52428](https://github.com/kubernetes/kubernetes/pull/52428)) - * The kube-scheduler command now supports a --config flag which is the location of a file containing a serialized scheduler configuration. Most other kube-scheduler flags are now deprecated. ([#52562](https://github.com/kubernetes/kubernetes/pull/52562),[ @ironcladlou](https://github.com/ironcladlou)) -* Opaque integer resources (OIR), which were (deprecated in v1.8.), have been removed. ([#55103](https://github.com/kubernetes/kubernetes/pull/55103),[ @ConnorDoyle](https://github.com/ConnorDoyle)) - -### **Storage** - -* [alpha] The LocalPersistentVolumes alpha feature now also requires the VolumeScheduling alpha feature. This is a breaking change, and the following changes are required: - * The VolumeScheduling feature gate must also be enabled on kube-scheduler and kube-controller-manager components. - * The NoVolumeNodeConflict predicate has been removed. For non-default schedulers, update your scheduler policy. - * The CheckVolumeBinding predicate must be enabled in non-default schedulers. ([#55039](https://github.com/kubernetes/kubernetes/pull/55039),[ @msau42](https://github.com/msau42)) - -### **OpenStack** - -* Remove the LbaasV1 of OpenStack cloud provider, currently only support LbaasV2. ([#52717](https://github.com/kubernetes/kubernetes/pull/52717),[ @FengyunPan](https://github.com/FengyunPan)) - -## Known Issues - -This section contains a list of known issues reported in Kubernetes 1.9 release. The content is populated from the [v1.9.x known issues and FAQ accumulator](https://github.com/kubernetes/kubernetes/issues/57159](https://github.com/kubernetes/kubernetes/issues/57159). - -* If you are adding Windows Server Virtual Machines as nodes to your Kubernetes environment, there is a compatibility issue with certain virtualization products. Specifically the Windows version of the kubelet.exe calls `GetPhysicallyInstalledSystemMemory` to get the physical memory installed on Windows machines and reports it as part of node metrics to heapster. This API call fails for VMware and VirtualBox virtualization environments. This issue is not present in bare metal Windows deployments, in Hyper-V, or on some of the popular public cloud providers. - -* If you run `kubectl get po` while the API server in unreachable, a misleading error is returned: `the server doesn't have a resource type "po"`. To work around this issue, specify the full resource name in the command instead of the abbreviation: `kubectl get pods`. This issue will be fixed in a future release. - - For more information, see [#57198](https://github.com/kubernetes/kubernetes/issues/57198). - -* Mutating and validating webhook configurations are continuously polled by the API server (once per second). This issue will be fixed in a future release. - - For more information, see [#56357](https://github.com/kubernetes/kubernetes/issues/56357). - -* Audit logging is slow because writes to the log are performed synchronously with requests to the log. This issue will be fixed in a future release. - - For more information, see [#53006](https://github.com/kubernetes/kubernetes/issues/53006). - -* Custom Resource Definitions (CRDs) are not properly deleted under certain conditions. This issue will be fixed in a future release. - - For more information, see [#56348](https://github.com/kubernetes/kubernetes/issues/56348). - -* API server times out after performing a rolling update of the etcd cluster. This issue will be fixed in a future release. - - For more information, see [#47131](https://github.com/kubernetes/kubernetes/issues/47131) - -* If a namespaced resource is owned by a cluster scoped resource, and the namespaced dependent is processed before the cluster scoped owner has ever been observed by the garbage collector, the dependent will be erroneously deleted. - - For more information, see [#54940](https://github.com/kubernetes/kubernetes/issues/54940) - -## Deprecations - -This section provides an overview of deprecated API versions, options, flags, and arguments. Deprecated means that we intend to remove the capability from a future release. After removal, the capability will no longer work. The sections are organized by SIGs. - -### **API Machinery** - -* The kube-apiserver `--etcd-quorum-read` flag is deprecated and the ability to switch off quorum read will be removed in a future release. ([#53795](https://github.com/kubernetes/kubernetes/pull/53795),[ @xiangpengzhao](https://github.com/xiangpengzhao)) -* The `/ui` redirect in kube-apiserver is deprecated and will be removed in Kubernetes 1.10. ([#53046](https://github.com/kubernetes/kubernetes/pull/53046), [@maciaszczykm](https://github.com/maciaszczykm)) -* `etcd2` as a backend is deprecated and support will be removed in Kubernetes 1.13 or 1.14. - -### **Auth** - -* Default controller-manager options for `--cluster-signing-cert-file` and `--cluster-signing-key-file` are deprecated and will be removed in a future release. ([#54495](https://github.com/kubernetes/kubernetes/pull/54495),[ @mikedanese](https://github.com/mikedanese)) -* RBAC objects are now stored in etcd in v1 format. After upgrading to 1.9, ensure all RBAC objects (Roles, RoleBindings, ClusterRoles, ClusterRoleBindings) are at v1. v1alpha1 support is deprecated and will be removed in a future release. ([#52950](https://github.com/kubernetes/kubernetes/pull/52950),[ @liggitt](https://github.com/liggitt)) - -### **Cluster Lifecycle** - -* kube-apiserver: `--ssh-user` and `--ssh-keyfile` are now deprecated and will be removed in a future release. Users of SSH tunnel functionality in Google Container Engine for the Master -> Cluster communication should plan alternate methods for bridging master and node networks. ([#54433](https://github.com/kubernetes/kubernetes/pull/54433),[ @dims](https://github.com/dims)) -* The kubeadm `--skip-preflight-checks` flag is now deprecated and will be removed in a future release. -* If you are using the cloud provider API to determine the external host address of the apiserver, set `--external-hostname` explicitly instead. The cloud provider detection has been deprecated and will be removed in the future ([#54516](https://github.com/kubernetes/kubernetes/pull/54516),[ @dims](https://github.com/dims)) - -### **Network** - -* The NetworkPolicy extensions/v1beta1 API is now deprecated and will be removed in a future release. This functionality has been migrated to a dedicated v1 API - networking.k8s.io/v1. v1beta1 Network Policies can be upgraded to the v1 API with the [cluster/update-storage-objects.sh script](https://github.com/danwinship/kubernetes/blob/master/cluster/update-storage-objects.sh). Documentation can be found [here](https://kubernetes.io/docs/concepts/services-networking/network-policies/). ([#56425](https://github.com/kubernetes/kubernetes/pull/56425), [@cmluciano](https://github.com/cmluciano)) - -### **Storage** - -* The `volume.beta.kubernetes.io/storage-class` annotation is deprecated. It will be removed in a future release. For the StorageClass API object, use v1, and in place of the annotation use `v1.PersistentVolumeClaim.Spec.StorageClassName` and `v1.PersistentVolume.Spec.StorageClassName` instead. ([#53580](https://github.com/kubernetes/kubernetes/pull/53580),[ @xiangpengzhao](https://github.com/xiangpengzhao)) - -### **Scheduling** - -* The kube-scheduler command now supports a `--config` flag, which is the location of a file containing a serialized scheduler configuration. Most other kube-scheduler flags are now deprecated. ([#52562](https://github.com/kubernetes/kubernetes/pull/52562),[ @ironcladlou](https://github.com/ironcladlou)) - -### **Node** - -* The kubelet's `--enable-custom-metrics` flag is now deprecated. ([#54154](https://github.com/kubernetes/kubernetes/pull/54154),[ @mtaufen](https://github.com/mtaufen)) - -## Notable Changes - -### **Workloads API (apps/v1)** - -As announced with the release of version 1.8, the Kubernetes Workloads API is at v1 in version 1.9. This API consists of the DaemonSet, Deployment, ReplicaSet and StatefulSet kinds. - -### **API Machinery** - -#### **Admission Control** - -* Admission webhooks are now in beta, and include the following: - * Mutation support for admission webhooks. ([#54892](https://github.com/kubernetes/kubernetes/pull/54892),[ @caesarxuchao](https://github.com/caesarxuchao)) - * Webhook admission now takes a config file that describes how to authenticate to webhook servers ([#54414](https://github.com/kubernetes/kubernetes/pull/54414),[ @deads2k](https://github.com/deads2k)) - * The dynamic admission webhook now supports a URL in addition to a service reference, to accommodate out-of-cluster webhooks. ([#54889](https://github.com/kubernetes/kubernetes/pull/54889),[ @lavalamp](https://github.com/lavalamp)) - * Added `namespaceSelector` to `externalAdmissionWebhook` configuration to allow applying webhooks only to objects in the namespaces that have matching labels. ([#54727](https://github.com/kubernetes/kubernetes/pull/54727),[ @caesarxuchao](https://github.com/caesarxuchao)) -* Metrics are added for monitoring admission plugins, including the new dynamic (webhook-based) ones. ([#55183](https://github.com/kubernetes/kubernetes/pull/55183),[ @jpbetz](https://github.com/jpbetz)) -* The PodSecurityPolicy annotation kubernetes.io/psp on pods is set only once on create. ([#55486](https://github.com/kubernetes/kubernetes/pull/55486),[ @sttts](https://github.com/sttts)) - -#### **API & API server** - -* Fixed a bug related to discovery information for scale subresources in the apps API group ([#54683](https://github.com/kubernetes/kubernetes/pull/54683),[ @liggitt](https://github.com/liggitt)) -* Fixed a bug that prevented client-go metrics from being registered in Prometheus. This bug affected multiple components. ([#53434](https://github.com/kubernetes/kubernetes/pull/53434),[ @crassirostris](https://github.com/crassirostris)) - -#### **Audit** - -* Fixed a bug so that `kube-apiserver` now waits for open connections to finish before exiting. This fix provides graceful shutdown and ensures that the audit backend no longer drops events on shutdown. ([#53695](https://github.com/kubernetes/kubernetes/pull/53695),[ @hzxuzhonghu](https://github.com/hzxuzhonghu)) -* Webhooks now always retry sending if a connection reset error is returned. ([#53947](https://github.com/kubernetes/kubernetes/pull/53947),[ @crassirostris](https://github.com/crassirostris)) - -#### **Custom Resources** - -* Validation of resources defined by a Custom Resource Definition (CRD) is now in beta ([#54647](https://github.com/kubernetes/kubernetes/pull/54647),[ @colemickens](https://github.com/colemickens)) -* An example CRD controller has been added, at [github.com/kubernetes/sample-controller](github.com/kubernetes/sample-controller). ([#52753](https://github.com/kubernetes/kubernetes/pull/52753),[ @munnerz](https://github.com/munnerz)) -* Custom resources served by CustomResourceDefinition objects now support field selectors for `metadata.name` and `metadata.namespace`. Also fixed an issue with watching a single object; earlier versions could watch only a collection, and so a watch on an instance would fail. ([#53345](https://github.com/kubernetes/kubernetes/pull/53345),[ @ncdc](https://github.com/ncdc)) - -#### **Other** - -* `kube-apiserver` now runs with the default value for `service-cluster-ip-range` ([#52870](https://github.com/kubernetes/kubernetes/pull/52870),[ @jennybuckley](https://github.com/jennybuckley)) -* Add `--etcd-compaction-interval` to apiserver for controlling request of compaction to etcd3 from apiserver. ([#51765](https://github.com/kubernetes/kubernetes/pull/51765),[ @mitake](https://github.com/mitake)) -* The httpstream/spdy calls now support CIDR notation for NO_PROXY ([#54413](https://github.com/kubernetes/kubernetes/pull/54413),[ @kad](https://github.com/kad)) -* Code generation for CRD and User API server types is improved with the addition of two new scripts to k8s.io/code-generator: `generate-groups.sh` and `generate-internal-groups.sh`. ([#52186](https://github.com/kubernetes/kubernetes/pull/52186),[ @sttts](https://github.com/sttts)) -* [beta] Flag `--chunk-size={SIZE}` is added to `kubectl get` to customize the number of results returned in large lists of resources. This reduces the perceived latency of managing large clusters because the server returns the first set of results to the client much more quickly. Pass 0 to disable this feature.([#53768](https://github.com/kubernetes/kubernetes/pull/53768),[ @smarterclayton](https://github.com/smarterclayton)) -* [beta] API chunking via the limit and continue request parameters is promoted to beta in this release. Client libraries using the Informer or ListWatch types will automatically opt in to chunking. ([#52949](https://github.com/kubernetes/kubernetes/pull/52949),[ @smarterclayton](https://github.com/smarterclayton)) -* The `--etcd-quorum-read` flag now defaults to true to ensure correct operation with HA etcd clusters. This flag is deprecated and the flag will be removed in future versions, as well as the ability to turn off this functionality. ([#53717](https://github.com/kubernetes/kubernetes/pull/53717),[ @liggitt](https://github.com/liggitt)) -* Add events.k8s.io api group with v1beta1 API containing redesigned event type. ([#49112](https://github.com/kubernetes/kubernetes/pull/49112),[ @gmarek](https://github.com/gmarek)) -* Fixed a bug where API discovery failures were crashing the kube controller manager via the garbage collector. ([#55259](https://github.com/kubernetes/kubernetes/pull/55259),[ @ironcladlou](https://github.com/ironcladlou)) -* `conversion-gen` is now usable in a context without a vendored k8s.io/kubernetes. The Kubernetes core API is removed from `default extra-peer-dirs`. ([#54394](https://github.com/kubernetes/kubernetes/pull/54394),[ @sttts](https://github.com/sttts)) -* Fixed a bug where the `client-gen` tag for code-generator required a newline between a comment block and a statement. tag shortcomings when newline is omitted ([#53893](https://github.com/kubernetes/kubernetes/pull/53893)) ([#55233](https://github.com/kubernetes/kubernetes/pull/55233),[ @sttts](https://github.com/sttts)) -* The Apiserver proxy now rewrites the URL when a service returns an absolute path with the request's host. ([#52556](https://github.com/kubernetes/kubernetes/pull/52556),[ @roycaihw](https://github.com/roycaihw)) -* The gRPC library is updated to pick up data race fix ([#53124](https://github.com/kubernetes/kubernetes/pull/53124)) ([#53128](https://github.com/kubernetes/kubernetes/pull/53128),[ @dixudx](https://github.com/dixudx)) -* Fixed server name verification of aggregated API servers and webhook admission endpoints ([#56415](https://github.com/kubernetes/kubernetes/pull/56415),[ @liggitt](https://github.com/liggitt)) - -### **Apps** - -* The `kubernetes.io/created-by` annotation is no longer added to controller-created objects. Use the `metadata.ownerReferences` item with controller set to `true` to determine which controller, if any, owns an object. ([#54445](https://github.com/kubernetes/kubernetes/pull/54445),[ @crimsonfaith91](https://github.com/crimsonfaith91)) -* StatefulSet controller now creates a label for each Pod in a StatefulSet. The label is `statefulset.kubernetes.io/pod-name`, where `pod-name` = the name of the Pod. This allows users to create a Service per Pod to expose a connection to individual Pods. ([#55329](https://github.com/kubernetes/kubernetes/pull/55329),[ @kow3ns](https://github.com/kow3ns)) -* DaemonSet status includes a new field named `conditions`, making it consistent with other workloads controllers. ([#55272](https://github.com/kubernetes/kubernetes/pull/55272),[ @janetkuo](https://github.com/janetkuo)) -* StatefulSet status now supports conditions, making it consistent with other core controllers in v1 ([#55268](https://github.com/kubernetes/kubernetes/pull/55268),[ @foxish](https://github.com/foxish)) -* The default garbage collection policy for Deployment, DaemonSet, StatefulSet, and ReplicaSet has changed from OrphanDependents to DeleteDependents when the deletion is requested through an `apps/v1` endpoint. ([#55148](https://github.com/kubernetes/kubernetes/pull/55148),[ @dixudx](https://github.com/dixudx)) - * Clients using older endpoints will be unaffected. This change is only at the REST API level and is independent of the default behavior of particular clients (e.g. this does not affect the default for the kubectl `--cascade` flag). - * If you upgrade your client-go libs and use the `AppsV1()` interface, please note that the default garbage collection behavior is changed. - -### **Auth** - -#### **Audit** - -* RequestReceivedTimestamp and StageTimestamp are added to audit events ([#52981](https://github.com/kubernetes/kubernetes/pull/52981),[ @CaoShuFeng](https://github.com/CaoShuFeng)) -* Advanced audit policy now supports a policy wide omitStage ([#54634](https://github.com/kubernetes/kubernetes/pull/54634),[ @CaoShuFeng](https://github.com/CaoShuFeng)) - -#### **RBAC** - -* New permissions have been added to default RBAC roles ([#52654](https://github.com/kubernetes/kubernetes/pull/52654),[ @liggitt](https://github.com/liggitt)): - * The default admin and edit roles now include read/write permissions - * The view role includes read permissions on poddisruptionbudget.policy resources. -* RBAC rules can now match the same subresource on any resource using the form `*/(subresource)`. For example, `*/scale` matches requests to `replicationcontroller/scale`. ([#53722](https://github.com/kubernetes/kubernetes/pull/53722),[ @deads2k](https://github.com/deads2k)) -* The RBAC bootstrapping policy now allows authenticated users to create selfsubjectrulesreviews. ([#56095](https://github.com/kubernetes/kubernetes/pull/56095),[ @ericchiang](https://github.com/ericchiang)) -* RBAC ClusterRoles can now select other roles to aggregate. ([#54005](https://github.com/kubernetes/kubernetes/pull/54005),[ @deads2k](https://github.com/deads2k)) -* Fixed an issue with RBAC reconciliation that caused duplicated subjects in some bootstrapped RoleBinding objects on each restart of the API server. ([#53239](https://github.com/kubernetes/kubernetes/pull/53239),[ @enj](https://github.com/enj)) - -#### **Other** - -* Pod Security Policy can now manage access to specific FlexVolume drivers ([#53179](https://github.com/kubernetes/kubernetes/pull/53179),[ @wanghaoran1988](https://github.com/wanghaoran1988)) -* Audit policy files without apiVersion and kind are treated as invalid. ([#54267](https://github.com/kubernetes/kubernetes/pull/54267),[ @ericchiang](https://github.com/ericchiang)) -* Fixed a bug that where forbidden errors were encountered when accessing ReplicaSet and DaemonSets objects via the apps API group. ([#54309](https://github.com/kubernetes/kubernetes/pull/54309),[ @liggitt](https://github.com/liggitt)) -* Improved PodSecurityPolicy admission latency. ([#55643](https://github.com/kubernetes/kubernetes/pull/55643),[ @tallclair](https://github.com/tallclair)) -* kube-apiserver: `--oidc-username-prefix` and `--oidc-group-prefix` flags are now correctly enabled. ([#56175](https://github.com/kubernetes/kubernetes/pull/56175),[ @ericchiang](https://github.com/ericchiang)) -* If multiple PodSecurityPolicy objects allow a submitted pod, priority is given to policies that do not require default values for any fields in the pod spec. If default values are required, the first policy ordered by name that allows the pod is used. ([#52849](https://github.com/kubernetes/kubernetes/pull/52849),[ @liggitt](https://github.com/liggitt)) -* A new controller automatically cleans up Certificate Signing Requests that are Approved and Issued, or Denied. ([#51840](https://github.com/kubernetes/kubernetes/pull/51840),[ @jcbsmpsn](https://github.com/jcbsmpsn)) -* PodSecurityPolicies have been added for all in-tree cluster addons ([#55509](https://github.com/kubernetes/kubernetes/pull/55509),[ @tallclair](https://github.com/tallclair)) - -#### **GCE** - -* Added support for PodSecurityPolicy on GCE: `ENABLE_POD_SECURITY_POLICY=true` enables the admission controller, and installs policies for default addons. ([#52367](https://github.com/kubernetes/kubernetes/pull/52367),[ @tallclair](https://github.com/tallclair)) - -### **Autoscaling** - -* HorizontalPodAutoscaler objects now properly functions on scalable resources in any API group. Fixed by adding a polymorphic scale client. ([#53743](https://github.com/kubernetes/kubernetes/pull/53743),[ @DirectXMan12](https://github.com/DirectXMan12)) -* Fixed a set of minor issues with Cluster Autoscaler 1.0.1 ([#54298](https://github.com/kubernetes/kubernetes/pull/54298),[ @mwielgus](https://github.com/mwielgus)) -* HPA tolerance is now configurable by setting the `horizontal-pod-autoscaler-tolerance` flag. ([#52275](https://github.com/kubernetes/kubernetes/pull/52275),[ @mattjmcnaughton](https://github.com/mattjmcnaughton)) -* Fixed a bug that allowed the horizontal pod autoscaler to allocate more `desiredReplica` objects than `maxReplica` objects in certain instances. ([#53690](https://github.com/kubernetes/kubernetes/pull/53690),[ @mattjmcnaughton](https://github.com/mattjmcnaughton)) - -### **AWS** - -* Nodes can now use instance types (such as C5) that use NVMe. ([#56607](https://github.com/kubernetes/kubernetes/pull/56607), [@justinsb](https://github.com/justinsb)) -* Nodes are now unreachable if volumes are stuck in the attaching state. Implemented by applying a taint to the node. ([#55558](https://github.com/kubernetes/kubernetes/pull/55558),[ @gnufied](https://github.com/gnufied)) -* Volumes are now checked for available state before attempting to attach or delete a volume in EBS. ([#55008](https://github.com/kubernetes/kubernetes/pull/55008),[ @gnufied](https://github.com/gnufied)) -* Fixed a bug where error log messages were breaking into two lines. ([#49826](https://github.com/kubernetes/kubernetes/pull/49826),[ @dixudx](https://github.com/dixudx)) -* Fixed a bug so that volumes are now detached from stopped nodes. ([#55893](https://github.com/kubernetes/kubernetes/pull/55893),[ @gnufied](https://github.com/gnufied)) -* You can now override the health check parameters for AWS ELBs by specifying annotations on the corresponding service. The new annotations are: `healthy-threshold`, `unhealthy-threshold`, `timeout`, `interval`. The prefix for all annotations is `service.beta.kubernetes.io/aws-load-balancer-healthcheck-`. ([#56024](https://github.com/kubernetes/kubernetes/pull/56024),[ @dimpavloff](https://github.com/dimpavloff)) -* Fixed a bug so that AWS ECR credentials are now supported in the China region. ([#50108](https://github.com/kubernetes/kubernetes/pull/50108),[ @zzq889](https://github.com/zzq889)) -* Added Amazon NLB support ([#53400](https://github.com/kubernetes/kubernetes/pull/53400),[ @micahhausler](https://github.com/micahhausler)) -* Additional annotations are now properly set or updated for AWS load balancers ([#55731](https://github.com/kubernetes/kubernetes/pull/55731),[ @georgebuckerfield](https://github.com/georgebuckerfield)) -* AWS SDK is updated to version 1.12.7 ([#53561](https://github.com/kubernetes/kubernetes/pull/53561),[ @justinsb](https://github.com/justinsb)) - -### **Azure** - -* Fixed several issues with properly provisioning Azure disk storage ([#55927](https://github.com/kubernetes/kubernetes/pull/55927),[ @andyzhangx](https://github.com/andyzhangx)) -* A new service annotation `service.beta.kubernetes.io/azure-dns-label-name` now sets the Azure DNS label for a public IP address. ([#47849](https://github.com/kubernetes/kubernetes/pull/47849),[ @tomerf](https://github.com/tomerf)) -* Support for GetMountRefs function added; warning messages no longer displayed. ([#54670](https://github.com/kubernetes/kubernetes/pull/54670), [#52401](https://github.com/kubernetes/kubernetes/pull/52401),[ @andyzhangx](https://github.com/andyzhangx)) -* Fixed an issue where an Azure PersistentVolume object would crash because the value of `volumeSource.ReadOnly` was set to nil. ([#54607](https://github.com/kubernetes/kubernetes/pull/54607),[ @andyzhangx](https://github.com/andyzhangx)) -* Fixed an issue with Azure disk mount failures on CoreOS and some other distros ([#54334](https://github.com/kubernetes/kubernetes/pull/54334),[ @andyzhangx](https://github.com/andyzhangx)) -* GRS, RAGRS storage account types are now supported for Azure disks. ([#55931](https://github.com/kubernetes/kubernetes/pull/55931),[ @andyzhangx](https://github.com/andyzhangx)) -* Azure NSG rules are now restricted so that external access is allowed only to the load balancer IP. ([#54177](https://github.com/kubernetes/kubernetes/pull/54177),[ @itowlson](https://github.com/itowlson)) -* Azure NSG rules can be consolidated to reduce the likelihood of hitting Azure resource limits (available only in regions where the Augmented Security Groups preview is available). ([#55740](https://github.com/kubernetes/kubernetes/pull/55740), [@itowlson](https://github.com/itowlson)) -* The Azure SDK is upgraded to v11.1.1. ([#54971](https://github.com/kubernetes/kubernetes/pull/54971),[ @itowlson](https://github.com/itowlson)) -* You can now create Windows mount paths ([#51240](https://github.com/kubernetes/kubernetes/pull/51240),[ @andyzhangx](https://github.com/andyzhangx)) -* Fixed a controller manager crash issue on a manually created k8s cluster. ([#53694](https://github.com/kubernetes/kubernetes/pull/53694),[ @andyzhangx](https://github.com/andyzhangx)) -* Azure-based clusters now support unlimited mount points. ([#54668](https://github.com/kubernetes/kubernetes/pull/54668)) ([#53629](https://github.com/kubernetes/kubernetes/pull/53629),[ @andyzhangx](https://github.com/andyzhangx)) -* Load balancer reconciliation now considers NSG rules based not only on Name, but also on Protocol, SourcePortRange, DestinationPortRange, SourceAddressPrefix, DestinationAddressPrefix, Access, and Direction. This change makes it possible to update NSG rules under more conditions. ([#55752](https://github.com/kubernetes/kubernetes/pull/55752),[ @kevinkim9264](https://github.com/kevinkim9264)) -* Custom mountOptions for the azurefile StorageClass object are now respected. Specifically, `dir_mode` and `file_mode` can now be customized. ([#54674](https://github.com/kubernetes/kubernetes/pull/54674),[ @andyzhangx](https://github.com/andyzhangx)) -* Azure Load Balancer Auto Mode: Services can be annotated to allow auto selection of available load balancers and to provide specific availability sets that host the load balancers (for example, `service.beta.kubernetes.io/azure-load-balancer-mode=auto|as1,as2...`) - -### **CLI** - -#### **Kubectl** - -* `kubectl cp` can now copy a remote file into a local directory. ([#46762](https://github.com/kubernetes/kubernetes/pull/46762),[ @bruceauyeung](https://github.com/bruceauyeung)) -* `kubectl cp` now honors destination names for directories. A complete directory is now copied; in previous versions only the file contents were copied. ([#51215](https://github.com/kubernetes/kubernetes/pull/51215),[ @juanvallejo](https://github.com/juanvallejo)) -* You can now use `kubectl get` with a fieldSelector. ([#50140](https://github.com/kubernetes/kubernetes/pull/50140),[ @dixudx](https://github.com/dixudx)) -* Secret data containing Docker registry auth objects is now generated using the config.json format ([#53916](https://github.com/kubernetes/kubernetes/pull/53916),[ @juanvallejo](https://github.com/juanvallejo)) -* `kubectl apply` now calculates the diff between the current and new configurations based on the OpenAPI spec. If the OpenAPI spec is not available, it falls back to baked-in types. ([#51321](https://github.com/kubernetes/kubernetes/pull/51321),[ @mengqiy](https://github.com/mengqiy)) -* `kubectl explain` now explains `apiservices` and `customresourcedefinition`. (Updated to use OpenAPI instead of Swagger 1.2.) ([#53228](https://github.com/kubernetes/kubernetes/pull/53228),[ @apelisse](https://github.com/apelisse)) -* `kubectl get` now uses OpenAPI schema extensions by default to select columns for custom types. ([#53483](https://github.com/kubernetes/kubernetes/pull/53483),[ @apelisse](https://github.com/apelisse)) -* kubectl `top node` now sorts by name and `top pod` sorts by namespace. Fixed a bug where results were inconsistently sorted. ([#53560](https://github.com/kubernetes/kubernetes/pull/53560),[ @dixudx](https://github.com/dixudx)) -* Added --dry-run option to kubectl drain. ([#52440](https://github.com/kubernetes/kubernetes/pull/52440),[ @juanvallejo](https://github.com/juanvallejo)) -* Kubectl now outputs <none> for columns specified by -o custom-columns but not found in object, rather than "xxx is not found" ([#51750](https://github.com/kubernetes/kubernetes/pull/51750),[ @jianhuiz](https://github.com/jianhuiz)) -* `kubectl create pdb` no longer sets the min-available field by default. ([#53047](https://github.com/kubernetes/kubernetes/pull/53047),[ @yuexiao-wang](https://github.com/yuexiao-wang)) -* The canonical pronunciation of kubectl is "cube control". -* Added --raw to kubectl create to POST using the normal transport. ([#54245](https://github.com/kubernetes/kubernetes/pull/54245),[ @deads2k](https://github.com/deads2k)) -* Added kubectl `create priorityclass` subcommand ([#54858](https://github.com/kubernetes/kubernetes/pull/54858),[ @wackxu](https://github.com/wackxu)) -* Fixed an issue where `kubectl set` commands occasionally encountered conversion errors for ReplicaSet and DaemonSet objects ([#53158](https://github.com/kubernetes/kubernetes/pull/53158),[ @liggitt](https://github.com/liggitt)) - -### **Cluster Lifecycle** - -#### **API Server** - -* [alpha] Added an `--endpoint-reconciler-type` command-line argument to select the endpoint reconciler to use. The default is to use the 'master-count' reconciler which is the default for 1.9 and in use prior to 1.9. The 'lease' reconciler stores endpoints within the storage api for better cleanup of deleted (or removed) API servers. The 'none' reconciler is a no-op reconciler, which can be used in self-hosted environments. ([#51698](https://github.com/kubernetes/kubernetes/pull/51698), [@rphillips](https://github.com/rphillips)) - -#### **Cloud Provider Integration** - -* Added `cloud-controller-manager` to `hyperkube`. This is useful as a number of deployment tools run all of the kubernetes components from the `hyperkube `image/binary. It also makes testing easier as a single binary/image can be built and pushed quickly. ([#54197](https://github.com/kubernetes/kubernetes/pull/54197),[ @colemickens](https://github.com/colemickens)) -* Added the concurrent service sync flag to the Cloud Controller Manager to allow changing the number of workers. (`--concurrent-service-syncs`) ([#55561](https://github.com/kubernetes/kubernetes/pull/55561),[ @jhorwit2](https://github.com/jhorwit2)) -* kubelet's --cloud-provider flag no longer defaults to "auto-detect". If you want cloud-provider support in kubelet, you must set a specific cloud-provider explicitly. ([#53573](https://github.com/kubernetes/kubernetes/pull/53573),[ @dims](https://github.com/dims)) - -#### **Kubeadm** - -* kubeadm health checks can now be skipped with `--ignore-preflight-errors`; the `--skip-preflight-checks` flag is now deprecated and will be removed in a future release. ([#56130](https://github.com/kubernetes/kubernetes/pull/56130),[ @anguslees](https://github.com/anguslees)) ([#56072](https://github.com/kubernetes/kubernetes/pull/56072),[ @kad](https://github.com/kad)) -* You now have the option to use CoreDNS instead of KubeDNS. To install CoreDNS instead of kube-dns, set CLUSTER_DNS_CORE_DNS to 'true'. This support is experimental. ([#52501](https://github.com/kubernetes/kubernetes/pull/52501),[ @rajansandeep](https://github.com/rajansandeep)) ([#55728](https://github.com/kubernetes/kubernetes/pull/55728),[ @rajansandeep](https://github.com/rajansandeep)) -* Added --print-join-command flag for kubeadm token create. ([#56185](https://github.com/kubernetes/kubernetes/pull/56185),[ @mattmoyer](https://github.com/mattmoyer)) -* Added a new --etcd-upgrade keyword to kubeadm upgrade apply. When this keyword is specified, etcd's static pod gets upgraded to the etcd version officially recommended for a target kubernetes release. ([#55010](https://github.com/kubernetes/kubernetes/pull/55010),[ @sbezverk](https://github.com/sbezverk)) -* Kubeadm now supports Kubelet Dynamic Configuration on an alpha level. ([#55803](https://github.com/kubernetes/kubernetes/pull/55803),[ @xiangpengzhao](https://github.com/xiangpengzhao)) -* Added support for adding a Windows node ([#53553](https://github.com/kubernetes/kubernetes/pull/53553),[ @bsteciuk](https://github.com/bsteciuk)) - -#### **Juju** - -* Added support for SAN entries in the master node certificate. ([#54234](https://github.com/kubernetes/kubernetes/pull/54234),[ @hyperbolic2346](https://github.com/hyperbolic2346)) -* Add extra-args configs for scheduler and controller-manager to kubernetes-master charm ([#55185](https://github.com/kubernetes/kubernetes/pull/55185),[ @Cynerva](https://github.com/Cynerva)) -* Add support for RBAC ([#53820](https://github.com/kubernetes/kubernetes/pull/53820),[ @ktsakalozos](https://github.com/ktsakalozos)) -* Fixed iptables FORWARD policy for Docker 1.13 in kubernetes-worker charm ([#54796](https://github.com/kubernetes/kubernetes/pull/54796),[ @Cynerva](https://github.com/Cynerva)) -* Upgrading the kubernetes-master units now results in staged upgrades just like the kubernetes-worker nodes. Use the upgrade action in order to continue the upgrade process on each unit such as juju run-action kubernetes-master/0 upgrade ([#55990](https://github.com/kubernetes/kubernetes/pull/55990),[ @hyperbolic2346](https://github.com/hyperbolic2346)) -* Added extra_sans config option to kubeapi-load-balancer charm. This allows the user to specify extra SAN entries on the certificate generated for the load balancer. ([#54947](https://github.com/kubernetes/kubernetes/pull/54947),[ @hyperbolic2346](https://github.com/hyperbolic2346)) -* Added extra-args configs to kubernetes-worker charm ([#55334](https://github.com/kubernetes/kubernetes/pull/55334),[ @Cynerva](https://github.com/Cynerva)) - -#### **Other** - -* Base images have been bumped to Debian Stretch (9) ([#52744](https://github.com/kubernetes/kubernetes/pull/52744),[ @rphillips](https://github.com/rphillips)) -* Upgraded to go1.9. ([#51375](https://github.com/kubernetes/kubernetes/pull/51375),[ @cblecker](https://github.com/cblecker)) -* Add-on manager now supports HA masters. ([#55466](https://github.com/kubernetes/kubernetes/pull/55466),[ #55782](https://github.com/x13n),[ @x13n](https://github.com/x13n)) -* Hyperkube can now run from a non-standard path. ([#54570](https://github.com/kubernetes/kubernetes/pull/54570)) - -#### **GCP** - -* The service account made available on your nodes is now configurable. ([#52868](https://github.com/kubernetes/kubernetes/pull/52868),[ @ihmccreery](https://github.com/ihmccreery)) -* GCE nodes with NVIDIA GPUs attached now expose nvidia.com/gpu as a resource instead of alpha.kubernetes.io/nvidia-gpu. ([#54826](https://github.com/kubernetes/kubernetes/pull/54826),[ @mindprince](https://github.com/mindprince)) -* Docker's live-restore on COS/ubuntu can now be disabled ([#55260](https://github.com/kubernetes/kubernetes/pull/55260),[ @yujuhong](https://github.com/yujuhong)) -* Metadata concealment is now controlled by the ENABLE_METADATA_CONCEALMENT env var. See cluster/gce/config-default.sh for more info. ([#54150](https://github.com/kubernetes/kubernetes/pull/54150),[ @ihmccreery](https://github.com/ihmccreery)) -* Masquerading rules are now added by default to GCE/GKE ([#55178](https://github.com/kubernetes/kubernetes/pull/55178),[ @dnardo](https://github.com/dnardo)) -* Fixed master startup issues with concurrent iptables invocations. ([#55945](https://github.com/kubernetes/kubernetes/pull/55945),[ @x13n](https://github.com/x13n)) -* Fixed issue deleting internal load balancers when the firewall resource may not exist. ([#53450](https://github.com/kubernetes/kubernetes/pull/53450),[ @nicksardo](https://github.com/nicksardo)) - -### **Instrumentation** - -#### **Audit** - -* Adjust batching audit webhook default parameters: increase queue size, batch size, and initial backoff. Add throttling to the batching audit webhook. Default rate limit is 10 QPS. ([#53417](https://github.com/kubernetes/kubernetes/pull/53417),[ @crassirostris](https://github.com/crassirostris)) - * These parameters are also now configurable. ([#56638](https://github.com/kubernetes/kubernetes/pull/56638), [@crassirostris](https://github.com/crassirostris)) - -#### **Other** - -* Fix a typo in prometheus-to-sd configuration, that drops some stackdriver metrics. ([#56473](https://github.com/kubernetes/kubernetes/pull/56473),[ @loburm](https://github.com/loburm)) -* [fluentd-elasticsearch addon] Elasticsearch and Kibana are updated to version 5.6.4 ([#55400](https://github.com/kubernetes/kubernetes/pull/55400),[ @mrahbar](https://github.com/mrahbar)) -* fluentd now supports CRI log format. ([#54777](https://github.com/kubernetes/kubernetes/pull/54777),[ @Random-Liu](https://github.com/Random-Liu)) -* Bring all prom-to-sd container to the same image version ([#54583](https://github.com/kubernetes/kubernetes/pull/54583)) - * Reduce log noise produced by prometheus-to-sd, by bumping it to version 0.2.2. ([#54635](https://github.com/kubernetes/kubernetes/pull/54635),[ @loburm](https://github.com/loburm)) -* [fluentd-elasticsearch addon] Elasticsearch service name can be overridden via env variable ELASTICSEARCH_SERVICE_NAME ([#54215](https://github.com/kubernetes/kubernetes/pull/54215),[ @mrahbar](https://github.com/mrahbar)) - -### **Multicluster** - -#### **Federation** - -* Kubefed init now supports --imagePullSecrets and --imagePullPolicy, making it possible to use private registries. ([#50740](https://github.com/kubernetes/kubernetes/pull/50740),[ @dixudx](https://github.com/dixudx)) -* Updated cluster printer to enable --show-labels ([#53771](https://github.com/kubernetes/kubernetes/pull/53771),[ @dixudx](https://github.com/dixudx)) -* Kubefed init now supports --nodeSelector, enabling you to determine on what node the controller will be installed. ([#50749](https://github.com/kubernetes/kubernetes/pull/50749),[ @dixudx](https://github.com/dixudx)) - -### **Network** - -#### **IPv6** - -* [alpha] IPv6 support has been added. Notable IPv6 support details include: - * Support for IPv6-only Kubernetes cluster deployments. **<span style="text-decoration:underline;">Note:</span>** This feature does not provide dual-stack support. - * Support for IPv6 Kubernetes control and data planes. - * Support for Kubernetes IPv6 cluster deployments using kubeadm. - * Support for the iptables kube-proxy backend using ip6tables. - * Relies on CNI 0.6.0 binaries for IPv6 pod networking. - * Adds IPv6 support for kube-dns using SRV records. - * Caveats - * Only the CNI bridge and local-ipam plugins have been tested for the alpha release, although other CNI plugins do support IPv6. - * HostPorts are not supported. -* An IPv6 network mask for pod or cluster cidr network must be /66 or longer. For example: 2001:db1::/66, 2001:dead:beef::/76, 2001:cafe::/118 are supported. 2001:db1::/64 is not supported -* For details, see [the complete list of merged pull requests for IPv6 support](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Amerged+label%3Aarea%2Fipv6). - -#### **IPVS** - -* You can now use the --cleanup-ipvs flag to tell kube-proxy whether to flush all existing ipvs rules in on startup ([#56036](https://github.com/kubernetes/kubernetes/pull/56036),[ @m1093782566](https://github.com/m1093782566)) -* Graduate kube-proxy IPVS mode to beta. ([#56623](https://github.com/kubernetes/kubernetes/pull/56623), [@m1093782566](https://github.com/m1093782566)) - -#### **Kube-Proxy** - -* Added iptables rules to allow Pod traffic even when default iptables policy is to reject. ([#52569](https://github.com/kubernetes/kubernetes/pull/52569),[ @tmjd](https://github.com/tmjd)) -* You can once again use 0 values for conntrack min, max, max per core, tcp close wait timeout, and tcp established timeout; this functionality was broken in 1.8. ([#55261](https://github.com/kubernetes/kubernetes/pull/55261),[ @ncdc](https://github.com/ncdc)) - -#### **CoreDNS** - -* You now have the option to use CoreDNS instead of KubeDNS. To install CoreDNS instead of kube-dns, set CLUSTER_DNS_CORE_DNS to 'true'. This support is experimental. ([#52501](https://github.com/kubernetes/kubernetes/pull/52501),[ @rajansandeep](https://github.com/rajansandeep)) ([#55728](https://github.com/kubernetes/kubernetes/pull/55728),[ @rajansandeep](https://github.com/rajansandeep)) - -#### **Other** - -* Pod addresses will now be removed from the list of endpoints when the pod is in graceful termination. ([#54828](https://github.com/kubernetes/kubernetes/pull/54828),[ @freehan](https://github.com/freehan)) -* You can now use a new supported service annotation for AWS clusters, `service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy`, which lets you specify which [predefined AWS SSL policy](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-policy-table.html) you would like to use. ([#54507](https://github.com/kubernetes/kubernetes/pull/54507),[ @micahhausler](https://github.com/micahhausler)) -* Termination grace period for the calico/node add-on DaemonSet has been eliminated, reducing downtime during a rolling upgrade or deletion. ([#55015](https://github.com/kubernetes/kubernetes/pull/55015),[ @fasaxc](https://github.com/fasaxc)) -* Fixed bad conversion in host port chain name generating func which led to some unreachable host ports. ([#55153](https://github.com/kubernetes/kubernetes/pull/55153),[ @chenchun](https://github.com/chenchun)) -* Fixed IPVS availability check ([#51874](https://github.com/kubernetes/kubernetes/pull/51874),[ @vfreex](https://github.com/vfreex)) -* The output for kubectl describe networkpolicy * has been enhanced to be more useful. ([#46951](https://github.com/kubernetes/kubernetes/pull/46951),[ @aanm](https://github.com/aanm)) -* Kernel modules are now loaded automatically inside a kube-proxy pod ([#52003](https://github.com/kubernetes/kubernetes/pull/52003),[ @vfreex](https://github.com/vfreex)) -* Improve resilience by annotating kube-dns addon with podAntiAffinity to prefer scheduling on different nodes. ([#52193](https://github.com/kubernetes/kubernetes/pull/52193),[ @StevenACoffman](https://github.com/StevenACoffman)) -* [alpha] Added DNSConfig field to PodSpec. "None" mode for DNSPolicy is now supported. ([#55848](https://github.com/kubernetes/kubernetes/pull/55848),[ @MrHohn](https://github.com/MrHohn)) -* You can now add "options" to the host's /etc/resolv.conf (or --resolv-conf), and they will be copied into pod's resolv.conf when dnsPolicy is Default. Being able to customize options is important because it is common to leverage options to fine-tune the behavior of DNS client. ([#54773](https://github.com/kubernetes/kubernetes/pull/54773),[ @phsiao](https://github.com/phsiao)) -* Fixed a bug so that the service controller no longer retries if doNotRetry service update fails. ([#54184](https://github.com/kubernetes/kubernetes/pull/54184),[ @MrHohn](https://github.com/MrHohn)) -* Added --no-negcache flag to kube-dns to prevent caching of NXDOMAIN responses. ([#53604](https://github.com/kubernetes/kubernetes/pull/53604),[ @cblecker](https://github.com/cblecker)) - -### **Node** - -#### **Pod API** - -* A single value in metadata.annotations/metadata.labels can now be passed into the containers via the Downward API. ([#55902](https://github.com/kubernetes/kubernetes/pull/55902),[ @yguo0905](https://github.com/yguo0905)) -* Pods will no longer briefly transition to a "Pending" state during the deletion process. ([#54593](https://github.com/kubernetes/kubernetes/pull/54593),[ @dashpole](https://github.com/dashpole)) -* Added pod-level local ephemeral storage metric to the Summary API. Pod-level ephemeral storage reports the total filesystem usage for the containers and emptyDir volumes in the measured Pod. ([#55447](https://github.com/kubernetes/kubernetes/pull/55447),[ @jingxu97](https://github.com/jingxu97)) - -#### **Hardware Accelerators** - -* Kubelet now exposes metrics for NVIDIA GPUs attached to the containers. ([#55188](https://github.com/kubernetes/kubernetes/pull/55188),[ @mindprince](https://github.com/mindprince)) -* The device plugin Alpha API no longer supports returning artifacts per device as part of AllocateResponse. ([#53031](https://github.com/kubernetes/kubernetes/pull/53031),[ @vishh](https://github.com/vishh)) -* Fix to ignore extended resources that are not registered with kubelet during container resource allocation. ([#53547](https://github.com/kubernetes/kubernetes/pull/53547),[ @jiayingz](https://github.com/jiayingz)) - - -#### **Container Runtime** -* [alpha] [cri-tools](https://github.com/kubernetes-incubator/cri-tools): CLI and validation tools for CRI is now v1.0.0-alpha.0. This release mainly focuses on UX improvements. [[@feiskyer](https://github.com/feiskyer)] - * Make crictl command more user friendly and add more subcommands. - * Integrate with CRI verbose option to provide extra debug information. - * Update CRI to kubernetes v1.9. - * Bug fixes in validation test suites. -* [beta] [cri-containerd](https://github.com/kubernetes-incubator/cri-containerd): CRI implementation for containerd is now v1.0.0-beta.0, [[@Random-Liu](https://github.com/Random-Liu)] - * This release supports Kubernetes 1.9+ and containerd v1.0.0+. - * Pass all Kubernetes 1.9 e2e test, node e2e test and CRI validation tests. - * [Kube-up.sh integration](https://github.com/kubernetes-incubator/cri-containerd/blob/master/docs/kube-up.md). - * [Full crictl integration including CRI verbose option.](https://github.com/kubernetes-incubator/cri-containerd/blob/master/docs/crictl.md) - * Integration with cadvisor to provide better summary api support. -* [stable] [cri-o](https://github.com/kubernetes-incubator/cri-o): CRI implementation for OCI-based runtimes is now v1.9. [[@mrunalp](https://github.com/mrunalp)] - * Pass all the Kubernetes 1.9 end-to-end test suites and now gating PRs as well - * Pass all the CRI validation tests - * Release has been focused on bug fixes, stability and performance with runc and Clear Containers - * Minikube integration -* [stable] [frakti](https://github.com/kubernetes/frakti): CRI implementation for hypervisor-based runtimes is now v1.9. [[@resouer](https://github.com/resouer)] - * Added ARM64 release. Upgraded to CNI 0.6.0, added block device as Pod volume mode. Fixed CNI plugin compatibility. - * Passed all CRI validation conformance tests and node end-to-end conformance tests. -* [alpha] [rktlet](https://github.com/kubernetes-incubator/rktlet): CRI implementation for the rkt runtime is now v0.1.0. [[@iaguis](https://github.com/iaguis)] - * This is the first release of rktlet and it implements support for the CRI including fetching images, running pods, CNI networking, logging and exec. -This release passes 129/145 Kubernetes e2e conformance tests. -* Container Runtime Interface API change. [[@yujuhong](https://github.com/yujuhong)] - * A new field is added to CRI container log format to support splitting a long log line into multiple lines. ([#55922](https://github.com/kubernetes/kubernetes/pull/55922), [@Random-Liu](https://github.com/Random-Liu)) - * CRI now supports debugging via a verbose option for status functions. ([#53965](https://github.com/kubernetes/kubernetes/pull/53965), [@Random-Liu](https://github.com/Random-Liu)) - * Kubelet can now provide full summary api support for the CRI container runtime, with the exception of container log stats. ([#55810](https://github.com/kubernetes/kubernetes/pull/55810), [@abhi](https://github.com/abhi)) - * CRI now uses the correct localhost seccomp path when provided with input in the format of localhost//profileRoot/profileName. ([#55450](https://github.com/kubernetes/kubernetes/pull/55450), [@feiskyer](https://github.com/feiskyer)) - - -#### **Kubelet** - -* The EvictionHard, EvictionSoft, EvictionSoftGracePeriod, EvictionMinimumReclaim, SystemReserved, and KubeReserved fields in the KubeletConfiguration object (`kubeletconfig/v1alpha1`) are now of type map[string]string, which facilitates writing JSON and YAML files. ([#54823](https://github.com/kubernetes/kubernetes/pull/54823),[ @mtaufen](https://github.com/mtaufen)) -* Relative paths in the Kubelet's local config files (`--init-config-dir`) will now be resolved relative to the location of the containing files. ([#55648](https://github.com/kubernetes/kubernetes/pull/55648),[ @mtaufen](https://github.com/mtaufen)) -* It is now possible to set multiple manifest URL headers with the kubelet's `--manifest-url-header` flag. Multiple headers for the same key will be added in the order provided. The ManifestURLHeader field in KubeletConfiguration object (kubeletconfig/v1alpha1) is now a map[string][]string, which facilitates writing JSON and YAML files. ([#54643](https://github.com/kubernetes/kubernetes/pull/54643),[ @mtaufen](https://github.com/mtaufen)) -* The Kubelet's feature gates are now specified as a map when provided via a JSON or YAML KubeletConfiguration, rather than as a string of key-value pairs, making them less awkward for users. ([#53025](https://github.com/kubernetes/kubernetes/pull/53025),[ @mtaufen](https://github.com/mtaufen)) - -##### **Other** - -* Fixed a performance issue ([#51899](https://github.com/kubernetes/kubernetes/pull/51899)) identified in large-scale clusters when deleting thousands of pods simultaneously across hundreds of nodes, by actively removing containers of deleted pods, rather than waiting for periodic garbage collection and batching resulting pod API deletion requests. ([#53233](https://github.com/kubernetes/kubernetes/pull/53233),[ @dashpole](https://github.com/dashpole)) -* Problems deleting local static pods have been resolved. ([#48339](https://github.com/kubernetes/kubernetes/pull/48339),[ @dixudx](https://github.com/dixudx)) -* CRI now only calls UpdateContainerResources when cpuset is set. ([#53122](https://github.com/kubernetes/kubernetes/pull/53122),[ @resouer](https://github.com/resouer)) -* Containerd monitoring is now supported. ([#56109](https://github.com/kubernetes/kubernetes/pull/56109),[ @dashpole](https://github.com/dashpole)) -* deviceplugin has been extended to more gracefully handle the full device plugin lifecycle, including: ([#55088](https://github.com/kubernetes/kubernetes/pull/55088),[ @jiayingz](https://github.com/jiayingz)) - * Kubelet now uses an explicit cm.GetDevicePluginResourceCapacity() function that makes it possible to more accurately determine what resources are inactive and return a more accurate view of available resources. - * Extends the device plugin checkpoint data to record registered resources so that we can finish resource removing devices even upon kubelet restarts. - * Passes sourcesReady from kubelet to the device plugin to avoid removing inactive pods during the grace period of kubelet restart. - * Extends the gpu_device_plugin e2e_node test to verify that scheduled pods can continue to run even after a device plugin deletion and kubelet restart. -* The NodeController no longer supports kubelet 1.2. ([#48996](https://github.com/kubernetes/kubernetes/pull/48996),[ @k82cn](https://github.com/k82cn)) -* Kubelet now provides more specific events via FailedSync when unable to sync a pod. ([#53857](https://github.com/kubernetes/kubernetes/pull/53857),[ @derekwaynecarr](https://github.com/derekwaynecarr)) -* You can now disable AppArmor by setting the AppArmor profile to unconfined. ([#52395](https://github.com/kubernetes/kubernetes/pull/52395),[ @dixudx](https://github.com/dixudx)) -* ImageGCManage now consumes ImageFS stats from StatsProvider rather than cadvisor. ([#53094](https://github.com/kubernetes/kubernetes/pull/53094),[ @yguo0905](https://github.com/yguo0905)) -* Hyperkube now supports the support --experimental-dockershim kubelet flag. ([#54508](https://github.com/kubernetes/kubernetes/pull/54508),[ @ivan4th](https://github.com/ivan4th)) -* Kubelet no longer removes default labels from Node API objects on startup ([#54073](https://github.com/kubernetes/kubernetes/pull/54073),[ @liggitt](https://github.com/liggitt)) -* The overlay2 container disk metrics for Docker and CRI-O now work properly. ([#54827](https://github.com/kubernetes/kubernetes/pull/54827),[ @dashpole](https://github.com/dashpole)) -* Removed docker dependency during kubelet start up. ([#54405](https://github.com/kubernetes/kubernetes/pull/54405),[ @resouer](https://github.com/resouer)) -* Added Windows support to the system verification check. ([#53730](https://github.com/kubernetes/kubernetes/pull/53730),[ @bsteciuk](https://github.com/bsteciuk)) -* Kubelet no longer removes unregistered extended resource capacities from node status; cluster admins will have to manually remove extended resources exposed via device plugins when they the remove plugins themselves. ([#53353](https://github.com/kubernetes/kubernetes/pull/53353),[ @jiayingz](https://github.com/jiayingz)) -* The stats summary network value now takes into account multiple network interfaces, and not just eth0. ([#52144](https://github.com/kubernetes/kubernetes/pull/52144),[ @andyxning](https://github.com/andyxning)) -* Base images have been bumped to Debian Stretch (9). ([#52744](https://github.com/kubernetes/kubernetes/pull/52744),[ @rphillips](https://github.com/rphillips)) - -### **OpenStack** - -* OpenStack Cinder support has been improved: - * Cinder version detection now works properly. ([#53115](https://github.com/kubernetes/kubernetes/pull/53115),[ @FengyunPan](https://github.com/FengyunPan)) - * The OpenStack cloud provider now supports Cinder v3 API. ([#52910](https://github.com/kubernetes/kubernetes/pull/52910),[ @FengyunPan](https://github.com/FengyunPan)) -* Load balancing is now more flexible: - * The OpenStack LBaaS v2 Provider is now [configurable](https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/#openstack). ([#54176](https://github.com/kubernetes/kubernetes/pull/54176),[ @gonzolino](https://github.com/gonzolino)) - * OpenStack Octavia v2 is now supported as a load balancer provider in addition to the existing support for the Neutron LBaaS V2 implementation. Neutron LBaaS V1 support has been removed. ([#55393](https://github.com/kubernetes/kubernetes/pull/55393),[ @jamiehannaford](https://github.com/jamiehannaford)) -* OpenStack security group support has been beefed up ([#50836](https://github.com/kubernetes/kubernetes/pull/50836),[ @FengyunPan](https://github.com/FengyunPan)): - * Kubernetes will now automatically determine the security group for the node - * Nodes can now belong to multiple security groups - -### **Scheduling** - -#### **Hardware Accelerators** - -* Add ExtendedResourceToleration admission controller. This facilitates creation of dedicated nodes with extended resources. If operators want to create dedicated nodes with extended resources (such as GPUs, FPGAs, and so on), they are expected to taint the node with extended resource name as the key. This admission controller, if enabled, automatically adds tolerations for such taints to pods requesting extended resources, so users don't have to manually add these tolerations. ([#55839](https://github.com/kubernetes/kubernetes/pull/55839),[ @mindprince](https://github.com/mindprince)) - -#### **Other** - -* Scheduler cache ignores updates to an assumed pod if updates are limited to pod annotations. ([#54008](https://github.com/kubernetes/kubernetes/pull/54008),[ @yguo0905](https://github.com/yguo0905)) -* Issues with namespace deletion have been resolved. ([#53720](https://github.com/kubernetes/kubernetes/pull/53720),[ @shyamjvs](https://github.com/shyamjvs)) ([#53793](https://github.com/kubernetes/kubernetes/pull/53793),[ @wojtek-t](https://github.com/wojtek-t)) -* Pod preemption has been improved. - * Now takes PodDisruptionBudget into account. ([#56178](https://github.com/kubernetes/kubernetes/pull/56178),[ @bsalamat](https://github.com/bsalamat)) - * Nominated pods are taken into account during scheduling to avoid starvation of higher priority pods. ([#55933](https://github.com/kubernetes/kubernetes/pull/55933),[ @bsalamat](https://github.com/bsalamat)) -* Fixed 'Schedulercache is corrupted' error in kube-scheduler ([#55262](https://github.com/kubernetes/kubernetes/pull/55262),[ @liggitt](https://github.com/liggitt)) -* The kube-scheduler command now supports a --config flag which is the location of a file containing a serialized scheduler configuration. Most other kube-scheduler flags are now deprecated. ([#52562](https://github.com/kubernetes/kubernetes/pull/52562),[ @ironcladlou](https://github.com/ironcladlou)) -* A new scheduling queue helps schedule the highest priority pending pod first. ([#55109](https://github.com/kubernetes/kubernetes/pull/55109),[ @bsalamat](https://github.com/bsalamat)) -* A Pod can now listen to the same port on multiple IP addresses. ([#52421](https://github.com/kubernetes/kubernetes/pull/52421),[ @WIZARD-CXY](https://github.com/WIZARD-CXY)) -* Object count quotas supported on all standard resources using count/<resource>.<group> syntax ([#54320](https://github.com/kubernetes/kubernetes/pull/54320),[ @derekwaynecarr](https://github.com/derekwaynecarr)) -* Apply algorithm in scheduler by feature gates. ([#52723](https://github.com/kubernetes/kubernetes/pull/52723),[ @k82cn](https://github.com/k82cn)) -* A new priority function ResourceLimitsPriorityMap (disabled by default and behind alpha feature gate and not part of the scheduler's default priority functions list) that assigns a lowest possible score of 1 to a node that satisfies one or both of input pod's cpu and memory limits, mainly to break ties between nodes with same scores. ([#55906](https://github.com/kubernetes/kubernetes/pull/55906),[ @aveshagarwal](https://github.com/aveshagarwal)) -* Kubelet evictions now take pod priority into account ([#53542](https://github.com/kubernetes/kubernetes/pull/53542),[ @dashpole](https://github.com/dashpole)) -* PodTolerationRestriction admisson plugin: if namespace level tolerations are empty, now they override cluster level tolerations. ([#54812](https://github.com/kubernetes/kubernetes/pull/54812),[ @aveshagarwal](https://github.com/aveshagarwal)) - -### **Storage** - -* [stable] `PersistentVolume` and `PersistentVolumeClaim` objects must now have a capacity greater than zero. -* [stable] Mutation of `PersistentVolumeSource` after creation is no longer allowed -* [alpha] Deletion of `PersistentVolumeClaim` objects that are in use by a pod no longer permitted (if alpha feature is enabled). -* [alpha] Container Storage Interface - * New CSIVolumeSource enables Kubernetes to use external CSI drivers to provision, attach, and mount volumes. -* [alpha] Raw block volumes - * Support for surfacing volumes as raw block devices added to Kubernetes storage system. - * Only Fibre Channel volume plugin supports exposes this functionality, in this release. -* [alpha] Volume resizing - * Added file system resizing for the following volume plugins: GCE PD, Ceph RBD, AWS EBS, OpenStack Cinder -* [alpha] Topology Aware Volume Scheduling - * Improved volume scheduling for Local PersistentVolumes, by allowing the scheduler to make PersistentVolume binding decisions while respecting the Pod's scheduling requirements. - * Dynamic provisioning is not supported with this feature yet. -* [alpha] Containerized mount utilities - * Allow mount utilities, used to mount volumes, to run inside a container instead of on the host. -* Bug Fixes - * ScaleIO volume plugin is no longer dependent on the drv_cfg binary, so a Kubernetes cluster can easily run a containerized kubelet. ([#54956](https://github.com/kubernetes/kubernetes/pull/54956),[ @vladimirvivien](https://github.com/vladimirvivien)) - * AWS EBS Volumes are detached from stopped AWS nodes. ([#55893](https://github.com/kubernetes/kubernetes/pull/55893),[ @gnufied](https://github.com/gnufied)) - * AWS EBS volumes are detached if attached to a different node than expected. ([#55491](https://github.com/kubernetes/kubernetes/pull/55491),[ @gnufied](https://github.com/gnufied)) - * PV Recycle now works in environments that use architectures other than x86. ([#53958](https://github.com/kubernetes/kubernetes/pull/53958),[ @dixudx](https://github.com/dixudx)) - * Pod Security Policy can now manage access to specific FlexVolume drivers.([#53179](https://github.com/kubernetes/kubernetes/pull/53179),[ @wanghaoran1988](https://github.com/wanghaoran1988)) - * To prevent unauthorized access to CHAP Secrets, you can now set the secretNamespace storage class parameters for the following volume types: - * ScaleIO; StoragePool and ProtectionDomain attributes no longer default to the value default. ([#54013](https://github.com/kubernetes/kubernetes/pull/54013),[ @vladimirvivien](https://github.com/vladimirvivien)) - * RBD Persistent Volume Sources ([#54302](https://github.com/kubernetes/kubernetes/pull/54302),[ @sbezverk](https://github.com/sbezverk)) - * iSCSI Persistent Volume Sources ([#51530](https://github.com/kubernetes/kubernetes/pull/51530),[ @rootfs](https://github.com/rootfs)) - * In GCE multizonal clusters, `PersistentVolume` objects will no longer be dynamically provisioned in zones without nodes. ([#52322](https://github.com/kubernetes/kubernetes/pull/52322),[ @davidz627](https://github.com/davidz627)) - * Multi Attach PVC errors and events are now more useful and less noisy. ([#53401](https://github.com/kubernetes/kubernetes/pull/53401),[ @gnufied](https://github.com/gnufied)) - * The compute-rw scope has been removed from GCE nodes ([#53266](https://github.com/kubernetes/kubernetes/pull/53266),[ @mikedanese](https://github.com/mikedanese)) - * Updated vSphere cloud provider to support k8s cluster spread across multiple vCenters ([#55845](https://github.com/kubernetes/kubernetes/pull/55845),[ @rohitjogvmw](https://github.com/rohitjogvmw)) - * vSphere: Fix disk is not getting detached when PV is provisioned on clustered datastore. ([#54438](https://github.com/kubernetes/kubernetes/pull/54438),[ @pshahzeb](https://github.com/pshahzeb)) - * If a non-absolute mountPath is passed to the kubelet, it must now be prefixed with the appropriate root path. ([#55665](https://github.com/kubernetes/kubernetes/pull/55665),[ @brendandburns](https://github.com/brendandburns)) - -## External Dependencies - -* The supported etcd server version is **3.1.10**, as compared to 3.0.17 in v1.8 ([#49393](https://github.com/kubernetes/kubernetes/pull/49393),[ @hongchaodeng](https://github.com/hongchaodeng)) -* The validated docker versions are the same as for v1.8: **1.11.2 to 1.13.1 and 17.03.x** -* The Go version was upgraded from go1.8.3 to **go1.9.2** ([#51375](https://github.com/kubernetes/kubernetes/pull/51375),[ @cblecker](https://github.com/cblecker)) - * The minimum supported go version bumps to 1.9.1. ([#55301](https://github.com/kubernetes/kubernetes/pull/55301),[ @xiangpengzhao](https://github.com/xiangpengzhao)) - * Kubernetes has been upgraded to go1.9.2 ([#55420](https://github.com/kubernetes/kubernetes/pull/55420),[ @cblecker](https://github.com/cblecker)) -* CNI was upgraded to **v0.6.0** ([#51250](https://github.com/kubernetes/kubernetes/pull/51250),[ @dixudx](https://github.com/dixudx)) -* The dashboard add-on has been updated to [v1.8.0](https://github.com/kubernetes/dashboard/releases/tag/v1.8.0). ([#53046](https://github.com/kubernetes/kubernetes/pull/53046), [@maciaszczykm](https://github.com/maciaszczykm)) -* Heapster has been updated to [v1.5.0](https://github.com/kubernetes/heapster/releases/tag/v1.5.0). ([#57046](https://github.com/kubernetes/kubernetes/pull/57046), [@piosz](https://github.com/piosz)) -* Cluster Autoscaler has been updated to [v1.1.0](https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.1.0). ([#56969](https://github.com/kubernetes/kubernetes/pull/56969), [@mwielgus](https://github.com/mwielgus)) -* Update kube-dns 1.14.7 ([#54443](https://github.com/kubernetes/kubernetes/pull/54443),[ @bowei](https://github.com/bowei)) -* Update influxdb to v1.3.3 and grafana to v4.4.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319),[ @kairen](https://github.com/kairen)) +## 1.9 Release Notes + +## WARNING: etcd backup strongly recommended + +Before updating to 1.9, you are strongly recommended to back up your etcd data. Consult the installation procedure you are using (kargo, kops, kube-up, kube-aws, kubeadm etc) for specific advice. + +Some upgrade methods might upgrade etcd from 3.0 to 3.1 automatically when you upgrade from Kubernetes 1.8, unless you specify otherwise. Because [etcd does not support downgrading](https://coreos.com/etcd/docs/latest/upgrades/upgrade_3_1.html), you'll need to either remain on etcd 3.1 or restore from a backup if you want to downgrade back to Kubernetes 1.8. + +## Introduction to 1.9.0 + +Kubernetes version 1.9 includes new features and enhancements, as well as fixes to identified issues. The release notes contain a brief overview of the important changes introduced in this release. The content is organized by Special Interest Group ([SIG](https://github.com/kubernetes/community/blob/master/sig-list.md)). + +For initial installations, see the [Setup topics](https://kubernetes.io/docs/setup/pick-right-solution/) in the Kubernetes documentation. + +To upgrade to this release from a previous version, first take any actions required [Before Upgrading](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.9.md#before-upgrading). + +For more information about this release and for the latest documentation, see the [Kubernetes documentation](https://kubernetes.io/docs/home/). + +## Major themes + +Kubernetes is developed by community members whose work is organized into +[Special Interest Groups](https://github.com/kubernetes/community/blob/master/sig-list.md), which provide the themes that guide their work. For the 1.9 release, these themes included: + +### API Machinery + +Extensibility. SIG API Machinery added a new class of admission control webhooks (mutating), and brought the admission control webhooks to beta. + +### Apps + +The core workloads API, which is composed of the DaemonSet, Deployment, ReplicaSet, and StatefulSet kinds, has been promoted to GA stability in the apps/v1 group version. As such, the apps/v1beta2 group version is deprecated, and all new code should use the kinds in the apps/v1 group version. + +### Auth + +SIG Auth focused on extension-related authorization improvements. Permissions can now be added to the built-in RBAC admin/edit/view roles using [cluster role aggregation](https://kubernetes.io/docs/admin/authorization/rbac/#aggregated-clusterroles). [Webhook authorizers](https://kubernetes.io/docs/admin/authorization/webhook/) can now deny requests and short-circuit checking subsequent authorizers. Performance and usability of the beta [PodSecurityPolicy](https://kubernetes.io/docs/concepts/policy/pod-security-policy/) feature was also improved. + +### AWS + +In v1.9 SIG AWS has improved stability of EBS support across the board. If a Volume is “stuck” in the attaching state to a node for too long a unschedulable taint will be applied to the node, so a Kubernetes admin can [take manual steps to correct the error](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html). Users are encouraged to ensure they are monitoring for the taint, and should consider automatically terminating instances in this state. + +In addition, support for NVMe disks has been added to Kubernetes, and a service of type LoadBalancer can now be backed with an NLB instead of an ELB (alpha). + +### Azure + +SIG Azure worked on improvements in the cloud provider, including significant work on the Azure Load Balancer implementation. + +### Cluster Lifecycle + +SIG Cluster Lifecycle has been focusing on improving kubeadm in order to bring it to GA in a future release, as well as developing the [Cluster API](https://github.com/kubernetes/kube-deploy/tree/master/cluster-api). For kubeadm, most new features, such as support for CoreDNS, IPv6 and Dynamic Kubelet Configuration, have gone in as alpha features. We expect to graduate these features to beta and beyond in the next release. The initial Cluster API spec and GCE sample implementation were developed from scratch during this cycle, and we look forward to stabilizing them into something production-grade during 2018. + +### Instrumentation + +In v1.9 we focused on improving stability of the components owned by the SIG, including Heapster, Custom Metrics API adapters for Prometheus, and Stackdriver. + +### Network + +In v1.9 SIG Network has implemented alpha support for IPv6, and alpha support for CoreDNS as a drop-in replacement for kube-dns. Additionally, SIG Network has begun the deprecation process for the extensions/v1beta1 NetworkPolicy API in favor of the networking.k8s.io/v1 equivalent. + +### Node + +SIG Node iterated on the ability to support more workloads with better performance and improved reliability. Alpha features were improved around hardware accelerator support, device plugins enablement, and cpu pinning policies to enable us to graduate these features to beta in a future release. In addition, a number of reliability and performance enhancements were made across the node to help operators in production. + +### OpenStack + +In this cycle, SIG OpenStack focused on configuration simplification through smarter defaults and the use of auto-detection wherever feasible (Block Storage API versions, Security Groups) as well as updating API support, including: + +* Block Storage (Cinder) V3 is now supported. +* Load Balancer (Octavia) V2 is now supported, in addition to Neutron LBaaS V2. +* Neutron LBaas V1 support has been removed. + +This work enables Kubernetes to take full advantage of the relevant services as exposed by OpenStack clouds. Refer to the [Cloud Providers](https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/#openstack) documentation for more information. + +### Storage + +[SIG Storage](https://github.com/kubernetes/community/tree/master/sig-storage) is responsible for storage and volume plugin components. + +For the 1.9 release, SIG Storage made Kubernetes more pluggable and modular by introducing an alpha implementation of the Container Storage Interface (CSI). CSI will make installing new volume plugins as easy as deploying a pod, and enable third-party storage providers to develop their plugins without the need to add code to the core Kubernetes codebase. + +The SIG also focused on adding functionality to the Kubernetes volume subsystem, such as alpha support for exposing volumes as block devices inside containers, extending the alpha volume-resizing support to more volume plugins, and topology-aware volume scheduling. + +### Windows + +We are advancing support for Windows Server and Windows Server Containers to beta along with continued feature and functional advancements on both the Kubernetes and Windows platforms. This opens the door for many Windows-specific applications and workloads to run on Kubernetes, significantly expanding the implementation scenarios and the enterprise reach of Kubernetes. + +## Before Upgrading + +Consider the following changes, limitations, and guidelines before you upgrade: + +### **API Machinery** + +* The admission API, which is used when the API server calls admission control webhooks, is moved from `admission.v1alpha1` to `admission.v1beta1`. You must **delete any existing webhooks before you upgrade** your cluster, and update them to use the latest API. This change is not backward compatible. +* The admission webhook configurations API, part of the admissionregistration API, is now at v1beta1. Delete any existing webhook configurations before you upgrade, and update your configuration files to use the latest API. For this and the previous change, see also [the documentation]([https://kubernetes.io/docs/admin/extensible-admission-controllers/#external-admission-webhooks](https://kubernetes.io/docs/admin/extensible-admission-controllers/#external-admission-webhooks)). +* A new `ValidatingAdmissionWebhook` is added (replacing `GenericAdmissionWebhook`) and is available in the generic API server. You must update your API server configuration file to pass the webhook to the `--admission-control` flag. ([#55988](https://github.com/kubernetes/kubernetes/pull/55988),[ @caesarxuchao](https://github.com/caesarxuchao)) ([#54513](https://github.com/kubernetes/kubernetes/pull/54513),[ @deads2k](https://github.com/deads2k)) +* The deprecated options `--portal-net` and `--service-node-ports` for the API server are removed. ([#52547](https://github.com/kubernetes/kubernetes/pull/52547),[ @xiangpengzhao](https://github.com/xiangpengzhao)) + +### **Auth** + +* PodSecurityPolicy: A compatibility issue with the allowPrivilegeEscalation field that caused policies to start denying pods they previously allowed was fixed. If you defined PodSecurityPolicy objects using a 1.8.0 client or server and set allowPrivilegeEscalation to false, these objects must be reapplied after you upgrade. ([#53443](https://github.com/kubernetes/kubernetes/pull/53443),[ @liggitt](https://github.com/liggitt)) +* KMS: Alpha integration with GCP KMS was removed in favor of a future out-of-process extension point. Discontinue use of the GCP KMS integration and ensure [data has been decrypted](https://kubernetes.io/docs/tasks/administer-cluster/encrypt-data/#decrypting-all-data) (or reencrypted with a different provider) before upgrading ([#54759](https://github.com/kubernetes/kubernetes/pull/54759),[ @sakshamsharma](https://github.com/sakshamsharma)) + +### **CLI** + +* Swagger 1.2 validation is removed for kubectl. The options `--use-openapi` and `--schema-cache-dir` are also removed because they are no longer needed. ([#53232](https://github.com/kubernetes/kubernetes/pull/53232),[ @apelisse](https://github.com/apelisse)) + +### **Cluster Lifecycle** + +* You must either specify the `--discovery-token-ca-cert-hash` flag to `kubeadm join`, or opt out of the CA pinning feature using `--discovery-token-unsafe-skip-ca-verification`. +* The default `auto-detect` behavior of the kubelet's `--cloud-provider` flag is removed. + * You can manually set `--cloud-provider=auto-detect`, but be aware that this behavior will be removed completely in a future version. + * Best practice for version 1.9 and future versions is to explicitly set a cloud-provider. See [the documentation](https://kubernetes.io/docs/getting-started-guides/scratch/#cloud-providers) +* The kubeadm `--skip-preflight-checks` flag is now deprecated and will be removed in a future release. +* If you are using the cloud provider API to determine the external host address of the apiserver, set `--external-hostname` explicitly instead. The cloud provider detection has been deprecated and will be removed in the future ([#54516](https://github.com/kubernetes/kubernetes/pull/54516),[ @dims](https://github.com/dims)) + +### **Multicluster** + +* Development of Kubernetes Federation has moved to [github.com/kubernetes/federation](github.com/kubernetes/federation). This move out of tree also means that Federation will begin releasing separately from Kubernetes. Impact: + * Federation-specific behavior will no longer be included in kubectl + * kubefed will no longer be released as part of Kubernetes + * The Federation servers will no longer be included in the hyperkube binary and image. ([#53816](https://github.com/kubernetes/kubernetes/pull/53816),[ @marun](https://github.com/marun)) + +### **Node** + +* The kubelet `--network-plugin-dir` flag is removed. This flag was deprecated in version 1.7, and is replaced with `--cni-bin-dir`. ([#53564](https://github.com/kubernetes/kubernetes/pull/53564),[ @supereagle](https://github.com/supereagle)) +* kubelet's `--cloud-provider` flag no longer defaults to "auto-detect". If you want cloud-provider support in kubelet, you must set a specific cloud-provider explicitly. ([#53573](https://github.com/kubernetes/kubernetes/pull/53573),[ @dims](https://github.com/dims)) + +### **Network** + +* NetworkPolicy objects are now stored in etcd in v1 format. After you upgrade to version 1.9, make sure that all NetworkPolicy objects are migrated to v1. ([#51955](https://github.com/kubernetes/kubernetes/pull/51955), [@danwinship](https://github.com/danwinship)) +* The API group/version for the kube-proxy configuration has changed from `componentconfig/v1alpha1` to `kubeproxy.config.k8s.io/v1alpha1`. If you are using a config file for kube-proxy instead of the command line flags, you must change its apiVersion to `kubeproxy.config.k8s.io/v1alpha1`. ([#53645](https://github.com/kubernetes/kubernetes/pull/53645), [@xiangpengzhao](https://github.com/xiangpengzhao)) +* The "ServiceNodeExclusion" feature gate must now be enabled for the `alpha.service-controller.kubernetes.io/exclude-balancer` annotation on nodes to be honored. ([#54644](https://github.com/kubernetes/kubernetes/pull/54644),[ @brendandburns](https://github.com/brendandburns)) + +### **Scheduling** + +* Taint key `unreachable` is now in GA. +* Taint key `notReady` is changed to `not-ready`, and is also now in GA. +* These changes are automatically updated for taints. Tolerations for these taints must be updated manually. Specifically, you must: + * Change `node.alpha.kubernetes.io/notReady` to `node.kubernetes.io/not-ready` + * Change `node.alpha.kubernetes.io/unreachable` to `node.kubernetes.io/unreachable` +* The `node.kubernetes.io/memory-pressure` taint now respects the configured whitelist. To use it, you must add it to the whitelist.([#55251](https://github.com/kubernetes/kubernetes/pull/55251),[ @deads2k](https://github.com/deads2k)) +* Refactor kube-scheduler configuration ([#52428](https://github.com/kubernetes/kubernetes/pull/52428)) + * The kube-scheduler command now supports a --config flag which is the location of a file containing a serialized scheduler configuration. Most other kube-scheduler flags are now deprecated. ([#52562](https://github.com/kubernetes/kubernetes/pull/52562),[ @ironcladlou](https://github.com/ironcladlou)) +* Opaque integer resources (OIR), which were (deprecated in v1.8.), have been removed. ([#55103](https://github.com/kubernetes/kubernetes/pull/55103),[ @ConnorDoyle](https://github.com/ConnorDoyle)) + +### **Storage** + +* [alpha] The LocalPersistentVolumes alpha feature now also requires the VolumeScheduling alpha feature. This is a breaking change, and the following changes are required: + * The VolumeScheduling feature gate must also be enabled on kube-scheduler and kube-controller-manager components. + * The NoVolumeNodeConflict predicate has been removed. For non-default schedulers, update your scheduler policy. + * The CheckVolumeBinding predicate must be enabled in non-default schedulers. ([#55039](https://github.com/kubernetes/kubernetes/pull/55039),[ @msau42](https://github.com/msau42)) + +### **OpenStack** + +* Remove the LbaasV1 of OpenStack cloud provider, currently only support LbaasV2. ([#52717](https://github.com/kubernetes/kubernetes/pull/52717),[ @FengyunPan](https://github.com/FengyunPan)) + +## Known Issues + +This section contains a list of known issues reported in Kubernetes 1.9 release. The content is populated from the [v1.9.x known issues and FAQ accumulator](https://github.com/kubernetes/kubernetes/issues/57159](https://github.com/kubernetes/kubernetes/issues/57159). + +* If you are adding Windows Server Virtual Machines as nodes to your Kubernetes environment, there is a compatibility issue with certain virtualization products. Specifically the Windows version of the kubelet.exe calls `GetPhysicallyInstalledSystemMemory` to get the physical memory installed on Windows machines and reports it as part of node metrics to heapster. This API call fails for VMware and VirtualBox virtualization environments. This issue is not present in bare metal Windows deployments, in Hyper-V, or on some of the popular public cloud providers. + +* If you run `kubectl get po` while the API server in unreachable, a misleading error is returned: `the server doesn't have a resource type "po"`. To work around this issue, specify the full resource name in the command instead of the abbreviation: `kubectl get pods`. This issue will be fixed in a future release. + + For more information, see [#57198](https://github.com/kubernetes/kubernetes/issues/57198). + +* Mutating and validating webhook configurations are continuously polled by the API server (once per second). This issue will be fixed in a future release. + + For more information, see [#56357](https://github.com/kubernetes/kubernetes/issues/56357). + +* Audit logging is slow because writes to the log are performed synchronously with requests to the log. This issue will be fixed in a future release. + + For more information, see [#53006](https://github.com/kubernetes/kubernetes/issues/53006). + +* Custom Resource Definitions (CRDs) are not properly deleted under certain conditions. This issue will be fixed in a future release. + + For more information, see [#56348](https://github.com/kubernetes/kubernetes/issues/56348). + +* API server times out after performing a rolling update of the etcd cluster. This issue will be fixed in a future release. + + For more information, see [#47131](https://github.com/kubernetes/kubernetes/issues/47131) + +* If a namespaced resource is owned by a cluster scoped resource, and the namespaced dependent is processed before the cluster scoped owner has ever been observed by the garbage collector, the dependent will be erroneously deleted. + + For more information, see [#54940](https://github.com/kubernetes/kubernetes/issues/54940) + +## Deprecations + +This section provides an overview of deprecated API versions, options, flags, and arguments. Deprecated means that we intend to remove the capability from a future release. After removal, the capability will no longer work. The sections are organized by SIGs. + +### **API Machinery** + +* The kube-apiserver `--etcd-quorum-read` flag is deprecated and the ability to switch off quorum read will be removed in a future release. ([#53795](https://github.com/kubernetes/kubernetes/pull/53795),[ @xiangpengzhao](https://github.com/xiangpengzhao)) +* The `/ui` redirect in kube-apiserver is deprecated and will be removed in Kubernetes 1.10. ([#53046](https://github.com/kubernetes/kubernetes/pull/53046), [@maciaszczykm](https://github.com/maciaszczykm)) +* `etcd2` as a backend is deprecated and support will be removed in Kubernetes 1.13 or 1.14. + +### **Auth** + +* Default controller-manager options for `--cluster-signing-cert-file` and `--cluster-signing-key-file` are deprecated and will be removed in a future release. ([#54495](https://github.com/kubernetes/kubernetes/pull/54495),[ @mikedanese](https://github.com/mikedanese)) +* RBAC objects are now stored in etcd in v1 format. After upgrading to 1.9, ensure all RBAC objects (Roles, RoleBindings, ClusterRoles, ClusterRoleBindings) are at v1. v1alpha1 support is deprecated and will be removed in a future release. ([#52950](https://github.com/kubernetes/kubernetes/pull/52950),[ @liggitt](https://github.com/liggitt)) + +### **Cluster Lifecycle** + +* kube-apiserver: `--ssh-user` and `--ssh-keyfile` are now deprecated and will be removed in a future release. Users of SSH tunnel functionality in Google Container Engine for the Master -> Cluster communication should plan alternate methods for bridging master and node networks. ([#54433](https://github.com/kubernetes/kubernetes/pull/54433),[ @dims](https://github.com/dims)) +* The kubeadm `--skip-preflight-checks` flag is now deprecated and will be removed in a future release. +* If you are using the cloud provider API to determine the external host address of the apiserver, set `--external-hostname` explicitly instead. The cloud provider detection has been deprecated and will be removed in the future ([#54516](https://github.com/kubernetes/kubernetes/pull/54516),[ @dims](https://github.com/dims)) + +### **Network** + +* The NetworkPolicy extensions/v1beta1 API is now deprecated and will be removed in a future release. This functionality has been migrated to a dedicated v1 API - networking.k8s.io/v1. v1beta1 Network Policies can be upgraded to the v1 API with the [cluster/update-storage-objects.sh script](https://github.com/danwinship/kubernetes/blob/master/cluster/update-storage-objects.sh). Documentation can be found [here](https://kubernetes.io/docs/concepts/services-networking/network-policies/). ([#56425](https://github.com/kubernetes/kubernetes/pull/56425), [@cmluciano](https://github.com/cmluciano)) + +### **Storage** + +* The `volume.beta.kubernetes.io/storage-class` annotation is deprecated. It will be removed in a future release. For the StorageClass API object, use v1, and in place of the annotation use `v1.PersistentVolumeClaim.Spec.StorageClassName` and `v1.PersistentVolume.Spec.StorageClassName` instead. ([#53580](https://github.com/kubernetes/kubernetes/pull/53580),[ @xiangpengzhao](https://github.com/xiangpengzhao)) + +### **Scheduling** + +* The kube-scheduler command now supports a `--config` flag, which is the location of a file containing a serialized scheduler configuration. Most other kube-scheduler flags are now deprecated. ([#52562](https://github.com/kubernetes/kubernetes/pull/52562),[ @ironcladlou](https://github.com/ironcladlou)) + +### **Node** + +* The kubelet's `--enable-custom-metrics` flag is now deprecated. ([#54154](https://github.com/kubernetes/kubernetes/pull/54154),[ @mtaufen](https://github.com/mtaufen)) + +## Notable Changes + +### **Workloads API (apps/v1)** + +As announced with the release of version 1.8, the Kubernetes Workloads API is at v1 in version 1.9. This API consists of the DaemonSet, Deployment, ReplicaSet and StatefulSet kinds. + +### **API Machinery** + +#### **Admission Control** + +* Admission webhooks are now in beta, and include the following: + * Mutation support for admission webhooks. ([#54892](https://github.com/kubernetes/kubernetes/pull/54892),[ @caesarxuchao](https://github.com/caesarxuchao)) + * Webhook admission now takes a config file that describes how to authenticate to webhook servers ([#54414](https://github.com/kubernetes/kubernetes/pull/54414),[ @deads2k](https://github.com/deads2k)) + * The dynamic admission webhook now supports a URL in addition to a service reference, to accommodate out-of-cluster webhooks. ([#54889](https://github.com/kubernetes/kubernetes/pull/54889),[ @lavalamp](https://github.com/lavalamp)) + * Added `namespaceSelector` to `externalAdmissionWebhook` configuration to allow applying webhooks only to objects in the namespaces that have matching labels. ([#54727](https://github.com/kubernetes/kubernetes/pull/54727),[ @caesarxuchao](https://github.com/caesarxuchao)) +* Metrics are added for monitoring admission plugins, including the new dynamic (webhook-based) ones. ([#55183](https://github.com/kubernetes/kubernetes/pull/55183),[ @jpbetz](https://github.com/jpbetz)) +* The PodSecurityPolicy annotation kubernetes.io/psp on pods is set only once on create. ([#55486](https://github.com/kubernetes/kubernetes/pull/55486),[ @sttts](https://github.com/sttts)) + +#### **API & API server** + +* Fixed a bug related to discovery information for scale subresources in the apps API group ([#54683](https://github.com/kubernetes/kubernetes/pull/54683),[ @liggitt](https://github.com/liggitt)) +* Fixed a bug that prevented client-go metrics from being registered in Prometheus. This bug affected multiple components. ([#53434](https://github.com/kubernetes/kubernetes/pull/53434),[ @crassirostris](https://github.com/crassirostris)) + +#### **Audit** + +* Fixed a bug so that `kube-apiserver` now waits for open connections to finish before exiting. This fix provides graceful shutdown and ensures that the audit backend no longer drops events on shutdown. ([#53695](https://github.com/kubernetes/kubernetes/pull/53695),[ @hzxuzhonghu](https://github.com/hzxuzhonghu)) +* Webhooks now always retry sending if a connection reset error is returned. ([#53947](https://github.com/kubernetes/kubernetes/pull/53947),[ @crassirostris](https://github.com/crassirostris)) + +#### **Custom Resources** + +* Validation of resources defined by a Custom Resource Definition (CRD) is now in beta ([#54647](https://github.com/kubernetes/kubernetes/pull/54647),[ @colemickens](https://github.com/colemickens)) +* An example CRD controller has been added, at [github.com/kubernetes/sample-controller](github.com/kubernetes/sample-controller). ([#52753](https://github.com/kubernetes/kubernetes/pull/52753),[ @munnerz](https://github.com/munnerz)) +* Custom resources served by CustomResourceDefinition objects now support field selectors for `metadata.name` and `metadata.namespace`. Also fixed an issue with watching a single object; earlier versions could watch only a collection, and so a watch on an instance would fail. ([#53345](https://github.com/kubernetes/kubernetes/pull/53345),[ @ncdc](https://github.com/ncdc)) + +#### **Other** + +* `kube-apiserver` now runs with the default value for `service-cluster-ip-range` ([#52870](https://github.com/kubernetes/kubernetes/pull/52870),[ @jennybuckley](https://github.com/jennybuckley)) +* Add `--etcd-compaction-interval` to apiserver for controlling request of compaction to etcd3 from apiserver. ([#51765](https://github.com/kubernetes/kubernetes/pull/51765),[ @mitake](https://github.com/mitake)) +* The httpstream/spdy calls now support CIDR notation for NO_PROXY ([#54413](https://github.com/kubernetes/kubernetes/pull/54413),[ @kad](https://github.com/kad)) +* Code generation for CRD and User API server types is improved with the addition of two new scripts to k8s.io/code-generator: `generate-groups.sh` and `generate-internal-groups.sh`. ([#52186](https://github.com/kubernetes/kubernetes/pull/52186),[ @sttts](https://github.com/sttts)) +* [beta] Flag `--chunk-size={SIZE}` is added to `kubectl get` to customize the number of results returned in large lists of resources. This reduces the perceived latency of managing large clusters because the server returns the first set of results to the client much more quickly. Pass 0 to disable this feature.([#53768](https://github.com/kubernetes/kubernetes/pull/53768),[ @smarterclayton](https://github.com/smarterclayton)) +* [beta] API chunking via the limit and continue request parameters is promoted to beta in this release. Client libraries using the Informer or ListWatch types will automatically opt in to chunking. ([#52949](https://github.com/kubernetes/kubernetes/pull/52949),[ @smarterclayton](https://github.com/smarterclayton)) +* The `--etcd-quorum-read` flag now defaults to true to ensure correct operation with HA etcd clusters. This flag is deprecated and the flag will be removed in future versions, as well as the ability to turn off this functionality. ([#53717](https://github.com/kubernetes/kubernetes/pull/53717),[ @liggitt](https://github.com/liggitt)) +* Add events.k8s.io api group with v1beta1 API containing redesigned event type. ([#49112](https://github.com/kubernetes/kubernetes/pull/49112),[ @gmarek](https://github.com/gmarek)) +* Fixed a bug where API discovery failures were crashing the kube controller manager via the garbage collector. ([#55259](https://github.com/kubernetes/kubernetes/pull/55259),[ @ironcladlou](https://github.com/ironcladlou)) +* `conversion-gen` is now usable in a context without a vendored k8s.io/kubernetes. The Kubernetes core API is removed from `default extra-peer-dirs`. ([#54394](https://github.com/kubernetes/kubernetes/pull/54394),[ @sttts](https://github.com/sttts)) +* Fixed a bug where the `client-gen` tag for code-generator required a newline between a comment block and a statement. tag shortcomings when newline is omitted ([#53893](https://github.com/kubernetes/kubernetes/pull/53893)) ([#55233](https://github.com/kubernetes/kubernetes/pull/55233),[ @sttts](https://github.com/sttts)) +* The Apiserver proxy now rewrites the URL when a service returns an absolute path with the request's host. ([#52556](https://github.com/kubernetes/kubernetes/pull/52556),[ @roycaihw](https://github.com/roycaihw)) +* The gRPC library is updated to pick up data race fix ([#53124](https://github.com/kubernetes/kubernetes/pull/53124)) ([#53128](https://github.com/kubernetes/kubernetes/pull/53128),[ @dixudx](https://github.com/dixudx)) +* Fixed server name verification of aggregated API servers and webhook admission endpoints ([#56415](https://github.com/kubernetes/kubernetes/pull/56415),[ @liggitt](https://github.com/liggitt)) + +### **Apps** + +* The `kubernetes.io/created-by` annotation is no longer added to controller-created objects. Use the `metadata.ownerReferences` item with controller set to `true` to determine which controller, if any, owns an object. ([#54445](https://github.com/kubernetes/kubernetes/pull/54445),[ @crimsonfaith91](https://github.com/crimsonfaith91)) +* StatefulSet controller now creates a label for each Pod in a StatefulSet. The label is `statefulset.kubernetes.io/pod-name`, where `pod-name` = the name of the Pod. This allows users to create a Service per Pod to expose a connection to individual Pods. ([#55329](https://github.com/kubernetes/kubernetes/pull/55329),[ @kow3ns](https://github.com/kow3ns)) +* DaemonSet status includes a new field named `conditions`, making it consistent with other workloads controllers. ([#55272](https://github.com/kubernetes/kubernetes/pull/55272),[ @janetkuo](https://github.com/janetkuo)) +* StatefulSet status now supports conditions, making it consistent with other core controllers in v1 ([#55268](https://github.com/kubernetes/kubernetes/pull/55268),[ @foxish](https://github.com/foxish)) +* The default garbage collection policy for Deployment, DaemonSet, StatefulSet, and ReplicaSet has changed from OrphanDependents to DeleteDependents when the deletion is requested through an `apps/v1` endpoint. ([#55148](https://github.com/kubernetes/kubernetes/pull/55148),[ @dixudx](https://github.com/dixudx)) + * Clients using older endpoints will be unaffected. This change is only at the REST API level and is independent of the default behavior of particular clients (e.g. this does not affect the default for the kubectl `--cascade` flag). + * If you upgrade your client-go libs and use the `AppsV1()` interface, please note that the default garbage collection behavior is changed. + +### **Auth** + +#### **Audit** + +* RequestReceivedTimestamp and StageTimestamp are added to audit events ([#52981](https://github.com/kubernetes/kubernetes/pull/52981),[ @CaoShuFeng](https://github.com/CaoShuFeng)) +* Advanced audit policy now supports a policy wide omitStage ([#54634](https://github.com/kubernetes/kubernetes/pull/54634),[ @CaoShuFeng](https://github.com/CaoShuFeng)) + +#### **RBAC** + +* New permissions have been added to default RBAC roles ([#52654](https://github.com/kubernetes/kubernetes/pull/52654),[ @liggitt](https://github.com/liggitt)): + * The default admin and edit roles now include read/write permissions + * The view role includes read permissions on poddisruptionbudget.policy resources. +* RBAC rules can now match the same subresource on any resource using the form `*/(subresource)`. For example, `*/scale` matches requests to `replicationcontroller/scale`. ([#53722](https://github.com/kubernetes/kubernetes/pull/53722),[ @deads2k](https://github.com/deads2k)) +* The RBAC bootstrapping policy now allows authenticated users to create selfsubjectrulesreviews. ([#56095](https://github.com/kubernetes/kubernetes/pull/56095),[ @ericchiang](https://github.com/ericchiang)) +* RBAC ClusterRoles can now select other roles to aggregate. ([#54005](https://github.com/kubernetes/kubernetes/pull/54005),[ @deads2k](https://github.com/deads2k)) +* Fixed an issue with RBAC reconciliation that caused duplicated subjects in some bootstrapped RoleBinding objects on each restart of the API server. ([#53239](https://github.com/kubernetes/kubernetes/pull/53239),[ @enj](https://github.com/enj)) + +#### **Other** + +* Pod Security Policy can now manage access to specific FlexVolume drivers ([#53179](https://github.com/kubernetes/kubernetes/pull/53179),[ @wanghaoran1988](https://github.com/wanghaoran1988)) +* Audit policy files without apiVersion and kind are treated as invalid. ([#54267](https://github.com/kubernetes/kubernetes/pull/54267),[ @ericchiang](https://github.com/ericchiang)) +* Fixed a bug that where forbidden errors were encountered when accessing ReplicaSet and DaemonSets objects via the apps API group. ([#54309](https://github.com/kubernetes/kubernetes/pull/54309),[ @liggitt](https://github.com/liggitt)) +* Improved PodSecurityPolicy admission latency. ([#55643](https://github.com/kubernetes/kubernetes/pull/55643),[ @tallclair](https://github.com/tallclair)) +* kube-apiserver: `--oidc-username-prefix` and `--oidc-group-prefix` flags are now correctly enabled. ([#56175](https://github.com/kubernetes/kubernetes/pull/56175),[ @ericchiang](https://github.com/ericchiang)) +* If multiple PodSecurityPolicy objects allow a submitted pod, priority is given to policies that do not require default values for any fields in the pod spec. If default values are required, the first policy ordered by name that allows the pod is used. ([#52849](https://github.com/kubernetes/kubernetes/pull/52849),[ @liggitt](https://github.com/liggitt)) +* A new controller automatically cleans up Certificate Signing Requests that are Approved and Issued, or Denied. ([#51840](https://github.com/kubernetes/kubernetes/pull/51840),[ @jcbsmpsn](https://github.com/jcbsmpsn)) +* PodSecurityPolicies have been added for all in-tree cluster addons ([#55509](https://github.com/kubernetes/kubernetes/pull/55509),[ @tallclair](https://github.com/tallclair)) + +#### **GCE** + +* Added support for PodSecurityPolicy on GCE: `ENABLE_POD_SECURITY_POLICY=true` enables the admission controller, and installs policies for default addons. ([#52367](https://github.com/kubernetes/kubernetes/pull/52367),[ @tallclair](https://github.com/tallclair)) + +### **Autoscaling** + +* HorizontalPodAutoscaler objects now properly functions on scalable resources in any API group. Fixed by adding a polymorphic scale client. ([#53743](https://github.com/kubernetes/kubernetes/pull/53743),[ @DirectXMan12](https://github.com/DirectXMan12)) +* Fixed a set of minor issues with Cluster Autoscaler 1.0.1 ([#54298](https://github.com/kubernetes/kubernetes/pull/54298),[ @mwielgus](https://github.com/mwielgus)) +* HPA tolerance is now configurable by setting the `horizontal-pod-autoscaler-tolerance` flag. ([#52275](https://github.com/kubernetes/kubernetes/pull/52275),[ @mattjmcnaughton](https://github.com/mattjmcnaughton)) +* Fixed a bug that allowed the horizontal pod autoscaler to allocate more `desiredReplica` objects than `maxReplica` objects in certain instances. ([#53690](https://github.com/kubernetes/kubernetes/pull/53690),[ @mattjmcnaughton](https://github.com/mattjmcnaughton)) + +### **AWS** + +* Nodes can now use instance types (such as C5) that use NVMe. ([#56607](https://github.com/kubernetes/kubernetes/pull/56607), [@justinsb](https://github.com/justinsb)) +* Nodes are now unreachable if volumes are stuck in the attaching state. Implemented by applying a taint to the node. ([#55558](https://github.com/kubernetes/kubernetes/pull/55558),[ @gnufied](https://github.com/gnufied)) +* Volumes are now checked for available state before attempting to attach or delete a volume in EBS. ([#55008](https://github.com/kubernetes/kubernetes/pull/55008),[ @gnufied](https://github.com/gnufied)) +* Fixed a bug where error log messages were breaking into two lines. ([#49826](https://github.com/kubernetes/kubernetes/pull/49826),[ @dixudx](https://github.com/dixudx)) +* Fixed a bug so that volumes are now detached from stopped nodes. ([#55893](https://github.com/kubernetes/kubernetes/pull/55893),[ @gnufied](https://github.com/gnufied)) +* You can now override the health check parameters for AWS ELBs by specifying annotations on the corresponding service. The new annotations are: `healthy-threshold`, `unhealthy-threshold`, `timeout`, `interval`. The prefix for all annotations is `service.beta.kubernetes.io/aws-load-balancer-healthcheck-`. ([#56024](https://github.com/kubernetes/kubernetes/pull/56024),[ @dimpavloff](https://github.com/dimpavloff)) +* Fixed a bug so that AWS ECR credentials are now supported in the China region. ([#50108](https://github.com/kubernetes/kubernetes/pull/50108),[ @zzq889](https://github.com/zzq889)) +* Added Amazon NLB support ([#53400](https://github.com/kubernetes/kubernetes/pull/53400),[ @micahhausler](https://github.com/micahhausler)) +* Additional annotations are now properly set or updated for AWS load balancers ([#55731](https://github.com/kubernetes/kubernetes/pull/55731),[ @georgebuckerfield](https://github.com/georgebuckerfield)) +* AWS SDK is updated to version 1.12.7 ([#53561](https://github.com/kubernetes/kubernetes/pull/53561),[ @justinsb](https://github.com/justinsb)) + +### **Azure** + +* Fixed several issues with properly provisioning Azure disk storage ([#55927](https://github.com/kubernetes/kubernetes/pull/55927),[ @andyzhangx](https://github.com/andyzhangx)) +* A new service annotation `service.beta.kubernetes.io/azure-dns-label-name` now sets the Azure DNS label for a public IP address. ([#47849](https://github.com/kubernetes/kubernetes/pull/47849),[ @tomerf](https://github.com/tomerf)) +* Support for GetMountRefs function added; warning messages no longer displayed. ([#54670](https://github.com/kubernetes/kubernetes/pull/54670), [#52401](https://github.com/kubernetes/kubernetes/pull/52401),[ @andyzhangx](https://github.com/andyzhangx)) +* Fixed an issue where an Azure PersistentVolume object would crash because the value of `volumeSource.ReadOnly` was set to nil. ([#54607](https://github.com/kubernetes/kubernetes/pull/54607),[ @andyzhangx](https://github.com/andyzhangx)) +* Fixed an issue with Azure disk mount failures on CoreOS and some other distros ([#54334](https://github.com/kubernetes/kubernetes/pull/54334),[ @andyzhangx](https://github.com/andyzhangx)) +* GRS, RAGRS storage account types are now supported for Azure disks. ([#55931](https://github.com/kubernetes/kubernetes/pull/55931),[ @andyzhangx](https://github.com/andyzhangx)) +* Azure NSG rules are now restricted so that external access is allowed only to the load balancer IP. ([#54177](https://github.com/kubernetes/kubernetes/pull/54177),[ @itowlson](https://github.com/itowlson)) +* Azure NSG rules can be consolidated to reduce the likelihood of hitting Azure resource limits (available only in regions where the Augmented Security Groups preview is available). ([#55740](https://github.com/kubernetes/kubernetes/pull/55740), [@itowlson](https://github.com/itowlson)) +* The Azure SDK is upgraded to v11.1.1. ([#54971](https://github.com/kubernetes/kubernetes/pull/54971),[ @itowlson](https://github.com/itowlson)) +* You can now create Windows mount paths ([#51240](https://github.com/kubernetes/kubernetes/pull/51240),[ @andyzhangx](https://github.com/andyzhangx)) +* Fixed a controller manager crash issue on a manually created k8s cluster. ([#53694](https://github.com/kubernetes/kubernetes/pull/53694),[ @andyzhangx](https://github.com/andyzhangx)) +* Azure-based clusters now support unlimited mount points. ([#54668](https://github.com/kubernetes/kubernetes/pull/54668)) ([#53629](https://github.com/kubernetes/kubernetes/pull/53629),[ @andyzhangx](https://github.com/andyzhangx)) +* Load balancer reconciliation now considers NSG rules based not only on Name, but also on Protocol, SourcePortRange, DestinationPortRange, SourceAddressPrefix, DestinationAddressPrefix, Access, and Direction. This change makes it possible to update NSG rules under more conditions. ([#55752](https://github.com/kubernetes/kubernetes/pull/55752),[ @kevinkim9264](https://github.com/kevinkim9264)) +* Custom mountOptions for the azurefile StorageClass object are now respected. Specifically, `dir_mode` and `file_mode` can now be customized. ([#54674](https://github.com/kubernetes/kubernetes/pull/54674),[ @andyzhangx](https://github.com/andyzhangx)) +* Azure Load Balancer Auto Mode: Services can be annotated to allow auto selection of available load balancers and to provide specific availability sets that host the load balancers (for example, `service.beta.kubernetes.io/azure-load-balancer-mode=auto|as1,as2...`) + +### **CLI** + +#### **Kubectl** + +* `kubectl cp` can now copy a remote file into a local directory. ([#46762](https://github.com/kubernetes/kubernetes/pull/46762),[ @bruceauyeung](https://github.com/bruceauyeung)) +* `kubectl cp` now honors destination names for directories. A complete directory is now copied; in previous versions only the file contents were copied. ([#51215](https://github.com/kubernetes/kubernetes/pull/51215),[ @juanvallejo](https://github.com/juanvallejo)) +* You can now use `kubectl get` with a fieldSelector. ([#50140](https://github.com/kubernetes/kubernetes/pull/50140),[ @dixudx](https://github.com/dixudx)) +* Secret data containing Docker registry auth objects is now generated using the config.json format ([#53916](https://github.com/kubernetes/kubernetes/pull/53916),[ @juanvallejo](https://github.com/juanvallejo)) +* `kubectl apply` now calculates the diff between the current and new configurations based on the OpenAPI spec. If the OpenAPI spec is not available, it falls back to baked-in types. ([#51321](https://github.com/kubernetes/kubernetes/pull/51321),[ @mengqiy](https://github.com/mengqiy)) +* `kubectl explain` now explains `apiservices` and `customresourcedefinition`. (Updated to use OpenAPI instead of Swagger 1.2.) ([#53228](https://github.com/kubernetes/kubernetes/pull/53228),[ @apelisse](https://github.com/apelisse)) +* `kubectl get` now uses OpenAPI schema extensions by default to select columns for custom types. ([#53483](https://github.com/kubernetes/kubernetes/pull/53483),[ @apelisse](https://github.com/apelisse)) +* kubectl `top node` now sorts by name and `top pod` sorts by namespace. Fixed a bug where results were inconsistently sorted. ([#53560](https://github.com/kubernetes/kubernetes/pull/53560),[ @dixudx](https://github.com/dixudx)) +* Added --dry-run option to kubectl drain. ([#52440](https://github.com/kubernetes/kubernetes/pull/52440),[ @juanvallejo](https://github.com/juanvallejo)) +* Kubectl now outputs <none> for columns specified by -o custom-columns but not found in object, rather than "xxx is not found" ([#51750](https://github.com/kubernetes/kubernetes/pull/51750),[ @jianhuiz](https://github.com/jianhuiz)) +* `kubectl create pdb` no longer sets the min-available field by default. ([#53047](https://github.com/kubernetes/kubernetes/pull/53047),[ @yuexiao-wang](https://github.com/yuexiao-wang)) +* The canonical pronunciation of kubectl is "cube control". +* Added --raw to kubectl create to POST using the normal transport. ([#54245](https://github.com/kubernetes/kubernetes/pull/54245),[ @deads2k](https://github.com/deads2k)) +* Added kubectl `create priorityclass` subcommand ([#54858](https://github.com/kubernetes/kubernetes/pull/54858),[ @wackxu](https://github.com/wackxu)) +* Fixed an issue where `kubectl set` commands occasionally encountered conversion errors for ReplicaSet and DaemonSet objects ([#53158](https://github.com/kubernetes/kubernetes/pull/53158),[ @liggitt](https://github.com/liggitt)) + +### **Cluster Lifecycle** + +#### **API Server** + +* [alpha] Added an `--endpoint-reconciler-type` command-line argument to select the endpoint reconciler to use. The default is to use the 'master-count' reconciler which is the default for 1.9 and in use prior to 1.9. The 'lease' reconciler stores endpoints within the storage api for better cleanup of deleted (or removed) API servers. The 'none' reconciler is a no-op reconciler, which can be used in self-hosted environments. ([#51698](https://github.com/kubernetes/kubernetes/pull/51698), [@rphillips](https://github.com/rphillips)) + +#### **Cloud Provider Integration** + +* Added `cloud-controller-manager` to `hyperkube`. This is useful as a number of deployment tools run all of the kubernetes components from the `hyperkube `image/binary. It also makes testing easier as a single binary/image can be built and pushed quickly. ([#54197](https://github.com/kubernetes/kubernetes/pull/54197),[ @colemickens](https://github.com/colemickens)) +* Added the concurrent service sync flag to the Cloud Controller Manager to allow changing the number of workers. (`--concurrent-service-syncs`) ([#55561](https://github.com/kubernetes/kubernetes/pull/55561),[ @jhorwit2](https://github.com/jhorwit2)) +* kubelet's --cloud-provider flag no longer defaults to "auto-detect". If you want cloud-provider support in kubelet, you must set a specific cloud-provider explicitly. ([#53573](https://github.com/kubernetes/kubernetes/pull/53573),[ @dims](https://github.com/dims)) + +#### **Kubeadm** + +* kubeadm health checks can now be skipped with `--ignore-preflight-errors`; the `--skip-preflight-checks` flag is now deprecated and will be removed in a future release. ([#56130](https://github.com/kubernetes/kubernetes/pull/56130),[ @anguslees](https://github.com/anguslees)) ([#56072](https://github.com/kubernetes/kubernetes/pull/56072),[ @kad](https://github.com/kad)) +* You now have the option to use CoreDNS instead of KubeDNS. To install CoreDNS instead of kube-dns, set CLUSTER_DNS_CORE_DNS to 'true'. This support is experimental. ([#52501](https://github.com/kubernetes/kubernetes/pull/52501),[ @rajansandeep](https://github.com/rajansandeep)) ([#55728](https://github.com/kubernetes/kubernetes/pull/55728),[ @rajansandeep](https://github.com/rajansandeep)) +* Added --print-join-command flag for kubeadm token create. ([#56185](https://github.com/kubernetes/kubernetes/pull/56185),[ @mattmoyer](https://github.com/mattmoyer)) +* Added a new --etcd-upgrade keyword to kubeadm upgrade apply. When this keyword is specified, etcd's static pod gets upgraded to the etcd version officially recommended for a target kubernetes release. ([#55010](https://github.com/kubernetes/kubernetes/pull/55010),[ @sbezverk](https://github.com/sbezverk)) +* Kubeadm now supports Kubelet Dynamic Configuration on an alpha level. ([#55803](https://github.com/kubernetes/kubernetes/pull/55803),[ @xiangpengzhao](https://github.com/xiangpengzhao)) +* Added support for adding a Windows node ([#53553](https://github.com/kubernetes/kubernetes/pull/53553),[ @bsteciuk](https://github.com/bsteciuk)) + +#### **Juju** + +* Added support for SAN entries in the master node certificate. ([#54234](https://github.com/kubernetes/kubernetes/pull/54234),[ @hyperbolic2346](https://github.com/hyperbolic2346)) +* Add extra-args configs for scheduler and controller-manager to kubernetes-master charm ([#55185](https://github.com/kubernetes/kubernetes/pull/55185),[ @Cynerva](https://github.com/Cynerva)) +* Add support for RBAC ([#53820](https://github.com/kubernetes/kubernetes/pull/53820),[ @ktsakalozos](https://github.com/ktsakalozos)) +* Fixed iptables FORWARD policy for Docker 1.13 in kubernetes-worker charm ([#54796](https://github.com/kubernetes/kubernetes/pull/54796),[ @Cynerva](https://github.com/Cynerva)) +* Upgrading the kubernetes-master units now results in staged upgrades just like the kubernetes-worker nodes. Use the upgrade action in order to continue the upgrade process on each unit such as juju run-action kubernetes-master/0 upgrade ([#55990](https://github.com/kubernetes/kubernetes/pull/55990),[ @hyperbolic2346](https://github.com/hyperbolic2346)) +* Added extra_sans config option to kubeapi-load-balancer charm. This allows the user to specify extra SAN entries on the certificate generated for the load balancer. ([#54947](https://github.com/kubernetes/kubernetes/pull/54947),[ @hyperbolic2346](https://github.com/hyperbolic2346)) +* Added extra-args configs to kubernetes-worker charm ([#55334](https://github.com/kubernetes/kubernetes/pull/55334),[ @Cynerva](https://github.com/Cynerva)) + +#### **Other** + +* Base images have been bumped to Debian Stretch (9) ([#52744](https://github.com/kubernetes/kubernetes/pull/52744),[ @rphillips](https://github.com/rphillips)) +* Upgraded to go1.9. ([#51375](https://github.com/kubernetes/kubernetes/pull/51375),[ @cblecker](https://github.com/cblecker)) +* Add-on manager now supports HA masters. ([#55466](https://github.com/kubernetes/kubernetes/pull/55466),[ #55782](https://github.com/x13n),[ @x13n](https://github.com/x13n)) +* Hyperkube can now run from a non-standard path. ([#54570](https://github.com/kubernetes/kubernetes/pull/54570)) + +#### **GCP** + +* The service account made available on your nodes is now configurable. ([#52868](https://github.com/kubernetes/kubernetes/pull/52868),[ @ihmccreery](https://github.com/ihmccreery)) +* GCE nodes with NVIDIA GPUs attached now expose nvidia.com/gpu as a resource instead of alpha.kubernetes.io/nvidia-gpu. ([#54826](https://github.com/kubernetes/kubernetes/pull/54826),[ @mindprince](https://github.com/mindprince)) +* Docker's live-restore on COS/ubuntu can now be disabled ([#55260](https://github.com/kubernetes/kubernetes/pull/55260),[ @yujuhong](https://github.com/yujuhong)) +* Metadata concealment is now controlled by the ENABLE_METADATA_CONCEALMENT env var. See cluster/gce/config-default.sh for more info. ([#54150](https://github.com/kubernetes/kubernetes/pull/54150),[ @ihmccreery](https://github.com/ihmccreery)) +* Masquerading rules are now added by default to GCE/GKE ([#55178](https://github.com/kubernetes/kubernetes/pull/55178),[ @dnardo](https://github.com/dnardo)) +* Fixed master startup issues with concurrent iptables invocations. ([#55945](https://github.com/kubernetes/kubernetes/pull/55945),[ @x13n](https://github.com/x13n)) +* Fixed issue deleting internal load balancers when the firewall resource may not exist. ([#53450](https://github.com/kubernetes/kubernetes/pull/53450),[ @nicksardo](https://github.com/nicksardo)) + +### **Instrumentation** + +#### **Audit** + +* Adjust batching audit webhook default parameters: increase queue size, batch size, and initial backoff. Add throttling to the batching audit webhook. Default rate limit is 10 QPS. ([#53417](https://github.com/kubernetes/kubernetes/pull/53417),[ @crassirostris](https://github.com/crassirostris)) + * These parameters are also now configurable. ([#56638](https://github.com/kubernetes/kubernetes/pull/56638), [@crassirostris](https://github.com/crassirostris)) + +#### **Other** + +* Fix a typo in prometheus-to-sd configuration, that drops some stackdriver metrics. ([#56473](https://github.com/kubernetes/kubernetes/pull/56473),[ @loburm](https://github.com/loburm)) +* [fluentd-elasticsearch addon] Elasticsearch and Kibana are updated to version 5.6.4 ([#55400](https://github.com/kubernetes/kubernetes/pull/55400),[ @mrahbar](https://github.com/mrahbar)) +* fluentd now supports CRI log format. ([#54777](https://github.com/kubernetes/kubernetes/pull/54777),[ @Random-Liu](https://github.com/Random-Liu)) +* Bring all prom-to-sd container to the same image version ([#54583](https://github.com/kubernetes/kubernetes/pull/54583)) + * Reduce log noise produced by prometheus-to-sd, by bumping it to version 0.2.2. ([#54635](https://github.com/kubernetes/kubernetes/pull/54635),[ @loburm](https://github.com/loburm)) +* [fluentd-elasticsearch addon] Elasticsearch service name can be overridden via env variable ELASTICSEARCH_SERVICE_NAME ([#54215](https://github.com/kubernetes/kubernetes/pull/54215),[ @mrahbar](https://github.com/mrahbar)) + +### **Multicluster** + +#### **Federation** + +* Kubefed init now supports --imagePullSecrets and --imagePullPolicy, making it possible to use private registries. ([#50740](https://github.com/kubernetes/kubernetes/pull/50740),[ @dixudx](https://github.com/dixudx)) +* Updated cluster printer to enable --show-labels ([#53771](https://github.com/kubernetes/kubernetes/pull/53771),[ @dixudx](https://github.com/dixudx)) +* Kubefed init now supports --nodeSelector, enabling you to determine on what node the controller will be installed. ([#50749](https://github.com/kubernetes/kubernetes/pull/50749),[ @dixudx](https://github.com/dixudx)) + +### **Network** + +#### **IPv6** + +* [alpha] IPv6 support has been added. Notable IPv6 support details include: + * Support for IPv6-only Kubernetes cluster deployments. **<span style="text-decoration:underline;">Note:</span>** This feature does not provide dual-stack support. + * Support for IPv6 Kubernetes control and data planes. + * Support for Kubernetes IPv6 cluster deployments using kubeadm. + * Support for the iptables kube-proxy backend using ip6tables. + * Relies on CNI 0.6.0 binaries for IPv6 pod networking. + * Adds IPv6 support for kube-dns using SRV records. + * Caveats + * Only the CNI bridge and local-ipam plugins have been tested for the alpha release, although other CNI plugins do support IPv6. + * HostPorts are not supported. +* An IPv6 network mask for pod or cluster cidr network must be /66 or longer. For example: 2001:db1::/66, 2001:dead:beef::/76, 2001:cafe::/118 are supported. 2001:db1::/64 is not supported +* For details, see [the complete list of merged pull requests for IPv6 support](https://github.com/kubernetes/kubernetes/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Amerged+label%3Aarea%2Fipv6). + +#### **IPVS** + +* You can now use the --cleanup-ipvs flag to tell kube-proxy whether to flush all existing ipvs rules in on startup ([#56036](https://github.com/kubernetes/kubernetes/pull/56036),[ @m1093782566](https://github.com/m1093782566)) +* Graduate kube-proxy IPVS mode to beta. ([#56623](https://github.com/kubernetes/kubernetes/pull/56623), [@m1093782566](https://github.com/m1093782566)) + +#### **Kube-Proxy** + +* Added iptables rules to allow Pod traffic even when default iptables policy is to reject. ([#52569](https://github.com/kubernetes/kubernetes/pull/52569),[ @tmjd](https://github.com/tmjd)) +* You can once again use 0 values for conntrack min, max, max per core, tcp close wait timeout, and tcp established timeout; this functionality was broken in 1.8. ([#55261](https://github.com/kubernetes/kubernetes/pull/55261),[ @ncdc](https://github.com/ncdc)) + +#### **CoreDNS** + +* You now have the option to use CoreDNS instead of KubeDNS. To install CoreDNS instead of kube-dns, set CLUSTER_DNS_CORE_DNS to 'true'. This support is experimental. ([#52501](https://github.com/kubernetes/kubernetes/pull/52501),[ @rajansandeep](https://github.com/rajansandeep)) ([#55728](https://github.com/kubernetes/kubernetes/pull/55728),[ @rajansandeep](https://github.com/rajansandeep)) + +#### **Other** + +* Pod addresses will now be removed from the list of endpoints when the pod is in graceful termination. ([#54828](https://github.com/kubernetes/kubernetes/pull/54828),[ @freehan](https://github.com/freehan)) +* You can now use a new supported service annotation for AWS clusters, `service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy`, which lets you specify which [predefined AWS SSL policy](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-security-policy-table.html) you would like to use. ([#54507](https://github.com/kubernetes/kubernetes/pull/54507),[ @micahhausler](https://github.com/micahhausler)) +* Termination grace period for the calico/node add-on DaemonSet has been eliminated, reducing downtime during a rolling upgrade or deletion. ([#55015](https://github.com/kubernetes/kubernetes/pull/55015),[ @fasaxc](https://github.com/fasaxc)) +* Fixed bad conversion in host port chain name generating func which led to some unreachable host ports. ([#55153](https://github.com/kubernetes/kubernetes/pull/55153),[ @chenchun](https://github.com/chenchun)) +* Fixed IPVS availability check ([#51874](https://github.com/kubernetes/kubernetes/pull/51874),[ @vfreex](https://github.com/vfreex)) +* The output for kubectl describe networkpolicy * has been enhanced to be more useful. ([#46951](https://github.com/kubernetes/kubernetes/pull/46951),[ @aanm](https://github.com/aanm)) +* Kernel modules are now loaded automatically inside a kube-proxy pod ([#52003](https://github.com/kubernetes/kubernetes/pull/52003),[ @vfreex](https://github.com/vfreex)) +* Improve resilience by annotating kube-dns addon with podAntiAffinity to prefer scheduling on different nodes. ([#52193](https://github.com/kubernetes/kubernetes/pull/52193),[ @StevenACoffman](https://github.com/StevenACoffman)) +* [alpha] Added DNSConfig field to PodSpec. "None" mode for DNSPolicy is now supported. ([#55848](https://github.com/kubernetes/kubernetes/pull/55848),[ @MrHohn](https://github.com/MrHohn)) +* You can now add "options" to the host's /etc/resolv.conf (or --resolv-conf), and they will be copied into pod's resolv.conf when dnsPolicy is Default. Being able to customize options is important because it is common to leverage options to fine-tune the behavior of DNS client. ([#54773](https://github.com/kubernetes/kubernetes/pull/54773),[ @phsiao](https://github.com/phsiao)) +* Fixed a bug so that the service controller no longer retries if doNotRetry service update fails. ([#54184](https://github.com/kubernetes/kubernetes/pull/54184),[ @MrHohn](https://github.com/MrHohn)) +* Added --no-negcache flag to kube-dns to prevent caching of NXDOMAIN responses. ([#53604](https://github.com/kubernetes/kubernetes/pull/53604),[ @cblecker](https://github.com/cblecker)) + +### **Node** + +#### **Pod API** + +* A single value in metadata.annotations/metadata.labels can now be passed into the containers via the Downward API. ([#55902](https://github.com/kubernetes/kubernetes/pull/55902),[ @yguo0905](https://github.com/yguo0905)) +* Pods will no longer briefly transition to a "Pending" state during the deletion process. ([#54593](https://github.com/kubernetes/kubernetes/pull/54593),[ @dashpole](https://github.com/dashpole)) +* Added pod-level local ephemeral storage metric to the Summary API. Pod-level ephemeral storage reports the total filesystem usage for the containers and emptyDir volumes in the measured Pod. ([#55447](https://github.com/kubernetes/kubernetes/pull/55447),[ @jingxu97](https://github.com/jingxu97)) + +#### **Hardware Accelerators** + +* Kubelet now exposes metrics for NVIDIA GPUs attached to the containers. ([#55188](https://github.com/kubernetes/kubernetes/pull/55188),[ @mindprince](https://github.com/mindprince)) +* The device plugin Alpha API no longer supports returning artifacts per device as part of AllocateResponse. ([#53031](https://github.com/kubernetes/kubernetes/pull/53031),[ @vishh](https://github.com/vishh)) +* Fix to ignore extended resources that are not registered with kubelet during container resource allocation. ([#53547](https://github.com/kubernetes/kubernetes/pull/53547),[ @jiayingz](https://github.com/jiayingz)) + + +#### **Container Runtime** +* [alpha] [cri-tools](https://github.com/kubernetes-incubator/cri-tools): CLI and validation tools for CRI is now v1.0.0-alpha.0. This release mainly focuses on UX improvements. [[@feiskyer](https://github.com/feiskyer)] + * Make crictl command more user friendly and add more subcommands. + * Integrate with CRI verbose option to provide extra debug information. + * Update CRI to kubernetes v1.9. + * Bug fixes in validation test suites. +* [beta] [cri-containerd](https://github.com/kubernetes-incubator/cri-containerd): CRI implementation for containerd is now v1.0.0-beta.0, [[@Random-Liu](https://github.com/Random-Liu)] + * This release supports Kubernetes 1.9+ and containerd v1.0.0+. + * Pass all Kubernetes 1.9 e2e test, node e2e test and CRI validation tests. + * [Kube-up.sh integration](https://github.com/kubernetes-incubator/cri-containerd/blob/master/docs/kube-up.md). + * [Full crictl integration including CRI verbose option.](https://github.com/kubernetes-incubator/cri-containerd/blob/master/docs/crictl.md) + * Integration with cadvisor to provide better summary api support. +* [stable] [cri-o](https://github.com/kubernetes-incubator/cri-o): CRI implementation for OCI-based runtimes is now v1.9. [[@mrunalp](https://github.com/mrunalp)] + * Pass all the Kubernetes 1.9 end-to-end test suites and now gating PRs as well + * Pass all the CRI validation tests + * Release has been focused on bug fixes, stability and performance with runc and Clear Containers + * Minikube integration +* [stable] [frakti](https://github.com/kubernetes/frakti): CRI implementation for hypervisor-based runtimes is now v1.9. [[@resouer](https://github.com/resouer)] + * Added ARM64 release. Upgraded to CNI 0.6.0, added block device as Pod volume mode. Fixed CNI plugin compatibility. + * Passed all CRI validation conformance tests and node end-to-end conformance tests. +* [alpha] [rktlet](https://github.com/kubernetes-incubator/rktlet): CRI implementation for the rkt runtime is now v0.1.0. [[@iaguis](https://github.com/iaguis)] + * This is the first release of rktlet and it implements support for the CRI including fetching images, running pods, CNI networking, logging and exec. +This release passes 129/145 Kubernetes e2e conformance tests. +* Container Runtime Interface API change. [[@yujuhong](https://github.com/yujuhong)] + * A new field is added to CRI container log format to support splitting a long log line into multiple lines. ([#55922](https://github.com/kubernetes/kubernetes/pull/55922), [@Random-Liu](https://github.com/Random-Liu)) + * CRI now supports debugging via a verbose option for status functions. ([#53965](https://github.com/kubernetes/kubernetes/pull/53965), [@Random-Liu](https://github.com/Random-Liu)) + * Kubelet can now provide full summary api support for the CRI container runtime, with the exception of container log stats. ([#55810](https://github.com/kubernetes/kubernetes/pull/55810), [@abhi](https://github.com/abhi)) + * CRI now uses the correct localhost seccomp path when provided with input in the format of localhost//profileRoot/profileName. ([#55450](https://github.com/kubernetes/kubernetes/pull/55450), [@feiskyer](https://github.com/feiskyer)) + + +#### **Kubelet** + +* The EvictionHard, EvictionSoft, EvictionSoftGracePeriod, EvictionMinimumReclaim, SystemReserved, and KubeReserved fields in the KubeletConfiguration object (`kubeletconfig/v1alpha1`) are now of type map[string]string, which facilitates writing JSON and YAML files. ([#54823](https://github.com/kubernetes/kubernetes/pull/54823),[ @mtaufen](https://github.com/mtaufen)) +* Relative paths in the Kubelet's local config files (`--init-config-dir`) will now be resolved relative to the location of the containing files. ([#55648](https://github.com/kubernetes/kubernetes/pull/55648),[ @mtaufen](https://github.com/mtaufen)) +* It is now possible to set multiple manifest URL headers with the kubelet's `--manifest-url-header` flag. Multiple headers for the same key will be added in the order provided. The ManifestURLHeader field in KubeletConfiguration object (kubeletconfig/v1alpha1) is now a map[string][]string, which facilitates writing JSON and YAML files. ([#54643](https://github.com/kubernetes/kubernetes/pull/54643),[ @mtaufen](https://github.com/mtaufen)) +* The Kubelet's feature gates are now specified as a map when provided via a JSON or YAML KubeletConfiguration, rather than as a string of key-value pairs, making them less awkward for users. ([#53025](https://github.com/kubernetes/kubernetes/pull/53025),[ @mtaufen](https://github.com/mtaufen)) + +##### **Other** + +* Fixed a performance issue ([#51899](https://github.com/kubernetes/kubernetes/pull/51899)) identified in large-scale clusters when deleting thousands of pods simultaneously across hundreds of nodes, by actively removing containers of deleted pods, rather than waiting for periodic garbage collection and batching resulting pod API deletion requests. ([#53233](https://github.com/kubernetes/kubernetes/pull/53233),[ @dashpole](https://github.com/dashpole)) +* Problems deleting local static pods have been resolved. ([#48339](https://github.com/kubernetes/kubernetes/pull/48339),[ @dixudx](https://github.com/dixudx)) +* CRI now only calls UpdateContainerResources when cpuset is set. ([#53122](https://github.com/kubernetes/kubernetes/pull/53122),[ @resouer](https://github.com/resouer)) +* Containerd monitoring is now supported. ([#56109](https://github.com/kubernetes/kubernetes/pull/56109),[ @dashpole](https://github.com/dashpole)) +* deviceplugin has been extended to more gracefully handle the full device plugin lifecycle, including: ([#55088](https://github.com/kubernetes/kubernetes/pull/55088),[ @jiayingz](https://github.com/jiayingz)) + * Kubelet now uses an explicit cm.GetDevicePluginResourceCapacity() function that makes it possible to more accurately determine what resources are inactive and return a more accurate view of available resources. + * Extends the device plugin checkpoint data to record registered resources so that we can finish resource removing devices even upon kubelet restarts. + * Passes sourcesReady from kubelet to the device plugin to avoid removing inactive pods during the grace period of kubelet restart. + * Extends the gpu_device_plugin e2e_node test to verify that scheduled pods can continue to run even after a device plugin deletion and kubelet restart. +* The NodeController no longer supports kubelet 1.2. ([#48996](https://github.com/kubernetes/kubernetes/pull/48996),[ @k82cn](https://github.com/k82cn)) +* Kubelet now provides more specific events via FailedSync when unable to sync a pod. ([#53857](https://github.com/kubernetes/kubernetes/pull/53857),[ @derekwaynecarr](https://github.com/derekwaynecarr)) +* You can now disable AppArmor by setting the AppArmor profile to unconfined. ([#52395](https://github.com/kubernetes/kubernetes/pull/52395),[ @dixudx](https://github.com/dixudx)) +* ImageGCManage now consumes ImageFS stats from StatsProvider rather than cadvisor. ([#53094](https://github.com/kubernetes/kubernetes/pull/53094),[ @yguo0905](https://github.com/yguo0905)) +* Hyperkube now supports the support --experimental-dockershim kubelet flag. ([#54508](https://github.com/kubernetes/kubernetes/pull/54508),[ @ivan4th](https://github.com/ivan4th)) +* Kubelet no longer removes default labels from Node API objects on startup ([#54073](https://github.com/kubernetes/kubernetes/pull/54073),[ @liggitt](https://github.com/liggitt)) +* The overlay2 container disk metrics for Docker and CRI-O now work properly. ([#54827](https://github.com/kubernetes/kubernetes/pull/54827),[ @dashpole](https://github.com/dashpole)) +* Removed docker dependency during kubelet start up. ([#54405](https://github.com/kubernetes/kubernetes/pull/54405),[ @resouer](https://github.com/resouer)) +* Added Windows support to the system verification check. ([#53730](https://github.com/kubernetes/kubernetes/pull/53730),[ @bsteciuk](https://github.com/bsteciuk)) +* Kubelet no longer removes unregistered extended resource capacities from node status; cluster admins will have to manually remove extended resources exposed via device plugins when they the remove plugins themselves. ([#53353](https://github.com/kubernetes/kubernetes/pull/53353),[ @jiayingz](https://github.com/jiayingz)) +* The stats summary network value now takes into account multiple network interfaces, and not just eth0. ([#52144](https://github.com/kubernetes/kubernetes/pull/52144),[ @andyxning](https://github.com/andyxning)) +* Base images have been bumped to Debian Stretch (9). ([#52744](https://github.com/kubernetes/kubernetes/pull/52744),[ @rphillips](https://github.com/rphillips)) + +### **OpenStack** + +* OpenStack Cinder support has been improved: + * Cinder version detection now works properly. ([#53115](https://github.com/kubernetes/kubernetes/pull/53115),[ @FengyunPan](https://github.com/FengyunPan)) + * The OpenStack cloud provider now supports Cinder v3 API. ([#52910](https://github.com/kubernetes/kubernetes/pull/52910),[ @FengyunPan](https://github.com/FengyunPan)) +* Load balancing is now more flexible: + * The OpenStack LBaaS v2 Provider is now [configurable](https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/#openstack). ([#54176](https://github.com/kubernetes/kubernetes/pull/54176),[ @gonzolino](https://github.com/gonzolino)) + * OpenStack Octavia v2 is now supported as a load balancer provider in addition to the existing support for the Neutron LBaaS V2 implementation. Neutron LBaaS V1 support has been removed. ([#55393](https://github.com/kubernetes/kubernetes/pull/55393),[ @jamiehannaford](https://github.com/jamiehannaford)) +* OpenStack security group support has been beefed up ([#50836](https://github.com/kubernetes/kubernetes/pull/50836),[ @FengyunPan](https://github.com/FengyunPan)): + * Kubernetes will now automatically determine the security group for the node + * Nodes can now belong to multiple security groups + +### **Scheduling** + +#### **Hardware Accelerators** + +* Add ExtendedResourceToleration admission controller. This facilitates creation of dedicated nodes with extended resources. If operators want to create dedicated nodes with extended resources (such as GPUs, FPGAs, and so on), they are expected to taint the node with extended resource name as the key. This admission controller, if enabled, automatically adds tolerations for such taints to pods requesting extended resources, so users don't have to manually add these tolerations. ([#55839](https://github.com/kubernetes/kubernetes/pull/55839),[ @mindprince](https://github.com/mindprince)) + +#### **Other** + +* Scheduler cache ignores updates to an assumed pod if updates are limited to pod annotations. ([#54008](https://github.com/kubernetes/kubernetes/pull/54008),[ @yguo0905](https://github.com/yguo0905)) +* Issues with namespace deletion have been resolved. ([#53720](https://github.com/kubernetes/kubernetes/pull/53720),[ @shyamjvs](https://github.com/shyamjvs)) ([#53793](https://github.com/kubernetes/kubernetes/pull/53793),[ @wojtek-t](https://github.com/wojtek-t)) +* Pod preemption has been improved. + * Now takes PodDisruptionBudget into account. ([#56178](https://github.com/kubernetes/kubernetes/pull/56178),[ @bsalamat](https://github.com/bsalamat)) + * Nominated pods are taken into account during scheduling to avoid starvation of higher priority pods. ([#55933](https://github.com/kubernetes/kubernetes/pull/55933),[ @bsalamat](https://github.com/bsalamat)) +* Fixed 'Schedulercache is corrupted' error in kube-scheduler ([#55262](https://github.com/kubernetes/kubernetes/pull/55262),[ @liggitt](https://github.com/liggitt)) +* The kube-scheduler command now supports a --config flag which is the location of a file containing a serialized scheduler configuration. Most other kube-scheduler flags are now deprecated. ([#52562](https://github.com/kubernetes/kubernetes/pull/52562),[ @ironcladlou](https://github.com/ironcladlou)) +* A new scheduling queue helps schedule the highest priority pending pod first. ([#55109](https://github.com/kubernetes/kubernetes/pull/55109),[ @bsalamat](https://github.com/bsalamat)) +* A Pod can now listen to the same port on multiple IP addresses. ([#52421](https://github.com/kubernetes/kubernetes/pull/52421),[ @WIZARD-CXY](https://github.com/WIZARD-CXY)) +* Object count quotas supported on all standard resources using count/<resource>.<group> syntax ([#54320](https://github.com/kubernetes/kubernetes/pull/54320),[ @derekwaynecarr](https://github.com/derekwaynecarr)) +* Apply algorithm in scheduler by feature gates. ([#52723](https://github.com/kubernetes/kubernetes/pull/52723),[ @k82cn](https://github.com/k82cn)) +* A new priority function ResourceLimitsPriorityMap (disabled by default and behind alpha feature gate and not part of the scheduler's default priority functions list) that assigns a lowest possible score of 1 to a node that satisfies one or both of input pod's cpu and memory limits, mainly to break ties between nodes with same scores. ([#55906](https://github.com/kubernetes/kubernetes/pull/55906),[ @aveshagarwal](https://github.com/aveshagarwal)) +* Kubelet evictions now take pod priority into account ([#53542](https://github.com/kubernetes/kubernetes/pull/53542),[ @dashpole](https://github.com/dashpole)) +* PodTolerationRestriction admisson plugin: if namespace level tolerations are empty, now they override cluster level tolerations. ([#54812](https://github.com/kubernetes/kubernetes/pull/54812),[ @aveshagarwal](https://github.com/aveshagarwal)) + +### **Storage** + +* [stable] `PersistentVolume` and `PersistentVolumeClaim` objects must now have a capacity greater than zero. +* [stable] Mutation of `PersistentVolumeSource` after creation is no longer allowed +* [alpha] Deletion of `PersistentVolumeClaim` objects that are in use by a pod no longer permitted (if alpha feature is enabled). +* [alpha] Container Storage Interface + * New CSIVolumeSource enables Kubernetes to use external CSI drivers to provision, attach, and mount volumes. +* [alpha] Raw block volumes + * Support for surfacing volumes as raw block devices added to Kubernetes storage system. + * Only Fibre Channel volume plugin supports exposes this functionality, in this release. +* [alpha] Volume resizing + * Added file system resizing for the following volume plugins: GCE PD, Ceph RBD, AWS EBS, OpenStack Cinder +* [alpha] Topology Aware Volume Scheduling + * Improved volume scheduling for Local PersistentVolumes, by allowing the scheduler to make PersistentVolume binding decisions while respecting the Pod's scheduling requirements. + * Dynamic provisioning is not supported with this feature yet. +* [alpha] Containerized mount utilities + * Allow mount utilities, used to mount volumes, to run inside a container instead of on the host. +* Bug Fixes + * ScaleIO volume plugin is no longer dependent on the drv_cfg binary, so a Kubernetes cluster can easily run a containerized kubelet. ([#54956](https://github.com/kubernetes/kubernetes/pull/54956),[ @vladimirvivien](https://github.com/vladimirvivien)) + * AWS EBS Volumes are detached from stopped AWS nodes. ([#55893](https://github.com/kubernetes/kubernetes/pull/55893),[ @gnufied](https://github.com/gnufied)) + * AWS EBS volumes are detached if attached to a different node than expected. ([#55491](https://github.com/kubernetes/kubernetes/pull/55491),[ @gnufied](https://github.com/gnufied)) + * PV Recycle now works in environments that use architectures other than x86. ([#53958](https://github.com/kubernetes/kubernetes/pull/53958),[ @dixudx](https://github.com/dixudx)) + * Pod Security Policy can now manage access to specific FlexVolume drivers.([#53179](https://github.com/kubernetes/kubernetes/pull/53179),[ @wanghaoran1988](https://github.com/wanghaoran1988)) + * To prevent unauthorized access to CHAP Secrets, you can now set the secretNamespace storage class parameters for the following volume types: + * ScaleIO; StoragePool and ProtectionDomain attributes no longer default to the value default. ([#54013](https://github.com/kubernetes/kubernetes/pull/54013),[ @vladimirvivien](https://github.com/vladimirvivien)) + * RBD Persistent Volume Sources ([#54302](https://github.com/kubernetes/kubernetes/pull/54302),[ @sbezverk](https://github.com/sbezverk)) + * iSCSI Persistent Volume Sources ([#51530](https://github.com/kubernetes/kubernetes/pull/51530),[ @rootfs](https://github.com/rootfs)) + * In GCE multizonal clusters, `PersistentVolume` objects will no longer be dynamically provisioned in zones without nodes. ([#52322](https://github.com/kubernetes/kubernetes/pull/52322),[ @davidz627](https://github.com/davidz627)) + * Multi Attach PVC errors and events are now more useful and less noisy. ([#53401](https://github.com/kubernetes/kubernetes/pull/53401),[ @gnufied](https://github.com/gnufied)) + * The compute-rw scope has been removed from GCE nodes ([#53266](https://github.com/kubernetes/kubernetes/pull/53266),[ @mikedanese](https://github.com/mikedanese)) + * Updated vSphere cloud provider to support k8s cluster spread across multiple vCenters ([#55845](https://github.com/kubernetes/kubernetes/pull/55845),[ @rohitjogvmw](https://github.com/rohitjogvmw)) + * vSphere: Fix disk is not getting detached when PV is provisioned on clustered datastore. ([#54438](https://github.com/kubernetes/kubernetes/pull/54438),[ @pshahzeb](https://github.com/pshahzeb)) + * If a non-absolute mountPath is passed to the kubelet, it must now be prefixed with the appropriate root path. ([#55665](https://github.com/kubernetes/kubernetes/pull/55665),[ @brendandburns](https://github.com/brendandburns)) + +## External Dependencies + +* The supported etcd server version is **3.1.10**, as compared to 3.0.17 in v1.8 ([#49393](https://github.com/kubernetes/kubernetes/pull/49393),[ @hongchaodeng](https://github.com/hongchaodeng)) +* The validated docker versions are the same as for v1.8: **1.11.2 to 1.13.1 and 17.03.x** +* The Go version was upgraded from go1.8.3 to **go1.9.2** ([#51375](https://github.com/kubernetes/kubernetes/pull/51375),[ @cblecker](https://github.com/cblecker)) + * The minimum supported go version bumps to 1.9.1. ([#55301](https://github.com/kubernetes/kubernetes/pull/55301),[ @xiangpengzhao](https://github.com/xiangpengzhao)) + * Kubernetes has been upgraded to go1.9.2 ([#55420](https://github.com/kubernetes/kubernetes/pull/55420),[ @cblecker](https://github.com/cblecker)) +* CNI was upgraded to **v0.6.0** ([#51250](https://github.com/kubernetes/kubernetes/pull/51250),[ @dixudx](https://github.com/dixudx)) +* The dashboard add-on has been updated to [v1.8.0](https://github.com/kubernetes/dashboard/releases/tag/v1.8.0). ([#53046](https://github.com/kubernetes/kubernetes/pull/53046), [@maciaszczykm](https://github.com/maciaszczykm)) +* Heapster has been updated to [v1.5.0](https://github.com/kubernetes/heapster/releases/tag/v1.5.0). ([#57046](https://github.com/kubernetes/kubernetes/pull/57046), [@piosz](https://github.com/piosz)) +* Cluster Autoscaler has been updated to [v1.1.0](https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.1.0). ([#56969](https://github.com/kubernetes/kubernetes/pull/56969), [@mwielgus](https://github.com/mwielgus)) +* Update kube-dns 1.14.7 ([#54443](https://github.com/kubernetes/kubernetes/pull/54443),[ @bowei](https://github.com/bowei)) +* Update influxdb to v1.3.3 and grafana to v4.4.3 ([#53319](https://github.com/kubernetes/kubernetes/pull/53319),[ @kairen](https://github.com/kairen)) diff --git a/releases/release-1.9/release_notes_discussion.md b/releases/release-1.9/release_notes_discussion.md index 1e9fbe579bf..197eb6f3b6c 100644 --- a/releases/release-1.9/release_notes_discussion.md +++ b/releases/release-1.9/release_notes_discussion.md @@ -1,49 +1,49 @@ -# Release notes items to discuss (Radhika, Jennifer) - -## Gaps - -Much content does not indicate what changed in this release. Even detailed descriptions of features don't indicate reliably whether they are new, or changes to existing functionality. Missing also are explanations of why changes were made (or added), or any indication of a use case. Asking for use cases is probably reaching too far, especially at this late date, but some indication of how things changed is important. - -The writers propose to contact individual sig leads, or where known the original release note authors, to ask these questions one-on-one and expand the relevant release notes as we revise them. In some cases there's enough information in linked PRs or issues for us to investigate on our own, but we don't have time to go code diving. - -## Inconsistent terminology - -API changes especially are called out in various ways: they are promoted, graduated, advanced. We should standardize. (Note that none of these is a standard way to refer to version number increases.) The same goes for referring to API groups (themselves a confusing concept to outsiders). Radhika and Jennifer are working on this issue. - -## Information architecture - -Thinking about useful buckets (getting rid of sig org altogether?). Look at app developer user persona for ideas? (here: https://docs.google.com/document/d/1EdQ8acmuKGlzZy1agejLqmB7cLpTRBJKC0JYptJ-ylg/edit#heading=h.ylz4u4aax62y) - -One (example) option (details not final or guaranteed to be accurate): - -- Cluster config changes - - New Features - - API changes - - Known Issues -- Node/pod changes - - New Features - - API changes - - Known Issues -- Networking changes - - New Features - - API changes - - Known Issues -- Auth changes - - New Features - - API changes - - Known Issues -- Command-line tool changes (kubectl) - - New Features - - API changes - - Known Issues -- Storage changes - - New Features - - API changes - - Known Issues - - -Carrying over known issues from previous releases? (documenting fixes?) - -## Publishing process - -The release notes are published as part of the lengthy `changelog.md` file. Ideally, the release notes should be published along with the documentation on kubernetes.io. Considering the usability factors, release notes are not consumable in the current form. +# Release notes items to discuss (Radhika, Jennifer) + +## Gaps + +Much content does not indicate what changed in this release. Even detailed descriptions of features don't indicate reliably whether they are new, or changes to existing functionality. Missing also are explanations of why changes were made (or added), or any indication of a use case. Asking for use cases is probably reaching too far, especially at this late date, but some indication of how things changed is important. + +The writers propose to contact individual sig leads, or where known the original release note authors, to ask these questions one-on-one and expand the relevant release notes as we revise them. In some cases there's enough information in linked PRs or issues for us to investigate on our own, but we don't have time to go code diving. + +## Inconsistent terminology + +API changes especially are called out in various ways: they are promoted, graduated, advanced. We should standardize. (Note that none of these is a standard way to refer to version number increases.) The same goes for referring to API groups (themselves a confusing concept to outsiders). Radhika and Jennifer are working on this issue. + +## Information architecture + +Thinking about useful buckets (getting rid of sig org altogether?). Look at app developer user persona for ideas? (here: https://docs.google.com/document/d/1EdQ8acmuKGlzZy1agejLqmB7cLpTRBJKC0JYptJ-ylg/edit#heading=h.ylz4u4aax62y) + +One (example) option (details not final or guaranteed to be accurate): + +- Cluster config changes + - New Features + - API changes + - Known Issues +- Node/pod changes + - New Features + - API changes + - Known Issues +- Networking changes + - New Features + - API changes + - Known Issues +- Auth changes + - New Features + - API changes + - Known Issues +- Command-line tool changes (kubectl) + - New Features + - API changes + - Known Issues +- Storage changes + - New Features + - API changes + - Known Issues + + +Carrying over known issues from previous releases? (documenting fixes?) + +## Publishing process + +The release notes are published as part of the lengthy `changelog.md` file. Ideally, the release notes should be published along with the documentation on kubernetes.io. Considering the usability factors, release notes are not consumable in the current form. diff --git a/releases/release-1.9/release_team.md b/releases/release-1.9/release_team.md index 15012c9e74a..71cf348728c 100644 --- a/releases/release-1.9/release_team.md +++ b/releases/release-1.9/release_team.md @@ -1,14 +1,14 @@ -| **Role** | **Name** (**GitHub/Slack ID**) | **Shadow Name(s) (GitHub/Slack ID), ...** -| ------ | ------ | ------ | -| Lead | Anthony Yeh ([@enisoc](https://github.com/enisoc)) | | -| Secondary | Jaice Singer DuMars ([@jdumars](https://github.com/jdumars)) | | -| Features | Ihor Dvoretskyi ([@idvoretskyi](https://github.com/idvoretskyi)) | | -| Branch Manager | David Ashpole ([@dashpole](https://github.com/dashpole)) | | -| Test Infra | Benjamin Elder ([@BenTheElder](https://github.com/BenTheElder)) | | -| Docs | Zach Corleissen ([@zacharysarah](https://github.com/zacharysarah)) | | -| Release Notes | Jennifer Rondeau ([@Bradamant3](https://github.com/Bradamant3)) | Nick Chase ([@nickchase](https://github.com/nickchase)), Peter Zhao ([@xiangpengzhao](https://github.com/xiangpengzhao)) | -| Bugs | Josh Berkus ([@jberkus](https://github.com/jberkus)) | | -| Upgrade Testing / CI Signal | Aaron Crickenberger ([@spiffxp](https://github.com/spiffxp)) | Jason DeTiberus ([@detiber](https://github.com/detiber)/@jdetiber) | -| Patch Release Manager | Mehdy Bohlool ([@mbohlool](https://github.com/mbohlool)) | | -| Marketing coordinator | Natasha Woods ([@nwoods3](https://github.com/nwoods3)) | Wendy Cartee ([@wcartee](https://github.com/wcartee)), Paris Pittman ([@parispittman](https://github.com/parispittman)) | - +| **Role** | **Name** (**GitHub/Slack ID**) | **Shadow Name(s) (GitHub/Slack ID), ...** +| ------ | ------ | ------ | +| Lead | Anthony Yeh ([@enisoc](https://github.com/enisoc)) | | +| Secondary | Jaice Singer DuMars ([@jdumars](https://github.com/jdumars)) | | +| Features | Ihor Dvoretskyi ([@idvoretskyi](https://github.com/idvoretskyi)) | | +| Branch Manager | David Ashpole ([@dashpole](https://github.com/dashpole)) | | +| Test Infra | Benjamin Elder ([@BenTheElder](https://github.com/BenTheElder)) | | +| Docs | Zach Corleissen ([@zacharysarah](https://github.com/zacharysarah)) | | +| Release Notes | Jennifer Rondeau ([@Bradamant3](https://github.com/Bradamant3)) | Nick Chase ([@nickchase](https://github.com/nickchase)), Peter Zhao ([@xiangpengzhao](https://github.com/xiangpengzhao)) | +| Bugs | Josh Berkus ([@jberkus](https://github.com/jberkus)) | | +| Upgrade Testing / CI Signal | Aaron Crickenberger ([@spiffxp](https://github.com/spiffxp)) | Jason DeTiberus ([@detiber](https://github.com/detiber)/@jdetiber) | +| Patch Release Manager | Mehdy Bohlool ([@mbohlool](https://github.com/mbohlool)) | | +| Marketing coordinator | Natasha Woods ([@nwoods3](https://github.com/nwoods3)) | Wendy Cartee ([@wcartee](https://github.com/wcartee)), Paris Pittman ([@parispittman](https://github.com/parispittman)) | + diff --git a/releases/release-1.9/scalability_validation_report.md b/releases/release-1.9/scalability_validation_report.md index 84dad633ce8..ed28038f5b6 100644 --- a/releases/release-1.9/scalability_validation_report.md +++ b/releases/release-1.9/scalability_validation_report.md @@ -1,59 +1,59 @@ -Scalability validation report for release-1.9 -============================================= - -Written as per [this template](https://github.com/kubernetes/community/blob/master/sig-scalability/processes/scalability-validation.md#concretely-define-test-configuration). - -Large Cluster Performance -------------------------- - -Validated under the following configuration: -- Cloud-provider - GCE -- No. of nodes - 5000 -- Node machine-type - n1-standard-1; OS - gci; Disk size - 50GB -- Master machine-type - n1-standard-64 Intel Broadwell or better; OS - gci; Disk size - [auto-calculated] -- Any non-default config used: - - `KUBE_ENABLE_CLUSTER_MONITORING=none` - - `KUBE_GCE_ENABLE_IP_ALIASES=true` - - `ENABLE_APISERVER_ADVANCED_AUDIT=false` - - `ENABLE_BIG_CLUSTER_SUBNETS=true` - - `PREPULL_E2E_IMAGES=false` - - `APISERVER_TEST_ARGS=--max-requests-inflight=3000 --max-mutating-requests-inflight=1000` - - `SCHEDULER_TEST_ARGS=--kube-api-qps=100` - - `CONTROLLER_MANAGER_TEST_ARGS=--kube-api-qps=100 --kube-api-burst=100` - - `TEST_CLUSTER_LOG_LEVEL=--v=1` - - `TEST_CLUSTER_RESYNC_PERIOD=--min-resync-period=12h` - - `TEST_CLUSTER_DELETE_COLLECTION_WORKERS=--delete-collection-workers=16` - -- Any important test details: - - Services disabled in load test - - SLO used for 99%ile for api call latency: - - For clusters with <= 500 nodes: - - <= 1s for all calls - - For clusters with > 500 nodes: - - <= 1s for non-list calls - - <= 5s for namespaced list calls - - <= 10s for cluster-scoped list calls -- See the [output from the validating performance test job run](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-scale-performance/79) for other specific details from the logs. - -Large cluster correctness -------------------------- - -Validated under the following configuration: -- Cloud-provider - GCE -- No. of nodes - 5000 -- Node machine-type - g1-small; OS - gci; Disk size - 50GB -- One special n1-standard-8 node (out of the 5k nodes) used for heapster -- Master machine-type - n1-standard-64 Intel Broadwell or better; OS - gci; Disk size - [auto-calculated] -- Any non-default config used: - - `KUBE_ENABLE_CLUSTER_MONITORING=standalone` - - `APISERVER_TEST_ARGS=--max-requests-inflight=1500 --max-mutating-requests-inflight=500` - - `CONTROLLER_MANAGER_TEST_ARGS=--kube-api-qps=100 --kube-api-burst=100 --concurrent-service-syncs=5` - - `PREPULL_E2E_IMAGES (default, true)` - - (rest same as above - performance test) -- Any important test details: - - Several tests were disabled because they did not pass at scale and fixing - the related code was not feasible before the release: - - [Horizontal Pod Autoscaler](https://github.com/kubernetes/kubernetes/blob/7335c41ebe076b/test/e2e/autoscaling/horizontal_pod_autoscaling.go#L69): https://github.com/kubernetes/kubernetes/issues/55887 - - [Advanced API call auditing](https://github.com/kubernetes/kubernetes/blob/7335c41ebe076b/test/e2e/auth/audit.go#L59): http://github.com/kubernetes/kubernetes/issues/53455 - - [Changing type and ports of a Service](https://github.com/kubernetes/kubernetes/blob/7335c41ebe076b/test/e2e/network/service.go#L486): http://github.com/kubernetes/kubernetes/issues/52495 -- See the [output from the validating correcness test job run](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-scale-correctness/46) for other specific details from the logs. +Scalability validation report for release-1.9 +============================================= + +Written as per [this template](https://github.com/kubernetes/community/blob/master/sig-scalability/processes/scalability-validation.md#concretely-define-test-configuration). + +Large Cluster Performance +------------------------- + +Validated under the following configuration: +- Cloud-provider - GCE +- No. of nodes - 5000 +- Node machine-type - n1-standard-1; OS - gci; Disk size - 50GB +- Master machine-type - n1-standard-64 Intel Broadwell or better; OS - gci; Disk size - [auto-calculated] +- Any non-default config used: + - `KUBE_ENABLE_CLUSTER_MONITORING=none` + - `KUBE_GCE_ENABLE_IP_ALIASES=true` + - `ENABLE_APISERVER_ADVANCED_AUDIT=false` + - `ENABLE_BIG_CLUSTER_SUBNETS=true` + - `PREPULL_E2E_IMAGES=false` + - `APISERVER_TEST_ARGS=--max-requests-inflight=3000 --max-mutating-requests-inflight=1000` + - `SCHEDULER_TEST_ARGS=--kube-api-qps=100` + - `CONTROLLER_MANAGER_TEST_ARGS=--kube-api-qps=100 --kube-api-burst=100` + - `TEST_CLUSTER_LOG_LEVEL=--v=1` + - `TEST_CLUSTER_RESYNC_PERIOD=--min-resync-period=12h` + - `TEST_CLUSTER_DELETE_COLLECTION_WORKERS=--delete-collection-workers=16` + +- Any important test details: + - Services disabled in load test + - SLO used for 99%ile for api call latency: + - For clusters with <= 500 nodes: + - <= 1s for all calls + - For clusters with > 500 nodes: + - <= 1s for non-list calls + - <= 5s for namespaced list calls + - <= 10s for cluster-scoped list calls +- See the [output from the validating performance test job run](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-scale-performance/79) for other specific details from the logs. + +Large cluster correctness +------------------------- + +Validated under the following configuration: +- Cloud-provider - GCE +- No. of nodes - 5000 +- Node machine-type - g1-small; OS - gci; Disk size - 50GB +- One special n1-standard-8 node (out of the 5k nodes) used for heapster +- Master machine-type - n1-standard-64 Intel Broadwell or better; OS - gci; Disk size - [auto-calculated] +- Any non-default config used: + - `KUBE_ENABLE_CLUSTER_MONITORING=standalone` + - `APISERVER_TEST_ARGS=--max-requests-inflight=1500 --max-mutating-requests-inflight=500` + - `CONTROLLER_MANAGER_TEST_ARGS=--kube-api-qps=100 --kube-api-burst=100 --concurrent-service-syncs=5` + - `PREPULL_E2E_IMAGES (default, true)` + - (rest same as above - performance test) +- Any important test details: + - Several tests were disabled because they did not pass at scale and fixing + the related code was not feasible before the release: + - [Horizontal Pod Autoscaler](https://github.com/kubernetes/kubernetes/blob/7335c41ebe076b/test/e2e/autoscaling/horizontal_pod_autoscaling.go#L69): https://github.com/kubernetes/kubernetes/issues/55887 + - [Advanced API call auditing](https://github.com/kubernetes/kubernetes/blob/7335c41ebe076b/test/e2e/auth/audit.go#L59): http://github.com/kubernetes/kubernetes/issues/53455 + - [Changing type and ports of a Service](https://github.com/kubernetes/kubernetes/blob/7335c41ebe076b/test/e2e/network/service.go#L486): http://github.com/kubernetes/kubernetes/issues/52495 +- See the [output from the validating correcness test job run](https://k8s-gubernator.appspot.com/build/kubernetes-jenkins/logs/ci-kubernetes-e2e-gce-scale-correctness/46) for other specific details from the logs. diff --git a/releases/release_phases.md b/releases/release_phases.md index ac0bbee7a9d..43498dbce75 100644 --- a/releases/release_phases.md +++ b/releases/release_phases.md @@ -1,181 +1,181 @@ -# Release Phases - -## PRR Freeze - -The PRR freeze is a hard deadline happening one week before the [Enhancements Freeze]. After PRR freeze, no new KEPs may be opted into the milestone. - -All enhancements wishing to be included in the current release must have an [open issue in kubernetes/enhancements](https://github.com/kubernetes/enhancements/issues/) that: -- is in the current Release Milestone -- has the `lead-opted-in` label applied - -As described [here](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval), by the PRR freeze date, KEP authors must have at least a PR opened in [kubernetes/enhancements] with: -- The KEP's [PRR questionnaire](https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template#production-readiness-review-questionnaire) filled out -- The [kep.yaml](https://github.com/kubernetes/enhancements/blob/master/keps/NNNN-kep-template/kep.yaml) updated with: - - `stage` set to the current stage - - `latest-milestone` set to the current release - - `milestone` struct updated with the current stage and release -- A [PRR approval file](https://github.com/kubernetes/enhancements/blob/master/keps/prod-readiness/template/nnnn.yaml) with the PRR approver listed for the stage the KEP is targeting - -It is important to note that the PRR freeze **_does not_** mean that the KEPs need to have received an approval or even a review from the PRR team by this date. - -If the enhancement does not meet these requirements, it will be removed from the -milestone and will require an [Exception]. - -## Enhancements Freeze - -By enhancements freeze, all enhancements must have the PRR freeze requirements listed above, as well as the following updates, merged into [kubernetes/enhancements]: - -- The `kep.yaml` updated with: - - `status` set to `implementable` -- A `README.md` - - That uses the [latest template](https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template) - - That has up-to-date `Graduation Criteria` - - That has an updated detailed `Test Plan` section filled out -- A completed [Production Readiness Review](https://github.com/kubernetes/enhancements/blob/master/docs/glossary.md#production-readiness-review-prr) - -*Note*: For deprecations/removals, the `kep.yaml` status should be set to `withdrawn`, and the [Kubernetes Deprecation Policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/) should be followed. - -If the enhancement does not meet these requirements, it will be removed from the -milestone and will require an [Exception]. - -## Burndown - -Several weeks prior to [Code Freeze], we increase the cadence of release team meetings -to begin tracking work more closely. We call this Burndown, because at this -point we have a list of outstanding issues and PRs, and are actively working to -burn that list down. SIG representatives will be asked to attend if their SIG has -specific outstanding issues that are blocking the release. - -Please subscribe to the [Kubernetes Release Calendar] to see meeting events. Burndown meetings -may conflict with other community meetings. Please prioritize this meeting if -a member of the release team asks you to attend. - -The intent of these meetings is to: - -* Focus on fixing bugs, eliminating test flakes and general release - stabilization. -* Ensure docs and release notes are written and accurate. -* Identify all enhancement going into the release, and make sure alpha, beta, GA - is marked in enhancements repo. -* Provide a one-stop view of release progress via the current meeting notes (TODO: link to the template?) including relevant release metrics. - -## Code Freeze - -All enhancements going into the release must be in a merge-ready state with -`approved` and `lgtm` labels applied. This **includes** -tests, and docs PRs opened by the due date. Due to the Prow queue, this may mean -that approved PRs merge shortly after the deadline. - -The docs PRs don't have to be ready to merge, but it should be clear what the -topic will be and who is responsible for writing it. This person will become the -primary contact for the documentation lead. It’s incredibly important that -documentation work gets completed as quickly as possible. - -At this point, the only PRs allowed to proceed with changes are those -related to release-blocking issues within the milestone. - -## Test Freeze - -The date after which no more tests may be changed (or promoted to Conformance), -unless there are release-blocking or other exceptional reasons. Before -this date, it is acceptable to improve test coverage of existing code. After -this date, the goal is to fix, revert, or remove tests that are failing. - -Every merged PR, which is part of the current milestone and therefore merged into -the master branch, will be automatically merged into the release branch via the -[periodic release branch fast forward job](https://testgrid.k8s.io/sig-release-releng-blocking#git-repo-kubernetes-fast-forward) -in prow. - -## Thaw - -Thaw specifies the end of both [Code Freeze] and [Test Freeze]. At this point -it is expected that all outstanding PRs for the release of Kubernetes have been -merged into the release branch. Assuming the release team agrees, -[Code Freeze], will be lifted, and we enter Thaw. This means from a -technical perspective, that now the `master` and `release-1.x` branch diverge. -After Thaw, the `master` branch develops toward the next minor release and the -release branch goes into maintenance mode. From this point forward, any PRs -intended for the current release must be cherry-picked into the appropriate -branch. - -![code-freeze-code-thaw](code-freeze-code-thaw.svg "Code Freeze to Thaw") - -## Exceptions - -Starting at [PRR Freeze], the release team will solicit and rule on -[Exception] requests for enhancements and test work that is unlikely to be done -by [Code Freeze]. The [Exception] approval is the responsibility of the SIG or SIGs -labeled in the pull request. The release team may intervene or deny the request -only if it poses a risk to release quality, or could negatively impact the overall -timeline. Changes introduced at this point should be well-tested, -well-understood, limited in architectural scope, and low risk. All of those -factors should be considered in the approval process. Enhancements on an -feature branch with documentation, test cases, and passing CI are more likely to -be accepted. - -*Exception requests must be received within three days of the relevant freeze deadline to be considered.* - -## Feature Blog Freeze - -Feature blogs are an amazing way to showcase all the hard work you and your team -have done with the enhancement. While providing technical depth in terms of content, -they are also great avenues to attract newer contributors to the Kubernetes project. -You can opt in to write a feature blog for your enhancement and this deadline is to -freeze the collection phase for the ongoing cycle. Once the collection phase is -completed, the Release Comms team will coordinate further with you to work out details -around delivery & review. - -After the deadline passes if you haven't opted in & still would like to have a feature -blog for your enhancement, please contact the current release communications lead on -the #sig-release channel in Kubernetes Slack. - -## Pruning - -Enhancements that are partially implemented and/or lack sufficient tests may be -considered for pruning beginning after [Code Freeze], unless they've been -granted an [Exception]. - -The release team will work with SIGs and enhancements owners to evaluate each -case, but for example, pruning could include actions such as: - -* Disabling the use of a new API or field -* Switching the default value of a flag or field -* Moving a new API or field behind an Alpha Enhancements gate -* Reverting commits or deleting code - -This should occur before 1.x.0-beta.1 is cut so we have time to gather signal -on whether the system is stable in this state. These are considered drastic -measures, so the release team will strive to coordinate at-risk work with SIGs -before this time. The goal is to make code freeze, and overall project -transparency, enforceable despite the lack of a consistently used feature branch -process. - -## Docs - -If an enhancement needs documentation, enter "Yes" in the enhancement tracking -spreadsheet and add a link to the documentation PR. You can open documentation -PRs in the [kubernetes/website] repository. If you have questions, the release -documentation lead, or representatives from SIG-Docs will be happy to assist -you. - -For documentation PRs: - -* Open PRs against the dev-1.x branch based off of the current release PR. The - documentation workflow uses feature branches for release documentation, rather -than basing from master. **Be sure to open your PR against the release branch**. -* Add your PR to the current Release milestone. - -## Docs Freeze - -All enhancements that are determined to require documentation must have their docs PRs in a `ready to merge` state by the Docs Freeze deadline for the release. To be considered ready to merge, a PR must have a technical review as well as the `lgtm` and `approve` labels applied, with no outstanding comments or suggestions from SIG Docs. - -After Docs Freeze, the owners of any outstanding documentation PRs must file an exception request. The release team will work with SIG Docs and the SIG or SIGs labeled in the pull request to determine whether or not an exception can be granted. Authors and reviewers should prioritize getting the PR into a state where it is accurate and useful enough to be merged even if it isn't perfect, and then open a separate PR to continue work on that documentation post-release. - -[kubernetes/website]: https://github.com/kubernetes/website -[kubernetes/enhancements]: https://github.com/kubernetes/enhancements -[Kubernetes Release Calendar]: https://bit.ly/k8s-release-cal -[Exception]: ./EXCEPTIONS.md -[PRR Freeze]: #prr-freeze -[Enhancements Freeze]: #enhancements-freeze -[Code Freeze]: #code-freeze -[Test Freeze]: #test-freeze +# Release Phases + +## PRR Freeze + +The PRR freeze is a hard deadline happening one week before the [Enhancements Freeze]. After PRR freeze, no new KEPs may be opted into the milestone. + +All enhancements wishing to be included in the current release must have an [open issue in kubernetes/enhancements](https://github.com/kubernetes/enhancements/issues/) that: +- is in the current Release Milestone +- has the `lead-opted-in` label applied + +As described [here](https://github.com/kubernetes/community/blob/master/sig-architecture/production-readiness.md#submitting-a-kep-for-production-readiness-approval), by the PRR freeze date, KEP authors must have at least a PR opened in [kubernetes/enhancements] with: +- The KEP's [PRR questionnaire](https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template#production-readiness-review-questionnaire) filled out +- The [kep.yaml](https://github.com/kubernetes/enhancements/blob/master/keps/NNNN-kep-template/kep.yaml) updated with: + - `stage` set to the current stage + - `latest-milestone` set to the current release + - `milestone` struct updated with the current stage and release +- A [PRR approval file](https://github.com/kubernetes/enhancements/blob/master/keps/prod-readiness/template/nnnn.yaml) with the PRR approver listed for the stage the KEP is targeting + +It is important to note that the PRR freeze **_does not_** mean that the KEPs need to have received an approval or even a review from the PRR team by this date. + +If the enhancement does not meet these requirements, it will be removed from the +milestone and will require an [Exception]. + +## Enhancements Freeze + +By enhancements freeze, all enhancements must have the PRR freeze requirements listed above, as well as the following updates, merged into [kubernetes/enhancements]: + +- The `kep.yaml` updated with: + - `status` set to `implementable` +- A `README.md` + - That uses the [latest template](https://github.com/kubernetes/enhancements/tree/master/keps/NNNN-kep-template) + - That has up-to-date `Graduation Criteria` + - That has an updated detailed `Test Plan` section filled out +- A completed [Production Readiness Review](https://github.com/kubernetes/enhancements/blob/master/docs/glossary.md#production-readiness-review-prr) + +*Note*: For deprecations/removals, the `kep.yaml` status should be set to `withdrawn`, and the [Kubernetes Deprecation Policy](https://kubernetes.io/docs/reference/using-api/deprecation-policy/) should be followed. + +If the enhancement does not meet these requirements, it will be removed from the +milestone and will require an [Exception]. + +## Burndown + +Several weeks prior to [Code Freeze], we increase the cadence of release team meetings +to begin tracking work more closely. We call this Burndown, because at this +point we have a list of outstanding issues and PRs, and are actively working to +burn that list down. SIG representatives will be asked to attend if their SIG has +specific outstanding issues that are blocking the release. + +Please subscribe to the [Kubernetes Release Calendar] to see meeting events. Burndown meetings +may conflict with other community meetings. Please prioritize this meeting if +a member of the release team asks you to attend. + +The intent of these meetings is to: + +* Focus on fixing bugs, eliminating test flakes and general release + stabilization. +* Ensure docs and release notes are written and accurate. +* Identify all enhancement going into the release, and make sure alpha, beta, GA + is marked in enhancements repo. +* Provide a one-stop view of release progress via the current meeting notes (TODO: link to the template?) including relevant release metrics. + +## Code Freeze + +All enhancements going into the release must be in a merge-ready state with +`approved` and `lgtm` labels applied. This **includes** +tests, and docs PRs opened by the due date. Due to the Prow queue, this may mean +that approved PRs merge shortly after the deadline. + +The docs PRs don't have to be ready to merge, but it should be clear what the +topic will be and who is responsible for writing it. This person will become the +primary contact for the documentation lead. It’s incredibly important that +documentation work gets completed as quickly as possible. + +At this point, the only PRs allowed to proceed with changes are those +related to release-blocking issues within the milestone. + +## Test Freeze + +The date after which no more tests may be changed (or promoted to Conformance), +unless there are release-blocking or other exceptional reasons. Before +this date, it is acceptable to improve test coverage of existing code. After +this date, the goal is to fix, revert, or remove tests that are failing. + +Every merged PR, which is part of the current milestone and therefore merged into +the master branch, will be automatically merged into the release branch via the +[periodic release branch fast forward job](https://testgrid.k8s.io/sig-release-releng-blocking#git-repo-kubernetes-fast-forward) +in prow. + +## Thaw + +Thaw specifies the end of both [Code Freeze] and [Test Freeze]. At this point +it is expected that all outstanding PRs for the release of Kubernetes have been +merged into the release branch. Assuming the release team agrees, +[Code Freeze], will be lifted, and we enter Thaw. This means from a +technical perspective, that now the `master` and `release-1.x` branch diverge. +After Thaw, the `master` branch develops toward the next minor release and the +release branch goes into maintenance mode. From this point forward, any PRs +intended for the current release must be cherry-picked into the appropriate +branch. + +![code-freeze-code-thaw](code-freeze-code-thaw.svg "Code Freeze to Thaw") + +## Exceptions + +Starting at [PRR Freeze], the release team will solicit and rule on +[Exception] requests for enhancements and test work that is unlikely to be done +by [Code Freeze]. The [Exception] approval is the responsibility of the SIG or SIGs +labeled in the pull request. The release team may intervene or deny the request +only if it poses a risk to release quality, or could negatively impact the overall +timeline. Changes introduced at this point should be well-tested, +well-understood, limited in architectural scope, and low risk. All of those +factors should be considered in the approval process. Enhancements on an +feature branch with documentation, test cases, and passing CI are more likely to +be accepted. + +*Exception requests must be received within three days of the relevant freeze deadline to be considered.* + +## Feature Blog Freeze + +Feature blogs are an amazing way to showcase all the hard work you and your team +have done with the enhancement. While providing technical depth in terms of content, +they are also great avenues to attract newer contributors to the Kubernetes project. +You can opt in to write a feature blog for your enhancement and this deadline is to +freeze the collection phase for the ongoing cycle. Once the collection phase is +completed, the Release Comms team will coordinate further with you to work out details +around delivery & review. + +After the deadline passes if you haven't opted in & still would like to have a feature +blog for your enhancement, please contact the current release communications lead on +the #sig-release channel in Kubernetes Slack. + +## Pruning + +Enhancements that are partially implemented and/or lack sufficient tests may be +considered for pruning beginning after [Code Freeze], unless they've been +granted an [Exception]. + +The release team will work with SIGs and enhancements owners to evaluate each +case, but for example, pruning could include actions such as: + +* Disabling the use of a new API or field +* Switching the default value of a flag or field +* Moving a new API or field behind an Alpha Enhancements gate +* Reverting commits or deleting code + +This should occur before 1.x.0-beta.1 is cut so we have time to gather signal +on whether the system is stable in this state. These are considered drastic +measures, so the release team will strive to coordinate at-risk work with SIGs +before this time. The goal is to make code freeze, and overall project +transparency, enforceable despite the lack of a consistently used feature branch +process. + +## Docs + +If an enhancement needs documentation, enter "Yes" in the enhancement tracking +spreadsheet and add a link to the documentation PR. You can open documentation +PRs in the [kubernetes/website] repository. If you have questions, the release +documentation lead, or representatives from SIG-Docs will be happy to assist +you. + +For documentation PRs: + +* Open PRs against the dev-1.x branch based off of the current release PR. The + documentation workflow uses feature branches for release documentation, rather +than basing from master. **Be sure to open your PR against the release branch**. +* Add your PR to the current Release milestone. + +## Docs Freeze + +All enhancements that are determined to require documentation must have their docs PRs in a `ready to merge` state by the Docs Freeze deadline for the release. To be considered ready to merge, a PR must have a technical review as well as the `lgtm` and `approve` labels applied, with no outstanding comments or suggestions from SIG Docs. + +After Docs Freeze, the owners of any outstanding documentation PRs must file an exception request. The release team will work with SIG Docs and the SIG or SIGs labeled in the pull request to determine whether or not an exception can be granted. Authors and reviewers should prioritize getting the PR into a state where it is accurate and useful enough to be merged even if it isn't perfect, and then open a separate PR to continue work on that documentation post-release. + +[kubernetes/website]: https://github.com/kubernetes/website +[kubernetes/enhancements]: https://github.com/kubernetes/enhancements +[Kubernetes Release Calendar]: https://bit.ly/k8s-release-cal +[Exception]: ./EXCEPTIONS.md +[PRR Freeze]: #prr-freeze +[Enhancements Freeze]: #enhancements-freeze +[Code Freeze]: #code-freeze +[Test Freeze]: #test-freeze diff --git a/roadmap.md b/roadmap.md index bc05808e1a3..f0499aa34d3 100644 --- a/roadmap.md +++ b/roadmap.md @@ -1,216 +1,216 @@ -# Roadmap and Vision - -## SIG Release Roadmap for 2025 and beyond - -This document contains the SIG Release Roadmap for 2025 and beyond. More -detailed information can be found on the corresponding project boards. - -### Primary Focus - -Decrease **technical debt** and provide a **sustainable foundation** for long -term contributors of SIG Release. - -### Deliverables - -The following deliverables are necessary to achieve the overall goal. Within -the following listing, all deliverables are sorted by their priority and their -state. - -### Work in progress (WIP) - -1. **Rewrite artifact promoter** - - Outcome: Robust and fast artifact promotion tooling. - - Enhancement: _none_ - - Project board: https://github.com/orgs/kubernetes/projects/171 - -1. **Rework supported platforms** - - Outcome: Which platforms Kubernetes supports reflected in documentation and tooling. - - Enhancement: **TBD** ([Supported Platform Tiers](https://docs.google.com/document/d/1QnT2LJ1dNYFyvOCt_X6F8ry0KgAg8H2MjoZnt5Xgtog)) - - Project board: _none_ - -1. **Improve SIG Release contributor ladder & sustainability** - Outcome: Up-to-date documentation and project boards for new and long term contributors. - Enhancement: _none_ - Project board: _none_ - -### Known Risks - -1. **We rely on different SIGs for our work** - - We have a need to discuss our enhancements with different SIGs to get all - required information and drive the change. This can lead into helpful, but - maybe not expected input and delay the deliverable. - -1. **Some topics require initial research** - - We're not completely aware of all technical aspects for the changes. This - means that there is a risk of delaying because of investing more time in - pre-research. - -### Requests to Other Teams - -1. **SIG K8s Infra** - - For general infrastructure support we rely on. - -1. **SIG Architecture** - - For the formalization of the released platforms and input about the overall - supply chain. - -1. **SIG Security** - - For content which should be part of the release metadata. - -1. **SIG Contribex** - - For getting input about sustainable contributor experience. - -### Other Priorities - -This section covers items from the past 2022 and 2024 roadmap which have not been -started or became stale. - -1. **Make artifact validation more robust** - - Outcome: Provide a fast and error-resistant workflow for artifact promotion compliant with SLSA. - - Enhancement: was kubernetes/enhancements#3027 - - Project board: https://github.com/orgs/kubernetes/projects/171 - -1. **Enable other Kubernetes subprojects to use our packages infrastructure** - - Outcome: Building a CLI, library and documentation for Kubernetes related - projects to use the existing packaging infrastructure. - - Enhancement: _none_ - - Project board: https://github.com/orgs/kubernetes/projects/137 - -1. **Modernize and Extend Release Metadata** - - Outcome: Providing release metadata compliant to the latest industry standards. - - Enhancement: none (was kubernetes/enhancements#3027) - - Project board: https://github.com/orgs/kubernetes/projects/138 - -1. **Make Kubernetes releases more flexible** - - Outcome: Provide more possibilities for Kubernetes releases to be created in - custom infrastructure environments. - - Enhancement: none - -1. **Enhance Kubernetes binary artifact management (Consumable)** - - https://github.com/kubernetes/sig-release/issues/1372 - - Enhancement: _none_ - - Outcome: Being able to promote files as artifacts and using this mechanism - for Kubernetes releases. - -1. **Define and collect metrics about Kubernetes releases (Introspectable)** - - https://github.com/kubernetes/sig-release/issues/1527 - - Enhancement: _none_ - - Outcome: Being able to measure and interpret a set of defined metrics about - Kubernetes releases to associate actions with those. - -1. **Enhance and simplify Kubernetes version markers (Consumable)** - - Enhancement: _none_ - - Outcome: Clear documentation about available version markers as well as their - simplified automation. - -### Done Deliverables - -1. **Migrate away from GCS bucket: gs://kubernetes-release** - - Outcome: Ensure we migrate away from gs://kubernetes-release, use a - community-owned Object Storage bucket for binary releases, serve the binaries - published through a CDN service. - - Enhancement: none - -1. **Making deb and rpm package builds more robust** - - Outcome: Provide a fast and error-resistant workflow for building and - publishing packages to the community-owned infrastructure. - - Enhancement: kubernetes/enhancements#1731 - - Project board: https://github.com/orgs/kubernetes/projects/137 - -1. **Moving deb/rpm package builds to community infrastructure (Consumable)** - - Outcome: Automated builds of signed `deb` and `rpm` Kubernetes packages - within community infrastructure. - - Enhancement: https://github.com/kubernetes/enhancements/issues/1731 - - Project board: https://github.com/orgs/kubernetes/projects/137 - -1. **Signing of release artifacts (Secure)** - - Outcome: Being able to ship signed release artifacts, which includes - container images in the first iteration as well as all artifacts following - on. - - Enhancement: https://github.com/kubernetes/enhancements/issues/3031 - -1. **Formalize supported release platforms (Introspectable)** - - https://github.com/kubernetes/sig-release/issues/1337 - - Outcome: Definition of the life cycle for currently supported Kubernetes - artifacts and a guideline for the community about how to add new platforms. - -1. **Implement a Bill of Materials (BOM) for release artifacts (Introspectable / - Secure)** - - https://github.com/kubernetes/release/issues/1837 - - Outcome: An automated formal verification of produced release artifacts for - every future release. - -1. **Create releases landing page (Consumable)** - - https://github.com/kubernetes/website/issues/20293 - - Outcome: A releases page that is up to date and acts as canonical place for - release related information, for example links to release notes and support - timelines. - -1. **Define and implement the release cadence survey (Introspectable)** - - https://github.com/kubernetes/sig-release/issues/1526 - - Outcome: A regular survey evaluating the user experience of the current - release cadence. - -1. **Distribute the load of Kubernetes artifacts between vendors (Consumable)** - - Outcome: A policy and procedure for use by SIG Release to promote container - images and release binaries to multiple registries and mirrors. - - Enhancement: https://github.com/kubernetes/enhancements/issues/3055 - -1. **Simplify CVE process for release management (Secure)** - - https://github.com/kubernetes/sig-release/issues/896, - https://github.com/kubernetes/release/issues/1354 - - Outcome: A documented and simple process for handling CVE information within - Kubernetes releases. +# Roadmap and Vision + +## SIG Release Roadmap for 2025 and beyond + +This document contains the SIG Release Roadmap for 2025 and beyond. More +detailed information can be found on the corresponding project boards. + +### Primary Focus + +Decrease **technical debt** and provide a **sustainable foundation** for long +term contributors of SIG Release. + +### Deliverables + +The following deliverables are necessary to achieve the overall goal. Within +the following listing, all deliverables are sorted by their priority and their +state. + +### Work in progress (WIP) + +1. **Rewrite artifact promoter** + + Outcome: Robust and fast artifact promotion tooling. + + Enhancement: _none_ + + Project board: https://github.com/orgs/kubernetes/projects/171 + +1. **Rework supported platforms** + + Outcome: Which platforms Kubernetes supports reflected in documentation and tooling. + + Enhancement: **TBD** ([Supported Platform Tiers](https://docs.google.com/document/d/1QnT2LJ1dNYFyvOCt_X6F8ry0KgAg8H2MjoZnt5Xgtog)) + + Project board: _none_ + +1. **Improve SIG Release contributor ladder & sustainability** + Outcome: Up-to-date documentation and project boards for new and long term contributors. + Enhancement: _none_ + Project board: _none_ + +### Known Risks + +1. **We rely on different SIGs for our work** + + We have a need to discuss our enhancements with different SIGs to get all + required information and drive the change. This can lead into helpful, but + maybe not expected input and delay the deliverable. + +1. **Some topics require initial research** + + We're not completely aware of all technical aspects for the changes. This + means that there is a risk of delaying because of investing more time in + pre-research. + +### Requests to Other Teams + +1. **SIG K8s Infra** + + For general infrastructure support we rely on. + +1. **SIG Architecture** + + For the formalization of the released platforms and input about the overall + supply chain. + +1. **SIG Security** + + For content which should be part of the release metadata. + +1. **SIG Contribex** + + For getting input about sustainable contributor experience. + +### Other Priorities + +This section covers items from the past 2022 and 2024 roadmap which have not been +started or became stale. + +1. **Make artifact validation more robust** + + Outcome: Provide a fast and error-resistant workflow for artifact promotion compliant with SLSA. + + Enhancement: was kubernetes/enhancements#3027 + + Project board: https://github.com/orgs/kubernetes/projects/171 + +1. **Enable other Kubernetes subprojects to use our packages infrastructure** + + Outcome: Building a CLI, library and documentation for Kubernetes related + projects to use the existing packaging infrastructure. + + Enhancement: _none_ + + Project board: https://github.com/orgs/kubernetes/projects/137 + +1. **Modernize and Extend Release Metadata** + + Outcome: Providing release metadata compliant to the latest industry standards. + + Enhancement: none (was kubernetes/enhancements#3027) + + Project board: https://github.com/orgs/kubernetes/projects/138 + +1. **Make Kubernetes releases more flexible** + + Outcome: Provide more possibilities for Kubernetes releases to be created in + custom infrastructure environments. + + Enhancement: none + +1. **Enhance Kubernetes binary artifact management (Consumable)** + + https://github.com/kubernetes/sig-release/issues/1372 + + Enhancement: _none_ + + Outcome: Being able to promote files as artifacts and using this mechanism + for Kubernetes releases. + +1. **Define and collect metrics about Kubernetes releases (Introspectable)** + + https://github.com/kubernetes/sig-release/issues/1527 + + Enhancement: _none_ + + Outcome: Being able to measure and interpret a set of defined metrics about + Kubernetes releases to associate actions with those. + +1. **Enhance and simplify Kubernetes version markers (Consumable)** + + Enhancement: _none_ + + Outcome: Clear documentation about available version markers as well as their + simplified automation. + +### Done Deliverables + +1. **Migrate away from GCS bucket: gs://kubernetes-release** + + Outcome: Ensure we migrate away from gs://kubernetes-release, use a + community-owned Object Storage bucket for binary releases, serve the binaries + published through a CDN service. + + Enhancement: none + +1. **Making deb and rpm package builds more robust** + + Outcome: Provide a fast and error-resistant workflow for building and + publishing packages to the community-owned infrastructure. + + Enhancement: kubernetes/enhancements#1731 + + Project board: https://github.com/orgs/kubernetes/projects/137 + +1. **Moving deb/rpm package builds to community infrastructure (Consumable)** + + Outcome: Automated builds of signed `deb` and `rpm` Kubernetes packages + within community infrastructure. + + Enhancement: https://github.com/kubernetes/enhancements/issues/1731 + + Project board: https://github.com/orgs/kubernetes/projects/137 + +1. **Signing of release artifacts (Secure)** + + Outcome: Being able to ship signed release artifacts, which includes + container images in the first iteration as well as all artifacts following + on. + + Enhancement: https://github.com/kubernetes/enhancements/issues/3031 + +1. **Formalize supported release platforms (Introspectable)** + + https://github.com/kubernetes/sig-release/issues/1337 + + Outcome: Definition of the life cycle for currently supported Kubernetes + artifacts and a guideline for the community about how to add new platforms. + +1. **Implement a Bill of Materials (BOM) for release artifacts (Introspectable / + Secure)** + + https://github.com/kubernetes/release/issues/1837 + + Outcome: An automated formal verification of produced release artifacts for + every future release. + +1. **Create releases landing page (Consumable)** + + https://github.com/kubernetes/website/issues/20293 + + Outcome: A releases page that is up to date and acts as canonical place for + release related information, for example links to release notes and support + timelines. + +1. **Define and implement the release cadence survey (Introspectable)** + + https://github.com/kubernetes/sig-release/issues/1526 + + Outcome: A regular survey evaluating the user experience of the current + release cadence. + +1. **Distribute the load of Kubernetes artifacts between vendors (Consumable)** + + Outcome: A policy and procedure for use by SIG Release to promote container + images and release binaries to multiple registries and mirrors. + + Enhancement: https://github.com/kubernetes/enhancements/issues/3055 + +1. **Simplify CVE process for release management (Secure)** + + https://github.com/kubernetes/sig-release/issues/896, + https://github.com/kubernetes/release/issues/1354 + + Outcome: A documented and simple process for handling CVE information within + Kubernetes releases.